Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOve Murberg Henriksen <sorayasilvermoon@hotmail.com>2012-10-09 14:53:20 +0400
committerOve Murberg Henriksen <sorayasilvermoon@hotmail.com>2012-10-09 14:53:20 +0400
commit7247af6af50ac0e5ee4aa5730e233e6340a3cf19 (patch)
treeb380a995c36b687bc7ac99d19702b8a89f1e7e8c
parent30085e5ea96dcec5ef0afd239fbd33760cee83ce (diff)
parent9e0dd178134a973b9091705fd62f12ed9ea6434c (diff)
svn merge ^/trunk/blender -r48592:HEAD
-rw-r--r--CMakeLists.txt454
-rw-r--r--GNUmakefile16
-rw-r--r--SConstruct197
-rw-r--r--build_files/buildbot/config/user-config-i686.py8
-rw-r--r--build_files/buildbot/config/user-config-player-i686.py8
-rw-r--r--build_files/buildbot/config/user-config-player-x86_64.py8
-rw-r--r--build_files/buildbot/config/user-config-x86_64.py8
-rw-r--r--build_files/buildbot/master.cfg7
-rw-r--r--build_files/buildbot/master_unpack.py2
-rw-r--r--build_files/buildbot/slave_pack.py20
-rw-r--r--build_files/cmake/Modules/FindOpenCOLLADA.cmake1
-rw-r--r--build_files/cmake/Modules/FindOpenColorIO.cmake85
-rw-r--r--build_files/cmake/clang_array_check.py353
-rwxr-xr-xbuild_files/cmake/cmake_netbeans_project.py2
-rwxr-xr-xbuild_files/cmake/cmake_qtcreator_project.py8
-rw-r--r--build_files/cmake/cmake_static_check_clang_array.py77
-rw-r--r--build_files/cmake/cmake_static_check_cppcheck.py3
-rw-r--r--build_files/cmake/cmake_static_check_smatch.py74
-rw-r--r--build_files/cmake/cmake_static_check_sparse.py3
-rw-r--r--build_files/cmake/cmake_static_check_splint.py3
-rw-r--r--build_files/cmake/config/blender_lite.cmake5
-rw-r--r--build_files/cmake/macros.cmake88
-rw-r--r--build_files/cmake/project_source_info.py2
-rw-r--r--build_files/package_spec/rpm/blender.spec.in1
-rw-r--r--build_files/scons/config/darwin-config.py22
-rw-r--r--build_files/scons/config/linux-config.py17
-rw-r--r--build_files/scons/config/win32-mingw-config.py12
-rw-r--r--build_files/scons/config/win32-vc-config.py11
-rw-r--r--build_files/scons/config/win64-mingw-config.py12
-rw-r--r--build_files/scons/config/win64-vc-config.py12
-rw-r--r--build_files/scons/tools/Blender.py34
-rw-r--r--build_files/scons/tools/btools.py28
-rw-r--r--doc/guides/interface_API.txt16
-rw-r--r--doc/manpage/blender.154
-rw-r--r--doc/python_api/examples/bpy.ops.2.py2
-rw-r--r--doc/python_api/rst/bge.logic.rst10
-rw-r--r--doc/python_api/rst/bge.types.rst115
-rw-r--r--doc/python_api/rst/change_log.rst1499
-rw-r--r--doc/python_api/rst/info_best_practice.rst108
-rw-r--r--doc/python_api/rst/info_gotcha.rst4
-rw-r--r--doc/python_api/sphinx_changelog_gen.py13
-rw-r--r--doc/python_api/sphinx_doc_gen.py5
-rw-r--r--extern/CMakeLists.txt2
-rw-r--r--extern/SConscript2
-rw-r--r--extern/bullet2/CMakeLists.txt2
-rw-r--r--extern/bullet2/patches/ghost_character.patch28
-rw-r--r--extern/bullet2/readme.txt4
-rw-r--r--extern/bullet2/src/BulletDynamics/Character/btKinematicCharacterController.cpp10
-rw-r--r--extern/carve/CMakeLists.txt2
-rw-r--r--extern/carve/include/carve/csg.hpp56
-rw-r--r--extern/carve/include/carve/polyline_decl.hpp5
-rw-r--r--extern/carve/include/carve/rtree.hpp13
-rw-r--r--extern/carve/lib/csg_data.hpp4
-rw-r--r--extern/carve/lib/csg_detail.hpp30
-rw-r--r--extern/carve/lib/intersect.cpp291
-rw-r--r--extern/carve/patches/strict_flags.patch6
-rw-r--r--extern/libmv/CMakeLists.txt13
-rw-r--r--extern/libmv/libmv-capi.cpp4
-rw-r--r--extern/libmv/libmv-capi.h8
-rw-r--r--extern/libmv/libmv/multiview/euclidean_resection.cc31
-rw-r--r--extern/libmv/libmv/multiview/euclidean_resection.h3
-rw-r--r--extern/libmv/libmv/multiview/fundamental.cc4
-rw-r--r--extern/libmv/libmv/multiview/homography.cc2
-rw-r--r--extern/libmv/libmv/numeric/levenberg_marquardt.h10
-rw-r--r--extern/libmv/libmv/simple_pipeline/camera_intrinsics.cc2
-rw-r--r--extern/libmv/libmv/simple_pipeline/detect.cc6
-rw-r--r--extern/libmv/libmv/simple_pipeline/initialize_reconstruction.cc1
-rw-r--r--extern/libmv/libmv/simple_pipeline/intersect.cc1
-rw-r--r--extern/libmv/libmv/simple_pipeline/pipeline.cc4
-rw-r--r--extern/libmv/libmv/simple_pipeline/resect.cc5
-rw-r--r--extern/libmv/libmv/tracking/track_region.cc213
-rw-r--r--extern/libmv/libmv/tracking/track_region.h6
-rw-r--r--extern/libmv/third_party/ceres/CMakeLists.txt48
-rw-r--r--extern/libmv/third_party/ceres/ChangeLog608
-rw-r--r--extern/libmv/third_party/ceres/SConscript11
-rwxr-xr-xextern/libmv/third_party/ceres/bundle.sh55
-rw-r--r--extern/libmv/third_party/ceres/files.txt22
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/autodiff_cost_function.h4
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/cost_function.h2
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/crs_matrix.h65
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/fpclassify.h88
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/internal/fixed_array.h3
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/internal/macros.h31
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/internal/manual_constructor.h71
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/internal/port.h6
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/iteration_callback.h36
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/jet.h163
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/loss_function.h79
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/numeric_diff_cost_function.h6
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/problem.h6
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/rotation.h62
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/solver.h229
-rw-r--r--extern/libmv/third_party/ceres/include/ceres/types.h68
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/array_utils.cc (renamed from extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt.h)54
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/array_utils.h65
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/block_evaluate_preparer.cc16
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/block_evaluate_preparer.h16
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/block_jacobi_preconditioner.cc9
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/block_jacobian_writer.cc5
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/block_random_access_dense_matrix.cc2
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/block_random_access_dense_matrix.h2
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/block_random_access_matrix.h2
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/block_random_access_sparse_matrix.cc6
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/block_random_access_sparse_matrix.h8
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/block_sparse_matrix.cc8
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/block_sparse_matrix.h8
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/block_structure.cc2
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/canonical_views_clustering.cc8
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/cgnr_solver.h2
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/collections_port.h40
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/compressed_row_jacobian_writer.cc18
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/compressed_row_sparse_matrix.cc28
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/compressed_row_sparse_matrix.h28
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/conditioned_cost_function.cc4
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/conjugate_gradients_solver.cc20
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/conjugate_gradients_solver.h2
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/corrector.cc2
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/cxsparse.cc130
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/cxsparse.h90
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/dense_normal_cholesky_solver.cc86
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/dense_normal_cholesky_solver.h95
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/dense_qr_solver.cc4
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/dense_qr_solver.h4
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/dense_sparse_matrix.cc6
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/dense_sparse_matrix.h4
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/detect_structure.cc14
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/detect_structure.h2
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/dogleg_strategy.cc691
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/dogleg_strategy.h163
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/evaluator.cc82
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/evaluator.h31
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/file.cc5
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/generate_eliminator_specialization.py186
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/gradient_checking_cost_function.cc10
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/graph.h2
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.cc23
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.h10
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/iterative_schur_complement_solver.cc11
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt.cc574
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt_strategy.cc144
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt_strategy.h86
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/linear_least_squares_problems.cc101
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/linear_solver.cc30
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/linear_solver.h26
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/local_parameterization.cc5
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/loss_function.cc64
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/matrix_proto.h2
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/minimizer.h68
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/mutex.h98
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/normal_prior.cc3
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/parameter_block.h19
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/partitioned_matrix_view.cc2
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/polynomial_solver.cc184
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/polynomial_solver.h65
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/problem_impl.cc9
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/problem_impl.h2
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/program.cc77
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/program.h21
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/program_evaluator.h84
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/random.h29
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/residual_block.cc7
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/residual_block_utils.cc41
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/residual_block_utils.h9
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/runtime_numeric_diff_cost_function.cc3
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.cc159
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.h38
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/schur_eliminator_impl.h38
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/schur_ordering.cc18
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/solver.cc52
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/solver_impl.cc296
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/solver_impl.h14
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/sparse_matrix.h2
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.cc166
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.h36
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/split.cc1
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/split.h21
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/stringprintf.cc1
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/stringprintf.h14
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/suitesparse.cc157
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/suitesparse.h82
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/triplet_sparse_matrix.cc10
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/triplet_sparse_matrix.h4
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/trust_region_minimizer.cc550
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/trust_region_minimizer.h67
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/trust_region_strategy.cc27
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/trust_region_strategy.h148
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/types.cc35
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/visibility.cc4
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.cc36
-rw-r--r--extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.h14
-rw-r--r--extern/libmv/third_party/ceres/patches/collections_port.h.mingw.patch12
-rw-r--r--extern/libmv/third_party/ceres/patches/msvc_glog_fix.patch50
-rw-r--r--extern/libmv/third_party/ceres/patches/msvc_isfinite.patch15
-rw-r--r--extern/libmv/third_party/ceres/patches/no_previous_declaration_fix.patch199
-rw-r--r--extern/libmv/third_party/ceres/patches/series4
-rw-r--r--extern/recastnavigation/Recast/Source/RecastContour.cpp30
-rw-r--r--extern/recastnavigation/Recast/Source/RecastFilter.cpp4
-rw-r--r--extern/recastnavigation/Recast/Source/RecastMesh.cpp8
-rw-r--r--extern/recastnavigation/Recast/Source/RecastMeshDetail.cpp8
-rw-r--r--intern/CMakeLists.txt8
-rw-r--r--intern/SConscript6
-rw-r--r--intern/audaspace/FX/AUD_ButterworthFactory.h4
-rw-r--r--intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h4
-rw-r--r--intern/audaspace/FX/AUD_FaderFactory.h4
-rw-r--r--intern/audaspace/FX/AUD_IIRFilterReader.cpp2
-rw-r--r--intern/audaspace/OpenAL/AUD_OpenALDevice.cpp4
-rw-r--r--intern/audaspace/Python/AUD_PyAPI.cpp132
-rw-r--r--intern/audaspace/Python/AUD_PyAPI.h8
-rw-r--r--intern/audaspace/fftw/AUD_BandPassFactory.h2
-rw-r--r--intern/audaspace/intern/AUD_3DMath.h4
-rw-r--r--intern/audaspace/intern/AUD_C-API.cpp568
-rw-r--r--intern/audaspace/intern/AUD_C-API.h184
-rw-r--r--intern/audaspace/intern/AUD_IFactory.h2
-rw-r--r--intern/audaspace/intern/AUD_IReader.h2
-rw-r--r--intern/audaspace/intern/AUD_IWriter.h2
-rw-r--r--intern/audaspace/intern/AUD_PyInit.h4
-rw-r--r--intern/audaspace/intern/AUD_ReferenceHandler.cpp2
-rw-r--r--intern/boolop/CMakeLists.txt111
-rw-r--r--intern/boolop/SConscript31
-rw-r--r--intern/boolop/intern/BOP_BBox.cpp64
-rw-r--r--intern/boolop/intern/BOP_BBox.h98
-rw-r--r--intern/boolop/intern/BOP_BSPNode.cpp718
-rw-r--r--intern/boolop/intern/BOP_BSPNode.h107
-rw-r--r--intern/boolop/intern/BOP_BSPTree.cpp190
-rw-r--r--intern/boolop/intern/BOP_BSPTree.h76
-rw-r--r--intern/boolop/intern/BOP_Edge.cpp125
-rw-r--r--intern/boolop/intern/BOP_Edge.h70
-rw-r--r--intern/boolop/intern/BOP_Face.cpp430
-rw-r--r--intern/boolop/intern/BOP_Face.h120
-rw-r--r--intern/boolop/intern/BOP_Face2Face.cpp1250
-rw-r--r--intern/boolop/intern/BOP_Face2Face.h46
-rw-r--r--intern/boolop/intern/BOP_Interface.cpp535
-rw-r--r--intern/boolop/intern/BOP_MathUtils.cpp471
-rw-r--r--intern/boolop/intern/BOP_MathUtils.h83
-rw-r--r--intern/boolop/intern/BOP_Merge.cpp811
-rw-r--r--intern/boolop/intern/BOP_Merge.h81
-rw-r--r--intern/boolop/intern/BOP_Merge2.cpp948
-rw-r--r--intern/boolop/intern/BOP_Merge2.h104
-rw-r--r--intern/boolop/intern/BOP_Mesh.cpp1090
-rw-r--r--intern/boolop/intern/BOP_Mesh.h118
-rw-r--r--intern/boolop/intern/BOP_Misc.h58
-rw-r--r--intern/boolop/intern/BOP_Segment.cpp249
-rw-r--r--intern/boolop/intern/BOP_Segment.h74
-rw-r--r--intern/boolop/intern/BOP_Splitter.cpp194
-rw-r--r--intern/boolop/intern/BOP_Tag.cpp144
-rw-r--r--intern/boolop/intern/BOP_Tag.h147
-rw-r--r--intern/boolop/intern/BOP_Triangulator.cpp573
-rw-r--r--intern/boolop/intern/BOP_Triangulator.h46
-rw-r--r--intern/boolop/intern/BOP_Vertex.cpp115
-rw-r--r--intern/bsp/CMakeLists.txt20
-rw-r--r--intern/bsp/SConscript18
-rw-r--r--intern/bsp/intern/BOP_CarveInterface.cpp (renamed from intern/boolop/intern/BOP_CarveInterface.cpp)88
-rw-r--r--intern/bsp/intern/BOP_Interface.h (renamed from intern/boolop/extern/BOP_Interface.h)4
-rw-r--r--intern/bsp/intern/BSP_CSGMesh.cpp2
-rw-r--r--intern/bsp/intern/CSG_BooleanOps.cpp3
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsp126
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsw125
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp649
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h159
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp156
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h71
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp192
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h60
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_TMesh.h397
-rw-r--r--intern/bsp/test/BSP_GhostTest/main.cpp143
-rw-r--r--intern/bsp/test/BSP_GhostTest/ply.h196
-rw-r--r--intern/bsp/test/BSP_GhostTest/plyfile.c2545
-rw-r--r--intern/container/CTR_HashedPtr.h2
-rw-r--r--intern/cycles/CMakeLists.txt9
-rw-r--r--intern/cycles/app/CMakeLists.txt3
-rw-r--r--intern/cycles/app/cycles_test.cpp17
-rw-r--r--intern/cycles/app/cycles_xml.cpp5
-rw-r--r--intern/cycles/blender/addon/__init__.py2
-rw-r--r--intern/cycles/blender/addon/properties.py10
-rw-r--r--intern/cycles/blender/addon/ui.py50
-rw-r--r--intern/cycles/blender/blender_camera.cpp15
-rw-r--r--intern/cycles/blender/blender_mesh.cpp6
-rw-r--r--intern/cycles/blender/blender_object.cpp42
-rw-r--r--intern/cycles/blender/blender_particles.cpp136
-rw-r--r--intern/cycles/blender/blender_python.cpp12
-rw-r--r--intern/cycles/blender/blender_session.cpp209
-rw-r--r--intern/cycles/blender/blender_session.h18
-rw-r--r--intern/cycles/blender/blender_shader.cpp24
-rw-r--r--intern/cycles/blender/blender_sync.cpp53
-rw-r--r--intern/cycles/blender/blender_sync.h16
-rw-r--r--intern/cycles/blender/blender_util.h40
-rw-r--r--intern/cycles/bvh/CMakeLists.txt3
-rw-r--r--intern/cycles/bvh/bvh.cpp6
-rw-r--r--intern/cycles/cmake/external_libs.cmake26
-rw-r--r--intern/cycles/device/CMakeLists.txt5
-rw-r--r--intern/cycles/device/device.cpp59
-rw-r--r--intern/cycles/device/device.h33
-rw-r--r--intern/cycles/device/device_cpu.cpp69
-rw-r--r--intern/cycles/device/device_cuda.cpp118
-rw-r--r--intern/cycles/device/device_multi.cpp27
-rw-r--r--intern/cycles/device/device_opencl.cpp105
-rw-r--r--intern/cycles/device/device_task.cpp113
-rw-r--r--intern/cycles/device/device_task.h75
-rw-r--r--intern/cycles/kernel/CMakeLists.txt5
-rw-r--r--intern/cycles/kernel/kernel.cpp110
-rw-r--r--intern/cycles/kernel/kernel_accumulate.h4
-rw-r--r--intern/cycles/kernel/kernel_attribute.h68
-rw-r--r--intern/cycles/kernel/kernel_camera.h24
-rw-r--r--intern/cycles/kernel/kernel_compat_cpu.h2
-rw-r--r--intern/cycles/kernel/kernel_differential.h2
-rw-r--r--intern/cycles/kernel/kernel_displace.h2
-rw-r--r--intern/cycles/kernel/kernel_globals.h7
-rw-r--r--intern/cycles/kernel/kernel_montecarlo.h21
-rw-r--r--intern/cycles/kernel/kernel_object.h76
-rw-r--r--intern/cycles/kernel/kernel_passes.h14
-rw-r--r--intern/cycles/kernel/kernel_path.h53
-rw-r--r--intern/cycles/kernel/kernel_shader.h168
-rw-r--r--intern/cycles/kernel/kernel_textures.h24
-rw-r--r--intern/cycles/kernel/kernel_triangle.h22
-rw-r--r--intern/cycles/kernel/kernel_types.h25
-rw-r--r--intern/cycles/kernel/osl/CMakeLists.txt4
-rw-r--r--intern/cycles/kernel/osl/background.cpp23
-rw-r--r--intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp57
-rw-r--r--intern/cycles/kernel/osl/bsdf_diffuse.cpp30
-rw-r--r--intern/cycles/kernel/osl/bsdf_microfacet.cpp74
-rw-r--r--intern/cycles/kernel/osl/bsdf_oren_nayar.cpp16
-rw-r--r--intern/cycles/kernel/osl/bsdf_phong.cpp287
-rw-r--r--intern/cycles/kernel/osl/bsdf_reflection.cpp14
-rw-r--r--intern/cycles/kernel/osl/bsdf_refraction.cpp16
-rw-r--r--intern/cycles/kernel/osl/bsdf_transparent.cpp12
-rw-r--r--intern/cycles/kernel/osl/bsdf_ward.cpp20
-rw-r--r--intern/cycles/kernel/osl/bsdf_westin.cpp34
-rw-r--r--intern/cycles/kernel/osl/bssrdf.cpp14
-rw-r--r--intern/cycles/kernel/osl/debug.cpp14
-rw-r--r--intern/cycles/kernel/osl/emissive.cpp12
-rw-r--r--intern/cycles/kernel/osl/nodes/CMakeLists.txt13
-rw-r--r--intern/cycles/kernel/osl/nodes/node_brick_texture.osl94
-rw-r--r--intern/cycles/kernel/osl/nodes/node_brightness.osl11
-rw-r--r--intern/cycles/kernel/osl/nodes/node_checker_texture.osl4
-rw-r--r--intern/cycles/kernel/osl/nodes/node_combine_rgb.osl29
-rw-r--r--intern/cycles/kernel/osl/nodes/node_gamma.osl10
-rw-r--r--intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl4
-rw-r--r--intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl4
-rw-r--r--intern/cycles/kernel/osl/nodes/node_gradient_texture.osl52
-rw-r--r--intern/cycles/kernel/osl/nodes/node_holdout.osl8
-rw-r--r--intern/cycles/kernel/osl/nodes/node_invert.osl2
-rw-r--r--intern/cycles/kernel/osl/nodes/node_magic_texture.osl63
-rw-r--r--intern/cycles/kernel/osl/nodes/node_math.osl4
-rw-r--r--intern/cycles/kernel/osl/nodes/node_mix.osl19
-rw-r--r--intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl49
-rw-r--r--intern/cycles/kernel/osl/nodes/node_noise_texture.osl21
-rw-r--r--intern/cycles/kernel/osl/nodes/node_normal.osl7
-rw-r--r--intern/cycles/kernel/osl/nodes/node_object_info.osl33
-rw-r--r--intern/cycles/kernel/osl/nodes/node_particle_info.osl39
-rw-r--r--intern/cycles/kernel/osl/nodes/node_rgb_ramp.osl44
-rw-r--r--intern/cycles/kernel/osl/nodes/node_separate_rgb.osl (renamed from intern/cycles/kernel/osl/nodes/node_sepcomb_rgb.osl)16
-rw-r--r--intern/cycles/kernel/osl/nodes/node_texture.h31
-rw-r--r--intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl2
-rw-r--r--intern/cycles/kernel/osl/nodes/node_voronoi_texture.osl43
-rw-r--r--intern/cycles/kernel/osl/nodes/node_wave_texture.osl16
-rw-r--r--intern/cycles/kernel/osl/nodes/oslutil.h94
-rw-r--r--intern/cycles/kernel/osl/nodes/stdosl.h530
-rw-r--r--intern/cycles/kernel/osl/osl_closures.cpp42
-rw-r--r--intern/cycles/kernel/osl/osl_closures.h46
-rw-r--r--intern/cycles/kernel/osl/osl_globals.h7
-rw-r--r--intern/cycles/kernel/osl/osl_services.cpp364
-rw-r--r--intern/cycles/kernel/osl/osl_services.h49
-rw-r--r--intern/cycles/kernel/osl/osl_shader.cpp113
-rw-r--r--intern/cycles/kernel/osl/osl_shader.h11
-rw-r--r--intern/cycles/kernel/osl/vol_subsurface.cpp20
-rw-r--r--intern/cycles/kernel/svm/bsdf.h6
-rw-r--r--intern/cycles/kernel/svm/bsdf_diffuse.h5
-rw-r--r--intern/cycles/kernel/svm/bsdf_microfacet.h6
-rw-r--r--intern/cycles/kernel/svm/bsdf_ward.h9
-rw-r--r--intern/cycles/kernel/svm/bsdf_westin.h4
-rw-r--r--intern/cycles/kernel/svm/svm.h7
-rw-r--r--intern/cycles/kernel/svm/svm_brick.h114
-rw-r--r--intern/cycles/kernel/svm/svm_geometry.h40
-rw-r--r--intern/cycles/kernel/svm/svm_hsv.h4
-rw-r--r--intern/cycles/kernel/svm/svm_image.h146
-rw-r--r--intern/cycles/kernel/svm/svm_math.h2
-rw-r--r--intern/cycles/kernel/svm/svm_mix.h12
-rw-r--r--intern/cycles/kernel/svm/svm_noise.h2
-rw-r--r--intern/cycles/kernel/svm/svm_tex_coord.h26
-rw-r--r--intern/cycles/kernel/svm/svm_types.h31
-rw-r--r--intern/cycles/render/CMakeLists.txt5
-rw-r--r--intern/cycles/render/attribute.cpp24
-rw-r--r--intern/cycles/render/attribute.h2
-rw-r--r--intern/cycles/render/buffers.cpp38
-rw-r--r--intern/cycles/render/buffers.h29
-rw-r--r--intern/cycles/render/camera.cpp14
-rw-r--r--intern/cycles/render/camera.h1
-rw-r--r--intern/cycles/render/graph.cpp33
-rw-r--r--intern/cycles/render/graph.h13
-rw-r--r--intern/cycles/render/image.cpp109
-rw-r--r--intern/cycles/render/image.h15
-rw-r--r--intern/cycles/render/integrator.cpp2
-rw-r--r--intern/cycles/render/light.cpp28
-rw-r--r--intern/cycles/render/mesh.cpp2
-rw-r--r--intern/cycles/render/nodes.cpp267
-rw-r--r--intern/cycles/render/nodes.h17
-rw-r--r--intern/cycles/render/object.cpp49
-rw-r--r--intern/cycles/render/object.h10
-rw-r--r--intern/cycles/render/osl.cpp159
-rw-r--r--intern/cycles/render/osl.h13
-rw-r--r--intern/cycles/render/particles.cpp123
-rw-r--r--intern/cycles/render/particles.h74
-rw-r--r--intern/cycles/render/scene.cpp20
-rw-r--r--intern/cycles/render/scene.h12
-rw-r--r--intern/cycles/render/session.cpp224
-rw-r--r--intern/cycles/render/session.h27
-rw-r--r--intern/cycles/render/tile.cpp142
-rw-r--r--intern/cycles/render/tile.h30
-rw-r--r--intern/cycles/subd/CMakeLists.txt3
-rw-r--r--intern/cycles/subd/subd_build.cpp4
-rw-r--r--intern/cycles/util/CMakeLists.txt5
-rw-r--r--intern/cycles/util/util_attribute.cpp (renamed from intern/boolop/intern/BOP_Chrono.h)59
-rw-r--r--intern/cycles/util/util_attribute.h31
-rw-r--r--intern/cycles/util/util_cache.cpp10
-rw-r--r--intern/cycles/util/util_math.h9
-rw-r--r--intern/cycles/util/util_opencl.cpp6
-rw-r--r--intern/cycles/util/util_path.cpp10
-rw-r--r--intern/cycles/util/util_progress.h85
-rw-r--r--intern/cycles/util/util_types.h16
-rw-r--r--intern/decimation/intern/LOD_QuadricEditor.cpp4
-rw-r--r--intern/dualcon/intern/Projections.cpp4
-rw-r--r--intern/dualcon/intern/dualcon_c_api.cpp2
-rw-r--r--intern/dualcon/intern/octree.cpp181
-rw-r--r--intern/dualcon/intern/octree.h299
-rw-r--r--intern/elbeem/intern/mvmcoords.cpp7
-rw-r--r--intern/ghost/GHOST_C-api.h493
-rw-r--r--intern/ghost/GHOST_IEvent.h16
-rw-r--r--intern/ghost/GHOST_IEventConsumer.h12
-rw-r--r--intern/ghost/GHOST_ISystem.h133
-rw-r--r--intern/ghost/GHOST_ISystemPaths.h12
-rw-r--r--intern/ghost/GHOST_ITimerTask.h16
-rw-r--r--intern/ghost/GHOST_IWindow.h108
-rw-r--r--intern/ghost/GHOST_Path-api.h10
-rw-r--r--intern/ghost/GHOST_Rect.h71
-rw-r--r--intern/ghost/GHOST_Types.h4
-rw-r--r--intern/ghost/intern/GHOST_Buttons.h12
-rw-r--r--intern/ghost/intern/GHOST_C-api.cpp22
-rw-r--r--intern/ghost/intern/GHOST_CallbackEventConsumer.cpp4
-rw-r--r--intern/ghost/intern/GHOST_CallbackEventConsumer.h12
-rw-r--r--intern/ghost/intern/GHOST_DisplayManager.cpp4
-rw-r--r--intern/ghost/intern/GHOST_DisplayManager.h46
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp4
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerCarbon.h42
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerCocoa.h36
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerCocoa.mm4
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerWin32.h34
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerX11.cpp28
-rw-r--r--intern/ghost/intern/GHOST_DisplayManagerX11.h34
-rw-r--r--intern/ghost/intern/GHOST_DropTargetWin32.cpp4
-rw-r--r--intern/ghost/intern/GHOST_DropTargetWin32.h30
-rw-r--r--intern/ghost/intern/GHOST_DropTargetX11.cpp18
-rw-r--r--intern/ghost/intern/GHOST_DropTargetX11.h28
-rw-r--r--intern/ghost/intern/GHOST_Event.h18
-rw-r--r--intern/ghost/intern/GHOST_EventButton.h14
-rw-r--r--intern/ghost/intern/GHOST_EventCursor.h12
-rw-r--r--intern/ghost/intern/GHOST_EventDragnDrop.h14
-rw-r--r--intern/ghost/intern/GHOST_EventKey.h18
-rw-r--r--intern/ghost/intern/GHOST_EventManager.cpp16
-rw-r--r--intern/ghost/intern/GHOST_EventManager.h32
-rw-r--r--intern/ghost/intern/GHOST_EventPrinter.h8
-rw-r--r--intern/ghost/intern/GHOST_EventString.h12
-rw-r--r--intern/ghost/intern/GHOST_EventTrackpad.h10
-rw-r--r--intern/ghost/intern/GHOST_EventWheel.h10
-rw-r--r--intern/ghost/intern/GHOST_ISystem.cpp4
-rw-r--r--intern/ghost/intern/GHOST_ISystemPaths.cpp4
-rw-r--r--intern/ghost/intern/GHOST_ModifierKeys.cpp4
-rw-r--r--intern/ghost/intern/GHOST_ModifierKeys.h20
-rw-r--r--intern/ghost/intern/GHOST_NDOFManager.h2
-rw-r--r--intern/ghost/intern/GHOST_NDOFManagerX11.cpp3
-rw-r--r--intern/ghost/intern/GHOST_System.h104
-rw-r--r--intern/ghost/intern/GHOST_SystemCarbon.cpp6
-rw-r--r--intern/ghost/intern/GHOST_SystemCarbon.h94
-rw-r--r--intern/ghost/intern/GHOST_SystemCocoa.h104
-rw-r--r--intern/ghost/intern/GHOST_SystemCocoa.mm147
-rw-r--r--intern/ghost/intern/GHOST_SystemPaths.h10
-rw-r--r--intern/ghost/intern/GHOST_SystemPathsCarbon.h12
-rw-r--r--intern/ghost/intern/GHOST_SystemPathsCocoa.h6
-rw-r--r--intern/ghost/intern/GHOST_SystemPathsWin32.h12
-rw-r--r--intern/ghost/intern/GHOST_SystemPathsX11.cpp8
-rw-r--r--intern/ghost/intern/GHOST_SystemPathsX11.h6
-rw-r--r--intern/ghost/intern/GHOST_SystemWin32.cpp2
-rw-r--r--intern/ghost/intern/GHOST_SystemWin32.h163
-rw-r--r--intern/ghost/intern/GHOST_SystemX11.cpp352
-rw-r--r--intern/ghost/intern/GHOST_SystemX11.h84
-rw-r--r--intern/ghost/intern/GHOST_TimerManager.cpp10
-rw-r--r--intern/ghost/intern/GHOST_TimerManager.h28
-rw-r--r--intern/ghost/intern/GHOST_TimerTask.h36
-rw-r--r--intern/ghost/intern/GHOST_Window.cpp14
-rw-r--r--intern/ghost/intern/GHOST_Window.h82
-rw-r--r--intern/ghost/intern/GHOST_WindowCarbon.cpp6
-rw-r--r--intern/ghost/intern/GHOST_WindowCarbon.h88
-rw-r--r--intern/ghost/intern/GHOST_WindowCocoa.h108
-rw-r--r--intern/ghost/intern/GHOST_WindowCocoa.mm285
-rw-r--r--intern/ghost/intern/GHOST_WindowManager.cpp8
-rw-r--r--intern/ghost/intern/GHOST_WindowManager.h40
-rw-r--r--intern/ghost/intern/GHOST_WindowNULL.h4
-rw-r--r--intern/ghost/intern/GHOST_WindowWin32.cpp43
-rw-r--r--intern/ghost/intern/GHOST_WindowWin32.h98
-rw-r--r--intern/ghost/intern/GHOST_WindowX11.cpp153
-rw-r--r--intern/ghost/intern/GHOST_WindowX11.h36
-rw-r--r--intern/ghost/test/gears/GHOST_C-Test.c4
-rw-r--r--intern/ghost/test/gears/GHOST_Test.cpp4
-rw-r--r--intern/ghost/test/multitest/EventToBuf.c48
-rw-r--r--intern/ghost/test/multitest/MultiTest.c24
-rw-r--r--intern/guardedalloc/MEM_guardedalloc.h109
-rw-r--r--intern/guardedalloc/intern/mallocn.c111
-rw-r--r--intern/guardedalloc/intern/mmap_win.c2
-rw-r--r--intern/guardedalloc/test/simpletest/memtest.c13
-rw-r--r--intern/iksolver/CMakeLists.txt2
-rw-r--r--intern/iksolver/SConscript2
-rw-r--r--intern/iksolver/extern/IK_solver.h3
-rw-r--r--intern/iksolver/intern/IK_QJacobian.cpp86
-rw-r--r--intern/iksolver/intern/IK_QJacobianSolver.cpp84
-rw-r--r--intern/iksolver/intern/IK_QJacobianSolver.h6
-rw-r--r--intern/iksolver/intern/IK_QSegment.cpp201
-rw-r--r--intern/iksolver/intern/IK_QSegment.h8
-rw-r--r--intern/iksolver/intern/IK_QTask.cpp80
-rw-r--r--intern/iksolver/intern/IK_QTask.h10
-rw-r--r--intern/iksolver/intern/IK_Solver.cpp99
-rw-r--r--intern/iksolver/intern/MT_ExpMap.cpp128
-rw-r--r--intern/iksolver/intern/MT_ExpMap.h4
-rw-r--r--intern/iksolver/intern/TNT/cmat.h2
-rw-r--r--intern/iksolver/intern/TNT/vec.h2
-rw-r--r--intern/itasc/Armature.cpp2
-rw-r--r--intern/itasc/Scene.cpp2
-rw-r--r--intern/itasc/kdl/utilities/utility_io.cpp10
-rw-r--r--intern/memutil/MEM_CacheLimiter.h154
-rw-r--r--intern/memutil/MEM_CacheLimiterC-Api.h97
-rw-r--r--intern/memutil/MEM_RefCountPtr.h2
-rw-r--r--intern/memutil/MEM_SmartPtr.h6
-rw-r--r--intern/memutil/intern/MEM_CacheLimiterC-Api.cpp91
-rw-r--r--intern/mikktspace/mikktspace.c5
-rw-r--r--intern/opencolorio/CMakeLists.txt64
-rw-r--r--intern/opencolorio/SConscript19
-rw-r--r--intern/opencolorio/fallback_impl.cc382
-rw-r--r--intern/opencolorio/ocio_capi.cc284
-rw-r--r--intern/opencolorio/ocio_capi.h126
-rw-r--r--intern/opencolorio/ocio_impl.cc544
-rw-r--r--intern/opencolorio/ocio_impl.h240
-rw-r--r--intern/opennl/intern/opennl.c17
-rw-r--r--intern/opennl/superlu/get_perm_c.c52
-rw-r--r--intern/raskter/raskter.c1043
-rw-r--r--intern/raskter/raskter.h23
-rw-r--r--intern/smoke/intern/FLUID_3D.h2
-rw-r--r--intern/smoke/intern/WAVELET_NOISE.h2
-rw-r--r--intern/smoke/intern/smoke_API.cpp5
-rw-r--r--intern/string/STR_HashedString.h82
-rw-r--r--intern/string/STR_String.h84
-rw-r--r--intern/string/intern/STR_String.cpp342
-rw-r--r--intern/utfconv/utf_winfunc.c22
-rw-r--r--intern/utfconv/utfconv.c8
-rw-r--r--release/datafiles/bfont.pfb (renamed from release/datafiles/.Bfont)bin25316 -> 25181 bytes
-rwxr-xr-xrelease/datafiles/clkernelstoh.py70
-rw-r--r--release/datafiles/colormanagement/config.ocio287
-rw-r--r--release/datafiles/colormanagement/luts/aces_to_xyz.spimtx3
-rw-r--r--release/datafiles/colormanagement/luts/adx_adx10_to_cdd.spimtx4
-rw-r--r--release/datafiles/colormanagement/luts/adx_cdd_to_cid.spimtx4
-rw-r--r--release/datafiles/colormanagement/luts/adx_cid_to_rle.spi1d4102
-rw-r--r--release/datafiles/colormanagement/luts/adx_exp_to_aces.spimtx4
-rw-r--r--release/datafiles/colormanagement/luts/colorworks_filmlg_to_p3.3dl4916
-rw-r--r--release/datafiles/colormanagement/luts/dci_xyz.spi1d65542
-rw-r--r--release/datafiles/colormanagement/luts/lg10.spi1d2054
-rw-r--r--release/datafiles/colormanagement/luts/rec709.spi1d4107
-rw-r--r--release/datafiles/colormanagement/luts/rec709_to_aces.spimtx3
-rw-r--r--release/datafiles/colormanagement/luts/rrt_ut33_dcdm.spi3d32771
-rw-r--r--release/datafiles/colormanagement/luts/rrt_ut33_p3dci.spi3d32771
-rw-r--r--release/datafiles/colormanagement/luts/rrt_ut33_rec709.spi3d32771
-rw-r--r--release/datafiles/colormanagement/luts/rrt_ut33_sRGB.spi3d32771
-rw-r--r--release/datafiles/colormanagement/luts/spi_ocio_srgb_test.spi3d32771
-rw-r--r--release/datafiles/colormanagement/luts/srgb.spi1d4107
-rw-r--r--release/datafiles/colormanagement/luts/srgb_to_xyz.spimtx3
-rw-r--r--release/datafiles/colormanagement/luts/vd16.spi1d131079
-rw-r--r--release/datafiles/fonts/droidsans.ttf.gzbin2334749 -> 2347305 bytes
-rw-r--r--release/datafiles/preview.blendbin586384 -> 575216 bytes
-rw-r--r--release/datafiles/prvicons.png (renamed from release/datafiles/prvicons)bin12311 -> 12311 bytes
-rw-r--r--release/datafiles/splash.pngbin229594 -> 212426 bytes
-rw-r--r--release/datafiles/startup.blendbin0 -> 405076 bytes
-rw-r--r--release/scripts/modules/addon_utils.py6
-rw-r--r--release/scripts/modules/bl_i18n_utils/bl_process_msg.py19
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/check_po.py38
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/clean_po.py10
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/import_po_from_branches.py16
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/merge_po.py14
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/rtl_preprocess.py48
-rw-r--r--release/scripts/modules/bl_i18n_utils/settings.py13
-rw-r--r--release/scripts/modules/bl_i18n_utils/spell_check_utils.py8
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/update_branches.py8
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/update_mo.py30
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/update_msg.py5
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/update_po.py14
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/update_pot.py37
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/update_trunk.py6
-rw-r--r--release/scripts/modules/bl_i18n_utils/utils.py35
-rwxr-xr-xrelease/scripts/modules/blend_render_info.py2
-rw-r--r--release/scripts/modules/bpy/path.py10
-rw-r--r--release/scripts/modules/bpy/utils.py66
-rw-r--r--release/scripts/modules/bpy_extras/anim_utils.py27
-rw-r--r--release/scripts/modules/bpy_extras/mesh_utils.py2
-rw-r--r--release/scripts/modules/bpy_types.py8
-rw-r--r--release/scripts/modules/bpyml.py2
-rw-r--r--release/scripts/modules/console_python.py41
-rw-r--r--release/scripts/modules/console_shell.py10
-rw-r--r--release/scripts/modules/rna_info.py4
-rw-r--r--release/scripts/modules/rna_xml.py13
-rw-r--r--release/scripts/modules/sys_info.py3
-rw-r--r--release/scripts/presets/interaction/blender.py3
-rw-r--r--release/scripts/presets/interface_theme/back_to_black.xml1
-rw-r--r--release/scripts/presets/interface_theme/blender_24x.xml1
-rw-r--r--release/scripts/presets/interface_theme/elsyiun.xml3
-rw-r--r--release/scripts/presets/interface_theme/hexagon.xml1
-rw-r--r--release/scripts/presets/interface_theme/ubuntu_ambiance.xml219
-rw-r--r--release/scripts/presets/tracking_settings/blurry_footage.py13
-rw-r--r--release/scripts/presets/tracking_settings/blurry_movie.py11
-rw-r--r--release/scripts/presets/tracking_settings/default.py13
-rw-r--r--release/scripts/presets/tracking_settings/fast_motion.py13
-rw-r--r--release/scripts/presets/tracking_settings/planar.py17
-rw-r--r--release/scripts/startup/bl_operators/__init__.py1
-rw-r--r--release/scripts/startup/bl_operators/add_mesh_torus.py8
-rw-r--r--release/scripts/startup/bl_operators/anim.py10
-rw-r--r--release/scripts/startup/bl_operators/clip.py84
-rw-r--r--release/scripts/startup/bl_operators/console.py21
-rw-r--r--release/scripts/startup/bl_operators/mesh.py2
-rw-r--r--release/scripts/startup/bl_operators/node.py185
-rw-r--r--release/scripts/startup/bl_operators/object.py12
-rw-r--r--release/scripts/startup/bl_operators/object_quick_effects.py2
-rw-r--r--release/scripts/startup/bl_operators/object_randomize_transform.py4
-rw-r--r--release/scripts/startup/bl_operators/presets.py24
-rw-r--r--release/scripts/startup/bl_operators/screen_play_rendered_anim.py48
-rw-r--r--release/scripts/startup/bl_operators/uvcalc_follow_active.py2
-rw-r--r--release/scripts/startup/bl_operators/uvcalc_lightmap.py2
-rw-r--r--release/scripts/startup/bl_operators/uvcalc_smart_project.py4
-rw-r--r--release/scripts/startup/bl_operators/wm.py74
-rw-r--r--release/scripts/startup/bl_ui/__init__.py5
-rw-r--r--release/scripts/startup/bl_ui/properties_animviz.py11
-rw-r--r--release/scripts/startup/bl_ui/properties_data_armature.py8
-rw-r--r--release/scripts/startup/bl_ui/properties_data_bone.py18
-rw-r--r--release/scripts/startup/bl_ui/properties_data_curve.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_data_lamp.py4
-rw-r--r--release/scripts/startup/bl_ui/properties_data_mesh.py24
-rw-r--r--release/scripts/startup/bl_ui/properties_data_modifier.py24
-rw-r--r--release/scripts/startup/bl_ui/properties_data_speaker.py3
-rw-r--r--release/scripts/startup/bl_ui/properties_game.py21
-rw-r--r--release/scripts/startup/bl_ui/properties_mask_common.py327
-rw-r--r--release/scripts/startup/bl_ui/properties_material.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_object.py11
-rw-r--r--release/scripts/startup/bl_ui/properties_object_constraint.py21
-rw-r--r--release/scripts/startup/bl_ui/properties_particle.py37
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_cloth.py8
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_common.py9
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py7
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_field.py10
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_fluid.py4
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_smoke.py6
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_softbody.py6
-rw-r--r--release/scripts/startup/bl_ui/properties_render.py13
-rw-r--r--release/scripts/startup/bl_ui/properties_scene.py31
-rw-r--r--release/scripts/startup/bl_ui/properties_texture.py11
-rw-r--r--release/scripts/startup/bl_ui/properties_world.py7
-rw-r--r--release/scripts/startup/bl_ui/space_clip.py372
-rw-r--r--release/scripts/startup/bl_ui/space_console.py7
-rw-r--r--release/scripts/startup/bl_ui/space_image.py99
-rw-r--r--release/scripts/startup/bl_ui/space_info.py54
-rw-r--r--release/scripts/startup/bl_ui/space_node.py28
-rw-r--r--release/scripts/startup/bl_ui/space_sequencer.py161
-rw-r--r--release/scripts/startup/bl_ui/space_text.py1
-rw-r--r--release/scripts/startup/bl_ui/space_time.py3
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py38
-rw-r--r--release/scripts/startup/bl_ui/space_userpref_keymap.py4
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py71
-rw-r--r--release/scripts/startup/bl_ui/space_view3d_toolbar.py22
-rw-r--r--release/scripts/startup/keyingsets_builtins.py4
-rw-r--r--release/scripts/templates/addon_add_object.py16
-rw-r--r--release/scripts/templates/gamelogic.py28
-rw-r--r--release/scripts/templates/operator_mesh_add.py6
-rw-r--r--release/scripts/templates/operator_modal.py3
-rw-r--r--release/scripts/templates/operator_modal_draw.py3
-rw-r--r--release/scripts/templates/operator_modal_timer.py2
-rw-r--r--release/scripts/templates/operator_modal_view3d.py3
-rw-r--r--release/scripts/templates/ui_panel.py56
-rw-r--r--release/scripts/templates/ui_panel_simple.py7
-rw-r--r--release/text/readme.html10
-rw-r--r--release/windows/contrib/vfapi/vfapi-plugin.c32
-rw-r--r--source/blender/CMakeLists.txt6
-rw-r--r--source/blender/avi/AVI_avi.h2
-rw-r--r--source/blender/avi/CMakeLists.txt20
-rw-r--r--source/blender/avi/intern/avi.c42
-rw-r--r--source/blender/avi/intern/avi_codecs.c (renamed from source/blender/avi/intern/codecs.c)8
-rw-r--r--source/blender/avi/intern/avi_endian.c (renamed from source/blender/avi/intern/endian.c)38
-rw-r--r--source/blender/avi/intern/avi_endian.h (renamed from source/blender/avi/intern/endian.h)12
-rw-r--r--source/blender/avi/intern/avi_mjpeg.c (renamed from source/blender/avi/intern/mjpeg.c)12
-rw-r--r--source/blender/avi/intern/avi_mjpeg.h (renamed from source/blender/avi/intern/mjpeg.h)5
-rw-r--r--source/blender/avi/intern/avi_options.c (renamed from source/blender/avi/intern/options.c)4
-rw-r--r--source/blender/avi/intern/avi_rgb.c (renamed from source/blender/avi/intern/avirgb.c)8
-rw-r--r--source/blender/avi/intern/avi_rgb.h (renamed from source/blender/avi/intern/avirgb.h)9
-rw-r--r--source/blender/avi/intern/avi_rgb32.c (renamed from source/blender/avi/intern/rgb32.c)9
-rw-r--r--source/blender/avi/intern/avi_rgb32.h (renamed from source/blender/avi/intern/rgb32.h)9
-rw-r--r--source/blender/blenfont/BLF_api.h11
-rw-r--r--source/blender/blenfont/BLF_translation.h4
-rw-r--r--source/blender/blenfont/CMakeLists.txt1
-rw-r--r--source/blender/blenfont/SConscript2
-rw-r--r--source/blender/blenfont/intern/blf.c28
-rw-r--r--source/blender/blenfont/intern/blf_dir.c7
-rw-r--r--source/blender/blenfont/intern/blf_font.c114
-rw-r--r--source/blender/blenfont/intern/blf_glyph.c35
-rw-r--r--source/blender/blenfont/intern/blf_internal.h6
-rw-r--r--source/blender/blenfont/intern/blf_internal_types.h39
-rw-r--r--source/blender/blenfont/intern/blf_lang.c43
-rw-r--r--source/blender/blenkernel/BKE_DerivedMesh.h1
-rw-r--r--source/blender/blenkernel/BKE_action.h2
-rw-r--r--source/blender/blenkernel/BKE_anim.h4
-rw-r--r--source/blender/blenkernel/BKE_armature.h11
-rw-r--r--source/blender/blenkernel/BKE_blender.h12
-rw-r--r--source/blender/blenkernel/BKE_cdderivedmesh.h4
-rw-r--r--source/blender/blenkernel/BKE_cloth.h3
-rw-r--r--source/blender/blenkernel/BKE_colortools.h60
-rw-r--r--source/blender/blenkernel/BKE_context.h6
-rw-r--r--source/blender/blenkernel/BKE_curve.h2
-rw-r--r--source/blender/blenkernel/BKE_customdata.h6
-rw-r--r--source/blender/blenkernel/BKE_deform.h3
-rw-r--r--source/blender/blenkernel/BKE_fcurve.h6
-rw-r--r--source/blender/blenkernel/BKE_font.h8
-rw-r--r--source/blender/blenkernel/BKE_global.h25
-rw-r--r--source/blender/blenkernel/BKE_gpencil.h4
-rw-r--r--source/blender/blenkernel/BKE_group.h4
-rw-r--r--source/blender/blenkernel/BKE_idprop.h154
-rw-r--r--source/blender/blenkernel/BKE_image.h15
-rw-r--r--source/blender/blenkernel/BKE_key.h50
-rw-r--r--source/blender/blenkernel/BKE_lamp.h6
-rw-r--r--source/blender/blenkernel/BKE_library.h21
-rw-r--r--source/blender/blenkernel/BKE_main.h2
-rw-r--r--source/blender/blenkernel/BKE_mask.h111
-rw-r--r--source/blender/blenkernel/BKE_material.h9
-rw-r--r--source/blender/blenkernel/BKE_mball.h10
-rw-r--r--source/blender/blenkernel/BKE_mesh.h19
-rw-r--r--source/blender/blenkernel/BKE_modifier.h1
-rw-r--r--source/blender/blenkernel/BKE_movieclip.h7
-rw-r--r--source/blender/blenkernel/BKE_node.h218
-rw-r--r--source/blender/blenkernel/BKE_object.h10
-rw-r--r--source/blender/blenkernel/BKE_object_deform.h38
-rw-r--r--source/blender/blenkernel/BKE_packedFile.h1
-rw-r--r--source/blender/blenkernel/BKE_paint.h7
-rw-r--r--source/blender/blenkernel/BKE_pointcache.h2
-rw-r--r--source/blender/blenkernel/BKE_property.h27
-rw-r--r--source/blender/blenkernel/BKE_sca.h2
-rw-r--r--source/blender/blenkernel/BKE_scene.h3
-rw-r--r--source/blender/blenkernel/BKE_screen.h2
-rw-r--r--source/blender/blenkernel/BKE_script.h2
-rw-r--r--source/blender/blenkernel/BKE_sequencer.h290
-rw-r--r--source/blender/blenkernel/BKE_shrinkwrap.h6
-rw-r--r--source/blender/blenkernel/BKE_tessmesh.h6
-rw-r--r--source/blender/blenkernel/BKE_tracking.h6
-rw-r--r--source/blender/blenkernel/BKE_utildefines.h50
-rw-r--r--source/blender/blenkernel/BKE_world.h3
-rw-r--r--source/blender/blenkernel/CMakeLists.txt21
-rw-r--r--source/blender/blenkernel/SConscript11
-rw-r--r--source/blender/blenkernel/intern/CCGSubSurf.c17
-rw-r--r--source/blender/blenkernel/intern/CCGSubSurf.h2
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c110
-rw-r--r--source/blender/blenkernel/intern/action.c495
-rw-r--r--source/blender/blenkernel/intern/anim.c269
-rw-r--r--source/blender/blenkernel/intern/anim_sys.c169
-rw-r--r--source/blender/blenkernel/intern/armature.c64
-rw-r--r--source/blender/blenkernel/intern/blender.c104
-rw-r--r--source/blender/blenkernel/intern/bmfont.c60
-rw-r--r--source/blender/blenkernel/intern/boids.c4
-rw-r--r--source/blender/blenkernel/intern/booleanops_mesh.c28
-rw-r--r--source/blender/blenkernel/intern/brush.c29
-rw-r--r--source/blender/blenkernel/intern/bvhutils.c4
-rw-r--r--source/blender/blenkernel/intern/camera.c4
-rw-r--r--source/blender/blenkernel/intern/cdderivedmesh.c63
-rw-r--r--source/blender/blenkernel/intern/cloth.c168
-rw-r--r--source/blender/blenkernel/intern/collision.c84
-rw-r--r--source/blender/blenkernel/intern/colortools.c308
-rw-r--r--source/blender/blenkernel/intern/constraint.c126
-rw-r--r--source/blender/blenkernel/intern/context.c13
-rw-r--r--source/blender/blenkernel/intern/curve.c85
-rw-r--r--source/blender/blenkernel/intern/customdata.c235
-rw-r--r--source/blender/blenkernel/intern/customdata_file.c34
-rw-r--r--source/blender/blenkernel/intern/deform.c56
-rw-r--r--source/blender/blenkernel/intern/depsgraph.c74
-rw-r--r--source/blender/blenkernel/intern/displist.c27
-rw-r--r--source/blender/blenkernel/intern/dynamicpaint.c78
-rw-r--r--source/blender/blenkernel/intern/editderivedmesh.c14
-rw-r--r--source/blender/blenkernel/intern/effect.c19
-rw-r--r--source/blender/blenkernel/intern/fcurve.c74
-rw-r--r--source/blender/blenkernel/intern/fmodifier.c24
-rw-r--r--source/blender/blenkernel/intern/font.c275
-rw-r--r--source/blender/blenkernel/intern/gpencil.c14
-rw-r--r--source/blender/blenkernel/intern/group.c88
-rw-r--r--source/blender/blenkernel/intern/icons.c4
-rw-r--r--source/blender/blenkernel/intern/idprop.c39
-rw-r--r--source/blender/blenkernel/intern/image.c294
-rw-r--r--source/blender/blenkernel/intern/image_gen.c8
-rw-r--r--source/blender/blenkernel/intern/implicit.c108
-rw-r--r--source/blender/blenkernel/intern/ipo.c21
-rw-r--r--source/blender/blenkernel/intern/key.c117
-rw-r--r--source/blender/blenkernel/intern/lamp.c2
-rw-r--r--source/blender/blenkernel/intern/lattice.c10
-rw-r--r--source/blender/blenkernel/intern/library.c60
-rw-r--r--source/blender/blenkernel/intern/mask.c753
-rw-r--r--source/blender/blenkernel/intern/mask_evaluate.c863
-rw-r--r--source/blender/blenkernel/intern/mask_rasterize.c1398
-rw-r--r--source/blender/blenkernel/intern/material.c154
-rw-r--r--source/blender/blenkernel/intern/mball.c745
-rw-r--r--source/blender/blenkernel/intern/mesh.c124
-rw-r--r--source/blender/blenkernel/intern/mesh_validate.c82
-rw-r--r--source/blender/blenkernel/intern/modifier.c17
-rw-r--r--source/blender/blenkernel/intern/modifiers_bmesh.c21
-rw-r--r--source/blender/blenkernel/intern/movieclip.c137
-rw-r--r--source/blender/blenkernel/intern/multires.c66
-rw-r--r--source/blender/blenkernel/intern/nla.c32
-rw-r--r--source/blender/blenkernel/intern/node.c1001
-rw-r--r--source/blender/blenkernel/intern/object.c376
-rw-r--r--source/blender/blenkernel/intern/object_deform.c156
-rw-r--r--source/blender/blenkernel/intern/ocean.c13
-rw-r--r--source/blender/blenkernel/intern/packedFile.c62
-rw-r--r--source/blender/blenkernel/intern/paint.c8
-rw-r--r--source/blender/blenkernel/intern/particle.c41
-rw-r--r--source/blender/blenkernel/intern/particle_system.c57
-rw-r--r--source/blender/blenkernel/intern/pointcache.c57
-rw-r--r--source/blender/blenkernel/intern/property.c69
-rw-r--r--source/blender/blenkernel/intern/sca.c38
-rw-r--r--source/blender/blenkernel/intern/scene.c118
-rw-r--r--source/blender/blenkernel/intern/screen.c2
-rw-r--r--source/blender/blenkernel/intern/seqcache.c221
-rw-r--r--source/blender/blenkernel/intern/seqeffects.c1177
-rw-r--r--source/blender/blenkernel/intern/seqmodifier.c641
-rw-r--r--source/blender/blenkernel/intern/sequencer.c1912
-rw-r--r--source/blender/blenkernel/intern/shrinkwrap.c8
-rw-r--r--source/blender/blenkernel/intern/smoke.c10
-rw-r--r--source/blender/blenkernel/intern/softbody.c45
-rw-r--r--source/blender/blenkernel/intern/sound.c40
-rw-r--r--source/blender/blenkernel/intern/subsurf_ccg.c49
-rw-r--r--source/blender/blenkernel/intern/text.c41
-rw-r--r--source/blender/blenkernel/intern/texture.c27
-rw-r--r--source/blender/blenkernel/intern/tracking.c119
-rw-r--r--source/blender/blenkernel/intern/unit.c16
-rw-r--r--source/blender/blenkernel/intern/world.c13
-rw-r--r--source/blender/blenkernel/intern/writeavi.c29
-rw-r--r--source/blender/blenkernel/intern/writeffmpeg.c203
-rw-r--r--source/blender/blenkernel/intern/writeframeserver.c84
-rw-r--r--source/blender/blenlib/BLI_args.h25
-rw-r--r--source/blender/blenlib/BLI_array.h14
-rw-r--r--source/blender/blenlib/BLI_dynstr.h7
-rw-r--r--source/blender/blenlib/BLI_endian_switch.h62
-rw-r--r--source/blender/blenlib/BLI_endian_switch_inline.h94
-rw-r--r--source/blender/blenlib/BLI_fileops.h9
-rw-r--r--source/blender/blenlib/BLI_fileops_types.h2
-rw-r--r--source/blender/blenlib/BLI_kdopbvh.h4
-rw-r--r--source/blender/blenlib/BLI_lasso.h6
-rw-r--r--source/blender/blenlib/BLI_listbase.h2
-rw-r--r--source/blender/blenlib/BLI_math_base.h33
-rw-r--r--source/blender/blenlib/BLI_math_color.h4
-rw-r--r--source/blender/blenlib/BLI_math_geom.h26
-rw-r--r--source/blender/blenlib/BLI_math_rotation.h15
-rw-r--r--source/blender/blenlib/BLI_math_vector.h5
-rw-r--r--source/blender/blenlib/BLI_memarena.h42
-rw-r--r--source/blender/blenlib/BLI_mempool.h64
-rw-r--r--source/blender/blenlib/BLI_path_util.h11
-rw-r--r--source/blender/blenlib/BLI_pbvh.h6
-rw-r--r--source/blender/blenlib/BLI_rect.h87
-rw-r--r--source/blender/blenlib/BLI_scanfill.h8
-rw-r--r--source/blender/blenlib/BLI_stack.h54
-rw-r--r--source/blender/blenlib/BLI_string.h124
-rw-r--r--source/blender/blenlib/BLI_threads.h10
-rw-r--r--source/blender/blenlib/BLI_utildefines.h65
-rw-r--r--source/blender/blenlib/BLI_vfontdata.h12
-rw-r--r--source/blender/blenlib/CMakeLists.txt6
-rw-r--r--source/blender/blenlib/intern/BLI_args.c20
-rw-r--r--source/blender/blenlib/intern/BLI_ghash.c2
-rw-r--r--source/blender/blenlib/intern/BLI_heap.c2
-rw-r--r--source/blender/blenlib/intern/BLI_kdopbvh.c268
-rw-r--r--source/blender/blenlib/intern/BLI_memarena.c4
-rw-r--r--source/blender/blenlib/intern/BLI_mempool.c2
-rw-r--r--source/blender/blenlib/intern/DLRB_tree.c38
-rw-r--r--source/blender/blenlib/intern/boxpack2d.c16
-rw-r--r--source/blender/blenlib/intern/bpath.c38
-rw-r--r--source/blender/blenlib/intern/endian_switch.c118
-rw-r--r--source/blender/blenlib/intern/fileops.c78
-rw-r--r--source/blender/blenlib/intern/freetypefont.c155
-rw-r--r--source/blender/blenlib/intern/lasso.c10
-rw-r--r--source/blender/blenlib/intern/listbase.c38
-rw-r--r--source/blender/blenlib/intern/math_base_inline.c10
-rw-r--r--source/blender/blenlib/intern/math_color.c6
-rw-r--r--source/blender/blenlib/intern/math_color_inline.c19
-rw-r--r--source/blender/blenlib/intern/math_geom.c387
-rw-r--r--source/blender/blenlib/intern/math_matrix.c22
-rw-r--r--source/blender/blenlib/intern/math_rotation.c400
-rw-r--r--source/blender/blenlib/intern/math_vector.c23
-rw-r--r--source/blender/blenlib/intern/math_vector_inline.c20
-rw-r--r--source/blender/blenlib/intern/md5.c2
-rw-r--r--source/blender/blenlib/intern/noise.c41
-rw-r--r--source/blender/blenlib/intern/path_util.c20
-rw-r--r--source/blender/blenlib/intern/pbvh.c73
-rw-r--r--source/blender/blenlib/intern/rct.c183
-rw-r--r--source/blender/blenlib/intern/scanfill.c24
-rw-r--r--source/blender/blenlib/intern/stack.c110
-rw-r--r--source/blender/blenlib/intern/storage.c9
-rw-r--r--source/blender/blenlib/intern/string.c32
-rw-r--r--source/blender/blenlib/intern/string_cursor_utf8.c2
-rw-r--r--source/blender/blenlib/intern/string_utf8.c12
-rw-r--r--source/blender/blenlib/intern/threads.c15
-rw-r--r--source/blender/blenlib/intern/uvproject.c2
-rw-r--r--source/blender/blenlib/intern/voronoi.c20
-rw-r--r--source/blender/blenlib/intern/voxel.c9
-rw-r--r--source/blender/blenlib/intern/winstuff.c8
-rw-r--r--source/blender/blenloader/BLO_blend_defs.h (renamed from intern/boolop/intern/BOP_Splitter.h)41
-rw-r--r--source/blender/blenloader/BLO_readfile.h3
-rw-r--r--source/blender/blenloader/CMakeLists.txt1
-rw-r--r--source/blender/blenloader/intern/readblenentry.c5
-rw-r--r--source/blender/blenloader/intern/readfile.c892
-rw-r--r--source/blender/blenloader/intern/readfile.h2
-rw-r--r--source/blender/blenloader/intern/runtime.c1
-rw-r--r--source/blender/blenloader/intern/undofile.c2
-rw-r--r--source/blender/blenloader/intern/versioning_250.c11
-rw-r--r--source/blender/blenloader/intern/versioning_legacy.c15
-rw-r--r--source/blender/blenloader/intern/writefile.c142
-rw-r--r--source/blender/bmesh/bmesh.h5
-rw-r--r--source/blender/bmesh/bmesh_class.h2
-rw-r--r--source/blender/bmesh/intern/bmesh_construct.c9
-rw-r--r--source/blender/bmesh/intern/bmesh_core.c56
-rw-r--r--source/blender/bmesh/intern/bmesh_error.h6
-rw-r--r--source/blender/bmesh/intern/bmesh_interp.c59
-rw-r--r--source/blender/bmesh/intern/bmesh_interp.h1
-rw-r--r--source/blender/bmesh/intern/bmesh_iterators.c34
-rw-r--r--source/blender/bmesh/intern/bmesh_iterators.h17
-rw-r--r--source/blender/bmesh/intern/bmesh_marking.c57
-rw-r--r--source/blender/bmesh/intern/bmesh_marking.h3
-rw-r--r--source/blender/bmesh/intern/bmesh_mesh.c88
-rw-r--r--source/blender/bmesh/intern/bmesh_mesh.h4
-rw-r--r--source/blender/bmesh/intern/bmesh_mesh_conv.c13
-rw-r--r--source/blender/bmesh/intern/bmesh_mods.c14
-rw-r--r--source/blender/bmesh/intern/bmesh_mods.h4
-rw-r--r--source/blender/bmesh/intern/bmesh_opdefines.c195
-rw-r--r--source/blender/bmesh/intern/bmesh_operator_api.h40
-rw-r--r--source/blender/bmesh/intern/bmesh_operators.c48
-rw-r--r--source/blender/bmesh/intern/bmesh_polygon.c155
-rw-r--r--source/blender/bmesh/intern/bmesh_private.h20
-rw-r--r--source/blender/bmesh/intern/bmesh_queries.c82
-rw-r--r--source/blender/bmesh/intern/bmesh_structure.c30
-rw-r--r--source/blender/bmesh/intern/bmesh_structure.h2
-rw-r--r--source/blender/bmesh/intern/bmesh_walkers_impl.c4
-rw-r--r--source/blender/bmesh/operators/bmo_bevel.c14
-rw-r--r--source/blender/bmesh/operators/bmo_connect.c260
-rw-r--r--source/blender/bmesh/operators/bmo_create.c17
-rw-r--r--source/blender/bmesh/operators/bmo_dissolve.c10
-rw-r--r--source/blender/bmesh/operators/bmo_dupe.c20
-rw-r--r--source/blender/bmesh/operators/bmo_extrude.c26
-rw-r--r--source/blender/bmesh/operators/bmo_hull.c69
-rw-r--r--source/blender/bmesh/operators/bmo_inset.c5
-rw-r--r--source/blender/bmesh/operators/bmo_join_triangles.c146
-rw-r--r--source/blender/bmesh/operators/bmo_mesh_conv.c4
-rw-r--r--source/blender/bmesh/operators/bmo_mirror.c10
-rw-r--r--source/blender/bmesh/operators/bmo_primitive.c32
-rw-r--r--source/blender/bmesh/operators/bmo_removedoubles.c22
-rw-r--r--source/blender/bmesh/operators/bmo_subdivide.c189
-rw-r--r--source/blender/bmesh/operators/bmo_triangulate.c2
-rw-r--r--source/blender/bmesh/operators/bmo_utils.c67
-rw-r--r--source/blender/bmesh/operators/bmo_wireframe.c2
-rw-r--r--source/blender/bmesh/tools/BME_bevel.c28
-rw-r--r--source/blender/collada/AnimationExporter.cpp65
-rw-r--r--source/blender/collada/AnimationExporter.h6
-rw-r--r--source/blender/collada/AnimationImporter.cpp148
-rw-r--r--source/blender/collada/AnimationImporter.h7
-rw-r--r--source/blender/collada/ArmatureExporter.cpp2
-rw-r--r--source/blender/collada/CameraExporter.cpp2
-rw-r--r--source/blender/collada/DocumentExporter.cpp5
-rw-r--r--source/blender/collada/DocumentImporter.cpp36
-rw-r--r--source/blender/collada/DocumentImporter.h5
-rw-r--r--source/blender/collada/EffectExporter.cpp92
-rw-r--r--source/blender/collada/GeometryExporter.cpp49
-rw-r--r--source/blender/collada/GeometryExporter.h3
-rw-r--r--source/blender/collada/ImageExporter.cpp65
-rw-r--r--source/blender/collada/InstanceWriter.cpp12
-rw-r--r--source/blender/collada/MaterialExporter.h11
-rw-r--r--source/blender/collada/MeshImporter.cpp192
-rw-r--r--source/blender/collada/MeshImporter.h43
-rw-r--r--source/blender/collada/TransformReader.h2
-rw-r--r--source/blender/collada/collada.cpp1
-rw-r--r--source/blender/collada/collada_internal.h2
-rw-r--r--source/blender/collada/collada_utils.cpp5
-rw-r--r--source/blender/collada/collada_utils.h1
-rw-r--r--source/blender/compositor/CMakeLists.txt25
-rw-r--r--source/blender/compositor/COM_compositor.h73
-rw-r--r--source/blender/compositor/COM_defines.h2
-rw-r--r--source/blender/compositor/SConscript5
-rw-r--r--source/blender/compositor/intern/COM_CPUDevice.cpp5
-rw-r--r--source/blender/compositor/intern/COM_ChunkOrder.cpp2
-rw-r--r--source/blender/compositor/intern/COM_ChunkOrder.h2
-rw-r--r--source/blender/compositor/intern/COM_CompositorContext.cpp12
-rw-r--r--source/blender/compositor/intern/COM_CompositorContext.h26
-rw-r--r--source/blender/compositor/intern/COM_Converter.cpp38
-rw-r--r--source/blender/compositor/intern/COM_Device.h7
-rw-r--r--source/blender/compositor/intern/COM_ExecutionGroup.cpp72
-rw-r--r--source/blender/compositor/intern/COM_ExecutionGroup.h12
-rw-r--r--source/blender/compositor/intern/COM_ExecutionSystem.cpp13
-rw-r--r--source/blender/compositor/intern/COM_ExecutionSystem.h14
-rw-r--r--source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp23
-rw-r--r--source/blender/compositor/intern/COM_ExecutionSystemHelper.h2
-rw-r--r--source/blender/compositor/intern/COM_InputSocket.cpp2
-rw-r--r--source/blender/compositor/intern/COM_InputSocket.h2
-rw-r--r--source/blender/compositor/intern/COM_MemoryBuffer.cpp122
-rw-r--r--source/blender/compositor/intern/COM_MemoryBuffer.h97
-rw-r--r--source/blender/compositor/intern/COM_MemoryProxy.h2
-rw-r--r--source/blender/compositor/intern/COM_Node.cpp23
-rw-r--r--source/blender/compositor/intern/COM_Node.h22
-rw-r--r--source/blender/compositor/intern/COM_NodeBase.h5
-rw-r--r--source/blender/compositor/intern/COM_NodeOperation.cpp33
-rw-r--r--source/blender/compositor/intern/COM_NodeOperation.h14
-rw-r--r--source/blender/compositor/intern/COM_OpenCLDevice.cpp23
-rw-r--r--source/blender/compositor/intern/COM_OpenCLDevice.h10
-rw-r--r--source/blender/compositor/intern/COM_OutputSocket.cpp2
-rw-r--r--source/blender/compositor/intern/COM_OutputSocket.h4
-rw-r--r--source/blender/compositor/intern/COM_SingleThreadedNodeOperation.cpp8
-rw-r--r--source/blender/compositor/intern/COM_SingleThreadedNodeOperation.h6
-rw-r--r--source/blender/compositor/intern/COM_Socket.h10
-rw-r--r--source/blender/compositor/intern/COM_SocketReader.h30
-rw-r--r--source/blender/compositor/intern/COM_WorkScheduler.cpp232
-rw-r--r--source/blender/compositor/intern/COM_WorkScheduler.h4
-rw-r--r--source/blender/compositor/intern/COM_compositor.cpp66
-rw-r--r--source/blender/compositor/nodes/COM_BilateralBlurNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_BlurNode.cpp51
-rw-r--r--source/blender/compositor/nodes/COM_BokehBlurNode.cpp52
-rw-r--r--source/blender/compositor/nodes/COM_BokehImageNode.cpp3
-rw-r--r--source/blender/compositor/nodes/COM_BoxMaskNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_BrightnessNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_ChannelMatteNode.cpp8
-rw-r--r--source/blender/compositor/nodes/COM_ChromaMatteNode.cpp2
-rw-r--r--source/blender/compositor/nodes/COM_ColorCorrectionNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_ColorCurveNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_ColorMatteNode.cpp2
-rw-r--r--source/blender/compositor/nodes/COM_ColorNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_CompositorNode.cpp22
-rw-r--r--source/blender/compositor/nodes/COM_DefocusNode.cpp22
-rw-r--r--source/blender/compositor/nodes/COM_DespeckleNode.cpp50
-rw-r--r--source/blender/compositor/nodes/COM_DespeckleNode.h36
-rw-r--r--source/blender/compositor/nodes/COM_DifferenceMatteNode.cpp2
-rw-r--r--source/blender/compositor/nodes/COM_DilateErodeNode.cpp5
-rw-r--r--source/blender/compositor/nodes/COM_DirectionalBlurNode.cpp2
-rw-r--r--source/blender/compositor/nodes/COM_DistanceMatteNode.cpp35
-rw-r--r--source/blender/compositor/nodes/COM_DoubleEdgeMaskNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_EllipseMaskNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_FilterNode.cpp2
-rw-r--r--source/blender/compositor/nodes/COM_GammaNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_GroupNode.cpp9
-rw-r--r--source/blender/compositor/nodes/COM_IDMaskNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_ImageNode.cpp13
-rw-r--r--source/blender/compositor/nodes/COM_InpaintNode.cpp48
-rw-r--r--source/blender/compositor/nodes/COM_InpaintNode.h38
-rw-r--r--source/blender/compositor/nodes/COM_InvertNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_KeyingNode.cpp47
-rw-r--r--source/blender/compositor/nodes/COM_KeyingNode.h3
-rw-r--r--source/blender/compositor/nodes/COM_LensDistortionNode.cpp4
-rw-r--r--source/blender/compositor/nodes/COM_LuminanceMatteNode.cpp2
-rw-r--r--source/blender/compositor/nodes/COM_MaskNode.cpp26
-rw-r--r--source/blender/compositor/nodes/COM_MathNode.cpp6
-rw-r--r--source/blender/compositor/nodes/COM_MixNode.cpp7
-rw-r--r--source/blender/compositor/nodes/COM_MovieClipNode.cpp32
-rw-r--r--source/blender/compositor/nodes/COM_MuteNode.cpp101
-rw-r--r--source/blender/compositor/nodes/COM_MuteNode.h11
-rw-r--r--source/blender/compositor/nodes/COM_OutputFileNode.cpp9
-rw-r--r--source/blender/compositor/nodes/COM_RenderLayersNode.cpp62
-rw-r--r--source/blender/compositor/nodes/COM_RenderLayersNode.h2
-rw-r--r--source/blender/compositor/nodes/COM_RotateNode.cpp14
-rw-r--r--source/blender/compositor/nodes/COM_ScaleNode.cpp6
-rw-r--r--source/blender/compositor/nodes/COM_SplitViewerNode.cpp7
-rw-r--r--source/blender/compositor/nodes/COM_Stabilize2dNode.cpp9
-rw-r--r--source/blender/compositor/nodes/COM_TextureNode.cpp2
-rw-r--r--source/blender/compositor/nodes/COM_TimeNode.cpp2
-rw-r--r--source/blender/compositor/nodes/COM_TonemapNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_TrackPositionNode.cpp71
-rw-r--r--source/blender/compositor/nodes/COM_TrackPositionNode.h36
-rw-r--r--source/blender/compositor/nodes/COM_TransformNode.cpp12
-rw-r--r--source/blender/compositor/nodes/COM_ValueNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_VectorCurveNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_ViewLevelsNode.cpp1
-rw-r--r--source/blender/compositor/nodes/COM_ViewerNode.cpp40
-rw-r--r--source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp20
-rw-r--r--source/blender/compositor/operations/COM_AlphaOverKeyOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_AlphaOverMixedOperation.cpp20
-rw-r--r--source/blender/compositor/operations/COM_AlphaOverMixedOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.cpp20
-rw-r--r--source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_AntiAliasOperation.cpp21
-rw-r--r--source/blender/compositor/operations/COM_AntiAliasOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_BilateralBlurOperation.cpp18
-rw-r--r--source/blender/compositor/operations/COM_BilateralBlurOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_BlurBaseOperation.cpp14
-rw-r--r--source/blender/compositor/operations/COM_BlurBaseOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_BokehBlurOperation.cpp101
-rw-r--r--source/blender/compositor/operations/COM_BokehBlurOperation.h10
-rw-r--r--source/blender/compositor/operations/COM_BokehImageOperation.cpp36
-rw-r--r--source/blender/compositor/operations/COM_BokehImageOperation.h97
-rw-r--r--source/blender/compositor/operations/COM_BoxMaskOperation.cpp26
-rw-r--r--source/blender/compositor/operations/COM_BoxMaskOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_BrightnessOperation.cpp16
-rw-r--r--source/blender/compositor/operations/COM_BrightnessOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_CalculateMeanOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_CalculateMeanOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_ChangeHSVOperation.cpp16
-rw-r--r--source/blender/compositor/operations/COM_ChangeHSVOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ChannelMatteOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_ChannelMatteOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ChromaMatteOperation.cpp14
-rw-r--r--source/blender/compositor/operations/COM_ChromaMatteOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.cpp14
-rw-r--r--source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ColorBalanceLGGOperation.cpp14
-rw-r--r--source/blender/compositor/operations/COM_ColorBalanceLGGOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp6
-rw-r--r--source/blender/compositor/operations/COM_ColorCorrectionOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ColorCurveOperation.cpp68
-rw-r--r--source/blender/compositor/operations/COM_ColorCurveOperation.h8
-rw-r--r--source/blender/compositor/operations/COM_ColorMatteOperation.cpp10
-rw-r--r--source/blender/compositor/operations/COM_ColorMatteOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ColorRampOperation.cpp6
-rw-r--r--source/blender/compositor/operations/COM_ColorRampOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ColorSpillOperation.cpp16
-rw-r--r--source/blender/compositor/operations/COM_ColorSpillOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_CombineChannelsOperation.cpp43
-rw-r--r--source/blender/compositor/operations/COM_CombineChannelsOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_CompositorOperation.cpp57
-rw-r--r--source/blender/compositor/operations/COM_CompositorOperation.h22
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorProfileOperation.cpp6
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorProfileOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorToBWOperation.cpp6
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorToBWOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorToValueProg.cpp6
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorToValueProg.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorToVectorOperation.cpp4
-rw-r--r--source/blender/compositor/operations/COM_ConvertColorToVectorOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp60
-rw-r--r--source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.h8
-rw-r--r--source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.cpp10
-rw-r--r--source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertValueToColorProg.cpp10
-rw-r--r--source/blender/compositor/operations/COM_ConvertValueToColorProg.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertValueToVectorOperation.cpp12
-rw-r--r--source/blender/compositor/operations/COM_ConvertValueToVectorOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertVectorToColorOperation.cpp6
-rw-r--r--source/blender/compositor/operations/COM_ConvertVectorToColorOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertVectorToValueOperation.cpp6
-rw-r--r--source/blender/compositor/operations/COM_ConvertVectorToValueOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp49
-rw-r--r--source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ConvolutionFilterOperation.cpp56
-rw-r--r--source/blender/compositor/operations/COM_ConvolutionFilterOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_CropOperation.cpp12
-rw-r--r--source/blender/compositor/operations/COM_CropOperation.h6
-rw-r--r--source/blender/compositor/operations/COM_CurveBaseOperation.cpp14
-rw-r--r--source/blender/compositor/operations/COM_CurveBaseOperation.h3
-rw-r--r--source/blender/compositor/operations/COM_DespeckleOperation.cpp139
-rw-r--r--source/blender/compositor/operations/COM_DespeckleOperation.h49
-rw-r--r--source/blender/compositor/operations/COM_DifferenceMatteOperation.cpp18
-rw-r--r--source/blender/compositor/operations/COM_DifferenceMatteOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_DilateErodeOperation.cpp70
-rw-r--r--source/blender/compositor/operations/COM_DilateErodeOperation.h20
-rw-r--r--source/blender/compositor/operations/COM_DirectionalBlurOperation.cpp37
-rw-r--r--source/blender/compositor/operations/COM_DirectionalBlurOperation.h8
-rw-r--r--source/blender/compositor/operations/COM_DisplaceOperation.cpp18
-rw-r--r--source/blender/compositor/operations/COM_DisplaceOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_DisplaceSimpleOperation.cpp12
-rw-r--r--source/blender/compositor/operations/COM_DisplaceSimpleOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_DistanceRGBMatteOperation.cpp (renamed from source/blender/compositor/operations/COM_DistanceMatteOperation.cpp)38
-rw-r--r--source/blender/compositor/operations/COM_DistanceRGBMatteOperation.h (renamed from source/blender/compositor/operations/COM_DistanceMatteOperation.h)15
-rw-r--r--source/blender/compositor/operations/COM_DistanceYCCMatteOperation.cpp35
-rw-r--r--source/blender/compositor/operations/COM_DistanceYCCMatteOperation.h43
-rw-r--r--source/blender/compositor/operations/COM_DotproductOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_DotproductOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.cpp33
-rw-r--r--source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_EllipseMaskOperation.cpp26
-rw-r--r--source/blender/compositor/operations/COM_EllipseMaskOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp95
-rw-r--r--source/blender/compositor/operations/COM_FastGaussianBlurOperation.h35
-rw-r--r--source/blender/compositor/operations/COM_FlipOperation.cpp4
-rw-r--r--source/blender/compositor/operations/COM_FlipOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_GammaCorrectOperation.cpp36
-rw-r--r--source/blender/compositor/operations/COM_GammaCorrectOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_GammaOperation.cpp14
-rw-r--r--source/blender/compositor/operations/COM_GammaOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.cpp22
-rw-r--r--source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.h6
-rw-r--r--source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.cpp22
-rw-r--r--source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.h6
-rw-r--r--source/blender/compositor/operations/COM_GaussianBokehBlurOperation.cpp186
-rw-r--r--source/blender/compositor/operations/COM_GaussianBokehBlurOperation.h34
-rw-r--r--source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp45
-rw-r--r--source/blender/compositor/operations/COM_GaussianXBlurOperation.h6
-rw-r--r--source/blender/compositor/operations/COM_GaussianYBlurOperation.cpp44
-rw-r--r--source/blender/compositor/operations/COM_GaussianYBlurOperation.h6
-rw-r--r--source/blender/compositor/operations/COM_GlareBaseOperation.cpp4
-rw-r--r--source/blender/compositor/operations/COM_GlareBaseOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_GlareFogGlowOperation.cpp5
-rw-r--r--source/blender/compositor/operations/COM_GlareGhostOperation.cpp6
-rw-r--r--source/blender/compositor/operations/COM_GlareStreaksOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_GlareThresholdOperation.cpp18
-rw-r--r--source/blender/compositor/operations/COM_GlareThresholdOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.cpp5
-rw-r--r--source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_IDMaskOperation.cpp6
-rw-r--r--source/blender/compositor/operations/COM_IDMaskOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ImageOperation.cpp26
-rw-r--r--source/blender/compositor/operations/COM_ImageOperation.h9
-rw-r--r--source/blender/compositor/operations/COM_InpaintOperation.cpp288
-rw-r--r--source/blender/compositor/operations/COM_InpaintOperation.h75
-rw-r--r--source/blender/compositor/operations/COM_InvertOperation.cpp18
-rw-r--r--source/blender/compositor/operations/COM_InvertOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_KeyingBlurOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_KeyingBlurOperation.h6
-rw-r--r--source/blender/compositor/operations/COM_KeyingClipOperation.cpp22
-rw-r--r--source/blender/compositor/operations/COM_KeyingClipOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_KeyingDespillOperation.cpp26
-rw-r--r--source/blender/compositor/operations/COM_KeyingDespillOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_KeyingOperation.cpp39
-rw-r--r--source/blender/compositor/operations/COM_KeyingOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_KeyingScreenOperation.cpp64
-rw-r--r--source/blender/compositor/operations/COM_KeyingScreenOperation.h9
-rw-r--r--source/blender/compositor/operations/COM_LuminanceMatteOperation.cpp12
-rw-r--r--source/blender/compositor/operations/COM_LuminanceMatteOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MapUVOperation.cpp28
-rw-r--r--source/blender/compositor/operations/COM_MapUVOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MapValueOperation.cpp6
-rw-r--r--source/blender/compositor/operations/COM_MapValueOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MaskOperation.cpp121
-rw-r--r--source/blender/compositor/operations/COM_MaskOperation.h44
-rw-r--r--source/blender/compositor/operations/COM_MathBaseOperation.cpp194
-rw-r--r--source/blender/compositor/operations/COM_MathBaseOperation.h44
-rw-r--r--source/blender/compositor/operations/COM_MixAddOperation.cpp18
-rw-r--r--source/blender/compositor/operations/COM_MixAddOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixBaseOperation.cpp25
-rw-r--r--source/blender/compositor/operations/COM_MixBaseOperation.h17
-rw-r--r--source/blender/compositor/operations/COM_MixBlendOperation.cpp18
-rw-r--r--source/blender/compositor/operations/COM_MixBlendOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixBurnOperation.cpp36
-rw-r--r--source/blender/compositor/operations/COM_MixBurnOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixColorOperation.cpp21
-rw-r--r--source/blender/compositor/operations/COM_MixColorOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixDarkenOperation.cpp24
-rw-r--r--source/blender/compositor/operations/COM_MixDarkenOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixDifferenceOperation.cpp18
-rw-r--r--source/blender/compositor/operations/COM_MixDifferenceOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixDivideOperation.cpp24
-rw-r--r--source/blender/compositor/operations/COM_MixDivideOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixDodgeOperation.cpp36
-rw-r--r--source/blender/compositor/operations/COM_MixDodgeOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixGlareOperation.cpp22
-rw-r--r--source/blender/compositor/operations/COM_MixGlareOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixHueOperation.cpp18
-rw-r--r--source/blender/compositor/operations/COM_MixHueOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixLightenOperation.cpp24
-rw-r--r--source/blender/compositor/operations/COM_MixLightenOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixLinearLightOperation.cpp24
-rw-r--r--source/blender/compositor/operations/COM_MixLinearLightOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixMultiplyOperation.cpp18
-rw-r--r--source/blender/compositor/operations/COM_MixMultiplyOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixOverlayOperation.cpp24
-rw-r--r--source/blender/compositor/operations/COM_MixOverlayOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixSaturationOperation.cpp14
-rw-r--r--source/blender/compositor/operations/COM_MixSaturationOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixScreenOperation.cpp18
-rw-r--r--source/blender/compositor/operations/COM_MixScreenOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixSoftLightOperation.cpp22
-rw-r--r--source/blender/compositor/operations/COM_MixSoftLightOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixSubtractOperation.cpp18
-rw-r--r--source/blender/compositor/operations/COM_MixSubtractOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MixValueOperation.cpp14
-rw-r--r--source/blender/compositor/operations/COM_MixValueOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp6
-rw-r--r--source/blender/compositor/operations/COM_MovieClipAttributeOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_MovieClipOperation.cpp20
-rw-r--r--source/blender/compositor/operations/COM_MovieClipOperation.h7
-rw-r--r--source/blender/compositor/operations/COM_MovieDistortionOperation.cpp34
-rw-r--r--source/blender/compositor/operations/COM_MovieDistortionOperation.h42
-rw-r--r--source/blender/compositor/operations/COM_MultilayerImageOperation.cpp27
-rw-r--r--source/blender/compositor/operations/COM_MultilayerImageOperation.h6
-rw-r--r--source/blender/compositor/operations/COM_NormalizeOperation.cpp13
-rw-r--r--source/blender/compositor/operations/COM_NormalizeOperation.h6
-rw-r--r--source/blender/compositor/operations/COM_OpenCLKernels.cl141
-rw-r--r--source/blender/compositor/operations/COM_OpenCLKernels.cl.h117
-rw-r--r--source/blender/compositor/operations/COM_OutputFileOperation.cpp30
-rw-r--r--source/blender/compositor/operations/COM_OutputFileOperation.h14
-rw-r--r--source/blender/compositor/operations/COM_PreviewOperation.cpp20
-rw-r--r--source/blender/compositor/operations/COM_PreviewOperation.h9
-rw-r--r--source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.cpp39
-rw-r--r--source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.h6
-rw-r--r--source/blender/compositor/operations/COM_ReadBufferOperation.cpp44
-rw-r--r--source/blender/compositor/operations/COM_ReadBufferOperation.h10
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersAlphaProg.cpp2
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersAlphaProg.h2
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp4
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersBaseProg.h4
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersImageProg.h2
-rw-r--r--source/blender/compositor/operations/COM_RotateOperation.cpp6
-rw-r--r--source/blender/compositor/operations/COM_RotateOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ScaleOperation.cpp52
-rw-r--r--source/blender/compositor/operations/COM_ScaleOperation.h8
-rw-r--r--source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp174
-rw-r--r--source/blender/compositor/operations/COM_ScreenLensDistortionOperation.h10
-rw-r--r--source/blender/compositor/operations/COM_SeparateChannelOperation.cpp6
-rw-r--r--source/blender/compositor/operations/COM_SeparateChannelOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_SetAlphaOperation.cpp8
-rw-r--r--source/blender/compositor/operations/COM_SetAlphaOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_SetColorOperation.cpp9
-rw-r--r--source/blender/compositor/operations/COM_SetColorOperation.h32
-rw-r--r--source/blender/compositor/operations/COM_SetSamplerOperation.cpp4
-rw-r--r--source/blender/compositor/operations/COM_SetSamplerOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_SetValueOperation.cpp6
-rw-r--r--source/blender/compositor/operations/COM_SetValueOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_SetVectorOperation.cpp12
-rw-r--r--source/blender/compositor/operations/COM_SetVectorOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_SocketProxyOperation.cpp4
-rw-r--r--source/blender/compositor/operations/COM_SocketProxyOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_SplitViewerOperation.cpp25
-rw-r--r--source/blender/compositor/operations/COM_SplitViewerOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_TextureOperation.cpp35
-rw-r--r--source/blender/compositor/operations/COM_TextureOperation.h7
-rw-r--r--source/blender/compositor/operations/COM_TonemapOperation.cpp26
-rw-r--r--source/blender/compositor/operations/COM_TonemapOperation.h8
-rw-r--r--source/blender/compositor/operations/COM_TrackPositionOperation.cpp118
-rw-r--r--source/blender/compositor/operations/COM_TrackPositionOperation.h83
-rw-r--r--source/blender/compositor/operations/COM_TranslateOperation.cpp4
-rw-r--r--source/blender/compositor/operations/COM_TranslateOperation.h6
-rw-r--r--source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp305
-rw-r--r--source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.h31
-rw-r--r--source/blender/compositor/operations/COM_VectorBlurOperation.cpp21
-rw-r--r--source/blender/compositor/operations/COM_VectorBlurOperation.h4
-rw-r--r--source/blender/compositor/operations/COM_VectorCurveOperation.cpp5
-rw-r--r--source/blender/compositor/operations/COM_VectorCurveOperation.h2
-rw-r--r--source/blender/compositor/operations/COM_ViewerBaseOperation.cpp45
-rw-r--r--source/blender/compositor/operations/COM_ViewerBaseOperation.h15
-rw-r--r--source/blender/compositor/operations/COM_ViewerOperation.cpp47
-rw-r--r--source/blender/compositor/operations/COM_ViewerOperation.h3
-rw-r--r--source/blender/compositor/operations/COM_WriteBufferOperation.cpp26
-rw-r--r--source/blender/compositor/operations/COM_WriteBufferOperation.h9
-rw-r--r--source/blender/compositor/operations/COM_ZCombineOperation.cpp34
-rw-r--r--source/blender/compositor/operations/COM_ZCombineOperation.h4
-rw-r--r--source/blender/datatoc/CMakeLists.txt29
-rw-r--r--source/blender/datatoc/datatoc.c114
-rw-r--r--source/blender/editors/animation/anim_channels_defines.c146
-rw-r--r--source/blender/editors/animation/anim_channels_edit.c83
-rw-r--r--source/blender/editors/animation/anim_deps.c104
-rw-r--r--source/blender/editors/animation/anim_draw.c16
-rw-r--r--source/blender/editors/animation/anim_filter.c144
-rw-r--r--source/blender/editors/animation/anim_intern.h3
-rw-r--r--source/blender/editors/animation/anim_ipo_utils.c22
-rw-r--r--source/blender/editors/animation/anim_markers.c31
-rw-r--r--source/blender/editors/animation/anim_ops.c24
-rw-r--r--source/blender/editors/animation/fmodifier_ui.c17
-rw-r--r--source/blender/editors/animation/keyframes_draw.c57
-rw-r--r--source/blender/editors/animation/keyframes_edit.c2
-rw-r--r--source/blender/editors/animation/keyframes_general.c1
-rw-r--r--source/blender/editors/animation/keyframing.c291
-rw-r--r--source/blender/editors/animation/keyingsets.c16
-rw-r--r--source/blender/editors/armature/armature_ops.c8
-rw-r--r--source/blender/editors/armature/editarmature.c78
-rw-r--r--source/blender/editors/armature/editarmature_retarget.c10
-rw-r--r--source/blender/editors/armature/editarmature_sketch.c143
-rw-r--r--source/blender/editors/armature/meshlaplacian.c145
-rw-r--r--source/blender/editors/armature/poseSlide.c25
-rw-r--r--source/blender/editors/armature/poseUtils.c2
-rw-r--r--source/blender/editors/armature/poselib.c28
-rw-r--r--source/blender/editors/armature/poseobject.c173
-rw-r--r--source/blender/editors/armature/reeb.c41
-rw-r--r--source/blender/editors/armature/reeb.h4
-rw-r--r--source/blender/editors/curve/editcurve.c206
-rw-r--r--source/blender/editors/curve/editfont.c45
-rw-r--r--source/blender/editors/datafiles/Bfont.c1609
-rw-r--r--source/blender/editors/datafiles/CMakeLists.txt92
-rw-r--r--source/blender/editors/datafiles/SConscript52
-rw-r--r--source/blender/editors/datafiles/add.png.c352
-rw-r--r--source/blender/editors/datafiles/bfont.ttf.c5995
-rw-r--r--source/blender/editors/datafiles/blender_icons.png.c7101
-rw-r--r--source/blender/editors/datafiles/blob.png.c344
-rw-r--r--source/blender/editors/datafiles/blur.png.c301
-rw-r--r--source/blender/editors/datafiles/bmonofont.ttf.c9684
-rw-r--r--source/blender/editors/datafiles/clay.png.c359
-rw-r--r--source/blender/editors/datafiles/claystrips.png.c290
-rw-r--r--source/blender/editors/datafiles/clone.png.c346
-rw-r--r--source/blender/editors/datafiles/crease.png.c279
-rw-r--r--source/blender/editors/datafiles/darken.png.c311
-rw-r--r--source/blender/editors/datafiles/draw.png.c364
-rw-r--r--source/blender/editors/datafiles/fill.png.c537
-rw-r--r--source/blender/editors/datafiles/flatten.png.c294
-rw-r--r--source/blender/editors/datafiles/grab.png.c261
-rw-r--r--source/blender/editors/datafiles/inflate.png.c286
-rw-r--r--source/blender/editors/datafiles/layer.png.c353
-rw-r--r--source/blender/editors/datafiles/lighten.png.c304
-rw-r--r--source/blender/editors/datafiles/mask.png.c400
-rw-r--r--source/blender/editors/datafiles/mix.png.c336
-rw-r--r--source/blender/editors/datafiles/multiply.png.c323
-rw-r--r--source/blender/editors/datafiles/nudge.png.c572
-rw-r--r--source/blender/editors/datafiles/pinch.png.c318
-rw-r--r--source/blender/editors/datafiles/preview.blend.c17982
-rw-r--r--source/blender/editors/datafiles/prvicons.c393
-rw-r--r--source/blender/editors/datafiles/scrape.png.c417
-rw-r--r--source/blender/editors/datafiles/smear.png.c302
-rw-r--r--source/blender/editors/datafiles/smooth.png.c523
-rw-r--r--source/blender/editors/datafiles/snake_hook.png.c313
-rw-r--r--source/blender/editors/datafiles/soften.png.c298
-rw-r--r--source/blender/editors/datafiles/splash.png.c7181
-rw-r--r--source/blender/editors/datafiles/startup.blend.c11871
-rw-r--r--source/blender/editors/datafiles/subtract.png.c327
-rw-r--r--source/blender/editors/datafiles/texdraw.png.c305
-rw-r--r--source/blender/editors/datafiles/thumb.png.c294
-rw-r--r--source/blender/editors/datafiles/twist.png.c350
-rw-r--r--source/blender/editors/datafiles/vertexdraw.png.c330
-rw-r--r--source/blender/editors/gpencil/drawgpencil.c51
-rw-r--r--source/blender/editors/gpencil/gpencil_buttons.c8
-rw-r--r--source/blender/editors/gpencil/gpencil_edit.c26
-rw-r--r--source/blender/editors/gpencil/gpencil_paint.c219
-rw-r--r--source/blender/editors/gpencil/gpencil_undo.c11
-rw-r--r--source/blender/editors/include/BIF_gl.h2
-rw-r--r--source/blender/editors/include/BIF_glutil.h4
-rw-r--r--source/blender/editors/include/ED_anim_api.h36
-rw-r--r--source/blender/editors/include/ED_armature.h18
-rw-r--r--source/blender/editors/include/ED_clip.h18
-rw-r--r--source/blender/editors/include/ED_curve.h2
-rw-r--r--source/blender/editors/include/ED_datafiles.h8
-rw-r--r--source/blender/editors/include/ED_image.h31
-rw-r--r--source/blender/editors/include/ED_mask.h25
-rw-r--r--source/blender/editors/include/ED_mball.h2
-rw-r--r--source/blender/editors/include/ED_mesh.h148
-rw-r--r--source/blender/editors/include/ED_node.h23
-rw-r--r--source/blender/editors/include/ED_numinput.h1
-rw-r--r--source/blender/editors/include/ED_object.h14
-rw-r--r--source/blender/editors/include/ED_particle.h2
-rw-r--r--source/blender/editors/include/ED_render.h8
-rw-r--r--source/blender/editors/include/ED_screen.h3
-rw-r--r--source/blender/editors/include/ED_screen_types.h4
-rw-r--r--source/blender/editors/include/ED_sculpt.h6
-rw-r--r--source/blender/editors/include/ED_sequencer.h5
-rw-r--r--source/blender/editors/include/ED_util.h2
-rw-r--r--source/blender/editors/include/ED_uvedit.h1
-rw-r--r--source/blender/editors/include/ED_view3d.h173
-rw-r--r--source/blender/editors/include/UI_interface.h286
-rw-r--r--source/blender/editors/include/UI_resources.h1
-rw-r--r--source/blender/editors/include/UI_view2d.h25
-rw-r--r--source/blender/editors/interface/interface.c939
-rw-r--r--source/blender/editors/interface/interface_anim.c18
-rw-r--r--source/blender/editors/interface/interface_draw.c207
-rw-r--r--source/blender/editors/interface/interface_handlers.c1199
-rw-r--r--source/blender/editors/interface/interface_icons.c24
-rw-r--r--source/blender/editors/interface/interface_intern.h82
-rw-r--r--source/blender/editors/interface/interface_layout.c58
-rw-r--r--source/blender/editors/interface/interface_ops.c276
-rw-r--r--source/blender/editors/interface/interface_panel.c87
-rw-r--r--source/blender/editors/interface/interface_regions.c586
-rw-r--r--source/blender/editors/interface/interface_style.c16
-rw-r--r--source/blender/editors/interface/interface_templates.c321
-rw-r--r--source/blender/editors/interface/interface_utils.c8
-rw-r--r--source/blender/editors/interface/interface_widgets.c482
-rw-r--r--source/blender/editors/interface/resources.c67
-rw-r--r--source/blender/editors/interface/view2d.c165
-rw-r--r--source/blender/editors/interface/view2d_ops.c370
-rw-r--r--source/blender/editors/io/io_collada.c76
-rw-r--r--source/blender/editors/io/io_collada.h2
-rw-r--r--source/blender/editors/io/io_ops.c4
-rw-r--r--source/blender/editors/io/io_ops.h2
-rw-r--r--source/blender/editors/mask/CMakeLists.txt2
-rw-r--r--source/blender/editors/mask/mask_add.c87
-rw-r--r--source/blender/editors/mask/mask_draw.c158
-rw-r--r--source/blender/editors/mask/mask_edit.c346
-rw-r--r--source/blender/editors/mask/mask_editaction.c3
-rw-r--r--source/blender/editors/mask/mask_intern.h11
-rw-r--r--source/blender/editors/mask/mask_ops.c169
-rw-r--r--source/blender/editors/mask/mask_select.c68
-rw-r--r--source/blender/editors/mesh/editface.c65
-rw-r--r--source/blender/editors/mesh/editmesh_add.c208
-rw-r--r--source/blender/editors/mesh/editmesh_bvh.c26
-rw-r--r--source/blender/editors/mesh/editmesh_knife.c557
-rw-r--r--source/blender/editors/mesh/editmesh_loopcut.c13
-rw-r--r--source/blender/editors/mesh/editmesh_rip.c76
-rw-r--r--source/blender/editors/mesh/editmesh_select.c133
-rw-r--r--source/blender/editors/mesh/editmesh_slide.c88
-rw-r--r--source/blender/editors/mesh/editmesh_tools.c908
-rw-r--r--source/blender/editors/mesh/editmesh_utils.c59
-rw-r--r--source/blender/editors/mesh/mesh_data.c213
-rw-r--r--source/blender/editors/mesh/mesh_intern.h8
-rw-r--r--source/blender/editors/mesh/mesh_navmesh.c2
-rw-r--r--source/blender/editors/mesh/mesh_ops.c5
-rw-r--r--source/blender/editors/mesh/meshtools.c248
-rw-r--r--source/blender/editors/metaball/mball_edit.c85
-rw-r--r--source/blender/editors/object/object_add.c717
-rw-r--r--source/blender/editors/object/object_bake.c90
-rw-r--r--source/blender/editors/object/object_constraint.c217
-rw-r--r--source/blender/editors/object/object_edit.c106
-rw-r--r--source/blender/editors/object/object_group.c163
-rw-r--r--source/blender/editors/object/object_hook.c69
-rw-r--r--source/blender/editors/object/object_intern.h3
-rw-r--r--source/blender/editors/object/object_lattice.c8
-rw-r--r--source/blender/editors/object/object_modifier.c112
-rw-r--r--source/blender/editors/object/object_ops.c2
-rw-r--r--source/blender/editors/object/object_relations.c267
-rw-r--r--source/blender/editors/object/object_select.c356
-rw-r--r--source/blender/editors/object/object_shapekey.c22
-rw-r--r--source/blender/editors/object/object_transform.c17
-rw-r--r--source/blender/editors/object/object_vgroup.c84
-rw-r--r--source/blender/editors/physics/dynamicpaint_ops.c4
-rw-r--r--source/blender/editors/physics/particle_boids.c98
-rw-r--r--source/blender/editors/physics/particle_edit.c122
-rw-r--r--source/blender/editors/physics/particle_object.c6
-rw-r--r--source/blender/editors/physics/physics_fluid.c43
-rw-r--r--source/blender/editors/physics/physics_pointcache.c6
-rw-r--r--source/blender/editors/render/render_internal.c74
-rw-r--r--source/blender/editors/render/render_opengl.c128
-rw-r--r--source/blender/editors/render/render_preview.c102
-rw-r--r--source/blender/editors/render/render_shading.c3
-rw-r--r--source/blender/editors/render/render_update.c44
-rw-r--r--source/blender/editors/render/render_view.c2
-rw-r--r--source/blender/editors/screen/area.c194
-rw-r--r--source/blender/editors/screen/glutil.c35
-rw-r--r--source/blender/editors/screen/screen_edit.c40
-rw-r--r--source/blender/editors/screen/screen_intern.h2
-rw-r--r--source/blender/editors/screen/screen_ops.c166
-rw-r--r--source/blender/editors/screen/screendump.c29
-rw-r--r--source/blender/editors/sculpt_paint/CMakeLists.txt2
-rw-r--r--source/blender/editors/sculpt_paint/paint_cursor.c28
-rw-r--r--source/blender/editors/sculpt_paint/paint_hide.c11
-rw-r--r--source/blender/editors/sculpt_paint/paint_image.c264
-rw-r--r--source/blender/editors/sculpt_paint/paint_intern.h2
-rw-r--r--source/blender/editors/sculpt_paint/paint_mask.c7
-rw-r--r--source/blender/editors/sculpt_paint/paint_ops.c14
-rw-r--r--source/blender/editors/sculpt_paint/paint_stroke.c30
-rw-r--r--source/blender/editors/sculpt_paint/paint_undo.c20
-rw-r--r--source/blender/editors/sculpt_paint/paint_utils.c42
-rw-r--r--source/blender/editors/sculpt_paint/paint_vertex.c417
-rw-r--r--source/blender/editors/sculpt_paint/sculpt.c141
-rw-r--r--source/blender/editors/sculpt_paint/sculpt_intern.h6
-rw-r--r--source/blender/editors/sculpt_paint/sculpt_undo.c38
-rw-r--r--source/blender/editors/sculpt_paint/sculpt_uv.c12
-rw-r--r--source/blender/editors/sound/sound_ops.c16
-rw-r--r--source/blender/editors/space_action/action_draw.c2
-rw-r--r--source/blender/editors/space_action/action_edit.c37
-rw-r--r--source/blender/editors/space_action/action_select.c38
-rw-r--r--source/blender/editors/space_action/space_action.c8
-rw-r--r--source/blender/editors/space_buttons/buttons_context.c23
-rw-r--r--source/blender/editors/space_buttons/buttons_header.c6
-rw-r--r--source/blender/editors/space_buttons/buttons_ops.c6
-rw-r--r--source/blender/editors/space_buttons/buttons_texture.c2
-rw-r--r--source/blender/editors/space_clip/CMakeLists.txt2
-rw-r--r--source/blender/editors/space_clip/clip_buttons.c8
-rw-r--r--source/blender/editors/space_clip/clip_dopesheet_draw.c3
-rw-r--r--source/blender/editors/space_clip/clip_dopesheet_ops.c4
-rw-r--r--source/blender/editors/space_clip/clip_draw.c108
-rw-r--r--source/blender/editors/space_clip/clip_editor.c151
-rw-r--r--source/blender/editors/space_clip/clip_graph_draw.c4
-rw-r--r--source/blender/editors/space_clip/clip_graph_ops.c16
-rw-r--r--source/blender/editors/space_clip/clip_intern.h10
-rw-r--r--source/blender/editors/space_clip/clip_ops.c157
-rw-r--r--source/blender/editors/space_clip/clip_toolbar.c4
-rw-r--r--source/blender/editors/space_clip/clip_utils.c7
-rw-r--r--source/blender/editors/space_clip/space_clip.c130
-rw-r--r--source/blender/editors/space_clip/tracking_ops.c131
-rw-r--r--source/blender/editors/space_clip/tracking_select.c64
-rw-r--r--source/blender/editors/space_console/console_draw.c8
-rw-r--r--source/blender/editors/space_console/space_console.c3
-rw-r--r--source/blender/editors/space_file/file_intern.h1
-rw-r--r--source/blender/editors/space_file/file_ops.c122
-rw-r--r--source/blender/editors/space_file/file_panels.c19
-rw-r--r--source/blender/editors/space_file/filelist.c57
-rw-r--r--source/blender/editors/space_file/filesel.c16
-rw-r--r--source/blender/editors/space_file/fsmenu.c197
-rw-r--r--source/blender/editors/space_file/fsmenu.h8
-rw-r--r--source/blender/editors/space_file/space_file.c32
-rw-r--r--source/blender/editors/space_graph/graph_buttons.c6
-rw-r--r--source/blender/editors/space_graph/graph_draw.c22
-rw-r--r--source/blender/editors/space_graph/graph_edit.c147
-rw-r--r--source/blender/editors/space_graph/graph_ops.c4
-rw-r--r--source/blender/editors/space_graph/graph_select.c37
-rw-r--r--source/blender/editors/space_graph/space_graph.c2
-rw-r--r--source/blender/editors/space_image/CMakeLists.txt1
-rw-r--r--source/blender/editors/space_image/image_buttons.c163
-rw-r--r--source/blender/editors/space_image/image_draw.c155
-rw-r--r--source/blender/editors/space_image/image_edit.c391
-rw-r--r--source/blender/editors/space_image/image_intern.h2
-rw-r--r--source/blender/editors/space_image/image_ops.c265
-rw-r--r--source/blender/editors/space_image/space_image.c415
-rw-r--r--source/blender/editors/space_info/info_draw.c8
-rw-r--r--source/blender/editors/space_info/info_ops.c3
-rw-r--r--source/blender/editors/space_info/info_report.c5
-rw-r--r--source/blender/editors/space_info/info_stats.c11
-rw-r--r--source/blender/editors/space_info/space_info.c2
-rw-r--r--source/blender/editors/space_logic/logic_buttons.c8
-rw-r--r--source/blender/editors/space_logic/logic_ops.c119
-rw-r--r--source/blender/editors/space_logic/logic_window.c2700
-rw-r--r--source/blender/editors/space_logic/space_logic.c48
-rw-r--r--source/blender/editors/space_nla/nla_buttons.c3
-rw-r--r--source/blender/editors/space_nla/nla_channels.c15
-rw-r--r--source/blender/editors/space_nla/nla_edit.c11
-rw-r--r--source/blender/editors/space_nla/nla_select.c34
-rw-r--r--source/blender/editors/space_node/CMakeLists.txt10
-rw-r--r--source/blender/editors/space_node/SConscript5
-rw-r--r--source/blender/editors/space_node/drawnode.c717
-rw-r--r--source/blender/editors/space_node/node_add.c392
-rw-r--r--source/blender/editors/space_node/node_buttons.c62
-rw-r--r--source/blender/editors/space_node/node_draw.c501
-rw-r--r--source/blender/editors/space_node/node_edit.c3252
-rw-r--r--source/blender/editors/space_node/node_group.c1136
-rw-r--r--source/blender/editors/space_node/node_header.c132
-rw-r--r--source/blender/editors/space_node/node_intern.h109
-rw-r--r--source/blender/editors/space_node/node_ops.c63
-rw-r--r--source/blender/editors/space_node/node_relationships.c1423
-rw-r--r--source/blender/editors/space_node/node_select.c314
-rw-r--r--source/blender/editors/space_node/node_state.c133
-rw-r--r--source/blender/editors/space_node/node_templates.c23
-rw-r--r--source/blender/editors/space_node/node_view.c551
-rw-r--r--source/blender/editors/space_node/space_node.c30
-rw-r--r--source/blender/editors/space_outliner/outliner_draw.c30
-rw-r--r--source/blender/editors/space_outliner/outliner_edit.c16
-rw-r--r--source/blender/editors/space_outliner/outliner_select.c16
-rw-r--r--source/blender/editors/space_outliner/outliner_tools.c70
-rw-r--r--source/blender/editors/space_outliner/outliner_tree.c30
-rw-r--r--source/blender/editors/space_outliner/space_outliner.c2
-rw-r--r--source/blender/editors/space_sequencer/CMakeLists.txt2
-rw-r--r--source/blender/editors/space_sequencer/sequencer_add.c72
-rw-r--r--source/blender/editors/space_sequencer/sequencer_draw.c322
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c471
-rw-r--r--source/blender/editors/space_sequencer/sequencer_intern.h18
-rw-r--r--source/blender/editors/space_sequencer/sequencer_modifier.c222
-rw-r--r--source/blender/editors/space_sequencer/sequencer_ops.c74
-rw-r--r--source/blender/editors/space_sequencer/sequencer_scopes.c128
-rw-r--r--source/blender/editors/space_sequencer/sequencer_select.c15
-rw-r--r--source/blender/editors/space_sequencer/sequencer_view.c234
-rw-r--r--source/blender/editors/space_sequencer/space_sequencer.c84
-rw-r--r--source/blender/editors/space_text/text_draw.c19
-rw-r--r--source/blender/editors/space_text/text_header.c5
-rw-r--r--source/blender/editors/space_text/text_ops.c28
-rw-r--r--source/blender/editors/space_text/text_python.c4
-rw-r--r--source/blender/editors/space_time/space_time.c5
-rw-r--r--source/blender/editors/space_time/time_ops.c2
-rw-r--r--source/blender/editors/space_userpref/space_userpref.c2
-rw-r--r--source/blender/editors/space_view3d/drawanimviz.c31
-rw-r--r--source/blender/editors/space_view3d/drawarmature.c137
-rw-r--r--source/blender/editors/space_view3d/drawmesh.c76
-rw-r--r--source/blender/editors/space_view3d/drawobject.c933
-rw-r--r--source/blender/editors/space_view3d/drawvolume.c71
-rw-r--r--source/blender/editors/space_view3d/space_view3d.c21
-rw-r--r--source/blender/editors/space_view3d/view3d_buttons.c376
-rw-r--r--source/blender/editors/space_view3d/view3d_draw.c307
-rw-r--r--source/blender/editors/space_view3d/view3d_edit.c557
-rw-r--r--source/blender/editors/space_view3d/view3d_fly.c16
-rw-r--r--source/blender/editors/space_view3d/view3d_header.c35
-rw-r--r--source/blender/editors/space_view3d/view3d_intern.h5
-rw-r--r--source/blender/editors/space_view3d/view3d_ops.c4
-rw-r--r--source/blender/editors/space_view3d/view3d_select.c845
-rw-r--r--source/blender/editors/space_view3d/view3d_snap.c29
-rw-r--r--source/blender/editors/space_view3d/view3d_toolbar.c2
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c468
-rw-r--r--source/blender/editors/transform/transform.c742
-rw-r--r--source/blender/editors/transform/transform.h7
-rw-r--r--source/blender/editors/transform/transform_constraints.c16
-rw-r--r--source/blender/editors/transform/transform_conversions.c348
-rw-r--r--source/blender/editors/transform/transform_generics.c144
-rw-r--r--source/blender/editors/transform/transform_manipulator.c44
-rw-r--r--source/blender/editors/transform/transform_ops.c20
-rw-r--r--source/blender/editors/transform/transform_orientations.c44
-rw-r--r--source/blender/editors/transform/transform_snap.c109
-rw-r--r--source/blender/editors/util/CMakeLists.txt1
-rw-r--r--source/blender/editors/util/ed_util.c8
-rw-r--r--source/blender/editors/util/editmode_undo.c8
-rw-r--r--source/blender/editors/util/numinput.c21
-rw-r--r--source/blender/editors/util/undo.c17
-rw-r--r--source/blender/editors/uvedit/uvedit_buttons.c4
-rw-r--r--source/blender/editors/uvedit/uvedit_draw.c16
-rw-r--r--source/blender/editors/uvedit/uvedit_intern.h4
-rw-r--r--source/blender/editors/uvedit/uvedit_ops.c207
-rw-r--r--source/blender/editors/uvedit/uvedit_parametrizer.c51
-rw-r--r--source/blender/editors/uvedit/uvedit_parametrizer.h16
-rw-r--r--source/blender/editors/uvedit/uvedit_smart_stitch.c18
-rw-r--r--source/blender/editors/uvedit/uvedit_unwrap_ops.c33
-rw-r--r--source/blender/gpu/CMakeLists.txt14
-rw-r--r--source/blender/gpu/GPU_buffers.h12
-rw-r--r--source/blender/gpu/GPU_draw.h5
-rw-r--r--source/blender/gpu/GPU_extensions.h2
-rw-r--r--source/blender/gpu/GPU_material.h11
-rw-r--r--source/blender/gpu/SConscript12
-rw-r--r--source/blender/gpu/intern/gpu_buffers.c268
-rw-r--r--source/blender/gpu/intern/gpu_codegen.c6
-rw-r--r--source/blender/gpu/intern/gpu_codegen.h2
-rw-r--r--source/blender/gpu/intern/gpu_draw.c61
-rw-r--r--source/blender/gpu/intern/gpu_extensions.c4
-rw-r--r--source/blender/gpu/intern/gpu_material.c87
-rw-r--r--source/blender/gpu/shaders/gpu_shader_material.glsl6
-rw-r--r--source/blender/gpu/shaders/gpu_shader_material.glsl.c1607
-rw-r--r--source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_frag.glsl14
-rw-r--r--source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_frag.glsl.c33
-rw-r--r--source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_vert.glsl.c9
-rw-r--r--source/blender/gpu/shaders/gpu_shader_vertex.glsl.c14
-rw-r--r--source/blender/gpu/shaders/gpu_shader_vsm_store_frag.glsl.c22
-rw-r--r--source/blender/gpu/shaders/gpu_shader_vsm_store_vert.glsl.c10
-rw-r--r--source/blender/ikplugin/BIK_api.h6
-rw-r--r--source/blender/ikplugin/CMakeLists.txt17
-rw-r--r--source/blender/ikplugin/SConscript1
-rw-r--r--source/blender/ikplugin/intern/ikplugin_api.c16
-rw-r--r--source/blender/ikplugin/intern/iksolver_plugin.c11
-rw-r--r--source/blender/ikplugin/intern/itasc_plugin.cpp16
-rw-r--r--source/blender/imbuf/CMakeLists.txt18
-rw-r--r--source/blender/imbuf/IMB_colormanagement.h155
-rw-r--r--source/blender/imbuf/IMB_imbuf.h40
-rw-r--r--source/blender/imbuf/IMB_imbuf_types.h25
-rw-r--r--source/blender/imbuf/IMB_moviecache.h18
-rw-r--r--source/blender/imbuf/IMB_thumbs.h8
-rw-r--r--source/blender/imbuf/SConscript4
-rw-r--r--source/blender/imbuf/intern/IMB_anim.h9
-rw-r--r--source/blender/imbuf/intern/IMB_colormanagement_intern.h99
-rw-r--r--source/blender/imbuf/intern/IMB_filetype.h25
-rw-r--r--source/blender/imbuf/intern/IMB_indexer.h25
-rw-r--r--source/blender/imbuf/intern/IMB_metadata.h2
-rw-r--r--source/blender/imbuf/intern/allocimbuf.c23
-rw-r--r--source/blender/imbuf/intern/anim_movie.c120
-rw-r--r--source/blender/imbuf/intern/bmp.c24
-rw-r--r--source/blender/imbuf/intern/cineon/cineon_dpx.c15
-rw-r--r--source/blender/imbuf/intern/colormanagement.c2548
-rw-r--r--source/blender/imbuf/intern/dds/CMakeLists.txt1
-rw-r--r--source/blender/imbuf/intern/dds/DirectDrawSurface.cpp6
-rw-r--r--source/blender/imbuf/intern/dds/SConscript3
-rw-r--r--source/blender/imbuf/intern/dds/dds_api.cpp25
-rw-r--r--source/blender/imbuf/intern/dds/dds_api.h4
-rw-r--r--source/blender/imbuf/intern/divers.c161
-rw-r--r--source/blender/imbuf/intern/filetype.c38
-rw-r--r--source/blender/imbuf/intern/filter.c20
-rw-r--r--source/blender/imbuf/intern/imageprocess.c134
-rw-r--r--source/blender/imbuf/intern/imbuf_cocoa.m385
-rw-r--r--source/blender/imbuf/intern/indexer.c226
-rw-r--r--source/blender/imbuf/intern/indexer_dv.c13
-rw-r--r--source/blender/imbuf/intern/iris.c36
-rw-r--r--source/blender/imbuf/intern/jp2.c196
-rw-r--r--source/blender/imbuf/intern/jpeg.c37
-rw-r--r--source/blender/imbuf/intern/metadata.c5
-rw-r--r--source/blender/imbuf/intern/module.c3
-rw-r--r--source/blender/imbuf/intern/moviecache.c155
-rw-r--r--source/blender/imbuf/intern/openexr/CMakeLists.txt1
-rw-r--r--source/blender/imbuf/intern/openexr/SConscript4
-rw-r--r--source/blender/imbuf/intern/openexr/openexr_api.cpp273
-rw-r--r--source/blender/imbuf/intern/openexr/openexr_api.h2
-rw-r--r--source/blender/imbuf/intern/openexr/openexr_multi.h8
-rw-r--r--source/blender/imbuf/intern/openexr/openexr_stub.cpp4
-rw-r--r--source/blender/imbuf/intern/png.c78
-rw-r--r--source/blender/imbuf/intern/radiance_hdr.c18
-rw-r--r--source/blender/imbuf/intern/readimage.c62
-rw-r--r--source/blender/imbuf/intern/rectop.c68
-rw-r--r--source/blender/imbuf/intern/rotate.c3
-rw-r--r--source/blender/imbuf/intern/scaling.c66
-rw-r--r--source/blender/imbuf/intern/targa.c21
-rw-r--r--source/blender/imbuf/intern/thumbs.c18
-rw-r--r--source/blender/imbuf/intern/thumbs_blend.c14
-rw-r--r--source/blender/imbuf/intern/tiff.c36
-rw-r--r--source/blender/imbuf/intern/util.c72
-rw-r--r--source/blender/imbuf/intern/writeimage.c36
-rw-r--r--source/blender/makesdna/DNA_ID.h12
-rw-r--r--source/blender/makesdna/DNA_action_types.h8
-rw-r--r--source/blender/makesdna/DNA_anim_types.h2
-rw-r--r--source/blender/makesdna/DNA_armature_types.h10
-rw-r--r--source/blender/makesdna/DNA_camera_types.h2
-rw-r--r--source/blender/makesdna/DNA_color_types.h28
-rw-r--r--source/blender/makesdna/DNA_constraint_types.h19
-rw-r--r--source/blender/makesdna/DNA_curve_types.h34
-rw-r--r--source/blender/makesdna/DNA_customdata_types.h6
-rw-r--r--source/blender/makesdna/DNA_defs.h3
-rw-r--r--source/blender/makesdna/DNA_dynamicpaint_types.h2
-rw-r--r--source/blender/makesdna/DNA_gpencil_types.h6
-rw-r--r--source/blender/makesdna/DNA_image_types.h5
-rw-r--r--source/blender/makesdna/DNA_ipo_types.h6
-rw-r--r--source/blender/makesdna/DNA_key_types.h2
-rw-r--r--source/blender/makesdna/DNA_mask_types.h39
-rw-r--r--source/blender/makesdna/DNA_material_types.h14
-rw-r--r--source/blender/makesdna/DNA_mesh_types.h8
-rw-r--r--source/blender/makesdna/DNA_meshdata_types.h31
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h5
-rw-r--r--source/blender/makesdna/DNA_movieclip_types.h4
-rw-r--r--source/blender/makesdna/DNA_node_types.h69
-rw-r--r--source/blender/makesdna/DNA_object_types.h28
-rw-r--r--source/blender/makesdna/DNA_particle_types.h4
-rw-r--r--source/blender/makesdna/DNA_scene_types.h37
-rw-r--r--source/blender/makesdna/DNA_screen_types.h9
-rw-r--r--source/blender/makesdna/DNA_sdna_types.h9
-rw-r--r--source/blender/makesdna/DNA_sequence_types.h113
-rw-r--r--source/blender/makesdna/DNA_space_types.h85
-rw-r--r--source/blender/makesdna/DNA_texture_types.h4
-rw-r--r--source/blender/makesdna/DNA_userdef_types.h26
-rw-r--r--source/blender/makesdna/DNA_vfont_types.h6
-rw-r--r--source/blender/makesdna/DNA_view2d_types.h6
-rw-r--r--source/blender/makesdna/DNA_view3d_types.h8
-rw-r--r--source/blender/makesdna/intern/dna_genfile.c6
-rw-r--r--source/blender/makesdna/intern/makesdna.c158
-rw-r--r--source/blender/makesrna/RNA_access.h6
-rw-r--r--source/blender/makesrna/RNA_enum_types.h5
-rw-r--r--source/blender/makesrna/RNA_types.h2
-rw-r--r--source/blender/makesrna/intern/makesrna.c145
-rw-r--r--source/blender/makesrna/intern/rna_ID.c19
-rw-r--r--source/blender/makesrna/intern/rna_access.c103
-rw-r--r--source/blender/makesrna/intern/rna_action_api.c6
-rw-r--r--source/blender/makesrna/intern/rna_actuator.c9
-rw-r--r--source/blender/makesrna/intern/rna_actuator_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_animation.c2
-rw-r--r--source/blender/makesrna/intern/rna_animation_api.c1
-rw-r--r--source/blender/makesrna/intern/rna_armature.c36
-rw-r--r--source/blender/makesrna/intern/rna_armature_api.c6
-rw-r--r--source/blender/makesrna/intern/rna_boid.c2
-rw-r--r--source/blender/makesrna/intern/rna_camera_api.c8
-rw-r--r--source/blender/makesrna/intern/rna_cloth.c2
-rw-r--r--source/blender/makesrna/intern/rna_color.c258
-rw-r--r--source/blender/makesrna/intern/rna_constraint.c16
-rw-r--r--source/blender/makesrna/intern/rna_controller.c2
-rw-r--r--source/blender/makesrna/intern/rna_controller_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_curve.c59
-rw-r--r--source/blender/makesrna/intern/rna_define.c126
-rw-r--r--source/blender/makesrna/intern/rna_dynamicpaint.c2
-rw-r--r--source/blender/makesrna/intern/rna_fcurve.c8
-rw-r--r--source/blender/makesrna/intern/rna_fcurve_api.c6
-rw-r--r--source/blender/makesrna/intern/rna_fluidsim.c7
-rw-r--r--source/blender/makesrna/intern/rna_gpencil.c339
-rw-r--r--source/blender/makesrna/intern/rna_image.c28
-rw-r--r--source/blender/makesrna/intern/rna_image_api.c25
-rw-r--r--source/blender/makesrna/intern/rna_internal.h25
-rw-r--r--source/blender/makesrna/intern/rna_key.c6
-rw-r--r--source/blender/makesrna/intern/rna_lattice.c12
-rw-r--r--source/blender/makesrna/intern/rna_main.c7
-rw-r--r--source/blender/makesrna/intern/rna_main_api.c193
-rw-r--r--source/blender/makesrna/intern/rna_mask.c136
-rw-r--r--source/blender/makesrna/intern/rna_material.c8
-rw-r--r--source/blender/makesrna/intern/rna_material_api.c6
-rw-r--r--source/blender/makesrna/intern/rna_mesh.c75
-rw-r--r--source/blender/makesrna/intern/rna_mesh_api.c6
-rw-r--r--source/blender/makesrna/intern/rna_modifier.c6
-rw-r--r--source/blender/makesrna/intern/rna_movieclip.c17
-rw-r--r--source/blender/makesrna/intern/rna_nla.c43
-rw-r--r--source/blender/makesrna/intern/rna_nodetree.c341
-rw-r--r--source/blender/makesrna/intern/rna_nodetree_types.h6
-rw-r--r--source/blender/makesrna/intern/rna_object.c71
-rw-r--r--source/blender/makesrna/intern/rna_object_api.c87
-rw-r--r--source/blender/makesrna/intern/rna_object_force.c2
-rw-r--r--source/blender/makesrna/intern/rna_particle.c9
-rw-r--r--source/blender/makesrna/intern/rna_pose.c22
-rw-r--r--source/blender/makesrna/intern/rna_pose_api.c6
-rw-r--r--source/blender/makesrna/intern/rna_property.c4
-rw-r--r--source/blender/makesrna/intern/rna_render.c19
-rw-r--r--source/blender/makesrna/intern/rna_rna.c4
-rw-r--r--source/blender/makesrna/intern/rna_scene.c101
-rw-r--r--source/blender/makesrna/intern/rna_scene_api.c6
-rw-r--r--source/blender/makesrna/intern/rna_screen.c66
-rw-r--r--source/blender/makesrna/intern/rna_sensor.c7
-rw-r--r--source/blender/makesrna/intern/rna_sensor_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_sequencer.c775
-rw-r--r--source/blender/makesrna/intern/rna_sequencer_api.c43
-rw-r--r--source/blender/makesrna/intern/rna_space.c237
-rw-r--r--source/blender/makesrna/intern/rna_speaker.c5
-rw-r--r--source/blender/makesrna/intern/rna_text_api.c2
-rw-r--r--source/blender/makesrna/intern/rna_texture.c17
-rw-r--r--source/blender/makesrna/intern/rna_texture_api.c13
-rw-r--r--source/blender/makesrna/intern/rna_tracking.c48
-rw-r--r--source/blender/makesrna/intern/rna_ui_api.c15
-rw-r--r--source/blender/makesrna/intern/rna_userdef.c73
-rw-r--r--source/blender/makesrna/intern/rna_vfont.c34
-rw-r--r--source/blender/makesrna/intern/rna_wm.c8
-rw-r--r--source/blender/makesrna/intern/rna_wm_api.c31
-rw-r--r--source/blender/makesrna/intern/rna_world.c2
-rwxr-xr-xsource/blender/makesrna/rna_cleanup/rna_cleaner.py2
-rw-r--r--source/blender/modifiers/intern/MOD_array.c21
-rw-r--r--source/blender/modifiers/intern/MOD_bevel.c7
-rw-r--r--source/blender/modifiers/intern/MOD_boolean.c20
-rw-r--r--source/blender/modifiers/intern/MOD_boolean_util.c118
-rw-r--r--source/blender/modifiers/intern/MOD_cast.c18
-rw-r--r--source/blender/modifiers/intern/MOD_cloth.c4
-rw-r--r--source/blender/modifiers/intern/MOD_collision.c26
-rw-r--r--source/blender/modifiers/intern/MOD_displace.c42
-rw-r--r--source/blender/modifiers/intern/MOD_edgesplit.c5
-rw-r--r--source/blender/modifiers/intern/MOD_fluidsim.c4
-rw-r--r--source/blender/modifiers/intern/MOD_fluidsim_util.c85
-rw-r--r--source/blender/modifiers/intern/MOD_lattice.c6
-rw-r--r--source/blender/modifiers/intern/MOD_meshdeform.c14
-rw-r--r--source/blender/modifiers/intern/MOD_mirror.c1
-rw-r--r--source/blender/modifiers/intern/MOD_multires.c7
-rw-r--r--source/blender/modifiers/intern/MOD_ocean.c13
-rw-r--r--source/blender/modifiers/intern/MOD_particleinstance.c249
-rw-r--r--source/blender/modifiers/intern/MOD_particlesystem.c13
-rw-r--r--source/blender/modifiers/intern/MOD_screw.c10
-rw-r--r--source/blender/modifiers/intern/MOD_shapekey.c12
-rw-r--r--source/blender/modifiers/intern/MOD_simpledeform.c30
-rw-r--r--source/blender/modifiers/intern/MOD_skin.c166
-rw-r--r--source/blender/modifiers/intern/MOD_smoke.c4
-rw-r--r--source/blender/modifiers/intern/MOD_solidify.c16
-rw-r--r--source/blender/modifiers/intern/MOD_uvproject.c64
-rw-r--r--source/blender/modifiers/intern/MOD_warp.c4
-rw-r--r--source/blender/modifiers/intern/MOD_weightvg_util.c4
-rw-r--r--source/blender/modifiers/intern/MOD_weightvgproximity.c6
-rw-r--r--source/blender/nodes/CMakeLists.txt8
-rw-r--r--source/blender/nodes/NOD_composite.h4
-rw-r--r--source/blender/nodes/NOD_shader.h1
-rw-r--r--source/blender/nodes/SConscript3
-rw-r--r--source/blender/nodes/composite/node_composite_tree.c166
-rw-r--r--source/blender/nodes/composite/node_composite_util.c15
-rw-r--r--source/blender/nodes/composite/node_composite_util.h7
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_alphaOver.c11
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_bilateralblur.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_blur.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_bokehimage.c2
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_boxmask.c2
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_brightness.c8
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_channelMatte.c19
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_chromaMatte.c7
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_colorMatte.c8
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_colorSpill.c10
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_colorbalance.c12
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_colorcorrection.c2
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_common.c40
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_composite.c10
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_crop.c8
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_curves.c36
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_defocus.c38
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_despeckle.c73
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_diffMatte.c8
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_dilate.c8
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_directionalblur.c8
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_displace.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_distanceMatte.c8
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_doubleEdgeMask.c14
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_ellipsemask.c2
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_filter.c5
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_flip.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_gamma.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_glare.c7
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_hueSatVal.c8
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_huecorrect.c14
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_idMask.c5
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_image.c45
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_inpaint.c68
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_invert.c8
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_keying.c12
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_keyingscreen.c11
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_lensdist.c7
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_levels.c14
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_lummaMatte.c8
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_mapUV.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_mapValue.c7
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_mask.c40
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_math.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_mixrgb.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_movieclip.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_moviedistortion.c9
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_normal.c8
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_normalize.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_outputFile.c27
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_premulkey.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_rgb.c22
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_rotate.c8
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_scale.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c12
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c12
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c12
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c15
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_setalpha.c7
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_splitViewer.c9
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_stabilize2d.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_texture.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_tonemap.c7
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_trackpos.c72
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_transform.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_translate.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_valToRgb.c14
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_value.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_vecBlur.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_viewer.c6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_zcombine.c7
-rw-r--r--source/blender/nodes/intern/node_common.c106
-rw-r--r--source/blender/nodes/intern/node_common.h2
-rw-r--r--source/blender/nodes/intern/node_util.c67
-rw-r--r--source/blender/nodes/intern/node_util.h3
-rw-r--r--source/blender/nodes/shader/node_shader_tree.c50
-rw-r--r--source/blender/nodes/shader/node_shader_util.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_attribute.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_curves.c8
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_geom.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_mapping.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_material.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_particle_info.c14
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_brick.c90
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_checker.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_coord.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_environment.c9
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_gradient.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_image.c9
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_magic.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_noise.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_sky.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_tex_wave.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_texture.c2
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_valToRgb.c2
-rw-r--r--source/blender/nodes/texture/node_texture_tree.c68
-rw-r--r--source/blender/nodes/texture/node_texture_util.c2
-rw-r--r--source/blender/nodes/texture/node_texture_util.h2
-rw-r--r--source/blender/nodes/texture/nodes/node_texture_bricks.c2
-rw-r--r--source/blender/nodes/texture/nodes/node_texture_curves.c7
-rw-r--r--source/blender/nodes/texture/nodes/node_texture_image.c2
-rw-r--r--source/blender/nodes/texture/nodes/node_texture_output.c4
-rw-r--r--source/blender/nodes/texture/nodes/node_texture_proc.c2
-rw-r--r--source/blender/nodes/texture/nodes/node_texture_texture.c2
-rw-r--r--source/blender/nodes/texture/nodes/node_texture_valToRgb.c2
-rw-r--r--source/blender/nodes/texture/nodes/node_texture_viewer.c4
-rw-r--r--source/blender/opencl/intern/OCL_opencl.c8
-rw-r--r--source/blender/python/bmesh/bmesh_py_api.c6
-rw-r--r--source/blender/python/bmesh/bmesh_py_ops.c9
-rw-r--r--source/blender/python/bmesh/bmesh_py_types.c633
-rw-r--r--source/blender/python/bmesh/bmesh_py_types_customdata.c114
-rw-r--r--source/blender/python/bmesh/bmesh_py_types_meshdata.c72
-rw-r--r--source/blender/python/bmesh/bmesh_py_types_select.c44
-rw-r--r--source/blender/python/bmesh/bmesh_py_utils.c44
-rw-r--r--source/blender/python/generic/bgl.c2
-rw-r--r--source/blender/python/generic/bpy_internal_import.c14
-rw-r--r--source/blender/python/generic/bpy_internal_import.h3
-rw-r--r--source/blender/python/generic/idprop_py_api.c2
-rw-r--r--source/blender/python/generic/py_capi_utils.c42
-rw-r--r--source/blender/python/generic/py_capi_utils.h3
-rw-r--r--source/blender/python/intern/CMakeLists.txt1
-rw-r--r--source/blender/python/intern/bpy.c14
-rw-r--r--source/blender/python/intern/bpy.h5
-rw-r--r--source/blender/python/intern/bpy_app.c4
-rw-r--r--source/blender/python/intern/bpy_app_ffmpeg.c9
-rw-r--r--source/blender/python/intern/bpy_app_handlers.c2
-rw-r--r--source/blender/python/intern/bpy_interface.c51
-rw-r--r--source/blender/python/intern/bpy_interface_atexit.c1
-rw-r--r--source/blender/python/intern/bpy_library.c15
-rw-r--r--source/blender/python/intern/bpy_library.h32
-rw-r--r--source/blender/python/intern/bpy_operator.c4
-rw-r--r--source/blender/python/intern/bpy_props.c10
-rw-r--r--source/blender/python/intern/bpy_rna.c47
-rw-r--r--source/blender/python/intern/bpy_rna.h4
-rw-r--r--source/blender/python/intern/bpy_rna_anim.c3
-rw-r--r--source/blender/python/intern/bpy_rna_array.c2
-rw-r--r--source/blender/python/intern/bpy_util.c2
-rw-r--r--source/blender/python/intern/gpu.c9
-rw-r--r--source/blender/python/intern/gpu.h2
-rw-r--r--source/blender/python/intern/stubs.c11
-rw-r--r--source/blender/python/mathutils/mathutils_Color.c10
-rw-r--r--source/blender/python/mathutils/mathutils_Euler.c4
-rw-r--r--source/blender/python/mathutils/mathutils_Euler.h4
-rw-r--r--source/blender/python/mathutils/mathutils_Matrix.c8
-rw-r--r--source/blender/python/mathutils/mathutils_Quaternion.c13
-rw-r--r--source/blender/python/mathutils/mathutils_Vector.c10
-rw-r--r--source/blender/python/mathutils/mathutils_geometry.c17
-rw-r--r--source/blender/python/mathutils/mathutils_noise.c4
-rw-r--r--source/blender/python/rna_dump.py4
-rw-r--r--source/blender/quicktime/apple/qtkit_export.m59
-rw-r--r--source/blender/quicktime/apple/qtkit_import.m11
-rw-r--r--source/blender/quicktime/apple/quicktime_export.c64
-rw-r--r--source/blender/quicktime/apple/quicktime_import.c4
-rw-r--r--source/blender/render/extern/include/RE_engine.h9
-rw-r--r--source/blender/render/extern/include/RE_pipeline.h17
-rw-r--r--source/blender/render/extern/include/RE_render_ext.h11
-rw-r--r--source/blender/render/extern/include/RE_shader_ext.h3
-rw-r--r--source/blender/render/intern/include/initrender.h2
-rw-r--r--source/blender/render/intern/include/pixelshading.h6
-rw-r--r--source/blender/render/intern/include/rayobject.h19
-rw-r--r--source/blender/render/intern/include/render_result.h16
-rw-r--r--source/blender/render/intern/include/render_types.h1
-rw-r--r--source/blender/render/intern/include/renderdatabase.h2
-rw-r--r--source/blender/render/intern/include/sunsky.h4
-rw-r--r--source/blender/render/intern/include/texture.h4
-rw-r--r--source/blender/render/intern/include/volumetric.h3
-rw-r--r--source/blender/render/intern/include/zbuf.h11
-rw-r--r--source/blender/render/intern/raytrace/bvh.h6
-rw-r--r--source/blender/render/intern/raytrace/rayobject.cpp6
-rw-r--r--source/blender/render/intern/raytrace/rayobject_instance.cpp4
-rw-r--r--source/blender/render/intern/raytrace/rayobject_octree.cpp6
-rw-r--r--source/blender/render/intern/raytrace/rayobject_qbvh.cpp2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_rtbuild.cpp2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_svbvh.cpp2
-rw-r--r--source/blender/render/intern/raytrace/rayobject_vbvh.cpp4
-rw-r--r--source/blender/render/intern/raytrace/reorganize.h2
-rw-r--r--source/blender/render/intern/source/convertblender.c255
-rw-r--r--source/blender/render/intern/source/envmap.c9
-rw-r--r--source/blender/render/intern/source/external_engine.c94
-rw-r--r--source/blender/render/intern/source/gammaCorrectionTables.c2
-rw-r--r--source/blender/render/intern/source/imagetexture.c393
-rw-r--r--source/blender/render/intern/source/initrender.c10
-rw-r--r--source/blender/render/intern/source/occlusion.c1008
-rw-r--r--source/blender/render/intern/source/pipeline.c235
-rw-r--r--source/blender/render/intern/source/pixelblending.c2
-rw-r--r--source/blender/render/intern/source/pointdensity.c7
-rw-r--r--source/blender/render/intern/source/rayshade.c50
-rw-r--r--source/blender/render/intern/source/render_result.c268
-rw-r--r--source/blender/render/intern/source/render_texture.c347
-rw-r--r--source/blender/render/intern/source/rendercore.c113
-rw-r--r--source/blender/render/intern/source/renderdatabase.c46
-rw-r--r--source/blender/render/intern/source/shadbuf.c39
-rw-r--r--source/blender/render/intern/source/shadeinput.c1060
-rw-r--r--source/blender/render/intern/source/shadeoutput.c91
-rw-r--r--source/blender/render/intern/source/sss.c14
-rw-r--r--source/blender/render/intern/source/strand.c9
-rw-r--r--source/blender/render/intern/source/sunsky.c46
-rw-r--r--source/blender/render/intern/source/texture_ocean.c9
-rw-r--r--source/blender/render/intern/source/volume_precache.c23
-rw-r--r--source/blender/render/intern/source/volumetric.c14
-rw-r--r--source/blender/render/intern/source/voxeldata.c8
-rw-r--r--source/blender/render/intern/source/zbuf.c76
-rw-r--r--source/blender/windowmanager/CMakeLists.txt6
-rw-r--r--source/blender/windowmanager/SConscript5
-rw-r--r--source/blender/windowmanager/WM_api.h124
-rw-r--r--source/blender/windowmanager/WM_keymap.h6
-rw-r--r--source/blender/windowmanager/WM_types.h119
-rw-r--r--source/blender/windowmanager/intern/wm_apple.c4
-rw-r--r--source/blender/windowmanager/intern/wm_cursors.c17
-rw-r--r--source/blender/windowmanager/intern/wm_draw.c11
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c212
-rw-r--r--source/blender/windowmanager/intern/wm_files.c50
-rw-r--r--source/blender/windowmanager/intern/wm_gesture.c8
-rw-r--r--source/blender/windowmanager/intern/wm_init_exit.c95
-rw-r--r--source/blender/windowmanager/intern/wm_jobs.c357
-rw-r--r--source/blender/windowmanager/intern/wm_keymap.c5
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c133
-rw-r--r--source/blender/windowmanager/intern/wm_playanim.c1094
-rw-r--r--source/blender/windowmanager/intern/wm_subwindow.c28
-rw-r--r--source/blender/windowmanager/intern/wm_window.c37
-rw-r--r--source/blender/windowmanager/wm_event_types.h18
-rw-r--r--source/blenderplayer/CMakeLists.txt6
-rw-r--r--source/blenderplayer/bad_level_call_stubs/stubs.c17
-rw-r--r--source/creator/CMakeLists.txt82
-rw-r--r--source/creator/creator.c48
-rw-r--r--source/darwin/blender.app/Contents/Info.plist2
-rw-r--r--source/darwin/blenderplayer.app/Contents/Info.plist12
-rw-r--r--source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp190
-rw-r--r--source/gameengine/BlenderRoutines/CMakeLists.txt2
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp28
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderCanvas.h3
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderGL.cpp4
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp7
-rw-r--r--source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h2
-rw-r--r--source/gameengine/CMakeLists.txt2
-rw-r--r--source/gameengine/Converter/BL_ActionActuator.cpp17
-rw-r--r--source/gameengine/Converter/BL_ArmatureActuator.cpp12
-rw-r--r--source/gameengine/Converter/BL_ArmatureActuator.h4
-rw-r--r--source/gameengine/Converter/BL_ArmatureChannel.cpp18
-rw-r--r--source/gameengine/Converter/BL_ArmatureChannel.h6
-rw-r--r--source/gameengine/Converter/BL_ArmatureConstraint.cpp22
-rw-r--r--source/gameengine/Converter/BL_ArmatureConstraint.h4
-rw-r--r--source/gameengine/Converter/BL_ArmatureObject.cpp8
-rw-r--r--source/gameengine/Converter/BL_ArmatureObject.h6
-rw-r--r--source/gameengine/Converter/BL_BlenderDataConversion.cpp123
-rw-r--r--source/gameengine/Converter/BL_DeformableGameObject.h2
-rw-r--r--source/gameengine/Converter/BL_MeshDeformer.cpp2
-rw-r--r--source/gameengine/Converter/BL_MeshDeformer.h10
-rw-r--r--source/gameengine/Converter/BL_ModifierDeformer.cpp2
-rw-r--r--source/gameengine/Converter/BL_ModifierDeformer.h2
-rw-r--r--source/gameengine/Converter/BL_ShapeActionActuator.cpp4
-rw-r--r--source/gameengine/Converter/BL_ShapeDeformer.cpp2
-rw-r--r--source/gameengine/Converter/BL_ShapeDeformer.h2
-rw-r--r--source/gameengine/Converter/BL_SkinDeformer.cpp44
-rw-r--r--source/gameengine/Converter/BlenderWorldInfo.cpp6
-rw-r--r--source/gameengine/Converter/BlenderWorldInfo.h10
-rw-r--r--source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp2
-rw-r--r--source/gameengine/Converter/KX_BlenderScalarInterpolator.h2
-rw-r--r--source/gameengine/Converter/KX_BlenderSceneConverter.cpp42
-rw-r--r--source/gameengine/Converter/KX_BlenderSceneConverter.h1
-rw-r--r--source/gameengine/Converter/KX_ConvertActuators.cpp15
-rw-r--r--source/gameengine/Converter/KX_ConvertControllers.cpp2
-rw-r--r--source/gameengine/Converter/KX_ConvertProperties.cpp4
-rw-r--r--source/gameengine/Converter/KX_ConvertSensors.cpp44
-rw-r--r--source/gameengine/Converter/KX_IpoConvert.cpp8
-rw-r--r--source/gameengine/Expressions/BoolValue.cpp4
-rw-r--r--source/gameengine/Expressions/BoolValue.h2
-rw-r--r--source/gameengine/Expressions/EXP_C-Api.cpp4
-rw-r--r--source/gameengine/Expressions/EXP_C-Api.h2
-rw-r--r--source/gameengine/Expressions/FloatValue.cpp2
-rw-r--r--source/gameengine/Expressions/InputParser.cpp4
-rw-r--r--source/gameengine/Expressions/IntValue.cpp2
-rw-r--r--source/gameengine/Expressions/KX_HashedPtr.h2
-rw-r--r--source/gameengine/Expressions/ListValue.cpp124
-rw-r--r--source/gameengine/Expressions/ListValue.h4
-rw-r--r--source/gameengine/Expressions/Operator2Expr.cpp6
-rw-r--r--source/gameengine/Expressions/PyObjectPlus.cpp22
-rw-r--r--source/gameengine/Expressions/PyObjectPlus.h56
-rw-r--r--source/gameengine/Expressions/StringValue.h4
-rw-r--r--source/gameengine/Expressions/Value.cpp12
-rw-r--r--source/gameengine/Expressions/Value.h26
-rw-r--r--source/gameengine/Expressions/VoidValue.h17
-rw-r--r--source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp12
-rw-r--r--source/gameengine/GameLogic/Joystick/SCA_Joystick.h2
-rw-r--r--source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h6
-rw-r--r--source/gameengine/GameLogic/SCA_IController.cpp10
-rw-r--r--source/gameengine/GameLogic/SCA_IInputDevice.cpp4
-rw-r--r--source/gameengine/GameLogic/SCA_IInputDevice.h24
-rw-r--r--source/gameengine/GameLogic/SCA_ILogicBrick.cpp6
-rw-r--r--source/gameengine/GameLogic/SCA_ILogicBrick.h2
-rw-r--r--source/gameengine/GameLogic/SCA_IObject.cpp4
-rw-r--r--source/gameengine/GameLogic/SCA_IObject.h4
-rw-r--r--source/gameengine/GameLogic/SCA_ISensor.cpp12
-rw-r--r--source/gameengine/GameLogic/SCA_JoystickSensor.cpp22
-rw-r--r--source/gameengine/GameLogic/SCA_KeyboardManager.h2
-rw-r--r--source/gameengine/GameLogic/SCA_KeyboardSensor.cpp25
-rw-r--r--source/gameengine/GameLogic/SCA_KeyboardSensor.h4
-rw-r--r--source/gameengine/GameLogic/SCA_MouseManager.h2
-rw-r--r--source/gameengine/GameLogic/SCA_MouseSensor.cpp10
-rw-r--r--source/gameengine/GameLogic/SCA_PropertyActuator.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_PropertySensor.cpp110
-rw-r--r--source/gameengine/GameLogic/SCA_PropertySensor.h19
-rw-r--r--source/gameengine/GameLogic/SCA_PythonController.cpp14
-rw-r--r--source/gameengine/GameLogic/SCA_PythonController.h12
-rw-r--r--source/gameengine/GameLogic/SCA_PythonKeyboard.cpp8
-rw-r--r--source/gameengine/GameLogic/SCA_PythonKeyboard.h2
-rw-r--r--source/gameengine/GameLogic/SCA_PythonMouse.cpp12
-rw-r--r--source/gameengine/GameLogic/SCA_PythonMouse.h14
-rw-r--r--source/gameengine/GameLogic/SCA_RandomActuator.cpp14
-rw-r--r--source/gameengine/GameLogic/SCA_RandomActuator.h6
-rw-r--r--source/gameengine/GameLogic/SCA_RandomSensor.cpp2
-rw-r--r--source/gameengine/GameLogic/SCA_TimeEventManager.cpp2
-rw-r--r--source/gameengine/GamePlayer/common/GPC_Canvas.cpp24
-rw-r--r--source/gameengine/GamePlayer/common/GPC_Canvas.h9
-rw-r--r--source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp6
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RawImage.cpp2
-rw-r--r--source/gameengine/GamePlayer/common/GPC_RenderTools.cpp7
-rw-r--r--source/gameengine/GamePlayer/common/bmfont.cpp4
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_Application.cpp83
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_Application.h1
-rw-r--r--source/gameengine/GamePlayer/ghost/GPG_ghost.cpp89
-rw-r--r--source/gameengine/Ketsji/BL_Action.cpp7
-rw-r--r--source/gameengine/Ketsji/BL_Shader.cpp18
-rw-r--r--source/gameengine/Ketsji/BL_Shader.h2
-rw-r--r--source/gameengine/Ketsji/BL_Texture.cpp23
-rw-r--r--source/gameengine/Ketsji/CMakeLists.txt2
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp6
-rw-r--r--source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h2
-rw-r--r--source/gameengine/Ketsji/KX_ArmatureSensor.cpp6
-rw-r--r--source/gameengine/Ketsji/KX_ArmatureSensor.h2
-rw-r--r--source/gameengine/Ketsji/KX_BlenderMaterial.cpp52
-rw-r--r--source/gameengine/Ketsji/KX_BlenderMaterial.h10
-rw-r--r--source/gameengine/Ketsji/KX_BulletPhysicsController.cpp3
-rw-r--r--source/gameengine/Ketsji/KX_Camera.cpp50
-rw-r--r--source/gameengine/Ketsji/KX_Camera.h8
-rw-r--r--source/gameengine/Ketsji/KX_CameraActuator.cpp74
-rw-r--r--source/gameengine/Ketsji/KX_CameraIpoSGController.h6
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintActuator.cpp6
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintActuator.h2
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintWrapper.cpp8
-rw-r--r--source/gameengine/Ketsji/KX_ConstraintWrapper.h2
-rw-r--r--source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp22
-rw-r--r--source/gameengine/Ketsji/KX_Dome.cpp79
-rw-r--r--source/gameengine/Ketsji/KX_Dome.h2
-rw-r--r--source/gameengine/Ketsji/KX_FontObject.cpp28
-rw-r--r--source/gameengine/Ketsji/KX_GameActuator.h52
-rw-r--r--source/gameengine/Ketsji/KX_GameObject.cpp336
-rw-r--r--source/gameengine/Ketsji/KX_GameObject.h115
-rw-r--r--source/gameengine/Ketsji/KX_IInterpolator.h2
-rw-r--r--source/gameengine/Ketsji/KX_IScalarInterpolator.h2
-rw-r--r--source/gameengine/Ketsji/KX_IpoActuator.cpp12
-rw-r--r--source/gameengine/Ketsji/KX_KetsjiEngine.cpp62
-rw-r--r--source/gameengine/Ketsji/KX_KetsjiEngine.h8
-rw-r--r--source/gameengine/Ketsji/KX_Light.cpp25
-rw-r--r--source/gameengine/Ketsji/KX_Light.h4
-rw-r--r--source/gameengine/Ketsji/KX_LightIpoSGController.h6
-rw-r--r--source/gameengine/Ketsji/KX_MeshProxy.cpp24
-rw-r--r--source/gameengine/Ketsji/KX_MeshProxy.h6
-rw-r--r--source/gameengine/Ketsji/KX_MouseFocusSensor.cpp16
-rw-r--r--source/gameengine/Ketsji/KX_NavMeshObject.cpp16
-rw-r--r--source/gameengine/Ketsji/KX_ObjectActuator.cpp20
-rw-r--r--source/gameengine/Ketsji/KX_ObstacleSimulation.cpp19
-rw-r--r--source/gameengine/Ketsji/KX_ObstacleSimulation.h8
-rw-r--r--source/gameengine/Ketsji/KX_ParentActuator.cpp6
-rw-r--r--source/gameengine/Ketsji/KX_ParentActuator.h2
-rw-r--r--source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp8
-rw-r--r--source/gameengine/Ketsji/KX_PolyProxy.cpp22
-rw-r--r--source/gameengine/Ketsji/KX_PolyProxy.h20
-rw-r--r--source/gameengine/Ketsji/KX_PolygonMaterial.cpp18
-rw-r--r--source/gameengine/Ketsji/KX_PolygonMaterial.h6
-rw-r--r--source/gameengine/Ketsji/KX_PyConstraintBinding.cpp133
-rw-r--r--source/gameengine/Ketsji/KX_PyMath.cpp18
-rw-r--r--source/gameengine/Ketsji/KX_PyMath.h52
-rw-r--r--source/gameengine/Ketsji/KX_PythonInit.cpp316
-rw-r--r--source/gameengine/Ketsji/KX_PythonInit.h16
-rw-r--r--source/gameengine/Ketsji/KX_PythonInitTypes.cpp12
-rw-r--r--source/gameengine/Ketsji/KX_PythonInitTypes.h6
-rw-r--r--source/gameengine/Ketsji/KX_PythonMain.cpp (renamed from intern/boolop/intern/BOP_Vertex.h)78
-rw-r--r--source/gameengine/Ketsji/KX_PythonMain.h (renamed from intern/boolop/intern/BOP_Indexs.h)23
-rw-r--r--source/gameengine/Ketsji/KX_PythonSeq.cpp12
-rw-r--r--source/gameengine/Ketsji/KX_RadarSensor.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_RadarSensor.h5
-rw-r--r--source/gameengine/Ketsji/KX_RaySensor.cpp2
-rw-r--r--source/gameengine/Ketsji/KX_RaySensor.h2
-rw-r--r--source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp77
-rw-r--r--source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h60
-rw-r--r--source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp73
-rw-r--r--source/gameengine/Ketsji/KX_SCA_DynamicActuator.h52
-rw-r--r--source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h54
-rw-r--r--source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp59
-rw-r--r--source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h56
-rw-r--r--source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp6
-rw-r--r--source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h2
-rw-r--r--source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp16
-rw-r--r--source/gameengine/Ketsji/KX_SG_NodeRelationships.h12
-rw-r--r--source/gameengine/Ketsji/KX_Scene.cpp110
-rw-r--r--source/gameengine/Ketsji/KX_Scene.h54
-rw-r--r--source/gameengine/Ketsji/KX_SceneActuator.cpp4
-rw-r--r--source/gameengine/Ketsji/KX_SceneActuator.h54
-rw-r--r--source/gameengine/Ketsji/KX_SoundActuator.cpp24
-rw-r--r--source/gameengine/Ketsji/KX_SoundActuator.h12
-rw-r--r--source/gameengine/Ketsji/KX_SteeringActuator.cpp32
-rw-r--r--source/gameengine/Ketsji/KX_SteeringActuator.h12
-rw-r--r--source/gameengine/Ketsji/KX_TouchSensor.cpp4
-rw-r--r--source/gameengine/Ketsji/KX_TouchSensor.h2
-rw-r--r--source/gameengine/Ketsji/KX_TrackToActuator.cpp134
-rw-r--r--source/gameengine/Ketsji/KX_TrackToActuator.h56
-rw-r--r--source/gameengine/Ketsji/KX_VehicleWrapper.cpp34
-rw-r--r--source/gameengine/Ketsji/KX_VertexProxy.cpp52
-rw-r--r--source/gameengine/Ketsji/KX_VertexProxy.h30
-rw-r--r--source/gameengine/Ketsji/KX_WorldInfo.h2
-rw-r--r--source/gameengine/Ketsji/KX_WorldIpoController.h6
-rw-r--r--source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h2
-rw-r--r--source/gameengine/Network/NG_NetworkScene.h4
-rw-r--r--source/gameengine/Physics/Bullet/CcdGraphicController.h2
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsController.cpp69
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsController.h9
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp67
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h11
-rw-r--r--source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h2
-rw-r--r--source/gameengine/Physics/common/PHY_DynamicTypes.h32
-rw-r--r--source/gameengine/Physics/common/PHY_IController.h2
-rw-r--r--source/gameengine/Physics/common/PHY_IMotionState.h2
-rw-r--r--source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h10
-rw-r--r--source/gameengine/Rasterizer/RAS_2DFilterManager.cpp23
-rw-r--r--source/gameengine/Rasterizer/RAS_2DFilterManager.h2
-rw-r--r--source/gameengine/Rasterizer/RAS_BucketManager.cpp4
-rw-r--r--source/gameengine/Rasterizer/RAS_Deformer.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_FramingManager.cpp14
-rw-r--r--source/gameengine/Rasterizer/RAS_FramingManager.h10
-rw-r--r--source/gameengine/Rasterizer/RAS_ICanvas.h7
-rw-r--r--source/gameengine/Rasterizer/RAS_IPolygonMaterial.h4
-rw-r--r--source/gameengine/Rasterizer/RAS_IRasterizer.h10
-rw-r--r--source/gameengine/Rasterizer/RAS_IRenderTools.h46
-rw-r--r--source/gameengine/Rasterizer/RAS_MaterialBucket.cpp14
-rw-r--r--source/gameengine/Rasterizer/RAS_MaterialBucket.h2
-rw-r--r--source/gameengine/Rasterizer/RAS_MeshObject.cpp10
-rw-r--r--source/gameengine/Rasterizer/RAS_MeshObject.h2
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h2
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp25
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h6
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h4
-rw-r--r--source/gameengine/SceneGraph/SG_BBox.cpp12
-rw-r--r--source/gameengine/SceneGraph/SG_Controller.h8
-rw-r--r--source/gameengine/SceneGraph/SG_IObject.cpp2
-rw-r--r--source/gameengine/SceneGraph/SG_IObject.h8
-rw-r--r--source/gameengine/SceneGraph/SG_Node.cpp2
-rw-r--r--source/gameengine/SceneGraph/SG_Node.h18
-rw-r--r--source/gameengine/SceneGraph/SG_ParentRelation.h4
-rw-r--r--source/gameengine/SceneGraph/SG_Spatial.cpp10
-rw-r--r--source/gameengine/SceneGraph/SG_Spatial.h12
-rw-r--r--source/gameengine/SceneGraph/SG_Tree.cpp5
-rw-r--r--source/gameengine/VideoTexture/BlendType.h13
-rw-r--r--source/gameengine/VideoTexture/FilterBase.cpp10
-rw-r--r--source/gameengine/VideoTexture/FilterBase.h12
-rw-r--r--source/gameengine/VideoTexture/FilterBlueScreen.cpp10
-rw-r--r--source/gameengine/VideoTexture/FilterColor.cpp12
-rw-r--r--source/gameengine/VideoTexture/FilterNormal.cpp10
-rw-r--r--source/gameengine/VideoTexture/ImageBase.cpp51
-rw-r--r--source/gameengine/VideoTexture/ImageBase.h36
-rw-r--r--source/gameengine/VideoTexture/ImageBuff.cpp18
-rw-r--r--source/gameengine/VideoTexture/ImageBuff.h2
-rw-r--r--source/gameengine/VideoTexture/ImageMix.cpp6
-rw-r--r--source/gameengine/VideoTexture/ImageRender.cpp53
-rw-r--r--source/gameengine/VideoTexture/ImageViewport.cpp18
-rw-r--r--source/gameengine/VideoTexture/ImageViewport.h12
-rw-r--r--source/gameengine/VideoTexture/PyTypeList.cpp8
-rw-r--r--source/gameengine/VideoTexture/PyTypeList.h14
-rw-r--r--source/gameengine/VideoTexture/SConscript2
-rw-r--r--source/gameengine/VideoTexture/Texture.cpp43
-rw-r--r--source/gameengine/VideoTexture/Texture.h8
-rw-r--r--source/gameengine/VideoTexture/VideoBase.cpp29
-rw-r--r--source/gameengine/VideoTexture/VideoBase.h30
-rw-r--r--source/gameengine/VideoTexture/VideoFFmpeg.cpp28
-rw-r--r--source/gameengine/VideoTexture/VideoFFmpeg.h2
-rw-r--r--source/gameengine/VideoTexture/blendVideoTex.cpp20
-rw-r--r--source/tests/batch_import.py12
-rw-r--r--source/tests/bl_load_addons.py2
-rw-r--r--source/tests/bl_load_py_modules.py2
-rw-r--r--source/tests/bl_mesh_modifiers.py2
-rw-r--r--source/tests/bl_rna_wiki_reference.py104
-rw-r--r--source/tests/bl_run_operators.py108
-rw-r--r--source/tests/pep8.py2
-rw-r--r--source/tests/rna_info_dump.py2
2396 files changed, 461607 insertions, 134922 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9e1ef4f5d4b..9ec75e9c782 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -120,17 +120,20 @@ option(WITH_INTERNATIONAL "Enable I18N (International fonts and text)" ON)
option(WITH_PYTHON "Enable Embedded Python API (only disable for development)" ON)
option(WITH_PYTHON_SECURITY "Disables execution of scripts within blend files by default (recommend to leave off)" OFF)
mark_as_advanced(WITH_PYTHON) # dont want people disabling this unless they really know what they are doing.
-mark_as_advanced(WITH_PYTHON_SECURITY) # some distrobutions see this as a security issue, rather than have them patch it, make a build option.
+mark_as_advanced(WITH_PYTHON_SECURITY) # some distributions see this as a security issue, rather than have them patch it, make a build option.
option(WITH_PYTHON_SAFETY "Enable internal API error checking to track invalid data to prevent crash on access (at the expense of some effeciency, only enable for development)." OFF)
option(WITH_PYTHON_MODULE "Enable building as a python module which runs without a user interface, like running regular blender in background mode (experimental, only enable for development)" OFF)
option(WITH_BUILDINFO "Include extra build details (only disable for development & faster builds)" ON)
option(WITH_IK_ITASC "Enable ITASC IK solver (only disable for development & for incompatible C++ compilers)" ON)
+option(WITH_IK_SOLVER "Enable Legacy IK solver (only disable for development)" ON)
option(WITH_FFTW3 "Enable FFTW3 support (Used for smoke and audio effects)" OFF)
option(WITH_BULLET "Enable Bullet (Physics Engine)" ON)
option(WITH_GAMEENGINE "Enable Game Engine" ON)
option(WITH_PLAYER "Build Player" OFF)
+option(WITH_OPENCOLORIO "Enable OpenColorIO color management" ON)
option(WITH_COMPOSITOR "Enable the tile based nodal compositor" ON)
+option(WITH_COMPOSITOR_LEGACY "Enable legacy compositor" OFF)
# GHOST Windowing Library Options
option(WITH_GHOST_DEBUG "Enable debugging output for the GHOST library" OFF)
@@ -148,7 +151,7 @@ mark_as_advanced(WITH_AUDASPACE)
# (unix defaults to OpenMP On)
-if(UNIX AND NOT APPLE)
+if((UNIX AND NOT APPLE) OR (MINGW))
set(PLATFORM_DEFAULT ON)
else()
set(PLATFORM_DEFAULT OFF)
@@ -203,6 +206,7 @@ option(WITH_IMAGE_REDCODE "Enable RedCode Image Support" OFF)
option(WITH_IMAGE_FRAMESERVER "Enable image FrameServer Support for rendering" ON)
# Audio/Video format support
+option(WITH_CODEC_AVI "Enable Blenders own AVI file support (raw/jpeg)" ON)
option(WITH_CODEC_FFMPEG "Enable FFMPeg Support (http://ffmpeg.org)" OFF)
option(WITH_CODEC_SNDFILE "Enable libsndfile Support (http://www.mega-nerd.com/libsndfile)" OFF)
@@ -226,9 +230,6 @@ option(WITH_LZMA "Enable best LZMA compression, (used for pointcache)"
# Camera/motion tracking
option(WITH_LIBMV "Enable libmv structure from motion library" ON)
-# Mesh boolean lib
-option(WITH_CARVE "Enable Carve library to handle mesh boolean operations" ON)
-
# Misc
option(WITH_INPUT_NDOF "Enable NDOF input devices (SpaceNavigator and friends)" ON)
option(WITH_RAYOPTIMIZATION "Enable use of SIMD (SSE) optimizations for the raytracer" ON)
@@ -250,10 +251,13 @@ option(WITH_CYCLES "Enable cycles Render Engine" ON)
option(WITH_CYCLES_TEST "Build cycles test application" OFF)
option(WITH_CYCLES_OSL "Build Cycles with OSL support" OFF)
option(WITH_CYCLES_CUDA_BINARIES "Build cycles CUDA binaries" OFF)
-set(CYCLES_CUDA_BINARIES_ARCH sm_13 sm_20 sm_21 CACHE STRING "CUDA architectures to build binaries for")
+set(CYCLES_CUDA_BINARIES_ARCH sm_13 sm_20 sm_21 sm_30 CACHE STRING "CUDA architectures to build binaries for")
mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH)
unset(PLATFORM_DEFAULT)
+# LLVM
+option(WITH_LLVM "Use LLVM" OFF)
+
# disable for now, but plan to support on all platforms eventually
option(WITH_MEM_JEMALLOC "Enable malloc replacement (http://www.canonware.com/jemalloc)" OFF)
mark_as_advanced(WITH_MEM_JEMALLOC)
@@ -274,7 +278,9 @@ if(APPLE)
endif()
execute_process(COMMAND uname -r OUTPUT_VARIABLE MAC_SYS) # check for actual system-version
- if (${MAC_SYS} MATCHES 11)
+ if (${MAC_SYS} MATCHES 12)
+ set(OSX_SYSTEM 10.8)
+ elseif (${MAC_SYS} MATCHES 11)
set(OSX_SYSTEM 10.7)
elseif(${MAC_SYS} MATCHES 10)
set(OSX_SYSTEM 10.6)
@@ -314,6 +320,9 @@ if(APPLE)
option(WITH_COCOA "Use Cocoa framework instead of deprecated Carbon" ON)
option(USE_QTKIT "Use QtKit instead of Carbon quicktime (needed for having partial quicktime for 64bit)" OFF)
option(WITH_LIBS10.5 "Use 10.5 libs (needed for 64bit builds)" OFF)
+ if(CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
+ set(USE_QTKIT ON CACHE BOOL "ON" FORCE) # no Quicktime in 64bit
+ endif()
endif()
@@ -364,18 +373,25 @@ if(WITH_CYCLES)
set(WITH_OPENIMAGEIO ON)
endif()
-# auto enable boost for cycles and carve
-if(WITH_CYCLES OR WITH_CARVE)
+# auto enable boost for cycles and booleans
+if(WITH_CYCLES OR WITH_MOD_BOOLEAN)
set(WITH_BOOST ON)
endif()
-# don't store paths to libs for portable distrobution
+# auto enable llvm for cycles_osl
+if(WITH_CYCLES_OSL)
+ set(WITH_LLVM ON CACHE BOOL "ON" FORCE)
+endif()
+
+# don't store paths to libs for portable distribution
if(WITH_INSTALL_PORTABLE)
set(CMAKE_SKIP_BUILD_RPATH TRUE)
endif()
if(WITH_GHOST_SDL OR WITH_HEADLESS)
set(WITH_GHOST_XDND OFF)
+ set(WITH_X11_XF86VMODE OFF)
+ set(WITH_X11_XINPUT OFF)
endif()
if(MINGW)
@@ -561,7 +577,14 @@ if(UNIX AND NOT APPLE)
endif()
mark_as_advanced(FFMPEG)
- set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include ${FFMPEG}/include/ffmpeg)
+
+ # lame, but until we have proper find module for ffmpeg
+ set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include)
+ if(EXISTS "${FFMPEG}/include/ffmpeg/")
+ list(APPEND FFMPEG_INCLUDE_DIRS "${FFMPEG}/include/ffmpeg")
+ endif()
+ # end lameness
+
mark_as_advanced(FFMPEG_LIBRARIES)
set(FFMPEG_LIBPATH ${FFMPEG}/lib)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__STDC_CONSTANT_MACROS")
@@ -636,7 +659,11 @@ if(UNIX AND NOT APPLE)
else()
set(Boost_USE_MULTITHREADED ON)
endif()
- find_package(Boost 1.34 COMPONENTS filesystem regex system thread)
+ if(WITH_CYCLES_OSL)
+ find_package(Boost 1.34 COMPONENTS filesystem python3 regex system thread) # osl_nodes uses boost_python
+ else()
+ find_package(Boost 1.34 COMPONENTS filesystem regex system thread)
+ endif()
mark_as_advanced(Boost_DIR) # why doesnt boost do this?
endif()
@@ -671,6 +698,100 @@ if(UNIX AND NOT APPLE)
endif()
endif()
+ if(WITH_OPENCOLORIO)
+ # use lib dir if available and nothing else specified
+ if(LIBDIR AND NOT OPENCOLORIO_ROOT_DIR)
+ set(OPENCOLORIO_ROOT_DIR ${LIBDIR}/ocio)
+ endif()
+
+ find_package(OpenColorIO)
+
+ set(OPENCOLORIO_LIBRARIES ${OPENCOLORIO_LIBRARIES})
+ set(OPENCOLORIO_LIBPATH) # TODO, remove and reference the absolute path everywhere
+ set(OPENCOLORIO_DEFINITIONS)
+
+ if(NOT OPENCOLORIO_FOUND)
+ set(WITH_OPENCOLORIO OFF)
+ message(STATUS "OpenColorIO not found")
+ endif()
+ endif()
+
+ if(WITH_LLVM)
+ set(LLVM_DIRECTORY ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation")
+ set(LLVM_VERSION "3.0" CACHE STRING "Version of LLVM to use" "")
+ set(LLVM_STATIC YES)
+ if(LLVM_DIRECTORY)
+ set(LLVM_CONFIG "${LLVM_DIRECTORY}/bin/llvm-config")
+ else()
+ set(LLVM_CONFIG llvm-config)
+ endif()
+ execute_process(COMMAND ${LLVM_CONFIG} --version
+ OUTPUT_VARIABLE LLVM_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND ${LLVM_CONFIG} --prefix
+ OUTPUT_VARIABLE LLVM_DIRECTORY
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND ${LLVM_CONFIG} --libdir
+ OUTPUT_VARIABLE LLVM_LIB_DIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND ${LLVM_CONFIG} --includedir
+ OUTPUT_VARIABLE LLVM_INCLUDES
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ find_library(LLVM_LIBRARY
+ NAMES libLLVMAnalysis.a # first of a whole bunch of libs to get
+ PATHS ${LLVM_LIB_DIR})
+ message(STATUS "LLVM version = ${LLVM_VERSION}")
+ message(STATUS "LLVM dir = ${LLVM_DIRECTORY}")
+ message(STATUS "LLVM includes = ${LLVM_INCLUDES}")
+ message(STATUS "LLVM lib dir = ${LLVM_LIB_DIR}")
+
+ if(LLVM_LIBRARY AND LLVM_INCLUDES AND LLVM_DIRECTORY AND LLVM_LIB_DIR)
+ # ensure include directory is added (in case of non-standard locations
+ include_directories(BEFORE "${LLVM_INCLUDES}")
+ string(REGEX REPLACE "\\." "" OSL_LLVM_VERSION ${LLVM_VERSION})
+ message(STATUS "LLVM OSL_LLVM_VERSION = ${OSL_LLVM_VERSION}")
+ add_definitions("-DOSL_LLVM_VERSION=${OSL_LLVM_VERSION}")
+ if(LLVM_STATIC)
+ # if static LLVM libraries were requested, use llvm-config to generate
+ # the list of what libraries we need, and substitute that in the right
+ # way for LLVM_LIBRARY.
+ execute_process(COMMAND ${LLVM_CONFIG} --libfiles
+ OUTPUT_VARIABLE LLVM_LIBRARY
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REPLACE " " ";" LLVM_LIBRARY ${LLVM_LIBRARY})
+ endif()
+ message(STATUS "LLVM library = ${LLVM_LIBRARY}")
+ else()
+ message(FATAL_ERROR "LLVM not found.")
+ endif()
+ endif()
+
+ if(WITH_CYCLES_OSL)
+ set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
+
+ message(STATUS "CYCLES_OSL = ${CYCLES_OSL}")
+
+ find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib)
+ find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib)
+ find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
+ # Note: --whole-archive is needed to force loading of all symbols in liboslexec,
+ # otherwise LLVM is missing the osl_allocate_closure_component function
+ list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -Wl,--whole-archive ${OSL_LIB_EXEC} -Wl,--no-whole-archive ${OSL_LIB_QUERY})
+ find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
+ find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
+
+ if(OSL_INCLUDES AND OSL_LIBRARIES AND OSL_COMPILER)
+ set(OSL_FOUND TRUE)
+ message(STATUS "OSL includes = ${OSL_INCLUDES}")
+ message(STATUS "OSL library = ${OSL_LIBRARIES}")
+ message(STATUS "OSL compiler = ${OSL_COMPILER}")
+ else()
+ message(STATUS "OSL not found")
+ endif()
+
+ include_directories(${OSL_INCLUDES})
+ endif()
+
# OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed
set(PLATFORM_LINKLIBS "-lutil -lc -lm -lpthread -lstdc++")
@@ -815,6 +936,31 @@ elseif(WIN32)
add_definitions(-D__SSE__ -D__MMX__)
endif()
+ if(WITH_CYCLES_OSL)
+ set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
+
+ message(STATUS "CYCLES_OSL = ${CYCLES_OSL}")
+
+ find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib)
+ find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib)
+ find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
+ # WARNING! depends on correct order of OSL libs linking
+ list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} ${OSL_LIB_EXEC} ${OSL_LIB_QUERY})
+ find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
+ find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
+
+ if(OSL_INCLUDES AND OSL_LIBRARIES AND OSL_COMPILER)
+ set(OSL_FOUND TRUE)
+ message(STATUS "OSL includes = ${OSL_INCLUDES}")
+ message(STATUS "OSL library = ${OSL_LIBRARIES}")
+ message(STATUS "OSL compiler = ${OSL_COMPILER}")
+ else()
+ message(STATUS "OSL not found")
+ endif()
+
+ include_directories(${OSL_INCLUDES})
+ endif()
+
if(MSVC)
set(PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid)
@@ -856,7 +1002,7 @@ elseif(WIN32)
if(WITH_MOD_CLOTH_ELTOPO)
set(LAPACK ${LIBDIR}/lapack)
# set(LAPACK_INCLUDE_DIR ${LAPACK}/include)
- set_lib_path(LAPACK_LIBPATH ${LAPACK}/lib)
+ set(LAPACK_LIBPATH ${LAPACK}/lib)
set(LAPACK_LIBRARIES
${LIBDIR}/lapack/lib/libf2c.lib
${LIBDIR}/lapack/lib/clapack_nowrap.lib
@@ -896,6 +1042,7 @@ elseif(WIN32)
endif()
if(WITH_OPENCOLLADA)
+ set(OPENCOLLADA ${LIBDIR}/opencollada)
set(OPENCOLLADA_INCLUDE_DIRS
${LIBDIR}/opencollada/include/COLLADAStreamWriter/include
@@ -904,23 +1051,22 @@ elseif(WIN32)
${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader/include
${LIBDIR}/opencollada/include/GeneratedSaxParser/include
)
-
- set_lib_path(OPENCOLLADA_LIBPATH "opencollada/lib")
+ set_lib_path(OPENCOLLADA_LIBPATH "opencollada")
set(OPENCOLLADA_LIBRARIES
- ${OPENCOLLADA_LIBPATH}/OpenCOLLADASaxFrameworkLoader.lib
- ${OPENCOLLADA_LIBPATH}/OpenCOLLADAFramework.lib
- ${OPENCOLLADA_LIBPATH}/OpenCOLLADABaseUtils.lib
- ${OPENCOLLADA_LIBPATH}/OpenCOLLADAStreamWriter.lib
- ${OPENCOLLADA_LIBPATH}/MathMLSolver.lib
- ${OPENCOLLADA_LIBPATH}/GeneratedSaxParser.lib
- ${OPENCOLLADA_LIBPATH}/xml2.lib
- ${OPENCOLLADA_LIBPATH}/buffer.lib
- ${OPENCOLLADA_LIBPATH}/ftoa.lib
- ${OPENCOLLADA_LIBPATH}/UTF.lib
+ ${OPENCOLLADA_LIBPATH}/lib/OpenCOLLADASaxFrameworkLoader.lib
+ ${OPENCOLLADA_LIBPATH}/lib/OpenCOLLADAFramework.lib
+ ${OPENCOLLADA_LIBPATH}/lib/OpenCOLLADABaseUtils.lib
+ ${OPENCOLLADA_LIBPATH}/lib/OpenCOLLADAStreamWriter.lib
+ ${OPENCOLLADA_LIBPATH}/lib/MathMLSolver.lib
+ ${OPENCOLLADA_LIBPATH}/lib/GeneratedSaxParser.lib
+ ${OPENCOLLADA_LIBPATH}/lib/xml2.lib
+ ${OPENCOLLADA_LIBPATH}/lib/buffer.lib
+ ${OPENCOLLADA_LIBPATH}/lib/ftoa.lib
+ ${OPENCOLLADA_LIBPATH}/lib/UTF.lib
)
set(PCRE_LIBRARIES
- ${OPENCOLLADA_LIBPATH}/pcre.lib
+ ${OPENCOLLADA_LIBPATH}/lib/pcre.lib
)
unset(OPENCOLLADA_LIBPATH)
@@ -943,7 +1089,8 @@ elseif(WIN32)
if(WITH_IMAGE_OPENEXR)
set_lib_path(OPENEXR "openexr")
- set_lib_path(OPENEXR_LIBPATH "openexr/lib")
+ set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include)
+ set(OPENEXR_LIBPATH ${OPENEXR}/lib)
set(OPENEXR_LIBRARIES
${OPENEXR_LIBPATH}/Iex.lib
${OPENEXR_LIBPATH}/Half.lib
@@ -951,15 +1098,12 @@ elseif(WIN32)
${OPENEXR_LIBPATH}/Imath.lib
${OPENEXR_LIBPATH}/IlmThread.lib
)
- set_lib_path(OPENEXR_INCUDE "openexr/include")
set(OPENEXR_INCLUDE_DIRS
- ${OPENEXR_INCUDE}
- ${OPENEXR_INCUDE}/IlmImf
- ${OPENEXR_INCUDE}/Iex
- ${OPENEXR_INCUDE}/Imath
+ ${OPENEXR_INCLUDE_DIR}
+ ${OPENEXR_INCLUDE_DIR}/IlmImf
+ ${OPENEXR_INCLUDE_DIR}/Iex
+ ${OPENEXR_INCLUDE_DIR}/Imath
)
- unset(OPENEXR_INCUDE)
- unset(OPENEXR_LIBPATH)
endif()
if(WITH_IMAGE_TIFF)
@@ -978,9 +1122,11 @@ elseif(WIN32)
if(WITH_PYTHON)
# normally cached but not since we include them with blender
set(PYTHON_VERSION 3.2) # CACHE STRING)
- set_lib_path(PYTHON_INCLUDE_DIR "python/include/python${PYTHON_VERSION}")
- set_lib_path(PYTHON_LIBRARY "python/lib/python32.lib") #CACHE FILEPATH)
-
+ set_lib_path(PYTHON "python")
+ set(PYTHON_LIBRARY ${PYTHON}/lib/python32.lib) #CACHE FILEPATH
+ #Shared includes for both vc2008 and vc2010
+ set(PYTHON_INCLUDE_DIR ${LIBDIR}/python/include/python${PYTHON_VERSION})
+
# uncached vars
set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
@@ -990,22 +1136,27 @@ elseif(WIN32)
set(BOOST ${LIBDIR}/boost)
set(BOOST_INCLUDE_DIR ${BOOST}/include)
if(MSVC10)
- set(BOOST_POSTFIX "vc100-mt-s-1_47.lib")
- set(BOOST_DEBUG_POSTFIX "vc100-mt-sgd-1_47.lib")
+ set(BOOST_LIBPATH ${BOOST}/vc2010/lib)
+ set(BOOST_POSTFIX "vc100-mt-s-1_49.lib")
+ set(BOOST_DEBUG_POSTFIX "vc100-mt-sgd-1_49.lib")
else()
+ set(BOOST_LIBPATH ${BOOST}/lib)
set(BOOST_POSTFIX "vc90-mt-s-1_49.lib")
set(BOOST_DEBUG_POSTFIX "vc90-mt-sgd-1_49.lib")
endif()
set(BOOST_LIBRARIES
optimized libboost_date_time-${BOOST_POSTFIX} optimized libboost_filesystem-${BOOST_POSTFIX}
- optimized libboost_regex-${BOOST_POSTFIX} optimized libboost_system-${BOOST_POSTFIX} optimized libboost_thread-${BOOST_POSTFIX}
+ optimized libboost_regex-${BOOST_POSTFIX}
+ optimized libboost_system-${BOOST_POSTFIX} optimized libboost_thread-${BOOST_POSTFIX}
debug libboost_date_time-${BOOST_DEBUG_POSTFIX} debug libboost_filesystem-${BOOST_DEBUG_POSTFIX}
- debug libboost_regex-${BOOST_DEBUG_POSTFIX} debug libboost_system-${BOOST_DEBUG_POSTFIX} debug libboost_thread-${BOOST_DEBUG_POSTFIX})
- if(MSVC10)
- set(BOOST_LIBPATH ${BOOST}/lib/vc_10)
- else()
- set(BOOST_LIBPATH ${BOOST}/lib)
- endif()
+ debug libboost_regex-${BOOST_DEBUG_POSTFIX}
+ debug libboost_system-${BOOST_DEBUG_POSTFIX} debug libboost_thread-${BOOST_DEBUG_POSTFIX})
+ if(WITH_CYCLES_OSL)
+ set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
+ optimized libboost_python3-${BOOST_POSTFIX}
+ debug libboost_python3-${BOOST_DEBUG_POSTFIX})
+ endif(WITH_CYCLES_OSL)
+
set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
endif()
@@ -1013,10 +1164,18 @@ elseif(WIN32)
set(OPENIMAGEIO ${LIBDIR}/openimageio)
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
set(OPENIMAGEIO_LIBRARIES OpenImageIO)
- set_lib_path(OPENIMAGEIO_LIBPATH "openimageio/lib")
+ set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib)
set(OPENIMAGEIO_DEFINITIONS)
endif()
+ if(WITH_OPENCOLORIO)
+ set(OPENCOLORIO ${LIBDIR}/opencolorio)
+ set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
+ set(OPENCOLORIO_LIBRARIES OpenColorIO)
+ set(OPENCOLORIO_LIBPATH ${LIBDIR}/opencolorio/lib)
+ set(OPENCOLORIO_DEFINITIONS)
+ endif()
+
set(PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE /STACK:2097152 /INCREMENTAL:NO /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcmrt.lib /NODEFAULTLIB:msvcurt.lib /NODEFAULTLIB:msvcrtd.lib")
# MSVC only, Mingw doesnt need
@@ -1029,7 +1188,7 @@ elseif(WIN32)
set(PLATFORM_LINKFLAGS_DEBUG "/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib")
# used in many places so include globally, like OpenGL
- blender_include_dirs("${PTHREADS_INCLUDE_DIRS}")
+ blender_include_dirs_sys("${PTHREADS_INCLUDE_DIRS}")
elseif(CMAKE_COMPILER_IS_GNUCC)
# keep GCC specific stuff here
@@ -1045,6 +1204,8 @@ elseif(WIN32)
set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -lpthread")
add_definitions(-DFREE_WINDOWS64 -DMS_WIN64)
+ #Turn off OpenMP since it causes crashes on render for subsurfed/multiresolution meshes
+ set(WITH_OPENMP OFF)
endif()
add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE)
@@ -1166,14 +1327,22 @@ elseif(WIN32)
set(BOOST_POSTFIX "mgw47-mt-s-1_49")
set(BOOST_DEBUG_POSTFIX "mgw47-mt-sd-1_49")
else()
- set(BOOST_POSTFIX "mgw46-mt-s-1_47")
- set(BOOST_DEBUG_POSTFIX "mgw46-mt-sd-1_47")
+ set(BOOST_POSTFIX "mgw46-mt-s-1_49")
+ set(BOOST_DEBUG_POSTFIX "mgw46-mt-sd-1_49")
endif()
set(BOOST_LIBRARIES
optimized boost_date_time-${BOOST_POSTFIX} boost_filesystem-${BOOST_POSTFIX}
- boost_regex-${BOOST_POSTFIX} boost_system-${BOOST_POSTFIX} boost_thread-${BOOST_POSTFIX}
+ boost_regex-${BOOST_POSTFIX}
+ boost_system-${BOOST_POSTFIX} boost_thread-${BOOST_POSTFIX}
debug boost_date_time-${BOOST_DEBUG_POSTFIX} boost_filesystem-${BOOST_DEBUG_POSTFIX}
- boost_regex-${BOOST_DEBUG_POSTFIX} boost_system-${BOOST_DEBUG_POSTFIX} boost_thread-${BOOST_DEBUG_POSTFIX})
+ boost_regex-${BOOST_DEBUG_POSTFIX}
+ boost_system-${BOOST_DEBUG_POSTFIX} boost_thread-${BOOST_DEBUG_POSTFIX})
+ if(WITH_CYCLES_OSL)
+ set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
+ optimized libboost_python3-${BOOST_POSTFIX}
+ debug libboost_python3-${BOOST_DEBUG_POSTFIX})
+ endif(WITH_CYCLES_OSL)
+
set(BOOST_LIBPATH ${BOOST}/lib)
set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB -DBOOST_THREAD_USE_LIB ")
endif()
@@ -1186,10 +1355,18 @@ elseif(WIN32)
set(OPENIMAGEIO_DEFINITIONS)
endif()
+ if(WITH_OPENCOLORIO)
+ set(OPENCOLORIO ${LIBDIR}/opencolorio)
+ set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
+ set(OPENCOLORIO_LIBRARIES OpenColorIO)
+ set(OPENCOLORIO_LIBPATH ${OPENCOLORIO}/lib)
+ set(OPENCOLORIO_DEFINITIONS)
+ endif()
+
set(PLATFORM_LINKFLAGS "-Xlinker --stack=2097152")
## DISABLE - causes linking errors
- ## for re-distrobution, so users dont need mingw installed
+ ## for re-distribution, so users dont need mingw installed
# set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-libgcc -static-libstdc++")
endif()
@@ -1301,6 +1478,7 @@ elseif(APPLE)
if(WITH_IMAGE_OPENEXR)
set(OPENEXR ${LIBDIR}/openexr)
+ set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include)
set(OPENEXR_INCLUDE_DIRS ${OPENEXR}/include/OpenEXR)
set(OPENEXR_LIBRARIES Iex Half IlmImf Imath IlmThread)
set(OPENEXR_LIBPATH ${OPENEXR}/lib)
@@ -1419,7 +1597,11 @@ elseif(APPLE)
if(WITH_BOOST)
set(BOOST ${LIBDIR}/boost)
set(BOOST_INCLUDE_DIR ${BOOST}/include)
- set(BOOST_LIBRARIES boost_date_time-mt boost_filesystem-mt boost_regex-mt boost_system-mt boost_thread-mt)
+ if(WITH_CYCLES_OSL)
+ set(BOOST_LIBRARIES boost_date_time-mt boost_filesystem-mt boost_python3-mt boost_regex-mt boost_system-mt boost_thread-mt)
+ else(WITH_CYCLES_OSL)
+ set(BOOST_LIBRARIES boost_date_time-mt boost_filesystem-mt boost_regex-mt boost_system-mt boost_thread-mt)
+ endif(WITH_CYCLES_OSL)
set(BOOST_LIBPATH ${BOOST}/lib)
set(BOOST_DEFINITIONS)
endif()
@@ -1427,21 +1609,105 @@ elseif(APPLE)
if(WITH_OPENIMAGEIO)
set(OPENIMAGEIO ${LIBDIR}/openimageio)
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
- set(OPENIMAGEIO_LIBRARIES OpenImageIO ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARY} ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES})
+ set(OPENIMAGEIO_LIBRARIES -force_load ${OPENIMAGEIO}/lib/libOpenImageIO.a ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARY} ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES})
set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib ${JPEG_LIBPATH} ${PNG_LIBPATH} ${TIFF_LIBPATH} ${OPENEXR_LIBPATH} ${ZLIB_LIBPATH})
set(OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD")
endif()
+ if(WITH_OPENCOLORIO)
+ set(OPENCOLORIO ${LIBDIR}/opencolorio)
+ set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
+ set(OPENCOLORIO_LIBRARIES OpenColorIO tinyxml yaml-cpp)
+ set(OPENCOLORIO_LIBPATH ${OPENCOLORIO}/lib)
+ set(OPENCOLORIO_DEFINITIONS "-DOCIO_STATIC_BUILD")
+ endif()
+
+ if(WITH_LLVM)
+ set(LLVM_DIRECTORY ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation")
+ set(LLVM_VERSION "3.1" CACHE STRING "Version of LLVM to use" "")
+ set(LLVM_STATIC YES)
+ if(LLVM_DIRECTORY)
+ set(LLVM_CONFIG "${LLVM_DIRECTORY}/bin/llvm-config")
+ else()
+ set(LLVM_CONFIG llvm-config)
+ endif()
+ execute_process(COMMAND ${LLVM_CONFIG} --version
+ OUTPUT_VARIABLE LLVM_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND ${LLVM_CONFIG} --prefix
+ OUTPUT_VARIABLE LLVM_DIRECTORY
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND ${LLVM_CONFIG} --libdir
+ OUTPUT_VARIABLE LLVM_LIB_DIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND ${LLVM_CONFIG} --includedir
+ OUTPUT_VARIABLE LLVM_INCLUDES
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ find_library(LLVM_LIBRARY
+ NAMES libLLVMAnalysis.a # first of a whole bunch of libs to get
+ PATHS ${LLVM_LIB_DIR})
+ message(STATUS "LLVM version = ${LLVM_VERSION}")
+ message(STATUS "LLVM dir = ${LLVM_DIRECTORY}")
+ message(STATUS "LLVM includes = ${LLVM_INCLUDES}")
+ message(STATUS "LLVM lib dir = ${LLVM_LIB_DIR}")
+
+ if(LLVM_LIBRARY AND LLVM_INCLUDES AND LLVM_DIRECTORY AND LLVM_LIB_DIR)
+ # ensure include directory is added (in case of non-standard locations
+ include_directories(BEFORE "${LLVM_INCLUDES}")
+ string(REGEX REPLACE "\\." "" OSL_LLVM_VERSION ${LLVM_VERSION})
+ message(STATUS "LLVM OSL_LLVM_VERSION = ${OSL_LLVM_VERSION}")
+ add_definitions("-DOSL_LLVM_VERSION=${OSL_LLVM_VERSION}")
+ if(LLVM_STATIC)
+ # if static LLVM libraries were requested, use llvm-config to generate
+ # the list of what libraries we need, and substitute that in the right
+ # way for LLVM_LIBRARY.
+ execute_process(COMMAND ${LLVM_CONFIG} --libfiles
+ OUTPUT_VARIABLE LLVM_LIBRARY
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REPLACE " " ";" LLVM_LIBRARY ${LLVM_LIBRARY})
+ endif()
+ message(STATUS "LLVM library = ${LLVM_LIBRARY}")
+ else()
+ message(FATAL_ERROR "LLVM not found.")
+ endif()
+ endif()
+
+ if(WITH_CYCLES_OSL)
+ set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
+
+ message(STATUS "CYCLES_OSL = ${CYCLES_OSL}")
+
+ find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib)
+ find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib)
+ find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
+ # WARNING! depends on correct order of OSL libs linking
+ list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -force_load ${OSL_LIB_EXEC} ${OSL_LIB_QUERY})
+ find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
+ find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
+
+ if(OSL_INCLUDES AND OSL_LIBRARIES AND OSL_COMPILER)
+ set(OSL_FOUND TRUE)
+ message(STATUS "OSL includes = ${OSL_INCLUDES}")
+ message(STATUS "OSL library = ${OSL_LIBRARIES}")
+ message(STATUS "OSL compiler = ${OSL_COMPILER}")
+ else()
+ message(STATUS "OSL not found")
+ endif()
+
+ include_directories(${OSL_INCLUDES})
+ endif()
+
set(EXETYPE MACOSX_BUNDLE)
set(CMAKE_C_FLAGS_DEBUG "-fno-strict-aliasing -g")
set(CMAKE_CXX_FLAGS_DEBUG "-fno-strict-aliasing -g")
- if(CMAKE_OSX_ARCHITECTURES MATCHES "i386")
- set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -fvariable-expansion-in-unroller")
- set(CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -fvariable-expansion-in-unroller")
- elseif(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64")
- set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -msse3 -mssse3 -fvariable-expansion-in-unroller")
- set(CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -ftree-vectorize -msse -msse2 -msse3 -mssse3 -fvariable-expansion-in-unroller")
+ if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR CMAKE_OSX_ARCHITECTURES MATCHES "i386")
+ set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3")
+ set(CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3")
+ if(NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller")
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller")
+ endif()
else()
set(CMAKE_C_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
set(CMAKE_CXX_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
@@ -1464,6 +1730,12 @@ if(WITH_CYCLES)
if(NOT WITH_BOOST)
message(FATAL_ERROR "Cycles reqires WITH_BOOST, the library may not have been found. Configure BOOST or disable WITH_CYCLES")
endif()
+
+ if(WITH_CYCLES_OSL)
+ if(NOT WITH_LLVM)
+ message(FATAL_ERROR "Cycles OSL reqires WITH_LLVM, the library may not have been found. Configure LLVM or disable WITH_CYCLES_OSL")
+ endif()
+ endif()
endif()
@@ -1488,6 +1760,16 @@ endif()
if(MSVC)
# for some reason this fails on msvc
add_definitions(-D__LITTLE_ENDIAN__)
+
+# OSX-Note: as we do crosscompiling with specific set architecture,
+# endianess-detection and autosetting is counterproductive
+# so we just set endianess according CMAKE_OSX_ARCHITECTURES
+
+elseif(CMAKE_OSX_ARCHITECTURES MATCHES i386 OR CMAKE_OSX_ARCHITECTURES MATCHES x86_64)
+ add_definitions(-D__LITTLE_ENDIAN__)
+elseif(CMAKE_OSX_ARCHITECTURES MATCHES ppc OR CMAKE_OSX_ARCHITECTURES MATCHES ppc64)
+ add_definitions(-D__BIG_ENDIAN__)
+
else()
include(TestBigEndian)
test_big_endian(_SYSTEM_BIG_ENDIAN)
@@ -1588,17 +1870,22 @@ if(CMAKE_COMPILER_IS_GNUCC)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_CAST_ALIGN -Wcast-align)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_DECLARATION_AFTER_STATEMENT -Werror=declaration-after-statement)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration)
- ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type)
# system headers sometimes do this, disable for now, was: -Werror=strict-prototypes
- ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_STRICT_PROTOTYPES -Wstrict-prototypes)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_STRICT_PROTOTYPES -Wstrict-prototypes)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_MISSING_PROTOTYPES -Wmissing-prototypes)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_POINTER_ARITH -Wpointer-arith)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_PARAMETER -Wunused-parameter)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_WRITE_STRINGS -Wwrite-strings)
-
- # # this causes too many warnings, disable
- # ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNDEFINED -Wundef)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_LOGICAL_OP -Wlogical-op)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNDEF -Wundef)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNINITIALIZED -Wuninitialized)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_INIT_SELF -Winit-self) # needs -Wuninitialized
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_NULL -Wnonnull) # C only
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_MISSING_INCLUDE_DIRS -Wmissing-include-dirs)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_DIV_BY_ZERO -Wno-div-by-zero)
# disable because it gives warnings for printf() & friends.
# ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_DOUBLE_PROMOTION -Wdouble-promotion -Wno-error=double-promotion)
@@ -1610,9 +1897,17 @@ if(CMAKE_COMPILER_IS_GNUCC)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ALL -Wall)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof)
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_SIGN_COMPARE -Wno-sign-compare)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_LOGICAL_OP -Wlogical-op)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNINITIALIZED -Wuninitialized)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_INIT_SELF -Winit-self) # needs -Wuninitialized
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_MISSING_INCLUDE_DIRS -Wmissing-include-dirs)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_DIV_BY_ZERO -Wno-div-by-zero)
- # # this causes too many warnings, disable
- # ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNDEFINED -Wundef)
+ # causes too many warnings
+ if(NOT APPLE)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNDEF -Wundef)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_MISSING_DECLARATIONS -Wmissing-declarations)
+ endif()
# flags to undo strict flags
ADD_CHECK_C_COMPILER_FLAG(CC_REMOVE_STRICT_FLAGS C_WARN_NO_DEPRECATED_DECLARATIONS -Wno-deprecated-declarations)
@@ -1624,17 +1919,22 @@ if(CMAKE_COMPILER_IS_GNUCC)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ # strange, clang complains these are not supported, but then yses them.
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_AUTOLOGICAL_COMPARE -Wno-tautological-compare)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas)
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_STRICT_PROTOTYPES -Wstrict-prototypes)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_MISSING_PROTOTYPES -Wmissing-prototypes)
+ ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_MACROS -Wunused-macros)
- ADD_CHECK_C_COMPILER_FLAG(CXX_WARNINGS C_WARN_ALL -Wall)
- ADD_CHECK_C_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_AUTOLOGICAL_COMPARE -Wno-tautological-compare)
- ADD_CHECK_C_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas)
- ADD_CHECK_C_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts)
- ADD_CHECK_C_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_OVERLOADED_VIRTUAL -Wno-overloaded-virtual) # we get a lot of these, if its a problem a dev needs to look into it.
- ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_ALL -Wall)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_AUTOLOGICAL_COMPARE -Wno-tautological-compare)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_UNKNOWN_PRAGMAS -Wno-unknown-pragmas)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_CHAR_SUBSCRIPTS -Wno-char-subscripts)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_OVERLOADED_VIRTUAL -Wno-overloaded-virtual) # we get a lot of these, if its a problem a dev needs to look into it.
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_NO_INVALID_OFFSETOF -Wno-invalid-offsetof)
+ ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_MACROS -Wunused-macros)
elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
@@ -1654,9 +1954,6 @@ endif()
# MSVC2010 fails to links C++ libs right
if(MSVC10)
- if(WITH_IMAGE_OPENEXR)
- message(WARNING "MSVC 2010 does not support OpenEXR, disabling WITH_IMAGE_OPENEXR. To enable support use Use MSVC 2008")
- endif()
if(WITH_OPENCOLLADA)
message(WARNING "MSVC 2010 does not support OpenCollada, disabling WITH_OPENCOLLADA. To enable support use Use MSVC 2008")
endif()
@@ -1792,12 +2089,14 @@ if(FIRST_RUN)
info_cfg_option(WITH_GAMEENGINE)
info_cfg_option(WITH_PLAYER)
info_cfg_option(WITH_BULLET)
+ info_cfg_option(WITH_IK_SOLVER)
info_cfg_option(WITH_IK_ITASC)
info_cfg_option(WITH_OPENCOLLADA)
info_cfg_option(WITH_FFTW3)
info_cfg_option(WITH_INTERNATIONAL)
info_cfg_option(WITH_INPUT_NDOF)
info_cfg_option(WITH_CYCLES)
+ info_cfg_option(WITH_OPENCOLORIO)
info_cfg_text("Compiler Options:")
info_cfg_option(WITH_BUILDINFO)
@@ -1825,6 +2124,7 @@ if(FIRST_RUN)
info_cfg_option(WITH_OPENAL)
info_cfg_option(WITH_SDL)
info_cfg_option(WITH_JACK)
+ info_cfg_option(WITH_CODEC_AVI)
info_cfg_option(WITH_CODEC_FFMPEG)
info_cfg_option(WITH_CODEC_SNDFILE)
diff --git a/GNUmakefile b/GNUmakefile
index 88ce32959af..90d76dfe432 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -19,9 +19,9 @@
#
# ##### END GPL LICENSE BLOCK #####
-# This Makefile does an out-of-source CMake build in ../build/`OS`_`CPU`
+# This Makefile does an out-of-source CMake build in ../build_`OS`_`CPU`
# eg:
-# ../build/Linux_i386
+# ../build_linux_i386
# This is for users who like to configure & build blender with a single command.
@@ -40,7 +40,7 @@ ifndef BUILD_CMAKE_ARGS
endif
ifndef BUILD_DIR
- BUILD_DIR:=$(shell dirname $(BLENDER_DIR))/build/$(OS_NCASE)
+ BUILD_DIR:=$(shell dirname $(BLENDER_DIR))/build_$(OS_NCASE)
endif
@@ -171,8 +171,10 @@ help:
@echo ""
@echo "Static Source Code Checking (not associated with building blender)"
@echo " * check_cppcheck - run blender source through cppcheck (C & C++)"
+ @echo " * check_clang_array - run blender source through clang array checking script (C & C++)"
@echo " * check_splint - run blenders source through splint (C only)"
@echo " * check_sparse - run blenders source through sparse (C only)"
+ @echo " * check_smatch - run blenders source through smatch (C only)"
@echo " * check_spelling_c - check for spelling errors (C/C++ only)"
@echo " * check_spelling_py - check for spelling errors (Python only)"
@echo ""
@@ -243,6 +245,10 @@ check_cppcheck:
$(CMAKE_CONFIG)
cd $(BUILD_DIR) ; python3.2 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_cppcheck.py
+check_clang_array:
+ $(CMAKE_CONFIG)
+ cd $(BUILD_DIR) ; python3.2 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_clang_array.py
+
check_splint:
$(CMAKE_CONFIG)
cd $(BUILD_DIR) ; python3.2 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_splint.py
@@ -251,6 +257,10 @@ check_sparse:
$(CMAKE_CONFIG)
cd $(BUILD_DIR) ; python3.2 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_sparse.py
+check_smatch:
+ $(CMAKE_CONFIG)
+ cd $(BUILD_DIR) ; python3.2 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_smatch.py
+
check_spelling_py:
cd $(BUILD_DIR) ; PYTHONIOENCODING=utf_8 python3.2 $(BLENDER_DIR)/source/tools/spell_check_source.py $(BLENDER_DIR)/release/scripts
diff --git a/SConstruct b/SConstruct
index 088361af649..7b92a0cb25c 100644
--- a/SConstruct
+++ b/SConstruct
@@ -92,7 +92,7 @@ if platform=='win32':
if not use_color=='1':
B.bc.disable()
-
+
#on defaut white Os X terminal, some colors are totally unlegible
if platform=='darwin':
B.bc.OKGREEN = '\033[34m'
@@ -123,7 +123,7 @@ if bitness:
B.bitness = bitness
else:
B.bitness = tempbitness
-
+
# first check cmdline for toolset and we create env to work on
quickie = B.arguments.get('BF_QUICK', None)
@@ -138,7 +138,7 @@ if quickie:
B.quickie=string.split(quickie,',')
else:
B.quickie=[]
-
+
toolset = B.arguments.get('BF_TOOLSET', None)
if toolset:
print "Using " + toolset
@@ -270,7 +270,7 @@ if 'blenderlite' in B.targets:
target_env_defs['WITH_BF_PYTHON'] = False
target_env_defs['WITH_BF_3DMOUSE'] = False
target_env_defs['WITH_BF_LIBMV'] = False
-
+
# Merge blenderlite, let command line to override
for k,v in target_env_defs.iteritems():
if k not in B.arguments:
@@ -280,8 +280,10 @@ if 'blenderlite' in B.targets:
if env['OURPLATFORM']=='darwin':
print B.bc.OKGREEN + "Detected Xcode version: -- " + B.bc.ENDC + env['XCODE_CUR_VER'] + " --"
print "Available " + env['MACOSX_SDK_CHECK']
- if not 'Mac OS X 10.5' in env['MACOSX_SDK_CHECK']:
- print B.bc.OKGREEN + "MacOSX10.5.sdk not available:" + B.bc.ENDC + " using MacOSX10.6.sdk"
+ if not 'Mac OS X 10.6' in env['MACOSX_SDK_CHECK']:
+ print B.bc.OKGREEN + "Auto-setting available MacOSX SDK -> " + B.bc.ENDC + "MacOSX10.7.sdk"
+ elif not 'Mac OS X 10.5' in env['MACOSX_SDK_CHECK']:
+ print B.bc.OKGREEN + "Auto-setting available MacOSX SDK -> " + B.bc.ENDC + "MacOSX10.6.sdk"
else:
print B.bc.OKGREEN + "Found recommended sdk :" + B.bc.ENDC + " using MacOSX10.5.sdk"
@@ -317,7 +319,7 @@ if env['WITH_BF_OPENMP'] == 1:
if env['WITH_GHOST_COCOA'] == True:
env.Append(CPPFLAGS=['-DGHOST_COCOA'])
-
+
if env['USE_QTKIT'] == True:
env.Append(CPPFLAGS=['-DUSE_QTKIT'])
@@ -364,6 +366,7 @@ else:
# TODO, make optional
env['CPPFLAGS'].append('-DWITH_AUDASPACE')
+env['CPPFLAGS'].append('-DWITH_AVI')
# lastly we check for root_build_dir ( we should not do before, otherwise we might do wrong builddir
B.root_build_dir = env['BF_BUILDDIR']
@@ -372,7 +375,7 @@ if not B.root_build_dir[-1]==os.sep:
B.root_build_dir += os.sep
if not B.doc_build_dir[-1]==os.sep:
B.doc_build_dir += os.sep
-
+
# We do a shortcut for clean when no quicklist is given: just delete
# builddir without reading in SConscripts
do_clean = None
@@ -420,16 +423,16 @@ if not quickie and do_clean:
# with _any_ library but since we used a fixed python version this tends to
# be most problematic.
if env['WITH_BF_PYTHON']:
- py_h = os.path.join(Dir(env.subst('${BF_PYTHON_INC}')).abspath, "Python.h")
+ py_h = os.path.join(Dir(env.subst('${BF_PYTHON_INC}')).abspath, "Python.h")
- if not os.path.exists(py_h):
- print("\nMissing: \"" + env.subst('${BF_PYTHON_INC}') + os.sep + "Python.h\",\n"
- " Set 'BF_PYTHON_INC' to point "
- "to a valid python include path.\n Containing "
- "Python.h for python version \"" + env.subst('${BF_PYTHON_VERSION}') + "\"")
+ if not os.path.exists(py_h):
+ print("\nMissing: \"" + env.subst('${BF_PYTHON_INC}') + os.sep + "Python.h\",\n"
+ " Set 'BF_PYTHON_INC' to point "
+ "to a valid python include path.\n Containing "
+ "Python.h for python version \"" + env.subst('${BF_PYTHON_VERSION}') + "\"")
- Exit()
- del py_h
+ Exit()
+ del py_h
if not os.path.isdir ( B.root_build_dir):
@@ -443,9 +446,116 @@ if not os.path.isdir ( B.root_build_dir):
# if not os.path.isdir(B.doc_build_dir) and env['WITH_BF_DOCS']:
# os.makedirs ( B.doc_build_dir )
+###################################
+# Ensure all data files are valid #
+###################################
+if not os.path.isdir ( B.root_build_dir + 'data_headers'):
+ os.makedirs ( B.root_build_dir + 'data_headers' )
+if not os.path.isdir ( B.root_build_dir + 'data_sources'):
+ os.makedirs ( B.root_build_dir + 'data_sources' )
+# use for includes
+env['DATA_HEADERS'] = os.path.join(os.path.abspath(env['BF_BUILDDIR']), "data_headers")
+env['DATA_SOURCES'] = os.path.join(os.path.abspath(env['BF_BUILDDIR']), "data_sources")
+def data_to_c(FILE_FROM, FILE_TO, VAR_NAME):
+ if os.sep == "\\":
+ FILE_FROM = FILE_FROM.replace("/", "\\")
+ FILE_TO = FILE_TO.replace("/", "\\")
+
+ # first check if we need to bother.
+ if os.path.exists(FILE_TO):
+ if os.path.getmtime(FILE_FROM) < os.path.getmtime(FILE_TO):
+ return
+
+ print(B.bc.HEADER + "Generating: " + B.bc.ENDC + "%r" % os.path.basename(FILE_TO))
+ fpin = open(FILE_FROM, "rb")
+ fpin.seek(0, os.SEEK_END)
+ size = fpin.tell()
+ fpin.seek(0)
+
+ fpout = open(FILE_TO, "w")
+ fpout.write("int %s_size = %d;\n" % (VAR_NAME, size))
+ fpout.write("char %s[] = {\n" % VAR_NAME)
+
+ while size > 0:
+ size -= 1
+ if size % 32 == 31:
+ fpout.write("\n")
+
+ fpout.write("%3d," % ord(fpin.read(1)))
+ fpout.write("\n 0};\n\n")
+
+ fpin.close()
+ fpout.close()
+
+def data_to_c_simple(FILE_FROM):
+ filename_only = os.path.basename(FILE_FROM)
+ FILE_TO = os.path.join(env['DATA_SOURCES'], filename_only + ".c")
+ VAR_NAME = "datatoc_" + filename_only.replace(".", "_")
+
+ data_to_c(FILE_FROM, FILE_TO, VAR_NAME)
+
+
+data_to_c("source/blender/compositor/operations/COM_OpenCLKernels.cl",
+ B.root_build_dir + "data_headers/COM_OpenCLKernels.cl.h",
+ "datatoc_COM_OpenCLKernels_cl")
+
+data_to_c_simple("release/datafiles/startup.blend")
+data_to_c_simple("release/datafiles/preview.blend")
+
+# --- glsl ---
+data_to_c_simple("source/blender/gpu/shaders/gpu_shader_material.glsl")
+data_to_c_simple("source/blender/gpu/shaders/gpu_shader_vertex.glsl")
+data_to_c_simple("source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_frag.glsl")
+data_to_c_simple("source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_vert.glsl")
+data_to_c_simple("source/blender/gpu/shaders/gpu_shader_material.glsl")
+data_to_c_simple("source/blender/gpu/shaders/gpu_shader_vsm_store_frag.glsl")
+data_to_c_simple("source/blender/gpu/shaders/gpu_shader_vsm_store_vert.glsl")
+
+# --- blender ---
+data_to_c_simple("release/datafiles/bfont.pfb")
+data_to_c_simple("release/datafiles/bfont.ttf")
+data_to_c_simple("release/datafiles/bmonofont.ttf")
+
+data_to_c_simple("release/datafiles/splash.png")
+data_to_c_simple("release/datafiles/blender_icons.png")
+data_to_c_simple("release/datafiles/prvicons.png")
+
+data_to_c_simple("release/datafiles/brushicons/add.png")
+data_to_c_simple("release/datafiles/brushicons/blob.png")
+data_to_c_simple("release/datafiles/brushicons/blur.png")
+data_to_c_simple("release/datafiles/brushicons/clay.png")
+data_to_c_simple("release/datafiles/brushicons/claystrips.png")
+data_to_c_simple("release/datafiles/brushicons/clone.png")
+data_to_c_simple("release/datafiles/brushicons/crease.png")
+data_to_c_simple("release/datafiles/brushicons/darken.png")
+data_to_c_simple("release/datafiles/brushicons/draw.png")
+data_to_c_simple("release/datafiles/brushicons/fill.png")
+data_to_c_simple("release/datafiles/brushicons/flatten.png")
+data_to_c_simple("release/datafiles/brushicons/grab.png")
+data_to_c_simple("release/datafiles/brushicons/inflate.png")
+data_to_c_simple("release/datafiles/brushicons/layer.png")
+data_to_c_simple("release/datafiles/brushicons/lighten.png")
+data_to_c_simple("release/datafiles/brushicons/mask.png")
+data_to_c_simple("release/datafiles/brushicons/mix.png")
+data_to_c_simple("release/datafiles/brushicons/multiply.png")
+data_to_c_simple("release/datafiles/brushicons/nudge.png")
+data_to_c_simple("release/datafiles/brushicons/pinch.png")
+data_to_c_simple("release/datafiles/brushicons/scrape.png")
+data_to_c_simple("release/datafiles/brushicons/smear.png")
+data_to_c_simple("release/datafiles/brushicons/smooth.png")
+data_to_c_simple("release/datafiles/brushicons/snake_hook.png")
+data_to_c_simple("release/datafiles/brushicons/soften.png")
+data_to_c_simple("release/datafiles/brushicons/subtract.png")
+data_to_c_simple("release/datafiles/brushicons/texdraw.png")
+data_to_c_simple("release/datafiles/brushicons/thumb.png")
+data_to_c_simple("release/datafiles/brushicons/twist.png")
+data_to_c_simple("release/datafiles/brushicons/vertexdraw.png")
+
+##### END DATAFILES ##########
+
Help(opts.GenerateHelpText(env))
-# default is new quieter output, but if you need to see the
+# default is new quieter output, but if you need to see the
# commands, do 'scons BF_QUIET=0'
bf_quietoutput = B.arguments.get('BF_QUIET', '1')
if env['BF_QUIET']:
@@ -532,7 +642,7 @@ if env['OURPLATFORM']!='darwin':
for targetdir,srcfile in zip(datafilestargetlist, datafileslist):
td, tf = os.path.split(targetdir)
dotblenderinstall.append(env.Install(dir=td, source=srcfile))
-
+
if env['WITH_BF_PYTHON']:
#-- local/VERSION/scripts
scriptpaths=['release/scripts']
@@ -609,13 +719,33 @@ if env['OURPLATFORM']!='darwin':
kernel_build_dir = os.path.join(B.root_build_dir, 'intern/cycles/kernel')
cubin_file = os.path.join(kernel_build_dir, "kernel_%s.cubin" % arch)
scriptinstall.append(env.Install(dir=dir,source=cubin_file))
-
+
+ if env['WITH_BF_OCIO']:
+ colormanagement = os.path.join('release', 'datafiles', 'colormanagement')
+
+ for dp, dn, df in os.walk(colormanagement):
+ if '.svn' in dn:
+ dn.remove('.svn')
+ if '_svn' in dn:
+ dn.remove('_svn')
+
+ dir = os.path.join(env['BF_INSTALLDIR'], VERSION, 'datafiles')
+ dir += os.sep + os.path.basename(colormanagement) + dp[len(colormanagement):]
+
+ source = [os.path.join(dp, f) for f in df if not f.endswith(".pyc")]
+
+ # To ensure empty dirs are created too
+ if len(source) == 0:
+ env.Execute(Mkdir(dir))
+
+ scriptinstall.append(env.Install(dir=dir,source=source))
+
if env['WITH_BF_INTERNATIONAL']:
internationalpaths=['release' + os.sep + 'datafiles']
-
+
def check_path(path, member):
return (member in path.split(os.sep))
-
+
for intpath in internationalpaths:
for dp, dn, df in os.walk(intpath):
if '.svn' in dn:
@@ -628,7 +758,7 @@ if env['OURPLATFORM']!='darwin':
pass
else:
continue
-
+
dir = os.path.join(env['BF_INSTALLDIR'], VERSION)
dir += os.sep + os.path.basename(intpath) + dp[len(intpath):]
@@ -736,12 +866,19 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'win64-vc', 'linuxcross'):
# strict: the x86 build fails on x64 Windows. We need to ship
# both builds in x86 packages.
if bitness == 32:
- dllsources.append('${LCGDIR}/thumbhandler/lib/BlendThumb.dll')
+ dllsources.append('${LCGDIR}/thumbhandler/lib/BlendThumb.dll')
dllsources.append('${LCGDIR}/thumbhandler/lib/BlendThumb64.dll')
if env['WITH_BF_OIIO'] and env['OURPLATFORM'] != 'win32-mingw':
dllsources.append('${LCGDIR}/openimageio/bin/OpenImageIO.dll')
+ if env['WITH_BF_OCIO']:
+ if not env['OURPLATFORM'] in ('win32-mingw', 'linuxcross'):
+ dllsources.append('${LCGDIR}/opencolorio/bin/OpenColorIO.dll')
+
+ else:
+ dllsources.append('${LCGDIR}/opencolorio/bin/libOpenColorIO.dll')
+
dllsources.append('#source/icons/blender.exe.manifest')
windlls = env.Install(dir=env['BF_INSTALLDIR'], source = dllsources)
@@ -749,7 +886,7 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'win64-vc', 'linuxcross'):
if env['OURPLATFORM'] == 'win64-mingw':
dllsources = []
-
+
if env['WITH_BF_PYTHON']:
if env['BF_DEBUG']:
dllsources.append('${BF_PYTHON_LIBPATH}/${BF_PYTHON_DLL}_d.dll')
@@ -768,9 +905,17 @@ if env['OURPLATFORM'] == 'win64-mingw':
if env['WITH_BF_SDL']:
dllsources.append('${LCGDIR}/sdl/lib/SDL.dll')
-
+
+ if(env['WITH_BF_OPENMP']):
+ dllsources.append('${LCGDIR}/binaries/libgomp-1.dll')
+
+ if env['WITH_BF_OCIO']:
+ dllsources.append('${LCGDIR}/opencolorio/bin/libOpenColorIO.dll')
+
dllsources.append('${LCGDIR}/thumbhandler/lib/BlendThumb64.dll')
- dllsources.append('${LCGDIR}/binaries/pthreadGC2-w64.dll')
+ dllsources.append('${LCGDIR}/binaries/libgcc_s_sjlj-1.dll')
+ dllsources.append('${LCGDIR}/binaries/libwinpthread-1.dll')
+ dllsources.append('${LCGDIR}/binaries/libstdc++-6.dll')
dllsources.append('#source/icons/blender.exe.manifest')
windlls = env.Install(dir=env['BF_INSTALLDIR'], source = dllsources)
diff --git a/build_files/buildbot/config/user-config-i686.py b/build_files/buildbot/config/user-config-i686.py
index b07dd505369..9d27fbe46fc 100644
--- a/build_files/buildbot/config/user-config-i686.py
+++ b/build_files/buildbot/config/user-config-i686.py
@@ -106,6 +106,14 @@ BF_OIIO_INC = '${BF_OIIO}/include'
BF_OIIO_LIB_STATIC = '${BF_OIIO_LIBPATH}/libOpenImageIO.a ${BF_OPENEXR}/lib/libIlmImf.a'
BF_OIIO_LIBPATH = '${BF_OIIO}/lib'
+# Color management
+WITH_BF_OCIO = True
+WITH_BF_STATICOCIO = True
+BF_OCIO = '/opt/ocio'
+BF_OCIO_INC = '${BF_OCIO}/include'
+BF_OCIO_LIB_STATIC = '${BF_OCIO_LIBPATH}/libOpenColorIO.a ${BF_OCIO_LIBPATH}/libtinyxml.a ${BF_OCIO_LIBPATH}/libyaml-cpp.a'
+BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
+
WITH_BF_BOOST = True
WITH_BF_STATICBOOST = True
BF_BOOST = '/opt/boost'
diff --git a/build_files/buildbot/config/user-config-player-i686.py b/build_files/buildbot/config/user-config-player-i686.py
index 6c5c5f89ad4..e23fc70262f 100644
--- a/build_files/buildbot/config/user-config-player-i686.py
+++ b/build_files/buildbot/config/user-config-player-i686.py
@@ -82,6 +82,14 @@ WITH_BF_STATIC3DMOUSE = True
BF_3DMOUSE = '/home/sources/staticlibs/spnav'
BF_3DMOUSE_LIBPATH = '${BF_3DMOUSE}/lib32'
+# Color management
+WITH_BF_OCIO = True
+WITH_BF_STATICOCIO = True
+BF_OCIO = '/opt/ocio'
+BF_OCIO_INC = '${BF_OCIO}/include'
+BF_OCIO_LIB_STATIC = '${BF_OCIO_LIBPATH}/libOpenColorIO.a ${BF_OCIO_LIBPATH}/libtinyxml.a ${BF_OCIO_LIBPATH}/libyaml-cpp.a'
+BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
+
# JACK
WITH_BF_JACK = True
diff --git a/build_files/buildbot/config/user-config-player-x86_64.py b/build_files/buildbot/config/user-config-player-x86_64.py
index 60c8060e78e..3c09603473e 100644
--- a/build_files/buildbot/config/user-config-player-x86_64.py
+++ b/build_files/buildbot/config/user-config-player-x86_64.py
@@ -82,6 +82,14 @@ WITH_BF_STATIC3DMOUSE = True
BF_3DMOUSE = '/home/sources/staticlibs/spnav'
BF_3DMOUSE_LIBPATH = '${BF_3DMOUSE}/lib64'
+# Color management
+WITH_BF_OCIO = True
+WITH_BF_STATICOCIO = True
+BF_OCIO = '/opt/ocio'
+BF_OCIO_INC = '${BF_OCIO}/include'
+BF_OCIO_LIB_STATIC = '${BF_OCIO_LIBPATH}/libOpenColorIO.a ${BF_OCIO_LIBPATH}/libtinyxml.a ${BF_OCIO_LIBPATH}/libyaml-cpp.a'
+BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
+
# JACK
WITH_BF_JACK = True
diff --git a/build_files/buildbot/config/user-config-x86_64.py b/build_files/buildbot/config/user-config-x86_64.py
index 5905a9c29dd..070e62b2f20 100644
--- a/build_files/buildbot/config/user-config-x86_64.py
+++ b/build_files/buildbot/config/user-config-x86_64.py
@@ -106,6 +106,14 @@ BF_OIIO_INC = '${BF_OIIO}/include'
BF_OIIO_LIB_STATIC = '${BF_OIIO_LIBPATH}/libOpenImageIO.a ${BF_OPENEXR}/lib/libIlmImf.a'
BF_OIIO_LIBPATH = '${BF_OIIO}/lib'
+# Color management
+WITH_BF_OCIO = True
+WITH_BF_STATICOCIO = True
+BF_OCIO = '/opt/ocio'
+BF_OCIO_INC = '${BF_OCIO}/include'
+BF_OCIO_LIB_STATIC = '${BF_OCIO_LIBPATH}/libOpenColorIO.a ${BF_OCIO_LIBPATH}/libtinyxml.a ${BF_OCIO_LIBPATH}/libyaml-cpp.a'
+BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
+
WITH_BF_BOOST = True
WITH_BF_STATICBOOST = True
BF_BOOST = '/opt/boost'
diff --git a/build_files/buildbot/master.cfg b/build_files/buildbot/master.cfg
index 066c133d335..1bd47303b2f 100644
--- a/build_files/buildbot/master.cfg
+++ b/build_files/buildbot/master.cfg
@@ -28,8 +28,8 @@ c['slavePortnum'] = 9989
from buildbot.changes.svnpoller import SVNPoller
c['change_source'] = SVNPoller(
- 'https://svn.blender.org/svnroot/bf-blender/trunk/',
- pollinterval=1200)
+ 'https://svn.blender.org/svnroot/bf-blender/trunk/',
+ pollinterval=1200)
# BUILDERS
#
@@ -137,7 +137,8 @@ c['schedulers'] = []
# builderNames=buildernames,
# periodicBuildTimer=24*60*60))
-c['schedulers'].append(timed.Nightly(name='nightly',
+c['schedulers'].append(timed.Nightly(
+ name='nightly',
builderNames=buildernames,
hour=3,
minute=0))
diff --git a/build_files/buildbot/master_unpack.py b/build_files/buildbot/master_unpack.py
index f67bd294496..ecacf3bff6f 100644
--- a/build_files/buildbot/master_unpack.py
+++ b/build_files/buildbot/master_unpack.py
@@ -112,7 +112,7 @@ branch = get_branch(packagename)
if platform == '':
sys.stderr.write('Failed to detect platform ' +
- 'from package: %r\n' % packagename)
+ 'from package: %r\n' % packagename)
sys.exit(1)
# extract
diff --git a/build_files/buildbot/slave_pack.py b/build_files/buildbot/slave_pack.py
index 73c633d0c29..eafb25ac7b0 100644
--- a/build_files/buildbot/slave_pack.py
+++ b/build_files/buildbot/slave_pack.py
@@ -50,16 +50,19 @@ if builder.find('scons') != -1:
install_dir = os.path.join('..', 'install', builder)
scons_options += ['WITH_BF_NOBLENDER=True', 'WITH_BF_PLAYER=False',
- 'BF_BUILDDIR=' + build_dir,
- 'BF_INSTALLDIR=' + install_dir,
- 'WITHOUT_BF_INSTALL=True']
+ 'BF_BUILDDIR=' + build_dir,
+ 'BF_INSTALLDIR=' + install_dir,
+ 'WITHOUT_BF_INSTALL=True']
config = None
+ bits = None
if builder.endswith('linux_x86_64_scons'):
config = 'user-config-x86_64.py'
+ bits = 64
elif builder.endswith('linux_i386_scons'):
- config = 'user-config-x86_64.py'
+ config = 'user-config-i686.py'
+ bits = 32
if config is not None:
config_fpath = os.path.join(config_dir, config)
@@ -69,7 +72,16 @@ if builder.find('scons') != -1:
blenderplayer = os.path.join(install_dir, 'blenderplayer')
subprocess.call(['strip', '--strip-all', blender, blenderplayer])
+ extra = '/' + os.path.join('home', 'sources', 'release-builder', 'extra')
+ mesalibs = os.path.join(extra, 'mesalibs' + str(bits) + '.tar.bz2')
+ software_gl = os.path.join(extra, 'blender-softwaregl')
+
+ os.system('tar -xpf %s -C %s' % (mesalibs, install_dir))
+ os.system('cp %s %s' % (software_gl, install_dir))
+ os.system('chmod 755 %s' % (os.path.join(install_dir, 'blender-softwaregl')))
+
retcode = subprocess.call(['python', 'scons/scons.py'] + scons_options)
+
sys.exit(retcode)
else:
if builder.find('win') != -1:
diff --git a/build_files/cmake/Modules/FindOpenCOLLADA.cmake b/build_files/cmake/Modules/FindOpenCOLLADA.cmake
index 77c8b09c4ac..169d3a82fc7 100644
--- a/build_files/cmake/Modules/FindOpenCOLLADA.cmake
+++ b/build_files/cmake/Modules/FindOpenCOLLADA.cmake
@@ -81,6 +81,7 @@ FOREACH(COMPONENT ${_opencollada_FIND_INCLUDES})
# Alternative would be to suffix all members of search path
# but this is less trouble, just looks strange.
include/opencollada/${COMPONENT}
+ include/${COMPONENT}/include
HINTS
${_opencollada_SEARCH_DIRS}
)
diff --git a/build_files/cmake/Modules/FindOpenColorIO.cmake b/build_files/cmake/Modules/FindOpenColorIO.cmake
new file mode 100644
index 00000000000..79bc0127674
--- /dev/null
+++ b/build_files/cmake/Modules/FindOpenColorIO.cmake
@@ -0,0 +1,85 @@
+# - Find OpenColorIO library
+# Find the native OpenColorIO includes and library
+# This module defines
+# OPENCOLORIO_INCLUDE_DIRS, where to find OpenColorIO.h, Set when
+# OPENCOLORIO_INCLUDE_DIR is found.
+# OPENCOLORIO_LIBRARIES, libraries to link against to use OpenColorIO.
+# OPENCOLORIO_ROOT_DIR, The base directory to search for OpenColorIO.
+# This can also be an environment variable.
+# OPENCOLORIO_FOUND, If false, do not try to use OpenColorIO.
+#
+# also defined, but not for general use are
+# OPENCOLORIO_LIBRARY, where to find the OpenColorIO library.
+
+#=============================================================================
+# Copyright 2012 Blender Foundation.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+
+# If OPENCOLORIO_ROOT_DIR was defined in the environment, use it.
+IF(NOT OPENCOLORIO_ROOT_DIR AND NOT $ENV{OPENCOLORIO_ROOT_DIR} STREQUAL "")
+ SET(OPENCOLORIO_ROOT_DIR $ENV{OPENCOLORIO_ROOT_DIR})
+ENDIF()
+
+SET(_opencolorio_FIND_COMPONENTS
+ OpenColorIO
+ yaml-cpp
+ tinyxml
+)
+
+SET(_opencolorio_SEARCH_DIRS
+ ${OPENCOLORIO_ROOT_DIR}
+ /usr/local
+ /sw # Fink
+ /opt/local # DarwinPorts
+ /opt/csw # Blastwave
+)
+
+FIND_PATH(OPENCOLORIO_INCLUDE_DIR
+ NAMES
+ OpenColorIO/OpenColorIO.h
+ HINTS
+ ${_opencolorio_SEARCH_DIRS}
+ PATH_SUFFIXES
+ include
+)
+
+SET(_opencolorio_LIBRARIES)
+FOREACH(COMPONENT ${_opencolorio_FIND_COMPONENTS})
+ STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
+
+ FIND_LIBRARY(OPENCOLORIO_${UPPERCOMPONENT}_LIBRARY
+ NAMES
+ ${COMPONENT}
+ HINTS
+ ${_opencolorio_SEARCH_DIRS}
+ PATH_SUFFIXES
+ lib64 lib
+ )
+ if(OPENCOLORIO_${UPPERCOMPONENT}_LIBRARY)
+ LIST(APPEND _opencolorio_LIBRARIES "${OPENCOLORIO_${UPPERCOMPONENT}_LIBRARY}")
+ endif()
+ENDFOREACH()
+
+# handle the QUIETLY and REQUIRED arguments and set OPENCOLORIO_FOUND to TRUE if
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenColorIO DEFAULT_MSG
+ _opencolorio_LIBRARIES OPENCOLORIO_INCLUDE_DIR)
+
+IF(OPENCOLORIO_FOUND)
+ SET(OPENCOLORIO_LIBRARIES ${_opencolorio_LIBRARIES})
+ SET(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO_INCLUDE_DIR})
+ENDIF(OPENCOLORIO_FOUND)
+
+MARK_AS_ADVANCED(
+ OPENCOLORIO_INCLUDE_DIR
+ OPENCOLORIO_LIBRARY
+)
+
diff --git a/build_files/cmake/clang_array_check.py b/build_files/cmake/clang_array_check.py
new file mode 100644
index 00000000000..3070c27f769
--- /dev/null
+++ b/build_files/cmake/clang_array_check.py
@@ -0,0 +1,353 @@
+# ---
+# * Licensed under the Apache License, Version 2.0 (the "License");
+# * you may not use this file except in compliance with the License.
+# * You may obtain a copy of the License at
+# *
+# * http://www.apache.org/licenses/LICENSE-2.0
+# ---
+# by Campbell Barton
+
+"""
+Invocation:
+
+ export CLANG_BIND_DIR="/dsk/src/llvm/tools/clang/bindings/python"
+ export CLANG_LIB_DIR="/opt/llvm/lib"
+
+ python2 clang_array_check.py somefile.c -DSOME_DEFINE -I/some/include
+
+... defines and includes are optional
+
+"""
+
+# delay parsing functions until we need them
+USE_LAZY_INIT = True
+
+# -----------------------------------------------------------------------------
+# predefined function/arg sizes, handy sometimes, but not complete...
+
+defs_precalc = {
+ "glColor3bv": {0: 3},
+ "glColor4bv": {0: 4},
+
+ "glColor3ubv": {0: 3},
+ "glColor4ubv": {0: 4},
+
+ "glColor4usv": {0: 3},
+ "glColor4usv": {0: 4},
+
+ "glColor3fv": {0: 3},
+ "glColor4fv": {0: 4},
+
+ "glColor3dv": {0: 3},
+ "glColor4dv": {0: 4},
+
+ "glVertex2fv": {0: 2},
+ "glVertex3fv": {0: 3},
+ "glVertex4fv": {0: 4},
+
+ "glEvalCoord1fv": {0: 1},
+ "glEvalCoord1dv": {0: 1},
+ "glEvalCoord2fv": {0: 2},
+ "glEvalCoord2dv": {0: 2},
+
+ "glRasterPos2dv": {0: 2},
+ "glRasterPos3dv": {0: 3},
+ "glRasterPos4dv": {0: 4},
+
+ "glRasterPos2fv": {0: 2},
+ "glRasterPos3fv": {0: 3},
+ "glRasterPos4fv": {0: 4},
+
+ "glRasterPos2sv": {0: 2},
+ "glRasterPos3sv": {0: 3},
+ "glRasterPos4sv": {0: 4},
+
+ "glTexCoord2fv": {0: 2},
+ "glTexCoord3fv": {0: 3},
+ "glTexCoord4fv": {0: 4},
+
+ "glTexCoord2dv": {0: 2},
+ "glTexCoord3dv": {0: 3},
+ "glTexCoord4dv": {0: 4},
+
+ "glNormal3fv": {0: 3},
+ "glNormal3dv": {0: 3},
+ "glNormal3bv": {0: 3},
+ "glNormal3iv": {0: 3},
+ "glNormal3sv": {0: 3},
+}
+
+# -----------------------------------------------------------------------------
+
+import sys
+
+if 0:
+ # Examples with LLVM as the root dir: '/dsk/src/llvm'
+
+ # path containing 'clang/__init__.py'
+ CLANG_BIND_DIR = "/dsk/src/llvm/tools/clang/bindings/python"
+
+ # path containing libclang.so
+ CLANG_LIB_DIR = "/opt/llvm/lib"
+else:
+ import os
+ CLANG_BIND_DIR = os.environ.get("CLANG_BIND_DIR")
+ CLANG_LIB_DIR = os.environ.get("CLANG_LIB_DIR")
+
+ if CLANG_BIND_DIR is None:
+ print("$CLANG_BIND_DIR python binding dir not set")
+ if CLANG_LIB_DIR is None:
+ print("$CLANG_LIB_DIR clang lib dir not set")
+
+sys.path.append(CLANG_BIND_DIR)
+
+import clang
+import clang.cindex
+from clang.cindex import (CursorKind,
+ TypeKind,
+ TokenKind)
+
+clang.cindex.Config.set_library_path(CLANG_LIB_DIR)
+
+index = clang.cindex.Index.create()
+
+args = sys.argv[2:]
+# print(args)
+
+tu = index.parse(sys.argv[1], args)
+print('Translation unit: %s' % tu.spelling)
+
+# -----------------------------------------------------------------------------
+
+
+def function_parm_wash_tokens(parm):
+ # print(parm.kind)
+ assert parm.kind in (CursorKind.PARM_DECL,
+ CursorKind.VAR_DECL, # XXX, double check this
+ CursorKind.FIELD_DECL,
+ )
+
+ """
+ Return tolens without trailing commads and 'const'
+ """
+
+ tokens = [t for t in parm.get_tokens()]
+ if not tokens:
+ return tokens
+
+ #if tokens[-1].kind == To
+ # remove trailing char
+ if tokens[-1].kind == TokenKind.PUNCTUATION:
+ if tokens[-1].spelling in (",", ")", ";"):
+ tokens.pop()
+ #else:
+ # print(tokens[-1].spelling)
+
+ t_new = []
+ for t in tokens:
+ t_kind = t.kind
+ t_spelling = t.spelling
+ ok = True
+ if t_kind == TokenKind.KEYWORD:
+ if t_spelling in ("const", "restrict", "volatile"):
+ ok = False
+ elif t_spelling.startswith("__"):
+ ok = False # __restrict
+ elif t_kind in (TokenKind.COMMENT, ):
+ ok = False
+
+ # Use these
+ elif t_kind in (TokenKind.LITERAL,
+ TokenKind.PUNCTUATION,
+ TokenKind.IDENTIFIER):
+ # use but ignore
+ pass
+
+ else:
+ print("Unknown!", t_kind, t_spelling)
+
+ # if its OK we will add
+ if ok:
+ t_new.append(t)
+ return t_new
+
+
+def parm_size(node_child):
+ tokens = function_parm_wash_tokens(node_child)
+
+ # print(" ".join([t.spelling for t in tokens]))
+
+ # NOT PERFECT CODE, EXTRACT SIZE FROM TOKENS
+ if len(tokens) >= 3: # foo [ 1 ]
+ if ((tokens[-3].kind == TokenKind.PUNCTUATION and tokens[-3].spelling == "[") and
+ (tokens[-2].kind == TokenKind.LITERAL and tokens[-2].spelling.isdigit()) and
+ (tokens[-1].kind == TokenKind.PUNCTUATION and tokens[-1].spelling == "]")):
+ # ---
+ return int(tokens[-2].spelling)
+ return -1
+
+
+def function_get_arg_sizes(node):
+ # Return a dict if (index: size) items
+ # {arg_indx: arg_array_size, ... ]
+ arg_sizes = {}
+
+ if 1: # node.spelling == "BM_vert_create", for debugging
+ node_parms = [node_child for node_child in node.get_children()
+ if node_child.kind == CursorKind.PARM_DECL]
+
+ for i, node_child in enumerate(node_parms):
+
+ # print(node_child.kind, node_child.spelling)
+ #print(node_child.type.kind, node_child.spelling) # TypeKind.POINTER
+
+ if node_child.type.kind == TypeKind.POINTER:
+ pointee = node_child.type.get_pointee()
+ if pointee.is_pod():
+ size = parm_size(node_child)
+ if size != -1:
+ arg_sizes[i] = size
+
+ return arg_sizes
+
+
+# -----------------------------------------------------------------------------
+_defs = {}
+
+
+def lookup_function_size_def(func_id):
+ if USE_LAZY_INIT:
+ result = _defs.get(func_id, {})
+ if type(result) != dict:
+ result = _defs[func_id] = function_get_arg_sizes(result)
+ return result
+ else:
+ return _defs.get(func_id, {})
+
+# -----------------------------------------------------------------------------
+
+
+def file_check_arg_sizes(tu):
+
+ # main checking function
+ def validate_arg_size(node):
+ """
+ Loop over args and validate sizes for args we KNOW the size of.
+ """
+ assert node.kind == CursorKind.CALL_EXPR
+
+ if 0:
+ print("---",
+ " <~> ".join(
+ [" ".join([t.spelling for t in C.get_tokens()])
+ for C in node.get_children()]
+ ))
+ # print(node.location)
+
+ # first child is the function call, skip that.
+ children = list(node.get_children())
+
+ if not children:
+ return # XXX, look into this, happens on C++
+
+ func = children[0]
+
+ # get the func declaration!
+ # works but we can better scan for functions ahead of time.
+ if 0:
+ func_dec = func.get_definition()
+ if func_dec:
+ print("FD", " ".join([t.spelling for t in func_dec.get_tokens()]))
+ else:
+ # HRMP'f - why does this fail?
+ print("AA", " ".join([t.spelling for t in node.get_tokens()]))
+ else:
+ args_size_definition = () # dummy
+
+ # get the key
+ tok = list(func.get_tokens())
+ if tok:
+ func_id = tok[0].spelling
+ args_size_definition = lookup_function_size_def(func_id)
+
+ if not args_size_definition:
+ return
+
+ children = children[1:]
+ for i, node_child in enumerate(children):
+ children = list(node_child.get_children())
+
+ # skip if we dont have an index...
+ size_def = args_size_definition.get(i, -1)
+
+ if size_def == -1:
+ continue
+
+ #print([c.kind for c in children])
+ # print(" ".join([t.spelling for t in node_child.get_tokens()]))
+
+ if len(children) == 1:
+ arg = children[0]
+ if arg.kind in (CursorKind.DECL_REF_EXPR,
+ CursorKind.UNEXPOSED_EXPR):
+
+ if arg.type.kind == TypeKind.POINTER:
+ dec = arg.get_definition()
+ if dec:
+ size = parm_size(dec)
+
+ # size == 0 is for 'float *a'
+ if size != -1 and size != 0:
+
+ # nice print!
+ if 0:
+ print("".join([t.spelling for t in func.get_tokens()]),
+ i,
+ " ".join([t.spelling for t in dec.get_tokens()]))
+
+ # testing
+ # size_def = 100
+ if size < size_def and size != 1:
+ location = node.location
+ print("%s:%d:%d: argument %d is size %d, should be %d" %
+ (location.file,
+ location.line,
+ location.column,
+ i + 1, size, size_def
+ ))
+
+ # we dont really care what we are looking at, just scan entire file for
+ # function calls.
+
+ def recursive_func_call_check(node):
+ if node.kind == CursorKind.CALL_EXPR:
+ validate_arg_size(node)
+
+ for c in node.get_children():
+ recursive_func_call_check(c)
+
+ recursive_func_call_check(tu.cursor)
+
+
+# -- first pass, cache function definitions sizes
+
+# PRINT FUNC DEFINES
+def recursive_arg_sizes(node, ):
+ # print(node.kind, node.spelling)
+ if node.kind == CursorKind.FUNCTION_DECL:
+ if USE_LAZY_INIT:
+ args_sizes = node
+ else:
+ args_sizes = function_get_arg_sizes(node)
+ #if args_sizes:
+ # print(node.spelling, args_sizes)
+ _defs[node.spelling] = args_sizes
+ # print("adding", node.spelling)
+ for c in node.get_children():
+ recursive_arg_sizes(c)
+# cache function sizes
+recursive_arg_sizes(tu.cursor)
+_defs.update(defs_precalc)
+
+# --- second pass, check against def's
+file_check_arg_sizes(tu)
diff --git a/build_files/cmake/cmake_netbeans_project.py b/build_files/cmake/cmake_netbeans_project.py
index aa6124ac8fe..8f3835c3401 100755
--- a/build_files/cmake/cmake_netbeans_project.py
+++ b/build_files/cmake/cmake_netbeans_project.py
@@ -24,7 +24,7 @@
"""
Example linux usage
- python .~/blenderSVN/blender/build_files/cmake/cmake_netbeans_project.py ~/blenderSVN/cmake
+ python3 ~/blenderSVN/blender/build_files/cmake/cmake_netbeans_project.py ~/blenderSVN/cmake
Windows not supported so far
"""
diff --git a/build_files/cmake/cmake_qtcreator_project.py b/build_files/cmake/cmake_qtcreator_project.py
index 32d20489e6a..83ea761e2d1 100755
--- a/build_files/cmake/cmake_qtcreator_project.py
+++ b/build_files/cmake/cmake_qtcreator_project.py
@@ -105,7 +105,13 @@ def create_qtc_project_main():
qtc_cfg = os.path.join(PROJECT_DIR, "%s.config" % FILE_NAME)
f = open(qtc_cfg, 'w')
- f.write("// ADD PREDEFINED MACROS HERE!\n")
+ f.write("// ADD PREDEFINED MACROS TO %s_custom.config!\n" % FILE_NAME)
+ qtc_custom_cfg = os.path.join(PROJECT_DIR, "%s_custom.config" % FILE_NAME)
+ if os.path.exists(qtc_custom_cfg):
+ fc = open(qtc_custom_cfg, 'r')
+ f.write(fc.read())
+ fc.close()
+ f.write("\n")
defines_final = [("#define %s %s" % (item[0], quote_define(item[1]))) for item in defines]
if sys.platform != "win32":
defines_final += cmake_compiler_defines()
diff --git a/build_files/cmake/cmake_static_check_clang_array.py b/build_files/cmake/cmake_static_check_clang_array.py
new file mode 100644
index 00000000000..941407170ff
--- /dev/null
+++ b/build_files/cmake/cmake_static_check_clang_array.py
@@ -0,0 +1,77 @@
+#!/usr/bin/env python3.2
+
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Contributor(s): Campbell Barton
+#
+# ***** END GPL LICENSE BLOCK *****
+
+# <pep8 compliant>
+
+import project_source_info
+import subprocess
+import sys
+import os
+
+CHECKER_IGNORE_PREFIX = [
+ "extern",
+ "intern/moto",
+ "blender/intern/opennl",
+ ]
+
+CHECKER_BIN = "python2"
+
+CHECKER_ARGS = [
+ os.path.join(os.path.dirname(__file__), "clang_array_check.py"),
+ # not sure why this is needed, but it is.
+ "-I" + os.path.join(project_source_info.SOURCE_DIR, "extern", "glew", "include"),
+ ]
+
+
+def main():
+ source_info = project_source_info.build_info(ignore_prefix_list=CHECKER_IGNORE_PREFIX)
+
+ check_commands = []
+ for c, inc_dirs, defs in source_info:
+ cmd = ([CHECKER_BIN] +
+ CHECKER_ARGS +
+ [c] +
+ [("-I%s" % i) for i in inc_dirs] +
+ [("-D%s" % d) for d in defs]
+ )
+
+ check_commands.append((c, cmd))
+
+ process_functions = []
+
+ def my_process(i, c, cmd):
+ percent = 100.0 * (i / (len(check_commands) - 1))
+ percent_str = "[" + ("%.2f]" % percent).rjust(7) + " %:"
+
+ sys.stdout.flush()
+ sys.stdout.write("%s " % percent_str)
+
+ return subprocess.Popen(cmd)
+
+ for i, (c, cmd) in enumerate(check_commands):
+ process_functions.append((my_process, (i, c, cmd)))
+
+ project_source_info.queue_processes(process_functions)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/build_files/cmake/cmake_static_check_cppcheck.py b/build_files/cmake/cmake_static_check_cppcheck.py
index c340ca5c458..c458e8ede11 100644
--- a/build_files/cmake/cmake_static_check_cppcheck.py
+++ b/build_files/cmake/cmake_static_check_cppcheck.py
@@ -30,6 +30,7 @@ import os
CHECKER_IGNORE_PREFIX = [
"extern",
"intern/moto",
+ "blender/intern/opennl",
]
CHECKER_BIN = "cppcheck"
@@ -54,7 +55,7 @@ def main():
[c] +
[("-I%s" % i) for i in inc_dirs] +
[("-D%s" % d) for d in defs]
- )
+ )
check_commands.append((c, cmd))
diff --git a/build_files/cmake/cmake_static_check_smatch.py b/build_files/cmake/cmake_static_check_smatch.py
new file mode 100644
index 00000000000..5681d2ae5ed
--- /dev/null
+++ b/build_files/cmake/cmake_static_check_smatch.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python3.2
+
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Contributor(s): Campbell Barton
+#
+# ***** END GPL LICENSE BLOCK *****
+
+# <pep8 compliant>
+
+CHECKER_IGNORE_PREFIX = [
+ "extern",
+ "intern/moto",
+ "blender/intern/opennl",
+ ]
+
+CHECKER_BIN = "smatch"
+CHECKER_ARGS = [
+ "--full-path",
+ "--two-passes",
+ ]
+
+import project_source_info
+import subprocess
+import sys
+
+
+def main():
+ source_info = project_source_info.build_info(use_cxx=False, ignore_prefix_list=CHECKER_IGNORE_PREFIX)
+
+ check_commands = []
+ for c, inc_dirs, defs in source_info:
+
+ cmd = ([CHECKER_BIN] +
+ CHECKER_ARGS +
+ [c] +
+ [("-I%s" % i) for i in inc_dirs] +
+ [("-D%s" % d) for d in defs]
+ )
+
+ check_commands.append((c, cmd))
+
+ def my_process(i, c, cmd):
+ percent = 100.0 * (i / (len(check_commands) - 1))
+ percent_str = "[" + ("%.2f]" % percent).rjust(7) + " %:"
+
+ sys.stdout.flush()
+ sys.stdout.write("%s %s\n" % (percent_str, c))
+
+ return subprocess.Popen(cmd)
+
+ process_functions = []
+ for i, (c, cmd) in enumerate(check_commands):
+ process_functions.append((my_process, (i, c, cmd)))
+
+ project_source_info.queue_processes(process_functions)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/build_files/cmake/cmake_static_check_sparse.py b/build_files/cmake/cmake_static_check_sparse.py
index db1b14e7acb..4f4eb838dd5 100644
--- a/build_files/cmake/cmake_static_check_sparse.py
+++ b/build_files/cmake/cmake_static_check_sparse.py
@@ -25,6 +25,7 @@
CHECKER_IGNORE_PREFIX = [
"extern",
"intern/moto",
+ "blender/intern/opennl",
]
CHECKER_BIN = "sparse"
@@ -47,7 +48,7 @@ def main():
[c] +
[("-I%s" % i) for i in inc_dirs] +
[("-D%s" % d) for d in defs]
- )
+ )
check_commands.append((c, cmd))
diff --git a/build_files/cmake/cmake_static_check_splint.py b/build_files/cmake/cmake_static_check_splint.py
index f538fa612d0..7be28c01af8 100644
--- a/build_files/cmake/cmake_static_check_splint.py
+++ b/build_files/cmake/cmake_static_check_splint.py
@@ -25,6 +25,7 @@
CHECKER_IGNORE_PREFIX = [
"extern",
"intern/moto",
+ "blender/intern/opennl",
]
CHECKER_BIN = "splint"
@@ -79,7 +80,7 @@ def main():
[c] +
[("-I%s" % i) for i in inc_dirs] +
[("-D%s" % d) for d in defs]
- )
+ )
check_commands.append((c, cmd))
diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake
index e2adc17a2e8..de3cfd166b7 100644
--- a/build_files/cmake/config/blender_lite.cmake
+++ b/build_files/cmake/config/blender_lite.cmake
@@ -10,14 +10,16 @@ set(WITH_SYSTEM_GLEW ON CACHE FORCE BOOL)
set(WITH_BUILDINFO OFF CACHE FORCE BOOL)
set(WITH_BULLET OFF CACHE FORCE BOOL)
+set(WITH_CODEC_AVI OFF CACHE FORCE BOOL)
set(WITH_CODEC_FFMPEG OFF CACHE FORCE BOOL)
set(WITH_CODEC_SNDFILE OFF CACHE FORCE BOOL)
set(WITH_CYCLES OFF CACHE FORCE BOOL)
set(WITH_FFTW3 OFF CACHE FORCE BOOL)
set(WITH_LIBMV OFF CACHE FORCE BOOL)
-set(WITH_CARVE OFF CACHE FORCE BOOL)
set(WITH_GAMEENGINE OFF CACHE FORCE BOOL)
+set(WITH_COMPOSITOR OFF CACHE FORCE BOOL)
set(WITH_GHOST_XDND OFF CACHE FORCE BOOL)
+set(WITH_IK_SOLVER OFF CACHE FORCE BOOL)
set(WITH_IK_ITASC OFF CACHE FORCE BOOL)
set(WITH_IMAGE_CINEON OFF CACHE FORCE BOOL)
set(WITH_IMAGE_DDS OFF CACHE FORCE BOOL)
@@ -41,6 +43,7 @@ set(WITH_MOD_OCEANSIM OFF CACHE FORCE BOOL)
set(WITH_AUDASPACE OFF CACHE FORCE BOOL)
set(WITH_OPENAL OFF CACHE FORCE BOOL)
set(WITH_OPENCOLLADA OFF CACHE FORCE BOOL)
+set(WITH_OPENCOLORIO OFF CACHE FORCE BOOL)
set(WITH_OPENMP OFF CACHE FORCE BOOL)
set(WITH_PYTHON_INSTALL OFF CACHE FORCE BOOL)
set(WITH_RAYOPTIMIZATION OFF CACHE FORCE BOOL)
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 3608f41e369..750903b12d7 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -23,6 +23,31 @@
#
# ***** END GPL LICENSE BLOCK *****
+macro(list_insert_after
+ list_id item_check item_add
+ )
+ set(_index)
+ list(FIND "${list_id}" "${item_check}" _index)
+ if("${_index}" MATCHES "-1")
+ message(FATAL_ERROR "'${list_id}' doesn't contain '${item_check}'")
+ endif()
+ math(EXPR _index "${_index} + 1")
+ list(INSERT ${list_id} "${_index}" ${item_add})
+ unset(_index)
+endmacro()
+
+macro(list_insert_before
+ list_id item_check item_add
+ )
+ set(_index)
+ list(FIND "${list_id}" "${item_check}" _index)
+ if("${_index}" MATCHES "-1")
+ message(FATAL_ERROR "'${list_id}' doesn't contain '${item_check}'")
+ endif()
+ list(INSERT ${list_id} "${_index}" ${item_add})
+ unset(_index)
+endmacro()
+
# foo_bar.spam --> foo_barMySuffix.spam
macro(file_suffix
file_name_new file_name file_suffix
@@ -193,6 +218,9 @@ macro(SETUP_LIBDIRS)
if(WITH_OPENIMAGEIO)
link_directories(${OPENIMAGEIO_LIBPATH})
endif()
+ if(WITH_OPENCOLORIO)
+ link_directories(${OPENCOLORIO_LIBPATH})
+ endif()
if(WITH_IMAGE_OPENJPEG AND WITH_SYSTEM_OPENJPEG)
link_directories(${OPENJPEG_LIBPATH})
endif()
@@ -216,6 +244,9 @@ macro(SETUP_LIBDIRS)
link_directories(${PCRE_LIBPATH})
link_directories(${EXPAT_LIBPATH})
endif()
+ if(WITH_LLVM)
+ link_directories(${LLVM_LIB_DIR})
+ endif()
if(WITH_MEM_JEMALLOC)
link_directories(${JEMALLOC_LIBPATH})
endif()
@@ -288,6 +319,9 @@ macro(setup_liblinks
if(WITH_OPENIMAGEIO)
target_link_libraries(${target} ${OPENIMAGEIO_LIBRARIES})
endif()
+ if(WITH_OPENCOLORIO)
+ target_link_libraries(${target} ${OPENCOLORIO_LIBRARIES})
+ endif()
if(WITH_BOOST)
target_link_libraries(${target} ${BOOST_LIBRARIES})
endif()
@@ -348,6 +382,12 @@ macro(setup_liblinks
if(WITH_MOD_CLOTH_ELTOPO)
target_link_libraries(${target} ${LAPACK_LIBRARIES})
endif()
+ if(WITH_CYCLES_OSL)
+ target_link_libraries(${target} ${OSL_LIBRARIES})
+ endif()
+ if(WITH_LLVM)
+ target_link_libraries(${target} ${LLVM_LIBRARY})
+ endif()
if(WIN32 AND NOT UNIX)
target_link_libraries(${target} ${PTHREADS_LIBRARIES})
endif()
@@ -442,6 +482,7 @@ macro(remove_strict_flags)
if(CMAKE_COMPILER_IS_GNUCC)
remove_cc_flag("-Wstrict-prototypes")
+ remove_cc_flag("-Wmissing-prototypes")
remove_cc_flag("-Wunused-parameter")
remove_cc_flag("-Wwrite-strings")
remove_cc_flag("-Wundef")
@@ -619,7 +660,7 @@ macro(blender_project_hack_post)
# --------------
# MINGW HACK END
if (_reset_standard_libraries)
- # Must come after project(...)
+ # Must come after projecINCt(...)
#
# MINGW workaround for -ladvapi32 being included which surprisingly causes
# string formatting of floats, eg: printf("%.*f", 3, value). to crash blender
@@ -700,12 +741,51 @@ macro(set_lib_path
lvar
lproj)
-
- if(MSVC10 AND EXISTS ${LIBDIR}/vc2010/${lproj})
- set(${lvar} ${LIBDIR}/vc2010/${lproj})
+ if(MSVC10)
+ set(${lvar} ${LIBDIR}/${lproj}/vc2010)
else()
set(${lvar} ${LIBDIR}/${lproj})
endif()
+endmacro()
+
+
+macro(data_to_c
+ file_from file_to
+ list_to_add)
+
+ list(APPEND ${list_to_add} ${file_to})
+
+ get_filename_component(_file_to_path ${file_to} PATH)
+
+ add_custom_command(
+ OUTPUT ${file_to}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
+ COMMAND ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/datatoc ${file_from} ${file_to}
+ DEPENDS ${file_from} datatoc)
+ unset(_file_to_path)
+endmacro()
+
+
+# same as above but generates the var name and output automatic.
+macro(data_to_c_simple
+ file_from
+ list_to_add)
+
+ # remove ../'s
+ get_filename_component(_file_from ${CMAKE_CURRENT_SOURCE_DIR}/${file_from} REALPATH)
+ get_filename_component(_file_to ${CMAKE_CURRENT_BINARY_DIR}/${file_from}.c REALPATH)
+
+ list(APPEND ${list_to_add} ${_file_to})
+
+ get_filename_component(_file_to_path ${_file_to} PATH)
+ add_custom_command(
+ OUTPUT ${_file_to}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
+ COMMAND ${CMAKE_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/datatoc ${_file_from} ${_file_to}
+ DEPENDS ${_file_from} datatoc)
+ unset(_file_from)
+ unset(_file_to)
+ unset(_file_to_path)
endmacro()
diff --git a/build_files/cmake/project_source_info.py b/build_files/cmake/project_source_info.py
index ed17ec5bac4..17a9327a358 100644
--- a/build_files/cmake/project_source_info.py
+++ b/build_files/cmake/project_source_info.py
@@ -85,7 +85,7 @@ def makefile_log():
print("running make with --dry-run ...")
process = subprocess.Popen(["make", "--always-make", "--dry-run", "--keep-going", "VERBOSE=1"],
stdout=subprocess.PIPE,
- )
+ )
while process.poll():
time.sleep(1)
diff --git a/build_files/package_spec/rpm/blender.spec.in b/build_files/package_spec/rpm/blender.spec.in
index 85a689031a3..a95fce80103 100644
--- a/build_files/package_spec/rpm/blender.spec.in
+++ b/build_files/package_spec/rpm/blender.spec.in
@@ -76,6 +76,7 @@ fi || :
%defattr(-,root,root,-)
%{_bindir}/%{name}
%{_datadir}/%{name}/%{blender_api}/datafiles/fonts
+%{_datadir}/%{name}/%{blender_api}/datafiles/colormanagement
%{_datadir}/%{name}/%{blender_api}/scripts
%{_datadir}/icons/hicolor/*/apps/%{name}.*
%{_datadir}/applications/%{name}.desktop
diff --git a/build_files/scons/config/darwin-config.py b/build_files/scons/config/darwin-config.py
index e5bce90e50d..afab4131de8 100644
--- a/build_files/scons/config/darwin-config.py
+++ b/build_files/scons/config/darwin-config.py
@@ -32,6 +32,8 @@ elif cmd_res[:2]=='10':
MAC_CUR_VER='10.6'
elif cmd_res[:2]=='11':
MAC_CUR_VER='10.7'
+elif cmd_res[:2]=='12':
+ MAC_CUR_VER='10.8'
cmd = 'xcodebuild -version'
cmd_xcode=commands.getoutput(cmd)
XCODE_CUR_VER=cmd_xcode[6:][:3] # truncate output to major.minor version
@@ -75,7 +77,7 @@ else :
LCGDIR = '#../lib/darwin-9.x.universal'
CC = 'gcc-4.2'
CXX = 'g++-4.2'
- else:
+ elif 'Mac OS X 10.6' in MACOSX_SDK_CHECK:
# OSX 10.6/7 with Xcode 4.x
MAC_MIN_VERS = '10.6'
MACOSX_DEPLOYMENT_TARGET = '10.6'
@@ -83,6 +85,14 @@ else :
LCGDIR = '#../lib/darwin-9.x.universal'
CC = 'gcc-4.2'
CXX = 'g++-4.2'
+ else:
+ # OSX 10.8 with Xcode 4.4 and higher (no 10.6sdk! )
+ MAC_MIN_VERS = '10.6'
+ MACOSX_DEPLOYMENT_TARGET = '10.6'
+ MACOSX_SDK='/Developer/SDKs/MacOSX10.7.sdk'
+ LCGDIR = '#../lib/darwin-9.x.universal'
+ CC = 'gcc'
+ CXX = 'g++'
LIBDIR = '${LCGDIR}'
@@ -277,6 +287,12 @@ BF_OIIO_INC = BF_OIIO + '/include'
BF_OIIO_LIB = 'OpenImageIO'
BF_OIIO_LIBPATH = BF_OIIO + '/lib'
+WITH_BF_OCIO = True
+BF_OCIO = LIBDIR + '/opencolorio'
+BF_OCIO_INC = BF_OCIO + '/include'
+BF_OCIO_LIB = 'OpenColorIO tinyxml yaml-cpp'
+BF_OCIO_LIBPATH = BF_OCIO + '/lib'
+
WITH_BF_BOOST = True
BF_BOOST = LIBDIR + '/boost'
BF_BOOST_INC = BF_BOOST + '/include'
@@ -333,8 +349,8 @@ if not WITH_OSX_STATICPYTHON:
#note to build succesfully on 10.3.9 SDK you need to patch 10.3.9 by adding the SystemStubs.a lib from 10.4
-#for 10.7.sdk, SystemStubs needs to be excluded (lib doesn't exist anymore)
-if MACOSX_DEPLOYMENT_TARGET == '10.7':
+#for > 10.7.sdk, SystemStubs needs to be excluded (lib doesn't exist anymore)
+if MACOSX_SDK.endswith("10.7.sdk") or MACOSX_SDK.endswith("10.8.sdk"):
LLIBS = ['stdc++']
else:
LLIBS = ['stdc++', 'SystemStubs']
diff --git a/build_files/scons/config/linux-config.py b/build_files/scons/config/linux-config.py
index cd97ffe8b56..45f6602e4dd 100644
--- a/build_files/scons/config/linux-config.py
+++ b/build_files/scons/config/linux-config.py
@@ -105,6 +105,11 @@ BF_BULLET = '#extern/bullet2/src'
BF_BULLET_INC = '${BF_BULLET}'
BF_BULLET_LIB = 'extern_bullet'
+WITH_BF_ELTOPO = False
+BF_LAPACK = '/usr'
+BF_LAPACK_LIB = 'lapack3gf blas clapack'
+BF_LAPACK_LIBPATH = '${BF_LAPACK}/lib'
+
BF_FREETYPE = '/usr'
BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
BF_FREETYPE_LIB = 'freetype'
@@ -210,6 +215,16 @@ BF_OIIO_INC = BF_OIIO + '/include'
BF_OIIO_LIB = 'OpenImageIO'
BF_OIIO_LIBPATH = BF_OIIO + '/lib'
+WITH_BF_OCIO = True
+WITH_BF_STATICOCIO = False
+BF_OCIO = LIBDIR + '/ocio'
+if not os.path.exists(LCGDIR + '/ocio'):
+ WITH_BF_OCIO = False
+ BF_OCIO = '/usr'
+BF_OCIO_INC = BF_OCIO + '/include'
+BF_OCIO_LIB = 'OpenColorIO yaml-cpp tinyxml'
+BF_OCIO_LIBPATH = BF_OCIO + '/lib'
+
WITH_BF_BOOST = True
WITH_BF_STATICBOOST = False
BF_BOOST = LIBDIR + '/boost'
@@ -224,7 +239,7 @@ WITH_BF_CYCLES = WITH_BF_OIIO and WITH_BF_BOOST
WITH_BF_CYCLES_CUDA_BINARIES = False
BF_CYCLES_CUDA_NVCC = '/usr/local/cuda/bin/nvcc'
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_13', 'sm_20', 'sm_21']
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_13', 'sm_20', 'sm_21', 'sm_30']
WITH_BF_OPENMP = True
diff --git a/build_files/scons/config/win32-mingw-config.py b/build_files/scons/config/win32-mingw-config.py
index 723651971d0..0a72d87bb2a 100644
--- a/build_files/scons/config/win32-mingw-config.py
+++ b/build_files/scons/config/win32-mingw-config.py
@@ -159,10 +159,16 @@ BF_OIIO_INC = BF_OIIO + '/include'
BF_OIIO_LIB = 'OpenImageIO'
BF_OIIO_LIBPATH = BF_OIIO + '/lib'
+WITH_BF_OCIO = True
+BF_OCIO = LIBDIR + '/opencolorio'
+BF_OCIO_INC = BF_OCIO + '/include'
+BF_OCIO_LIB = 'OpenColorIO'
+BF_OCIO_LIBPATH = BF_OCIO + '/lib'
+
WITH_BF_BOOST = True
BF_BOOST = LIBDIR + '/boost'
BF_BOOST_INC = BF_BOOST + '/include'
-BF_BOOST_LIB = 'boost_date_time-mgw46-mt-s-1_47 boost_filesystem-mgw46-mt-s-1_47 boost_regex-mgw46-mt-s-1_47 boost_system-mgw46-mt-s-1_47 boost_thread-mgw46-mt-s-1_47'
+BF_BOOST_LIB = 'boost_date_time-mgw46-mt-s-1_49 boost_filesystem-mgw46-mt-s-1_49 boost_regex-mgw46-mt-s-1_49 boost_system-mgw46-mt-s-1_49 boost_thread-mgw46-mt-s-1_49'
BF_BOOST_LIBPATH = BF_BOOST + '/lib'
#Ray trace optimization
@@ -172,7 +178,7 @@ BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse']
#CUDA
WITH_BF_CYCLES_CUDA_BINARIES = False
#BF_CYCLES_CUDA_NVCC = "" # Path to the nvidia compiler
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_20', 'sm_21'] # don't build sm_13 until the compile can fit in 32bit process again :)
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_13', 'sm_20', 'sm_21', 'sm_30']
##
CC = 'gcc'
@@ -195,7 +201,7 @@ LLIBS = ['-lshell32', '-lshfolder', '-lgdi32', '-lmsvcrt', '-lwinmm', '-lmingw32
PLATFORM_LINKFLAGS = ['-Xlinker', '--stack=2097152']
## DISABLED, causes linking errors!
-## for re-distrobution, so users dont need mingw installed
+## for re-distribution, so users dont need mingw installed
# PLATFORM_LINKFLAGS += ["-static-libgcc", "-static-libstdc++"]
BF_DEBUG = False
diff --git a/build_files/scons/config/win32-vc-config.py b/build_files/scons/config/win32-vc-config.py
index 609ee867eec..b77ff8e70e0 100644
--- a/build_files/scons/config/win32-vc-config.py
+++ b/build_files/scons/config/win32-vc-config.py
@@ -101,6 +101,11 @@ BF_BULLET = '#extern/bullet2/src'
BF_BULLET_INC = '${BF_BULLET}'
BF_BULLET_LIB = 'extern_bullet'
+WITH_BF_ELTOPO = False
+BF_LAPACK = LIBDIR + '/lapack'
+BF_LAPACK_LIB = 'libf2c clapack_nowrap BLAS_nowrap'
+BF_LAPACK_LIBPATH = '${BF_LAPACK}/lib'
+
BF_WINTAB = LIBDIR + '/wintab'
BF_WINTAB_INC = '${BF_WINTAB}/INCLUDE'
@@ -156,6 +161,12 @@ BF_OIIO_INC = '${BF_OIIO}/include'
BF_OIIO_LIB = 'OpenImageIO'
BF_OIIO_LIBPATH = '${BF_OIIO}/lib'
+WITH_BF_OCIO = True
+BF_OCIO = '${LIBDIR}/opencolorio'
+BF_OCIO_INC = '${BF_OCIO}/include'
+BF_OCIO_LIB = 'OpenColorIO'
+BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
+
WITH_BF_BOOST = True
BF_BOOST = '${LIBDIR}/boost'
BF_BOOST_INC = '${BF_BOOST}/include'
diff --git a/build_files/scons/config/win64-mingw-config.py b/build_files/scons/config/win64-mingw-config.py
index 2649c5505d5..838822bbbcb 100644
--- a/build_files/scons/config/win64-mingw-config.py
+++ b/build_files/scons/config/win64-mingw-config.py
@@ -151,7 +151,7 @@ BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib'
WITH_BF_CYCLES = True
WITH_BF_CYCLES_CUDA_BINARIES = False
BF_CYCLES_CUDA_NVCC = "" # Path to the NVIDIA CUDA compiler
-BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_13', 'sm_20', 'sm_21']
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_13', 'sm_20', 'sm_21', 'sm_30']
WITH_BF_OIIO = True
BF_OIIO = LIBDIR + '/openimageio'
@@ -159,6 +159,12 @@ BF_OIIO_INC = '${BF_OIIO}/include'
BF_OIIO_LIB = 'OpenImageIO'
BF_OIIO_LIBPATH = '${BF_OIIO}/lib'
+WITH_BF_OCIO = True
+BF_OCIO = LIBDIR + '/opencolorio'
+BF_OCIO_INC = '${BF_OCIO}/include'
+BF_OCIO_LIB = 'OpenColorIO'
+BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
+
WITH_BF_BOOST = True
BF_BOOST = LIBDIR + '/boost'
BF_BOOST_INC = BF_BOOST + '/include'
@@ -169,7 +175,7 @@ BF_BOOST_LIBPATH = BF_BOOST + '/lib'
WITH_BF_RAYOPTIMIZATION = True
BF_RAYOPTIMIZATION_SSE_FLAGS = ['-mmmx', '-msse', '-msse2']
-#Produces errors while rendering with subsurf/multires,
+#May produce errors with unsupported MinGW-w64 builds
WITH_BF_OPENMP = False
##
@@ -193,7 +199,7 @@ LLIBS = ['-lshell32', '-lshfolder', '-lgdi32', '-lmsvcrt', '-lwinmm', '-lmingw32
PLATFORM_LINKFLAGS = ['-Xlinker', '--stack=2097152']
## DISABLED, causes linking errors!
-## for re-distrobution, so users dont need mingw installed
+## for re-distribution, so users dont need mingw installed
# PLATFORM_LINKFLAGS += ["-static-libgcc", "-static-libstdc++"]
BF_DEBUG = False
diff --git a/build_files/scons/config/win64-vc-config.py b/build_files/scons/config/win64-vc-config.py
index 681e058f5be..4b719469c39 100644
--- a/build_files/scons/config/win64-vc-config.py
+++ b/build_files/scons/config/win64-vc-config.py
@@ -97,6 +97,11 @@ BF_BULLET = '#extern/bullet2/src'
BF_BULLET_INC = '${BF_BULLET}'
BF_BULLET_LIB = 'extern_bullet'
+WITH_BF_ELTOPO = False
+BF_LAPACK = LIBDIR + '/lapack'
+BF_LAPACK_LIB = 'libf2c clapack_nowrap BLAS_nowrap'
+BF_LAPACK_LIBPATH = '${BF_LAPACK}/lib'
+
BF_WINTAB = LIBDIR + '/wintab'
BF_WINTAB_INC = '${BF_WINTAB}/INCLUDE'
@@ -153,6 +158,13 @@ BF_OIIO_LIB = 'OpenImageIO'
BF_OIIO_LIBPATH = '${BF_OIIO}/lib'
BF_OIIO_LIBPATH = '${BF_OIIO}/lib'
+WITH_BF_OCIO = True
+BF_OCIO = '${LIBDIR}/opencolorio'
+BF_OCIO_INC = '${BF_OCIO}/include'
+BF_OCIO_LIB = 'OpenColorIO'
+BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
+BF_OCIO_LIBPATH = '${BF_OCIO}/lib'
+
WITH_BF_BOOST = True
BF_BOOST = '${LIBDIR}/boost'
BF_BOOST_INC = '${BF_BOOST}/include'
diff --git a/build_files/scons/tools/Blender.py b/build_files/scons/tools/Blender.py
index 0c5d37f77fe..1e114a43ae0 100644
--- a/build_files/scons/tools/Blender.py
+++ b/build_files/scons/tools/Blender.py
@@ -159,6 +159,10 @@ def setup_staticlibs(lenv):
libincs += Split(lenv['BF_FFTW3_LIBPATH'])
if lenv['WITH_BF_STATICFFTW3']:
statlibs += Split(lenv['BF_FFTW3_LIB_STATIC'])
+ if lenv['WITH_BF_ELTOPO']:
+ libincs += Split(lenv['BF_LAPACK_LIBPATH'])
+ if lenv['WITH_BF_STATICLAPACK']:
+ statlibs += Split(lenv['BF_LAPACK_LIB_STATIC'])
if lenv['WITH_BF_FFMPEG'] and lenv['WITH_BF_STATICFFMPEG']:
statlibs += Split(lenv['BF_FFMPEG_LIB_STATIC'])
if lenv['WITH_BF_INTERNATIONAL']:
@@ -200,6 +204,11 @@ def setup_staticlibs(lenv):
if lenv['WITH_BF_STATICOIIO']:
statlibs += Split(lenv['BF_OIIO_LIB_STATIC'])
+ if lenv['WITH_BF_OCIO']:
+ libincs += Split(lenv['BF_OCIO_LIBPATH'])
+ if lenv['WITH_BF_STATICOCIO']:
+ statlibs += Split(lenv['BF_OCIO_LIB_STATIC'])
+
if lenv['WITH_BF_BOOST']:
libincs += Split(lenv['BF_BOOST_LIBPATH'])
if lenv['WITH_BF_STATICBOOST']:
@@ -248,6 +257,10 @@ def setup_syslibs(lenv):
if not lenv['WITH_BF_STATICOIIO']:
syslibs += Split(lenv['BF_OIIO_LIB'])
+ if lenv['WITH_BF_OCIO']:
+ if not lenv['WITH_BF_STATICOCIO']:
+ syslibs += Split(lenv['BF_OCIO_LIB'])
+
if lenv['WITH_BF_OPENEXR'] and not lenv['WITH_BF_STATICOPENEXR']:
syslibs += Split(lenv['BF_OPENEXR_LIB'])
if lenv['WITH_BF_TIFF'] and not lenv['WITH_BF_STATICTIFF']:
@@ -264,6 +277,8 @@ def setup_syslibs(lenv):
syslibs += Split(lenv['BF_SNDFILE_LIB'])
if lenv['WITH_BF_FFTW3'] and not lenv['WITH_BF_STATICFFTW3']:
syslibs += Split(lenv['BF_FFTW3_LIB'])
+ if lenv['WITH_BF_ELTOPO']:
+ syslibs += Split(lenv['BF_LAPACK_LIB'])
if lenv['WITH_BF_SDL']:
syslibs += Split(lenv['BF_SDL_LIB'])
if not lenv['WITH_BF_STATICOPENGL']:
@@ -578,6 +593,9 @@ def AppIt(target=None, source=None, env=None):
commands.getoutput(cmd)
cmd = 'cp -R %s/release/datafiles/fonts %s/%s.app/Contents/MacOS/%s/datafiles/'%(bldroot,installdir,binary,VERSION)
commands.getoutput(cmd)
+ if env['WITH_BF_OCIO']:
+ cmd = 'cp -R %s/release/datafiles/colormanagement %s/%s.app/Contents/MacOS/%s/datafiles/'%(bldroot,installdir,binary,VERSION)
+ commands.getoutput(cmd)
cmd = 'cp -R %s/release/scripts %s/%s.app/Contents/MacOS/%s/'%(bldroot,installdir,binary,VERSION)
commands.getoutput(cmd)
@@ -693,11 +711,23 @@ def UnixPyBundle(target=None, source=None, env=None):
run("rm -r '%s/turtle.py'" % py_target)
run("rm -f '%s/lib-dynload/_tkinter.so'" % py_target)
+ if env['WITH_BF_PYTHON_INSTALL_NUMPY']:
+ numpy_src = py_src + "/site-packages/numpy"
+ numpy_target = py_target + "/site-packages/numpy"
+
+ if os.path.exists(numpy_src):
+ print 'Install numpy from:'
+ print '\t"%s" into...' % numpy_src
+ print '\t"%s"\n' % numpy_target
+
+ run("cp -R '%s' '%s'" % (numpy_src, os.path.dirname(numpy_target)))
+ else:
+ print 'Failed to find numpy at %s, skipping copying' % numpy_src
+
run("find '%s' -type d -name 'test' -prune -exec rm -rf {} ';'" % py_target)
run("find '%s' -type d -name '__pycache__' -exec rm -rf {} ';'" % py_target)
run("find '%s' -name '*.py[co]' -exec rm -rf {} ';'" % py_target)
run("find '%s' -name '*.so' -exec strip -s {} ';'" % py_target)
-
#### END ACTION STUFF #########
@@ -827,6 +857,8 @@ class BlenderEnvironment(SConsEnvironment):
print bc.HEADER+'Configuring program '+bc.ENDC+bc.OKGREEN+progname+bc.ENDC
lenv = self.Clone()
lenv.Append(LINKFLAGS = lenv['PLATFORM_LINKFLAGS'])
+ if lenv['OURPLATFORM'] in ('win32-mingw', 'win64-mingw', 'linuxcross', 'cygwin', 'linux'):
+ lenv.Replace(LINK = '$CXX')
if lenv['OURPLATFORM'] in ('win32-vc', 'cygwin', 'win64-vc'):
if lenv['BF_DEBUG']:
lenv.Prepend(LINKFLAGS = ['/DEBUG','/PDB:'+progname+'.pdb','/NODEFAULTLIB:libcmt'])
diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py
index af484ed382e..6d7a25acc11 100644
--- a/build_files/scons/tools/btools.py
+++ b/build_files/scons/tools/btools.py
@@ -108,7 +108,7 @@ def validate_arguments(args, bc):
'WITH_BF_STATICFFMPEG', 'BF_FFMPEG_LIB_STATIC',
'WITH_BF_OGG', 'BF_OGG', 'BF_OGG_LIB',
'WITH_BF_FRAMESERVER',
- 'WITH_BF_COMPOSITOR',
+ 'WITH_BF_COMPOSITOR', 'WITH_BF_COMPOSITOR_LEGACY',
'WITH_BF_JPEG', 'BF_JPEG', 'BF_JPEG_INC', 'BF_JPEG_LIB', 'BF_JPEG_LIBPATH',
'WITH_BF_OPENJPEG', 'BF_OPENJPEG', 'BF_OPENJPEG_INC', 'BF_OPENJPEG_LIB', 'BF_OPENJPEG_LIBPATH',
'WITH_BF_REDCODE', 'BF_REDCODE', 'BF_REDCODE_INC', 'BF_REDCODE_LIB', 'BF_REDCODE_LIBPATH',
@@ -120,7 +120,7 @@ def validate_arguments(args, bc):
'WITH_BF_ICONV', 'BF_ICONV', 'BF_ICONV_INC', 'BF_ICONV_LIB', 'BF_ICONV_LIBPATH',
'WITH_BF_GAMEENGINE',
'WITH_BF_BULLET', 'BF_BULLET', 'BF_BULLET_INC', 'BF_BULLET_LIB',
- 'WITH_BF_ELTOPO',
+ 'WITH_BF_ELTOPO', 'BF_LAPACK', 'BF_LAPACK_LIB', 'BF_LAPACK_LIBPATH', 'BF_LAPACK_LIB_STATIC',
'BF_WINTAB', 'BF_WINTAB_INC',
'BF_FREETYPE', 'BF_FREETYPE_INC', 'BF_FREETYPE_LIB', 'BF_FREETYPE_LIBPATH', 'BF_FREETYPE_LIB_STATIC', 'WITH_BF_FREETYPE_STATIC',
'WITH_BF_QUICKTIME', 'BF_QUICKTIME', 'BF_QUICKTIME_INC', 'BF_QUICKTIME_LIB', 'BF_QUICKTIME_LIBPATH',
@@ -135,7 +135,7 @@ def validate_arguments(args, bc):
'BF_CXX', 'WITH_BF_STATICCXX', 'BF_CXX_LIB_STATIC',
'BF_TWEAK_MODE', 'BF_SPLIT_SRC',
'WITHOUT_BF_INSTALL',
- 'WITHOUT_BF_PYTHON_INSTALL', 'WITHOUT_BF_PYTHON_UNPACK',
+ 'WITHOUT_BF_PYTHON_INSTALL', 'WITHOUT_BF_PYTHON_UNPACK', 'WITH_BF_PYTHON_INSTALL_NUMPY'
'WITHOUT_BF_OVERWRITE_INSTALL',
'WITH_BF_OPENMP', 'BF_OPENMP', 'BF_OPENMP_LIBPATH',
'WITH_GHOST_COCOA',
@@ -163,8 +163,9 @@ def validate_arguments(args, bc):
'WITH_BF_3DMOUSE', 'WITH_BF_STATIC3DMOUSE', 'BF_3DMOUSE', 'BF_3DMOUSE_INC', 'BF_3DMOUSE_LIB', 'BF_3DMOUSE_LIBPATH', 'BF_3DMOUSE_LIB_STATIC',
'WITH_BF_CYCLES', 'WITH_BF_CYCLES_CUDA_BINARIES', 'BF_CYCLES_CUDA_NVCC', 'BF_CYCLES_CUDA_NVCC', 'WITH_BF_CYCLES_CUDA_THREADED_COMPILE',
'WITH_BF_OIIO', 'WITH_BF_STATICOIIO', 'BF_OIIO', 'BF_OIIO_INC', 'BF_OIIO_LIB', 'BF_OIIO_LIB_STATIC', 'BF_OIIO_LIBPATH',
+ 'WITH_BF_OCIO', 'WITH_BF_STATICOCIO', 'BF_OCIO', 'BF_OCIO_INC', 'BF_OCIO_LIB', 'BF_OCIO_LIB_STATIC', 'BF_OCIO_LIBPATH',
'WITH_BF_BOOST', 'WITH_BF_STATICBOOST', 'BF_BOOST', 'BF_BOOST_INC', 'BF_BOOST_LIB', 'BF_BOOST_LIB_STATIC', 'BF_BOOST_LIBPATH',
- 'WITH_BF_LIBMV', 'WITH_BF_CARVE'
+ 'WITH_BF_LIBMV'
]
# Have options here that scons expects to be lists
@@ -393,7 +394,13 @@ def read_opts(env, cfg, args):
(BoolVariable('WITH_BF_GAMEENGINE', 'Build with gameengine' , False)),
(BoolVariable('WITH_BF_BULLET', 'Use Bullet if true', True)),
+
(BoolVariable('WITH_BF_ELTOPO', 'Use Eltopo collision library if true', False)),
+ ('BF_LAPACK', 'LAPACK base path', ''),
+ ('BF_LAPACK_LIB', 'LAPACK library', ''),
+ ('BF_LAPACK_LIB_STATIC', 'LAPACK library', ''),
+ ('BF_LAPACK_LIBPATH', 'LAPACK library path', ''),
+ (BoolVariable('WITH_BF_STATICLAPACK', 'Staticly link to LAPACK', False)),
('BF_BULLET', 'Bullet base dir', ''),
('BF_BULLET_INC', 'Bullet include path', ''),
@@ -520,6 +527,7 @@ def read_opts(env, cfg, args):
(BoolVariable('BF_SPLIT_SRC', 'Split src lib into several chunks if true', False)),
(BoolVariable('WITHOUT_BF_INSTALL', 'dont install if true', False)),
(BoolVariable('WITHOUT_BF_PYTHON_INSTALL', 'dont install Python modules if true', False)),
+ (BoolVariable('WITH_BF_PYTHON_INSTALL_NUMPY', 'install Python mumpy module', False)),
(BoolVariable('WITHOUT_BF_PYTHON_UNPACK', 'dont remove and unpack Python modules everytime if true', False)),
(BoolVariable('WITHOUT_BF_OVERWRITE_INSTALL', 'dont remove existing files before breating the new install directory (set to False when making packages for others)', False)),
(BoolVariable('BF_FANCY', 'Enable fancy output if true', True)),
@@ -529,7 +537,6 @@ def read_opts(env, cfg, args):
(BoolVariable('WITH_BF_LZO', 'Enable fast LZO pointcache compression', True)),
(BoolVariable('WITH_BF_LZMA', 'Enable best LZMA pointcache compression', True)),
- (BoolVariable('WITH_BF_CARVE', 'Enable carve library for mesh boolean operations', True)),
(BoolVariable('WITH_BF_LIBMV', 'Enable libmv structure from motion library', True)),
@@ -569,6 +576,14 @@ def read_opts(env, cfg, args):
('BF_OIIO_LIBPATH', 'OIIO library path', ''),
('BF_OIIO_LIB_STATIC', 'OIIO static library', ''),
+ (BoolVariable('WITH_BF_OCIO', 'Build with OpenColorIO', False)),
+ (BoolVariable('WITH_BF_STATICOCIO', 'Staticly link to OpenColorIO', False)),
+ ('BF_OCIO', 'OCIO root path', ''),
+ ('BF_OCIO_INC', 'OCIO include path', ''),
+ ('BF_OCIO_LIB', 'OCIO library', ''),
+ ('BF_OCIO_LIBPATH', 'OCIO library path', ''),
+ ('BF_OCIO_LIB_STATIC', 'OCIO static library', ''),
+
(BoolVariable('WITH_BF_BOOST', 'Build with Boost', False)),
(BoolVariable('WITH_BF_STATICBOOST', 'Staticly link to boost', False)),
('BF_BOOST', 'Boost root path', ''),
@@ -577,7 +592,8 @@ def read_opts(env, cfg, args):
('BF_BOOST_LIBPATH', 'Boost library path', ''),
('BF_BOOST_LIB_STATIC', 'Boost static library', ''),
- (BoolVariable('WITH_GHOST_XDND', 'Build with drag-n-drop support on Linux platforms using XDND protocol', True))
+ (BoolVariable('WITH_GHOST_XDND', 'Build with drag-n-drop support on Linux platforms using XDND protocol', True)),
+ (BoolVariable('WITH_BF_COMPOSITOR_LEGACY', 'Enable the legacy compositor', False))
) # end of opts.AddOptions()
return localopts
diff --git a/doc/guides/interface_API.txt b/doc/guides/interface_API.txt
index 5f601dd3ebc..5f0fbc85ff8 100644
--- a/doc/guides/interface_API.txt
+++ b/doc/guides/interface_API.txt
@@ -50,7 +50,7 @@ Contents
- It works with only OpenGL calls, for the full 100%. This means that it has some quirks
built-in to work with all OS's and OpenGL versions. Especially frontbuffer drawing is
a continuous point of attention. Buttons can be drawn with any window matrix. However,
- errors can still occor when buttons are created in windows with non-standard glViewports.
+ errors can still occur when buttons are created in windows with non-standard glViewports.
- The code was written to replace the old 1.8 button system, but under high pressure. Quite
some button methods from the old system were copied for that reason.
@@ -95,7 +95,7 @@ blender/source/blender/src/toolbox.c (extra GUI elements built on top of this AP
All GUI elements are collected in uiBlocks, which in turn are linked together in a list that's
part of a Blender Area-window.
- uiBlock *block= uiNewBlock(&curarea->uiblocks, "stuff", UI_EMBOSSX, UI_HELV, curarea->win);
+ uiBlock *block = uiNewBlock(&curarea->uiblocks, "stuff", UI_EMBOSSX, UI_HELV, curarea->win);
The next code example makes a new block, and puts it in the list of blocks of the current active
Area:
@@ -221,7 +221,7 @@ void uiBlockSetButmFunc(uiBlock *block, void (*menufunc)(void *arg, int event),
void uiAutoBlock(uiBlock *block, float minx, float miny, float sizex, float sizey, UI_BLOCK_ROWS)
Sets the buttons in this block to automatically align, and fit within boundaries.
- Internally it allows multiple collums or rows as well. Only 'row order' has been implemented.
+ Internally it allows multiple colums or rows as well. Only 'row order' has been implemented.
The uiDefBut definitions don't need coordinates as input here, but instead:
- first value (x1) to indicate row number
- width and height values (if filled in) will be used to define a relative width/height.
@@ -346,7 +346,7 @@ type:
without returnvalues, the first item gets value 0 (incl. title!)
Example: "Do something %t| turn left %2| turn right %1| nothing %0"
-11. COL
+11. COLOR
A special button that only visualizes a RGB value
In 'retval' you can put a code, which is used to identify for sliders if it needs
redraws while using the sliders. Check button '5'.
@@ -363,7 +363,7 @@ uiBut *uiDefIconBut(uiBlock *block, int type, int retval, int icon,
float min, float max, float a1, float a2, char *tip)
Same syntax and types available as previous uiDefBut, but now with an icon code
- instead of a name. THe icons are numbered in resources.c
+ instead of a name. The icons are numbered in resources.c
uiBut *uiDefIconTextButF(uiBlock *block, int type, int retval, int icon, char *str,
short x1, short y1, short x2, short y2, float *poin,
@@ -397,9 +397,9 @@ void uiDefBlockBut(uiBlock *block, uiBlockFuncFP func, void *arg, char *str,
static uiBlock *info_file_importmenu(void *arg_unused)
{
uiBlock *block;
- short yco= 0, xco = 20;
+ short yco = 0, xco = 20;
- block= uiNewBlock(&curarea->uiblocks, "importmenu", UI_EMBOSSW, UI_HELV, G.curscreen->mainwin);
+ block = uiNewBlock(&curarea->uiblocks, "importmenu", UI_EMBOSSW, UI_HELV, G.curscreen->mainwin);
uiBlockSetXOfs(block, -40); // offset to parent button
/* flags are defines */
@@ -409,7 +409,7 @@ void uiDefBlockBut(uiBlock *block, uiBlockFuncFP func, void *arg, char *str,
uiDefButS(block, TOG|BIT|2, 0, "Two Sided", xco, yco-=20, 75, 19, &U.vrmlflag, 0.0, 0.0, 0, 0, "");
uiBlockSetDirection(block, UI_RIGHT);
- uiTextBoundsBlock(block, 50); // checks for fontsize
+ uiTextBoundsBlock(block, 50); /* checks for fontsize */
return block;
}
diff --git a/doc/manpage/blender.1 b/doc/manpage/blender.1
index 6257a78171b..e7164fcb96b 100644
--- a/doc/manpage/blender.1
+++ b/doc/manpage/blender.1
@@ -1,13 +1,4 @@
-.TH "BLENDER" "1" "April 26, 2012" "Blender Blender 2\&.63 (sub 0)
- build date: 2012-04-26
- build time: 19:38:31
- build revision: 45987
- build platform: Linux
- build type: Debug
- build c flags: -fopenmp -msse2 -msse -pipe -fPIC -funsigned-char -fno-strict-aliasing -Wall -Wcast-align -Werror=declaration-after-statement -Werror=implicit-function-declaration -Werror=return-type -Wstrict-prototypes -Wno-char-subscripts -Wno-unknown-pragmas -Wpointer-arith -Wunused-parameter -Wwrite-strings
- build c++ flags: -D__STDC_CONSTANT_MACROS -fopenmp -msse2 -msse -pipe -fPIC -funsigned-char -fno-strict-aliasing -Wall -Wno-invalid-offsetof -Wno-sign-compare
- build link flags: -pthread
- build system: CMake"
+.TH "BLENDER" "1" "October 04, 2012" "Blender Blender 2\&.64 (sub 0)"
.SH NAME
blender \- a 3D modelling and rendering package
@@ -24,7 +15,7 @@ Use Blender to create TV commercials, to make technical visualizations, business
http://www.blender.org
.SH OPTIONS
-Blender 2.63 (sub 0)
+Blender 2.64 (sub 0)
Usage: blender [args ...] [file] [args ...]
.br
.SS "Render Options:"
@@ -223,18 +214,6 @@ Turn debugging on
Enable floating point exceptions
.br
-.TP
-.B \-\-debug\-ffmpeg
-.br
-Enable debug messages from FFmpeg library
-.br
-
-.TP
-.B \-\-debug\-libmv
-.br
-Enable debug messages from libmv library
-.br
-
.IP
.TP
@@ -258,12 +237,6 @@ Set the BLENDER_SYSTEM_SCRIPTS environment variable
.br
.TP
-.B \-\-env\-system\-plugins
-.br
-Set the BLENDER_SYSTEM_PLUGINS environment variable
-.br
-
-.TP
.B \-\-env\-system\-python
.br
Set the BLENDER_SYSTEM_PYTHON environment variable
@@ -316,7 +289,7 @@ Enable automatic python script execution, (default)
.TP
.B \-Y or \-\-disable\-autoexec
.br
-Disable automatic python script execution (pydrivers, pyconstraints, pynodes)
+Disable automatic python script execution (pydrivers & startup scripts)
.br
.IP
@@ -384,6 +357,26 @@ Enable all debug messages (excludes libmv)
.br
.TP
+.B \-\-debug\-value <value>
+.br
+Set debug value of <value> on startup
+.br
+
+.IP
+
+.TP
+.B \-\-debug\-jobs
+.br
+Enable time profiling for background jobs.
+.br
+
+.TP
+.B \-\-verbose <verbose>
+.br
+Set logging verbosity level.
+.br
+
+.TP
.B \-R
.br
Register .blend extension, then exit (Windows only)
@@ -421,7 +414,6 @@ Arguments are executed in the order they are given. eg
\fIBLENDER_SYSTEM_DATAFILES\fR Directory for system wide data files.
\fIBLENDER_SYSTEM_PYTHON\fR Directory for system python libraries.
\fITMP\fR or \fITMPDIR\fR Store temporary files here.
- \fISDL_AUDIODRIVER\fR LibSDL audio driver \- alsa, esd, dma.
\fIPYTHONHOME\fR Path to the python directory, eg. /usr/lib/python.
.br
.br
diff --git a/doc/python_api/examples/bpy.ops.2.py b/doc/python_api/examples/bpy.ops.2.py
index 01e7dc1902e..cf6df946873 100644
--- a/doc/python_api/examples/bpy.ops.2.py
+++ b/doc/python_api/examples/bpy.ops.2.py
@@ -19,4 +19,4 @@ The execution context is as a non keyword, string argument in:
# group add popup
import bpy
-bpy.ops.object.group_instance_add('INVOKE_DEFAULT') \ No newline at end of file
+bpy.ops.object.group_instance_add('INVOKE_DEFAULT')
diff --git a/doc/python_api/rst/bge.logic.rst b/doc/python_api/rst/bge.logic.rst
index d071984b14b..260a86f7c59 100644
--- a/doc/python_api/rst/bge.logic.rst
+++ b/doc/python_api/rst/bge.logic.rst
@@ -2,9 +2,9 @@
Game Logic (bge.logic)
======================
-*****
-Intro
-*****
+************
+Introduction
+************
Module to access logic functions, imported automatically into the python controllers namespace.
@@ -172,7 +172,7 @@ General functions
Restarts the current game by reloading the .blend file (the last saved version, not what is currently running).
-.. function:: LibLoad(blend, type, data, load_actions=False, verbose=False)
+.. function:: LibLoad(blend, type, data, load_actions=False, verbose=False, load_scripts=True)
Converts the all of the datablocks of the given type from the given blend.
@@ -186,6 +186,8 @@ General functions
:type load_actions: bool
:arg verbose: Whether or not to print debugging information (e.g., "SceneName: Scene")
:type verbose: bool
+ :arg load_scripts: Whether or not to load text datablocks as well (can be disabled for some extra security)
+ :type load_scripts: bool
.. function:: LibNew(name, type, data)
diff --git a/doc/python_api/rst/bge.types.rst b/doc/python_api/rst/bge.types.rst
index d0a848ee6f7..a173137e50c 100644
--- a/doc/python_api/rst/bge.types.rst
+++ b/doc/python_api/rst/bge.types.rst
@@ -4,6 +4,33 @@ Game Types (bge.types)
.. module:: bge.types
+************
+Introduction
+************
+
+This module contains the classes that appear as instances in the Game Engine. A
+script must interact with these classes if it is to affect the behaviour of
+objects in a game.
+
+The following example would move an object (i.e. an instance of
+:class:`KX_GameObject`) one unit up.
+
+.. code-block:: python
+
+ # bge.types.SCA_PythonController
+ cont = bge.logic.getCurrentController()
+
+ # bge.types.KX_GameObject
+ obj = cont.owner
+ obj.worldPosition.z += 1
+
+To run the code, it could be placed in a Blender text block and executed with
+a :class:`SCA_PythonController` logic brick.
+
+*****
+Types
+*****
+
.. class:: PyObjectPlus
PyObjectPlus base class of most other types in the Game Engine.
@@ -306,7 +333,8 @@ Game Types (bge.types)
.. attribute:: useContinue
- The actions continue option, True or False. When True, the action will always play from where last left off, otherwise negative events to this actuator will reset it to its start frame.
+ The actions continue option, True or False. When True, the action will always play from where last left off,
+ otherwise negative events to this actuator will reset it to its start frame.
:type: boolean
@@ -852,7 +880,54 @@ Game Types (bge.types)
.. note::
- Calling ANY method or attribute on an object that has been removed from a scene will raise a SystemError, if an object may have been removed since last accessing it use the :data:`invalid` attribute to check.
+ Calling ANY method or attribute on an object that has been removed from a scene will raise a SystemError,
+ if an object may have been removed since last accessing it use the :data:`invalid` attribute to check.
+
+ KX_GameObject can be subclassed to extend functionality. For example:
+
+ .. code-block:: python
+
+ import bge
+
+ class CustomGameObject(bge.types.KX_GameObject):
+ RATE = 0.05
+
+ def __init__(self, old_owner):
+ # "old_owner" can just be ignored. At this point, "self" is
+ # already the object in the scene, and "old_owner" has been
+ # destroyed.
+
+ # New attributes can be defined - but we could also use a game
+ # property, like "self['rate']".
+ self.rate = CustomGameObject.RATE
+
+ def update(self):
+ self.worldPosition.z += self.rate
+
+ # switch direction
+ if self.worldPosition.z > 1.0:
+ self.rate = -CustomGameObject.RATE
+ elif self.worldPosition.z < 0.0:
+ self.rate = CustomGameObject.RATE
+
+ # Called first
+ def mutate(cont):
+ old_object = cont.owner
+ mutated_object = CustomGameObject(cont.owner)
+
+ # After calling the constructor above, references to the old object
+ # should not be used.
+ assert(old_object is not mutated_object)
+ assert(old_object.invalid)
+ assert(mutated_object is cont.owner)
+
+ # Called later - note we are now working with the mutated object.
+ def update(cont):
+ cont.owner.update()
+
+ When subclassing objects other than empties and meshes, the specific type
+ should be used - e.g. inherit from :class:`BL_ArmatureObject` when the object
+ to mutate is an armature.
.. attribute:: name
@@ -913,6 +988,24 @@ Game Types (bge.types)
The object's parent object. (read-only).
:type: :class:`KX_GameObject` or None
+
+ .. attribute:: group_children
+
+ Returns the list of group members if the object is a group object, otherwise None is returned.
+
+ :type: :class:`CListValue` of :class:`KX_GameObject` or None
+
+ .. attribute:: group_parent
+
+ Returns the group object that the object belongs to or None if the object is not part of a group.
+
+ :type: :class:`KX_GameObject` or None
+
+ .. attribute:: scene
+
+ The object's scene. (read-only).
+
+ :type: :class:`KX_Scene` or None
.. attribute:: visible
@@ -1335,18 +1428,10 @@ Game Types (bge.types)
Rigid body physics allows the object to roll on collisions.
- .. note::
-
- This is not working with bullet physics yet.
-
.. method:: disableRigidBody()
Disables rigid body physics for this object.
- .. note::
-
- This is not working with bullet physics yet. The angular is removed but rigid body physics can still rotate it later.
-
.. method:: setParent(parent, compound=True, ghost=True)
Sets this object's parent.
@@ -4222,6 +4307,10 @@ Game Types (bge.types)
.. attribute:: projection_matrix
This camera's 4x4 projection matrix.
+
+ .. note::
+
+ This is the identity matrix prior to rendering the first frame (any Python done on frame 1).
:type: 4x4 Matrix [[float]]
@@ -4233,7 +4322,7 @@ Game Types (bge.types)
.. note::
- This matrix is regenerated every frame from the camera's position and orientation.
+ This matrix is regenerated every frame from the camera's position and orientation. Also, this is the identity matrix prior to rendering the first frame (any Python done on frame 1).
.. attribute:: camera_to_world
@@ -4477,7 +4566,9 @@ Game Types (bge.types)
.. data:: KX_ACT_ARMATURE_RUN
- Just make sure the armature will be updated on the next graphic frame. This is the only persistent mode of the actuator: it executes automatically once per frame until stopped by a controller
+ Just make sure the armature will be updated on the next graphic frame.
+ This is the only persistent mode of the actuator:
+ it executes automatically once per frame until stopped by a controller
:value: 0
diff --git a/doc/python_api/rst/change_log.rst b/doc/python_api/rst/change_log.rst
index 4d8f9a5171e..c1f3c2e4267 100644
--- a/doc/python_api/rst/change_log.rst
+++ b/doc/python_api/rst/change_log.rst
@@ -2397,3 +2397,1502 @@ Removed
* **ffmpeg_packetsize**
* **ffmpeg_video_bitrate**
+2.62 to 2.63
+============
+
+bpy.types.ThemeView3D
+---------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ThemeView3D.camera`
+* :class:`bpy.types.ThemeView3D.empty`
+
+bpy.types.KeyingSet
+-------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.KeyingSet.bl_description`
+* :class:`bpy.types.KeyingSet.bl_idname`
+
+Renamed
+^^^^^^^
+
+* **name** -> :class:`bpy.types.KeyingSet.bl_label`
+
+bpy.types.BlendDataScenes
+-------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.BlendDataScenes.tag`
+
+bpy.types.RenderEngine
+----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.RenderEngine.camera_override`
+
+bpy.types.BackgroundImage
+-------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.BackgroundImage.show_on_foreground`
+
+bpy.types.CyclesRenderSettings
+------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CyclesRenderSettings.preview_active_layer`
+* :class:`bpy.types.CyclesRenderSettings.sample_clamp`
+
+bpy.types.ToolSettings
+----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ToolSettings.double_threshold`
+
+bpy.types.Image
+---------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Image.render_slot`
+
+bpy.types.MovieTrackingStabilization
+------------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.MovieTrackingStabilization.filter_type`
+
+bpy.types.DomainFluidSettings
+-----------------------------
+
+Removed
+^^^^^^^
+
+* **viscosity_preset**
+
+bpy.types.ParticleSettings
+--------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ParticleSettings.use_rotations`
+
+bpy.types.SceneGameData
+-----------------------
+
+Renamed
+^^^^^^^
+
+* **dome_tesselation** -> :class:`bpy.types.SceneGameData.dome_tessellation`
+
+bpy.types.RegionView3D
+----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.RegionView3D.update`
+
+bpy.types.Scene
+---------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Scene.active_layer`
+
+bpy.types.ShaderNodeTexEnvironment
+----------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ShaderNodeTexEnvironment.projection`
+
+bpy.types.UserPreferencesEdit
+-----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.UserPreferencesEdit.fcurve_unselected_alpha`
+
+bpy.types.MeshTextureFace
+-------------------------
+
+Removed
+^^^^^^^
+
+* **pin_uv**
+* **select_uv**
+
+bpy.types.Menu
+--------------
+
+Function Arguments
+^^^^^^^^^^^^^^^^^^
+
+* :class:`bpy.types.Menu.path_menu` (self, searchpaths, operator, props_default, filter_ext), *was (self, searchpaths, operator, props_default)*
+
+bpy.types.CompositorNodeDistanceMatte
+-------------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CompositorNodeDistanceMatte.channel`
+
+bpy.types.KeyingSetInfo
+-----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.KeyingSetInfo.bl_description`
+
+bpy.types.KeyingSets
+--------------------
+
+Function Arguments
+^^^^^^^^^^^^^^^^^^
+
+* :class:`bpy.types.KeyingSets.new` (idname, name), *was (name)*
+
+bpy.types.CompositorNodeOutputFile
+----------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CompositorNodeOutputFile.active_input`
+* :class:`bpy.types.CompositorNodeOutputFile.active_input_index`
+* :class:`bpy.types.CompositorNodeOutputFile.base_path`
+
+Removed
+^^^^^^^
+
+* **filepath**
+* **frame_end**
+* **frame_start**
+
+Renamed
+^^^^^^^
+
+* **image_settings** -> :class:`bpy.types.CompositorNodeOutputFile.format`
+
+bpy.types.CyclesCameraSettings
+------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CyclesCameraSettings.aperture_fstop`
+* :class:`bpy.types.CyclesCameraSettings.aperture_type`
+
+bpy.types.Struct
+----------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Struct.translation_context`
+
+bpy.types.ThemeSequenceEditor
+-----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ThemeSequenceEditor.movieclip_strip`
+* :class:`bpy.types.ThemeSequenceEditor.preview_back`
+
+bpy.types.TexMapping
+--------------------
+
+Renamed
+^^^^^^^
+
+* **location** -> :class:`bpy.types.TexMapping.translation`
+
+bpy.types.ArmatureActuator
+--------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ArmatureActuator.influence`
+
+bpy.types.ThemeTextEditor
+-------------------------
+
+Removed
+^^^^^^^
+
+* **scroll_bar**
+
+bpy.types.ThemeUserInterface
+----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ThemeUserInterface.wcol_tooltip`
+
+bpy.types.MeshEdge
+------------------
+
+Removed
+^^^^^^^
+
+* **is_fgon**
+
+bpy.types.Brush
+---------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Brush.sculpt_capabilities`
+
+Renamed
+^^^^^^^
+
+* **use_space_atten** -> :class:`bpy.types.Brush.use_space_attenuation`
+
+bpy.types.ShaderNodeMapping
+---------------------------
+
+Renamed
+^^^^^^^
+
+* **location** -> :class:`bpy.types.ShaderNodeMapping.translation`
+
+bpy.types.Mesh
+--------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Mesh.auto_texspace`
+* :class:`bpy.types.Mesh.calc_tessface`
+* :class:`bpy.types.Mesh.loops`
+* :class:`bpy.types.Mesh.polygons`
+* :class:`bpy.types.Mesh.tessface_uv_textures`
+* :class:`bpy.types.Mesh.tessface_vertex_colors`
+* :class:`bpy.types.Mesh.tessfaces`
+* :class:`bpy.types.Mesh.unit_test_compare`
+* :class:`bpy.types.Mesh.uv_layer_clone`
+* :class:`bpy.types.Mesh.uv_layer_clone_index`
+* :class:`bpy.types.Mesh.uv_layer_stencil`
+* :class:`bpy.types.Mesh.uv_layer_stencil_index`
+* :class:`bpy.types.Mesh.uv_layers`
+
+Removed
+^^^^^^^
+
+* **faces**
+* **layers_float**
+* **layers_string**
+
+Renamed
+^^^^^^^
+
+* **layers_int** -> :class:`bpy.types.Mesh.polygon_layers_float`
+* **layers_int** -> :class:`bpy.types.Mesh.polygon_layers_int`
+* **layers_int** -> :class:`bpy.types.Mesh.polygon_layers_string`
+
+Function Arguments
+^^^^^^^^^^^^^^^^^^
+
+* :class:`bpy.types.Mesh.update` (calc_edges, calc_tessface), *was (calc_edges)*
+
+bpy.types.Key
+-------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Key.eval_time`
+
+bpy.types.LatticeModifier
+-------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.LatticeModifier.strength`
+
+bpy.types.UserPreferencesView
+-----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.UserPreferencesView.quit_dialog`
+
+
+2.63 to 2.64
+============
+
+bpy.types.CyclesLampSettings
+----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CyclesLampSettings.samples`
+
+bpy.types.Histogram
+-------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Histogram.show_line`
+
+bpy.types.ThemeView3D
+---------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ThemeView3D.bone_pose_active`
+* :class:`bpy.types.ThemeView3D.skin_root`
+
+bpy.types.GameObjectSettings
+----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.GameObjectSettings.fall_speed`
+* :class:`bpy.types.GameObjectSettings.jump_speed`
+* :class:`bpy.types.GameObjectSettings.step_height`
+
+
+bpy.types.BlendData
+-------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.BlendData.masks`
+
+
+bpy.types.TextureNodeMixRGB
+---------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.TextureNodeMixRGB.use_clamp`
+
+bpy.types.SmokeCollSettings
+---------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SmokeCollSettings.collision_type`
+
+bpy.types.CompositorNodes
+-------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CompositorNodes.active`
+
+bpy.types.RenderEngine
+----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.RenderEngine.resolution_x`
+* :class:`bpy.types.RenderEngine.resolution_y`
+* :class:`bpy.types.RenderEngine.tile_x`
+* :class:`bpy.types.RenderEngine.tile_y`
+
+Function Arguments
+^^^^^^^^^^^^^^^^^^
+
+* :class:`bpy.types.RenderEngine.begin_result` (x, y, w, h, layer), *was (x, y, w, h)*
+* :class:`bpy.types.RenderEngine.end_result` (result, cancel), *was (result)*
+
+bpy.types.BackgroundImage
+-------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.BackgroundImage.draw_depth`
+* :class:`bpy.types.BackgroundImage.frame_method`
+
+bpy.types.SmokeDomainSettings
+-----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SmokeDomainSettings.cell_size`
+* :class:`bpy.types.SmokeDomainSettings.density`
+* :class:`bpy.types.SmokeDomainSettings.domain_resolution`
+* :class:`bpy.types.SmokeDomainSettings.scale`
+* :class:`bpy.types.SmokeDomainSettings.start_point`
+
+bpy.types.CyclesRenderSettings
+------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CyclesRenderSettings.aa_samples`
+* :class:`bpy.types.CyclesRenderSettings.ao_samples`
+* :class:`bpy.types.CyclesRenderSettings.blur_glossy`
+* :class:`bpy.types.CyclesRenderSettings.diffuse_samples`
+* :class:`bpy.types.CyclesRenderSettings.glossy_samples`
+* :class:`bpy.types.CyclesRenderSettings.mesh_light_samples`
+* :class:`bpy.types.CyclesRenderSettings.preview_aa_samples`
+* :class:`bpy.types.CyclesRenderSettings.preview_start_resolution`
+* :class:`bpy.types.CyclesRenderSettings.progressive`
+* :class:`bpy.types.CyclesRenderSettings.transmission_samples`
+
+Removed
+^^^^^^^
+
+* **blur_caustics**
+* **debug_min_size**
+
+bpy.types.ActionGroup
+---------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ActionGroup.color_set`
+* :class:`bpy.types.ActionGroup.colors`
+
+Removed
+^^^^^^^
+
+* **custom_color**
+
+bpy.types.WipeSequence
+----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.WipeSequence.input_1`
+* :class:`bpy.types.WipeSequence.input_count`
+
+bpy.types.ToolSettings
+----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ToolSettings.snap_node_element`
+* :class:`bpy.types.ToolSettings.use_proportional_edit_mask`
+
+bpy.types.ThemeClipEditor
+-------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ThemeClipEditor.space_list`
+* :class:`bpy.types.ThemeClipEditor.strips`
+* :class:`bpy.types.ThemeClipEditor.strips_selected`
+
+bpy.types.Image
+---------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Image.colorspace_settings`
+* :class:`bpy.types.Image.frame_duration`
+* :class:`bpy.types.Image.gl_touch`
+* :class:`bpy.types.Image.scale`
+* :class:`bpy.types.Image.view_as_render`
+
+
+bpy.types.ThemeDopeSheet
+------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ThemeDopeSheet.summary`
+
+bpy.types.MovieClipUser
+-----------------------
+
+Renamed
+^^^^^^^
+
+* **current_frame** -> :class:`bpy.types.MovieClipUser.frame_current`
+
+bpy.types.TransformSequence
+---------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.TransformSequence.input_1`
+* :class:`bpy.types.TransformSequence.input_count`
+
+bpy.types.ImageSequence
+-----------------------
+
+Removed
+^^^^^^^
+
+* **color_balance**
+* **use_color_balance**
+
+bpy.types.DupliObject
+---------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.DupliObject.index`
+* :class:`bpy.types.DupliObject.particle_index`
+
+bpy.types.RenderSettings
+------------------------
+
+Removed
+^^^^^^^
+
+* **use_color_management**
+* **use_radiosity**
+
+bpy.types.Curve
+---------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Curve.bevel_factor_end`
+* :class:`bpy.types.Curve.bevel_factor_start`
+
+bpy.types.MovieClip
+-------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.MovieClip.colorspace_settings`
+* :class:`bpy.types.MovieClip.frame_duration`
+* :class:`bpy.types.MovieClip.frame_offset`
+* :class:`bpy.types.MovieClip.frame_start`
+
+bpy.types.CompositorNodeTree
+----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CompositorNodeTree.chunk_size`
+* :class:`bpy.types.CompositorNodeTree.edit_quality`
+* :class:`bpy.types.CompositorNodeTree.render_quality`
+* :class:`bpy.types.CompositorNodeTree.two_pass`
+* :class:`bpy.types.CompositorNodeTree.use_opencl`
+
+bpy.types.SpaceUVEditor
+-----------------------
+
+Removed
+^^^^^^^
+
+* **cursor_location**
+* **pivot_point**
+
+bpy.types.RemeshModifier
+------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.RemeshModifier.use_smooth_shade`
+
+bpy.types.CurveMapping
+----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CurveMapping.update`
+
+bpy.types.CompositorNodeMixRGB
+------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CompositorNodeMixRGB.use_clamp`
+
+bpy.types.ParticleSettings
+--------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ParticleSettings.use_scale_dupli`
+
+bpy.types.SceneGameData
+-----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SceneGameData.deactivation_angular_threshold`
+* :class:`bpy.types.SceneGameData.deactivation_linear_threshold`
+* :class:`bpy.types.SceneGameData.deactivation_time`
+
+bpy.types.SoundSequence
+-----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SoundSequence.show_waveform`
+
+bpy.types.Scene
+---------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Scene.display_settings`
+* :class:`bpy.types.Scene.sequence_editor_clear`
+* :class:`bpy.types.Scene.sequence_editor_create`
+* :class:`bpy.types.Scene.sequencer_colorspace_settings`
+* :class:`bpy.types.Scene.view_settings`
+
+Removed
+^^^^^^^
+
+* **collada_export**
+
+bpy.types.Armature
+------------------
+
+Removed
+^^^^^^^
+
+* **use_deform_envelopes**
+* **use_deform_preserve_volume**
+* **use_deform_vertex_groups**
+
+bpy.types.MeshUVLoopLayer
+-------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.MeshUVLoopLayer.name`
+
+bpy.types.CurveMap
+------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CurveMap.evaluate`
+
+bpy.types.ShaderNodeTexEnvironment
+----------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ShaderNodeTexEnvironment.image_user`
+
+bpy.types.SolidifyModifier
+--------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SolidifyModifier.use_flip_normals`
+
+bpy.types.TextureNodeMath
+-------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.TextureNodeMath.use_clamp`
+
+bpy.types.SceneRenderLayer
+--------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SceneRenderLayer.layers_exclude`
+* :class:`bpy.types.SceneRenderLayer.samples`
+
+bpy.types.CompositorNodeViewer
+------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CompositorNodeViewer.center_x`
+* :class:`bpy.types.CompositorNodeViewer.center_y`
+* :class:`bpy.types.CompositorNodeViewer.tile_order`
+
+bpy.types.ClothCollisionSettings
+--------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ClothCollisionSettings.vertex_group_self_collisions`
+
+bpy.types.SpeedControlSequence
+------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SpeedControlSequence.input_1`
+* :class:`bpy.types.SpeedControlSequence.input_count`
+
+bpy.types.ActionConstraint
+--------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ActionConstraint.use_bone_object_action`
+
+bpy.types.CompositorNodeScale
+-----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CompositorNodeScale.frame_method`
+* :class:`bpy.types.CompositorNodeScale.offset_x`
+* :class:`bpy.types.CompositorNodeScale.offset_y`
+
+bpy.types.SpaceDopeSheetEditor
+------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SpaceDopeSheetEditor.show_group_colors`
+
+bpy.types.MetaSequence
+----------------------
+
+Removed
+^^^^^^^
+
+* **color_balance**
+* **use_color_balance**
+
+bpy.types.ShaderNodeMixRGB
+--------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ShaderNodeMixRGB.use_clamp`
+
+bpy.types.FollowTrackConstraint
+-------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.FollowTrackConstraint.frame_method`
+
+bpy.types.EffectSequence
+------------------------
+
+Removed
+^^^^^^^
+
+* **color_balance**
+* **use_color_balance**
+
+bpy.types.ThemeNLAEditor
+------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ThemeNLAEditor.active_action`
+* :class:`bpy.types.ThemeNLAEditor.active_action_unset`
+* :class:`bpy.types.ThemeNLAEditor.meta_strips`
+* :class:`bpy.types.ThemeNLAEditor.meta_strips_selected`
+* :class:`bpy.types.ThemeNLAEditor.sound_strips`
+* :class:`bpy.types.ThemeNLAEditor.sound_strips_selected`
+* :class:`bpy.types.ThemeNLAEditor.transition_strips`
+* :class:`bpy.types.ThemeNLAEditor.transition_strips_selected`
+* :class:`bpy.types.ThemeNLAEditor.tweak`
+* :class:`bpy.types.ThemeNLAEditor.tweak_duplicate`
+
+Removed
+^^^^^^^
+
+* **bars**
+* **bars_selected**
+
+bpy.types.SculptCapabilities
+----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SculptCapabilities.has_overlay`
+* :class:`bpy.types.SculptCapabilities.has_texture_angle`
+* :class:`bpy.types.SculptCapabilities.has_texture_angle_source`
+
+bpy.types.ImageFormatSettings
+-----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ImageFormatSettings.display_settings`
+* :class:`bpy.types.ImageFormatSettings.view_settings`
+
+
+bpy.types.Property
+------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Property.is_library_editable`
+
+bpy.types.MovieTrackingTrack
+----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.MovieTrackingTrack.grease_pencil`
+* :class:`bpy.types.MovieTrackingTrack.motion_model`
+* :class:`bpy.types.MovieTrackingTrack.use_alpha_preview`
+* :class:`bpy.types.MovieTrackingTrack.use_brute`
+* :class:`bpy.types.MovieTrackingTrack.use_mask`
+* :class:`bpy.types.MovieTrackingTrack.use_normalization`
+
+Removed
+^^^^^^^
+
+* **pattern_max**
+* **pattern_min**
+* **pyramid_levels**
+* **search_max**
+* **search_min**
+* **tracker**
+
+bpy.types.CompositorNodeBlur
+----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CompositorNodeBlur.use_variable_size`
+
+bpy.types.Object
+----------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Object.dm_info`
+* :class:`bpy.types.Object.is_deform_modified`
+* :class:`bpy.types.Object.layers_local_view`
+
+Renamed
+^^^^^^^
+
+* **animation_visualisation** -> :class:`bpy.types.Object.animation_visualization`
+
+bpy.types.UserPreferencesSystem
+-------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.UserPreferencesSystem.use_gpu_mipmap`
+
+Removed
+^^^^^^^
+
+* **compute_device**
+* **compute_device_type**
+
+bpy.types.Sequence
+------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Sequence.modifiers`
+* :class:`bpy.types.Sequence.use_linear_modifiers`
+
+Removed
+^^^^^^^
+
+* **input_1**
+* **input_2**
+* **input_3**
+* **input_count**
+* **waveform**
+
+bpy.types.ConsoleLine
+---------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ConsoleLine.type`
+
+bpy.types.Region
+----------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Region.view2d`
+* :class:`bpy.types.Region.x`
+* :class:`bpy.types.Region.y`
+
+bpy.types.SpaceClipEditor
+-------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SpaceClipEditor.grease_pencil_source`
+* :class:`bpy.types.SpaceClipEditor.mask`
+* :class:`bpy.types.SpaceClipEditor.mask_draw_type`
+* :class:`bpy.types.SpaceClipEditor.pivot_point`
+* :class:`bpy.types.SpaceClipEditor.show_graph_hidden`
+* :class:`bpy.types.SpaceClipEditor.show_graph_only_selected`
+* :class:`bpy.types.SpaceClipEditor.show_mask_smooth`
+* :class:`bpy.types.SpaceClipEditor.show_seconds`
+
+bpy.types.NodeSocket
+--------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.NodeSocket.hide`
+* :class:`bpy.types.NodeSocket.is_linked`
+
+bpy.types.MovieClipSequence
+---------------------------
+
+Removed
+^^^^^^^
+
+* **color_balance**
+* **use_color_balance**
+
+bpy.types.Node
+--------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Node.color`
+* :class:`bpy.types.Node.hide`
+* :class:`bpy.types.Node.mute`
+* :class:`bpy.types.Node.select`
+* :class:`bpy.types.Node.show_options`
+* :class:`bpy.types.Node.show_preview`
+* :class:`bpy.types.Node.use_custom_color`
+
+bpy.types.SceneSequence
+-----------------------
+
+Removed
+^^^^^^^
+
+* **color_balance**
+* **use_color_balance**
+
+bpy.types.CompositorNodeOutputFile
+----------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CompositorNodeOutputFile.file_slots`
+* :class:`bpy.types.CompositorNodeOutputFile.layer_slots`
+
+Removed
+^^^^^^^
+
+* **active_input**
+
+bpy.types.ObjectBase
+--------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ObjectBase.layers_local_view`
+
+bpy.types.CyclesCameraSettings
+------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CyclesCameraSettings.fisheye_fov`
+* :class:`bpy.types.CyclesCameraSettings.fisheye_lens`
+* :class:`bpy.types.CyclesCameraSettings.panorama_type`
+
+bpy.types.CompositorNodeDefocus
+-------------------------------
+
+Removed
+^^^^^^^
+
+* **samples**
+
+bpy.types.KeyMapItems
+---------------------
+
+Function Arguments
+^^^^^^^^^^^^^^^^^^
+
+* :class:`bpy.types.KeyMapItems.new` (idname, type, value, any, shift, ctrl, alt, oskey, key_modifier, head), *was (idname, type, value, any, shift, ctrl, alt, oskey, key_modifier)*
+
+bpy.types.CollisionSettings
+---------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CollisionSettings.stickiness`
+
+Removed
+^^^^^^^
+
+* **stickness**
+
+bpy.types.GlowSequence
+----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.GlowSequence.input_1`
+* :class:`bpy.types.GlowSequence.input_count`
+
+bpy.types.MouseSensor
+---------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.MouseSensor.use_pulse`
+
+bpy.types.MovieSequence
+-----------------------
+
+Removed
+^^^^^^^
+
+* **color_balance**
+* **use_color_balance**
+
+bpy.types.Pose
+--------------
+
+Renamed
+^^^^^^^
+
+* **animation_visualisation** -> :class:`bpy.types.Pose.animation_visualization`
+
+bpy.types.ThemeSequenceEditor
+-----------------------------
+
+Removed
+^^^^^^^
+
+* **plugin_strip**
+
+bpy.types.IMAGE_UV_sculpt
+-------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.IMAGE_UV_sculpt.prop_unified_weight`
+
+bpy.types.SpaceImageEditor
+--------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SpaceImageEditor.cursor_location`
+* :class:`bpy.types.SpaceImageEditor.mask`
+* :class:`bpy.types.SpaceImageEditor.mask_draw_type`
+* :class:`bpy.types.SpaceImageEditor.mode`
+* :class:`bpy.types.SpaceImageEditor.pivot_point`
+* :class:`bpy.types.SpaceImageEditor.show_mask_smooth`
+* :class:`bpy.types.SpaceImageEditor.show_maskedit`
+
+Removed
+^^^^^^^
+
+* **curve**
+* **use_grease_pencil**
+* **use_image_paint**
+
+bpy.types.UserPreferencesFilePaths
+----------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.UserPreferencesFilePaths.i18n_branches_directory`
+
+Removed
+^^^^^^^
+
+* **sequence_plugin_directory**
+* **texture_plugin_directory**
+
+bpy.types.CompositorNodeDilateErode
+-----------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CompositorNodeDilateErode.edge`
+* :class:`bpy.types.CompositorNodeDilateErode.falloff`
+* :class:`bpy.types.CompositorNodeDilateErode.type`
+
+bpy.types.ScrewModifier
+-----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ScrewModifier.use_smooth_shade`
+
+bpy.types.SpaceNodeEditor
+-------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SpaceNodeEditor.cursor_location`
+* :class:`bpy.types.SpaceNodeEditor.edit_tree`
+* :class:`bpy.types.SpaceNodeEditor.show_highlight`
+* :class:`bpy.types.SpaceNodeEditor.use_hidden_preview`
+
+bpy.types.SpaceView3D
+---------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SpaceView3D.layers_local_view`
+* :class:`bpy.types.SpaceView3D.show_backface_culling`
+
+bpy.types.Area
+--------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Area.x`
+* :class:`bpy.types.Area.y`
+
+bpy.types.RenderLayer
+---------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.RenderLayer.layers_exclude`
+
+bpy.types.MovieTracking
+-----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.MovieTracking.dopesheet`
+
+bpy.types.MovieTrackingSettings
+-------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.MovieTrackingSettings.default_motion_model`
+* :class:`bpy.types.MovieTrackingSettings.use_default_brute`
+* :class:`bpy.types.MovieTrackingSettings.use_default_mask`
+* :class:`bpy.types.MovieTrackingSettings.use_default_normalization`
+* :class:`bpy.types.MovieTrackingSettings.use_tripod_solver`
+
+Removed
+^^^^^^^
+
+* **default_pyramid_levels**
+* **default_tracker**
+
+bpy.types.CompositorNodeIDMask
+------------------------------
+
+Renamed
+^^^^^^^
+
+* **use_smooth_mask** -> :class:`bpy.types.CompositorNodeIDMask.use_antialiasing`
+
+bpy.types.UserPreferencesInput
+------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.UserPreferencesInput.ndof_orbit_sensitivity`
+* :class:`bpy.types.UserPreferencesInput.ndof_view_rotate_method`
+
+bpy.types.Brush
+---------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Brush.mask_tool`
+* :class:`bpy.types.Brush.weight`
+
+bpy.types.SpaceSequenceEditor
+-----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SpaceSequenceEditor.overlay_type`
+
+Removed
+^^^^^^^
+
+* **use_grease_pencil**
+
+bpy.types.MovieTrackingMarkers
+------------------------------
+
+Function Arguments
+^^^^^^^^^^^^^^^^^^
+
+* :class:`bpy.types.MovieTrackingMarkers.find_frame` (frame, exact), *was (frame)*
+
+bpy.types.UILayout
+------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.UILayout.template_colormanaged_view_settings`
+* :class:`bpy.types.UILayout.template_colorspace_settings`
+
+Function Arguments
+^^^^^^^^^^^^^^^^^^
+
+* :class:`bpy.types.UILayout.template_image_settings` (image_settings, color_management), *was (image_settings)*
+
+bpy.types.ID
+------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ID.is_library_indirect`
+
+bpy.types.SpaceGraphEditor
+--------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.SpaceGraphEditor.show_group_colors`
+
+bpy.types.Mesh
+--------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Mesh.skin_vertices`
+
+Removed
+^^^^^^^
+
+* **sticky**
+
+bpy.types.ShaderNodes
+---------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ShaderNodes.active`
+
+bpy.types.ColorSequence
+-----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ColorSequence.input_count`
+
+bpy.types.ShaderNodeMath
+------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ShaderNodeMath.use_clamp`
+
+bpy.types.Paint
+---------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Paint.input_samples`
+
+bpy.types.ShaderNodeTexImage
+----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ShaderNodeTexImage.image_user`
+* :class:`bpy.types.ShaderNodeTexImage.projection`
+* :class:`bpy.types.ShaderNodeTexImage.projection_blend`
+
+bpy.types.UserPreferencesView
+-----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.UserPreferencesView.use_mouse_depth_cursor`
+
+Renamed
+^^^^^^^
+
+* **use_mouse_auto_depth** -> :class:`bpy.types.UserPreferencesView.use_mouse_depth_navigate`
+
+bpy.types.CompositorNodeMath
+----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CompositorNodeMath.use_clamp`
+
+bpy.types.Material
+------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.Material.use_uv_project`
+
+bpy.types.ThemeNodeEditor
+-------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.ThemeNodeEditor.frame_node`
+* :class:`bpy.types.ThemeNodeEditor.node_active`
+* :class:`bpy.types.ThemeNodeEditor.node_selected`
+
+bpy.types.Camera
+----------------
+
+Removed
+^^^^^^^
+
+* **use_panorama**
+
+bpy.types.UnifiedPaintSettings
+------------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.UnifiedPaintSettings.use_unified_weight`
+* :class:`bpy.types.UnifiedPaintSettings.weight`
+
+bpy.types.TextureNodes
+----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.TextureNodes.active`
+
+bpy.types.MovieTrackingMarker
+-----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.MovieTrackingMarker.pattern_bound_box`
+* :class:`bpy.types.MovieTrackingMarker.pattern_corners`
+* :class:`bpy.types.MovieTrackingMarker.search_max`
+* :class:`bpy.types.MovieTrackingMarker.search_min`
+
+bpy.types.CyclesWorldSettings
+-----------------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.CyclesWorldSettings.samples`
+
+bpy.types.LatticePoint
+----------------------
+
+Added
+^^^^^
+
+* :class:`bpy.types.LatticePoint.select`
diff --git a/doc/python_api/rst/info_best_practice.rst b/doc/python_api/rst/info_best_practice.rst
index 481555d412a..1e12daba893 100644
--- a/doc/python_api/rst/info_best_practice.rst
+++ b/doc/python_api/rst/info_best_practice.rst
@@ -56,7 +56,69 @@ To enable line length checks use this instead.
User Interface Layout
=====================
-TODO: Thomas
+Some notes to keep in mind when writing UI layouts:
+
+* UI code is quite simple. Layout declarations are there to easily create a decent layout.
+
+ General rule here: If you need more code for the layout declaration, then for the actual properties, you do it wrong.
+
+Example layouts:
+
+* layout()
+
+ The basic layout is a simple Top -> Bottom layout.
+
+ .. code-block:: python
+
+ layout.prop()
+ layout.prop()
+
+* layout.row()
+
+ Use row(), when you want more than 1 property in one line.
+
+ .. code-block:: python
+
+ row = layout.row()
+ row.prop()
+ row.prop()
+
+* layout.column()
+
+ Use column(), when you want your properties in a column.
+
+ .. code-block:: python
+
+ col = layout.column()
+ col.prop()
+ col.prop()
+
+* layout.split()
+
+ This can be used to create more complex layouts. For example you can split the layout and create two column() layouts next to each other.
+ Don't use split, when you simply want two properties in a row. Use row() for that.
+
+ .. code-block:: python
+
+ split = layout.split()
+
+ col = split.column()
+ col.prop()
+ col.prop()
+
+ col = split.column()
+ col.prop()
+ col.prop()
+
+Declaration names:
+
+Try to only use these variable names for layout declarations:
+
+* row for a row() layout
+* col for a column() layout
+* split for a split() layout
+* flow for a column_flow() layout
+* sub for a sub layout (a column inside a column for example)
Script Efficiency
@@ -83,7 +145,7 @@ Even though you're not looping on the list data **python is**, so you need to be
Modifying Lists
^^^^^^^^^^^^^^^
-In python we can add and remove from a list, This is slower when the list length is modified, especially at the start of the list, since all the data after the index of modification needs to be moved up or down 1 place.
+In python we can add and remove from a list, this is slower when the list length is modified, especially at the start of the list, since all the data after the index of modification needs to be moved up or down 1 place.
The most simple way to add onto the end of the list is to use ``my_list.append(list_item)`` or ``my_list.extend(some_list)`` and the fastest way to remove an item is ``my_list.pop()`` or ``del my_list[-1]``.
@@ -92,13 +154,13 @@ To use an index you can use ``my_list.insert(index, list_item)`` or ``list.pop(i
Sometimes its faster (but more memory hungry) to just rebuild the list.
-Say you want to remove all triangle faces in a list.
+Say you want to remove all triangular faces in a list.
Rather than...
.. code-block:: python
- faces = mesh.faces[:] # make a list copy of the meshes faces
+ faces = mesh.tessfaces[:] # make a list copy of the meshes faces
f_idx = len(faces) # Loop backwards
while f_idx: # while the value is not 0
f_idx -= 1
@@ -111,13 +173,13 @@ It's faster to build a new list with list comprehension.
.. code-block:: python
- faces = [f for f in mesh.faces if len(f.vertices) != 3]
+ faces = [f for f in mesh.tessfaces if len(f.vertices) != 3]
Adding List Items
^^^^^^^^^^^^^^^^^
-If you have a list that you want to add onto another list, rather then...
+If you have a list that you want to add onto another list, rather than...
.. code-block:: python
@@ -143,6 +205,14 @@ This example shows a very sub-optimal way of making a reversed list.
reverse_list.insert(0, list_item)
+Python provides more convenient ways to reverse a list using the slice method, but you may want to time this before relying on it too much:
+
+
+.. code-block:: python
+
+ some_reversed_list = some_list[::-1]
+
+
Removing List Items
^^^^^^^^^^^^^^^^^^^
@@ -162,7 +232,7 @@ Here is an example of how to remove items in 1 loop, removing the last items fir
my_list.pop(list_index)
-This example shows a fast way of removing items, for use in cases were where you can alter the list order without breaking the scripts functionality. This works by swapping 2 list items, so the item you remove is always last.
+This example shows a fast way of removing items, for use in cases where you can alter the list order without breaking the scripts functionality. This works by swapping 2 list items, so the item you remove is always last.
.. code-block:: python
@@ -181,9 +251,9 @@ When removing many items in a large list this can provide a good speedup.
Avoid Copying Lists
^^^^^^^^^^^^^^^^^^^
-When passing a list/dictionary to a function, it is faster to have the function modify the list rather then returning a new list so python doesn't have to duplicate the list in memory.
+When passing a list/dictionary to a function, it is faster to have the function modify the list rather than returning a new list so python doesn't have to duplicate the list in memory.
-Functions that modify a list in-place are more efficient then functions that create new lists.
+Functions that modify a list in-place are more efficient than functions that create new lists.
This is generally slower so only use for functions when it makes sense not to modify the list in place.
@@ -211,22 +281,22 @@ Here are 3 ways of joining multiple strings into 1 string for writing
This really applies to any area of your code that involves a lot of string joining.
-Pythons string addition, *don't use if you can help it, especially when writing data in a loop.*
+Python’s string addition, *don't use if you can help it, especially when writing data in a loop.*
>>> file.write(str1 + " " + str2 + " " + str3 + "\n")
-String formatting. Use this when you're writing string data from floats and int's
+String formatting. Use this when you're writing string data from floats and ints
>>> file.write("%s %s %s\n" % (str1, str2, str3))
-Pythons string joining function. To join a list of strings
+Python’s string joining function. To join a list of strings
>>> file.write(" ".join([str1, str2, str3, "\n"]))
-join is fastest on many strings, string formatting is quite fast too (better for converting data types). String arithmetic is slowest.
+join is fastest on many strings, `string formatting <http://docs.python.org/py3k/library/string.html#string-formatting>`_ is quite fast too (better for converting data types). String arithmetic is slowest.
Parsing Strings (Import/Exporting)
@@ -234,12 +304,12 @@ Parsing Strings (Import/Exporting)
Since many file formats are ASCII, the way you parse/export strings can make a large difference in how fast your script runs.
-When importing strings to make into blender there are a few ways to parse the string.
+There are a few ways to parse strings when importing them into Blender.
Parsing Numbers
^^^^^^^^^^^^^^^
-Use ``float(string)`` rather than ``eval(string)``, if you know the value will be an int then ``int(string)``, float() will work for an int too but its faster to read ints with int().
+Use ``float(string)`` rather than ``eval(string)``, if you know the value will be an int then ``int(string)``, float() will work for an int too but it's faster to read ints with int().
Checking String Start/End
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -256,7 +326,7 @@ Using ``startswith()`` is slightly faster (approx 5%) and also avoids a possible
my_string.endswith("foo_bar") can be used for line endings too.
-if your unsure whether the text is upper or lower case use lower or upper string function.
+If you are unsure whether the text is upper or lower case use ``lower()`` or ``upper()`` string function.
>>> if line.lower().startswith("vert ")
@@ -266,7 +336,7 @@ Use try/except Sparingly
The **try** statement is useful to save time writing error checking code.
-However **try** is significantly slower then an **if** since an exception has to be set each time, so avoid using **try** in areas of your code that execute in a loop and runs many times.
+However **try** is significantly slower than an **if** since an exception has to be set each time, so avoid using **try** in areas of your code that execute in a loop and runs many times.
There are cases where using **try** is faster than checking whether the condition will raise an error, so it is worth experimenting.
@@ -274,7 +344,7 @@ There are cases where using **try** is faster than checking whether the conditio
Value Comparison
----------------
-Python has two ways to compare values ``a == b`` and ``a is b``, The difference is that ``==`` may run the objects comparison function ``__cmp__()`` where as ``is`` compares identity, that both variables reference the same item in memory.
+Python has two ways to compare values ``a == b`` and ``a is b``, the difference is that ``==`` may run the objects comparison function ``__cmp__()`` whereas ``is`` compares identity, that both variables reference the same item in memory.
In cases where you know you are checking for the same value which is referenced from multiple places, ``is`` is faster.
@@ -282,7 +352,7 @@ In cases where you know you are checking for the same value which is referenced
Time Your Code
--------------
-While developing a script its good to time it to be aware of any changes in performance, this can be done simply.
+While developing a script it's good to time it to be aware of any changes in performance, this can be done simply.
.. code-block:: python
diff --git a/doc/python_api/rst/info_gotcha.rst b/doc/python_api/rst/info_gotcha.rst
index eb312799b41..1d561216b52 100644
--- a/doc/python_api/rst/info_gotcha.rst
+++ b/doc/python_api/rst/info_gotcha.rst
@@ -137,11 +137,11 @@ For the time being this limitation just has to be worked around but we're aware
NGons and Tessellation Faces
============================
-Since 2.63 NGons are supported, this adds some complexity since in some cases you need to access triangles still (some exporters for example).
+Since 2.63 NGons are supported, this adds some complexity since in some cases you need to access triangles/quads still (some exporters for example).
There are now 3 ways to access faces:
-* :class:`bpy.types.MeshPolygon` - this is the data stricture which now stores faces in object mode (access as ``mesh.polygons`` rather then ``mesh.faces``).
+* :class:`bpy.types.MeshPolygon` - this is the data structure which now stores faces in object mode (access as ``mesh.polygons`` rather then ``mesh.faces``).
* :class:`bpy.types.MeshTessFace` - the result of triangulating (tessellated) polygons, the main method of face access in 2.62 or older (access as ``mesh.tessfaces``).
* :class:`bmesh.types.BMFace` - the polygons as used in editmode.
diff --git a/doc/python_api/sphinx_changelog_gen.py b/doc/python_api/sphinx_changelog_gen.py
index 3ded1035123..afc253940d4 100644
--- a/doc/python_api/sphinx_changelog_gen.py
+++ b/doc/python_api/sphinx_changelog_gen.py
@@ -28,15 +28,15 @@ blender --background --python doc/python_api/sphinx_changelog_gen.py -- --dump
# create changelog
blender --background --python doc/python_api/sphinx_changelog_gen.py -- \
- --api_from blender_2_56_1.py \
- --api_to blender_2_57_0.py \
+ --api_from blender_2_63_0.py \
+ --api_to blender_2_64_0.py \
--api_out changes.rst
# Api comparison can also run without blender
-python doc/python_api/sphinx_changelog_gen.py \
- --api_from blender_api_2_56_6.py \
- --api_to blender_api_2_57.py \
+python doc/python_api/sphinx_changelog_gen.py -- \
+ --api_from blender_api_2_63_0.py \
+ --api_to blender_api_2_64_0.py \
--api_out changes.rst
# Save the latest API dump in this folder, renaming it with its revision.
@@ -307,6 +307,8 @@ def api_changelog(api_from, api_to, api_out):
fout.close()
+ print("Written: %r" % api_out)
+
def main():
import sys
@@ -347,6 +349,7 @@ def main():
args = parser.parse_args(argv) # In this example we wont use the args
if not argv:
+ print("No args given!")
parser.print_help()
return
diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py
index d61b5bb7521..0e6ef764116 100644
--- a/doc/python_api/sphinx_doc_gen.py
+++ b/doc/python_api/sphinx_doc_gen.py
@@ -399,7 +399,7 @@ SPHINX_THEMES = {'bf': ['blender-org'], # , 'naiad',
available_themes = SPHINX_THEMES['bf'] + SPHINX_THEMES['sphinx']
if ARGS.sphinx_theme not in available_themes:
- print ("Please choose a theme among: %s" % ', '.join(available_themes))
+ print("Please choose a theme among: %s" % ', '.join(available_themes))
sys.exit()
if ARGS.sphinx_theme in SPHINX_THEMES['bf']:
@@ -849,7 +849,7 @@ def pymodule2sphinx(basepath, module_name, module, title):
elif value_type in (bool, int, float, str, tuple):
# constant, not much fun we can do here except to list it.
# TODO, figure out some way to document these!
- #fw(".. data:: %s\n\n" % attribute)
+ fw(".. data:: %s\n\n" % attribute)
write_indented_lines(" ", fw, "constant value %s" % repr(value), False)
fw("\n")
else:
@@ -971,6 +971,7 @@ def pycontext2sphinx(basepath):
"meta_ball": ("MetaBall", False),
"object": ("Object", False),
"particle_edit_object": ("Object", False),
+ "particle_settings": ("ParticleSettings", False),
"particle_system": ("ParticleSystem", False),
"particle_system_editable": ("ParticleSystem", False),
"pose_bone": ("PoseBone", False),
diff --git a/extern/CMakeLists.txt b/extern/CMakeLists.txt
index b5f94c06d4c..151df493062 100644
--- a/extern/CMakeLists.txt
+++ b/extern/CMakeLists.txt
@@ -68,7 +68,7 @@ if(WITH_LIBMV)
add_subdirectory(libmv)
endif()
-if(WITH_CARVE)
+if(WITH_MOD_BOOLEAN)
add_subdirectory(carve)
endif()
diff --git a/extern/SConscript b/extern/SConscript
index 67b74e9ee91..ce366deb38a 100644
--- a/extern/SConscript
+++ b/extern/SConscript
@@ -32,7 +32,7 @@ if env['WITH_BF_LZMA']:
if env['WITH_BF_LIBMV']:
SConscript(['libmv/SConscript'])
-if env['WITH_BF_CARVE']:
+if env['WITH_BF_BOOLEAN']:
SConscript(['carve/SConscript'])
if env['WITH_GHOST_XDND']:
diff --git a/extern/bullet2/CMakeLists.txt b/extern/bullet2/CMakeLists.txt
index 4bf26ab3794..c57474f99f2 100644
--- a/extern/bullet2/CMakeLists.txt
+++ b/extern/bullet2/CMakeLists.txt
@@ -314,6 +314,7 @@ set(SRC
src/BulletDynamics/Character/btKinematicCharacterController.h
src/BulletSoftBody/btSoftBody.h
+ src/BulletSoftBody/btSoftBodyInternals.h
src/BulletSoftBody/btSoftBodyData.h
src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.h
src/BulletSoftBody/btSoftBodyHelpers.h
@@ -355,6 +356,7 @@ set(SRC
src/btBulletCollisionCommon.h
src/btBulletDynamicsCommon.h
+ src/Bullet-C-Api.h
)
if(CMAKE_COMPILER_IS_GNUCXX)
diff --git a/extern/bullet2/patches/ghost_character.patch b/extern/bullet2/patches/ghost_character.patch
new file mode 100644
index 00000000000..d4098cb8bc2
--- /dev/null
+++ b/extern/bullet2/patches/ghost_character.patch
@@ -0,0 +1,28 @@
+Index: extern/bullet2/src/BulletDynamics/Character/btKinematicCharacterController.cpp
+===================================================================
+--- extern/bullet2/src/BulletDynamics/Character/btKinematicCharacterController.cpp (revision 49183)
++++ extern/bullet2/src/BulletDynamics/Character/btKinematicCharacterController.cpp (working copy)
+@@ -77,6 +77,9 @@
+ if (convexResult.m_hitCollisionObject == m_me)
+ return btScalar(1.0);
+
++ if (!convexResult.m_hitCollisionObject->hasContactResponse())
++ return btScalar(1.0);
++
+ btVector3 hitNormalWorld;
+ if (normalInWorldSpace)
+ {
+@@ -173,7 +176,12 @@
+ m_manifoldArray.resize(0);
+
+ btBroadphasePair* collisionPair = &m_ghostObject->getOverlappingPairCache()->getOverlappingPairArray()[i];
+-
++ btCollisionObject* obj0 = static_cast<btCollisionObject*>(collisionPair->m_pProxy0->m_clientObject);
++ btCollisionObject* obj1 = static_cast<btCollisionObject*>(collisionPair->m_pProxy1->m_clientObject);
++
++ if ((obj0 && !obj0->hasContactResponse()) || (obj1 && !obj1->hasContactResponse()))
++ continue;
++
+ if (collisionPair->m_algorithm)
+ collisionPair->m_algorithm->getAllContactManifolds(m_manifoldArray);
+
diff --git a/extern/bullet2/readme.txt b/extern/bullet2/readme.txt
index e537ac26189..343cb104c4d 100644
--- a/extern/bullet2/readme.txt
+++ b/extern/bullet2/readme.txt
@@ -13,3 +13,7 @@ Originally committed in blender svn revision: 45908.
Apply patches/make_id.patch to prevent duplicated define of MAKE_ID macro in blender
side and bullet side.
Sergey
+
+Apply patches/ghost_character.path to prevent characters from colliding with ghost objects.
+Mitchell
+
diff --git a/extern/bullet2/src/BulletDynamics/Character/btKinematicCharacterController.cpp b/extern/bullet2/src/BulletDynamics/Character/btKinematicCharacterController.cpp
index f733dc0cd22..5fd4ee28511 100644
--- a/extern/bullet2/src/BulletDynamics/Character/btKinematicCharacterController.cpp
+++ b/extern/bullet2/src/BulletDynamics/Character/btKinematicCharacterController.cpp
@@ -77,6 +77,9 @@ public:
if (convexResult.m_hitCollisionObject == m_me)
return btScalar(1.0);
+ if (!convexResult.m_hitCollisionObject->hasContactResponse())
+ return btScalar(1.0);
+
btVector3 hitNormalWorld;
if (normalInWorldSpace)
{
@@ -173,7 +176,12 @@ bool btKinematicCharacterController::recoverFromPenetration ( btCollisionWorld*
m_manifoldArray.resize(0);
btBroadphasePair* collisionPair = &m_ghostObject->getOverlappingPairCache()->getOverlappingPairArray()[i];
-
+ btCollisionObject* obj0 = static_cast<btCollisionObject*>(collisionPair->m_pProxy0->m_clientObject);
+ btCollisionObject* obj1 = static_cast<btCollisionObject*>(collisionPair->m_pProxy1->m_clientObject);
+
+ if ((obj0 && !obj0->hasContactResponse()) || (obj1 && !obj1->hasContactResponse()))
+ continue;
+
if (collisionPair->m_algorithm)
collisionPair->m_algorithm->getAllContactManifolds(m_manifoldArray);
diff --git a/extern/carve/CMakeLists.txt b/extern/carve/CMakeLists.txt
index 3916047ff32..5e917ac1e44 100644
--- a/extern/carve/CMakeLists.txt
+++ b/extern/carve/CMakeLists.txt
@@ -158,7 +158,7 @@ if(WITH_BOOST)
-DCARVE_SYSTEM_BOOST
)
- list(APPEND INC
+ list(APPEND INC_SYS
${BOOST_INCLUDE_DIR}
)
endif()
diff --git a/extern/carve/include/carve/csg.hpp b/extern/carve/include/carve/csg.hpp
index db32273a33c..b098cd86cef 100644
--- a/extern/carve/include/carve/csg.hpp
+++ b/extern/carve/include/carve/csg.hpp
@@ -174,34 +174,34 @@ namespace carve {
void groupIntersections();
- void _generateVertexVertexIntersections(carve::mesh::MeshSet<3>::vertex_t *va,
- carve::mesh::MeshSet<3>::edge_t *eb);
- void generateVertexVertexIntersections(carve::mesh::MeshSet<3>::face_t *a,
- const std::vector<carve::mesh::MeshSet<3>::face_t *> &b);
-
- void _generateVertexEdgeIntersections(carve::mesh::MeshSet<3>::vertex_t *va,
- carve::mesh::MeshSet<3>::edge_t *eb);
- void generateVertexEdgeIntersections(carve::mesh::MeshSet<3>::face_t *a,
- const std::vector<carve::mesh::MeshSet<3>::face_t *> &b);
-
- void _generateEdgeEdgeIntersections(carve::mesh::MeshSet<3>::edge_t *ea,
- carve::mesh::MeshSet<3>::edge_t *eb);
- void generateEdgeEdgeIntersections(carve::mesh::MeshSet<3>::face_t *a,
- const std::vector<carve::mesh::MeshSet<3>::face_t *> &b);
-
- void _generateVertexFaceIntersections(carve::mesh::MeshSet<3>::face_t *fa,
- carve::mesh::MeshSet<3>::edge_t *eb);
- void generateVertexFaceIntersections(carve::mesh::MeshSet<3>::face_t *a,
- const std::vector<carve::mesh::MeshSet<3>::face_t *> &b);
-
- void _generateEdgeFaceIntersections(carve::mesh::MeshSet<3>::face_t *fa,
- carve::mesh::MeshSet<3>::edge_t *eb);
- void generateEdgeFaceIntersections(carve::mesh::MeshSet<3>::face_t *a,
- const std::vector<carve::mesh::MeshSet<3>::face_t *> &b);
-
- void generateIntersectionCandidates(carve::mesh::MeshSet<3> *a,
+ void _generateVertexVertexIntersections(meshset_t::vertex_t *va,
+ meshset_t::edge_t *eb);
+ void generateVertexVertexIntersections(meshset_t::face_t *a,
+ const std::vector<meshset_t::face_t *> &b);
+
+ void _generateVertexEdgeIntersections(meshset_t::vertex_t *va,
+ meshset_t::edge_t *eb);
+ void generateVertexEdgeIntersections(meshset_t::face_t *a,
+ const std::vector<meshset_t::face_t *> &b);
+
+ void _generateEdgeEdgeIntersections(meshset_t::edge_t *ea,
+ meshset_t::edge_t *eb);
+ void generateEdgeEdgeIntersections(meshset_t::face_t *a,
+ const std::vector<meshset_t::face_t *> &b);
+
+ void _generateVertexFaceIntersections(meshset_t::face_t *fa,
+ meshset_t::edge_t *eb);
+ void generateVertexFaceIntersections(meshset_t::face_t *a,
+ const std::vector<meshset_t::face_t *> &b);
+
+ void _generateEdgeFaceIntersections(meshset_t::face_t *fa,
+ meshset_t::edge_t *eb);
+ void generateEdgeFaceIntersections(meshset_t::face_t *a,
+ const std::vector<meshset_t::face_t *> &b);
+
+ void generateIntersectionCandidates(meshset_t *a,
const face_rtree_t *a_node,
- carve::mesh::MeshSet<3> *b,
+ meshset_t *b,
const face_rtree_t *b_node,
face_pairs_t &face_pairs,
bool descend_a = true);
@@ -287,7 +287,7 @@ namespace carve {
* @param[out] out_loops A list of grouped face loops.
*/
void groupFaceLoops(
- carve::mesh::MeshSet<3> *src,
+ meshset_t *src,
FaceLoopList &face_loops,
const detail::LoopEdges &loop_edges,
const V2Set &no_cross,
diff --git a/extern/carve/include/carve/polyline_decl.hpp b/extern/carve/include/carve/polyline_decl.hpp
index a29c56656ff..5934dd25a34 100644
--- a/extern/carve/include/carve/polyline_decl.hpp
+++ b/extern/carve/include/carve/polyline_decl.hpp
@@ -138,6 +138,11 @@ namespace carve {
PolylineSet(const std::vector<carve::geom3d::Vector> &points);
PolylineSet() {
}
+ ~PolylineSet() {
+ for (line_iter i = lines.begin(); i != lines.end(); ++i) {
+ delete *i;
+ }
+ }
template<typename iter_t>
void addPolyline(bool closed, iter_t begin, iter_t end);
diff --git a/extern/carve/include/carve/rtree.hpp b/extern/carve/include/carve/rtree.hpp
index 77f93c14e08..65d46e5a48d 100644
--- a/extern/carve/include/carve/rtree.hpp
+++ b/extern/carve/include/carve/rtree.hpp
@@ -49,8 +49,6 @@ namespace carve {
aabb_t getAABB() const { return bbox; }
-
-
struct data_aabb_t {
aabb_t bbox;
data_t data;
@@ -164,6 +162,17 @@ namespace carve {
_fill(begin, end, typename std::iterator_traits<iter_t>::value_type());
}
+ ~RTreeNode() {
+ if (child) {
+ RTreeNode *next = child;
+ while (next) {
+ RTreeNode *curr = next;
+ next = next->sibling;
+ delete curr;
+ }
+ }
+ }
+
// functor for ordering nodes by increasing aabb midpoint, along a specified axis.
diff --git a/extern/carve/lib/csg_data.hpp b/extern/carve/lib/csg_data.hpp
index 085d05ce8d5..e4a20825e79 100644
--- a/extern/carve/lib/csg_data.hpp
+++ b/extern/carve/lib/csg_data.hpp
@@ -30,7 +30,7 @@ struct carve::csg::detail::Data {
VVMap vmap;
// map from intersected edge to intersection points.
- EVSMap emap;
+ EIntMap emap;
// map from intersected face to intersection points.
FVSMap fmap;
@@ -39,7 +39,7 @@ struct carve::csg::detail::Data {
VFSMap fmap_rev;
// created by divideEdges().
- // holds, for each edge, a
+ // holds, for each edge, an ordered vector of inserted vertices.
EVVMap divided_edges;
// created by faceSplitEdges.
diff --git a/extern/carve/lib/csg_detail.hpp b/extern/carve/lib/csg_detail.hpp
index 4b8fca3d2d2..e5947e776b5 100644
--- a/extern/carve/lib/csg_detail.hpp
+++ b/extern/carve/lib/csg_detail.hpp
@@ -24,30 +24,32 @@
namespace carve {
namespace csg {
namespace detail {
+ typedef std::map<carve::mesh::MeshSet<3>::vertex_t *,
+ std::set<std::pair<carve::mesh::MeshSet<3>::face_t *, double> > > EdgeIntInfo;
- typedef std::unordered_set<carve::mesh::MeshSet<3>::vertex_t *> VSet;
- typedef std::unordered_set<carve::mesh::MeshSet<3>::face_t *> FSet;
+ typedef std::unordered_set<carve::mesh::MeshSet<3>::vertex_t *> VSet;
+ typedef std::unordered_set<carve::mesh::MeshSet<3>::face_t *> FSet;
- typedef std::set<carve::mesh::MeshSet<3>::vertex_t *> VSetSmall;
- typedef std::set<csg::V2> V2SetSmall;
- typedef std::set<carve::mesh::MeshSet<3>::face_t *> FSetSmall;
+ typedef std::set<carve::mesh::MeshSet<3>::vertex_t *> VSetSmall;
+ typedef std::set<csg::V2> V2SetSmall;
+ typedef std::set<carve::mesh::MeshSet<3>::face_t *> FSetSmall;
- typedef std::unordered_map<carve::mesh::MeshSet<3>::vertex_t *, VSetSmall> VVSMap;
- typedef std::unordered_map<carve::mesh::MeshSet<3>::edge_t *, VSetSmall> EVSMap;
- typedef std::unordered_map<carve::mesh::MeshSet<3>::face_t *, VSetSmall> FVSMap;
+ typedef std::unordered_map<carve::mesh::MeshSet<3>::vertex_t *, VSetSmall> VVSMap;
+ typedef std::unordered_map<carve::mesh::MeshSet<3>::edge_t *, EdgeIntInfo> EIntMap;
+ typedef std::unordered_map<carve::mesh::MeshSet<3>::face_t *, VSetSmall> FVSMap;
- typedef std::unordered_map<carve::mesh::MeshSet<3>::vertex_t *, FSetSmall> VFSMap;
- typedef std::unordered_map<carve::mesh::MeshSet<3>::face_t *, V2SetSmall> FV2SMap;
+ typedef std::unordered_map<carve::mesh::MeshSet<3>::vertex_t *, FSetSmall> VFSMap;
+ typedef std::unordered_map<carve::mesh::MeshSet<3>::face_t *, V2SetSmall> FV2SMap;
- typedef std::unordered_map<
- carve::mesh::MeshSet<3>::edge_t *,
- std::vector<carve::mesh::MeshSet<3>::vertex_t *> > EVVMap;
+ typedef std::unordered_map<
+ carve::mesh::MeshSet<3>::edge_t *,
+ std::vector<carve::mesh::MeshSet<3>::vertex_t *> > EVVMap;
typedef std::unordered_map<carve::mesh::MeshSet<3>::vertex_t *,
std::vector<carve::mesh::MeshSet<3>::edge_t *> > VEVecMap;
- class LoopEdges : public std::unordered_map<V2, std::list<FaceLoop *> > {
+ class LoopEdges : public std::unordered_map<V2, std::list<FaceLoop *> > {
typedef std::unordered_map<V2, std::list<FaceLoop *> > super;
public:
diff --git a/extern/carve/lib/intersect.cpp b/extern/carve/lib/intersect.cpp
index 2063164de08..b92dbcfe24c 100644
--- a/extern/carve/lib/intersect.cpp
+++ b/extern/carve/lib/intersect.cpp
@@ -41,6 +41,7 @@
#include <carve/timing.hpp>
#include <carve/colour.hpp>
+#include <memory>
@@ -114,7 +115,7 @@ namespace {
ordered_vertices.reserve(std::distance(beg, end));
for (; beg != end; ++beg) {
- carve::mesh::MeshSet<3>::vertex_t *v = (*beg);
+ carve::mesh::MeshSet<3>::vertex_t *v = *beg;
ordered_vertices.push_back(std::make_pair(carve::geom::dot(v->v - base, dir), v));
}
@@ -130,6 +131,37 @@ namespace {
}
}
+ template<typename iter_t>
+ void orderEdgeIntersectionVertices(iter_t beg, const iter_t end,
+ const carve::mesh::MeshSet<3>::vertex_t::vector_t &dir,
+ const carve::mesh::MeshSet<3>::vertex_t::vector_t &base,
+ std::vector<carve::mesh::MeshSet<3>::vertex_t *> &out) {
+ typedef std::vector<std::pair<std::pair<double, double>, carve::mesh::MeshSet<3>::vertex_t *> > DVVector;
+ DVVector ordered_vertices;
+
+ ordered_vertices.reserve(std::distance(beg, end));
+
+ for (; beg != end; ++beg) {
+ carve::mesh::MeshSet<3>::vertex_t *v = (*beg).first;
+ double ovec = 0.0;
+ for (carve::csg::detail::EdgeIntInfo::mapped_type::const_iterator j = (*beg).second.begin(); j != (*beg).second.end(); ++j) {
+ ovec += (*j).second;
+ }
+ ordered_vertices.push_back(std::make_pair(std::make_pair(carve::geom::dot(v->v - base, dir), -ovec), v));
+ }
+
+ std::sort(ordered_vertices.begin(), ordered_vertices.end());
+
+ out.clear();
+ out.reserve(ordered_vertices.size());
+ for (DVVector::const_iterator
+ i = ordered_vertices.begin(), e = ordered_vertices.end();
+ i != e;
+ ++i) {
+ out.push_back((*i).second);
+ }
+ }
+
/**
@@ -346,7 +378,7 @@ bool carve::csg::CSG::Hooks::hasHook(unsigned hook_num) {
return hooks[hook_num].size() > 0;
}
-void carve::csg::CSG::Hooks::intersectionVertex(const carve::mesh::MeshSet<3>::vertex_t *vertex,
+void carve::csg::CSG::Hooks::intersectionVertex(const meshset_t::vertex_t *vertex,
const IObjPairSet &intersections) {
for (std::list<Hook *>::iterator j = hooks[INTERSECTION_VERTEX_HOOK].begin();
j != hooks[INTERSECTION_VERTEX_HOOK].end();
@@ -355,8 +387,8 @@ void carve::csg::CSG::Hooks::intersectionVertex(const carve::mesh::MeshSet<3>::v
}
}
-void carve::csg::CSG::Hooks::processOutputFace(std::vector<carve::mesh::MeshSet<3>::face_t *> &faces,
- const carve::mesh::MeshSet<3>::face_t *orig_face,
+void carve::csg::CSG::Hooks::processOutputFace(std::vector<meshset_t::face_t *> &faces,
+ const meshset_t::face_t *orig_face,
bool flipped) {
for (std::list<Hook *>::iterator j = hooks[PROCESS_OUTPUT_FACE_HOOK].begin();
j != hooks[PROCESS_OUTPUT_FACE_HOOK].end();
@@ -365,8 +397,8 @@ void carve::csg::CSG::Hooks::processOutputFace(std::vector<carve::mesh::MeshSet<
}
}
-void carve::csg::CSG::Hooks::resultFace(const carve::mesh::MeshSet<3>::face_t *new_face,
- const carve::mesh::MeshSet<3>::face_t *orig_face,
+void carve::csg::CSG::Hooks::resultFace(const meshset_t::face_t *new_face,
+ const meshset_t::face_t *orig_face,
bool flipped) {
for (std::list<Hook *>::iterator j = hooks[RESULT_FACE_HOOK].begin();
j != hooks[RESULT_FACE_HOOK].end();
@@ -425,7 +457,7 @@ void carve::csg::CSG::makeVertexIntersections() {
j != je;
++j) {
const IObj &i_tgt = ((*j).first);
- carve::mesh::MeshSet<3>::vertex_t *i_pt = ((*j).second);
+ meshset_t::vertex_t *i_pt = ((*j).second);
vertex_intersections[i_pt].insert(std::make_pair(i_src, i_tgt));
}
@@ -499,7 +531,7 @@ void carve::csg::CSG::groupIntersections() {
carve::TimingBlock block(GROUP_INTERSECTONS);
- std::vector<carve::mesh::MeshSet<3>::vertex_t *> vertices;
+ std::vector<meshset_t::vertex_t *> vertices;
detail::VVSMap graph;
#if defined(CARVE_DEBUG)
std::cerr << "groupIntersections()" << ": vertex_intersections.size()==" << vertex_intersections.size() << std::endl;
@@ -521,7 +553,7 @@ void carve::csg::CSG::groupIntersections() {
vertex_intersections_octree.addVertices(vertices);
- std::vector<carve::mesh::MeshSet<3>::vertex_t *> out;
+ std::vector<meshset_t::vertex_t *> out;
for (size_t i = 0, l = vertices.size(); i != l; ++i) {
// let's find all the vertices near this one.
out.clear();
@@ -546,7 +578,7 @@ void carve::csg::CSG::groupIntersections() {
open.insert((*i).first);
while (open.size()) {
detail::VSet::iterator t = open.begin();
- const carve::mesh::MeshSet<3>::vertex_t *o = (*t);
+ const meshset_t::vertex_t *o = (*t);
open.erase(t);
i = graph.find(o);
CARVE_ASSERT(i != graph.end());
@@ -568,6 +600,19 @@ void carve::csg::CSG::groupIntersections() {
}
+static void recordEdgeIntersectionInfo(carve::mesh::MeshSet<3>::vertex_t *intersection,
+ carve::mesh::MeshSet<3>::edge_t *edge,
+ const carve::csg::detail::VFSMap::mapped_type &intersected_faces,
+ carve::csg::detail::Data &data) {
+ carve::mesh::MeshSet<3>::vertex_t::vector_t edge_dir = edge->v2()->v - edge->v1()->v;
+ carve::csg::detail::EdgeIntInfo::mapped_type &eint_info = data.emap[edge][intersection];
+
+ for (carve::csg::detail::VFSMap::mapped_type::const_iterator i = intersected_faces.begin(); i != intersected_faces.end(); ++i) {
+ carve::mesh::MeshSet<3>::vertex_t::vector_t normal = (*i)->plane.N;
+ eint_info.insert(std::make_pair((*i), carve::geom::dot(edge_dir, normal)));
+ }
+}
+
void carve::csg::CSG::intersectingFacePairs(detail::Data &data) {
static carve::TimingName FUNC_NAME("CSG::intersectingFacePairs()");
@@ -575,30 +620,36 @@ void carve::csg::CSG::intersectingFacePairs(detail::Data &data) {
// iterate over all intersection points.
for (VertexIntersections::const_iterator i = vertex_intersections.begin(), ie = vertex_intersections.end(); i != ie; ++i) {
- carve::mesh::MeshSet<3>::vertex_t *i_pt = ((*i).first);
+ meshset_t::vertex_t *i_pt = ((*i).first);
detail::VFSMap::mapped_type &face_set = (data.fmap_rev[i_pt]);
-
+ detail::VFSMap::mapped_type src_face_set;
+ detail::VFSMap::mapped_type tgt_face_set;
// for all pairs of intersecting objects at this point
for (VertexIntersections::data_type::const_iterator j = (*i).second.begin(), je = (*i).second.end(); j != je; ++j) {
const IObj &i_src = ((*j).first);
const IObj &i_tgt = ((*j).second);
- // work out the faces involved. this updates fmap_rev.
- facesForObject(i_src, data.vert_to_edges, face_set);
- facesForObject(i_tgt, data.vert_to_edges, face_set);
+ src_face_set.clear();
+ tgt_face_set.clear();
+ // work out the faces involved.
+ facesForObject(i_src, data.vert_to_edges, src_face_set);
+ facesForObject(i_tgt, data.vert_to_edges, tgt_face_set);
+ // this updates fmap_rev.
+ std::copy(src_face_set.begin(), src_face_set.end(), set_inserter(face_set));
+ std::copy(tgt_face_set.begin(), tgt_face_set.end(), set_inserter(face_set));
// record the intersection with respect to any involved vertex.
if (i_src.obtype == IObj::OBTYPE_VERTEX) data.vmap[i_src.vertex] = i_pt;
if (i_tgt.obtype == IObj::OBTYPE_VERTEX) data.vmap[i_tgt.vertex] = i_pt;
// record the intersection with respect to any involved edge.
- if (i_src.obtype == IObj::OBTYPE_EDGE) data.emap[i_src.edge].insert(i_pt);
- if (i_tgt.obtype == IObj::OBTYPE_EDGE) data.emap[i_tgt.edge].insert(i_pt);
+ if (i_src.obtype == IObj::OBTYPE_EDGE) recordEdgeIntersectionInfo(i_pt, i_src.edge, tgt_face_set, data);
+ if (i_tgt.obtype == IObj::OBTYPE_EDGE) recordEdgeIntersectionInfo(i_pt, i_tgt.edge, src_face_set, data);
}
// record the intersection with respect to each face.
for (carve::csg::detail::VFSMap::mapped_type::const_iterator k = face_set.begin(), ke = face_set.end(); k != ke; ++k) {
- carve::mesh::MeshSet<3>::face_t *f = (*k);
+ meshset_t::face_t *f = (*k);
data.fmap[f].insert(i_pt);
}
}
@@ -606,8 +657,8 @@ void carve::csg::CSG::intersectingFacePairs(detail::Data &data) {
-void carve::csg::CSG::_generateVertexVertexIntersections(carve::mesh::MeshSet<3>::vertex_t *va,
- carve::mesh::MeshSet<3>::edge_t *eb) {
+void carve::csg::CSG::_generateVertexVertexIntersections(meshset_t::vertex_t *va,
+ meshset_t::edge_t *eb) {
if (intersections.intersects(va, eb->v1())) {
return;
}
@@ -621,14 +672,14 @@ void carve::csg::CSG::_generateVertexVertexIntersections(carve::mesh::MeshSet<3>
-void carve::csg::CSG::generateVertexVertexIntersections(carve::mesh::MeshSet<3>::face_t *a,
- const std::vector<carve::mesh::MeshSet<3>::face_t *> &b) {
- carve::mesh::MeshSet<3>::edge_t *ea, *eb;
+void carve::csg::CSG::generateVertexVertexIntersections(meshset_t::face_t *a,
+ const std::vector<meshset_t::face_t *> &b) {
+ meshset_t::edge_t *ea, *eb;
ea = a->edge;
do {
for (size_t i = 0; i < b.size(); ++i) {
- carve::mesh::MeshSet<3>::face_t *t = b[i];
+ meshset_t::face_t *t = b[i];
eb = t->edge;
do {
_generateVertexVertexIntersections(ea->v1(), eb);
@@ -641,8 +692,8 @@ void carve::csg::CSG::generateVertexVertexIntersections(carve::mesh::MeshSet<3>:
-void carve::csg::CSG::_generateVertexEdgeIntersections(carve::mesh::MeshSet<3>::vertex_t *va,
- carve::mesh::MeshSet<3>::edge_t *eb) {
+void carve::csg::CSG::_generateVertexEdgeIntersections(meshset_t::vertex_t *va,
+ meshset_t::edge_t *eb) {
if (intersections.intersects(va, eb)) {
return;
}
@@ -665,14 +716,14 @@ void carve::csg::CSG::_generateVertexEdgeIntersections(carve::mesh::MeshSet<3>::
-void carve::csg::CSG::generateVertexEdgeIntersections(carve::mesh::MeshSet<3>::face_t *a,
- const std::vector<carve::mesh::MeshSet<3>::face_t *> &b) {
- carve::mesh::MeshSet<3>::edge_t *ea, *eb;
+void carve::csg::CSG::generateVertexEdgeIntersections(meshset_t::face_t *a,
+ const std::vector<meshset_t::face_t *> &b) {
+ meshset_t::edge_t *ea, *eb;
ea = a->edge;
do {
for (size_t i = 0; i < b.size(); ++i) {
- carve::mesh::MeshSet<3>::face_t *t = b[i];
+ meshset_t::face_t *t = b[i];
eb = t->edge;
do {
_generateVertexEdgeIntersections(ea->v1(), eb);
@@ -685,21 +736,21 @@ void carve::csg::CSG::generateVertexEdgeIntersections(carve::mesh::MeshSet<3>::f
-void carve::csg::CSG::_generateEdgeEdgeIntersections(carve::mesh::MeshSet<3>::edge_t *ea,
- carve::mesh::MeshSet<3>::edge_t *eb) {
+void carve::csg::CSG::_generateEdgeEdgeIntersections(meshset_t::edge_t *ea,
+ meshset_t::edge_t *eb) {
if (intersections.intersects(ea, eb)) {
return;
}
- carve::mesh::MeshSet<3>::vertex_t *v1 = ea->v1(), *v2 = ea->v2();
- carve::mesh::MeshSet<3>::vertex_t *v3 = eb->v1(), *v4 = eb->v2();
+ meshset_t::vertex_t *v1 = ea->v1(), *v2 = ea->v2();
+ meshset_t::vertex_t *v3 = eb->v1(), *v4 = eb->v2();
carve::geom::aabb<3> ea_aabb, eb_aabb;
ea_aabb.fit(v1->v, v2->v);
eb_aabb.fit(v3->v, v4->v);
if (ea_aabb.maxAxisSeparation(eb_aabb) > EPSILON) return;
- carve::mesh::MeshSet<3>::vertex_t::vector_t p1, p2;
+ meshset_t::vertex_t::vector_t p1, p2;
double mu1, mu2;
switch (carve::geom3d::rayRayIntersection(carve::geom3d::Ray(v2->v - v1->v, v1->v),
@@ -708,7 +759,7 @@ void carve::csg::CSG::_generateEdgeEdgeIntersections(carve::mesh::MeshSet<3>::ed
case carve::RR_INTERSECTION: {
// edges intersect
if (mu1 >= 0.0 && mu1 <= 1.0 && mu2 >= 0.0 && mu2 <= 1.0) {
- carve::mesh::MeshSet<3>::vertex_t *p = vertex_pool.get((p1 + p2) / 2.0);
+ meshset_t::vertex_t *p = vertex_pool.get((p1 + p2) / 2.0);
intersections.record(ea, eb, p);
if (ea->rev) intersections.record(ea->rev, eb, p);
if (eb->rev) intersections.record(ea, eb->rev, p);
@@ -733,14 +784,14 @@ void carve::csg::CSG::_generateEdgeEdgeIntersections(carve::mesh::MeshSet<3>::ed
-void carve::csg::CSG::generateEdgeEdgeIntersections(carve::mesh::MeshSet<3>::face_t *a,
- const std::vector<carve::mesh::MeshSet<3>::face_t *> &b) {
- carve::mesh::MeshSet<3>::edge_t *ea, *eb;
+void carve::csg::CSG::generateEdgeEdgeIntersections(meshset_t::face_t *a,
+ const std::vector<meshset_t::face_t *> &b) {
+ meshset_t::edge_t *ea, *eb;
ea = a->edge;
do {
for (size_t i = 0; i < b.size(); ++i) {
- carve::mesh::MeshSet<3>::face_t *t = b[i];
+ meshset_t::face_t *t = b[i];
eb = t->edge;
do {
_generateEdgeEdgeIntersections(ea, eb);
@@ -753,8 +804,8 @@ void carve::csg::CSG::generateEdgeEdgeIntersections(carve::mesh::MeshSet<3>::fac
-void carve::csg::CSG::_generateVertexFaceIntersections(carve::mesh::MeshSet<3>::face_t *fa,
- carve::mesh::MeshSet<3>::edge_t *eb) {
+void carve::csg::CSG::_generateVertexFaceIntersections(meshset_t::face_t *fa,
+ meshset_t::edge_t *eb) {
if (intersections.intersects(eb->v1(), fa)) {
return;
}
@@ -769,12 +820,12 @@ void carve::csg::CSG::_generateVertexFaceIntersections(carve::mesh::MeshSet<3>::
-void carve::csg::CSG::generateVertexFaceIntersections(carve::mesh::MeshSet<3>::face_t *a,
- const std::vector<carve::mesh::MeshSet<3>::face_t *> &b) {
- carve::mesh::MeshSet<3>::edge_t *ea, *eb;
+void carve::csg::CSG::generateVertexFaceIntersections(meshset_t::face_t *a,
+ const std::vector<meshset_t::face_t *> &b) {
+ meshset_t::edge_t *eb;
for (size_t i = 0; i < b.size(); ++i) {
- carve::mesh::MeshSet<3>::face_t *t = b[i];
+ meshset_t::face_t *t = b[i];
eb = t->edge;
do {
_generateVertexFaceIntersections(a, eb);
@@ -785,15 +836,15 @@ void carve::csg::CSG::generateVertexFaceIntersections(carve::mesh::MeshSet<3>::f
-void carve::csg::CSG::_generateEdgeFaceIntersections(carve::mesh::MeshSet<3>::face_t *fa,
- carve::mesh::MeshSet<3>::edge_t *eb) {
+void carve::csg::CSG::_generateEdgeFaceIntersections(meshset_t::face_t *fa,
+ meshset_t::edge_t *eb) {
if (intersections.intersects(eb, fa)) {
return;
}
- carve::mesh::MeshSet<3>::vertex_t::vector_t _p;
+ meshset_t::vertex_t::vector_t _p;
if (fa->simpleLineSegmentIntersection(carve::geom3d::LineSegment(eb->v1()->v, eb->v2()->v), _p)) {
- carve::mesh::MeshSet<3>::vertex_t *p = vertex_pool.get(_p);
+ meshset_t::vertex_t *p = vertex_pool.get(_p);
intersections.record(eb, fa, p);
if (eb->rev) intersections.record(eb->rev, fa, p);
}
@@ -801,12 +852,12 @@ void carve::csg::CSG::_generateEdgeFaceIntersections(carve::mesh::MeshSet<3>::fa
-void carve::csg::CSG::generateEdgeFaceIntersections(carve::mesh::MeshSet<3>::face_t *a,
- const std::vector<carve::mesh::MeshSet<3>::face_t *> &b) {
- carve::mesh::MeshSet<3>::edge_t *ea, *eb;
+void carve::csg::CSG::generateEdgeFaceIntersections(meshset_t::face_t *a,
+ const std::vector<meshset_t::face_t *> &b) {
+ meshset_t::edge_t *eb;
for (size_t i = 0; i < b.size(); ++i) {
- carve::mesh::MeshSet<3>::face_t *t = b[i];
+ meshset_t::face_t *t = b[i];
eb = t->edge;
do {
_generateEdgeFaceIntersections(a, eb);
@@ -817,9 +868,9 @@ void carve::csg::CSG::generateEdgeFaceIntersections(carve::mesh::MeshSet<3>::fac
-void carve::csg::CSG::generateIntersectionCandidates(carve::mesh::MeshSet<3> *a,
+void carve::csg::CSG::generateIntersectionCandidates(meshset_t *a,
const face_rtree_t *a_node,
- carve::mesh::MeshSet<3> *b,
+ meshset_t *b,
const face_rtree_t *b_node,
face_pairs_t &face_pairs,
bool descend_a) {
@@ -837,12 +888,12 @@ void carve::csg::CSG::generateIntersectionCandidates(carve::mesh::MeshSet<3> *a,
}
} else {
for (size_t i = 0; i < a_node->data.size(); ++i) {
- carve::mesh::MeshSet<3>::face_t *fa = a_node->data[i];
+ meshset_t::face_t *fa = a_node->data[i];
carve::geom::aabb<3> aabb_a = fa->getAABB();
if (aabb_a.maxAxisSeparation(b_node->bbox) > carve::EPSILON) continue;
for (size_t j = 0; j < b_node->data.size(); ++j) {
- carve::mesh::MeshSet<3>::face_t *fb = b_node->data[j];
+ meshset_t::face_t *fb = b_node->data[j];
carve::geom::aabb<3> aabb_b = fb->getAABB();
if (aabb_b.maxAxisSeparation(aabb_a) > carve::EPSILON) continue;
@@ -866,17 +917,17 @@ void carve::csg::CSG::generateIntersectionCandidates(carve::mesh::MeshSet<3> *a,
-void carve::csg::CSG::generateIntersections(carve::mesh::MeshSet<3> *a,
+void carve::csg::CSG::generateIntersections(meshset_t *a,
const face_rtree_t *a_rtree,
- carve::mesh::MeshSet<3> *b,
+ meshset_t *b,
const face_rtree_t *b_rtree,
detail::Data &data) {
face_pairs_t face_pairs;
generateIntersectionCandidates(a, a_rtree, b, b_rtree, face_pairs);
for (face_pairs_t::const_iterator i = face_pairs.begin(); i != face_pairs.end(); ++i) {
- carve::mesh::MeshSet<3>::face_t *f = (*i).first;
- carve::mesh::MeshSet<3>::edge_t *e = f->edge;
+ meshset_t::face_t *f = (*i).first;
+ meshset_t::edge_t *e = f->edge;
do {
data.vert_to_edges[e->v1()].push_back(e);
e = e->next;
@@ -958,13 +1009,13 @@ void carve::csg::CSG::divideIntersectedEdges(detail::Data &data) {
static carve::TimingName FUNC_NAME("CSG::divideIntersectedEdges()");
carve::TimingBlock block(FUNC_NAME);
- for (detail::EVSMap::const_iterator i = data.emap.begin(), ei = data.emap.end(); i != ei; ++i) {
- carve::mesh::MeshSet<3>::edge_t *edge = (*i).first;
- const detail::EVSMap::mapped_type &vertices = (*i).second;
- std::vector<carve::mesh::MeshSet<3>::vertex_t *> &verts = data.divided_edges[edge];
- orderVertices(vertices.begin(), vertices.end(),
- edge->v2()->v - edge->v1()->v, edge->v1()->v,
- verts);
+ for (detail::EIntMap::const_iterator i = data.emap.begin(), ei = data.emap.end(); i != ei; ++i) {
+ meshset_t::edge_t *edge = (*i).first;
+ const detail::EIntMap::mapped_type &int_info = (*i).second;
+ std::vector<meshset_t::vertex_t *> &verts = data.divided_edges[edge];
+ orderEdgeIntersectionVertices(int_info.begin(), int_info.end(),
+ edge->v2()->v - edge->v1()->v, edge->v1()->v,
+ verts);
}
}
@@ -982,7 +1033,7 @@ void carve::csg::CSG::makeFaceEdges(carve::csg::EdgeClassification &eclass,
i = data.fmap.begin(), ie = data.fmap.end();
i != ie;
++i) {
- carve::mesh::MeshSet<3>::face_t *face_a = (*i).first;
+ meshset_t::face_t *face_a = (*i).first;
const detail::FVSMap::mapped_type &face_a_intersections = ((*i).second);
face_b_set.clear();
@@ -995,7 +1046,7 @@ void carve::csg::CSG::makeFaceEdges(carve::csg::EdgeClassification &eclass,
k = data.fmap_rev[*j].begin(), ke = data.fmap_rev[*j].end();
k != ke;
++k) {
- carve::mesh::MeshSet<3>::face_t *face_b = (*k);
+ meshset_t::face_t *face_b = (*k);
if (face_a != face_b && face_b->mesh->meshset != face_a->mesh->meshset) {
face_b_set.insert(face_b);
}
@@ -1007,10 +1058,10 @@ void carve::csg::CSG::makeFaceEdges(carve::csg::EdgeClassification &eclass,
j = face_b_set.begin(), je = face_b_set.end();
j != je;
++j) {
- carve::mesh::MeshSet<3>::face_t *face_b = (*j);
+ meshset_t::face_t *face_b = (*j);
const detail::FVSMap::mapped_type &face_b_intersections = (data.fmap[face_b]);
- std::vector<carve::mesh::MeshSet<3>::vertex_t *> vertices;
+ std::vector<meshset_t::vertex_t *> vertices;
vertices.reserve(std::min(face_a_intersections.size(), face_b_intersections.size()));
// record the points of intersection between face_a and face_b
@@ -1024,7 +1075,7 @@ void carve::csg::CSG::makeFaceEdges(carve::csg::EdgeClassification &eclass,
std::cerr << "face pair: "
<< face_a << ":" << face_b
<< " N(verts) " << vertices.size() << std::endl;
- for (std::vector<carve::mesh::MeshSet<3>::vertex_t *>::const_iterator i = vertices.begin(), e = vertices.end(); i != e; ++i) {
+ for (std::vector<meshset_t::vertex_t *>::const_iterator i = vertices.begin(), e = vertices.end(); i != e; ++i) {
std::cerr << (*i) << " " << (*i)->v << " ("
<< carve::geom::distance(face_a->plane, (*i)->v) << ","
<< carve::geom::distance(face_b->plane, (*i)->v) << ")"
@@ -1036,8 +1087,8 @@ void carve::csg::CSG::makeFaceEdges(carve::csg::EdgeClassification &eclass,
// if there are two points of intersection, then the added edge is simple to determine.
if (vertices.size() == 2) {
- carve::mesh::MeshSet<3>::vertex_t *v1 = vertices[0];
- carve::mesh::MeshSet<3>::vertex_t *v2 = vertices[1];
+ meshset_t::vertex_t *v1 = vertices[0];
+ meshset_t::vertex_t *v2 = vertices[1];
carve::geom3d::Vector c = (v1->v + v2->v) / 2;
// determine whether the midpoint of the implied edge is contained in face_a and face_b
@@ -1065,7 +1116,7 @@ void carve::csg::CSG::makeFaceEdges(carve::csg::EdgeClassification &eclass,
// otherwise, it's more complex.
carve::geom3d::Vector base, dir;
- std::vector<carve::mesh::MeshSet<3>::vertex_t *> ordered;
+ std::vector<meshset_t::vertex_t *> ordered;
// skip coplanar edges. this simplifies the resulting
// mesh. eventually all coplanar face regions of two polyhedra
@@ -1080,8 +1131,8 @@ void carve::csg::CSG::makeFaceEdges(carve::csg::EdgeClassification &eclass,
// for each possible edge in the ordering, test the midpoint,
// and record if it's contained in face_a and face_b.
for (int k = 0, ke = (int)ordered.size() - 1; k < ke; ++k) {
- carve::mesh::MeshSet<3>::vertex_t *v1 = ordered[k];
- carve::mesh::MeshSet<3>::vertex_t *v2 = ordered[k + 1];
+ meshset_t::vertex_t *v1 = ordered[k];
+ meshset_t::vertex_t *v2 = ordered[k + 1];
carve::geom3d::Vector c = (v1->v + v2->v) / 2;
#if defined(CARVE_DEBUG)
@@ -1125,7 +1176,7 @@ void carve::csg::CSG::makeFaceEdges(carve::csg::EdgeClassification &eclass,
carve::line::PolylineSet intersection_graph;
intersection_graph.vertices.resize(vertices.size());
- std::map<const carve::mesh::MeshSet<3>::vertex_t *, size_t> vmap;
+ std::map<const meshset_t::vertex_t *, size_t> vmap;
size_t j = 0;
for (detail::VSet::const_iterator i = vertices.begin(); i != vertices.end(); ++i) {
@@ -1195,9 +1246,9 @@ static void checkFaceLoopIntegrity(carve::csg::FaceLoopList &fll) {
* @param b_edge_count
* @param hooks
*/
-void carve::csg::CSG::calc(carve::mesh::MeshSet<3> *a,
+void carve::csg::CSG::calc(meshset_t *a,
const face_rtree_t *a_rtree,
- carve::mesh::MeshSet<3> *b,
+ meshset_t *b,
const face_rtree_t *b_rtree,
carve::csg::VertexClassification &vclass,
carve::csg::EdgeClassification &eclass,
@@ -1260,12 +1311,12 @@ void carve::csg::CSG::calc(carve::mesh::MeshSet<3> *a,
#if defined(CARVE_DEBUG_WRITE_PLY_DATA)
{
- std::string out("/tmp/a_split.ply");
- writePLY(out, faceLoopsToPolyhedron(a_face_loops), false);
+ std::auto_ptr<carve::mesh::MeshSet<3> > poly(faceLoopsToPolyhedron(a_face_loops));
+ writePLY("/tmp/a_split.ply", poly.get(), false);
}
{
- std::string out("/tmp/b_split.ply");
- writePLY(out, faceLoopsToPolyhedron(b_face_loops), false);
+ std::auto_ptr<carve::mesh::MeshSet<3> > poly(faceLoopsToPolyhedron(b_face_loops));
+ writePLY("/tmp/b_split.ply", poly.get(), false);
}
#endif
@@ -1276,11 +1327,11 @@ void carve::csg::CSG::calc(carve::mesh::MeshSet<3> *a,
std::cerr << "classify" << std::endl;
#endif
// initialize some classification information.
- for (std::vector<carve::mesh::MeshSet<3>::vertex_t>::iterator
+ for (std::vector<meshset_t::vertex_t>::iterator
i = a->vertex_storage.begin(), e = a->vertex_storage.end(); i != e; ++i) {
vclass[map_vertex(data.vmap, &(*i))].cls[0] = POINT_ON;
}
- for (std::vector<carve::mesh::MeshSet<3>::vertex_t>::iterator
+ for (std::vector<meshset_t::vertex_t>::iterator
i = b->vertex_storage.begin(), e = b->vertex_storage.end(); i != e; ++i) {
vclass[map_vertex(data.vmap, &(*i))].cls[1] = POINT_ON;
}
@@ -1351,8 +1402,8 @@ void returnSharedEdges(carve::csg::V2Set &shared_edges,
*
* @return
*/
-carve::mesh::MeshSet<3> *carve::csg::CSG::compute(carve::mesh::MeshSet<3> *a,
- carve::mesh::MeshSet<3> *b,
+carve::mesh::MeshSet<3> *carve::csg::CSG::compute(meshset_t *a,
+ meshset_t *b,
carve::csg::CSG::Collector &collector,
carve::csg::V2Set *shared_edges_ptr,
CLASSIFY_TYPE classify_type) {
@@ -1371,13 +1422,13 @@ carve::mesh::MeshSet<3> *carve::csg::CSG::compute(carve::mesh::MeshSet<3> *a,
size_t a_edge_count;
size_t b_edge_count;
- face_rtree_t *a_rtree = face_rtree_t::construct_STR(a->faceBegin(), a->faceEnd(), 4, 4);
- face_rtree_t *b_rtree = face_rtree_t::construct_STR(b->faceBegin(), b->faceEnd(), 4, 4);
+ std::auto_ptr<face_rtree_t> a_rtree(face_rtree_t::construct_STR(a->faceBegin(), a->faceEnd(), 4, 4));
+ std::auto_ptr<face_rtree_t> b_rtree(face_rtree_t::construct_STR(b->faceBegin(), b->faceEnd(), 4, 4));
{
static carve::TimingName FUNC_NAME("CSG::compute - calc()");
carve::TimingBlock block(FUNC_NAME);
- calc(a, a_rtree, b, b_rtree, vclass, eclass,a_face_loops, b_face_loops, a_edge_count, b_edge_count);
+ calc(a, a_rtree.get(), b, b_rtree.get(), vclass, eclass,a_face_loops, b_face_loops, a_edge_count, b_edge_count);
}
detail::LoopEdges a_edge_map;
@@ -1445,11 +1496,11 @@ carve::mesh::MeshSet<3> *carve::csg::CSG::compute(carve::mesh::MeshSet<3> *a,
classifyFaceGroupsEdge(shared_edges,
vclass,
a,
- a_rtree,
+ a_rtree.get(),
a_loops_grouped,
a_edge_map,
b,
- b_rtree,
+ b_rtree.get(),
b_loops_grouped,
b_edge_map,
collector);
@@ -1458,20 +1509,20 @@ carve::mesh::MeshSet<3> *carve::csg::CSG::compute(carve::mesh::MeshSet<3> *a,
classifyFaceGroups(shared_edges,
vclass,
a,
- a_rtree,
+ a_rtree.get(),
a_loops_grouped,
a_edge_map,
b,
- b_rtree,
+ b_rtree.get(),
b_loops_grouped,
b_edge_map,
collector);
break;
}
- carve::mesh::MeshSet<3> *result = collector.done(hooks);
+ meshset_t *result = collector.done(hooks);
if (result != NULL && shared_edges_ptr != NULL) {
- std::list<carve::mesh::MeshSet<3> *> result_list;
+ std::list<meshset_t *> result_list;
result_list.push_back(result);
returnSharedEdges(shared_edges, result_list, shared_edges_ptr);
}
@@ -1492,15 +1543,15 @@ carve::mesh::MeshSet<3> *carve::csg::CSG::compute(carve::mesh::MeshSet<3> *a,
*
* @return
*/
-carve::mesh::MeshSet<3> *carve::csg::CSG::compute(carve::mesh::MeshSet<3> *a,
- carve::mesh::MeshSet<3> *b,
+carve::mesh::MeshSet<3> *carve::csg::CSG::compute(meshset_t *a,
+ meshset_t *b,
carve::csg::CSG::OP op,
carve::csg::V2Set *shared_edges,
CLASSIFY_TYPE classify_type) {
Collector *coll = makeCollector(op, a, b);
if (!coll) return NULL;
- carve::mesh::MeshSet<3> *result = compute(a, b, *coll, shared_edges, classify_type);
+ meshset_t *result = compute(a, b, *coll, shared_edges, classify_type);
delete coll;
@@ -1521,9 +1572,9 @@ carve::mesh::MeshSet<3> *carve::csg::CSG::compute(carve::mesh::MeshSet<3> *a,
*
* @return
*/
-bool carve::csg::CSG::sliceAndClassify(carve::mesh::MeshSet<3> *closed,
- carve::mesh::MeshSet<3> *open,
- std::list<std::pair<FaceClass, carve::mesh::MeshSet<3> *> > &result,
+bool carve::csg::CSG::sliceAndClassify(meshset_t *closed,
+ meshset_t *open,
+ std::list<std::pair<FaceClass, meshset_t *> > &result,
carve::csg::V2Set *shared_edges_ptr) {
if (!closed->isClosed()) return false;
carve::csg::VertexClassification vclass;
@@ -1538,10 +1589,10 @@ bool carve::csg::CSG::sliceAndClassify(carve::mesh::MeshSet<3> *closed,
size_t a_edge_count;
size_t b_edge_count;
- face_rtree_t *closed_rtree = face_rtree_t::construct_STR(closed->faceBegin(), closed->faceEnd(), 4, 4);
- face_rtree_t *open_rtree = face_rtree_t::construct_STR(open->faceBegin(), open->faceEnd(), 4, 4);
+ std::auto_ptr<face_rtree_t> closed_rtree(face_rtree_t::construct_STR(closed->faceBegin(), closed->faceEnd(), 4, 4));
+ std::auto_ptr<face_rtree_t> open_rtree(face_rtree_t::construct_STR(open->faceBegin(), open->faceEnd(), 4, 4));
- calc(closed, closed_rtree, open, open_rtree, vclass, eclass,a_face_loops, b_face_loops, a_edge_count, b_edge_count);
+ calc(closed, closed_rtree.get(), open, open_rtree.get(), vclass, eclass,a_face_loops, b_face_loops, a_edge_count, b_edge_count);
detail::LoopEdges a_edge_map;
detail::LoopEdges b_edge_map;
@@ -1559,18 +1610,18 @@ bool carve::csg::CSG::sliceAndClassify(carve::mesh::MeshSet<3> *closed,
halfClassifyFaceGroups(shared_edges,
vclass,
closed,
- closed_rtree,
+ closed_rtree.get(),
a_loops_grouped,
a_edge_map,
open,
- open_rtree,
+ open_rtree.get(),
b_loops_grouped,
b_edge_map,
result);
if (shared_edges_ptr != NULL) {
- std::list<carve::mesh::MeshSet<3> *> result_list;
- for (std::list<std::pair<FaceClass, carve::mesh::MeshSet<3> *> >::iterator it = result.begin(); it != result.end(); it++) {
+ std::list<meshset_t *> result_list;
+ for (std::list<std::pair<FaceClass, meshset_t *> >::iterator it = result.begin(); it != result.end(); it++) {
result_list.push_back(it->second);
}
returnSharedEdges(shared_edges, result_list, shared_edges_ptr);
@@ -1590,10 +1641,10 @@ bool carve::csg::CSG::sliceAndClassify(carve::mesh::MeshSet<3> *closed,
* @param hooks
* @param shared_edges_ptr
*/
-void carve::csg::CSG::slice(carve::mesh::MeshSet<3> *a,
- carve::mesh::MeshSet<3> *b,
- std::list<carve::mesh::MeshSet<3> *> &a_sliced,
- std::list<carve::mesh::MeshSet<3> *> &b_sliced,
+void carve::csg::CSG::slice(meshset_t *a,
+ meshset_t *b,
+ std::list<meshset_t *> &a_sliced,
+ std::list<meshset_t *> &b_sliced,
carve::csg::V2Set *shared_edges_ptr) {
carve::csg::VertexClassification vclass;
carve::csg::EdgeClassification eclass;
@@ -1607,10 +1658,10 @@ void carve::csg::CSG::slice(carve::mesh::MeshSet<3> *a,
size_t a_edge_count;
size_t b_edge_count;
- face_rtree_t *a_rtree = face_rtree_t::construct_STR(a->faceBegin(), a->faceEnd(), 4, 4);
- face_rtree_t *b_rtree = face_rtree_t::construct_STR(b->faceBegin(), b->faceEnd(), 4, 4);
+ std::auto_ptr<face_rtree_t> a_rtree(face_rtree_t::construct_STR(a->faceBegin(), a->faceEnd(), 4, 4));
+ std::auto_ptr<face_rtree_t> b_rtree(face_rtree_t::construct_STR(b->faceBegin(), b->faceEnd(), 4, 4));
- calc(a, a_rtree, b, b_rtree, vclass, eclass,a_face_loops, b_face_loops, a_edge_count, b_edge_count);
+ calc(a, a_rtree.get(), b, b_rtree.get(), vclass, eclass,a_face_loops, b_face_loops, a_edge_count, b_edge_count);
detail::LoopEdges a_edge_map;
detail::LoopEdges b_edge_map;
@@ -1645,7 +1696,7 @@ void carve::csg::CSG::slice(carve::mesh::MeshSet<3> *a,
delete all;
}
if (shared_edges_ptr != NULL) {
- std::list<carve::mesh::MeshSet<3> *> result_list;
+ std::list<meshset_t *> result_list;
result_list.insert(result_list.end(), a_sliced.begin(), a_sliced.end());
result_list.insert(result_list.end(), b_sliced.begin(), b_sliced.end());
returnSharedEdges(shared_edges, result_list, shared_edges_ptr);
diff --git a/extern/carve/patches/strict_flags.patch b/extern/carve/patches/strict_flags.patch
index 5c7e8967d39..c1046b78c5f 100644
--- a/extern/carve/patches/strict_flags.patch
+++ b/extern/carve/patches/strict_flags.patch
@@ -9,9 +9,9 @@ diff -r 47dfdaff1dd5 include/carve/csg_triangulator.hpp
}
carve::mesh::MeshSet<3>::face_t *mergeQuad(edge_map_t::iterator i, edge_map_t &edge_map) {
-diff -r 47dfdaff1dd5 src/selfintersect.cpp
---- a/src/selfintersect.cpp Thu Jan 12 15:49:04 2012 -0500
-+++ b/src/selfintersect.cpp Fri Jan 13 03:13:32 2012 +0600
+diff -r 47dfdaff1dd5 lib/selfintersect.cpp
+--- a/lib/selfintersect.cpp Thu Jan 12 15:49:04 2012 -0500
++++ b/lib/selfintersect.cpp Fri Jan 13 03:13:32 2012 +0600
@@ -465,6 +465,7 @@
// returns true if no intersection, based upon edge^a_i and edge^b_j separating axis.
diff --git a/extern/libmv/CMakeLists.txt b/extern/libmv/CMakeLists.txt
index 60cd84d89d4..602372f6ff7 100644
--- a/extern/libmv/CMakeLists.txt
+++ b/extern/libmv/CMakeLists.txt
@@ -40,19 +40,6 @@ set(INC_SYS
${ZLIB_INCLUDE_DIRS}
)
-
-# XXX - FIXME
-# this is a momentary hack to find unwind.h in 10.6.sdk
-if(APPLE)
- if(${CMAKE_OSX_DEPLOYMENT_TARGET} STREQUAL "10.6")
- list(APPEND INC_SYS
- ${CMAKE_OSX_SYSROOT}/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin10/4.2.1/include
- )
- endif()
-endif()
-# XXX - END
-
-
set(SRC
libmv-capi.cpp
libmv/image/array_nd.cc
diff --git a/extern/libmv/libmv-capi.cpp b/extern/libmv/libmv-capi.cpp
index 3d3b7398c9b..0f73234f49c 100644
--- a/extern/libmv/libmv-capi.cpp
+++ b/extern/libmv/libmv-capi.cpp
@@ -523,7 +523,7 @@ int libmv_refineParametersAreValid(int parameters) {
LIBMV_REFINE_RADIAL_DISTORTION_K1));
}
-void libmv_solveRefineIntrinsics(libmv::Tracks *tracks, libmv::CameraIntrinsics *intrinsics,
+static void libmv_solveRefineIntrinsics(libmv::Tracks *tracks, libmv::CameraIntrinsics *intrinsics,
libmv::EuclideanReconstruction *reconstruction, int refine_intrinsics,
reconstruct_progress_update_cb progress_update_callback, void *callback_customdata)
{
@@ -1027,7 +1027,7 @@ void libmv_InvertIntrinsics(double focal_length, double principal_x, double prin
/* ************ point clouds ************ */
-void libmvTransformToMat4(libmv::Mat3 &R, libmv::Vec3 &S, libmv::Vec3 &t, double M[4][4])
+static void libmvTransformToMat4(libmv::Mat3 &R, libmv::Vec3 &S, libmv::Vec3 &t, double M[4][4])
{
for (int j = 0; j < 3; ++j)
for (int k = 0; k < 3; ++k)
diff --git a/extern/libmv/libmv-capi.h b/extern/libmv/libmv-capi.h
index fc3b6f94f62..5253ba76a21 100644
--- a/extern/libmv/libmv-capi.h
+++ b/extern/libmv/libmv-capi.h
@@ -147,14 +147,14 @@ void libmv_CameraIntrinsicsDistortFloat(struct libmv_CameraIntrinsics *libmvIntr
/* dsitortion */
void libmv_undistortByte(double focal_length, double principal_x, double principal_y, double k1, double k2, double k3,
- unsigned char *src, unsigned char *dst, int width, int height, int channels);
+ unsigned char *src, unsigned char *dst, int width, int height, float overscan, int channels);
void libmv_undistortFloat(double focal_length, double principal_x, double principal_y, double k1, double k2, double k3,
- float *src, float *dst, int width, int height, int channels);
+ float *src, float *dst, int width, int height, float overscan, int channels);
void libmv_distortByte(double focal_length, double principal_x, double principal_y, double k1, double k2, double k3,
- unsigned char *src, unsigned char *dst, int width, int height, int channels);
+ unsigned char *src, unsigned char *dst, int width, int height, float overscan, int channels);
void libmv_distortFloat(double focal_length, double principal_x, double principal_y, double k1, double k2, double k3,
- float *src, float *dst, int width, int height, int channels);
+ float *src, float *dst, int width, int height, float overscan, int channels);
/* utils */
void libmv_applyCameraIntrinsics(double focal_length, double principal_x, double principal_y, double k1, double k2, double k3,
diff --git a/extern/libmv/libmv/multiview/euclidean_resection.cc b/extern/libmv/libmv/multiview/euclidean_resection.cc
index 92862515d7e..6cad4cac049 100644
--- a/extern/libmv/libmv/multiview/euclidean_resection.cc
+++ b/extern/libmv/libmv/multiview/euclidean_resection.cc
@@ -351,9 +351,9 @@ void EuclideanResectionAnsarDaniilidis(const Mat2X &x_camera,
}
// Selects 4 virtual control points using mean and PCA.
-void SelectControlPoints(const Mat3X &X_world,
- Mat *X_centered,
- Mat34 *X_control_points) {
+static void SelectControlPoints(const Mat3X &X_world,
+ Mat *X_centered,
+ Mat34 *X_control_points) {
size_t num_points = X_world.cols();
// The first virtual control point, C0, is the centroid.
@@ -377,9 +377,9 @@ void SelectControlPoints(const Mat3X &X_world,
}
// Computes the barycentric coordinates for all real points
-void ComputeBarycentricCoordinates(const Mat3X &X_world_centered,
- const Mat34 &X_control_points,
- Mat4X *alphas) {
+static void ComputeBarycentricCoordinates(const Mat3X &X_world_centered,
+ const Mat34 &X_control_points,
+ Mat4X *alphas) {
size_t num_points = X_world_centered.cols();
Mat3 C2 ;
for (size_t c = 1; c < 4; c++) {
@@ -398,7 +398,7 @@ void ComputeBarycentricCoordinates(const Mat3X &X_world_centered,
}
// Estimates the coordinates of all real points in the camera coordinate frame
-void ComputePointsCoordinatesInCameraFrame(
+static void ComputePointsCoordinatesInCameraFrame(
const Mat4X &alphas,
const Vec4 &betas,
const Eigen::Matrix<double, 12, 12> &U,
@@ -535,7 +535,16 @@ bool EuclideanResectionEPnP(const Mat2X &x_camera,
vector<Vec3> ts(3);
Vec rmse(3);
- // TODO(julien): Document where the "1e-3" magical constant comes from below.
+ // At one point this threshold was 1e-3, and caused no end of problems in
+ // Blender by causing frames to not resect when they would have worked fine.
+ // When the resect failed, the projective followup is run leading to worse
+ // results, and often the dreaded "flipping" where objects get flipped
+ // between frames. Instead, disable the check for now, always succeeding. The
+ // ultimate check is always reprojection error anyway.
+ //
+ // TODO(keir): Decide if setting this to infinity, effectively disabling the
+ // check, is the right approach. So far this seems the case.
+ double kSuccessThreshold = std::numeric_limits<double>::max();
// Find the first possible solution for R, t corresponding to:
// Betas = [b00 b01 b11 b02 b12 b22 b03 b13 b23 b33]
@@ -548,7 +557,7 @@ bool EuclideanResectionEPnP(const Mat2X &x_camera,
Eigen::JacobiSVD<Mat> svd_of_l4(l_6x4,
Eigen::ComputeFullU | Eigen::ComputeFullV);
Vec4 b4 = svd_of_l4.solve(rho);
- if ((l_6x4 * b4).isApprox(rho, 1e-3)) {
+ if ((l_6x4 * b4).isApprox(rho, kSuccessThreshold)) {
if (b4(0) < 0) {
b4 = -b4;
}
@@ -574,7 +583,7 @@ bool EuclideanResectionEPnP(const Mat2X &x_camera,
Vec3 b3 = svdOfL3.solve(rho);
VLOG(2) << " rho = " << rho;
VLOG(2) << " l_6x3 * b3 = " << l_6x3 * b3;
- if ((l_6x3 * b3).isApprox(rho, 1e-3)) {
+ if ((l_6x3 * b3).isApprox(rho, kSuccessThreshold)) {
if (b3(0) < 0) {
betas(0) = std::sqrt(-b3(0));
betas(1) = (b3(2) < 0) ? std::sqrt(-b3(2)) : 0;
@@ -605,7 +614,7 @@ bool EuclideanResectionEPnP(const Mat2X &x_camera,
Eigen::JacobiSVD<Mat> svdOfL5(l_6x5,
Eigen::ComputeFullU | Eigen::ComputeFullV);
Vec5 b5 = svdOfL5.solve(rho);
- if ((l_6x5 * b5).isApprox(rho, 1e-3)) {
+ if ((l_6x5 * b5).isApprox(rho, kSuccessThreshold)) {
if (b5(0) < 0) {
betas(0) = std::sqrt(-b5(0));
if (b5(2) < 0) {
diff --git a/extern/libmv/libmv/multiview/euclidean_resection.h b/extern/libmv/libmv/multiview/euclidean_resection.h
index 08fa3d90bd3..f20513d3fbe 100644
--- a/extern/libmv/libmv/multiview/euclidean_resection.h
+++ b/extern/libmv/libmv/multiview/euclidean_resection.h
@@ -29,6 +29,9 @@ namespace euclidean_resection {
enum ResectionMethod {
RESECTION_ANSAR_DANIILIDIS,
+
+ // The "EPnP" algorithm by Lepetit et al.
+ // http://cvlab.epfl.ch/~lepetit/papers/lepetit_ijcv08.pdf
RESECTION_EPNP,
};
diff --git a/extern/libmv/libmv/multiview/fundamental.cc b/extern/libmv/libmv/multiview/fundamental.cc
index 7a6b4a08439..80f155e804d 100644
--- a/extern/libmv/libmv/multiview/fundamental.cc
+++ b/extern/libmv/libmv/multiview/fundamental.cc
@@ -28,7 +28,7 @@
namespace libmv {
-void EliminateRow(const Mat34 &P, int row, Mat *X) {
+static void EliminateRow(const Mat34 &P, int row, Mat *X) {
X->resize(2, 4);
int first_row = (row + 1) % 3;
@@ -69,7 +69,7 @@ void FundamentalFromProjections(const Mat34 &P1, const Mat34 &P2, Mat3 *F) {
// HZ 11.1 pag.279 (x1 = x, x2 = x')
// http://www.cs.unc.edu/~marc/tutorial/node54.html
-double EightPointSolver(const Mat &x1, const Mat &x2, Mat3 *F) {
+static double EightPointSolver(const Mat &x1, const Mat &x2, Mat3 *F) {
DCHECK_EQ(x1.rows(), 2);
DCHECK_GE(x1.cols(), 8);
DCHECK_EQ(x1.rows(), x2.rows());
diff --git a/extern/libmv/libmv/multiview/homography.cc b/extern/libmv/libmv/multiview/homography.cc
index 366392f3923..b5c483998d8 100644
--- a/extern/libmv/libmv/multiview/homography.cc
+++ b/extern/libmv/libmv/multiview/homography.cc
@@ -40,7 +40,7 @@ namespace libmv {
* (a-x1*g)*y1 + (b-x1*h)*y2 + c-x1 = |0|
* (-x2*a+x1*d)*y1 + (-x2*b+x1*e)*y2 + -x2*c+x1*f |0|
*/
-bool Homography2DFromCorrespondencesLinearEuc(
+static bool Homography2DFromCorrespondencesLinearEuc(
const Mat &x1,
const Mat &x2,
Mat3 *H,
diff --git a/extern/libmv/libmv/numeric/levenberg_marquardt.h b/extern/libmv/libmv/numeric/levenberg_marquardt.h
index 4473b72f156..a7877e0270b 100644
--- a/extern/libmv/libmv/numeric/levenberg_marquardt.h
+++ b/extern/libmv/libmv/numeric/levenberg_marquardt.h
@@ -124,11 +124,11 @@ class LevenbergMarquardt {
Parameters dx, x_new;
int i;
for (i = 0; results.status == RUNNING && i < params.max_iterations; ++i) {
- VLOG(1) << "iteration: " << i;
- VLOG(1) << "||f(x)||: " << f_(x).norm();
- VLOG(1) << "max(g): " << g.array().abs().maxCoeff();
- VLOG(1) << "u: " << u;
- VLOG(1) << "v: " << v;
+ VLOG(3) << "iteration: " << i;
+ VLOG(3) << "||f(x)||: " << f_(x).norm();
+ VLOG(3) << "max(g): " << g.array().abs().maxCoeff();
+ VLOG(3) << "u: " << u;
+ VLOG(3) << "v: " << v;
AMatrixType A_augmented = A + u*AMatrixType::Identity(J.cols(), J.cols());
Solver solver(A_augmented);
diff --git a/extern/libmv/libmv/simple_pipeline/camera_intrinsics.cc b/extern/libmv/libmv/simple_pipeline/camera_intrinsics.cc
index ab9b21d6dfd..6319846a079 100644
--- a/extern/libmv/libmv/simple_pipeline/camera_intrinsics.cc
+++ b/extern/libmv/libmv/simple_pipeline/camera_intrinsics.cc
@@ -209,7 +209,7 @@ void CameraIntrinsics::ComputeLookupGrid(Grid* grid, int width, int height, doub
if( ix >= width-2 ) ix = width-2;
if( iy >= height-2 ) iy = height-2;
- Offset offset = { ix-x, iy-y, fx, fy };
+ Offset offset = { (short)(ix-x), (short)(iy-y), (unsigned char)fx, (unsigned char)fy };
grid->offset[y*width+x] = offset;
}
}
diff --git a/extern/libmv/libmv/simple_pipeline/detect.cc b/extern/libmv/libmv/simple_pipeline/detect.cc
index 8ac42ab0aba..9e3edf32d71 100644
--- a/extern/libmv/libmv/simple_pipeline/detect.cc
+++ b/extern/libmv/libmv/simple_pipeline/detect.cc
@@ -35,7 +35,7 @@ namespace libmv {
typedef unsigned int uint;
-int featurecmp(const void *a_v, const void *b_v)
+static int featurecmp(const void *a_v, const void *b_v)
{
Feature *a = (Feature*)a_v;
Feature *b = (Feature*)b_v;
@@ -66,7 +66,7 @@ std::vector<Feature> DetectFAST(const unsigned char* data, int width, int height
Feature *all_features = new Feature[num_features];
for(int i = 0; i < num_features; ++i) {
- Feature a = { nonmax[i].x, nonmax[i].y, scores[i], 0 };
+ Feature a = { (float)nonmax[i].x, (float)nonmax[i].y, (float)scores[i], 0 };
all_features[i] = a;
}
@@ -173,7 +173,7 @@ void DetectMORAVEC(ubyte* image, int stride, int width, int height, Feature* det
for(int y=16; y<height-16; y++) {
for(int x=16; x<width-16; x++) {
int s = scores[y*width+x];
- Feature f = { x+8, y+8, s, 16 };
+ Feature f = { (float)x+8.0f, (float)y+8.0f, (float)s, 16 };
if(s>min) detected[i++] = f;
}
}
diff --git a/extern/libmv/libmv/simple_pipeline/initialize_reconstruction.cc b/extern/libmv/libmv/simple_pipeline/initialize_reconstruction.cc
index 77fe2a530c4..9c06d1ef4e6 100644
--- a/extern/libmv/libmv/simple_pipeline/initialize_reconstruction.cc
+++ b/extern/libmv/libmv/simple_pipeline/initialize_reconstruction.cc
@@ -24,6 +24,7 @@
#include "libmv/multiview/projection.h"
#include "libmv/numeric/levenberg_marquardt.h"
#include "libmv/numeric/numeric.h"
+#include "libmv/simple_pipeline/initialize_reconstruction.h"
#include "libmv/simple_pipeline/reconstruction.h"
#include "libmv/simple_pipeline/tracks.h"
diff --git a/extern/libmv/libmv/simple_pipeline/intersect.cc b/extern/libmv/libmv/simple_pipeline/intersect.cc
index b1518e04651..0c2f744dc1c 100644
--- a/extern/libmv/libmv/simple_pipeline/intersect.cc
+++ b/extern/libmv/libmv/simple_pipeline/intersect.cc
@@ -26,6 +26,7 @@
#include "libmv/multiview/projection.h"
#include "libmv/numeric/numeric.h"
#include "libmv/numeric/levenberg_marquardt.h"
+#include "libmv/simple_pipeline/intersect.h"
#include "libmv/simple_pipeline/reconstruction.h"
#include "libmv/simple_pipeline/tracks.h"
diff --git a/extern/libmv/libmv/simple_pipeline/pipeline.cc b/extern/libmv/libmv/simple_pipeline/pipeline.cc
index 2459d059114..4773a70d69b 100644
--- a/extern/libmv/libmv/simple_pipeline/pipeline.cc
+++ b/extern/libmv/libmv/simple_pipeline/pipeline.cc
@@ -242,9 +242,9 @@ void InternalCompleteReconstruction(
(double)tot_resects/(max_image));
if (PipelineRoutines::Resect(reconstructed_markers, reconstruction, true)) {
num_resects++;
- LG << "Ran Resect() for image " << image;
+ LG << "Ran final Resect() for image " << image;
} else {
- LG << "Failed Resect() for image " << image;
+ LG << "Failed final Resect() for image " << image;
}
}
}
diff --git a/extern/libmv/libmv/simple_pipeline/resect.cc b/extern/libmv/libmv/simple_pipeline/resect.cc
index b30d959b512..8737182dd43 100644
--- a/extern/libmv/libmv/simple_pipeline/resect.cc
+++ b/extern/libmv/libmv/simple_pipeline/resect.cc
@@ -27,6 +27,7 @@
#include "libmv/multiview/projection.h"
#include "libmv/numeric/numeric.h"
#include "libmv/numeric/levenberg_marquardt.h"
+#include "libmv/simple_pipeline/resect.h"
#include "libmv/simple_pipeline/reconstruction.h"
#include "libmv/simple_pipeline/tracks.h"
@@ -107,6 +108,10 @@ bool EuclideanResect(const vector<Marker> &markers,
// printf("Resection for image %d failed\n", markers[0].image);
LG << "Resection for image " << markers[0].image << " failed;"
<< " trying fallback projective resection.";
+
+ LG << "No fallback; failing resection for " << markers[0].image;
+ return false;
+
if (!final_pass) return false;
// Euclidean resection failed. Fall back to projective resection, which is
// less reliable but better conditioned when there are many points.
diff --git a/extern/libmv/libmv/tracking/track_region.cc b/extern/libmv/libmv/tracking/track_region.cc
index f52919b2a61..472d58a1547 100644
--- a/extern/libmv/libmv/tracking/track_region.cc
+++ b/extern/libmv/libmv/tracking/track_region.cc
@@ -18,7 +18,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//
-// Author: mierle@google.com (Keir Mierle)
+// Author: mierle@gmail.com (Keir Mierle)
//
// TODO(keir): While this tracking code works rather well, it has some
// outragous inefficiencies. There is probably a 5-10x speedup to be had if a
@@ -41,6 +41,85 @@
#include "libmv/multiview/homography.h"
#include "libmv/numeric/numeric.h"
+// Expand the Jet functionality of Ceres to allow mixed numeric/autodiff.
+//
+// TODO(keir): Push this (or something similar) into upstream Ceres.
+namespace ceres {
+
+// A jet traits class to make it easier to work with mixed auto / numeric diff.
+template<typename T>
+struct JetOps {
+ static bool IsScalar() {
+ return true;
+ }
+ static T GetScalar(const T& t) {
+ return t;
+ }
+ static void SetScalar(const T& scalar, T* t) {
+ *t = scalar;
+ }
+ static void ScaleDerivative(double scale_by, T *value) {
+ // For double, there is no derivative to scale.
+ }
+};
+
+template<typename T, int N>
+struct JetOps<Jet<T, N> > {
+ static bool IsScalar() {
+ return false;
+ }
+ static T GetScalar(const Jet<T, N>& t) {
+ return t.a;
+ }
+ static void SetScalar(const T& scalar, Jet<T, N>* t) {
+ t->a = scalar;
+ }
+ static void ScaleDerivative(double scale_by, Jet<T, N> *value) {
+ value->v *= scale_by;
+ }
+};
+
+template<typename FunctionType, int kNumArgs, typename ArgumentType>
+struct Chain {
+ static ArgumentType Rule(const FunctionType &f,
+ const FunctionType dfdx[kNumArgs],
+ const ArgumentType x[kNumArgs]) {
+ // In the default case of scalars, there's nothing to do since there are no
+ // derivatives to propagate.
+ return f;
+ }
+};
+
+// XXX Add documentation here!
+template<typename FunctionType, int kNumArgs, typename T, int N>
+struct Chain<FunctionType, kNumArgs, Jet<T, N> > {
+ static Jet<T, N> Rule(const FunctionType &f,
+ const FunctionType dfdx[kNumArgs],
+ const Jet<T, N> x[kNumArgs]) {
+ // x is itself a function of another variable ("z"); what this function
+ // needs to return is "f", but with the derivative with respect to z
+ // attached to the jet. So combine the derivative part of x's jets to form
+ // a Jacobian matrix between x and z (i.e. dx/dz).
+ Eigen::Matrix<T, kNumArgs, N> dxdz;
+ for (int i = 0; i < kNumArgs; ++i) {
+ dxdz.row(i) = x[i].v.transpose();
+ }
+
+ // Map the input gradient dfdx into an Eigen row vector.
+ Eigen::Map<const Eigen::Matrix<FunctionType, 1, kNumArgs> >
+ vector_dfdx(dfdx, 1, kNumArgs);
+
+ // Now apply the chain rule to obtain df/dz. Combine the derivative with
+ // the scalar part to obtain f with full derivative information.
+ Jet<T, N> jet_f;
+ jet_f.a = f;
+ jet_f.v = vector_dfdx.template cast<T>() * dxdz; // Also known as dfdz.
+ return jet_f;
+ }
+};
+
+} // namespace ceres
+
namespace libmv {
using ceres::Jet;
@@ -57,6 +136,7 @@ TrackRegionOptions::TrackRegionOptions()
sigma(0.9),
num_extra_points(0),
regularization_coefficient(0.0),
+ minimum_corner_shift_tolerance_pixels(0.005),
image1_mask(NULL) {
}
@@ -108,45 +188,93 @@ static T SampleWithDerivative(const FloatImage &image_and_gradient,
}
template<typename Warp>
-class BoundaryCheckingCallback : public ceres::IterationCallback {
+class TerminationCheckingCallback : public ceres::IterationCallback {
public:
- BoundaryCheckingCallback(const FloatImage& image2,
- const Warp &warp,
- const double *x1, const double *y1)
- : image2_(image2), warp_(warp), x1_(x1), y1_(y1) {}
+ TerminationCheckingCallback(const TrackRegionOptions &options,
+ const FloatImage& image2,
+ const Warp &warp,
+ const double *x1, const double *y1)
+ : options_(options), image2_(image2), warp_(warp), x1_(x1), y1_(y1),
+ have_last_successful_step_(false) {}
virtual ceres::CallbackReturnType operator()(
const ceres::IterationSummary& summary) {
+ // If the step wasn't successful, there's nothing to do.
+ if (!summary.step_is_successful) {
+ return ceres::SOLVER_CONTINUE;
+ }
// Warp the original 4 points with the current warp into image2.
double x2[4];
double y2[4];
for (int i = 0; i < 4; ++i) {
warp_.Forward(warp_.parameters, x1_[i], y1_[i], x2 + i, y2 + i);
}
- // Enusre they are all in bounds.
+ // Ensure the corners are all in bounds.
if (!AllInBounds(image2_, x2, y2)) {
+ LG << "Successful step fell outside of the pattern bounds; aborting.";
return ceres::SOLVER_ABORT;
}
+
+ // Ensure the minimizer is making large enough shifts to bother continuing.
+ // Ideally, this check would happen on the parameters themselves which
+ // Ceres supports directly; however, the mapping from parameter change
+ // magnitude to corner movement in pixels is not a simple norm. Hence, the
+ // need for a stateful callback which tracks the last successful set of
+ // parameters (and the position of the projected patch corners).
+ if (have_last_successful_step_) {
+ // Compute the maximum shift of any corner in pixels since the last
+ // successful iteration.
+ double max_change_pixels = 0;
+ for (int i = 0; i < 4; ++i) {
+ double dx = x2[i] - x2_last_successful_[i];
+ double dy = y2[i] - y2_last_successful_[i];
+ double change_pixels = dx*dx + dy*dy;
+ if (change_pixels > max_change_pixels) {
+ max_change_pixels = change_pixels;
+ }
+ }
+ max_change_pixels = sqrt(max_change_pixels);
+ LG << "Max patch corner shift is " << max_change_pixels;
+
+ // Bail if the shift is too small.
+ if (max_change_pixels < options_.minimum_corner_shift_tolerance_pixels) {
+ LG << "Max patch corner shift is " << max_change_pixels
+ << " from the last iteration; returning success.";
+ return ceres::SOLVER_TERMINATE_SUCCESSFULLY;
+ }
+ }
+
+ // Save the projected corners for checking on the next successful iteration.
+ for (int i = 0; i < 4; ++i) {
+ x2_last_successful_[i] = x2[i];
+ y2_last_successful_[i] = y2[i];
+ }
+ have_last_successful_step_ = true;
return ceres::SOLVER_CONTINUE;
}
private:
+ const TrackRegionOptions &options_;
const FloatImage &image2_;
const Warp &warp_;
const double *x1_;
const double *y1_;
+
+ bool have_last_successful_step_;
+ double x2_last_successful_[4];
+ double y2_last_successful_[4];
};
template<typename Warp>
class PixelDifferenceCostFunctor {
public:
PixelDifferenceCostFunctor(const TrackRegionOptions &options,
- const FloatImage &image_and_gradient1,
- const FloatImage &image_and_gradient2,
- const Mat3 &canonical_to_image1,
- int num_samples_x,
- int num_samples_y,
- const Warp &warp)
+ const FloatImage &image_and_gradient1,
+ const FloatImage &image_and_gradient2,
+ const Mat3 &canonical_to_image1,
+ int num_samples_x,
+ int num_samples_y,
+ const Warp &warp)
: options_(options),
image_and_gradient1_(image_and_gradient1),
image_and_gradient2_(image_and_gradient2),
@@ -1044,6 +1172,9 @@ void CreateBrutePattern(const double *x1, const double *y1,
// correlation. Instead, this is a dumb implementation. Surprisingly, it is
// fast enough in practice.
//
+// Returns true if any alignment was found, and false if the projected pattern
+// is zero sized.
+//
// TODO(keir): The normalization is less effective for the brute force search
// than it is with the Ceres solver. It's unclear if this is a bug or due to
// the original frame being too different from the reprojected reference in the
@@ -1054,7 +1185,7 @@ void CreateBrutePattern(const double *x1, const double *y1,
// totally different warping interface, since access to more than a the source
// and current destination frame is necessary.
template<typename Warp>
-void BruteTranslationOnlyInitialize(const FloatImage &image1,
+bool BruteTranslationOnlyInitialize(const FloatImage &image1,
const FloatImage *image1_mask,
const FloatImage &image2,
const int num_extra_points,
@@ -1100,6 +1231,7 @@ void BruteTranslationOnlyInitialize(const FloatImage &image1,
int best_c = -1;
int w = pattern.cols();
int h = pattern.rows();
+
for (int r = 0; r < (image2.Height() - h); ++r) {
for (int c = 0; c < (image2.Width() - w); ++c) {
// Compute the weighted sum of absolute differences, Eigen style. Note
@@ -1124,8 +1256,12 @@ void BruteTranslationOnlyInitialize(const FloatImage &image1,
}
}
}
- CHECK_NE(best_r, -1);
- CHECK_NE(best_c, -1);
+
+ // This mean the effective pattern area is zero. This check could go earlier,
+ // but this is less code.
+ if (best_r == -1 || best_c == -1) {
+ return false;
+ }
LG << "Brute force translation found a shift. "
<< "best_c: " << best_c << ", best_r: " << best_r << ", "
@@ -1140,6 +1276,7 @@ void BruteTranslationOnlyInitialize(const FloatImage &image1,
x2[i] += best_c - origin_x;
y2[i] += best_r - origin_y;
}
+ return true;
}
} // namespace
@@ -1191,12 +1328,19 @@ void TemplatedTrackRegion(const FloatImage &image1,
if (SearchAreaTooBigForDescent(image2, x2, y2) &&
options.use_brute_initialization) {
LG << "Running brute initialization...";
- BruteTranslationOnlyInitialize<Warp>(image_and_gradient1,
- options.image1_mask,
- image2,
- options.num_extra_points,
- options.use_normalized_intensities,
- x1, y1, x2, y2);
+ bool found_any_alignment = BruteTranslationOnlyInitialize<Warp>(
+ image_and_gradient1,
+ options.image1_mask,
+ image2,
+ options.num_extra_points,
+ options.use_normalized_intensities,
+ x1, y1, x2, y2);
+ if (!found_any_alignment) {
+ LG << "Brute failed to find an alignment; pattern too small. "
+ << "Failing entire track operation.";
+ result->termination = TrackRegionResult::INSUFFICIENT_PATTERN_AREA;
+ return;
+ }
for (int i = 0; i < 4; ++i) {
LG << "P" << i << ": (" << x1[i] << ", " << y1[i] << "); brute ("
<< x2[i] << ", " << y2[i] << "); (dx, dy): (" << (x2[i] - x1[i])
@@ -1260,14 +1404,15 @@ void TemplatedTrackRegion(const FloatImage &image1,
// Configure the solve.
ceres::Solver::Options solver_options;
- solver_options.linear_solver_type = ceres::DENSE_QR;
+ solver_options.linear_solver_type = ceres::DENSE_NORMAL_CHOLESKY;
solver_options.max_num_iterations = options.max_iterations;
solver_options.update_state_every_iteration = true;
solver_options.parameter_tolerance = 1e-16;
solver_options.function_tolerance = 1e-16;
- // Prevent the corners from going outside the destination image.
- BoundaryCheckingCallback<Warp> callback(image2, warp, x1, y1);
+ // Prevent the corners from going outside the destination image and
+ // terminate if the optimizer is making tiny moves (converged).
+ TerminationCheckingCallback<Warp> callback(options, image2, warp, x1, y1);
solver_options.callbacks.push_back(&callback);
// Run the solve.
@@ -1290,11 +1435,21 @@ void TemplatedTrackRegion(const FloatImage &image1,
// TODO(keir): Update the result statistics.
// TODO(keir): Add a normalize-cross-correlation variant.
- CHECK_NE(summary.termination_type, ceres::USER_ABORT) << "Libmv bug.";
if (summary.termination_type == ceres::USER_ABORT) {
result->termination = TrackRegionResult::FELL_OUT_OF_BOUNDS;
return;
}
+
+ // This happens when the minimum corner shift tolerance is reached. Due to
+ // how the tolerance is computed this can't be done by Ceres. So return the
+ // same termination enum as Ceres, even though this is slightly different
+ // than Ceres's parameter tolerance, which operates on the raw parameter
+ // values rather than the pixel shifts of the patch corners.
+ if (summary.termination_type == ceres::USER_SUCCESS) {
+ result->termination = TrackRegionResult::PARAMETER_TOLERANCE;
+ return;
+ }
+
#define HANDLE_TERMINATION(termination_enum) \
if (summary.termination_type == ceres::termination_enum) { \
result->termination = TrackRegionResult::termination_enum; \
@@ -1377,11 +1532,11 @@ bool SamplePlanarPatch(const FloatImage &image,
image_position(0),
&(*patch)(r, c, 0));
if (mask) {
- float maskValue = SampleLinear(*mask, image_position(1),
- image_position(0), 0);
+ float mask_value = SampleLinear(*mask, image_position(1),
+ image_position(0), 0);
for (int d = 0; d < image.Depth(); d++)
- (*patch)(r, c, d) *= maskValue;
+ (*patch)(r, c, d) *= mask_value;
}
}
}
diff --git a/extern/libmv/libmv/tracking/track_region.h b/extern/libmv/libmv/tracking/track_region.h
index 22ecfc54a15..cd7ee0aa2ba 100644
--- a/extern/libmv/libmv/tracking/track_region.h
+++ b/extern/libmv/libmv/tracking/track_region.h
@@ -90,6 +90,11 @@ struct TrackRegionOptions {
// If zero, no regularization is used.
double regularization_coefficient;
+ // If the maximum shift of any patch corner between successful iterations of
+ // the solver is less than this amount, then the tracking is declared
+ // successful. The solver termination becomes PARAMETER_TOLERANCE.
+ double minimum_corner_shift_tolerance_pixels;
+
// If non-null, this is used as the pattern mask. It should match the size of
// image1, even though only values inside the image1 quad are examined. The
// values must be in the range 0.0 to 0.1.
@@ -111,6 +116,7 @@ struct TrackRegionResult {
DESTINATION_OUT_OF_BOUNDS,
FELL_OUT_OF_BOUNDS,
INSUFFICIENT_CORRELATION,
+ INSUFFICIENT_PATTERN_AREA,
CONFIGURATION_ERROR,
};
Termination termination;
diff --git a/extern/libmv/third_party/ceres/CMakeLists.txt b/extern/libmv/third_party/ceres/CMakeLists.txt
index e6a9e430c47..0ce8e273f4a 100644
--- a/extern/libmv/third_party/ceres/CMakeLists.txt
+++ b/extern/libmv/third_party/ceres/CMakeLists.txt
@@ -38,6 +38,7 @@ set(INC_SYS
)
set(SRC
+ internal/ceres/array_utils.cc
internal/ceres/block_evaluate_preparer.cc
internal/ceres/block_jacobian_writer.cc
internal/ceres/block_jacobi_preconditioner.cc
@@ -53,16 +54,19 @@ set(SRC
internal/ceres/conditioned_cost_function.cc
internal/ceres/conjugate_gradients_solver.cc
internal/ceres/corrector.cc
+ internal/ceres/cxsparse.cc
+ internal/ceres/dense_normal_cholesky_solver.cc
internal/ceres/dense_qr_solver.cc
internal/ceres/dense_sparse_matrix.cc
internal/ceres/detect_structure.cc
+ internal/ceres/dogleg_strategy.cc
internal/ceres/evaluator.cc
internal/ceres/file.cc
internal/ceres/generated/schur_eliminator_d_d_d.cc
internal/ceres/gradient_checking_cost_function.cc
internal/ceres/implicit_schur_complement.cc
internal/ceres/iterative_schur_complement_solver.cc
- internal/ceres/levenberg_marquardt.cc
+ internal/ceres/levenberg_marquardt_strategy.cc
internal/ceres/linear_least_squares_problems.cc
internal/ceres/linear_operator.cc
internal/ceres/linear_solver.cc
@@ -70,6 +74,7 @@ set(SRC
internal/ceres/loss_function.cc
internal/ceres/normal_prior.cc
internal/ceres/partitioned_matrix_view.cc
+ internal/ceres/polynomial_solver.cc
internal/ceres/problem.cc
internal/ceres/problem_impl.cc
internal/ceres/program.cc
@@ -88,6 +93,8 @@ set(SRC
internal/ceres/stringprintf.cc
internal/ceres/suitesparse.cc
internal/ceres/triplet_sparse_matrix.cc
+ internal/ceres/trust_region_minimizer.cc
+ internal/ceres/trust_region_strategy.cc
internal/ceres/types.cc
internal/ceres/visibility_based_preconditioner.cc
internal/ceres/visibility.cc
@@ -96,6 +103,8 @@ set(SRC
include/ceres/ceres.h
include/ceres/conditioned_cost_function.h
include/ceres/cost_function.h
+ include/ceres/crs_matrix.h
+ include/ceres/fpclassify.h
include/ceres/internal/autodiff.h
include/ceres/internal/eigen.h
include/ceres/internal/fixed_array.h
@@ -114,6 +123,7 @@ set(SRC
include/ceres/sized_cost_function.h
include/ceres/solver.h
include/ceres/types.h
+ internal/ceres/array_utils.h
internal/ceres/block_evaluate_preparer.h
internal/ceres/block_jacobian_writer.h
internal/ceres/block_jacobi_preconditioner.h
@@ -131,10 +141,13 @@ set(SRC
internal/ceres/compressed_row_sparse_matrix.h
internal/ceres/conjugate_gradients_solver.h
internal/ceres/corrector.h
+ internal/ceres/cxsparse.h
internal/ceres/dense_jacobian_writer.h
+ internal/ceres/dense_normal_cholesky_solver.h
internal/ceres/dense_qr_solver.h
internal/ceres/dense_sparse_matrix.h
internal/ceres/detect_structure.h
+ internal/ceres/dogleg_strategy.h
internal/ceres/evaluator.h
internal/ceres/file.h
internal/ceres/gradient_checking_cost_function.h
@@ -143,7 +156,7 @@ set(SRC
internal/ceres/implicit_schur_complement.h
internal/ceres/integral_types.h
internal/ceres/iterative_schur_complement_solver.h
- internal/ceres/levenberg_marquardt.h
+ internal/ceres/levenberg_marquardt_strategy.h
internal/ceres/linear_least_squares_problems.h
internal/ceres/linear_operator.h
internal/ceres/linear_solver.h
@@ -153,6 +166,7 @@ set(SRC
internal/ceres/mutex.h
internal/ceres/parameter_block.h
internal/ceres/partitioned_matrix_view.h
+ internal/ceres/polynomial_solver.h
internal/ceres/problem_impl.h
internal/ceres/program_evaluator.h
internal/ceres/program.h
@@ -168,10 +182,13 @@ set(SRC
internal/ceres/solver_impl.h
internal/ceres/sparse_matrix.h
internal/ceres/sparse_normal_cholesky_solver.h
+ internal/ceres/split.h
internal/ceres/stl_util.h
internal/ceres/stringprintf.h
internal/ceres/suitesparse.h
internal/ceres/triplet_sparse_matrix.h
+ internal/ceres/trust_region_minimizer.h
+ internal/ceres/trust_region_strategy.h
internal/ceres/visibility_based_preconditioner.h
internal/ceres/visibility.h
)
@@ -203,7 +220,7 @@ if(WIN32)
if(NOT MINGW)
list(APPEND INC
- third_party/msinttypes
+ ../msinttypes
)
endif()
else()
@@ -214,11 +231,30 @@ endif()
add_definitions(
-DCERES_HAVE_PTHREAD
- -D"CERES_HASH_NAMESPACE_START=namespace std { namespace tr1 {"
- -D"CERES_HASH_NAMESPACE_END=}}"
-DCERES_NO_SUITESPARSE
- -DCERES_DONT_HAVE_PROTOCOL_BUFFERS
+ -DCERES_NO_CXSPARSE
+ -DCERES_NO_PROTOCOL_BUFFERS
-DCERES_RESTRICT_SCHUR_SPECIALIZATION
)
+if(MSVC10)
+ add_definitions(
+ -D"CERES_HASH_NAMESPACE_START=namespace std {"
+ -D"CERES_HASH_NAMESPACE_END=}"
+ )
+else()
+ add_definitions(
+ -D"CERES_HASH_NAMESPACE_START=namespace std { namespace tr1 {"
+ -D"CERES_HASH_NAMESPACE_END=}}"
+ )
+endif()
+
+if(APPLE)
+ if(CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.5")
+ add_definitions(
+ -DCERES_NO_TR1
+ )
+ endif()
+endif()
+
blender_add_lib(extern_ceres "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/extern/libmv/third_party/ceres/ChangeLog b/extern/libmv/third_party/ceres/ChangeLog
index 6e919658f13..8b84328cf98 100644
--- a/extern/libmv/third_party/ceres/ChangeLog
+++ b/extern/libmv/third_party/ceres/ChangeLog
@@ -1,324 +1,524 @@
-commit ca72152362ae1f4b9928c012e74b4d49d094a4ca
-Merge: d297f8d 0a04199
-Author: Keir Mierle <mierle@gmail.com>
-Date: Wed May 9 13:10:59 2012 -0700
+commit 552f9f85bba89f00ca307bc18fbda1dff23bd0e4
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Fri Aug 31 07:27:22 2012 -0700
- Merge branch 'master' into windows
+ Various minor bug fixes to the solver logic.
+
+ 1. CostFunction returning false is handled better.
+ If only the cost is being evaluated, it is possible to
+ use the false value as an infinite value signal/outside
+ a region of validity. This allows a weak form of constraint
+ handling. Useful for example in handling infinities.
+
+ 2. Changed the way how the slop around zero when model_cost
+ is larger than the current cost. Relative instead of absolute
+ tolerances are used. The same logic is propagated how the
+ corresponding clamping of the model_cost is done.
+
+ 3. Fixed a minor indexing bug in nist.cc.
+
+ 4. Some minor logging fixes to nist.cc to make it more
+ compatible with the rest of ceres.
+
+ Together these changes, take the successful solve count from
+ 41/54 to 46/54 and eliminate all NUMERICAL_FAILURE problems.
+
+ Change-Id: If94170ea4731af5b243805c0200963dd31aa94a7
-commit 0a04199ef279cc9ea97f665fed8e7fae717813c3
-Merge: fdeb577 f2571f1
-Author: Keir Mierle <mierle@gmail.com>
-Date: Wed May 9 12:54:56 2012 -0700
+commit 0b776b5cc9634d3b88d623905b96006f7647ce3e
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Thu Aug 30 15:26:17 2012 -0700
- Merge branch 'master' of https://code.google.com/p/ceres-solver
+ Update docs.
+
+ Change-Id: I69d50bcd37aed3bea2190ca614f023e83172901b
-commit fdeb5772cc5eeebca4d776d220d80cc91b6d0f74
-Author: Keir Mierle <mierle@gmail.com>
-Date: Wed May 9 07:38:07 2012 -0700
+commit 2d7176ad7c8fb7238ca8abd6de73415d95877494
+Author: Petter Strandmark <petter.strandmark@gmail.com>
+Date: Thu Aug 30 19:51:24 2012 -0700
- Support varying numbers of residuals in autodiff.
+ max_consecutive_nonmonotonic_steps should be int
- This commit modifies the only function in autodiff that takes a
- templated number of outputs (i.e. residuals) and makes that
- template parameter a normal parameter. With that change, it
- is a trivial matter to support a dynamic number of residuals.
+ Found via Visual Studio warning.
- The API for dynamic residuals is to pass a fake number of
- residuals as the second template argument to
- AutoDiffCostFunction, and to pass the real number of
- parameters as a second constructor argument.
+ Change-Id: Id2cd7de562dfc8cd35df5d5f5220dd2d7350eb2c
-commit da3e0563cc12e08e7b3e0fbf11d9cc8cfe9658aa
+commit 1a89bcc94e88933f89b20427a45bc40cdd23c056
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Wed May 9 11:57:47 2012 -0700
+Date: Thu Aug 30 15:26:17 2012 -0700
- Typo corrections in the documentation from Bing
+ Better reporting on the NIST problems.
+
+ Change-Id: I7cf774ec3242c0612dbe52fc233c3fc6cff3f031
-commit aa9526d8e8fb34c23d63e3af5bf9239b0c4ea603
+commit ea11704857a1e4a735e096896e4d775d83981499
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Tue May 8 21:22:09 2012 -0700
+Date: Wed Aug 29 18:18:48 2012 -0700
- Share search paths across various library searches.
- Fix typos in glog search.
- Split the error messages for include and lib.
- Enable building of tests by default.
- Made building on homebrew installations a bit better.
- Remove temporary variables for glog and gflags.
+ Basic harness for testing NIST problems.
+
+ Change-Id: I5baaa24dbf0506ceedf4a9be4ed17c84974d71a1
-commit f2571f186850ed3dd316236ac4be488979df7d30
+commit 98bf14d2b95386c2c4a6c29154637943dae4c36c
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Wed May 9 11:57:47 2012 -0700
+Date: Thu Aug 30 10:26:44 2012 -0700
- Typo corrections in the documentation from Bing
+ Miscellaneous fixes.
+
+ Change-Id: I521e11f2d20bf24960bbc6b5dab4ec8bb1503d23
-commit 8f7f11ff7d07737435428a2620c52419cf99f98e
-Merge: e6c17c4 eaccbb3
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Wed May 9 11:34:15 2012 -0700
+commit 1e3cbd9a4442cdd8fda43a7fb452f19dac8c74af
+Author: Petter Strandmark <strandmark@google.com>
+Date: Wed Aug 29 09:39:56 2012 -0700
- Merge branch 'master' of https://code.google.com/p/ceres-solver
+ Caching the symbolic Cholesky factorization when using CXSparse
+
+ Average factorization times for bundle adjustment test problem:
+ SuiteSparse: 0.2794 s.
+ CXSparse: 0.4039 s.
+ CXSparse cached: 0.2399 s.
+
+ CXSparse will still be slower, though, because it has to compute
+ the transpose and J^T * J.
+
+ Change-Id: If9cdaa3dd520bee84b56e5fd4953b56a93db6bde
-commit e6c17c4c9d9307218f6f739cea39bc2d87733d4d
+commit 8b64140878ccd1e183d3715c38942a81fdecefde
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Tue May 8 21:22:09 2012 -0700
+Date: Wed Aug 29 05:41:22 2012 -0700
- Share search paths across various library searches.
- Fix typos in glog search.
- Split the error messages for include and lib.
- Enable building of tests by default.
- Made building on homebrew installations a bit better.
- Remove temporary variables for glog and gflags.
+ Documentation update
+
+ Change-Id: I271a0422e7f6f42bcfd1dc6b5dc10c7a18f6a179
-commit eaccbb345614c0d24c5e21fa931f470cfda874df
-Author: Keir Mierle <mierle@gmail.com>
-Date: Wed May 9 05:31:29 2012 -0700
+commit a5353acd85a9fd19370b3d74035d87b0f0bac230
+Author: Petter Strandmark <petter.strandmark@gmail.com>
+Date: Tue Aug 28 18:16:41 2012 -0700
- Remove unused template parameter from VariadicEvaluate.
+ Adding gflags include to test_util.cc
+
+ test_util seems to need gflags.
+
+ Change-Id: I0c4757960f8ac69ad599c138aea58e3c88a4ea28
-commit 82f4b88c34b0b2cf85064e5fc20e374e978b2e3b
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Sun May 6 21:05:28 2012 -0700
+commit 87ca1b2ba28ec512752bbcf5fc994ce1434eb765
+Author: Petter Strandmark <petter.strandmark@gmail.com>
+Date: Tue Aug 28 18:05:20 2012 -0700
- Extend support writing linear least squares problems to disk.
+ Changing random.h to use cstdlib for Windows compability.
- 1. Make the mechanism for writing problems to disk, generic and
- controllable using an enum DumpType visible in the API.
+ As discussed with Sameer today.
- 2. Instead of single file containing protocol buffers, now matrices can
- be written in a matlab/octave friendly format. This is now the default.
+ Change-Id: If3d0284830c6591c71cc77b8400cafb45c0da61f
+
+commit aeb00a07323808a0a1816e733ad18a87d5109ea3
+Author: Petter Strandmark <strandmark@google.com>
+Date: Mon Aug 27 22:22:57 2012 -0700
+
+ Removing gomp for Visual Studio
- 3. The support for writing problems to disk is moved into
- linear_least_squares_problem.cc/h
+ Linking currently fails in Visual Studio due to a missing library
+ "gomp.lib". This is not needed in Visual Studio. OpenMP works
+ without it.
+
+ Change-Id: I39e204a8dd4f1b7425df7d4b222d86a8bb961432
+
+commit 6f362464ba99b800494d2f15c27768a342ddaa68
+Author: Markus Moll <markus.moll@esat.kuleuven.be>
+Date: Tue Aug 28 01:03:38 2012 +0200
+
+ Add some tests for DoglegStrategy.
- 4. SparseMatrix now has a ToTextFile virtual method which is
- implemented by each of its subclasses to write a (i,j,s) triplets.
+ Not necessarily a complete set.
- 5. Minor changes to simple_bundle_adjuster to enable logging at startup.
+ Change-Id: I14eb3a38c6fe976c8212f3934655411b6d1e0aa4
-commit d297f8d3d3f5025c24752f0f4c1ec2469a769f99
-Merge: 7e74d81 f8bd7fa
-Author: Keir Mierle <mierle@gmail.com>
-Date: Tue May 8 05:39:56 2012 -0700
+commit 122cf836a6dc9726489ce2fbecc6143bddc1caaf
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Fri Aug 24 16:28:27 2012 -0700
- Merge branch 'master' into windows
+ Documentation update.
+
+ Change-Id: I0a3c5ae4bc981a8f5bdd5a8905f923dc5f09a024
-commit f8bd7fa9aa9dbf64b6165606630287cf8cf21194
+commit 69081719f73da8de2935774a42d237837a91952a
Author: Keir Mierle <mierle@gmail.com>
-Date: Tue May 8 05:39:32 2012 -0700
+Date: Mon Aug 27 13:28:56 2012 -0700
- Small tweaks to the block jacobi preconditioner.
+ Remove unnecessary overload for hash<>
+
+ The overload for pointers in hash tables was applied in normal
+ usage of schur_ordering.cc. However, the tests did not include the
+ overload since they only included collections_port.h. As a result,
+ the routines in schur_ordering.cc were using a different hash
+ function than that inside the tests.
+
+ The fix is to remove the specialization. If this breaks one of the
+ compiler configurations, we will find a workaround at that time.
+
+ Change-Id: Idbf60415d5e2aec0c865b514ad0c577d21b91405
-commit 7e74d81ad57a159f14110eb5348b3bc7990b8bd4
-Merge: ecd7c8d e2a6cdc
-Author: Keir Mierle <mierle@gmail.com>
-Date: Mon May 7 07:02:49 2012 -0700
+commit 1762420b6ed76b1c4d30b913b2cac1927b666534
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Wed Aug 22 10:01:31 2012 -0700
- Merge branch 'master' into windows
+ Update changelog.
+
+ Change-Id: Idf5af69d5a9dbe35f58e30a8afcbfcd29bb7ebfe
-commit e2a6cdc0816af9d0c77933f5017f137da3d52a35
+commit 976ab7aca908309b8282cb40bc080ca859136854
Author: Keir Mierle <mierle@gmail.com>
-Date: Mon May 7 06:39:56 2012 -0700
+Date: Thu Aug 23 18:21:36 2012 -0700
- Address some of the comments on CGNR patch
+ Remove Google-era vestigial unit test.
- - Rename BlockDiagonalPreconditioner to BlockJacobiPreconditioner
- - Include the diagonal in the block jacobi preconditioner.
- - Better flag help for eta.
- - Enable test for CGNR
- - Rename CONJUGATE_GRADIENTS to CGNR.
- - etc.
+ Change-Id: Ia7a295a5c759a17c1675a3055d287d3e40e9e0fe
-commit 1b95dc580aa5d89be021c0915e26df83f18013bb
-Merge: 211812a 7646039
+commit 6ad6257de0e2152ac5e77dc003758de45187d6ea
Author: Keir Mierle <mierle@gmail.com>
-Date: Mon May 7 04:34:10 2012 -0700
+Date: Wed Aug 22 11:10:31 2012 -0700
- Merge branch 'master' of https://code.google.com/p/ceres-solver
+ Add a workaround for an Android NDK compiler bug.
+
+ On certain NDK build configurations, one of the innermost
+ parts of the Schur eliminator would get compiled
+ incorrectly. The compiler changed a -= to a +=.
+
+ The normal Ceres unit tests caught the problem; however,
+ since it is not possible to build the tests with the NDK
+ (only with the standalone toolchain) this was difficult to
+ track down. Finding the issue involved pasting the schur
+ eliminator unit test inside of solver_impl.cc and other such
+ hacks.
+
+ Change-Id: Ie91bb545d74fe39f0c8cbd1a6eb69ee4d8b25fb2
-commit 211812a57360d2011cbcfd115cd55e0eb73600db
-Author: Keir Mierle <mierle@gmail.com>
-Date: Mon May 7 04:33:50 2012 -0700
+commit aecb2dc92b4aa7f3bf77a1ac918e62953602392b
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Wed Aug 22 10:08:17 2012 -0700
- Better error handling in bundle_adjuster.cc
+ Fix relative path bug in bibtex call.
+
+ Change-Id: I0d31786564320a6831259bcdf4c75a6b665c43ad
-commit 7646039ad9672b267495f5b31925473ad3022ac8
+commit 1e2892009e591804df6286caebd5c960e7e3b099
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Sun May 6 22:02:19 2012 -0700
+Date: Tue Aug 21 18:00:54 2012 -0700
- Kashif's corrections to the docs
+ Update Summary::FullReport to report dogleg type.
+
+ Change-Id: I0b4be8d7486c1c4b36b299693b3fe8b0d3426537
-commit 0d2d34148d10c5c7e924b3ca82ad2b237573ef64
+commit 295ade1122a86b83e1ea605d5ca394f315874717
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Sun May 6 21:16:03 2012 -0700
+Date: Wed Aug 22 06:51:22 2012 -0700
- glog minimum version requirements
+ Fix Eigen3 Row/Column Major storage issue.
- Building Ceres requires version 0.3.1 or better of glog.
- Fedora 16 ships with a busted version 0.3.
+ Eigen3 does not allow column vectors to be stored in row-major
+ format. NumericDiffCostFunction by default stores its Jacobian
+ matrices in row-major format. This works fine if the residual
+ contains more than one variable. But if the residual block
+ depends on one variable and has more than one residuals, the
+ resulting Jacobian matrix is a column matrix in row-major format
+ resulting in a compile time error.
- issue 15 contains the gory details.
+ The fix is to check the template parameters and switch to column-major
+ storage as needed.
- Added a note to the build documentation to this effect.
+ Thanks to Lena Gieseke for reporting this.
+
+ Change-Id: Icc51c5b38e1f3609e0e1ecb3c4e4a02aecd72c3b
-commit 39efc5ec4b64b8f5a2c5a3dbacdbc45421221547
-Author: Keir Mierle <mierle@gmail.com>
-Date: Sun May 6 16:09:52 2012 -0700
+commit 9ad27e8e9fb1bbd2054e2f6ae37623e01428f1c0
+Author: Arnaud Gelas <arnaudgelas@gmail.com>
+Date: Tue Aug 21 09:56:30 2012 +0200
- Fix tests broken by the CGNR change.
+ Add one uninstall target to remove all installed files
+
+ Change-Id: Ifcf89a6c27b25f28403d95a50e29c093a525298f
-commit 3faa08b7f7c4ac73661c6a15a6824c12080dfcb1
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Sun May 6 16:08:22 2012 -0700
+commit 0c3a748ee49e04fe334f8f5a433649d18003d550
+Author: Markus Moll <markus.moll@esat.kuleuven.be>
+Date: Tue Aug 21 14:44:59 2012 +0200
- Formatting fixed based on Keir's comments and extended the tests
+ Allow equal lower and upper bound for diagonal scaling.
+
+ This way, setting the lower and upper bound both to 1.0, one can disable
+ the automatic trust region scaling.
+
+ Change-Id: Ifa317a6911b813a89c1cf7fdfde25af603705319
-commit 4f21c68409bc478c431a9b6aedf9e5cfdf11d2f3
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Sun May 6 15:33:47 2012 -0700
+commit 3d644b76adefac6475b91dc53c3ae5e01c4f4d66
+Author: Arnaud Gelas <arnaudgelas@gmail.com>
+Date: Thu Aug 16 17:33:21 2012 +0200
- Fix the struct weak ordering used by independent set ordering, tests for it
+ Install headers, libraries and pdf
+
+ Headers are installed in ${CMAKE_INSTALL_PREFIX}/include/ceres
+ Libraries are installed in ${CMAKE_INSTALL_PREFIX}/lib
+ pdf is installed in ${CMAKE_INSTALL_PREFIX}/share/ceres/docs
+
+ Change-Id: Ic175f2c2f5fa86820a1e8c64c2ed171f4a302a68
-commit 887b156b917ccd4c172484452b059d33ea45f4f0
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Sun May 6 15:14:47 2012 -0700
+commit d2fb5adea4d8c2aeb43c4289c6976798a54d3cf1
+Author: Arnaud Gelas <arnaudgelas@gmail.com>
+Date: Fri Aug 17 10:11:02 2012 +0200
- fix he degree ordering routine
+ Configure gerrit hook at CMake time
+
+ If the source directory is a clone, at CMake time the commit-msg hook gets
+ downloaded and installed in the right location.
+
+ Change-Id: I5fee17d050ca22d8b92a49fdcc2a1cd6659f209b
-commit ecd7c8df2af19404dc394b36bbe96e9db3bce840
-Author: Keir Mierle <mierle@gmail.com>
-Date: Sun May 6 00:09:41 2012 -0700
+commit 73166098fc4b1072adc30321c666188a3909c43c
+Author: Arnaud Gelas <arnaudgelas@gmail.com>
+Date: Mon Aug 20 15:40:41 2012 +0200
- First step towards windows compatibilty
+ Add one CMake option to build the examples.
+
+ Currently the examples are always built. For external projects, it is useful
+ not to compile the examples.
- This adds some small changes to Ceres to make it mostly
- compile on Windows. There are still issues with the
- hash map use in schur_ordering.cc but I will fix those
- shortly.
+ Change-Id: I41d3bde19c7e742818e60f78222d39c43992ca8b
-commit f7898fba1b92f0e996571b5bfa22a37f5e3644de
+commit 86d4f1ba41ef14eb1b6b61a7936af83387b35eb2
Author: Keir Mierle <mierle@gmail.com>
-Date: Sat May 5 20:55:08 2012 -0700
+Date: Mon Aug 20 11:52:04 2012 -0700
- Add a general sparse iterative solver: CGNR
+ Add missing return statement.
- This adds a new LinearOperator which implements symmetric
- products of a matrix, and a new CGNR solver to leverage
- CG to directly solve the normal equations. This also
- includes a block diagonal preconditioner. In experiments
- on problem-16, the non-preconditioned version is about
- 1/5 the speed of SPARSE_SCHUR, and the preconditioned
- version using block cholesky is about 20% slower than
- SPARSE_SCHUR.
+ Change-Id: I5eaf718318e27040e3c97e32ee46cf0a11176a37
-commit 0a359d6198d257776a8831c3eb98f64ee91cf836
+commit 51eb229da34187a4e8ce73ed9cc0e731998bb2be
Author: Keir Mierle <mierle@gmail.com>
-Date: Sat May 5 20:33:46 2012 -0700
+Date: Mon Aug 20 11:46:12 2012 -0700
- Comment formatting.
+ Add Program::ToString() to aid debugging.
+
+ Change-Id: I0ab37ed2fe0947ca87a152919d4e7dc9b56dedc6
-commit db4ec9312bb2f1ca7b2337812f6bad6cdd75b227
+commit bcc7100635e2047dc2b77df19a4ded8a6ab4d4b9
Author: Keir Mierle <mierle@gmail.com>
-Date: Sat May 5 20:33:16 2012 -0700
+Date: Mon Aug 20 11:45:04 2012 -0700
- Comment formatting
+ Ignore minted.sty.
+
+ Change-Id: I2467a6f801812b9007b51bf14b00757f026e4322
-commit f10163aaf3e57f52551bcd60bbdae873890a49dd
+commit 9705a736dd3d6fbead0d8a6ff77102c69bbcdc08
Author: Keir Mierle <mierle@gmail.com>
-Date: Fri May 4 21:33:53 2012 -0700
+Date: Mon Aug 20 11:24:05 2012 -0700
- Warn about disabled schur specializations.
+ Add ParameterBlock::ToString() to aid debugging.
- This commit brought to you from 30,000ft.
+ Change-Id: Id3f5cb27b855c536dd65a986f345bd8eb2799dfa
-commit ad7b2b4aaf3ccc51f2b854febd53a9df54686cfe
-Author: Keir Mierle <mierle@gmail.com>
-Date: Fri May 4 20:15:28 2012 -0700
+commit 0c714a70e6123ceb68e5cfcd3cfbee0d09deb1db
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Mon Aug 20 11:18:16 2012 -0700
+
+ Fix blanks before private in loss_function.h
+
+ Change-Id: I068bed6431bc7c9b7958af391655df61499000b2
+
+commit 51cf7cbe3bac45c6807c2703a2fc3175d76a1b47
+Author: Markus Moll <markus.moll@esat.kuleuven.be>
+Date: Mon Aug 20 20:10:20 2012 +0200
+
+ Add the two-dimensional subspace search to DoglegStrategy
+
+ Change-Id: I5163744c100cdf07dd93343d0734ffe0e80364f3
- Add vim swapfiles to .gitignore
+commit ad1f7b772e559a911ac3a3b078b0aee1836fe785
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Mon Aug 20 11:10:34 2012 -0700
+
+ Add ArcTanLoss, TolerantLoss and ComposedLossFunction.
+
+ Based on work by James Roseborough.
+
+ Change-Id: Idc4e0b099028f67702bfc7fe3e43dbd96b6f9256
-commit 6447219826bf6e47b0c99d9ff0eaf5e2ba573d79
+commit 05292bf8fc5208b86b4a13544615b584f6efa936
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Thu May 3 21:53:07 2012 -0700
+Date: Mon Aug 20 07:40:45 2012 -0700
+
+ Add a TrustRegionStrategy::Summary object.
+
+ Change-Id: I7caee35a3408ee4a0ec16ba407410d822929340d
- 1. Changes the tutorial to refer to BriefReport.
- 2. Some of the enums have commas at the end.
- 3. Fix a bug in the default value of circle_fit.cc in the examples.
+commit b12b906c4d21c3949f0dce62c4c0d083c8edecf1
+Author: Arnaud Gelas <arnaudgelas@gmail.com>
+Date: Wed Aug 15 16:27:38 2012 +0200
-commit 30c5f93c7f88dec49f76168663372772e06f17f5
+ Add one option to generate the PDF from CMake at build time
+
+ Make sure pygmentize is installed
+
+ Change-Id: I068ba45c33a8e96acc906a464b12d10d58b3e231
+
+commit b9f15a59361c609ffc4a328aea9be3d265b5da81
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Thu May 3 10:44:43 2012 -0700
+Date: Sat Aug 18 13:06:19 2012 -0700
+
+ Add a dense Cholesky factorization based linear solver.
+
+ For problems with a small number of variables, but a large
+ number of residuals, it is sometimes beneficial to use the
+ Cholesky factorization on the normal equations, instead of
+ the dense QR factorization of the Jacobian, even though it
+ is numerically the better thing to do.
+
+ Change-Id: I3506b006195754018deec964e6e190b7e8c9ac8f
- Rework the glog and gtest path checking to be consistent with the rest of the file and disable the dashboard support enabled by the earlier ctesting related patch.
+commit b3fa009435acf476cd373052e62988f6437970b1
+Author: Arnaud Gelas <arnaudgelas@gmail.com>
+Date: Fri Aug 17 10:31:41 2012 +0200
-commit f10b033eb4aca77919987bc551d16d8a88b10110
-Merge: cc38774 e0a52a9
+ Set CMAKE_*_OUTPUT_DIRECTORY
+
+ Gather
+ * all executables in ${CMAKE_BINARY_DIR}/bin
+ * all libraries (static and dynamic) in ${CMAKE_BINARY_DIR}/lib
+
+ Change-Id: Ibc2fa1adfb6f0aea65d66d570259b79546bf3b07
+
+commit 1b8a4d5d11671ed83cf6077e363dd95333f08ef8
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Thu May 3 08:45:20 2012 -0700
+Date: Fri Aug 17 16:49:11 2012 -0700
+
+ Fix a minor bug in detect_structure logging.
+
+ Change-Id: I117f7745e4c67595b3ff9244cde82b5b5b34ee4b
- Merge branch 'ctest'
+commit 31c1e784ab2cb9294c6e05414cf06aae2b3766de
+Author: Keir Mierle <mierle@gmail.com>
+Date: Fri Aug 17 16:16:32 2012 -0700
+
+ Minor cleanups.
+
+ Change-Id: Ida4866997deeaa1bc2cebd6b69313a05ac82e457
-commit e0a52a993394e73bc7f7db8d520728926feab83e
+commit e83f7879a8b21c6976e116958caf35bcdcf41cb0
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Thu May 3 08:43:34 2012 -0700
+Date: Fri Aug 17 15:34:42 2012 -0700
- Arnaus Gelas' patch to add better path searching for gflags and glog
+ Fix SuiteSparse3 UFConfig.h detection really.
+
+ Change-Id: Id187102e755b7d778dff4363f22f9a4697ed12dd
-commit a9b8e815e1c026599734510399b10f4cf014c9cd
+commit 96f25dc57658d296ee6b6633818b4f1e51d7d587
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Thu May 3 08:41:52 2012 -0700
+Date: Fri Aug 17 15:34:42 2012 -0700
+
+ Fix SuiteSparse3 UFConfig.h detection.
+
+ Change-Id: Ia59aefdb0ad7f713f76ed79692f2db4fa2821e5b
+
+commit c497bd6cd9aa944f518aa491d3bc645851ff9594
+Author: Markus Moll <markus.moll@esat.kuleuven.be>
+Date: Fri Aug 17 14:40:13 2012 +0200
- Arnaus Gelas' patch to add .gitignore
+ Add UFconfig and/or SuiteSparse_config test to CMakeLists.txt
+
+ SuiteSparse 4 requires linking to libsuitesparseconfig.a.
+ Both SuiteSparse 3 and SuiteSparse 4 require an additional header
+ (either UFconfig.h or SuiteSparse_config.h) that is not found if it is
+ in a separate path. Therefore, add explicit checks.
+
+ Change-Id: I699902b5db4f1b7f17134b5a54f9aa681445e294
-commit a0cefc3347c32b2065053bbaff4f34d11529d931
+commit 383c04f4236d92801c7c674892814362dedf7ad6
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Thu May 3 08:38:33 2012 -0700
+Date: Fri Aug 17 10:14:04 2012 -0700
- Arnaus Gelas' patch to move to Ctest
+ Fix QuaternionToAngleAxis to ensure rotations are between -pi and pi.
+
+ Thanks to Guoxuan Zhang for reporting this.
+
+ Change-Id: I2831ca3a04d5dc6467849c290461adbe23faaea3
-commit cc38774d74e287704915282425fbd16818a72ec3
-Author: Keir Mierle <mierle@gmail.com>
-Date: Thu May 3 01:27:50 2012 -0700
+commit dd2b17d7dd9750801ba4720bdece2062e59b7ae3
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Thu Aug 16 19:34:57 2012 -0700
- Clarify ProgramEvaluator comments.
+ CERES_DONT_HAVE_PROTOCOL_BUFFERS -> CERES_NO_PROTOCOL_BUFFERS.
+
+ Change-Id: I6c9f50e4c006faf4e75a8f417455db18357f3187
-commit 017c9530df557863f78212fb5ccd02814baa9fa8
+commit 8b4cb7aa2c74a0da62c638b2023566aa242af995
Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Wed May 2 08:21:59 2012 -0700
+Date: Thu Aug 16 19:26:55 2012 -0700
- Mac OS X build instructions are much simpler, as homebrew takes care of gflags when glog is brought in. Also CMAKE does not need any flags to do the default thing
+ Fix sparse linear algebra library logging in Summary::FullReport.
+
+ Change-Id: Id2c902dc86c00954fde7749c7b4a67dd94215a31
-commit 92d5ab5f8ae6fe355c30b606a5f230415ee0494b
-Author: Keir Mierle <mierle@gmail.com>
-Date: Tue May 1 18:33:08 2012 -0700
+commit 47d26bcd3b38b5ff53b34768c33b499d47b26bd0
+Author: Markus Moll <markus.moll@esat.kuleuven.be>
+Date: Thu Aug 16 00:23:38 2012 +0200
- Link BLAS explicitly on non-Mac platforms
+ Do not implicitly negate the step in the TrustRegionMinimizer.
- Fixes issue #3.
+ In the TrustRegionMinimizer, the step is currently implicitly negated.
+ This is done so that the linearized residual is |r - J*step|^2, which
+ corresponds to J*step = r, so neither J nor r have to be modified.
+ However, it leads to the rather unintuitive situation that the strategy
+ returns a step in positive gradient direction, which you would expect to
+ increase the function value. One way is to rename the "step" parameter in
+ the strategy to "negative_step" and document it.
+ This patch instead moves the negation inside the strategy, just around
+ the linear solver call, so that it is done in a local context and easier
+ to document.
+
+ Change-Id: Idb258149a01f61c64e22128ea221c5a30cd89c89
-commit df3e54eb4a6b001b7f0560a2da73a5bd7f18615e
-Author: Keir Mierle <mierle@gmail.com>
-Date: Tue May 1 18:22:51 2012 -0700
+commit 51da590c8457e6664f76fe9813425a0c71351497
+Author: Markus Moll <markus.moll@esat.kuleuven.be>
+Date: Fri Aug 17 12:56:09 2012 +0200
+
+ Remove tmp file
+
+ Change-Id: I07496fafae7b0c5c12cc26ae336e0db3b5592735
+
+commit 7006a1f2b1701b8d89b8d1525fc0101943802221
+Author: Sameer Agarwal <sameeragarwal@google.com>
+Date: Thu Aug 16 18:04:22 2012 -0700
- Fix link order of CHOLMOD
+ Correct example code in Powell's function example.
+
+ Thanks to Petter Strandmark for pointing this out.
- This was working by accident due to dynamic linking. Fixes issue #2.
+ Change-Id: I967632235dccdb481396e94904bb911c9a1efe1e
-commit f477a3835329e2b48eb20c34c631a480b0f0d5bf
+commit 57a44b27bc6fc95b4e70fdc25c25c9925a2072a0
Author: Keir Mierle <mierle@gmail.com>
-Date: Tue May 1 18:10:48 2012 -0700
+Date: Thu Aug 16 17:04:50 2012 -0700
- Fix Eigen search paths
+ Remove unnecessary flags in NDK build.
- Fixes issue #1 on http://code.google.com/p/ceres-solver.
+ Change-Id: Ib5b4d0b7f2d898671252734978c789b8171d96a8
-commit 17fbc8ebb894c1d22bb3b0b02ea1394b580120f8
-Author: Sameer Agarwal <sameeragarwal@google.com>
-Date: Tue May 1 00:21:19 2012 -0700
+commit f21bee247251a8b2e836c215a84c4668c31d75cd
+Author: Keir Mierle <mierle@gmail.com>
+Date: Thu Aug 16 16:27:10 2012 -0700
- Minor changes to the documentation. Formatting, and typos.
+ Fix for fpclassify.h NDK porting work.
+
+ Change-Id: I69df1b4caf2941ed96a53e35e43ec54073f84f59
-commit 8ebb0730388045570f22b89fe8672c860cd2ad1b
+commit 8ceb02cb75b66602de44a35e413225386cb21c27
Author: Keir Mierle <mierle@gmail.com>
-Date: Mon Apr 30 23:09:08 2012 -0700
+Date: Thu Aug 16 14:23:47 2012 -0700
- Initial commit of Ceres Solver.
+ Add Android NDK build files.
+
+ This adds a Android.mk build that builds a Ceres static library
+ suitable for embetting in larger Android applications. This is
+ useful when needing to build Ceres without GPL'd components, since
+ the standalone toolchain (needed for the CMake Android build) does
+ not work with STLPort.
+
+ Change-Id: I8d857237f6f82658741017d161b2e31d9a20e5a7
diff --git a/extern/libmv/third_party/ceres/SConscript b/extern/libmv/third_party/ceres/SConscript
index 6b5f1b8d64d..6d0d2cd5c40 100644
--- a/extern/libmv/third_party/ceres/SConscript
+++ b/extern/libmv/third_party/ceres/SConscript
@@ -20,11 +20,20 @@ defs.append('CERES_HAVE_PTHREAD')
defs.append('CERES_HASH_NAMESPACE_START=namespace std { namespace tr1 {')
defs.append('CERES_HASH_NAMESPACE_END=}}')
defs.append('CERES_NO_SUITESPARSE')
-defs.append('CERES_DONT_HAVE_PROTOCOL_BUFFERS')
+defs.append('CERES_NO_CXSPARSE')
+defs.append('CERES_NO_PROTOCOL_BUFFERS')
defs.append('CERES_RESTRICT_SCHUR_SPECIALIZATION')
+if 'Mac OS X 10.5' in env['MACOSX_SDK_CHECK']:
+ defs.append('CERES_NO_TR1')
+
incs = '. ../../ ../../../Eigen3 ./include ./internal ../gflags'
+# work around broken hashtable in 10.5 SDK
+if env['OURPLATFORM'] == 'darwin' and env['WITH_BF_BOOST']:
+ incs += ' ' + env['BF_BOOST_INC']
+ defs.append('CERES_HASH_BOOST')
+
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc', 'win64-mingw'):
if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
incs += ' ../msinttypes'
diff --git a/extern/libmv/third_party/ceres/bundle.sh b/extern/libmv/third_party/ceres/bundle.sh
index 99aaadd8d87..902fce5f398 100755
--- a/extern/libmv/third_party/ceres/bundle.sh
+++ b/extern/libmv/third_party/ceres/bundle.sh
@@ -1,6 +1,5 @@
#!/bin/sh
-if false; then
if [ "x$1" = "x--i-really-know-what-im-doing" ] ; then
echo Proceeding as requested by command line ...
else
@@ -8,16 +7,22 @@ else
exit 1
fi
-repo="https://code.google.com/p/ceres-solver/"
-branch="windows"
+repo="https://ceres-solver.googlesource.com/ceres-solver"
+branch="master"
+tag="1.3.0"
tmp=`mktemp -d`
+checkout="$tmp/ceres"
-GIT="git --git-dir $tmp/ceres/.git --work-tree $tmp/ceres"
+GIT="git --git-dir $tmp/ceres/.git --work-tree $checkout"
-git clone $repo $tmp/ceres
+git clone $repo $checkout
if [ $branch != "master" ]; then
$GIT checkout -t remotes/origin/$branch
+else
+ if [ "x$tag" != "x" ]; then
+ $GIT checkout $tag
+ fi
fi
$GIT log -n 50 > ChangeLog
@@ -37,8 +42,6 @@ done
rm -rf $tmp
-fi
-
sources=`find ./include ./internal -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | sed -r 's/^\.\//\t/' | grep -v -E 'schur_eliminator_[0-9]_[0-9]_[0-9d].cc' | sort -d`
generated_sources=`find ./include ./internal -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | sed -r 's/^\.\//#\t\t/' | grep -E 'schur_eliminator_[0-9]_[0-9]_[0-9d].cc' | sort -d`
headers=`find ./include ./internal -type f -iname '*.h' | sed -r 's/^\.\//\t/' | sort -d`
@@ -142,7 +145,7 @@ if(WIN32)
if(NOT MINGW)
list(APPEND INC
- third_party/msinttypes
+ ../msinttypes
)
endif()
else()
@@ -153,13 +156,32 @@ endif()
add_definitions(
-DCERES_HAVE_PTHREAD
- -D"CERES_HASH_NAMESPACE_START=namespace std { namespace tr1 {"
- -D"CERES_HASH_NAMESPACE_END=}}"
-DCERES_NO_SUITESPARSE
- -DCERES_DONT_HAVE_PROTOCOL_BUFFERS
+ -DCERES_NO_CXSPARSE
+ -DCERES_NO_PROTOCOL_BUFFERS
-DCERES_RESTRICT_SCHUR_SPECIALIZATION
)
+if(MSVC10)
+ add_definitions(
+ -D"CERES_HASH_NAMESPACE_START=namespace std {"
+ -D"CERES_HASH_NAMESPACE_END=}"
+ )
+else()
+ add_definitions(
+ -D"CERES_HASH_NAMESPACE_START=namespace std { namespace tr1 {"
+ -D"CERES_HASH_NAMESPACE_END=}}"
+ )
+endif()
+
+if(APPLE)
+ if(CMAKE_OSX_DEPLOYMENT_TARGET STREQUAL "10.5")
+ add_definitions(
+ -DCERES_NO_TR1
+ )
+ endif()
+endif()
+
blender_add_lib(extern_ceres "\${SRC}" "\${INC}" "\${INC_SYS}")
EOF
@@ -186,11 +208,20 @@ defs.append('CERES_HAVE_PTHREAD')
defs.append('CERES_HASH_NAMESPACE_START=namespace std { namespace tr1 {')
defs.append('CERES_HASH_NAMESPACE_END=}}')
defs.append('CERES_NO_SUITESPARSE')
-defs.append('CERES_DONT_HAVE_PROTOCOL_BUFFERS')
+defs.append('CERES_NO_CXSPARSE')
+defs.append('CERES_NO_PROTOCOL_BUFFERS')
defs.append('CERES_RESTRICT_SCHUR_SPECIALIZATION')
+if 'Mac OS X 10.5' in env['MACOSX_SDK_CHECK']:
+ defs.append('CERES_NO_TR1')
+
incs = '. ../../ ../../../Eigen3 ./include ./internal ../gflags'
+# work around broken hashtable in 10.5 SDK
+if env['OURPLATFORM'] == 'darwin' and env['WITH_BF_BOOST']:
+ incs += ' ' + env['BF_BOOST_INC']
+ defs.append('CERES_HASH_BOOST')
+
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc', 'win64-mingw'):
if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
incs += ' ../msinttypes'
diff --git a/extern/libmv/third_party/ceres/files.txt b/extern/libmv/third_party/ceres/files.txt
index e9d7f585260..55083572977 100644
--- a/extern/libmv/third_party/ceres/files.txt
+++ b/extern/libmv/third_party/ceres/files.txt
@@ -2,6 +2,8 @@ include/ceres/autodiff_cost_function.h
include/ceres/ceres.h
include/ceres/conditioned_cost_function.h
include/ceres/cost_function.h
+include/ceres/crs_matrix.h
+include/ceres/fpclassify.h
include/ceres/internal/autodiff.h
include/ceres/internal/eigen.h
include/ceres/internal/fixed_array.h
@@ -20,6 +22,8 @@ include/ceres/rotation.h
include/ceres/sized_cost_function.h
include/ceres/solver.h
include/ceres/types.h
+internal/ceres/array_utils.cc
+internal/ceres/array_utils.h
internal/ceres/block_evaluate_preparer.cc
internal/ceres/block_evaluate_preparer.h
internal/ceres/block_jacobian_writer.cc
@@ -52,13 +56,19 @@ internal/ceres/conjugate_gradients_solver.cc
internal/ceres/conjugate_gradients_solver.h
internal/ceres/corrector.cc
internal/ceres/corrector.h
+internal/ceres/cxsparse.cc
+internal/ceres/cxsparse.h
internal/ceres/dense_jacobian_writer.h
+internal/ceres/dense_normal_cholesky_solver.cc
+internal/ceres/dense_normal_cholesky_solver.h
internal/ceres/dense_qr_solver.cc
internal/ceres/dense_qr_solver.h
internal/ceres/dense_sparse_matrix.cc
internal/ceres/dense_sparse_matrix.h
internal/ceres/detect_structure.cc
internal/ceres/detect_structure.h
+internal/ceres/dogleg_strategy.cc
+internal/ceres/dogleg_strategy.h
internal/ceres/evaluator.cc
internal/ceres/evaluator.h
internal/ceres/file.cc
@@ -79,6 +89,7 @@ internal/ceres/generated/schur_eliminator_4_4_3.cc
internal/ceres/generated/schur_eliminator_4_4_4.cc
internal/ceres/generated/schur_eliminator_4_4_d.cc
internal/ceres/generated/schur_eliminator_d_d_d.cc
+internal/ceres/generate_eliminator_specialization.py
internal/ceres/gradient_checking_cost_function.cc
internal/ceres/gradient_checking_cost_function.h
internal/ceres/graph_algorithms.h
@@ -88,8 +99,8 @@ internal/ceres/implicit_schur_complement.h
internal/ceres/integral_types.h
internal/ceres/iterative_schur_complement_solver.cc
internal/ceres/iterative_schur_complement_solver.h
-internal/ceres/levenberg_marquardt.cc
-internal/ceres/levenberg_marquardt.h
+internal/ceres/levenberg_marquardt_strategy.cc
+internal/ceres/levenberg_marquardt_strategy.h
internal/ceres/linear_least_squares_problems.cc
internal/ceres/linear_least_squares_problems.h
internal/ceres/linear_operator.cc
@@ -106,6 +117,8 @@ internal/ceres/normal_prior.cc
internal/ceres/parameter_block.h
internal/ceres/partitioned_matrix_view.cc
internal/ceres/partitioned_matrix_view.h
+internal/ceres/polynomial_solver.cc
+internal/ceres/polynomial_solver.h
internal/ceres/problem.cc
internal/ceres/problem_impl.cc
internal/ceres/problem_impl.h
@@ -136,6 +149,7 @@ internal/ceres/sparse_matrix.h
internal/ceres/sparse_normal_cholesky_solver.cc
internal/ceres/sparse_normal_cholesky_solver.h
internal/ceres/split.cc
+internal/ceres/split.h
internal/ceres/stl_util.h
internal/ceres/stringprintf.cc
internal/ceres/stringprintf.h
@@ -143,6 +157,10 @@ internal/ceres/suitesparse.cc
internal/ceres/suitesparse.h
internal/ceres/triplet_sparse_matrix.cc
internal/ceres/triplet_sparse_matrix.h
+internal/ceres/trust_region_minimizer.cc
+internal/ceres/trust_region_minimizer.h
+internal/ceres/trust_region_strategy.cc
+internal/ceres/trust_region_strategy.h
internal/ceres/types.cc
internal/ceres/visibility_based_preconditioner.cc
internal/ceres/visibility_based_preconditioner.h
diff --git a/extern/libmv/third_party/ceres/include/ceres/autodiff_cost_function.h b/extern/libmv/third_party/ceres/include/ceres/autodiff_cost_function.h
index e86d6993864..da9ee2c7993 100644
--- a/extern/libmv/third_party/ceres/include/ceres/autodiff_cost_function.h
+++ b/extern/libmv/third_party/ceres/include/ceres/autodiff_cost_function.h
@@ -163,7 +163,7 @@ class AutoDiffCostFunction :
explicit AutoDiffCostFunction(CostFunctor* functor)
: functor_(functor) {
CHECK_NE(M, DYNAMIC) << "Can't run the fixed-size constructor if the "
- << "number of residuals is set to ceres::DYNAMIC.";
+ << "number of residuals is set to ceres::DYNAMIC.";
}
// Takes ownership of functor. Ignores the template-provided number of
@@ -174,7 +174,7 @@ class AutoDiffCostFunction :
AutoDiffCostFunction(CostFunctor* functor, int num_residuals)
: functor_(functor) {
CHECK_EQ(M, DYNAMIC) << "Can't run the dynamic-size constructor if the "
- << "number of residuals is not ceres::DYNAMIC.";
+ << "number of residuals is not ceres::DYNAMIC.";
SizedCostFunction<M, N0, N1, N2, N3, N4, N5>::set_num_residuals(num_residuals);
}
diff --git a/extern/libmv/third_party/ceres/include/ceres/cost_function.h b/extern/libmv/third_party/ceres/include/ceres/cost_function.h
index 84403d90636..9b010f78f9d 100644
--- a/extern/libmv/third_party/ceres/include/ceres/cost_function.h
+++ b/extern/libmv/third_party/ceres/include/ceres/cost_function.h
@@ -119,7 +119,7 @@ class CostFunction {
// number of outputs (residuals).
vector<int16> parameter_block_sizes_;
int num_residuals_;
- DISALLOW_COPY_AND_ASSIGN(CostFunction);
+ CERES_DISALLOW_COPY_AND_ASSIGN(CostFunction);
};
} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/include/ceres/crs_matrix.h b/extern/libmv/third_party/ceres/include/ceres/crs_matrix.h
new file mode 100644
index 00000000000..c9fe8f78b7c
--- /dev/null
+++ b/extern/libmv/third_party/ceres/include/ceres/crs_matrix.h
@@ -0,0 +1,65 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: sameeragarwal@google.com (Sameer Agarwal)
+
+#ifndef CERES_PUBLIC_CRS_MATRIX_H_
+#define CERES_PUBLIC_CRS_MATRIX_H_
+
+#include <vector>
+#include "ceres/internal/port.h"
+
+namespace ceres {
+
+// A compressed row sparse matrix used primarily for communicating the
+// Jacobian matrix to the user.
+struct CRSMatrix {
+ CRSMatrix() : num_rows(0), num_cols(0) {}
+
+ int num_rows;
+ int num_cols;
+
+ // A compressed row matrix stores its contents in three arrays.
+ // The non-zero pattern of the i^th row is given by
+ //
+ // rows[cols[i] ... cols[i + 1]]
+ //
+ // and the corresponding values by
+ //
+ // values[cols[i] ... cols[i + 1]]
+ //
+ // Thus, cols is a vector of size num_cols + 1, and rows and values
+ // have as many entries as number of non-zeros in the matrix.
+ vector<int> cols;
+ vector<int> rows;
+ vector<double> values;
+};
+
+} // namespace ceres
+
+#endif // CERES_PUBLIC_CRS_MATRIX_H_
diff --git a/extern/libmv/third_party/ceres/include/ceres/fpclassify.h b/extern/libmv/third_party/ceres/include/ceres/fpclassify.h
new file mode 100644
index 00000000000..5a9ea1599d2
--- /dev/null
+++ b/extern/libmv/third_party/ceres/include/ceres/fpclassify.h
@@ -0,0 +1,88 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: keir@google.com (Keir Mierle)
+//
+// Portable floating point classification. The names are picked such that they
+// do not collide with macros. For example, "isnan" in C99 is a macro and hence
+// does not respect namespaces.
+//
+// TODO(keir): Finish porting!
+
+#ifndef CERES_PUBLIC_FPCLASSIFY_H_
+#define CERES_PUBLIC_FPCLASSIFY_H_
+
+#if defined(_MSC_VER)
+#include <float.h>
+#endif
+
+namespace ceres {
+
+#if defined(_MSC_VER)
+inline bool IsFinite (double x) { return _finite(x); }
+inline bool IsInfinite(double x) { return !_finite(x) && !_isnan(x); }
+inline bool IsNaN (double x) { return _isnan(x); }
+inline bool IsNormal (double x) {
+ int classification = _fpclass(x);
+ return classification == _FPCLASS_NN ||
+ classification == _FPCLASS_PN;
+}
+#elif defined(ANDROID)
+
+// On Android when using the GNU STL, the C++ fpclassify functions are not
+// available. Strictly speaking, the std functions are are not standard until
+// C++11. Instead use the C99 macros on Android.
+inline bool IsNaN (double x) { return isnan(x); }
+inline bool IsNormal (double x) { return isnormal(x); }
+
+// On Android NDK r6, when using STLPort, the isinf and isfinite functions are
+// not available, so reimplement them.
+# if defined(_STLPORT_VERSION)
+inline bool IsInfinite(double x) {
+ return x == std::numeric_limits<double>::infinity() ||
+ x == -std::numeric_limits<double>::infinity();
+}
+inline bool IsFinite(double x) {
+ return !isnan(x) && !IsInfinite(x);
+}
+# else
+inline bool IsFinite (double x) { return isfinite(x); }
+inline bool IsInfinite(double x) { return isinf(x); }
+# endif // defined(_STLPORT_VERSION)
+#else
+// These definitions are for the normal Unix suspects.
+// TODO(keir): Test the "else" with more platforms.
+inline bool IsFinite (double x) { return std::isfinite(x); }
+inline bool IsInfinite(double x) { return std::isinf(x); }
+inline bool IsNaN (double x) { return std::isnan(x); }
+inline bool IsNormal (double x) { return std::isnormal(x); }
+#endif
+
+} // namespace ceres
+
+#endif // CERES_PUBLIC_FPCLASSIFY_H_
diff --git a/extern/libmv/third_party/ceres/include/ceres/internal/fixed_array.h b/extern/libmv/third_party/ceres/include/ceres/internal/fixed_array.h
index 84617c4fa06..ce777d22dc7 100644
--- a/extern/libmv/third_party/ceres/include/ceres/internal/fixed_array.h
+++ b/extern/libmv/third_party/ceres/include/ceres/internal/fixed_array.h
@@ -34,6 +34,8 @@
#include <cstddef>
#include <glog/logging.h>
+#include "Eigen/Core"
+#include "ceres/internal/macros.h"
#include "ceres/internal/manual_constructor.h"
namespace ceres {
@@ -136,7 +138,6 @@ class FixedArray {
// and T must be the same, otherwise callers' assumptions about use
// of this code will be broken.
struct InnerContainer {
- EIGEN_MAKE_ALIGNED_OPERATOR_NEW
T element;
};
diff --git a/extern/libmv/third_party/ceres/include/ceres/internal/macros.h b/extern/libmv/third_party/ceres/include/ceres/internal/macros.h
index 0cfd773bcca..83ec31193e7 100644
--- a/extern/libmv/third_party/ceres/include/ceres/internal/macros.h
+++ b/extern/libmv/third_party/ceres/include/ceres/internal/macros.h
@@ -43,11 +43,13 @@
//
// For disallowing only assign or copy, write the code directly, but declare
// the intend in a comment, for example:
-// void operator=(const TypeName&); // DISALLOW_ASSIGN
-// Note, that most uses of DISALLOW_ASSIGN and DISALLOW_COPY are broken
-// semantically, one should either use disallow both or neither. Try to
-// avoid these in new code.
-#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
+//
+// void operator=(const TypeName&); // _DISALLOW_ASSIGN
+
+// Note, that most uses of CERES_DISALLOW_ASSIGN and CERES_DISALLOW_COPY
+// are broken semantically, one should either use disallow both or
+// neither. Try to avoid these in new code.
+#define CERES_DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&); \
void operator=(const TypeName&)
@@ -57,9 +59,9 @@
// This should be used in the private: declarations for a class
// that wants to prevent anyone from instantiating it. This is
// especially useful for classes containing only static methods.
-#define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
+#define CERES_DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
TypeName(); \
- DISALLOW_COPY_AND_ASSIGN(TypeName)
+ CERES_DISALLOW_COPY_AND_ASSIGN(TypeName)
// The arraysize(arr) macro returns the # of elements in an array arr.
// The expression is a compile-time constant, and therefore can be
@@ -151,4 +153,19 @@ char (&ArraySizeHelper(const T (&array)[N]))[N];
#define MUST_USE_RESULT
#endif
+// Platform independent macros to get aligned memory allocations.
+// For example
+//
+// MyFoo my_foo CERES_ALIGN_ATTRIBUTE(16);
+//
+// Gives us an instance of MyFoo which is aligned at a 16 byte
+// boundary.
+#if defined(_MSC_VER)
+#define CERES_ALIGN_ATTRIBUTE(n) __declspec(align(n))
+#define CERES_ALIGN_OF(T) __alignof(T)
+#elif defined(__GNUC__)
+#define CERES_ALIGN_ATTRIBUTE(n) __attribute__((aligned(n)))
+#define CERES_ALIGN_OF(T) __alignof(T)
+#endif
+
#endif // CERES_PUBLIC_INTERNAL_MACROS_H_
diff --git a/extern/libmv/third_party/ceres/include/ceres/internal/manual_constructor.h b/extern/libmv/third_party/ceres/include/ceres/internal/manual_constructor.h
index a1d1f444e36..174d35ee2bd 100644
--- a/extern/libmv/third_party/ceres/include/ceres/internal/manual_constructor.h
+++ b/extern/libmv/third_party/ceres/include/ceres/internal/manual_constructor.h
@@ -45,60 +45,49 @@
namespace ceres {
namespace internal {
-// ------- Define ALIGNED_CHAR_ARRAY --------------------------------
+// ------- Define CERES_ALIGNED_CHAR_ARRAY --------------------------------
-#ifndef ALIGNED_CHAR_ARRAY
+#ifndef CERES_ALIGNED_CHAR_ARRAY
// Because MSVC and older GCCs require that the argument to their alignment
// construct to be a literal constant integer, we use a template instantiated
// at all the possible powers of two.
template<int alignment, int size> struct AlignType { };
template<int size> struct AlignType<0, size> { typedef char result[size]; };
-#if defined(_MSC_VER)
-#define BASE_PORT_H_ALIGN_ATTRIBUTE(X) __declspec(align(X))
-#define BASE_PORT_H_ALIGN_OF(T) __alignof(T)
-#elif defined(__GNUC__)
-#define BASE_PORT_H_ALIGN_ATTRIBUTE(X) __attribute__((aligned(X)))
-#define BASE_PORT_H_ALIGN_OF(T) __alignof__(T)
-#endif
-#if defined(BASE_PORT_H_ALIGN_ATTRIBUTE)
+#if !defined(CERES_ALIGN_ATTRIBUTE)
+#define CERES_ALIGNED_CHAR_ARRAY you_must_define_CERES_ALIGNED_CHAR_ARRAY_for_your_compiler
+#else // !defined(CERES_ALIGN_ATTRIBUTE)
-#define BASE_PORT_H_ALIGNTYPE_TEMPLATE(X) \
+#define CERES_ALIGN_TYPE_TEMPLATE(X) \
template<int size> struct AlignType<X, size> { \
- typedef BASE_PORT_H_ALIGN_ATTRIBUTE(X) char result[size]; \
- }
-
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(1);
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(2);
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(4);
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(8);
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(16);
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(32);
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(64);
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(128);
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(256);
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(512);
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(1024);
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(2048);
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(4096);
-BASE_PORT_H_ALIGNTYPE_TEMPLATE(8192);
+ typedef CERES_ALIGN_ATTRIBUTE(X) char result[size]; \
+ }
+
+CERES_ALIGN_TYPE_TEMPLATE(1);
+CERES_ALIGN_TYPE_TEMPLATE(2);
+CERES_ALIGN_TYPE_TEMPLATE(4);
+CERES_ALIGN_TYPE_TEMPLATE(8);
+CERES_ALIGN_TYPE_TEMPLATE(16);
+CERES_ALIGN_TYPE_TEMPLATE(32);
+CERES_ALIGN_TYPE_TEMPLATE(64);
+CERES_ALIGN_TYPE_TEMPLATE(128);
+CERES_ALIGN_TYPE_TEMPLATE(256);
+CERES_ALIGN_TYPE_TEMPLATE(512);
+CERES_ALIGN_TYPE_TEMPLATE(1024);
+CERES_ALIGN_TYPE_TEMPLATE(2048);
+CERES_ALIGN_TYPE_TEMPLATE(4096);
+CERES_ALIGN_TYPE_TEMPLATE(8192);
// Any larger and MSVC++ will complain.
-#define ALIGNED_CHAR_ARRAY(T, Size) \
- typename AlignType<BASE_PORT_H_ALIGN_OF(T), sizeof(T) * Size>::result
+#undef CERES_ALIGN_TYPE_TEMPLATE
-#undef BASE_PORT_H_ALIGNTYPE_TEMPLATE
-#undef BASE_PORT_H_ALIGN_ATTRIBUTE
+#define CERES_ALIGNED_CHAR_ARRAY(T, Size) \
+ typename AlignType<CERES_ALIGN_OF(T), sizeof(T) * Size>::result
-#else // defined(BASE_PORT_H_ALIGN_ATTRIBUTE)
-#define ALIGNED_CHAR_ARRAY you_must_define_ALIGNED_CHAR_ARRAY_for_your_compiler
-#endif // defined(BASE_PORT_H_ALIGN_ATTRIBUTE)
+#endif // !defined(CERES_ALIGN_ATTRIBUTE)
-#undef BASE_PORT_H_ALIGNTYPE_TEMPLATE
-#undef BASE_PORT_H_ALIGN_ATTRIBUTE
-
-#endif // ALIGNED_CHAR_ARRAY
+#endif // CERES_ALIGNED_CHAR_ARRAY
template <typename Type>
class ManualConstructor {
@@ -203,10 +192,10 @@ class ManualConstructor {
}
private:
- ALIGNED_CHAR_ARRAY(Type, 1) space_;
+ CERES_ALIGNED_CHAR_ARRAY(Type, 1) space_;
};
-#undef ALIGNED_CHAR_ARRAY
+#undef CERES_ALIGNED_CHAR_ARRAY
} // namespace internal
} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/include/ceres/internal/port.h b/extern/libmv/third_party/ceres/include/ceres/internal/port.h
index 9a3e5cced58..a9fe247cef5 100644
--- a/extern/libmv/third_party/ceres/include/ceres/internal/port.h
+++ b/extern/libmv/third_party/ceres/include/ceres/internal/port.h
@@ -31,6 +31,8 @@
#ifndef CERES_PUBLIC_INTERNAL_PORT_H_
#define CERES_PUBLIC_INTERNAL_PORT_H_
+#include <string>
+
namespace ceres {
// It is unfortunate that this import of the entire standard namespace is
@@ -39,6 +41,10 @@ namespace ceres {
// things outside of the Ceres optimization package.
using namespace std;
+// This is necessary to properly handle the case that there is a different
+// "string" implementation in the global namespace.
+using std::string;
+
} // namespace ceres
#endif // CERES_PUBLIC_INTERNAL_PORT_H_
diff --git a/extern/libmv/third_party/ceres/include/ceres/iteration_callback.h b/extern/libmv/third_party/ceres/include/ceres/iteration_callback.h
index 88da992d0c5..29157d380f2 100644
--- a/extern/libmv/third_party/ceres/include/ceres/iteration_callback.h
+++ b/extern/libmv/third_party/ceres/include/ceres/iteration_callback.h
@@ -28,8 +28,9 @@
//
// Author: sameeragarwal@google.com (Sameer Agarwal)
//
-// When an iteration callback is specified, Ceres calls the callback after each
-// optimizer step and pass it an IterationSummary object, defined below.
+// When an iteration callback is specified, Ceres calls the callback
+// after each minimizer step (if the minimizer has not converged) and
+// passes it an IterationSummary object, defined below.
#ifndef CERES_PUBLIC_ITERATION_CALLBACK_H_
#define CERES_PUBLIC_ITERATION_CALLBACK_H_
@@ -44,7 +45,15 @@ struct IterationSummary {
// Current iteration number.
int32 iteration;
+ // Step was numerically valid, i.e., all values are finite and the
+ // step reduces the value of the linearized model.
+ //
+ // Note: step_is_valid is false when iteration = 0.
+ bool step_is_valid;
+
// Whether or not the algorithm made progress in this iteration.
+ //
+ // Note: step_is_successful is false when iteration = 0.
bool step_is_successful;
// Value of the objective function.
@@ -66,9 +75,10 @@ struct IterationSummary {
// cost and the change in the cost of the linearized approximation.
double relative_decrease;
- // Value of the regularization parameter for Levenberg-Marquardt
- // algorithm at the end of the current iteration.
- double mu;
+ // Size of the trust region at the end of the current iteration. For
+ // the Levenberg-Marquardt algorithm, the regularization parameter
+ // mu = 1.0 / trust_region_radius.
+ double trust_region_radius;
// For the inexact step Levenberg-Marquardt algorithm, this is the
// relative accuracy with which the Newton(LM) step is solved. This
@@ -81,13 +91,15 @@ struct IterationSummary {
// Newton step.
int linear_solver_iterations;
- // TODO(sameeragarwal): Change to use a higher precision timer using
- // clock_gettime.
- // Time (in seconds) spent inside the linear least squares solver.
- int iteration_time_sec;
+ // Time (in seconds) spent inside the minimizer loop in the current
+ // iteration.
+ double iteration_time_in_seconds;
+
+ // Time (in seconds) spent inside the trust region step solver.
+ double step_solver_time_in_seconds;
- // Time (in seconds) spent inside the linear least squares solver.
- int linear_solver_time_sec;
+ // Time (in seconds) since the user called Solve().
+ double cumulative_time_in_seconds;
};
// Interface for specifying callbacks that are executed at the end of
@@ -133,7 +145,7 @@ struct IterationSummary {
// summary.gradient_max_norm,
// summary.step_norm,
// summary.relative_decrease,
-// summary.mu,
+// summary.trust_region_radius,
// summary.eta,
// summary.linear_solver_iterations);
// if (log_to_stdout_) {
diff --git a/extern/libmv/third_party/ceres/include/ceres/jet.h b/extern/libmv/third_party/ceres/include/ceres/jet.h
index 264861735ed..96e2256fd02 100644
--- a/extern/libmv/third_party/ceres/include/ceres/jet.h
+++ b/extern/libmv/third_party/ceres/include/ceres/jet.h
@@ -162,16 +162,7 @@
#include <string>
#include "Eigen/Core"
-
-// Visual Studio 2010 or older version
-#if defined(_MSC_VER) && _MSC_VER <= 1600
-namespace std {
-inline bool isfinite(double x) { return _finite(x); }
-inline bool isinf (double x) { return !_finite(x) && !_isnan(x); }
-inline bool isnan (double x) { return _isnan(x); }
-inline bool isnormal(double x) { return _finite(x) && x != 0.0; }
-} // namespace std
-#endif
+#include "ceres/fpclassify.h"
namespace ceres {
@@ -184,7 +175,9 @@ struct Jet {
// (where T is a Jet<T, N>). This usually only happens in opt mode. Note that
// the C++ standard mandates that e.g. default constructed doubles are
// initialized to 0.0; see sections 8.5 of the C++03 standard.
- Jet() : a() {}
+ Jet() : a() {
+ v.setZero();
+ }
// Constructor from scalar: a + 0.
explicit Jet(const T& value) {
@@ -199,18 +192,6 @@ struct Jet {
v[k] = T(1.0);
}
- /*
-
- // Construct from an array where the first element is the scalar.
- // This is templated to support converting from other data types.
- template<typename D>
- Jet(const D* scalar_and_derivatives) {
- a = T(scalar_and_derivatives[0]);
- v = Eigen::Map<const Eigen::Matrix<D, N, 1> >(
- scalar_and_derivatives + 1, N).cast<T>();
- }
- */
-
// Compound operators
Jet<T, N>& operator+=(const Jet<T, N> &y) {
*this = *this + y;
@@ -232,8 +213,25 @@ struct Jet {
return *this;
}
- T a; // The scalar part.
- Eigen::Matrix<T, N, 1> v; // The infinitesimal part.
+ // The scalar part.
+ T a;
+
+ // The infinitesimal part.
+ //
+ // Note the Eigen::DontAlign bit is needed here because this object
+ // gets allocated on the stack and as part of other arrays and
+ // structs. Forcing the right alignment there is the source of much
+ // pain and suffering. Even if that works, passing Jets around to
+ // functions by value has problems because the C++ ABI does not
+ // guarantee alignment for function arguments.
+ //
+ // Setting the DontAlign bit prevents Eigen from using SSE for the
+ // various operations on Jets. This is a small performance penalty
+ // since the AutoDiff code will still expose much of the code as
+ // statically sized loops to the compiler. But given the subtle
+ // issues that arise due to alignment, especially when dealing with
+ // multiple platforms, it seems to be a trade off worth making.
+ Eigen::Matrix<T, N, 1, Eigen::DontAlign> v;
};
// Unary +
@@ -411,10 +409,6 @@ inline double cos (double x) { return std::cos(x); }
inline double acos (double x) { return std::acos(x); }
inline double sin (double x) { return std::sin(x); }
inline double asin (double x) { return std::asin(x); }
-inline bool isfinite(double x) { return std::isfinite(x); }
-inline bool isinf (double x) { return std::isinf(x); }
-inline bool isnan (double x) { return std::isnan(x); }
-inline bool isnormal(double x) { return std::isnormal(x); }
inline double pow (double x, double y) { return std::pow(x, y); }
inline double atan2(double y, double x) { return std::atan2(y, x); }
@@ -492,22 +486,23 @@ Jet<T, N> asin(const Jet<T, N>& f) {
}
// Jet Classification. It is not clear what the appropriate semantics are for
-// these classifications. This picks that isfinite and isnormal are "all"
-// operations, i.e. all elements of the jet must be finite for the jet itself to
-// be finite (or normal). For isnan and isinf, the answer is less clear. This
-// takes a "any" approach for isnan and isinf such that if any part of a jet is
-// nan or inf, then the entire jet is nan or inf. This leads to strange
-// situations like a jet can be both isinf and isnan, but in practice the "any"
-// semantics are the most useful for e.g. checking that derivatives are sane.
+// these classifications. This picks that IsFinite and isnormal are "all"
+// operations, i.e. all elements of the jet must be finite for the jet itself
+// to be finite (or normal). For IsNaN and IsInfinite, the answer is less
+// clear. This takes a "any" approach for IsNaN and IsInfinite such that if any
+// part of a jet is nan or inf, then the entire jet is nan or inf. This leads
+// to strange situations like a jet can be both IsInfinite and IsNaN, but in
+// practice the "any" semantics are the most useful for e.g. checking that
+// derivatives are sane.
// The jet is finite if all parts of the jet are finite.
template <typename T, int N> inline
-bool isfinite(const Jet<T, N>& f) {
- if (!isfinite(f.a)) {
+bool IsFinite(const Jet<T, N>& f) {
+ if (!IsFinite(f.a)) {
return false;
}
for (int i = 0; i < N; ++i) {
- if (!isfinite(f.v[i])) {
+ if (!IsFinite(f.v[i])) {
return false;
}
}
@@ -516,12 +511,12 @@ bool isfinite(const Jet<T, N>& f) {
// The jet is infinite if any part of the jet is infinite.
template <typename T, int N> inline
-bool isinf(const Jet<T, N>& f) {
- if (isinf(f.a)) {
+bool IsInfinite(const Jet<T, N>& f) {
+ if (IsInfinite(f.a)) {
return true;
}
for (int i = 0; i < N; i++) {
- if (isinf(f.v[i])) {
+ if (IsInfinite(f.v[i])) {
return true;
}
}
@@ -530,12 +525,12 @@ bool isinf(const Jet<T, N>& f) {
// The jet is NaN if any part of the jet is NaN.
template <typename T, int N> inline
-bool isnan(const Jet<T, N>& f) {
- if (isnan(f.a)) {
+bool IsNaN(const Jet<T, N>& f) {
+ if (IsNaN(f.a)) {
return true;
}
for (int i = 0; i < N; ++i) {
- if (isnan(f.v[i])) {
+ if (IsNaN(f.v[i])) {
return true;
}
}
@@ -544,12 +539,12 @@ bool isnan(const Jet<T, N>& f) {
// The jet is normal if all parts of the jet are normal.
template <typename T, int N> inline
-bool isnormal(const Jet<T, N>& f) {
- if (!isnormal(f.a)) {
+bool IsNormal(const Jet<T, N>& f) {
+ if (!IsNormal(f.a)) {
return false;
}
for (int i = 0; i < N; ++i) {
- if (!isnormal(f.v[i])) {
+ if (!IsNormal(f.v[i])) {
return false;
}
}
@@ -650,78 +645,6 @@ inline std::ostream &operator<<(std::ostream &s, const Jet<T, N>& z) {
return s << "[" << z.a << " ; " << z.v.transpose() << "]";
}
-// A jet traits class to make it easier to work with mixed auto / numeric diff.
-template<typename T>
-struct JetOps {
- static bool IsScalar() {
- return true;
- }
- static T GetScalar(const T& t) {
- return t;
- }
- static void SetScalar(const T& scalar, T* t) {
- *t = scalar;
- }
- static void ScaleDerivative(double scale_by, T *value) {
- // For double, there is no derivative to scale.
- }
-};
-
-template<typename T, int N>
-struct JetOps<Jet<T, N> > {
- static bool IsScalar() {
- return false;
- }
- static T GetScalar(const Jet<T, N>& t) {
- return t.a;
- }
- static void SetScalar(const T& scalar, Jet<T, N>* t) {
- t->a = scalar;
- }
- static void ScaleDerivative(double scale_by, Jet<T, N> *value) {
- value->v *= scale_by;
- }
-};
-
-template<typename FunctionType, int kNumArgs, typename ArgumentType>
-struct Chain {
- static ArgumentType Rule(const FunctionType &f,
- const FunctionType dfdx[kNumArgs],
- const ArgumentType x[kNumArgs]) {
- // In the default case of scalars, there's nothing to do since there are no
- // derivatives to propagate.
- return f;
- }
-};
-
-// XXX Add documentation here!
-template<typename FunctionType, int kNumArgs, typename T, int N>
-struct Chain<FunctionType, kNumArgs, Jet<T, N> > {
- static Jet<T, N> Rule(const FunctionType &f,
- const FunctionType dfdx[kNumArgs],
- const Jet<T, N> x[kNumArgs]) {
- // x is itself a function of another variable ("z"); what this function
- // needs to return is "f", but with the derivative with respect to z
- // attached to the jet. So combine the derivative part of x's jets to form
- // a Jacobian matrix between x and z (i.e. dx/dz).
- Eigen::Matrix<T, kNumArgs, N> dxdz;
- for (int i = 0; i < kNumArgs; ++i) {
- dxdz.row(i) = x[i].v.transpose();
- }
-
- // Map the input gradient dfdx into an Eigen row vector.
- Eigen::Map<const Eigen::Matrix<FunctionType, 1, kNumArgs> >
- vector_dfdx(dfdx, 1, kNumArgs);
-
- // Now apply the chain rule to obtain df/dz. Combine the derivative with
- // the scalar part to obtain f with full derivative information.
- Jet<T, N> jet_f;
- jet_f.a = f;
- jet_f.v = vector_dfdx.template cast<T>() * dxdz; // Also known as dfdz.
- return jet_f;
- }
-};
-
} // namespace ceres
namespace Eigen {
diff --git a/extern/libmv/third_party/ceres/include/ceres/loss_function.h b/extern/libmv/third_party/ceres/include/ceres/loss_function.h
index 81add02cdee..0c0ceaaecd0 100644
--- a/extern/libmv/third_party/ceres/include/ceres/loss_function.h
+++ b/extern/libmv/third_party/ceres/include/ceres/loss_function.h
@@ -175,6 +175,7 @@ class HuberLoss : public LossFunction {
public:
explicit HuberLoss(double a) : a_(a), b_(a * a) { }
virtual void Evaluate(double, double*) const;
+
private:
const double a_;
// b = a^2.
@@ -190,6 +191,7 @@ class SoftLOneLoss : public LossFunction {
public:
explicit SoftLOneLoss(double a) : b_(a * a), c_(1 / b_) { }
virtual void Evaluate(double, double*) const;
+
private:
// b = a^2.
const double b_;
@@ -206,6 +208,7 @@ class CauchyLoss : public LossFunction {
public:
explicit CauchyLoss(double a) : b_(a * a), c_(1 / b_) { }
virtual void Evaluate(double, double*) const;
+
private:
// b = a^2.
const double b_;
@@ -213,6 +216,78 @@ class CauchyLoss : public LossFunction {
const double c_;
};
+// Loss that is capped beyond a certain level using the arc-tangent function.
+// The scaling parameter 'a' determines the level where falloff occurs.
+// For costs much smaller than 'a', the loss function is linear and behaves like
+// TrivialLoss, and for values much larger than 'a' the value asymptotically
+// approaches the constant value of a * PI / 2.
+//
+// rho(s) = a atan(s / a).
+//
+// At s = 0: rho = [0, 1, 0].
+class ArctanLoss : public LossFunction {
+ public:
+ explicit ArctanLoss(double a) : a_(a), b_(1 / (a * a)) { }
+ virtual void Evaluate(double, double*) const;
+
+ private:
+ const double a_;
+ // b = 1 / a^2.
+ const double b_;
+};
+
+// Loss function that maps to approximately zero cost in a range around the
+// origin, and reverts to linear in error (quadratic in cost) beyond this range.
+// The tolerance parameter 'a' sets the nominal point at which the
+// transition occurs, and the transition size parameter 'b' sets the nominal
+// distance over which most of the transition occurs. Both a and b must be
+// greater than zero, and typically b will be set to a fraction of a.
+// The slope rho'[s] varies smoothly from about 0 at s <= a - b to
+// about 1 at s >= a + b.
+//
+// The term is computed as:
+//
+// rho(s) = b log(1 + exp((s - a) / b)) - c0.
+//
+// where c0 is chosen so that rho(0) == 0
+//
+// c0 = b log(1 + exp(-a / b)
+//
+// This has the following useful properties:
+//
+// rho(s) == 0 for s = 0
+// rho'(s) ~= 0 for s << a - b
+// rho'(s) ~= 1 for s >> a + b
+// rho''(s) > 0 for all s
+//
+// In addition, all derivatives are continuous, and the curvature is
+// concentrated in the range a - b to a + b.
+//
+// At s = 0: rho = [0, ~0, ~0].
+class TolerantLoss : public LossFunction {
+ public:
+ explicit TolerantLoss(double a, double b);
+ virtual void Evaluate(double, double*) const;
+
+ private:
+ const double a_, b_, c_;
+};
+
+// Composition of two loss functions. The error is the result of first
+// evaluating g followed by f to yield the composition f(g(s)).
+// The loss functions must not be NULL.
+class ComposedLoss : public LossFunction {
+ public:
+ explicit ComposedLoss(const LossFunction* f, Ownership ownership_f,
+ const LossFunction* g, Ownership ownership_g);
+ virtual ~ComposedLoss();
+ virtual void Evaluate(double, double*) const;
+
+ private:
+ internal::scoped_ptr<const LossFunction> f_, g_;
+ const Ownership ownership_f_, ownership_g_;
+};
+
// The discussion above has to do with length scaling: it affects the space
// in which s is measured. Sometimes you want to simply scale the output
// value of the robustifier. For example, you might want to weight
@@ -249,7 +324,7 @@ class ScaledLoss : public LossFunction {
internal::scoped_ptr<const LossFunction> rho_;
const double a_;
const Ownership ownership_;
- DISALLOW_COPY_AND_ASSIGN(ScaledLoss);
+ CERES_DISALLOW_COPY_AND_ASSIGN(ScaledLoss);
};
// Sometimes after the optimization problem has been constructed, we
@@ -314,7 +389,7 @@ class LossFunctionWrapper : public LossFunction {
private:
internal::scoped_ptr<const LossFunction> rho_;
Ownership ownership_;
- DISALLOW_COPY_AND_ASSIGN(LossFunctionWrapper);
+ CERES_DISALLOW_COPY_AND_ASSIGN(LossFunctionWrapper);
};
} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/include/ceres/numeric_diff_cost_function.h b/extern/libmv/third_party/ceres/include/ceres/numeric_diff_cost_function.h
index bbaefca5b6c..8544e44d0bc 100644
--- a/extern/libmv/third_party/ceres/include/ceres/numeric_diff_cost_function.h
+++ b/extern/libmv/third_party/ceres/include/ceres/numeric_diff_cost_function.h
@@ -93,11 +93,13 @@ struct Differencer {
using Eigen::Map;
using Eigen::Matrix;
using Eigen::RowMajor;
+ using Eigen::ColMajor;
typedef Matrix<double, num_residuals, 1> ResidualVector;
typedef Matrix<double, parameter_block_size, 1> ParameterVector;
- typedef Matrix<double, num_residuals, parameter_block_size, RowMajor>
- JacobianMatrix;
+ typedef Matrix<double, num_residuals, parameter_block_size,
+ (parameter_block_size == 1 &&
+ num_residuals > 1) ? ColMajor : RowMajor> JacobianMatrix;
Map<JacobianMatrix> parameter_jacobian(jacobians[parameter_block],
num_residuals,
diff --git a/extern/libmv/third_party/ceres/include/ceres/problem.h b/extern/libmv/third_party/ceres/include/ceres/problem.h
index 0ca61006bdb..2b08c6723e8 100644
--- a/extern/libmv/third_party/ceres/include/ceres/problem.h
+++ b/extern/libmv/third_party/ceres/include/ceres/problem.h
@@ -50,13 +50,13 @@ namespace ceres {
class CostFunction;
class LossFunction;
class LocalParameterization;
+class Solver;
namespace internal {
class Preprocessor;
class ProblemImpl;
class ParameterBlock;
class ResidualBlock;
-class SolverImpl;
} // namespace internal
// A ResidualBlockId is a handle clients can use to delete residual
@@ -255,9 +255,9 @@ class Problem {
int NumResiduals() const;
private:
- friend class internal::SolverImpl;
+ friend class Solver;
internal::scoped_ptr<internal::ProblemImpl> problem_impl_;
- DISALLOW_COPY_AND_ASSIGN(Problem);
+ CERES_DISALLOW_COPY_AND_ASSIGN(Problem);
};
} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/include/ceres/rotation.h b/extern/libmv/third_party/ceres/include/ceres/rotation.h
index e4227e78b9a..0d8a390d5d1 100644
--- a/extern/libmv/third_party/ceres/include/ceres/rotation.h
+++ b/extern/libmv/third_party/ceres/include/ceres/rotation.h
@@ -47,6 +47,7 @@
#include <algorithm>
#include <cmath>
+#include "glog/logging.h"
namespace ceres {
@@ -145,18 +146,11 @@ void AngleAxisRotatePoint(const T angle_axis[3], const T pt[3], T result[3]);
// --- IMPLEMENTATION
-// Duplicate rather than decorate every use of cmath with _USE_MATH_CONSTANTS.
-// Necessitated by Windows.
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#define CERES_NEED_M_PI_UNDEF
-#endif
-
template<typename T>
inline void AngleAxisToQuaternion(const T* angle_axis, T* quaternion) {
- const T &a0 = angle_axis[0];
- const T &a1 = angle_axis[1];
- const T &a2 = angle_axis[2];
+ const T& a0 = angle_axis[0];
+ const T& a1 = angle_axis[1];
+ const T& a2 = angle_axis[2];
const T theta_squared = a0 * a0 + a1 * a1 + a2 * a2;
// For points not at the origin, the full conversion is numerically stable.
@@ -183,16 +177,35 @@ inline void AngleAxisToQuaternion(const T* angle_axis, T* quaternion) {
template<typename T>
inline void QuaternionToAngleAxis(const T* quaternion, T* angle_axis) {
- const T &q1 = quaternion[1];
- const T &q2 = quaternion[2];
- const T &q3 = quaternion[3];
- const T sin_squared = q1 * q1 + q2 * q2 + q3 * q3;
+ const T& q1 = quaternion[1];
+ const T& q2 = quaternion[2];
+ const T& q3 = quaternion[3];
+ const T sin_squared_theta = q1 * q1 + q2 * q2 + q3 * q3;
// For quaternions representing non-zero rotation, the conversion
// is numerically stable.
- if (sin_squared > T(0.0)) {
- const T sin_theta = sqrt(sin_squared);
- const T k = T(2.0) * atan2(sin_theta, quaternion[0]) / sin_theta;
+ if (sin_squared_theta > T(0.0)) {
+ const T sin_theta = sqrt(sin_squared_theta);
+ const T& cos_theta = quaternion[0];
+
+ // If cos_theta is negative, theta is greater than pi/2, which
+ // means that angle for the angle_axis vector which is 2 * theta
+ // would be greater than pi.
+ //
+ // While this will result in the correct rotation, it does not
+ // result in a normalized angle-axis vector.
+ //
+ // In that case we observe that 2 * theta ~ 2 * theta - 2 * pi,
+ // which is equivalent saying
+ //
+ // theta - pi = atan(sin(theta - pi), cos(theta - pi))
+ // = atan(-sin(theta), -cos(theta))
+ //
+ const T two_theta =
+ T(2.0) * ((cos_theta < 0.0)
+ ? atan2(-sin_theta, -cos_theta)
+ : atan2(sin_theta, cos_theta));
+ const T k = two_theta / sin_theta;
angle_axis[0] = q1 * k;
angle_axis[1] = q2 * k;
angle_axis[2] = q3 * k;
@@ -259,7 +272,7 @@ inline void RotationMatrixToAngleAxis(const T * R, T * angle_axis) {
// Case 2: theta ~ 0, means sin(theta) ~ theta to a good
// approximation.
- if (costheta > 0) {
+ if (costheta > 0.0) {
const T kHalf = T(0.5);
for (int i = 0; i < 3; ++i) {
angle_axis[i] *= kHalf;
@@ -284,8 +297,8 @@ inline void RotationMatrixToAngleAxis(const T * R, T * angle_axis) {
// angle_axis[i] should be positive, otherwise negative.
for (int i = 0; i < 3; ++i) {
angle_axis[i] = theta * sqrt((R[i*4] - costheta) * inv_one_minus_costheta);
- if (((sintheta < 0) && (angle_axis[i] > 0)) ||
- ((sintheta > 0) && (angle_axis[i] < 0))) {
+ if (((sintheta < 0.0) && (angle_axis[i] > 0.0)) ||
+ ((sintheta > 0.0) && (angle_axis[i] < 0.0))) {
angle_axis[i] = -angle_axis[i];
}
}
@@ -334,7 +347,8 @@ template <typename T>
inline void EulerAnglesToRotationMatrix(const T* euler,
const int row_stride,
T* R) {
- const T degrees_to_radians(M_PI / 180.0);
+ const double kPi = 3.14159265358979323846;
+ const T degrees_to_radians(kPi / 180.0);
const T pitch(euler[0] * degrees_to_radians);
const T roll(euler[1] * degrees_to_radians);
@@ -517,10 +531,4 @@ void AngleAxisRotatePoint(const T angle_axis[3], const T pt[3], T result[3]) {
} // namespace ceres
-// Clean define pollution.
-#ifdef CERES_NEED_M_PI_UNDEF
-#undef CERES_NEED_M_PI_UNDEF
-#undef M_PI
-#endif
-
#endif // CERES_PUBLIC_ROTATION_H_
diff --git a/extern/libmv/third_party/ceres/include/ceres/solver.h b/extern/libmv/third_party/ceres/include/ceres/solver.h
index bd669272023..31d5e8d7987 100644
--- a/extern/libmv/third_party/ceres/include/ceres/solver.h
+++ b/extern/libmv/third_party/ceres/include/ceres/solver.h
@@ -34,10 +34,10 @@
#include <cmath>
#include <string>
#include <vector>
-
-#include "ceres/iteration_callback.h"
+#include "ceres/crs_matrix.h"
#include "ceres/internal/macros.h"
#include "ceres/internal/port.h"
+#include "ceres/iteration_callback.h"
#include "ceres/types.h"
namespace ceres {
@@ -57,24 +57,47 @@ class Solver {
struct Options {
// Default constructor that sets up a generic sparse problem.
Options() {
- minimizer_type = LEVENBERG_MARQUARDT;
+ trust_region_strategy_type = LEVENBERG_MARQUARDT;
+ dogleg_type = TRADITIONAL_DOGLEG;
+ use_nonmonotonic_steps = false;
+ max_consecutive_nonmonotonic_steps = 5;
max_num_iterations = 50;
- max_solver_time_sec = 1.0e9;
+ max_solver_time_in_seconds = 1e9;
num_threads = 1;
- tau = 1e-4;
+ initial_trust_region_radius = 1e4;
+ max_trust_region_radius = 1e16;
+ min_trust_region_radius = 1e-32;
min_relative_decrease = 1e-3;
+ lm_min_diagonal = 1e-6;
+ lm_max_diagonal = 1e32;
+ max_num_consecutive_invalid_steps = 5;
function_tolerance = 1e-6;
gradient_tolerance = 1e-10;
parameter_tolerance = 1e-8;
-#ifndef CERES_NO_SUITESPARSE
- linear_solver_type = SPARSE_NORMAL_CHOLESKY;
-#else
+
+#if defined(CERES_NO_SUITESPARSE) && defined(CERES_NO_CXSPARSE)
linear_solver_type = DENSE_QR;
-#endif // CERES_NO_SUITESPARSE
+#else
+ linear_solver_type = SPARSE_NORMAL_CHOLESKY;
+#endif
+
preconditioner_type = JACOBI;
+
+ sparse_linear_algebra_library = SUITE_SPARSE;
+#if defined(CERES_NO_SUITESPARSE) && !defined(CERES_NO_CXSPARSE)
+ sparse_linear_algebra_library = CX_SPARSE;
+#endif
+
num_linear_solver_threads = 1;
num_eliminate_blocks = 0;
ordering_type = NATURAL;
+
+#if defined(CERES_NO_SUITESPARSE)
+ use_block_amd = false;
+#else
+ use_block_amd = true;
+#endif
+
linear_solver_min_num_iterations = 1;
linear_solver_max_num_iterations = 500;
eta = 1e-1;
@@ -82,10 +105,13 @@ class Solver {
logging_type = PER_MINIMIZER_ITERATION;
minimizer_progress_to_stdout = false;
return_initial_residuals = false;
+ return_initial_gradient = false;
+ return_initial_jacobian = false;
return_final_residuals = false;
+ return_final_gradient = false;
+ return_final_jacobian = false;
lsqp_dump_directory = "/tmp";
lsqp_dump_format_type = TEXTFILE;
- crash_and_dump_lsqp_on_failure = false;
check_gradients = false;
gradient_check_relative_precision = 1e-8;
numeric_derivative_relative_step_size = 1e-6;
@@ -94,27 +120,78 @@ class Solver {
// Minimizer options ----------------------------------------
- MinimizerType minimizer_type;
+ TrustRegionStrategyType trust_region_strategy_type;
+
+ // Type of dogleg strategy to use.
+ DoglegType dogleg_type;
+
+ // The classical trust region methods are descent methods, in that
+ // they only accept a point if it strictly reduces the value of
+ // the objective function.
+ //
+ // Relaxing this requirement allows the algorithm to be more
+ // efficient in the long term at the cost of some local increase
+ // in the value of the objective function.
+ //
+ // This is because allowing for non-decreasing objective function
+ // values in a princpled manner allows the algorithm to "jump over
+ // boulders" as the method is not restricted to move into narrow
+ // valleys while preserving its convergence properties.
+ //
+ // Setting use_nonmonotonic_steps to true enables the
+ // non-monotonic trust region algorithm as described by Conn,
+ // Gould & Toint in "Trust Region Methods", Section 10.1.
+ //
+ // The parameter max_consecutive_nonmonotonic_steps controls the
+ // window size used by the step selection algorithm to accept
+ // non-monotonic steps.
+ //
+ // Even though the value of the objective function may be larger
+ // than the minimum value encountered over the course of the
+ // optimization, the final parameters returned to the user are the
+ // ones corresponding to the minimum cost over all iterations.
+ bool use_nonmonotonic_steps;
+ int max_consecutive_nonmonotonic_steps;
// Maximum number of iterations for the minimizer to run for.
int max_num_iterations;
// Maximum time for which the minimizer should run for.
- double max_solver_time_sec;
+ double max_solver_time_in_seconds;
// Number of threads used by Ceres for evaluating the cost and
// jacobians.
int num_threads;
- // For Levenberg-Marquardt, the initial value for the
- // regularizer. This is the inversely related to the size of the
- // initial trust region.
- double tau;
+ // Trust region minimizer settings.
+ double initial_trust_region_radius;
+ double max_trust_region_radius;
+
+ // Minimizer terminates when the trust region radius becomes
+ // smaller than this value.
+ double min_trust_region_radius;
- // For trust region methods, this is lower threshold for the
- // relative decrease before a step is accepted.
+ // Lower bound for the relative decrease before a step is
+ // accepted.
double min_relative_decrease;
+ // For the Levenberg-Marquadt algorithm, the scaled diagonal of
+ // the normal equations J'J is used to control the size of the
+ // trust region. Extremely small and large values along the
+ // diagonal can make this regularization scheme
+ // fail. lm_max_diagonal and lm_min_diagonal, clamp the values of
+ // diag(J'J) from above and below. In the normal course of
+ // operation, the user should not have to modify these parameters.
+ double lm_min_diagonal;
+ double lm_max_diagonal;
+
+ // Sometimes due to numerical conditioning problems or linear
+ // solver flakiness, the trust region strategy may return a
+ // numerically invalid step that can be fixed by reducing the
+ // trust region size. So the TrustRegionMinimizer allows for a few
+ // successive invalid steps before it declares NUMERICAL_FAILURE.
+ int max_num_consecutive_invalid_steps;
+
// Minimizer terminates when
//
// (new_cost - old_cost) < function_tolerance * old_cost;
@@ -141,6 +218,12 @@ class Solver {
// Type of preconditioner to use with the iterative linear solvers.
PreconditionerType preconditioner_type;
+ // Ceres supports using multiple sparse linear algebra libraries
+ // for sparse matrix ordering and factorizations. Currently,
+ // SUITE_SPARSE and CX_SPARSE are the valid choices, depending on
+ // whether they are linked into Ceres at build time.
+ SparseLinearAlgebraLibraryType sparse_linear_algebra_library;
+
// Number of threads used by Ceres to solve the Newton
// step. Currently only the SPARSE_SCHUR solver is capable of
// using this setting.
@@ -170,6 +253,19 @@ class Solver {
// non-empty.
vector<double*> ordering;
+ // By virtue of the modeling layer in Ceres being block oriented,
+ // all the matrices used by Ceres are also block oriented. When
+ // doing sparse direct factorization of these matrices (for
+ // SPARSE_NORMAL_CHOLESKY, SPARSE_SCHUR and ITERATIVE in
+ // conjunction with CLUSTER_TRIDIAGONAL AND CLUSTER_JACOBI
+ // preconditioners), the fill-reducing ordering algorithms can
+ // either be run on the block or the scalar form of these matrices.
+ // Running it on the block form exposes more of the super-nodal
+ // structure of the matrix to the factorization routines. Setting
+ // this parameter to true runs the ordering algorithms in block
+ // form. Currently this option only makes sense with
+ // sparse_linear_algebra_library = SUITE_SPARSE.
+ bool use_block_amd;
// Minimum number of iterations for which the linear solver should
// run, even if the convergence criterion is satisfied.
@@ -206,7 +302,12 @@ class Solver {
bool minimizer_progress_to_stdout;
bool return_initial_residuals;
+ bool return_initial_gradient;
+ bool return_initial_jacobian;
+
bool return_final_residuals;
+ bool return_final_gradient;
+ bool return_final_jacobian;
// List of iterations at which the optimizer should dump the
// linear least squares problem to disk. Useful for testing and
@@ -217,15 +318,6 @@ class Solver {
string lsqp_dump_directory;
DumpFormatType lsqp_dump_format_type;
- // Dump the linear least squares problem to disk if the minimizer
- // fails due to NUMERICAL_FAILURE and crash the process. This flag
- // is useful for generating debugging information. The problem is
- // dumped in a file whose name is determined by
- // Solver::Options::lsqp_dump_format.
- //
- // Note: This requires a version of Ceres built with protocol buffers.
- bool crash_and_dump_lsqp_on_failure;
-
// Finite differences options ----------------------------------------------
// Check all jacobians computed by each residual block with finite
@@ -273,16 +365,25 @@ class Solver {
bool update_state_every_iteration;
// Callbacks that are executed at the end of each iteration of the
- // Minimizer. They are executed in the order that they are
- // specified in this vector. By default, parameter blocks are
- // updated only at the end of the optimization, i.e when the
- // Minimizer terminates. This behaviour is controlled by
+ // Minimizer. An iteration may terminate midway, either due to
+ // numerical failures or because one of the convergence tests has
+ // been satisfied. In this case none of the callbacks are
+ // executed.
+
+ // Callbacks are executed in the order that they are specified in
+ // this vector. By default, parameter blocks are updated only at
+ // the end of the optimization, i.e when the Minimizer
+ // terminates. This behaviour is controlled by
// update_state_every_variable. If the user wishes to have access
// to the update parameter blocks when his/her callbacks are
// executed, then set update_state_every_iteration to true.
//
// The solver does NOT take ownership of these pointers.
vector<IterationCallback*> callbacks;
+
+ // If non-empty, a summary of the execution of the solver is
+ // recorded to this file.
+ string solver_log;
};
struct Summary {
@@ -313,20 +414,74 @@ class Solver {
// blocks that they depend on were fixed.
double fixed_cost;
- // Residuals before and after the optimization. Each vector
- // contains problem.NumResiduals() elements. Residuals are in the
- // same order in which they were added to the problem object when
- // constructing this problem.
+ // Vectors of residuals before and after the optimization. The
+ // entries of these vectors are in the order in which
+ // ResidualBlocks were added to the Problem object.
+ //
+ // Whether the residual vectors are populated with values is
+ // controlled by Solver::Options::return_initial_residuals and
+ // Solver::Options::return_final_residuals respectively.
vector<double> initial_residuals;
vector<double> final_residuals;
+ // Gradient vectors, before and after the optimization. The rows
+ // are in the same order in which the ParameterBlocks were added
+ // to the Problem object.
+ //
+ // NOTE: Since AddResidualBlock adds ParameterBlocks to the
+ // Problem automatically if they do not already exist, if you wish
+ // to have explicit control over the ordering of the vectors, then
+ // use Problem::AddParameterBlock to explicitly add the
+ // ParameterBlocks in the order desired.
+ //
+ // Whether the vectors are populated with values is controlled by
+ // Solver::Options::return_initial_gradient and
+ // Solver::Options::return_final_gradient respectively.
+ vector<double> initial_gradient;
+ vector<double> final_gradient;
+
+ // Jacobian matrices before and after the optimization. The rows
+ // of these matrices are in the same order in which the
+ // ResidualBlocks were added to the Problem object. The columns
+ // are in the same order in which the ParameterBlocks were added
+ // to the Problem object.
+ //
+ // NOTE: Since AddResidualBlock adds ParameterBlocks to the
+ // Problem automatically if they do not already exist, if you wish
+ // to have explicit control over the column ordering of the
+ // matrix, then use Problem::AddParameterBlock to explicitly add
+ // the ParameterBlocks in the order desired.
+ //
+ // The Jacobian matrices are stored as compressed row sparse
+ // matrices. Please see ceres/crs_matrix.h for more details of the
+ // format.
+ //
+ // Whether the Jacboan matrices are populated with values is
+ // controlled by Solver::Options::return_initial_jacobian and
+ // Solver::Options::return_final_jacobian respectively.
+ CRSMatrix initial_jacobian;
+ CRSMatrix final_jacobian;
+
vector<IterationSummary> iterations;
int num_successful_steps;
int num_unsuccessful_steps;
+ // When the user calls Solve, before the actual optimization
+ // occurs, Ceres performs a number of preprocessing steps. These
+ // include error checks, memory allocations, and reorderings. This
+ // time is accounted for as preprocessing time.
double preprocessor_time_in_seconds;
+
+ // Time spent in the TrustRegionMinimizer.
double minimizer_time_in_seconds;
+
+ // After the Minimizer is finished, some time is spent in
+ // re-evaluating residuals etc. This time is accounted for in the
+ // postprocessor time.
+ double postprocessor_time_in_seconds;
+
+ // Some total of all time spent inside Ceres when Solve is called.
double total_time_in_seconds;
// Preprocessor summary.
@@ -354,6 +509,10 @@ class Solver {
PreconditionerType preconditioner_type;
OrderingType ordering_type;
+
+ TrustRegionStrategyType trust_region_strategy_type;
+ DoglegType dogleg_type;
+ SparseLinearAlgebraLibraryType sparse_linear_algebra_library;
};
// Once a least squares problem has been built, this function takes
diff --git a/extern/libmv/third_party/ceres/include/ceres/types.h b/extern/libmv/third_party/ceres/include/ceres/types.h
index a30c79029ac..3980885b53c 100644
--- a/extern/libmv/third_party/ceres/include/ceres/types.h
+++ b/extern/libmv/third_party/ceres/include/ceres/types.h
@@ -59,14 +59,18 @@ enum LinearSolverType {
// normal equations A'A x = A'b. They are direct solvers and do not
// assume any special problem structure.
- // Solve the normal equations using a sparse cholesky solver; based
- // on CHOLMOD.
- SPARSE_NORMAL_CHOLESKY,
+ // Solve the normal equations using a dense Cholesky solver; based
+ // on Eigen.
+ DENSE_NORMAL_CHOLESKY,
// Solve the normal equations using a dense QR solver; based on
// Eigen.
DENSE_QR,
+ // Solve the normal equations using a sparse cholesky solver; requires
+ // SuiteSparse or CXSparse.
+ SPARSE_NORMAL_CHOLESKY,
+
// Specialized solvers, specific to problems with a generalized
// bi-partitite structure.
@@ -110,6 +114,15 @@ enum PreconditionerType {
CLUSTER_TRIDIAGONAL
};
+enum SparseLinearAlgebraLibraryType {
+ // High performance sparse Cholesky factorization and approximate
+ // minimum degree ordering.
+ SUITE_SPARSE,
+
+ // A lightweight replacment for SuiteSparse.
+ CX_SPARSE
+};
+
enum LinearSolverTerminationType {
// Termination criterion was met. For factorization based solvers
// the tolerance is assumed to be zero. Any user provided values are
@@ -149,8 +162,47 @@ enum LoggingType {
PER_MINIMIZER_ITERATION
};
-enum MinimizerType {
- LEVENBERG_MARQUARDT
+// Ceres supports different strategies for computing the trust region
+// step.
+enum TrustRegionStrategyType {
+ // The default trust region strategy is to use the step computation
+ // used in the Levenberg-Marquardt algorithm. For more details see
+ // levenberg_marquardt_strategy.h
+ LEVENBERG_MARQUARDT,
+
+ // Powell's dogleg algorithm interpolates between the Cauchy point
+ // and the Gauss-Newton step. It is particularly useful if the
+ // LEVENBERG_MARQUARDT algorithm is making a large number of
+ // unsuccessful steps. For more details see dogleg_strategy.h.
+ //
+ // NOTES:
+ //
+ // 1. This strategy has not been experimented with or tested as
+ // extensively as LEVENBERG_MARQUARDT, and therefore it should be
+ // considered EXPERIMENTAL for now.
+ //
+ // 2. For now this strategy should only be used with exact
+ // factorization based linear solvers, i.e., SPARSE_SCHUR,
+ // DENSE_SCHUR, DENSE_QR and SPARSE_NORMAL_CHOLESKY.
+ DOGLEG
+};
+
+// Ceres supports two different dogleg strategies.
+// The "traditional" dogleg method by Powell and the
+// "subspace" method described in
+// R. H. Byrd, R. B. Schnabel, and G. A. Shultz,
+// "Approximate solution of the trust region problem by minimization
+// over two-dimensional subspaces", Mathematical Programming,
+// 40 (1988), pp. 247--263
+enum DoglegType {
+ // The traditional approach constructs a dogleg path
+ // consisting of two line segments and finds the furthest
+ // point on that path that is still inside the trust region.
+ TRADITIONAL_DOGLEG,
+
+ // The subspace approach finds the exact minimum of the model
+ // constrained to the subspace spanned by the dogleg path.
+ SUBSPACE_DOGLEG
};
enum SolverTerminationType {
@@ -246,11 +298,15 @@ enum DimensionType {
const char* LinearSolverTypeToString(LinearSolverType type);
const char* PreconditionerTypeToString(PreconditionerType type);
+const char* SparseLinearAlgebraLibraryTypeToString(
+ SparseLinearAlgebraLibraryType type);
const char* LinearSolverTerminationTypeToString(
LinearSolverTerminationType type);
const char* OrderingTypeToString(OrderingType type);
const char* SolverTerminationTypeToString(SolverTerminationType type);
-
+const char* SparseLinearAlgebraLibraryTypeToString(
+ SparseLinearAlgebraLibraryType type);
+const char* TrustRegionStrategyTypeToString( TrustRegionStrategyType type);
bool IsSchurType(LinearSolverType type);
} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt.h b/extern/libmv/third_party/ceres/internal/ceres/array_utils.cc
index d00bb9095be..673baa4f70f 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/array_utils.cc
@@ -1,5 +1,5 @@
// Ceres Solver - A fast non-linear least squares minimizer
-// Copyright 2010, 2011, 2012 Google Inc. All rights reserved.
+// Copyright 2012 Google Inc. All rights reserved.
// http://code.google.com/p/ceres-solver/
//
// Redistribution and use in source and binary forms, with or without
@@ -27,39 +27,41 @@
// POSSIBILITY OF SUCH DAMAGE.
//
// Author: sameeragarwal@google.com (Sameer Agarwal)
-//
-// Implmentation of Levenberg Marquardt algorithm based on "Methods for
-// Nonlinear Least Squares" by K. Madsen, H.B. Nielsen and
-// O. Tingleff. Available to download from
-//
-// http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3215/pdf/imm3215.pdf
-//
-#ifndef CERES_INTERNAL_LEVENBERG_MARQUARDT_H_
-#define CERES_INTERNAL_LEVENBERG_MARQUARDT_H_
+#include "ceres/array_utils.h"
-#include "ceres/minimizer.h"
-#include "ceres/solver.h"
+#include <cmath>
+#include <cstddef>
+#include "ceres/fpclassify.h"
namespace ceres {
namespace internal {
-class Evaluator;
-class LinearSolver;
+// It is a near impossibility that user code generates this exact
+// value in normal operation, thus we will use it to fill arrays
+// before passing them to user code. If on return an element of the
+// array still contains this value, we will assume that the user code
+// did not write to that memory location.
+const double kImpossibleValue = 1e302;
-class LevenbergMarquardt : public Minimizer {
- public:
- virtual ~LevenbergMarquardt();
+bool IsArrayValid(const int size, const double* x) {
+ if (x != NULL) {
+ for (int i = 0; i < size; ++i) {
+ if (!IsFinite(x[i]) || (x[i] == kImpossibleValue)) {
+ return false;
+ }
+ }
+ }
+ return true;
+}
- virtual void Minimize(const Minimizer::Options& options,
- Evaluator* evaluator,
- LinearSolver* linear_solver,
- const double* initial_parameters,
- double* final_parameters,
- Solver::Summary* summary);
-};
+void InvalidateArray(const int size, double* x) {
+ if (x != NULL) {
+ for (int i = 0; i < size; ++i) {
+ x[i] = kImpossibleValue;
+ }
+ }
+}
} // namespace internal
} // namespace ceres
-
-#endif // CERES_INTERNAL_LEVENBERG_MARQUARDT_H_
diff --git a/extern/libmv/third_party/ceres/internal/ceres/array_utils.h b/extern/libmv/third_party/ceres/internal/ceres/array_utils.h
new file mode 100644
index 00000000000..99cc8d8ebbf
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/array_utils.h
@@ -0,0 +1,65 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: sameeragarwal@google.com (Sameer Agarwal)
+//
+// Utility routines for validating arrays.
+//
+// These are useful for detecting two common class of errors.
+//
+// 1. Uninitialized memory - where the user for some reason did not
+// compute part of an array, but the code expects it.
+//
+// 2. Numerical failure while computing the cost/residual/jacobian,
+// e.g. NaN, infinities etc. This is particularly useful since the
+// automatic differentiation code does computations that are not
+// evident to the user and can silently generate hard to debug errors.
+
+#ifndef CERES_INTERNAL_ARRAY_UTILS_H_
+#define CERES_INTERNAL_ARRAY_UTILS_H_
+
+#include "ceres/internal/port.h"
+
+namespace ceres {
+namespace internal {
+
+// Fill the array x with an impossible value that the user code is
+// never expected to compute.
+void InvalidateArray(int size, double* x);
+
+// Check if all the entries of the array x are valid, i.e. all the
+// values in the array should be finite and none of them should be
+// equal to the "impossible" value used by InvalidateArray.
+bool IsArrayValid(int size, const double* x);
+
+extern const double kImpossibleValue;
+
+} // namespace internal
+} // namespace ceres
+
+#endif // CERES_INTERNAL_ARRAY_UTILS_H_
diff --git a/extern/libmv/third_party/ceres/internal/ceres/block_evaluate_preparer.cc b/extern/libmv/third_party/ceres/internal/ceres/block_evaluate_preparer.cc
index 05e63eb560b..9edc4fa23bd 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/block_evaluate_preparer.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/block_evaluate_preparer.cc
@@ -40,16 +40,26 @@
namespace ceres {
namespace internal {
-void BlockEvaluatePreparer::Init(int** jacobian_layout) {
+void BlockEvaluatePreparer::Init(int const* const* jacobian_layout,
+ int max_derivatives_per_residual_block) {
jacobian_layout_ = jacobian_layout;
+ scratch_evaluate_preparer_.Init(max_derivatives_per_residual_block);
}
// Point the jacobian blocks directly into the block sparse matrix.
void BlockEvaluatePreparer::Prepare(const ResidualBlock* residual_block,
int residual_block_index,
SparseMatrix* jacobian,
- double** jacobians) const {
- CHECK(jacobian != NULL);
+ double** jacobians) {
+ // If the overall jacobian is not available, use the scratch space.
+ if (jacobian == NULL) {
+ scratch_evaluate_preparer_.Prepare(residual_block,
+ residual_block_index,
+ jacobian,
+ jacobians);
+ return;
+ }
+
double* jacobian_values =
down_cast<BlockSparseMatrix*>(jacobian)->mutable_values();
diff --git a/extern/libmv/third_party/ceres/internal/ceres/block_evaluate_preparer.h b/extern/libmv/third_party/ceres/internal/ceres/block_evaluate_preparer.h
index a7869311e6e..354acc031f4 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/block_evaluate_preparer.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/block_evaluate_preparer.h
@@ -36,6 +36,8 @@
#ifndef CERES_INTERNAL_BLOCK_EVALUATE_PREPARER_H_
#define CERES_INTERNAL_BLOCK_EVALUATE_PREPARER_H_
+#include "ceres/scratch_evaluate_preparer.h"
+
namespace ceres {
namespace internal {
@@ -47,18 +49,26 @@ class BlockEvaluatePreparer {
// Using Init() instead of a constructor allows for allocating this structure
// with new[]. This is because C++ doesn't allow passing arguments to objects
// constructed with new[] (as opposed to plain 'new').
- void Init(int** jacobian_layout);
+ void Init(int const* const* jacobian_layout,
+ int max_derivatives_per_residual_block);
// EvaluatePreparer interface
- // Point the jacobian blocks directly into the block sparse matrix.
+ // Point the jacobian blocks directly into the block sparse matrix, if
+ // jacobian is non-null. Otherwise, uses an internal per-thread buffer to
+ // store the jacobians temporarily.
void Prepare(const ResidualBlock* residual_block,
int residual_block_index,
SparseMatrix* jacobian,
- double** jacobians) const;
+ double** jacobians);
private:
int const* const* jacobian_layout_;
+
+ // For the case that the overall jacobian is not available, but the
+ // individual jacobians are requested, use a pass-through scratch evaluate
+ // preparer.
+ ScratchEvaluatePreparer scratch_evaluate_preparer_;
};
} // namespace internal
diff --git a/extern/libmv/third_party/ceres/internal/ceres/block_jacobi_preconditioner.cc b/extern/libmv/third_party/ceres/internal/ceres/block_jacobi_preconditioner.cc
index 1a5001f9c71..474c37f7ca4 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/block_jacobi_preconditioner.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/block_jacobi_preconditioner.cc
@@ -40,11 +40,10 @@
namespace ceres {
namespace internal {
-BlockJacobiPreconditioner::BlockJacobiPreconditioner(
- const LinearOperator& A)
- : block_structure_(
- *(down_cast<const BlockSparseMatrix*>(&A)->block_structure())),
- num_rows_(A.num_rows()) {
+BlockJacobiPreconditioner::BlockJacobiPreconditioner(const LinearOperator& A)
+ : num_rows_(A.num_rows()),
+ block_structure_(
+ *(down_cast<const BlockSparseMatrix*>(&A)->block_structure())) {
// Calculate the amount of storage needed.
int storage_needed = 0;
for (int c = 0; c < block_structure_.cols.size(); ++c) {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/block_jacobian_writer.cc b/extern/libmv/third_party/ceres/internal/ceres/block_jacobian_writer.cc
index 52a58bb43a6..f90c350cc80 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/block_jacobian_writer.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/block_jacobian_writer.cc
@@ -136,9 +136,12 @@ BlockJacobianWriter::BlockJacobianWriter(const Evaluator::Options& options,
// makes the final Write() a nop.
BlockEvaluatePreparer* BlockJacobianWriter::CreateEvaluatePreparers(
int num_threads) {
+ int max_derivatives_per_residual_block =
+ program_->MaxDerivativesPerResidualBlock();
+
BlockEvaluatePreparer* preparers = new BlockEvaluatePreparer[num_threads];
for (int i = 0; i < num_threads; i++) {
- preparers[i].Init(&jacobian_layout_[0]);
+ preparers[i].Init(&jacobian_layout_[0], max_derivatives_per_residual_block);
}
return preparers;
}
diff --git a/extern/libmv/third_party/ceres/internal/ceres/block_random_access_dense_matrix.cc b/extern/libmv/third_party/ceres/internal/ceres/block_random_access_dense_matrix.cc
index 2afaf5e2ea2..0f95e8932b8 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/block_random_access_dense_matrix.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/block_random_access_dense_matrix.cc
@@ -28,10 +28,10 @@
//
// Author: sameeragarwal@google.com (Sameer Agarwal)
+#include "glog/logging.h"
#include "ceres/block_random_access_dense_matrix.h"
#include <vector>
-#include <glog/logging.h>
#include "ceres/internal/eigen.h"
#include "ceres/internal/scoped_ptr.h"
diff --git a/extern/libmv/third_party/ceres/internal/ceres/block_random_access_dense_matrix.h b/extern/libmv/third_party/ceres/internal/ceres/block_random_access_dense_matrix.h
index 3a0096209f7..9f27a4c30f3 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/block_random_access_dense_matrix.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/block_random_access_dense_matrix.h
@@ -89,7 +89,7 @@ class BlockRandomAccessDenseMatrix : public BlockRandomAccessMatrix {
vector<int> block_layout_;
scoped_array<double> values_;
- DISALLOW_COPY_AND_ASSIGN(BlockRandomAccessDenseMatrix);
+ CERES_DISALLOW_COPY_AND_ASSIGN(BlockRandomAccessDenseMatrix);
};
} // namespace internal
diff --git a/extern/libmv/third_party/ceres/internal/ceres/block_random_access_matrix.h b/extern/libmv/third_party/ceres/internal/ceres/block_random_access_matrix.h
index f398af3be87..b76cb78b160 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/block_random_access_matrix.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/block_random_access_matrix.h
@@ -77,7 +77,7 @@ namespace internal {
//
// if (cell != NULL) {
// MatrixRef m(cell->values, row_stride, col_stride);
-// MutexLock l(&cell->m);
+// CeresMutexLock l(&cell->m);
// m.block(row, col, row_block_size, col_block_size) = ...
// }
diff --git a/extern/libmv/third_party/ceres/internal/ceres/block_random_access_sparse_matrix.cc b/extern/libmv/third_party/ceres/internal/ceres/block_random_access_sparse_matrix.cc
index c496fcd13de..9ed62ce948b 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/block_random_access_sparse_matrix.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/block_random_access_sparse_matrix.cc
@@ -28,17 +28,17 @@
//
// Author: sameeragarwal@google.com (Sameer Agarwal)
+#include "glog/logging.h"
#include "ceres/block_random_access_sparse_matrix.h"
#include <algorithm>
#include <set>
#include <utility>
#include <vector>
-#include <glog/logging.h>
-#include "ceres/mutex.h"
-#include "ceres/triplet_sparse_matrix.h"
#include "ceres/internal/port.h"
#include "ceres/internal/scoped_ptr.h"
+#include "ceres/mutex.h"
+#include "ceres/triplet_sparse_matrix.h"
#include "ceres/types.h"
namespace ceres {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/block_random_access_sparse_matrix.h b/extern/libmv/third_party/ceres/internal/ceres/block_random_access_sparse_matrix.h
index 12613c3daa0..48a00437cf6 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/block_random_access_sparse_matrix.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/block_random_access_sparse_matrix.h
@@ -38,6 +38,7 @@
#include "ceres/block_random_access_matrix.h"
#include "ceres/collections_port.h"
#include "ceres/triplet_sparse_matrix.h"
+#include "ceres/integral_types.h"
#include "ceres/internal/macros.h"
#include "ceres/internal/port.h"
#include "ceres/internal/scoped_ptr.h"
@@ -84,11 +85,11 @@ class BlockRandomAccessSparseMatrix : public BlockRandomAccessMatrix {
TripletSparseMatrix* mutable_matrix() { return tsm_.get(); }
private:
- long int IntPairToLong(int a, int b) {
+ int64 IntPairToLong(int a, int b) {
return a * kMaxRowBlocks + b;
}
- const int kMaxRowBlocks;
+ const int64 kMaxRowBlocks;
// row/column block sizes.
const vector<int> blocks_;
@@ -100,7 +101,8 @@ class BlockRandomAccessSparseMatrix : public BlockRandomAccessMatrix {
// The underlying matrix object which actually stores the cells.
scoped_ptr<TripletSparseMatrix> tsm_;
- DISALLOW_COPY_AND_ASSIGN(BlockRandomAccessSparseMatrix);
+ friend class BlockRandomAccessSparseMatrixTest;
+ CERES_DISALLOW_COPY_AND_ASSIGN(BlockRandomAccessSparseMatrix);
};
} // namespace internal
diff --git a/extern/libmv/third_party/ceres/internal/ceres/block_sparse_matrix.cc b/extern/libmv/third_party/ceres/internal/ceres/block_sparse_matrix.cc
index 7dd395e2975..dbe5ec93ef0 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/block_sparse_matrix.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/block_sparse_matrix.cc
@@ -33,11 +33,11 @@
#include <cstddef>
#include <algorithm>
#include <vector>
-#include <glog/logging.h>
#include "ceres/block_structure.h"
+#include "ceres/internal/eigen.h"
#include "ceres/matrix_proto.h"
#include "ceres/triplet_sparse_matrix.h"
-#include "ceres/internal/eigen.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
@@ -81,7 +81,7 @@ BlockSparseMatrix::BlockSparseMatrix(
CHECK_NOTNULL(values_.get());
}
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
BlockSparseMatrix::BlockSparseMatrix(const SparseMatrixProto& outer_proto) {
CHECK(outer_proto.has_block_matrix());
@@ -244,7 +244,7 @@ const CompressedRowBlockStructure* BlockSparseMatrix::block_structure()
return block_structure_.get();
}
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
void BlockSparseMatrix::ToProto(SparseMatrixProto* outer_proto) const {
outer_proto->Clear();
diff --git a/extern/libmv/third_party/ceres/internal/ceres/block_sparse_matrix.h b/extern/libmv/third_party/ceres/internal/ceres/block_sparse_matrix.h
index f71446e8f58..513d398c54d 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/block_sparse_matrix.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/block_sparse_matrix.h
@@ -74,7 +74,7 @@ class BlockSparseMatrixBase : public SparseMatrix {
virtual const double* RowBlockValues(int row_block_index) const = 0;
private:
- DISALLOW_COPY_AND_ASSIGN(BlockSparseMatrixBase);
+ CERES_DISALLOW_COPY_AND_ASSIGN(BlockSparseMatrixBase);
};
// This class implements the SparseMatrix interface for storing and
@@ -96,7 +96,7 @@ class BlockSparseMatrix : public BlockSparseMatrixBase {
explicit BlockSparseMatrix(CompressedRowBlockStructure* block_structure);
// Construct a block sparse matrix from a protocol buffer.
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
explicit BlockSparseMatrix(const SparseMatrixProto& proto);
#endif
@@ -110,7 +110,7 @@ class BlockSparseMatrix : public BlockSparseMatrixBase {
virtual void SquaredColumnNorm(double* x) const;
virtual void ScaleColumns(const double* scale);
virtual void ToDenseMatrix(Matrix* dense_matrix) const;
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
virtual void ToProto(SparseMatrixProto* proto) const;
#endif
virtual void ToTextFile(FILE* file) const;
@@ -135,7 +135,7 @@ class BlockSparseMatrix : public BlockSparseMatrixBase {
int num_nonzeros_;
scoped_array<double> values_;
scoped_ptr<CompressedRowBlockStructure> block_structure_;
- DISALLOW_COPY_AND_ASSIGN(BlockSparseMatrix);
+ CERES_DISALLOW_COPY_AND_ASSIGN(BlockSparseMatrix);
};
} // namespace internal
diff --git a/extern/libmv/third_party/ceres/internal/ceres/block_structure.cc b/extern/libmv/third_party/ceres/internal/ceres/block_structure.cc
index 5add4f3b94d..e61131192af 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/block_structure.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/block_structure.cc
@@ -38,7 +38,7 @@ bool CellLessThan(const Cell& lhs, const Cell& rhs) {
return (lhs.block_id < rhs.block_id);
}
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
void ProtoToBlockStructure(const BlockStructureProto &proto,
CompressedRowBlockStructure *block_structure) {
// Decode the column blocks.
diff --git a/extern/libmv/third_party/ceres/internal/ceres/canonical_views_clustering.cc b/extern/libmv/third_party/ceres/internal/ceres/canonical_views_clustering.cc
index 53190ada6fc..d0dc1e670c2 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/canonical_views_clustering.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/canonical_views_clustering.cc
@@ -31,11 +31,11 @@
#include "ceres/canonical_views_clustering.h"
-#include <glog/logging.h>
-#include "ceres/graph.h"
#include "ceres/collections_port.h"
-#include "ceres/map_util.h"
+#include "ceres/graph.h"
#include "ceres/internal/macros.h"
+#include "ceres/map_util.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
@@ -75,7 +75,7 @@ class CanonicalViewsClustering {
IntMap view_to_canonical_view_;
// Maps a view to its similarity to its current cluster center.
HashMap<int, double> view_to_canonical_view_similarity_;
- DISALLOW_COPY_AND_ASSIGN(CanonicalViewsClustering);
+ CERES_DISALLOW_COPY_AND_ASSIGN(CanonicalViewsClustering);
};
void ComputeCanonicalViewsClustering(
diff --git a/extern/libmv/third_party/ceres/internal/ceres/cgnr_solver.h b/extern/libmv/third_party/ceres/internal/ceres/cgnr_solver.h
index dd36f99006b..877b4c4ceea 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/cgnr_solver.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/cgnr_solver.h
@@ -57,7 +57,7 @@ class CgnrSolver : public LinearSolver {
private:
const LinearSolver::Options options_;
scoped_ptr<BlockJacobiPreconditioner> jacobi_preconditioner_;
- DISALLOW_COPY_AND_ASSIGN(CgnrSolver);
+ CERES_DISALLOW_COPY_AND_ASSIGN(CgnrSolver);
};
} // namespace internal
diff --git a/extern/libmv/third_party/ceres/internal/ceres/collections_port.h b/extern/libmv/third_party/ceres/internal/ceres/collections_port.h
index 55f72539023..c2fce9033cd 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/collections_port.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/collections_port.h
@@ -33,25 +33,49 @@
#ifndef CERES_INTERNAL_COLLECTIONS_PORT_H_
#define CERES_INTERNAL_COLLECTIONS_PORT_H_
-#if defined(_MSC_VER) && _MSC_VER <= 1600
-#include <unordered_map>
-#include <unordered_set>
+#if defined(CERES_NO_TR1)
+# include <map>
+# include <set>
#else
-#include <tr1/unordered_map>
-#include <tr1/unordered_set>
+# if defined(_MSC_VER) && _MSC_VER <= 1600
+# include <unordered_map>
+# include <unordered_set>
+# else
+# include <tr1/unordered_map>
+# include <tr1/unordered_set>
+# endif
#endif
#include <utility>
#include "ceres/integral_types.h"
#include "ceres/internal/port.h"
+// Some systems don't have access to TR1. In that case, substitute the hash
+// map/set with normal map/set. The price to pay is slightly slower speed for
+// some operations.
+#if defined(CERES_NO_TR1)
+
+namespace ceres {
+namespace internal {
+
+template<typename K, typename V>
+struct HashMap : map<K, V> {};
+
+template<typename K>
+struct HashSet : set<K> {};
+
+} // namespace internal
+} // namespace ceres
+
+#else
+
namespace ceres {
namespace internal {
template<typename K, typename V>
-struct HashMap : tr1::unordered_map<K, V> {};
+struct HashMap : std::tr1::unordered_map<K, V> {};
template<typename K>
-struct HashSet : tr1::unordered_set<K> {};
+struct HashSet : std::tr1::unordered_set<K> {};
#if defined(_WIN32) && !defined(__MINGW64__) && !defined(__MINGW32__)
#define GG_LONGLONG(x) x##I64
@@ -138,4 +162,6 @@ struct hash<pair<T, T> > {
CERES_HASH_NAMESPACE_END
+#endif // CERES_NO_TR1
+
#endif // CERES_INTERNAL_COLLECTIONS_PORT_H_
diff --git a/extern/libmv/third_party/ceres/internal/ceres/compressed_row_jacobian_writer.cc b/extern/libmv/third_party/ceres/internal/ceres/compressed_row_jacobian_writer.cc
index aa883b7d353..912c4845441 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/compressed_row_jacobian_writer.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/compressed_row_jacobian_writer.cc
@@ -130,8 +130,24 @@ SparseMatrix* CompressedRowJacobianWriter::CreateJacobian() const {
}
row_pos += num_residuals;
}
-
CHECK_EQ(num_jacobian_nonzeros, rows[total_num_residuals]);
+
+ // Populate the row and column block vectors for use by block
+ // oriented ordering algorithms. This is useful when
+ // Solver::Options::use_block_amd = true.
+ const vector<ParameterBlock*>& parameter_blocks = program_->parameter_blocks();
+ vector<int>& col_blocks = *(jacobian->mutable_col_blocks());
+ col_blocks.resize(parameter_blocks.size());
+ for (int i = 0; i < parameter_blocks.size(); ++i) {
+ col_blocks[i] = parameter_blocks[i]->LocalSize();
+ }
+
+ vector<int>& row_blocks = *(jacobian->mutable_row_blocks());
+ row_blocks.resize(residual_blocks.size());
+ for (int i = 0; i < residual_blocks.size(); ++i) {
+ row_blocks[i] = residual_blocks[i]->NumResiduals();
+ }
+
return jacobian;
}
diff --git a/extern/libmv/third_party/ceres/internal/ceres/compressed_row_sparse_matrix.cc b/extern/libmv/third_party/ceres/internal/ceres/compressed_row_sparse_matrix.cc
index 95edf5396af..1b61468aaae 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/compressed_row_sparse_matrix.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/compressed_row_sparse_matrix.cc
@@ -32,15 +32,22 @@
#include <algorithm>
#include <vector>
-#include "ceres/matrix_proto.h"
+#include "ceres/crs_matrix.h"
#include "ceres/internal/port.h"
+#include "ceres/matrix_proto.h"
namespace ceres {
namespace internal {
namespace {
// Helper functor used by the constructor for reordering the contents
-// of a TripletSparseMatrix.
+// of a TripletSparseMatrix. This comparator assumes thay there are no
+// duplicates in the pair of arrays rows and cols, i.e., there is no
+// indices i and j (not equal to each other) s.t.
+//
+// rows[i] == rows[j] && cols[i] == cols[j]
+//
+// If this is the case, this functor will not be a StrictWeakOrdering.
struct RowColLessThan {
RowColLessThan(const int* rows, const int* cols)
: rows(rows), cols(cols) {
@@ -128,7 +135,7 @@ CompressedRowSparseMatrix::CompressedRowSparseMatrix(
CHECK_EQ(num_nonzeros(), m.num_nonzeros());
}
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
CompressedRowSparseMatrix::CompressedRowSparseMatrix(
const SparseMatrixProto& outer_proto) {
CHECK(outer_proto.has_compressed_row_matrix());
@@ -241,7 +248,7 @@ void CompressedRowSparseMatrix::ToDenseMatrix(Matrix* dense_matrix) const {
}
}
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
void CompressedRowSparseMatrix::ToProto(SparseMatrixProto* outer_proto) const {
CHECK_NOTNULL(outer_proto);
@@ -330,5 +337,18 @@ void CompressedRowSparseMatrix::ToTextFile(FILE* file) const {
}
}
+void CompressedRowSparseMatrix::ToCRSMatrix(CRSMatrix* matrix) const {
+ matrix->num_rows = num_rows();
+ matrix->num_cols = num_cols();
+
+ matrix->rows.resize(matrix->num_rows + 1);
+ matrix->cols.resize(num_nonzeros());
+ matrix->values.resize(num_nonzeros());
+
+ copy(rows_.get(), rows_.get() + matrix->num_rows + 1, matrix->rows.begin());
+ copy(cols_.get(), cols_.get() + num_nonzeros(), matrix->cols.begin());
+ copy(values_.get(), values_.get() + num_nonzeros(), matrix->values.begin());
+}
+
} // namespace internal
} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/compressed_row_sparse_matrix.h b/extern/libmv/third_party/ceres/internal/ceres/compressed_row_sparse_matrix.h
index 9a39d28e111..6a9d82842e5 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/compressed_row_sparse_matrix.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/compressed_row_sparse_matrix.h
@@ -31,14 +31,19 @@
#ifndef CERES_INTERNAL_COMPRESSED_ROW_SPARSE_MATRIX_H_
#define CERES_INTERNAL_COMPRESSED_ROW_SPARSE_MATRIX_H_
+#include <vector>
#include <glog/logging.h>
#include "ceres/sparse_matrix.h"
#include "ceres/triplet_sparse_matrix.h"
#include "ceres/internal/eigen.h"
#include "ceres/internal/macros.h"
+#include "ceres/internal/port.h"
#include "ceres/types.h"
namespace ceres {
+
+class CRSMatrix;
+
namespace internal {
class SparseMatrixProto;
@@ -52,7 +57,7 @@ class CompressedRowSparseMatrix : public SparseMatrix {
//
// We assume that m does not have any repeated entries.
explicit CompressedRowSparseMatrix(const TripletSparseMatrix& m);
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
explicit CompressedRowSparseMatrix(const SparseMatrixProto& proto);
#endif
@@ -85,7 +90,7 @@ class CompressedRowSparseMatrix : public SparseMatrix {
virtual void ScaleColumns(const double* scale);
virtual void ToDenseMatrix(Matrix* dense_matrix) const;
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
virtual void ToProto(SparseMatrixProto* proto) const;
#endif
virtual void ToTextFile(FILE* file) const;
@@ -103,6 +108,8 @@ class CompressedRowSparseMatrix : public SparseMatrix {
// have the same number of columns as this matrix.
void AppendRows(const CompressedRowSparseMatrix& m);
+ void ToCRSMatrix(CRSMatrix* matrix) const;
+
// Low level access methods that expose the structure of the matrix.
const int* cols() const { return cols_.get(); }
int* mutable_cols() { return cols_.get(); }
@@ -110,6 +117,12 @@ class CompressedRowSparseMatrix : public SparseMatrix {
const int* rows() const { return rows_.get(); }
int* mutable_rows() { return rows_.get(); }
+ const vector<int>& row_blocks() const { return row_blocks_; }
+ vector<int>* mutable_row_blocks() { return &row_blocks_; }
+
+ const vector<int>& col_blocks() const { return col_blocks_; }
+ vector<int>* mutable_col_blocks() { return &col_blocks_; }
+
private:
scoped_array<int> cols_;
scoped_array<int> rows_;
@@ -117,10 +130,17 @@ class CompressedRowSparseMatrix : public SparseMatrix {
int num_rows_;
int num_cols_;
-
int max_num_nonzeros_;
- DISALLOW_COPY_AND_ASSIGN(CompressedRowSparseMatrix);
+ // If the matrix has an underlying block structure, then it can also
+ // carry with it row and column block sizes. This is auxilliary and
+ // optional information for use by algorithms operating on the
+ // matrix. The class itself does not make use of this information in
+ // any way.
+ vector<int> row_blocks_;
+ vector<int> col_blocks_;
+
+ CERES_DISALLOW_COPY_AND_ASSIGN(CompressedRowSparseMatrix);
};
} // namespace internal
diff --git a/extern/libmv/third_party/ceres/internal/ceres/conditioned_cost_function.cc b/extern/libmv/third_party/ceres/internal/ceres/conditioned_cost_function.cc
index ca80bfb9c9d..7322790f717 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/conditioned_cost_function.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/conditioned_cost_function.cc
@@ -34,10 +34,10 @@
#include <cstddef>
-#include <glog/logging.h>
-#include "ceres/stl_util.h"
#include "ceres/internal/eigen.h"
+#include "ceres/stl_util.h"
#include "ceres/types.h"
+#include "glog/logging.h"
namespace ceres {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/conjugate_gradients_solver.cc b/extern/libmv/third_party/ceres/internal/ceres/conjugate_gradients_solver.cc
index 75f9e043fa5..ae8e8774709 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/conjugate_gradients_solver.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/conjugate_gradients_solver.cc
@@ -41,18 +41,18 @@
#include <cmath>
#include <cstddef>
-#include <glog/logging.h>
-#include "ceres/linear_operator.h"
+#include "ceres/fpclassify.h"
#include "ceres/internal/eigen.h"
+#include "ceres/linear_operator.h"
#include "ceres/types.h"
-#include "ceres/jet.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
namespace {
bool IsZeroOrInfinity(double x) {
- return ((x == 0.0) || (isinf(x)));
+ return ((x == 0.0) || (IsInfinite(x)));
}
// Constant used in the MATLAB implementation ~ 2 * eps.
@@ -115,7 +115,7 @@ LinearSolver::Summary ConjugateGradientsSolver::Solve(
for (summary.num_iterations = 1;
summary.num_iterations < options_.max_num_iterations;
++summary.num_iterations) {
- VLOG(2) << "cg iteration " << summary.num_iterations;
+ VLOG(3) << "cg iteration " << summary.num_iterations;
// Apply preconditioner
if (per_solve_options.preconditioner != NULL) {
@@ -151,14 +151,14 @@ LinearSolver::Summary ConjugateGradientsSolver::Solve(
A->RightMultiply(p.data(), q.data());
double pq = p.dot(q);
- if ((pq <= 0) || isinf(pq)) {
+ if ((pq <= 0) || IsInfinite(pq)) {
LOG(ERROR) << "Numerical failure. pq = " << pq;
summary.termination_type = FAILURE;
break;
}
double alpha = rho / pq;
- if (isinf(alpha)) {
+ if (IsInfinite(alpha)) {
LOG(ERROR) << "Numerical failure. alpha " << alpha;
summary.termination_type = FAILURE;
break;
@@ -202,13 +202,13 @@ LinearSolver::Summary ConjugateGradientsSolver::Solve(
// 1. Stephen G. Nash & Ariela Sofer, Assessing A Search
// Direction Within A Truncated Newton Method, Operation
// Research Letters 9(1990) 219-221.
- //
+ //
// 2. Stephen G. Nash, A Survey of Truncated Newton Methods,
// Journal of Computational and Applied Mathematics,
// 124(1-2), 45-59, 2000.
//
double zeta = summary.num_iterations * (Q1 - Q0) / Q1;
- VLOG(2) << "Q termination: zeta " << zeta
+ VLOG(3) << "Q termination: zeta " << zeta
<< " " << per_solve_options.q_tolerance;
if (zeta < per_solve_options.q_tolerance) {
summary.termination_type = TOLERANCE;
@@ -218,7 +218,7 @@ LinearSolver::Summary ConjugateGradientsSolver::Solve(
// Residual based termination.
norm_r = r. norm();
- VLOG(2) << "R termination: norm_r " << norm_r
+ VLOG(3) << "R termination: norm_r " << norm_r
<< " " << tol_r;
if (norm_r <= tol_r) {
summary.termination_type = TOLERANCE;
diff --git a/extern/libmv/third_party/ceres/internal/ceres/conjugate_gradients_solver.h b/extern/libmv/third_party/ceres/internal/ceres/conjugate_gradients_solver.h
index 57f99e31db7..b8dfa56b526 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/conjugate_gradients_solver.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/conjugate_gradients_solver.h
@@ -65,7 +65,7 @@ class ConjugateGradientsSolver : public LinearSolver {
private:
const LinearSolver::Options options_;
- DISALLOW_COPY_AND_ASSIGN(ConjugateGradientsSolver);
+ CERES_DISALLOW_COPY_AND_ASSIGN(ConjugateGradientsSolver);
};
} // namespace internal
diff --git a/extern/libmv/third_party/ceres/internal/ceres/corrector.cc b/extern/libmv/third_party/ceres/internal/ceres/corrector.cc
index 4ca2c6f6c86..eff4dff8566 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/corrector.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/corrector.cc
@@ -32,8 +32,8 @@
#include <cstddef>
#include <cmath>
-#include <glog/logging.h>
#include "ceres/internal/eigen.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/cxsparse.cc b/extern/libmv/third_party/ceres/internal/ceres/cxsparse.cc
new file mode 100644
index 00000000000..ca36ce07614
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/cxsparse.cc
@@ -0,0 +1,130 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: strandmark@google.com (Petter Strandmark)
+
+#ifndef CERES_NO_CXSPARSE
+
+#include "ceres/cxsparse.h"
+
+#include "ceres/compressed_row_sparse_matrix.h"
+#include "ceres/triplet_sparse_matrix.h"
+#include "glog/logging.h"
+
+namespace ceres {
+namespace internal {
+
+CXSparse::CXSparse() : scratch_size_(0), scratch_(NULL) {
+}
+
+CXSparse::~CXSparse() {
+ if (scratch_size_ > 0) {
+ cs_free(scratch_);
+ }
+}
+
+bool CXSparse::SolveCholesky(cs_di* A,
+ cs_dis* symbolic_factorization,
+ double* b) {
+ // Make sure we have enough scratch space available.
+ if (scratch_size_ < A->n) {
+ if (scratch_size_ > 0) {
+ cs_free(scratch_);
+ }
+ scratch_ = reinterpret_cast<CS_ENTRY*>(cs_malloc(A->n, sizeof(CS_ENTRY)));
+ }
+
+ // Solve using Cholesky factorization
+ csn* numeric_factorization = cs_chol(A, symbolic_factorization);
+ if (numeric_factorization == NULL) {
+ LOG(WARNING) << "Cholesky factorization failed.";
+ return false;
+ }
+
+ // When the Cholesky factorization succeeded, these methods are guaranteed to
+ // succeeded as well. In the comments below, "x" refers to the scratch space.
+ //
+ // Set x = P * b.
+ cs_ipvec(symbolic_factorization->pinv, b, scratch_, A->n);
+
+ // Set x = L \ x.
+ cs_lsolve(numeric_factorization->L, scratch_);
+
+ // Set x = L' \ x.
+ cs_ltsolve(numeric_factorization->L, scratch_);
+
+ // Set b = P' * x.
+ cs_pvec(symbolic_factorization->pinv, scratch_, b, A->n);
+
+ // Free Cholesky factorization.
+ cs_nfree(numeric_factorization);
+ return true;
+}
+
+cs_dis* CXSparse::AnalyzeCholesky(cs_di* A) {
+ // order = 1 for Cholesky factorization.
+ return cs_schol(1, A);
+}
+
+cs_di CXSparse::CreateSparseMatrixTransposeView(CompressedRowSparseMatrix* A) {
+ cs_di At;
+ At.m = A->num_cols();
+ At.n = A->num_rows();
+ At.nz = -1;
+ At.nzmax = A->num_nonzeros();
+ At.p = A->mutable_rows();
+ At.i = A->mutable_cols();
+ At.x = A->mutable_values();
+ return At;
+}
+
+cs_di* CXSparse::CreateSparseMatrix(TripletSparseMatrix* tsm) {
+ cs_di_sparse tsm_wrapper;
+ tsm_wrapper.nzmax = tsm->num_nonzeros();;
+ tsm_wrapper.nz = tsm->num_nonzeros();;
+ tsm_wrapper.m = tsm->num_rows();
+ tsm_wrapper.n = tsm->num_cols();
+ tsm_wrapper.p = tsm->mutable_cols();
+ tsm_wrapper.i = tsm->mutable_rows();
+ tsm_wrapper.x = tsm->mutable_values();
+
+ return cs_compress(&tsm_wrapper);
+}
+
+void CXSparse::Free(cs_di* factor) {
+ cs_free(factor);
+}
+
+void CXSparse::Free(cs_dis* factor) {
+ cs_sfree(factor);
+}
+
+} // namespace internal
+} // namespace ceres
+
+#endif // CERES_NO_CXSPARSE
diff --git a/extern/libmv/third_party/ceres/internal/ceres/cxsparse.h b/extern/libmv/third_party/ceres/internal/ceres/cxsparse.h
new file mode 100644
index 00000000000..d3b64fcd1a5
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/cxsparse.h
@@ -0,0 +1,90 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: strandmark@google.com (Petter Strandmark)
+
+#ifndef CERES_INTERNAL_CXSPARSE_H_
+#define CERES_INTERNAL_CXSPARSE_H_
+
+#ifndef CERES_NO_CXSPARSE
+
+#include "cs.h"
+
+namespace ceres {
+namespace internal {
+
+class CompressedRowSparseMatrix;
+class TripletSparseMatrix;
+
+// This object provides access to solving linear systems using Cholesky
+// factorization with a known symbolic factorization. This features does not
+// explicity exist in CXSparse. The methods in the class are nonstatic because
+// the class manages internal scratch space.
+class CXSparse {
+ public:
+ CXSparse();
+ ~CXSparse();
+
+ // Solves a symmetric linear system A * x = b using Cholesky factorization.
+ // A - The system matrix.
+ // symbolic_factorization - The symbolic factorization of A. This is obtained
+ // from AnalyzeCholesky.
+ // b - The right hand size of the linear equation. This
+ // array will also recieve the solution.
+ // Returns false if Cholesky factorization of A fails.
+ bool SolveCholesky(cs_di* A, cs_dis* symbolic_factorization, double* b);
+
+ // Creates a sparse matrix from a compressed-column form. No memory is
+ // allocated or copied; the structure A is filled out with info from the
+ // argument.
+ cs_di CreateSparseMatrixTransposeView(CompressedRowSparseMatrix* A);
+
+ // Creates a new matrix from a triplet form. Deallocate the returned matrix
+ // with Free. May return NULL if the compression or allocation fails.
+ cs_di* CreateSparseMatrix(TripletSparseMatrix* A);
+
+ // Computes a symbolic factorization of A that can be used in SolveCholesky.
+ // The returned matrix should be deallocated with Free when not used anymore.
+ cs_dis* AnalyzeCholesky(cs_di* A);
+
+ // Deallocates the memory of a matrix obtained from AnalyzeCholesky.
+ void Free(cs_di* factor);
+ void Free(cs_dis* factor);
+
+ private:
+ // Cached scratch space
+ CS_ENTRY* scratch_;
+ int scratch_size_;
+};
+
+} // namespace internal
+} // namespace ceres
+
+#endif // CERES_NO_CXSPARSE
+
+#endif // CERES_INTERNAL_CXSPARSE_H_
diff --git a/extern/libmv/third_party/ceres/internal/ceres/dense_normal_cholesky_solver.cc b/extern/libmv/third_party/ceres/internal/ceres/dense_normal_cholesky_solver.cc
new file mode 100644
index 00000000000..f6bb99abf63
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/dense_normal_cholesky_solver.cc
@@ -0,0 +1,86 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: sameeragarwal@google.com (Sameer Agarwal)
+
+#include "ceres/dense_normal_cholesky_solver.h"
+
+#include <cstddef>
+
+#include "Eigen/Dense"
+#include "ceres/dense_sparse_matrix.h"
+#include "ceres/linear_solver.h"
+#include "ceres/internal/eigen.h"
+#include "ceres/internal/scoped_ptr.h"
+#include "ceres/types.h"
+
+namespace ceres {
+namespace internal {
+
+DenseNormalCholeskySolver::DenseNormalCholeskySolver(
+ const LinearSolver::Options& options)
+ : options_(options) {}
+
+LinearSolver::Summary DenseNormalCholeskySolver::SolveImpl(
+ DenseSparseMatrix* A,
+ const double* b,
+ const LinearSolver::PerSolveOptions& per_solve_options,
+ double* x) {
+ const int num_rows = A->num_rows();
+ const int num_cols = A->num_cols();
+
+ ConstAlignedMatrixRef Aref = A->matrix();
+ Matrix lhs(num_cols, num_cols);
+ lhs.setZero();
+
+ // lhs += A'A
+ //
+ // Using rankUpdate instead of GEMM, exposes the fact that its the
+ // same matrix being multiplied with itself and that the product is
+ // symmetric.
+ lhs.selfadjointView<Eigen::Upper>().rankUpdate(Aref.transpose());
+
+ // rhs = A'b
+ Vector rhs = Aref.transpose() * ConstVectorRef(b, num_rows);
+
+ if (per_solve_options.D != NULL) {
+ ConstVectorRef D(per_solve_options.D, num_cols);
+ lhs += D.array().square().matrix().asDiagonal();
+ }
+
+ VectorRef(x, num_cols) =
+ lhs.selfadjointView<Eigen::Upper>().ldlt().solve(rhs);
+
+ LinearSolver::Summary summary;
+ summary.num_iterations = 1;
+ summary.termination_type = TOLERANCE;
+ return summary;
+}
+
+} // namespace internal
+} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/dense_normal_cholesky_solver.h b/extern/libmv/third_party/ceres/internal/ceres/dense_normal_cholesky_solver.h
new file mode 100644
index 00000000000..de47740583d
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/dense_normal_cholesky_solver.h
@@ -0,0 +1,95 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: sameeragarwal@google.com (Sameer Agarwal)
+//
+// Solve dense rectangular systems Ax = b by forming the normal
+// equations and solving them using the Cholesky factorization.
+
+#ifndef CERES_INTERNAL_DENSE_NORMAL_CHOLESKY_SOLVER_H_
+#define CERES_INTERNAL_DENSE_NORMAL_CHOLESKY_SOLVER_H_
+
+#include "ceres/linear_solver.h"
+#include "ceres/internal/macros.h"
+
+namespace ceres {
+namespace internal {
+
+class DenseSparseMatrix;
+
+// This class implements the LinearSolver interface for solving
+// rectangular/unsymmetric (well constrained) linear systems of the
+// form
+//
+// Ax = b
+//
+// Since there does not usually exist a solution that satisfies these
+// equations, the solver instead solves the linear least squares
+// problem
+//
+// min_x |Ax - b|^2
+//
+// Setting the gradient of the above optimization problem to zero
+// gives us the normal equations
+//
+// A'Ax = A'b
+//
+// A'A is a positive definite matrix (hopefully), and the resulting
+// linear system can be solved using Cholesky factorization.
+//
+// If the PerSolveOptions struct has a non-null array D, then the
+// augmented/regularized linear system
+//
+// [ A ]x = [b]
+// [ diag(D) ] [0]
+//
+// is solved.
+//
+// This class uses the LDLT factorization routines from the Eigen
+// library. This solver always returns a solution, it is the user's
+// responsibility to judge if the solution is good enough for their
+// purposes.
+class DenseNormalCholeskySolver: public DenseSparseMatrixSolver {
+ public:
+ explicit DenseNormalCholeskySolver(const LinearSolver::Options& options);
+
+ private:
+ virtual LinearSolver::Summary SolveImpl(
+ DenseSparseMatrix* A,
+ const double* b,
+ const LinearSolver::PerSolveOptions& per_solve_options,
+ double* x);
+
+ const LinearSolver::Options options_;
+ CERES_DISALLOW_COPY_AND_ASSIGN(DenseNormalCholeskySolver);
+};
+
+} // namespace internal
+} // namespace ceres
+
+#endif // CERES_INTERNAL_DENSE_NORMAL_CHOLESKY_SOLVER_H_
diff --git a/extern/libmv/third_party/ceres/internal/ceres/dense_qr_solver.cc b/extern/libmv/third_party/ceres/internal/ceres/dense_qr_solver.cc
index 328505404d7..2b329ee0e9c 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/dense_qr_solver.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/dense_qr_solver.cc
@@ -33,8 +33,8 @@
#include <cstddef>
#include "Eigen/Dense"
+#include "ceres/dense_sparse_matrix.h"
#include "ceres/linear_solver.h"
-#include "ceres/triplet_sparse_matrix.h"
#include "ceres/internal/eigen.h"
#include "ceres/internal/scoped_ptr.h"
#include "ceres/types.h"
@@ -62,7 +62,7 @@ LinearSolver::Summary DenseQRSolver::SolveImpl(
}
// rhs = [b;0] to account for the additional rows in the lhs.
- Vector rhs(num_rows + ((per_solve_options.D !=NULL) ? num_cols : 0));
+ Vector rhs(num_rows + ((per_solve_options.D != NULL) ? num_cols : 0));
rhs.setZero();
rhs.head(num_rows) = ConstVectorRef(b, num_rows);
diff --git a/extern/libmv/third_party/ceres/internal/ceres/dense_qr_solver.h b/extern/libmv/third_party/ceres/internal/ceres/dense_qr_solver.h
index 990c8d445eb..dd683a8c4ea 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/dense_qr_solver.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/dense_qr_solver.h
@@ -28,7 +28,7 @@
//
// Author: sameeragarwal@google.com (Sameer Agarwal)
//
-// Solve dense rectangular systems Ax = b using the QR factoriztion.
+// Solve dense rectangular systems Ax = b using the QR factorization.
#ifndef CERES_INTERNAL_DENSE_QR_SOLVER_H_
#define CERES_INTERNAL_DENSE_QR_SOLVER_H_
@@ -90,7 +90,7 @@ class DenseQRSolver: public DenseSparseMatrixSolver {
double* x);
const LinearSolver::Options options_;
- DISALLOW_COPY_AND_ASSIGN(DenseQRSolver);
+ CERES_DISALLOW_COPY_AND_ASSIGN(DenseQRSolver);
};
} // namespace internal
diff --git a/extern/libmv/third_party/ceres/internal/ceres/dense_sparse_matrix.cc b/extern/libmv/third_party/ceres/internal/ceres/dense_sparse_matrix.cc
index 5d392ba6c3b..86730cc101b 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/dense_sparse_matrix.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/dense_sparse_matrix.cc
@@ -67,7 +67,7 @@ DenseSparseMatrix::DenseSparseMatrix(const Matrix& m)
has_diagonal_reserved_(false) {
}
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
DenseSparseMatrix::DenseSparseMatrix(const SparseMatrixProto& outer_proto)
: m_(Eigen::MatrixXd::Zero(
outer_proto.dense_matrix().num_rows(),
@@ -108,7 +108,7 @@ void DenseSparseMatrix::ToDenseMatrix(Matrix* dense_matrix) const {
*dense_matrix = m_;
}
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
void DenseSparseMatrix::ToProto(SparseMatrixProto* outer_proto) const {
CHECK(!has_diagonal_appended_) << "Not supported.";
outer_proto->Clear();
@@ -183,7 +183,7 @@ void DenseSparseMatrix::ToTextFile(FILE* file) const {
CHECK_NOTNULL(file);
const int active_rows =
(has_diagonal_reserved_ && !has_diagonal_appended_)
- ? (m_.rows() - m_.cols())
+ ? (m_.rows() - m_.cols())
: m_.rows();
for (int r = 0; r < active_rows; ++r) {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/dense_sparse_matrix.h b/extern/libmv/third_party/ceres/internal/ceres/dense_sparse_matrix.h
index 416c2143c2c..e7ad14d0ee6 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/dense_sparse_matrix.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/dense_sparse_matrix.h
@@ -52,7 +52,7 @@ class DenseSparseMatrix : public SparseMatrix {
// m. This assumes that m does not have any repeated entries.
explicit DenseSparseMatrix(const TripletSparseMatrix& m);
explicit DenseSparseMatrix(const Matrix& m);
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
explicit DenseSparseMatrix(const SparseMatrixProto& proto);
#endif
@@ -67,7 +67,7 @@ class DenseSparseMatrix : public SparseMatrix {
virtual void SquaredColumnNorm(double* x) const;
virtual void ScaleColumns(const double* scale);
virtual void ToDenseMatrix(Matrix* dense_matrix) const;
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
virtual void ToProto(SparseMatrixProto* proto) const;
#endif
virtual void ToTextFile(FILE* file) const;
diff --git a/extern/libmv/third_party/ceres/internal/ceres/detect_structure.cc b/extern/libmv/third_party/ceres/internal/ceres/detect_structure.cc
index e9755043bab..ea5bf2e9690 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/detect_structure.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/detect_structure.cc
@@ -28,9 +28,9 @@
//
// Author: sameeragarwal@google.com (Sameer Agarwal)
-#include <glog/logging.h>
#include "ceres/detect_structure.h"
#include "ceres/internal/eigen.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
@@ -60,10 +60,10 @@ void DetectStructure(const CompressedRowBlockStructure& bs,
*row_block_size = row.block.size;
} else if (*row_block_size != Eigen::Dynamic &&
*row_block_size != row.block.size) {
- *row_block_size = Eigen::Dynamic;
VLOG(2) << "Dynamic row block size because the block size changed from "
<< *row_block_size << " to "
<< row.block.size;
+ *row_block_size = Eigen::Dynamic;
}
@@ -71,10 +71,10 @@ void DetectStructure(const CompressedRowBlockStructure& bs,
*e_block_size = bs.cols[e_block_id].size;
} else if (*e_block_size != Eigen::Dynamic &&
*e_block_size != bs.cols[e_block_id].size) {
- *e_block_size = Eigen::Dynamic;
VLOG(2) << "Dynamic e block size because the block size changed from "
<< *e_block_size << " to "
<< bs.cols[e_block_id].size;
+ *e_block_size = Eigen::Dynamic;
}
if (*f_block_size == 0) {
@@ -85,11 +85,11 @@ void DetectStructure(const CompressedRowBlockStructure& bs,
} else if (*f_block_size != Eigen::Dynamic) {
for (int c = 1; c < row.cells.size(); ++c) {
if (*f_block_size != bs.cols[row.cells[c].block_id].size) {
- *f_block_size = Eigen::Dynamic;
VLOG(2) << "Dynamic f block size because the block size "
- << "changed from " << *f_block_size << " to "
- << bs.cols[row.cells[c].block_id].size;
- break;
+ << "changed from " << *f_block_size << " to "
+ << bs.cols[row.cells[c].block_id].size;
+ *f_block_size = Eigen::Dynamic;
+ break;
}
}
}
diff --git a/extern/libmv/third_party/ceres/internal/ceres/detect_structure.h b/extern/libmv/third_party/ceres/internal/ceres/detect_structure.h
index 8af4f236690..5f8e1b4ff46 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/detect_structure.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/detect_structure.h
@@ -49,7 +49,7 @@ namespace internal {
// is known as compile time.
//
// For more details about e_blocks and f_blocks, see
-// schur_complement.h. This information is used to initialized an
+// schur_eliminator.h. This information is used to initialized an
// appropriate template specialization of SchurEliminator.
void DetectStructure(const CompressedRowBlockStructure& bs,
const int num_eliminate_blocks,
diff --git a/extern/libmv/third_party/ceres/internal/ceres/dogleg_strategy.cc b/extern/libmv/third_party/ceres/internal/ceres/dogleg_strategy.cc
new file mode 100644
index 00000000000..668fa54b8b8
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/dogleg_strategy.cc
@@ -0,0 +1,691 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: sameeragarwal@google.com (Sameer Agarwal)
+
+#include "ceres/dogleg_strategy.h"
+
+#include <cmath>
+#include "Eigen/Dense"
+#include "ceres/array_utils.h"
+#include "ceres/internal/eigen.h"
+#include "ceres/linear_solver.h"
+#include "ceres/polynomial_solver.h"
+#include "ceres/sparse_matrix.h"
+#include "ceres/trust_region_strategy.h"
+#include "ceres/types.h"
+#include "glog/logging.h"
+
+namespace ceres {
+namespace internal {
+namespace {
+const double kMaxMu = 1.0;
+const double kMinMu = 1e-8;
+}
+
+DoglegStrategy::DoglegStrategy(const TrustRegionStrategy::Options& options)
+ : linear_solver_(options.linear_solver),
+ radius_(options.initial_radius),
+ max_radius_(options.max_radius),
+ min_diagonal_(options.lm_min_diagonal),
+ max_diagonal_(options.lm_max_diagonal),
+ mu_(kMinMu),
+ min_mu_(kMinMu),
+ max_mu_(kMaxMu),
+ mu_increase_factor_(10.0),
+ increase_threshold_(0.75),
+ decrease_threshold_(0.25),
+ dogleg_step_norm_(0.0),
+ reuse_(false),
+ dogleg_type_(options.dogleg_type) {
+ CHECK_NOTNULL(linear_solver_);
+ CHECK_GT(min_diagonal_, 0.0);
+ CHECK_LE(min_diagonal_, max_diagonal_);
+ CHECK_GT(max_radius_, 0.0);
+}
+
+// If the reuse_ flag is not set, then the Cauchy point (scaled
+// gradient) and the new Gauss-Newton step are computed from
+// scratch. The Dogleg step is then computed as interpolation of these
+// two vectors.
+TrustRegionStrategy::Summary DoglegStrategy::ComputeStep(
+ const TrustRegionStrategy::PerSolveOptions& per_solve_options,
+ SparseMatrix* jacobian,
+ const double* residuals,
+ double* step) {
+ CHECK_NOTNULL(jacobian);
+ CHECK_NOTNULL(residuals);
+ CHECK_NOTNULL(step);
+
+ const int n = jacobian->num_cols();
+ if (reuse_) {
+ // Gauss-Newton and gradient vectors are always available, only a
+ // new interpolant need to be computed. For the subspace case,
+ // the subspace and the two-dimensional model are also still valid.
+ switch(dogleg_type_) {
+ case TRADITIONAL_DOGLEG:
+ ComputeTraditionalDoglegStep(step);
+ break;
+
+ case SUBSPACE_DOGLEG:
+ ComputeSubspaceDoglegStep(step);
+ break;
+ }
+ TrustRegionStrategy::Summary summary;
+ summary.num_iterations = 0;
+ summary.termination_type = TOLERANCE;
+ return summary;
+ }
+
+ reuse_ = true;
+ // Check that we have the storage needed to hold the various
+ // temporary vectors.
+ if (diagonal_.rows() != n) {
+ diagonal_.resize(n, 1);
+ gradient_.resize(n, 1);
+ gauss_newton_step_.resize(n, 1);
+ }
+
+ // Vector used to form the diagonal matrix that is used to
+ // regularize the Gauss-Newton solve and that defines the
+ // elliptical trust region
+ //
+ // || D * step || <= radius_ .
+ //
+ jacobian->SquaredColumnNorm(diagonal_.data());
+ for (int i = 0; i < n; ++i) {
+ diagonal_[i] = min(max(diagonal_[i], min_diagonal_), max_diagonal_);
+ }
+ diagonal_ = diagonal_.array().sqrt();
+
+ ComputeGradient(jacobian, residuals);
+ ComputeCauchyPoint(jacobian);
+
+ LinearSolver::Summary linear_solver_summary =
+ ComputeGaussNewtonStep(jacobian, residuals);
+
+ TrustRegionStrategy::Summary summary;
+ summary.residual_norm = linear_solver_summary.residual_norm;
+ summary.num_iterations = linear_solver_summary.num_iterations;
+ summary.termination_type = linear_solver_summary.termination_type;
+
+ if (linear_solver_summary.termination_type != FAILURE) {
+ switch(dogleg_type_) {
+ // Interpolate the Cauchy point and the Gauss-Newton step.
+ case TRADITIONAL_DOGLEG:
+ ComputeTraditionalDoglegStep(step);
+ break;
+
+ // Find the minimum in the subspace defined by the
+ // Cauchy point and the (Gauss-)Newton step.
+ case SUBSPACE_DOGLEG:
+ if (!ComputeSubspaceModel(jacobian)) {
+ summary.termination_type = FAILURE;
+ break;
+ }
+ ComputeSubspaceDoglegStep(step);
+ break;
+ }
+ }
+
+ return summary;
+}
+
+// The trust region is assumed to be elliptical with the
+// diagonal scaling matrix D defined by sqrt(diagonal_).
+// It is implemented by substituting step' = D * step.
+// The trust region for step' is spherical.
+// The gradient, the Gauss-Newton step, the Cauchy point,
+// and all calculations involving the Jacobian have to
+// be adjusted accordingly.
+void DoglegStrategy::ComputeGradient(
+ SparseMatrix* jacobian,
+ const double* residuals) {
+ gradient_.setZero();
+ jacobian->LeftMultiply(residuals, gradient_.data());
+ gradient_.array() /= diagonal_.array();
+}
+
+// The Cauchy point is the global minimizer of the quadratic model
+// along the one-dimensional subspace spanned by the gradient.
+void DoglegStrategy::ComputeCauchyPoint(SparseMatrix* jacobian) {
+ // alpha * -gradient is the Cauchy point.
+ Vector Jg(jacobian->num_rows());
+ Jg.setZero();
+ // The Jacobian is scaled implicitly by computing J * (D^-1 * (D^-1 * g))
+ // instead of (J * D^-1) * (D^-1 * g).
+ Vector scaled_gradient =
+ (gradient_.array() / diagonal_.array()).matrix();
+ jacobian->RightMultiply(scaled_gradient.data(), Jg.data());
+ alpha_ = gradient_.squaredNorm() / Jg.squaredNorm();
+}
+
+// The dogleg step is defined as the intersection of the trust region
+// boundary with the piecewise linear path from the origin to the Cauchy
+// point and then from there to the Gauss-Newton point (global minimizer
+// of the model function). The Gauss-Newton point is taken if it lies
+// within the trust region.
+void DoglegStrategy::ComputeTraditionalDoglegStep(double* dogleg) {
+ VectorRef dogleg_step(dogleg, gradient_.rows());
+
+ // Case 1. The Gauss-Newton step lies inside the trust region, and
+ // is therefore the optimal solution to the trust-region problem.
+ const double gradient_norm = gradient_.norm();
+ const double gauss_newton_norm = gauss_newton_step_.norm();
+ if (gauss_newton_norm <= radius_) {
+ dogleg_step = gauss_newton_step_;
+ dogleg_step_norm_ = gauss_newton_norm;
+ dogleg_step.array() /= diagonal_.array();
+ VLOG(3) << "GaussNewton step size: " << dogleg_step_norm_
+ << " radius: " << radius_;
+ return;
+ }
+
+ // Case 2. The Cauchy point and the Gauss-Newton steps lie outside
+ // the trust region. Rescale the Cauchy point to the trust region
+ // and return.
+ if (gradient_norm * alpha_ >= radius_) {
+ dogleg_step = -(radius_ / gradient_norm) * gradient_;
+ dogleg_step_norm_ = radius_;
+ dogleg_step.array() /= diagonal_.array();
+ VLOG(3) << "Cauchy step size: " << dogleg_step_norm_
+ << " radius: " << radius_;
+ return;
+ }
+
+ // Case 3. The Cauchy point is inside the trust region and the
+ // Gauss-Newton step is outside. Compute the line joining the two
+ // points and the point on it which intersects the trust region
+ // boundary.
+
+ // a = alpha * -gradient
+ // b = gauss_newton_step
+ const double b_dot_a = -alpha_ * gradient_.dot(gauss_newton_step_);
+ const double a_squared_norm = pow(alpha_ * gradient_norm, 2.0);
+ const double b_minus_a_squared_norm =
+ a_squared_norm - 2 * b_dot_a + pow(gauss_newton_norm, 2);
+
+ // c = a' (b - a)
+ // = alpha * -gradient' gauss_newton_step - alpha^2 |gradient|^2
+ const double c = b_dot_a - a_squared_norm;
+ const double d = sqrt(c * c + b_minus_a_squared_norm *
+ (pow(radius_, 2.0) - a_squared_norm));
+
+ double beta =
+ (c <= 0)
+ ? (d - c) / b_minus_a_squared_norm
+ : (radius_ * radius_ - a_squared_norm) / (d + c);
+ dogleg_step = (-alpha_ * (1.0 - beta)) * gradient_
+ + beta * gauss_newton_step_;
+ dogleg_step_norm_ = dogleg_step.norm();
+ dogleg_step.array() /= diagonal_.array();
+ VLOG(3) << "Dogleg step size: " << dogleg_step_norm_
+ << " radius: " << radius_;
+}
+
+// The subspace method finds the minimum of the two-dimensional problem
+//
+// min. 1/2 x' B' H B x + g' B x
+// s.t. || B x ||^2 <= r^2
+//
+// where r is the trust region radius and B is the matrix with unit columns
+// spanning the subspace defined by the steepest descent and Newton direction.
+// This subspace by definition includes the Gauss-Newton point, which is
+// therefore taken if it lies within the trust region.
+void DoglegStrategy::ComputeSubspaceDoglegStep(double* dogleg) {
+ VectorRef dogleg_step(dogleg, gradient_.rows());
+
+ // The Gauss-Newton point is inside the trust region if |GN| <= radius_.
+ // This test is valid even though radius_ is a length in the two-dimensional
+ // subspace while gauss_newton_step_ is expressed in the (scaled)
+ // higher dimensional original space. This is because
+ //
+ // 1. gauss_newton_step_ by definition lies in the subspace, and
+ // 2. the subspace basis is orthonormal.
+ //
+ // As a consequence, the norm of the gauss_newton_step_ in the subspace is
+ // the same as its norm in the original space.
+ const double gauss_newton_norm = gauss_newton_step_.norm();
+ if (gauss_newton_norm <= radius_) {
+ dogleg_step = gauss_newton_step_;
+ dogleg_step_norm_ = gauss_newton_norm;
+ dogleg_step.array() /= diagonal_.array();
+ VLOG(3) << "GaussNewton step size: " << dogleg_step_norm_
+ << " radius: " << radius_;
+ return;
+ }
+
+ // The optimum lies on the boundary of the trust region. The above problem
+ // therefore becomes
+ //
+ // min. 1/2 x^T B^T H B x + g^T B x
+ // s.t. || B x ||^2 = r^2
+ //
+ // Notice the equality in the constraint.
+ //
+ // This can be solved by forming the Lagrangian, solving for x(y), where
+ // y is the Lagrange multiplier, using the gradient of the objective, and
+ // putting x(y) back into the constraint. This results in a fourth order
+ // polynomial in y, which can be solved using e.g. the companion matrix.
+ // See the description of MakePolynomialForBoundaryConstrainedProblem for
+ // details. The result is up to four real roots y*, not all of which
+ // correspond to feasible points. The feasible points x(y*) have to be
+ // tested for optimality.
+
+ if (subspace_is_one_dimensional_) {
+ // The subspace is one-dimensional, so both the gradient and
+ // the Gauss-Newton step point towards the same direction.
+ // In this case, we move along the gradient until we reach the trust
+ // region boundary.
+ dogleg_step = -(radius_ / gradient_.norm()) * gradient_;
+ dogleg_step_norm_ = radius_;
+ dogleg_step.array() /= diagonal_.array();
+ VLOG(3) << "Dogleg subspace step size (1D): " << dogleg_step_norm_
+ << " radius: " << radius_;
+ return;
+ }
+
+ Vector2d minimum(0.0, 0.0);
+ if (!FindMinimumOnTrustRegionBoundary(&minimum)) {
+ // For the positive semi-definite case, a traditional dogleg step
+ // is taken in this case.
+ LOG(WARNING) << "Failed to compute polynomial roots. "
+ << "Taking traditional dogleg step instead.";
+ ComputeTraditionalDoglegStep(dogleg);
+ return;
+ }
+
+ // Test first order optimality at the minimum.
+ // The first order KKT conditions state that the minimum x*
+ // has to satisfy either || x* ||^2 < r^2 (i.e. has to lie within
+ // the trust region), or
+ //
+ // (B x* + g) + y x* = 0
+ //
+ // for some positive scalar y.
+ // Here, as it is already known that the minimum lies on the boundary, the
+ // latter condition is tested. To allow for small imprecisions, we test if
+ // the angle between (B x* + g) and -x* is smaller than acos(0.99).
+ // The exact value of the cosine is arbitrary but should be close to 1.
+ //
+ // This condition should not be violated. If it is, the minimum was not
+ // correctly determined.
+ const double kCosineThreshold = 0.99;
+ const Vector2d grad_minimum = subspace_B_ * minimum + subspace_g_;
+ const double cosine_angle = -minimum.dot(grad_minimum) /
+ (minimum.norm() * grad_minimum.norm());
+ if (cosine_angle < kCosineThreshold) {
+ LOG(WARNING) << "First order optimality seems to be violated "
+ << "in the subspace method!\n"
+ << "Cosine of angle between x and B x + g is "
+ << cosine_angle << ".\n"
+ << "Taking a regular dogleg step instead.\n"
+ << "Please consider filing a bug report if this "
+ << "happens frequently or consistently.\n";
+ ComputeTraditionalDoglegStep(dogleg);
+ return;
+ }
+
+ // Create the full step from the optimal 2d solution.
+ dogleg_step = subspace_basis_ * minimum;
+ dogleg_step_norm_ = radius_;
+ dogleg_step.array() /= diagonal_.array();
+ VLOG(3) << "Dogleg subspace step size: " << dogleg_step_norm_
+ << " radius: " << radius_;
+}
+
+// Build the polynomial that defines the optimal Lagrange multipliers.
+// Let the Lagrangian be
+//
+// L(x, y) = 0.5 x^T B x + x^T g + y (0.5 x^T x - 0.5 r^2). (1)
+//
+// Stationary points of the Lagrangian are given by
+//
+// 0 = d L(x, y) / dx = Bx + g + y x (2)
+// 0 = d L(x, y) / dy = 0.5 x^T x - 0.5 r^2 (3)
+//
+// For any given y, we can solve (2) for x as
+//
+// x(y) = -(B + y I)^-1 g . (4)
+//
+// As B + y I is 2x2, we form the inverse explicitly:
+//
+// (B + y I)^-1 = (1 / det(B + y I)) adj(B + y I) (5)
+//
+// where adj() denotes adjugation. This should be safe, as B is positive
+// semi-definite and y is necessarily positive, so (B + y I) is indeed
+// invertible.
+// Plugging (5) into (4) and the result into (3), then dividing by 0.5 we
+// obtain
+//
+// 0 = (1 / det(B + y I))^2 g^T adj(B + y I)^T adj(B + y I) g - r^2
+// (6)
+//
+// or
+//
+// det(B + y I)^2 r^2 = g^T adj(B + y I)^T adj(B + y I) g (7a)
+// = g^T adj(B)^T adj(B) g
+// + 2 y g^T adj(B)^T g + y^2 g^T g (7b)
+//
+// as
+//
+// adj(B + y I) = adj(B) + y I = adj(B)^T + y I . (8)
+//
+// The left hand side can be expressed explicitly using
+//
+// det(B + y I) = det(B) + y tr(B) + y^2 . (9)
+//
+// So (7) is a polynomial in y of degree four.
+// Bringing everything back to the left hand side, the coefficients can
+// be read off as
+//
+// y^4 r^2
+// + y^3 2 r^2 tr(B)
+// + y^2 (r^2 tr(B)^2 + 2 r^2 det(B) - g^T g)
+// + y^1 (2 r^2 det(B) tr(B) - 2 g^T adj(B)^T g)
+// + y^0 (r^2 det(B)^2 - g^T adj(B)^T adj(B) g)
+//
+Vector DoglegStrategy::MakePolynomialForBoundaryConstrainedProblem() const {
+ const double detB = subspace_B_.determinant();
+ const double trB = subspace_B_.trace();
+ const double r2 = radius_ * radius_;
+ Matrix2d B_adj;
+ B_adj << subspace_B_(1,1) , -subspace_B_(0,1),
+ -subspace_B_(1,0) , subspace_B_(0,0);
+
+ Vector polynomial(5);
+ polynomial(0) = r2;
+ polynomial(1) = 2.0 * r2 * trB;
+ polynomial(2) = r2 * ( trB * trB + 2.0 * detB ) - subspace_g_.squaredNorm();
+ polynomial(3) = -2.0 * ( subspace_g_.transpose() * B_adj * subspace_g_
+ - r2 * detB * trB );
+ polynomial(4) = r2 * detB * detB - (B_adj * subspace_g_).squaredNorm();
+
+ return polynomial;
+}
+
+// Given a Lagrange multiplier y that corresponds to a stationary point
+// of the Lagrangian L(x, y), compute the corresponding x from the
+// equation
+//
+// 0 = d L(x, y) / dx
+// = B * x + g + y * x
+// = (B + y * I) * x + g
+//
+DoglegStrategy::Vector2d DoglegStrategy::ComputeSubspaceStepFromRoot(
+ double y) const {
+ const Matrix2d B_i = subspace_B_ + y * Matrix2d::Identity();
+ return -B_i.partialPivLu().solve(subspace_g_);
+}
+
+// This function evaluates the quadratic model at a point x in the
+// subspace spanned by subspace_basis_.
+double DoglegStrategy::EvaluateSubspaceModel(const Vector2d& x) const {
+ return 0.5 * x.dot(subspace_B_ * x) + subspace_g_.dot(x);
+}
+
+// This function attempts to solve the boundary-constrained subspace problem
+//
+// min. 1/2 x^T B^T H B x + g^T B x
+// s.t. || B x ||^2 = r^2
+//
+// where B is an orthonormal subspace basis and r is the trust-region radius.
+//
+// This is done by finding the roots of a fourth degree polynomial. If the
+// root finding fails, the function returns false and minimum will be set
+// to (0, 0). If it succeeds, true is returned.
+//
+// In the failure case, another step should be taken, such as the traditional
+// dogleg step.
+bool DoglegStrategy::FindMinimumOnTrustRegionBoundary(Vector2d* minimum) const {
+ CHECK_NOTNULL(minimum);
+
+ // Return (0, 0) in all error cases.
+ minimum->setZero();
+
+ // Create the fourth-degree polynomial that is a necessary condition for
+ // optimality.
+ const Vector polynomial = MakePolynomialForBoundaryConstrainedProblem();
+
+ // Find the real parts y_i of its roots (not only the real roots).
+ Vector roots_real;
+ if (!FindPolynomialRoots(polynomial, &roots_real, NULL)) {
+ // Failed to find the roots of the polynomial, i.e. the candidate
+ // solutions of the constrained problem. Report this back to the caller.
+ return false;
+ }
+
+ // For each root y, compute B x(y) and check for feasibility.
+ // Notice that there should always be four roots, as the leading term of
+ // the polynomial is r^2 and therefore non-zero. However, as some roots
+ // may be complex, the real parts are not necessarily unique.
+ double minimum_value = std::numeric_limits<double>::max();
+ bool valid_root_found = false;
+ for (int i = 0; i < roots_real.size(); ++i) {
+ const Vector2d x_i = ComputeSubspaceStepFromRoot(roots_real(i));
+
+ // Not all roots correspond to points on the trust region boundary.
+ // There are at most four candidate solutions. As we are interested
+ // in the minimum, it is safe to consider all of them after projecting
+ // them onto the trust region boundary.
+ if (x_i.norm() > 0) {
+ const double f_i = EvaluateSubspaceModel((radius_ / x_i.norm()) * x_i);
+ valid_root_found = true;
+ if (f_i < minimum_value) {
+ minimum_value = f_i;
+ *minimum = x_i;
+ }
+ }
+ }
+
+ return valid_root_found;
+}
+
+LinearSolver::Summary DoglegStrategy::ComputeGaussNewtonStep(
+ SparseMatrix* jacobian,
+ const double* residuals) {
+ const int n = jacobian->num_cols();
+ LinearSolver::Summary linear_solver_summary;
+ linear_solver_summary.termination_type = FAILURE;
+
+ // The Jacobian matrix is often quite poorly conditioned. Thus it is
+ // necessary to add a diagonal matrix at the bottom to prevent the
+ // linear solver from failing.
+ //
+ // We do this by computing the same diagonal matrix as the one used
+ // by Levenberg-Marquardt (other choices are possible), and scaling
+ // it by a small constant (independent of the trust region radius).
+ //
+ // If the solve fails, the multiplier to the diagonal is increased
+ // up to max_mu_ by a factor of mu_increase_factor_ every time. If
+ // the linear solver is still not successful, the strategy returns
+ // with FAILURE.
+ //
+ // Next time when a new Gauss-Newton step is requested, the
+ // multiplier starts out from the last successful solve.
+ //
+ // When a step is declared successful, the multiplier is decreased
+ // by half of mu_increase_factor_.
+
+ while (mu_ < max_mu_) {
+ // Dogleg, as far as I (sameeragarwal) understand it, requires a
+ // reasonably good estimate of the Gauss-Newton step. This means
+ // that we need to solve the normal equations more or less
+ // exactly. This is reflected in the values of the tolerances set
+ // below.
+ //
+ // For now, this strategy should only be used with exact
+ // factorization based solvers, for which these tolerances are
+ // automatically satisfied.
+ //
+ // The right way to combine inexact solves with trust region
+ // methods is to use Stiehaug's method.
+ LinearSolver::PerSolveOptions solve_options;
+ solve_options.q_tolerance = 0.0;
+ solve_options.r_tolerance = 0.0;
+
+ lm_diagonal_ = diagonal_ * std::sqrt(mu_);
+ solve_options.D = lm_diagonal_.data();
+
+ // As in the LevenbergMarquardtStrategy, solve Jy = r instead
+ // of Jx = -r and later set x = -y to avoid having to modify
+ // either jacobian or residuals.
+ InvalidateArray(n, gauss_newton_step_.data());
+ linear_solver_summary = linear_solver_->Solve(jacobian,
+ residuals,
+ solve_options,
+ gauss_newton_step_.data());
+
+ if (linear_solver_summary.termination_type == FAILURE ||
+ !IsArrayValid(n, gauss_newton_step_.data())) {
+ mu_ *= mu_increase_factor_;
+ VLOG(2) << "Increasing mu " << mu_;
+ linear_solver_summary.termination_type = FAILURE;
+ continue;
+ }
+ break;
+ }
+
+ if (linear_solver_summary.termination_type != FAILURE) {
+ // The scaled Gauss-Newton step is D * GN:
+ //
+ // - (D^-1 J^T J D^-1)^-1 (D^-1 g)
+ // = - D (J^T J)^-1 D D^-1 g
+ // = D -(J^T J)^-1 g
+ //
+ gauss_newton_step_.array() *= -diagonal_.array();
+ }
+
+ return linear_solver_summary;
+}
+
+void DoglegStrategy::StepAccepted(double step_quality) {
+ CHECK_GT(step_quality, 0.0);
+
+ if (step_quality < decrease_threshold_) {
+ radius_ *= 0.5;
+ }
+
+ if (step_quality > increase_threshold_) {
+ radius_ = max(radius_, 3.0 * dogleg_step_norm_);
+ }
+
+ // Reduce the regularization multiplier, in the hope that whatever
+ // was causing the rank deficiency has gone away and we can return
+ // to doing a pure Gauss-Newton solve.
+ mu_ = max(min_mu_, 2.0 * mu_ / mu_increase_factor_ );
+ reuse_ = false;
+}
+
+void DoglegStrategy::StepRejected(double step_quality) {
+ radius_ *= 0.5;
+ reuse_ = true;
+}
+
+void DoglegStrategy::StepIsInvalid() {
+ mu_ *= mu_increase_factor_;
+ reuse_ = false;
+}
+
+double DoglegStrategy::Radius() const {
+ return radius_;
+}
+
+bool DoglegStrategy::ComputeSubspaceModel(SparseMatrix* jacobian) {
+ // Compute an orthogonal basis for the subspace using QR decomposition.
+ Matrix basis_vectors(jacobian->num_cols(), 2);
+ basis_vectors.col(0) = gradient_;
+ basis_vectors.col(1) = gauss_newton_step_;
+ Eigen::ColPivHouseholderQR<Matrix> basis_qr(basis_vectors);
+
+ switch (basis_qr.rank()) {
+ case 0:
+ // This should never happen, as it implies that both the gradient
+ // and the Gauss-Newton step are zero. In this case, the minimizer should
+ // have stopped due to the gradient being too small.
+ LOG(ERROR) << "Rank of subspace basis is 0. "
+ << "This means that the gradient at the current iterate is "
+ << "zero but the optimization has not been terminated. "
+ << "You may have found a bug in Ceres.";
+ return false;
+
+ case 1:
+ // Gradient and Gauss-Newton step coincide, so we lie on one of the
+ // major axes of the quadratic problem. In this case, we simply move
+ // along the gradient until we reach the trust region boundary.
+ subspace_is_one_dimensional_ = true;
+ return true;
+
+ case 2:
+ subspace_is_one_dimensional_ = false;
+ break;
+
+ default:
+ LOG(ERROR) << "Rank of the subspace basis matrix is reported to be "
+ << "greater than 2. As the matrix contains only two "
+ << "columns this cannot be true and is indicative of "
+ << "a bug.";
+ return false;
+ }
+
+ // The subspace is two-dimensional, so compute the subspace model.
+ // Given the basis U, this is
+ //
+ // subspace_g_ = g_scaled^T U
+ //
+ // and
+ //
+ // subspace_B_ = U^T (J_scaled^T J_scaled) U
+ //
+ // As J_scaled = J * D^-1, the latter becomes
+ //
+ // subspace_B_ = ((U^T D^-1) J^T) (J (D^-1 U))
+ // = (J (D^-1 U))^T (J (D^-1 U))
+
+ subspace_basis_ =
+ basis_qr.householderQ() * Matrix::Identity(jacobian->num_cols(), 2);
+
+ subspace_g_ = subspace_basis_.transpose() * gradient_;
+
+ Eigen::Matrix<double, 2, Eigen::Dynamic, Eigen::RowMajor>
+ Jb(2, jacobian->num_rows());
+ Jb.setZero();
+
+ Vector tmp;
+ tmp = (subspace_basis_.col(0).array() / diagonal_.array()).matrix();
+ jacobian->RightMultiply(tmp.data(), Jb.row(0).data());
+ tmp = (subspace_basis_.col(1).array() / diagonal_.array()).matrix();
+ jacobian->RightMultiply(tmp.data(), Jb.row(1).data());
+
+ subspace_B_ = Jb * Jb.transpose();
+
+ return true;
+}
+
+} // namespace internal
+} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/dogleg_strategy.h b/extern/libmv/third_party/ceres/internal/ceres/dogleg_strategy.h
new file mode 100644
index 00000000000..bff1689aa4a
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/dogleg_strategy.h
@@ -0,0 +1,163 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: sameeragarwal@google.com (Sameer Agarwal)
+
+#ifndef CERES_INTERNAL_DOGLEG_STRATEGY_H_
+#define CERES_INTERNAL_DOGLEG_STRATEGY_H_
+
+#include "ceres/linear_solver.h"
+#include "ceres/trust_region_strategy.h"
+
+namespace ceres {
+namespace internal {
+
+// Dogleg step computation and trust region sizing strategy based on
+// on "Methods for Nonlinear Least Squares" by K. Madsen, H.B. Nielsen
+// and O. Tingleff. Available to download from
+//
+// http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3215/pdf/imm3215.pdf
+//
+// One minor modification is that instead of computing the pure
+// Gauss-Newton step, we compute a regularized version of it. This is
+// because the Jacobian is often rank-deficient and in such cases
+// using a direct solver leads to numerical failure.
+//
+// If SUBSPACE is passed as the type argument to the constructor, the
+// DoglegStrategy follows the approach by Shultz, Schnabel, Byrd.
+// This finds the exact optimum over the two-dimensional subspace
+// spanned by the two Dogleg vectors.
+class DoglegStrategy : public TrustRegionStrategy {
+public:
+ DoglegStrategy(const TrustRegionStrategy::Options& options);
+ virtual ~DoglegStrategy() {}
+
+ // TrustRegionStrategy interface
+ virtual Summary ComputeStep(const PerSolveOptions& per_solve_options,
+ SparseMatrix* jacobian,
+ const double* residuals,
+ double* step);
+ virtual void StepAccepted(double step_quality);
+ virtual void StepRejected(double step_quality);
+ virtual void StepIsInvalid();
+
+ virtual double Radius() const;
+
+ // These functions are predominantly for testing.
+ Vector gradient() const { return gradient_; }
+ Vector gauss_newton_step() const { return gauss_newton_step_; }
+ Matrix subspace_basis() const { return subspace_basis_; }
+ Vector subspace_g() const { return subspace_g_; }
+ Matrix subspace_B() const { return subspace_B_; }
+
+ private:
+ typedef Eigen::Matrix<double, 2, 1, Eigen::DontAlign> Vector2d;
+ typedef Eigen::Matrix<double, 2, 2, Eigen::DontAlign> Matrix2d;
+
+ LinearSolver::Summary ComputeGaussNewtonStep(SparseMatrix* jacobian,
+ const double* residuals);
+ void ComputeCauchyPoint(SparseMatrix* jacobian);
+ void ComputeGradient(SparseMatrix* jacobian, const double* residuals);
+ void ComputeTraditionalDoglegStep(double* step);
+ bool ComputeSubspaceModel(SparseMatrix* jacobian);
+ void ComputeSubspaceDoglegStep(double* step);
+
+ bool FindMinimumOnTrustRegionBoundary(Vector2d* minimum) const;
+ Vector MakePolynomialForBoundaryConstrainedProblem() const;
+ Vector2d ComputeSubspaceStepFromRoot(double lambda) const;
+ double EvaluateSubspaceModel(const Vector2d& x) const;
+
+ LinearSolver* linear_solver_;
+ double radius_;
+ const double max_radius_;
+
+ const double min_diagonal_;
+ const double max_diagonal_;
+
+ // mu is used to scale the diagonal matrix used to make the
+ // Gauss-Newton solve full rank. In each solve, the strategy starts
+ // out with mu = min_mu, and tries values upto max_mu. If the user
+ // reports an invalid step, the value of mu_ is increased so that
+ // the next solve starts with a stronger regularization.
+ //
+ // If a successful step is reported, then the value of mu_ is
+ // decreased with a lower bound of min_mu_.
+ double mu_;
+ const double min_mu_;
+ const double max_mu_;
+ const double mu_increase_factor_;
+ const double increase_threshold_;
+ const double decrease_threshold_;
+
+ Vector diagonal_; // sqrt(diag(J^T J))
+ Vector lm_diagonal_;
+
+ Vector gradient_;
+ Vector gauss_newton_step_;
+
+ // cauchy_step = alpha * gradient
+ double alpha_;
+ double dogleg_step_norm_;
+
+ // When, ComputeStep is called, reuse_ indicates whether the
+ // Gauss-Newton and Cauchy steps from the last call to ComputeStep
+ // can be reused or not.
+ //
+ // If the user called StepAccepted, then it is expected that the
+ // user has recomputed the Jacobian matrix and new Gauss-Newton
+ // solve is needed and reuse is set to false.
+ //
+ // If the user called StepRejected, then it is expected that the
+ // user wants to solve the trust region problem with the same matrix
+ // but a different trust region radius and the Gauss-Newton and
+ // Cauchy steps can be reused to compute the Dogleg, thus reuse is
+ // set to true.
+ //
+ // If the user called StepIsInvalid, then there was a numerical
+ // problem with the step computed in the last call to ComputeStep,
+ // and the regularization used to do the Gauss-Newton solve is
+ // increased and a new solve should be done when ComputeStep is
+ // called again, thus reuse is set to false.
+ bool reuse_;
+
+ // The dogleg type determines how the minimum of the local
+ // quadratic model is found.
+ DoglegType dogleg_type_;
+
+ // If the type is SUBSPACE_DOGLEG, the two-dimensional
+ // model 1/2 x^T B x + g^T x has to be computed and stored.
+ bool subspace_is_one_dimensional_;
+ Matrix subspace_basis_;
+ Vector2d subspace_g_;
+ Matrix2d subspace_B_;
+};
+
+} // namespace internal
+} // namespace ceres
+
+#endif // CERES_INTERNAL_DOGLEG_STRATEGY_H_
diff --git a/extern/libmv/third_party/ceres/internal/ceres/evaluator.cc b/extern/libmv/third_party/ceres/internal/ceres/evaluator.cc
index ea05aefec8c..a3ce6f04bd4 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/evaluator.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/evaluator.cc
@@ -28,14 +28,18 @@
//
// Author: keir@google.com (Keir Mierle)
-#include <glog/logging.h>
-#include "ceres/evaluator.h"
+#include <vector>
#include "ceres/block_evaluate_preparer.h"
#include "ceres/block_jacobian_writer.h"
#include "ceres/compressed_row_jacobian_writer.h"
-#include "ceres/scratch_evaluate_preparer.h"
+#include "ceres/compressed_row_sparse_matrix.h"
+#include "ceres/crs_matrix.h"
#include "ceres/dense_jacobian_writer.h"
+#include "ceres/evaluator.h"
+#include "ceres/internal/port.h"
#include "ceres/program_evaluator.h"
+#include "ceres/scratch_evaluate_preparer.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
@@ -47,6 +51,7 @@ Evaluator* Evaluator::Create(const Evaluator::Options& options,
string* error) {
switch (options.linear_solver_type) {
case DENSE_QR:
+ case DENSE_NORMAL_CHOLESKY:
return new ProgramEvaluator<ScratchEvaluatePreparer,
DenseJacobianWriter>(options,
program);
@@ -67,5 +72,76 @@ Evaluator* Evaluator::Create(const Evaluator::Options& options,
}
}
+bool Evaluator::Evaluate(Program* program,
+ int num_threads,
+ double* cost,
+ vector<double>* residuals,
+ vector<double>* gradient,
+ CRSMatrix* output_jacobian) {
+ CHECK_GE(num_threads, 1)
+ << "This is a Ceres bug; please contact the developers!";
+ CHECK_NOTNULL(cost);
+
+ // Setup the Parameter indices and offsets before an evaluator can
+ // be constructed and used.
+ program->SetParameterOffsetsAndIndex();
+
+ Evaluator::Options evaluator_options;
+ evaluator_options.linear_solver_type = SPARSE_NORMAL_CHOLESKY;
+ evaluator_options.num_threads = num_threads;
+
+ string error;
+ scoped_ptr<Evaluator> evaluator(
+ Evaluator::Create(evaluator_options, program, &error));
+ if (evaluator.get() == NULL) {
+ LOG(ERROR) << "Unable to create an Evaluator object. "
+ << "Error: " << error
+ << "This is a Ceres bug; please contact the developers!";
+ return false;
+ }
+
+ if (residuals !=NULL) {
+ residuals->resize(evaluator->NumResiduals());
+ }
+
+ if (gradient != NULL) {
+ gradient->resize(evaluator->NumEffectiveParameters());
+ }
+
+ scoped_ptr<CompressedRowSparseMatrix> jacobian;
+ if (output_jacobian != NULL) {
+ jacobian.reset(
+ down_cast<CompressedRowSparseMatrix*>(evaluator->CreateJacobian()));
+ }
+
+ // Point the state pointers to the user state pointers. This is
+ // needed so that we can extract a parameter vector which is then
+ // passed to Evaluator::Evaluate.
+ program->SetParameterBlockStatePtrsToUserStatePtrs();
+
+ // Copy the value of the parameter blocks into a vector, since the
+ // Evaluate::Evaluate method needs its input as such. The previous
+ // call to SetParameterBlockStatePtrsToUserStatePtrs ensures that
+ // these values are the ones corresponding to the actual state of
+ // the parameter blocks, rather than the temporary state pointer
+ // used for evaluation.
+ Vector parameters(program->NumParameters());
+ program->ParameterBlocksToStateVector(parameters.data());
+
+ if (!evaluator->Evaluate(parameters.data(),
+ cost,
+ residuals != NULL ? &(*residuals)[0] : NULL,
+ gradient != NULL ? &(*gradient)[0] : NULL,
+ jacobian.get())) {
+ return false;
+ }
+
+ if (output_jacobian != NULL) {
+ jacobian->ToCRSMatrix(output_jacobian);
+ }
+
+ return true;
+}
+
} // namespace internal
} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/evaluator.h b/extern/libmv/third_party/ceres/internal/ceres/evaluator.h
index adefdd26660..6aa30d7b739 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/evaluator.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/evaluator.h
@@ -33,10 +33,14 @@
#define CERES_INTERNAL_EVALUATOR_H_
#include <string>
+#include <vector>
#include "ceres/internal/port.h"
#include "ceres/types.h"
namespace ceres {
+
+class CRSMatrix;
+
namespace internal {
class Program;
@@ -65,6 +69,32 @@ class Evaluator {
Program* program,
string* error);
+
+ // This is used for computing the cost, residual and Jacobian for
+ // returning to the user. For actually solving the optimization
+ // problem, the optimization algorithm uses the ProgramEvaluator
+ // objects directly.
+ //
+ // The residual, gradients and jacobian pointers can be NULL, in
+ // which case they will not be evaluated. cost cannot be NULL.
+ //
+ // The parallelism of the evaluator is controlled by num_threads; it
+ // should be at least 1.
+ //
+ // Note: That this function does not take a parameter vector as
+ // input. The parameter blocks are evaluated on the values contained
+ // in the arrays pointed to by their user_state pointers.
+ //
+ // Also worth noting is that this function mutates program by
+ // calling Program::SetParameterOffsetsAndIndex() on it so that an
+ // evaluator object can be constructed.
+ static bool Evaluate(Program* program,
+ int num_threads,
+ double* cost,
+ vector<double>* residuals,
+ vector<double>* gradient,
+ CRSMatrix* jacobian);
+
// Build and return a sparse matrix for storing and working with the Jacobian
// of the objective function. The jacobian has dimensions
// NumEffectiveParameters() by NumParameters(), and is typically extremely
@@ -95,6 +125,7 @@ class Evaluator {
virtual bool Evaluate(const double* state,
double* cost,
double* residuals,
+ double* gradient,
SparseMatrix* jacobian) = 0;
// Make a change delta (of size NumEffectiveParameters()) to state (of size
diff --git a/extern/libmv/third_party/ceres/internal/ceres/file.cc b/extern/libmv/third_party/ceres/internal/ceres/file.cc
index 5fc9d220861..6fe7557246d 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/file.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/file.cc
@@ -31,7 +31,8 @@
// Really simple file IO.
#include <cstdio>
-#include <glog/logging.h>
+#include "file.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
@@ -48,7 +49,7 @@ void WriteStringToFileOrDie(const string &data, const string &filename) {
}
void ReadFileToStringOrDie(const string &filename, string *data) {
- FILE* file_descriptor = file_descriptor = fopen(filename.c_str(), "r");
+ FILE* file_descriptor = fopen(filename.c_str(), "r");
if (!file_descriptor) {
LOG(FATAL) << "Couldn't read file: " << filename;
diff --git a/extern/libmv/third_party/ceres/internal/ceres/generate_eliminator_specialization.py b/extern/libmv/third_party/ceres/internal/ceres/generate_eliminator_specialization.py
new file mode 100644
index 00000000000..af9873f94c0
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/generate_eliminator_specialization.py
@@ -0,0 +1,186 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2010, 2011, 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+# Author: sameeragarwal@google.com (Sameer Agarwal)
+#
+# Script for explicitly generating template specialization of the
+# SchurEliminator class. It is a rather large class
+# and the number of explicit instantiations is also large. Explicitly
+# generating these instantiations in separate .cc files breaks the
+# compilation into separate compilation unit rather than one large cc
+# file which takes 2+GB of RAM to compile.
+#
+# This script creates two sets of files.
+#
+# 1. schur_eliminator_x_x_x.cc
+# where, the x indicates the template parameters and
+#
+# 2. schur_eliminator.cc
+#
+# that contains a factory function for instantiating these classes
+# based on runtime parameters.
+#
+# The list of tuples, specializations indicates the set of
+# specializations that is generated.
+
+# Set of template specializations to generate
+SPECIALIZATIONS = [(2, 2, 2),
+ (2, 2, 3),
+ (2, 2, 4),
+ (2, 2, "Dynamic"),
+ (2, 3, 3),
+ (2, 3, 4),
+ (2, 3, 9),
+ (2, 3, "Dynamic"),
+ (2, 4, 3),
+ (2, 4, 4),
+ (2, 4, "Dynamic"),
+ (4, 4, 2),
+ (4, 4, 3),
+ (4, 4, 4),
+ (4, 4, "Dynamic"),
+ ("Dynamic", "Dynamic", "Dynamic")]
+
+SPECIALIZATION_FILE = """// Copyright 2011 Google Inc. All Rights Reserved.
+// Author: sameeragarwal@google.com (Sameer Agarwal)
+//
+// Template specialization of SchurEliminator.
+//
+// ========================================
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+//=========================================
+//
+// This file is generated using generate_eliminator_specializations.py.
+// Editing it manually is not recommended.
+
+#include "ceres/schur_eliminator_impl.h"
+#include "ceres/internal/eigen.h"
+
+namespace ceres {
+namespace internal {
+
+template class SchurEliminator<%s, %s, %s>;
+
+} // namespace internal
+} // namespace ceres
+
+"""
+
+FACTORY_FILE_HEADER = """// Copyright 2011 Google Inc. All Rights Reserved.
+// Author: sameeragarwal@google.com (Sameer Agarwal)
+//
+// ========================================
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT.
+//=========================================
+//
+// This file is generated using generate_template_specializations.py.
+// Editing it manually is not recommended.
+
+#include "ceres/linear_solver.h"
+#include "ceres/schur_eliminator.h"
+#include "ceres/internal/eigen.h"
+
+namespace ceres {
+namespace internal {
+
+SchurEliminatorBase*
+SchurEliminatorBase::Create(const LinearSolver::Options& options) {
+#ifndef CERES_RESTRICT_SCHUR_SPECIALIZATION
+"""
+
+FACTORY_CONDITIONAL = """ if ((options.row_block_size == %s) &&
+ (options.e_block_size == %s) &&
+ (options.f_block_size == %s)) {
+ return new SchurEliminator<%s, %s, %s>(options);
+ }
+"""
+
+FACTORY_FOOTER = """
+#endif
+ VLOG(1) << "Template specializations not found for <"
+ << options.row_block_size << ","
+ << options.e_block_size << ","
+ << options.f_block_size << ">";
+ return new SchurEliminator<Dynamic, Dynamic, Dynamic>(options);
+}
+
+} // namespace internal
+} // namespace ceres
+"""
+
+
+def SuffixForSize(size):
+ if size == "Dynamic":
+ return "d"
+ return str(size)
+
+
+def SpecializationFilename(prefix, row_block_size, e_block_size, f_block_size):
+ return "_".join([prefix] + map(SuffixForSize, (row_block_size,
+ e_block_size,
+ f_block_size)))
+
+
+def Specialize():
+ """
+ Generate specialization code and the conditionals to instantiate it.
+ """
+ f = open("schur_eliminator.cc", "w")
+ f.write(FACTORY_FILE_HEADER)
+
+ for row_block_size, e_block_size, f_block_size in SPECIALIZATIONS:
+ output = SpecializationFilename("generated/schur_eliminator",
+ row_block_size,
+ e_block_size,
+ f_block_size) + ".cc"
+ fptr = open(output, "w")
+ fptr.write(SPECIALIZATION_FILE % (row_block_size,
+ e_block_size,
+ f_block_size))
+ fptr.close()
+
+ f.write(FACTORY_CONDITIONAL % (row_block_size,
+ e_block_size,
+ f_block_size,
+ row_block_size,
+ e_block_size,
+ f_block_size))
+ f.write(FACTORY_FOOTER)
+ f.close()
+
+
+if __name__ == "__main__":
+ Specialize()
diff --git a/extern/libmv/third_party/ceres/internal/ceres/gradient_checking_cost_function.cc b/extern/libmv/third_party/ceres/internal/ceres/gradient_checking_cost_function.cc
index abba40824ef..7fb3ed7b3a8 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/gradient_checking_cost_function.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/gradient_checking_cost_function.cc
@@ -36,18 +36,18 @@
#include <string>
#include <vector>
-#include <glog/logging.h>
+#include "ceres/cost_function.h"
+#include "ceres/internal/eigen.h"
+#include "ceres/internal/scoped_ptr.h"
#include "ceres/parameter_block.h"
+#include "ceres/problem.h"
#include "ceres/problem_impl.h"
#include "ceres/program.h"
#include "ceres/residual_block.h"
#include "ceres/runtime_numeric_diff_cost_function.h"
#include "ceres/stringprintf.h"
-#include "ceres/cost_function.h"
-#include "ceres/internal/eigen.h"
-#include "ceres/internal/scoped_ptr.h"
-#include "ceres/problem.h"
#include "ceres/types.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/graph.h b/extern/libmv/third_party/ceres/internal/ceres/graph.h
index fd7a224f0aa..2c0f6d28e54 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/graph.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/graph.h
@@ -129,7 +129,7 @@ class Graph {
HashMap<Vertex, HashSet<Vertex> > edges_;
HashMap<pair<Vertex, Vertex>, double> edge_weights_;
- DISALLOW_COPY_AND_ASSIGN(Graph);
+ CERES_DISALLOW_COPY_AND_ASSIGN(Graph);
};
} // namespace internal
diff --git a/extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.cc b/extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.cc
index bd908846362..4af030a8535 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.cc
@@ -30,22 +30,20 @@
#include "ceres/implicit_schur_complement.h"
-#include <glog/logging.h>
#include "Eigen/Dense"
#include "ceres/block_sparse_matrix.h"
#include "ceres/block_structure.h"
#include "ceres/internal/eigen.h"
#include "ceres/internal/scoped_ptr.h"
#include "ceres/types.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
ImplicitSchurComplement::ImplicitSchurComplement(int num_eliminate_blocks,
- bool constant_sparsity,
bool preconditioner)
: num_eliminate_blocks_(num_eliminate_blocks),
- constant_sparsity_(constant_sparsity),
preconditioner_(preconditioner),
A_(NULL),
D_(NULL),
@@ -62,7 +60,7 @@ void ImplicitSchurComplement::Init(const BlockSparseMatrixBase& A,
const double* b) {
// Since initialization is reasonably heavy, perhaps we can save on
// constructing a new object everytime.
- if ((A_ == NULL) || !constant_sparsity_) {
+ if (A_ == NULL) {
A_.reset(new PartitionedMatrixView(A, num_eliminate_blocks_));
}
@@ -71,7 +69,7 @@ void ImplicitSchurComplement::Init(const BlockSparseMatrixBase& A,
// Initialize temporary storage and compute the block diagonals of
// E'E and F'E.
- if ((!constant_sparsity_) || (block_diagonal_EtE_inverse_ == NULL)) {
+ if (block_diagonal_EtE_inverse_ == NULL) {
block_diagonal_EtE_inverse_.reset(A_->CreateBlockDiagonalEtE());
if (preconditioner_) {
block_diagonal_FtF_inverse_.reset(A_->CreateBlockDiagonalFtF());
@@ -92,17 +90,10 @@ void ImplicitSchurComplement::Init(const BlockSparseMatrixBase& A,
// The block diagonals of the augmented linear system contain
// contributions from the diagonal D if it is non-null. Add that to
// the block diagonals and invert them.
- if (D_ != NULL) {
- AddDiagonalAndInvert(D_, block_diagonal_EtE_inverse_.get());
- if (preconditioner_) {
- AddDiagonalAndInvert(D_ + A_->num_cols_e(),
- block_diagonal_FtF_inverse_.get());
- }
- } else {
- AddDiagonalAndInvert(NULL, block_diagonal_EtE_inverse_.get());
- if (preconditioner_) {
- AddDiagonalAndInvert(NULL, block_diagonal_FtF_inverse_.get());
- }
+ AddDiagonalAndInvert(D_, block_diagonal_EtE_inverse_.get());
+ if (preconditioner_) {
+ AddDiagonalAndInvert((D_ == NULL) ? NULL : D_ + A_->num_cols_e(),
+ block_diagonal_FtF_inverse_.get());
}
// Compute the RHS of the Schur complement system.
diff --git a/extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.h b/extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.h
index 37a319f9c57..b9ebaa4628e 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/implicit_schur_complement.h
@@ -91,20 +91,13 @@ class ImplicitSchurComplement : public LinearOperator {
// num_eliminate_blocks is the number of E blocks in the matrix
// A.
//
- // constant_sparsity indicates if across calls to Init, the sparsity
- // structure of the matrix A remains constant or not. This makes for
- // significant savings across multiple matrices A, e.g. when used in
- // conjunction with an optimization algorithm.
- //
// preconditioner indicates whether the inverse of the matrix F'F
// should be computed or not as a preconditioner for the Schur
// Complement.
//
// TODO(sameeragarwal): Get rid of the two bools below and replace
// them with enums.
- ImplicitSchurComplement(int num_eliminate_blocks,
- bool constant_sparsity,
- bool preconditioner);
+ ImplicitSchurComplement(int num_eliminate_blocks, bool preconditioner);
virtual ~ImplicitSchurComplement();
// Initialize the Schur complement for a linear least squares
@@ -151,7 +144,6 @@ class ImplicitSchurComplement : public LinearOperator {
void UpdateRhs();
int num_eliminate_blocks_;
- bool constant_sparsity_;
bool preconditioner_;
scoped_ptr<PartitionedMatrixView> A_;
diff --git a/extern/libmv/third_party/ceres/internal/ceres/iterative_schur_complement_solver.cc b/extern/libmv/third_party/ceres/internal/ceres/iterative_schur_complement_solver.cc
index 51303195317..679c41f2431 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/iterative_schur_complement_solver.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/iterative_schur_complement_solver.cc
@@ -33,22 +33,18 @@
#include <algorithm>
#include <cstring>
#include <vector>
-
-#include <glog/logging.h>
#include "Eigen/Dense"
#include "ceres/block_sparse_matrix.h"
#include "ceres/block_structure.h"
#include "ceres/conjugate_gradients_solver.h"
#include "ceres/implicit_schur_complement.h"
-#include "ceres/linear_solver.h"
-#include "ceres/triplet_sparse_matrix.h"
-#include "ceres/visibility_based_preconditioner.h"
#include "ceres/internal/eigen.h"
#include "ceres/internal/scoped_ptr.h"
#include "ceres/linear_solver.h"
#include "ceres/triplet_sparse_matrix.h"
#include "ceres/types.h"
#include "ceres/visibility_based_preconditioner.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
@@ -69,10 +65,9 @@ LinearSolver::Summary IterativeSchurComplementSolver::SolveImpl(
CHECK_NOTNULL(A->block_structure());
// Initialize a ImplicitSchurComplement object.
- if ((schur_complement_ == NULL) || (!options_.constant_sparsity)) {
+ if (schur_complement_ == NULL) {
schur_complement_.reset(
new ImplicitSchurComplement(options_.num_eliminate_blocks,
- options_.constant_sparsity,
options_.preconditioner_type == JACOBI));
}
schur_complement_->Init(*A, per_solve_options.D, b);
@@ -119,7 +114,7 @@ LinearSolver::Summary IterativeSchurComplementSolver::SolveImpl(
new VisibilityBasedPreconditioner(*A->block_structure(), options_));
}
is_preconditioner_good =
- visibility_based_preconditioner_->Compute(*A, per_solve_options.D);
+ visibility_based_preconditioner_->Update(*A, per_solve_options.D);
cg_per_solve_options.preconditioner =
visibility_based_preconditioner_.get();
break;
diff --git a/extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt.cc b/extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt.cc
deleted file mode 100644
index b40a5162adc..00000000000
--- a/extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt.cc
+++ /dev/null
@@ -1,574 +0,0 @@
-// Ceres Solver - A fast non-linear least squares minimizer
-// Copyright 2010, 2011, 2012 Google Inc. All rights reserved.
-// http://code.google.com/p/ceres-solver/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// * Redistributions of source code must retain the above copyright notice,
-// this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following disclaimer in the documentation
-// and/or other materials provided with the distribution.
-// * Neither the name of Google Inc. nor the names of its contributors may be
-// used to endorse or promote products derived from this software without
-// specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: sameeragarwal@google.com (Sameer Agarwal)
-//
-// Implementation of a simple LM algorithm which uses the step sizing
-// rule of "Methods for Nonlinear Least Squares" by K. Madsen,
-// H.B. Nielsen and O. Tingleff. Available to download from
-//
-// http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3215/pdf/imm3215.pdf
-//
-// The basic algorithm described in this note is an exact step
-// algorithm that depends on the Newton(LM) step being solved exactly
-// in each iteration. When a suitable iterative solver is available to
-// solve the Newton(LM) step, the algorithm will automatically switch
-// to an inexact step solution method. This trades some slowdown in
-// convergence for significant savings in solve time and memory
-// usage. Our implementation of the Truncated Newton algorithm follows
-// the discussion and recommendataions in "Stephen G. Nash, A Survey
-// of Truncated Newton Methods, Journal of Computational and Applied
-// Mathematics, 124(1-2), 45-59, 2000.
-
-#include "ceres/levenberg_marquardt.h"
-
-#include <algorithm>
-#include <cstdlib>
-#include <cmath>
-#include <cstring>
-#include <string>
-#include <vector>
-
-#include <glog/logging.h>
-#include "Eigen/Core"
-#include "ceres/evaluator.h"
-#include "ceres/file.h"
-#include "ceres/linear_least_squares_problems.h"
-#include "ceres/linear_solver.h"
-#include "ceres/matrix_proto.h"
-#include "ceres/sparse_matrix.h"
-#include "ceres/stringprintf.h"
-#include "ceres/internal/eigen.h"
-#include "ceres/internal/scoped_ptr.h"
-#include "ceres/types.h"
-
-namespace ceres {
-namespace internal {
-namespace {
-
-// Numbers for clamping the size of the LM diagonal. The size of these
-// numbers is heuristic. We will probably be adjusting them in the
-// future based on more numerical experience. With jacobi scaling
-// enabled, these numbers should be all but redundant.
-const double kMinLevenbergMarquardtDiagonal = 1e-6;
-const double kMaxLevenbergMarquardtDiagonal = 1e32;
-
-// Small constant for various floating point issues.
-const double kEpsilon = 1e-12;
-
-// Number of times the linear solver should be retried in case of
-// numerical failure. The retries are done by exponentially scaling up
-// mu at each retry. This leads to stronger and stronger
-// regularization making the linear least squares problem better
-// conditioned at each retry.
-const int kMaxLinearSolverRetries = 5;
-
-// D = 1/sqrt(diag(J^T * J))
-void EstimateScale(const SparseMatrix& jacobian, double* D) {
- CHECK_NOTNULL(D);
- jacobian.SquaredColumnNorm(D);
- for (int i = 0; i < jacobian.num_cols(); ++i) {
- D[i] = 1.0 / (kEpsilon + sqrt(D[i]));
- }
-}
-
-// D = diag(J^T * J)
-void LevenbergMarquardtDiagonal(const SparseMatrix& jacobian,
- double* D) {
- CHECK_NOTNULL(D);
- jacobian.SquaredColumnNorm(D);
- for (int i = 0; i < jacobian.num_cols(); ++i) {
- D[i] = min(max(D[i], kMinLevenbergMarquardtDiagonal),
- kMaxLevenbergMarquardtDiagonal);
- }
-}
-
-bool RunCallback(IterationCallback* callback,
- const IterationSummary& iteration_summary,
- Solver::Summary* summary) {
- const CallbackReturnType status = (*callback)(iteration_summary);
- switch (status) {
- case SOLVER_TERMINATE_SUCCESSFULLY:
- summary->termination_type = USER_SUCCESS;
- VLOG(1) << "Terminating on USER_SUCCESS.";
- return false;
- case SOLVER_ABORT:
- summary->termination_type = USER_ABORT;
- VLOG(1) << "Terminating on USER_ABORT.";
- return false;
- case SOLVER_CONTINUE:
- return true;
- default:
- LOG(FATAL) << "Unknown status returned by callback: "
- << status;
- return NULL;
- }
-}
-
-} // namespace
-
-LevenbergMarquardt::~LevenbergMarquardt() {}
-
-void LevenbergMarquardt::Minimize(const Minimizer::Options& options,
- Evaluator* evaluator,
- LinearSolver* linear_solver,
- const double* initial_parameters,
- double* final_parameters,
- Solver::Summary* summary) {
- time_t start_time = time(NULL);
- const int num_parameters = evaluator->NumParameters();
- const int num_effective_parameters = evaluator->NumEffectiveParameters();
- const int num_residuals = evaluator->NumResiduals();
-
- summary->termination_type = NO_CONVERGENCE;
- summary->num_successful_steps = 0;
- summary->num_unsuccessful_steps = 0;
-
- // Allocate the various vectors needed by the algorithm.
- memcpy(final_parameters, initial_parameters,
- num_parameters * sizeof(*initial_parameters));
-
- VectorRef x(final_parameters, num_parameters);
- Vector x_new(num_parameters);
-
- Vector lm_step(num_effective_parameters);
- Vector gradient(num_effective_parameters);
- Vector scaled_gradient(num_effective_parameters);
- // Jacobi scaling vector
- Vector scale(num_effective_parameters);
-
- Vector f_model(num_residuals);
- Vector f(num_residuals);
- Vector f_new(num_residuals);
- Vector D(num_parameters);
- Vector muD(num_parameters);
-
- // Ask the Evaluator to create the jacobian matrix. The sparsity
- // pattern of this matrix is going to remain constant, so we only do
- // this once and then re-use this matrix for all subsequent Jacobian
- // computations.
- scoped_ptr<SparseMatrix> jacobian(evaluator->CreateJacobian());
-
- double x_norm = x.norm();
-
- double cost = 0.0;
- D.setOnes();
- f.setZero();
-
- // Do initial cost and Jacobian evaluation.
- if (!evaluator->Evaluate(x.data(), &cost, f.data(), jacobian.get())) {
- LOG(WARNING) << "Failed to compute residuals and Jacobian. "
- << "Terminating.";
- summary->termination_type = NUMERICAL_FAILURE;
- return;
- }
-
- if (options.jacobi_scaling) {
- EstimateScale(*jacobian, scale.data());
- jacobian->ScaleColumns(scale.data());
- } else {
- scale.setOnes();
- }
-
- // This is a poor way to do this computation. Even if fixed_cost is
- // zero, because we are subtracting two possibly large numbers, we
- // are depending on exact cancellation to give us a zero here. But
- // initial_cost and cost have been computed by two different
- // evaluators. One which runs on the whole problem (in
- // solver_impl.cc) in single threaded mode and another which runs
- // here on the reduced problem, so fixed_cost can (and does) contain
- // some numerical garbage with a relative magnitude of 1e-14.
- //
- // The right way to do this, would be to compute the fixed cost on
- // just the set of residual blocks which are held constant and were
- // removed from the original problem when the reduced problem was
- // constructed.
- summary->fixed_cost = summary->initial_cost - cost;
-
- double model_cost = f.squaredNorm() / 2.0;
- double total_cost = summary->fixed_cost + cost;
-
- scaled_gradient.setZero();
- jacobian->LeftMultiply(f.data(), scaled_gradient.data());
- gradient = scaled_gradient.array() / scale.array();
-
- double gradient_max_norm = gradient.lpNorm<Eigen::Infinity>();
- // We need the max here to guard againt the gradient being zero.
- const double gradient_max_norm_0 = max(gradient_max_norm, kEpsilon);
- double gradient_tolerance = options.gradient_tolerance * gradient_max_norm_0;
-
- double mu = options.tau;
- double nu = 2.0;
- int iteration = 0;
- double actual_cost_change = 0.0;
- double step_norm = 0.0;
- double relative_decrease = 0.0;
-
- // Insane steps are steps which are not sane, i.e. there is some
- // numerical kookiness going on with them. There are various reasons
- // for this kookiness, some easier to diagnose then others. From the
- // point of view of the non-linear solver, they are steps which
- // cannot be used. We return with NUMERICAL_FAILURE after
- // kMaxLinearSolverRetries consecutive insane steps.
- bool step_is_sane = false;
- int num_consecutive_insane_steps = 0;
-
- // Whether the step resulted in a sufficient decrease in the
- // objective function when compared to the decrease in the value of
- // the lineariztion.
- bool step_is_successful = false;
-
- // Parse the iterations for which to dump the linear problem.
- vector<int> iterations_to_dump = options.lsqp_iterations_to_dump;
- sort(iterations_to_dump.begin(), iterations_to_dump.end());
-
- IterationSummary iteration_summary;
- iteration_summary.iteration = iteration;
- iteration_summary.step_is_successful = false;
- iteration_summary.cost = total_cost;
- iteration_summary.cost_change = actual_cost_change;
- iteration_summary.gradient_max_norm = gradient_max_norm;
- iteration_summary.step_norm = step_norm;
- iteration_summary.relative_decrease = relative_decrease;
- iteration_summary.mu = mu;
- iteration_summary.eta = options.eta;
- iteration_summary.linear_solver_iterations = 0;
- iteration_summary.linear_solver_time_sec = 0.0;
- iteration_summary.iteration_time_sec = (time(NULL) - start_time);
- if (options.logging_type >= PER_MINIMIZER_ITERATION) {
- summary->iterations.push_back(iteration_summary);
- }
-
- // Check if the starting point is an optimum.
- VLOG(2) << "Gradient max norm: " << gradient_max_norm
- << " tolerance: " << gradient_tolerance
- << " ratio: " << gradient_max_norm / gradient_max_norm_0
- << " tolerance: " << options.gradient_tolerance;
- if (gradient_max_norm <= gradient_tolerance) {
- summary->termination_type = GRADIENT_TOLERANCE;
- VLOG(1) << "Terminating on GRADIENT_TOLERANCE. "
- << "Relative gradient max norm: "
- << gradient_max_norm / gradient_max_norm_0
- << " <= " << options.gradient_tolerance;
- return;
- }
-
- // Call the various callbacks.
- for (int i = 0; i < options.callbacks.size(); ++i) {
- if (!RunCallback(options.callbacks[i], iteration_summary, summary)) {
- return;
- }
- }
-
- // We only need the LM diagonal if we are actually going to do at
- // least one iteration of the optimization. So we wait to do it
- // until now.
- LevenbergMarquardtDiagonal(*jacobian, D.data());
-
- while ((iteration < options.max_num_iterations) &&
- (time(NULL) - start_time) <= options.max_solver_time_sec) {
- time_t iteration_start_time = time(NULL);
- step_is_sane = false;
- step_is_successful = false;
-
- IterationSummary iteration_summary;
- // The while loop here is just to provide an easily breakable
- // control structure. We are guaranteed to always exit this loop
- // at the end of one iteration or before.
- while (1) {
- muD = (mu * D).array().sqrt();
- LinearSolver::PerSolveOptions solve_options;
- solve_options.D = muD.data();
- solve_options.q_tolerance = options.eta;
- // Disable r_tolerance checking. Since we only care about
- // termination via the q_tolerance. As Nash and Sofer show,
- // r_tolerance based termination is essentially useless in
- // Truncated Newton methods.
- solve_options.r_tolerance = -1.0;
-
- const time_t linear_solver_start_time = time(NULL);
- LinearSolver::Summary linear_solver_summary =
- linear_solver->Solve(jacobian.get(),
- f.data(),
- solve_options,
- lm_step.data());
- iteration_summary.linear_solver_time_sec =
- (time(NULL) - linear_solver_start_time);
- iteration_summary.linear_solver_iterations =
- linear_solver_summary.num_iterations;
-
- if (binary_search(iterations_to_dump.begin(),
- iterations_to_dump.end(),
- iteration)) {
- CHECK(DumpLinearLeastSquaresProblem(options.lsqp_dump_directory,
- iteration,
- options.lsqp_dump_format_type,
- jacobian.get(),
- muD.data(),
- f.data(),
- lm_step.data(),
- options.num_eliminate_blocks))
- << "Tried writing linear least squares problem: "
- << options.lsqp_dump_directory
- << " but failed.";
- }
-
- // We ignore the case where the linear solver did not converge,
- // since the partial solution computed by it still maybe of use,
- // and there is no reason to ignore it, especially since we
- // spent so much time computing it.
- if ((linear_solver_summary.termination_type != TOLERANCE) &&
- (linear_solver_summary.termination_type != MAX_ITERATIONS)) {
- VLOG(1) << "Linear solver failure: retrying with a higher mu";
- break;
- }
-
- step_norm = (lm_step.array() * scale.array()).matrix().norm();
-
- // Check step length based convergence. If the step length is
- // too small, then we are done.
- const double step_size_tolerance = options.parameter_tolerance *
- (x_norm + options.parameter_tolerance);
-
- VLOG(2) << "Step size: " << step_norm
- << " tolerance: " << step_size_tolerance
- << " ratio: " << step_norm / step_size_tolerance
- << " tolerance: " << options.parameter_tolerance;
- if (step_norm <= options.parameter_tolerance *
- (x_norm + options.parameter_tolerance)) {
- summary->termination_type = PARAMETER_TOLERANCE;
- VLOG(1) << "Terminating on PARAMETER_TOLERANCE."
- << "Relative step size: " << step_norm / step_size_tolerance
- << " <= " << options.parameter_tolerance;
- return;
- }
-
- Vector delta = -(lm_step.array() * scale.array()).matrix();
- if (!evaluator->Plus(x.data(), delta.data(), x_new.data())) {
- LOG(WARNING) << "Failed to compute Plus(x, delta, x_plus_delta). "
- << "Terminating.";
- summary->termination_type = NUMERICAL_FAILURE;
- return;
- }
-
- double cost_new = 0.0;
- if (!evaluator->Evaluate(x_new.data(), &cost_new, NULL, NULL)) {
- LOG(WARNING) << "Failed to compute the value of the objective "
- << "function. Terminating.";
- summary->termination_type = NUMERICAL_FAILURE;
- return;
- }
-
- f_model.setZero();
- jacobian->RightMultiply(lm_step.data(), f_model.data());
- const double model_cost_new =
- (f.segment(0, num_residuals) - f_model).squaredNorm() / 2;
-
- actual_cost_change = cost - cost_new;
- double model_cost_change = model_cost - model_cost_new;
-
- VLOG(2) << "[Model cost] current: " << model_cost
- << " new : " << model_cost_new
- << " change: " << model_cost_change;
-
- VLOG(2) << "[Nonlinear cost] current: " << cost
- << " new : " << cost_new
- << " change: " << actual_cost_change
- << " relative change: " << fabs(actual_cost_change) / cost
- << " tolerance: " << options.function_tolerance;
-
- // In exact arithmetic model_cost_change should never be
- // negative. But due to numerical precision issues, we may end up
- // with a small negative number. model_cost_change which are
- // negative and large in absolute value are indicative of a
- // numerical failure in the solver.
- if (model_cost_change < -kEpsilon) {
- VLOG(1) << "Model cost change is negative.\n"
- << "Current : " << model_cost
- << " new : " << model_cost_new
- << " change: " << model_cost_change << "\n";
- break;
- }
-
- // If we have reached this far, then we are willing to trust the
- // numerical quality of the step.
- step_is_sane = true;
- num_consecutive_insane_steps = 0;
-
- // Check function value based convergence.
- if (fabs(actual_cost_change) < options.function_tolerance * cost) {
- VLOG(1) << "Termination on FUNCTION_TOLERANCE."
- << " Relative cost change: " << fabs(actual_cost_change) / cost
- << " tolerance: " << options.function_tolerance;
- summary->termination_type = FUNCTION_TOLERANCE;
- return;
- }
-
- // Clamp model_cost_change at kEpsilon from below.
- if (model_cost_change < kEpsilon) {
- VLOG(1) << "Clamping model cost change " << model_cost_change
- << " to " << kEpsilon;
- model_cost_change = kEpsilon;
- }
-
- relative_decrease = actual_cost_change / model_cost_change;
- VLOG(2) << "actual_cost_change / model_cost_change = "
- << relative_decrease;
-
- if (relative_decrease < options.min_relative_decrease) {
- VLOG(2) << "Unsuccessful step.";
- break;
- }
-
- VLOG(2) << "Successful step.";
-
- ++summary->num_successful_steps;
- x = x_new;
- x_norm = x.norm();
-
- if (!evaluator->Evaluate(x.data(), &cost, f.data(), jacobian.get())) {
- LOG(WARNING) << "Failed to compute residuals and jacobian. "
- << "Terminating.";
- summary->termination_type = NUMERICAL_FAILURE;
- return;
- }
-
- if (options.jacobi_scaling) {
- jacobian->ScaleColumns(scale.data());
- }
-
- model_cost = f.squaredNorm() / 2.0;
- LevenbergMarquardtDiagonal(*jacobian, D.data());
- scaled_gradient.setZero();
- jacobian->LeftMultiply(f.data(), scaled_gradient.data());
- gradient = scaled_gradient.array() / scale.array();
- gradient_max_norm = gradient.lpNorm<Eigen::Infinity>();
-
- // Check gradient based convergence.
- VLOG(2) << "Gradient max norm: " << gradient_max_norm
- << " tolerance: " << gradient_tolerance
- << " ratio: " << gradient_max_norm / gradient_max_norm_0
- << " tolerance: " << options.gradient_tolerance;
- if (gradient_max_norm <= gradient_tolerance) {
- summary->termination_type = GRADIENT_TOLERANCE;
- VLOG(1) << "Terminating on GRADIENT_TOLERANCE. "
- << "Relative gradient max norm: "
- << gradient_max_norm / gradient_max_norm_0
- << " <= " << options.gradient_tolerance
- << " (tolerance).";
- return;
- }
-
- mu = mu * max(1.0 / 3.0, 1 - pow(2 * relative_decrease - 1, 3));
- nu = 2.0;
- step_is_successful = true;
- break;
- }
-
- if (!step_is_sane) {
- ++num_consecutive_insane_steps;
- }
-
- if (num_consecutive_insane_steps == kMaxLinearSolverRetries) {
- summary->termination_type = NUMERICAL_FAILURE;
- VLOG(1) << "Too many consecutive retries; ending with numerical fail.";
-
- if (!options.crash_and_dump_lsqp_on_failure) {
- return;
- }
-
- // Dump debugging information to disk.
- CHECK(options.lsqp_dump_format_type == TEXTFILE ||
- options.lsqp_dump_format_type == PROTOBUF)
- << "Dumping the linear least squares problem on crash "
- << "requires Solver::Options::lsqp_dump_format_type to be "
- << "PROTOBUF or TEXTFILE.";
-
- if (DumpLinearLeastSquaresProblem(options.lsqp_dump_directory,
- iteration,
- options.lsqp_dump_format_type,
- jacobian.get(),
- muD.data(),
- f.data(),
- lm_step.data(),
- options.num_eliminate_blocks)) {
- LOG(FATAL) << "Linear least squares problem saved to: "
- << options.lsqp_dump_directory
- << ". Please provide this to the Ceres developers for "
- << " debugging along with the v=2 log.";
- } else {
- LOG(FATAL) << "Tried writing linear least squares problem: "
- << options.lsqp_dump_directory
- << " but failed.";
- }
- }
-
- if (!step_is_successful) {
- // Either the step did not lead to a decrease in cost or there
- // was numerical failure. In either case we will scale mu up and
- // retry. If it was a numerical failure, we hope that the
- // stronger regularization will make the linear system better
- // conditioned. If it was numerically sane, but there was no
- // decrease in cost, then increasing mu reduces the size of the
- // trust region and we look for a decrease closer to the
- // linearization point.
- ++summary->num_unsuccessful_steps;
- mu = mu * nu;
- nu = 2 * nu;
- }
-
- ++iteration;
-
- total_cost = summary->fixed_cost + cost;
-
- iteration_summary.iteration = iteration;
- iteration_summary.step_is_successful = step_is_successful;
- iteration_summary.cost = total_cost;
- iteration_summary.cost_change = actual_cost_change;
- iteration_summary.gradient_max_norm = gradient_max_norm;
- iteration_summary.step_norm = step_norm;
- iteration_summary.relative_decrease = relative_decrease;
- iteration_summary.mu = mu;
- iteration_summary.eta = options.eta;
- iteration_summary.iteration_time_sec = (time(NULL) - iteration_start_time);
-
- if (options.logging_type >= PER_MINIMIZER_ITERATION) {
- summary->iterations.push_back(iteration_summary);
- }
-
- // Call the various callbacks.
- for (int i = 0; i < options.callbacks.size(); ++i) {
- if (!RunCallback(options.callbacks[i], iteration_summary, summary)) {
- return;
- }
- }
- }
-}
-
-} // namespace internal
-} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt_strategy.cc b/extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt_strategy.cc
new file mode 100644
index 00000000000..9e6a59e3813
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt_strategy.cc
@@ -0,0 +1,144 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: sameeragarwal@google.com (Sameer Agarwal)
+
+#include "ceres/levenberg_marquardt_strategy.h"
+
+#include <cmath>
+#include "Eigen/Core"
+#include "ceres/array_utils.h"
+#include "ceres/internal/eigen.h"
+#include "ceres/linear_solver.h"
+#include "ceres/sparse_matrix.h"
+#include "ceres/trust_region_strategy.h"
+#include "ceres/types.h"
+#include "glog/logging.h"
+
+namespace ceres {
+namespace internal {
+
+LevenbergMarquardtStrategy::LevenbergMarquardtStrategy(
+ const TrustRegionStrategy::Options& options)
+ : linear_solver_(options.linear_solver),
+ radius_(options.initial_radius),
+ max_radius_(options.max_radius),
+ min_diagonal_(options.lm_min_diagonal),
+ max_diagonal_(options.lm_max_diagonal),
+ decrease_factor_(2.0),
+ reuse_diagonal_(false) {
+ CHECK_NOTNULL(linear_solver_);
+ CHECK_GT(min_diagonal_, 0.0);
+ CHECK_LE(min_diagonal_, max_diagonal_);
+ CHECK_GT(max_radius_, 0.0);
+}
+
+LevenbergMarquardtStrategy::~LevenbergMarquardtStrategy() {
+}
+
+TrustRegionStrategy::Summary LevenbergMarquardtStrategy::ComputeStep(
+ const TrustRegionStrategy::PerSolveOptions& per_solve_options,
+ SparseMatrix* jacobian,
+ const double* residuals,
+ double* step) {
+ CHECK_NOTNULL(jacobian);
+ CHECK_NOTNULL(residuals);
+ CHECK_NOTNULL(step);
+
+ const int num_parameters = jacobian->num_cols();
+ if (!reuse_diagonal_) {
+ if (diagonal_.rows() != num_parameters) {
+ diagonal_.resize(num_parameters, 1);
+ }
+
+ jacobian->SquaredColumnNorm(diagonal_.data());
+ for (int i = 0; i < num_parameters; ++i) {
+ diagonal_[i] = min(max(diagonal_[i], min_diagonal_), max_diagonal_);
+ }
+ }
+
+ lm_diagonal_ = (diagonal_ / radius_).array().sqrt();
+
+ LinearSolver::PerSolveOptions solve_options;
+ solve_options.D = lm_diagonal_.data();
+ solve_options.q_tolerance = per_solve_options.eta;
+ // Disable r_tolerance checking. Since we only care about
+ // termination via the q_tolerance. As Nash and Sofer show,
+ // r_tolerance based termination is essentially useless in
+ // Truncated Newton methods.
+ solve_options.r_tolerance = -1.0;
+
+ // Invalidate the output array lm_step, so that we can detect if
+ // the linear solver generated numerical garbage. This is known
+ // to happen for the DENSE_QR and then DENSE_SCHUR solver when
+ // the Jacobin is severly rank deficient and mu is too small.
+ InvalidateArray(num_parameters, step);
+
+ // Instead of solving Jx = -r, solve Jy = r.
+ // Then x can be found as x = -y, but the inputs jacobian and residuals
+ // do not need to be modified.
+ LinearSolver::Summary linear_solver_summary =
+ linear_solver_->Solve(jacobian, residuals, solve_options, step);
+ if (linear_solver_summary.termination_type == FAILURE ||
+ !IsArrayValid(num_parameters, step)) {
+ LOG(WARNING) << "Linear solver failure. Failed to compute a finite step.";
+ linear_solver_summary.termination_type = FAILURE;
+ } else {
+ VectorRef(step, num_parameters) *= -1.0;
+ }
+
+ reuse_diagonal_ = true;
+
+ TrustRegionStrategy::Summary summary;
+ summary.residual_norm = linear_solver_summary.residual_norm;
+ summary.num_iterations = linear_solver_summary.num_iterations;
+ summary.termination_type = linear_solver_summary.termination_type;
+ return summary;
+}
+
+void LevenbergMarquardtStrategy::StepAccepted(double step_quality) {
+ CHECK_GT(step_quality, 0.0);
+ radius_ = radius_ / std::max(1.0 / 3.0,
+ 1.0 - pow(2.0 * step_quality - 1.0, 3));
+ radius_ = std::min(max_radius_, radius_);
+ decrease_factor_ = 2.0;
+ reuse_diagonal_ = false;
+}
+
+void LevenbergMarquardtStrategy::StepRejected(double step_quality) {
+ radius_ = radius_ / decrease_factor_;
+ decrease_factor_ *= 2.0;
+ reuse_diagonal_ = true;
+}
+
+double LevenbergMarquardtStrategy::Radius() const {
+ return radius_;
+}
+
+} // namespace internal
+} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt_strategy.h b/extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt_strategy.h
new file mode 100644
index 00000000000..90c21789797
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/levenberg_marquardt_strategy.h
@@ -0,0 +1,86 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: sameeragarwal@google.com (Sameer Agarwal)
+
+#ifndef CERES_INTERNAL_LEVENBERG_MARQUARDT_STRATEGY_H_
+#define CERES_INTERNAL_LEVENBERG_MARQUARDT_STRATEGY_H_
+
+#include "ceres/internal/eigen.h"
+#include "ceres/trust_region_strategy.h"
+
+namespace ceres {
+namespace internal {
+
+// Levenberg-Marquardt step computation and trust region sizing
+// strategy based on on "Methods for Nonlinear Least Squares" by
+// K. Madsen, H.B. Nielsen and O. Tingleff. Available to download from
+//
+// http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3215/pdf/imm3215.pdf
+class LevenbergMarquardtStrategy : public TrustRegionStrategy {
+public:
+ LevenbergMarquardtStrategy(const TrustRegionStrategy::Options& options);
+ virtual ~LevenbergMarquardtStrategy();
+
+ // TrustRegionStrategy interface
+ virtual TrustRegionStrategy::Summary ComputeStep(
+ const TrustRegionStrategy::PerSolveOptions& per_solve_options,
+ SparseMatrix* jacobian,
+ const double* residuals,
+ double* step);
+ virtual void StepAccepted(double step_quality);
+ virtual void StepRejected(double step_quality);
+ virtual void StepIsInvalid() {
+ // Treat the current step as a rejected step with no increase in
+ // solution quality. Since rejected steps lead to decrease in the
+ // size of the trust region, the next time ComputeStep is called,
+ // this will lead to a better conditioned system.
+ StepRejected(0.0);
+ }
+
+ virtual double Radius() const;
+
+ private:
+ LinearSolver* linear_solver_;
+ double radius_;
+ double max_radius_;
+ const double min_diagonal_;
+ const double max_diagonal_;
+ double decrease_factor_;
+ bool reuse_diagonal_;
+ Vector diagonal_; // diagonal_ = diag(J'J)
+ // Scaled copy of diagonal_. Stored here as optimization to prevent
+ // allocations in every iteration and reuse when a step fails and
+ // ComputeStep is called again.
+ Vector lm_diagonal_; // lm_diagonal_ = diagonal_ / radius_;
+};
+
+} // namespace internal
+} // namespace ceres
+
+#endif // CERES_INTERNAL_LEVENBERG_MARQUARDT_STRATEGY_H_
diff --git a/extern/libmv/third_party/ceres/internal/ceres/linear_least_squares_problems.cc b/extern/libmv/third_party/ceres/internal/ceres/linear_least_squares_problems.cc
index cca9f442fe7..a91e254a663 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/linear_least_squares_problems.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/linear_least_squares_problems.cc
@@ -33,17 +33,17 @@
#include <cstdio>
#include <string>
#include <vector>
-#include <glog/logging.h>
#include "ceres/block_sparse_matrix.h"
#include "ceres/block_structure.h"
#include "ceres/casts.h"
#include "ceres/compressed_row_sparse_matrix.h"
#include "ceres/file.h"
+#include "ceres/internal/scoped_ptr.h"
#include "ceres/matrix_proto.h"
-#include "ceres/triplet_sparse_matrix.h"
#include "ceres/stringprintf.h"
-#include "ceres/internal/scoped_ptr.h"
+#include "ceres/triplet_sparse_matrix.h"
#include "ceres/types.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
@@ -64,7 +64,7 @@ LinearLeastSquaresProblem* CreateLinearLeastSquaresProblemFromId(int id) {
return NULL;
}
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
LinearLeastSquaresProblem* CreateLinearLeastSquaresProblemFromFile(
const string& filename) {
LinearLeastSquaresProblemProto problem_proto;
@@ -130,7 +130,7 @@ LinearLeastSquaresProblem* CreateLinearLeastSquaresProblemFromFile(
<< "Ceres to be built with Protocol Buffers support.";
return NULL;
}
-#endif // CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#endif // CERES_NO_PROTOCOL_BUFFERS
/*
A = [1 2]
@@ -573,13 +573,13 @@ LinearLeastSquaresProblem* LinearLeastSquaresProblem3() {
return problem;
}
-bool DumpLinearLeastSquaresProblemToConsole(const string& directory,
- int iteration,
- const SparseMatrix* A,
- const double* D,
- const double* b,
- const double* x,
- int num_eliminate_blocks) {
+static bool DumpLinearLeastSquaresProblemToConsole(const string& directory,
+ int iteration,
+ const SparseMatrix* A,
+ const double* D,
+ const double* b,
+ const double* x,
+ int num_eliminate_blocks) {
CHECK_NOTNULL(A);
Matrix AA;
A->ToDenseMatrix(&AA);
@@ -600,14 +600,14 @@ bool DumpLinearLeastSquaresProblemToConsole(const string& directory,
return true;
};
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
-bool DumpLinearLeastSquaresProblemToProtocolBuffer(const string& directory,
- int iteration,
- const SparseMatrix* A,
- const double* D,
- const double* b,
- const double* x,
- int num_eliminate_blocks) {
+#ifndef CERES_NO_PROTOCOL_BUFFERS
+static bool DumpLinearLeastSquaresProblemToProtocolBuffer(const string& directory,
+ int iteration,
+ const SparseMatrix* A,
+ const double* D,
+ const double* b,
+ const double* x,
+ int num_eliminate_blocks) {
CHECK_NOTNULL(A);
LinearLeastSquaresProblemProto lsqp;
A->ToProto(lsqp.mutable_a());
@@ -641,13 +641,13 @@ bool DumpLinearLeastSquaresProblemToProtocolBuffer(const string& directory,
return true;
}
#else
-bool DumpLinearLeastSquaresProblemToProtocolBuffer(const string& directory,
- int iteration,
- const SparseMatrix* A,
- const double* D,
- const double* b,
- const double* x,
- int num_eliminate_blocks) {
+static bool DumpLinearLeastSquaresProblemToProtocolBuffer(const string& directory,
+ int iteration,
+ const SparseMatrix* A,
+ const double* D,
+ const double* b,
+ const double* x,
+ int num_eliminate_blocks) {
LOG(ERROR) << "Dumping least squares problems is only "
<< "supported when Ceres is compiled with "
<< "protocol buffer support.";
@@ -655,9 +655,9 @@ bool DumpLinearLeastSquaresProblemToProtocolBuffer(const string& directory,
}
#endif
-void WriteArrayToFileOrDie(const string& filename,
- const double* x,
- const int size) {
+static void WriteArrayToFileOrDie(const string& filename,
+ const double* x,
+ const int size) {
CHECK_NOTNULL(x);
VLOG(2) << "Writing array to: " << filename;
FILE* fptr = fopen(filename.c_str(), "w");
@@ -668,43 +668,68 @@ void WriteArrayToFileOrDie(const string& filename,
fclose(fptr);
}
-bool DumpLinearLeastSquaresProblemToTextFile(const string& directory,
- int iteration,
- const SparseMatrix* A,
- const double* D,
- const double* b,
- const double* x,
- int num_eliminate_blocks) {
+static bool DumpLinearLeastSquaresProblemToTextFile(const string& directory,
+ int iteration,
+ const SparseMatrix* A,
+ const double* D,
+ const double* b,
+ const double* x,
+ int num_eliminate_blocks) {
CHECK_NOTNULL(A);
string format_string = JoinPath(directory,
"lm_iteration_%03d");
string filename_prefix =
StringPrintf(format_string.c_str(), iteration);
+ LOG(INFO) << "writing to: " << filename_prefix << "*";
+
+ string matlab_script;
+ StringAppendF(&matlab_script,
+ "function lsqp = lm_iteration_%03d()\n", iteration);
+ StringAppendF(&matlab_script,
+ "lsqp.num_rows = %d;\n", A->num_rows());
+ StringAppendF(&matlab_script,
+ "lsqp.num_cols = %d;\n", A->num_cols());
+
{
string filename = filename_prefix + "_A.txt";
- LOG(INFO) << "writing to: " << filename;
FILE* fptr = fopen(filename.c_str(), "w");
CHECK_NOTNULL(fptr);
A->ToTextFile(fptr);
fclose(fptr);
+ StringAppendF(&matlab_script,
+ "tmp = load('%s', '-ascii');\n", filename.c_str());
+ StringAppendF(
+ &matlab_script,
+ "lsqp.A = sparse(tmp(:, 1) + 1, tmp(:, 2) + 1, tmp(:, 3), %d, %d);\n",
+ A->num_rows(),
+ A->num_cols());
}
+
if (D != NULL) {
string filename = filename_prefix + "_D.txt";
WriteArrayToFileOrDie(filename, D, A->num_cols());
+ StringAppendF(&matlab_script,
+ "lsqp.D = load('%s', '-ascii');\n", filename.c_str());
}
if (b != NULL) {
string filename = filename_prefix + "_b.txt";
WriteArrayToFileOrDie(filename, b, A->num_rows());
+ StringAppendF(&matlab_script,
+ "lsqp.b = load('%s', '-ascii');\n", filename.c_str());
}
if (x != NULL) {
string filename = filename_prefix + "_x.txt";
WriteArrayToFileOrDie(filename, x, A->num_cols());
+ StringAppendF(&matlab_script,
+ "lsqp.x = load('%s', '-ascii');\n", filename.c_str());
}
+ string matlab_filename = filename_prefix + ".m";
+ WriteStringToFileOrDie(matlab_script, matlab_filename);
return true;
}
diff --git a/extern/libmv/third_party/ceres/internal/ceres/linear_solver.cc b/extern/libmv/third_party/ceres/internal/ceres/linear_solver.cc
index b2e3941eea1..08c3ba110d0 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/linear_solver.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/linear_solver.cc
@@ -30,13 +30,14 @@
#include "ceres/linear_solver.h"
-#include <glog/logging.h>
#include "ceres/cgnr_solver.h"
+#include "ceres/dense_normal_cholesky_solver.h"
#include "ceres/dense_qr_solver.h"
#include "ceres/iterative_schur_complement_solver.h"
#include "ceres/schur_complement_solver.h"
#include "ceres/sparse_normal_cholesky_solver.h"
#include "ceres/types.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
@@ -50,22 +51,24 @@ LinearSolver* LinearSolver::Create(const LinearSolver::Options& options) {
return new CgnrSolver(options);
case SPARSE_NORMAL_CHOLESKY:
-#ifndef CERES_NO_SUITESPARSE
- return new SparseNormalCholeskySolver(options);
-#else
+#if defined(CERES_NO_SUITESPARSE) && defined(CERES_NO_CXSPARSE)
LOG(WARNING) << "SPARSE_NORMAL_CHOLESKY is not available. Please "
- << "build Ceres with SuiteSparse. Returning NULL.";
+ << "build Ceres with SuiteSparse or CXSparse. "
+ << "Returning NULL.";
return NULL;
-#endif // CERES_NO_SUITESPARSE
+#else
+ return new SparseNormalCholeskySolver(options);
+#endif
case SPARSE_SCHUR:
-#ifndef CERES_NO_SUITESPARSE
- return new SparseSchurComplementSolver(options);
-#else
+#if defined(CERES_NO_SUITESPARSE) && defined(CERES_NO_CXSPARSE)
LOG(WARNING) << "SPARSE_SCHUR is not available. Please "
- << "build Ceres with SuiteSparse. Returning NULL.";
+ << "build Ceres with SuiteSparse or CXSparse. "
+ << "Returning NULL.";
return NULL;
-#endif // CERES_NO_SUITESPARSE
+#else
+ return new SparseSchurComplementSolver(options);
+#endif
case DENSE_SCHUR:
return new DenseSchurComplementSolver(options);
@@ -76,10 +79,13 @@ LinearSolver* LinearSolver::Create(const LinearSolver::Options& options) {
case DENSE_QR:
return new DenseQRSolver(options);
+ case DENSE_NORMAL_CHOLESKY:
+ return new DenseNormalCholeskySolver(options);
+
default:
LOG(FATAL) << "Unknown linear solver type :"
<< options.type;
- return NULL; // MSVC doesn't understand that LOG(FATAL) never returns.
+ return NULL; // MSVC doesn't understand that LOG(FATAL) never returns.
}
}
diff --git a/extern/libmv/third_party/ceres/internal/ceres/linear_solver.h b/extern/libmv/third_party/ceres/internal/ceres/linear_solver.h
index 5860ecc8a77..31f88740b9f 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/linear_solver.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/linear_solver.h
@@ -55,10 +55,11 @@ class LinearOperator;
// Ax = b
//
// It is expected that a single instance of a LinearSolver object
-// maybe used multiple times for solving different linear
-// systems. This allows them to cache and reuse information across
-// solves if for example the sparsity of the linear system remains
-// constant.
+// maybe used multiple times for solving multiple linear systems with
+// the same sparsity structure. This allows them to cache and reuse
+// information across solves. This means that calling Solve on the
+// same LinearSolver instance with two different linear systems will
+// result in undefined behaviour.
//
// Subclasses of LinearSolver use two structs to configure themselves.
// The Options struct configures the LinearSolver object for its
@@ -70,10 +71,11 @@ class LinearSolver {
Options()
: type(SPARSE_NORMAL_CHOLESKY),
preconditioner_type(JACOBI),
+ sparse_linear_algebra_library(SUITE_SPARSE),
+ use_block_amd(true),
min_num_iterations(1),
max_num_iterations(1),
num_threads(1),
- constant_sparsity(false),
num_eliminate_blocks(0),
residual_reset_period(10),
row_block_size(Dynamic),
@@ -85,6 +87,11 @@ class LinearSolver {
PreconditionerType preconditioner_type;
+ SparseLinearAlgebraLibraryType sparse_linear_algebra_library;
+
+ // See solver.h for explanation of this option.
+ bool use_block_amd;
+
// Number of internal iterations that the solver uses. This
// parameter only makes sense for iterative solvers like CG.
int min_num_iterations;
@@ -93,10 +100,6 @@ class LinearSolver {
// If possible, how many threads can the solver use.
int num_threads;
- // If possible cache and reuse the symbolic factorization across
- // multiple calls.
- bool constant_sparsity;
-
// Eliminate 0 to num_eliminate_blocks - 1 from the Normal
// equations to form a schur complement. Only used by the Schur
// complement based solver. The most common use for this parameter
@@ -121,8 +124,8 @@ class LinearSolver {
// It is expected that these parameters are set programmatically
// rather than manually.
//
- // Please see explicit_schur_complement_solver_impl.h for more
- // details.
+ // Please see schur_complement_solver.h and schur_eliminator.h for
+ // more details.
int row_block_size;
int e_block_size;
int f_block_size;
@@ -244,6 +247,7 @@ class LinearSolver {
const PerSolveOptions& per_solve_options,
double* x) = 0;
+ // Factory
static LinearSolver* Create(const Options& options);
};
diff --git a/extern/libmv/third_party/ceres/internal/ceres/local_parameterization.cc b/extern/libmv/third_party/ceres/internal/ceres/local_parameterization.cc
index eeae74e3f95..26e7f4908a4 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/local_parameterization.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/local_parameterization.cc
@@ -28,10 +28,11 @@
//
// Author: sameeragarwal@google.com (Sameer Agarwal)
-#include <glog/logging.h>
-#include "ceres/internal/eigen.h"
#include "ceres/local_parameterization.h"
+
+#include "ceres/internal/eigen.h"
#include "ceres/rotation.h"
+#include "glog/logging.h"
namespace ceres {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/loss_function.cc b/extern/libmv/third_party/ceres/internal/ceres/loss_function.cc
index 00b2b184729..b948f289f21 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/loss_function.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/loss_function.cc
@@ -77,6 +77,70 @@ void CauchyLoss::Evaluate(double s, double rho[3]) const {
rho[2] = - c_ * (inv * inv);
}
+void ArctanLoss::Evaluate(double s, double rho[3]) const {
+ const double sum = 1 + s * s * b_;
+ const double inv = 1 / sum;
+ // 'sum' and 'inv' are always positive.
+ rho[0] = a_ * atan2(s, a_);
+ rho[1] = inv;
+ rho[2] = -2 * s * b_ * (inv * inv);
+}
+
+TolerantLoss::TolerantLoss(double a, double b)
+ : a_(a),
+ b_(b),
+ c_(b * log(1.0 + exp(-a / b))) {
+ CHECK_GE(a, 0.0);
+ CHECK_GT(b, 0.0);
+}
+
+void TolerantLoss::Evaluate(double s, double rho[3]) const {
+ const double x = (s - a_) / b_;
+ // The basic equation is rho[0] = b ln(1 + e^x). However, if e^x is too
+ // large, it will overflow. Since numerically 1 + e^x == e^x when the
+ // x is greater than about ln(2^53) for doubles, beyond this threshold
+ // we substitute x for ln(1 + e^x) as a numerically equivalent approximation.
+ static const double kLog2Pow53 = 36.7; // ln(MathLimits<double>::kEpsilon).
+ if (x > kLog2Pow53) {
+ rho[0] = s - a_ - c_;
+ rho[1] = 1.0;
+ rho[2] = 0.0;
+ } else {
+ const double e_x = exp(x);
+ rho[0] = b_ * log(1.0 + e_x) - c_;
+ rho[1] = e_x / (1.0 + e_x);
+ rho[2] = 0.5 / (b_ * (1.0 + cosh(x)));
+ }
+}
+
+ComposedLoss::ComposedLoss(const LossFunction* f, Ownership ownership_f,
+ const LossFunction* g, Ownership ownership_g)
+ : f_(CHECK_NOTNULL(f)),
+ g_(CHECK_NOTNULL(g)),
+ ownership_f_(ownership_f),
+ ownership_g_(ownership_g) {
+}
+
+ComposedLoss::~ComposedLoss() {
+ if (ownership_f_ == DO_NOT_TAKE_OWNERSHIP) {
+ f_.release();
+ }
+ if (ownership_g_ == DO_NOT_TAKE_OWNERSHIP) {
+ g_.release();
+ }
+}
+
+void ComposedLoss::Evaluate(double s, double rho[3]) const {
+ double rho_f[3], rho_g[3];
+ g_->Evaluate(s, rho_g);
+ f_->Evaluate(rho_g[0], rho_f);
+ rho[0] = rho_f[0];
+ // f'(g(s)) * g'(s).
+ rho[1] = rho_f[1] * rho_g[1];
+ // f''(g(s)) * g'(s) * g'(s) + f'(g(s)) * g''(s).
+ rho[2] = rho_f[2] * rho_g[1] * rho_g[1] + rho_f[1] * rho_g[2];
+}
+
void ScaledLoss::Evaluate(double s, double rho[3]) const {
if (rho_.get() == NULL) {
rho[0] = a_ * s;
diff --git a/extern/libmv/third_party/ceres/internal/ceres/matrix_proto.h b/extern/libmv/third_party/ceres/internal/ceres/matrix_proto.h
index b8a3a1a6de6..94b3076e3d7 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/matrix_proto.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/matrix_proto.h
@@ -33,7 +33,7 @@
#ifndef CERES_INTERNAL_MATRIX_PROTO_H_
#define CERES_INTERNAL_MATRIX_PROTO_H_
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
#include "ceres/matrix.pb.h"
#endif
diff --git a/extern/libmv/third_party/ceres/internal/ceres/minimizer.h b/extern/libmv/third_party/ceres/internal/ceres/minimizer.h
index 77cb00cb6b4..cfc98a3ebd0 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/minimizer.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/minimizer.h
@@ -40,6 +40,8 @@ namespace internal {
class Evaluator;
class LinearSolver;
+class SparseMatrix;
+class TrustRegionStrategy;
// Interface for non-linear least squares solvers.
class Minimizer {
@@ -48,53 +50,93 @@ class Minimizer {
// see solver.h for detailed information about the meaning and
// default values of each of these parameters.
struct Options {
+ Options() {
+ Init(Solver::Options());
+ }
+
explicit Options(const Solver::Options& options) {
+ Init(options);
+ }
+
+ void Init(const Solver::Options& options) {
max_num_iterations = options.max_num_iterations;
- max_solver_time_sec = options.max_solver_time_sec;
+ max_solver_time_in_seconds = options.max_solver_time_in_seconds;
+ max_step_solver_retries = 5;
gradient_tolerance = options.gradient_tolerance;
parameter_tolerance = options.parameter_tolerance;
function_tolerance = options.function_tolerance;
min_relative_decrease = options.min_relative_decrease;
eta = options.eta;
- tau = options.tau;
jacobi_scaling = options.jacobi_scaling;
- crash_and_dump_lsqp_on_failure = options.crash_and_dump_lsqp_on_failure;
+ use_nonmonotonic_steps = options.use_nonmonotonic_steps;
+ max_consecutive_nonmonotonic_steps =
+ options.max_consecutive_nonmonotonic_steps;
lsqp_dump_directory = options.lsqp_dump_directory;
lsqp_iterations_to_dump = options.lsqp_iterations_to_dump;
lsqp_dump_format_type = options.lsqp_dump_format_type;
num_eliminate_blocks = options.num_eliminate_blocks;
- logging_type = options.logging_type;
+ max_num_consecutive_invalid_steps =
+ options.max_num_consecutive_invalid_steps;
+ min_trust_region_radius = options.min_trust_region_radius;
+ evaluator = NULL;
+ trust_region_strategy = NULL;
+ jacobian = NULL;
+ callbacks = options.callbacks;
}
int max_num_iterations;
- int max_solver_time_sec;
+ double max_solver_time_in_seconds;
+
+ // Number of times the linear solver should be retried in case of
+ // numerical failure. The retries are done by exponentially scaling up
+ // mu at each retry. This leads to stronger and stronger
+ // regularization making the linear least squares problem better
+ // conditioned at each retry.
+ int max_step_solver_retries;
double gradient_tolerance;
double parameter_tolerance;
double function_tolerance;
double min_relative_decrease;
double eta;
- double tau;
bool jacobi_scaling;
- bool crash_and_dump_lsqp_on_failure;
+ bool use_nonmonotonic_steps;
+ int max_consecutive_nonmonotonic_steps;
vector<int> lsqp_iterations_to_dump;
DumpFormatType lsqp_dump_format_type;
string lsqp_dump_directory;
int num_eliminate_blocks;
- LoggingType logging_type;
+ int max_num_consecutive_invalid_steps;
+ int min_trust_region_radius;
// List of callbacks that are executed by the Minimizer at the end
// of each iteration.
//
- // Client owns these pointers.
+ // The Options struct does not own these pointers.
vector<IterationCallback*> callbacks;
+
+ // Object responsible for evaluating the cost, residuals and
+ // Jacobian matrix. The Options struct does not own this pointer.
+ Evaluator* evaluator;
+
+ // Object responsible for actually computing the trust region
+ // step, and sizing the trust region radius. The Options struct
+ // does not own this pointer.
+ TrustRegionStrategy* trust_region_strategy;
+
+ // Object holding the Jacobian matrix. It is assumed that the
+ // sparsity structure of the matrix has already been initialized
+ // and will remain constant for the life time of the
+ // optimization. The Options struct does not own this pointer.
+ SparseMatrix* jacobian;
};
virtual ~Minimizer() {}
+
+ // Note: The minimizer is expected to update the state of the
+ // parameters array every iteration. This is required for the
+ // StateUpdatingCallback to work.
virtual void Minimize(const Options& options,
- Evaluator* evaluator,
- LinearSolver* linear_solver,
- const double* initial_parameters,
- double* final_parameters,
+ double* parameters,
Solver::Summary* summary) = 0;
};
diff --git a/extern/libmv/third_party/ceres/internal/ceres/mutex.h b/extern/libmv/third_party/ceres/internal/ceres/mutex.h
index 6514b107041..5090a71b78d 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/mutex.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/mutex.h
@@ -95,11 +95,11 @@
#ifndef CERES_INTERNAL_MUTEX_H_
#define CERES_INTERNAL_MUTEX_H_
-#if defined(NO_THREADS)
+#if defined(CERES_NO_THREADS)
typedef int MutexType; // to keep a lock-count
#elif defined(_WIN32) || defined(__CYGWIN32__) || defined(__CYGWIN64__)
-# define WIN32_LEAN_AND_MEAN // We only need minimal includes
-# ifdef GMUTEX_TRYLOCK
+# define CERES_WIN32_LEAN_AND_MEAN // We only need minimal includes
+# ifdef CERES_GMUTEX_TRYLOCK
// We need Windows NT or later for TryEnterCriticalSection(). If you
// don't need that functionality, you can remove these _WIN32_WINNT
// lines, and change TryLock() to assert(0) or something.
@@ -108,9 +108,9 @@
# endif
# endif
// To avoid macro definition of ERROR.
-# define NOGDI
+# define CERES_NOGDI
// To avoid macro definition of min/max.
-# define NOMINMAX
+# define CERES_NOMINMAX
# include <windows.h>
typedef CRITICAL_SECTION MutexType;
#elif defined(CERES_HAVE_PTHREAD) && defined(CERES_HAVE_RWLOCK)
@@ -151,7 +151,7 @@ class Mutex {
inline void Lock(); // Block if needed until free then acquire exclusively
inline void Unlock(); // Release a lock acquired via Lock()
-#ifdef GMUTEX_TRYLOCK
+#ifdef CERES_GMUTEX_TRYLOCK
inline bool TryLock(); // If free, Lock() and return true, else return false
#endif
// Note that on systems that don't support read-write locks, these may
@@ -183,7 +183,7 @@ class Mutex {
};
// Now the implementation of Mutex for various systems
-#if defined(NO_THREADS)
+#if defined(CERES_NO_THREADS)
// When we don't have threads, we can be either reading or writing,
// but not both. We can have lots of readers at once (in no-threads
@@ -199,7 +199,7 @@ Mutex::Mutex() : mutex_(0) { }
Mutex::~Mutex() { assert(mutex_ == 0); }
void Mutex::Lock() { assert(--mutex_ == -1); }
void Mutex::Unlock() { assert(mutex_++ == -1); }
-#ifdef GMUTEX_TRYLOCK
+#ifdef CERES_GMUTEX_TRYLOCK
bool Mutex::TryLock() { if (mutex_) return false; Lock(); return true; }
#endif
void Mutex::ReaderLock() { assert(++mutex_ > 0); }
@@ -220,91 +220,101 @@ void Mutex::ReaderUnlock() { Unlock(); }
#elif defined(CERES_HAVE_PTHREAD) && defined(CERES_HAVE_RWLOCK)
-#define SAFE_PTHREAD(fncall) do { /* run fncall if is_safe_ is true */ \
- if (is_safe_ && fncall(&mutex_) != 0) abort(); \
+#define CERES_SAFE_PTHREAD(fncall) do { /* run fncall if is_safe_ is true */ \
+ if (is_safe_ && fncall(&mutex_) != 0) abort(); \
} while (0)
Mutex::Mutex() {
SetIsSafe();
if (is_safe_ && pthread_rwlock_init(&mutex_, NULL) != 0) abort();
}
-Mutex::~Mutex() { SAFE_PTHREAD(pthread_rwlock_destroy); }
-void Mutex::Lock() { SAFE_PTHREAD(pthread_rwlock_wrlock); }
-void Mutex::Unlock() { SAFE_PTHREAD(pthread_rwlock_unlock); }
-#ifdef GMUTEX_TRYLOCK
+Mutex::~Mutex() { CERES_SAFE_PTHREAD(pthread_rwlock_destroy); }
+void Mutex::Lock() { CERES_SAFE_PTHREAD(pthread_rwlock_wrlock); }
+void Mutex::Unlock() { CERES_SAFE_PTHREAD(pthread_rwlock_unlock); }
+#ifdef CERES_GMUTEX_TRYLOCK
bool Mutex::TryLock() { return is_safe_ ?
pthread_rwlock_trywrlock(&mutex_) == 0 :
true; }
#endif
-void Mutex::ReaderLock() { SAFE_PTHREAD(pthread_rwlock_rdlock); }
-void Mutex::ReaderUnlock() { SAFE_PTHREAD(pthread_rwlock_unlock); }
-#undef SAFE_PTHREAD
+void Mutex::ReaderLock() { CERES_SAFE_PTHREAD(pthread_rwlock_rdlock); }
+void Mutex::ReaderUnlock() { CERES_SAFE_PTHREAD(pthread_rwlock_unlock); }
+#undef CERES_SAFE_PTHREAD
#elif defined(CERES_HAVE_PTHREAD)
-#define SAFE_PTHREAD(fncall) do { /* run fncall if is_safe_ is true */ \
- if (is_safe_ && fncall(&mutex_) != 0) abort(); \
+#define CERES_SAFE_PTHREAD(fncall) do { /* run fncall if is_safe_ is true */ \
+ if (is_safe_ && fncall(&mutex_) != 0) abort(); \
} while (0)
Mutex::Mutex() {
SetIsSafe();
if (is_safe_ && pthread_mutex_init(&mutex_, NULL) != 0) abort();
}
-Mutex::~Mutex() { SAFE_PTHREAD(pthread_mutex_destroy); }
-void Mutex::Lock() { SAFE_PTHREAD(pthread_mutex_lock); }
-void Mutex::Unlock() { SAFE_PTHREAD(pthread_mutex_unlock); }
-#ifdef GMUTEX_TRYLOCK
+Mutex::~Mutex() { CERES_SAFE_PTHREAD(pthread_mutex_destroy); }
+void Mutex::Lock() { CERES_SAFE_PTHREAD(pthread_mutex_lock); }
+void Mutex::Unlock() { CERES_SAFE_PTHREAD(pthread_mutex_unlock); }
+#ifdef CERES_GMUTEX_TRYLOCK
bool Mutex::TryLock() { return is_safe_ ?
pthread_mutex_trylock(&mutex_) == 0 : true; }
#endif
void Mutex::ReaderLock() { Lock(); }
void Mutex::ReaderUnlock() { Unlock(); }
-#undef SAFE_PTHREAD
+#undef CERES_SAFE_PTHREAD
#endif
// --------------------------------------------------------------------------
// Some helper classes
-// MutexLock(mu) acquires mu when constructed and releases it when destroyed.
-class MutexLock {
+// Note: The weird "Ceres" prefix for the class is a workaround for having two
+// similar mutex.h files included in the same translation unit. This is a
+// problem because macros do not respect C++ namespaces, and as a result, this
+// does not work well (e.g. inside Chrome). The offending macros are
+// "MutexLock(x) COMPILE_ASSERT(false)". To work around this, "Ceres" is
+// prefixed to the class names; this permits defining the classes.
+
+// CeresMutexLock(mu) acquires mu when constructed and releases it when destroyed.
+class CeresMutexLock {
public:
- explicit MutexLock(Mutex *mu) : mu_(mu) { mu_->Lock(); }
- ~MutexLock() { mu_->Unlock(); }
+ explicit CeresMutexLock(Mutex *mu) : mu_(mu) { mu_->Lock(); }
+ ~CeresMutexLock() { mu_->Unlock(); }
private:
Mutex * const mu_;
// Disallow "evil" constructors
- MutexLock(const MutexLock&);
- void operator=(const MutexLock&);
+ CeresMutexLock(const CeresMutexLock&);
+ void operator=(const CeresMutexLock&);
};
-// ReaderMutexLock and WriterMutexLock do the same, for rwlocks
-class ReaderMutexLock {
+// CeresReaderMutexLock and CeresWriterMutexLock do the same, for rwlocks
+class CeresReaderMutexLock {
public:
- explicit ReaderMutexLock(Mutex *mu) : mu_(mu) { mu_->ReaderLock(); }
- ~ReaderMutexLock() { mu_->ReaderUnlock(); }
+ explicit CeresReaderMutexLock(Mutex *mu) : mu_(mu) { mu_->ReaderLock(); }
+ ~CeresReaderMutexLock() { mu_->ReaderUnlock(); }
private:
Mutex * const mu_;
// Disallow "evil" constructors
- ReaderMutexLock(const ReaderMutexLock&);
- void operator=(const ReaderMutexLock&);
+ CeresReaderMutexLock(const CeresReaderMutexLock&);
+ void operator=(const CeresReaderMutexLock&);
};
-class WriterMutexLock {
+class CeresWriterMutexLock {
public:
- explicit WriterMutexLock(Mutex *mu) : mu_(mu) { mu_->WriterLock(); }
- ~WriterMutexLock() { mu_->WriterUnlock(); }
+ explicit CeresWriterMutexLock(Mutex *mu) : mu_(mu) { mu_->WriterLock(); }
+ ~CeresWriterMutexLock() { mu_->WriterUnlock(); }
private:
Mutex * const mu_;
// Disallow "evil" constructors
- WriterMutexLock(const WriterMutexLock&);
- void operator=(const WriterMutexLock&);
+ CeresWriterMutexLock(const CeresWriterMutexLock&);
+ void operator=(const CeresWriterMutexLock&);
};
// Catch bug where variable name is omitted, e.g. MutexLock (&mu);
-#define MutexLock(x) COMPILE_ASSERT(0, mutex_lock_decl_missing_var_name)
-#define ReaderMutexLock(x) COMPILE_ASSERT(0, rmutex_lock_decl_missing_var_name)
-#define WriterMutexLock(x) COMPILE_ASSERT(0, wmutex_lock_decl_missing_var_name)
+#define CeresMutexLock(x) \
+ COMPILE_ASSERT(0, ceres_mutex_lock_decl_missing_var_name)
+#define CeresReaderMutexLock(x) \
+ COMPILE_ASSERT(0, ceres_rmutex_lock_decl_missing_var_name)
+#define CeresWriterMutexLock(x) \
+ COMPILE_ASSERT(0, ceres_wmutex_lock_decl_missing_var_name)
} // namespace internal
} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/normal_prior.cc b/extern/libmv/third_party/ceres/internal/ceres/normal_prior.cc
index f30bbc8b46b..392d728fb32 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/normal_prior.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/normal_prior.cc
@@ -32,11 +32,10 @@
#include <cstddef>
#include <vector>
-
-#include <glog/logging.h>
#include "ceres/internal/eigen.h"
#include "ceres/internal/scoped_ptr.h"
#include "ceres/types.h"
+#include "glog/logging.h"
namespace ceres {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/parameter_block.h b/extern/libmv/third_party/ceres/internal/ceres/parameter_block.h
index 4bac1a85828..f20805ca873 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/parameter_block.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/parameter_block.h
@@ -32,13 +32,15 @@
#define CERES_INTERNAL_PARAMETER_BLOCK_H_
#include <cstdlib>
+#include <string>
+#include "ceres/array_utils.h"
#include "ceres/integral_types.h"
-#include <glog/logging.h>
#include "ceres/internal/eigen.h"
#include "ceres/internal/port.h"
#include "ceres/internal/scoped_ptr.h"
#include "ceres/local_parameterization.h"
-#include "ceres/residual_block_utils.h"
+#include "ceres/stringprintf.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
@@ -172,6 +174,19 @@ class ParameterBlock {
return local_parameterization_->Plus(x, delta, x_plus_delta);
}
+ string ToString() const {
+ return StringPrintf("{ user_state=%p, state=%p, size=%d, "
+ "constant=%d, index=%d, state_offset=%d, "
+ "delta_offset=%d }",
+ user_state_,
+ state_,
+ size_,
+ is_constant_,
+ index_,
+ state_offset_,
+ delta_offset_);
+ }
+
private:
void Init(double* user_state,
int size,
diff --git a/extern/libmv/third_party/ceres/internal/ceres/partitioned_matrix_view.cc b/extern/libmv/third_party/ceres/internal/ceres/partitioned_matrix_view.cc
index fcf8fd53aed..0722fc82c02 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/partitioned_matrix_view.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/partitioned_matrix_view.cc
@@ -35,10 +35,10 @@
#include <algorithm>
#include <cstring>
#include <vector>
-#include <glog/logging.h>
#include "ceres/block_sparse_matrix.h"
#include "ceres/block_structure.h"
#include "ceres/internal/eigen.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/polynomial_solver.cc b/extern/libmv/third_party/ceres/internal/ceres/polynomial_solver.cc
new file mode 100644
index 00000000000..20c01566a89
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/polynomial_solver.cc
@@ -0,0 +1,184 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: moll.markus@arcor.de (Markus Moll)
+
+#include "ceres/polynomial_solver.h"
+
+#include <cmath>
+#include <cstddef>
+#include "Eigen/Dense"
+#include "ceres/internal/port.h"
+#include "glog/logging.h"
+
+namespace ceres {
+namespace internal {
+namespace {
+
+// Balancing function as described by B. N. Parlett and C. Reinsch,
+// "Balancing a Matrix for Calculation of Eigenvalues and Eigenvectors".
+// In: Numerische Mathematik, Volume 13, Number 4 (1969), 293-304,
+// Springer Berlin / Heidelberg. DOI: 10.1007/BF02165404
+void BalanceCompanionMatrix(Matrix* companion_matrix_ptr) {
+ CHECK_NOTNULL(companion_matrix_ptr);
+ Matrix& companion_matrix = *companion_matrix_ptr;
+ Matrix companion_matrix_offdiagonal = companion_matrix;
+ companion_matrix_offdiagonal.diagonal().setZero();
+
+ const int degree = companion_matrix.rows();
+
+ // gamma <= 1 controls how much a change in the scaling has to
+ // lower the 1-norm of the companion matrix to be accepted.
+ //
+ // gamma = 1 seems to lead to cycles (numerical issues?), so
+ // we set it slightly lower.
+ const double gamma = 0.9;
+
+ // Greedily scale row/column pairs until there is no change.
+ bool scaling_has_changed;
+ do {
+ scaling_has_changed = false;
+
+ for (int i = 0; i < degree; ++i) {
+ const double row_norm = companion_matrix_offdiagonal.row(i).lpNorm<1>();
+ const double col_norm = companion_matrix_offdiagonal.col(i).lpNorm<1>();
+
+ // Decompose row_norm/col_norm into mantissa * 2^exponent,
+ // where 0.5 <= mantissa < 1. Discard mantissa (return value
+ // of frexp), as only the exponent is needed.
+ int exponent = 0;
+ std::frexp(row_norm / col_norm, &exponent);
+ exponent /= 2;
+
+ if (exponent != 0) {
+ const double scaled_col_norm = std::ldexp(col_norm, exponent);
+ const double scaled_row_norm = std::ldexp(row_norm, -exponent);
+ if (scaled_col_norm + scaled_row_norm < gamma * (col_norm + row_norm)) {
+ // Accept the new scaling. (Multiplication by powers of 2 should not
+ // introduce rounding errors (ignoring non-normalized numbers and
+ // over- or underflow))
+ scaling_has_changed = true;
+ companion_matrix_offdiagonal.row(i) *= std::ldexp(1.0, -exponent);
+ companion_matrix_offdiagonal.col(i) *= std::ldexp(1.0, exponent);
+ }
+ }
+ }
+ } while (scaling_has_changed);
+
+ companion_matrix_offdiagonal.diagonal() = companion_matrix.diagonal();
+ companion_matrix = companion_matrix_offdiagonal;
+ VLOG(3) << "Balanced companion matrix is\n" << companion_matrix;
+}
+
+void BuildCompanionMatrix(const Vector& polynomial,
+ Matrix* companion_matrix_ptr) {
+ CHECK_NOTNULL(companion_matrix_ptr);
+ Matrix& companion_matrix = *companion_matrix_ptr;
+
+ const int degree = polynomial.size() - 1;
+
+ companion_matrix.resize(degree, degree);
+ companion_matrix.setZero();
+ companion_matrix.diagonal(-1).setOnes();
+ companion_matrix.col(degree - 1) = -polynomial.reverse().head(degree);
+}
+
+// Remove leading terms with zero coefficients.
+Vector RemoveLeadingZeros(const Vector& polynomial_in) {
+ int i = 0;
+ while (i < (polynomial_in.size() - 1) && polynomial_in(i) == 0.0) {
+ ++i;
+ }
+ return polynomial_in.tail(polynomial_in.size() - i);
+}
+} // namespace
+
+bool FindPolynomialRoots(const Vector& polynomial_in,
+ Vector* real,
+ Vector* imaginary) {
+ if (polynomial_in.size() == 0) {
+ LOG(ERROR) << "Invalid polynomial of size 0 passed to FindPolynomialRoots";
+ return false;
+ }
+
+ Vector polynomial = RemoveLeadingZeros(polynomial_in);
+ const int degree = polynomial.size() - 1;
+
+ // Is the polynomial constant?
+ if (degree == 0) {
+ LOG(WARNING) << "Trying to extract roots from a constant "
+ << "polynomial in FindPolynomialRoots";
+ return true;
+ }
+
+ // Divide by leading term
+ const double leading_term = polynomial(0);
+ polynomial /= leading_term;
+
+ // Separately handle linear polynomials.
+ if (degree == 1) {
+ if (real != NULL) {
+ real->resize(1);
+ (*real)(0) = -polynomial(1);
+ }
+ if (imaginary != NULL) {
+ imaginary->resize(1);
+ imaginary->setZero();
+ }
+ }
+
+ // The degree is now known to be at least 2.
+ // Build and balance the companion matrix to the polynomial.
+ Matrix companion_matrix(degree, degree);
+ BuildCompanionMatrix(polynomial, &companion_matrix);
+ BalanceCompanionMatrix(&companion_matrix);
+
+ // Find its (complex) eigenvalues.
+ Eigen::EigenSolver<Matrix> solver(companion_matrix,
+ Eigen::EigenvaluesOnly);
+ if (solver.info() != Eigen::Success) {
+ LOG(ERROR) << "Failed to extract eigenvalues from companion matrix.";
+ return false;
+ }
+
+ // Output roots
+ if (real != NULL) {
+ *real = solver.eigenvalues().real();
+ } else {
+ LOG(WARNING) << "NULL pointer passed as real argument to "
+ << "FindPolynomialRoots. Real parts of the roots will not "
+ << "be returned.";
+ }
+ if (imaginary != NULL) {
+ *imaginary = solver.eigenvalues().imag();
+ }
+ return true;
+}
+
+} // namespace internal
+} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/polynomial_solver.h b/extern/libmv/third_party/ceres/internal/ceres/polynomial_solver.h
new file mode 100644
index 00000000000..1cf07ddb549
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/polynomial_solver.h
@@ -0,0 +1,65 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: moll.markus@arcor.de (Markus Moll)
+
+#ifndef CERES_INTERNAL_POLYNOMIAL_SOLVER_H_
+#define CERES_INTERNAL_POLYNOMIAL_SOLVER_H_
+
+#include "ceres/internal/eigen.h"
+
+namespace ceres {
+namespace internal {
+
+// Use the companion matrix eigenvalues to determine the roots of the polynomial
+//
+// sum_{i=0}^N polynomial(i) x^{N-i}.
+//
+// This function returns true on success, false otherwise.
+// Failure indicates that the polynomial is invalid (of size 0) or
+// that the eigenvalues of the companion matrix could not be computed.
+// On failure, a more detailed message will be written to LOG(ERROR).
+// If real is not NULL, the real parts of the roots will be returned in it.
+// Likewise, if imaginary is not NULL, imaginary parts will be returned in it.
+bool FindPolynomialRoots(const Vector& polynomial,
+ Vector* real,
+ Vector* imaginary);
+
+// Evaluate the polynomial at x using the Horner scheme.
+inline double EvaluatePolynomial(const Vector& polynomial, double x) {
+ double v = 0.0;
+ for (int i = 0; i < polynomial.size(); ++i) {
+ v = v * x + polynomial(i);
+ }
+ return v;
+}
+
+} // namespace internal
+} // namespace ceres
+
+#endif // CERES_INTERNAL_POLYNOMIAL_SOLVER_H_
diff --git a/extern/libmv/third_party/ceres/internal/ceres/problem_impl.cc b/extern/libmv/third_party/ceres/internal/ceres/problem_impl.cc
index 68242477d6f..c186f527be8 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/problem_impl.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/problem_impl.cc
@@ -37,16 +37,15 @@
#include <string>
#include <utility>
#include <vector>
-
-#include <glog/logging.h>
+#include "ceres/cost_function.h"
+#include "ceres/loss_function.h"
+#include "ceres/map_util.h"
#include "ceres/parameter_block.h"
#include "ceres/program.h"
#include "ceres/residual_block.h"
#include "ceres/stl_util.h"
-#include "ceres/map_util.h"
#include "ceres/stringprintf.h"
-#include "ceres/cost_function.h"
-#include "ceres/loss_function.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/problem_impl.h b/extern/libmv/third_party/ceres/internal/ceres/problem_impl.h
index 523860e652a..2ca055448c3 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/problem_impl.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/problem_impl.h
@@ -118,7 +118,7 @@ class ProblemImpl {
map<double*, ParameterBlock*> parameter_block_map_;
internal::scoped_ptr<internal::Program> program_;
- DISALLOW_COPY_AND_ASSIGN(ProblemImpl);
+ CERES_DISALLOW_COPY_AND_ASSIGN(ProblemImpl);
};
} // namespace internal
diff --git a/extern/libmv/third_party/ceres/internal/ceres/program.cc b/extern/libmv/third_party/ceres/internal/ceres/program.cc
index 444b1020253..82d76d39233 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/program.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/program.cc
@@ -32,14 +32,18 @@
#include <map>
#include <vector>
+#include "ceres/casts.h"
+#include "ceres/compressed_row_sparse_matrix.h"
+#include "ceres/cost_function.h"
+#include "ceres/evaluator.h"
+#include "ceres/internal/port.h"
+#include "ceres/local_parameterization.h"
+#include "ceres/loss_function.h"
+#include "ceres/map_util.h"
#include "ceres/parameter_block.h"
+#include "ceres/problem.h"
#include "ceres/residual_block.h"
#include "ceres/stl_util.h"
-#include "ceres/map_util.h"
-#include "ceres/problem.h"
-#include "ceres/cost_function.h"
-#include "ceres/loss_function.h"
-#include "ceres/local_parameterization.h"
namespace ceres {
namespace internal {
@@ -69,7 +73,8 @@ vector<ResidualBlock*>* Program::mutable_residual_blocks() {
bool Program::StateVectorToParameterBlocks(const double *state) {
for (int i = 0; i < parameter_blocks_.size(); ++i) {
- if (!parameter_blocks_[i]->SetState(state)) {
+ if (!parameter_blocks_[i]->IsConstant() &&
+ !parameter_blocks_[i]->SetState(state)) {
return false;
}
state += parameter_blocks_[i]->Size();
@@ -86,9 +91,18 @@ void Program::ParameterBlocksToStateVector(double *state) const {
void Program::CopyParameterBlockStateToUserState() {
for (int i = 0; i < parameter_blocks_.size(); ++i) {
- parameter_blocks_[i]->GetState(
- parameter_blocks_[i]->mutable_user_state());
+ parameter_blocks_[i]->GetState(parameter_blocks_[i]->mutable_user_state());
+ }
+}
+
+bool Program::SetParameterBlockStatePtrsToUserStatePtrs() {
+ for (int i = 0; i < parameter_blocks_.size(); ++i) {
+ if (!parameter_blocks_[i]->IsConstant() &&
+ !parameter_blocks_[i]->SetState(parameter_blocks_[i]->user_state())) {
+ return false;
+ }
}
+ return true;
}
bool Program::Plus(const double* state,
@@ -193,40 +207,25 @@ int Program::MaxParametersPerResidualBlock() const {
return max_parameters;
}
-bool Program::Evaluate(double* cost, double* residuals) {
- *cost = 0.0;
-
- // Scratch space is only needed if residuals is NULL.
- scoped_array<double> scratch;
- if (residuals == NULL) {
- scratch.reset(new double[MaxScratchDoublesNeededForEvaluate()]);
- } else {
- // TODO(keir): Is this needed? Check by removing the equivalent statement in
- // dense_evaluator.cc and running the tests.
- VectorRef(residuals, NumResiduals()).setZero();
- }
-
+int Program::MaxResidualsPerResidualBlock() const {
+ int max_residuals = 0;
for (int i = 0; i < residual_blocks_.size(); ++i) {
- ResidualBlock* residual_block = residual_blocks_[i];
-
- // Evaluate the cost function for this residual.
- double residual_cost;
- if (!residual_block->Evaluate(&residual_cost,
- residuals,
- NULL, // No jacobian.
- scratch.get())) {
- return false;
- }
-
- // Accumulate residual cost into the total cost.
- *cost += residual_cost;
+ max_residuals = max(max_residuals,
+ residual_blocks_[i]->NumResiduals());
+ }
+ return max_residuals;
+}
- // Update the residuals cursor.
- if (residuals != NULL) {
- residuals += residual_block->NumResiduals();
- }
+string Program::ToString() const {
+ string ret = "Program dump\n";
+ ret += StringPrintf("Number of parameter blocks: %d\n", NumParameterBlocks());
+ ret += StringPrintf("Number of parameters: %d\n", NumParameters());
+ ret += "Parameters:\n";
+ for (int i = 0; i < parameter_blocks_.size(); ++i) {
+ ret += StringPrintf("%d: %s\n",
+ i, parameter_blocks_[i]->ToString().c_str());
}
- return true;
+ return ret;
}
} // namespace internal
diff --git a/extern/libmv/third_party/ceres/internal/ceres/program.h b/extern/libmv/third_party/ceres/internal/ceres/program.h
index 113d352d562..5002b7e752e 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/program.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/program.h
@@ -31,6 +31,7 @@
#ifndef CERES_INTERNAL_PROGRAM_H_
#define CERES_INTERNAL_PROGRAM_H_
+#include <string>
#include <vector>
#include "ceres/internal/port.h"
@@ -71,9 +72,14 @@ class Program {
bool StateVectorToParameterBlocks(const double *state);
void ParameterBlocksToStateVector(double *state) const;
- // Copy internal state out to the user's parameters.
+ // Copy internal state to the user's parameters.
void CopyParameterBlockStateToUserState();
+ // Set the parameter block pointers to the user pointers. Since this
+ // runs parameter block set state internally, which may call local
+ // parameterizations, this can fail. False is returned on failure.
+ bool SetParameterBlockStatePtrsToUserStatePtrs();
+
// Update a state vector for the program given a delta.
bool Plus(const double* state,
const double* delta,
@@ -103,16 +109,11 @@ class Program {
int MaxScratchDoublesNeededForEvaluate() const;
int MaxDerivativesPerResidualBlock() const;
int MaxParametersPerResidualBlock() const;
+ int MaxResidualsPerResidualBlock() const;
- // Evaluate the cost and maybe the residuals for the program. If residuals is
- // NULL, then residuals are not calculated. If the jacobian is needed, instead
- // use the various evaluators (e.g. dense_evaluator.h).
- //
- // This is a trivial implementation of evaluate not intended for use in the
- // core solving loop. The other evaluators, which support constructing the
- // jacobian in addition to the cost and residuals, are considerably
- // complicated by the need to construct the jacobian.
- bool Evaluate(double* cost, double* residuals);
+ // A human-readable dump of the parameter blocks for debugging.
+ // TODO(keir): If necessary, also dump the residual blocks.
+ string ToString() const;
private:
// The Program does not own the ParameterBlock or ResidualBlock objects.
diff --git a/extern/libmv/third_party/ceres/internal/ceres/program_evaluator.h b/extern/libmv/third_party/ceres/internal/ceres/program_evaluator.h
index 7ec74b1b269..6c48e7d7643 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/program_evaluator.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/program_evaluator.h
@@ -120,13 +120,18 @@ class ProgramEvaluator : public Evaluator {
bool Evaluate(const double* state,
double* cost,
double* residuals,
+ double* gradient,
SparseMatrix* jacobian) {
// The parameters are stateful, so set the state before evaluating.
if (!program_->StateVectorToParameterBlocks(state)) {
return false;
}
- if (jacobian) {
+ if (residuals != NULL) {
+ VectorRef(residuals, program_->NumResiduals()).setZero();
+ }
+
+ if (jacobian != NULL) {
jacobian->SetZero();
}
@@ -158,13 +163,16 @@ class ProgramEvaluator : public Evaluator {
// Prepare block residuals if requested.
const ResidualBlock* residual_block = program_->residual_blocks()[i];
- double* block_residuals = (residuals != NULL)
- ? (residuals + residual_layout_[i])
- : NULL;
+ double* block_residuals = NULL;
+ if (residuals != NULL) {
+ block_residuals = residuals + residual_layout_[i];
+ } else if (gradient != NULL) {
+ block_residuals = scratch->residual_block_residuals.get();
+ }
// Prepare block jacobians if requested.
double** block_jacobians = NULL;
- if (jacobian != NULL) {
+ if (jacobian != NULL || gradient != NULL) {
preparer->Prepare(residual_block,
i,
jacobian,
@@ -174,10 +182,11 @@ class ProgramEvaluator : public Evaluator {
// Evaluate the cost, residuals, and jacobians.
double block_cost;
- if (!residual_block->Evaluate(&block_cost,
- block_residuals,
- block_jacobians,
- scratch->scratch.get())) {
+ if (!residual_block->Evaluate(
+ &block_cost,
+ block_residuals,
+ block_jacobians,
+ scratch->residual_block_evaluate_scratch.get())) {
abort = true;
// This ensures that the OpenMP threads have a consistent view of 'abort'. Do
// the flush inside the failure case so that there is usually only one
@@ -188,19 +197,49 @@ class ProgramEvaluator : public Evaluator {
scratch->cost += block_cost;
+ // Store the jacobians, if they were requested.
if (jacobian != NULL) {
jacobian_writer_.Write(i,
residual_layout_[i],
block_jacobians,
jacobian);
}
+
+ // Compute and store the gradient, if it was requested.
+ if (gradient != NULL) {
+ int num_residuals = residual_block->NumResiduals();
+ int num_parameter_blocks = residual_block->NumParameterBlocks();
+ for (int j = 0; j < num_parameter_blocks; ++j) {
+ const ParameterBlock* parameter_block =
+ residual_block->parameter_blocks()[j];
+ if (parameter_block->IsConstant()) {
+ continue;
+ }
+ MatrixRef block_jacobian(block_jacobians[j],
+ num_residuals,
+ parameter_block->LocalSize());
+ VectorRef block_gradient(scratch->gradient.get() +
+ parameter_block->delta_offset(),
+ parameter_block->LocalSize());
+ VectorRef block_residual(block_residuals, num_residuals);
+ block_gradient += block_residual.transpose() * block_jacobian;
+ }
+ }
}
if (!abort) {
- // Sum the cost from each thread.
+ // Sum the cost and gradient (if requested) from each thread.
(*cost) = 0.0;
+ int num_parameters = program_->NumEffectiveParameters();
+ if (gradient != NULL) {
+ VectorRef(gradient, num_parameters).setZero();
+ }
for (int i = 0; i < options_.num_threads; ++i) {
(*cost) += evaluate_scratch_[i].cost;
+ if (gradient != NULL) {
+ VectorRef(gradient, num_parameters) +=
+ VectorRef(evaluate_scratch_[i].gradient.get(), num_parameters);
+ }
}
}
return !abort;
@@ -224,16 +263,28 @@ class ProgramEvaluator : public Evaluator {
}
private:
+ // Per-thread scratch space needed to evaluate and store each residual block.
struct EvaluateScratch {
void Init(int max_parameters_per_residual_block,
- int max_scratch_doubles_needed_for_evaluate) {
+ int max_scratch_doubles_needed_for_evaluate,
+ int max_residuals_per_residual_block,
+ int num_parameters) {
+ residual_block_evaluate_scratch.reset(
+ new double[max_scratch_doubles_needed_for_evaluate]);
+ gradient.reset(new double[num_parameters]);
+ VectorRef(gradient.get(), num_parameters).setZero();
+ residual_block_residuals.reset(
+ new double[max_residuals_per_residual_block]);
jacobian_block_ptrs.reset(
new double*[max_parameters_per_residual_block]);
- scratch.reset(new double[max_scratch_doubles_needed_for_evaluate]);
}
double cost;
- scoped_array<double> scratch;
+ scoped_array<double> residual_block_evaluate_scratch;
+ // The gradient in the local parameterization.
+ scoped_array<double> gradient;
+ // Enough space to store the residual for the largest residual block.
+ scoped_array<double> residual_block_residuals;
scoped_array<double*> jacobian_block_ptrs;
};
@@ -256,11 +307,16 @@ class ProgramEvaluator : public Evaluator {
program.MaxParametersPerResidualBlock();
int max_scratch_doubles_needed_for_evaluate =
program.MaxScratchDoublesNeededForEvaluate();
+ int max_residuals_per_residual_block =
+ program.MaxResidualsPerResidualBlock();
+ int num_parameters = program.NumEffectiveParameters();
EvaluateScratch* evaluate_scratch = new EvaluateScratch[num_threads];
for (int i = 0; i < num_threads; i++) {
evaluate_scratch[i].Init(max_parameters_per_residual_block,
- max_scratch_doubles_needed_for_evaluate);
+ max_scratch_doubles_needed_for_evaluate,
+ max_residuals_per_residual_block,
+ num_parameters);
}
return evaluate_scratch;
}
diff --git a/extern/libmv/third_party/ceres/internal/ceres/random.h b/extern/libmv/third_party/ceres/internal/ceres/random.h
index 769e0b4dd27..352c0032b5a 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/random.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/random.h
@@ -27,21 +27,44 @@
// POSSIBILITY OF SUCH DAMAGE.
//
// Author: keir@google.com (Keir Mierle)
+// sameeragarwal@google.com (Sameer Agarwal)
#ifndef CERES_INTERNAL_RANDOM_H_
#define CERES_INTERNAL_RANDOM_H_
+#include <cmath>
+#include <cstdlib>
+#include "ceres/internal/port.h"
+
namespace ceres {
-inline double RandDouble() {
- double r = rand();
- return r / RAND_MAX;
+inline void SetRandomState(int state) {
+ srand(state);
}
inline int Uniform(int n) {
return rand() % n;
}
+inline double RandDouble() {
+ double r = static_cast<double>(rand());
+ return r / RAND_MAX;
+}
+
+// Box-Muller algorithm for normal random number generation.
+// http://en.wikipedia.org/wiki/Box-Muller_transform
+inline double RandNormal() {
+ double x1, x2, w;
+ do {
+ x1 = 2.0 * RandDouble() - 1.0;
+ x2 = 2.0 * RandDouble() - 1.0;
+ w = x1 * x1 + x2 * x2;
+ } while ( w >= 1.0 || w == 0.0 );
+
+ w = sqrt((-2.0 * log(w)) / w);
+ return x1 * w;
+}
+
} // namespace ceres
#endif // CERES_INTERNAL_RANDOM_H_
diff --git a/extern/libmv/third_party/ceres/internal/ceres/residual_block.cc b/extern/libmv/third_party/ceres/internal/ceres/residual_block.cc
index 03867891dba..bdb88b1dd97 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/residual_block.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/residual_block.cc
@@ -102,8 +102,11 @@ bool ResidualBlock::Evaluate(double* cost,
InvalidateEvaluation(*this, cost, residuals, eval_jacobians);
- if (!cost_function_->Evaluate(parameters.get(), residuals, eval_jacobians) ||
- !IsEvaluationValid(*this,
+ if (!cost_function_->Evaluate(parameters.get(), residuals, eval_jacobians)) {
+ return false;
+ }
+
+ if (!IsEvaluationValid(*this,
parameters.get(),
cost,
residuals,
diff --git a/extern/libmv/third_party/ceres/internal/ceres/residual_block_utils.cc b/extern/libmv/third_party/ceres/internal/ceres/residual_block_utils.cc
index 28e03130844..9442bb2a1c1 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/residual_block_utils.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/residual_block_utils.cc
@@ -33,46 +33,17 @@
#include <cmath>
#include <cstddef>
#include <limits>
-#include <glog/logging.h>
-#include "ceres/residual_block.h"
-#include "ceres/parameter_block.h"
-#include "ceres/stringprintf.h"
+#include "ceres/array_utils.h"
#include "ceres/internal/eigen.h"
#include "ceres/internal/port.h"
-
-#ifdef _MSC_VER
-# define isfinite _finite
-#endif
+#include "ceres/parameter_block.h"
+#include "ceres/residual_block.h"
+#include "ceres/stringprintf.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
-// It is a near impossibility that user code generates this exact
-// value in normal operation, thus we will use it to fill arrays
-// before passing them to user code. If on return an element of the
-// array still contains this value, we will assume that the user code
-// did not write to that memory location.
-static const double kImpossibleValue = 1e302;
-
-bool IsArrayValid(const int size, const double* x) {
- if (x != NULL) {
- for (int i = 0; i < size; ++i) {
- if (!isfinite(x[i]) || (x[i] == kImpossibleValue)) {
- return false;
- }
- }
- }
- return true;
-}
-
-void InvalidateArray(const int size, double* x) {
- if (x != NULL) {
- for (int i = 0; i < size; ++i) {
- x[i] = kImpossibleValue;
- }
- }
-}
-
void InvalidateEvaluation(const ResidualBlock& block,
double* cost,
double* residuals,
@@ -92,7 +63,7 @@ void InvalidateEvaluation(const ResidualBlock& block,
// Utility routine to print an array of doubles to a string. If the
// array pointer is NULL, it is treated as an array of zeros.
-void AppendArrayToString(const int size, const double* x, string* result) {
+static void AppendArrayToString(const int size, const double* x, string* result) {
for (int i = 0; i < size; ++i) {
if (x == NULL) {
StringAppendF(result, "Not Computed ");
diff --git a/extern/libmv/third_party/ceres/internal/ceres/residual_block_utils.h b/extern/libmv/third_party/ceres/internal/ceres/residual_block_utils.h
index 228867cc60c..7051c2112fd 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/residual_block_utils.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/residual_block_utils.h
@@ -51,15 +51,6 @@ namespace internal {
class ResidualBlock;
-// Fill the array x with an impossible value that the user code is
-// never expected to compute.
-void InvalidateArray(int size, double* x);
-
-// Check if all the entries of the array x are valid, i.e. all the
-// values in the array should be finite and none of them should be
-// equal to the "impossible" value used by InvalidateArray.
-bool IsArrayValid(int size, const double* x);
-
// Invalidate cost, resdual and jacobian arrays (if not NULL).
void InvalidateEvaluation(const ResidualBlock& block,
double* cost,
diff --git a/extern/libmv/third_party/ceres/internal/ceres/runtime_numeric_diff_cost_function.cc b/extern/libmv/third_party/ceres/internal/ceres/runtime_numeric_diff_cost_function.cc
index ac6d8aa279a..7af275c1dd8 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/runtime_numeric_diff_cost_function.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/runtime_numeric_diff_cost_function.cc
@@ -35,11 +35,10 @@
#include <algorithm>
#include <numeric>
#include <vector>
-
-#include <glog/logging.h>
#include "Eigen/Dense"
#include "ceres/cost_function.h"
#include "ceres/internal/scoped_ptr.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.cc b/extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.cc
index 2bc8cdd6bec..2cbe78d133a 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.cc
@@ -32,7 +32,13 @@
#include <ctime>
#include <set>
#include <vector>
+
+#ifndef CERES_NO_CXSPARSE
+#include "cs.h"
+#endif // CERES_NO_CXSPARSE
+
#include "Eigen/Dense"
+#include "glog/logging.h"
#include "ceres/block_random_access_dense_matrix.h"
#include "ceres/block_random_access_matrix.h"
#include "ceres/block_random_access_sparse_matrix.h"
@@ -48,6 +54,7 @@
#include "ceres/internal/scoped_ptr.h"
#include "ceres/types.h"
+
namespace ceres {
namespace internal {
@@ -57,7 +64,7 @@ LinearSolver::Summary SchurComplementSolver::SolveImpl(
const LinearSolver::PerSolveOptions& per_solve_options,
double* x) {
const time_t start_time = time(NULL);
- if (!options_.constant_sparsity || (eliminator_.get() == NULL)) {
+ if (eliminator_.get() == NULL) {
InitStorage(A->block_structure());
DetectStructure(*A->block_structure(),
options_.num_eliminate_blocks,
@@ -88,11 +95,11 @@ LinearSolver::Summary SchurComplementSolver::SolveImpl(
const time_t backsubstitute_time = time(NULL);
summary.termination_type = TOLERANCE;
- VLOG(2) << "time (sec) total: " << backsubstitute_time - start_time
- << " init: " << init_time - start_time
- << " eliminate: " << eliminate_time - init_time
- << " solve: " << solve_time - eliminate_time
- << " backsubstitute: " << backsubstitute_time - solve_time;
+ VLOG(2) << "time (sec) total: " << (backsubstitute_time - start_time)
+ << " init: " << (init_time - start_time)
+ << " eliminate: " << (eliminate_time - init_time)
+ << " solve: " << (solve_time - eliminate_time)
+ << " backsubstitute: " << (backsubstitute_time - solve_time);
return summary;
}
@@ -139,18 +146,33 @@ bool DenseSchurComplementSolver::SolveReducedLinearSystem(double* solution) {
return true;
}
-#ifndef CERES_NO_SUITESPARSE
+
SparseSchurComplementSolver::SparseSchurComplementSolver(
const LinearSolver::Options& options)
- : SchurComplementSolver(options),
- symbolic_factor_(NULL) {
+ : SchurComplementSolver(options) {
+#ifndef CERES_NO_SUITESPARSE
+ factor_ = NULL;
+#endif // CERES_NO_SUITESPARSE
+
+#ifndef CERES_NO_CXSPARSE
+ cxsparse_factor_ = NULL;
+#endif // CERES_NO_CXSPARSE
}
SparseSchurComplementSolver::~SparseSchurComplementSolver() {
- if (symbolic_factor_ != NULL) {
- ss_.Free(symbolic_factor_);
- symbolic_factor_ = NULL;
+#ifndef CERES_NO_SUITESPARSE
+ if (factor_ != NULL) {
+ ss_.Free(factor_);
+ factor_ = NULL;
}
+#endif // CERES_NO_SUITESPARSE
+
+#ifndef CERES_NO_CXSPARSE
+ if (cxsparse_factor_ != NULL) {
+ cxsparse_.Free(cxsparse_factor_);
+ cxsparse_factor_ = NULL;
+ }
+#endif // CERES_NO_CXSPARSE
}
// Determine the non-zero blocks in the Schur Complement matrix, and
@@ -161,13 +183,13 @@ void SparseSchurComplementSolver::InitStorage(
const int num_col_blocks = bs->cols.size();
const int num_row_blocks = bs->rows.size();
- vector<int> blocks(num_col_blocks - num_eliminate_blocks, 0);
+ blocks_.resize(num_col_blocks - num_eliminate_blocks, 0);
for (int i = num_eliminate_blocks; i < num_col_blocks; ++i) {
- blocks[i - num_eliminate_blocks] = bs->cols[i].size;
+ blocks_[i - num_eliminate_blocks] = bs->cols[i].size;
}
set<pair<int, int> > block_pairs;
- for (int i = 0; i < blocks.size(); ++i) {
+ for (int i = 0; i < blocks_.size(); ++i) {
block_pairs.insert(make_pair(i, i));
}
@@ -220,15 +242,34 @@ void SparseSchurComplementSolver::InitStorage(
}
}
- set_lhs(new BlockRandomAccessSparseMatrix(blocks, block_pairs));
+ set_lhs(new BlockRandomAccessSparseMatrix(blocks_, block_pairs));
set_rhs(new double[lhs()->num_rows()]);
}
+bool SparseSchurComplementSolver::SolveReducedLinearSystem(double* solution) {
+ switch (options().sparse_linear_algebra_library) {
+ case SUITE_SPARSE:
+ return SolveReducedLinearSystemUsingSuiteSparse(solution);
+ case CX_SPARSE:
+ return SolveReducedLinearSystemUsingCXSparse(solution);
+ default:
+ LOG(FATAL) << "Unknown sparse linear algebra library : "
+ << options().sparse_linear_algebra_library;
+ }
+
+ LOG(FATAL) << "Unknown sparse linear algebra library : "
+ << options().sparse_linear_algebra_library;
+ return false;
+}
+
+#ifndef CERES_NO_SUITESPARSE
// Solve the system Sx = r, assuming that the matrix S is stored in a
// BlockRandomAccessSparseMatrix. The linear system is solved using
// CHOLMOD's sparse cholesky factorization routines.
-bool SparseSchurComplementSolver::SolveReducedLinearSystem(double* solution) {
- // Extract the TripletSparseMatrix that is used for actually storing S.
+bool SparseSchurComplementSolver::SolveReducedLinearSystemUsingSuiteSparse(
+ double* solution) {
+ const time_t start_time = time(NULL);
+
TripletSparseMatrix* tsm =
const_cast<TripletSparseMatrix*>(
down_cast<const BlockRandomAccessSparseMatrix*>(lhs())->matrix());
@@ -245,30 +286,38 @@ bool SparseSchurComplementSolver::SolveReducedLinearSystem(double* solution) {
// The matrix is symmetric, and the upper triangular part of the
// matrix contains the values.
cholmod_lhs->stype = 1;
+ const time_t lhs_time = time(NULL);
cholmod_dense* cholmod_rhs =
ss_.CreateDenseVector(const_cast<double*>(rhs()), num_rows, num_rows);
+ const time_t rhs_time = time(NULL);
// Symbolic factorization is computed if we don't already have one handy.
- if (symbolic_factor_ == NULL) {
- symbolic_factor_ = ss_.AnalyzeCholesky(cholmod_lhs);
+ if (factor_ == NULL) {
+ if (options().use_block_amd) {
+ factor_ = ss_.BlockAnalyzeCholesky(cholmod_lhs, blocks_, blocks_);
+ } else {
+ factor_ = ss_.AnalyzeCholesky(cholmod_lhs);
+ }
+
+ if (VLOG_IS_ON(2)) {
+ cholmod_print_common("Symbolic Analysis", ss_.mutable_cc());
+ }
}
+ CHECK_NOTNULL(factor_);
+
+ const time_t symbolic_time = time(NULL);
cholmod_dense* cholmod_solution =
- ss_.SolveCholesky(cholmod_lhs, symbolic_factor_, cholmod_rhs);
+ ss_.SolveCholesky(cholmod_lhs, factor_, cholmod_rhs);
+
+ const time_t solve_time = time(NULL);
ss_.Free(cholmod_lhs);
cholmod_lhs = NULL;
ss_.Free(cholmod_rhs);
cholmod_rhs = NULL;
- // If sparsity is not constant across calls, then reset the symbolic
- // factorization.
- if (!options().constant_sparsity) {
- ss_.Free(symbolic_factor_);
- symbolic_factor_ = NULL;
- }
-
if (cholmod_solution == NULL) {
LOG(ERROR) << "CHOLMOD solve failed.";
return false;
@@ -277,9 +326,63 @@ bool SparseSchurComplementSolver::SolveReducedLinearSystem(double* solution) {
VectorRef(solution, num_rows)
= VectorRef(static_cast<double*>(cholmod_solution->x), num_rows);
ss_.Free(cholmod_solution);
+ const time_t final_time = time(NULL);
+ VLOG(2) << "time: " << (final_time - start_time)
+ << " lhs : " << (lhs_time - start_time)
+ << " rhs: " << (rhs_time - lhs_time)
+ << " analyze: " << (symbolic_time - rhs_time)
+ << " factor_and_solve: " << (solve_time - symbolic_time)
+ << " cleanup: " << (final_time - solve_time);
return true;
}
+#else
+bool SparseSchurComplementSolver::SolveReducedLinearSystemUsingSuiteSparse(
+ double* solution) {
+ LOG(FATAL) << "No SuiteSparse support in Ceres.";
+ return false;
+}
#endif // CERES_NO_SUITESPARSE
+#ifndef CERES_NO_CXSPARSE
+// Solve the system Sx = r, assuming that the matrix S is stored in a
+// BlockRandomAccessSparseMatrix. The linear system is solved using
+// CXSparse's sparse cholesky factorization routines.
+bool SparseSchurComplementSolver::SolveReducedLinearSystemUsingCXSparse(
+ double* solution) {
+ // Extract the TripletSparseMatrix that is used for actually storing S.
+ TripletSparseMatrix* tsm =
+ const_cast<TripletSparseMatrix*>(
+ down_cast<const BlockRandomAccessSparseMatrix*>(lhs())->matrix());
+
+ const int num_rows = tsm->num_rows();
+
+ // The case where there are no f blocks, and the system is block
+ // diagonal.
+ if (num_rows == 0) {
+ return true;
+ }
+
+ cs_di* lhs = CHECK_NOTNULL(cxsparse_.CreateSparseMatrix(tsm));
+ VectorRef(solution, num_rows) = ConstVectorRef(rhs(), num_rows);
+
+ // Compute symbolic factorization if not available.
+ if (cxsparse_factor_ == NULL) {
+ cxsparse_factor_ = CHECK_NOTNULL(cxsparse_.AnalyzeCholesky(lhs));
+ }
+
+ // Solve the linear system.
+ bool ok = cxsparse_.SolveCholesky(lhs, cxsparse_factor_, solution);
+
+ cxsparse_.Free(lhs);
+ return ok;
+}
+#else
+bool SparseSchurComplementSolver::SolveReducedLinearSystemUsingCXSparse(
+ double* solution) {
+ LOG(FATAL) << "No CXSparse support in Ceres.";
+ return false;
+}
+#endif // CERES_NO_CXPARSE
+
} // namespace internal
} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.h b/extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.h
index 039bc09e3ce..ea1b3184c33 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/schur_complement_solver.h
@@ -31,9 +31,13 @@
#ifndef CERES_INTERNAL_SCHUR_COMPLEMENT_SOLVER_H_
#define CERES_INTERNAL_SCHUR_COMPLEMENT_SOLVER_H_
+#include <set>
+#include <utility>
+
#include "ceres/block_random_access_matrix.h"
#include "ceres/block_sparse_matrix.h"
#include "ceres/block_structure.h"
+#include "ceres/cxsparse.h"
#include "ceres/linear_solver.h"
#include "ceres/schur_eliminator.h"
#include "ceres/suitesparse.h"
@@ -128,7 +132,7 @@ class SchurComplementSolver : public BlockSparseMatrixBaseSolver {
scoped_ptr<BlockRandomAccessMatrix> lhs_;
scoped_array<double> rhs_;
- DISALLOW_COPY_AND_ASSIGN(SchurComplementSolver);
+ CERES_DISALLOW_COPY_AND_ASSIGN(SchurComplementSolver);
};
// Dense Cholesky factorization based solver.
@@ -142,10 +146,10 @@ class DenseSchurComplementSolver : public SchurComplementSolver {
virtual void InitStorage(const CompressedRowBlockStructure* bs);
virtual bool SolveReducedLinearSystem(double* solution);
- DISALLOW_COPY_AND_ASSIGN(DenseSchurComplementSolver);
+ CERES_DISALLOW_COPY_AND_ASSIGN(DenseSchurComplementSolver);
};
-#ifndef CERES_NO_SUITESPARSE
+
// Sparse Cholesky factorization based solver.
class SparseSchurComplementSolver : public SchurComplementSolver {
public:
@@ -155,26 +159,26 @@ class SparseSchurComplementSolver : public SchurComplementSolver {
private:
virtual void InitStorage(const CompressedRowBlockStructure* bs);
virtual bool SolveReducedLinearSystem(double* solution);
+ bool SolveReducedLinearSystemUsingSuiteSparse(double* solution);
+ bool SolveReducedLinearSystemUsingCXSparse(double* solution);
+ // Size of the blocks in the Schur complement.
+ vector<int> blocks_;
+#ifndef CERES_NO_SUITESPARSE
SuiteSparse ss_;
// Symbolic factorization of the reduced linear system. Precomputed
- // once and reused if constant_sparsity_ is true.
- cholmod_factor* symbolic_factor_;
- DISALLOW_COPY_AND_ASSIGN(SparseSchurComplementSolver);
-};
-#else // CERES_NO_SUITESPARSE
-class SparseSchurComplementSolver : public SchurComplementSolver {
- public:
- explicit SparseSchurComplementSolver(const LinearSolver::Options& options)
- : SchurComplementSolver(options) {
- LOG(FATAL) << "SPARSE_SCHUR is not available. Please "
- "build Ceres with SuiteSparse.";
- }
+ // once and reused in subsequent calls.
+ cholmod_factor* factor_;
+#endif // CERES_NO_SUITESPARSE
- virtual ~SparseSchurComplementSolver() {}
+#ifndef CERES_NO_CXSPARSE
+ CXSparse cxsparse_;
+ // Cached factorization
+ cs_dis* cxsparse_factor_;
+#endif // CERES_NO_CXSPARSE
+ CERES_DISALLOW_COPY_AND_ASSIGN(SparseSchurComplementSolver);
};
-#endif // CERES_NO_SUITESPARSE
} // namespace internal
} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/schur_eliminator_impl.h b/extern/libmv/third_party/ceres/internal/ceres/schur_eliminator_impl.h
index a388d005424..6120db9b009 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/schur_eliminator_impl.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/schur_eliminator_impl.h
@@ -188,7 +188,7 @@ Eliminate(const BlockSparseMatrixBase* A,
typename EigenTypes<kFBlockSize>::ConstVectorRef
diag(D + bs->cols[i].position, block_size);
- MutexLock l(&cell_info->m);
+ CeresMutexLock l(&cell_info->m);
MatrixRef m(cell_info->values, row_stride, col_stride);
m.block(r, c, block_size, block_size).diagonal()
+= diag.array().square().matrix();
@@ -387,7 +387,7 @@ UpdateRhs(const Chunk& chunk,
row.block.size, block_size);
const int block = block_id - num_eliminate_blocks_;
- MutexLock l(rhs_locks_[block]);
+ CeresMutexLock l(rhs_locks_[block]);
typename EigenTypes<kFBlockSize>::VectorRef
(rhs + lhs_row_layout_[block], block_size).noalias()
+= b.transpose() * sj;
@@ -523,7 +523,7 @@ ChunkOuterProduct(const CompressedRowBlockStructure* bs,
const typename EigenTypes<kEBlockSize, kFBlockSize>::ConstMatrixRef
b2(buffer + it2->second, e_block_size, block2_size);
- MutexLock l(&cell_info->m);
+ CeresMutexLock l(&cell_info->m);
MatrixRef m(cell_info->values, row_stride, col_stride);
// We explicitly construct a block object here instead of using
@@ -532,7 +532,29 @@ ChunkOuterProduct(const CompressedRowBlockStructure* bs,
// like the Matrix class does.
Eigen::Block<MatrixRef, kFBlockSize, kFBlockSize>
block(m, r, c, block1_size, block2_size);
- block.noalias() -= b1_transpose_inverse_ete * b2;
+#ifdef CERES_WORK_AROUND_ANDROID_NDK_COMPILER_BUG
+ // Removing the ".noalias()" annotation on the following statement is
+ // necessary to produce a correct build with the Android NDK, including
+ // versions 6, 7, 8, and 8b, when built with STLPort and the
+ // non-standalone toolchain (i.e. ndk-build). This appears to be a
+ // compiler bug; if the workaround is not in place, the line
+ //
+ // block.noalias() -= b1_transpose_inverse_ete * b2;
+ //
+ // gets compiled to
+ //
+ // block.noalias() += b1_transpose_inverse_ete * b2;
+ //
+ // which breaks schur elimination. Introducing a temporary by removing the
+ // .noalias() annotation causes the issue to disappear. Tracking this
+ // issue down was tricky, since the test suite doesn't run when built with
+ // the non-standalone toolchain.
+ //
+ // TODO(keir): Make a reproduction case for this and send it upstream.
+ block -= b1_transpose_inverse_ete * b2;
+#else
+ block.noalias() -= b1_transpose_inverse_ete * b2;
+#endif // CERES_WORK_AROUND_ANDROID_NDK_COMPILER_BUG
}
}
}
@@ -601,7 +623,7 @@ NoEBlockRowOuterProduct(const BlockSparseMatrixBase* A,
&r, &c,
&row_stride, &col_stride);
if (cell_info != NULL) {
- MutexLock l(&cell_info->m);
+ CeresMutexLock l(&cell_info->m);
MatrixRef m(cell_info->values, row_stride, col_stride);
m.block(r, c, block1_size, block1_size)
.selfadjointView<Eigen::Upper>()
@@ -621,7 +643,7 @@ NoEBlockRowOuterProduct(const BlockSparseMatrixBase* A,
}
const int block2_size = bs->cols[row.cells[j].block_id].size;
- MutexLock l(&cell_info->m);
+ CeresMutexLock l(&cell_info->m);
MatrixRef m(cell_info->values, row_stride, col_stride);
m.block(r, c, block1_size, block2_size).noalias() +=
b1.transpose() * ConstMatrixRef(row_values + row.cells[j].position,
@@ -660,7 +682,7 @@ EBlockRowOuterProduct(const BlockSparseMatrixBase* A,
continue;
}
- MutexLock l(&cell_info->m);
+ CeresMutexLock l(&cell_info->m);
MatrixRef m(cell_info->values, row_stride, col_stride);
Eigen::Block<MatrixRef, kFBlockSize, kFBlockSize>
@@ -687,7 +709,7 @@ EBlockRowOuterProduct(const BlockSparseMatrixBase* A,
row.block.size,
block2_size);
- MutexLock l(&cell_info->m);
+ CeresMutexLock l(&cell_info->m);
MatrixRef m(cell_info->values, row_stride, col_stride);
Eigen::Block<MatrixRef, kFBlockSize, kFBlockSize>
block(m, r, c, block1_size, block2_size);
diff --git a/extern/libmv/third_party/ceres/internal/ceres/schur_ordering.cc b/extern/libmv/third_party/ceres/internal/ceres/schur_ordering.cc
index c4fc1da3c2f..1cdff4e6dec 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/schur_ordering.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/schur_ordering.cc
@@ -30,25 +30,14 @@
#include "ceres/schur_ordering.h"
-#include <glog/logging.h>
#include "ceres/graph.h"
#include "ceres/graph_algorithms.h"
+#include "ceres/internal/scoped_ptr.h"
#include "ceres/map_util.h"
#include "ceres/parameter_block.h"
#include "ceres/program.h"
#include "ceres/residual_block.h"
-#include "ceres/internal/scoped_ptr.h"
-
-CERES_HASH_NAMESPACE_START
-
-// Allow us to hash pointers as if they were int's
-template<> struct hash< ::ceres::internal::ParameterBlock*> {
- size_t operator()(::ceres::internal::ParameterBlock* x) const {
- return reinterpret_cast<size_t>(x);
- }
-};
-
-CERES_HASH_NAMESPACE_END
+#include "glog/logging.h"
namespace ceres {
namespace internal {
@@ -59,8 +48,7 @@ int ComputeSchurOrdering(const Program& program,
scoped_ptr<Graph< ParameterBlock*> > graph(
CHECK_NOTNULL(CreateHessianGraph(program)));
- int independent_set_size =
- IndependentSetOrdering<ParameterBlock*>(*graph, ordering);
+ int independent_set_size = IndependentSetOrdering(*graph, ordering);
const vector<ParameterBlock*>& parameter_blocks = program.parameter_blocks();
// Add the excluded blocks to back of the ordering vector.
diff --git a/extern/libmv/third_party/ceres/internal/ceres/solver.cc b/extern/libmv/third_party/ceres/internal/ceres/solver.cc
index 77f04d1d918..66ca93283a1 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/solver.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/solver.cc
@@ -32,36 +32,32 @@
#include "ceres/solver.h"
#include <vector>
-#include "ceres/levenberg_marquardt.h"
+#include "ceres/problem.h"
+#include "ceres/problem_impl.h"
#include "ceres/program.h"
#include "ceres/solver_impl.h"
#include "ceres/stringprintf.h"
-#include "ceres/problem.h"
namespace ceres {
Solver::~Solver() {}
-// TODO(sameeragarwal): The timing code here should use a sub-second
-// timer.
+// TODO(sameeragarwal): Use subsecond timers.
void Solver::Solve(const Solver::Options& options,
Problem* problem,
Solver::Summary* summary) {
time_t start_time_seconds = time(NULL);
- internal::SolverImpl::Solve(options, problem, summary);
+ internal::ProblemImpl* problem_impl =
+ CHECK_NOTNULL(problem)->problem_impl_.get();
+ internal::SolverImpl::Solve(options, problem_impl, summary);
summary->total_time_in_seconds = time(NULL) - start_time_seconds;
- summary->preprocessor_time_in_seconds =
- summary->total_time_in_seconds - summary->minimizer_time_in_seconds;
}
void Solve(const Solver::Options& options,
Problem* problem,
Solver::Summary* summary) {
- time_t start_time_seconds = time(NULL);
- internal::SolverImpl::Solve(options, problem, summary);
- summary->total_time_in_seconds = time(NULL) - start_time_seconds;
- summary->preprocessor_time_in_seconds =
- summary->total_time_in_seconds - summary->minimizer_time_in_seconds;
+ Solver solver;
+ solver.Solve(options, problem, summary);
}
Solver::Summary::Summary()
@@ -75,6 +71,7 @@ Solver::Summary::Summary()
num_unsuccessful_steps(-1),
preprocessor_time_in_seconds(-1.0),
minimizer_time_in_seconds(-1.0),
+ postprocessor_time_in_seconds(-1.0),
total_time_in_seconds(-1.0),
num_parameter_blocks(-1),
num_parameters(-1),
@@ -93,7 +90,9 @@ Solver::Summary::Summary()
linear_solver_type_given(SPARSE_NORMAL_CHOLESKY),
linear_solver_type_used(SPARSE_NORMAL_CHOLESKY),
preconditioner_type(IDENTITY),
- ordering_type(NATURAL) {
+ ordering_type(NATURAL),
+ trust_region_strategy_type(LEVENBERG_MARQUARDT),
+ sparse_linear_algebra_library(SUITE_SPARSE) {
}
string Solver::Summary::BriefReport() const {
@@ -136,7 +135,7 @@ string Solver::Summary::FullReport() const {
num_parameters);
internal::StringAppendF(&report, "Residual blocks % 10d\n",
num_residual_blocks);
- internal::StringAppendF(&report, "Residual % 10d\n\n",
+ internal::StringAppendF(&report, "Residuals % 10d\n\n",
num_residuals);
} else {
internal::StringAppendF(&report, "%45s %21s\n", "Original", "Reduced");
@@ -183,10 +182,33 @@ string Solver::Summary::FullReport() const {
internal::StringAppendF(&report, "Threads: % 25d% 25d\n",
num_threads_given, num_threads_used);
- internal::StringAppendF(&report, "Linear Solver Threads:% 23d% 25d\n",
+ internal::StringAppendF(&report, "Linear solver threads % 23d% 25d\n",
num_linear_solver_threads_given,
num_linear_solver_threads_used);
+ if (linear_solver_type_used == SPARSE_NORMAL_CHOLESKY ||
+ linear_solver_type_used == SPARSE_SCHUR ||
+ (linear_solver_type_used == ITERATIVE_SCHUR &&
+ (preconditioner_type == SCHUR_JACOBI ||
+ preconditioner_type == CLUSTER_JACOBI ||
+ preconditioner_type == CLUSTER_TRIDIAGONAL))) {
+ internal::StringAppendF(&report, "\nSparse Linear Algebra Library %15s\n",
+ SparseLinearAlgebraLibraryTypeToString(
+ sparse_linear_algebra_library));
+ }
+
+ internal::StringAppendF(&report, "Trust Region Strategy %19s",
+ TrustRegionStrategyTypeToString(
+ trust_region_strategy_type));
+ if (trust_region_strategy_type == DOGLEG) {
+ if (dogleg_type == TRADITIONAL_DOGLEG) {
+ internal::StringAppendF(&report, " (TRADITIONAL)");
+ } else {
+ internal::StringAppendF(&report, " (SUBSPACE)");
+ }
+ }
+ internal::StringAppendF(&report, "\n");
+
if (termination_type == DID_NOT_RUN) {
CHECK(!error.empty())
diff --git a/extern/libmv/third_party/ceres/internal/ceres/solver_impl.cc b/extern/libmv/third_party/ceres/internal/ceres/solver_impl.cc
index ed07d9dc6d7..8ef5b98e35f 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/solver_impl.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/solver_impl.cc
@@ -30,40 +30,29 @@
#include "ceres/solver_impl.h"
+#include <cstdio>
#include <iostream> // NOLINT
#include <numeric>
#include "ceres/evaluator.h"
#include "ceres/gradient_checking_cost_function.h"
-#include "ceres/levenberg_marquardt.h"
+#include "ceres/iteration_callback.h"
+#include "ceres/levenberg_marquardt_strategy.h"
#include "ceres/linear_solver.h"
#include "ceres/map_util.h"
#include "ceres/minimizer.h"
#include "ceres/parameter_block.h"
+#include "ceres/problem.h"
#include "ceres/problem_impl.h"
#include "ceres/program.h"
#include "ceres/residual_block.h"
#include "ceres/schur_ordering.h"
#include "ceres/stringprintf.h"
-#include "ceres/iteration_callback.h"
-#include "ceres/problem.h"
+#include "ceres/trust_region_minimizer.h"
namespace ceres {
namespace internal {
namespace {
-void EvaluateCostAndResiduals(ProblemImpl* problem_impl,
- double* cost,
- vector<double>* residuals) {
- CHECK_NOTNULL(cost);
- Program* program = CHECK_NOTNULL(problem_impl)->mutable_program();
- if (residuals != NULL) {
- residuals->resize(program->NumResiduals());
- program->Evaluate(cost, &(*residuals)[0]);
- } else {
- program->Evaluate(cost, NULL);
- }
-}
-
// Callback for updating the user's parameter blocks. Updates are only
// done if the step is successful.
class StateUpdatingCallback : public IterationCallback {
@@ -96,7 +85,7 @@ class LoggingCallback : public IterationCallback {
CallbackReturnType operator()(const IterationSummary& summary) {
const char* kReportRowFormat =
"% 4d: f:% 8e d:% 3.2e g:% 3.2e h:% 3.2e "
- "rho:% 3.2e mu:% 3.2e li:% 3d";
+ "rho:% 3.2e mu:% 3.2e li:% 3d it:% 3.2e tt:% 3.2e";
string output = StringPrintf(kReportRowFormat,
summary.iteration,
summary.cost,
@@ -104,8 +93,10 @@ class LoggingCallback : public IterationCallback {
summary.gradient_max_norm,
summary.step_norm,
summary.relative_decrease,
- summary.mu,
- summary.linear_solver_iterations);
+ summary.trust_region_radius,
+ summary.linear_solver_iterations,
+ summary.iteration_time_in_seconds,
+ summary.cumulative_time_in_seconds);
if (log_to_stdout_) {
cout << output << endl;
} else {
@@ -118,44 +109,101 @@ class LoggingCallback : public IterationCallback {
const bool log_to_stdout_;
};
+// Basic callback to record the execution of the solver to a file for
+// offline analysis.
+class FileLoggingCallback : public IterationCallback {
+ public:
+ explicit FileLoggingCallback(const string& filename)
+ : fptr_(NULL) {
+ fptr_ = fopen(filename.c_str(), "w");
+ CHECK_NOTNULL(fptr_);
+ }
+
+ virtual ~FileLoggingCallback() {
+ if (fptr_ != NULL) {
+ fclose(fptr_);
+ }
+ }
+
+ virtual CallbackReturnType operator()(const IterationSummary& summary) {
+ fprintf(fptr_,
+ "%4d %e %e\n",
+ summary.iteration,
+ summary.cost,
+ summary.cumulative_time_in_seconds);
+ return SOLVER_CONTINUE;
+ }
+ private:
+ FILE* fptr_;
+};
+
} // namespace
void SolverImpl::Minimize(const Solver::Options& options,
Program* program,
Evaluator* evaluator,
LinearSolver* linear_solver,
- double* initial_parameters,
- double* final_parameters,
+ double* parameters,
Solver::Summary* summary) {
Minimizer::Options minimizer_options(options);
+ // TODO(sameeragarwal): Add support for logging the configuration
+ // and more detailed stats.
+ scoped_ptr<IterationCallback> file_logging_callback;
+ if (!options.solver_log.empty()) {
+ file_logging_callback.reset(new FileLoggingCallback(options.solver_log));
+ minimizer_options.callbacks.insert(minimizer_options.callbacks.begin(),
+ file_logging_callback.get());
+ }
+
LoggingCallback logging_callback(options.minimizer_progress_to_stdout);
if (options.logging_type != SILENT) {
- minimizer_options.callbacks.push_back(&logging_callback);
+ minimizer_options.callbacks.insert(minimizer_options.callbacks.begin(),
+ &logging_callback);
}
- StateUpdatingCallback updating_callback(program, initial_parameters);
+ StateUpdatingCallback updating_callback(program, parameters);
if (options.update_state_every_iteration) {
- minimizer_options.callbacks.push_back(&updating_callback);
- }
-
- LevenbergMarquardt levenberg_marquardt;
-
- time_t start_minimizer_time_seconds = time(NULL);
- levenberg_marquardt.Minimize(minimizer_options,
- evaluator,
- linear_solver,
- initial_parameters,
- final_parameters,
- summary);
- summary->minimizer_time_in_seconds =
- time(NULL) - start_minimizer_time_seconds;
+ // This must get pushed to the front of the callbacks so that it is run
+ // before any of the user callbacks.
+ minimizer_options.callbacks.insert(minimizer_options.callbacks.begin(),
+ &updating_callback);
+ }
+
+ minimizer_options.evaluator = evaluator;
+ scoped_ptr<SparseMatrix> jacobian(evaluator->CreateJacobian());
+ minimizer_options.jacobian = jacobian.get();
+
+ TrustRegionStrategy::Options trust_region_strategy_options;
+ trust_region_strategy_options.linear_solver = linear_solver;
+ trust_region_strategy_options.initial_radius =
+ options.initial_trust_region_radius;
+ trust_region_strategy_options.max_radius = options.max_trust_region_radius;
+ trust_region_strategy_options.lm_min_diagonal = options.lm_min_diagonal;
+ trust_region_strategy_options.lm_max_diagonal = options.lm_max_diagonal;
+ trust_region_strategy_options.trust_region_strategy_type =
+ options.trust_region_strategy_type;
+ trust_region_strategy_options.dogleg_type = options.dogleg_type;
+ scoped_ptr<TrustRegionStrategy> strategy(
+ TrustRegionStrategy::Create(trust_region_strategy_options));
+ minimizer_options.trust_region_strategy = strategy.get();
+
+ TrustRegionMinimizer minimizer;
+ time_t minimizer_start_time = time(NULL);
+ minimizer.Minimize(minimizer_options, parameters, summary);
+ summary->minimizer_time_in_seconds = time(NULL) - minimizer_start_time;
}
void SolverImpl::Solve(const Solver::Options& original_options,
- Problem* problem,
+ ProblemImpl* original_problem_impl,
Solver::Summary* summary) {
+ time_t solver_start_time = time(NULL);
Solver::Options options(original_options);
+ Program* original_program = original_problem_impl->mutable_program();
+ ProblemImpl* problem_impl = original_problem_impl;
+ // Reset the summary object to its default values.
+ *CHECK_NOTNULL(summary) = Solver::Summary();
+
#ifndef CERES_USE_OPENMP
if (options.num_threads > 1) {
@@ -174,8 +222,6 @@ void SolverImpl::Solve(const Solver::Options& original_options,
}
#endif
- // Reset the summary object to its default values;
- *CHECK_NOTNULL(summary) = Solver::Summary();
summary->linear_solver_type_given = options.linear_solver_type;
summary->num_eliminate_blocks_given = original_options.num_eliminate_blocks;
summary->num_threads_given = original_options.num_threads;
@@ -183,32 +229,38 @@ void SolverImpl::Solve(const Solver::Options& original_options,
original_options.num_linear_solver_threads;
summary->ordering_type = original_options.ordering_type;
- ProblemImpl* problem_impl = CHECK_NOTNULL(problem)->problem_impl_.get();
-
summary->num_parameter_blocks = problem_impl->NumParameterBlocks();
summary->num_parameters = problem_impl->NumParameters();
summary->num_residual_blocks = problem_impl->NumResidualBlocks();
summary->num_residuals = problem_impl->NumResiduals();
summary->num_threads_used = options.num_threads;
-
- // Evaluate the initial cost and residual vector (if needed). The
- // initial cost needs to be computed on the original unpreprocessed
- // problem, as it is used to determine the value of the "fixed" part
- // of the objective function after the problem has undergone
- // reduction. Also the initial residuals are in the order in which
- // the user added the ResidualBlocks to the optimization problem.
- EvaluateCostAndResiduals(problem_impl,
- &summary->initial_cost,
- options.return_initial_residuals
- ? &summary->initial_residuals
- : NULL);
+ summary->sparse_linear_algebra_library =
+ options.sparse_linear_algebra_library;
+ summary->trust_region_strategy_type = options.trust_region_strategy_type;
+ summary->dogleg_type = options.dogleg_type;
+
+ // Evaluate the initial cost, residual vector and the jacobian
+ // matrix if requested by the user. The initial cost needs to be
+ // computed on the original unpreprocessed problem, as it is used to
+ // determine the value of the "fixed" part of the objective function
+ // after the problem has undergone reduction.
+ Evaluator::Evaluate(
+ original_program,
+ options.num_threads,
+ &(summary->initial_cost),
+ options.return_initial_residuals ? &summary->initial_residuals : NULL,
+ options.return_initial_gradient ? &summary->initial_gradient : NULL,
+ options.return_initial_jacobian ? &summary->initial_jacobian : NULL);
+ original_program->SetParameterBlockStatePtrsToUserStatePtrs();
// If the user requests gradient checking, construct a new
// ProblemImpl by wrapping the CostFunctions of problem_impl inside
// GradientCheckingCostFunction and replacing problem_impl with
// gradient_checking_problem_impl.
scoped_ptr<ProblemImpl> gradient_checking_problem_impl;
+ // Save the original problem impl so we don't use the gradient
+ // checking one when computing the residuals.
if (options.check_gradients) {
VLOG(1) << "Checking Gradients";
gradient_checking_problem_impl.reset(
@@ -224,8 +276,10 @@ void SolverImpl::Solve(const Solver::Options& original_options,
// Create the three objects needed to minimize: the transformed program, the
// evaluator, and the linear solver.
- scoped_ptr<Program> reduced_program(
- CreateReducedProgram(&options, problem_impl, &summary->error));
+ scoped_ptr<Program> reduced_program(CreateReducedProgram(&options,
+ problem_impl,
+ &summary->fixed_cost,
+ &summary->error));
if (reduced_program == NULL) {
return;
}
@@ -259,19 +313,21 @@ void SolverImpl::Solve(const Solver::Options& original_options,
}
// The optimizer works on contiguous parameter vectors; allocate some.
- Vector initial_parameters(reduced_program->NumParameters());
- Vector optimized_parameters(reduced_program->NumParameters());
+ Vector parameters(reduced_program->NumParameters());
// Collect the discontiguous parameters into a contiguous state vector.
- reduced_program->ParameterBlocksToStateVector(&initial_parameters[0]);
+ reduced_program->ParameterBlocksToStateVector(parameters.data());
+
+ time_t minimizer_start_time = time(NULL);
+ summary->preprocessor_time_in_seconds =
+ minimizer_start_time - solver_start_time;
// Run the optimization.
Minimize(options,
reduced_program.get(),
evaluator.get(),
linear_solver.get(),
- initial_parameters.data(),
- optimized_parameters.data(),
+ parameters.data(),
summary);
// If the user aborted mid-optimization or the optimization
@@ -282,30 +338,45 @@ void SolverImpl::Solve(const Solver::Options& original_options,
return;
}
+ time_t post_process_start_time = time(NULL);
+
// Push the contiguous optimized parameters back to the user's parameters.
- reduced_program->StateVectorToParameterBlocks(&optimized_parameters[0]);
+ reduced_program->StateVectorToParameterBlocks(parameters.data());
reduced_program->CopyParameterBlockStateToUserState();
- // Return the final cost and residuals for the original problem.
- EvaluateCostAndResiduals(problem->problem_impl_.get(),
- &summary->final_cost,
- options.return_final_residuals
- ? &summary->final_residuals
- : NULL);
-
+ // Evaluate the final cost, residual vector and the jacobian
+ // matrix if requested by the user.
+ Evaluator::Evaluate(
+ original_program,
+ options.num_threads,
+ &summary->final_cost,
+ options.return_final_residuals ? &summary->final_residuals : NULL,
+ options.return_final_gradient ? &summary->final_gradient : NULL,
+ options.return_final_jacobian ? &summary->final_jacobian : NULL);
+
+ // Ensure the program state is set to the user parameters on the way out.
+ original_program->SetParameterBlockStatePtrsToUserStatePtrs();
// Stick a fork in it, we're done.
- return;
+ summary->postprocessor_time_in_seconds = time(NULL) - post_process_start_time;
}
// Strips varying parameters and residuals, maintaining order, and updating
// num_eliminate_blocks.
bool SolverImpl::RemoveFixedBlocksFromProgram(Program* program,
int* num_eliminate_blocks,
+ double* fixed_cost,
string* error) {
int original_num_eliminate_blocks = *num_eliminate_blocks;
vector<ParameterBlock*>* parameter_blocks =
program->mutable_parameter_blocks();
+ scoped_array<double> residual_block_evaluate_scratch;
+ if (fixed_cost != NULL) {
+ residual_block_evaluate_scratch.reset(
+ new double[program->MaxScratchDoublesNeededForEvaluate()]);
+ *fixed_cost = 0.0;
+ }
+
// Mark all the parameters as unused. Abuse the index member of the parameter
// blocks for the marking.
for (int i = 0; i < parameter_blocks->size(); ++i) {
@@ -335,6 +406,17 @@ bool SolverImpl::RemoveFixedBlocksFromProgram(Program* program,
if (!all_constant) {
(*residual_blocks)[j++] = (*residual_blocks)[i];
+ } else if (fixed_cost != NULL) {
+ // The residual is constant and will be removed, so its cost is
+ // added to the variable fixed_cost.
+ double cost = 0.0;
+ if (!residual_block->Evaluate(
+ &cost, NULL, NULL, residual_block_evaluate_scratch.get())) {
+ *error = StringPrintf("Evaluation of the residual %d failed during "
+ "removal of fixed residual blocks.", i);
+ return false;
+ }
+ *fixed_cost += cost;
}
}
residual_blocks->resize(j);
@@ -367,6 +449,7 @@ bool SolverImpl::RemoveFixedBlocksFromProgram(Program* program,
Program* SolverImpl::CreateReducedProgram(Solver::Options* options,
ProblemImpl* problem_impl,
+ double* fixed_cost,
string* error) {
Program* original_program = problem_impl->mutable_program();
scoped_ptr<Program> transformed_program(new Program(*original_program));
@@ -397,6 +480,7 @@ Program* SolverImpl::CreateReducedProgram(Solver::Options* options,
if (!RemoveFixedBlocksFromProgram(transformed_program.get(),
&num_eliminate_blocks,
+ fixed_cost,
error)) {
return NULL;
}
@@ -431,13 +515,34 @@ Program* SolverImpl::CreateReducedProgram(Solver::Options* options,
LinearSolver* SolverImpl::CreateLinearSolver(Solver::Options* options,
string* error) {
+ if (options->trust_region_strategy_type == DOGLEG) {
+ if (options->linear_solver_type == ITERATIVE_SCHUR ||
+ options->linear_solver_type == CGNR) {
+ *error = "DOGLEG only supports exact factorization based linear "
+ "solvers. If you want to use an iterative solver please "
+ "use LEVENBERG_MARQUARDT as the trust_region_strategy_type";
+ return NULL;
+ }
+ }
+
#ifdef CERES_NO_SUITESPARSE
- if (options->linear_solver_type == SPARSE_NORMAL_CHOLESKY) {
- *error = "Can't use SPARSE_NORMAL_CHOLESKY because SuiteSparse was not "
- "enabled when Ceres was built.";
+ if (options->linear_solver_type == SPARSE_NORMAL_CHOLESKY &&
+ options->sparse_linear_algebra_library == SUITE_SPARSE) {
+ *error = "Can't use SPARSE_NORMAL_CHOLESKY with SUITESPARSE because "
+ "SuiteSparse was not enabled when Ceres was built.";
+ return NULL;
+ }
+#endif
+
+#ifdef CERES_NO_CXSPARSE
+ if (options->linear_solver_type == SPARSE_NORMAL_CHOLESKY &&
+ options->sparse_linear_algebra_library == CX_SPARSE) {
+ *error = "Can't use SPARSE_NORMAL_CHOLESKY with CXSPARSE because "
+ "CXSparse was not enabled when Ceres was built.";
return NULL;
}
-#endif // CERES_NO_SUITESPARSE
+#endif
+
if (options->linear_solver_max_num_iterations <= 0) {
*error = "Solver::Options::linear_solver_max_num_iterations is 0.";
@@ -455,30 +560,32 @@ LinearSolver* SolverImpl::CreateLinearSolver(Solver::Options* options,
}
LinearSolver::Options linear_solver_options;
- linear_solver_options.constant_sparsity = true;
linear_solver_options.min_num_iterations =
options->linear_solver_min_num_iterations;
linear_solver_options.max_num_iterations =
options->linear_solver_max_num_iterations;
linear_solver_options.type = options->linear_solver_type;
linear_solver_options.preconditioner_type = options->preconditioner_type;
+ linear_solver_options.sparse_linear_algebra_library =
+ options->sparse_linear_algebra_library;
+ linear_solver_options.use_block_amd = options->use_block_amd;
#ifdef CERES_NO_SUITESPARSE
if (linear_solver_options.preconditioner_type == SCHUR_JACOBI) {
*error = "SCHUR_JACOBI preconditioner not suppored. Please build Ceres "
- "with SuiteSparse support";
+ "with SuiteSparse support.";
return NULL;
}
if (linear_solver_options.preconditioner_type == CLUSTER_JACOBI) {
*error = "CLUSTER_JACOBI preconditioner not suppored. Please build Ceres "
- "with SuiteSparse support";
+ "with SuiteSparse support.";
return NULL;
}
if (linear_solver_options.preconditioner_type == CLUSTER_TRIDIAGONAL) {
*error = "CLUSTER_TRIDIAGONAL preconditioner not suppored. Please build "
- "Ceres with SuiteSparse support";
+ "Ceres with SuiteSparse support.";
return NULL;
}
#endif
@@ -489,23 +596,23 @@ LinearSolver* SolverImpl::CreateLinearSolver(Solver::Options* options,
if ((linear_solver_options.num_eliminate_blocks == 0) &&
IsSchurType(linear_solver_options.type)) {
-#ifndef CERES_NO_SUITESPARSE
+#if defined(CERES_NO_SUITESPARSE) && defined(CERES_NO_CXSPARSE)
+ LOG(INFO) << "No elimination block remaining switching to DENSE_QR.";
+ linear_solver_options.type = DENSE_QR;
+#else
LOG(INFO) << "No elimination block remaining "
<< "switching to SPARSE_NORMAL_CHOLESKY.";
linear_solver_options.type = SPARSE_NORMAL_CHOLESKY;
-#else
- LOG(INFO) << "No elimination block remaining switching to DENSE_QR.";
- linear_solver_options.type = DENSE_QR;
-#endif // CERES_NO_SUITESPARSE
+#endif
}
-#ifdef CERES_NO_SUITESPARSE
+#if defined(CERES_NO_SUITESPARSE) && defined(CERES_NO_CXSPARSE)
if (linear_solver_options.type == SPARSE_SCHUR) {
- *error = "Can't use SPARSE_SCHUR because SuiteSparse was not "
- "enabled when Ceres was built.";
+ *error = "Can't use SPARSE_SCHUR because neither SuiteSparse nor"
+ "CXSparse was enabled when Ceres was compiled.";
return NULL;
}
-#endif // CERES_NO_SUITESPARSE
+#endif
// The matrix used for storing the dense Schur complement has a
// single lock guarding the whole matrix. Running the
@@ -578,15 +685,18 @@ bool SolverImpl::ApplyUserOrdering(const ProblemImpl& problem_impl,
// Find the minimum index of any parameter block to the given residual.
// Parameter blocks that have indices greater than num_eliminate_blocks are
// considered to have an index equal to num_eliminate_blocks.
-int MinParameterBlock(const ResidualBlock* residual_block,
- int num_eliminate_blocks) {
+static int MinParameterBlock(const ResidualBlock* residual_block,
+ int num_eliminate_blocks) {
int min_parameter_block_position = num_eliminate_blocks;
for (int i = 0; i < residual_block->NumParameterBlocks(); ++i) {
ParameterBlock* parameter_block = residual_block->parameter_blocks()[i];
- DCHECK_NE(parameter_block->index(), -1)
- << "Did you forget to call Program::SetParameterOffsetsAndIndex()?";
- min_parameter_block_position = std::min(parameter_block->index(),
- min_parameter_block_position);
+ if (!parameter_block->IsConstant()) {
+ CHECK_NE(parameter_block->index(), -1)
+ << "Did you forget to call Program::SetParameterOffsetsAndIndex()? "
+ << "This is a Ceres bug; please contact the developers!";
+ min_parameter_block_position = std::min(parameter_block->index(),
+ min_parameter_block_position);
+ }
}
return min_parameter_block_position;
}
diff --git a/extern/libmv/third_party/ceres/internal/ceres/solver_impl.h b/extern/libmv/third_party/ceres/internal/ceres/solver_impl.h
index 957ebcc65df..11b44de6f42 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/solver_impl.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/solver_impl.h
@@ -31,6 +31,9 @@
#ifndef CERES_INTERNAL_SOLVER_IMPL_H_
#define CERES_INTERNAL_SOLVER_IMPL_H_
+#include <string>
+#include <vector>
+#include "ceres/internal/port.h"
#include "ceres/solver.h"
namespace ceres {
@@ -46,15 +49,18 @@ class SolverImpl {
// Mirrors the interface in solver.h, but exposes implementation
// details for testing internally.
static void Solve(const Solver::Options& options,
- Problem* problem,
+ ProblemImpl* problem_impl,
Solver::Summary* summary);
// Create the transformed Program, which has all the fixed blocks
// and residuals eliminated, and in the case of automatic schur
// ordering, has the E blocks first in the resulting program, with
// options.num_eliminate_blocks set appropriately.
+ // If fixed_cost is not NULL, the residual blocks that are removed
+ // are evaluated and the sum of their cost is returned in fixed_cost.
static Program* CreateReducedProgram(Solver::Options* options,
ProblemImpl* problem_impl,
+ double* fixed_cost,
string* error);
// Create the appropriate linear solver, taking into account any
@@ -92,16 +98,18 @@ class SolverImpl {
Program* program,
Evaluator* evaluator,
LinearSolver* linear_solver,
- double* initial_parameters,
- double* final_parameters,
+ double* parameters,
Solver::Summary* summary);
// Remove the fixed or unused parameter blocks and residuals
// depending only on fixed parameters from the problem. Also updates
// num_eliminate_blocks, since removed parameters changes the point
// at which the eliminated blocks is valid.
+ // If fixed_cost is not NULL, the residual blocks that are removed
+ // are evaluated and the sum of their cost is returned in fixed_cost.
static bool RemoveFixedBlocksFromProgram(Program* program,
int* num_eliminate_blocks,
+ double* fixed_cost,
string* error);
};
diff --git a/extern/libmv/third_party/ceres/internal/ceres/sparse_matrix.h b/extern/libmv/third_party/ceres/internal/ceres/sparse_matrix.h
index 562210dfec8..1b19f887946 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/sparse_matrix.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/sparse_matrix.h
@@ -86,7 +86,7 @@ class SparseMatrix : public LinearOperator {
// sparse matrix.
virtual void ToDenseMatrix(Matrix* dense_matrix) const = 0;
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
// Dump the sparse matrix to a proto. Destroys the contents of proto.
virtual void ToProto(SparseMatrixProto* proto) const = 0;
#endif
diff --git a/extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.cc b/extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.cc
index 59222dc374d..9e00b4402dc 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.cc
@@ -28,13 +28,16 @@
//
// Author: sameeragarwal@google.com (Sameer Agarwal)
-#ifndef CERES_NO_SUITESPARSE
-
#include "ceres/sparse_normal_cholesky_solver.h"
#include <algorithm>
#include <cstring>
#include <ctime>
+
+#ifndef CERES_NO_CXSPARSE
+#include "cs.h"
+#endif
+
#include "ceres/compressed_row_sparse_matrix.h"
#include "ceres/linear_solver.h"
#include "ceres/suitesparse.h"
@@ -48,13 +51,30 @@ namespace internal {
SparseNormalCholeskySolver::SparseNormalCholeskySolver(
const LinearSolver::Options& options)
- : options_(options), symbolic_factor_(NULL) {}
+ : options_(options) {
+#ifndef CERES_NO_SUITESPARSE
+ factor_ = NULL;
+#endif
+
+#ifndef CERES_NO_CXSPARSE
+ cxsparse_factor_ = NULL;
+#endif // CERES_NO_CXSPARSE
+}
SparseNormalCholeskySolver::~SparseNormalCholeskySolver() {
- if (symbolic_factor_ != NULL) {
- ss_.Free(symbolic_factor_);
- symbolic_factor_ = NULL;
+#ifndef CERES_NO_SUITESPARSE
+ if (factor_ != NULL) {
+ ss_.Free(factor_);
+ factor_ = NULL;
}
+#endif
+
+#ifndef CERES_NO_CXSPARSE
+ if (cxsparse_factor_ != NULL) {
+ cxsparse_.Free(cxsparse_factor_);
+ cxsparse_factor_ = NULL;
+ }
+#endif // CERES_NO_CXSPARSE
}
LinearSolver::Summary SparseNormalCholeskySolver::SolveImpl(
@@ -62,6 +82,93 @@ LinearSolver::Summary SparseNormalCholeskySolver::SolveImpl(
const double* b,
const LinearSolver::PerSolveOptions& per_solve_options,
double * x) {
+ switch (options_.sparse_linear_algebra_library) {
+ case SUITE_SPARSE:
+ return SolveImplUsingSuiteSparse(A, b, per_solve_options, x);
+ case CX_SPARSE:
+ return SolveImplUsingCXSparse(A, b, per_solve_options, x);
+ default:
+ LOG(FATAL) << "Unknown sparse linear algebra library : "
+ << options_.sparse_linear_algebra_library;
+ }
+
+ LOG(FATAL) << "Unknown sparse linear algebra library : "
+ << options_.sparse_linear_algebra_library;
+ return LinearSolver::Summary();
+}
+
+#ifndef CERES_NO_CXSPARSE
+LinearSolver::Summary SparseNormalCholeskySolver::SolveImplUsingCXSparse(
+ CompressedRowSparseMatrix* A,
+ const double* b,
+ const LinearSolver::PerSolveOptions& per_solve_options,
+ double * x) {
+ LinearSolver::Summary summary;
+ summary.num_iterations = 1;
+ const int num_cols = A->num_cols();
+ Vector Atb = Vector::Zero(num_cols);
+ A->LeftMultiply(b, Atb.data());
+
+ if (per_solve_options.D != NULL) {
+ // Temporarily append a diagonal block to the A matrix, but undo
+ // it before returning the matrix to the user.
+ CompressedRowSparseMatrix D(per_solve_options.D, num_cols);
+ A->AppendRows(D);
+ }
+
+ VectorRef(x, num_cols).setZero();
+
+ // Wrap the augmented Jacobian in a compressed sparse column matrix.
+ cs_di At = cxsparse_.CreateSparseMatrixTransposeView(A);
+
+ // Compute the normal equations. J'J delta = J'f and solve them
+ // using a sparse Cholesky factorization. Notice that when compared
+ // to SuiteSparse we have to explicitly compute the transpose of Jt,
+ // and then the normal equations before they can be
+ // factorized. CHOLMOD/SuiteSparse on the other hand can just work
+ // off of Jt to compute the Cholesky factorization of the normal
+ // equations.
+ cs_di* A2 = cs_transpose(&At, 1);
+ cs_di* AtA = cs_multiply(&At,A2);
+
+ cxsparse_.Free(A2);
+ if (per_solve_options.D != NULL) {
+ A->DeleteRows(num_cols);
+ }
+
+ // Compute symbolic factorization if not available.
+ if (cxsparse_factor_ == NULL) {
+ cxsparse_factor_ = CHECK_NOTNULL(cxsparse_.AnalyzeCholesky(AtA));
+ }
+
+ // Solve the linear system.
+ if (cxsparse_.SolveCholesky(AtA, cxsparse_factor_, Atb.data())) {
+ VectorRef(x, Atb.rows()) = Atb;
+ summary.termination_type = TOLERANCE;
+ }
+
+ cxsparse_.Free(AtA);
+ return summary;
+}
+#else
+LinearSolver::Summary SparseNormalCholeskySolver::SolveImplUsingCXSparse(
+ CompressedRowSparseMatrix* A,
+ const double* b,
+ const LinearSolver::PerSolveOptions& per_solve_options,
+ double * x) {
+ LOG(FATAL) << "No CXSparse support in Ceres.";
+
+ // Unreachable but MSVC does not know this.
+ return LinearSolver::Summary();
+}
+#endif
+
+#ifndef CERES_NO_SUITESPARSE
+LinearSolver::Summary SparseNormalCholeskySolver::SolveImplUsingSuiteSparse(
+ CompressedRowSparseMatrix* A,
+ const double* b,
+ const LinearSolver::PerSolveOptions& per_solve_options,
+ double * x) {
const time_t start_time = time(NULL);
const int num_cols = A->num_cols();
@@ -84,13 +191,25 @@ LinearSolver::Summary SparseNormalCholeskySolver::SolveImpl(
cholmod_dense* rhs = ss_.CreateDenseVector(Atb.data(), num_cols, num_cols);
const time_t init_time = time(NULL);
- if (symbolic_factor_ == NULL) {
- symbolic_factor_ = CHECK_NOTNULL(ss_.AnalyzeCholesky(lhs.get()));
+ if (factor_ == NULL) {
+ if (options_.use_block_amd) {
+ factor_ = ss_.BlockAnalyzeCholesky(lhs.get(),
+ A->col_blocks(),
+ A->row_blocks());
+ } else {
+ factor_ = ss_.AnalyzeCholesky(lhs.get());
+ }
+
+ if (VLOG_IS_ON(2)) {
+ cholmod_print_common("Symbolic Analysis", ss_.mutable_cc());
+ }
}
+ CHECK_NOTNULL(factor_);
+
const time_t symbolic_time = time(NULL);
- cholmod_dense* sol = ss_.SolveCholesky(lhs.get(), symbolic_factor_, rhs);
+ cholmod_dense* sol = ss_.SolveCholesky(lhs.get(), factor_, rhs);
const time_t solve_time = time(NULL);
ss_.Free(rhs);
@@ -100,11 +219,6 @@ LinearSolver::Summary SparseNormalCholeskySolver::SolveImpl(
A->DeleteRows(num_cols);
}
- if (!options_.constant_sparsity) {
- ss_.Free(symbolic_factor_);
- symbolic_factor_ = NULL;
- }
-
summary.num_iterations = 1;
if (sol != NULL) {
memcpy(x, sol->x, num_cols * sizeof(*x));
@@ -115,15 +229,25 @@ LinearSolver::Summary SparseNormalCholeskySolver::SolveImpl(
}
const time_t cleanup_time = time(NULL);
- VLOG(2) << "time (sec) total: " << cleanup_time - start_time
- << " init: " << init_time - start_time
- << " symbolic: " << symbolic_time - init_time
- << " solve: " << solve_time - symbolic_time
- << " cleanup: " << cleanup_time - solve_time;
+ VLOG(2) << "time (sec) total: " << (cleanup_time - start_time)
+ << " init: " << (init_time - start_time)
+ << " symbolic: " << (symbolic_time - init_time)
+ << " solve: " << (solve_time - symbolic_time)
+ << " cleanup: " << (cleanup_time - solve_time);
return summary;
}
+#else
+LinearSolver::Summary SparseNormalCholeskySolver::SolveImplUsingSuiteSparse(
+ CompressedRowSparseMatrix* A,
+ const double* b,
+ const LinearSolver::PerSolveOptions& per_solve_options,
+ double * x) {
+ LOG(FATAL) << "No SuiteSparse support in Ceres.";
+
+ // Unreachable but MSVC does not know this.
+ return LinearSolver::Summary();
+}
+#endif
} // namespace internal
} // namespace ceres
-
-#endif // CERES_NO_SUITESPARSE
diff --git a/extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.h b/extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.h
index ce1d6d285be..40d9e0a0327 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/sparse_normal_cholesky_solver.h
@@ -34,13 +34,10 @@
#ifndef CERES_INTERNAL_SPARSE_NORMAL_CHOLESKY_SOLVER_H_
#define CERES_INTERNAL_SPARSE_NORMAL_CHOLESKY_SOLVER_H_
-#ifndef CERES_NO_SUITESPARSE
-
-#include "cholmod.h"
-#include "cholmod_core.h"
+#include "ceres/cxsparse.h"
#include "ceres/linear_solver.h"
-#include "ceres/suitesparse.h"
#include "ceres/internal/macros.h"
+#include "ceres/suitesparse.h"
namespace ceres {
namespace internal {
@@ -61,17 +58,36 @@ class SparseNormalCholeskySolver : public CompressedRowSparseMatrixSolver {
const LinearSolver::PerSolveOptions& options,
double* x);
- const LinearSolver::Options options_;
+ LinearSolver::Summary SolveImplUsingSuiteSparse(
+ CompressedRowSparseMatrix* A,
+ const double* b,
+ const LinearSolver::PerSolveOptions& options,
+ double* x);
+
+ // Crashes if CSparse is not installed.
+ LinearSolver::Summary SolveImplUsingCXSparse(
+ CompressedRowSparseMatrix* A,
+ const double* b,
+ const LinearSolver::PerSolveOptions& options,
+ double* x);
+
+#ifndef CERES_NO_SUITESPARSE
SuiteSparse ss_;
+ // Cached factorization
+ cholmod_factor* factor_;
+#endif // CERES_NO_SUITESPARSE
+#ifndef CERES_NO_CXSPARSE
+ CXSparse cxsparse_;
// Cached factorization
- cholmod_factor* symbolic_factor_;
- DISALLOW_COPY_AND_ASSIGN(SparseNormalCholeskySolver);
+ cs_dis* cxsparse_factor_;
+#endif // CERES_NO_CXSPARSE
+
+ const LinearSolver::Options options_;
+ CERES_DISALLOW_COPY_AND_ASSIGN(SparseNormalCholeskySolver);
};
} // namespace internal
} // namespace ceres
-#endif // CERES_NO_SUITESPARSE
-
#endif // CERES_INTERNAL_SPARSE_NORMAL_CHOLESKY_SOLVER_H_
diff --git a/extern/libmv/third_party/ceres/internal/ceres/split.cc b/extern/libmv/third_party/ceres/internal/ceres/split.cc
index 4fa1bd468b9..c65c8a5bb5d 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/split.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/split.cc
@@ -31,6 +31,7 @@
#include <string>
#include <vector>
#include <iterator>
+#include "ceres/split.h"
#include "ceres/internal/port.h"
namespace ceres {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/split.h b/extern/libmv/third_party/ceres/internal/ceres/split.h
new file mode 100644
index 00000000000..ec579e974da
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/split.h
@@ -0,0 +1,21 @@
+// Copyright 2011 Google Inc. All Rights Reserved.
+// Author: keir@google.com (Keir Mierle)
+
+#ifndef CERES_INTERNAL_SPLIT_H_
+#define VISION_OPTIMIZATION_LEAST_SQUARES_INTERNAL_SPLIT_H_
+
+#include <string>
+#include <vector>
+#include "ceres/internal/port.h"
+
+namespace ceres {
+
+// Split a string using one or more character delimiters, presented as a
+// nul-terminated c string. Append the components to 'result'. If there are
+// consecutive delimiters, this function skips over all of them.
+void SplitStringUsing(const string& full, const char* delim,
+ vector<string>* res);
+
+} // namespace ceres
+
+#endif // CERES_INTERNAL_SPLIT_H_
diff --git a/extern/libmv/third_party/ceres/internal/ceres/stringprintf.cc b/extern/libmv/third_party/ceres/internal/ceres/stringprintf.cc
index c0f35225bc3..396a48b7d97 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/stringprintf.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/stringprintf.cc
@@ -34,6 +34,7 @@
#include <string>
#include <vector>
+#include "ceres/stringprintf.h"
#include "ceres/internal/port.h"
namespace ceres {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/stringprintf.h b/extern/libmv/third_party/ceres/internal/ceres/stringprintf.h
index 30b974e7ae5..f2f907ab32d 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/stringprintf.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/stringprintf.h
@@ -54,34 +54,34 @@ namespace internal {
// N.B.: As the GCC manual states, "[s]ince non-static C++ methods
// have an implicit 'this' argument, the arguments of such methods
// should be counted from two, not one."
-#define PRINTF_ATTRIBUTE(string_index, first_to_check) \
+#define CERES_PRINTF_ATTRIBUTE(string_index, first_to_check) \
__attribute__((__format__ (__printf__, string_index, first_to_check)))
-#define SCANF_ATTRIBUTE(string_index, first_to_check) \
+#define CERES_SCANF_ATTRIBUTE(string_index, first_to_check) \
__attribute__((__format__ (__scanf__, string_index, first_to_check)))
#else
-#define PRINTF_ATTRIBUTE(string_index, first_to_check)
+#define CERES_PRINTF_ATTRIBUTE(string_index, first_to_check)
#endif
// Return a C++ string.
extern string StringPrintf(const char* format, ...)
// Tell the compiler to do printf format string checking.
- PRINTF_ATTRIBUTE(1,2);
+ CERES_PRINTF_ATTRIBUTE(1,2);
// Store result into a supplied string and return it.
extern const string& SStringPrintf(string* dst, const char* format, ...)
// Tell the compiler to do printf format string checking.
- PRINTF_ATTRIBUTE(2,3);
+ CERES_PRINTF_ATTRIBUTE(2,3);
// Append result to a supplied string.
extern void StringAppendF(string* dst, const char* format, ...)
// Tell the compiler to do printf format string checking.
- PRINTF_ATTRIBUTE(2,3);
+ CERES_PRINTF_ATTRIBUTE(2,3);
// Lower-level routine that takes a va_list and appends to a specified string.
// All other routines are just convenience wrappers around it.
extern void StringAppendV(string* dst, const char* format, va_list ap);
-#undef PRINTF_ATTRIBUTE
+#undef CERES_PRINTF_ATTRIBUTE
} // namespace internal
} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/suitesparse.cc b/extern/libmv/third_party/ceres/internal/ceres/suitesparse.cc
index 1cf6a7496a7..cf3c48f84e6 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/suitesparse.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/suitesparse.cc
@@ -29,15 +29,14 @@
// Author: sameeragarwal@google.com (Sameer Agarwal)
#ifndef CERES_NO_SUITESPARSE
-
#include "ceres/suitesparse.h"
+#include <vector>
#include "cholmod.h"
#include "ceres/compressed_row_sparse_matrix.h"
#include "ceres/triplet_sparse_matrix.h"
namespace ceres {
namespace internal {
-
cholmod_sparse* SuiteSparse::CreateSparseMatrix(TripletSparseMatrix* A) {
cholmod_triplet triplet;
@@ -111,6 +110,13 @@ cholmod_dense* SuiteSparse::CreateDenseVector(const double* x,
}
cholmod_factor* SuiteSparse::AnalyzeCholesky(cholmod_sparse* A) {
+ // Cholmod can try multiple re-ordering strategies to find a fill
+ // reducing ordering. Here we just tell it use AMD with automatic
+ // matrix dependence choice of supernodal versus simplicial
+ // factorization.
+ cc_.nmethods = 1;
+ cc_.method[0].ordering = CHOLMOD_AMD;
+ cc_.supernodal = CHOLMOD_AUTO;
cholmod_factor* factor = cholmod_analyze(A, &cc_);
CHECK_EQ(cc_.status, CHOLMOD_OK)
<< "Cholmod symbolic analysis failed " << cc_.status;
@@ -118,6 +124,153 @@ cholmod_factor* SuiteSparse::AnalyzeCholesky(cholmod_sparse* A) {
return factor;
}
+cholmod_factor* SuiteSparse::BlockAnalyzeCholesky(
+ cholmod_sparse* A,
+ const vector<int>& row_blocks,
+ const vector<int>& col_blocks) {
+ vector<int> ordering;
+ if (!BlockAMDOrdering(A, row_blocks, col_blocks, &ordering)) {
+ return NULL;
+ }
+ return AnalyzeCholeskyWithUserOrdering(A, ordering);
+}
+
+cholmod_factor* SuiteSparse::AnalyzeCholeskyWithUserOrdering(cholmod_sparse* A,
+ const vector<int>& ordering) {
+ CHECK_EQ(ordering.size(), A->nrow);
+ cc_.nmethods = 1 ;
+ cc_.method[0].ordering = CHOLMOD_GIVEN;
+ cholmod_factor* factor =
+ cholmod_analyze_p(A, const_cast<int*>(&ordering[0]), NULL, 0, &cc_);
+ CHECK_EQ(cc_.status, CHOLMOD_OK)
+ << "Cholmod symbolic analysis failed " << cc_.status;
+ CHECK_NOTNULL(factor);
+ return factor;
+}
+
+bool SuiteSparse::BlockAMDOrdering(const cholmod_sparse* A,
+ const vector<int>& row_blocks,
+ const vector<int>& col_blocks,
+ vector<int>* ordering) {
+ const int num_row_blocks = row_blocks.size();
+ const int num_col_blocks = col_blocks.size();
+
+ // Arrays storing the compressed column structure of the matrix
+ // incoding the block sparsity of A.
+ vector<int> block_cols;
+ vector<int> block_rows;
+
+ ScalarMatrixToBlockMatrix(A,
+ row_blocks,
+ col_blocks,
+ &block_rows,
+ &block_cols);
+
+ cholmod_sparse_struct block_matrix;
+ block_matrix.nrow = num_row_blocks;
+ block_matrix.ncol = num_col_blocks;
+ block_matrix.nzmax = block_rows.size();
+ block_matrix.p = reinterpret_cast<void*>(&block_cols[0]);
+ block_matrix.i = reinterpret_cast<void*>(&block_rows[0]);
+ block_matrix.x = NULL;
+ block_matrix.stype = A->stype;
+ block_matrix.itype = CHOLMOD_INT;
+ block_matrix.xtype = CHOLMOD_PATTERN;
+ block_matrix.dtype = CHOLMOD_DOUBLE;
+ block_matrix.sorted = 1;
+ block_matrix.packed = 1;
+
+ vector<int> block_ordering(num_row_blocks);
+ if (!cholmod_amd(&block_matrix, NULL, 0, &block_ordering[0], &cc_)) {
+ return false;
+ }
+
+ BlockOrderingToScalarOrdering(row_blocks, block_ordering, ordering);
+ return true;
+}
+
+void SuiteSparse::ScalarMatrixToBlockMatrix(const cholmod_sparse* A,
+ const vector<int>& row_blocks,
+ const vector<int>& col_blocks,
+ vector<int>* block_rows,
+ vector<int>* block_cols) {
+ CHECK_NOTNULL(block_rows)->clear();
+ CHECK_NOTNULL(block_cols)->clear();
+ const int num_row_blocks = row_blocks.size();
+ const int num_col_blocks = col_blocks.size();
+
+ vector<int> row_block_starts(num_row_blocks);
+ for (int i = 0, cursor = 0; i < num_row_blocks; ++i) {
+ row_block_starts[i] = cursor;
+ cursor += row_blocks[i];
+ }
+
+ // The reinterpret_cast is needed here because CHOLMOD stores arrays
+ // as void*.
+ const int* scalar_cols = reinterpret_cast<const int*>(A->p);
+ const int* scalar_rows = reinterpret_cast<const int*>(A->i);
+
+ // This loop extracts the block sparsity of the scalar sparse matrix
+ // A. It does so by iterating over the columns, but only considering
+ // the columns corresponding to the first element of each column
+ // block. Within each column, the inner loop iterates over the rows,
+ // and detects the presence of a row block by checking for the
+ // presence of a non-zero entry corresponding to its first element.
+ block_cols->push_back(0);
+ int c = 0;
+ for (int col_block = 0; col_block < num_col_blocks; ++col_block) {
+ int column_size = 0;
+ for (int idx = scalar_cols[c]; idx < scalar_cols[c + 1]; ++idx) {
+ vector<int>::const_iterator it = lower_bound(row_block_starts.begin(),
+ row_block_starts.end(),
+ scalar_rows[idx]);
+ // Since we are using lower_bound, it will return the row id
+ // where the row block starts. For everything but the first row
+ // of the block, where these values will be the same, we can
+ // skip, as we only need the first row to detect the presence of
+ // the block.
+ //
+ // For rows all but the first row in the last row block,
+ // lower_bound will return row_block_starts.end(), but those can
+ // be skipped like the rows in other row blocks too.
+ if (it == row_block_starts.end() || *it != scalar_rows[idx]) {
+ continue;
+ }
+
+ block_rows->push_back(it - row_block_starts.begin());
+ ++column_size;
+ }
+ block_cols->push_back(block_cols->back() + column_size);
+ c += col_blocks[col_block];
+ }
+}
+
+void SuiteSparse::BlockOrderingToScalarOrdering(
+ const vector<int>& blocks,
+ const vector<int>& block_ordering,
+ vector<int>* scalar_ordering) {
+ CHECK_EQ(blocks.size(), block_ordering.size());
+ const int num_blocks = blocks.size();
+
+ // block_starts = [0, block1, block1 + block2 ..]
+ vector<int> block_starts(num_blocks);
+ for (int i = 0, cursor = 0; i < num_blocks ; ++i) {
+ block_starts[i] = cursor;
+ cursor += blocks[i];
+ }
+
+ scalar_ordering->resize(block_starts.back() + blocks.back());
+ int cursor = 0;
+ for (int i = 0; i < num_blocks; ++i) {
+ const int block_id = block_ordering[i];
+ const int block_size = blocks[block_id];
+ int block_position = block_starts[block_id];
+ for (int j = 0; j < block_size; ++j) {
+ (*scalar_ordering)[cursor++] = block_position++;
+ }
+ }
+}
+
bool SuiteSparse::Cholesky(cholmod_sparse* A, cholmod_factor* L) {
CHECK_NOTNULL(A);
CHECK_NOTNULL(L);
diff --git a/extern/libmv/third_party/ceres/internal/ceres/suitesparse.h b/extern/libmv/third_party/ceres/internal/ceres/suitesparse.h
index 091e67a69a9..eb691c0c0ed 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/suitesparse.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/suitesparse.h
@@ -37,6 +37,7 @@
#include <cstring>
#include <string>
+#include <vector>
#include <glog/logging.h>
#include "cholmod.h"
@@ -105,12 +106,35 @@ class SuiteSparse {
cholmod_sdmult(A, 0, alpha_, beta_, x, y, &cc_);
}
- // Analyze the sparsity structure of the matrix A compute the
- // symbolic factorization of A. A is not modified, only the pattern
- // of non-zeros of A is used, the actual numerical values in A are
- // of no consequence. Caller owns the result.
+ // Find an ordering of A or AA' (if A is unsymmetric) that minimizes
+ // the fill-in in the Cholesky factorization of the corresponding
+ // matrix. This is done by using the AMD algorithm.
+ //
+ // Using this ordering, the symbolic Cholesky factorization of A (or
+ // AA') is computed and returned.
+ //
+ // A is not modified, only the pattern of non-zeros of A is used,
+ // the actual numerical values in A are of no consequence.
+ //
+ // Caller owns the result.
cholmod_factor* AnalyzeCholesky(cholmod_sparse* A);
+ cholmod_factor* BlockAnalyzeCholesky(cholmod_sparse* A,
+ const vector<int>& row_blocks,
+ const vector<int>& col_blocks);
+
+ // If A is symmetric, then compute the symbolic Cholesky
+ // factorization of A(ordering, ordering). If A is unsymmetric, then
+ // compute the symbolic factorization of
+ // A(ordering,:) A(ordering,:)'.
+ //
+ // A is not modified, only the pattern of non-zeros of A is used,
+ // the actual numerical values in A are of no consequence.
+ //
+ // Caller owns the result.
+ cholmod_factor* AnalyzeCholeskyWithUserOrdering(cholmod_sparse* A,
+ const vector<int>& ordering);
+
// Use the symbolic factorization in L, to find the numerical
// factorization for the matrix A or AA^T. Return true if
// successful, false otherwise. L contains the numeric factorization
@@ -129,6 +153,56 @@ class SuiteSparse {
cholmod_factor* L,
cholmod_dense* b);
+ // By virtue of the modeling layer in Ceres being block oriented,
+ // all the matrices used by Ceres are also block oriented. When
+ // doing sparse direct factorization of these matrices the
+ // fill-reducing ordering algorithms (in particular AMD) can either
+ // be run on the block or the scalar form of these matrices. The two
+ // SuiteSparse::AnalyzeCholesky methods allows the the client to
+ // compute the symbolic factorization of a matrix by either using
+ // AMD on the matrix or a user provided ordering of the rows.
+ //
+ // But since the underlying matrices are block oriented, it is worth
+ // running AMD on just the block structre of these matrices and then
+ // lifting these block orderings to a full scalar ordering. This
+ // preserves the block structure of the permuted matrix, and exposes
+ // more of the super-nodal structure of the matrix to the numerical
+ // factorization routines.
+ //
+ // Find the block oriented AMD ordering of a matrix A, whose row and
+ // column blocks are given by row_blocks, and col_blocks
+ // respectively. The matrix may or may not be symmetric. The entries
+ // of col_blocks do not need to sum to the number of columns in
+ // A. If this is the case, only the first sum(col_blocks) are used
+ // to compute the ordering.
+ bool BlockAMDOrdering(const cholmod_sparse* A,
+ const vector<int>& row_blocks,
+ const vector<int>& col_blocks,
+ vector<int>* ordering);
+
+ // Given a set of blocks and a permutation of these blocks, compute
+ // the corresponding "scalar" ordering, where the scalar ordering of
+ // size sum(blocks).
+ static void BlockOrderingToScalarOrdering(const vector<int>& blocks,
+ const vector<int>& block_ordering,
+ vector<int>* scalar_ordering);
+
+ // Extract the block sparsity pattern of the scalar sparse matrix
+ // A and return it in compressed column form. The compressed column
+ // form is stored in two vectors block_rows, and block_cols, which
+ // correspond to the row and column arrays in a compressed column sparse
+ // matrix.
+ //
+ // If c_ij is the block in the matrix A corresponding to row block i
+ // and column block j, then it is expected that A contains at least
+ // one non-zero entry corresponding to the top left entry of c_ij,
+ // as that entry is used to detect the presence of a non-zero c_ij.
+ static void ScalarMatrixToBlockMatrix(const cholmod_sparse* A,
+ const vector<int>& row_blocks,
+ const vector<int>& col_blocks,
+ vector<int>* block_rows,
+ vector<int>* block_cols);
+
void Free(cholmod_sparse* m) { cholmod_free_sparse(&m, &cc_); }
void Free(cholmod_dense* m) { cholmod_free_dense(&m, &cc_); }
void Free(cholmod_factor* m) { cholmod_free_factor(&m, &cc_); }
diff --git a/extern/libmv/third_party/ceres/internal/ceres/triplet_sparse_matrix.cc b/extern/libmv/third_party/ceres/internal/ceres/triplet_sparse_matrix.cc
index 247ab2e697b..ed8677ea18a 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/triplet_sparse_matrix.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/triplet_sparse_matrix.cc
@@ -32,12 +32,12 @@
#include <algorithm>
#include <cstddef>
-#include <glog/logging.h>
-#include "ceres/matrix_proto.h"
#include "ceres/internal/eigen.h"
#include "ceres/internal/port.h"
#include "ceres/internal/scoped_ptr.h"
+#include "ceres/matrix_proto.h"
#include "ceres/types.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
@@ -82,7 +82,7 @@ TripletSparseMatrix::TripletSparseMatrix(const TripletSparseMatrix& orig)
CopyData(orig);
}
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
TripletSparseMatrix::TripletSparseMatrix(const SparseMatrixProto& outer_proto) {
CHECK(outer_proto.has_triplet_matrix());
@@ -130,7 +130,7 @@ bool TripletSparseMatrix::AllTripletsWithinBounds() const {
void TripletSparseMatrix::Reserve(int new_max_num_nonzeros) {
CHECK_LE(num_nonzeros_, new_max_num_nonzeros)
- << "Reallocation will cause data loss";
+ << "Reallocation will cause data loss";
// Nothing to do if we have enough space already.
if (new_max_num_nonzeros <= max_num_nonzeros_)
@@ -214,7 +214,7 @@ void TripletSparseMatrix::ToDenseMatrix(Matrix* dense_matrix) const {
}
}
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
void TripletSparseMatrix::ToProto(SparseMatrixProto *proto) const {
proto->Clear();
diff --git a/extern/libmv/third_party/ceres/internal/ceres/triplet_sparse_matrix.h b/extern/libmv/third_party/ceres/internal/ceres/triplet_sparse_matrix.h
index 300e74d0bbc..89a645bd879 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/triplet_sparse_matrix.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/triplet_sparse_matrix.h
@@ -50,7 +50,7 @@ class TripletSparseMatrix : public SparseMatrix {
TripletSparseMatrix();
TripletSparseMatrix(int num_rows, int num_cols, int max_num_nonzeros);
explicit TripletSparseMatrix(const TripletSparseMatrix& orig);
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
explicit TripletSparseMatrix(const SparseMatrixProto& proto);
#endif
@@ -65,7 +65,7 @@ class TripletSparseMatrix : public SparseMatrix {
virtual void SquaredColumnNorm(double* x) const;
virtual void ScaleColumns(const double* scale);
virtual void ToDenseMatrix(Matrix* dense_matrix) const;
-#ifndef CERES_DONT_HAVE_PROTOCOL_BUFFERS
+#ifndef CERES_NO_PROTOCOL_BUFFERS
virtual void ToProto(SparseMatrixProto *proto) const;
#endif
virtual void ToTextFile(FILE* file) const;
diff --git a/extern/libmv/third_party/ceres/internal/ceres/trust_region_minimizer.cc b/extern/libmv/third_party/ceres/internal/ceres/trust_region_minimizer.cc
new file mode 100644
index 00000000000..76c4f8a7580
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/trust_region_minimizer.cc
@@ -0,0 +1,550 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: sameeragarwal@google.com (Sameer Agarwal)
+
+#include "ceres/trust_region_minimizer.h"
+
+#include <algorithm>
+#include <cstdlib>
+#include <cmath>
+#include <cstring>
+#include <limits>
+#include <string>
+#include <vector>
+
+#include "Eigen/Core"
+#include "ceres/array_utils.h"
+#include "ceres/evaluator.h"
+#include "ceres/internal/eigen.h"
+#include "ceres/internal/scoped_ptr.h"
+#include "ceres/linear_least_squares_problems.h"
+#include "ceres/sparse_matrix.h"
+#include "ceres/trust_region_strategy.h"
+#include "ceres/types.h"
+#include "glog/logging.h"
+
+namespace ceres {
+namespace internal {
+namespace {
+// Small constant for various floating point issues.
+const double kEpsilon = 1e-12;
+} // namespace
+
+// Execute the list of IterationCallbacks sequentially. If any one of
+// the callbacks does not return SOLVER_CONTINUE, then stop and return
+// its status.
+CallbackReturnType TrustRegionMinimizer::RunCallbacks(
+ const IterationSummary& iteration_summary) {
+ for (int i = 0; i < options_.callbacks.size(); ++i) {
+ const CallbackReturnType status =
+ (*options_.callbacks[i])(iteration_summary);
+ if (status != SOLVER_CONTINUE) {
+ return status;
+ }
+ }
+ return SOLVER_CONTINUE;
+}
+
+// Compute a scaling vector that is used to improve the conditioning
+// of the Jacobian.
+void TrustRegionMinimizer::EstimateScale(const SparseMatrix& jacobian,
+ double* scale) const {
+ jacobian.SquaredColumnNorm(scale);
+ for (int i = 0; i < jacobian.num_cols(); ++i) {
+ scale[i] = 1.0 / (kEpsilon + sqrt(scale[i]));
+ }
+}
+
+void TrustRegionMinimizer::Init(const Minimizer::Options& options) {
+ options_ = options;
+ sort(options_.lsqp_iterations_to_dump.begin(),
+ options_.lsqp_iterations_to_dump.end());
+}
+
+bool TrustRegionMinimizer::MaybeDumpLinearLeastSquaresProblem(
+ const int iteration,
+ const SparseMatrix* jacobian,
+ const double* residuals,
+ const double* step) const {
+ // TODO(sameeragarwal): Since the use of trust_region_radius has
+ // moved inside TrustRegionStrategy, its not clear how we dump the
+ // regularization vector/matrix anymore.
+ //
+ // Doing this right requires either an API change to the
+ // TrustRegionStrategy and/or how LinearLeastSquares problems are
+ // stored on disk.
+ //
+ // For now, we will just not dump the regularizer.
+ return (!binary_search(options_.lsqp_iterations_to_dump.begin(),
+ options_.lsqp_iterations_to_dump.end(),
+ iteration) ||
+ DumpLinearLeastSquaresProblem(options_.lsqp_dump_directory,
+ iteration,
+ options_.lsqp_dump_format_type,
+ jacobian,
+ NULL,
+ residuals,
+ step,
+ options_.num_eliminate_blocks));
+}
+
+void TrustRegionMinimizer::Minimize(const Minimizer::Options& options,
+ double* parameters,
+ Solver::Summary* summary) {
+ time_t start_time = time(NULL);
+ time_t iteration_start_time = start_time;
+ Init(options);
+
+ summary->termination_type = NO_CONVERGENCE;
+ summary->num_successful_steps = 0;
+ summary->num_unsuccessful_steps = 0;
+
+ Evaluator* evaluator = CHECK_NOTNULL(options_.evaluator);
+ SparseMatrix* jacobian = CHECK_NOTNULL(options_.jacobian);
+ TrustRegionStrategy* strategy = CHECK_NOTNULL(options_.trust_region_strategy);
+
+ const int num_parameters = evaluator->NumParameters();
+ const int num_effective_parameters = evaluator->NumEffectiveParameters();
+ const int num_residuals = evaluator->NumResiduals();
+
+ VectorRef x_min(parameters, num_parameters);
+ Vector x = x_min;
+ double x_norm = x.norm();
+
+ Vector residuals(num_residuals);
+ Vector trust_region_step(num_effective_parameters);
+ Vector delta(num_effective_parameters);
+ Vector x_plus_delta(num_parameters);
+ Vector gradient(num_effective_parameters);
+ Vector model_residuals(num_residuals);
+ Vector scale(num_effective_parameters);
+
+ IterationSummary iteration_summary;
+ iteration_summary.iteration = 0;
+ iteration_summary.step_is_valid = false;
+ iteration_summary.step_is_successful = false;
+ iteration_summary.cost = summary->initial_cost;
+ iteration_summary.cost_change = 0.0;
+ iteration_summary.gradient_max_norm = 0.0;
+ iteration_summary.step_norm = 0.0;
+ iteration_summary.relative_decrease = 0.0;
+ iteration_summary.trust_region_radius = strategy->Radius();
+ // TODO(sameeragarwal): Rename eta to linear_solver_accuracy or
+ // something similar across the board.
+ iteration_summary.eta = options_.eta;
+ iteration_summary.linear_solver_iterations = 0;
+ iteration_summary.step_solver_time_in_seconds = 0;
+
+ // Do initial cost and Jacobian evaluation.
+ double cost = 0.0;
+ if (!evaluator->Evaluate(x.data(), &cost, residuals.data(), NULL, jacobian)) {
+ LOG(WARNING) << "Terminating: Residual and Jacobian evaluation failed.";
+ summary->termination_type = NUMERICAL_FAILURE;
+ return;
+ }
+
+ int num_consecutive_nonmonotonic_steps = 0;
+ double minimum_cost = cost;
+ double reference_cost = cost;
+ double accumulated_reference_model_cost_change = 0.0;
+ double candidate_cost = cost;
+ double accumulated_candidate_model_cost_change = 0.0;
+
+ gradient.setZero();
+ jacobian->LeftMultiply(residuals.data(), gradient.data());
+ iteration_summary.gradient_max_norm = gradient.lpNorm<Eigen::Infinity>();
+
+ if (options_.jacobi_scaling) {
+ EstimateScale(*jacobian, scale.data());
+ jacobian->ScaleColumns(scale.data());
+ } else {
+ scale.setOnes();
+ }
+
+ // The initial gradient max_norm is bounded from below so that we do
+ // not divide by zero.
+ const double gradient_max_norm_0 =
+ max(iteration_summary.gradient_max_norm, kEpsilon);
+ const double absolute_gradient_tolerance =
+ options_.gradient_tolerance * gradient_max_norm_0;
+
+ if (iteration_summary.gradient_max_norm <= absolute_gradient_tolerance) {
+ summary->termination_type = GRADIENT_TOLERANCE;
+ VLOG(1) << "Terminating: Gradient tolerance reached."
+ << "Relative gradient max norm: "
+ << iteration_summary.gradient_max_norm / gradient_max_norm_0
+ << " <= " << options_.gradient_tolerance;
+ return;
+ }
+
+ iteration_summary.iteration_time_in_seconds =
+ time(NULL) - iteration_start_time;
+ iteration_summary.cumulative_time_in_seconds = time(NULL) - start_time +
+ summary->preprocessor_time_in_seconds;
+ summary->iterations.push_back(iteration_summary);
+
+ // Call the various callbacks.
+ switch (RunCallbacks(iteration_summary)) {
+ case SOLVER_TERMINATE_SUCCESSFULLY:
+ summary->termination_type = USER_SUCCESS;
+ VLOG(1) << "Terminating: User callback returned USER_SUCCESS.";
+ return;
+ case SOLVER_ABORT:
+ summary->termination_type = USER_ABORT;
+ VLOG(1) << "Terminating: User callback returned USER_ABORT.";
+ return;
+ case SOLVER_CONTINUE:
+ break;
+ default:
+ LOG(FATAL) << "Unknown type of user callback status";
+ }
+
+ int num_consecutive_invalid_steps = 0;
+ while (true) {
+ iteration_start_time = time(NULL);
+ if (iteration_summary.iteration >= options_.max_num_iterations) {
+ summary->termination_type = NO_CONVERGENCE;
+ VLOG(1) << "Terminating: Maximum number of iterations reached.";
+ break;
+ }
+
+ const double total_solver_time = iteration_start_time - start_time +
+ summary->preprocessor_time_in_seconds;
+ if (total_solver_time >= options_.max_solver_time_in_seconds) {
+ summary->termination_type = NO_CONVERGENCE;
+ VLOG(1) << "Terminating: Maximum solver time reached.";
+ break;
+ }
+
+ iteration_summary = IterationSummary();
+ iteration_summary = summary->iterations.back();
+ iteration_summary.iteration = summary->iterations.back().iteration + 1;
+ iteration_summary.step_is_valid = false;
+ iteration_summary.step_is_successful = false;
+
+ const time_t strategy_start_time = time(NULL);
+ TrustRegionStrategy::PerSolveOptions per_solve_options;
+ per_solve_options.eta = options_.eta;
+ TrustRegionStrategy::Summary strategy_summary =
+ strategy->ComputeStep(per_solve_options,
+ jacobian,
+ residuals.data(),
+ trust_region_step.data());
+
+ iteration_summary.step_solver_time_in_seconds =
+ time(NULL) - strategy_start_time;
+ iteration_summary.linear_solver_iterations =
+ strategy_summary.num_iterations;
+
+ if (!MaybeDumpLinearLeastSquaresProblem(iteration_summary.iteration,
+ jacobian,
+ residuals.data(),
+ trust_region_step.data())) {
+ LOG(FATAL) << "Tried writing linear least squares problem: "
+ << options.lsqp_dump_directory << "but failed.";
+ }
+
+ double new_model_cost = 0.0;
+ if (strategy_summary.termination_type != FAILURE) {
+ // new_model_cost = 1/2 |f + J * step|^2
+ model_residuals = residuals;
+ jacobian->RightMultiply(trust_region_step.data(), model_residuals.data());
+ new_model_cost = model_residuals.squaredNorm() / 2.0;
+
+ // In exact arithmetic, this would never be the case. But poorly
+ // conditioned matrices can give rise to situations where the
+ // new_model_cost can actually be larger than half the squared
+ // norm of the residual vector. We allow for small tolerance
+ // around cost and beyond that declare the step to be invalid.
+ if ((1.0 - new_model_cost / cost) < -kEpsilon) {
+ VLOG(1) << "Invalid step: current_cost: " << cost
+ << " new_model_cost " << new_model_cost
+ << " absolute difference " << (cost - new_model_cost)
+ << " relative difference " << (1.0 - new_model_cost/cost);
+ } else {
+ iteration_summary.step_is_valid = true;
+ }
+ }
+
+ if (!iteration_summary.step_is_valid) {
+ // Invalid steps can happen due to a number of reasons, and we
+ // allow a limited number of successive failures, and return with
+ // NUMERICAL_FAILURE if this limit is exceeded.
+ if (++num_consecutive_invalid_steps >=
+ options_.max_num_consecutive_invalid_steps) {
+ summary->termination_type = NUMERICAL_FAILURE;
+ LOG(WARNING) << "Terminating. Number of successive invalid steps more "
+ << "than "
+ << "Solver::Options::max_num_consecutive_invalid_steps: "
+ << options_.max_num_consecutive_invalid_steps;
+ return;
+ }
+
+ // We are going to try and reduce the trust region radius and
+ // solve again. To do this, we are going to treat this iteration
+ // as an unsuccessful iteration. Since the various callbacks are
+ // still executed, we are going to fill the iteration summary
+ // with data that assumes a step of length zero and no progress.
+ iteration_summary.cost = cost;
+ iteration_summary.cost_change = 0.0;
+ iteration_summary.gradient_max_norm =
+ summary->iterations.back().gradient_max_norm;
+ iteration_summary.step_norm = 0.0;
+ iteration_summary.relative_decrease = 0.0;
+ iteration_summary.eta = options_.eta;
+ } else {
+ // The step is numerically valid, so now we can judge its quality.
+ num_consecutive_invalid_steps = 0;
+
+ // We allow some slop around 0, and clamp the model_cost_change
+ // at kEpsilon * min(1.0, cost) from below.
+ //
+ // In exact arithmetic this should never be needed, as we are
+ // guaranteed to new_model_cost <= cost. However, due to various
+ // numerical issues, it is possible that new_model_cost is
+ // nearly equal to cost, and the difference is a small negative
+ // number. To make sure that the relative_decrease computation
+ // remains sane, as clamp the difference (cost - new_model_cost)
+ // from below at a small positive number.
+ //
+ // This number is the minimum of kEpsilon * (cost, 1.0), which
+ // ensures that it will never get too large in absolute value,
+ // while scaling down proportionally with the magnitude of the
+ // cost. This is important for problems where the minimum of the
+ // objective function is near zero.
+ const double model_cost_change =
+ max(kEpsilon * min(1.0, cost), cost - new_model_cost);
+
+ // Undo the Jacobian column scaling.
+ delta = (trust_region_step.array() * scale.array()).matrix();
+ iteration_summary.step_norm = delta.norm();
+
+ // Convergence based on parameter_tolerance.
+ const double step_size_tolerance = options_.parameter_tolerance *
+ (x_norm + options_.parameter_tolerance);
+ if (iteration_summary.step_norm <= step_size_tolerance) {
+ VLOG(1) << "Terminating. Parameter tolerance reached. "
+ << "relative step_norm: "
+ << iteration_summary.step_norm /
+ (x_norm + options_.parameter_tolerance)
+ << " <= " << options_.parameter_tolerance;
+ summary->termination_type = PARAMETER_TOLERANCE;
+ return;
+ }
+
+ if (!evaluator->Plus(x.data(), delta.data(), x_plus_delta.data())) {
+ summary->termination_type = NUMERICAL_FAILURE;
+ LOG(WARNING) << "Terminating. Failed to compute "
+ << "Plus(x, delta, x_plus_delta).";
+ return;
+ }
+
+ // Try this step.
+ double new_cost;
+ if (!evaluator->Evaluate(x_plus_delta.data(),
+ &new_cost,
+ NULL, NULL, NULL)) {
+ // If the evaluation of the new cost fails, treat it as a step
+ // with high cost.
+ LOG(WARNING) << "Step failed to evaluate. "
+ << "Treating it as step with infinite cost";
+ new_cost = numeric_limits<double>::max();
+ }
+
+ VLOG(2) << "old cost: " << cost << " new cost: " << new_cost;
+ iteration_summary.cost_change = cost - new_cost;
+ const double absolute_function_tolerance =
+ options_.function_tolerance * cost;
+ if (fabs(iteration_summary.cost_change) < absolute_function_tolerance) {
+ VLOG(1) << "Terminating. Function tolerance reached. "
+ << "|cost_change|/cost: "
+ << fabs(iteration_summary.cost_change) / cost
+ << " <= " << options_.function_tolerance;
+ summary->termination_type = FUNCTION_TOLERANCE;
+ return;
+ }
+
+ const double relative_decrease =
+ iteration_summary.cost_change / model_cost_change;
+
+ const double historical_relative_decrease =
+ (reference_cost - new_cost) /
+ (accumulated_reference_model_cost_change + model_cost_change);
+
+ // If monotonic steps are being used, then the relative_decrease
+ // is the usual ratio of the change in objective function value
+ // divided by the change in model cost.
+ //
+ // If non-monotonic steps are allowed, then we take the maximum
+ // of the relative_decrease and the
+ // historical_relative_decrease, which measures the increase
+ // from a reference iteration. The model cost change is
+ // estimated by accumulating the model cost changes since the
+ // reference iteration. The historical relative_decrease offers
+ // a boost to a step which is not too bad compared to the
+ // reference iteration, allowing for non-monotonic steps.
+ iteration_summary.relative_decrease =
+ options.use_nonmonotonic_steps
+ ? max(relative_decrease, historical_relative_decrease)
+ : relative_decrease;
+
+ iteration_summary.step_is_successful =
+ iteration_summary.relative_decrease > options_.min_relative_decrease;
+
+ if (iteration_summary.step_is_successful) {
+ accumulated_candidate_model_cost_change += model_cost_change;
+ accumulated_reference_model_cost_change += model_cost_change;
+ if (relative_decrease <= options_.min_relative_decrease) {
+ VLOG(2) << "Non-monotonic step! "
+ << " relative_decrease: " << relative_decrease
+ << " historical_relative_decrease: "
+ << historical_relative_decrease;
+ }
+ }
+ }
+
+ if (iteration_summary.step_is_successful) {
+ ++summary->num_successful_steps;
+ strategy->StepAccepted(iteration_summary.relative_decrease);
+ x = x_plus_delta;
+ x_norm = x.norm();
+
+ // Step looks good, evaluate the residuals and Jacobian at this
+ // point.
+ if (!evaluator->Evaluate(x.data(),
+ &cost,
+ residuals.data(),
+ NULL,
+ jacobian)) {
+ summary->termination_type = NUMERICAL_FAILURE;
+ LOG(WARNING) << "Terminating: Residual and Jacobian evaluation failed.";
+ return;
+ }
+
+ gradient.setZero();
+ jacobian->LeftMultiply(residuals.data(), gradient.data());
+ iteration_summary.gradient_max_norm = gradient.lpNorm<Eigen::Infinity>();
+
+ if (iteration_summary.gradient_max_norm <= absolute_gradient_tolerance) {
+ summary->termination_type = GRADIENT_TOLERANCE;
+ VLOG(1) << "Terminating: Gradient tolerance reached."
+ << "Relative gradient max norm: "
+ << iteration_summary.gradient_max_norm / gradient_max_norm_0
+ << " <= " << options_.gradient_tolerance;
+ return;
+ }
+
+ if (options_.jacobi_scaling) {
+ jacobian->ScaleColumns(scale.data());
+ }
+
+ // Update the best, reference and candidate iterates.
+ //
+ // Based on algorithm 10.1.2 (page 357) of "Trust Region
+ // Methods" by Conn Gould & Toint, or equations 33-40 of
+ // "Non-monotone trust-region algorithms for nonlinear
+ // optimization subject to convex constraints" by Phil Toint,
+ // Mathematical Programming, 77, 1997.
+ if (cost < minimum_cost) {
+ // A step that improves solution quality was found.
+ x_min = x;
+ minimum_cost = cost;
+ // Set the candidate iterate to the current point.
+ candidate_cost = cost;
+ num_consecutive_nonmonotonic_steps = 0;
+ accumulated_candidate_model_cost_change = 0.0;
+ } else {
+ ++num_consecutive_nonmonotonic_steps;
+ if (cost > candidate_cost) {
+ // The current iterate is has a higher cost than the
+ // candidate iterate. Set the candidate to this point.
+ VLOG(2) << "Updating the candidate iterate to the current point.";
+ candidate_cost = cost;
+ accumulated_candidate_model_cost_change = 0.0;
+ }
+
+ // At this point we have made too many non-monotonic steps and
+ // we are going to reset the value of the reference iterate so
+ // as to force the algorithm to descend.
+ //
+ // This is the case because the candidate iterate has a value
+ // greater than minimum_cost but smaller than the reference
+ // iterate.
+ if (num_consecutive_nonmonotonic_steps ==
+ options.max_consecutive_nonmonotonic_steps) {
+ VLOG(2) << "Resetting the reference point to the candidate point";
+ reference_cost = candidate_cost;
+ accumulated_reference_model_cost_change =
+ accumulated_candidate_model_cost_change;
+ }
+ }
+ } else {
+ ++summary->num_unsuccessful_steps;
+ if (iteration_summary.step_is_valid) {
+ strategy->StepRejected(iteration_summary.relative_decrease);
+ } else {
+ strategy->StepIsInvalid();
+ }
+ }
+
+ iteration_summary.cost = cost + summary->fixed_cost;
+ iteration_summary.trust_region_radius = strategy->Radius();
+ if (iteration_summary.trust_region_radius <
+ options_.min_trust_region_radius) {
+ summary->termination_type = PARAMETER_TOLERANCE;
+ VLOG(1) << "Termination. Minimum trust region radius reached.";
+ return;
+ }
+
+ iteration_summary.iteration_time_in_seconds =
+ time(NULL) - iteration_start_time;
+ iteration_summary.cumulative_time_in_seconds = time(NULL) - start_time +
+ summary->preprocessor_time_in_seconds;
+ summary->iterations.push_back(iteration_summary);
+
+ switch (RunCallbacks(iteration_summary)) {
+ case SOLVER_TERMINATE_SUCCESSFULLY:
+ summary->termination_type = USER_SUCCESS;
+ VLOG(1) << "Terminating: User callback returned USER_SUCCESS.";
+ return;
+ case SOLVER_ABORT:
+ summary->termination_type = USER_ABORT;
+ VLOG(1) << "Terminating: User callback returned USER_ABORT.";
+ return;
+ case SOLVER_CONTINUE:
+ break;
+ default:
+ LOG(FATAL) << "Unknown type of user callback status";
+ }
+ }
+}
+
+
+} // namespace internal
+} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/trust_region_minimizer.h b/extern/libmv/third_party/ceres/internal/ceres/trust_region_minimizer.h
new file mode 100644
index 00000000000..a4f5ba3674d
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/trust_region_minimizer.h
@@ -0,0 +1,67 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: sameeragarwal@google.com (Sameer Agarwal)
+
+#ifndef CERES_INTERNAL_TRUST_REGION_MINIMIZER_H_
+#define CERES_INTERNAL_TRUST_REGION_MINIMIZER_H_
+
+#include "ceres/minimizer.h"
+#include "ceres/solver.h"
+#include "ceres/types.h"
+
+namespace ceres {
+namespace internal {
+
+// Generic trust region minimization algorithm. The heavy lifting is
+// done by a TrustRegionStrategy object passed in as one of the
+// arguments to the Minimize method.
+//
+// For example usage, see SolverImpl::Minimize.
+class TrustRegionMinimizer : public Minimizer {
+ public:
+ ~TrustRegionMinimizer() {}
+ virtual void Minimize(const Minimizer::Options& options,
+ double* parameters,
+ Solver::Summary* summary);
+
+ private:
+ void Init(const Minimizer::Options& options);
+ void EstimateScale(const SparseMatrix& jacobian, double* scale) const;
+ CallbackReturnType RunCallbacks(const IterationSummary& iteration_summary);
+ bool MaybeDumpLinearLeastSquaresProblem( const int iteration,
+ const SparseMatrix* jacobian,
+ const double* residuals,
+ const double* step) const;
+
+ Minimizer::Options options_;
+};
+
+} // namespace internal
+} // namespace ceres
+#endif // CERES_INTERNAL_TRUST_REGION_MINIMIZER_H_
diff --git a/extern/libmv/third_party/ceres/internal/ceres/trust_region_strategy.cc b/extern/libmv/third_party/ceres/internal/ceres/trust_region_strategy.cc
new file mode 100644
index 00000000000..89bc19d084b
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/trust_region_strategy.cc
@@ -0,0 +1,27 @@
+#include "ceres/trust_region_strategy.h"
+#include "ceres/dogleg_strategy.h"
+#include "ceres/levenberg_marquardt_strategy.h"
+
+namespace ceres {
+namespace internal {
+
+TrustRegionStrategy::~TrustRegionStrategy() {}
+
+TrustRegionStrategy* TrustRegionStrategy::Create(const Options& options) {
+ switch (options.trust_region_strategy_type) {
+ case LEVENBERG_MARQUARDT:
+ return new LevenbergMarquardtStrategy(options);
+ case DOGLEG:
+ return new DoglegStrategy(options);
+ default:
+ LOG(FATAL) << "Unknown trust region strategy: "
+ << options.trust_region_strategy_type;
+ }
+
+ LOG(FATAL) << "Unknown trust region strategy: "
+ << options.trust_region_strategy_type;
+ return NULL;
+}
+
+} // namespace internal
+} // namespace ceres
diff --git a/extern/libmv/third_party/ceres/internal/ceres/trust_region_strategy.h b/extern/libmv/third_party/ceres/internal/ceres/trust_region_strategy.h
new file mode 100644
index 00000000000..391da97d5eb
--- /dev/null
+++ b/extern/libmv/third_party/ceres/internal/ceres/trust_region_strategy.h
@@ -0,0 +1,148 @@
+// Ceres Solver - A fast non-linear least squares minimizer
+// Copyright 2012 Google Inc. All rights reserved.
+// http://code.google.com/p/ceres-solver/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: sameeragarwal@google.com (Sameer Agarwal)
+
+#ifndef CERES_INTERNAL_TRUST_REGION_STRATEGY_H_
+#define CERES_INTERNAL_TRUST_REGION_STRATEGY_H_
+
+#include "ceres/types.h"
+
+namespace ceres {
+namespace internal {
+
+class LinearSolver;
+class SparseMatrix;
+
+// Interface for classes implementing various trust region strategies
+// for nonlinear least squares problems.
+//
+// The object is expected to maintain and update a trust region
+// radius, which it then uses to solve for the trust region step using
+// the jacobian matrix and residual vector.
+//
+// Here the term trust region radius is used loosely, as the strategy
+// is free to treat it as guidance and violate it as need be. e.g.,
+// the LevenbergMarquardtStrategy uses the inverse of the trust region
+// radius to scale the damping term, which controls the step size, but
+// does not set a hard limit on its size.
+class TrustRegionStrategy {
+public:
+ struct Options {
+ Options()
+ : trust_region_strategy_type(LEVENBERG_MARQUARDT),
+ initial_radius(1e4),
+ max_radius(1e32),
+ lm_min_diagonal(1e-6),
+ lm_max_diagonal(1e32),
+ dogleg_type(TRADITIONAL_DOGLEG) {
+ }
+
+ TrustRegionStrategyType trust_region_strategy_type;
+ // Linear solver used for actually solving the trust region step.
+ LinearSolver* linear_solver;
+ double initial_radius;
+ double max_radius;
+
+ // Minimum and maximum values of the diagonal damping matrix used
+ // by LevenbergMarquardtStrategy. The DoglegStrategy also uses
+ // these bounds to construct a regularizing diagonal to ensure
+ // that the Gauss-Newton step computation is of full rank.
+ double lm_min_diagonal;
+ double lm_max_diagonal;
+
+ // Further specify which dogleg method to use
+ DoglegType dogleg_type;
+ };
+
+ // Per solve options.
+ struct PerSolveOptions {
+ // Forcing sequence for inexact solves.
+ double eta;
+ };
+
+ struct Summary {
+ Summary()
+ : residual_norm(0.0),
+ num_iterations(-1),
+ termination_type(FAILURE) {
+ }
+
+ // If the trust region problem is,
+ //
+ // 1/2 x'Ax + b'x + c,
+ //
+ // then
+ //
+ // residual_norm = |Ax -b|
+ double residual_norm;
+
+ // Number of iterations used by the linear solver. If a linear
+ // solver was not called (e.g., DogLegStrategy after an
+ // unsuccessful step), then this would be zero.
+ int num_iterations;
+
+ // Status of the linear solver used to solve the Newton system.
+ LinearSolverTerminationType termination_type;
+ };
+
+ virtual ~TrustRegionStrategy();
+
+ // Use the current radius to solve for the trust region step.
+ virtual Summary ComputeStep(const PerSolveOptions& per_solve_options,
+ SparseMatrix* jacobian,
+ const double* residuals,
+ double* step) = 0;
+
+ // Inform the strategy that the current step has been accepted, and
+ // that the ratio of the decrease in the non-linear objective to the
+ // decrease in the trust region model is step_quality.
+ virtual void StepAccepted(double step_quality) = 0;
+
+ // Inform the strategy that the current step has been rejected, and
+ // that the ratio of the decrease in the non-linear objective to the
+ // decrease in the trust region model is step_quality.
+ virtual void StepRejected(double step_quality) = 0;
+
+ // Inform the strategy that the current step has been rejected
+ // because it was found to be numerically invalid.
+ // StepRejected/StepAccepted will not be called for this step, and
+ // the strategy is free to do what it wants with this information.
+ virtual void StepIsInvalid() = 0;
+
+ // Current trust region radius.
+ virtual double Radius() const = 0;
+
+ // Factory.
+ static TrustRegionStrategy* Create(const Options& options);
+};
+
+} // namespace internal
+} // namespace ceres
+
+#endif // CERES_INTERNAL_TRUST_REGION_STRATEGY_H_
diff --git a/extern/libmv/third_party/ceres/internal/ceres/types.cc b/extern/libmv/third_party/ceres/internal/ceres/types.cc
index 860f8a43f37..05e573ff6d5 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/types.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/types.cc
@@ -37,8 +37,9 @@ namespace ceres {
const char* LinearSolverTypeToString(LinearSolverType solver_type) {
switch (solver_type) {
- CASESTR(SPARSE_NORMAL_CHOLESKY);
+ CASESTR(DENSE_NORMAL_CHOLESKY);
CASESTR(DENSE_QR);
+ CASESTR(SPARSE_NORMAL_CHOLESKY);
CASESTR(DENSE_SCHUR);
CASESTR(SPARSE_SCHUR);
CASESTR(ITERATIVE_SCHUR);
@@ -61,6 +62,16 @@ const char* PreconditionerTypeToString(
}
}
+const char* SparseLinearAlgebraLibraryTypeToString(
+ SparseLinearAlgebraLibraryType sparse_linear_algebra_library_type) {
+ switch (sparse_linear_algebra_library_type) {
+ CASESTR(SUITE_SPARSE);
+ CASESTR(CX_SPARSE);
+ default:
+ return "UNKNOWN";
+ }
+}
+
const char* OrderingTypeToString(OrderingType ordering_type) {
switch (ordering_type) {
CASESTR(NATURAL);
@@ -87,6 +98,28 @@ const char* SolverTerminationTypeToString(
}
}
+#if 0 /* UNUSED */
+static const char* SparseLinearAlgebraTypeToString(
+ SparseLinearAlgebraLibraryType sparse_linear_algebra_library_type) {
+ switch (sparse_linear_algebra_library_type) {
+ CASESTR(CX_SPARSE);
+ CASESTR(SUITE_SPARSE);
+ default:
+ return "UNKNOWN";
+ }
+}
+#endif
+
+const char* TrustRegionStrategyTypeToString(
+ TrustRegionStrategyType trust_region_strategy_type) {
+ switch (trust_region_strategy_type) {
+ CASESTR(LEVENBERG_MARQUARDT);
+ CASESTR(DOGLEG);
+ default:
+ return "UNKNOWN";
+ }
+}
+
#undef CASESTR
bool IsSchurType(LinearSolverType type) {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/visibility.cc b/extern/libmv/third_party/ceres/internal/ceres/visibility.cc
index fd41648a7af..564cc54493e 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/visibility.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/visibility.cc
@@ -34,11 +34,11 @@
#include <set>
#include <vector>
#include <utility>
-
-#include <glog/logging.h>
#include "ceres/block_structure.h"
#include "ceres/collections_port.h"
+#include "ceres/visibility.h"
#include "ceres/graph.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
diff --git a/extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.cc b/extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.cc
index aca77528215..4caad03d7a1 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.cc
+++ b/extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.cc
@@ -33,11 +33,9 @@
#include <algorithm>
#include <functional>
#include <iterator>
-#include <numeric>
#include <set>
#include <utility>
#include <vector>
-#include <glog/logging.h>
#include "Eigen/Dense"
#include "ceres/block_random_access_sparse_matrix.h"
#include "ceres/block_sparse_matrix.h"
@@ -46,10 +44,11 @@
#include "ceres/detect_structure.h"
#include "ceres/graph.h"
#include "ceres/graph_algorithms.h"
+#include "ceres/internal/scoped_ptr.h"
#include "ceres/linear_solver.h"
#include "ceres/schur_eliminator.h"
#include "ceres/visibility.h"
-#include "ceres/internal/scoped_ptr.h"
+#include "glog/logging.h"
namespace ceres {
namespace internal {
@@ -253,7 +252,6 @@ void VisibilityBasedPreconditioner::ComputeBlockPairsInPreconditioner(
}
int r = 0;
- set<pair<int, int> > skipped_pairs;
const int num_row_blocks = bs.rows.size();
const int num_eliminate_blocks = options_.num_eliminate_blocks;
@@ -304,8 +302,6 @@ void VisibilityBasedPreconditioner::ComputeBlockPairsInPreconditioner(
for (; block2 != f_blocks.end(); ++block2) {
if (IsBlockPairInPreconditioner(*block1, *block2)) {
block_pairs_.insert(make_pair(*block1, *block2));
- } else {
- skipped_pairs.insert(make_pair(*block1, *block2));
}
}
}
@@ -322,17 +318,13 @@ void VisibilityBasedPreconditioner::ComputeBlockPairsInPreconditioner(
if (block1 <= block2) {
if (IsBlockPairInPreconditioner(block1, block2)) {
block_pairs_.insert(make_pair(block1, block2));
- } else {
- skipped_pairs.insert(make_pair(block1, block2));
}
}
}
}
}
- VLOG(1) << "Block pair stats: "
- << block_pairs_.size() << " included "
- << skipped_pairs.size() << " excluded";
+ VLOG(1) << "Block pair stats: " << block_pairs_.size();
}
// Initialize the SchurEliminator.
@@ -341,7 +333,6 @@ void VisibilityBasedPreconditioner::InitEliminator(
LinearSolver::Options eliminator_options;
eliminator_options.num_eliminate_blocks = options_.num_eliminate_blocks;
eliminator_options.num_threads = options_.num_threads;
- eliminator_options.constant_sparsity = true;
DetectStructure(bs, options_.num_eliminate_blocks,
&eliminator_options.row_block_size,
@@ -352,9 +343,9 @@ void VisibilityBasedPreconditioner::InitEliminator(
eliminator_->Init(options_.num_eliminate_blocks, &bs);
}
-// Compute the values of the preconditioner matrix and factorize it.
-bool VisibilityBasedPreconditioner::Compute(const BlockSparseMatrixBase& A,
- const double* D) {
+// Update the values of the preconditioner matrix and factorize it.
+bool VisibilityBasedPreconditioner::Update(const BlockSparseMatrixBase& A,
+ const double* D) {
const time_t start_time = time(NULL);
const int num_rows = m_->num_rows();
CHECK_GT(num_rows, 0);
@@ -448,12 +439,21 @@ bool VisibilityBasedPreconditioner::Factorize() {
// matrix contains the values.
lhs->stype = 1;
- // Symbolic factorization is computed if we don't already have one
- // handy.
+ // Symbolic factorization is computed if we don't already have one handy.
if (factor_ == NULL) {
- factor_ = ss_.AnalyzeCholesky(lhs);
+ if (options_.use_block_amd) {
+ factor_ = ss_.BlockAnalyzeCholesky(lhs, block_size_, block_size_);
+ } else {
+ factor_ = ss_.AnalyzeCholesky(lhs);
+ }
+
+ if (VLOG_IS_ON(2)) {
+ cholmod_print_common("Symbolic Analysis", ss_.mutable_cc());
+ }
}
+ CHECK_NOTNULL(factor_);
+
bool status = ss_.Cholesky(lhs, factor_);
ss_.Free(lhs);
return status;
diff --git a/extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.h b/extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.h
index fa095ca1dd8..888c65eba3a 100644
--- a/extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.h
+++ b/extern/libmv/third_party/ceres/internal/ceres/visibility_based_preconditioner.h
@@ -133,7 +133,7 @@ class SchurEliminatorBase;
// options.num_eliminate_blocks = num_points;
// VisibilityBasedPreconditioner preconditioner(
// *A.block_structure(), options);
-// preconditioner.Compute(A, NULL);
+// preconditioner.Update(A, NULL);
// preconditioner.RightMultiply(x, y);
//
@@ -160,7 +160,7 @@ class VisibilityBasedPreconditioner : public LinearOperator {
const LinearSolver::Options& options);
virtual ~VisibilityBasedPreconditioner();
- // Compute the numerical value of the preconditioner for the linear
+ // Update the numerical value of the preconditioner for the linear
// system:
//
// | A | x = |b|
@@ -171,12 +171,12 @@ class VisibilityBasedPreconditioner : public LinearOperator {
//
// D can be NULL, in which case its interpreted as a diagonal matrix
// of size zero.
- bool Compute(const BlockSparseMatrixBase& A,
- const double* D);
+ bool Update(const BlockSparseMatrixBase& A, const double* D);
+
// LinearOperator interface. Since the operator is symmetric,
// LeftMultiply and num_cols are just calls to RightMultiply and
- // num_rows respectively. Compute() must be called before
+ // num_rows respectively. Update() must be called before
// RightMultiply can be called.
virtual void RightMultiply(const double* x, double* y) const;
virtual void LeftMultiply(const double* x, double* y) const {
@@ -244,7 +244,7 @@ class VisibilityBasedPreconditioner : public LinearOperator {
// Temporary vector used by RightMultiply.
cholmod_dense* tmp_rhs_;
- DISALLOW_COPY_AND_ASSIGN(VisibilityBasedPreconditioner);
+ CERES_DISALLOW_COPY_AND_ASSIGN(VisibilityBasedPreconditioner);
};
#else // SuiteSparse
// If SuiteSparse is not compiled in, the preconditioner is not
@@ -261,7 +261,7 @@ class VisibilityBasedPreconditioner : public LinearOperator {
virtual void LeftMultiply(const double* x, double* y) const {}
virtual int num_rows() const { return -1; }
virtual int num_cols() const { return -1; }
- bool Compute(const BlockSparseMatrixBase& A, const double* D) {
+ bool Update(const BlockSparseMatrixBase& A, const double* D) {
return false;
}
};
diff --git a/extern/libmv/third_party/ceres/patches/collections_port.h.mingw.patch b/extern/libmv/third_party/ceres/patches/collections_port.h.mingw.patch
index bbb366e22bc..c01a17c7992 100644
--- a/extern/libmv/third_party/ceres/patches/collections_port.h.mingw.patch
+++ b/extern/libmv/third_party/ceres/patches/collections_port.h.mingw.patch
@@ -1,10 +1,10 @@
-Index: internal/ceres/collections_port.h
-===================================================================
---- internal/ceres/collections_port.h (revision 47730)
-+++ internal/ceres/collections_port.h (working copy)
-@@ -53,7 +53,7 @@
+diff --git a/internal/ceres/collections_port.h b/internal/ceres/collections_port.h
+index a356cc0..c2fce90 100644
+--- a/internal/ceres/collections_port.h
++++ b/internal/ceres/collections_port.h
+@@ -77,7 +77,7 @@ struct HashMap : std::tr1::unordered_map<K, V> {};
template<typename K>
- struct HashSet : tr1::unordered_set<K> {};
+ struct HashSet : std::tr1::unordered_set<K> {};
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(__MINGW64__) && !defined(__MINGW32__)
diff --git a/extern/libmv/third_party/ceres/patches/msvc_glog_fix.patch b/extern/libmv/third_party/ceres/patches/msvc_glog_fix.patch
new file mode 100644
index 00000000000..f3200fb8e0a
--- /dev/null
+++ b/extern/libmv/third_party/ceres/patches/msvc_glog_fix.patch
@@ -0,0 +1,50 @@
+diff --git a/internal/ceres/block_random_access_dense_matrix.cc b/internal/ceres/block_random_access_dense_matrix.cc
+index aedfc74..0f95e89 100644
+--- a/internal/ceres/block_random_access_dense_matrix.cc
++++ b/internal/ceres/block_random_access_dense_matrix.cc
+@@ -28,12 +28,12 @@
+ //
+ // Author: sameeragarwal@google.com (Sameer Agarwal)
+
++#include "glog/logging.h"
+ #include "ceres/block_random_access_dense_matrix.h"
+
+ #include <vector>
+ #include "ceres/internal/eigen.h"
+ #include "ceres/internal/scoped_ptr.h"
+-#include "glog/logging.h"
+
+ namespace ceres {
+ namespace internal {
+diff --git a/internal/ceres/block_random_access_sparse_matrix.cc b/internal/ceres/block_random_access_sparse_matrix.cc
+index f789436..9ed62ce 100644
+--- a/internal/ceres/block_random_access_sparse_matrix.cc
++++ b/internal/ceres/block_random_access_sparse_matrix.cc
+@@ -28,6 +28,7 @@
+ //
+ // Author: sameeragarwal@google.com (Sameer Agarwal)
+
++#include "glog/logging.h"
+ #include "ceres/block_random_access_sparse_matrix.h"
+
+ #include <algorithm>
+@@ -39,7 +40,6 @@
+ #include "ceres/mutex.h"
+ #include "ceres/triplet_sparse_matrix.h"
+ #include "ceres/types.h"
+-#include "glog/logging.h"
+
+ namespace ceres {
+ namespace internal {
+diff --git a/internal/ceres/schur_complement_solver.cc b/internal/ceres/schur_complement_solver.cc
+index b9224d8..2cbe78d 100644
+--- a/internal/ceres/schur_complement_solver.cc
++++ b/internal/ceres/schur_complement_solver.cc
+@@ -38,6 +38,7 @@
+ #endif // CERES_NO_CXSPARSE
+
+ #include "Eigen/Dense"
++#include "glog/logging.h"
+ #include "ceres/block_random_access_dense_matrix.h"
+ #include "ceres/block_random_access_matrix.h"
+ #include "ceres/block_random_access_sparse_matrix.h"
diff --git a/extern/libmv/third_party/ceres/patches/msvc_isfinite.patch b/extern/libmv/third_party/ceres/patches/msvc_isfinite.patch
deleted file mode 100644
index c3129d8e02b..00000000000
--- a/extern/libmv/third_party/ceres/patches/msvc_isfinite.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/internal/ceres/residual_block_utils.cc b/internal/ceres/residual_block_utils.cc
-index ed3499b..28e0313 100644
---- a/internal/ceres/residual_block_utils.cc
-+++ b/internal/ceres/residual_block_utils.cc
-@@ -40,6 +40,10 @@
- #include "ceres/internal/eigen.h"
- #include "ceres/internal/port.h"
-
-+#ifdef _MSC_VER
-+# define isfinite _finite
-+#endif
-+
- namespace ceres {
- namespace internal {
-
diff --git a/extern/libmv/third_party/ceres/patches/no_previous_declaration_fix.patch b/extern/libmv/third_party/ceres/patches/no_previous_declaration_fix.patch
new file mode 100644
index 00000000000..03f1c500d9a
--- /dev/null
+++ b/extern/libmv/third_party/ceres/patches/no_previous_declaration_fix.patch
@@ -0,0 +1,199 @@
+diff --git a/internal/ceres/file.cc b/internal/ceres/file.cc
+index 387f359..6fe7557 100644
+--- a/internal/ceres/file.cc
++++ b/internal/ceres/file.cc
+@@ -31,6 +31,7 @@
+ // Really simple file IO.
+
+ #include <cstdio>
++#include "file.h"
+ #include "glog/logging.h"
+
+ namespace ceres {
+diff --git a/internal/ceres/linear_least_squares_problems.cc b/internal/ceres/linear_least_squares_problems.cc
+index 3e3bcd0..a91e254 100644
+--- a/internal/ceres/linear_least_squares_problems.cc
++++ b/internal/ceres/linear_least_squares_problems.cc
+@@ -573,13 +573,13 @@ LinearLeastSquaresProblem* LinearLeastSquaresProblem3() {
+ return problem;
+ }
+
+-bool DumpLinearLeastSquaresProblemToConsole(const string& directory,
+- int iteration,
+- const SparseMatrix* A,
+- const double* D,
+- const double* b,
+- const double* x,
+- int num_eliminate_blocks) {
++static bool DumpLinearLeastSquaresProblemToConsole(const string& directory,
++ int iteration,
++ const SparseMatrix* A,
++ const double* D,
++ const double* b,
++ const double* x,
++ int num_eliminate_blocks) {
+ CHECK_NOTNULL(A);
+ Matrix AA;
+ A->ToDenseMatrix(&AA);
+@@ -601,13 +601,13 @@ bool DumpLinearLeastSquaresProblemToConsole(const string& directory,
+ };
+
+ #ifndef CERES_NO_PROTOCOL_BUFFERS
+-bool DumpLinearLeastSquaresProblemToProtocolBuffer(const string& directory,
+- int iteration,
+- const SparseMatrix* A,
+- const double* D,
+- const double* b,
+- const double* x,
+- int num_eliminate_blocks) {
++static bool DumpLinearLeastSquaresProblemToProtocolBuffer(const string& directory,
++ int iteration,
++ const SparseMatrix* A,
++ const double* D,
++ const double* b,
++ const double* x,
++ int num_eliminate_blocks) {
+ CHECK_NOTNULL(A);
+ LinearLeastSquaresProblemProto lsqp;
+ A->ToProto(lsqp.mutable_a());
+@@ -641,13 +641,13 @@ bool DumpLinearLeastSquaresProblemToProtocolBuffer(const string& directory,
+ return true;
+ }
+ #else
+-bool DumpLinearLeastSquaresProblemToProtocolBuffer(const string& directory,
+- int iteration,
+- const SparseMatrix* A,
+- const double* D,
+- const double* b,
+- const double* x,
+- int num_eliminate_blocks) {
++static bool DumpLinearLeastSquaresProblemToProtocolBuffer(const string& directory,
++ int iteration,
++ const SparseMatrix* A,
++ const double* D,
++ const double* b,
++ const double* x,
++ int num_eliminate_blocks) {
+ LOG(ERROR) << "Dumping least squares problems is only "
+ << "supported when Ceres is compiled with "
+ << "protocol buffer support.";
+@@ -655,9 +655,9 @@ bool DumpLinearLeastSquaresProblemToProtocolBuffer(const string& directory,
+ }
+ #endif
+
+-void WriteArrayToFileOrDie(const string& filename,
+- const double* x,
+- const int size) {
++static void WriteArrayToFileOrDie(const string& filename,
++ const double* x,
++ const int size) {
+ CHECK_NOTNULL(x);
+ VLOG(2) << "Writing array to: " << filename;
+ FILE* fptr = fopen(filename.c_str(), "w");
+@@ -668,13 +668,13 @@ void WriteArrayToFileOrDie(const string& filename,
+ fclose(fptr);
+ }
+
+-bool DumpLinearLeastSquaresProblemToTextFile(const string& directory,
+- int iteration,
+- const SparseMatrix* A,
+- const double* D,
+- const double* b,
+- const double* x,
+- int num_eliminate_blocks) {
++static bool DumpLinearLeastSquaresProblemToTextFile(const string& directory,
++ int iteration,
++ const SparseMatrix* A,
++ const double* D,
++ const double* b,
++ const double* x,
++ int num_eliminate_blocks) {
+ CHECK_NOTNULL(A);
+ string format_string = JoinPath(directory,
+ "lm_iteration_%03d");
+diff --git a/internal/ceres/residual_block_utils.cc b/internal/ceres/residual_block_utils.cc
+index ff18e21..9442bb2 100644
+--- a/internal/ceres/residual_block_utils.cc
++++ b/internal/ceres/residual_block_utils.cc
+@@ -63,7 +63,7 @@ void InvalidateEvaluation(const ResidualBlock& block,
+
+ // Utility routine to print an array of doubles to a string. If the
+ // array pointer is NULL, it is treated as an array of zeros.
+-void AppendArrayToString(const int size, const double* x, string* result) {
++static void AppendArrayToString(const int size, const double* x, string* result) {
+ for (int i = 0; i < size; ++i) {
+ if (x == NULL) {
+ StringAppendF(result, "Not Computed ");
+diff --git a/internal/ceres/solver_impl.cc b/internal/ceres/solver_impl.cc
+index 2802a75..8ef5b98 100644
+--- a/internal/ceres/solver_impl.cc
++++ b/internal/ceres/solver_impl.cc
+@@ -685,8 +685,8 @@ bool SolverImpl::ApplyUserOrdering(const ProblemImpl& problem_impl,
+ // Find the minimum index of any parameter block to the given residual.
+ // Parameter blocks that have indices greater than num_eliminate_blocks are
+ // considered to have an index equal to num_eliminate_blocks.
+-int MinParameterBlock(const ResidualBlock* residual_block,
+- int num_eliminate_blocks) {
++static int MinParameterBlock(const ResidualBlock* residual_block,
++ int num_eliminate_blocks) {
+ int min_parameter_block_position = num_eliminate_blocks;
+ for (int i = 0; i < residual_block->NumParameterBlocks(); ++i) {
+ ParameterBlock* parameter_block = residual_block->parameter_blocks()[i];
+diff --git a/internal/ceres/split.cc b/internal/ceres/split.cc
+index 4fa1bd4..c65c8a5 100644
+--- a/internal/ceres/split.cc
++++ b/internal/ceres/split.cc
+@@ -31,6 +31,7 @@
+ #include <string>
+ #include <vector>
+ #include <iterator>
++#include "ceres/split.h"
+ #include "ceres/internal/port.h"
+
+ namespace ceres {
+diff --git a/internal/ceres/stringprintf.cc b/internal/ceres/stringprintf.cc
+index c0f3522..396a48b 100644
+--- a/internal/ceres/stringprintf.cc
++++ b/internal/ceres/stringprintf.cc
+@@ -34,6 +34,7 @@
+ #include <string>
+ #include <vector>
+
++#include "ceres/stringprintf.h"
+ #include "ceres/internal/port.h"
+
+ namespace ceres {
+diff --git a/internal/ceres/types.cc b/internal/ceres/types.cc
+index 2e950c5..05e573f 100644
+--- a/internal/ceres/types.cc
++++ b/internal/ceres/types.cc
+@@ -98,7 +98,8 @@ const char* SolverTerminationTypeToString(
+ }
+ }
+
+-const char* SparseLinearAlgebraTypeToString(
++#if 0 /* UNUSED */
++static const char* SparseLinearAlgebraTypeToString(
+ SparseLinearAlgebraLibraryType sparse_linear_algebra_library_type) {
+ switch (sparse_linear_algebra_library_type) {
+ CASESTR(CX_SPARSE);
+@@ -107,6 +108,7 @@ const char* SparseLinearAlgebraTypeToString(
+ return "UNKNOWN";
+ }
+ }
++#endif
+
+ const char* TrustRegionStrategyTypeToString(
+ TrustRegionStrategyType trust_region_strategy_type) {
+diff --git a/internal/ceres/visibility.cc b/internal/ceres/visibility.cc
+index 9d80654..564cc54 100644
+--- a/internal/ceres/visibility.cc
++++ b/internal/ceres/visibility.cc
+@@ -36,6 +36,7 @@
+ #include <utility>
+ #include "ceres/block_structure.h"
+ #include "ceres/collections_port.h"
++#include "ceres/visibility.h"
+ #include "ceres/graph.h"
+ #include "glog/logging.h"
+
diff --git a/extern/libmv/third_party/ceres/patches/series b/extern/libmv/third_party/ceres/patches/series
index dbe955ae61e..a6874318923 100644
--- a/extern/libmv/third_party/ceres/patches/series
+++ b/extern/libmv/third_party/ceres/patches/series
@@ -1 +1,3 @@
-msvc_isfinite.patch
+collections_port.h.mingw.patch
+msvc_glog_fix.patch
+no_previous_declaration_fix.patch \ No newline at end of file
diff --git a/extern/recastnavigation/Recast/Source/RecastContour.cpp b/extern/recastnavigation/Recast/Source/RecastContour.cpp
index 078c464e5f4..df943838ffb 100644
--- a/extern/recastnavigation/Recast/Source/RecastContour.cpp
+++ b/extern/recastnavigation/Recast/Source/RecastContour.cpp
@@ -321,7 +321,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified,
// Find maximum deviation from the segment.
float maxd = 0;
- int maxi = -1;
+ int i_max = -1;
int ci, cinc, endi;
// Traverse the segment in lexilogical order so that the
@@ -350,7 +350,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified,
if (d > maxd)
{
maxd = d;
- maxi = ci;
+ i_max = ci;
}
ci = (ci+cinc) % pn;
}
@@ -359,7 +359,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified,
// If the max deviation is larger than accepted error,
// add new point, else continue to next segment.
- if (maxi != -1 && maxd > (maxError*maxError))
+ if (i_max != -1 && maxd > (maxError*maxError))
{
// Add space for the new point.
simplified.resize(simplified.size()+4);
@@ -372,10 +372,10 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified,
simplified[j*4+3] = simplified[(j-1)*4+3];
}
// Add the point.
- simplified[(i+1)*4+0] = points[maxi*4+0];
- simplified[(i+1)*4+1] = points[maxi*4+1];
- simplified[(i+1)*4+2] = points[maxi*4+2];
- simplified[(i+1)*4+3] = maxi;
+ simplified[(i+1)*4+0] = points[i_max*4+0];
+ simplified[(i+1)*4+1] = points[i_max*4+1];
+ simplified[(i+1)*4+2] = points[i_max*4+2];
+ simplified[(i+1)*4+3] = i_max;
}
else
{
@@ -399,7 +399,7 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified,
const int bi = simplified[ii*4+3];
// Find maximum deviation from the segment.
- int maxi = -1;
+ int i_max = -1;
int ci = (ai+1) % pn;
// Tessellate only outer edges or edges between areas.
@@ -423,19 +423,19 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified,
if (bx > ax || (bx == ax && bz > az))
{
const int n = bi < ai ? (bi+pn - ai) : (bi - ai);
- maxi = (ai + n/2) % pn;
+ i_max = (ai + n/2) % pn;
}
else
{
const int n = bi < ai ? (bi+pn - ai) : (bi - ai);
- maxi = (ai + (n+1)/2) % pn;
+ i_max = (ai + (n+1)/2) % pn;
}
}
}
// If the max deviation is larger than accepted error,
// add new point, else continue to next segment.
- if (maxi != -1)
+ if (i_max != -1)
{
// Add space for the new point.
simplified.resize(simplified.size()+4);
@@ -448,10 +448,10 @@ static void simplifyContour(rcIntArray& points, rcIntArray& simplified,
simplified[j*4+3] = simplified[(j-1)*4+3];
}
// Add the point.
- simplified[(i+1)*4+0] = points[maxi*4+0];
- simplified[(i+1)*4+1] = points[maxi*4+1];
- simplified[(i+1)*4+2] = points[maxi*4+2];
- simplified[(i+1)*4+3] = maxi;
+ simplified[(i+1)*4+0] = points[i_max*4+0];
+ simplified[(i+1)*4+1] = points[i_max*4+1];
+ simplified[(i+1)*4+2] = points[i_max*4+2];
+ simplified[(i+1)*4+3] = i_max;
}
else
{
diff --git a/extern/recastnavigation/Recast/Source/RecastFilter.cpp b/extern/recastnavigation/Recast/Source/RecastFilter.cpp
index bf985c362c9..9df71ea3fbf 100644
--- a/extern/recastnavigation/Recast/Source/RecastFilter.cpp
+++ b/extern/recastnavigation/Recast/Source/RecastFilter.cpp
@@ -128,7 +128,7 @@ void rcFilterLedgeSpans(rcContext* ctx, const int walkableHeight, const int walk
rcSpan* ns = solid.spans[dx + dy*w];
int nbot = -walkableClimb;
int ntop = ns ? (int)ns->smin : MAX_HEIGHT;
- // Skip neightbour if the gap between the spans is too small.
+ // Skip neighbor if the gap between the spans is too small.
if (rcMin(top,ntop) - rcMax(bot,nbot) > walkableHeight)
minh = rcMin(minh, nbot - bot);
@@ -137,7 +137,7 @@ void rcFilterLedgeSpans(rcContext* ctx, const int walkableHeight, const int walk
{
nbot = (int)ns->smax;
ntop = ns->next ? (int)ns->next->smin : MAX_HEIGHT;
- // Skip neightbour if the gap between the spans is too small.
+ // Skip neighbor if the gap between the spans is too small.
if (rcMin(top,ntop) - rcMax(bot,nbot) > walkableHeight)
{
minh = rcMin(minh, nbot - bot);
diff --git a/extern/recastnavigation/Recast/Source/RecastMesh.cpp b/extern/recastnavigation/Recast/Source/RecastMesh.cpp
index ef37d569a17..e6d89eed3a8 100644
--- a/extern/recastnavigation/Recast/Source/RecastMesh.cpp
+++ b/extern/recastnavigation/Recast/Source/RecastMesh.cpp
@@ -305,7 +305,7 @@ static int triangulate(int n, const int* verts, int* indices, int* tris)
while (n > 3)
{
int minLen = -1;
- int mini = -1;
+ int i_min = -1;
for (int i = 0; i < n; i++)
{
int i1 = next(i, n);
@@ -321,12 +321,12 @@ static int triangulate(int n, const int* verts, int* indices, int* tris)
if (minLen < 0 || len < minLen)
{
minLen = len;
- mini = i;
+ i_min = i;
}
}
}
- if (mini == -1)
+ if (i_min == -1)
{
// Should not happen.
/* printf("mini == -1 ntris=%d n=%d\n", ntris, n);
@@ -338,7 +338,7 @@ static int triangulate(int n, const int* verts, int* indices, int* tris)
return -ntris;
}
- int i = mini;
+ int i = i_min;
int i1 = next(i, n);
int i2 = next(i1, n);
diff --git a/extern/recastnavigation/Recast/Source/RecastMeshDetail.cpp b/extern/recastnavigation/Recast/Source/RecastMeshDetail.cpp
index 3922c864eba..130c08ec369 100644
--- a/extern/recastnavigation/Recast/Source/RecastMeshDetail.cpp
+++ b/extern/recastnavigation/Recast/Source/RecastMeshDetail.cpp
@@ -579,23 +579,23 @@ static bool buildPolyDetail(rcContext* ctx, const float* in, const int nin,
const float* vb = &edge[b*3];
// Find maximum deviation along the segment.
float maxd = 0;
- int maxi = -1;
+ int i_max = -1;
for (int m = a+1; m < b; ++m)
{
float d = distancePtSeg(&edge[m*3],va,vb);
if (d > maxd)
{
maxd = d;
- maxi = m;
+ i_max = m;
}
}
// If the max deviation is larger than accepted error,
// add new point, else continue to next segment.
- if (maxi != -1 && maxd > rcSqr(sampleMaxError))
+ if (i_max != -1 && maxd > rcSqr(sampleMaxError))
{
for (int m = nidx; m > k; --m)
idx[m] = idx[m-1];
- idx[k+1] = maxi;
+ idx[k+1] = i_max;
nidx++;
}
else
diff --git a/intern/CMakeLists.txt b/intern/CMakeLists.txt
index 71d2ef5e410..2551df6ba76 100644
--- a/intern/CMakeLists.txt
+++ b/intern/CMakeLists.txt
@@ -28,7 +28,7 @@ add_subdirectory(ghost)
add_subdirectory(guardedalloc)
add_subdirectory(moto)
add_subdirectory(memutil)
-add_subdirectory(iksolver)
+add_subdirectory(opencolorio)
add_subdirectory(opennl)
add_subdirectory(mikktspace)
add_subdirectory(raskter)
@@ -55,10 +55,13 @@ if(WITH_MOD_DECIMATE)
endif()
if(WITH_MOD_BOOLEAN)
- add_subdirectory(boolop)
add_subdirectory(bsp)
endif()
+if(WITH_IK_SOLVER)
+ add_subdirectory(iksolver)
+endif()
+
if(WITH_IK_ITASC)
add_subdirectory(itasc)
endif()
@@ -71,3 +74,4 @@ endif()
if(WIN32)
add_subdirectory(utfconv)
endif()
+
diff --git a/intern/SConscript b/intern/SConscript
index 3bfdc2c4ca7..3e40ef38705 100644
--- a/intern/SConscript
+++ b/intern/SConscript
@@ -11,7 +11,7 @@ SConscript(['audaspace/SConscript',
'decimation/SConscript',
'iksolver/SConscript',
'itasc/SConscript',
- 'boolop/SConscript',
+ 'opencolorio/SConscript',
'opennl/SConscript',
'mikktspace/SConscript',
'smoke/SConscript',
@@ -26,7 +26,9 @@ if env['WITH_BF_FLUID']:
if env['WITH_BF_CYCLES']:
SConscript(['cycles/SConscript'])
-SConscript(['bsp/SConscript'])
+if env['WITH_BF_BOOLEAN']:
+ SConscript(['bsp/SConscript'])
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'win64-mingw', 'linuxcross', 'win64-vc'):
SConscript(['utfconv/SConscript'])
+
diff --git a/intern/audaspace/FX/AUD_ButterworthFactory.h b/intern/audaspace/FX/AUD_ButterworthFactory.h
index d3606270154..dc8b4d92775 100644
--- a/intern/audaspace/FX/AUD_ButterworthFactory.h
+++ b/intern/audaspace/FX/AUD_ButterworthFactory.h
@@ -56,8 +56,8 @@ public:
AUD_ButterworthFactory(AUD_Reference<AUD_IFactory> factory, float frequency);
virtual void recalculateCoefficients(AUD_SampleRate rate,
- std::vector<float>& b,
- std::vector<float>& a);
+ std::vector<float>& b,
+ std::vector<float>& a);
};
#endif //__AUD_BUTTERWORTHFACTORY_H__
diff --git a/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h b/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h
index fef379f68b1..5b297db2d56 100644
--- a/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h
+++ b/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h
@@ -56,8 +56,8 @@ public:
* \param[out] a The output filter coefficients.
*/
virtual void recalculateCoefficients(AUD_SampleRate rate,
- std::vector<float>& b,
- std::vector<float>& a)=0;
+ std::vector<float>& b,
+ std::vector<float>& a)=0;
};
#endif // __AUD_DYNAMICIIRFILTERFACTORY_H__
diff --git a/intern/audaspace/FX/AUD_FaderFactory.h b/intern/audaspace/FX/AUD_FaderFactory.h
index 8fcd4baa623..82eaf2fae9f 100644
--- a/intern/audaspace/FX/AUD_FaderFactory.h
+++ b/intern/audaspace/FX/AUD_FaderFactory.h
@@ -68,8 +68,8 @@ public:
* \param length How long fading should last in seconds.
*/
AUD_FaderFactory(AUD_Reference<AUD_IFactory> factory,
- AUD_FadeType type = AUD_FADE_IN,
- float start = 0.0f, float length = 1.0f);
+ AUD_FadeType type = AUD_FADE_IN,
+ float start = 0.0f, float length = 1.0f);
/**
* Returns the fading type.
diff --git a/intern/audaspace/FX/AUD_IIRFilterReader.cpp b/intern/audaspace/FX/AUD_IIRFilterReader.cpp
index 06880818692..8f78c110d1f 100644
--- a/intern/audaspace/FX/AUD_IIRFilterReader.cpp
+++ b/intern/audaspace/FX/AUD_IIRFilterReader.cpp
@@ -34,7 +34,7 @@ AUD_IIRFilterReader::AUD_IIRFilterReader(AUD_Reference<AUD_IReader> reader,
const std::vector<float>& a) :
AUD_BaseIIRFilterReader(reader, b.size(), a.size()), m_a(a), m_b(b)
{
- if(m_a.size())
+ if(m_a.empty() == false)
{
for(int i = 1; i < m_a.size(); i++)
m_a[i] /= m_a[0];
diff --git a/intern/audaspace/OpenAL/AUD_OpenALDevice.cpp b/intern/audaspace/OpenAL/AUD_OpenALDevice.cpp
index c3f3f46d188..f68d41f6a1c 100644
--- a/intern/audaspace/OpenAL/AUD_OpenALDevice.cpp
+++ b/intern/audaspace/OpenAL/AUD_OpenALDevice.cpp
@@ -767,7 +767,7 @@ bool AUD_OpenALDevice::AUD_OpenALHandle::setConeVolumeOuter(float volume)
/**************************** Threading Code **********************************/
/******************************************************************************/
-void* AUD_openalRunThread(void* device)
+static void *AUD_openalRunThread(void *device)
{
AUD_OpenALDevice* dev = (AUD_OpenALDevice*)device;
dev->updateStreams();
@@ -993,7 +993,7 @@ AUD_OpenALDevice::AUD_OpenALDevice(AUD_DeviceSpecs specs, int buffersize)
AUD_THROW(AUD_ERROR_OPENAL, open_error);
// at least try to set the frequency
- ALCint attribs[] = { ALC_FREQUENCY, specs.rate, 0 };
+ ALCint attribs[] = { ALC_FREQUENCY, (ALCint)specs.rate, 0 };
ALCint* attributes = attribs;
if(specs.rate == AUD_RATE_INVALID)
attributes = NULL;
diff --git a/intern/audaspace/Python/AUD_PyAPI.cpp b/intern/audaspace/Python/AUD_PyAPI.cpp
index 238249bc7c8..dd58e5a7398 100644
--- a/intern/audaspace/Python/AUD_PyAPI.cpp
+++ b/intern/audaspace/Python/AUD_PyAPI.cpp
@@ -80,7 +80,7 @@ typedef enum
// ====================================================================
-static PyObject* AUDError;
+static PyObject *AUDError;
static const char* device_not_3d_error = "Device is not a 3D device!";
@@ -92,7 +92,7 @@ Factory_dealloc(Factory* self)
if(self->factory)
delete reinterpret_cast<AUD_Reference<AUD_IFactory>*>(self->factory);
Py_XDECREF(self->child_list);
- Py_TYPE(self)->tp_free((PyObject*)self);
+ Py_TYPE(self)->tp_free((PyObject *)self);
}
static PyObject *
@@ -139,7 +139,7 @@ PyDoc_STRVAR(M_aud_Factory_sine_doc,
":rtype: :class:`Factory`");
static PyObject *
-Factory_sine(PyTypeObject* type, PyObject* args)
+Factory_sine(PyTypeObject* type, PyObject *args)
{
float frequency;
double rate = 44100;
@@ -179,7 +179,7 @@ PyDoc_STRVAR(M_aud_Factory_file_doc,
"playback of that factory.");
static PyObject *
-Factory_file(PyTypeObject* type, PyObject* args)
+Factory_file(PyTypeObject* type, PyObject *args)
{
const char* filename = NULL;
@@ -218,7 +218,7 @@ PyDoc_STRVAR(M_aud_Factory_lowpass_doc,
":rtype: :class:`Factory`");
static PyObject *
-Factory_lowpass(Factory* self, PyObject* args)
+Factory_lowpass(Factory* self, PyObject *args)
{
float frequency;
float Q = 0.5;
@@ -232,7 +232,7 @@ Factory_lowpass(Factory* self, PyObject* args)
if(parent != NULL)
{
Py_INCREF(self);
- parent->child_list = (PyObject*)self;
+ parent->child_list = (PyObject *)self;
try
{
@@ -260,7 +260,7 @@ PyDoc_STRVAR(M_aud_Factory_delay_doc,
":rtype: :class:`Factory`");
static PyObject *
-Factory_delay(Factory* self, PyObject* args)
+Factory_delay(Factory* self, PyObject *args)
{
float delay;
@@ -273,7 +273,7 @@ Factory_delay(Factory* self, PyObject* args)
if(parent != NULL)
{
Py_INCREF(self);
- parent->child_list = (PyObject*)self;
+ parent->child_list = (PyObject *)self;
try
{
@@ -301,7 +301,7 @@ PyDoc_STRVAR(M_aud_Factory_join_doc,
"(channels and samplerate).");
static PyObject *
-Factory_join(Factory* self, PyObject* object)
+Factory_join(Factory* self, PyObject *object)
{
PyTypeObject* type = Py_TYPE(self);
@@ -346,7 +346,7 @@ PyDoc_STRVAR(M_aud_Factory_highpass_doc,
":rtype: :class:`Factory`");
static PyObject *
-Factory_highpass(Factory* self, PyObject* args)
+Factory_highpass(Factory* self, PyObject *args)
{
float frequency;
float Q = 0.5;
@@ -360,7 +360,7 @@ Factory_highpass(Factory* self, PyObject* args)
if(parent != NULL)
{
Py_INCREF(self);
- parent->child_list = (PyObject*)self;
+ parent->child_list = (PyObject *)self;
try
{
@@ -388,7 +388,7 @@ PyDoc_STRVAR(M_aud_Factory_limit_doc,
":rtype: :class:`Factory`");
static PyObject *
-Factory_limit(Factory* self, PyObject* args)
+Factory_limit(Factory* self, PyObject *args)
{
float start, end;
@@ -401,7 +401,7 @@ Factory_limit(Factory* self, PyObject* args)
if(parent != NULL)
{
Py_INCREF(self);
- parent->child_list = (PyObject*)self;
+ parent->child_list = (PyObject *)self;
try
{
@@ -432,7 +432,7 @@ PyDoc_STRVAR(M_aud_Factory_pitch_doc,
":attr:`Handle.pitch` instead.");
static PyObject *
-Factory_pitch(Factory* self, PyObject* args)
+Factory_pitch(Factory* self, PyObject *args)
{
float factor;
@@ -445,7 +445,7 @@ Factory_pitch(Factory* self, PyObject* args)
if(parent != NULL)
{
Py_INCREF(self);
- parent->child_list = (PyObject*)self;
+ parent->child_list = (PyObject *)self;
try
{
@@ -474,7 +474,7 @@ PyDoc_STRVAR(M_aud_Factory_volume_doc,
":attr:`Handle.volume` instead.");
static PyObject *
-Factory_volume(Factory* self, PyObject* args)
+Factory_volume(Factory* self, PyObject *args)
{
float volume;
@@ -487,7 +487,7 @@ Factory_volume(Factory* self, PyObject* args)
if(parent != NULL)
{
Py_INCREF(self);
- parent->child_list = (PyObject*)self;
+ parent->child_list = (PyObject *)self;
try
{
@@ -517,7 +517,7 @@ PyDoc_STRVAR(M_aud_Factory_fadein_doc,
".. note:: Before the fade starts it plays silence.");
static PyObject *
-Factory_fadein(Factory* self, PyObject* args)
+Factory_fadein(Factory* self, PyObject *args)
{
float start, length;
@@ -530,7 +530,7 @@ Factory_fadein(Factory* self, PyObject* args)
if(parent != NULL)
{
Py_INCREF(self);
- parent->child_list = (PyObject*)self;
+ parent->child_list = (PyObject *)self;
try
{
@@ -561,7 +561,7 @@ PyDoc_STRVAR(M_aud_Factory_fadeout_doc,
"the length of the factory is not altered.");
static PyObject *
-Factory_fadeout(Factory* self, PyObject* args)
+Factory_fadeout(Factory* self, PyObject *args)
{
float start, length;
@@ -574,7 +574,7 @@ Factory_fadeout(Factory* self, PyObject* args)
if(parent != NULL)
{
Py_INCREF(self);
- parent->child_list = (PyObject*)self;
+ parent->child_list = (PyObject *)self;
try
{
@@ -603,7 +603,7 @@ PyDoc_STRVAR(M_aud_Factory_loop_doc,
":attr:`Handle.loop_count` instead.");
static PyObject *
-Factory_loop(Factory* self, PyObject* args)
+Factory_loop(Factory* self, PyObject *args)
{
int loop;
@@ -616,7 +616,7 @@ Factory_loop(Factory* self, PyObject* args)
if(parent != NULL)
{
Py_INCREF(self);
- parent->child_list = (PyObject*)self;
+ parent->child_list = (PyObject *)self;
try
{
@@ -644,7 +644,7 @@ PyDoc_STRVAR(M_aud_Factory_mix_doc,
"(channels and samplerate).");
static PyObject *
-Factory_mix(Factory* self, PyObject* object)
+Factory_mix(Factory* self, PyObject *object)
{
PyTypeObject* type = Py_TYPE(self);
@@ -692,7 +692,7 @@ Factory_pingpong(Factory* self)
if(parent != NULL)
{
Py_INCREF(self);
- parent->child_list = (PyObject*)self;
+ parent->child_list = (PyObject *)self;
try
{
@@ -731,7 +731,7 @@ Factory_reverse(Factory* self)
if(parent != NULL)
{
Py_INCREF(self);
- parent->child_list = (PyObject*)self;
+ parent->child_list = (PyObject *)self;
try
{
@@ -795,7 +795,7 @@ PyDoc_STRVAR(M_aud_Factory_square_doc,
":rtype: :class:`Factory`");
static PyObject *
-Factory_square(Factory* self, PyObject* args)
+Factory_square(Factory* self, PyObject *args)
{
float threshold = 0;
@@ -808,7 +808,7 @@ Factory_square(Factory* self, PyObject* args)
if(parent != NULL)
{
Py_INCREF(self);
- parent->child_list = (PyObject*)self;
+ parent->child_list = (PyObject *)self;
try
{
@@ -842,10 +842,10 @@ PyDoc_STRVAR(M_aud_Factory_filter_doc,
":rtype: :class:`Factory`");
static PyObject *
-Factory_filter(Factory* self, PyObject* args)
+Factory_filter(Factory* self, PyObject *args)
{
- PyObject* py_b;
- PyObject* py_a = NULL;
+ PyObject *py_b;
+ PyObject *py_a = NULL;
Py_ssize_t py_a_len;
Py_ssize_t py_b_len;
@@ -868,7 +868,7 @@ Factory_filter(Factory* self, PyObject* args)
}
std::vector<float> a, b;
- PyObject* py_value;
+ PyObject *py_value;
float value;
for(Py_ssize_t i = 0; i < py_b_len; i++)
@@ -911,7 +911,7 @@ Factory_filter(Factory* self, PyObject* args)
if(parent != NULL)
{
Py_INCREF(self);
- parent->child_list = (PyObject*)self;
+ parent->child_list = (PyObject *)self;
try
{
@@ -1040,7 +1040,7 @@ Handle_dealloc(Handle* self)
{
if(self->handle)
delete reinterpret_cast<AUD_Reference<AUD_IHandle>*>(self->handle);
- Py_TYPE(self)->tp_free((PyObject*)self);
+ Py_TYPE(self)->tp_free((PyObject *)self);
}
PyDoc_STRVAR(M_aud_Handle_pause_doc,
@@ -1135,7 +1135,7 @@ Handle_get_position(Handle *self, void* nothing)
}
static int
-Handle_set_position(Handle *self, PyObject* args, void* nothing)
+Handle_set_position(Handle *self, PyObject *args, void* nothing)
{
float position;
@@ -1180,7 +1180,7 @@ Handle_get_keep(Handle *self, void* nothing)
}
static int
-Handle_set_keep(Handle *self, PyObject* args, void* nothing)
+Handle_set_keep(Handle *self, PyObject *args, void* nothing)
{
if(!PyBool_Check(args))
{
@@ -1239,7 +1239,7 @@ Handle_get_volume(Handle *self, void* nothing)
}
static int
-Handle_set_volume(Handle *self, PyObject* args, void* nothing)
+Handle_set_volume(Handle *self, PyObject *args, void* nothing)
{
float volume;
@@ -1278,7 +1278,7 @@ Handle_get_pitch(Handle *self, void* nothing)
}
static int
-Handle_set_pitch(Handle *self, PyObject* args, void* nothing)
+Handle_set_pitch(Handle *self, PyObject *args, void* nothing)
{
float pitch;
@@ -1317,7 +1317,7 @@ Handle_get_loop_count(Handle *self, void* nothing)
}
static int
-Handle_set_loop_count(Handle *self, PyObject* args, void* nothing)
+Handle_set_loop_count(Handle *self, PyObject *args, void* nothing)
{
int loops;
@@ -1366,7 +1366,7 @@ Handle_get_location(Handle *self, void* nothing)
}
static int
-Handle_set_location(Handle *self, PyObject* args, void* nothing)
+Handle_set_location(Handle *self, PyObject *args, void* nothing)
{
float x, y, z;
@@ -1422,7 +1422,7 @@ Handle_get_velocity(Handle *self, void* nothing)
}
static int
-Handle_set_velocity(Handle *self, PyObject* args, void* nothing)
+Handle_set_velocity(Handle *self, PyObject *args, void* nothing)
{
float x, y, z;
@@ -1478,7 +1478,7 @@ Handle_get_orientation(Handle *self, void* nothing)
}
static int
-Handle_set_orientation(Handle *self, PyObject* args, void* nothing)
+Handle_set_orientation(Handle *self, PyObject *args, void* nothing)
{
float w, x, y, z;
@@ -1533,7 +1533,7 @@ Handle_get_relative(Handle *self, void* nothing)
}
static int
-Handle_set_relative(Handle *self, PyObject* args, void* nothing)
+Handle_set_relative(Handle *self, PyObject *args, void* nothing)
{
if(!PyBool_Check(args))
{
@@ -1591,7 +1591,7 @@ Handle_get_volume_minimum(Handle *self, void* nothing)
}
static int
-Handle_set_volume_minimum(Handle *self, PyObject* args, void* nothing)
+Handle_set_volume_minimum(Handle *self, PyObject *args, void* nothing)
{
float volume;
@@ -1646,7 +1646,7 @@ Handle_get_volume_maximum(Handle *self, void* nothing)
}
static int
-Handle_set_volume_maximum(Handle *self, PyObject* args, void* nothing)
+Handle_set_volume_maximum(Handle *self, PyObject *args, void* nothing)
{
float volume;
@@ -1702,7 +1702,7 @@ Handle_get_distance_reference(Handle *self, void* nothing)
}
static int
-Handle_set_distance_reference(Handle *self, PyObject* args, void* nothing)
+Handle_set_distance_reference(Handle *self, PyObject *args, void* nothing)
{
float distance;
@@ -1758,7 +1758,7 @@ Handle_get_distance_maximum(Handle *self, void* nothing)
}
static int
-Handle_set_distance_maximum(Handle *self, PyObject* args, void* nothing)
+Handle_set_distance_maximum(Handle *self, PyObject *args, void* nothing)
{
float distance;
@@ -1814,7 +1814,7 @@ Handle_get_attenuation(Handle *self, void* nothing)
}
static int
-Handle_set_attenuation(Handle *self, PyObject* args, void* nothing)
+Handle_set_attenuation(Handle *self, PyObject *args, void* nothing)
{
float factor;
@@ -1875,7 +1875,7 @@ Handle_get_cone_angle_inner(Handle *self, void* nothing)
}
static int
-Handle_set_cone_angle_inner(Handle *self, PyObject* args, void* nothing)
+Handle_set_cone_angle_inner(Handle *self, PyObject *args, void* nothing)
{
float angle;
@@ -1930,7 +1930,7 @@ Handle_get_cone_angle_outer(Handle *self, void* nothing)
}
static int
-Handle_set_cone_angle_outer(Handle *self, PyObject* args, void* nothing)
+Handle_set_cone_angle_outer(Handle *self, PyObject *args, void* nothing)
{
float angle;
@@ -1985,7 +1985,7 @@ Handle_get_cone_volume_outer(Handle *self, void* nothing)
}
static int
-Handle_set_cone_volume_outer(Handle *self, PyObject* args, void* nothing)
+Handle_set_cone_volume_outer(Handle *self, PyObject *args, void* nothing)
{
float volume;
@@ -2105,7 +2105,7 @@ Device_dealloc(Device* self)
{
if(self->device)
delete reinterpret_cast<AUD_Reference<AUD_IDevice>*>(self->device);
- Py_TYPE(self)->tp_free((PyObject*)self);
+ Py_TYPE(self)->tp_free((PyObject *)self);
}
static PyObject *
@@ -2201,8 +2201,8 @@ PyDoc_STRVAR(M_aud_Device_play_doc,
static PyObject *
Device_play(Device *self, PyObject *args, PyObject *kwds)
{
- PyObject* object;
- PyObject* keepo = NULL;
+ PyObject *object;
+ PyObject *keepo = NULL;
bool keep = false;
@@ -2402,7 +2402,7 @@ Device_get_volume(Device *self, void* nothing)
}
static int
-Device_set_volume(Device *self, PyObject* args, void* nothing)
+Device_set_volume(Device *self, PyObject *args, void* nothing)
{
float volume;
@@ -2449,7 +2449,7 @@ Device_get_listener_location(Device *self, void* nothing)
}
static int
-Device_set_listener_location(Device *self, PyObject* args, void* nothing)
+Device_set_listener_location(Device *self, PyObject *args, void* nothing)
{
float x, y, z;
@@ -2504,7 +2504,7 @@ Device_get_listener_velocity(Device *self, void* nothing)
}
static int
-Device_set_listener_velocity(Device *self, PyObject* args, void* nothing)
+Device_set_listener_velocity(Device *self, PyObject *args, void* nothing)
{
float x, y, z;
@@ -2559,7 +2559,7 @@ Device_get_listener_orientation(Device *self, void* nothing)
}
static int
-Device_set_listener_orientation(Device *self, PyObject* args, void* nothing)
+Device_set_listener_orientation(Device *self, PyObject *args, void* nothing)
{
float w, x, y, z;
@@ -2614,7 +2614,7 @@ Device_get_speed_of_sound(Device *self, void* nothing)
}
static int
-Device_set_speed_of_sound(Device *self, PyObject* args, void* nothing)
+Device_set_speed_of_sound(Device *self, PyObject *args, void* nothing)
{
float speed;
@@ -2670,7 +2670,7 @@ Device_get_doppler_factor(Device *self, void* nothing)
}
static int
-Device_set_doppler_factor(Device *self, PyObject* args, void* nothing)
+Device_set_doppler_factor(Device *self, PyObject *args, void* nothing)
{
float factor;
@@ -2724,7 +2724,7 @@ Device_get_distance_model(Device *self, void* nothing)
}
static int
-Device_set_distance_model(Device *self, PyObject* args, void* nothing)
+Device_set_distance_model(Device *self, PyObject *args, void* nothing)
{
int model;
@@ -2833,7 +2833,7 @@ Factory_empty()
}
Factory*
-checkFactory(PyObject* factory)
+checkFactory(PyObject *factory)
{
if(!PyObject_TypeCheck(factory, &FactoryType))
{
@@ -2862,7 +2862,7 @@ static struct PyModuleDef audmodule = {
PyMODINIT_FUNC
PyInit_aud(void)
{
- PyObject* m;
+ PyObject *m;
if(PyType_Ready(&FactoryType) < 0)
return NULL;
@@ -2878,13 +2878,13 @@ PyInit_aud(void)
return NULL;
Py_INCREF(&FactoryType);
- PyModule_AddObject(m, "Factory", (PyObject*)&FactoryType);
+ PyModule_AddObject(m, "Factory", (PyObject *)&FactoryType);
Py_INCREF(&DeviceType);
- PyModule_AddObject(m, "Device", (PyObject*)&DeviceType);
+ PyModule_AddObject(m, "Device", (PyObject *)&DeviceType);
Py_INCREF(&HandleType);
- PyModule_AddObject(m, "Handle", (PyObject*)&HandleType);
+ PyModule_AddObject(m, "Handle", (PyObject *)&HandleType);
AUDError = PyErr_NewException("aud.error", NULL, NULL);
Py_INCREF(AUDError);
diff --git a/intern/audaspace/Python/AUD_PyAPI.h b/intern/audaspace/Python/AUD_PyAPI.h
index 7a7e87ec67d..0183a2df6b2 100644
--- a/intern/audaspace/Python/AUD_PyAPI.h
+++ b/intern/audaspace/Python/AUD_PyAPI.h
@@ -46,7 +46,7 @@ typedef void AUD_Reference_AUD_IHandle;
typedef struct {
PyObject_HEAD
- PyObject* child_list;
+ PyObject *child_list;
AUD_Reference_AUD_IFactory* factory;
} Factory;
@@ -63,9 +63,9 @@ typedef struct {
PyMODINIT_FUNC
PyInit_aud(void);
-extern PyObject* Device_empty();
-extern PyObject* Factory_empty();
-extern Factory* checkFactory(PyObject* factory);
+extern PyObject *Device_empty();
+extern PyObject *Factory_empty();
+extern Factory *checkFactory(PyObject *factory);
#ifdef __cplusplus
}
diff --git a/intern/audaspace/fftw/AUD_BandPassFactory.h b/intern/audaspace/fftw/AUD_BandPassFactory.h
index 75de071403f..90b090dce16 100644
--- a/intern/audaspace/fftw/AUD_BandPassFactory.h
+++ b/intern/audaspace/fftw/AUD_BandPassFactory.h
@@ -84,7 +84,7 @@ public:
* Sets the highest passed frequency.
* \param high The highest passed frequency.
*/
- void setHigh(float hight);
+ void setHigh(float high);
virtual AUD_IReader* createReader();
};
diff --git a/intern/audaspace/intern/AUD_3DMath.h b/intern/audaspace/intern/AUD_3DMath.h
index f39566958cd..1b109ebee1e 100644
--- a/intern/audaspace/intern/AUD_3DMath.h
+++ b/intern/audaspace/intern/AUD_3DMath.h
@@ -136,8 +136,8 @@ public:
inline AUD_Vector3 cross(const AUD_Vector3& op) const
{
return AUD_Vector3(m_y * op.m_z - m_z * op.m_y,
- m_z * op.m_x - m_x * op.m_z,
- m_x * op.m_y - m_y * op.m_x);
+ m_z * op.m_x - m_x * op.m_z,
+ m_x * op.m_y - m_y * op.m_x);
}
/**
diff --git a/intern/audaspace/intern/AUD_C-API.cpp b/intern/audaspace/intern/AUD_C-API.cpp
index 50b47650696..46bba237cff 100644
--- a/intern/audaspace/intern/AUD_C-API.cpp
+++ b/intern/audaspace/intern/AUD_C-API.cpp
@@ -99,11 +99,11 @@ typedef AUD_Reference<AUD_SequencerEntry> AUD_SEntry;
#include "AUD_C-API.h"
#ifndef NULL
-#define NULL 0
+# define NULL (void *)0
#endif
static AUD_Reference<AUD_IDevice> AUD_device;
-static AUD_I3DDevice* AUD_3ddevice;
+static AUD_I3DDevice *AUD_3ddevice;
void AUD_initOnce()
{
@@ -116,13 +116,12 @@ int AUD_init(AUD_DeviceType device, AUD_DeviceSpecs specs, int buffersize)
{
AUD_Reference<AUD_IDevice> dev;
- if(!AUD_device.isNull())
+ if (!AUD_device.isNull()) {
AUD_exit();
+ }
- try
- {
- switch(device)
- {
+ try {
+ switch(device) {
case AUD_NULL_DEVICE:
dev = new AUD_NULLDevice();
break;
@@ -140,8 +139,7 @@ int AUD_init(AUD_DeviceType device, AUD_DeviceSpecs specs, int buffersize)
case AUD_JACK_DEVICE:
#ifdef __APPLE__
struct stat st;
- if(stat("/Library/Frameworks/Jackmp.framework", &st) != 0)
- {
+ if (stat("/Library/Frameworks/Jackmp.framework", &st) != 0) {
printf("Warning: Jack Framework not installed\n");
// No break, fall through to default, to return false
}
@@ -159,7 +157,7 @@ int AUD_init(AUD_DeviceType device, AUD_DeviceSpecs specs, int buffersize)
}
AUD_device = dev;
- AUD_3ddevice = dynamic_cast<AUD_I3DDevice*>(AUD_device.get());
+ AUD_3ddevice = dynamic_cast<AUD_I3DDevice *>(AUD_device.get());
return true;
}
@@ -176,48 +174,44 @@ void AUD_exit()
}
#ifdef WITH_PYTHON
-static PyObject* AUD_getCDevice(PyObject* self)
+static PyObject *AUD_getCDevice(PyObject *self)
{
- if(!AUD_device.isNull())
- {
- Device* device = (Device*)Device_empty();
- if(device != NULL)
- {
+ if (!AUD_device.isNull()) {
+ Device *device = (Device *)Device_empty();
+ if (device != NULL) {
device->device = new AUD_Reference<AUD_IDevice>(AUD_device);
- return (PyObject*)device;
+ return (PyObject *)device;
}
}
Py_RETURN_NONE;
}
-static PyMethodDef meth_getcdevice[] = {{ "device", (PyCFunction)AUD_getCDevice, METH_NOARGS,
- "device()\n\n"
- "Returns the application's :class:`Device`.\n\n"
- ":return: The application's :class:`Device`.\n"
- ":rtype: :class:`Device`"}};
+static PyMethodDef meth_getcdevice[] = {
+ {"device", (PyCFunction)AUD_getCDevice, METH_NOARGS,
+ "device()\n\n"
+ "Returns the application's :class:`Device`.\n\n"
+ ":return: The application's :class:`Device`.\n"
+ ":rtype: :class:`Device`"}
+};
extern "C" {
-extern void* sound_get_factory(void* sound);
+extern void *sound_get_factory(void *sound);
}
-static PyObject* AUD_getSoundFromPointer(PyObject* self, PyObject* args)
+static PyObject *AUD_getSoundFromPointer(PyObject *self, PyObject *args)
{
long int lptr;
- if(PyArg_Parse(args, "l:_sound_from_pointer", &lptr))
- {
- if(lptr)
- {
- AUD_Reference<AUD_IFactory>* factory = (AUD_Reference<AUD_IFactory>*) sound_get_factory((void*) lptr);
+ if (PyArg_Parse(args, "l:_sound_from_pointer", &lptr)) {
+ if (lptr) {
+ AUD_Reference<AUD_IFactory>* factory = (AUD_Reference<AUD_IFactory>*) sound_get_factory((void *) lptr);
- if(factory)
- {
- Factory* obj = (Factory*) Factory_empty();
- if(obj)
- {
+ if (factory) {
+ Factory *obj = (Factory *)Factory_empty();
+ if (obj) {
obj->factory = new AUD_Reference<AUD_IFactory>(*factory);
- return (PyObject*) obj;
+ return (PyObject *) obj;
}
}
}
@@ -226,44 +220,44 @@ static PyObject* AUD_getSoundFromPointer(PyObject* self, PyObject* args)
Py_RETURN_NONE;
}
-static PyMethodDef meth_sound_from_pointer[] = {{ "_sound_from_pointer", (PyCFunction)AUD_getSoundFromPointer, METH_O,
- "_sound_from_pointer(pointer)\n\n"
- "Returns the corresponding :class:`Factory` object.\n\n"
- ":arg pointer: The pointer to the bSound object as long.\n"
- ":type pointer: long\n"
- ":return: The corresponding :class:`Factory` object.\n"
- ":rtype: :class:`Factory`"}};
+static PyMethodDef meth_sound_from_pointer[] = {
+ {"_sound_from_pointer", (PyCFunction)AUD_getSoundFromPointer, METH_O,
+ "_sound_from_pointer(pointer)\n\n"
+ "Returns the corresponding :class:`Factory` object.\n\n"
+ ":arg pointer: The pointer to the bSound object as long.\n"
+ ":type pointer: long\n"
+ ":return: The corresponding :class:`Factory` object.\n"
+ ":rtype: :class:`Factory`"}
+};
-PyObject* AUD_initPython()
+PyObject *AUD_initPython()
{
- PyObject* module = PyInit_aud();
- PyModule_AddObject(module, "device", (PyObject*)PyCFunction_New(meth_getcdevice, NULL));
- PyModule_AddObject(module, "_sound_from_pointer", (PyObject*)PyCFunction_New(meth_sound_from_pointer, NULL));
+ PyObject *module = PyInit_aud();
+ PyModule_AddObject(module, "device", (PyObject *)PyCFunction_New(meth_getcdevice, NULL));
+ PyModule_AddObject(module, "_sound_from_pointer", (PyObject *)PyCFunction_New(meth_sound_from_pointer, NULL));
PyDict_SetItemString(PyImport_GetModuleDict(), "aud", module);
return module;
}
-PyObject* AUD_getPythonFactory(AUD_Sound* sound)
+void *AUD_getPythonFactory(AUD_Sound *sound)
{
- if(sound)
- {
- Factory* obj = (Factory*) Factory_empty();
- if(obj)
- {
+ if (sound) {
+ Factory *obj = (Factory *) Factory_empty();
+ if (obj) {
obj->factory = new AUD_Reference<AUD_IFactory>(*sound);
- return (PyObject*) obj;
+ return (PyObject *) obj;
}
}
return NULL;
}
-AUD_Sound* AUD_getPythonSound(PyObject* sound)
+AUD_Sound *AUD_getPythonSound(void *sound)
{
- Factory* factory = checkFactory(sound);
+ Factory *factory = checkFactory((PyObject *)sound);
- if(!factory)
+ if (!factory)
return NULL;
return new AUD_Reference<AUD_IFactory>(*reinterpret_cast<AUD_Reference<AUD_IFactory>*>(factory->factory));
@@ -281,7 +275,7 @@ void AUD_unlock()
AUD_device->unlock();
}
-AUD_SoundInfo AUD_getInfo(AUD_Sound* sound)
+AUD_SoundInfo AUD_getInfo(AUD_Sound *sound)
{
assert(sound);
@@ -290,12 +284,10 @@ AUD_SoundInfo AUD_getInfo(AUD_Sound* sound)
info.specs.rate = AUD_RATE_INVALID;
info.length = 0.0f;
- try
- {
+ try {
AUD_Reference<AUD_IReader> reader = (*sound)->createReader();
- if(!reader.isNull())
- {
+ if (!reader.isNull()) {
info.specs = reader->getSpecs();
info.length = reader->getLength() / (float) info.specs.rate;
}
@@ -307,24 +299,23 @@ AUD_SoundInfo AUD_getInfo(AUD_Sound* sound)
return info;
}
-AUD_Sound* AUD_load(const char* filename)
+AUD_Sound *AUD_load(const char *filename)
{
assert(filename);
return new AUD_Sound(new AUD_FileFactory(filename));
}
-AUD_Sound* AUD_loadBuffer(unsigned char* buffer, int size)
+AUD_Sound *AUD_loadBuffer(unsigned char *buffer, int size)
{
assert(buffer);
return new AUD_Sound(new AUD_FileFactory(buffer, size));
}
-AUD_Sound* AUD_bufferSound(AUD_Sound* sound)
+AUD_Sound *AUD_bufferSound(AUD_Sound *sound)
{
assert(sound);
- try
- {
+ try {
return new AUD_Sound(new AUD_StreamBufferFactory(*sound));
}
catch(AUD_Exception&)
@@ -333,12 +324,11 @@ AUD_Sound* AUD_bufferSound(AUD_Sound* sound)
}
}
-AUD_Sound* AUD_monoSound(AUD_Sound* sound)
+AUD_Sound *AUD_monoSound(AUD_Sound *sound)
{
assert(sound);
- try
- {
+ try {
AUD_DeviceSpecs specs;
specs.channels = AUD_CHANNELS_MONO;
specs.rate = AUD_RATE_INVALID;
@@ -351,12 +341,11 @@ AUD_Sound* AUD_monoSound(AUD_Sound* sound)
}
}
-AUD_Sound* AUD_delaySound(AUD_Sound* sound, float delay)
+AUD_Sound *AUD_delaySound(AUD_Sound *sound, float delay)
{
assert(sound);
- try
- {
+ try {
return new AUD_Sound(new AUD_DelayFactory(*sound, delay));
}
catch(AUD_Exception&)
@@ -365,12 +354,11 @@ AUD_Sound* AUD_delaySound(AUD_Sound* sound, float delay)
}
}
-AUD_Sound* AUD_limitSound(AUD_Sound* sound, float start, float end)
+AUD_Sound *AUD_limitSound(AUD_Sound *sound, float start, float end)
{
assert(sound);
- try
- {
+ try {
return new AUD_Sound(new AUD_LimiterFactory(*sound, start, end));
}
catch(AUD_Exception&)
@@ -379,12 +367,11 @@ AUD_Sound* AUD_limitSound(AUD_Sound* sound, float start, float end)
}
}
-AUD_Sound* AUD_pingpongSound(AUD_Sound* sound)
+AUD_Sound *AUD_pingpongSound(AUD_Sound *sound)
{
assert(sound);
- try
- {
+ try {
return new AUD_Sound(new AUD_PingPongFactory(*sound));
}
catch(AUD_Exception&)
@@ -393,12 +380,11 @@ AUD_Sound* AUD_pingpongSound(AUD_Sound* sound)
}
}
-AUD_Sound* AUD_loopSound(AUD_Sound* sound)
+AUD_Sound *AUD_loopSound(AUD_Sound *sound)
{
assert(sound);
- try
- {
+ try {
return new AUD_Sound(new AUD_LoopFactory(*sound));
}
catch(AUD_Exception&)
@@ -407,12 +393,11 @@ AUD_Sound* AUD_loopSound(AUD_Sound* sound)
}
}
-int AUD_setLoop(AUD_Handle* handle, int loops)
+int AUD_setLoop(AUD_Handle *handle, int loops)
{
assert(handle);
- try
- {
+ try {
return (*handle)->setLoopCount(loops);
}
catch(AUD_Exception&)
@@ -422,12 +407,11 @@ int AUD_setLoop(AUD_Handle* handle, int loops)
return false;
}
-AUD_Sound* AUD_rectifySound(AUD_Sound* sound)
+AUD_Sound *AUD_rectifySound(AUD_Sound *sound)
{
assert(sound);
- try
- {
+ try {
return new AUD_Sound(new AUD_RectifyFactory(*sound));
}
catch(AUD_Exception&)
@@ -436,20 +420,20 @@ AUD_Sound* AUD_rectifySound(AUD_Sound* sound)
}
}
-void AUD_unload(AUD_Sound* sound)
+void AUD_unload(AUD_Sound *sound)
{
assert(sound);
delete sound;
}
-AUD_Handle* AUD_play(AUD_Sound* sound, int keep)
+AUD_Handle *AUD_play(AUD_Sound *sound, int keep)
{
assert(sound);
- try
- {
+ try {
AUD_Handle handle = AUD_device->play(*sound, keep);
- if(!handle.isNull())
+ if (!handle.isNull()) {
return new AUD_Handle(handle);
+ }
}
catch(AUD_Exception&)
{
@@ -457,19 +441,19 @@ AUD_Handle* AUD_play(AUD_Sound* sound, int keep)
return NULL;
}
-int AUD_pause(AUD_Handle* handle)
+int AUD_pause(AUD_Handle *handle)
{
assert(handle);
return (*handle)->pause();
}
-int AUD_resume(AUD_Handle* handle)
+int AUD_resume(AUD_Handle *handle)
{
assert(handle);
return (*handle)->resume();
}
-int AUD_stop(AUD_Handle* handle)
+int AUD_stop(AUD_Handle *handle)
{
assert(handle);
int result = (*handle)->stop();
@@ -477,34 +461,33 @@ int AUD_stop(AUD_Handle* handle)
return result;
}
-int AUD_setKeep(AUD_Handle* handle, int keep)
+int AUD_setKeep(AUD_Handle *handle, int keep)
{
assert(handle);
return (*handle)->setKeep(keep);
}
-int AUD_seek(AUD_Handle* handle, float seekTo)
+int AUD_seek(AUD_Handle *handle, float seekTo)
{
assert(handle);
return (*handle)->seek(seekTo);
}
-float AUD_getPosition(AUD_Handle* handle)
+float AUD_getPosition(AUD_Handle *handle)
{
assert(handle);
return (*handle)->getPosition();
}
-AUD_Status AUD_getStatus(AUD_Handle* handle)
+AUD_Status AUD_getStatus(AUD_Handle *handle)
{
assert(handle);
return (*handle)->getStatus();
}
-int AUD_setListenerLocation(const float* location)
+int AUD_setListenerLocation(const float location[3])
{
- if(AUD_3ddevice)
- {
+ if (AUD_3ddevice) {
AUD_Vector3 v(location[0], location[1], location[2]);
AUD_3ddevice->setListenerLocation(v);
return true;
@@ -513,10 +496,9 @@ int AUD_setListenerLocation(const float* location)
return false;
}
-int AUD_setListenerVelocity(const float* velocity)
+int AUD_setListenerVelocity(const float velocity[3])
{
- if(AUD_3ddevice)
- {
+ if (AUD_3ddevice) {
AUD_Vector3 v(velocity[0], velocity[1], velocity[2]);
AUD_3ddevice->setListenerVelocity(v);
return true;
@@ -525,10 +507,9 @@ int AUD_setListenerVelocity(const float* velocity)
return false;
}
-int AUD_setListenerOrientation(const float* orientation)
+int AUD_setListenerOrientation(const float orientation[4])
{
- if(AUD_3ddevice)
- {
+ if (AUD_3ddevice) {
AUD_Quaternion q(orientation[3], orientation[0], orientation[1], orientation[2]);
AUD_3ddevice->setListenerOrientation(q);
return true;
@@ -539,8 +520,7 @@ int AUD_setListenerOrientation(const float* orientation)
int AUD_setSpeedOfSound(float speed)
{
- if(AUD_3ddevice)
- {
+ if (AUD_3ddevice) {
AUD_3ddevice->setSpeedOfSound(speed);
return true;
}
@@ -550,8 +530,7 @@ int AUD_setSpeedOfSound(float speed)
int AUD_setDopplerFactor(float factor)
{
- if(AUD_3ddevice)
- {
+ if (AUD_3ddevice) {
AUD_3ddevice->setDopplerFactor(factor);
return true;
}
@@ -561,8 +540,7 @@ int AUD_setDopplerFactor(float factor)
int AUD_setDistanceModel(AUD_DistanceModel model)
{
- if(AUD_3ddevice)
- {
+ if (AUD_3ddevice) {
AUD_3ddevice->setDistanceModel(model);
return true;
}
@@ -570,13 +548,12 @@ int AUD_setDistanceModel(AUD_DistanceModel model)
return false;
}
-int AUD_setSourceLocation(AUD_Handle* handle, const float* location)
+int AUD_setSourceLocation(AUD_Handle *handle, const float location[3])
{
assert(handle);
AUD_Reference<AUD_I3DHandle> h(*handle);
- if(!h.isNull())
- {
+ if (!h.isNull()) {
AUD_Vector3 v(location[0], location[1], location[2]);
return h->setSourceLocation(v);
}
@@ -584,13 +561,12 @@ int AUD_setSourceLocation(AUD_Handle* handle, const float* location)
return false;
}
-int AUD_setSourceVelocity(AUD_Handle* handle, const float* velocity)
+int AUD_setSourceVelocity(AUD_Handle *handle, const float velocity[3])
{
assert(handle);
AUD_Reference<AUD_I3DHandle> h(*handle);
- if(!h.isNull())
- {
+ if (!h.isNull()) {
AUD_Vector3 v(velocity[0], velocity[1], velocity[2]);
return h->setSourceVelocity(v);
}
@@ -598,13 +574,12 @@ int AUD_setSourceVelocity(AUD_Handle* handle, const float* velocity)
return false;
}
-int AUD_setSourceOrientation(AUD_Handle* handle, const float* orientation)
+int AUD_setSourceOrientation(AUD_Handle *handle, const float orientation[4])
{
assert(handle);
AUD_Reference<AUD_I3DHandle> h(*handle);
- if(!h.isNull())
- {
+ if (!h.isNull()) {
AUD_Quaternion q(orientation[3], orientation[0], orientation[1], orientation[2]);
return h->setSourceOrientation(q);
}
@@ -612,149 +587,137 @@ int AUD_setSourceOrientation(AUD_Handle* handle, const float* orientation)
return false;
}
-int AUD_setRelative(AUD_Handle* handle, int relative)
+int AUD_setRelative(AUD_Handle *handle, int relative)
{
assert(handle);
AUD_Reference<AUD_I3DHandle> h(*handle);
- if(!h.isNull())
- {
+ if (!h.isNull()) {
return h->setRelative(relative);
}
return false;
}
-int AUD_setVolumeMaximum(AUD_Handle* handle, float volume)
+int AUD_setVolumeMaximum(AUD_Handle *handle, float volume)
{
assert(handle);
AUD_Reference<AUD_I3DHandle> h(*handle);
- if(!h.isNull())
- {
+ if (!h.isNull()) {
return h->setVolumeMaximum(volume);
}
return false;
}
-int AUD_setVolumeMinimum(AUD_Handle* handle, float volume)
+int AUD_setVolumeMinimum(AUD_Handle *handle, float volume)
{
assert(handle);
AUD_Reference<AUD_I3DHandle> h(*handle);
- if(!h.isNull())
- {
+ if (!h.isNull()) {
return h->setVolumeMinimum(volume);
}
return false;
}
-int AUD_setDistanceMaximum(AUD_Handle* handle, float distance)
+int AUD_setDistanceMaximum(AUD_Handle *handle, float distance)
{
assert(handle);
AUD_Reference<AUD_I3DHandle> h(*handle);
- if(!h.isNull())
- {
+ if (!h.isNull()) {
return h->setDistanceMaximum(distance);
}
return false;
}
-int AUD_setDistanceReference(AUD_Handle* handle, float distance)
+int AUD_setDistanceReference(AUD_Handle *handle, float distance)
{
assert(handle);
AUD_Reference<AUD_I3DHandle> h(*handle);
- if(!h.isNull())
- {
+ if (!h.isNull()) {
return h->setDistanceReference(distance);
}
return false;
}
-int AUD_setAttenuation(AUD_Handle* handle, float factor)
+int AUD_setAttenuation(AUD_Handle *handle, float factor)
{
assert(handle);
AUD_Reference<AUD_I3DHandle> h(*handle);
- if(!h.isNull())
- {
+ if (!h.isNull()) {
return h->setAttenuation(factor);
}
return false;
}
-int AUD_setConeAngleOuter(AUD_Handle* handle, float angle)
+int AUD_setConeAngleOuter(AUD_Handle *handle, float angle)
{
assert(handle);
AUD_Reference<AUD_I3DHandle> h(*handle);
- if(!h.isNull())
- {
+ if (!h.isNull()) {
return h->setConeAngleOuter(angle);
}
return false;
}
-int AUD_setConeAngleInner(AUD_Handle* handle, float angle)
+int AUD_setConeAngleInner(AUD_Handle *handle, float angle)
{
assert(handle);
AUD_Reference<AUD_I3DHandle> h(*handle);
- if(!h.isNull())
- {
+ if (!h.isNull()) {
return h->setConeAngleInner(angle);
}
return false;
}
-int AUD_setConeVolumeOuter(AUD_Handle* handle, float volume)
+int AUD_setConeVolumeOuter(AUD_Handle *handle, float volume)
{
assert(handle);
AUD_Reference<AUD_I3DHandle> h(*handle);
- if(!h.isNull())
- {
+ if (!h.isNull()) {
return h->setConeVolumeOuter(volume);
}
return false;
}
-int AUD_setSoundVolume(AUD_Handle* handle, float volume)
+int AUD_setSoundVolume(AUD_Handle *handle, float volume)
{
assert(handle);
- try
- {
+ try {
return (*handle)->setVolume(volume);
}
catch(AUD_Exception&) {}
return false;
}
-int AUD_setSoundPitch(AUD_Handle* handle, float pitch)
+int AUD_setSoundPitch(AUD_Handle *handle, float pitch)
{
assert(handle);
- try
- {
+ try {
return (*handle)->setPitch(pitch);
}
catch(AUD_Exception&) {}
return false;
}
-AUD_Device* AUD_openReadDevice(AUD_DeviceSpecs specs)
+AUD_Device *AUD_openReadDevice(AUD_DeviceSpecs specs)
{
- try
- {
+ try {
return new AUD_Device(new AUD_ReadDevice(specs));
}
catch(AUD_Exception&)
@@ -763,16 +726,14 @@ AUD_Device* AUD_openReadDevice(AUD_DeviceSpecs specs)
}
}
-AUD_Handle* AUD_playDevice(AUD_Device* device, AUD_Sound* sound, float seek)
+AUD_Handle *AUD_playDevice(AUD_Device *device, AUD_Sound *sound, float seek)
{
assert(device);
assert(sound);
- try
- {
+ try {
AUD_Handle handle = (*device)->play(*sound);
- if(!handle.isNull())
- {
+ if (!handle.isNull()) {
handle->seek(seek);
return new AUD_Handle(handle);
}
@@ -783,12 +744,11 @@ AUD_Handle* AUD_playDevice(AUD_Device* device, AUD_Sound* sound, float seek)
return NULL;
}
-int AUD_setDeviceVolume(AUD_Device* device, float volume)
+int AUD_setDeviceVolume(AUD_Device *device, float volume)
{
assert(device);
- try
- {
+ try {
(*device)->setVolume(volume);
return true;
}
@@ -797,13 +757,12 @@ int AUD_setDeviceVolume(AUD_Device* device, float volume)
return false;
}
-int AUD_readDevice(AUD_Device* device, data_t* buffer, int length)
+int AUD_readDevice(AUD_Device *device, data_t *buffer, int length)
{
assert(device);
assert(buffer);
- try
- {
+ try {
return (*device)->read(buffer, length);
}
catch(AUD_Exception&)
@@ -812,12 +771,11 @@ int AUD_readDevice(AUD_Device* device, data_t* buffer, int length)
}
}
-void AUD_closeReadDevice(AUD_Device* device)
+void AUD_closeReadDevice(AUD_Device *device)
{
assert(device);
- try
- {
+ try {
delete device;
}
catch(AUD_Exception&)
@@ -825,10 +783,10 @@ void AUD_closeReadDevice(AUD_Device* device)
}
}
-float* AUD_readSoundBuffer(const char* filename, float low, float high,
- float attack, float release, float threshold,
- int accumulate, int additive, int square,
- float sthreshold, double samplerate, int* length)
+float *AUD_readSoundBuffer(const char *filename, float low, float high,
+ float attack, float release, float threshold,
+ int accumulate, int additive, int square,
+ float sthreshold, double samplerate, int *length)
{
AUD_Buffer buffer;
AUD_DeviceSpecs specs;
@@ -840,33 +798,32 @@ float* AUD_readSoundBuffer(const char* filename, float low, float high,
int position = 0;
- try
- {
+ try {
AUD_Reference<AUD_IReader> reader = file->createReader();
AUD_SampleRate rate = reader->getSpecs().rate;
sound = new AUD_ChannelMapperFactory(file, specs);
- if(high < rate)
+ if (high < rate)
sound = new AUD_LowpassFactory(sound, high);
- if(low > 0)
+ if (low > 0)
sound = new AUD_HighpassFactory(sound, low);
sound = new AUD_EnvelopeFactory(sound, attack, release, threshold, 0.1f);
sound = new AUD_LinearResampleFactory(sound, specs);
- if(square)
+ if (square)
sound = new AUD_SquareFactory(sound, sthreshold);
- if(accumulate)
+ if (accumulate)
sound = new AUD_AccumulatorFactory(sound, additive);
- else if(additive)
+ else if (additive)
sound = new AUD_SumFactory(sound);
reader = sound->createReader();
- if(reader.isNull())
+ if (reader.isNull())
return NULL;
int len;
@@ -884,30 +841,28 @@ float* AUD_readSoundBuffer(const char* filename, float low, float high,
return NULL;
}
- float* result = (float*)malloc(position * sizeof(float));
+ float * result = (float *)malloc(position * sizeof(float));
memcpy(result, buffer.getBuffer(), position * sizeof(float));
*length = position;
return result;
}
-static void pauseSound(AUD_Handle* handle)
+static void pauseSound(AUD_Handle *handle)
{
assert(handle);
(*handle)->pause();
}
-AUD_Handle* AUD_pauseAfter(AUD_Handle* handle, float seconds)
+AUD_Handle *AUD_pauseAfter(AUD_Handle *handle, float seconds)
{
AUD_Reference<AUD_IFactory> silence = new AUD_SilenceFactory;
AUD_Reference<AUD_IFactory> limiter = new AUD_LimiterFactory(silence, 0, seconds);
AUD_device->lock();
- try
- {
+ try {
AUD_Handle handle2 = AUD_device->play(limiter);
- if(!handle2.isNull())
- {
+ if (!handle2.isNull()) {
handle2->setStopCallback((stopCallback)pauseSound, handle);
AUD_device->unlock();
return new AUD_Handle(handle2);
@@ -922,125 +877,127 @@ AUD_Handle* AUD_pauseAfter(AUD_Handle* handle, float seconds)
return NULL;
}
-AUD_Sound* AUD_createSequencer(float fps, int muted)
+AUD_Sound *AUD_createSequencer(float fps, int muted)
{
// specs are changed at a later point!
AUD_Specs specs;
specs.channels = AUD_CHANNELS_STEREO;
specs.rate = AUD_RATE_44100;
- AUD_Sound* sequencer = new AUD_Sound(AUD_Reference<AUD_SequencerFactory>(new AUD_SequencerFactory(specs, fps, muted)));
+ AUD_Sound *sequencer = new AUD_Sound(AUD_Reference<AUD_SequencerFactory>(new AUD_SequencerFactory(specs, fps, muted)));
return sequencer;
}
-void AUD_destroySequencer(AUD_Sound* sequencer)
+void AUD_destroySequencer(AUD_Sound *sequencer)
{
delete sequencer;
}
-void AUD_setSequencerMuted(AUD_Sound* sequencer, int muted)
+void AUD_setSequencerMuted(AUD_Sound *sequencer, int muted)
{
- dynamic_cast<AUD_SequencerFactory*>(sequencer->get())->mute(muted);
+ dynamic_cast<AUD_SequencerFactory *>(sequencer->get())->mute(muted);
}
-void AUD_setSequencerFPS(AUD_Sound* sequencer, float fps)
+void AUD_setSequencerFPS(AUD_Sound *sequencer, float fps)
{
- dynamic_cast<AUD_SequencerFactory*>(sequencer->get())->setFPS(fps);
+ dynamic_cast<AUD_SequencerFactory *>(sequencer->get())->setFPS(fps);
}
-AUD_SEntry* AUD_addSequence(AUD_Sound* sequencer, AUD_Sound* sound,
- float begin, float end, float skip)
+AUD_SEntry *AUD_addSequence(AUD_Sound *sequencer, AUD_Sound *sound,
+ float begin, float end, float skip)
{
- if(!sound)
- return new AUD_SEntry(((AUD_SequencerFactory*)sequencer->get())->add(AUD_Sound(), begin, end, skip));
- return new AUD_SEntry(((AUD_SequencerFactory*)sequencer->get())->add(*sound, begin, end, skip));
+ if (!sound)
+ return new AUD_SEntry(((AUD_SequencerFactory *)sequencer->get())->add(AUD_Sound(), begin, end, skip));
+ return new AUD_SEntry(((AUD_SequencerFactory *)sequencer->get())->add(*sound, begin, end, skip));
}
-void AUD_removeSequence(AUD_Sound* sequencer, AUD_SEntry* entry)
+void AUD_removeSequence(AUD_Sound *sequencer, AUD_SEntry *entry)
{
- dynamic_cast<AUD_SequencerFactory*>(sequencer->get())->remove(*entry);
+ dynamic_cast<AUD_SequencerFactory *>(sequencer->get())->remove(*entry);
delete entry;
}
-void AUD_moveSequence(AUD_SEntry* entry, float begin, float end, float skip)
+void AUD_moveSequence(AUD_SEntry *entry, float begin, float end, float skip)
{
(*entry)->move(begin, end, skip);
}
-void AUD_muteSequence(AUD_SEntry* entry, char mute)
+void AUD_muteSequence(AUD_SEntry *entry, char mute)
{
(*entry)->mute(mute);
}
-void AUD_setRelativeSequence(AUD_SEntry* entry, char relative)
+void AUD_setRelativeSequence(AUD_SEntry *entry, char relative)
{
(*entry)->setRelative(relative);
}
-void AUD_updateSequenceSound(AUD_SEntry* entry, AUD_Sound* sound)
+void AUD_updateSequenceSound(AUD_SEntry *entry, AUD_Sound *sound)
{
- if(sound)
+ if (sound)
(*entry)->setSound(*sound);
else
(*entry)->setSound(AUD_Sound());
}
-void AUD_setSequenceAnimData(AUD_SEntry* entry, AUD_AnimateablePropertyType type, int frame, float* data, char animated)
+void AUD_setSequenceAnimData(AUD_SEntry *entry, AUD_AnimateablePropertyType type, int frame, float *data, char animated)
{
- AUD_AnimateableProperty* prop = (*entry)->getAnimProperty(type);
- if(animated)
- {
- if(frame >= 0)
+ AUD_AnimateableProperty *prop = (*entry)->getAnimProperty(type);
+ if (animated) {
+ if (frame >= 0)
prop->write(data, frame, 1);
}
- else
+ else {
prop->write(data);
+ }
}
-void AUD_setSequencerAnimData(AUD_Sound* sequencer, AUD_AnimateablePropertyType type, int frame, float* data, char animated)
+void AUD_setSequencerAnimData(AUD_Sound *sequencer, AUD_AnimateablePropertyType type, int frame, float *data, char animated)
{
- AUD_AnimateableProperty* prop = dynamic_cast<AUD_SequencerFactory*>(sequencer->get())->getAnimProperty(type);
- if(animated)
- {
- if(frame >= 0)
+ AUD_AnimateableProperty *prop = dynamic_cast<AUD_SequencerFactory *>(sequencer->get())->getAnimProperty(type);
+ if (animated) {
+ if (frame >= 0) {
prop->write(data, frame, 1);
+ }
}
- else
+ else {
prop->write(data);
+ }
}
-void AUD_updateSequenceData(AUD_SEntry* entry, float volume_max, float volume_min,
- float distance_max, float distance_reference, float attenuation,
- float cone_angle_outer, float cone_angle_inner, float cone_volume_outer)
+void AUD_updateSequenceData(AUD_SEntry *entry, float volume_max, float volume_min,
+ float distance_max, float distance_reference, float attenuation,
+ float cone_angle_outer, float cone_angle_inner, float cone_volume_outer)
{
(*entry)->updateAll(volume_max, volume_min, distance_max, distance_reference, attenuation,
- cone_angle_outer, cone_angle_inner, cone_volume_outer);
+ cone_angle_outer, cone_angle_inner, cone_volume_outer);
}
-void AUD_updateSequencerData(AUD_Sound* sequencer, float speed_of_sound,
- float factor, AUD_DistanceModel model)
+void AUD_updateSequencerData(AUD_Sound *sequencer, float speed_of_sound,
+ float factor, AUD_DistanceModel model)
{
- AUD_SequencerFactory* f = dynamic_cast<AUD_SequencerFactory*>(sequencer->get());
+ AUD_SequencerFactory *f = dynamic_cast<AUD_SequencerFactory *>(sequencer->get());
f->setSpeedOfSound(speed_of_sound);
f->setDopplerFactor(factor);
f->setDistanceModel(model);
}
-void AUD_setSequencerDeviceSpecs(AUD_Sound* sequencer)
+void AUD_setSequencerDeviceSpecs(AUD_Sound *sequencer)
{
- dynamic_cast<AUD_SequencerFactory*>(sequencer->get())->setSpecs(AUD_device->getSpecs().specs);
+ dynamic_cast<AUD_SequencerFactory *>(sequencer->get())->setSpecs(AUD_device->getSpecs().specs);
}
-void AUD_setSequencerSpecs(AUD_Sound* sequencer, AUD_Specs specs)
+void AUD_setSequencerSpecs(AUD_Sound *sequencer, AUD_Specs specs)
{
- dynamic_cast<AUD_SequencerFactory*>(sequencer->get())->setSpecs(specs);
+ dynamic_cast<AUD_SequencerFactory *>(sequencer->get())->setSpecs(specs);
}
-void AUD_seekSequencer(AUD_Handle* handle, float time)
+void AUD_seekSequencer(AUD_Handle *handle, float time)
{
#ifdef WITH_JACK
- AUD_JackDevice* device = dynamic_cast<AUD_JackDevice*>(AUD_device.get());
- if(device)
+ AUD_JackDevice *device = dynamic_cast<AUD_JackDevice *>(AUD_device.get());
+ if (device) {
device->seekPlayback(time);
+ }
else
#endif
{
@@ -1049,12 +1006,13 @@ void AUD_seekSequencer(AUD_Handle* handle, float time)
}
}
-float AUD_getSequencerPosition(AUD_Handle* handle)
+float AUD_getSequencerPosition(AUD_Handle *handle)
{
#ifdef WITH_JACK
- AUD_JackDevice* device = dynamic_cast<AUD_JackDevice*>(AUD_device.get());
- if(device)
+ AUD_JackDevice *device = dynamic_cast<AUD_JackDevice *>(AUD_device.get());
+ if (device) {
return device->getPlaybackPosition();
+ }
else
#endif
{
@@ -1066,44 +1024,48 @@ float AUD_getSequencerPosition(AUD_Handle* handle)
void AUD_startPlayback()
{
#ifdef WITH_JACK
- AUD_JackDevice* device = dynamic_cast<AUD_JackDevice*>(AUD_device.get());
- if(device)
+ AUD_JackDevice *device = dynamic_cast<AUD_JackDevice *>(AUD_device.get());
+ if (device) {
device->startPlayback();
+ }
#endif
}
void AUD_stopPlayback()
{
#ifdef WITH_JACK
- AUD_JackDevice* device = dynamic_cast<AUD_JackDevice*>(AUD_device.get());
- if(device)
+ AUD_JackDevice *device = dynamic_cast<AUD_JackDevice *>(AUD_device.get());
+ if (device) {
device->stopPlayback();
+ }
#endif
}
#ifdef WITH_JACK
-void AUD_setSyncCallback(AUD_syncFunction function, void* data)
+void AUD_setSyncCallback(AUD_syncFunction function, void *data)
{
- AUD_JackDevice* device = dynamic_cast<AUD_JackDevice*>(AUD_device.get());
- if(device)
+ AUD_JackDevice *device = dynamic_cast<AUD_JackDevice *>(AUD_device.get());
+ if (device) {
device->setSyncCallback(function, data);
+ }
}
#endif
int AUD_doesPlayback()
{
#ifdef WITH_JACK
- AUD_JackDevice* device = dynamic_cast<AUD_JackDevice*>(AUD_device.get());
- if(device)
+ AUD_JackDevice *device = dynamic_cast<AUD_JackDevice *>(AUD_device.get());
+ if (device) {
return device->doesPlayback();
+ }
#endif
return -1;
}
-int AUD_readSound(AUD_Sound* sound, sample_t* buffer, int length, int samples_per_second)
+int AUD_readSound(AUD_Sound *sound, sample_t *buffer, int length, int samples_per_second)
{
AUD_DeviceSpecs specs;
- sample_t* buf;
+ sample_t *buf;
AUD_Buffer aBuffer;
specs.rate = AUD_RATE_INVALID;
@@ -1120,8 +1082,7 @@ int AUD_readSound(AUD_Sound* sound, sample_t* buffer, int length, int samples_pe
overallmax = 0;
- for(int i = 0; i < length; i++)
- {
+ for (int i = 0; i < length; i++) {
len = floor(samplejump * (i+1)) - floor(samplejump * i);
aBuffer.assureSize(len * AUD_SAMPLE_SIZE(specs));
@@ -1131,11 +1092,10 @@ int AUD_readSound(AUD_Sound* sound, sample_t* buffer, int length, int samples_pe
max = min = *buf;
power = *buf * *buf;
- for(int j = 1; j < len; j++)
- {
- if(buf[j] < min)
+ for (int j = 1; j < len; j++) {
+ if (buf[j] < min)
min = buf[j];
- if(buf[j] > max)
+ if (buf[j] > max)
max = buf[j];
power += buf[j] * buf[j];
}
@@ -1144,22 +1104,19 @@ int AUD_readSound(AUD_Sound* sound, sample_t* buffer, int length, int samples_pe
buffer[i * 3 + 1] = max;
buffer[i * 3 + 2] = sqrt(power) / len;
- if(overallmax < max)
+ if (overallmax < max)
overallmax = max;
- if(overallmax < -min)
+ if (overallmax < -min)
overallmax = -min;
- if(eos)
- {
+ if (eos) {
length = i;
break;
}
}
- if(overallmax > 1.0f)
- {
- for(int i = 0; i < length * 3; i++)
- {
+ if (overallmax > 1.0f) {
+ for (int i = 0; i < length * 3; i++) {
buffer[i] /= overallmax;
}
}
@@ -1167,48 +1124,46 @@ int AUD_readSound(AUD_Sound* sound, sample_t* buffer, int length, int samples_pe
return length;
}
-AUD_Sound* AUD_copy(AUD_Sound* sound)
+AUD_Sound *AUD_copy(AUD_Sound *sound)
{
return new AUD_Reference<AUD_IFactory>(*sound);
}
-void AUD_freeHandle(AUD_Handle* handle)
+void AUD_freeHandle(AUD_Handle *handle)
{
delete handle;
}
-void* AUD_createSet()
+void *AUD_createSet()
{
- return new std::set<void*>();
+ return new std::set<void *>();
}
-void AUD_destroySet(void* set)
+void AUD_destroySet(void *set)
{
- delete reinterpret_cast<std::set<void*>*>(set);
+ delete reinterpret_cast<std::set<void *>*>(set);
}
-char AUD_removeSet(void* set, void* entry)
+char AUD_removeSet(void *set, void *entry)
{
- if(set)
- return reinterpret_cast<std::set<void*>*>(set)->erase(entry);
+ if (set)
+ return reinterpret_cast<std::set<void *>*>(set)->erase(entry);
return 0;
}
-void AUD_addSet(void* set, void* entry)
+void AUD_addSet(void *set, void *entry)
{
- if(entry)
- reinterpret_cast<std::set<void*>*>(set)->insert(entry);
+ if (entry)
+ reinterpret_cast<std::set<void *>*>(set)->insert(entry);
}
-void* AUD_getSet(void* set)
+void *AUD_getSet(void *set)
{
- if(set)
- {
- std::set<void*>* rset = reinterpret_cast<std::set<void*>*>(set);
- if(!rset->empty())
- {
- std::set<void*>::iterator it = rset->begin();
- void* result = *it;
+ if (set) {
+ std::set<void *>* rset = reinterpret_cast<std::set<void *>*>(set);
+ if (!rset->empty()) {
+ std::set<void *>::iterator it = rset->begin();
+ void *result = *it;
rset->erase(it);
return result;
}
@@ -1217,11 +1172,10 @@ void* AUD_getSet(void* set)
return NULL;
}
-const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate)
+const char *AUD_mixdown(AUD_Sound *sound, unsigned int start, unsigned int length, unsigned int buffersize, const char *filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate)
{
- try
- {
- AUD_SequencerFactory* f = dynamic_cast<AUD_SequencerFactory*>(sound->get());
+ try {
+ AUD_SequencerFactory *f = dynamic_cast<AUD_SequencerFactory *>(sound->get());
f->setSpecs(specs.specs);
AUD_Reference<AUD_IReader> reader = f->createQualityReader();
@@ -1237,11 +1191,10 @@ const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned int lengt
}
}
-const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate)
+const char *AUD_mixdown_per_channel(AUD_Sound *sound, unsigned int start, unsigned int length, unsigned int buffersize, const char *filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate)
{
- try
- {
- AUD_SequencerFactory* f = dynamic_cast<AUD_SequencerFactory*>(sound->get());
+ try {
+ AUD_SequencerFactory *f = dynamic_cast<AUD_SequencerFactory *>(sound->get());
f->setSpecs(specs.specs);
@@ -1250,19 +1203,22 @@ const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start, unsign
int channels = specs.channels;
specs.channels = AUD_CHANNELS_MONO;
- for(int i = 0; i < channels; i++)
- {
+ for (int i = 0; i < channels; i++) {
std::stringstream stream;
std::string fn = filename;
size_t index = fn.find_last_of('.');
size_t index_slash = fn.find_last_of('/');
size_t index_backslash = fn.find_last_of('\\');
- if((index == std::string::npos) ||
- ((index < index_slash) && (index_slash != std::string::npos)) ||
- ((index < index_backslash) && (index_backslash != std::string::npos)))
+
+ if ((index == std::string::npos) ||
+ ((index < index_slash) && (index_slash != std::string::npos)) ||
+ ((index < index_backslash) && (index_backslash != std::string::npos)))
+ {
stream << filename << "_" << (i + 1);
- else
+ }
+ else {
stream << fn.substr(0, index) << "_" << (i + 1) << fn.substr(index);
+ }
writers.push_back(AUD_FileWriter::createWriter(stream.str(), specs, format, codec, bitrate));
}
@@ -1278,19 +1234,19 @@ const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start, unsign
}
}
-AUD_Device* AUD_openMixdownDevice(AUD_DeviceSpecs specs, AUD_Sound* sequencer, float volume, float start)
+AUD_Device *AUD_openMixdownDevice(AUD_DeviceSpecs specs, AUD_Sound *sequencer, float volume, float start)
{
- try
- {
- AUD_ReadDevice* device = new AUD_ReadDevice(specs);
+ try {
+ AUD_ReadDevice *device = new AUD_ReadDevice(specs);
device->setQuality(true);
device->setVolume(volume);
- dynamic_cast<AUD_SequencerFactory*>(sequencer->get())->setSpecs(specs.specs);
+ dynamic_cast<AUD_SequencerFactory *>(sequencer->get())->setSpecs(specs.specs);
AUD_Handle handle = device->play(*sequencer);
- if(!handle.isNull())
+ if (!handle.isNull()) {
handle->seek(start);
+ }
return new AUD_Device(device);
}
@@ -1305,7 +1261,7 @@ AUD_Reference<AUD_IDevice> AUD_getDevice()
return AUD_device;
}
-AUD_I3DDevice* AUD_get3DDevice()
+AUD_I3DDevice *AUD_get3DDevice()
{
return AUD_3ddevice;
}
diff --git a/intern/audaspace/intern/AUD_C-API.h b/intern/audaspace/intern/AUD_C-API.h
index a52a1fa8369..75e3456de9a 100644
--- a/intern/audaspace/intern/AUD_C-API.h
+++ b/intern/audaspace/intern/AUD_C-API.h
@@ -29,10 +29,6 @@
#ifndef __AUD_C_API_H__
#define __AUD_C_API_H__
-#ifdef WITH_PYTHON
-#include "Python.h"
-#endif
-
#ifdef __cplusplus
extern "C" {
#endif
@@ -60,8 +56,8 @@ typedef struct
typedef void AUD_Handle;
typedef void AUD_Device;
typedef void AUD_SEntry;
- typedef float (*AUD_volumeFunction)(void*, void*, float);
- typedef void (*AUD_syncFunction)(void*, int, float);
+ typedef float (*AUD_volumeFunction)(void *, void *, float);
+ typedef void (*AUD_syncFunction)(void *, int, float);
#endif
/**
@@ -98,14 +94,14 @@ extern void AUD_unlock(void);
* \param sound The sound to get the info about.
* \return The AUD_SoundInfo structure with filled in data.
*/
-extern AUD_SoundInfo AUD_getInfo(AUD_Sound* sound);
+extern AUD_SoundInfo AUD_getInfo(AUD_Sound *sound);
/**
* Loads a sound file.
* \param filename The filename of the sound file.
* \return A handle of the sound file.
*/
-extern AUD_Sound* AUD_load(const char* filename);
+extern AUD_Sound *AUD_load(const char *filename);
/**
* Loads a sound file.
@@ -113,21 +109,21 @@ extern AUD_Sound* AUD_load(const char* filename);
* \param size The size of the buffer.
* \return A handle of the sound file.
*/
-extern AUD_Sound* AUD_loadBuffer(unsigned char* buffer, int size);
+extern AUD_Sound *AUD_loadBuffer(unsigned char *buffer, int size);
/**
* Buffers a sound.
* \param sound The sound to buffer.
* \return A handle of the sound buffer.
*/
-extern AUD_Sound* AUD_bufferSound(AUD_Sound* sound);
+extern AUD_Sound *AUD_bufferSound(AUD_Sound *sound);
/**
* Rechannels the sound to be mono.
* \param sound The sound to rechannel.
* \return The mono sound.
*/
-extern AUD_Sound* AUD_monoSound(AUD_Sound* sound);
+extern AUD_Sound *AUD_monoSound(AUD_Sound *sound);
/**
* Delays a sound.
@@ -135,7 +131,7 @@ extern AUD_Sound* AUD_monoSound(AUD_Sound* sound);
* \param delay The delay in seconds.
* \return A handle of the delayed sound.
*/
-extern AUD_Sound* AUD_delaySound(AUD_Sound* sound, float delay);
+extern AUD_Sound *AUD_delaySound(AUD_Sound *sound, float delay);
/**
* Limits a sound.
@@ -144,21 +140,21 @@ extern AUD_Sound* AUD_delaySound(AUD_Sound* sound, float delay);
* \param end The stop time in seconds.
* \return A handle of the limited sound.
*/
-extern AUD_Sound* AUD_limitSound(AUD_Sound* sound, float start, float end);
+extern AUD_Sound *AUD_limitSound(AUD_Sound *sound, float start, float end);
/**
* Ping pongs a sound.
* \param sound The sound to ping pong.
* \return A handle of the ping pong sound.
*/
-extern AUD_Sound* AUD_pingpongSound(AUD_Sound* sound);
+extern AUD_Sound *AUD_pingpongSound(AUD_Sound *sound);
/**
* Loops a sound.
* \param sound The sound to loop.
* \return A handle of the looped sound.
*/
-extern AUD_Sound* AUD_loopSound(AUD_Sound* sound);
+extern AUD_Sound *AUD_loopSound(AUD_Sound *sound);
/**
* Sets a remaining loop count of a looping sound that currently plays.
@@ -166,20 +162,20 @@ extern AUD_Sound* AUD_loopSound(AUD_Sound* sound);
* \param loops The count of remaining loops, -1 for infinity.
* \return Whether the handle is valid.
*/
-extern int AUD_setLoop(AUD_Handle* handle, int loops);
+extern int AUD_setLoop(AUD_Handle *handle, int loops);
/**
* Rectifies a sound.
* \param sound The sound to rectify.
* \return A handle of the rectified sound.
*/
-extern AUD_Sound* AUD_rectifySound(AUD_Sound* sound);
+extern AUD_Sound *AUD_rectifySound(AUD_Sound *sound);
/**
* Unloads a sound of any type.
* \param sound The handle of the sound.
*/
-extern void AUD_unload(AUD_Sound* sound);
+extern void AUD_unload(AUD_Sound *sound);
/**
* Plays back a sound file.
@@ -188,28 +184,28 @@ extern void AUD_unload(AUD_Sound* sound);
* paused when its end has been reached.
* \return A handle to the played back sound.
*/
-extern AUD_Handle* AUD_play(AUD_Sound* sound, int keep);
+extern AUD_Handle *AUD_play(AUD_Sound *sound, int keep);
/**
* Pauses a played back sound.
* \param handle The handle to the sound.
* \return Whether the handle has been playing or not.
*/
-extern int AUD_pause(AUD_Handle* handle);
+extern int AUD_pause(AUD_Handle *handle);
/**
* Resumes a paused sound.
* \param handle The handle to the sound.
* \return Whether the handle has been paused or not.
*/
-extern int AUD_resume(AUD_Handle* handle);
+extern int AUD_resume(AUD_Handle *handle);
/**
* Stops a playing or paused sound.
* \param handle The handle to the sound.
* \return Whether the handle has been valid or not.
*/
-extern int AUD_stop(AUD_Handle* handle);
+extern int AUD_stop(AUD_Handle *handle);
/**
* Sets the end behaviour of a playing or paused sound.
@@ -218,7 +214,7 @@ extern int AUD_stop(AUD_Handle* handle);
* paused when its end has been reached.
* \return Whether the handle has been valid or not.
*/
-extern int AUD_setKeep(AUD_Handle* handle, int keep);
+extern int AUD_setKeep(AUD_Handle *handle, int keep);
/**
* Seeks a playing or paused sound.
@@ -226,7 +222,7 @@ extern int AUD_setKeep(AUD_Handle* handle, int keep);
* \param seekTo From where the sound file should be played back in seconds.
* \return Whether the handle has been valid or not.
*/
-extern int AUD_seek(AUD_Handle* handle, float seekTo);
+extern int AUD_seek(AUD_Handle *handle, float seekTo);
/**
* Retrieves the playback position of a handle.
@@ -234,32 +230,32 @@ extern int AUD_seek(AUD_Handle* handle, float seekTo);
* \return The current playback position in seconds or 0.0 if the handle is
* invalid.
*/
-extern float AUD_getPosition(AUD_Handle* handle);
+extern float AUD_getPosition(AUD_Handle *handle);
/**
* Returns the status of a playing, paused or stopped sound.
* \param handle The handle to the sound.
* \return The status of the sound behind the handle.
*/
-extern AUD_Status AUD_getStatus(AUD_Handle* handle);
+extern AUD_Status AUD_getStatus(AUD_Handle *handle);
/**
* Sets the listener location.
* \param location The new location.
*/
-extern int AUD_setListenerLocation(const float* location);
+extern int AUD_setListenerLocation(const float location[3]);
/**
* Sets the listener velocity.
* \param velocity The new velocity.
*/
-extern int AUD_setListenerVelocity(const float* velocity);
+extern int AUD_setListenerVelocity(const float velocity[3]);
/**
* Sets the listener orientation.
* \param orientation The new orientation as quaternion.
*/
-extern int AUD_setListenerOrientation(const float* orientation);
+extern int AUD_setListenerOrientation(const float orientation[4]);
/**
* Sets the speed of sound.
@@ -288,7 +284,7 @@ extern int AUD_setDistanceModel(AUD_DistanceModel model);
* \param location The new location.
* \return Whether the action succeeded.
*/
-extern int AUD_setSourceLocation(AUD_Handle* handle, const float* location);
+extern int AUD_setSourceLocation(AUD_Handle *handle, const float location[3]);
/**
* Sets the velocity of a source.
@@ -296,7 +292,7 @@ extern int AUD_setSourceLocation(AUD_Handle* handle, const float* location);
* \param velocity The new velocity.
* \return Whether the action succeeded.
*/
-extern int AUD_setSourceVelocity(AUD_Handle* handle, const float* velocity);
+extern int AUD_setSourceVelocity(AUD_Handle *handle, const float velocity[3]);
/**
* Sets the orientation of a source.
@@ -304,7 +300,7 @@ extern int AUD_setSourceVelocity(AUD_Handle* handle, const float* velocity);
* \param orientation The new orientation as quaternion.
* \return Whether the action succeeded.
*/
-extern int AUD_setSourceOrientation(AUD_Handle* handle, const float* orientation);
+extern int AUD_setSourceOrientation(AUD_Handle *handle, const float orientation[4]);
/**
* Sets whether the source location, velocity and orientation are relative
@@ -313,7 +309,7 @@ extern int AUD_setSourceOrientation(AUD_Handle* handle, const float* orientation
* \param relative Whether the source is relative.
* \return Whether the action succeeded.
*/
-extern int AUD_setRelative(AUD_Handle* handle, int relative);
+extern int AUD_setRelative(AUD_Handle *handle, int relative);
/**
* Sets the maximum volume of a source.
@@ -321,7 +317,7 @@ extern int AUD_setRelative(AUD_Handle* handle, int relative);
* \param volume The new maximum volume.
* \return Whether the action succeeded.
*/
-extern int AUD_setVolumeMaximum(AUD_Handle* handle, float volume);
+extern int AUD_setVolumeMaximum(AUD_Handle *handle, float volume);
/**
* Sets the minimum volume of a source.
@@ -329,7 +325,7 @@ extern int AUD_setVolumeMaximum(AUD_Handle* handle, float volume);
* \param volume The new minimum volume.
* \return Whether the action succeeded.
*/
-extern int AUD_setVolumeMinimum(AUD_Handle* handle, float volume);
+extern int AUD_setVolumeMinimum(AUD_Handle *handle, float volume);
/**
* Sets the maximum distance of a source.
@@ -339,7 +335,7 @@ extern int AUD_setVolumeMinimum(AUD_Handle* handle, float volume);
* \param distance The new maximum distance.
* \return Whether the action succeeded.
*/
-extern int AUD_setDistanceMaximum(AUD_Handle* handle, float distance);
+extern int AUD_setDistanceMaximum(AUD_Handle *handle, float distance);
/**
* Sets the reference distance of a source.
@@ -347,7 +343,7 @@ extern int AUD_setDistanceMaximum(AUD_Handle* handle, float distance);
* \param distance The new reference distance.
* \return Whether the action succeeded.
*/
-extern int AUD_setDistanceReference(AUD_Handle* handle, float distance);
+extern int AUD_setDistanceReference(AUD_Handle *handle, float distance);
/**
* Sets the attenuation of a source.
@@ -356,7 +352,7 @@ extern int AUD_setDistanceReference(AUD_Handle* handle, float distance);
* \param factor The new attenuation.
* \return Whether the action succeeded.
*/
-extern int AUD_setAttenuation(AUD_Handle* handle, float factor);
+extern int AUD_setAttenuation(AUD_Handle *handle, float factor);
/**
* Sets the outer angle of the cone of a source.
@@ -364,7 +360,7 @@ extern int AUD_setAttenuation(AUD_Handle* handle, float factor);
* \param angle The new outer angle of the cone.
* \return Whether the action succeeded.
*/
-extern int AUD_setConeAngleOuter(AUD_Handle* handle, float angle);
+extern int AUD_setConeAngleOuter(AUD_Handle *handle, float angle);
/**
* Sets the inner angle of the cone of a source.
@@ -372,7 +368,7 @@ extern int AUD_setConeAngleOuter(AUD_Handle* handle, float angle);
* \param angle The new inner angle of the cone.
* \return Whether the action succeeded.
*/
-extern int AUD_setConeAngleInner(AUD_Handle* handle, float angle);
+extern int AUD_setConeAngleInner(AUD_Handle *handle, float angle);
/**
* Sets the outer volume of the cone of a source.
@@ -382,7 +378,7 @@ extern int AUD_setConeAngleInner(AUD_Handle* handle, float angle);
* \param volume The new outer volume of the cone.
* \return Whether the action succeeded.
*/
-extern int AUD_setConeVolumeOuter(AUD_Handle* handle, float volume);
+extern int AUD_setConeVolumeOuter(AUD_Handle *handle, float volume);
/**
* Sets the volume of a played back sound.
@@ -390,7 +386,7 @@ extern int AUD_setConeVolumeOuter(AUD_Handle* handle, float volume);
* \param volume The new volume, must be between 0.0 and 1.0.
* \return Whether the action succeeded.
*/
-extern int AUD_setSoundVolume(AUD_Handle* handle, float volume);
+extern int AUD_setSoundVolume(AUD_Handle *handle, float volume);
/**
* Sets the pitch of a played back sound.
@@ -398,14 +394,14 @@ extern int AUD_setSoundVolume(AUD_Handle* handle, float volume);
* \param pitch The new pitch.
* \return Whether the action succeeded.
*/
-extern int AUD_setSoundPitch(AUD_Handle* handle, float pitch);
+extern int AUD_setSoundPitch(AUD_Handle *handle, float pitch);
/**
* Opens a read device, with which audio data can be read.
* \param specs The specification of the audio data.
* \return A device handle.
*/
-extern AUD_Device* AUD_openReadDevice(AUD_DeviceSpecs specs);
+extern AUD_Device *AUD_openReadDevice(AUD_DeviceSpecs specs);
/**
* Sets the main volume of a device.
@@ -413,7 +409,7 @@ extern AUD_Device* AUD_openReadDevice(AUD_DeviceSpecs specs);
* \param volume The new volume, must be between 0.0 and 1.0.
* \return Whether the action succeeded.
*/
-extern int AUD_setDeviceVolume(AUD_Device* device, float volume);
+extern int AUD_setDeviceVolume(AUD_Device *device, float volume);
/**
* Plays back a sound file through a read device.
@@ -422,7 +418,7 @@ extern int AUD_setDeviceVolume(AUD_Device* device, float volume);
* \param seek The position where the sound should be seeked to.
* \return A handle to the played back sound.
*/
-extern AUD_Handle* AUD_playDevice(AUD_Device* device, AUD_Sound* sound, float seek);
+extern AUD_Handle *AUD_playDevice(AUD_Device *device, AUD_Sound *sound, float seek);
/**
* Reads the next samples into the supplied buffer.
@@ -433,23 +429,23 @@ extern AUD_Handle* AUD_playDevice(AUD_Device* device, AUD_Sound* sound, float se
* played back currently, in that case the buffer is filled with
* silence.
*/
-extern int AUD_readDevice(AUD_Device* device, data_t* buffer, int length);
+extern int AUD_readDevice(AUD_Device *device, data_t *buffer, int length);
/**
* Closes a read device.
* \param device The read device.
*/
-extern void AUD_closeReadDevice(AUD_Device* device);
+extern void AUD_closeReadDevice(AUD_Device *device);
/**
* Reads a sound file into a newly created float buffer.
* The sound is therefore bandpassed, rectified and resampled.
*/
-extern float* AUD_readSoundBuffer(const char* filename, float low, float high,
- float attack, float release, float threshold,
- int accumulate, int additive, int square,
- float sthreshold, double samplerate,
- int* length);
+extern float *AUD_readSoundBuffer(const char *filename, float low, float high,
+ float attack, float release, float threshold,
+ int accumulate, int additive, int square,
+ float sthreshold, double samplerate,
+ int *length);
/**
* Pauses a playing sound after a specific amount of time.
@@ -457,7 +453,7 @@ extern float* AUD_readSoundBuffer(const char* filename, float low, float high,
* \param seconds The time in seconds.
* \return The silence handle.
*/
-extern AUD_Handle* AUD_pauseAfter(AUD_Handle* handle, float seconds);
+extern AUD_Handle *AUD_pauseAfter(AUD_Handle *handle, float seconds);
/**
* Creates a new sequenced sound scene.
@@ -465,27 +461,27 @@ extern AUD_Handle* AUD_pauseAfter(AUD_Handle* handle, float seconds);
* \param muted Whether the scene is muted.
* \return The new sound scene.
*/
-extern AUD_Sound* AUD_createSequencer(float fps, int muted);
+extern AUD_Sound *AUD_createSequencer(float fps, int muted);
/**
* Deletes a sound scene.
* \param sequencer The sound scene.
*/
-extern void AUD_destroySequencer(AUD_Sound* sequencer);
+extern void AUD_destroySequencer(AUD_Sound *sequencer);
/**
* Sets the muting state of the scene.
* \param sequencer The sound scene.
* \param muted Whether the scene is muted.
*/
-extern void AUD_setSequencerMuted(AUD_Sound* sequencer, int muted);
+extern void AUD_setSequencerMuted(AUD_Sound *sequencer, int muted);
/**
* Sets the scene's FPS.
* \param sequencer The sound scene.
* \param fps The new FPS.
*/
-extern void AUD_setSequencerFPS(AUD_Sound* sequencer, float fps);
+extern void AUD_setSequencerFPS(AUD_Sound *sequencer, float fps);
/**
* Adds a new entry to the scene.
@@ -496,15 +492,15 @@ extern void AUD_setSequencerFPS(AUD_Sound* sequencer, float fps);
* \param skip How much seconds should be skipped at the beginning.
* \return The entry added.
*/
-extern AUD_SEntry* AUD_addSequence(AUD_Sound* sequencer, AUD_Sound* sound,
- float begin, float end, float skip);
+extern AUD_SEntry *AUD_addSequence(AUD_Sound *sequencer, AUD_Sound *sound,
+ float begin, float end, float skip);
/**
* Removes an entry from the scene.
* \param sequencer The sound scene.
* \param entry The entry to remove.
*/
-extern void AUD_removeSequence(AUD_Sound* sequencer, AUD_SEntry* entry);
+extern void AUD_removeSequence(AUD_Sound *sequencer, AUD_SEntry *entry);
/**
* Moves the entry.
@@ -513,14 +509,14 @@ extern void AUD_removeSequence(AUD_Sound* sequencer, AUD_SEntry* entry);
* \param end The new end time or a negative value if unknown.
* \param skip How many seconds to skip at the beginning.
*/
-extern void AUD_moveSequence(AUD_SEntry* entry, float begin, float end, float skip);
+extern void AUD_moveSequence(AUD_SEntry *entry, float begin, float end, float skip);
/**
* Sets the muting state of the entry.
* \param entry The sequenced entry.
* \param mute Whether the entry should be muted or not.
*/
-extern void AUD_muteSequence(AUD_SEntry* entry, char mute);
+extern void AUD_muteSequence(AUD_SEntry *entry, char mute);
/**
* Sets whether the entrie's location, velocity and orientation are relative
@@ -529,14 +525,14 @@ extern void AUD_muteSequence(AUD_SEntry* entry, char mute);
* \param relative Whether the source is relative.
* \return Whether the action succeeded.
*/
-extern void AUD_setRelativeSequence(AUD_SEntry* entry, char relative);
+extern void AUD_setRelativeSequence(AUD_SEntry *entry, char relative);
/**
* Sets the sound of the entry.
* \param entry The sequenced entry.
* \param sound The new sound.
*/
-extern void AUD_updateSequenceSound(AUD_SEntry* entry, AUD_Sound* sound);
+extern void AUD_updateSequenceSound(AUD_SEntry *entry, AUD_Sound *sound);
/**
* Writes animation data to a sequenced entry.
@@ -546,7 +542,7 @@ extern void AUD_updateSequenceSound(AUD_SEntry* entry, AUD_Sound* sound);
* \param data The data to write.
* \param animated Whether the attribute is animated.
*/
-extern void AUD_setSequenceAnimData(AUD_SEntry* entry, AUD_AnimateablePropertyType type, int frame, float* data, char animated);
+extern void AUD_setSequenceAnimData(AUD_SEntry *entry, AUD_AnimateablePropertyType type, int frame, float *data, char animated);
/**
* Writes animation data to a sequenced entry.
@@ -556,7 +552,7 @@ extern void AUD_setSequenceAnimData(AUD_SEntry* entry, AUD_AnimateablePropertyTy
* \param data The data to write.
* \param animated Whether the attribute is animated.
*/
-extern void AUD_setSequencerAnimData(AUD_Sound* sequencer, AUD_AnimateablePropertyType type, int frame, float* data, char animated);
+extern void AUD_setSequencerAnimData(AUD_Sound *sequencer, AUD_AnimateablePropertyType type, int frame, float *data, char animated);
/**
* Updates all non-animated parameters of the entry.
@@ -570,9 +566,9 @@ extern void AUD_setSequencerAnimData(AUD_Sound* sequencer, AUD_AnimateableProper
* \param cone_angle_inner The inner cone opening angle.
* \param cone_volume_outer The volume outside the outer cone.
*/
-extern void AUD_updateSequenceData(AUD_SEntry* entry, float volume_max, float volume_min,
- float distance_max, float distance_reference, float attenuation,
- float cone_angle_outer, float cone_angle_inner, float cone_volume_outer);
+extern void AUD_updateSequenceData(AUD_SEntry *entry, float volume_max, float volume_min,
+ float distance_max, float distance_reference, float attenuation,
+ float cone_angle_outer, float cone_angle_inner, float cone_volume_outer);
/**
* Updates all non-animated parameters of the entry.
@@ -581,36 +577,36 @@ extern void AUD_updateSequenceData(AUD_SEntry* entry, float volume_max, float vo
* \param factor The doppler factor to control the effect's strength.
* \param model The distance model for distance calculation.
*/
-extern void AUD_updateSequencerData(AUD_Sound* sequencer, float speed_of_sound,
- float factor, AUD_DistanceModel model);
+extern void AUD_updateSequencerData(AUD_Sound *sequencer, float speed_of_sound,
+ float factor, AUD_DistanceModel model);
/**
* Sets the audio output specification of the sound scene to the specs of the
* current playback device.
* \param sequencer The sound scene.
*/
-extern void AUD_setSequencerDeviceSpecs(AUD_Sound* sequencer);
+extern void AUD_setSequencerDeviceSpecs(AUD_Sound *sequencer);
/**
* Sets the audio output specification of the sound scene.
* \param sequencer The sound scene.
* \param specs The new specification.
*/
-extern void AUD_setSequencerSpecs(AUD_Sound* sequencer, AUD_Specs specs);
+extern void AUD_setSequencerSpecs(AUD_Sound *sequencer, AUD_Specs specs);
/**
* Seeks sequenced sound scene playback.
* \param handle Playback handle.
* \param time Time in seconds to seek to.
*/
-extern void AUD_seekSequencer(AUD_Handle* handle, float time);
+extern void AUD_seekSequencer(AUD_Handle *handle, float time);
/**
* Returns the current sound scene playback time.
* \param handle Playback handle.
* \return The playback time in seconds.
*/
-extern float AUD_getSequencerPosition(AUD_Handle* handle);
+extern float AUD_getSequencerPosition(AUD_Handle *handle);
/**
* Starts the playback of jack transport if possible.
@@ -628,7 +624,7 @@ extern void AUD_stopPlayback(void);
* \param function The callback function.
* \param data The data parameter for the callback.
*/
-extern void AUD_setSyncCallback(AUD_syncFunction function, void* data);
+extern void AUD_setSyncCallback(AUD_syncFunction function, void *data);
#endif
/**
@@ -645,32 +641,32 @@ extern int AUD_doesPlayback(void);
* \param samples_per_second How many samples to read per second of the sound.
* \return How many samples really have been read. Always <= length.
*/
-extern int AUD_readSound(AUD_Sound* sound, sample_t* buffer, int length, int samples_per_second);
+extern int AUD_readSound(AUD_Sound *sound, sample_t *buffer, int length, int samples_per_second);
/**
* Copies a sound.
* \param sound Sound to copy.
* \return Copied sound.
*/
-extern AUD_Sound* AUD_copy(AUD_Sound* sound);
+extern AUD_Sound *AUD_copy(AUD_Sound *sound);
/**
* Frees a handle.
* \param channel Handle to free.
*/
-extern void AUD_freeHandle(AUD_Handle* channel);
+extern void AUD_freeHandle(AUD_Handle *channel);
/**
* Creates a new set.
* \return The new set.
*/
-extern void* AUD_createSet(void);
+extern void *AUD_createSet(void);
/**
* Deletes a set.
* \param set The set to delete.
*/
-extern void AUD_destroySet(void* set);
+extern void AUD_destroySet(void *set);
/**
* Removes an entry from a set.
@@ -678,21 +674,21 @@ extern void AUD_destroySet(void* set);
* \param entry The entry to remove.
* \return Whether the entry was in the set or not.
*/
-extern char AUD_removeSet(void* set, void* entry);
+extern char AUD_removeSet(void *set, void *entry);
/**
* Adds a new entry to a set.
* \param set The set work on.
* \param entry The entry to add.
*/
-extern void AUD_addSet(void* set, void* entry);
+extern void AUD_addSet(void *set, void *entry);
/**
* Removes one entry from a set and returns it.
* \param set The set work on.
* \return The entry or NULL if the set is empty.
*/
-extern void* AUD_getSet(void* set);
+extern void *AUD_getSet(void *set);
/**
* Mixes a sound down into a file.
@@ -707,7 +703,10 @@ extern void* AUD_getSet(void* set);
* \param bitrate The bitrate for encoding.
* \return An error message or NULL in case of success.
*/
-extern const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate);
+extern const char *AUD_mixdown(AUD_Sound *sound, unsigned int start, unsigned int length,
+ unsigned int buffersize, const char *filename,
+ AUD_DeviceSpecs specs, AUD_Container format,
+ AUD_Codec codec, unsigned int bitrate);
/**
* Mixes a sound down into multiple files.
@@ -722,7 +721,10 @@ extern const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned in
* \param bitrate The bitrate for encoding.
* \return An error message or NULL in case of success.
*/
-extern const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate);
+extern const char *AUD_mixdown_per_channel(AUD_Sound *sound, unsigned int start, unsigned int length,
+ unsigned int buffersize, const char *filename,
+ AUD_DeviceSpecs specs, AUD_Container format,
+ AUD_Codec codec, unsigned int bitrate);
/**
* Opens a read device and prepares it for mixdown of the sound scene.
@@ -732,7 +734,7 @@ extern const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start,
* \param start The start time of the mixdown in the sound scene.
* \return The read device for the mixdown.
*/
-extern AUD_Device* AUD_openMixdownDevice(AUD_DeviceSpecs specs, AUD_Sound* sequencer, float volume, float start);
+extern AUD_Device *AUD_openMixdownDevice(AUD_DeviceSpecs specs, AUD_Sound *sequencer, float volume, float start);
#ifdef WITH_PYTHON
/**
@@ -740,14 +742,14 @@ extern AUD_Device* AUD_openMixdownDevice(AUD_DeviceSpecs specs, AUD_Sound* seque
* \param sound The sound factory.
* \return The python factory.
*/
-extern PyObject* AUD_getPythonFactory(AUD_Sound* sound);
+extern void *AUD_getPythonFactory(AUD_Sound *sound);
/**
* Retrieves the sound factory of a python factory.
* \param sound The python factory.
* \return The sound factory.
*/
-extern AUD_Sound* AUD_getPythonSound(PyObject* sound);
+extern AUD_Sound *AUD_getPythonSound(void *sound);
#endif
#ifdef __cplusplus
@@ -767,7 +769,7 @@ AUD_Reference<AUD_IDevice> AUD_getDevice();
* Returns the current playback 3D device.
* \return The playback 3D device.
*/
-AUD_I3DDevice* AUD_get3DDevice();
+AUD_I3DDevice *AUD_get3DDevice();
#endif
#endif //__AUD_C_API_H__
diff --git a/intern/audaspace/intern/AUD_IFactory.h b/intern/audaspace/intern/AUD_IFactory.h
index a7c214bb5a1..95b4643072e 100644
--- a/intern/audaspace/intern/AUD_IFactory.h
+++ b/intern/audaspace/intern/AUD_IFactory.h
@@ -45,7 +45,7 @@ public:
/**
* Destroys the factory.
*/
- virtual ~AUD_IFactory(){}
+ virtual ~AUD_IFactory() {}
/**
* Creates a reader for playback of the sound source.
diff --git a/intern/audaspace/intern/AUD_IReader.h b/intern/audaspace/intern/AUD_IReader.h
index 8e0e03dd95d..c2c9e607b55 100644
--- a/intern/audaspace/intern/AUD_IReader.h
+++ b/intern/audaspace/intern/AUD_IReader.h
@@ -42,7 +42,7 @@ public:
/**
* Destroys the reader.
*/
- virtual ~AUD_IReader(){}
+ virtual ~AUD_IReader() {}
/**
* Tells whether the source provides seeking functionality or not.
diff --git a/intern/audaspace/intern/AUD_IWriter.h b/intern/audaspace/intern/AUD_IWriter.h
index 3c92661c75d..5406577dd50 100644
--- a/intern/audaspace/intern/AUD_IWriter.h
+++ b/intern/audaspace/intern/AUD_IWriter.h
@@ -41,7 +41,7 @@ public:
/**
* Destroys the writer.
*/
- virtual ~AUD_IWriter(){}
+ virtual ~AUD_IWriter() {}
/**
* Returns how many samples have been written so far.
diff --git a/intern/audaspace/intern/AUD_PyInit.h b/intern/audaspace/intern/AUD_PyInit.h
index 8c045e60f37..d8b6e2f3519 100644
--- a/intern/audaspace/intern/AUD_PyInit.h
+++ b/intern/audaspace/intern/AUD_PyInit.h
@@ -38,9 +38,9 @@ extern "C" {
#endif
/**
- * Initalizes the Python module.
+ * Initializes the Python module.
*/
-extern PyObject* AUD_initPython(void);
+extern PyObject *AUD_initPython(void);
#ifdef __cplusplus
}
diff --git a/intern/audaspace/intern/AUD_ReferenceHandler.cpp b/intern/audaspace/intern/AUD_ReferenceHandler.cpp
index 3e9f6707262..6aa4f87ea96 100644
--- a/intern/audaspace/intern/AUD_ReferenceHandler.cpp
+++ b/intern/audaspace/intern/AUD_ReferenceHandler.cpp
@@ -22,7 +22,7 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/** \file audaspace/intern/AUD_Reference.cpp
+/** \file audaspace/intern/AUD_ReferenceHandler.cpp
* \ingroup audaspaceintern
*/
diff --git a/intern/boolop/CMakeLists.txt b/intern/boolop/CMakeLists.txt
deleted file mode 100644
index d8e9c0c94d7..00000000000
--- a/intern/boolop/CMakeLists.txt
+++ /dev/null
@@ -1,111 +0,0 @@
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# The Original Code is Copyright (C) 2006, Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): Jacques Beaurain.
-#
-# ***** END GPL LICENSE BLOCK *****
-
-remove_strict_flags()
-
-set(INC
- .
- extern
- intern
- ../container
- ../guardedalloc
- ../memutil
- ../moto/include
- ../../source/blender/blenlib
- ../../source/blender/makesdna
-)
-
-set(INC_SYS
-
-)
-
-if(NOT WITH_CARVE)
- set(SRC
- intern/BOP_BBox.cpp
- intern/BOP_BSPNode.cpp
- intern/BOP_BSPTree.cpp
- intern/BOP_Edge.cpp
- intern/BOP_Face.cpp
- intern/BOP_Face2Face.cpp
- intern/BOP_Interface.cpp
- intern/BOP_MathUtils.cpp
- intern/BOP_Merge.cpp
- intern/BOP_Merge2.cpp
- intern/BOP_Mesh.cpp
- intern/BOP_Segment.cpp
- intern/BOP_Splitter.cpp
- intern/BOP_Tag.cpp
- intern/BOP_Triangulator.cpp
- intern/BOP_Vertex.cpp
-
- extern/BOP_Interface.h
- intern/BOP_BBox.h
- intern/BOP_BSPNode.h
- intern/BOP_BSPTree.h
- intern/BOP_Chrono.h
- intern/BOP_Edge.h
- intern/BOP_Face.h
- intern/BOP_Face2Face.h
- intern/BOP_Indexs.h
- intern/BOP_MathUtils.h
- intern/BOP_Merge.h
- intern/BOP_Merge2.h
- intern/BOP_Mesh.h
- intern/BOP_Misc.h
- intern/BOP_Segment.h
- intern/BOP_Splitter.h
- intern/BOP_Tag.h
- intern/BOP_Triangulator.h
- intern/BOP_Vertex.h
- )
-else()
- set(SRC
- intern/BOP_CarveInterface.cpp
- extern/BOP_Interface.h
- )
-
- list(APPEND INC
- ../../extern/carve/include
- )
-
- if(WITH_BOOST)
- if(NOT MSVC)
- # Boost is setting as preferred collections library in the Carve code when using MSVC compiler
- add_definitions(
- -DHAVE_BOOST_UNORDERED_COLLECTIONS
- )
- endif()
-
- add_definitions(
- -DCARVE_SYSTEM_BOOST
- )
-
- list(APPEND INC
- ${BOOST_INCLUDE_DIR}
- )
- endif()
-endif()
-
-blender_add_lib(bf_intern_bop "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/intern/boolop/SConscript b/intern/boolop/SConscript
deleted file mode 100644
index f630d1d58e0..00000000000
--- a/intern/boolop/SConscript
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/python
-Import ('env')
-
-incs = '. intern extern ../moto/include ../container ../memutil'
-incs += ' ../../source/blender/makesdna ../../intern/guardedalloc'
-incs += ' ../../source/blender/blenlib'
-
-defs = []
-
-if not env['WITH_BF_CARVE']:
- import os
- sources = env.Glob('intern/*.cpp')
- sources.remove('intern' + os.sep + 'BOP_CarveInterface.cpp')
-else:
- sources = env.Glob('intern/BOP_CarveInterface.cpp')
- incs += ' ../../extern/carve/include'
-
- if env['WITH_BF_BOOST']:
- if env['OURPLATFORM'] not in ('win32-vc', 'win64-vc'):
- # Boost is setting as preferred collections library in the Carve code when using MSVC compiler
- if env['OURPLATFORM'] not in ('win32-mingw', 'win64-mingw'):
- defs.append('HAVE_BOOST_UNORDERED_COLLECTIONS')
-
- defs.append('CARVE_SYSTEM_BOOST')
- incs += ' ' + env['BF_BOOST_INC']
-
-if (env['OURPLATFORM'] in ('win32-mingw', 'win64-mingw')):
- env.BlenderLib ('bf_intern_bop', sources, Split(incs) , [], libtype='intern', priority = 5 )
-else:
- env.BlenderLib ('bf_intern_bop', sources, Split(incs) , defs, libtype='intern', priority = 5 )
-
diff --git a/intern/boolop/intern/BOP_BBox.cpp b/intern/boolop/intern/BOP_BBox.cpp
deleted file mode 100644
index a42c7d936cf..00000000000
--- a/intern/boolop/intern/BOP_BBox.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_BBox.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_BBox.h"
-
-#include "MT_Scalar.h"
-
-/**
- * Constructs a nwe bounding box.
- */
-BOP_BBox::BOP_BBox()
-{
- m_minX = MT_INFINITY;
- m_minY = MT_INFINITY;
- m_minZ = MT_INFINITY;
- m_maxX = -MT_INFINITY;
- m_maxY = -MT_INFINITY;
- m_maxZ = -MT_INFINITY;
-}
-
-/**
- * Constructs a new bounding box using three points.
- * @param p1 first point
- * @param p2 second point
- * @param p3 third point
- */
-BOP_BBox::BOP_BBox(const MT_Point3& p1,const MT_Point3& p2,const MT_Point3& p3)
-{
- m_minX = BOP_MIN(BOP_MIN(p1[0],p2[0]),p3[0]);
- m_minY = BOP_MIN(BOP_MIN(p1[1],p2[1]),p3[1]);
- m_minZ = BOP_MIN(BOP_MIN(p1[2],p2[2]),p3[2]);
- m_maxX = BOP_MAX(BOP_MAX(p1[0],p2[0]),p3[0]);
- m_maxY = BOP_MAX(BOP_MAX(p1[1],p2[1]),p3[1]);
- m_maxZ = BOP_MAX(BOP_MAX(p1[2],p2[2]),p3[2]);
-}
diff --git a/intern/boolop/intern/BOP_BBox.h b/intern/boolop/intern/BOP_BBox.h
deleted file mode 100644
index c58bb704fc3..00000000000
--- a/intern/boolop/intern/BOP_BBox.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_BBox.h
- * \ingroup boolopintern
- */
-
-
-#ifndef __BOP_BBOX_H__
-#define __BOP_BBOX_H__
-
-#include "MT_Point3.h"
-#include "BOP_MathUtils.h"
-
-#define BOP_MAX(a, b) ((a > b) ? a : b)
-#define BOP_MIN(a, b) ((a < b) ? a : b)
-#define BOP_ABS(a) ((a < 0) ? -(a) : a)
-
-class BOP_BBox
-{
-public:
- MT_Scalar m_minX;
- MT_Scalar m_minY;
- MT_Scalar m_minZ;
- MT_Scalar m_maxX;
- MT_Scalar m_maxY;
- MT_Scalar m_maxZ;
- MT_Scalar m_centerX;
- MT_Scalar m_centerY;
- MT_Scalar m_centerZ;
- MT_Scalar m_extentX;
- MT_Scalar m_extentY;
- MT_Scalar m_extentZ;
-
-public:
- BOP_BBox();
- BOP_BBox(const MT_Point3& p1,const MT_Point3& p2,const MT_Point3& p3);
- inline void add(const MT_Point3& p)
- {
- m_minX = BOP_MIN(m_minX,p[0]);
- m_minY = BOP_MIN(m_minY,p[1]);
- m_minZ = BOP_MIN(m_minZ,p[2]);
- m_maxX = BOP_MAX(m_maxX,p[0]);
- m_maxY = BOP_MAX(m_maxY,p[1]);
- m_maxZ = BOP_MAX(m_maxZ,p[2]);
- };
-
- inline const MT_Scalar getCenterX() const {return m_centerX;};
- inline const MT_Scalar getCenterY() const {return m_centerY;};
- inline const MT_Scalar getCenterZ() const {return m_centerZ;};
-
- inline const MT_Scalar getExtentX() const {return m_extentX;};
- inline const MT_Scalar getExtentY() const {return m_extentY;};
- inline const MT_Scalar getExtentZ() const {return m_extentZ;};
-
- inline void compute() {
- m_extentX = (m_maxX-m_minX)/2.0f;
- m_extentY = (m_maxY-m_minY)/2.0f;
- m_extentZ = (m_maxZ-m_minZ)/2.0f;
- m_centerX = m_minX+m_extentX;
- m_centerY = m_minY+m_extentY;
- m_centerZ = m_minZ+m_extentZ;
- };
-
- inline const bool intersect(const BOP_BBox& b) const {
- return (!((BOP_comp(m_maxX,b.m_minX)<0) || (BOP_comp(b.m_maxX,m_minX)<0) ||
- (BOP_comp(m_maxY,b.m_minY)<0) || (BOP_comp(b.m_maxY,m_minY)<0) ||
- (BOP_comp(m_maxZ,b.m_minZ)<0) || (BOP_comp(b.m_maxZ,m_minZ)<0)));
- };
-
-
-};
-
-#endif
diff --git a/intern/boolop/intern/BOP_BSPNode.cpp b/intern/boolop/intern/BOP_BSPNode.cpp
deleted file mode 100644
index 3588e80c28e..00000000000
--- a/intern/boolop/intern/BOP_BSPNode.cpp
+++ /dev/null
@@ -1,718 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_BSPNode.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_MathUtils.h"
-#include "BOP_BSPNode.h"
-#include "MT_assert.h"
-#include "MT_MinMax.h"
-#include <iostream>
-
-/**
- * Constructs a new BSP node.
- * @param plane split plane.
- */
-BOP_BSPNode::BOP_BSPNode(const MT_Plane3& plane)
-{
- m_plane = plane;
- m_inChild = NULL;
- m_outChild = NULL;
- m_deep = 1;
-}
-
-/**
- * Destroys a BSP tree.
- */
-BOP_BSPNode::~BOP_BSPNode()
-{
- if (m_inChild!=NULL) delete m_inChild;
- if (m_outChild!=NULL) delete m_outChild;
-}
-
-/**
- * Adds a new face to this BSP tree.
- * @param pts vector containing face points
- * @param plane face plane.
- */
-
-unsigned int BOP_BSPNode::addFace(const BOP_BSPPoints& pts,
- const MT_Plane3& plane )
-{
- unsigned int newDeep = 0;
- BOP_TAG tag = ON;
-
- // find out if any points on the "face" lie in either half-space
- BOP_IT_BSPPoints ptsEnd = pts.end();
- for(BOP_IT_BSPPoints itp=pts.begin();itp!=ptsEnd;itp++){
- tag = (BOP_TAG) ((int) tag | (int)testPoint(*itp));
- }
-
- if (tag == ON) { } // face lies on hyperplane: do nothing
- else if ((tag & IN) != 0 && (tag & OUT) == 0) { // face is entirely on inside
- if (m_inChild != NULL)
- newDeep = m_inChild->addFace(pts, plane) + 1;
- else {
- m_inChild = new BOP_BSPNode(plane);
- newDeep = 2;
- }
- } else if ((tag & OUT) != 0 && (tag & IN) == 0) { // face is entirely on outside
- if (m_outChild != NULL)
- newDeep = m_outChild->addFace(pts, plane) + 1;
- else {
- m_outChild = new BOP_BSPNode(plane);
- newDeep = 2;
- }
- } else { // face lies in both half-spaces: split it
- BOP_BSPPoints inside, outside;
- MT_Point3 lpoint= pts[pts.size()-1];
- BOP_TAG ltag = testPoint(lpoint);
- BOP_TAG tstate = ltag;
-
- // classify each line segment, looking for endpoints which lie on different
- // sides of the hyperplane.
-
- ptsEnd = pts.end();
- for(BOP_IT_BSPPoints itp=pts.begin();itp!=ptsEnd;itp++){
- MT_Point3 npoint= *itp;
- BOP_TAG ntag = testPoint(npoint);
-
- if(ltag != ON) { // last point not on hyperplane
- if(tstate == IN) {
- if (m_inChild != NULL) inside.push_back(lpoint);
- } else {
- if (m_outChild != NULL) outside.push_back(lpoint);
- }
- if(ntag != ON && ntag != tstate) { // last, self in different half-spaces
- MT_Point3 mpoint = BOP_intersectPlane( m_plane, lpoint, npoint );
- if (m_inChild != NULL) inside.push_back(mpoint);
- if (m_outChild != NULL) outside.push_back(mpoint);
- tstate = ntag;
- }
- } else { // last point on hyperplane, so we're switching
- // half-spaces
- // boundary point belong to both faces
- if (m_inChild != NULL) inside.push_back(lpoint);
- if (m_outChild != NULL) outside.push_back(lpoint);
- tstate = ntag; // state changes to new point tag
- }
- lpoint = npoint; // save point, tag for next iteration
- ltag = ntag;
- }
-
- if (m_inChild != NULL)
- newDeep = m_inChild->addFace(inside, plane) + 1;
- else {
- m_inChild = new BOP_BSPNode(plane);
- newDeep = 2;
- }
- if (m_outChild != NULL)
- newDeep = MT_max(newDeep, m_outChild->addFace(outside, plane) + 1);
- else {
- m_outChild = new BOP_BSPNode(plane);
- newDeep = MT_max(newDeep,(unsigned int)2);
- }
- }
-
- // update the deep attribute
- m_deep = MT_max(m_deep,newDeep);
-
- return m_deep;
-}
-
-/**
- * Tests the point situation respect the node plane.
- * @param p point to test.
- * @return TAG result: IN, OUT or ON.
- */
-BOP_TAG BOP_BSPNode::testPoint(const MT_Point3& p) const
-{
- return BOP_createTAG(BOP_classify(p,m_plane));
-
-}
-
-/**
- * Classifies a face using its coordinates and plane.
- * @param p1 first point.
- * @param p2 second point.
- * @param p3 third point.
- * @param plane face plane.
- * @return TAG result: IN, OUT or IN&OUT.
- */
-BOP_TAG BOP_BSPNode::classifyFace(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const
-{
- // local variables
- MT_Point3 auxp1, auxp2;
- BOP_TAG auxtag1, auxtag2, auxtag3;
-
- switch(BOP_createTAG(testPoint(p1),testPoint(p2),testPoint(p3))) {
- // Classify the face on the IN side
- case IN_IN_IN :
- return classifyFaceIN(p1, p2, p3, plane);
- case IN_IN_ON :
- case IN_ON_IN :
- case ON_IN_IN :
- case IN_ON_ON :
- case ON_IN_ON :
- case ON_ON_IN :
- return BOP_addON(classifyFaceIN(p1, p2, p3, plane));
-
- // Classify the face on the OUT side
- case OUT_OUT_OUT :
- return classifyFaceOUT(p1, p2, p3, plane);
- case OUT_OUT_ON :
- case OUT_ON_OUT :
- case ON_OUT_OUT :
- case ON_ON_OUT :
- case ON_OUT_ON :
- case OUT_ON_ON :
- return BOP_addON(classifyFaceOUT(p1, p2, p3, plane));
-
- // Classify the ON face depending on it plane normal
- case ON_ON_ON :
- if (hasSameOrientation(plane))
- return BOP_addON(classifyFaceIN(p1, p2, p3, plane));
- else
- return BOP_addON(classifyFaceOUT(p1, p2, p3, plane));
-
- // Classify the face IN/OUT and one vertex ON
- // becouse only one ON, only one way to subdivide the face
- case IN_OUT_ON :
- auxp1 = BOP_intersectPlane(m_plane, p1, p2);
- auxtag1 = classifyFaceIN( p1, auxp1 , p3, plane);
- auxtag2 = classifyFaceOUT(auxp1, p2, p3, plane);
- return (BOP_compTAG(auxtag1,auxtag2)?BOP_addON(auxtag1):INOUT);
-
- case OUT_IN_ON :
- auxp1 = BOP_intersectPlane(m_plane, p1, p2);
- auxtag1 = classifyFaceOUT(p1, auxp1, p3, plane);
- auxtag2 = classifyFaceIN( auxp1, p2, p3, plane);
- return (BOP_compTAG(auxtag1,auxtag2)?BOP_addON(auxtag1):INOUT);
-
- case IN_ON_OUT :
- auxp1 = BOP_intersectPlane(m_plane, p1, p3);
- auxtag1 = classifyFaceIN( p1, p2, auxp1, plane);
- auxtag2 = classifyFaceOUT(p2, p3, auxp1, plane);
- return (BOP_compTAG(auxtag1,auxtag2)?BOP_addON(auxtag1):INOUT);
-
- case OUT_ON_IN :
- auxp1 = BOP_intersectPlane(m_plane, p1, p3);
- auxtag1 = classifyFaceOUT(p1, p2, auxp1, plane);
- auxtag2 = classifyFaceIN( p2, p3, auxp1, plane);
- return (BOP_compTAG(auxtag1,auxtag2)?BOP_addON(auxtag1):INOUT);
-
- case ON_IN_OUT :
- auxp1 = BOP_intersectPlane(m_plane, p2, p3);
- auxtag1 = classifyFaceIN( p1, p2, auxp1, plane);
- auxtag2 = classifyFaceOUT(auxp1, p3, p1, plane);
- return (BOP_compTAG(auxtag1,auxtag2)?BOP_addON(auxtag1):INOUT);
-
- case ON_OUT_IN :
- auxp1 = BOP_intersectPlane(m_plane, p2, p3);
- auxtag1 = classifyFaceOUT(p1, p2, auxp1, plane);
- auxtag2 = classifyFaceIN( auxp1, p3, p1, plane);
- return (BOP_compTAG(auxtag1,auxtag2)?BOP_addON(auxtag1):INOUT);
-
- // Classify IN/OUT face without ON vertices.
- // Two ways to divide the triangle,
- // will chose the least degenerated sub-triangles.
- case IN_OUT_OUT :
- auxp1 = BOP_intersectPlane(m_plane, p1, p2);
- auxp2 = BOP_intersectPlane(m_plane, p1, p3);
-
- // f1: p1 auxp1 , auxp1 auxp2
- auxtag1 = classifyFaceIN(p1, auxp1, auxp2, plane);
-
- // f2: auxp1 p2 , p2 auxp2; f3: p2 p3 , p3 auxp2 ||
- // f2: auxp1 p3, p3 auxp2; f3: p2 p3 , p3 auxp1
- if (BOP_isInsideCircle(p2, p3, auxp1, auxp2)) {
- auxtag2 = classifyFaceOUT(auxp1, p2, auxp2, plane);
- auxtag3 = classifyFaceOUT(p2, p3, auxp2, plane);
- }
- else {
- auxtag2 = classifyFaceOUT(auxp1, p3, auxp2, plane);
- auxtag3 = classifyFaceOUT(p2, p3, auxp1, plane);
- }
- return (BOP_compTAG(auxtag1,auxtag2)&&BOP_compTAG(auxtag2,auxtag3)?auxtag1:INOUT);
-
- case OUT_IN_IN :
- auxp1 = BOP_intersectPlane(m_plane, p1, p2);
- auxp2 = BOP_intersectPlane(m_plane, p1, p3);
-
- // f1: p1 auxp1 , auxp1 auxp2
- auxtag1 = classifyFaceOUT(p1, auxp1, auxp2, plane);
-
- // f2: auxp1 p2 , p2 auxp2; f3: p2 p3 , p3 auxp2 ||
- // f2: auxp1 p3, p3 auxp2; f3: p2 p3 , p3 auxp1
- if (BOP_isInsideCircle(p2, p3, auxp1, auxp2)) {
- auxtag2 = classifyFaceIN(auxp1, p2, auxp2, plane);
- auxtag3 = classifyFaceIN(p2, p3, auxp2, plane);
- }
- else {
- auxtag2 = classifyFaceIN(auxp1, p3, auxp2, plane);
- auxtag3 = classifyFaceIN(p2, p3, auxp1, plane);
- }
- return (BOP_compTAG(auxtag1,auxtag2)&&BOP_compTAG(auxtag2,auxtag3)?auxtag1:INOUT);
-
- case OUT_IN_OUT :
- auxp1 = BOP_intersectPlane(m_plane, p2, p1);
- auxp2 = BOP_intersectPlane(m_plane, p2, p3);
-
- // f1: auxp1 p2 , p2 auxp2
- auxtag1 = classifyFaceIN(auxp1, p2, auxp2, plane);
-
- // f2: p1 auxp1 , auxp1 auxp2; f3: p1 auxp2 , auxp2 p3 ||
- // f2: p3 auxp1, auxp1 auxp2 f3:p1 auxp1, auxp1 p3
- if (BOP_isInsideCircle(p1, p3, auxp1, auxp2)) {
- auxtag2 = classifyFaceOUT(p1, auxp1, auxp2, plane);
- auxtag3 = classifyFaceOUT(p1, auxp2, p3, plane);
- }
- else {
- auxtag2 = classifyFaceOUT(p3, auxp1, auxp2, plane);
- auxtag3 = classifyFaceOUT(p1, auxp1, p3, plane);
- }
- return (BOP_compTAG(auxtag1,auxtag2)&&BOP_compTAG(auxtag2,auxtag3)?auxtag1:INOUT);
-
- case IN_OUT_IN :
- auxp1 = BOP_intersectPlane(m_plane, p2, p1);
- auxp2 = BOP_intersectPlane(m_plane, p2, p3);
-
- // f1: auxp1 p2 , p2 auxp2
- auxtag1 = classifyFaceOUT(auxp1, p2, auxp2, plane);
-
- // f2: p1 auxp1 , auxp1 auxp2; f3: p1 auxp2 , auxp2 p3 ||
- // f2: p3 auxp1, auxp1 auxp2 f3:p1 auxp1, auxp1 p3
- if (BOP_isInsideCircle(p1, p3, auxp1, auxp2)) {
- auxtag2 = classifyFaceIN(p1, auxp1, auxp2, plane);
- auxtag3 = classifyFaceIN(p1, auxp2, p3, plane);
- }
- else {
- auxtag2 = classifyFaceIN(p3, auxp1, auxp2, plane);
- auxtag3 = classifyFaceIN(p1, auxp1, p3, plane);
- }
- return (BOP_compTAG(auxtag1,auxtag2)&&BOP_compTAG(auxtag2,auxtag3)?auxtag1:INOUT);
-
- case OUT_OUT_IN :
- auxp1 = BOP_intersectPlane(m_plane, p3, p1);
- auxp2 = BOP_intersectPlane(m_plane, p3, p2);
-
- // f1: auxp1 auxp2 , auxp2 p3
- auxtag1 = classifyFaceIN(auxp1, auxp2, p3, plane);
-
- // f2: p1 p2 , p2 auxp2; f3:p1 auxp2 , auxp2 auxp1 ||
- // f2: p1 p2, p2 auxp1; f3:p2 auxp2, auxp2 auxp1
- if (BOP_isInsideCircle(p1, p2, auxp1, auxp2)) {
- auxtag2 = classifyFaceOUT(p1, p2, auxp2, plane);
- auxtag3 = classifyFaceOUT(p1, auxp2, auxp1, plane);
- }
- else {
- auxtag2 = classifyFaceOUT(p1, p2, auxp1, plane);
- auxtag3 = classifyFaceOUT(p2, auxp2, auxp1, plane);
- }
- return (BOP_compTAG(auxtag1,auxtag2)&&BOP_compTAG(auxtag2,auxtag3)?auxtag1:INOUT);
-
- case IN_IN_OUT :
- auxp1 = BOP_intersectPlane(m_plane, p3, p1);
- auxp2 = BOP_intersectPlane(m_plane, p3, p2);
-
- // f1: auxp1 auxp2 , auxp2 p3
- auxtag1 = classifyFaceOUT(auxp1, auxp2, p3, plane);
-
- // f2: p1 p2 , p2 auxp2; f3:p1 auxp2 , auxp2 auxp1 ||
- // f2: p1 p2, p2 auxp1; f3:p2 auxp2, auxp2 auxp1
- if (BOP_isInsideCircle(p1, p2, auxp1, auxp2)) {
- auxtag2 = classifyFaceIN(p1, p2, auxp2, plane);
- auxtag3 = classifyFaceIN(p1, auxp2, auxp1, plane);
- }
- else {
- auxtag2 = classifyFaceIN(p1, p2, auxp1, plane);
- auxtag3 = classifyFaceIN(p2, auxp2, auxp1, plane);
- }
- return (BOP_compTAG(auxtag1,auxtag2)&&BOP_compTAG(auxtag2,auxtag3)?auxtag1:INOUT);
-
- default:
- return UNCLASSIFIED;
- }
-}
-
-/**
- * Classifies a face through IN subtree.
- * @param p1 firts face vertex.
- * @param p2 second face vertex.
- * @param p3 third face vertex.
- * @param plane face plane.
- */
-BOP_TAG BOP_BSPNode::classifyFaceIN(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const
-{
- if (m_inChild != NULL)
- return m_inChild->classifyFace(p1, p2, p3, plane);
- else
- return IN;
-}
-
-/**
- * Classifies a face through OUT subtree.
- * @param p1 firts face vertex.
- * @param p2 second face vertex.
- * @param p3 third face vertex.
- * @param plane face plane.
- */
-BOP_TAG BOP_BSPNode::classifyFaceOUT(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const
-{
- if (m_outChild != NULL)
- return m_outChild->classifyFace(p1, p2, p3, plane);
- else
- return OUT;
-}
-
-/**
- * Simplified classification (optimized but requires that the face is not
- * INOUT; only works correctly with faces completely IN or OUT).
- * @param p1 firts face vertex.
- * @param p2 second face vertex.
- * @param p3 third face vertex.
- * @param plane face plane.
- * @return TAG result: IN or OUT.
- */
-BOP_TAG BOP_BSPNode::simplifiedClassifyFace(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const
-{
- MT_Point3 ret[3];
-
- BOP_TAG tag = BOP_createTAG(testPoint(p1),testPoint(p2),testPoint(p3));
-
- if ((tag & IN_IN_IN) != 0) {
- if ((tag & OUT_OUT_OUT) != 0) {
- if (splitTriangle(ret,m_plane,p1,p2,p3,tag)<0)
- return simplifiedClassifyFaceIN(ret[0],ret[1],ret[2],plane);
- else
- return simplifiedClassifyFaceOUT(ret[0],ret[1],ret[2],plane);
- }
- else {
- return simplifiedClassifyFaceIN(p1,p2,p3,plane);
- }
- }
- else {
- if ((tag & OUT_OUT_OUT) != 0) {
- return simplifiedClassifyFaceOUT(p1,p2,p3,plane);
- }
- else {
- if (hasSameOrientation(plane)) {
- return simplifiedClassifyFaceIN(p1,p2,p3,plane);
- }
- else {
- return simplifiedClassifyFaceOUT(p1,p2,p3,plane);
- }
- }
- }
-
- return IN;
-}
-
-/**
- * Simplified classify through IN subtree.
- * @param p1 firts face vertex.
- * @param p2 second face vertex.
- * @param p3 third face vertex.
- * @param plane face plane.
- */
-BOP_TAG BOP_BSPNode::simplifiedClassifyFaceIN(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const
-{
- if (m_inChild != NULL)
- return m_inChild->simplifiedClassifyFace(p1, p2, p3, plane);
- else
- return IN;
-}
-
-/**
- * Simplified classify through OUT subtree.
- * @param p1 firts face vertex.
- * @param p2 second face vertex.
- * @param p3 third face vertex.
- * @param plane face plane.
- */
-BOP_TAG BOP_BSPNode::simplifiedClassifyFaceOUT(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const
-{
- if (m_outChild != NULL)
- return m_outChild->simplifiedClassifyFace(p1, p2, p3, plane);
- else
- return OUT;
-}
-
-/**
- * Determine if the input plane have the same orientation of the node plane.
- * @param plane plane to test.
- * @return TRUE if have the same orientation, FALSE otherwise.
- */
-bool BOP_BSPNode::hasSameOrientation(const MT_Plane3& plane) const
-{
- return (BOP_orientation(m_plane,plane)>0);
-}
-
-/**
- * Comparation between both childrens.
- * @return 0 equal deep, 1 inChild more deep than outChild and -1 otherwise.
- */
-int BOP_BSPNode::compChildren() const
-{
- unsigned int deep1 = (m_inChild == NULL?0:m_inChild->getDeep());
- unsigned int deep2 = (m_outChild == NULL?0:m_outChild->getDeep());
-
- if (deep1 == deep2)
- return 0;
- else if (deep1 < deep2)
- return -1;
- else
- return 1;
-}
-
-/**
- * Extract a subtriangle from input triangle, is used for simplified classification.
- * The subtriangle is obtained spliting the input triangle by input plane.
- * @param res output subtriangle result.
- * @param plane spliter plane.
- * @param p1 first triangle point.
- * @param p2 second triangle point.
- * @param p3 third triangle point.
- * @param tag triangle orientation respect the plane.
- */
-int BOP_BSPNode::splitTriangle(MT_Point3* res,
- const MT_Plane3& plane,
- const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const BOP_TAG tag) const
-{
- switch (tag) {
- case IN_OUT_ON :
- if (compChildren()<0) {
- // f1: p1 new p3 || new = splitedge(p1,p2)
- res[0] = p1;
- res[1] = BOP_intersectPlane( plane, p1, p2 );
- res[2] = p3;
- return -1;
- }else{
- // f1: p2 new p3 || new = splitedge(p1,p2)
- res[0] = p2;
- res[1] = p3;
- res[2] = BOP_intersectPlane( plane, p1, p2 );
- return 1;
- }
- case OUT_IN_ON :
- if (compChildren()<0) {
- // f1: p2 new p3 || new = splitedge(p1,p2)
- res[0] = p2;
- res[1] = p3;
- res[2] = BOP_intersectPlane( plane, p1, p2 );
- return -1;
- }else{
- // f1: p1 new p3 || new = splitedge(p1,p2)
- res[0] = p1;
- res[1] = BOP_intersectPlane( plane, p1, p2 );
- res[2] = p3;
- return 1;
- }
- case IN_ON_OUT :
- if (compChildren()<0) {
- // f1: p1 p2 new || new = splitedge(p1,p3)
- res[0] = p1;
- res[1] = p2;
- res[2] = BOP_intersectPlane( plane, p1, p3 );
- return -1;
- }else{
- // f1: p2 p3 new || new = splitedge(p1,p3)
- res[0] = p2;
- res[1] = p3;
- res[2] = BOP_intersectPlane( plane, p1, p3 );
- return 1;
- }
- case OUT_ON_IN :
- if (compChildren()<0) {
- // f1: p2 p3 new || new = splitedge(p1,p3)
- res[0] = p2;
- res[1] = p3;
- res[2] = BOP_intersectPlane( plane, p1, p3 );
- return -1;
- }else{
- // f1: p1 p2 new || new = splitedge(p1,p3)
- res[0] = p1;
- res[1] = p2;
- res[2] = BOP_intersectPlane( plane, p1, p3 );
- return 1;
- }
- case ON_IN_OUT :
- if (compChildren()<0) {
- // f1: p1 p2 new || new = splitedge(p2,p3)
- res[0] = p1;
- res[1] = p2;
- res[2] = BOP_intersectPlane( plane, p2, p3 );
- return -1;
- }else{
- // f1: p1 p3 new || new = splitedge(p2,p3)
- res[0] = p1;
- res[1] = BOP_intersectPlane( plane, p2, p3 );
- res[2] = p3;
- return 1;
- }
- case ON_OUT_IN :
- if (compChildren()<0) {
- // f1: p1 p2 new || new = splitedge(p2,p3)
- res[0] = p1;
- res[1] = BOP_intersectPlane( plane, p2, p3 );
- res[2] = p3;
- return -1;
- }else{
- // f1: p1 p2 new || new = splitedge(p2,p3)
- res[0] = p1;
- res[1] = p2;
- res[2] = BOP_intersectPlane( plane, p2, p3 );
- return 1;
- }
- case IN_OUT_OUT :
- if (compChildren()<=0) {
- // f1: p1 new1 new2 || new1 = splitedge(p1,p2) new2 = splitedge(p1,p3)
- res[0] = p1;
- res[1] = BOP_intersectPlane( plane, p1, p2 );
- res[2] = BOP_intersectPlane( plane, p1, p3 );
- return -1;
- }else{
- // f1: p1 new1 new2 || new1 = splitedge(p1,p2) new2 = splitedge(p1,p3)
- res[0] = BOP_intersectPlane( plane, p1, p2 );
- res[1] = p2;
- res[2] = p3;
- return 1;
- }
- case OUT_IN_IN :
- if (compChildren()<0) {
- // f1: p1 new1 new2 || new1 = splitedge(p1,p2) new2 = splitedge(p1,p3)
- res[0] = BOP_intersectPlane( plane, p1, p2 );
- res[1] = p2;
- res[2] = p3;
- return -1;
- }else {
- // f1: p1 new1 new2 || new1 = splitedge(p1,p2) new2 = splitedge(p1,p3)
- res[0] = p1;
- res[1] = BOP_intersectPlane( plane, p1, p2 );
- res[2] = BOP_intersectPlane( plane, p1, p3 );
- return 1;
- }
- case OUT_IN_OUT :
- if (compChildren()<=0) {
- // f1: new1 p2 new2 || new1 = splitedge(p2,p1) new2 = splitedge(p2,p3)
- res[0] = BOP_intersectPlane( plane, p2, p1 );
- res[1] = p2;
- res[2] = BOP_intersectPlane( plane, p2, p3 );
- return -1;
- }else {
- // f1: new1 p2 new2 || new1 = splitedge(p2,p1) new2 = splitedge(p2,p3)
- res[0] = p1;
- res[1] = BOP_intersectPlane( plane, p2, p1 );
- res[2] = BOP_intersectPlane( plane, p2, p3 );
- return 1;
- }
- case IN_OUT_IN :
- if (compChildren()<0) {
- // f1: new1 p2 new2 || new1 = splitedge(p2,p1) new2 = splitedge(p2,p3)
- res[0] = p1;
- res[1] = BOP_intersectPlane( plane, p2, p1 );
- res[2] = BOP_intersectPlane( plane, p2, p3 );
- return -1;
- }else{
- // f1: new1 p2 new2 || new1 = splitedge(p2,p1) new2 = splitedge(p2,p3)
- res[0] = BOP_intersectPlane( plane, p2, p1 );
- res[1] = p2;
- res[2] = BOP_intersectPlane( plane, p2, p3 );
- return 1;
- }
- case OUT_OUT_IN :
- if (compChildren()<=0) {
- // f1: new1 new2 p2 || new1 = splitedge(p3,p1) new2 = splitedge(p3,p2)
- res[0] = BOP_intersectPlane( plane, p3, p1 );
- res[1] = BOP_intersectPlane( plane, p3, p2 );
- res[2] = p3;
- return -1;
- }else{
- // f1: new1 new2 p2 || new1 = splitedge(p3,p1) new2 = splitedge(p3,p2)
- res[0] = BOP_intersectPlane( plane, p3, p1 );
- res[1] = p1;
- res[2] = p2;
- return 1;
- }
- case IN_IN_OUT :
- if (compChildren()<0) {
- // f1: new1 new2 p2 || new1 = splitedge(p3,p1) new2 = splitedge(p3,p2)
- res[0] = BOP_intersectPlane( plane, p3, p1 );
- res[1] = p1;
- res[2] = p2;
- return -1;
- }else{
- // f1: new1 new2 p2 || new1 = splitedge(p3,p1) new2 = splitedge(p3,p2)
- res[0] = BOP_intersectPlane( plane, p3, p1 );
- res[1] = BOP_intersectPlane( plane, p3, p2 );
- res[2] = p3;
- return 1;
- }
- default:
- return 0;
- }
-}
-
-/**
- * Debug info.
- */
-void BOP_BSPNode::print(unsigned int deep)
-{
- std::cout << "(" << deep << "," << m_plane << ")," << std::endl;
- if (m_inChild != NULL)
- m_inChild->print(deep + 1);
- else
- std::cout << "(" << deep+1 << ",None)," << std::endl;
- if (m_outChild != NULL)
- m_outChild->print(deep + 1);
- else
- std::cout << "(" << deep+1 << ",None)," << std::endl;
-}
diff --git a/intern/boolop/intern/BOP_BSPNode.h b/intern/boolop/intern/BOP_BSPNode.h
deleted file mode 100644
index e8646cd904c..00000000000
--- a/intern/boolop/intern/BOP_BSPNode.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_BSPNode.h
- * \ingroup boolopintern
- */
-
-
-#ifndef __BOP_BSPNODE_H__
-#define __BOP_BSPNODE_H__
-
-#include "MT_Plane3.h"
-#include "BOP_Tag.h"
-#include "BOP_Face.h"
-
-typedef std::vector<MT_Point3> BOP_BSPPoints;
-typedef std::vector<MT_Point3>::const_iterator BOP_IT_BSPPoints;
-
-class BOP_BSPNode
-{
-protected:
- BOP_BSPNode* m_inChild;
- BOP_BSPNode* m_outChild;
- MT_Plane3 m_plane;
- unsigned int m_deep;
-
-public:
- // Construction methods
- BOP_BSPNode(const MT_Plane3& plane);
- ~BOP_BSPNode();
- unsigned int addFace(const BOP_BSPPoints& pts,
- const MT_Plane3& plane);
- BOP_TAG classifyFace(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const;
- BOP_TAG simplifiedClassifyFace(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const;
-
-protected:
- BOP_TAG testPoint(const MT_Point3& p) const;
- BOP_TAG classifyFaceIN(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const;
- BOP_TAG classifyFaceOUT(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const;
- BOP_TAG simplifiedClassifyFaceIN(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const;
- BOP_TAG simplifiedClassifyFaceOUT(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const;
- bool hasSameOrientation(const MT_Plane3& plane) const;
- int compChildren() const;
- int splitTriangle(MT_Point3* res,
- const MT_Plane3& plane,
- const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const BOP_TAG tag) const;
-
-public:
- // Inline acces methods
- inline void setInChild(BOP_BSPNode* inChild) { m_inChild=inChild; };
- inline void setOutChild(BOP_BSPNode* outChild) { m_outChild=outChild; };
- inline BOP_BSPNode* getInChild() { return m_inChild; };
- inline BOP_BSPNode* getOutChild() { return m_outChild; };
- inline bool isLeaf() const { return !m_inChild && !m_outChild; };
- inline void setPlane(const MT_Plane3& plane) {m_plane=plane;};
- inline MT_Plane3& getPlane() { return m_plane; };
-
- inline unsigned int getDeep() const {return m_deep;};
- void print(unsigned int deep);
-};
-
-#endif
diff --git a/intern/boolop/intern/BOP_BSPTree.cpp b/intern/boolop/intern/BOP_BSPTree.cpp
deleted file mode 100644
index 7a8ed417be4..00000000000
--- a/intern/boolop/intern/BOP_BSPTree.cpp
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_BSPTree.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_BSPTree.h"
-#include <vector>
-#include <iostream>
-
-/**
- * Constructs a new BSP tree.
- */
-BOP_BSPTree::BOP_BSPTree()
-{
- m_root = NULL;
- m_bspBB = NULL;
-}
-
-/**
- * Destroys a BSP tree.
- */
-BOP_BSPTree::~BOP_BSPTree()
-{
- if (m_root!=NULL) delete m_root;
- if (m_bspBB!=NULL) delete m_bspBB;
-}
-
-/**
- * Adds all mesh faces to BSP tree.
- * @param mesh mesh to add.
- * @param facesList face list to add.
- */
-void BOP_BSPTree::addMesh(BOP_Mesh* mesh, BOP_Faces& facesList)
-{
- for (BOP_IT_Faces it = facesList.begin(); it != facesList.end(); ++it) {
- addFace( mesh, *it );
- }
-
-}
-
-/**
- * Adds a new face into bsp tree.
- * @param mesh Input data for BSP tree.
- * @param face index to mesh face.
- */
-
-void BOP_BSPTree::addFace(BOP_Mesh* mesh, BOP_Face* face)
-{
- addFace(mesh->getVertex(face->getVertex(0))->getPoint(),
- mesh->getVertex(face->getVertex(1))->getPoint(),
- mesh->getVertex(face->getVertex(2))->getPoint(),
- face->getPlane());
-}
-
-/**
- * Adds new facee to the bsp-tree.
- * @param p1 first face point.
- * @param p2 second face point.
- * @param p3 third face point.
- * @param plane face plane.
- */
-void BOP_BSPTree::addFace(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane)
-{
- if (m_root == NULL)
- m_root = new BOP_BSPNode(plane);
- else {
- BOP_BSPPoints pts;
-
- pts.push_back(p1);
- pts.push_back(p2);
- pts.push_back(p3);
-
- m_root->addFace(pts,plane);
- }
-
- // update bounding box
- m_bbox.add(p1);
- m_bbox.add(p2);
- m_bbox.add(p3);
-}
-
-/**
- * Tests face vs bsp-tree (returns where is the face respect bsp planes).
- * @param p1 first face triangle point.
- * @param p2 secons face triangle point.
- * @param p3 third face triangle point.
- * @param plane face plane.
- * @return BSP_IN, BSP_OUT or BSP_IN_OUT
- */
-BOP_TAG BOP_BSPTree::classifyFace(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const
-{
- if ( m_root != NULL )
- return m_root->classifyFace(p1, p2, p3, plane);
- else
- return OUT;
-}
-
-/**
- * Filters a face using the BSP bounding infomation.
- * @param p1 first face triangle point.
- * @param p2 secons face triangle point.
- * @param p3 third face triangle point.
- * @param face face to test.
- * @return UNCLASSIFIED, BSP_IN, BSP_OUT or BSP_IN_OUT
- */
-BOP_TAG BOP_BSPTree::filterFace(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- BOP_Face* face)
-{
- if ( m_bspBB != NULL ) {
- return m_bspBB->classifyFace(p1,p2,p3,face->getPlane());
- }
- else
- return UNCLASSIFIED;
-}
-
-/**
- * Tests face vs bsp-tree (returns where is the face respect bsp planes).
- * @param p1 first face triangle point.
- * @param p2 secons face triangle point.
- * @param p3 third face triangle point.
- * @param plane face plane.
- * @return BSP_IN, BSP_OUT or BSP_IN_OUT
- */
-BOP_TAG BOP_BSPTree::simplifiedClassifyFace(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const
-{
- if ( m_root != NULL )
- return m_root->simplifiedClassifyFace(p1, p2, p3, plane);
- else
- return OUT;
-}
-
-/**
- * Returns the deep of this BSP tree.
- * @return tree deep
- */
-unsigned int BOP_BSPTree::getDeep() const
-{
- if ( m_root != NULL )
- return m_root->getDeep();
- else
- return 0;
-}
-
-/**
- * Prints debug information.
- */
-void BOP_BSPTree::print()
-{
- if ( m_root != NULL )
- m_root->print( 0 );
-}
-
diff --git a/intern/boolop/intern/BOP_BSPTree.h b/intern/boolop/intern/BOP_BSPTree.h
deleted file mode 100644
index b3abd55bf2a..00000000000
--- a/intern/boolop/intern/BOP_BSPTree.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_BSPTree.h
- * \ingroup boolopintern
- */
-
-
-#ifndef __BOP_BSPTREE_H__
-#define __BOP_BSPTREE_H__
-
-#include "BOP_BSPNode.h"
-#include "BOP_Mesh.h"
-#include "BOP_Tag.h"
-#include "BOP_BBox.h"
-
-class BOP_BSPTree
-{
-protected:
- BOP_BSPNode* m_root;
- BOP_BSPNode* m_bspBB;
- BOP_BBox m_bbox;
-public:
- // Construction methods
- BOP_BSPTree();
- virtual ~BOP_BSPTree();
- void addMesh(BOP_Mesh* mesh, BOP_Faces& facesList);
- void addFace(BOP_Mesh* mesh, BOP_Face* face);
- virtual void addFace(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane);
- BOP_TAG classifyFace(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const;
- BOP_TAG filterFace(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- BOP_Face* face);
- BOP_TAG simplifiedClassifyFace(const MT_Point3& p1,
- const MT_Point3& p2,
- const MT_Point3& p3,
- const MT_Plane3& plane) const;
- unsigned int getDeep() const;
- void print();
- inline void setRoot(BOP_BSPNode* root) {m_root=root;};
- inline BOP_BSPNode* getRoot() const {return m_root;};
-};
-
-#endif
-
diff --git a/intern/boolop/intern/BOP_Edge.cpp b/intern/boolop/intern/BOP_Edge.cpp
deleted file mode 100644
index fc03dd897d3..00000000000
--- a/intern/boolop/intern/BOP_Edge.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Edge.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_Edge.h"
-
-/**
- * Constructs a new edge.
- * @param v1 vertex index
- * @param v2 vertex index
- */
-BOP_Edge::BOP_Edge(BOP_Index v1, BOP_Index v2)
-{
- m_vertexs[0] = v1;
- m_vertexs[1] = v2;
-}
-
-/**
- * Adds a new face index to this edge.
- * @param i face index
- */
-void BOP_Edge::addFace(BOP_Index i)
-{
- if (!containsFace(i))
- m_faces.push_back(i);
-}
-
-/**
- * Returns if this edge contains the specified face index.
- * @param i face index
- * @return true if this edge contains the specified face index, false otherwise
- */
-bool BOP_Edge::containsFace(BOP_Index i)
-{
- int pos=0;
- for(BOP_IT_Indexs it = m_faces.begin();it!=m_faces.end();pos++,it++) {
- if ((*it) == i)
- return true;
- }
-
- return false;
-}
-
-/**
- * Replaces an edge vertex index.
- * @param oldIndex old vertex index
- * @param newIndex new vertex index
- */
-void BOP_Edge::replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex)
-{
- if (m_vertexs[0] == oldIndex) m_vertexs[0] = newIndex;
- else if (m_vertexs[1] == oldIndex) m_vertexs[1] = newIndex;
-}
-
-#ifdef BOP_NEW_MERGE
-
-/**
- * Returns if this edge contains the specified face index.
- * @param i face index
- * @return true if this edge contains the specified face index, false otherwise
- */
-bool BOP_Edge::removeFace(BOP_Index i)
-{
- int pos=0;
- for(BOP_IT_Indexs it = m_faces.begin();it!=m_faces.end();pos++,it++) {
- if ((*it) == i) {
- m_faces.erase(it);
- return true;
- }
- }
-
- return false;
-}
-
-#endif
-
-#ifdef BOP_DEBUG
-
-#include <iostream>
-
-/**
- * Implements operator <<.
- */
-ostream &operator<<(ostream &stream, BOP_Edge *e)
-{
- stream << "Edge[" << e->getVertex1() << "," << e->getVertex2();
-#ifdef BOP_NEW_MERGE
- if(e->m_used)
- stream << "] (used)";
- else
- stream << "] (unused)";
-#endif
- return stream;
-}
-#endif
-
-
diff --git a/intern/boolop/intern/BOP_Edge.h b/intern/boolop/intern/BOP_Edge.h
deleted file mode 100644
index fd2f53b1aa4..00000000000
--- a/intern/boolop/intern/BOP_Edge.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Edge.h
- * \ingroup boolopintern
- */
-
-
-#ifndef __BOP_EDGE_H__
-#define __BOP_EDGE_H__
-
-#include "BOP_Indexs.h"
-#include "BOP_Misc.h"
-
-class BOP_Edge
-{
-private:
- BOP_Index m_vertexs[2];
- BOP_Indexs m_faces;
-#ifdef BOP_NEW_MERGE
- bool m_used;
-#endif
-
- bool containsFace(BOP_Index i);
-
-public:
- BOP_Edge(BOP_Index v1, BOP_Index v2);
- inline BOP_Index getVertex1() { return m_vertexs[0];};
- inline BOP_Index getVertex2() { return m_vertexs[1];};
- void replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex);
- inline BOP_Index getFace(unsigned int i){return m_faces[i];};
- inline unsigned int getNumFaces(){return m_faces.size();};
- inline BOP_Indexs &getFaces(){return m_faces;};
- void addFace(BOP_Index face);
-#ifdef BOP_NEW_MERGE
- bool removeFace(BOP_Index i);
- bool getUsed() { return m_used;};
- void setUsed(bool setting) { m_used=setting;};
-#endif
-#ifdef BOP_DEBUG
- friend ostream &operator<<(ostream &stream, BOP_Edge *e);
-#endif
-
-};
-
-#endif
diff --git a/intern/boolop/intern/BOP_Face.cpp b/intern/boolop/intern/BOP_Face.cpp
deleted file mode 100644
index 651964f4dbd..00000000000
--- a/intern/boolop/intern/BOP_Face.cpp
+++ /dev/null
@@ -1,430 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Face.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_Face.h"
-
-/******************************************************************************/
-/*** BOP_Face ***/
-/******************************************************************************/
-
-/**
- * Constructs a new face.
- * @param plane face plane
- * @param originalFace index of the original face
- */
-BOP_Face::BOP_Face(MT_Plane3 plane, BOP_Index originalFace)
-{
- m_plane = plane;
- m_tag = UNCLASSIFIED;
- m_originalFace = originalFace;
- m_split = 0;
- m_bbox = NULL;
-}
-
-/**
- * Inverts this face.
- */
-void BOP_Face::invert()
-{
- getPlane().Invert();
- BOP_Index aux = m_indexs[0];
- m_indexs[0] = m_indexs[2];
- m_indexs[2] = aux;
-}
-
-/******************************************************************************/
-/*** BOP_Face ***/
-/******************************************************************************/
-
-/**
- * Constructs a new triangle face.
- * @param v1 vertex index
- * @param v2 vertex index
- * @param v3 vertex index
- * @param plane face plane
- * @param originalFace index of the original face
- */
-BOP_Face3::BOP_Face3(BOP_Index v1, BOP_Index v2, BOP_Index v3, MT_Plane3 plane, BOP_Index originalFace): BOP_Face(plane,originalFace)
-{
- m_indexs[0] = v1;
- m_indexs[1] = v2;
- m_indexs[2] = v3;
- m_size = 3;
-}
-
-/**
- * Returns the relative edge index (1,2,3) for the specified vertex indexs.
- * @param v1 vertex index
- * @param v2 vertex index
- * @param e relative edge index (1,2,3)
- * @return true if (v1,v2) is an edge of this face, false otherwise
- */
-bool BOP_Face3::getEdgeIndex(BOP_Index v1, BOP_Index v2, unsigned int &e)
-{
- if (m_indexs[0] == v1) {
- if (m_indexs[1] == v2) {
- e = 1;
- }
- else if (m_indexs[2] == v2) {
- e = 3;
- }
- else
- return false;
- }
- else if (m_indexs[1] == v1) {
- if (m_indexs[0] == v2) {
- e = 1;
- }
- else if (m_indexs[2] == v2) {
- e = 2;
- }
- else
- return false;
- }
- else if (m_indexs[2] == v1) {
- if (m_indexs[0] == v2) {
- e = 3;
- }
- else if (m_indexs[1] == v2) {
- e = 2;
- }
- else
- return false;
- }else {
- return false;
- }
-
- return true;
-}
-
-/**
- * Returns if this face contains the specified vertex index.
- * @param v vertex index
- * @return true if this face contains the specified vertex index, false otherwise
- */
-bool BOP_Face3::containsVertex(BOP_Index v)
-{
- return (m_indexs[0] == v || m_indexs[1] == v || m_indexs[2] == v);
-}
-
-/**
- * Returns the neighbours of the specified vertex index.
- * @param v vertex index
- * @param prev previous vertex index
- * @param next next vertex index
- * @return true if this face contains the vertex index v, false otherwise
- */
-bool BOP_Face3::getNeighbours(BOP_Index v, BOP_Index &prev, BOP_Index &next)
-{
- if (m_indexs[0] == v) {
- prev = m_indexs[2];
- next = m_indexs[1];
- }
- else if (m_indexs[1] == v) {
- prev = m_indexs[0];
- next = m_indexs[2];
- }
- else if (m_indexs[2] == v) {
- prev = m_indexs[1];
- next = m_indexs[0];
- }
- else return false;
-
- return true;
-}
-
-/**
- * Returns the previous neighbour of the specified vertex index.
- * @param v vertex index
- * @param w previous vertex index
- * @return true if this face contains the specified vertex index, false otherwise
- */
-bool BOP_Face3::getPreviousVertex(BOP_Index v, BOP_Index &w)
-{
- if (m_indexs[0] == v) w = m_indexs[2];
- else if (m_indexs[1] == v) w = m_indexs[0];
- else if (m_indexs[2] == v) w = m_indexs[1];
- else return false;
-
- return true;
-}
-
-/**
- * Returns the next neighbour of the specified vertex index.
- * @param v vertex index
- * @param w vertex index
- * @return true if this face contains the specified vertex index, false otherwise
- */
-bool BOP_Face3::getNextVertex(BOP_Index v, BOP_Index &w)
-{
- if (m_indexs[0] == v) w = m_indexs[1];
- else if (m_indexs[1] == v) w = m_indexs[2];
- else if (m_indexs[2] == v) w = m_indexs[0];
- else return false;
-
- return true;
-}
-
-/**
- * Replaces a face vertex index.
- * @param oldIndex old vertex index
- * @param newIndex new vertex index
- */
-void BOP_Face3::replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex)
-{
- /* if the old index really exists, and new index also exists already,
- * don't create an edge with both vertices == newIndex */
-
- if( (m_indexs[0] == oldIndex || m_indexs[1] == oldIndex || m_indexs[2] == oldIndex) &&
- (m_indexs[0] == newIndex || m_indexs[1] == newIndex || m_indexs[2] == newIndex) ) {
- setTAG(BROKEN);
- }
-
- if (m_indexs[0] == oldIndex) m_indexs[0] = newIndex;
- else if (m_indexs[1] == oldIndex) m_indexs[1] = newIndex;
- else if (m_indexs[2] == oldIndex) m_indexs[2] = newIndex;
-}
-
-/******************************************************************************/
-/*** BOP_Face4 ***/
-/******************************************************************************/
-
-/**
- * Constructs a new quad face.
- * @param v1 vertex index
- * @param v2 vertex index
- * @param v3 vertex index
- * @param v4 vertex index
- * @param plane face plane
- * @param originalFace index of the original face
- */
-BOP_Face4::BOP_Face4(BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index v4, MT_Plane3 plane,
- BOP_Index originalFace):
- BOP_Face(plane,originalFace)
-{
- m_indexs[0] = v1;
- m_indexs[1] = v2;
- m_indexs[2] = v3;
- m_indexs[3] = v4;
-
- m_size = 4;
-}
-
-/**
- * Returns if this face contains the specified vertex index.
- * @param v vertex index
- * @return true if this face contains the specified vertex index, false otherwise
- */
-bool BOP_Face4::containsVertex(BOP_Index v)
-{
- return (m_indexs[0] == v || m_indexs[1] == v || m_indexs[2] == v || m_indexs[3]==v);
-}
-
-/**
- * Returns the neighbours of the specified vertex index.
- * @param v vertex index
- * @param prev previous vertex index
- * @param next next vertex index
- * @param opp opposite vertex index
- * @return true if this face contains the vertex index v, false otherwise
- */
-bool BOP_Face4::getNeighbours(BOP_Index v, BOP_Index &prev, BOP_Index &next, BOP_Index &opp)
-{
- if (m_indexs[0] == v) {
- prev = m_indexs[3];
- next = m_indexs[1];
- opp = m_indexs[2];
- }
- else if (m_indexs[1] == v) {
- prev = m_indexs[0];
- next = m_indexs[2];
- opp = m_indexs[3];
- }
- else if (m_indexs[2] == v) {
- prev = m_indexs[1];
- next = m_indexs[3];
- opp = m_indexs[0];
- }
- else if (m_indexs[3] == v) {
- prev = m_indexs[2];
- next = m_indexs[0];
- opp = m_indexs[1];
- }
- else return false;
-
- return true;
-}
-
-/**
- * Returns the previous neighbour of the specified vertex index.
- * @param v vertex index
- * @param w previous vertex index
- * @return true if this face contains the specified vertex index, false otherwise
- */
-bool BOP_Face4::getPreviousVertex(BOP_Index v, BOP_Index &w)
-{
- if (m_indexs[0] == v) w = m_indexs[3];
- else if (m_indexs[1] == v) w = m_indexs[0];
- else if (m_indexs[2] == v) w = m_indexs[1];
- else if (m_indexs[3] == v) w = m_indexs[2];
- else return false;
-
- return true;
-}
-
-/**
- * Returns the next neighbour of the specified vertex index.
- * @param v vertex index
- * @param w next vertex index
- * @return true if this face contains the specified vertex index, false otherwise
- */
-bool BOP_Face4::getNextVertex(BOP_Index v, BOP_Index &w)
-{
- if (m_indexs[0] == v) w = m_indexs[1];
- else if (m_indexs[1] == v) w = m_indexs[2];
- else if (m_indexs[2] == v) w = m_indexs[3];
- else if (m_indexs[3] == v) w = m_indexs[0];
- else return false;
-
- return true;
-}
-
-/**
- * Returns the opposite neighbour of the specified vertex index.
- * @param v vertex index
- * @param w opposite vertex index
- * @return true if this face contains the specified vertex index, false otherwise
- */
-bool BOP_Face4::getOppositeVertex(BOP_Index v, BOP_Index &w)
-{
- if (m_indexs[0] == v)
- w = m_indexs[2];
- else if (m_indexs[1] == v)
- w = m_indexs[3];
- else if (m_indexs[2] == v)
- w = m_indexs[0];
- else if (m_indexs[3] == v)
- w = m_indexs[1];
- else
- return false;
-
- return true;
-}
-
-/**
- * Replaces a face vertex index.
- * @param oldIndex old vertex index
- * @param newIndex new vertex index
- */
-void BOP_Face4::replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex)
-{
- if (m_indexs[0] == oldIndex) m_indexs[0] = newIndex;
- else if (m_indexs[1] == oldIndex) m_indexs[1] = newIndex;
- else if (m_indexs[2] == oldIndex) m_indexs[2] = newIndex;
- else if (m_indexs[3] == oldIndex) m_indexs[3] = newIndex;
-}
-
-/**
- * Returns the relative edge index (1,2,3,4) for the specified vertex indexs.
- * @param v1 vertex index
- * @param v2 vertex index
- * @param e relative edge index (1,2,3,4)
- * @return true if (v1,v2) is an edge of this face, false otherwise
- */
-bool BOP_Face4::getEdgeIndex(BOP_Index v1, BOP_Index v2, unsigned int &e)
-{
- if (m_indexs[0] == v1) {
- if (m_indexs[1] == v2) {
- e = 1;
- }
- else if (m_indexs[3] == v2) {
- e = 4;
- }
- else
- return false;
- }
- else if (m_indexs[1] == v1) {
- if (m_indexs[0] == v2) {
- e = 1;
- }
- else if (m_indexs[2] == v2) {
- e = 2;
- }
- else
- return false;
- }
- else if (m_indexs[2] == v1) {
- if (m_indexs[1] == v2) {
- e = 2;
- }
- else if (m_indexs[3] == v2) {
- e = 3;
- }
- else
- return false;
- }
- else if (m_indexs[3] == v1) {
- if (m_indexs[2] == v2) {
- e = 3;
- }
- else if (m_indexs[0] == v2) {
- e = 4;
- }
- else
- return false;
- }
- else return false;
-
- return true;
-}
-
-#ifdef BOP_DEBUG
-/**
- * Implements operator <<.
- */
-ostream &operator<<(ostream &stream, BOP_Face *f)
-{
- char aux[20];
- BOP_stringTAG(f->m_tag,aux);
- if (f->size()==3) {
- stream << "Face[" << f->getVertex(0) << "," << f->getVertex(1) << ",";
- stream << f->getVertex(2) << "] (" << aux << ") <-- " << f->m_originalFace;
- }
- else {
- stream << "Face[" << f->getVertex(0) << "," << f->getVertex(1) << ",";
- stream << f->getVertex(2) << "," << f->getVertex(3) << "] (" << aux;
- stream << ") <-- " << f->m_originalFace;
- }
-
- return stream;
-}
-#endif
diff --git a/intern/boolop/intern/BOP_Face.h b/intern/boolop/intern/BOP_Face.h
deleted file mode 100644
index 4f09618e23a..00000000000
--- a/intern/boolop/intern/BOP_Face.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Face.h
- * \ingroup boolopintern
- */
-
-
-#ifndef __BOP_FACE_H__
-#define __BOP_FACE_H__
-
-#include "BOP_Tag.h"
-#include "MT_Plane3.h"
-#include "BOP_Indexs.h"
-#include "BOP_BBox.h"
-#include "BOP_Misc.h"
-#include <iostream>
-#include <vector>
-
-class BOP_Face;
-
-typedef std::vector<BOP_Face *> BOP_Faces;
-typedef std::vector<BOP_Face *>::iterator BOP_IT_Faces;
-
-class BOP_Face
-{
-private:
- BOP_TAG m_tag;
- MT_Plane3 m_plane;
- BOP_Index m_originalFace;
-
-protected:
- BOP_Index m_indexs[4];
- unsigned int m_size;
- unsigned int m_split;
- BOP_BBox *m_bbox;
-
-public:
- BOP_Face(MT_Plane3 plane, BOP_Index originalFace);
- virtual ~BOP_Face(){if (m_bbox) delete m_bbox;};
- inline MT_Plane3 getPlane() const {return m_plane;};
- inline void setPlane(const MT_Plane3 plane) {m_plane = plane;};
- inline BOP_TAG getTAG() const {return m_tag;};
- inline void setTAG(const BOP_TAG t) {m_tag = t;};
- inline BOP_Index getOriginalFace() const {return m_originalFace;};
- inline void setOriginalFace(const BOP_Index originalFace) {m_originalFace=originalFace;};
- inline BOP_Index getVertex(unsigned int i) const {return m_indexs[i];};
- inline void setVertex(const BOP_Index idx, const BOP_Index i) {m_indexs[idx]=i;};
- inline unsigned int getSplit() const {return m_split;};
- inline void setSplit(const unsigned int i) {m_split=i;};
-
- void invert();
- inline void setBBox(const MT_Point3& p1,const MT_Point3& p2,const MT_Point3& p3) {
- m_bbox = new BOP_BBox(p1, p2, p3);};
- inline BOP_BBox *getBBox() {return m_bbox;};
- inline void freeBBox(){if (m_bbox!=NULL) {delete m_bbox; m_bbox=NULL;} };
-
- inline unsigned int size() const {return m_size;};
-
- virtual bool getEdgeIndex(BOP_Index v1, BOP_Index v2, unsigned int &e) = 0;
- virtual void replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex) = 0;
- virtual bool containsVertex(BOP_Index v) = 0;
-
-#ifdef BOP_DEBUG
- friend ostream &operator<<(ostream &stream, BOP_Face *f);
-#endif
-};
-
-class BOP_Face3: public BOP_Face
-{
-public:
- BOP_Face3(BOP_Index i, BOP_Index j, BOP_Index k, MT_Plane3 p, BOP_Index originalFace);
- bool getEdgeIndex(BOP_Index v1, BOP_Index v2, unsigned int &e);
- void replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex);
- bool containsVertex(BOP_Index v);
-
- bool getNeighbours(BOP_Index v, BOP_Index &prev, BOP_Index &next);
- bool getPreviousVertex(BOP_Index v, BOP_Index &w);
- bool getNextVertex(BOP_Index v, BOP_Index &w);
-};
-
-class BOP_Face4: public BOP_Face
-{
-public:
- BOP_Face4(BOP_Index i, BOP_Index j, BOP_Index k, BOP_Index l, MT_Plane3 p, BOP_Index originalFace);
- bool getEdgeIndex(BOP_Index v1, BOP_Index v2, unsigned int &e);
- void replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex);
- bool containsVertex(BOP_Index v);
-
- bool getNeighbours(BOP_Index v, BOP_Index &prev, BOP_Index &next, BOP_Index &opp);
- bool getPreviousVertex(BOP_Index v, BOP_Index &w);
- bool getNextVertex(BOP_Index v, BOP_Index &w);
- bool getOppositeVertex(BOP_Index v, BOP_Index &w);
-};
-
-#endif
diff --git a/intern/boolop/intern/BOP_Face2Face.cpp b/intern/boolop/intern/BOP_Face2Face.cpp
deleted file mode 100644
index 905d23fddff..00000000000
--- a/intern/boolop/intern/BOP_Face2Face.cpp
+++ /dev/null
@@ -1,1250 +0,0 @@
-/*
- *
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): Marc Freixas, Ken Hughes
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Face2Face.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_Face2Face.h"
-#include "BOP_BBox.h"
-
-// TAGS for segment classification in x-segment creation
-// sA -> point of sA
-// sB -> point of sB
-// sX -> point of sA and SB
-#define sA_sB 12
-#define sB_sA 21
-#define sX_sA 31
-#define sA_sX 13
-#define sX_sB 32
-#define sB_sX 23
-#define sX_sX 33
-
-#define sA_sA_sB 112
-#define sB_sB_sA 221
-#define sB_sA_sA 211
-#define sA_sB_sB 122
-#define sA_sB_sA 121
-#define sB_sA_sB 212
-#define sA_sX_sB 132
-#define sB_sX_sA 231
-#define sX_sA_sB 312
-#define sX_sB_sA 321
-#define sA_sB_sX 123
-#define sB_sA_sX 213
-
-#define sA_sA_sB_sB 1122
-#define sB_sB_sA_sA 2211
-#define sA_sB_sA_sB 1212
-#define sB_sA_sB_sA 2121
-#define sA_sB_sB_sA 1221
-#define sB_sA_sA_sB 2112
-
-void BOP_intersectCoplanarFaces(BOP_Mesh* mesh,
- BOP_Faces* facesB,
- BOP_Face* faceA,
- BOP_Face* faceB,
- bool invert);
-
-void BOP_intersectCoplanarFaces(BOP_Mesh* mesh,
- BOP_Faces* facesB,
- BOP_Face* faceB,
- BOP_Segment sA,
- MT_Plane3 planeA,
- bool invert);
-
-void BOP_intersectNonCoplanarFaces(BOP_Mesh* mesh,
- BOP_Faces* facesA,
- BOP_Faces* facesB,
- BOP_Face* faceA,
- BOP_Face* faceB);
-
-void BOP_getPoints(BOP_Mesh* mesh,
- BOP_Face* faceA,
- BOP_Segment& sA,
- MT_Plane3 planeB,
- MT_Point3* points,
- unsigned int* faces,
- unsigned int& size,
- unsigned int faceValue);
-
-void BOP_mergeSort(MT_Point3 *points, unsigned int *face, unsigned int &size, bool &invertA, bool &invertB);
-
-void BOP_createXS(BOP_Mesh* mesh,
- BOP_Face* faceA,
- BOP_Face* faceB,
- BOP_Segment sA,
- BOP_Segment sB,
- bool invert,
- BOP_Segment* segments);
-
-void BOP_createXS(BOP_Mesh* mesh,
- BOP_Face* faceA,
- BOP_Face* faceB,
- MT_Plane3 planeA,
- MT_Plane3 planeB,
- BOP_Segment sA,
- BOP_Segment sB,
- bool invert,
- BOP_Segment* segments);
-
-BOP_Index BOP_getVertexIndex(BOP_Mesh* mesh,
- MT_Point3 point,
- unsigned int cfgA,
- unsigned int cfgB,
- BOP_Index vA,
- BOP_Index vB,
- bool invert);
-
-BOP_Index BOP_getVertexIndex(BOP_Mesh *mesh, MT_Point3 point, unsigned int cfg, BOP_Index v);
-
-void triangulate(BOP_Mesh *mesh, BOP_Faces *faces, BOP_Face *face, BOP_Segment s);
-
-BOP_Face *BOP_getOppositeFace(BOP_Mesh* mesh,
- BOP_Faces* faces,
- BOP_Face* face,
- BOP_Edge* edge);
-
-bool BOP_overlap(MT_Vector3 normal,
- MT_Point3 p1,
- MT_Point3 p2,
- MT_Point3 p3,
- MT_Point3 q1,
- MT_Point3 q2,
- MT_Point3 q3);
-
-void BOP_mergeVertexs(BOP_Mesh *mesh, unsigned int firstFace);
-
-
-/**
- * Computes intersections between faces of both lists.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param facesA set of faces from object A
- * @param facesB set of faces from object B
- *
- * Two optimizations were added here:
- * 1) keep the bounding box for a face once it's created; this is
- * especially important for B faces, since they were being created and
- * recreated over and over
- * 2) associate a "split" index in the faceB vector with each A face; when
- * an A face is split, we will not need to recheck any B faces have
- * already been checked against that original A face
- */
-
-void BOP_Face2Face(BOP_Mesh *mesh, BOP_Faces *facesA, BOP_Faces *facesB)
-{
- for(unsigned int idxFaceA=0;idxFaceA<facesA->size();idxFaceA++) {
- BOP_Face *faceA = (*facesA)[idxFaceA];
- MT_Plane3 planeA = faceA->getPlane();
- MT_Point3 p1 = mesh->getVertex(faceA->getVertex(0))->getPoint();
- MT_Point3 p2 = mesh->getVertex(faceA->getVertex(1))->getPoint();
- MT_Point3 p3 = mesh->getVertex(faceA->getVertex(2))->getPoint();
-
- /* get (or create) bounding box for face A */
- if( faceA->getBBox() == NULL )
- faceA->setBBox(p1,p2,p3);
- BOP_BBox *boxA = faceA->getBBox();
-
- /* start checking B faces with the previously stored split index */
-
- for(unsigned int idxFaceB=faceA->getSplit();
- idxFaceB<facesB->size() && (faceA->getTAG() != BROKEN) && (faceA->getTAG() != PHANTOM);) {
- BOP_Face *faceB = (*facesB)[idxFaceB];
- faceA->setSplit(idxFaceB);
- if ((faceB->getTAG() != BROKEN) && (faceB->getTAG() != PHANTOM)) {
-
- /* get (or create) bounding box for face B */
- if( faceB->getBBox() == NULL ) {
- faceB->setBBox(mesh->getVertex(faceB->getVertex(0))->getPoint(),
- mesh->getVertex(faceB->getVertex(1))->getPoint(),
- mesh->getVertex(faceB->getVertex(2))->getPoint());
- }
- BOP_BBox *boxB = faceB->getBBox();
-
- if (boxA->intersect(*boxB)) {
- MT_Plane3 planeB = faceB->getPlane();
- if (BOP_containsPoint(planeB,p1) &&
- BOP_containsPoint(planeB,p2) &&
- BOP_containsPoint(planeB,p3))
- {
- if (BOP_orientation(planeB,planeA)>0) {
- BOP_intersectCoplanarFaces(mesh,facesB,faceA,faceB,false);
- }
- }
- else {
- BOP_intersectNonCoplanarFaces(mesh,facesA,facesB,faceA,faceB);
- }
- }
- }
- idxFaceB++;
- }
- }
-
-
- // Clean broken faces from facesA
- BOP_IT_Faces it;
- it = facesA->begin();
- while (it != facesA->end()) {
- BOP_Face *face = *it;
- if (face->getTAG() == BROKEN) it = facesA->erase(it);
- else it++;
- }
- /*
- it = facesB->begin();
- while (it != facesB->end()) {
- BOP_Face *face = *it;
- if (face->getTAG() == BROKEN) it = facesB->erase(it);
- else it++;
- }
- */
-}
-
-/**
- * Computes intesections of coplanars faces from object A with faces from object B.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param facesA set of faces from object A
- * @param facesB set of faces from object B
- */
-void BOP_sew(BOP_Mesh *mesh, BOP_Faces *facesA, BOP_Faces *facesB)
-{
- for(unsigned int idxFaceB = 0; idxFaceB < facesB->size(); idxFaceB++) {
- BOP_Face *faceB = (*facesB)[idxFaceB];
- MT_Plane3 planeB = faceB->getPlane();
- MT_Point3 p1 = mesh->getVertex(faceB->getVertex(0))->getPoint();
- MT_Point3 p2 = mesh->getVertex(faceB->getVertex(1))->getPoint();
- MT_Point3 p3 = mesh->getVertex(faceB->getVertex(2))->getPoint();
-
- for(unsigned int idxFaceA = 0;
- idxFaceA < facesA->size() &&
- faceB->getTAG() != BROKEN &&
- faceB->getTAG() != PHANTOM;
- idxFaceA++) {
- BOP_Face *faceA = (*facesA)[idxFaceA];
- if ((faceA->getTAG() != BROKEN)&&(faceA->getTAG() != PHANTOM)) {
- MT_Plane3 planeA = faceA->getPlane();
- if (BOP_containsPoint(planeA,p1) &&
- BOP_containsPoint(planeA,p2) &&
- BOP_containsPoint(planeA,p3)) {
- if (BOP_orientation(planeA,planeB) > 0) {
- BOP_intersectCoplanarFaces(mesh,facesA,faceB,faceA,true);
- }
- }
- }
- }
- }
-}
-
-/**
- * Triangulates faceB using edges of faceA that both are complanars.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param facesB set of faces from object B
- * @param faceA face from object A
- * @param faceB face from object B
- * @param invert indicates if faceA has priority over faceB
- */
-void BOP_intersectCoplanarFaces(BOP_Mesh* mesh,
- BOP_Faces* facesB,
- BOP_Face* faceA,
- BOP_Face* faceB,
- bool invert)
-{
- unsigned int oldSize = facesB->size();
- unsigned int originalFaceB = faceB->getOriginalFace();
-
- MT_Point3 p1 = mesh->getVertex(faceA->getVertex(0))->getPoint();
- MT_Point3 p2 = mesh->getVertex(faceA->getVertex(1))->getPoint();
- MT_Point3 p3 = mesh->getVertex(faceA->getVertex(2))->getPoint();
-
- MT_Vector3 normal(faceA->getPlane().x(),faceA->getPlane().y(),faceA->getPlane().z());
-
- MT_Vector3 p1p2 = p2-p1;
-
- MT_Plane3 plane1((p1p2.cross(normal).normalized()),p1);
-
- BOP_Segment sA;
- sA.m_cfg1 = BOP_Segment::createVertexCfg(1);
- sA.m_v1 = faceA->getVertex(0);
- sA.m_cfg2 = BOP_Segment::createVertexCfg(2);
- sA.m_v2 = faceA->getVertex(1);
-
- BOP_intersectCoplanarFaces(mesh,facesB,faceB,sA,plane1,invert);
-
- MT_Vector3 p2p3 = p3-p2;
- MT_Plane3 plane2((p2p3.cross(normal).normalized()),p2);
-
- sA.m_cfg1 = BOP_Segment::createVertexCfg(2);
- sA.m_v1 = faceA->getVertex(1);
- sA.m_cfg2 = BOP_Segment::createVertexCfg(3);
- sA.m_v2 = faceA->getVertex(2);
-
- if (faceB->getTAG() == BROKEN) {
- for(unsigned int idxFace = oldSize; idxFace < facesB->size(); idxFace++) {
- BOP_Face *face = (*facesB)[idxFace];
- if (face->getTAG() != BROKEN && originalFaceB == face->getOriginalFace())
- BOP_intersectCoplanarFaces(mesh,facesB,face,sA,plane2,invert);
- }
- }
- else {
- BOP_intersectCoplanarFaces(mesh,facesB,faceB,sA,plane2,invert);
- }
-
- MT_Vector3 p3p1 = p1-p3;
- MT_Plane3 plane3((p3p1.cross(normal).safe_normalized()),p3);
-
- sA.m_cfg1 = BOP_Segment::createVertexCfg(3);
- sA.m_v1 = faceA->getVertex(2);
- sA.m_cfg2 = BOP_Segment::createVertexCfg(1);
- sA.m_v2 = faceA->getVertex(0);
-
- if (faceB->getTAG() == BROKEN) {
- for(unsigned int idxFace = oldSize; idxFace < facesB->size(); idxFace++) {
- BOP_Face *face = (*facesB)[idxFace];
- if (face->getTAG() != BROKEN && originalFaceB == face->getOriginalFace())
- BOP_intersectCoplanarFaces(mesh,facesB,face,sA,plane3,invert);
- }
- }
- else {
- BOP_intersectCoplanarFaces(mesh,facesB,faceB,sA,plane3,invert);
- }
-}
-
-/**
- * Triangulates faceB using segment sA and planeA.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param facesB set of faces from object B
- * @param faceB face from object B
- * @param sA segment to intersect with faceB
- * @param planeA plane to intersect with faceB
- * @param invert indicates if sA has priority over faceB
- */
-void BOP_intersectCoplanarFaces(BOP_Mesh* mesh,
- BOP_Faces* facesB,
- BOP_Face* faceB,
- BOP_Segment sA,
- MT_Plane3 planeA,
- bool invert)
-{
- BOP_Segment sB = BOP_splitFace(planeA,mesh,faceB);
-
- if (BOP_Segment::isDefined(sB.m_cfg1)) {
- BOP_Segment xSegment[2];
- BOP_createXS(mesh,NULL,faceB,planeA,MT_Plane3(),sA,sB,invert,xSegment);
- if (BOP_Segment::isDefined(xSegment[1].m_cfg1)) {
- unsigned int sizefaces = mesh->getNumFaces();
- triangulate(mesh,facesB,faceB,xSegment[1]);
- BOP_mergeVertexs(mesh,sizefaces);
- }
- }
-}
-
-/**
- * Triangulates faceB using edges of faceA that both are not complanars.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param facesB set of faces from object B
- * @param faceA face from object A
- * @param faceB face from object B
- */
-void BOP_intersectNonCoplanarFaces(BOP_Mesh *mesh,
- BOP_Faces *facesA,
- BOP_Faces *facesB,
- BOP_Face *faceA,
- BOP_Face *faceB)
-{
- // Obtain segments of faces A and B from the intersection with their planes
- BOP_Segment sA = BOP_splitFace(faceB->getPlane(),mesh,faceA);
- BOP_Segment sB = BOP_splitFace(faceA->getPlane(),mesh,faceB);
-
- if (BOP_Segment::isDefined(sA.m_cfg1) && BOP_Segment::isDefined(sB.m_cfg1)) {
- // There is an intesection, build the X-segment
- BOP_Segment xSegment[2];
- BOP_createXS(mesh,faceA,faceB,sA,sB,false,xSegment);
-
- unsigned int sizefaces = mesh->getNumFaces();
- triangulate(mesh,facesA,faceA,xSegment[0]);
- BOP_mergeVertexs(mesh,sizefaces);
-
- sizefaces = mesh->getNumFaces();
- triangulate(mesh,facesB,faceB,xSegment[1]);
- BOP_mergeVertexs(mesh,sizefaces);
- }
-}
-
-/**
- * Tests if faces since firstFace have all vertexs non-coincident of colinear, otherwise repairs the mesh.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param firstFace first face index to be tested
- */
-void BOP_mergeVertexs(BOP_Mesh *mesh, unsigned int firstFace)
-{
- unsigned int numFaces = mesh->getNumFaces();
- for(unsigned int idxFace = firstFace; idxFace < numFaces; idxFace++) {
- BOP_Face *face = mesh->getFace(idxFace);
- if ((face->getTAG() != BROKEN) && (face->getTAG() != PHANTOM)) {
- MT_Point3 vertex1 = mesh->getVertex(face->getVertex(0))->getPoint();
- MT_Point3 vertex2 = mesh->getVertex(face->getVertex(1))->getPoint();
- MT_Point3 vertex3 = mesh->getVertex(face->getVertex(2))->getPoint();
- if (BOP_collinear(vertex1,vertex2,vertex3)) // collinear triangle
- face->setTAG(PHANTOM);
- }
- }
-}
-
-/**
- * Obtains the points of the segment created from the intersection between faceA and planeB.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faceA intersected face
- * @param sA segment of the intersection between faceA and planeB
- * @param planeB intersected plane
- * @param points array of points where the new points are saved
- * @param faces array of relative face index to the points
- * @param size size of arrays points and faces
- * @param faceValue relative face index of new points
- */
-void BOP_getPoints(BOP_Mesh* mesh,
- BOP_Face* faceA,
- BOP_Segment& sA,
- MT_Plane3 planeB,
- MT_Point3* points,
- unsigned int* faces,
- unsigned int& size,
- unsigned int faceValue)
-{
- MT_Point3 p1,p2;
-
- if (BOP_Segment::isDefined(sA.m_cfg1)) {
- if (BOP_Segment::isEdge(sA.m_cfg1)) {
- // the new point becomes of split faceA edge
- p1 = BOP_splitEdge(planeB,mesh,faceA,BOP_Segment::getEdge(sA.m_cfg1));
- }
- else if (BOP_Segment::isVertex(sA.m_cfg1)) {
- // the new point becomes of vertex faceA
- p1 = mesh->getVertex(BOP_Segment::getVertex(sA.m_v1))->getPoint();
- }
-
- if (BOP_Segment::isDefined(sA.m_cfg2)) {
- if (BOP_Segment::isEdge(sA.m_cfg2)) {
- p2 = BOP_splitEdge(planeB,mesh,faceA,BOP_Segment::getEdge(sA.m_cfg2));
- }
- else if (BOP_Segment::isVertex(sA.m_cfg2)) {
- p2 = mesh->getVertex(BOP_Segment::getVertex(sA.m_v2))->getPoint();
- }
- points[size] = p1;
- points[size+1] = p2;
- faces[size] = faceValue;
- faces[size+1] = faceValue;
- size += 2;
- }
-
- else {
- points[size] = p1;
- faces[size] = faceValue;
- size++;
- }
- }
-}
-
-/**
- * Sorts the colinear points and relative face indices.
- * @param points array of points where the new points are saved
- * @param faces array of relative face index to the points
- * @param size size of arrays points and faces
- * @param invertA indicates if points of same relative face had been exchanged
- */
-void BOP_mergeSort(MT_Point3 *points, unsigned int *face, unsigned int &size, bool &invertA, bool &invertB) {
- MT_Point3 sortedPoints[4];
- unsigned int sortedFaces[4], position[4];
- unsigned int i;
- if (size == 2) {
-
- // Trivial case, only test the merge ...
- if (BOP_fuzzyZero(points[0].distance(points[1]))) {
- face[0] = 3;
- size--;
- }
- }
- else {
- // size is 3 or 4
- // Get segment extreme points
- MT_Scalar maxDistance = -1;
- for(i=0;i<size-1;i++){
- for(unsigned int j=i+1;j<size;j++){
- MT_Scalar distance = points[i].distance(points[j]);
- if (distance > maxDistance){
- maxDistance = distance;
- position[0] = i;
- position[size-1] = j;
- }
- }
- }
-
- // Get segment inner points
- position[1] = position[2] = size;
- for(i=0;i<size;i++){
- if ((i != position[0]) && (i != position[size-1])){
- if (position[1] == size) position[1] = i;
- else position[2] = i;
- }
- }
-
- // Get inner points
- if (position[2] < size) {
- MT_Scalar d1 = points[position[1]].distance(points[position[0]]);
- MT_Scalar d2 = points[position[2]].distance(points[position[0]]);
- if (d1 > d2) {
- unsigned int aux = position[1];
- position[1] = position[2];
- position[2] = aux;
- }
- }
-
- // Sort data
- for(i=0;i<size;i++) {
- sortedPoints[i] = points[position[i]];
- sortedFaces[i] = face[position[i]];
- }
-
- invertA = false;
- invertB = false;
- if (face[1] == 1) {
-
- // invertA?
- for(i=0;i<size;i++) {
- if (position[i] == 1) {
- invertA = true;
- break;
- }
- else if (position[i] == 0) break;
- }
-
- // invertB?
- if (size == 4) {
- for(i=0;i<size;i++) {
- if (position[i] == 3) {
- invertB = true;
- break;
- }
- else if (position[i] == 2) break;
- }
- }
- }
- else if (face[1] == 2) {
- // invertB?
- for(i=0;i<size;i++) {
- if (position[i] == 2) {
- invertB = true;
- break;
- }
- else if (position[i] == 1) break;
- }
- }
-
-
- // Merge data
- MT_Scalar d1 = sortedPoints[1].distance(sortedPoints[0]);
- MT_Scalar d2 = sortedPoints[1].distance(sortedPoints[2]);
- if (BOP_fuzzyZero(d1) && sortedFaces[1] != sortedFaces[0]) {
- if (BOP_fuzzyZero(d2) && sortedFaces[1] != sortedFaces[2]) {
- if (d1 < d2) {
- // merge 0 and 1
- sortedFaces[0] = 3;
- for(i = 1; i<size-1;i++) {
- sortedPoints[i] = sortedPoints[i+1];
- sortedFaces[i] = sortedFaces[i+1];
- }
- size--;
- if (size == 3) {
- // merge 1 and 2 ???
- d1 = sortedPoints[1].distance(sortedPoints[2]);
- if (BOP_fuzzyZero(d1) && sortedFaces[1] != sortedFaces[2]) {
- // merge!
- sortedFaces[1] = 3;
- size--;
- }
- }
- }
- else {
- // merge 1 and 2
- sortedFaces[1] = 3;
- for(i = 2; i<size-1;i++) {
- sortedPoints[i] = sortedPoints[i+1];
- sortedFaces[i] = sortedFaces[i+1];
- }
- size--;
- }
- }
- else {
- // merge 0 and 1
- sortedFaces[0] = 3;
- for(i = 1; i<size-1;i++) {
- sortedPoints[i] = sortedPoints[i+1];
- sortedFaces[i] = sortedFaces[i+1];
- }
- size--;
- if (size == 3) {
- // merge 1 i 2 ???
- d1 = sortedPoints[1].distance(sortedPoints[2]);
- if (BOP_fuzzyZero(d1) && sortedFaces[1] != sortedFaces[2]) {
- // merge!
- sortedFaces[1] = 3;
- size--;
- }
- }
- }
- }
- else {
- if (BOP_fuzzyZero(d2) && sortedFaces[1] != sortedFaces[2]) {
- // merge 1 and 2
- sortedFaces[1] = 3;
- for(i = 2; i<size-1;i++) {
- sortedPoints[i] = sortedPoints[i+1];
- sortedFaces[i] = sortedFaces[i+1];
- }
- size--;
- }
- else if (size == 4) {
- d1 = sortedPoints[2].distance(sortedPoints[3]);
- if (BOP_fuzzyZero(d1) && sortedFaces[2] != sortedFaces[3]) {
- // merge 2 and 3
- sortedFaces[2] = 3;
- size--;
- }
- }
- }
-
- // Merge initial points ...
- for(i=0;i<size;i++) {
- points[i] = sortedPoints[i];
- face[i] = sortedFaces[i];
- }
-
- }
-}
-
-
-/**
- * Computes the x-segment of two segments (the shared interval). The segments needs to have sA.m_cfg1 > 0 && sB.m_cfg1 > 0 .
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faceA face of object A
- * @param faceB face of object B
- * @param sA segment of intersection between faceA and planeB
- * @param sB segment of intersection between faceB and planeA
- * @param invert indicates if faceA has priority over faceB
- * @param segmemts array of the output x-segments
- */
-void BOP_createXS(BOP_Mesh* mesh,
- BOP_Face* faceA,
- BOP_Face* faceB,
- BOP_Segment sA,
- BOP_Segment sB,
- bool invert,
- BOP_Segment* segments) {
- BOP_createXS(mesh, faceA, faceB, faceA->getPlane(), faceB->getPlane(),
- sA, sB, invert, segments);
-}
-
-/**
- * Computes the x-segment of two segments (the shared interval). The segments needs to have sA.m_cfg1 > 0 && sB.m_cfg1 > 0 .
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faceA face of object A
- * @param faceB face of object B
- * @param planeA plane of faceA
- * @param planeB plane of faceB
- * @param sA segment of intersection between faceA and planeB
- * @param sB segment of intersection between faceB and planeA
- * @param invert indicates if faceA has priority over faceB
- * @param segmemts array of the output x-segments
- */
-void BOP_createXS(BOP_Mesh* mesh,
- BOP_Face* faceA,
- BOP_Face* faceB,
- MT_Plane3 planeA,
- MT_Plane3 planeB,
- BOP_Segment sA,
- BOP_Segment sB,
- bool invert,
- BOP_Segment* segments)
-{
- MT_Point3 points[4]; // points of the segments
- unsigned int face[4]; // relative face indexs (1 => faceA, 2 => faceB)
- unsigned int size = 0; // size of points and relative face indexs
-
- BOP_getPoints(mesh, faceA, sA, planeB, points, face, size, 1);
- BOP_getPoints(mesh, faceB, sB, planeA, points, face, size, 2);
-
- bool invertA = false;
- bool invertB = false;
- BOP_mergeSort(points,face,size,invertA,invertB);
-
- if (invertA) sA.invert();
- if (invertB) sB.invert();
-
- // Compute the configuration label
- unsigned int label = 0;
- for(unsigned int i =0; i < size; i++) {
- label = face[i]+label*10;
- }
-
- if (size == 1) {
- // Two coincident points
- segments[0].m_cfg1 = sA.m_cfg1;
- segments[1].m_cfg1 = sB.m_cfg1;
-
- segments[0].m_v1 = BOP_getVertexIndex(mesh, points[0], sA.m_cfg1, sB.m_cfg1,
- sA.m_v1, sB.m_v1, invert);
- segments[1].m_v1 = segments[0].m_v1;
- segments[0].m_cfg2 = segments[1].m_cfg2 = BOP_Segment::createUndefinedCfg();
- }
- else if (size == 2) {
- switch(label) {
- // Two non-coincident points
- case sA_sB:
- case sB_sA:
- segments[0].m_cfg1 =
- segments[1].m_cfg1 =
- segments[0].m_cfg2 =
- segments[1].m_cfg2 = BOP_Segment::createUndefinedCfg();
- break;
-
- // Two coincident points and one non-coincident of sA
- case sA_sX:
- segments[0].m_cfg1 = sA.m_cfg2;
- segments[1].m_cfg1 = sB.m_cfg1;
- segments[0].m_v1 = BOP_getVertexIndex(mesh, points[1], sA.m_cfg2, sB.m_cfg1,
- sA.m_v2, sB.m_v1, invert);
- segments[1].m_v1 = segments[0].m_v1;
-
- segments[0].m_cfg2 = BOP_Segment::createUndefinedCfg();
- segments[1].m_cfg2 = BOP_Segment::createUndefinedCfg();
- break;
- case sX_sA:
- segments[0].m_cfg1 = sA.m_cfg1;
- segments[1].m_cfg1 = sB.m_cfg1;
- segments[0].m_v1 = BOP_getVertexIndex(mesh, points[0], sA.m_cfg1, sB.m_cfg1,
- sA.m_v1, sB.m_v1, invert);
- segments[1].m_v1 = segments[0].m_v1;
-
- segments[0].m_cfg2 = BOP_Segment::createUndefinedCfg();
- segments[1].m_cfg2 = BOP_Segment::createUndefinedCfg();
- break;
-
- // Two coincident points and one non-coincident of sB
- case sB_sX:
- segments[0].m_cfg1 = sA.m_cfg1;
- segments[1].m_cfg1 = sB.m_cfg2;
- segments[0].m_v1 = BOP_getVertexIndex(mesh, points[1], sA.m_cfg1, sB.m_cfg2,
- sA.m_v1, sB.m_v2, invert);
- segments[1].m_v1 = segments[0].m_v1;
-
- segments[0].m_cfg2 = BOP_Segment::createUndefinedCfg();
- segments[1].m_cfg2 = BOP_Segment::createUndefinedCfg();
- break;
- case sX_sB:
- segments[0].m_cfg1 = sA.m_cfg1;
- segments[1].m_cfg1 = sB.m_cfg1;
- segments[0].m_v1 = BOP_getVertexIndex(mesh, points[0], sA.m_cfg1, sB.m_cfg1,
- sA.m_v1, sB.m_v1, invert);
- segments[1].m_v1 = segments[0].m_v1;
-
- segments[0].m_cfg2 = BOP_Segment::createUndefinedCfg();
- segments[1].m_cfg2 = BOP_Segment::createUndefinedCfg();
- break;
-
- // coincident points 2-2
- case sX_sX:
- segments[0].m_cfg1 = sA.m_cfg1;
- segments[1].m_cfg1 = sB.m_cfg1;
- segments[0].m_v1 = BOP_getVertexIndex(mesh, points[0], sA.m_cfg1, sB.m_cfg1,
- sA.m_v1, sB.m_v1, invert);
- segments[1].m_v1 = segments[0].m_v1;
-
- segments[0].m_cfg2 = sA.m_cfg2;
- segments[1].m_cfg2 = sB.m_cfg2;
- segments[0].m_v2 = BOP_getVertexIndex(mesh, points[1], sA.m_cfg2, sB.m_cfg2,
- sA.m_v2, sB.m_v2, invert);
- segments[1].m_v2 = segments[0].m_v2;
- break;
-
- default:
- break;
- }
- }
- else if (size == 3) {
- switch(label) {
- case sA_sA_sB:
- case sB_sA_sA:
- case sA_sB_sB:
- case sB_sB_sA:
- segments[0].m_cfg1 =
- segments[1].m_cfg1 =
- segments[0].m_cfg2 =
- segments[1].m_cfg2 = BOP_Segment::createUndefinedCfg();
- break;
-
- case sA_sB_sA:
- segments[1].m_v1 = BOP_getVertexIndex(mesh,points[1],sB.m_cfg1,sB.m_v1);
- segments[1].m_cfg1 = sB.m_cfg1;
- segments[1].m_cfg2 = BOP_Segment::createUndefinedCfg();
- segments[0].m_cfg1 = sA.getConfig();
- segments[0].m_cfg2 = BOP_Segment::createUndefinedCfg();
- segments[0].m_v1 = segments[1].m_v1;
- break;
-
- case sB_sA_sB:
- segments[0].m_v1 = BOP_getVertexIndex(mesh,points[1],sA.m_cfg1,sA.m_v1);
- segments[0].m_cfg1 = sA.m_cfg1;
- segments[0].m_cfg2 = BOP_Segment::createUndefinedCfg();
- segments[1].m_cfg1 = sB.getConfig();
- segments[1].m_cfg2 = BOP_Segment::createUndefinedCfg();
- segments[1].m_v1 = segments[0].m_v1;
- break;
-
- case sA_sX_sB:
- segments[0].m_cfg1 = sA.m_cfg2;
- segments[1].m_cfg1 = sB.m_cfg1;
- segments[0].m_v1 = BOP_getVertexIndex(mesh, points[1], sA.m_cfg2, sB.m_cfg1,
- sA.m_v2, sB.m_v1, invert);
- segments[1].m_v1 = segments[0].m_v1;
- segments[0].m_cfg2 = BOP_Segment::createUndefinedCfg();
- segments[1].m_cfg2 = BOP_Segment::createUndefinedCfg();
- break;
-
- case sB_sX_sA:
- segments[0].m_cfg1 = sA.m_cfg1;
- segments[1].m_cfg1 = sB.m_cfg2;
- segments[0].m_v1 = BOP_getVertexIndex(mesh, points[1], sA.m_cfg1, sB.m_cfg2,
- sA.m_v1, sB.m_v2, invert);
- segments[1].m_v1 = segments[0].m_v1;
- segments[0].m_cfg2 = BOP_Segment::createUndefinedCfg();
- segments[1].m_cfg2 = BOP_Segment::createUndefinedCfg();
- break;
-
- case sX_sA_sB:
- segments[0].m_cfg1 = sA.m_cfg1;
- segments[1].m_cfg1 = sB.m_cfg1;
- segments[0].m_v1 = BOP_getVertexIndex(mesh, points[0], sA.m_cfg1, sB.m_cfg1,
- sA.m_v1, sB.m_v1, invert);
- segments[1].m_v1 = segments[0].m_v1;
-
- segments[0].m_cfg2 = sA.m_cfg2;
- segments[1].m_cfg2 = sB.getConfig();
- segments[0].m_v2 = BOP_getVertexIndex(mesh, points[1], sA.m_cfg2, sA.m_v2);
- segments[1].m_v2 = segments[0].m_v2;
- break;
-
- case sX_sB_sA:
- segments[0].m_cfg1 = sA.m_cfg1;
- segments[1].m_cfg1 = sB.m_cfg1;
- segments[0].m_v1 = BOP_getVertexIndex(mesh, points[0], sA.m_cfg1, sB.m_cfg1,
- sA.m_v1, sB.m_v1, invert);
- segments[1].m_v1 = segments[0].m_v1;
-
- segments[0].m_cfg2 = sA.getConfig();
- segments[1].m_cfg2 = sB.m_cfg2;
- segments[0].m_v2 = BOP_getVertexIndex(mesh,points[1],sB.m_cfg2,sB.m_v2);
- segments[1].m_v2 = segments[0].m_v2;
- break;
-
- case sA_sB_sX:
- segments[0].m_cfg1 = sA.getConfig();
- segments[1].m_cfg1 = sB.m_cfg1;
- segments[0].m_v1 = BOP_getVertexIndex(mesh,points[1],sB.m_cfg1,sB.m_v1);
- segments[1].m_v1 = segments[0].m_v1;
-
- segments[0].m_cfg2 = sA.m_cfg2;
- segments[1].m_cfg2 = sB.m_cfg2;
- segments[0].m_v2 = BOP_getVertexIndex(mesh, points[2], sA.m_cfg2, sB.m_cfg2,
- sA.m_v2, sB.m_v2, invert);
- segments[1].m_v2 = segments[0].m_v2;
- break;
-
- case sB_sA_sX:
- segments[0].m_cfg1 = sA.m_cfg1;
- segments[1].m_cfg1 = sB.getConfig();
- segments[0].m_v1 = BOP_getVertexIndex(mesh,points[1],sA.m_cfg1,sA.m_v1);
- segments[1].m_v1 = segments[0].m_v1;
-
- segments[0].m_cfg2 = sA.m_cfg2;
- segments[1].m_cfg2 = sB.m_cfg2;
- segments[0].m_v2 = BOP_getVertexIndex(mesh, points[2], sA.m_cfg2, sB.m_cfg2,
- sA.m_v2, sB.m_v2, invert);
- segments[1].m_v2 = segments[0].m_v2;
- break;
-
- default:
- break;
- }
- }
- else {
- // 4!
- switch(label) {
- case sA_sA_sB_sB:
- case sB_sB_sA_sA:
- segments[0].m_cfg1 =
- segments[1].m_cfg1 =
- segments[0].m_cfg2 =
- segments[1].m_cfg2 = BOP_Segment::createUndefinedCfg();
- break;
-
- case sA_sB_sA_sB:
- segments[0].m_cfg1 = sA.getConfig();
- segments[1].m_cfg1 = sB.m_cfg1;
- segments[0].m_v1 = BOP_getVertexIndex(mesh,points[1],sB.m_cfg1,sB.m_v1);
- segments[1].m_v1 = segments[0].m_v1;
-
- segments[0].m_cfg2 = sA.m_cfg2;
- segments[1].m_cfg2 = sB.getConfig();
- segments[0].m_v2 = BOP_getVertexIndex(mesh,points[2],sA.m_cfg2,sA.m_v2);
- segments[1].m_v2 = segments[0].m_v2;
- break;
-
- case sB_sA_sB_sA:
- segments[0].m_cfg1 = sA.m_cfg1;
- segments[1].m_cfg1 = sB.getConfig();
- segments[0].m_v1 = BOP_getVertexIndex(mesh,points[1],sA.m_cfg1,sA.m_v1);
- segments[1].m_v1 = segments[0].m_v1;
-
- segments[0].m_cfg2 = sA.getConfig();
- segments[1].m_cfg2 = sB.m_cfg2;
- segments[0].m_v2 = BOP_getVertexIndex(mesh,points[2],sB.m_cfg2,sB.m_v2);
- segments[1].m_v2 = segments[0].m_v2;
- break;
-
- case sA_sB_sB_sA:
- segments[0].m_cfg1 = sA.getConfig();
- segments[1].m_cfg1 = sB.m_cfg1;
- segments[0].m_v1 = BOP_getVertexIndex(mesh,points[1],sB.m_cfg1,sB.m_v1);
- segments[1].m_v1 = segments[0].m_v1;
-
- segments[0].m_cfg2 = segments[0].m_cfg1;
- segments[1].m_cfg2 = sB.m_cfg2;
- segments[0].m_v2 = BOP_getVertexIndex(mesh,points[2],sB.m_cfg2,sB.m_v2);
- segments[1].m_v2 = segments[0].m_v2;
- break;
-
- case sB_sA_sA_sB:
- segments[0].m_cfg1 = sA.m_cfg1;
- segments[1].m_cfg1 = sB.getConfig();
- segments[0].m_v1 = BOP_getVertexIndex(mesh,points[1],sA.m_cfg1,sA.m_v1);
- segments[1].m_v1 = segments[0].m_v1;
-
- segments[0].m_cfg2 = sA.m_cfg2;
- segments[1].m_cfg2 = segments[1].m_cfg1;
- segments[0].m_v2 = BOP_getVertexIndex(mesh,points[2],sA.m_cfg2,sA.m_v2);
- segments[1].m_v2 = segments[0].m_v2;
- break;
-
- default:
- break;
- }
- }
-
- segments[0].sort();
- segments[1].sort();
-}
-
-/**
- * Computes the vertex index of a point.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param point input point
- * @param cfgA configuration of point on faceA
- * @param cfgB configuration of point on faceB
- * @param vA vertex index of point on faceA
- * @param vB vertex index of point on faceB
- * @param invert indicates if vA has priority over vB
- * @return final vertex index in the mesh
- */
-BOP_Index BOP_getVertexIndex(BOP_Mesh* mesh,
- MT_Point3 point,
- unsigned int cfgA,
- unsigned int cfgB,
- BOP_Index vA,
- BOP_Index vB,
- bool invert)
-{
- if (BOP_Segment::isVertex(cfgA)) { // exists vertex index on A
- if (BOP_Segment::isVertex(cfgB)) { // exists vertex index on B
- // unify vertex indexs
- if (invert)
- return mesh->replaceVertexIndex(vA,vB);
- else
- return mesh->replaceVertexIndex(vB,vA);
- }
- else
- return vA;
- }
- else {// does not exist vertex index on A
- if (BOP_Segment::isVertex(cfgB)) // exists vertex index on B
- return vB;
- else {// does not exist vertex index on B
- return mesh->addVertex(point);
- }
- }
-}
-
-/**
- * Computes the vertex index of a point.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param cfg configuration of point
- * @param v vertex index of point
- * @return final vertex index in the mesh
- */
-BOP_Index BOP_getVertexIndex(BOP_Mesh *mesh, MT_Point3 point, unsigned int cfg, BOP_Index v)
-{
- if (BOP_Segment::isVertex(cfg)) // vertex existent
- return v;
- else {
- return mesh->addVertex(point);
- }
-}
-
-/******************************************************************************/
-/*** TRIANGULATE ***/
-/******************************************************************************/
-
-/**
- * Triangulates the input face according to the specified segment.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faces set of faces that contains the original face and the new triangulated faces
- * @param face face to be triangulated
- * @param s segment used to triangulate face
- */
-void triangulate(BOP_Mesh *mesh, BOP_Faces *faces, BOP_Face *face, BOP_Segment s)
-{
- if (BOP_Segment::isUndefined(s.m_cfg1)) {
- // Nothing to do
- }
- else if (BOP_Segment::isVertex(s.m_cfg1)) {
- // VERTEX(v1) + VERTEX(v2) => nothing to do
- }
- else if (BOP_Segment::isEdge(s.m_cfg1)) {
- if (BOP_Segment::isVertex(s.m_cfg2) || BOP_Segment::isUndefined(s.m_cfg2)) {
- // EDGE(v1) + VERTEX(v2)
- BOP_Edge *edge = mesh->getEdge(face,BOP_Segment::getEdge(s.m_cfg1));
- BOP_triangulateA(mesh,faces,face,s.m_v1,BOP_Segment::getEdge(s.m_cfg1));
- BOP_Face *opposite = BOP_getOppositeFace(mesh,faces,face,edge);
- if (opposite != NULL) {
- unsigned int e;
- opposite->getEdgeIndex(edge->getVertex1(), edge->getVertex2(),e);
- BOP_triangulateA(mesh, faces, opposite, s.m_v1, e);
- }
- }
- else {
- // EDGE(v1) + EDGE(v2)
- if (BOP_Segment::getEdge(s.m_cfg1) == BOP_Segment::getEdge(s.m_cfg2)) {
- // EDGE(v1) == EDGE(v2)
- BOP_Edge *edge = mesh->getEdge(face,BOP_Segment::getEdge(s.m_cfg1));
- BOP_triangulateD(mesh, faces, face, s.m_v1, s.m_v2,
- BOP_Segment::getEdge(s.m_cfg1));
- BOP_Face *opposite = BOP_getOppositeFace(mesh,faces,face,edge);
- if (opposite != NULL) {
- unsigned int e;
- opposite->getEdgeIndex(edge->getVertex1(), edge->getVertex2(),e);
- BOP_triangulateD(mesh, faces, opposite, s.m_v1, s.m_v2, e);
- }
- }
- else { // EDGE(v1) != EDGE(v2)
- BOP_Edge *edge1 = mesh->getEdge(face,BOP_Segment::getEdge(s.m_cfg1));
- BOP_Edge *edge2 = mesh->getEdge(face,BOP_Segment::getEdge(s.m_cfg2));
- BOP_triangulateE(mesh, faces, face, s.m_v1, s.m_v2,
- BOP_Segment::getEdge(s.m_cfg1),
- BOP_Segment::getEdge(s.m_cfg2));
- BOP_Face *opposite = BOP_getOppositeFace(mesh,faces,face,edge1);
- if (opposite != NULL) {
- unsigned int e;
- opposite->getEdgeIndex(edge1->getVertex1(), edge1->getVertex2(),e);
- BOP_triangulateA(mesh, faces, opposite, s.m_v1, e);
- }
- opposite = BOP_getOppositeFace(mesh,faces,face,edge2);
- if (opposite != NULL) {
- unsigned int e;
- opposite->getEdgeIndex(edge2->getVertex1(), edge2->getVertex2(),e);
- BOP_triangulateA(mesh, faces, opposite, s.m_v2, e);
- }
- }
- }
- }
- else if (BOP_Segment::isIn(s.m_cfg1)) {
- if (BOP_Segment::isVertex(s.m_cfg2) || BOP_Segment::isUndefined(s.m_cfg2)) {
- // IN(v1) + VERTEX(v2)
- BOP_triangulateB(mesh,faces,face,s.m_v1);
- }
- else if (BOP_Segment::isEdge(s.m_cfg2)) {
- // IN(v1) + EDGE(v2)
- BOP_Edge *edge = mesh->getEdge(face,BOP_Segment::getEdge(s.m_cfg2));
- BOP_triangulateF(mesh,faces,face,s.m_v1,s.m_v2,BOP_Segment::getEdge(s.m_cfg2));
- BOP_Face *opposite = BOP_getOppositeFace(mesh,faces,face,edge);
- if (opposite != NULL) {
- unsigned int e;
- opposite->getEdgeIndex(edge->getVertex1(), edge->getVertex2(),e);
- BOP_triangulateA(mesh, faces, opposite, s.m_v2, e);
- }
- }
- else // IN(v1) + IN(v2)
- BOP_triangulateC(mesh,faces,face,s.m_v1,s.m_v2);
- }
-}
-
-/**
- * Returns if a face is in the set of faces.
- * @param faces set of faces
- * @param face face to be searched
- * @return if the face is inside faces
- */
-bool BOP_containsFace(BOP_Faces *faces, BOP_Face *face)
-{
- const BOP_IT_Faces facesEnd = faces->end();
- for(BOP_IT_Faces it=faces->begin();it!=facesEnd;it++)
- {
- if (*it == face)
- return true;
- }
-
- return false;
-}
-
-/**
- * Returns the first face of faces that shares the input edge of face.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faces set of faces
- * @param face input face
- * @param edge face's edge
- * @return first face that shares the edge of input face
- */
-BOP_Face *BOP_getOppositeFace(BOP_Mesh* mesh,
- BOP_Faces* faces,
- BOP_Face* face,
- BOP_Edge* edge)
-{
- if (edge == NULL)
- return NULL;
-
- BOP_Indexs auxfaces = edge->getFaces();
- const BOP_IT_Indexs auxfacesEnd = auxfaces.end();
- for(BOP_IT_Indexs it = auxfaces.begin(); it != auxfacesEnd; it++) {
- BOP_Face *auxface = mesh->getFace(*it);
- if ((auxface != face) && (auxface->getTAG()!=BROKEN) &&
- BOP_containsFace(faces,auxface)) {
- return auxface;
- }
- }
-
- return NULL;
-}
-
-/******************************************************************************/
-/*** OVERLAPPING ***/
-/******************************************************************************/
-
-/**
- * Removes faces from facesB that are overlapped with anyone from facesA.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param facesA set of faces from object A
- * @param facesB set of faces from object B
- */
-void BOP_removeOverlappedFaces(BOP_Mesh *mesh, BOP_Faces *facesA, BOP_Faces *facesB)
-{
- for(unsigned int i=0;i<facesA->size();i++) {
- BOP_Face *faceI = (*facesA)[i];
- if (faceI->getTAG()==BROKEN) continue;
- bool overlapped = false;
- MT_Point3 p1 = mesh->getVertex(faceI->getVertex(0))->getPoint();
- MT_Point3 p2 = mesh->getVertex(faceI->getVertex(1))->getPoint();
- MT_Point3 p3 = mesh->getVertex(faceI->getVertex(2))->getPoint();
- for(unsigned int j=0;j<facesB->size();) {
- BOP_Face *faceJ = (*facesB)[j];
- if (faceJ->getTAG()!=BROKEN) {
- MT_Plane3 planeJ = faceJ->getPlane();
- if (BOP_containsPoint(planeJ,p1) && BOP_containsPoint(planeJ,p2)
- && BOP_containsPoint(planeJ,p3))
- {
- MT_Point3 q1 = mesh->getVertex(faceJ->getVertex(0))->getPoint();
- MT_Point3 q2 = mesh->getVertex(faceJ->getVertex(1))->getPoint();
- MT_Point3 q3 = mesh->getVertex(faceJ->getVertex(2))->getPoint();
- if (BOP_overlap(MT_Vector3(planeJ.x(),planeJ.y(),planeJ.z()),
- p1,p2,p3,q1,q2,q3))
- {
- facesB->erase(facesB->begin()+j,facesB->begin()+(j+1));
- faceJ->setTAG(BROKEN);
- overlapped = true;
- }
- else j++;
- }
- else j++;
- }else j++;
- }
- if (overlapped) faceI->setTAG(OVERLAPPED);
- }
-}
-
-/**
- * Computes if triangle p1,p2,p3 is overlapped with triangle q1,q2,q3.
- * @param normal normal of the triangle p1,p2,p3
- * @param p1 point of first triangle
- * @param p2 point of first triangle
- * @param p3 point of first triangle
- * @param q1 point of second triangle
- * @param q2 point of second triangle
- * @param q3 point of second triangle
- * @return if there is overlapping between both triangles
- */
-bool BOP_overlap(MT_Vector3 normal, MT_Point3 p1, MT_Point3 p2, MT_Point3 p3,
- MT_Point3 q1, MT_Point3 q2, MT_Point3 q3)
-{
- MT_Vector3 p1p2 = p2-p1;
- MT_Plane3 plane1(p1p2.cross(normal),p1);
-
- MT_Vector3 p2p3 = p3-p2;
- MT_Plane3 plane2(p2p3.cross(normal),p2);
-
- MT_Vector3 p3p1 = p1-p3;
- MT_Plane3 plane3(p3p1.cross(normal),p3);
-
- BOP_TAG tag1 = BOP_createTAG(BOP_classify(q1,plane1));
- BOP_TAG tag2 = BOP_createTAG(BOP_classify(q1,plane2));
- BOP_TAG tag3 = BOP_createTAG(BOP_classify(q1,plane3));
- BOP_TAG tagQ1 = BOP_createTAG(tag1,tag2,tag3);
- if (tagQ1 == IN_IN_IN) return true;
-
- tag1 = BOP_createTAG(BOP_classify(q2,plane1));
- tag2 = BOP_createTAG(BOP_classify(q2,plane2));
- tag3 = BOP_createTAG(BOP_classify(q2,plane3));
- BOP_TAG tagQ2 = BOP_createTAG(tag1,tag2,tag3);
- if (tagQ2 == IN_IN_IN) return true;
-
- tag1 = BOP_createTAG(BOP_classify(q3,plane1));
- tag2 = BOP_createTAG(BOP_classify(q3,plane2));
- tag3 = BOP_createTAG(BOP_classify(q3,plane3));
- BOP_TAG tagQ3 = BOP_createTAG(tag1,tag2,tag3);
- if (tagQ3 == IN_IN_IN) return true;
-
- if ((tagQ1 & OUT_OUT_OUT) == 0 && (tagQ2 & OUT_OUT_OUT) == 0 &&
- (tagQ3 & OUT_OUT_OUT) == 0) return true;
- else return false;
-}
diff --git a/intern/boolop/intern/BOP_Face2Face.h b/intern/boolop/intern/BOP_Face2Face.h
deleted file mode 100644
index 9809084ce3b..00000000000
--- a/intern/boolop/intern/BOP_Face2Face.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Face2Face.h
- * \ingroup boolopintern
- */
-
-
-#ifndef __BOP_FACE2FACE_H__
-#define __BOP_FACE2FACE_H__
-
-#include "BOP_Mesh.h"
-#include "BOP_Segment.h"
-#include "BOP_Triangulator.h"
-#include "BOP_Splitter.h"
-#include "BOP_BSPTree.h"
-
-void BOP_Face2Face(BOP_Mesh *mesh, BOP_Faces *facesA, BOP_Faces *facesB);
-void BOP_sew(BOP_Mesh *mesh, BOP_Faces *facesA, BOP_Faces *facesB);
-void BOP_removeOverlappedFaces(BOP_Mesh *mesh, BOP_Faces *facesA, BOP_Faces *facesB);
-
-#endif
diff --git a/intern/boolop/intern/BOP_Interface.cpp b/intern/boolop/intern/BOP_Interface.cpp
deleted file mode 100644
index b18a4334263..00000000000
--- a/intern/boolop/intern/BOP_Interface.cpp
+++ /dev/null
@@ -1,535 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Interface.cpp
- * \ingroup boolopintern
- */
-
-
-#include <iostream>
-#include <map>
-#include "../extern/BOP_Interface.h"
-#include "../../bsp/intern/BSP_CSGMesh_CFIterator.h"
-#include "BOP_BSPTree.h"
-#include "BOP_Mesh.h"
-#include "BOP_Face2Face.h"
-#include "BOP_Merge.h"
-#include "BOP_Merge2.h"
-#include "BOP_Chrono.h"
-
-#if defined(BOP_ORIG_MERGE) && defined(BOP_NEW_MERGE)
-#include "../../../source/blender/blenkernel/BKE_global.h"
-#endif
-
-BoolOpState BOP_intersectionBoolOp(BOP_Mesh* meshC,
- BOP_Faces* facesA,
- BOP_Faces* facesB,
- bool invertMeshA,
- bool invertMeshB);
-BOP_Face3* BOP_createFace(BOP_Mesh* mesh,
- BOP_Index vertex1,
- BOP_Index vertex2,
- BOP_Index vertex3,
- BOP_Index origFace);
-void BOP_addMesh(BOP_Mesh* mesh,
- BOP_Faces* meshFacesId,
- CSG_FaceIteratorDescriptor& face_it,
- CSG_VertexIteratorDescriptor& vertex_it,
- bool invert);
-BSP_CSGMesh* BOP_newEmptyMesh();
-BSP_CSGMesh* BOP_exportMesh(BOP_Mesh* inputMesh,
- bool invert);
-void BOP_meshFilter(BOP_Mesh* meshC, BOP_Faces* faces, BOP_BSPTree* bsp);
-void BOP_simplifiedMeshFilter(BOP_Mesh* meshC, BOP_Faces* faces, BOP_BSPTree* bsp, bool inverted);
-void BOP_meshClassify(BOP_Mesh* meshC, BOP_Faces* faces, BOP_BSPTree* bsp);
-
-/**
- * Performs a generic booleam operation, the entry point for external modules.
- * @param opType Boolean operation type BOP_INTERSECTION, BOP_UNION, BOP_DIFFERENCE
- * @param outputMesh Output mesh, the final result (the object C)
- * @param obAFaces Object A faces list
- * @param obAVertices Object A vertices list
- * @param obBFaces Object B faces list
- * @param obBVertices Object B vertices list
- * @param interpFunc Interpolating function
- * @return operation state: BOP_OK, BOP_NO_SOLID, BOP_ERROR
- */
-BoolOpState BOP_performBooleanOperation(BoolOpType opType,
- BSP_CSGMesh** outputMesh,
- CSG_FaceIteratorDescriptor obAFaces,
- CSG_VertexIteratorDescriptor obAVertices,
- CSG_FaceIteratorDescriptor obBFaces,
- CSG_VertexIteratorDescriptor obBVertices)
-{
- #ifdef BOP_DEBUG
- std::cout << "BEGIN BOP_performBooleanOperation" << std::endl;
- #endif
-
- // Set invert flags depending on boolean operation type:
- // INTERSECTION: A^B = and(A,B)
- // UNION: A|B = not(and(not(A),not(B)))
- // DIFFERENCE: A-B = and(A,not(B))
- bool invertMeshA = (opType == BOP_UNION);
- bool invertMeshB = (opType != BOP_INTERSECTION);
- bool invertMeshC = (opType == BOP_UNION);
-
- // Faces list for both objects, used by boolean op.
- BOP_Faces meshAFacesId;
- BOP_Faces meshBFacesId;
-
- // Build C-mesh, the output mesh
- BOP_Mesh meshC;
-
- // Add A-mesh into C-mesh
- BOP_addMesh(&meshC, &meshAFacesId, obAFaces, obAVertices, invertMeshA);
-
- // Add B-mesh into C-mesh
- BOP_addMesh(&meshC, &meshBFacesId, obBFaces, obBVertices, invertMeshB);
-
- // for now, allow operations on non-manifold (non-solid) meshes
-#if 0
- if (!meshC.isClosedMesh())
- return BOP_NO_SOLID;
-#endif
-
- // Perform the intersection boolean operation.
- BoolOpState result = BOP_intersectionBoolOp(&meshC, &meshAFacesId, &meshBFacesId,
- invertMeshA, invertMeshB);
-
- // Invert the output mesh if is required
- *outputMesh = BOP_exportMesh(&meshC, invertMeshC);
-
- #ifdef BOP_DEBUG
- std::cout << "END BOP_performBooleanOperation" << std::endl;
- #endif
-
- return result;
-}
-
-/**
- * Computes the intersection boolean operation. Creates a new mesh resulting from
- * an intersection of two meshes.
- * @param meshC Input & Output mesh
- * @param facesA Mesh A faces list
- * @param facesB Mesh B faces list
- * @param invertMeshA determines if object A is inverted
- * @param invertMeshB determines if object B is inverted
- * @return operation state: BOP_OK, BOP_NO_SOLID, BOP_ERROR
- */
-BoolOpState BOP_intersectionBoolOp(BOP_Mesh* meshC,
- BOP_Faces* facesA,
- BOP_Faces* facesB,
- bool invertMeshA,
- bool invertMeshB)
-{
- #ifdef BOP_DEBUG
- BOP_Chrono chrono;
- float t = 0.0f;
- float c = 0.0f;
- chrono.start();
- std::cout << "---" << std::endl;
- #endif
-
- // Create BSPs trees for mesh A & B
- BOP_BSPTree bspA;
- bspA.addMesh(meshC, *facesA);
-
- BOP_BSPTree bspB;
- bspB.addMesh(meshC, *facesB);
-
- #ifdef BOP_DEBUG
- c = chrono.stamp(); t += c;
- std::cout << "Create BSP " << c << std::endl;
- #endif
-
- unsigned int numVertices = meshC->getNumVertexs();
-
- // mesh pre-filter
- BOP_simplifiedMeshFilter(meshC, facesA, &bspB, invertMeshB);
- if ((0.25*facesA->size()) > bspB.getDeep())
- BOP_meshFilter(meshC, facesA, &bspB);
-
- BOP_simplifiedMeshFilter(meshC, facesB, &bspA, invertMeshA);
- if ((0.25*facesB->size()) > bspA.getDeep())
- BOP_meshFilter(meshC, facesB, &bspA);
-
- #ifdef BOP_DEBUG
- c = chrono.stamp(); t += c;
- std::cout << "mesh Filter " << c << std::endl;
- #endif
-
- // Face 2 Face
- BOP_Face2Face(meshC,facesA,facesB);
-
- #ifdef BOP_DEBUG
- c = chrono.stamp(); t += c;
- std::cout << "Face2Face " << c << std::endl;
- #endif
-
- // BSP classification
- BOP_meshClassify(meshC,facesA,&bspB);
- BOP_meshClassify(meshC,facesB,&bspA);
-
- #ifdef BOP_DEBUG
- c = chrono.stamp(); t += c;
- std::cout << "Classification " << c << std::endl;
- #endif
-
- // Process overlapped faces
- BOP_removeOverlappedFaces(meshC,facesA,facesB);
-
- #ifdef BOP_DEBUG
- c = chrono.stamp(); t += c;
- std::cout << "Remove overlap " << c << std::endl;
- #endif
-
- // Sew two meshes
- BOP_sew(meshC,facesA,facesB);
-
- #ifdef BOP_DEBUG
- c = chrono.stamp(); t += c;
- std::cout << "Sew " << c << std::endl;
- #endif
-
- // Merge faces
-#ifdef BOP_ORIG_MERGE
-#ifndef BOP_NEW_MERGE
- BOP_Merge::getInstance().mergeFaces(meshC,numVertices);
-#endif
-#endif
-
-#ifdef BOP_NEW_MERGE
-#ifndef BOP_ORIG_MERGE
- BOP_Merge2::getInstance().mergeFaces(meshC,numVertices);
-#else
- static int state = -1;
- if (G.rt == 100) {
- if( state != 1 ) {
- std::cout << "Boolean code using old merge technique." << std::endl;
- state = 1;
- }
- BOP_Merge::getInstance().mergeFaces(meshC,numVertices);
- } else {
- if( state != 0 ) {
- std::cout << "Boolean code using new merge technique." << std::endl;
- state = 0;
- }
- BOP_Merge2::getInstance().mergeFaces(meshC,numVertices);
- }
-#endif
-#endif
-
- #ifdef BOP_DEBUG
- c = chrono.stamp(); t += c;
- std::cout << "Merge faces " << c << std::endl;
- std::cout << "Total " << t << std::endl;
- // Test integrity
- meshC->testMesh();
- #endif
-
- return BOP_OK;
-}
-
-/**
- * Preprocess to filter no collisioned faces.
- * @param meshC Input & Output mesh data
- * @param faces Faces list to test
- * @param bsp BSP tree used to filter
- */
-void BOP_meshFilter(BOP_Mesh* meshC, BOP_Faces* faces, BOP_BSPTree* bsp)
-{
- BOP_IT_Faces it;
- BOP_TAG tag;
-
- it = faces->begin();
- while (it!=faces->end()) {
- BOP_Face *face = *it;
- MT_Point3 p1 = meshC->getVertex(face->getVertex(0))->getPoint();
- MT_Point3 p2 = meshC->getVertex(face->getVertex(1))->getPoint();
- MT_Point3 p3 = meshC->getVertex(face->getVertex(2))->getPoint();
- if ((tag = bsp->classifyFace(p1,p2,p3,face->getPlane()))==OUT||tag==OUTON) {
- face->setTAG(BROKEN);
- it = faces->erase(it);
- }
- else if (tag == IN) {
- it = faces->erase(it);
- }else{
- it++;
- }
- }
-}
-
-/**
- * Pre-process to filter no collisioned faces.
- * @param meshC Input & Output mesh data
- * @param faces Faces list to test
- * @param bsp BSP tree used to filter
- * @param inverted determines if the object is inverted
- */
-void BOP_simplifiedMeshFilter(BOP_Mesh* meshC, BOP_Faces* faces, BOP_BSPTree* bsp, bool inverted)
-{
- BOP_IT_Faces it;
-
- it = faces->begin();
- while (it!=faces->end()) {
- BOP_Face *face = *it;
- MT_Point3 p1 = meshC->getVertex(face->getVertex(0))->getPoint();
- MT_Point3 p2 = meshC->getVertex(face->getVertex(1))->getPoint();
- MT_Point3 p3 = meshC->getVertex(face->getVertex(2))->getPoint();
- if (bsp->filterFace(p1,p2,p3,face)==OUT) {
- if (!inverted) face->setTAG(BROKEN);
- it = faces->erase(it);
- }
- else {
- it++;
- }
- }
-}
-
-/**
- * Process to classify the mesh faces using a bsp tree.
- * @param meshC Input & Output mesh data
- * @param faces Faces list to classify
- * @param bsp BSP tree used to face classify
- */
-void BOP_meshClassify(BOP_Mesh* meshC, BOP_Faces* faces, BOP_BSPTree* bsp)
-{
- for(BOP_IT_Faces face=faces->begin();face!=faces->end();face++) {
- if ((*face)->getTAG()!=BROKEN) {
- MT_Point3 p1 = meshC->getVertex((*face)->getVertex(0))->getPoint();
- MT_Point3 p2 = meshC->getVertex((*face)->getVertex(1))->getPoint();
- MT_Point3 p3 = meshC->getVertex((*face)->getVertex(2))->getPoint();
- if (bsp->simplifiedClassifyFace(p1,p2,p3,(*face)->getPlane())!=IN) {
- (*face)->setTAG(BROKEN);
- }
- }
- }
-}
-
-/**
- * Returns a new mesh triangle.
- * @param meshC Input & Output mesh data
- * @param vertex1 first vertex of the new face
- * @param vertex2 second vertex of the new face
- * @param vertex3 third vertex of the new face
- * @param origFace identifier of the new face
- * @return new the new face
- */
-BOP_Face3 *BOP_createFace3(BOP_Mesh* mesh,
- BOP_Index vertex1,
- BOP_Index vertex2,
- BOP_Index vertex3,
- BOP_Index origFace)
-{
- MT_Point3 p1 = mesh->getVertex(vertex1)->getPoint();
- MT_Point3 p2 = mesh->getVertex(vertex2)->getPoint();
- MT_Point3 p3 = mesh->getVertex(vertex3)->getPoint();
- MT_Plane3 plane(p1,p2,p3);
-
- return new BOP_Face3(vertex1, vertex2, vertex3, plane, origFace);
-}
-
-/**
- * Adds mesh information into destination mesh.
- * @param mesh input/output mesh, destination for the new mesh data
- * @param meshFacesId output mesh faces, contains an added faces list
- * @param face_it faces iterator
- * @param vertex_it vertices iterator
- * @param inverted if TRUE adding inverted faces, non-inverted otherwise
- */
-void BOP_addMesh(BOP_Mesh* mesh,
- BOP_Faces* meshFacesId,
- CSG_FaceIteratorDescriptor& face_it,
- CSG_VertexIteratorDescriptor& vertex_it,
- bool invert)
-{
- unsigned int vtxIndexOffset = mesh->getNumVertexs();
-
- // The size of the vertex data array will be at least the number of faces.
- CSG_IVertex vertex;
- while (!vertex_it.Done(vertex_it.it)) {
- vertex_it.Fill(vertex_it.it,&vertex);
- MT_Point3 pos(vertex.position);
- mesh->addVertex(pos);
- vertex_it.Step(vertex_it.it);
- }
-
- CSG_IFace face;
-
- // now for the polygons.
- // we may need to decalare some memory for user defined face properties.
-
- BOP_Face3 *newface;
-
- while (!face_it.Done(face_it.it)) {
- face_it.Fill(face_it.it,&face);
-
- // Let's not rely on quads being coplanar - especially if they
- // are coming out of that soup of code from blender...
- if (face.vertex_number == 4){
- // QUAD
- if (invert) {
- newface = BOP_createFace3(mesh,
- face.vertex_index[2] + vtxIndexOffset,
- face.vertex_index[0] + vtxIndexOffset,
- face.vertex_index[3] + vtxIndexOffset,
- face.orig_face);
- meshFacesId->push_back(newface);
- mesh->addFace(newface);
- newface = BOP_createFace3(mesh,
- face.vertex_index[2] + vtxIndexOffset,
- face.vertex_index[1] + vtxIndexOffset,
- face.vertex_index[0] + vtxIndexOffset,
- face.orig_face);
- meshFacesId->push_back(newface);
- mesh->addFace(newface);
- }
- else {
- newface = BOP_createFace3(mesh,
- face.vertex_index[0] + vtxIndexOffset,
- face.vertex_index[2] + vtxIndexOffset,
- face.vertex_index[3] + vtxIndexOffset,
- face.orig_face);
- meshFacesId->push_back(newface);
- mesh->addFace(newface);
- newface = BOP_createFace3(mesh,
- face.vertex_index[0] + vtxIndexOffset,
- face.vertex_index[1] + vtxIndexOffset,
- face.vertex_index[2] + vtxIndexOffset,
- face.orig_face);
- meshFacesId->push_back(newface);
- mesh->addFace(newface);
- }
- }
- else {
- // TRIANGLES
- if (invert) {
- newface = BOP_createFace3(mesh,
- face.vertex_index[2] + vtxIndexOffset,
- face.vertex_index[1] + vtxIndexOffset,
- face.vertex_index[0] + vtxIndexOffset,
- face.orig_face);
- meshFacesId->push_back(newface);
- mesh->addFace(newface);
- }
- else {
- newface = BOP_createFace3(mesh,
- face.vertex_index[0] + vtxIndexOffset,
- face.vertex_index[1] + vtxIndexOffset,
- face.vertex_index[2] + vtxIndexOffset,
- face.orig_face);
- meshFacesId->push_back(newface);
- mesh->addFace(newface);
- }
- }
-
- face_it.Step(face_it.it);
- }
-}
-
-/**
- * Returns an empty mesh with the specified properties.
- * @return a new empty mesh
- */
-BSP_CSGMesh* BOP_newEmptyMesh()
-{
- BSP_CSGMesh* mesh = BSP_CSGMesh::New();
- if (mesh == NULL) return mesh;
-
- std::vector<BSP_MVertex>* vertices = new std::vector<BSP_MVertex>;
-
- mesh->SetVertices(vertices);
-
- return mesh;
-}
-
-/**
- * Exports a BOP_Mesh to a BSP_CSGMesh.
- * @param mesh Input mesh
- * @param invert if TRUE export with inverted faces, no inverted otherwise
- * @return the corresponding new BSP_CSGMesh
- */
-BSP_CSGMesh* BOP_exportMesh(BOP_Mesh* mesh,
- bool invert)
-{
- BSP_CSGMesh* outputMesh = BOP_newEmptyMesh();
-
- if (outputMesh == NULL) return NULL;
-
- // vtx index dictionary, to translate indeces from input to output.
- std::map<int,unsigned int> dic;
- std::map<int,unsigned int>::iterator itDic;
-
- unsigned int count = 0;
-
- // Add a new face for each face in the input list
- BOP_Faces faces = mesh->getFaces();
- BOP_Vertexs vertexs = mesh->getVertexs();
-
- for (BOP_IT_Faces face = faces.begin(); face != faces.end(); face++) {
- if ((*face)->getTAG()!=BROKEN){
- // Add output face
- outputMesh->FaceSet().push_back(BSP_MFace());
- BSP_MFace& outFace = outputMesh->FaceSet().back();
-
- // Copy face
- outFace.m_verts.clear();
- outFace.m_plane = (*face)->getPlane();
- outFace.m_orig_face = (*face)->getOriginalFace();
-
- // invert face if is required
- if (invert) (*face)->invert();
-
- // Add the face vertex if not added yet
- for (unsigned int pos=0;pos<(*face)->size();pos++) {
- BSP_VertexInd outVtxId;
- BOP_Index idVertex = (*face)->getVertex(pos);
- itDic = dic.find(idVertex);
- if (itDic == dic.end()) {
- // The vertex isn't added yet
- outVtxId = BSP_VertexInd(outputMesh->VertexSet().size());
- BSP_MVertex outVtx((mesh->getVertex(idVertex))->getPoint());
- outVtx.m_edges.clear();
- outputMesh->VertexSet().push_back(outVtx);
- dic[idVertex] = outVtxId;
- count++;
- }
- else {
- // The vertex is added
- outVtxId = BSP_VertexInd(itDic->second);
- }
-
- outFace.m_verts.push_back(outVtxId);
- }
- }
- }
-
- // Build the mesh edges using topological informtion
- outputMesh->BuildEdges();
-
- return outputMesh;
-}
diff --git a/intern/boolop/intern/BOP_MathUtils.cpp b/intern/boolop/intern/BOP_MathUtils.cpp
deleted file mode 100644
index 020de2163a3..00000000000
--- a/intern/boolop/intern/BOP_MathUtils.cpp
+++ /dev/null
@@ -1,471 +0,0 @@
-/*
- *
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): Marc Freixas, Ken Hughes
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_MathUtils.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_MathUtils.h"
-#include <iostream>
-
-/**
- * Compares two scalars with EPSILON accuracy.
- * @param A scalar
- * @param B scalar
- * @return 1 if A > B, -1 if A < B, 0 otherwise
- */
-int BOP_comp(const MT_Scalar A, const MT_Scalar B)
-{
-#ifndef VAR_EPSILON
- if (A >= B + BOP_EPSILON) return 1;
- else if (B >= A + BOP_EPSILON) return -1;
- else return 0;
-#else
- int expA, expB;
- float mant;
- frexp(A, &expA); /* get exponents of each number */
- frexp(B, &expB);
-
- if(expA < expB) /* find the larger exponent */
- expA = expB;
- mant = frexp((A-B), &expB); /* get exponent of the difference */
- /* mantissa will only be zero is (A-B) is really zero; otherwise, also
- * also allow a "reasonably" small exponent or "reasonably large"
- * difference in exponents to be considers "close to zero" */
- if( mant == 0 || expB < -30 || expA - expB > 31) return 0;
- else if( mant > 0) return 1;
- else return -1;
-#endif
-}
-
-/**
- * Compares a scalar with EPSILON accuracy.
- * @param A scalar
- * @return 1 if A > 0, -1 if A < 0, 0 otherwise
- */
-int BOP_comp0(const MT_Scalar A)
-{
- if (A >= BOP_EPSILON) return 1;
- else if (0 >= A + BOP_EPSILON) return -1;
- else return 0;
-}
-
-/**
- * Compares two scalar triplets with EPSILON accuracy.
- * @param A scalar triplet
- * @param B scalar triplet
- * @return 1 if A > B, -1 if A < B, 0 otherwise
- */
-int BOP_comp(const MT_Tuple3& A, const MT_Tuple3& B)
-{
-#ifndef VAR_EPSILON
- if (A.x() >= (B.x() + BOP_EPSILON)) return 1;
- else if (B.x() >= (A.x() + BOP_EPSILON)) return -1;
- else if (A.y() >= (B.y() + BOP_EPSILON)) return 1;
- else if (B.y() >= (A.y() + BOP_EPSILON)) return -1;
- else if (A.z() >= (B.z() + BOP_EPSILON)) return 1;
- else if (B.z() >= (A.z() + BOP_EPSILON)) return -1;
- else return 0;
-#else
- int result = BOP_comp(A.x(), B.x());
- if (result != 0) return result;
- result = BOP_comp(A.y(), B.y());
- if (result != 0) return result;
- return BOP_comp(A.z(), B.z());
-#endif
-}
-
-/**
- * Compares two scalars strictly.
- * @param A scalar
- * @param B scalar
- * @return 1 if A > B, -1 if A < B, 0 otherwise
- */
-int BOP_exactComp(const MT_Scalar A, const MT_Scalar B)
-{
- if (A > B) return 1;
- else if (B > A) return -1;
- else return 0;
-}
-/**
- * Compares two scalar strictly.
- * @param A scalar triplet
- * @param B scalar triplet
- * @return 1 if A > B, -1 if A < B, 0 otherwise
- */
-int BOP_exactComp(const MT_Tuple3& A, const MT_Tuple3& B)
-{
- if (A.x() > B.x()) return 1;
- else if (B.x() > A.x()) return -1;
- else if (A.y() > B.y()) return 1;
- else if (B.y() > A.y()) return -1;
- else if (A.z() > B.z()) return 1;
- else if (B.z() > A.z()) return -1;
- else return 0;
-}
-
-/**
- * Returns if p1 is between p2 and p3 and lay on the same line (are collinears).
- * @param p1 point
- * @param p2 point
- * @param p3 point
- * @return true if p1 is between p2 and p3 and lay on the same line, false otherwise
- */
-bool BOP_between(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3)
-{
- MT_Scalar distance = p2.distance(p3);
- return (p1.distance(p2) < distance && p1.distance(p3) < distance) && BOP_collinear(p1,p2,p3);
-}
-
-/**
- * Returns if three points lay on the same line (are collinears).
- * @param p1 point
- * @param p2 point
- * @param p3 point
- * @return true if the three points lay on the same line, false otherwise
- */
-bool BOP_collinear(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3)
-{
- if( BOP_comp(p1,p2) == 0 || BOP_comp(p2,p3) == 0 ) return true;
-
- MT_Vector3 v1 = p2 - p1;
- MT_Vector3 v2 = p3 - p2;
-
- /* normalize vectors before taking their cross product, so its length
- * has some actual meaning */
- // if(MT_fuzzyZero(v1.length()) || MT_fuzzyZero(v2.length())) return true;
- v1.normalize();
- v2.normalize();
-
- MT_Vector3 w = v1.cross(v2);
-
- return (BOP_fuzzyZero(w.x()) && BOP_fuzzyZero(w.y()) && BOP_fuzzyZero(w.z()));
-}
-
-/**
- * Returns if a quad (coplanar) is convex.
- * @return true if the quad is convex, false otherwise
- */
-bool BOP_convex(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3, const MT_Point3& p4)
-{
- MT_Vector3 v1 = p3 - p1;
- MT_Vector3 v2 = p4 - p2;
- MT_Vector3 quadPlane = v1.cross(v2);
- // plane1 is the perpendicular plane that contains the quad diagonal (p2,p4)
- MT_Plane3 plane1(quadPlane.cross(v2),p2);
- // if p1 and p3 are classified in the same region, the quad is not convex
- if (BOP_classify(p1,plane1) == BOP_classify(p3,plane1)) return false;
- else {
- // Test the other quad diagonal (p1,p3) and perpendicular plane
- MT_Plane3 plane2(quadPlane.cross(v1),p1);
- // if p2 and p4 are classified in the same region, the quad is not convex
- return (BOP_classify(p2,plane2) != BOP_classify(p4,plane2));
- }
-}
-
-/**
- * Returns if a quad (coplanar) is concave and where is the split edge.
- * @return 0 if is convex, 1 if is concave and split edge is p1-p3 and -1 if is
- * cancave and split edge is p2-p4.
- */
-int BOP_concave(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3, const MT_Point3& p4)
-{
- MT_Vector3 v1 = p3 - p1;
- MT_Vector3 v2 = p4 - p2;
- MT_Vector3 quadPlane = v1.cross(v2);
- // plane1 is the perpendicular plane that contains the quad diagonal (p2,p4)
- MT_Plane3 plane1(quadPlane.cross(v2),p2);
- // if p1 and p3 are classified in the same region, the quad is not convex
- if (BOP_classify(p1,plane1) == BOP_classify(p3,plane1)) return 1;
- else {
- // Test the other quad diagonal (p1,p3) and perpendicular plane
- MT_Plane3 plane2(quadPlane.cross(v1),p1);
- // if p2 and p4 are classified in the same region, the quad is not convex
- if (BOP_classify(p2,plane2) == BOP_classify(p4,plane2)) return -1;
- else return 0;
- }
-}
-
-/**
- * Computes the intersection between two lines (on the same plane).
- * @param vL1 first line vector
- * @param pL1 first line point
- * @param vL2 second line vector
- * @param pL2 second line point
- * @param intersection intersection point (if exists)
- * @return false if lines are parallels, true otherwise
- */
-bool BOP_intersect(const MT_Vector3& vL1, const MT_Point3& pL1, const MT_Vector3& vL2,
- const MT_Point3& pL2, MT_Point3 &intersection)
-{
- // NOTE:
- // If the lines aren't on the same plane, the intersection point will not be valid.
- // So be careful !!
-
- MT_Scalar t = -1;
- MT_Scalar den = (vL1.y()*vL2.x() - vL1.x() * vL2.y());
-
- if (!BOP_fuzzyZero(den)) {
- t = (pL2.y()*vL1.x() - vL1.y()*pL2.x() + pL1.x()*vL1.y() - pL1.y()*vL1.x()) / den;
- }
- else {
- den = (vL1.y()*vL2.z() - vL1.z() * vL2.y());
- if (!BOP_fuzzyZero(den)) {
- t = (pL2.y()*vL1.z() - vL1.y()*pL2.z() + pL1.z()*vL1.y() - pL1.y()*vL1.z()) / den;
- }
- else {
- den = (vL1.x()*vL2.z() - vL1.z() * vL2.x());
- if (!BOP_fuzzyZero(den)) {
- t = (pL2.x()*vL1.z() - vL1.x()*pL2.z() + pL1.z()*vL1.x() - pL1.x()*vL1.z()) / den;
- }
- else {
- return false;
- }
- }
- }
-
- intersection.setValue(vL2.x()*t + pL2.x(), vL2.y()*t + pL2.y(), vL2.z()*t + pL2.z());
- return true;
-}
-
-/**
- * Returns the center of the circle defined by three points.
- * @param p1 point
- * @param p2 point
- * @param p3 point
- * @param center circle center
- * @return false if points are collinears, true otherwise
- */
-bool BOP_getCircleCenter(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3,
- MT_Point3& center)
-{
- // Compute quad plane
- MT_Vector3 p1p2 = p2-p1;
- MT_Vector3 p1p3 = p3-p1;
- MT_Plane3 plane1(p1,p2,p3);
- MT_Vector3 plane = plane1.Normal();
-
- // Compute first line vector, perpendicular to plane vector and edge (p1,p2)
- MT_Vector3 vL1 = p1p2.cross(plane);
- if( MT_fuzzyZero(vL1.length() ) )
- return false;
- vL1.normalize();
-
- // Compute first line point, middle point of edge (p1,p2)
- MT_Point3 pL1 = p1.lerp(p2, 0.5);
-
- // Compute second line vector, perpendicular to plane vector and edge (p1,p3)
- MT_Vector3 vL2 = p1p3.cross(plane);
- if( MT_fuzzyZero(vL2.length() ) )
- return false;
- vL2.normalize();
-
- // Compute second line point, middle point of edge (p1,p3)
- MT_Point3 pL2 = p1.lerp(p3, 0.5);
-
- // Compute intersection (the lines lay on the same plane, so the intersection exists
- // only if they are not parallel!!)
- return BOP_intersect(vL1,pL1,vL2,pL2,center);
-}
-
-/**
- * Returns if points q is inside the circle defined by p1, p2 and p3.
- * @param p1 point
- * @param p2 point
- * @param p3 point
- * @param q point
- * @return true if p4 or p5 are inside the circle, false otherwise. If
- * the circle does not exist (p1, p2 and p3 are collinears) returns true
- */
-bool BOP_isInsideCircle(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3,
- const MT_Point3& q)
-{
- MT_Point3 center;
-
- // Compute circle center
- bool ok = BOP_getCircleCenter(p1,p2,p3,center);
-
- if (!ok) return true; // p1,p2 and p3 are collinears
-
- // Check if q is inside the circle
- MT_Scalar r = p1.distance(center);
- MT_Scalar d = q.distance(center);
- return (BOP_comp(d,r) <= 0);
-}
-
-/**
- * Returns if points p4 or p5 is inside the circle defined by p1, p2 and p3.
- * @param p1 point
- * @param p2 point
- * @param p3 point
- * @param p4 point
- * @param p5 point
- * @return true if p4 or p5 is inside the circle, false otherwise. If
- * the circle does not exist (p1, p2 and p3 are collinears) returns true
- */
-bool BOP_isInsideCircle(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3,
- const MT_Point3& p4, const MT_Point3& p5)
-{
- MT_Point3 center;
- bool ok = BOP_getCircleCenter(p1,p2,p3,center);
-
- if (!ok) return true; // Collinear points!
-
- // Check if p4 or p5 is inside the circle
- MT_Scalar r = p1.distance(center);
- MT_Scalar d1 = p4.distance(center);
- MT_Scalar d2 = p5.distance(center);
- return (BOP_comp(d1,r) <= 0 || BOP_comp(d2,r) <= 0);
-}
-
-/**
- * Returns if two planes share the same orientation.
- * @return >0 if planes share the same orientation
- */
-MT_Scalar BOP_orientation(const MT_Plane3& p1, const MT_Plane3& p2)
-{
- // Dot product between plane normals
- return (p1.x()*p2.x() + p1.y()*p2.y() + p1.z()*p2.z());
-}
-
-/**
- * Classifies a point according to the specified plane with EPSILON accuracy.
- * @param p point
- * @param plane plane
- * @return >0 if the point is above (OUT),
- * =0 if the point is on (ON),
- * <0 if the point is below (IN)
- */
-int BOP_classify(const MT_Point3& p, const MT_Plane3& plane)
-{
- // Compare plane - point distance with zero
- return BOP_comp0(plane.signedDistance(p));
-}
-
-/**
- * Intersects a plane with the line that contains the specified points.
- * @param plane split plane
- * @param p1 first line point
- * @param p2 second line point
- * @return intersection between plane and line that contains p1 and p2
- */
-MT_Point3 BOP_intersectPlane(const MT_Plane3& plane, const MT_Point3& p1, const MT_Point3& p2)
-{
- // Compute intersection between plane and line ...
- //
- // L: (p2-p1)lambda + p1
- //
- // supposes resolve equation ...
- //
- // coefA*((p2.x - p1.y)*lambda + p1.x) + ... + coefD = 0
-
- MT_Point3 intersection = MT_Point3(0,0,0); //never ever return anything undefined!
- MT_Scalar den = plane.x()*(p2.x()-p1.x()) +
- plane.y()*(p2.y()-p1.y()) +
- plane.z()*(p2.z()-p1.z());
- if (den != 0) {
- MT_Scalar lambda = (-plane.x()*p1.x()-plane.y()*p1.y()-plane.z()*p1.z()-plane.w()) / den;
- intersection.setValue(p1.x() + (p2.x()-p1.x())*lambda,
- p1.y() + (p2.y()-p1.y())*lambda,
- p1.z() + (p2.z()-p1.z())*lambda);
- return intersection;
- }
- return intersection;
-}
-
-/**
- * Returns if a plane contains a point with EPSILON accuracy.
- * @param plane plane
- * @param point point
- * @return true if the point is on the plane, false otherwise
- */
-bool BOP_containsPoint(const MT_Plane3& plane, const MT_Point3& point)
-{
- return BOP_fuzzyZero(plane.signedDistance(point));
-}
-
-/**
- * Pre: p0, p1 and p2 is a triangle and q is an interior point.
- * @param p0 point
- * @param p1 point
- * @param p2 point
- * @param q point
- * @return intersection point I
- * v
- * (p0)-----(I)----->(p1)
- * \ ^ /
- * \ |w /
- * \ | /
- * \ (q) /
- * \ | /
- * \ | /
- * \ | /
- * (p2)
- *
- * v = P1-P2
- * w = P3-Q
- * r0(t) = v*t+P1
- * r1(t) = w*t+P3
- * I = r0^r1
- */
-MT_Point3 BOP_4PointIntersect(const MT_Point3& p0, const MT_Point3& p1, const MT_Point3& p2,
- const MT_Point3& q)
-{
- MT_Vector3 v(p0.x()-p1.x(), p0.y()-p1.y(), p0.z()-p1.z());
- MT_Vector3 w(p2.x()-q.x(), p2.y()-q.y(), p2.z()-q.z());
- MT_Point3 I;
-
- BOP_intersect(v,p0,w,p2,I);
- return I;
-}
-
-/**
- * Pre: p0, p1 and q are collinears.
- * @param p0 point
- * @param p1 point
- * @param q point
- * @return 0 if q == p0, 1 if q == p1, or a value between 0 and 1 otherwise
- *
- * (p0)-----(q)------------(p1)
- * |<-d1-->| |
- * |<---------d0---------->|
- *
- */
-MT_Scalar BOP_EpsilonDistance(const MT_Point3& p0, const MT_Point3& p1, const MT_Point3& q)
-{
- MT_Scalar d0 = p0.distance(p1);
- MT_Scalar d1 = p0.distance(q);
- MT_Scalar d;
-
- if (BOP_fuzzyZero(d0)) d = 1.0;
- else if (BOP_fuzzyZero(d1)) d = 0.0;
- else d = d1 / d0;
- return d;
-}
diff --git a/intern/boolop/intern/BOP_MathUtils.h b/intern/boolop/intern/BOP_MathUtils.h
deleted file mode 100644
index 38acd98dd3d..00000000000
--- a/intern/boolop/intern/BOP_MathUtils.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- *
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): Marc Freixas, Ken Hughes
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_MathUtils.h
- * \ingroup boolopintern
- */
-
-
-#ifndef __BOP_MATHUTILS_H__
-#define __BOP_MATHUTILS_H__
-
-#include <math.h>
-#include <float.h>
-#include "MT_Point3.h"
-#include "MT_Plane3.h"
-
-/* define this to give better precision comparisons */
-#define VAR_EPSILON
-
-#ifndef VAR_EPSILON
-const MT_Scalar BOP_EPSILON(1.0e-5);
-#else
-const MT_Scalar BOP_EPSILON(9.3132257461547852e-10); /* ~= 2**-30 */
-#endif
-
-inline int BOP_sign(MT_Scalar x) {
- return x < 0.0 ? -1 : x > 0.0 ? 1 : 0;
-}
-inline MT_Scalar BOP_abs(MT_Scalar x) { return fabs(x); }
-int BOP_comp(const MT_Scalar A, const MT_Scalar B);
-int BOP_comp(const MT_Tuple3& A, const MT_Tuple3& B);
-int BOP_comp0(const MT_Scalar A);
-inline bool BOP_fuzzyZero(MT_Scalar x) { return BOP_comp0(x) == 0; }
-int BOP_exactComp(const MT_Scalar A, const MT_Scalar B);
-int BOP_exactComp(const MT_Tuple3& A, const MT_Tuple3& B);
-bool BOP_between(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3);
-bool BOP_collinear(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3);
-bool BOP_convex(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3,
- const MT_Point3& p4);
-int BOP_concave(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3, const MT_Point3& p4);
-bool BOP_intersect(const MT_Vector3& vL1, const MT_Point3& pL1, const MT_Vector3& vL2,
- const MT_Point3& pL2, MT_Point3& intersection);
-bool BOP_getCircleCenter(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3,
- const MT_Point3& center);
-bool BOP_isInsideCircle(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3,
- const MT_Point3& p4, const MT_Point3& p5);
-bool BOP_isInsideCircle(const MT_Point3& p1, const MT_Point3& p2, const MT_Point3& p3,
- const MT_Point3& q);
-MT_Scalar BOP_orientation(const MT_Plane3& p1, const MT_Plane3& p2);
-int BOP_classify(const MT_Point3& p, const MT_Plane3& plane);
-MT_Point3 BOP_intersectPlane(const MT_Plane3& plane, const MT_Point3& p1, const MT_Point3& p2);
-bool BOP_containsPoint(const MT_Plane3& plane, const MT_Point3& point);
-MT_Point3 BOP_4PointIntersect(const MT_Point3& p0, const MT_Point3& p1, const MT_Point3& p2,
- const MT_Point3& q);
-MT_Scalar BOP_EpsilonDistance(const MT_Point3& p0, const MT_Point3& p1, const MT_Point3& q);
-
-#endif
diff --git a/intern/boolop/intern/BOP_Merge.cpp b/intern/boolop/intern/BOP_Merge.cpp
deleted file mode 100644
index 0baa6e7be67..00000000000
--- a/intern/boolop/intern/BOP_Merge.cpp
+++ /dev/null
@@ -1,811 +0,0 @@
-/*
- *
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): Marc Freixas, Ken Hughes
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Merge.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_Merge.h"
-
-#ifdef BOP_ORIG_MERGE
-
-#ifdef _MSC_VER
-#if _MSC_VER < 1300
-#include <list>
-#endif
-#endif
-
-/**
- * SINGLETON (use method BOP_Merge.getInstance).
- */
-BOP_Merge BOP_Merge::SINGLETON;
-
-/**
- * Simplifies a mesh, merging its faces.
- * @param m mesh
- * @param v index of the first mergeable vertex (can be removed by merge)
- */
-void BOP_Merge::mergeFaces(BOP_Mesh *m, BOP_Index v)
-{
- m_mesh = m;
- m_firstVertex = v;
-
- bool cont = false;
-
- // Merge faces
- mergeFaces();
-
- do {
- // Add quads ...
- cont = createQuads();
- if (cont) {
- // ... and merge new faces
- cont = mergeFaces();
- }
- // ... until the merge is not succesful
- } while(cont);
-}
-
-/**
- * Simplifies a mesh, merging its faces.
- */
-bool BOP_Merge::mergeFaces()
-{
- BOP_Indexs mergeVertices;
- BOP_Vertexs vertices = m_mesh->getVertexs();
- BOP_IT_Vertexs v = vertices.begin();
- const BOP_IT_Vertexs verticesEnd = vertices.end();
-
- // Advance to first mergeable vertex
- advance(v,m_firstVertex);
- BOP_Index pos = m_firstVertex;
-
- // Add unbroken vertices to the list
- while(v!=verticesEnd) {
- if ((*v)->getTAG() != BROKEN) mergeVertices.push_back(pos);
- v++;pos++;
- }
-
- // Merge faces with that vertices
- return mergeFaces(mergeVertices);
-}
-
-
-/**
- * Simplifies a mesh, merging the faces with the specified vertices.
- * @param mergeVertices vertices to test
- * @return true if a face merge was performed
- */
-bool BOP_Merge::mergeFaces(BOP_Indexs &mergeVertices)
-{
- // Check size > 0!
- if (mergeVertices.size() == 0) return false;
-
- // New faces added by merge
- BOP_Faces newFaces;
-
- // Old faces removed by merge
- BOP_Faces oldFaces;
-
- // Get the first vertex index and add it to
- // the current pending vertices to merge
- BOP_Index v = mergeVertices[0];
- BOP_Indexs pendingVertices;
- pendingVertices.push_back(v);
-
- // Get faces with index v that come from the same original face
- BOP_LFaces facesByOriginalFace;
- getFaces(facesByOriginalFace,v);
-
- bool merged = true;
-
- // Check it has any unbroken face
- if (facesByOriginalFace.size()==0) {
- // v has not any unbroken face (so it's a new BROKEN vertex)
- (m_mesh->getVertex(v))->setTAG(BROKEN);
- merged = false;
- }
-
- // Merge vertex faces
- const BOP_IT_LFaces facesEnd = facesByOriginalFace.end();
-
- for(BOP_IT_LFaces facesByOriginalFaceX = facesByOriginalFace.begin();
- (facesByOriginalFaceX != facesEnd)&&merged;
- facesByOriginalFaceX++) {
- merged = mergeFaces((*facesByOriginalFaceX),oldFaces,newFaces,pendingVertices,v);
- }
-
- // Check if the are some pendingVertices to merge
- if (pendingVertices.size() > 1 && merged) {
- // There are pending vertices that we need to merge in order to merge v ...
- for(unsigned int i=1;i<pendingVertices.size() && merged;i++)
- merged = mergeFaces(oldFaces,newFaces,pendingVertices,pendingVertices[i]);
- }
-
- // If merge was succesful ...
- if (merged) {
- // Set old faces to BROKEN...
- const BOP_IT_Faces oldFacesEnd = oldFaces.end();
- for(BOP_IT_Faces face=oldFaces.begin();face!=oldFacesEnd;face++)
- (*face)->setTAG(BROKEN);
-
- // ... and add merged faces (that are the new merged faces without pending vertices)
- const BOP_IT_Faces newFacesEnd = newFaces.end();
- for(BOP_IT_Faces newFace=newFaces.begin();newFace!=newFacesEnd;newFace++) {
- m_mesh->addFace(*newFace);
- // Also, add new face vertices to the queue of vertices to merge if they weren't
- for(BOP_Index i = 0;i<(*newFace)->size();i++) {
- BOP_Index vertexIndex = (*newFace)->getVertex(i);
- if (vertexIndex >= m_firstVertex && !containsIndex(mergeVertices,vertexIndex))
- mergeVertices.push_back(vertexIndex);
- }
- }
- // Set the merged vertices to BROKEN ...
- const BOP_IT_Indexs pendingEnd = pendingVertices.end();
- for(BOP_IT_Indexs pendingVertex = pendingVertices.begin(); pendingVertex != pendingEnd;pendingVertex++) {
- BOP_Index pV = *pendingVertex;
- m_mesh->getVertex(pV)->setTAG(BROKEN);
- // ... and remove them from mergeVertices queue
- const BOP_IT_Indexs mergeEnd = mergeVertices.end();
- for(BOP_IT_Indexs mergeVertex = mergeVertices.begin(); mergeVertex != mergeEnd;mergeVertex++) {
- BOP_Index mV = *mergeVertex;
- if (mV == pV) {
- mergeVertices.erase(mergeVertex);
- break;
- }
- }
- }
- }
- else {
- // The merge was not succesful, remove the vertex frome merge vertices queue
- mergeVertices.erase(mergeVertices.begin());
-
- // free the not used newfaces
- const BOP_IT_Faces newFacesEnd = newFaces.end();
- for(BOP_IT_Faces newFace=newFaces.begin();newFace!=newFacesEnd;newFace++) {
- delete (*newFace);
- }
- }
-
- // Invoke mergeFaces and return the merge result
- return (mergeFaces(mergeVertices) || merged);
-}
-
-
-/**
- * Simplifies a mesh, merging the faces with vertex v that come from the same face.
- * @param oldFaces sequence of old mesh faces obtained from the merge
- * @param newFaces sequence of new mesh faces obtained from the merge
- * @param vertices sequence of indexs (v1 ... vi = v ... vn) where :
- * v is the current vertex to test,
- * vj (j < i) are tested vertices,
- * vk (k >= i) are vertices required to test to merge vj
- * (so if a vertex vk can't be merged, the merge is not possible).
- * @return true if the vertex v was 'merged' (obviously it could require to test
- * some new vertices that will be added to the vertices list)
- */
-bool BOP_Merge::mergeFaces(BOP_Faces &oldFaces, BOP_Faces &newFaces, BOP_Indexs &vertices, BOP_Index v) {
-
- bool merged = true;
-
- // Get faces with v that come from the same original face, (without the already 'merged' from vertices)
- BOP_LFaces facesByOriginalFace;
- getFaces(facesByOriginalFace,vertices,v);
-
- if (facesByOriginalFace.size()==0) {
- // All the faces with this vertex were already merged!!!
- return true;
- }
- else {
- // Merge faces
- const BOP_IT_LFaces facesEnd = facesByOriginalFace.end();
- for(BOP_IT_LFaces facesByOriginalFaceX = facesByOriginalFace.begin();
- (facesByOriginalFaceX != facesEnd)&&merged;
- facesByOriginalFaceX++) {
- merged = mergeFaces((*facesByOriginalFaceX),oldFaces,newFaces,vertices,v);
- }
- }
- return merged;
-}
-
-
-/**
- * Merge a set of faces removing the vertex index v.
- * @param faces set of faces
- * @param oldFaces set of old faces obtained from the merge
- * @param newFaces set of new faces obtained from the merge
- * @param vertices sequence of indexs (v1 ... vi = v ... vn) where :
- * v is the current vertex to test,
- * vj (j < i) are tested vertices,
- * vk (k >= i) are vertices required to test to merge vj
- * (so if a vertex vk can't be merged, the merge is not possible).
- * @param v vertex index
- * @return true if the merge is succesful, false otherwise
- */
-bool BOP_Merge::mergeFaces(BOP_Faces &faces, BOP_Faces &oldFaces, BOP_Faces &newFaces, BOP_Indexs &vertices, BOP_Index v)
-{
-
- bool merged = false;
-
- if (faces.size() == 2) {
- // Merge a pair of faces into a new face without v
- BOP_Face *faceI = faces[0];
- BOP_Face *faceJ = faces[1];
- BOP_Face *faceK = mergeFaces(faceI,faceJ,vertices,v);
- if (faceK != NULL) {
- newFaces.push_back(faceK);
- oldFaces.push_back(faceI);
- oldFaces.push_back(faceJ);
- merged = true;
- }
- else merged = false;
- }
- else if (faces.size() == 4) {
- // Merge two pair of faces into a new pair without v
- // First we try to perform a simplify merge to avoid more pending vertices
- // (for example, if we have two triangles and two quads it will be better
- // to do 3+4 and 3+4 than 3+3 and 4+4)
- BOP_Face *oldFace1 = faces[0];
- BOP_Face *oldFace2, *newFace1;
- unsigned int indexJ = 1;
- while (indexJ < faces.size() && !merged) {
- oldFace2 = faces[indexJ];
- newFace1 = mergeFaces(oldFace1,oldFace2,v);
- if (newFace1 != NULL) merged = true;
- else indexJ++;
- }
- if (merged) {
- // Merge the other pair of faces
- unsigned int indexK, indexL;
- if (indexJ == 1) {indexK = 2;indexL = 3;}
- else if (indexJ == 2) {indexK = 1;indexL = 3;}
- else {indexK = 1;indexL = 2;}
- BOP_Face *oldFace3 = faces[indexK];
- BOP_Face *oldFace4 = faces[indexL];
- unsigned int oldSize = vertices.size();
- BOP_Face *newFace2 = mergeFaces(oldFace3,oldFace4,vertices,v);
- if (newFace2 != NULL) {
- newFaces.push_back(newFace1);
- newFaces.push_back(newFace2);
- oldFaces.push_back(oldFace1);
- oldFaces.push_back(oldFace2);
- oldFaces.push_back(oldFace3);
- oldFaces.push_back(oldFace4);
- merged = true;
- }
- else {
- // Undo all changes
- delete newFace1;
- merged = false;
- unsigned int count = vertices.size() - oldSize;
- if (count != 0)
- vertices.erase(vertices.end() - count, vertices.end());
- }
- }
- if (!merged) {
- // Try a complete merge
- merged = true;
- while (faces.size()>0 && merged) {
- indexJ = 1;
- BOP_Face *faceI = faces[0];
- merged = false;
- while (indexJ < faces.size()) {
- BOP_Face *faceJ = faces[indexJ];
- BOP_Face *faceK = mergeFaces(faceI,faceJ,vertices,v);
- if (faceK != NULL) {
- // faceK = faceI + faceJ and it does not include v!
- faces.erase(faces.begin()+indexJ,faces.begin()+(indexJ+1));
- faces.erase(faces.begin(),faces.begin()+1);
- newFaces.push_back(faceK);
- oldFaces.push_back(faceI);
- oldFaces.push_back(faceJ);
- merged = true;
- break;
- }
- else indexJ++;
- }
- }
- }
- }
- else merged = false; // there are N=1 or N=3 or N>4 faces!
-
- // Return merge result
- return merged;
-}
-
-/**
- * Returns a new quad from the merge of two faces (one quad and one triangle)
- * that share the vertex v and come from the same original face.
- * @param faceI mesh face (quad or triangle) with index v
- * @param faceJ mesh face (quad or triangle) with index v
- * @param v vertex index shared by both faces
- * @return if the merge is possible, a new quad without v
- */
-BOP_Face* BOP_Merge::mergeFaces(BOP_Face *faceI, BOP_Face *faceJ, BOP_Index v)
-{
- if (faceI->size() == 3) {
- if (faceJ->size() == 4)
- return mergeFaces((BOP_Face4*)faceJ,(BOP_Face3*)faceI,v);
- }
- else if (faceI->size() == 4) {
- if (faceJ->size() == 3)
- return mergeFaces((BOP_Face4*)faceI,(BOP_Face3*)faceJ,v);
- }
- return NULL;
-}
-
-/**
- * Returns a new face from the merge of two faces (quads or triangles) that
- * share te vertex v and come from the same original face.
- * @param faceI mesh face (quad or triangle) with index v
- * @param faceJ mesh face (quad or triangle) with index v
- * @param pending vector with pending vertices (required to merge two quads into
- * a new quad or one quad and one triangle into a new triangle; these merges
- * suppose to remove two vertexs, v and its neighbour, that will be a pending
- * vertex to merge if it wasn't)
- * @param v vertex index shared by both faces
- * @return if the merge is possible, a new face without v
- */
-BOP_Face* BOP_Merge::mergeFaces(BOP_Face *faceI, BOP_Face *faceJ, BOP_Indexs &pending, BOP_Index v)
-{
- if (faceI->size() == 3) {
- if (faceJ->size() == 3)
- return mergeFaces((BOP_Face3*)faceI,(BOP_Face3*)faceJ,v);
- else if (faceJ->size() == 4)
- return mergeFaces((BOP_Face4*)faceJ,(BOP_Face3*)faceI,pending,v);
- }
- else if (faceI->size() == 4) {
- if (faceJ->size() == 3)
- return mergeFaces((BOP_Face4*)faceI,(BOP_Face3*)faceJ,pending,v);
- else if (faceJ->size() == 4)
- return mergeFaces((BOP_Face4*)faceI,(BOP_Face4*)faceJ,pending,v);
- }
- return NULL;
-}
-
-/**
- * Returns a new triangle from the merge of two triangles that share the vertex
- * v and come from the same original face.
- * @param faceI mesh triangle
- * @param faceJ mesh triangle
- * @param v vertex index shared by both triangles
- * @return If the merge is possible, a new triangle without v
- */
-BOP_Face* BOP_Merge::mergeFaces(BOP_Face3 *faceI, BOP_Face3 *faceJ, BOP_Index v)
-{
- BOP_Face *faceK = NULL;
-
- // Get faces data
- BOP_Index prevI, nextI, prevJ, nextJ;
- faceI->getNeighbours(v,prevI,nextI);
- faceJ->getNeighbours(v,prevJ,nextJ);
- MT_Point3 vertex = m_mesh->getVertex(v)->getPoint();
- MT_Point3 vPrevI = m_mesh->getVertex(prevI)->getPoint();
- MT_Point3 vNextI = m_mesh->getVertex(nextI)->getPoint();
- MT_Point3 vPrevJ = m_mesh->getVertex(prevJ)->getPoint();
- MT_Point3 vNextJ = m_mesh->getVertex(nextJ)->getPoint();
-
- // Merge test
- if (prevI == nextJ) {
- // Both faces share the edge (prevI,v) == (v,nextJ)
- if (BOP_between(vertex,vNextI,vPrevJ)) {
- faceK = new BOP_Face3(prevI,prevJ,nextI,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- }
- }
- else if (nextI == prevJ) {
- // Both faces share the edge (v,nextI) == (prevJ,v)
- if (BOP_between(vertex,vPrevI,vNextJ)) {
- faceK = new BOP_Face3(prevI,nextJ,nextI,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- }
- }
- return faceK;
-}
-
-/**
- * Returns a new quad from the merge of one quad and one triangle that share
- * the vertex v and come from the same original face.
- * @param faceI mesh quad
- * @param faceJ mesh triangle
- * @param v vertex index shared by both faces
- * @return If the merge is possible, a new quad without v
- */
-BOP_Face* BOP_Merge::mergeFaces(BOP_Face4 *faceI, BOP_Face3 *faceJ, BOP_Index v)
-{
- BOP_Face *faceK = NULL;
-
- // Get faces data
- BOP_Index prevI, nextI, opp, prevJ, nextJ;
- faceI->getNeighbours(v,prevI,nextI,opp);
- faceJ->getNeighbours(v,prevJ,nextJ);
- MT_Point3 vertex = m_mesh->getVertex(v)->getPoint();
- MT_Point3 vOpp = m_mesh->getVertex(opp)->getPoint();
- MT_Point3 vPrevI = m_mesh->getVertex(prevI)->getPoint();
- MT_Point3 vNextI = m_mesh->getVertex(nextI)->getPoint();
- MT_Point3 vPrevJ = m_mesh->getVertex(prevJ)->getPoint();
- MT_Point3 vNextJ = m_mesh->getVertex(nextJ)->getPoint();
-
- // Merge test
- if (prevI == nextJ) {
- if (BOP_between(vertex,vNextI,vPrevJ) && !BOP_collinear(vPrevJ,vPrevI,vOpp)
- && BOP_convex(vOpp,vPrevI,vPrevJ,vNextI)) {
- faceK = new BOP_Face4(opp,prevI,prevJ,nextI,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- }
- }
- else if (nextI == prevJ) {
- if (BOP_between(vertex,vPrevI,vNextJ) && !BOP_collinear(vNextJ,vNextI,vOpp)
- && BOP_convex(vOpp,vPrevI,vNextJ,vNextI)) {
- faceK = new BOP_Face4(opp,prevI,nextJ,nextI,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- }
- }
- return faceK;
-}
-
-/**
- * Returns a new face (quad or triangle) from the merge of one quad and one
- * triangle that share the vertex v and come from the same original face.
- * @param faceI mesh quad
- * @param faceJ mesh triangle
- * @param pending vector with pending vertices (required to merge one quad
- * and one triangle into a new triangle; it supposes to remove two vertexs,
- * v and its neighbour, that will be a new pending vertex if it wasn't)
- * @param v vertex index shared by both faces
- * @return If the merge is possible, a new face without v
- */
-BOP_Face* BOP_Merge::mergeFaces(BOP_Face4 *faceI, BOP_Face3 *faceJ, BOP_Indexs &pending, BOP_Index v)
-{
- BOP_Face *faceK = NULL;
-
- // Get faces data
- BOP_Index prevI, nextI, opp, prevJ, nextJ;
- faceI->getNeighbours(v,prevI,nextI,opp);
- faceJ->getNeighbours(v,prevJ,nextJ);
- MT_Point3 vertex = m_mesh->getVertex(v)->getPoint();
- MT_Point3 vOpp = m_mesh->getVertex(opp)->getPoint();
- MT_Point3 vPrevI = m_mesh->getVertex(prevI)->getPoint();
- MT_Point3 vNextI = m_mesh->getVertex(nextI)->getPoint();
- MT_Point3 vPrevJ = m_mesh->getVertex(prevJ)->getPoint();
- MT_Point3 vNextJ = m_mesh->getVertex(nextJ)->getPoint();
-
- // Merge test
- if (prevI == nextJ) {
- if (BOP_between(vertex,vNextI,vPrevJ)) {
- if (!BOP_collinear(vPrevJ,vPrevI,vOpp) && BOP_convex(vOpp,vPrevI,vPrevJ,vNextI)) {
- // The result is a new quad
- faceK = new BOP_Face4(opp,prevI,prevJ,nextI,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- }
- else if (BOP_between(vPrevI,vPrevJ,vOpp)) {
- // The result is a triangle (only if prevI can be merged)
- if (prevI < m_firstVertex) return NULL; // It can't be merged
- faceK = new BOP_Face3(nextI,opp,prevJ,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- if (!containsIndex(pending, prevI)) pending.push_back(prevI);
- }
- }
- }
- else if (nextI == prevJ) {
- if (BOP_between(vertex,vPrevI,vNextJ)) {
- if (!BOP_collinear(vNextJ,vNextI,vOpp) && BOP_convex(vOpp,vPrevI,vNextJ,vNextI)) {
- // The result is a new quad
- faceK = new BOP_Face4(opp,prevI,nextJ,nextI,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- }
- else if (BOP_between(vNextI,vOpp,vNextJ)) {
- // The result is a triangle (only if nextI can be merged)
- if (nextI < m_firstVertex) return NULL;
- faceK = new BOP_Face3(prevI,nextJ,opp,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- if (!containsIndex(pending, nextI)) pending.push_back(nextI);
- }
- }
- }
- return faceK;
-}
-
-/**
- * Returns a new quad from the merge of two quads that share
- * the vertex v and come from the same original face.
- * @param faceI mesh quad
- * @param faceJ mesh quad
- * @param pending vector with pending vertices (required to merge the two
- * quads supposes to remove two vertexs, v and its neighbour,
- * that will be a new pending vertex if it wasn't)
- * @param v vertex index shared by both quads
- * @return If the merge is possible, a new quad without v
- */
-BOP_Face* BOP_Merge::mergeFaces(BOP_Face4 *faceI, BOP_Face4 *faceJ, BOP_Indexs &pending, BOP_Index v)
-{
- BOP_Face *faceK = NULL;
-
- // Get faces data
- BOP_Index prevI, nextI, oppI, prevJ, nextJ, oppJ;
- faceI->getNeighbours(v,prevI,nextI,oppI);
- faceJ->getNeighbours(v,prevJ,nextJ,oppJ);
- MT_Point3 vertex = m_mesh->getVertex(v)->getPoint();
- MT_Point3 vPrevI = m_mesh->getVertex(prevI)->getPoint();
- MT_Point3 vNextI = m_mesh->getVertex(nextI)->getPoint();
- MT_Point3 vOppI = m_mesh->getVertex(oppI)->getPoint();
- MT_Point3 vPrevJ = m_mesh->getVertex(prevJ)->getPoint();
- MT_Point3 vNextJ = m_mesh->getVertex(nextJ)->getPoint();
- MT_Point3 vOppJ = m_mesh->getVertex(oppJ)->getPoint();
-
- // Merge test
- if (prevI == nextJ) {
- // prevI/nextJ will be a new vertex required to merge
- if (prevI < m_firstVertex) return NULL; // It can't be merged
- if (BOP_between(vertex,vPrevJ,vNextI) && BOP_between(vNextJ,vOppJ,vOppI)) {
- faceK = new BOP_Face4(oppJ,prevJ,nextI,oppI,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- // We add prevI to the pending list if it wasn't yet
- if (!containsIndex(pending, prevI)) pending.push_back(prevI);
- }
- }
- else if (nextI == prevJ) {
- // nextI/prevJ will be a new vertex required to merge
- if (nextI < m_firstVertex) return NULL; // It can't be merged
- if (BOP_between(vertex,vPrevI,vNextJ) && BOP_between(vNextI,vOppI,vOppJ)) {
- faceK = new BOP_Face4(oppI,prevI,nextJ,oppJ,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- // Add nextI to the pending list if it wasn't yet
- if (!containsIndex(pending, nextI)) pending.push_back(nextI);
- }
- }
- return faceK;
-}
-
-
-/**
- * Simplifies the mesh, merging the pairs of triangles that come frome the
- * same original face and define a quad.
- * @return true if a quad was added, false otherwise
- */
-bool BOP_Merge::createQuads()
-{
-
- BOP_Faces quads;
-
- // Get mesh faces
- BOP_Faces faces = m_mesh->getFaces();
-
-
- // Merge mesh triangles
- const BOP_IT_Faces facesIEnd = (faces.end()-1);
- const BOP_IT_Faces facesJEnd = faces.end();
- for(BOP_IT_Faces faceI=faces.begin();faceI!=facesIEnd;faceI++) {
- if ((*faceI)->getTAG() == BROKEN || (*faceI)->size() != 3) continue;
- for(BOP_IT_Faces faceJ=(faceI+1);faceJ!=facesJEnd;faceJ++) {
- if ((*faceJ)->getTAG() == BROKEN || (*faceJ)->size() != 3 ||
- (*faceJ)->getOriginalFace() != (*faceI)->getOriginalFace()) continue;
-
- // Test if both triangles share a vertex index
- BOP_Index v;
- bool found = false;
- for(unsigned int i=0;i<3 && !found;i++) {
- v = (*faceI)->getVertex(i);
- found = (*faceJ)->containsVertex(v);
-
- }
- if (!found) continue;
-
- BOP_Face *faceK = createQuad((BOP_Face3*)*faceI,(BOP_Face3*)*faceJ,v);
- if (faceK != NULL) {
- // Set triangles to BROKEN
- (*faceI)->setTAG(BROKEN);
- (*faceJ)->setTAG(BROKEN);
- quads.push_back(faceK);
- break;
- }
- }
- }
-
- // Add quads to mesh
- const BOP_IT_Faces quadsEnd = quads.end();
- for(BOP_IT_Faces quad=quads.begin();quad!=quadsEnd;quad++) m_mesh->addFace(*quad);
- return (quads.size() > 0);
-}
-
-/**
- * Returns a new quad (convex) from the merge of two triangles that share the
- * vertex index v.
- * @param faceI mesh triangle
- * @param faceJ mesh triangle
- * @param v vertex index shared by both triangles
- * @return a new convex quad if the merge is possible
- */
-BOP_Face* BOP_Merge::createQuad(BOP_Face3 *faceI, BOP_Face3 *faceJ, BOP_Index v)
-{
- BOP_Face *faceK = NULL;
-
- // Get faces data
- BOP_Index prevI, nextI, prevJ, nextJ;
- faceI->getNeighbours(v,prevI,nextI);
- faceJ->getNeighbours(v,prevJ,nextJ);
- MT_Point3 vertex = m_mesh->getVertex(v)->getPoint();
- MT_Point3 vPrevI = m_mesh->getVertex(prevI)->getPoint();
- MT_Point3 vNextI = m_mesh->getVertex(nextI)->getPoint();
- MT_Point3 vPrevJ = m_mesh->getVertex(prevJ)->getPoint();
- MT_Point3 vNextJ = m_mesh->getVertex(nextJ)->getPoint();
-
- // Quad test
- if (prevI == nextJ) {
- if (!BOP_collinear(vNextI,vertex,vPrevJ) && !BOP_collinear(vNextI,vPrevI,vPrevJ) &&
- BOP_convex(vertex,vNextI,vPrevI,vPrevJ)) {
- faceK = new BOP_Face4(v,nextI,prevI,prevJ,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- }
- }
- else if (nextI == prevJ) {
- if (!BOP_collinear(vPrevI,vertex,vNextJ) && !BOP_collinear(vPrevI,vNextI,vNextJ) &&
- BOP_convex(vertex,vNextJ,vNextI,vPrevI)) {
- faceK = new BOP_Face4(v,nextJ,nextI,prevI,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- }
- }
- return faceK;
-}
-
-/**
- * Returns if a index is inside a set of indexs.
- * @param indexs set of indexs
- * @param i index
- * @return true if the index is inside the set, false otherwise
- */
-bool BOP_Merge::containsIndex(BOP_Indexs indexs, BOP_Index i)
-{
- const BOP_IT_Indexs indexsEnd = indexs.end();
- for(BOP_IT_Indexs it=indexs.begin();it!=indexsEnd;it++) {
- if (*it == i) return true;
- }
- return false;
-}
-
-/**
- * Creates a list of lists L1, L2, ... LN where
- * LX = mesh faces with vertex v that come from the same original face
- * @param facesByOriginalFace list of faces lists
- * @param v vertex index
- */
-void BOP_Merge::getFaces(BOP_LFaces &facesByOriginalFace, BOP_Index v)
-{
- // Get edges with vertex v
- BOP_Indexs edgeIndexs = m_mesh->getVertex(v)->getEdges();
- const BOP_IT_Indexs edgeEnd = edgeIndexs.end();
- for(BOP_IT_Indexs edgeIndex = edgeIndexs.begin();edgeIndex != edgeEnd;edgeIndex++) {
- // Foreach edge, add its no broken faces to the output list
- BOP_Edge* edge = m_mesh->getEdge(*edgeIndex);
- BOP_Indexs faceIndexs = edge->getFaces();
- const BOP_IT_Indexs faceEnd = faceIndexs.end();
- for(BOP_IT_Indexs faceIndex=faceIndexs.begin();faceIndex!=faceEnd;faceIndex++) {
- BOP_Face* face = m_mesh->getFace(*faceIndex);
- if (face->getTAG() != BROKEN) {
- bool found = false;
- // Search if we already have created a list for the
- // faces that come from the same original face
- const BOP_IT_LFaces lfEnd = facesByOriginalFace.end();
- for(BOP_IT_LFaces facesByOriginalFaceX=facesByOriginalFace.begin();
- facesByOriginalFaceX!=lfEnd; facesByOriginalFaceX++) {
- if (((*facesByOriginalFaceX)[0])->getOriginalFace() == face->getOriginalFace()) {
- // Search that the face has not been added to the list before
- for(unsigned int i = 0;i<(*facesByOriginalFaceX).size();i++) {
- if ((*facesByOriginalFaceX)[i] == face) {
- found = true;
- break;
- }
- }
- if (!found) {
- // Add the face to the list
- if (face->getTAG()==OVERLAPPED) facesByOriginalFaceX->insert(facesByOriginalFaceX->begin(),face);
- else facesByOriginalFaceX->push_back(face);
- found = true;
- }
- break;
- }
- }
- if (!found) {
- // Create a new list and add the current face
- BOP_Faces facesByOriginalFaceX;
- facesByOriginalFaceX.push_back(face);
- facesByOriginalFace.push_back(facesByOriginalFaceX);
- }
- }
- }
- }
-}
-
-/**
- * Creates a list of lists L1, L2, ... LN where
- * LX = mesh faces with vertex v that come from the same original face
- * and without any of the vertices that appear before v in vertices
- * @param facesByOriginalFace list of faces lists
- * @param vertices vector with vertices indexs that contains v
- * @param v vertex index
- */
-void BOP_Merge::getFaces(BOP_LFaces &facesByOriginalFace, BOP_Indexs vertices, BOP_Index v)
-{
- // Get edges with vertex v
- BOP_Indexs edgeIndexs = m_mesh->getVertex(v)->getEdges();
- const BOP_IT_Indexs edgeEnd = edgeIndexs.end();
- for(BOP_IT_Indexs edgeIndex = edgeIndexs.begin();edgeIndex != edgeEnd;edgeIndex++) {
- // Foreach edge, add its no broken faces to the output list
- BOP_Edge* edge = m_mesh->getEdge(*edgeIndex);
- BOP_Indexs faceIndexs = edge->getFaces();
- const BOP_IT_Indexs faceEnd = faceIndexs.end();
- for(BOP_IT_Indexs faceIndex=faceIndexs.begin();faceIndex!=faceEnd;faceIndex++) {
- BOP_Face* face = m_mesh->getFace(*faceIndex);
- if (face->getTAG() != BROKEN) {
- // Search if the face contains any of the forbidden vertices
- bool found = false;
- for(BOP_IT_Indexs vertex = vertices.begin();*vertex!= v;vertex++) {
- if (face->containsVertex(*vertex)) {
- // face contains a forbidden vertex!
- found = true;
- break;
- }
- }
- if (!found) {
- // Search if we already have created a list with the
- // faces that come from the same original face
- const BOP_IT_LFaces lfEnd = facesByOriginalFace.end();
- for(BOP_IT_LFaces facesByOriginalFaceX=facesByOriginalFace.begin();
- facesByOriginalFaceX!=lfEnd; facesByOriginalFaceX++) {
- if (((*facesByOriginalFaceX)[0])->getOriginalFace() == face->getOriginalFace()) {
- // Search that the face has not been added to the list before
- for(unsigned int i = 0;i<(*facesByOriginalFaceX).size();i++) {
- if ((*facesByOriginalFaceX)[i] == face) {
- found = true;
- break;
- }
- }
- if (!found) {
- // Add face to the list
- if (face->getTAG()==OVERLAPPED) facesByOriginalFaceX->insert(facesByOriginalFaceX->begin(),face);
- else facesByOriginalFaceX->push_back(face);
- found = true;
- }
- break;
- }
- }
- if (!found) {
- // Create a new list and add the current face
- BOP_Faces facesByOriginalFaceX;
- facesByOriginalFaceX.push_back(face);
- facesByOriginalFace.push_back(facesByOriginalFaceX);
- }
- }
- }
- }
- }
-}
-
-#endif /* BOP_ORIG_MERGE */
diff --git a/intern/boolop/intern/BOP_Merge.h b/intern/boolop/intern/BOP_Merge.h
deleted file mode 100644
index 9d6d7030ba7..00000000000
--- a/intern/boolop/intern/BOP_Merge.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Merge.h
- * \ingroup boolopintern
- */
-
-
-#ifndef __BOP_MERGE_H__
-#define __BOP_MERGE_H__
-
-#include "BOP_Misc.h"
-
-#ifdef BOP_ORIG_MERGE
-#include "BOP_Mesh.h"
-#include "BOP_Tag.h"
-#include "BOP_MathUtils.h"
-#include "MEM_SmartPtr.h"
-
-typedef std::vector< BOP_Faces > BOP_LFaces;
-typedef std::vector< BOP_Faces >::iterator BOP_IT_LFaces;
-
-class BOP_Merge {
- private:
- BOP_Mesh* m_mesh;
- BOP_Index m_firstVertex;
- static BOP_Merge SINGLETON;
-
- BOP_Merge() {};
- bool mergeFaces();
- bool mergeFaces(BOP_Indexs &mergeVertices);
- bool mergeFaces(BOP_Faces &oldFaces, BOP_Faces &newFaces, BOP_Indexs &vertices, BOP_Index v);
- bool mergeFaces(BOP_Faces &faces, BOP_Faces &oldFaces, BOP_Faces &newFaces, BOP_Indexs &vertices, BOP_Index v);
- BOP_Face *mergeFaces(BOP_Face *faceI, BOP_Face *faceJ, BOP_Index v);
- BOP_Face *mergeFaces(BOP_Face *faceI, BOP_Face *faceJ, BOP_Indexs &pending, BOP_Index v);
- BOP_Face *mergeFaces(BOP_Face3 *faceI, BOP_Face3 *faceJ, BOP_Index v);
- BOP_Face *mergeFaces(BOP_Face4 *faceI, BOP_Face3 *faceJ, BOP_Index v);
- BOP_Face *mergeFaces(BOP_Face4 *faceI, BOP_Face3 *faceJ, BOP_Indexs &pending, BOP_Index v);
- BOP_Face *mergeFaces(BOP_Face4 *faceI, BOP_Face4 *faceJ, BOP_Indexs &pending, BOP_Index v);
- bool createQuads();
- BOP_Face *createQuad(BOP_Face3 *faceI, BOP_Face3 *faceJ, BOP_Index v);
- bool containsIndex(BOP_Indexs indexs, BOP_Index index);
- void getFaces(BOP_LFaces &facesByOriginalFace, BOP_Index v);
- void getFaces(BOP_LFaces &facesByOriginalFace, BOP_Indexs vertices, BOP_Index v);
-
- public:
-
- static BOP_Merge &getInstance() {
- return SINGLETON;
- }
-
- void mergeFaces(BOP_Mesh *m, BOP_Index v);
-};
-
-#endif /* BOP_ORIG_MERGE */
-
-#endif
diff --git a/intern/boolop/intern/BOP_Merge2.cpp b/intern/boolop/intern/BOP_Merge2.cpp
deleted file mode 100644
index 6bec9ba8222..00000000000
--- a/intern/boolop/intern/BOP_Merge2.cpp
+++ /dev/null
@@ -1,948 +0,0 @@
-/*
- *
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): Marc Freixas, Ken Hughes
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Merge2.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_Merge2.h"
-
-#ifdef BOP_NEW_MERGE
-
-static void deleteFace(BOP_Mesh *m, BOP_Face *face);
-
-/**
- * SINGLETON (use method BOP_Merge2.getInstance).
- */
-BOP_Merge2 BOP_Merge2::SINGLETON;
-
-#ifdef BOP_DEBUG
-void dumpmesh ( BOP_Mesh *m, bool force )
-{
- unsigned int nonmanifold = 0;
- {
- BOP_Edges edges = m->getEdges();
- int count = 0;
- for (BOP_IT_Edges edge = edges.begin(); edge != edges.end();
- ++count, ++edge) {
- if (!(*edge)->getUsed() && (*edge)->getFaces().size() == 0 ) continue;
- BOP_Vertex * v1 = m->getVertex((*edge)->getVertex1());
- BOP_Vertex * v2 = m->getVertex((*edge)->getVertex2());
-
- if(v1->getTAG()!= BROKEN || v2->getTAG()!= BROKEN ) {
- int fcount = 0;
- BOP_Indexs faces = (*edge)->getFaces();
- for (BOP_IT_Indexs face = faces.begin(); face != faces.end(); face++) {
- BOP_Face *f = m->getFace(*face);
- if(f->getTAG()== UNCLASSIFIED) ++fcount;
- }
-
-
- if(fcount !=0 && fcount !=2 ) {
- ++nonmanifold;
- }
- }
- }
- if (!force && nonmanifold == 0) return;
- }
- if( nonmanifold )
- cout << nonmanifold << " edges detected" << endl;
-#ifdef BOP_DEBUG
- cout << "---------------------------" << endl;
-
- BOP_Edges edges = m->getEdges();
- int count = 0;
- for (BOP_IT_Edges edge = edges.begin(); edge != edges.end();
- ++count, ++edge) {
- BOP_Vertex * v1 = m->getVertex((*edge)->getVertex1());
- BOP_Vertex * v2 = m->getVertex((*edge)->getVertex2());
-
- if(v1->getTAG()!= BROKEN || v2->getTAG()!= BROKEN ) {
- int fcount = 0;
- BOP_Indexs faces = (*edge)->getFaces();
- cout << count << ", " << (*edge) << ", " << faces.size() << endl;
- for (BOP_IT_Indexs face = faces.begin(); face != faces.end(); face++) {
- BOP_Face *f = m->getFace(*face);
- if(f->getTAG()== UNCLASSIFIED) ++fcount;
- cout << " face " << f << endl;
- }
-
-
- if(fcount !=0 && fcount !=2 )
- cout << " NON-MANIFOLD" << endl;
- }
- }
-
- BOP_Faces faces = m->getFaces();
- count = 0;
- for (BOP_IT_Faces face = faces.begin(); face != faces.end(); face++) {
- if( count < 12*2 || (*face)->getTAG() != BROKEN ) {
- cout << count << ", " << *face << endl;
- }
- ++count;
- }
-
- BOP_Vertexs verts = m->getVertexs();
- count = 0;
- for (BOP_IT_Vertexs vert = verts.begin(); vert != verts.end(); vert++) {
- cout << count++ << ", " << *vert << " " << (*vert)->getNumEdges() << endl;
- BOP_Indexs edges = (*vert)->getEdges();
- for( BOP_IT_Indexs it = edges.begin(); it != edges.end(); ++it) {
- BOP_Edge *edge = m->getEdge(*it);
- cout << " " << edge << endl;
- }
- }
- cout << "===========================" << endl;
-#endif
-}
-#endif
-
-/**
- * Simplifies a mesh, merging its faces.
- * @param m mesh
- * @param v index of the first mergeable vertex (can be removed by merge)
- */
-
-void BOP_Merge2::mergeFaces(BOP_Mesh *m, BOP_Index v)
-{
- m_mesh = m;
-
-#ifdef BOP_DEBUG
- cout << "##############################" << endl;
-#endif
- cleanup( );
-
- m_firstVertex = v;
- bool cont = false;
-
- // Merge faces
- mergeFaces();
-
- do {
- // Add quads ...
- cont = createQuads();
- // ... and merge new faces
- if( cont ) cont = mergeFaces();
-
-#ifdef BOP_DEBUG
- cout << "called mergeFaces " << cont << endl;
-#endif
- // ... until the merge is not succesful
- } while(cont);
-}
-
-void clean_nonmanifold( BOP_Mesh *m )
-{
- return;
-
- BOP_Edges nme;
- BOP_Edges e = m->getEdges();
- for( BOP_IT_Edges it = e.begin(); it != e.end(); ++it ) {
- BOP_Indexs faces = (*it)->getFaces();
- if( faces.size() & ~2 )
- nme.push_back(*it);
- }
- if (nme.size() == 0) return;
- for( BOP_IT_Edges it = nme.begin(); it != nme.end(); ++it ) {
- if( (*it)->getFaces().size() > 1 ) {
- BOP_Indexs faces = (*it)->getFaces();
- for( BOP_IT_Indexs face = faces.begin(); face != faces.end(); ++face ) {
- MT_Point3 vertex1 = m->getVertex(m->getFace(*face)->getVertex(0))->getPoint();
- MT_Point3 vertex2 = m->getVertex(m->getFace(*face)->getVertex(1))->getPoint();
- MT_Point3 vertex3 = m->getVertex(m->getFace(*face)->getVertex(2))->getPoint();
- if (BOP_collinear(vertex1,vertex2,vertex3)) // collinear triangle
- deleteFace(m,m->getFace(*face));
- }
- continue;
- }
- BOP_Face *oface1 = m->getFace((*it)->getFaces().front());
- BOP_Face *oface2, *tmpface;
- BOP_Index first =(*it)->getVertex1();
- BOP_Index next =(*it)->getVertex2();
- BOP_Index last = first;
- unsigned short facecount = 0;
- bool found = false;
- BOP_Indexs vertList;
-#ifdef BOP_DEBUG
- cout << " first edge is " << (*it) << endl;
-#endif
- vertList.push_back(first);
- BOP_Edge *edge;
- while(true) {
- BOP_Vertex *vert = m->getVertex(next);
- BOP_Indexs edges = vert->getEdges();
- edge = NULL;
- for( BOP_IT_Indexs eit = edges.begin(); eit != edges.end(); ++eit) {
- edge = m->getEdge(*eit);
- if( edge->getFaces().size() > 1) {
- edge = NULL;
- continue;
- }
- if( edge->getVertex1() == next && edge->getVertex2() != last ) {
- last = next;
- next = edge->getVertex2();
- break;
- }
- if( edge->getVertex2() == next && edge->getVertex1() != last ) {
- last = next;
- next = edge->getVertex1();
- break;
- }
- edge = NULL;
- }
- if( !edge ) break;
-#ifdef BOP_DEBUG
- cout << " next edge is " << edge << endl;
-#endif
- tmpface = m->getFace(edge->getFaces().front());
- if( oface1->getOriginalFace() != tmpface->getOriginalFace() )
- oface2 = tmpface;
- else
- ++facecount;
- vertList.push_back(last);
- if( vertList.size() > 3 ) break;
- if( next == first ) {
- found = true;
- break;
- }
- }
- if(found) {
- edge = *it;
-#ifdef BOP_DEBUG
- cout << " --> found a loop" << endl;
-#endif
- if( vertList.size() == 3 ) {
- BOP_Face3 *face = (BOP_Face3 *)m->getFace(edge->getFaces().front());
- face->getNeighbours(first,last,next);
- } else if( vertList.size() == 4 ) {
- BOP_Face4 *face = (BOP_Face4 *)m->getFace(edge->getFaces().front());
- face->getNeighbours(first,last,next,last);
- } else {
-#ifdef BOP_DEBUG
- cout << "loop has " << vertList.size() << "verts";
-#endif
- continue;
- }
- if(facecount == 1) oface1 = oface2;
- next = vertList[1];
- last = vertList[2];
- if( edge->getVertex2() == next ) {
- BOP_Face3 *f = new BOP_Face3(next,first,last,
- oface1->getPlane(),oface1->getOriginalFace());
- m->addFace( f );
-#ifdef BOP_DEBUG
- cout << " face is backward: " << f << endl;
-#endif
-
- } else {
- BOP_Face3 *f = new BOP_Face3(last,first,next,
- oface1->getPlane(),oface1->getOriginalFace());
- m->addFace( f );
-#ifdef BOP_DEBUG
- cout << " face is forward: " << f << endl;
-#endif
- }
- }
- }
-}
-
-/**
- * Runs through mesh and makes sure vert/face/edge data is consistent. Most
- * importantly:
- * (1) mark edges which are no longer used
- * (2) remove broken faces from edges
- * (3) remove faces from mesh which have a single edge belonging to no other
- * face (non-manifold edges)
- */
-
-void BOP_Merge2::cleanup( void )
-{
- BOP_Edges edges = m_mesh->getEdges();
- for (BOP_IT_Edges edge = edges.begin(); edge != edges.end(); ++edge) {
- BOP_Indexs faces = (*edge)->getFaces();
- for (BOP_IT_Indexs face = faces.begin(); face != faces.end(); ++face) {
- BOP_Face *f = m_mesh->getFace(*face);
- if (f->getTAG()== UNCLASSIFIED);
- else (*edge)->removeFace(*face);
- }
- if( (*edge)->getFaces().size() == 0) (*edge)->setUsed(false);
- }
-
- BOP_Vertexs v = m_mesh->getVertexs();
- for( BOP_IT_Vertexs it = v.begin(); it != v.end(); ++it ) {
- if( (*it)->getTAG() != BROKEN) {
- BOP_Indexs iedges = (*it)->getEdges();
- for(BOP_IT_Indexs i = iedges.begin();i!=iedges.end();i++)
- if( m_mesh->getEdge((*i))->getUsed( ) == false) (*it)->removeEdge( *i );
- if( (*it)->getEdges().size() == 0 ) (*it)->setTAG(BROKEN);
- }
- }
- // clean_nonmanifold( m_mesh );
-}
-
-/**
- * Simplifies a mesh, merging its faces.
- */
-bool BOP_Merge2::mergeFaces()
-{
- BOP_Indexs mergeVertices;
- BOP_Vertexs vertices = m_mesh->getVertexs();
- BOP_IT_Vertexs v = vertices.begin();
- const BOP_IT_Vertexs verticesEnd = vertices.end();
-
- // Advance to first mergeable vertex
- advance(v,m_firstVertex);
- BOP_Index pos = m_firstVertex;
-
- // Add unbroken vertices to the list
- while(v!=verticesEnd) {
- if ((*v)->getTAG() != BROKEN) {
- mergeVertices.push_back(pos);
- }
-
- v++;
- pos++;
- }
-
- // Merge faces with that vertices
- return mergeFaces(mergeVertices);
-}
-
-/**
- * remove edges from vertices when the vertex is removed
- */
-void BOP_Merge2::freeVerts(BOP_Index v, BOP_Vertex *vert)
-{
- BOP_Indexs edges = vert->getEdges();
- BOP_Vertex *other;
-
- for( BOP_IT_Indexs it = edges.begin(); it != edges.end(); ++it) {
- BOP_Edge *edge = m_mesh->getEdge(*it);
- BOP_Indexs edges2;
- if( edge->getVertex1() != v )
- other = m_mesh->getVertex( edge->getVertex1() );
- else
- other = m_mesh->getVertex( edge->getVertex2() );
- other->removeEdge(*it);
- vert->removeEdge(*it);
- }
-}
-
-/**
- * Simplifies a mesh, merging the faces with the specified vertices.
- * @param mergeVertices vertices to test
- * @return true if a face merge was performed
- */
-bool BOP_Merge2::mergeFaces(BOP_Indexs &mergeVertices)
-{
- // Check size > 0!
- if (mergeVertices.size() == 0) return false;
- bool didMerge = false;
-
- for( BOP_Index i = 0; i < mergeVertices.size(); ++i ) {
- BOP_LFaces facesByOriginalFace;
- BOP_Index v = mergeVertices[i];
- BOP_Vertex *vert = m_mesh->getVertex(v);
-#ifdef BOP_DEBUG
- cout << "i = " << i << ", v = " << v << ", vert = " << vert << endl;
- if (v==48)
- cout << "found vert 48" << endl;
-#endif
- if ( vert->getTAG() != BROKEN ) {
- getFaces(facesByOriginalFace,v);
-
- switch (facesByOriginalFace.size()) {
- case 0:
- // v has no unbroken faces (so it's a new BROKEN vertex)
- freeVerts( v, vert );
- vert->setTAG(BROKEN);
- break;
- case 2: {
-#ifdef BOP_DEBUG
- cout << "size of fBOF = " << facesByOriginalFace.size() << endl;
-#endif
- BOP_Faces ff = facesByOriginalFace.front();
- BOP_Faces fb = facesByOriginalFace.back();
- BOP_Index eindexs[2];
- int ecount = 0;
-
- // look for two edges adjacent to v which contain both ofaces
- BOP_Indexs edges = vert->getEdges();
-#ifdef BOP_DEBUG
- cout << " ff has " << ff.size() << " faces" << endl;
- cout << " fb has " << fb.size() << " faces" << endl;
- cout << " v has " << edges.size() << " edges" << endl;
-#endif
- for(BOP_IT_Indexs it = edges.begin(); it != edges.end();
- ++it ) {
- BOP_Edge *edge = m_mesh->getEdge(*it);
- BOP_Indexs faces = edge->getFaces();
-#ifdef BOP_DEBUG
- cout << " " << edge << " has " << edge->getFaces().size() << " faces" << endl;
-#endif
- if( faces.size() == 2 ) {
- BOP_Face *f0 = m_mesh->getFace(faces[0]);
- BOP_Face *f1 = m_mesh->getFace(faces[1]);
- if( f0->getOriginalFace() != f1->getOriginalFace() ) {
-#ifdef BOP_DEBUG
- cout << " " << f0 << endl;
- cout << " " << f1 << endl;
-#endif
- eindexs[ecount++] = (*it);
- }
- }
- }
- if(ecount == 2) {
-#ifdef BOP_DEBUG
- cout << " edge indexes are " << eindexs[0];
- cout << " and " << eindexs[1] << endl;
-#endif
- BOP_Edge *edge = m_mesh->getEdge(eindexs[0]);
- BOP_Index N = edge->getVertex1();
- if(N == v) N = edge->getVertex2();
-#ifdef BOP_DEBUG
- cout << " ## OK, replace "<<v<<" with "<<N << endl;
-#endif
- mergeVertex(ff , v, N );
- mergeVertex(fb , v, N );
-// now remove v and its edges
- vert->setTAG(BROKEN);
- for(BOP_IT_Indexs it = edges.begin(); it != edges.end();
- ++it ) {
- BOP_Edge *tedge = m_mesh->getEdge(*it);
- tedge->setUsed(false);
- }
- didMerge = true;
- }
-#ifdef BOP_DEBUG
- else {
- cout << " HUH: ecount was " << ecount << endl;
- }
-#endif
- }
- break;
- default:
- break;
- }
- }
- }
-
- return didMerge;
-}
-
-void BOP_Merge2::mergeVertex(BOP_Faces &faces, BOP_Index v1, BOP_Index v2)
-{
- for(BOP_IT_Faces face=faces.begin();face!=faces.end();face++) {
- if( (*face)->size() == 3)
- mergeVertex((BOP_Face3 *) *face, v1, v2);
- else
- mergeVertex((BOP_Face4 *) *face, v1, v2);
- (*face)->setTAG(BROKEN);
-#ifdef BOP_DEBUG
- cout << " breaking " << (*face) << endl;
-#endif
- }
-}
-
-/*
- * Remove a face from the mesh and from each edges's face list
- */
-
-static void deleteFace(BOP_Mesh *m, BOP_Face *face)
-{
- BOP_Index l2 = face->getVertex(0);
- BOP_Faces faces = m->getFaces();
- for(int i = face->size(); i-- ; ) {
- BOP_Indexs edges = m->getVertex(l2)->getEdges();
- BOP_Index l1 = face->getVertex(i);
- for(BOP_IT_Indexs it1 = edges.begin(); it1 != edges.end(); ++it1 ) {
- BOP_Edge *edge = m->getEdge(*it1);
- if( ( edge->getVertex1() == l1 && edge->getVertex2() == l2 ) ||
- ( edge->getVertex1() == l2 && edge->getVertex2() == l1 ) ) {
- BOP_Indexs ef = edge->getFaces();
- for(BOP_IT_Indexs it = ef.begin(); it != ef.end(); ++it ) {
- if( m->getFace(*it) == face) {
- edge->removeFace(*it);
- break;
- }
- }
- break;
- }
- }
- l2 = l1;
- }
- face->setTAG(BROKEN);
-}
-
-void BOP_Merge2::mergeVertex(BOP_Face3 *face, BOP_Index v1, BOP_Index v2)
-{
- BOP_Index next, prev;
- face->getNeighbours(v1,prev,next);
-
- // if new vertex is not already in the tri, make a new tri
- if( prev != v2 && next != v2 ) {
- m_mesh->addFace( new BOP_Face3(prev,v2,next,
- face->getPlane(),face->getOriginalFace()) );
-#ifdef BOP_DEBUG
- cout << "mv3: add " << prev << "," << v2 << "," << next << endl;
- } else {
- cout << "mv3: vertex already in tri: doing nothing" << endl;
-#endif
- }
- deleteFace(m_mesh, face);
-}
-
-void BOP_Merge2::mergeVertex(BOP_Face4 *face, BOP_Index v1, BOP_Index v2)
-{
- BOP_Index next, prev, opp;
- face->getNeighbours(v1,prev,next,opp);
-
- // if new vertex is already in the quad, replace quad with new tri
- if( prev == v2 || next == v2 ) {
- m_mesh->addFace( new BOP_Face3(prev,next,opp,
- face->getPlane(),face->getOriginalFace()) );
-#ifdef BOP_DEBUG
- cout << "mv4a: add " << prev << "," << next << "," << opp << endl;
-#endif
- }
- // otherwise make a new quad
- else {
- m_mesh->addFace( new BOP_Face4(prev,v2,next,opp,
- face->getPlane(),face->getOriginalFace()) );
-#ifdef BOP_DEBUG
- cout << "mv4b: add "<<prev<<","<<v2<<","<<next<<","<<opp<<endl;
-#endif
- }
- deleteFace(m_mesh, face);
-}
-
-// #define OLD_QUAD
-
-/**
- * Simplifies the mesh, merging the pairs of triangles that come frome the
- * same original face and define a quad.
- * @return true if a quad was added, false otherwise
- */
-bool BOP_Merge2::createQuads()
-{
-
- BOP_Faces quads;
-
- // Get mesh faces
- BOP_Faces faces = m_mesh->getFaces();
-
- // Merge mesh triangles
- const BOP_IT_Faces facesIEnd = (faces.end()-1);
- const BOP_IT_Faces facesJEnd = faces.end();
- for(BOP_IT_Faces faceI=faces.begin();faceI!=facesIEnd;faceI++) {
-#ifdef OLD_QUAD
- if ((*faceI)->getTAG() == BROKEN || (*faceI)->size() != 3) continue;
- for(BOP_IT_Faces faceJ=(faceI+1);faceJ!=facesJEnd;faceJ++) {
- if ((*faceJ)->getTAG() == BROKEN || (*faceJ)->size() != 3 ||
- (*faceJ)->getOriginalFace() != (*faceI)->getOriginalFace()) continue;
-
-
- BOP_Face *faceK = createQuad((BOP_Face3*)*faceI,(BOP_Face3*)*faceJ);
- if (faceK != NULL) {
- // Set triangles to BROKEN
- deleteFace(m_mesh, *faceI);
- deleteFace(m_mesh, *faceJ);
-#ifdef BOP_DEBUG
- cout << "createQuad: del " << *faceI << endl;
- cout << "createQuad: del " << *faceJ << endl;
- cout << "createQuad: add " << faceK << endl;
-#endif
- quads.push_back(faceK);
- break;
- }
- }
-#else
- if ((*faceI)->getTAG() == BROKEN ) continue;
- for(BOP_IT_Faces faceJ=(faceI+1);faceJ!=facesJEnd;faceJ++) {
- if ((*faceJ)->getTAG() == BROKEN ||
- (*faceJ)->getOriginalFace() != (*faceI)->getOriginalFace()) continue;
-
- BOP_Face *faceK = NULL;
- if((*faceI)->size() == 3) {
- if((*faceJ)->size() == 3)
- faceK = createQuad((BOP_Face3*)*faceI,(BOP_Face3*)*faceJ);
- else
- faceK = createQuad((BOP_Face3*)*faceI,(BOP_Face4*)*faceJ);
- } else {
- if((*faceJ)->size() == 3)
- faceK = createQuad((BOP_Face3*)*faceJ,(BOP_Face4*)*faceI);
- else
- faceK = createQuad((BOP_Face4*)*faceI,(BOP_Face4*)*faceJ);
- }
-
- if (faceK != NULL) {
- // Set triangles to BROKEN
- deleteFace(m_mesh, *faceI);
- deleteFace(m_mesh, *faceJ);
-#ifdef BOP_DEBUG
- cout << "createQuad: del " << *faceI << endl;
- cout << "createQuad: del " << *faceJ << endl;
- cout << "createQuad: add " << faceK << endl;
-#endif
- quads.push_back(faceK);
- break;
- }
- }
-#endif
- }
-
- // Add quads to mesh
- const BOP_IT_Faces quadsEnd = quads.end();
- for(BOP_IT_Faces quad=quads.begin();quad!=quadsEnd;quad++) m_mesh->addFace(*quad);
- return (quads.size() > 0);
-}
-
-/**
- * Returns a new quad (convex) from the merge of two triangles that share the
- * vertex index v.
- * @param faceI mesh triangle
- * @param faceJ mesh triangle
- * @param v vertex index shared by both triangles
- * @return a new convex quad if the merge is possible
- */
-BOP_Face* BOP_Merge2::createQuad(BOP_Face3 *faceI, BOP_Face3 *faceJ)
-{
- // Test if both triangles share a vertex index
- BOP_Index v;
- unsigned int i;
- for(i=0;i<3 ;i++) {
- v = faceI->getVertex(i);
- if( faceJ->containsVertex(v) ) break;
- }
- if (i == 3) return NULL;
-
- BOP_Face *faceK = NULL;
-
- // Get faces data
- BOP_Index prevI, nextI, prevJ, nextJ;
- faceI->getNeighbours(v,prevI,nextI);
- faceJ->getNeighbours(v,prevJ,nextJ);
- MT_Point3 vertex = m_mesh->getVertex(v)->getPoint();
- MT_Point3 vPrevI = m_mesh->getVertex(prevI)->getPoint();
- MT_Point3 vNextI = m_mesh->getVertex(nextI)->getPoint();
- MT_Point3 vPrevJ = m_mesh->getVertex(prevJ)->getPoint();
- MT_Point3 vNextJ = m_mesh->getVertex(nextJ)->getPoint();
-
- // Quad test
- if (prevI == nextJ) {
- if (!BOP_collinear(vNextI,vertex,vPrevJ) && !BOP_collinear(vNextI,vPrevI,vPrevJ) &&
- BOP_convex(vertex,vNextI,vPrevI,vPrevJ)) {
- faceK = new BOP_Face4(v,nextI,prevI,prevJ,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- BOP_Index edge;
- m_mesh->getIndexEdge(v,prevI,edge);
- m_mesh->getVertex(v)->removeEdge(edge);
- m_mesh->getVertex(prevI)->removeEdge(edge);
- }
- }
- else if (nextI == prevJ) {
- if (!BOP_collinear(vPrevI,vertex,vNextJ) && !BOP_collinear(vPrevI,vNextI,vNextJ) &&
- BOP_convex(vertex,vNextJ,vNextI,vPrevI)) {
- faceK = new BOP_Face4(v,nextJ,nextI,prevI,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- BOP_Index edge;
- m_mesh->getIndexEdge(v,nextI,edge);
- m_mesh->getVertex(v)->removeEdge(edge);
- m_mesh->getVertex(nextI)->removeEdge(edge);
- }
- }
- return faceK;
-}
-
-/**
- * Returns a new quad (convex) from the merge of two triangles that share the
- * vertex index v.
- * @param faceI mesh triangle
- * @param faceJ mesh triangle
- * @param v vertex index shared by both triangles
- * @return a new convex quad if the merge is possible
- */
-BOP_Face* BOP_Merge2::createQuad(BOP_Face3 *faceI, BOP_Face4 *faceJ)
-{
- // Test if triangle and quad share a vertex index
- BOP_Index v;
- unsigned int i;
- for(i=0;i<3 ;i++) {
- v = faceI->getVertex(i);
- if( faceJ->containsVertex(v) ) break;
- }
- if (i == 3) return NULL;
-
- BOP_Face *faceK = NULL;
-
- // Get faces data
- BOP_Index prevI, nextI, prevJ, nextJ, oppJ;
- faceI->getNeighbours(v,prevI,nextI);
- faceJ->getNeighbours(v,prevJ,nextJ,oppJ);
-
- // Quad test
- BOP_Index edge;
- if (nextI == prevJ) {
- if (prevI == nextJ) { // v is in center
- faceK = new BOP_Face3(nextJ,oppJ,prevJ,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- m_mesh->getIndexEdge(v,prevI,edge);
- m_mesh->getVertex(v)->removeEdge(edge);
- m_mesh->getVertex(prevI)->removeEdge(edge);
- m_mesh->getIndexEdge(v,nextI,edge);
- m_mesh->getVertex(v)->removeEdge(edge);
- m_mesh->getVertex(nextI)->removeEdge(edge);
- freeVerts(v, m_mesh->getVertex(v));
- } else if (prevI == oppJ) { // nextI is in center
- faceK = new BOP_Face3(v,nextJ,oppJ,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- m_mesh->getIndexEdge(v,nextI,edge);
- m_mesh->getVertex(v)->removeEdge(edge);
- m_mesh->getVertex(nextI)->removeEdge(edge);
- m_mesh->getIndexEdge(prevI,nextI,edge);
- m_mesh->getVertex(prevI)->removeEdge(edge);
- m_mesh->getVertex(nextI)->removeEdge(edge);
- freeVerts(nextI, m_mesh->getVertex(nextI));
- }
- } else if (nextI == oppJ && prevI == nextJ ) { // prevI is in center
- faceK = new BOP_Face3(prevJ,v,oppJ,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- m_mesh->getIndexEdge(v,prevI,edge);
- m_mesh->getVertex(v)->removeEdge(edge);
- m_mesh->getVertex(prevI)->removeEdge(edge);
- m_mesh->getIndexEdge(nextI,prevI,edge);
- m_mesh->getVertex(nextI)->removeEdge(edge);
- m_mesh->getVertex(prevI)->removeEdge(edge);
- freeVerts(prevI, m_mesh->getVertex(prevI));
- }
- return faceK;
-}
-
-/**
- * Returns a new quad (convex) from the merge of two triangles that share the
- * vertex index v.
- * @param faceI mesh triangle
- * @param faceJ mesh triangle
- * @param v vertex index shared by both triangles
- * @return a new convex quad if the merge is possible
- */
-BOP_Face* BOP_Merge2::createQuad(BOP_Face4 *faceI, BOP_Face4 *faceJ)
-{
- BOP_Face *faceK = NULL;
- //
- // Test if both quads share a vertex index
- //
- BOP_Index v;
- unsigned int i;
- for(i=0;i<4 ;i++) {
- v = faceI->getVertex(i);
- if( faceJ->containsVertex(v) ) break;
- }
- if (i == 3) return NULL;
-
-
- // Get faces data
- BOP_Index prevI, nextI, oppI, prevJ, nextJ, oppJ;
- faceI->getNeighbours(v,prevI,nextI,oppI);
- faceJ->getNeighbours(v,prevJ,nextJ,oppJ);
-
- // Quad test
- BOP_Index edge;
- if (nextI == prevJ) {
- if (prevI == nextJ) { // v is in center
- faceK = new BOP_Face4(nextI,oppI,nextJ,oppJ,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- m_mesh->getIndexEdge(v,prevI,edge);
- m_mesh->getVertex(v)->removeEdge(edge);
- m_mesh->getVertex(prevI)->removeEdge(edge);
- m_mesh->getIndexEdge(v,nextI,edge);
- m_mesh->getVertex(v)->removeEdge(edge);
- m_mesh->getVertex(nextI)->removeEdge(edge);
- freeVerts(v, m_mesh->getVertex(v));
- } else if (oppI == oppJ) { // nextI is in center
- faceK = new BOP_Face4(v,nextJ,oppJ,prevI,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- m_mesh->getIndexEdge(v,nextI,edge);
- m_mesh->getVertex(v)->removeEdge(edge);
- m_mesh->getVertex(nextI)->removeEdge(edge);
- m_mesh->getIndexEdge(prevI,nextI,edge);
- m_mesh->getVertex(prevI)->removeEdge(edge);
- m_mesh->getVertex(nextI)->removeEdge(edge);
- freeVerts(nextI, m_mesh->getVertex(nextI));
- }
- } else if (prevI == nextJ && oppI == oppJ) { // prevI is in center
- faceK = new BOP_Face4(v,nextI,oppJ,prevJ,faceI->getPlane(),faceI->getOriginalFace());
- faceK->setTAG(faceI->getTAG());
- m_mesh->getIndexEdge(v,prevI,edge);
- m_mesh->getVertex(v)->removeEdge(edge);
- m_mesh->getVertex(prevI)->removeEdge(edge);
- m_mesh->getIndexEdge(nextI,prevI,edge);
- m_mesh->getVertex(nextI)->removeEdge(edge);
- m_mesh->getVertex(prevI)->removeEdge(edge);
- freeVerts(prevI, m_mesh->getVertex(prevI));
- }
- return faceK;
-}
-
-/**
- * Returns if a index is inside a set of indexs.
- * @param indexs set of indexs
- * @param i index
- * @return true if the index is inside the set, false otherwise
- */
-bool BOP_Merge2::containsIndex(BOP_Indexs indexs, BOP_Index i)
-{
- const BOP_IT_Indexs indexsEnd = indexs.end();
- for(BOP_IT_Indexs it=indexs.begin();it!=indexsEnd;it++) {
- if (*it == i) return true;
- }
- return false;
-}
-
-/**
- * Creates a list of lists L1, L2, ... LN where
- * LX = mesh faces with vertex v that come from the same original face
- * @param facesByOriginalFace list of faces lists
- * @param v vertex index
- */
-void BOP_Merge2::getFaces(BOP_LFaces &facesByOriginalFace, BOP_Index v)
-{
- // Get edges with vertex v
-
- BOP_Indexs edgeIndexs = m_mesh->getVertex(v)->getEdges();
- const BOP_IT_Indexs edgeEnd = edgeIndexs.end();
- for(BOP_IT_Indexs edgeIndex = edgeIndexs.begin();edgeIndex != edgeEnd;edgeIndex++) {
- // For each edge, add its no broken faces to the output list
- BOP_Edge* edge = m_mesh->getEdge(*edgeIndex);
- BOP_Indexs faceIndexs = edge->getFaces();
- const BOP_IT_Indexs faceEnd = faceIndexs.end();
- for(BOP_IT_Indexs faceIndex=faceIndexs.begin();faceIndex!=faceEnd;faceIndex++) {
- BOP_Face* face = m_mesh->getFace(*faceIndex);
- if (face->getTAG() != BROKEN) {
- bool found = false;
- // Search if we already have created a list for the
- // faces that come from the same original face
- const BOP_IT_LFaces lfEnd = facesByOriginalFace.end();
- for(BOP_IT_LFaces facesByOriginalFaceX=facesByOriginalFace.begin();
- facesByOriginalFaceX!=lfEnd; facesByOriginalFaceX++) {
- if (((*facesByOriginalFaceX)[0])->getOriginalFace() == face->getOriginalFace()) {
- // Search that the face has not been added to the list before
- for(unsigned int i = 0;i<(*facesByOriginalFaceX).size();i++) {
- if ((*facesByOriginalFaceX)[i] == face) {
- found = true;
- break;
- }
- }
- if (!found) {
- // Add the face to the list
- if (face->getTAG()==OVERLAPPED) facesByOriginalFaceX->insert(facesByOriginalFaceX->begin(),face);
- else facesByOriginalFaceX->push_back(face);
- found = true;
- }
- break;
- }
- }
- if (!found) {
- // Create a new list and add the current face
- BOP_Faces facesByOriginalFaceX;
- facesByOriginalFaceX.push_back(face);
- facesByOriginalFace.push_back(facesByOriginalFaceX);
- }
- }
- }
- }
-}
-
-/**
- * Creates a list of lists L1, L2, ... LN where
- * LX = mesh faces with vertex v that come from the same original face
- * and without any of the vertices that appear before v in vertices
- * @param facesByOriginalFace list of faces lists
- * @param vertices vector with vertices indexs that contains v
- * @param v vertex index
- */
-void BOP_Merge2::getFaces(BOP_LFaces &facesByOriginalFace, BOP_Indexs vertices, BOP_Index v)
-{
- // Get edges with vertex v
- BOP_Indexs edgeIndexs = m_mesh->getVertex(v)->getEdges();
- const BOP_IT_Indexs edgeEnd = edgeIndexs.end();
- for(BOP_IT_Indexs edgeIndex = edgeIndexs.begin();edgeIndex != edgeEnd;edgeIndex++) {
- // Foreach edge, add its no broken faces to the output list
- BOP_Edge* edge = m_mesh->getEdge(*edgeIndex);
- BOP_Indexs faceIndexs = edge->getFaces();
- const BOP_IT_Indexs faceEnd = faceIndexs.end();
- for(BOP_IT_Indexs faceIndex=faceIndexs.begin();faceIndex!=faceEnd;faceIndex++) {
- BOP_Face* face = m_mesh->getFace(*faceIndex);
- if (face->getTAG() != BROKEN) {
- // Search if the face contains any of the forbidden vertices
- bool found = false;
- for(BOP_IT_Indexs vertex = vertices.begin();*vertex!= v;vertex++) {
- if (face->containsVertex(*vertex)) {
- // face contains a forbidden vertex!
- found = true;
- break;
- }
- }
- if (!found) {
- // Search if we already have created a list with the
- // faces that come from the same original face
- const BOP_IT_LFaces lfEnd = facesByOriginalFace.end();
- for(BOP_IT_LFaces facesByOriginalFaceX=facesByOriginalFace.begin();
- facesByOriginalFaceX!=lfEnd; facesByOriginalFaceX++) {
- if (((*facesByOriginalFaceX)[0])->getOriginalFace() == face->getOriginalFace()) {
- // Search that the face has not been added to the list before
- for(unsigned int i = 0;i<(*facesByOriginalFaceX).size();i++) {
- if ((*facesByOriginalFaceX)[i] == face) {
- found = true;
- break;
- }
- }
- if (!found) {
- // Add face to the list
- if (face->getTAG()==OVERLAPPED) facesByOriginalFaceX->insert(facesByOriginalFaceX->begin(),face);
- else facesByOriginalFaceX->push_back(face);
- found = true;
- }
- break;
- }
- }
- if (!found) {
- // Create a new list and add the current face
- BOP_Faces facesByOriginalFaceX;
- facesByOriginalFaceX.push_back(face);
- facesByOriginalFace.push_back(facesByOriginalFaceX);
- }
- }
- }
- }
- }
-}
-
-#endif /* BOP_NEW_MERGE */
diff --git a/intern/boolop/intern/BOP_Merge2.h b/intern/boolop/intern/BOP_Merge2.h
deleted file mode 100644
index 71ec0702a0b..00000000000
--- a/intern/boolop/intern/BOP_Merge2.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Merge2.h
- * \ingroup boolopintern
- */
-
-
-#ifndef __BOP_MERGE2_H__
-#define __BOP_MERGE2_H__
-
-#include "BOP_Misc.h"
-
-#ifdef BOP_NEW_MERGE
-
-#include "BOP_Mesh.h"
-#include "BOP_Tag.h"
-#include "BOP_MathUtils.h"
-#include "MEM_SmartPtr.h"
-
-typedef std::vector< BOP_Faces > BOP_LFaces;
-typedef std::vector< BOP_Faces >::iterator BOP_IT_LFaces;
-
-class BOP_Merge2 {
- private:
- BOP_Mesh* m_mesh;
- BOP_Index m_firstVertex;
- static BOP_Merge2 SINGLETON;
-
- BOP_Merge2() {};
- bool mergeFaces();
- bool mergeFaces(BOP_Indexs &mergeVertices);
- bool mergeFaces(BOP_Faces &oldFaces, BOP_Faces &newFaces, BOP_Indexs &vertices, BOP_Index v);
- bool mergeFaces(BOP_Faces &faces, BOP_Faces &oldFaces, BOP_Faces &newFaces, BOP_Indexs &vertices, BOP_Index v);
- BOP_Face *mergeFaces(BOP_Face *faceI, BOP_Face *faceJ, BOP_Index v);
- BOP_Face *mergeFaces(BOP_Face *faceI, BOP_Face *faceJ, BOP_Indexs &pending, BOP_Index v);
- BOP_Face *mergeFaces(BOP_Face3 *faceI, BOP_Face3 *faceJ, BOP_Index v);
- BOP_Face *mergeFaces(BOP_Face4 *faceI, BOP_Face3 *faceJ, BOP_Index v);
- BOP_Face *mergeFaces(BOP_Face4 *faceI, BOP_Face3 *faceJ, BOP_Indexs &pending, BOP_Index v);
- BOP_Face *mergeFaces(BOP_Face4 *faceI, BOP_Face4 *faceJ, BOP_Indexs &pending, BOP_Index v);
- bool createQuads();
- bool containsIndex(BOP_Indexs indexs, BOP_Index index);
- void getFaces(BOP_LFaces &facesByOriginalFace, BOP_Index v);
- void getFaces(BOP_LFaces &facesByOriginalFace, BOP_Indexs vertices, BOP_Index v);
- BOP_Face *createQuad(BOP_Face3 *faceI, BOP_Face3 *faceJ);
- BOP_Face *createQuad(BOP_Face3 *faceI, BOP_Face4 *faceJ);
- BOP_Face *createQuad(BOP_Face4 *faceI, BOP_Face4 *faceJ);
-
- bool mergeVertex(BOP_Face *faceI, BOP_Face *faceJ, BOP_Index v,
- BOP_Indexs &mergeVertices);
- bool mergeVertex(BOP_Face *faceI, BOP_Face *faceJ, BOP_Index v,
- BOP_Indexs &pending, BOP_Faces &oldFaces, BOP_Faces &newFaces );
- BOP_Face *find3Neighbor(BOP_Face *faceI, BOP_Face *faceJ,
- BOP_Index X, BOP_Index I, BOP_Index P, BOP_Index N );
- BOP_Face *find4Neighbor(BOP_Face *faceI, BOP_Face *faceJ,
- BOP_Index X, BOP_Index I, BOP_Index P, BOP_Index N,
- BOP_Face **faceL, BOP_Index &O);
- BOP_Face3 *collapse(BOP_Face4 *faceC, BOP_Index X);
- void mergeFaces(BOP_Face *A, BOP_Face *B, BOP_Index X,
- BOP_Index I, BOP_Index N, BOP_Index P, BOP_Faces &newFaces );
- void freeVerts(BOP_Index v, BOP_Vertex *vert);
-
- void mergeVertex(BOP_Faces&, BOP_Index, BOP_Index);
- void mergeVertex(BOP_Face3 *, BOP_Index, BOP_Index);
- void mergeVertex(BOP_Face4 *, BOP_Index, BOP_Index);
- void cleanup( void );
-
- public:
-
- static BOP_Merge2 &getInstance() {
- return SINGLETON;
- }
-
- void mergeFaces(BOP_Mesh *m, BOP_Index v);
-};
-
-void dumpmesh(BOP_Mesh *, bool);
-
-#endif /* BOP_NEW_MERGE2 */
-#endif
diff --git a/intern/boolop/intern/BOP_Mesh.cpp b/intern/boolop/intern/BOP_Mesh.cpp
deleted file mode 100644
index 673caa3e921..00000000000
--- a/intern/boolop/intern/BOP_Mesh.cpp
+++ /dev/null
@@ -1,1090 +0,0 @@
-/*
- *
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Mesh.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_Mesh.h"
-#include "BOP_MathUtils.h"
-#include <iostream>
-#include <fstream>
-
-#include "MEM_guardedalloc.h"
-#include "BLI_blenlib.h"
-
-BOP_Mesh::BOP_Mesh()
-{
-#ifdef HASH
-#ifdef HASH_PRINTF_DEBUG
- printf ("has hashing\n");
-#endif
- hash = NULL;
- hashsize = 0;
-#endif
-}
-
-/**
- * Destroys a mesh.
- */
-BOP_Mesh::~BOP_Mesh()
-{
- const BOP_IT_Vertexs vertexsEnd = m_vertexs.end();
- for(BOP_IT_Vertexs itv=m_vertexs.begin();itv!=vertexsEnd;itv++){
- delete *itv;
- }
- m_vertexs.clear();
-
- const BOP_IT_Edges edgesEnd = m_edges.end();
- for(BOP_IT_Edges ite=m_edges.begin();ite!=edgesEnd;ite++){
- delete *ite;
- }
- m_edges.clear();
-
- const BOP_IT_Faces facesEnd = m_faces.end();
- for(BOP_IT_Faces itf=m_faces.begin();itf!=facesEnd;itf++){
- delete *itf;
- }
- m_faces.clear();
-
-#ifdef HASH
- while( hashsize ) {
- --hashsize;
- BLI_freelistN( &hash[hashsize] );
- }
- MEM_freeN( hash );
- hash = NULL;
-#endif
-}
-
-/**
- * Adds a new vertex.
- * @param p vertex point
- * @return mesh vertex index
- */
-BOP_Index BOP_Mesh::addVertex(MT_Point3 p)
-{
- m_vertexs.push_back(new BOP_Vertex(p));
- return m_vertexs.size()-1;
-}
-
-/**
- * Adds a new edge.
- * @param v1 mesh vertex index
- * @param v2 mesh vertex index
- * @return mesh edge index
- */
-BOP_Index BOP_Mesh::addEdge(BOP_Index v1, BOP_Index v2)
-{
-#ifdef HASH
- /* prepare a new hash entry for the edge */
- int minv;
- EdgeEntry *h = (EdgeEntry *)MEM_callocN( sizeof( EdgeEntry ), "edgehash" );
-
- /* store sorted, smallest vert first */
- if( v1 < v2 ) {
- minv = HASH(v1);
- h->v1 = v1;
- h->v2 = v2;
- } else {
- minv = HASH(v2);
- h->v1 = v2;
- h->v2 = v1;
- }
- h->index = m_edges.size();
-
- /* if hash index larger than hash list, extend the list */
- if( minv >= hashsize ) {
- int newsize = (minv + 8) & ~7;
- ListBase *nhash = (ListBase *)MEM_mallocN(
- newsize * sizeof( ListBase ),
- "edgehashtable" );
- /* copy old entries */
- memcpy( nhash, hash, sizeof( ListBase ) * hashsize );
- /* clear new ones */
- while( hashsize < newsize ) {
- nhash[hashsize].first = nhash[hashsize].last = NULL;
- ++hashsize;
- }
- if( hash )
- MEM_freeN( hash );
- hash = nhash;
- }
-
- /* add the entry to tail of the right hash list */
- BLI_addtail( &hash[minv], h );
-#endif
- m_edges.push_back(new BOP_Edge(v1,v2));
- return m_edges.size()-1;
-}
-
-#ifdef HASH
-/**
- * replace one vertex with another in the hash list
- * @param o old mesh vertex index
- * @param n new mesh vertex index
- * @param x edge's other mesh vertex index
- */
-void BOP_Mesh::rehashVertex(BOP_Index o, BOP_Index n, BOP_Index x)
-{
- EdgeEntry *edge;
- int minv = HASH(o);
- BOP_Index v1, v2;
-
- /* figure out where and what to look for */
- if( o < x ) {
- minv = HASH(o);
- v1 = o; v2 = x;
- } else {
- minv = HASH(x);
- v1 = x; v2 = o;
- }
-
- /* if hash is valid, search for the match */
- if( minv < hashsize ) {
- for(edge = (EdgeEntry *)hash[minv].first;
- edge; edge = edge->next ) {
- if(edge->v1 == v1 && edge->v2 == v2)
- break;
- }
-
- /* NULL edge == no match */
- if(!edge) {
-#ifdef HASH_PRINTF_DEBUG
- printf ("OOPS! didn't find edge (%d %d)\n",v1,v2);
-#endif
- return;
- }
-#ifdef HASH_PRINTF_DEBUG
- printf ("found edge (%d %d)\n",v1,v2);
-#endif
- /* remove the edge from the old hash list */
- BLI_remlink( &hash[minv], edge );
-
- /* decide where the new edge should go */
- if( n < x ) {
- minv = HASH(n);
- v1 = n; v2 = x;
- } else {
- minv = HASH(x);
- edge->v1 = x; edge->v2 = n;
- }
-
- /* if necessary, extend the hash list */
- if( minv >= hashsize ) {
-#ifdef HASH_PRINTF_DEBUG
- printf ("OOPS! new vertex too large! (%d->%d)\n",o,n);
-#endif
- int newsize = (minv + 8) & ~7;
- ListBase *nhash = (ListBase *)MEM_mallocN(
- newsize * sizeof( ListBase ),
- "edgehashtable" );
- memcpy( nhash, hash, sizeof( ListBase ) * hashsize );
- while( hashsize < newsize ) {
- nhash[hashsize].first = nhash[hashsize].last = NULL;
- ++hashsize;
- }
- if( hash )
- MEM_freeN( hash );
- hash = nhash;
- }
-
- /* add the entry to tail of the right hash list */
- BLI_addtail( &hash[minv], edge );
- } else {
-#ifdef HASH_PRINTF_DEBUG
- printf ("OOPS! hash not large enough for (%d %d)\n",minv,hashsize);
-#endif
- }
-}
-#endif
-
-/**
- * Adds a new face.
- * @param face mesh face
- * @return mesh face index
- */
-BOP_Index BOP_Mesh::addFace(BOP_Face *face)
-{
- if (face->size()==3)
- return addFace((BOP_Face3 *)face);
- else
- return addFace((BOP_Face4 *)face);
-}
-
-/**
- * Adds a new triangle.
- * @param face mesh triangle
- * @return mesh face index
- */
-BOP_Index BOP_Mesh::addFace(BOP_Face3 *face)
-{
- BOP_Index indexface = m_faces.size();
-
- BOP_Index index1 = face->getVertex(0);
- BOP_Index index2 = face->getVertex(1);
- BOP_Index index3 = face->getVertex(2);
-
- m_faces.push_back((BOP_Face *)face);
-
- BOP_Index edge;
-
- if (!getIndexEdge(index1,index2,edge)) {
- edge = addEdge(index1,index2);
- getVertex(index1)->addEdge(edge);
- getVertex(index2)->addEdge(edge);
- }
-
- getEdge(edge)->addFace(indexface);
-
- if (!getIndexEdge(index2,index3,edge)) {
- edge = addEdge(index2,index3);
- getVertex(index2)->addEdge(edge);
- getVertex(index3)->addEdge(edge);
- }
-
- getEdge(edge)->addFace(indexface);
-
- if (!getIndexEdge(index3,index1,edge)) {
- edge = addEdge(index3,index1);
- getVertex(index3)->addEdge(edge);
- getVertex(index1)->addEdge(edge);
- }
-
- getEdge(edge)->addFace(indexface);
-
- if ((index1 == index2) || (index1 == index3) || (index2 == index3))
- face->setTAG(BROKEN);
-
- return indexface;
-}
-
-/**
- * Adds a new quad.
- * @param face mesh quad
- * @return mesh face index
- */
-BOP_Index BOP_Mesh::addFace(BOP_Face4 *face)
-{
- m_faces.push_back((BOP_Face *)face);
- BOP_Index indexface = m_faces.size()-1;
-
- BOP_Index index1 = face->getVertex(0);
- BOP_Index index2 = face->getVertex(1);
- BOP_Index index3 = face->getVertex(2);
- BOP_Index index4 = face->getVertex(3);
-
- BOP_Index edge;
-
- if (!getIndexEdge(index1,index2,edge)) {
- edge = addEdge(index1,index2);
- getVertex(index1)->addEdge(edge);
- getVertex(index2)->addEdge(edge);
- }
-
- getEdge(edge)->addFace(indexface);
-
- if (!getIndexEdge(index2,index3,edge)) {
- edge = addEdge(index2,index3);
- getVertex(index2)->addEdge(edge);
- getVertex(index3)->addEdge(edge);
- }
-
- getEdge(edge)->addFace(indexface);
-
- if (!getIndexEdge(index3,index4,edge)) {
- edge = addEdge(index3,index4);
- getVertex(index3)->addEdge(edge);
- getVertex(index4)->addEdge(edge);
- }
-
- getEdge(edge)->addFace(indexface);
-
- if (!getIndexEdge(index4,index1,edge)) {
- edge = addEdge(index4,index1);
- getVertex(index4)->addEdge(edge);
- getVertex(index1)->addEdge(edge);
- }
-
- getEdge(edge)->addFace(indexface);
-
- if ((index1 == index2) || (index1 == index3) || (index1 == index4) ||
- (index2 == index3) || (index2 == index4) || (index3 == index4))
- face->setTAG(BROKEN);
-
- return m_faces.size()-1;
-}
-
-/**
- * Returns if a faces set contains the specified face.
- * @param faces faces set
- * @param face face
- * @return true if the set contains the specified face
- */
-bool BOP_Mesh::containsFace(BOP_Faces *faces, BOP_Face *face)
-{
- const BOP_IT_Faces facesEnd = faces->end();
- for(BOP_IT_Faces it = faces->begin();it!=facesEnd;it++) {
- if (face == *it)
- return true;
- }
-
- return false;
-}
-/**
- * Returns the first edge with the specified vertex index from a list of edge indexs.
- * @param edges edge indexs
- * @param v vertex index
- * @return first edge with the specified vertex index, NULL otherwise
- */
-BOP_Edge* BOP_Mesh::getEdge(BOP_Indexs edges, BOP_Index v)
-{
- const BOP_IT_Indexs edgesEnd = edges.end();
- for(BOP_IT_Indexs it=edges.begin();it!=edgesEnd;it++){
- BOP_Edge *edge = m_edges[*it];
- if ((edge->getVertex1() == v) || (edge->getVertex2() == v))
- return edge;
- }
- return NULL;
-}
-
-/**
- * Returns the mesh edge with the specified vertex indexs.
- * @param v1 vertex index
- * @param v2 vertex index
- * @return mesh edge with the specified vertex indexs, NULL otherwise
- */
-BOP_Edge* BOP_Mesh::getEdge(BOP_Index v1, BOP_Index v2)
-{
-#ifdef HASH
- int minv;
- EdgeEntry *edge;
-
- /* figure out where and what to search for */
- if( v1 < v2 ) {
- minv = HASH(v1);
- } else {
- minv = HASH(v2);
- BOP_Index tmp = v1;
- v1 = v2;
- v2 = tmp;
- }
-
- /* if hash index valid, search the list and return match if found */
- if( minv < hashsize ) {
- for(edge = (EdgeEntry *)hash[minv].first;
- edge; edge = edge->next ) {
- if(edge->v1 == v1 && edge->v2 == v2)
- return m_edges[edge->index];
- }
- }
-#else
- const BOP_IT_Edges edgesEnd = m_edges.end();
- for(BOP_IT_Edges edge=m_edges.begin();edge!=edgesEnd;edge++) {
- if (((*edge)->getVertex1() == v1 && (*edge)->getVertex2() == v2) ||
- ((*edge)->getVertex1() == v2 && (*edge)->getVertex2() == v1))
- return *edge;
- }
-#endif
- return NULL;
-}
-
-/**
- * Returns the mesh edge index with the specified vertex indexs.
- * @param v1 vertex index
- * @param v2 vertex index
- * @param e edge index with the specified vertex indexs
- * @return true if there is a mesh edge with the specified vertex indexs, false otherwise
- */
-bool BOP_Mesh::getIndexEdge(BOP_Index v1, BOP_Index v2, BOP_Index &e)
-{
-#ifdef HASH
- int minv;
- EdgeEntry *edge;
-
- /* figure out what and where to look */
- if( v1 < v2 ) {
- minv = HASH(v1);
- } else {
- minv = HASH(v2);
- BOP_Index tmp = v1;
- v1 = v2;
- v2 = tmp;
- }
-
- /* if hash index is valid, look for a match */
- if( minv < hashsize ) {
- for(edge = (EdgeEntry *)hash[minv].first;
- edge; edge = edge->next ) {
- if(edge->v1 == v1 && edge->v2 == v2)
- break;
- }
-
- /* edge != NULL means match */
- if(edge) {
-#ifdef HASH_PRINTF_DEBUG
- printf ("found edge (%d %d)\n",v1,v2);
-#endif
- e = edge->index;
-#ifdef BOP_NEW_MERGE
- if( m_edges[e]->getUsed() == false ) {
- m_edges[e]->setUsed(true);
- m_vertexs[v1]->addEdge(e);
- m_vertexs[v2]->addEdge(e);
- }
-#endif
- return true;
- }
-#ifdef HASH_PRINTF_DEBUG
- else
- printf ("didn't find edge (%d %d)\n",v1,v2);
-#endif
- }
-#else
- BOP_Index pos=0;
- const BOP_IT_Edges edgesEnd = m_edges.end();
- for(BOP_IT_Edges edge=m_edges.begin();edge!=edgesEnd;edge++,pos++) {
- if (((*edge)->getVertex1() == v1 && (*edge)->getVertex2() == v2) ||
- ((*edge)->getVertex1() == v2 && (*edge)->getVertex2() == v1)){
- e = pos;
- return true;
- }
- }
-#endif
- return false;
-}
-
-/**
- * Returns the mesh edge on the specified face and relative edge index.
- * @param face mesh face
- * @param edge face relative edge index
- * @return mesh edge on the specified face and relative index, NULL otherwise
- */
-BOP_Edge* BOP_Mesh::getEdge(BOP_Face *face, unsigned int edge)
-{
- if (face->size()==3)
- return getEdge((BOP_Face3 *)face,edge);
- else
- return getEdge((BOP_Face4 *)face,edge);
-}
-
-/**
- * Returns the mesh edge on the specified triangle and relative edge index.
- * @param face mesh triangle
- * @param edge face relative edge index
- * @return mesh edge on the specified triangle and relative index, NULL otherwise
- */
-BOP_Edge* BOP_Mesh::getEdge(BOP_Face3 *face, unsigned int edge)
-{
- switch(edge){
- case 1:
- return getEdge(m_vertexs[face->getVertex(0)]->getEdges(),face->getVertex(1));
- case 2:
- return getEdge(m_vertexs[face->getVertex(1)]->getEdges(),face->getVertex(2));
- case 3:
- return getEdge(m_vertexs[face->getVertex(2)]->getEdges(),face->getVertex(0));
- };
-
- return NULL;
-}
-
-/**
- * Returns the mesh edge on the specified quad and relative edge index.
- * @param face mesh quad
- * @param edge face relative edge index
- * @return mesh edge on the specified quad and relative index, NULL otherwise
- */
-BOP_Edge * BOP_Mesh::getEdge(BOP_Face4 *face, unsigned int edge)
-{
- switch(edge){
- case 1:
- return getEdge(m_vertexs[face->getVertex(0)]->getEdges(),face->getVertex(1));
- case 2:
- return getEdge(m_vertexs[face->getVertex(1)]->getEdges(),face->getVertex(2));
- case 3:
- return getEdge(m_vertexs[face->getVertex(2)]->getEdges(),face->getVertex(3));
- case 4:
- return getEdge(m_vertexs[face->getVertex(3)]->getEdges(),face->getVertex(0));
- };
-
- return NULL;
-}
-
-/**
- * Returns the mesh face with the specified vertex indexs.
- * @param v1 vertex index
- * @param v2 vertex index
- * @param v3 vertex index
- * @return mesh edge with the specified vertex indexs, NULL otherwise
- */
-BOP_Face* BOP_Mesh::getFace(BOP_Index v1, BOP_Index v2, BOP_Index v3)
-{
- const BOP_IT_Faces facesEnd = m_faces.end();
- for(BOP_IT_Faces face=m_faces.begin();face!=facesEnd;face++) {
- if ((*face)->containsVertex(v1) && (*face)->containsVertex(v2) &&
- (*face)->containsVertex(v3))
- return (*face);
- }
- return NULL;
-}
-
-/**
- * Returns the mesh face index with the specified vertex indexs.
- * @param v1 vertex index
- * @param v2 vertex index
- * @param v3 vertex index
- * @param f face index with the specified vertex indexs
- * @return true if there is a mesh face with the specified vertex indexs, false otherwise
- */
-bool BOP_Mesh::getIndexFace(BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index &f)
-{
- BOP_Index pos=0;
- const BOP_IT_Faces facesEnd = m_faces.end();
- for(BOP_IT_Faces face=m_faces.begin();face!=facesEnd;face++,pos++) {
- if ((*face)->containsVertex(v1) && (*face)->containsVertex(v2) &&
- (*face)->containsVertex(v3)){
- f = pos;
- return true;
- }
- }
- return false;
-}
-
-/**
- * Returns the vertices set of this mesh.
- * @return vertices set
- */
-BOP_Vertexs &BOP_Mesh::getVertexs()
-{
- return m_vertexs;
-}
-
-/**
- * Returns the edges set of this mesh.
- * @return edges set
- */
-BOP_Edges &BOP_Mesh::getEdges()
-{
- return m_edges;
-}
-
-/**
- * Returns the faces set of this mesh.
- * @return faces set
- */
-BOP_Faces &BOP_Mesh::getFaces()
-{
- return m_faces;
-}
-
-/**
- * Returns the mesh vertex with the specified index.
- * @param i vertex index
- * @return vertex with the specified index
- */
-BOP_Vertex* BOP_Mesh::getVertex(BOP_Index i)
-{
- return m_vertexs[i];
-}
-
-/**
- * Returns the mesh edge with the specified index.
- * @param i edge index
- * @return edge with the specified index
- */
-BOP_Edge* BOP_Mesh::getEdge(BOP_Index i)
-{
- return m_edges[i];
-}
-
-/**
- * Returns the mesh face with the specified index.
- * @param i face index
- * @return face with the specified index
- */
-BOP_Face* BOP_Mesh::getFace(BOP_Index i)
-{
- return m_faces[i];
-}
-
-/**
- * Returns the number of vertices of this mesh.
- * @return number of vertices
- */
-unsigned int BOP_Mesh::getNumVertexs()
-{
- return m_vertexs.size();
-}
-
-/**
- * Returns the number of edges of this mesh.
- * @return number of edges
- */
-unsigned int BOP_Mesh::getNumEdges()
-{
- return m_edges.size();
-}
-
-/**
- * Returns the number of faces of this mesh.
- * @return number of faces
- */
-unsigned int BOP_Mesh::getNumFaces()
-{
- return m_faces.size();
-}
-
-/**
- * Returns the number of vertices of this mesh with the specified tag.
- * @return number of vertices with the specified tag
- */
-unsigned int BOP_Mesh::getNumVertexs(BOP_TAG tag)
-{
- unsigned int count = 0;
- const BOP_IT_Vertexs vertexsEnd = m_vertexs.end();
- for(BOP_IT_Vertexs vertex=m_vertexs.begin();vertex!=vertexsEnd;vertex++) {
- if ((*vertex)->getTAG() == tag) count++;
- }
- return count;
-}
-/**
- * Returns the number of faces of this mesh with the specified tag.
- * @return number of faces with the specified tag
- */
-unsigned int BOP_Mesh::getNumFaces(BOP_TAG tag)
-{
- unsigned int count = 0;
- const BOP_IT_Faces facesEnd = m_faces.end();
- for(BOP_IT_Faces face=m_faces.begin();face!=facesEnd;face++) {
- if ((*face)->getTAG() == tag) count++;
- }
- return count;
-}
-
-/**
- * Marks faces which bad edges as BROKEN (invalid face, no further processing).
- * @param edge edge which is being replaced
- * @param mesh mesh containing faces
- */
-
-static void removeBrokenFaces( BOP_Edge *edge, BOP_Mesh *mesh )
-{
- BOP_Faces m_faces = mesh->getFaces();
-
- BOP_Indexs edgeFaces = edge->getFaces();
- const BOP_IT_Indexs edgeFacesEnd = edgeFaces.end();
- for(BOP_IT_Indexs idxFace=edgeFaces.begin();idxFace!=edgeFacesEnd;
- idxFace++)
- m_faces[*idxFace]->setTAG(BROKEN);
-}
-
-/**
- * Replaces a vertex index.
- * @param oldIndex old vertex index
- * @param newIndex new vertex index
- */
-BOP_Index BOP_Mesh::replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex)
-{
- BOP_IT_Indexs oldEdgeIndex;
- if (oldIndex==newIndex) return newIndex;
-
- // Update faces, edges and vertices
- BOP_Vertex *oldVertex = m_vertexs[oldIndex];
- BOP_Vertex *newVertex = m_vertexs[newIndex];
- BOP_Indexs oldEdges = oldVertex->getEdges();
-
- // Update faces to the newIndex
- BOP_IT_Indexs oldEdgesEnd = oldEdges.end();
- for(oldEdgeIndex=oldEdges.begin();oldEdgeIndex!=oldEdgesEnd;
- oldEdgeIndex++) {
- BOP_Edge *edge = m_edges[*oldEdgeIndex];
- if ((edge->getVertex1()==oldIndex && edge->getVertex2()==newIndex) ||
- (edge->getVertex2()==oldIndex && edge->getVertex1()==newIndex)) {
- // Remove old edge ==> set edge faces to BROKEN
- removeBrokenFaces( edge, this );
- oldVertex->removeEdge(*oldEdgeIndex);
- newVertex->removeEdge(*oldEdgeIndex);
- }
- else {
- BOP_Indexs faces = edge->getFaces();
- const BOP_IT_Indexs facesEnd = faces.end();
- for(BOP_IT_Indexs face=faces.begin();face!=facesEnd;face++) {
- if (m_faces[*face]->getTAG()!=BROKEN)
- m_faces[*face]->replaceVertexIndex(oldIndex,newIndex);
- }
- }
- }
-
- oldEdgesEnd = oldEdges.end();
- for(oldEdgeIndex=oldEdges.begin();oldEdgeIndex!=oldEdgesEnd;
- oldEdgeIndex++) {
- BOP_Edge * edge = m_edges[*oldEdgeIndex];
- BOP_Edge * edge2;
- BOP_Index v1 = edge->getVertex1();
-
- v1 = (v1==oldIndex?edge->getVertex2():v1);
- if ((edge2 = getEdge(newIndex,v1)) == NULL) {
- edge->replaceVertexIndex(oldIndex,newIndex);
- if ( edge->getVertex1() == edge->getVertex2() ) {
- removeBrokenFaces( edge, this );
- oldVertex->removeEdge(*oldEdgeIndex);
- }
-#ifdef HASH
- rehashVertex(oldIndex,newIndex,v1);
-#endif
- newVertex->addEdge(*oldEdgeIndex);
- }
- else {
- BOP_Indexs faces = edge->getFaces();
- const BOP_IT_Indexs facesEnd = faces.end();
- for(BOP_IT_Indexs f=faces.begin();f!=facesEnd;f++) {
- if (m_faces[*f]->getTAG()!=BROKEN)
- edge2->addFace(*f);
- }
- BOP_Vertex *oppositeVertex = m_vertexs[v1];
- oppositeVertex->removeEdge(*oldEdgeIndex);
- edge->replaceVertexIndex(oldIndex,newIndex);
- if ( edge->getVertex1() == edge->getVertex2() ) {
- removeBrokenFaces( edge, this );
- oldVertex->removeEdge(*oldEdgeIndex);
- newVertex->removeEdge(*oldEdgeIndex);
- }
-#ifdef HASH
- rehashVertex(oldIndex,newIndex,v1);
-#endif
- }
- }
- oldVertex->setTAG(BROKEN);
-
- return newIndex;
-}
-
-bool BOP_Mesh::isClosedMesh()
-{
- for(unsigned int i=0; i<m_edges.size(); i++) {
- BOP_Edge *edge = m_edges[i];
- BOP_Indexs faces = edge->getFaces();
- unsigned int count = 0;
- const BOP_IT_Indexs facesEnd = faces.end();
- for(BOP_IT_Indexs it = faces.begin();it!=facesEnd;it++) {
- if (m_faces[*it]->getTAG()!=BROKEN)
- count++;
- }
-
- if ((count%2)!=0) return false;
- }
-
- return true;
-}
-
-
-#ifdef BOP_DEBUG
-/******************************************************************************
- * DEBUG METHODS *
- * This functions are used to test the mesh state and debug program errors. *
- ******************************************************************************/
-
-/**
- * print
- */
-void BOP_Mesh::print()
-{
- unsigned int i;
- cout << "--Faces--" << endl;
- for(i=0;i<m_faces.size();i++){
- cout << "Face " << i << ": " << m_faces[i] << endl;
- }
-
- cout << "--Vertices--" << endl;
- for(i=0;i<m_vertexs.size();i++){
- cout << "Point " << i << ": " << m_vertexs[i]->getPoint() << endl;
- }
-}
-
-/**
- * printFormat
- */
-void BOP_Mesh::printFormat(BOP_Faces *faces)
-{
- if (faces->size()) {
- for(unsigned int it=1;it<faces->size();it++) {
- if ((*faces)[it]->getTAG()!=BROKEN) {
- cout << m_vertexs[(*faces)[it]->getVertex(0)]->getPoint() << " ";
- cout << m_vertexs[(*faces)[it]->getVertex(1)]->getPoint() << " ";
- cout << m_vertexs[(*faces)[it]->getVertex(2)]->getPoint() << endl;
- }
- }
- }
-}
-
-/**
- * saveFormat
- */
-void BOP_Mesh::saveFormat(BOP_Faces *faces,char *filename)
-{
- ofstream fout(filename);
-
- if (!fout.is_open()) {
- cerr << "BOP_Mesh::saveFormat Error: Could not create file." << endl;
- return;
- }
-
- unsigned int count = 0;
- if (faces->size()) {
- for(unsigned int it=0;it<faces->size();it++) {
- if ((*faces)[it]->getTAG()!=BROKEN) {
- count++;
- }
- }
- }
-
- fout << count << endl;
- if (faces->size()) {
- for(unsigned int it=0;it<faces->size();it++) {
- if ((*faces)[it]->getTAG()!=BROKEN){
- fout << m_vertexs[(*faces)[it]->getVertex(0)]->getPoint() << " ";
- fout << m_vertexs[(*faces)[it]->getVertex(1)]->getPoint() << " ";
- fout << m_vertexs[(*faces)[it]->getVertex(2)]->getPoint() << endl;
- }
- }
- }
-
- fout.close();
-}
-
-/**
- * printFormat
- */
-void BOP_Mesh::printFormat()
-{
- cout << "--Vertices--" << endl;
- if (m_vertexs.size()>0) {
- cout << "{" << m_vertexs[0]->getPoint().x() << ",";
- cout << m_vertexs[0]->getPoint().y() << ",";
- cout << m_vertexs[0]->getPoint().z() << "}";
- for(unsigned int i=1;i<m_vertexs.size();i++) {
- cout << ",{" << m_vertexs[i]->getPoint().x() << ",";
- cout << m_vertexs[i]->getPoint().y() << ",";
- cout << m_vertexs[i]->getPoint().z() << "}";
- }
- cout << endl;
- }
-
- cout << "--Faces--" << endl;
- if (m_faces.size()>0) {
- cout << "{" << m_faces[0]->getVertex(0) << ",";
- cout << m_faces[0]->getVertex(1) << "," << m_faces[0]->getVertex(2) << "}";
- for(unsigned int i=1;i<m_faces.size();i++) {
- cout << ",{" << m_faces[i]->getVertex(0) << ",";
- cout << m_faces[i]->getVertex(1) << "," << m_faces[i]->getVertex(2) << "}";
- }
- cout << endl;
- }
-}
-
-/**
- * printFace
- */
-void BOP_Mesh::printFace(BOP_Face *face, int col)
-{
- cout << "--Face" << endl;
- cout << m_vertexs[face->getVertex(0)]->getPoint();
- cout << " " << m_vertexs[face->getVertex(1)]->getPoint();
- cout << " " << m_vertexs[face->getVertex(2)]->getPoint();
- if (face->size()==4)
- cout << " " << m_vertexs[face->getVertex(3)]->getPoint();
- cout << " " << col << endl;
-}
-
-/**
- * testMesh
- */
-void BOP_Mesh::testMesh()
-{
-
- BOP_Face* cares[10];
- unsigned int nedges=0,i;
- for(i=0;i<m_edges.size();i++) {
- BOP_Edge *edge = m_edges[i];
- BOP_Indexs faces = edge->getFaces();
- unsigned int count = 0;
- const BOP_IT_Indexs facesEnd = faces.end();
- for(BOP_IT_Indexs it = faces.begin();it!=facesEnd;it++) {
- if (m_faces[*it]->getTAG()!=BROKEN) {
- cares[count] = m_faces[*it];
- count++;
-
- }
- }
-
- if ((count%2)!=0) nedges++;
- }
- if (nedges)
- cout << nedges << " wrong edges." << endl;
- else
- cout << "well edges." << endl;
-
- unsigned int duplFaces = 0;
- unsigned int wrongFaces = 0;
- for(i=0;i<m_faces.size();i++){
- BOP_Face *faceI = m_faces[i];
- if (faceI->getTAG()==BROKEN)
- continue;
-
- if (testFace(faceI)){
- wrongFaces++;
- cout << "Wrong Face: " << faceI << endl;
- }
-
- for(unsigned int j=i+1;j<m_faces.size();j++){
- BOP_Face *faceJ = m_faces[j];
-
- if (faceJ->getTAG()==BROKEN)
- continue;
-
- if (testFaces(faceI,faceJ)){
- duplFaces++;
- cout << "Duplicate FaceI: " << faceI << endl;
- cout << "Duplicate FaceJ: " << faceJ << endl;
- }
- }
- }
-
- cout << duplFaces << " duplicate faces." << endl;
- cout << wrongFaces << " wrong faces." << endl;
-}
-
-/**
- * testFace
- */
-bool BOP_Mesh::testFace(BOP_Face *face){
-
- for(unsigned int i=0;i<face->size();i++){
- for(unsigned int j=i+1;j<face->size();j++){
- if (face->getVertex(i)==face->getVertex(j))
- return true;
- }
- }
-
- return false;
-}
-
-/**
- * testFaces
- */
-bool BOP_Mesh::testFaces(BOP_Face *faceI, BOP_Face *faceJ){
-
- if (faceI->size()<faceJ->size()){
- for(unsigned int i=0;i<faceI->size();i++){
- if (!faceJ->containsVertex(faceI->getVertex(i)))
- return false;
- }
- //faceI->setTAG(BROKEN);
- }
- else{
- for(unsigned int i=0;i<faceJ->size();i++){
- if (!faceI->containsVertex(faceJ->getVertex(i)))
- return false;
- }
- //faceJ->setTAG(BROKEN);
- }
-
- return true;
-}
-
-/**
- * testPlane
- */
-void BOP_Mesh::testPlane(BOP_Face *face)
-{
- MT_Plane3 plane1(m_vertexs[face->getVertex(0)]->getPoint(),
- m_vertexs[face->getVertex(1)]->getPoint(),
- m_vertexs[face->getVertex(2)]->getPoint());
-
- if (BOP_orientation(plane1,face->getPlane()) < 0) {
- cout << "Test Plane " << face << " v1: ";
- cout << m_vertexs[face->getVertex(0)]->getPoint() << " v2: ";
- cout << m_vertexs[face->getVertex(1)]->getPoint() << " v3: ";
- cout << m_vertexs[face->getVertex(2)]->getPoint() << " plane: ";
- cout << face->getPlane() << endl;
- cout << "Incorrect vertices order!!! plane1: " << plane1 << " (";
- cout << BOP_orientation(plane1,face->getPlane()) << ") " << " invert ";
- cout << MT_Plane3(m_vertexs[face->getVertex(2)]->getPoint(),
- m_vertexs[face->getVertex(1)]->getPoint(),
- m_vertexs[face->getVertex(0)]->getPoint()) << endl;
- if (BOP_collinear(m_vertexs[face->getVertex(0)]->getPoint(),
- m_vertexs[face->getVertex(1)]->getPoint(),
- m_vertexs[face->getVertex(2)]->getPoint())) {
- cout << " COLLINEAR!!!" << endl;
- }
- else {
- cout << endl;
- }
- }
-}
-
-/**
- * testEdges
- */
-bool BOP_Mesh::testEdges(BOP_Faces *facesObj)
-{
- for(unsigned int i=0;i<m_edges.size();i++) {
- BOP_Edge *edge = m_edges[i];
- BOP_Indexs faces = edge->getFaces();
- unsigned int count = 0;
- const BOP_IT_Indexs facesEnd = faces.end();
- for(BOP_IT_Indexs it = faces.begin();it!=facesEnd;it++) {
- if ((m_faces[*it]->getTAG()!=BROKEN) && containsFace(facesObj,m_faces[*it]))
- count++;
- }
- if ((count%2)!=0) {
- return false;
- }
- }
-
- return true;
-}
-
-/**
- * updatePlanes
- */
-void BOP_Mesh::updatePlanes()
-{
- const BOP_IT_Faces facesEnd = m_faces.end();
- for(BOP_IT_Faces it = m_faces.begin();it!=facesEnd;it++) {
- BOP_Face *face = *it;
- MT_Plane3 plane(m_vertexs[face->getVertex(0)]->getPoint(),
- m_vertexs[face->getVertex(1)]->getPoint(),
- m_vertexs[face->getVertex(2)]->getPoint());
- face->setPlane(plane);
- }
-}
-
-#endif
diff --git a/intern/boolop/intern/BOP_Mesh.h b/intern/boolop/intern/BOP_Mesh.h
deleted file mode 100644
index 9c1b4ad04ea..00000000000
--- a/intern/boolop/intern/BOP_Mesh.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- *
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Mesh.h
- * \ingroup boolopintern
- */
-
-
-#ifndef __BOP_MESH_H__
-#define __BOP_MESH_H__
-
-#include "BOP_Vertex.h"
-#include "BOP_Edge.h"
-#include "BOP_Face.h"
-#include "DNA_listBase.h"
-
-typedef std::vector<BOP_Vertex *> BOP_Vertexs;
-typedef std::vector<BOP_Edge *> BOP_Edges;
-typedef std::vector<BOP_Vertex *>::iterator BOP_IT_Vertexs;
-typedef std::vector<BOP_Edge *>::iterator BOP_IT_Edges;
-
-#ifdef HASH
-typedef struct EdgeEntry {
- struct EdgeEntry *next, *pref;
- BOP_Index v1, v2, index;
-} EdgeEntry;
-#endif
-
-class BOP_Mesh
-{
-private:
- BOP_Vertexs m_vertexs;
- BOP_Edges m_edges;
- BOP_Faces m_faces;
-#ifdef HASH
- ListBase *hash;
- int hashsize;
-#endif
-
- BOP_Index addEdge(BOP_Index v1, BOP_Index v2);
- BOP_Edge *getEdge(BOP_Indexs edges, BOP_Index v2);
- bool containsFace(BOP_Faces *faces, BOP_Face *face);
-
- bool testEdges(BOP_Faces *faces);
- bool testFaces(BOP_Face *faceI, BOP_Face *faceJ);
- bool testFace(BOP_Face *face);
-
-public:
- BOP_Mesh();
- ~BOP_Mesh();
-
- BOP_Index addVertex(MT_Point3 point);
- BOP_Index addFace(BOP_Face *face);
- BOP_Index addFace(BOP_Face3 *face);
- BOP_Index addFace(BOP_Face4 *face);
- BOP_Vertex* getVertex(BOP_Index v);
- BOP_Face*getFace(BOP_Index v);
- BOP_Edge* getEdge(BOP_Index v);
- BOP_Edge* getEdge(BOP_Face * face, unsigned int edge);
- BOP_Edge* getEdge(BOP_Face3 * face, unsigned int edge);
- BOP_Edge* getEdge(BOP_Face4 * face, unsigned int edge);
- BOP_Edge* getEdge(BOP_Index v1, BOP_Index v2);
- bool getIndexEdge(BOP_Index v1, BOP_Index v2, BOP_Index &e);
- BOP_Vertexs &getVertexs();
- BOP_Edges &getEdges();
- BOP_Faces &getFaces();
- BOP_Face* getFace(BOP_Index v1, BOP_Index v2, BOP_Index v3);
- bool getIndexFace(BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index &f);
- unsigned int getNumVertexs();
- unsigned int getNumEdges();
- unsigned int getNumFaces();
- unsigned int getNumVertexs(BOP_TAG tag);
- unsigned int getNumFaces(BOP_TAG tag);
- BOP_Index replaceVertexIndex(BOP_Index oldIndex, BOP_Index newIndex);
-#ifdef HASH
- void rehashVertex(BOP_Index oldIndex, BOP_Index newIndex,
- BOP_Index otherIndex);
-#endif
- bool isClosedMesh();
-
- // Debug functions
- void print();
- void printFormat();
- void printFormat(BOP_Faces *faces);
- void saveFormat(BOP_Faces *faces, char *filename);
- void printFace(BOP_Face *face, int col = 0);
- void testPlane(BOP_Face *face);
- void testMesh();
- void updatePlanes();
-};
-
-#endif
diff --git a/intern/boolop/intern/BOP_Misc.h b/intern/boolop/intern/BOP_Misc.h
deleted file mode 100644
index 4a808771df2..00000000000
--- a/intern/boolop/intern/BOP_Misc.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): Ken Hughes
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Misc.h
- * \ingroup boolopintern
- */
-
-
-/*
- * This file contains various definitions used across the modules
- */
-
-/*
- * define operator>> for faces, edges and vertices, and also add some
- * debugging functions for displaying various internal data structures
- */
-
-// #define BOP_DEBUG
-
-#define HASH(x) ((x) >> 5) /* each "hash" covers 32 indices */
-// #define HASH_PRINTF_DEBUG /* uncomment to enable debug output */
-
-/*
- * temporary: control which method is used to merge final triangles and
- * quads back together after an operation. If both methods are included,
- * the "rt" debugging button on the Scene panel (F10) is used to control
- * which is active. Setting it to 100 enables the original method, any
- * other value enables the new method.
- */
-
-#define BOP_ORIG_MERGE /* include original merge code */
-#define BOP_NEW_MERGE /* include new merge code */
diff --git a/intern/boolop/intern/BOP_Segment.cpp b/intern/boolop/intern/BOP_Segment.cpp
deleted file mode 100644
index 79e04380015..00000000000
--- a/intern/boolop/intern/BOP_Segment.cpp
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Segment.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_Segment.h"
-
-#define UNDEFINED 0
-
-/**
- * Constructs a new segment.
- */
-BOP_Segment::BOP_Segment(){
- m_cfg1 = UNDEFINED;
- m_cfg2 = UNDEFINED;
-}
-
-/**
- * Returns the relative edge index between two relative vertex indices.
- * @param v1 relative vertex index
- * @param v2 relative vertex index
- * @return relative edge index between two relative vertex indices, -1 otherwise
- */
-int BOP_Segment::getEdgeBetween(unsigned int v1, unsigned int v2)
-{
- if ((v1 == 1 && v2 == 2) || (v1 == 2 && v2 == 1)) return 1;
- if ((v1 == 3 && v2 == 2) || (v1 == 2 && v2 == 3)) return 2;
- if ((v1 == 1 && v2 == 3) || (v1 == 3 && v2 == 1)) return 3;
- return -1;
-}
-
-/**
- * Returns if a relative vertex index is on a relative edge index.
- * @param v relative vertex index
- * @param e relative edge index
- * @return true if the relative vertex index is on the relative edge index,
- * false otherwise.
- */
-bool BOP_Segment::isOnEdge(unsigned int v, unsigned int e)
-{
- if (v == 1 && (e == 1 || e == 3)) return true;
- if (v == 2 && (e == 1 || e == 2)) return true;
- if (v == 3 && (e == 2 || e == 3)) return true;
- return false;
-}
-
-/**
- * Inverts the segment, swapping ends data.
- */
-void BOP_Segment::invert()
-{
- BOP_Index aux = m_v1;
- m_v1 = m_v2;
- m_v2 = aux;
- aux = m_cfg1;
- m_cfg1 = m_cfg2;
- m_cfg2 = aux;
-}
-
-/**
- * Sorts the segment according to ends configuration.
- * The criterion to sort is ...
- *
- * UNDEFINED < VERTEX < EDGE < IN
- * cfg1 > cfg2
- *
- * so ...
- *
- * VERTEX(cfg1) => UNDEFINED(cfg2) || VERTEX(cfg2)
- * EDGE(cfg1) => UNDEFINED(cfg2) || VERTEX(cfg2) || EDGE(cfg2)
- * IN(cfg1) => UNDEFINED(cfg2) || VERTEX(cfg2) || EDGE(cfg2) || IN(cfg2)
- */
-void BOP_Segment::sort()
-{
- if (m_cfg1 < m_cfg2) invert();
-}
-
-/**
- * Returns if the specified end segment configuration is IN.
- * @return true if the specified end segment configuration is IN, false otherwise
- */
-bool BOP_Segment::isIn(unsigned int cfg)
-{
- return (cfg == 20);
-}
-
-/**
- * Returns if the specified end segment configuration is EDGE.
- * @return true if the specified end segment configuration is EDGE, false otherwise
- */
-bool BOP_Segment::isEdge(unsigned int cfg)
-{
- return (cfg > 10) && (cfg < 20);
-}
-
-/**
- * Returns if the specified end segment configuration is VERTEX.
- * @return true if the specified end segment configuration is VERTEX, false otherwise
- */
-bool BOP_Segment::isVertex(unsigned int cfg)
-{
- return (cfg!=UNDEFINED) && (cfg < 10);
-}
-
-/**
- * Returns if the specified end segment configuration is DEFINED (not UNDEFINED).
- * @return true if the specified end segment configuration is DEFINED, false otherwise
- */
-bool BOP_Segment::isDefined(unsigned int cfg)
-{
- return (cfg != UNDEFINED);
-}
-
-/**
- * Returns if the specified end segment configuration is UNDEFINED.
- * @return true if the specified end segment configuration is UNDEFINED, false otherwise
- */
-bool BOP_Segment::isUndefined(unsigned int cfg)
-{
- return (cfg == UNDEFINED);
-}
-
-/**
- * Returns the relative edge index from the specified end segment configuration.
- * @return relative edge index from the specified end segment configuration
- */
-unsigned int BOP_Segment::getEdge(unsigned int cfg)
-{
- return cfg-10;
-}
-
-/**
- * Returns the relative vertex index from the specified end segment configuration.
- * @return relative vertex index from the specified end segment configuration
- */
-BOP_Index BOP_Segment::getVertex(unsigned int cfg)
-{
- return cfg;
-}
-
-/**
- * Returns the end segment configuration for the specified relative edge index.
- * @return end segment configuration for the specified relative edge index
- */
-unsigned int BOP_Segment::createEdgeCfg(unsigned int edge)
-{
- return 10+edge;
-}
-
-/**
- * Returns the end segment configuration for the specified relative vertex index.
- * @return end segment configuration for the specified relative vertex index
- */
-unsigned int BOP_Segment::createVertexCfg(BOP_Index vertex)
-{
- return vertex;
-}
-
-/**
- * Returns the end segment IN configuration.
- * @return end segment IN configuration
- */
-unsigned int BOP_Segment::createInCfg()
-{
- return 20;
-}
-
-/**
- * Returns the end segment UNDEFINED configuration.
- * @return end segment UNDEFINED configuration
- */
-unsigned int BOP_Segment::createUndefinedCfg()
-{
- return UNDEFINED;
-}
-
-/**
- * Returns the inner segment configuration.
- * @return inner segment configuration
- */
-unsigned int BOP_Segment::getConfig()
-{
- if (isUndefined(m_cfg1)) return m_cfg2;
- else if (isUndefined(m_cfg2)) return m_cfg1;
- else if (isVertex(m_cfg1)) {
- // v1 is vertex
- if (isVertex(m_cfg2)) {
- // v2 is vertex
- return createEdgeCfg(getEdgeBetween(getVertex(m_cfg1),getVertex(m_cfg2)));
- }
- else if (isEdge(m_cfg2)) {
- // v2 is edge
- if (isOnEdge(m_cfg1,getEdge(m_cfg2))) return m_cfg2;
- else return createInCfg(); //IN
- }
- else return createInCfg(); //IN
- }
- else if (isEdge(m_cfg1)) {
- // v1 is edge
- if (isVertex(m_cfg2)) {
- // v2 is vertex
- if (isOnEdge(m_cfg2,getEdge(m_cfg1))) return m_cfg1;
- else return createInCfg(); //IN
- }
- else if (isEdge(m_cfg2)) {
- // v2 is edge
- if (m_cfg1 == m_cfg2) return m_cfg1;
- else return createInCfg(); // IN
- }
- else return createInCfg(); // IN
- }
- else return createInCfg(); // IN
-}
-
-/**
- * Implements operator <<
- */
-std::ostream &operator<<(std::ostream &stream, const BOP_Segment &c)
-{
- std::cout << "m_v1: " << c.m_v1 << "(" << c.m_cfg1 << ") m_v2: " << c.m_v2 << "(" << c.m_cfg2 << ")";
- return stream;
-}
diff --git a/intern/boolop/intern/BOP_Segment.h b/intern/boolop/intern/BOP_Segment.h
deleted file mode 100644
index 5a49ae844c4..00000000000
--- a/intern/boolop/intern/BOP_Segment.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Segment.h
- * \ingroup boolopintern
- */
-
-
-#ifndef __BOP_SEGMENT_H__
-#define __BOP_SEGMENT_H__
-
-#include "BOP_Indexs.h"
-#include <iostream>
-
-class BOP_Segment
-{
-private:
- int getEdgeBetween(unsigned int v1, unsigned int v2);
- bool isOnEdge(unsigned int v, unsigned int e);
-
-public:
- // Cfg : Configuration of the vertices
- // Values:
- // 20 IN,
- // 1X Intersected edge X{1,2,3} of the face,
- // 0X Coincident vertice X{1,2,3} of the face,
- // 0 otherwise
- unsigned int m_cfg1, m_cfg2;
- BOP_Index m_v1, m_v2; // if cfgX >0, vX is the vertice index of the face
- BOP_Segment();
-
- static bool isIn(unsigned int cfg);
- static bool isEdge(unsigned int cfg);
- static bool isVertex(unsigned int cfg);
- static bool isDefined(unsigned int cfg);
- static bool isUndefined(unsigned int cfg);
- static unsigned int getEdge(unsigned int cfg);
- static BOP_Index getVertex(unsigned int cfg);
- static unsigned int createEdgeCfg(unsigned int edge);
- static unsigned int createVertexCfg(BOP_Index vertex);
- static unsigned int createInCfg();
- static unsigned int createUndefinedCfg();
- void invert();
- void sort();
- unsigned int getConfig();
-
- friend std::ostream &operator<<(std::ostream &stream, const BOP_Segment &c);
-};
-
-#endif
diff --git a/intern/boolop/intern/BOP_Splitter.cpp b/intern/boolop/intern/BOP_Splitter.cpp
deleted file mode 100644
index 0839b6af30b..00000000000
--- a/intern/boolop/intern/BOP_Splitter.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Splitter.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_Splitter.h"
-#include "BOP_Tag.h"
-
-#include <iostream>
-
-/**
- * Returns the split point resulting from intersect a plane and a mesh face
- * according to its specified relative edge.
- * @param plane split plane
- * @param m mesh
- * @param f face
- * @param e relative edge index
- * @return intersection point
- */
-MT_Point3 BOP_splitEdge(MT_Plane3 plane, BOP_Mesh *m, BOP_Face *f, unsigned int e)
-{
- int v1 = -1, v2 = -1;
-
- switch(e) {
- case 1:
- v1 = f->getVertex(0);
- v2 = f->getVertex(1);
- break;
- case 2:
- v1 = f->getVertex(1);
- v2 = f->getVertex(2);
- break;
- case 3:
- v1 = f->getVertex(2);
- v2 = f->getVertex(0);
- break;
- default:
- // wrong relative edge index!
- break;
- }
-
- MT_Point3 p1 = m->getVertex(v1)->getPoint();
- MT_Point3 p2 = m->getVertex(v2)->getPoint();
- return BOP_intersectPlane(plane,p1,p2);
-}
-
-/**
- * Returns the segment resulting from intersect a plane and a mesh face.
- * @param plane split plane
- * @param m mesh
- * @param f face
- * @return segment if there is intersection, NULL otherwise
- */
-BOP_Segment BOP_splitFace(MT_Plane3 plane, BOP_Mesh *m, BOP_Face *f)
-{
- BOP_Vertex *v1 = m->getVertex(f->getVertex(0));
- BOP_Vertex *v2 = m->getVertex(f->getVertex(1));
- BOP_Vertex *v3 = m->getVertex(f->getVertex(2));
-
- // Classify face vertices
- BOP_TAG tag1 = BOP_createTAG(BOP_classify(v1->getPoint(),plane));
- BOP_TAG tag2 = BOP_createTAG(BOP_classify(v2->getPoint(),plane));
- BOP_TAG tag3 = BOP_createTAG(BOP_classify(v3->getPoint(),plane));
-
- // Classify face according to its vertices classification
- BOP_TAG tag = BOP_createTAG(tag1,tag2,tag3);
-
- BOP_Segment s;
-
- switch(tag) {
- case IN_IN_IN :
- case OUT_OUT_OUT :
- case ON_ON_ON :
- s.m_cfg1 = s.m_cfg2 = BOP_Segment::createUndefinedCfg();
- break;
-
- case ON_OUT_OUT :
- case ON_IN_IN :
- s.m_v1 = f->getVertex(0);
- s.m_cfg1 = BOP_Segment::createVertexCfg(1);
- s.m_cfg2 = BOP_Segment::createUndefinedCfg();
- break;
-
- case OUT_ON_OUT :
- case IN_ON_IN :
- s.m_v1 = f->getVertex(1);
- s.m_cfg1 = BOP_Segment::createVertexCfg(2);
- s.m_cfg2 = BOP_Segment::createUndefinedCfg();
- break;
-
- case OUT_OUT_ON :
- case IN_IN_ON :
- s.m_v1 = f->getVertex(2);
- s.m_cfg1 = BOP_Segment::createVertexCfg(3);
- s.m_cfg2 = BOP_Segment::createUndefinedCfg();
- break;
-
- case ON_ON_IN :
- case ON_ON_OUT :
- s.m_v1 = f->getVertex(0);
- s.m_v2 = f->getVertex(1);
- s.m_cfg1 = BOP_Segment::createVertexCfg(1);
- s.m_cfg2 = BOP_Segment::createVertexCfg(2);
- break;
-
- case ON_OUT_ON :
- case ON_IN_ON :
- s.m_v1 = f->getVertex(0);
- s.m_v2 = f->getVertex(2);
- s.m_cfg1 = BOP_Segment::createVertexCfg(1);
- s.m_cfg2 = BOP_Segment::createVertexCfg(3);
- break;
-
- case OUT_ON_ON :
- case IN_ON_ON :
- s.m_v1 = f->getVertex(1);
- s.m_v2 = f->getVertex(2);
- s.m_cfg1 = BOP_Segment::createVertexCfg(2);
- s.m_cfg2 = BOP_Segment::createVertexCfg(3);
- break;
-
- case IN_OUT_ON :
- case OUT_IN_ON :
- s.m_v2 = f->getVertex(2);
- s.m_cfg1 = BOP_Segment::createEdgeCfg(1);
- s.m_cfg2 = BOP_Segment::createVertexCfg(3);
- break;
-
- case IN_ON_OUT :
- case OUT_ON_IN :
- s.m_v1 = f->getVertex(1);
- s.m_cfg1 = BOP_Segment::createVertexCfg(2);
- s.m_cfg2 = BOP_Segment::createEdgeCfg(3);
- break;
-
- case ON_IN_OUT :
- case ON_OUT_IN :
- s.m_v1 = f->getVertex(0);
- s.m_cfg1 = BOP_Segment::createVertexCfg(1);
- s.m_cfg2 = BOP_Segment::createEdgeCfg(2);
- break;
-
- case OUT_IN_IN :
- case IN_OUT_OUT :
- s.m_cfg1 = BOP_Segment::createEdgeCfg(1);
- s.m_cfg2 = BOP_Segment::createEdgeCfg(3);
- break;
-
- case OUT_IN_OUT :
- case IN_OUT_IN :
- s.m_cfg1 = BOP_Segment::createEdgeCfg(1);
- s.m_cfg2 = BOP_Segment::createEdgeCfg(2);
- break;
-
- case OUT_OUT_IN :
- case IN_IN_OUT :
- s.m_cfg1 = BOP_Segment::createEdgeCfg(2);
- s.m_cfg2 = BOP_Segment::createEdgeCfg(3);
- break;
-
- default:
- // wrong TAG!
- break;
- }
-
- return s;
-}
diff --git a/intern/boolop/intern/BOP_Tag.cpp b/intern/boolop/intern/BOP_Tag.cpp
deleted file mode 100644
index cdc04b67d4a..00000000000
--- a/intern/boolop/intern/BOP_Tag.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Tag.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_Tag.h"
-
-/**
- * Gets the tag description.
- * @param t tag
- * @param dest tag description
- */
-void BOP_stringTAG(BOP_TAG t, char *dest) {
-
- switch(t){
- case IN_IN_IN:
- sprintf(dest, "IN_IN_IN");
- break;
- case IN_IN_ON:
- sprintf(dest, "IN_IN_ON");
- break;
- case IN_ON_IN:
- sprintf(dest, "IN_ON_IN");
- break;
- case IN_ON_ON:
- sprintf(dest, "IN_ON_ON");
- break;
- case ON_IN_IN:
- sprintf(dest, "ON_IN_IN");
- break;
- case ON_IN_ON:
- sprintf(dest, "ON_IN_ON");
- break;
- case ON_ON_IN:
- sprintf(dest, "ON_ON_IN");
- break;
- case ON_ON_ON:
- sprintf(dest, "ON_ON_ON");
- break;
- case OUT_OUT_OUT:
- sprintf(dest, "OUT_OUT_OUT");
- break;
- case OUT_OUT_ON:
- sprintf(dest, "OUT_OUT_ON");
- break;
- case OUT_ON_OUT:
- sprintf(dest, "OUT_ON_OUT");
- break;
- case OUT_ON_ON:
- sprintf(dest, "OUT_ON_ON");
- break;
- case ON_OUT_OUT:
- sprintf(dest, "ON_OUT_OUT");
- break;
- case ON_OUT_ON:
- sprintf(dest, "ON_OUT_ON");
- break;
- case ON_ON_OUT:
- sprintf(dest, "ON_ON_OUT");
- break;
- case OUT_OUT_IN:
- sprintf(dest, "OUT_OUT_IN");
- break;
- case OUT_IN_OUT:
- sprintf(dest, "OUT_IN_OUT");
- break;
- case OUT_IN_IN:
- sprintf(dest, "OUT_IN_IN");
- break;
- case IN_OUT_OUT:
- sprintf(dest, "IN_OUT_OUT");
- break;
- case IN_OUT_IN:
- sprintf(dest, "IN_OUT_IN");
- break;
- case IN_IN_OUT:
- sprintf(dest, "IN_IN_OUT");
- break;
- case OUT_ON_IN:
- sprintf(dest, "OUT_ON_IN");
- break;
- case OUT_IN_ON:
- sprintf(dest, "OUT_IN_ON");
- break;
- case IN_ON_OUT:
- sprintf(dest, "IN_ON_OUT");
- break;
- case IN_OUT_ON:
- sprintf(dest, "IN_OUT_ON");
- break;
- case ON_IN_OUT:
- sprintf(dest, "ON_IN_OUT");
- break;
- case ON_OUT_IN:
- sprintf(dest, "ON_OUT_IN");
- break;
- case UNCLASSIFIED:
- sprintf(dest, "UNCLASSIFIED");
- break;
- case BROKEN:
- sprintf(dest, "BROKEN");
- break;
- case PHANTOM:
- sprintf(dest, "PHANTOM");
- break;
- case OVERLAPPED:
- sprintf(dest, "OVERLAPPED");
- break;
- case INOUT:
- sprintf(dest, "INOUT");
- break;
- default:
- sprintf(dest, "DESCONEGUT %d",t);
- break;
- }
-
-}
diff --git a/intern/boolop/intern/BOP_Tag.h b/intern/boolop/intern/BOP_Tag.h
deleted file mode 100644
index b7438275e90..00000000000
--- a/intern/boolop/intern/BOP_Tag.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Tag.h
- * \ingroup boolopintern
- */
-
-
-#include <string.h>
-#include <stdio.h>
-
-#ifndef __BOP_TAG_H__
-#define __BOP_TAG_H__
-
-#define IN_TAG 0x02 // Below the plane
-#define ON_TAG 0x00 // On the plane
-#define OUT_TAG 0x01 // Above the plane
-#define INOUT_TAG 0x0E // Above and below the plane
-#define INON_TAG 0x12 // Below and on the plane
-#define OUTON_TAG 0x11 // Above and on the plane
-#define UNCLASSIFIED_TAG 0x0F // Expecting to be classified
-
-#define PHANTOM_TAG 0x0C // Phantom face: verts form collinear triangle
-#define OVERLAPPED_TAG 0x0D // Overlapped face
-#define BROKEN_TAG 0x0B // Splitted and unused ...
-
-#define ON_ON_IN_TAG IN_TAG
-#define ON_IN_ON_TAG IN_TAG << 2
-#define IN_ON_ON_TAG IN_TAG << 4
-
-#define ON_ON_OUT_TAG OUT_TAG
-#define ON_OUT_ON_TAG OUT_TAG << 2
-#define OUT_ON_ON_TAG OUT_TAG << 4
-
-#define ON_ON_ON_TAG ON_TAG
-#define IN_IN_IN_TAG IN_ON_ON_TAG | ON_IN_ON_TAG | ON_ON_IN_TAG
-#define OUT_OUT_OUT_TAG OUT_ON_ON_TAG | ON_OUT_ON_TAG | ON_ON_OUT_TAG
-
-#define IN_IN_ON_TAG IN_ON_ON_TAG | ON_IN_ON_TAG
-#define IN_ON_IN_TAG IN_ON_ON_TAG | ON_ON_IN_TAG
-#define ON_IN_IN_TAG ON_IN_ON_TAG | ON_ON_IN_TAG
-
-#define OUT_OUT_ON_TAG OUT_ON_ON_TAG | ON_OUT_ON_TAG
-#define OUT_ON_OUT_TAG OUT_ON_ON_TAG | ON_ON_OUT_TAG
-#define ON_OUT_OUT_TAG ON_OUT_ON_TAG | ON_ON_OUT_TAG
-
-#define IN_OUT_OUT_TAG IN_ON_ON_TAG | ON_OUT_OUT_TAG
-#define OUT_IN_OUT_TAG ON_IN_ON_TAG | OUT_ON_OUT_TAG
-#define OUT_OUT_IN_TAG ON_ON_IN_TAG | OUT_OUT_ON_TAG
-
-#define OUT_IN_IN_TAG ON_IN_IN_TAG | OUT_ON_ON_TAG
-#define IN_OUT_IN_TAG IN_ON_IN_TAG | ON_OUT_ON_TAG
-#define IN_IN_OUT_TAG IN_IN_ON_TAG | ON_ON_OUT_TAG
-
-#define IN_ON_OUT_TAG IN_ON_ON_TAG | ON_ON_OUT_TAG
-#define IN_OUT_ON_TAG IN_ON_ON_TAG | ON_OUT_ON_TAG
-#define ON_IN_OUT_TAG ON_IN_ON_TAG | ON_ON_OUT_TAG
-#define ON_OUT_IN_TAG ON_ON_IN_TAG | ON_OUT_ON_TAG
-#define OUT_IN_ON_TAG ON_IN_ON_TAG | OUT_ON_ON_TAG
-#define OUT_ON_IN_TAG ON_ON_IN_TAG | OUT_ON_ON_TAG
-
-typedef enum BOP_TAGEnum {
- IN = IN_TAG,
- ON = ON_TAG,
- OUT = OUT_TAG,
- INOUT = INOUT_TAG,
- INON = INON_TAG,
- OUTON = OUTON_TAG,
- UNCLASSIFIED = UNCLASSIFIED_TAG,
- PHANTOM = PHANTOM_TAG,
- OVERLAPPED = OVERLAPPED_TAG,
- BROKEN = BROKEN_TAG,
- IN_ON_ON = IN_ON_ON_TAG,
- ON_IN_ON = ON_IN_ON_TAG,
- ON_ON_IN = ON_ON_IN_TAG,
- OUT_ON_ON = OUT_ON_ON_TAG,
- ON_OUT_ON = ON_OUT_ON_TAG,
- ON_ON_OUT = ON_ON_OUT_TAG,
- ON_ON_ON = ON_ON_ON_TAG,
- IN_IN_IN = IN_IN_IN_TAG,
- OUT_OUT_OUT = OUT_OUT_OUT_TAG,
- IN_IN_ON = IN_IN_ON_TAG,
- IN_ON_IN = IN_ON_IN_TAG,
- ON_IN_IN = ON_IN_IN_TAG,
- OUT_OUT_ON = OUT_OUT_ON_TAG,
- OUT_ON_OUT = OUT_ON_OUT_TAG,
- ON_OUT_OUT = ON_OUT_OUT_TAG,
- IN_OUT_OUT = IN_OUT_OUT_TAG,
- OUT_IN_OUT = OUT_IN_OUT_TAG,
- OUT_OUT_IN = OUT_OUT_IN_TAG,
- OUT_IN_IN = OUT_IN_IN_TAG,
- IN_OUT_IN = IN_OUT_IN_TAG,
- IN_IN_OUT = IN_IN_OUT_TAG,
- IN_ON_OUT = IN_ON_OUT_TAG,
- IN_OUT_ON = IN_OUT_ON_TAG,
- ON_IN_OUT = ON_IN_OUT_TAG,
- ON_OUT_IN = ON_OUT_IN_TAG,
- OUT_IN_ON = OUT_IN_ON_TAG,
- OUT_ON_IN = OUT_ON_IN_TAG } BOP_TAG;
-
-inline BOP_TAG BOP_createTAG(BOP_TAG tag1, BOP_TAG tag2, BOP_TAG tag3)
-{
- return (BOP_TAG) (tag1 << 4 | tag2 << 2 | tag3);
-}
-
-inline BOP_TAG BOP_createTAG(int i)
-{
- return i < 0 ? IN : i > 0 ? OUT : ON;
-}
-
-inline BOP_TAG BOP_addON(BOP_TAG tag)
-{
- return (tag==IN?INON:(tag==OUT?OUTON:tag));
-}
-
-void BOP_stringTAG(BOP_TAG tag, char *dest);
-
-inline bool BOP_compTAG(BOP_TAG tag1, BOP_TAG tag2)
-{
- return (tag1==tag2) || (BOP_addON(tag1) == BOP_addON(tag2));
-}
-
-#endif
diff --git a/intern/boolop/intern/BOP_Triangulator.cpp b/intern/boolop/intern/BOP_Triangulator.cpp
deleted file mode 100644
index 65f7dae1c0c..00000000000
--- a/intern/boolop/intern/BOP_Triangulator.cpp
+++ /dev/null
@@ -1,573 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Triangulator.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_Triangulator.h"
-#include <iostream>
-
-void BOP_addFace(BOP_Mesh* mesh, BOP_Faces *faces, BOP_Face* face, BOP_TAG tag);
-void BOP_splitQuad(BOP_Mesh* mesh, MT_Plane3 plane, BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index v4,
- BOP_Face* triangles[], BOP_Index original);
-BOP_Index BOP_getTriangleVertex(BOP_Mesh* mesh, BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index v4);
-BOP_Index BOP_getNearestVertex(BOP_Mesh* mesh, BOP_Index u, BOP_Index v1, BOP_Index v2);
-bool BOP_isInsideCircle(BOP_Mesh* mesh, BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index v4, BOP_Index v5);
-bool BOP_isInsideCircle(BOP_Mesh* mesh, BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index w);
-void BOP_triangulateC_split(BOP_Mesh* mesh, BOP_Faces* faces, BOP_Face* face,
- BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index v4, BOP_Index v5);
-void BOP_triangulateD_split(BOP_Mesh* mesh, BOP_Faces* faces, BOP_Face* face,
- BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index v4, BOP_Index v5);
-
-/**
- * Triangulates the face in two new faces by splitting one edge.
- *
- * *
- * /|\
- * / | \
- * / | \
- * / | \
- * / | \
- * *-----x-----*
- *
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faces set of faces that contains face and will contains new faces
- * @param face input face to be triangulate
- * @param v vertex index that intersects the edge
- * @param e relative edge index used to triangulate the face
- */
-
-
-void BOP_triangulateA(BOP_Mesh *mesh, BOP_Faces *faces, BOP_Face * face, BOP_Index v, unsigned int e)
-{
- BOP_Face *face1, *face2;
- if (e == 1) {
- face1 = new BOP_Face3(face->getVertex(0), v, face->getVertex(2), face->getPlane(),
- face->getOriginalFace());
- face2 = new BOP_Face3(v, face->getVertex(1), face->getVertex(2), face->getPlane(),
- face->getOriginalFace());
- }
- else if (e == 2) {
- face1 = new BOP_Face3(face->getVertex(0), face->getVertex(1), v, face->getPlane(),
- face->getOriginalFace());
- face2 = new BOP_Face3(face->getVertex(0), v, face->getVertex(2), face->getPlane(),
- face->getOriginalFace());
- }
- else if (e == 3) {
- face1 = new BOP_Face3(face->getVertex(0), face->getVertex(1), v, face->getPlane(),
- face->getOriginalFace());
- face2 = new BOP_Face3(face->getVertex(1), face->getVertex(2), v, face->getPlane(),
- face->getOriginalFace());
- }
- else {
- return;
- }
-
- BOP_addFace(mesh, faces, face1, face->getTAG());
- BOP_addFace(mesh, faces, face2, face->getTAG());
- face1->setSplit(face->getSplit());
- face2->setSplit(face->getSplit());
-
- face->setTAG(BROKEN);
- face->freeBBox();
-}
-
-/**
- * Triangulates the face in three new faces by one inner point.
- *
- * *
- * / \
- * / \
- * / \
- * / x \
- * / \
- * *-----------*
- *
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faces set of faces that contains face and will contains new faces
- * @param face input face to be triangulate
- * @param v vertex index that lays inside face
- */
-void BOP_triangulateB(BOP_Mesh* mesh, BOP_Faces* faces, BOP_Face* face, BOP_Index v)
-{
- BOP_Face *face1 = new BOP_Face3(face->getVertex(0), face->getVertex(1), v, face->getPlane(),
- face->getOriginalFace());
- BOP_Face *face2 = new BOP_Face3(face->getVertex(1), face->getVertex(2), v, face->getPlane(),
- face->getOriginalFace());
- BOP_Face *face3 = new BOP_Face3(face->getVertex(2), face->getVertex(0), v, face->getPlane(),
- face->getOriginalFace());
-
- BOP_addFace(mesh,faces,face1,face->getTAG());
- BOP_addFace(mesh,faces,face2,face->getTAG());
- BOP_addFace(mesh,faces,face3,face->getTAG());
- face1->setSplit(face->getSplit());
- face2->setSplit(face->getSplit());
- face3->setSplit(face->getSplit());
- face->setTAG(BROKEN);
- face->freeBBox();
-}
-
-
-/**
- * Triangulates the face in five new faces by two inner points.
- *
- * *
- * / \
- * / \
- * / \
- * / x x \
- * / \
- * *-----------*
- *
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faces set of faces that contains face and will contains new faces
- * @param face input face to be triangulate
- * @param v1 first vertex index that lays inside face
- * @param v2 second vertex index that lays inside face
- */
-void BOP_triangulateC(BOP_Mesh* mesh, BOP_Faces* faces, BOP_Face* face, BOP_Index v1, BOP_Index v2)
-{
- if (!BOP_isInsideCircle(mesh, face->getVertex(0), v1, v2, face->getVertex(1), face->getVertex(2))) {
- BOP_triangulateC_split(mesh, faces, face, face->getVertex(0), face->getVertex(1),
- face->getVertex(2), v1, v2);
- }
- else if (!BOP_isInsideCircle(mesh, face->getVertex(1), v1, v2, face->getVertex(0), face->getVertex(2))) {
- BOP_triangulateC_split(mesh, faces, face, face->getVertex(1), face->getVertex(2),
- face->getVertex(0), v1, v2);
- }
- else if (!BOP_isInsideCircle(mesh, face->getVertex(2), v1, v2, face->getVertex(0), face->getVertex(1))) {
- BOP_triangulateC_split(mesh, faces, face, face->getVertex(2), face->getVertex(0),
- face->getVertex(1), v1, v2);
- }
- else {
- BOP_triangulateC_split(mesh, faces, face, face->getVertex(2), face->getVertex(0),
- face->getVertex(1), v1, v2);
- }
-}
-
-/**
- * Triangulates the face (v1,v2,v3) in five new faces by two inner points (v4,v5), where
- * v1 v4 v5 defines the nice triangle and v4 v5 v2 v3 defines the quad to be tessellated.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faces set of faces that contains face and will contains new faces
- * @param face input face to be triangulate
- * @param v1 first vertex index that defines the original triangle
- * @param v2 second vertex index that defines the original triangle
- * @param v3 third vertex index that defines the original triangle
- * @param v4 first vertex index that lays inside face
- * @param v5 second vertex index that lays inside face
- */
-void BOP_triangulateC_split(BOP_Mesh* mesh, BOP_Faces* faces, BOP_Face* face,
- BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index v4, BOP_Index v5)
-{
- BOP_Index v = BOP_getTriangleVertex(mesh, v1, v2, v4, v5);
- BOP_Index w = (v == v4 ? v5 : v4);
- BOP_Face *face1 = new BOP_Face3(v1, v, w, face->getPlane(), face->getOriginalFace());
- BOP_Face *face2 = new BOP_Face3(v1, v2, v, face->getPlane(), face->getOriginalFace());
- BOP_Face *face3 = new BOP_Face3(v1, w, v3, face->getPlane(), face->getOriginalFace());
-
- // v1 v w defines the nice triangle in the correct order
- // v1 v2 v defines one lateral triangle in the correct order
- // v1 w v3 defines the other lateral triangle in the correct order
- // w v v2 v3 defines the quad in the correct order
-
- BOP_addFace(mesh, faces, face1, face->getTAG());
- BOP_addFace(mesh, faces, face2, face->getTAG());
- BOP_addFace(mesh, faces, face3, face->getTAG());
-
- face1->setSplit(face->getSplit());
- face2->setSplit(face->getSplit());
- face3->setSplit(face->getSplit());
-
- BOP_Face *faces45[2];
-
- BOP_splitQuad(mesh, face->getPlane(), v2, v3, w, v, faces45, face->getOriginalFace());
- BOP_addFace(mesh, faces, faces45[0], face->getTAG());
- BOP_addFace(mesh, faces, faces45[1], face->getTAG());
- faces45[0]->setSplit(face->getSplit());
- faces45[1]->setSplit(face->getSplit());
-
- face->setTAG(BROKEN);
- face->freeBBox();
-}
-
-
-/**
- * Triangulates the face in three new faces by splitting twice an edge.
- *
- * *
- * / \
- * / \
- * / \
- * / \
- * / \
- * *---x---x---*
- *
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faces set of faces that contains face and will contains new faces
- * @param face input face to be triangulate
- * @param v1 first vertex index that intersects the edge
- * @param v2 second vertex index that intersects the edge
- * @param e relative edge index used to triangulate the face
- */
-void BOP_triangulateD(BOP_Mesh* mesh, BOP_Faces* faces, BOP_Face* face, BOP_Index v1,
- BOP_Index v2, unsigned int e)
-{
- if (e == 1) {
- BOP_triangulateD_split(mesh, faces, face, face->getVertex(0), face->getVertex(1),
- face->getVertex(2), v1, v2);
- }
- else if (e == 2) {
- BOP_triangulateD_split(mesh, faces, face, face->getVertex(1), face->getVertex(2),
- face->getVertex(0), v1, v2);
- }
- else if (e == 3) {
- BOP_triangulateD_split(mesh, faces, face, face->getVertex(2), face->getVertex(0),
- face->getVertex(1), v1, v2);
- }
-}
-
-/**
- * Triangulates the face (v1,v2,v3) in three new faces by splitting twice an edge.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faces set of faces that contains face and will contains new faces
- * @param face input face to be triangulate
- * @param v1 first vertex index that defines the original triangle
- * @param v2 second vertex index that defines the original triangle
- * @param v3 third vertex index that defines the original triangle
- * @param v4 first vertex index that lays on the edge
- * @param v5 second vertex index that lays on the edge
- */
-void BOP_triangulateD_split(BOP_Mesh* mesh, BOP_Faces* faces, BOP_Face* face,
- BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index v4, BOP_Index v5)
-{
- BOP_Index v = BOP_getNearestVertex(mesh, v1, v4, v5);
- BOP_Index w = (v == v4 ? v5 : v4);
- BOP_Face *face1 = new BOP_Face3(v1, v, v3, face->getPlane(), face->getOriginalFace());
- BOP_Face *face2 = new BOP_Face3(v, w, v3, face->getPlane(), face->getOriginalFace());
- BOP_Face *face3 = new BOP_Face3(w, v2, v3, face->getPlane(), face->getOriginalFace());
-
- BOP_addFace(mesh, faces, face1, face->getTAG());
- BOP_addFace(mesh, faces, face2, face->getTAG());
- BOP_addFace(mesh, faces, face3, face->getTAG());
- face1->setSplit(face->getSplit());
- face2->setSplit(face->getSplit());
- face3->setSplit(face->getSplit());
-
- face->setTAG(BROKEN);
- face->freeBBox();
-}
-
-
-/**
- * Triangulates the face in three new faces by splitting two edges.
- *
- * *
- * / \
- * / \
- * x x
- * / \
- * / \
- * *-----------*
- *
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faces set of faces that contains face and will contains new faces
- * @param face input face to be triangulate
- * @param v1 vertex index that intersects the first edge
- * @param v1 vertex index that intersects the second edge
- * @param e1 first relative edge index used to triangulate the face
- * @param e2 second relative edge index used to triangulate the face
- */
-void BOP_triangulateE(BOP_Mesh* mesh, BOP_Faces* faces, BOP_Face* face,
- BOP_Index v1, BOP_Index v2, unsigned int e1, unsigned int e2)
-{
- // Sort the edges to reduce the cases
- if (e1 > e2) {
- unsigned int aux = e1;
- e1 = e2;
- e2 = aux;
- aux = v1;
- v1 = v2;
- v2 = aux;
- }
- // e1 < e2!
- BOP_Face *face1;
- BOP_Face *faces23[2];
- if (e1 == 1 && e2 == 2) {
- // the vertex is 2
- face1 = new BOP_Face3(face->getVertex(1), v2, v1, face->getPlane(),
- face->getOriginalFace());
- BOP_splitQuad(mesh, face->getPlane(), face->getVertex(2), face->getVertex(0), v1, v2,
- faces23, face->getOriginalFace());
- }
- else if (e1 == 1 && e2 == 3) {
- // the vertex is 1
- face1 = new BOP_Face3(face->getVertex(0), v1, v2, face->getPlane(),
- face->getOriginalFace());
- BOP_splitQuad(mesh, face->getPlane(), face->getVertex(1), face->getVertex(2), v2, v1,
- faces23, face->getOriginalFace());
- }
- else if (e1 == 2 && e2 == 3) {
- // the vertex is 3
- face1 = new BOP_Face3(face->getVertex(2), v2, v1, face->getPlane(),
- face->getOriginalFace());
- BOP_splitQuad(mesh, face->getPlane(), face->getVertex(0), face->getVertex(1), v1, v2,
- faces23, face->getOriginalFace());
- }
- else {
- return;
- }
-
- BOP_addFace(mesh, faces, face1, face->getTAG());
- BOP_addFace(mesh, faces, faces23[0], face->getTAG());
- BOP_addFace(mesh, faces, faces23[1], face->getTAG());
- face1->setSplit(face->getSplit());
- faces23[0]->setSplit(face->getSplit());
- faces23[1]->setSplit(face->getSplit());
- face->setTAG(BROKEN);
- face->freeBBox();
-}
-
-/**
- * Triangulates the face in four new faces by one edge and one inner point.
- *
- * *
- * / \
- * / \
- * x x \
- * / \
- * / \
- * *-----------*
- *
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faces set of faces that contains face and will contains new faces
- * @param face input face to be triangulate
- * @param v1 vertex index that lays inside face
- * @param v2 vertex index that intersects the edge
- * @param e relative edge index used to triangulate the face
- */
-void BOP_triangulateF(BOP_Mesh* mesh, BOP_Faces* faces, BOP_Face* face,
- BOP_Index v1, BOP_Index v2, unsigned int e)
-{
- BOP_Face *faces12[2];
- BOP_Face *faces34[2];
- if (e == 1) {
- BOP_splitQuad(mesh, face->getPlane(), face->getVertex(2), face->getVertex(0), v2, v1,
- faces12, face->getOriginalFace());
- BOP_splitQuad(mesh, face->getPlane(), face->getVertex(1), face->getVertex(2), v1, v2,
- faces34, face->getOriginalFace());
- }
- else if (e == 2) {
- BOP_splitQuad(mesh, face->getPlane(), face->getVertex(0), face->getVertex(1), v2, v1,
- faces12, face->getOriginalFace());
- BOP_splitQuad(mesh, face->getPlane(), face->getVertex(2), face->getVertex(0), v1, v2,
- faces34, face->getOriginalFace());
- }
- else if (e==3) {
- BOP_splitQuad(mesh, face->getPlane(), face->getVertex(1), face->getVertex(2), v2, v1,
- faces12, face->getOriginalFace());
- BOP_splitQuad(mesh, face->getPlane(), face->getVertex(0), face->getVertex(1), v1, v2,
- faces34, face->getOriginalFace());
- }
- else {
- return;
- }
-
- BOP_addFace(mesh, faces, faces12[0], face->getTAG());
- BOP_addFace(mesh, faces, faces12[1], face->getTAG());
- BOP_addFace(mesh, faces, faces34[0], face->getTAG());
- BOP_addFace(mesh, faces, faces34[1], face->getTAG());
- faces12[0]->setSplit(face->getSplit());
- faces12[1]->setSplit(face->getSplit());
- faces34[0]->setSplit(face->getSplit());
- faces34[1]->setSplit(face->getSplit());
-
- face->setTAG(BROKEN);
- face->freeBBox();
-}
-
-/**
- * Adds the new face into the faces set and the mesh and sets it a new tag.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param faces set of faces that contains oldFace
- * @param face input face to be added
- * @param tag tag of the new face
- */
-void BOP_addFace(BOP_Mesh* mesh, BOP_Faces* faces, BOP_Face* face, BOP_TAG tag)
-{
- BOP_Index av1 = face->getVertex(0);
- BOP_Index av2 = face->getVertex(1);
- BOP_Index av3 = face->getVertex(2);
-
- /*
- * Before adding a new face to the face list, be sure it's not
- * already there. Duplicate faces have been found to cause at
- * least two instances of infinite loops. Also, some faces are
- * created which have the same vertex twice. Don't add these either.
- *
- * When someone has more time to look into this issue, it's possible
- * this code may be removed again.
- */
- if( av1==av2 || av2==av3 || av3==av1 ) return;
-
- for(unsigned int idxFace=0;idxFace<faces->size();idxFace++) {
- BOP_Face *faceA = (*faces)[idxFace];
- BOP_Index bv1 = faceA->getVertex(0);
- BOP_Index bv2 = faceA->getVertex(1);
- BOP_Index bv3 = faceA->getVertex(2);
-
- if( ( av1==bv1 && av2==bv2 && av3==bv3 ) ||
- ( av1==bv1 && av2==bv3 && av3==bv2 ) ||
- ( av1==bv2 && av2==bv1 && av3==bv3 ) ||
- ( av1==bv2 && av2==bv3 && av3==bv1 ) ||
- ( av1==bv3 && av2==bv2 && av3==bv1 ) ||
- ( av1==bv3 && av2==bv1 && av3==bv3 ) )
- return;
- }
-
- face->setTAG(tag);
- faces->push_back(face);
- mesh->addFace(face);
-}
-
-/**
- * Computes the best quad triangulation.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param plane plane used to create the news faces
- * @param v1 first vertex index
- * @param v2 second vertex index
- * @param v3 third vertex index
- * @param v4 fourth vertex index
- * @param triangles array of faces where the new two faces will be saved
- * @param original face index to the new faces
- */
-void BOP_splitQuad(BOP_Mesh* mesh, MT_Plane3 plane, BOP_Index v1, BOP_Index v2,
- BOP_Index v3, BOP_Index v4, BOP_Face* triangles[], BOP_Index original)
-{
- MT_Point3 p1 = mesh->getVertex(v1)->getPoint();
- MT_Point3 p2 = mesh->getVertex(v2)->getPoint();
- MT_Point3 p3 = mesh->getVertex(v3)->getPoint();
- MT_Point3 p4 = mesh->getVertex(v4)->getPoint();
-
- int res = BOP_concave(p1,p2,p3,p4);
-
- if (res==0) {
- MT_Plane3 plane1(p1, p2, p3);
- MT_Plane3 plane2(p1, p3, p4);
-
- if (BOP_isInsideCircle(mesh, v1, v2, v4, v3) &&
- BOP_orientation(plane1, plane) &&
- BOP_orientation(plane2, plane)) {
- triangles[0] = new BOP_Face3(v1, v2, v3, plane, original);
- triangles[1] = new BOP_Face3(v1, v3, v4, plane, original);
- }
- else {
- triangles[0] = new BOP_Face3(v1, v2, v4, plane, original);
- triangles[1] = new BOP_Face3(v2, v3, v4, plane, original);
- }
- }
- else if (res==-1) {
- triangles[0] = new BOP_Face3(v1, v2, v4, plane, original);
- triangles[1] = new BOP_Face3(v2, v3, v4, plane, original);
- }
- else {
- triangles[0] = new BOP_Face3(v1, v2, v3, plane, original);
- triangles[1] = new BOP_Face3(v1, v3, v4, plane, original);
- }
-}
-
-/**
- * Returns the vertex (v3 or v4) that splits the quad (v1,v2,v3,v4) in the best pair of triangles.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param v1 first vertex index
- * @param v2 second vertex index
- * @param v3 third vertex index
- * @param v4 fourth vertex index
- * @return v3 if the best split triangles are (v1,v2,v3) and (v1,v3,v4), v4 otherwise
- */
-BOP_Index BOP_getTriangleVertex(BOP_Mesh* mesh, BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index v4)
-{
- if (BOP_isInsideCircle(mesh, v1, v2, v4, v3)) {
- return v3;
- }
- return v4;
-}
-
-/**
- * Returns which of vertex v1 or v2 is nearest to u.
- * @param mesh mesh that contains the faces, edges and vertices
- * @param u reference vertex index
- * @param v1 first vertex index
- * @param v2 second vertex index
- * @return the nearest vertex index
- */
-BOP_Index BOP_getNearestVertex(BOP_Mesh* mesh, BOP_Index u, BOP_Index v1, BOP_Index v2)
-{
- MT_Point3 q = mesh->getVertex(u)->getPoint();
- MT_Point3 p1 = mesh->getVertex(v1)->getPoint();
- MT_Point3 p2 = mesh->getVertex(v2)->getPoint();
- if (BOP_comp(q.distance(p1), q.distance(p2)) > 0) return v2;
- else return v1;
-}
-
-/**
- * Computes if vertexs v4 and v5 are not inside the circle defined by v1,v2,v3 (seems to be a nice triangle)
- * @param mesh mesh that contains the faces, edges and vertices
- * @param v1 first vertex index
- * @param v2 second vertex index
- * @param v3 third vertex index
- * @param v4 fourth vertex index
- * @param v5 five vertex index
- * @return if v1,v2,v3 defines a nice triangle against v4,v5
- */
-bool BOP_isInsideCircle(BOP_Mesh* mesh, BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index v4, BOP_Index v5)
-{
- return BOP_isInsideCircle(mesh->getVertex(v1)->getPoint(),
- mesh->getVertex(v2)->getPoint(),
- mesh->getVertex(v3)->getPoint(),
- mesh->getVertex(v4)->getPoint(),
- mesh->getVertex(v5)->getPoint());
-}
-
-/**
- * Computes if vertex w is not inside the circle defined by v1,v2,v3 (seems to be a nice triangle)
- * @param mesh mesh that contains the faces, edges and vertices
- * @param v1 first vertex index
- * @param v2 second vertex index
- * @param v3 third vertex index
- * @param w fourth vertex index
- * @return if v1,v2,v3 defines a nice triangle against w
- */
-bool BOP_isInsideCircle(BOP_Mesh* mesh, BOP_Index v1, BOP_Index v2, BOP_Index v3, BOP_Index w)
-{
- return BOP_isInsideCircle(mesh->getVertex(v1)->getPoint(),
- mesh->getVertex(v2)->getPoint(),
- mesh->getVertex(v3)->getPoint(),
- mesh->getVertex(w)->getPoint());
-}
diff --git a/intern/boolop/intern/BOP_Triangulator.h b/intern/boolop/intern/BOP_Triangulator.h
deleted file mode 100644
index 55dd51d09c3..00000000000
--- a/intern/boolop/intern/BOP_Triangulator.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Triangulator.h
- * \ingroup boolopintern
- */
-
-
-#ifndef __BOP_TRIANGULATOR_H__
-#define __BOP_TRIANGULATOR_H__
-
-#include "BOP_MathUtils.h"
-#include "BOP_Mesh.h"
-
-void BOP_triangulateA(BOP_Mesh *mesh, BOP_Faces *faces, BOP_Face * face, BOP_Index v, unsigned int e);
-void BOP_triangulateB(BOP_Mesh * mesh, BOP_Faces *faces, BOP_Face * face, BOP_Index v);
-void BOP_triangulateC(BOP_Mesh * mesh, BOP_Faces *faces, BOP_Face * face, BOP_Index v1, BOP_Index v2);
-void BOP_triangulateD(BOP_Mesh * mesh, BOP_Faces *faces, BOP_Face * face, BOP_Index v1, BOP_Index v2, unsigned int e);
-void BOP_triangulateE(BOP_Mesh *mesh, BOP_Faces *faces, BOP_Face * face, BOP_Index v1, BOP_Index v2, unsigned int e1, unsigned int e2);
-void BOP_triangulateF(BOP_Mesh *mesh, BOP_Faces *faces, BOP_Face * face, BOP_Index v1, BOP_Index v2, unsigned int e);
-
-#endif
diff --git a/intern/boolop/intern/BOP_Vertex.cpp b/intern/boolop/intern/BOP_Vertex.cpp
deleted file mode 100644
index a3377156f9d..00000000000
--- a/intern/boolop/intern/BOP_Vertex.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file boolop/intern/BOP_Vertex.cpp
- * \ingroup boolopintern
- */
-
-
-#include "BOP_Vertex.h"
-
-/**
- * Constructs a new vertex with the specified coordinates.
- * @param x X-axis coordinate
- * @param y Y-axis coordinate
- * @param z Z-axis coordinate
- */
-BOP_Vertex::BOP_Vertex(double x, double y, double z)
-{
- m_point.setValue(x,y,z);
- m_tag = UNCLASSIFIED;
-}
-
-/**
- * Constructs a new vertex with the specified point.
- * @param p point XYZ
- */
-BOP_Vertex::BOP_Vertex(MT_Point3 p)
-{
- m_point = p;
- m_tag = UNCLASSIFIED;
-}
-
-/**
- * Adds a new edge index to this vertex.
- * @param i edge index
- */
-void BOP_Vertex::addEdge(BOP_Index i)
-{
- if (!containsEdge(i))
- m_edges.push_back(i);
-}
-
-/**
- * Removes an edge index from this vertex.
- * @param i edge index
- */
-void BOP_Vertex::removeEdge(BOP_Index i)
-{
- for(BOP_IT_Indexs it = m_edges.begin();it!=m_edges.end();it++) {
- if ((*it)==i) {
- m_edges.erase(it);
- return;
- }
- }
-}
-
-/**
- * Returns if this vertex contains the specified edge index.
- * @param i edge index
- * @return true if this vertex contains the specified edge index, false otherwise
- */
-bool BOP_Vertex::containsEdge(BOP_Index i)
-{
- int pos=0;
- for(BOP_IT_Indexs it = m_edges.begin();it!=m_edges.end();pos++,it++) {
- if ((*it)==i){
- return true;
- }
- }
-
- return false;
-}
-
-#ifdef BOP_DEBUG
-/**
- * Implements operator <<.
- */
-#include <iomanip>
-
-ostream &operator<<(ostream &stream, BOP_Vertex *v)
-{
- char aux[20];
- BOP_stringTAG(v->m_tag,aux);
- MT_Point3 point = v->getPoint();
- stream << setprecision(6) << showpoint << fixed;
- stream << "Vertex[" << point[0] << "," << point[1] << ",";
- stream << point[2] << "] (" << aux << ")";
- return stream;
-}
-#endif
-
diff --git a/intern/bsp/CMakeLists.txt b/intern/bsp/CMakeLists.txt
index 6a337b99be9..136c168bdb8 100644
--- a/intern/bsp/CMakeLists.txt
+++ b/intern/bsp/CMakeLists.txt
@@ -29,6 +29,7 @@ set(INC
../guardedalloc
../memutil
../moto/include
+ ../../extern/carve/include
)
set(INC_SYS
@@ -36,15 +37,34 @@ set(INC_SYS
)
set(SRC
+ intern/BOP_CarveInterface.cpp
intern/BSP_CSGMesh.cpp
intern/BSP_MeshPrimitives.cpp
intern/CSG_BooleanOps.cpp
extern/CSG_BooleanOps.h
+ intern/BOP_Interface.h
intern/BSP_CSGException.h
intern/BSP_CSGMesh.h
intern/BSP_CSGMesh_CFIterator.h
intern/BSP_MeshPrimitives.h
)
+if(WITH_BOOST)
+ if(NOT MSVC)
+ # Boost is setting as preferred collections library in the Carve code when using MSVC compiler
+ add_definitions(
+ -DHAVE_BOOST_UNORDERED_COLLECTIONS
+ )
+ endif()
+
+ add_definitions(
+ -DCARVE_SYSTEM_BOOST
+ )
+
+ list(APPEND INC_SYS
+ ${BOOST_INCLUDE_DIR}
+ )
+endif()
+
blender_add_lib(bf_intern_bsp "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/intern/bsp/SConscript b/intern/bsp/SConscript
index 4927c33dc8a..d3f7cf1c6ec 100644
--- a/intern/bsp/SConscript
+++ b/intern/bsp/SConscript
@@ -3,7 +3,21 @@ Import ('env')
sources = env.Glob('intern/*.cpp')
-incs = 'intern ../container ../moto/include ../memutil ../guardedalloc'
+incs = 'intern ../container ../moto/include ../memutil ../guardedalloc ../../extern/carve/include'
-env.BlenderLib ('bf_intern_bsp', sources, Split(incs), [], libtype=['core','player'], priority=[200,100] )
+defs = []
+
+if env['WITH_BF_BOOST']:
+ isMINGW = env['OURPLATFORM'] in ('win32-mingw', 'win64-mingw')
+
+ if env['OURPLATFORM'] not in ('win32-vc', 'win64-vc') and not isMINGW:
+ # Boost is setting as preferred collections library in the Carve code when using MSVC compiler
+ defs.append('HAVE_BOOST_UNORDERED_COLLECTIONS')
+
+ if not isMINGW:
+ defs.append('CARVE_SYSTEM_BOOST')
+
+ incs += ' ' + env['BF_BOOST_INC']
+
+env.BlenderLib ('bf_intern_bsp', sources, Split(incs), defs, libtype=['core','player'], priority=[200,100] )
diff --git a/intern/boolop/intern/BOP_CarveInterface.cpp b/intern/bsp/intern/BOP_CarveInterface.cpp
index ff7244ea84b..1f9c989cbc8 100644
--- a/intern/boolop/intern/BOP_CarveInterface.cpp
+++ b/intern/bsp/intern/BOP_CarveInterface.cpp
@@ -26,12 +26,12 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/** \file boolop/intern/BOP_CarveInterface.cpp
- * \ingroup boolopintern
+/** \file bsp/intern/BOP_CarveInterface.cpp
+ * \ingroup bsp
*/
-#include "../extern/BOP_Interface.h"
-#include "../../bsp/intern/BSP_CSGMesh_CFIterator.h"
+#include "BOP_Interface.h"
+#include "BSP_CSGMesh_CFIterator.h"
#include <carve/csg_triangulator.hpp>
#include <carve/interpolator.hpp>
@@ -58,7 +58,7 @@ static bool isQuadPlanar(carve::geom3d::Vector &v1, carve::geom3d::Vector &v2,
cross = carve::geom::cross(vec1, vec2);
float production = carve::geom::dot(cross, vec3);
- float magnitude = 1e-6 * cross.length();
+ float magnitude = 1e-5 * cross.length();
return fabs(production) < magnitude;
}
@@ -547,13 +547,32 @@ static uint quadMerge(std::map<MeshSet<3>::vertex_t*, uint> *vertexToIndex_map,
return 0;
}
-static bool Carve_checkDegeneratedFace(MeshSet<3>::face_t *face)
+static bool Carve_checkDegeneratedFace(std::map<MeshSet<3>::vertex_t*, uint> *vertexToIndex_map, MeshSet<3>::face_t *face)
{
/* only tris and quads for now */
if (face->n_edges == 3) {
+ uint v1, v2, v3;
+
+ v1 = vertexToIndex_map->find(face->edge->prev->vert)->second;
+ v2 = vertexToIndex_map->find(face->edge->vert)->second;
+ v3 = vertexToIndex_map->find(face->edge->next->vert)->second;
+
+ if (v1 == v2 || v2 == v3 || v1 == v3)
+ return true;
+
return triangleArea(face->edge->prev->vert->v, face->edge->vert->v, face->edge->next->vert->v) < DBL_EPSILON;
}
else if (face->n_edges == 4) {
+ uint v1, v2, v3, v4;
+
+ v1 = vertexToIndex_map->find(face->edge->prev->vert)->second;
+ v2 = vertexToIndex_map->find(face->edge->vert)->second;
+ v3 = vertexToIndex_map->find(face->edge->next->vert)->second;
+ v4 = vertexToIndex_map->find(face->edge->next->next->vert)->second;
+
+ if (v1 == v2 || v1 == v3 || v1 == v4 || v2 == v3 || v2 == v4 || v3 == v4)
+ return true;
+
return triangleArea(face->edge->vert->v, face->edge->next->vert->v, face->edge->next->next->vert->v) +
triangleArea(face->edge->prev->vert->v, face->edge->vert->v, face->edge->next->next->vert->v) < DBL_EPSILON;
}
@@ -595,8 +614,14 @@ static BSP_CSGMesh *Carve_exportMesh(MeshSet<3>* &poly, carve::interpolate::Face
MeshSet<3>::face_iter face_iter = poly->faceBegin();
for (i = 0; face_iter != poly->faceEnd(); ++face_iter, ++i) {
MeshSet<3>::face_t *f = *face_iter;
+
+ if (Carve_checkDegeneratedFace(&vertexToIndex_map, f))
+ continue;
+
ofaces[oface_num.getAttribute(f)].push_back(i);
+
MeshSet<3>::face_t::edge_iter_t edge_iter = f->begin();
+
for (; edge_iter != f->end(); ++edge_iter) {
int index = vertexToIndex_map[edge_iter->vert];
vi[index].push_back(i);
@@ -659,36 +684,27 @@ static BSP_CSGMesh *Carve_exportMesh(MeshSet<3>* &poly, carve::interpolate::Face
}
}
- bool degenerativeFace = false;
-
- if (!result) {
- /* merged triangles are already checked for degenerative quad */
- degenerativeFace = Carve_checkDegeneratedFace(f);
- }
-
- if (!degenerativeFace) {
- // add all information except vertices to the output mesh
- outputMesh->FaceSet().push_back(BSP_MFace());
- BSP_MFace& outFace = outputMesh->FaceSet().back();
- outFace.m_verts.clear();
- outFace.m_plane.setValue(f->plane.N.v);
- outFace.m_orig_face = orig;
-
- // if we merged faces, use the list of common vertices; otherwise
- // use the faces's vertices
- if (result) {
- // make quat using verts stored in result
- outFace.m_verts.push_back(quadverts[0]);
- outFace.m_verts.push_back(quadverts[1]);
- outFace.m_verts.push_back(quadverts[2]);
- outFace.m_verts.push_back(quadverts[3]);
- } else {
- MeshSet<3>::face_t::edge_iter_t edge_iter = f->begin();
- for (; edge_iter != f->end(); ++edge_iter) {
- //int index = ofacevert_num.getAttribute(f, edge_iter.idx());
- int index = vertexToIndex_map[edge_iter->vert];
- outFace.m_verts.push_back( index );
- }
+ // add all information except vertices to the output mesh
+ outputMesh->FaceSet().push_back(BSP_MFace());
+ BSP_MFace& outFace = outputMesh->FaceSet().back();
+ outFace.m_verts.clear();
+ outFace.m_plane.setValue(f->plane.N.v);
+ outFace.m_orig_face = orig;
+
+ // if we merged faces, use the list of common vertices; otherwise
+ // use the faces's vertices
+ if (result) {
+ // make quat using verts stored in result
+ outFace.m_verts.push_back(quadverts[0]);
+ outFace.m_verts.push_back(quadverts[1]);
+ outFace.m_verts.push_back(quadverts[2]);
+ outFace.m_verts.push_back(quadverts[3]);
+ } else {
+ MeshSet<3>::face_t::edge_iter_t edge_iter = f->begin();
+ for (; edge_iter != f->end(); ++edge_iter) {
+ //int index = ofacevert_num.getAttribute(f, edge_iter.idx());
+ int index = vertexToIndex_map[edge_iter->vert];
+ outFace.m_verts.push_back( index );
}
}
}
diff --git a/intern/boolop/extern/BOP_Interface.h b/intern/bsp/intern/BOP_Interface.h
index fbada7dcab5..c7402388a29 100644
--- a/intern/boolop/extern/BOP_Interface.h
+++ b/intern/bsp/intern/BOP_Interface.h
@@ -26,13 +26,13 @@
*/
/** \file BOP_Interface.h
- * \ingroup boolop
+ * \ingroup bsp
*/
#ifndef __BOP_INTERFACE_H__
#define __BOP_INTERFACE_H__
-#include "../../bsp/intern/BSP_CSGMesh.h"
+#include "BSP_CSGMesh.h"
typedef enum EnumBoolOpState {BOP_OK, BOP_NO_SOLID, BOP_ERROR} BoolOpState;
typedef enum EnumBoolOpType {BOP_INTERSECTION=e_csg_intersection, BOP_UNION=e_csg_union, BOP_DIFFERENCE=e_csg_difference} BoolOpType;
diff --git a/intern/bsp/intern/BSP_CSGMesh.cpp b/intern/bsp/intern/BSP_CSGMesh.cpp
index 82919688a38..4dda7741f67 100644
--- a/intern/bsp/intern/BSP_CSGMesh.cpp
+++ b/intern/bsp/intern/BSP_CSGMesh.cpp
@@ -486,7 +486,7 @@ VertexFaces(
BSP_MEdge &e = edges[*e_it];
// iterate through the faces of this edge - push unselected
- // edges to ouput and then select the edge
+ // edges to output and then select the edge
vector<BSP_FaceInd>::const_iterator e_faces_end = e.m_faces.end();
vector<BSP_FaceInd>::iterator e_faces_it = e.m_faces.begin();
diff --git a/intern/bsp/intern/CSG_BooleanOps.cpp b/intern/bsp/intern/CSG_BooleanOps.cpp
index df1374ef10b..4f71e7992a1 100644
--- a/intern/bsp/intern/CSG_BooleanOps.cpp
+++ b/intern/bsp/intern/CSG_BooleanOps.cpp
@@ -31,7 +31,6 @@
/**
-
* Implementation of external api for CSG part of BSP lib interface.
*/
@@ -39,7 +38,7 @@
#include "BSP_CSGMesh_CFIterator.h"
#include "MEM_RefCountPtr.h"
-#include "../../boolop/extern/BOP_Interface.h"
+#include "BOP_Interface.h"
#include <iostream>
using namespace std;
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsp b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsp
deleted file mode 100644
index 4474eaa5d90..00000000000
--- a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsp
+++ /dev/null
@@ -1,126 +0,0 @@
-# Microsoft Developer Studio Project File - Name="BSP_GhostTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=BSP_GhostTest - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "BSP_GhostTest.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "BSP_GhostTest.mak" CFG="BSP_GhostTest - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "BSP_GhostTest - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "BSP_GhostTest - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "BSP_GhostTest - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /G6 /MT /W3 /GX /O2 /Ob2 /I "../../extern/" /I "../../../../lib/windows/string/include" /I "../../../../lib/windows/ghost/include" /I "../../../../lib/windows/moto/include" /I "../../../../lib/windows/memutil/include" /I "../../../../lib/windows/container/include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x413 /d "NDEBUG"
-# ADD RSC /l 0x413 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 glu32.lib opengl32.lib kernel32.lib user32.lib gdi32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\lib\windows\glut-3.7\lib\\"
-
-!ELSEIF "$(CFG)" == "BSP_GhostTest - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../extern/" /I "../../../../lib/windows/string/include" /I "../../../../lib/windows/ghost/include" /I "../../../../lib/windows/moto/include" /I "../../../../lib/windows/memutil/include" /I "../../../../lib/windows/container/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x413 /d "_DEBUG"
-# ADD RSC /l 0x413 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 glu32.lib opengl32.lib user32.lib gdi32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\lib\windows\glut-3.7\lib\\"
-
-!ENDIF
-
-# Begin Target
-
-# Name "BSP_GhostTest - Win32 Release"
-# Name "BSP_GhostTest - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\BSP_GhostTest3D.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\BSP_GhostTest3D.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\BSP_MeshDrawer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\BSP_MeshDrawer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\BSP_PlyLoader.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\BSP_PlyLoader.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\BSP_TMesh.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\main.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ply.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\plyfile.c
-# End Source File
-# End Target
-# End Project
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsw b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsw
deleted file mode 100644
index 0d9ca3d2b08..00000000000
--- a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest.dsw
+++ /dev/null
@@ -1,125 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "BSP_GhostTest"=.\BSP_GhostTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name bsplib
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name ghost
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name string
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name MoTo
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "MoTo"=..\..\..\moto\make\msvc_6_0\MoTo.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "bsplib"=..\..\make\msvc6_0\bsplib.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name container
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name memutil
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name MoTo
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "container"=..\..\..\container\make\msvc_6_0\container.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name memutil
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "ghost"=..\..\..\ghost\make\msvc\ghost.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "memutil"=..\..\..\memutil\make\msvc_60\memutil.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "string"=..\..\..\string\make\msvc_6_0\string.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp
deleted file mode 100644
index 46cde625cf2..00000000000
--- a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp
+++ /dev/null
@@ -1,649 +0,0 @@
-/**
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/**
-
-* Copyright (C) 2001 NaN Technologies B.V.
-*/
-#if defined(WIN32) || defined(__APPLE__)
-# ifdef WIN32
-# include <windows.h>
-# include <GL/gl.h>
-# include <GL/glu.h>
-# else // WIN32
-# include <AGL/gl.h>
-# endif // WIN32
-#else // defined(WIN32) || defined(__APPLE__)
-# include <GL/gl.h>
-# include <GL/glu.h>
-#endif // defined(WIN32) || defined(__APPLE__)
-
-
-#include "BSP_GhostTest3D.h"
-#include "BSP_MeshDrawer.h"
-
-#include "GHOST_ISystem.h"
-#include "GHOST_IWindow.h"
-
-#include "MT_Quaternion.h"
-#include "MT_Transform.h"
-#include "CSG_BooleanOps.h"
-
-#include <iostream>
-
- int
-EmptyInterpFunc(
- void *d1,
- void * d2,
- void *dnew,
- float epsilon
-){
- return 0;
-}
-
-
-
-using namespace std;
-
-
-BSP_GhostTestApp3D::
-BSP_GhostTestApp3D(
-) :
- m_window(NULL),
- m_system(NULL),
- m_finish_me_off(false),
- m_current_object(0)
-{
- //nothing to do;
-}
-
- void
-BSP_GhostTestApp3D::
-SetMesh(
- MEM_SmartPtr<BSP_TMesh> mesh
-){
- m_meshes.push_back(mesh);
-
- BSP_RotationSetting rotation_setting;
- BSP_TranslationSetting translation_setting;
-
- rotation_setting.m_angle_x = MT_Scalar(0);
- rotation_setting.m_angle_y = MT_Scalar(0);
- rotation_setting.m_moving = false;
- rotation_setting.x_old = 0;
- rotation_setting.y_old = 0;
-
- translation_setting.m_t_x = MT_Scalar(0);
- translation_setting.m_t_y = MT_Scalar(0);
- translation_setting.m_t_z = MT_Scalar(0);
- translation_setting.m_moving = false;
- translation_setting.x_old = 0;
- translation_setting.y_old = 0;
-
- m_rotation_settings.push_back(rotation_setting);
- m_translation_settings.push_back(translation_setting);
- m_render_modes.push_back(e_wireframe_shaded);
- m_scale_settings.push_back(MT_Scalar(1));
-
-}
-
- void
-BSP_GhostTestApp3D::
-Swap(
- int i
-){
-
- if (!m_rotation_settings[i].m_moving && !m_translation_settings[i].m_moving) {
- swap(m_meshes[i],m_meshes.back());
- swap(m_rotation_settings[i],m_rotation_settings.back());
- swap(m_translation_settings[i],m_translation_settings.back());
- swap(m_scale_settings[i],m_scale_settings.back());
- swap(m_render_modes[i],m_render_modes.back());
- }
-}
-
-
- MT_Transform
-BSP_GhostTestApp3D::
-GetTransform(
- int i
-){
-
- MT_Quaternion q_ax(MT_Vector3(0,1,0),m_rotation_settings[i].m_angle_x);
- MT_Quaternion q_ay(MT_Vector3(1,0,0),m_rotation_settings[i].m_angle_y);
-
- MT_Point3 tr(
- m_translation_settings[i].m_t_x,
- m_translation_settings[i].m_t_y,
- m_translation_settings[i].m_t_z
- );
-
-
- MT_Matrix3x3 rotx(q_ax);
- MT_Matrix3x3 roty(q_ay);
-
- MT_Matrix3x3 rot = rotx * roty;
-
- MT_Transform trans(tr,rot);
-
- MT_Transform scalet;
- scalet.setIdentity();
- scalet.scale(m_scale_settings[i],m_scale_settings[i],m_scale_settings[i]);
-
- return trans * scalet;
-}
-
- void
-BSP_GhostTestApp3D::
-Operate(
- int type
-){
-
- CSG_VertexIteratorDescriptor * vA = VertexIt_Construct(m_meshes[0],GetTransform(0));
- CSG_FaceIteratorDescriptor * fA = FaceIt_Construct(m_meshes[0]);
-
- CSG_VertexIteratorDescriptor * vB = VertexIt_Construct(m_meshes[1],GetTransform(1));
- CSG_FaceIteratorDescriptor * fB = FaceIt_Construct(m_meshes[1]);
-
- // describe properties.
-
- CSG_MeshPropertyDescriptor props;
- props.user_face_vertex_data_size = 0;
- props.user_data_size = 0;
-
- CSG_BooleanOperation * op = CSG_NewBooleanFunction();
- props = CSG_DescibeOperands(op,props,props);
-
- CSG_PerformBooleanOperation(
- op,CSG_OperationType(type),
- *fA,*vA,*fB,*vB,EmptyInterpFunc
- );
-
- CSG_FaceIteratorDescriptor out_f;
- CSG_OutputFaceDescriptor(op,&out_f);
-
- CSG_VertexIteratorDescriptor out_v;
- CSG_OutputVertexDescriptor(op,&out_v);
-
- MEM_SmartPtr<BSP_TMesh> new_mesh (BuildMesh(props,out_f,out_v));
-
- // free stuff
-
- CSG_FreeVertexDescriptor(&out_v);
- CSG_FreeFaceDescriptor(&out_f);
- CSG_FreeBooleanOperation(op);
-
- op = NULL;
- SetMesh(new_mesh);
-}
-
-
- void
-BSP_GhostTestApp3D::
-UpdateFrame(
-) {
- if (m_window) {
-
- GHOST_Rect v_rect;
- m_window->getClientBounds(v_rect);
-
- glViewport(0,0,v_rect.getWidth(),v_rect.getHeight());
-
- }
-}
-
-
-MT_Vector3
-BSP_GhostTestApp3D::
-UnProject(
- const MT_Vector3 & vec
-) {
-
- GLint viewport[4];
- GLdouble mvmatrix[16],projmatrix[16];
-
- glGetIntegerv(GL_VIEWPORT,viewport);
- glGetDoublev(GL_MODELVIEW_MATRIX,mvmatrix);
- glGetDoublev(GL_PROJECTION_MATRIX,projmatrix);
-
- GLdouble realy = viewport[3] - vec.y() - 1;
- GLdouble outx,outy,outz;
-
- gluUnProject(vec.x(),realy,vec.z(),mvmatrix,projmatrix,viewport,&outx,&outy,&outz);
-
- return MT_Vector3(outx,outy,outz);
-}
-
-
- bool
-BSP_GhostTestApp3D::
-InitApp(
-){
-
- // create a system and window with opengl
- // rendering context.
-
- GHOST_TSuccess success = GHOST_ISystem::createSystem();
- if (success == GHOST_kFailure) return false;
-
- m_system = GHOST_ISystem::getSystem();
- if (m_system == NULL) return false;
-
- m_system->addEventConsumer(this);
-
- m_window = m_system->createWindow(
- "GHOST crud3D!",
- 100,100,512,512,GHOST_kWindowStateNormal,
- GHOST_kDrawingContextTypeOpenGL,false
- );
-
- if (
- m_window == NULL
- ) {
- m_system = NULL;
- GHOST_ISystem::disposeSystem();
- return false;
- }
-
- // make an opengl frustum for this wind
-
- MT_Vector3 min,max;
-
- min = m_meshes[0]->m_min;
- max = m_meshes[0]->m_max;
- InitOpenGl(min,max);
-
- return true;
-}
-
- void
-BSP_GhostTestApp3D::
-Run(
-){
- if (m_system == NULL) {
- return;
- }
-
- while (!m_finish_me_off) {
- m_system->processEvents(true);
- m_system->dispatchEvents();
- };
-}
-
- bool
-BSP_GhostTestApp3D::
-processEvent(
- GHOST_IEvent* event
-){
-
- bool handled = false;
-
- switch(event->getType()) {
- case GHOST_kEventWindowSize:
- case GHOST_kEventWindowActivate:
- UpdateFrame();
- case GHOST_kEventWindowUpdate:
- DrawPolies();
- handled = true;
- break;
- case GHOST_kEventButtonDown:
- {
- int x,y;
- m_system->getCursorPosition(x,y);
-
-
- int wx,wy;
- m_window->screenToClient(x,y,wx,wy);
-
- GHOST_TButtonMask button =
- static_cast<GHOST_TEventButtonData *>(event->getData())->button;
-
- if (button == GHOST_kButtonMaskLeft) {
- m_rotation_settings[m_current_object].m_moving = true;
- m_rotation_settings[m_current_object].x_old = x;
- m_rotation_settings[m_current_object].y_old = y;
- } else
- if (button == GHOST_kButtonMaskRight) {
- m_translation_settings[m_current_object].m_moving = true;
- m_translation_settings[m_current_object].x_old = x;
- m_translation_settings[m_current_object].y_old = y;
- } else
-
- m_window->invalidate();
- handled = true;
- break;
-
- }
-
- case GHOST_kEventButtonUp:
- {
-
- GHOST_TButtonMask button =
- static_cast<GHOST_TEventButtonData *>(event->getData())->button;
-
- if (button == GHOST_kButtonMaskLeft) {
- m_rotation_settings[m_current_object].m_moving = false;
- m_rotation_settings[m_current_object].x_old = 0;
- m_rotation_settings[m_current_object].y_old = 0;
-
- } else
- if (button == GHOST_kButtonMaskRight) {
- m_translation_settings[m_current_object].m_moving = false;
- m_translation_settings[m_current_object].x_old;
- m_translation_settings[m_current_object].y_old;
-
- }
- m_window->invalidate();
- handled = true;
- break;
-
- }
-
- case GHOST_kEventCursorMove:
- {
- int x,y;
- m_system->getCursorPosition(x,y);
- int wx,wy;
- m_window->screenToClient(x,y,wx,wy);
-
- if (m_rotation_settings[m_current_object].m_moving) {
- m_rotation_settings[m_current_object].m_angle_x = MT_Scalar(wx)/20;
- m_rotation_settings[m_current_object].x_old = wx;
- m_rotation_settings[m_current_object].m_angle_y = MT_Scalar(wy)/20;
- m_rotation_settings[m_current_object].y_old = wy;
-
- m_window->invalidate();
- }
- if (m_translation_settings[m_current_object].m_moving) {
-
- // project current objects bounding box center into screen space.
- // unproject mouse point into object space using z-value from
- // projected bounding box center.
-
- GHOST_Rect bounds;
- m_window->getClientBounds(bounds);
-
- int w_h = bounds.getHeight();
-
- y = w_h - wy;
- x = wx;
-
- double mvmatrix[16];
- double projmatrix[16];
- GLint viewport[4];
-
- double px, py, pz,sz;
-
- /* Get the matrices needed for gluUnProject */
- glGetIntegerv(GL_VIEWPORT, viewport);
- glGetDoublev(GL_MODELVIEW_MATRIX, mvmatrix);
- glGetDoublev(GL_PROJECTION_MATRIX, projmatrix);
-
- // work out the position of the end effector in screen space
-
- GLdouble ex,ey,ez;
-
- ex = m_translation_settings[m_current_object].m_t_x;
- ey = m_translation_settings[m_current_object].m_t_y;
- ez = m_translation_settings[m_current_object].m_t_z;
-
- gluProject(ex, ey, ez, mvmatrix, projmatrix, viewport, &px, &py, &sz);
- gluUnProject((GLdouble) x, (GLdouble) y, sz, mvmatrix, projmatrix, viewport, &px, &py, &pz);
-
- m_translation_settings[m_current_object].m_t_x = px;
- m_translation_settings[m_current_object].m_t_y = py;
- m_translation_settings[m_current_object].m_t_z = pz;
- m_window->invalidate();
-
- }
-
- handled = true;
- break;
- }
-
- case GHOST_kEventKeyDown :
- {
- GHOST_TEventKeyData *kd =
- static_cast<GHOST_TEventKeyData *>(event->getData());
-
-
- switch(kd->key) {
- case GHOST_kKeyI:
- {
- // now intersect meshes.
- Operate(e_csg_intersection);
- handled = true;
- m_window->invalidate();
- break;
- }
- case GHOST_kKeyU:
- {
- Operate(e_csg_union);
- handled = true;
- m_window->invalidate();
- break;
- }
- case GHOST_kKeyD:
- {
- Operate(e_csg_difference);
- handled = true;
- m_window->invalidate();
- break;
- }
-
- case GHOST_kKeyA:
- {
-
- m_scale_settings[m_current_object] *= 1.1;
- handled = true;
- m_window->invalidate();
- break;
- }
- case GHOST_kKeyZ:
- {
- m_scale_settings[m_current_object] *= 0.8;
-
- handled = true;
- m_window->invalidate();
- break;
- }
-
- case GHOST_kKeyR:
- m_render_modes[m_current_object]++;
- if (m_render_modes[m_current_object] > e_last_render_mode) {
- m_render_modes[m_current_object] = e_first_render_mode;
- }
- handled = true;
- m_window->invalidate();
- break;
-
- case GHOST_kKeyB:
- handled = true;
- m_window->invalidate();
- break;
-
- case GHOST_kKeyQ:
- m_finish_me_off = true;
- handled = true;
- break;
-
- case GHOST_kKeyS:
- Swap(m_current_object);
- m_window->invalidate();
- handled = true;
- break;
-
- case GHOST_kKeySpace:
-
- // increment the current object only if the object is not being
- // manipulated.
- if (! (m_rotation_settings[m_current_object].m_moving || m_translation_settings[m_current_object].m_moving)) {
- m_current_object ++;
- if (m_current_object >= m_meshes.size()) {
- m_current_object = 0;
-
- }
- }
- m_window->invalidate();
- handled = true;
- break;
- default :
- break;
- }
- }
-
- default :
- break;
- }
- return handled;
-};
-
-BSP_GhostTestApp3D::
-~BSP_GhostTestApp3D(
-){
-
- if (m_window) {
- m_system->disposeWindow(m_window);
- m_window = NULL;
- GHOST_ISystem::disposeSystem();
- m_system = NULL;
- }
-};
-
-
-
- void
-BSP_GhostTestApp3D::
-DrawPolies(
-){
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- for (int i = 0; i < m_meshes.size(); ++i) {
- MT_Transform trans = GetTransform(i);
-
- float opengl_mat[16];
- trans.getValue(opengl_mat);
-
- glPushMatrix();
- glMultMatrixf(opengl_mat);
- MT_Vector3 color(1.0,1.0,1.0);
- if (i == m_current_object) {
- color = MT_Vector3(1.0,0,0);
- }
- BSP_MeshDrawer::DrawMesh(m_meshes[i].Ref(),m_render_modes[i]);
-
- glPopMatrix();
- }
-
- m_window->swapBuffers();
-
-}
-
- void
-BSP_GhostTestApp3D::
-InitOpenGl(
- const MT_Vector3 &min,
- const MT_Vector3 &max
-){
-
- GLfloat light_diffuse0[] = {1.0, 0.0, 0.0, 0.5}; /* Red diffuse light. */
- GLfloat light_position0[] = {1.0, 1.0, 1.0, 0.0}; /* Infinite light location. */
-
- GLfloat light_diffuse1[] = {1.0, 1.0, 1.0, 0.5}; /* Red diffuse light. */
- GLfloat light_position1[] = {1.0, 0, 0, 0.0}; /* Infinite light location. */
-
- /* Enable a single OpenGL light. */
-
- glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse0);
- glLightfv(GL_LIGHT0, GL_POSITION, light_position0);
-
- glLightfv(GL_LIGHT1, GL_DIFFUSE, light_diffuse1);
- glLightfv(GL_LIGHT1, GL_POSITION, light_position1);
-
-
- glEnable(GL_LIGHT0);
- glEnable(GL_LIGHT1);
- glEnable(GL_LIGHTING);
-
- // make sure there is no back face culling.
- // glDisable(GL_CULL_FACE);
-
- // use two sided lighting model
- glLightModeli(GL_LIGHT_MODEL_TWO_SIDE,GL_TRUE);
-
- /* Use depth buffering for hidden surface elimination. */
-
- glEnable(GL_DEPTH_TEST);
-
- /* Setup the view of the cube. */
-
- glMatrixMode(GL_PROJECTION);
-
- // center of the box + 3* depth of box
-
- MT_Vector3 center = (min + max) * 0.5;
- MT_Vector3 diag = max - min;
-
- float depth = diag.length();
- float distance = 5;
-
- gluPerspective(
- /* field of view in degree */ 40.0,
- /* aspect ratio */ 1.0,
- /* Z near */ 1.0,
- /* Z far */ distance * depth * 2
- );
- glMatrixMode(GL_MODELVIEW);
-
- gluLookAt(
- center.x(), center.y(), center.z() + distance*depth, //eye
- center.x(), center.y(), center.z(), //center
- 0.0, 1.0, 0.
- ); /* up is in positive Y direction */
-
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h
deleted file mode 100644
index 8bfa6d061ee..00000000000
--- a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/**
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#ifndef __BSP_GHOSTTEST3D_H__
-#define __BSP_GHOSTTEST3D_H__
-
-#include "GHOST_IEventConsumer.h"
-#include "MT_Vector3.h"
-#include "BSP_TMesh.h"
-#include "BSP_MeshDrawer.h"
-
-#include <vector>
-
-class GHOST_IWindow;
-class GHOST_ISystem;
-
-
-class BSP_GhostTestApp3D :
-public GHOST_IEventConsumer
-{
-public :
- // Construct an instance of the application;
-
- BSP_GhostTestApp3D(
- );
-
- // initialize the applicaton
-
- bool
- InitApp(
- );
-
- // Run the application untill internal return.
- void
- Run(
- );
-
- ~BSP_GhostTestApp3D(
- );
-
- void
- SetMesh(
- MEM_SmartPtr<BSP_TMesh> mesh
- );
-
-private :
-
- struct BSP_RotationSetting {
- MT_Scalar m_angle_x;
- MT_Scalar m_angle_y;
- int x_old;
- int y_old;
- bool m_moving;
- };
-
- struct BSP_TranslationSetting {
- MT_Scalar m_t_x;
- MT_Scalar m_t_y;
- MT_Scalar m_t_z;
- int x_old;
- int y_old;
- bool m_moving;
- };
-
- // Return the transform of object i
-
- MT_Transform
- GetTransform(
- int active_object
- );
-
- // Perform an operation between the first two objects in the
- // list
-
- void
- Operate(
- int type
- );
-
- // Swap mesh i and settings with the last mesh in list.
-
- void
- Swap(
- int i
- );
-
- void
- DrawPolies(
- );
-
- void
- UpdateFrame(
- );
-
- MT_Vector3
- UnProject(
- const MT_Vector3 & vec
- );
-
- // Create a frustum and projection matrix to
- // look at the bounding box
-
- void
- InitOpenGl(
- const MT_Vector3 &min,
- const MT_Vector3 &max
- );
-
-
- // inherited from GHOST_IEventConsumer
- bool
- processEvent(
- GHOST_IEvent* event
- );
-
- GHOST_IWindow *m_window;
- GHOST_ISystem *m_system;
-
- bool m_finish_me_off;
-
- // List of current meshes.
- std::vector< MEM_SmartPtr<BSP_TMesh> > m_meshes;
-
- std::vector< BSP_RotationSetting> m_rotation_settings;
- std::vector< BSP_TranslationSetting> m_translation_settings;
- std::vector< MT_Scalar> m_scale_settings;
- std::vector< int> m_render_modes;
-
- int m_current_object;
-
-
-};
-
-#endif
-
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp b/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp
deleted file mode 100644
index a1a3150c4d4..00000000000
--- a/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#include "BSP_MeshDrawer.h"
-
-#include "BSP_TMesh.h"
-
-#if defined(WIN32) || defined(__APPLE__)
-# ifdef WIN32
-# include <windows.h>
-# include <GL/gl.h>
-# include <GL/glu.h>
-# else // WIN32
-# include <AGL/gl.h>
-# endif // WIN32
-#else // defined(WIN32) || defined(__APPLE__)
-# include <GL/gl.h>
-# include <GL/glu.h>
-#endif // defined(WIN32) || defined(__APPLE__)
-
-#include <vector>
-
-using namespace std;
-
- void
-BSP_MeshDrawer::
-DrawMesh(
- BSP_TMesh &mesh,
- int render_mode
-){
-
-
- if (render_mode == e_none) return;
-
- // decompose polygons into triangles.
-
- glEnable(GL_LIGHTING);
-
-
- if (render_mode == e_wireframe || render_mode == e_wireframe_shaded) {
-
- glColor3f(0.0, 0.0, 0.0);
-
- if (render_mode == e_wireframe) {
- glDisable(GL_LIGHTING);
- } else {
- glEnable(GL_LIGHTING);
- }
-
- glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
-
- glEnable(GL_POLYGON_OFFSET_FILL);
- glPolygonOffset(1.0,1.0);
-
- glBegin(GL_TRIANGLES);
- DrawPolies(mesh);
- glEnd();
-
- glColor3f(1.0, 1.0, 1.0);
- glDisable(GL_LIGHTING);
- glDisable(GL_POLYGON_OFFSET_FILL);
- glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
-
- glBegin(GL_TRIANGLES);
- DrawPolies(mesh);
- glEnd();
- glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
- } else {
-
- glEnable(GL_LIGHTING);
-
- glBegin(GL_TRIANGLES);
- DrawPolies(mesh);
- glEnd();
- }
-
-
-}
-
-
- void
-BSP_MeshDrawer::
-DrawPolies(
- BSP_TMesh &mesh
-){
-
- const vector<BSP_TVertex> & verts = mesh.VertexSet();
- const vector<BSP_TFace> &faces = mesh.FaceSet();
-
- // just draw the edges for now.
-
- vector<BSP_TVertex>::const_iterator vertex_it = verts.begin();
-
-
- vector<BSP_TFace>::const_iterator faces_it = faces.begin();
- vector<BSP_TFace>::const_iterator faces_end = faces.end();
-
- for (;faces_it != faces_end; ++faces_it ){
-
- glNormal3f(
- faces_it->m_normal.x(),
- faces_it->m_normal.y(),
- faces_it->m_normal.z()
- );
-
- glVertex3f(
- verts[faces_it->m_verts[0]].m_pos.x(),
- verts[faces_it->m_verts[0]].m_pos.y(),
- verts[faces_it->m_verts[0]].m_pos.z()
- );
- glVertex3f(
- verts[faces_it->m_verts[1]].m_pos.x(),
- verts[faces_it->m_verts[1]].m_pos.y(),
- verts[faces_it->m_verts[1]].m_pos.z()
- );
- glVertex3f(
- verts[faces_it->m_verts[2]].m_pos.x(),
- verts[faces_it->m_verts[2]].m_pos.y(),
- verts[faces_it->m_verts[2]].m_pos.z()
- );
- }
-}
-
-
-
-
-
-
-
-
-
-
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h b/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h
deleted file mode 100644
index 17aeccc603a..00000000000
--- a/intern/bsp/test/BSP_GhostTest/BSP_MeshDrawer.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#ifndef __BSP_MESHDRAWER_H__
-#define __BSP_MESHDRAWER_H__
-
-class BSP_TMesh;
-class MT_Vector3;
-
-enum BSP_TRenderMode {
- e_shaded,
- e_none,
- e_wireframe,
- e_wireframe_shaded,
- e_first_render_mode = e_shaded,
- e_last_render_mode = e_wireframe_shaded
-};
-
-class BSP_MeshDrawer
-{
-public :
- static
- void
- DrawMesh(
- BSP_TMesh &mesh,
- int render_mode
- );
-
-private :
-
- static
- void
- DrawPolies(
- BSP_TMesh &mesh
- );
-
-
- BSP_MeshDrawer(
- );
-
- ~BSP_MeshDrawer(
- );
-
-};
-
-#endif
-
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp b/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp
deleted file mode 100644
index 65a1da34a9b..00000000000
--- a/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.cpp
+++ /dev/null
@@ -1,192 +0,0 @@
-/**
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#include "BSP_PlyLoader.h"
-
-#include "MT_Vector3.h"
-#include "ply.h"
-
-struct LoadVertex {
- float x,y,z; /* the usual 3-space position of a vertex */
-};
-
-struct LoadFace {
- unsigned char intensity; /* this user attaches intensity to faces */
- unsigned char nverts; /* number of vertex indices in list */
- int *verts; /* vertex index list */
-};
-
-
- MEM_SmartPtr<BSP_TMesh>
-BSP_PlyLoader::
-NewMeshFromFile(
- char * file_name,
- MT_Vector3 &min,
- MT_Vector3 &max
-
-) {
-
- min = MT_Vector3(MT_INFINITY,MT_INFINITY,MT_INFINITY);
- max = MT_Vector3(-MT_INFINITY,-MT_INFINITY,-MT_INFINITY);
-
- PlyProperty vert_props[] = { /* list of property information for a vertex */
- {"x", PLY_FLOAT, PLY_FLOAT, offsetof(LoadVertex,x), 0, 0, 0, 0},
- {"y", PLY_FLOAT, PLY_FLOAT, offsetof(LoadVertex,y), 0, 0, 0, 0},
- {"z", PLY_FLOAT, PLY_FLOAT, offsetof(LoadVertex,z), 0, 0, 0, 0},
- };
-
- PlyProperty face_props[] = { /* list of property information for a vertex */
- {"vertex_indices", PLY_INT, PLY_INT, offsetof(LoadFace,verts),
- 1, PLY_UCHAR, PLY_UCHAR, offsetof(LoadFace,nverts)},
- };
-
- MEM_SmartPtr<BSP_TMesh> mesh = new BSP_TMesh;
-
- if (mesh == NULL) return NULL;
-
- int i,j;
- PlyFile *ply;
- int nelems;
- char **elist;
- int file_type;
- float version;
- int nprops;
- int num_elems;
- PlyProperty **plist;
-
- char *elem_name;
-
- LoadVertex load_vertex;
- LoadFace load_face;
-
- /* open a PLY file for reading */
- ply = ply_open_for_reading(
- file_name,
- &nelems,
- &elist,
- &file_type,
- &version
- );
-
- if (ply == NULL) return NULL;
-
- /* go through each kind of element that we learned is in the file */
- /* and read them */
-
- for (i = 0; i < nelems; i++) {
-
- /* get the description of the first element */
-
- elem_name = elist[i];
- plist = ply_get_element_description (ply, elem_name, &num_elems, &nprops);
-
- /* print the name of the element, for debugging */
-
- /* if we're on vertex elements, read them in */
-
- if (equal_strings ("vertex", elem_name)) {
-
- /* set up for getting vertex elements */
-
- ply_get_property (ply, elem_name, &vert_props[0]);
- ply_get_property (ply, elem_name, &vert_props[1]);
- ply_get_property (ply, elem_name, &vert_props[2]);
-
- // make some memory for the vertices
- mesh->VertexSet().reserve(num_elems);
-
- /* grab all the vertex elements */
- for (j = 0; j < num_elems; j++) {
-
- /* grab and element from the file */
- ply_get_element (ply, (void *)&load_vertex);
- // pass the vertex into the mesh builder.
-
- if (load_vertex.x < min.x()) {
- min.x() = load_vertex.x;
- } else
- if (load_vertex.x > max.x()) {
- max.x()= load_vertex.x;
- }
-
- if (load_vertex.y < min.y()) {
- min.y() = load_vertex.y;
- } else
- if (load_vertex.y > max.y()) {
- max.y()= load_vertex.y;
- }
-
- if (load_vertex.z < min.z()) {
- min.z() = load_vertex.z;
- } else
- if (load_vertex.z > max.z()) {
- max.z()= load_vertex.z;
- }
-
- BSP_TVertex my_vert;
- my_vert.m_pos = MT_Vector3(load_vertex.x,load_vertex.y,load_vertex.z);
- mesh->VertexSet().push_back(my_vert);
- }
-
-
- }
-
- /* if we're on face elements, read them in */
- if (equal_strings ("face", elem_name)) {
-
- /* set up for getting face elements */
-
- ply_get_property (ply, elem_name, &face_props[0]);
-
- /* grab all the face elements */
- for (j = 0; j < num_elems; j++) {
-
- ply_get_element (ply, (void *)&load_face);
-
- int v;
- for (v = 2; v< load_face.nverts; v++) {
-
- BSP_TFace f;
-
- f.m_verts[0] = load_face.verts[0];
- f.m_verts[1] = load_face.verts[v-1];
- f.m_verts[2] = load_face.verts[v];
-
- mesh->BuildNormal(f);
- mesh->FaceSet().push_back(f);
- }
- // free up the memory this pile of shit used to allocate the polygon's vertices
- free (load_face.verts);
- }
-
- }
- }
- /* close the PLY file */
- ply_close (ply);
-
- return mesh;
-}
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h b/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h
deleted file mode 100644
index 8fcac29253b..00000000000
--- a/intern/bsp/test/BSP_GhostTest/BSP_PlyLoader.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#ifndef __BSP_PLYLOADER_H__
-#define __BSP_PLYLOADER_H__
-
-#include "MEM_SmartPtr.h"
-#include "BSP_TMesh.h"
-
-class BSP_PlyLoader {
-public :
-
- static
- MEM_SmartPtr<BSP_TMesh>
- NewMeshFromFile(
- char * file_name,
- MT_Vector3 &min,
- MT_Vector3 &max
- );
-
-
-private :
-
- // unimplemented - not for instantiation.
-
- BSP_PlyLoader(
- );
-
- ~BSP_PlyLoader(
- );
-};
-
-
-
-#endif
-
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_TMesh.h b/intern/bsp/test/BSP_GhostTest/BSP_TMesh.h
deleted file mode 100644
index 793fb47f73b..00000000000
--- a/intern/bsp/test/BSP_GhostTest/BSP_TMesh.h
+++ /dev/null
@@ -1,397 +0,0 @@
-/**
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#ifndef __BSP_TMESH_H__
-#define __BSP_TMESH_H__
-
-#include "MT_Point3.h"
-#include "MT_Vector3.h"
-#include "MT_Transform.h"
-
-#include "MEM_SmartPtr.h"
-
-#include <vector>
-
-#include "CSG_BooleanOps.h"
-
-/**
- * A very basic test mesh.
- */
-
-struct BSP_TVertex {
- MT_Point3 m_pos;
-};
-
-struct BSP_TFace {
- int m_verts[3];
- MT_Vector3 m_normal;
-};
-
-
-class BSP_TMesh {
-public :
-
- std::vector<BSP_TVertex> m_verts;
- std::vector<BSP_TFace> m_faces;
-
- MT_Vector3 m_min,m_max;
-
- std::vector<BSP_TVertex> &
- VertexSet(
- ){
- return m_verts;
- }
-
- std::vector<BSP_TFace> &
- FaceSet(
- ) {
- return m_faces;
- }
-
- void
- AddFace(
- int *verts,
- int num_verts
- ){
- int i;
- for (i= 2; i <num_verts; i++) {
- BSP_TFace f;
- f.m_verts[0] = verts[0];
- f.m_verts[1] = verts[i-1];
- f.m_verts[2] = verts[i];
-
- m_faces.push_back(f);
-
- BuildNormal(m_faces.back());
- }
- }
-
- void
- BuildNormal(
- BSP_TFace & f
- ) const {
- MT_Vector3 l1 =
- m_verts[f.m_verts[1]].m_pos -
- m_verts[f.m_verts[0]].m_pos;
- MT_Vector3 l2 =
- m_verts[f.m_verts[2]].m_pos -
- m_verts[f.m_verts[1]].m_pos;
-
- MT_Vector3 normal = l1.cross(l2);
-
- f.m_normal = normal.safe_normalized();
- }
-
-};
-
-
-
-/**
- * some iterator functions to describe the mesh to the BSP module.
- */
-
-/**
- * This class defines 2 C style iterators over a CSG mesh, one for
- * vertices and 1 for faces. They conform to the iterator interface
- * defined in CSG_BooleanOps.h
- */
-
-struct VertexIt {
- BSP_TMesh * mesh;
- BSP_TVertex * pos;
- MT_Transform trans;
-};
-
-
-static
- void
-VertexIt_Destruct(
- CSG_VertexIteratorDescriptor * iterator
-) {
- delete ((VertexIt *)(iterator->it));
- iterator->it = NULL;
- delete(iterator);
-};
-
-
-static
- int
-VertexIt_Done(
- CSG_IteratorPtr it
-) {
- // assume CSG_IteratorPtr is of the correct type.
- VertexIt * vertex_it = (VertexIt *)it;
-
- if (vertex_it->pos < vertex_it->mesh->VertexSet().end()) return 0;
- return 1;
-};
-
-static
- void
-VertexIt_Fill(
- CSG_IteratorPtr it,
- CSG_IVertex *vert
-) {
- // assume CSG_IteratorPtr is of the correct type.
- VertexIt * vertex_it = (VertexIt *)it;
-
- MT_Point3 p = vertex_it->pos->m_pos;
- p = vertex_it->trans * p;
-
- p.getValue(vert->position);
-};
-
-static
- void
-VertexIt_Step(
- CSG_IteratorPtr it
-) {
- // assume CSG_IteratorPtr is of the correct type.
- VertexIt * vertex_it = (VertexIt *)it;
-
- ++(vertex_it->pos);
-};
-
-static
- void
-VertexIt_Reset(
- CSG_IteratorPtr it
-) {
- // assume CSG_IteratorPtr is of the correct type.
- VertexIt * vertex_it = (VertexIt *)it;
-
- vertex_it->pos = vertex_it->mesh->VertexSet().begin();
-};
-
-static
- CSG_VertexIteratorDescriptor *
-VertexIt_Construct(
- BSP_TMesh *mesh,
- MT_Transform trans
-){
- // user should have insured mesh is not equal to NULL.
-
- CSG_VertexIteratorDescriptor * output = new CSG_VertexIteratorDescriptor;
- if (output == NULL) return NULL;
- output->Done = VertexIt_Done;
- output->Fill = VertexIt_Fill;
- output->Step = VertexIt_Step;
- output->Reset = VertexIt_Reset;
- output->num_elements = mesh->VertexSet().size();
-
- VertexIt * v_it = new VertexIt;
- v_it->mesh = mesh;
- v_it->pos = mesh->VertexSet().begin();
- v_it->trans = trans;
- output->it = v_it;
- return output;
-};
-
-
-/**
- * Face iterator.
- */
-
-struct FaceIt {
- BSP_TMesh * mesh;
- BSP_TFace *pos;
-};
-
-
-static
- void
-FaceIt_Destruct(
- CSG_FaceIteratorDescriptor * iterator
-) {
- delete ((FaceIt *)(iterator->it));
- iterator->it = NULL;
- delete(iterator);
-};
-
-
-static
- int
-FaceIt_Done(
- CSG_IteratorPtr it
-) {
- // assume CSG_IteratorPtr is of the correct type.
- FaceIt * face_it = (FaceIt *)it;
-
- if (face_it->pos < face_it->mesh->FaceSet().end()) {
- return 0;
- }
- return 1;
-};
-
-static
- void
-FaceIt_Fill(
- CSG_IteratorPtr it,
- CSG_IFace *face
-){
- // assume CSG_IteratorPtr is of the correct type.
- FaceIt * face_it = (FaceIt *)it;
- // essentially iterating through a triangle fan here.
-
- face->vertex_index[0] = int(face_it->pos->m_verts[0]);
- face->vertex_index[1] = int(face_it->pos->m_verts[1]);
- face->vertex_index[2] = int(face_it->pos->m_verts[2]);
-
- face->vertex_number = 3;
-};
-
-static
- void
-FaceIt_Step(
- CSG_IteratorPtr it
-) {
- // assume CSG_IteratorPtr is of the correct type.
- FaceIt * face_it = (FaceIt *)it;
-
- face_it->pos ++;
-};
-
-static
- void
-FaceIt_Reset(
- CSG_IteratorPtr it
-) {
- // assume CSG_IteratorPtr is of the correct type.
- FaceIt * face_it = (FaceIt *)it;
-
- face_it->pos = face_it->mesh->FaceSet().begin();
-};
-
-static
- CSG_FaceIteratorDescriptor *
-FaceIt_Construct(
- BSP_TMesh * mesh
-) {
- CSG_FaceIteratorDescriptor * output = new CSG_FaceIteratorDescriptor;
- if (output == NULL) return NULL;
-
- output->Done = FaceIt_Done;
- output->Fill = FaceIt_Fill;
- output->Step = FaceIt_Step;
- output->Reset = FaceIt_Reset;
-
- output->num_elements = mesh->FaceSet().size();
-
- FaceIt * f_it = new FaceIt;
- f_it->mesh = mesh;
- f_it->pos = mesh->FaceSet().begin();
-
- output->it = f_it;
-
- return output;
-};
-
-/**
- * Some Build functions.
- */
-
-static
- MEM_SmartPtr<BSP_TMesh>
-BuildMesh(
- CSG_MeshPropertyDescriptor &props,
- CSG_FaceIteratorDescriptor &face_it,
- CSG_VertexIteratorDescriptor &vertex_it
-) {
- MEM_SmartPtr<BSP_TMesh> mesh = new BSP_TMesh();
-
- CSG_IVertex vert;
-
- while (!vertex_it.Done(vertex_it.it)) {
-
- vertex_it.Fill(vertex_it.it,&vert);
-
- BSP_TVertex v;
- v.m_pos = MT_Point3(vert.position);
- mesh->VertexSet().push_back(v);
-
- vertex_it.Step(vertex_it.it);
- }
-
-
- CSG_IFace face;
-
- while (!face_it.Done(face_it.it)) {
- face_it.Fill(face_it.it,&face);
-
- BSP_TFace f;
-
- f.m_verts[0] = face.vertex_index[0],
- f.m_verts[1] = face.vertex_index[1],
- f.m_verts[2] = face.vertex_index[2],
-
- mesh->BuildNormal(f);
-
- mesh->FaceSet().push_back(f);
-
- face_it.Step(face_it.it);
- }
-
- return mesh;
-};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#endif
-
diff --git a/intern/bsp/test/BSP_GhostTest/main.cpp b/intern/bsp/test/BSP_GhostTest/main.cpp
deleted file mode 100644
index 25185f40192..00000000000
--- a/intern/bsp/test/BSP_GhostTest/main.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-/**
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#include "BSP_GhostTest3D.h"
-
-#include "BSP_TMesh.h"
-#include "MEM_SmartPtr.h"
-#include "BSP_PlyLoader.h"
-
-#include <iostream>
-
-using namespace std;
-#if 1
- MEM_SmartPtr<BSP_TMesh>
-NewTestMesh(
- int x,
- int y,
- MT_Scalar fx,
- MT_Scalar fy,
- MT_Scalar ampx,
- MT_Scalar ampy,
- MT_Scalar sx,
- MT_Scalar sy
-) {
-
- MEM_SmartPtr<BSP_TMesh> output = new BSP_TMesh;
-
- std::vector<BSP_TVertex> &verts = output->VertexSet();
-
- int i,j;
-
- MT_Scalar x_scale = fx*MT_PI/x;
- MT_Scalar y_scale = fy*MT_PI/y;
-
- MT_Scalar fsx = sx/x;
- MT_Scalar fsy = sy/y;
-
- for (j = 0; j < y; j++) {
- for (i = 0; i < x; i++) {
- float z = ampx*sin(x_scale * i) + ampy*sin(y_scale * j);
-
- MT_Vector3 val(i*fsx - sx/2,j*fsy - sy/2,z);
-
- BSP_TVertex chuff;
- chuff.m_pos = val;
- verts.push_back(chuff);
- }
- }
-
- int poly[4];
-
- for (j = 0; j < (y-1); j++) {
- for (i = 0; i < (x-1); i++) {
-
- poly[0] = j*x + i;
- poly[1] = poly[0] + 1;
- poly[2] = poly[1] + y;
- poly[3] = poly[2] -1;
-
- output->AddFace(poly,4);
- }
- }
-
- output->m_min = MT_Vector3(-sx/2,-sy/2,-ampx -ampy);
- output->m_max = MT_Vector3(sx/2,sy/2,ampx + ampy);
-
- return output;
-}
-#endif
-
-
-int main()
-{
- MT_Vector3 min,max;
- MT_Vector3 min2,max2;
-
-#if 1
- MEM_SmartPtr<BSP_TMesh> mesh1 = BSP_PlyLoader::NewMeshFromFile("bsp_cube.ply",min,max);
- MEM_SmartPtr<BSP_TMesh> mesh2 = BSP_PlyLoader::NewMeshFromFile("bsp_cube.ply",min2,max2);
-
- mesh1->m_min = min;
- mesh1->m_max = max;
- mesh2->m_min = min2;
- mesh1->m_max = max2;
-
-#else
- MEM_SmartPtr<BSP_TMesh> mesh1 = NewTestMesh(10,10,2,2,4,4,20,20);
- MEM_SmartPtr<BSP_TMesh> mesh2 = NewTestMesh(10,10,2,2,4,4,20,20);
-#endif
-
- if (!mesh1) {
- cout << "could not load mesh!";
- return 0;
- }
-
-
-
-// MEM_SmartPtr<BSP_TMesh> mesh2 = new BSP_TMesh(mesh1.Ref());
-
- BSP_GhostTestApp3D app;
-
- cout << "Mesh polygons :" << mesh1->FaceSet().size() << "\n";
- cout << "Mesh vertices :" << mesh1->VertexSet().size() << "\n";
-
- app.SetMesh(mesh1);
- app.SetMesh(mesh2);
-
-
- app.InitApp();
-
- app.Run();
-
- return 0;
-
-}
-
-
-
-
diff --git a/intern/bsp/test/BSP_GhostTest/ply.h b/intern/bsp/test/BSP_GhostTest/ply.h
deleted file mode 100644
index 12425ded898..00000000000
--- a/intern/bsp/test/BSP_GhostTest/ply.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/**
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/*
-
-Header for PLY polygon files.
-
-- Greg Turk, March 1994
-
-A PLY file contains a single polygonal _object_.
-
-An object is composed of lists of _elements_. Typical elements are
-vertices, faces, edges and materials.
-
-Each type of element for a given object has one or more _properties_
-associated with the element type. For instance, a vertex element may
-have as properties three floating-point values x,y,z and three unsigned
-chars for red, green and blue.
-
----------------------------------------------------------------
-
-Copyright (c) 1994 The Board of Trustees of The Leland Stanford
-Junior University. All rights reserved.
-
-Permission to use, copy, modify and distribute this software and its
-documentation for any purpose is hereby granted without fee, provided
-that the above copyright notice and this permission notice appear in
-all copies of this software and that you do not sell the software.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
-EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
-WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-*/
-
-#ifndef __PLY_H__
-#define __PLY_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdio.h>
-#include <stddef.h>
-
-#define PLY_ASCII 1 /* ascii PLY file */
-#define PLY_BINARY_BE 2 /* binary PLY file, big endian */
-#define PLY_BINARY_LE 3 /* binary PLY file, little endian */
-
-#define PLY_OKAY 0 /* ply routine worked okay */
-#define PLY_ERROR -1 /* error in ply routine */
-
-/* scalar data types supported by PLY format */
-
-#define PLY_START_TYPE 0
-#define PLY_CHAR 1
-#define PLY_SHORT 2
-#define PLY_INT 3
-#define PLY_UCHAR 4
-#define PLY_USHORT 5
-#define PLY_UINT 6
-#define PLY_FLOAT 7
-#define PLY_DOUBLE 8
-#define PLY_END_TYPE 9
-
-#define PLY_SCALAR 0
-#define PLY_LIST 1
-
-
-typedef struct PlyProperty { /* description of a property */
-
- char *name; /* property name */
- int external_type; /* file's data type */
- int internal_type; /* program's data type */
- int offset; /* offset bytes of prop in a struct */
-
- int is_list; /* 1 = list, 0 = scalar */
- int count_external; /* file's count type */
- int count_internal; /* program's count type */
- int count_offset; /* offset byte for list count */
-
-} PlyProperty;
-
-typedef struct PlyElement { /* description of an element */
- char *name; /* element name */
- int num; /* number of elements in this object */
- int size; /* size of element (bytes) or -1 if variable */
- int nprops; /* number of properties for this element */
- PlyProperty **props; /* list of properties in the file */
- char *store_prop; /* flags: property wanted by user? */
- int other_offset; /* offset to un-asked-for props, or -1 if none*/
- int other_size; /* size of other_props structure */
-} PlyElement;
-
-typedef struct PlyOtherProp { /* describes other properties in an element */
- char *name; /* element name */
- int size; /* size of other_props */
- int nprops; /* number of properties in other_props */
- PlyProperty **props; /* list of properties in other_props */
-} PlyOtherProp;
-
-typedef struct OtherData { /* for storing other_props for an other element */
- void *other_props;
-} OtherData;
-
-typedef struct OtherElem { /* data for one "other" element */
- char *elem_name; /* names of other elements */
- int elem_count; /* count of instances of each element */
- OtherData **other_data; /* actual property data for the elements */
- PlyOtherProp *other_props; /* description of the property data */
-} OtherElem;
-
-typedef struct PlyOtherElems { /* "other" elements, not interpreted by user */
- int num_elems; /* number of other elements */
- OtherElem *other_list; /* list of data for other elements */
-} PlyOtherElems;
-
-typedef struct PlyFile { /* description of PLY file */
- FILE *fp; /* file pointer */
- int file_type; /* ascii or binary */
- float version; /* version number of file */
- int nelems; /* number of elements of object */
- PlyElement **elems; /* list of elements */
- int num_comments; /* number of comments */
- char **comments; /* list of comments */
- int num_obj_info; /* number of items of object information */
- char **obj_info; /* list of object info items */
- PlyElement *which_elem; /* which element we're currently writing */
- PlyOtherElems *other_elems; /* "other" elements from a PLY file */
-} PlyFile;
-
-/* memory allocation */
-static char *my_alloc();
-#define myalloc(mem_size) my_alloc((mem_size), __LINE__, __FILE__)
-
-
-/*** delcaration of routines ***/
-
-extern PlyFile *ply_write(FILE *, int, char **, int);
-extern PlyFile *ply_open_for_writing(char *, int, char **, int, float *);
-extern void ply_describe_element(PlyFile *, char *, int, int, PlyProperty *);
-extern void ply_describe_property(PlyFile *, char *, PlyProperty *);
-extern void ply_element_count(PlyFile *, char *, int);
-extern void ply_header_complete(PlyFile *);
-extern void ply_put_element_setup(PlyFile *, char *);
-extern void ply_put_element(PlyFile *, void *);
-extern void ply_put_comment(PlyFile *, char *);
-extern void ply_put_obj_info(PlyFile *, char *);
-extern PlyFile *ply_read(FILE *, int *, char ***);
-extern PlyFile *ply_open_for_reading( char *, int *, char ***, int *, float *);
-extern PlyProperty **ply_get_element_description(PlyFile *, char *, int*, int*);
-extern void ply_get_element_setup( PlyFile *, char *, int, PlyProperty *);
-extern void ply_get_property(PlyFile *, char *, PlyProperty *);
-extern PlyOtherProp *ply_get_other_properties(PlyFile *, char *, int);
-extern void ply_get_element(PlyFile *, void *);
-extern char **ply_get_comments(PlyFile *, int *);
-extern char **ply_get_obj_info(PlyFile *, int *);
-extern void ply_close(PlyFile *);
-extern void ply_get_info(PlyFile *, float *, int *);
-extern PlyOtherElems *ply_get_other_element (PlyFile *, char *, int);
-extern void ply_describe_other_elements ( PlyFile *, PlyOtherElems *);
-extern void ply_put_other_elements (PlyFile *);
-extern void ply_free_other_elements (PlyOtherElems *);
-
-extern int equal_strings(char *, char *);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !__PLY_H__ */
-
diff --git a/intern/bsp/test/BSP_GhostTest/plyfile.c b/intern/bsp/test/BSP_GhostTest/plyfile.c
deleted file mode 100644
index b0134f06557..00000000000
--- a/intern/bsp/test/BSP_GhostTest/plyfile.c
+++ /dev/null
@@ -1,2545 +0,0 @@
-/**
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/*
-
-
- The interface routines for reading and writing PLY polygon files.
-
- Greg Turk, February 1994
-
- ---------------------------------------------------------------
-
- A PLY file contains a single polygonal _object_.
-
- An object is composed of lists of _elements_. Typical elements are
- vertices, faces, edges and materials.
-
- Each type of element for a given object has one or more _properties_
- associated with the element type. For instance, a vertex element may
- have as properties the floating-point values x,y,z and the three unsigned
- chars representing red, green and blue.
-
- ---------------------------------------------------------------
-
- Copyright (c) 1994 The Board of Trustees of The Leland Stanford
- Junior University. All rights reserved.
-
- Permission to use, copy, modify and distribute this software and its
- documentation for any purpose is hereby granted without fee, provided
- that the above copyright notice and this permission notice appear in
- all copies of this software and that you do not sell the software.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
- EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-#include "ply.h"
-
-char *type_names[] = {
- "invalid",
- "char", "short", "int",
- "uchar", "ushort", "uint",
- "float", "double",
-};
-
-int ply_type_size[] = {
- 0, 1, 2, 4, 1, 2, 4, 4, 8
-};
-
-#define NO_OTHER_PROPS -1
-
-#define DONT_STORE_PROP 0
-#define STORE_PROP 1
-
-#define OTHER_PROP 0
-#define NAMED_PROP 1
-
-
-/* returns 1 if strings are equal, 0 if not */
-int equal_strings(char *, char *);
-
-/* find an element in a plyfile's list */
-PlyElement *find_element(PlyFile *, char *);
-
-/* find a property in an element's list */
-PlyProperty *find_property(PlyElement *, char *, int *);
-
-/* write to a file the word describing a PLY file data type */
-void write_scalar_type(FILE *, int);
-
-/* read a line from a file and break it up into separate words */
-char **get_words(FILE *, int *, char **);
-char **old_get_words(FILE *, int *);
-
-/* write an item to a file */
-void write_binary_item(FILE *, int, unsigned int, double, int);
-void write_ascii_item(FILE *, int, unsigned int, double, int);
-double old_write_ascii_item(FILE *, char *, int);
-
-/* add information to a PLY file descriptor */
-void add_element(PlyFile *, char **);
-void add_property(PlyFile *, char **);
-void add_comment(PlyFile *, char *);
-void add_obj_info(PlyFile *, char *);
-
-/* copy a property */
-void copy_property(PlyProperty *, PlyProperty *);
-
-/* store a value into where a pointer and a type specify */
-void store_item(char *, int, int, unsigned int, double);
-
-/* return the value of a stored item */
-void get_stored_item(void *, int, int *, unsigned int *, double *);
-
-/* return the value stored in an item, given ptr to it and its type */
-double get_item_value(char *, int);
-
-/* get binary or ascii item and store it according to ptr and type */
-void get_ascii_item(char *, int, int *, unsigned int *, double *);
-void get_binary_item(FILE *, int, int *, unsigned int *, double *);
-
-/* get a bunch of elements from a file */
-void ascii_get_element(PlyFile *, char *);
-void binary_get_element(PlyFile *, char *);
-
-/* memory allocation */
-char *my_alloc(int, int, char *);
-
-
-/*************/
-/* Writing */
-/*************/
-
-
-/******************************************************************************
- Given a file pointer, get ready to write PLY data to the file.
-
- Entry:
- fp - the given file pointer
- nelems - number of elements in object
- elem_names - list of element names
- file_type - file type, either ascii or binary
-
- Exit:
- returns a pointer to a PlyFile, used to refer to this file, or NULL if error
-******************************************************************************/
-
-PlyFile *ply_write(
- FILE *fp,
- int nelems,
- char **elem_names,
- int file_type
- )
-{
- int i;
- PlyFile *plyfile;
- PlyElement *elem;
-
- /* check for NULL file pointer */
- if (fp == NULL)
- return (NULL);
-
- /* create a record for this object */
-
- plyfile = (PlyFile *) myalloc(sizeof(PlyFile));
- plyfile->file_type = file_type;
- plyfile->num_comments = 0;
- plyfile->num_obj_info = 0;
- plyfile->nelems = nelems;
- plyfile->version = 1.0;
- plyfile->fp = fp;
- plyfile->other_elems = NULL;
-
- /* tuck aside the names of the elements */
-
- plyfile->elems = (PlyElement **) myalloc(sizeof(PlyElement *) * nelems);
- for (i = 0; i < nelems; i++) {
- elem = (PlyElement *) myalloc(sizeof(PlyElement));
- plyfile->elems[i] = elem;
- elem->name = strdup(elem_names[i]);
- elem->num = 0;
- elem->nprops = 0;
- }
-
- /* return pointer to the file descriptor */
- return (plyfile);
-}
-
-
-/******************************************************************************
- Open a polygon file for writing.
-
- Entry:
- filename - name of file to read from
- nelems - number of elements in object
- elem_names - list of element names
- file_type - file type, either ascii or binary
-
- Exit:
- version - version number of PLY file
- returns a file identifier, used to refer to this file, or NULL if error
-******************************************************************************/
-
-PlyFile *ply_open_for_writing(
- char *filename,
- int nelems,
- char **elem_names,
- int file_type,
- float *version
- )
-{
- PlyFile *plyfile;
- char *name;
- FILE *fp;
-
- /* tack on the extension .ply, if necessary */
-
- name = (char *) myalloc(sizeof(char) * (strlen(filename) + 5));
- strcpy(name, filename);
- if (strlen(name) < 4 ||
- strcmp(name + strlen(name) - 4, ".ply") != 0)
- strcat(name, ".ply");
-
- /* open the file for writing */
-
- fp = fopen(name, "w");
- if (fp == NULL) {
- return (NULL);
- }
-
- /* create the actual PlyFile structure */
-
- plyfile = ply_write(fp, nelems, elem_names, file_type);
- if (plyfile == NULL)
- return (NULL);
-
- /* say what PLY file version number we're writing */
- *version = plyfile->version;
-
- /* return pointer to the file descriptor */
- return (plyfile);
-}
-
-
-/******************************************************************************
- Describe an element, including its properties and how many will be written
- to the file.
-
- Entry:
- plyfile - file identifier
- elem_name - name of element that information is being specified about
- nelems - number of elements of this type to be written
- nprops - number of properties contained in the element
- prop_list - list of properties
-******************************************************************************/
-
-void ply_describe_element(
- PlyFile *plyfile,
- char *elem_name,
- int nelems,
- int nprops,
- PlyProperty *prop_list
- )
-{
- int i;
- PlyElement *elem;
- PlyProperty *prop;
-
- /* look for appropriate element */
- elem = find_element(plyfile, elem_name);
- if (elem == NULL) {
- fprintf(stderr, "ply_describe_element: can't find element '%s'\n", elem_name);
- exit(-1);
- }
-
- elem->num = nelems;
-
- /* copy the list of properties */
-
- elem->nprops = nprops;
- elem->props = (PlyProperty **) myalloc(sizeof(PlyProperty *) * nprops);
- elem->store_prop = (char *) myalloc(sizeof(char) * nprops);
-
- for (i = 0; i < nprops; i++) {
- prop = (PlyProperty *) myalloc(sizeof(PlyProperty));
- elem->props[i] = prop;
- elem->store_prop[i] = NAMED_PROP;
- copy_property(prop, &prop_list[i]);
- }
-}
-
-
-/******************************************************************************
- Describe a property of an element.
-
- Entry:
- plyfile - file identifier
- elem_name - name of element that information is being specified about
- prop - the new property
-******************************************************************************/
-
-void ply_describe_property(
- PlyFile *plyfile,
- char *elem_name,
- PlyProperty *prop
- )
-{
- PlyElement *elem;
- PlyProperty *elem_prop;
-
- /* look for appropriate element */
- elem = find_element(plyfile, elem_name);
- if (elem == NULL) {
- fprintf(stderr, "ply_describe_property: can't find element '%s'\n",
- elem_name);
- return;
- }
-
- /* create room for new property */
-
- if (elem->nprops == 0) {
- elem->props = (PlyProperty **) myalloc(sizeof(PlyProperty *));
- elem->store_prop = (char *) myalloc(sizeof(char));
- elem->nprops = 1;
- }
- else {
- elem->nprops++;
- elem->props = (PlyProperty **)
- realloc(elem->props, sizeof(PlyProperty *) * elem->nprops);
- elem->store_prop = (char *)
- realloc(elem->store_prop, sizeof(char) * elem->nprops);
- }
-
- /* copy the new property */
-
- elem_prop = (PlyProperty *) myalloc(sizeof(PlyProperty));
- elem->props[elem->nprops - 1] = elem_prop;
- elem->store_prop[elem->nprops - 1] = NAMED_PROP;
- copy_property(elem_prop, prop);
-}
-
-
-/******************************************************************************
- Describe what the "other" properties are that are to be stored, and where
- they are in an element.
-******************************************************************************/
-
-void ply_describe_other_properties(
- PlyFile *plyfile,
- PlyOtherProp *other,
- int offset
- )
-{
- int i;
- PlyElement *elem;
- PlyProperty *prop;
-
- /* look for appropriate element */
- elem = find_element(plyfile, other->name);
- if (elem == NULL) {
- fprintf(stderr, "ply_describe_other_properties: can't find element '%s'\n",
- other->name);
- return;
- }
-
- /* create room for other properties */
-
- if (elem->nprops == 0) {
- elem->props = (PlyProperty **)
- myalloc(sizeof(PlyProperty *) * other->nprops);
- elem->store_prop = (char *) myalloc(sizeof(char) * other->nprops);
- elem->nprops = 0;
- }
- else {
- int newsize;
- newsize = elem->nprops + other->nprops;
- elem->props = (PlyProperty **)
- realloc(elem->props, sizeof(PlyProperty *) * newsize);
- elem->store_prop = (char *)
- realloc(elem->store_prop, sizeof(char) * newsize);
- }
-
- /* copy the other properties */
-
- for (i = 0; i < other->nprops; i++) {
- prop = (PlyProperty *) myalloc(sizeof(PlyProperty));
- copy_property(prop, other->props[i]);
- elem->props[elem->nprops] = prop;
- elem->store_prop[elem->nprops] = OTHER_PROP;
- elem->nprops++;
- }
-
- /* save other info about other properties */
- elem->other_size = other->size;
- elem->other_offset = offset;
-}
-
-
-/******************************************************************************
- State how many of a given element will be written.
-
- Entry:
- plyfile - file identifier
- elem_name - name of element that information is being specified about
- nelems - number of elements of this type to be written
-******************************************************************************/
-
-void ply_element_count(
- PlyFile *plyfile,
- char *elem_name,
- int nelems
- )
-{
- PlyElement *elem;
-
- /* look for appropriate element */
- elem = find_element(plyfile, elem_name);
- if (elem == NULL) {
- fprintf(stderr, "ply_element_count: can't find element '%s'\n", elem_name);
- exit(-1);
- }
-
- elem->num = nelems;
-}
-
-
-/******************************************************************************
- Signal that we've described everything a PLY file's header and that the
- header should be written to the file.
-
- Entry:
- plyfile - file identifier
-******************************************************************************/
-
-void ply_header_complete(PlyFile *plyfile)
-{
- int i, j;
- FILE *fp = plyfile->fp;
- PlyElement *elem;
- PlyProperty *prop;
-
- fprintf(fp, "ply\n");
-
- switch (plyfile->file_type) {
- case PLY_ASCII:
- fprintf(fp, "format ascii 1.0\n");
- break;
- case PLY_BINARY_BE:
- fprintf(fp, "format binary_big_endian 1.0\n");
- break;
- case PLY_BINARY_LE:
- fprintf(fp, "format binary_little_endian 1.0\n");
- break;
- default:
- fprintf(stderr, "ply_header_complete: bad file type = %d\n",
- plyfile->file_type);
- exit(-1);
- }
-
- /* write out the comments */
-
- for (i = 0; i < plyfile->num_comments; i++)
- fprintf(fp, "comment %s\n", plyfile->comments[i]);
-
- /* write out object information */
-
- for (i = 0; i < plyfile->num_obj_info; i++)
- fprintf(fp, "obj_info %s\n", plyfile->obj_info[i]);
-
- /* write out information about each element */
-
- for (i = 0; i < plyfile->nelems; i++) {
-
- elem = plyfile->elems[i];
- fprintf(fp, "element %s %d\n", elem->name, elem->num);
-
- /* write out each property */
- for (j = 0; j < elem->nprops; j++) {
- prop = elem->props[j];
- if (prop->is_list) {
- fprintf(fp, "property list ");
- write_scalar_type(fp, prop->count_external);
- fprintf(fp, " ");
- write_scalar_type(fp, prop->external_type);
- fprintf(fp, " %s\n", prop->name);
- }
- else {
- fprintf(fp, "property ");
- write_scalar_type(fp, prop->external_type);
- fprintf(fp, " %s\n", prop->name);
- }
- }
- }
-
- fprintf(fp, "end_header\n");
-}
-
-
-/******************************************************************************
- Specify which elements are going to be written. This should be called
- before a call to the routine ply_put_element().
-
- Entry:
- plyfile - file identifier
- elem_name - name of element we're talking about
-******************************************************************************/
-
-void ply_put_element_setup(PlyFile *plyfile, char *elem_name)
-{
- PlyElement *elem;
-
- elem = find_element(plyfile, elem_name);
- if (elem == NULL) {
- fprintf(stderr, "ply_elements_setup: can't find element '%s'\n", elem_name);
- exit(-1);
- }
-
- plyfile->which_elem = elem;
-}
-
-
-/******************************************************************************
- Write an element to the file. This routine assumes that we're
- writing the type of element specified in the last call to the routine
- ply_put_element_setup().
-
- Entry:
- plyfile - file identifier
- elem_ptr - pointer to the element
-******************************************************************************/
-
-void ply_put_element(PlyFile *plyfile, void *elem_ptr)
-{
- int j, k;
- FILE *fp = plyfile->fp;
- PlyElement *elem;
- PlyProperty *prop;
- char *elem_data, *item;
- char **item_ptr;
- int list_count;
- int item_size;
- int int_val;
- unsigned int uint_val;
- double double_val;
- char **other_ptr;
-
- elem = plyfile->which_elem;
- elem_data = elem_ptr;
- other_ptr = (char **) (((char *) elem_ptr) + elem->other_offset);
-
- /* write out either to an ascii or binary file */
-
- if (plyfile->file_type == PLY_ASCII) {
-
- /* write an ascii file */
-
- /* write out each property of the element */
- for (j = 0; j < elem->nprops; j++) {
- prop = elem->props[j];
- if (elem->store_prop[j] == OTHER_PROP)
- elem_data = *other_ptr;
- else
- elem_data = elem_ptr;
- if (prop->is_list) {
- item = elem_data + prop->count_offset;
- get_stored_item((void *) item, prop->count_internal,
- &int_val, &uint_val, &double_val);
- write_ascii_item(fp, int_val, uint_val, double_val,
- prop->count_external);
- list_count = uint_val;
- item_ptr = (char **) (elem_data + prop->offset);
- item = item_ptr[0];
- item_size = ply_type_size[prop->internal_type];
- for (k = 0; k < list_count; k++) {
- get_stored_item((void *) item, prop->internal_type,
- &int_val, &uint_val, &double_val);
- write_ascii_item(fp, int_val, uint_val, double_val,
- prop->external_type);
- item += item_size;
- }
- }
- else {
- item = elem_data + prop->offset;
- get_stored_item((void *) item, prop->internal_type,
- &int_val, &uint_val, &double_val);
- write_ascii_item(fp, int_val, uint_val, double_val,
- prop->external_type);
- }
- }
-
- fprintf(fp, "\n");
- }
- else {
-
- /* write a binary file */
-
- /* write out each property of the element */
- for (j = 0; j < elem->nprops; j++) {
- prop = elem->props[j];
- if (elem->store_prop[j] == OTHER_PROP)
- elem_data = *other_ptr;
- else
- elem_data = elem_ptr;
- if (prop->is_list) {
- item = elem_data + prop->count_offset;
- item_size = ply_type_size[prop->count_internal];
- get_stored_item((void *) item, prop->count_internal,
- &int_val, &uint_val, &double_val);
- write_binary_item(fp, int_val, uint_val, double_val,
- prop->count_external);
- list_count = uint_val;
- item_ptr = (char **) (elem_data + prop->offset);
- item = item_ptr[0];
- item_size = ply_type_size[prop->internal_type];
- for (k = 0; k < list_count; k++) {
- get_stored_item((void *) item, prop->internal_type,
- &int_val, &uint_val, &double_val);
- write_binary_item(fp, int_val, uint_val, double_val,
- prop->external_type);
- item += item_size;
- }
- }
- else {
- item = elem_data + prop->offset;
- item_size = ply_type_size[prop->internal_type];
- get_stored_item((void *) item, prop->internal_type,
- &int_val, &uint_val, &double_val);
- write_binary_item(fp, int_val, uint_val, double_val,
- prop->external_type);
- }
- }
-
- }
-}
-
-
-/******************************************************************************
- Specify a comment that will be written in the header.
-
- Entry:
- plyfile - file identifier
- comment - the comment to be written
-******************************************************************************/
-
-void ply_put_comment(PlyFile *plyfile, char *comment)
-{
- /* (re)allocate space for new comment */
- if (plyfile->num_comments == 0)
- plyfile->comments = (char **) myalloc(sizeof(char *));
- else
- plyfile->comments = (char **) realloc(plyfile->comments,
- sizeof(char *) * (plyfile->num_comments + 1));
-
- /* add comment to list */
- plyfile->comments[plyfile->num_comments] = strdup(comment);
- plyfile->num_comments++;
-}
-
-
-/******************************************************************************
- Specify a piece of object information (arbitrary text) that will be written
- in the header.
-
- Entry:
- plyfile - file identifier
- obj_info - the text information to be written
-******************************************************************************/
-
-void ply_put_obj_info(PlyFile *plyfile, char *obj_info)
-{
- /* (re)allocate space for new info */
- if (plyfile->num_obj_info == 0)
- plyfile->obj_info = (char **) myalloc(sizeof(char *));
- else
- plyfile->obj_info = (char **) realloc(plyfile->obj_info,
- sizeof(char *) * (plyfile->num_obj_info + 1));
-
- /* add info to list */
- plyfile->obj_info[plyfile->num_obj_info] = strdup(obj_info);
- plyfile->num_obj_info++;
-}
-
-
-
-
-
-
-
-/*************/
-/* Reading */
-/*************/
-
-
-
-/******************************************************************************
- Given a file pointer, get ready to read PLY data from the file.
-
- Entry:
- fp - the given file pointer
-
- Exit:
- nelems - number of elements in object
- elem_names - list of element names
- returns a pointer to a PlyFile, used to refer to this file, or NULL if error
-******************************************************************************/
-
-PlyFile *ply_read(FILE *fp, int *nelems, char ***elem_names)
-{
- int i, j;
- PlyFile *plyfile;
- int nwords;
- char **words;
- int found_format = 0;
- char **elist;
- PlyElement *elem;
- char *orig_line;
-
- /* check for NULL file pointer */
- if (fp == NULL)
- return (NULL);
-
- /* create record for this object */
-
- plyfile = (PlyFile *) myalloc(sizeof(PlyFile));
- plyfile->nelems = 0;
- plyfile->comments = NULL;
- plyfile->num_comments = 0;
- plyfile->obj_info = NULL;
- plyfile->num_obj_info = 0;
- plyfile->fp = fp;
- plyfile->other_elems = NULL;
-
- /* read and parse the file's header */
-
- words = get_words(plyfile->fp, &nwords, &orig_line);
- if (!words || !equal_strings(words[0], "ply"))
- return (NULL);
-
- while (words) {
-
- /* parse words */
-
- if (equal_strings(words[0], "format")) {
- if (nwords != 3)
- return (NULL);
- if (equal_strings(words[1], "ascii"))
- plyfile->file_type = PLY_ASCII;
- else if (equal_strings(words[1], "binary_big_endian"))
- plyfile->file_type = PLY_BINARY_BE;
- else if (equal_strings(words[1], "binary_little_endian"))
- plyfile->file_type = PLY_BINARY_LE;
- else
- return (NULL);
- plyfile->version = (float)atof(words[2]);
- found_format = 1;
- }
- else if (equal_strings(words[0], "element"))
- add_element(plyfile, words);
- else if (equal_strings(words[0], "property"))
- add_property(plyfile, words);
- else if (equal_strings(words[0], "comment"))
- add_comment(plyfile, orig_line);
- else if (equal_strings(words[0], "obj_info"))
- add_obj_info(plyfile, orig_line);
- else if (equal_strings(words[0], "end_header"))
- break;
-
- /* free up words space */
- free(words);
-
- words = get_words(plyfile->fp, &nwords, &orig_line);
- }
-
- /* create tags for each property of each element, to be used */
- /* later to say whether or not to store each property for the user */
-
- for (i = 0; i < plyfile->nelems; i++) {
- elem = plyfile->elems[i];
- elem->store_prop = (char *) myalloc(sizeof(char) * elem->nprops);
- for (j = 0; j < elem->nprops; j++)
- elem->store_prop[j] = DONT_STORE_PROP;
- elem->other_offset = NO_OTHER_PROPS; /* no "other" props by default */
- }
-
- /* set return values about the elements */
-
- elist = (char **) myalloc(sizeof(char *) * plyfile->nelems);
- for (i = 0; i < plyfile->nelems; i++)
- elist[i] = strdup(plyfile->elems[i]->name);
-
- *elem_names = elist;
- *nelems = plyfile->nelems;
-
- /* return a pointer to the file's information */
-
- return (plyfile);
-}
-
-
-/******************************************************************************
- Open a polygon file for reading.
-
- Entry:
- filename - name of file to read from
-
- Exit:
- nelems - number of elements in object
- elem_names - list of element names
- file_type - file type, either ascii or binary
- version - version number of PLY file
- returns a file identifier, used to refer to this file, or NULL if error
-******************************************************************************/
-
-PlyFile *ply_open_for_reading(
- char *filename,
- int *nelems,
- char ***elem_names,
- int *file_type,
- float *version
- )
-{
- FILE *fp;
- PlyFile *plyfile;
- char *name;
-
- /* tack on the extension .ply, if necessary */
-
- name = (char *) myalloc(sizeof(char) * (strlen(filename) + 5));
- strcpy(name, filename);
- if (strlen(name) < 4 ||
- strcmp(name + strlen(name) - 4, ".ply") != 0)
- strcat(name, ".ply");
-
- /* open the file for reading */
-
- fp = fopen(name, "r");
- if (fp == NULL)
- return (NULL);
-
- /* create the PlyFile data structure */
-
- plyfile = ply_read(fp, nelems, elem_names);
-
- /* determine the file type and version */
-
- *file_type = plyfile->file_type;
- *version = plyfile->version;
-
- /* return a pointer to the file's information */
-
- return (plyfile);
-}
-
-
-/******************************************************************************
- Get information about a particular element.
-
- Entry:
- plyfile - file identifier
- elem_name - name of element to get information about
-
- Exit:
- nelems - number of elements of this type in the file
- nprops - number of properties
- returns a list of properties, or NULL if the file doesn't contain that elem
-******************************************************************************/
-
-PlyProperty **ply_get_element_description(
- PlyFile *plyfile,
- char *elem_name,
- int *nelems,
- int *nprops
- )
-{
- int i;
- PlyElement *elem;
- PlyProperty *prop;
- PlyProperty **prop_list;
-
- /* find information about the element */
- elem = find_element(plyfile, elem_name);
- if (elem == NULL)
- return (NULL);
-
- *nelems = elem->num;
- *nprops = elem->nprops;
-
- /* make a copy of the element's property list */
- prop_list = (PlyProperty **) myalloc(sizeof(PlyProperty *) * elem->nprops);
- for (i = 0; i < elem->nprops; i++) {
- prop = (PlyProperty *) myalloc(sizeof(PlyProperty));
- copy_property(prop, elem->props[i]);
- prop_list[i] = prop;
- }
-
- /* return this duplicate property list */
- return (prop_list);
-}
-
-
-/******************************************************************************
- Specify which properties of an element are to be returned. This should be
- called before a call to the routine ply_get_element().
-
- Entry:
- plyfile - file identifier
- elem_name - which element we're talking about
- nprops - number of properties
- prop_list - list of properties
-******************************************************************************/
-
-void ply_get_element_setup(
- PlyFile *plyfile,
- char *elem_name,
- int nprops,
- PlyProperty *prop_list
- )
-{
- int i;
- PlyElement *elem;
- PlyProperty *prop;
- int index;
-
- /* find information about the element */
- elem = find_element(plyfile, elem_name);
- plyfile->which_elem = elem;
-
- /* deposit the property information into the element's description */
- for (i = 0; i < nprops; i++) {
-
- /* look for actual property */
- prop = find_property(elem, prop_list[i].name, &index);
- if (prop == NULL) {
- fprintf(stderr, "Warning: Can't find property '%s' in element '%s'\n",
- prop_list[i].name, elem_name);
- continue;
- }
-
- /* store its description */
- prop->internal_type = prop_list[i].internal_type;
- prop->offset = prop_list[i].offset;
- prop->count_internal = prop_list[i].count_internal;
- prop->count_offset = prop_list[i].count_offset;
-
- /* specify that the user wants this property */
- elem->store_prop[index] = STORE_PROP;
- }
-}
-
-
-/******************************************************************************
- Specify a property of an element that is to be returned. This should be
- called (usually multiple times) before a call to the routine ply_get_element().
- This routine should be used in preference to the less flexible old routine
- called ply_get_element_setup().
-
- Entry:
- plyfile - file identifier
- elem_name - which element we're talking about
- prop - property to add to those that will be returned
-******************************************************************************/
-
-void ply_get_property(
- PlyFile *plyfile,
- char *elem_name,
- PlyProperty *prop
- )
-{
- PlyElement *elem;
- PlyProperty *prop_ptr;
- int index;
-
- /* find information about the element */
- elem = find_element(plyfile, elem_name);
- plyfile->which_elem = elem;
-
- /* deposit the property information into the element's description */
-
- prop_ptr = find_property(elem, prop->name, &index);
- if (prop_ptr == NULL) {
- fprintf(stderr, "Warning: Can't find property '%s' in element '%s'\n",
- prop->name, elem_name);
- return;
- }
- prop_ptr->internal_type = prop->internal_type;
- prop_ptr->offset = prop->offset;
- prop_ptr->count_internal = prop->count_internal;
- prop_ptr->count_offset = prop->count_offset;
-
- /* specify that the user wants this property */
- elem->store_prop[index] = STORE_PROP;
-}
-
-
-/******************************************************************************
- Read one element from the file. This routine assumes that we're reading
- the type of element specified in the last call to the routine
- ply_get_element_setup().
-
- Entry:
- plyfile - file identifier
- elem_ptr - pointer to location where the element information should be put
-******************************************************************************/
-
-void ply_get_element(PlyFile *plyfile, void *elem_ptr)
-{
- if (plyfile->file_type == PLY_ASCII)
- ascii_get_element(plyfile, (char *) elem_ptr);
- else
- binary_get_element(plyfile, (char *) elem_ptr);
-}
-
-
-/******************************************************************************
- Extract the comments from the header information of a PLY file.
-
- Entry:
- plyfile - file identifier
-
- Exit:
- num_comments - number of comments returned
- returns a pointer to a list of comments
-******************************************************************************/
-
-char **ply_get_comments(PlyFile *plyfile, int *num_comments)
-{
- *num_comments = plyfile->num_comments;
- return (plyfile->comments);
-}
-
-
-/******************************************************************************
- Extract the object information (arbitrary text) from the header information
- of a PLY file.
-
- Entry:
- plyfile - file identifier
-
- Exit:
- num_obj_info - number of lines of text information returned
- returns a pointer to a list of object info lines
-******************************************************************************/
-
-char **ply_get_obj_info(PlyFile *plyfile, int *num_obj_info)
-{
- *num_obj_info = plyfile->num_obj_info;
- return (plyfile->obj_info);
-}
-
-
-/******************************************************************************
- Make ready for "other" properties of an element-- those properties that
- the user has not explicitly asked for, but that are to be stashed away
- in a special structure to be carried along with the element's other
- information.
-
- Entry:
- plyfile - file identifier
- elem - element for which we want to save away other properties
-******************************************************************************/
-
-void setup_other_props(PlyElement *elem)
-{
- int i;
- PlyProperty *prop;
- int size = 0;
- int type_size;
-
- /* Examine each property in decreasing order of size. */
- /* We do this so that all data types will be aligned by */
- /* word, half-word, or whatever within the structure. */
-
- for (type_size = 8; type_size > 0; type_size /= 2) {
-
- /* add up the space taken by each property, and save this information */
- /* away in the property descriptor */
-
- for (i = 0; i < elem->nprops; i++) {
-
- /* don't bother with properties we've been asked to store explicitly */
- if (elem->store_prop[i])
- continue;
-
- prop = elem->props[i];
-
- /* internal types will be same as external */
- prop->internal_type = prop->external_type;
- prop->count_internal = prop->count_external;
-
- /* check list case */
- if (prop->is_list) {
-
- /* pointer to list */
- if (type_size == sizeof(void *)) {
- prop->offset = size;
- size += sizeof(void *); /* always use size of a pointer here */
- }
-
- /* count of number of list elements */
- if (type_size == ply_type_size[prop->count_external]) {
- prop->count_offset = size;
- size += ply_type_size[prop->count_external];
- }
- }
- /* not list */
- else if (type_size == ply_type_size[prop->external_type]) {
- prop->offset = size;
- size += ply_type_size[prop->external_type];
- }
- }
-
- }
-
- /* save the size for the other_props structure */
- elem->other_size = size;
-}
-
-
-/******************************************************************************
- Specify that we want the "other" properties of an element to be tucked
- away within the user's structure. The user needn't be concerned for how
- these properties are stored.
-
- Entry:
- plyfile - file identifier
- elem_name - name of element that we want to store other_props in
- offset - offset to where other_props will be stored inside user's structure
-
- Exit:
- returns pointer to structure containing description of other_props
-******************************************************************************/
-
-PlyOtherProp *ply_get_other_properties(
- PlyFile *plyfile,
- char *elem_name,
- int offset
- )
-{
- int i;
- PlyElement *elem;
- PlyOtherProp *other;
- PlyProperty *prop;
- int nprops;
-
- /* find information about the element */
- elem = find_element(plyfile, elem_name);
- if (elem == NULL) {
- fprintf(stderr, "ply_get_other_properties: Can't find element '%s'\n",
- elem_name);
- return (NULL);
- }
-
- /* remember that this is the "current" element */
- plyfile->which_elem = elem;
-
- /* save the offset to where to store the other_props */
- elem->other_offset = offset;
-
- /* place the appropriate pointers, etc. in the element's property list */
- setup_other_props(elem);
-
- /* create structure for describing other_props */
- other = (PlyOtherProp *) myalloc(sizeof(PlyOtherProp));
- other->name = strdup(elem_name);
-#if 0
- if (elem->other_offset == NO_OTHER_PROPS) {
- other->size = 0;
- other->props = NULL;
- other->nprops = 0;
- return (other);
- }
-#endif
- other->size = elem->other_size;
- other->props = (PlyProperty **) myalloc(sizeof(PlyProperty) * elem->nprops);
-
- /* save descriptions of each "other" property */
- nprops = 0;
- for (i = 0; i < elem->nprops; i++) {
- if (elem->store_prop[i])
- continue;
- prop = (PlyProperty *) myalloc(sizeof(PlyProperty));
- copy_property(prop, elem->props[i]);
- other->props[nprops] = prop;
- nprops++;
- }
- other->nprops = nprops;
-
-#if 1
- /* set other_offset pointer appropriately if there are NO other properties */
- if (other->nprops == 0) {
- elem->other_offset = NO_OTHER_PROPS;
- }
-#endif
-
- /* return structure */
- return (other);
-}
-
-
-
-
-/*************************/
-/* Other Element Stuff */
-/*************************/
-
-
-
-
-/******************************************************************************
- Grab all the data for an element that a user does not want to explicitly
- read in.
-
- Entry:
- plyfile - pointer to file
- elem_name - name of element whose data is to be read in
- elem_count - number of instances of this element stored in the file
-
- Exit:
- returns pointer to ALL the "other" element data for this PLY file
-******************************************************************************/
-
-PlyOtherElems *ply_get_other_element(
- PlyFile *plyfile,
- char *elem_name,
- int elem_count
- )
-{
- int i;
- PlyElement *elem;
- PlyOtherElems *other_elems;
- OtherElem *other;
-
- /* look for appropriate element */
- elem = find_element(plyfile, elem_name);
- if (elem == NULL) {
- fprintf(stderr,
- "ply_get_other_element: can't find element '%s'\n", elem_name);
- exit(-1);
- }
-
- /* create room for the new "other" element, initializing the */
- /* other data structure if necessary */
-
- if (plyfile->other_elems == NULL) {
- plyfile->other_elems = (PlyOtherElems *) myalloc(sizeof(PlyOtherElems));
- other_elems = plyfile->other_elems;
- other_elems->other_list = (OtherElem *) myalloc(sizeof(OtherElem));
- other = &(other_elems->other_list[0]);
- other_elems->num_elems = 1;
- }
- else {
- other_elems = plyfile->other_elems;
- other_elems->other_list = (OtherElem *) realloc(other_elems->other_list,
- sizeof(OtherElem) * other_elems->num_elems + 1);
- other = &(other_elems->other_list[other_elems->num_elems]);
- other_elems->num_elems++;
- }
-
- /* count of element instances in file */
- other->elem_count = elem_count;
-
- /* save name of element */
- other->elem_name = strdup(elem_name);
-
- /* create a list to hold all the current elements */
- other->other_data = (OtherData **)
- malloc(sizeof(OtherData *) * other->elem_count);
-
- /* set up for getting elements */
- other->other_props = ply_get_other_properties(plyfile, elem_name,
- offsetof(OtherData, other_props));
-
- /* grab all these elements */
- for (i = 0; i < other->elem_count; i++) {
- /* grab and element from the file */
- other->other_data[i] = (OtherData *) malloc(sizeof(OtherData));
- ply_get_element(plyfile, (void *) other->other_data[i]);
- }
-
- /* return pointer to the other elements data */
- return (other_elems);
-}
-
-
-/******************************************************************************
- Pass along a pointer to "other" elements that we want to save in a given
- PLY file. These other elements were presumably read from another PLY file.
-
- Entry:
- plyfile - file pointer in which to store this other element info
- other_elems - info about other elements that we want to store
-******************************************************************************/
-
-void ply_describe_other_elements(
- PlyFile *plyfile,
- PlyOtherElems *other_elems
- )
-{
- int i;
- OtherElem *other;
-
- /* ignore this call if there is no other element */
- if (other_elems == NULL)
- return;
-
- /* save pointer to this information */
- plyfile->other_elems = other_elems;
-
- /* describe the other properties of this element */
-
- for (i = 0; i < other_elems->num_elems; i++) {
- other = &(other_elems->other_list[i]);
- ply_element_count(plyfile, other->elem_name, other->elem_count);
- ply_describe_other_properties(plyfile, other->other_props,
- offsetof(OtherData, other_props));
- }
-}
-
-
-/******************************************************************************
- Write out the "other" elements specified for this PLY file.
-
- Entry:
- plyfile - pointer to PLY file to write out other elements for
-******************************************************************************/
-
-void ply_put_other_elements(PlyFile *plyfile)
-{
- int i, j;
- OtherElem *other;
-
- /* make sure we have other elements to write */
- if (plyfile->other_elems == NULL)
- return;
-
- /* write out the data for each "other" element */
-
- for (i = 0; i < plyfile->other_elems->num_elems; i++) {
-
- other = &(plyfile->other_elems->other_list[i]);
- ply_put_element_setup(plyfile, other->elem_name);
-
- /* write out each instance of the current element */
- for (j = 0; j < other->elem_count; j++)
- ply_put_element(plyfile, (void *) other->other_data[j]);
- }
-}
-
-
-/******************************************************************************
- Free up storage used by an "other" elements data structure.
-
- Entry:
- other_elems - data structure to free up
-******************************************************************************/
-
-
-
-
-/*******************/
-/* Miscellaneous */
-/*******************/
-
-
-
-/******************************************************************************
- Close a PLY file.
-
- Entry:
- plyfile - identifier of file to close
-******************************************************************************/
-
-void ply_close(PlyFile *plyfile)
-{
- fclose(plyfile->fp);
-
- /* free up memory associated with the PLY file */
- free(plyfile);
-}
-
-
-/******************************************************************************
- Get version number and file type of a PlyFile.
-
- Entry:
- ply - pointer to PLY file
-
- Exit:
- version - version of the file
- file_type - PLY_ASCII, PLY_BINARY_BE, or PLY_BINARY_LE
-******************************************************************************/
-
-void ply_get_info(PlyFile *ply, float *version, int *file_type)
-{
- if (ply == NULL)
- return;
-
- *version = ply->version;
- *file_type = ply->file_type;
-}
-
-
-/******************************************************************************
- Compare two strings. Returns 1 if they are the same, 0 if not.
-******************************************************************************/
-
-int equal_strings(char *s1, char *s2)
-{
-
- while (*s1 && *s2)
- if (*s1++ != *s2++)
- return (0);
-
- if (*s1 != *s2)
- return (0);
- else
- return (1);
-}
-
-
-/******************************************************************************
- Find an element from the element list of a given PLY object.
-
- Entry:
- plyfile - file id for PLY file
- element - name of element we're looking for
-
- Exit:
- returns the element, or NULL if not found
-******************************************************************************/
-
-PlyElement *find_element(PlyFile *plyfile, char *element)
-{
- int i;
-
- for (i = 0; i < plyfile->nelems; i++)
- if (equal_strings(element, plyfile->elems[i]->name))
- return (plyfile->elems[i]);
-
- return (NULL);
-}
-
-
-/******************************************************************************
- Find a property in the list of properties of a given element.
-
- Entry:
- elem - pointer to element in which we want to find the property
- prop_name - name of property to find
-
- Exit:
- index - index to position in list
- returns a pointer to the property, or NULL if not found
-******************************************************************************/
-
-PlyProperty *find_property(PlyElement *elem, char *prop_name, int *index)
-{
- int i;
-
- for (i = 0; i < elem->nprops; i++)
- if (equal_strings(prop_name, elem->props[i]->name)) {
- *index = i;
- return (elem->props[i]);
- }
-
- *index = -1;
- return (NULL);
-}
-
-
-/******************************************************************************
- Read an element from an ascii file.
-
- Entry:
- plyfile - file identifier
- elem_ptr - pointer to element
-******************************************************************************/
-
-void ascii_get_element(PlyFile *plyfile, char *elem_ptr)
-{
- int j, k;
- PlyElement *elem;
- PlyProperty *prop;
- char **words;
- int nwords;
- int which_word;
- char *elem_data, *item;
- char *item_ptr;
- int item_size;
- int int_val;
- unsigned int uint_val;
- double double_val;
- int list_count;
- int store_it;
- char **store_array;
- char *orig_line;
- char *other_data;
- int other_flag;
-
- other_flag = 0;
- other_data = NULL;
- item = NULL;
- item_size = 0;
-
- /* the kind of element we're reading currently */
- elem = plyfile->which_elem;
-
- /* do we need to setup for other_props? */
-
- if (elem->other_offset != NO_OTHER_PROPS) {
- char **ptr;
- other_flag = 1;
- /* make room for other_props */
- other_data = (char *) myalloc(elem->other_size);
- /* store pointer in user's structure to the other_props */
- ptr = (char **) (elem_ptr + elem->other_offset);
- *ptr = other_data;
- }
- else {
- other_flag = 0;
- other_data = NULL;
- item = NULL;
- item_size = 0;
- }
-
- /* read in the element */
-
- words = get_words(plyfile->fp, &nwords, &orig_line);
- if (words == NULL) {
- fprintf(stderr, "ply_get_element: unexpected end of file\n");
- exit(-1);
- }
-
- which_word = 0;
-
- for (j = 0; j < elem->nprops; j++) {
-
- prop = elem->props[j];
- store_it = (elem->store_prop[j] | other_flag);
-
- /* store either in the user's structure or in other_props */
- if (elem->store_prop[j])
- elem_data = elem_ptr;
- else
- elem_data = other_data;
-
- if (prop->is_list) { /* a list */
-
- /* get and store the number of items in the list */
- get_ascii_item(words[which_word++], prop->count_external,
- &int_val, &uint_val, &double_val);
- if (store_it) {
- item = elem_data + prop->count_offset;
- store_item(item, prop->count_internal, int_val, uint_val, double_val);
- }
-
- /* allocate space for an array of items and store a ptr to the array */
- list_count = int_val;
- item_size = ply_type_size[prop->internal_type];
- store_array = (char **) (elem_data + prop->offset);
-
- if (list_count == 0) {
- if (store_it)
- *store_array = NULL;
- }
- else {
- if (store_it) {
- item_ptr = (char *) myalloc(sizeof(char) * item_size * list_count);
- item = item_ptr;
- *store_array = item_ptr;
- }
-
- /* read items and store them into the array */
- for (k = 0; k < list_count; k++) {
- get_ascii_item(words[which_word++], prop->external_type,
- &int_val, &uint_val, &double_val);
- if (store_it) {
- store_item(item, prop->internal_type,
- int_val, uint_val, double_val);
- item += item_size;
- }
- }
- }
-
- }
- else { /* not a list */
- get_ascii_item(words[which_word++], prop->external_type,
- &int_val, &uint_val, &double_val);
- if (store_it) {
- item = elem_data + prop->offset;
- store_item(item, prop->internal_type, int_val, uint_val, double_val);
- }
- }
-
- }
-
- free(words);
-}
-
-
-/******************************************************************************
- Read an element from a binary file.
-
- Entry:
- plyfile - file identifier
- elem_ptr - pointer to an element
-******************************************************************************/
-
-void binary_get_element(PlyFile *plyfile, char *elem_ptr)
-{
- int j, k;
- PlyElement *elem;
- PlyProperty *prop;
- FILE *fp = plyfile->fp;
- char *elem_data, *item;
- char *item_ptr;
- int item_size;
- int int_val;
- unsigned int uint_val;
- double double_val;
- int list_count;
- int store_it;
- char **store_array;
- char *other_data;
- int other_flag;
-
-
- other_flag = 0;
- other_data = NULL;
- item = NULL;
- item_size = 0;
-
- /* the kind of element we're reading currently */
- elem = plyfile->which_elem;
-
- /* do we need to setup for other_props? */
-
- if (elem->other_offset != NO_OTHER_PROPS) {
- char **ptr;
- other_flag = 1;
- /* make room for other_props */
- other_data = (char *) myalloc(elem->other_size);
- /* store pointer in user's structure to the other_props */
- ptr = (char **) (elem_ptr + elem->other_offset);
- *ptr = other_data;
- }
- else {
- other_flag = 0;
- other_data = NULL;
- item = NULL;
- item_size = 0;
- }
- /* read in a number of elements */
-
- for (j = 0; j < elem->nprops; j++) {
-
- prop = elem->props[j];
- store_it = (elem->store_prop[j] | other_flag);
-
- /* store either in the user's structure or in other_props */
- if (elem->store_prop[j])
- elem_data = elem_ptr;
- else
- elem_data = other_data;
-
- if (prop->is_list) { /* a list */
-
- /* get and store the number of items in the list */
- get_binary_item(fp, prop->count_external,
- &int_val, &uint_val, &double_val);
- if (store_it) {
- item = elem_data + prop->count_offset;
- store_item(item, prop->count_internal, int_val, uint_val, double_val);
- }
-
- /* allocate space for an array of items and store a ptr to the array */
- list_count = int_val;
- /* The "if" was added by Afra Zomorodian 8/22/95
- * so that zipper won't crash reading plies that have additional
- * properties.
- */
- if (store_it) {
- item_size = ply_type_size[prop->internal_type];
- }
- store_array = (char **) (elem_data + prop->offset);
- if (list_count == 0) {
- if (store_it)
- *store_array = NULL;
- }
- else {
- if (store_it) {
- item_ptr = (char *) myalloc(sizeof(char) * item_size * list_count);
- item = item_ptr;
- *store_array = item_ptr;
- }
-
- /* read items and store them into the array */
- for (k = 0; k < list_count; k++) {
- get_binary_item(fp, prop->external_type,
- &int_val, &uint_val, &double_val);
- if (store_it) {
- store_item(item, prop->internal_type,
- int_val, uint_val, double_val);
- item += item_size;
- }
- }
- }
-
- }
- else { /* not a list */
- get_binary_item(fp, prop->external_type,
- &int_val, &uint_val, &double_val);
- if (store_it) {
- item = elem_data + prop->offset;
- store_item(item, prop->internal_type, int_val, uint_val, double_val);
- }
- }
-
- }
-}
-
-
-/******************************************************************************
- Write to a file the word that represents a PLY data type.
-
- Entry:
- fp - file pointer
- code - code for type
-******************************************************************************/
-
-void write_scalar_type(FILE *fp, int code)
-{
- /* make sure this is a valid code */
-
- if (code <= PLY_START_TYPE || code >= PLY_END_TYPE) {
- fprintf(stderr, "write_scalar_type: bad data code = %d\n", code);
- exit(-1);
- }
-
- /* write the code to a file */
-
- fprintf(fp, "%s", type_names[code]);
-}
-
-
-/******************************************************************************
- Get a text line from a file and break it up into words.
-
- IMPORTANT: The calling routine call "free" on the returned pointer once
- finished with it.
-
- Entry:
- fp - file to read from
-
- Exit:
- nwords - number of words returned
- orig_line - the original line of characters
- returns a list of words from the line, or NULL if end-of-file
-******************************************************************************/
-
-char **get_words(FILE *fp, int *nwords, char **orig_line)
-{
-#define BIG_STRING 4096
- static char str[BIG_STRING];
- static char str_copy[BIG_STRING];
- char **words;
- int max_words = 10;
- int num_words = 0;
- char *ptr, *ptr2;
- char *result;
-
- words = (char **) myalloc(sizeof(char *) * max_words);
-
- /* read in a line */
- result = fgets(str, BIG_STRING, fp);
- if (result == NULL) {
- *nwords = 0;
- *orig_line = NULL;
- return (NULL);
- }
-
- /* convert line-feed and tabs into spaces */
- /* (this guarentees that there will be a space before the */
- /* null character at the end of the string) */
-
- str[BIG_STRING - 2] = ' ';
- str[BIG_STRING - 1] = '\0';
-
- for (ptr = str, ptr2 = str_copy; *ptr != '\0'; ptr++, ptr2++) {
- *ptr2 = *ptr;
- if (*ptr == '\t') {
- *ptr = ' ';
- *ptr2 = ' ';
- }
- else if (*ptr == '\n') {
- *ptr = ' ';
- *ptr2 = '\0';
- break;
- }
- }
-
- /* find the words in the line */
-
- ptr = str;
- while (*ptr != '\0') {
-
- /* jump over leading spaces */
- while (*ptr == ' ')
- ptr++;
-
- /* break if we reach the end */
- if (*ptr == '\0')
- break;
-
- /* save pointer to beginning of word */
- if (num_words >= max_words) {
- max_words += 10;
- words = (char **) realloc(words, sizeof(char *) * max_words);
- }
- words[num_words++] = ptr;
-
- /* jump over non-spaces */
- while (*ptr != ' ')
- ptr++;
-
- /* place a null character here to mark the end of the word */
- *ptr++ = '\0';
- }
-
- /* return the list of words */
- *nwords = num_words;
- *orig_line = str_copy;
- return (words);
-}
-
-
-/******************************************************************************
- Return the value of an item, given a pointer to it and its type.
-
- Entry:
- item - pointer to item
- type - data type that "item" points to
-
- Exit:
- returns a double-precision float that contains the value of the item
-******************************************************************************/
-
-double get_item_value(char *item, int type)
-{
- unsigned char *puchar;
- char *pchar;
- short int *pshort;
- unsigned short int *pushort;
- int *pint;
- unsigned int *puint;
- float *pfloat;
- double *pdouble;
- int int_value;
- unsigned int uint_value;
- double double_value;
-
- switch (type) {
- case PLY_CHAR:
- pchar = (char *) item;
- int_value = *pchar;
- return ((double) int_value);
- case PLY_UCHAR:
- puchar = (unsigned char *) item;
- int_value = *puchar;
- return ((double) int_value);
- case PLY_SHORT:
- pshort = (short int *) item;
- int_value = *pshort;
- return ((double) int_value);
- case PLY_USHORT:
- pushort = (unsigned short int *) item;
- int_value = *pushort;
- return ((double) int_value);
- case PLY_INT:
- pint = (int *) item;
- int_value = *pint;
- return ((double) int_value);
- case PLY_UINT:
- puint = (unsigned int *) item;
- uint_value = *puint;
- return ((double) uint_value);
- case PLY_FLOAT:
- pfloat = (float *) item;
- double_value = *pfloat;
- return (double_value);
- case PLY_DOUBLE:
- pdouble = (double *) item;
- double_value = *pdouble;
- return (double_value);
- default:
- fprintf(stderr, "get_item_value: bad type = %d\n", type);
- exit(-1);
- }
-}
-
-
-/******************************************************************************
- Write out an item to a file as raw binary bytes.
-
- Entry:
- fp - file to write to
- int_val - integer version of item
- uint_val - unsigned integer version of item
- double_val - double-precision float version of item
- type - data type to write out
-******************************************************************************/
-
-void write_binary_item(
- FILE *fp,
- int int_val,
- unsigned int uint_val,
- double double_val,
- int type
- )
-{
- unsigned char uchar_val;
- char char_val;
- unsigned short ushort_val;
- short short_val;
- float float_val;
-
- switch (type) {
- case PLY_CHAR:
- char_val = (char)int_val;
- fwrite(&char_val, 1, 1, fp);
- break;
- case PLY_SHORT:
- short_val = (short)int_val;
- fwrite(&short_val, 2, 1, fp);
- break;
- case PLY_INT:
- fwrite(&int_val, 4, 1, fp);
- break;
- case PLY_UCHAR:
- uchar_val = (unsigned char) uint_val;
- fwrite(&uchar_val, 1, 1, fp);
- break;
- case PLY_USHORT:
- ushort_val = (unsigned short)uint_val;
- fwrite(&ushort_val, 2, 1, fp);
- break;
- case PLY_UINT:
- fwrite(&uint_val, 4, 1, fp);
- break;
- case PLY_FLOAT:
- float_val = (float) double_val;
- fwrite(&float_val, 4, 1, fp);
- break;
- case PLY_DOUBLE:
- fwrite(&double_val, 8, 1, fp);
- break;
- default:
- fprintf(stderr, "write_binary_item: bad type = %d\n", type);
- exit(-1);
- }
-}
-
-
-/******************************************************************************
- Write out an item to a file as ascii characters.
-
- Entry:
- fp - file to write to
- int_val - integer version of item
- uint_val - unsigned integer version of item
- double_val - double-precision float version of item
- type - data type to write out
-******************************************************************************/
-
-void write_ascii_item(
- FILE *fp,
- int int_val,
- unsigned int uint_val,
- double double_val,
- int type
- )
-{
- switch (type) {
- case PLY_CHAR:
- case PLY_SHORT:
- case PLY_INT:
- fprintf(fp, "%d ", int_val);
- break;
- case PLY_UCHAR:
- case PLY_USHORT:
- case PLY_UINT:
- fprintf(fp, "%u ", uint_val);
- break;
- case PLY_FLOAT:
- case PLY_DOUBLE:
- fprintf(fp, "%g ", double_val);
- break;
- default:
- fprintf(stderr, "write_ascii_item: bad type = %d\n", type);
- exit(-1);
- }
-}
-
-
-/******************************************************************************
- Write out an item to a file as ascii characters.
-
- Entry:
- fp - file to write to
- item - pointer to item to write
- type - data type that "item" points to
-
- Exit:
- returns a double-precision float that contains the value of the written item
-******************************************************************************/
-
-double old_write_ascii_item(FILE *fp, char *item, int type)
-{
- unsigned char *puchar;
- char *pchar;
- short int *pshort;
- unsigned short int *pushort;
- int *pint;
- unsigned int *puint;
- float *pfloat;
- double *pdouble;
- int int_value;
- unsigned int uint_value;
- double double_value;
-
- switch (type) {
- case PLY_CHAR:
- pchar = (char *) item;
- int_value = *pchar;
- fprintf(fp, "%d ", int_value);
- return ((double) int_value);
- case PLY_UCHAR:
- puchar = (unsigned char *) item;
- int_value = *puchar;
- fprintf(fp, "%d ", int_value);
- return ((double) int_value);
- case PLY_SHORT:
- pshort = (short int *) item;
- int_value = *pshort;
- fprintf(fp, "%d ", int_value);
- return ((double) int_value);
- case PLY_USHORT:
- pushort = (unsigned short int *) item;
- int_value = *pushort;
- fprintf(fp, "%d ", int_value);
- return ((double) int_value);
- case PLY_INT:
- pint = (int *) item;
- int_value = *pint;
- fprintf(fp, "%d ", int_value);
- return ((double) int_value);
- case PLY_UINT:
- puint = (unsigned int *) item;
- uint_value = *puint;
- fprintf(fp, "%u ", uint_value);
- return ((double) uint_value);
- case PLY_FLOAT:
- pfloat = (float *) item;
- double_value = *pfloat;
- fprintf(fp, "%g ", double_value);
- return (double_value);
- case PLY_DOUBLE:
- pdouble = (double *) item;
- double_value = *pdouble;
- fprintf(fp, "%g ", double_value);
- return (double_value);
- default:
- fprintf(stderr, "old_write_ascii_item: bad type = %d\n", type);
- exit(-1);
- }
-}
-
-
-/******************************************************************************
- Get the value of an item that is in memory, and place the result
- into an integer, an unsigned integer and a double.
-
- Entry:
- ptr - pointer to the item
- type - data type supposedly in the item
-
- Exit:
- int_val - integer value
- uint_val - unsigned integer value
- double_val - double-precision floating point value
-******************************************************************************/
-
-void get_stored_item(
- void *ptr,
- int type,
- int *int_val,
- unsigned int *uint_val,
- double *double_val
- )
-{
- switch (type) {
- case PLY_CHAR:
- *int_val = *((char *) ptr);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
- case PLY_UCHAR:
- *uint_val = *((unsigned char *) ptr);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
- case PLY_SHORT:
- *int_val = *((short int *) ptr);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
- case PLY_USHORT:
- *uint_val = *((unsigned short int *) ptr);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
- case PLY_INT:
- *int_val = *((int *) ptr);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
- case PLY_UINT:
- *uint_val = *((unsigned int *) ptr);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
- case PLY_FLOAT:
- *double_val = *((float *) ptr);
- *int_val = (int)*double_val;
- *uint_val = (unsigned int)*double_val;
- break;
- case PLY_DOUBLE:
- *double_val = *((double *) ptr);
- *int_val = (int)*double_val;
- *uint_val = (unsigned int) *double_val;
- break;
- default:
- fprintf(stderr, "get_stored_item: bad type = %d\n", type);
- exit(-1);
- }
-}
-
-
-/******************************************************************************
- Get the value of an item from a binary file, and place the result
- into an integer, an unsigned integer and a double.
-
- Entry:
- fp - file to get item from
- type - data type supposedly in the word
-
- Exit:
- int_val - integer value
- uint_val - unsigned integer value
- double_val - double-precision floating point value
-******************************************************************************/
-
-void get_binary_item(
- FILE *fp,
- int type,
- int *int_val,
- unsigned int *uint_val,
- double *double_val
- )
-{
- char c[8];
- void *ptr;
-
- ptr = (void *) c;
-
- switch (type) {
- case PLY_CHAR:
- fread(ptr, 1, 1, fp);
- *int_val = *((char *) ptr);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
- case PLY_UCHAR:
- fread(ptr, 1, 1, fp);
- *uint_val = *((unsigned char *) ptr);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
- case PLY_SHORT:
- fread(ptr, 2, 1, fp);
- *int_val = *((short int *) ptr);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
- case PLY_USHORT:
- fread(ptr, 2, 1, fp);
- *uint_val = *((unsigned short int *) ptr);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
- case PLY_INT:
- fread(ptr, 4, 1, fp);
- *int_val = *((int *) ptr);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
- case PLY_UINT:
- fread(ptr, 4, 1, fp);
- *uint_val = *((unsigned int *) ptr);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
- case PLY_FLOAT:
- fread(ptr, 4, 1, fp);
- *double_val = *((float *) ptr);
- *int_val = (int)*double_val;
- *uint_val = (unsigned int) *double_val;
- break;
- case PLY_DOUBLE:
- fread(ptr, 8, 1, fp);
- *double_val = *((double *) ptr);
- *int_val = (int)*double_val;
- *uint_val = (unsigned int)*double_val;
- break;
- default:
- fprintf(stderr, "get_binary_item: bad type = %d\n", type);
- exit(-1);
- }
-}
-
-
-/******************************************************************************
- Extract the value of an item from an ascii word, and place the result
- into an integer, an unsigned integer and a double.
-
- Entry:
- word - word to extract value from
- type - data type supposedly in the word
-
- Exit:
- int_val - integer value
- uint_val - unsigned integer value
- double_val - double-precision floating point value
-******************************************************************************/
-
-void get_ascii_item(
- char *word,
- int type,
- int *int_val,
- unsigned int *uint_val,
- double *double_val
- )
-{
- switch (type) {
- case PLY_CHAR:
- case PLY_UCHAR:
- case PLY_SHORT:
- case PLY_USHORT:
- case PLY_INT:
- *int_val = atoi(word);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
-
- case PLY_UINT:
- *uint_val = strtoul(word, (char **) NULL, 10);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
-
- case PLY_FLOAT:
- case PLY_DOUBLE:
- *double_val = atof(word);
- *int_val = (int) *double_val;
- *uint_val = (unsigned int) *double_val;
- break;
-
- default:
- fprintf(stderr, "get_ascii_item: bad type = %d\n", type);
- exit(-1);
- }
-}
-
-
-/******************************************************************************
- Store a value into a place being pointed to, guided by a data type.
-
- Entry:
- item - place to store value
- type - data type
- int_val - integer version of value
- uint_val - unsigned integer version of value
- double_val - double version of value
-
- Exit:
- item - pointer to stored value
-******************************************************************************/
-
-void store_item(
- char *item,
- int type,
- int int_val,
- unsigned int uint_val,
- double double_val
- )
-{
- unsigned char *puchar;
- short int *pshort;
- unsigned short int *pushort;
- int *pint;
- unsigned int *puint;
- float *pfloat;
- double *pdouble;
-
- switch (type) {
- case PLY_CHAR:
- *item = (char) int_val;
- break;
- case PLY_UCHAR:
- puchar = (unsigned char *) item;
- *puchar = (unsigned char)uint_val;
- break;
- case PLY_SHORT:
- pshort = (short *) item;
- *pshort = (short)int_val;
- break;
- case PLY_USHORT:
- pushort = (unsigned short *) item;
- *pushort = (unsigned short)uint_val;
- break;
- case PLY_INT:
- pint = (int *) item;
- *pint = int_val;
- break;
- case PLY_UINT:
- puint = (unsigned int *) item;
- *puint = uint_val;
- break;
- case PLY_FLOAT:
- pfloat = (float *) item;
- *pfloat = (float)double_val;
- break;
- case PLY_DOUBLE:
- pdouble = (double *) item;
- *pdouble = double_val;
- break;
- default:
- fprintf(stderr, "store_item: bad type = %d\n", type);
- exit(-1);
- }
-}
-
-
-/******************************************************************************
- Add an element to a PLY file descriptor.
-
- Entry:
- plyfile - PLY file descriptor
- words - list of words describing the element
- nwords - number of words in the list
-******************************************************************************/
-
-void add_element(PlyFile *plyfile, char **words)
-{
- PlyElement *elem;
-
- /* create the new element */
- elem = (PlyElement *) myalloc(sizeof(PlyElement));
- elem->name = strdup(words[1]);
- elem->num = atoi(words[2]);
- elem->nprops = 0;
-
- /* make room for new element in the object's list of elements */
- if (plyfile->nelems == 0)
- plyfile->elems = (PlyElement **) myalloc(sizeof(PlyElement *));
- else
- plyfile->elems = (PlyElement **) realloc(plyfile->elems,
- sizeof(PlyElement *) * (plyfile->nelems + 1));
-
- /* add the new element to the object's list */
- plyfile->elems[plyfile->nelems] = elem;
- plyfile->nelems++;
-}
-
-
-/******************************************************************************
- Return the type of a property, given the name of the property.
-
- Entry:
- name - name of property type
-
- Exit:
- returns integer code for property, or 0 if not found
-******************************************************************************/
-
-int get_prop_type(char *type_name)
-{
- int i;
-
- for (i = PLY_START_TYPE + 1; i < PLY_END_TYPE; i++)
- if (equal_strings(type_name, type_names[i]))
- return (i);
-
- /* if we get here, we didn't find the type */
- return (0);
-}
-
-
-/******************************************************************************
- Add a property to a PLY file descriptor.
-
- Entry:
- plyfile - PLY file descriptor
- words - list of words describing the property
- nwords - number of words in the list
-******************************************************************************/
-
-void add_property(PlyFile *plyfile, char **words)
-{
- PlyProperty *prop;
- PlyElement *elem;
-
- /* create the new property */
-
- prop = (PlyProperty *) myalloc(sizeof(PlyProperty));
-
- if (equal_strings(words[1], "list")) { /* is a list */
- prop->count_external = get_prop_type(words[2]);
- prop->external_type = get_prop_type(words[3]);
- prop->name = strdup(words[4]);
- prop->is_list = 1;
- }
- else { /* not a list */
- prop->external_type = get_prop_type(words[1]);
- prop->name = strdup(words[2]);
- prop->is_list = 0;
- }
-
- /* add this property to the list of properties of the current element */
-
- elem = plyfile->elems[plyfile->nelems - 1];
-
- if (elem->nprops == 0)
- elem->props = (PlyProperty **) myalloc(sizeof(PlyProperty *));
- else
- elem->props = (PlyProperty **) realloc(elem->props,
- sizeof(PlyProperty *) * (elem->nprops + 1));
-
- elem->props[elem->nprops] = prop;
- elem->nprops++;
-}
-
-
-/******************************************************************************
- Add a comment to a PLY file descriptor.
-
- Entry:
- plyfile - PLY file descriptor
- line - line containing comment
-******************************************************************************/
-
-void add_comment(PlyFile *plyfile, char *line)
-{
- int i;
-
- /* skip over "comment" and leading spaces and tabs */
- i = 7;
- while (line[i] == ' ' || line[i] == '\t')
- i++;
-
- ply_put_comment(plyfile, &line[i]);
-}
-
-
-/******************************************************************************
- Add a some object information to a PLY file descriptor.
-
- Entry:
- plyfile - PLY file descriptor
- line - line containing text info
-******************************************************************************/
-
-void add_obj_info(PlyFile *plyfile, char *line)
-{
- int i;
-
- /* skip over "obj_info" and leading spaces and tabs */
- i = 8;
- while (line[i] == ' ' || line[i] == '\t')
- i++;
-
- ply_put_obj_info(plyfile, &line[i]);
-}
-
-
-/******************************************************************************
- Copy a property.
-******************************************************************************/
-
-void copy_property(PlyProperty *dest, PlyProperty *src)
-{
- dest->name = strdup(src->name);
- dest->external_type = src->external_type;
- dest->internal_type = src->internal_type;
- dest->offset = src->offset;
-
- dest->is_list = src->is_list;
- dest->count_external = src->count_external;
- dest->count_internal = src->count_internal;
- dest->count_offset = src->count_offset;
-}
-
-
-/******************************************************************************
- Allocate some memory.
-
- Entry:
- size - amount of memory requested (in bytes)
- lnum - line number from which memory was requested
- fname - file name from which memory was requested
-******************************************************************************/
-
-static char *my_alloc(int size, int lnum, char *fname)
-{
- char *ptr;
-
- ptr = (char *) malloc(size);
-
- if (ptr == 0) {
- fprintf(stderr, "Memory allocation bombed on line %d in %s\n", lnum, fname);
- }
-
- return (ptr);
-}
-
diff --git a/intern/container/CTR_HashedPtr.h b/intern/container/CTR_HashedPtr.h
index caf63f75606..11dc37b3625 100644
--- a/intern/container/CTR_HashedPtr.h
+++ b/intern/container/CTR_HashedPtr.h
@@ -38,7 +38,7 @@
inline unsigned int CTR_Hash(void *inDWord)
{
size_t key = (size_t)inDWord;
- return (unsigned int)(key ^ (key>>4));
+ return (unsigned int)(key ^ (key >> 4));
}
class CTR_HashedPtr
diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt
index 2127ad23bd3..38daf790955 100644
--- a/intern/cycles/CMakeLists.txt
+++ b/intern/cycles/CMakeLists.txt
@@ -20,8 +20,8 @@ elseif(CMAKE_COMPILER_IS_GNUCC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffast-math")
endif()
-# for OSL, not needed yet
-# set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID")
+# for OSL
+set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID")
# set(RTTI_DISABLE_FLAGS "/GR- -DBOOST_NO_RTTI -DBOOST_NO_TYPEID")
# Definitions and Includes
@@ -56,14 +56,15 @@ add_definitions(-DWITH_CUDA)
add_definitions(-DWITH_MULTI)
include_directories(
+ SYSTEM
${BOOST_INCLUDE_DIR}
${OPENIMAGEIO_INCLUDE_DIRS}
- ${OPENIMAGEIO_INCLUDE_DIRS}/OpenImageIO)
+ ${OPENIMAGEIO_INCLUDE_DIRS}/OpenImageIO
+ ${OPENEXR_INCLUDE_DIR})
# Subdirectories
if(WITH_CYCLES_BLENDER)
- add_definitions(-DBLENDER_PLUGIN)
add_subdirectory(blender)
endif()
diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt
index 2e2897d0443..83b3f731ffe 100644
--- a/intern/cycles/app/CMakeLists.txt
+++ b/intern/cycles/app/CMakeLists.txt
@@ -9,6 +9,8 @@ set(INC
../render
../subd
)
+set(INC_SYS
+)
set(LIBRARIES
cycles_device
@@ -38,6 +40,7 @@ if(WITH_CYCLES_PARTIO)
endif()
include_directories(${INC})
+include_directories(SYSTEM ${INC_SYS})
if(WITH_CYCLES_TEST)
set(SRC
diff --git a/intern/cycles/app/cycles_test.cpp b/intern/cycles/app/cycles_test.cpp
index f5890998adc..e921cc46fe4 100644
--- a/intern/cycles/app/cycles_test.cpp
+++ b/intern/cycles/app/cycles_test.cpp
@@ -66,12 +66,13 @@ static void session_print(const string& str)
static void session_print_status()
{
- int sample;
+ int sample, tile;
double total_time, sample_time;
string status, substatus;
/* get status */
- options.session->progress.get_sample(sample, total_time, sample_time);
+ sample = options.session->progress.get_sample();
+ options.session->progress.get_tile(tile, total_time, sample_time);
options.session->progress.get_status(status, substatus);
if(substatus != "")
@@ -111,7 +112,7 @@ static void session_init()
static void scene_init(int width, int height)
{
- options.scene = new Scene(options.scene_params);
+ options.scene = new Scene(options.scene_params, options.session_params.device);
xml_read_file(options.scene, options.filepath.c_str());
if (width == 0 || height == 0) {
@@ -147,11 +148,12 @@ static void display_info(Progress& progress)
latency = (elapsed - last);
last = elapsed;
- int sample;
+ int sample, tile;
double total_time, sample_time;
string status, substatus;
- progress.get_sample(sample, total_time, sample_time);
+ sample = progress.get_sample();
+ progress.get_tile(tile, total_time, sample_time);
progress.get_status(status, substatus);
if(substatus != "")
@@ -245,7 +247,7 @@ static void options_parse(int argc, const char **argv)
NULL);
if(ap.parse(argc, argv) < 0) {
- fprintf(stderr, "%s\n", ap.error_message().c_str());
+ fprintf(stderr, "%s\n", ap.geterror().c_str());
ap.usage();
exit(EXIT_FAILURE);
}
@@ -270,6 +272,9 @@ static void options_parse(int argc, const char **argv)
options.scene_params.shadingsystem = SceneParams::OSL;
else if(ssname == "svm")
options.scene_params.shadingsystem = SceneParams::SVM;
+
+ /* Progressive rendering */
+ options.session_params.progressive = true;
/* find matching device */
DeviceType device_type = Device::type_from_string(devicename.c_str());
diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp
index 5ec5cb929d6..87a238e508c 100644
--- a/intern/cycles/app/cycles_xml.cpp
+++ b/intern/cycles/app/cycles_xml.cpp
@@ -379,6 +379,9 @@ static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pug
else if(string_iequals(node.name(), "checker_texture")) {
snode = new CheckerTextureNode();
}
+ else if(string_iequals(node.name(), "brick_texture")) {
+ snode = new BrickTextureNode();
+ }
else if(string_iequals(node.name(), "gradient_texture")) {
GradientTextureNode *blend = new GradientTextureNode();
xml_read_enum(&blend->type, GradientTextureNode::type_enum, node, "type");
@@ -484,6 +487,7 @@ static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pug
else if(string_iequals(node.name(), "mix")) {
MixNode *mix = new MixNode();
xml_read_enum(&mix->type, MixNode::type_enum, node, "type");
+ xml_read_bool(&mix->use_clamp, node, "use_clamp");
snode = mix;
}
else if(string_iequals(node.name(), "gamma")) {
@@ -515,6 +519,7 @@ static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pug
else if(string_iequals(node.name(), "math")) {
MathNode *math = new MathNode();
xml_read_enum(&math->type, MathNode::type_enum, node, "type");
+ xml_read_bool(&math->use_clamp, node, "use_clamp");
snode = math;
}
else if(string_iequals(node.name(), "vector_math")) {
diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py
index 4a60a329e2b..6292c09fbb1 100644
--- a/intern/cycles/blender/addon/__init__.py
+++ b/intern/cycles/blender/addon/__init__.py
@@ -25,7 +25,7 @@ bl_info = {
"location": "Info header, render engine menu",
"description": "Cycles Render Engine integration",
"warning": "",
- "wiki_url": "http://wiki.blender.org/index.php/Dev:2.6/Source/Render/Cycles",
+ "wiki_url": "http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles",
"tracker_url": "",
"support": 'OFFICIAL',
"category": "Render"}
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index 7a22cba316e..0fadfa0afc8 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -241,12 +241,14 @@ class CyclesRenderSettings(bpy.types.PropertyGroup):
min=1, max=4096,
default=1024,
)
- cls.debug_min_size = IntProperty(
- name="Min Size",
- description="",
- min=1, max=4096,
+
+ cls.preview_start_resolution = IntProperty(
+ name="Start Resolution",
+ description="Resolution to start rendering preview at, progressively increasing it to the full viewport size",
+ min=8, max=16384,
default=64,
)
+
cls.debug_reset_timeout = FloatProperty(
name="Reset timeout",
description="",
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index 5234db5255e..4f4b0371839 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -53,19 +53,20 @@ class CyclesRender_PT_sampling(CyclesButtonsPanel, Panel):
scene = context.scene
cscene = scene.cycles
+ device_type = context.user_preferences.system.compute_device_type
split = layout.split()
col = split.column()
sub = col.column()
- sub.active = cscene.device == 'CPU'
+ sub.active = (device_type == 'NONE' or cscene.device == 'CPU')
sub.prop(cscene, "progressive")
sub = col.column(align=True)
sub.prop(cscene, "seed")
sub.prop(cscene, "sample_clamp")
- if cscene.progressive or cscene.device != 'CPU':
+ if cscene.progressive or (device_type != 'NONE' and cscene.device == 'GPU'):
col = split.column()
col.label(text="Samples:")
sub = col.column(align=True)
@@ -197,8 +198,13 @@ class CyclesRender_PT_performance(CyclesButtonsPanel, Panel):
sub = col.column(align=True)
sub.label(text="Tiles:")
- sub.prop(cscene, "debug_tile_size")
- sub.prop(cscene, "debug_min_size")
+
+ sub.prop(rd, "parts_x", text="X")
+ sub.prop(rd, "parts_y", text="Y")
+
+ subsub = sub.column()
+ subsub.enabled = not rd.use_border
+ subsub.prop(rd, "use_save_buffers")
col = split.column()
@@ -208,6 +214,10 @@ class CyclesRender_PT_performance(CyclesButtonsPanel, Panel):
sub.prop(cscene, "debug_use_spatial_splits")
sub.prop(cscene, "use_cache")
+ sub = col.column(align=True)
+ sub.label(text="Viewport:")
+ sub.prop(cscene, "preview_start_resolution")
+
class CyclesRender_PT_layers(CyclesButtonsPanel, Panel):
bl_label = "Layers"
@@ -428,6 +438,28 @@ class Cycles_PT_mesh_displacement(CyclesButtonsPanel, Panel):
layout.prop(cdata, "dicing_rate")
+class Cycles_PT_mesh_normals(CyclesButtonsPanel, Panel):
+ bl_label = "Normals"
+ bl_context = "data"
+
+ @classmethod
+ def poll(cls, context):
+ return CyclesButtonsPanel.poll(context) and context.mesh
+
+ def draw(self, context):
+ layout = self.layout
+
+ mesh = context.mesh
+
+ split = layout.split()
+
+ col = split.column()
+ col.prop(mesh, "show_double_sided")
+
+ col = split.column()
+ col.label()
+
+
class CyclesObject_PT_ray_visibility(CyclesButtonsPanel, Panel):
bl_label = "Ray Visibility"
bl_context = "object"
@@ -503,6 +535,7 @@ class CyclesLamp_PT_lamp(CyclesButtonsPanel, Panel):
lamp = context.lamp
clamp = lamp.cycles
cscene = context.scene.cycles
+ device_type = context.user_preferences.system.compute_device_type
layout.prop(lamp, "type", expand=True)
@@ -521,7 +554,7 @@ class CyclesLamp_PT_lamp(CyclesButtonsPanel, Panel):
sub.prop(lamp, "size", text="Size X")
sub.prop(lamp, "size_y", text="Size Y")
- if not cscene.progressive and cscene.device == 'CPU':
+ if not cscene.progressive and (device_type == 'NONE' or cscene.device == 'CPU'):
col.prop(clamp, "samples")
col = split.column()
@@ -646,6 +679,7 @@ class CyclesWorld_PT_settings(CyclesButtonsPanel, Panel):
world = context.world
cworld = world.cycles
cscene = context.scene.cycles
+ device_type = context.user_preferences.system.compute_device_type
col = layout.column()
@@ -653,7 +687,7 @@ class CyclesWorld_PT_settings(CyclesButtonsPanel, Panel):
sub = col.row(align=True)
sub.active = cworld.sample_as_light
sub.prop(cworld, "sample_map_resolution")
- if not cscene.progressive and cscene.device == 'CPU':
+ if not cscene.progressive and (device_type == 'NONE' or cscene.device == 'CPU'):
sub.prop(cworld, "samples")
@@ -921,6 +955,9 @@ def draw_device(self, context):
elif device_type == 'OPENCL' and cscene.feature_set == 'EXPERIMENTAL':
layout.prop(cscene, "device")
+ if engine.with_osl() and (cscene.device == 'CPU' or device_type == 'None'):
+ layout.prop(cscene, "shading_system")
+
def draw_pause(self, context):
layout = self.layout
@@ -963,6 +1000,7 @@ def get_panels():
bpy.types.DATA_PT_camera,
bpy.types.DATA_PT_camera_display,
bpy.types.DATA_PT_lens,
+ bpy.types.DATA_PT_customdata,
bpy.types.DATA_PT_custom_props_mesh,
bpy.types.DATA_PT_custom_props_camera,
bpy.types.DATA_PT_custom_props_lamp,
diff --git a/intern/cycles/blender/blender_camera.cpp b/intern/cycles/blender/blender_camera.cpp
index 46d5fefd4dc..e16677336d5 100644
--- a/intern/cycles/blender/blender_camera.cpp
+++ b/intern/cycles/blender/blender_camera.cpp
@@ -94,7 +94,7 @@ static float blender_camera_focal_distance(BL::Object b_ob, BL::Camera b_camera)
return fabsf(transform_get_column(&mat, 3).z);
}
-static void blender_camera_from_object(BlenderCamera *bcam, BL::Object b_ob)
+static void blender_camera_from_object(BlenderCamera *bcam, BL::Object b_ob, bool skip_panorama = false)
{
BL::ID b_ob_data = b_ob.data();
@@ -111,7 +111,10 @@ static void blender_camera_from_object(BlenderCamera *bcam, BL::Object b_ob)
bcam->type = CAMERA_ORTHOGRAPHIC;
break;
case BL::Camera::type_PANO:
- bcam->type = CAMERA_PANORAMA;
+ if(!skip_panorama)
+ bcam->type = CAMERA_PANORAMA;
+ else
+ bcam->type = CAMERA_PERSPECTIVE;
break;
case BL::Camera::type_PERSP:
default:
@@ -378,7 +381,7 @@ void BlenderSync::sync_camera_motion(BL::Object b_ob, int motion)
/* Sync 3D View Camera */
-static void blender_camera_from_view(BlenderCamera *bcam, BL::Scene b_scene, BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height)
+static void blender_camera_from_view(BlenderCamera *bcam, BL::Scene b_scene, BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height, bool skip_panorama = false)
{
/* 3d view parameters */
bcam->nearclip = b_v3d.clip_start();
@@ -391,7 +394,7 @@ static void blender_camera_from_view(BlenderCamera *bcam, BL::Scene b_scene, BL:
BL::Object b_ob = (b_v3d.lock_camera_and_layers())? b_scene.camera(): b_v3d.camera();
if(b_ob) {
- blender_camera_from_object(bcam, b_ob);
+ blender_camera_from_object(bcam, b_ob, skip_panorama);
/* magic zoom formula */
bcam->zoom = (float)b_rv3d.view_camera_zoom();
@@ -447,7 +450,7 @@ static void blender_camera_border(BlenderCamera *bcam, BL::Scene b_scene, BL::Sp
/* get viewport viewplane */
BlenderCamera view_bcam;
blender_camera_init(&view_bcam);
- blender_camera_from_view(&view_bcam, b_scene, b_v3d, b_rv3d, width, height);
+ blender_camera_from_view(&view_bcam, b_scene, b_v3d, b_rv3d, width, height, true);
blender_camera_viewplane(&view_bcam, width, height,
&view_left, &view_right, &view_bottom, &view_top, &view_aspect, &sensor_size);
@@ -460,7 +463,7 @@ static void blender_camera_border(BlenderCamera *bcam, BL::Scene b_scene, BL::Sp
/* get camera viewplane */
BlenderCamera cam_bcam;
blender_camera_init(&cam_bcam);
- blender_camera_from_object(&cam_bcam, b_ob);
+ blender_camera_from_object(&cam_bcam, b_ob, true);
width = (int)(r.resolution_x()*r.resolution_percentage()/100);
height = (int)(r.resolution_y()*r.resolution_percentage()/100);
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index 16e4ceded89..9764f24a893 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -317,11 +317,11 @@ void BlenderSync::sync_mesh_motion(BL::Object b_ob, Mesh *mesh, int motion)
BL::Mesh::vertices_iterator v;
AttributeStandard std = (motion == -1)? ATTR_STD_MOTION_PRE: ATTR_STD_MOTION_POST;
Attribute *attr_M = mesh->attributes.add(std);
- float3 *M = attr_M->data_float3();
+ float3 *M = attr_M->data_float3(), *cur_M;
size_t i = 0;
- for(b_mesh.vertices.begin(v); v != b_mesh.vertices.end() && i < size; ++v, M++, i++)
- *M = get_float3(v->co());
+ for(b_mesh.vertices.begin(v), cur_M = M; v != b_mesh.vertices.end() && i < size; ++v, cur_M++, i++)
+ *cur_M = get_float3(v->co());
/* if number of vertices changed, or if coordinates stayed the same, drop it */
if(i != size || memcmp(M, &mesh->verts[0], sizeof(float3)*size) == 0)
diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp
index a928bd9a6ea..27301026d35 100644
--- a/intern/cycles/blender/blender_object.cpp
+++ b/intern/cycles/blender/blender_object.cpp
@@ -194,8 +194,10 @@ void BlenderSync::sync_background_light()
/* Object */
-void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob, Transform& tfm, uint layer_flag, int motion, int particle_id)
+void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::DupliObject b_dupli_ob, Transform& tfm, uint layer_flag, int motion, int particle_id)
{
+ BL::Object b_ob = (b_dupli_ob ? b_dupli_ob.object() : b_parent);
+
/* light is handled separately */
if(object_is_light(b_ob)) {
if(!motion)
@@ -248,7 +250,9 @@ void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob,
}
/* object sync */
- if(object_updated || (object->mesh && object->mesh->need_update)) {
+ /* transform comparison should not be needed, but duplis don't work perfect
+ * in the depsgraph and may not signal changes, so this is a workaround */
+ if(object_updated || (object->mesh && object->mesh->need_update) || tfm != object->tfm) {
object->name = b_ob.name().c_str();
object->pass_id = b_ob.pass_index();
object->tfm = tfm;
@@ -272,12 +276,17 @@ void BlenderSync::sync_object(BL::Object b_parent, int b_index, BL::Object b_ob,
object->visibility &= ~PATH_RAY_CAMERA;
}
+ if (b_dupli_ob) {
+ object->dupli_generated = get_float3(b_dupli_ob.orco());
+ object->dupli_uv = get_float2(b_dupli_ob.uv());
+ }
+ else {
+ object->dupli_generated = make_float3(0.0f, 0.0f, 0.0f);
+ object->dupli_uv = make_float2(0.0f, 0.0f);
+ }
+
object->particle_id = particle_id;
- /* particle sync */
- if (object_use_particles(b_ob))
- sync_particles(object, b_ob);
-
object->tag_update(scene);
}
}
@@ -300,15 +309,18 @@ void BlenderSync::sync_objects(BL::SpaceView3D b_v3d, int motion)
/* object loop */
BL::Scene::objects_iterator b_ob;
BL::Scene b_sce = b_scene;
- int particle_offset = 0;
+ int particle_offset = 1; /* first particle is dummy for regular, non-instanced objects */
- for(; b_sce; b_sce = b_sce.background_set()) {
- for(b_sce.objects.begin(b_ob); b_ob != b_sce.objects.end(); ++b_ob) {
+ bool cancel = false;
+
+ for(; b_sce && !cancel; b_sce = b_sce.background_set()) {
+ for(b_sce.objects.begin(b_ob); b_ob != b_sce.objects.end() && !cancel; ++b_ob) {
bool hide = (render_layer.use_viewport_visibility)? b_ob->hide(): b_ob->hide_render();
- uint ob_layer = get_layer(b_ob->layers(), b_ob->layers_local_view(), object_is_light(*b_ob));
+ uint ob_layer = get_layer(b_ob->layers(), b_ob->layers_local_view(), render_layer.use_localview, object_is_light(*b_ob));
hide = hide || !(ob_layer & scene_layer);
if(!hide) {
+ progress.set_sync_status("Synchronizing object", (*b_ob).name());
int num_particles = object_count_particles(*b_ob);
@@ -327,7 +339,7 @@ void BlenderSync::sync_objects(BL::SpaceView3D b_v3d, int motion)
bool dup_hide = (b_v3d)? b_dup_ob.hide(): b_dup_ob.hide_render();
if(!(b_dup->hide() || dup_hide)) {
- sync_object(*b_ob, b_index, b_dup_ob, tfm, ob_layer, motion, b_dup->particle_index() + particle_offset);
+ sync_object(*b_ob, b_index, *b_dup, tfm, ob_layer, motion, b_dup->particle_index() + particle_offset);
}
++b_index;
@@ -345,15 +357,19 @@ void BlenderSync::sync_objects(BL::SpaceView3D b_v3d, int motion)
if(!hide) {
/* object itself */
Transform tfm = get_transform(b_ob->matrix_world());
- sync_object(*b_ob, 0, *b_ob, tfm, ob_layer, motion, 0);
+ sync_object(*b_ob, 0, PointerRNA_NULL, tfm, ob_layer, motion, 0);
}
particle_offset += num_particles;
}
+
+ cancel = progress.get_cancel();
}
}
- if(!motion) {
+ progress.set_sync_status("");
+
+ if(!cancel && !motion) {
sync_background_light();
/* handle removed data and modified pointers */
diff --git a/intern/cycles/blender/blender_particles.cpp b/intern/cycles/blender/blender_particles.cpp
index f591aaa6d83..f309960fc55 100644
--- a/intern/cycles/blender/blender_particles.cpp
+++ b/intern/cycles/blender/blender_particles.cpp
@@ -16,9 +16,9 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-#include "object.h"
-
#include "mesh.h"
+#include "particles.h"
+
#include "blender_sync.h"
#include "blender_util.h"
@@ -31,7 +31,7 @@ CCL_NAMESPACE_BEGIN
/* Particles Sync */
-bool BlenderSync::object_use_particles(BL::Object b_ob)
+bool BlenderSync::psys_need_update(BL::ParticleSystem b_psys)
{
/* Particle data is only needed for
* a) Billboard render mode if object's own material uses particle info
@@ -39,11 +39,9 @@ bool BlenderSync::object_use_particles(BL::Object b_ob)
*
* Note: Meshes have to be synced at this point!
*/
- bool use_particles = false;
+ bool need_update = false;
- BL::Object::particle_systems_iterator b_psys;
- for (b_ob.particle_systems.begin(b_psys); b_psys != b_ob.particle_systems.end(); ++b_psys) {
- switch (b_psys->settings().render_type()) {
+ switch (b_psys.settings().render_type()) {
/* XXX not implemented yet!
* billboards/strands would become part of the mesh data (?),
* so the mesh attributes would store whether particle info is required.
@@ -54,33 +52,33 @@ bool BlenderSync::object_use_particles(BL::Object b_ob)
BL::ID key = (BKE_object_is_modified(b_ob))? b_ob: b_ob.data();
Mesh *mesh = mesh_map.find(key);
if (mesh) {
- use_particles |= mesh->need_attribute(scene, ATTR_STD_PARTICLE);
+ need_update |= mesh->need_attribute(scene, ATTR_STD_PARTICLE) && mesh->need_update;
}
break;
}
#endif
case BL::ParticleSettings::render_type_OBJECT: {
- BL::Object b_dupli_ob = b_psys->settings().dupli_object();
+ BL::Object b_dupli_ob = b_psys.settings().dupli_object();
if (b_dupli_ob) {
BL::ID key = (BKE_object_is_modified(b_dupli_ob))? b_dupli_ob: b_dupli_ob.data();
Mesh *mesh = mesh_map.find(key);
if (mesh) {
- use_particles |= mesh->need_attribute(scene, ATTR_STD_PARTICLE);
+ need_update |= mesh->need_attribute(scene, ATTR_STD_PARTICLE) && mesh->need_update;
}
}
break;
}
case BL::ParticleSettings::render_type_GROUP: {
- BL::Group b_dupli_group = b_psys->settings().dupli_group();
+ BL::Group b_dupli_group = b_psys.settings().dupli_group();
if (b_dupli_group) {
BL::Group::objects_iterator b_gob;
for (b_dupli_group.objects.begin(b_gob); b_gob != b_dupli_group.objects.end(); ++b_gob) {
BL::ID key = (BKE_object_is_modified(*b_gob))? *b_gob: b_gob->data();
Mesh *mesh = mesh_map.find(key);
if (mesh) {
- use_particles |= mesh->need_attribute(scene, ATTR_STD_PARTICLE);
+ need_update |= mesh->need_attribute(scene, ATTR_STD_PARTICLE) && mesh->need_update;
}
}
}
@@ -90,10 +88,9 @@ bool BlenderSync::object_use_particles(BL::Object b_ob)
default:
/* avoid compiler warning */
break;
- }
}
- return use_particles;
+ return need_update;
}
static bool use_particle_system(BL::ParticleSystem b_psys)
@@ -114,7 +111,19 @@ static bool use_particle_system(BL::ParticleSystem b_psys)
static bool use_particle(BL::Particle b_pa)
{
- return b_pa.is_exist() && b_pa.is_visible() && b_pa.alive_state()==BL::Particle::alive_state_ALIVE;
+ return b_pa.is_exist() && b_pa.is_visible() &&
+ (b_pa.alive_state()==BL::Particle::alive_state_ALIVE || b_pa.alive_state()==BL::Particle::alive_state_DYING);
+}
+
+static int psys_count_particles(BL::ParticleSystem b_psys)
+{
+ int tot = 0;
+ BL::ParticleSystem::particles_iterator b_pa;
+ for(b_psys.particles.begin(b_pa); b_pa != b_psys.particles.end(); ++b_pa) {
+ if(use_particle(*b_pa))
+ ++tot;
+ }
+ return tot;
}
int BlenderSync::object_count_particles(BL::Object b_ob)
@@ -122,41 +131,88 @@ int BlenderSync::object_count_particles(BL::Object b_ob)
int tot = 0;
BL::Object::particle_systems_iterator b_psys;
for(b_ob.particle_systems.begin(b_psys); b_psys != b_ob.particle_systems.end(); ++b_psys) {
- if (use_particle_system(*b_psys)) {
- BL::ParticleSystem::particles_iterator b_pa;
- for(b_psys->particles.begin(b_pa); b_pa != b_psys->particles.end(); ++b_pa) {
- if(use_particle(*b_pa))
- ++tot;
- }
- }
+ if (use_particle_system(*b_psys))
+ tot += psys_count_particles(*b_psys);
}
return tot;
}
-void BlenderSync::sync_particles(Object *ob, BL::Object b_ob)
+void BlenderSync::sync_particles(BL::Object b_ob, BL::ParticleSystem b_psys)
{
- int tot = object_count_particles(b_ob);
+ /* depending on settings the psys may not even be rendered */
+ if (!use_particle_system(b_psys))
+ return;
- ob->particles.clear();
- ob->particles.reserve(tot);
+ /* key to lookup particle system */
+ ParticleSystemKey key(b_ob, b_psys);
+ ParticleSystem *psys;
- int index;
- BL::Object::particle_systems_iterator b_psys;
- for(b_ob.particle_systems.begin(b_psys); b_psys != b_ob.particle_systems.end(); ++b_psys) {
- if (use_particle_system(*b_psys)) {
- BL::ParticleSystem::particles_iterator b_pa;
- for(b_psys->particles.begin(b_pa), index = 0; b_pa != b_psys->particles.end(); ++b_pa, ++index) {
- if(use_particle(*b_pa)) {
- Particle pa;
-
- pa.age = b_scene.frame_current() - b_pa->birth_time();
- pa.lifetime = b_pa->lifetime();
-
- ob->particles.push_back(pa);
- }
+ /* test if we need to sync */
+ bool object_updated = false;
+
+ if(particle_system_map.sync(&psys, b_ob, b_ob, key))
+ object_updated = true;
+
+ bool need_update = psys_need_update(b_psys);
+
+ if (object_updated || need_update) {
+ int tot = psys_count_particles(b_psys);
+ psys->particles.clear();
+ psys->particles.reserve(tot);
+
+ int index = 0;
+ BL::ParticleSystem::particles_iterator b_pa;
+ for(b_psys.particles.begin(b_pa); b_pa != b_psys.particles.end(); ++b_pa) {
+ if(use_particle(*b_pa)) {
+ Particle pa;
+
+ pa.index = index;
+ pa.age = b_scene.frame_current() - b_pa->birth_time();
+ pa.lifetime = b_pa->lifetime();
+ pa.location = get_float3(b_pa->location());
+ pa.rotation = get_float4(b_pa->rotation());
+ pa.size = b_pa->size();
+ pa.velocity = get_float3(b_pa->velocity());
+ pa.angular_velocity = get_float3(b_pa->angular_velocity());
+
+ psys->particles.push_back(pa);
}
+
+ ++index;
}
+
+ psys->tag_update(scene);
}
}
+void BlenderSync::sync_particle_systems()
+{
+ /* layer data */
+ uint scene_layer = render_layer.scene_layer;
+
+ particle_system_map.pre_sync();
+
+ /* object loop */
+ BL::Scene::objects_iterator b_ob;
+ BL::Scene b_sce = b_scene;
+
+ for(; b_sce; b_sce = b_sce.background_set()) {
+ for(b_sce.objects.begin(b_ob); b_ob != b_sce.objects.end(); ++b_ob) {
+ bool hide = (render_layer.use_viewport_visibility)? b_ob->hide(): b_ob->hide_render();
+ uint ob_layer = get_layer(b_ob->layers(), b_ob->layers_local_view(), render_layer.use_localview, object_is_light(*b_ob));
+ hide = hide || !(ob_layer & scene_layer);
+
+ if(!hide) {
+ BL::Object::particle_systems_iterator b_psys;
+ for(b_ob->particle_systems.begin(b_psys); b_psys != b_ob->particle_systems.end(); ++b_psys)
+ sync_particles(*b_ob, *b_psys);
+ }
+ }
+ }
+
+ /* handle removed data and modified pointers */
+ if(particle_system_map.post_sync())
+ scene->particle_system_manager->tag_update(scene);
+}
+
CCL_NAMESPACE_END
diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp
index 4560c2f8543..d9220b76835 100644
--- a/intern/cycles/blender/blender_python.cpp
+++ b/intern/cycles/blender/blender_python.cpp
@@ -80,6 +80,8 @@ static PyObject *create_func(PyObject *self, PyObject *args)
/* create session */
BlenderSession *session;
+ Py_BEGIN_ALLOW_THREADS
+
if(rv3d) {
/* interactive session */
int width = region.width();
@@ -91,7 +93,9 @@ static PyObject *create_func(PyObject *self, PyObject *args)
/* offline session */
session = new BlenderSession(engine, userpref, data, scene);
}
-
+
+ Py_END_ALLOW_THREADS
+
return PyLong_FromVoidPtr(session);
}
@@ -136,9 +140,13 @@ static PyObject *draw_func(PyObject *self, PyObject *args)
static PyObject *sync_func(PyObject *self, PyObject *value)
{
+ Py_BEGIN_ALLOW_THREADS
+
BlenderSession *session = (BlenderSession*)PyLong_AsVoidPtr(value);
session->synchronize();
+ Py_END_ALLOW_THREADS
+
Py_RETURN_NONE;
}
@@ -175,7 +183,7 @@ static struct PyModuleDef module = {
NULL, NULL, NULL, NULL
};
-CCLDeviceInfo *compute_device_list(DeviceType type)
+static CCLDeviceInfo *compute_device_list(DeviceType type)
{
/* device list stored static */
static ccl::vector<CCLDeviceInfo> device_list;
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index d09e43bd76d..7b80c520e72 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -42,14 +42,13 @@ CCL_NAMESPACE_BEGIN
BlenderSession::BlenderSession(BL::RenderEngine b_engine_, BL::UserPreferences b_userpref_,
BL::BlendData b_data_, BL::Scene b_scene_)
: b_engine(b_engine_), b_userpref(b_userpref_), b_data(b_data_), b_scene(b_scene_),
- b_v3d(PointerRNA_NULL), b_rv3d(PointerRNA_NULL),
- b_rr(PointerRNA_NULL), b_rlay(PointerRNA_NULL)
+ b_v3d(PointerRNA_NULL), b_rv3d(PointerRNA_NULL)
{
/* offline render */
- BL::RenderSettings r = b_scene.render();
- width = (int)(r.resolution_x()*r.resolution_percentage()/100);
- height = (int)(r.resolution_y()*r.resolution_percentage()/100);
+ width = b_engine.resolution_x();
+ height = b_engine.resolution_y();
+
background = true;
last_redraw_time = 0.0f;
@@ -60,7 +59,7 @@ BlenderSession::BlenderSession(BL::RenderEngine b_engine_, BL::UserPreferences b
BL::BlendData b_data_, BL::Scene b_scene_,
BL::SpaceView3D b_v3d_, BL::RegionView3D b_rv3d_, int width_, int height_)
: b_engine(b_engine_), b_userpref(b_userpref_), b_data(b_data_), b_scene(b_scene_),
- b_v3d(b_v3d_), b_rv3d(b_rv3d_), b_rr(PointerRNA_NULL), b_rlay(PointerRNA_NULL)
+ b_v3d(b_v3d_), b_rv3d(b_rv3d_)
{
/* 3d view render */
width = width_;
@@ -80,17 +79,24 @@ BlenderSession::~BlenderSession()
void BlenderSession::create_session()
{
SceneParams scene_params = BlenderSync::get_scene_params(b_scene, background);
- SessionParams session_params = BlenderSync::get_session_params(b_userpref, b_scene, background);
+ SessionParams session_params = BlenderSync::get_session_params(b_engine, b_userpref, b_scene, background);
/* reset status/progress */
last_status = "";
last_progress = -1.0f;
/* create scene */
- scene = new Scene(scene_params);
+ scene = new Scene(scene_params, session_params.device);
+
+ /* create session */
+ session = new Session(session_params);
+ session->scene = scene;
+ session->progress.set_update_callback(function_bind(&BlenderSession::tag_redraw, this));
+ session->progress.set_cancel_callback(function_bind(&BlenderSession::test_cancel, this));
+ session->set_pause(BlenderSync::get_session_pause(b_scene, background));
/* create sync */
- sync = new BlenderSync(b_data, b_scene, scene, !background);
+ sync = new BlenderSync(b_engine, b_data, b_scene, scene, !background, session->progress);
sync->sync_data(b_v3d, b_engine.camera_override());
if(b_rv3d)
@@ -98,13 +104,6 @@ void BlenderSession::create_session()
else
sync->sync_camera(b_engine.camera_override(), width, height);
- /* create session */
- session = new Session(session_params);
- session->scene = scene;
- session->progress.set_update_callback(function_bind(&BlenderSession::tag_redraw, this));
- session->progress.set_cancel_callback(function_bind(&BlenderSession::test_cancel, this));
- session->set_pause(BlenderSync::get_session_pause(b_scene, background));
-
/* set buffer parameters */
BufferParams buffer_params = BlenderSync::get_buffer_params(b_scene, scene->camera, width, height);
session->reset(buffer_params, session_params.samples);
@@ -177,35 +176,100 @@ static PassType get_pass_type(BL::RenderPass b_pass)
return PASS_NONE;
}
+static BL::RenderResult begin_render_result(BL::RenderEngine b_engine, int x, int y, int w, int h, const char *layername)
+{
+ RenderResult *rrp = RE_engine_begin_result((RenderEngine*)b_engine.ptr.data, x, y, w, h, layername);
+ PointerRNA rrptr;
+ RNA_pointer_create(NULL, &RNA_RenderResult, rrp, &rrptr);
+ return BL::RenderResult(rrptr);
+}
+
+static void end_render_result(BL::RenderEngine b_engine, BL::RenderResult b_rr, bool cancel = false)
+{
+ RE_engine_end_result((RenderEngine*)b_engine.ptr.data, (RenderResult*)b_rr.ptr.data, (int)cancel);
+}
+
+void BlenderSession::do_write_update_render_tile(RenderTile& rtile, bool do_update_only)
+{
+ BufferParams& params = rtile.buffers->params;
+ int x = params.full_x - session->tile_manager.params.full_x;
+ int y = params.full_y - session->tile_manager.params.full_y;
+ int w = params.width;
+ int h = params.height;
+
+ /* get render result */
+ BL::RenderResult b_rr = begin_render_result(b_engine, x, y, w, h, b_rlay_name.c_str());
+
+ /* can happen if the intersected rectangle gives 0 width or height */
+ if (b_rr.ptr.data == NULL) {
+ return;
+ }
+
+ BL::RenderResult::layers_iterator b_single_rlay;
+ b_rr.layers.begin(b_single_rlay);
+ BL::RenderLayer b_rlay = *b_single_rlay;
+
+ if (do_update_only) {
+ /* update only needed */
+ update_render_result(b_rr, b_rlay, rtile);
+ end_render_result(b_engine, b_rr, true);
+ }
+ else {
+ /* write result */
+ write_render_result(b_rr, b_rlay, rtile);
+ end_render_result(b_engine, b_rr);
+ }
+}
+
+void BlenderSession::write_render_tile(RenderTile& rtile)
+{
+ do_write_update_render_tile(rtile, false);
+}
+
+void BlenderSession::update_render_tile(RenderTile& rtile)
+{
+ do_write_update_render_tile(rtile, true);
+}
+
void BlenderSession::render()
{
+ /* set callback to write out render results */
+ session->write_render_tile_cb = function_bind(&BlenderSession::write_render_tile, this, _1);
+ session->update_render_tile_cb = function_bind(&BlenderSession::update_render_tile, this, _1);
+
/* get buffer parameters */
- SessionParams session_params = BlenderSync::get_session_params(b_userpref, b_scene, background);
+ SessionParams session_params = BlenderSync::get_session_params(b_engine, b_userpref, b_scene, background);
BufferParams buffer_params = BlenderSync::get_buffer_params(b_scene, scene->camera, width, height);
- int w = buffer_params.width, h = buffer_params.height;
-
- /* create render result */
- RenderResult *rrp = RE_engine_begin_result((RenderEngine*)b_engine.ptr.data, 0, 0, w, h);
- PointerRNA rrptr;
- RNA_pointer_create(NULL, &RNA_RenderResult, rrp, &rrptr);
- b_rr = BL::RenderResult(rrptr);
+ /* render each layer */
BL::RenderSettings r = b_scene.render();
- BL::RenderResult::layers_iterator b_iter;
- BL::RenderLayers b_rr_layers(r.ptr);
+ BL::RenderSettings::layers_iterator b_iter;
- /* render each layer */
- for(b_rr.layers.begin(b_iter); b_iter != b_rr.layers.end(); ++b_iter) {
- /* set layer */
- b_rlay = *b_iter;
+ for(r.layers.begin(b_iter); b_iter != r.layers.end(); ++b_iter) {
+ b_rlay_name = b_iter->name();
+
+ /* temporary render result to find needed passes */
+ BL::RenderResult b_rr = begin_render_result(b_engine, 0, 0, 1, 1, b_rlay_name.c_str());
+ BL::RenderResult::layers_iterator b_single_rlay;
+ b_rr.layers.begin(b_single_rlay);
+
+ /* layer will be missing if it was disabled in the UI */
+ if(b_single_rlay == b_rr.layers.end()) {
+ end_render_result(b_engine, b_rr, true);
+ continue;
+ }
+
+ BL::RenderLayer b_rlay = *b_single_rlay;
/* add passes */
vector<Pass> passes;
Pass::add(PASS_COMBINED, passes);
if(session_params.device.advanced_shading) {
+
+ /* loop over passes */
BL::RenderLayer::passes_iterator b_pass_iter;
-
+
for(b_rlay.passes.begin(b_pass_iter); b_pass_iter != b_rlay.passes.end(); ++b_pass_iter) {
BL::RenderPass b_pass(*b_pass_iter);
PassType pass_type = get_pass_type(b_pass);
@@ -217,13 +281,16 @@ void BlenderSession::render()
}
}
+ /* free result without merging */
+ end_render_result(b_engine, b_rr, true);
+
buffer_params.passes = passes;
scene->film->tag_passes_update(scene, passes);
scene->film->tag_update(scene);
scene->integrator->tag_update(scene);
/* update scene */
- sync->sync_data(b_v3d, b_engine.camera_override(), b_iter->name().c_str());
+ sync->sync_data(b_v3d, b_engine.camera_override(), b_rlay_name.c_str());
/* update session */
int samples = sync->get_layer_samples();
@@ -235,19 +302,16 @@ void BlenderSession::render()
if(session->progress.get_cancel())
break;
-
- /* write result */
- write_render_result();
}
- /* delete render result */
- RE_engine_end_result((RenderEngine*)b_engine.ptr.data, (RenderResult*)b_rr.ptr.data);
+ /* clear callback */
+ session->write_render_tile_cb = NULL;
+ session->update_render_tile_cb = NULL;
}
-void BlenderSession::write_render_result()
+void BlenderSession::do_write_update_render_result(BL::RenderResult b_rr, BL::RenderLayer b_rlay, RenderTile& rtile, bool do_update_only)
{
- /* get state */
- RenderBuffers *buffers = session->buffers;
+ RenderBuffers *buffers = rtile.buffers;
/* copy data from device */
if(!buffers->copy_from_device())
@@ -255,41 +319,49 @@ void BlenderSession::write_render_result()
BufferParams& params = buffers->params;
float exposure = scene->film->exposure;
- double total_time, sample_time;
- int sample;
-
- session->progress.get_sample(sample, total_time, sample_time);
vector<float> pixels(params.width*params.height*4);
- /* copy each pass */
- BL::RenderLayer::passes_iterator b_iter;
-
- for(b_rlay.passes.begin(b_iter); b_iter != b_rlay.passes.end(); ++b_iter) {
- BL::RenderPass b_pass(*b_iter);
+ if (!do_update_only) {
+ /* copy each pass */
+ BL::RenderLayer::passes_iterator b_iter;
+
+ for(b_rlay.passes.begin(b_iter); b_iter != b_rlay.passes.end(); ++b_iter) {
+ BL::RenderPass b_pass(*b_iter);
- /* find matching pass type */
- PassType pass_type = get_pass_type(b_pass);
- int components = b_pass.channels();
+ /* find matching pass type */
+ PassType pass_type = get_pass_type(b_pass);
+ int components = b_pass.channels();
- /* copy pixels */
- if(buffers->get_pass(pass_type, exposure, sample, components, &pixels[0]))
- rna_RenderPass_rect_set(&b_pass.ptr, &pixels[0]);
+ /* copy pixels */
+ if(buffers->get_pass_rect(pass_type, exposure, rtile.sample, components, &pixels[0]))
+ rna_RenderPass_rect_set(&b_pass.ptr, &pixels[0]);
+ }
}
/* copy combined pass */
- if(buffers->get_pass(PASS_COMBINED, exposure, sample, 4, &pixels[0]))
+ if(buffers->get_pass_rect(PASS_COMBINED, exposure, rtile.sample, 4, &pixels[0]))
rna_RenderLayer_rect_set(&b_rlay.ptr, &pixels[0]);
/* tag result as updated */
RE_engine_update_result((RenderEngine*)b_engine.ptr.data, (RenderResult*)b_rr.ptr.data);
}
+void BlenderSession::write_render_result(BL::RenderResult b_rr, BL::RenderLayer b_rlay, RenderTile& rtile)
+{
+ do_write_update_render_result(b_rr, b_rlay, rtile, false);
+}
+
+void BlenderSession::update_render_result(BL::RenderResult b_rr, BL::RenderLayer b_rlay, RenderTile& rtile)
+{
+ do_write_update_render_result(b_rr, b_rlay, rtile, true);
+}
+
void BlenderSession::synchronize()
{
/* on session/scene parameter changes, we recreate session entirely */
SceneParams scene_params = BlenderSync::get_scene_params(b_scene, background);
- SessionParams session_params = BlenderSync::get_session_params(b_userpref, b_scene, background);
+ SessionParams session_params = BlenderSync::get_session_params(b_engine, b_userpref, b_scene, background);
if(session->params.modified(session_params) ||
scene->params.modified(scene_params))
@@ -364,7 +436,7 @@ bool BlenderSession::draw(int w, int h)
/* reset if requested */
if(reset) {
- SessionParams session_params = BlenderSync::get_session_params(b_userpref, b_scene, background);
+ SessionParams session_params = BlenderSync::get_session_params(b_engine, b_userpref, b_scene, background);
BufferParams buffer_params = BlenderSync::get_buffer_params(b_scene, scene->camera, w, h);
session->reset(buffer_params, session_params.samples);
@@ -387,11 +459,16 @@ void BlenderSession::get_status(string& status, string& substatus)
void BlenderSession::get_progress(float& progress, double& total_time)
{
- double sample_time;
- int sample;
+ double tile_time;
+ int tile, sample, samples_per_tile;
+ int tile_total = session->tile_manager.state.num_tiles;
+
+ session->progress.get_tile(tile, total_time, tile_time);
- session->progress.get_sample(sample, total_time, sample_time);
- progress = ((float)sample/(float)session->params.samples);
+ sample = session->progress.get_sample();
+ samples_per_tile = session->tile_manager.state.num_samples;
+
+ progress = ((float)sample/(float)(tile_total * samples_per_tile));
}
void BlenderSession::update_status_progress()
@@ -404,8 +481,13 @@ void BlenderSession::update_status_progress()
get_status(status, substatus);
get_progress(progress, total_time);
+ timestatus = b_scene.name();
+ if(b_rlay_name != "")
+ timestatus += ", " + b_rlay_name;
+ timestatus += " | ";
+
BLI_timestr(total_time, time_str);
- timestatus = "Elapsed: " + string(time_str) + " | ";
+ timestatus += "Elapsed: " + string(time_str) + " | ";
if(substatus.size() > 0)
status += " | " + substatus;
@@ -435,7 +517,6 @@ void BlenderSession::tag_redraw()
/* offline render, redraw if timeout passed */
if(time_dt() - last_redraw_time > 1.0) {
- write_render_result();
engine_tag_redraw((RenderEngine*)b_engine.ptr.data);
last_redraw_time = time_dt();
}
diff --git a/intern/cycles/blender/blender_session.h b/intern/cycles/blender/blender_session.h
index b98e3ffed54..d52e0103bbf 100644
--- a/intern/cycles/blender/blender_session.h
+++ b/intern/cycles/blender/blender_session.h
@@ -29,6 +29,8 @@ CCL_NAMESPACE_BEGIN
class Scene;
class Session;
+class RenderBuffers;
+class RenderTile;
class BlenderSession {
public:
@@ -46,7 +48,14 @@ public:
/* offline render */
void render();
- void write_render_result();
+
+ void write_render_result(BL::RenderResult b_rr, BL::RenderLayer b_rlay, RenderTile& rtile);
+ void write_render_tile(RenderTile& rtile);
+
+ /* update functions are used to update display buffer only after sample was rendered
+ * only needed for better visual feedback */
+ void update_render_result(BL::RenderResult b_rr, BL::RenderLayer b_rlay, RenderTile& rtile);
+ void update_render_tile(RenderTile& rtile);
/* interactive updates */
void synchronize();
@@ -72,13 +81,16 @@ public:
BL::Scene b_scene;
BL::SpaceView3D b_v3d;
BL::RegionView3D b_rv3d;
- BL::RenderResult b_rr;
- BL::RenderLayer b_rlay;
+ string b_rlay_name;
string last_status;
float last_progress;
int width, height;
+
+protected:
+ void do_write_update_render_result(BL::RenderResult b_rr, BL::RenderLayer b_rlay, RenderTile& rtile, bool do_update_only);
+ void do_write_update_render_tile(RenderTile& rtile, bool do_update_only);
};
CCL_NAMESPACE_END
diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp
index 2c15a60dab6..b6d5cc623bb 100644
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@ -221,6 +221,7 @@ static ShaderNode *add_node(BL::BlendData b_data, BL::Scene b_scene, ShaderGraph
BL::ShaderNodeMixRGB b_mix_node(b_node);
MixNode *mix = new MixNode();
mix->type = MixNode::type_enum[b_mix_node.blend_type()];
+ mix->use_clamp = b_mix_node.use_clamp();
node = mix;
break;
}
@@ -244,6 +245,7 @@ static ShaderNode *add_node(BL::BlendData b_data, BL::Scene b_scene, ShaderGraph
BL::ShaderNodeMath b_math_node(b_node);
MathNode *math = new MathNode();
math->type = MathNode::type_enum[b_math_node.operation()];
+ math->use_clamp = b_math_node.use_clamp();
node = math;
break;
}
@@ -401,9 +403,11 @@ static ShaderNode *add_node(BL::BlendData b_data, BL::Scene b_scene, ShaderGraph
BL::Image b_image(b_image_node.image());
ImageTextureNode *image = new ImageTextureNode();
/* todo: handle generated/builtin images */
- if(b_image)
+ if(b_image && b_image.source() != BL::Image::source_MOVIE)
image->filename = image_user_file_path(b_image_node.image_user(), b_image, b_scene.frame_current());
image->color_space = ImageTextureNode::color_space_enum[(int)b_image_node.color_space()];
+ image->projection = ImageTextureNode::projection_enum[(int)b_image_node.projection()];
+ image->projection_blend = b_image_node.projection_blend();
get_tex_mapping(&image->tex_mapping, b_image_node.texture_mapping());
node = image;
break;
@@ -412,7 +416,7 @@ static ShaderNode *add_node(BL::BlendData b_data, BL::Scene b_scene, ShaderGraph
BL::ShaderNodeTexEnvironment b_env_node(b_node);
BL::Image b_image(b_env_node.image());
EnvironmentTextureNode *env = new EnvironmentTextureNode();
- if(b_image)
+ if(b_image && b_image.source() != BL::Image::source_MOVIE)
env->filename = image_user_file_path(b_env_node.image_user(), b_image, b_scene.frame_current());
env->color_space = EnvironmentTextureNode::color_space_enum[(int)b_env_node.color_space()];
env->projection = EnvironmentTextureNode::projection_enum[(int)b_env_node.projection()];
@@ -459,6 +463,17 @@ static ShaderNode *add_node(BL::BlendData b_data, BL::Scene b_scene, ShaderGraph
node = checker;
break;
}
+ case BL::ShaderNode::type_TEX_BRICK: {
+ BL::ShaderNodeTexBrick b_brick_node(b_node);
+ BrickTextureNode *brick = new BrickTextureNode();
+ brick->offset = b_brick_node.offset();
+ brick->offset_frequency = b_brick_node.offset_frequency();
+ brick->squash = b_brick_node.squash();
+ brick->squash_frequency = b_brick_node.squash_frequency();
+ get_tex_mapping(&brick->tex_mapping, b_brick_node.texture_mapping());
+ node = brick;
+ break;
+ }
case BL::ShaderNode::type_TEX_NOISE: {
BL::ShaderNodeTexNoise b_noise_node(b_node);
NoiseTextureNode *noise = new NoiseTextureNode();
@@ -475,7 +490,10 @@ static ShaderNode *add_node(BL::BlendData b_data, BL::Scene b_scene, ShaderGraph
break;
}
case BL::ShaderNode::type_TEX_COORD: {
- node = new TextureCoordinateNode();
+ BL::ShaderNodeTexCoord b_tex_coord_node(b_node);
+ TextureCoordinateNode *tex_coord = new TextureCoordinateNode();
+ tex_coord->from_dupli = b_tex_coord_node.from_dupli();
+ node = tex_coord;
break;
}
case BL::ShaderNode::type_TEX_SKY: {
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index c9d2d68da0a..b4990eb815a 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -40,15 +40,18 @@ CCL_NAMESPACE_BEGIN
/* Constructor */
-BlenderSync::BlenderSync(BL::BlendData b_data_, BL::Scene b_scene_, Scene *scene_, bool preview_)
-: b_data(b_data_), b_scene(b_scene_),
+BlenderSync::BlenderSync(BL::RenderEngine b_engine_, BL::BlendData b_data_, BL::Scene b_scene_, Scene *scene_, bool preview_, Progress &progress_)
+: b_engine(b_engine_),
+ b_data(b_data_), b_scene(b_scene_),
shader_map(&scene_->shaders),
object_map(&scene_->objects),
mesh_map(&scene_->meshes),
light_map(&scene_->lights),
+ particle_system_map(&scene_->particle_systems),
world_map(NULL),
world_recalc(false),
- experimental(false)
+ experimental(false),
+ progress(progress_)
{
scene = scene_;
preview = preview_;
@@ -95,6 +98,12 @@ bool BlenderSync::sync_recalc()
if(b_ob->is_updated_data() || b_ob->data().is_updated())
light_map.set_recalc(*b_ob);
}
+
+ if(b_ob->is_updated_data()) {
+ BL::Object::particle_systems_iterator b_psys;
+ for (b_ob->particle_systems.begin(b_psys); b_psys != b_ob->particle_systems.end(); ++b_psys)
+ particle_system_map.set_recalc(*b_ob);
+ }
}
BL::BlendData::meshes_iterator b_mesh;
@@ -118,6 +127,7 @@ bool BlenderSync::sync_recalc()
object_map.has_recalc() ||
light_map.has_recalc() ||
mesh_map.has_recalc() ||
+ particle_system_map.has_recalc() ||
BlendDataObjects_is_updated_get(&b_data.ptr) ||
world_recalc;
@@ -131,6 +141,7 @@ void BlenderSync::sync_data(BL::SpaceView3D b_v3d, BL::Object b_override, const
sync_film();
sync_shaders();
sync_objects(b_v3d);
+ sync_particle_systems();
sync_motion(b_v3d, b_override);
}
@@ -219,7 +230,8 @@ void BlenderSync::sync_render_layers(BL::SpaceView3D b_v3d, const char *layer)
layer = layername.c_str();
}
else {
- render_layer.scene_layer = get_layer(b_v3d.layers(), b_v3d.layers_local_view());
+ render_layer.use_localview = (b_v3d.local_view() ? true : false);
+ render_layer.scene_layer = get_layer(b_v3d.layers(), b_v3d.layers_local_view(), render_layer.use_localview);
render_layer.layer = render_layer.scene_layer;
render_layer.holdout_layer = 0;
render_layer.material_override = PointerRNA_NULL;
@@ -245,6 +257,7 @@ void BlenderSync::sync_render_layers(BL::SpaceView3D b_v3d, const char *layer)
render_layer.material_override = b_rlay->material_override();
render_layer.use_background = b_rlay->use_sky();
render_layer.use_viewport_visibility = false;
+ render_layer.use_localview = false;
render_layer.samples = b_rlay->samples();
}
@@ -284,7 +297,7 @@ bool BlenderSync::get_session_pause(BL::Scene b_scene, bool background)
return (background)? false: get_boolean(cscene, "preview_pause");
}
-SessionParams BlenderSync::get_session_params(BL::UserPreferences b_userpref, BL::Scene b_scene, bool background)
+SessionParams BlenderSync::get_session_params(BL::RenderEngine b_engine, BL::UserPreferences b_userpref, BL::Scene b_scene, bool background)
{
SessionParams params;
PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
@@ -338,25 +351,39 @@ SessionParams BlenderSync::get_session_params(BL::UserPreferences b_userpref, BL
}
}
+ /* tiles */
+ if(params.device.type != DEVICE_CPU && !background) {
+ /* currently GPU could be much slower than CPU when using tiles,
+ * still need to be investigated, but meanwhile make it possible
+ * to work in viewport smoothly
+ */
+ int debug_tile_size = get_int(cscene, "debug_tile_size");
+
+ params.tile_size = make_int2(debug_tile_size, debug_tile_size);
+ }
+ else {
+ int tile_x = b_engine.tile_x();
+ int tile_y = b_engine.tile_y();
+
+ params.tile_size = make_int2(tile_x, tile_y);
+ }
+
+ params.start_resolution = get_int(cscene, "preview_start_resolution");
+
/* other parameters */
params.threads = b_scene.render().threads();
- params.tile_size = get_int(cscene, "debug_tile_size");
- params.min_size = get_int(cscene, "debug_min_size");
+
params.cancel_timeout = get_float(cscene, "debug_cancel_timeout");
params.reset_timeout = get_float(cscene, "debug_reset_timeout");
params.text_timeout = get_float(cscene, "debug_text_timeout");
if(background) {
- params.progressive = true;
- params.min_size = INT_MAX;
+ params.progressive = false;
+ params.start_resolution = INT_MAX;
}
else
params.progressive = true;
- /* todo: multi device only works with single tiles now */
- if(params.device.type == DEVICE_MULTI)
- params.tile_size = INT_MAX;
-
return params;
}
diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h
index 8c31c4b86ba..ce563087b4a 100644
--- a/intern/cycles/blender/blender_sync.h
+++ b/intern/cycles/blender/blender_sync.h
@@ -49,7 +49,7 @@ class ShaderNode;
class BlenderSync {
public:
- BlenderSync(BL::BlendData b_data, BL::Scene b_scene, Scene *scene_, bool preview_);
+ BlenderSync(BL::RenderEngine b_engine_, BL::BlendData b_data, BL::Scene b_scene, Scene *scene_, bool preview_, Progress &progress_);
~BlenderSync();
/* sync */
@@ -61,7 +61,7 @@ public:
/* get parameters */
static SceneParams get_scene_params(BL::Scene b_scene, bool background);
- static SessionParams get_session_params(BL::UserPreferences b_userpref, BL::Scene b_scene, bool background);
+ static SessionParams get_session_params(BL::RenderEngine b_engine, BL::UserPreferences b_userpref, BL::Scene b_scene, bool background);
static bool get_session_pause(BL::Scene b_scene, bool background);
static BufferParams get_buffer_params(BL::Scene b_scene, Camera *cam, int width, int height);
@@ -77,25 +77,27 @@ private:
void sync_world();
void sync_render_layers(BL::SpaceView3D b_v3d, const char *layer);
void sync_shaders();
+ void sync_particle_systems();
void sync_nodes(Shader *shader, BL::ShaderNodeTree b_ntree);
Mesh *sync_mesh(BL::Object b_ob, bool object_updated);
- void sync_object(BL::Object b_parent, int b_index, BL::Object b_object, Transform& tfm, uint layer_flag, int motion, int particle_id);
+ void sync_object(BL::Object b_parent, int b_index, BL::DupliObject b_dupli_object, Transform& tfm, uint layer_flag, int motion, int particle_id);
void sync_light(BL::Object b_parent, int b_index, BL::Object b_ob, Transform& tfm);
void sync_background_light();
void sync_mesh_motion(BL::Object b_ob, Mesh *mesh, int motion);
void sync_camera_motion(BL::Object b_ob, int motion);
- void sync_particles(Object *ob, BL::Object b_ob);
+ void sync_particles(BL::Object b_ob, BL::ParticleSystem b_psys);
/* util */
void find_shader(BL::ID id, vector<uint>& used_shaders, int default_shader);
bool BKE_object_is_modified(BL::Object b_ob);
bool object_is_mesh(BL::Object b_ob);
bool object_is_light(BL::Object b_ob);
- bool object_use_particles(BL::Object b_ob);
+ bool psys_need_update(BL::ParticleSystem b_psys);
int object_count_particles(BL::Object b_ob);
/* variables */
+ BL::RenderEngine b_engine;
BL::BlendData b_data;
BL::Scene b_scene;
@@ -103,6 +105,7 @@ private:
id_map<ObjectKey, Object> object_map;
id_map<void*, Mesh> mesh_map;
id_map<ObjectKey, Light> light_map;
+ id_map<ParticleSystemKey, ParticleSystem> particle_system_map;
set<Mesh*> mesh_synced;
void *world_map;
bool world_recalc;
@@ -127,8 +130,11 @@ private:
BL::Material material_override;
bool use_background;
bool use_viewport_visibility;
+ bool use_localview;
int samples;
} render_layer;
+
+ Progress &progress;
};
CCL_NAMESPACE_END
diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h
index ebbd4e1221c..da8f30ea169 100644
--- a/intern/cycles/blender/blender_util.h
+++ b/intern/cycles/blender/blender_util.h
@@ -36,13 +36,13 @@ struct RenderResult;
ID *rna_Object_to_mesh(void *_self, void *reports, void *scene, int apply_modifiers, int settings);
void rna_Main_meshes_remove(void *bmain, void *reports, void *mesh);
-void rna_Object_create_duplilist(void *ob, void *reports, void *sce);
-void rna_Object_free_duplilist(void *ob, void *reports);
+void rna_Object_create_duplilist(void *ob, void *reports, void *sce, int settings);
+void rna_Object_free_duplilist(void *ob);
void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values);
void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values);
-struct RenderResult *RE_engine_begin_result(struct RenderEngine *engine, int x, int y, int w, int h);
+struct RenderResult *RE_engine_begin_result(struct RenderEngine *engine, int x, int y, int w, int h, const char *layername);
void RE_engine_update_result(struct RenderEngine *engine, struct RenderResult *result);
-void RE_engine_end_result(struct RenderEngine *engine, struct RenderResult *result);
+void RE_engine_end_result(struct RenderEngine *engine, struct RenderResult *result, int cancel);
int RE_engine_test_break(struct RenderEngine *engine);
void RE_engine_update_stats(struct RenderEngine *engine, const char *stats, const char *info);
void RE_engine_update_progress(struct RenderEngine *engine, float progress);
@@ -55,7 +55,6 @@ void rna_ColorRamp_eval(void *coba, float position, float color[4]);
void rna_Scene_frame_set(void *scene, int frame, float subframe);
void BKE_image_user_frame_calc(void *iuser, int cfra, int fieldnr);
void BKE_image_user_file_path(void *iuser, void *ima, char *path);
-
}
CCL_NAMESPACE_BEGIN
@@ -85,12 +84,12 @@ static inline void object_remove_mesh(BL::BlendData data, BL::Mesh mesh)
static inline void object_create_duplilist(BL::Object self, BL::Scene scene)
{
- rna_Object_create_duplilist(self.ptr.data, NULL, scene.ptr.data);
+ rna_Object_create_duplilist(self.ptr.data, NULL, scene.ptr.data, 2);
}
static inline void object_free_duplilist(BL::Object self)
{
- rna_Object_free_duplilist(self.ptr.data, NULL);
+ rna_Object_free_duplilist(self.ptr.data);
}
static inline bool BKE_object_is_modified(BL::Object self, BL::Scene scene, bool preview)
@@ -150,6 +149,11 @@ static inline float3 get_float3(BL::Array<float, 4> array)
return make_float3(array[0], array[1], array[2]);
}
+static inline float4 get_float4(BL::Array<float, 4> array)
+{
+ return make_float4(array[0], array[1], array[2], array[3]);
+}
+
static inline int4 get_int4(BL::Array<int, 4> array)
{
return make_int4(array[0], array[1], array[2], array[3]);
@@ -166,7 +170,7 @@ static inline uint get_layer(BL::Array<int, 20> array)
return layer;
}
-static inline uint get_layer(BL::Array<int, 20> array, BL::Array<int, 8> local_array, bool is_light = false)
+static inline uint get_layer(BL::Array<int, 20> array, BL::Array<int, 8> local_array, bool use_local, bool is_light = false)
{
uint layer = 0;
@@ -184,7 +188,14 @@ static inline uint get_layer(BL::Array<int, 20> array, BL::Array<int, 8> local_a
if(local_array[i])
layer |= (1 << (20+i));
}
-
+
+ /* we don't have spare bits for localview (normally 20-28) because
+ * PATH_RAY_LAYER_SHIFT uses 20-32. So - check if we have localview and if
+ * so, shift local view bits down to 1-8, since this is done for the view
+ * port only - it should be OK and not conflict with render layers. */
+ if(use_local)
+ layer >>= 20;
+
return layer;
}
@@ -389,6 +400,17 @@ struct ObjectKey {
{ return (parent < k.parent || (parent == k.parent && (index < k.index || (index == k.index && ob < k.ob)))); }
};
+struct ParticleSystemKey {
+ void *ob;
+ void *psys;
+
+ ParticleSystemKey(void *ob_, void *psys_)
+ : ob(ob_), psys(psys_) {}
+
+ bool operator<(const ParticleSystemKey& k) const
+ { return (ob < k.ob && psys < k.psys); }
+};
+
CCL_NAMESPACE_END
#endif /* __BLENDER_UTIL_H__ */
diff --git a/intern/cycles/bvh/CMakeLists.txt b/intern/cycles/bvh/CMakeLists.txt
index 131a7a1f750..ba5c3785eac 100644
--- a/intern/cycles/bvh/CMakeLists.txt
+++ b/intern/cycles/bvh/CMakeLists.txt
@@ -7,6 +7,8 @@ set(INC
../util
../device
)
+set(INC_SYS
+)
set(SRC
bvh.cpp
@@ -28,5 +30,6 @@ set(SRC_HEADERS
)
include_directories(${INC})
+include_directories(SYSTEM ${INC_SYS})
add_library(cycles_bvh ${SRC} ${SRC_HEADERS})
diff --git a/intern/cycles/bvh/bvh.cpp b/intern/cycles/bvh/bvh.cpp
index a383ad317ab..b58a34f9942 100644
--- a/intern/cycles/bvh/bvh.cpp
+++ b/intern/cycles/bvh/bvh.cpp
@@ -378,7 +378,7 @@ void BVH::pack_instances(size_t nodes_size)
int mesh_tri_offset = mesh->tri_offset;
/* fill in node indexes for instances */
- if(bvh->pack.is_leaf[0])
+ if((bvh->pack.is_leaf.size() != 0) && bvh->pack.is_leaf[0])
pack.object_node[object_offset++] = -noffset-1;
else
pack.object_node[object_offset++] = noffset;
@@ -411,7 +411,7 @@ void BVH::pack_instances(size_t nodes_size)
size_t nsize_bbox = (use_qbvh)? nsize-2: nsize-1;
int4 *bvh_nodes = &bvh->pack.nodes[0];
size_t bvh_nodes_size = bvh->pack.nodes.size();
- int *bvh_is_leaf = &bvh->pack.is_leaf[0];
+ int *bvh_is_leaf = (bvh->pack.is_leaf.size() != 0) ? &bvh->pack.is_leaf[0] : NULL;
for(size_t i = 0, j = 0; i < bvh_nodes_size; i+=nsize, j++) {
memcpy(pack_nodes + pack_nodes_offset, bvh_nodes + i, nsize_bbox*sizeof(int4));
@@ -419,7 +419,7 @@ void BVH::pack_instances(size_t nodes_size)
/* modify offsets into arrays */
int4 data = bvh_nodes[i + nsize_bbox];
- if(bvh_is_leaf[j]) {
+ if(bvh_is_leaf && bvh_is_leaf[j]) {
data.x += tri_offset;
data.y += tri_offset;
}
diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake
index 23a919530f9..332d3d74715 100644
--- a/intern/cycles/cmake/external_libs.cmake
+++ b/intern/cycles/cmake/external_libs.cmake
@@ -18,32 +18,6 @@ else()
endif()
###########################################################################
-# OpenShadingLanguage
-
-if(WITH_CYCLES_OSL)
-
- set(CYCLES_OSL "" CACHE PATH "Path to OpenShadingLanguage installation")
-
- message(STATUS "CYCLES_OSL = ${CYCLES_OSL}")
-
- find_library(OSL_LIBRARIES NAMES oslexec oslcomp oslquery PATHS ${CYCLES_OSL}/lib ${CYCLES_OSL}/dist)
- find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include ${CYCLES_OSL}/dist)
- find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin ${CYCLES_OSL}/dist)
-
- if(OSL_INCLUDES AND OSL_LIBRARIES AND OSL_COMPILER)
- set(OSL_FOUND TRUE)
- message(STATUS "OSL includes = ${OSL_INCLUDES}")
- message(STATUS "OSL library = ${OSL_LIBRARIES}")
- message(STATUS "OSL compiler = ${OSL_COMPILER}")
- else()
- message(STATUS "OSL not found")
- endif()
-
- include_directories(${OSL_INCLUDES} ${OSL_INCLUDES}/OSL ${OSL_INCLUDES}/../../../src/liboslexec)
-
-endif()
-
-###########################################################################
# Partio
if(WITH_CYCLES_PARTIO)
diff --git a/intern/cycles/device/CMakeLists.txt b/intern/cycles/device/CMakeLists.txt
index 17072d230bb..1d7c6ef4be3 100644
--- a/intern/cycles/device/CMakeLists.txt
+++ b/intern/cycles/device/CMakeLists.txt
@@ -6,6 +6,8 @@ set(INC
../kernel/osl
../util
../render
+)
+set(INC_SYS
${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_PATH}
)
@@ -17,6 +19,7 @@ set(SRC
device_multi.cpp
device_network.cpp
device_opencl.cpp
+ device_task.cpp
)
set(SRC_HEADERS
@@ -24,10 +27,12 @@ set(SRC_HEADERS
device_memory.h
device_intern.h
device_network.h
+ device_task.h
)
add_definitions(-DGLEW_STATIC)
include_directories(${INC})
+include_directories(SYSTEM ${INC_SYS})
add_library(cycles_device ${SRC} ${SRC_HEADERS})
diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp
index 33040f287d1..9a4d364a9b8 100644
--- a/intern/cycles/device/device.cpp
+++ b/intern/cycles/device/device.cpp
@@ -33,65 +33,6 @@
CCL_NAMESPACE_BEGIN
-/* Device Task */
-
-DeviceTask::DeviceTask(Type type_)
-: type(type_), x(0), y(0), w(0), h(0), rng_state(0), rgba(0), buffer(0),
- sample(0), resolution(0),
- shader_input(0), shader_output(0),
- shader_eval_type(0), shader_x(0), shader_w(0)
-{
-}
-
-void DeviceTask::split_max_size(list<DeviceTask>& tasks, int max_size)
-{
- int num;
-
- if(type == SHADER) {
- num = (shader_w + max_size - 1)/max_size;
- }
- else {
- max_size = max(1, max_size/w);
- num = (h + max_size - 1)/max_size;
- }
-
- split(tasks, num);
-}
-
-void DeviceTask::split(list<DeviceTask>& tasks, int num)
-{
- if(type == SHADER) {
- num = min(shader_w, num);
-
- for(int i = 0; i < num; i++) {
- int tx = shader_x + (shader_w/num)*i;
- int tw = (i == num-1)? shader_w - i*(shader_w/num): shader_w/num;
-
- DeviceTask task = *this;
-
- task.shader_x = tx;
- task.shader_w = tw;
-
- tasks.push_back(task);
- }
- }
- else {
- num = min(h, num);
-
- for(int i = 0; i < num; i++) {
- int ty = y + (h/num)*i;
- int th = (i == num-1)? h - i*(h/num): h/num;
-
- DeviceTask task = *this;
-
- task.y = ty;
- task.h = th;
-
- tasks.push_back(task);
- }
- }
-}
-
/* Device */
void Device::pixels_alloc(device_memory& mem)
diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h
index b17abac2a1b..2ee2e044618 100644
--- a/intern/cycles/device/device.h
+++ b/intern/cycles/device/device.h
@@ -22,10 +22,10 @@
#include <stdlib.h>
#include "device_memory.h"
+#include "device_task.h"
#include "util_list.h"
#include "util_string.h"
-#include "util_task.h"
#include "util_thread.h"
#include "util_types.h"
#include "util_vector.h"
@@ -33,6 +33,7 @@
CCL_NAMESPACE_BEGIN
class Progress;
+class RenderTile;
/* Device Types */
@@ -67,32 +68,6 @@ public:
}
};
-/* Device Task */
-
-class DeviceTask : public Task {
-public:
- typedef enum { PATH_TRACE, TONEMAP, SHADER } Type;
- Type type;
-
- int x, y, w, h;
- device_ptr rng_state;
- device_ptr rgba;
- device_ptr buffer;
- int sample;
- int resolution;
- int offset, stride;
-
- device_ptr shader_input;
- device_ptr shader_output;
- int shader_eval_type;
- int shader_x, shader_w;
-
- DeviceTask(Type type = PATH_TRACE);
-
- void split(list<DeviceTask>& tasks, int num);
- void split_max_size(list<DeviceTask>& tasks, int max_size);
-};
-
/* Device */
class Device {
@@ -150,6 +125,10 @@ public:
void server_run();
#endif
+ /* multi device */
+ virtual void map_tile(Device *sub_device, RenderTile& tile) {}
+ virtual int device_number(Device *sub_device) { return 0; }
+
/* static */
static Device *create(DeviceInfo& info, bool background = true, int threads = 0);
diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp
index 070b20aec49..4c54671b0d0 100644
--- a/intern/cycles/device/device_cpu.cpp
+++ b/intern/cycles/device/device_cpu.cpp
@@ -27,6 +27,8 @@
#include "osl_shader.h"
+#include "buffers.h"
+
#include "util_debug.h"
#include "util_foreach.h"
#include "util_function.h"
@@ -141,28 +143,56 @@ public:
OSLShader::thread_init(kg);
#endif
-#ifdef WITH_OPTIMIZED_KERNEL
- if(system_cpu_support_optimized()) {
- for(int y = task.y; y < task.y + task.h; y++) {
- for(int x = task.x; x < task.x + task.w; x++)
- kernel_cpu_optimized_path_trace(kg, (float*)task.buffer, (unsigned int*)task.rng_state,
- task.sample, x, y, task.offset, task.stride);
+ RenderTile tile;
+
+ while(task.acquire_tile(this, tile)) {
+ float *render_buffer = (float*)tile.buffer;
+ uint *rng_state = (uint*)tile.rng_state;
+ int start_sample = tile.start_sample;
+ int end_sample = tile.start_sample + tile.num_samples;
- if(task_pool.cancelled())
- break;
+#ifdef WITH_OPTIMIZED_KERNEL
+ if(system_cpu_support_optimized()) {
+ for(int sample = start_sample; sample < end_sample; sample++) {
+ if (task.get_cancel() || task_pool.cancelled())
+ break;
+
+ for(int y = tile.y; y < tile.y + tile.h; y++) {
+ for(int x = tile.x; x < tile.x + tile.w; x++) {
+ kernel_cpu_optimized_path_trace(kg, render_buffer, rng_state,
+ sample, x, y, tile.offset, tile.stride);
+ }
+ }
+
+ tile.sample = sample + 1;
+
+ task.update_progress(tile);
+ }
}
- }
- else
+ else
#endif
- {
- for(int y = task.y; y < task.y + task.h; y++) {
- for(int x = task.x; x < task.x + task.w; x++)
- kernel_cpu_path_trace(kg, (float*)task.buffer, (unsigned int*)task.rng_state,
- task.sample, x, y, task.offset, task.stride);
-
- if(task_pool.cancelled())
- break;
+ {
+ for(int sample = start_sample; sample < end_sample; sample++) {
+ if (task.get_cancel() || task_pool.cancelled())
+ break;
+
+ for(int y = tile.y; y < tile.y + tile.h; y++) {
+ for(int x = tile.x; x < tile.x + tile.w; x++) {
+ kernel_cpu_path_trace(kg, render_buffer, rng_state,
+ sample, x, y, tile.offset, tile.stride);
+ }
+ }
+
+ tile.sample = sample + 1;
+
+ task.update_progress(tile);
+ }
}
+
+ task.release_tile(tile);
+
+ if(task_pool.cancelled())
+ break;
}
#ifdef WITH_OSL
@@ -228,8 +258,7 @@ public:
/* split task into smaller ones, more than number of threads for uneven
* workloads where some parts of the image render slower than others */
list<DeviceTask> tasks;
-
- task.split(tasks, TaskScheduler::num_threads()*10);
+ task.split(tasks, TaskScheduler::num_threads()+1);
foreach(DeviceTask& task, tasks)
task_pool.push(new CPUDeviceTask(this, task));
diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp
index 357f99145b2..c8dcfdc2f3d 100644
--- a/intern/cycles/device/device_cuda.cpp
+++ b/intern/cycles/device/device_cuda.cpp
@@ -23,6 +23,8 @@
#include "device.h"
#include "device_intern.h"
+#include "buffers.h"
+
#include "util_cuda.h"
#include "util_debug.h"
#include "util_map.h"
@@ -37,6 +39,7 @@ CCL_NAMESPACE_BEGIN
class CUDADevice : public Device
{
public:
+ TaskPool task_pool;
CUdevice cuDevice;
CUcontext cuContext;
CUmodule cuModule;
@@ -192,6 +195,8 @@ public:
~CUDADevice()
{
+ task_pool.stop();
+
cuda_push_context();
cuda_assert(cuCtxDetach(cuContext))
}
@@ -466,13 +471,13 @@ public:
}
}
- void path_trace(DeviceTask& task)
+ void path_trace(RenderTile& rtile, int sample)
{
cuda_push_context();
CUfunction cuPathTrace;
- CUdeviceptr d_buffer = cuda_device_ptr(task.buffer);
- CUdeviceptr d_rng_state = cuda_device_ptr(task.rng_state);
+ CUdeviceptr d_buffer = cuda_device_ptr(rtile.buffer);
+ CUdeviceptr d_rng_state = cuda_device_ptr(rtile.rng_state);
/* get kernel function */
cuda_assert(cuModuleGetFunction(&cuPathTrace, cuModule, "kernel_cuda_path_trace"))
@@ -486,29 +491,28 @@ public:
cuda_assert(cuParamSetv(cuPathTrace, offset, &d_rng_state, sizeof(d_rng_state)))
offset += sizeof(d_rng_state);
- int sample = task.sample;
offset = align_up(offset, __alignof(sample));
- cuda_assert(cuParamSeti(cuPathTrace, offset, task.sample))
- offset += sizeof(task.sample);
+ cuda_assert(cuParamSeti(cuPathTrace, offset, sample))
+ offset += sizeof(sample);
- cuda_assert(cuParamSeti(cuPathTrace, offset, task.x))
- offset += sizeof(task.x);
+ cuda_assert(cuParamSeti(cuPathTrace, offset, rtile.x))
+ offset += sizeof(rtile.x);
- cuda_assert(cuParamSeti(cuPathTrace, offset, task.y))
- offset += sizeof(task.y);
+ cuda_assert(cuParamSeti(cuPathTrace, offset, rtile.y))
+ offset += sizeof(rtile.y);
- cuda_assert(cuParamSeti(cuPathTrace, offset, task.w))
- offset += sizeof(task.w);
+ cuda_assert(cuParamSeti(cuPathTrace, offset, rtile.w))
+ offset += sizeof(rtile.w);
- cuda_assert(cuParamSeti(cuPathTrace, offset, task.h))
- offset += sizeof(task.h);
+ cuda_assert(cuParamSeti(cuPathTrace, offset, rtile.h))
+ offset += sizeof(rtile.h);
- cuda_assert(cuParamSeti(cuPathTrace, offset, task.offset))
- offset += sizeof(task.offset);
+ cuda_assert(cuParamSeti(cuPathTrace, offset, rtile.offset))
+ offset += sizeof(rtile.offset);
- cuda_assert(cuParamSeti(cuPathTrace, offset, task.stride))
- offset += sizeof(task.stride);
+ cuda_assert(cuParamSeti(cuPathTrace, offset, rtile.stride))
+ offset += sizeof(rtile.stride);
cuda_assert(cuParamSetSize(cuPathTrace, offset))
@@ -520,23 +524,25 @@ public:
int xthreads = 8;
int ythreads = 8;
#endif
- int xblocks = (task.w + xthreads - 1)/xthreads;
- int yblocks = (task.h + ythreads - 1)/ythreads;
+ int xblocks = (rtile.w + xthreads - 1)/xthreads;
+ int yblocks = (rtile.h + ythreads - 1)/ythreads;
cuda_assert(cuFuncSetCacheConfig(cuPathTrace, CU_FUNC_CACHE_PREFER_L1))
cuda_assert(cuFuncSetBlockShape(cuPathTrace, xthreads, ythreads, 1))
cuda_assert(cuLaunchGrid(cuPathTrace, xblocks, yblocks))
+ cuda_assert(cuCtxSynchronize())
+
cuda_pop_context();
}
- void tonemap(DeviceTask& task)
+ void tonemap(DeviceTask& task, device_ptr buffer, device_ptr rgba)
{
cuda_push_context();
CUfunction cuFilmConvert;
- CUdeviceptr d_rgba = map_pixels(task.rgba);
- CUdeviceptr d_buffer = cuda_device_ptr(task.buffer);
+ CUdeviceptr d_rgba = map_pixels(rgba);
+ CUdeviceptr d_buffer = cuda_device_ptr(buffer);
/* get kernel function */
cuda_assert(cuModuleGetFunction(&cuFilmConvert, cuModule, "kernel_cuda_tonemap"))
@@ -820,27 +826,71 @@ public:
Device::draw_pixels(mem, y, w, h, dy, width, height, transparent);
}
- void task_add(DeviceTask& task)
+ void thread_run(DeviceTask *task)
{
- if(task.type == DeviceTask::TONEMAP)
- tonemap(task);
- else if(task.type == DeviceTask::PATH_TRACE)
- path_trace(task);
- else if(task.type == DeviceTask::SHADER)
- shader(task);
+ if(task->type == DeviceTask::PATH_TRACE) {
+ RenderTile tile;
+
+ /* keep rendering tiles until done */
+ while(task->acquire_tile(this, tile)) {
+ int start_sample = tile.start_sample;
+ int end_sample = tile.start_sample + tile.num_samples;
+
+ for(int sample = start_sample; sample < end_sample; sample++) {
+ if (task->get_cancel())
+ break;
+
+ path_trace(tile, sample);
+
+ tile.sample = sample + 1;
+
+ task->update_progress(tile);
+ }
+
+ task->release_tile(tile);
+ }
+ }
+ else if(task->type == DeviceTask::SHADER) {
+ shader(*task);
+
+ cuda_push_context();
+ cuda_assert(cuCtxSynchronize())
+ cuda_pop_context();
+ }
}
- void task_wait()
+ class CUDADeviceTask : public DeviceTask {
+ public:
+ CUDADeviceTask(CUDADevice *device, DeviceTask& task)
+ : DeviceTask(task)
+ {
+ run = function_bind(&CUDADevice::thread_run, device, this);
+ }
+ };
+
+ void task_add(DeviceTask& task)
{
- cuda_push_context();
+ if(task.type == DeviceTask::TONEMAP) {
+ /* must be done in main thread due to opengl access */
+ tonemap(task, task.buffer, task.rgba);
- cuda_assert(cuCtxSynchronize())
+ cuda_push_context();
+ cuda_assert(cuCtxSynchronize())
+ cuda_pop_context();
+ }
+ else {
+ task_pool.push(new CUDADeviceTask(this, task));
+ }
+ }
- cuda_pop_context();
+ void task_wait()
+ {
+ task_pool.wait_work();
}
void task_cancel()
{
+ task_pool.cancel();
}
};
diff --git a/intern/cycles/device/device_multi.cpp b/intern/cycles/device/device_multi.cpp
index 83e69b98f5d..546ffe5e4b9 100644
--- a/intern/cycles/device/device_multi.cpp
+++ b/intern/cycles/device/device_multi.cpp
@@ -23,6 +23,8 @@
#include "device_intern.h"
#include "device_network.h"
+#include "buffers.h"
+
#include "util_foreach.h"
#include "util_list.h"
#include "util_map.h"
@@ -255,6 +257,30 @@ public:
rgba.device_pointer = tmp;
}
+ void map_tile(Device *sub_device, RenderTile& tile)
+ {
+ foreach(SubDevice& sub, devices) {
+ if(sub.device == sub_device) {
+ if(tile.buffer) tile.buffer = sub.ptr_map[tile.buffer];
+ if(tile.rng_state) tile.rng_state = sub.ptr_map[tile.rng_state];
+ if(tile.rgba) tile.rgba = sub.ptr_map[tile.rgba];
+ }
+ }
+ }
+
+ int device_number(Device *sub_device)
+ {
+ int i = 0;
+
+ foreach(SubDevice& sub, devices) {
+ if(sub.device == sub_device)
+ return i;
+ i++;
+ }
+
+ return -1;
+ }
+
void task_add(DeviceTask& task)
{
list<DeviceTask> tasks;
@@ -266,7 +292,6 @@ public:
tasks.pop_front();
if(task.buffer) subtask.buffer = sub.ptr_map[task.buffer];
- if(task.rng_state) subtask.rng_state = sub.ptr_map[task.rng_state];
if(task.rgba) subtask.rgba = sub.ptr_map[task.rgba];
if(task.shader_input) subtask.shader_input = sub.ptr_map[task.shader_input];
if(task.shader_output) subtask.shader_output = sub.ptr_map[task.shader_output];
diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 13ebeff70d2..673ffdf79fd 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -25,6 +25,8 @@
#include "device.h"
#include "device_intern.h"
+#include "buffers.h"
+
#include "util_foreach.h"
#include "util_map.h"
#include "util_math.h"
@@ -41,6 +43,7 @@ CCL_NAMESPACE_BEGIN
class OpenCLDevice : public Device
{
public:
+ TaskPool task_pool;
cl_context cxContext;
cl_command_queue cqCommandQueue;
cl_platform_id cpPlatform;
@@ -298,15 +301,12 @@ public:
{
string build_options = " -cl-fast-relaxed-math ";
- /* Multi Closure for nVidia cards */
if(platform_name == "NVIDIA CUDA")
build_options += "-D__KERNEL_SHADING__ -D__KERNEL_OPENCL_NVIDIA__ -cl-nv-maxrregcount=24 -cl-nv-verbose ";
-
- /* No Float3 for Apple */
+
else if(platform_name == "Apple")
build_options += "-D__CL_NO_FLOAT3__ -D__KERNEL_OPENCL_APPLE__ ";
-
- /* Basic shading for AMD cards (non Apple) */
+
else if(platform_name == "AMD Accelerated Parallel Processing")
build_options += "-D__CL_NO_FLOAT3__ -D__KERNEL_OPENCL_AMD__ ";
@@ -438,6 +438,8 @@ public:
~OpenCLDevice()
{
+ task_pool.stop();
+
if(null_mem)
clReleaseMemObject(CL_MEM_PTR(null_mem));
@@ -543,19 +545,19 @@ public:
return global_size + ((r == 0)? 0: group_size - r);
}
- void path_trace(DeviceTask& task)
+ void path_trace(RenderTile& rtile, int sample)
{
/* cast arguments to cl types */
cl_mem d_data = CL_MEM_PTR(const_mem_map["__data"]->device_pointer);
- cl_mem d_buffer = CL_MEM_PTR(task.buffer);
- cl_mem d_rng_state = CL_MEM_PTR(task.rng_state);
- cl_int d_x = task.x;
- cl_int d_y = task.y;
- cl_int d_w = task.w;
- cl_int d_h = task.h;
- cl_int d_sample = task.sample;
- cl_int d_offset = task.offset;
- cl_int d_stride = task.stride;
+ cl_mem d_buffer = CL_MEM_PTR(rtile.buffer);
+ cl_mem d_rng_state = CL_MEM_PTR(rtile.rng_state);
+ cl_int d_x = rtile.x;
+ cl_int d_y = rtile.y;
+ cl_int d_w = rtile.w;
+ cl_int d_h = rtile.h;
+ cl_int d_sample = sample;
+ cl_int d_offset = rtile.offset;
+ cl_int d_stride = rtile.stride;
/* sample arguments */
int narg = 0;
@@ -616,12 +618,12 @@ public:
return err;
}
- void tonemap(DeviceTask& task)
+ void tonemap(DeviceTask& task, device_ptr buffer, device_ptr rgba)
{
/* cast arguments to cl types */
cl_mem d_data = CL_MEM_PTR(const_mem_map["__data"]->device_pointer);
- cl_mem d_rgba = CL_MEM_PTR(task.rgba);
- cl_mem d_buffer = CL_MEM_PTR(task.buffer);
+ cl_mem d_rgba = CL_MEM_PTR(rgba);
+ cl_mem d_buffer = CL_MEM_PTR(buffer);
cl_int d_x = task.x;
cl_int d_y = task.y;
cl_int d_w = task.w;
@@ -670,30 +672,57 @@ public:
opencl_assert(clFinish(cqCommandQueue));
}
- void task_add(DeviceTask& maintask)
+ void thread_run(DeviceTask *task)
{
- list<DeviceTask> tasks;
+ if(task->type == DeviceTask::TONEMAP) {
+ tonemap(*task, task->buffer, task->rgba);
+ }
+ else if(task->type == DeviceTask::PATH_TRACE) {
+ RenderTile tile;
+
+ /* keep rendering tiles until done */
+ while(task->acquire_tile(this, tile)) {
+ int start_sample = tile.start_sample;
+ int end_sample = tile.start_sample + tile.num_samples;
- /* arbitrary limit to work around apple ATI opencl issue */
- if(platform_name == "Apple")
- maintask.split_max_size(tasks, 76800);
- else
- tasks.push_back(maintask);
+ for(int sample = start_sample; sample < end_sample; sample++) {
+ if (task->get_cancel())
+ break;
+
+ path_trace(tile, sample);
+
+ tile.sample = sample + 1;
+
+ task->update_progress(tile);
+ }
- foreach(DeviceTask& task, tasks) {
- if(task.type == DeviceTask::TONEMAP)
- tonemap(task);
- else if(task.type == DeviceTask::PATH_TRACE)
- path_trace(task);
+ task->release_tile(tile);
+ }
}
}
+ class OpenCLDeviceTask : public DeviceTask {
+ public:
+ OpenCLDeviceTask(OpenCLDevice *device, DeviceTask& task)
+ : DeviceTask(task)
+ {
+ run = function_bind(&OpenCLDevice::thread_run, device, this);
+ }
+ };
+
+ void task_add(DeviceTask& task)
+ {
+ task_pool.push(new OpenCLDeviceTask(this, task));
+ }
+
void task_wait()
{
+ task_pool.wait_work();
}
void task_cancel()
{
+ task_pool.cancel();
}
};
@@ -705,29 +734,31 @@ Device *device_opencl_create(DeviceInfo& info, bool background)
void device_opencl_info(vector<DeviceInfo>& devices)
{
vector<cl_device_id> device_ids;
- cl_uint num_devices;
- cl_platform_id platform_id;
- cl_uint num_platforms;
+ cl_uint num_devices = 0;
+ vector<cl_platform_id> platform_ids;
+ cl_uint num_platforms = 0;
/* get devices */
if(clGetPlatformIDs(0, NULL, &num_platforms) != CL_SUCCESS || num_platforms == 0)
return;
+
+ platform_ids.resize(num_platforms);
- if(clGetPlatformIDs(1, &platform_id, NULL) != CL_SUCCESS)
+ if(clGetPlatformIDs(num_platforms, &platform_ids[0], NULL) != CL_SUCCESS)
return;
- if(clGetDeviceIDs(platform_id, CL_DEVICE_TYPE_GPU|CL_DEVICE_TYPE_ACCELERATOR, 0, NULL, &num_devices) != CL_SUCCESS)
+ if(clGetDeviceIDs(platform_ids[0], CL_DEVICE_TYPE_GPU|CL_DEVICE_TYPE_ACCELERATOR, 0, NULL, &num_devices) != CL_SUCCESS || num_devices == 0)
return;
device_ids.resize(num_devices);
- if(clGetDeviceIDs(platform_id, CL_DEVICE_TYPE_GPU|CL_DEVICE_TYPE_ACCELERATOR, num_devices, &device_ids[0], NULL) != CL_SUCCESS)
+ if(clGetDeviceIDs(platform_ids[0], CL_DEVICE_TYPE_GPU|CL_DEVICE_TYPE_ACCELERATOR, num_devices, &device_ids[0], NULL) != CL_SUCCESS)
return;
/* add devices */
for(int num = 0; num < num_devices; num++) {
cl_device_id device_id = device_ids[num];
- char name[1024];
+ char name[1024] = "\0";
if(clGetDeviceInfo(device_id, CL_DEVICE_NAME, sizeof(name), &name, NULL) != CL_SUCCESS)
continue;
diff --git a/intern/cycles/device/device_task.cpp b/intern/cycles/device/device_task.cpp
new file mode 100644
index 00000000000..c85e182d629
--- /dev/null
+++ b/intern/cycles/device/device_task.cpp
@@ -0,0 +1,113 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "device_task.h"
+
+#include "util_algorithm.h"
+#include "util_time.h"
+
+CCL_NAMESPACE_BEGIN
+
+/* Device Task */
+
+DeviceTask::DeviceTask(Type type_)
+: type(type_), x(0), y(0), w(0), h(0), rgba(0), buffer(0),
+ sample(0), num_samples(1), resolution(0),
+ shader_input(0), shader_output(0),
+ shader_eval_type(0), shader_x(0), shader_w(0)
+{
+ last_update_time = time_dt();
+}
+
+void DeviceTask::split_max_size(list<DeviceTask>& tasks, int max_size)
+{
+ int num;
+
+ if(type == SHADER) {
+ num = (shader_w + max_size - 1)/max_size;
+ }
+ else {
+ max_size = max(1, max_size/w);
+ num = (h + max_size - 1)/max_size;
+ }
+
+ split(tasks, num);
+}
+
+void DeviceTask::split(list<DeviceTask>& tasks, int num)
+{
+ if(type == SHADER) {
+ num = min(shader_w, num);
+
+ for(int i = 0; i < num; i++) {
+ int tx = shader_x + (shader_w/num)*i;
+ int tw = (i == num-1)? shader_w - i*(shader_w/num): shader_w/num;
+
+ DeviceTask task = *this;
+
+ task.shader_x = tx;
+ task.shader_w = tw;
+
+ tasks.push_back(task);
+ }
+ }
+ else if(type == PATH_TRACE) {
+ for(int i = 0; i < num; i++)
+ tasks.push_back(*this);
+ }
+ else {
+ num = min(h, num);
+
+ for(int i = 0; i < num; i++) {
+ int ty = y + (h/num)*i;
+ int th = (i == num-1)? h - i*(h/num): h/num;
+
+ DeviceTask task = *this;
+
+ task.y = ty;
+ task.h = th;
+
+ tasks.push_back(task);
+ }
+ }
+}
+
+void DeviceTask::update_progress(RenderTile &rtile)
+{
+ if (type != PATH_TRACE)
+ return;
+
+ if(update_progress_sample)
+ update_progress_sample();
+
+ if(update_tile_sample) {
+ double current_time = time_dt();
+
+ if (current_time - last_update_time >= 1.0f) {
+ update_tile_sample(rtile);
+
+ last_update_time = current_time;
+ }
+ }
+}
+
+CCL_NAMESPACE_END
+
diff --git a/intern/cycles/device/device_task.h b/intern/cycles/device/device_task.h
new file mode 100644
index 00000000000..cfb3d8d988e
--- /dev/null
+++ b/intern/cycles/device/device_task.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __DEVICE_TASK_H__
+#define __DEVICE_TASK_H__
+
+#include "device_memory.h"
+
+#include "util_function.h"
+#include "util_list.h"
+#include "util_task.h"
+
+CCL_NAMESPACE_BEGIN
+
+/* Device Task */
+
+class Device;
+class RenderBuffers;
+class RenderTile;
+class Tile;
+
+class DeviceTask : public Task {
+public:
+ typedef enum { PATH_TRACE, TONEMAP, SHADER } Type;
+ Type type;
+
+ int x, y, w, h;
+ device_ptr rgba;
+ device_ptr buffer;
+ int sample;
+ int num_samples;
+ int resolution;
+ int offset, stride;
+
+ device_ptr shader_input;
+ device_ptr shader_output;
+ int shader_eval_type;
+ int shader_x, shader_w;
+
+ DeviceTask(Type type = PATH_TRACE);
+
+ void split(list<DeviceTask>& tasks, int num);
+ void split_max_size(list<DeviceTask>& tasks, int max_size);
+
+ void update_progress(RenderTile &rtile);
+
+ boost::function<bool(Device *device, RenderTile&)> acquire_tile;
+ boost::function<void(void)> update_progress_sample;
+ boost::function<void(RenderTile&)> update_tile_sample;
+ boost::function<void(RenderTile&)> release_tile;
+ boost::function<bool(void)> get_cancel;
+
+protected:
+ double last_update_time;
+};
+
+CCL_NAMESPACE_END
+
+#endif /* __DEVICE_TASK_H__ */
+
diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt
index 98cb16d5dfc..df8a9b1d5b4 100644
--- a/intern/cycles/kernel/CMakeLists.txt
+++ b/intern/cycles/kernel/CMakeLists.txt
@@ -5,6 +5,8 @@ set(INC
osl
svm
)
+set(INC_SYS
+)
set(SRC
kernel.cpp
@@ -16,6 +18,7 @@ set(SRC
set(SRC_HEADERS
kernel.h
kernel_accumulate.h
+ kernel_attribute.h
kernel_bvh.h
kernel_camera.h
kernel_compat_cpu.h
@@ -61,6 +64,7 @@ set(SRC_SVM_HEADERS
svm/svm_closure.h
svm/svm_convert.h
svm/svm_checker.h
+ svm/svm_brick.h
svm/svm_displace.h
svm/svm_fresnel.h
svm/svm_gamma.h
@@ -133,6 +137,7 @@ endif()
# CPU module
include_directories(${INC})
+include_directories(SYSTEM ${INC_SYS})
add_library(cycles_kernel ${SRC} ${SRC_HEADERS} ${SRC_SVM_HEADERS})
diff --git a/intern/cycles/kernel/kernel.cpp b/intern/cycles/kernel/kernel.cpp
index 667db1e5f03..62d79bdd946 100644
--- a/intern/cycles/kernel/kernel.cpp
+++ b/intern/cycles/kernel/kernel.cpp
@@ -87,14 +87,10 @@ void kernel_tex_copy(KernelGlobals *kg, const char *name, device_ptr mem, size_t
else if(strstr(name, "__tex_image_float")) {
texture_image_float4 *tex = NULL;
int id = atoi(name + strlen("__tex_image_float_"));
+ int array_index = id;
- switch(id) {
- case 95: tex = &kg->__tex_image_float_095; break;
- case 96: tex = &kg->__tex_image_float_096; break;
- case 97: tex = &kg->__tex_image_float_097; break;
- case 98: tex = &kg->__tex_image_float_098; break;
- case 99: tex = &kg->__tex_image_float_099; break;
- default: break;
+ if (array_index >= 0 && array_index < MAX_FLOAT_IMAGES) {
+ tex = &kg->texture_float_images[array_index];
}
if(tex) {
@@ -106,104 +102,10 @@ void kernel_tex_copy(KernelGlobals *kg, const char *name, device_ptr mem, size_t
else if(strstr(name, "__tex_image")) {
texture_image_uchar4 *tex = NULL;
int id = atoi(name + strlen("__tex_image_"));
+ int array_index = id - MAX_FLOAT_IMAGES;
- switch(id) {
- case 0: tex = &kg->__tex_image_000; break;
- case 1: tex = &kg->__tex_image_001; break;
- case 2: tex = &kg->__tex_image_002; break;
- case 3: tex = &kg->__tex_image_003; break;
- case 4: tex = &kg->__tex_image_004; break;
- case 5: tex = &kg->__tex_image_005; break;
- case 6: tex = &kg->__tex_image_006; break;
- case 7: tex = &kg->__tex_image_007; break;
- case 8: tex = &kg->__tex_image_008; break;
- case 9: tex = &kg->__tex_image_009; break;
- case 10: tex = &kg->__tex_image_010; break;
- case 11: tex = &kg->__tex_image_011; break;
- case 12: tex = &kg->__tex_image_012; break;
- case 13: tex = &kg->__tex_image_013; break;
- case 14: tex = &kg->__tex_image_014; break;
- case 15: tex = &kg->__tex_image_015; break;
- case 16: tex = &kg->__tex_image_016; break;
- case 17: tex = &kg->__tex_image_017; break;
- case 18: tex = &kg->__tex_image_018; break;
- case 19: tex = &kg->__tex_image_019; break;
- case 20: tex = &kg->__tex_image_020; break;
- case 21: tex = &kg->__tex_image_021; break;
- case 22: tex = &kg->__tex_image_022; break;
- case 23: tex = &kg->__tex_image_023; break;
- case 24: tex = &kg->__tex_image_024; break;
- case 25: tex = &kg->__tex_image_025; break;
- case 26: tex = &kg->__tex_image_026; break;
- case 27: tex = &kg->__tex_image_027; break;
- case 28: tex = &kg->__tex_image_028; break;
- case 29: tex = &kg->__tex_image_029; break;
- case 30: tex = &kg->__tex_image_030; break;
- case 31: tex = &kg->__tex_image_031; break;
- case 32: tex = &kg->__tex_image_032; break;
- case 33: tex = &kg->__tex_image_033; break;
- case 34: tex = &kg->__tex_image_034; break;
- case 35: tex = &kg->__tex_image_035; break;
- case 36: tex = &kg->__tex_image_036; break;
- case 37: tex = &kg->__tex_image_037; break;
- case 38: tex = &kg->__tex_image_038; break;
- case 39: tex = &kg->__tex_image_039; break;
- case 40: tex = &kg->__tex_image_040; break;
- case 41: tex = &kg->__tex_image_041; break;
- case 42: tex = &kg->__tex_image_042; break;
- case 43: tex = &kg->__tex_image_043; break;
- case 44: tex = &kg->__tex_image_044; break;
- case 45: tex = &kg->__tex_image_045; break;
- case 46: tex = &kg->__tex_image_046; break;
- case 47: tex = &kg->__tex_image_047; break;
- case 48: tex = &kg->__tex_image_048; break;
- case 49: tex = &kg->__tex_image_049; break;
- case 50: tex = &kg->__tex_image_050; break;
- case 51: tex = &kg->__tex_image_051; break;
- case 52: tex = &kg->__tex_image_052; break;
- case 53: tex = &kg->__tex_image_053; break;
- case 54: tex = &kg->__tex_image_054; break;
- case 55: tex = &kg->__tex_image_055; break;
- case 56: tex = &kg->__tex_image_056; break;
- case 57: tex = &kg->__tex_image_057; break;
- case 58: tex = &kg->__tex_image_058; break;
- case 59: tex = &kg->__tex_image_059; break;
- case 60: tex = &kg->__tex_image_060; break;
- case 61: tex = &kg->__tex_image_061; break;
- case 62: tex = &kg->__tex_image_062; break;
- case 63: tex = &kg->__tex_image_063; break;
- case 64: tex = &kg->__tex_image_064; break;
- case 65: tex = &kg->__tex_image_065; break;
- case 66: tex = &kg->__tex_image_066; break;
- case 67: tex = &kg->__tex_image_067; break;
- case 68: tex = &kg->__tex_image_068; break;
- case 69: tex = &kg->__tex_image_069; break;
- case 70: tex = &kg->__tex_image_070; break;
- case 71: tex = &kg->__tex_image_071; break;
- case 72: tex = &kg->__tex_image_072; break;
- case 73: tex = &kg->__tex_image_073; break;
- case 74: tex = &kg->__tex_image_074; break;
- case 75: tex = &kg->__tex_image_075; break;
- case 76: tex = &kg->__tex_image_076; break;
- case 77: tex = &kg->__tex_image_077; break;
- case 78: tex = &kg->__tex_image_078; break;
- case 79: tex = &kg->__tex_image_079; break;
- case 80: tex = &kg->__tex_image_080; break;
- case 81: tex = &kg->__tex_image_081; break;
- case 82: tex = &kg->__tex_image_082; break;
- case 83: tex = &kg->__tex_image_083; break;
- case 84: tex = &kg->__tex_image_084; break;
- case 85: tex = &kg->__tex_image_085; break;
- case 86: tex = &kg->__tex_image_086; break;
- case 87: tex = &kg->__tex_image_087; break;
- case 88: tex = &kg->__tex_image_088; break;
- case 89: tex = &kg->__tex_image_089; break;
- case 90: tex = &kg->__tex_image_090; break;
- case 91: tex = &kg->__tex_image_091; break;
- case 92: tex = &kg->__tex_image_092; break;
- case 93: tex = &kg->__tex_image_093; break;
- case 94: tex = &kg->__tex_image_094; break;
- default: break;
+ if (array_index >= 0 && array_index < MAX_BYTE_IMAGES) {
+ tex = &kg->texture_byte_images[array_index];
}
if(tex) {
diff --git a/intern/cycles/kernel/kernel_accumulate.h b/intern/cycles/kernel/kernel_accumulate.h
index d99beb8905a..2f2314c9a8b 100644
--- a/intern/cycles/kernel/kernel_accumulate.h
+++ b/intern/cycles/kernel/kernel_accumulate.h
@@ -301,6 +301,10 @@ __device_inline float3 path_radiance_sum(KernelGlobals *kg, PathRadiance *L)
__device_inline void path_radiance_clamp(PathRadiance *L, float3 *L_sum, float clamp)
{
+ #ifdef __OSL__
+ using std::isfinite;
+ #endif
+
float sum = fabsf((*L_sum).x) + fabsf((*L_sum).y) + fabsf((*L_sum).z);
if(!isfinite(sum)) {
diff --git a/intern/cycles/kernel/kernel_attribute.h b/intern/cycles/kernel/kernel_attribute.h
new file mode 100644
index 00000000000..115de2fdbdb
--- /dev/null
+++ b/intern/cycles/kernel/kernel_attribute.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __KERNEL_ATTRIBUTE_CL__
+#define __KERNEL_ATTRIBUTE_CL__
+
+#include "util_types.h"
+
+#ifdef __OSL__
+#include <string>
+#include "util_attribute.h"
+#endif
+
+CCL_NAMESPACE_BEGIN
+
+/* note: declared in kernel.h, have to add it here because kernel.h is not available */
+bool kernel_osl_use(KernelGlobals *kg);
+
+__device_inline int find_attribute(KernelGlobals *kg, ShaderData *sd, uint id)
+{
+
+#ifdef __OSL__
+ if (kernel_osl_use(kg)) {
+ /* for OSL, a hash map is used to lookup the attribute by name. */
+ OSLGlobals::AttributeMap &attr_map = kg->osl.attribute_map[sd->object];
+ ustring stdname(std::string("std::") + std::string(attribute_standard_name((AttributeStandard)id)));
+ OSLGlobals::AttributeMap::const_iterator it = attr_map.find(stdname);
+ if (it != attr_map.end()) {
+ const OSLGlobals::Attribute &osl_attr = it->second;
+ /* return result */
+ return (osl_attr.elem == ATTR_ELEMENT_NONE) ? (int)ATTR_STD_NOT_FOUND : osl_attr.offset;
+ }
+ else
+ return (int)ATTR_STD_NOT_FOUND;
+ }
+ else
+#endif
+ {
+ /* for SVM, find attribute by unique id */
+ uint attr_offset = sd->object*kernel_data.bvh.attributes_map_stride;
+ uint4 attr_map = kernel_tex_fetch(__attributes_map, attr_offset);
+
+ while(attr_map.x != id)
+ attr_map = kernel_tex_fetch(__attributes_map, ++attr_offset);
+
+ /* return result */
+ return (attr_map.y == ATTR_ELEMENT_NONE) ? (int)ATTR_STD_NOT_FOUND : attr_map.z;
+ }
+}
+
+CCL_NAMESPACE_END
+
+#endif /* __KERNEL_ATTRIBUTE_CL__ */
diff --git a/intern/cycles/kernel/kernel_camera.h b/intern/cycles/kernel/kernel_camera.h
index e1b474d8537..7fa987197c9 100644
--- a/intern/cycles/kernel/kernel_camera.h
+++ b/intern/cycles/kernel/kernel_camera.h
@@ -134,7 +134,7 @@ __device void camera_sample_orthographic(KernelGlobals *kg, float raster_x, floa
/* Panorama Camera */
-__device void camera_sample_panorama(KernelGlobals *kg, float raster_x, float raster_y, Ray *ray)
+__device void camera_sample_panorama(KernelGlobals *kg, float raster_x, float raster_y, float lens_u, float lens_v, Ray *ray)
{
Transform rastertocamera = kernel_data.cam.rastertocamera;
float3 Pcamera = transform_perspective(&rastertocamera, make_float3(raster_x, raster_y, 0.0f));
@@ -151,6 +151,26 @@ __device void camera_sample_panorama(KernelGlobals *kg, float raster_x, float ra
ray->D = panorama_to_direction(kg, Pcamera.x, Pcamera.y);
+ /* modify ray for depth of field */
+ float aperturesize = kernel_data.cam.aperturesize;
+
+ if(aperturesize > 0.0f) {
+ /* sample point on aperture */
+ float2 lensuv = camera_sample_aperture(kg, lens_u, lens_v)*aperturesize;
+
+ /* compute point on plane of focus */
+ float3 D = normalize(ray->D);
+ float3 Pfocus = D * kernel_data.cam.focaldistance;
+
+ /* calculate orthonormal coordinates perpendicular to D */
+ float3 U, V;
+ make_orthonormals(D, &U, &V);
+
+ /* update ray for effect of lens */
+ ray->P = U * lensuv.x + V * lensuv.y;
+ ray->D = normalize(Pfocus - ray->P);
+ }
+
/* indicates ray should not receive any light, outside of the lens */
if(len_squared(ray->D) == 0.0f) {
ray->t = 0.0f;
@@ -206,7 +226,7 @@ __device void camera_sample(KernelGlobals *kg, int x, int y, float filter_u, flo
else if(kernel_data.cam.type == CAMERA_ORTHOGRAPHIC)
camera_sample_orthographic(kg, raster_x, raster_y, ray);
else
- camera_sample_panorama(kg, raster_x, raster_y, ray);
+ camera_sample_panorama(kg, raster_x, raster_y, lens_u, lens_v, ray);
}
CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/kernel_compat_cpu.h b/intern/cycles/kernel/kernel_compat_cpu.h
index cc8f1f3323b..45f653a686c 100644
--- a/intern/cycles/kernel/kernel_compat_cpu.h
+++ b/intern/cycles/kernel/kernel_compat_cpu.h
@@ -158,7 +158,7 @@ typedef texture_image<uchar4> texture_image_uchar4;
#define kernel_tex_fetch_m128(tex, index) (kg->tex.fetch_m128(index))
#define kernel_tex_fetch_m128i(tex, index) (kg->tex.fetch_m128i(index))
#define kernel_tex_interp(tex, t, size) (kg->tex.interp(t, size))
-#define kernel_tex_image_interp(tex, x, y) (kg->tex.interp(x, y))
+#define kernel_tex_image_interp(tex, x, y) ((tex < MAX_FLOAT_IMAGES) ? kg->texture_float_images[tex].interp(x, y) : kg->texture_byte_images[tex - MAX_FLOAT_IMAGES].interp(x, y))
#define kernel_data (kg->__data)
diff --git a/intern/cycles/kernel/kernel_differential.h b/intern/cycles/kernel/kernel_differential.h
index 04027523ea5..2190e04e231 100644
--- a/intern/cycles/kernel/kernel_differential.h
+++ b/intern/cycles/kernel/kernel_differential.h
@@ -22,7 +22,7 @@ CCL_NAMESPACE_BEGIN
__device void differential_transfer(differential3 *dP_, const differential3 dP, float3 D, const differential3 dD, float3 Ng, float t)
{
- /* ray differential transfer through homogenous medium, to
+ /* ray differential transfer through homogeneous medium, to
* compute dPdx/dy at a shading point from the incoming ray */
float3 tmp = D/dot(D, Ng);
diff --git a/intern/cycles/kernel/kernel_displace.h b/intern/cycles/kernel/kernel_displace.h
index f4b33605f5b..6461a1eea38 100644
--- a/intern/cycles/kernel/kernel_displace.h
+++ b/intern/cycles/kernel/kernel_displace.h
@@ -63,6 +63,8 @@ __device void kernel_shader_evaluate(KernelGlobals *kg, uint4 *input, float4 *ou
out = shader_eval_background(kg, &sd, flag);
}
+ shader_release(kg, &sd);
+
/* write output */
output[i] = make_float4(out.x, out.y, out.z, 0.0f);
}
diff --git a/intern/cycles/kernel/kernel_globals.h b/intern/cycles/kernel/kernel_globals.h
index a99fffbc519..1e56c11ab90 100644
--- a/intern/cycles/kernel/kernel_globals.h
+++ b/intern/cycles/kernel/kernel_globals.h
@@ -35,10 +35,15 @@ CCL_NAMESPACE_BEGIN
#ifdef __KERNEL_CPU__
+#define MAX_BYTE_IMAGES 512
+#define MAX_FLOAT_IMAGES 5
+
typedef struct KernelGlobals {
+ texture_image_uchar4 texture_byte_images[MAX_BYTE_IMAGES];
+ texture_image_float4 texture_float_images[MAX_FLOAT_IMAGES];
#define KERNEL_TEX(type, ttype, name) ttype name;
-#define KERNEL_IMAGE_TEX(type, ttype, name) ttype name;
+#define KERNEL_IMAGE_TEX(type, ttype, name)
#include "kernel_textures.h"
KernelData __data;
diff --git a/intern/cycles/kernel/kernel_montecarlo.h b/intern/cycles/kernel/kernel_montecarlo.h
index 939f3915b6c..d0b588a88d4 100644
--- a/intern/cycles/kernel/kernel_montecarlo.h
+++ b/intern/cycles/kernel/kernel_montecarlo.h
@@ -46,16 +46,19 @@ __device void to_unit_disk(float *x, float *y)
if(a > -b) {
if(a > b) {
r = a;
- phi = M_PI_4_F *(b/a);
- } else {
- r = b;
- phi = M_PI_4_F *(2.0f - a/b);
- }
- } else {
+ phi = M_PI_4_F *(b/a);
+ }
+ else {
+ r = b;
+ phi = M_PI_4_F *(2.0f - a/b);
+ }
+ }
+ else {
if(a < b) {
r = -a;
phi = M_PI_4_F *(4.0f + b/a);
- } else {
+ }
+ else {
r = -b;
if(b != 0.0f)
phi = M_PI_4_F *(6.0f - a/b);
@@ -87,8 +90,8 @@ __device_inline void sample_cos_hemisphere(const float3 N,
}
__device_inline void sample_uniform_hemisphere(const float3 N,
- float randu, float randv,
- float3 *omega_in, float *pdf)
+ float randu, float randv,
+ float3 *omega_in, float *pdf)
{
float z = randu;
float r = sqrtf(max(0.0f, 1.0f - z*z));
diff --git a/intern/cycles/kernel/kernel_object.h b/intern/cycles/kernel/kernel_object.h
index 18e0b1e8a87..01da5050c8d 100644
--- a/intern/cycles/kernel/kernel_object.h
+++ b/intern/cycles/kernel/kernel_object.h
@@ -23,7 +23,8 @@ enum ObjectTransform {
OBJECT_INVERSE_TRANSFORM = 3,
OBJECT_PROPERTIES = 6,
OBJECT_TRANSFORM_MOTION_PRE = 8,
- OBJECT_TRANSFORM_MOTION_POST = 12
+ OBJECT_TRANSFORM_MOTION_POST = 12,
+ OBJECT_DUPLI = 16
};
__device_inline Transform object_fetch_transform(KernelGlobals *kg, int object, float time, enum ObjectTransform type)
@@ -164,25 +165,90 @@ __device_inline uint object_particle_id(KernelGlobals *kg, int object)
return __float_as_int(f.w);
}
+__device_inline float3 object_dupli_generated(KernelGlobals *kg, int object)
+{
+ if(object == ~0)
+ return make_float3(0.0f, 0.0f, 0.0f);
+
+ int offset = object*OBJECT_SIZE + OBJECT_DUPLI;
+ float4 f = kernel_tex_fetch(__objects, offset);
+ return make_float3(f.x, f.y, f.z);
+}
+
+__device_inline float3 object_dupli_uv(KernelGlobals *kg, int object)
+{
+ if(object == ~0)
+ return make_float3(0.0f, 0.0f, 0.0f);
+
+ int offset = object*OBJECT_SIZE + OBJECT_DUPLI;
+ float4 f = kernel_tex_fetch(__objects, offset + 1);
+ return make_float3(f.x, f.y, 0.0f);
+}
+
+
__device int shader_pass_id(KernelGlobals *kg, ShaderData *sd)
{
return kernel_tex_fetch(__shader_flag, (sd->shader & SHADER_MASK)*2 + 1);
}
-__device float particle_age(KernelGlobals *kg, int particle)
+__device_inline float particle_index(KernelGlobals *kg, int particle)
{
int offset = particle*PARTICLE_SIZE;
- float4 f = kernel_tex_fetch(__particles, offset);
+ float4 f = kernel_tex_fetch(__particles, offset + 0);
return f.x;
}
-__device float particle_lifetime(KernelGlobals *kg, int particle)
+__device float particle_age(KernelGlobals *kg, int particle)
{
int offset = particle*PARTICLE_SIZE;
- float4 f = kernel_tex_fetch(__particles, offset);
+ float4 f = kernel_tex_fetch(__particles, offset + 0);
return f.y;
}
+__device float particle_lifetime(KernelGlobals *kg, int particle)
+{
+ int offset = particle*PARTICLE_SIZE;
+ float4 f = kernel_tex_fetch(__particles, offset + 0);
+ return f.z;
+}
+
+__device float particle_size(KernelGlobals *kg, int particle)
+{
+ int offset = particle*PARTICLE_SIZE;
+ float4 f = kernel_tex_fetch(__particles, offset + 0);
+ return f.w;
+}
+
+__device float4 particle_rotation(KernelGlobals *kg, int particle)
+{
+ int offset = particle*PARTICLE_SIZE;
+ float4 f = kernel_tex_fetch(__particles, offset + 1);
+ return f;
+}
+
+__device float3 particle_location(KernelGlobals *kg, int particle)
+{
+ int offset = particle*PARTICLE_SIZE;
+ float4 f = kernel_tex_fetch(__particles, offset + 2);
+ return make_float3(f.x, f.y, f.z);
+}
+
+__device float3 particle_velocity(KernelGlobals *kg, int particle)
+{
+ int offset = particle*PARTICLE_SIZE;
+ float4 f2 = kernel_tex_fetch(__particles, offset + 2);
+ float4 f3 = kernel_tex_fetch(__particles, offset + 3);
+ return make_float3(f2.w, f3.x, f3.y);
+}
+
+__device float3 particle_angular_velocity(KernelGlobals *kg, int particle)
+{
+ int offset = particle*PARTICLE_SIZE;
+ float4 f3 = kernel_tex_fetch(__particles, offset + 3);
+ float4 f4 = kernel_tex_fetch(__particles, offset + 4);
+ return make_float3(f3.z, f3.w, f4.x);
+}
+
CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/kernel_passes.h b/intern/cycles/kernel/kernel_passes.h
index f3ddda4a392..42733d691e0 100644
--- a/intern/cycles/kernel/kernel_passes.h
+++ b/intern/cycles/kernel/kernel_passes.h
@@ -125,8 +125,18 @@ __device_inline void kernel_write_light_passes(KernelGlobals *kg, __global float
kernel_write_pass_float3(buffer + kernel_data.film.pass_glossy_color, sample, L->color_glossy);
if(flag & PASS_TRANSMISSION_COLOR)
kernel_write_pass_float3(buffer + kernel_data.film.pass_transmission_color, sample, L->color_transmission);
- if(flag & PASS_SHADOW)
- kernel_write_pass_float4(buffer + kernel_data.film.pass_shadow, sample, L->shadow);
+ if(flag & PASS_SHADOW) {
+ float4 shadow = L->shadow;
+
+ /* bit of an ugly hack to compensate for emitting triangles influencing
+ * amount of samples we get for this pass */
+ if(kernel_data.integrator.progressive && kernel_data.integrator.pdf_triangles != 0.0f)
+ shadow.w = 0.5f;
+ else
+ shadow.w = 1.0f;
+
+ kernel_write_pass_float4(buffer + kernel_data.film.pass_shadow, sample, shadow);
+ }
#endif
}
diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h
index 98ab9169c21..d606c3d634a 100644
--- a/intern/cycles/kernel/kernel_path.h
+++ b/intern/cycles/kernel/kernel_path.h
@@ -209,6 +209,8 @@ __device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray *ra
if(ray->t != FLT_MAX)
ray->D = normalize_len(Pend - ray->P, &ray->t);
+ shader_release(kg, &sd);
+
bounce++;
}
}
@@ -288,14 +290,16 @@ __device float4 kernel_path_progressive(KernelGlobals *kg, RNG *rng, int sample,
if(sd.flag & SD_HOLDOUT_MASK)
holdout_weight = make_float3(1.0f, 1.0f, 1.0f);
else
- shader_holdout_eval(kg, &sd);
+ holdout_weight = shader_holdout_eval(kg, &sd);
/* any throughput is ok, should all be identical here */
L_transparent += average(holdout_weight*throughput);
}
- if(sd.flag & SD_HOLDOUT_MASK)
+ if(sd.flag & SD_HOLDOUT_MASK) {
+ shader_release(kg, &sd);
break;
+ }
}
#endif
@@ -313,8 +317,10 @@ __device float4 kernel_path_progressive(KernelGlobals *kg, RNG *rng, int sample,
float probability = path_state_terminate_probability(kg, &state, throughput);
float terminate = path_rng(kg, rng, sample, rng_offset + PRNG_TERMINATE);
- if(terminate >= probability)
+ if(terminate >= probability) {
+ shader_release(kg, &sd);
break;
+ }
throughput /= probability;
@@ -380,8 +386,10 @@ __device float4 kernel_path_progressive(KernelGlobals *kg, RNG *rng, int sample,
#endif
/* no BSDF? we can stop here */
- if(!(sd.flag & SD_BSDF))
+ if(!(sd.flag & SD_BSDF)) {
+ shader_release(kg, &sd);
break;
+ }
/* sample BSDF */
float bsdf_pdf;
@@ -486,8 +494,10 @@ __device void kernel_path_indirect(KernelGlobals *kg, RNG *rng, int sample, Ray
float probability = path_state_terminate_probability(kg, &state, throughput);
float terminate = path_rng(kg, rng, sample, rng_offset + PRNG_TERMINATE);
- if(terminate >= probability)
+ if(terminate >= probability) {
+ shader_release(kg, &sd);
break;
+ }
throughput /= probability;
@@ -554,8 +564,10 @@ __device void kernel_path_indirect(KernelGlobals *kg, RNG *rng, int sample, Ray
#endif
/* no BSDF? we can stop here */
- if(!(sd.flag & SD_BSDF))
+ if(!(sd.flag & SD_BSDF)) {
+ shader_release(kg, &sd);
break;
+ }
/* sample BSDF */
float bsdf_pdf;
@@ -655,14 +667,16 @@ __device float4 kernel_path_non_progressive(KernelGlobals *kg, RNG *rng, int sam
if(sd.flag & SD_HOLDOUT_MASK)
holdout_weight = make_float3(1.0f, 1.0f, 1.0f);
else
- shader_holdout_eval(kg, &sd);
+ holdout_weight = shader_holdout_eval(kg, &sd);
/* any throughput is ok, should all be identical here */
L_transparent += average(holdout_weight*throughput);
}
- if(sd.flag & SD_HOLDOUT_MASK)
+ if(sd.flag & SD_HOLDOUT_MASK) {
+ shader_release(kg, &sd);
break;
+ }
}
#endif
@@ -682,8 +696,10 @@ __device float4 kernel_path_non_progressive(KernelGlobals *kg, RNG *rng, int sam
float probability = path_state_terminate_probability(kg, &state, throughput);
float terminate = path_rng(kg, rng, sample, rng_offset + PRNG_TERMINATE);
- if(terminate >= probability)
+ if(terminate >= probability) {
+ shader_release(kg, &sd);
break;
+ }
throughput /= probability;
}
@@ -693,7 +709,7 @@ __device float4 kernel_path_non_progressive(KernelGlobals *kg, RNG *rng, int sam
if(kernel_data.integrator.use_ambient_occlusion) {
int num_samples = kernel_data.integrator.ao_samples;
float num_samples_inv = 1.0f/num_samples;
- float ao_factor = kernel_data.background.ao_factor/num_samples;
+ float ao_factor = kernel_data.background.ao_factor;
for(int j = 0; j < num_samples; j++) {
/* todo: solve correlation */
@@ -842,15 +858,20 @@ __device float4 kernel_path_non_progressive(KernelGlobals *kg, RNG *rng, int sam
path_state_next(kg, &ps, label);
/* setup ray */
- ray.P = ray_offset(sd.P, (label & LABEL_TRANSMIT)? -sd.Ng: sd.Ng);
- ray.D = bsdf_omega_in;
- ray.t = FLT_MAX;
+ Ray bsdf_ray;
+
+ bsdf_ray.P = ray_offset(sd.P, (label & LABEL_TRANSMIT)? -sd.Ng: sd.Ng);
+ bsdf_ray.D = bsdf_omega_in;
+ bsdf_ray.t = FLT_MAX;
#ifdef __RAY_DIFFERENTIALS__
- ray.dP = sd.dP;
- ray.dD = bsdf_domega_in;
+ bsdf_ray.dP = sd.dP;
+ bsdf_ray.dD = bsdf_domega_in;
+#endif
+#ifdef __MOTION__
+ bsdf_ray.time = sd.time;
#endif
- kernel_path_indirect(kg, rng, sample*num_samples, ray, buffer,
+ kernel_path_indirect(kg, rng, sample*num_samples, bsdf_ray, buffer,
tp*num_samples_inv, min_ray_pdf, bsdf_pdf, ps, rng_offset+PRNG_BOUNCE_NUM, &L);
}
}
diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h
index bc873f4e112..b57e27bc8ed 100644
--- a/intern/cycles/kernel/kernel_shader.h
+++ b/intern/cycles/kernel/kernel_shader.h
@@ -30,7 +30,7 @@
#include "osl_shader.h"
-#else
+#endif
#include "svm/bsdf.h"
#include "svm/emissive.h"
@@ -38,7 +38,6 @@
#include "svm/svm_bsdf.h"
#include "svm/svm.h"
-#endif
CCL_NAMESPACE_BEGIN
@@ -47,6 +46,11 @@ CCL_NAMESPACE_BEGIN
__device_inline void shader_setup_from_ray(KernelGlobals *kg, ShaderData *sd,
const Intersection *isect, const Ray *ray)
{
+#ifdef __OSL__
+ if (kernel_osl_use(kg))
+ OSLShader::init(kg, sd);
+#endif
+
/* fetch triangle data */
int prim = kernel_tex_fetch(__prim_index, isect->prim);
float4 Ns = kernel_tex_fetch(__tri_normal, prim);
@@ -130,6 +134,11 @@ __device void shader_setup_from_sample(KernelGlobals *kg, ShaderData *sd,
const float3 P, const float3 Ng, const float3 I,
int shader, int object, int prim, float u, float v, float t, float time)
{
+#ifdef __OSL__
+ if (kernel_osl_use(kg))
+ OSLShader::init(kg, sd);
+#endif
+
/* vectors */
sd->P = P;
sd->N = Ng;
@@ -234,6 +243,8 @@ __device void shader_setup_from_sample(KernelGlobals *kg, ShaderData *sd,
__device void shader_setup_from_displace(KernelGlobals *kg, ShaderData *sd,
int object, int prim, float u, float v)
{
+ /* Note: no OSLShader::init call here, this is done in shader_setup_from_sample! */
+
float3 P, Ng, I = make_float3(0.0f, 0.0f, 0.0f);
int shader;
@@ -252,6 +263,11 @@ __device void shader_setup_from_displace(KernelGlobals *kg, ShaderData *sd,
__device_inline void shader_setup_from_background(KernelGlobals *kg, ShaderData *sd, const Ray *ray)
{
+#ifdef __OSL__
+ if (kernel_osl_use(kg))
+ OSLShader::init(kg, sd);
+#endif
+
/* vectors */
sd->P = ray->D;
sd->N = -sd->P;
@@ -294,7 +310,8 @@ __device_inline void shader_setup_from_background(KernelGlobals *kg, ShaderData
#ifdef __MULTI_CLOSURE__
-__device_inline void _shader_bsdf_multi_eval(const ShaderData *sd, const float3 omega_in, float *pdf,
+#ifdef __OSL__
+__device_inline void _shader_bsdf_multi_eval_osl(const ShaderData *sd, const float3 omega_in, float *pdf,
int skip_bsdf, BsdfEval *bsdf_eval, float sum_pdf, float sum_sample_weight)
{
for(int i = 0; i< sd->num_closure; i++) {
@@ -305,12 +322,36 @@ __device_inline void _shader_bsdf_multi_eval(const ShaderData *sd, const float3
if(CLOSURE_IS_BSDF(sc->type)) {
float bsdf_pdf = 0.0f;
-#ifdef __OSL__
+
float3 eval = OSLShader::bsdf_eval(sd, sc, omega_in, bsdf_pdf);
-#else
- float3 eval = svm_bsdf_eval(sd, sc, omega_in, &bsdf_pdf);
+
+ if(bsdf_pdf != 0.0f) {
+ bsdf_eval_accum(bsdf_eval, sc->type, eval*sc->weight);
+ sum_pdf += bsdf_pdf*sc->sample_weight;
+ }
+
+ sum_sample_weight += sc->sample_weight;
+ }
+ }
+
+ *pdf = (sum_sample_weight > 0.0f)? sum_pdf/sum_sample_weight: 0.0f;
+}
#endif
+__device_inline void _shader_bsdf_multi_eval_svm(const ShaderData *sd, const float3 omega_in, float *pdf,
+ int skip_bsdf, BsdfEval *bsdf_eval, float sum_pdf, float sum_sample_weight)
+{
+ for(int i = 0; i< sd->num_closure; i++) {
+ if(i == skip_bsdf)
+ continue;
+
+ const ShaderClosure *sc = &sd->closure[i];
+
+ if(CLOSURE_IS_BSDF(sc->type)) {
+ float bsdf_pdf = 0.0f;
+
+ float3 eval = svm_bsdf_eval(sd, sc, omega_in, &bsdf_pdf);
+
if(bsdf_pdf != 0.0f) {
bsdf_eval_accum(bsdf_eval, sc->type, eval*sc->weight);
sum_pdf += bsdf_pdf*sc->sample_weight;
@@ -331,7 +372,12 @@ __device void shader_bsdf_eval(KernelGlobals *kg, const ShaderData *sd,
#ifdef __MULTI_CLOSURE__
bsdf_eval_init(eval, NBUILTIN_CLOSURES, make_float3(0.0f, 0.0f, 0.0f), kernel_data.film.use_light_pass);
- return _shader_bsdf_multi_eval(sd, omega_in, pdf, -1, eval, 0.0f, 0.0f);
+#ifdef __OSL__
+ if (kernel_osl_use(kg))
+ return _shader_bsdf_multi_eval_osl(sd, omega_in, pdf, -1, eval, 0.0f, 0.0f);
+ else
+#endif
+ return _shader_bsdf_multi_eval_svm(sd, omega_in, pdf, -1, eval, 0.0f, 0.0f);
#else
const ShaderClosure *sc = &sd->closure;
@@ -384,16 +430,23 @@ __device int shader_bsdf_sample(KernelGlobals *kg, const ShaderData *sd,
*pdf = 0.0f;
#ifdef __OSL__
- label = OSLShader::bsdf_sample(sd, sc, randu, randv, eval, *omega_in, *domega_in, *pdf);
-#else
- label = svm_bsdf_sample(sd, sc, randu, randv, &eval, omega_in, domega_in, pdf);
+ if (kernel_osl_use(kg))
+ label = OSLShader::bsdf_sample(sd, sc, randu, randv, eval, *omega_in, *domega_in, *pdf);
+ else
#endif
+ label = svm_bsdf_sample(sd, sc, randu, randv, &eval, omega_in, domega_in, pdf);
+
if(*pdf != 0.0f) {
bsdf_eval_init(bsdf_eval, sc->type, eval*sc->weight, kernel_data.film.use_light_pass);
if(sd->num_closure > 1) {
float sweight = sc->sample_weight;
- _shader_bsdf_multi_eval(sd, *omega_in, pdf, sampled, bsdf_eval, *pdf*sweight, sweight);
+#ifdef __OSL__
+ if (kernel_osl_use(kg))
+ _shader_bsdf_multi_eval_osl(sd, *omega_in, pdf, sampled, bsdf_eval, *pdf*sweight, sweight);
+ else
+#endif
+ _shader_bsdf_multi_eval_svm(sd, *omega_in, pdf, sampled, bsdf_eval, *pdf*sweight, sweight);
}
}
@@ -416,10 +469,12 @@ __device int shader_bsdf_sample_closure(KernelGlobals *kg, const ShaderData *sd,
*pdf = 0.0f;
#ifdef __OSL__
- label = OSLShader::bsdf_sample(sd, sc, randu, randv, eval, *omega_in, *domega_in, *pdf);
-#else
- label = svm_bsdf_sample(sd, sc, randu, randv, &eval, omega_in, domega_in, pdf);
+ if (kernel_osl_use(kg))
+ label = OSLShader::bsdf_sample(sd, sc, randu, randv, eval, *omega_in, *domega_in, *pdf);
+ else
#endif
+ label = svm_bsdf_sample(sd, sc, randu, randv, &eval, omega_in, domega_in, pdf);
+
if(*pdf != 0.0f)
bsdf_eval_init(bsdf_eval, sc->type, eval*sc->weight, kernel_data.film.use_light_pass);
@@ -539,10 +594,12 @@ __device float3 shader_emissive_eval(KernelGlobals *kg, ShaderData *sd)
if(CLOSURE_IS_EMISSION(sc->type)) {
#ifdef __OSL__
- eval += OSLShader::emissive_eval(sd, sc)*sc->weight;
-#else
- eval += svm_emissive_eval(sd, sc)*sc->weight;
+ if (kernel_osl_use(kg))
+ eval += OSLShader::emissive_eval(sd, sc)*sc->weight;
+ else
#endif
+ eval += svm_emissive_eval(sd, sc)*sc->weight;
+
}
}
#else
@@ -581,17 +638,18 @@ __device void shader_eval_surface(KernelGlobals *kg, ShaderData *sd,
float randb, int path_flag)
{
#ifdef __OSL__
- OSLShader::eval_surface(kg, sd, randb, path_flag);
-#else
-
+ if (kernel_osl_use(kg))
+ OSLShader::eval_surface(kg, sd, randb, path_flag);
+ else
+#endif
+ {
#ifdef __SVM__
- svm_eval_nodes(kg, sd, SHADER_TYPE_SURFACE, randb, path_flag);
+ svm_eval_nodes(kg, sd, SHADER_TYPE_SURFACE, randb, path_flag);
#else
- bsdf_diffuse_setup(sd, &sd->closure);
- sd->closure.weight = make_float3(0.8f, 0.8f, 0.8f);
-#endif
-
+ bsdf_diffuse_setup(sd, &sd->closure);
+ sd->closure.weight = make_float3(0.8f, 0.8f, 0.8f);
#endif
+ }
}
/* Background Evaluation */
@@ -599,35 +657,37 @@ __device void shader_eval_surface(KernelGlobals *kg, ShaderData *sd,
__device float3 shader_eval_background(KernelGlobals *kg, ShaderData *sd, int path_flag)
{
#ifdef __OSL__
- return OSLShader::eval_background(kg, sd, path_flag);
-#else
+ if (kernel_osl_use(kg))
+ return OSLShader::eval_background(kg, sd, path_flag);
+ else
+#endif
+ {
#ifdef __SVM__
- svm_eval_nodes(kg, sd, SHADER_TYPE_SURFACE, 0.0f, path_flag);
+ svm_eval_nodes(kg, sd, SHADER_TYPE_SURFACE, 0.0f, path_flag);
#ifdef __MULTI_CLOSURE__
- float3 eval = make_float3(0.0f, 0.0f, 0.0f);
+ float3 eval = make_float3(0.0f, 0.0f, 0.0f);
- for(int i = 0; i< sd->num_closure; i++) {
- const ShaderClosure *sc = &sd->closure[i];
+ for(int i = 0; i< sd->num_closure; i++) {
+ const ShaderClosure *sc = &sd->closure[i];
- if(CLOSURE_IS_BACKGROUND(sc->type))
- eval += sc->weight;
- }
+ if(CLOSURE_IS_BACKGROUND(sc->type))
+ eval += sc->weight;
+ }
- return eval;
+ return eval;
#else
- if(sd->closure.type == CLOSURE_BACKGROUND_ID)
- return sd->closure.weight;
- else
- return make_float3(0.0f, 0.0f, 0.0f);
+ if(sd->closure.type == CLOSURE_BACKGROUND_ID)
+ return sd->closure.weight;
+ else
+ return make_float3(0.0f, 0.0f, 0.0f);
#endif
#else
- return make_float3(0.8f, 0.8f, 0.8f);
-#endif
-
+ return make_float3(0.8f, 0.8f, 0.8f);
#endif
+ }
}
/* Volume */
@@ -643,10 +703,11 @@ __device float3 shader_volume_eval_phase(KernelGlobals *kg, ShaderData *sd,
if(CLOSURE_IS_VOLUME(sc->type)) {
#ifdef __OSL__
- eval += OSLShader::volume_eval_phase(sd, sc, omega_in, omega_out);
-#else
- eval += volume_eval_phase(sd, sc, omega_in, omega_out);
+ if (kernel_osl_use(kg))
+ eval += OSLShader::volume_eval_phase(sd, sc, omega_in, omega_out);
+ else
#endif
+ eval += volume_eval_phase(sd, sc, omega_in, omega_out);
}
}
@@ -663,10 +724,11 @@ __device void shader_eval_volume(KernelGlobals *kg, ShaderData *sd,
{
#ifdef __SVM__
#ifdef __OSL__
- OSLShader::eval_volume(kg, sd, randb, path_flag);
-#else
- svm_eval_nodes(kg, sd, SHADER_TYPE_VOLUME, randb, path_flag);
+ if (kernel_osl_use(kg))
+ OSLShader::eval_volume(kg, sd, randb, path_flag);
+ else
#endif
+ svm_eval_nodes(kg, sd, SHADER_TYPE_VOLUME, randb, path_flag);
#endif
}
@@ -677,10 +739,11 @@ __device void shader_eval_displacement(KernelGlobals *kg, ShaderData *sd)
/* this will modify sd->P */
#ifdef __SVM__
#ifdef __OSL__
- OSLShader::eval_displacement(kg, sd);
-#else
- svm_eval_nodes(kg, sd, SHADER_TYPE_DISPLACEMENT, 0.0f, 0);
+ if (kernel_osl_use(kg))
+ OSLShader::eval_displacement(kg, sd);
+ else
#endif
+ svm_eval_nodes(kg, sd, SHADER_TYPE_DISPLACEMENT, 0.0f, 0);
#endif
}
@@ -732,7 +795,8 @@ __device void shader_merge_closures(KernelGlobals *kg, ShaderData *sd)
__device void shader_release(KernelGlobals *kg, ShaderData *sd)
{
#ifdef __OSL__
- OSLShader::release(kg, sd);
+ if (kernel_osl_use(kg))
+ OSLShader::release(kg, sd);
#endif
}
diff --git a/intern/cycles/kernel/kernel_textures.h b/intern/cycles/kernel/kernel_textures.h
index c1b8eed3dff..4855a948c6e 100644
--- a/intern/cycles/kernel/kernel_textures.h
+++ b/intern/cycles/kernel/kernel_textures.h
@@ -66,12 +66,14 @@ KERNEL_TEX(float, texture_float, __filter_table)
/* sobol */
KERNEL_TEX(uint, texture_uint, __sobol_directions)
+/* full-float image */
+KERNEL_IMAGE_TEX(float4, texture_image_float4, __tex_image_float_000)
+KERNEL_IMAGE_TEX(float4, texture_image_float4, __tex_image_float_001)
+KERNEL_IMAGE_TEX(float4, texture_image_float4, __tex_image_float_002)
+KERNEL_IMAGE_TEX(float4, texture_image_float4, __tex_image_float_003)
+KERNEL_IMAGE_TEX(float4, texture_image_float4, __tex_image_float_004)
+
/* image */
-KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_000)
-KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_001)
-KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_002)
-KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_003)
-KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_004)
KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_005)
KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_006)
KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_007)
@@ -162,13 +164,11 @@ KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_091)
KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_092)
KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_093)
KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_094)
-
-/* full-float image */
-KERNEL_IMAGE_TEX(float4, texture_image_float4, __tex_image_float_095)
-KERNEL_IMAGE_TEX(float4, texture_image_float4, __tex_image_float_096)
-KERNEL_IMAGE_TEX(float4, texture_image_float4, __tex_image_float_097)
-KERNEL_IMAGE_TEX(float4, texture_image_float4, __tex_image_float_098)
-KERNEL_IMAGE_TEX(float4, texture_image_float4, __tex_image_float_099)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_095)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_096)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_097)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_098)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_099)
/* packed image (opencl) */
KERNEL_TEX(uchar4, texture_uchar4, __tex_image_packed)
diff --git a/intern/cycles/kernel/kernel_triangle.h b/intern/cycles/kernel/kernel_triangle.h
index 6c1ea465515..f57c59a45eb 100644
--- a/intern/cycles/kernel/kernel_triangle.h
+++ b/intern/cycles/kernel/kernel_triangle.h
@@ -16,6 +16,9 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+#include "kernel_attribute.h"
+#include "kernel_projection.h"
+
CCL_NAMESPACE_BEGIN
/* Point on triangle for Moller-Trumbore triangles */
@@ -181,26 +184,13 @@ __device float3 triangle_attribute_float3(KernelGlobals *kg, const ShaderData *s
/* motion */
-__device int triangle_find_attribute(KernelGlobals *kg, ShaderData *sd, uint id)
-{
- /* find attribute by unique id */
- uint attr_offset = sd->object*kernel_data.bvh.attributes_map_stride;
- uint4 attr_map = kernel_tex_fetch(__attributes_map, attr_offset);
-
- while(attr_map.x != id)
- attr_map = kernel_tex_fetch(__attributes_map, ++attr_offset);
-
- /* return result */
- return (attr_map.y == ATTR_ELEMENT_NONE) ? (int)ATTR_STD_NOT_FOUND : attr_map.z;
-}
-
__device float4 triangle_motion_vector(KernelGlobals *kg, ShaderData *sd)
{
float3 motion_pre = sd->P, motion_post = sd->P;
/* deformation motion */
- int offset_pre = triangle_find_attribute(kg, sd, ATTR_STD_MOTION_PRE);
- int offset_post = triangle_find_attribute(kg, sd, ATTR_STD_MOTION_POST);
+ int offset_pre = find_attribute(kg, sd, ATTR_STD_MOTION_PRE);
+ int offset_post = find_attribute(kg, sd, ATTR_STD_MOTION_POST);
if(offset_pre != ATTR_STD_NOT_FOUND)
motion_pre = triangle_attribute_float3(kg, sd, ATTR_ELEMENT_VERTEX, offset_pre, NULL, NULL);
@@ -259,7 +249,7 @@ __device float4 triangle_motion_vector(KernelGlobals *kg, ShaderData *sd)
__device float3 triangle_uv(KernelGlobals *kg, ShaderData *sd)
{
- int offset_uv = triangle_find_attribute(kg, sd, ATTR_STD_UV);
+ int offset_uv = find_attribute(kg, sd, ATTR_STD_UV);
if(offset_uv == ATTR_STD_NOT_FOUND)
return make_float3(0.0f, 0.0f, 0.0f);
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index d204b114b8e..48e271a9f3f 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -29,11 +29,11 @@
CCL_NAMESPACE_BEGIN
/* constants */
-#define OBJECT_SIZE 16
+#define OBJECT_SIZE 18
#define LIGHT_SIZE 4
#define FILTER_TABLE_SIZE 256
#define RAMP_TABLE_SIZE 256
-#define PARTICLE_SIZE 1
+#define PARTICLE_SIZE 5
#define TIME_INVALID FLT_MAX
/* device capabilities */
@@ -172,6 +172,8 @@ enum PathRayFlag {
PATH_RAY_ALL = (1|2|4|8|16|32|64|128|256|512),
+ /* this gives collisions with localview bits
+ * see: CYCLES_LOCAL_LAYER_HACK(), grr - Campbell */
PATH_RAY_LAYER_SHIFT = (32-20)
};
@@ -350,22 +352,6 @@ typedef enum AttributeElement {
ATTR_ELEMENT_NONE
} AttributeElement;
-typedef enum AttributeStandard {
- ATTR_STD_NONE = 0,
- ATTR_STD_VERTEX_NORMAL,
- ATTR_STD_FACE_NORMAL,
- ATTR_STD_UV,
- ATTR_STD_GENERATED,
- ATTR_STD_POSITION_UNDEFORMED,
- ATTR_STD_POSITION_UNDISPLACED,
- ATTR_STD_MOTION_PRE,
- ATTR_STD_MOTION_POST,
- ATTR_STD_PARTICLE,
- ATTR_STD_NUM,
-
- ATTR_STD_NOT_FOUND = ~0
-} AttributeStandard;
-
/* Closure data */
#define MAX_CLOSURE 8
@@ -380,10 +366,9 @@ typedef struct ShaderClosure {
#ifdef __OSL__
void *prim;
-#else
+#endif
float data0;
float data1;
-#endif
} ShaderClosure;
diff --git a/intern/cycles/kernel/osl/CMakeLists.txt b/intern/cycles/kernel/osl/CMakeLists.txt
index 13b2a39d7d0..65d7a7ad53b 100644
--- a/intern/cycles/kernel/osl/CMakeLists.txt
+++ b/intern/cycles/kernel/osl/CMakeLists.txt
@@ -7,12 +7,15 @@ set(INC
../../util
../../device
)
+set(INC_SYS
+)
set(SRC
background.cpp
bsdf_ashikhmin_velvet.cpp
bsdf_diffuse.cpp
bsdf_oren_nayar.cpp
+ bsdf_phong.cpp
bsdf_microfacet.cpp
bsdf_reflection.cpp
bsdf_refraction.cpp
@@ -38,6 +41,7 @@ set(HEADER_SRC
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}")
include_directories(${INC})
+include_directories(SYSTEM ${INC_SYS})
add_library(cycles_kernel_osl ${SRC} ${HEADER_SRC})
diff --git a/intern/cycles/kernel/osl/background.cpp b/intern/cycles/kernel/osl/background.cpp
index 81812a46b6c..6290eed0af8 100644
--- a/intern/cycles/kernel/osl/background.cpp
+++ b/intern/cycles/kernel/osl/background.cpp
@@ -85,16 +85,25 @@ public:
}
};
-ClosureParam closure_background_params[] = {
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(GenericBackgroundClosure)
-};
+
+ClosureParam *closure_background_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(GenericBackgroundClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(closure_background_prepare, GenericBackgroundClosure)
-ClosureParam closure_holdout_params[] = {
- CLOSURE_FINISH_PARAM(HoldoutClosure)
-};
+ClosureParam *closure_holdout_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_FINISH_PARAM(HoldoutClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(closure_holdout_prepare, HoldoutClosure)
diff --git a/intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp b/intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp
index cb6be6959f5..a1904d7f5d7 100644
--- a/intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp
+++ b/intern/cycles/kernel/osl/bsdf_ashikhmin_velvet.cpp
@@ -90,8 +90,11 @@ public:
float cosNH = m_N.dot(H);
float cosHO = fabsf(omega_out.dot(H));
+ if(!(fabsf(cosNH) < 1.0f-1e-5f && cosHO > 1e-5f))
+ return Color3(0, 0, 0);
+
float cosNHdivHO = cosNH / cosHO;
- cosNHdivHO = max(cosNHdivHO, 0.00001f);
+ cosNHdivHO = max(cosNHdivHO, 1e-5f);
float fac1 = 2 * fabsf(cosNHdivHO * cosNO);
float fac2 = 2 * fabsf(cosNHdivHO * cosNI);
@@ -134,28 +137,32 @@ public:
float cosNH = m_N.dot(H);
float cosHO = fabsf(omega_out.dot(H));
- float cosNHdivHO = cosNH / cosHO;
- cosNHdivHO = max(cosNHdivHO, 0.00001f);
+ if(fabsf(cosNO) > 1e-5f && fabsf(cosNH) < 1.0f-1e-5f && cosHO > 1e-5f) {
+ float cosNHdivHO = cosNH / cosHO;
+ cosNHdivHO = max(cosNHdivHO, 1e-5f);
- float fac1 = 2 * fabsf(cosNHdivHO * cosNO);
- float fac2 = 2 * fabsf(cosNHdivHO * cosNI);
+ float fac1 = 2 * fabsf(cosNHdivHO * cosNO);
+ float fac2 = 2 * fabsf(cosNHdivHO * cosNI);
- float sinNH2 = 1 - cosNH * cosNH;
- float sinNH4 = sinNH2 * sinNH2;
- float cotangent2 = (cosNH * cosNH) / sinNH2;
+ float sinNH2 = 1 - cosNH * cosNH;
+ float sinNH4 = sinNH2 * sinNH2;
+ float cotangent2 = (cosNH * cosNH) / sinNH2;
- float D = expf(-cotangent2 * m_invsigma2) * m_invsigma2 * float(M_1_PI) / sinNH4;
- float G = min(1.0f, min(fac1, fac2)); // TODO: derive G from D analytically
+ float D = expf(-cotangent2 * m_invsigma2) * m_invsigma2 * float(M_1_PI) / sinNH4;
+ float G = min(1.0f, min(fac1, fac2)); // TODO: derive G from D analytically
- float power = 0.25f * (D * G) / cosNO;
+ float power = 0.25f * (D * G) / cosNO;
- eval.setValue(power, power, power);
+ eval.setValue(power, power, power);
- // TODO: find a better approximation for the retroreflective bounce
- domega_in_dx = (2 * m_N.dot(domega_out_dx)) * m_N - domega_out_dx;
- domega_in_dy = (2 * m_N.dot(domega_out_dy)) * m_N - domega_out_dy;
- domega_in_dx *= 125;
- domega_in_dy *= 125;
+ // TODO: find a better approximation for the retroreflective bounce
+ domega_in_dx = (2 * m_N.dot(domega_out_dx)) * m_N - domega_out_dx;
+ domega_in_dy = (2 * m_N.dot(domega_out_dy)) * m_N - domega_out_dy;
+ domega_in_dx *= 125;
+ domega_in_dy *= 125;
+ }
+ else
+ pdf = 0;
}
else
pdf = 0;
@@ -166,12 +173,16 @@ public:
-ClosureParam bsdf_ashikhmin_velvet_params[] = {
- CLOSURE_VECTOR_PARAM(AshikhminVelvetClosure, m_N),
- CLOSURE_FLOAT_PARAM(AshikhminVelvetClosure, m_sigma),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(AshikhminVelvetClosure)
-};
+ClosureParam *bsdf_ashikhmin_velvet_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(AshikhminVelvetClosure, m_N),
+ CLOSURE_FLOAT_PARAM(AshikhminVelvetClosure, m_sigma),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(AshikhminVelvetClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(bsdf_ashikhmin_velvet_prepare, AshikhminVelvetClosure)
diff --git a/intern/cycles/kernel/osl/bsdf_diffuse.cpp b/intern/cycles/kernel/osl/bsdf_diffuse.cpp
index 582ac01d959..1e06d3b583f 100644
--- a/intern/cycles/kernel/osl/bsdf_diffuse.cpp
+++ b/intern/cycles/kernel/osl/bsdf_diffuse.cpp
@@ -168,17 +168,25 @@ public:
}
};
-ClosureParam bsdf_diffuse_params[] = {
- CLOSURE_VECTOR_PARAM(DiffuseClosure, m_N),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(DiffuseClosure)
-};
-
-ClosureParam bsdf_translucent_params[] = {
- CLOSURE_VECTOR_PARAM(TranslucentClosure, m_N),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(TranslucentClosure)
-};
+ClosureParam *bsdf_diffuse_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(DiffuseClosure, m_N),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(DiffuseClosure)
+ };
+ return params;
+}
+
+ClosureParam *bsdf_translucent_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(TranslucentClosure, m_N),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(TranslucentClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(bsdf_diffuse_prepare, DiffuseClosure)
CLOSURE_PREPARE(bsdf_translucent_prepare, TranslucentClosure)
diff --git a/intern/cycles/kernel/osl/bsdf_microfacet.cpp b/intern/cycles/kernel/osl/bsdf_microfacet.cpp
index 09730d8c3e1..8446dbbe982 100644
--- a/intern/cycles/kernel/osl/bsdf_microfacet.cpp
+++ b/intern/cycles/kernel/osl/bsdf_microfacet.cpp
@@ -503,35 +503,51 @@ public:
-ClosureParam bsdf_microfacet_ggx_params[] = {
- CLOSURE_VECTOR_PARAM(MicrofacetGGXClosure<0>, m_N),
- CLOSURE_FLOAT_PARAM(MicrofacetGGXClosure<0>, m_ag),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(MicrofacetGGXClosure<0>)
-};
-
-ClosureParam bsdf_microfacet_ggx_refraction_params[] = {
- CLOSURE_VECTOR_PARAM(MicrofacetGGXClosure<1>, m_N),
- CLOSURE_FLOAT_PARAM(MicrofacetGGXClosure<1>, m_ag),
- CLOSURE_FLOAT_PARAM(MicrofacetGGXClosure<1>, m_eta),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(MicrofacetGGXClosure<1>)
-};
-
-ClosureParam bsdf_microfacet_beckmann_params[] = {
- CLOSURE_VECTOR_PARAM(MicrofacetBeckmannClosure<0>, m_N),
- CLOSURE_FLOAT_PARAM(MicrofacetBeckmannClosure<0>, m_ab),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(MicrofacetBeckmannClosure<0>)
-};
-
-ClosureParam bsdf_microfacet_beckmann_refraction_params[] = {
- CLOSURE_VECTOR_PARAM(MicrofacetBeckmannClosure<1>, m_N),
- CLOSURE_FLOAT_PARAM(MicrofacetBeckmannClosure<1>, m_ab),
- CLOSURE_FLOAT_PARAM(MicrofacetBeckmannClosure<1>, m_eta),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(MicrofacetBeckmannClosure<1>)
-};
+ClosureParam *bsdf_microfacet_ggx_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(MicrofacetGGXClosure<0>, m_N),
+ CLOSURE_FLOAT_PARAM(MicrofacetGGXClosure<0>, m_ag),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(MicrofacetGGXClosure<0>)
+ };
+ return params;
+}
+
+ClosureParam *bsdf_microfacet_ggx_refraction_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(MicrofacetGGXClosure<1>, m_N),
+ CLOSURE_FLOAT_PARAM(MicrofacetGGXClosure<1>, m_ag),
+ CLOSURE_FLOAT_PARAM(MicrofacetGGXClosure<1>, m_eta),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(MicrofacetGGXClosure<1>)
+ };
+ return params;
+}
+
+ClosureParam *bsdf_microfacet_beckmann_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(MicrofacetBeckmannClosure<0>, m_N),
+ CLOSURE_FLOAT_PARAM(MicrofacetBeckmannClosure<0>, m_ab),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(MicrofacetBeckmannClosure<0>)
+ };
+ return params;
+}
+
+ClosureParam *bsdf_microfacet_beckmann_refraction_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(MicrofacetBeckmannClosure<1>, m_N),
+ CLOSURE_FLOAT_PARAM(MicrofacetBeckmannClosure<1>, m_ab),
+ CLOSURE_FLOAT_PARAM(MicrofacetBeckmannClosure<1>, m_eta),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(MicrofacetBeckmannClosure<1>)
+ };
+ return params;
+}
CLOSURE_PREPARE(bsdf_microfacet_ggx_prepare, MicrofacetGGXClosure<0>)
CLOSURE_PREPARE(bsdf_microfacet_ggx_refraction_prepare, MicrofacetGGXClosure<1>)
diff --git a/intern/cycles/kernel/osl/bsdf_oren_nayar.cpp b/intern/cycles/kernel/osl/bsdf_oren_nayar.cpp
index 83d0e583695..2a00100c256 100644
--- a/intern/cycles/kernel/osl/bsdf_oren_nayar.cpp
+++ b/intern/cycles/kernel/osl/bsdf_oren_nayar.cpp
@@ -125,12 +125,16 @@ private:
}
};
-ClosureParam bsdf_oren_nayar_params[] = {
- CLOSURE_VECTOR_PARAM(OrenNayarClosure, m_N),
- CLOSURE_FLOAT_PARAM(OrenNayarClosure, m_sigma),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(OrenNayarClosure)
-};
+ClosureParam *bsdf_oren_nayar_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(OrenNayarClosure, m_N),
+ CLOSURE_FLOAT_PARAM(OrenNayarClosure, m_sigma),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(OrenNayarClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(bsdf_oren_nayar_prepare, OrenNayarClosure)
diff --git a/intern/cycles/kernel/osl/bsdf_phong.cpp b/intern/cycles/kernel/osl/bsdf_phong.cpp
new file mode 100644
index 00000000000..1f430cc6f5d
--- /dev/null
+++ b/intern/cycles/kernel/osl/bsdf_phong.cpp
@@ -0,0 +1,287 @@
+/*
+ * Adapted from Open Shading Language with this license:
+ *
+ * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al.
+ * All Rights Reserved.
+ *
+ * Modifications Copyright 2012, Blender Foundation.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Sony Pictures Imageworks nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <OpenImageIO/fmath.h>
+
+#include <OSL/genclosure.h>
+#include "osl_closures.h"
+#include "util_math.h"
+
+CCL_NAMESPACE_BEGIN
+
+using namespace OSL;
+
+// vanilla phong - leaks energy at grazing angles
+// see Global Illumination Compendium entry (66)
+class PhongClosure : public BSDFClosure {
+public:
+ Vec3 m_N;
+ float m_exponent;
+ PhongClosure() : BSDFClosure(Labels::GLOSSY) { }
+
+ void setup() {};
+
+ bool mergeable (const ClosurePrimitive *other) const {
+ const PhongClosure *comp = (const PhongClosure *)other;
+ return m_N == comp->m_N && m_exponent == comp->m_exponent &&
+ BSDFClosure::mergeable(other);
+ }
+
+ size_t memsize () const { return sizeof(*this); }
+
+ const char *name () const { return "phong"; }
+
+ void print_on (std::ostream &out) const {
+ out << name() << " ((";
+ out << m_N[0] << ", " << m_N[1] << ", " << m_N[2] << "), ";
+ out << m_exponent << ")";
+ }
+
+ float albedo (const Vec3 &omega_out) const
+ {
+ return 1.0f;
+ }
+
+ Color3 eval_reflect (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const
+ {
+ float cosNI = m_N.dot(omega_in);
+ float cosNO = m_N.dot(omega_out);
+ if (cosNI > 0 && cosNO > 0) {
+ // reflect the view vector
+ Vec3 R = (2 * cosNO) * m_N - omega_out;
+ float cosRI = R.dot(omega_in);
+ if (cosRI > 0) {
+ float common = 0.5f * (float) M_1_PI * powf(cosRI, m_exponent);
+ float out = cosNI * (m_exponent + 2) * common;
+ pdf = (m_exponent + 1) * common;
+ return Color3 (out, out, out);
+ }
+ }
+ return Color3 (0, 0, 0);
+ }
+
+ Color3 eval_transmit (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const
+ {
+ return Color3 (0, 0, 0);
+ }
+
+ ustring sample (const Vec3 &Ng,
+ const Vec3 &omega_out, const Vec3 &domega_out_dx, const Vec3 &domega_out_dy,
+ float randu, float randv,
+ Vec3 &omega_in, Vec3 &domega_in_dx, Vec3 &domega_in_dy,
+ float &pdf, Color3 &eval) const
+ {
+ float cosNO = m_N.dot(omega_out);
+ if (cosNO > 0) {
+ // reflect the view vector
+ Vec3 R = (2 * cosNO) * m_N - omega_out;
+ domega_in_dx = (2 * m_N.dot(domega_out_dx)) * m_N - domega_out_dx;
+ domega_in_dy = (2 * m_N.dot(domega_out_dy)) * m_N - domega_out_dy;
+ Vec3 T, B;
+ make_orthonormals (R, T, B);
+ float phi = 2 * (float) M_PI * randu;
+ float cosTheta = powf(randv, 1 / (m_exponent + 1));
+ float sinTheta2 = 1 - cosTheta * cosTheta;
+ float sinTheta = sinTheta2 > 0 ? sqrtf(sinTheta2) : 0;
+ omega_in = (cosf(phi) * sinTheta) * T +
+ (sinf(phi) * sinTheta) * B +
+ ( cosTheta) * R;
+ if (Ng.dot(omega_in) > 0)
+ {
+ // common terms for pdf and eval
+ float cosNI = m_N.dot(omega_in);
+ // make sure the direction we chose is still in the right hemisphere
+ if (cosNI > 0)
+ {
+ float common = 0.5f * (float) M_1_PI * powf(cosTheta, m_exponent);
+ pdf = (m_exponent + 1) * common;
+ float out = cosNI * (m_exponent + 2) * common;
+ eval.setValue(out, out, out);
+ // Since there is some blur to this reflection, make the
+ // derivatives a bit bigger. In theory this varies with the
+ // exponent but the exact relationship is complex and
+ // requires more ops than are practical.
+ domega_in_dx *= 10;
+ domega_in_dy *= 10;
+ }
+ }
+ }
+ return Labels::REFLECT;
+ }
+};
+
+
+class PhongRampClosure : public BSDFClosure {
+public:
+ static const int MAXCOLORS = 8;
+ Vec3 m_N;
+ float m_exponent;
+ Color3 m_colors[MAXCOLORS];
+ PhongRampClosure() : BSDFClosure(Labels::GLOSSY) { }
+
+ void setup() {};
+
+ bool mergeable (const ClosurePrimitive *other) const {
+ const PhongRampClosure *comp = (const PhongRampClosure *)other;
+ if (! (m_N == comp->m_N && m_exponent == comp->m_exponent &&
+ BSDFClosure::mergeable(other)))
+ return false;
+ for (int i = 0; i < MAXCOLORS; ++i)
+ if (m_colors[i] != comp->m_colors[i])
+ return false;
+ return true;
+ }
+
+ size_t memsize () const { return sizeof(*this); }
+
+ const char *name () const { return "phong_ramp"; }
+
+ void print_on (std::ostream &out) const {
+ out << name() << " ((";
+ out << m_N[0] << ", " << m_N[1] << ", " << m_N[2] << "), ";
+ out << m_exponent << ")";
+ }
+
+ Color3 get_color (float pos) const
+ {
+ float npos = pos * (float)(MAXCOLORS - 1);
+ int ipos = (int)npos;
+ if (ipos >= (MAXCOLORS - 1))
+ return m_colors[MAXCOLORS - 1];
+ float offset = npos - (float)ipos;
+ return m_colors[ipos] * (1.0f - offset) + m_colors[ipos+1] * offset;
+ }
+
+ float albedo (const Vec3 &omega_out) const
+ {
+ return 1.0f;
+ }
+
+ Color3 eval_reflect (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const
+ {
+ float cosNI = m_N.dot(omega_in);
+ float cosNO = m_N.dot(omega_out);
+ if (cosNI > 0 && cosNO > 0) {
+ // reflect the view vector
+ Vec3 R = (2 * cosNO) * m_N - omega_out;
+ float cosRI = R.dot(omega_in);
+ if (cosRI > 0) {
+ float cosp = powf(cosRI, m_exponent);
+ float common = 0.5f * (float) M_1_PI * cosp;
+ float out = cosNI * (m_exponent + 2) * common;
+ pdf = (m_exponent + 1) * common;
+ return get_color(cosp) * out;
+ }
+ }
+ return Color3 (0, 0, 0);
+ }
+
+ Color3 eval_transmit (const Vec3 &omega_out, const Vec3 &omega_in, float& pdf) const
+ {
+ return Color3 (0, 0, 0);
+ }
+
+ ustring sample (const Vec3 &Ng,
+ const Vec3 &omega_out, const Vec3 &domega_out_dx, const Vec3 &domega_out_dy,
+ float randu, float randv,
+ Vec3 &omega_in, Vec3 &domega_in_dx, Vec3 &domega_in_dy,
+ float &pdf, Color3 &eval) const
+ {
+ float cosNO = m_N.dot(omega_out);
+ if (cosNO > 0) {
+ // reflect the view vector
+ Vec3 R = (2 * cosNO) * m_N - omega_out;
+ domega_in_dx = (2 * m_N.dot(domega_out_dx)) * m_N - domega_out_dx;
+ domega_in_dy = (2 * m_N.dot(domega_out_dy)) * m_N - domega_out_dy;
+ Vec3 T, B;
+ make_orthonormals (R, T, B);
+ float phi = 2 * (float) M_PI * randu;
+ float cosTheta = powf(randv, 1 / (m_exponent + 1));
+ float sinTheta2 = 1 - cosTheta * cosTheta;
+ float sinTheta = sinTheta2 > 0 ? sqrtf(sinTheta2) : 0;
+ omega_in = (cosf(phi) * sinTheta) * T +
+ (sinf(phi) * sinTheta) * B +
+ ( cosTheta) * R;
+ if (Ng.dot(omega_in) > 0)
+ {
+ // common terms for pdf and eval
+ float cosNI = m_N.dot(omega_in);
+ // make sure the direction we chose is still in the right hemisphere
+ if (cosNI > 0)
+ {
+ float cosp = powf(cosTheta, m_exponent);
+ float common = 0.5f * (float) M_1_PI * cosp;
+ pdf = (m_exponent + 1) * common;
+ float out = cosNI * (m_exponent + 2) * common;
+ eval = get_color(cosp) * out;
+ // Since there is some blur to this reflection, make the
+ // derivatives a bit bigger. In theory this varies with the
+ // exponent but the exact relationship is complex and
+ // requires more ops than are practical.
+ domega_in_dx *= 10;
+ domega_in_dy *= 10;
+ }
+ }
+ }
+ return Labels::REFLECT;
+ }
+};
+
+
+
+ClosureParam *bsdf_phong_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(PhongClosure, m_N),
+ CLOSURE_FLOAT_PARAM (PhongClosure, m_exponent),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(PhongClosure)
+ };
+ return params;
+}
+
+ClosureParam *bsdf_phong_ramp_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM (PhongRampClosure, m_N),
+ CLOSURE_FLOAT_PARAM (PhongRampClosure, m_exponent),
+ CLOSURE_COLOR_ARRAY_PARAM(PhongRampClosure, m_colors, PhongRampClosure::MAXCOLORS),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM (PhongRampClosure)
+ };
+ return params;
+}
+
+CLOSURE_PREPARE(bsdf_phong_prepare, PhongClosure)
+CLOSURE_PREPARE(bsdf_phong_ramp_prepare, PhongRampClosure)
+
+CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/osl/bsdf_reflection.cpp b/intern/cycles/kernel/osl/bsdf_reflection.cpp
index 7041b4ced6f..1b85ec146d3 100644
--- a/intern/cycles/kernel/osl/bsdf_reflection.cpp
+++ b/intern/cycles/kernel/osl/bsdf_reflection.cpp
@@ -97,11 +97,15 @@ public:
}
};
-ClosureParam bsdf_reflection_params[] = {
- CLOSURE_VECTOR_PARAM(ReflectionClosure, m_N),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(ReflectionClosure)
-};
+ClosureParam *bsdf_reflection_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(ReflectionClosure, m_N),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(ReflectionClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(bsdf_reflection_prepare, ReflectionClosure)
diff --git a/intern/cycles/kernel/osl/bsdf_refraction.cpp b/intern/cycles/kernel/osl/bsdf_refraction.cpp
index f56ad7b127c..76ee53f7929 100644
--- a/intern/cycles/kernel/osl/bsdf_refraction.cpp
+++ b/intern/cycles/kernel/osl/bsdf_refraction.cpp
@@ -108,12 +108,16 @@ public:
}
};
-ClosureParam bsdf_refraction_params[] = {
- CLOSURE_VECTOR_PARAM(RefractionClosure, m_N),
- CLOSURE_FLOAT_PARAM(RefractionClosure, m_eta),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(RefractionClosure)
-};
+ClosureParam *bsdf_refraction_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(RefractionClosure, m_N),
+ CLOSURE_FLOAT_PARAM(RefractionClosure, m_eta),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(RefractionClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(bsdf_refraction_prepare, RefractionClosure)
diff --git a/intern/cycles/kernel/osl/bsdf_transparent.cpp b/intern/cycles/kernel/osl/bsdf_transparent.cpp
index acde92530a2..29cef8e192f 100644
--- a/intern/cycles/kernel/osl/bsdf_transparent.cpp
+++ b/intern/cycles/kernel/osl/bsdf_transparent.cpp
@@ -87,10 +87,14 @@ public:
-ClosureParam bsdf_transparent_params[] = {
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(TransparentClosure)
-};
+ClosureParam *bsdf_transparent_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(TransparentClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(bsdf_transparent_prepare, TransparentClosure)
diff --git a/intern/cycles/kernel/osl/bsdf_ward.cpp b/intern/cycles/kernel/osl/bsdf_ward.cpp
index 4aacbc4ffc3..9d8d2fc4b76 100644
--- a/intern/cycles/kernel/osl/bsdf_ward.cpp
+++ b/intern/cycles/kernel/osl/bsdf_ward.cpp
@@ -211,14 +211,18 @@ public:
-ClosureParam bsdf_ward_params[] = {
- CLOSURE_VECTOR_PARAM(WardClosure, m_N),
- CLOSURE_VECTOR_PARAM(WardClosure, m_T),
- CLOSURE_FLOAT_PARAM(WardClosure, m_ax),
- CLOSURE_FLOAT_PARAM(WardClosure, m_ay),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(WardClosure)
-};
+ClosureParam *bsdf_ward_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(WardClosure, m_N),
+ CLOSURE_VECTOR_PARAM(WardClosure, m_T),
+ CLOSURE_FLOAT_PARAM(WardClosure, m_ax),
+ CLOSURE_FLOAT_PARAM(WardClosure, m_ay),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(WardClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(bsdf_ward_prepare, WardClosure)
diff --git a/intern/cycles/kernel/osl/bsdf_westin.cpp b/intern/cycles/kernel/osl/bsdf_westin.cpp
index a476e8045f7..6716376ad3e 100644
--- a/intern/cycles/kernel/osl/bsdf_westin.cpp
+++ b/intern/cycles/kernel/osl/bsdf_westin.cpp
@@ -222,19 +222,27 @@ public:
-ClosureParam bsdf_westin_backscatter_params[] = {
- CLOSURE_VECTOR_PARAM(WestinBackscatterClosure, m_N),
- CLOSURE_FLOAT_PARAM(WestinBackscatterClosure, m_roughness),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(WestinBackscatterClosure)
-};
-
-ClosureParam bsdf_westin_sheen_params[] = {
- CLOSURE_VECTOR_PARAM(WestinSheenClosure, m_N),
- CLOSURE_FLOAT_PARAM(WestinSheenClosure, m_edginess),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(WestinSheenClosure)
-};
+ClosureParam *bsdf_westin_backscatter_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(WestinBackscatterClosure, m_N),
+ CLOSURE_FLOAT_PARAM(WestinBackscatterClosure, m_roughness),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(WestinBackscatterClosure)
+ };
+ return params;
+}
+
+ClosureParam *bsdf_westin_sheen_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_VECTOR_PARAM(WestinSheenClosure, m_N),
+ CLOSURE_FLOAT_PARAM(WestinSheenClosure, m_edginess),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(WestinSheenClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(bsdf_westin_backscatter_prepare, WestinBackscatterClosure)
CLOSURE_PREPARE(bsdf_westin_sheen_prepare, WestinSheenClosure)
diff --git a/intern/cycles/kernel/osl/bssrdf.cpp b/intern/cycles/kernel/osl/bssrdf.cpp
index b195cf513cd..889e8a54796 100644
--- a/intern/cycles/kernel/osl/bssrdf.cpp
+++ b/intern/cycles/kernel/osl/bssrdf.cpp
@@ -94,11 +94,15 @@ public:
-ClosureParam closure_bssrdf_cubic_params[] = {
- CLOSURE_COLOR_PARAM(BSSRDFCubicClosure, m_radius),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(BSSRDFCubicClosure)
-};
+ClosureParam *closure_bssrdf_cubic_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_COLOR_PARAM(BSSRDFCubicClosure, m_radius),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(BSSRDFCubicClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(closure_bssrdf_cubic_prepare, BSSRDFCubicClosure)
diff --git a/intern/cycles/kernel/osl/debug.cpp b/intern/cycles/kernel/osl/debug.cpp
index 768a9100e8a..ee5fb30371a 100644
--- a/intern/cycles/kernel/osl/debug.cpp
+++ b/intern/cycles/kernel/osl/debug.cpp
@@ -69,11 +69,15 @@ public:
};
-ClosureParam closure_debug_params[] = {
- CLOSURE_STRING_PARAM(DebugClosure, m_tag),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(DebugClosure)
-};
+ClosureParam *closure_debug_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_STRING_PARAM(DebugClosure, m_tag),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(DebugClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(closure_debug_prepare, DebugClosure)
diff --git a/intern/cycles/kernel/osl/emissive.cpp b/intern/cycles/kernel/osl/emissive.cpp
index 0a582c3f558..3ee57cbe6b6 100644
--- a/intern/cycles/kernel/osl/emissive.cpp
+++ b/intern/cycles/kernel/osl/emissive.cpp
@@ -97,10 +97,14 @@ public:
-ClosureParam closure_emission_params[] = {
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(GenericEmissiveClosure)
-};
+ClosureParam *closure_emission_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(GenericEmissiveClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(closure_emission_prepare, GenericEmissiveClosure)
diff --git a/intern/cycles/kernel/osl/nodes/CMakeLists.txt b/intern/cycles/kernel/osl/nodes/CMakeLists.txt
index 5a645919358..541076f84c9 100644
--- a/intern/cycles/kernel/osl/nodes/CMakeLists.txt
+++ b/intern/cycles/kernel/osl/nodes/CMakeLists.txt
@@ -5,9 +5,11 @@ set(SRC_OSL
node_add_closure.osl
node_attribute.osl
node_background.osl
+ node_brick_texture.osl
node_bump.osl
node_camera.osl
node_checker_texture.osl
+ node_combine_rgb.osl
node_convert_from_color.osl
node_convert_from_float.osl
node_convert_from_normal.osl
@@ -23,6 +25,7 @@ set(SRC_OSL
node_geometry.osl
node_glass_bsdf.osl
node_glossy_bsdf.osl
+ node_holdout.osl
node_hsv.osl
node_image_texture.osl
node_invert.osl
@@ -34,12 +37,14 @@ set(SRC_OSL
node_mix_closure.osl
node_musgrave_texture.osl
node_normal.osl
- node_blend_weight_texture.osl
node_noise_texture.osl
+ node_object_info.osl
node_output_displacement.osl
node_output_surface.osl
node_output_volume.osl
- node_sepcomb_rgb.osl
+ node_particle_info.osl
+ node_rgb_ramp.osl
+ node_separate_rgb.osl
node_sky_texture.osl
node_texture_coordinate.osl
node_translucent_bsdf.osl
@@ -57,6 +62,7 @@ set(SRC_OSL_HEADERS
node_color.h
node_fresnel.h
stdosl.h
+ oslutil.h
)
set(SRC_OSO
@@ -82,4 +88,5 @@ endforeach()
add_custom_target(shader ALL DEPENDS ${SRC_OSO} ${SRC_OSL_HEADERS})
-delayed_install(${CMAKE_CURRENT_SOURCE_DIR} "${SRC_OSO}" ${CYCLES_INSTALL_PATH}/shader)
+# CMAKE_CURRENT_SOURCE_DIR is already included in OSO paths
+delayed_install("" "${SRC_OSO}" ${CYCLES_INSTALL_PATH}/shader)
diff --git a/intern/cycles/kernel/osl/nodes/node_brick_texture.osl b/intern/cycles/kernel/osl/nodes/node_brick_texture.osl
new file mode 100644
index 00000000000..4daceb4018e
--- /dev/null
+++ b/intern/cycles/kernel/osl/nodes/node_brick_texture.osl
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "stdosl.h"
+#include "node_texture.h"
+
+/* Brick */
+
+float brick_noise(int n) /* fast integer noise */
+{
+ int nn;
+ n = (n >> 13) ^ n;
+ nn = (n * (n * n * 60493 + 19990303) + 1376312589) & 2147483647;
+ return 0.5 * ((float)nn / 1073741824.0);
+}
+
+float brick(point p, float mortar_size, float bias,
+ float BrickWidth, float row_height, float offset_amount, int offset_frequency,
+ float squash_amount, int squash_frequency, float tint)
+{
+ int bricknum, rownum;
+ float offset = 0.0;
+ float brick_width = BrickWidth;
+ float x, y;
+
+ rownum = (int)floor(p[1] / row_height);
+
+ if(offset_frequency && squash_frequency) {
+ brick_width *= ((int)(rownum) % squash_frequency ) ? 1.0 : squash_amount; /* squash */
+ offset = ((int)(rownum) % offset_frequency ) ? 0 : (brick_width*offset_amount); /* offset */
+ }
+
+ bricknum = (int)floor((p[0]+offset) / brick_width);
+
+ x = (p[0]+offset) - brick_width*bricknum;
+ y = p[1] - row_height*rownum;
+
+ tint = clamp((brick_noise((rownum << 16) + (bricknum & 65535)) + bias), 0.0, 1.0);
+
+ return (x < mortar_size || y < mortar_size ||
+ x > (brick_width - mortar_size) ||
+ y > (row_height - mortar_size)) ? 1.0 : 0.0;
+}
+
+shader node_brick_texture(
+ float Offset = 0.5,
+ int OffsetFrequency = 2,
+ float Squash = 1.0,
+ int SquashFrequency = 1,
+ point Vector = P,
+ color Color1 = color(0.2, 0.2, 0.2),
+ color Color2 = color(0.8, 0.8, 0.8),
+ color Mortar = color(0.0, 0.0, 0.0),
+ float Scale = 5.0,
+ float MortarSize = 0.02,
+ float Bias = 0.0,
+ float BrickWidth = 0.5,
+ float RowHeight = 0.25,
+ output float Fac = 0.0,
+ output color Color = color(0.2, 0.2, 0.2))
+{
+ float tint = 0.0;
+ color Col = Color1;
+
+ Fac = brick(Vector*Scale, MortarSize, Bias, BrickWidth, RowHeight,
+ Offset, OffsetFrequency, Squash, SquashFrequency, tint);
+
+ if(Fac != 1.0) {
+ float facm = 1.0 - tint;
+
+ Col[0] = facm * (Color1[0]) + tint * Color2[0];
+ Col[1] = facm * (Color1[1]) + tint * Color2[1];
+ Col[2] = facm * (Color1[2]) + tint * Color2[2];
+ }
+
+ Color = (Fac == 1.0) ? Mortar: Col;
+
+}
+
diff --git a/intern/cycles/kernel/osl/nodes/node_brightness.osl b/intern/cycles/kernel/osl/nodes/node_brightness.osl
index a93ff06d443..4f19a20f736 100644
--- a/intern/cycles/kernel/osl/nodes/node_brightness.osl
+++ b/intern/cycles/kernel/osl/nodes/node_brightness.osl
@@ -20,15 +20,16 @@
shader node_brightness(
color ColorIn = color(0.8, 0.8, 0.8),
- float Bright = 0.0,
+ float Brightness = 0.0,
float Contrast = 0.0,
- output ColorOut = color(0.8, 0.8, 0.8)
+ output color ColorOut = color(0.8, 0.8, 0.8))
{
float delta = Contrast * (1.0/200.0);
float a = 1.0 - delta * 2.0;
float b;
- Bright *= 1.0/100.0;
+ /* input value is a percentage */
+ float bright_factor = Brightness / 100.0;
/*
* The algorithm is by Werner D. Streidt
@@ -38,11 +39,11 @@ shader node_brightness(
if (Contrast > 0.0) {
a = (a < 0.0 ? 1.0/a : 0.0);
- b = a * (Brightness - delta);
+ b = a * (bright_factor - delta);
}
else {
delta *= -1.0;
- b = a * (Brightness + delta);
+ b = a * (bright_factor + delta);
}
ColorOut = a * ColorIn + b;
diff --git a/intern/cycles/kernel/osl/nodes/node_checker_texture.osl b/intern/cycles/kernel/osl/nodes/node_checker_texture.osl
index 306798b645f..e92d7be34fc 100644
--- a/intern/cycles/kernel/osl/nodes/node_checker_texture.osl
+++ b/intern/cycles/kernel/osl/nodes/node_checker_texture.osl
@@ -49,10 +49,10 @@ shader node_checker_texture(
{
Fac = checker(Vector*Scale);
if(Fac == 1.0) {
- Color = color(Color1, Color1, Color1);
+ Color = Color1;
}
else {
- Color = color(Color2, Color2, Color2);
+ Color = Color2;
}
}
diff --git a/intern/cycles/kernel/osl/nodes/node_combine_rgb.osl b/intern/cycles/kernel/osl/nodes/node_combine_rgb.osl
new file mode 100644
index 00000000000..546369f660e
--- /dev/null
+++ b/intern/cycles/kernel/osl/nodes/node_combine_rgb.osl
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "stdosl.h"
+
+shader node_combine_rgb(
+ float R = 0.0,
+ float G = 0.0,
+ float B = 0.0,
+ output color Image = color(0.8, 0.8, 0.8))
+{
+ Image = color(R, G, B);
+}
+
diff --git a/intern/cycles/kernel/osl/nodes/node_gamma.osl b/intern/cycles/kernel/osl/nodes/node_gamma.osl
index 4dae07d70bc..d55e908b0b7 100644
--- a/intern/cycles/kernel/osl/nodes/node_gamma.osl
+++ b/intern/cycles/kernel/osl/nodes/node_gamma.osl
@@ -21,13 +21,7 @@
shader node_gamma(
color ColorIn = color(0.8, 0.8, 0.8),
float Gamma = 1.0,
- output ColorOut = color(0.8, 0.8, 0.8)
+ output color ColorOut = color(0.0, 0.0, 0.0))
{
- int i;
- for (i=0;i<3;i++) {
- if (ColorIn[i] > 0.0)
- ColorIn[i] = powf(ColorIn[i], Gamma);
- }
-
- ColorOut = ColorIn;
+ ColorOut = pow(ColorIn, Gamma);
}
diff --git a/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl b/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl
index cc2104af56f..52743669c99 100644
--- a/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl
+++ b/intern/cycles/kernel/osl/nodes/node_glass_bsdf.osl
@@ -34,8 +34,8 @@ shader node_glass_bsdf(
if(distribution == "Sharp")
BSDF = Color*(Fr*reflection(Normal) + (1.0-Fr)*refraction(Normal, eta));
else if(distribution == "Beckmann")
- BSDF = Color*(Fr*microfacet_beckmann(Normal, Roughness) + (1.0-Fr)*microfacet_beckmann_refraction(Normal, Roughness, eta));
+ BSDF = Color*(Fr*microfacet_beckmann(Normal, Roughness, eta) + (1.0-Fr)*microfacet_beckmann_refraction(Normal, Roughness, eta));
else if(distribution == "GGX")
- BSDF = Color*(Fr*microfacet_ggx(Normal, Roughness) + (1.0-Fr)*microfacet_ggx_refraction(Normal, Roughness, eta));
+ BSDF = Color*(Fr*microfacet_ggx(Normal, Roughness, eta) + (1.0-Fr)*microfacet_ggx_refraction(Normal, Roughness, eta));
}
diff --git a/intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl b/intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl
index aa446b66cfb..3890630e8a2 100644
--- a/intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl
+++ b/intern/cycles/kernel/osl/nodes/node_glossy_bsdf.osl
@@ -29,9 +29,9 @@ shader node_glossy_bsdf(
if(distribution == "Sharp")
BSDF = Color*reflection(Normal);
else if(distribution == "Beckmann")
- BSDF = Color*microfacet_beckmann(Normal, Roughness);
+ BSDF = Color*microfacet_beckmann(Normal, Roughness, 1.0);
else if(distribution == "GGX")
- BSDF = Color*microfacet_ggx(Normal, Roughness);
+ BSDF = Color*microfacet_ggx(Normal, Roughness, 1.0);
}
diff --git a/intern/cycles/kernel/osl/nodes/node_gradient_texture.osl b/intern/cycles/kernel/osl/nodes/node_gradient_texture.osl
index e6fa014324c..e0cbc2cc569 100644
--- a/intern/cycles/kernel/osl/nodes/node_gradient_texture.osl
+++ b/intern/cycles/kernel/osl/nodes/node_gradient_texture.osl
@@ -21,46 +21,41 @@
/* Gradient */
-float gradient(point p, string progression, string axis)
+float gradient(point p, string type)
{
- float x, y;
-
- if(axis == "Vertical") {
- x= p[1];
- y= p[0];
- }
- else {
- x= p[0];
- y= p[1];
- }
+ float x, y, z;
+
+ x = p[0];
+ y = p[1];
+ z = p[2];
float result = 0.0;
- if(progression == "Linear") {
- result = (1.0 + x)/2.0;
+ if(type == "Linear") {
+ result = x;
}
- else if(progression == "Quadratic") {
- float r = max((1.0 + x)/2.0, 0.0);
+ else if(type == "Quadratic") {
+ float r = max(x, 0.0);
result = r*r;
}
- else if(progression == "Easing") {
- float r = min(max((1.0 + x)/2.0, 0.0), 1.0);
+ else if(type == "Easing") {
+ float r = min(max(x, 0.0), 1.0);
float t = r*r;
result = (3.0*t - 2.0*t*r);
}
- else if(progression == "Diagonal") {
- result = (2.0 + x + y)/4.0;
+ else if(type == "Diagonal") {
+ result = (x + y)/2.0;
}
- else if(progression == "Radial") {
- result = atan2(y, x)/(2*M_PI) + 0.5;
+ else if(type == "Radial") {
+ result = atan2(y, x)/(2.0*M_PI) + 0.5;
}
else {
- float r = max(1.0 - sqrt(x*x + y*y + p[2]*p[2]), 0.0);
+ float r = max(1.0 - sqrt(x*x + y*y + z*z), 0.0);
- if(progression == "Quadratic Sphere")
+ if(type == "Quadratic Sphere")
result = r*r;
- else if(progression == "Spherical")
+ else if(type == "Spherical")
result = r;
}
@@ -68,11 +63,12 @@ float gradient(point p, string progression, string axis)
}
shader node_gradient_texture(
- string Progression = "Linear",
- string Axis = "Horizontal",
+ string Type = "Linear",
point Vector = P,
- output float Fac = 0.0)
+ output float Fac = 0.0,
+ output color Color = color(0.0, 0.0, 0.0))
{
- Fac = gradient(Vector, Progression, Axis);
+ Fac = gradient(Vector, Type);
+ Color = color(Fac, Fac, Fac);
}
diff --git a/intern/cycles/kernel/osl/nodes/node_holdout.osl b/intern/cycles/kernel/osl/nodes/node_holdout.osl
index 69f8d85a82e..aede50c7ca0 100644
--- a/intern/cycles/kernel/osl/nodes/node_holdout.osl
+++ b/intern/cycles/kernel/osl/nodes/node_holdout.osl
@@ -18,11 +18,9 @@
#include "stdosl.h"
-shader node_background(
- color Color = color(0.8, 0.8, 0.8),
- float Strength = 1.0,
- output closure color Background = background())
+shader node_holdout(
+ output closure color Holdout = holdout())
{
- Background = Color*Strength*background();
+
}
diff --git a/intern/cycles/kernel/osl/nodes/node_invert.osl b/intern/cycles/kernel/osl/nodes/node_invert.osl
index 817198c4561..27021942558 100644
--- a/intern/cycles/kernel/osl/nodes/node_invert.osl
+++ b/intern/cycles/kernel/osl/nodes/node_invert.osl
@@ -21,7 +21,7 @@
shader node_invert(
float Fac = 1.0,
color ColorIn = color(0.8, 0.8, 0.8),
- output ColorOut = color(0.8, 0.8, 0.8)
+ output color ColorOut = color(0.8, 0.8, 0.8))
{
color ColorInv = color(1.0) - ColorIn;
ColorOut = mix(ColorIn, ColorInv, Fac);
diff --git a/intern/cycles/kernel/osl/nodes/node_magic_texture.osl b/intern/cycles/kernel/osl/nodes/node_magic_texture.osl
index 0b6e980debc..c013ebfe658 100644
--- a/intern/cycles/kernel/osl/nodes/node_magic_texture.osl
+++ b/intern/cycles/kernel/osl/nodes/node_magic_texture.osl
@@ -21,56 +21,56 @@
/* Magic */
-color magic(point p, int n, float turbulence)
+color magic(point p, int n, float distortion)
{
- float turb = turbulence/5.0;
+ float dist = distortion;
float x = sin((p[0] + p[1] + p[2])*5.0);
float y = cos((-p[0] + p[1] - p[2])*5.0);
float z = -cos((-p[0] - p[1] + p[2])*5.0);
if(n > 0) {
- x *= turb;
- y *= turb;
- z *= turb;
+ x *= dist;
+ y *= dist;
+ z *= dist;
y = -cos(x-y+z);
- y *= turb;
+ y *= dist;
if(n > 1) {
- x= cos(x-y-z);
- x *= turb;
+ x = cos(x-y-z);
+ x *= dist;
if(n > 2) {
- z= sin(-x-y-z);
- z *= turb;
+ z = sin(-x-y-z);
+ z *= dist;
if(n > 3) {
- x= -cos(-x+y-z);
- x *= turb;
+ x = -cos(-x+y-z);
+ x *= dist;
if(n > 4) {
- y= -sin(-x+y+z);
- y *= turb;
+ y = -sin(-x+y+z);
+ y *= dist;
if(n > 5) {
- y= -cos(-x+y+z);
- y *= turb;
+ y = -cos(-x+y+z);
+ y *= dist;
if(n > 6) {
- x= cos(x+y+z);
- x *= turb;
+ x = cos(x+y+z);
+ x *= dist;
if(n > 7) {
- z= sin(x+y-z);
- z *= turb;
+ z = sin(x+y-z);
+ z *= dist;
if(n > 8) {
- x= -cos(-x-y+z);
- x *= turb;
+ x = -cos(-x-y+z);
+ x *= dist;
if(n > 9) {
- y= -sin(x-y+z);
- y *= turb;
+ y = -sin(x-y+z);
+ y *= dist;
}
}
}
@@ -82,11 +82,11 @@ color magic(point p, int n, float turbulence)
}
}
- if(turb != 0.0) {
- turb *= 2.0;
- x /= turb;
- y /= turb;
- z /= turb;
+ if(dist != 0.0) {
+ dist *= 2.0;
+ x /= dist;
+ y /= dist;
+ z /= dist;
}
return color(0.5 - x, 0.5 - y, 0.5 - z);
@@ -94,10 +94,11 @@ color magic(point p, int n, float turbulence)
shader node_magic_texture(
int Depth = 2,
- float Turbulence = 5.0,
+ float Distortion = 5.0,
+ float Scale = 5.0,
point Vector = P,
output color Color = color(0.0, 0.0, 0.0))
{
- Color = magic(Vector, Depth, Turbulence);
+ Color = magic(Vector*Scale, Depth, Distortion);
}
diff --git a/intern/cycles/kernel/osl/nodes/node_math.osl b/intern/cycles/kernel/osl/nodes/node_math.osl
index be9bb71d511..3327795286a 100644
--- a/intern/cycles/kernel/osl/nodes/node_math.osl
+++ b/intern/cycles/kernel/osl/nodes/node_math.osl
@@ -40,6 +40,7 @@ float safe_log(float a, float b)
shader node_math(
string type = "Add",
+ int Clamp = 0,
float Value1 = 0.0,
float Value2 = 0.0,
output float Value = 0.0)
@@ -80,5 +81,8 @@ shader node_math(
Value = Value1 < Value2;
if(type == "Greater Than")
Value = Value1 > Value2;
+
+ if(Clamp)
+ Value = clamp(Value1, 0.0, 1.0);
}
diff --git a/intern/cycles/kernel/osl/nodes/node_mix.osl b/intern/cycles/kernel/osl/nodes/node_mix.osl
index 8a462c995d3..2ce342c49cd 100644
--- a/intern/cycles/kernel/osl/nodes/node_mix.osl
+++ b/intern/cycles/kernel/osl/nodes/node_mix.osl
@@ -239,8 +239,8 @@ color node_mix_soft(float t, color col1, color col2)
{
float tm = 1.0 - t;
- color one= color(1.0);
- color scr= one - (one - col2)*(one - col1);
+ color one = color(1.0);
+ color scr = one - (one - col2)*(one - col1);
return tm*col1 + t*((one - col1)*col2*col1 + col1*scr);
}
@@ -267,8 +267,20 @@ color node_mix_linear(float t, color col1, color col2)
return outcol;
}
+color node_mix_clamp(color col)
+{
+ color outcol = col;
+
+ outcol[0] = clamp(col[0], 0.0, 1.0);
+ outcol[1] = clamp(col[2], 0.0, 1.0);
+ outcol[2] = clamp(col[2], 0.0, 1.0);
+
+ return outcol;
+}
+
shader node_mix(
string type = "Mix",
+ int Clamp = 0,
float Fac = 0.5,
color Color1 = color(0.0, 0.0, 0.0),
color Color2 = color(0.0, 0.0, 0.0),
@@ -312,5 +324,8 @@ shader node_mix(
Color = node_mix_soft(t, Color1, Color2);
if(type == "Linear Light")
Color = node_mix_linear(t, Color1, Color2);
+
+ if(Clamp)
+ Color = node_mix_clamp(Color);
}
diff --git a/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl b/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl
index 3ab345279f1..7d125d50fd6 100644
--- a/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl
+++ b/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl
@@ -37,14 +37,14 @@ float noise_musgrave_fBm(point p, string basis, float H, float lacunarity, float
int i;
for(i = 0; i < (int)octaves; i++) {
- value += noise_basis(p, basis) * pwr;
+ value += noise("perlin", p) * pwr;
pwr *= pwHL;
p *= lacunarity;
}
rmd = octaves - floor(octaves);
if(rmd != 0.0)
- value += rmd * noise_basis(p, basis) * pwr;
+ value += rmd * noise("perlin", p) * pwr;
return value;
}
@@ -65,14 +65,14 @@ float noise_musgrave_multi_fractal(point p, string basis, float H, float lacunar
int i;
for(i = 0; i < (int)octaves; i++) {
- value *= (pwr * noise_basis(p, basis) + 1.0);
+ value *= (pwr * noise("perlin", p) + 1.0);
pwr *= pwHL;
p *= lacunarity;
}
rmd = octaves - floor(octaves);
if(rmd != 0.0)
- value *= (rmd * pwr * noise_basis(p, basis) + 1.0); /* correct? */
+ value *= (rmd * pwr * noise("perlin", p) + 1.0); /* correct? */
return value;
}
@@ -93,11 +93,11 @@ float noise_musgrave_hetero_terrain(point p, string basis, float H, float lacuna
int i;
/* first unscaled octave of function; later octaves are scaled */
- value = offset + noise_basis(p, basis);
+ value = offset + noise("perlin", p);
p *= lacunarity;
for(i = 1; i < (int)octaves; i++) {
- increment = (noise_basis(p, basis) + offset) * pwr * value;
+ increment = (noise("perlin", p) + offset) * pwr * value;
value += increment;
pwr *= pwHL;
p *= lacunarity;
@@ -105,7 +105,7 @@ float noise_musgrave_hetero_terrain(point p, string basis, float H, float lacuna
rmd = octaves - floor(octaves);
if(rmd != 0.0) {
- increment = (noise_basis(p, basis) + offset) * pwr * value;
+ increment = (noise("perlin", p) + offset) * pwr * value;
value += rmd * increment;
}
@@ -127,7 +127,7 @@ float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H, float
float pwr = pwHL;
int i;
- result = noise_basis(p, basis) + offset;
+ result = noise("perlin", p) + offset;
weight = gain * result;
p *= lacunarity;
@@ -135,7 +135,7 @@ float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H, float
if(weight > 1.0)
weight = 1.0;
- signal = (noise_basis(p, basis) + offset) * pwr;
+ signal = (noise("perlin", p) + offset) * pwr;
pwr *= pwHL;
result += weight * signal;
weight *= gain * signal;
@@ -144,7 +144,7 @@ float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H, float
rmd = octaves - floor(octaves);
if(rmd != 0.0)
- result += rmd * ((noise_basis(p, basis) + offset) * pwr);
+ result += rmd * ((noise("perlin", p) + offset) * pwr);
return result;
}
@@ -164,7 +164,7 @@ float noise_musgrave_ridged_multi_fractal(point p, string basis, float H, float
float pwr = pwHL;
int i;
- signal = offset - fabs(noise_basis(p, basis));
+ signal = offset - fabs(noise("perlin", p));
signal *= signal;
result = signal;
weight = 1.0;
@@ -172,7 +172,7 @@ float noise_musgrave_ridged_multi_fractal(point p, string basis, float H, float
for(i = 1; i < (int)octaves; i++) {
p *= lacunarity;
weight = clamp(signal * gain, 0.0, 1.0);
- signal = offset - fabs(noise_basis(p, basis));
+ signal = offset - fabs(noise("perlin", p));
signal *= signal;
signal *= weight;
result += signal * pwr;
@@ -186,32 +186,35 @@ float noise_musgrave_ridged_multi_fractal(point p, string basis, float H, float
shader node_musgrave_texture(
string Type = "fBM",
- string Basis = "Perlin",
float Dimension = 2.0,
float Lacunarity = 1.0,
- float Octaves = 2.0,
+ float Detail = 2.0,
float Offset = 0.0,
- float Intensity = 1.0,
float Gain = 1.0,
float Scale = 5.0,
point Vector = P,
- output float Fac = 0.0)
+ output float Fac = 0.0,
+ output color Color = color(0.0, 0.0, 0.0))
{
- float dimension = max(Dimension, 0.0);
- float octaves = max(Octaves, 0.0);
+ float dimension = max(Dimension, 1e-5);
+ float octaves = clamp(Detail, 0.0, 16.0);
float lacunarity = max(Lacunarity, 1e-5);
+ string Basis = "Perlin";
+ float intensity = 1.0;
point p = Vector*Scale;
if(Type == "Multifractal")
- Fac = Intensity*noise_musgrave_multi_fractal(p, Basis, dimension, lacunarity, octaves);
+ Fac = intensity*noise_musgrave_multi_fractal(p, Basis, dimension, lacunarity, octaves);
else if(Type == "fBM")
- Fac = Intensity*noise_musgrave_fBm(p, Basis, dimension, lacunarity, octaves);
+ Fac = intensity*noise_musgrave_fBm(p, Basis, dimension, lacunarity, octaves);
else if(Type == "Hybrid Multifractal")
- Fac = Intensity*noise_musgrave_hybrid_multi_fractal(p, Basis, dimension, lacunarity, octaves, Offset, Gain);
+ Fac = intensity*noise_musgrave_hybrid_multi_fractal(p, Basis, dimension, lacunarity, octaves, Offset, Gain);
else if(Type == "Ridged Multifractal")
- Fac = Intensity*noise_musgrave_ridged_multi_fractal(p, Basis, dimension, lacunarity, octaves, Offset, Gain);
+ Fac = intensity*noise_musgrave_ridged_multi_fractal(p, Basis, dimension, lacunarity, octaves, Offset, Gain);
else if(Type == "Hetero Terrain")
- Fac = Intensity*noise_musgrave_hetero_terrain(p, Basis, dimension, lacunarity, octaves, Offset);
+ Fac = intensity*noise_musgrave_hetero_terrain(p, Basis, dimension, lacunarity, octaves, Offset);
+
+ Color = color(Fac, Fac, Fac);
}
diff --git a/intern/cycles/kernel/osl/nodes/node_noise_texture.osl b/intern/cycles/kernel/osl/nodes/node_noise_texture.osl
index fd9fc1dedc0..1ddb4d8a08b 100644
--- a/intern/cycles/kernel/osl/nodes/node_noise_texture.osl
+++ b/intern/cycles/kernel/osl/nodes/node_noise_texture.osl
@@ -21,13 +21,12 @@
/* Noise */
-float noise(point p, string basis, float distortion, float detail)
+float noise(point p, string basis, float distortion, float detail, float fac, color Color)
{
point r;
int hard = 0;
- float fac = 0.0;
- if(distortion != 0.0( {
+ if(distortion != 0.0) {
r[0] = noise_basis(p + point(13.5), basis) * distortion;
r[1] = noise_basis(p, basis) * distortion;
r[2] = noise_basis(p - point(13.5), basis) * distortion;
@@ -37,23 +36,21 @@ float noise(point p, string basis, float distortion, float detail)
fac = noise_turbulence(p, basis, detail, hard);
+ Color = color(fac, noise_turbulence(point(p[1], p[0], p[2]), basis, detail, hard),
+ noise_turbulence(point(p[1], p[2], p[0]), basis, detail, hard));
+
return fac;
-
- /*
- Color[0] = Fac;
- Color[1] = noise_turbulence(point(p[1], p[0], p[2]), basis, detail, hard);
- Color[2] = noise_turbulence(point(p[1], p[2], p[0]), basis, detail, hard);
- */
}
shader node_noise_texture(
- string Basis = "Perlin",
float Distortion = 0.0,
float Scale = 5.0,
float Detail = 2.0,
point Vector = P,
- output float Fac = 0.0)
+ output float Fac = 0.0,
+ output color Color = color(0.2, 0.2, 0.2))
{
- Fac = noise(Vector*Scale, Basis, Distortion, Detail);
+ string Basis = "Perlin";
+ Fac = noise(Vector*Scale, Basis, Distortion, Detail, Fac, Color);
}
diff --git a/intern/cycles/kernel/osl/nodes/node_normal.osl b/intern/cycles/kernel/osl/nodes/node_normal.osl
index 038a33c9898..d5f16acb88c 100644
--- a/intern/cycles/kernel/osl/nodes/node_normal.osl
+++ b/intern/cycles/kernel/osl/nodes/node_normal.osl
@@ -22,10 +22,9 @@ shader node_normal(
normal Direction = normal(0.0, 0.0, 0.0),
normal NormalIn = normal(0.0, 0.0, 0.0),
output normal NormalOut = normal(0.0, 0.0, 0.0),
- output float Dot = 1.0
+ output float Dot = 1.0)
{
- Direction = normalize(Direction);
- NormalOut = Direction;
- Dot = dot(Direction, NormalIn);
+ NormalOut = normalize(Direction);
+ Dot = dot(NormalOut, NormalIn);
}
diff --git a/intern/cycles/kernel/osl/nodes/node_object_info.osl b/intern/cycles/kernel/osl/nodes/node_object_info.osl
new file mode 100644
index 00000000000..21e50d8a43e
--- /dev/null
+++ b/intern/cycles/kernel/osl/nodes/node_object_info.osl
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "stdosl.h"
+
+shader node_object_info(
+ output point Location = point(0.0, 0.0, 0.0),
+ output float ObjectIndex = 0.0,
+ output float MaterialIndex = 0.0,
+ output float Random = 0.0
+ )
+{
+ getattribute("std::object_location", Location);
+ getattribute("std::object_index", ObjectIndex);
+ getattribute("std::material_index", MaterialIndex);
+ getattribute("std::object_random", Random);
+}
+
diff --git a/intern/cycles/kernel/osl/nodes/node_particle_info.osl b/intern/cycles/kernel/osl/nodes/node_particle_info.osl
new file mode 100644
index 00000000000..aadc2812865
--- /dev/null
+++ b/intern/cycles/kernel/osl/nodes/node_particle_info.osl
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "stdosl.h"
+
+shader node_particle_info(
+ output float Index = 0.0,
+ output float Age = 0.0,
+ output float Lifetime = 0.0,
+ output point Location = point(0.0, 0.0, 0.0),
+ output float Size = 0.0,
+ output vector Velocity = point(0.0, 0.0, 0.0),
+ output vector AngularVelocity = point(0.0, 0.0, 0.0)
+ )
+{
+ getattribute("std::particle_index", Index);
+ getattribute("std::particle_age", Age);
+ getattribute("std::particle_lifetime", Lifetime);
+ getattribute("std::particle_location", Location);
+ getattribute("std::particle_size", Size);
+ getattribute("std::particle_velocity", Velocity);
+ getattribute("std::particle_angular_velocity", AngularVelocity);
+}
+
diff --git a/intern/cycles/kernel/osl/nodes/node_rgb_ramp.osl b/intern/cycles/kernel/osl/nodes/node_rgb_ramp.osl
new file mode 100644
index 00000000000..2bc10f31cb3
--- /dev/null
+++ b/intern/cycles/kernel/osl/nodes/node_rgb_ramp.osl
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "stdosl.h"
+#include "oslutil.h"
+
+shader node_rgb_ramp(
+ color ramp_color[RAMP_TABLE_SIZE] = {0.0},
+ float ramp_alpha[RAMP_TABLE_SIZE] = {0.0},
+
+ float Fac = 0.0,
+ output color Color = color(0.0, 0.0, 0.0),
+ output float Alpha = 1.0
+ )
+{
+ float f = clamp(Fac, 0.0, 1.0)*(RAMP_TABLE_SIZE-1);
+
+ int i = (int)f;
+ float t = f - (float)i;
+
+ Color = ramp_color[i];
+ Alpha = ramp_alpha[i];
+
+ if (t > 0.0) {
+ Color = (1.0 - t)*Color + t*ramp_color[i+1];
+ Alpha = (1.0 - t)*Alpha + t*ramp_alpha[i+1];
+ }
+}
+
diff --git a/intern/cycles/kernel/osl/nodes/node_sepcomb_rgb.osl b/intern/cycles/kernel/osl/nodes/node_separate_rgb.osl
index a02f31f4b07..b48bd7e59d6 100644
--- a/intern/cycles/kernel/osl/nodes/node_sepcomb_rgb.osl
+++ b/intern/cycles/kernel/osl/nodes/node_separate_rgb.osl
@@ -24,17 +24,7 @@ shader node_separate_rgb(
output float G = 0.0,
output float B = 0.0)
{
- R = Image[0];
- G = Image[1];
- B = Image[2];
+ R = Image[0];
+ G = Image[1];
+ B = Image[2];
}
-
-shader node_combine_rgb(
- float R = 0.0,
- float G = 0.0,
- float B = 0.0,
- output color Image = color(0.8, 0.8, 0.8)
-{
- Image = color(R, G, B)
-}
-
diff --git a/intern/cycles/kernel/osl/nodes/node_texture.h b/intern/cycles/kernel/osl/nodes/node_texture.h
index d2dbd6db8b3..7cd0742ffe8 100644
--- a/intern/cycles/kernel/osl/nodes/node_texture.h
+++ b/intern/cycles/kernel/osl/nodes/node_texture.h
@@ -156,7 +156,7 @@ float noise_basis(point p, string basis)
float result = 0.0;
if (basis == "Perlin")
- result = noise(p);
+ result = noise(p); /* returns perlin noise in range 0..1 */
if (basis == "Voronoi F1")
result = voronoi_F1S(p);
if (basis == "Voronoi F2")
@@ -212,14 +212,17 @@ float noise_wave(string wave, float a)
/* Turbulence */
-float noise_turbulence(point p, string basis, int octaves, int hard)
+float noise_turbulence(point p, string basis, float details, int hard)
{
float fscale = 1.0;
float amp = 1.0;
float sum = 0.0;
- int i;
+ int i, n;
+
+ float octaves = clamp(details, 0.0, 16.0);
+ n = (int)octaves;
- for (i = 0; i <= octaves; i++) {
+ for (i = 0; i <= n; i++) {
float t = noise_basis(fscale * p, basis);
if (hard)
@@ -229,10 +232,26 @@ float noise_turbulence(point p, string basis, int octaves, int hard)
amp *= 0.5;
fscale *= 2.0;
}
+
+ float rmd = octaves - floor(octaves);
+
+ if(rmd != 0.0) {
+ float t = noise_basis(fscale*p, basis);
+
+ if(hard)
+ t = fabs(2.0*t - 1.0);
- sum *= ((float)(1 << octaves) / (float)((1 << (octaves + 1)) - 1));
+ float sum2 = sum + t*amp;
- return sum;
+ sum *= ((float)(1 << n)/(float)((1 << (n+1)) - 1));
+ sum2 *= ((float)(1 << (n+1))/(float)((1 << (n+2)) - 1));
+
+ return (1.0 - rmd)*sum + rmd*sum2;
+ }
+ else {
+ sum *= ((float)(1 << n)/(float)((1 << (n+1)) - 1));
+ return sum;
+ }
}
/* Utility */
diff --git a/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl b/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl
index 7a336c148db..5e0cae8cbd1 100644
--- a/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl
+++ b/intern/cycles/kernel/osl/nodes/node_velvet_bsdf.osl
@@ -27,6 +27,6 @@ shader node_velvet_bsdf(
{
float sigma = clamp(Sigma, 0.0, 1.0);
- BSDF = Color*ashikhmin_velvet(Normal, sigma);
+ BSDF = Color*ashikhmin_velvet(Normal, sigma, 1.0);
}
diff --git a/intern/cycles/kernel/osl/nodes/node_voronoi_texture.osl b/intern/cycles/kernel/osl/nodes/node_voronoi_texture.osl
index f24f154be84..db08b64de1c 100644
--- a/intern/cycles/kernel/osl/nodes/node_voronoi_texture.osl
+++ b/intern/cycles/kernel/osl/nodes/node_voronoi_texture.osl
@@ -22,60 +22,27 @@
/* Voronoi */
shader node_voronoi_texture(
- string DistanceMetric = "Actual Distance",
string Coloring = "Intensity",
- float Weight1 = 1.0,
- float Weight2 = 0.0,
- float Weight3 = 0.0,
- float Weight4 = 0.0,
- float Exponent = 2.5,
- float Intensity = 1.0,
float Scale = 5.0,
point Vector = P,
output float Fac = 0.0,
output color Color = color(0.0, 0.0, 0.0))
{
- float exponent = max(Exponent, 1e-5);
-
- float aw1 = fabs(Weight1);
- float aw2 = fabs(Weight2);
- float aw3 = fabs(Weight3);
- float aw4 = fabs(Weight4);
- float sc = (aw1 + aw2 + aw3 + aw4);
-
- if(sc != 0.0)
- sc = Intensity/sc;
-
/* compute distance and point coordinate of 4 nearest neighbours */
float da[4];
point pa[4];
- voronoi(Vector*Scale, DistanceMetric, exponent, da, pa);
-
- /* Scalar output */
- Fac = sc * fabs(Weight1*da[0] + Weight2*da[1] + Weight3*da[2] + Weight4*da[3]);
+ voronoi(Vector*Scale, "Distance Squared", 1.0, da, pa);
/* Colored output */
if(Coloring == "Intensity") {
- Color = color(Fac, Fac, Fac);
+ Fac = fabs(da[0]);
+ Color = color(Fac);
}
else {
- Color = aw1*cellnoise_color(pa[0]);
- Color += aw2*cellnoise_color(pa[1]);
- Color += aw3*cellnoise_color(pa[2]);
- Color += aw4*cellnoise_color(pa[3]);
-
- if(Coloring != "Position") {
- float t1 = min((da[1] - da[0])*10.0, 1.0);
+ Color = cellnoise_color(pa[0]);
+ Fac = (Color[0]+Color[1]+Color[2])*(1.0/3.0);
- if(Coloring == "Position, Outline, and Intensity")
- Color *= t1*Fac;
- else if(Coloring == "Position and Outline")
- Color *= t1*sc;
- }
- else {
- Color *= sc;
- }
}
}
diff --git a/intern/cycles/kernel/osl/nodes/node_wave_texture.osl b/intern/cycles/kernel/osl/nodes/node_wave_texture.osl
index b55ec771be8..db53faaf94b 100644
--- a/intern/cycles/kernel/osl/nodes/node_wave_texture.osl
+++ b/intern/cycles/kernel/osl/nodes/node_wave_texture.osl
@@ -31,14 +31,14 @@ float wave(point p, float scale, string type, float detail, float distortion, fl
float n = 0.0;
if(type == "Bands") {
- n = (x + y + z)*10.0);
+ n = (x + y + z)*10.0;
}
else if(type == "Rings") {
n = (sqrt(x*x + y*y + z*z)*20.0);
}
if(distortion != 0.0) {
- n = n +(distortion * noise_turbulence(p*dscale, "Perlin", detail, 0);
+ n = n +(distortion * noise_turbulence(p*dscale, "Perlin", detail, 0));
}
result = noise_wave("Sine", n);
@@ -48,12 +48,14 @@ float wave(point p, float scale, string type, float detail, float distortion, fl
shader node_wave_texture(
string Type = "Bands",
float Scale = 5.0,
- float distortion = 0.0,
- float detail = 2.0,
- float dscale = 1.0,
+ float Distortion = 0.0,
+ float Detail = 2.0,
+ float DetailScale = 1.0,
point Vector = P,
- output float Fac = 0.0)
+ output float Fac = 0.0,
+ output color Color = color (0.0, 0.0, 0.0))
{
- Fac = wave(Vector, Scale, Type, detail, distortion, dscale);
+ Fac = wave(Vector, Scale, Type, Detail, Distortion, DetailScale);
+ Color = color(Fac, Fac, Fac);
}
diff --git a/intern/cycles/kernel/osl/nodes/oslutil.h b/intern/cycles/kernel/osl/nodes/oslutil.h
new file mode 100644
index 00000000000..6c91684d9a6
--- /dev/null
+++ b/intern/cycles/kernel/osl/nodes/oslutil.h
@@ -0,0 +1,94 @@
+/////////////////////////////////////////////////////////////////////////////
+// Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al. All Rights Reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+// * Neither the name of Sony Pictures Imageworks nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+/////////////////////////////////////////////////////////////////////////////
+
+
+#ifndef CCL_OSLUTIL_H
+#define CCL_OSLUTIL_H
+
+/* NB: must match the value in kernel_types.h */
+#define RAMP_TABLE_SIZE 256
+
+// Return wireframe opacity factor [0, 1] given a geometry type in
+// ("triangles", "polygons" or "patches"), and a line_width in raster
+// or world space depending on the last (raster) boolean argument.
+//
+float wireframe(string edge_type, float line_width, int raster)
+{
+ // ray differentials are so big in diffuse context that this function would always return "wire"
+ if (raytype("path:diffuse")) return 0.0;
+
+ int np = 0;
+ point p[64];
+ float pixelWidth = 1;
+
+ if (edge_type == "triangles")
+ {
+ np = 3;
+ if (!getattribute("geom:trianglevertices", p))
+ return 0.0;
+ }
+ else if (edge_type == "polygons" || edge_type == "patches")
+ {
+ getattribute("geom:numpolyvertices", np);
+ if (np < 3 || !getattribute("geom:polyvertices", p))
+ return 0.0;
+ }
+
+ if (raster)
+ {
+ // Project the derivatives of P to the viewing plane defined
+ // by I so we have a measure of how big is a pixel at this point
+ float pixelWidthX = length(Dx(P) - dot(Dx(P), I) * I);
+ float pixelWidthY = length(Dy(P) - dot(Dy(P), I) * I);
+ // Take the average of both axis' length
+ pixelWidth = (pixelWidthX + pixelWidthY) / 2;
+ }
+
+ // Use half the width as the neighbor face will render the
+ // other half. And take the square for fast comparison
+ pixelWidth *= 0.5 * line_width;
+ pixelWidth *= pixelWidth;
+ for (int i = 0; i < np; i++)
+ {
+ int i2 = i ? i - 1 : np - 1;
+ vector dir = P - p[i];
+ vector edge = p[i] - p[i2];
+ vector crs = cross(edge, dir);
+ // At this point dot(crs, crs) / dot(edge, edge) is
+ // the square of area / length(edge) == square of the
+ // distance to the edge.
+ if (dot(crs, crs) < (dot(edge, edge) * pixelWidth))
+ return 1;
+ }
+ return 0;
+}
+
+float wireframe(string edge_type, float line_width) { return wireframe(edge_type, line_width, 1); }
+float wireframe(string edge_type) { return wireframe(edge_type, 1.0, 1); }
+float wireframe() { return wireframe("polygons", 1.0, 1); }
+
+#endif /* CCL_OSLUTIL_H */
diff --git a/intern/cycles/kernel/osl/nodes/stdosl.h b/intern/cycles/kernel/osl/nodes/stdosl.h
index 0c07c501d69..e5accf4eb54 100644
--- a/intern/cycles/kernel/osl/nodes/stdosl.h
+++ b/intern/cycles/kernel/osl/nodes/stdosl.h
@@ -35,6 +35,8 @@
#define M_PI_2 1.5707963267948966 /* pi/2 */
#define M_PI_4 0.7853981633974483 /* pi/4 */
#define M_2_PI 0.6366197723675813 /* 2/pi */
+#define M_2PI 6.2831853071795865 /* 2*pi */
+#define M_4PI 12.566370614359173 /* 4*pi */
#define M_2_SQRTPI 1.1283791670955126 /* 2/sqrt(pi) */
#define M_E 2.7182818284590452 /* e (Euler's number) */
#define M_LN2 0.6931471805599453 /* ln(2) */
@@ -121,9 +123,16 @@ PERCOMP1 (round)
PERCOMP1 (trunc)
PERCOMP2 (fmod)
PERCOMP2F (fmod)
-PERCOMP2 (mod)
-PERCOMP2F (mod)
-int mod (int x, int y) BUILTIN;
+int mod (int a, int b) { return a - b*(int)floor(a/b); }
+point mod (point a, point b) { return a - b*floor(a/b); }
+vector mod (vector a, vector b) { return a - b*floor(a/b); }
+normal mod (normal a, normal b) { return a - b*floor(a/b); }
+color mod (color a, color b) { return a - b*floor(a/b); }
+point mod (point a, float b) { return a - b*floor(a/b); }
+vector mod (vector a, float b) { return a - b*floor(a/b); }
+normal mod (normal a, float b) { return a - b*floor(a/b); }
+color mod (color a, float b) { return a - b*floor(a/b); }
+float mod (float a, float b) { return a - b*floor(a/b); }
PERCOMP2 (min)
PERCOMP2 (max)
normal clamp (normal x, normal minval, normal maxval) { return max(min(x,maxval),minval); }
@@ -131,11 +140,6 @@ vector clamp (vector x, vector minval, vector maxval) { return max(min(x,maxval)
point clamp (point x, point minval, point maxval) { return max(min(x,maxval),minval); }
color clamp (color x, color minval, color maxval) { return max(min(x,maxval),minval); }
float clamp (float x, float minval, float maxval) { return max(min(x,maxval),minval); }
-//normal clamp (normal x, normal minval, normal maxval) BUILTIN;
-//vector clamp (vector x, vector minval, vector maxval) BUILTIN;
-//point clamp (point x, point minval, point maxval) BUILTIN;
-//color clamp (color x, color minval, color maxval) BUILTIN;
-//float clamp (float x, float minval, float maxval) BUILTIN;
normal mix (normal x, normal y, normal a) { return x*(1-a) + y*a; }
normal mix (normal x, normal y, float a) { return x*(1-a) + y*a; }
vector mix (vector x, vector y, vector a) { return x*(1-a) + y*a; }
@@ -163,246 +167,234 @@ vector normalize (vector v) BUILTIN;
vector faceforward (vector N, vector I, vector Nref) BUILTIN;
vector faceforward (vector N, vector I) BUILTIN;
vector reflect (vector I, vector N) { return I - 2*dot(N,I)*N; }
-vector refract(vector I, vector N, float eta) {
- float IdotN = dot(I, N);
- float k = 1 - eta * eta * (1 - IdotN * IdotN);
- return (k < 0) ? vector(0, 0, 0) : (eta * I - N * (eta * IdotN + sqrt(k)));
+vector refract (vector I, vector N, float eta) {
+ float IdotN = dot (I, N);
+ float k = 1 - eta*eta * (1 - IdotN*IdotN);
+ return (k < 0) ? vector(0,0,0) : (eta*I - N * (eta*IdotN + sqrt(k)));
}
-void fresnel(vector I, normal N, float eta,
- output float Kr, output float Kt,
- output vector R, output vector T)
+void fresnel (vector I, normal N, float eta,
+ output float Kr, output float Kt,
+ output vector R, output vector T)
{
- float sqr(float x) {
- return x * x;
- }
- float c = dot(I, N);
- if (c < 0)
- c = -c;
- R = reflect(I, N);
- float g = 1.0 / sqr(eta) - 1.0 + c * c;
- if (g >= 0.0) {
- g = sqrt(g);
- float beta = g - c;
- float F = (c * (g + c) - 1.0) / (c * beta + 1.0);
- F = 0.5 * (1.0 + sqr(F));
- F *= sqr(beta / (g + c));
- Kr = F;
- Kt = (1.0 - Kr) * eta * eta;
- // OPT: the following recomputes some of the above values, but it
- // gives us the same result as if the shader-writer called refract()
- T = refract(I, N, eta);
- }
- else {
- // total internal reflection
- Kr = 1.0;
- Kt = 0.0;
- T = vector(0, 0, 0);
- }
-#undef sqr
+ float sqr(float x) { return x*x; }
+ float c = dot(I, N);
+ if (c < 0)
+ c = -c;
+ R = reflect(I, N);
+ float g = 1.0 / sqr(eta) - 1.0 + c * c;
+ if (g >= 0.0) {
+ g = sqrt (g);
+ float beta = g - c;
+ float F = (c * (g+c) - 1.0) / (c * beta + 1.0);
+ F = 0.5 * (1.0 + sqr(F));
+ F *= sqr (beta / (g+c));
+ Kr = F;
+ Kt = (1.0 - Kr) * eta*eta;
+ // OPT: the following recomputes some of the above values, but it
+ // gives us the same result as if the shader-writer called refract()
+ T = refract(I, N, eta);
+ } else {
+ // total internal reflection
+ Kr = 1.0;
+ Kt = 0.0;
+ T = vector (0,0,0);
+ }
}
-void fresnel(vector I, normal N, float eta,
- output float Kr, output float Kt)
+void fresnel (vector I, normal N, float eta,
+ output float Kr, output float Kt)
{
- vector R, T;
- fresnel(I, N, eta, Kr, Kt, R, T);
+ vector R, T;
+ fresnel(I, N, eta, Kr, Kt, R, T);
}
-point rotate(point q, float angle, point a, point b) BUILTIN;
-normal transform(matrix Mto, normal p) BUILTIN;
-vector transform(matrix Mto, vector p) BUILTIN;
-point transform(matrix Mto, point p) BUILTIN;
+normal transform (matrix Mto, normal p) BUILTIN;
+vector transform (matrix Mto, vector p) BUILTIN;
+point transform (matrix Mto, point p) BUILTIN;
+normal transform (string from, string to, normal p) BUILTIN;
+vector transform (string from, string to, vector p) BUILTIN;
+point transform (string from, string to, point p) BUILTIN;
+normal transform (string to, normal p) { return transform("common",to,p); }
+vector transform (string to, vector p) { return transform("common",to,p); }
+point transform (string to, point p) { return transform("common",to,p); }
-// Implementation of transform-with-named-space in terms of matrices:
+float transformu (string tounits, float x) BUILTIN;
+float transformu (string fromunits, string tounits, float x) BUILTIN;
-point transform(string tospace, point x)
+point rotate (point p, float angle, point a, point b)
{
- return transform(matrix("common", tospace), x);
+ vector axis = normalize (b - a);
+ float cosang, sinang;
+ sincos (angle, sinang, cosang);
+ float cosang1 = 1.0 - cosang;
+ float x = axis[0], y = axis[1], z = axis[2];
+ matrix M = matrix (x * x + (1.0 - x * x) * cosang,
+ x * y * cosang1 + z * sinang,
+ x * z * cosang1 - y * sinang,
+ 0.0,
+ x * y * cosang1 - z * sinang,
+ y * y + (1.0 - y * y) * cosang,
+ y * z * cosang1 + x * sinang,
+ 0.0,
+ x * z * cosang1 + y * sinang,
+ y * z * cosang1 - x * sinang,
+ z * z + (1.0 - z * z) * cosang,
+ 0.0,
+ 0.0, 0.0, 0.0, 1.0);
+ return transform (M, p-a) + a;
}
-point transform(string fromspace, string tospace, point x)
-{
- return transform(matrix(fromspace, tospace), x);
-}
-
-
-vector transform(string tospace, vector x)
-{
- return transform(matrix("common", tospace), x);
-}
-
-vector transform(string fromspace, string tospace, vector x)
-{
- return transform(matrix(fromspace, tospace), x);
-}
-
-
-normal transform(string tospace, normal x)
-{
- return transform(matrix("common", tospace), x);
-}
-
-normal transform(string fromspace, string tospace, normal x)
-{
- return transform(matrix(fromspace, tospace), x);
-}
-
-float transformu(string tounits, float x) BUILTIN;
-float transformu(string fromunits, string tounits, float x) BUILTIN;
// Color functions
-float luminance(color c) {
- return dot((vector)c, vector(0.2126, 0.7152, 0.0722));
-}
-
+float luminance (color c) BUILTIN;
+color blackbody (float temperatureK) BUILTIN;
+color wavelength_color (float wavelength_nm) BUILTIN;
-color transformc(string to, color x)
+color transformc (string to, color x)
{
- color rgb_to_hsv(color rgb) { // See Foley & van Dam
- float r = rgb[0], g = rgb[1], b = rgb[2];
- float mincomp = min(r, min(g, b));
- float maxcomp = max(r, max(g, b));
- float delta = maxcomp - mincomp; // chroma
- float h, s, v;
- v = maxcomp;
- if (maxcomp > 0)
- s = delta / maxcomp;
- else s = 0;
- if (s <= 0)
- h = 0;
- else {
- if (r >= maxcomp) h = (g - b) / delta;
- else if (g >= maxcomp) h = 2 + (b - r) / delta;
- else h = 4 + (r - g) / delta;
- h /= 6;
- if (h < 0)
- h += 1;
- }
- return color(h, s, v);
- }
-
- color rgb_to_hsl(color rgb) { // See Foley & van Dam
- // First convert rgb to hsv, then to hsl
- float minval = min(rgb[0], min(rgb[1], rgb[2]));
- color hsv = rgb_to_hsv(rgb);
- float maxval = hsv[2]; // v == maxval
- float h = hsv[0], s, l = (minval + maxval) / 2;
- if (minval == maxval)
- s = 0; // special 'achromatic' case, hue is 0
- else if (l <= 0.5)
- s = (maxval - minval) / (maxval + minval);
- else
- s = (maxval - minval) / (2 - maxval - minval);
- return color(h, s, l);
- }
-
- color r;
- if (to == "rgb" || to == "RGB")
- r = x;
- else if (to == "hsv")
- r = rgb_to_hsv(x);
- else if (to == "hsl")
- r = rgb_to_hsl(x);
- else if (to == "YIQ")
- r = color(dot(vector(0.299, 0.587, 0.114), (vector)x),
- dot(vector(0.596, -0.275, -0.321), (vector)x),
- dot(vector(0.212, -0.523, 0.311), (vector)x));
- else if (to == "xyz")
- r = color(dot(vector(0.412453, 0.357580, 0.180423), (vector)x),
- dot(vector(0.212671, 0.715160, 0.072169), (vector)x),
- dot(vector(0.019334, 0.119193, 0.950227), (vector)x));
- else {
- error("Unknown color space \"%s\"", to);
- r = x;
- }
- return r;
+ color rgb_to_hsv (color rgb) { // See Foley & van Dam
+ float r = rgb[0], g = rgb[1], b = rgb[2];
+ float mincomp = min (r, min (g, b));
+ float maxcomp = max (r, max (g, b));
+ float delta = maxcomp - mincomp; // chroma
+ float h, s, v;
+ v = maxcomp;
+ if (maxcomp > 0)
+ s = delta / maxcomp;
+ else s = 0;
+ if (s <= 0)
+ h = 0;
+ else {
+ if (r >= maxcomp) h = (g-b) / delta;
+ else if (g >= maxcomp) h = 2 + (b-r) / delta;
+ else h = 4 + (r-g) / delta;
+ h /= 6;
+ if (h < 0)
+ h += 1;
+ }
+ return color (h, s, v);
+ }
+
+ color rgb_to_hsl (color rgb) { // See Foley & van Dam
+ // First convert rgb to hsv, then to hsl
+ float minval = min (rgb[0], min (rgb[1], rgb[2]));
+ color hsv = rgb_to_hsv (rgb);
+ float maxval = hsv[2]; // v == maxval
+ float h = hsv[0], s, l = (minval+maxval) / 2;
+ if (minval == maxval)
+ s = 0; // special 'achromatic' case, hue is 0
+ else if (l <= 0.5)
+ s = (maxval - minval) / (maxval + minval);
+ else
+ s = (maxval - minval) / (2 - maxval - minval);
+ return color (h, s, l);
+ }
+
+ color r;
+ if (to == "rgb" || to == "RGB")
+ r = x;
+ else if (to == "hsv")
+ r = rgb_to_hsv (x);
+ else if (to == "hsl")
+ r = rgb_to_hsl (x);
+ else if (to == "YIQ")
+ r = color (dot (vector(0.299, 0.587, 0.114), (vector)x),
+ dot (vector(0.596, -0.275, -0.321), (vector)x),
+ dot (vector(0.212, -0.523, 0.311), (vector)x));
+ else if (to == "xyz")
+ r = color (dot (vector(0.412453, 0.357580, 0.180423), (vector)x),
+ dot (vector(0.212671, 0.715160, 0.072169), (vector)x),
+ dot (vector(0.019334, 0.119193, 0.950227), (vector)x));
+ else {
+ error ("Unknown color space \"%s\"", to);
+ r = x;
+ }
+ return r;
}
-color transformc(string from, string to, color x)
+color transformc (string from, string to, color x)
{
- color hsv_to_rgb(color c) { // Reference: Foley & van Dam
- float h = c[0], s = c[1], v = c[2];
- color r;
- if (s < 0.0001) {
- r = v;
- }
- else {
- h = 6 * (h - floor(h)); // expand to [0..6)
- int hi = (int)h;
- float f = h - hi;
- float p = v * (1 - s);
- float q = v * (1 - s * f);
- float t = v * (1 - s * (1 - f));
- if (hi == 0) r = color(v, t, p);
- else if (hi == 1) r = color(q, v, p);
- else if (hi == 2) r = color(p, v, t);
- else if (hi == 3) r = color(p, q, v);
- else if (hi == 4) r = color(t, p, v);
- else r = color(v, p, q);
- }
- return r;
- }
-
- color hsl_to_rgb(color c) {
- float h = c[0], s = c[1], l = c[2];
- // Easiest to convert hsl -> hsv, then hsv -> RGB (per Foley & van Dam)
- float v = (l <= 0.5) ? (l * (1 + s)) : (l * (1 - s) + s);
- color r;
- if (v <= 0) {
- r = 0;
- }
- else {
- float min = 2 * l - v;
- s = (v - min) / v;
- r = hsv_to_rgb(color(h, s, v));
- }
- return r;
- }
-
- color r;
- if (from == "rgb" || from == "RGB")
- r = x;
- else if (from == "hsv")
- r = hsv_to_rgb(x);
- else if (from == "hsl")
- r = hsl_to_rgb(x);
- else if (from == "YIQ")
- r = color(dot(vector(1, 0.9557, 0.6199), (vector)x),
- dot(vector(1, -0.2716, -0.6469), (vector)x),
- dot(vector(1, -1.1082, 1.7051), (vector)x));
- else if (from == "xyz")
- r = color(dot(vector(3.240479, -1.537150, -0.498535), (vector)x),
- dot(vector(-0.969256, 1.875991, 0.041556), (vector)x),
- dot(vector(0.055648, -0.204043, 1.057311), (vector)x));
- else {
- error("Unknown color space \"%s\"", to);
- r = x;
- }
- return transformc(to, r);
+ color hsv_to_rgb (color c) { // Reference: Foley & van Dam
+ float h = c[0], s = c[1], v = c[2];
+ color r;
+ if (s < 0.0001) {
+ r = v;
+ } else {
+ h = 6 * (h - floor(h)); // expand to [0..6)
+ int hi = (int)h;
+ float f = h - hi;
+ float p = v * (1-s);
+ float q = v * (1-s*f);
+ float t = v * (1-s*(1-f));
+ if (hi == 0) r = color (v, t, p);
+ else if (hi == 1) r = color (q, v, p);
+ else if (hi == 2) r = color (p, v, t);
+ else if (hi == 3) r = color (p, q, v);
+ else if (hi == 4) r = color (t, p, v);
+ else r = color (v, p, q);
+ }
+ return r;
+ }
+
+ color hsl_to_rgb (color c) {
+ float h = c[0], s = c[1], l = c[2];
+ // Easiest to convert hsl -> hsv, then hsv -> RGB (per Foley & van Dam)
+ float v = (l <= 0.5) ? (l * (1 + s)) : (l * (1 - s) + s);
+ color r;
+ if (v <= 0) {
+ r = 0;
+ } else {
+ float min = 2 * l - v;
+ s = (v - min) / v;
+ r = hsv_to_rgb (color (h, s, v));
+ }
+ return r;
+ }
+
+ color r;
+ if (from == "rgb" || from == "RGB")
+ r = x;
+ else if (from == "hsv")
+ r = hsv_to_rgb (x);
+ else if (from == "hsl")
+ r = hsl_to_rgb (x);
+ else if (from == "YIQ")
+ r = color (dot (vector(1, 0.9557, 0.6199), (vector)x),
+ dot (vector(1, -0.2716, -0.6469), (vector)x),
+ dot (vector(1, -1.1082, 1.7051), (vector)x));
+ else if (from == "xyz")
+ r = color (dot (vector( 3.240479, -1.537150, -0.498535), (vector)x),
+ dot (vector(-0.969256, 1.875991, 0.041556), (vector)x),
+ dot (vector( 0.055648, -0.204043, 1.057311), (vector)x));
+ else {
+ error ("Unknown color space \"%s\"", to);
+ r = x;
+ }
+ return transformc (to, r);
}
// Matrix functions
-float determinant(matrix m) BUILTIN;
-matrix transpose(matrix m) BUILTIN;
+float determinant (matrix m) BUILTIN;
+matrix transpose (matrix m) BUILTIN;
// Pattern generation
-float step(float edge, float x) BUILTIN;
-color step(color edge, color x) BUILTIN;
-point step(point edge, point x) BUILTIN;
-vector step(vector edge, vector x) BUILTIN;
-normal step(normal edge, normal x) BUILTIN;
-float smoothstep(float edge0, float edge1, float x) BUILTIN;
+float step (float edge, float x) BUILTIN;
+color step (color edge, color x) BUILTIN;
+point step (point edge, point x) BUILTIN;
+vector step (vector edge, vector x) BUILTIN;
+normal step (normal edge, normal x) BUILTIN;
+float smoothstep (float edge0, float edge1, float x) BUILTIN;
// Derivatives and area operators
@@ -413,26 +405,24 @@ float smoothstep(float edge0, float edge1, float x) BUILTIN;
// String functions
-int strlen(string s) BUILTIN;
-int startswith(string s, string prefix) BUILTIN;
-int endswith(string s, string suffix) BUILTIN;
-string substr(string s, int start, int len) BUILTIN;
-string substr(string s, int start) {
- return substr(s, start, strlen(s));
-}
+int strlen (string s) BUILTIN;
+int startswith (string s, string prefix) BUILTIN;
+int endswith (string s, string suffix) BUILTIN;
+string substr (string s, int start, int len) BUILTIN;
+string substr (string s, int start) { return substr (s, start, strlen(s)); }
// Define concat in terms of shorter concat
-string concat(string a, string b, string c) {
- return concat(concat(a, b), c);
+string concat (string a, string b, string c) {
+ return concat(concat(a,b), c);
}
-string concat(string a, string b, string c, string d) {
- return concat(concat(a, b, c), d);
+string concat (string a, string b, string c, string d) {
+ return concat(concat(a,b,c), d);
}
-string concat(string a, string b, string c, string d, string e) {
- return concat(concat(a, b, c, d), e);
+string concat (string a, string b, string c, string d, string e) {
+ return concat(concat(a,b,c,d), e);
}
-string concat(string a, string b, string c, string d, string e, string f) {
- return concat(concat(a, b, c, d, e), f);
+string concat (string a, string b, string c, string d, string e, string f) {
+ return concat(concat(a,b,c,d,e), f);
}
@@ -445,16 +435,20 @@ closure color diffuse(normal N) BUILTIN;
closure color oren_nayar(normal N, float sigma) BUILTIN;
closure color translucent(normal N) BUILTIN;
closure color reflection(normal N, float eta) BUILTIN;
-closure color reflection(normal N) { return reflection(N, 0.0); }
+closure color reflection(normal N) { return reflection (N, 0.0); }
closure color refraction(normal N, float eta) BUILTIN;
closure color dielectric(normal N, float eta) BUILTIN;
closure color transparent() BUILTIN;
-closure color microfacet_ggx(normal N, float ag) BUILTIN;
+closure color microfacet_ggx(normal N, float ag, float eta) BUILTIN;
closure color microfacet_ggx_refraction(normal N, float ag, float eta) BUILTIN;
-closure color microfacet_beckmann(normal N, float ab) BUILTIN;
+closure color microfacet_beckmann(normal N, float ab, float eta) BUILTIN;
closure color microfacet_beckmann_refraction(normal N, float ab, float eta) BUILTIN;
-closure color ward(normal N, vector T, float ax, float ay) BUILTIN;
-closure color ashikhmin_velvet(normal N, float sigma) BUILTIN;
+closure color ward(normal N, vector T,float ax, float ay) BUILTIN;
+closure color phong(normal N, float exponent) BUILTIN;
+closure color phong_ramp(normal N, float exponent, color colors[8]) BUILTIN;
+closure color hair_diffuse(vector T) BUILTIN;
+closure color hair_specular(vector T, float offset, float exponent) BUILTIN;
+closure color ashikhmin_velvet(normal N, float sigma, float eta) BUILTIN;
closure color westin_backscatter(normal N, float roughness) BUILTIN;
closure color westin_sheen(normal N, float edginess) BUILTIN;
closure color bssrdf_cubic(color radius) BUILTIN;
@@ -464,10 +458,75 @@ closure color emission() BUILTIN;
closure color debug(string tag) BUILTIN;
closure color background() BUILTIN;
closure color holdout() BUILTIN;
-closure color subsurface(float eta, float g, float mfp, float albedo) BUILTIN;
+closure color subsurface(float eta, float g, color mfp, color albedo) BUILTIN;
+
+closure color cloth(normal N, float s, float t, float dsdx, float dtdx, float dsdy, float dtdy,
+ float area_scaled, vector dPdu, color diff_warp_col, color diff_weft_col,
+ color spec_warp_col, color spec_weft_col, float fresnel_warp, float fresnel_weft,
+ float spread_x_mult, float spread_y_mult, int pattern, float pattern_angle,
+ float warp_width_scale, float weft_width_scale, float thread_count_mult_u,
+ float thread_count_mult_v) BUILTIN;
+closure color cloth_specular(normal N, color spec_col[4], float eta[4], int thread_pattern[4],
+ float pattern_weight[4], int current_thread, float brdf_interp,
+ float btf_interp, float uux, float vvx, float area_scaled, vector dPdu,
+ float eccentricity[4], float angle[4], float Kx[4], float Ky[4],
+ float Sx[4], float Sy[4]) BUILTIN;
+closure color fakefur_diffuse(normal N, vector T, float fur_reflectivity, float fur_transmission,
+ float shadow_start, float shadow_end, float fur_attenuation, float fur_density,
+ float fur_avg_radius, float fur_length, float fur_shadow_fraction) BUILTIN;
+closure color fakefur_specular(normal N, vector T, float offset, float exp, float fur_reflectivity,
+ float fur_transmission, float shadow_start, float shadow_end,
+ float fur_attenuation, float fur_density, float fur_avg_radius,
+ float fur_length, float fur_shadow_fraction) BUILTIN;
+
+closure color fakefur_skin(vector N, vector T, float fur_reflectivity, float fur_transmission,
+ float shadow_start, float shadow_end, float fur_attenuation, float fur_density,
+ float fur_avg_radius, float fur_length) BUILTIN;
+
+
+closure color cloth(normal N, float s, float t, color diff_warp, color diff_weft,
+ color spec_warp, color spec_weft, float fresnel_warp, float fresnel_weft,
+ float spread_x_mult, float spread_y_mult, int pattern, float pattern_angle,
+ float warp_width_scale, float weft_width_scale, float thread_count_mult_u,
+ float thread_count_mult_v)
+{
+
+ return cloth(N, s, t, Dx(s), Dx(t), Dy(s), Dy(t), area(P), dPdu, diff_warp, diff_weft, spec_warp, spec_weft,
+ fresnel_warp, fresnel_weft, spread_x_mult, spread_y_mult, pattern, pattern_angle,
+ warp_width_scale, weft_width_scale, thread_count_mult_u, thread_count_mult_v);
+}
+
+closure color cloth(normal N, float s, float t, color diff_warp, color diff_weft,
+ color spec_warp, color spec_weft, float fresnel_warp, float fresnel_weft,
+ float spread_x_mult, float spread_y_mult, int pattern, float pattern_angle,
+ float warp_width_scale, float weft_width_scale, float thread_count_mult_u,
+ float thread_count_mult_v, string tok, string val)
+{
+
+ return cloth(N, s, t, Dx(s), Dx(t), Dy(s), Dy(t), area(P), dPdu, diff_warp, diff_weft, spec_warp, spec_weft,
+ fresnel_warp, fresnel_weft, spread_x_mult, spread_y_mult, pattern, pattern_angle,
+ warp_width_scale, weft_width_scale, thread_count_mult_u, thread_count_mult_v, tok, val);
+}
+
+
// Renderer state
-int raytype(string typename) BUILTIN;
+int raytype (string typename) BUILTIN;
+// the individual 'isFOOray' functions are deprecated
+int iscameraray () { return raytype("camera"); }
+int isdiffuseray () { return raytype("diffuse"); }
+int isglossyray () { return raytype("glossy"); }
+int isshadowray () { return raytype("shadow"); }
+int getmatrix (string fromspace, string tospace, output matrix M) BUILTIN;
+int getmatrix (string fromspace, output matrix M) {
+ return getmatrix (fromspace, "common", M);
+}
+
+
+// Miscellaneous
+
+
+
#undef BUILTIN
#undef BUILTIN_DERIV
@@ -476,4 +535,3 @@ int raytype(string typename) BUILTIN;
#undef PERCOMP2F
#endif /* CCL_STDOSL_H */
-
diff --git a/intern/cycles/kernel/osl/osl_closures.cpp b/intern/cycles/kernel/osl/osl_closures.cpp
index 0793b29d1ac..9e99d4d2480 100644
--- a/intern/cycles/kernel/osl/osl_closures.cpp
+++ b/intern/cycles/kernel/osl/osl_closures.cpp
@@ -64,26 +64,28 @@ static void register_closure(OSL::ShadingSystem *ss, const char *name, int id, O
void OSLShader::register_closures(OSL::ShadingSystem *ss)
{
- register_closure(ss, "diffuse", OSL_CLOSURE_BSDF_DIFFUSE_ID, bsdf_diffuse_params, bsdf_diffuse_prepare);
- register_closure(ss, "oren_nayar", OSL_CLOSURE_BSDF_OREN_NAYAR_ID, bsdf_oren_nayar_params, bsdf_oren_nayar_prepare);
- register_closure(ss, "translucent", OSL_CLOSURE_BSDF_TRANSLUCENT_ID, bsdf_translucent_params, bsdf_translucent_prepare);
- register_closure(ss, "reflection", OSL_CLOSURE_BSDF_REFLECTION_ID, bsdf_reflection_params, bsdf_reflection_prepare);
- register_closure(ss, "refraction", OSL_CLOSURE_BSDF_REFRACTION_ID, bsdf_refraction_params, bsdf_refraction_prepare);
- register_closure(ss, "transparent", OSL_CLOSURE_BSDF_TRANSPARENT_ID, bsdf_transparent_params, bsdf_transparent_prepare);
- register_closure(ss, "microfacet_ggx", OSL_CLOSURE_BSDF_MICROFACET_GGX_ID, bsdf_microfacet_ggx_params, bsdf_microfacet_ggx_prepare);
- register_closure(ss, "microfacet_ggx_refraction", OSL_CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID, bsdf_microfacet_ggx_refraction_params, bsdf_microfacet_ggx_refraction_prepare);
- register_closure(ss, "microfacet_beckmann", OSL_CLOSURE_BSDF_MICROFACET_BECKMANN_ID, bsdf_microfacet_beckmann_params, bsdf_microfacet_beckmann_prepare);
- register_closure(ss, "microfacet_beckmann_refraction", OSL_CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID, bsdf_microfacet_beckmann_refraction_params, bsdf_microfacet_beckmann_refraction_prepare);
- register_closure(ss, "ward", OSL_CLOSURE_BSDF_WARD_ID, bsdf_ward_params, bsdf_ward_prepare);
- register_closure(ss, "ashikhmin_velvet", OSL_CLOSURE_BSDF_ASHIKHMIN_VELVET_ID, bsdf_ashikhmin_velvet_params, bsdf_ashikhmin_velvet_prepare);
- register_closure(ss, "westin_backscatter", OSL_CLOSURE_BSDF_WESTIN_BACKSCATTER_ID, bsdf_westin_backscatter_params, bsdf_westin_backscatter_prepare);
- register_closure(ss, "westin_sheen", OSL_CLOSURE_BSDF_WESTIN_SHEEN_ID, bsdf_westin_sheen_params, bsdf_westin_sheen_prepare);
- register_closure(ss, "bssrdf_cubic", OSL_CLOSURE_BSSRDF_CUBIC_ID, closure_bssrdf_cubic_params, closure_bssrdf_cubic_prepare);
- register_closure(ss, "emission", OSL_CLOSURE_EMISSION_ID, closure_emission_params, closure_emission_prepare);
- register_closure(ss, "debug", OSL_CLOSURE_DEBUG_ID, closure_debug_params, closure_debug_prepare);
- register_closure(ss, "background", OSL_CLOSURE_BACKGROUND_ID, closure_background_params, closure_background_prepare);
- register_closure(ss, "holdout", OSL_CLOSURE_HOLDOUT_ID, closure_holdout_params, closure_holdout_prepare);
- register_closure(ss, "subsurface", OSL_CLOSURE_SUBSURFACE_ID, closure_subsurface_params, closure_subsurface_prepare);
+ register_closure(ss, "diffuse", OSL_CLOSURE_BSDF_DIFFUSE_ID, bsdf_diffuse_params(), bsdf_diffuse_prepare);
+ register_closure(ss, "oren_nayar", OSL_CLOSURE_BSDF_OREN_NAYAR_ID, bsdf_oren_nayar_params(), bsdf_oren_nayar_prepare);
+ register_closure(ss, "translucent", OSL_CLOSURE_BSDF_TRANSLUCENT_ID, bsdf_translucent_params(), bsdf_translucent_prepare);
+ register_closure(ss, "reflection", OSL_CLOSURE_BSDF_REFLECTION_ID, bsdf_reflection_params(), bsdf_reflection_prepare);
+ register_closure(ss, "refraction", OSL_CLOSURE_BSDF_REFRACTION_ID, bsdf_refraction_params(), bsdf_refraction_prepare);
+ register_closure(ss, "transparent", OSL_CLOSURE_BSDF_TRANSPARENT_ID, bsdf_transparent_params(), bsdf_transparent_prepare);
+ register_closure(ss, "microfacet_ggx", OSL_CLOSURE_BSDF_MICROFACET_GGX_ID, bsdf_microfacet_ggx_params(), bsdf_microfacet_ggx_prepare);
+ register_closure(ss, "microfacet_ggx_refraction", OSL_CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID, bsdf_microfacet_ggx_refraction_params(), bsdf_microfacet_ggx_refraction_prepare);
+ register_closure(ss, "microfacet_beckmann", OSL_CLOSURE_BSDF_MICROFACET_BECKMANN_ID, bsdf_microfacet_beckmann_params(), bsdf_microfacet_beckmann_prepare);
+ register_closure(ss, "microfacet_beckmann_refraction", OSL_CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID, bsdf_microfacet_beckmann_refraction_params(), bsdf_microfacet_beckmann_refraction_prepare);
+ register_closure(ss, "ward", OSL_CLOSURE_BSDF_WARD_ID, bsdf_ward_params(), bsdf_ward_prepare);
+ register_closure(ss, "phong", OSL_CLOSURE_BSDF_PHONG_ID, bsdf_phong_params(), bsdf_phong_prepare);
+ register_closure(ss, "phong_ramp", OSL_CLOSURE_BSDF_PHONG_RAMP_ID, bsdf_phong_ramp_params(), bsdf_phong_ramp_prepare);
+ register_closure(ss, "ashikhmin_velvet", OSL_CLOSURE_BSDF_ASHIKHMIN_VELVET_ID, bsdf_ashikhmin_velvet_params(), bsdf_ashikhmin_velvet_prepare);
+ register_closure(ss, "westin_backscatter", OSL_CLOSURE_BSDF_WESTIN_BACKSCATTER_ID, bsdf_westin_backscatter_params(), bsdf_westin_backscatter_prepare);
+ register_closure(ss, "westin_sheen", OSL_CLOSURE_BSDF_WESTIN_SHEEN_ID, bsdf_westin_sheen_params(), bsdf_westin_sheen_prepare);
+ register_closure(ss, "bssrdf_cubic", OSL_CLOSURE_BSSRDF_CUBIC_ID, closure_bssrdf_cubic_params(), closure_bssrdf_cubic_prepare);
+ register_closure(ss, "emission", OSL_CLOSURE_EMISSION_ID, closure_emission_params(), closure_emission_prepare);
+ register_closure(ss, "debug", OSL_CLOSURE_DEBUG_ID, closure_debug_params(), closure_debug_prepare);
+ register_closure(ss, "background", OSL_CLOSURE_BACKGROUND_ID, closure_background_params(), closure_background_prepare);
+ register_closure(ss, "holdout", OSL_CLOSURE_HOLDOUT_ID, closure_holdout_params(), closure_holdout_prepare);
+ register_closure(ss, "subsurface", OSL_CLOSURE_SUBSURFACE_ID, closure_subsurface_params(), closure_subsurface_prepare);
}
CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/osl/osl_closures.h b/intern/cycles/kernel/osl/osl_closures.h
index 1b4288b8601..a69af45672d 100644
--- a/intern/cycles/kernel/osl/osl_closures.h
+++ b/intern/cycles/kernel/osl/osl_closures.h
@@ -51,6 +51,8 @@ enum {
OSL_CLOSURE_BSDF_MICROFACET_BECKMANN_ID,
OSL_CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID,
OSL_CLOSURE_BSDF_WARD_ID,
+ OSL_CLOSURE_BSDF_PHONG_ID,
+ OSL_CLOSURE_BSDF_PHONG_RAMP_ID,
OSL_CLOSURE_BSDF_ASHIKHMIN_VELVET_ID,
OSL_CLOSURE_BSDF_WESTIN_BACKSCATTER_ID,
OSL_CLOSURE_BSDF_WESTIN_SHEEN_ID,
@@ -62,26 +64,28 @@ enum {
OSL_CLOSURE_SUBSURFACE_ID
};
-extern OSL::ClosureParam bsdf_diffuse_params[];
-extern OSL::ClosureParam bsdf_oren_nayar_params[];
-extern OSL::ClosureParam bsdf_translucent_params[];
-extern OSL::ClosureParam bsdf_reflection_params[];
-extern OSL::ClosureParam bsdf_refraction_params[];
-extern OSL::ClosureParam bsdf_transparent_params[];
-extern OSL::ClosureParam bsdf_microfacet_ggx_params[];
-extern OSL::ClosureParam bsdf_microfacet_ggx_refraction_params[];
-extern OSL::ClosureParam bsdf_microfacet_beckmann_params[];
-extern OSL::ClosureParam bsdf_microfacet_beckmann_refraction_params[];
-extern OSL::ClosureParam bsdf_ward_params[];
-extern OSL::ClosureParam bsdf_ashikhmin_velvet_params[];
-extern OSL::ClosureParam bsdf_westin_backscatter_params[];
-extern OSL::ClosureParam bsdf_westin_sheen_params[];
-extern OSL::ClosureParam closure_bssrdf_cubic_params[];
-extern OSL::ClosureParam closure_emission_params[];
-extern OSL::ClosureParam closure_debug_params[];
-extern OSL::ClosureParam closure_background_params[];
-extern OSL::ClosureParam closure_holdout_params[];
-extern OSL::ClosureParam closure_subsurface_params[];
+OSL::ClosureParam *bsdf_diffuse_params();
+OSL::ClosureParam *bsdf_oren_nayar_params();
+OSL::ClosureParam *bsdf_translucent_params();
+OSL::ClosureParam *bsdf_reflection_params();
+OSL::ClosureParam *bsdf_refraction_params();
+OSL::ClosureParam *bsdf_transparent_params();
+OSL::ClosureParam *bsdf_microfacet_ggx_params();
+OSL::ClosureParam *bsdf_microfacet_ggx_refraction_params();
+OSL::ClosureParam *bsdf_microfacet_beckmann_params();
+OSL::ClosureParam *bsdf_microfacet_beckmann_refraction_params();
+OSL::ClosureParam *bsdf_ward_params();
+OSL::ClosureParam *bsdf_phong_params();
+OSL::ClosureParam *bsdf_phong_ramp_params();
+OSL::ClosureParam *bsdf_ashikhmin_velvet_params();
+OSL::ClosureParam *bsdf_westin_backscatter_params();
+OSL::ClosureParam *bsdf_westin_sheen_params();
+OSL::ClosureParam *closure_bssrdf_cubic_params();
+OSL::ClosureParam *closure_emission_params();
+OSL::ClosureParam *closure_debug_params();
+OSL::ClosureParam *closure_background_params();
+OSL::ClosureParam *closure_holdout_params();
+OSL::ClosureParam *closure_subsurface_params();
void bsdf_diffuse_prepare(OSL::RendererServices *, int id, void *data);
void bsdf_oren_nayar_prepare(OSL::RendererServices *, int id, void *data);
@@ -94,6 +98,8 @@ void bsdf_microfacet_ggx_refraction_prepare(OSL::RendererServices *, int id, voi
void bsdf_microfacet_beckmann_prepare(OSL::RendererServices *, int id, void *data);
void bsdf_microfacet_beckmann_refraction_prepare(OSL::RendererServices *, int id, void *data);
void bsdf_ward_prepare(OSL::RendererServices *, int id, void *data);
+void bsdf_phong_prepare(OSL::RendererServices *, int id, void *data);
+void bsdf_phong_ramp_prepare(OSL::RendererServices *, int id, void *data);
void bsdf_ashikhmin_velvet_prepare(OSL::RendererServices *, int id, void *data);
void bsdf_westin_backscatter_prepare(OSL::RendererServices *, int id, void *data);
void bsdf_westin_sheen_prepare(OSL::RendererServices *, int id, void *data);
diff --git a/intern/cycles/kernel/osl/osl_globals.h b/intern/cycles/kernel/osl/osl_globals.h
index 90746c385c7..8cbbfc8dbb1 100644
--- a/intern/cycles/kernel/osl/osl_globals.h
+++ b/intern/cycles/kernel/osl/osl_globals.h
@@ -30,12 +30,15 @@
CCL_NAMESPACE_BEGIN
+class OSLRenderServices;
+
struct OSLGlobals {
/* use */
bool use;
- /* shading system */
+ /* shading system */
OSL::ShadingSystem *ss;
+ OSLRenderServices *services;
/* shader states */
vector<OSL::ShadingAttribStateRef> surface_state;
@@ -60,7 +63,7 @@ struct OSLGlobals {
/* thread key for thread specific data lookup */
struct ThreadData {
OSL::ShaderGlobals globals;
- void *thread_info;
+ OSL::PerThreadInfo *thread_info;
};
static tls_ptr(ThreadData, thread_data);
diff --git a/intern/cycles/kernel/osl/osl_services.cpp b/intern/cycles/kernel/osl/osl_services.cpp
index a1574d6e0db..f1deaa9db9d 100644
--- a/intern/cycles/kernel/osl/osl_services.cpp
+++ b/intern/cycles/kernel/osl/osl_services.cpp
@@ -160,6 +160,18 @@ bool OSLRenderServices::get_inverse_matrix(OSL::Matrix44 &result, ustring to, fl
return false;
}
+bool OSLRenderServices::get_matrix(OSL::Matrix44 &result, OSL::TransformationPtr xform)
+{
+ // XXX implementation
+ return true;
+}
+
+bool OSLRenderServices::get_matrix(OSL::Matrix44 &result, ustring from)
+{
+ // XXX implementation
+ return true;
+}
+
bool OSLRenderServices::get_array_attribute(void *renderstate, bool derivatives,
ustring object, TypeDesc type, ustring name,
int index, void *val)
@@ -167,55 +179,68 @@ bool OSLRenderServices::get_array_attribute(void *renderstate, bool derivatives,
return false;
}
-static bool get_mesh_attribute(KernelGlobals *kg, const ShaderData *sd,
- const OSLGlobals::Attribute& attr, bool derivatives, void *val)
+static void set_attribute_float3(float3 f[3], TypeDesc type, bool derivatives, void *val)
{
- if (attr.type == TypeDesc::TypeFloat) {
- float *fval = (float *)val;
- fval[0] = triangle_attribute_float(kg, sd, attr.elem, attr.offset,
- (derivatives) ? &fval[1] : NULL, (derivatives) ? &fval[2] : NULL);
+ if (type == TypeDesc::TypePoint || type == TypeDesc::TypeVector ||
+ type == TypeDesc::TypeNormal || type == TypeDesc::TypeColor)
+ {
+ float3 *fval = (float3 *)val;
+ fval[0] = f[0];
+ if (derivatives) {
+ fval[1] = f[1];
+ fval[2] = f[2];
+ }
}
else {
- /* todo: this won't work when float3 has w component */
- float3 *fval = (float3 *)val;
- fval[0] = triangle_attribute_float3(kg, sd, attr.elem, attr.offset,
- (derivatives) ? &fval[1] : NULL, (derivatives) ? &fval[2] : NULL);
+ float *fval = (float *)val;
+ fval[0] = average(f[0]);
+ if (derivatives) {
+ fval[1] = average(f[1]);
+ fval[2] = average(f[2]);
+ }
}
-
- return true;
}
-static bool get_mesh_attribute_convert(KernelGlobals *kg, const ShaderData *sd,
- const OSLGlobals::Attribute& attr, const TypeDesc& type, bool derivatives, void *val)
+static void set_attribute_float(float f[3], TypeDesc type, bool derivatives, void *val)
{
- if (attr.type == TypeDesc::TypeFloat) {
- float tmp[3];
+ if (type == TypeDesc::TypePoint || type == TypeDesc::TypeVector ||
+ type == TypeDesc::TypeNormal || type == TypeDesc::TypeColor)
+ {
float3 *fval = (float3 *)val;
-
- get_mesh_attribute(kg, sd, attr, derivatives, tmp);
-
- fval[0] = make_float3(tmp[0], tmp[0], tmp[0]);
+ fval[0] = make_float3(f[0], f[0], f[0]);
if (derivatives) {
- fval[1] = make_float3(tmp[1], tmp[1], tmp[1]);
- fval[2] = make_float3(tmp[2], tmp[2], tmp[2]);
+ fval[1] = make_float3(f[1], f[2], f[1]);
+ fval[2] = make_float3(f[2], f[2], f[2]);
}
+ }
+ else {
+ float *fval = (float *)val;
+ fval[0] = f[0];
+ if (derivatives) {
+ fval[1] = f[1];
+ fval[2] = f[2];
+ }
+ }
+}
+static bool get_mesh_attribute(KernelGlobals *kg, const ShaderData *sd, const OSLGlobals::Attribute& attr,
+ const TypeDesc& type, bool derivatives, void *val)
+{
+ if (attr.type == TypeDesc::TypeFloat) {
+ float fval[3];
+ fval[0] = triangle_attribute_float(kg, sd, attr.elem, attr.offset,
+ (derivatives) ? &fval[1] : NULL, (derivatives) ? &fval[2] : NULL);
+ set_attribute_float(fval, type, derivatives, val);
return true;
}
else if (attr.type == TypeDesc::TypePoint || attr.type == TypeDesc::TypeVector ||
attr.type == TypeDesc::TypeNormal || attr.type == TypeDesc::TypeColor)
{
- float3 tmp[3];
- float *fval = (float *)val;
-
- get_mesh_attribute(kg, sd, attr, derivatives, tmp);
-
- fval[0] = average(tmp[0]);
- if (derivatives) {
- fval[1] = average(tmp[1]);
- fval[2] = average(tmp[2]);
- }
-
+ /* todo: this won't work when float3 has w component */
+ float3 fval[3];
+ fval[0] = triangle_attribute_float3(kg, sd, attr.elem, attr.offset,
+ (derivatives) ? &fval[1] : NULL, (derivatives) ? &fval[2] : NULL);
+ set_attribute_float3(fval, type, derivatives, val);
return true;
}
else
@@ -231,11 +256,116 @@ static void get_object_attribute(const OSLGlobals::Attribute& attr, bool derivat
memset((char *)val + datasize, 0, datasize * 2);
}
+static bool get_object_standard_attribute(KernelGlobals *kg, ShaderData *sd, ustring name,
+ TypeDesc type, bool derivatives, void *val)
+{
+ /* Object Attributes */
+ if (name == "std::object_location") {
+ float3 fval[3];
+ fval[0] = object_location(kg, sd);
+ fval[1] = fval[2] = make_float3(0.0, 0.0, 0.0); /* derivates set to 0 */
+ set_attribute_float3(fval, type, derivatives, val);
+ return true;
+ }
+ else if (name == "std::object_index") {
+ float fval[3];
+ fval[0] = object_pass_id(kg, sd->object);
+ fval[1] = fval[2] = 0.0; /* derivates set to 0 */
+ set_attribute_float(fval, type, derivatives, val);
+ return true;
+ }
+ else if (name == "std::material_index") {
+ float fval[3];
+ fval[0] = shader_pass_id(kg, sd);
+ fval[1] = fval[2] = 0.0; /* derivates set to 0 */
+ set_attribute_float(fval, type, derivatives, val);
+ return true;
+ }
+ else if (name == "std::object_random") {
+ float fval[3];
+ fval[0] = object_random_number(kg, sd->object);
+ fval[1] = fval[2] = 0.0; /* derivates set to 0 */
+ set_attribute_float(fval, type, derivatives, val);
+ return true;
+ }
+
+ /* Particle Attributes */
+ else if (name == "std::particle_index") {
+ float fval[3];
+ uint particle_id = object_particle_id(kg, sd->object);
+ fval[0] = particle_index(kg, particle_id);
+ fval[1] = fval[2] = 0.0; /* derivates set to 0 */
+ set_attribute_float(fval, type, derivatives, val);
+ return true;
+ }
+ else if (name == "std::particle_age") {
+ float fval[3];
+ uint particle_id = object_particle_id(kg, sd->object);
+ fval[0] = particle_age(kg, particle_id);
+ fval[1] = fval[2] = 0.0; /* derivates set to 0 */
+ set_attribute_float(fval, type, derivatives, val);
+ return true;
+ }
+ else if (name == "std::particle_lifetime") {
+ float fval[3];
+ uint particle_id = object_particle_id(kg, sd->object);
+ fval[0] = particle_lifetime(kg, particle_id);
+ fval[1] = fval[2] = 0.0; /* derivates set to 0 */
+ set_attribute_float(fval, type, derivatives, val);
+ return true;
+ }
+ else if (name == "std::particle_location") {
+ float3 fval[3];
+ uint particle_id = object_particle_id(kg, sd->object);
+ fval[0] = particle_location(kg, particle_id);
+ fval[1] = fval[2] = make_float3(0.0, 0.0, 0.0); /* derivates set to 0 */
+ set_attribute_float3(fval, type, derivatives, val);
+ return true;
+ }
+#if 0 /* unsupported */
+ else if (name == "std::particle_rotation") {
+ float4 fval[3];
+ uint particle_id = object_particle_id(kg, sd->object);
+ fval[0] = particle_rotation(kg, particle_id);
+ fval[1] = fval[2] = make_float4(0.0, 0.0, 0.0, 0.0); /* derivates set to 0 */
+ set_attribute_float4(fval, type, derivatives, val);
+ return true;
+ }
+#endif
+ else if (name == "std::particle_size") {
+ float fval[3];
+ uint particle_id = object_particle_id(kg, sd->object);
+ fval[0] = particle_size(kg, particle_id);
+ fval[1] = fval[2] = 0.0; /* derivates set to 0 */
+ set_attribute_float(fval, type, derivatives, val);
+ return true;
+ }
+ else if (name == "std::particle_velocity") {
+ float3 fval[3];
+ uint particle_id = object_particle_id(kg, sd->object);
+ fval[0] = particle_velocity(kg, particle_id);
+ fval[1] = fval[2] = make_float3(0.0, 0.0, 0.0); /* derivates set to 0 */
+ set_attribute_float3(fval, type, derivatives, val);
+ return true;
+ }
+ else if (name == "std::particle_angular_velocity") {
+ float3 fval[3];
+ uint particle_id = object_particle_id(kg, sd->object);
+ fval[0] = particle_angular_velocity(kg, particle_id);
+ fval[1] = fval[2] = make_float3(0.0, 0.0, 0.0); /* derivates set to 0 */
+ set_attribute_float3(fval, type, derivatives, val);
+ return true;
+ }
+
+ else
+ return false;
+}
+
bool OSLRenderServices::get_attribute(void *renderstate, bool derivatives, ustring object_name,
TypeDesc type, ustring name, void *val)
{
KernelGlobals *kg = kernel_globals;
- const ShaderData *sd = (const ShaderData *)renderstate;
+ ShaderData *sd = (ShaderData *)renderstate;
int object = sd->object;
int tri = sd->prim;
@@ -258,29 +388,23 @@ bool OSLRenderServices::get_attribute(void *renderstate, bool derivatives, ustri
OSLGlobals::AttributeMap& attribute_map = kg->osl.attribute_map[object];
OSLGlobals::AttributeMap::iterator it = attribute_map.find(name);
- if (it == attribute_map.end())
- return false;
-
- /* type mistmatch? */
- const OSLGlobals::Attribute& attr = it->second;
-
- if (attr.elem != ATTR_ELEMENT_VALUE) {
- /* triangle and vertex attributes */
- if (tri != ~0) {
- if (attr.type == type || (attr.type == TypeDesc::TypeColor &&
- (type == TypeDesc::TypePoint || type == TypeDesc::TypeVector || type == TypeDesc::TypeNormal)))
- {
- return get_mesh_attribute(kg, sd, attr, derivatives, val);
- }
- else {
- return get_mesh_attribute_convert(kg, sd, attr, type, derivatives, val);
- }
+ if (it != attribute_map.end()) {
+ const OSLGlobals::Attribute& attr = it->second;
+
+ if (attr.elem != ATTR_ELEMENT_VALUE) {
+ /* triangle and vertex attributes */
+ if (tri != ~0)
+ return get_mesh_attribute(kg, sd, attr, type, derivatives, val);
+ }
+ else {
+ /* object attribute */
+ get_object_attribute(attr, derivatives, val);
+ return true;
}
}
else {
- /* object attribute */
- get_object_attribute(attr, derivatives, val);
- return true;
+ /* not found in attribute, check standard object info */
+ return get_object_standard_attribute(kg, sd, name, type, derivatives, val);
}
return false;
@@ -297,137 +421,17 @@ bool OSLRenderServices::has_userdata(ustring name, TypeDesc type, void *renderst
return false; /* never called by OSL */
}
-void *OSLRenderServices::get_pointcloud_attr_query(ustring *attr_names,
- TypeDesc *attr_types, int nattrs)
+int OSLRenderServices::pointcloud_search(OSL::ShaderGlobals *sg, ustring filename, const OSL::Vec3 &center,
+ float radius, int max_points, bool sort,
+ size_t *out_indices, float *out_distances, int derivs_offset)
{
-#ifdef WITH_PARTIO
- m_attr_queries.push_back(AttrQuery());
- AttrQuery &query = m_attr_queries.back();
-
- /* make space for what we need. the only reason to use
- * std::vector is to skip the delete */
- query.attr_names.resize(nattrs);
- query.attr_partio_types.resize(nattrs);
- /* capacity will keep the length of the smallest array passed
- * to the query. Just to prevent buffer overruns */
- query.capacity = -1;
-
- for (int i = 0; i < nattrs; ++i) {
- query.attr_names[i] = attr_names[i];
-
- TypeDesc element_type = attr_types[i].elementtype();
-
- if (query.capacity < 0)
- query.capacity = attr_types[i].numelements();
- else
- query.capacity = min(query.capacity, (int)attr_types[i].numelements());
-
- /* convert the OSL (OIIO) type to the equivalent Partio type so
- * we can do a fast check at query time. */
- if (element_type == TypeDesc::TypeFloat) {
- query.attr_partio_types[i] = Partio::FLOAT;
- }
- else if (element_type == TypeDesc::TypeInt) {
- query.attr_partio_types[i] = Partio::INT;
- }
- else if (element_type == TypeDesc::TypeColor || element_type == TypeDesc::TypePoint ||
- element_type == TypeDesc::TypeVector || element_type == TypeDesc::TypeNormal)
- {
- query.attr_partio_types[i] = Partio::VECTOR;
- }
- else {
- return NULL; /* report some error of unknown type */
- }
- }
-
- /* this is valid until the end of RenderServices */
- return &query;
-#else
- return NULL;
-#endif
+ return 0;
}
-#ifdef WITH_PARTIO
-Partio::ParticlesData *OSLRenderServices::get_pointcloud(ustring filename)
+int OSLRenderServices::pointcloud_get(ustring filename, size_t *indices, int count,
+ ustring attr_name, TypeDesc attr_type, void *out_data)
{
- return Partio::readCached(filename.c_str(), true);
-}
-
-#endif
-
-int OSLRenderServices::pointcloud(ustring filename, const OSL::Vec3 &center, float radius,
- int max_points, void *_attr_query, void **attr_outdata)
-{
- /* todo: this code has never been tested, and most likely does not
- * work. it's based on the example code in OSL */
-
-#ifdef WITH_PARTIO
- /* query Partio for this pointcloud lookup using cached attr_query */
- if (!_attr_query)
- return 0;
-
- AttrQuery *attr_query = (AttrQuery *)_attr_query;
- if (attr_query->capacity < max_points)
- return 0;
-
- /* get the pointcloud entry for the given filename */
- Partio::ParticlesData *cloud = get_pointcloud(filename);
-
- /* now we have to look up all the attributes in the file. we can't do this
- * before hand cause we never know what we are going to load. */
- int nattrs = attr_query->attr_names.size();
- Partio::ParticleAttribute *attr = (Partio::ParticleAttribute *)alloca(sizeof(Partio::ParticleAttribute) * nattrs);
-
- for (int i = 0; i < nattrs; ++i) {
- /* special case attributes */
- if (attr_query->attr_names[i] == u_distance || attr_query->attr_names[i] == u_index)
- continue;
-
- /* lookup the attribute by name*/
- if (!cloud->attributeInfo(attr_query->attr_names[i].c_str(), attr[i])) {
- /* issue an error here and return, types don't match */
- Partio::endCachedAccess(cloud);
- cloud->release();
- return 0;
- }
- }
-
- std::vector<Partio::ParticleIndex> indices;
- std::vector<float> dist2;
-
- Partio::beginCachedAccess(cloud);
-
- /* finally, do the lookup */
- cloud->findNPoints((const float *)&center, max_points, radius, indices, dist2);
- int count = indices.size();
-
- /* retrieve the attributes directly to user space */
- for (int j = 0; j < nattrs; ++j) {
- /* special cases */
- if (attr_query->attr_names[j] == u_distance) {
- for (int i = 0; i < count; ++i)
- ((float *)attr_outdata[j])[i] = sqrtf(dist2[i]);
- }
- else if (attr_query->attr_names[j] == u_index) {
- for (int i = 0; i < count; ++i)
- ((int *)attr_outdata[j])[i] = indices[i];
- }
- else {
- /* note we make a single call per attribute, we don't loop over the
- * points. Partio does it, so it is there that we have to care about
- * performance */
- cloud->data(attr[j], count, &indices[0], true, attr_outdata[j]);
- }
- }
-
- Partio::endCachedAccess(cloud);
- cloud->release();
-
- return count;
-#else
return 0;
-#endif
}
CCL_NAMESPACE_END
-
diff --git a/intern/cycles/kernel/osl/osl_services.h b/intern/cycles/kernel/osl/osl_services.h
index e637b53ab78..790b02a8abc 100644
--- a/intern/cycles/kernel/osl/osl_services.h
+++ b/intern/cycles/kernel/osl/osl_services.h
@@ -30,18 +30,14 @@
#include <OSL/oslexec.h>
#include <OSL/oslclosure.h>
-#ifdef WITH_PARTIO
-#include <Partio.h>
-#endif
-
CCL_NAMESPACE_BEGIN
class Object;
class Scene;
class Shader;
-class ShaderData;
-class float3;
-class KernelGlobals;
+struct ShaderData;
+struct float3;
+struct KernelGlobals;
class OSLRenderServices : public OSL::RendererServices
{
@@ -53,48 +49,33 @@ public:
bool get_matrix(OSL::Matrix44 &result, OSL::TransformationPtr xform, float time);
bool get_inverse_matrix(OSL::Matrix44 &result, OSL::TransformationPtr xform, float time);
+
bool get_matrix(OSL::Matrix44 &result, ustring from, float time);
bool get_inverse_matrix(OSL::Matrix44 &result, ustring to, float time);
+
+ bool get_matrix(OSL::Matrix44 &result, OSL::TransformationPtr xform);
+ bool get_matrix(OSL::Matrix44 &result, ustring from);
- bool get_array_attribute(void *renderstate, bool derivatives,
+ bool get_array_attribute(void *renderstate, bool derivatives,
ustring object, TypeDesc type, ustring name,
int index, void *val);
bool get_attribute(void *renderstate, bool derivatives, ustring object,
TypeDesc type, ustring name, void *val);
- bool get_userdata(bool derivatives, ustring name, TypeDesc type,
+ bool get_userdata(bool derivatives, ustring name, TypeDesc type,
void *renderstate, void *val);
bool has_userdata(ustring name, TypeDesc type, void *renderstate);
- void *get_pointcloud_attr_query(ustring *attr_names,
- TypeDesc *attr_types, int nattrs);
- int pointcloud(ustring filename, const OSL::Vec3 &center, float radius,
- int max_points, void *attr_query, void **attr_outdata);
+ int pointcloud_search(OSL::ShaderGlobals *sg, ustring filename, const OSL::Vec3 &center,
+ float radius, int max_points, bool sort, size_t *out_indices,
+ float *out_distances, int derivs_offset);
+
+ int pointcloud_get(ustring filename, size_t *indices, int count, ustring attr_name,
+ TypeDesc attr_type, void *out_data);
private:
KernelGlobals *kernel_globals;
-#ifdef WITH_PARTIO
- /* OSL gets pointers to this but its definition is private.
- * right now it only caches the types already converted to
- * Partio constants. this is what get_pointcloud_attr_query
- * returns */
- struct AttrQuery {
- /* names of the attributes to query */
- std::vector<ustring> attr_names;
- /* types as (enum Partio::ParticleAttributeType) of the
- * attributes in the query */
- std::vector<int> attr_partio_types;
- /* for sanity checks, capacity of the output arrays */
- int capacity;
- };
-
- Partio::ParticlesData *get_pointcloud(ustring filename);
-
- /* keep a list so adding elements doesn't invalidate pointers */
- std::list<AttrQuery> m_attr_queries;
-#endif
-
static ustring u_distance;
static ustring u_index;
static ustring u_camera;
diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp
index d8d510a7c9b..ea508dcb660 100644
--- a/intern/cycles/kernel/osl/osl_shader.cpp
+++ b/intern/cycles/kernel/osl/osl_shader.cpp
@@ -36,25 +36,25 @@ tls_ptr(OSLGlobals::ThreadData, OSLGlobals::thread_data);
void OSLShader::thread_init(KernelGlobals *kg)
{
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = new OSLGlobals::ThreadData();
memset(&tdata->globals, 0, sizeof(OSL::ShaderGlobals));
- tdata->thread_info = ssi->create_thread_info();
+ tdata->thread_info = ss->create_thread_info();
tls_set(kg->osl.thread_data, tdata);
- ((OSLRenderServices *)ssi->renderer())->thread_init(kg);
+ kg->osl.services->thread_init(kg);
}
void OSLShader::thread_free(KernelGlobals *kg)
{
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data);
- ssi->destroy_thread_info(tdata->thread_info);
+ ss->destroy_thread_info(tdata->thread_info);
delete tdata;
}
@@ -123,7 +123,7 @@ static void flatten_surface_closure_tree(ShaderData *sd, bool no_glossy,
sc.weight = weight;
switch (prim->category()) {
- case ClosurePrimitive::BSDF: {
+ case OSL::ClosurePrimitive::BSDF: {
if (sd->num_closure == MAX_CLOSURE)
return;
@@ -137,35 +137,43 @@ static void flatten_surface_closure_tree(ShaderData *sd, bool no_glossy,
/* sample weight */
float albedo = bsdf->albedo(TO_VEC3(sd->I));
float sample_weight = fabsf(average(weight)) * albedo;
- float sample_sum = sd->osl_closure.bsdf_sample_sum + sample_weight;
sc.sample_weight = sample_weight;
- sc.type = CLOSURE_BSDF_ID;
- sd->osl_closure.bsdf_sample_sum = sample_sum;
/* scattering flags */
- if (scattering == OSL::Labels::DIFFUSE)
+ if (scattering == OSL::Labels::DIFFUSE) {
sd->flag |= SD_BSDF | SD_BSDF_HAS_EVAL;
- else if (scattering == OSL::Labels::GLOSSY)
+ sc.type = CLOSURE_BSDF_DIFFUSE_ID;
+ }
+ else if (scattering == OSL::Labels::GLOSSY) {
sd->flag |= SD_BSDF | SD_BSDF_HAS_EVAL | SD_BSDF_GLOSSY;
- else
+ sc.type = CLOSURE_BSDF_GLOSSY_ID;
+ }
+ else if (scattering == OSL::Labels::STRAIGHT) {
sd->flag |= SD_BSDF;
+ sc.type = CLOSURE_BSDF_TRANSPARENT_ID;
+ }
+ else {
+ /* todo: we don't actually have a way to determine if
+ * this closure will reflect/transmit. could add our own
+ * own scattering flag that do give this info */
+ sd->flag |= SD_BSDF;
+ sc.type = CLOSURE_BSDF_GLOSSY_ID;
+ }
/* add */
sd->closure[sd->num_closure++] = sc;
break;
}
- case ClosurePrimitive::Emissive: {
+ case OSL::ClosurePrimitive::Emissive: {
if (sd->num_closure == MAX_CLOSURE)
return;
/* sample weight */
float sample_weight = fabsf(average(weight));
- float sample_sum = sd->osl_closure.emissive_sample_sum + sample_weight;
sc.sample_weight = sample_weight;
sc.type = CLOSURE_EMISSION_ID;
- sd->osl_closure.emissive_sample_sum = sample_sum;
/* flag */
sd->flag |= SD_EMISSION;
@@ -173,7 +181,7 @@ static void flatten_surface_closure_tree(ShaderData *sd, bool no_glossy,
sd->closure[sd->num_closure++] = sc;
break;
}
- case ClosurePrimitive::Holdout:
+ case OSL::ClosurePrimitive::Holdout:
if (sd->num_closure == MAX_CLOSURE)
return;
@@ -182,11 +190,11 @@ static void flatten_surface_closure_tree(ShaderData *sd, bool no_glossy,
sd->flag |= SD_HOLDOUT;
sd->closure[sd->num_closure++] = sc;
break;
- case ClosurePrimitive::BSSRDF:
- case ClosurePrimitive::Debug:
+ case OSL::ClosurePrimitive::BSSRDF:
+ case OSL::ClosurePrimitive::Debug:
break; /* not implemented */
- case ClosurePrimitive::Background:
- case ClosurePrimitive::Volume:
+ case OSL::ClosurePrimitive::Background:
+ case OSL::ClosurePrimitive::Volume:
break; /* not relevant */
}
}
@@ -205,20 +213,19 @@ static void flatten_surface_closure_tree(ShaderData *sd, bool no_glossy,
void OSLShader::eval_surface(KernelGlobals *kg, ShaderData *sd, float randb, int path_flag)
{
/* gather pointers */
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data);
OSL::ShaderGlobals *globals = &tdata->globals;
- OSL::pvt::ShadingContext *ctx = ssi->get_context(tdata->thread_info);
+ OSL::ShadingContext *ctx = (OSL::ShadingContext *)sd->osl_ctx;
/* setup shader globals from shader data */
- sd->osl_ctx = ctx;
shaderdata_to_shaderglobals(kg, sd, path_flag, globals);
/* execute shader for this point */
int shader = sd->shader & SHADER_MASK;
if (kg->osl.surface_state[shader])
- ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.surface_state[shader]), *globals);
+ ss->execute(*ctx, *(kg->osl.surface_state[shader]), *globals);
/* flatten closure tree */
sd->num_closure = 0;
@@ -263,18 +270,17 @@ static float3 flatten_background_closure_tree(const OSL::ClosureColor *closure)
float3 OSLShader::eval_background(KernelGlobals *kg, ShaderData *sd, int path_flag)
{
/* gather pointers */
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data);
OSL::ShaderGlobals *globals = &tdata->globals;
- OSL::pvt::ShadingContext *ctx = ssi->get_context(tdata->thread_info);
+ OSL::ShadingContext *ctx = (OSL::ShadingContext *)sd->osl_ctx;
/* setup shader globals from shader data */
- sd->osl_ctx = ctx;
shaderdata_to_shaderglobals(kg, sd, path_flag, globals);
/* execute shader for this point */
if (kg->osl.background_state)
- ctx->execute(OSL::pvt::ShadUseSurface, *kg->osl.background_state, *globals);
+ ss->execute(*ctx, *(kg->osl.background_state), *globals);
/* return background color immediately */
if (globals->Ci)
@@ -301,29 +307,27 @@ static void flatten_volume_closure_tree(ShaderData *sd,
sc.weight = weight;
switch (prim->category()) {
- case ClosurePrimitive::Volume: {
+ case OSL::ClosurePrimitive::Volume: {
if (sd->num_closure == MAX_CLOSURE)
return;
/* sample weight */
float sample_weight = fabsf(average(weight));
- float sample_sum = sd->osl_closure.volume_sample_sum + sample_weight;
sc.sample_weight = sample_weight;
sc.type = CLOSURE_VOLUME_ID;
- sd->osl_closure.volume_sample_sum = sample_sum;
/* add */
sd->closure[sd->num_closure++] = sc;
break;
}
- case ClosurePrimitive::Holdout:
- case ClosurePrimitive::Debug:
+ case OSL::ClosurePrimitive::Holdout:
+ case OSL::ClosurePrimitive::Debug:
break; /* not implemented */
- case ClosurePrimitive::Background:
- case ClosurePrimitive::BSDF:
- case ClosurePrimitive::Emissive:
- case ClosurePrimitive::BSSRDF:
+ case OSL::ClosurePrimitive::Background:
+ case OSL::ClosurePrimitive::BSDF:
+ case OSL::ClosurePrimitive::Emissive:
+ case OSL::ClosurePrimitive::BSSRDF:
break; /* not relevant */
}
}
@@ -342,25 +346,19 @@ static void flatten_volume_closure_tree(ShaderData *sd,
void OSLShader::eval_volume(KernelGlobals *kg, ShaderData *sd, float randb, int path_flag)
{
/* gather pointers */
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data);
OSL::ShaderGlobals *globals = &tdata->globals;
- OSL::pvt::ShadingContext *ctx = ssi->get_context(tdata->thread_info);
+ OSL::ShadingContext *ctx = (OSL::ShadingContext *)sd->osl_ctx;
/* setup shader globals from shader data */
- sd->osl_ctx = ctx;
shaderdata_to_shaderglobals(kg, sd, path_flag, globals);
/* execute shader */
int shader = sd->shader & SHADER_MASK;
if (kg->osl.volume_state[shader])
- ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.volume_state[shader]), *globals);
-
- /* retrieve resulting closures */
- sd->osl_closure.volume_sample_sum = 0.0f;
- sd->osl_closure.num_volume = 0;
- sd->osl_closure.randb = randb;
+ ss->execute(*ctx, *(kg->osl.volume_state[shader]), *globals);
if (globals->Ci)
flatten_volume_closure_tree(sd, globals->Ci);
@@ -371,31 +369,37 @@ void OSLShader::eval_volume(KernelGlobals *kg, ShaderData *sd, float randb, int
void OSLShader::eval_displacement(KernelGlobals *kg, ShaderData *sd)
{
/* gather pointers */
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data);
OSL::ShaderGlobals *globals = &tdata->globals;
- OSL::pvt::ShadingContext *ctx = ssi->get_context(tdata->thread_info);
+ OSL::ShadingContext *ctx = (OSL::ShadingContext *)sd->osl_ctx;
/* setup shader globals from shader data */
- sd->osl_ctx = ctx;
shaderdata_to_shaderglobals(kg, sd, 0, globals);
/* execute shader */
int shader = sd->shader & SHADER_MASK;
if (kg->osl.displacement_state[shader])
- ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.displacement_state[shader]), *globals);
+ ss->execute(*ctx, *(kg->osl.displacement_state[shader]), *globals);
/* get back position */
sd->P = TO_FLOAT3(globals->P);
}
-void OSLShader::release(KernelGlobals *kg, const ShaderData *sd)
+void OSLShader::init(KernelGlobals *kg, ShaderData *sd)
{
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data);
+
+ sd->osl_ctx = ss->get_context(tdata->thread_info);
+}
- ssi->release_context((OSL::pvt::ShadingContext *)sd->osl_ctx, tdata->thread_info);
+void OSLShader::release(KernelGlobals *kg, ShaderData *sd)
+{
+ OSL::ShadingSystem *ss = kg->osl.ss;
+
+ ss->release_context((OSL::ShadingContext *)sd->osl_ctx);
}
/* BSDF Closure */
@@ -458,9 +462,8 @@ float3 OSLShader::emissive_eval(const ShaderData *sd, const ShaderClosure *sc)
{
OSL::EmissiveClosure *emissive = (OSL::EmissiveClosure *)sc->prim;
OSL::Color3 emissive_eval = emissive->eval(TO_VEC3(sd->Ng), TO_VEC3(sd->I));
- eval += TO_FLOAT3(emissive_eval);
- return eval;
+ return TO_FLOAT3(emissive_eval);
}
/* Volume Closure */
diff --git a/intern/cycles/kernel/osl/osl_shader.h b/intern/cycles/kernel/osl/osl_shader.h
index 815557ed203..e2f4d1e94b8 100644
--- a/intern/cycles/kernel/osl/osl_shader.h
+++ b/intern/cycles/kernel/osl/osl_shader.h
@@ -46,10 +46,10 @@ namespace OSL = ::OSL;
class OSLRenderServices;
class Scene;
-class ShaderClosure;
-class ShaderData;
-class differential3;
-class KernelGlobals;
+struct ShaderClosure;
+struct ShaderData;
+struct differential3;
+struct KernelGlobals;
class OSLShader {
public:
@@ -79,7 +79,8 @@ public:
const float3 omega_in, const float3 omega_out);
/* release */
- static void release(KernelGlobals *kg, const ShaderData *sd);
+ static void init(KernelGlobals *kg, ShaderData *sd);
+ static void release(KernelGlobals *kg, ShaderData *sd);
};
CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/osl/vol_subsurface.cpp b/intern/cycles/kernel/osl/vol_subsurface.cpp
index 818a057b6cc..5845428ed43 100644
--- a/intern/cycles/kernel/osl/vol_subsurface.cpp
+++ b/intern/cycles/kernel/osl/vol_subsurface.cpp
@@ -122,14 +122,18 @@ public:
-ClosureParam closure_subsurface_params[] = {
- CLOSURE_FLOAT_PARAM(SubsurfaceClosure, m_eta),
- CLOSURE_FLOAT_PARAM(SubsurfaceClosure, m_g),
- CLOSURE_COLOR_PARAM(SubsurfaceClosure, m_mfp),
- CLOSURE_COLOR_PARAM(SubsurfaceClosure, m_albedo),
- CLOSURE_STRING_KEYPARAM("label"),
- CLOSURE_FINISH_PARAM(SubsurfaceClosure)
-};
+ClosureParam *closure_subsurface_params()
+{
+ static ClosureParam params[] = {
+ CLOSURE_FLOAT_PARAM(SubsurfaceClosure, m_eta),
+ CLOSURE_FLOAT_PARAM(SubsurfaceClosure, m_g),
+ CLOSURE_COLOR_PARAM(SubsurfaceClosure, m_mfp),
+ CLOSURE_COLOR_PARAM(SubsurfaceClosure, m_albedo),
+ CLOSURE_STRING_KEYPARAM("label"),
+ CLOSURE_FINISH_PARAM(SubsurfaceClosure)
+ };
+ return params;
+}
CLOSURE_PREPARE(closure_subsurface_prepare, SubsurfaceClosure)
diff --git a/intern/cycles/kernel/svm/bsdf.h b/intern/cycles/kernel/svm/bsdf.h
index 1a90eab0cd1..cfb6321a918 100644
--- a/intern/cycles/kernel/svm/bsdf.h
+++ b/intern/cycles/kernel/svm/bsdf.h
@@ -58,7 +58,8 @@ __device float fresnel_dielectric(float eta, const float3 N,
neta = 1 / eta;
Nn = N;
*is_inside = false;
- } else {
+ }
+ else {
// we are inside the surface,
cos = -cos;
neta = eta;
@@ -74,7 +75,8 @@ __device float fresnel_dielectric(float eta, const float3 N,
*dTdy = make_float3(0.0f, 0.0f, 0.0f);
#endif
return 1; // total internal reflection
- } else {
+ }
+ else {
float dnp = sqrtf(arg);
float nK = (neta * cos)- dnp;
*T = -(neta * I)+(nK * Nn);
diff --git a/intern/cycles/kernel/svm/bsdf_diffuse.h b/intern/cycles/kernel/svm/bsdf_diffuse.h
index 45e82a566c0..edf8dd93341 100644
--- a/intern/cycles/kernel/svm/bsdf_diffuse.h
+++ b/intern/cycles/kernel/svm/bsdf_diffuse.h
@@ -144,9 +144,10 @@ __device int bsdf_translucent_sample(const ShaderData *sd, const ShaderClosure *
*domega_in_dx *= -125.0f;
*domega_in_dy *= -125.0f;
#endif
- } else
+ }
+ else {
*pdf = 0;
-
+ }
return LABEL_TRANSMIT|LABEL_DIFFUSE;
}
diff --git a/intern/cycles/kernel/svm/bsdf_microfacet.h b/intern/cycles/kernel/svm/bsdf_microfacet.h
index 01e3acb76e8..d8f0310bd02 100644
--- a/intern/cycles/kernel/svm/bsdf_microfacet.h
+++ b/intern/cycles/kernel/svm/bsdf_microfacet.h
@@ -210,7 +210,8 @@ __device int bsdf_microfacet_ggx_sample(const ShaderData *sd, const ShaderClosur
#endif
}
}
- } else {
+ }
+ else {
// CAUTION: the i and o variables are inverted relative to the paper
// eq. 39 - compute actual refractive direction
float3 R, T;
@@ -443,7 +444,8 @@ __device int bsdf_microfacet_beckmann_sample(const ShaderData *sd, const ShaderC
#endif
}
}
- } else {
+ }
+ else {
// CAUTION: the i and o variables are inverted relative to the paper
// eq. 39 - compute actual refractive direction
float3 R, T;
diff --git a/intern/cycles/kernel/svm/bsdf_ward.h b/intern/cycles/kernel/svm/bsdf_ward.h
index 86bca69425d..6ae45948a73 100644
--- a/intern/cycles/kernel/svm/bsdf_ward.h
+++ b/intern/cycles/kernel/svm/bsdf_ward.h
@@ -127,19 +127,22 @@ __device int bsdf_ward_sample(const ShaderData *sd, const ShaderClosure *sc, flo
float tanPhi = alphaRatio * tanf(M_PI_2_F * val);
cosPhi = 1 / sqrtf(1 + tanPhi * tanPhi);
sinPhi = tanPhi * cosPhi;
- } else if(randu < 0.5f) {
+ }
+ else if(randu < 0.5f) {
float val = 1 - 4 * (0.5f - randu);
float tanPhi = alphaRatio * tanf(M_PI_2_F * val);
// phi = M_PI_F - phi;
cosPhi = -1 / sqrtf(1 + tanPhi * tanPhi);
sinPhi = -tanPhi * cosPhi;
- } else if(randu < 0.75f) {
+ }
+ else if(randu < 0.75f) {
float val = 4 * (randu - 0.5f);
float tanPhi = alphaRatio * tanf(M_PI_2_F * val);
//phi = M_PI_F + phi;
cosPhi = -1 / sqrtf(1 + tanPhi * tanPhi);
sinPhi = tanPhi * cosPhi;
- } else {
+ }
+ else {
float val = 1 - 4 * (1 - randu);
float tanPhi = alphaRatio * tanf(M_PI_2_F * val);
// phi = 2 * M_PI_F - phi;
diff --git a/intern/cycles/kernel/svm/bsdf_westin.h b/intern/cycles/kernel/svm/bsdf_westin.h
index 6193d81c244..3e7c27f44a4 100644
--- a/intern/cycles/kernel/svm/bsdf_westin.h
+++ b/intern/cycles/kernel/svm/bsdf_westin.h
@@ -196,8 +196,10 @@ __device int bsdf_westin_sheen_sample(const ShaderData *sd, const ShaderClosure
*domega_in_dx *= 125.0f;
*domega_in_dy *= 125.0f;
#endif
- } else
+ }
+ else {
pdf = 0;
+ }
return LABEL_REFLECT|LABEL_DIFFUSE;
}
diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h
index 8901e5e9628..5b0f192ea47 100644
--- a/intern/cycles/kernel/svm/svm.h
+++ b/intern/cycles/kernel/svm/svm.h
@@ -154,6 +154,7 @@ CCL_NAMESPACE_END
#include "svm_value.h"
#include "svm_voronoi.h"
#include "svm_checker.h"
+#include "svm_brick.h"
CCL_NAMESPACE_BEGIN
@@ -220,6 +221,9 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT
case NODE_TEX_IMAGE:
svm_node_tex_image(kg, sd, stack, node);
break;
+ case NODE_TEX_IMAGE_BOX:
+ svm_node_tex_image_box(kg, sd, stack, node);
+ break;
case NODE_TEX_ENVIRONMENT:
svm_node_tex_environment(kg, sd, stack, node);
break;
@@ -249,6 +253,9 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT
case NODE_TEX_CHECKER:
svm_node_tex_checker(kg, sd, stack, node, &offset);
break;
+ case NODE_TEX_BRICK:
+ svm_node_tex_brick(kg, sd, stack, node, &offset);
+ break;
#endif
case NODE_CAMERA:
svm_node_camera(kg, sd, stack, node.y, node.z, node.w);
diff --git a/intern/cycles/kernel/svm/svm_brick.h b/intern/cycles/kernel/svm/svm_brick.h
new file mode 100644
index 00000000000..7e38ac84bf1
--- /dev/null
+++ b/intern/cycles/kernel/svm/svm_brick.h
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+CCL_NAMESPACE_BEGIN
+
+/* Brick */
+
+__device_noinline float brick_noise(int n) /* fast integer noise */
+{
+ int nn;
+ n = (n >> 13) ^ n;
+ nn = (n * (n * n * 60493 + 19990303) + 1376312589) & 0x7fffffff;
+ return 0.5f * ((float)nn / 1073741824.0f);
+}
+
+__device_noinline float svm_brick(float3 p, float scale, float mortar_size, float bias,
+ float brick_width, float row_height, float offset_amount, int offset_frequency,
+ float squash_amount, int squash_frequency, float *tint)
+{
+ p *= scale;
+
+ int bricknum, rownum;
+ float offset = 0.0f;
+ float x, y;
+
+ rownum = (int)floor(p.y / row_height);
+
+ if(offset_frequency && squash_frequency) {
+ brick_width *= ((int)(rownum) % squash_frequency ) ? 1.0f : squash_amount; /* squash */
+ offset = ((int)(rownum) % offset_frequency ) ? 0 : (brick_width*offset_amount); /* offset */
+ }
+
+ bricknum = (int)floor((p.x+offset) / brick_width);
+
+ x = (p.x+offset) - brick_width*bricknum;
+ y = p.y - row_height*rownum;
+
+ *tint = clamp((brick_noise((rownum << 16) + (bricknum & 0xFFFF)) + bias), 0.0f, 1.0f);
+
+ return (x < mortar_size || y < mortar_size ||
+ x > (brick_width - mortar_size) ||
+ y > (row_height - mortar_size)) ? 1.0f : 0.0f;
+}
+
+__device void svm_node_tex_brick(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset)
+{
+ uint4 node2 = read_node(kg, offset);
+ uint4 node3 = read_node(kg, offset);
+
+ /* Input and Output Sockets */
+ uint co_offset, color1_offset, color2_offset, mortar_offset, scale_offset;
+ uint mortar_size_offset, bias_offset, brick_width_offset, row_height_offset;
+ uint color_offset, fac_offset;
+
+ /* RNA properties */
+ uint offset_frequency, squash_frequency;
+
+ float tint = 0.0f;
+
+ decode_node_uchar4(node.y, &co_offset, &color1_offset, &color2_offset, &mortar_offset);
+ decode_node_uchar4(node.z, &scale_offset, &mortar_size_offset, &bias_offset, &brick_width_offset);
+ decode_node_uchar4(node.w, &row_height_offset, &color_offset, &fac_offset, NULL);
+
+ decode_node_uchar4(node2.x, &offset_frequency, &squash_frequency, NULL, NULL);
+
+ float3 co = stack_load_float3(stack, co_offset);
+
+ float3 color1 = stack_load_float3(stack, color1_offset);
+ float3 color2 = stack_load_float3(stack, color2_offset);
+ float3 mortar = stack_load_float3(stack, mortar_offset);
+
+ float scale = stack_load_float_default(stack, scale_offset, node2.y);
+ float mortar_size = stack_load_float_default(stack, mortar_size_offset, node2.z);
+ float bias = stack_load_float_default(stack, bias_offset, node2.w);
+ float brick_width = stack_load_float_default(stack, brick_width_offset, node3.x);
+ float row_height = stack_load_float_default(stack, row_height_offset, node3.y);
+ float offset_amount = __int_as_float(node3.z);
+ float squash_amount = __int_as_float(node3.w);
+
+ float f = svm_brick(co, scale, mortar_size, bias, brick_width, row_height,
+ offset_amount, offset_frequency, squash_amount, squash_frequency,
+ &tint);
+
+ if(f != 1.0f) {
+ float facm = 1.0f - tint;
+
+ color1.x = facm * (color1.x) + tint * color2.x;
+ color1.y = facm * (color1.y) + tint * color2.y;
+ color1.z = facm * (color1.z) + tint * color2.z;
+ }
+
+ if(stack_valid(color_offset))
+ stack_store_float3(stack, color_offset, (f == 1.0f)? mortar: color1);
+ if(stack_valid(fac_offset))
+ stack_store_float(stack, fac_offset, f);
+}
+
+CCL_NAMESPACE_END
+
diff --git a/intern/cycles/kernel/svm/svm_geometry.h b/intern/cycles/kernel/svm/svm_geometry.h
index 88127b56474..22741bdb067 100644
--- a/intern/cycles/kernel/svm/svm_geometry.h
+++ b/intern/cycles/kernel/svm/svm_geometry.h
@@ -98,19 +98,47 @@ __device void svm_node_object_info(KernelGlobals *kg, ShaderData *sd, float *sta
__device void svm_node_particle_info(KernelGlobals *kg, ShaderData *sd, float *stack, uint type, uint out_offset)
{
- float data;
-
switch(type) {
+ case NODE_INFO_PAR_INDEX: {
+ uint particle_id = object_particle_id(kg, sd->object);
+ stack_store_float(stack, out_offset, particle_index(kg, particle_id));
+ break;
+ }
case NODE_INFO_PAR_AGE: {
uint particle_id = object_particle_id(kg, sd->object);
- data = particle_age(kg, particle_id);
- stack_store_float(stack, out_offset, data);
+ stack_store_float(stack, out_offset, particle_age(kg, particle_id));
break;
}
case NODE_INFO_PAR_LIFETIME: {
uint particle_id = object_particle_id(kg, sd->object);
- data = particle_lifetime(kg, particle_id);
- stack_store_float(stack, out_offset, data);
+ stack_store_float(stack, out_offset, particle_lifetime(kg, particle_id));
+ break;
+ }
+ case NODE_INFO_PAR_LOCATION: {
+ uint particle_id = object_particle_id(kg, sd->object);
+ stack_store_float3(stack, out_offset, particle_location(kg, particle_id));
+ break;
+ }
+ #if 0 /* XXX float4 currently not supported in SVM stack */
+ case NODE_INFO_PAR_ROTATION: {
+ uint particle_id = object_particle_id(kg, sd->object);
+ stack_store_float4(stack, out_offset, particle_rotation(kg, particle_id));
+ break;
+ }
+ #endif
+ case NODE_INFO_PAR_SIZE: {
+ uint particle_id = object_particle_id(kg, sd->object);
+ stack_store_float(stack, out_offset, particle_size(kg, particle_id));
+ break;
+ }
+ case NODE_INFO_PAR_VELOCITY: {
+ uint particle_id = object_particle_id(kg, sd->object);
+ stack_store_float3(stack, out_offset, particle_velocity(kg, particle_id));
+ break;
+ }
+ case NODE_INFO_PAR_ANGULAR_VELOCITY: {
+ uint particle_id = object_particle_id(kg, sd->object);
+ stack_store_float3(stack, out_offset, particle_angular_velocity(kg, particle_id));
break;
}
}
diff --git a/intern/cycles/kernel/svm/svm_hsv.h b/intern/cycles/kernel/svm/svm_hsv.h
index ed17d3fc985..bce11d62923 100644
--- a/intern/cycles/kernel/svm/svm_hsv.h
+++ b/intern/cycles/kernel/svm/svm_hsv.h
@@ -69,11 +69,11 @@ __device float3 hsv_to_rgb(float3 hsv)
s = hsv.y;
v = hsv.z;
- if(s==0.0f) {
+ if(s == 0.0f) {
rgb = make_float3(v, v, v);
}
else {
- if(h==1.0f)
+ if(h == 1.0f)
h = 0.0f;
h *= 6.0f;
diff --git a/intern/cycles/kernel/svm/svm_image.h b/intern/cycles/kernel/svm/svm_image.h
index 3b2b9204d86..662419418e3 100644
--- a/intern/cycles/kernel/svm/svm_image.h
+++ b/intern/cycles/kernel/svm/svm_image.h
@@ -50,7 +50,7 @@ __device_inline float svm_image_texture_frac(float x, int *ix)
return x - (float)i;
}
-__device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y)
+__device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y, uint srgb)
{
uint4 info = kernel_tex_fetch(__tex_image_packed_info, id);
uint width = info.x;
@@ -82,15 +82,24 @@ __device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y)
r += ty*(1.0f - tx)*svm_image_texture_read(kg, offset + ix + niy*width);
r += ty*tx*svm_image_texture_read(kg, offset + nix + niy*width);
+ if(srgb) {
+ r.x = color_srgb_to_scene_linear(r.x);
+ r.y = color_srgb_to_scene_linear(r.y);
+ r.z = color_srgb_to_scene_linear(r.z);
+ }
+
return r;
}
#else
-__device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y)
+__device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y, uint srgb)
{
float4 r;
+#ifdef __KERNEL_CPU__
+ r = kernel_tex_image_interp(id, x, y);
+#else
/* not particularly proud of this massive switch, what are the
* alternatives?
* - use a single big 1D texture, and do our own lookup/filtering
@@ -101,11 +110,11 @@ __device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y)
* we still need some for other storage */
switch(id) {
- case 0: r = kernel_tex_image_interp(__tex_image_000, x, y); break;
- case 1: r = kernel_tex_image_interp(__tex_image_001, x, y); break;
- case 2: r = kernel_tex_image_interp(__tex_image_002, x, y); break;
- case 3: r = kernel_tex_image_interp(__tex_image_003, x, y); break;
- case 4: r = kernel_tex_image_interp(__tex_image_004, x, y); break;
+ case 0: r = kernel_tex_image_interp(__tex_image_float_000, x, y); break;
+ case 1: r = kernel_tex_image_interp(__tex_image_float_001, x, y); break;
+ case 2: r = kernel_tex_image_interp(__tex_image_float_002, x, y); break;
+ case 3: r = kernel_tex_image_interp(__tex_image_float_003, x, y); break;
+ case 4: r = kernel_tex_image_interp(__tex_image_float_004, x, y); break;
case 5: r = kernel_tex_image_interp(__tex_image_005, x, y); break;
case 6: r = kernel_tex_image_interp(__tex_image_006, x, y); break;
case 7: r = kernel_tex_image_interp(__tex_image_007, x, y); break;
@@ -196,15 +205,22 @@ __device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y)
case 92: r = kernel_tex_image_interp(__tex_image_092, x, y); break;
case 93: r = kernel_tex_image_interp(__tex_image_093, x, y); break;
case 94: r = kernel_tex_image_interp(__tex_image_094, x, y); break;
- case 95: r = kernel_tex_image_interp(__tex_image_float_095, x, y); break;
- case 96: r = kernel_tex_image_interp(__tex_image_float_096, x, y); break;
- case 97: r = kernel_tex_image_interp(__tex_image_float_097, x, y); break;
- case 98: r = kernel_tex_image_interp(__tex_image_float_098, x, y); break;
- case 99: r = kernel_tex_image_interp(__tex_image_float_099, x, y); break;
+ case 95: r = kernel_tex_image_interp(__tex_image_095, x, y); break;
+ case 96: r = kernel_tex_image_interp(__tex_image_096, x, y); break;
+ case 97: r = kernel_tex_image_interp(__tex_image_097, x, y); break;
+ case 98: r = kernel_tex_image_interp(__tex_image_098, x, y); break;
+ case 99: r = kernel_tex_image_interp(__tex_image_099, x, y); break;
default:
kernel_assert(0);
return make_float4(0.0f, 0.0f, 0.0f, 0.0f);
}
+#endif
+
+ if(srgb) {
+ r.x = color_srgb_to_scene_linear(r.x);
+ r.y = color_srgb_to_scene_linear(r.y);
+ r.z = color_srgb_to_scene_linear(r.z);
+ }
return r;
}
@@ -219,21 +235,102 @@ __device void svm_node_tex_image(KernelGlobals *kg, ShaderData *sd, float *stack
decode_node_uchar4(node.z, &co_offset, &out_offset, &alpha_offset, &srgb);
float3 co = stack_load_float3(stack, co_offset);
- float4 f = svm_image_texture(kg, id, co.x, co.y);
- float3 r = make_float3(f.x, f.y, f.z);
+ float4 f = svm_image_texture(kg, id, co.x, co.y, srgb);
- if(srgb) {
- r.x = color_srgb_to_scene_linear(r.x);
- r.y = color_srgb_to_scene_linear(r.y);
- r.z = color_srgb_to_scene_linear(r.z);
+ if(stack_valid(out_offset))
+ stack_store_float3(stack, out_offset, make_float3(f.x, f.y, f.z));
+ if(stack_valid(alpha_offset))
+ stack_store_float(stack, alpha_offset, f.w);
+}
+
+__device void svm_node_tex_image_box(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node)
+{
+ /* get object space normal */
+ float3 N = sd->N;
+
+ N = sd->N;
+ if(sd->object != ~0)
+ object_inverse_normal_transform(kg, sd, &N);
+
+ /* project from direction vector to barycentric coordinates in triangles */
+ N.x = fabsf(N.x);
+ N.y = fabsf(N.y);
+ N.z = fabsf(N.z);
+
+ N /= (N.x + N.y + N.z);
+
+ /* basic idea is to think of this as a triangle, each corner representing
+ * one of the 3 faces of the cube. in the corners we have single textures,
+ * in between we blend between two textures, and in the middle we a blend
+ * between three textures.
+ *
+ * the Nxyz values are the barycentric coordinates in an equilateral
+ * triangle, which in case of blending in the middle has a smaller
+ * equilateral triangle where 3 textures blend. this divides things into
+ * 7 zones, with an if() test for each zone */
+
+ float3 weight = make_float3(0.0f, 0.0f, 0.0f);
+ float blend = __int_as_float(node.w);
+ float limit = 0.5f*(1.0f + blend);
+
+ /* first test for corners with single texture */
+ if(N.x > limit*(N.x + N.y) && N.x > limit*(N.x + N.z)) {
+ weight.x = 1.0f;
+ }
+ else if(N.y > limit*(N.x + N.y) && N.y > limit*(N.y + N.z)) {
+ weight.y = 1.0f;
}
+ else if(N.z > limit*(N.x + N.z) && N.z > limit*(N.y + N.z)) {
+ weight.z = 1.0f;
+ }
+ else if(blend > 0.0f) {
+ /* in case of blending, test for mixes between two textures */
+ if(N.z < (1.0f - limit)*(N.y + N.x)) {
+ weight.x = N.x/(N.x + N.y);
+ weight.x = clamp((weight.x - 0.5f*(1.0f - blend))/blend, 0.0f, 1.0f);
+ weight.y = 1.0f - weight.x;
+ }
+ else if(N.x < (1.0f - limit)*(N.y + N.z)) {
+ weight.y = N.y/(N.y + N.z);
+ weight.y = clamp((weight.y - 0.5f*(1.0f - blend))/blend, 0.0f, 1.0f);
+ weight.z = 1.0f - weight.y;
+ }
+ else if(N.y < (1.0f - limit)*(N.x + N.z)) {
+ weight.x = N.x/(N.x + N.z);
+ weight.x = clamp((weight.x - 0.5f*(1.0f - blend))/blend, 0.0f, 1.0f);
+ weight.z = 1.0f - weight.x;
+ }
+ else {
+ /* last case, we have a mix between three */
+ weight.x = ((2.0f - limit)*N.x + (limit - 1.0f))/(2.0f*limit - 1.0f);
+ weight.y = ((2.0f - limit)*N.y + (limit - 1.0f))/(2.0f*limit - 1.0f);
+ weight.z = ((2.0f - limit)*N.z + (limit - 1.0f))/(2.0f*limit - 1.0f);
+ }
+ }
+
+ /* now fetch textures */
+ uint co_offset, out_offset, alpha_offset, srgb;
+ decode_node_uchar4(node.z, &co_offset, &out_offset, &alpha_offset, &srgb);
+
+ float3 co = stack_load_float3(stack, co_offset);
+ uint id = node.y;
+
+ float4 f = make_float4(0.0f, 0.0f, 0.0f, 0.0f);
+
+ if(weight.x > 0.0f)
+ f += weight.x*svm_image_texture(kg, id, co.y, co.z, srgb);
+ if(weight.y > 0.0f)
+ f += weight.y*svm_image_texture(kg, id, co.x, co.z, srgb);
+ if(weight.z > 0.0f)
+ f += weight.z*svm_image_texture(kg, id, co.y, co.x, srgb);
if(stack_valid(out_offset))
- stack_store_float3(stack, out_offset, r);
+ stack_store_float3(stack, out_offset, make_float3(f.x, f.y, f.z));
if(stack_valid(alpha_offset))
stack_store_float(stack, alpha_offset, f.w);
}
+
__device void svm_node_tex_environment(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node)
{
uint id = node.y;
@@ -252,17 +349,10 @@ __device void svm_node_tex_environment(KernelGlobals *kg, ShaderData *sd, float
else
uv = direction_to_mirrorball(co);
- float4 f = svm_image_texture(kg, id, uv.x, uv.y);
- float3 r = make_float3(f.x, f.y, f.z);
-
- if(srgb) {
- r.x = color_srgb_to_scene_linear(r.x);
- r.y = color_srgb_to_scene_linear(r.y);
- r.z = color_srgb_to_scene_linear(r.z);
- }
+ float4 f = svm_image_texture(kg, id, uv.x, uv.y, srgb);
if(stack_valid(out_offset))
- stack_store_float3(stack, out_offset, r);
+ stack_store_float3(stack, out_offset, make_float3(f.x, f.y, f.z));
if(stack_valid(alpha_offset))
stack_store_float(stack, alpha_offset, f.w);
}
diff --git a/intern/cycles/kernel/svm/svm_math.h b/intern/cycles/kernel/svm/svm_math.h
index bc2f774097e..e39c7a4ba6c 100644
--- a/intern/cycles/kernel/svm/svm_math.h
+++ b/intern/cycles/kernel/svm/svm_math.h
@@ -108,6 +108,8 @@ __device float svm_math(NodeMath type, float Fac1, float Fac2)
Fac = Fac1 < Fac2;
else if(type == NODE_MATH_GREATER_THAN)
Fac = Fac1 > Fac2;
+ else if(type == NODE_MATH_CLAMP)
+ Fac = clamp(Fac1, 0.0f, 1.0f);
else
Fac = 0.0f;
diff --git a/intern/cycles/kernel/svm/svm_mix.h b/intern/cycles/kernel/svm/svm_mix.h
index 6b455e713c2..888e4d9645e 100644
--- a/intern/cycles/kernel/svm/svm_mix.h
+++ b/intern/cycles/kernel/svm/svm_mix.h
@@ -276,6 +276,17 @@ __device float3 svm_mix_linear(float t, float3 col1, float3 col2)
return outcol;
}
+__device float3 svm_mix_clamp(float3 col)
+{
+ float3 outcol = col;
+
+ outcol.x = clamp(col.x, 0.0f, 1.0f);
+ outcol.y = clamp(col.y, 0.0f, 1.0f);
+ outcol.z = clamp(col.z, 0.0f, 1.0f);
+
+ return outcol;
+}
+
__device float3 svm_mix(NodeMix type, float fac, float3 c1, float3 c2)
{
float t = clamp(fac, 0.0f, 1.0f);
@@ -299,6 +310,7 @@ __device float3 svm_mix(NodeMix type, float fac, float3 c1, float3 c2)
case NODE_MIX_COLOR: return svm_mix_color(t, c1, c2);
case NODE_MIX_SOFT: return svm_mix_soft(t, c1, c2);
case NODE_MIX_LINEAR: return svm_mix_linear(t, c1, c2);
+ case NODE_MIX_CLAMP: return svm_mix_clamp(c1);
}
return make_float3(0.0f, 0.0f, 0.0f);
diff --git a/intern/cycles/kernel/svm/svm_noise.h b/intern/cycles/kernel/svm/svm_noise.h
index dfaf43acbd4..224a1d96543 100644
--- a/intern/cycles/kernel/svm/svm_noise.h
+++ b/intern/cycles/kernel/svm/svm_noise.h
@@ -104,7 +104,7 @@ __device float grad(int hash, float x, float y, float z)
// use vectors pointing to the edges of the cube
int h = hash & 15;
float u = h<8 ? x : y;
- float v = h<4 ? y : h==12||h==14 ? x : z;
+ float v = h<4 ? y : h == 12 || h == 14 ? x : z;
return ((h&1) ? -u : u) + ((h&2) ? -v : v);
}
diff --git a/intern/cycles/kernel/svm/svm_tex_coord.h b/intern/cycles/kernel/svm/svm_tex_coord.h
index 854a708a988..6bd8f2ac69c 100644
--- a/intern/cycles/kernel/svm/svm_tex_coord.h
+++ b/intern/cycles/kernel/svm/svm_tex_coord.h
@@ -29,7 +29,7 @@ __device_inline float3 svm_background_offset(KernelGlobals *kg)
__device_inline float3 svm_world_to_ndc(KernelGlobals *kg, ShaderData *sd, float3 P)
{
if(kernel_data.cam.type != CAMERA_PANORAMA) {
- if(sd->object != ~0)
+ if(sd->object == ~0)
P += svm_background_offset(kg);
Transform tfm = kernel_data.cam.worldtondc;
@@ -92,6 +92,14 @@ __device void svm_node_tex_coord(KernelGlobals *kg, ShaderData *sd, float *stack
data = sd->I;
break;
}
+ case NODE_TEXCO_DUPLI_GENERATED: {
+ data = object_dupli_generated(kg, sd->object);
+ break;
+ }
+ case NODE_TEXCO_DUPLI_UV: {
+ data = object_dupli_uv(kg, sd->object);
+ break;
+ }
}
stack_store_float3(stack, out_offset, data);
@@ -141,6 +149,14 @@ __device void svm_node_tex_coord_bump_dx(KernelGlobals *kg, ShaderData *sd, floa
data = sd->I;
break;
}
+ case NODE_TEXCO_DUPLI_GENERATED: {
+ data = object_dupli_generated(kg, sd->object);
+ break;
+ }
+ case NODE_TEXCO_DUPLI_UV: {
+ data = object_dupli_uv(kg, sd->object);
+ break;
+ }
}
stack_store_float3(stack, out_offset, data);
@@ -193,6 +209,14 @@ __device void svm_node_tex_coord_bump_dy(KernelGlobals *kg, ShaderData *sd, floa
data = sd->I;
break;
}
+ case NODE_TEXCO_DUPLI_GENERATED: {
+ data = object_dupli_generated(kg, sd->object);
+ break;
+ }
+ case NODE_TEXCO_DUPLI_UV: {
+ data = object_dupli_uv(kg, sd->object);
+ break;
+ }
}
stack_store_float3(stack, out_offset, data);
diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h
index c1eeeb55268..ee423573cdf 100644
--- a/intern/cycles/kernel/svm/svm_types.h
+++ b/intern/cycles/kernel/svm/svm_types.h
@@ -40,8 +40,10 @@ typedef enum NodeType {
NODE_MIX_CLOSURE,
NODE_JUMP,
NODE_TEX_IMAGE,
+ NODE_TEX_IMAGE_BOX,
NODE_TEX_SKY,
NODE_GEOMETRY,
+ NODE_GEOMETRY_DUPLI,
NODE_LIGHT_PATH,
NODE_VALUE_F,
NODE_VALUE_V,
@@ -89,7 +91,8 @@ typedef enum NodeType {
NODE_MIN_MAX,
NODE_LIGHT_FALLOFF,
NODE_OBJECT_INFO,
- NODE_PARTICLE_INFO
+ NODE_PARTICLE_INFO,
+ NODE_TEX_BRICK
} NodeType;
typedef enum NodeAttributeType {
@@ -114,8 +117,14 @@ typedef enum NodeObjectInfo {
} NodeObjectInfo;
typedef enum NodeParticleInfo {
+ NODE_INFO_PAR_INDEX,
NODE_INFO_PAR_AGE,
- NODE_INFO_PAR_LIFETIME
+ NODE_INFO_PAR_LIFETIME,
+ NODE_INFO_PAR_LOCATION,
+ NODE_INFO_PAR_ROTATION,
+ NODE_INFO_PAR_SIZE,
+ NODE_INFO_PAR_VELOCITY,
+ NODE_INFO_PAR_ANGULAR_VELOCITY
} NodeParticleInfo;
typedef enum NodeLightPath {
@@ -141,7 +150,9 @@ typedef enum NodeTexCoord {
NODE_TEXCO_OBJECT,
NODE_TEXCO_CAMERA,
NODE_TEXCO_WINDOW,
- NODE_TEXCO_REFLECTION
+ NODE_TEXCO_REFLECTION,
+ NODE_TEXCO_DUPLI_GENERATED,
+ NODE_TEXCO_DUPLI_UV
} NodeTexCoord;
typedef enum NodeMix {
@@ -162,7 +173,8 @@ typedef enum NodeMix {
NODE_MIX_VAL,
NODE_MIX_COLOR,
NODE_MIX_SOFT,
- NODE_MIX_LINEAR
+ NODE_MIX_LINEAR,
+ NODE_MIX_CLAMP /* used for the clamp UI option */
} NodeMix;
typedef enum NodeMath {
@@ -182,7 +194,8 @@ typedef enum NodeMath {
NODE_MATH_MAXIMUM,
NODE_MATH_ROUND,
NODE_MATH_LESS_THAN,
- NODE_MATH_GREATER_THAN
+ NODE_MATH_GREATER_THAN,
+ NODE_MATH_CLAMP /* used for the clamp UI option */
} NodeMath;
typedef enum NodeVectorMath {
@@ -274,16 +287,18 @@ typedef enum ClosureType {
CLOSURE_BSDF_DIFFUSE_ID,
CLOSURE_BSDF_OREN_NAYAR_ID,
+ CLOSURE_BSDF_GLOSSY_ID,
CLOSURE_BSDF_REFLECTION_ID,
CLOSURE_BSDF_MICROFACET_GGX_ID,
CLOSURE_BSDF_MICROFACET_BECKMANN_ID,
CLOSURE_BSDF_WARD_ID,
+ CLOSURE_BSDF_ASHIKHMIN_VELVET_ID,
CLOSURE_BSDF_WESTIN_SHEEN_ID,
+ CLOSURE_BSDF_TRANSMISSION_ID,
CLOSURE_BSDF_TRANSLUCENT_ID,
CLOSURE_BSDF_REFRACTION_ID,
CLOSURE_BSDF_WESTIN_BACKSCATTER_ID,
- CLOSURE_BSDF_ASHIKHMIN_VELVET_ID,
CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID,
CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID,
CLOSURE_BSDF_GLASS_ID,
@@ -307,8 +322,8 @@ typedef enum ClosureType {
/* watch this, being lazy with memory usage */
#define CLOSURE_IS_BSDF(type) (type <= CLOSURE_BSDF_TRANSPARENT_ID)
#define CLOSURE_IS_BSDF_DIFFUSE(type) (type >= CLOSURE_BSDF_DIFFUSE_ID && type <= CLOSURE_BSDF_OREN_NAYAR_ID)
-#define CLOSURE_IS_BSDF_GLOSSY(type) (type >= CLOSURE_BSDF_REFLECTION_ID && type <= CLOSURE_BSDF_WESTIN_SHEEN_ID)
-#define CLOSURE_IS_BSDF_TRANSMISSION(type) (type >= CLOSURE_BSDF_TRANSLUCENT_ID && type <= CLOSURE_BSDF_GLASS_ID)
+#define CLOSURE_IS_BSDF_GLOSSY(type) (type >= CLOSURE_BSDF_GLOSSY_ID && type <= CLOSURE_BSDF_WESTIN_SHEEN_ID)
+#define CLOSURE_IS_BSDF_TRANSMISSION(type) (type >= CLOSURE_BSDF_TRANSMISSION_ID && type <= CLOSURE_BSDF_GLASS_ID)
#define CLOSURE_IS_VOLUME(type) (type >= CLOSURE_VOLUME_ID && type <= CLOSURE_VOLUME_ISOTROPIC_ID)
#define CLOSURE_IS_EMISSION(type) (type == CLOSURE_EMISSION_ID)
#define CLOSURE_IS_HOLDOUT(type) (type == CLOSURE_HOLDOUT_ID)
diff --git a/intern/cycles/render/CMakeLists.txt b/intern/cycles/render/CMakeLists.txt
index 4d4fbfe6814..e75a3b37f3b 100644
--- a/intern/cycles/render/CMakeLists.txt
+++ b/intern/cycles/render/CMakeLists.txt
@@ -7,6 +7,8 @@ set(INC
../kernel/osl
../bvh
../util
+)
+set(INC_SYS
${GLEW_INCLUDE_PATH}
)
@@ -27,6 +29,7 @@ set(SRC
nodes.cpp
object.cpp
osl.cpp
+ particles.cpp
scene.cpp
session.cpp
shader.cpp
@@ -51,6 +54,7 @@ set(SRC_HEADERS
nodes.h
object.h
osl.h
+ particles.h
scene.h
session.h
shader.h
@@ -62,6 +66,7 @@ set(SRC_HEADERS
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RTTI_DISABLE_FLAGS}")
include_directories(${INC})
+include_directories(SYSTEM ${INC_SYS})
add_library(cycles_render ${SRC} ${SRC_HEADERS})
diff --git a/intern/cycles/render/attribute.cpp b/intern/cycles/render/attribute.cpp
index 5c7966d6d96..5122c1af410 100644
--- a/intern/cycles/render/attribute.cpp
+++ b/intern/cycles/render/attribute.cpp
@@ -84,28 +84,6 @@ bool Attribute::same_storage(TypeDesc a, TypeDesc b)
return false;
}
-ustring Attribute::standard_name(AttributeStandard std)
-{
- if(std == ATTR_STD_VERTEX_NORMAL)
- return ustring("N");
- else if(std == ATTR_STD_FACE_NORMAL)
- return ustring("Ng");
- else if(std == ATTR_STD_UV)
- return ustring("uv");
- else if(std == ATTR_STD_GENERATED)
- return ustring("generated");
- else if(std == ATTR_STD_POSITION_UNDEFORMED)
- return ustring("undeformed");
- else if(std == ATTR_STD_POSITION_UNDISPLACED)
- return ustring("undisplaced");
- else if(std == ATTR_STD_MOTION_PRE)
- return ustring("motion_pre");
- else if(std == ATTR_STD_MOTION_POST)
- return ustring("motion_post");
-
- return ustring();
-}
-
/* Attribute Set */
AttributeSet::AttributeSet()
@@ -176,7 +154,7 @@ Attribute *AttributeSet::add(AttributeStandard std, ustring name)
Attribute *attr = NULL;
if(name == ustring())
- name = Attribute::standard_name(std);
+ name = attribute_standard_name(std);
if(std == ATTR_STD_VERTEX_NORMAL)
attr = add(name, TypeDesc::TypeNormal, Attribute::VERTEX);
diff --git a/intern/cycles/render/attribute.h b/intern/cycles/render/attribute.h
index 707d558fc79..d05952edfd7 100644
--- a/intern/cycles/render/attribute.h
+++ b/intern/cycles/render/attribute.h
@@ -21,6 +21,7 @@
#include "kernel_types.h"
+#include "util_attribute.h"
#include "util_list.h"
#include "util_param.h"
#include "util_types.h"
@@ -71,7 +72,6 @@ public:
const float *data_float() const { return (float*)data(); }
static bool same_storage(TypeDesc a, TypeDesc b);
- static ustring standard_name(AttributeStandard std);
};
/* Attribute Set
diff --git a/intern/cycles/render/buffers.cpp b/intern/cycles/render/buffers.cpp
index a79a3591e0f..6f8740b8a51 100644
--- a/intern/cycles/render/buffers.cpp
+++ b/intern/cycles/render/buffers.cpp
@@ -74,6 +74,29 @@ int BufferParams::get_passes_size()
return align_up(size, 4);
}
+/* Render Buffer Task */
+
+RenderTile::RenderTile()
+{
+ x = 0;
+ y = 0;
+ w = 0;
+ h = 0;
+
+ start_sample = 0;
+ num_samples = 0;
+ resolution = 0;
+
+ offset = 0;
+ stride = 0;
+
+ buffer = 0;
+ rng_state = 0;
+ rgba = 0;
+
+ buffers = NULL;
+}
+
/* Render Buffers */
RenderBuffers::RenderBuffers(Device *device_)
@@ -135,7 +158,7 @@ bool RenderBuffers::copy_from_device()
return true;
}
-bool RenderBuffers::get_pass(PassType type, float exposure, int sample, int components, float *pixels)
+bool RenderBuffers::get_pass_rect(PassType type, float exposure, int sample, int components, float *pixels)
{
int pass_offset = 0;
@@ -173,7 +196,18 @@ bool RenderBuffers::get_pass(PassType type, float exposure, int sample, int comp
else if(components == 3) {
assert(pass.components == 4);
- if(pass.divide_type != PASS_NONE) {
+ /* RGBA */
+ if(type == PASS_SHADOW) {
+ for(int i = 0; i < size; i++, in += pass_stride, pixels += 3) {
+ float4 f = make_float4(in[0], in[1], in[2], in[3]);
+ float invw = (f.w > 0.0f)? 1.0f/f.w: 1.0f;
+
+ pixels[0] = f.x*invw;
+ pixels[1] = f.y*invw;
+ pixels[2] = f.z*invw;
+ }
+ }
+ else if(pass.divide_type != PASS_NONE) {
/* RGB lighting passes that need to divide out color */
pass_offset = 0;
foreach(Pass& color_pass, params.passes) {
diff --git a/intern/cycles/render/buffers.h b/intern/cycles/render/buffers.h
index 78712ed89ef..ee0d78a1cd8 100644
--- a/intern/cycles/render/buffers.h
+++ b/intern/cycles/render/buffers.h
@@ -67,12 +67,11 @@ class RenderBuffers {
public:
/* buffer parameters */
BufferParams params;
+
/* float buffer */
device_vector<float> buffer;
/* random number generator state */
device_vector<uint> rng_state;
- /* mutex, must be locked manually by callers */
- thread_mutex mutex;
RenderBuffers(Device *device);
~RenderBuffers();
@@ -80,7 +79,7 @@ public:
void reset(Device *device, BufferParams& params);
bool copy_from_device();
- bool get_pass(PassType type, float exposure, int sample, int components, float *pixels);
+ bool get_pass_rect(PassType type, float exposure, int sample, int components, float *pixels);
protected:
void device_free();
@@ -105,8 +104,6 @@ public:
bool transparent;
/* byte buffer for tonemapped result */
device_vector<uchar4> rgba;
- /* mutex, must be locked manually by callers */
- thread_mutex mutex;
DisplayBuffer(Device *device);
~DisplayBuffer();
@@ -124,6 +121,28 @@ protected:
Device *device;
};
+/* Render Tile
+ * Rendering task on a buffer */
+
+class RenderTile {
+public:
+ int x, y, w, h;
+ int start_sample;
+ int num_samples;
+ int sample;
+ int resolution;
+ int offset;
+ int stride;
+
+ device_ptr buffer;
+ device_ptr rng_state;
+ device_ptr rgba;
+
+ RenderBuffers *buffers;
+
+ RenderTile();
+};
+
CCL_NAMESPACE_END
#endif /* __BUFFERS_H__ */
diff --git a/intern/cycles/render/camera.cpp b/intern/cycles/render/camera.cpp
index 55a0f23f8d0..3fd7a1b28e3 100644
--- a/intern/cycles/render/camera.cpp
+++ b/intern/cycles/render/camera.cpp
@@ -75,6 +75,7 @@ Camera::Camera()
need_update = true;
need_device_update = true;
+ previous_need_motion = -1;
}
Camera::~Camera()
@@ -140,8 +141,17 @@ void Camera::update()
void Camera::device_update(Device *device, DeviceScene *dscene, Scene *scene)
{
+ Scene::MotionType need_motion = scene->need_motion();
+
update();
+ if (previous_need_motion != need_motion) {
+ /* scene's motion model could have been changed since previous device
+ * camera update this could happen for example in case when one render
+ * layer has got motion pass and another not */
+ need_device_update = true;
+ }
+
if(!need_device_update)
return;
@@ -159,7 +169,6 @@ void Camera::device_update(Device *device, DeviceScene *dscene, Scene *scene)
kcam->worldtocamera = transform_inverse(cameratoworld);
/* camera motion */
- Scene::MotionType need_motion = scene->need_motion();
kcam->have_motion = 0;
if(need_motion == Scene::MOTION_PASS) {
@@ -226,6 +235,7 @@ void Camera::device_update(Device *device, DeviceScene *dscene, Scene *scene)
kcam->cliplength = (farclip == FLT_MAX)? FLT_MAX: farclip - nearclip;
need_device_update = false;
+ previous_need_motion = need_motion;
}
void Camera::device_free(Device *device, DeviceScene *dscene)
@@ -235,7 +245,7 @@ void Camera::device_free(Device *device, DeviceScene *dscene)
bool Camera::modified(const Camera& cam)
{
- return !((shuttertime== cam.shuttertime) &&
+ return !((shuttertime == cam.shuttertime) &&
(aperturesize == cam.aperturesize) &&
(blades == cam.blades) &&
(bladesrotation == cam.bladesrotation) &&
diff --git a/intern/cycles/render/camera.h b/intern/cycles/render/camera.h
index d2a3cce1817..82852bde5e0 100644
--- a/intern/cycles/render/camera.h
+++ b/intern/cycles/render/camera.h
@@ -91,6 +91,7 @@ public:
/* update */
bool need_update;
bool need_device_update;
+ int previous_need_motion;
/* functions */
Camera();
diff --git a/intern/cycles/render/graph.cpp b/intern/cycles/render/graph.cpp
index 34c8879aa1f..62758128a73 100644
--- a/intern/cycles/render/graph.cpp
+++ b/intern/cycles/render/graph.cpp
@@ -55,6 +55,7 @@ ShaderNode::ShaderNode(const char *name_)
name = name_;
id = -1;
bump = SHADER_BUMP_NONE;
+ special_type = SHADER_SPECIAL_TYPE_NONE;
}
ShaderNode::~ShaderNode()
@@ -180,14 +181,17 @@ void ShaderGraph::connect(ShaderOutput *from, ShaderInput *to)
assert(from && to);
if(to->link) {
- fprintf(stderr, "ShaderGraph connect: input already connected.\n");
+ fprintf(stderr, "Cycles shader graph connect: input already connected.\n");
return;
}
if(from->type != to->type) {
/* for closures we can't do automatic conversion */
if(from->type == SHADER_SOCKET_CLOSURE || to->type == SHADER_SOCKET_CLOSURE) {
- fprintf(stderr, "ShaderGraph connect: can only connect closure to closure.\n");
+ fprintf(stderr, "Cycles shader graph connect: can only connect closure to closure "
+ "(ShaderNode:%s, ShaderOutput:%s , type:%d -> to ShaderNode:%s, ShaderInput:%s, type:%d).\n",
+ from->parent->name.c_str(), from->name, (int)from->type,
+ to->parent->name.c_str(), to->name, (int)to->type);
return;
}
@@ -295,8 +299,8 @@ void ShaderGraph::copy_nodes(set<ShaderNode*>& nodes, map<ShaderNode*, ShaderNod
void ShaderGraph::remove_proxy_nodes(vector<bool>& removed)
{
foreach(ShaderNode *node, nodes) {
- ProxyNode *proxy = dynamic_cast<ProxyNode*>(node);
- if (proxy) {
+ if (node->special_type == SHADER_SPECIAL_TYPE_PROXY) {
+ ProxyNode *proxy = static_cast<ProxyNode*>(node);
ShaderInput *input = proxy->inputs[0];
ShaderOutput *output = proxy->outputs[0];
@@ -327,9 +331,8 @@ void ShaderGraph::remove_proxy_nodes(vector<bool>& removed)
}
/* remove useless mix closures nodes */
- MixClosureNode *mix = dynamic_cast<MixClosureNode*>(node);
-
- if(mix) {
+ if(node->special_type == SHADER_SPECIAL_TYPE_MIX_CLOSURE) {
+ MixClosureNode *mix = static_cast<MixClosureNode*>(node);
if(mix->outputs[0]->links.size() && mix->inputs[1]->link == mix->inputs[2]->link) {
ShaderOutput *output = mix->inputs[1]->link;
vector<ShaderInput*> inputs = mix->outputs[0]->links;
@@ -360,7 +363,7 @@ void ShaderGraph::break_cycles(ShaderNode *node, vector<bool>& visited, vector<b
if(on_stack[depnode->id]) {
/* break cycle */
disconnect(input);
- fprintf(stderr, "ShaderGraph: detected cycle in graph, connection removed.\n");
+ fprintf(stderr, "Cycles shader graph: detected cycle in graph, connection removed.\n");
}
else if(!visited[depnode->id]) {
/* visit dependencies */
@@ -399,6 +402,20 @@ void ShaderGraph::clean()
/* break cycles */
break_cycles(output(), visited, on_stack);
+ /* disconnect unused nodes */
+ foreach(ShaderNode *node, nodes) {
+ if(!visited[node->id]) {
+ foreach(ShaderInput *to, node->inputs) {
+ ShaderOutput *from = to->link;
+
+ if (from) {
+ to->link = NULL;
+ from->links.erase(remove(from->links.begin(), from->links.end(), to), from->links.end());
+ }
+ }
+ }
+ }
+
/* remove unused nodes */
foreach(ShaderNode *node, nodes) {
if(visited[node->id])
diff --git a/intern/cycles/render/graph.h b/intern/cycles/render/graph.h
index 91ec83aba21..c3b674d0f23 100644
--- a/intern/cycles/render/graph.h
+++ b/intern/cycles/render/graph.h
@@ -63,6 +63,17 @@ enum ShaderBump {
SHADER_BUMP_DY
};
+/* Identifiers for some special node types.
+ *
+ * The graph needs to identify these in the clean function.
+ * Cannot use dynamic_cast, as this is disabled for OSL. */
+
+enum ShaderNodeSpecialType {
+ SHADER_SPECIAL_TYPE_NONE,
+ SHADER_SPECIAL_TYPE_PROXY,
+ SHADER_SPECIAL_TYPE_MIX_CLOSURE
+};
+
/* Enum
*
* Utility class for enum values. */
@@ -167,6 +178,8 @@ public:
ustring name; /* name, not required to be unique */
int id; /* index in graph node array */
ShaderBump bump; /* for bump mapping utility */
+
+ ShaderNodeSpecialType special_type; /* special node type */
};
diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp
index 1af0972ecf9..f136f08dc2c 100644
--- a/intern/cycles/render/image.cpp
+++ b/intern/cycles/render/image.cpp
@@ -36,6 +36,10 @@ ImageManager::ImageManager()
need_update = true;
pack_images = false;
osl_texture_system = NULL;
+
+ tex_num_images = TEX_NUM_IMAGES;
+ tex_num_float_images = TEX_NUM_FLOAT_IMAGES;
+ tex_image_byte_start = TEX_IMAGE_BYTE_START;
}
ImageManager::~ImageManager()
@@ -56,6 +60,13 @@ void ImageManager::set_osl_texture_system(void *texture_system)
osl_texture_system = texture_system;
}
+void ImageManager::set_extended_image_limits(void)
+{
+ tex_num_images = TEX_EXTENDED_NUM_IMAGES;
+ tex_num_float_images = TEX_EXTENDED_NUM_FLOAT_IMAGES;
+ tex_image_byte_start = TEX_EXTENDED_IMAGE_BYTE_START;
+}
+
static bool is_float_image(const string& filename)
{
ImageInput *in = ImageInput::create(filename);
@@ -97,7 +108,7 @@ int ImageManager::add_image(const string& filename, bool& is_float)
for(slot = 0; slot < float_images.size(); slot++) {
if(float_images[slot] && float_images[slot]->filename == filename) {
float_images[slot]->users++;
- return slot+TEX_IMAGE_FLOAT_START;
+ return slot;
}
}
@@ -110,8 +121,8 @@ int ImageManager::add_image(const string& filename, bool& is_float)
if(slot == float_images.size()) {
/* max images limit reached */
if(float_images.size() == TEX_NUM_FLOAT_IMAGES) {
- printf("ImageManager::add_image: byte image limit reached %d, skipping '%s'\n",
- TEX_NUM_IMAGES, filename.c_str());
+ printf("ImageManager::add_image: float image limit reached %d, skipping '%s'\n",
+ tex_num_float_images, filename.c_str());
return -1;
}
@@ -125,14 +136,12 @@ int ImageManager::add_image(const string& filename, bool& is_float)
img->users = 1;
float_images[slot] = img;
- /* report slot out of total set of textures */
- slot += TEX_IMAGE_FLOAT_START;
}
else {
for(slot = 0; slot < images.size(); slot++) {
if(images[slot] && images[slot]->filename == filename) {
images[slot]->users++;
- return slot;
+ return slot+tex_image_byte_start;
}
}
@@ -144,9 +153,9 @@ int ImageManager::add_image(const string& filename, bool& is_float)
if(slot == images.size()) {
/* max images limit reached */
- if(images.size() == TEX_NUM_IMAGES) {
+ if(images.size() == tex_num_images) {
printf("ImageManager::add_image: byte image limit reached %d, skipping '%s'\n",
- TEX_NUM_IMAGES, filename.c_str());
+ tex_num_images, filename.c_str());
return -1;
}
@@ -160,6 +169,8 @@ int ImageManager::add_image(const string& filename, bool& is_float)
img->users = 1;
images[slot] = img;
+
+ slot += tex_image_byte_start;
}
need_update = true;
@@ -340,23 +351,25 @@ void ImageManager::device_load_image(Device *device, DeviceScene *dscene, int sl
Image *img;
bool is_float;
- if(slot < TEX_IMAGE_FLOAT_START) {
- img = images[slot];
+ if(slot >= tex_image_byte_start) {
+ img = images[slot - tex_image_byte_start];
is_float = false;
}
else {
- img = float_images[slot - TEX_IMAGE_FLOAT_START];
+ img = float_images[slot];
is_float = true;
}
if(is_float) {
- string filename = path_filename(float_images[slot - TEX_IMAGE_FLOAT_START]->filename);
+ string filename = path_filename(float_images[slot]->filename);
progress->set_status("Updating Images", "Loading " + filename);
- device_vector<float4>& tex_img = dscene->tex_float_image[slot - TEX_IMAGE_FLOAT_START];
+ device_vector<float4>& tex_img = dscene->tex_float_image[slot];
- if(tex_img.device_pointer)
+ if(tex_img.device_pointer) {
+ thread_scoped_lock device_lock(device_mutex);
device->tex_free(tex_img);
+ }
if(!file_load_float_image(img, tex_img)) {
/* on failure to load, we set a 1x1 pixels pink image */
@@ -373,17 +386,21 @@ void ImageManager::device_load_image(Device *device, DeviceScene *dscene, int sl
if(slot >= 10) name = string_printf("__tex_image_float_0%d", slot);
else name = string_printf("__tex_image_float_00%d", slot);
- if(!pack_images)
+ if(!pack_images) {
+ thread_scoped_lock device_lock(device_mutex);
device->tex_alloc(name.c_str(), tex_img, true, true);
+ }
}
else {
- string filename = path_filename(images[slot]->filename);
+ string filename = path_filename(images[slot - tex_image_byte_start]->filename);
progress->set_status("Updating Images", "Loading " + filename);
- device_vector<uchar4>& tex_img = dscene->tex_image[slot];
+ device_vector<uchar4>& tex_img = dscene->tex_image[slot - tex_image_byte_start];
- if(tex_img.device_pointer)
+ if(tex_img.device_pointer) {
+ thread_scoped_lock device_lock(device_mutex);
device->tex_free(tex_img);
+ }
if(!file_load_image(img, tex_img)) {
/* on failure to load, we set a 1x1 pixels pink image */
@@ -400,8 +417,10 @@ void ImageManager::device_load_image(Device *device, DeviceScene *dscene, int sl
if(slot >= 10) name = string_printf("__tex_image_0%d", slot);
else name = string_printf("__tex_image_00%d", slot);
- if(!pack_images)
+ if(!pack_images) {
+ thread_scoped_lock device_lock(device_mutex);
device->tex_alloc(name.c_str(), tex_img, true, true);
+ }
}
img->need_load = false;
@@ -412,12 +431,12 @@ void ImageManager::device_free_image(Device *device, DeviceScene *dscene, int sl
Image *img;
bool is_float;
- if(slot < TEX_IMAGE_FLOAT_START) {
- img = images[slot];
+ if(slot >= tex_image_byte_start) {
+ img = images[slot - tex_image_byte_start];
is_float = false;
}
else {
- img = float_images[slot - TEX_IMAGE_FLOAT_START];
+ img = float_images[slot];
is_float = true;
}
@@ -429,18 +448,30 @@ void ImageManager::device_free_image(Device *device, DeviceScene *dscene, int sl
#endif
}
else if(is_float) {
- device->tex_free(dscene->tex_float_image[slot - TEX_IMAGE_FLOAT_START]);
- dscene->tex_float_image[slot - TEX_IMAGE_FLOAT_START].clear();
+ device_vector<float4>& tex_img = dscene->tex_float_image[slot];
+
+ if(tex_img.device_pointer) {
+ thread_scoped_lock device_lock(device_mutex);
+ device->tex_free(tex_img);
+ }
- delete float_images[slot - TEX_IMAGE_FLOAT_START];
- float_images[slot - TEX_IMAGE_FLOAT_START] = NULL;
+ tex_img.clear();
+
+ delete float_images[slot];
+ float_images[slot] = NULL;
}
else {
- device->tex_free(dscene->tex_image[slot]);
- dscene->tex_image[slot].clear();
+ device_vector<uchar4>& tex_img = dscene->tex_image[slot - tex_image_byte_start];
+
+ if(tex_img.device_pointer) {
+ thread_scoped_lock device_lock(device_mutex);
+ device->tex_free(tex_img);
+ }
+
+ tex_img.clear();
- delete images[slot];
- images[slot] = NULL;
+ delete images[slot - tex_image_byte_start];
+ images[slot - tex_image_byte_start] = NULL;
}
}
}
@@ -449,7 +480,7 @@ void ImageManager::device_update(Device *device, DeviceScene *dscene, Progress&
{
if(!need_update)
return;
-
+
TaskPool pool;
for(size_t slot = 0; slot < images.size(); slot++) {
@@ -457,11 +488,11 @@ void ImageManager::device_update(Device *device, DeviceScene *dscene, Progress&
continue;
if(images[slot]->users == 0) {
- device_free_image(device, dscene, slot);
+ device_free_image(device, dscene, slot + tex_image_byte_start);
}
else if(images[slot]->need_load) {
if(!osl_texture_system)
- pool.push(function_bind(&ImageManager::device_load_image, this, device, dscene, slot, &progress));
+ pool.push(function_bind(&ImageManager::device_load_image, this, device, dscene, slot + tex_image_byte_start, &progress));
}
}
@@ -470,11 +501,11 @@ void ImageManager::device_update(Device *device, DeviceScene *dscene, Progress&
continue;
if(float_images[slot]->users == 0) {
- device_free_image(device, dscene, slot + TEX_IMAGE_FLOAT_START);
+ device_free_image(device, dscene, slot);
}
else if(float_images[slot]->need_load) {
if(!osl_texture_system)
- pool.push(function_bind(&ImageManager::device_load_image, this, device, dscene, slot + TEX_IMAGE_FLOAT_START, &progress));
+ pool.push(function_bind(&ImageManager::device_load_image, this, device, dscene, slot, &progress));
}
}
@@ -526,14 +557,14 @@ void ImageManager::device_pack_images(Device *device, DeviceScene *dscene, Progr
void ImageManager::device_free(Device *device, DeviceScene *dscene)
{
for(size_t slot = 0; slot < images.size(); slot++)
- device_free_image(device, dscene, slot);
+ device_free_image(device, dscene, slot + tex_image_byte_start);
for(size_t slot = 0; slot < float_images.size(); slot++)
- device_free_image(device, dscene, slot + TEX_IMAGE_FLOAT_START);
+ device_free_image(device, dscene, slot);
device->tex_free(dscene->tex_image_packed);
- dscene->tex_image_packed.clear();
-
device->tex_free(dscene->tex_image_packed_info);
+
+ dscene->tex_image_packed.clear();
dscene->tex_image_packed_info.clear();
images.clear();
diff --git a/intern/cycles/render/image.h b/intern/cycles/render/image.h
index ef046cfcafb..8fb229282dc 100644
--- a/intern/cycles/render/image.h
+++ b/intern/cycles/render/image.h
@@ -22,14 +22,18 @@
#include "device_memory.h"
#include "util_string.h"
+#include "util_thread.h"
#include "util_vector.h"
CCL_NAMESPACE_BEGIN
#define TEX_NUM_FLOAT_IMAGES 5
#define TEX_NUM_IMAGES 95
-#define TEX_IMAGE_MAX (TEX_NUM_IMAGES + TEX_NUM_FLOAT_IMAGES)
-#define TEX_IMAGE_FLOAT_START TEX_NUM_IMAGES
+#define TEX_IMAGE_BYTE_START TEX_NUM_FLOAT_IMAGES
+
+#define TEX_EXTENDED_NUM_FLOAT_IMAGES 5
+#define TEX_EXTENDED_NUM_IMAGES 512
+#define TEX_EXTENDED_IMAGE_BYTE_START TEX_EXTENDED_NUM_FLOAT_IMAGES
/* color to use when textures are not found */
#define TEX_IMAGE_MISSING_R 1
@@ -55,9 +59,16 @@ public:
void set_osl_texture_system(void *texture_system);
void set_pack_images(bool pack_images_);
+ void set_extended_image_limits(void);
+
bool need_update;
private:
+ int tex_num_images;
+ int tex_num_float_images;
+ int tex_image_byte_start;
+ thread_mutex device_mutex;
+
struct Image {
string filename;
diff --git a/intern/cycles/render/integrator.cpp b/intern/cycles/render/integrator.cpp
index da563c9c4ec..699e6979990 100644
--- a/intern/cycles/render/integrator.cpp
+++ b/intern/cycles/render/integrator.cpp
@@ -123,6 +123,8 @@ void Integrator::device_update(Device *device, DeviceScene *dscene, Scene *scene
max_samples *= (max_bounce + transparent_max_bounce + 2);
int dimensions = PRNG_BASE_NUM + max_samples*PRNG_BOUNCE_NUM;
+ dimensions = min(dimensions, SOBOL_MAX_DIMENSIONS);
+
uint *directions = dscene->sobol_directions.resize(SOBOL_BITS*dimensions);
sobol_generate_direction_vectors((uint(*)[SOBOL_BITS])directions, dimensions);
diff --git a/intern/cycles/render/light.cpp b/intern/cycles/render/light.cpp
index 6c03d0859a7..d77516a1b18 100644
--- a/intern/cycles/render/light.cpp
+++ b/intern/cycles/render/light.cpp
@@ -67,15 +67,16 @@ static void dump_background_pixels(Device *device, DeviceScene *dscene, int res,
main_task.shader_x = 0;
main_task.shader_w = width*height;
+ /* disabled splitting for now, there's an issue with multi-GPU mem_copy_from */
list<DeviceTask> split_tasks;
- main_task.split_max_size(split_tasks, 128*128);
+ main_task.split_max_size(split_tasks, 128*128);
foreach(DeviceTask& task, split_tasks) {
device->task_add(task);
device->task_wait();
+ device->mem_copy_from(d_output, task.shader_x, 1, task.shader_w, sizeof(float4));
}
- device->mem_copy_from(d_output, 0, 1, d_output.size(), sizeof(float4));
device->mem_free(d_input);
device->mem_free(d_output);
@@ -194,10 +195,11 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen
/* sum area */
if(have_emission) {
+ bool transform_applied = mesh->transform_applied;
Transform tfm = object->tfm;
int object_id = j;
- if(mesh->transform_applied)
+ if(transform_applied)
object_id = ~object_id;
for(size_t i = 0; i < mesh->triangles.size(); i++) {
@@ -211,9 +213,15 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen
offset++;
Mesh::Triangle t = mesh->triangles[i];
- float3 p1 = transform_point(&tfm, mesh->verts[t.v[0]]);
- float3 p2 = transform_point(&tfm, mesh->verts[t.v[1]]);
- float3 p3 = transform_point(&tfm, mesh->verts[t.v[2]]);
+ float3 p1 = mesh->verts[t.v[0]];
+ float3 p2 = mesh->verts[t.v[1]];
+ float3 p3 = mesh->verts[t.v[2]];
+
+ if(!transform_applied) {
+ p1 = transform_point(&tfm, p1);
+ p2 = transform_point(&tfm, p2);
+ p3 = transform_point(&tfm, p3);
+ }
totarea += triangle_area(p1, p2, p3);
}
@@ -282,8 +290,14 @@ void LightManager::device_update_distribution(Device *device, DeviceScene *dscen
/* CDF */
device->tex_alloc("__light_distribution", dscene->light_distribution);
}
- else
+ else {
dscene->light_distribution.clear();
+
+ kintegrator->num_distribution = 0;
+ kintegrator->num_all_lights = 0;
+ kintegrator->pdf_triangles = 0.0f;
+ kintegrator->pdf_lights = 0.0f;
+ }
}
void LightManager::device_update_background(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress)
diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp
index 8f5f2647ebf..7037e36f313 100644
--- a/intern/cycles/render/mesh.cpp
+++ b/intern/cycles/render/mesh.cpp
@@ -366,7 +366,7 @@ void MeshManager::update_osl_attributes(Device *device, Scene *scene, vector<Att
if(req.std != ATTR_STD_NONE) {
/* if standard attribute, add lookup by std:: name convention */
- ustring stdname = ustring(string("std::") + Attribute::standard_name(req.std).c_str());
+ ustring stdname(std::string("std::") + std::string(attribute_standard_name(req.std)));
og->attribute_map[i][stdname] = osl_attr;
}
else if(req.name != ustring()) {
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp
index e4a4b874964..4e16eea2774 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/render/nodes.cpp
@@ -112,7 +112,18 @@ static ShaderEnum color_space_init()
return enm;
}
+static ShaderEnum image_projection_init()
+{
+ ShaderEnum enm;
+
+ enm.insert("Flat", 0);
+ enm.insert("Box", 1);
+
+ return enm;
+}
+
ShaderEnum ImageTextureNode::color_space_enum = color_space_init();
+ShaderEnum ImageTextureNode::projection_enum = image_projection_init();
ImageTextureNode::ImageTextureNode()
: TextureNode("image_texture")
@@ -122,6 +133,8 @@ ImageTextureNode::ImageTextureNode()
is_float = false;
filename = "";
color_space = ustring("Color");
+ projection = ustring("Flat");;
+ projection_blend = 0.0f;
add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_UV);
add_output("Color", SHADER_SOCKET_COLOR);
@@ -169,13 +182,25 @@ void ImageTextureNode::compile(SVMCompiler& compiler)
tex_mapping.compile(compiler, vector_in->stack_offset, vector_offset);
}
- compiler.add_node(NODE_TEX_IMAGE,
- slot,
- compiler.encode_uchar4(
- vector_offset,
- color_out->stack_offset,
- alpha_out->stack_offset,
- srgb));
+ if(projection == "Flat") {
+ compiler.add_node(NODE_TEX_IMAGE,
+ slot,
+ compiler.encode_uchar4(
+ vector_offset,
+ color_out->stack_offset,
+ alpha_out->stack_offset,
+ srgb));
+ }
+ else {
+ compiler.add_node(NODE_TEX_IMAGE_BOX,
+ slot,
+ compiler.encode_uchar4(
+ vector_offset,
+ color_out->stack_offset,
+ alpha_out->stack_offset,
+ srgb),
+ __float_as_int(projection_blend));
+ }
if(vector_offset != vector_in->stack_offset)
compiler.stack_clear_offset(vector_in->type, vector_offset);
@@ -205,7 +230,7 @@ void ImageTextureNode::compile(OSLCompiler& compiler)
/* Environment Texture */
-static ShaderEnum projection_init()
+static ShaderEnum env_projection_init()
{
ShaderEnum enm;
@@ -216,7 +241,7 @@ static ShaderEnum projection_init()
}
ShaderEnum EnvironmentTextureNode::color_space_enum = color_space_init();
-ShaderEnum EnvironmentTextureNode::projection_enum = projection_init();
+ShaderEnum EnvironmentTextureNode::projection_enum = env_projection_init();
EnvironmentTextureNode::EnvironmentTextureNode()
: TextureNode("environment_texture")
@@ -873,6 +898,98 @@ void CheckerTextureNode::compile(OSLCompiler& compiler)
compiler.add(this, "node_checker_texture");
}
+/* Brick Texture */
+
+BrickTextureNode::BrickTextureNode()
+: TextureNode("brick_texture")
+{
+ offset = 0.5f;
+ offset_frequency = 2;
+ squash = 1.0f;
+ squash_frequency = 2;
+
+ add_input("Vector", SHADER_SOCKET_POINT, ShaderInput::TEXTURE_GENERATED);
+ add_input("Color1", SHADER_SOCKET_COLOR);
+ add_input("Color2", SHADER_SOCKET_COLOR);
+ add_input("Mortar", SHADER_SOCKET_COLOR);
+ add_input("Scale", SHADER_SOCKET_FLOAT, 5.0f);
+ add_input("Mortar Size", SHADER_SOCKET_FLOAT, 0.02f);
+ add_input("Bias", SHADER_SOCKET_FLOAT, 0.0f);
+ add_input("Brick Width", SHADER_SOCKET_FLOAT, 0.5f);
+ add_input("Row Height", SHADER_SOCKET_FLOAT, 0.25f);
+
+ add_output("Color", SHADER_SOCKET_COLOR);
+ add_output("Fac", SHADER_SOCKET_FLOAT);
+}
+
+void BrickTextureNode::compile(SVMCompiler& compiler)
+{
+ ShaderInput *vector_in = input("Vector");
+ ShaderInput *color1_in = input("Color1");
+ ShaderInput *color2_in = input("Color2");
+ ShaderInput *mortar_in = input("Mortar");
+ ShaderInput *scale_in = input("Scale");
+ ShaderInput *mortar_size_in = input("Mortar Size");
+ ShaderInput *bias_in = input("Bias");
+ ShaderInput *brick_width_in = input("Brick Width");
+ ShaderInput *row_height_in = input("Row Height");
+
+ ShaderOutput *color_out = output("Color");
+ ShaderOutput *fac_out = output("Fac");
+
+ compiler.stack_assign(vector_in);
+ compiler.stack_assign(color1_in);
+ compiler.stack_assign(color2_in);
+ compiler.stack_assign(mortar_in);
+ if(scale_in->link) compiler.stack_assign(scale_in);
+ if(mortar_size_in->link) compiler.stack_assign(mortar_size_in);
+ if(bias_in->link) compiler.stack_assign(bias_in);
+ if(brick_width_in->link) compiler.stack_assign(brick_width_in);
+ if(row_height_in->link) compiler.stack_assign(row_height_in);
+
+ int vector_offset = vector_in->stack_offset;
+
+ if(!tex_mapping.skip()) {
+ vector_offset = compiler.stack_find_offset(SHADER_SOCKET_VECTOR);
+ tex_mapping.compile(compiler, vector_in->stack_offset, vector_offset);
+ }
+
+ if(!color_out->links.empty())
+ compiler.stack_assign(color_out);
+ if(!fac_out->links.empty())
+ compiler.stack_assign(fac_out);
+
+ compiler.add_node(NODE_TEX_BRICK,
+ compiler.encode_uchar4(vector_offset,
+ color1_in->stack_offset, color2_in->stack_offset, mortar_in->stack_offset),
+ compiler.encode_uchar4(scale_in->stack_offset,
+ mortar_size_in->stack_offset, bias_in->stack_offset, brick_width_in->stack_offset),
+ compiler.encode_uchar4(row_height_in->stack_offset,
+ color_out->stack_offset, fac_out->stack_offset));
+
+ compiler.add_node(compiler.encode_uchar4(offset_frequency, squash_frequency),
+ __float_as_int(scale_in->value.x),
+ __float_as_int(mortar_size_in->value.x),
+ __float_as_int(bias_in->value.x));
+
+ compiler.add_node(__float_as_int(brick_width_in->value.x),
+ __float_as_int(row_height_in->value.x),
+ __float_as_int(offset),
+ __float_as_int(squash));
+
+ if(vector_offset != vector_in->stack_offset)
+ compiler.stack_clear_offset(vector_in->type, vector_offset);
+}
+
+void BrickTextureNode::compile(OSLCompiler& compiler)
+{
+ compiler.parameter("Offset", offset);
+ compiler.parameter("OffsetFrequency", offset_frequency);
+ compiler.parameter("Squash", squash);
+ compiler.parameter("SquashFrequency", squash_frequency);
+ compiler.add(this, "node_brick_texture");
+}
+
/* Normal */
NormalNode::NormalNode()
@@ -904,7 +1021,7 @@ void NormalNode::compile(SVMCompiler& compiler)
void NormalNode::compile(OSLCompiler& compiler)
{
- compiler.parameter_vector("Direction", direction);
+ compiler.parameter_normal("Direction", direction);
compiler.add(this, "node_normal");
}
@@ -1036,6 +1153,7 @@ ProxyNode::ProxyNode(ShaderSocketType from_, ShaderSocketType to_)
{
from = from_;
to = to_;
+ special_type = SHADER_SPECIAL_TYPE_PROXY;
add_input("Input", from);
add_output("Output", to);
@@ -1526,14 +1644,18 @@ TextureCoordinateNode::TextureCoordinateNode()
add_output("Camera", SHADER_SOCKET_POINT);
add_output("Window", SHADER_SOCKET_POINT);
add_output("Reflection", SHADER_SOCKET_NORMAL);
+
+ from_dupli = false;
}
void TextureCoordinateNode::attributes(AttributeRequestSet *attributes)
{
- if(!output("Generated")->links.empty())
- attributes->add(ATTR_STD_GENERATED);
- if(!output("UV")->links.empty())
- attributes->add(ATTR_STD_UV);
+ if(!from_dupli) {
+ if(!output("Generated")->links.empty())
+ attributes->add(ATTR_STD_GENERATED);
+ if(!output("UV")->links.empty())
+ attributes->add(ATTR_STD_UV);
+ }
ShaderNode::attributes(attributes);
}
@@ -1563,9 +1685,15 @@ void TextureCoordinateNode::compile(SVMCompiler& compiler)
compiler.add_node(geom_node, NODE_GEOM_P, out->stack_offset);
}
else {
- int attr = compiler.attribute(ATTR_STD_GENERATED);
- compiler.stack_assign(out);
- compiler.add_node(attr_node, attr, out->stack_offset, NODE_ATTR_FLOAT3);
+ if(from_dupli) {
+ compiler.stack_assign(out);
+ compiler.add_node(texco_node, NODE_TEXCO_DUPLI_GENERATED, out->stack_offset);
+ }
+ else {
+ int attr = compiler.attribute(ATTR_STD_GENERATED);
+ compiler.stack_assign(out);
+ compiler.add_node(attr_node, attr, out->stack_offset, NODE_ATTR_FLOAT3);
+ }
}
}
@@ -1577,9 +1705,15 @@ void TextureCoordinateNode::compile(SVMCompiler& compiler)
out = output("UV");
if(!out->links.empty()) {
- int attr = compiler.attribute(ATTR_STD_UV);
- compiler.stack_assign(out);
- compiler.add_node(attr_node, attr, out->stack_offset, NODE_ATTR_FLOAT3);
+ if(from_dupli) {
+ compiler.stack_assign(out);
+ compiler.add_node(texco_node, NODE_TEXCO_DUPLI_UV, out->stack_offset);
+ }
+ else {
+ int attr = compiler.attribute(ATTR_STD_UV);
+ compiler.stack_assign(out);
+ compiler.add_node(attr_node, attr, out->stack_offset, NODE_ATTR_FLOAT3);
+ }
}
out = output("Object");
@@ -1798,16 +1932,38 @@ void ObjectInfoNode::compile(OSLCompiler& compiler)
ParticleInfoNode::ParticleInfoNode()
: ShaderNode("particle_info")
{
+ add_output("Index", SHADER_SOCKET_FLOAT);
add_output("Age", SHADER_SOCKET_FLOAT);
add_output("Lifetime", SHADER_SOCKET_FLOAT);
+ add_output("Location", SHADER_SOCKET_POINT);
+ #if 0 /* not yet supported */
+ add_output("Rotation", SHADER_SOCKET_QUATERNION);
+ #endif
+ add_output("Size", SHADER_SOCKET_FLOAT);
+ add_output("Velocity", SHADER_SOCKET_VECTOR);
+ add_output("Angular Velocity", SHADER_SOCKET_VECTOR);
}
void ParticleInfoNode::attributes(AttributeRequestSet *attributes)
{
+ if(!output("Index")->links.empty())
+ attributes->add(ATTR_STD_PARTICLE);
if(!output("Age")->links.empty())
attributes->add(ATTR_STD_PARTICLE);
if(!output("Lifetime")->links.empty())
attributes->add(ATTR_STD_PARTICLE);
+ if(!output("Location")->links.empty())
+ attributes->add(ATTR_STD_PARTICLE);
+ #if 0 /* not yet supported */
+ if(!output("Rotation")->links.empty())
+ attributes->add(ATTR_STD_PARTICLE);
+ #endif
+ if(!output("Size")->links.empty())
+ attributes->add(ATTR_STD_PARTICLE);
+ if(!output("Velocity")->links.empty())
+ attributes->add(ATTR_STD_PARTICLE);
+ if(!output("Angular Velocity")->links.empty())
+ attributes->add(ATTR_STD_PARTICLE);
ShaderNode::attributes(attributes);
}
@@ -1816,6 +1972,12 @@ void ParticleInfoNode::compile(SVMCompiler& compiler)
{
ShaderOutput *out;
+ out = output("Index");
+ if(!out->links.empty()) {
+ compiler.stack_assign(out);
+ compiler.add_node(NODE_PARTICLE_INFO, NODE_INFO_PAR_INDEX, out->stack_offset);
+ }
+
out = output("Age");
if(!out->links.empty()) {
compiler.stack_assign(out);
@@ -1827,6 +1989,38 @@ void ParticleInfoNode::compile(SVMCompiler& compiler)
compiler.stack_assign(out);
compiler.add_node(NODE_PARTICLE_INFO, NODE_INFO_PAR_LIFETIME, out->stack_offset);
}
+
+ out = output("Location");
+ if(!out->links.empty()) {
+ compiler.stack_assign(out);
+ compiler.add_node(NODE_PARTICLE_INFO, NODE_INFO_PAR_LOCATION, out->stack_offset);
+ }
+
+ #if 0 /* XXX Quaternion data is not yet supported by Cycles */
+ out = output("Rotation");
+ if(!out->links.empty()) {
+ compiler.stack_assign(out);
+ compiler.add_node(NODE_PARTICLE_INFO, NODE_INFO_PAR_ROTATION, out->stack_offset);
+ }
+ #endif
+
+ out = output("Size");
+ if(!out->links.empty()) {
+ compiler.stack_assign(out);
+ compiler.add_node(NODE_PARTICLE_INFO, NODE_INFO_PAR_SIZE, out->stack_offset);
+ }
+
+ out = output("Velocity");
+ if(!out->links.empty()) {
+ compiler.stack_assign(out);
+ compiler.add_node(NODE_PARTICLE_INFO, NODE_INFO_PAR_VELOCITY, out->stack_offset);
+ }
+
+ out = output("Angular Velocity");
+ if(!out->links.empty()) {
+ compiler.stack_assign(out);
+ compiler.add_node(NODE_PARTICLE_INFO, NODE_INFO_PAR_ANGULAR_VELOCITY, out->stack_offset);
+ }
}
void ParticleInfoNode::compile(OSLCompiler& compiler)
@@ -1911,6 +2105,8 @@ void AddClosureNode::compile(OSLCompiler& compiler)
MixClosureNode::MixClosureNode()
: ShaderNode("mix_closure")
{
+ special_type = SHADER_SPECIAL_TYPE_MIX_CLOSURE;
+
add_input("Fac", SHADER_SOCKET_FLOAT, 0.5f);
add_input("Closure1", SHADER_SOCKET_CLOSURE);
add_input("Closure2", SHADER_SOCKET_CLOSURE);
@@ -1962,6 +2158,8 @@ MixNode::MixNode()
{
type = ustring("Mix");
+ use_clamp = false;
+
add_input("Fac", SHADER_SOCKET_FLOAT, 0.5f);
add_input("Color1", SHADER_SOCKET_COLOR);
add_input("Color2", SHADER_SOCKET_COLOR);
@@ -2010,11 +2208,17 @@ void MixNode::compile(SVMCompiler& compiler)
compiler.add_node(NODE_MIX, fac_in->stack_offset, color1_in->stack_offset, color2_in->stack_offset);
compiler.add_node(NODE_MIX, type_enum[type], color_out->stack_offset);
+
+ if(use_clamp) {
+ compiler.add_node(NODE_MIX, 0, color_out->stack_offset);
+ compiler.add_node(NODE_MIX, NODE_MIX_CLAMP, color_out->stack_offset);
+ }
}
void MixNode::compile(OSLCompiler& compiler)
{
compiler.parameter("type", type);
+ compiler.parameter("Clamp", use_clamp);
compiler.add(this, "node_mix");
}
@@ -2340,7 +2544,7 @@ void LayerWeightNode::compile(SVMCompiler& compiler)
void LayerWeightNode::compile(OSLCompiler& compiler)
{
- compiler.add(this, "node_layer_height");
+ compiler.add(this, "node_blend_weight");
}
/* Output */
@@ -2382,6 +2586,8 @@ MathNode::MathNode()
{
type = ustring("Add");
+ use_clamp = false;
+
add_input("Value1", SHADER_SOCKET_FLOAT);
add_input("Value2", SHADER_SOCKET_FLOAT);
add_output("Value", SHADER_SOCKET_FLOAT);
@@ -2426,11 +2632,17 @@ void MathNode::compile(SVMCompiler& compiler)
compiler.add_node(NODE_MATH, type_enum[type], value1_in->stack_offset, value2_in->stack_offset);
compiler.add_node(NODE_MATH, value_out->stack_offset);
+
+ if(use_clamp) {
+ compiler.add_node(NODE_MATH, NODE_MATH_CLAMP, value_out->stack_offset);
+ compiler.add_node(NODE_MATH, value_out->stack_offset);
+ }
}
void MathNode::compile(OSLCompiler& compiler)
{
compiler.parameter("type", type);
+ compiler.parameter("Clamp", use_clamp);
compiler.add(this, "node_math");
}
@@ -2572,6 +2784,19 @@ void RGBRampNode::compile(SVMCompiler& compiler)
void RGBRampNode::compile(OSLCompiler& compiler)
{
+ /* OSL shader only takes separate RGB and A array, split the RGBA base array */
+ /* NB: cycles float3 type is actually 4 floats! need to use an explicit array */
+ float ramp_color[RAMP_TABLE_SIZE][3];
+ float ramp_alpha[RAMP_TABLE_SIZE];
+ for (int i = 0; i < RAMP_TABLE_SIZE; ++i) {
+ ramp_color[i][0] = ramp[i].x;
+ ramp_color[i][1] = ramp[i].y;
+ ramp_color[i][2] = ramp[i].z;
+ ramp_alpha[i] = ramp[i].w;
+ }
+ compiler.parameter_color_array("ramp_color", ramp_color, RAMP_TABLE_SIZE);
+ compiler.parameter_array("ramp_alpha", ramp_alpha, RAMP_TABLE_SIZE);
+
compiler.add(this, "node_rgb_ramp");
}
diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h
index efd814e4ae6..e8e584dd8ef 100644
--- a/intern/cycles/render/nodes.h
+++ b/intern/cycles/render/nodes.h
@@ -70,8 +70,11 @@ public:
bool is_float;
string filename;
ustring color_space;
+ ustring projection;
+ float projection_blend;
static ShaderEnum color_space_enum;
+ static ShaderEnum projection_enum;
};
class EnvironmentTextureNode : public TextureNode {
@@ -155,6 +158,14 @@ public:
SHADER_NODE_CLASS(CheckerTextureNode)
};
+class BrickTextureNode : public TextureNode {
+public:
+ SHADER_NODE_CLASS(BrickTextureNode)
+
+ float offset, squash;
+ int offset_frequency, squash_frequency;
+};
+
class MappingNode : public ShaderNode {
public:
SHADER_NODE_CLASS(MappingNode)
@@ -273,6 +284,8 @@ class TextureCoordinateNode : public ShaderNode {
public:
SHADER_NODE_CLASS(TextureCoordinateNode)
void attributes(AttributeRequestSet *attributes);
+
+ bool from_dupli;
};
class LightPathNode : public ShaderNode {
@@ -329,6 +342,8 @@ class MixNode : public ShaderNode {
public:
SHADER_NODE_CLASS(MixNode)
+ bool use_clamp;
+
ustring type;
static ShaderEnum type_enum;
};
@@ -385,6 +400,8 @@ class MathNode : public ShaderNode {
public:
SHADER_NODE_CLASS(MathNode)
+ bool use_clamp;
+
ustring type;
static ShaderEnum type_enum;
};
diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp
index 6de7eaea343..d78a82d589a 100644
--- a/intern/cycles/render/object.cpp
+++ b/intern/cycles/render/object.cpp
@@ -111,8 +111,9 @@ void Object::apply_transform()
mesh->compute_bounds();
compute_bounds(false);
}
-
- tfm = transform_identity();
+
+ /* tfm is not reset to identity, all code that uses it needs to check the
+ transform_applied boolean */
}
void Object::tag_update(Scene *scene)
@@ -234,6 +235,10 @@ void ObjectManager::device_update_transforms(Device *device, DeviceScene *dscene
}
}
+ /* dupli object coords */
+ objects[offset+16] = make_float4(ob->dupli_generated[0], ob->dupli_generated[1], ob->dupli_generated[2], 0.0f);
+ objects[offset+17] = make_float4(ob->dupli_uv[0], ob->dupli_uv[1], 0.0f, 0.0f);
+
/* object flag */
if(ob->use_holdout)
flag |= SD_HOLDOUT_MASK;
@@ -248,38 +253,6 @@ void ObjectManager::device_update_transforms(Device *device, DeviceScene *dscene
device->tex_alloc("__object_flag", dscene->object_flag);
}
-void ObjectManager::device_update_particles(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress)
-{
- /* count particles.
- * adds one dummy particle at the beginning to avoid invalid lookups,
- * in case a shader uses particle info without actual particle data.
- */
- int num_particles = 1;
- foreach(Object *ob, scene->objects)
- num_particles += ob->particles.size();
-
- float4 *particles = dscene->particles.resize(PARTICLE_SIZE*num_particles);
-
- /* dummy particle */
- particles[0] = make_float4(0.0f, 0.0f, 0.0f, 0.0f);
-
- int i = 1;
- foreach(Object *ob, scene->objects) {
- foreach(Particle &pa, ob->particles) {
- /* pack in texture */
- int offset = i*PARTICLE_SIZE;
-
- particles[offset] = make_float4(pa.age, pa.lifetime, 0.0f, 0.0f);
-
- i++;
-
- if(progress.get_cancel()) return;
- }
- }
-
- device->tex_alloc("__particles", dscene->particles);
-}
-
void ObjectManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress)
{
if(!need_update)
@@ -305,11 +278,6 @@ void ObjectManager::device_update(Device *device, DeviceScene *dscene, Scene *sc
if(progress.get_cancel()) return;
- progress.set_status("Updating Objects", "Copying Particles to device");
- device_update_particles(device, dscene, scene, progress);
-
- if(progress.get_cancel()) return;
-
need_update = false;
}
@@ -320,9 +288,6 @@ void ObjectManager::device_free(Device *device, DeviceScene *dscene)
device->tex_free(dscene->object_flag);
dscene->object_flag.clear();
-
- device->tex_free(dscene->particles);
- dscene->particles.clear();
}
void ObjectManager::apply_static_transforms(Scene *scene, Progress& progress)
diff --git a/intern/cycles/render/object.h b/intern/cycles/render/object.h
index 6d674731b07..e2c3ad4e071 100644
--- a/intern/cycles/render/object.h
+++ b/intern/cycles/render/object.h
@@ -35,11 +35,6 @@ struct Transform;
/* Object */
-struct Particle {
- float age;
- float lifetime;
-};
-
class Object {
public:
Mesh *mesh;
@@ -54,8 +49,10 @@ public:
bool use_motion;
bool use_holdout;
+ float3 dupli_generated;
+ float2 dupli_uv;
+
int particle_id;
- vector<Particle> particles;
Object();
~Object();
@@ -77,7 +74,6 @@ public:
void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress);
void device_update_transforms(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress);
- void device_update_particles(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress);
void device_free(Device *device, DeviceScene *dscene);
void tag_update(Scene *scene);
diff --git a/intern/cycles/render/osl.cpp b/intern/cycles/render/osl.cpp
index 04af9b48280..6d23097d7a8 100644
--- a/intern/cycles/render/osl.cpp
+++ b/intern/cycles/render/osl.cpp
@@ -101,8 +101,9 @@ void OSLShaderManager::device_update(Device *device, DeviceScene *dscene, Scene
/* setup shader engine */
og->ss = ss;
+ og->services = services;
int background_id = scene->shader_manager->get_shader_id(scene->default_background);
- og->background_state = og->surface_state[background_id];
+ og->background_state = og->surface_state[background_id & SHADER_MASK];
og->use = true;
tls_create(OSLGlobals::ThreadData, og->thread_data);
@@ -153,14 +154,43 @@ string OSLCompiler::id(ShaderNode *node)
return stream.str();
}
-string OSLCompiler::compatible_name(const char *name)
+string OSLCompiler::compatible_name(ShaderNode *node, ShaderInput *input)
{
- string sname = name;
+ string sname(input->name);
size_t i;
+ /* strip whitespace */
while((i = sname.find(" ")) != string::npos)
sname.replace(i, 1, "");
+ /* if output exists with the same name, add "In" suffix */
+ foreach(ShaderOutput *output, node->outputs) {
+ if (strcmp(input->name, output->name)==0) {
+ sname += "In";
+ break;
+ }
+ }
+
+ return sname;
+}
+
+string OSLCompiler::compatible_name(ShaderNode *node, ShaderOutput *output)
+{
+ string sname(output->name);
+ size_t i;
+
+ /* strip whitespace */
+ while((i = sname.find(" ")) != string::npos)
+ sname.replace(i, 1, "");
+
+ /* if output exists with the same name, add "In" suffix */
+ foreach(ShaderInput *input, node->inputs) {
+ if (strcmp(input->name, output->name)==0) {
+ sname += "Out";
+ break;
+ }
+ }
+
return sname;
}
@@ -197,21 +227,22 @@ void OSLCompiler::add(ShaderNode *node, const char *name)
else if(input->default_value != ShaderInput::NONE)
continue;
+ string param_name = compatible_name(node, input);
switch(input->type) {
case SHADER_SOCKET_COLOR:
- parameter_color(input->name, input->value);
+ parameter_color(param_name.c_str(), input->value);
break;
case SHADER_SOCKET_POINT:
- parameter_point(input->name, input->value);
+ parameter_point(param_name.c_str(), input->value);
break;
case SHADER_SOCKET_VECTOR:
- parameter_vector(input->name, input->value);
+ parameter_vector(param_name.c_str(), input->value);
break;
case SHADER_SOCKET_NORMAL:
- parameter_normal(input->name, input->value);
+ parameter_normal(param_name.c_str(), input->value);
break;
case SHADER_SOCKET_FLOAT:
- parameter(input->name, input->value.x);
+ parameter(param_name.c_str(), input->value.x);
break;
case SHADER_SOCKET_CLOSURE:
break;
@@ -241,12 +272,8 @@ void OSLCompiler::add(ShaderNode *node, const char *name)
/* connect shaders */
string id_from = id(input->link->parent);
string id_to = id(node);
- string param_from = compatible_name(input->link->name);
- string param_to = compatible_name(input->name);
-
- /* avoid name conflict with same input/output socket name */
- if(input->link->parent->input(input->link->name))
- param_from += "_";
+ string param_from = compatible_name(input->link->parent, input->link);
+ string param_to = compatible_name(node, input);
ss->ConnectShaders(id_from.c_str(), param_from.c_str(), id_to.c_str(), param_to.c_str());
}
@@ -308,6 +335,70 @@ void OSLCompiler::parameter(const char *name, const Transform& tfm)
ss->Parameter(name, TypeDesc::TypeMatrix, (float*)&tfm);
}
+void OSLCompiler::parameter_array(const char *name, const float f[], int arraylen)
+{
+ OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys;
+ TypeDesc type = TypeDesc::TypeFloat;
+ type.arraylen = arraylen;
+ ss->Parameter(name, type, f);
+}
+
+void OSLCompiler::parameter_color_array(const char *name, const float f[][3], int arraylen)
+{
+ OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys;
+ TypeDesc type = TypeDesc::TypeColor;
+ type.arraylen = arraylen;
+ ss->Parameter(name, type, f);
+}
+
+void OSLCompiler::parameter_vector_array(const char *name, const float f[][3], int arraylen)
+{
+ OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys;
+ TypeDesc type = TypeDesc::TypeVector;
+ type.arraylen = arraylen;
+ ss->Parameter(name, type, f);
+}
+
+void OSLCompiler::parameter_normal_array(const char *name, const float f[][3], int arraylen)
+{
+ OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys;
+ TypeDesc type = TypeDesc::TypeNormal;
+ type.arraylen = arraylen;
+ ss->Parameter(name, type, f);
+}
+
+void OSLCompiler::parameter_point_array(const char *name, const float f[][3], int arraylen)
+{
+ OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys;
+ TypeDesc type = TypeDesc::TypePoint;
+ type.arraylen = arraylen;
+ ss->Parameter(name, type, f);
+}
+
+void OSLCompiler::parameter_array(const char *name, const int f[], int arraylen)
+{
+ OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys;
+ TypeDesc type = TypeDesc::TypeInt;
+ type.arraylen = arraylen;
+ ss->Parameter(name, type, f);
+}
+
+void OSLCompiler::parameter_array(const char *name, const char * const s[], int arraylen)
+{
+ OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys;
+ TypeDesc type = TypeDesc::TypeString;
+ type.arraylen = arraylen;
+ ss->Parameter(name, type, s);
+}
+
+void OSLCompiler::parameter_array(const char *name, const Transform tfm[], int arraylen)
+{
+ OSL::ShadingSystem *ss = (OSL::ShadingSystem*)shadingsys;
+ TypeDesc type = TypeDesc::TypeMatrix;
+ type.arraylen = arraylen;
+ ss->Parameter(name, type, (const float *)tfm);
+}
+
void OSLCompiler::find_dependencies(set<ShaderNode*>& dependencies, ShaderInput *input)
{
ShaderNode *node = (input->link)? input->link->parent: NULL;
@@ -482,6 +573,14 @@ void OSLCompiler::parameter_vector(const char *name, float3 f)
{
}
+void OSLCompiler::parameter_point(const char *name, float3 f)
+{
+}
+
+void OSLCompiler::parameter_normal(const char *name, float3 f)
+{
+}
+
void OSLCompiler::parameter(const char *name, int f)
{
}
@@ -498,6 +597,38 @@ void OSLCompiler::parameter(const char *name, const Transform& tfm)
{
}
+void OSLCompiler::parameter_array(const char *name, const float f[], int arraylen)
+{
+}
+
+void OSLCompiler::parameter_color_array(const char *name, const float f[][3], int arraylen)
+{
+}
+
+void OSLCompiler::parameter_vector_array(const char *name, const float f[][3], int arraylen)
+{
+}
+
+void OSLCompiler::parameter_normal_array(const char *name, const float f[][3], int arraylen)
+{
+}
+
+void OSLCompiler::parameter_point_array(const char *name, const float f[][3], int arraylen)
+{
+}
+
+void OSLCompiler::parameter_array(const char *name, const int f[], int arraylen)
+{
+}
+
+void OSLCompiler::parameter_array(const char *name, const char * const s[], int arraylen)
+{
+}
+
+void OSLCompiler::parameter_array(const char *name, const Transform tfm[], int arraylen)
+{
+}
+
#endif /* WITH_OSL */
CCL_NAMESPACE_END
diff --git a/intern/cycles/render/osl.h b/intern/cycles/render/osl.h
index 329cf9a4828..90107a34a98 100644
--- a/intern/cycles/render/osl.h
+++ b/intern/cycles/render/osl.h
@@ -37,6 +37,7 @@ class OSLGlobals;
class Scene;
class ShaderGraph;
class ShaderNode;
+class ShaderInput;
class ShaderOutput;
#ifdef WITH_OSL
@@ -79,6 +80,15 @@ public:
void parameter(const char *name, ustring str);
void parameter(const char *name, const Transform& tfm);
+ void parameter_array(const char *name, const float f[], int arraylen);
+ void parameter_color_array(const char *name, const float f[][3], int arraylen);
+ void parameter_vector_array(const char *name, const float f[][3], int arraylen);
+ void parameter_normal_array(const char *name, const float f[][3], int arraylen);
+ void parameter_point_array(const char *name, const float f[][3], int arraylen);
+ void parameter_array(const char *name, const int f[], int arraylen);
+ void parameter_array(const char *name, const char * const s[], int arraylen);
+ void parameter_array(const char *name, const Transform tfm[], int arraylen);
+
ShaderType output_type() { return current_type; }
bool background;
@@ -87,7 +97,8 @@ private:
string id(ShaderNode *node);
void compile_type(Shader *shader, ShaderGraph *graph, ShaderType type);
bool node_skip_input(ShaderNode *node, ShaderInput *input);
- string compatible_name(const char *name);
+ string compatible_name(ShaderNode *node, ShaderInput *input);
+ string compatible_name(ShaderNode *node, ShaderOutput *output);
void find_dependencies(set<ShaderNode*>& dependencies, ShaderInput *input);
void generate_nodes(const set<ShaderNode*>& nodes);
diff --git a/intern/cycles/render/particles.cpp b/intern/cycles/render/particles.cpp
new file mode 100644
index 00000000000..9f951d9673f
--- /dev/null
+++ b/intern/cycles/render/particles.cpp
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "device.h"
+#include "particles.h"
+#include "scene.h"
+
+#include "util_foreach.h"
+#include "util_map.h"
+#include "util_progress.h"
+#include "util_vector.h"
+
+CCL_NAMESPACE_BEGIN
+
+/* Particle System */
+
+ParticleSystem::ParticleSystem()
+{
+}
+
+ParticleSystem::~ParticleSystem()
+{
+}
+
+void ParticleSystem::tag_update(Scene *scene)
+{
+ scene->particle_system_manager->need_update = true;
+}
+
+/* Particle System Manager */
+
+ParticleSystemManager::ParticleSystemManager()
+{
+ need_update = true;
+}
+
+ParticleSystemManager::~ParticleSystemManager()
+{
+}
+
+void ParticleSystemManager::device_update_particles(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress)
+{
+ /* count particles.
+ * adds one dummy particle at the beginning to avoid invalid lookups,
+ * in case a shader uses particle info without actual particle data.
+ */
+ int num_particles = 1;
+ foreach(ParticleSystem *psys, scene->particle_systems)
+ num_particles += psys->particles.size();
+
+ float4 *particles = dscene->particles.resize(PARTICLE_SIZE*num_particles);
+
+ /* dummy particle */
+ particles[0] = make_float4(0.0f, 0.0f, 0.0f, 0.0f);
+ particles[1] = make_float4(0.0f, 0.0f, 0.0f, 0.0f);
+ particles[2] = make_float4(0.0f, 0.0f, 0.0f, 0.0f);
+ particles[3] = make_float4(0.0f, 0.0f, 0.0f, 0.0f);
+ particles[4] = make_float4(0.0f, 0.0f, 0.0f, 0.0f);
+
+ int i = 1;
+ foreach(ParticleSystem *psys, scene->particle_systems) {
+ foreach(Particle &pa, psys->particles) {
+ /* pack in texture */
+ int offset = i*PARTICLE_SIZE;
+
+ particles[offset] = make_float4(pa.index, pa.age, pa.lifetime, pa.size);
+ particles[offset+1] = pa.rotation;
+ particles[offset+2] = make_float4(pa.location.x, pa.location.y, pa.location.z, pa.velocity.x);
+ particles[offset+3] = make_float4(pa.velocity.y, pa.velocity.z, pa.angular_velocity.x, pa.angular_velocity.y);
+ particles[offset+4] = make_float4(pa.angular_velocity.z, 0.0f, 0.0f, 0.0f);
+
+ i++;
+
+ if(progress.get_cancel()) return;
+ }
+ }
+
+ device->tex_alloc("__particles", dscene->particles);
+}
+
+void ParticleSystemManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress)
+{
+ if(!need_update)
+ return;
+
+ device_free(device, dscene);
+
+ progress.set_status("Updating Particle Systems", "Copying Particles to device");
+ device_update_particles(device, dscene, scene, progress);
+
+ if(progress.get_cancel()) return;
+
+ need_update = false;
+}
+
+void ParticleSystemManager::device_free(Device *device, DeviceScene *dscene)
+{
+ device->tex_free(dscene->particles);
+ dscene->particles.clear();
+}
+
+void ParticleSystemManager::tag_update(Scene *scene)
+{
+ need_update = true;
+}
+
+CCL_NAMESPACE_END
+
diff --git a/intern/cycles/render/particles.h b/intern/cycles/render/particles.h
new file mode 100644
index 00000000000..afc8b2b2dcb
--- /dev/null
+++ b/intern/cycles/render/particles.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __PARTICLES_H__
+#define __PARTICLES_H__
+
+#include "util_types.h"
+#include "util_vector.h"
+
+CCL_NAMESPACE_BEGIN
+
+class Device;
+class DeviceScene;
+class Progress;
+class Scene;
+
+/* Particle System */
+
+struct Particle {
+ int index;
+ float age;
+ float lifetime;
+ float3 location;
+ float4 rotation;
+ float size;
+ float3 velocity;
+ float3 angular_velocity;
+};
+
+class ParticleSystem {
+public:
+ ParticleSystem();
+ ~ParticleSystem();
+
+ void tag_update(Scene *scene);
+
+ vector<Particle> particles;
+};
+
+/* ParticleSystem Manager */
+
+class ParticleSystemManager {
+public:
+ bool need_update;
+
+ ParticleSystemManager();
+ ~ParticleSystemManager();
+
+ void device_update_particles(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress);
+ void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress);
+ void device_free(Device *device, DeviceScene *dscene);
+
+ void tag_update(Scene *scene);
+};
+
+CCL_NAMESPACE_END
+
+#endif /* __PARTICLES_H__ */
+
diff --git a/intern/cycles/render/scene.cpp b/intern/cycles/render/scene.cpp
index 45c8a05c27d..071338d49c2 100644
--- a/intern/cycles/render/scene.cpp
+++ b/intern/cycles/render/scene.cpp
@@ -28,6 +28,7 @@
#include "shader.h"
#include "mesh.h"
#include "object.h"
+#include "particles.h"
#include "scene.h"
#include "svm.h"
#include "osl.h"
@@ -37,7 +38,7 @@
CCL_NAMESPACE_BEGIN
-Scene::Scene(const SceneParams& params_)
+Scene::Scene(const SceneParams& params_, const DeviceInfo& device_info_)
: params(params_)
{
device = NULL;
@@ -53,6 +54,10 @@ Scene::Scene(const SceneParams& params_)
integrator = new Integrator();
image_manager = new ImageManager();
shader_manager = ShaderManager::create(this);
+ particle_system_manager = new ParticleSystemManager();
+
+ if (device_info_.type == DEVICE_CPU)
+ image_manager->set_extended_image_limits();
}
Scene::~Scene()
@@ -92,9 +97,14 @@ Scene::~Scene()
delete o;
foreach(Light *l, lights)
delete l;
+ foreach(ParticleSystem *p, particle_systems)
+ delete p;
if(device) image_manager->device_free(device, &dscene);
delete image_manager;
+
+ if(device) particle_system_manager->device_free(device, &dscene);
+ delete particle_system_manager;
}
void Scene::device_update(Device *device_, Progress& progress)
@@ -149,6 +159,11 @@ void Scene::device_update(Device *device_, Progress& progress)
if(progress.get_cancel()) return;
+ progress.set_status("Updating Particle Systems");
+ particle_system_manager->device_update(device, &dscene, this, progress);
+
+ if(progress.get_cancel()) return;
+
progress.set_status("Updating Filter");
filter->device_update(device, &dscene);
@@ -210,7 +225,8 @@ bool Scene::need_reset()
|| light_manager->need_update
|| filter->need_update
|| integrator->need_update
- || shader_manager->need_update);
+ || shader_manager->need_update
+ || particle_system_manager->need_update);
}
CCL_NAMESPACE_END
diff --git a/intern/cycles/render/scene.h b/intern/cycles/render/scene.h
index 8b9944cb76e..09087fb2970 100644
--- a/intern/cycles/render/scene.h
+++ b/intern/cycles/render/scene.h
@@ -25,6 +25,7 @@
#include "kernel_types.h"
+#include "util_attribute.h"
#include "util_param.h"
#include "util_string.h"
#include "util_thread.h"
@@ -37,6 +38,7 @@ class AttributeRequestSet;
class Background;
class Camera;
class Device;
+class DeviceInfo;
class Film;
class Filter;
class Integrator;
@@ -46,6 +48,8 @@ class Mesh;
class MeshManager;
class Object;
class ObjectManager;
+class ParticleSystemManager;
+class ParticleSystem;
class Shader;
class ShaderManager;
class Progress;
@@ -97,8 +101,8 @@ public:
device_vector<uint> sobol_directions;
/* images */
- device_vector<uchar4> tex_image[TEX_NUM_IMAGES];
- device_vector<float4> tex_float_image[TEX_NUM_FLOAT_IMAGES];
+ device_vector<uchar4> tex_image[TEX_EXTENDED_NUM_IMAGES];
+ device_vector<float4> tex_float_image[TEX_EXTENDED_NUM_FLOAT_IMAGES];
/* opencl images */
device_vector<uchar4> tex_image_packed;
@@ -154,6 +158,7 @@ public:
vector<Mesh*> meshes;
vector<Shader*> shaders;
vector<Light*> lights;
+ vector<ParticleSystem*> particle_systems;
/* data managers */
ImageManager *image_manager;
@@ -161,6 +166,7 @@ public:
ShaderManager *shader_manager;
MeshManager *mesh_manager;
ObjectManager *object_manager;
+ ParticleSystemManager *particle_system_manager;
/* default shaders */
int default_surface;
@@ -179,7 +185,7 @@ public:
/* mutex must be locked manually by callers */
thread_mutex mutex;
- Scene(const SceneParams& params);
+ Scene(const SceneParams& params, const DeviceInfo& device_info);
~Scene();
void device_update(Device *device, Progress& progress);
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index a9f7e5beb56..cd410e4e011 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@ -27,6 +27,7 @@
#include "util_foreach.h"
#include "util_function.h"
+#include "util_math.h"
#include "util_opengl.h"
#include "util_task.h"
#include "util_time.h"
@@ -35,15 +36,23 @@ CCL_NAMESPACE_BEGIN
Session::Session(const SessionParams& params_)
: params(params_),
- tile_manager(params.progressive, params.samples, params.tile_size, params.min_size)
+ tile_manager(params.progressive, params.samples, params.tile_size, params.start_resolution,
+ (params.background)? 1: max(params.device.multi_devices.size(), 1))
{
device_use_gl = ((params.device.type != DEVICE_CPU) && !params.background);
TaskScheduler::init(params.threads);
device = Device::create(params.device, params.background, params.threads);
- buffers = new RenderBuffers(device);
- display = new DisplayBuffer(device);
+
+ if(params.background) {
+ buffers = NULL;
+ display = NULL;
+ }
+ else {
+ buffers = new RenderBuffers(device);
+ display = new DisplayBuffer(device);
+ }
session_thread = NULL;
scene = NULL;
@@ -52,7 +61,6 @@ Session::Session(const SessionParams& params_)
reset_time = 0.0;
preview_time = 0.0;
paused_time = 0.0;
- sample = 0;
delayed_reset.do_reset = false;
delayed_reset.samples = 0;
@@ -81,7 +89,7 @@ Session::~Session()
wait();
}
- if(params.output_path != "") {
+ if(display && params.output_path != "") {
tonemap();
progress.set_status("Writing Image", params.output_path);
@@ -118,8 +126,8 @@ void Session::reset_gpu(BufferParams& buffer_params, int samples)
/* block for buffer acces and reset immediately. we can't do this
* in the thread, because we need to allocate an OpenGL buffer, and
* that only works in the main thread */
- thread_scoped_lock display_lock(display->mutex);
- thread_scoped_lock buffers_lock(buffers->mutex);
+ thread_scoped_lock display_lock(display_mutex);
+ thread_scoped_lock buffers_lock(buffers_mutex);
display_outdated = true;
reset_time = time_dt();
@@ -135,7 +143,7 @@ void Session::reset_gpu(BufferParams& buffer_params, int samples)
bool Session::draw_gpu(BufferParams& buffer_params)
{
/* block for buffer access */
- thread_scoped_lock display_lock(display->mutex);
+ thread_scoped_lock display_lock(display_mutex);
/* first check we already rendered something */
if(gpu_draw_ready) {
@@ -145,7 +153,7 @@ bool Session::draw_gpu(BufferParams& buffer_params)
/* for CUDA we need to do tonemapping still, since we can
* only access GL buffers from the main thread */
if(gpu_need_tonemap) {
- thread_scoped_lock buffers_lock(buffers->mutex);
+ thread_scoped_lock buffers_lock(buffers_mutex);
tonemap();
gpu_need_tonemap = false;
gpu_need_tonemap_cond.notify_all();
@@ -226,23 +234,18 @@ void Session::run_gpu()
/* buffers mutex is locked entirely while rendering each
* sample, and released/reacquired on each iteration to allow
* reset and draw in between */
- thread_scoped_lock buffers_lock(buffers->mutex);
+ thread_scoped_lock buffers_lock(buffers_mutex);
/* update status and timing */
update_status_time();
/* path trace */
- foreach(Tile& tile, tile_manager.state.tiles) {
- path_trace(tile);
-
- device->task_wait();
+ path_trace();
- if(device->error_message() != "")
- progress.set_cancel(device->error_message());
+ device->task_wait();
- if(progress.get_cancel())
- break;
- }
+ if(device->error_message() != "")
+ progress.set_cancel(device->error_message());
/* update status and timing */
update_status_time();
@@ -289,7 +292,7 @@ void Session::reset_cpu(BufferParams& buffer_params, int samples)
bool Session::draw_cpu(BufferParams& buffer_params)
{
- thread_scoped_lock display_lock(display->mutex);
+ thread_scoped_lock display_lock(display_mutex);
/* first check we already rendered something */
if(display->draw_ready()) {
@@ -308,13 +311,101 @@ bool Session::draw_cpu(BufferParams& buffer_params)
return false;
}
+bool Session::acquire_tile(Device *tile_device, RenderTile& rtile)
+{
+ if(progress.get_cancel())
+ return false;
+
+ thread_scoped_lock tile_lock(tile_mutex);
+
+ /* get next tile from manager */
+ Tile tile;
+ int device_num = (params.background)? 0: device->device_number(tile_device);
+
+ if(!tile_manager.next_tile(tile, device_num))
+ return false;
+
+ /* fill render tile */
+ rtile.x = tile_manager.state.buffer.full_x + tile.x;
+ rtile.y = tile_manager.state.buffer.full_y + tile.y;
+ rtile.w = tile.w;
+ rtile.h = tile.h;
+ rtile.start_sample = tile_manager.state.sample;
+ rtile.num_samples = tile_manager.state.num_samples;
+ rtile.resolution = tile_manager.state.resolution_divider;
+
+ tile_lock.unlock();
+
+ /* in case of a permant buffer, return it, otherwise we will allocate
+ * a new temporary buffer */
+ if(!write_render_tile_cb) {
+ tile_manager.state.buffer.get_offset_stride(rtile.offset, rtile.stride);
+
+ rtile.buffer = buffers->buffer.device_pointer;
+ rtile.rng_state = buffers->rng_state.device_pointer;
+ rtile.rgba = display->rgba.device_pointer;
+ rtile.buffers = buffers;
+
+ device->map_tile(tile_device, rtile);
+
+ return true;
+ }
+
+ /* fill buffer parameters */
+ BufferParams buffer_params = tile_manager.params;
+ buffer_params.full_x = rtile.x;
+ buffer_params.full_y = rtile.y;
+ buffer_params.width = rtile.w;
+ buffer_params.height = rtile.h;
+
+ buffer_params.get_offset_stride(rtile.offset, rtile.stride);
+
+ /* allocate buffers */
+ RenderBuffers *tilebuffers = new RenderBuffers(tile_device);
+ tilebuffers->reset(tile_device, buffer_params);
+
+ rtile.buffer = tilebuffers->buffer.device_pointer;
+ rtile.rng_state = tilebuffers->rng_state.device_pointer;
+ rtile.rgba = 0;
+ rtile.buffers = tilebuffers;
+
+ return true;
+}
+
+void Session::update_tile_sample(RenderTile& rtile)
+{
+ thread_scoped_lock tile_lock(tile_mutex);
+
+ if(update_render_tile_cb) {
+ /* todo: optimize this by making it thread safe and removing lock */
+
+ update_render_tile_cb(rtile);
+ }
+
+ update_status_time();
+}
+
+void Session::release_tile(RenderTile& rtile)
+{
+ thread_scoped_lock tile_lock(tile_mutex);
+
+ if(write_render_tile_cb) {
+ /* todo: optimize this by making it thread safe and removing lock */
+ write_render_tile_cb(rtile);
+
+ delete rtile.buffers;
+ }
+
+ update_status_time();
+}
+
void Session::run_cpu()
{
{
/* reset once to start */
thread_scoped_lock reset_lock(delayed_reset.mutex);
- thread_scoped_lock buffers_lock(buffers->mutex);
- thread_scoped_lock display_lock(display->mutex);
+ thread_scoped_lock buffers_lock(buffers_mutex);
+ thread_scoped_lock display_lock(display_mutex);
reset_(delayed_reset.params, delayed_reset.samples);
delayed_reset.do_reset = false;
@@ -364,7 +455,7 @@ void Session::run_cpu()
/* buffers mutex is locked entirely while rendering each
* sample, and released/reacquired on each iteration to allow
* reset and draw in between */
- thread_scoped_lock buffers_lock(buffers->mutex);
+ thread_scoped_lock buffers_lock(buffers_mutex);
/* update scene */
update_scene();
@@ -379,8 +470,7 @@ void Session::run_cpu()
update_status_time();
/* path trace */
- foreach(Tile& tile, tile_manager.state.tiles)
- path_trace(tile);
+ path_trace();
/* update status and timing */
update_status_time();
@@ -396,8 +486,8 @@ void Session::run_cpu()
{
thread_scoped_lock reset_lock(delayed_reset.mutex);
- thread_scoped_lock buffers_lock(buffers->mutex);
- thread_scoped_lock display_lock(display->mutex);
+ thread_scoped_lock buffers_lock(buffers_mutex);
+ thread_scoped_lock display_lock(display_mutex);
if(delayed_reset.do_reset) {
/* reset rendering if request from main thread */
@@ -442,6 +532,9 @@ void Session::run()
/* run */
if(!progress.get_cancel()) {
+ /* reset number of rendered samples */
+ progress.reset_sample();
+
if(device_use_gl)
run_gpu();
else
@@ -465,10 +558,12 @@ bool Session::draw(BufferParams& buffer_params)
void Session::reset_(BufferParams& buffer_params, int samples)
{
- if(buffer_params.modified(buffers->params)) {
- gpu_draw_ready = false;
- buffers->reset(device, buffer_params);
- display->reset(device, buffer_params);
+ if(buffers) {
+ if(buffer_params.modified(buffers->params)) {
+ gpu_draw_ready = false;
+ buffers->reset(device, buffer_params);
+ display->reset(device, buffer_params);
+ }
}
tile_manager.reset(buffer_params, samples);
@@ -476,7 +571,6 @@ void Session::reset_(BufferParams& buffer_params, int samples)
start_time = time_dt();
preview_time = 0.0;
paused_time = 0.0;
- sample = 0;
if(!params.background)
progress.set_start_time(start_time + paused_time);
@@ -532,8 +626,6 @@ void Session::update_scene()
{
thread_scoped_lock scene_lock(scene->mutex);
- progress.set_status("Updating Scene");
-
/* update camera if dimensions changed for progressive render. the camera
* knows nothing about progressive or cropped rendering, it just gets the
* image dimensions passed in */
@@ -548,20 +640,47 @@ void Session::update_scene()
}
/* update scene */
- if(scene->need_update())
+ if(scene->need_update()) {
+ progress.set_status("Updating Scene");
scene->device_update(device, progress);
+ }
}
void Session::update_status_time(bool show_pause, bool show_done)
{
int sample = tile_manager.state.sample;
- int resolution = tile_manager.state.resolution;
+ int resolution = tile_manager.state.resolution_divider;
+ int num_tiles = tile_manager.state.num_tiles;
+ int tile = tile_manager.state.num_rendered_tiles;
/* update status */
string status, substatus;
- if(!params.progressive)
- substatus = "Path Tracing";
+ if(!params.progressive) {
+ substatus = string_printf("Path Tracing Tile %d/%d", tile, num_tiles);
+
+ if(params.device.type == DEVICE_CUDA || params.device.type == DEVICE_OPENCL ||
+ (params.device.type == DEVICE_CPU && num_tiles == 1)) {
+ /* when rendering on GPU multithreading happens within single tile, as in
+ * tiles are handling sequentially and in this case we could display
+ * currently rendering sample number
+ * this helps a lot from feedback point of view.
+ * also display the info on CPU, when using 1 tile only
+ */
+
+ int sample = progress.get_sample(), num_samples = tile_manager.state.num_samples;
+
+ if(tile > 1) {
+ /* sample counter is global for all tiles, subtract samples
+ * from already finished tiles to get sample counter for
+ * current tile only
+ */
+ sample -= (tile - 1) * num_samples;
+ }
+
+ substatus += string_printf(", Sample %d/%d", sample, num_samples);
+ }
+ }
else if(params.samples == INT_MAX)
substatus = string_printf("Path Tracing Sample %d", sample+1);
else
@@ -580,28 +699,29 @@ void Session::update_status_time(bool show_pause, bool show_done)
if(preview_time == 0.0 && resolution == 1)
preview_time = time_dt();
- double sample_time = (sample == 0)? 0.0: (time_dt() - preview_time - paused_time)/(sample);
+ double tile_time = (tile == 0)? 0.0: (time_dt() - preview_time - paused_time)/(sample);
/* negative can happen when we pause a bit before rendering, can discard that */
if(preview_time < 0.0) preview_time = 0.0;
- progress.set_sample(sample + 1, sample_time);
+ progress.set_tile(tile, tile_time);
+}
+
+void Session::update_progress_sample()
+{
+ progress.increment_sample();
}
-void Session::path_trace(Tile& tile)
+void Session::path_trace()
{
/* add path trace task */
DeviceTask task(DeviceTask::PATH_TRACE);
-
- task.x = tile_manager.state.buffer.full_x + tile.x;
- task.y = tile_manager.state.buffer.full_y + tile.y;
- task.w = tile.w;
- task.h = tile.h;
- task.buffer = buffers->buffer.device_pointer;
- task.rng_state = buffers->rng_state.device_pointer;
- task.sample = tile_manager.state.sample;
- task.resolution = tile_manager.state.resolution;
- tile_manager.state.buffer.get_offset_stride(task.offset, task.stride);
+
+ task.acquire_tile = function_bind(&Session::acquire_tile, this, _1, _2);
+ task.release_tile = function_bind(&Session::release_tile, this, _1);
+ task.get_cancel = function_bind(&Progress::get_cancel, &this->progress);
+ task.update_tile_sample = function_bind(&Session::update_tile_sample, this, _1);
+ task.update_progress_sample = function_bind(&Session::update_progress_sample, this);
device->task_add(task);
}
@@ -618,7 +738,7 @@ void Session::tonemap()
task.rgba = display->rgba.device_pointer;
task.buffer = buffers->buffer.device_pointer;
task.sample = tile_manager.state.sample;
- task.resolution = tile_manager.state.resolution;
+ task.resolution = tile_manager.state.resolution_divider;
tile_manager.state.buffer.get_offset_stride(task.offset, task.stride);
if(task.w > 0 && task.h > 0) {
diff --git a/intern/cycles/render/session.h b/intern/cycles/render/session.h
index 90616f011ea..eda8b3da60e 100644
--- a/intern/cycles/render/session.h
+++ b/intern/cycles/render/session.h
@@ -47,8 +47,8 @@ public:
bool progressive;
bool experimental;
int samples;
- int tile_size;
- int min_size;
+ int2 tile_size;
+ int start_resolution;
int threads;
double cancel_timeout;
@@ -63,8 +63,8 @@ public:
progressive = false;
experimental = false;
samples = INT_MAX;
- tile_size = 64;
- min_size = 64;
+ tile_size = make_int2(64, 64);
+ start_resolution = INT_MAX;
threads = 0;
cancel_timeout = 0.1;
@@ -81,7 +81,7 @@ public:
&& progressive == params.progressive
&& experimental == params.experimental
&& tile_size == params.tile_size
- && min_size == params.min_size
+ && start_resolution == params.start_resolution
&& threads == params.threads
&& cancel_timeout == params.cancel_timeout
&& reset_timeout == params.reset_timeout
@@ -102,7 +102,10 @@ public:
DisplayBuffer *display;
Progress progress;
SessionParams params;
- int sample;
+ TileManager tile_manager;
+
+ boost::function<void(RenderTile&)> write_render_tile_cb;
+ boost::function<void(RenderTile&)> update_render_tile_cb;
Session(const SessionParams& params);
~Session();
@@ -130,7 +133,7 @@ protected:
void update_status_time(bool show_pause = false, bool show_done = false);
void tonemap();
- void path_trace(Tile& tile);
+ void path_trace();
void reset_(BufferParams& params, int samples);
void run_cpu();
@@ -141,7 +144,12 @@ protected:
bool draw_gpu(BufferParams& params);
void reset_gpu(BufferParams& params, int samples);
- TileManager tile_manager;
+ bool acquire_tile(Device *tile_device, RenderTile& tile);
+ void update_tile_sample(RenderTile& tile);
+ void release_tile(RenderTile& tile);
+
+ void update_progress_sample();
+
bool device_use_gl;
thread *session_thread;
@@ -155,6 +163,9 @@ protected:
bool pause;
thread_condition_variable pause_cond;
thread_mutex pause_mutex;
+ thread_mutex tile_mutex;
+ thread_mutex buffers_mutex;
+ thread_mutex display_mutex;
bool kernels_loaded;
diff --git a/intern/cycles/render/tile.cpp b/intern/cycles/render/tile.cpp
index 04e48d44029..874f1a6b3aa 100644
--- a/intern/cycles/render/tile.cpp
+++ b/intern/cycles/render/tile.cpp
@@ -19,14 +19,16 @@
#include "tile.h"
#include "util_algorithm.h"
+#include "util_types.h"
CCL_NAMESPACE_BEGIN
-TileManager::TileManager(bool progressive_, int samples_, int tile_size_, int min_size_)
+TileManager::TileManager(bool progressive_, int num_samples_, int2 tile_size_, int start_resolution_, int num_devices_)
{
progressive = progressive_;
tile_size = tile_size_;
- min_size = min_size_;
+ start_resolution = start_resolution_;
+ num_devices = num_devices_;
BufferParams buffer_params;
reset(buffer_params, 0);
@@ -36,59 +38,71 @@ TileManager::~TileManager()
{
}
-void TileManager::reset(BufferParams& params_, int samples_)
+void TileManager::reset(BufferParams& params_, int num_samples_)
{
params = params_;
- start_resolution = 1;
-
+ int divider = 1;
int w = params.width, h = params.height;
- if(min_size != INT_MAX) {
- while(w*h > min_size*min_size) {
+ if(start_resolution != INT_MAX) {
+ while(w*h > start_resolution*start_resolution) {
w = max(1, w/2);
h = max(1, h/2);
- start_resolution *= 2;
+ divider *= 2;
}
}
- samples = samples_;
+ num_samples = num_samples_;
state.buffer = BufferParams();
state.sample = -1;
- state.resolution = start_resolution;
+ state.num_tiles = 0;
+ state.num_rendered_tiles = 0;
+ state.num_samples = 0;
+ state.resolution_divider = divider;
state.tiles.clear();
}
-void TileManager::set_samples(int samples_)
+void TileManager::set_samples(int num_samples_)
{
- samples = samples_;
+ num_samples = num_samples_;
}
void TileManager::set_tiles()
{
- int resolution = state.resolution;
+ int resolution = state.resolution_divider;
int image_w = max(1, params.width/resolution);
int image_h = max(1, params.height/resolution);
- int tile_w = (tile_size >= image_w)? 1: (image_w + tile_size - 1)/tile_size;
- int tile_h = (tile_size >= image_h)? 1: (image_h + tile_size - 1)/tile_size;
- int sub_w = image_w/tile_w;
- int sub_h = image_h/tile_h;
state.tiles.clear();
- for(int tile_y = 0; tile_y < tile_h; tile_y++) {
- for(int tile_x = 0; tile_x < tile_w; tile_x++) {
- int x = tile_x * sub_w;
- int y = tile_y * sub_h;
- int w = (tile_x == tile_w-1)? image_w - x: sub_w;
- int h = (tile_y == tile_h-1)? image_h - y: sub_h;
+ int num = min(image_h, num_devices);
+
+ for(int device = 0; device < num; device++) {
+ int device_y = (image_h/num)*device;
+ int device_h = (device == num-1)? image_h - device*(image_h/num): image_h/num;
+
+ int tile_w = (tile_size.x >= image_w)? 1: (image_w + tile_size.x - 1)/tile_size.x;
+ int tile_h = (tile_size.y >= device_h)? 1: (device_h + tile_size.y - 1)/tile_size.y;
+ int sub_w = (image_w + tile_w - 1)/tile_w;
+ int sub_h = (device_h + tile_h - 1)/tile_h;
- state.tiles.push_back(Tile(x, y, w, h));
+ for(int tile_y = 0; tile_y < tile_h; tile_y++) {
+ for(int tile_x = 0; tile_x < tile_w; tile_x++) {
+ int x = tile_x * sub_w;
+ int y = tile_y * sub_h;
+ int w = (tile_x == tile_w-1)? image_w - x: sub_w;
+ int h = (tile_y == tile_h-1)? device_h - y: sub_h;
+
+ state.tiles.push_back(Tile(x, y + device_y, w, h, device));
+ }
}
}
+ state.num_tiles = state.tiles.size();
+
state.buffer.width = image_w;
state.buffer.height = image_h;
@@ -98,9 +112,74 @@ void TileManager::set_tiles()
state.buffer.full_height = max(1, params.full_height/resolution);
}
+list<Tile>::iterator TileManager::next_center_tile(int device)
+{
+ list<Tile>::iterator iter, best = state.tiles.end();
+
+ int resolution = state.resolution_divider;
+ int image_w = max(1, params.width/resolution);
+ int image_h = max(1, params.height/resolution);
+
+ int num = min(image_h, num_devices);
+
+ int device_y = (image_h / num) * device;
+ int device_h = (device == num - 1) ? image_h - device * (image_h / num) : image_h / num;
+
+ int64_t centx = image_w / 2, centy = device_y + device_h / 2, tot = 1;
+ int64_t mindist = (int64_t) image_w * (int64_t) device_h;
+
+ /* find center of rendering tiles, image center counts for 1 too */
+ for(iter = state.tiles.begin(); iter != state.tiles.end(); iter++) {
+ if(iter->rendering) {
+ Tile &cur_tile = *iter;
+ centx += cur_tile.x + cur_tile.w / 2;
+ centy += cur_tile.y + cur_tile.h / 2;
+ tot++;
+ }
+ }
+
+ centx /= tot;
+ centy /= tot;
+
+ /* closest of the non-rendering tiles */
+ for(iter = state.tiles.begin(); iter != state.tiles.end(); iter++) {
+ if(iter->device == device && iter->rendering == false) {
+ Tile &cur_tile = *iter;
+
+ int64_t distx = centx - (cur_tile.x + cur_tile.w / 2);
+ int64_t disty = centy - (cur_tile.y + cur_tile.h / 2);
+ distx = (int64_t) sqrt((double)distx * distx + disty * disty);
+
+ if(distx < mindist) {
+ best = iter;
+ mindist = distx;
+ }
+ }
+ }
+
+ return best;
+}
+
+bool TileManager::next_tile(Tile& tile, int device)
+{
+ list<Tile>::iterator tile_it;
+
+ tile_it = next_center_tile(device);
+
+ if(tile_it != state.tiles.end()) {
+ tile_it->rendering = true;
+ tile = *tile_it;
+ state.num_rendered_tiles++;
+
+ return true;
+ }
+
+ return false;
+}
+
bool TileManager::done()
{
- return (state.sample+1 >= samples && state.resolution == 1);
+ return (state.sample+state.num_samples >= num_samples && state.resolution_divider == 1);
}
bool TileManager::next()
@@ -108,14 +187,21 @@ bool TileManager::next()
if(done())
return false;
- if(progressive && state.resolution > 1) {
+ if(progressive && state.resolution_divider > 1) {
state.sample = 0;
- state.resolution /= 2;
+ state.resolution_divider /= 2;
+ state.num_samples = 1;
set_tiles();
}
else {
state.sample++;
- state.resolution = 1;
+
+ if(progressive)
+ state.num_samples = 1;
+ else
+ state.num_samples = num_samples;
+
+ state.resolution_divider = 1;
set_tiles();
}
diff --git a/intern/cycles/render/tile.h b/intern/cycles/render/tile.h
index b6e610c8d90..d820f74e3bd 100644
--- a/intern/cycles/render/tile.h
+++ b/intern/cycles/render/tile.h
@@ -31,9 +31,14 @@ CCL_NAMESPACE_BEGIN
class Tile {
public:
int x, y, w, h;
+ int device;
+ bool rendering;
- Tile(int x_, int y_, int w_, int h_)
- : x(x_), y(y_), w(w_), h(h_) {}
+ Tile()
+ {}
+
+ Tile(int x_, int y_, int w_, int h_, int device_)
+ : x(x_), y(y_), w(w_), h(h_), device(device_), rendering(false) {}
};
/* Tile Manager */
@@ -45,27 +50,32 @@ public:
struct State {
BufferParams buffer;
int sample;
- int resolution;
+ int num_samples;
+ int resolution_divider;
+ int num_tiles;
+ int num_rendered_tiles;
list<Tile> tiles;
} state;
- TileManager(bool progressive, int samples, int tile_size, int min_size);
+ TileManager(bool progressive, int num_samples, int2 tile_size, int start_resolution, int num_devices = 1);
~TileManager();
- void reset(BufferParams& params, int samples);
- void set_samples(int samples);
+ void reset(BufferParams& params, int num_samples);
+ void set_samples(int num_samples);
bool next();
+ bool next_tile(Tile& tile, int device = 0);
bool done();
protected:
void set_tiles();
bool progressive;
- int samples;
- int tile_size;
- int min_size;
-
+ int num_samples;
+ int2 tile_size;
int start_resolution;
+ int num_devices;
+
+ list<Tile>::iterator next_center_tile(int device = 0);
};
CCL_NAMESPACE_END
diff --git a/intern/cycles/subd/CMakeLists.txt b/intern/cycles/subd/CMakeLists.txt
index 75f70753ddf..c0986e9c173 100644
--- a/intern/cycles/subd/CMakeLists.txt
+++ b/intern/cycles/subd/CMakeLists.txt
@@ -6,6 +6,8 @@ set(INC
../kernel/svm
../render
)
+set(INC_SYS
+)
set(SRC
subd_build.cpp
@@ -31,5 +33,6 @@ set(SRC_HEADERS
)
include_directories(${INC})
+include_directories(SYSTEM ${INC_SYS})
add_library(cycles_subd ${SRC} ${SRC_HEADERS})
diff --git a/intern/cycles/subd/subd_build.cpp b/intern/cycles/subd/subd_build.cpp
index c8181838ec3..312980f1fa2 100644
--- a/intern/cycles/subd/subd_build.cpp
+++ b/intern/cycles/subd/subd_build.cpp
@@ -117,7 +117,7 @@ Patch *SubdAccBuilder::run(SubdFace *face)
memcpy(patch->hull, position, sizeof(float3)*20);
return patch;
}
- else if(face->num_edges() == 4) {
+ else if(face->num_edges() == 4) {
GregoryQuadPatch *patch = new GregoryQuadPatch();
memcpy(patch->hull, position, sizeof(float3)*20);
return patch;
@@ -644,7 +644,7 @@ Patch *SubdLinearBuilder::run(SubdFace *face)
hull = lpatch->hull;
patch = lpatch;
}
- else if(face->num_edges() == 4) {
+ else if(face->num_edges() == 4) {
LinearQuadPatch *lpatch = new LinearQuadPatch();
hull = lpatch->hull;
patch = lpatch;
diff --git a/intern/cycles/util/CMakeLists.txt b/intern/cycles/util/CMakeLists.txt
index 87bd84b4e0f..c677f2b13f4 100644
--- a/intern/cycles/util/CMakeLists.txt
+++ b/intern/cycles/util/CMakeLists.txt
@@ -1,11 +1,14 @@
set(INC
.
+)
+set(INC_SYS
${GLEW_INCLUDE_PATH}
${OPENGL_INCLUDE_DIR}
)
set(SRC
+ util_attribute.cpp
util_cache.cpp
util_cuda.cpp
util_dynlib.cpp
@@ -29,6 +32,7 @@ endif()
set(SRC_HEADERS
util_algorithm.h
util_args.h
+ util_attribute.h
util_boundbox.h
util_cache.h
util_cuda.h
@@ -62,5 +66,6 @@ set(SRC_HEADERS
)
include_directories(${INC})
+include_directories(SYSTEM ${INC_SYS})
add_library(cycles_util ${SRC} ${SRC_HEADERS})
diff --git a/intern/boolop/intern/BOP_Chrono.h b/intern/cycles/util/util_attribute.cpp
index 8f09eeae82e..3a1c2b6f332 100644
--- a/intern/boolop/intern/BOP_Chrono.h
+++ b/intern/cycles/util/util_attribute.cpp
@@ -1,5 +1,5 @@
/*
- * ***** BEGIN GPL LICENSE BLOCK *****
+ * Copyright 2011, Blender Foundation.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -14,41 +14,34 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
*/
-/** \file boolop/intern/BOP_Chrono.h
- * \ingroup boolopintern
- */
-
-
-#ifndef __BOP_CHRONO_H__
-#define __BOP_CHRONO_H__
+#include "util_attribute.h"
-#include <time.h>
+CCL_NAMESPACE_BEGIN
-class BOP_Chrono
+const char *attribute_standard_name(AttributeStandard std)
{
-private:
- clock_t m_begin;
-public:
- BOP_Chrono(){};
- void start() {m_begin = clock();};
- float stamp() {
- clock_t c = clock();
- clock_t stmp = c - m_begin;
- m_begin = c;
- float t = ((float) stmp / (float) CLOCKS_PER_SEC)*1000.0f;
- return t;
- };
-};
+ if(std == ATTR_STD_VERTEX_NORMAL)
+ return "N";
+ else if(std == ATTR_STD_FACE_NORMAL)
+ return "Ng";
+ else if(std == ATTR_STD_UV)
+ return "uv";
+ else if(std == ATTR_STD_GENERATED)
+ return "generated";
+ else if(std == ATTR_STD_POSITION_UNDEFORMED)
+ return "undeformed";
+ else if(std == ATTR_STD_POSITION_UNDISPLACED)
+ return "undisplaced";
+ else if(std == ATTR_STD_MOTION_PRE)
+ return "motion_pre";
+ else if(std == ATTR_STD_MOTION_POST)
+ return "motion_post";
+ else if(std == ATTR_STD_PARTICLE)
+ return "particle";
+
+ return "";
+}
-#endif
+CCL_NAMESPACE_END
diff --git a/intern/cycles/util/util_attribute.h b/intern/cycles/util/util_attribute.h
new file mode 100644
index 00000000000..334864c7f44
--- /dev/null
+++ b/intern/cycles/util/util_attribute.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __UTIL_ATTRIBUTE_H__
+#define __UTIL_ATTRIBUTE_H__
+
+#include "util_types.h"
+
+CCL_NAMESPACE_BEGIN
+
+const char *attribute_standard_name(AttributeStandard std);
+
+CCL_NAMESPACE_END
+
+#endif /* __UTIL_ATTRIBUTE_H__ */
+
diff --git a/intern/cycles/util/util_cache.cpp b/intern/cycles/util/util_cache.cpp
index 44d784ba741..55ed50b2ca6 100644
--- a/intern/cycles/util/util_cache.cpp
+++ b/intern/cycles/util/util_cache.cpp
@@ -26,7 +26,11 @@
#include "util_path.h"
#include "util_types.h"
-#define BOOST_FILESYSTEM_VERSION 2
+#include <boost/version.hpp>
+
+#if (BOOST_VERSION < 104400)
+# define BOOST_FILESYSTEM_VERSION 2
+#endif
#include <boost/filesystem.hpp>
#include <boost/algorithm/string.hpp>
@@ -117,7 +121,11 @@ void Cache::clear_except(const string& name, const set<string>& except)
boost::filesystem::directory_iterator it(dir), it_end;
for(; it != it_end; it++) {
+#if (BOOST_FILESYSTEM_VERSION == 2)
string filename = it->path().filename();
+#else
+ string filename = it->path().filename().string();
+#endif
if(boost::starts_with(filename, name))
if(except.find(filename) == except.end())
diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h
index a6bc478ee64..0b6f020ade5 100644
--- a/intern/cycles/util/util_math.h
+++ b/intern/cycles/util/util_math.h
@@ -26,7 +26,9 @@
#ifndef __KERNEL_OPENCL__
-#define _USE_MATH_DEFINES
+#ifdef _MSC_VER
+# define _USE_MATH_DEFINES
+#endif
#include <float.h>
#include <math.h>
@@ -277,6 +279,11 @@ __device_inline float cross(const float2 a, const float2 b)
#ifndef __KERNEL_OPENCL__
+__device_inline bool operator==(const int2 a, const int2 b)
+{
+ return (a.x == b.x && a.y == b.y);
+}
+
__device_inline float len(const float2 a)
{
return sqrtf(dot(a, a));
diff --git a/intern/cycles/util/util_opencl.cpp b/intern/cycles/util/util_opencl.cpp
index c9df9c2ff5c..40b637f5cb7 100644
--- a/intern/cycles/util/util_opencl.cpp
+++ b/intern/cycles/util/util_opencl.cpp
@@ -235,8 +235,10 @@ int clLibraryInit()
__clewEnqueueBarrier = (PFNCLENQUEUEBARRIER )CLCC_DYNLIB_IMPORT(module, "clEnqueueBarrier");
__clewGetExtensionFunctionAddress = (PFNCLGETEXTENSIONFUNCTIONADDRESS )CLCC_DYNLIB_IMPORT(module, "clGetExtensionFunctionAddress");
- if(__clewGetPlatformIDs == NULL)
- return 0;
+ if(__clewGetPlatformIDs == NULL) return 0;
+ if(__clewGetPlatformInfo == NULL) return 0;
+ if(__clewGetDeviceIDs == NULL) return 0;
+ if(__clewGetDeviceInfo == NULL) return 0;
return 1;
}
diff --git a/intern/cycles/util/util_path.cpp b/intern/cycles/util/util_path.cpp
index 717aa34c426..a571fe81118 100644
--- a/intern/cycles/util/util_path.cpp
+++ b/intern/cycles/util/util_path.cpp
@@ -26,7 +26,11 @@ OIIO_NAMESPACE_USING
#include <stdio.h>
-#define BOOST_FILESYSTEM_VERSION 2
+#include <boost/version.hpp>
+
+#if (BOOST_VERSION < 104400)
+# define BOOST_FILESYSTEM_VERSION 2
+#endif
#include <boost/filesystem.hpp>
#include <boost/algorithm/string.hpp>
@@ -60,7 +64,11 @@ string path_user_get(const string& sub)
string path_filename(const string& path)
{
+#if (BOOST_FILESYSTEM_VERSION == 2)
return boost::filesystem::path(path).filename();
+#else
+ return boost::filesystem::path(path).filename().string();
+#endif
}
string path_dirname(const string& path)
diff --git a/intern/cycles/util/util_progress.h b/intern/cycles/util/util_progress.h
index c63aa841c52..c97379d8776 100644
--- a/intern/cycles/util/util_progress.h
+++ b/intern/cycles/util/util_progress.h
@@ -36,12 +36,15 @@ class Progress {
public:
Progress()
{
+ tile = 0;
sample = 0;
start_time = time_dt();
total_time = 0.0f;
- sample_time = 0.0f;
+ tile_time = 0.0f;
status = "Initializing";
substatus = "";
+ sync_status = "";
+ sync_substatus = "";
update_cb = NULL;
cancel = false;
cancel_message = "";
@@ -57,8 +60,10 @@ public:
{
thread_scoped_lock lock(progress.progress_mutex);
- progress.get_sample(sample, total_time, sample_time);
progress.get_status(status, substatus);
+ progress.get_tile(tile, total_time, tile_time);
+
+ sample = progress.get_sample();
return *this;
}
@@ -90,7 +95,7 @@ public:
cancel_cb = function;
}
- /* sample and timing information */
+ /* tile and timing information */
void set_start_time(double start_time_)
{
@@ -99,22 +104,41 @@ public:
start_time = start_time_;
}
- void set_sample(int sample_, double sample_time_)
+ void set_tile(int tile_, double tile_time_)
{
thread_scoped_lock lock(progress_mutex);
- sample = sample_;
+ tile = tile_;
total_time = time_dt() - start_time;
- sample_time = sample_time_;
+ tile_time = tile_time_;
}
- void get_sample(int& sample_, double& total_time_, double& sample_time_)
+ void get_tile(int& tile_, double& total_time_, double& tile_time_)
{
thread_scoped_lock lock(progress_mutex);
- sample_ = sample;
+ tile_ = tile;
total_time_ = (total_time > 0.0)? total_time: 0.0;
- sample_time_ = sample_time;
+ tile_time_ = tile_time;
+ }
+
+ void reset_sample()
+ {
+ thread_scoped_lock lock(progress_mutex);
+
+ sample = 0;
+ }
+
+ void increment_sample()
+ {
+ thread_scoped_lock lock(progress_mutex);
+
+ sample++;
+ }
+
+ int get_sample()
+ {
+ return sample;
}
/* status messages */
@@ -142,11 +166,42 @@ public:
set_update();
}
+ void set_sync_status(const string& status_, const string& substatus_ = "")
+ {
+ {
+ thread_scoped_lock lock(progress_mutex);
+ sync_status = status_;
+ sync_substatus = substatus_;
+ total_time = time_dt() - start_time;
+ }
+
+ set_update();
+
+ }
+
+ void set_sync_substatus(const string& substatus_)
+ {
+ {
+ thread_scoped_lock lock(progress_mutex);
+ sync_substatus = substatus_;
+ total_time = time_dt() - start_time;
+ }
+
+ set_update();
+ }
+
void get_status(string& status_, string& substatus_)
{
thread_scoped_lock lock(progress_mutex);
- status_ = status;
- substatus_ = substatus;
+
+ if(sync_status != "") {
+ status_ = sync_status;
+ substatus_ = sync_substatus;
+ }
+ else {
+ status_ = status;
+ substatus_ = substatus;
+ }
}
/* callback */
@@ -170,15 +225,19 @@ protected:
boost::function<void(void)> update_cb;
boost::function<void(void)> cancel_cb;
- int sample;
+ int tile; /* counter for rendered tiles */
+ int sample; /* counter of rendered samples, global for all tiles */
double start_time;
double total_time;
- double sample_time;
+ double tile_time;
string status;
string substatus;
+ string sync_status;
+ string sync_substatus;
+
volatile bool cancel;
string cancel_message;
};
diff --git a/intern/cycles/util/util_types.h b/intern/cycles/util/util_types.h
index 0451d877c45..5c6b9d5bb78 100644
--- a/intern/cycles/util/util_types.h
+++ b/intern/cycles/util/util_types.h
@@ -444,6 +444,22 @@ __device_inline int4 make_int4(const float3& f)
#endif
+typedef enum AttributeStandard {
+ ATTR_STD_NONE = 0,
+ ATTR_STD_VERTEX_NORMAL,
+ ATTR_STD_FACE_NORMAL,
+ ATTR_STD_UV,
+ ATTR_STD_GENERATED,
+ ATTR_STD_POSITION_UNDEFORMED,
+ ATTR_STD_POSITION_UNDISPLACED,
+ ATTR_STD_MOTION_PRE,
+ ATTR_STD_MOTION_POST,
+ ATTR_STD_PARTICLE,
+ ATTR_STD_NUM,
+
+ ATTR_STD_NOT_FOUND = ~0
+} AttributeStandard;
+
CCL_NAMESPACE_END
#endif /* __UTIL_TYPES_H__ */
diff --git a/intern/decimation/intern/LOD_QuadricEditor.cpp b/intern/decimation/intern/LOD_QuadricEditor.cpp
index b56f6a5b520..fbaf0c1180f 100644
--- a/intern/decimation/intern/LOD_QuadricEditor.cpp
+++ b/intern/decimation/intern/LOD_QuadricEditor.cpp
@@ -174,7 +174,7 @@ BuildQuadrics(
vector<LOD_Edge>::iterator edge_it = edges.begin();
vector<LOD_Edge>::const_iterator edge_end = edges.end();
- for (; edge_it != edge_end; ++edge_it) {
+ for (; edge_it != edge_end; ++edge_it) {
MT_Vector3 target = TargetVertex(*edge_it);
@@ -235,7 +235,7 @@ ComputeEdgeCosts(
vector<LOD_EdgeInd>::const_iterator edge_it = edges.begin();
vector<LOD_EdgeInd>::const_iterator edge_end = edges.end();
- for (; edge_it != edge_end; ++edge_it) {
+ for (; edge_it != edge_end; ++edge_it) {
MT_Vector3 target = TargetVertex(edge_set[*edge_it]);
diff --git a/intern/dualcon/intern/Projections.cpp b/intern/dualcon/intern/Projections.cpp
index 2a52cc9972a..f00d998591f 100644
--- a/intern/dualcon/intern/Projections.cpp
+++ b/intern/dualcon/intern/Projections.cpp
@@ -92,12 +92,12 @@ static void crossProduct(double res[3], const double a[3], const double b[3])
/**
* Method to perform dot product
*/
-int64_t dotProduct(const int64_t a[3], const int64_t b[3])
+static int64_t dotProduct(const int64_t a[3], const int64_t b[3])
{
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
}
-void normalize(double a[3])
+static void normalize(double a[3])
{
double mag = a[0] * a[0] + a[1] * a[1] + a[2] * a[2];
if (mag > 0) {
diff --git a/intern/dualcon/intern/dualcon_c_api.cpp b/intern/dualcon/intern/dualcon_c_api.cpp
index 894ab6b0873..c96415bfb54 100644
--- a/intern/dualcon/intern/dualcon_c_api.cpp
+++ b/intern/dualcon/intern/dualcon_c_api.cpp
@@ -32,7 +32,7 @@
#define isnan(n) _isnan(n)
#endif
-void veccopy(float dst[3], const float src[3])
+static void veccopy(float dst[3], const float src[3])
{
dst[0] = src[0];
dst[1] = src[1];
diff --git a/intern/dualcon/intern/octree.cpp b/intern/dualcon/intern/octree.cpp
index 1ad502b018d..49c50c8240d 100644
--- a/intern/dualcon/intern/octree.cpp
+++ b/intern/dualcon/intern/octree.cpp
@@ -54,7 +54,7 @@ Octree::Octree(ModelReader *mr,
After playing around with this option, the only case I could
find where this option gives different results is on
relatively thin corners. Sometimes along these corners two
- vertices from seperate sides will be placed in the same
+ vertices from separate sides will be placed in the same
position, so hole gets filled with a 5-sided face, where two
of those vertices are in the same 3D location. If
`use_manifold' is disabled, then the modifier doesn't
@@ -345,11 +345,13 @@ void Octree::addTriangle(Triangle *trian, int triind)
delete proj;
}
-void print_depth(int height, int maxDepth)
+#if 0
+static void print_depth(int height, int maxDepth)
{
for (int i = 0; i < maxDepth - height; i++)
printf(" ");
}
+#endif
InternalNode *Octree::addTriangle(InternalNode *node, CubeTriangleIsect *p, int height)
{
@@ -382,22 +384,22 @@ InternalNode *Octree::addTriangle(InternalNode *node, CubeTriangleIsect *p, int
/* Pruning using intersection test */
if (subp->isIntersecting()) {
- if (!hasChild(node, i)) {
+ if (!node->has_child(i)) {
if (height == 1)
node = addLeafChild(node, i, count, createLeaf(0));
else
node = addInternalChild(node, i, count, createInternal(0));
}
- Node *chd = getChild(node, count);
+ Node *chd = node->get_child(count);
if (node->is_child_leaf(i))
- setChild(node, count, (Node *)updateCell(&chd->leaf, subp));
+ node->set_child(count, (Node *)updateCell(&chd->leaf, subp));
else
- setChild(node, count, (Node *)addTriangle(&chd->internal, subp, height - 1));
+ node->set_child(count, (Node *)addTriangle(&chd->internal, subp, height - 1));
}
}
- if (hasChild(node, i))
+ if (node->has_child(i))
count++;
}
@@ -448,11 +450,11 @@ void Octree::preparePrimalEdgesMask(InternalNode *node)
{
int count = 0;
for (int i = 0; i < 8; i++) {
- if (hasChild(node, i)) {
+ if (node->has_child(i)) {
if (node->is_child_leaf(i))
- createPrimalEdgesMask(&getChild(node, count)->leaf);
+ createPrimalEdgesMask(&node->get_child(count)->leaf);
else
- preparePrimalEdgesMask(&getChild(node, count)->internal);
+ preparePrimalEdgesMask(&node->get_child(count)->internal);
count++;
}
@@ -485,7 +487,7 @@ Node *Octree::trace(Node *newnode, int *st, int len, int depth, PathList *& path
// Get children paths
int chdleaf[8];
- fillChildren(&newnode->internal, chd, chdleaf);
+ newnode->internal.fill_children(chd, chdleaf);
// int count = 0;
for (i = 0; i < 8; i++) {
@@ -508,7 +510,7 @@ Node *Octree::trace(Node *newnode, int *st, int len, int depth, PathList *& path
int df[2] = {depth - 1, depth - 1};
int *nstf[2];
- fillChildren(&newnode->internal, chd, chdleaf);
+ newnode->internal.fill_children(chd, chdleaf);
for (i = 0; i < 12; i++) {
int c[2] = {cellProcFaceMask[i][0], cellProcFaceMask[i][1]};
@@ -588,7 +590,7 @@ void Octree::findPaths(Node *node[2], int leaf[2], int depth[2], int *st[2], int
for (j = 0; j < 2; j++) {
if (!leaf[j]) {
- fillChildren(&node[j]->internal, chd[j], chdleaf[j]);
+ node[j]->internal.fill_children(chd[j], chdleaf[j]);
int len = (dimen >> (maxDepth - depth[j] + 1));
for (i = 0; i < 8; i++) {
@@ -964,10 +966,10 @@ Node *Octree::patch(Node *newnode, int st[3], int len, PathList *rings)
st[1] + len * vertmap[i][1],
st[2] + len * vertmap[i][2]
};
- patch(getChild(&newnode->internal, count), nori, len, zlists[i]);
+ patch(newnode->internal.get_child(count), nori, len, zlists[i]);
}
- if (hasChild(&newnode->internal, i)) {
+ if (newnode->internal.has_child(i)) {
count++;
}
}
@@ -1406,16 +1408,16 @@ Node *Octree::locateCell(InternalNode *node, int st[3], int len, int ori[3], int
rst[1] = st[1] + vertmap[ind][1] * len;
rst[2] = st[2] + vertmap[ind][2] * len;
- if (hasChild(node, ind)) {
- int count = getChildCount(node, ind);
- Node *chd = getChild(node, count);
+ if (node->has_child(ind)) {
+ int count = node->get_child_count(ind);
+ Node *chd = node->get_child(count);
if (node->is_child_leaf(ind)) {
rleaf = chd;
rlen = len;
}
else {
// Recur
- setChild(node, count, locateCell(&chd->internal, rst, len, ori, dir, side, rleaf, rst, rlen));
+ node->set_child(count, locateCell(&chd->internal, rst, len, ori, dir, side, rleaf, rst, rlen));
}
}
else {
@@ -1722,7 +1724,7 @@ void Octree::buildSigns(unsigned char table[], Node *node, int isLeaf, int sg, i
// Internal node
Node *chd[8];
int leaf[8];
- fillChildren(&node->internal, chd, leaf);
+ node->internal.fill_children(chd, leaf);
// Get the signs at the corners of the first cube
rvalue[0] = sg;
@@ -1782,8 +1784,8 @@ void Octree::clearProcessBits(Node *node, int height)
// Internal cell, recur
int count = 0;
for (i = 0; i < 8; i++) {
- if (hasChild(&node->internal, i)) {
- clearProcessBits(getChild(&node->internal, count), height - 1);
+ if (node->internal.has_child(i)) {
+ clearProcessBits(node->internal.get_child(count), height - 1);
count++;
}
}
@@ -2014,13 +2016,13 @@ int Octree::floodFill(Node *node, int st[3], int len, int height, int threshold)
int count = 0;
len >>= 1;
for (i = 0; i < 8; i++) {
- if (hasChild((InternalNode *)node, i)) {
+ if (node->internal.has_child(i)) {
int nst[3];
nst[0] = st[0] + vertmap[i][0] * len;
nst[1] = st[1] + vertmap[i][1] * len;
nst[2] = st[2] + vertmap[i][2] * len;
- int d = floodFill(getChild((InternalNode *)node, count), nst, len, height - 1, threshold);
+ int d = floodFill(node->internal.get_child(count), nst, len, height - 1, threshold);
if (d > maxtotal) {
maxtotal = d;
}
@@ -2060,9 +2062,9 @@ void Octree::writeOut()
void Octree::countIntersection(Node *node, int height, int& nedge, int& ncell, int& nface)
{
if (height > 0) {
- int total = getNumChildren(&node->internal);
+ int total = node->internal.get_num_children();
for (int i = 0; i < total; i++) {
- countIntersection(getChild(&node->internal, i), height - 1, nedge, ncell, nface);
+ countIntersection(node->internal.get_child(i), height - 1, nedge, ncell, nface);
}
}
else {
@@ -2108,8 +2110,8 @@ void pseudoInverse(const _Matrix_Type_ &a,
svd.matrixU().adjoint();
}
-void solve_least_squares(const float halfA[], const float b[],
- const float midpoint[], float rvalue[])
+static void solve_least_squares(const float halfA[], const float b[],
+ const float midpoint[], float rvalue[])
{
/* calculate pseudo-inverse */
Eigen::MatrixXf A(3, 3), pinv(3, 3);
@@ -2126,8 +2128,32 @@ void solve_least_squares(const float halfA[], const float b[],
rvalue[i] = result(i);
}
-void minimize(float rvalue[3], float mp[3], const float pts[12][3],
- const float norms[12][3], const int parity[12])
+static void mass_point(float mp[3], const float pts[12][3], const int parity[12])
+{
+ int ec = 0;
+
+ for (int i = 0; i < 12; i++) {
+ if (parity[i]) {
+ const float *p = pts[i];
+
+ mp[0] += p[0];
+ mp[1] += p[1];
+ mp[2] += p[2];
+
+ ec++;
+ }
+ }
+
+ if (ec == 0) {
+ return;
+ }
+ mp[0] /= ec;
+ mp[1] /= ec;
+ mp[2] /= ec;
+}
+
+static void minimize(float rvalue[3], float mp[3], const float pts[12][3],
+ const float norms[12][3], const int parity[12])
{
float ata[6] = {0, 0, 0, 0, 0, 0};
float atb[3] = {0, 0, 0};
@@ -2173,34 +2199,51 @@ void minimize(float rvalue[3], float mp[3], const float pts[12][3],
solve_least_squares(ata, atb, mp, rvalue);
}
-void Octree::computeMinimizer(LeafNode *leaf, int st[3], int len, float rvalue[3])
+void Octree::computeMinimizer(const LeafNode *leaf, int st[3], int len,
+ float rvalue[3]) const
{
// First, gather all edge intersections
float pts[12][3], norms[12][3];
int parity[12];
fillEdgeIntersections(leaf, st, len, pts, norms, parity);
- // Next, construct QEF and minimizer
- float mp[3] = {0, 0, 0};
- minimize(rvalue, mp, pts, norms, parity);
-
- /* Restraining the location of the minimizer */
- float nh1 = hermite_num * len;
- float nh2 = (1 + hermite_num) * len;
- if ((mode == DUALCON_MASS_POINT || mode == DUALCON_CENTROID) ||
- (rvalue[0] < st[0] - nh1 || rvalue[1] < st[1] - nh1 || rvalue[2] < st[2] - nh1 ||
- rvalue[0] > st[0] + nh2 || rvalue[1] > st[1] + nh2 || rvalue[2] > st[2] + nh2)) {
- if (mode == DUALCON_CENTROID) {
- // Use centroids
+ switch (mode) {
+ case DUALCON_CENTROID:
rvalue[0] = (float) st[0] + len / 2;
rvalue[1] = (float) st[1] + len / 2;
rvalue[2] = (float) st[2] + len / 2;
- }
- else {
- // Use mass point instead
- rvalue[0] = mp[0];
- rvalue[1] = mp[1];
- rvalue[2] = mp[2];
+ break;
+
+ case DUALCON_MASS_POINT:
+ rvalue[0] = rvalue[1] = rvalue[2] = 0;
+ mass_point(rvalue, pts, parity);
+ break;
+
+ default: {
+ // Sharp features */
+
+ // construct QEF and minimizer
+ float mp[3] = {0, 0, 0};
+ minimize(rvalue, mp, pts, norms, parity);
+
+ /* Restraining the location of the minimizer */
+ float nh1 = hermite_num * len;
+ float nh2 = (1 + hermite_num) * len;
+
+ if (rvalue[0] < st[0] - nh1 ||
+ rvalue[1] < st[1] - nh1 ||
+ rvalue[2] < st[2] - nh1 ||
+
+ rvalue[0] > st[0] + nh2 ||
+ rvalue[1] > st[1] + nh2 ||
+ rvalue[2] > st[2] + nh2)
+ {
+ // Use mass point instead
+ rvalue[0] = mp[0];
+ rvalue[1] = mp[1];
+ rvalue[2] = mp[2];
+ }
+ break;
}
}
}
@@ -2251,13 +2294,13 @@ void Octree::generateMinimizer(Node *node, int st[3], int len, int height, int&
int count = 0;
len >>= 1;
for (i = 0; i < 8; i++) {
- if (hasChild(&node->internal, i)) {
+ if (node->internal.has_child(i)) {
int nst[3];
nst[0] = st[0] + vertmap[i][0] * len;
nst[1] = st[1] + vertmap[i][1] * len;
nst[2] = st[2] + vertmap[i][2] * len;
- generateMinimizer(getChild(&node->internal, count),
+ generateMinimizer(node->internal.get_child(count),
nst, len, height - 1, offset);
count++;
}
@@ -2342,9 +2385,9 @@ void Octree::edgeProcContour(Node *node[4], int leaf[4], int depth[4], int maxde
Node *chd[4][8];
for (j = 0; j < 4; j++) {
for (i = 0; i < 8; i++) {
- chd[j][i] = ((!leaf[j]) && hasChild(&node[j]->internal, i)) ?
- getChild(&node[j]->internal,
- getChildCount(&node[j]->internal, i)) : NULL;
+ chd[j][i] = ((!leaf[j]) && node[j]->internal.has_child(i)) ?
+ node[j]->internal.get_child(
+ node[j]->internal.get_child_count(i)) : NULL;
}
}
@@ -2389,9 +2432,9 @@ void Octree::faceProcContour(Node *node[2], int leaf[2], int depth[2], int maxde
Node *chd[2][8];
for (j = 0; j < 2; j++) {
for (i = 0; i < 8; i++) {
- chd[j][i] = ((!leaf[j]) && hasChild(&node[j]->internal, i)) ?
- getChild(&node[j]->internal,
- getChildCount(&node[j]->internal, i)) : NULL;
+ chd[j][i] = ((!leaf[j]) && node[j]->internal.has_child(i)) ?
+ node[j]->internal.get_child(
+ node[j]->internal.get_child_count(i)) : NULL;
}
}
@@ -2458,9 +2501,8 @@ void Octree::cellProcContour(Node *node, int leaf, int depth)
// Fill children nodes
Node *chd[8];
for (i = 0; i < 8; i++) {
- chd[i] = ((!leaf) && hasChild(&node->internal, i)) ?
- getChild(&node->internal,
- getChildCount(&node->internal, i)) : NULL;
+ chd[i] = ((!leaf) && node->internal.has_child(i)) ?
+ node->internal.get_child(node->internal.get_child_count(i)) : NULL;
}
// 8 Cell calls
@@ -2537,8 +2579,8 @@ void Octree::edgeProcParity(Node *node[4], int leaf[4], int depth[4], int maxdep
Node *chd[4][8];
for (j = 0; j < 4; j++) {
for (i = 0; i < 8; i++) {
- chd[j][i] = ((!leaf[j]) && hasChild(&node[j]->internal, i)) ?
- getChild(&node[j]->internal, getChildCount(&node[j]->internal, i)) : NULL;
+ chd[j][i] = ((!leaf[j]) && node[j]->internal.has_child(i)) ?
+ node[j]->internal.get_child( node[j]->internal.get_child_count(i)) : NULL;
}
}
@@ -2587,9 +2629,9 @@ void Octree::faceProcParity(Node *node[2], int leaf[2], int depth[2], int maxdep
Node *chd[2][8];
for (j = 0; j < 2; j++) {
for (i = 0; i < 8; i++) {
- chd[j][i] = ((!leaf[j]) && hasChild(&node[j]->internal, i)) ?
- getChild(&node[j]->internal,
- getChildCount(&node[j]->internal, i)) : NULL;
+ chd[j][i] = ((!leaf[j]) && node[j]->internal.has_child(i)) ?
+ node[j]->internal.get_child(
+ node[j]->internal.get_child_count(i)) : NULL;
}
}
@@ -2656,9 +2698,8 @@ void Octree::cellProcParity(Node *node, int leaf, int depth)
// Fill children nodes
Node *chd[8];
for (i = 0; i < 8; i++) {
- chd[i] = ((!leaf) && hasChild((InternalNode *)node, i)) ?
- getChild((InternalNode *)node,
- getChildCount((InternalNode *)node, i)) : NULL;
+ chd[i] = ((!leaf) && node->internal.has_child(i)) ?
+ node->internal.get_child(node->internal.get_child_count(i)) : NULL;
}
// 8 Cell calls
@@ -2801,3 +2842,7 @@ const int dirEdge[3][4] = {
{7, 6, 5, 4},
{11, 10, 9, 8}
};
+
+int InternalNode::numChildrenTable[256];
+int InternalNode::childrenCountTable[256][8];
+int InternalNode::childrenIndexTable[256][8];
diff --git a/intern/dualcon/intern/octree.h b/intern/dualcon/intern/octree.h
index 550d584baa7..6cbdc9fb3d8 100644
--- a/intern/dualcon/intern/octree.h
+++ b/intern/dualcon/intern/octree.h
@@ -56,12 +56,18 @@
#define EDGE_FLOATS 4
union Node;
+struct LeafNode;
struct InternalNode {
- /* Treat as bitfield, bit N indicates whether child N exists or not */
- unsigned char has_child;
- /* Treat as bitfield, bit N indicates whether child N is a leaf or not */
- unsigned char child_is_leaf;
+ /* Initialized in Octree::BuildTable */
+ static int numChildrenTable[256];
+ static int childrenCountTable[256][8];
+ static int childrenIndexTable[256][8];
+
+ /* Bit N indicates whether child N exists or not */
+ unsigned char has_child_bitfield;
+ /* Bit N indicates whether child N is a leaf or not */
+ unsigned char child_is_leaf_bitfield;
/* Can have up to eight children */
Node *children[0];
@@ -69,7 +75,78 @@ struct InternalNode {
/// Test if child is leaf
int is_child_leaf(int index) const
{
- return (child_is_leaf >> index) & 1;
+ return (child_is_leaf_bitfield >> index) & 1;
+ }
+
+ /// If child index exists
+ int has_child(int index) const
+ {
+ return (has_child_bitfield >> index) & 1;
+ }
+
+ /// Get the pointer to child index
+ Node *get_child(int count)
+ {
+ return children[count];
+ }
+
+ const Node *get_child(int count) const
+ {
+ return children[count];
+ }
+
+ /// Get total number of children
+ int get_num_children() const
+ {
+ return numChildrenTable[has_child_bitfield];
+ }
+
+ /// Get the count of children
+ int get_child_count(int index) const
+ {
+ return childrenCountTable[has_child_bitfield][index];
+ }
+ int get_child_index(int count)
+ {
+ return childrenIndexTable[has_child_bitfield][count];
+ }
+ const int *get_child_counts() const
+ {
+ return childrenCountTable[has_child_bitfield];
+ }
+
+ /// Get all children
+ void fill_children(Node *children[8], int leaf[8])
+ {
+ int count = 0;
+ for (int i = 0; i < 8; i++) {
+ leaf[i] = is_child_leaf(i);
+ if (has_child(i)) {
+ children[i] = get_child(count);
+ count++;
+ }
+ else {
+ children[i] = NULL;
+ leaf[i] = 0;
+ }
+ }
+ }
+
+ /// Sets the child pointer
+ void set_child(int count, Node *chd)
+ {
+ children[count] = chd;
+ }
+ void set_internal_child(int index, int count, InternalNode *chd)
+ {
+ set_child(count, (Node *)chd);
+ has_child_bitfield |= (1 << index);
+ }
+ void set_leaf_child(int index, int count, LeafNode *chd)
+ {
+ set_child(count, (Node *)chd);
+ has_child_bitfield |= (1 << index);
+ child_is_leaf_bitfield |= (1 << index);
}
};
@@ -345,7 +422,8 @@ class Octree
void countIntersection(Node *node, int height, int& nedge, int& ncell, int& nface);
void generateMinimizer(Node * node, int st[3], int len, int height, int& offset);
- void computeMinimizer(LeafNode * leaf, int st[3], int len, float rvalue[3]);
+ void computeMinimizer(const LeafNode * leaf, int st[3], int len,
+ float rvalue[3]) const;
/**
* Traversal functions to generate polygon model
* op: 0 for counting, 1 for writing OBJ, 2 for writing OFF, 3 for writing PLY
@@ -365,9 +443,6 @@ class Octree
/************ Operators for all nodes ************/
/// Lookup table
- int numChildrenTable[256];
- int childrenCountTable[256][8];
- int childrenIndexTable[256][8];
int numEdgeTable[8];
int edgeCountTable[8][3];
@@ -375,12 +450,12 @@ class Octree
void buildTable()
{
for (int i = 0; i < 256; i++) {
- numChildrenTable[i] = 0;
+ InternalNode::numChildrenTable[i] = 0;
int count = 0;
for (int j = 0; j < 8; j++) {
- numChildrenTable[i] += ((i >> j) & 1);
- childrenCountTable[i][j] = count;
- childrenIndexTable[i][count] = j;
+ InternalNode::numChildrenTable[i] += ((i >> j) & 1);
+ InternalNode::childrenCountTable[i][j] = count;
+ InternalNode::childrenIndexTable[i][count] = j;
count += ((i >> j) & 1);
}
}
@@ -402,15 +477,15 @@ class Octree
return getSign(&node->leaf, index);
}
else {
- if (hasChild(&node->internal, index)) {
- return getSign(getChild(&node->internal, getChildCount(&node->internal, index)),
+ if (node->internal.has_child(index)) {
+ return getSign(node->internal.get_child(node->internal.get_child_count(index)),
height - 1,
index);
}
else {
- return getSign(getChild(&node->internal, 0),
+ return getSign(node->internal.get_child(0),
height - 1,
- 7 - getChildIndex(&node->internal, 0));
+ 7 - node->internal.get_child_index(0));
}
}
}
@@ -469,7 +544,7 @@ class Octree
leaf->signs |= ((sign & 1) << index);
}
- int getSignMask(const LeafNode *leaf)
+ int getSignMask(const LeafNode *leaf) const
{
return leaf->signs;
}
@@ -536,7 +611,7 @@ class Octree
}
/// Get edge parity
- int getEdgeParity(LeafNode *leaf, int index)
+ int getEdgeParity(const LeafNode *leaf, int index) const
{
assert(index >= 0 && index <= 11);
@@ -597,7 +672,8 @@ class Octree
leaf->primary_edge_intersections |= (1 << pindex);
}
- int getStoredEdgesParity(LeafNode *leaf, int pindex)
+
+ int getStoredEdgesParity(const LeafNode *leaf, int pindex) const
{
assert(pindex <= 2 && pindex >= 0);
@@ -652,7 +728,7 @@ class Octree
InternalNode *parent = locateParent(node, len, st, count);
// Update
- setChild(parent, count, (Node *)leaf);
+ parent->set_child(count, (Node *)leaf);
}
void updateParent(InternalNode *node, int len, int st[3])
@@ -667,14 +743,14 @@ class Octree
InternalNode *parent = locateParent(len, st, count);
// UPdate
- setChild(parent, count, (Node *)node);
+ parent->set_child(count, (Node *)node);
}
/// Find edge intersection on a given edge
- int getEdgeIntersectionByIndex(int st[3], int index, float pt[3], int check)
+ int getEdgeIntersectionByIndex(int st[3], int index, float pt[3], int check) const
{
// First, locat the leaf
- LeafNode *leaf;
+ const LeafNode *leaf;
if (check) {
leaf = locateLeafCheck(st);
}
@@ -697,7 +773,7 @@ class Octree
}
/// Retrieve number of edges intersected
- int getPrimalEdgesMask(LeafNode *leaf)
+ int getPrimalEdgesMask(const LeafNode *leaf) const
{
return leaf->primary_edge_intersections;
}
@@ -710,7 +786,7 @@ class Octree
}
/// Get the count for a primary edge
- int getEdgeCount(LeafNode *leaf, int index)
+ int getEdgeCount(const LeafNode *leaf, int index) const
{
return edgeCountTable[getPrimalEdgesMask(leaf)][index];
}
@@ -744,7 +820,7 @@ class Octree
}
/// Retrieve edge intersection
- float getEdgeOffset(LeafNode *leaf, int count)
+ float getEdgeOffset(const LeafNode *leaf, int count) const
{
return leaf->edge_intersections[4 * count];
}
@@ -834,10 +910,11 @@ class Octree
}
/// Retrieve complete edge intersection
- void getEdgeIntersectionByIndex(LeafNode *leaf, int index, int st[3], int len, float pt[3], float nm[3])
+ void getEdgeIntersectionByIndex(const LeafNode *leaf, int index, int st[3],
+ int len, float pt[3], float nm[3]) const
{
int count = getEdgeCount(leaf, index);
- float *pts = leaf->edge_intersections;
+ const float *pts = leaf->edge_intersections;
float off = pts[4 * count];
@@ -865,7 +942,8 @@ class Octree
return off;
}
- void fillEdgeIntersections(LeafNode *leaf, int st[3], int len, float pts[12][3], float norms[12][3])
+ void fillEdgeIntersections(const LeafNode *leaf, int st[3], int len,
+ float pts[12][3], float norms[12][3]) const
{
int i;
// int stt[3] = {0, 0, 0};
@@ -890,7 +968,7 @@ class Octree
nst[i] += len;
// int nstt[3] = {0, 0, 0};
// nstt[i] += 1;
- LeafNode *node = locateLeaf(nst);
+ const LeafNode *node = locateLeaf(nst);
if (e1) {
// getEdgeIntersectionByIndex(node, femask[i][0], nstt, 1, pts[fmask[i][0]], norms[fmask[i][0]]);
@@ -912,7 +990,7 @@ class Octree
nst[i] -= len;
// int nstt[3] = {1, 1, 1};
// nstt[i] -= 1;
- LeafNode *node = locateLeaf(nst);
+ const LeafNode *node = locateLeaf(nst);
// getEdgeIntersectionByIndex(node, eemask[i], nstt, 1, pts[emask[i]], norms[emask[i]]);
getEdgeIntersectionByIndex(node, eemask[i], nst, len, pts[emask[i]], norms[emask[i]]);
@@ -921,7 +999,9 @@ class Octree
}
- void fillEdgeIntersections(LeafNode *leaf, int st[3], int len, float pts[12][3], float norms[12][3], int parity[12])
+ void fillEdgeIntersections(const LeafNode *leaf, int st[3], int len,
+ float pts[12][3], float norms[12][3],
+ int parity[12]) const
{
int i;
for (i = 0; i < 12; i++) {
@@ -948,7 +1028,7 @@ class Octree
nst[i] += len;
// int nstt[3] = {0, 0, 0};
// nstt[i] += 1;
- LeafNode *node = locateLeafCheck(nst);
+ const LeafNode *node = locateLeafCheck(nst);
if (node == NULL) {
continue;
}
@@ -979,7 +1059,7 @@ class Octree
nst[i] -= len;
// int nstt[3] = {1, 1, 1};
// nstt[i] -= 1;
- LeafNode *node = locateLeafCheck(nst);
+ const LeafNode *node = locateLeafCheck(nst);
if (node == NULL) {
continue;
}
@@ -1088,7 +1168,20 @@ class Octree
int index = (((st[0] >> i) & 1) << 2) |
(((st[1] >> i) & 1) << 1) |
(((st[2] >> i) & 1));
- node = getChild(&node->internal, getChildCount(&node->internal, index));
+ node = node->internal.get_child(node->internal.get_child_count(index));
+ }
+
+ return &node->leaf;
+ }
+
+ const LeafNode *locateLeaf(int st[3]) const
+ {
+ const Node *node = root;
+ for (int i = GRID_DIMENSION - 1; i > GRID_DIMENSION - maxDepth - 1; i--) {
+ int index = (((st[0] >> i) & 1) << 2) |
+ (((st[1] >> i) & 1) << 1) |
+ (((st[2] >> i) & 1));
+ node = node->internal.get_child(node->internal.get_child_count(index));
}
return &node->leaf;
@@ -1102,8 +1195,7 @@ class Octree
index = (((st[0] & i) ? 4 : 0) |
((st[1] & i) ? 2 : 0) |
((st[2] & i) ? 1 : 0));
- node = getChild(&node->internal,
- getChildCount(&node->internal, index));
+ node = node->internal.get_child(node->internal.get_child_count(index));
}
return &node->leaf;
@@ -1116,10 +1208,26 @@ class Octree
int index = (((st[0] >> i) & 1) << 2) |
(((st[1] >> i) & 1) << 1) |
(((st[2] >> i) & 1));
- if (!hasChild(&node->internal, index)) {
+ if (!node->internal.has_child(index)) {
+ return NULL;
+ }
+ node = node->internal.get_child(node->internal.get_child_count(index));
+ }
+
+ return &node->leaf;
+ }
+
+ const LeafNode *locateLeafCheck(int st[3]) const
+ {
+ const Node *node = root;
+ for (int i = GRID_DIMENSION - 1; i > GRID_DIMENSION - maxDepth - 1; i--) {
+ int index = (((st[0] >> i) & 1) << 2) |
+ (((st[1] >> i) & 1) << 1) |
+ (((st[2] >> i) & 1));
+ if (!node->internal.has_child(index)) {
return NULL;
}
- node = getChild(&node->internal, getChildCount(&node->internal, index));
+ node = node->internal.get_child(node->internal.get_child_count(index));
}
return &node->leaf;
@@ -1135,10 +1243,10 @@ class Octree
((st[1] & i) ? 2 : 0) |
((st[2] & i) ? 1 : 0));
pre = node;
- node = &getChild(node, getChildCount(node, index))->internal;
+ node = &node->get_child(node->get_child_count(index))->internal;
}
- count = getChildCount(pre, index);
+ count = pre->get_child_count(index);
return pre;
}
@@ -1152,88 +1260,21 @@ class Octree
((st[1] & i) ? 2 : 0) |
((st[2] & i) ? 1 : 0));
pre = node;
- node = (InternalNode *)getChild(node, getChildCount(node, index));
+ node = &node->get_child(node->get_child_count(index))->internal;
}
- count = getChildCount(pre, index);
+ count = pre->get_child_count(index);
return pre;
}
/************ Operators for internal nodes ************/
- /// If child index exists
- int hasChild(InternalNode *node, int index)
- {
- return (node->has_child >> index) & 1;
- }
-
- /// Get the pointer to child index
- Node *getChild(InternalNode *node, int count)
- {
- return node->children[count];
- };
-
- /// Get total number of children
- int getNumChildren(InternalNode *node)
- {
- return numChildrenTable[node->has_child];
- }
-
- /// Get the count of children
- int getChildCount(InternalNode *node, int index)
- {
- return childrenCountTable[node->has_child][index];
- }
- int getChildIndex(InternalNode *node, int count)
- {
- return childrenIndexTable[node->has_child][count];
- }
- int *getChildCounts(InternalNode *node)
- {
- return childrenCountTable[node->has_child];
- }
-
- /// Get all children
- void fillChildren(InternalNode *node, Node *children[8], int leaf[8])
- {
- int count = 0;
- for (int i = 0; i < 8; i++) {
- leaf[i] = node->is_child_leaf(i);
- if (hasChild(node, i)) {
- children[i] = getChild(node, count);
- count++;
- }
- else {
- children[i] = NULL;
- leaf[i] = 0;
- }
- }
- }
-
- /// Sets the child pointer
- void setChild(InternalNode *node, int count, Node *chd)
- {
- node->children[count] = chd;
- }
- void setInternalChild(InternalNode *node, int index, int count, InternalNode *chd)
- {
- setChild(node, count, (Node *)chd);
- node->has_child |= (1 << index);
- }
- void setLeafChild(InternalNode *node, int index, int count, LeafNode *chd)
- {
- setChild(node, count, (Node *)chd);
- node->has_child |= (1 << index);
- node->child_is_leaf |= (1 << index);
- }
/// Add a kid to an existing internal node
- /// Fix me: can we do this without wasting memory ?
- /// Fixed: using variable memory
InternalNode *addChild(InternalNode *node, int index, Node *child, int aLeaf)
{
// Create new internal node
- int num = getNumChildren(node);
+ int num = node->get_num_children();
InternalNode *rnode = createInternal(num + 1);
// Establish children
@@ -1242,19 +1283,19 @@ class Octree
for (i = 0; i < 8; i++) {
if (i == index) {
if (aLeaf) {
- setLeafChild(rnode, i, count2, &child->leaf);
+ rnode->set_leaf_child(i, count2, &child->leaf);
}
else {
- setInternalChild(rnode, i, count2, &child->internal);
+ rnode->set_internal_child(i, count2, &child->internal);
}
count2++;
}
- else if (hasChild(node, i)) {
+ else if (node->has_child(i)) {
if (node->is_child_leaf(i)) {
- setLeafChild(rnode, i, count2, &getChild(node, count1)->leaf);
+ rnode->set_leaf_child(i, count2, &node->get_child(count1)->leaf);
}
else {
- setInternalChild(rnode, i, count2, &getChild(node, count1)->internal);
+ rnode->set_internal_child(i, count2, &node->get_child(count1)->internal);
}
count1++;
count2++;
@@ -1269,8 +1310,8 @@ class Octree
InternalNode *createInternal(int length)
{
InternalNode *inode = (InternalNode *)alloc[length]->allocate();
- inode->has_child = 0;
- inode->child_is_leaf = 0;
+ inode->has_child_bitfield = 0;
+ inode->child_is_leaf_bitfield = 0;
return inode;
}
@@ -1301,21 +1342,21 @@ class Octree
InternalNode *addLeafChild(InternalNode *par, int index, int count,
LeafNode *leaf)
{
- int num = getNumChildren(par) + 1;
+ int num = par->get_num_children() + 1;
InternalNode *npar = createInternal(num);
*npar = *par;
if (num == 1) {
- setLeafChild(npar, index, 0, leaf);
+ npar->set_leaf_child(index, 0, leaf);
}
else {
int i;
for (i = 0; i < count; i++) {
- setChild(npar, i, getChild(par, i));
+ npar->set_child(i, par->get_child(i));
}
- setLeafChild(npar, index, count, leaf);
+ npar->set_leaf_child(index, count, leaf);
for (i = count + 1; i < num; i++) {
- setChild(npar, i, getChild(par, i - 1));
+ npar->set_child(i, par->get_child(i - 1));
}
}
@@ -1326,21 +1367,21 @@ class Octree
InternalNode *addInternalChild(InternalNode *par, int index, int count,
InternalNode *node)
{
- int num = getNumChildren(par) + 1;
+ int num = par->get_num_children() + 1;
InternalNode *npar = createInternal(num);
*npar = *par;
if (num == 1) {
- setInternalChild(npar, index, 0, node);
+ npar->set_internal_child(index, 0, node);
}
else {
int i;
for (i = 0; i < count; i++) {
- setChild(npar, i, getChild(par, i));
+ npar->set_child(i, par->get_child(i));
}
- setInternalChild(npar, index, count, node);
+ npar->set_internal_child(index, count, node);
for (i = count + 1; i < num; i++) {
- setChild(npar, i, getChild(par, i - 1));
+ npar->set_child(i, par->get_child(i - 1));
}
}
diff --git a/intern/elbeem/intern/mvmcoords.cpp b/intern/elbeem/intern/mvmcoords.cpp
index 426b8c6606d..281a9656fcf 100644
--- a/intern/elbeem/intern/mvmcoords.cpp
+++ b/intern/elbeem/intern/mvmcoords.cpp
@@ -16,6 +16,13 @@
#include "mvmcoords.h"
#include <algorithm>
+
+#if defined(_MSC_VER) && _MSC_VER > 1600
+// sdt::greater
+#include <functional>
+#endif
+
+
using std::vector;
void MeanValueMeshCoords::clear()
diff --git a/intern/ghost/GHOST_C-api.h b/intern/ghost/GHOST_C-api.h
index 764df79230d..87ab3c013c6 100644
--- a/intern/ghost/GHOST_C-api.h
+++ b/intern/ghost/GHOST_C-api.h
@@ -26,7 +26,7 @@
*/
/** \ingroup GHOST
*
- * \file GHOST_C-api.h
+ * \file GHOST_C-api.h
* \brief GHOST C-API function and type declarations.
*/
@@ -43,7 +43,7 @@ extern "C" {
* Creates a &quot;handle&quot; for a C++ GHOST object.
* A handle is just an opaque pointer to an empty struct.
* In the API the pointer is casted to the actual C++ class.
- * \param name Name of the handle to create.
+ * \param name Name of the handle to create.
*/
GHOST_DECLARE_HANDLE(GHOST_SystemHandle);
@@ -56,48 +56,47 @@ GHOST_DECLARE_HANDLE(GHOST_EventConsumerHandle);
/**
* Definition of a callback routine that receives events.
- * @param event The event received.
- * @param userdata The callback's user data, supplied to GHOST_CreateSystem.
+ * \param event The event received.
+ * \param userdata The callback's user data, supplied to GHOST_CreateSystem.
*/
typedef int (*GHOST_EventCallbackProcPtr)(GHOST_EventHandle event, GHOST_TUserDataPtr userdata);
/**
* Creates the one and only system.
- * @return a handle to the system.
+ * \return a handle to the system.
*/
extern GHOST_SystemHandle GHOST_CreateSystem(void);
/**
* Disposes the one and only system.
- * @param systemhandle The handle to the system
- * @return An indication of success.
+ * \param systemhandle The handle to the system
+ * \return An indication of success.
*/
extern GHOST_TSuccess GHOST_DisposeSystem(GHOST_SystemHandle systemhandle);
/**
* Creates an event consumer object
- * @param eventCallback The event callback routine.
- * @param userdata Pointer to user data returned to the callback routine.
+ * \param eventCallback The event callback routine.
+ * \param userdata Pointer to user data returned to the callback routine.
*/
extern GHOST_EventConsumerHandle GHOST_CreateEventConsumer(GHOST_EventCallbackProcPtr eventCallback,
GHOST_TUserDataPtr userdata);
/**
* Disposes an event consumer object
- * @param consumerhandle Handle to the event consumer.
- * @return An indication of success.
+ * \param consumerhandle Handle to the event consumer.
+ * \return An indication of success.
*/
extern GHOST_TSuccess GHOST_DisposeEventConsumer(GHOST_EventConsumerHandle consumerhandle);
-
/**
* Returns the system time.
* Returns the number of milliseconds since the start of the system process.
* Based on ANSI clock() routine.
- * @param systemhandle The handle to the system
- * @return The number of milliseconds.
+ * \param systemhandle The handle to the system
+ * \return The number of milliseconds.
*/
extern GHOST_TUns64 GHOST_GetMilliSeconds(GHOST_SystemHandle systemhandle);
@@ -105,12 +104,12 @@ extern GHOST_TUns64 GHOST_GetMilliSeconds(GHOST_SystemHandle systemhandle);
* Installs a timer.
* Note that, on most operating systems, messages need to be processed in order
* for the timer callbacks to be invoked.
- * @param systemhandle The handle to the system
- * @param delay The time to wait for the first call to the timerProc (in milliseconds)
- * @param interval The interval between calls to the timerProc (in milliseconds)
- * @param timerProc The callback invoked when the interval expires,
- * @param userData Placeholder for user data.
- * @return A timer task (0 if timer task installation failed).
+ * \param systemhandle The handle to the system
+ * \param delay The time to wait for the first call to the timerProc (in milliseconds)
+ * \param interval The interval between calls to the timerProc (in milliseconds)
+ * \param timerProc The callback invoked when the interval expires,
+ * \param userData Placeholder for user data.
+ * \return A timer task (0 if timer task installation failed).
*/
extern GHOST_TimerTaskHandle GHOST_InstallTimer(GHOST_SystemHandle systemhandle,
GHOST_TUns64 delay,
@@ -120,9 +119,9 @@ extern GHOST_TimerTaskHandle GHOST_InstallTimer(GHOST_SystemHandle systemhandle,
/**
* Removes a timer.
- * @param systemhandle The handle to the system
- * @param timerTask Timer task to be removed.
- * @return Indication of success.
+ * \param systemhandle The handle to the system
+ * \param timerTask Timer task to be removed.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_RemoveTimer(GHOST_SystemHandle systemhandle,
GHOST_TimerTaskHandle timertaskhandle);
@@ -133,17 +132,17 @@ extern GHOST_TSuccess GHOST_RemoveTimer(GHOST_SystemHandle systemhandle,
/**
* Returns the number of displays on this system.
- * @param systemhandle The handle to the system
- * @return The number of displays.
+ * \param systemhandle The handle to the system
+ * \return The number of displays.
*/
extern GHOST_TUns8 GHOST_GetNumDisplays(GHOST_SystemHandle systemhandle);
/**
* Returns the dimensions of the main display on this system.
- * @param systemhandle The handle to the system
- * @param width A pointer the width gets put in
- * @param height A pointer the height gets put in
- * @return void.
+ * \param systemhandle The handle to the system
+ * \param width A pointer the width gets put in
+ * \param height A pointer the height gets put in
+ * \return void.
*/
extern void GHOST_GetMainDisplayDimensions(GHOST_SystemHandle systemhandle,
GHOST_TUns32 *width,
@@ -153,17 +152,17 @@ extern void GHOST_GetMainDisplayDimensions(GHOST_SystemHandle systemhandle,
* Create a new window.
* The new window is added to the list of windows managed.
* Never explicitly delete the window, use disposeWindow() instead.
- * @param systemhandle The handle to the system
- * @param title The name of the window (displayed in the title bar of the window if the OS supports it).
- * @param left The coordinate of the left edge of the window.
- * @param top The coordinate of the top edge of the window.
- * @param width The width the window.
- * @param height The height the window.
- * @param state The state of the window when opened.
- * @param type The type of drawing context installed in this window.
- * @param stereoVisual Stereo visual for quad buffered stereo.
- * @param numOfAASamples Number of samples used for AA (zero if no AA)
- * @return A handle to the new window ( == NULL if creation failed).
+ * \param systemhandle The handle to the system
+ * \param title The name of the window (displayed in the title bar of the window if the OS supports it).
+ * \param left The coordinate of the left edge of the window.
+ * \param top The coordinate of the top edge of the window.
+ * \param width The width the window.
+ * \param height The height the window.
+ * \param state The state of the window when opened.
+ * \param type The type of drawing context installed in this window.
+ * \param stereoVisual Stereo visual for quad buffered stereo.
+ * \param numOfAASamples Number of samples used for AA (zero if no AA)
+ * \return A handle to the new window ( == NULL if creation failed).
*/
extern GHOST_WindowHandle GHOST_CreateWindow(GHOST_SystemHandle systemhandle,
const char *title,
@@ -178,43 +177,43 @@ extern GHOST_WindowHandle GHOST_CreateWindow(GHOST_SystemHandle systemhandle,
/**
* Returns the window user data.
- * @param windowhandle The handle to the window
- * @return The window user data.
+ * \param windowhandle The handle to the window
+ * \return The window user data.
*/
extern GHOST_TUserDataPtr GHOST_GetWindowUserData(GHOST_WindowHandle windowhandle);
-
+
/**
* Changes the window user data.
- * @param windowhandle The handle to the window
- * @param data The window user data.
+ * \param windowhandle The handle to the window
+ * \param data The window user data.
*/
extern void GHOST_SetWindowUserData(GHOST_WindowHandle windowhandle,
GHOST_TUserDataPtr userdata);
/**
* Dispose a window.
- * @param systemhandle The handle to the system
- * @param window Handle to the window to be disposed.
- * @return Indication of success.
+ * \param systemhandle The handle to the system
+ * \param windowhandle Handle to the window to be disposed.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_DisposeWindow(GHOST_SystemHandle systemhandle,
GHOST_WindowHandle windowhandle);
/**
* Returns whether a window is valid.
- * @param systemhandle The handle to the system
- * @param window Handle to the window to be checked.
- * @return Indication of validity.
+ * \param systemhandle The handle to the system
+ * \param windowhandle Handle to the window to be checked.
+ * \return Indication of validity.
*/
extern int GHOST_ValidWindow(GHOST_SystemHandle systemhandle,
GHOST_WindowHandle windowhandle);
/**
* Begins full screen mode.
- * @param systemhandle The handle to the system
- * @param setting The new setting of the display.
- * @return A handle to the window displayed in full screen.
- * This window is invalid after full screen has been ended.
+ * \param systemhandle The handle to the system
+ * \param setting The new setting of the display.
+ * \return A handle to the window displayed in full screen.
+ * This window is invalid after full screen has been ended.
*/
extern GHOST_WindowHandle GHOST_BeginFullScreen(GHOST_SystemHandle systemhandle,
GHOST_DisplaySetting *setting,
@@ -222,15 +221,15 @@ extern GHOST_WindowHandle GHOST_BeginFullScreen(GHOST_SystemHandle systemhandle,
/**
* Ends full screen mode.
- * @param systemhandle The handle to the system
- * @return Indication of success.
+ * \param systemhandle The handle to the system
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_EndFullScreen(GHOST_SystemHandle systemhandle);
/**
* Returns current full screen mode status.
- * @param systemhandle The handle to the system
- * @return The current status.
+ * \param systemhandle The handle to the system
+ * \return The current status.
*/
extern int GHOST_GetFullScreen(GHOST_SystemHandle systemhandle);
@@ -240,34 +239,34 @@ extern int GHOST_GetFullScreen(GHOST_SystemHandle systemhandle);
/**
* Retrieves events from the system and stores them in the queue.
- * @param systemhandle The handle to the system
- * @param waitForEvent Boolean to indicate that ProcessEvents should
+ * \param systemhandle The handle to the system
+ * \param waitForEvent Boolean to indicate that ProcessEvents should
* wait (block) until the next event before returning.
- * @return Indication of the presence of events.
+ * \return Indication of the presence of events.
*/
extern int GHOST_ProcessEvents(GHOST_SystemHandle systemhandle, int waitForEvent);
/**
* Retrieves events from the queue and send them to the event consumers.
- * @param systemhandle The handle to the system
- * @return Indication of the presence of events.
+ * \param systemhandle The handle to the system
+ * \return Indication of the presence of events.
*/
extern int GHOST_DispatchEvents(GHOST_SystemHandle systemhandle);
/**
* Adds the given event consumer to our list.
- * @param systemhandle The handle to the system
- * @param consumerhandle The event consumer to add.
- * @return Indication of success.
+ * \param systemhandle The handle to the system
+ * \param consumerhandle The event consumer to add.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_AddEventConsumer(GHOST_SystemHandle systemhandle,
GHOST_EventConsumerHandle consumerhandle);
/**
* Remove the given event consumer to our list.
- * @param systemhandle The handle to the system
- * @param consumerhandle The event consumer to remove.
- * @return Indication of success.
+ * \param systemhandle The handle to the system
+ * \param consumerhandle The event consumer to remove.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_RemoveEventConsumer(GHOST_SystemHandle systemhandle,
GHOST_EventConsumerHandle consumerhandle);
@@ -278,14 +277,14 @@ extern GHOST_TSuccess GHOST_RemoveEventConsumer(GHOST_SystemHandle systemhandle,
/**
* Sets the progress bar value displayed in the window/application icon
- * @param windowhandle The handle to the window
- * @param progress The progress % (0.0 to 1.0)
+ * \param windowhandle The handle to the window
+ * \param progress The progress % (0.0 to 1.0)
*/
extern GHOST_TSuccess GHOST_SetProgressBar(GHOST_WindowHandle windowhandle, float progress);
/**
* Hides the progress bar in the icon
- * @param windowhandle The handle to the window
+ * \param windowhandle The handle to the window
*/
extern GHOST_TSuccess GHOST_EndProgressBar(GHOST_WindowHandle windowhandle);
@@ -295,28 +294,28 @@ extern GHOST_TSuccess GHOST_EndProgressBar(GHOST_WindowHandle windowhandle);
/**
* Returns the current cursor shape.
- * @param windowhandle The handle to the window
- * @return The current cursor shape.
+ * \param windowhandle The handle to the window
+ * \return The current cursor shape.
*/
extern GHOST_TStandardCursor GHOST_GetCursorShape(GHOST_WindowHandle windowhandle);
/**
* Set the shape of the cursor.
- * @param windowhandle The handle to the window
- * @param cursor The new cursor shape type id.
- * @return Indication of success.
+ * \param windowhandle The handle to the window
+ * \param cursor The new cursor shape type id.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_SetCursorShape(GHOST_WindowHandle windowhandle,
GHOST_TStandardCursor cursorshape);
/**
* Set the shape of the cursor to a custom cursor.
- * @param windowhandle The handle to the window
- * @param bitmap The bitmap data for the cursor.
- * @param mask The mask data for the cursor.
- * @param hotX The X coordinate of the cursor hotspot.
- * @param hotY The Y coordinate of the cursor hotspot.
- * @return Indication of success.
+ * \param windowhandle The handle to the window
+ * \param bitmap The bitmap data for the cursor.
+ * \param mask The mask data for the cursor.
+ * \param hotX The X coordinate of the cursor hotspot.
+ * \param hotY The Y coordinate of the cursor hotspot.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_SetCustomCursorShape(GHOST_WindowHandle windowhandle,
GHOST_TUns8 bitmap[16][2],
@@ -325,14 +324,15 @@ extern GHOST_TSuccess GHOST_SetCustomCursorShape(GHOST_WindowHandle windowhandle
int hotY);
/**
* Set the shape of the cursor to a custom cursor of specified size.
- * @param windowhandle The handle to the window
- * @param bitmap The bitmap data for the cursor.
- * @param mask The mask data for the cursor.
- * @parm sizex, sizey The size of the cursor
- * @param hotX The X coordinate of the cursor hotspot.
- * @param hotY The Y coordinate of the cursor hotspot.
- * @param fg_color, bg_color Colors of the cursor
- * @return Indication of success.
+ * \param windowhandle The handle to the window
+ * \param bitmap The bitmap data for the cursor.
+ * \param mask The mask data for the cursor.
+ * \param sizex The width of the cursor
+ * \param sizey The height of the cursor
+ * \param hotX The X coordinate of the cursor hotspot.
+ * \param hotY The Y coordinate of the cursor hotspot.
+ * \param fg_color, bg_color Colors of the cursor
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_SetCustomCursorShapeEx(GHOST_WindowHandle windowhandle,
GHOST_TUns8 *bitmap,
@@ -343,26 +343,26 @@ extern GHOST_TSuccess GHOST_SetCustomCursorShapeEx(GHOST_WindowHandle windowhand
/**
* Returns the visibility state of the cursor.
- * @param windowhandle The handle to the window
- * @return The visibility state of the cursor.
+ * \param windowhandle The handle to the window
+ * \return The visibility state of the cursor.
*/
extern int GHOST_GetCursorVisibility(GHOST_WindowHandle windowhandle);
/**
* Shows or hides the cursor.
- * @param windowhandle The handle to the window
- * @param visible The new visibility state of the cursor.
- * @return Indication of success.
+ * \param windowhandle The handle to the window
+ * \param visible The new visibility state of the cursor.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_SetCursorVisibility(GHOST_WindowHandle windowhandle,
int visible);
/**
* Returns the current location of the cursor (location in screen coordinates)
- * @param systemhandle The handle to the system
- * @param x The x-coordinate of the cursor.
- * @param y The y-coordinate of the cursor.
- * @return Indication of success.
+ * \param systemhandle The handle to the system
+ * \param x The x-coordinate of the cursor.
+ * \param y The y-coordinate of the cursor.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_GetCursorPosition(GHOST_SystemHandle systemhandle,
GHOST_TInt32 *x,
@@ -371,10 +371,10 @@ extern GHOST_TSuccess GHOST_GetCursorPosition(GHOST_SystemHandle systemhandle,
/**
* Updates the location of the cursor (location in screen coordinates).
* Not all operating systems allow the cursor to be moved (without the input device being moved).
- * @param systemhandle The handle to the system
- * @param x The x-coordinate of the cursor.
- * @param y The y-coordinate of the cursor.
- * @return Indication of success.
+ * \param systemhandle The handle to the system
+ * \param x The x-coordinate of the cursor.
+ * \param y The y-coordinate of the cursor.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_SetCursorPosition(GHOST_SystemHandle systemhandle,
GHOST_TInt32 x,
@@ -384,14 +384,15 @@ extern GHOST_TSuccess GHOST_SetCursorPosition(GHOST_SystemHandle systemhandle,
* Grabs the cursor for a modal operation, to keep receiving
* events when the mouse is outside the window. X11 only, others
* do this automatically.
- * @param windowhandle The handle to the window
- * @param mode The new grab state of the cursor.
- * @param bounds The grab ragion (optional) - left,top,right,bottom
- * @return Indication of success.
+ * \param windowhandle The handle to the window
+ * \param mode The new grab state of the cursor.
+ * \param bounds The grab ragion (optional) - left,top,right,bottom
+ * \param mouse_ungrab_xy XY for new mouse location (optional) - x,y
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_SetCursorGrab(GHOST_WindowHandle windowhandle,
GHOST_TGrabCursorMode mode,
- int *bounds);
+ int bounds[4], int mouse_ungrab_xy[2]);
/***************************************************************************************
* Access to mouse button and keyboard states.
@@ -399,10 +400,10 @@ extern GHOST_TSuccess GHOST_SetCursorGrab(GHOST_WindowHandle windowhandle,
/**
* Returns the state of a modifier key (ouside the message queue).
- * @param systemhandle The handle to the system
- * @param mask The modifier key state to retrieve.
- * @param isDown Pointer to return modifier state in.
- * @return Indication of success.
+ * \param systemhandle The handle to the system
+ * \param mask The modifier key state to retrieve.
+ * \param isDown Pointer to return modifier state in.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_GetModifierKeyState(GHOST_SystemHandle systemhandle,
GHOST_TModifierKeyMask mask,
@@ -410,10 +411,10 @@ extern GHOST_TSuccess GHOST_GetModifierKeyState(GHOST_SystemHandle systemhandle,
/**
* Returns the state of a mouse button (ouside the message queue).
- * @param systemhandle The handle to the system
- * @param mask The button state to retrieve.
- * @param isDown Pointer to return button state in.
- * @return Indication of success.
+ * \param systemhandle The handle to the system
+ * \param mask The button state to retrieve.
+ * \param isDown Pointer to return button state in.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_GetButtonState(GHOST_SystemHandle systemhandle,
GHOST_TButtonMask mask,
@@ -428,94 +429,93 @@ extern GHOST_TSuccess GHOST_GetButtonState(GHOST_SystemHandle systemhandle,
* Tells if the ongoing drag'n'drop object can be accepted upon mouse drop
*/
extern void GHOST_setAcceptDragOperation(GHOST_WindowHandle windowhandle, GHOST_TInt8 canAccept);
-
-
+
/**
* Returns the event type.
- * @param eventhandle The handle to the event
- * @return The event type.
+ * \param eventhandle The handle to the event
+ * \return The event type.
*/
extern GHOST_TEventType GHOST_GetEventType(GHOST_EventHandle eventhandle);
/**
* Returns the time this event was generated.
- * @param eventhandle The handle to the event
- * @return The event generation time.
+ * \param eventhandle The handle to the event
+ * \return The event generation time.
*/
extern GHOST_TUns64 GHOST_GetEventTime(GHOST_EventHandle eventhandle);
/**
* Returns the window this event was generated on,
* or NULL if it is a 'system' event.
- * @param eventhandle The handle to the event
- * @return The generating window.
+ * \param eventhandle The handle to the event
+ * \return The generating window.
*/
extern GHOST_WindowHandle GHOST_GetEventWindow(GHOST_EventHandle eventhandle);
/**
* Returns the event data.
- * @param eventhandle The handle to the event
- * @return The event data.
+ * \param eventhandle The handle to the event
+ * \return The event data.
*/
extern GHOST_TEventDataPtr GHOST_GetEventData(GHOST_EventHandle eventhandle);
/**
* Returns the timer callback.
- * @param timertaskhandle The handle to the timertask
- * @return The timer callback.
+ * \param timertaskhandle The handle to the timertask
+ * \return The timer callback.
*/
extern GHOST_TimerProcPtr GHOST_GetTimerProc(GHOST_TimerTaskHandle timertaskhandle);
/**
* Changes the timer callback.
- * @param timertaskhandle The handle to the timertask
- * @param timerProc The timer callback.
+ * \param timertaskhandle The handle to the timertask
+ * \param timerProc The timer callback.
*/
extern void GHOST_SetTimerProc(GHOST_TimerTaskHandle timertaskhandle,
GHOST_TimerProcPtr timerProc);
/**
* Returns the timer user data.
- * @param timertaskhandle The handle to the timertask
- * @return The timer user data.
+ * \param timertaskhandle The handle to the timertask
+ * \return The timer user data.
*/
extern GHOST_TUserDataPtr GHOST_GetTimerTaskUserData(GHOST_TimerTaskHandle timertaskhandle);
-
+
/**
* Changes the time user data.
- * @param timertaskhandle The handle to the timertask
- * @param data The timer user data.
+ * \param timertaskhandle The handle to the timertask
+ * \param data The timer user data.
*/
extern void GHOST_SetTimerTaskUserData(GHOST_TimerTaskHandle timertaskhandle,
GHOST_TUserDataPtr userData);
/**
* Returns indication as to whether the window is valid.
- * @param windowhandle The handle to the window
- * @return The validity of the window.
+ * \param windowhandle The handle to the window
+ * \return The validity of the window.
*/
extern int GHOST_GetValid(GHOST_WindowHandle windowhandle);
/**
* Returns the type of drawing context used in this window.
- * @param windowhandle The handle to the window
- * @return The current type of drawing context.
+ * \param windowhandle The handle to the window
+ * \return The current type of drawing context.
*/
extern GHOST_TDrawingContextType GHOST_GetDrawingContextType(GHOST_WindowHandle windowhandle);
/**
* Tries to install a rendering context in this window.
- * @param windowhandle The handle to the window
- * @param type The type of rendering context installed.
- * @return Indication as to whether installation has succeeded.
+ * \param windowhandle The handle to the window
+ * \param type The type of rendering context installed.
+ * \return Indication as to whether installation has succeeded.
*/
extern GHOST_TSuccess GHOST_SetDrawingContextType(GHOST_WindowHandle windowhandle,
GHOST_TDrawingContextType type);
/**
* Sets the title displayed in the title bar.
- * @param windowhandle The handle to the window
- * @param title The title to display in the title bar.
+ * \param windowhandle The handle to the window
+ * \param title The title to display in the title bar.
*/
extern void GHOST_SetTitle(GHOST_WindowHandle windowhandle,
const char *title);
@@ -524,57 +524,57 @@ extern void GHOST_SetTitle(GHOST_WindowHandle windowhandle,
* Returns the title displayed in the title bar. The title
* should be free'd with free().
*
- * @param windowhandle The handle to the window
- * @return The title, free with free().
+ * \param windowhandle The handle to the window
+ * \return The title, free with free().
*/
extern char *GHOST_GetTitle(GHOST_WindowHandle windowhandle);
/**
* Returns the window rectangle dimensions.
* These are screen coordinates.
- * @param windowhandle The handle to the window
- * @return A handle to the bounding rectangle of the window.
+ * \param windowhandle The handle to the window
+ * \return A handle to the bounding rectangle of the window.
*/
extern GHOST_RectangleHandle GHOST_GetWindowBounds(GHOST_WindowHandle windowhandle);
/**
* Returns the client rectangle dimensions.
* The left and top members of the rectangle are always zero.
- * @param windowhandle The handle to the window
- * @return A handle to the bounding rectangle of the window.
+ * \param windowhandle The handle to the window
+ * \return A handle to the bounding rectangle of the window.
*/
extern GHOST_RectangleHandle GHOST_GetClientBounds(GHOST_WindowHandle windowhandle);
/**
* Disposes a rectangle object
- * @param rectanglehandle Handle to the rectangle.
+ * \param rectanglehandle Handle to the rectangle.
*/
void GHOST_DisposeRectangle(GHOST_RectangleHandle rectanglehandle);
/**
* Resizes client rectangle width.
- * @param windowhandle The handle to the window
- * @param width The new width of the client area of the window.
- * @return Indication of success.
+ * \param windowhandle The handle to the window
+ * \param width The new width of the client area of the window.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_SetClientWidth(GHOST_WindowHandle windowhandle,
GHOST_TUns32 width);
/**
* Resizes client rectangle height.
- * @param windowhandle The handle to the window
- * @param height The new height of the client area of the window.
- * @return Indication of success.
+ * \param windowhandle The handle to the window
+ * \param height The new height of the client area of the window.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_SetClientHeight(GHOST_WindowHandle windowhandle,
GHOST_TUns32 height);
/**
* Resizes client rectangle.
- * @param windowhandle The handle to the window
- * @param width The new width of the client area of the window.
- * @param height The new height of the client area of the window.
- * @return Indication of success.
+ * \param windowhandle The handle to the window
+ * \param width The new width of the client area of the window.
+ * \param height The new height of the client area of the window.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_SetClientSize(GHOST_WindowHandle windowhandle,
GHOST_TUns32 width,
@@ -582,11 +582,11 @@ extern GHOST_TSuccess GHOST_SetClientSize(GHOST_WindowHandle windowhandle,
/**
* Converts a point in screen coordinates to client rectangle coordinates
- * @param windowhandle The handle to the window
- * @param inX The x-coordinate on the screen.
- * @param inY The y-coordinate on the screen.
- * @param outX The x-coordinate in the client rectangle.
- * @param outY The y-coordinate in the client rectangle.
+ * \param windowhandle The handle to the window
+ * \param inX The x-coordinate on the screen.
+ * \param inY The y-coordinate on the screen.
+ * \param outX The x-coordinate in the client rectangle.
+ * \param outY The y-coordinate in the client rectangle.
*/
extern void GHOST_ScreenToClient(GHOST_WindowHandle windowhandle,
GHOST_TInt32 inX,
@@ -596,11 +596,11 @@ extern void GHOST_ScreenToClient(GHOST_WindowHandle windowhandle,
/**
* Converts a point in screen coordinates to client rectangle coordinates
- * @param windowhandle The handle to the window
- * @param inX The x-coordinate in the client rectangle.
- * @param inY The y-coordinate in the client rectangle.
- * @param outX The x-coordinate on the screen.
- * @param outY The y-coordinate on the screen.
+ * \param windowhandle The handle to the window
+ * \param inX The x-coordinate in the client rectangle.
+ * \param inY The y-coordinate in the client rectangle.
+ * \param outX The x-coordinate on the screen.
+ * \param outY The y-coordinate on the screen.
*/
extern void GHOST_ClientToScreen(GHOST_WindowHandle windowhandle,
GHOST_TInt32 inX,
@@ -610,88 +610,88 @@ extern void GHOST_ClientToScreen(GHOST_WindowHandle windowhandle,
/**
* Returns the state of the window (normal, minimized, maximized).
- * @param windowhandle The handle to the window
- * @return The state of the window.
+ * \param windowhandle The handle to the window
+ * \return The state of the window.
*/
extern GHOST_TWindowState GHOST_GetWindowState(GHOST_WindowHandle windowhandle);
/**
* Sets the state of the window (normal, minimized, maximized).
- * @param windowhandle The handle to the window
- * @param state The state of the window.
- * @return Indication of success.
+ * \param windowhandle The handle to the window
+ * \param state The state of the window.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_SetWindowState(GHOST_WindowHandle windowhandle,
GHOST_TWindowState state);
-
+
/**
* Sets the window "modified" status, indicating unsaved changes
- * @param windowhandle The handle to the window
- * @param isUnsavedChanges Unsaved changes or not
- * @return Indication of success.
+ * \param windowhandle The handle to the window
+ * \param isUnsavedChanges Unsaved changes or not
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_SetWindowModifiedState(GHOST_WindowHandle windowhandle,
GHOST_TUns8 isUnsavedChanges);
-
+
/**
* Sets the order of the window (bottom, top).
- * @param windowhandle The handle to the window
- * @param order The order of the window.
- * @return Indication of success.
+ * \param windowhandle The handle to the window
+ * \param order The order of the window.
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_SetWindowOrder(GHOST_WindowHandle windowhandle,
GHOST_TWindowOrder order);
/**
* Swaps front and back buffers of a window.
- * @param windowhandle The handle to the window
- * @return An intean success indicator.
+ * \param windowhandle The handle to the window
+ * \return An intean success indicator.
*/
extern GHOST_TSuccess GHOST_SwapWindowBuffers(GHOST_WindowHandle windowhandle);
/**
* Activates the drawing context of this window.
- * @param windowhandle The handle to the window
- * @return An intean success indicator.
+ * \param windowhandle The handle to the window
+ * \return An intean success indicator.
*/
extern GHOST_TSuccess GHOST_ActivateWindowDrawingContext(GHOST_WindowHandle windowhandle);
/**
* Invalidates the contents of this window.
- * @param windowhandle The handle to the window
- * @return Indication of success.
+ * \param windowhandle The handle to the window
+ * \return Indication of success.
*/
extern GHOST_TSuccess GHOST_InvalidateWindow(GHOST_WindowHandle windowhandle);
/**
* Returns the status of the tablet
- * @param windowhandle The handle to the window
- * @return Status of tablet
+ * \param windowhandle The handle to the window
+ * \return Status of tablet
*/
extern const GHOST_TabletData *GHOST_GetTabletData(GHOST_WindowHandle windowhandle);
/**
* Access to rectangle width.
- * @param rectanglehandle The handle to the rectangle
- * @return width of the rectangle
+ * \param rectanglehandle The handle to the rectangle
+ * \return width of the rectangle
*/
extern GHOST_TInt32 GHOST_GetWidthRectangle(GHOST_RectangleHandle rectanglehandle);
/**
* Access to rectangle height.
- * @param rectanglehandle The handle to the rectangle
- * @return height of the rectangle
+ * \param rectanglehandle The handle to the rectangle
+ * \return height of the rectangle
*/
extern GHOST_TInt32 GHOST_GetHeightRectangle(GHOST_RectangleHandle rectanglehandle);
/**
* Gets all members of the rectangle.
- * @param rectanglehandle The handle to the rectangle
- * @param l Pointer to return left coordinate in.
- * @param t Pointer to return top coordinate in.
- * @param r Pointer to return right coordinate in.
- * @param b Pointer to return bottom coordinate in.
+ * \param rectanglehandle The handle to the rectangle
+ * \param l Pointer to return left coordinate in.
+ * \param t Pointer to return top coordinate in.
+ * \param r Pointer to return right coordinate in.
+ * \param b Pointer to return bottom coordinate in.
*/
extern void GHOST_GetRectangle(GHOST_RectangleHandle rectanglehandle,
GHOST_TInt32 *l,
@@ -701,11 +701,11 @@ extern void GHOST_GetRectangle(GHOST_RectangleHandle rectanglehandle,
/**
* Sets all members of the rectangle.
- * @param rectanglehandle The handle to the rectangle
- * @param l requested left coordinate of the rectangle
- * @param t requested top coordinate of the rectangle
- * @param r requested right coordinate of the rectangle
- * @param b requested bottom coordinate of the rectangle
+ * \param rectanglehandle The handle to the rectangle
+ * \param l requested left coordinate of the rectangle
+ * \param t requested top coordinate of the rectangle
+ * \param r requested right coordinate of the rectangle
+ * \param b requested bottom coordinate of the rectangle
*/
extern void GHOST_SetRectangle(GHOST_RectangleHandle rectanglehandle,
GHOST_TInt32 l,
@@ -716,24 +716,24 @@ extern void GHOST_SetRectangle(GHOST_RectangleHandle rectanglehandle,
/**
* Returns whether this rectangle is empty.
* Empty rectangles are rectangles that have width==0 and/or height==0.
- * @param rectanglehandle The handle to the rectangle
- * @return intean value (true == empty rectangle)
+ * \param rectanglehandle The handle to the rectangle
+ * \return intean value (true == empty rectangle)
*/
extern GHOST_TSuccess GHOST_IsEmptyRectangle(GHOST_RectangleHandle rectanglehandle);
/**
* Returns whether this rectangle is valid.
* Valid rectangles are rectangles that have m_l <= m_r and m_t <= m_b. Thus, emapty rectangles are valid.
- * @param rectanglehandle The handle to the rectangle
- * @return intean value (true==valid rectangle)
+ * \param rectanglehandle The handle to the rectangle
+ * \return intean value (true == valid rectangle)
*/
extern GHOST_TSuccess GHOST_IsValidRectangle(GHOST_RectangleHandle rectanglehandle);
/**
* Grows (or shrinks the rectangle).
* The method avoids negative insets making the rectangle invalid
- * @param rectanglehandle The handle to the rectangle
- * @param i The amount of offset given to each extreme (negative values shrink the rectangle).
+ * \param rectanglehandle The handle to the rectangle
+ * \param i The amount of offset given to each extreme (negative values shrink the rectangle).
*/
extern void GHOST_InsetRectangle(GHOST_RectangleHandle rectanglehandle,
GHOST_TInt32 i);
@@ -741,17 +741,17 @@ extern void GHOST_InsetRectangle(GHOST_RectangleHandle rectanglehandle,
/**
* Does a union of the rectangle given and this rectangle.
* The result is stored in this rectangle.
- * @param rectanglehandle The handle to the rectangle
- * @param r The rectangle that is input for the union operation.
+ * \param rectanglehandle The handle to the rectangle
+ * \param anotherrectanglehandle The rectangle that is input for the union operation.
*/
extern void GHOST_UnionRectangle(GHOST_RectangleHandle rectanglehandle,
GHOST_RectangleHandle anotherrectanglehandle);
/**
* Grows the rectangle to included a point.
- * @param rectanglehandle The handle to the rectangle
- * @param x The x-coordinate of the point.
- * @param y The y-coordinate of the point.
+ * \param rectanglehandle The handle to the rectangle
+ * \param x The x-coordinate of the point.
+ * \param y The y-coordinate of the point.
*/
extern void GHOST_UnionPointRectangle(GHOST_RectangleHandle rectanglehandle,
GHOST_TInt32 x,
@@ -760,10 +760,10 @@ extern void GHOST_UnionPointRectangle(GHOST_RectangleHandle rectanglehandle,
/**
* Returns whether the point is inside this rectangle.
* Point on the boundary is considered inside.
- * @param rectanglehandle The handle to the rectangle
- * @param x x-coordinate of point to test.
- * @param y y-coordinate of point to test.
- * @return intean value (true if point is inside).
+ * \param rectanglehandle The handle to the rectangle
+ * \param x x-coordinate of point to test.
+ * \param y y-coordinate of point to test.
+ * \return intean value (true if point is inside).
*/
extern GHOST_TSuccess GHOST_IsInsideRectangle(GHOST_RectangleHandle rectanglehandle,
GHOST_TInt32 x,
@@ -771,9 +771,9 @@ extern GHOST_TSuccess GHOST_IsInsideRectangle(GHOST_RectangleHandle rectanglehan
/**
* Returns whether the rectangle is inside this rectangle.
- * @param rectanglehandle The handle to the rectangle
- * @param r rectangle to test.
- * @return visibility (not, partially or fully visible).
+ * \param rectanglehandle The handle to the rectangle
+ * \param anotherrectanglehandle The rectangle to test.
+ * \return visibility (not, partially or fully visible).
*/
extern GHOST_TVisibility GHOST_GetRectangleVisibility(GHOST_RectangleHandle rectanglehandle,
GHOST_RectangleHandle anotherrectanglehandle);
@@ -781,9 +781,9 @@ extern GHOST_TVisibility GHOST_GetRectangleVisibility(GHOST_RectangleHandle rect
/**
* Sets rectangle members.
* Sets rectangle members such that it is centered at the given location.
- * @param rectanglehandle The handle to the rectangle
- * @param cx requested center x-coordinate of the rectangle
- * @param cy requested center y-coordinate of the rectangle
+ * \param rectanglehandle The handle to the rectangle
+ * \param cx Requested center x-coordinate of the rectangle
+ * \param cy Requested center y-coordinate of the rectangle
*/
extern void GHOST_SetCenterRectangle(GHOST_RectangleHandle rectanglehandle,
GHOST_TInt32 cx,
@@ -793,11 +793,11 @@ extern void GHOST_SetCenterRectangle(GHOST_RectangleHandle rectanglehandle,
* Sets rectangle members.
* Sets rectangle members such that it is centered at the given location,
* with the width requested.
- * @param rectanglehandle The handle to the rectangle
- * @param cx requested center x-coordinate of the rectangle
- * @param cy requested center y-coordinate of the rectangle
- * @param w requested width of the rectangle
- * @param h requested height of the rectangle
+ * \param rectanglehandle The handle to the rectangle
+ * \param cx requested center x-coordinate of the rectangle
+ * \param cy requested center y-coordinate of the rectangle
+ * \param w requested width of the rectangle
+ * \param h requested height of the rectangle
*/
extern void GHOST_SetRectangleCenter(GHOST_RectangleHandle rectanglehandle,
GHOST_TInt32 cx,
@@ -809,23 +809,23 @@ extern void GHOST_SetRectangleCenter(GHOST_RectangleHandle rectanglehandle,
* Clips a rectangle.
* Updates the rectangle given such that it will fit within this one.
* This can result in an empty rectangle.
- * @param rectanglehandle The handle to the rectangle
- * @param r the rectangle to clip
- * @return whether clipping has occurred
+ * \param rectanglehandle The handle to the rectangle
+ * \param anotherrectanglehandle The rectangle to clip
+ * \return Whether clipping has occurred
*/
extern GHOST_TSuccess GHOST_ClipRectangle(GHOST_RectangleHandle rectanglehandle,
GHOST_RectangleHandle anotherrectanglehandle);
/**
* Return the data from the clipboad
- * @param return the selection instead, X11 only feature
- * @return clipboard data
+ * \param selection Boolean to return the selection instead, X11 only feature.
+ * \return clipboard data
*/
extern GHOST_TUns8 *GHOST_getClipboard(int selection);
/**
* Put data to the Clipboard
- * @param set the selection instead, X11 only feature
+ * \param set the selection instead, X11 only feature
*/
extern void GHOST_putClipboard(GHOST_TInt8 *buffer, int selection);
@@ -833,12 +833,13 @@ extern void GHOST_putClipboard(GHOST_TInt8 *buffer, int selection);
/**
* Toggles console
- * @action 0 - Hides
- * 1 - Shows
- * 2 - Toggles
- * 3 - Hides if it runs not from command line
- * * - Does nothing
- * @return current status (1 -visible, 0 - hidden)
+ * \param action
+ * - 0: Hides
+ * - 1: Shows
+ * - 2: Toggles
+ * - 3: Hides if it runs not from command line
+ * - *: Does nothing
+ * \return current status (1 -visible, 0 - hidden)
*/
extern int GHOST_toggleConsole(int action);
diff --git a/intern/ghost/GHOST_IEvent.h b/intern/ghost/GHOST_IEvent.h
index ef63c57caa5..ba5d9ee33b9 100644
--- a/intern/ghost/GHOST_IEvent.h
+++ b/intern/ghost/GHOST_IEvent.h
@@ -45,10 +45,10 @@ class GHOST_IWindow;
* Use the getType() method to retrieve the type of event and the getData()
* method to get the event data out. Using the event type you can cast the
* event data to the correct event dat structure.
- * @see GHOST_IEventConsumer#processEvent
- * @see GHOST_TEventType
- * @author Maarten Gribnau
- * @date May 31, 2001
+ * \see GHOST_IEventConsumer#processEvent
+ * \see GHOST_TEventType
+ * \author Maarten Gribnau
+ * \date May 31, 2001
*/
class GHOST_IEvent
{
@@ -62,26 +62,26 @@ public:
/**
* Returns the event type.
- * @return The event type.
+ * \return The event type.
*/
virtual GHOST_TEventType getType() = 0;
/**
* Returns the time this event was generated.
- * @return The event generation time.
+ * \return The event generation time.
*/
virtual GHOST_TUns64 getTime() = 0;
/**
* Returns the window this event was generated on,
* or NULL if it is a 'system' event.
- * @return The generating window.
+ * \return The generating window.
*/
virtual GHOST_IWindow *getWindow() = 0;
/**
* Returns the event data.
- * @return The event data.
+ * \return The event data.
*/
virtual GHOST_TEventDataPtr getData() = 0;
diff --git a/intern/ghost/GHOST_IEventConsumer.h b/intern/ghost/GHOST_IEventConsumer.h
index cfc4fae7978..5682d04d434 100644
--- a/intern/ghost/GHOST_IEventConsumer.h
+++ b/intern/ghost/GHOST_IEventConsumer.h
@@ -41,9 +41,9 @@
* processEvent() method. They should then be registered with the system that
* they want to receive events. The system will call the processEvent() method
* for every installed event consumer to pass events.
- * @see GHOST_ISystem#addEventConsumer
- * @author Maarten Gribnau
- * @date May 14, 2001
+ * \see GHOST_ISystem#addEventConsumer
+ * \author Maarten Gribnau
+ * \date May 14, 2001
*/
class GHOST_IEventConsumer
{
@@ -57,9 +57,9 @@ public:
/**
* This method is called by the system when it has events to dispatch.
- * @see GHOST_ISystem#dispatchEvents
- * @param event The event that can be handled or ignored.
- * @return Indication as to whether the event was handled.
+ * \see GHOST_ISystem#dispatchEvents
+ * \param event The event that can be handled or ignored.
+ * \return Indication as to whether the event was handled.
*/
virtual bool processEvent(GHOST_IEvent *event) = 0;
diff --git a/intern/ghost/GHOST_ISystem.h b/intern/ghost/GHOST_ISystem.h
index 474e3e97c45..8aef81bb762 100644
--- a/intern/ghost/GHOST_ISystem.h
+++ b/intern/ghost/GHOST_ISystem.h
@@ -136,27 +136,27 @@ class GHOST_IEventConsumer;
* -# Access to the state of the mouse buttons and the keyboard.
* -# Menus for windows with events generated when they are accessed (this is
* work in progress).
- * @author Maarten Gribnau
- * @date May 30, 2001
+ * \author Maarten Gribnau
+ * \date May 30, 2001
*/
class GHOST_ISystem
{
public:
/**
* Creates the one and only system.
- * @return An indication of success.
+ * \return An indication of success.
*/
static GHOST_TSuccess createSystem();
/**
* Disposes the one and only system.
- * @return An indication of success.
+ * \return An indication of success.
*/
static GHOST_TSuccess disposeSystem();
/**
* Returns a pointer to the one and only system (nil if it hasn't been created).
- * @return A pointer to the system.
+ * \return A pointer to the system.
*/
static GHOST_ISystem *getSystem();
@@ -184,7 +184,7 @@ public:
* Returns the system time.
* Returns the number of milliseconds since the start of the system process.
* Based on ANSI clock() routine.
- * @return The number of milliseconds.
+ * \return The number of milliseconds.
*/
virtual GHOST_TUns64 getMilliSeconds() const = 0;
@@ -192,11 +192,11 @@ public:
* Installs a timer.
* Note that, on most operating systems, messages need to be processed in order
* for the timer callbacks to be invoked.
- * @param delay The time to wait for the first call to the timerProc (in milliseconds)
- * @param interval The interval between calls to the timerProc (in milliseconds)
- * @param timerProc The callback invoked when the interval expires,
- * @param userData Placeholder for user data.
- * @return A timer task (0 if timer task installation failed).
+ * \param delay The time to wait for the first call to the timerProc (in milliseconds)
+ * \param interval The interval between calls to the timerProc (in milliseconds)
+ * \param timerProc The callback invoked when the interval expires,
+ * \param userData Placeholder for user data.
+ * \return A timer task (0 if timer task installation failed).
*/
virtual GHOST_ITimerTask *installTimer(GHOST_TUns64 delay,
GHOST_TUns64 interval,
@@ -205,8 +205,8 @@ public:
/**
* Removes a timer.
- * @param timerTask Timer task to be removed.
- * @return Indication of success.
+ * \param timerTask Timer task to be removed.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess removeTimer(GHOST_ITimerTask *timerTask) = 0;
@@ -216,13 +216,13 @@ public:
/**
* Returns the number of displays on this system.
- * @return The number of displays.
+ * \return The number of displays.
*/
virtual GHOST_TUns8 getNumDisplays() const = 0;
/**
* Returns the dimensions of the main display on this system.
- * @return The dimension of the main display.
+ * \return The dimension of the main display.
*/
virtual void getMainDisplayDimensions(GHOST_TUns32& width, GHOST_TUns32& height) const = 0;
@@ -230,17 +230,17 @@ public:
* Create a new window.
* The new window is added to the list of windows managed.
* Never explicitly delete the window, use disposeWindow() instead.
- * @param title The name of the window (displayed in the title bar of the window if the OS supports it).
- * @param left The coordinate of the left edge of the window.
- * @param top The coordinate of the top edge of the window.
- * @param width The width the window.
- * @param height The height the window.
- * @param state The state of the window when opened.
- * @param type The type of drawing context installed in this window.
- * @param stereoVisual Create a stereo visual for quad buffered stereo.
- * @param numOfAASamples Number of samples used for AA (zero if no AA)
- * @param parentWindow Parent (embedder) window
- * @return The new window (or 0 if creation failed).
+ * \param title The name of the window (displayed in the title bar of the window if the OS supports it).
+ * \param left The coordinate of the left edge of the window.
+ * \param top The coordinate of the top edge of the window.
+ * \param width The width the window.
+ * \param height The height the window.
+ * \param state The state of the window when opened.
+ * \param type The type of drawing context installed in this window.
+ * \param stereoVisual Create a stereo visual for quad buffered stereo.
+ * \param numOfAASamples Number of samples used for AA (zero if no AA)
+ * \param parentWindow Parent (embedder) window
+ * \return The new window (or 0 if creation failed).
*/
virtual GHOST_IWindow *createWindow(
const STR_String& title,
@@ -252,46 +252,46 @@ public:
/**
* Dispose a window.
- * @param window Pointer to the window to be disposed.
- * @return Indication of success.
+ * \param window Pointer to the window to be disposed.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess disposeWindow(GHOST_IWindow *window) = 0;
/**
* Returns whether a window is valid.
- * @param window Pointer to the window to be checked.
- * @return Indication of validity.
+ * \param window Pointer to the window to be checked.
+ * \return Indication of validity.
*/
virtual bool validWindow(GHOST_IWindow *window) = 0;
/**
* Begins full screen mode.
- * @param setting The new setting of the display.
- * @param window Window displayed in full screen.
+ * \param setting The new setting of the display.
+ * \param window Window displayed in full screen.
* This window is invalid after full screen has been ended.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess beginFullScreen(const GHOST_DisplaySetting& setting, GHOST_IWindow **window,
const bool stereoVisual, const GHOST_TUns16 numOfAASamples = 0) = 0;
/**
* Updates the resolution while in fullscreen mode.
- * @param setting The new setting of the display.
- * @param window Window displayed in full screen.
+ * \param setting The new setting of the display.
+ * \param window Window displayed in full screen.
*
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess updateFullScreen(const GHOST_DisplaySetting& setting, GHOST_IWindow **window) = 0;
/**
* Ends full screen mode.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess endFullScreen(void) = 0;
/**
* Returns current full screen mode status.
- * @return The current status.
+ * \return The current status.
*/
virtual bool getFullScreen(void) = 0;
@@ -301,28 +301,28 @@ public:
/**
* Retrieves events from the system and stores them in the queue.
- * @param waitForEvent Flag to wait for an event (or return immediately).
- * @return Indication of the presence of events.
+ * \param waitForEvent Flag to wait for an event (or return immediately).
+ * \return Indication of the presence of events.
*/
virtual bool processEvents(bool waitForEvent) = 0;
/**
* Retrieves events from the queue and send them to the event consumers.
- * @return Indication of the presence of events.
+ * \return Indication of the presence of events.
*/
virtual bool dispatchEvents() = 0;
/**
* Adds the given event consumer to our list.
- * @param consumer The event consumer to add.
- * @return Indication of success.
+ * \param consumer The event consumer to add.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess addEventConsumer(GHOST_IEventConsumer *consumer) = 0;
/**
* Removes the given event consumer to our list.
- * @param consumer The event consumer to remove.
- * @return Indication of success.
+ * \param consumer The event consumer to remove.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess removeEventConsumer(GHOST_IEventConsumer *consumer) = 0;
@@ -332,18 +332,18 @@ public:
/**
* Returns the current location of the cursor (location in screen coordinates)
- * @param x The x-coordinate of the cursor.
- * @param y The y-coordinate of the cursor.
- * @return Indication of success.
+ * \param x The x-coordinate of the cursor.
+ * \param y The y-coordinate of the cursor.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getCursorPosition(GHOST_TInt32& x, GHOST_TInt32& y) const = 0;
/**
* Updates the location of the cursor (location in screen coordinates).
* Not all operating systems allow the cursor to be moved (without the input device being moved).
- * @param x The x-coordinate of the cursor.
- * @param y The y-coordinate of the cursor.
- * @return Indication of success.
+ * \param x The x-coordinate of the cursor.
+ * \param y The y-coordinate of the cursor.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCursorPosition(GHOST_TInt32 x, GHOST_TInt32 y) = 0;
@@ -353,28 +353,29 @@ public:
/**
* Returns the state of a modifier key (ouside the message queue).
- * @param mask The modifier key state to retrieve.
- * @param isDown The state of a modifier key (true == pressed).
- * @return Indication of success.
+ * \param mask The modifier key state to retrieve.
+ * \param isDown The state of a modifier key (true == pressed).
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getModifierKeyState(GHOST_TModifierKeyMask mask, bool& isDown) const = 0;
/**
* Returns the state of a mouse button (ouside the message queue).
- * @param mask The button state to retrieve.
- * @param isDown Button state.
- * @return Indication of success.
+ * \param mask The button state to retrieve.
+ * \param isDown Button state.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getButtonState(GHOST_TButtonMask mask, bool& isDown) const = 0;
/**
* Toggles console
- * @action 0 - Hides
- * 1 - Shows
- * 2 - Toggles
- * 3 - Hides if it runs not from command line
- * * - Does nothing
- * @return current status (1 -visible, 0 - hidden)
+ * \param action
+ * - 0: Hides
+ * - 1: Shows
+ * - 2: Toggles
+ * - 3: Hides if it runs not from command line
+ * - *: Does nothing
+ * \return current status (1 -visible, 0 - hidden)
*/
virtual int toggleConsole(int action) = 0;
@@ -384,7 +385,7 @@ public:
/**
* Returns the selection buffer
- * @return Returns "unsinged char" from X11 XA_CUT_BUFFER0 buffer
+ * \return Returns "unsinged char" from X11 XA_CUT_BUFFER0 buffer
*
*/
virtual GHOST_TUns8 *getClipboard(bool selection) const = 0;
@@ -402,13 +403,13 @@ public:
protected:
/**
* Initialize the system.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess init() = 0;
/**
* Shut the system down.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess exit() = 0;
diff --git a/intern/ghost/GHOST_ISystemPaths.h b/intern/ghost/GHOST_ISystemPaths.h
index 1ba4ceaaaba..8f81a226f94 100644
--- a/intern/ghost/GHOST_ISystemPaths.h
+++ b/intern/ghost/GHOST_ISystemPaths.h
@@ -38,19 +38,19 @@ class GHOST_ISystemPaths
public:
/**
* Creates the one and only system.
- * @return An indication of success.
+ * \return An indication of success.
*/
static GHOST_TSuccess create();
/**
* Disposes the one and only system.
- * @return An indication of success.
+ * \return An indication of success.
*/
static GHOST_TSuccess dispose();
/**
* Returns a pointer to the one and only system (nil if it hasn't been created).
- * @return A pointer to the system.
+ * \return A pointer to the system.
*/
static GHOST_ISystemPaths *get();
@@ -73,20 +73,20 @@ public:
/**
* Determine the base dir in which shared resources are located. It will first try to use
* "unpack and run" path, then look for properly installed path, including versioning.
- * @return Unsigned char string pointing to system dir (eg /usr/share/blender/).
+ * \return Unsigned char string pointing to system dir (eg /usr/share/blender/).
*/
virtual const GHOST_TUns8 *getSystemDir(int version, const char *versionstr) const = 0;
/**
* Determine the base dir in which user configuration is stored, including versioning.
* If needed, it will create the base directory.
- * @return Unsigned char string pointing to user dir (eg ~/.blender/).
+ * \return Unsigned char string pointing to user dir (eg ~/.blender/).
*/
virtual const GHOST_TUns8 *getUserDir(int version, const char *versionstr) const = 0;
/**
* Determine the directory of the current binary
- * @return Unsigned char string pointing to the binary dir
+ * \return Unsigned char string pointing to the binary dir
*/
virtual const GHOST_TUns8 *getBinaryDir() const = 0;
diff --git a/intern/ghost/GHOST_ITimerTask.h b/intern/ghost/GHOST_ITimerTask.h
index 08c4890939f..fcd42db59da 100644
--- a/intern/ghost/GHOST_ITimerTask.h
+++ b/intern/ghost/GHOST_ITimerTask.h
@@ -45,10 +45,10 @@
* <br>
* Note that GHOST processes timers in the UI thread. You should ask GHOST
* process messages in order for the timer-callbacks to be called.
- * @see GHOST_ISystem#installTimer
- * @see GHOST_TimerProcPtr
- * @author Maarten Gribnau
- * @date May 31, 2001
+ * \see GHOST_ISystem#installTimer
+ * \see GHOST_TimerProcPtr
+ * \author Maarten Gribnau
+ * \date May 31, 2001
*/
class GHOST_ITimerTask
{
@@ -62,25 +62,25 @@ public:
/**
* Returns the timer callback.
- * @return The timer callback.
+ * \return The timer callback.
*/
virtual GHOST_TimerProcPtr getTimerProc() const = 0;
/**
* Changes the timer callback.
- * @param timerProc The timer callback.
+ * \param timerProc The timer callback.
*/
virtual void setTimerProc(const GHOST_TimerProcPtr timerProc) = 0;
/**
* Returns the timer user data.
- * @return The timer user data.
+ * \return The timer user data.
*/
virtual GHOST_TUserDataPtr getUserData() const = 0;
/**
* Changes the time user data.
- * @param data The timer user data.
+ * \param data The timer user data.
*/
virtual void setUserData(const GHOST_TUserDataPtr userData) = 0;
diff --git a/intern/ghost/GHOST_IWindow.h b/intern/ghost/GHOST_IWindow.h
index 5005718e4a5..7ec6417ca4f 100644
--- a/intern/ghost/GHOST_IWindow.h
+++ b/intern/ghost/GHOST_IWindow.h
@@ -43,7 +43,7 @@
*
* You can create a window with the system's GHOST_ISystem::createWindow
* method.
- * @see GHOST_ISystem#createWindow
+ * \see GHOST_ISystem#createWindow
*
* There are two coordinate systems:
* <ul>
@@ -53,8 +53,8 @@
* is the area that is drawable by the application (excluding title bars etc.).
* </li>
* </ul>
- * @author Maarten Gribnau
- * @date May 31, 2001
+ * \author Maarten Gribnau
+ * \date May 31, 2001
*/
class GHOST_IWindow
{
@@ -68,89 +68,89 @@ public:
/**
* Returns indication as to whether the window is valid.
- * @return The validity of the window.
+ * \return The validity of the window.
*/
virtual bool getValid() const = 0;
/**
* Returns the associated OS object/handle
- * @return The associated OS object/handle
+ * \return The associated OS object/handle
*/
virtual void *getOSWindow() const = 0;
/**
* Returns the type of drawing context used in this window.
- * @return The current type of drawing context.
+ * \return The current type of drawing context.
*/
virtual GHOST_TDrawingContextType getDrawingContextType() = 0;
/**
* Tries to install a rendering context in this window.
- * @param type The type of rendering context installed.
- * @return Indication as to whether installation has succeeded.
+ * \param type The type of rendering context installed.
+ * \return Indication as to whether installation has succeeded.
*/
virtual GHOST_TSuccess setDrawingContextType(GHOST_TDrawingContextType type) = 0;
/**
* Sets the title displayed in the title bar.
- * @param title The title to display in the title bar.
+ * \param title The title to display in the title bar.
*/
virtual void setTitle(const STR_String& title) = 0;
/**
* Returns the title displayed in the title bar.
- * @param title The title displayed in the title bar.
+ * \param title The title displayed in the title bar.
*/
virtual void getTitle(STR_String& title) const = 0;
/**
* Returns the window rectangle dimensions.
* These are screen coordinates.
- * @param bounds The bounding rectangle of the window.
+ * \param bounds The bounding rectangle of the window.
*/
virtual void getWindowBounds(GHOST_Rect& bounds) const = 0;
/**
* Returns the client rectangle dimensions.
* The left and top members of the rectangle are always zero.
- * @param bounds The bounding rectangle of the client area of the window.
+ * \param bounds The bounding rectangle of the client area of the window.
*/
virtual void getClientBounds(GHOST_Rect& bounds) const = 0;
/**
* Resizes client rectangle width.
- * @param width The new width of the client area of the window.
+ * \param width The new width of the client area of the window.
*/
virtual GHOST_TSuccess setClientWidth(GHOST_TUns32 width) = 0;
/**
* Resizes client rectangle height.
- * @param height The new height of the client area of the window.
+ * \param height The new height of the client area of the window.
*/
virtual GHOST_TSuccess setClientHeight(GHOST_TUns32 height) = 0;
/**
* Resizes client rectangle.
- * @param width The new width of the client area of the window.
- * @param height The new height of the client area of the window.
+ * \param width The new width of the client area of the window.
+ * \param height The new height of the client area of the window.
*/
virtual GHOST_TSuccess setClientSize(GHOST_TUns32 width, GHOST_TUns32 height) = 0;
/**
* Converts a point in screen coordinates to client rectangle coordinates
- * @param inX The x-coordinate on the screen.
- * @param inY The y-coordinate on the screen.
- * @param outX The x-coordinate in the client rectangle.
- * @param outY The y-coordinate in the client rectangle.
+ * \param inX The x-coordinate on the screen.
+ * \param inY The y-coordinate on the screen.
+ * \param outX The x-coordinate in the client rectangle.
+ * \param outY The y-coordinate in the client rectangle.
*/
virtual void screenToClient(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const = 0;
/**
* Converts a point in screen coordinates to client rectangle coordinates
- * @param inX The x-coordinate in the client rectangle.
- * @param inY The y-coordinate in the client rectangle.
- * @param outX The x-coordinate on the screen.
- * @param outY The y-coordinate on the screen.
+ * \param inX The x-coordinate in the client rectangle.
+ * \param inY The y-coordinate in the client rectangle.
+ * \param outX The x-coordinate on the screen.
+ * \param outY The y-coordinate on the screen.
*/
virtual void clientToScreen(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const = 0;
@@ -167,70 +167,70 @@ public:
/**
* Returns the state of the window (normal, minimized, maximized).
- * @return The state of the window.
+ * \return The state of the window.
*/
virtual GHOST_TWindowState getState() const = 0;
/**
* Sets the state of the window (normal, minimized, maximized).
- * @param state The state of the window.
- * @return Indication of success.
+ * \param state The state of the window.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setState(GHOST_TWindowState state) = 0;
/**
* Sets the window "modified" status, indicating unsaved changes
- * @param isUnsavedChanges Unsaved changes or not
- * @return Indication of success.
+ * \param isUnsavedChanges Unsaved changes or not
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setModifiedState(bool isUnsavedChanges) = 0;
/**
* Gets the window "modified" status, indicating unsaved changes
- * @return True if there are unsaved changes
+ * \return True if there are unsaved changes
*/
virtual bool getModifiedState() = 0;
/**
* Sets the order of the window (bottom, top).
- * @param order The order of the window.
- * @return Indication of success.
+ * \param order The order of the window.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setOrder(GHOST_TWindowOrder order) = 0;
/**
* Swaps front and back buffers of a window.
- * @return A boolean success indicator.
+ * \return A boolean success indicator.
*/
virtual GHOST_TSuccess swapBuffers() = 0;
/**
* Activates the drawing context of this window.
- * @return A boolean success indicator.
+ * \return A boolean success indicator.
*/
virtual GHOST_TSuccess activateDrawingContext() = 0;
/**
* Invalidates the contents of this window.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess invalidate() = 0;
/**
* Returns the window user data.
- * @return The window user data.
+ * \return The window user data.
*/
virtual GHOST_TUserDataPtr getUserData() const = 0;
/**
* Changes the window user data.
- * @param data The window user data.
+ * \param data The window user data.
*/
virtual void setUserData(const GHOST_TUserDataPtr userData) = 0;
/**
* Returns the tablet data (pressure etc).
- * @return The tablet data (pressure etc).
+ * \return The tablet data (pressure etc).
*/
virtual const GHOST_TabletData *GetTabletData() = 0;
@@ -240,7 +240,7 @@ public:
/**
* Sets the progress bar value displayed in the window/application icon
- * @param progress The progress %
+ * \param progress The progress %
*/
virtual GHOST_TSuccess setProgressBar(float progress) = 0;
@@ -255,30 +255,30 @@ public:
/**
* Returns the current cursor shape.
- * @return The current cursor shape.
+ * \return The current cursor shape.
*/
virtual GHOST_TStandardCursor getCursorShape() const = 0;
/**
* Set the shape of the cursor.
- * @param cursor The new cursor shape type id.
- * @return Indication of success.
+ * \param cursor The new cursor shape type id.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCursorShape(GHOST_TStandardCursor cursorShape) = 0;
/**
* Set the shape of the cursor to a custom cursor.
- * @param bitmap The bitmap data for the cursor.
- * @param mask The mask data for the cursor.
- * @param hotX The X coordinate of the cursor hotspot.
- * @param hotY The Y coordinate of the cursor hotspot.
- * @return Indication of success.
+ * \param bitmap The bitmap data for the cursor.
+ * \param mask The mask data for the cursor.
+ * \param hotX The X coordinate of the cursor hotspot.
+ * \param hotY The Y coordinate of the cursor hotspot.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCustomCursorShape(GHOST_TUns8 bitmap[16][2],
GHOST_TUns8 mask[16][2],
int hotX,
int hotY) = 0;
-
+
virtual GHOST_TSuccess setCustomCursorShape(GHOST_TUns8 *bitmap,
GHOST_TUns8 *mask,
int sizex, int sizey,
@@ -287,23 +287,23 @@ public:
/**
* Returns the visibility state of the cursor.
- * @return The visibility state of the cursor.
+ * \return The visibility state of the cursor.
*/
virtual bool getCursorVisibility() const = 0;
/**
* Shows or hides the cursor.
- * @param visible The new visibility state of the cursor.
- * @return Indication of success.
+ * \param visible The new visibility state of the cursor.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCursorVisibility(bool visible) = 0;
/**
* Grabs the cursor for a modal operation.
- * @param grab The new grab state of the cursor.
- * @return Indication of success.
+ * \param grab The new grab state of the cursor.
+ * \return Indication of success.
*/
- virtual GHOST_TSuccess setCursorGrab(GHOST_TGrabCursorMode mode, GHOST_Rect *bounds) { return GHOST_kSuccess; }
+ virtual GHOST_TSuccess setCursorGrab(GHOST_TGrabCursorMode mode, GHOST_Rect *bounds, GHOST_TInt32 mouse_ungrab_xy[2]) { return GHOST_kSuccess; }
#ifdef WITH_CXX_GUARDEDALLOC
MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_IWindow")
diff --git a/intern/ghost/GHOST_Path-api.h b/intern/ghost/GHOST_Path-api.h
index a037f2e3760..5af3adaa570 100644
--- a/intern/ghost/GHOST_Path-api.h
+++ b/intern/ghost/GHOST_Path-api.h
@@ -43,33 +43,33 @@ GHOST_DECLARE_HANDLE(GHOST_SystemPathsHandle);
/**
* Creates the one and only instance of the system path access.
- * @return An indication of success.
+ * \return An indication of success.
*/
extern GHOST_TSuccess GHOST_CreateSystemPaths(void);
/**
* Disposes the one and only system.
- * @return An indication of success.
+ * \return An indication of success.
*/
extern GHOST_TSuccess GHOST_DisposeSystemPaths(void);
/**
* Determine the base dir in which shared resources are located. It will first try to use
* "unpack and run" path, then look for properly installed path, including versioning.
- * @return Unsigned char string pointing to system dir (eg /usr/share/blender/).
+ * \return Unsigned char string pointing to system dir (eg /usr/share/blender/).
*/
extern const GHOST_TUns8 *GHOST_getSystemDir(int version, const char *versionstr);
/**
* Determine the base dir in which user configuration is stored, including versioning.
- * @return Unsigned char string pointing to user dir (eg ~).
+ * \return Unsigned char string pointing to user dir (eg ~).
*/
extern const GHOST_TUns8 *GHOST_getUserDir(int version, const char *versionstr);
/**
* Determine the dir in which the binary file is found.
- * @return Unsigned char string pointing to binary dir (eg ~/usr/local/bin/).
+ * \return Unsigned char string pointing to binary dir (eg ~/usr/local/bin/).
*/
extern const GHOST_TUns8 *GHOST_getBinaryDir(void);
diff --git a/intern/ghost/GHOST_Rect.h b/intern/ghost/GHOST_Rect.h
index 745e402cdc8..aa7969d68ad 100644
--- a/intern/ghost/GHOST_Rect.h
+++ b/intern/ghost/GHOST_Rect.h
@@ -41,8 +41,8 @@
* The four extreme coordinates are stored as left, top, right and bottom.
* To be valid, a rectangle should have a left coordinate smaller than or equal to right.
* To be valid, a rectangle should have a top coordinate smaller than or equal to bottom.
- * @author Maarten Gribnau
- * @date May 10, 2001
+ * \author Maarten Gribnau
+ * \date May 10, 2001
*/
class GHOST_Rect {
@@ -50,10 +50,10 @@ public:
/**
* Constructs a rectangle with the given values.
- * @param l requested left coordinate of the rectangle
- * @param t requested top coordinate of the rectangle
- * @param r requested right coordinate of the rectangle
- * @param b requested bottom coordinate of the rectangle
+ * \param l requested left coordinate of the rectangle
+ * \param t requested top coordinate of the rectangle
+ * \param r requested right coordinate of the rectangle
+ * \param b requested bottom coordinate of the rectangle
*/
GHOST_Rect(GHOST_TInt32 l = 0, GHOST_TInt32 t = 0, GHOST_TInt32 r = 0, GHOST_TInt32 b = 0)
: m_l(l), m_t(t), m_r(r), m_b(b)
@@ -61,7 +61,7 @@ public:
/**
* Copy constructor.
- * @param r rectangle to copy
+ * \param r rectangle to copy
*/
GHOST_Rect(const GHOST_Rect& r)
: m_l(r.m_l), m_t(r.m_t), m_r(r.m_r), m_b(r.m_b)
@@ -70,93 +70,92 @@ public:
/**
* Destructor.
*/
- virtual ~GHOST_Rect()
- {};
+ virtual ~GHOST_Rect() {}
/**
* Access to rectangle width.
- * @return width of the rectangle
+ * \return width of the rectangle
*/
virtual inline GHOST_TInt32 getWidth() const;
/**
* Access to rectangle height.
- * @return height of the rectangle
+ * \return height of the rectangle
*/
virtual inline GHOST_TInt32 getHeight() const;
/**
* Sets all members of the rectangle.
- * @param l requested left coordinate of the rectangle
- * @param t requested top coordinate of the rectangle
- * @param r requested right coordinate of the rectangle
- * @param b requested bottom coordinate of the rectangle
+ * \param l requested left coordinate of the rectangle
+ * \param t requested top coordinate of the rectangle
+ * \param r requested right coordinate of the rectangle
+ * \param b requested bottom coordinate of the rectangle
*/
virtual inline void set(GHOST_TInt32 l, GHOST_TInt32 t, GHOST_TInt32 r, GHOST_TInt32 b);
/**
* Returns whether this rectangle is empty.
* Empty rectangles are rectangles that have width==0 and/or height==0.
- * @return boolean value (true==empty rectangle)
+ * \return boolean value (true==empty rectangle)
*/
virtual inline bool isEmpty() const;
/**
* Returns whether this rectangle is valid.
* Valid rectangles are rectangles that have m_l <= m_r and m_t <= m_b. Thus, emapty rectangles are valid.
- * @return boolean value (true==valid rectangle)
+ * \return boolean value (true==valid rectangle)
*/
virtual inline bool isValid() const;
/**
* Grows (or shrinks the rectangle).
* The method avoids negative insets making the rectangle invalid
- * @param i The amount of offset given to each extreme (negative values shrink the rectangle).
+ * \param i The amount of offset given to each extreme (negative values shrink the rectangle).
*/
virtual void inset(GHOST_TInt32 i);
/**
* Does a union of the rectangle given and this rectangle.
* The result is stored in this rectangle.
- * @param r The rectangle that is input for the union operation.
+ * \param r The rectangle that is input for the union operation.
*/
virtual inline void unionRect(const GHOST_Rect& r);
/**
* Grows the rectangle to included a point.
- * @param x The x-coordinate of the point.
- * @param y The y-coordinate of the point.
+ * \param x The x-coordinate of the point.
+ * \param y The y-coordinate of the point.
*/
virtual inline void unionPoint(GHOST_TInt32 x, GHOST_TInt32 y);
/**
* Grows the rectangle to included a point.
- * @param x The x-coordinate of the point.
- * @param y The y-coordinate of the point.
+ * \param x The x-coordinate of the point.
+ * \param y The y-coordinate of the point.
*/
virtual inline void wrapPoint(GHOST_TInt32 &x, GHOST_TInt32 &y, GHOST_TInt32 ofs);
/**
* Returns whether the point is inside this rectangle.
* Point on the boundary is considered inside.
- * @param x x-coordinate of point to test.
- * @param y y-coordinate of point to test.
- * @return boolean value (true if point is inside).
+ * \param x x-coordinate of point to test.
+ * \param y y-coordinate of point to test.
+ * \return boolean value (true if point is inside).
*/
virtual inline bool isInside(GHOST_TInt32 x, GHOST_TInt32 y) const;
/**
* Returns whether the rectangle is inside this rectangle.
- * @param r rectangle to test.
- * @return visibility (not, partially or fully visible).
+ * \param r rectangle to test.
+ * \return visibility (not, partially or fully visible).
*/
virtual GHOST_TVisibility getVisibility(GHOST_Rect& r) const;
/**
* Sets rectangle members.
* Sets rectangle members such that it is centered at the given location.
- * @param cx requested center x-coordinate of the rectangle
- * @param cy requested center y-coordinate of the rectangle
+ * \param cx requested center x-coordinate of the rectangle
+ * \param cy requested center y-coordinate of the rectangle
*/
virtual void setCenter(GHOST_TInt32 cx, GHOST_TInt32 cy);
@@ -164,10 +163,10 @@ public:
* Sets rectangle members.
* Sets rectangle members such that it is centered at the given location,
* with the width requested.
- * @param cx requested center x-coordinate of the rectangle
- * @param cy requested center y-coordinate of the rectangle
- * @param w requested width of the rectangle
- * @param h requested height of the rectangle
+ * \param cx requested center x-coordinate of the rectangle
+ * \param cy requested center y-coordinate of the rectangle
+ * \param w requested width of the rectangle
+ * \param h requested height of the rectangle
*/
virtual void setCenter(GHOST_TInt32 cx, GHOST_TInt32 cy, GHOST_TInt32 w, GHOST_TInt32 h);
@@ -175,8 +174,8 @@ public:
* Clips a rectangle.
* Updates the rectangle given such that it will fit within this one.
* This can result in an empty rectangle.
- * @param r the rectangle to clip
- * @return whether clipping has occurred
+ * \param r the rectangle to clip
+ * \return whether clipping has occurred
*/
virtual bool clip(GHOST_Rect& r) const;
diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h
index 4921acde670..c6d364c361c 100644
--- a/intern/ghost/GHOST_Types.h
+++ b/intern/ghost/GHOST_Types.h
@@ -507,8 +507,8 @@ typedef int GHOST_TEmbedderWindowID;
/**
* A timer task callback routine.
- * @param task The timer task object.
- * @param time The current time.
+ * \param task The timer task object.
+ * \param time The current time.
*/
#ifdef __cplusplus
class GHOST_ITimerTask;
diff --git a/intern/ghost/intern/GHOST_Buttons.h b/intern/ghost/intern/GHOST_Buttons.h
index edcf0102201..6b0d74e7eb9 100644
--- a/intern/ghost/intern/GHOST_Buttons.h
+++ b/intern/ghost/intern/GHOST_Buttons.h
@@ -39,8 +39,8 @@
/**
* This struct stores the state of the mouse buttons.
* Buttons can be set using button masks.
- * @author Maarten Gribnau
- * @date May 15, 2001
+ * \author Maarten Gribnau
+ * \date May 15, 2001
*/
struct GHOST_Buttons {
/**
@@ -52,15 +52,15 @@ struct GHOST_Buttons {
/**
* Returns the state of a single button.
- * @param mask Key button to return.
- * @return The state of the button (pressed == true).
+ * \param mask Key button to return.
+ * \return The state of the button (pressed == true).
*/
virtual bool get(GHOST_TButtonMask mask) const;
/**
* Updates the state of a single button.
- * @param mask Button state to update.
- * @param down The new state of the button.
+ * \param mask Button state to update.
+ * \param down The new state of the button.
*/
virtual void set(GHOST_TButtonMask mask, bool down);
diff --git a/intern/ghost/intern/GHOST_C-api.cpp b/intern/ghost/intern/GHOST_C-api.cpp
index 4cdd9384eee..88d02c46f61 100644
--- a/intern/ghost/intern/GHOST_C-api.cpp
+++ b/intern/ghost/intern/GHOST_C-api.cpp
@@ -355,10 +355,11 @@ GHOST_TSuccess GHOST_SetCursorPosition(GHOST_SystemHandle systemhandle,
GHOST_TSuccess GHOST_SetCursorGrab(GHOST_WindowHandle windowhandle,
GHOST_TGrabCursorMode mode,
- int *bounds)
+ int bounds[4], int mouse_ungrab_xy[2])
{
GHOST_IWindow *window = (GHOST_IWindow *) windowhandle;
GHOST_Rect bounds_rect, bounds_win;
+ GHOST_TInt32 mouse_ungrab_xy_global[2];
if (bounds) {
/* if this is X11 specific we need a function that converts */
@@ -368,7 +369,16 @@ GHOST_TSuccess GHOST_SetCursorGrab(GHOST_WindowHandle windowhandle,
}
- return window->setCursorGrab(mode, bounds ? &bounds_rect : NULL);
+ if (mouse_ungrab_xy) {
+ if (bounds == NULL)
+ window->getClientBounds(bounds_win);
+ window->clientToScreen(mouse_ungrab_xy[0], bounds_win.getHeight() - mouse_ungrab_xy[1],
+ mouse_ungrab_xy_global[0], mouse_ungrab_xy_global[1]);
+ }
+
+ return window->setCursorGrab(mode,
+ bounds ? &bounds_rect : NULL,
+ mouse_ungrab_xy ? mouse_ungrab_xy_global : NULL);
}
@@ -529,7 +539,10 @@ char *GHOST_GetTitle(GHOST_WindowHandle windowhandle)
char *ctitle = (char *) malloc(title.Length() + 1);
- if (ctitle == NULL) return NULL;
+ if (ctitle == NULL) {
+ return NULL;
+ }
+
strcpy(ctitle, title.Ptr());
return ctitle;
@@ -860,7 +873,8 @@ int GHOST_toggleConsole(int action)
}
-int GHOST_confirmQuit(GHOST_WindowHandle windowhandle){
+int GHOST_confirmQuit(GHOST_WindowHandle windowhandle)
+{
GHOST_ISystem *system = GHOST_ISystem::getSystem();
return system->confirmQuit((GHOST_IWindow *) windowhandle);
}
diff --git a/intern/ghost/intern/GHOST_CallbackEventConsumer.cpp b/intern/ghost/intern/GHOST_CallbackEventConsumer.cpp
index 47121562604..9d20a62d70c 100644
--- a/intern/ghost/intern/GHOST_CallbackEventConsumer.cpp
+++ b/intern/ghost/intern/GHOST_CallbackEventConsumer.cpp
@@ -32,8 +32,8 @@
/**
* Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date October 25, 2001
+ * \author Maarten Gribnau
+ * \date October 25, 2001
*/
#include "GHOST_Debug.h"
diff --git a/intern/ghost/intern/GHOST_CallbackEventConsumer.h b/intern/ghost/intern/GHOST_CallbackEventConsumer.h
index e13a56c38f4..770ebdc8b78 100644
--- a/intern/ghost/intern/GHOST_CallbackEventConsumer.h
+++ b/intern/ghost/intern/GHOST_CallbackEventConsumer.h
@@ -39,16 +39,16 @@
/**
* Event consumer that will forward events to a call-back routine.
* Especially useful for the C-API.
- * @author Maarten Gribnau
- * @date October 25, 2001
+ * \author Maarten Gribnau
+ * \date October 25, 2001
*/
class GHOST_CallbackEventConsumer : public GHOST_IEventConsumer
{
public:
/**
* Constructor.
- * @param eventCallback The call-back routine invoked.
- * @param userData The data passed back though the call-back routine.
+ * \param eventCallback The call-back routine invoked.
+ * \param userData The data passed back though the call-back routine.
*/
GHOST_CallbackEventConsumer(
GHOST_EventCallbackProcPtr eventCallback,
@@ -63,8 +63,8 @@ public:
/**
* This method is called by an event producer when an event is available.
- * @param event The event that can be handled or ignored.
- * @return Indication as to whether the event was handled.
+ * \param event The event that can be handled or ignored.
+ * \return Indication as to whether the event was handled.
*/
virtual bool processEvent(GHOST_IEvent *event);
diff --git a/intern/ghost/intern/GHOST_DisplayManager.cpp b/intern/ghost/intern/GHOST_DisplayManager.cpp
index 380fb817ab0..7ca4c8182b9 100644
--- a/intern/ghost/intern/GHOST_DisplayManager.cpp
+++ b/intern/ghost/intern/GHOST_DisplayManager.cpp
@@ -32,8 +32,8 @@
/**
* Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date September 21, 2001
+ * \author Maarten Gribnau
+ * \date September 21, 2001
*/
#include "GHOST_DisplayManager.h"
diff --git a/intern/ghost/intern/GHOST_DisplayManager.h b/intern/ghost/intern/GHOST_DisplayManager.h
index 7893f0936b3..7dc0cf2ca04 100644
--- a/intern/ghost/intern/GHOST_DisplayManager.h
+++ b/intern/ghost/intern/GHOST_DisplayManager.h
@@ -39,8 +39,8 @@
/**
* Manages system displays (platform independent implementation).
- * @author Maarten Gribnau
- * @date September 21, 2001
+ * \author Maarten Gribnau
+ * \date September 21, 2001
*/
class GHOST_DisplayManager
{
@@ -58,32 +58,32 @@ public:
/**
* Initializes the list with devices and settings.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess initialize(void);
/**
* Returns the number of display devices on this system.
- * @param numDisplays The number of displays on this system.
- * @return Indication of success.
+ * \param numDisplays The number of displays on this system.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getNumDisplays(GHOST_TUns8& numDisplays) const;
/**
* Returns the number of display settings for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param numSettings The number of settings of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param numSettings The number of settings of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getNumDisplaySettings(GHOST_TUns8 display,
GHOST_TInt32& numSettings) const;
/**
* Returns the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param index The setting index to be returned.
- * @param setting The setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param index The setting index to be returned.
+ * \param setting The setting of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getDisplaySetting(GHOST_TUns8 display,
GHOST_TInt32 index,
@@ -91,9 +91,9 @@ public:
/**
* Returns the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The current setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The current setting of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getCurrentDisplaySetting(GHOST_TUns8 display,
GHOST_DisplaySetting& setting) const;
@@ -102,9 +102,9 @@ public:
* Changes the current setting for this display device.
* The setting given to this method is matched againts the available diplay settings.
* The best match is activated (@see findMatch()).
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The setting of the display device to be matched and activated.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The setting of the display device to be matched and activated.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCurrentDisplaySetting(GHOST_TUns8 display,
const GHOST_DisplaySetting& setting);
@@ -114,10 +114,10 @@ protected:
/**
* Finds the best display settings match.
- * @param display The index of the display device.
- * @param setting The setting to match.
- * @param match The optimal display setting.
- * @return Indication of success.
+ * \param display The index of the display device.
+ * \param setting The setting to match.
+ * \param match The optimal display setting.
+ * \return Indication of success.
*/
GHOST_TSuccess findMatch(GHOST_TUns8 display,
const GHOST_DisplaySetting& setting,
@@ -125,7 +125,7 @@ protected:
/**
* Retrieves settings for each display device and stores them.
- * @return Indication of success.
+ * \return Indication of success.
*/
GHOST_TSuccess initializeSettings(void);
diff --git a/intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp b/intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp
index 21798ed2d0a..3f7d2102dac 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp
+++ b/intern/ghost/intern/GHOST_DisplayManagerCarbon.cpp
@@ -32,8 +32,8 @@
/**
* Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date September 21, 2001
+ * \author Maarten Gribnau
+ * \date September 21, 2001
*/
#include "GHOST_DisplayManagerCarbon.h"
diff --git a/intern/ghost/intern/GHOST_DisplayManagerCarbon.h b/intern/ghost/intern/GHOST_DisplayManagerCarbon.h
index d9af12ba13f..1ac6540b7bd 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerCarbon.h
+++ b/intern/ghost/intern/GHOST_DisplayManagerCarbon.h
@@ -44,9 +44,9 @@
/**
* Manages system displays (Mac OSX/Carbon implementation).
- * @see GHOST_DisplayManager
- * @author Maarten Gribnau
- * @date September 21, 2001
+ * \see GHOST_DisplayManager
+ * \author Maarten Gribnau
+ * \date September 21, 2001
*/
class GHOST_DisplayManagerCarbon : public GHOST_DisplayManager
{
@@ -58,50 +58,50 @@ public:
/**
* Returns the number of display devices on this system.
- * @param numDisplays The number of displays on this system.
- * @return Indication of success.
+ * \param numDisplays The number of displays on this system.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getNumDisplays(GHOST_TUns8& numDisplays) const;
/**
* Returns the number of display settings for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The number of settings of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The number of settings of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getNumDisplaySettings(GHOST_TUns8 display, GHOST_TInt32& numSettings) const;
/**
* Returns the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param index The setting index to be returned.
- * @param setting The setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param index The setting index to be returned.
+ * \param setting The setting of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getDisplaySetting(GHOST_TUns8 display, GHOST_TInt32 index, GHOST_DisplaySetting& setting) const;
/**
* Returns the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The current setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The current setting of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getCurrentDisplaySetting(GHOST_TUns8 display, GHOST_DisplaySetting& setting) const;
/**
* Changes the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The current setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The current setting of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCurrentDisplaySetting(GHOST_TUns8 display, const GHOST_DisplaySetting& setting);
protected:
/**
* Returns a value from a dictionary.
- * @param values Dictionary to return value from.
- * @param key Key to return value for.
- * @return The value for this key.
+ * \param values Dictionary to return value from.
+ * \param key Key to return value for.
+ * \return The value for this key.
*/
long getValue(CFDictionaryRef values, CFStringRef key) const;
diff --git a/intern/ghost/intern/GHOST_DisplayManagerCocoa.h b/intern/ghost/intern/GHOST_DisplayManagerCocoa.h
index bf194ad0492..1f17b4dd976 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerCocoa.h
+++ b/intern/ghost/intern/GHOST_DisplayManagerCocoa.h
@@ -41,9 +41,9 @@
/**
* Manages system displays (Mac OSX/Cocoa implementation).
- * @see GHOST_DisplayManager
- * @author Maarten Gribnau
- * @date September 21, 2001
+ * \see GHOST_DisplayManager
+ * \author Maarten Gribnau
+ * \date September 21, 2001
*/
class GHOST_DisplayManagerCocoa : public GHOST_DisplayManager
{
@@ -55,41 +55,41 @@ public:
/**
* Returns the number of display devices on this system.
- * @param numDisplays The number of displays on this system.
- * @return Indication of success.
+ * \param numDisplays The number of displays on this system.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getNumDisplays(GHOST_TUns8& numDisplays) const;
/**
* Returns the number of display settings for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The number of settings of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The number of settings of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getNumDisplaySettings(GHOST_TUns8 display, GHOST_TInt32& numSettings) const;
/**
* Returns the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param index The setting index to be returned.
- * @param setting The setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param index The setting index to be returned.
+ * \param setting The setting of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getDisplaySetting(GHOST_TUns8 display, GHOST_TInt32 index, GHOST_DisplaySetting& setting) const;
/**
* Returns the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The current setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The current setting of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getCurrentDisplaySetting(GHOST_TUns8 display, GHOST_DisplaySetting& setting) const;
/**
* Changes the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The current setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The current setting of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCurrentDisplaySetting(GHOST_TUns8 display, const GHOST_DisplaySetting& setting);
diff --git a/intern/ghost/intern/GHOST_DisplayManagerCocoa.mm b/intern/ghost/intern/GHOST_DisplayManagerCocoa.mm
index 9050c3f946f..c5a2fecd3b8 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerCocoa.mm
+++ b/intern/ghost/intern/GHOST_DisplayManagerCocoa.mm
@@ -101,7 +101,7 @@ GHOST_TSuccess GHOST_DisplayManagerCocoa::getCurrentDisplaySetting(GHOST_TUns8 d
NSScreen *askedDisplay;
GHOST_ASSERT((display==kMainDisplay), "GHOST_DisplayManagerCocoa::getCurrentDisplaySetting(): only main display is supported");
-
+
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
if (display == kMainDisplay) //Screen #0 may not be the main one
@@ -162,6 +162,6 @@ GHOST_TSuccess GHOST_DisplayManagerCocoa::setCurrentDisplaySetting(GHOST_TUns8 d
#endif // GHOST_DEBUG
//CGDisplayErr err = ::CGDisplaySwitchToMode(m_displayIDs[display], displayModeValues);
-
+
return /*err == CGDisplayNoErr ?*/ GHOST_kSuccess /*: GHOST_kFailure*/;
}
diff --git a/intern/ghost/intern/GHOST_DisplayManagerWin32.h b/intern/ghost/intern/GHOST_DisplayManagerWin32.h
index 534274ec878..ced4ceac044 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerWin32.h
+++ b/intern/ghost/intern/GHOST_DisplayManagerWin32.h
@@ -42,8 +42,8 @@
/**
* Manages system displays (WIN32 implementation).
- * @author Maarten Gribnau
- * @date September 21, 2001
+ * \author Maarten Gribnau
+ * \date September 21, 2001
*/
class GHOST_DisplayManagerWin32 : public GHOST_DisplayManager
{
@@ -55,41 +55,41 @@ public:
/**
* Returns the number of display devices on this system.
- * @param numDisplays The number of displays on this system.
- * @return Indication of success.
+ * \param numDisplays The number of displays on this system.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getNumDisplays(GHOST_TUns8& numDisplays) const;
/**
* Returns the number of display settings for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The number of settings of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The number of settings of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getNumDisplaySettings(GHOST_TUns8 display, GHOST_TInt32& numSettings) const;
/**
* Returns the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param index The setting index to be returned.
- * @param setting The setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param index The setting index to be returned.
+ * \param setting The setting of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getDisplaySetting(GHOST_TUns8 display, GHOST_TInt32 index, GHOST_DisplaySetting& setting) const;
/**
* Returns the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The current setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The current setting of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getCurrentDisplaySetting(GHOST_TUns8 display, GHOST_DisplaySetting& setting) const;
/**
* Changes the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The current setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The current setting of the display device with this index.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCurrentDisplaySetting(GHOST_TUns8 display, const GHOST_DisplaySetting& setting);
diff --git a/intern/ghost/intern/GHOST_DisplayManagerX11.cpp b/intern/ghost/intern/GHOST_DisplayManagerX11.cpp
index d719a4caa55..0bd90854a31 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerX11.cpp
+++ b/intern/ghost/intern/GHOST_DisplayManagerX11.cpp
@@ -48,7 +48,7 @@ GHOST_DisplayManagerX11(
GHOST_DisplayManager(),
m_system(system)
{
- //nothing to do.
+ /* nothing to do. */
}
GHOST_TSuccess
@@ -87,7 +87,7 @@ getNumDisplaySettings(
XF86VidModeGetAllModeLines(dpy, DefaultScreen(dpy), &numSettings, &vidmodes);
#else
- // We only have one X11 setting at the moment.
+ /* We only have one X11 setting at the moment. */
GHOST_ASSERT(display < 1, "Only single display systems are currently supported.\n");
numSettings = GHOST_TInt32(1);
#endif
@@ -144,8 +144,8 @@ getDisplaySetting(
setting.bpp = DefaultDepth(x_display, DefaultScreen(x_display));
#endif
- // Don't think it's possible to get this value from X!
- // So let's guess!!
+ /* Don't think it's possible to get this value from X!
+ * So let's guess!! */
setting.frequency = 60;
return GHOST_kSuccess;
@@ -171,11 +171,10 @@ setCurrentDisplaySetting(
const GHOST_DisplaySetting& setting)
{
#ifdef WITH_X11_XF86VMODE
- //
- // Mode switching code ported from Quake 2:
- // ftp://ftp.idsoftware.com/idstuff/source/q2source-3.21.zip
- // See linux/gl_glx.c:GLimp_SetMode
- //
+ /* Mode switching code ported from Quake 2:
+ * ftp: ftp.idsoftware.com/idstuff/source/q2source-3.21.zip
+ * See linux/gl_glx.c:GLimp_SetMode
+ */
int majorVersion, minorVersion;
XF86VidModeModeInfo **vidmodes;
Display *dpy = m_system->getXDisplay();
@@ -187,7 +186,7 @@ setCurrentDisplaySetting(
scrnum = DefaultScreen(dpy);
- // Get video mode list
+ /* Get video mode list */
majorVersion = minorVersion = 0;
if (!XF86VidModeQueryVersion(dpy, &majorVersion, &minorVersion)) {
fprintf(stderr, "Error: XF86VidMode extension missing!\n");
@@ -228,20 +227,21 @@ setCurrentDisplaySetting(
actualWidth, actualHeight);
# endif
- // change to the mode
+ /* change to the mode */
XF86VidModeSwitchToMode(dpy, scrnum, vidmodes[best_fit]);
- // Move the viewport to top left
+ /* Move the viewport to top left */
XF86VidModeSetViewPort(dpy, scrnum, 0, 0);
}
- else
+ else {
return GHOST_kFailure;
+ }
XFlush(dpy);
return GHOST_kSuccess;
#else
- // Just pretend the request was successful.
+ /* Just pretend the request was successful. */
return GHOST_kSuccess;
#endif
}
diff --git a/intern/ghost/intern/GHOST_DisplayManagerX11.h b/intern/ghost/intern/GHOST_DisplayManagerX11.h
index 61b4578cac3..66fd1e5c15e 100644
--- a/intern/ghost/intern/GHOST_DisplayManagerX11.h
+++ b/intern/ghost/intern/GHOST_DisplayManagerX11.h
@@ -40,8 +40,8 @@ class GHOST_SystemX11;
/**
* Manages system displays (X11 implementation).
- * @author Laurence Bourn
- * @date October 26, 2001
+ * \author Laurence Bourn
+ * \date October 26, 2001
*/
class GHOST_DisplayManagerX11 : public GHOST_DisplayManager
{
@@ -55,8 +55,8 @@ public:
/**
* Returns the number of display devices on this system.
- * @param numDisplays The number of displays on this system.
- * @return Indication of success.
+ * \param numDisplays The number of displays on this system.
+ * \return Indication of success.
*/
GHOST_TSuccess
getNumDisplays(
@@ -65,9 +65,9 @@ public:
/**
* Returns the number of display settings for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The number of settings of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The number of settings of the display device with this index.
+ * \return Indication of success.
*/
GHOST_TSuccess
getNumDisplaySettings(
@@ -77,10 +77,10 @@ public:
/**
* Returns the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param index The setting index to be returned.
- * @param setting The setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param index The setting index to be returned.
+ * \param setting The setting of the display device with this index.
+ * \return Indication of success.
*/
GHOST_TSuccess
getDisplaySetting(
@@ -91,9 +91,9 @@ public:
/**
* Returns the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The current setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The current setting of the display device with this index.
+ * \return Indication of success.
*/
GHOST_TSuccess
getCurrentDisplaySetting(
@@ -103,9 +103,9 @@ public:
/**
* Changes the current setting for this display device.
- * @param display The index of the display to query with 0 <= display < getNumDisplays().
- * @param setting The current setting of the display device with this index.
- * @return Indication of success.
+ * \param display The index of the display to query with 0 <= display < getNumDisplays().
+ * \param setting The current setting of the display device with this index.
+ * \return Indication of success.
*/
GHOST_TSuccess
setCurrentDisplaySetting(
diff --git a/intern/ghost/intern/GHOST_DropTargetWin32.cpp b/intern/ghost/intern/GHOST_DropTargetWin32.cpp
index 4142b19f21d..89e9a91b34c 100644
--- a/intern/ghost/intern/GHOST_DropTargetWin32.cpp
+++ b/intern/ghost/intern/GHOST_DropTargetWin32.cpp
@@ -51,14 +51,10 @@ GHOST_DropTargetWin32::GHOST_DropTargetWin32(GHOST_WindowWin32 *window, GHOST_Sy
m_cRef = 1;
m_hWnd = window->getHWND();
m_draggedObjectType = GHOST_kDragnDropTypeUnknown;
-
- // register our window as drop target
- ::RegisterDragDrop(m_hWnd, this);
}
GHOST_DropTargetWin32::~GHOST_DropTargetWin32()
{
- ::RevokeDragDrop(m_hWnd);
}
diff --git a/intern/ghost/intern/GHOST_DropTargetWin32.h b/intern/ghost/intern/GHOST_DropTargetWin32.h
index 88a4032ac23..f746a50d469 100644
--- a/intern/ghost/intern/GHOST_DropTargetWin32.h
+++ b/intern/ghost/intern/GHOST_DropTargetWin32.h
@@ -80,8 +80,8 @@ public:
* With the modifier keys, we want to distinguish left and right keys.
* Sometimes this is not possible (Windows ME for instance). Then, we want
* events generated for both keys.
- * @param window The window to register as drop target.
- * @param system The associated system.
+ * \param window The window to register as drop target.
+ * \param system The associated system.
*/
GHOST_DropTargetWin32(GHOST_WindowWin32 *window, GHOST_SystemWin32 *system);
@@ -97,37 +97,37 @@ private:
/**
* Base the effect on those allowed by the dropsource.
- * @param dwAllowed Drop sources allowed drop effect.
- * @return The allowed drop effect.
+ * \param dwAllowed Drop sources allowed drop effect.
+ * \return The allowed drop effect.
*/
DWORD allowedDropEffect(DWORD dwAllowed);
/**
* Query DataObject for the data types it supports.
- * @param pDataObject Pointer to the DataObject.
- * @return GHOST data type.
+ * \param pDataObject Pointer to the DataObject.
+ * \return GHOST data type.
*/
GHOST_TDragnDropTypes getGhostType(IDataObject *pDataObject);
/**
* Get data to pass in event.
* It checks the type and calls specific functions for each type.
- * @param pDataObject Pointer to the DataObject.
- * @return Pointer to data.
+ * \param pDataObject Pointer to the DataObject.
+ * \return Pointer to data.
*/
void *getGhostData(IDataObject *pDataObject);
/**
* Allocate data as file array to pass in event.
- * @param pDataObject Pointer to the DataObject.
- * @return Pointer to data.
+ * \param pDataObject Pointer to the DataObject.
+ * \return Pointer to data.
*/
void *getDropDataAsFilenames(IDataObject *pDataObject);
/**
* Allocate data as string to pass in event.
- * @param pDataObject Pointer to the DataObject.
- * @return Pointer to data.
+ * \param pDataObject Pointer to the DataObject.
+ * \return Pointer to data.
*/
void *getDropDataAsString(IDataObject *pDataObject);
@@ -135,9 +135,9 @@ private:
* Convert Unicode to ANSI, replacing unconvertable chars with '?'.
* The ANSI codepage is the system default codepage,
* and can change from system to system.
- * @param in LPCWSTR.
- * @param out char *. Is set to NULL on failure.
- * @return 0 on failure. Else the size of the string including '\0'.
+ * \param in LPCWSTR.
+ * \param out char *. Is set to NULL on failure.
+ * \return 0 on failure. Else the size of the string including '\0'.
*/
int WideCharToANSI(LPCWSTR in, char * &out);
diff --git a/intern/ghost/intern/GHOST_DropTargetX11.cpp b/intern/ghost/intern/GHOST_DropTargetX11.cpp
index c1cc55b332a..e2e15277a99 100644
--- a/intern/ghost/intern/GHOST_DropTargetX11.cpp
+++ b/intern/ghost/intern/GHOST_DropTargetX11.cpp
@@ -144,23 +144,23 @@ void GHOST_DropTargetX11::UrlDecode(char *decodedOut, int bufferSize, const char
break;
}
- // We are now converting
+ /* We are now converting */
state = STATE_CONVERTING;
break;
case STATE_CONVERTING:
bothDigits = true;
- // Create a buffer to hold the hex. For example, if %20, this
- // buffer would hold 20 (in ASCII)
+ /* Create a buffer to hold the hex. For example, if %20, this
+ * buffer would hold 20 (in ASCII) */
memset(tempNumBuf, 0, sizeof(tempNumBuf));
- // Conversion complete (i.e. don't convert again next iter)
+ /* Conversion complete (i.e. don't convert again next iter) */
state = STATE_SEARCH;
strncpy(tempNumBuf, &encodedIn[i], 2);
- // Ensure both characters are hexadecimal
+ /* Ensure both characters are hexadecimal */
for (j = 0; j < 2; ++j) {
if (!isxdigit(tempNumBuf[j]))
@@ -170,16 +170,16 @@ void GHOST_DropTargetX11::UrlDecode(char *decodedOut, int bufferSize, const char
if (!bothDigits)
break;
- // Convert two hexadecimal characters into one character
+ /* Convert two hexadecimal characters into one character */
sscanf(tempNumBuf, "%x", &asciiCharacter);
- // Ensure we aren't going to overflow
+ /* Ensure we aren't going to overflow */
assert(strlen(decodedOut) < bufferSize);
- // Concatenate this character onto the output
+ /* Concatenate this character onto the output */
strncat(decodedOut, (char *)&asciiCharacter, 1);
- // Skip the next character
+ /* Skip the next character */
i++;
break;
}
diff --git a/intern/ghost/intern/GHOST_DropTargetX11.h b/intern/ghost/intern/GHOST_DropTargetX11.h
index 10d76bbb165..3fed5798611 100644
--- a/intern/ghost/intern/GHOST_DropTargetX11.h
+++ b/intern/ghost/intern/GHOST_DropTargetX11.h
@@ -44,8 +44,8 @@ public:
/**
* Constructor
*
- * @param window The window to register as drop target.
- * @param system The associated system.
+ * \param window The window to register as drop target.
+ * \param system The associated system.
*/
GHOST_DropTargetX11(GHOST_WindowX11 *window, GHOST_SystemX11 *system);
@@ -62,10 +62,10 @@ public:
/**
* Get data to pass in event.
* It checks the type and calls specific functions for each type.
- * @param dropType - type of dropped entity.
- * @param dropBuffer - buffer returned from source application
- * @param dropBufferSize - size of returned buffer
- * @return Pointer to data.
+ * \param dropType - type of dropped entity.
+ * \param dropBuffer - buffer returned from source application
+ * \param dropBufferSize - size of returned buffer
+ * \return Pointer to data.
*/
void *getGhostData(Atom dropType, unsigned char *dropBuffer, int dropBufferSize);
@@ -84,24 +84,24 @@ private:
/**
* Get data to be passed to event from text/uri-list mime type
- * @param dropBuffer - buffer returned from source application
- * @param dropBufferSize - size of dropped buffer
- * @return pointer to newly created GHOST data
+ * \param dropBuffer - buffer returned from source application
+ * \param dropBufferSize - size of dropped buffer
+ * \return pointer to newly created GHOST data
*/
void *getURIListGhostData(unsigned char *dropBuffer, int dropBufferSize);
/**
* Decode URL (i.e. converts "file:///a%20b/test" to "file:///a b/test")
- * @param decodedOut - buffer for decoded URL
- * @param bufferSize - size of output buffer
- * @param encodedIn - input encoded buffer to be decoded
+ * \param decodedOut - buffer for decoded URL
+ * \param bufferSize - size of output buffer
+ * \param encodedIn - input encoded buffer to be decoded
*/
void UrlDecode(char *decodedOut, int bufferSize, const char *encodedIn);
/**
* Fully decode file URL (i.e. converts "file:///a%20b/test" to "/a b/test")
- * @param fileUrl - file path URL to be fully decoded
- * @return decoded file path (resutl shold be free-d)
+ * \param fileUrl - file path URL to be fully decoded
+ * \return decoded file path (resutl shold be free-d)
*/
char *FileUrlDecode(char *fileUrl);
diff --git a/intern/ghost/intern/GHOST_Event.h b/intern/ghost/intern/GHOST_Event.h
index 6e12a34d149..c9a51f29559 100644
--- a/intern/ghost/intern/GHOST_Event.h
+++ b/intern/ghost/intern/GHOST_Event.h
@@ -38,17 +38,17 @@
/**
* Base class for events received the operating system.
- * @author Maarten Gribnau
- * @date May 11, 2001
+ * \author Maarten Gribnau
+ * \date May 11, 2001
*/
class GHOST_Event : public GHOST_IEvent
{
public:
/**
* Constructor.
- * @param msec The time this event was generated.
- * @param type The type of this event.
- * @param window The generating window (or NULL if system event).
+ * \param msec The time this event was generated.
+ * \param type The type of this event.
+ * \param window The generating window (or NULL if system event).
*/
GHOST_Event(GHOST_TUns64 msec, GHOST_TEventType type, GHOST_IWindow *window)
: m_type(type), m_time(msec), m_window(window), m_data(0)
@@ -57,7 +57,7 @@ public:
/**
* Returns the event type.
- * @return The event type.
+ * \return The event type.
*/
virtual GHOST_TEventType getType()
{
@@ -66,7 +66,7 @@ public:
/**
* Returns the time this event was generated.
- * @return The event generation time.
+ * \return The event generation time.
*/
virtual GHOST_TUns64 getTime()
{
@@ -76,7 +76,7 @@ public:
/**
* Returns the window this event was generated on,
* or NULL if it is a 'system' event.
- * @return The generating window.
+ * \return The generating window.
*/
virtual GHOST_IWindow *getWindow()
{
@@ -85,7 +85,7 @@ public:
/**
* Returns the event data.
- * @return The event data.
+ * \return The event data.
*/
virtual GHOST_TEventDataPtr getData()
{
diff --git a/intern/ghost/intern/GHOST_EventButton.h b/intern/ghost/intern/GHOST_EventButton.h
index 7ad840bb964..f88fe6e201d 100644
--- a/intern/ghost/intern/GHOST_EventButton.h
+++ b/intern/ghost/intern/GHOST_EventButton.h
@@ -37,19 +37,19 @@
/**
* Mouse button event.
- * @author Maarten Gribnau
- * @date May 11, 2001
+ * \author Maarten Gribnau
+ * \date May 11, 2001
*/
class GHOST_EventButton : public GHOST_Event
{
public:
/**
* Constructor.
- * @param time The time this event was generated.
- * @param type The type of this event.
- * @param x The x-coordinate of the location the cursor was at at the time of the event.
- * @param y The y-coordinate of the location the cursor was at at the time of the event.
- * @param buttons The state of the buttons was at at the time of the event.
+ * \param time The time this event was generated.
+ * \param type The type of this event.
+ * \param x The x-coordinate of the location the cursor was at at the time of the event.
+ * \param y The y-coordinate of the location the cursor was at at the time of the event.
+ * \param buttons The state of the buttons was at at the time of the event.
*/
GHOST_EventButton(GHOST_TUns64 time, GHOST_TEventType type, GHOST_IWindow *window, GHOST_TButtonMask button)
: GHOST_Event(time, type, window)
diff --git a/intern/ghost/intern/GHOST_EventCursor.h b/intern/ghost/intern/GHOST_EventCursor.h
index 0ff703ba254..1c6f762cd9e 100644
--- a/intern/ghost/intern/GHOST_EventCursor.h
+++ b/intern/ghost/intern/GHOST_EventCursor.h
@@ -37,18 +37,18 @@
/**
* Cursor event.
- * @author Maarten Gribnau
- * @date May 11, 2001
+ * \author Maarten Gribnau
+ * \date May 11, 2001
*/
class GHOST_EventCursor : public GHOST_Event
{
public:
/**
* Constructor.
- * @param msec The time this event was generated.
- * @param type The type of this event.
- * @param x The x-coordinate of the location the cursor was at at the time of the event.
- * @param y The y-coordinate of the location the cursor was at at the time of the event.
+ * \param msec The time this event was generated.
+ * \param type The type of this event.
+ * \param x The x-coordinate of the location the cursor was at at the time of the event.
+ * \param y The y-coordinate of the location the cursor was at at the time of the event.
*/
GHOST_EventCursor(GHOST_TUns64 msec, GHOST_TEventType type, GHOST_IWindow *window, GHOST_TInt32 x, GHOST_TInt32 y)
: GHOST_Event(msec, type, window)
diff --git a/intern/ghost/intern/GHOST_EventDragnDrop.h b/intern/ghost/intern/GHOST_EventDragnDrop.h
index 1a05a4b9b68..cef9bb0a34a 100644
--- a/intern/ghost/intern/GHOST_EventDragnDrop.h
+++ b/intern/ghost/intern/GHOST_EventDragnDrop.h
@@ -72,13 +72,13 @@ class GHOST_EventDragnDrop : public GHOST_Event
public:
/**
* Constructor.
- * @param time The time this event was generated.
- * @param type The type of this event.
- * @param dataType The type of the drop candidate object
- * @param window The window where the event occurred
- * @param x The x-coordinate of the location the cursor was at at the time of the event.
- * @param y The y-coordinate of the location the cursor was at at the time of the event.
- * @param data The "content" dropped in the window
+ * \param time The time this event was generated.
+ * \param type The type of this event.
+ * \param dataType The type of the drop candidate object
+ * \param window The window where the event occurred
+ * \param x The x-coordinate of the location the cursor was at at the time of the event.
+ * \param y The y-coordinate of the location the cursor was at at the time of the event.
+ * \param data The "content" dropped in the window
*/
GHOST_EventDragnDrop(GHOST_TUns64 time,
GHOST_TEventType type,
diff --git a/intern/ghost/intern/GHOST_EventKey.h b/intern/ghost/intern/GHOST_EventKey.h
index 66817576f0f..54e38c00d05 100644
--- a/intern/ghost/intern/GHOST_EventKey.h
+++ b/intern/ghost/intern/GHOST_EventKey.h
@@ -37,17 +37,17 @@
/**
* Key event.
- * @author Maarten Gribnau
- * @date May 11, 2001
+ * \author Maarten Gribnau
+ * \date May 11, 2001
*/
class GHOST_EventKey : public GHOST_Event
{
public:
/**
* Constructor.
- * @param msec The time this event was generated.
- * @param type The type of key event.
- * @param key The key code of the key.
+ * \param msec The time this event was generated.
+ * \param type The type of key event.
+ * \param key The key code of the key.
*/
GHOST_EventKey(GHOST_TUns64 msec,
GHOST_TEventType type,
@@ -63,10 +63,10 @@ public:
/**
* Constructor.
- * @param msec The time this event was generated.
- * @param type The type of key event.
- * @param key The key code of the key.
- * @param ascii The ascii code for the key event.
+ * \param msec The time this event was generated.
+ * \param type The type of key event.
+ * \param key The key code of the key.
+ * \param ascii The ascii code for the key event.
*/
GHOST_EventKey(GHOST_TUns64 msec,
GHOST_TEventType type,
diff --git a/intern/ghost/intern/GHOST_EventManager.cpp b/intern/ghost/intern/GHOST_EventManager.cpp
index 33e0afb797a..014eef85aa8 100644
--- a/intern/ghost/intern/GHOST_EventManager.cpp
+++ b/intern/ghost/intern/GHOST_EventManager.cpp
@@ -32,8 +32,8 @@
/**
* Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date May 14, 2001
+ * \author Maarten Gribnau
+ * \date May 14, 2001
*/
#include "GHOST_EventManager.h"
@@ -70,7 +70,7 @@ GHOST_TUns32 GHOST_EventManager::getNumEvents(GHOST_TEventType type)
{
GHOST_TUns32 numEvents = 0;
TEventStack::iterator p;
- for (p = m_events.begin(); p != m_events.end(); p++) {
+ for (p = m_events.begin(); p != m_events.end(); ++p) {
if ((*p)->getType() == type) {
numEvents++;
}
@@ -82,7 +82,7 @@ GHOST_TUns32 GHOST_EventManager::getNumEvents(GHOST_TEventType type)
GHOST_IEvent *GHOST_EventManager::peekEvent()
{
GHOST_IEvent *event = 0;
- if (m_events.size() > 0) {
+ if (m_events.empty() == false) {
event = m_events.back();
}
return event;
@@ -110,7 +110,7 @@ bool GHOST_EventManager::dispatchEvent(GHOST_IEvent *event)
if (event) {
handled = true;
TConsumerVector::iterator iter;
- for (iter = m_consumers.begin(); iter != m_consumers.end(); iter++) {
+ for (iter = m_consumers.begin(); iter != m_consumers.end(); ++iter) {
if ((*iter)->processEvent(event)) {
handled = false;
}
@@ -212,7 +212,7 @@ void GHOST_EventManager::removeWindowEvents(GHOST_IWindow *window)
iter = m_events.begin();
}
else {
- iter++;
+ ++iter;
}
}
}
@@ -236,7 +236,7 @@ void GHOST_EventManager::removeTypeEvents(GHOST_TEventType type, GHOST_IWindow *
iter = m_events.begin();
}
else {
- iter++;
+ ++iter;
}
}
}
@@ -254,7 +254,7 @@ GHOST_IEvent *GHOST_EventManager::popEvent()
void GHOST_EventManager::disposeEvents()
{
- while (m_events.size() > 0) {
+ while (m_events.empty() == false) {
GHOST_ASSERT(m_events[0], "invalid event");
delete m_events[0];
m_events.pop_front();
diff --git a/intern/ghost/intern/GHOST_EventManager.h b/intern/ghost/intern/GHOST_EventManager.h
index eec00789800..fea8214c7f2 100644
--- a/intern/ghost/intern/GHOST_EventManager.h
+++ b/intern/ghost/intern/GHOST_EventManager.h
@@ -62,21 +62,21 @@ public:
/**
* Returns the number of events currently on the stack.
- * @return The number of events on the stack.
+ * \return The number of events on the stack.
*/
virtual GHOST_TUns32 getNumEvents();
/**
* Returns the number of events of a certain type currently on the stack.
- * @param type The type of events to be counted.
- * @return The number of events on the stack of this type.
+ * \param type The type of events to be counted.
+ * \return The number of events on the stack of this type.
*/
virtual GHOST_TUns32 getNumEvents(GHOST_TEventType type);
/**
* Return the event at the top of the stack without removal.
* Do not delete the event!
- * @return The event at the top of the stack.
+ * \return The event at the top of the stack.
*/
virtual GHOST_IEvent *peekEvent();
@@ -84,47 +84,47 @@ public:
* Pushes an event on the stack.
* To dispatch it, call dispatchEvent() or dispatchEvents().
* Do not delete the event!
- * @param event The event to push on the stack.
+ * \param event The event to push on the stack.
*/
virtual GHOST_TSuccess pushEvent(GHOST_IEvent *event);
/**
* Dispatches the given event directly, bypassing the event stack.
- * @return Indication as to whether any of the consumers handled the event.
+ * \return Indication as to whether any of the consumers handled the event.
*/
virtual bool dispatchEvent(GHOST_IEvent *event);
/**
* Dispatches the event at the back of the stack.
* The event will be removed from the stack.
- * @return Indication as to whether any of the consumers handled the event.
+ * \return Indication as to whether any of the consumers handled the event.
*/
virtual bool dispatchEvent();
/**
* Dispatches all the events on the stack.
* The event stack will be empty afterwards.
- * @return Indication as to whether any of the consumers handled the events.
+ * \return Indication as to whether any of the consumers handled the events.
*/
virtual bool dispatchEvents();
/**
* Adds a consumer to the list of event consumers.
- * @param consumer The consumer added to the list.
- * @return Indication as to whether addition has succeeded.
+ * \param consumer The consumer added to the list.
+ * \return Indication as to whether addition has succeeded.
*/
virtual GHOST_TSuccess addConsumer(GHOST_IEventConsumer *consumer);
/**
* Removes a consumer from the list of event consumers.
- * @param consumer The consumer removed from the list.
- * @return Indication as to whether removal has succeeded.
+ * \param consumer The consumer removed from the list.
+ * \return Indication as to whether removal has succeeded.
*/
virtual GHOST_TSuccess removeConsumer(GHOST_IEventConsumer *consumer);
/**
* Removes all events for a window from the stack.
- * @param window The window to remove events for.
+ * \param window The window to remove events for.
*/
virtual void
removeWindowEvents(
@@ -135,8 +135,8 @@ public:
* Removes all events of a certain type from the stack.
* The window parameter is optional. If non-null, the routine will remove
* events only associated with that window.
- * @param type The type of events to be removed.
- * @param window The window to remove the events for.
+ * \param type The type of events to be removed.
+ * \param window The window to remove the events for.
*/
virtual void
removeTypeEvents(
@@ -148,7 +148,7 @@ protected:
/**
* Returns the event at the top of the stack and removes it.
* Delete the event after use!
- * @return The event at the top of the stack.
+ * \return The event at the top of the stack.
*/
virtual GHOST_IEvent *popEvent();
diff --git a/intern/ghost/intern/GHOST_EventPrinter.h b/intern/ghost/intern/GHOST_EventPrinter.h
index f5fe303f9bc..280d4208413 100644
--- a/intern/ghost/intern/GHOST_EventPrinter.h
+++ b/intern/ghost/intern/GHOST_EventPrinter.h
@@ -46,16 +46,16 @@ class GHOST_EventPrinter : public GHOST_IEventConsumer
public:
/**
* Prints all the events received to std out.
- * @param event The event that can be handled or not.
- * @return Indication as to whether the event was handled.
+ * \param event The event that can be handled or not.
+ * \return Indication as to whether the event was handled.
*/
virtual bool processEvent(GHOST_IEvent *event);
protected:
/**
* Converts GHOST key code to a readable string.
- * @param key The GHOST key code to convert.
- * @param str The GHOST key code converted to a readable string.
+ * \param key The GHOST key code to convert.
+ * \param str The GHOST key code converted to a readable string.
*/
void getKeyString(GHOST_TKey key, char str[32]) const;
};
diff --git a/intern/ghost/intern/GHOST_EventString.h b/intern/ghost/intern/GHOST_EventString.h
index 8611944197d..391af0f8e2d 100644
--- a/intern/ghost/intern/GHOST_EventString.h
+++ b/intern/ghost/intern/GHOST_EventString.h
@@ -38,18 +38,18 @@
/**
* Generic class for events with string data
- * @author Damien Plisson
- * @date Feb 1, 2010
+ * \author Damien Plisson
+ * \date Feb 1, 2010
*/
class GHOST_EventString : public GHOST_Event
{
public:
/**
* Constructor.
- * @param msec The time this event was generated.
- * @param type The type of this event.
- * @param window The generating window (or NULL if system event).
- * @param data_ptr Pointer to the (unformatted) data associated with the event
+ * \param msec The time this event was generated.
+ * \param type The type of this event.
+ * \param window The generating window (or NULL if system event).
+ * \param data_ptr Pointer to the (unformatted) data associated with the event
*/
GHOST_EventString(GHOST_TUns64 msec, GHOST_TEventType type, GHOST_IWindow *window, GHOST_TEventDataPtr data_ptr)
: GHOST_Event(msec, type, window)
diff --git a/intern/ghost/intern/GHOST_EventTrackpad.h b/intern/ghost/intern/GHOST_EventTrackpad.h
index ab576fb9ec3..dc8b1649754 100644
--- a/intern/ghost/intern/GHOST_EventTrackpad.h
+++ b/intern/ghost/intern/GHOST_EventTrackpad.h
@@ -44,11 +44,11 @@ class GHOST_EventTrackpad : public GHOST_Event
public:
/**
* Constructor.
- * @param msec The time this event was generated.
- * @param type The type of this event.
- * @param subtype The subtype of the event.
- * @param x The x-delta of the pan event.
- * @param y The y-delta of the pan event.
+ * \param msec The time this event was generated.
+ * \param type The type of this event.
+ * \param subtype The subtype of the event.
+ * \param x The x-delta of the pan event.
+ * \param y The y-delta of the pan event.
*/
GHOST_EventTrackpad(GHOST_TUns64 msec,
GHOST_IWindow *window,
diff --git a/intern/ghost/intern/GHOST_EventWheel.h b/intern/ghost/intern/GHOST_EventWheel.h
index 7d6137af575..216f13fda4e 100644
--- a/intern/ghost/intern/GHOST_EventWheel.h
+++ b/intern/ghost/intern/GHOST_EventWheel.h
@@ -39,17 +39,17 @@
* Mouse wheel event.
* The displacement of the mouse wheel is counted in ticks.
* A positive value means the wheel is turned away from the user.
- * @author Maarten Gribnau
- * @date May 11, 2001
+ * \author Maarten Gribnau
+ * \date May 11, 2001
*/
class GHOST_EventWheel : public GHOST_Event
{
public:
/**
* Constructor.
- * @param msec The time this event was generated.
- * @param type The type of this event.
- * @param z The displacement of the mouse wheel.
+ * \param msec The time this event was generated.
+ * \param type The type of this event.
+ * \param z The displacement of the mouse wheel.
*/
GHOST_EventWheel(GHOST_TUns64 msec, GHOST_IWindow *window, GHOST_TInt32 z)
: GHOST_Event(msec, GHOST_kEventWheel, window)
diff --git a/intern/ghost/intern/GHOST_ISystem.cpp b/intern/ghost/intern/GHOST_ISystem.cpp
index fe1132e7996..f6973caad03 100644
--- a/intern/ghost/intern/GHOST_ISystem.cpp
+++ b/intern/ghost/intern/GHOST_ISystem.cpp
@@ -32,8 +32,8 @@
/**
* Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date May 7, 2001
+ * \author Maarten Gribnau
+ * \date May 7, 2001
*/
#include "GHOST_ISystem.h"
diff --git a/intern/ghost/intern/GHOST_ISystemPaths.cpp b/intern/ghost/intern/GHOST_ISystemPaths.cpp
index f84c50770f0..ae9a8e49057 100644
--- a/intern/ghost/intern/GHOST_ISystemPaths.cpp
+++ b/intern/ghost/intern/GHOST_ISystemPaths.cpp
@@ -32,8 +32,8 @@
/**
* Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date May 7, 2001
+ * \author Maarten Gribnau
+ * \date May 7, 2001
*/
#include "GHOST_ISystemPaths.h"
diff --git a/intern/ghost/intern/GHOST_ModifierKeys.cpp b/intern/ghost/intern/GHOST_ModifierKeys.cpp
index ffc7a09e4dd..d25d0beb34c 100644
--- a/intern/ghost/intern/GHOST_ModifierKeys.cpp
+++ b/intern/ghost/intern/GHOST_ModifierKeys.cpp
@@ -32,8 +32,8 @@
/**
* Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date May 31, 2001
+ * \author Maarten Gribnau
+ * \date May 31, 2001
*/
#include "GHOST_ModifierKeys.h"
diff --git a/intern/ghost/intern/GHOST_ModifierKeys.h b/intern/ghost/intern/GHOST_ModifierKeys.h
index 064af8d2e6c..8189006f602 100644
--- a/intern/ghost/intern/GHOST_ModifierKeys.h
+++ b/intern/ghost/intern/GHOST_ModifierKeys.h
@@ -38,8 +38,8 @@
/**
* Stores the state of modifier keys.
* Discriminates between left and right modifier keys.
- * @author Maarten Gribnau
- * @date May 17, 2001
+ * \author Maarten Gribnau
+ * \date May 17, 2001
*/
struct GHOST_ModifierKeys {
/**
@@ -51,23 +51,23 @@ struct GHOST_ModifierKeys {
/**
* Returns the modifier key's key code from a modifier key mask.
- * @param mask The mask of the modifier key.
- * @return The modifier key's key code.
+ * \param mask The mask of the modifier key.
+ * \return The modifier key's key code.
*/
static GHOST_TKey getModifierKeyCode(GHOST_TModifierKeyMask mask);
/**
* Returns the state of a single modifier key.
- * @param mask. Key state to return.
- * @return The state of the key (pressed == true).
+ * \param mask. Key state to return.
+ * \return The state of the key (pressed == true).
*/
virtual bool get(GHOST_TModifierKeyMask mask) const;
/**
* Updates the state of a single modifier key.
- * @param mask. Key state to update.
- * @param down. The new state of the key.
+ * \param mask. Key state to update.
+ * \param down. The new state of the key.
*/
virtual void set(GHOST_TModifierKeyMask mask, bool down);
@@ -78,8 +78,8 @@ struct GHOST_ModifierKeys {
/**
* Determines whether to modifier key states are equal.
- * @param keys. The modifier key state to compare to.
- * @return Indication of equality.
+ * \param keys. The modifier key state to compare to.
+ * \return Indication of equality.
*/
virtual bool equals(const GHOST_ModifierKeys& keys) const;
diff --git a/intern/ghost/intern/GHOST_NDOFManager.h b/intern/ghost/intern/GHOST_NDOFManager.h
index 2baf0f6fa42..2c213752f94 100644
--- a/intern/ghost/intern/GHOST_NDOFManager.h
+++ b/intern/ghost/intern/GHOST_NDOFManager.h
@@ -107,7 +107,7 @@ class GHOST_NDOFManager
public:
GHOST_NDOFManager(GHOST_System&);
- virtual ~GHOST_NDOFManager() {};
+ virtual ~GHOST_NDOFManager() {}
// whether multi-axis functionality is available (via the OS or driver)
// does not imply that a device is plugged in or being used
diff --git a/intern/ghost/intern/GHOST_NDOFManagerX11.cpp b/intern/ghost/intern/GHOST_NDOFManagerX11.cpp
index bd285bc7a27..49e7def8730 100644
--- a/intern/ghost/intern/GHOST_NDOFManagerX11.cpp
+++ b/intern/ghost/intern/GHOST_NDOFManagerX11.cpp
@@ -58,8 +58,11 @@ GHOST_NDOFManagerX11::GHOST_NDOFManagerX11(GHOST_System& sys)
}
}
else {
+#ifdef DEBUG
+ /* annoying for official builds, just adds noise and most prople don't own these */
puts("ndof: spacenavd not found");
/* This isn't a hard error, just means the user doesn't have a 3D mouse. */
+#endif
}
}
diff --git a/intern/ghost/intern/GHOST_System.h b/intern/ghost/intern/GHOST_System.h
index de475c79f43..070bf914dda 100644
--- a/intern/ghost/intern/GHOST_System.h
+++ b/intern/ghost/intern/GHOST_System.h
@@ -55,9 +55,9 @@ class GHOST_NDOFManager;
* interface.
* GHOST_System is an abstract class because not all methods of GHOST_ISystem
* are implemented.
- * @see GHOST_ISystem.
- * @author Maarten Gribnau
- * @date May 7, 2001
+ * \see GHOST_ISystem.
+ * \author Maarten Gribnau
+ * \date May 7, 2001
*/
class GHOST_System : public GHOST_ISystem
{
@@ -83,7 +83,7 @@ public:
* Returns the system time.
* Returns the number of milliseconds since the start of the system process.
* Based on ANSI clock() routine.
- * @return The number of milliseconds.
+ * \return The number of milliseconds.
*/
virtual GHOST_TUns64 getMilliSeconds() const;
@@ -91,11 +91,11 @@ public:
* Installs a timer.
* Note that, on most operating systems, messages need to be processed in order
* for the timer callbacks to be invoked.
- * @param delay The time to wait for the first call to the timerProc (in milliseconds)
- * @param interval The interval between calls to the timerProc
- * @param timerProc The callback invoked when the interval expires,
- * @param userData Placeholder for user data.
- * @return A timer task (0 if timer task installation failed).
+ * \param delay The time to wait for the first call to the timerProc (in milliseconds)
+ * \param interval The interval between calls to the timerProc
+ * \param timerProc The callback invoked when the interval expires,
+ * \param userData Placeholder for user data.
+ * \return A timer task (0 if timer task installation failed).
*/
virtual GHOST_ITimerTask *installTimer(GHOST_TUns64 delay,
GHOST_TUns64 interval,
@@ -104,8 +104,8 @@ public:
/**
* Removes a timer.
- * @param timerTask Timer task to be removed.
- * @return Indication of success.
+ * \param timerTask Timer task to be removed.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess removeTimer(GHOST_ITimerTask *timerTask);
@@ -123,47 +123,47 @@ public:
/**
* Dispose a window.
- * @param window Pointer to the window to be disposed.
- * @return Indication of success.
+ * \param window Pointer to the window to be disposed.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess disposeWindow(GHOST_IWindow *window);
/**
* Returns whether a window is valid.
- * @param window Pointer to the window to be checked.
- * @return Indication of validity.
+ * \param window Pointer to the window to be checked.
+ * \return Indication of validity.
*/
virtual bool validWindow(GHOST_IWindow *window);
/**
* Begins full screen mode.
- * @param setting The new setting of the display.
- * @param window Window displayed in full screen.
- * @param stereoVisual Stereo visual for quad buffered stereo.
+ * \param setting The new setting of the display.
+ * \param window Window displayed in full screen.
+ * \param stereoVisual Stereo visual for quad buffered stereo.
* This window is invalid after full screen has been ended.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess beginFullScreen(const GHOST_DisplaySetting& setting, GHOST_IWindow **window,
const bool stereoVisual, const GHOST_TUns16 numOfAASamples = 0);
/**
* Updates the resolution while in fullscreen mode.
- * @param setting The new setting of the display.
- * @param window Window displayed in full screen.
+ * \param setting The new setting of the display.
+ * \param window Window displayed in full screen.
*
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess updateFullScreen(const GHOST_DisplaySetting& setting, GHOST_IWindow **window);
/**
* Ends full screen mode.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess endFullScreen(void);
/**
* Returns current full screen mode status.
- * @return The current status.
+ * \return The current status.
*/
virtual bool getFullScreen(void);
@@ -183,21 +183,21 @@ public:
/**
* Dispatches all the events on the stack.
* The event stack will be empty afterwards.
- * @return Indication as to whether any of the consumers handled the events.
+ * \return Indication as to whether any of the consumers handled the events.
*/
virtual bool dispatchEvents();
/**
* Adds the given event consumer to our list.
- * @param consumer The event consumer to add.
- * @return Indication of success.
+ * \param consumer The event consumer to add.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess addEventConsumer(GHOST_IEventConsumer *consumer);
/**
* Remove the given event consumer to our list.
- * @param consumer The event consumer to remove.
- * @return Indication of success.
+ * \param consumer The event consumer to remove.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess removeEventConsumer(GHOST_IEventConsumer *consumer);
@@ -216,17 +216,17 @@ public:
/**
* Returns the state of a modifier key (ouside the message queue).
- * @param mask The modifier key state to retrieve.
- * @param isDown The state of a modifier key (true == pressed).
- * @return Indication of success.
+ * \param mask The modifier key state to retrieve.
+ * \param isDown The state of a modifier key (true == pressed).
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getModifierKeyState(GHOST_TModifierKeyMask mask, bool& isDown) const;
/**
* Returns the state of a mouse button (ouside the message queue).
- * @param mask The button state to retrieve.
- * @param isDown Button state.
- * @return Indication of success.
+ * \param mask The button state to retrieve.
+ * \param isDown Button state.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getButtonState(GHOST_TButtonMask mask, bool& isDown) const;
@@ -238,62 +238,62 @@ public:
* Pushes an event on the stack.
* To dispatch it, call dispatchEvent() or dispatchEvents().
* Do not delete the event!
- * @param event The event to push on the stack.
+ * \param event The event to push on the stack.
*/
virtual GHOST_TSuccess pushEvent(GHOST_IEvent *event);
/**
* Returns the timer manager.
- * @return The timer manager.
+ * \return The timer manager.
*/
inline virtual GHOST_TimerManager *getTimerManager() const;
/**
* Returns a pointer to our event manager.
- * @return A pointer to our event manager.
+ * \return A pointer to our event manager.
*/
virtual inline GHOST_EventManager *getEventManager() const;
/**
* Returns a pointer to our window manager.
- * @return A pointer to our window manager.
+ * \return A pointer to our window manager.
*/
virtual inline GHOST_WindowManager *getWindowManager() const;
#ifdef WITH_INPUT_NDOF
/**
* Returns a pointer to our n-degree of freedeom manager.
- * @return A pointer to our n-degree of freedeom manager.
+ * \return A pointer to our n-degree of freedeom manager.
*/
virtual inline GHOST_NDOFManager *getNDOFManager() const;
#endif
/**
* Returns the state of all modifier keys.
- * @param keys The state of all modifier keys (true == pressed).
- * @return Indication of success.
+ * \param keys The state of all modifier keys (true == pressed).
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getModifierKeys(GHOST_ModifierKeys& keys) const = 0;
/**
* Returns the state of the mouse buttons (ouside the message queue).
- * @param buttons The state of the buttons.
- * @return Indication of success.
+ * \param buttons The state of the buttons.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getButtons(GHOST_Buttons& buttons) const = 0;
/**
* Returns the selection buffer
- * @param selection Only used on X11
- * @return Returns the clipboard data
+ * \param selection Only used on X11
+ * \return Returns the clipboard data
*
*/
virtual GHOST_TUns8 *getClipboard(bool selection) const = 0;
/**
* Put data to the Clipboard
- * @param buffer The buffer to copy to the clipboard
- * @param selection The clipboard to copy too only used on X11
+ * \param buffer The buffer to copy to the clipboard
+ * \param selection The clipboard to copy too only used on X11
*/
virtual void putClipboard(GHOST_TInt8 *buffer, bool selection) const = 0;
@@ -308,20 +308,20 @@ public:
protected:
/**
* Initialize the system.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess init();
/**
* Shut the system down.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess exit();
/**
* Creates a fullscreen window.
- * @param window The window created.
- * @return Indication of success.
+ * \param window The window created.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess createFullScreenWindow(GHOST_Window **window,
const bool stereoVisual, const GHOST_TUns16 numOfAASamples = 0);
diff --git a/intern/ghost/intern/GHOST_SystemCarbon.cpp b/intern/ghost/intern/GHOST_SystemCarbon.cpp
index ffb8388543b..bb68ce8889c 100644
--- a/intern/ghost/intern/GHOST_SystemCarbon.cpp
+++ b/intern/ghost/intern/GHOST_SystemCarbon.cpp
@@ -32,8 +32,8 @@
/**
* Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date May 7, 2001
+ * \author Maarten Gribnau
+ * \date May 7, 2001
*/
#include <Carbon/Carbon.h>
@@ -990,7 +990,7 @@ bool GHOST_SystemCarbon::handleMouseDown(EventRef event)
/*
* The DragWindow() routine creates a lot of kEventWindowBoundsChanged
* events. By setting m_ignoreWindowSizedMessages these are suppressed.
- * @see GHOST_SystemCarbon::handleWindowEvent(EventRef event)
+ * \see GHOST_SystemCarbon::handleWindowEvent(EventRef event)
*/
/* even worse: scale window also generates a load of events, and nothing
* is handled (read: client's event proc called) until you release mouse (ton) */
diff --git a/intern/ghost/intern/GHOST_SystemCarbon.h b/intern/ghost/intern/GHOST_SystemCarbon.h
index 2415c57e094..61e5a086a0f 100644
--- a/intern/ghost/intern/GHOST_SystemCarbon.h
+++ b/intern/ghost/intern/GHOST_SystemCarbon.h
@@ -48,9 +48,9 @@ class GHOST_EventWindow;
/**
* OSX/Carbon Implementation of GHOST_System class.
- * @see GHOST_System.
- * @author Maarten Gribnau
- * @date May 21, 2001
+ * \see GHOST_System.
+ * \author Maarten Gribnau
+ * \date May 21, 2001
*/
class GHOST_SystemCarbon : public GHOST_System {
public:
@@ -72,7 +72,7 @@ public:
* Returns the system time.
* Returns the number of milliseconds since the start of the system process.
* Based on ANSI clock() routine.
- * @return The number of milliseconds.
+ * \return The number of milliseconds.
*/
virtual GHOST_TUns64 getMilliSeconds() const;
@@ -82,13 +82,13 @@ public:
/**
* Returns the number of displays on this system.
- * @return The number of displays.
+ * \return The number of displays.
*/
virtual GHOST_TUns8 getNumDisplays() const;
/**
* Returns the dimensions of the main display on this system.
- * @return The dimension of the main display.
+ * \return The dimension of the main display.
*/
virtual void getMainDisplayDimensions(GHOST_TUns32& width, GHOST_TUns32& height) const;
@@ -96,15 +96,15 @@ public:
* Create a new window.
* The new window is added to the list of windows managed.
* Never explicitly delete the window, use disposeWindow() instead.
- * @param title The name of the window (displayed in the title bar of the window if the OS supports it).
- * @param left The coordinate of the left edge of the window.
- * @param top The coordinate of the top edge of the window.
- * @param width The width the window.
- * @param height The height the window.
- * @param state The state of the window when opened.
- * @param type The type of drawing context installed in this window.
- * @param parentWindow Parent (embedder) window
- * @return The new window (or 0 if creation failed).
+ * \param title The name of the window (displayed in the title bar of the window if the OS supports it).
+ * \param left The coordinate of the left edge of the window.
+ * \param top The coordinate of the top edge of the window.
+ * \param width The width the window.
+ * \param height The height the window.
+ * \param state The state of the window when opened.
+ * \param type The type of drawing context installed in this window.
+ * \param parentWindow Parent (embedder) window
+ * \return The new window (or 0 if creation failed).
*/
virtual GHOST_IWindow *createWindow(
const STR_String& title,
@@ -133,8 +133,8 @@ public:
/**
* Gets events from the system and stores them in the queue.
- * @param waitForEvent Flag to wait for an event (or return immediately).
- * @return Indication of the presence of events.
+ * \param waitForEvent Flag to wait for an event (or return immediately).
+ * \return Indication of the presence of events.
*/
virtual bool processEvents(bool waitForEvent);
@@ -144,17 +144,17 @@ public:
/**
* Returns the current location of the cursor (location in screen coordinates)
- * @param x The x-coordinate of the cursor.
- * @param y The y-coordinate of the cursor.
- * @return Indication of success.
+ * \param x The x-coordinate of the cursor.
+ * \param y The y-coordinate of the cursor.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getCursorPosition(GHOST_TInt32& x, GHOST_TInt32& y) const;
/**
* Updates the location of the cursor (location in screen coordinates).
- * @param x The x-coordinate of the cursor.
- * @param y The y-coordinate of the cursor.
- * @return Indication of success.
+ * \param x The x-coordinate of the cursor.
+ * \param y The y-coordinate of the cursor.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCursorPosition(GHOST_TInt32 x, GHOST_TInt32 y);
@@ -164,34 +164,34 @@ public:
/**
* Returns the state of all modifier keys.
- * @param keys The state of all modifier keys (true == pressed).
- * @return Indication of success.
+ * \param keys The state of all modifier keys (true == pressed).
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getModifierKeys(GHOST_ModifierKeys& keys) const;
/**
* Returns the state of the mouse buttons (ouside the message queue).
- * @param buttons The state of the buttons.
- * @return Indication of success.
+ * \param buttons The state of the buttons.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getButtons(GHOST_Buttons& buttons) const;
/**
* Returns Clipboard data
- * @param selection Indicate which buffer to return
- * @return Returns the selected buffer
+ * \param selection Indicate which buffer to return
+ * \return Returns the selected buffer
*/
virtual GHOST_TUns8 *getClipboard(bool selection) const;
/**
* Puts buffer to system clipboard
- * @param buffer The buffer to be copied
- * @param selection Indicates which buffer to copy too, only used on X11
+ * \param buffer The buffer to be copied
+ * \param selection Indicates which buffer to copy too, only used on X11
*/
virtual void putClipboard(GHOST_TInt8 *buffer, bool selection) const;
/**
- * @see GHOST_ISystem
+ * \see GHOST_ISystem
*/
int toggleConsole(int action) {
return 0;
@@ -201,55 +201,55 @@ protected:
/**
* Initializes the system.
* For now, it justs registers the window class (WNDCLASS).
- * @return A success value.
+ * \return A success value.
*/
virtual GHOST_TSuccess init();
/**
* Closes the system down.
- * @return A success value.
+ * \return A success value.
*/
virtual GHOST_TSuccess exit();
/**
* Handles a tablet event.
- * @param event A Mac event.
- * @return Indication whether the event was handled.
+ * \param event A Mac event.
+ * \return Indication whether the event was handled.
*/
OSStatus handleTabletEvent(EventRef event);
/**
* Handles a mouse event.
- * @param event A Mac event.
- * @return Indication whether the event was handled.
+ * \param event A Mac event.
+ * \return Indication whether the event was handled.
*/
OSStatus handleMouseEvent(EventRef event);
/**
* Handles a key event.
- * @param event A Mac event.
- * @return Indication whether the event was handled.
+ * \param event A Mac event.
+ * \return Indication whether the event was handled.
*/
OSStatus handleKeyEvent(EventRef event);
/**
* Handles a window event.
- * @param event A Mac event.
- * @return Indication whether the event was handled.
+ * \param event A Mac event.
+ * \return Indication whether the event was handled.
*/
OSStatus handleWindowEvent(EventRef event);
/**
* Handles all basic Mac application stuff for a mouse down event.
- * @param event A Mac event.
- * @return Indication whether the event was handled.
+ * \param event A Mac event.
+ * \return Indication whether the event was handled.
*/
bool handleMouseDown(EventRef event);
/**
* Handles a Mac menu command.
- * @param menuResult A Mac menu/item identifier.
- * @return Indication whether the event was handled.
+ * \param menuResult A Mac menu/item identifier.
+ * \return Indication whether the event was handled.
*/
bool handleMenuCommand(GHOST_TInt32 menuResult);
@@ -270,7 +270,7 @@ protected:
/**
* Callback for Mac Timer tasks that expire.
- * @param tmTask Pointer to the timer task that expired.
+ * \param tmTask Pointer to the timer task that expired.
*/
//static void s_timerCallback(TMTaskPtr tmTask);
diff --git a/intern/ghost/intern/GHOST_SystemCocoa.h b/intern/ghost/intern/GHOST_SystemCocoa.h
index cb4e9fe3c99..08f982ffd3f 100644
--- a/intern/ghost/intern/GHOST_SystemCocoa.h
+++ b/intern/ghost/intern/GHOST_SystemCocoa.h
@@ -69,7 +69,7 @@ public:
* Returns the system time.
* Returns the number of milliseconds since the start of the system process.
* Based on ANSI clock() routine.
- * @return The number of milliseconds.
+ * \return The number of milliseconds.
*/
virtual GHOST_TUns64 getMilliSeconds() const;
@@ -79,13 +79,13 @@ public:
/**
* Returns the number of displays on this system.
- * @return The number of displays.
+ * \return The number of displays.
*/
virtual GHOST_TUns8 getNumDisplays() const;
/**
* Returns the dimensions of the main display on this system.
- * @return The dimension of the main display.
+ * \return The dimension of the main display.
*/
virtual void getMainDisplayDimensions(GHOST_TUns32& width, GHOST_TUns32& height) const;
@@ -93,17 +93,17 @@ public:
* Create a new window.
* The new window is added to the list of windows managed.
* Never explicitly delete the window, use disposeWindow() instead.
- * @param title The name of the window (displayed in the title bar of the window if the OS supports it).
- * @param left The coordinate of the left edge of the window.
- * @param top The coordinate of the top edge of the window.
- * @param width The width the window.
- * @param height The height the window.
- * @param state The state of the window when opened.
- * @param type The type of drawing context installed in this window.
- * @param stereoVisual Stereo visual for quad buffered stereo.
- * @param numOfAASamples Number of samples used for AA (zero if no AA)
- * @param parentWindow Parent (embedder) window
- * @return The new window (or 0 if creation failed).
+ * \param title The name of the window (displayed in the title bar of the window if the OS supports it).
+ * \param left The coordinate of the left edge of the window.
+ * \param top The coordinate of the top edge of the window.
+ * \param width The width the window.
+ * \param height The height the window.
+ * \param state The state of the window when opened.
+ * \param type The type of drawing context installed in this window.
+ * \param stereoVisual Stereo visual for quad buffered stereo.
+ * \param numOfAASamples Number of samples used for AA (zero if no AA)
+ * \param parentWindow Parent (embedder) window
+ * \return The new window (or 0 if creation failed).
*/
virtual GHOST_IWindow *createWindow(
const STR_String& title,
@@ -124,8 +124,8 @@ public:
/**
* Gets events from the system and stores them in the queue.
- * @param waitForEvent Flag to wait for an event (or return immediately).
- * @return Indication of the presence of events.
+ * \param waitForEvent Flag to wait for an event (or return immediately).
+ * \return Indication of the presence of events.
*/
virtual bool processEvents(bool waitForEvent);
@@ -143,12 +143,12 @@ public:
/**
* Handles a drag'n'drop destination event. Called by GHOST_WindowCocoa window subclass
- * @param eventType The type of drag'n'drop event
- * @param draggedObjectType The type object concerned (currently array of file names, string, TIFF image)
- * @param mouseX x mouse coordinate (in cocoa base window coordinates)
- * @param mouseY y mouse coordinate
- * @param window The window on which the event occurred
- * @return Indication whether the event was handled.
+ * \param eventType The type of drag'n'drop event
+ * \param draggedObjectType The type object concerned (currently array of file names, string, TIFF image)
+ * \param mouseX x mouse coordinate (in cocoa base window coordinates)
+ * \param mouseY y mouse coordinate
+ * \param window The window on which the event occurred
+ * \return Indication whether the event was handled.
*/
GHOST_TSuccess handleDraggingEvent(GHOST_TEventType eventType, GHOST_TDragnDropTypes draggedObjectType,
GHOST_WindowCocoa *window, int mouseX, int mouseY, void *data);
@@ -159,17 +159,17 @@ public:
/**
* Returns the current location of the cursor (location in screen coordinates)
- * @param x The x-coordinate of the cursor.
- * @param y The y-coordinate of the cursor.
- * @return Indication of success.
+ * \param x The x-coordinate of the cursor.
+ * \param y The y-coordinate of the cursor.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getCursorPosition(GHOST_TInt32& x, GHOST_TInt32& y) const;
/**
* Updates the location of the cursor (location in screen coordinates).
- * @param x The x-coordinate of the cursor.
- * @param y The y-coordinate of the cursor.
- * @return Indication of success.
+ * \param x The x-coordinate of the cursor.
+ * \param y The y-coordinate of the cursor.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCursorPosition(GHOST_TInt32 x, GHOST_TInt32 y);
@@ -179,43 +179,43 @@ public:
/**
* Returns the state of all modifier keys.
- * @param keys The state of all modifier keys (true == pressed).
- * @return Indication of success.
+ * \param keys The state of all modifier keys (true == pressed).
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getModifierKeys(GHOST_ModifierKeys& keys) const;
/**
* Returns the state of the mouse buttons (ouside the message queue).
- * @param buttons The state of the buttons.
- * @return Indication of success.
+ * \param buttons The state of the buttons.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getButtons(GHOST_Buttons& buttons) const;
/**
* Returns Clipboard data
- * @param selection Indicate which buffer to return
- * @return Returns the selected buffer
+ * \param selection Indicate which buffer to return
+ * \return Returns the selected buffer
*/
virtual GHOST_TUns8 *getClipboard(bool selection) const;
/**
* Puts buffer to system clipboard
- * @param buffer The buffer to be copied
- * @param selection Indicates which buffer to copy too, only used on X11
+ * \param buffer The buffer to be copied
+ * \param selection Indicates which buffer to copy too, only used on X11
*/
virtual void putClipboard(GHOST_TInt8 *buffer, bool selection) const;
/**
* Handles a window event. Called by GHOST_WindowCocoa window delegate
- * @param eventType The type of window event
- * @param window The window on which the event occurred
- * @return Indication whether the event was handled.
+ * \param eventType The type of window event
+ * \param window The window on which the event occurred
+ * \return Indication whether the event was handled.
*/
GHOST_TSuccess handleWindowEvent(GHOST_TEventType eventType, GHOST_WindowCocoa *window);
/**
* Handles the Cocoa event telling the application has become active (again)
- * @return Indication whether the event was handled.
+ * \return Indication whether the event was handled.
*/
GHOST_TSuccess handleApplicationBecomeActiveEvent();
@@ -225,7 +225,7 @@ public:
void notifyExternalEventProcessed();
/**
- * @see GHOST_ISystem
+ * \see GHOST_ISystem
*/
int toggleConsole(int action) {
return 0;
@@ -236,40 +236,40 @@ protected:
/**
* Initializes the system.
* For now, it justs registers the window class (WNDCLASS).
- * @return A success value.
+ * \return A success value.
*/
virtual GHOST_TSuccess init();
/**
* Handles a tablet event.
- * @param eventPtr An NSEvent pointer (casted to void* to enable compilation in standard C++)
- * @param eventType The type of the event.
+ * \param eventPtr An NSEvent pointer (casted to void* to enable compilation in standard C++)
+ * \param eventType The type of the event.
* It needs to be passed separately as it can be either directly in the event type,
* or as a subtype if combined with a mouse button event.
- * @return Indication whether the event was handled.
+ * \return Indication whether the event was handled.
*/
GHOST_TSuccess handleTabletEvent(void *eventPtr, short eventType);
bool handleTabletEvent(void *eventPtr);
/**
* Handles a mouse event.
- * @param eventPtr An NSEvent pointer (casted to void* to enable compilation in standard C++)
- * @return Indication whether the event was handled.
+ * \param eventPtr An NSEvent pointer (casted to void* to enable compilation in standard C++)
+ * \return Indication whether the event was handled.
*/
GHOST_TSuccess handleMouseEvent(void *eventPtr);
/**
* Handles a key event.
- * @param eventPtr An NSEvent pointer (casted to void* to enable compilation in standard C++)
- * @return Indication whether the event was handled.
+ * \param eventPtr An NSEvent pointer (casted to void* to enable compilation in standard C++)
+ * \return Indication whether the event was handled.
*/
GHOST_TSuccess handleKeyEvent(void *eventPtr);
/**
* Performs the actual cursor position update (location in screen coordinates).
- * @param x The x-coordinate of the cursor.
- * @param y The y-coordinate of the cursor.
- * @return Indication of success.
+ * \param x The x-coordinate of the cursor.
+ * \param y The y-coordinate of the cursor.
+ * \return Indication of success.
*/
GHOST_TSuccess setMouseCursorPosition(GHOST_TInt32 x, GHOST_TInt32 y);
diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm b/intern/ghost/intern/GHOST_SystemCocoa.mm
index 760dc0cbfd5..fed3bdbc8f0 100644
--- a/intern/ghost/intern/GHOST_SystemCocoa.mm
+++ b/intern/ghost/intern/GHOST_SystemCocoa.mm
@@ -228,9 +228,9 @@ static GHOST_TButtonMask convertButton(int button)
/**
* Converts Mac rawkey codes (same for Cocoa & Carbon)
* into GHOST key codes
- * @param rawCode The raw physical key code
- * @param recvChar the character ignoring modifiers (except for shift)
- * @return Ghost key code
+ * \param rawCode The raw physical key code
+ * \param recvChar the character ignoring modifiers (except for shift)
+ * \return Ghost key code
*/
static GHOST_TKey convertKey(int rawCode, unichar recvChar, UInt16 keyAction)
{
@@ -355,16 +355,18 @@ static GHOST_TKey convertKey(int rawCode, unichar recvChar, UInt16 keyAction)
/* alphanumerical or punctuation key that is remappable in int'l keyboards */
if ((recvChar >= 'A') && (recvChar <= 'Z')) {
return (GHOST_TKey) (recvChar - 'A' + GHOST_kKeyA);
- } else if ((recvChar >= 'a') && (recvChar <= 'z')) {
+ }
+ else if ((recvChar >= 'a') && (recvChar <= 'z')) {
return (GHOST_TKey) (recvChar - 'a' + GHOST_kKeyA);
- } else {
+ }
+ else {
#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4
KeyboardLayoutRef keyLayout;
UCKeyboardLayout *uchrData;
KLGetCurrentKeyboardLayout(&keyLayout);
KLGetKeyboardLayoutProperty(keyLayout, kKLuchrData, (const void **)
- &uchrData);
+ &uchrData);
/*get actual character value of the "remappable" keys in int'l keyboards,
if keyboard layout is not correctly reported (e.g. some non Apple keyboards in Tiger),
then fallback on using the received charactersIgnoringModifiers */
@@ -457,7 +459,8 @@ extern "C" int GHOST_HACK_getFirstFile(char buf[FIRSTFILEBUFLG])
strncpy(buf, g_firstFileBuf, FIRSTFILEBUFLG - 1);
buf[FIRSTFILEBUFLG - 1] = '\0';
return 1;
- } else {
+ }
+ else {
return 0;
}
}
@@ -527,7 +530,7 @@ int cocoa_request_qtcodec_settings(bContext *C, wmOperator *op)
// So WM_exit needs to be called directly, as the event loop will never run before termination
- (void)applicationWillTerminate:(NSNotification *)aNotification
{
- /*G.afbreek = 0; //Let Cocoa perform the termination at the end
+ /*G.is_break = FALSE; //Let Cocoa perform the termination at the end
WM_exit(C);*/
}
@@ -594,9 +597,8 @@ GHOST_SystemCocoa::~GHOST_SystemCocoa()
GHOST_TSuccess GHOST_SystemCocoa::init()
{
-
- GHOST_TSuccess success = GHOST_System::init();
- if (success) {
+ GHOST_TSuccess success = GHOST_System::init();
+ if (success) {
#ifdef WITH_INPUT_NDOF
m_ndofManager = new GHOST_NDOFManagerCocoa(*this);
@@ -676,8 +678,8 @@ GHOST_TSuccess GHOST_SystemCocoa::init()
[NSApp finishLaunching];
[pool drain];
- }
- return success;
+ }
+ return success;
}
@@ -739,7 +741,7 @@ GHOST_IWindow* GHOST_SystemCocoa::createWindow(
const GHOST_TEmbedderWindowID parentWindow
)
{
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
GHOST_IWindow* window = 0;
//Get the available rect for including window contents
@@ -755,45 +757,44 @@ GHOST_IWindow* GHOST_SystemCocoa::createWindow(
window = new GHOST_WindowCocoa (this, title, left, bottom, width, height, state, type, stereoVisual, numOfAASamples);
- if (window) {
- if (window->getValid()) {
- // Store the pointer to the window
- GHOST_ASSERT(m_windowManager, "m_windowManager not initialized");
- m_windowManager->addWindow(window);
- m_windowManager->setActiveWindow(window);
+ if (window) {
+ if (window->getValid()) {
+ // Store the pointer to the window
+ GHOST_ASSERT(m_windowManager, "m_windowManager not initialized");
+ m_windowManager->addWindow(window);
+ m_windowManager->setActiveWindow(window);
//Need to tell window manager the new window is the active one (Cocoa does not send the event activate upon window creation)
- pushEvent(new GHOST_Event(getMilliSeconds(), GHOST_kEventWindowActivate, window));
+ pushEvent(new GHOST_Event(getMilliSeconds(), GHOST_kEventWindowActivate, window));
pushEvent(new GHOST_Event(getMilliSeconds(), GHOST_kEventWindowSize, window));
-
- }
- else {
+ }
+ else {
GHOST_PRINT("GHOST_SystemCocoa::createWindow(): window invalid\n");
- delete window;
- window = 0;
- }
- }
+ delete window;
+ window = 0;
+ }
+ }
else {
GHOST_PRINT("GHOST_SystemCocoa::createWindow(): could not create window\n");
}
[pool drain];
- return window;
+ return window;
}
/**
- * @note : returns coordinates in Cocoa screen coordinates
+ * \note : returns coordinates in Cocoa screen coordinates
*/
GHOST_TSuccess GHOST_SystemCocoa::getCursorPosition(GHOST_TInt32& x, GHOST_TInt32& y) const
{
- NSPoint mouseLoc = [NSEvent mouseLocation];
+ NSPoint mouseLoc = [NSEvent mouseLocation];
- // Returns the mouse location in screen coordinates
- x = (GHOST_TInt32)mouseLoc.x;
- y = (GHOST_TInt32)mouseLoc.y;
- return GHOST_kSuccess;
+ // Returns the mouse location in screen coordinates
+ x = (GHOST_TInt32)mouseLoc.x;
+ y = (GHOST_TInt32)mouseLoc.y;
+ return GHOST_kSuccess;
}
/**
- * @note : expect Cocoa screen coordinates
+ * \note : expect Cocoa screen coordinates
*/
GHOST_TSuccess GHOST_SystemCocoa::setCursorPosition(GHOST_TInt32 x, GHOST_TInt32 y)
{
@@ -833,7 +834,7 @@ GHOST_TSuccess GHOST_SystemCocoa::setMouseCursorPosition(GHOST_TInt32 x, GHOST_T
CGDisplayMoveCursorToPoint((CGDirectDisplayID)[[[windowScreen deviceDescription] objectForKey:@"NSScreenNumber"] unsignedIntValue], CGPointMake(xf, yf));
[pool drain];
- return GHOST_kSuccess;
+ return GHOST_kSuccess;
}
@@ -844,18 +845,18 @@ GHOST_TSuccess GHOST_SystemCocoa::getModifierKeys(GHOST_ModifierKeys& keys) cons
keys.set(GHOST_kModifierKeyLeftShift, (m_modifierMask & NSShiftKeyMask) ? true : false);
keys.set(GHOST_kModifierKeyLeftControl, (m_modifierMask & NSControlKeyMask) ? true : false);
- return GHOST_kSuccess;
+ return GHOST_kSuccess;
}
GHOST_TSuccess GHOST_SystemCocoa::getButtons(GHOST_Buttons& buttons) const
{
buttons.clear();
- buttons.set(GHOST_kButtonMaskLeft, m_pressedMouseButtons & GHOST_kButtonMaskLeft);
+ buttons.set(GHOST_kButtonMaskLeft, m_pressedMouseButtons & GHOST_kButtonMaskLeft);
buttons.set(GHOST_kButtonMaskRight, m_pressedMouseButtons & GHOST_kButtonMaskRight);
buttons.set(GHOST_kButtonMaskMiddle, m_pressedMouseButtons & GHOST_kButtonMaskMiddle);
buttons.set(GHOST_kButtonMaskButton4, m_pressedMouseButtons & GHOST_kButtonMaskButton4);
buttons.set(GHOST_kButtonMaskButton5, m_pressedMouseButtons & GHOST_kButtonMaskButton5);
- return GHOST_kSuccess;
+ return GHOST_kSuccess;
}
@@ -872,29 +873,30 @@ bool GHOST_SystemCocoa::processEvents(bool waitForEvent)
// SetMouseCoalescingEnabled(false, NULL);
//TODO : implement timer ??
-
- /*do {
+#if 0
+ do {
GHOST_TimerManager* timerMgr = getTimerManager();
if (waitForEvent) {
- GHOST_TUns64 next = timerMgr->nextFireTime();
- double timeOut;
-
- if (next == GHOST_kFireTimeNever) {
- timeOut = kEventDurationForever;
- } else {
- timeOut = (double)(next - getMilliSeconds())/1000.0;
- if (timeOut < 0.0)
- timeOut = 0.0;
- }
+ GHOST_TUns64 next = timerMgr->nextFireTime();
+ double timeOut;
- ::ReceiveNextEvent(0, NULL, timeOut, false, &event);
+ if (next == GHOST_kFireTimeNever) {
+ timeOut = kEventDurationForever;
+ }
+ else {
+ timeOut = (double)(next - getMilliSeconds())/1000.0;
+ if (timeOut < 0.0)
+ timeOut = 0.0;
+ }
+
+ ::ReceiveNextEvent(0, NULL, timeOut, false, &event);
}
if (timerMgr->fireTimers(getMilliSeconds())) {
- anyProcessed = true;
+ anyProcessed = true;
}
- */
+#endif
do {
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
@@ -965,7 +967,9 @@ bool GHOST_SystemCocoa::processEvents(bool waitForEvent)
[NSApp sendEvent:event];
[pool drain];
} while (event!= nil);
- //} while (waitForEvent && !anyProcessed); Needed only for timer implementation
+#if 0
+ } while (waitForEvent && !anyProcessed); // Needed only for timer implementation
+#endif
if (m_needDelayedApplicationBecomeActiveEventProcessing) handleApplicationBecomeActiveEvent();
@@ -976,7 +980,7 @@ bool GHOST_SystemCocoa::processEvents(bool waitForEvent)
m_ignoreWindowSizedMessages = false;
- return anyProcessed;
+ return anyProcessed;
}
//Note: called from NSApplication delegate
@@ -1287,12 +1291,13 @@ GHOST_TUns8 GHOST_SystemCocoa::handleQuitRequest()
if (m_windowManager->getAnyModifiedState())
{
int shouldQuit = NSRunAlertPanel(@"Exit Blender", @"Some changes have not been saved.\nDo you really want to quit ?",
- @"Cancel", @"Quit Anyway", nil);
+ @"Cancel", @"Quit Anyway", nil);
if (shouldQuit == NSAlertAlternateReturn)
{
pushEvent( new GHOST_Event(getMilliSeconds(), GHOST_kEventQuit, NULL) );
return GHOST_kExitNow;
- } else {
+ }
+ else {
//Give back focus to the blender window if user selected cancel quit
NSArray *windowsList = [NSApp orderedWindows];
if ([windowsList count]) {
@@ -1407,7 +1412,8 @@ GHOST_TSuccess GHOST_SystemCocoa::handleTabletEvent(void *eventPtr, short eventT
ct.Active = GHOST_kTabletModeNone;
break;
}
- } else {
+ }
+ else {
// pointer is leaving - return to mouse
ct.Active = GHOST_kTabletModeNone;
}
@@ -1442,7 +1448,7 @@ bool GHOST_SystemCocoa::handleTabletEvent(void *eventPtr)
GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
{
NSEvent *event = (NSEvent *)eventPtr;
- GHOST_WindowCocoa* window;
+ GHOST_WindowCocoa* window;
window = (GHOST_WindowCocoa*)m_windowManager->getWindowAssociatedWithOSWindow((void*)[event window]);
if (!window) {
@@ -1450,8 +1456,7 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
return GHOST_kFailure;
}
- switch ([event type])
- {
+ switch ([event type]) {
case NSLeftMouseDown:
case NSRightMouseDown:
case NSOtherMouseDown:
@@ -1459,7 +1464,7 @@ GHOST_TSuccess GHOST_SystemCocoa::handleMouseEvent(void *eventPtr)
//Handle tablet events combined with mouse events
handleTabletEvent(event);
break;
-
+
case NSLeftMouseUp:
case NSRightMouseUp:
case NSOtherMouseUp:
@@ -1662,17 +1667,19 @@ GHOST_TSuccess GHOST_SystemCocoa::handleKeyEvent(void *eventPtr)
case NSKeyDown:
case NSKeyUp:
charsIgnoringModifiers = [event charactersIgnoringModifiers];
- if ([charsIgnoringModifiers length]>0)
+ if ([charsIgnoringModifiers length] > 0) {
keyCode = convertKey([event keyCode],
[charsIgnoringModifiers characterAtIndex:0],
[event type] == NSKeyDown?kUCKeyActionDown:kUCKeyActionUp);
- else
+ }
+ else {
keyCode = convertKey([event keyCode],0,
[event type] == NSKeyDown?kUCKeyActionDown:kUCKeyActionUp);
+ }
/* handling both unicode or ascii */
characters = [event characters];
- if ([characters length]>0) {
+ if ([characters length] > 0) {
convertedCharacters = [characters dataUsingEncoding:NSUTF8StringEncoding];
for (int x = 0; x < [convertedCharacters length]; x++) {
@@ -1695,7 +1702,8 @@ GHOST_TSuccess GHOST_SystemCocoa::handleKeyEvent(void *eventPtr)
if ([event type] == NSKeyDown) {
pushEvent( new GHOST_EventKey([event timestamp]*1000, GHOST_kEventKeyDown, window, keyCode, ascii, utf8_buf) );
//printf("Key down rawCode=0x%x charsIgnoringModifiers=%c keyCode=%u ascii=%i %c utf8=%s\n",[event keyCode],[charsIgnoringModifiers length]>0?[charsIgnoringModifiers characterAtIndex:0]:' ',keyCode,ascii,ascii, utf8_buf);
- } else {
+ }
+ else {
pushEvent( new GHOST_EventKey([event timestamp]*1000, GHOST_kEventKeyUp, window, keyCode, 0, '\0') );
//printf("Key up rawCode=0x%x charsIgnoringModifiers=%c keyCode=%u ascii=%i %c utf8=%s\n",[event keyCode],[charsIgnoringModifiers length]>0?[charsIgnoringModifiers characterAtIndex:0]:' ',keyCode,ascii,ascii, utf8_buf);
}
@@ -1781,7 +1789,8 @@ GHOST_TUns8* GHOST_SystemCocoa::getClipboard(bool selection) const
if(temp_buff) {
return temp_buff;
- } else {
+ }
+ else {
return NULL;
}
}
diff --git a/intern/ghost/intern/GHOST_SystemPaths.h b/intern/ghost/intern/GHOST_SystemPaths.h
index fe0fae71955..22879c71e1e 100644
--- a/intern/ghost/intern/GHOST_SystemPaths.h
+++ b/intern/ghost/intern/GHOST_SystemPaths.h
@@ -40,33 +40,33 @@ protected:
* Constructor.
* Protected default constructor to force use of static createSystem member.
*/
- GHOST_SystemPaths() {};
+ GHOST_SystemPaths() {}
/**
* Destructor.
* Protected default constructor to force use of static dispose member.
*/
- virtual ~GHOST_SystemPaths() {};
+ virtual ~GHOST_SystemPaths() {}
public:
/**
* Determine the base dir in which shared resources are located. It will first try to use
* "unpack and run" path, then look for properly installed path, including versioning.
- * @return Unsigned char string pointing to system dir (eg /usr/share/blender/).
+ * \return Unsigned char string pointing to system dir (eg /usr/share/blender/).
*/
virtual const GHOST_TUns8 *getSystemDir(int version, const char *versionstr) const = 0;
/**
* Determine the base dir in which user configuration is stored, including versioning.
* If needed, it will create the base directory.
- * @return Unsigned char string pointing to user dir (eg ~/.blender/).
+ * \return Unsigned char string pointing to user dir (eg ~/.blender/).
*/
virtual const GHOST_TUns8 *getUserDir(int version, const char *versionstr) const = 0;
/**
* Determine the directory of the current binary
- * @return Unsigned char string pointing to the binary dir
+ * \return Unsigned char string pointing to the binary dir
*/
virtual const GHOST_TUns8 *getBinaryDir() const = 0;
diff --git a/intern/ghost/intern/GHOST_SystemPathsCarbon.h b/intern/ghost/intern/GHOST_SystemPathsCarbon.h
index 6a94c1d6606..9d9a3a22564 100644
--- a/intern/ghost/intern/GHOST_SystemPathsCarbon.h
+++ b/intern/ghost/intern/GHOST_SystemPathsCarbon.h
@@ -42,9 +42,9 @@
/**
* OSX/Carbon Implementation of GHOST_SystemPaths class.
- * @see GHOST_System.
- * @author Andrea Weikert
- * @date Aug 1, 2010
+ * \see GHOST_System.
+ * \author Andrea Weikert
+ * \date Aug 1, 2010
*/
class GHOST_SystemPathsCarbon : public GHOST_SystemPaths {
public:
@@ -61,20 +61,20 @@ public:
/**
* Determine the base dir in which shared resources are located. It will first try to use
* "unpack and run" path, then look for properly installed path, including versioning.
- * @return Unsigned char string pointing to system dir (eg /usr/share/blender/).
+ * \return Unsigned char string pointing to system dir (eg /usr/share/blender/).
*/
virtual const GHOST_TUns8 *getSystemDir(int version, const char *versionstr) const;
/**
* Determine the base dir in which user configuration is stored, including versioning.
* If needed, it will create the base directory.
- * @return Unsigned char string pointing to user dir (eg ~/.blender/).
+ * \return Unsigned char string pointing to user dir (eg ~/.blender/).
*/
virtual const GHOST_TUns8 *getUserDir(int version, const char *versionstr) const;
/**
* Determine the directory of the current binary
- * @return Unsigned char string pointing to the binary dir
+ * \return Unsigned char string pointing to the binary dir
*/
virtual const GHOST_TUns8 *getBinaryDir() const;
diff --git a/intern/ghost/intern/GHOST_SystemPathsCocoa.h b/intern/ghost/intern/GHOST_SystemPathsCocoa.h
index ad44396c3ff..cd8d161ff9c 100644
--- a/intern/ghost/intern/GHOST_SystemPathsCocoa.h
+++ b/intern/ghost/intern/GHOST_SystemPathsCocoa.h
@@ -55,20 +55,20 @@ public:
/**
* Determine the base dir in which shared resources are located. It will first try to use
* "unpack and run" path, then look for properly installed path, including versioning.
- * @return Unsigned char string pointing to system dir (eg /usr/share/blender/).
+ * \return Unsigned char string pointing to system dir (eg /usr/share/blender/).
*/
virtual const GHOST_TUns8 *getSystemDir(int version, const char *versionstr) const;
/**
* Determine the base dir in which user configuration is stored, including versioning.
* If needed, it will create the base directory.
- * @return Unsigned char string pointing to user dir (eg ~/.blender/).
+ * \return Unsigned char string pointing to user dir (eg ~/.blender/).
*/
virtual const GHOST_TUns8 *getUserDir(int version, const char *versionstr) const;
/**
* Determine the directory of the current binary
- * @return Unsigned char string pointing to the binary dir
+ * \return Unsigned char string pointing to the binary dir
*/
virtual const GHOST_TUns8 *getBinaryDir() const;
diff --git a/intern/ghost/intern/GHOST_SystemPathsWin32.h b/intern/ghost/intern/GHOST_SystemPathsWin32.h
index 3a243f8be16..c074a7902b8 100644
--- a/intern/ghost/intern/GHOST_SystemPathsWin32.h
+++ b/intern/ghost/intern/GHOST_SystemPathsWin32.h
@@ -46,9 +46,9 @@
/**
* WIN32 Implementation of GHOST_SystemPaths class.
- * @see GHOST_SystemPaths.
- * @author Andrea Weikert
- * @date August 1, 2010
+ * \see GHOST_SystemPaths.
+ * \author Andrea Weikert
+ * \date August 1, 2010
*/
class GHOST_SystemPathsWin32 : public GHOST_SystemPaths {
public:
@@ -65,20 +65,20 @@ public:
/**
* Determine the base dir in which shared resources are located. It will first try to use
* "unpack and run" path, then look for properly installed path, including versioning.
- * @return Unsigned char string pointing to system dir (eg /usr/share/).
+ * \return Unsigned char string pointing to system dir (eg /usr/share/).
*/
const GHOST_TUns8 *getSystemDir(int version, const char *versionstr) const;
/**
* Determine the base dir in which user configuration is stored, including versioning.
* If needed, it will create the base directory.
- * @return Unsigned char string pointing to user dir (eg ~/).
+ * \return Unsigned char string pointing to user dir (eg ~/).
*/
const GHOST_TUns8 *getUserDir(int version, const char *versionstr) const;
/**
* Determine the directory of the current binary
- * @return Unsigned char string pointing to the binary dir
+ * \return Unsigned char string pointing to the binary dir
*/
const GHOST_TUns8 *getBinaryDir() const;
diff --git a/intern/ghost/intern/GHOST_SystemPathsX11.cpp b/intern/ghost/intern/GHOST_SystemPathsX11.cpp
index 83f7e87977c..35bebd588c3 100644
--- a/intern/ghost/intern/GHOST_SystemPathsX11.cpp
+++ b/intern/ghost/intern/GHOST_SystemPathsX11.cpp
@@ -38,11 +38,11 @@
#include <sys/time.h>
#include <unistd.h>
-#include <stdio.h> // for fprintf only
-#include <cstdlib> // for exit
+#include <stdio.h> /* for fprintf only */
+#include <cstdlib> /* for exit */
-#include <pwd.h> // for get home without use getenv()
-#include <limits.h> // for PATH_MAX
+#include <pwd.h> /* for get home without use getenv() */
+#include <limits.h> /* for PATH_MAX */
#ifdef PREFIX
static const char *static_path = PREFIX "/share";
diff --git a/intern/ghost/intern/GHOST_SystemPathsX11.h b/intern/ghost/intern/GHOST_SystemPathsX11.h
index db6d5a6c6ea..1b5710e0f57 100644
--- a/intern/ghost/intern/GHOST_SystemPathsX11.h
+++ b/intern/ghost/intern/GHOST_SystemPathsX11.h
@@ -53,20 +53,20 @@ public:
/**
* Determine the base dir in which shared resources are located. It will first try to use
* "unpack and run" path, then look for properly installed path, including versioning.
- * @return Unsigned char string pointing to system dir (eg /usr/share/blender/).
+ * \return Unsigned char string pointing to system dir (eg /usr/share/blender/).
*/
const GHOST_TUns8 *getSystemDir(int version, const char *versionstr) const;
/**
* Determine the base dir in which user configuration is stored, including versioning.
* If needed, it will create the base directory.
- * @return Unsigned char string pointing to user dir (eg ~/.blender/).
+ * \return Unsigned char string pointing to user dir (eg ~/.blender/).
*/
const GHOST_TUns8 *getUserDir(int version, const char *versionstr) const;
/**
* Determine the directory of the current binary
- * @return Unsigned char string pointing to the binary dir
+ * \return Unsigned char string pointing to the binary dir
*/
const GHOST_TUns8 *getBinaryDir() const;
diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp
index 6c201c24c3d..52ebaf02404 100644
--- a/intern/ghost/intern/GHOST_SystemWin32.cpp
+++ b/intern/ghost/intern/GHOST_SystemWin32.cpp
@@ -724,7 +724,7 @@ GHOST_EventKey *GHOST_SystemWin32::processKeyEvent(GHOST_IWindow *window, RAWINP
int r;
GetKeyboardState((PBYTE)state);
- if (r = ToUnicodeEx(vk, 0, state, utf16, 2, 0, system->m_keylayout)) {
+ if ((r = ToUnicodeEx(vk, 0, state, utf16, 2, 0, system->m_keylayout))) {
if ((r > 0 && r < 3)) {
utf16[r] = 0;
conv_utf_16_to_8(utf16, utf8_char, 6);
diff --git a/intern/ghost/intern/GHOST_SystemWin32.h b/intern/ghost/intern/GHOST_SystemWin32.h
index f63ad38d0cc..6a756d35872 100644
--- a/intern/ghost/intern/GHOST_SystemWin32.h
+++ b/intern/ghost/intern/GHOST_SystemWin32.h
@@ -57,9 +57,9 @@ class GHOST_EventDragnDrop;
/**
* WIN32 Implementation of GHOST_System class.
- * @see GHOST_System.
- * @author Maarten Gribnau
- * @date May 10, 2001
+ * \see GHOST_System.
+ * \author Maarten Gribnau
+ * \date May 10, 2001
*/
class GHOST_SystemWin32 : public GHOST_System {
public:
@@ -81,7 +81,7 @@ public:
* Returns the system time.
* Returns the number of milliseconds since the start of the system process.
* This overloaded method uses the high frequency timer if available.
- * @return The number of milliseconds.
+ * \return The number of milliseconds.
*/
virtual GHOST_TUns64 getMilliSeconds() const;
@@ -91,13 +91,13 @@ public:
/**
* Returns the number of displays on this system.
- * @return The number of displays.
+ * \return The number of displays.
*/
virtual GHOST_TUns8 getNumDisplays() const;
/**
* Returns the dimensions of the main display on this system.
- * @return The dimension of the main display.
+ * \return The dimension of the main display.
*/
virtual void getMainDisplayDimensions(GHOST_TUns32& width, GHOST_TUns32& height) const;
@@ -105,17 +105,17 @@ public:
* Create a new window.
* The new window is added to the list of windows managed.
* Never explicitly delete the window, use disposeWindow() instead.
- * @param title The name of the window (displayed in the title bar of the window if the OS supports it).
- * @param left The coordinate of the left edge of the window.
- * @param top The coordinate of the top edge of the window.
- * @param width The width the window.
- * @param height The height the window.
- * @param state The state of the window when opened.
- * @param type The type of drawing context installed in this window.
- * @param stereoVisual Stereo visual for quad buffered stereo.
- * @param numOfAASamples Number of samples used for AA (zero if no AA)
- * @param parentWindow Parent (embedder) window
- * @return The new window (or 0 if creation failed).
+ * \param title The name of the window (displayed in the title bar of the window if the OS supports it).
+ * \param left The coordinate of the left edge of the window.
+ * \param top The coordinate of the top edge of the window.
+ * \param width The width the window.
+ * \param height The height the window.
+ * \param state The state of the window when opened.
+ * \param type The type of drawing context installed in this window.
+ * \param stereoVisual Stereo visual for quad buffered stereo.
+ * \param numOfAASamples Number of samples used for AA (zero if no AA)
+ * \param parentWindow Parent (embedder) window
+ * \return The new window (or 0 if creation failed).
*/
virtual GHOST_IWindow *createWindow(
const STR_String& title,
@@ -131,8 +131,8 @@ public:
/**
* Gets events from the system and stores them in the queue.
- * @param waitForEvent Flag to wait for an event (or return immediately).
- * @return Indication of the presence of events.
+ * \param waitForEvent Flag to wait for an event (or return immediately).
+ * \return Indication of the presence of events.
*/
virtual bool processEvents(bool waitForEvent);
@@ -143,17 +143,17 @@ public:
/**
* Returns the current location of the cursor (location in screen coordinates)
- * @param x The x-coordinate of the cursor.
- * @param y The y-coordinate of the cursor.
- * @return Indication of success.
+ * \param x The x-coordinate of the cursor.
+ * \param y The y-coordinate of the cursor.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getCursorPosition(GHOST_TInt32& x, GHOST_TInt32& y) const;
/**
* Updates the location of the cursor (location in screen coordinates).
- * @param x The x-coordinate of the cursor.
- * @param y The y-coordinate of the cursor.
- * @return Indication of success.
+ * \param x The x-coordinate of the cursor.
+ * \param y The y-coordinate of the cursor.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCursorPosition(GHOST_TInt32 x, GHOST_TInt32 y);
@@ -163,41 +163,41 @@ public:
/**
* Returns the state of all modifier keys.
- * @param keys The state of all modifier keys (true == pressed).
- * @return Indication of success.
+ * \param keys The state of all modifier keys (true == pressed).
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getModifierKeys(GHOST_ModifierKeys& keys) const;
/**
* Returns the state of the mouse buttons (ouside the message queue).
- * @param buttons The state of the buttons.
- * @return Indication of success.
+ * \param buttons The state of the buttons.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess getButtons(GHOST_Buttons& buttons) const;
/**
* Returns unsinged char from CUT_BUFFER0
- * @param selection Used by X11 only
- * @return Returns the Clipboard
+ * \param selection Used by X11 only
+ * \return Returns the Clipboard
*/
virtual GHOST_TUns8 *getClipboard(bool selection) const;
/**
* Puts buffer to system clipboard
- * @param selection Used by X11 only
- * @return No return
+ * \param selection Used by X11 only
+ * \return No return
*/
virtual void putClipboard(GHOST_TInt8 *buffer, bool selection) const;
/**
* Creates a drag'n'drop event and pushes it immediately onto the event queue.
* Called by GHOST_DropTargetWin32 class.
- * @param eventType The type of drag'n'drop event
- * @param draggedObjectType The type object concerned (currently array of file names, string, ?bitmap)
- * @param mouseX x mouse coordinate (in window coordinates)
- * @param mouseY y mouse coordinate
- * @param window The window on which the event occurred
- * @return Indication whether the event was handled.
+ * \param eventType The type of drag'n'drop event
+ * \param draggedObjectType The type object concerned (currently array of file names, string, ?bitmap)
+ * \param mouseX x mouse coordinate (in window coordinates)
+ * \param mouseY y mouse coordinate
+ * \param window The window on which the event occurred
+ * \return Indication whether the event was handled.
*/
static GHOST_TSuccess pushDragDropEvent(GHOST_TEventType eventType, GHOST_TDragnDropTypes draggedObjectType, GHOST_IWindow *window, int mouseX, int mouseY, void *data);
@@ -211,33 +211,33 @@ protected:
/**
* Initializes the system.
* For now, it justs registers the window class (WNDCLASS).
- * @return A success value.
+ * \return A success value.
*/
virtual GHOST_TSuccess init();
/**
* Closes the system down.
- * @return A success value.
+ * \return A success value.
*/
virtual GHOST_TSuccess exit();
/**
* Converts raw WIN32 key codes from the wndproc to GHOST keys.
- * @param window-> The window for this handling
- * @param vKey The virtual key from hardKey
- * @param ScanCode The ScanCode of pressed key (simular to PS/2 Set 1)
- * @param extend Flag if key is not primerly (left or right)
- * @return The GHOST key (GHOST_kKeyUnknown if no match).
+ * \param window-> The window for this handling
+ * \param vKey The virtual key from hardKey
+ * \param ScanCode The ScanCode of pressed key (simular to PS/2 Set 1)
+ * \param extend Flag if key is not primerly (left or right)
+ * \return The GHOST key (GHOST_kKeyUnknown if no match).
*/
virtual GHOST_TKey convertKey(GHOST_IWindow *window, short vKey, short ScanCode, short extend) const;
/**
* Catches raw WIN32 key codes from WM_INPUT in the wndproc.
- * @param window The window for this handling
- * @param raw RawInput structure with detailed info about the key event
- * @param keyDown Pointer flag that specify if a key is down
- * @param vk Pointer to virtual key
- * @return The GHOST key (GHOST_kKeyUnknown if no match).
+ * \param window The window for this handling
+ * \param raw RawInput structure with detailed info about the key event
+ * \param keyDown Pointer flag that specify if a key is down
+ * \param vk Pointer to virtual key
+ * \return The GHOST key (GHOST_kKeyUnknown if no match).
*/
virtual GHOST_TKey hardKey(GHOST_IWindow *window, RAWINPUT const& raw, int *keyDown, char *vk);
@@ -246,32 +246,32 @@ protected:
* With the modifier keys, we want to distinguish left and right keys.
* Sometimes this is not possible (Windows ME for instance). Then, we want
* events generated for both keys.
- * @param window The window receiving the event (the active window).
+ * \param window The window receiving the event (the active window).
*/
GHOST_EventKey *processModifierKeys(GHOST_IWindow *window);
/**
* Creates mouse button event.
- * @param type The type of event to create.
- * @param window The window receiving the event (the active window).
- * @param mask The button mask of this event.
- * @return The event created.
+ * \param type The type of event to create.
+ * \param window The window receiving the event (the active window).
+ * \param mask The button mask of this event.
+ * \return The event created.
*/
static GHOST_EventButton *processButtonEvent(GHOST_TEventType type, GHOST_IWindow *window, GHOST_TButtonMask mask);
/**
* Creates cursor event.
- * @param type The type of event to create.
- * @param window The window receiving the event (the active window).
- * @return The event created.
+ * \param type The type of event to create.
+ * \param window The window receiving the event (the active window).
+ * \return The event created.
*/
static GHOST_EventCursor *processCursorEvent(GHOST_TEventType type, GHOST_IWindow *Iwindow);
/**
* Creates a mouse wheel event.
- * @param window The window receiving the event (the active window).
- * @param wParam The wParam from the wndproc
- * @param lParam The lParam from the wndproc
+ * \param window The window receiving the event (the active window).
+ * \param wParam The wParam from the wndproc
+ * \param lParam The lParam from the wndproc
*/
static GHOST_EventWheel *processWheelEvent(GHOST_IWindow *window, WPARAM wParam, LPARAM lParam);
@@ -279,31 +279,31 @@ protected:
* Creates a key event and updates the key data stored locally (m_modifierKeys).
* In most cases this is a straightforward conversion of key codes.
* For the modifier keys however, we want to distinguish left and right keys.
- * @param window The window receiving the event (the active window).
- * @param raw RawInput structure with detailed info about the key event
+ * \param window The window receiving the event (the active window).
+ * \param raw RawInput structure with detailed info about the key event
*/
static GHOST_EventKey *processKeyEvent(GHOST_IWindow *window, RAWINPUT const& raw);
/**
* Process special keys (VK_OEM_*), to see if current key layout
* gives us anything special, like ! on french AZERTY.
- * @param window The window receiving the event (the active window).
- * @param vKey The virtual key from hardKey
- * @param ScanCode The ScanCode of pressed key (simular to PS/2 Set 1)
+ * \param window The window receiving the event (the active window).
+ * \param vKey The virtual key from hardKey
+ * \param ScanCode The ScanCode of pressed key (simular to PS/2 Set 1)
*/
virtual GHOST_TKey processSpecialKey(GHOST_IWindow *window, short vKey, short scanCode) const;
/**
* Creates a window event.
- * @param type The type of event to create.
- * @param window The window receiving the event (the active window).
- * @return The event created.
+ * \param type The type of event to create.
+ * \param window The window receiving the event (the active window).
+ * \return The event created.
*/
static GHOST_Event *processWindowEvent(GHOST_TEventType type, GHOST_IWindow *window);
/**
* Handles minimum window size.
- * @param minmax The MINMAXINFO structure.
+ * \param minmax The MINMAXINFO structure.
*/
static void processMinMaxInfo(MINMAXINFO *minmax);
@@ -312,22 +312,22 @@ protected:
* Handles Motion and Button events from a SpaceNavigator or related device.
* Instead of returning an event object, this function communicates directly
* with the GHOST_NDOFManager.
- * @param raw RawInput structure with detailed info about the NDOF event
- * @return Whether an event was generated and sent.
+ * \param raw RawInput structure with detailed info about the NDOF event
+ * \return Whether an event was generated and sent.
*/
bool processNDOF(RAWINPUT const& raw);
#endif
/**
* Returns the local state of the modifier keys (from the message queue).
- * @param keys The state of the keys.
+ * \param keys The state of the keys.
*/
inline virtual void retrieveModifierKeys(GHOST_ModifierKeys& keys) const;
/**
* Stores the state of the modifier keys locally.
* For internal use only!
- * @param keys The new state of the modifier keys.
+ * param keys The new state of the modifier keys.
*/
inline virtual void storeModifierKeys(const GHOST_ModifierKeys& keys);
@@ -343,12 +343,13 @@ protected:
/**
* Toggles console
- * @action 0 - Hides
- * 1 - Shows
- * 2 - Toggles
- * 3 - Hides if it runs not from command line
- * * - Does nothing
- * @return current status (1 -visible, 0 - hidden)
+ * \param action
+ * - 0 - Hides
+ * - 1 - Shows
+ * - 2 - Toggles
+ * - 3 - Hides if it runs not from command line
+ * - * - Does nothing
+ * \return current status (1 -visible, 0 - hidden)
*/
int toggleConsole(int action);
diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp
index 2d8f5e7890c..232bea6749b 100644
--- a/intern/ghost/intern/GHOST_SystemX11.cpp
+++ b/intern/ghost/intern/GHOST_SystemX11.cpp
@@ -32,7 +32,6 @@
* \ingroup GHOST
*/
-
#include "GHOST_SystemX11.h"
#include "GHOST_WindowX11.h"
#include "GHOST_WindowManager.h"
@@ -44,11 +43,11 @@
#include "GHOST_DisplayManagerX11.h"
#include "GHOST_EventDragnDrop.h"
#ifdef WITH_INPUT_NDOF
-#include "GHOST_NDOFManagerX11.h"
+# include "GHOST_NDOFManagerX11.h"
#endif
#ifdef WITH_XDND
-#include "GHOST_DropTargetX11.h"
+# include "GHOST_DropTargetX11.h"
#endif
#include "GHOST_Debug.h"
@@ -61,20 +60,19 @@
#include <X11/XF86keysym.h>
#endif
-// For timing
-
+/* For timing */
#include <sys/time.h>
#include <unistd.h>
#include <iostream>
#include <vector>
-#include <stdio.h> // for fprintf only
-#include <cstdlib> // for exit
+#include <stdio.h> /* for fprintf only */
+#include <cstdlib> /* for exit */
static GHOST_TKey
convertXKey(KeySym key);
-//these are for copy and select copy
+/* these are for copy and select copy */
static char *txt_cut_buffer = NULL;
static char *txt_select_buffer = NULL;
@@ -90,12 +88,15 @@ GHOST_SystemX11(
if (!m_display) {
std::cerr << "Unable to open a display" << std::endl;
- abort(); //was return before, but this would just mean it will crash later
+ abort(); /* was return before, but this would just mean it will crash later */
}
- /* Open a connection to the X input manager */
#if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
- m_xim = XOpenIM(m_display, NULL, (char *)GHOST_X11_RES_NAME, (char *)GHOST_X11_RES_CLASS);
+ /* note -- don't open connection to XIM server here, because the locale
+ * has to be set before opening the connection but setlocale() has not
+ * been called yet. the connection will be opened after entering
+ * the event loop. */
+ m_xim = NULL;
#endif
m_delete_window_atom
@@ -125,13 +126,13 @@ GHOST_SystemX11(
m_last_warp = 0;
- // compute the initial time
+ /* compute the initial time */
timeval tv;
if (gettimeofday(&tv, NULL) == -1) {
GHOST_ASSERT(false, "Could not instantiate timer!");
}
- // Taking care not to overflow the tv.tv_sec*1000
+ /* Taking care not to overflow the tv.tv_sec*1000 */
m_start_time = GHOST_TUns64(tv.tv_sec) * 1000 + tv.tv_usec / 1000;
@@ -151,7 +152,9 @@ GHOST_SystemX11::
~GHOST_SystemX11()
{
#if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
- XCloseIM(m_xim);
+ if (m_xim) {
+ XCloseIM(m_xim);
+ }
#endif
XCloseDisplay(m_display);
@@ -187,7 +190,7 @@ getMilliSeconds() const
GHOST_ASSERT(false, "Could not compute time!");
}
- // Taking care not to overflow the tv.tv_sec*1000
+ /* Taking care not to overflow the tv.tv_sec*1000 */
return GHOST_TUns64(tv.tv_sec) * 1000 + tv.tv_usec / 1000 - m_start_time;
}
@@ -200,7 +203,7 @@ getNumDisplays() const
/**
* Returns the dimensions of the main display on this system.
- * @return The dimension of the main display.
+ * \return The dimension of the main display.
*/
void
GHOST_SystemX11::
@@ -218,17 +221,17 @@ getMainDisplayDimensions(
* Create a new window.
* The new window is added to the list of windows managed.
* Never explicitly delete the window, use disposeWindow() instead.
- * @param title The name of the window (displayed in the title bar of the window if the OS supports it).
- * @param left The coordinate of the left edge of the window.
- * @param top The coordinate of the top edge of the window.
- * @param width The width the window.
- * @param height The height the window.
- * @param state The state of the window when opened.
- * @param type The type of drawing context installed in this window.
- * @param stereoVisual Stereo visual for quad buffered stereo.
- * @param numOfAASamples Number of samples used for AA (zero if no AA)
- * @param parentWindow Parent (embedder) window
- * @return The new window (or 0 if creation failed).
+ * \param title The name of the window (displayed in the title bar of the window if the OS supports it).
+ * \param left The coordinate of the left edge of the window.
+ * \param top The coordinate of the top edge of the window.
+ * \param width The width the window.
+ * \param height The height the window.
+ * \param state The state of the window when opened.
+ * \param type The type of drawing context installed in this window.
+ * \param stereoVisual Stereo visual for quad buffered stereo.
+ * \param numOfAASamples Number of samples used for AA (zero if no AA)
+ * \param parentWindow Parent (embedder) window
+ * \return The new window (or 0 if creation failed).
*/
GHOST_IWindow *
GHOST_SystemX11::
@@ -251,16 +254,16 @@ createWindow(
- window = new GHOST_WindowX11(
- this, m_display, title, left, top, width, height, state, parentWindow, type, stereoVisual
- );
+ window = new GHOST_WindowX11(this, m_display, title,
+ left, top, width, height,
+ state, parentWindow, type, stereoVisual);
if (window) {
- // Both are now handle in GHOST_WindowX11.cpp
- // Focus and Delete atoms.
+ /* Both are now handle in GHOST_WindowX11.cpp
+ * Focus and Delete atoms. */
if (window->getValid()) {
- // Store the pointer to the window
+ /* Store the pointer to the window */
m_windowManager->addWindow(window);
m_windowManager->setActiveWindow(window);
pushEvent(new GHOST_Event(getMilliSeconds(), GHOST_kEventWindowSize, window) );
@@ -273,6 +276,35 @@ createWindow(
return window;
}
+#if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
+static void destroyIMCallback(XIM xim, XPointer ptr, XPointer data)
+{
+ GHOST_PRINT("XIM server died\n");
+
+ if (ptr)
+ *(XIM *)ptr = NULL;
+}
+
+bool GHOST_SystemX11::openX11_IM()
+{
+ if (!m_display)
+ return false;
+
+ /* set locale modifiers such as "@im=ibus" specified by XMODIFIERS */
+ XSetLocaleModifiers("");
+
+ m_xim = XOpenIM(m_display, NULL, (char *)GHOST_X11_RES_NAME, (char *)GHOST_X11_RES_CLASS);
+ if (!m_xim)
+ return false;
+
+ XIMCallback destroy;
+ destroy.callback = (XIMProc)destroyIMCallback;
+ destroy.client_data = (XPointer)&m_xim;
+ XSetIMValues(m_xim, XNDestroyCallback, &destroy, NULL);
+ return true;
+}
+#endif
+
GHOST_WindowX11 *
GHOST_SystemX11::
findGhostWindow(
@@ -281,10 +313,10 @@ findGhostWindow(
if (xwind == 0) return NULL;
- // It is not entirely safe to do this as the backptr may point
- // to a window that has recently been removed.
- // We should always check the window manager's list of windows
- // and only process events on these windows.
+ /* It is not entirely safe to do this as the backptr may point
+ * to a window that has recently been removed.
+ * We should always check the window manager's list of windows
+ * and only process events on these windows. */
vector<GHOST_IWindow *> & win_vec = m_windowManager->getWindows();
@@ -379,8 +411,8 @@ GHOST_SystemX11::
processEvents(
bool waitForEvent)
{
- // Get all the current events -- translate them into
- // ghost events and call base class pushEvent() method.
+ /* Get all the current events -- translate them into
+ * ghost events and call base class pushEvent() method. */
bool anyProcessed = false;
@@ -408,6 +440,38 @@ processEvents(
while (XPending(m_display)) {
XEvent xevent;
XNextEvent(m_display, &xevent);
+
+#if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
+ /* open connection to XIM server and create input context (XIC)
+ * when receiving the first FocusIn or KeyPress event after startup,
+ * or recover XIM and XIC when the XIM server has been restarted */
+ if (xevent.type == FocusIn || xevent.type == KeyPress) {
+ if (!m_xim && openX11_IM()) {
+ GHOST_PRINT("Connected to XIM server\n");
+ }
+
+ if (m_xim) {
+ GHOST_WindowX11 * window = findGhostWindow(xevent.xany.window);
+ if (window && !window->getX11_XIC() && window->createX11_XIC()) {
+ GHOST_PRINT("XIM input context created\n");
+ if (xevent.type == KeyPress)
+ /* we can assume the window has input focus
+ * here, because key events are received only
+ * when the window is focused. */
+ XSetICFocus(window->getX11_XIC());
+ }
+ }
+ }
+
+ /* dispatch event to XIM server */
+ if ((XFilterEvent(&xevent, (Window)NULL) == True) && (xevent.type != KeyRelease)) {
+ /* do nothing now, the event is consumed by XIM.
+ * however, KeyRelease event should be processed
+ * here, otherwise modifiers remain activated. */
+ continue;
+ }
+#endif
+
processEvent(&xevent);
anyProcessed = true;
}
@@ -455,8 +519,8 @@ GHOST_SystemX11::processEvent(XEvent *xe)
XExposeEvent & xee = xe->xexpose;
if (xee.count == 0) {
- // Only generate a single expose event
- // per read of the event queue.
+ /* Only generate a single expose event
+ * per read of the event queue. */
g_event = new
GHOST_Event(
@@ -535,7 +599,19 @@ GHOST_SystemX11::processEvent(XEvent *xe)
XKeyEvent *xke = &(xe->xkey);
KeySym key_sym = XLookupKeysym(xke, 0);
char ascii;
- char utf8_buf[6]; /* 6 is enough for a utf8 char */
+#if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
+ /* utf8_array[] is initial buffer used for Xutf8LookupString().
+ * if the length of the utf8 string exceeds this array, allocate
+ * another memory area and call Xutf8LookupString() again.
+ * the last 5 bytes are used to avoid segfault that might happen
+ * at the end of this buffer when the constructor of GHOST_EventKey
+ * reads 6 bytes regardless of the effective data length. */
+ char utf8_array[16 * 6 + 5]; /* 16 utf8 characters */
+ char *utf8_buf = utf8_array;
+ int len = 1; /* at least one null character will be stored */
+#else
+ char *utf8_buf = NULL;
+#endif
GHOST_TKey gkey = convertXKey(key_sym);
GHOST_TEventType type = (xke->type == KeyPress) ?
@@ -547,15 +623,20 @@ GHOST_SystemX11::processEvent(XEvent *xe)
#if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
/* getting unicode on key-up events gives XLookupNone status */
- if (xke->type == KeyPress) {
+ XIC xic = window->getX11_XIC();
+ if (xic && xke->type == KeyPress) {
Status status;
- int len;
/* use utf8 because its not locale depentant, from xorg docs */
- if (!(len = Xutf8LookupString(window->getX11_XIC(), xke, utf8_buf, sizeof(utf8_buf), &key_sym, &status))) {
+ if (!(len = Xutf8LookupString(xic, xke, utf8_buf, sizeof(utf8_array) - 5, &key_sym, &status))) {
utf8_buf[0] = '\0';
}
+ if (status == XBufferOverflow) {
+ utf8_buf = (char *) malloc(len + 5);
+ len = Xutf8LookupString(xic, xke, utf8_buf, len, &key_sym, &status);
+ }
+
if ((status == XLookupChars || status == XLookupBoth)) {
if ((unsigned char)utf8_buf[0] >= 32) { /* not an ascii control character */
/* do nothing for now, this is valid utf8 */
@@ -571,19 +652,16 @@ GHOST_SystemX11::processEvent(XEvent *xe)
else {
printf("Bad keycode lookup. Keysym 0x%x Status: %s\n",
(unsigned int) key_sym,
- (status == XBufferOverflow ? "BufferOverflow" :
- status == XLookupNone ? "XLookupNone" :
+ (status == XLookupNone ? "XLookupNone" :
status == XLookupKeySym ? "XLookupKeySym" :
"Unknown status"));
- printf("'%.*s' %p %p\n", len, utf8_buf, window->getX11_XIC(), m_xim);
+ printf("'%.*s' %p %p\n", len, utf8_buf, xic, m_xim);
}
}
else {
utf8_buf[0] = '\0';
}
-#else
- utf8_buf[0] = '\0';
#endif
g_event = new
@@ -595,6 +673,42 @@ GHOST_SystemX11::processEvent(XEvent *xe)
ascii,
utf8_buf
);
+
+#if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
+ /* when using IM for some languages such as Japanese,
+ * one event inserts multiple utf8 characters */
+ if (xic && xke->type == KeyPress) {
+ unsigned char c;
+ int i = 0;
+ while (1) {
+ /* search character boundary */
+ if ((unsigned char)utf8_buf[i++] > 0x7f) {
+ for (; i < len; ++i) {
+ c = utf8_buf[i];
+ if (c < 0x80 || c > 0xbf) break;
+ }
+ }
+
+ if (i >= len) break;
+
+ /* enqueue previous character */
+ pushEvent(g_event);
+
+ g_event = new
+ GHOST_EventKey(
+ getMilliSeconds(),
+ type,
+ window,
+ gkey,
+ '\0',
+ &utf8_buf[i]
+ );
+ }
+ }
+
+ if (utf8_buf != utf8_array)
+ free(utf8_buf);
+#endif
break;
}
@@ -647,7 +761,7 @@ GHOST_SystemX11::processEvent(XEvent *xe)
break;
}
- // change of size, border, layer etc.
+ /* change of size, border, layer etc. */
case ConfigureNotify:
{
/* XConfigureEvent & xce = xe->xconfigure; */
@@ -666,15 +780,24 @@ GHOST_SystemX11::processEvent(XEvent *xe)
{
XFocusChangeEvent &xfe = xe->xfocus;
- // TODO: make sure this is the correct place for activate/deactivate
+ /* TODO: make sure this is the correct place for activate/deactivate */
// printf("X: focus %s for window %d\n", xfe.type == FocusIn ? "in" : "out", (int) xfe.window);
- // May have to look at the type of event and filter some
- // out.
-
+ /* May have to look at the type of event and filter some out. */
+
GHOST_TEventType gtype = (xfe.type == FocusIn) ?
GHOST_kEventWindowActivate : GHOST_kEventWindowDeactivate;
+#if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
+ XIC xic = window->getX11_XIC();
+ if (xic) {
+ if (xe->type == FocusIn)
+ XSetICFocus(xic);
+ else
+ XUnsetICFocus(xic);
+ }
+#endif
+
g_event = new
GHOST_Event(
getMilliSeconds(),
@@ -736,7 +859,7 @@ GHOST_SystemX11::processEvent(XEvent *xe)
case DestroyNotify:
::exit(-1);
- // We're not interested in the following things.(yet...)
+ /* We're not interested in the following things.(yet...) */
case NoExpose:
case GraphicsExpose:
break;
@@ -821,8 +944,12 @@ GHOST_SystemX11::processEvent(XEvent *xe)
nxe.xselection.target = xse->target;
nxe.xselection.time = xse->time;
- /*Check to see if the requestor is asking for String*/
- if (xse->target == utf8_string || xse->target == string || xse->target == compound_text || xse->target == c_string) {
+ /* Check to see if the requestor is asking for String */
+ if (xse->target == utf8_string ||
+ xse->target == string ||
+ xse->target == compound_text ||
+ xse->target == c_string)
+ {
if (xse->selection == XInternAtom(m_display, "PRIMARY", False)) {
XChangeProperty(m_display, xse->requestor, xse->property, xse->target, 8, PropModeReplace,
(unsigned char *)txt_select_buffer, strlen(txt_select_buffer));
@@ -844,11 +971,11 @@ GHOST_SystemX11::processEvent(XEvent *xe)
XFlush(m_display);
}
else {
- //Change property to None because we do not support anything but STRING
+ /* Change property to None because we do not support anything but STRING */
nxe.xselection.property = None;
}
- //Send the event to the client 0 0 == False, SelectionNotify
+ /* Send the event to the client 0 0 == False, SelectionNotify */
XSendEvent(m_display, xse->requestor, 0, 0, &nxe);
XFlush(m_display);
break;
@@ -856,8 +983,7 @@ GHOST_SystemX11::processEvent(XEvent *xe)
default: {
#ifdef WITH_X11_XINPUT
- if (xe->type == window->GetXTablet().MotionEvent)
- {
+ if (xe->type == window->GetXTablet().MotionEvent) {
XDeviceMotionEvent *data = (XDeviceMotionEvent *)xe;
/* stroke might begin without leading ProxyIn event,
@@ -866,23 +992,23 @@ GHOST_SystemX11::processEvent(XEvent *xe)
setTabletMode(window, data->deviceid);
window->GetXTablet().CommonData.Pressure =
- data->axis_data[2] / ((float)window->GetXTablet().PressureLevels);
-
+ data->axis_data[2] / ((float)window->GetXTablet().PressureLevels);
+
/* the (short) cast and the &0xffff is bizarre and unexplained anywhere,
* but I got garbage data without it. Found it in the xidump.c source --matt */
window->GetXTablet().CommonData.Xtilt =
- (short)(data->axis_data[3] & 0xffff) / ((float)window->GetXTablet().XtiltLevels);
+ (short)(data->axis_data[3] & 0xffff) / ((float)window->GetXTablet().XtiltLevels);
window->GetXTablet().CommonData.Ytilt =
- (short)(data->axis_data[4] & 0xffff) / ((float)window->GetXTablet().YtiltLevels);
+ (short)(data->axis_data[4] & 0xffff) / ((float)window->GetXTablet().YtiltLevels);
}
- else if (xe->type == window->GetXTablet().ProxInEvent)
- {
+ else if (xe->type == window->GetXTablet().ProxInEvent) {
XProximityNotifyEvent *data = (XProximityNotifyEvent *)xe;
setTabletMode(window, data->deviceid);
}
- else if (xe->type == window->GetXTablet().ProxOutEvent)
+ else if (xe->type == window->GetXTablet().ProxOutEvent) {
window->GetXTablet().CommonData.Active = GHOST_kTabletModeNone;
+ }
#endif // WITH_X11_XINPUT
break;
}
@@ -899,14 +1025,14 @@ getModifierKeys(
GHOST_ModifierKeys& keys) const
{
- // analyse the masks retuned from XQueryPointer.
+ /* analyse the masks retuned from XQueryPointer. */
memset((void *)m_keyboard_vector, 0, sizeof(m_keyboard_vector));
XQueryKeymap(m_display, (char *)m_keyboard_vector);
- // now translate key symobols into keycodes and
- // test with vector.
+ /* now translate key symobols into keycodes and
+ * test with vector. */
const static KeyCode shift_l = XKeysymToKeycode(m_display, XK_Shift_L);
const static KeyCode shift_r = XKeysymToKeycode(m_display, XK_Shift_R);
@@ -917,16 +1043,16 @@ getModifierKeys(
const static KeyCode super_l = XKeysymToKeycode(m_display, XK_Super_L);
const static KeyCode super_r = XKeysymToKeycode(m_display, XK_Super_R);
- // shift
+ /* shift */
keys.set(GHOST_kModifierKeyLeftShift, ((m_keyboard_vector[shift_l >> 3] >> (shift_l & 7)) & 1) != 0);
keys.set(GHOST_kModifierKeyRightShift, ((m_keyboard_vector[shift_r >> 3] >> (shift_r & 7)) & 1) != 0);
- // control
+ /* control */
keys.set(GHOST_kModifierKeyLeftControl, ((m_keyboard_vector[control_l >> 3] >> (control_l & 7)) & 1) != 0);
keys.set(GHOST_kModifierKeyRightControl, ((m_keyboard_vector[control_r >> 3] >> (control_r & 7)) & 1) != 0);
- // alt
+ /* alt */
keys.set(GHOST_kModifierKeyLeftAlt, ((m_keyboard_vector[alt_l >> 3] >> (alt_l & 7)) & 1) != 0);
keys.set(GHOST_kModifierKeyRightAlt, ((m_keyboard_vector[alt_r >> 3] >> (alt_r & 7)) & 1) != 0);
- // super (windows) - only one GHOST-kModifierKeyOS, so mapping to either
+ /* super (windows) - only one GHOST-kModifierKeyOS, so mapping to either */
keys.set(GHOST_kModifierKeyOS, ( ((m_keyboard_vector[super_l >> 3] >> (super_l & 7)) & 1) ||
((m_keyboard_vector[super_r >> 3] >> (super_r & 7)) & 1) ) != 0);
@@ -999,9 +1125,9 @@ setCursorPosition(
GHOST_TInt32 y
) {
- // This is a brute force move in screen coordinates
- // XWarpPointer does relative moves so first determine the
- // current pointer position.
+ /* This is a brute force move in screen coordinates
+ * XWarpPointer does relative moves so first determine the
+ * current pointer position. */
int cx, cy;
if (getCursorPosition(cx, cy) == GHOST_kFailure) {
@@ -1212,15 +1338,15 @@ convertXKey(KeySym key)
/* from xclip.c xcout() v0.11 */
-#define XCLIB_XCOUT_NONE 0 /* no context */
+#define XCLIB_XCOUT_NONE 0 /* no context */
#define XCLIB_XCOUT_SENTCONVSEL 1 /* sent a request */
-#define XCLIB_XCOUT_INCR 2 /* in an incr loop */
+#define XCLIB_XCOUT_INCR 2 /* in an incr loop */
#define XCLIB_XCOUT_FALLBACK 3 /* STRING failed, need fallback to UTF8 */
#define XCLIB_XCOUT_FALLBACK_UTF8 4 /* UTF8 failed, move to compouned */
#define XCLIB_XCOUT_FALLBACK_COMP 5 /* compouned failed, move to text. */
#define XCLIB_XCOUT_FALLBACK_TEXT 6
-// Retrieves the contents of a selections.
+/* Retrieves the contents of a selections. */
void GHOST_SystemX11::getClipboard_xcout(XEvent evt,
Atom sel, Atom target, unsigned char **txt,
unsigned long *len, unsigned int *context) const
@@ -1237,15 +1363,15 @@ void GHOST_SystemX11::getClipboard_xcout(XEvent evt,
Window win = window->getXWindow();
switch (*context) {
- // There is no context, do an XConvertSelection()
+ /* There is no context, do an XConvertSelection() */
case XCLIB_XCOUT_NONE:
- // Initialise return length to 0
+ /* Initialise return length to 0 */
if (*len > 0) {
free(*txt);
*len = 0;
}
- // Send a selection request
+ /* Send a selection request */
XConvertSelection(m_display, sel, target, m_xclip_out, win, CurrentTime);
*context = XCLIB_XCOUT_SENTCONVSEL;
return;
@@ -1267,22 +1393,22 @@ void GHOST_SystemX11::getClipboard_xcout(XEvent evt,
return;
}
- // find the size and format of the data in property
+ /* find the size and format of the data in property */
XGetWindowProperty(m_display, win, m_xclip_out, 0, 0, False,
AnyPropertyType, &pty_type, &pty_format,
&pty_items, &pty_size, &buffer);
XFree(buffer);
if (pty_type == m_incr) {
- // start INCR mechanism by deleting property
+ /* start INCR mechanism by deleting property */
XDeleteProperty(m_display, win, m_xclip_out);
XFlush(m_display);
*context = XCLIB_XCOUT_INCR;
return;
}
- // if it's not incr, and not format == 8, then there's
- // nothing in the selection (that xclip understands, anyway)
+ /* if it's not incr, and not format == 8, then there's
+ * nothing in the selection (that xclip understands, anyway) */
if (pty_format != 8) {
*context = XCLIB_XCOUT_NONE;
@@ -1294,73 +1420,73 @@ void GHOST_SystemX11::getClipboard_xcout(XEvent evt,
False, AnyPropertyType, &pty_type,
&pty_format, &pty_items, &pty_size, &buffer);
- // finished with property, delete it
+ /* finished with property, delete it */
XDeleteProperty(m_display, win, m_xclip_out);
- // copy the buffer to the pointer for returned data
+ /* copy the buffer to the pointer for returned data */
ltxt = (unsigned char *) malloc(pty_items);
memcpy(ltxt, buffer, pty_items);
- // set the length of the returned data
+ /* set the length of the returned data */
*len = pty_items;
*txt = ltxt;
- // free the buffer
+ /* free the buffer */
XFree(buffer);
*context = XCLIB_XCOUT_NONE;
- // complete contents of selection fetched, return 1
+ /* complete contents of selection fetched, return 1 */
return;
case XCLIB_XCOUT_INCR:
- // To use the INCR method, we basically delete the
- // property with the selection in it, wait for an
- // event indicating that the property has been created,
- // then read it, delete it, etc.
+ /* To use the INCR method, we basically delete the
+ * property with the selection in it, wait for an
+ * event indicating that the property has been created,
+ * then read it, delete it, etc. */
- // make sure that the event is relevant
+ /* make sure that the event is relevant */
if (evt.type != PropertyNotify)
return;
- // skip unless the property has a new value
+ /* skip unless the property has a new value */
if (evt.xproperty.state != PropertyNewValue)
return;
- // check size and format of the property
+ /* check size and format of the property */
XGetWindowProperty(m_display, win, m_xclip_out, 0, 0, False,
AnyPropertyType, &pty_type, &pty_format,
&pty_items, &pty_size, (unsigned char **) &buffer);
if (pty_format != 8) {
- // property does not contain text, delete it
- // to tell the other X client that we have read
- // it and to send the next property
+ /* property does not contain text, delete it
+ * to tell the other X client that we have read
+ * it and to send the next property */
XFree(buffer);
XDeleteProperty(m_display, win, m_xclip_out);
return;
}
if (pty_size == 0) {
- // no more data, exit from loop
+ /* no more data, exit from loop */
XFree(buffer);
XDeleteProperty(m_display, win, m_xclip_out);
*context = XCLIB_XCOUT_NONE;
- // this means that an INCR transfer is now
- // complete, return 1
+ /* this means that an INCR transfer is now
+ * complete, return 1 */
return;
}
XFree(buffer);
- // if we have come this far, the propery contains
- // text, we know the size.
+ /* if we have come this far, the property contains
+ * text, we know the size. */
XGetWindowProperty(m_display, win, m_xclip_out, 0, (long) pty_size,
False, AnyPropertyType, &pty_type, &pty_format,
&pty_items, &pty_size, (unsigned char **) &buffer);
- // allocate memory to accommodate data in *txt
+ /* allocate memory to accommodate data in *txt */
if (*len == 0) {
*len = pty_items;
ltxt = (unsigned char *) malloc(*len);
@@ -1370,13 +1496,13 @@ void GHOST_SystemX11::getClipboard_xcout(XEvent evt,
ltxt = (unsigned char *) realloc(ltxt, *len);
}
- // add data to ltxt
+ /* add data to ltxt */
memcpy(&ltxt[*len - pty_items], buffer, pty_items);
*txt = ltxt;
XFree(buffer);
- // delete property to get the next item
+ /* delete property to get the next item */
XDeleteProperty(m_display, win, m_xclip_out);
XFlush(m_display);
return;
@@ -1390,7 +1516,7 @@ GHOST_TUns8 *GHOST_SystemX11::getClipboard(bool selection) const
Atom target = m_utf8_string;
Window owner;
- // from xclip.c doOut() v0.11
+ /* from xclip.c doOut() v0.11 */
unsigned char *sel_buf;
unsigned long sel_len = 0;
XEvent evt;
diff --git a/intern/ghost/intern/GHOST_SystemX11.h b/intern/ghost/intern/GHOST_SystemX11.h
index fd5a33c02d7..bc556490d12 100644
--- a/intern/ghost/intern/GHOST_SystemX11.h
+++ b/intern/ghost/intern/GHOST_SystemX11.h
@@ -49,9 +49,9 @@ class GHOST_WindowX11;
/**
* X11 Implementation of GHOST_System class.
- * @see GHOST_System.
- * @author Laurence Bourn
- * @date October 26, 2001
+ * \see GHOST_System.
+ * \author Laurence Bourn
+ * \date October 26, 2001
*/
class GHOST_SystemX11 : public GHOST_System {
@@ -77,13 +77,13 @@ public:
/**
- * @section Interface Inherited from GHOST_ISystem
+ * \section Interface Inherited from GHOST_ISystem
*/
/**
* Returns the system time.
* Returns the number of milliseconds since the start of the system process.
- * @return The number of milliseconds.
+ * \return The number of milliseconds.
*/
GHOST_TUns64
getMilliSeconds(
@@ -92,7 +92,7 @@ public:
/**
* Returns the number of displays on this system.
- * @return The number of displays.
+ * \return The number of displays.
*/
GHOST_TUns8
getNumDisplays(
@@ -100,7 +100,7 @@ public:
/**
* Returns the dimensions of the main display on this system.
- * @return The dimension of the main display.
+ * \return The dimension of the main display.
*/
void
getMainDisplayDimensions(
@@ -112,16 +112,16 @@ public:
* Create a new window.
* The new window is added to the list of windows managed.
* Never explicitly delete the window, use disposeWindow() instead.
- * @param title The name of the window (displayed in the title bar of the window if the OS supports it).
- * @param left The coordinate of the left edge of the window.
- * @param top The coordinate of the top edge of the window.
- * @param width The width the window.
- * @param height The height the window.
- * @param state The state of the window when opened.
- * @param type The type of drawing context installed in this window.
- * @param stereoVisual Create a stereo visual for quad buffered stereo.
- * @param parentWindow Parent (embedder) window
- * @return The new window (or 0 if creation failed).
+ * \param title The name of the window (displayed in the title bar of the window if the OS supports it).
+ * \param left The coordinate of the left edge of the window.
+ * \param top The coordinate of the top edge of the window.
+ * \param width The width the window.
+ * \param height The height the window.
+ * \param state The state of the window when opened.
+ * \param type The type of drawing context installed in this window.
+ * \param stereoVisual Create a stereo visual for quad buffered stereo.
+ * \param parentWindow Parent (embedder) window
+ * \return The new window (or 0 if creation failed).
*/
GHOST_IWindow *
createWindow(
@@ -138,13 +138,13 @@ public:
);
/**
- * @section Interface Inherited from GHOST_ISystem
+ * \section Interface Inherited from GHOST_ISystem
*/
/**
* Retrieves events from the system and stores them in the queue.
- * @param waitForEvent Flag to wait for an event (or return immediately).
- * @return Indication of the presence of events.
+ * \param waitForEvent Flag to wait for an event (or return immediately).
+ * \return Indication of the presence of events.
*/
bool
processEvents(
@@ -152,7 +152,7 @@ public:
);
/**
- * @section Interface Inherited from GHOST_System
+ * \section Interface Inherited from GHOST_System
*/
GHOST_TSuccess
getCursorPosition(
@@ -168,8 +168,8 @@ public:
/**
* Returns the state of all modifier keys.
- * @param keys The state of all modifier keys (true == pressed).
- * @return Indication of success.
+ * \param keys The state of all modifier keys (true == pressed).
+ * \return Indication of success.
*/
GHOST_TSuccess
getModifierKeys(
@@ -178,8 +178,8 @@ public:
/**
* Returns the state of the mouse buttons (ouside the message queue).
- * @param buttons The state of the buttons.
- * @return Indication of success.
+ * \param buttons The state of the buttons.
+ * \return Indication of success.
*/
GHOST_TSuccess
getButtons(
@@ -187,7 +187,7 @@ public:
) const;
/**
- * @section Interface Dirty
+ * \section Interface Dirty
* Flag a window as dirty. This will
* generate a GHOST window update event on a call to processEvents()
*/
@@ -210,8 +210,8 @@ public:
#if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
XIM
- getX11_XIM(
- ) {
+ getX11_XIM()
+ {
return m_xim;
}
#endif
@@ -223,34 +223,34 @@ public:
/**
* Returns unsinged char from CUT_BUFFER0
- * @param selection Get selection, X11 only feature
- * @return Returns the Clipboard indicated by Flag
+ * \param selection Get selection, X11 only feature
+ * \return Returns the Clipboard indicated by Flag
*/
GHOST_TUns8 *getClipboard(bool selection) const;
/**
* Puts buffer to system clipboard
- * @param buffer The buffer to copy to the clipboard
- * @param selection Set the selection into the clipboard, X11 only feature
+ * \param buffer The buffer to copy to the clipboard
+ * \param selection Set the selection into the clipboard, X11 only feature
*/
void putClipboard(GHOST_TInt8 *buffer, bool selection) const;
-#if WITH_XDND
+#ifdef WITH_XDND
/**
* Creates a drag'n'drop event and pushes it immediately onto the event queue.
* Called by GHOST_DropTargetX11 class.
- * @param eventType The type of drag'n'drop event
- * @param draggedObjectType The type object concerned (currently array of file names, string, ?bitmap)
- * @param mouseX x mouse coordinate (in window coordinates)
- * @param mouseY y mouse coordinate
- * @param window The window on which the event occurred
- * @return Indication whether the event was handled.
+ * \param eventType The type of drag'n'drop event
+ * \param draggedObjectType The type object concerned (currently array of file names, string, ?bitmap)
+ * \param mouseX x mouse coordinate (in window coordinates)
+ * \param mouseY y mouse coordinate
+ * \param window The window on which the event occurred
+ * \return Indication whether the event was handled.
*/
static GHOST_TSuccess pushDragDropEvent(GHOST_TEventType eventType, GHOST_TDragnDropTypes draggedObjectType, GHOST_IWindow *window, int mouseX, int mouseY, void *data);
#endif
/**
- * @see GHOST_ISystem
+ * \see GHOST_ISystem
*/
int toggleConsole(int action) {
return 0;
@@ -309,6 +309,10 @@ private:
* X11 window xwind
*/
+#if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
+ bool openX11_IM();
+#endif
+
GHOST_WindowX11 *
findGhostWindow(
Window xwind
diff --git a/intern/ghost/intern/GHOST_TimerManager.cpp b/intern/ghost/intern/GHOST_TimerManager.cpp
index 4ad28d6633d..601359984de 100644
--- a/intern/ghost/intern/GHOST_TimerManager.cpp
+++ b/intern/ghost/intern/GHOST_TimerManager.cpp
@@ -32,8 +32,8 @@
/**
* Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date May 31, 2001
+ * \author Maarten Gribnau
+ * \date May 31, 2001
*/
#include "GHOST_TimerManager.h"
@@ -104,7 +104,7 @@ GHOST_TUns64 GHOST_TimerManager::nextFireTime()
GHOST_TUns64 smallest = GHOST_kFireTimeNever;
TTimerVector::iterator iter;
- for (iter = m_timers.begin(); iter != m_timers.end(); iter++) {
+ for (iter = m_timers.begin(); iter != m_timers.end(); ++iter) {
GHOST_TUns64 next = (*iter)->getNext();
if (next < smallest)
@@ -119,7 +119,7 @@ bool GHOST_TimerManager::fireTimers(GHOST_TUns64 time)
TTimerVector::iterator iter;
bool anyProcessed = false;
- for (iter = m_timers.begin(); iter != m_timers.end(); iter++) {
+ for (iter = m_timers.begin(); iter != m_timers.end(); ++iter) {
if (fireTimer(time, *iter))
anyProcessed = true;
}
@@ -156,7 +156,7 @@ bool GHOST_TimerManager::fireTimer(GHOST_TUns64 time, GHOST_TimerTask *task)
void GHOST_TimerManager::disposeTimers()
{
- while (m_timers.size() > 0) {
+ while (m_timers.empty() == false) {
delete m_timers[0];
m_timers.erase(m_timers.begin());
}
diff --git a/intern/ghost/intern/GHOST_TimerManager.h b/intern/ghost/intern/GHOST_TimerManager.h
index 88d27088c1d..5a24c56ef10 100644
--- a/intern/ghost/intern/GHOST_TimerManager.h
+++ b/intern/ghost/intern/GHOST_TimerManager.h
@@ -44,8 +44,8 @@ class GHOST_TimerTask;
* Manages a list of timer tasks.
* Timer tasks added are owned by the manager.
* Don't delete timer task objects.
- * @author Maarten Gribnau
- * @date May 31, 2001
+ * \author Maarten Gribnau
+ * \date May 31, 2001
*/
class GHOST_TimerManager
{
@@ -62,51 +62,51 @@ public:
/**
* Returns the number of timer tasks.
- * @return The number of events on the stack.
+ * \return The number of events on the stack.
*/
virtual GHOST_TUns32 getNumTimers();
/**
* Returns whther this timer task ins in our list.
- * @return Indication of presence.
+ * \return Indication of presence.
*/
virtual bool getTimerFound(GHOST_TimerTask *timer);
/**
* Adds a timer task to the list.
* It is only added when it not already present in the list.
- * @param timer The timer task added to the list.
- * @return Indication as to whether addition has succeeded.
+ * \param timer The timer task added to the list.
+ * \return Indication as to whether addition has succeeded.
*/
virtual GHOST_TSuccess addTimer(GHOST_TimerTask *timer);
/**
* Removes a timer task from the list.
* It is only removed when it is found in the list.
- * @param timer The timer task to be removed from the list.
- * @return Indication as to whether removal has succeeded.
+ * \param timer The timer task to be removed from the list.
+ * \return Indication as to whether removal has succeeded.
*/
virtual GHOST_TSuccess removeTimer(GHOST_TimerTask *timer);
/**
* Finds the soonest time the next timer would fire.
- * @return The soonest time the next timer would fire,
+ * \return The soonest time the next timer would fire,
* or GHOST_kFireTimeNever if no timers exist.
*/
virtual GHOST_TUns64 nextFireTime();
/**
* Checks all timer tasks to see if they are expired and fires them if needed.
- * @param time The current time.
- * @return True if any timers were fired.
+ * \param time The current time.
+ * \return True if any timers were fired.
*/
virtual bool fireTimers(GHOST_TUns64 time);
/**
* Checks this timer task to see if they are expired and fires them if needed.
- * @param time The current time.
- * @param task The timer task to check and optionally fire.
- * @return True if the timer fired.
+ * \param time The current time.
+ * \param task The timer task to check and optionally fire.
+ * \return True if the timer fired.
*/
virtual bool fireTimer(GHOST_TUns64 time, GHOST_TimerTask *task);
diff --git a/intern/ghost/intern/GHOST_TimerTask.h b/intern/ghost/intern/GHOST_TimerTask.h
index d74d705d511..0731bc066af 100644
--- a/intern/ghost/intern/GHOST_TimerTask.h
+++ b/intern/ghost/intern/GHOST_TimerTask.h
@@ -38,18 +38,18 @@
/**
* Implementation of a timer task.
- * @author Maarten Gribnau
- * @date May 28, 2001
+ * \author Maarten Gribnau
+ * \date May 28, 2001
*/
class GHOST_TimerTask : public GHOST_ITimerTask
{
public:
/**
* Constructor.
- * @param start The timer start time.
- * @param interval The interval between calls to the timerProc
- * @param timerProc The callbak invoked when the interval expires.
- * @param data The timer user data.
+ * \param start The timer start time.
+ * \param interval The interval between calls to the timerProc
+ * \param timerProc The callbak invoked when the interval expires.
+ * \param data The timer user data.
*/
GHOST_TimerTask(GHOST_TUns64 start,
GHOST_TUns64 interval,
@@ -66,7 +66,7 @@ public:
/**
* Returns the timer start time.
- * @return The timer start time.
+ * \return The timer start time.
*/
inline virtual GHOST_TUns64 getStart() const
{
@@ -75,7 +75,7 @@ public:
/**
* Changes the timer start time.
- * @param start The timer start time.
+ * \param start The timer start time.
*/
virtual void setStart(GHOST_TUns64 start)
{
@@ -84,7 +84,7 @@ public:
/**
* Returns the timer interval.
- * @return The timer interval.
+ * \return The timer interval.
*/
inline virtual GHOST_TUns64 getInterval() const
{
@@ -93,7 +93,7 @@ public:
/**
* Changes the timer interval.
- * @param interval The timer interval.
+ * \param interval The timer interval.
*/
virtual void setInterval(GHOST_TUns64 interval)
{
@@ -102,7 +102,7 @@ public:
/**
* Returns the time the timerProc will be called.
- * @return The time the timerProc will be called.
+ * \return The time the timerProc will be called.
*/
inline virtual GHOST_TUns64 getNext() const
{
@@ -111,7 +111,7 @@ public:
/**
* Changes the time the timerProc will be called.
- * @param next The time the timerProc will be called.
+ * \param next The time the timerProc will be called.
*/
virtual void setNext(GHOST_TUns64 next)
{
@@ -120,7 +120,7 @@ public:
/**
* Returns the timer callback.
- * @return the timer callback.
+ * \return the timer callback.
*/
inline virtual GHOST_TimerProcPtr getTimerProc() const
{
@@ -129,7 +129,7 @@ public:
/**
* Changes the timer callback.
- * @param The timer callback.
+ * \param The timer callback.
*/
inline virtual void setTimerProc(const GHOST_TimerProcPtr timerProc)
{
@@ -138,7 +138,7 @@ public:
/**
* Returns the timer user data.
- * @return The timer user data.
+ * \return The timer user data.
*/
inline virtual GHOST_TUserDataPtr getUserData() const
{
@@ -147,7 +147,7 @@ public:
/**
* Changes the time user data.
- * @param data The timer user data.
+ * \param data The timer user data.
*/
virtual void setUserData(const GHOST_TUserDataPtr userData)
{
@@ -156,7 +156,7 @@ public:
/**
* Returns the auxiliary storage room.
- * @return The auxiliary storage room.
+ * \return The auxiliary storage room.
*/
inline virtual GHOST_TUns32 getAuxData() const
{
@@ -165,7 +165,7 @@ public:
/**
* Changes the auxiliary storage room.
- * @param auxData The auxiliary storage room.
+ * \param auxData The auxiliary storage room.
*/
virtual void setAuxData(GHOST_TUns32 auxData)
{
diff --git a/intern/ghost/intern/GHOST_Window.cpp b/intern/ghost/intern/GHOST_Window.cpp
index c3244d1594d..fd3ff4f85f0 100644
--- a/intern/ghost/intern/GHOST_Window.cpp
+++ b/intern/ghost/intern/GHOST_Window.cpp
@@ -32,12 +32,13 @@
/**
* Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date May 10, 2001
+ * \author Maarten Gribnau
+ * \date May 10, 2001
*/
#include "GHOST_Window.h"
+#include <assert.h>
GHOST_Window::GHOST_Window(
GHOST_TUns32 width, GHOST_TUns32 height,
@@ -105,11 +106,18 @@ GHOST_TSuccess GHOST_Window::setCursorVisibility(bool visible)
}
}
-GHOST_TSuccess GHOST_Window::setCursorGrab(GHOST_TGrabCursorMode mode, GHOST_Rect *bounds)
+GHOST_TSuccess GHOST_Window::setCursorGrab(GHOST_TGrabCursorMode mode, GHOST_Rect *bounds, GHOST_TInt32 mouse_ungrab_xy[2])
{
if (m_cursorGrab == mode)
return GHOST_kSuccess;
+ /* override with new location */
+ if (mouse_ungrab_xy) {
+ assert(mode == GHOST_kGrabDisable);
+ m_cursorGrabInitPos[0] = mouse_ungrab_xy[0];
+ m_cursorGrabInitPos[1] = mouse_ungrab_xy[1];
+ }
+
if (setWindowCursorGrab(mode)) {
if (mode == GHOST_kGrabDisable)
diff --git a/intern/ghost/intern/GHOST_Window.h b/intern/ghost/intern/GHOST_Window.h
index 91a974bde19..fd870327fd4 100644
--- a/intern/ghost/intern/GHOST_Window.h
+++ b/intern/ghost/intern/GHOST_Window.h
@@ -43,14 +43,14 @@ class STR_String;
* upper-left corner of the screen.
* Implements part of the GHOST_IWindow interface and adds some methods to
* be implemented by childs of this class.
- * @author Maarten Gribnau
- * @date May 7, 2001
+ * \author Maarten Gribnau
+ * \date May 7, 2001
*/
class GHOST_Window : public GHOST_IWindow
{
public:
/**
- * @section Interface inherited from GHOST_IWindow left for derived class
+ * \section Interface inherited from GHOST_IWindow left for derived class
* implementation.
* virtual bool getValid() const = 0;
* virtual void setTitle(const STR_String& title) = 0;
@@ -75,12 +75,12 @@ public:
* Constructor.
* Creates a new window and opens it.
* To check if the window was created properly, use the getValid() method.
- * @param width The width the window.
- * @param heigh The height the window.
- * @param state The state the window is initially opened with.
- * @param type The type of drawing context installed in this window.
- * @param stereoVisual Stereo visual for quad buffered stereo.
- * @param numOfAASamples Number of samples used for AA (zero if no AA)
+ * \param width The width the window.
+ * \param heigh The height the window.
+ * \param state The state the window is initially opened with.
+ * \param type The type of drawing context installed in this window.
+ * \param stereoVisual Stereo visual for quad buffered stereo.
+ * \param numOfAASamples Number of samples used for AA (zero if no AA)
*/
GHOST_Window(
GHOST_TUns32 width,
@@ -91,7 +91,7 @@ public:
const GHOST_TUns16 numOfAASamples = 0);
/**
- * @section Interface inherited from GHOST_IWindow left for derived class
+ * \section Interface inherited from GHOST_IWindow left for derived class
* implementation.
* virtual bool getValid() const = 0;
* virtual void setTitle(const STR_String& title) = 0;
@@ -119,30 +119,30 @@ public:
/**
* Returns the associated OS object/handle
- * @return The associated OS object/handle
+ * \return The associated OS object/handle
*/
virtual void *getOSWindow() const;
/**
* Returns the current cursor shape.
- * @return The current cursor shape.
+ * \return The current cursor shape.
*/
inline virtual GHOST_TStandardCursor getCursorShape() const;
/**
* Set the shape of the cursor.
- * @param cursor The new cursor shape type id.
- * @return Indication of success.
+ * \param cursor The new cursor shape type id.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCursorShape(GHOST_TStandardCursor cursorShape);
/**
* Set the shape of the cursor to a custom cursor.
- * @param bitmap The bitmap data for the cursor.
- * @param mask The mask data for the cursor.
- * @param hotX The X coordinate of the cursor hotspot.
- * @param hotY The Y coordinate of the cursor hotspot.
- * @return Indication of success.
+ * \param bitmap The bitmap data for the cursor.
+ * \param mask The mask data for the cursor.
+ * \param hotX The X coordinate of the cursor hotspot.
+ * \param hotY The Y coordinate of the cursor hotspot.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCustomCursorShape(GHOST_TUns8 bitmap[16][2],
GHOST_TUns8 mask[16][2],
@@ -157,7 +157,7 @@ public:
/**
* Returns the visibility state of the cursor.
- * @return The visibility state of the cursor.
+ * \return The visibility state of the cursor.
*/
inline virtual bool getCursorVisibility() const;
inline virtual GHOST_TGrabCursorMode getCursorGrabMode() const;
@@ -168,17 +168,17 @@ public:
/**
* Shows or hides the cursor.
- * @param visible The new visibility state of the cursor.
- * @return Indication of success.
+ * \param visible The new visibility state of the cursor.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setCursorVisibility(bool visible);
/**
* Sets the cursor grab.
- * @param mode The new grab state of the cursor.
- * @return Indication of success.
+ * \param mode The new grab state of the cursor.
+ * \return Indication of success.
*/
- virtual GHOST_TSuccess setCursorGrab(GHOST_TGrabCursorMode mode, GHOST_Rect *bounds);
+ virtual GHOST_TSuccess setCursorGrab(GHOST_TGrabCursorMode mode, GHOST_Rect *bounds, GHOST_TInt32 mouse_ungrab_xy[2]);
/**
* Gets the cursor grab region, if unset the window is used.
@@ -188,18 +188,18 @@ public:
/**
* Sets the progress bar value displayed in the window/application icon
- * @param progress The progress % (0.0 to 1.0)
+ * \param progress The progress % (0.0 to 1.0)
*/
virtual GHOST_TSuccess setProgressBar(float progress) {
return GHOST_kFailure;
- };
+ }
/**
* Hides the progress bar in the icon
*/
virtual GHOST_TSuccess endProgressBar() {
return GHOST_kFailure;
- };
+ }
/**
* Tells if the ongoing drag'n'drop object can be accepted upon mouse drop
@@ -214,20 +214,20 @@ public:
/**
* Sets the window "modified" status, indicating unsaved changes
- * @param isUnsavedChanges Unsaved changes or not
- * @return Indication of success.
+ * \param isUnsavedChanges Unsaved changes or not
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setModifiedState(bool isUnsavedChanges);
/**
* Gets the window "modified" status, indicating unsaved changes
- * @return True if there are unsaved changes
+ * \return True if there are unsaved changes
*/
virtual bool getModifiedState();
/**
* Returns the type of drawing context used in this window.
- * @return The current type of drawing context.
+ * \return The current type of drawing context.
*/
inline virtual GHOST_TDrawingContextType getDrawingContextType();
@@ -235,14 +235,14 @@ public:
* Tries to install a rendering context in this window.
* Child classes do not need to overload this method.
* They should overload the installDrawingContext and removeDrawingContext instead.
- * @param type The type of rendering context installed.
- * @return Indication as to whether installation has succeeded.
+ * \param type The type of rendering context installed.
+ * \return Indication as to whether installation has succeeded.
*/
virtual GHOST_TSuccess setDrawingContextType(GHOST_TDrawingContextType type);
/**
* Returns the window user data.
- * @return The window user data.
+ * \return The window user data.
*/
inline virtual GHOST_TUserDataPtr getUserData() const
{
@@ -251,7 +251,7 @@ public:
/**
* Changes the window user data.
- * @param data The window user data.
+ * \param data The window user data.
*/
virtual void setUserData(const GHOST_TUserDataPtr userData)
{
@@ -261,14 +261,14 @@ public:
protected:
/**
* Tries to install a rendering context in this window.
- * @param type The type of rendering context installed.
- * @return Indication as to whether installation has succeeded.
+ * \param type The type of rendering context installed.
+ * \return Indication as to whether installation has succeeded.
*/
virtual GHOST_TSuccess installDrawingContext(GHOST_TDrawingContextType type) = 0;
/**
* Removes the current drawing context.
- * @return Indication as to whether removal has succeeded.
+ * \return Indication as to whether removal has succeeded.
*/
virtual GHOST_TSuccess removeDrawingContext() = 0;
@@ -284,7 +284,7 @@ protected:
*/
virtual GHOST_TSuccess setWindowCursorGrab(GHOST_TGrabCursorMode mode) {
return GHOST_kSuccess;
- };
+ }
/**
* Sets the cursor shape on the window using
@@ -335,7 +335,7 @@ protected:
/** Modified state : are there unsaved changes */
bool m_isUnsavedChanges;
- /** Stores wether this is a full screen window. */
+ /** Stores whether this is a full screen window. */
bool m_fullScreen;
/** Stereo visual created. Only necessary for 'real' stereo support,
diff --git a/intern/ghost/intern/GHOST_WindowCarbon.cpp b/intern/ghost/intern/GHOST_WindowCarbon.cpp
index ca3366004d3..99d8854667e 100644
--- a/intern/ghost/intern/GHOST_WindowCarbon.cpp
+++ b/intern/ghost/intern/GHOST_WindowCarbon.cpp
@@ -32,8 +32,8 @@
/**
* Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date May 10, 2001
+ * \author Maarten Gribnau
+ * \date May 10, 2001
*/
#include "GHOST_WindowCarbon.h"
@@ -676,7 +676,7 @@ GHOST_TSuccess GHOST_WindowCarbon::setWindowCursorShape(GHOST_TStandardCursor sh
return GHOST_kSuccess;
}
-#if 0
+#if 0 /* UNUSED */
/** Reverse the bits in a GHOST_TUns8 */
static GHOST_TUns8 uns8ReverseBits(GHOST_TUns8 ch)
{
diff --git a/intern/ghost/intern/GHOST_WindowCarbon.h b/intern/ghost/intern/GHOST_WindowCarbon.h
index 1291fb1a2c4..d25d57156f6 100644
--- a/intern/ghost/intern/GHOST_WindowCarbon.h
+++ b/intern/ghost/intern/GHOST_WindowCarbon.h
@@ -54,8 +54,8 @@
* which is called the gutter.
* When OpenGL contexts are active, GHOST will use AGL_BUFFER_RECT to prevent
* OpenGL drawing outside the reduced client rectangle.
- * @author Maarten Gribnau
- * @date May 23, 2001
+ * \author Maarten Gribnau
+ * \date May 23, 2001
*/
class GHOST_WindowCarbon : public GHOST_Window {
public:
@@ -63,14 +63,14 @@ public:
* Constructor.
* Creates a new window and opens it.
* To check if the window was created properly, use the getValid() method.
- * @param title The text shown in the title bar of the window.
- * @param left The coordinate of the left edge of the window.
- * @param top The coordinate of the top edge of the window.
- * @param width The width the window.
- * @param height The height the window.
- * @param state The state the window is initially opened with.
- * @param type The type of drawing context installed in this window.
- * @param stereoVisual Stereo visual for quad buffered stereo.
+ * \param title The text shown in the title bar of the window.
+ * \param left The coordinate of the left edge of the window.
+ * \param top The coordinate of the top edge of the window.
+ * \param width The width the window.
+ * \param height The height the window.
+ * \param state The state the window is initially opened with.
+ * \param type The type of drawing context installed in this window.
+ * \param stereoVisual Stereo visual for quad buffered stereo.
*/
GHOST_WindowCarbon(
const STR_String& title,
@@ -92,109 +92,109 @@ public:
/**
* Returns indication as to whether the window is valid.
- * @return The validity of the window.
+ * \return The validity of the window.
*/
virtual bool getValid() const;
/**
* Sets the title displayed in the title bar.
- * @param title The title to display in the title bar.
+ * \param title The title to display in the title bar.
*/
virtual void setTitle(const STR_String& title);
/**
* Returns the title displayed in the title bar.
- * @param title The title displayed in the title bar.
+ * \param title The title displayed in the title bar.
*/
virtual void getTitle(STR_String& title) const;
/**
* Returns the window rectangle dimensions.
* The dimensions are given in screen coordinates that are relative to the upper-left corner of the screen.
- * @param bounds The bounding rectangle of the window.
+ * \param bounds The bounding rectangle of the window.
*/
virtual void getWindowBounds(GHOST_Rect& bounds) const;
/**
* Returns the client rectangle dimensions.
* The left and top members of the rectangle are always zero.
- * @param bounds The bounding rectangle of the cleient area of the window.
+ * \param bounds The bounding rectangle of the cleient area of the window.
*/
virtual void getClientBounds(GHOST_Rect& bounds) const;
/**
* Resizes client rectangle width.
- * @param width The new width of the client area of the window.
+ * \param width The new width of the client area of the window.
*/
virtual GHOST_TSuccess setClientWidth(GHOST_TUns32 width);
/**
* Resizes client rectangle height.
- * @param height The new height of the client area of the window.
+ * \param height The new height of the client area of the window.
*/
virtual GHOST_TSuccess setClientHeight(GHOST_TUns32 height);
/**
* Resizes client rectangle.
- * @param width The new width of the client area of the window.
- * @param height The new height of the client area of the window.
+ * \param width The new width of the client area of the window.
+ * \param height The new height of the client area of the window.
*/
virtual GHOST_TSuccess setClientSize(GHOST_TUns32 width, GHOST_TUns32 height);
/**
* Returns the state of the window (normal, minimized, maximized).
- * @return The state of the window.
+ * \return The state of the window.
*/
virtual GHOST_TWindowState getState() const;
/**
* Converts a point in screen coordinates to client rectangle coordinates
- * @param inX The x-coordinate on the screen.
- * @param inY The y-coordinate on the screen.
- * @param outX The x-coordinate in the client rectangle.
- * @param outY The y-coordinate in the client rectangle.
+ * \param inX The x-coordinate on the screen.
+ * \param inY The y-coordinate on the screen.
+ * \param outX The x-coordinate in the client rectangle.
+ * \param outY The y-coordinate in the client rectangle.
*/
virtual void screenToClient(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
/**
* Converts a point in screen coordinates to client rectangle coordinates
- * @param inX The x-coordinate in the client rectangle.
- * @param inY The y-coordinate in the client rectangle.
- * @param outX The x-coordinate on the screen.
- * @param outY The y-coordinate on the screen.
+ * \param inX The x-coordinate in the client rectangle.
+ * \param inY The y-coordinate in the client rectangle.
+ * \param outX The x-coordinate on the screen.
+ * \param outY The y-coordinate on the screen.
*/
virtual void clientToScreen(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
/**
* Sets the state of the window (normal, minimized, maximized).
- * @param state The state of the window.
- * @return Indication of success.
+ * \param state The state of the window.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setState(GHOST_TWindowState state);
/**
* Sets the order of the window (bottom, top).
- * @param order The order of the window.
- * @return Indication of success.
+ * \param order The order of the window.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setOrder(GHOST_TWindowOrder order);
/**
* Swaps front and back buffers of a window.
- * @return A boolean success indicator.
+ * \return A boolean success indicator.
*/
virtual GHOST_TSuccess swapBuffers();
/**
* Updates the drawing context of this window. Needed
* whenever the window is changed.
- * @return Indication of success.
+ * \return Indication of success.
*/
GHOST_TSuccess updateDrawingContext();
/**
* Activates the drawing context of this window.
- * @return A boolean success indicator.
+ * \return A boolean success indicator.
*/
virtual GHOST_TSuccess activateDrawingContext();
@@ -202,7 +202,7 @@ public:
/**
* Returns the dirty state of the window when in full-screen mode.
- * @return Whether it is dirty.
+ * \return Whether it is dirty.
*/
virtual bool getFullScreenDirty();
@@ -223,20 +223,20 @@ public:
protected:
/**
* Tries to install a rendering context in this window.
- * @param type The type of rendering context installed.
- * @return Indication as to whether installation has succeeded.
+ * \param type The type of rendering context installed.
+ * \return Indication as to whether installation has succeeded.
*/
virtual GHOST_TSuccess installDrawingContext(GHOST_TDrawingContextType type);
/**
* Removes the current drawing context.
- * @return Indication as to whether removal has succeeded.
+ * \return Indication as to whether removal has succeeded.
*/
virtual GHOST_TSuccess removeDrawingContext();
/**
* Invalidates the contents of this window.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess invalidate();
@@ -263,15 +263,15 @@ protected:
/**
* Converts a string object to a Mac Pascal string.
- * @param in The string object to be converted.
- * @param out The converted string.
+ * \param in The string object to be converted.
+ * \param out The converted string.
*/
virtual void gen2mac(const STR_String& in, Str255 out) const;
/**
* Converts a Mac Pascal string to a string object.
- * @param in The string to be converted.
- * @param out The converted string object.
+ * \param in The string to be converted.
+ * \param out The converted string object.
*/
virtual void mac2gen(const Str255 in, STR_String& out) const;
diff --git a/intern/ghost/intern/GHOST_WindowCocoa.h b/intern/ghost/intern/GHOST_WindowCocoa.h
index d53dfa71d95..3e5c675d4a7 100644
--- a/intern/ghost/intern/GHOST_WindowCocoa.h
+++ b/intern/ghost/intern/GHOST_WindowCocoa.h
@@ -53,8 +53,8 @@ class GHOST_SystemCocoa;
* which is called the gutter.
* When OpenGL contexts are active, GHOST will use AGL_BUFFER_RECT to prevent
* OpenGL drawing outside the reduced client rectangle.
- * @author Maarten Gribnau
- * @date May 23, 2001
+ * \author Maarten Gribnau
+ * \date May 23, 2001
*/
class GHOST_WindowCocoa : public GHOST_Window {
public:
@@ -62,16 +62,16 @@ public:
* Constructor.
* Creates a new window and opens it.
* To check if the window was created properly, use the getValid() method.
- * @param systemCocoa The associated system class to forward events to
- * @param title The text shown in the title bar of the window.
- * @param left The coordinate of the left edge of the window.
- * @param top The coordinate of the top edge of the window.
- * @param width The width the window.
- * @param height The height the window.
- * @param state The state the window is initially opened with.
- * @param type The type of drawing context installed in this window.
- * @param stereoVisual Stereo visual for quad buffered stereo.
- * @param numOfAASamples Number of samples used for AA (zero if no AA)
+ * \param systemCocoa The associated system class to forward events to
+ * \param title The text shown in the title bar of the window.
+ * \param left The coordinate of the left edge of the window.
+ * \param top The coordinate of the top edge of the window.
+ * \param width The width the window.
+ * \param height The height the window.
+ * \param state The state the window is initially opened with.
+ * \param type The type of drawing context installed in this window.
+ * \param stereoVisual Stereo visual for quad buffered stereo.
+ * \param numOfAASamples Number of samples used for AA (zero if no AA)
*/
GHOST_WindowCocoa(
GHOST_SystemCocoa *systemCocoa,
@@ -94,148 +94,148 @@ public:
/**
* Returns indication as to whether the window is valid.
- * @return The validity of the window.
+ * \return The validity of the window.
*/
virtual bool getValid() const;
/**
* Returns the associated NSWindow object
- * @return The associated NSWindow object
+ * \return The associated NSWindow object
*/
virtual void *getOSWindow() const;
/**
* Sets the title displayed in the title bar.
- * @param title The title to display in the title bar.
+ * \param title The title to display in the title bar.
*/
virtual void setTitle(const STR_String& title);
/**
* Returns the title displayed in the title bar.
- * @param title The title displayed in the title bar.
+ * \param title The title displayed in the title bar.
*/
virtual void getTitle(STR_String& title) const;
/**
* Returns the window rectangle dimensions.
* The dimensions are given in screen coordinates that are relative to the upper-left corner of the screen.
- * @param bounds The bounding rectangle of the window.
+ * \param bounds The bounding rectangle of the window.
*/
virtual void getWindowBounds(GHOST_Rect& bounds) const;
/**
* Returns the client rectangle dimensions.
* The left and top members of the rectangle are always zero.
- * @param bounds The bounding rectangle of the cleient area of the window.
+ * \param bounds The bounding rectangle of the cleient area of the window.
*/
virtual void getClientBounds(GHOST_Rect& bounds) const;
/**
* Resizes client rectangle width.
- * @param width The new width of the client area of the window.
+ * \param width The new width of the client area of the window.
*/
virtual GHOST_TSuccess setClientWidth(GHOST_TUns32 width);
/**
* Resizes client rectangle height.
- * @param height The new height of the client area of the window.
+ * \param height The new height of the client area of the window.
*/
virtual GHOST_TSuccess setClientHeight(GHOST_TUns32 height);
/**
* Resizes client rectangle.
- * @param width The new width of the client area of the window.
- * @param height The new height of the client area of the window.
+ * \param width The new width of the client area of the window.
+ * \param height The new height of the client area of the window.
*/
virtual GHOST_TSuccess setClientSize(GHOST_TUns32 width, GHOST_TUns32 height);
/**
* Returns the state of the window (normal, minimized, maximized).
- * @return The state of the window.
+ * \return The state of the window.
*/
virtual GHOST_TWindowState getState() const;
/**
* Sets the window "modified" status, indicating unsaved changes
- * @param isUnsavedChanges Unsaved changes or not
- * @return Indication of success.
+ * \param isUnsavedChanges Unsaved changes or not
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setModifiedState(bool isUnsavedChanges);
/**
* Converts a point in screen coordinates to client rectangle coordinates
- * @param inX The x-coordinate on the screen.
- * @param inY The y-coordinate on the screen.
- * @param outX The x-coordinate in the client rectangle.
- * @param outY The y-coordinate in the client rectangle.
+ * \param inX The x-coordinate on the screen.
+ * \param inY The y-coordinate on the screen.
+ * \param outX The x-coordinate in the client rectangle.
+ * \param outY The y-coordinate in the client rectangle.
*/
virtual void screenToClient(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
/**
* Converts a point in screen coordinates to client rectangle coordinates
- * @param inX The x-coordinate in the client rectangle.
- * @param inY The y-coordinate in the client rectangle.
- * @param outX The x-coordinate on the screen.
- * @param outY The y-coordinate on the screen.
+ * \param inX The x-coordinate in the client rectangle.
+ * \param inY The y-coordinate in the client rectangle.
+ * \param outX The x-coordinate on the screen.
+ * \param outY The y-coordinate on the screen.
*/
virtual void clientToScreen(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
/**
* Converts a point in screen coordinates to client rectangle coordinates
* but without the y coordinate conversion needed for ghost compatibility.
- * @param inX The x-coordinate in the client rectangle.
- * @param inY The y-coordinate in the client rectangle.
- * @param outX The x-coordinate on the screen.
- * @param outY The y-coordinate on the screen.
+ * \param inX The x-coordinate in the client rectangle.
+ * \param inY The y-coordinate in the client rectangle.
+ * \param outX The x-coordinate on the screen.
+ * \param outY The y-coordinate on the screen.
*/
void clientToScreenIntern(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
/**
* Converts a point in screen coordinates to client rectangle coordinates,
* but without the y coordinate conversion needed for ghost compatibility.
- * @param inX The x-coordinate in the client rectangle.
- * @param inY The y-coordinate in the client rectangle.
- * @param outX The x-coordinate on the screen.
- * @param outY The y-coordinate on the screen.
+ * \param inX The x-coordinate in the client rectangle.
+ * \param inY The y-coordinate in the client rectangle.
+ * \param outX The x-coordinate on the screen.
+ * \param outY The y-coordinate on the screen.
*/
void screenToClientIntern(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
/**
* Gets the screen the window is displayed in
- * @return The NSScreen object
+ * \return The NSScreen object
*/
NSScreen *getScreen();
/**
* Sets the state of the window (normal, minimized, maximized).
- * @param state The state of the window.
- * @return Indication of success.
+ * \param state The state of the window.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setState(GHOST_TWindowState state);
/**
* Sets the order of the window (bottom, top).
- * @param order The order of the window.
- * @return Indication of success.
+ * \param order The order of the window.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setOrder(GHOST_TWindowOrder order);
/**
* Swaps front and back buffers of a window.
- * @return A boolean success indicator.
+ * \return A boolean success indicator.
*/
virtual GHOST_TSuccess swapBuffers();
/**
* Updates the drawing context of this window. Needed
* whenever the window is changed.
- * @return Indication of success.
+ * \return Indication of success.
*/
GHOST_TSuccess updateDrawingContext();
/**
* Activates the drawing context of this window.
- * @return A boolean success indicator.
+ * \return A boolean success indicator.
*/
virtual GHOST_TSuccess activateDrawingContext();
@@ -254,7 +254,7 @@ public:
/**
* Sets the progress bar value displayed in the window/application icon
- * @param progress The progress % (0.0 to 1.0)
+ * \param progress The progress % (0.0 to 1.0)
*/
virtual GHOST_TSuccess setProgressBar(float progress);
@@ -265,20 +265,20 @@ public:
protected:
/**
* Tries to install a rendering context in this window.
- * @param type The type of rendering context installed.
- * @return Indication as to whether installation has succeeded.
+ * \param type The type of rendering context installed.
+ * \return Indication as to whether installation has succeeded.
*/
virtual GHOST_TSuccess installDrawingContext(GHOST_TDrawingContextType type);
/**
* Removes the current drawing context.
- * @return Indication as to whether removal has succeeded.
+ * \return Indication as to whether removal has succeeded.
*/
virtual GHOST_TSuccess removeDrawingContext();
/**
* Invalidates the contents of this window.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess invalidate();
diff --git a/intern/ghost/intern/GHOST_WindowCocoa.mm b/intern/ghost/intern/GHOST_WindowCocoa.mm
index f94f08b1d13..dc05fe42a70 100644
--- a/intern/ghost/intern/GHOST_WindowCocoa.mm
+++ b/intern/ghost/intern/GHOST_WindowCocoa.mm
@@ -213,7 +213,7 @@ extern "C" {
switch (m_draggedObjectType) {
case GHOST_kDragnDropTypeBitmap:
- if([NSImage canInitWithPasteboard:draggingPBoard]) {
+ if ([NSImage canInitWithPasteboard:draggingPBoard]) {
droppedImg = [[NSImage alloc]initWithPasteboard:draggingPBoard];
data = droppedImg; //[draggingPBoard dataForType:NSTIFFPboardType];
}
@@ -244,8 +244,8 @@ extern "C" {
GHOST_SystemCocoa *systemCocoa;
GHOST_WindowCocoa *associatedWindow;
- bool composing;
- NSString *composing_text;
+ bool composing;
+ NSString *composing_text;
}
- (void)setSystemAndWindowCocoa:(GHOST_SystemCocoa *)sysCocoa windowCocoa:(GHOST_WindowCocoa *)winCocoa;
@end
@@ -256,34 +256,35 @@ extern "C" {
systemCocoa = sysCocoa;
associatedWindow = winCocoa;
- composing = false;
- composing_text = nil;
+ composing = false;
+ composing_text = nil;
}
- (BOOL)acceptsFirstResponder
{
- return YES;
+ return YES;
}
// The trick to prevent Cocoa from complaining (beeping)
- (void)keyDown:(NSEvent *)event
{
- // Start or continue composing?
- if([[event characters] length] == 0 ||
- [[event charactersIgnoringModifiers] length] == 0 ||
- composing) {
- composing = YES;
-
- // interpret event to call insertText
- NSMutableArray *events;
- events = [[NSMutableArray alloc] initWithCapacity:1];
- [events addObject:event];
- [self interpretKeyEvents:events]; // calls insertText
- [events removeObject:event];
- [events release];
+ /* Start or continue composing? */
+ if ([[event characters] length] == 0 ||
+ [[event charactersIgnoringModifiers] length] == 0 ||
+ composing)
+ {
+ composing = YES;
- return;
- }
+ // interpret event to call insertText
+ NSMutableArray *events;
+ events = [[NSMutableArray alloc] initWithCapacity:1];
+ [events addObject:event];
+ [self interpretKeyEvents:events]; // calls insertText
+ [events removeObject:event];
+ [events release];
+
+ return;
+ }
}
#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4
@@ -314,62 +315,60 @@ extern "C" {
- (BOOL)isOpaque
{
- return YES;
+ return YES;
}
- (void) drawRect:(NSRect)rect
{
- if ([self inLiveResize])
- {
- //Don't redraw while in live resize
- }
- else
- {
- [super drawRect:rect];
- systemCocoa->handleWindowEvent(GHOST_kEventWindowUpdate, associatedWindow);
- }
+ if ([self inLiveResize]) {
+ /* Don't redraw while in live resize */
+ }
+ else {
+ [super drawRect:rect];
+ systemCocoa->handleWindowEvent(GHOST_kEventWindowUpdate, associatedWindow);
+ }
}
// Text input
- (void)composing_free
{
- composing = NO;
+ composing = NO;
- if(composing_text) {
- [composing_text release];
- composing_text = nil;
- }
+ if (composing_text) {
+ [composing_text release];
+ composing_text = nil;
+ }
}
- (void)insertText:(id)chars
{
- [self composing_free];
+ [self composing_free];
}
- (void)setMarkedText:(id)chars selectedRange:(NSRange)range
{
- [self composing_free];
- if([chars length] == 0)
- return;
-
- // start composing
- composing = YES;
- composing_text = [chars copy];
+ [self composing_free];
+ if ([chars length] == 0)
+ return;
- // if empty, cancel
- if([composing_text length] == 0)
- [self composing_free];
+ // start composing
+ composing = YES;
+ composing_text = [chars copy];
+
+ // if empty, cancel
+ if ([composing_text length] == 0)
+ [self composing_free];
}
- (void)unmarkText
{
- [self composing_free];
+ [self composing_free];
}
- (BOOL)hasMarkedText
{
- return (composing)? YES: NO;
+ return (composing)? YES: NO;
}
- (void)doCommandBySelector:(SEL)selector
@@ -378,48 +377,48 @@ extern "C" {
- (BOOL)isComposing
{
- return composing;
+ return composing;
}
- (NSInteger)conversationIdentifier
{
- return (NSInteger)self;
+ return (NSInteger)self;
}
- (NSAttributedString *)attributedSubstringFromRange:(NSRange)range
{
- return [NSAttributedString new]; // XXX does this leak?
+ return [NSAttributedString new]; // XXX does this leak?
}
- (NSRange)markedRange
{
- unsigned int length = (composing_text)? [composing_text length]: 0;
+ unsigned int length = (composing_text)? [composing_text length]: 0;
- if(composing)
- return NSMakeRange(0, length);
+ if (composing)
+ return NSMakeRange(0, length);
- return NSMakeRange(NSNotFound, 0);
+ return NSMakeRange(NSNotFound, 0);
}
- (NSRange)selectedRange
{
- unsigned int length = (composing_text)? [composing_text length]: 0;
- return NSMakeRange(0, length);
+ unsigned int length = (composing_text)? [composing_text length]: 0;
+ return NSMakeRange(0, length);
}
- (NSRect)firstRectForCharacterRange:(NSRange)range
{
- return NSZeroRect;
+ return NSZeroRect;
}
- (NSUInteger)characterIndexForPoint:(NSPoint)point
{
- return NSNotFound;
+ return NSNotFound;
}
- (NSArray*)validAttributesForMarkedText
{
- return [NSArray array]; // XXX does this leak?
+ return [NSArray array]; // XXX does this leak?
}
@end
@@ -487,7 +486,7 @@ GHOST_WindowCocoa::GHOST_WindowCocoa(
pixelFormatAttrsWindow[i++] = NSOpenGLPFABackingStore;
// Force software OpenGL, for debugging
- if(getenv("BLENDER_SOFTWAREGL")) {
+ if (getenv("BLENDER_SOFTWAREGL")) {
pixelFormatAttrsWindow[i++] = NSOpenGLPFARendererID;
pixelFormatAttrsWindow[i++] = kCGLRendererGenericID;
}
@@ -502,7 +501,7 @@ GHOST_WindowCocoa::GHOST_WindowCocoa(
if (stereoVisual) pixelFormatAttrsWindow[i++] = NSOpenGLPFAStereo;
- if (numOfAASamples>0) {
+ if (numOfAASamples > 0) {
// Multisample anti-aliasing
pixelFormatAttrsWindow[i++] = NSOpenGLPFAMultisample;
@@ -530,7 +529,7 @@ GHOST_WindowCocoa::GHOST_WindowCocoa(
pixelFormatAttrsWindow[i++] = NSOpenGLPFABackingStore;
// Force software OpenGL, for debugging
- if(getenv("BLENDER_SOFTWAREGL")) {
+ if (getenv("BLENDER_SOFTWAREGL")) {
pixelFormatAttrsWindow[i++] = NSOpenGLPFARendererID;
pixelFormatAttrsWindow[i++] = kCGLRendererGenericID;
}
@@ -550,7 +549,7 @@ GHOST_WindowCocoa::GHOST_WindowCocoa(
}
- if (numOfAASamples>0) { //Set m_numOfAASamples to the actual value
+ if (numOfAASamples > 0) { //Set m_numOfAASamples to the actual value
GLint gli;
[pixelFormat getValues:&gli forAttribute:NSOpenGLPFASamples forVirtualScreen:0];
if (m_numOfAASamples != (GHOST_TUns16)gli) {
@@ -600,7 +599,7 @@ GHOST_WindowCocoa::GHOST_WindowCocoa(
GHOST_WindowCocoa::~GHOST_WindowCocoa()
{
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
if (m_customCursor) {
[m_customCursor release];
@@ -638,14 +637,13 @@ void* GHOST_WindowCocoa::getOSWindow() const
void GHOST_WindowCocoa::setTitle(const STR_String& title)
{
- GHOST_ASSERT(getValid(), "GHOST_WindowCocoa::setTitle(): window invalid")
+ GHOST_ASSERT(getValid(), "GHOST_WindowCocoa::setTitle(): window invalid")
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *windowTitle = [[NSString alloc] initWithCString:title encoding:NSUTF8StringEncoding];
//Set associated file if applicable
- if (windowTitle && [windowTitle hasPrefix:@"Blender"])
- {
+ if (windowTitle && [windowTitle hasPrefix:@"Blender"]) {
NSRange fileStrRange;
NSString *associatedFileName;
int len;
@@ -653,8 +651,7 @@ void GHOST_WindowCocoa::setTitle(const STR_String& title)
fileStrRange.location = [windowTitle rangeOfString:@"["].location+1;
len = [windowTitle rangeOfString:@"]"].location - fileStrRange.location;
- if (len >0)
- {
+ if (len > 0) {
fileStrRange.length = len;
associatedFileName = [windowTitle substringWithRange:fileStrRange];
[m_window setTitle:[associatedFileName lastPathComponent]];
@@ -673,7 +670,8 @@ void GHOST_WindowCocoa::setTitle(const STR_String& title)
[m_window setRepresentedFilename:@""];
}
- } else {
+ }
+ else {
[m_window setTitle:windowTitle];
[m_window setRepresentedFilename:@""];
}
@@ -686,14 +684,14 @@ void GHOST_WindowCocoa::setTitle(const STR_String& title)
void GHOST_WindowCocoa::getTitle(STR_String& title) const
{
- GHOST_ASSERT(getValid(), "GHOST_WindowCocoa::getTitle(): window invalid")
+ GHOST_ASSERT(getValid(), "GHOST_WindowCocoa::getTitle(): window invalid")
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *windowTitle = [m_window title];
if (windowTitle != nil) {
- title = [windowTitle UTF8String];
+ title = [windowTitle UTF8String];
}
[pool drain];
@@ -727,8 +725,7 @@ void GHOST_WindowCocoa::getClientBounds(GHOST_Rect& bounds) const
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- if (!m_fullScreen)
- {
+ if (!m_fullScreen) {
NSRect screenSize = [[m_window screen] visibleFrame];
//Max window contents as screen size (excluding title bar...)
@@ -794,8 +791,9 @@ GHOST_TSuccess GHOST_WindowCocoa::setClientSize(GHOST_TUns32 width, GHOST_TUns32
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
GHOST_Rect cBnds, wBnds;
getClientBounds(cBnds);
- if ((((GHOST_TUns32)cBnds.getWidth()) != width) ||
- (((GHOST_TUns32)cBnds.getHeight()) != height)) {
+ if ((((GHOST_TUns32)cBnds.getWidth()) != width) ||
+ (((GHOST_TUns32)cBnds.getHeight()) != height))
+ {
NSSize size;
size.width=width;
size.height=height;
@@ -889,35 +887,36 @@ NSScreen* GHOST_WindowCocoa::getScreen()
/**
- * @note Fullscreen switch is not actual fullscreen with display capture. As this capture removes all OS X window manager features.
+ * \note Fullscreen switch is not actual fullscreen with display capture.
+ * As this capture removes all OS X window manager features.
+ *
* Instead, the menu bar and the dock are hidden, and the window is made borderless and enlarged.
* Thus, process switch, exposé, spaces, ... still work in fullscreen mode
*/
GHOST_TSuccess GHOST_WindowCocoa::setState(GHOST_TWindowState state)
{
GHOST_ASSERT(getValid(), "GHOST_WindowCocoa::setState(): window invalid")
- switch (state) {
+ switch (state) {
case GHOST_kWindowStateMinimized:
- [m_window miniaturize:nil];
- break;
+ [m_window miniaturize:nil];
+ break;
case GHOST_kWindowStateMaximized:
[m_window zoom:nil];
break;
case GHOST_kWindowStateFullScreen:
- if (!m_fullScreen)
- {
+ if (!m_fullScreen) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- //This status change needs to be done before Cocoa call to enter fullscreen mode
- //to give window delegate hint not to forward its deactivation to ghost wm that doesn't know view/window difference
+ /* This status change needs to be done before Cocoa call to enter fullscreen mode
+ * to give window delegate hint not to forward its deactivation to ghost wm that
+ * doesn't know view/window difference. */
m_fullScreen = true;
#ifdef MAC_OS_X_VERSION_10_6
//10.6 provides Cocoa functions to autoshow menu bar, and to change a window style
//Hide menu & dock if needed
- if ([[m_window screen] isEqual:[[NSScreen screens] objectAtIndex:0]])
- {
+ if ([[m_window screen] isEqual:[[NSScreen screens] objectAtIndex:0]]) {
[NSApp setPresentationOptions:(NSApplicationPresentationHideDock | NSApplicationPresentationAutoHideMenuBar)];
}
//Make window borderless and enlarge it
@@ -927,8 +926,7 @@ GHOST_TSuccess GHOST_WindowCocoa::setState(GHOST_TWindowState state)
#else
//With 10.5, we need to create a new window to change its style to borderless
//Hide menu & dock if needed
- if ([[m_window screen] isEqual:[[NSScreen screens] objectAtIndex:0]])
- {
+ if ([[m_window screen] isEqual:[[NSScreen screens] objectAtIndex:0]]) {
//Cocoa function in 10.5 does not allow to set the menu bar in auto-show mode [NSMenu setMenuBarVisible:NO];
//One of the very few 64bit compatible Carbon function
SetSystemUIMode(kUIModeAllHidden,kUIOptionAutoShowMenuBar);
@@ -947,7 +945,7 @@ GHOST_TSuccess GHOST_WindowCocoa::setState(GHOST_TWindowState state)
[tmpWindow setDelegate:[m_window delegate]];
[tmpWindow setSystemAndWindowCocoa:[m_window systemCocoa] windowCocoa:this];
[tmpWindow registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType,
- NSStringPboardType, NSTIFFPboardType, nil]];
+ NSStringPboardType, NSTIFFPboardType, nil]];
//Assign the openGL view to the new window
[tmpWindow setContentView:m_openGLView];
@@ -968,17 +966,15 @@ GHOST_TSuccess GHOST_WindowCocoa::setState(GHOST_TWindowState state)
}
break;
case GHOST_kWindowStateNormal:
- default:
+ default:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- if (m_fullScreen)
- {
+ if (m_fullScreen) {
m_fullScreen = false;
//Exit fullscreen
#ifdef MAC_OS_X_VERSION_10_6
//Show again menu & dock if needed
- if ([[m_window screen] isEqual:[NSScreen mainScreen]])
- {
+ if ([[m_window screen] isEqual:[NSScreen mainScreen]]) {
[NSApp setPresentationOptions:NSApplicationPresentationDefault];
}
//Make window normal and resize it
@@ -989,8 +985,7 @@ GHOST_TSuccess GHOST_WindowCocoa::setState(GHOST_TWindowState state)
#else
//With 10.5, we need to create a new window to change its style to borderless
//Show menu & dock if needed
- if ([[m_window screen] isEqual:[NSScreen mainScreen]])
- {
+ if ([[m_window screen] isEqual:[NSScreen mainScreen]]) {
//Cocoa function in 10.5 does not allow to set the menu bar in auto-show mode [NSMenu setMenuBarVisible:YES];
SetSystemUIMode(kUIModeNormal, 0); //One of the very few 64bit compatible Carbon function
}
@@ -1027,15 +1022,15 @@ GHOST_TSuccess GHOST_WindowCocoa::setState(GHOST_TWindowState state)
//Tell WM of view new size
m_systemCocoa->handleWindowEvent(GHOST_kEventWindowSize, this);
}
- else if ([m_window isMiniaturized])
+ else if ([m_window isMiniaturized])
[m_window deminiaturize:nil];
else if ([m_window isZoomed])
[m_window zoom:nil];
[pool drain];
- break;
- }
+ break;
+ }
- return GHOST_kSuccess;
+ return GHOST_kSuccess;
}
GHOST_TSuccess GHOST_WindowCocoa::setModifiedState(bool isUnsavedChanges)
@@ -1055,10 +1050,10 @@ GHOST_TSuccess GHOST_WindowCocoa::setOrder(GHOST_TWindowOrder order)
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
GHOST_ASSERT(getValid(), "GHOST_WindowCocoa::setOrder(): window invalid")
- if (order == GHOST_kWindowOrderTop) {
+ if (order == GHOST_kWindowOrderTop) {
[m_window makeKeyAndOrderFront:nil];
- }
- else {
+ }
+ else {
NSArray *windowsList;
[m_window orderBack:nil];
@@ -1068,10 +1063,10 @@ GHOST_TSuccess GHOST_WindowCocoa::setOrder(GHOST_TWindowOrder order)
if ([windowsList count]) {
[[windowsList objectAtIndex:0] makeKeyAndOrderFront:nil];
}
- }
+ }
[pool drain];
- return GHOST_kSuccess;
+ return GHOST_kSuccess;
}
#pragma mark Drawing context
@@ -1080,15 +1075,15 @@ GHOST_TSuccess GHOST_WindowCocoa::setOrder(GHOST_TWindowOrder order)
GHOST_TSuccess GHOST_WindowCocoa::swapBuffers()
{
- if (m_drawingContextType == GHOST_kDrawingContextTypeOpenGL) {
- if (m_openGLContext != nil) {
+ if (m_drawingContextType == GHOST_kDrawingContextTypeOpenGL) {
+ if (m_openGLContext != nil) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[m_openGLContext flushBuffer];
[pool drain];
- return GHOST_kSuccess;
- }
- }
- return GHOST_kFailure;
+ return GHOST_kSuccess;
+ }
+ }
+ return GHOST_kFailure;
}
GHOST_TSuccess GHOST_WindowCocoa::updateDrawingContext()
@@ -1150,7 +1145,7 @@ GHOST_TSuccess GHOST_WindowCocoa::installDrawingContext(GHOST_TDrawingContextTyp
/******* Multithreaded opengl code : uncomment for enabling
cglCtx = (CGLContextObj)[tmpOpenGLContext CGLContextObj];
if (CGLEnable(cglCtx, kCGLCEMPEngine) == kCGLNoError)
- printf("\nSwitched openGL to multithreaded mode");
+ printf("\nSwitched openGL to multithreaded mode\n");
*/
if (!s_firstOpenGLcontext) s_firstOpenGLcontext = tmpOpenGLContext;
@@ -1184,8 +1179,7 @@ GHOST_TSuccess GHOST_WindowCocoa::removeDrawingContext()
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
switch (m_drawingContextType) {
case GHOST_kDrawingContextTypeOpenGL:
- if (m_openGLContext)
- {
+ if (m_openGLContext) {
[m_openGLView clearGLContext];
if (s_firstOpenGLcontext == m_openGLContext) s_firstOpenGLcontext = nil;
m_openGLContext = nil;
@@ -1222,22 +1216,24 @@ GHOST_TSuccess GHOST_WindowCocoa::setProgressBar(float progress)
NSImage* dockIcon = [[NSImage alloc] initWithSize:NSMakeSize(128,128)];
[dockIcon lockFocus];
- NSRect progressBox = {{4, 4}, {120, 16}};
-
- [[NSImage imageNamed:@"NSApplicationIcon"] dissolveToPoint:NSZeroPoint fraction:1.0];
-
- // Track & Outline
- [[NSColor blackColor] setFill];
- NSRectFill(progressBox);
-
- [[NSColor whiteColor] set];
- NSFrameRect(progressBox);
-
- // Progress fill
- progressBox = NSInsetRect(progressBox, 1, 1);
- [[NSColor knobColor] setFill];
- progressBox.size.width = progressBox.size.width * progress;
+ NSRect progressBox = {{4, 4}, {120, 16}};
+
+ [[NSImage imageNamed:@"NSApplicationIcon"] dissolveToPoint:NSZeroPoint fraction:1.0];
+
+ // Track & Outline
+ [[NSColor blackColor] setFill];
NSRectFill(progressBox);
+
+ [[NSColor whiteColor] set];
+ NSFrameRect(progressBox);
+
+ // Progress fill
+ progressBox = NSInsetRect(progressBox, 1, 1);
+
+ progressBox.size.width = progressBox.size.width * progress;
+ NSGradient *gradient = [[NSGradient alloc] initWithStartingColor:[NSColor darkGrayColor] endingColor:[NSColor lightGrayColor]];
+ [gradient drawInRect:progressBox angle:90];
+ [gradient release];
[dockIcon unlockFocus];
@@ -1293,7 +1289,8 @@ void GHOST_WindowCocoa::loadCursor(bool visible, GHOST_TStandardCursor cursor) c
if (cursor == GHOST_kStandardCursorCustom && m_customCursor) {
tmpCursor = m_customCursor;
- } else {
+ }
+ else {
switch (cursor) {
case GHOST_kStandardCursorDestroy:
tmpCursor = [NSCursor disappearingItemCursor];
@@ -1362,10 +1359,9 @@ GHOST_TSuccess GHOST_WindowCocoa::setWindowCursorGrab(GHOST_TGrabCursorMode mode
{
GHOST_TSuccess err = GHOST_kSuccess;
- if (mode != GHOST_kGrabDisable)
- {
+ if (mode != GHOST_kGrabDisable) {
//No need to perform grab without warp as it is always on in OS X
- if(mode != GHOST_kGrabNormal) {
+ if (mode != GHOST_kGrabNormal) {
GHOST_TInt32 x_old,y_old;
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
@@ -1374,7 +1370,7 @@ GHOST_TSuccess GHOST_WindowCocoa::setWindowCursorGrab(GHOST_TGrabCursorMode mode
//Warp position is stored in client (window base) coordinates
setCursorGrabAccum(0, 0);
- if(mode == GHOST_kGrabHide) {
+ if (mode == GHOST_kGrabHide) {
setWindowCursorVisibility(false);
}
@@ -1388,8 +1384,7 @@ GHOST_TSuccess GHOST_WindowCocoa::setWindowCursorGrab(GHOST_TGrabCursorMode mode
}
}
else {
- if(m_cursorGrab==GHOST_kGrabHide)
- {
+ if (m_cursorGrab==GHOST_kGrabHide) {
//No need to set again cursor position, as it has not changed for Cocoa
setWindowCursorVisibility(true);
}
@@ -1422,9 +1417,9 @@ GHOST_TSuccess GHOST_WindowCocoa::setWindowCursorShape(GHOST_TStandardCursor sha
/** Reverse the bits in a GHOST_TUns8
static GHOST_TUns8 uns8ReverseBits(GHOST_TUns8 ch)
{
- ch= ((ch>>1)&0x55) | ((ch<<1)&0xAA);
- ch= ((ch>>2)&0x33) | ((ch<<2)&0xCC);
- ch= ((ch>>4)&0x0F) | ((ch<<4)&0xF0);
+ ch= ((ch >> 1) & 0x55) | ((ch << 1) & 0xAA);
+ ch= ((ch >> 2) & 0x33) | ((ch << 2) & 0xCC);
+ ch= ((ch >> 4) & 0x0F) | ((ch << 4) & 0xF0);
return ch;
}
*/
@@ -1433,10 +1428,10 @@ static GHOST_TUns8 uns8ReverseBits(GHOST_TUns8 ch)
/** Reverse the bits in a GHOST_TUns16 */
static GHOST_TUns16 uns16ReverseBits(GHOST_TUns16 shrt)
{
- shrt= ((shrt>>1)&0x5555) | ((shrt<<1)&0xAAAA);
- shrt= ((shrt>>2)&0x3333) | ((shrt<<2)&0xCCCC);
- shrt= ((shrt>>4)&0x0F0F) | ((shrt<<4)&0xF0F0);
- shrt= ((shrt>>8)&0x00FF) | ((shrt<<8)&0xFF00);
+ shrt = ((shrt >> 1) & 0x5555) | ((shrt << 1) & 0xAAAA);
+ shrt = ((shrt >> 2) & 0x3333) | ((shrt << 2) & 0xCCCC);
+ shrt = ((shrt >> 4) & 0x0F0F) | ((shrt << 4) & 0xF0F0);
+ shrt = ((shrt >> 8) & 0x00FF) | ((shrt << 8) & 0xFF00);
return shrt;
}
diff --git a/intern/ghost/intern/GHOST_WindowManager.cpp b/intern/ghost/intern/GHOST_WindowManager.cpp
index 2b7fb6686f2..daf1c2f2d22 100644
--- a/intern/ghost/intern/GHOST_WindowManager.cpp
+++ b/intern/ghost/intern/GHOST_WindowManager.cpp
@@ -32,8 +32,8 @@
/**
* Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date May 11, 2001
+ * \author Maarten Gribnau
+ * \date May 11, 2001
*/
#include "GHOST_WindowManager.h"
@@ -195,7 +195,7 @@ GHOST_IWindow *GHOST_WindowManager::getWindowAssociatedWithOSWindow(void *osWind
{
std::vector<GHOST_IWindow *>::iterator iter;
- for (iter = m_windows.begin(); iter != m_windows.end(); iter++) {
+ for (iter = m_windows.begin(); iter != m_windows.end(); ++iter) {
if ((*iter)->getOSWindow() == osWindow)
return *iter;
}
@@ -208,7 +208,7 @@ bool GHOST_WindowManager::getAnyModifiedState()
bool isAnyModified = false;
std::vector<GHOST_IWindow *>::iterator iter;
- for (iter = m_windows.begin(); iter != m_windows.end(); iter++) {
+ for (iter = m_windows.begin(); iter != m_windows.end(); ++iter) {
if ((*iter)->getModifiedState())
isAnyModified = true;
}
diff --git a/intern/ghost/intern/GHOST_WindowManager.h b/intern/ghost/intern/GHOST_WindowManager.h
index e754595e881..ecf0cb30860 100644
--- a/intern/ghost/intern/GHOST_WindowManager.h
+++ b/intern/ghost/intern/GHOST_WindowManager.h
@@ -41,8 +41,8 @@
/**
* Manages system windows (platform independent implementation).
- * @author Maarten Gribnau
- * @date May 11, 2001
+ * \author Maarten Gribnau
+ * \date May 11, 2001
*/
class GHOST_WindowManager
{
@@ -60,68 +60,68 @@ public:
/**
* Add a window to our list.
* It is only added if it is not already in the list.
- * @param window Pointer to the window to be added.
- * @return Indication of success.
+ * \param window Pointer to the window to be added.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess addWindow(GHOST_IWindow *window);
/**
* Remove a window from our list.
- * @param window Pointer to the window to be removed.
- * @return Indication of success.
+ * \param window Pointer to the window to be removed.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess removeWindow(const GHOST_IWindow *window);
/**
* Returns whether the window is in our list.
- * @param window Pointer to the window to query.
- * @return A boolean indicator.
+ * \param window Pointer to the window to query.
+ * \return A boolean indicator.
*/
virtual bool getWindowFound(const GHOST_IWindow *window) const;
/**
* Returns whether one of the windows is fullscreen.
- * @return A boolean indicator.
+ * \return A boolean indicator.
*/
virtual bool getFullScreen(void) const;
/**
* Returns pointer to the full-screen window.
- * @return The fll-screen window (0 if not in full-screen).
+ * \return The fll-screen window (0 if not in full-screen).
*/
virtual GHOST_IWindow *getFullScreenWindow(void) const;
/**
* Activates fullscreen mode for a window.
- * @param window The window displayed fullscreen.
- * @return Indication of success.
+ * \param window The window displayed fullscreen.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess beginFullScreen(GHOST_IWindow *window, const bool stereoVisual);
/**
* Closes fullscreen mode down.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess endFullScreen(void);
/**
* Sets new window as active window (the window receiving events).
* There can be only one window active which should be in the current window list.
- * @param window The new active window.
+ * \param window The new active window.
*/
virtual GHOST_TSuccess setActiveWindow(GHOST_IWindow *window);
/**
* Returns the active window (the window receiving events).
* There can be only one window active which should be in the current window list.
- * @return window The active window (or NULL if there is none).
+ * \return window The active window (or NULL if there is none).
*/
virtual GHOST_IWindow *getActiveWindow(void) const;
/**
* Set this window to be inactive (not receiving events).
- * @param window The window to decativate.
+ * \param window The window to decativate.
*/
virtual void setWindowInactive(const GHOST_IWindow *window);
@@ -129,7 +129,7 @@ public:
/**
* Return a vector of the windows currently managed by this
* class.
- * @warning It is very dangerous to mess with the contents of
+ * \warning It is very dangerous to mess with the contents of
* this vector. Please do not destroy or add windows use the
* interface above for this,
*/
@@ -137,14 +137,14 @@ public:
/**
* Finds the window associated with an OS window object/handle
- * @param osWindow The OS window object/handle
- * @return The associated window, null if none corresponds
+ * \param osWindow The OS window object/handle
+ * \return The associated window, null if none corresponds
*/
virtual GHOST_IWindow *getWindowAssociatedWithOSWindow(void *osWindow);
/**
* Return true if any windows has a modified status
- * @return True if any window has unsaved changes
+ * \return True if any window has unsaved changes
*/
bool getAnyModifiedState();
diff --git a/intern/ghost/intern/GHOST_WindowNULL.h b/intern/ghost/intern/GHOST_WindowNULL.h
index dcbb7d2b346..e3d092101b0 100644
--- a/intern/ghost/intern/GHOST_WindowNULL.h
+++ b/intern/ghost/intern/GHOST_WindowNULL.h
@@ -81,9 +81,9 @@ protected:
GHOST_TSuccess activateDrawingContext( ) { return GHOST_kFailure; }
~GHOST_WindowNULL( ) { /* nothing */ }
GHOST_TSuccess setWindowCursorVisibility( bool visible ) { return GHOST_kSuccess; }
- GHOST_TSuccess setState(GHOST_TWindowState state) { return GHOST_kSuccess; }
+ GHOST_TSuccess setState(GHOST_TWindowState state) { return GHOST_kSuccess; }
GHOST_TWindowState getState() const { return GHOST_kWindowStateNormal; }
- GHOST_TSuccess invalidate() { return GHOST_kSuccess; }
+ GHOST_TSuccess invalidate() { return GHOST_kSuccess; }
GHOST_TSuccess setOrder(GHOST_TWindowOrder order) { return GHOST_kSuccess; }
diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp
index e3fe28e2e64..c9c902fca8b 100644
--- a/intern/ghost/intern/GHOST_WindowWin32.cpp
+++ b/intern/ghost/intern/GHOST_WindowWin32.cpp
@@ -20,7 +20,7 @@
*
* The Original Code is: all of this file.
*
- * Contributor(s): none yet.
+ * Contributor(s): Maarten Gribnau.
*
* ***** END GPL LICENSE BLOCK *****
*/
@@ -29,13 +29,6 @@
* \ingroup GHOST
*/
-
-/**
- * Copyright (C) 2001 NaN Technologies B.V.
- * @author Maarten Gribnau
- * @date May 10, 2001
- */
-
#include <string.h>
#include "GHOST_WindowWin32.h"
#include "GHOST_SystemWin32.h"
@@ -50,7 +43,7 @@
// MSVC6 still doesn't define M_PI
#ifndef M_PI
-#define M_PI 3.1415926536
+# define M_PI 3.1415926536
#endif
// Some more multisample defines
@@ -58,14 +51,14 @@
#define WGL_SAMPLES_ARB 0x2042
// win64 doesn't define GWL_USERDATA
-#ifdef WIN32
-#ifndef GWL_USERDATA
-#define GWL_USERDATA GWLP_USERDATA
-#define GWL_WNDPROC GWLP_WNDPROC
-#endif
+#ifdef WIN32 /* why? - probably should remove */
+# ifndef GWL_USERDATA
+# define GWL_USERDATA GWLP_USERDATA
+# define GWL_WNDPROC GWLP_WNDPROC
+# endif
#endif
-wchar_t *GHOST_WindowWin32::s_windowClassName = L"GHOST_WindowClass";
+const wchar_t *GHOST_WindowWin32::s_windowClassName = L"GHOST_WindowClass";
const int GHOST_WindowWin32::s_maxTitleLength = 128;
HGLRC GHOST_WindowWin32::s_firsthGLRc = NULL;
HDC GHOST_WindowWin32::s_firstHDC = NULL;
@@ -149,7 +142,6 @@ GHOST_WindowWin32::GHOST_WindowWin32(
m_tablet(0),
m_maxPressure(0),
m_multisample(numOfAASamples),
- m_parentWindowHwnd(parentwindowhwnd),
m_multisampleEnabled(msEnabled),
m_msPixelFormat(msPixelFormat),
//For recreation
@@ -160,7 +152,8 @@ GHOST_WindowWin32::GHOST_WindowWin32(
m_height(height),
m_normal_state(GHOST_kWindowStateNormal),
m_stereo(stereoVisual),
- m_nextWindow(NULL)
+ m_nextWindow(NULL),
+ m_parentWindowHwnd(parentwindowhwnd)
{
OSVERSIONINFOEX versionInfo;
bool hasMinVersionForTaskbar = false;
@@ -271,6 +264,10 @@ GHOST_WindowWin32::GHOST_WindowWin32(
// Register this window as a droptarget. Requires m_hWnd to be valid.
// Note that OleInitialize(0) has to be called prior to this. Done in GHOST_SystemWin32.
m_dropTarget = new GHOST_DropTargetWin32(this, m_system);
+ if (m_dropTarget) {
+ ::RegisterDragDrop(m_hWnd, m_dropTarget);
+ }
+
// Store a pointer to this class in the window structure
::SetWindowLongPtr(m_hWnd, GWL_USERDATA, (LONG_PTR) this);
@@ -415,7 +412,13 @@ GHOST_WindowWin32::~GHOST_WindowWin32()
m_hDC = 0;
}
if (m_hWnd) {
- m_dropTarget->Release(); // frees itself.
+ if (m_dropTarget) {
+ // Disable DragDrop
+ RevokeDragDrop(m_hWnd);
+ // Release our reference of the DropTarget and it will delete itself eventually.
+ m_dropTarget->Release();
+ }
+
::DestroyWindow(m_hWnd);
m_hWnd = 0;
}
@@ -1198,6 +1201,7 @@ static GHOST_TUns8 uns8ReverseBits(GHOST_TUns8 ch)
return ch;
}
+#if 0 /* UNUSED */
/** Reverse the bits in a GHOST_TUns16 */
static GHOST_TUns16 uns16ReverseBits(GHOST_TUns16 shrt)
{
@@ -1207,6 +1211,7 @@ static GHOST_TUns16 uns16ReverseBits(GHOST_TUns16 shrt)
shrt = ((shrt >> 8) & 0x00FF) | ((shrt << 8) & 0xFF00);
return shrt;
}
+#endif
GHOST_TSuccess GHOST_WindowWin32::setWindowCustomCursorShape(GHOST_TUns8 bitmap[16][2],
GHOST_TUns8 mask[16][2],
int hotX, int hotY)
@@ -1343,7 +1348,7 @@ static int EnumPixelFormats(HDC hdc)
::DescribePixelFormat(hdc, i, sizeof(PIXELFORMATDESCRIPTOR), &pfd);
w = WeightPixelFormat(pfd);
// be strict on stereo
- if (!((sPreferredFormat.dwFlags ^ pfd.dwFlags) & PFD_STEREO)) {
+ if (!((sPreferredFormat.dwFlags ^ pfd.dwFlags) & PFD_STEREO)) {
if (w > weight) {
weight = w;
iPixelFormat = i;
diff --git a/intern/ghost/intern/GHOST_WindowWin32.h b/intern/ghost/intern/GHOST_WindowWin32.h
index 28ba470f75a..9e4377b8225 100644
--- a/intern/ghost/intern/GHOST_WindowWin32.h
+++ b/intern/ghost/intern/GHOST_WindowWin32.h
@@ -61,8 +61,8 @@ typedef BOOL (API * GHOST_WIN32_WTPacket)(HCTX, UINT, LPVOID);
/**
* GHOST window on M$ Windows OSs.
- * @author Maarten Gribnau
- * @date May 10, 2001
+ * \author Maarten Gribnau
+ * \date May 10, 2001
*/
class GHOST_WindowWin32 : public GHOST_Window {
public:
@@ -70,15 +70,15 @@ public:
* Constructor.
* Creates a new window and opens it.
* To check if the window was created properly, use the getValid() method.
- * @param title The text shown in the title bar of the window.
- * @param left The coordinate of the left edge of the window.
- * @param top The coordinate of the top edge of the window.
- * @param width The width the window.
- * @param height The height the window.
- * @param state The state the window is initially opened with.
- * @param type The type of drawing context installed in this window.
- * @param stereoVisual Stereo visual for quad buffered stereo.
- * @param numOfAASamples Number of samples used for AA (zero if no AA)
+ * \param title The text shown in the title bar of the window.
+ * \param left The coordinate of the left edge of the window.
+ * \param top The coordinate of the top edge of the window.
+ * \param width The width the window.
+ * \param height The height the window.
+ * \param state The state the window is initially opened with.
+ * \param type The type of drawing context installed in this window.
+ * \param stereoVisual Stereo visual for quad buffered stereo.
+ * \param numOfAASamples Number of samples used for AA (zero if no AA)
*/
GHOST_WindowWin32(
GHOST_SystemWin32 *system,
@@ -104,115 +104,115 @@ public:
/**
* Returns the window to replace this one if it's getting replaced
- * @return The window replacing this one.
+ * \return The window replacing this one.
*/
GHOST_Window *getNextWindow();
/**
* Returns indication as to whether the window is valid.
- * @return The validity of the window.
+ * \return The validity of the window.
*/
virtual bool getValid() const;
/**
* Access to the handle of the window.
- * @return The handle of the window.
+ * \return The handle of the window.
*/
virtual HWND getHWND() const;
/**
* Sets the title displayed in the title bar.
- * @param title The title to display in the title bar.
+ * \param title The title to display in the title bar.
*/
virtual void setTitle(const STR_String& title);
/**
* Returns the title displayed in the title bar.
- * @param title The title displayed in the title bar.
+ * \param title The title displayed in the title bar.
*/
virtual void getTitle(STR_String& title) const;
/**
* Returns the window rectangle dimensions.
* The dimensions are given in screen coordinates that are relative to the upper-left corner of the screen.
- * @param bounds The bounding rectangle of the window.
+ * \param bounds The bounding rectangle of the window.
*/
virtual void getWindowBounds(GHOST_Rect& bounds) const;
/**
* Returns the client rectangle dimensions.
* The left and top members of the rectangle are always zero.
- * @param bounds The bounding rectangle of the cleient area of the window.
+ * \param bounds The bounding rectangle of the cleient area of the window.
*/
virtual void getClientBounds(GHOST_Rect& bounds) const;
/**
* Resizes client rectangle width.
- * @param width The new width of the client area of the window.
+ * \param width The new width of the client area of the window.
*/
virtual GHOST_TSuccess setClientWidth(GHOST_TUns32 width);
/**
* Resizes client rectangle height.
- * @param height The new height of the client area of the window.
+ * \param height The new height of the client area of the window.
*/
virtual GHOST_TSuccess setClientHeight(GHOST_TUns32 height);
/**
* Resizes client rectangle.
- * @param width The new width of the client area of the window.
- * @param height The new height of the client area of the window.
+ * \param width The new width of the client area of the window.
+ * \param height The new height of the client area of the window.
*/
virtual GHOST_TSuccess setClientSize(GHOST_TUns32 width, GHOST_TUns32 height);
/**
* Returns the state of the window (normal, minimized, maximized).
- * @return The state of the window.
+ * \return The state of the window.
*/
virtual GHOST_TWindowState getState() const;
/**
* Converts a point in screen coordinates to client rectangle coordinates
- * @param inX The x-coordinate on the screen.
- * @param inY The y-coordinate on the screen.
- * @param outX The x-coordinate in the client rectangle.
- * @param outY The y-coordinate in the client rectangle.
+ * \param inX The x-coordinate on the screen.
+ * \param inY The y-coordinate on the screen.
+ * \param outX The x-coordinate in the client rectangle.
+ * \param outY The y-coordinate in the client rectangle.
*/
virtual void screenToClient(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
/**
* Converts a point in screen coordinates to client rectangle coordinates
- * @param inX The x-coordinate in the client rectangle.
- * @param inY The y-coordinate in the client rectangle.
- * @param outX The x-coordinate on the screen.
- * @param outY The y-coordinate on the screen.
+ * \param inX The x-coordinate in the client rectangle.
+ * \param inY The y-coordinate in the client rectangle.
+ * \param outX The x-coordinate on the screen.
+ * \param outY The y-coordinate on the screen.
*/
virtual void clientToScreen(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY) const;
/**
* Sets the state of the window (normal, minimized, maximized).
- * @param state The state of the window.
- * @return Indication of success.
+ * \param state The state of the window.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setState(GHOST_TWindowState state);
/**
* Sets the order of the window (bottom, top).
- * @param order The order of the window.
- * @return Indication of success.
+ * \param order The order of the window.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess setOrder(GHOST_TWindowOrder order);
/**
* Swaps front and back buffers of a window.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess swapBuffers();
/**
* Activates the drawing context of this window.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess activateDrawingContext();
@@ -223,7 +223,7 @@ public:
/**
* Sets the progress bar value displayed in the window/application icon
- * @param progress The progress %
+ * \param progress The progress %
*/
virtual GHOST_TSuccess setProgressBar(float progress);
@@ -234,9 +234,9 @@ public:
/**
* Returns the name of the window class.
- * @return The name of the window class.
+ * \return The name of the window class.
*/
- static wchar_t *getWindowClassName() {
+ static const wchar_t *getWindowClassName() {
return s_windowClassName;
}
@@ -245,7 +245,7 @@ public:
* for any real button press, controls mouse
* capturing).
*
- * @param press
+ * \param press
* 0 - mouse pressed
* 1 - mouse released
* 2 - operator grab
@@ -261,8 +261,8 @@ public:
/**
* Loads the windows equivalent of a standard GHOST cursor.
- * @param visible Flag for cursor visibility.
- * @param cursorShape The cursor shape.
+ * \param visible Flag for cursor visibility.
+ * \param cursorShape The cursor shape.
*/
void loadCursor(bool visible, GHOST_TStandardCursor cursorShape) const;
@@ -279,14 +279,14 @@ protected:
/**
* Tries to install a rendering context in this window.
- * @param type The type of rendering context installed.
- * @return Indication of success.
+ * \param type The type of rendering context installed.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess installDrawingContext(GHOST_TDrawingContextType type);
/**
* Removes the current drawing context.
- * @return Indication of success.
+ * \return Indication of success.
*/
virtual GHOST_TSuccess removeDrawingContext();
@@ -299,7 +299,7 @@ protected:
/**
* Sets the cursor grab on the window using native window system calls.
* Using registerMouseClickEvent.
- * @param mode GHOST_TGrabCursorMode.
+ * \param mode GHOST_TGrabCursorMode.
*/
virtual GHOST_TSuccess setWindowCursorGrab(GHOST_TGrabCursorMode mode);
@@ -344,7 +344,7 @@ protected:
static HDC s_firstHDC;
/** Flag for if window has captured the mouse */
bool m_hasMouseCaptured;
- /** Flag if an operator grabs the mouse with WM_cursor_grab/ungrab()
+ /** Flag if an operator grabs the mouse with WM_cursor_grab_enable/ungrab()
* Multiple grabs must be realesed with a single ungrab*/
bool m_hasGrabMouse;
/** Count of number of pressed buttons */
@@ -355,7 +355,7 @@ protected:
/** ITaskbarList3 structure for progress bar*/
ITaskbarList3 *m_Bar;
- static wchar_t *s_windowClassName;
+ static const wchar_t *s_windowClassName;
static const int s_maxTitleLength;
/** WinTab dll handle */
diff --git a/intern/ghost/intern/GHOST_WindowX11.cpp b/intern/ghost/intern/GHOST_WindowX11.cpp
index cdb274b0e61..dd1930a241b 100644
--- a/intern/ghost/intern/GHOST_WindowX11.cpp
+++ b/intern/ghost/intern/GHOST_WindowX11.cpp
@@ -39,7 +39,7 @@
#include "GHOST_DropTargetX11.h"
#endif
-// For standard X11 cursors
+/* For standard X11 cursors */
#include <X11/cursorfont.h>
#include <X11/Xatom.h>
@@ -53,8 +53,8 @@
#include <algorithm>
#include <string>
-// For obscure full screen mode stuuf
-// lifted verbatim from blut.
+/* For obscure full screen mode stuuf
+ * lifted verbatim from blut. */
typedef struct {
long flags;
@@ -76,7 +76,7 @@ typedef struct {
*/
#define _NET_WM_STATE_REMOVE 0
#define _NET_WM_STATE_ADD 1
-#define _NET_WM_STATE_TOGGLE 2
+// #define _NET_WM_STATE_TOGGLE 2 // UNUSED
/*
import bpy
@@ -95,7 +95,7 @@ typedef struct {
f.write('\n')
*/
-// See the python script above to regenerate the 48x48 icon within blender
+/* See the python script above to regenerate the 48x48 icon within blender */
#define BLENDER_ICON_WIDTH 48
#define BLENDER_ICON_HEIGHT 48
static unsigned char BLENDER_ICON_48x48x24[] = {
@@ -178,13 +178,13 @@ GHOST_WindowX11(
m_custom_cursor(None)
{
- // Set up the minimum atrributes that we require and see if
- // X can find us a visual matching those requirements.
+ /* Set up the minimum atrributes that we require and see if
+ * X can find us a visual matching those requirements. */
int attributes[40], i, samples;
Atom atoms[2];
int natom;
- int glxVersionMajor, glxVersionMinor; // As in GLX major.minor
+ int glxVersionMajor, glxVersionMinor; /* As in GLX major.minor */
#ifdef WITH_X11_XINPUT
/* initialize incase X11 fails to load */
@@ -251,11 +251,11 @@ GHOST_WindowX11(
}
}
- // Create a bunch of attributes needed to create an X window.
+ /* Create a bunch of attributes needed to create an X window. */
- // First create a colormap for the window and visual.
- // This seems pretty much a legacy feature as we are in rgba mode anyway.
+ /* First create a colormap for the window and visual.
+ * This seems pretty much a legacy feature as we are in rgba mode anyway. */
XSetWindowAttributes xattributes;
memset(&xattributes, 0, sizeof(xattributes));
@@ -268,7 +268,7 @@ GHOST_WindowX11(
xattributes.border_pixel = 0;
- // Specify which events we are interested in hearing.
+ /* Specify which events we are interested in hearing. */
xattributes.event_mask =
ExposureMask | StructureNotifyMask |
@@ -277,7 +277,7 @@ GHOST_WindowX11(
ButtonPressMask | ButtonReleaseMask |
PointerMotionMask | FocusChangeMask | PropertyChangeMask;
- // create the window!
+ /* create the window! */
;
if (parentWindow == 0) {
@@ -287,7 +287,7 @@ GHOST_WindowX11(
top,
width,
height,
- 0, // no border.
+ 0, /* no border. */
m_visual->depth,
InputOutput,
m_visual->visual,
@@ -311,12 +311,12 @@ GHOST_WindowX11(
m_window = XCreateWindow(m_display,
- parentWindow, // reparent against embedder
+ parentWindow, /* reparent against embedder */
left,
top,
width,
height,
- 0, // no border.
+ 0, /* no border. */
m_visual->depth,
InputOutput,
m_visual->visual,
@@ -353,9 +353,9 @@ GHOST_WindowX11(
m_post_init = False;
m_post_state = GHOST_kWindowStateNormal;
}
-
- // Create some hints for the window manager on how
- // we want this window treated.
+
+ /* Create some hints for the window manager on how
+ * we want this window treated. */
XSizeHints *xsizehints = XAllocSizeHints();
xsizehints->flags = PPosition | PSize | PMinSize | PMaxSize;
@@ -363,8 +363,8 @@ GHOST_WindowX11(
xsizehints->y = top;
xsizehints->width = width;
xsizehints->height = height;
- xsizehints->min_width = 320; // size hints, could be made apart of the ghost api
- xsizehints->min_height = 240; // limits are also arbitrary, but should not allow 1x1 window
+ xsizehints->min_width = 320; /* size hints, could be made apart of the ghost api */
+ xsizehints->min_height = 240; /* limits are also arbitrary, but should not allow 1x1 window */
xsizehints->max_width = 65535;
xsizehints->max_height = 65535;
XSetWMNormalHints(m_display, m_window, xsizehints);
@@ -401,13 +401,10 @@ GHOST_WindowX11(
}
#if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
- m_xic = XCreateIC(m_system->getX11_XIM(), XNClientWindow, m_window, XNFocusWindow, m_window,
- XNInputStyle, XIMPreeditNothing | XIMStatusNothing,
- XNResourceName, GHOST_X11_RES_NAME, XNResourceClass,
- GHOST_X11_RES_CLASS, NULL);
+ m_xic = NULL;
#endif
- // Set the window icon
+ /* Set the window icon */
XWMHints *xwmhints = XAllocWMHints();
XImage *x_image, *mask_image;
Pixmap icon_pixmap, mask_pixmap;
@@ -419,8 +416,8 @@ GHOST_WindowX11(
x_image = XCreateImage(display, m_visual->visual, 24, ZPixmap, 0, NULL, BLENDER_ICON_WIDTH, BLENDER_ICON_HEIGHT, 32, 0);
mask_image = XCreateImage(display, m_visual->visual, 1, ZPixmap, 0, NULL, BLENDER_ICON_WIDTH, BLENDER_ICON_HEIGHT, 8, 0);
- x_image->data = (char *)malloc(x_image->bytes_per_line * BLENDER_ICON_HEIGHT);
- mask_image->data = (char *)malloc(mask_image->bytes_per_line * BLENDER_ICON_HEIGHT);
+ x_image->data = (char *)calloc(x_image->bytes_per_line * BLENDER_ICON_HEIGHT, 1);
+ mask_image->data = (char *)calloc(mask_image->bytes_per_line * BLENDER_ICON_HEIGHT, 1);
/* copy the BLENDER_ICON_48x48x24 into the XImage */
unsigned char *col = BLENDER_ICON_48x48x24;
@@ -429,7 +426,11 @@ GHOST_WindowX11(
for (py = 0; py < BLENDER_ICON_HEIGHT; py++, col += 3) {
/* mask out pink */
if (col[0] == 255 && col[1] == 0 && col[2] == 255) {
+#if 0
+ /* instead, use calloc above */
+ XPutPixel(x_image, px, py, 0); /* avoid uninitialized memory, otherwise not needed */
XPutPixel(mask_image, px, py, 0);
+#endif
}
else {
XPutPixel(x_image, px, py, (col[0] << 16) + (col[1] << 8) + col[2]);
@@ -441,7 +442,7 @@ GHOST_WindowX11(
XPutImage(display, icon_pixmap, gc_icon, x_image, 0, 0, 0, 0, BLENDER_ICON_WIDTH, BLENDER_ICON_HEIGHT);
XPutImage(display, mask_pixmap, gc_mask, mask_image, 0, 0, 0, 0, BLENDER_ICON_WIDTH, BLENDER_ICON_HEIGHT);
- // Now the pixmap is ok to assign to the window as a hint
+ /* Now the pixmap is ok to assign to the window as a hint */
xwmhints->icon_pixmap = icon_pixmap;
xwmhints->icon_mask = mask_pixmap;
XFreeGC(display, gc_icon);
@@ -454,7 +455,7 @@ GHOST_WindowX11(
xwmhints->flags = InputHint | IconPixmapHint | IconMaskHint | StateHint;
XSetWMHints(display, m_window, xwmhints);
XFree(xwmhints);
- // done setting the icon
+ /* done setting the icon */
setTitle(title);
@@ -462,7 +463,7 @@ GHOST_WindowX11(
initXInputDevices();
#endif
- // now set up the rendering context.
+ /* now set up the rendering context. */
if (installDrawingContext(type) == GHOST_kSuccess) {
m_valid_setup = true;
GHOST_PRINT("Created window\n");
@@ -474,6 +475,47 @@ GHOST_WindowX11(
XFlush(m_display);
}
+#if defined(WITH_X11_XINPUT) && defined(X_HAVE_UTF8_STRING)
+static void destroyICCallback(XIC xic, XPointer ptr, XPointer data)
+{
+ GHOST_PRINT("XIM input context destroyed\n");
+
+ if (ptr) {
+ *(XIC *)ptr = NULL;
+ }
+}
+
+bool GHOST_WindowX11::createX11_XIC()
+{
+ XIM xim = m_system->getX11_XIM();
+ if (!xim)
+ return false;
+
+ XICCallback destroy;
+ destroy.callback = (XICProc)destroyICCallback;
+ destroy.client_data = (XPointer)&m_xic;
+ m_xic = XCreateIC(xim, XNClientWindow, m_window, XNFocusWindow, m_window,
+ XNInputStyle, XIMPreeditNothing | XIMStatusNothing,
+ XNResourceName, GHOST_X11_RES_NAME,
+ XNResourceClass, GHOST_X11_RES_CLASS,
+ XNDestroyCallback, &destroy,
+ NULL);
+ if (!m_xic)
+ return false;
+
+ unsigned long fevent;
+ XGetICValues(m_xic, XNFilterEvents, &fevent, NULL);
+ XSelectInput(m_display, m_window,
+ ExposureMask | StructureNotifyMask |
+ KeyPressMask | KeyReleaseMask |
+ EnterWindowMask | LeaveWindowMask |
+ ButtonPressMask | ButtonReleaseMask |
+ PointerMotionMask | FocusChangeMask |
+ PropertyChangeMask | fevent);
+ return true;
+}
+#endif
+
#ifdef WITH_X11_XINPUT
/*
* Dummy function to get around IO Handler exiting if device invalid
@@ -706,8 +748,8 @@ setTitle(
(const unsigned char *) title.ReadPtr(),
title.Length());
-// This should convert to valid x11 string
-// and getTitle would need matching change
+ /* This should convert to valid x11 string
+ * and getTitle would need matching change */
XStoreName(m_display, m_window, title);
XFlush(m_display);
@@ -730,8 +772,8 @@ GHOST_WindowX11::
getWindowBounds(
GHOST_Rect& bounds) const
{
- // Getting the window bounds under X11 is not
- // really supported (nor should it be desired).
+ /* Getting the window bounds under X11 is not
+ * really supported (nor should it be desired). */
getClientBounds(bounds);
}
@@ -806,7 +848,7 @@ screenToClient(
GHOST_TInt32& outX,
GHOST_TInt32& outY) const
{
- // This is correct!
+ /* This is correct! */
int ax, ay;
Window temp;
@@ -1143,7 +1185,6 @@ GHOST_TSuccess GHOST_WindowX11::setState(GHOST_TWindowState state)
}
#include <iostream>
-using namespace std;
GHOST_TSuccess
GHOST_WindowX11::
@@ -1233,18 +1274,18 @@ GHOST_TSuccess
GHOST_WindowX11::
invalidate()
{
- // So the idea of this function is to generate an expose event
- // for the window.
- // Unfortunately X does not handle expose events for you and
- // it is the client's job to refresh the dirty part of the window.
- // We need to queue up invalidate calls and generate GHOST events
- // for them in the system.
-
- // We implement this by setting a boolean in this class to concatenate
- // all such calls into a single event for this window.
-
- // At the same time we queue the dirty windows in the system class
- // and generate events for them at the next processEvents call.
+ /* So the idea of this function is to generate an expose event
+ * for the window.
+ * Unfortunately X does not handle expose events for you and
+ * it is the client's job to refresh the dirty part of the window.
+ * We need to queue up invalidate calls and generate GHOST events
+ * for them in the system.
+ *
+ * We implement this by setting a boolean in this class to concatenate
+ * all such calls into a single event for this window.
+ *
+ * At the same time we queue the dirty windows in the system class
+ * and generate events for them at the next processEvents call. */
if (m_invalid_window == false) {
m_system->addDirtyWindow(this);
@@ -1273,8 +1314,8 @@ validate()
*/
GHOST_WindowX11::
-~GHOST_WindowX11(
- ){
+~GHOST_WindowX11()
+{
static Atom Primary_atom, Clipboard_atom;
Window p_owner, c_owner;
/*Change the owner of the Atoms to None if we are the owner*/
@@ -1285,7 +1326,7 @@ GHOST_WindowX11::
c_owner = XGetSelectionOwner(m_display, Clipboard_atom);
std::map<unsigned int, Cursor>::iterator it = m_standard_cursors.begin();
- for (; it != m_standard_cursors.end(); it++) {
+ for (; it != m_standard_cursors.end(); ++it) {
XFreeCursor(m_display, it->second);
}
@@ -1335,15 +1376,15 @@ GHOST_WindowX11::
/**
* Tries to install a rendering context in this window.
- * @param type The type of rendering context installed.
- * @return Indication as to whether installation has succeeded.
+ * \param type The type of rendering context installed.
+ * \return Indication as to whether installation has succeeded.
*/
GHOST_TSuccess
GHOST_WindowX11::
installDrawingContext(
GHOST_TDrawingContextType type)
{
- // only support openGL for now.
+ /* only support openGL for now. */
GHOST_TSuccess success;
switch (type) {
case GHOST_kDrawingContextTypeOpenGL:
@@ -1377,7 +1418,7 @@ installDrawingContext(
/**
* Removes the current drawing context.
- * @return Indication as to whether removal has succeeded.
+ * \return Indication as to whether removal has succeeded.
*/
GHOST_TSuccess
GHOST_WindowX11::
diff --git a/intern/ghost/intern/GHOST_WindowX11.h b/intern/ghost/intern/GHOST_WindowX11.h
index a04a43bc33a..5b2ffced29c 100644
--- a/intern/ghost/intern/GHOST_WindowX11.h
+++ b/intern/ghost/intern/GHOST_WindowX11.h
@@ -53,8 +53,8 @@ class GHOST_DropTargetX11;
/**
* X11 implementation of GHOST_IWindow.
* Dimensions are given in screen coordinates that are relative to the upper-left corner of the screen.
- * @author Laurence Bourn
- * @date October 26, 2001
+ * \author Laurence Bourn
+ * \date October 26, 2001
*/
class GHOST_WindowX11 : public GHOST_Window
@@ -64,16 +64,16 @@ public:
* Constructor.
* Creates a new window and opens it.
* To check if the window was created properly, use the getValid() method.
- * @param title The text shown in the title bar of the window.
- * @param left The coordinate of the left edge of the window.
- * @param top The coordinate of the top edge of the window.
- * @param width The width the window.
- * @param height The height the window.
- * @param state The state the window is initially opened with.
- * @param parentWindow Parent (embedder) window
- * @param type The type of drawing context installed in this window.
- * @param stereoVisual Stereo visual for quad buffered stereo.
- * @param numOfAASamples Number of samples used for AA (zero if no AA)
+ * \param title The text shown in the title bar of the window.
+ * \param left The coordinate of the left edge of the window.
+ * \param top The coordinate of the top edge of the window.
+ * \param width The width the window.
+ * \param height The height the window.
+ * \param state The state the window is initially opened with.
+ * \param parentWindow Parent (embedder) window
+ * \param type The type of drawing context installed in this window.
+ * \param stereoVisual Stereo visual for quad buffered stereo.
+ * \param numOfAASamples Number of samples used for AA (zero if no AA)
*/
GHOST_WindowX11(
GHOST_SystemX11 *system,
@@ -176,7 +176,7 @@ public:
~GHOST_WindowX11();
/**
- * @section x11specific X11 system specific calls
+ * \section x11specific X11 system specific calls
*/
/**
@@ -234,6 +234,8 @@ public:
XIC getX11_XIC() {
return m_xic;
}
+
+ bool createX11_XIC();
#endif
#ifdef WITH_XDND
@@ -254,8 +256,8 @@ public:
protected:
/**
* Tries to install a rendering context in this window.
- * @param type The type of rendering context installed.
- * @return Indication as to whether installation has succeeded.
+ * \param type The type of rendering context installed.
+ * \return Indication as to whether installation has succeeded.
*/
GHOST_TSuccess
installDrawingContext(
@@ -264,7 +266,7 @@ protected:
/**
* Removes the current drawing context.
- * @return Indication as to whether removal has succeeded.
+ * \return Indication as to whether removal has succeeded.
*/
GHOST_TSuccess
removeDrawingContext(
@@ -282,7 +284,7 @@ protected:
/**
* Sets the cursor grab on the window using
* native window system calls.
- * @param warp Only used when grab is enabled, hides the mouse and allows gragging outside the screen.
+ * \param warp Only used when grab is enabled, hides the mouse and allows gragging outside the screen.
*/
GHOST_TSuccess
setWindowCursorGrab(
diff --git a/intern/ghost/test/gears/GHOST_C-Test.c b/intern/ghost/test/gears/GHOST_C-Test.c
index 98e2b9c2497..00ae4bb25b4 100644
--- a/intern/ghost/test/gears/GHOST_C-Test.c
+++ b/intern/ghost/test/gears/GHOST_C-Test.c
@@ -31,8 +31,8 @@
* Simple test file for the GHOST library.
* The OpenGL gear code is taken from the Qt sample code which,
* in turn, is probably taken from somewhere as well.
- * @author Maarten Gribnau
- * @date May 31, 2001
+ * \author Maarten Gribnau
+ * \date May 31, 2001
*/
#include <stdlib.h>
diff --git a/intern/ghost/test/gears/GHOST_Test.cpp b/intern/ghost/test/gears/GHOST_Test.cpp
index c02272094f4..1e641a8643c 100644
--- a/intern/ghost/test/gears/GHOST_Test.cpp
+++ b/intern/ghost/test/gears/GHOST_Test.cpp
@@ -30,8 +30,8 @@
* Simple test file for the GHOST library.
* The OpenGL gear code is taken from the Qt sample code which,
* in turn, is probably taken from somewhere as well.
- * @author Maarten Gribnau
- * @date May 31, 2001
+ * \author Maarten Gribnau
+ * \date May 31, 2001
* Stereo code by Raymond de Vries, januari 2002
*/
diff --git a/intern/ghost/test/multitest/EventToBuf.c b/intern/ghost/test/multitest/EventToBuf.c
index 034fbe04447..aba80784a72 100644
--- a/intern/ghost/test/multitest/EventToBuf.c
+++ b/intern/ghost/test/multitest/EventToBuf.c
@@ -203,33 +203,37 @@ void event_to_buf(GHOST_EventHandle evt, char buf[128])
void *data= GHOST_GetEventData(evt);
char *pos= buf;
- pos+= sprintf(pos, "event: %6.2f, %16s", time, eventtype_to_string(type));
+ pos += sprintf(pos, "event: %6.2f, %16s", time, eventtype_to_string(type));
if (win) {
char *s= GHOST_GetTitle(win);
- pos+= sprintf(pos, " - win: %s", s);
+ pos += sprintf(pos, " - win: %s", s);
free(s);
- } else {
+ }
+ else {
pos+= sprintf(pos, " - sys evt");
}
switch (type) {
- case GHOST_kEventCursorMove: {
- GHOST_TEventCursorData *cd= data;
- pos+= sprintf(pos, " - pos: (%d, %d)", cd->x, cd->y);
- break;
- }
- case GHOST_kEventButtonDown:
- case GHOST_kEventButtonUp: {
- GHOST_TEventButtonData *bd= data;
- pos+= sprintf(pos, " - but: %d", bd->button);
- break;
- }
-
- case GHOST_kEventKeyDown:
- case GHOST_kEventKeyUp: {
- GHOST_TEventKeyData *kd= data;
- pos+= sprintf(pos, " - key: %s (%d)", keytype_to_string(kd->key), kd->key);
- if (kd->ascii) pos+= sprintf(pos, " ascii: '%c' (%d)", kd->ascii, kd->ascii);
- break;
- }
+ case GHOST_kEventCursorMove:
+ {
+ GHOST_TEventCursorData *cd= data;
+ pos += sprintf(pos, " - pos: (%d, %d)", cd->x, cd->y);
+ break;
+ }
+ case GHOST_kEventButtonDown:
+ case GHOST_kEventButtonUp:
+ {
+ GHOST_TEventButtonData *bd= data;
+ pos += sprintf(pos, " - but: %d", bd->button);
+ break;
+ }
+
+ case GHOST_kEventKeyDown:
+ case GHOST_kEventKeyUp:
+ {
+ GHOST_TEventKeyData *kd= data;
+ pos += sprintf(pos, " - key: %s (%d)", keytype_to_string(kd->key), kd->key);
+ if (kd->ascii) pos+= sprintf(pos, " ascii: '%c' (%d)", kd->ascii, kd->ascii);
+ break;
+ }
}
}
diff --git a/intern/ghost/test/multitest/MultiTest.c b/intern/ghost/test/multitest/MultiTest.c
index da1c56d0a3a..5d207dafaaf 100644
--- a/intern/ghost/test/multitest/MultiTest.c
+++ b/intern/ghost/test/multitest/MultiTest.c
@@ -267,7 +267,8 @@ static void mainwindow_handle(void *priv, GHOST_EventHandle evt)
mainwindow_log(mw, buf);
switch (type) {
- case GHOST_kEventCursorMove: {
+ case GHOST_kEventCursorMove:
+ {
GHOST_TEventCursorData *cd = GHOST_GetEventData(evt);
int x, y;
GHOST_ScreenToClient(mw->win, cd->x, cd->y, &x, &y);
@@ -275,13 +276,15 @@ static void mainwindow_handle(void *priv, GHOST_EventHandle evt)
break;
}
case GHOST_kEventButtonDown:
- case GHOST_kEventButtonUp: {
+ case GHOST_kEventButtonUp:
+ {
GHOST_TEventButtonData *bd = GHOST_GetEventData(evt);
mainwindow_do_button(mw, bd->button, (type == GHOST_kEventButtonDown));
break;
}
case GHOST_kEventKeyDown:
- case GHOST_kEventKeyUp: {
+ case GHOST_kEventKeyUp:
+ {
GHOST_TEventKeyData *kd = GHOST_GetEventData(evt);
mainwindow_do_key(mw, kd->key, (type == GHOST_kEventKeyDown));
break;
@@ -541,7 +544,8 @@ static void loggerwindow_handle(void *priv, GHOST_EventHandle evt)
GHOST_TEventType type = GHOST_GetEventType(evt);
switch (type) {
- case GHOST_kEventCursorMove: {
+ case GHOST_kEventCursorMove:
+ {
GHOST_TEventCursorData *cd = GHOST_GetEventData(evt);
int x, y;
GHOST_ScreenToClient(lw->win, cd->x, cd->y, &x, &y);
@@ -549,13 +553,15 @@ static void loggerwindow_handle(void *priv, GHOST_EventHandle evt)
break;
}
case GHOST_kEventButtonDown:
- case GHOST_kEventButtonUp: {
+ case GHOST_kEventButtonUp:
+ {
GHOST_TEventButtonData *bd = GHOST_GetEventData(evt);
loggerwindow_do_button(lw, bd->button, (type == GHOST_kEventButtonDown));
break;
}
case GHOST_kEventKeyDown:
- case GHOST_kEventKeyUp: {
+ case GHOST_kEventKeyUp:
+ {
GHOST_TEventKeyData *kd = GHOST_GetEventData(evt);
loggerwindow_do_key(lw, kd->key, (type == GHOST_kEventKeyDown));
break;
@@ -743,13 +749,15 @@ static void extrawindow_handle(void *priv, GHOST_EventHandle evt)
switch (type) {
case GHOST_kEventKeyDown:
- case GHOST_kEventKeyUp: {
+ case GHOST_kEventKeyUp:
+ {
GHOST_TEventKeyData *kd = GHOST_GetEventData(evt);
extrawindow_do_key(ew, kd->key, (type == GHOST_kEventKeyDown));
break;
}
- case GHOST_kEventCursorMove: {
+ case GHOST_kEventCursorMove:
+ {
extrawindow_spin_cursor(ew, GHOST_GetEventTime(evt));
break;
}
diff --git a/intern/guardedalloc/MEM_guardedalloc.h b/intern/guardedalloc/MEM_guardedalloc.h
index 4bb8cba6810..6973c19dea9 100644
--- a/intern/guardedalloc/MEM_guardedalloc.h
+++ b/intern/guardedalloc/MEM_guardedalloc.h
@@ -20,19 +20,19 @@
*
* The Original Code is: all of this file.
*
- * Contributor(s): none yet.
+ * Contributor(s): Brecht Van Lommel
+ * Campbell Barton
*
* ***** END GPL LICENSE BLOCK *****
*/
-/** \file MEM_guardedalloc.h
- * \ingroup MEM
+/**
+ * \file MEM_guardedalloc.h
+ * \ingroup MEM
+ *
+ * \author Copyright (C) 2001 NaN Technologies B.V.
+ * \brief Read \ref MEMPage
*
- * \author Copyright (C) 2001 NaN Technologies B.V.
- * \brief Read \ref MEMPage
- */
-
-/**
* \page MEMPage Guarded memory(de)allocation
*
* \section aboutmem c-style guarded memory allocation
@@ -60,16 +60,11 @@
#ifndef __MEM_GUARDEDALLOC_H__
#define __MEM_GUARDEDALLOC_H__
-#include <stdio.h> /* needed for FILE* */
-#include "MEM_sys_types.h" /* needed for uintptr_t */
+#include <stdio.h> /* needed for FILE* */
+#include "MEM_sys_types.h" /* needed for uintptr_t */
-#ifndef WARN_UNUSED
-# ifdef __GNUC__
-# define WARN_UNUSED __attribute__((warn_unused_result))
-# else
-# define WARN_UNUSED
-# endif
-#endif
+/* some GNU attributes are only available from GCC 4.3 */
+#define MEM_GNU_ATTRIBUTES (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 403))
#ifdef __cplusplus
extern "C" {
@@ -78,14 +73,17 @@ extern "C" {
/** Returns the length of the allocated memory segment pointed at
* by vmemh. If the pointer was not previously allocated by this
* module, the result is undefined.*/
- size_t MEM_allocN_len(void *vmemh) WARN_UNUSED;
+ size_t MEM_allocN_len(const void *vmemh)
+#if MEM_GNU_ATTRIBUTES
+ __attribute__((warn_unused_result))
+#endif
+ ;
/**
* Release memory previously allocatred by this module.
*/
short MEM_freeN(void *vmemh);
-
/**
* Return zero if memory is not in allocated list
*/
@@ -94,30 +92,69 @@ extern "C" {
/**
* Duplicates a block of memory, and returns a pointer to the
* newly allocated block. */
- void *MEM_dupallocN(void *vmemh) WARN_UNUSED;
+ void *MEM_dupallocN(const void *vmemh)
+#if MEM_GNU_ATTRIBUTES
+ __attribute__((warn_unused_result))
+#endif
+ ;
/**
* Reallocates a block of memory, and returns pointer to the newly
* allocated block, the old one is freed. this is not as optimized
* as a system realloc but just makes a new allocation and copies
* over from existing memory. */
- void *MEM_reallocN(void *vmemh, size_t len) WARN_UNUSED;
+ void *MEM_reallocN(void *vmemh, size_t len)
+#if MEM_GNU_ATTRIBUTES
+ __attribute__((warn_unused_result))
+ __attribute__((alloc_size(2)))
+#endif
+ ;
+
+ /**
+ * A variant of realloc which zeros new bytes
+ */
+ void *MEM_recallocN(void *vmemh, size_t len)
+#if MEM_GNU_ATTRIBUTES
+ __attribute__((warn_unused_result))
+ __attribute__((alloc_size(2)))
+#endif
+ ;
/**
* Allocate a block of memory of size len, with tag name str. The
* memory is cleared. The name must be static, because only a
* pointer to it is stored ! */
- void *MEM_callocN(size_t len, const char * str) WARN_UNUSED;
-
- /** Allocate a block of memory of size len, with tag name str. The
+ void *MEM_callocN(size_t len, const char *str)
+#if MEM_GNU_ATTRIBUTES
+ __attribute__((warn_unused_result))
+ __attribute__((nonnull(2)))
+ __attribute__((alloc_size(1)))
+#endif
+ ;
+
+ /**
+ * Allocate a block of memory of size len, with tag name str. The
* name must be a static, because only a pointer to it is stored !
* */
- void *MEM_mallocN(size_t len, const char * str) WARN_UNUSED;
-
- /** Same as callocN, clears memory and uses mmap (disk cached) if supported.
+ void *MEM_mallocN(size_t len, const char *str)
+#if MEM_GNU_ATTRIBUTES
+ __attribute__((warn_unused_result))
+ __attribute__((nonnull(2)))
+ __attribute__((alloc_size(1)))
+#endif
+ ;
+
+ /**
+ * Same as callocN, clears memory and uses mmap (disk cached) if supported.
* Can be free'd with MEM_freeN as usual.
* */
- void *MEM_mapallocN(size_t len, const char * str) WARN_UNUSED;
+ void *MEM_mapallocN(size_t len, const char *str)
+#if MEM_GNU_ATTRIBUTES
+ __attribute__((warn_unused_result))
+ __attribute__((nonnull(2)))
+ __attribute__((alloc_size(1)))
+#endif
+ ;
/** Print a list of the names and sizes of all allocated memory
* blocks. as a python dict for easy investigation */
@@ -149,7 +186,8 @@ extern "C" {
/** Attempt to enforce OSX (or other OS's) to have malloc and stack nonzero */
void MEM_set_memory_debug(void);
- /** Memory usage stats
+ /**
+ * Memory usage stats
* - MEM_get_memory_in_use is all memory
* - MEM_get_mapped_memory_in_use is a subset of all memory */
uintptr_t MEM_get_memory_in_use(void);
@@ -162,7 +200,11 @@ extern "C" {
void MEM_reset_peak_memory(void);
/** Get the peak memory usage in bytes, including mmap allocations. */
- uintptr_t MEM_get_peak_memory(void) WARN_UNUSED;
+ uintptr_t MEM_get_peak_memory(void)
+#if MEM_GNU_ATTRIBUTES
+ __attribute__((warn_unused_result))
+#endif
+ ;
#ifndef NDEBUG
const char *MEM_name_ptr(void *vmemh);
@@ -187,11 +229,10 @@ public: \
MEM_freeN(mem); \
} \
-#endif
-
+#endif /* __cplusplus */
#ifdef __cplusplus
}
-#endif
+#endif /* __cplusplus */
-#endif
+#endif /* __MEM_GUARDEDALLOC_H__ */
diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c
index c00e9466674..a65871f4410 100644
--- a/intern/guardedalloc/intern/mallocn.c
+++ b/intern/guardedalloc/intern/mallocn.c
@@ -20,7 +20,8 @@
*
* The Original Code is: all of this file.
*
- * Contributor(s): none yet.
+ * Contributor(s): Brecht Van Lommel
+ * Campbell Barton
*
* ***** END GPL LICENSE BLOCK *****
*/
@@ -54,6 +55,14 @@
#include "MEM_guardedalloc.h"
/* Only for debugging:
+ * store original buffer's name when doing MEM_dupallocN
+ * helpful to profile issues with non-freed "dup_alloc" buffers,
+ * but this introduces some overhead to memory header and makes
+ * things slower a bit, so betterto keep disabled by default
+ */
+//#define DEBUG_MEMDUPLINAME
+
+/* Only for debugging:
* lets you count the allocations so as to find the allocator of unfreed memory
* in situations where the leak is predictable */
@@ -95,6 +104,10 @@ typedef struct MemHead {
#ifdef DEBUG_MEMCOUNTER
int _count;
#endif
+
+#ifdef DEBUG_MEMDUPLINAME
+ int need_free_name, pad;
+#endif
} MemHead;
typedef struct MemTail {
@@ -163,6 +176,9 @@ static int malloc_debug_memset = 0;
/* implementation */
/* --------------------------------------------------------------------- */
+#ifdef __GNUC__
+__attribute__ ((format(printf, 1, 2)))
+#endif
static void print_error(const char *str, ...)
{
char buf[512];
@@ -219,10 +235,10 @@ void MEM_set_memory_debug(void)
malloc_debug_memset = 1;
}
-size_t MEM_allocN_len(void *vmemh)
+size_t MEM_allocN_len(const void *vmemh)
{
if (vmemh) {
- MemHead *memh = vmemh;
+ const MemHead *memh = vmemh;
memh--;
return memh->len;
@@ -232,20 +248,43 @@ size_t MEM_allocN_len(void *vmemh)
}
}
-void *MEM_dupallocN(void *vmemh)
+void *MEM_dupallocN(const void *vmemh)
{
void *newp = NULL;
if (vmemh) {
- MemHead *memh = vmemh;
+ const MemHead *memh = vmemh;
memh--;
-
+
+#ifndef DEBUG_MEMDUPLINAME
if (memh->mmap)
newp = MEM_mapallocN(memh->len, "dupli_mapalloc");
else
newp = MEM_mallocN(memh->len, "dupli_alloc");
if (newp == NULL) return NULL;
+#else
+ {
+ MemHead *nmemh;
+ char *name = malloc(strlen(memh->name) + 24);
+
+ if (memh->mmap) {
+ sprintf(name, "%s %s", "dupli_mapalloc", memh->name);
+ newp = MEM_mapallocN(memh->len, name);
+ }
+ else {
+ sprintf(name, "%s %s", "dupli_alloc", memh->name);
+ newp = MEM_mallocN(memh->len, name);
+ }
+
+ if (newp == NULL) return NULL;
+
+ nmemh = newp;
+ nmemh--;
+
+ nmemh->need_free_name = 1;
+ }
+#endif
memcpy(newp, vmemh, memh->len);
}
@@ -263,10 +302,45 @@ void *MEM_reallocN(void *vmemh, size_t len)
newp = MEM_mallocN(len, memh->name);
if (newp) {
- if (len < memh->len)
+ if (len < memh->len) {
+ /* shrink */
memcpy(newp, vmemh, len);
- else
+ }
+ else {
+ /* grow (or remain same size) */
memcpy(newp, vmemh, memh->len);
+ }
+ }
+
+ MEM_freeN(vmemh);
+ }
+
+ return newp;
+}
+
+void *MEM_recallocN(void *vmemh, size_t len)
+{
+ void *newp = NULL;
+
+ if (vmemh) {
+ MemHead *memh = vmemh;
+ memh--;
+
+ newp = MEM_mallocN(len, memh->name);
+ if (newp) {
+ if (len < memh->len) {
+ /* shrink */
+ memcpy(newp, vmemh, len);
+ }
+ else {
+ memcpy(newp, vmemh, memh->len);
+
+ if (len > memh->len) {
+ /* grow */
+ /* zero new bytes */
+ memset(((char *)newp) + memh->len, 0, len - memh->len);
+ }
+ }
}
MEM_freeN(vmemh);
@@ -285,6 +359,10 @@ static void make_memhead_header(MemHead *memh, size_t len, const char *str)
memh->len = len;
memh->mmap = 0;
memh->tag2 = MEMTAG2;
+
+#ifdef DEBUG_MEMDUPLINAME
+ memh->need_free_name = 0;
+#endif
memt = (MemTail *)(((char *) memh) + sizeof(MemHead) + len);
memt->tag3 = MEMTAG3;
@@ -325,7 +403,7 @@ void *MEM_mallocN(size_t len, const char *str)
}
mem_unlock_thread();
print_error("Malloc returns null: len=" SIZET_FORMAT " in %s, total %u\n",
- SIZET_ARG(len), str, mem_in_use);
+ SIZET_ARG(len), str, (unsigned int) mem_in_use);
return NULL;
}
@@ -351,7 +429,7 @@ void *MEM_callocN(size_t len, const char *str)
}
mem_unlock_thread();
print_error("Calloc returns null: len=" SIZET_FORMAT " in %s, total %u\n",
- SIZET_ARG(len), str, mem_in_use);
+ SIZET_ARG(len), str, (unsigned int) mem_in_use);
return NULL;
}
@@ -384,7 +462,7 @@ void *MEM_mapallocN(size_t len, const char *str)
mem_unlock_thread();
print_error("Mapalloc returns null, fallback to regular malloc: "
"len=" SIZET_FORMAT " in %s, total %u\n",
- SIZET_ARG(len), str, mmap_in_use);
+ SIZET_ARG(len), str, (unsigned int) mmap_in_use);
return MEM_callocN(len, str);
}
}
@@ -601,7 +679,7 @@ void MEM_printmemlist_pydict(void)
MEM_printmemlist_internal(1);
}
-short MEM_freeN(void *vmemh) /* anders compileertie niet meer */
+short MEM_freeN(void *vmemh)
{
short error = 0;
MemTail *memt;
@@ -729,6 +807,11 @@ static void rem_memblock(MemHead *memh)
totblock--;
mem_in_use -= memh->len;
+#ifdef DEBUG_MEMDUPLINAME
+ if (memh->need_free_name)
+ free((char *) memh->name);
+#endif
+
if (memh->mmap) {
mmap_in_use -= memh->len;
if (munmap(memh, memh->len + sizeof(MemHead) + sizeof(MemTail)))
@@ -901,6 +984,4 @@ const char *MEM_name_ptr(void *vmemh)
return "MEM_name_ptr(NULL)";
}
}
-#endif
-
-/* eof */
+#endif /* NDEBUG */
diff --git a/intern/guardedalloc/intern/mmap_win.c b/intern/guardedalloc/intern/mmap_win.c
index a133f92fec4..ab50edb811e 100644
--- a/intern/guardedalloc/intern/mmap_win.c
+++ b/intern/guardedalloc/intern/mmap_win.c
@@ -44,7 +44,7 @@
#define FILE_MAP_EXECUTE 0x0020
#endif
-/* copied from BKE_utildefines.h ugh */
+/* copied from BLI_utildefines.h, ugh */
#ifdef __GNUC__
# define UNUSED(x) UNUSED_ ## x __attribute__((__unused__))
#else
diff --git a/intern/guardedalloc/test/simpletest/memtest.c b/intern/guardedalloc/test/simpletest/memtest.c
index fdc91730d6f..749e2500dd1 100644
--- a/intern/guardedalloc/test/simpletest/memtest.c
+++ b/intern/guardedalloc/test/simpletest/memtest.c
@@ -80,7 +80,7 @@ int main (int argc, char *argv[])
for (i = 0; i < NUM_BLOCKS; i++) {
int blocksize = 10000;
char tagstring[1000];
- if (verbose >1) printf("|--* Allocating block %d\n", i);
+ if (verbose > 1) printf("|--* Allocating block %d\n", i);
sprintf(tagstring,"Memblock no. %d : ", i);
p[i]= MEM_callocN(blocksize, strdup(tagstring));
}
@@ -94,7 +94,8 @@ int main (int argc, char *argv[])
if (verbose) {
if (error_status) {
fprintf(stderr, "|--* Memory test FAILED\n|\n");
- } else {
+ }
+ else {
fprintf(stderr, "|--* Memory tested as good (as it should be)\n|\n");
}
}
@@ -112,7 +113,7 @@ int main (int argc, char *argv[])
for (i = 0; i < NUM_BLOCKS; i++) {
int blocksize = 10000;
char tagstring[1000];
- if (verbose >1) printf("|--* Allocating block %d\n", i);
+ if (verbose > 1) printf("|--* Allocating block %d\n", i);
sprintf(tagstring,"Memblock no. %d : ", i);
p[i]= MEM_callocN(blocksize, strdup(tagstring));
}
@@ -130,7 +131,8 @@ int main (int argc, char *argv[])
if (verbose) {
if (retval) {
fprintf(stderr, "|--* Memory test failed (as it should be)\n");
- } else {
+ }
+ else {
fprintf(stderr, "|--* Memory test FAILED to find corrupted blocks \n");
}
}
@@ -147,7 +149,8 @@ int main (int argc, char *argv[])
if (verbose) {
if (error_status) {
fprintf(stderr,"|\n|--* Errors were detected\n");
- } else {
+ }
+ else {
fprintf(stderr,"|\n|--* Test exited succesfully\n");
}
diff --git a/intern/iksolver/CMakeLists.txt b/intern/iksolver/CMakeLists.txt
index 119cb6eaff0..711a70ff260 100644
--- a/intern/iksolver/CMakeLists.txt
+++ b/intern/iksolver/CMakeLists.txt
@@ -73,4 +73,4 @@ set(SRC
intern/TNT/version.h
)
-blender_add_lib(bf_intern_ik "${SRC}" "${INC}" "${INC_SYS}")
+blender_add_lib(bf_intern_iksolver "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/intern/iksolver/SConscript b/intern/iksolver/SConscript
index bdf7cd350ff..b88d3b1b713 100644
--- a/intern/iksolver/SConscript
+++ b/intern/iksolver/SConscript
@@ -5,5 +5,5 @@ sources = env.Glob('intern/*.cpp')
incs = 'intern ../moto/include ../memutil'
-env.BlenderLib ('bf_intern_ik', sources, Split(incs), [], libtype=['intern','player'], priority=[100,90] )
+env.BlenderLib ('bf_intern_iksolver', sources, Split(incs), [], libtype=['intern','player'], priority=[100,90] )
diff --git a/intern/iksolver/extern/IK_solver.h b/intern/iksolver/extern/IK_solver.h
index 7f780a0a17f..a3f599e06c8 100644
--- a/intern/iksolver/extern/IK_solver.h
+++ b/intern/iksolver/extern/IK_solver.h
@@ -163,6 +163,9 @@ float IK_SolverGetPoleAngle(IK_Solver *solver);
int IK_Solve(IK_Solver *solver, float tolerance, int max_iterations);
+#define IK_STRETCH_STIFF_EPS 0.001f
+#define IK_STRETCH_STIFF_MIN 0.001f
+#define IK_STRETCH_STIFF_MAX 1e10
#ifdef __cplusplus
}
diff --git a/intern/iksolver/intern/IK_QJacobian.cpp b/intern/iksolver/intern/IK_QJacobian.cpp
index e85da6eda4a..bb7b7c5c0b8 100644
--- a/intern/iksolver/intern/IK_QJacobian.cpp
+++ b/intern/iksolver/intern/IK_QJacobian.cpp
@@ -35,7 +35,7 @@
#include "TNT/svd.h"
IK_QJacobian::IK_QJacobian()
-: m_sdls(true), m_min_damp(1.0)
+ : m_sdls(true), m_min_damp(1.0)
{
}
@@ -106,16 +106,16 @@ void IK_QJacobian::ArmMatrices(int dof, int task_size)
void IK_QJacobian::SetBetas(int id, int, const MT_Vector3& v)
{
- m_beta[id] = v.x();
- m_beta[id+1] = v.y();
- m_beta[id+2] = v.z();
+ m_beta[id + 0] = v.x();
+ m_beta[id + 1] = v.y();
+ m_beta[id + 2] = v.z();
}
void IK_QJacobian::SetDerivatives(int id, int dof_id, const MT_Vector3& v, MT_Scalar norm_weight)
{
- m_jacobian[id][dof_id] = v.x()*m_weight_sqrt[dof_id];
- m_jacobian[id+1][dof_id] = v.y()*m_weight_sqrt[dof_id];
- m_jacobian[id+2][dof_id] = v.z()*m_weight_sqrt[dof_id];
+ m_jacobian[id + 0][dof_id] = v.x() * m_weight_sqrt[dof_id];
+ m_jacobian[id + 1][dof_id] = v.y() * m_weight_sqrt[dof_id];
+ m_jacobian[id + 2][dof_id] = v.z() * m_weight_sqrt[dof_id];
m_d_norm_weight[dof_id] = norm_weight;
}
@@ -194,7 +194,7 @@ void IK_QJacobian::SubTask(IK_QJacobian& jacobian)
// doesn't work well at all
int i;
for (i = 0; i < m_d_theta.size(); i++)
- m_d_theta[i] = m_d_theta[i] + /*m_min_damp**/jacobian.AngleUpdate(i);
+ m_d_theta[i] = m_d_theta[i] + /*m_min_damp * */ jacobian.AngleUpdate(i);
}
void IK_QJacobian::Restrict(TVector& d_theta, TMatrix& null)
@@ -230,7 +230,7 @@ void IK_QJacobian::InvertSDLS()
// DLS. The SDLS damps individual singular values, instead of using a single
// damping term.
- MT_Scalar max_angle_change = MT_PI/4.0;
+ MT_Scalar max_angle_change = MT_PI / 4.0;
MT_Scalar epsilon = 1e-10;
int i, j;
@@ -239,35 +239,35 @@ void IK_QJacobian::InvertSDLS()
for (i = 0; i < m_dof; i++) {
m_norm[i] = 0.0;
- for (j = 0; j < m_task_size; j+=3) {
+ for (j = 0; j < m_task_size; j += 3) {
MT_Scalar n = 0.0;
- n += m_jacobian[j][i]*m_jacobian[j][i];
- n += m_jacobian[j+1][i]*m_jacobian[j+1][i];
- n += m_jacobian[j+2][i]*m_jacobian[j+2][i];
+ n += m_jacobian[j][i] * m_jacobian[j][i];
+ n += m_jacobian[j + 1][i] * m_jacobian[j + 1][i];
+ n += m_jacobian[j + 2][i] * m_jacobian[j + 2][i];
m_norm[i] += sqrt(n);
}
}
- for (i = 0; i<m_svd_w.size(); i++) {
+ for (i = 0; i < m_svd_w.size(); i++) {
if (m_svd_w[i] <= epsilon)
continue;
- MT_Scalar wInv = 1.0/m_svd_w[i];
+ MT_Scalar wInv = 1.0 / m_svd_w[i];
MT_Scalar alpha = 0.0;
MT_Scalar N = 0.0;
// compute alpha and N
- for (j=0; j<m_svd_u.num_rows(); j+=3) {
- alpha += m_svd_u[j][i]*m_beta[j];
- alpha += m_svd_u[j+1][i]*m_beta[j+1];
- alpha += m_svd_u[j+2][i]*m_beta[j+2];
+ for (j = 0; j < m_svd_u.num_rows(); j += 3) {
+ alpha += m_svd_u[j][i] * m_beta[j];
+ alpha += m_svd_u[j + 1][i] * m_beta[j + 1];
+ alpha += m_svd_u[j + 2][i] * m_beta[j + 2];
// note: for 1 end effector, N will always be 1, since U is
// orthogonal, .. so could be optimized
MT_Scalar tmp;
- tmp = m_svd_u[j][i]*m_svd_u[j][i];
- tmp += m_svd_u[j+1][i]*m_svd_u[j+1][i];
- tmp += m_svd_u[j+2][i]*m_svd_u[j+2][i];
+ tmp = m_svd_u[j][i] * m_svd_u[j][i];
+ tmp += m_svd_u[j + 1][i] * m_svd_u[j + 1][i];
+ tmp += m_svd_u[j + 2][i] * m_svd_u[j + 2][i];
N += sqrt(tmp);
}
alpha *= wInv;
@@ -278,14 +278,14 @@ void IK_QJacobian::InvertSDLS()
for (j = 0; j < m_d_theta.size(); j++) {
MT_Scalar v = m_svd_v[j][i];
- M += MT_abs(v)*m_norm[j];
+ M += MT_abs(v) * m_norm[j];
// compute tmporary dTheta's
- m_d_theta_tmp[j] = v*alpha;
+ m_d_theta_tmp[j] = v * alpha;
// find largest absolute dTheta
// multiply with weight to prevent unnecessary damping
- abs_dtheta = MT_abs(m_d_theta_tmp[j])*m_weight_sqrt[j];
+ abs_dtheta = MT_abs(m_d_theta_tmp[j]) * m_weight_sqrt[j];
if (abs_dtheta > max_dtheta)
max_dtheta = abs_dtheta;
}
@@ -295,19 +295,19 @@ void IK_QJacobian::InvertSDLS()
// compute damping term and damp the dTheta's
MT_Scalar gamma = max_angle_change;
if (N < M)
- gamma *= N/M;
+ gamma *= N / M;
- MT_Scalar damp = (gamma < max_dtheta)? gamma/max_dtheta: 1.0;
+ MT_Scalar damp = (gamma < max_dtheta) ? gamma / max_dtheta : 1.0;
for (j = 0; j < m_d_theta.size(); j++) {
// slight hack: we do 0.80*, so that if there is some oscillation,
// the system can still converge (for joint limits). also, it's
// better to go a little to slow than to far
- MT_Scalar dofdamp = damp/m_weight[j];
+ MT_Scalar dofdamp = damp / m_weight[j];
if (dofdamp > 1.0) dofdamp = 1.0;
- m_d_theta[j] += 0.80*dofdamp*m_d_theta_tmp[j];
+ m_d_theta[j] += 0.80 * dofdamp * m_d_theta_tmp[j];
}
if (damp < m_min_damp)
@@ -317,7 +317,7 @@ void IK_QJacobian::InvertSDLS()
// weight + prevent from doing angle updates with angles > max_angle_change
MT_Scalar max_angle = 0.0, abs_angle;
- for (j = 0; j<m_dof; j++) {
+ for (j = 0; j < m_dof; j++) {
m_d_theta[j] *= m_weight[j];
abs_angle = MT_abs(m_d_theta[j]);
@@ -327,9 +327,9 @@ void IK_QJacobian::InvertSDLS()
}
if (max_angle > max_angle_change) {
- MT_Scalar damp = (max_angle_change)/(max_angle_change + max_angle);
+ MT_Scalar damp = (max_angle_change) / (max_angle_change + max_angle);
- for (j = 0; j<m_dof; j++)
+ for (j = 0; j < m_dof; j++)
m_d_theta[j] *= damp;
}
}
@@ -360,20 +360,20 @@ void IK_QJacobian::InvertDLS()
int i, j;
MT_Scalar w_min = MT_INFINITY;
- for (i = 0; i <m_svd_w.size() ; i++) {
+ for (i = 0; i < m_svd_w.size(); i++) {
if (m_svd_w[i] > epsilon && m_svd_w[i] < w_min)
w_min = m_svd_w[i];
}
// compute lambda damping term
- MT_Scalar d = x_length/max_angle_change;
+ MT_Scalar d = x_length / max_angle_change;
MT_Scalar lambda;
- if (w_min <= d/2)
- lambda = d/2;
+ if (w_min <= d / 2)
+ lambda = d / 2;
else if (w_min < d)
- lambda = sqrt(w_min*(d - w_min));
+ lambda = sqrt(w_min * (d - w_min));
else
lambda = 0.0;
@@ -393,17 +393,17 @@ void IK_QJacobian::InvertDLS()
for (i = 0; i < m_svd_w.size(); i++) {
if (m_svd_w[i] > epsilon) {
- MT_Scalar wInv = m_svd_w[i]/(m_svd_w[i]*m_svd_w[i] + lambda);
+ MT_Scalar wInv = m_svd_w[i] / (m_svd_w[i] * m_svd_w[i] + lambda);
// compute V*Winv*Ut*Beta
m_svd_u_beta[i] *= wInv;
- for (j = 0; j<m_d_theta.size(); j++)
- m_d_theta[j] += m_svd_v[j][i]*m_svd_u_beta[i];
+ for (j = 0; j < m_d_theta.size(); j++)
+ m_d_theta[j] += m_svd_v[j][i] * m_svd_u_beta[i];
}
}
- for (j = 0; j<m_d_theta.size(); j++)
+ for (j = 0; j < m_d_theta.size(); j++)
m_d_theta[j] *= m_weight[j];
}
@@ -412,7 +412,7 @@ void IK_QJacobian::Lock(int dof_id, MT_Scalar delta)
int i;
for (i = 0; i < m_task_size; i++) {
- m_beta[i] -= m_jacobian[i][dof_id]*delta;
+ m_beta[i] -= m_jacobian[i][dof_id] * delta;
m_jacobian[i][dof_id] = 0.0;
}
@@ -431,7 +431,7 @@ MT_Scalar IK_QJacobian::AngleUpdateNorm() const
MT_Scalar mx = 0.0, dtheta_abs;
for (i = 0; i < m_d_theta.size(); i++) {
- dtheta_abs = MT_abs(m_d_theta[i]*m_d_norm_weight[i]);
+ dtheta_abs = MT_abs(m_d_theta[i] * m_d_norm_weight[i]);
if (dtheta_abs > mx)
mx = dtheta_abs;
}
diff --git a/intern/iksolver/intern/IK_QJacobianSolver.cpp b/intern/iksolver/intern/IK_QJacobianSolver.cpp
index fe5ecf8abe3..43d177d0651 100644
--- a/intern/iksolver/intern/IK_QJacobianSolver.cpp
+++ b/intern/iksolver/intern/IK_QJacobianSolver.cpp
@@ -45,22 +45,22 @@ IK_QJacobianSolver::IK_QJacobianSolver()
MT_Scalar IK_QJacobianSolver::ComputeScale()
{
- std::vector<IK_QSegment*>::iterator seg;
- float length = 0.0f;
+ std::vector<IK_QSegment *>::iterator seg;
+ MT_Scalar length = 0.0f;
for (seg = m_segments.begin(); seg != m_segments.end(); seg++)
length += (*seg)->MaxExtension();
- if(length == 0.0f)
- return 1.0f;
+ if (length == 0.0)
+ return 1.0;
else
- return 1.0f/length;
+ return 1.0 / length;
}
-void IK_QJacobianSolver::Scale(float scale, std::list<IK_QTask*>& tasks)
+void IK_QJacobianSolver::Scale(MT_Scalar scale, std::list<IK_QTask *>& tasks)
{
- std::list<IK_QTask*>::iterator task;
- std::vector<IK_QSegment*>::iterator seg;
+ std::list<IK_QTask *>::iterator task;
+ std::vector<IK_QSegment *>::iterator seg;
for (task = tasks.begin(); task != tasks.end(); task++)
(*task)->Scale(scale);
@@ -82,13 +82,13 @@ void IK_QJacobianSolver::AddSegmentList(IK_QSegment *seg)
AddSegmentList(child);
}
-bool IK_QJacobianSolver::Setup(IK_QSegment *root, std::list<IK_QTask*>& tasks)
+bool IK_QJacobianSolver::Setup(IK_QSegment *root, std::list<IK_QTask *>& tasks)
{
m_segments.clear();
AddSegmentList(root);
// assign each segment a unique id for the jacobian
- std::vector<IK_QSegment*>::iterator seg;
+ std::vector<IK_QSegment *>::iterator seg;
int num_dof = 0;
for (seg = m_segments.begin(); seg != m_segments.end(); seg++) {
@@ -103,7 +103,7 @@ bool IK_QJacobianSolver::Setup(IK_QSegment *root, std::list<IK_QTask*>& tasks)
int primary_size = 0, primary = 0;
int secondary_size = 0, secondary = 0;
MT_Scalar primary_weight = 0.0, secondary_weight = 0.0;
- std::list<IK_QTask*>::iterator task;
+ std::list<IK_QTask *>::iterator task;
for (task = tasks.begin(); task != tasks.end(); task++) {
IK_QTask *qtask = *task;
@@ -128,20 +128,20 @@ bool IK_QJacobianSolver::Setup(IK_QSegment *root, std::list<IK_QTask*>& tasks)
m_secondary_enabled = (secondary > 0);
// rescale weights of tasks to sum up to 1
- MT_Scalar primary_rescale = 1.0/primary_weight;
+ MT_Scalar primary_rescale = 1.0 / primary_weight;
MT_Scalar secondary_rescale;
if (MT_fuzzyZero(secondary_weight))
secondary_rescale = 0.0;
else
- secondary_rescale = 1.0/secondary_weight;
+ secondary_rescale = 1.0 / secondary_weight;
for (task = tasks.begin(); task != tasks.end(); task++) {
IK_QTask *qtask = *task;
if (qtask->Primary())
- qtask->SetWeight(qtask->Weight()*primary_rescale);
+ qtask->SetWeight(qtask->Weight() * primary_rescale);
else
- qtask->SetWeight(qtask->Weight()*secondary_rescale);
+ qtask->SetWeight(qtask->Weight() * secondary_rescale);
}
// set matrix sizes
@@ -154,7 +154,7 @@ bool IK_QJacobianSolver::Setup(IK_QSegment *root, std::list<IK_QTask*>& tasks)
for (seg = m_segments.begin(); seg != m_segments.end(); seg++)
for (i = 0; i < (*seg)->NumberOfDoF(); i++)
- m_jacobian.SetDoFWeight((*seg)->DoFId()+i, (*seg)->Weight(i));
+ m_jacobian.SetDoFWeight((*seg)->DoFId() + i, (*seg)->Weight(i));
return true;
}
@@ -165,15 +165,15 @@ void IK_QJacobianSolver::SetPoleVectorConstraint(IK_QSegment *tip, MT_Vector3& g
m_poletip = tip;
m_goal = goal;
m_polegoal = polegoal;
- m_poleangle = (getangle)? 0.0f: poleangle;
+ m_poleangle = (getangle) ? 0.0f : poleangle;
m_getpoleangle = getangle;
}
static MT_Scalar safe_acos(MT_Scalar f)
{
// acos that does not return NaN with rounding errors
- if (f <= -1.0f) return MT_PI;
- else if (f >= 1.0f) return 0.0;
+ if (f <= -1.0) return MT_PI;
+ else if (f >= 1.0) return 0.0;
else return acos(f);
}
@@ -182,7 +182,7 @@ static MT_Vector3 normalize(const MT_Vector3& v)
// a sane normalize function that doesn't give (1, 0, 0) in case
// of a zero length vector, like MT_Vector3.normalize
MT_Scalar len = v.length();
- return MT_fuzzyZero(len)? MT_Vector3(0, 0, 0): v/len;
+ return MT_fuzzyZero(len) ? MT_Vector3(0, 0, 0) : v / len;
}
static float angle(const MT_Vector3& v1, const MT_Vector3& v2)
@@ -190,21 +190,21 @@ static float angle(const MT_Vector3& v1, const MT_Vector3& v2)
return safe_acos(v1.dot(v2));
}
-void IK_QJacobianSolver::ConstrainPoleVector(IK_QSegment *root, std::list<IK_QTask*>& tasks)
+void IK_QJacobianSolver::ConstrainPoleVector(IK_QSegment *root, std::list<IK_QTask *>& tasks)
{
// this function will be called before and after solving. calling it before
// solving gives predictable solutions by rotating towards the solution,
// and calling it afterwards ensures the solution is exact.
- if(!m_poleconstraint)
+ if (!m_poleconstraint)
return;
// disable pole vector constraint in case of multiple position tasks
- std::list<IK_QTask*>::iterator task;
+ std::list<IK_QTask *>::iterator task;
int positiontasks = 0;
for (task = tasks.begin(); task != tasks.end(); task++)
- if((*task)->PositionTask())
+ if ((*task)->PositionTask())
positiontasks++;
if (positiontasks >= 2) {
@@ -223,12 +223,12 @@ void IK_QJacobianSolver::ConstrainPoleVector(IK_QSegment *root, std::list<IK_QTa
// an up vector, with the direction going from the root to the end effector
// and the up vector going from the root to the pole constraint position.
MT_Vector3 dir = normalize(endpos - rootpos);
- MT_Vector3 rootx= rootbasis.getColumn(0);
- MT_Vector3 rootz= rootbasis.getColumn(2);
- MT_Vector3 up = rootx*cos(m_poleangle) + rootz*sin(m_poleangle);
+ MT_Vector3 rootx = rootbasis.getColumn(0);
+ MT_Vector3 rootz = rootbasis.getColumn(2);
+ MT_Vector3 up = rootx * cos(m_poleangle) + rootz *sin(m_poleangle);
// in post, don't rotate towards the goal but only correct the pole up
- MT_Vector3 poledir = (m_getpoleangle)? dir: normalize(m_goal - rootpos);
+ MT_Vector3 poledir = (m_getpoleangle) ? dir : normalize(m_goal - rootpos);
MT_Vector3 poleup = normalize(m_polegoal - rootpos);
MT_Matrix3x3 mat, polemat;
@@ -241,11 +241,11 @@ void IK_QJacobianSolver::ConstrainPoleVector(IK_QSegment *root, std::list<IK_QTa
polemat[1] = MT_cross(polemat[0], poledir);
polemat[2] = -poledir;
- if(m_getpoleangle) {
+ if (m_getpoleangle) {
// we compute the pole angle that to rotate towards the target
m_poleangle = angle(mat[1], polemat[1]);
- if(rootz.dot(mat[1]*cos(m_poleangle) + mat[0]*sin(m_poleangle)) > 0.0f)
+ if (rootz.dot(mat[1] * cos(m_poleangle) + mat[0] * sin(m_poleangle)) > 0.0)
m_poleangle = -m_poleangle;
// solve again, with the pole angle we just computed
@@ -257,15 +257,15 @@ void IK_QJacobianSolver::ConstrainPoleVector(IK_QSegment *root, std::list<IK_QTa
// desired rotation based on the pole vector constraint. we use
// transpose instead of inverse because we have orthogonal matrices
// anyway, and in case of a singular matrix we don't get NaN's.
- MT_Transform trans(MT_Point3(0, 0, 0), polemat.transposed()*mat);
- m_rootmatrix = trans*m_rootmatrix;
+ MT_Transform trans(MT_Point3(0, 0, 0), polemat.transposed() * mat);
+ m_rootmatrix = trans * m_rootmatrix;
}
}
bool IK_QJacobianSolver::UpdateAngles(MT_Scalar& norm)
{
// assing each segment a unique id for the jacobian
- std::vector<IK_QSegment*>::iterator seg;
+ std::vector<IK_QSegment *>::iterator seg;
IK_QSegment *qseg, *minseg = NULL;
MT_Scalar minabsdelta = 1e10, absdelta;
MT_Vector3 delta, mindelta;
@@ -318,11 +318,11 @@ bool IK_QJacobianSolver::UpdateAngles(MT_Scalar& norm)
}
bool IK_QJacobianSolver::Solve(
- IK_QSegment *root,
- std::list<IK_QTask*> tasks,
- const MT_Scalar,
- const int max_iterations
-)
+ IK_QSegment *root,
+ std::list<IK_QTask *> tasks,
+ const MT_Scalar,
+ const int max_iterations
+ )
{
float scale = ComputeScale();
bool solved = false;
@@ -339,7 +339,7 @@ bool IK_QJacobianSolver::Solve(
// update transform
root->UpdateTransform(m_rootmatrix);
- std::list<IK_QTask*>::iterator task;
+ std::list<IK_QTask *>::iterator task;
// compute jacobian
for (task = tasks.begin(); task != tasks.end(); task++) {
@@ -367,7 +367,7 @@ bool IK_QJacobianSolver::Solve(
} while (UpdateAngles(norm));
// unlock segments again after locking in clamping loop
- std::vector<IK_QSegment*>::iterator seg;
+ std::vector<IK_QSegment *>::iterator seg;
for (seg = m_segments.begin(); seg != m_segments.end(); seg++)
(*seg)->UnLock();
@@ -383,10 +383,10 @@ bool IK_QJacobianSolver::Solve(
}
}
- if(m_poleconstraint)
+ if (m_poleconstraint)
root->PrependBasis(m_rootmatrix.getBasis());
- Scale(1.0f/scale, tasks);
+ Scale(1.0f / scale, tasks);
//analyze_add_run(max_iterations, analyze_time()-dt);
diff --git a/intern/iksolver/intern/IK_QJacobianSolver.h b/intern/iksolver/intern/IK_QJacobianSolver.h
index cfcd2849fb2..646f952b9ff 100644
--- a/intern/iksolver/intern/IK_QJacobianSolver.h
+++ b/intern/iksolver/intern/IK_QJacobianSolver.h
@@ -53,12 +53,12 @@ class IK_QJacobianSolver
{
public:
IK_QJacobianSolver();
- ~IK_QJacobianSolver() {};
+ ~IK_QJacobianSolver() {}
// setup pole vector constraint
void SetPoleVectorConstraint(IK_QSegment *tip, MT_Vector3& goal,
MT_Vector3& polegoal, float poleangle, bool getangle);
- float GetPoleAngle() { return m_poleangle; };
+ float GetPoleAngle() { return m_poleangle; }
// call setup once before solving, if it fails don't solve
bool Setup(IK_QSegment *root, std::list<IK_QTask*>& tasks);
@@ -77,7 +77,7 @@ private:
void ConstrainPoleVector(IK_QSegment *root, std::list<IK_QTask*>& tasks);
MT_Scalar ComputeScale();
- void Scale(float scale, std::list<IK_QTask*>& tasks);
+ void Scale(MT_Scalar scale, std::list<IK_QTask*>& tasks);
private:
diff --git a/intern/iksolver/intern/IK_QSegment.cpp b/intern/iksolver/intern/IK_QSegment.cpp
index d81ed453037..e511d8233a2 100644
--- a/intern/iksolver/intern/IK_QSegment.cpp
+++ b/intern/iksolver/intern/IK_QSegment.cpp
@@ -60,24 +60,25 @@ static MT_Matrix3x3 RotationMatrix(MT_Scalar angle, int axis)
static MT_Scalar EulerAngleFromMatrix(const MT_Matrix3x3& R, int axis)
{
- MT_Scalar t = sqrt(R[0][0]*R[0][0] + R[0][1]*R[0][1]);
+ MT_Scalar t = sqrt(R[0][0] * R[0][0] + R[0][1] * R[0][1]);
- if (t > 16.0*MT_EPSILON) {
- if (axis == 0) return -atan2(R[1][2], R[2][2]);
- else if(axis == 1) return atan2(-R[0][2], t);
- else return -atan2(R[0][1], R[0][0]);
- } else {
- if (axis == 0) return -atan2(-R[2][1], R[1][1]);
- else if(axis == 1) return atan2(-R[0][2], t);
- else return 0.0f;
- }
+ if (t > 16.0 * MT_EPSILON) {
+ if (axis == 0) return -atan2(R[1][2], R[2][2]);
+ else if (axis == 1) return atan2(-R[0][2], t);
+ else return -atan2(R[0][1], R[0][0]);
+ }
+ else {
+ if (axis == 0) return -atan2(-R[2][1], R[1][1]);
+ else if (axis == 1) return atan2(-R[0][2], t);
+ else return 0.0f;
+ }
}
static MT_Scalar safe_acos(MT_Scalar f)
{
- if (f <= -1.0f)
+ if (f <= -1.0)
return MT_PI;
- else if (f >= 1.0f)
+ else if (f >= 1.0)
return 0.0;
else
return acos(f);
@@ -89,7 +90,7 @@ static MT_Scalar ComputeTwist(const MT_Matrix3x3& R)
MT_Scalar qy = R[0][2] - R[2][0];
MT_Scalar qw = R[0][0] + R[1][1] + R[2][2] + 1;
- MT_Scalar tau = 2*atan2(qy, qw);
+ MT_Scalar tau = 2.0 * atan2(qy, qw);
return tau;
}
@@ -108,7 +109,7 @@ static void RemoveTwist(MT_Matrix3x3& R)
MT_Matrix3x3 T = ComputeTwistMatrix(tau);
// remove twist
- R = R*T.transposed();
+ R = R * T.transposed();
}
static MT_Vector3 SphericalRangeParameters(const MT_Matrix3x3& R)
@@ -117,7 +118,7 @@ static MT_Vector3 SphericalRangeParameters(const MT_Matrix3x3& R)
MT_Scalar tau = ComputeTwist(R);
// compute swing parameters
- MT_Scalar num = 2.0*(1.0 + R[1][1]);
+ MT_Scalar num = 2.0 * (1.0 + R[1][1]);
// singularity at pi
if (MT_abs(num) < MT_EPSILON)
@@ -126,9 +127,9 @@ static MT_Vector3 SphericalRangeParameters(const MT_Matrix3x3& R)
// enforce limits at all then
return MT_Vector3(0.0, tau, 1.0);
- num = 1.0/sqrt(num);
- MT_Scalar ax = -R[2][1]*num;
- MT_Scalar az = R[0][1]*num;
+ num = 1.0 / sqrt(num);
+ MT_Scalar ax = -R[2][1] * num;
+ MT_Scalar az = R[0][1] * num;
return MT_Vector3(ax, tau, az);
}
@@ -136,8 +137,8 @@ static MT_Vector3 SphericalRangeParameters(const MT_Matrix3x3& R)
static MT_Matrix3x3 ComputeSwingMatrix(MT_Scalar ax, MT_Scalar az)
{
// length of (ax, 0, az) = sin(theta/2)
- MT_Scalar sine2 = ax*ax + az*az;
- MT_Scalar cosine2 = sqrt((sine2 >= 1.0)? 0.0: 1.0-sine2);
+ MT_Scalar sine2 = ax * ax + az * az;
+ MT_Scalar cosine2 = sqrt((sine2 >= 1.0) ? 0.0 : 1.0 - sine2);
// compute swing matrix
MT_Matrix3x3 S(MT_Quaternion(ax, 0.0, az, -cosine2));
@@ -151,11 +152,11 @@ static MT_Vector3 MatrixToAxisAngle(const MT_Matrix3x3& R)
R[0][2] - R[2][0],
R[1][0] - R[0][1]);
- MT_Scalar c = safe_acos((R[0][0] + R[1][1] + R[2][2] - 1)/2);
+ MT_Scalar c = safe_acos((R[0][0] + R[1][1] + R[2][2] - 1) / 2);
MT_Scalar l = delta.length();
if (!MT_fuzzyZero(l))
- delta *= c/l;
+ delta *= c / l;
return delta;
}
@@ -192,10 +193,10 @@ static bool EllipseClamp(MT_Scalar& ax, MT_Scalar& az, MT_Scalar *amin, MT_Scala
z = zlim;
}
else {
- MT_Scalar invx = 1.0/(xlim*xlim);
- MT_Scalar invz = 1.0/(zlim*zlim);
+ MT_Scalar invx = 1.0 / (xlim * xlim);
+ MT_Scalar invz = 1.0 / (zlim * zlim);
- if ((x*x*invx + z*z*invz) <= 1.0)
+ if ((x * x * invx + z * z * invz) <= 1.0)
return false;
if (MT_fuzzyZero(x)) {
@@ -203,17 +204,17 @@ static bool EllipseClamp(MT_Scalar& ax, MT_Scalar& az, MT_Scalar *amin, MT_Scala
z = zlim;
}
else {
- MT_Scalar rico = z/x;
+ MT_Scalar rico = z / x;
MT_Scalar old_x = x;
- x = sqrt(1.0/(invx + invz*rico*rico));
+ x = sqrt(1.0 / (invx + invz * rico * rico));
if (old_x < 0.0)
x = -x;
- z = rico*x;
+ z = rico * x;
}
}
- ax = (ax < 0.0)? -x: x;
- az = (az < 0.0)? -z: z;
+ ax = (ax < 0.0) ? -x : x;
+ az = (az < 0.0) ? -z : z;
return true;
}
@@ -221,8 +222,8 @@ static bool EllipseClamp(MT_Scalar& ax, MT_Scalar& az, MT_Scalar *amin, MT_Scala
// IK_QSegment
IK_QSegment::IK_QSegment(int num_DoF, bool translational)
-: m_parent(NULL), m_child(NULL), m_sibling(NULL), m_composite(NULL),
- m_num_DoF(num_DoF), m_translational(translational)
+ : m_parent(NULL), m_child(NULL), m_sibling(NULL), m_composite(NULL),
+ m_num_DoF(num_DoF), m_translational(translational)
{
m_locked[0] = m_locked[1] = m_locked[2] = false;
m_weight[0] = m_weight[1] = m_weight[2] = 1.0;
@@ -251,11 +252,11 @@ void IK_QSegment::Reset()
}
void IK_QSegment::SetTransform(
- const MT_Vector3& start,
- const MT_Matrix3x3& rest_basis,
- const MT_Matrix3x3& basis,
- const MT_Scalar length
-)
+ const MT_Vector3& start,
+ const MT_Matrix3x3& rest_basis,
+ const MT_Matrix3x3& basis,
+ const MT_Scalar length
+ )
{
m_max_extension = start.length() + length;
@@ -271,7 +272,7 @@ void IK_QSegment::SetTransform(
MT_Matrix3x3 IK_QSegment::BasisChange() const
{
- return m_orig_basis.transposed()*m_basis;
+ return m_orig_basis.transposed() * m_basis;
}
MT_Vector3 IK_QSegment::TranslationChange() const
@@ -329,7 +330,7 @@ void IK_QSegment::RemoveChild(IK_QSegment *child)
void IK_QSegment::UpdateTransform(const MT_Transform& global)
{
// compute the global transform at the end of the segment
- m_global_start = global.getOrigin() + global.getBasis()*m_start;
+ m_global_start = global.getOrigin() + global.getBasis() * m_start;
m_global_transform.setOrigin(m_global_start);
m_global_transform.setBasis(global.getBasis() * m_rest_basis * m_basis);
@@ -345,7 +346,7 @@ void IK_QSegment::PrependBasis(const MT_Matrix3x3& mat)
m_basis = m_rest_basis.inverse() * mat * m_rest_basis * m_basis;
}
-void IK_QSegment::Scale(float scale)
+void IK_QSegment::Scale(MT_Scalar scale)
{
m_start *= scale;
m_translation *= scale;
@@ -358,7 +359,7 @@ void IK_QSegment::Scale(float scale)
// IK_QSphericalSegment
IK_QSphericalSegment::IK_QSphericalSegment()
-: IK_QSegment(3, false), m_limit_x(false), m_limit_y(false), m_limit_z(false)
+ : IK_QSegment(3, false), m_limit_x(false), m_limit_y(false), m_limit_z(false)
{
}
@@ -386,8 +387,8 @@ void IK_QSphericalSegment::SetLimit(int axis, MT_Scalar lmin, MT_Scalar lmax)
lmin = MT_clamp(lmin, -MT_PI, MT_PI);
lmax = MT_clamp(lmax, -MT_PI, MT_PI);
- lmin = sin(lmin*0.5);
- lmax = sin(lmax*0.5);
+ lmin = sin(lmin * 0.5);
+ lmax = sin(lmax * 0.5);
if (axis == 0) {
m_min[0] = -lmax;
@@ -414,8 +415,8 @@ bool IK_QSphericalSegment::UpdateAngle(const IK_QJacobian &jacobian, MT_Vector3&
MT_Vector3 dq;
dq.x() = jacobian.AngleUpdate(m_DoF_id);
- dq.y() = jacobian.AngleUpdate(m_DoF_id+1);
- dq.z() = jacobian.AngleUpdate(m_DoF_id+2);
+ dq.y() = jacobian.AngleUpdate(m_DoF_id + 1);
+ dq.z() = jacobian.AngleUpdate(m_DoF_id + 2);
// Directly update the rotation matrix, with Rodrigues' rotation formula,
// to avoid singularities and allow smooth integration.
@@ -423,29 +424,29 @@ bool IK_QSphericalSegment::UpdateAngle(const IK_QJacobian &jacobian, MT_Vector3&
MT_Scalar theta = dq.length();
if (!MT_fuzzyZero(theta)) {
- MT_Vector3 w = dq*(1.0/theta);
+ MT_Vector3 w = dq * (1.0 / theta);
MT_Scalar sine = sin(theta);
MT_Scalar cosine = cos(theta);
- MT_Scalar cosineInv = 1-cosine;
+ MT_Scalar cosineInv = 1 - cosine;
- MT_Scalar xsine = w.x()*sine;
- MT_Scalar ysine = w.y()*sine;
- MT_Scalar zsine = w.z()*sine;
+ MT_Scalar xsine = w.x() * sine;
+ MT_Scalar ysine = w.y() * sine;
+ MT_Scalar zsine = w.z() * sine;
- MT_Scalar xxcosine = w.x()*w.x()*cosineInv;
- MT_Scalar xycosine = w.x()*w.y()*cosineInv;
- MT_Scalar xzcosine = w.x()*w.z()*cosineInv;
- MT_Scalar yycosine = w.y()*w.y()*cosineInv;
- MT_Scalar yzcosine = w.y()*w.z()*cosineInv;
- MT_Scalar zzcosine = w.z()*w.z()*cosineInv;
+ MT_Scalar xxcosine = w.x() * w.x() * cosineInv;
+ MT_Scalar xycosine = w.x() * w.y() * cosineInv;
+ MT_Scalar xzcosine = w.x() * w.z() * cosineInv;
+ MT_Scalar yycosine = w.y() * w.y() * cosineInv;
+ MT_Scalar yzcosine = w.y() * w.z() * cosineInv;
+ MT_Scalar zzcosine = w.z() * w.z() * cosineInv;
MT_Matrix3x3 M(
- cosine + xxcosine, -zsine + xycosine, ysine + xzcosine,
- zsine + xycosine, cosine + yycosine, -xsine + yzcosine,
- -ysine + xzcosine, xsine + yzcosine, cosine + zzcosine);
+ cosine + xxcosine, -zsine + xycosine, ysine + xzcosine,
+ zsine + xycosine, cosine + yycosine, -xsine + yzcosine,
+ -ysine + xzcosine, xsine + yzcosine, cosine + zzcosine);
- m_new_basis = m_basis*M;
+ m_new_basis = m_basis * M;
}
else
m_new_basis = m_basis;
@@ -505,13 +506,13 @@ bool IK_QSphericalSegment::UpdateAngle(const IK_QJacobian &jacobian, MT_Vector3&
if (clamp[0] == false && clamp[1] == false && clamp[2] == false) {
if (m_locked[0] || m_locked[1] || m_locked[2])
- m_new_basis = ComputeSwingMatrix(ax, az)*ComputeTwistMatrix(ay);
+ m_new_basis = ComputeSwingMatrix(ax, az) * ComputeTwistMatrix(ay);
return false;
}
- m_new_basis = ComputeSwingMatrix(ax, az)*ComputeTwistMatrix(ay);
+ m_new_basis = ComputeSwingMatrix(ax, az) * ComputeTwistMatrix(ay);
- delta = MatrixToAxisAngle(m_basis.transposed()*m_new_basis);
+ delta = MatrixToAxisAngle(m_basis.transposed() * m_new_basis);
if (!(m_locked[0] || m_locked[2]) && (clamp[0] || clamp[2])) {
m_locked_ax = ax;
@@ -528,12 +529,12 @@ void IK_QSphericalSegment::Lock(int dof, IK_QJacobian& jacobian, MT_Vector3& del
{
if (dof == 1) {
m_locked[1] = true;
- jacobian.Lock(m_DoF_id+1, delta[1]);
+ jacobian.Lock(m_DoF_id + 1, delta[1]);
}
else {
m_locked[0] = m_locked[2] = true;
jacobian.Lock(m_DoF_id, delta[0]);
- jacobian.Lock(m_DoF_id+2, delta[2]);
+ jacobian.Lock(m_DoF_id + 2, delta[2]);
}
}
@@ -545,14 +546,14 @@ void IK_QSphericalSegment::UpdateAngleApply()
// IK_QNullSegment
IK_QNullSegment::IK_QNullSegment()
-: IK_QSegment(0, false)
+ : IK_QSegment(0, false)
{
}
// IK_QRevoluteSegment
IK_QRevoluteSegment::IK_QRevoluteSegment(int axis)
-: IK_QSegment(1, false), m_axis(axis), m_angle(0.0), m_limit(false)
+ : IK_QSegment(1, false), m_axis(axis), m_angle(0.0), m_limit(false)
{
}
@@ -634,7 +635,7 @@ void IK_QRevoluteSegment::SetWeight(int axis, MT_Scalar weight)
// IK_QSwingSegment
IK_QSwingSegment::IK_QSwingSegment()
-: IK_QSegment(2, false), m_limit_x(false), m_limit_z(false)
+ : IK_QSegment(2, false), m_limit_x(false), m_limit_z(false)
{
}
@@ -646,7 +647,7 @@ void IK_QSwingSegment::SetBasis(const MT_Matrix3x3& basis)
MT_Vector3 IK_QSwingSegment::Axis(int dof) const
{
- return m_global_transform.getBasis().getColumn((dof==0)? 0: 2);
+ return m_global_transform.getBasis().getColumn((dof == 0) ? 0 : 2);
}
bool IK_QSwingSegment::UpdateAngle(const IK_QJacobian &jacobian, MT_Vector3& delta, bool *clamp)
@@ -657,7 +658,7 @@ bool IK_QSwingSegment::UpdateAngle(const IK_QJacobian &jacobian, MT_Vector3& del
MT_Vector3 dq;
dq.x() = jacobian.AngleUpdate(m_DoF_id);
dq.y() = 0.0;
- dq.z() = jacobian.AngleUpdate(m_DoF_id+1);
+ dq.z() = jacobian.AngleUpdate(m_DoF_id + 1);
// Directly update the rotation matrix, with Rodrigues' rotation formula,
// to avoid singularities and allow smooth integration.
@@ -665,25 +666,25 @@ bool IK_QSwingSegment::UpdateAngle(const IK_QJacobian &jacobian, MT_Vector3& del
MT_Scalar theta = dq.length();
if (!MT_fuzzyZero(theta)) {
- MT_Vector3 w = dq*(1.0/theta);
+ MT_Vector3 w = dq * (1.0 / theta);
MT_Scalar sine = sin(theta);
MT_Scalar cosine = cos(theta);
- MT_Scalar cosineInv = 1-cosine;
+ MT_Scalar cosineInv = 1 - cosine;
- MT_Scalar xsine = w.x()*sine;
- MT_Scalar zsine = w.z()*sine;
+ MT_Scalar xsine = w.x() * sine;
+ MT_Scalar zsine = w.z() * sine;
- MT_Scalar xxcosine = w.x()*w.x()*cosineInv;
- MT_Scalar xzcosine = w.x()*w.z()*cosineInv;
- MT_Scalar zzcosine = w.z()*w.z()*cosineInv;
+ MT_Scalar xxcosine = w.x() * w.x() * cosineInv;
+ MT_Scalar xzcosine = w.x() * w.z() * cosineInv;
+ MT_Scalar zzcosine = w.z() * w.z() * cosineInv;
MT_Matrix3x3 M(
- cosine + xxcosine, -zsine, xzcosine,
- zsine, cosine, -xsine,
- xzcosine, xsine, cosine + zzcosine);
+ cosine + xxcosine, -zsine, xzcosine,
+ zsine, cosine, -xsine,
+ xzcosine, xsine, cosine + zzcosine);
- m_new_basis = m_basis*M;
+ m_new_basis = m_basis * M;
RemoveTwist(m_new_basis);
}
@@ -731,7 +732,7 @@ bool IK_QSwingSegment::UpdateAngle(const IK_QJacobian &jacobian, MT_Vector3& del
m_new_basis = ComputeSwingMatrix(ax, az);
- delta = MatrixToAxisAngle(m_basis.transposed()*m_new_basis);
+ delta = MatrixToAxisAngle(m_basis.transposed() * m_new_basis);
delta[1] = delta[2]; delta[2] = 0.0;
return true;
@@ -741,7 +742,7 @@ void IK_QSwingSegment::Lock(int, IK_QJacobian& jacobian, MT_Vector3& delta)
{
m_locked[0] = m_locked[1] = true;
jacobian.Lock(m_DoF_id, delta[0]);
- jacobian.Lock(m_DoF_id+1, delta[1]);
+ jacobian.Lock(m_DoF_id + 1, delta[1]);
}
void IK_QSwingSegment::UpdateAngleApply()
@@ -758,11 +759,11 @@ void IK_QSwingSegment::SetLimit(int axis, MT_Scalar lmin, MT_Scalar lmax)
lmin = MT_clamp(lmin, -MT_PI, MT_PI);
lmax = MT_clamp(lmax, -MT_PI, MT_PI);
- lmin = sin(lmin*0.5);
- lmax = sin(lmax*0.5);
+ lmin = sin(lmin * 0.5);
+ lmax = sin(lmax * 0.5);
// put center of ellispe in the middle between min and max
- MT_Scalar offset = 0.5*(lmin + lmax);
+ MT_Scalar offset = 0.5 * (lmin + lmax);
//lmax = lmax - offset;
if (axis == 0) {
@@ -794,8 +795,8 @@ void IK_QSwingSegment::SetWeight(int axis, MT_Scalar weight)
// IK_QElbowSegment
IK_QElbowSegment::IK_QElbowSegment(int axis)
-: IK_QSegment(2, false), m_axis(axis), m_twist(0.0), m_angle(0.0),
- m_cos_twist(1.0), m_sin_twist(0.0), m_limit(false), m_limit_twist(false)
+ : IK_QSegment(2, false), m_axis(axis), m_twist(0.0), m_angle(0.0),
+ m_cos_twist(1.0), m_sin_twist(0.0), m_limit(false), m_limit_twist(false)
{
}
@@ -807,7 +808,7 @@ void IK_QElbowSegment::SetBasis(const MT_Matrix3x3& basis)
RemoveTwist(m_basis);
m_angle = EulerAngleFromMatrix(basis, m_axis);
- m_basis = RotationMatrix(m_angle, m_axis)*ComputeTwistMatrix(m_twist);
+ m_basis = RotationMatrix(m_angle, m_axis) * ComputeTwistMatrix(m_twist);
}
MT_Vector3 IK_QElbowSegment::Axis(int dof) const
@@ -850,7 +851,7 @@ bool IK_QElbowSegment::UpdateAngle(const IK_QJacobian &jacobian, MT_Vector3& del
}
if (!m_locked[1]) {
- m_new_twist = m_twist + jacobian.AngleUpdate(m_DoF_id+1);
+ m_new_twist = m_twist + jacobian.AngleUpdate(m_DoF_id + 1);
if (m_limit_twist) {
if (m_new_twist > m_max_twist) {
@@ -877,7 +878,7 @@ void IK_QElbowSegment::Lock(int dof, IK_QJacobian& jacobian, MT_Vector3& delta)
}
else {
m_locked[1] = true;
- jacobian.Lock(m_DoF_id+1, delta[1]);
+ jacobian.Lock(m_DoF_id + 1, delta[1]);
}
}
@@ -892,7 +893,7 @@ void IK_QElbowSegment::UpdateAngleApply()
MT_Matrix3x3 A = RotationMatrix(m_angle, m_axis);
MT_Matrix3x3 T = RotationMatrix(m_sin_twist, m_cos_twist, 1);
- m_basis = A*T;
+ m_basis = A * T;
}
void IK_QElbowSegment::SetLimit(int axis, MT_Scalar lmin, MT_Scalar lmax)
@@ -927,7 +928,7 @@ void IK_QElbowSegment::SetWeight(int axis, MT_Scalar weight)
// IK_QTranslateSegment
IK_QTranslateSegment::IK_QTranslateSegment(int axis1)
-: IK_QSegment(1, true)
+ : IK_QSegment(1, true)
{
m_axis_enabled[0] = m_axis_enabled[1] = m_axis_enabled[2] = false;
m_axis_enabled[axis1] = true;
@@ -938,7 +939,7 @@ IK_QTranslateSegment::IK_QTranslateSegment(int axis1)
}
IK_QTranslateSegment::IK_QTranslateSegment(int axis1, int axis2)
-: IK_QSegment(2, true)
+ : IK_QSegment(2, true)
{
m_axis_enabled[0] = m_axis_enabled[1] = m_axis_enabled[2] = false;
m_axis_enabled[axis1] = true;
@@ -951,7 +952,7 @@ IK_QTranslateSegment::IK_QTranslateSegment(int axis1, int axis2)
}
IK_QTranslateSegment::IK_QTranslateSegment()
-: IK_QSegment(3, true)
+ : IK_QSegment(3, true)
{
m_axis_enabled[0] = m_axis_enabled[1] = m_axis_enabled[2] = true;
@@ -1013,7 +1014,7 @@ void IK_QTranslateSegment::UpdateAngleApply()
void IK_QTranslateSegment::Lock(int dof, IK_QJacobian& jacobian, MT_Vector3& delta)
{
m_locked[dof] = true;
- jacobian.Lock(m_DoF_id+dof, delta[dof]);
+ jacobian.Lock(m_DoF_id + dof, delta[dof]);
}
void IK_QTranslateSegment::SetWeight(int axis, MT_Scalar weight)
@@ -1030,12 +1031,12 @@ void IK_QTranslateSegment::SetLimit(int axis, MT_Scalar lmin, MT_Scalar lmax)
if (lmax < lmin)
return;
- m_min[axis]= lmin;
- m_max[axis]= lmax;
- m_limit[axis]= true;
+ m_min[axis] = lmin;
+ m_max[axis] = lmax;
+ m_limit[axis] = true;
}
-void IK_QTranslateSegment::Scale(float scale)
+void IK_QTranslateSegment::Scale(MT_Scalar scale)
{
int i;
diff --git a/intern/iksolver/intern/IK_QSegment.h b/intern/iksolver/intern/IK_QSegment.h
index 68d40829137..b40bf3739ff 100644
--- a/intern/iksolver/intern/IK_QSegment.h
+++ b/intern/iksolver/intern/IK_QSegment.h
@@ -158,10 +158,10 @@ public:
virtual void UpdateAngleApply()=0;
// set joint limits
- virtual void SetLimit(int, MT_Scalar, MT_Scalar) {};
+ virtual void SetLimit(int, MT_Scalar, MT_Scalar) {}
// set joint weights (per axis)
- virtual void SetWeight(int, MT_Scalar) {};
+ virtual void SetWeight(int, MT_Scalar) {}
virtual void SetBasis(const MT_Matrix3x3& basis) { m_basis = basis; }
@@ -170,7 +170,7 @@ public:
void Reset();
// scale
- virtual void Scale(float scale);
+ virtual void Scale(MT_Scalar scale);
protected:
@@ -338,7 +338,7 @@ public:
void SetWeight(int axis, MT_Scalar weight);
void SetLimit(int axis, MT_Scalar lmin, MT_Scalar lmax);
- void Scale(float scale);
+ void Scale(MT_Scalar scale);
private:
int m_axis[3];
diff --git a/intern/iksolver/intern/IK_QTask.cpp b/intern/iksolver/intern/IK_QTask.cpp
index e050bb00658..0ba716ff59d 100644
--- a/intern/iksolver/intern/IK_QTask.cpp
+++ b/intern/iksolver/intern/IK_QTask.cpp
@@ -36,11 +36,11 @@
// IK_QTask
IK_QTask::IK_QTask(
- int size,
- bool primary,
- bool active,
- const IK_QSegment *segment
-) :
+ int size,
+ bool primary,
+ bool active,
+ const IK_QSegment *segment
+ ) :
m_size(size), m_primary(primary), m_active(active), m_segment(segment),
m_weight(1.0)
{
@@ -49,10 +49,10 @@ IK_QTask::IK_QTask(
// IK_QPositionTask
IK_QPositionTask::IK_QPositionTask(
- bool primary,
- const IK_QSegment *segment,
- const MT_Vector3& goal
-) :
+ bool primary,
+ const IK_QSegment *segment,
+ const MT_Vector3& goal
+ ) :
IK_QTask(3, primary, true, segment), m_goal(goal)
{
// computing clamping length
@@ -67,7 +67,7 @@ IK_QPositionTask::IK_QPositionTask(
num++;
}
- m_clamp_length /= 2*num;
+ m_clamp_length /= 2 * num;
}
void IK_QPositionTask::ComputeJacobian(IK_QJacobian& jacobian)
@@ -79,9 +79,9 @@ void IK_QPositionTask::ComputeJacobian(IK_QJacobian& jacobian)
MT_Scalar length = d_pos.length();
if (length > m_clamp_length)
- d_pos = (m_clamp_length/length)*d_pos;
+ d_pos = (m_clamp_length / length) * d_pos;
- jacobian.SetBetas(m_id, m_size, m_weight*d_pos);
+ jacobian.SetBetas(m_id, m_size, m_weight * d_pos);
// compute derivatives
int i;
@@ -91,13 +91,13 @@ void IK_QPositionTask::ComputeJacobian(IK_QJacobian& jacobian)
MT_Vector3 p = seg->GlobalStart() - pos;
for (i = 0; i < seg->NumberOfDoF(); i++) {
- MT_Vector3 axis = seg->Axis(i)*m_weight;
+ MT_Vector3 axis = seg->Axis(i) * m_weight;
if (seg->Translational())
- jacobian.SetDerivatives(m_id, seg->DoFId()+i, axis, 1e2);
+ jacobian.SetDerivatives(m_id, seg->DoFId() + i, axis, 1e2);
else {
MT_Vector3 pa = p.cross(axis);
- jacobian.SetDerivatives(m_id, seg->DoFId()+i, pa, 1e0);
+ jacobian.SetDerivatives(m_id, seg->DoFId() + i, pa, 1e0);
}
}
}
@@ -113,10 +113,10 @@ MT_Scalar IK_QPositionTask::Distance() const
// IK_QOrientationTask
IK_QOrientationTask::IK_QOrientationTask(
- bool primary,
- const IK_QSegment *segment,
- const MT_Matrix3x3& goal
-) :
+ bool primary,
+ const IK_QSegment *segment,
+ const MT_Matrix3x3& goal
+ ) :
IK_QTask(3, primary, true, segment), m_goal(goal), m_distance(0.0)
{
}
@@ -126,17 +126,17 @@ void IK_QOrientationTask::ComputeJacobian(IK_QJacobian& jacobian)
// compute betas
const MT_Matrix3x3& rot = m_segment->GlobalTransform().getBasis();
- MT_Matrix3x3 d_rotm = m_goal*rot.transposed();
+ MT_Matrix3x3 d_rotm = m_goal * rot.transposed();
d_rotm.transpose();
MT_Vector3 d_rot;
- d_rot = -0.5*MT_Vector3(d_rotm[2][1] - d_rotm[1][2],
- d_rotm[0][2] - d_rotm[2][0],
- d_rotm[1][0] - d_rotm[0][1]);
+ d_rot = -0.5 * MT_Vector3(d_rotm[2][1] - d_rotm[1][2],
+ d_rotm[0][2] - d_rotm[2][0],
+ d_rotm[1][0] - d_rotm[0][1]);
m_distance = d_rot.length();
- jacobian.SetBetas(m_id, m_size, m_weight*d_rot);
+ jacobian.SetBetas(m_id, m_size, m_weight * d_rot);
// compute derivatives
int i;
@@ -146,10 +146,10 @@ void IK_QOrientationTask::ComputeJacobian(IK_QJacobian& jacobian)
for (i = 0; i < seg->NumberOfDoF(); i++) {
if (seg->Translational())
- jacobian.SetDerivatives(m_id, seg->DoFId()+i, MT_Vector3(0, 0, 0), 1e2);
+ jacobian.SetDerivatives(m_id, seg->DoFId() + i, MT_Vector3(0, 0, 0), 1e2);
else {
- MT_Vector3 axis = seg->Axis(i)*m_weight;
- jacobian.SetDerivatives(m_id, seg->DoFId()+i, axis, 1e0);
+ MT_Vector3 axis = seg->Axis(i) * m_weight;
+ jacobian.SetDerivatives(m_id, seg->DoFId() + i, axis, 1e0);
}
}
}
@@ -158,15 +158,15 @@ void IK_QOrientationTask::ComputeJacobian(IK_QJacobian& jacobian)
// Note: implementation not finished!
IK_QCenterOfMassTask::IK_QCenterOfMassTask(
- bool primary,
- const IK_QSegment *segment,
- const MT_Vector3& goal_center
-) :
+ bool primary,
+ const IK_QSegment *segment,
+ const MT_Vector3& goal_center
+ ) :
IK_QTask(3, primary, true, segment), m_goal_center(goal_center)
{
m_total_mass_inv = ComputeTotalMass(m_segment);
if (!MT_fuzzyZero(m_total_mass_inv))
- m_total_mass_inv = 1.0/m_total_mass_inv;
+ m_total_mass_inv = 1.0 / m_total_mass_inv;
}
MT_Scalar IK_QCenterOfMassTask::ComputeTotalMass(const IK_QSegment *segment)
@@ -182,7 +182,7 @@ MT_Scalar IK_QCenterOfMassTask::ComputeTotalMass(const IK_QSegment *segment)
MT_Vector3 IK_QCenterOfMassTask::ComputeCenter(const IK_QSegment *segment)
{
- MT_Vector3 center = /*seg->Mass()**/segment->GlobalStart();
+ MT_Vector3 center = /*seg->Mass()**/ segment->GlobalStart();
const IK_QSegment *seg;
for (seg = segment->Child(); seg; seg = seg->Sibling())
@@ -197,14 +197,14 @@ void IK_QCenterOfMassTask::JacobianSegment(IK_QJacobian& jacobian, MT_Vector3& c
MT_Vector3 p = center - segment->GlobalStart();
for (i = 0; i < segment->NumberOfDoF(); i++) {
- MT_Vector3 axis = segment->Axis(i)*m_weight;
- axis *= /*segment->Mass()**/m_total_mass_inv;
+ MT_Vector3 axis = segment->Axis(i) * m_weight;
+ axis *= /*segment->Mass()**/ m_total_mass_inv;
if (segment->Translational())
- jacobian.SetDerivatives(m_id, segment->DoFId()+i, axis, 1e2);
+ jacobian.SetDerivatives(m_id, segment->DoFId() + i, axis, 1e2);
else {
MT_Vector3 pa = axis.cross(p);
- jacobian.SetDerivatives(m_id, segment->DoFId()+i, pa, 1e0);
+ jacobian.SetDerivatives(m_id, segment->DoFId() + i, pa, 1e0);
}
}
@@ -215,7 +215,7 @@ void IK_QCenterOfMassTask::JacobianSegment(IK_QJacobian& jacobian, MT_Vector3& c
void IK_QCenterOfMassTask::ComputeJacobian(IK_QJacobian& jacobian)
{
- MT_Vector3 center = ComputeCenter(m_segment)*m_total_mass_inv;
+ MT_Vector3 center = ComputeCenter(m_segment) * m_total_mass_inv;
// compute beta
MT_Vector3 d_pos = m_goal_center - center;
@@ -224,10 +224,10 @@ void IK_QCenterOfMassTask::ComputeJacobian(IK_QJacobian& jacobian)
#if 0
if (m_distance > m_clamp_length)
- d_pos = (m_clamp_length/m_distance)*d_pos;
+ d_pos = (m_clamp_length / m_distance) * d_pos;
#endif
- jacobian.SetBetas(m_id, m_size, m_weight*d_pos);
+ jacobian.SetBetas(m_id, m_size, m_weight * d_pos);
// compute derivatives
JacobianSegment(jacobian, center, m_segment);
diff --git a/intern/iksolver/intern/IK_QTask.h b/intern/iksolver/intern/IK_QTask.h
index 3d968cdfe38..baf1c346d62 100644
--- a/intern/iksolver/intern/IK_QTask.h
+++ b/intern/iksolver/intern/IK_QTask.h
@@ -49,7 +49,7 @@ public:
bool active,
const IK_QSegment *segment
);
- virtual ~IK_QTask() {};
+ virtual ~IK_QTask() {}
int Id() const
{ return m_size; }
@@ -78,7 +78,7 @@ public:
virtual bool PositionTask() const { return false; }
- virtual void Scale(float) {}
+ virtual void Scale(MT_Scalar) {}
protected:
int m_id;
@@ -103,7 +103,7 @@ public:
MT_Scalar Distance() const;
bool PositionTask() const { return true; }
- void Scale(float scale) { m_goal *= scale; m_clamp_length *= scale; }
+ void Scale(MT_Scalar scale) { m_goal *= scale; m_clamp_length *= scale; }
private:
MT_Vector3 m_goal;
@@ -119,7 +119,7 @@ public:
const MT_Matrix3x3& goal
);
- MT_Scalar Distance() const { return m_distance; };
+ MT_Scalar Distance() const { return m_distance; }
void ComputeJacobian(IK_QJacobian& jacobian);
private:
@@ -141,7 +141,7 @@ public:
MT_Scalar Distance() const;
- void Scale(float scale) { m_goal_center *= scale; m_distance *= scale; }
+ void Scale(MT_Scalar scale) { m_goal_center *= scale; m_distance *= scale; }
private:
MT_Scalar ComputeTotalMass(const IK_QSegment *segment);
diff --git a/intern/iksolver/intern/IK_Solver.cpp b/intern/iksolver/intern/IK_Solver.cpp
index 3876f26362c..c1a4ffcb1e8 100644
--- a/intern/iksolver/intern/IK_Solver.cpp
+++ b/intern/iksolver/intern/IK_Solver.cpp
@@ -42,20 +42,21 @@ using namespace std;
class IK_QSolver {
public:
- IK_QSolver() : root(NULL) {};
+ IK_QSolver() : root(NULL) {
+ }
IK_QJacobianSolver solver;
IK_QSegment *root;
- std::list<IK_QTask*> tasks;
+ std::list<IK_QTask *> tasks;
};
// FIXME: locks still result in small "residual" changes to the locked axes...
-IK_QSegment *CreateSegment(int flag, bool translate)
+static IK_QSegment *CreateSegment(int flag, bool translate)
{
int ndof = 0;
- ndof += (flag & IK_XDOF)? 1: 0;
- ndof += (flag & IK_YDOF)? 1: 0;
- ndof += (flag & IK_ZDOF)? 1: 0;
+ ndof += (flag & IK_XDOF) ? 1 : 0;
+ ndof += (flag & IK_YDOF) ? 1 : 0;
+ ndof += (flag & IK_ZDOF) ? 1 : 0;
IK_QSegment *seg;
@@ -78,7 +79,7 @@ IK_QSegment *CreateSegment(int flag, bool translate)
if (flag & IK_XDOF) {
axis1 = 0;
- axis2 = (flag & IK_YDOF)? 1: 2;
+ axis2 = (flag & IK_YDOF) ? 1 : 2;
}
else {
axis1 = 1;
@@ -91,7 +92,7 @@ IK_QSegment *CreateSegment(int flag, bool translate)
if (axis1 + axis2 == 2)
seg = new IK_QSwingSegment();
else
- seg = new IK_QElbowSegment((axis1 == 0)? 0: 2);
+ seg = new IK_QElbowSegment((axis1 == 0) ? 0 : 2);
}
}
else {
@@ -131,7 +132,7 @@ IK_Segment *IK_CreateSegment(int flag)
void IK_FreeSegment(IK_Segment *seg)
{
- IK_QSegment *qseg = (IK_QSegment*)seg;
+ IK_QSegment *qseg = (IK_QSegment *)seg;
if (qseg->Composite())
delete qseg->Composite();
@@ -140,8 +141,8 @@ void IK_FreeSegment(IK_Segment *seg)
void IK_SetParent(IK_Segment *seg, IK_Segment *parent)
{
- IK_QSegment *qseg = (IK_QSegment*)seg;
- IK_QSegment *qparent = (IK_QSegment*)parent;
+ IK_QSegment *qseg = (IK_QSegment *)seg;
+ IK_QSegment *qparent = (IK_QSegment *)parent;
if (qparent && qparent->Composite())
qseg->SetParent(qparent->Composite());
@@ -151,7 +152,7 @@ void IK_SetParent(IK_Segment *seg, IK_Segment *parent)
void IK_SetTransform(IK_Segment *seg, float start[3], float rest[][3], float basis[][3], float length)
{
- IK_QSegment *qseg = (IK_QSegment*)seg;
+ IK_QSegment *qseg = (IK_QSegment *)seg;
MT_Vector3 mstart(start);
// convert from blender column major to moto row major
@@ -177,19 +178,19 @@ void IK_SetTransform(IK_Segment *seg, float start[3], float rest[][3], float bas
void IK_SetLimit(IK_Segment *seg, IK_SegmentAxis axis, float lmin, float lmax)
{
- IK_QSegment *qseg = (IK_QSegment*)seg;
+ IK_QSegment *qseg = (IK_QSegment *)seg;
if (axis >= IK_TRANS_X) {
- if(!qseg->Translational()) {
- if(qseg->Composite() && qseg->Composite()->Translational())
+ if (!qseg->Translational()) {
+ if (qseg->Composite() && qseg->Composite()->Translational())
qseg = qseg->Composite();
else
return;
}
- if(axis == IK_TRANS_X) axis = IK_X;
- else if(axis == IK_TRANS_Y) axis = IK_Y;
- else axis = IK_Z;
+ if (axis == IK_TRANS_X) axis = IK_X;
+ else if (axis == IK_TRANS_Y) axis = IK_Y;
+ else axis = IK_Z;
}
qseg->SetLimit(axis, lmin, lmax);
@@ -197,25 +198,25 @@ void IK_SetLimit(IK_Segment *seg, IK_SegmentAxis axis, float lmin, float lmax)
void IK_SetStiffness(IK_Segment *seg, IK_SegmentAxis axis, float stiffness)
{
- if (stiffness < 0.0)
+ if (stiffness < 0.0f)
return;
- if (stiffness > 0.999)
- stiffness = 0.999;
+ if (stiffness > (1.0 - IK_STRETCH_STIFF_EPS))
+ stiffness = (1.0 - IK_STRETCH_STIFF_EPS);
- IK_QSegment *qseg = (IK_QSegment*)seg;
- MT_Scalar weight = 1.0-stiffness;
+ IK_QSegment *qseg = (IK_QSegment *)seg;
+ MT_Scalar weight = 1.0f - stiffness;
if (axis >= IK_TRANS_X) {
- if(!qseg->Translational()) {
- if(qseg->Composite() && qseg->Composite()->Translational())
+ if (!qseg->Translational()) {
+ if (qseg->Composite() && qseg->Composite()->Translational())
qseg = qseg->Composite();
else
return;
}
- if(axis == IK_TRANS_X) axis = IK_X;
- else if(axis == IK_TRANS_Y) axis = IK_Y;
+ if (axis == IK_TRANS_X) axis = IK_X;
+ else if (axis == IK_TRANS_Y) axis = IK_Y;
else axis = IK_Z;
}
@@ -224,7 +225,7 @@ void IK_SetStiffness(IK_Segment *seg, IK_SegmentAxis axis, float stiffness)
void IK_GetBasisChange(IK_Segment *seg, float basis_change[][3])
{
- IK_QSegment *qseg = (IK_QSegment*)seg;
+ IK_QSegment *qseg = (IK_QSegment *)seg;
if (qseg->Translational() && qseg->Composite())
qseg = qseg->Composite();
@@ -245,7 +246,7 @@ void IK_GetBasisChange(IK_Segment *seg, float basis_change[][3])
void IK_GetTranslationChange(IK_Segment *seg, float *translation_change)
{
- IK_QSegment *qseg = (IK_QSegment*)seg;
+ IK_QSegment *qseg = (IK_QSegment *)seg;
if (!qseg->Translational() && qseg->Composite())
qseg = qseg->Composite();
@@ -263,9 +264,9 @@ IK_Solver *IK_CreateSolver(IK_Segment *root)
return NULL;
IK_QSolver *solver = new IK_QSolver();
- solver->root = (IK_QSegment*)root;
+ solver->root = (IK_QSegment *)root;
- return (IK_Solver*)solver;
+ return (IK_Solver *)solver;
}
void IK_FreeSolver(IK_Solver *solver)
@@ -273,9 +274,9 @@ void IK_FreeSolver(IK_Solver *solver)
if (solver == NULL)
return;
- IK_QSolver *qsolver = (IK_QSolver*)solver;
- std::list<IK_QTask*>& tasks = qsolver->tasks;
- std::list<IK_QTask*>::iterator task;
+ IK_QSolver *qsolver = (IK_QSolver *)solver;
+ std::list<IK_QTask *>& tasks = qsolver->tasks;
+ std::list<IK_QTask *>::iterator task;
for (task = tasks.begin(); task != tasks.end(); task++)
delete (*task);
@@ -288,8 +289,8 @@ void IK_SolverAddGoal(IK_Solver *solver, IK_Segment *tip, float goal[3], float w
if (solver == NULL || tip == NULL)
return;
- IK_QSolver *qsolver = (IK_QSolver*)solver;
- IK_QSegment *qtip = (IK_QSegment*)tip;
+ IK_QSolver *qsolver = (IK_QSolver *)solver;
+ IK_QSegment *qtip = (IK_QSegment *)tip;
if (qtip->Composite())
qtip = qtip->Composite();
@@ -306,8 +307,8 @@ void IK_SolverAddGoalOrientation(IK_Solver *solver, IK_Segment *tip, float goal[
if (solver == NULL || tip == NULL)
return;
- IK_QSolver *qsolver = (IK_QSolver*)solver;
- IK_QSegment *qtip = (IK_QSegment*)tip;
+ IK_QSolver *qsolver = (IK_QSolver *)solver;
+ IK_QSegment *qtip = (IK_QSegment *)tip;
if (qtip->Composite())
qtip = qtip->Composite();
@@ -327,14 +328,14 @@ void IK_SolverSetPoleVectorConstraint(IK_Solver *solver, IK_Segment *tip, float
if (solver == NULL || tip == NULL)
return;
- IK_QSolver *qsolver = (IK_QSolver*)solver;
- IK_QSegment *qtip = (IK_QSegment*)tip;
+ IK_QSolver *qsolver = (IK_QSolver *)solver;
+ IK_QSegment *qtip = (IK_QSegment *)tip;
MT_Vector3 qgoal(goal);
MT_Vector3 qpolegoal(polegoal);
qsolver->solver.SetPoleVectorConstraint(
- qtip, qgoal, qpolegoal, poleangle, getangle);
+ qtip, qgoal, qpolegoal, poleangle, getangle);
}
float IK_SolverGetPoleAngle(IK_Solver *solver)
@@ -342,18 +343,18 @@ float IK_SolverGetPoleAngle(IK_Solver *solver)
if (solver == NULL)
return 0.0f;
- IK_QSolver *qsolver = (IK_QSolver*)solver;
+ IK_QSolver *qsolver = (IK_QSolver *)solver;
return qsolver->solver.GetPoleAngle();
}
-void IK_SolverAddCenterOfMass(IK_Solver *solver, IK_Segment *root, float goal[3], float weight)
+static void IK_SolverAddCenterOfMass(IK_Solver *solver, IK_Segment *root, float goal[3], float weight)
{
if (solver == NULL || root == NULL)
return;
- IK_QSolver *qsolver = (IK_QSolver*)solver;
- IK_QSegment *qroot = (IK_QSegment*)root;
+ IK_QSolver *qsolver = (IK_QSolver *)solver;
+ IK_QSegment *qroot = (IK_QSegment *)root;
// convert from blender column major to moto row major
MT_Vector3 center(goal);
@@ -368,18 +369,18 @@ int IK_Solve(IK_Solver *solver, float tolerance, int max_iterations)
if (solver == NULL)
return 0;
- IK_QSolver *qsolver = (IK_QSolver*)solver;
+ IK_QSolver *qsolver = (IK_QSolver *)solver;
IK_QSegment *root = qsolver->root;
IK_QJacobianSolver& jacobian = qsolver->solver;
- std::list<IK_QTask*>& tasks = qsolver->tasks;
+ std::list<IK_QTask *>& tasks = qsolver->tasks;
MT_Scalar tol = tolerance;
- if(!jacobian.Setup(root, tasks))
+ if (!jacobian.Setup(root, tasks))
return 0;
bool result = jacobian.Solve(root, tasks, tol, max_iterations);
- return ((result)? 1: 0);
+ return ((result) ? 1 : 0);
}
diff --git a/intern/iksolver/intern/MT_ExpMap.cpp b/intern/iksolver/intern/MT_ExpMap.cpp
index c997d434861..b2b13acebeb 100644
--- a/intern/iksolver/intern/MT_ExpMap.cpp
+++ b/intern/iksolver/intern/MT_ExpMap.cpp
@@ -37,11 +37,11 @@
* Set the exponential map from a quaternion. The quaternion must be non-zero.
*/
- void
+void
MT_ExpMap::
setRotation(
- const MT_Quaternion &q
-) {
+ const MT_Quaternion &q)
+{
// ok first normalize the quaternion
// then compute theta the axis-angle and the normalized axis v
// scale v by theta and that's it hopefully!
@@ -53,7 +53,7 @@ setRotation(
m_sinp = m_v.length();
m_v /= m_sinp;
- m_theta = atan2(double(m_sinp),double(cosp));
+ m_theta = atan2(double(m_sinp), double(cosp));
m_v *= m_theta;
}
@@ -62,10 +62,10 @@ setRotation(
* representation
*/
- const MT_Quaternion&
+const MT_Quaternion&
MT_ExpMap::
-getRotation(
-) const {
+getRotation() const
+{
return m_q;
}
@@ -73,10 +73,10 @@ getRotation(
* Convert the exponential map to a 3x3 matrix
*/
- MT_Matrix3x3
+MT_Matrix3x3
MT_ExpMap::
-getMatrix(
-) const {
+getMatrix() const
+{
return MT_Matrix3x3(m_q);
}
@@ -84,11 +84,11 @@ getMatrix(
* Update & reparameterizate the exponential map
*/
- void
+void
MT_ExpMap::
update(
- const MT_Vector3& dv
-){
+ const MT_Vector3& dv)
+{
m_v += dv;
angleUpdated();
@@ -100,14 +100,13 @@ update(
* from the map) and return them as a 3x3 matrix
*/
- void
+void
MT_ExpMap::
partialDerivatives(
- MT_Matrix3x3& dRdx,
- MT_Matrix3x3& dRdy,
- MT_Matrix3x3& dRdz
-) const {
-
+ MT_Matrix3x3& dRdx,
+ MT_Matrix3x3& dRdy,
+ MT_Matrix3x3& dRdz) const
+{
MT_Quaternion dQdx[3];
compute_dQdVi(dQdx);
@@ -117,29 +116,28 @@ partialDerivatives(
compute_dRdVi(dQdx[2], dRdz);
}
- void
+void
MT_ExpMap::
compute_dRdVi(
- const MT_Quaternion &dQdvi,
- MT_Matrix3x3 & dRdvi
-) const {
-
- MT_Scalar prod[9];
+ const MT_Quaternion &dQdvi,
+ MT_Matrix3x3 & dRdvi) const
+{
+ MT_Scalar prod[9];
/* This efficient formulation is arrived at by writing out the
* entire chain rule product dRdq * dqdv in terms of 'q' and
* noticing that all the entries are formed from sums of just
* nine products of 'q' and 'dqdv' */
- prod[0] = -MT_Scalar(4)*m_q.x()*dQdvi.x();
- prod[1] = -MT_Scalar(4)*m_q.y()*dQdvi.y();
- prod[2] = -MT_Scalar(4)*m_q.z()*dQdvi.z();
- prod[3] = MT_Scalar(2)*(m_q.y()*dQdvi.x() + m_q.x()*dQdvi.y());
- prod[4] = MT_Scalar(2)*(m_q.w()*dQdvi.z() + m_q.z()*dQdvi.w());
- prod[5] = MT_Scalar(2)*(m_q.z()*dQdvi.x() + m_q.x()*dQdvi.z());
- prod[6] = MT_Scalar(2)*(m_q.w()*dQdvi.y() + m_q.y()*dQdvi.w());
- prod[7] = MT_Scalar(2)*(m_q.z()*dQdvi.y() + m_q.y()*dQdvi.z());
- prod[8] = MT_Scalar(2)*(m_q.w()*dQdvi.x() + m_q.x()*dQdvi.w());
+ prod[0] = -MT_Scalar(4) * m_q.x() * dQdvi.x();
+ prod[1] = -MT_Scalar(4) * m_q.y() * dQdvi.y();
+ prod[2] = -MT_Scalar(4) * m_q.z() * dQdvi.z();
+ prod[3] = MT_Scalar(2) * (m_q.y() * dQdvi.x() + m_q.x() * dQdvi.y());
+ prod[4] = MT_Scalar(2) * (m_q.w() * dQdvi.z() + m_q.z() * dQdvi.w());
+ prod[5] = MT_Scalar(2) * (m_q.z() * dQdvi.x() + m_q.x() * dQdvi.z());
+ prod[6] = MT_Scalar(2) * (m_q.w() * dQdvi.y() + m_q.y() * dQdvi.w());
+ prod[7] = MT_Scalar(2) * (m_q.z() * dQdvi.y() + m_q.y() * dQdvi.z());
+ prod[8] = MT_Scalar(2) * (m_q.w() * dQdvi.x() + m_q.x() * dQdvi.w());
/* first row, followed by second and third */
dRdvi[0][0] = prod[1] + prod[2];
@@ -157,61 +155,60 @@ compute_dRdVi(
// compute partial derivatives dQ/dVi
- void
+void
MT_ExpMap::
compute_dQdVi(
- MT_Quaternion *dQdX
-) const {
-
+ MT_Quaternion *dQdX) const
+{
/* This is an efficient implementation of the derivatives given
* in Appendix A of the paper with common subexpressions factored out */
MT_Scalar sinc, termCoeff;
if (m_theta < MT_EXPMAP_MINANGLE) {
- sinc = 0.5 - m_theta*m_theta/48.0;
- termCoeff = (m_theta*m_theta/40.0 - 1.0)/24.0;
+ sinc = 0.5 - m_theta * m_theta / 48.0;
+ termCoeff = (m_theta * m_theta / 40.0 - 1.0) / 24.0;
}
else {
MT_Scalar cosp = m_q.w();
- MT_Scalar ang = 1.0/m_theta;
+ MT_Scalar ang = 1.0 / m_theta;
- sinc = m_sinp*ang;
- termCoeff = ang*ang*(0.5*cosp - sinc);
+ sinc = m_sinp * ang;
+ termCoeff = ang * ang * (0.5 * cosp - sinc);
}
for (int i = 0; i < 3; i++) {
MT_Quaternion& dQdx = dQdX[i];
- int i2 = (i+1)%3;
- int i3 = (i+2)%3;
+ int i2 = (i + 1) % 3;
+ int i3 = (i + 2) % 3;
- MT_Scalar term = m_v[i]*termCoeff;
+ MT_Scalar term = m_v[i] * termCoeff;
- dQdx[i] = term*m_v[i] + sinc;
- dQdx[i2] = term*m_v[i2];
- dQdx[i3] = term*m_v[i3];
- dQdx.w() = -0.5*m_v[i]*sinc;
+ dQdx[i] = term * m_v[i] + sinc;
+ dQdx[i2] = term * m_v[i2];
+ dQdx[i3] = term * m_v[i3];
+ dQdx.w() = -0.5 * m_v[i] * sinc;
}
}
// reParametize away from singularity, updating
// m_v and m_theta
- void
+void
MT_ExpMap::
-reParametrize(
-){
+reParametrize()
+{
if (m_theta > MT_PI) {
MT_Scalar scl = m_theta;
- if (m_theta > MT_2_PI){ /* first get theta into range 0..2PI */
+ if (m_theta > MT_2_PI) { /* first get theta into range 0..2PI */
m_theta = MT_Scalar(fmod(m_theta, MT_2_PI));
- scl = m_theta/scl;
+ scl = m_theta / scl;
m_v *= scl;
}
- if (m_theta > MT_PI){
+ if (m_theta > MT_PI) {
scl = m_theta;
m_theta = MT_2_PI - m_theta;
- scl = MT_Scalar(1.0) - MT_2_PI/scl;
+ scl = MT_Scalar(1.0) - MT_2_PI / scl;
m_v *= scl;
}
}
@@ -219,10 +216,10 @@ reParametrize(
// compute cached variables
- void
+void
MT_ExpMap::
-angleUpdated(
-){
+angleUpdated()
+{
m_theta = m_v.length();
reParametrize();
@@ -233,20 +230,21 @@ angleUpdated(
m_sinp = MT_Scalar(0.0);
/* Taylor Series for sinc */
- MT_Vector3 temp = m_v * MT_Scalar(MT_Scalar(.5) - m_theta*m_theta/MT_Scalar(48.0));
+ MT_Vector3 temp = m_v * MT_Scalar(MT_Scalar(.5) - m_theta * m_theta / MT_Scalar(48.0));
m_q.x() = temp.x();
m_q.y() = temp.y();
m_q.z() = temp.z();
m_q.w() = MT_Scalar(1.0);
- } else {
- m_sinp = MT_Scalar(sin(.5*m_theta));
+ }
+ else {
+ m_sinp = MT_Scalar(sin(.5 * m_theta));
/* Taylor Series for sinc */
- MT_Vector3 temp = m_v * (m_sinp/m_theta);
+ MT_Vector3 temp = m_v * (m_sinp / m_theta);
m_q.x() = temp.x();
m_q.y() = temp.y();
m_q.z() = temp.z();
- m_q.w() = MT_Scalar(cos(.5*m_theta));
+ m_q.w() = MT_Scalar(cos(0.5 * m_theta));
}
}
diff --git a/intern/iksolver/intern/MT_ExpMap.h b/intern/iksolver/intern/MT_ExpMap.h
index 9485428dc9f..65bbe4d4ad5 100644
--- a/intern/iksolver/intern/MT_ExpMap.h
+++ b/intern/iksolver/intern/MT_ExpMap.h
@@ -103,7 +103,7 @@ public:
const MT_Quaternion &q
) {
setRotation(q);
- };
+ }
/**
* Accessors
@@ -118,7 +118,7 @@ public:
vector(
) const {
return m_v;
- };
+ }
/**
* Set the exponential map from a quaternion
diff --git a/intern/iksolver/intern/TNT/cmat.h b/intern/iksolver/intern/TNT/cmat.h
index 146afdc79d7..fd3a1851262 100644
--- a/intern/iksolver/intern/TNT/cmat.h
+++ b/intern/iksolver/intern/TNT/cmat.h
@@ -182,7 +182,7 @@ class Matrix
// constructors
- Matrix() : m_(0), n_(0), mn_(0), v_(0), row_(0), vm1_(0), rowm1_(0) {};
+ Matrix() : m_(0), n_(0), mn_(0), v_(0), row_(0), vm1_(0), rowm1_(0) {}
Matrix(const Matrix<T> &A)
{
diff --git a/intern/iksolver/intern/TNT/vec.h b/intern/iksolver/intern/TNT/vec.h
index ff1b5c0ea0e..5d4ef14bf73 100644
--- a/intern/iksolver/intern/TNT/vec.h
+++ b/intern/iksolver/intern/TNT/vec.h
@@ -164,7 +164,7 @@ class Vector
// constructors
- Vector() : v_(0), vm1_(0), n_(0) {};
+ Vector() : v_(0), vm1_(0), n_(0) {}
Vector(const Vector<T> &A) : v_(0), vm1_(0), n_(0)
{
diff --git a/intern/itasc/Armature.cpp b/intern/itasc/Armature.cpp
index 1dacb8bc184..78780ed8ba3 100644
--- a/intern/itasc/Armature.cpp
+++ b/intern/itasc/Armature.cpp
@@ -319,7 +319,7 @@ int Armature::addConstraint(const std::string& segment_name, ConstraintCallback
return iConstraint;
}
}
- if (m_finalized) {
+ if (m_finalized) {
if (_freeParam && _param)
free(_param);
return -1;
diff --git a/intern/itasc/Scene.cpp b/intern/itasc/Scene.cpp
index 877cd883208..7a83f821bf0 100644
--- a/intern/itasc/Scene.cpp
+++ b/intern/itasc/Scene.cpp
@@ -40,7 +40,7 @@ public:
{
q_nr += m_qrange.start;
project(m_scene->m_Wq, Range(q_nr, ndof), m_qrange).setZero();
- // update the ouput vector so that the movement of this joint will be
+ // update the ouput vector so that the movement of this joint will be
// taken into account and we can put the joint back in its initial position
// which means that the jacobian doesn't need to be changed
for (unsigned int i=0 ;i<ndof ; ++i, ++q_nr) {
diff --git a/intern/itasc/kdl/utilities/utility_io.cpp b/intern/itasc/kdl/utilities/utility_io.cpp
index 0926f424f71..8656b05545c 100644
--- a/intern/itasc/kdl/utilities/utility_io.cpp
+++ b/intern/itasc/kdl/utilities/utility_io.cpp
@@ -39,7 +39,7 @@ namespace KDL {
}
}
// Eats until the end of the line
- int _EatUntilEndOfLine( std::istream& is, int* countp=NULL) {
+static int _EatUntilEndOfLine( std::istream& is, int* countp=NULL) {
int ch;
int count;
count = 0;
@@ -53,7 +53,7 @@ namespace KDL {
}
// Eats until the end of the comment
- int _EatUntilEndOfComment( std::istream& is, int* countp=NULL) {
+static int _EatUntilEndOfComment( std::istream& is, int* countp=NULL) {
int ch;
int count;
count = 0;
@@ -75,7 +75,7 @@ namespace KDL {
// Eats space-like characters and comments
// possibly returns the number of space-like characters eaten.
-int _EatSpace( std::istream& is,int* countp=NULL) {
+static int _EatSpace( std::istream& is,int* countp=NULL) {
int ch;
int count;
count=-1;
@@ -106,7 +106,7 @@ int _EatSpace( std::istream& is,int* countp=NULL) {
// Eats whites, returns, tabs and the delim character
-// Checks wether delim char. is encountered.
+// Checks whether delim char. is encountered.
void Eat( std::istream& is, int delim )
{
int ch;
@@ -119,7 +119,7 @@ void Eat( std::istream& is, int delim )
}
// Eats whites, returns, tabs and the delim character
-// Checks wether delim char. is encountered.
+// Checks whether delim char. is encountered.
// EatEnd does not eat all space-like char's at the end.
void EatEnd( std::istream& is, int delim )
{
diff --git a/intern/memutil/MEM_CacheLimiter.h b/intern/memutil/MEM_CacheLimiter.h
index 9a36b67aa2f..cfff5d10e4f 100644
--- a/intern/memutil/MEM_CacheLimiter.h
+++ b/intern/memutil/MEM_CacheLimiter.h
@@ -32,7 +32,7 @@
* @section MEM_CacheLimiter
* This class defines a generic memory cache management system
* to limit memory usage to a fixed global maximum.
- *
+ *
* Please use the C-API in MEM_CacheLimiterC-Api.h for code written in C.
*
* Usage example:
@@ -41,12 +41,12 @@
* public:
* ~BigFatImage() { tell_everyone_we_are_gone(this); }
* };
- *
+ *
* void doit() {
* MEM_Cache<BigFatImage> BigFatImages;
*
* MEM_Cache_Handle<BigFatImage>* h = BigFatImages.insert(new BigFatImage);
- *
+ *
* BigFatImages.enforce_limits();
* h->ref();
*
@@ -58,6 +58,8 @@
*/
#include <list>
+#include <queue>
+#include <vector>
#include "MEM_Allocator.h"
template<class T>
@@ -65,36 +67,44 @@ class MEM_CacheLimiter;
#ifndef __MEM_CACHELIMITERC_API_H__
extern "C" {
- extern void MEM_CacheLimiter_set_maximum(size_t m);
- extern size_t MEM_CacheLimiter_get_maximum();
+ void MEM_CacheLimiter_set_maximum(size_t m);
+ size_t MEM_CacheLimiter_get_maximum();
};
#endif
template<class T>
class MEM_CacheLimiterHandle {
public:
- explicit MEM_CacheLimiterHandle(T * data_,
- MEM_CacheLimiter<T> * parent_)
- : data(data_), refcount(0), parent(parent_) { }
+ explicit MEM_CacheLimiterHandle(T * data_,MEM_CacheLimiter<T> *parent_) :
+ data(data_),
+ refcount(0),
+ parent(parent_)
+ { }
- void ref() {
- refcount++;
+ void ref() {
+ refcount++;
}
- void unref() {
- refcount--;
+
+ void unref() {
+ refcount--;
}
- T * get() {
- return data;
+
+ T *get() {
+ return data;
}
- const T * get() const {
- return data;
+
+ const T *get() const {
+ return data;
}
- int get_refcount() const {
- return refcount;
+
+ int get_refcount() const {
+ return refcount;
}
- bool can_destroy() const {
- return !data || !refcount;
+
+ bool can_destroy() const {
+ return !data || !refcount;
}
+
bool destroy_if_possible() {
if (can_destroy()) {
delete data;
@@ -104,47 +114,53 @@ public:
}
return false;
}
+
void unmanage() {
parent->unmanage(this);
}
+
void touch() {
parent->touch(this);
}
+
private:
friend class MEM_CacheLimiter<T>;
T * data;
int refcount;
- typename std::list<MEM_CacheLimiterHandle<T> *,
- MEM_Allocator<MEM_CacheLimiterHandle<T> *> >::iterator me;
+ typename std::list<MEM_CacheLimiterHandle<T> *, MEM_Allocator<MEM_CacheLimiterHandle<T> *> >::iterator me;
MEM_CacheLimiter<T> * parent;
};
template<class T>
class MEM_CacheLimiter {
public:
- typedef typename std::list<MEM_CacheLimiterHandle<T> *,
- MEM_Allocator<MEM_CacheLimiterHandle<T> *> >::iterator iterator;
typedef size_t (*MEM_CacheLimiter_DataSize_Func) (void *data);
+ typedef int (*MEM_CacheLimiter_ItemPriority_Func) (void *item, int default_priority);
+
MEM_CacheLimiter(MEM_CacheLimiter_DataSize_Func getDataSize_)
: getDataSize(getDataSize_) {
}
+
~MEM_CacheLimiter() {
for (iterator it = queue.begin(); it != queue.end(); it++) {
delete *it;
}
}
- MEM_CacheLimiterHandle<T> * insert(T * elem) {
+
+ MEM_CacheLimiterHandle<T> *insert(T * elem) {
queue.push_back(new MEM_CacheLimiterHandle<T>(elem, this));
iterator it = queue.end();
--it;
queue.back()->me = it;
return queue.back();
}
- void unmanage(MEM_CacheLimiterHandle<T> * handle) {
+
+ void unmanage(MEM_CacheLimiterHandle<T> *handle) {
queue.erase(handle->me);
delete handle;
}
+
void enforce_limits() {
size_t max = MEM_CacheLimiter_get_maximum();
size_t mem_in_use, cur_size;
@@ -153,33 +169,41 @@ public:
return;
}
- if(getDataSize) {
+ if (getDataSize) {
mem_in_use = total_size();
- } else {
+ }
+ else {
mem_in_use = MEM_get_memory_in_use();
}
- for (iterator it = queue.begin();
- it != queue.end() && mem_in_use > max;)
- {
- iterator jt = it;
- ++it;
+ if (mem_in_use <= max) {
+ return;
+ }
+
+ while (!queue.empty() && mem_in_use > max) {
+ MEM_CacheElementPtr elem = get_least_priority_destroyable_element();
- if(getDataSize) {
- cur_size= getDataSize((*jt)->get()->get_data());
- } else {
- cur_size= mem_in_use;
- }
+ if (!elem)
+ break;
- (*jt)->destroy_if_possible();
+ if (getDataSize) {
+ cur_size = getDataSize(elem->get()->get_data());
+ }
+ else {
+ cur_size = mem_in_use;
+ }
- if(getDataSize) {
- mem_in_use-= cur_size;
- } else {
- mem_in_use-= cur_size - MEM_get_memory_in_use();
+ if (elem->destroy_if_possible()) {
+ if (getDataSize) {
+ mem_in_use -= cur_size;
+ }
+ else {
+ mem_in_use -= cur_size - MEM_get_memory_in_use();
+ }
}
}
}
+
void touch(MEM_CacheLimiterHandle<T> * handle) {
queue.push_back(handle);
queue.erase(handle->me);
@@ -187,7 +211,16 @@ public:
--it;
handle->me = it;
}
+
+ void set_item_priority_func(MEM_CacheLimiter_ItemPriority_Func item_priority_func) {
+ getItemPriority = item_priority_func;
+ }
+
private:
+ typedef MEM_CacheLimiterHandle<T> *MEM_CacheElementPtr;
+ typedef std::list<MEM_CacheElementPtr, MEM_Allocator<MEM_CacheElementPtr> > MEM_CacheQueue;
+ typedef typename MEM_CacheQueue::iterator iterator;
+
size_t total_size() {
size_t size = 0;
for (iterator it = queue.begin(); it != queue.end(); it++) {
@@ -196,9 +229,40 @@ private:
return size;
}
- std::list<MEM_CacheLimiterHandle<T>*,
- MEM_Allocator<MEM_CacheLimiterHandle<T> *> > queue;
+ MEM_CacheElementPtr get_least_priority_destroyable_element(void) {
+ if (queue.empty())
+ return NULL;
+
+ if (!getItemPriority)
+ return *queue.begin();
+
+ MEM_CacheElementPtr best_match_elem = NULL;
+ int best_match_priority = 0;
+ iterator it;
+ int i;
+
+ for (it = queue.begin(), i = 0; it != queue.end(); it++, i++) {
+ MEM_CacheElementPtr elem = *it;
+
+ if (!elem->can_destroy())
+ continue;
+
+ /* by default 0 means higherst priority element */
+ int priority = -(queue.size() - i - 1);
+ priority = getItemPriority(elem->get()->get_data(), priority);
+
+ if (priority < best_match_priority || best_match_elem == NULL) {
+ best_match_priority = priority;
+ best_match_elem = elem;
+ }
+ }
+
+ return best_match_elem;
+ }
+
+ MEM_CacheQueue queue;
MEM_CacheLimiter_DataSize_Func getDataSize;
+ MEM_CacheLimiter_ItemPriority_Func getItemPriority;
};
#endif // __MEM_CACHELIMITER_H__
diff --git a/intern/memutil/MEM_CacheLimiterC-Api.h b/intern/memutil/MEM_CacheLimiterC-Api.h
index 4ed692fb55f..1ae5e9df1c6 100644
--- a/intern/memutil/MEM_CacheLimiterC-Api.h
+++ b/intern/memutil/MEM_CacheLimiterC-Api.h
@@ -31,7 +31,7 @@
#ifdef __cplusplus
extern "C" {
#endif
-
+
struct MEM_CacheLimiter_s;
struct MEM_CacheLimiterHandle_s;
@@ -39,106 +39,111 @@ typedef struct MEM_CacheLimiter_s MEM_CacheLimiterC;
typedef struct MEM_CacheLimiterHandle_s MEM_CacheLimiterHandleC;
/* function used to remove data from memory */
-typedef void(*MEM_CacheLimiter_Destruct_Func)(void*);
+typedef void (*MEM_CacheLimiter_Destruct_Func)(void*);
/* function used to measure stored data element size */
-typedef size_t(*MEM_CacheLimiter_DataSize_Func) (void*);
+typedef size_t (*MEM_CacheLimiter_DataSize_Func) (void*);
+
+/* function used to measure priority of item when freeing memory */
+typedef int (*MEM_CacheLimiter_ItemPriority_Func) (void*, int);
#ifndef __MEM_CACHELIMITER_H__
-extern void MEM_CacheLimiter_set_maximum(size_t m);
-extern int MEM_CacheLimiter_get_maximum(void);
+void MEM_CacheLimiter_set_maximum(size_t m);
+int MEM_CacheLimiter_get_maximum(void);
#endif /* __MEM_CACHELIMITER_H__ */
-/**
- * Create new MEM_CacheLimiter object
+
+/**
+ * Create new MEM_CacheLimiter object
* managed objects are destructed with the data_destructor
*
* @param data_destructor
* @return A new MEM_CacheLimter object
*/
-extern MEM_CacheLimiterC * new_MEM_CacheLimiter(
- MEM_CacheLimiter_Destruct_Func data_destructor,
- MEM_CacheLimiter_DataSize_Func data_size);
+MEM_CacheLimiterC *new_MEM_CacheLimiter(MEM_CacheLimiter_Destruct_Func data_destructor,
+ MEM_CacheLimiter_DataSize_Func data_size);
-/**
+/**
* Delete MEM_CacheLimiter
- *
+ *
* Frees the memory of the CacheLimiter but does not touch managed objects!
*
* @param This "This" pointer
*/
-extern void delete_MEM_CacheLimiter(MEM_CacheLimiterC * This);
+void delete_MEM_CacheLimiter(MEM_CacheLimiterC *This);
-/**
+/**
* Manage object
- *
+ *
* @param This "This" pointer, data data object to manage
* @return CacheLimiterHandle to ref, unref, touch the managed object
*/
-
-extern MEM_CacheLimiterHandleC * MEM_CacheLimiter_insert(
- MEM_CacheLimiterC * This, void * data);
-/**
+MEM_CacheLimiterHandleC *MEM_CacheLimiter_insert(MEM_CacheLimiterC * This, void * data);
+
+/**
* Free objects until memory constraints are satisfied
- *
+ *
* @param This "This" pointer
*/
-extern void MEM_CacheLimiter_enforce_limits(MEM_CacheLimiterC * This);
+void MEM_CacheLimiter_enforce_limits(MEM_CacheLimiterC *This);
-/**
- * Unmanage object previously inserted object.
+/**
+ * Unmanage object previously inserted object.
* Does _not_ delete managed object!
- *
+ *
* @param This "This" pointer, handle of object
*/
-
-extern void MEM_CacheLimiter_unmanage(MEM_CacheLimiterHandleC * handle);
+void MEM_CacheLimiter_unmanage(MEM_CacheLimiterHandleC *handle);
-/**
+
+/**
* Raise priority of object (put it at the tail of the deletion chain)
- *
+ *
* @param handle of object
*/
-
-extern void MEM_CacheLimiter_touch(MEM_CacheLimiterHandleC * handle);
-/**
+void MEM_CacheLimiter_touch(MEM_CacheLimiterHandleC *handle);
+
+/**
* Increment reference counter. Objects with reference counter != 0 are _not_
* deleted.
- *
+ *
* @param handle of object
*/
-
-extern void MEM_CacheLimiter_ref(MEM_CacheLimiterHandleC * handle);
-/**
+void MEM_CacheLimiter_ref(MEM_CacheLimiterHandleC *handle);
+
+/**
* Decrement reference counter. Objects with reference counter != 0 are _not_
* deleted.
- *
+ *
* @param handle of object
*/
-
-extern void MEM_CacheLimiter_unref(MEM_CacheLimiterHandleC * handle);
-/**
+void MEM_CacheLimiter_unref(MEM_CacheLimiterHandleC *handle);
+
+/**
* Get reference counter.
- *
+ *
* @param This "This" pointer, handle of object
*/
-
-extern int MEM_CacheLimiter_get_refcount(MEM_CacheLimiterHandleC * handle);
-/**
+int MEM_CacheLimiter_get_refcount(MEM_CacheLimiterHandleC *handle);
+
+/**
* Get pointer to managed object
- *
+ *
* @param handle of object
*/
-
-extern void * MEM_CacheLimiter_get(MEM_CacheLimiterHandleC * handle);
+
+void * MEM_CacheLimiter_get(MEM_CacheLimiterHandleC *handle);
+
+void MEM_CacheLimiter_ItemPriority_Func_set(MEM_CacheLimiterC *This,
+ MEM_CacheLimiter_ItemPriority_Func item_priority_func);
#ifdef __cplusplus
}
diff --git a/intern/memutil/MEM_RefCountPtr.h b/intern/memutil/MEM_RefCountPtr.h
index ffdf927b551..da10e689fbf 100644
--- a/intern/memutil/MEM_RefCountPtr.h
+++ b/intern/memutil/MEM_RefCountPtr.h
@@ -130,7 +130,7 @@ protected :
/**
* Protected constructors
- * This class is not for direct instanciation. Sub classes
+ * This class is not for direct instantiation. Sub classes
* should only be allocated on the heap.
*/
diff --git a/intern/memutil/MEM_SmartPtr.h b/intern/memutil/MEM_SmartPtr.h
index 722a0a8fd3b..09cf5c95854 100644
--- a/intern/memutil/MEM_SmartPtr.h
+++ b/intern/memutil/MEM_SmartPtr.h
@@ -86,7 +86,7 @@
* private :
* MEM_SmartPtr<foo> m_foo;
* }
- *
+ *
* You may also safely construct vectors of MEM_SmartPtrs and
* have the vector own stuff you put into it.
*
@@ -167,7 +167,7 @@ public :
Ref(
) const {
return *m_val;
- }
+ }
/**
* Assignment operator - ownership is transfered from rhs to lhs.
@@ -207,7 +207,7 @@ public :
Release(
) const {
T* temp = m_val;
- (const_cast<MEM_SmartPtr *>(this))->m_val = NULL;
+ (const_cast<MEM_SmartPtr *>(this))->m_val = NULL;
return temp;
}
diff --git a/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp b/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp
index cfa6a207e1c..81a1ce670ae 100644
--- a/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp
+++ b/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp
@@ -31,7 +31,7 @@
static size_t & get_max()
{
- static size_t m = 32*1024*1024;
+ static size_t m = 32 * 1024 * 1024;
return m;
}
@@ -50,8 +50,7 @@ class MEM_CacheLimiterCClass;
typedef MEM_CacheLimiterHandle<MEM_CacheLimiterHandleCClass> handle_t;
typedef MEM_CacheLimiter<MEM_CacheLimiterHandleCClass> cache_t;
-typedef std::list<MEM_CacheLimiterHandleCClass*,
- MEM_Allocator<MEM_CacheLimiterHandleCClass* > > list_t;
+typedef std::list<MEM_CacheLimiterHandleCClass*, MEM_Allocator<MEM_CacheLimiterHandleCClass* > > list_t;
class MEM_CacheLimiterCClass {
public:
@@ -59,11 +58,10 @@ public:
: data_destructor(data_destructor_), cache(data_size) {
}
~MEM_CacheLimiterCClass();
-
+
handle_t * insert(void * data);
- void destruct(void * data,
- list_t::iterator it);
+ void destruct(void * data, list_t::iterator it);
cache_t * get_cache() {
return &cache;
@@ -72,42 +70,48 @@ private:
MEM_CacheLimiter_Destruct_Func data_destructor;
MEM_CacheLimiter<MEM_CacheLimiterHandleCClass> cache;
-
+
list_t cclass_list;
};
class MEM_CacheLimiterHandleCClass {
public:
- MEM_CacheLimiterHandleCClass(void * data_,
- MEM_CacheLimiterCClass * parent_)
- : data(data_), parent(parent_) { }
+ MEM_CacheLimiterHandleCClass(void * data_, MEM_CacheLimiterCClass * parent_) :
+ data(data_),
+ parent(parent_)
+ { }
+
~MEM_CacheLimiterHandleCClass();
+
void set_iter(list_t::iterator it_) {
it = it_;
}
+
void set_data(void * data_) {
data = data_;
}
- void * get_data() const {
+
+ void *get_data() const {
return data;
}
+
private:
- void * data;
- MEM_CacheLimiterCClass * parent;
+ void *data;
+ MEM_CacheLimiterCClass *parent;
list_t::iterator it;
};
-handle_t * MEM_CacheLimiterCClass::insert(void * data)
+handle_t *MEM_CacheLimiterCClass::insert(void * data)
{
cclass_list.push_back(new MEM_CacheLimiterHandleCClass(data, this));
list_t::iterator it = cclass_list.end();
--it;
cclass_list.back()->set_iter(it);
-
+
return cache.insert(cclass_list.back());
}
-void MEM_CacheLimiterCClass::destruct(void * data, list_t::iterator it)
+void MEM_CacheLimiterCClass::destruct(void * data, list_t::iterator it)
{
data_destructor(data);
cclass_list.erase(it);
@@ -123,77 +127,78 @@ MEM_CacheLimiterHandleCClass::~MEM_CacheLimiterHandleCClass()
MEM_CacheLimiterCClass::~MEM_CacheLimiterCClass()
{
// should not happen, but don't leak memory in this case...
- for (list_t::iterator it = cclass_list.begin();
- it != cclass_list.end(); it++) {
+ for (list_t::iterator it = cclass_list.begin(); it != cclass_list.end(); it++) {
(*it)->set_data(0);
+
delete *it;
}
}
// ----------------------------------------------------------------------
-static inline MEM_CacheLimiterCClass* cast(MEM_CacheLimiterC * l)
+static inline MEM_CacheLimiterCClass *cast(MEM_CacheLimiterC *l)
{
- return (MEM_CacheLimiterCClass*) l;
+ return (MEM_CacheLimiterCClass *) l;
}
-static inline handle_t* cast(MEM_CacheLimiterHandleC * l)
+static inline handle_t *cast(MEM_CacheLimiterHandleC *l)
{
- return (handle_t*) l;
+ return (handle_t *) l;
}
-MEM_CacheLimiterC * new_MEM_CacheLimiter(
- MEM_CacheLimiter_Destruct_Func data_destructor,
- MEM_CacheLimiter_DataSize_Func data_size)
+MEM_CacheLimiterC *new_MEM_CacheLimiter(MEM_CacheLimiter_Destruct_Func data_destructor,
+ MEM_CacheLimiter_DataSize_Func data_size)
{
- return (MEM_CacheLimiterC*) new MEM_CacheLimiterCClass(
- data_destructor,
- data_size);
+ return (MEM_CacheLimiterC *) new MEM_CacheLimiterCClass(data_destructor, data_size);
}
-void delete_MEM_CacheLimiter(MEM_CacheLimiterC * This)
+void delete_MEM_CacheLimiter(MEM_CacheLimiterC *This)
{
delete cast(This);
}
-MEM_CacheLimiterHandleC * MEM_CacheLimiter_insert(
- MEM_CacheLimiterC * This, void * data)
+MEM_CacheLimiterHandleC *MEM_CacheLimiter_insert(MEM_CacheLimiterC *This, void *data)
{
return (MEM_CacheLimiterHandleC *) cast(This)->insert(data);
}
-void MEM_CacheLimiter_enforce_limits(MEM_CacheLimiterC * This)
+void MEM_CacheLimiter_enforce_limits(MEM_CacheLimiterC *This)
{
cast(This)->get_cache()->enforce_limits();
}
-
-void MEM_CacheLimiter_unmanage(MEM_CacheLimiterHandleC * handle)
+
+void MEM_CacheLimiter_unmanage(MEM_CacheLimiterHandleC *handle)
{
cast(handle)->unmanage();
}
-
-void MEM_CacheLimiter_touch(MEM_CacheLimiterHandleC * handle)
+
+void MEM_CacheLimiter_touch(MEM_CacheLimiterHandleC *handle)
{
cast(handle)->touch();
}
-
-void MEM_CacheLimiter_ref(MEM_CacheLimiterHandleC * handle)
+
+void MEM_CacheLimiter_ref(MEM_CacheLimiterHandleC *handle)
{
cast(handle)->ref();
}
-
-void MEM_CacheLimiter_unref(MEM_CacheLimiterHandleC * handle)
+
+void MEM_CacheLimiter_unref(MEM_CacheLimiterHandleC *handle)
{
cast(handle)->unref();
}
-int MEM_CacheLimiter_get_refcount(MEM_CacheLimiterHandleC * handle)
+int MEM_CacheLimiter_get_refcount(MEM_CacheLimiterHandleC *handle)
{
return cast(handle)->get_refcount();
}
-
-void * MEM_CacheLimiter_get(MEM_CacheLimiterHandleC * handle)
+void *MEM_CacheLimiter_get(MEM_CacheLimiterHandleC *handle)
{
return cast(handle)->get()->get_data();
}
+
+void MEM_CacheLimiter_ItemPriority_Func_set(MEM_CacheLimiterC *This,
+ MEM_CacheLimiter_ItemPriority_Func item_priority_func)
+{
+ cast(This)->get_cache()->set_item_priority_func(item_priority_func);
+}
diff --git a/intern/mikktspace/mikktspace.c b/intern/mikktspace/mikktspace.c
index 0a3141d6782..a6597986c0a 100644
--- a/intern/mikktspace/mikktspace.c
+++ b/intern/mikktspace/mikktspace.c
@@ -437,7 +437,7 @@ const int g_iCells = 2048;
// it is IMPORTANT that this function is called to evaluate the hash since
// inlining could potentially reorder instructions and generate different
// results for the same effective input value fVal.
-NOINLINE int FindGridCell(const float fMin, const float fMax, const float fVal)
+static NOINLINE int FindGridCell(const float fMin, const float fMax, const float fVal)
{
const float fIndex = g_iCells * ((fVal-fMin)/(fMax-fMin));
const int iIndex = fIndex<0?0:((int)fIndex);
@@ -1063,6 +1063,7 @@ static int Build4RuleGroups(STriInfo pTriInfos[], SGroup pGroups[], int piGroupT
const int iNrMaxGroups = iNrTrianglesIn*3;
int iNrActiveGroups = 0;
int iOffset = 0, f=0, i=0;
+ (void)iNrMaxGroups; /* quiet warnings in non debug mode */
for (f=0; f<iNrTrianglesIn; f++)
{
for (i=0; i<3; i++)
@@ -1094,6 +1095,7 @@ static int Build4RuleGroups(STriInfo pTriInfos[], SGroup pGroups[], int piGroupT
const tbool bOrPre2 = (pTriInfos[neigh_indexL].iFlag&ORIENT_PRESERVING)!=0 ? TTRUE : TFALSE;
const tbool bDiff = bOrPre!=bOrPre2 ? TTRUE : TFALSE;
assert(bAnswer || bDiff);
+ (void)bAnswer, (void)bDiff; /* quiet warnings in non debug mode */
}
if (neigh_indexR>=0) // neighbor
{
@@ -1104,6 +1106,7 @@ static int Build4RuleGroups(STriInfo pTriInfos[], SGroup pGroups[], int piGroupT
const tbool bOrPre2 = (pTriInfos[neigh_indexR].iFlag&ORIENT_PRESERVING)!=0 ? TTRUE : TFALSE;
const tbool bDiff = bOrPre!=bOrPre2 ? TTRUE : TFALSE;
assert(bAnswer || bDiff);
+ (void)bAnswer, (void)bDiff; /* quiet warnings in non debug mode */
}
// update offset
diff --git a/intern/opencolorio/CMakeLists.txt b/intern/opencolorio/CMakeLists.txt
new file mode 100644
index 00000000000..d46b09cf76a
--- /dev/null
+++ b/intern/opencolorio/CMakeLists.txt
@@ -0,0 +1,64 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# The Original Code is Copyright (C) 2012, Blender Foundation
+# All rights reserved.
+#
+# The Original Code is: all of this file.
+#
+# Contributor(s): Sergey Sharybin.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+set(INC
+ .
+ ../guardedalloc
+ ../../source/blender/blenlib
+)
+
+set(INC_SYS
+)
+
+set(SRC
+ ocio_capi.cc
+ fallback_impl.cc
+
+ ocio_capi.h
+ ocio_impl.h
+)
+
+if(WITH_OPENCOLORIO)
+ add_definitions(
+ -DWITH_OCIO
+ )
+
+ list(APPEND INC_SYS
+ ${OPENCOLORIO_INCLUDE_DIRS}
+ )
+
+ list(APPEND SRC
+ ocio_impl.cc
+ )
+
+ if(WIN32 AND NOT MINGW)
+ list(APPEND INC_SYS
+ ${BOOST_INCLUDE_DIR}
+ )
+ endif()
+endif()
+
+
+blender_add_lib(bf_intern_opencolorio "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/intern/opencolorio/SConscript b/intern/opencolorio/SConscript
new file mode 100644
index 00000000000..a4d21f3e440
--- /dev/null
+++ b/intern/opencolorio/SConscript
@@ -0,0 +1,19 @@
+#!/usr/bin/python
+
+Import('env')
+
+sources = env.Glob('*.cc')
+
+incs = '. ../guardedalloc ../../source/blender/blenlib'
+defs = []
+
+if env['WITH_BF_OCIO']:
+ defs.append('WITH_OCIO')
+ incs += ' ' + env['BF_OCIO_INC']
+
+ if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
+ incs += ' ' + env['BF_BOOST_INC']
+else:
+ sources.remove('ocio_impl.cc')
+
+env.BlenderLib( 'bf_intern_opencolorio', sources, Split(incs), defs, libtype=['extern','player'], priority=[10, 185])
diff --git a/intern/opencolorio/fallback_impl.cc b/intern/opencolorio/fallback_impl.cc
new file mode 100644
index 00000000000..44c02d1442b
--- /dev/null
+++ b/intern/opencolorio/fallback_impl.cc
@@ -0,0 +1,382 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2012 Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Brecht van Lommel
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include <string.h>
+
+#include "MEM_guardedalloc.h"
+#include "BLI_math_color.h"
+
+#include "ocio_impl.h"
+
+#define CONFIG_DEFAULT ((OCIO_ConstConfigRcPtr*)1)
+
+#define PROCESSOR_LINEAR_TO_SRGB ((OCIO_ConstProcessorRcPtr*)1)
+#define PROCESSOR_SRGB_TO_LINEAR ((OCIO_ConstProcessorRcPtr*)2)
+#define PROCESSOR_UNKNOWN ((OCIO_ConstProcessorRcPtr*)3)
+
+#define COLORSPACE_LINEAR ((OCIO_ConstColorSpaceRcPtr*)1)
+#define COLORSPACE_SRGB ((OCIO_ConstColorSpaceRcPtr*)2)
+
+typedef struct OCIO_PackedImageDescription {
+ float *data;
+ long width;
+ long height;
+ long numChannels;
+ long chanStrideBytes;
+ long xStrideBytes;
+ long yStrideBytes;
+} OCIO_PackedImageDescription;
+
+OCIO_ConstConfigRcPtr *FallbackImpl::getCurrentConfig(void)
+{
+ return CONFIG_DEFAULT;
+}
+
+void FallbackImpl::setCurrentConfig(const OCIO_ConstConfigRcPtr *)
+{
+}
+
+OCIO_ConstConfigRcPtr *FallbackImpl::configCreateFromEnv(void)
+{
+ return CONFIG_DEFAULT;
+}
+
+OCIO_ConstConfigRcPtr *FallbackImpl::configCreateFromFile(const char *)
+{
+ return CONFIG_DEFAULT;
+}
+
+void FallbackImpl::configRelease(OCIO_ConstConfigRcPtr *)
+{
+}
+
+int FallbackImpl::configGetNumColorSpaces(OCIO_ConstConfigRcPtr *)
+{
+ return 2;
+}
+
+const char *FallbackImpl::configGetColorSpaceNameByIndex(OCIO_ConstConfigRcPtr *, int index)
+{
+ if (index == 0)
+ return "Linear";
+ else if (index == 1)
+ return "sRGB";
+
+ return NULL;
+}
+
+OCIO_ConstColorSpaceRcPtr *FallbackImpl::configGetColorSpace(OCIO_ConstConfigRcPtr *, const char *name)
+{
+ if (strcmp(name, "scene_linear") == 0)
+ return COLORSPACE_LINEAR;
+ else if (strcmp(name, "color_picking") == 0)
+ return COLORSPACE_SRGB;
+ else if (strcmp(name, "texture_paint") == 0)
+ return COLORSPACE_LINEAR;
+ else if (strcmp(name, "default_byte") == 0)
+ return COLORSPACE_SRGB;
+ else if (strcmp(name, "default_float") == 0)
+ return COLORSPACE_LINEAR;
+ else if (strcmp(name, "default_sequencer") == 0)
+ return COLORSPACE_SRGB;
+ else if (strcmp(name, "Linear") == 0)
+ return COLORSPACE_LINEAR;
+ else if (strcmp(name, "sRGB") == 0)
+ return COLORSPACE_SRGB;
+
+ return NULL;
+}
+
+int FallbackImpl::configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, const char *name)
+{
+ OCIO_ConstColorSpaceRcPtr *cs = configGetColorSpace(config, name);
+
+ if (cs == COLORSPACE_LINEAR)
+ return 0;
+ else if (cs == COLORSPACE_SRGB)
+ return 1;
+
+ return -1;
+}
+
+const char *FallbackImpl::configGetDefaultDisplay(OCIO_ConstConfigRcPtr *)
+{
+ return "sRGB";
+}
+
+int FallbackImpl::configGetNumDisplays(OCIO_ConstConfigRcPtr* config)
+{
+ return 1;
+}
+
+const char *FallbackImpl::configGetDisplay(OCIO_ConstConfigRcPtr *, int index)
+{
+ if (index == 0)
+ return "sRGB";
+
+ return NULL;
+}
+
+const char *FallbackImpl::configGetDefaultView(OCIO_ConstConfigRcPtr *, const char *)
+{
+ return "Default";
+}
+
+int FallbackImpl::configGetNumViews(OCIO_ConstConfigRcPtr *, const char *)
+{
+ return 1;
+}
+
+const char *FallbackImpl::configGetView(OCIO_ConstConfigRcPtr *, const char *, int index)
+{
+ if (index == 0)
+ return "Default";
+
+ return NULL;
+}
+
+const char *FallbackImpl::configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *, const char *, const char *)
+{
+ return "sRGB";
+}
+
+int FallbackImpl::colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ return 1;
+}
+
+int FallbackImpl::colorSpaceIsData(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ return 0;
+}
+
+void FallbackImpl::colorSpaceRelease(OCIO_ConstColorSpaceRcPtr *cs)
+{
+}
+
+OCIO_ConstProcessorRcPtr *FallbackImpl::configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config, const char *srcName, const char *dstName)
+{
+ OCIO_ConstColorSpaceRcPtr *cs_src = configGetColorSpace(config, srcName);
+ OCIO_ConstColorSpaceRcPtr *cs_dst = configGetColorSpace(config, dstName);
+
+ if (cs_src == COLORSPACE_LINEAR && cs_dst == COLORSPACE_SRGB)
+ return PROCESSOR_LINEAR_TO_SRGB;
+ else if (cs_src == COLORSPACE_SRGB && cs_dst == COLORSPACE_LINEAR)
+ return PROCESSOR_SRGB_TO_LINEAR;
+
+ return 0;
+}
+
+OCIO_ConstProcessorRcPtr *FallbackImpl::configGetProcessor(OCIO_ConstConfigRcPtr *, OCIO_ConstTransformRcPtr *tfm)
+{
+ return (OCIO_ConstProcessorRcPtr*)tfm;
+}
+
+void FallbackImpl::processorApply(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img)
+{
+ /* OCIO_TODO stride not respected, channels must be 3 or 4 */
+ OCIO_PackedImageDescription *desc = (OCIO_PackedImageDescription*)img;
+ int channels = desc->numChannels;
+ float *pixels = desc->data;
+ int width = desc->width;
+ int height = desc->height;
+ int x, y;
+
+ for (y = 0; y < height; y++) {
+ for (x = 0; x < width; x++) {
+ float *pixel = pixels + channels * (y * width + x);
+
+ if (channels == 4)
+ processorApplyRGBA(processor, pixel);
+ else if (channels == 3)
+ processorApplyRGB(processor, pixel);
+ }
+ }
+}
+
+void FallbackImpl::processorApply_predivide(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img)
+{
+ /* OCIO_TODO stride not respected, channels must be 3 or 4 */
+ OCIO_PackedImageDescription *desc = (OCIO_PackedImageDescription*)img;
+ int channels = desc->numChannels;
+ float *pixels = desc->data;
+ int width = desc->width;
+ int height = desc->height;
+ int x, y;
+
+ for (y = 0; y < height; y++) {
+ for (x = 0; x < width; x++) {
+ float *pixel = pixels + channels * (y * width + x);
+
+ if (channels == 4)
+ processorApplyRGBA_predivide(processor, pixel);
+ else if (channels == 3)
+ processorApplyRGB(processor, pixel);
+ }
+ }
+}
+
+void FallbackImpl::processorApplyRGB(OCIO_ConstProcessorRcPtr *processor, float *pixel)
+{
+ if (processor == PROCESSOR_LINEAR_TO_SRGB)
+ linearrgb_to_srgb_v3_v3(pixel, pixel);
+ else if (processor == PROCESSOR_SRGB_TO_LINEAR)
+ srgb_to_linearrgb_v3_v3(pixel, pixel);
+}
+
+void FallbackImpl::processorApplyRGBA(OCIO_ConstProcessorRcPtr *processor, float *pixel)
+{
+ if (processor == PROCESSOR_LINEAR_TO_SRGB)
+ linearrgb_to_srgb_v4(pixel, pixel);
+ else if (processor == PROCESSOR_SRGB_TO_LINEAR)
+ srgb_to_linearrgb_v4(pixel, pixel);
+}
+
+void FallbackImpl::processorApplyRGBA_predivide(OCIO_ConstProcessorRcPtr *processor, float *pixel)
+{
+ if (pixel[3] == 1.0f || pixel[3] == 0.0f) {
+ processorApplyRGBA(processor, pixel);
+ }
+ else {
+ float alpha, inv_alpha;
+
+ alpha = pixel[3];
+ inv_alpha = 1.0f / alpha;
+
+ pixel[0] *= inv_alpha;
+ pixel[1] *= inv_alpha;
+ pixel[2] *= inv_alpha;
+
+ processorApplyRGBA(processor, pixel);
+
+ pixel[0] *= alpha;
+ pixel[1] *= alpha;
+ pixel[2] *= alpha;
+ }
+}
+
+void FallbackImpl::processorRelease(OCIO_ConstProcessorRcPtr *)
+{
+}
+
+const char *FallbackImpl::colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ if (cs == COLORSPACE_LINEAR)
+ return "Linear";
+ else if (cs == COLORSPACE_SRGB)
+ return "sRGB";
+
+ return NULL;
+}
+
+const char *FallbackImpl::colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *)
+{
+ return "";
+}
+
+const char *FallbackImpl::colorSpaceGetFamily(OCIO_ConstColorSpaceRcPtr *)
+{
+ return "";
+}
+
+OCIO_DisplayTransformRcPtr *FallbackImpl::createDisplayTransform(void)
+{
+ return (OCIO_DisplayTransformRcPtr*)PROCESSOR_LINEAR_TO_SRGB;
+}
+
+void FallbackImpl::displayTransformSetInputColorSpaceName(OCIO_DisplayTransformRcPtr *, const char *)
+{
+}
+
+void FallbackImpl::displayTransformSetDisplay(OCIO_DisplayTransformRcPtr *, const char *)
+{
+}
+
+void FallbackImpl::displayTransformSetView(OCIO_DisplayTransformRcPtr *, const char *)
+{
+}
+
+void FallbackImpl::displayTransformSetDisplayCC(OCIO_DisplayTransformRcPtr *, OCIO_ConstTransformRcPtr *)
+{
+}
+
+void FallbackImpl::displayTransformSetLinearCC(OCIO_DisplayTransformRcPtr *, OCIO_ConstTransformRcPtr *)
+{
+}
+
+void FallbackImpl::displayTransformRelease(OCIO_DisplayTransformRcPtr *)
+{
+}
+
+OCIO_PackedImageDesc *FallbackImpl::createOCIO_PackedImageDesc(float *data, long width, long height, long numChannels,
+ long chanStrideBytes, long xStrideBytes, long yStrideBytes)
+{
+ OCIO_PackedImageDescription *desc = (OCIO_PackedImageDescription*)MEM_callocN(sizeof(OCIO_PackedImageDescription), "OCIO_PackedImageDescription");
+
+ desc->data = data;
+ desc->width = width;
+ desc->height = height;
+ desc->numChannels = numChannels;
+ desc->chanStrideBytes = chanStrideBytes;
+ desc->xStrideBytes = xStrideBytes;
+ desc->yStrideBytes = yStrideBytes;
+
+ return (OCIO_PackedImageDesc*)desc;
+}
+
+void FallbackImpl::OCIO_PackedImageDescRelease(OCIO_PackedImageDesc* id)
+{
+ MEM_freeN(id);
+}
+
+OCIO_ExponentTransformRcPtr *FallbackImpl::createExponentTransform(void)
+{
+ return (OCIO_ExponentTransformRcPtr*)PROCESSOR_UNKNOWN;
+}
+
+void FallbackImpl::exponentTransformSetValue(OCIO_ExponentTransformRcPtr *, const float *)
+{
+}
+
+void FallbackImpl::exponentTransformRelease(OCIO_ExponentTransformRcPtr *)
+{
+}
+
+OCIO_MatrixTransformRcPtr *FallbackImpl::createMatrixTransform(void)
+{
+ return (OCIO_MatrixTransformRcPtr*)PROCESSOR_UNKNOWN;
+}
+
+void FallbackImpl::matrixTransformSetValue(OCIO_MatrixTransformRcPtr *, const float *, const float *)
+{
+}
+
+void FallbackImpl::matrixTransformRelease(OCIO_MatrixTransformRcPtr *)
+{
+}
+
+void FallbackImpl::matrixTransformScale(float * , float * , const float *)
+{
+}
diff --git a/intern/opencolorio/ocio_capi.cc b/intern/opencolorio/ocio_capi.cc
new file mode 100644
index 00000000000..18fa4b7cb1b
--- /dev/null
+++ b/intern/opencolorio/ocio_capi.cc
@@ -0,0 +1,284 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2012 Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Sergey Sharybin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include "MEM_guardedalloc.h"
+
+#include "ocio_impl.h"
+
+static IOCIOImpl *impl = NULL;
+
+void OCIO_init(void)
+{
+#ifdef WITH_OCIO
+ impl = new OCIOImpl();
+#else
+ impl = new FallbackImpl();
+#endif
+}
+
+void OCIO_exit(void)
+{
+ delete impl;
+ impl = NULL;
+}
+
+OCIO_ConstConfigRcPtr *OCIO_getCurrentConfig(void)
+{
+ return impl->getCurrentConfig();
+}
+
+OCIO_ConstConfigRcPtr *OCIO_configCreateFallback(void)
+{
+ delete impl;
+ impl = new FallbackImpl();
+
+ return impl->getCurrentConfig();
+}
+
+void OCIO_setCurrentConfig(const OCIO_ConstConfigRcPtr *config)
+{
+ impl->setCurrentConfig(config);
+}
+
+OCIO_ConstConfigRcPtr *OCIO_configCreateFromEnv(void)
+{
+ return impl->configCreateFromEnv();
+}
+
+OCIO_ConstConfigRcPtr *OCIO_configCreateFromFile(const char *filename)
+{
+ return impl->configCreateFromFile(filename);
+}
+
+void OCIO_configRelease(OCIO_ConstConfigRcPtr *config)
+{
+ impl->configRelease(config);
+}
+
+int OCIO_configGetNumColorSpaces(OCIO_ConstConfigRcPtr *config)
+{
+ return impl->configGetNumColorSpaces(config);
+}
+
+const char *OCIO_configGetColorSpaceNameByIndex(OCIO_ConstConfigRcPtr *config, int index)
+{
+ return impl->configGetColorSpaceNameByIndex(config, index);
+}
+
+OCIO_ConstColorSpaceRcPtr *OCIO_configGetColorSpace(OCIO_ConstConfigRcPtr *config, const char *name)
+{
+ return impl->configGetColorSpace(config, name);
+}
+
+int OCIO_configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, const char *name)
+{
+ return impl->configGetIndexForColorSpace(config, name);
+}
+
+const char *OCIO_configGetDefaultDisplay(OCIO_ConstConfigRcPtr *config)
+{
+ return impl->configGetDefaultDisplay(config);
+}
+
+int OCIO_configGetNumDisplays(OCIO_ConstConfigRcPtr* config)
+{
+ return impl->configGetNumDisplays(config);
+}
+
+const char *OCIO_configGetDisplay(OCIO_ConstConfigRcPtr *config, int index)
+{
+ return impl->configGetDisplay(config, index);
+}
+
+const char *OCIO_configGetDefaultView(OCIO_ConstConfigRcPtr *config, const char *display)
+{
+ return impl->configGetDefaultView(config, display);
+}
+
+int OCIO_configGetNumViews(OCIO_ConstConfigRcPtr *config, const char *display)
+{
+ return impl->configGetNumViews(config, display);
+}
+
+const char *OCIO_configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index)
+{
+ return impl->configGetView(config, display, index);
+}
+
+const char *OCIO_configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view)
+{
+ return impl->configGetDisplayColorSpaceName(config, display, view);
+}
+
+int OCIO_colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ return impl->colorSpaceIsInvertible(cs);
+}
+
+int OCIO_colorSpaceIsData(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ return impl->colorSpaceIsData(cs);
+}
+
+void OCIO_colorSpaceRelease(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ impl->colorSpaceRelease(cs);
+}
+
+OCIO_ConstProcessorRcPtr *OCIO_configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config, const char *srcName, const char *dstName)
+{
+ return impl->configGetProcessorWithNames(config, srcName, dstName);
+}
+
+OCIO_ConstProcessorRcPtr *OCIO_configGetProcessor(OCIO_ConstConfigRcPtr *config, OCIO_ConstTransformRcPtr *transform)
+{
+ return impl->configGetProcessor(config, transform);
+}
+
+void OCIO_processorApply(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img)
+{
+ impl->processorApply(processor, img);
+}
+
+void OCIO_processorApply_predivide(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img)
+{
+ impl->processorApply_predivide(processor, img);
+}
+
+void OCIO_processorApplyRGB(OCIO_ConstProcessorRcPtr *processor, float *pixel)
+{
+ impl->processorApplyRGB(processor, pixel);
+}
+
+void OCIO_processorApplyRGBA(OCIO_ConstProcessorRcPtr *processor, float *pixel)
+{
+ impl->processorApplyRGBA(processor, pixel);
+}
+
+void OCIO_processorApplyRGBA_predivide(OCIO_ConstProcessorRcPtr *processor, float *pixel)
+{
+ impl->processorApplyRGBA_predivide(processor, pixel);
+}
+
+void OCIO_processorRelease(OCIO_ConstProcessorRcPtr *p)
+{
+ impl->processorRelease(p);
+}
+
+const char *OCIO_colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ return impl->colorSpaceGetName(cs);
+}
+
+const char *OCIO_colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ return impl->colorSpaceGetDescription(cs);
+}
+
+const char *OCIO_colorSpaceGetFamily(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ return impl->colorSpaceGetFamily(cs);
+}
+
+OCIO_DisplayTransformRcPtr *OCIO_createDisplayTransform(void)
+{
+ return impl->createDisplayTransform();
+}
+
+void OCIO_displayTransformSetInputColorSpaceName(OCIO_DisplayTransformRcPtr *dt, const char *name)
+{
+ impl->displayTransformSetInputColorSpaceName(dt, name);
+}
+
+void OCIO_displayTransformSetDisplay(OCIO_DisplayTransformRcPtr *dt, const char *name)
+{
+ impl->displayTransformSetDisplay(dt, name);
+}
+
+void OCIO_displayTransformSetView(OCIO_DisplayTransformRcPtr *dt, const char *name)
+{
+ impl->displayTransformSetView(dt, name);
+}
+
+void OCIO_displayTransformSetDisplayCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *t)
+{
+ impl->displayTransformSetDisplayCC(dt, t);
+}
+
+void OCIO_displayTransformSetLinearCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *t)
+{
+ impl->displayTransformSetLinearCC(dt, t);
+}
+
+void OCIO_displayTransformRelease(OCIO_DisplayTransformRcPtr *dt)
+{
+ impl->displayTransformRelease(dt);
+}
+
+OCIO_PackedImageDesc *OCIO_createOCIO_PackedImageDesc(float *data, long width, long height, long numChannels,
+ long chanStrideBytes, long xStrideBytes, long yStrideBytes)
+{
+ return impl->createOCIO_PackedImageDesc(data, width, height, numChannels, chanStrideBytes, xStrideBytes, yStrideBytes);
+}
+
+void OCIO_OCIO_PackedImageDescRelease(OCIO_PackedImageDesc* id)
+{
+ impl->OCIO_PackedImageDescRelease(id);
+}
+
+OCIO_ExponentTransformRcPtr *OCIO_createExponentTransform(void)
+{
+ return impl->createExponentTransform();
+}
+
+void OCIO_exponentTransformSetValue(OCIO_ExponentTransformRcPtr *et, const float *exponent)
+{
+ impl->exponentTransformSetValue(et, exponent);
+}
+
+void OCIO_exponentTransformRelease(OCIO_ExponentTransformRcPtr *et)
+{
+ impl->exponentTransformRelease(et);
+}
+
+OCIO_MatrixTransformRcPtr *OCIO_createMatrixTransform(void)
+{
+ return impl->createMatrixTransform();
+}
+
+void OCIO_matrixTransformSetValue(OCIO_MatrixTransformRcPtr *mt, const float *m44, const float *offset4)
+{
+ impl->matrixTransformSetValue(mt, m44, offset4);
+}
+
+void OCIO_matrixTransformRelease(OCIO_MatrixTransformRcPtr *mt)
+{
+ impl->matrixTransformRelease(mt);
+}
+
+void OCIO_matrixTransformScale(float * m44, float * offset4, const float *scale4f)
+{
+ impl->matrixTransformScale(m44, offset4, scale4f);
+}
diff --git a/intern/opencolorio/ocio_capi.h b/intern/opencolorio/ocio_capi.h
new file mode 100644
index 00000000000..0ce5f8a1456
--- /dev/null
+++ b/intern/opencolorio/ocio_capi.h
@@ -0,0 +1,126 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2012 Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Xavier Thomas
+ * Lukas Toene
+ * Sergey Sharybin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef __OCIO_CAPI_H__
+#define __OCIO_CAPI_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define OCIO_DECLARE_HANDLE(name) typedef struct name##__ { int unused; } *name
+
+#define OCIO_ROLE_SCENE_LINEAR "scene_linear"
+#define OCIO_ROLE_COLOR_PICKING "color_picking"
+#define OCIO_ROLE_TEXTURE_PAINT "texture_paint"
+#define OCIO_ROLE_DEFAULT_BYTE "default_byte"
+#define OCIO_ROLE_DEFAULT_FLOAT "default_float"
+#define OCIO_ROLE_DEFAULT_SEQUENCER "default_sequencer"
+
+OCIO_DECLARE_HANDLE(OCIO_ConstConfigRcPtr);
+OCIO_DECLARE_HANDLE(OCIO_ConstColorSpaceRcPtr);
+OCIO_DECLARE_HANDLE(OCIO_ConstProcessorRcPtr);
+OCIO_DECLARE_HANDLE(OCIO_ConstContextRcPtr);
+OCIO_DECLARE_HANDLE(OCIO_PackedImageDesc);
+OCIO_DECLARE_HANDLE(OCIO_DisplayTransformRcPtr);
+OCIO_DECLARE_HANDLE(OCIO_ConstTransformRcPtr);
+OCIO_DECLARE_HANDLE(OCIO_ExponentTransformRcPtr);
+OCIO_DECLARE_HANDLE(OCIO_MatrixTransformRcPtr);
+
+void OCIO_init(void);
+void OCIO_exit(void);
+
+OCIO_ConstConfigRcPtr *OCIO_getCurrentConfig(void);
+void OCIO_setCurrentConfig(const OCIO_ConstConfigRcPtr *config);
+
+OCIO_ConstConfigRcPtr *OCIO_configCreateFromEnv(void);
+OCIO_ConstConfigRcPtr *OCIO_configCreateFromFile(const char* filename);
+OCIO_ConstConfigRcPtr *OCIO_configCreateFallback(void);
+
+void OCIO_configRelease(OCIO_ConstConfigRcPtr *config);
+
+int OCIO_configGetNumColorSpaces(OCIO_ConstConfigRcPtr *config);
+const char *OCIO_configGetColorSpaceNameByIndex(OCIO_ConstConfigRcPtr *config, int index);
+OCIO_ConstColorSpaceRcPtr *OCIO_configGetColorSpace(OCIO_ConstConfigRcPtr *config, const char *name);
+int OCIO_configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, const char *name);
+
+int OCIO_colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs);
+int OCIO_colorSpaceIsData(OCIO_ConstColorSpaceRcPtr *cs);
+
+void OCIO_colorSpaceRelease(OCIO_ConstColorSpaceRcPtr *cs);
+
+const char *OCIO_configGetDefaultDisplay(OCIO_ConstConfigRcPtr *config);
+int OCIO_configGetNumDisplays(OCIO_ConstConfigRcPtr *config);
+const char *OCIO_configGetDisplay(OCIO_ConstConfigRcPtr *config, int index);
+const char *OCIO_configGetDefaultView(OCIO_ConstConfigRcPtr *config, const char *display);
+int OCIO_configGetNumViews(OCIO_ConstConfigRcPtr *config, const char *display);
+const char *OCIO_configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index);
+const char *OCIO_configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view);
+
+OCIO_ConstProcessorRcPtr *OCIO_configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config, const char *srcName, const char *dstName);
+OCIO_ConstProcessorRcPtr *OCIO_configGetProcessor(OCIO_ConstConfigRcPtr *config, OCIO_ConstTransformRcPtr *transform);
+
+void OCIO_processorApply(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img);
+void OCIO_processorApply_predivide(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img);
+void OCIO_processorApplyRGB(OCIO_ConstProcessorRcPtr *processor, float *pixel);
+void OCIO_processorApplyRGBA(OCIO_ConstProcessorRcPtr *processor, float *pixel);
+void OCIO_processorApplyRGBA_predivide(OCIO_ConstProcessorRcPtr *processor, float *pixel);
+
+void OCIO_processorRelease(OCIO_ConstProcessorRcPtr *p);
+
+const char *OCIO_colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs);
+const char *OCIO_colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs);
+const char *OCIO_colorSpaceGetFamily(OCIO_ConstColorSpaceRcPtr *cs);
+
+OCIO_DisplayTransformRcPtr *OCIO_createDisplayTransform(void);
+void OCIO_displayTransformSetInputColorSpaceName(OCIO_DisplayTransformRcPtr *dt, const char *name);
+void OCIO_displayTransformSetDisplay(OCIO_DisplayTransformRcPtr *dt, const char *name);
+void OCIO_displayTransformSetView(OCIO_DisplayTransformRcPtr *dt, const char *name);
+void OCIO_displayTransformSetDisplayCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et);
+void OCIO_displayTransformSetLinearCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et);
+void OCIO_displayTransformRelease(OCIO_DisplayTransformRcPtr *dt);
+
+OCIO_PackedImageDesc *OCIO_createOCIO_PackedImageDesc(float *data, long width, long height, long numChannels,
+ long chanStrideBytes, long xStrideBytes, long yStrideBytes);
+
+void OCIO_OCIO_PackedImageDescRelease(OCIO_PackedImageDesc *p);
+
+OCIO_ExponentTransformRcPtr *OCIO_createExponentTransform(void);
+void OCIO_exponentTransformSetValue(OCIO_ExponentTransformRcPtr *et, const float *exponent);
+void OCIO_exponentTransformRelease(OCIO_ExponentTransformRcPtr *et);
+
+OCIO_MatrixTransformRcPtr *OCIO_createMatrixTransform(void);
+void OCIO_matrixTransformSetValue(OCIO_MatrixTransformRcPtr *et, const float *m44, const float *offset4);
+void OCIO_matrixTransformRelease(OCIO_MatrixTransformRcPtr *mt);
+
+void OCIO_matrixTransformScale(float * m44, float * offset4, const float * scale4);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* OCIO_CAPI_H */
diff --git a/intern/opencolorio/ocio_impl.cc b/intern/opencolorio/ocio_impl.cc
new file mode 100644
index 00000000000..49fc44d1e12
--- /dev/null
+++ b/intern/opencolorio/ocio_impl.cc
@@ -0,0 +1,544 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2012 Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Xavier Thomas
+ * Lukas Toene,
+ * Sergey Sharybin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include <iostream>
+#include <string.h>
+
+#include <OpenColorIO/OpenColorIO.h>
+
+using namespace OCIO_NAMESPACE;
+
+#include "MEM_guardedalloc.h"
+
+#include "ocio_impl.h"
+
+#if !defined(WITH_ASSERT_ABORT)
+# define OCIO_abort()
+#else
+# include <stdlib.h>
+# define OCIO_abort() abort()
+#endif
+
+#if defined(_MSC_VER)
+# define __func__ __FUNCTION__
+#endif
+
+#define MEM_NEW(type) new(MEM_mallocN(sizeof(type), __func__)) type()
+#define MEM_DELETE(what, type) if(what) { (what)->~type(); MEM_freeN(what); } (void)0
+
+static void OCIO_reportError(const char *err)
+{
+ std::cerr << "OpenColorIO Error: " << err << std::endl;
+
+ OCIO_abort();
+}
+
+static void OCIO_reportException(Exception &exception)
+{
+ OCIO_reportError(exception.what());
+}
+
+OCIO_ConstConfigRcPtr *OCIOImpl::getCurrentConfig(void)
+{
+ ConstConfigRcPtr *config = MEM_NEW(ConstConfigRcPtr);
+
+ try {
+ *config = GetCurrentConfig();
+
+ if (*config)
+ return (OCIO_ConstConfigRcPtr *) config;
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ MEM_DELETE(config, ConstConfigRcPtr);
+
+ return NULL;
+}
+
+void OCIOImpl::setCurrentConfig(const OCIO_ConstConfigRcPtr *config)
+{
+ try {
+ SetCurrentConfig(*(ConstConfigRcPtr *) config);
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+}
+
+OCIO_ConstConfigRcPtr *OCIOImpl::configCreateFromEnv(void)
+{
+ ConstConfigRcPtr *config = MEM_NEW(ConstConfigRcPtr);
+
+ try {
+ *config = Config::CreateFromEnv();
+
+ if (*config)
+ return (OCIO_ConstConfigRcPtr *) config;
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ MEM_DELETE(config, ConstConfigRcPtr);
+
+ return NULL;
+}
+
+
+OCIO_ConstConfigRcPtr *OCIOImpl::configCreateFromFile(const char *filename)
+{
+ ConstConfigRcPtr *config = MEM_NEW(ConstConfigRcPtr);
+
+ try {
+ *config = Config::CreateFromFile(filename);
+
+ if (*config)
+ return (OCIO_ConstConfigRcPtr *) config;
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ MEM_DELETE(config, ConstConfigRcPtr);
+
+ return NULL;
+}
+
+void OCIOImpl::configRelease(OCIO_ConstConfigRcPtr *config)
+{
+ MEM_DELETE((ConstConfigRcPtr *) config, ConstConfigRcPtr);
+}
+
+int OCIOImpl::configGetNumColorSpaces(OCIO_ConstConfigRcPtr *config)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getNumColorSpaces();
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return 0;
+}
+
+const char *OCIOImpl::configGetColorSpaceNameByIndex(OCIO_ConstConfigRcPtr *config, int index)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getColorSpaceNameByIndex(index);
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return NULL;
+}
+
+OCIO_ConstColorSpaceRcPtr *OCIOImpl::configGetColorSpace(OCIO_ConstConfigRcPtr *config, const char *name)
+{
+ ConstColorSpaceRcPtr *cs = MEM_NEW(ConstColorSpaceRcPtr);
+
+ try {
+ *cs = (*(ConstConfigRcPtr *) config)->getColorSpace(name);
+
+ if (*cs)
+ return (OCIO_ConstColorSpaceRcPtr *) cs;
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ MEM_DELETE(cs, ConstColorSpaceRcPtr);
+
+ return NULL;
+}
+
+int OCIOImpl::configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, const char *name)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getIndexForColorSpace(name);
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return -1;
+}
+
+const char *OCIOImpl::configGetDefaultDisplay(OCIO_ConstConfigRcPtr *config)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getDefaultDisplay();
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return NULL;
+}
+
+int OCIOImpl::configGetNumDisplays(OCIO_ConstConfigRcPtr* config)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getNumDisplays();
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return 0;
+}
+
+const char *OCIOImpl::configGetDisplay(OCIO_ConstConfigRcPtr *config, int index)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getDisplay(index);
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return NULL;
+}
+
+const char *OCIOImpl::configGetDefaultView(OCIO_ConstConfigRcPtr *config, const char *display)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getDefaultView(display);
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return NULL;
+}
+
+int OCIOImpl::configGetNumViews(OCIO_ConstConfigRcPtr *config, const char *display)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getNumViews(display);
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return 0;
+}
+
+const char *OCIOImpl::configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getView(display, index);
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return NULL;
+}
+
+const char *OCIOImpl::configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view)
+{
+ try {
+ return (*(ConstConfigRcPtr *) config)->getDisplayColorSpaceName(display, view);
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return NULL;
+}
+
+int OCIOImpl::colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs_)
+{
+ ConstColorSpaceRcPtr *cs = (ConstColorSpaceRcPtr *) cs_;
+ const char *family = (*cs)->getFamily();
+
+ if (!strcmp(family, "rrt") || !strcmp(family, "display")) {
+ /* assume display and rrt transformations are not invertible
+ * in fact some of them could be, but it doesn't make much sense to allow use them as invertible
+ */
+ return false;
+ }
+
+ if ((*cs)->isData()) {
+ /* data color spaces don't have transformation at all */
+ return true;
+ }
+
+ if ((*cs)->getTransform(COLORSPACE_DIR_TO_REFERENCE)) {
+ /* if there's defined transform to reference space, color space could be converted to scene linear */
+ return true;
+ }
+
+ return true;
+}
+
+int OCIOImpl::colorSpaceIsData(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ return (*(ConstColorSpaceRcPtr *) cs)->isData();
+}
+
+void OCIOImpl::colorSpaceRelease(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ MEM_DELETE((ConstColorSpaceRcPtr *) cs, ConstColorSpaceRcPtr);
+}
+
+OCIO_ConstProcessorRcPtr *OCIOImpl::configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config, const char *srcName, const char *dstName)
+{
+ ConstProcessorRcPtr *p = MEM_NEW(ConstProcessorRcPtr);
+
+ try {
+ *p = (*(ConstConfigRcPtr *) config)->getProcessor(srcName, dstName);
+
+ if (*p)
+ return (OCIO_ConstProcessorRcPtr *) p;
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ MEM_DELETE(p, ConstProcessorRcPtr);
+
+ return 0;
+}
+
+OCIO_ConstProcessorRcPtr *OCIOImpl::configGetProcessor(OCIO_ConstConfigRcPtr *config, OCIO_ConstTransformRcPtr *transform)
+{
+ ConstProcessorRcPtr *p = MEM_NEW(ConstProcessorRcPtr);
+
+ try {
+ *p = (*(ConstConfigRcPtr *) config)->getProcessor(*(ConstTransformRcPtr *) transform);
+
+ if (*p)
+ return (OCIO_ConstProcessorRcPtr *) p;
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ MEM_DELETE(p, ConstProcessorRcPtr);
+
+ return NULL;
+}
+
+void OCIOImpl::processorApply(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img)
+{
+ try {
+ (*(ConstProcessorRcPtr *) processor)->apply(*(PackedImageDesc *) img);
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+}
+
+void OCIOImpl::processorApply_predivide(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img_)
+{
+ try {
+ PackedImageDesc *img = (PackedImageDesc *) img_;
+ int channels = img->getNumChannels();
+
+ if (channels == 4) {
+ float *pixels = img->getData();
+
+ int width = img->getWidth();
+ int height = img->getHeight();
+
+ for (int y = 0; y < height; y++) {
+ for (int x = 0; x < width; x++) {
+ float *pixel = pixels + 4 * (y * width + x);
+
+ processorApplyRGBA_predivide(processor, pixel);
+ }
+ }
+ }
+ else {
+ (*(ConstProcessorRcPtr *) processor)->apply(*img);
+ }
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+}
+
+void OCIOImpl::processorApplyRGB(OCIO_ConstProcessorRcPtr *processor, float *pixel)
+{
+ (*(ConstProcessorRcPtr *) processor)->applyRGB(pixel);
+}
+
+void OCIOImpl::processorApplyRGBA(OCIO_ConstProcessorRcPtr *processor, float *pixel)
+{
+ (*(ConstProcessorRcPtr *) processor)->applyRGBA(pixel);
+}
+
+void OCIOImpl::processorApplyRGBA_predivide(OCIO_ConstProcessorRcPtr *processor, float *pixel)
+{
+ if (pixel[3] == 1.0f || pixel[3] == 0.0f) {
+ (*(ConstProcessorRcPtr *) processor)->applyRGBA(pixel);
+ }
+ else {
+ float alpha, inv_alpha;
+
+ alpha = pixel[3];
+ inv_alpha = 1.0f / alpha;
+
+ pixel[0] *= inv_alpha;
+ pixel[1] *= inv_alpha;
+ pixel[2] *= inv_alpha;
+
+ (*(ConstProcessorRcPtr *) processor)->applyRGBA(pixel);
+
+ pixel[0] *= alpha;
+ pixel[1] *= alpha;
+ pixel[2] *= alpha;
+ }
+}
+
+void OCIOImpl::processorRelease(OCIO_ConstProcessorRcPtr *p)
+{
+ p->~OCIO_ConstProcessorRcPtr();
+ MEM_freeN(p);
+}
+
+const char *OCIOImpl::colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ return (*(ConstColorSpaceRcPtr *) cs)->getName();
+}
+
+const char *OCIOImpl::colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ return (*(ConstColorSpaceRcPtr *) cs)->getDescription();
+}
+
+const char *OCIOImpl::colorSpaceGetFamily(OCIO_ConstColorSpaceRcPtr *cs)
+{
+ return (*(ConstColorSpaceRcPtr *)cs)->getFamily();
+}
+
+OCIO_DisplayTransformRcPtr *OCIOImpl::createDisplayTransform(void)
+{
+ DisplayTransformRcPtr *dt = MEM_NEW(DisplayTransformRcPtr);
+
+ *dt = DisplayTransform::Create();
+
+ return (OCIO_DisplayTransformRcPtr *) dt;
+}
+
+void OCIOImpl::displayTransformSetInputColorSpaceName(OCIO_DisplayTransformRcPtr *dt, const char *name)
+{
+ (*(DisplayTransformRcPtr *) dt)->setInputColorSpaceName(name);
+}
+
+void OCIOImpl::displayTransformSetDisplay(OCIO_DisplayTransformRcPtr *dt, const char *name)
+{
+ (*(DisplayTransformRcPtr *) dt)->setDisplay(name);
+}
+
+void OCIOImpl::displayTransformSetView(OCIO_DisplayTransformRcPtr *dt, const char *name)
+{
+ (*(DisplayTransformRcPtr *) dt)->setView(name);
+}
+
+void OCIOImpl::displayTransformSetDisplayCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *t)
+{
+ (*(DisplayTransformRcPtr *) dt)->setDisplayCC(* (ConstTransformRcPtr *) t);
+}
+
+void OCIOImpl::displayTransformSetLinearCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *t)
+{
+ (*(DisplayTransformRcPtr *) dt)->setLinearCC(*(ConstTransformRcPtr *) t);
+}
+
+void OCIOImpl::displayTransformRelease(OCIO_DisplayTransformRcPtr *dt)
+{
+ MEM_DELETE((DisplayTransformRcPtr *) dt, DisplayTransformRcPtr);
+}
+
+OCIO_PackedImageDesc *OCIOImpl::createOCIO_PackedImageDesc(float *data, long width, long height, long numChannels,
+ long chanStrideBytes, long xStrideBytes, long yStrideBytes)
+{
+ try {
+ void *mem = MEM_mallocN(sizeof(PackedImageDesc), __func__);
+ PackedImageDesc *id = new(mem) PackedImageDesc(data, width, height, numChannels, chanStrideBytes, xStrideBytes, yStrideBytes);
+
+ return (OCIO_PackedImageDesc *) id;
+ }
+ catch (Exception &exception) {
+ OCIO_reportException(exception);
+ }
+
+ return NULL;
+}
+
+void OCIOImpl::OCIO_PackedImageDescRelease(OCIO_PackedImageDesc* id)
+{
+ MEM_DELETE((PackedImageDesc *) id, PackedImageDesc);
+}
+
+OCIO_ExponentTransformRcPtr *OCIOImpl::createExponentTransform(void)
+{
+ ExponentTransformRcPtr *et = MEM_NEW(ExponentTransformRcPtr);
+
+ *et = ExponentTransform::Create();
+
+ return (OCIO_ExponentTransformRcPtr *) et;
+}
+
+void OCIOImpl::exponentTransformSetValue(OCIO_ExponentTransformRcPtr *et, const float *exponent)
+{
+ (*(ExponentTransformRcPtr *) et)->setValue(exponent);
+}
+
+void OCIOImpl::exponentTransformRelease(OCIO_ExponentTransformRcPtr *et)
+{
+ MEM_DELETE((ExponentTransformRcPtr *) et, ExponentTransformRcPtr);
+}
+
+OCIO_MatrixTransformRcPtr *OCIOImpl::createMatrixTransform(void)
+{
+ MatrixTransformRcPtr *mt = MEM_NEW(MatrixTransformRcPtr);
+
+ *mt = MatrixTransform::Create();
+
+ return (OCIO_MatrixTransformRcPtr *) mt;
+}
+
+void OCIOImpl::matrixTransformSetValue(OCIO_MatrixTransformRcPtr *mt, const float *m44, const float *offset4)
+{
+ (*(MatrixTransformRcPtr *) mt)->setValue(m44, offset4);
+}
+
+void OCIOImpl::matrixTransformRelease(OCIO_MatrixTransformRcPtr *mt)
+{
+ MEM_DELETE((MatrixTransformRcPtr *) mt, MatrixTransformRcPtr);
+}
+
+void OCIOImpl::matrixTransformScale(float * m44, float * offset4, const float *scale4f)
+{
+ MatrixTransform::Scale(m44, offset4, scale4f);
+}
diff --git a/intern/opencolorio/ocio_impl.h b/intern/opencolorio/ocio_impl.h
new file mode 100644
index 00000000000..64cf5ec3322
--- /dev/null
+++ b/intern/opencolorio/ocio_impl.h
@@ -0,0 +1,240 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2012 Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Sergey Sharybin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef __OCIO_IMPL_H__
+#define __OCIO_IMPL_H__
+
+#include "ocio_capi.h"
+
+class IOCIOImpl {
+public:
+ virtual ~IOCIOImpl() {};
+
+ virtual OCIO_ConstConfigRcPtr *getCurrentConfig(void) = 0;
+ virtual void setCurrentConfig(const OCIO_ConstConfigRcPtr *config) = 0;
+
+ virtual OCIO_ConstConfigRcPtr *configCreateFromEnv(void) = 0;
+ virtual OCIO_ConstConfigRcPtr *configCreateFromFile(const char* filename) = 0;
+
+ virtual void configRelease(OCIO_ConstConfigRcPtr *config) = 0;
+
+ virtual int configGetNumColorSpaces(OCIO_ConstConfigRcPtr *config) = 0;
+ virtual const char *configGetColorSpaceNameByIndex(OCIO_ConstConfigRcPtr *config, int index) = 0;
+ virtual OCIO_ConstColorSpaceRcPtr *configGetColorSpace(OCIO_ConstConfigRcPtr *config, const char *name) = 0;
+ virtual int configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, const char *name) = 0;
+
+ virtual int colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs) = 0;
+ virtual int colorSpaceIsData(OCIO_ConstColorSpaceRcPtr *cs) = 0;
+
+ virtual void colorSpaceRelease(OCIO_ConstColorSpaceRcPtr *cs) = 0;
+
+ virtual const char *configGetDefaultDisplay(OCIO_ConstConfigRcPtr *config) = 0;
+ virtual int configGetNumDisplays(OCIO_ConstConfigRcPtr *config) = 0;
+ virtual const char *configGetDisplay(OCIO_ConstConfigRcPtr *config, int index) = 0;
+ virtual const char *configGetDefaultView(OCIO_ConstConfigRcPtr *config, const char *display) = 0;
+ virtual int configGetNumViews(OCIO_ConstConfigRcPtr *config, const char *display) = 0;
+ virtual const char *configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index) = 0;
+ virtual const char *configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view) = 0;
+
+ virtual OCIO_ConstProcessorRcPtr *configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config, const char *srcName, const char *dstName) = 0;
+ virtual OCIO_ConstProcessorRcPtr *configGetProcessor(OCIO_ConstConfigRcPtr *config, OCIO_ConstTransformRcPtr *transform) = 0;
+
+ virtual void processorApply(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img) = 0;
+ virtual void processorApply_predivide(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img) = 0;
+ virtual void processorApplyRGB(OCIO_ConstProcessorRcPtr *processor, float *pixel) = 0;
+ virtual void processorApplyRGBA(OCIO_ConstProcessorRcPtr *processor, float *pixel) = 0;
+ virtual void processorApplyRGBA_predivide(OCIO_ConstProcessorRcPtr *processor, float *pixel) = 0;
+
+ virtual void processorRelease(OCIO_ConstProcessorRcPtr *p) = 0;
+
+ virtual const char *colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs) = 0;
+ virtual const char *colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs) = 0;
+ virtual const char *colorSpaceGetFamily(OCIO_ConstColorSpaceRcPtr *cs) = 0;
+
+ virtual OCIO_DisplayTransformRcPtr *createDisplayTransform(void) = 0;
+ virtual void displayTransformSetInputColorSpaceName(OCIO_DisplayTransformRcPtr *dt, const char *name) = 0;
+ virtual void displayTransformSetDisplay(OCIO_DisplayTransformRcPtr *dt, const char *name) = 0;
+ virtual void displayTransformSetView(OCIO_DisplayTransformRcPtr *dt, const char *name) = 0;
+ virtual void displayTransformSetDisplayCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et) = 0;
+ virtual void displayTransformSetLinearCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et) = 0;
+ virtual void displayTransformRelease(OCIO_DisplayTransformRcPtr *dt) = 0;
+
+ virtual OCIO_PackedImageDesc *createOCIO_PackedImageDesc(float *data, long width, long height, long numChannels,
+ long chanStrideBytes, long xStrideBytes, long yStrideBytes) = 0;
+
+ virtual void OCIO_PackedImageDescRelease(OCIO_PackedImageDesc *p) = 0;
+
+ virtual OCIO_ExponentTransformRcPtr *createExponentTransform(void) = 0;
+ virtual void exponentTransformSetValue(OCIO_ExponentTransformRcPtr *et, const float *exponent) = 0;
+ virtual void exponentTransformRelease(OCIO_ExponentTransformRcPtr *et) = 0;
+
+ virtual OCIO_MatrixTransformRcPtr *createMatrixTransform(void) = 0;
+ virtual void matrixTransformSetValue(OCIO_MatrixTransformRcPtr *et, const float *m44, const float *offset4) = 0;
+ virtual void matrixTransformRelease(OCIO_MatrixTransformRcPtr *mt) = 0;
+
+ virtual void matrixTransformScale(float * m44, float * offset4, const float * scale4) = 0;
+};
+
+class FallbackImpl : public IOCIOImpl {
+public:
+ FallbackImpl() {};
+
+ OCIO_ConstConfigRcPtr *getCurrentConfig(void);
+ void setCurrentConfig(const OCIO_ConstConfigRcPtr *config);
+
+ OCIO_ConstConfigRcPtr *configCreateFromEnv(void);
+ OCIO_ConstConfigRcPtr *configCreateFromFile(const char* filename);
+
+ void configRelease(OCIO_ConstConfigRcPtr *config);
+
+ int configGetNumColorSpaces(OCIO_ConstConfigRcPtr *config);
+ const char *configGetColorSpaceNameByIndex(OCIO_ConstConfigRcPtr *config, int index);
+ OCIO_ConstColorSpaceRcPtr *configGetColorSpace(OCIO_ConstConfigRcPtr *config, const char *name);
+ int configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, const char *name);
+
+ int colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs);
+ int colorSpaceIsData(OCIO_ConstColorSpaceRcPtr *cs);
+
+ void colorSpaceRelease(OCIO_ConstColorSpaceRcPtr *cs);
+
+ const char *configGetDefaultDisplay(OCIO_ConstConfigRcPtr *config);
+ int configGetNumDisplays(OCIO_ConstConfigRcPtr *config);
+ const char *configGetDisplay(OCIO_ConstConfigRcPtr *config, int index);
+ const char *configGetDefaultView(OCIO_ConstConfigRcPtr *config, const char *display);
+ int configGetNumViews(OCIO_ConstConfigRcPtr *config, const char *display);
+ const char *configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index);
+ const char *configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view);
+
+ OCIO_ConstProcessorRcPtr *configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config, const char *srcName, const char *dstName);
+ OCIO_ConstProcessorRcPtr *configGetProcessor(OCIO_ConstConfigRcPtr *config, OCIO_ConstTransformRcPtr *transform);
+
+ void processorApply(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img);
+ void processorApply_predivide(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img);
+ void processorApplyRGB(OCIO_ConstProcessorRcPtr *processor, float *pixel);
+ void processorApplyRGBA(OCIO_ConstProcessorRcPtr *processor, float *pixel);
+ void processorApplyRGBA_predivide(OCIO_ConstProcessorRcPtr *processor, float *pixel);
+
+ void processorRelease(OCIO_ConstProcessorRcPtr *p);
+
+ const char *colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs);
+ const char *colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs);
+ const char *colorSpaceGetFamily(OCIO_ConstColorSpaceRcPtr *cs);
+
+ OCIO_DisplayTransformRcPtr *createDisplayTransform(void);
+ void displayTransformSetInputColorSpaceName(OCIO_DisplayTransformRcPtr *dt, const char *name);
+ void displayTransformSetDisplay(OCIO_DisplayTransformRcPtr *dt, const char *name);
+ void displayTransformSetView(OCIO_DisplayTransformRcPtr *dt, const char *name);
+ void displayTransformSetDisplayCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et);
+ void displayTransformSetLinearCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et);
+ void displayTransformRelease(OCIO_DisplayTransformRcPtr *dt);
+
+ OCIO_PackedImageDesc *createOCIO_PackedImageDesc(float *data, long width, long height, long numChannels,
+ long chanStrideBytes, long xStrideBytes, long yStrideBytes);
+
+ void OCIO_PackedImageDescRelease(OCIO_PackedImageDesc *p);
+
+ OCIO_ExponentTransformRcPtr *createExponentTransform(void);
+ void exponentTransformSetValue(OCIO_ExponentTransformRcPtr *et, const float *exponent);
+ void exponentTransformRelease(OCIO_ExponentTransformRcPtr *et);
+
+ OCIO_MatrixTransformRcPtr *createMatrixTransform(void);
+ void matrixTransformSetValue(OCIO_MatrixTransformRcPtr *et, const float *m44, const float *offset4);
+ void matrixTransformRelease(OCIO_MatrixTransformRcPtr *mt);
+
+ void matrixTransformScale(float * m44, float * offset4, const float * scale4);
+};
+
+#ifdef WITH_OCIO
+class OCIOImpl : public IOCIOImpl {
+public:
+ OCIOImpl() {};
+
+ OCIO_ConstConfigRcPtr *getCurrentConfig(void);
+ void setCurrentConfig(const OCIO_ConstConfigRcPtr *config);
+
+ OCIO_ConstConfigRcPtr *configCreateFromEnv(void);
+ OCIO_ConstConfigRcPtr *configCreateFromFile(const char* filename);
+
+ void configRelease(OCIO_ConstConfigRcPtr *config);
+
+ int configGetNumColorSpaces(OCIO_ConstConfigRcPtr *config);
+ const char *configGetColorSpaceNameByIndex(OCIO_ConstConfigRcPtr *config, int index);
+ OCIO_ConstColorSpaceRcPtr *configGetColorSpace(OCIO_ConstConfigRcPtr *config, const char *name);
+ int configGetIndexForColorSpace(OCIO_ConstConfigRcPtr *config, const char *name);
+
+ int colorSpaceIsInvertible(OCIO_ConstColorSpaceRcPtr *cs);
+ int colorSpaceIsData(OCIO_ConstColorSpaceRcPtr *cs);
+
+ void colorSpaceRelease(OCIO_ConstColorSpaceRcPtr *cs);
+
+ const char *configGetDefaultDisplay(OCIO_ConstConfigRcPtr *config);
+ int configGetNumDisplays(OCIO_ConstConfigRcPtr *config);
+ const char *configGetDisplay(OCIO_ConstConfigRcPtr *config, int index);
+ const char *configGetDefaultView(OCIO_ConstConfigRcPtr *config, const char *display);
+ int configGetNumViews(OCIO_ConstConfigRcPtr *config, const char *display);
+ const char *configGetView(OCIO_ConstConfigRcPtr *config, const char *display, int index);
+ const char *configGetDisplayColorSpaceName(OCIO_ConstConfigRcPtr *config, const char *display, const char *view);
+
+ OCIO_ConstProcessorRcPtr *configGetProcessorWithNames(OCIO_ConstConfigRcPtr *config, const char *srcName, const char *dstName);
+ OCIO_ConstProcessorRcPtr *configGetProcessor(OCIO_ConstConfigRcPtr *config, OCIO_ConstTransformRcPtr *transform);
+
+ void processorApply(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img);
+ void processorApply_predivide(OCIO_ConstProcessorRcPtr *processor, OCIO_PackedImageDesc *img);
+ void processorApplyRGB(OCIO_ConstProcessorRcPtr *processor, float *pixel);
+ void processorApplyRGBA(OCIO_ConstProcessorRcPtr *processor, float *pixel);
+ void processorApplyRGBA_predivide(OCIO_ConstProcessorRcPtr *processor, float *pixel);
+
+ void processorRelease(OCIO_ConstProcessorRcPtr *p);
+
+ const char *colorSpaceGetName(OCIO_ConstColorSpaceRcPtr *cs);
+ const char *colorSpaceGetDescription(OCIO_ConstColorSpaceRcPtr *cs);
+ const char *colorSpaceGetFamily(OCIO_ConstColorSpaceRcPtr *cs);
+
+ OCIO_DisplayTransformRcPtr *createDisplayTransform(void);
+ void displayTransformSetInputColorSpaceName(OCIO_DisplayTransformRcPtr *dt, const char *name);
+ void displayTransformSetDisplay(OCIO_DisplayTransformRcPtr *dt, const char *name);
+ void displayTransformSetView(OCIO_DisplayTransformRcPtr *dt, const char *name);
+ void displayTransformSetDisplayCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et);
+ void displayTransformSetLinearCC(OCIO_DisplayTransformRcPtr *dt, OCIO_ConstTransformRcPtr *et);
+ void displayTransformRelease(OCIO_DisplayTransformRcPtr *dt);
+
+ OCIO_PackedImageDesc *createOCIO_PackedImageDesc(float *data, long width, long height, long numChannels,
+ long chanStrideBytes, long xStrideBytes, long yStrideBytes);
+
+ void OCIO_PackedImageDescRelease(OCIO_PackedImageDesc *p);
+
+ OCIO_ExponentTransformRcPtr *createExponentTransform(void);
+ void exponentTransformSetValue(OCIO_ExponentTransformRcPtr *et, const float *exponent);
+ void exponentTransformRelease(OCIO_ExponentTransformRcPtr *et);
+
+ OCIO_MatrixTransformRcPtr *createMatrixTransform(void);
+ void matrixTransformSetValue(OCIO_MatrixTransformRcPtr *et, const float *m44, const float *offset4);
+ void matrixTransformRelease(OCIO_MatrixTransformRcPtr *mt);
+
+ void matrixTransformScale(float * m44, float * offset4, const float * scale4);
+};
+#endif
+
+#endif /* OCIO_IMPL_H */
diff --git a/intern/opennl/intern/opennl.c b/intern/opennl/intern/opennl.c
index 20b4c0a6681..f9c63e9ecf6 100644
--- a/intern/opennl/intern/opennl.c
+++ b/intern/opennl/intern/opennl.c
@@ -137,14 +137,14 @@ static void __nl_should_not_have_reached(char* file, int line) {
/************************************************************************************/
/* memory management */
-#define __NL_NEW(T) (T*)(calloc(1, sizeof(T)))
-#define __NL_NEW_ARRAY(T,NB) (T*)(calloc((NB),sizeof(T)))
+#define __NL_NEW(T) (T*)(calloc(1, sizeof(T)))
+#define __NL_NEW_ARRAY(T,NB) (T*)(calloc(MAX(NB, 1),sizeof(T)))
#define __NL_RENEW_ARRAY(T,x,NB) (T*)(realloc(x,(NB)*sizeof(T)))
-#define __NL_DELETE(x) free(x); x = NULL
-#define __NL_DELETE_ARRAY(x) free(x); x = NULL
+#define __NL_DELETE(x) if(x) free(x); x = NULL
+#define __NL_DELETE_ARRAY(x) if(x) free(x); x = NULL
-#define __NL_CLEAR(T, x) memset(x, 0, sizeof(T))
-#define __NL_CLEAR_ARRAY(T,x,NB) memset(x, 0, (NB)*sizeof(T))
+#define __NL_CLEAR(T, x) memset(x, 0, sizeof(T))
+#define __NL_CLEAR_ARRAY(T,x,NB) if(NB) memset(x, 0, (NB)*sizeof(T))
/************************************************************************************/
/* Dynamic arrays for sparse row/columns */
@@ -569,6 +569,8 @@ void nlDeleteContext(NLContext context_in) {
__NL_DELETE(context->variable[i].a);
}
}
+
+ __NL_DELETE_ARRAY(context->variable);
}
if(context->alloc_b) {
__NL_DELETE_ARRAY(context->b);
@@ -1040,6 +1042,9 @@ static NLboolean __nlFactorize_SUPERLU(__NLContext *context, NLint *permutation)
NLuint n = context->n;
NLuint nnz = __nlSparseMatrixNNZ(M); /* number of non-zero coeffs */
+ /*if(n > 10)
+ n = 10;*/
+
/* Compressed Row Storage matrix representation */
NLint *xa = __NL_NEW_ARRAY(NLint, n+1);
NLfloat *rhs = __NL_NEW_ARRAY(NLfloat, n);
diff --git a/intern/opennl/superlu/get_perm_c.c b/intern/opennl/superlu/get_perm_c.c
index 320fe3471f4..59889645988 100644
--- a/intern/opennl/superlu/get_perm_c.c
+++ b/intern/opennl/superlu/get_perm_c.c
@@ -173,17 +173,19 @@ getata(
/* Flag the diagonal so it's not included in the B matrix */
marker[j] = j;
- for (i = colptr[j]; i < colptr[j+1]; ++i) {
- /* A_kj is nonzero, add pattern of column T_*k to B_*j */
- k = rowind[i];
- for (ti = t_colptr[k]; ti < t_colptr[k+1]; ++ti) {
- trow = t_rowind[ti];
- if ( marker[trow] != j ) {
- marker[trow] = j;
- b_rowind[num_nz++] = trow;
+ if ( *atanz ) {
+ for (i = colptr[j]; i < colptr[j+1]; ++i) {
+ /* A_kj is nonzero, add pattern of column T_*k to B_*j */
+ k = rowind[i];
+ for (ti = t_colptr[k]; ti < t_colptr[k+1]; ++ti) {
+ trow = t_rowind[ti];
+ if ( marker[trow] != j ) {
+ marker[trow] = j;
+ b_rowind[num_nz++] = trow;
+ }
+ }
+ }
}
- }
- }
}
b_colptr[n] = num_nz;
@@ -305,21 +307,23 @@ at_plus_a(
marker[j] = j;
/* Add pattern of column A_*k to B_*j */
- for (i = colptr[j]; i < colptr[j+1]; ++i) {
- k = rowind[i];
- if ( marker[k] != j ) {
- marker[k] = j;
- (*b_rowind)[num_nz++] = k;
- }
- }
+ if (*bnz) {
+ for (i = colptr[j]; i < colptr[j+1]; ++i) {
+ k = rowind[i];
+ if ( marker[k] != j ) {
+ marker[k] = j;
+ (*b_rowind)[num_nz++] = k;
+ }
+ }
- /* Add pattern of column T_*k to B_*j */
- for (i = t_colptr[j]; i < t_colptr[j+1]; ++i) {
- k = t_rowind[i];
- if ( marker[k] != j ) {
- marker[k] = j;
- (*b_rowind)[num_nz++] = k;
- }
+ /* Add pattern of column T_*k to B_*j */
+ for (i = t_colptr[j]; i < t_colptr[j+1]; ++i) {
+ k = t_rowind[i];
+ if ( marker[k] != j ) {
+ marker[k] = j;
+ (*b_rowind)[num_nz++] = k;
+ }
+ }
}
}
(*b_colptr)[n] = num_nz;
diff --git a/intern/raskter/raskter.c b/intern/raskter/raskter.c
index 26d879091c1..c79bcc4a76d 100644
--- a/intern/raskter/raskter.c
+++ b/intern/raskter/raskter.c
@@ -24,6 +24,7 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
/** \file raskter.c
* \ingroup RASKTER
*/
@@ -31,14 +32,16 @@
#include <stdlib.h>
#include "raskter.h"
-#define __PLX__FAKE_AA__
-
/* from BLI_utildefines.h */
#define MIN2(x, y) ( (x) < (y) ? (x) : (y) )
#define MAX2(x, y) ( (x) > (y) ? (x) : (y) )
-#define ABS(a) ( (a) < 0 ? (-(a)) : (a) )
-struct e_status {
+struct PolyVert {
+ int x;
+ int y;
+};
+
+struct e_Status {
int x;
int ybeg;
int xshift;
@@ -47,18 +50,22 @@ struct e_status {
int drift_inc;
int drift_dec;
int num;
- struct e_status *e_next;
+ struct e_Status *e_next;
};
-struct r_buffer_stats {
+struct r_BufferStats {
float *buf;
int sizex;
int sizey;
+ int ymin;
+ int ymax;
+ int xmin;
+ int xmax;
};
-struct r_fill_context {
- struct e_status *all_edges, *possible_edges;
- struct r_buffer_stats rb;
+struct r_FillContext {
+ struct e_Status *all_edges, *possible_edges;
+ struct r_BufferStats rb;
};
/*
@@ -69,7 +76,8 @@ struct r_fill_context {
* just the poly. Since the DEM code could end up being coupled with this, we'll keep it separate
* for now.
*/
-static void preprocess_all_edges(struct r_fill_context *ctx, struct poly_vert *verts, int num_verts, struct e_status *open_edge)
+static void preprocess_all_edges(struct r_FillContext *ctx,
+ struct PolyVert *verts, int num_verts, struct e_Status *open_edge)
{
int i;
int xbeg;
@@ -80,23 +88,42 @@ static void preprocess_all_edges(struct r_fill_context *ctx, struct poly_vert *v
int dy;
int temp_pos;
int xdist;
- struct e_status *e_new;
- struct e_status *next_edge;
- struct e_status **next_edge_ref;
- struct poly_vert *v;
+ struct e_Status *e_new;
+ struct e_Status *next_edge;
+ struct e_Status **next_edge_ref;
+ struct PolyVert *v;
/* set up pointers */
v = verts;
ctx->all_edges = NULL;
+ /* initialize some boundaries */
+ ctx->rb.xmax = v[0].x;
+ ctx->rb.xmin = v[0].x;
+ ctx->rb.ymax = v[0].y;
+ ctx->rb.ymin = v[0].y;
/* loop all verts */
for (i = 0; i < num_verts; i++) {
/* determine beginnings and endings of edges, linking last vertex to first vertex */
xbeg = v[i].x;
ybeg = v[i].y;
+ /* keep track of our x and y bounds */
+ if (xbeg >= ctx->rb.xmax) {
+ ctx->rb.xmax = xbeg;
+ }
+ else if (xbeg <= ctx->rb.xmin) {
+ ctx->rb.xmin = xbeg;
+ }
+ if (ybeg >= ctx->rb.ymax) {
+ ctx->rb.ymax= ybeg;
+ }
+ else if (ybeg <= ctx->rb.ymin) {
+ ctx->rb.ymin=ybeg;
+ }
if (i) {
/* we're not at the last vert, so end of the edge is the previous vertex */
xend = v[i - 1].x;
yend = v[i - 1].y;
- } else {
+ }
+ else {
/* we're at the first vertex, so the "end" of this edge is the last vertex */
xend = v[num_verts - 1].x;
yend = v[num_verts - 1].y;
@@ -125,7 +152,8 @@ static void preprocess_all_edges(struct r_fill_context *ctx, struct poly_vert *v
if (dx > 0) {
e_new->xdir = 1;
xdist = dx;
- } else {
+ }
+ else {
e_new->xdir = -1;
xdist = -dx;
}
@@ -138,19 +166,21 @@ static void preprocess_all_edges(struct r_fill_context *ctx, struct poly_vert *v
/* calculate deltas for incremental drawing */
if (dx >= 0) {
e_new->drift = 0;
- } else {
+ }
+ else {
e_new->drift = -dy + 1;
}
if (dy >= xdist) {
e_new->drift_inc = xdist;
e_new->xshift = 0;
- } else {
+ }
+ else {
e_new->drift_inc = xdist % dy;
e_new->xshift = (xdist / dy) * e_new->xdir;
}
next_edge_ref = &ctx->all_edges;
/* link in all the edges, in sorted order */
- for (;; ) {
+ for (;;) {
next_edge = *next_edge_ref;
if (!next_edge || (next_edge->ybeg > ybeg) || ((next_edge->ybeg == ybeg) && (next_edge->x >= xbeg))) {
e_new->e_next = next_edge;
@@ -168,7 +198,7 @@ static void preprocess_all_edges(struct r_fill_context *ctx, struct poly_vert *v
* for speed, but waiting on final design choices for curve-data before eliminating data the DEM code will need
* if it ends up being coupled with this function.
*/
-static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, int num_verts, float intensity)
+static int rast_scan_fill(struct r_FillContext *ctx, struct PolyVert *verts, int num_verts, float intensity)
{
int x_curr; /* current pixel position in X */
int y_curr; /* current scan line being drawn */
@@ -177,10 +207,10 @@ static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, i
float *cpxl; /* pixel pointers... */
float *mpxl;
float *spxl;
- struct e_status *e_curr; /* edge pointers... */
- struct e_status *e_temp;
- struct e_status *edgbuf;
- struct e_status **edgec;
+ struct e_Status *e_curr; /* edge pointers... */
+ struct e_Status *e_temp;
+ struct e_Status *edgbuf;
+ struct e_Status **edgec;
/*
@@ -201,7 +231,7 @@ static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, i
* the preceeding error, which was a rasterization request on a 2D poly with less than
* 3 sides.
*/
- if ((edgbuf = (struct e_status *)(malloc(sizeof(struct e_status) * num_verts))) == NULL) {
+ if ((edgbuf = (struct e_Status *)(malloc(sizeof(struct e_Status) * num_verts))) == NULL) {
return(0);
}
@@ -211,6 +241,11 @@ static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, i
*/
preprocess_all_edges(ctx, verts, num_verts, edgbuf);
+ /* can happen with a zero area mask */
+ if (ctx->all_edges == NULL) {
+ free(edgbuf);
+ return(1);
+ }
/*
* Set the pointer for tracking the edges currently in processing to NULL to make sure
* we don't get some crazy value after initialization.
@@ -247,9 +282,9 @@ static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, i
*
* At each iteration, make sure we still have a non-NULL edge.
*/
- for (edgec = &ctx->possible_edges; ctx->all_edges && (ctx->all_edges->ybeg == y_curr); ) {
+ for (edgec = &ctx->possible_edges; ctx->all_edges && (ctx->all_edges->ybeg == y_curr);) {
x_curr = ctx->all_edges->x; /* Set current X position. */
- for (;; ) { /* Start looping edges. Will break when edges run out. */
+ for (;;) { /* Start looping edges. Will break when edges run out. */
e_curr = *edgec; /* Set up a current edge pointer. */
if (!e_curr || (e_curr->x >= x_curr)) { /* If we have an no edge, or we need to skip some X-span, */
e_temp = ctx->all_edges->e_next; /* set a temp "next" edge to test. */
@@ -258,7 +293,8 @@ static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, i
edgec = &ctx->all_edges->e_next; /* Set our list to the next edge's location in memory. */
ctx->all_edges = e_temp; /* Skip the NULL or bad X edge, set pointer to next edge. */
break; /* Stop looping edges (since we ran out or hit empty X span. */
- } else {
+ }
+ else {
edgec = &e_curr->e_next; /* Set the pointer to the edge list the "next" edge. */
}
}
@@ -304,7 +340,7 @@ static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, i
if ((y_curr >= 0) && (y_curr < ctx->rb.sizey)) {
/* draw the pixels. */
- for(; cpxl <= mpxl; *cpxl++ += intensity);
+ for (; cpxl <= mpxl; *cpxl++ += intensity) {}
}
}
@@ -317,10 +353,11 @@ static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, i
* polygons, we dont have fractional positions, so we only move in x-direction
* when needed to get all the way to the next pixel over...
*/
- for (edgec = &ctx->possible_edges; (e_curr = *edgec); ) {
+ for (edgec = &ctx->possible_edges; (e_curr = *edgec);) {
if (!(--(e_curr->num))) {
*edgec = e_curr->e_next;
- } else {
+ }
+ else {
e_curr->x += e_curr->xshift;
if ((e_curr->drift += e_curr->drift_inc) > 0) {
e_curr->x += e_curr->xdir;
@@ -351,7 +388,7 @@ static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, i
}
}
/* if we did have a switch, look for more (there will more if there was one) */
- for (;; ) {
+ for (;;) {
/* reset exchange flag so it's only set if we encounter another one */
swixd = 0;
for (edgec = &ctx->possible_edges; (e_curr = *edgec)->e_next; edgec = &(*edgec)->e_next) {
@@ -378,26 +415,22 @@ static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, i
return 1;
}
-int PLX_raskterize(float (*base_verts)[2], int num_base_verts,
- float *buf, int buf_x, int buf_y, int do_mask_AA) {
- int subdiv_AA = (do_mask_AA != 0)? 8:0;
+int PLX_raskterize(float(*base_verts)[2], int num_base_verts,
+ float *buf, int buf_x, int buf_y)
+{
int i; /* i: Loop counter. */
- int sAx;
- int sAy;
- struct poly_vert *ply; /* ply: Pointer to a list of integer buffer-space vertex coordinates. */
- struct r_fill_context ctx = {0};
+ struct PolyVert *ply; /* ply: Pointer to a list of integer buffer-space vertex coordinates. */
+ struct r_FillContext ctx = {0};
const float buf_x_f = (float)(buf_x);
const float buf_y_f = (float)(buf_y);
- float div_offset=(1.0f / (float)(subdiv_AA));
- float div_offset_static = 0.5f * (float)(subdiv_AA) * div_offset;
/*
- * Allocate enough memory for our poly_vert list. It'll be the size of the poly_vert
+ * Allocate enough memory for our PolyVert list. It'll be the size of the PolyVert
* data structure multiplied by the number of base_verts.
*
* In the event of a failure to allocate the memory, return 0, so this error can
* be distinguished as a memory allocation error.
*/
- if ((ply = (struct poly_vert *)(malloc(sizeof(struct poly_vert) * num_base_verts))) == NULL) {
+ if ((ply = (struct PolyVert *)(malloc(sizeof(struct PolyVert) * num_base_verts))) == NULL) {
return(0);
}
@@ -413,927 +446,13 @@ int PLX_raskterize(float (*base_verts)[2], int num_base_verts,
* drawn will be 1.0f in value, there is no anti-aliasing.
*/
- if(!subdiv_AA) {
- for (i = 0; i < num_base_verts; i++) { /* Loop over all base_verts. */
- ply[i].x = (int)((base_verts[i][0] * buf_x_f) + 0.5f); /* Range expand normalized X to integer buffer-space X. */
- ply[i].y = (int)((base_verts[i][1] * buf_y_f) + 0.5f); /* Range expand normalized Y to integer buffer-space Y. */
+ for (i = 0; i < num_base_verts; i++) { /* Loop over all base_verts. */
+ ply[i].x = (int)((base_verts[i][0] * buf_x_f) + 0.5f); /* Range expand normalized X to integer buffer-space X. */
+ ply[i].y = (int)((base_verts[i][1] * buf_y_f) + 0.5f); /* Range expand normalized Y to integer buffer-space Y. */
}
- i = rast_scan_fill(&ctx, ply, num_base_verts,1.0f); /* Call our rasterizer, passing in the integer coords for each vert. */
- } else {
- for(sAx=0; sAx < subdiv_AA; sAx++) {
- for(sAy=0; sAy < subdiv_AA; sAy++) {
- for(i=0; i < num_base_verts; i++) {
- ply[i].x = (int)((base_verts[i][0]*buf_x_f)+0.5f - div_offset_static + (div_offset*(float)(sAx)));
- ply[i].y = (int)((base_verts[i][1]*buf_y_f)+0.5f - div_offset_static + (div_offset*(float)(sAy)));
- }
- i = rast_scan_fill(&ctx, ply, num_base_verts,(1.0f / (float)(subdiv_AA*subdiv_AA)));
- }
- }
- }
+ i = rast_scan_fill(&ctx, ply, num_base_verts,1.0f); /* Call our rasterizer, passing in the integer coords for each vert. */
+
free(ply); /* Free the memory allocated for the integer coordinate table. */
return(i); /* Return the value returned by the rasterizer. */
}
-
-/*
- * This function clips drawing to the frame buffer. That clipping will likely be moved into the preprocessor
- * for speed, but waiting on final design choices for curve-data before eliminating data the DEM code will need
- * if it ends up being coupled with this function.
- */
-static int rast_scan_feather(struct r_fill_context *ctx,
- float (*base_verts_f)[2], int num_base_verts,
- struct poly_vert *feather_verts, float(*feather_verts_f)[2], int num_feather_verts) {
- int x_curr; /* current pixel position in X */
- int y_curr; /* current scan line being drawn */
- int yp; /* y-pixel's position in frame buffer */
- int swixd = 0; /* whether or not edges switched position in X */
- float *cpxl; /* pixel pointers... */
- float *mpxl;
- float *spxl;
- struct e_status *e_curr; /* edge pointers... */
- struct e_status *e_temp;
- struct e_status *edgbuf;
- struct e_status **edgec;
-
- /* from dem */
- int a; // a = temporary pixel index buffer loop counter
- float fsz; // size of the frame
- unsigned int rsl; // long used for finding fast 1.0/sqrt
- float rsf; // float used for finding fast 1.0/sqrt
- const float rsopf = 1.5f; // constant float used for finding fast 1.0/sqrt
-
- //unsigned int gradientFillOffset;
- float t;
- float ud; // ud = unscaled edge distance
- float dmin; // dmin = minimun edge distance
- float odist; // odist = current outer edge distance
- float idist; // idist = current inner edge distance
- float dx; // dx = X-delta (used for distance proportion calculation)
- float dy; // dy = Y-delta (used for distance proportion calculation)
- float xpxw = (1.0f / (float)(ctx->rb.sizex)); // xpxw = normalized pixel width
- float ypxh = (1.0f / (float)(ctx->rb.sizey)); // ypxh = normalized pixel height
-
- /*
- * If the number of verts specified to render as a polygon is less than 3,
- * return immediately. Obviously we cant render a poly with sides < 3. The
- * return for this we set to 1, simply so it can be distinguished from the
- * next place we could return, /home/guest/blender-svn/soc-2011-tomato/intern/raskter/raskter
- * which is a failure to allocate memory.
- */
- if (num_feather_verts < 3) {
- return(1);
- }
-
- /*
- * Try to allocate an edge buffer in memory. needs to be the size of the edge tracking data
- * multiplied by the number of edges, which is always equal to the number of verts in
- * a 2D polygon. Here we return 0 to indicate a memory allocation failure, as opposed to a 1 for
- * the preceeding error, which was a rasterization request on a 2D poly with less than
- * 3 sides.
- */
- if ((edgbuf = (struct e_status *)(malloc(sizeof(struct e_status) * num_feather_verts))) == NULL) {
- return(0);
- }
-
- /*
- * Do some preprocessing on all edges. This constructs a table structure in memory of all
- * the edge properties and can "flip" some edges so sorting works correctly.
- */
- preprocess_all_edges(ctx, feather_verts, num_feather_verts, edgbuf);
-
- /*
- * Set the pointer for tracking the edges currently in processing to NULL to make sure
- * we don't get some crazy value after initialization.
- */
- ctx->possible_edges = NULL;
-
- /*
- * Loop through all scan lines to be drawn. Since we sorted by Y values during
- * preprocess_all_edges(), we can already exact values for the lowest and
- * highest Y values we could possibly need by induction. The preprocessing sorted
- * out edges by Y position, we can cycle the current edge being processed once
- * it runs out of Y pixels. When we have no more edges, meaning the current edge
- * is NULL after setting the "current" edge to be the previous current edge's
- * "next" edge in the Y sorted edge connection chain, we can stop looping Y values,
- * since we can't possibly have more scan lines if we ran out of edges. :)
- *
- * TODO: This clips Y to the frame buffer, which should be done in the preprocessor, but for now is done here.
- * Will get changed once DEM code gets in.
- */
- for (y_curr = ctx->all_edges->ybeg; (ctx->all_edges || ctx->possible_edges); y_curr++) {
-
- /*
- * Link any edges that start on the current scan line into the list of
- * edges currently needed to draw at least this, if not several, scan lines.
- */
-
- /*
- * Set the current edge to the beginning of the list of edges to be rasterized
- * into this scan line.
- *
- * We could have lots of edge here, so iterate over all the edges needed. The
- * preprocess_all_edges() function sorted edges by X within each chunk of Y sorting
- * so we safely cycle edges to thier own "next" edges in order.
- *
- * At each iteration, make sure we still have a non-NULL edge.
- */
- for (edgec = &ctx->possible_edges; ctx->all_edges && (ctx->all_edges->ybeg == y_curr); ) {
- x_curr = ctx->all_edges->x; /* Set current X position. */
- for (;; ) { /* Start looping edges. Will break when edges run out. */
- e_curr = *edgec; /* Set up a current edge pointer. */
- if (!e_curr || (e_curr->x >= x_curr)) { /* If we have an no edge, or we need to skip some X-span, */
- e_temp = ctx->all_edges->e_next; /* set a temp "next" edge to test. */
- *edgec = ctx->all_edges; /* Add this edge to the list to be scanned. */
- ctx->all_edges->e_next = e_curr; /* Set up the next edge. */
- edgec = &ctx->all_edges->e_next; /* Set our list to the next edge's location in memory. */
- ctx->all_edges = e_temp; /* Skip the NULL or bad X edge, set pointer to next edge. */
- break; /* Stop looping edges (since we ran out or hit empty X span. */
- } else {
- edgec = &e_curr->e_next; /* Set the pointer to the edge list the "next" edge. */
- }
- }
- }
-
- /*
- * Determine the current scan line's offset in the pixel buffer based on its Y position.
- * Basically we just multiply the current scan line's Y value by the number of pixels in each line.
- */
- yp = y_curr * ctx->rb.sizex;
- /*
- * Set a "scan line pointer" in memory. The location of the buffer plus the row offset.
- */
- spxl = ctx->rb.buf + (yp);
- /*
- * Set up the current edge to the first (in X) edge. The edges which could possibly be in this
- * list were determined in the preceeding edge loop above. They were already sorted in X by the
- * initial processing function.
- *
- * At each iteration, test for a NULL edge. Since we'll keep cycling edge's to their own "next" edge
- * we will eventually hit a NULL when the list runs out.
- */
- for (e_curr = ctx->possible_edges; e_curr; e_curr = e_curr->e_next) {
- /*
- * Calculate a span of pixels to fill on the current scan line.
- *
- * Set the current pixel pointer by adding the X offset to the scan line's start offset.
- * Cycle the current edge the next edge.
- * Set the max X value to draw to be one less than the next edge's first pixel. This way we are
- * sure not to ever get into a situation where we have overdraw. (drawing the same pixel more than
- * one time because it's on a vertex connecting two edges)
- *
- * Then blast through all the pixels in the span, advancing the pointer and setting the color to white.
- *
- * TODO: Here we clip to the scan line, this is not efficient, and should be done in the preprocessor,
- * but for now it is done here until the DEM code comes in.
- */
-
- /* set up xmin and xmax bounds on this scan line */
- cpxl = spxl + MAX2(e_curr->x, 0);
- e_curr = e_curr->e_next;
- mpxl = spxl + MIN2(e_curr->x, ctx->rb.sizex) - 1;
-
- if ((y_curr >= 0) && (y_curr < ctx->rb.sizey)) {
- t = ((float)((cpxl - spxl) % ctx->rb.sizex) + 0.5f) * xpxw;
- fsz = ((float)(y_curr) + 0.5f) * ypxh;
- /* draw the pixels. */
- for (; cpxl <= mpxl; cpxl++, t += xpxw) {
- //do feather check
- // first check that pixel isn't already full, and only operate if it is not
- if (*cpxl < 0.9999f) {
-
- dmin = 2.0f; // reset min distance to edge pixel
- for (a = 0; a < num_feather_verts; a++) { // loop through all outer edge buffer pixels
- dy = t - feather_verts_f[a][0]; // set dx to gradient pixel column - outer edge pixel row
- dx = fsz - feather_verts_f[a][1]; // set dy to gradient pixel row - outer edge pixel column
- ud = dx * dx + dy * dy; // compute sum of squares
- if (ud < dmin) { // if our new sum of squares is less than the current minimum
- dmin = ud; // set a new minimum equal to the new lower value
- }
- }
- odist = dmin; // cast outer min to a float
- rsf = odist * 0.5f; //
- rsl = *(unsigned int *)&odist; // use some peculiar properties of the way bits are stored
- rsl = 0x5f3759df - (rsl >> 1); // in floats vs. unsigned ints to compute an approximate
- odist = *(float *)&rsl; // reciprocal square root
- odist = odist * (rsopf - (rsf * odist * odist)); // -- ** this line can be iterated for more accuracy ** --
- odist = odist * (rsopf - (rsf * odist * odist));
- dmin = 2.0f; // reset min distance to edge pixel
- for (a = 0; a < num_base_verts; a++) { // loop through all inside edge pixels
- dy = t - base_verts_f[a][0]; // compute delta in Y from gradient pixel to inside edge pixel
- dx = fsz - base_verts_f[a][1]; // compute delta in X from gradient pixel to inside edge pixel
- ud = dx * dx + dy * dy; // compute sum of squares
- if (ud < dmin) { // if our new sum of squares is less than the current minimum we've found
- dmin = ud; // set a new minimum equal to the new lower value
- }
- }
- idist = dmin; // cast inner min to a float
- rsf = idist * 0.5f; //
- rsl = *(unsigned int *)&idist; //
- rsl = 0x5f3759df - (rsl >> 1); // see notes above
- idist = *(float *)&rsl; //
- idist = idist * (rsopf - (rsf * idist * idist)); //
- idist = idist * (rsopf - (rsf * idist * idist));
- /*
- * Note once again that since we are using reciprocals of distance values our
- * proportion is already the correct intensity, and does not need to be
- * subracted from 1.0 like it would have if we used real distances.
- */
-
- /* set intensity, do the += so overlapping gradients are additive */
- *cpxl = (idist / (idist + odist));
- }
- }
- }
- }
-
- /*
- * Loop through all edges of polygon that could be hit by this scan line,
- * and figure out their x-intersections with the next scan line.
- *
- * Either A.) we wont have any more edges to test, or B.) we just add on the
- * slope delta computed in preprocessing step. Since this draws non-antialiased
- * polygons, we dont have fractional positions, so we only move in x-direction
- * when needed to get all the way to the next pixel over...
- */
- for (edgec = &ctx->possible_edges; (e_curr = *edgec); ) {
- if (!(--(e_curr->num))) {
- *edgec = e_curr->e_next;
- } else {
- e_curr->x += e_curr->xshift;
- if ((e_curr->drift += e_curr->drift_inc) > 0) {
- e_curr->x += e_curr->xdir;
- e_curr->drift -= e_curr->drift_dec;
- }
- edgec = &e_curr->e_next;
- }
- }
- /*
- * It's possible that some edges may have crossed during the last step, so we'll be sure
- * that we ALWAYS intersect scan lines in order by shuffling if needed to make all edges
- * sorted by x-intersection coordinate. We'll always scan through at least once to see if
- * edges crossed, and if so, we set the 'swixd' flag. If 'swixd' gets set on the initial
- * pass, then we know we need to sort by x, so then cycle through edges again and perform
- * the sort.-
- */
- if (ctx->possible_edges) {
- for (edgec = &ctx->possible_edges; (e_curr = *edgec)->e_next; edgec = &(*edgec)->e_next) {
- /* if the current edge hits scan line at greater X than the next edge, we need to exchange the edges */
- if (e_curr->x > e_curr->e_next->x) {
- *edgec = e_curr->e_next;
- /* exchange the pointers */
- e_temp = e_curr->e_next->e_next;
- e_curr->e_next->e_next = e_curr;
- e_curr->e_next = e_temp;
- /* set flag that we had at least one switch */
- swixd = 1;
- }
- }
- /* if we did have a switch, look for more (there will more if there was one) */
- for (;; ) {
- /* reset exchange flag so it's only set if we encounter another one */
- swixd = 0;
- for (edgec = &ctx->possible_edges; (e_curr = *edgec)->e_next; edgec = &(*edgec)->e_next) {
- /* again, if current edge hits scan line at higher X than next edge,
- * exchange the edges and set flag */
- if (e_curr->x > e_curr->e_next->x) {
- *edgec = e_curr->e_next;
- /* exchange the pointers */
- e_temp = e_curr->e_next->e_next;
- e_curr->e_next->e_next = e_curr;
- e_curr->e_next = e_temp;
- /* flip the exchanged flag */
- swixd = 1;
- }
- }
- /* if we had no exchanges, we're done reshuffling the pointers */
- if (!swixd) {
- break;
- }
- }
- }
- }
-
- free(edgbuf);
- return 1;
-}
-
-int PLX_raskterize_feather(float (*base_verts)[2], int num_base_verts, float (*feather_verts)[2], int num_feather_verts,
- float *buf, int buf_x, int buf_y) {
- int i; /* i: Loop counter. */
- struct poly_vert *fe; /* fe: Pointer to a list of integer buffer-space feather vertex coords. */
- struct r_fill_context ctx = {0};
-
- /* for faster multiply */
- const float buf_x_f = (float)buf_x;
- const float buf_y_f = (float)buf_y;
-
- /*
- * Allocate enough memory for our poly_vert list. It'll be the size of the poly_vert
- * data structure multiplied by the number of verts.
- *
- * In the event of a failure to allocate the memory, return 0, so this error can
- * be distinguished as a memory allocation error.
- */
- if ((fe = (struct poly_vert *)(malloc(sizeof(struct poly_vert) * num_feather_verts))) == NULL) {
- return(0);
- }
-
- /*
- * Loop over all verts passed in to be rasterized. Each vertex's X and Y coordinates are
- * then converted from normalized screen space (0.0 <= POS <= 1.0) to integer coordinates
- * in the buffer-space coordinates passed in inside buf_x and buf_y.
- *
- * It's worth noting that this function ONLY outputs fully white pixels in a mask. Every pixel
- * drawn will be 1.0f in value, there is no anti-aliasing.
- */
- for (i = 0; i < num_feather_verts; i++) { /* Loop over all verts. */
- fe[i].x = (int)((feather_verts[i][0] * buf_x_f) + 0.5f); /* Range expand normalized X to integer buffer-space X. */
- fe[i].y = (int)((feather_verts[i][1] * buf_y_f) + 0.5f); /* Range expand normalized Y to integer buffer-space Y. */
- }
-
- ctx.rb.buf = buf; /* Set the output buffer pointer. */
- ctx.rb.sizex = buf_x; /* Set the output buffer size in X. (width) */
- ctx.rb.sizey = buf_y; /* Set the output buffer size in Y. (height) */
-
- /* Call our rasterizer, passing in the integer coords for each vert. */
- i = rast_scan_feather(&ctx, base_verts, num_base_verts, fe, feather_verts, num_feather_verts);
- free(fe);
- return i; /* Return the value returned by the rasterizer. */
-}
-
-#ifndef __PLX__FAKE_AA__
-
-static int get_range_expanded_pixel_coord(float normalized_value, int max_value)
-{
- return (int)((normalized_value * (float)(max_value)) + 0.5f);
-}
-
-static float get_pixel_intensity(float *buf, int buf_x, int buf_y, int pos_x, int pos_y)
-{
- if(pos_x < 0 || pos_x >= buf_x || pos_y < 0 || pos_y >= buf_y) {
- return 0.0f;
- }
- return buf[(pos_y * buf_y) + buf_x];
-}
-
-static float get_pixel_intensity_bilinear(float *buf, int buf_x, int buf_y, float u, float v)
-{
- int a;
- int b;
- int a_plus_1;
- int b_plus_1;
- float prop_u;
- float prop_v;
- float inv_prop_u;
- float inv_prop_v;
- if(u<0.0f || u>1.0f || v<0.0f || v>1.0f) {
- return 0.0f;
- }
- u = u * (float)(buf_x) - 0.5f;
- v = v * (float)(buf_y) - 0.5f;
- a = (int)(u);
- b = (int)(v);
- prop_u = u - (float)(a);
- prop_v = v - (float)(b);
- inv_prop_u = 1.0f - prop_u;
- inv_prop_v = 1.0f - prop_v;
- a_plus_1 = MIN2((buf_x-1),a+1);
- b_plus_1 = MIN2((buf_y-1),b+1);
- return (buf[(b * buf_y) + a] * inv_prop_u + buf[(b*buf_y)+(a_plus_1)] * prop_u)*inv_prop_v+(buf[((b_plus_1) * buf_y)+a] * inv_prop_u + buf[((b_plus_1)*buf_y)+(a_plus_1)] * prop_u) * prop_v;
-
-}
-
-static void set_pixel_intensity(float *buf, int buf_x, int buf_y, int pos_x, int pos_y, float intensity)
-{
- if(pos_x < 0 || pos_x >= buf_x || pos_y < 0 || pos_y >= buf_y) {
- return;
- }
- buf[(pos_y * buf_y) + buf_x] = intensity;
-}
-#endif
-
-int PLX_antialias_buffer(float *buf, int buf_x, int buf_y)
-{
-#ifdef __PLX__FAKE_AA__
-#ifdef __PLX_GREY_AA__
- int i=0;
- int sz = buf_x * buf_y;
- for(i=0; i<sz; i++) {
- buf[i] *= 0.5f;
- }
-#endif
- (void)buf_x;
- (void)buf_y;
- (void)buf;
- return 1;
-#else
- /*XXX - TODO: THIS IS NOT FINAL CODE - IT DOES NOT WORK - DO NOT ENABLE IT */
- const float p0 = 1.0f;
- const float p1 = 1.0f;
- const float p2 = 1.0f;
- const float p3 = 1.0f;
- const float p4 = 1.0f;
- const float p5 = 1.5f;
- const float p6 = 2.0f;
- const float p7 = 2.0f;
- const float p8 = 2.0f;
- const float p9 = 2.0f;
- const float p10 = 4.0f;
- const float p11 = 8.0f;
-
- const float edge_threshold = 0.063f;
- const float edge_threshold_min = 0.0312f;
- const float quality_subpix = 1.0f;
-// int px_x;
-// int px_y;
-
- float posM_x,posM_y;
- float posB_x,posB_y;
- float posN_x,posN_y;
- float posP_x,posP_y;
- float offNP_x,offNP_y;
- float lumaM;
- float lumaS;
- float lumaE;
- float lumaN;
- float lumaW;
- float lumaNW;
- float lumaSE;
- float lumaNE;
- float lumaSW;
- float lumaNS;
- float lumaWE;
- float lumaNESE;
- float lumaNWNE;
- float lumaNWSW;
- float lumaSWSE;
- float lumaNN;
- float lumaSS;
- float lumaEndN;
- float lumaEndP;
- float lumaMM;
- float lumaMLTZero;
- float subpixNWSWNESE;
- float subpixRcpRange;
- float subpixNSWE;
- float maxSM;
- float minSM;
- float maxESM;
- float minESM;
- float maxWN;
- float minWN;
- float rangeMax;
- float rangeMin;
- float rangeMaxScaled;
- float range;
- float rangeMaxClamped;
- float edgeHorz;
- float edgeVert;
- float edgeHorz1;
- float edgeVert1;
- float edgeHorz2;
- float edgeVert2;
- float edgeHorz3;
- float edgeVert3;
- float edgeHorz4;
- float edgeVert4;
- float lengthSign;
- float subpixA;
- float subpixB;
- float subpixC;
- float subpixD;
- float subpixE;
- float subpixF;
- float subpixG;
- float subpixH;
- float gradientN;
- float gradientS;
- float gradient;
- float gradientScaled;
- float dstN;
- float dstP;
- float dst;
- float spanLength;
- float spanLengthRcp;
- float pixelOffset;
- float pixelOffsetGood;
- float pixelOffsetSubpix;
- int directionN;
- int goodSpan;
- int goodSpanN;
- int goodSpanP;
- int horzSpan;
- int earlyExit;
- int pairN;
- int doneN;
- int doneP;
- int doneNP;
- int curr_x=0;
- int curr_y=0;
- for(curr_y=0; curr_y < buf_y; curr_y++) {
- for(curr_x=0; curr_x < buf_x; curr_x++) {
- posM_x = ((float)(curr_x) + 0.5f) * (1.0f/(float)(buf_x));
- posM_y = ((float)(curr_y) + 0.5f) * (1.0f/(float)(buf_y));
-
- lumaM = get_pixel_intensity(buf, buf_x, buf_y, curr_x, curr_y);
- lumaS = get_pixel_intensity(buf, buf_x, buf_y, curr_x, curr_y - 1);
- lumaE = get_pixel_intensity(buf, buf_x, buf_y, curr_x + 1, curr_y);
- lumaN = get_pixel_intensity(buf, buf_x, buf_y, curr_x, curr_y + 1);
- lumaW = get_pixel_intensity(buf, buf_x, buf_y, curr_x - 1, curr_y);
-
- maxSM = MAX2(lumaS, lumaM);
- minSM = MIN2(lumaS, lumaM);
- maxESM = MAX2(lumaE, maxSM);
- minESM = MIN2(lumaE, minSM);
- maxWN = MAX2(lumaN, lumaW);
- minWN = MIN2(lumaN, lumaW);
- rangeMax = MAX2(maxWN, maxESM);
- rangeMin = MIN2(minWN, minESM);
- rangeMaxScaled = rangeMax * edge_threshold;
- range = rangeMax - rangeMin;
- rangeMaxClamped = MAX2(edge_threshold_min, rangeMaxScaled);
-
- earlyExit = range < rangeMaxClamped ? 1:0;
- if(earlyExit) {
- set_pixel_intensity(buf, buf_x, buf_y, curr_x, curr_y, lumaM);
- }
-
- lumaNW = get_pixel_intensity(buf, buf_x, buf_y, curr_x + 1, curr_y - 1);
- lumaSE = get_pixel_intensity(buf, buf_x, buf_y, curr_x - 1, curr_y + 1);
- lumaNE = get_pixel_intensity(buf, buf_x, buf_y, curr_x + 1, curr_y + 1);
- lumaSW = get_pixel_intensity(buf, buf_x, buf_y, curr_x - 1, curr_y - 1);
-
- lumaNS = lumaN + lumaS;
- lumaWE = lumaW + lumaE;
- subpixRcpRange = 1.0f/range;
- subpixNSWE = lumaNS + lumaWE;
- edgeHorz1 = (-2.0f * lumaM) + lumaNS;
- edgeVert1 = (-2.0f * lumaM) + lumaWE;
-
- lumaNESE = lumaNE + lumaSE;
- lumaNWNE = lumaNW + lumaNE;
- edgeHorz2 = (-2.0f * lumaE) + lumaNESE;
- edgeVert2 = (-2.0f * lumaN) + lumaNWNE;
-
- lumaNWSW = lumaNW + lumaSW;
- lumaSWSE = lumaSW + lumaSE;
- edgeHorz4 = (ABS(edgeHorz1) * 2.0f) + ABS(edgeHorz2);
- edgeVert4 = (ABS(edgeVert1) * 2.0f) + ABS(edgeVert2);
- edgeHorz3 = (-2.0f * lumaW) + lumaNWSW;
- edgeVert3 = (-2.0f * lumaS) + lumaSWSE;
- edgeHorz = ABS(edgeHorz3) + edgeHorz4;
- edgeVert = ABS(edgeVert3) + edgeVert4;
-
- subpixNWSWNESE = lumaNWSW + lumaNESE;
- lengthSign = 1.0f / (float)(buf_x);
- horzSpan = edgeHorz >= edgeVert ? 1:0;
- subpixA = subpixNSWE * 2.0f + subpixNWSWNESE;
-
- if(!horzSpan) {
- lumaN = lumaW;
- lumaS = lumaE;
- } else {
- lengthSign = 1.0f / (float)(buf_y);
- }
- subpixB = (subpixA * (1.0f/12.0f)) - lumaM;
-
- gradientN = lumaN - lumaM;
- gradientS = lumaS - lumaM;
- lumaNN = lumaN + lumaM;
- lumaSS = lumaS + lumaM;
- pairN = (ABS(gradientN)) >= (ABS(gradientS)) ? 1:0;
- gradient = MAX2(ABS(gradientN), ABS(gradientS));
- if(pairN) {
- lengthSign = -lengthSign;
- }
- subpixC = MAX2(MIN2(ABS(subpixB) * subpixRcpRange,1.0f),0.0f);
-
- posB_x = posM_x;
- posB_y = posM_y;
- offNP_x = (!horzSpan) ? 0.0f:(1.0f / (float)(buf_x));
- offNP_y = (horzSpan) ? 0.0f:(1.0f / (float)(buf_y));
- if(!horzSpan) {
- posB_x += lengthSign * 0.5f;
- } else {
- posB_y += lengthSign * 0.5f;
- }
-
- posN_x = posB_x - offNP_x * p0;
- posN_y = posB_y - offNP_y * p0;
- posP_x = posB_x + offNP_x * p0;
- posP_y = posB_y + offNP_y * p0;
- subpixD = ((-2.0f)*subpixC) + 3.0f;
- //may need bilinear filtered get_pixel_intensity() here...done
- lumaEndN = get_pixel_intensity_bilinear(buf, buf_x, buf_y,posN_x,posN_y);
- subpixE = subpixC * subpixC;
- //may need bilinear filtered get_pixel_intensity() here...done
- lumaEndP = get_pixel_intensity_bilinear(buf, buf_x, buf_y, posP_x,posP_y);
-
- if(!pairN) {
- lumaNN = lumaSS;
- }
- gradientScaled = gradient * 1.0f/4.0f;
- lumaMM =lumaM - lumaNN * 0.5f;
- subpixF = subpixD * subpixE;
- lumaMLTZero = lumaMM < 0.0f ? 1:0;
-
- lumaEndN -= lumaNN * 0.5f;
- lumaEndP -= lumaNN * 0.5f;
- doneN = (ABS(lumaEndN)) >= gradientScaled ? 1:0;
- doneP = (ABS(lumaEndP)) >= gradientScaled ? 1:0;
- if(!doneN) {
- posN_x -= offNP_x * p1;
- posN_y -= offNP_y * p1;
- }
- doneNP = (!doneN) || (!doneP) ? 1:0;
- if(!doneP) {
- posP_x += offNP_x * p1;
- posP_y += offNP_y * p1;
- }
-
- if(doneNP) {
- if(!doneN) {
- lumaEndN = get_pixel_intensity_bilinear(buf, buf_x, buf_y, posN_x,posN_y);
- }
- if(!doneP) {
- lumaEndP = get_pixel_intensity_bilinear(buf, buf_x, buf_y, posP_x, posP_y);
- }
- if(!doneN) {
- lumaEndN = lumaEndN - lumaNN * 0.5;
- }
- if(!doneP) {
- lumaEndP = lumaEndP - lumaNN * 0.5;
- }
- doneN = (ABS(lumaEndN)) >= gradientScaled ? 1:0;
- doneP = (ABS(lumaEndP)) >= gradientScaled ? 1:0;
- if(!doneN) {
- posN_x -= offNP_x * p2;
- posN_y -= offNP_y * p2;
- }
- doneNP = (!doneN) || (!doneP) ? 1:0;
- if(!doneP) {
- posP_x += offNP_x * p2;
- posP_y += offNP_y * p2;
- }
- if(doneNP) {
- if(!doneN) {
- lumaEndN = get_pixel_intensity_bilinear(buf, buf_x, buf_y,posN_x,posN_y);
- }
- if(!doneP) {
- lumaEndP = get_pixel_intensity_bilinear(buf, buf_x, buf_y, posP_x,posP_y);
- }
- if(!doneN) {
- lumaEndN = lumaEndN - lumaNN * 0.5;
- }
- if(!doneP) {
- lumaEndP = lumaEndP - lumaNN * 0.5;
- }
- doneN = (ABS(lumaEndN)) >= gradientScaled ? 1:0;
- doneP = (ABS(lumaEndP)) >= gradientScaled ? 1:0;
- if(!doneN) {
- posN_x -= offNP_x * p3;
- posN_y -= offNP_y * p3;
- }
- doneNP = (!doneN) || (!doneP) ? 1:0;
- if(!doneP) {
- posP_x += offNP_x * p3;
- posP_y += offNP_y * p3;
- }
- if(doneNP) {
- if(!doneN) {
- lumaEndN = get_pixel_intensity_bilinear(buf, buf_x, buf_y,posN_x,posN_y);
- }
- if(!doneP) {
- lumaEndP = get_pixel_intensity_bilinear(buf, buf_x, buf_y, posP_x,posP_y);
- }
- if(!doneN) {
- lumaEndN = lumaEndN - lumaNN * 0.5;
- }
- if(!doneP) {
- lumaEndP = lumaEndP - lumaNN * 0.5;
- }
- doneN = (ABS(lumaEndN)) >= gradientScaled ? 1:0;
- doneP = (ABS(lumaEndP)) >= gradientScaled ? 1:0;
- if(!doneN) {
- posN_x -= offNP_x * p4;
- posN_y -= offNP_y * p4;
- }
- doneNP = (!doneN) || (!doneP) ? 1:0;
- if(!doneP) {
- posP_x += offNP_x * p4;
- posP_y += offNP_y * p4;
- }
- if(doneNP) {
- if(!doneN) {
- lumaEndN = get_pixel_intensity_bilinear(buf, buf_x, buf_y,posN_x,posN_y);
- }
- if(!doneP) {
- lumaEndP = get_pixel_intensity_bilinear(buf, buf_x, buf_y, posP_x,posP_y);
- }
- if(!doneN) {
- lumaEndN = lumaEndN - lumaNN * 0.5;
- }
- if(!doneP) {
- lumaEndP = lumaEndP - lumaNN * 0.5;
- }
- doneN = (ABS(lumaEndN)) >= gradientScaled ? 1:0;
- doneP = (ABS(lumaEndP)) >= gradientScaled ? 1:0;
- if(!doneN) {
- posN_x -= offNP_x * p5;
- posN_y -= offNP_y * p5;
- }
- doneNP = (!doneN) || (!doneP) ? 1:0;
- if(!doneP) {
- posP_x += offNP_x * p5;
- posP_y += offNP_y * p5;
- }
- if(doneNP) {
- if(!doneN) {
- lumaEndN = get_pixel_intensity_bilinear(buf, buf_x, buf_y,posN_x,posN_y);
- }
- if(!doneP) {
- lumaEndP = get_pixel_intensity_bilinear(buf, buf_x, buf_y, posP_x,posP_y);
- }
- if(!doneN) {
- lumaEndN = lumaEndN - lumaNN * 0.5;
- }
- if(!doneP) {
- lumaEndP = lumaEndP - lumaNN * 0.5;
- }
- doneN = (ABS(lumaEndN)) >= gradientScaled ? 1:0;
- doneP = (ABS(lumaEndP)) >= gradientScaled ? 1:0;
- if(!doneN) {
- posN_x -= offNP_x * p6;
- posN_y -= offNP_y * p6;
- }
- doneNP = (!doneN) || (!doneP) ? 1:0;
- if(!doneP) {
- posP_x += offNP_x * p6;
- posP_y += offNP_y * p6;
- }
- if(doneNP) {
- if(!doneN) {
- lumaEndN = get_pixel_intensity_bilinear(buf, buf_x, buf_y,posN_x,posN_y);
- }
- if(!doneP) {
- lumaEndP = get_pixel_intensity_bilinear(buf, buf_x, buf_y, posP_x,posP_y);
- }
- if(!doneN) {
- lumaEndN = lumaEndN - lumaNN * 0.5;
- }
- if(!doneP) {
- lumaEndP = lumaEndP - lumaNN * 0.5;
- }
- doneN = (ABS(lumaEndN)) >= gradientScaled ? 1:0;
- doneP = (ABS(lumaEndP)) >= gradientScaled ? 1:0;
- if(!doneN) {
- posN_x -= offNP_x * p7;
- posN_y -= offNP_y * p7;
- }
- doneNP = (!doneN) || (!doneP) ? 1:0;
- if(!doneP) {
- posP_x += offNP_x * p7;
- posP_y += offNP_y * p7;
- }
- if(doneNP) {
- if(!doneN) {
- lumaEndN = get_pixel_intensity_bilinear(buf, buf_x, buf_y,posN_x,posN_y);
- }
- if(!doneP) {
- lumaEndP = get_pixel_intensity_bilinear(buf, buf_x, buf_y, posP_x,posP_y);
- }
- if(!doneN) {
- lumaEndN = lumaEndN - lumaNN * 0.5;
- }
- if(!doneP) {
- lumaEndP = lumaEndP - lumaNN * 0.5;
- }
- doneN = (ABS(lumaEndN)) >= gradientScaled ? 1:0;
- doneP = (ABS(lumaEndP)) >= gradientScaled ? 1:0;
- if(!doneN) {
- posN_x -= offNP_x * p8;
- posN_y -= offNP_y * p8;
- }
- doneNP = (!doneN) || (!doneP) ? 1:0;
- if(!doneP) {
- posP_x += offNP_x * p8;
- posP_y += offNP_y * p8;
- }
- if(doneNP) {
- if(!doneN) {
- lumaEndN = get_pixel_intensity_bilinear(buf, buf_x, buf_y,posN_x,posN_y);
- }
- if(!doneP) {
- lumaEndP = get_pixel_intensity_bilinear(buf, buf_x, buf_y, posP_x,posP_y);
- }
- if(!doneN) {
- lumaEndN = lumaEndN - lumaNN * 0.5;
- }
- if(!doneP) {
- lumaEndP = lumaEndP - lumaNN * 0.5;
- }
- doneN = (ABS(lumaEndN)) >= gradientScaled ? 1:0;
- doneP = (ABS(lumaEndP)) >= gradientScaled ? 1:0;
- if(!doneN) {
- posN_x -= offNP_x * p9;
- posN_y -= offNP_y * p9;
- }
- doneNP = (!doneN) || (!doneP) ? 1:0;
- if(!doneP) {
- posP_x += offNP_x * p9;
- posP_y += offNP_y * p9;
- }
- if(doneNP) {
- if(!doneN) {
- lumaEndN = get_pixel_intensity_bilinear(buf, buf_x, buf_y,posN_x,posN_y);
- }
- if(!doneP) {
- lumaEndP = get_pixel_intensity_bilinear(buf, buf_x, buf_y, posP_x,posP_y);
- }
- if(!doneN) {
- lumaEndN = lumaEndN - lumaNN * 0.5;
- }
- if(!doneP) {
- lumaEndP = lumaEndP - lumaNN * 0.5;
- }
- doneN = (ABS(lumaEndN)) >= gradientScaled ? 1:0;
- doneP = (ABS(lumaEndP)) >= gradientScaled ? 1:0;
- if(!doneN) {
- posN_x -= offNP_x * p10;
- posN_y -= offNP_y * p10;
- }
- doneNP = (!doneN) || (!doneP) ? 1:0;
- if(!doneP) {
- posP_x += offNP_x * p10;
- posP_y += offNP_y * p10;
- }
- if(doneNP) {
- if(!doneN) {
- lumaEndN = get_pixel_intensity_bilinear(buf, buf_x, buf_y,posN_x,posN_y);
- }
- if(!doneP) {
- lumaEndP = get_pixel_intensity_bilinear(buf, buf_x, buf_y, posP_x,posP_y);
- }
- if(!doneN) {
- lumaEndN = lumaEndN - lumaNN * 0.5;
- }
- if(!doneP) {
- lumaEndP = lumaEndP - lumaNN * 0.5;
- }
- doneN = (ABS(lumaEndN)) >= gradientScaled ? 1:0;
- doneP = (ABS(lumaEndP)) >= gradientScaled ? 1:0;
- if(!doneN) {
- posN_x -= offNP_x * p11;
- posN_y -= offNP_y * p11;
- }
- doneNP = (!doneN) || (!doneP) ? 1:0;
- if(!doneP) {
- posP_x += offNP_x * p11;
- posP_y += offNP_y * p11;
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- dstN = posM_x - posN_x;
- dstP = posP_x - posM_x;
- if(!horzSpan) {
- dstN = posM_y - posN_y;
- dstP = posP_y - posM_y;
- }
-
- goodSpanN = ((lumaEndN < 0.0f) ? 1:0) != lumaMLTZero ? 1:0;
- spanLength = (dstP + dstN);
- goodSpanP = ((lumaEndP < 0.0f) ? 1:0) != lumaMLTZero ? 1:0;
- spanLengthRcp = 1.0f/spanLength;
-
- directionN = dstN < dstP ? 1:0;
- dst = MIN2(dstN, dstP);
- goodSpan = (directionN==1) ? goodSpanN:goodSpanP;
- subpixG = subpixF * subpixF;
- pixelOffset = (dst * (-spanLengthRcp)) + 0.5f;
- subpixH = subpixG * quality_subpix;
-
- pixelOffsetGood = (goodSpan==1) ? pixelOffset : 0.0f;
- pixelOffsetSubpix = MAX2(pixelOffsetGood, subpixH);
- if(!horzSpan) {
- posM_x += pixelOffsetSubpix * lengthSign;
- } else {
- posM_y += pixelOffsetSubpix * lengthSign;
- }
- //may need bilinear filtered get_pixel_intensity() here...
- set_pixel_intensity(buf,buf_x,buf_y,curr_x,curr_y,get_pixel_intensity_bilinear(buf, buf_x, buf_y, posM_x,posM_y)* lumaM);
-
- }
- }
- return 1;
-
-#endif
-}
-
diff --git a/intern/raskter/raskter.h b/intern/raskter/raskter.h
index e078b0d26be..cf691a9784b 100644
--- a/intern/raskter/raskter.h
+++ b/intern/raskter/raskter.h
@@ -28,32 +28,13 @@
* \ingroup RASKTER
*/
-struct poly_vert {
- int x;
- int y;
-};
-
-struct scan_line {
- int xstart;
- int xend;
-};
-
-struct scan_line_batch {
- int num;
- int ystart;
- struct scan_line *slines;
-};
-
#ifdef __cplusplus
extern "C" {
#endif
int PLX_raskterize(float (*base_verts)[2], int num_base_verts,
- float *buf, int buf_x, int buf_y, int do_mask_AA);
-int PLX_raskterize_feather(float (*base_verts)[2], int num_base_verts,
- float (*feather_verts)[2], int num_feather_verts,
- float *buf, int buf_x, int buf_y);
-int PLX_antialias_buffer(float *buf, int buf_x, int buf_y);
+ float *buf, int buf_x, int buf_y);
+
#ifdef __cplusplus
}
#endif
diff --git a/intern/smoke/intern/FLUID_3D.h b/intern/smoke/intern/FLUID_3D.h
index 5704cba3ed4..ac77148ce84 100644
--- a/intern/smoke/intern/FLUID_3D.h
+++ b/intern/smoke/intern/FLUID_3D.h
@@ -105,7 +105,7 @@ class FLUID_3D
float* _xForce;
float* _yForce;
float* _zForce;
- unsigned char* _obstacles; /* only used (usefull) for static obstacles like domain boundaries */
+ unsigned char* _obstacles; /* only used (useful) for static obstacles like domain boundaries */
unsigned char* _obstaclesAnim;
// Required for proper threading:
diff --git a/intern/smoke/intern/WAVELET_NOISE.h b/intern/smoke/intern/WAVELET_NOISE.h
index 66dfb95d143..fce901b68aa 100644
--- a/intern/smoke/intern/WAVELET_NOISE.h
+++ b/intern/smoke/intern/WAVELET_NOISE.h
@@ -107,7 +107,7 @@ static void downsampleNeumann(const float *from, float *to, int n, int stride)
// if these values are not local incorrect results are generated
float downCoeffs[32] = { DOWNCOEFFS };
const float *const aCoCenter= &downCoeffs[16];
- for (int i = 0; i < n / 2; i++) {
+ for (int i = 0; i <= n / 2; i++) {
to[i * stride] = 0;
for (int k = 2 * i - 16; k < 2 * i + 16; k++) {
// handle boundary
diff --git a/intern/smoke/intern/smoke_API.cpp b/intern/smoke/intern/smoke_API.cpp
index b45fef26504..4bbf8e0a82b 100644
--- a/intern/smoke/intern/smoke_API.cpp
+++ b/intern/smoke/intern/smoke_API.cpp
@@ -28,7 +28,6 @@
* \ingroup smoke
*/
-
#include "FLUID_3D.h"
#include "WTURBULENCE.h"
@@ -36,6 +35,8 @@
#include <stdlib.h>
#include <math.h>
+#include "../extern/smoke_API.h" /* to ensure valid prototypes */
+
// y in smoke is z in blender
extern "C" FLUID_3D *smoke_init(int *res, float *p0, float dtdef)
{
@@ -283,10 +284,12 @@ extern "C" void smoke_get_ob_velocity(FLUID_3D *fluid, float **x, float **y, flo
*z = fluid->_zVelocityOb;
}
+#if 0
extern "C" unsigned char *smoke_get_obstacle_anim(FLUID_3D *fluid)
{
return fluid->_obstaclesAnim;
}
+#endif
extern "C" void smoke_turbulence_set_noise(WTURBULENCE *wt, int type)
{
diff --git a/intern/string/STR_HashedString.h b/intern/string/STR_HashedString.h
index f56e365bdb3..8bfbde65895 100644
--- a/intern/string/STR_HashedString.h
+++ b/intern/string/STR_HashedString.h
@@ -27,14 +27,10 @@
/** \file string/STR_HashedString.h
* \ingroup string
- */
-
-
-/**
-
+ *
* Copyright (C) 2001 NaN Technologies B.V.
* This file was formerly known as: GEN_StdString.cpp.
- * @date November, 14, 2001
+ * \date November, 14, 2001
*/
#ifndef __STR_HASHEDSTRING_H__
@@ -53,22 +49,22 @@
//
static inline void STR_gHashMix(dword& a, dword& b, dword& c)
{
- a -= b; a -= c; a ^= (c>>13);
- b -= c; b -= a; b ^= (a<<8);
- c -= a; c -= b; c ^= (b>>13);
- a -= b; a -= c; a ^= (c>>12);
- b -= c; b -= a; b ^= (a<<16);
- c -= a; c -= b; c ^= (b>>5);
- a -= b; a -= c; a ^= (c>>3);
- b -= c; b -= a; b ^= (a<<10);
- c -= a; c -= b; c ^= (b>>15);
+ a -= b; a -= c; a ^= (c >> 13);
+ b -= c; b -= a; b ^= (a << 8);
+ c -= a; c -= b; c ^= (b >> 13);
+ a -= b; a -= c; a ^= (c >> 12);
+ b -= c; b -= a; b ^= (a << 16);
+ c -= a; c -= b; c ^= (b >> 5);
+ a -= b; a -= c; a ^= (c >> 3);
+ b -= c; b -= a; b ^= (a << 10);
+ c -= a; c -= b; c ^= (b >> 15);
}
//
// Fast Hashable<int32> functionality
// http://www.concentric.net/~Ttwang/tech/inthash.htm
//
-static inline dword STR_gHash(dword inDWord)
+static inline dword STR_gHash(dword inDWord)
{
dword key = inDWord;
key += ~(key << 16);
@@ -80,43 +76,43 @@ static inline dword STR_gHash(dword inDWord)
return key;
}
-enum { GOLDEN_RATIO = 0x9e3779b9 }; // arbitrary value to initialize hash funtion, well not so arbitrary
- // as this value is taken from the pigs library (Orange Games/Lost Boys)
+enum { GOLDEN_RATIO = 0x9e3779b9 }; /* arbitrary value to initialize hash funtion, well not so arbitrary
+ * as this value is taken from the pigs library (Orange Games/Lost Boys) */
-static dword STR_gHash(const void* in, int len, dword init_val)
+static dword STR_gHash(const void *in, int len, dword init_val)
{
- unsigned int length = len;
+ unsigned int length = len;
dword a = (dword)GOLDEN_RATIO;
dword b = (dword)GOLDEN_RATIO;
- dword c = init_val; // the previous hash value
+ dword c = init_val; /* the previous hash value */
byte *p_in = (byte *)in;
// Do the largest part of the key
while (length >= 12)
{
- a += (p_in[0] + ((dword)p_in[1]<<8) + ((dword)p_in[2] <<16) + ((dword)p_in[3] <<24));
- b += (p_in[4] + ((dword)p_in[5]<<8) + ((dword)p_in[6] <<16) + ((dword)p_in[7] <<24));
- c += (p_in[8] + ((dword)p_in[9]<<8) + ((dword)p_in[10]<<16) + ((dword)p_in[11]<<24));
+ a += (p_in[0] + ((dword)p_in[1] << 8) + ((dword)p_in[2] << 16) + ((dword)p_in[3] << 24));
+ b += (p_in[4] + ((dword)p_in[5] << 8) + ((dword)p_in[6] << 16) + ((dword)p_in[7] << 24));
+ c += (p_in[8] + ((dword)p_in[9] << 8) + ((dword)p_in[10] << 16) + ((dword)p_in[11] << 24));
STR_gHashMix(a, b, c);
p_in += 12; length -= 12;
}
// Handle the last 11 bytes
c += len;
- switch(length) {
- case 11: c+=((dword)p_in[10]<<24);
- case 10: c+=((dword)p_in[9]<<16);
- case 9 : c+=((dword)p_in[8]<<8); // the first byte of c is reserved for the length
- case 8 : b+=((dword)p_in[7]<<24);
- case 7 : b+=((dword)p_in[6]<<16);
- case 6 : b+=((dword)p_in[5]<<8);
- case 5 : b+=p_in[4];
- case 4 : a+=((dword)p_in[3]<<24);
- case 3 : a+=((dword)p_in[2]<<16);
- case 2 : a+=((dword)p_in[1]<<8);
- case 1 : a+=p_in[0];
+ switch (length) {
+ case 11: c += ((dword)p_in[10] << 24);
+ case 10: c += ((dword)p_in[9] << 16);
+ case 9: c += ((dword)p_in[8] << 8); /* the first byte of c is reserved for the length */
+ case 8: b += ((dword)p_in[7] << 24);
+ case 7: b += ((dword)p_in[6] << 16);
+ case 6: b += ((dword)p_in[5] << 8);
+ case 5: b += p_in[4];
+ case 4: a += ((dword)p_in[3] << 24);
+ case 3: a += ((dword)p_in[2] << 16);
+ case 2: a += ((dword)p_in[1] << 8);
+ case 1: a += p_in[0];
}
STR_gHashMix(a, b, c);
@@ -129,18 +125,18 @@ static dword STR_gHash(const void* in, int len, dword init_val)
class STR_HashedString : public STR_String
{
public:
- STR_HashedString() : STR_String(),m_Hashed(false) {}
- STR_HashedString(const char* str) : STR_String(str),m_Hashed(false) {}
- STR_HashedString(const STR_String& str) : STR_String(str),m_Hashed(false) {}
+ STR_HashedString() : STR_String(), m_Hashed(false) {}
+ STR_HashedString(const char *str) : STR_String(str), m_Hashed(false) {}
+ STR_HashedString(const STR_String &str) : STR_String(str), m_Hashed(false) {}
- inline dword hash(dword init=0) const
+ inline dword hash(dword init = 0) const
{
if (!m_Hashed)
{
- const char* str = *this;
+ const char *str = *this;
int length = this->Length();
- m_CachedHash = STR_gHash(str,length,init);
- m_Hashed=true;
+ m_CachedHash = STR_gHash(str, length, init);
+ m_Hashed = true;
}
return m_CachedHash;
}
diff --git a/intern/string/STR_String.h b/intern/string/STR_String.h
index 1705d7855e0..a3d367a6fef 100644
--- a/intern/string/STR_String.h
+++ b/intern/string/STR_String.h
@@ -66,8 +66,8 @@ typedef const STR_String& rcSTR_String;
typedef unsigned char byte;
/**
- * Smart String Value class. Is used by parser when an expression tree is build containing string.
-*/
+ * Smart String Value class. Is used by parser when an expression tree is build containing string.
+ */
class STR_String
{
@@ -85,16 +85,24 @@ public:
explicit STR_String(dword val);
explicit STR_String(float val);
explicit STR_String(double val);
- inline ~STR_String() { delete[] pData; }
+ inline ~STR_String() { delete[] this->m_data; }
// Operations
- STR_String& Format(const char *fmt, ...); // Set formatted text to string
- STR_String& FormatAdd(const char *fmt, ...); // Add formatted text to string
- inline void Clear() { Len = pData[0] = 0; }
+ STR_String& Format(const char *fmt, ...) // Set formatted text to string
+#ifdef __GNUC__
+ __attribute__ ((format(printf, 2, 3)))
+#endif
+ ;
+ STR_String& FormatAdd(const char *fmt, ...) // Add formatted text to string
+#ifdef __GNUC__
+ __attribute__ ((format(printf, 2, 3)))
+#endif
+ ;
+ inline void Clear() { this->m_len = this->m_data[0] = 0; }
inline const STR_String & Reverse()
{
- for (int i1 = 0, i2 = Len - 1; i1 < i2; i1++, i2--) {
- std::swap(pData[i1], pData[i2]);
+ for (int i1 = 0, i2 = this->m_len - 1; i1 < i2; i1++, i2--) {
+ std::swap(this->m_data[i1], this->m_data[i2]);
}
return *this;
}
@@ -102,28 +110,28 @@ public:
// Properties
bool IsUpper() const;
bool IsLower() const;
- inline bool IsEmpty() const { return Len==0; }
- inline int Length() const { return Len; }
+ inline bool IsEmpty() const { return this->m_len == 0; }
+ inline int Length() const { return this->m_len; }
// Data access
- inline STR_String& SetLength(int len) { AllocBuffer(len, true); Len=len; pData[len]=0; return *this; }
- inline char GetAt(int pos) const { assertd(pos<Len); return pData[pos]; }
- inline void SetAt(int pos, char c) { assertd(pos<Len); pData[pos]=c; }
+ inline STR_String& SetLength(int len) { AllocBuffer(len, true); this->m_len = len; this->m_data[len] = 0; return *this; }
+ inline char GetAt(int pos) const { assertd(pos<this->m_len); return this->m_data[pos]; }
+ inline void SetAt(int pos, char c) { assertd(pos<this->m_len); this->m_data[pos] = c; }
inline void SetAt(int pos, rcSTR_String str);
inline void SetAt(int pos, int num, rcSTR_String str);
void Replace(int pos, rcSTR_String str);
void Replace(int pos, int num, rcSTR_String str);
// Substrings
- inline STR_String Left(int num) const { num = (num < Len ? num:Len ); return STR_String(pData, num); }
- inline STR_String Right(int num) const { num = (num < Len ? num:Len ); return STR_String(pData+Len-num, num); }
- inline STR_String Mid(int pos, int num = INT_MAX) const { pos = (pos < Len ? pos:Len ); num = (num < (Len - pos) ? num : (Len - pos)); return STR_String(pData+pos, num); }
+ inline STR_String Left(int num) const { num = (num < this->m_len ? num:this->m_len ); return STR_String(this->m_data, num); }
+ inline STR_String Right(int num) const { num = (num < this->m_len ? num:this->m_len ); return STR_String(this->m_data + this->m_len - num, num); }
+ inline STR_String Mid(int pos, int num = INT_MAX) const { pos = (pos < this->m_len ? pos:this->m_len ); num = (num < (this->m_len - pos) ? num : (this->m_len - pos)); return STR_String(this->m_data + pos, num); }
// Comparison
int Compare(rcSTR_String rhs) const;
int CompareNoCase(rcSTR_String rhs) const;
- inline bool IsEqual(rcSTR_String rhs) const { return (Compare(rhs)==0); }
- inline bool IsEqualNoCase(rcSTR_String rhs) const { return (CompareNoCase(rhs)==0); }
+ inline bool IsEqual(rcSTR_String rhs) const { return (Compare(rhs) == 0); }
+ inline bool IsEqualNoCase(rcSTR_String rhs) const { return (CompareNoCase(rhs) == 0); }
// Search/replace
int Find(char c, int pos = 0) const;
@@ -148,12 +156,12 @@ public:
STR_String& TrimQuotes();
// Conversions
-// inline operator char*() { return pData; }
- inline operator const char *() const { return pData; }
- inline char *Ptr() { return pData; }
- inline const char *ReadPtr() const { return pData; }
- inline float ToFloat() const { float x=(float)(atof(pData)); return x; }
- inline int ToInt() const { return atoi(pData); }
+// inline operator char*() { return this->m_data; }
+ inline operator const char *() const { return this->m_data; }
+ inline char *Ptr() { return this->m_data; }
+ inline const char *ReadPtr() const { return this->m_data; }
+ inline float ToFloat() const { float x=(float)(atof(this->m_data)); return x; }
+ inline int ToInt() const { return atoi(this->m_data); }
// Operators
inline rcSTR_String operator=(const byte *rhs) { return Copy((const char *)rhs, strlen((const char *)rhs)); }
@@ -178,12 +186,12 @@ public:
inline friend bool operator>=(rcSTR_String lhs, rcSTR_String rhs) { return (strcmp(lhs, rhs)>=0); }
inline friend bool operator>=(rcSTR_String lhs, const char *rhs) { return (strcmp(lhs, rhs)>=0); }
inline friend bool operator>=(const char *lhs, rcSTR_String rhs) { return (strcmp(lhs, rhs)>=0); }
- inline friend bool operator==(rcSTR_String lhs, rcSTR_String rhs) { return ((lhs.Length() == rhs.Length()) && (memcmp(lhs, rhs, lhs.Length())==0)); }
- inline friend bool operator==(rcSTR_String lhs, const char *rhs) { return (memcmp(lhs, rhs, lhs.Length()+1)==0); }
- inline friend bool operator==(const char *lhs, rcSTR_String rhs) { return (memcmp(lhs, rhs, rhs.Length()+1)==0); }
+ inline friend bool operator==(rcSTR_String lhs, rcSTR_String rhs) { return ((lhs.Length() == rhs.Length()) && (memcmp(lhs, rhs, lhs.Length()) == 0)); }
+ inline friend bool operator==(rcSTR_String lhs, const char *rhs) { return (memcmp(lhs, rhs, lhs.Length() + 1) == 0); }
+ inline friend bool operator==(const char *lhs, rcSTR_String rhs) { return (memcmp(lhs, rhs, rhs.Length() + 1) == 0); }
inline friend bool operator!=(rcSTR_String lhs, rcSTR_String rhs) { return ((lhs.Length() != rhs.Length()) || (memcmp(lhs, rhs, lhs.Length())!=0)); }
- inline friend bool operator!=(rcSTR_String lhs, const char *rhs) { return (memcmp(lhs, rhs, lhs.Length()+1)!=0); }
- inline friend bool operator!=(const char *lhs, rcSTR_String rhs) { return (memcmp(lhs, rhs, rhs.Length()+1)!=0); }
+ inline friend bool operator!=(rcSTR_String lhs, const char *rhs) { return (memcmp(lhs, rhs, lhs.Length() + 1) != 0); }
+ inline friend bool operator!=(const char *lhs, rcSTR_String rhs) { return (memcmp(lhs, rhs, rhs.Length() + 1) != 0); }
// serializing
//int Serialize(pCStream stream);
@@ -198,9 +206,9 @@ protected:
static bool isUpper(char c) { return (c>='A') && (c <= 'Z'); }
static bool isSpace(char c) { return (c==' ') || (c=='\t'); }
- char *pData; // -> STR_String data
- int Len; // Data length
- int Max; // Space in data buffer
+ char *m_data; // -> STR_String data
+ int m_len; //z Data length
+ int m_max; // Space in data buffer
#ifdef WITH_CXX_GUARDEDALLOC
@@ -208,12 +216,10 @@ protected:
#endif
};
-inline STR_String operator+(rcSTR_String lhs, rcSTR_String rhs) { return STR_String(lhs.ReadPtr(), lhs.Length(), rhs.ReadPtr(), rhs.Length()); }
-inline STR_String operator+(rcSTR_String lhs, char rhs) { return STR_String(lhs.ReadPtr(), lhs.Length(), &rhs, 1); }
-inline STR_String operator+(char lhs, rcSTR_String rhs) { return STR_String(&lhs, 1, rhs.ReadPtr(), rhs.Length()); }
-inline STR_String operator+(rcSTR_String lhs, const char *rhs) { return STR_String(lhs.ReadPtr(), lhs.Length(), rhs, strlen(rhs)); }
-inline STR_String operator+(const char *lhs, rcSTR_String rhs) { return STR_String(lhs, strlen(lhs), rhs.ReadPtr(), rhs.Length()); }
-
+inline STR_String operator+(rcSTR_String lhs, rcSTR_String rhs) { return STR_String(lhs.ReadPtr(), lhs.Length(), rhs.ReadPtr(), rhs.Length()); }
+inline STR_String operator+(rcSTR_String lhs, char rhs) { return STR_String(lhs.ReadPtr(), lhs.Length(), &rhs, 1); }
+inline STR_String operator+(char lhs, rcSTR_String rhs) { return STR_String(&lhs, 1, rhs.ReadPtr(), rhs.Length()); }
+inline STR_String operator+(rcSTR_String lhs, const char *rhs) { return STR_String(lhs.ReadPtr(), lhs.Length(), rhs, strlen(rhs)); }
+inline STR_String operator+(const char *lhs, rcSTR_String rhs) { return STR_String(lhs, strlen(lhs), rhs.ReadPtr(), rhs.Length()); }
#endif //__STR_STRING_H__
-
diff --git a/intern/string/intern/STR_String.cpp b/intern/string/intern/STR_String.cpp
index bea6e88cfff..283b44380ee 100644
--- a/intern/string/intern/STR_String.cpp
+++ b/intern/string/intern/STR_String.cpp
@@ -27,14 +27,9 @@
/** \file string/intern/STR_String.cpp
* \ingroup string
- */
-
-
-/**
-
+ *
* Copyright (C) 2001 NaN Technologies B.V.
* This file was formerly known as: GEN_StdString.cpp.
- * @date April, 25, 2001
*/
#include <stdio.h>
@@ -51,17 +46,18 @@
Construction / destruction
-------------------------------------------------------------------------------------------------*/
-
+#define STR_STRING_SIZE_DEFAULT_WORD 32 /* default size for a new word */
+#define STR_STRING_SIZE_DEFAULT_CHAR 9 /* default size for a new char */
//
// Construct an empty string
//
STR_String::STR_String() :
- pData(new char[32]),
- Len(0),
- Max(32)
+ m_data(new char[STR_STRING_SIZE_DEFAULT_WORD]),
+ m_len(0),
+ m_max(STR_STRING_SIZE_DEFAULT_WORD)
{
- pData[0] = 0;
+ this->m_data[0] = 0;
}
@@ -70,12 +66,12 @@ STR_String::STR_String() :
// Construct a string of one character
//
STR_String::STR_String(char c) :
- pData(new char[9]),
- Len(1),
- Max(9)
+ m_data(new char[STR_STRING_SIZE_DEFAULT_CHAR]),
+ m_len(1),
+ m_max(STR_STRING_SIZE_DEFAULT_CHAR)
{
- pData[0] = c;
- pData[1] = 0;
+ this->m_data[0] = c;
+ this->m_data[1] = 0;
}
@@ -84,13 +80,13 @@ STR_String::STR_String(char c) :
// Construct a string of multiple repeating characters
//
STR_String::STR_String(char c, int len) :
- pData(new char[len + 8]),
- Len(len),
- Max(len + 8)
+ m_data(new char[len + 8]),
+ m_len(len),
+ m_max(len + 8)
{
- assertd(pData != NULL);
- memset(pData, c, len);
- pData[len] = 0;
+ assertd(this->m_data != NULL);
+ memset(this->m_data, c, len);
+ this->m_data[len] = 0;
}
@@ -102,17 +98,17 @@ STR_String::STR_String(char c, int len) :
STR_String::STR_String(const char *str)
{
if (str) {
- Len = ::strlen(str);
- Max = Len + 8;
- pData = new char[Max];
- assertd(pData != NULL);
- ::memcpy(pData, str, Len);
- pData[Len] = 0;
+ this->m_len = ::strlen(str);
+ this->m_max = this->m_len + 8;
+ this->m_data = new char[this->m_max];
+ assertd(this->m_data != NULL);
+ ::memcpy(this->m_data, str, this->m_len);
+ this->m_data[this->m_len] = 0;
}
else {
- pData = 0;
- Len = 0;
- Max = 8;
+ this->m_data = 0;
+ this->m_len = 0;
+ this->m_max = 8;
}
}
@@ -122,13 +118,13 @@ STR_String::STR_String(const char *str)
// Construct a string from a pointer-to-ASCII-string and a length
//
STR_String::STR_String(const char *str, int len) :
- pData(new char[len + 8]),
- Len(len),
- Max(len + 8)
+ m_data(new char[len + 8]),
+ m_len(len),
+ m_max(len + 8)
{
- assertd(pData != NULL);
- memcpy(pData, str, len);
- pData[len] = 0;
+ assertd(this->m_data != NULL);
+ memcpy(this->m_data, str, len);
+ this->m_data[len] = 0;
}
@@ -137,14 +133,14 @@ STR_String::STR_String(const char *str, int len) :
// Construct a string from another string
//
STR_String::STR_String(rcSTR_String str) :
- pData(new char[str.Length() + 8]),
- Len(str.Length()),
- Max(str.Length() + 8)
+ m_data(new char[str.Length() + 8]),
+ m_len(str.Length()),
+ m_max(str.Length() + 8)
{
- assertd(pData != NULL);
- assertd(str.pData != NULL);
- memcpy(pData, str.pData, str.Length());
- pData[str.Length()] = 0;
+ assertd(this->m_data != NULL);
+ assertd(str.this->m_data != NULL);
+ memcpy(this->m_data, str.ReadPtr(), str.Length());
+ this->m_data[str.Length()] = 0;
}
@@ -153,14 +149,14 @@ STR_String::STR_String(rcSTR_String str) :
// Construct a string from the first number of characters in another string
//
STR_String::STR_String(rcSTR_String str, int len) :
- pData(new char[len + 8]),
- Len(len),
- Max(len + 8)
+ m_data(new char[len + 8]),
+ m_len(len),
+ m_max(len + 8)
{
- assertd(pData != NULL);
- assertd(str.pData != NULL);
- memcpy(pData, str.pData, str.Length());
- pData[str.Length()] = 0;
+ assertd(this->m_data != NULL);
+ assertd(str.this->m_data != NULL);
+ memcpy(this->m_data, str.ReadPtr(), str.Length());
+ this->m_data[str.Length()] = 0;
}
@@ -169,14 +165,14 @@ STR_String::STR_String(rcSTR_String str, int len) :
// Create a string by concatenating two sources
//
STR_String::STR_String(const char *src1, int len1, const char *src2, int len2) :
- pData(new char[len1 + len2 + 8]),
- Len(len1 + len2),
- Max(len1 + len2 + 8)
+ m_data(new char[len1 + len2 + 8]),
+ m_len(len1 + len2),
+ m_max(len1 + len2 + 8)
{
- assertd(pData != NULL);
- memcpy(pData, src1, len1);
- memcpy(pData + len1, src2, len2);
- pData[len1 + len2] = 0;
+ assertd(this->m_data != NULL);
+ memcpy(this->m_data, src1, len1);
+ memcpy(this->m_data + len1, src2, len2);
+ this->m_data[len1 + len2] = 0;
}
@@ -185,11 +181,11 @@ STR_String::STR_String(const char *src1, int len1, const char *src2, int len2) :
// Create a string with an integer value
//
STR_String::STR_String(int val) :
- pData(new char[32]),
- Max(32)
+ m_data(new char[STR_STRING_SIZE_DEFAULT_WORD]),
+ m_max(STR_STRING_SIZE_DEFAULT_WORD)
{
- assertd(pData != NULL);
- Len = sprintf(pData, "%d", val);
+ assertd(this->m_data != NULL);
+ this->m_len = sprintf(this->m_data, "%d", val);
}
@@ -199,11 +195,11 @@ STR_String::STR_String(int val) :
// Create a string with a dword value
//
STR_String::STR_String(dword val) :
- pData(new char[32]),
- Max(32)
+ m_data(new char[STR_STRING_SIZE_DEFAULT_WORD]),
+ m_max(STR_STRING_SIZE_DEFAULT_WORD)
{
- assertd(pData != NULL);
- Len = sprintf(pData, "%lu", val);
+ assertd(this->m_data != NULL);
+ this->m_len = sprintf(this->m_data, "%lu", val);
}
@@ -212,11 +208,11 @@ STR_String::STR_String(dword val) :
// Create a string with a floating point value
//
STR_String::STR_String(float val) :
- pData(new char[32]),
- Max(32)
+ m_data(new char[STR_STRING_SIZE_DEFAULT_WORD]),
+ m_max(STR_STRING_SIZE_DEFAULT_WORD)
{
- assertd(pData != NULL);
- Len = sprintf(pData, "%g", val);
+ assertd(this->m_data != NULL);
+ this->m_len = sprintf(this->m_data, "%g", val);
}
@@ -225,11 +221,11 @@ STR_String::STR_String(float val) :
// Create a string with a double value
//
STR_String::STR_String(double val) :
- pData(new char[32]),
- Max(32)
+ m_data(new char[STR_STRING_SIZE_DEFAULT_WORD]),
+ m_max(STR_STRING_SIZE_DEFAULT_WORD)
{
- assertd(pData != NULL);
- Len = sprintf(pData, "%g", val);
+ assertd(this->m_data != NULL);
+ this->m_len = sprintf(this->m_data, "%g", val);
}
@@ -246,17 +242,19 @@ STR_String::STR_String(double val) :
void STR_String::AllocBuffer(int len, bool keep_contents)
{
// Check if we have enough space
- if (len + 1 <= Max) return;
+ if (len + 1 <= this->m_max) return;
// Reallocate string
char *new_data = new char[len + 8];
- if (keep_contents) memcpy(new_data, pData, Len);
- delete[] pData;
+ if (keep_contents) {
+ memcpy(new_data, this->m_data, this->m_len);
+ }
+ delete[] this->m_data;
// Accept new data
- Max = len + 8;
- pData = new_data;
- assertd(pData != NULL);
+ this->m_max = len + 8;
+ this->m_data = new_data;
+ assertd(this->m_data != NULL);
}
@@ -274,12 +272,12 @@ STR_String& STR_String::Format(const char *fmt, ...)
{
AllocBuffer(2048, false);
- assertd(pData != NULL);
+ assertd(this->m_data != NULL);
// Expand arguments and format to string
va_list args;
va_start(args, fmt);
- Len = vsprintf(pData, fmt, args);
- assertd(Len <= 2048);
+ this->m_len = vsprintf(this->m_data, fmt, args);
+ assertd(this->m_len <= 2048);
va_end(args);
return *this;
@@ -294,12 +292,12 @@ STR_String& STR_String::FormatAdd(const char *fmt, ...)
{
AllocBuffer(2048, false);
- assertd(pData != NULL);
+ assertd(this->m_data != NULL);
// Expand arguments and format to string
va_list args;
va_start(args, fmt);
- Len += vsprintf(pData + Len, fmt, args);
- assertd(Len <= 2048);
+ this->m_len += vsprintf(this->m_data + this->m_len, fmt, args);
+ assertd(this->m_len <= 2048);
va_end(args);
return *this;
@@ -318,8 +316,8 @@ STR_String& STR_String::FormatAdd(const char *fmt, ...)
//
bool STR_String::IsUpper() const
{
- for (int i = 0; i < Len; i++)
- if (isLower(pData[i]))
+ for (int i = 0; i < this->m_len; i++)
+ if (isLower(this->m_data[i]))
return false;
return true;
@@ -332,8 +330,8 @@ bool STR_String::IsUpper() const
//
bool STR_String::IsLower() const
{
- for (int i = 0; i < Len; i++)
- if (isUpper(pData[i]))
+ for (int i = 0; i < this->m_len; i++)
+ if (isUpper(this->m_data[i]))
return false;
return true;
@@ -353,10 +351,10 @@ bool STR_String::IsLower() const
int STR_String::Find(char c, int pos) const
{
assertd(pos >= 0);
- assertd(Len == 0 || pos < Len);
- assertd(pData != NULL);
- char *find_pos = strchr(pData + pos, c);
- return (find_pos) ? (find_pos - pData) : -1;
+ assertd(this->m_len == 0 || pos < this->m_len);
+ assertd(this->m_data != NULL);
+ char *find_pos = strchr(this->m_data + pos, c);
+ return (find_pos) ? (find_pos - this->m_data) : -1;
}
@@ -367,10 +365,10 @@ int STR_String::Find(char c, int pos) const
int STR_String::Find(const char *str, int pos) const
{
assertd(pos >= 0);
- assertd(Len == 0 || pos < Len);
- assertd(pData != NULL);
- char *find_pos = strstr(pData + pos, str);
- return (find_pos) ? (find_pos - pData) : -1;
+ assertd(this->m_len == 0 || pos < this->m_len);
+ assertd(this->m_data != NULL);
+ char *find_pos = strstr(this->m_data + pos, str);
+ return (find_pos) ? (find_pos - this->m_data) : -1;
}
@@ -381,10 +379,10 @@ int STR_String::Find(const char *str, int pos) const
int STR_String::Find(rcSTR_String str, int pos) const
{
assertd(pos >= 0);
- assertd(Len == 0 || pos < Len);
- assertd(pData != NULL);
- char *find_pos = strstr(pData + pos, str.ReadPtr());
- return (find_pos) ? (find_pos - pData) : -1;
+ assertd(this->m_len == 0 || pos < this->m_len);
+ assertd(this->m_data != NULL);
+ char *find_pos = strstr(this->m_data + pos, str.ReadPtr());
+ return (find_pos) ? (find_pos - this->m_data) : -1;
}
@@ -394,9 +392,9 @@ int STR_String::Find(rcSTR_String str, int pos) const
//
int STR_String::RFind(char c) const
{
- assertd(pData != NULL);
- char *pos = strrchr(pData, c);
- return (pos) ? (pos - pData) : -1;
+ assertd(this->m_data != NULL);
+ char *pos = strrchr(this->m_data, c);
+ return (pos) ? (pos - this->m_data) : -1;
}
@@ -407,10 +405,10 @@ int STR_String::RFind(char c) const
int STR_String::FindOneOf(const char *set, int pos) const
{
assertd(pos >= 0);
- assertd(Len == 0 || pos < Len);
- assertd(pData != NULL);
- char *find_pos = strpbrk(pData + pos, set);
- return (find_pos) ? (find_pos - pData) : -1;
+ assertd(this->m_len == 0 || pos < this->m_len);
+ assertd(this->m_data != NULL);
+ char *find_pos = strpbrk(this->m_data + pos, set);
+ return (find_pos) ? (find_pos - this->m_data) : -1;
}
@@ -425,16 +423,16 @@ void STR_String::Replace(int pos, rcSTR_String str)
if (str.Length() < 1)
{
// Remove one character from the string
- memcpy(pData + pos, pData + pos + 1, Len - pos);
+ memcpy(this->m_data + pos, this->m_data + pos + 1, this->m_len - pos);
}
else {
// Insert zero or more characters into the string
- AllocBuffer(Len + str.Length() - 1, true);
- if (str.Length() != 1) memcpy(pData + pos + str.Length(), pData + pos + 1, Length() - pos);
- memcpy(pData + pos, str.ReadPtr(), str.Length());
+ AllocBuffer(this->m_len + str.Length() - 1, true);
+ if (str.Length() != 1) memcpy(this->m_data + pos + str.Length(), this->m_data + pos + 1, Length() - pos);
+ memcpy(this->m_data + pos, str.ReadPtr(), str.Length());
}
- Len += str.Length() - 1;
+ this->m_len += str.Length() - 1;
}
@@ -451,17 +449,17 @@ void STR_String::Replace(int pos, int num, rcSTR_String str)
if (str.Length() < num)
{
// Remove some data from the string by replacement
- memcpy(pData + pos + str.Length(), pData + pos + num, Len - pos - num + 1);
- memcpy(pData + pos, str.ReadPtr(), str.Length());
+ memcpy(this->m_data + pos + str.Length(), this->m_data + pos + num, this->m_len - pos - num + 1);
+ memcpy(this->m_data + pos, str.ReadPtr(), str.Length());
}
else {
// Insert zero or more characters into the string
- AllocBuffer(Len + str.Length() - num, true);
- if (str.Length() != num) memcpy(pData + pos + str.Length(), pData + pos + num, Length() - pos - num + 1);
- memcpy(pData + pos, str.ReadPtr(), str.Length());
+ AllocBuffer(this->m_len + str.Length() - num, true);
+ if (str.Length() != num) memcpy(this->m_data + pos + str.Length(), this->m_data + pos + num, Length() - pos - num + 1);
+ memcpy(this->m_data + pos, str.ReadPtr(), str.Length());
}
- Len += str.Length() - num;
+ this->m_len += str.Length() - num;
}
@@ -477,7 +475,7 @@ void STR_String::Replace(int pos, int num, rcSTR_String str)
//
int STR_String::Compare(rcSTR_String rhs) const
{
- return strcmp(pData, rhs.pData);
+ return strcmp(this->ReadPtr(), rhs.ReadPtr());
}
@@ -488,9 +486,9 @@ int STR_String::Compare(rcSTR_String rhs) const
int STR_String::CompareNoCase(rcSTR_String rhs) const
{
#ifdef WIN32
- return stricmp(pData, rhs.pData);
+ return stricmp(this->ReadPtr(), rhs.ReadPtr());
#else
- return strcasecmp(pData, rhs.pData);
+ return strcasecmp(this->ReadPtr(), rhs.ReadPtr());
#endif
}
@@ -507,12 +505,12 @@ int STR_String::CompareNoCase(rcSTR_String rhs) const
//
STR_String& STR_String::Upper()
{
- assertd(pData != NULL);
+ assertd(this->m_data != NULL);
#ifdef WIN32
- _strupr(pData);
+ _strupr(this->m_data);
#else
- for (int i = 0; i < Len; i++)
- pData[i] = (pData[i] >= 'a' && pData[i] <= 'z') ? pData[i] + 'A' - 'a' : pData[i];
+ for (int i = 0; i < this->m_len; i++)
+ this->m_data[i] = (this->m_data[i] >= 'a' && this->m_data[i] <= 'z') ? this->m_data[i] + 'A' - 'a' : this->m_data[i];
#endif
return *this;
}
@@ -524,12 +522,12 @@ STR_String& STR_String::Upper()
//
STR_String& STR_String::Lower()
{
- assertd(pData != NULL);
+ assertd(this->m_data != NULL);
#ifdef WIN32
- _strlwr(pData);
+ _strlwr(this->m_data);
#else
- for (int i = 0; i < Len; i++)
- pData[i] = (pData[i] >= 'A' && pData[i] <= 'Z') ? pData[i] + 'a' - 'A' : pData[i];
+ for (int i = 0; i < this->m_len; i++)
+ this->m_data[i] = (this->m_data[i] >= 'A' && this->m_data[i] <= 'Z') ? this->m_data[i] + 'a' - 'A' : this->m_data[i];
#endif
return *this;
}
@@ -541,15 +539,15 @@ STR_String& STR_String::Lower()
//
STR_String& STR_String::Capitalize()
{
- assertd(pData != NULL);
+ assertd(this->m_data != NULL);
#ifdef WIN32
- if (Len > 0) pData[0] = toupper(pData[0]);
- if (Len > 1) _strlwr(pData + 1);
+ if (this->m_len > 0) this->m_data[0] = toupper(this->m_data[0]);
+ if (this->m_len > 1) _strlwr(this->m_data + 1);
#else
- if (Len > 0)
- pData[0] = (pData[0] >= 'A' && pData[0] <= 'A') ? pData[0] + 'a' - 'A' : pData[0];
- for (int i = 1; i < Len; i++)
- pData[i] = (pData[i] >= 'a' && pData[i] <= 'z') ? pData[i] + 'A' - 'a' : pData[i];
+ if (this->m_len > 0)
+ this->m_data[0] = (this->m_data[0] >= 'A' && this->m_data[0] <= 'A') ? this->m_data[0] + 'a' - 'A' : this->m_data[0];
+ for (int i = 1; i < this->m_len; i++)
+ this->m_data[i] = (this->m_data[i] >= 'a' && this->m_data[i] <= 'z') ? this->m_data[i] + 'A' - 'a' : this->m_data[i];
#endif
return *this;
}
@@ -562,10 +560,10 @@ STR_String& STR_String::Capitalize()
STR_String& STR_String::TrimLeft()
{
int skip;
- assertd(pData != NULL);
- for (skip = 0; isSpace(pData[skip]); skip++, Len--)
+ assertd(this->m_data != NULL);
+ for (skip = 0; isSpace(this->m_data[skip]); skip++, this->m_len--)
{};
- memmove(pData, pData + skip, Len + 1);
+ memmove(this->m_data, this->m_data + skip, this->m_len + 1);
return *this;
}
@@ -576,9 +574,9 @@ STR_String& STR_String::TrimLeft()
//
STR_String& STR_String::TrimRight()
{
- assertd(pData != NULL);
- while (Len && isSpace(pData[Len - 1])) Len--;
- pData[Len] = 0;
+ assertd(this->m_data != NULL);
+ while (this->m_len && isSpace(this->m_data[this->m_len - 1])) this->m_len--;
+ this->m_data[this->m_len] = 0;
return *this;
}
@@ -602,10 +600,10 @@ STR_String& STR_String::Trim()
STR_String& STR_String::TrimLeft(char *set)
{
int skip;
- assertd(pData != NULL);
- for (skip = 0; Len && strchr(set, pData[skip]); skip++, Len--)
+ assertd(this->m_data != NULL);
+ for (skip = 0; this->m_len && strchr(set, this->m_data[skip]); skip++, this->m_len--)
{};
- memmove(pData, pData + skip, Len + 1);
+ memmove(this->m_data, this->m_data + skip, this->m_len + 1);
return *this;
}
@@ -616,9 +614,9 @@ STR_String& STR_String::TrimLeft(char *set)
//
STR_String& STR_String::TrimRight(char *set)
{
- assertd(pData != NULL);
- while (Len && strchr(set, pData[Len - 1])) Len--;
- pData[Len] = 0;
+ assertd(this->m_data != NULL);
+ while (this->m_len && strchr(set, this->m_data[this->m_len - 1])) this->m_len--;
+ this->m_data[this->m_len] = 0;
return *this;
}
@@ -642,11 +640,11 @@ STR_String& STR_String::Trim(char *set)
STR_String& STR_String::TrimQuotes()
{
// Trim quotes if they are on both sides of the string
- assertd(pData != NULL);
- if ((Len >= 2) && (pData[0] == '\"') && (pData[Len - 1] == '\"'))
+ assertd(this->m_data != NULL);
+ if ((this->m_len >= 2) && (this->m_data[0] == '\"') && (this->m_data[this->m_len - 1] == '\"'))
{
- memmove(pData, pData + 1, Len - 2 + 1);
- Len -= 2;
+ memmove(this->m_data, this->m_data + 1, this->m_len - 2 + 1);
+ this->m_len -= 2;
}
return *this;
}
@@ -666,12 +664,12 @@ rcSTR_String STR_String::Copy(const char *src, int len)
{
assertd(len >= 0);
assertd(src);
- assertd(pData != NULL);
+ assertd(this->m_data != NULL);
AllocBuffer(len, false);
- Len = len;
- memcpy(pData, src, len);
- pData[Len] = 0;
+ this->m_len = len;
+ memcpy(this->m_data, src, len);
+ this->m_data[this->m_len] = 0;
return *this;
}
@@ -683,15 +681,15 @@ rcSTR_String STR_String::Copy(const char *src, int len)
//
rcSTR_String STR_String::Concat(const char *data, int len)
{
- assertd(Len >= 0);
+ assertd(this->m_len >= 0);
assertd(len >= 0);
assertd(data);
- assertd(pData != NULL);
+ assertd(this->m_data != NULL);
- AllocBuffer(Len + len, true);
- memcpy(pData + Len, data, len);
- Len += len;
- pData[Len] = 0;
+ AllocBuffer(this->m_len + len, true);
+ memcpy(this->m_data + this->m_len, data, len);
+ this->m_len += len;
+ this->m_data[this->m_len] = 0;
return *this;
}
@@ -702,8 +700,7 @@ std::vector<STR_String> STR_String::Explode(char c) const
STR_String lcv = *this;
std::vector<STR_String> uc;
- while (lcv.Length())
- {
+ while (lcv.Length()) {
int pos = lcv.Find(c);
if (pos < 0) {
uc.push_back(lcv);
@@ -729,16 +726,15 @@ int STR_String::Serialize(pCStream stream)
int ln;
stream->Read(&ln, sizeof(ln));
AllocBuffer(ln, false);
- stream->Read(pData, ln);
- pData[ln] = '\0';
- Len = ln;
+ stream->Read(this->m_data, ln);
+ this->m_data[ln] = '\0';
+ this->m_len = ln;
}
else {
- stream->Write(&Len, sizeof(Len));
- stream->Write(pData, Len);
+ stream->Write(&this->m_len, sizeof(this->m_len));
+ stream->Write(this->m_data, this->m_len);
}
- return Len + sizeof(Len);
+ return this->m_len + sizeof(this->m_len);
}
#endif
-
diff --git a/intern/utfconv/utf_winfunc.c b/intern/utfconv/utf_winfunc.c
index 3840dc25648..18f0e808562 100644
--- a/intern/utfconv/utf_winfunc.c
+++ b/intern/utfconv/utf_winfunc.c
@@ -37,7 +37,7 @@ FILE * ufopen(const char * filename, const char * mode)
{
FILE *f = NULL;
UTF16_ENCODE(filename);
- UTF16_ENCODE (mode);
+ UTF16_ENCODE(mode);
if (filename_16 && mode_16) {
f = _wfopen(filename_16, mode_16);
@@ -79,9 +79,11 @@ int urename(const char *oldname, const char *newname )
{
int r = -1;
UTF16_ENCODE(oldname);
- UTF16_ENCODE (newname);
+ UTF16_ENCODE(newname);
- if (oldname_16 && newname_16) r = _wrename(oldname_16, newname_16);
+ if (oldname_16 && newname_16) {
+ r = _wrename(oldname_16, newname_16);
+ }
UTF16_UN_ENCODE(newname);
UTF16_UN_ENCODE(oldname);
@@ -94,7 +96,9 @@ int umkdir(const char *pathname)
BOOL r = 0;
UTF16_ENCODE(pathname);
- if (pathname_16) r = CreateDirectoryW(pathname_16, NULL);
+ if (pathname_16) {
+ r = CreateDirectoryW(pathname_16, NULL);
+ }
UTF16_UN_ENCODE(pathname);
@@ -123,7 +127,10 @@ int uput_getenv(const char *varname, char * value, size_t buffsize)
{
int r = 0;
wchar_t * str;
- if (!buffsize) return r;
+
+ if (!buffsize) {
+ return r;
+ }
UTF16_ENCODE(varname);
if (varname_16) {
@@ -133,7 +140,9 @@ int uput_getenv(const char *varname, char * value, size_t buffsize)
}
UTF16_UN_ENCODE(varname);
- if (!r) value[0] = 0;
+ if (!r) {
+ value[0] = 0;
+ }
return r;
}
@@ -143,6 +152,7 @@ int uputenv(const char *name, const char *value)
int r = -1;
UTF16_ENCODE(name);
UTF16_ENCODE(value);
+
if (name_16 && value_16) {
r = (SetEnvironmentVariableW(name_16,value_16)!= 0) ? 0 : -1;
}
diff --git a/intern/utfconv/utfconv.c b/intern/utfconv/utfconv.c
index a9b2920111d..7f7a612528d 100644
--- a/intern/utfconv/utfconv.c
+++ b/intern/utfconv/utfconv.c
@@ -219,7 +219,9 @@ int conv_utf_8_to_16(const char *in8, wchar_t *out16, size_t size16)
return err;
}
-int is_ascii(const char *in8)
+/* UNUSED FUNCTIONS */
+#if 0
+static int is_ascii(const char *in8)
{
for (; *in8; in8++)
if (0x80 & *in8) return 0;
@@ -227,7 +229,7 @@ int is_ascii(const char *in8)
return 1;
}
-void utf_8_cut_end(char *inout8, size_t maxcutpoint)
+static void utf_8_cut_end(char *inout8, size_t maxcutpoint)
{
char *cur = inout8 + maxcutpoint;
char cc;
@@ -235,7 +237,7 @@ void utf_8_cut_end(char *inout8, size_t maxcutpoint)
cc = *cur;
}
-
+#endif
char *alloc_utf_8_from_16(const wchar_t *in16, size_t add)
diff --git a/release/datafiles/.Bfont b/release/datafiles/bfont.pfb
index 364194d9ff1..8faffc3902d 100644
--- a/release/datafiles/.Bfont
+++ b/release/datafiles/bfont.pfb
Binary files differ
diff --git a/release/datafiles/clkernelstoh.py b/release/datafiles/clkernelstoh.py
deleted file mode 100755
index 9c24c9e2d03..00000000000
--- a/release/datafiles/clkernelstoh.py
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# The Original Code is Copyright (C) 2012 Blender Foundation.
-# All rights reserved.
-#
-# Contributor(s): Jeroen Bakker
-#
-# ***** END GPL LICENCE BLOCK *****
-
-# <pep8 compliant>
-
-import sys
-import os
-
-if len(sys.argv) < 2:
- sys.stdout.write("Usage: clkernelstoh <cl_file>\n")
- sys.exit(1)
-
-filename = sys.argv[1]
-
-try:
- fpin = open(filename, "r")
-except:
- sys.stdout.write("Unable to open input %s\n" % sys.argv[1])
- sys.exit(1)
-
-if filename[0:2] == "." + os.sep:
- filename = filename[2:]
-
-cname = filename + ".h"
-sys.stdout.write("Making H file <%s>\n" % cname)
-
-filename = filename.split("/")[-1].split("\\")[-1]
-filename = filename.replace(".", "_")
-
-try:
- fpout = open(cname, "w")
-except:
- sys.stdout.write("Unable to open output %s\n" % cname)
- sys.exit(1)
-
-fpout.write("/* clkernelstoh output of file <%s> */\n\n" % filename)
-fpout.write("const char * clkernelstoh_%s = " % filename)
-
-lines = fpin.readlines()
-for line in lines:
- fpout.write("\"")
- fpout.write(line.rstrip())
- fpout.write("\\n\" \\\n")
-fpout.write("\"\\0\";\n")
-
-fpin.close()
-fpout.close()
diff --git a/release/datafiles/colormanagement/config.ocio b/release/datafiles/colormanagement/config.ocio
new file mode 100644
index 00000000000..d73561338ba
--- /dev/null
+++ b/release/datafiles/colormanagement/config.ocio
@@ -0,0 +1,287 @@
+# OpenCOlorIO configuration file for Blender
+#
+# Based on aces, nuke-default and spi configurations from OpenColorIO-Config
+
+ocio_profile_version: 1
+
+search_path: luts
+strictparsing: true
+luma: [0.2126, 0.7152, 0.0722]
+
+description: RRT version ut33
+
+roles:
+ reference: Linear
+
+ # Internal scene linear space
+ scene_linear: Linear
+
+ # Default color space for byte image
+ default_byte: sRGB
+
+ # Default color space for float images
+ default_float: Linear
+
+ # Default color space sequencer is working in
+ default_sequencer: sRGB
+
+ # Color spaces for color picking and exture painting (not internally supported yet)
+ color_picking: Raw
+ texture_paint: Raw
+
+displays:
+ sRGB:
+ - !<View> {name: Default, colorspace: sRGB}
+ - !<View> {name: RRT, colorspace: rrt_srgb}
+ - !<View> {name: Film, colorspace: srgb8}
+ - !<View> {name: Raw, colorspace: Raw}
+ - !<View> {name: Log, colorspace: lg10}
+ DCI-P3:
+ - !<View> {name: RRT, colorspace: rrt_p3dci}
+ - !<View> {name: Film, colorspace: p3dci8}
+ - !<View> {name: Raw, colorspace: Raw}
+ - !<View> {name: Log, colorspace: adx10}
+ Rec709:
+ - !<View> {name: Default, colorspace: nuke_rec709}
+ - !<View> {name: RRT, colorspace: rrt_rec709}
+ XYZ:
+ - !<View> {name: Default, colorspace: XYZ}
+ - !<View> {name: RRT, colorspace: rrt_xyz}
+ - !<View> {name: DCI, colorspace: dci_xyz}
+ - !<View> {name: Raw, colorspace: Raw}
+ - !<View> {name: Log, colorspace: adx10}
+ None:
+ - !<View> {name: Default, colorspace: Raw}
+
+active_displays: [sRGB, DCIP3, Rec709, XYZ, None]
+active_views: [Default, RRT, Raw, Log]
+
+colorspaces:
+ - !<ColorSpace>
+ name: Linear
+ family: aces
+ equalitygroup:
+ bitdepth: 32f
+ description: |
+ Rec. 709 (Full Range), Blender native linear space
+ isdata: false
+ allocation: lg2
+ allocationvars: [-8.5, 5]
+
+ - !<ColorSpace>
+ name: Raw
+ family: raw
+ equalitygroup:
+ bitdepth: 32f
+ isdata: true
+ allocation: uniform
+ allocationvars: [0, 1]
+
+ - !<ColorSpace>
+ name: adx10
+ family: display
+ equalitygroup:
+ bitdepth: 10ui
+ description: |
+ Film Scan, using the 10-bit Academy Density Encoding
+
+ isdata: false
+ allocation: uniform
+ allocationvars: [0, 1]
+ to_reference: !<GroupTransform>
+ children:
+ - !<FileTransform> {src: adx_adx10_to_cdd.spimtx}
+ - !<FileTransform> {src: adx_cdd_to_cid.spimtx}
+ - !<FileTransform> {src: adx_cid_to_rle.spi1d, interpolation: linear}
+ - !<LogTransform> {base: 10, direction: inverse}
+ - !<FileTransform> {src: adx_exp_to_aces.spimtx}
+ - !<FileTransform> {src: rec709_to_aces.spimtx, interpolation: linear, direction: inverse}
+
+ - !<ColorSpace>
+ name: Linear ACES
+ family:
+ equalitygroup:
+ bitdepth: 32f
+ description: |
+ ACES linear space
+ isdata: false
+ allocation: uniform
+ allocationvars: [-8.5, 5]
+ to_reference: !<FileTransform> {src: rec709_to_aces.spimtx, interpolation: linear, direction: inverse}
+
+ - !<ColorSpace>
+ name: rrt_srgb
+ family: rrt
+ equalitygroup:
+ bitdepth: 32f
+ isdata: false
+ allocation: uniform
+ allocationvars: [0, 1]
+ from_reference: !<GroupTransform>
+ children:
+ - !<FileTransform> {src: rec709_to_aces.spimtx, interpolation: nearest}
+ - !<AllocationTransform> {allocation: lg2, vars: [-8.5, 5]}
+ - !<FileTransform> {src: rrt_ut33_sRGB.spi3d, interpolation: tetrahedral}
+
+ - !<ColorSpace>
+ name: nuke_rec709
+ family: display
+ equalitygroup:
+ bitdepth: 32f
+ description: |
+ Rec. 709 (Full Range) Display Space
+ isdata: false
+ allocation: uniform
+ allocationvars: [-0.125, 1.125]
+ to_reference: !<GroupTransform>
+ children:
+ - !<FileTransform> {src: rec709.spi1d, interpolation: linear}
+
+ - !<ColorSpace>
+ name: rrt_rec709
+ family: rrt
+ equalitygroup:
+ bitdepth: 32f
+ isdata: false
+ allocation: uniform
+ allocationvars: [0, 1]
+ from_reference: !<GroupTransform>
+ children:
+ - !<FileTransform> {src: rec709_to_aces.spimtx, interpolation: nearest}
+ - !<AllocationTransform> {allocation: lg2, vars: [-8.5, 5]}
+ - !<FileTransform> {src: rrt_ut33_rec709.spi3d, interpolation: tetrahedral}
+
+ - !<ColorSpace>
+ name: rrt_p3dci
+ family: rrt
+ equalitygroup:
+ bitdepth: 32f
+ isdata: false
+ allocation: uniform
+ allocationvars: [0, 1]
+ from_reference: !<GroupTransform>
+ children:
+ - !<FileTransform> {src: rec709_to_aces.spimtx, interpolation: nearest}
+ - !<AllocationTransform> {allocation: lg2, vars: [-8.5, 5]}
+ - !<FileTransform> {src: rrt_ut33_p3dci.spi3d, interpolation: tetrahedral}
+
+ - !<ColorSpace>
+ name: XYZ
+ family:
+ equalitygroup:
+ bitdepth: 32f
+ isdata: false
+ allocation: uniform
+ allocationvars: [0, 1]
+ from_reference: !<GroupTransform>
+ children:
+ - !<FileTransform> {src: rec709_to_aces.spimtx, interpolation: nearest}
+ - !<FileTransform> {src: aces_to_xyz.spimtx, interpolation: linear}
+
+ - !<ColorSpace>
+ name: rrt_xyz
+ family: rrt
+ equalitygroup:
+ bitdepth: 32f
+ isdata: false
+ allocation: uniform
+ allocationvars: [0, 1]
+ from_reference: !<GroupTransform>
+ children:
+ - !<FileTransform> {src: rec709_to_aces.spimtx, interpolation: nearest}
+ - !<AllocationTransform> {allocation: lg2, vars: [-8.5, 5]}
+ - !<FileTransform> {src: rrt_ut33_dcdm.spi3d, interpolation: tetrahedral}
+
+ - !<ColorSpace>
+ name: dci_xyz
+ family: display
+ equalitygroup:
+ bitdepth: 16f
+ description: |
+ OpenDCP output LUT with DCI reference white and Gamma 2.6
+ isdata: false
+ allocation: uniform
+ allocationvars: [0, 1]
+ from_reference: !<GroupTransform>
+ children:
+ - !<FileTransform> {src: srgb_to_xyz.spimtx, interpolation: linear}
+ - !<FileTransform> {src: dci_xyz.spi1d, interpolation: linear}
+
+ - !<ColorSpace>
+ name: lg10
+ family: display
+ equalitygroup:
+ bitdepth: 10ui
+ description: |
+ conversion from film log
+ isdata: false
+ allocation: uniform
+ to_reference: !<GroupTransform>
+ children:
+ - !<FileTransform> {src: lg10.spi1d, interpolation: nearest}
+
+ - !<ColorSpace>
+ name: srgb8
+ family: display
+ equalitygroup:
+ bitdepth: 8ui
+ description: |
+ RGB display space for the sRGB standard.
+ isdata: false
+ allocation: uniform
+ from_reference: !<GroupTransform>
+ children:
+ - !<ColorSpaceTransform> {src: Linear, dst: lg10}
+ - !<FileTransform> {src: spi_ocio_srgb_test.spi3d, interpolation: linear}
+
+ - !<ColorSpace>
+ name: sRGB
+ family:
+ equalitygroup:
+ bitdepth: 32f
+ description: |
+ Standard RGB Display Space
+ isdata: false
+ allocation: uniform
+ allocationvars: [-0.125, 1.125]
+ to_reference: !<GroupTransform>
+ children:
+ - !<FileTransform> {src: srgb.spi1d, interpolation: linear}
+
+ - !<ColorSpace>
+ name: VD16
+ family: vd
+ equalitygroup:
+ bitdepth: 16ui
+ description: |
+ The simple video conversion from a gamma 2.2 sRGB space
+ isdata: false
+ allocation: uniform
+ to_reference: !<GroupTransform>
+ children:
+ - !<FileTransform> {src: vd16.spi1d, interpolation: nearest}
+
+ - !<ColorSpace>
+ name: Non-Color
+ family: raw
+ description: |
+ Color space used for images which contains non-color data (i,e, normal maps)
+ equalitygroup:
+ bitdepth: 32f
+ isdata: true
+ allocation: uniform
+ allocationvars: [0, 1]
+
+ - !<ColorSpace>
+ name: p3dci8
+ family: display
+ equalitygroup:
+ bitdepth: 8ui
+ description: |
+ p3dci8 :rgb display space for gamma 2.6 P3 projection.
+ isdata: false
+ allocation: uniform
+ from_reference: !<GroupTransform>
+ children:
+ - !<ColorSpaceTransform> {src: Linear, dst: lg10}
+ - !<FileTransform> {src: colorworks_filmlg_to_p3.3dl, interpolation: linear}
diff --git a/release/datafiles/colormanagement/luts/aces_to_xyz.spimtx b/release/datafiles/colormanagement/luts/aces_to_xyz.spimtx
new file mode 100644
index 00000000000..fbf52e63555
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/aces_to_xyz.spimtx
@@ -0,0 +1,3 @@
+0.9525523959 0.0000000000 0.0000936786 0
+0.3439664498 0.7281660966 -0.072132546 0
+0.0000000000 0.0000000000 1.0088251844 0
diff --git a/release/datafiles/colormanagement/luts/adx_adx10_to_cdd.spimtx b/release/datafiles/colormanagement/luts/adx_adx10_to_cdd.spimtx
new file mode 100644
index 00000000000..b1c5c9ecc03
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/adx_adx10_to_cdd.spimtx
@@ -0,0 +1,4 @@
+2.046 0.0 0.0 -12451.65
+0.0 2.046 0.0 -12451.65
+0.0 0.0 2.046 -12451.65
+
diff --git a/release/datafiles/colormanagement/luts/adx_cdd_to_cid.spimtx b/release/datafiles/colormanagement/luts/adx_cdd_to_cid.spimtx
new file mode 100644
index 00000000000..21eff9588c0
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/adx_cdd_to_cid.spimtx
@@ -0,0 +1,4 @@
+0.75573 0.22197 0.02230 0
+0.05901 0.96928 -0.02829 0
+0.16134 0.07406 0.76460 0
+
diff --git a/release/datafiles/colormanagement/luts/adx_cid_to_rle.spi1d b/release/datafiles/colormanagement/luts/adx_cid_to_rle.spi1d
new file mode 100644
index 00000000000..26b5ae90e85
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/adx_cid_to_rle.spi1d
@@ -0,0 +1,4102 @@
+Version 1
+From -0.19 3.0
+Length 4096
+Components 1
+{
+ -6.0
+ -5.98723111414
+ -5.97446222827
+ -5.96169334241
+ -5.94892445654
+ -5.93615557068
+ -5.92338668482
+ -5.91061779895
+ -5.89784891309
+ -5.88508002723
+ -5.87231114136
+ -5.8595422555
+ -5.84677336963
+ -5.83400448377
+ -5.82123559791
+ -5.80846671204
+ -5.79569782618
+ -5.78292894032
+ -5.77016005445
+ -5.75739116859
+ -5.74462228272
+ -5.73185339686
+ -5.719084511
+ -5.70631562513
+ -5.69354673927
+ -5.68077785341
+ -5.66800896754
+ -5.65524008168
+ -5.64247119581
+ -5.62970230995
+ -5.61693342409
+ -5.60416453822
+ -5.59139565236
+ -5.57862676649
+ -5.56585788063
+ -5.55308899477
+ -5.5403201089
+ -5.52755122304
+ -5.51478233718
+ -5.50201345131
+ -5.48924456545
+ -5.47647567958
+ -5.46370679372
+ -5.45093790786
+ -5.43816902199
+ -5.42540013613
+ -5.41263125027
+ -5.3998623644
+ -5.38709347854
+ -5.37432459267
+ -5.36155570681
+ -5.34878682095
+ -5.33601793508
+ -5.32324904922
+ -5.31048016335
+ -5.29771127749
+ -5.28494239163
+ -5.27217350576
+ -5.2594046199
+ -5.24663573404
+ -5.23386684817
+ -5.22109796231
+ -5.20832907644
+ -5.19556019058
+ -5.18279130472
+ -5.17002241885
+ -5.15725353299
+ -5.14448464713
+ -5.13171576126
+ -5.1189468754
+ -5.10617798953
+ -5.09340910367
+ -5.08064021781
+ -5.06787133194
+ -5.05510244608
+ -5.04233356022
+ -5.02956467435
+ -5.01679578849
+ -5.00402690262
+ -4.99125801676
+ -4.9784891309
+ -4.96572024503
+ -4.95295135917
+ -4.9401824733
+ -4.92741358744
+ -4.91464470158
+ -4.90187581571
+ -4.88910692985
+ -4.87633804399
+ -4.86356915812
+ -4.85080027226
+ -4.83803138639
+ -4.82526250053
+ -4.81249361467
+ -4.7997247288
+ -4.78695584294
+ -4.77418695708
+ -4.76141807121
+ -4.74864918535
+ -4.73588029948
+ -4.72311141362
+ -4.71034252776
+ -4.69757364189
+ -4.68480475603
+ -4.67203587017
+ -4.6592669843
+ -4.64649809844
+ -4.63372921257
+ -4.62096032671
+ -4.60819144085
+ -4.59542255498
+ -4.58265366912
+ -4.56988478325
+ -4.55711589739
+ -4.54434701153
+ -4.53157812566
+ -4.5188092398
+ -4.50604035394
+ -4.49327146807
+ -4.48050258221
+ -4.46773369634
+ -4.45496481048
+ -4.44219592462
+ -4.42942703875
+ -4.41665815289
+ -4.40388926703
+ -4.39112038116
+ -4.3783514953
+ -4.36558260943
+ -4.35281372357
+ -4.34004483771
+ -4.32727595184
+ -4.31450706598
+ -4.30173818011
+ -4.28896929425
+ -4.27620040839
+ -4.26343152252
+ -4.25066263666
+ -4.2378937508
+ -4.22512486493
+ -4.21235597907
+ -4.1995870932
+ -4.18681820734
+ -4.17404932148
+ -4.16128043561
+ -4.14851154975
+ -4.13574266389
+ -4.12297377802
+ -4.11020489216
+ -4.09743600629
+ -4.08466712043
+ -4.07189823457
+ -4.0591293487
+ -4.04636046284
+ -4.03359157698
+ -4.02082269111
+ -4.00805380525
+ -3.99528491938
+ -3.98251603352
+ -3.96974714766
+ -3.95697826179
+ -3.94420937593
+ -3.93144049006
+ -3.9186716042
+ -3.90590271834
+ -3.89313383247
+ -3.88036494661
+ -3.86759606075
+ -3.85482717488
+ -3.84205828902
+ -3.82928940315
+ -3.81652051729
+ -3.80375163143
+ -3.79098274556
+ -3.7782138597
+ -3.76544497384
+ -3.75267608797
+ -3.73990720211
+ -3.72713831624
+ -3.71436943038
+ -3.70160054452
+ -3.68883165865
+ -3.67606277279
+ -3.66329388693
+ -3.65052500106
+ -3.6377561152
+ -3.62498722933
+ -3.61221834347
+ -3.59944945761
+ -3.58668057174
+ -3.57391168588
+ -3.56114280001
+ -3.54837391415
+ -3.53560502829
+ -3.52283614242
+ -3.51006725656
+ -3.4972983707
+ -3.48452948483
+ -3.47176059897
+ -3.4589917131
+ -3.44622282724
+ -3.43345394138
+ -3.42068505551
+ -3.40791616965
+ -3.39514728379
+ -3.38237839792
+ -3.36960951206
+ -3.35684062619
+ -3.34407174033
+ -3.33130285447
+ -3.3185339686
+ -3.30576508274
+ -3.29299619687
+ -3.28022731101
+ -3.26745842515
+ -3.25468953928
+ -3.24192065342
+ -3.22915176756
+ -3.21638288169
+ -3.20361399583
+ -3.19084510996
+ -3.1780762241
+ -3.16530733824
+ -3.15253845237
+ -3.13976956651
+ -3.12700068065
+ -3.11423179478
+ -3.10146290892
+ -3.08869402305
+ -3.07592513719
+ -3.06315625133
+ -3.05038736546
+ -3.0376184796
+ -3.02484959374
+ -3.01208070787
+ -2.99931182201
+ -2.98654293614
+ -2.97377405028
+ -2.96100516442
+ -2.94823627855
+ -2.93546739269
+ -2.92269850682
+ -2.90992962096
+ -2.8971607351
+ -2.88439184923
+ -2.87162296337
+ -2.85885407751
+ -2.84608519164
+ -2.83331630578
+ -2.82054741991
+ -2.80777853405
+ -2.79500964819
+ -2.78224076232
+ -2.76947187646
+ -2.7567029906
+ -2.74393410473
+ -2.73116521887
+ -2.71946657608
+ -2.71081103409
+ -2.7021554921
+ -2.69349995011
+ -2.68484440813
+ -2.67618886614
+ -2.66753332415
+ -2.65887778216
+ -2.65022224017
+ -2.64156669818
+ -2.63291115619
+ -2.6242556142
+ -2.61560007221
+ -2.60694453023
+ -2.59828898824
+ -2.58963344625
+ -2.58097790426
+ -2.57232236227
+ -2.56366682028
+ -2.55501127829
+ -2.5463557363
+ -2.53770019431
+ -2.52904465233
+ -2.52079819793
+ -2.51480589963
+ -2.50881360133
+ -2.50282130303
+ -2.49682900473
+ -2.49083670643
+ -2.48484440813
+ -2.47885210983
+ -2.47285981153
+ -2.46686751323
+ -2.46087521493
+ -2.45488291663
+ -2.44889061833
+ -2.44289832003
+ -2.43690602173
+ -2.43091372343
+ -2.42492142513
+ -2.41892912683
+ -2.41293682853
+ -2.40694453023
+ -2.40095223193
+ -2.39495993363
+ -2.38896763533
+ -2.38297533703
+ -2.37698303873
+ -2.37099074043
+ -2.36499844213
+ -2.35900614383
+ -2.35301384553
+ -2.34702154723
+ -2.34102924893
+ -2.33503695063
+ -2.32904465233
+ -2.32305235403
+ -2.31876441766
+ -2.31496442361
+ -2.31116442957
+ -2.30736443552
+ -2.30356444148
+ -2.29976444744
+ -2.29596445339
+ -2.29216445935
+ -2.2883644653
+ -2.28456447126
+ -2.28076447722
+ -2.27696448317
+ -2.27316448913
+ -2.26936449508
+ -2.26556450104
+ -2.261764507
+ -2.25796451295
+ -2.25416451891
+ -2.25036452487
+ -2.24656453082
+ -2.24276453678
+ -2.23896454273
+ -2.23516454869
+ -2.23136455465
+ -2.2275645606
+ -2.22376456656
+ -2.21996457251
+ -2.21616457847
+ -2.21236458443
+ -2.20856459038
+ -2.20476459634
+ -2.20096460229
+ -2.19716460825
+ -2.19336461421
+ -2.18956462016
+ -2.18576462612
+ -2.18196463208
+ -2.17816463803
+ -2.17436464399
+ -2.17056464994
+ -2.1667646559
+ -2.16296466186
+ -2.15916466781
+ -2.15536467377
+ -2.15156467972
+ -2.14776468568
+ -2.14396469164
+ -2.14016469759
+ -2.13636470355
+ -2.1325647095
+ -2.12876471546
+ -2.12496472142
+ -2.12126443255
+ -2.11814843743
+ -2.11503244231
+ -2.1119164472
+ -2.10880045208
+ -2.10568445697
+ -2.10256846185
+ -2.09945246673
+ -2.09633647162
+ -2.0932204765
+ -2.09010448139
+ -2.08698848627
+ -2.08387249115
+ -2.08075649604
+ -2.07764050092
+ -2.07452450581
+ -2.07140851069
+ -2.06829251557
+ -2.06517652046
+ -2.06206052534
+ -2.05894453023
+ -2.05582853511
+ -2.05271253999
+ -2.04959654488
+ -2.04648054976
+ -2.04336455465
+ -2.04024855953
+ -2.03713256441
+ -2.0340165693
+ -2.03090057418
+ -2.02778457907
+ -2.02466858395
+ -2.02155258883
+ -2.01843659372
+ -2.0153205986
+ -2.01220460349
+ -2.00908860837
+ -2.00597261325
+ -2.00285661814
+ -1.99974062302
+ -1.99662462791
+ -1.99350863279
+ -1.99039263767
+ -1.98727664256
+ -1.98416064744
+ -1.98104465233
+ -1.97792865721
+ -1.97481266209
+ -1.97169666698
+ -1.96858067186
+ -1.96546467675
+ -1.96234868163
+ -1.95923268651
+ -1.9561166914
+ -1.95300069628
+ -1.94988470117
+ -1.94676870605
+ -1.94365271093
+ -1.94053671582
+ -1.9374207207
+ -1.93430472559
+ -1.93118873047
+ -1.92807273535
+ -1.92495674024
+ -1.92184074512
+ -1.919722715
+ -1.91764538493
+ -1.91556805485
+ -1.91349072477
+ -1.91141339469
+ -1.90933606462
+ -1.90725873454
+ -1.90518140446
+ -1.90310407439
+ -1.90102674431
+ -1.89894941423
+ -1.89687208415
+ -1.89479475408
+ -1.892717424
+ -1.89064009392
+ -1.88856276384
+ -1.88648543377
+ -1.88440810369
+ -1.88233077361
+ -1.88025344353
+ -1.87817611346
+ -1.87609878338
+ -1.8740214533
+ -1.87194412323
+ -1.86986679315
+ -1.86778946307
+ -1.86571213299
+ -1.86363480292
+ -1.86155747284
+ -1.85948014276
+ -1.85740281268
+ -1.85532548261
+ -1.85324815253
+ -1.85117082245
+ -1.84909349237
+ -1.8470161623
+ -1.84493883222
+ -1.84286150214
+ -1.84078417207
+ -1.83870684199
+ -1.83662951191
+ -1.83455218183
+ -1.83247485176
+ -1.83039752168
+ -1.8283201916
+ -1.82624286152
+ -1.82416553145
+ -1.82208820137
+ -1.82001087129
+ -1.81793354121
+ -1.81585621114
+ -1.81377888106
+ -1.81170155098
+ -1.80962422091
+ -1.80754689083
+ -1.80546956075
+ -1.80339223067
+ -1.8013149006
+ -1.79923757052
+ -1.79716024044
+ -1.79508291036
+ -1.79300558029
+ -1.79092825021
+ -1.78885092013
+ -1.78677359005
+ -1.78469625998
+ -1.7826189299
+ -1.78054159982
+ -1.77846426975
+ -1.77638693967
+ -1.77430960959
+ -1.77223227951
+ -1.77015494944
+ -1.76807761936
+ -1.76600028928
+ -1.7639229592
+ -1.76184562913
+ -1.75976829905
+ -1.75769096897
+ -1.75561363889
+ -1.75353630882
+ -1.75145897874
+ -1.74938164866
+ -1.74730431859
+ -1.74522698851
+ -1.74314965843
+ -1.74107232835
+ -1.73899499828
+ -1.7369176682
+ -1.73484033812
+ -1.73276300804
+ -1.73068567797
+ -1.72860834789
+ -1.72653101781
+ -1.72445368774
+ -1.72237635766
+ -1.72038775367
+ -1.71844025672
+ -1.71649275977
+ -1.71454526283
+ -1.71259776588
+ -1.71065026893
+ -1.70870277198
+ -1.70675527504
+ -1.70480777809
+ -1.70286028114
+ -1.70091278419
+ -1.69896528725
+ -1.6970177903
+ -1.69507029335
+ -1.6931227964
+ -1.69117529946
+ -1.68922780251
+ -1.68728030556
+ -1.68533280861
+ -1.68338531167
+ -1.68143781472
+ -1.67949031777
+ -1.67754282082
+ -1.67559532388
+ -1.67364782693
+ -1.67170032998
+ -1.66975283303
+ -1.66780533609
+ -1.66585783914
+ -1.66391034219
+ -1.66196284524
+ -1.6600153483
+ -1.65806785135
+ -1.6561203544
+ -1.65417285745
+ -1.65222536051
+ -1.65027786356
+ -1.64833036661
+ -1.64638286966
+ -1.64443537272
+ -1.64248787577
+ -1.64054037882
+ -1.63859288187
+ -1.63664538493
+ -1.63469788798
+ -1.63275039103
+ -1.63080289408
+ -1.62885539714
+ -1.62690790019
+ -1.62496040324
+ -1.62301290629
+ -1.62106540935
+ -1.6191179124
+ -1.61717041545
+ -1.6152229185
+ -1.61327542156
+ -1.61132792461
+ -1.60938042766
+ -1.60743293071
+ -1.60548543377
+ -1.60353793682
+ -1.60159043987
+ -1.59964294292
+ -1.59769544598
+ -1.59574794903
+ -1.59380045208
+ -1.59185295513
+ -1.58990545819
+ -1.58795796124
+ -1.58601046429
+ -1.58406296734
+ -1.5821154704
+ -1.58016797345
+ -1.5782204765
+ -1.57627297955
+ -1.57432548261
+ -1.57237798566
+ -1.57043048871
+ -1.56848299176
+ -1.56653549482
+ -1.56458799787
+ -1.56264050092
+ -1.56069300397
+ -1.55874550703
+ -1.55679801008
+ -1.55485051313
+ -1.55290301618
+ -1.55095551924
+ -1.54900802229
+ -1.54706052534
+ -1.54511302839
+ -1.54316553145
+ -1.5412180345
+ -1.53927053755
+ -1.5373230406
+ -1.53537554366
+ -1.53342804671
+ -1.53148054976
+ -1.52953305281
+ -1.52758555587
+ -1.52563805892
+ -1.52369056197
+ -1.52174306502
+ -1.52018018346
+ -1.5186221859
+ -1.51706418835
+ -1.51550619079
+ -1.51394819323
+ -1.51239019567
+ -1.51083219811
+ -1.50927420056
+ -1.507716203
+ -1.50615820544
+ -1.50460020788
+ -1.50304221032
+ -1.50148421277
+ -1.49992621521
+ -1.49836821765
+ -1.49681022009
+ -1.49525222253
+ -1.49369422498
+ -1.49213622742
+ -1.49057822986
+ -1.4890202323
+ -1.48746223474
+ -1.48590423719
+ -1.48434623963
+ -1.48278824207
+ -1.48123024451
+ -1.47967224695
+ -1.4781142494
+ -1.47655625184
+ -1.47499825428
+ -1.47344025672
+ -1.47188225916
+ -1.47032426161
+ -1.46876626405
+ -1.46720826649
+ -1.46565026893
+ -1.46409227137
+ -1.46253427382
+ -1.46097627626
+ -1.4594182787
+ -1.45786028114
+ -1.45630228358
+ -1.45474428603
+ -1.45318628847
+ -1.45162829091
+ -1.45007029335
+ -1.44851229579
+ -1.44695429824
+ -1.44539630068
+ -1.44383830312
+ -1.44228030556
+ -1.440722308
+ -1.43916431045
+ -1.43760631289
+ -1.43604831533
+ -1.43449031777
+ -1.43293232021
+ -1.43137432266
+ -1.4298163251
+ -1.42825832754
+ -1.42670032998
+ -1.42514233242
+ -1.42358433487
+ -1.42202633731
+ -1.42046833975
+ -1.41891034219
+ -1.41735234463
+ -1.41579434708
+ -1.41423634952
+ -1.41267835196
+ -1.4111203544
+ -1.40956235684
+ -1.40800435929
+ -1.40644636173
+ -1.40488836417
+ -1.40333036661
+ -1.40177236905
+ -1.4002143715
+ -1.39865637394
+ -1.39709837638
+ -1.39554037882
+ -1.39398238126
+ -1.39242438371
+ -1.39086638615
+ -1.38930838859
+ -1.38775039103
+ -1.38619239347
+ -1.38463439592
+ -1.38307639836
+ -1.3815184008
+ -1.37996040324
+ -1.37840240568
+ -1.37684440813
+ -1.37528641057
+ -1.37372841301
+ -1.37217041545
+ -1.37061241789
+ -1.36905442034
+ -1.36749642278
+ -1.36593842522
+ -1.36438042766
+ -1.3628224301
+ -1.36126443255
+ -1.35970643499
+ -1.35814843743
+ -1.35659043987
+ -1.35503244231
+ -1.35347444476
+ -1.3519164472
+ -1.35035844964
+ -1.34880045208
+ -1.34724245452
+ -1.34568445697
+ -1.34412645941
+ -1.34256846185
+ -1.34101046429
+ -1.33945246673
+ -1.33789446918
+ -1.33633647162
+ -1.33477847406
+ -1.3332204765
+ -1.33166247894
+ -1.33010448139
+ -1.32854648383
+ -1.32698848627
+ -1.32543048871
+ -1.32387249115
+ -1.3223144936
+ -1.32075649604
+ -1.31919849848
+ -1.31764050092
+ -1.31608250336
+ -1.31452450581
+ -1.31296650825
+ -1.31140851069
+ -1.30985051313
+ -1.30829251557
+ -1.30673451802
+ -1.30517652046
+ -1.3036185229
+ -1.30206052534
+ -1.30050252778
+ -1.29894453023
+ -1.29738653267
+ -1.29582853511
+ -1.29427053755
+ -1.29271253999
+ -1.29115454244
+ -1.28959654488
+ -1.28803854732
+ -1.28648054976
+ -1.2849225522
+ -1.28336455465
+ -1.28180655709
+ -1.28024855953
+ -1.27869056197
+ -1.27713256441
+ -1.27557456686
+ -1.2740165693
+ -1.27245857174
+ -1.27090057418
+ -1.26934257662
+ -1.26778457907
+ -1.26622658151
+ -1.26466858395
+ -1.26311058639
+ -1.26155258883
+ -1.25999459128
+ -1.25843659372
+ -1.25687859616
+ -1.2553205986
+ -1.25376260104
+ -1.25220460349
+ -1.25064660593
+ -1.24908860837
+ -1.24753061081
+ -1.24597261325
+ -1.2444146157
+ -1.24285661814
+ -1.24129862058
+ -1.23974062302
+ -1.23818262546
+ -1.23662462791
+ -1.23506663035
+ -1.23350863279
+ -1.23195063523
+ -1.23039263767
+ -1.22883464012
+ -1.22727664256
+ -1.225718645
+ -1.22416064744
+ -1.22260264988
+ -1.22104465233
+ -1.21948665477
+ -1.21792865721
+ -1.21637065965
+ -1.21481266209
+ -1.21325466454
+ -1.21169666698
+ -1.21013866942
+ -1.20858067186
+ -1.2070226743
+ -1.20546467675
+ -1.20390667919
+ -1.20234868163
+ -1.20079068407
+ -1.19923268651
+ -1.19767468896
+ -1.1961166914
+ -1.19455869384
+ -1.19300069628
+ -1.19144269872
+ -1.18988470117
+ -1.18832670361
+ -1.18676870605
+ -1.18521070849
+ -1.18365271093
+ -1.18209471338
+ -1.18053671582
+ -1.17897871826
+ -1.1774207207
+ -1.17586272314
+ -1.17430472559
+ -1.17274672803
+ -1.17118873047
+ -1.16963073291
+ -1.16807273535
+ -1.1665147378
+ -1.16495674024
+ -1.16339874268
+ -1.16184074512
+ -1.16028274756
+ -1.15872475001
+ -1.15716675245
+ -1.15560875489
+ -1.15405075733
+ -1.15249275977
+ -1.15093476222
+ -1.14937676466
+ -1.1478187671
+ -1.14626076954
+ -1.14470277198
+ -1.14314477443
+ -1.14158677687
+ -1.14002877931
+ -1.13847078175
+ -1.13691278419
+ -1.13535478664
+ -1.13379678908
+ -1.13223879152
+ -1.13068079396
+ -1.1291227964
+ -1.12756479885
+ -1.12600680129
+ -1.12444880373
+ -1.12289080617
+ -1.12134212084
+ -1.1198217258
+ -1.11830133076
+ -1.11678093572
+ -1.11526054068
+ -1.11374014564
+ -1.1122197506
+ -1.11069935556
+ -1.10917896052
+ -1.10765856548
+ -1.10613817044
+ -1.1046177754
+ -1.10309738036
+ -1.10157698532
+ -1.10005659028
+ -1.09853619524
+ -1.0970158002
+ -1.09549540516
+ -1.09397501012
+ -1.09245461508
+ -1.09093422004
+ -1.089413825
+ -1.08789342996
+ -1.08637303492
+ -1.08485263988
+ -1.08333224484
+ -1.0818118498
+ -1.08029145476
+ -1.07877105972
+ -1.07725066468
+ -1.07573026964
+ -1.0742098746
+ -1.07268947956
+ -1.07116908452
+ -1.06964868948
+ -1.06812829444
+ -1.0666078994
+ -1.06508750436
+ -1.06356710932
+ -1.06204671428
+ -1.06052631924
+ -1.0590059242
+ -1.05748552916
+ -1.05596513412
+ -1.05444473908
+ -1.05292434404
+ -1.051403949
+ -1.04988355396
+ -1.04836315892
+ -1.04684276388
+ -1.04532236884
+ -1.0438019738
+ -1.04228157876
+ -1.04076118372
+ -1.03924078868
+ -1.03772039364
+ -1.0361999986
+ -1.03467960356
+ -1.03315920852
+ -1.03163881348
+ -1.03011841844
+ -1.0285980234
+ -1.02707762836
+ -1.02555723332
+ -1.02403683828
+ -1.02251644324
+ -1.0209960482
+ -1.01947565316
+ -1.01795525812
+ -1.01643486309
+ -1.01491446805
+ -1.01339407301
+ -1.01187367797
+ -1.01035328293
+ -1.00883288789
+ -1.00731249285
+ -1.00579209781
+ -1.00427170277
+ -1.00275130773
+ -1.00123091269
+ -0.999710517646
+ -0.998190122606
+ -0.996669727567
+ -0.995149332527
+ -0.993628937487
+ -0.992108542447
+ -0.990588147407
+ -0.989067752367
+ -0.987547357327
+ -0.986026962287
+ -0.984506567248
+ -0.982986172208
+ -0.981465777168
+ -0.979945382128
+ -0.978424987088
+ -0.976904592048
+ -0.975384197008
+ -0.973863801968
+ -0.972343406929
+ -0.970823011889
+ -0.969302616849
+ -0.967782221809
+ -0.966261826769
+ -0.964741431729
+ -0.963221036689
+ -0.961700641649
+ -0.96018024661
+ -0.95865985157
+ -0.95713945653
+ -0.95561906149
+ -0.95409866645
+ -0.95257827141
+ -0.95105787637
+ -0.94953748133
+ -0.948017086291
+ -0.946496691251
+ -0.944976296211
+ -0.943455901171
+ -0.941935506131
+ -0.940415111091
+ -0.938894716051
+ -0.937374321011
+ -0.935853925972
+ -0.934333530932
+ -0.932813135892
+ -0.931292740852
+ -0.929772345812
+ -0.928251950772
+ -0.926731555732
+ -0.925302475472
+ -0.923886114055
+ -0.922469752639
+ -0.921053391223
+ -0.919637029806
+ -0.91822066839
+ -0.916804306974
+ -0.915387945557
+ -0.913971584141
+ -0.912555222724
+ -0.911138861308
+ -0.909722499892
+ -0.908306138475
+ -0.906889777059
+ -0.905473415643
+ -0.904057054226
+ -0.90264069281
+ -0.901224331394
+ -0.899807969977
+ -0.898391608561
+ -0.896975247144
+ -0.895558885728
+ -0.894142524312
+ -0.892726162895
+ -0.891309801479
+ -0.889893440063
+ -0.888477078646
+ -0.88706071723
+ -0.885644355814
+ -0.884227994397
+ -0.882811632981
+ -0.881395271564
+ -0.879978910148
+ -0.878562548732
+ -0.877146187315
+ -0.875729825899
+ -0.874313464483
+ -0.872897103066
+ -0.87148074165
+ -0.870064380234
+ -0.868648018817
+ -0.867231657401
+ -0.865815295984
+ -0.864398934568
+ -0.862982573152
+ -0.861566211735
+ -0.860149850319
+ -0.858733488903
+ -0.857317127486
+ -0.85590076607
+ -0.854484404654
+ -0.853068043237
+ -0.851651681821
+ -0.850235320405
+ -0.848818958988
+ -0.847402597572
+ -0.845986236155
+ -0.844569874739
+ -0.843153513323
+ -0.841737151906
+ -0.84032079049
+ -0.838904429074
+ -0.837488067657
+ -0.836071706241
+ -0.834655344825
+ -0.833238983408
+ -0.831822621992
+ -0.830406260575
+ -0.828989899159
+ -0.827573537743
+ -0.826157176326
+ -0.82474081491
+ -0.823324453494
+ -0.821908092077
+ -0.820491730661
+ -0.819075369245
+ -0.817659007828
+ -0.816242646412
+ -0.814826284995
+ -0.813409923579
+ -0.811993562163
+ -0.810577200746
+ -0.80916083933
+ -0.807744477914
+ -0.806328116497
+ -0.804911755081
+ -0.803495393665
+ -0.802079032248
+ -0.800662670832
+ -0.799246309416
+ -0.797829947999
+ -0.796413586583
+ -0.794997225166
+ -0.79358086375
+ -0.792164502334
+ -0.790748140917
+ -0.789331779501
+ -0.787915418085
+ -0.786499056668
+ -0.785082695252
+ -0.783666333836
+ -0.782249972419
+ -0.780833611003
+ -0.779417249586
+ -0.77800088817
+ -0.776584526754
+ -0.775168165337
+ -0.773751803921
+ -0.772335442505
+ -0.770919081088
+ -0.769502719672
+ -0.768086358256
+ -0.766669996839
+ -0.765253635423
+ -0.763837274006
+ -0.76242091259
+ -0.761004551174
+ -0.759588189757
+ -0.758171828341
+ -0.756755466925
+ -0.755339105508
+ -0.753922744092
+ -0.752506382676
+ -0.751090021259
+ -0.749673659843
+ -0.748257298426
+ -0.74684093701
+ -0.745424575594
+ -0.744008214177
+ -0.742591852761
+ -0.741175491345
+ -0.739759129928
+ -0.738342768512
+ -0.736926407096
+ -0.735510045679
+ -0.734093684263
+ -0.732677322847
+ -0.73126096143
+ -0.729844600014
+ -0.728428238597
+ -0.727011877181
+ -0.725595515765
+ -0.724179154348
+ -0.722762792932
+ -0.721346431516
+ -0.719930070099
+ -0.718513708683
+ -0.717097347267
+ -0.71568098585
+ -0.714264624434
+ -0.712848263017
+ -0.711431901601
+ -0.710015540185
+ -0.708599178768
+ -0.707182817352
+ -0.705766455936
+ -0.704350094519
+ -0.702933733103
+ -0.701517371687
+ -0.70010101027
+ -0.698684648854
+ -0.697268287437
+ -0.695851926021
+ -0.694435564605
+ -0.693019203188
+ -0.691602841772
+ -0.690186480356
+ -0.688770118939
+ -0.687353757523
+ -0.685937396107
+ -0.68452103469
+ -0.683104673274
+ -0.681688311858
+ -0.680271950441
+ -0.678855589025
+ -0.677439227608
+ -0.676022866192
+ -0.674606504776
+ -0.673190143359
+ -0.671773781943
+ -0.670357420527
+ -0.66894105911
+ -0.667524697694
+ -0.666108336278
+ -0.664691974861
+ -0.663275613445
+ -0.661859252028
+ -0.660442890612
+ -0.659026529196
+ -0.657610167779
+ -0.656193806363
+ -0.654777444947
+ -0.65336108353
+ -0.651944722114
+ -0.650528360698
+ -0.649111999281
+ -0.647695637865
+ -0.646279276448
+ -0.644862915032
+ -0.643446553616
+ -0.642030192199
+ -0.640613830783
+ -0.639197469367
+ -0.63778110795
+ -0.636364746534
+ -0.634948385118
+ -0.633532023701
+ -0.632115662285
+ -0.630699300868
+ -0.629282939452
+ -0.627866578036
+ -0.626450216619
+ -0.625033855203
+ -0.623617493787
+ -0.62220113237
+ -0.620784770954
+ -0.619368409538
+ -0.617952048121
+ -0.616535686705
+ -0.615119325289
+ -0.613702963872
+ -0.612286602456
+ -0.610870241039
+ -0.609453879623
+ -0.608037518207
+ -0.60662115679
+ -0.605204795374
+ -0.603788433958
+ -0.602372072541
+ -0.600955711125
+ -0.599539349709
+ -0.598122988292
+ -0.596706626876
+ -0.595290265459
+ -0.593873904043
+ -0.592457542627
+ -0.59104118121
+ -0.589624819794
+ -0.588208458378
+ -0.586792096961
+ -0.585375735545
+ -0.583959374129
+ -0.582543012712
+ -0.581126651296
+ -0.579710289879
+ -0.578293928463
+ -0.576877567047
+ -0.57546120563
+ -0.574044844214
+ -0.572628482798
+ -0.571212121381
+ -0.569795759965
+ -0.568379398549
+ -0.566963037132
+ -0.565546675716
+ -0.5641303143
+ -0.562713952883
+ -0.561297591467
+ -0.55988123005
+ -0.558464868634
+ -0.557048507218
+ -0.555632145801
+ -0.554215784385
+ -0.552799422969
+ -0.551383061552
+ -0.549966700136
+ -0.54855033872
+ -0.547133977303
+ -0.545717615887
+ -0.54430125447
+ -0.542884893054
+ -0.541468531638
+ -0.540052170221
+ -0.538635808805
+ -0.537219447389
+ -0.535803085972
+ -0.534386724556
+ -0.53297036314
+ -0.531554001723
+ -0.530137640307
+ -0.52872127889
+ -0.527304917474
+ -0.525888556058
+ -0.524472194641
+ -0.523055833225
+ -0.521639471809
+ -0.520223110392
+ -0.518806748976
+ -0.51739038756
+ -0.515974026143
+ -0.514557664727
+ -0.513141303311
+ -0.511724941894
+ -0.510308580478
+ -0.508892219061
+ -0.507475857645
+ -0.506059496229
+ -0.504643134812
+ -0.503226773396
+ -0.50181041198
+ -0.500394050563
+ -0.498977689147
+ -0.497561327731
+ -0.496144966314
+ -0.494728604898
+ -0.493312243481
+ -0.491895882065
+ -0.490479520649
+ -0.489063159232
+ -0.487646797816
+ -0.4862304364
+ -0.484814074983
+ -0.483397713567
+ -0.481981352151
+ -0.480564990734
+ -0.479148629318
+ -0.477732267901
+ -0.476315906485
+ -0.474899545069
+ -0.473483183652
+ -0.472066822236
+ -0.47065046082
+ -0.469234099403
+ -0.467817737987
+ -0.466401376571
+ -0.464985015154
+ -0.463568653738
+ -0.462152292321
+ -0.460735930905
+ -0.459319569489
+ -0.457903208072
+ -0.456486846656
+ -0.45507048524
+ -0.453654123823
+ -0.452237762407
+ -0.450821400991
+ -0.449405039574
+ -0.447988678158
+ -0.446572316742
+ -0.445155955325
+ -0.443739593909
+ -0.442323232492
+ -0.440906871076
+ -0.43949050966
+ -0.438074148243
+ -0.436657786827
+ -0.435241425411
+ -0.433825063994
+ -0.432408702578
+ -0.430992341162
+ -0.429575979745
+ -0.428159618329
+ -0.426743256912
+ -0.425326895496
+ -0.42391053408
+ -0.422494172663
+ -0.421077811247
+ -0.419661449831
+ -0.418245088414
+ -0.416828726998
+ -0.415412365582
+ -0.413996004165
+ -0.412579642749
+ -0.411163281332
+ -0.409746919916
+ -0.4083305585
+ -0.406914197083
+ -0.405497835667
+ -0.404081474251
+ -0.402665112834
+ -0.401248751418
+ -0.399832390002
+ -0.398416028585
+ -0.396999667169
+ -0.395583305753
+ -0.394166944336
+ -0.39275058292
+ -0.391334221503
+ -0.389917860087
+ -0.388501498671
+ -0.387085137254
+ -0.385668775838
+ -0.384252414422
+ -0.382836053005
+ -0.381419691589
+ -0.380003330173
+ -0.378586968756
+ -0.37717060734
+ -0.375754245923
+ -0.374337884507
+ -0.372921523091
+ -0.371505161674
+ -0.370088800258
+ -0.368672438842
+ -0.367256077425
+ -0.365839716009
+ -0.364423354593
+ -0.363006993176
+ -0.36159063176
+ -0.360174270343
+ -0.358757908927
+ -0.357341547511
+ -0.355925186094
+ -0.354508824678
+ -0.353092463262
+ -0.351676101845
+ -0.350259740429
+ -0.348843379013
+ -0.347427017596
+ -0.34601065618
+ -0.344594294763
+ -0.343177933347
+ -0.341761571931
+ -0.340345210514
+ -0.338928849098
+ -0.337512487682
+ -0.336096126265
+ -0.334679764849
+ -0.333263403433
+ -0.331847042016
+ -0.3304306806
+ -0.329014319184
+ -0.327597957767
+ -0.326181596351
+ -0.324765234934
+ -0.323348873518
+ -0.321932512102
+ -0.320516150685
+ -0.319099789269
+ -0.317683427853
+ -0.316267066436
+ -0.31485070502
+ -0.313434343604
+ -0.312017982187
+ -0.310601620771
+ -0.309185259354
+ -0.307768897938
+ -0.306352536522
+ -0.304936175105
+ -0.303519813689
+ -0.302103452273
+ -0.300687090856
+ -0.29927072944
+ -0.297854368024
+ -0.296438006607
+ -0.295021645191
+ -0.293605283774
+ -0.292188922358
+ -0.290772560942
+ -0.289356199525
+ -0.287939838109
+ -0.286523476693
+ -0.285107115276
+ -0.28369075386
+ -0.282274392444
+ -0.280858031027
+ -0.279441669611
+ -0.278025308195
+ -0.276608946778
+ -0.275192585362
+ -0.273776223945
+ -0.272359862529
+ -0.270943501113
+ -0.269527139696
+ -0.26811077828
+ -0.266694416864
+ -0.265278055447
+ -0.263861694031
+ -0.262445332615
+ -0.261028971198
+ -0.259612609782
+ -0.258196248365
+ -0.256779886949
+ -0.255363525533
+ -0.253947164116
+ -0.2525308027
+ -0.251114441284
+ -0.249698079867
+ -0.248281718451
+ -0.246865357035
+ -0.245448995618
+ -0.244032634202
+ -0.242616272785
+ -0.241199911369
+ -0.239783549953
+ -0.238367188536
+ -0.23695082712
+ -0.235534465704
+ -0.234118104287
+ -0.232701742871
+ -0.231285381455
+ -0.229869020038
+ -0.228452658622
+ -0.227036297205
+ -0.225619935789
+ -0.224203574373
+ -0.222787212956
+ -0.22137085154
+ -0.219954490124
+ -0.218538128707
+ -0.217121767291
+ -0.215705405875
+ -0.214289044458
+ -0.212872683042
+ -0.211456321626
+ -0.210039960209
+ -0.208623598793
+ -0.207207237376
+ -0.20579087596
+ -0.204374514544
+ -0.202958153127
+ -0.201541791711
+ -0.200125430295
+ -0.198709068878
+ -0.197292707462
+ -0.195876346046
+ -0.194459984629
+ -0.193043623213
+ -0.191627261796
+ -0.19021090038
+ -0.188794538964
+ -0.187378177547
+ -0.185961816131
+ -0.184545454715
+ -0.183129093298
+ -0.181712731882
+ -0.180296370466
+ -0.178880009049
+ -0.177463647633
+ -0.176047286216
+ -0.1746309248
+ -0.173214563384
+ -0.171798201967
+ -0.170381840551
+ -0.168965479135
+ -0.167549117718
+ -0.166132756302
+ -0.164716394886
+ -0.163300033469
+ -0.161883672053
+ -0.160467310637
+ -0.15905094922
+ -0.157634587804
+ -0.156218226387
+ -0.154801864971
+ -0.153385503555
+ -0.151969142138
+ -0.150552780722
+ -0.149136419306
+ -0.147720057889
+ -0.146303696473
+ -0.144887335057
+ -0.14347097364
+ -0.142054612224
+ -0.140638250807
+ -0.139221889391
+ -0.137805527975
+ -0.136389166558
+ -0.134972805142
+ -0.133556443726
+ -0.132140082309
+ -0.130723720893
+ -0.129307359477
+ -0.12789099806
+ -0.126474636644
+ -0.125058275227
+ -0.123641913811
+ -0.122225552395
+ -0.120809190978
+ -0.119392829562
+ -0.117976468146
+ -0.116560106729
+ -0.115143745313
+ -0.113727383897
+ -0.11231102248
+ -0.110894661064
+ -0.109478299647
+ -0.108061938231
+ -0.106645576815
+ -0.105229215398
+ -0.103812853982
+ -0.102396492566
+ -0.100980131149
+ -0.099563769733
+ -0.0981474083166
+ -0.0967310469002
+ -0.0953146854839
+ -0.0938983240675
+ -0.0924819626512
+ -0.0910656012348
+ -0.0896492398184
+ -0.0882328784021
+ -0.0868165169857
+ -0.0854001555694
+ -0.083983794153
+ -0.0825674327366
+ -0.0811510713203
+ -0.0797347099039
+ -0.0783183484875
+ -0.0769019870712
+ -0.0754856256548
+ -0.0740692642385
+ -0.0726529028221
+ -0.0712365414057
+ -0.0698201799894
+ -0.068403818573
+ -0.0669874571567
+ -0.0655710957403
+ -0.0641547343239
+ -0.0627383729076
+ -0.0613220114912
+ -0.0599056500748
+ -0.0584892886585
+ -0.0570729272421
+ -0.0556565658258
+ -0.0542402044094
+ -0.052823842993
+ -0.0514074815767
+ -0.0499911201603
+ -0.048574758744
+ -0.0471583973276
+ -0.0457420359112
+ -0.0443256744949
+ -0.0429093130785
+ -0.0414929516622
+ -0.0400765902458
+ -0.0386602288294
+ -0.0372438674131
+ -0.0358275059967
+ -0.0344111445803
+ -0.032994783164
+ -0.0315784217476
+ -0.0301620603313
+ -0.0287456989149
+ -0.0273293374985
+ -0.0259129760822
+ -0.0244966146658
+ -0.0230802532495
+ -0.0216638918331
+ -0.0202475304167
+ -0.0188311690004
+ -0.017414807584
+ -0.0159984461676
+ -0.0145820847513
+ -0.0131657233349
+ -0.0117493619186
+ -0.0103330005022
+ -0.00891663908584
+ -0.00750027766948
+ -0.00608391625311
+ -0.00466755483675
+ -0.00325119342039
+ -0.00183483200403
+ -0.00041847058767
+ 0.000997890828692
+ 0.00241425224505
+ 0.00383061366141
+ 0.00524697507778
+ 0.00666333649414
+ 0.0080796979105
+ 0.00949605932686
+ 0.0109124207432
+ 0.0123287821596
+ 0.0137451435759
+ 0.0151615049923
+ 0.0165778664087
+ 0.017994227825
+ 0.0194105892414
+ 0.0208269506578
+ 0.0222433120741
+ 0.0236596734905
+ 0.0250760349068
+ 0.0264923963232
+ 0.0279087577396
+ 0.0293251191559
+ 0.0307414805723
+ 0.0321578419886
+ 0.033574203405
+ 0.0349905648214
+ 0.0364069262377
+ 0.0378232876541
+ 0.0392396490705
+ 0.0406560104868
+ 0.0420723719032
+ 0.0434887333195
+ 0.0449050947359
+ 0.0463214561523
+ 0.0477378175686
+ 0.049154178985
+ 0.0505705404013
+ 0.0519869018177
+ 0.0534032632341
+ 0.0548196246504
+ 0.0562359860668
+ 0.0576523474831
+ 0.0590687088995
+ 0.0604850703159
+ 0.0619014317322
+ 0.0633177931486
+ 0.064734154565
+ 0.0661505159813
+ 0.0675668773977
+ 0.068983238814
+ 0.0703996002304
+ 0.0718159616468
+ 0.0732323230631
+ 0.0746486844795
+ 0.0760650458958
+ 0.0774814073122
+ 0.0788977687286
+ 0.0803141301449
+ 0.0817304915613
+ 0.0831468529777
+ 0.084563214394
+ 0.0859795758104
+ 0.0873959372267
+ 0.0888122986431
+ 0.0902286600595
+ 0.0916450214758
+ 0.0930613828922
+ 0.0944777443085
+ 0.0958941057249
+ 0.0973104671413
+ 0.0987268285576
+ 0.100143189974
+ 0.10155955139
+ 0.102975912807
+ 0.104392274223
+ 0.105808635639
+ 0.107224997056
+ 0.108641358472
+ 0.110057719889
+ 0.111474081305
+ 0.112890442721
+ 0.114306804138
+ 0.115723165554
+ 0.11713952697
+ 0.118555888387
+ 0.119972249803
+ 0.121388611219
+ 0.122804972636
+ 0.124221334052
+ 0.125637695468
+ 0.127054056885
+ 0.128470418301
+ 0.129886779718
+ 0.131303141134
+ 0.13271950255
+ 0.134135863967
+ 0.135552225383
+ 0.136968586799
+ 0.138384948216
+ 0.139801309632
+ 0.141217671048
+ 0.142634032465
+ 0.144050393881
+ 0.145466755298
+ 0.146883116714
+ 0.14829947813
+ 0.149715839547
+ 0.151132200963
+ 0.152548562379
+ 0.153964923796
+ 0.155381285212
+ 0.156797646628
+ 0.158214008045
+ 0.159630369461
+ 0.161046730878
+ 0.162463092294
+ 0.16387945371
+ 0.165295815127
+ 0.166712176543
+ 0.168128537959
+ 0.169544899376
+ 0.170961260792
+ 0.172377622208
+ 0.173793983625
+ 0.175210345041
+ 0.176626706458
+ 0.178043067874
+ 0.17945942929
+ 0.180875790707
+ 0.182292152123
+ 0.183708513539
+ 0.185124874956
+ 0.186541236372
+ 0.187957597788
+ 0.189373959205
+ 0.190790320621
+ 0.192206682037
+ 0.193623043454
+ 0.19503940487
+ 0.196455766287
+ 0.197872127703
+ 0.199288489119
+ 0.200704850536
+ 0.202121211952
+ 0.203537573368
+ 0.204953934785
+ 0.206370296201
+ 0.207786657617
+ 0.209203019034
+ 0.21061938045
+ 0.212035741867
+ 0.213452103283
+ 0.214868464699
+ 0.216284826116
+ 0.217701187532
+ 0.219117548948
+ 0.220533910365
+ 0.221950271781
+ 0.223366633197
+ 0.224782994614
+ 0.22619935603
+ 0.227615717447
+ 0.229032078863
+ 0.230448440279
+ 0.231864801696
+ 0.233281163112
+ 0.234697524528
+ 0.236113885945
+ 0.237530247361
+ 0.238946608777
+ 0.240362970194
+ 0.24177933161
+ 0.243195693026
+ 0.244612054443
+ 0.246028415859
+ 0.247444777276
+ 0.248861138692
+ 0.250277500108
+ 0.251693861525
+ 0.253110222941
+ 0.254526584357
+ 0.255942945774
+ 0.25735930719
+ 0.258775668606
+ 0.260192030023
+ 0.261608391439
+ 0.263024752856
+ 0.264441114272
+ 0.265857475688
+ 0.267273837105
+ 0.268690198521
+ 0.270106559937
+ 0.271522921354
+ 0.27293928277
+ 0.274355644186
+ 0.275772005603
+ 0.277188367019
+ 0.278604728436
+ 0.280021089852
+ 0.281437451268
+ 0.282853812685
+ 0.284270174101
+ 0.285686535517
+ 0.287102896934
+ 0.28851925835
+ 0.289935619766
+ 0.291351981183
+ 0.292768342599
+ 0.294184704016
+ 0.295601065432
+ 0.297017426848
+ 0.298433788265
+ 0.299850149681
+ 0.301266511097
+ 0.302682872514
+ 0.30409923393
+ 0.305515595346
+ 0.306931956763
+ 0.308348318179
+ 0.309764679595
+ 0.311181041012
+ 0.312597402428
+ 0.314013763845
+ 0.315430125261
+ 0.316846486677
+ 0.318262848094
+ 0.31967920951
+ 0.321095570926
+ 0.322511932343
+ 0.323928293759
+ 0.325344655175
+ 0.326761016592
+ 0.328177378008
+ 0.329593739425
+ 0.331010100841
+ 0.332426462257
+ 0.333842823674
+ 0.33525918509
+ 0.336675546506
+ 0.338091907923
+ 0.339508269339
+ 0.340924630755
+ 0.342340992172
+ 0.343757353588
+ 0.345173715005
+ 0.346590076421
+ 0.348006437837
+ 0.349422799254
+ 0.35083916067
+ 0.352255522086
+ 0.353671883503
+ 0.355088244919
+ 0.356504606335
+ 0.357920967752
+ 0.359337329168
+ 0.360753690584
+ 0.362170052001
+ 0.363586413417
+ 0.365002774834
+ 0.36641913625
+ 0.367835497666
+ 0.369251859083
+ 0.370668220499
+ 0.372084581915
+ 0.373500943332
+ 0.374917304748
+ 0.376333666164
+ 0.377750027581
+ 0.379166388997
+ 0.380582750414
+ 0.38199911183
+ 0.383415473246
+ 0.384831834663
+ 0.386248196079
+ 0.387664557495
+ 0.389080918912
+ 0.390497280328
+ 0.391913641744
+ 0.393330003161
+ 0.394746364577
+ 0.396162725994
+ 0.39757908741
+ 0.398995448826
+ 0.400411810243
+ 0.401828171659
+ 0.403244533075
+ 0.404660894492
+ 0.406077255908
+ 0.407493617324
+ 0.408909978741
+ 0.410326340157
+ 0.411742701574
+ 0.41315906299
+ 0.414575424406
+ 0.415991785823
+ 0.417408147239
+ 0.418824508655
+ 0.420240870072
+ 0.421657231488
+ 0.423073592904
+ 0.424489954321
+ 0.425906315737
+ 0.427322677153
+ 0.42873903857
+ 0.430155399986
+ 0.431571761403
+ 0.432988122819
+ 0.434404484235
+ 0.435820845652
+ 0.437237207068
+ 0.438653568484
+ 0.440069929901
+ 0.441486291317
+ 0.442902652733
+ 0.44431901415
+ 0.445735375566
+ 0.447151736983
+ 0.448568098399
+ 0.449984459815
+ 0.451400821232
+ 0.452817182648
+ 0.454233544064
+ 0.455649905481
+ 0.457066266897
+ 0.458482628313
+ 0.45989898973
+ 0.461315351146
+ 0.462731712563
+ 0.464148073979
+ 0.465564435395
+ 0.466980796812
+ 0.468397158228
+ 0.469813519644
+ 0.471229881061
+ 0.472646242477
+ 0.474062603893
+ 0.47547896531
+ 0.476895326726
+ 0.478311688142
+ 0.479728049559
+ 0.481144410975
+ 0.482560772392
+ 0.483977133808
+ 0.485393495224
+ 0.486809856641
+ 0.488226218057
+ 0.489642579473
+ 0.49105894089
+ 0.492475302306
+ 0.493891663722
+ 0.495308025139
+ 0.496724386555
+ 0.498140747972
+ 0.499557109388
+ 0.500973470804
+ 0.502389832221
+ 0.503806193637
+ 0.505222555053
+ 0.50663891647
+ 0.508055277886
+ 0.509471639302
+ 0.510888000719
+ 0.512304362135
+ 0.513720723552
+ 0.515137084968
+ 0.516553446384
+ 0.517969807801
+ 0.519386169217
+ 0.520802530633
+ 0.52221889205
+ 0.523635253466
+ 0.525051614882
+ 0.526467976299
+ 0.527884337715
+ 0.529300699132
+ 0.530717060548
+ 0.532133421964
+ 0.533549783381
+ 0.534966144797
+ 0.536382506213
+ 0.53779886763
+ 0.539215229046
+ 0.540631590462
+ 0.542047951879
+ 0.543464313295
+ 0.544880674711
+ 0.546297036128
+ 0.547713397544
+ 0.549129758961
+ 0.550546120377
+ 0.551962481793
+ 0.55337884321
+ 0.554795204626
+ 0.556211566042
+ 0.557627927459
+ 0.559044288875
+ 0.560460650291
+ 0.561877011708
+ 0.563293373124
+ 0.564709734541
+ 0.566126095957
+ 0.567542457373
+ 0.56895881879
+ 0.570375180206
+ 0.571791541622
+ 0.573207903039
+ 0.574624264455
+ 0.576040625871
+ 0.577456987288
+ 0.578873348704
+ 0.580289710121
+ 0.581706071537
+ 0.583122432953
+ 0.58453879437
+ 0.585955155786
+ 0.587371517202
+ 0.588787878619
+ 0.590204240035
+ 0.591620601451
+ 0.593036962868
+ 0.594453324284
+ 0.5958696857
+ 0.597286047117
+ 0.598702408533
+ 0.60011876995
+ 0.601535131366
+ 0.602951492782
+ 0.604367854199
+ 0.605784215615
+ 0.607200577031
+ 0.608616938448
+ 0.610033299864
+ 0.61144966128
+ 0.612866022697
+ 0.614282384113
+ 0.61569874553
+ 0.617115106946
+ 0.618531468362
+ 0.619947829779
+ 0.621364191195
+ 0.622780552611
+ 0.624196914028
+ 0.625613275444
+ 0.62702963686
+ 0.628445998277
+ 0.629862359693
+ 0.63127872111
+ 0.632695082526
+ 0.634111443942
+ 0.635527805359
+ 0.636944166775
+ 0.638360528191
+ 0.639776889608
+ 0.641193251024
+ 0.64260961244
+ 0.644025973857
+ 0.645442335273
+ 0.646858696689
+ 0.648275058106
+ 0.649691419522
+ 0.651107780939
+ 0.652524142355
+ 0.653940503771
+ 0.655356865188
+ 0.656773226604
+ 0.65818958802
+ 0.659605949437
+ 0.661022310853
+ 0.662438672269
+ 0.663855033686
+ 0.665271395102
+ 0.666687756519
+ 0.668104117935
+ 0.669520479351
+ 0.670936840768
+ 0.672353202184
+ 0.6737695636
+ 0.675185925017
+ 0.676602286433
+ 0.678018647849
+ 0.679435009266
+ 0.680851370682
+ 0.682267732099
+ 0.683684093515
+ 0.685100454931
+ 0.686516816348
+ 0.687933177764
+ 0.68934953918
+ 0.690765900597
+ 0.692182262013
+ 0.693598623429
+ 0.695014984846
+ 0.696431346262
+ 0.697847707679
+ 0.699264069095
+ 0.700680430511
+ 0.702096791928
+ 0.703513153344
+ 0.70492951476
+ 0.706345876177
+ 0.707762237593
+ 0.709178599009
+ 0.710594960426
+ 0.712011321842
+ 0.713427683258
+ 0.714844044675
+ 0.716260406091
+ 0.717676767508
+ 0.719093128924
+ 0.72050949034
+ 0.721925851757
+ 0.723342213173
+ 0.724758574589
+ 0.726174936006
+ 0.727591297422
+ 0.729007658838
+ 0.730424020255
+ 0.731840381671
+ 0.733256743088
+ 0.734673104504
+ 0.73608946592
+ 0.737505827337
+ 0.738922188753
+ 0.740338550169
+ 0.741754911586
+ 0.743171273002
+ 0.744587634418
+ 0.746003995835
+ 0.747420357251
+ 0.748836718668
+ 0.750253080084
+ 0.7516694415
+ 0.753085802917
+ 0.754502164333
+ 0.755918525749
+ 0.757334887166
+ 0.758751248582
+ 0.760167609998
+ 0.761583971415
+ 0.763000332831
+ 0.764416694247
+ 0.765833055664
+ 0.76724941708
+ 0.768665778497
+ 0.770082139913
+ 0.771498501329
+ 0.772914862746
+ 0.774331224162
+ 0.775747585578
+ 0.777163946995
+ 0.778580308411
+ 0.779996669827
+ 0.781413031244
+ 0.78282939266
+ 0.784245754077
+ 0.785662115493
+ 0.787078476909
+ 0.788494838326
+ 0.789911199742
+ 0.791327561158
+ 0.792743922575
+ 0.794160283991
+ 0.795576645407
+ 0.796993006824
+ 0.79840936824
+ 0.799825729657
+ 0.801242091073
+ 0.802658452489
+ 0.804074813906
+ 0.805491175322
+ 0.806907536738
+ 0.808323898155
+ 0.809740259571
+ 0.811156620987
+ 0.812572982404
+ 0.81398934382
+ 0.815405705237
+ 0.816822066653
+ 0.818238428069
+ 0.819654789486
+ 0.821071150902
+ 0.822487512318
+ 0.823903873735
+ 0.825320235151
+ 0.826736596567
+ 0.828152957984
+ 0.8295693194
+ 0.830985680816
+ 0.832402042233
+ 0.833818403649
+ 0.835234765066
+ 0.836651126482
+ 0.838067487898
+ 0.839483849315
+ 0.840900210731
+ 0.842316572147
+ 0.843732933564
+ 0.84514929498
+ 0.846565656396
+ 0.847982017813
+ 0.849398379229
+ 0.850814740646
+ 0.852231102062
+ 0.853647463478
+ 0.855063824895
+ 0.856480186311
+ 0.857896547727
+ 0.859312909144
+ 0.86072927056
+ 0.862145631976
+ 0.863561993393
+ 0.864978354809
+ 0.866394716226
+ 0.867811077642
+ 0.869227439058
+ 0.870643800475
+ 0.872060161891
+ 0.873476523307
+ 0.874892884724
+ 0.87630924614
+ 0.877725607556
+ 0.879141968973
+ 0.880558330389
+ 0.881974691805
+ 0.883391053222
+ 0.884807414638
+ 0.886223776055
+ 0.887640137471
+ 0.889056498887
+ 0.890472860304
+ 0.89188922172
+ 0.893305583136
+ 0.894721944553
+ 0.896138305969
+ 0.897554667385
+ 0.898971028802
+ 0.900387390218
+ 0.901803751635
+ 0.903220113051
+ 0.904636474467
+ 0.906052835884
+ 0.9074691973
+ 0.908885558716
+ 0.910301920133
+ 0.911718281549
+ 0.913134642965
+ 0.914551004382
+ 0.915967365798
+ 0.917383727215
+ 0.918800088631
+ 0.920216450047
+ 0.921632811464
+ 0.92304917288
+ 0.924465534296
+ 0.925881895713
+ 0.927298257129
+ 0.928714618545
+ 0.930130979962
+ 0.931547341378
+ 0.932963702795
+ 0.934380064211
+ 0.935796425627
+ 0.937212787044
+ 0.93862914846
+ 0.940045509876
+ 0.941461871293
+ 0.942878232709
+ 0.944294594125
+ 0.945710955542
+ 0.947127316958
+ 0.948543678374
+ 0.949960039791
+ 0.951376401207
+ 0.952792762624
+ 0.95420912404
+ 0.955625485456
+ 0.957041846873
+ 0.958458208289
+ 0.959874569705
+ 0.961290931122
+ 0.962707292538
+ 0.964123653954
+ 0.965540015371
+ 0.966956376787
+ 0.968372738204
+ 0.96978909962
+ 0.971205461036
+ 0.972621822453
+ 0.974038183869
+ 0.975454545285
+ 0.976870906702
+ 0.978287268118
+ 0.979703629534
+ 0.981119990951
+ 0.982536352367
+ 0.983952713784
+ 0.9853690752
+ 0.986785436616
+ 0.988201798033
+ 0.989618159449
+ 0.991034520865
+ 0.992450882282
+ 0.993867243698
+ 0.995283605114
+ 0.996699966531
+ 0.998116327947
+ 0.999532689363
+ 1.00094905078
+ 1.0023654122
+ 1.00378177361
+ 1.00519813503
+ 1.00661449645
+ 1.00803085786
+ 1.00944721928
+ 1.01086358069
+ 1.01227994211
+ 1.01369630353
+ 1.01511266494
+ 1.01652902636
+ 1.01794538778
+ 1.01936174919
+ 1.02077811061
+ 1.02219447203
+ 1.02361083344
+ 1.02502719486
+ 1.02644355627
+ 1.02785991769
+ 1.02927627911
+ 1.03069264052
+ 1.03210900194
+ 1.03352536336
+ 1.03494172477
+ 1.03635808619
+ 1.03777444761
+ 1.03919080902
+ 1.04060717044
+ 1.04202353185
+ 1.04343989327
+ 1.04485625469
+ 1.0462726161
+ 1.04768897752
+ 1.04910533894
+ 1.05052170035
+ 1.05193806177
+ 1.05335442319
+ 1.0547707846
+ 1.05618714602
+ 1.05760350743
+ 1.05901986885
+ 1.06043623027
+ 1.06185259168
+ 1.0632689531
+ 1.06468531452
+ 1.06610167593
+ 1.06751803735
+ 1.06893439877
+ 1.07035076018
+ 1.0717671216
+ 1.07318348301
+ 1.07459984443
+ 1.07601620585
+ 1.07743256726
+ 1.07884892868
+ 1.0802652901
+ 1.08168165151
+ 1.08309801293
+ 1.08451437435
+ 1.08593073576
+ 1.08734709718
+ 1.08876345859
+ 1.09017982001
+ 1.09159618143
+ 1.09301254284
+ 1.09442890426
+ 1.09584526568
+ 1.09726162709
+ 1.09867798851
+ 1.10009434993
+ 1.10151071134
+ 1.10292707276
+ 1.10434343417
+ 1.10575979559
+ 1.10717615701
+ 1.10859251842
+ 1.11000887984
+ 1.11142524126
+ 1.11284160267
+ 1.11425796409
+ 1.11567432551
+ 1.11709068692
+ 1.11850704834
+ 1.11992340975
+ 1.12133977117
+ 1.12275613259
+ 1.124172494
+ 1.12558885542
+ 1.12700521684
+ 1.12842157825
+ 1.12983793967
+ 1.13125430109
+ 1.1326706625
+ 1.13408702392
+ 1.13550338533
+ 1.13691974675
+ 1.13833610817
+ 1.13975246958
+ 1.141168831
+ 1.14258519242
+ 1.14400155383
+ 1.14541791525
+ 1.14683427667
+ 1.14825063808
+ 1.1496669995
+ 1.15108336091
+ 1.15249972233
+ 1.15391608375
+ 1.15533244516
+ 1.15674880658
+ 1.158165168
+ 1.15958152941
+ 1.16099789083
+ 1.16241425225
+ 1.16383061366
+ 1.16524697508
+ 1.16666333649
+ 1.16807969791
+ 1.16949605933
+ 1.17091242074
+ 1.17232878216
+ 1.17374514358
+ 1.17516150499
+ 1.17657786641
+ 1.17799422783
+ 1.17941058924
+ 1.18082695066
+ 1.18224331207
+ 1.18365967349
+ 1.18507603491
+ 1.18649239632
+ 1.18790875774
+ 1.18932511916
+ 1.19074148057
+ 1.19215784199
+ 1.19357420341
+ 1.19499056482
+ 1.19640692624
+ 1.19782328765
+ 1.19923964907
+ 1.20065601049
+ 1.2020723719
+ 1.20348873332
+ 1.20490509474
+ 1.20632145615
+ 1.20773781757
+ 1.20915417898
+ 1.2105705404
+ 1.21198690182
+ 1.21340326323
+ 1.21481962465
+ 1.21623598607
+ 1.21765234748
+ 1.2190687089
+ 1.22048507032
+ 1.22190143173
+ 1.22331779315
+ 1.22473415456
+ 1.22615051598
+ 1.2275668774
+ 1.22898323881
+ 1.23039960023
+ 1.23181596165
+ 1.23323232306
+ 1.23464868448
+ 1.2360650459
+ 1.23748140731
+ 1.23889776873
+ 1.24031413014
+ 1.24173049156
+ 1.24314685298
+ 1.24456321439
+ 1.24597957581
+ 1.24739593723
+ 1.24881229864
+ 1.25022866006
+ 1.25164502148
+ 1.25306138289
+ 1.25447774431
+ 1.25589410572
+ 1.25731046714
+ 1.25872682856
+ 1.26014318997
+ 1.26155955139
+ 1.26297591281
+ 1.26439227422
+ 1.26580863564
+ 1.26722499706
+ 1.26864135847
+ 1.27005771989
+ 1.2714740813
+ 1.27289044272
+ 1.27430680414
+ 1.27572316555
+ 1.27713952697
+ 1.27855588839
+ 1.2799722498
+ 1.28138861122
+ 1.28280497264
+ 1.28422133405
+ 1.28563769547
+ 1.28705405688
+ 1.2884704183
+ 1.28988677972
+ 1.29130314113
+ 1.29271950255
+ 1.29413586397
+ 1.29555222538
+ 1.2969685868
+ 1.29838494822
+ 1.29980130963
+ 1.30121767105
+ 1.30263403246
+ 1.30405039388
+ 1.3054667553
+ 1.30688311671
+ 1.30829947813
+ 1.30971583955
+ 1.31113220096
+ 1.31254856238
+ 1.3139649238
+ 1.31538128521
+ 1.31679764663
+ 1.31821400804
+ 1.31963036946
+ 1.32104673088
+ 1.32246309229
+ 1.32387945371
+ 1.32529581513
+ 1.32671217654
+ 1.32812853796
+ 1.32954489938
+ 1.33096126079
+ 1.33237762221
+ 1.33379398362
+ 1.33521034504
+ 1.33662670646
+ 1.33804306787
+ 1.33945942929
+ 1.34087579071
+ 1.34229215212
+ 1.34370851354
+ 1.34512487496
+ 1.34654123637
+ 1.34795759779
+ 1.3493739592
+ 1.35079032062
+ 1.35220668204
+ 1.35362304345
+ 1.35503940487
+ 1.35645576629
+ 1.3578721277
+ 1.35928848912
+ 1.36070485054
+ 1.36212121195
+ 1.36353757337
+ 1.36495393478
+ 1.3663702962
+ 1.36778665762
+ 1.36920301903
+ 1.37061938045
+ 1.37203574187
+ 1.37345210328
+ 1.3748684647
+ 1.37628482612
+ 1.37770118753
+ 1.37911754895
+ 1.38053391036
+ 1.38195027178
+ 1.3833666332
+ 1.38478299461
+ 1.38619935603
+ 1.38761571745
+ 1.38903207886
+ 1.39044844028
+ 1.3918648017
+ 1.39328116311
+ 1.39469752453
+ 1.39611388594
+ 1.39753024736
+ 1.39894660878
+ 1.40036297019
+ 1.40177933161
+ 1.40319569303
+ 1.40461205444
+ 1.40602841586
+ 1.40744477728
+ 1.40886113869
+ 1.41027750011
+ 1.41169386152
+ 1.41311022294
+ 1.41452658436
+ 1.41594294577
+ 1.41735930719
+ 1.41877566861
+ 1.42019203002
+ 1.42160839144
+ 1.42302475286
+ 1.42444111427
+ 1.42585747569
+ 1.4272738371
+ 1.42869019852
+ 1.43010655994
+ 1.43152292135
+ 1.43293928277
+ 1.43435564419
+ 1.4357720056
+ 1.43718836702
+ 1.43860472844
+ 1.44002108985
+ 1.44143745127
+ 1.44285381268
+ 1.4442701741
+ 1.44568653552
+ 1.44710289693
+ 1.44851925835
+ 1.44993561977
+ 1.45135198118
+ 1.4527683426
+ 1.45418470402
+ 1.45560106543
+ 1.45701742685
+ 1.45843378826
+ 1.45985014968
+ 1.4612665111
+ 1.46268287251
+ 1.46409923393
+ 1.46551559535
+ 1.46693195676
+ 1.46834831818
+ 1.4697646796
+ 1.47118104101
+ 1.47259740243
+ 1.47401376384
+ 1.47543012526
+ 1.47684648668
+ 1.47826284809
+ 1.47967920951
+ 1.48109557093
+ 1.48251193234
+ 1.48392829376
+ 1.48534465518
+ 1.48676101659
+ 1.48817737801
+ 1.48959373942
+ 1.49101010084
+ 1.49242646226
+ 1.49384282367
+ 1.49525918509
+ 1.49667554651
+ 1.49809190792
+ 1.49950826934
+ 1.50092463076
+ 1.50234099217
+ 1.50375735359
+ 1.505173715
+ 1.50659007642
+ 1.50800643784
+ 1.50942279925
+ 1.51083916067
+ 1.51225552209
+ 1.5136718835
+ 1.51508824492
+ 1.51650460634
+ 1.51792096775
+ 1.51933732917
+ 1.52075369058
+ 1.522170052
+ 1.52358641342
+ 1.52500277483
+ 1.52641913625
+ 1.52783549767
+ 1.52925185908
+ 1.5306682205
+ 1.53208458192
+ 1.53350094333
+ 1.53491730475
+ 1.53633366616
+ 1.53775002758
+ 1.539166389
+ 1.54058275041
+ 1.54199911183
+ 1.54341547325
+ 1.54483183466
+ 1.54624819608
+ 1.5476645575
+ 1.54908091891
+ 1.55049728033
+ 1.55191364174
+ 1.55333000316
+ 1.55474636458
+ 1.55616272599
+ 1.55757908741
+ 1.55899544883
+ 1.56041181024
+ 1.56182817166
+ 1.56324453308
+ 1.56466089449
+ 1.56607725591
+ 1.56749361732
+ 1.56890997874
+ 1.57032634016
+ 1.57174270157
+ 1.57315906299
+ 1.57457542441
+ 1.57599178582
+ 1.57740814724
+ 1.57882450866
+ 1.58024087007
+ 1.58165723149
+ 1.5830735929
+ 1.58448995432
+ 1.58590631574
+ 1.58732267715
+ 1.58873903857
+ 1.59015539999
+ 1.5915717614
+ 1.59298812282
+ 1.59440448424
+ 1.59582084565
+ 1.59723720707
+ 1.59865356848
+ 1.6000699299
+ 1.60148629132
+ 1.60290265273
+ 1.60431901415
+ 1.60573537557
+ 1.60715173698
+ 1.6085680984
+ 1.60998445982
+ 1.61140082123
+ 1.61281718265
+ 1.61423354406
+ 1.61564990548
+ 1.6170662669
+ 1.61848262831
+ 1.61989898973
+ 1.62131535115
+ 1.62273171256
+ 1.62414807398
+ 1.6255644354
+ 1.62698079681
+ 1.62839715823
+ 1.62981351964
+ 1.63122988106
+ 1.63264624248
+ 1.63406260389
+ 1.63547896531
+ 1.63689532673
+ 1.63831168814
+ 1.63972804956
+ 1.64114441098
+ 1.64256077239
+ 1.64397713381
+ 1.64539349522
+ 1.64680985664
+ 1.64822621806
+ 1.64964257947
+ 1.65105894089
+ 1.65247530231
+ 1.65389166372
+ 1.65530802514
+ 1.65672438656
+ 1.65814074797
+ 1.65955710939
+ 1.6609734708
+ 1.66238983222
+ 1.66380619364
+ 1.66522255505
+ 1.66663891647
+ 1.66805527789
+ 1.6694716393
+ 1.67088800072
+ 1.67230436214
+ 1.67372072355
+ 1.67513708497
+ 1.67655344638
+ 1.6779698078
+ 1.67938616922
+ 1.68080253063
+ 1.68221889205
+ 1.68363525347
+ 1.68505161488
+ 1.6864679763
+ 1.68788433772
+ 1.68930069913
+ 1.69071706055
+ 1.69213342196
+ 1.69354978338
+ 1.6949661448
+ 1.69638250621
+ 1.69779886763
+ 1.69921522905
+ 1.70063159046
+ 1.70204795188
+ 1.7034643133
+ 1.70488067471
+ 1.70629703613
+ 1.70771339754
+ 1.70912975896
+ 1.71054612038
+ 1.71196248179
+ 1.71337884321
+ 1.71479520463
+ 1.71621156604
+ 1.71762792746
+ 1.71904428888
+ 1.72046065029
+ 1.72187701171
+ 1.72329337312
+ 1.72470973454
+ 1.72612609596
+ 1.72754245737
+ 1.72895881879
+ 1.73037518021
+ 1.73179154162
+ 1.73320790304
+ 1.73462426446
+ 1.73604062587
+ 1.73745698729
+ 1.7388733487
+ 1.74028971012
+ 1.74170607154
+ 1.74312243295
+ 1.74453879437
+ 1.74595515579
+ 1.7473715172
+ 1.74878787862
+ 1.75020424004
+ 1.75162060145
+ 1.75303696287
+ 1.75445332428
+ 1.7558696857
+ 1.75728604712
+ 1.75870240853
+ 1.76011876995
+ 1.76153513137
+ 1.76295149278
+ 1.7643678542
+ 1.76578421562
+ 1.76720057703
+ 1.76861693845
+ 1.77003329986
+ 1.77144966128
+ 1.7728660227
+ 1.77428238411
+ 1.77569874553
+ 1.77711510695
+ 1.77853146836
+ 1.77994782978
+ 1.78136419119
+ 1.78278055261
+ 1.78419691403
+ 1.78561327544
+ 1.78702963686
+ 1.78844599828
+ 1.78986235969
+ 1.79127872111
+ 1.79269508253
+ 1.79411144394
+ 1.79552780536
+ 1.79694416677
+ 1.79836052819
+ 1.79977688961
+ 1.80119325102
+ 1.80260961244
+ 1.80402597386
+ 1.80544233527
+ 1.80685869669
+ 1.80827505811
+ 1.80969141952
+ 1.81110778094
+ 1.81252414235
+ 1.81394050377
+ 1.81535686519
+ 1.8167732266
+ 1.81818958802
+ 1.81960594944
+ 1.82102231085
+ 1.82243867227
+ 1.82385503369
+ 1.8252713951
+ 1.82668775652
+ 1.82810411793
+ 1.82952047935
+ 1.83093684077
+ 1.83235320218
+ 1.8337695636
+ 1.83518592502
+ 1.83660228643
+ 1.83801864785
+ 1.83943500927
+ 1.84085137068
+ 1.8422677321
+ 1.84368409351
+ 1.84510045493
+ 1.84651681635
+ 1.84793317776
+ 1.84934953918
+ 1.8507659006
+ 1.85218226201
+ 1.85359862343
+ 1.85501498485
+ 1.85643134626
+ 1.85784770768
+ 1.85926406909
+ 1.86068043051
+ 1.86209679193
+ 1.86351315334
+ 1.86492951476
+ 1.86634587618
+ 1.86776223759
+ 1.86917859901
+ 1.87059496043
+ 1.87201132184
+ 1.87342768326
+ 1.87484404467
+ 1.87626040609
+ 1.87767676751
+ 1.87909312892
+ 1.88050949034
+ 1.88192585176
+ 1.88334221317
+ 1.88475857459
+ 1.88617493601
+ 1.88759129742
+ 1.88900765884
+ 1.89042402025
+ 1.89184038167
+ 1.89325674309
+ 1.8946731045
+ 1.89608946592
+ 1.89750582734
+ 1.89892218875
+ 1.90033855017
+ 1.90175491159
+ 1.903171273
+ 1.90458763442
+ 1.90600399583
+ 1.90742035725
+ 1.90883671867
+ 1.91025308008
+ 1.9116694415
+ 1.91308580292
+ 1.91450216433
+ 1.91591852575
+ 1.91733488717
+ 1.91875124858
+ 1.92016761
+ 1.92158397141
+ 1.92300033283
+ 1.92441669425
+ 1.92583305566
+ 1.92724941708
+ 1.9286657785
+ 1.93008213991
+ 1.93149850133
+ 1.93291486275
+ 1.93433122416
+ 1.93574758558
+ 1.93716394699
+ 1.93858030841
+ 1.93999666983
+ 1.94141303124
+ 1.94282939266
+ 1.94424575408
+ 1.94566211549
+ 1.94707847691
+ 1.94849483833
+ 1.94991119974
+ 1.95132756116
+ 1.95274392257
+ 1.95416028399
+ 1.95557664541
+ 1.95699300682
+ 1.95840936824
+ 1.95982572966
+ 1.96124209107
+ 1.96265845249
+ 1.96407481391
+ 1.96549117532
+ 1.96690753674
+ 1.96832389815
+ 1.96974025957
+ 1.97115662099
+ 1.9725729824
+ 1.97398934382
+ 1.97540570524
+ 1.97682206665
+ 1.97823842807
+ 1.97965478949
+ 1.9810711509
+ 1.98248751232
+ 1.98390387373
+ 1.98532023515
+ 1.98673659657
+ 1.98815295798
+ 1.9895693194
+ 1.99098568082
+ 1.99240204223
+ 1.99381840365
+ 1.99523476507
+ 1.99665112648
+ 1.9980674879
+ 1.99948384931
+ 2.00090021073
+ 2.00231657215
+ 2.00373293356
+ 2.00514929498
+ 2.0065656564
+ 2.00798201781
+ 2.00939837923
+ 2.01081474065
+ 2.01223110206
+ 2.01364746348
+ 2.01506382489
+ 2.01648018631
+ 2.01789654773
+ 2.01931290914
+ 2.02072927056
+ 2.02214563198
+ 2.02356199339
+ 2.02497835481
+ 2.02639471623
+ 2.02781107764
+ 2.02922743906
+ 2.03064380047
+ 2.03206016189
+ 2.03347652331
+ 2.03489288472
+ 2.03630924614
+ 2.03772560756
+ 2.03914196897
+ 2.04055833039
+ 2.04197469181
+ 2.04339105322
+ 2.04480741464
+ 2.04622377605
+ 2.04764013747
+ 2.04905649889
+ 2.0504728603
+ 2.05188922172
+ 2.05330558314
+ 2.05472194455
+ 2.05613830597
+ 2.05755466739
+ 2.0589710288
+ 2.06038739022
+ 2.06180375163
+ 2.06322011305
+ 2.06463647447
+ 2.06605283588
+ 2.0674691973
+ 2.06888555872
+ 2.07030192013
+ 2.07171828155
+ 2.07313464297
+ 2.07455100438
+ 2.0759673658
+ 2.07738372721
+ 2.07880008863
+ 2.08021645005
+ 2.08163281146
+ 2.08304917288
+ 2.0844655343
+ 2.08588189571
+ 2.08729825713
+ 2.08871461855
+ 2.09013097996
+ 2.09154734138
+ 2.09296370279
+ 2.09438006421
+ 2.09579642563
+ 2.09721278704
+ 2.09862914846
+ 2.10004550988
+ 2.10146187129
+ 2.10287823271
+ 2.10429459413
+ 2.10571095554
+ 2.10712731696
+ 2.10854367837
+ 2.10996003979
+ 2.11137640121
+ 2.11279276262
+ 2.11420912404
+ 2.11562548546
+ 2.11704184687
+ 2.11845820829
+ 2.11987456971
+ 2.12129093112
+ 2.12270729254
+ 2.12412365395
+ 2.12554001537
+ 2.12695637679
+ 2.1283727382
+ 2.12978909962
+ 2.13120546104
+ 2.13262182245
+ 2.13403818387
+ 2.13545454529
+ 2.1368709067
+ 2.13828726812
+ 2.13970362953
+ 2.14111999095
+ 2.14253635237
+ 2.14395271378
+ 2.1453690752
+ 2.14678543662
+ 2.14820179803
+ 2.14961815945
+ 2.15103452087
+ 2.15245088228
+ 2.1538672437
+ 2.15528360511
+ 2.15669996653
+ 2.15811632795
+ 2.15953268936
+ 2.16094905078
+ 2.1623654122
+ 2.16378177361
+ 2.16519813503
+ 2.16661449645
+ 2.16803085786
+ 2.16944721928
+ 2.17086358069
+ 2.17227994211
+ 2.17369630353
+ 2.17511266494
+ 2.17652902636
+ 2.17794538778
+ 2.17936174919
+ 2.18077811061
+ 2.18219447203
+ 2.18361083344
+ 2.18502719486
+ 2.18644355627
+ 2.18785991769
+ 2.18927627911
+ 2.19069264052
+ 2.19210900194
+ 2.19352536336
+ 2.19494172477
+ 2.19635808619
+ 2.19777444761
+ 2.19919080902
+ 2.20060717044
+ 2.20202353185
+ 2.20343989327
+ 2.20485625469
+ 2.2062726161
+ 2.20768897752
+ 2.20910533894
+ 2.21052170035
+ 2.21193806177
+ 2.21335442319
+ 2.2147707846
+ 2.21618714602
+ 2.21760350743
+ 2.21901986885
+ 2.22043623027
+ 2.22185259168
+ 2.2232689531
+ 2.22468531452
+ 2.22610167593
+ 2.22751803735
+ 2.22893439877
+ 2.23035076018
+ 2.2317671216
+ 2.23318348301
+ 2.23459984443
+ 2.23601620585
+ 2.23743256726
+ 2.23884892868
+ 2.2402652901
+ 2.24168165151
+ 2.24309801293
+ 2.24451437435
+ 2.24593073576
+ 2.24734709718
+ 2.24876345859
+ 2.25017982001
+ 2.25159618143
+ 2.25301254284
+ 2.25442890426
+ 2.25584526568
+ 2.25726162709
+ 2.25867798851
+ 2.26009434993
+ 2.26151071134
+ 2.26292707276
+ 2.26434343417
+ 2.26575979559
+ 2.26717615701
+ 2.26859251842
+ 2.27000887984
+ 2.27142524126
+ 2.27284160267
+ 2.27425796409
+ 2.27567432551
+ 2.27709068692
+ 2.27850704834
+ 2.27992340975
+ 2.28133977117
+ 2.28275613259
+ 2.284172494
+ 2.28558885542
+ 2.28700521684
+ 2.28842157825
+ 2.28983793967
+ 2.29125430109
+ 2.2926706625
+ 2.29408702392
+ 2.29550338533
+ 2.29691974675
+ 2.29833610817
+ 2.29975246958
+ 2.301168831
+ 2.30258519242
+ 2.30400155383
+ 2.30541791525
+ 2.30683427667
+ 2.30825063808
+ 2.3096669995
+ 2.31108336091
+ 2.31249972233
+ 2.31391608375
+ 2.31533244516
+ 2.31674880658
+ 2.318165168
+ 2.31958152941
+ 2.32099789083
+ 2.32241425225
+ 2.32383061366
+ 2.32524697508
+ 2.32666333649
+ 2.32807969791
+ 2.32949605933
+ 2.33091242074
+ 2.33232878216
+ 2.33374514358
+ 2.33516150499
+ 2.33657786641
+ 2.33799422783
+ 2.33941058924
+ 2.34082695066
+ 2.34224331207
+ 2.34365967349
+ 2.34507603491
+ 2.34649239632
+ 2.34790875774
+ 2.34932511916
+ 2.35074148057
+ 2.35215784199
+ 2.35357420341
+ 2.35499056482
+ 2.35640692624
+ 2.35782328765
+ 2.35923964907
+ 2.36065601049
+ 2.3620723719
+ 2.36348873332
+ 2.36490509474
+ 2.36632145615
+ 2.36773781757
+ 2.36915417898
+ 2.3705705404
+ 2.37198690182
+ 2.37340326323
+ 2.37481962465
+ 2.37623598607
+ 2.37765234748
+ 2.3790687089
+ 2.38048507032
+ 2.38190143173
+ 2.38331779315
+ 2.38473415456
+ 2.38615051598
+ 2.3875668774
+ 2.38898323881
+ 2.39039960023
+ 2.39181596165
+ 2.39323232306
+ 2.39464868448
+ 2.3960650459
+ 2.39748140731
+ 2.39889776873
+ 2.40031413014
+ 2.40173049156
+ 2.40314685298
+ 2.40456321439
+ 2.40597957581
+ 2.40739593723
+ 2.40881229864
+ 2.41022866006
+ 2.41164502148
+ 2.41306138289
+ 2.41447774431
+ 2.41589410572
+ 2.41731046714
+ 2.41872682856
+ 2.42014318997
+ 2.42155955139
+ 2.42297591281
+ 2.42439227422
+ 2.42580863564
+ 2.42722499706
+ 2.42864135847
+ 2.43005771989
+ 2.4314740813
+ 2.43289044272
+ 2.43430680414
+ 2.43572316555
+ 2.43713952697
+ 2.43855588839
+ 2.4399722498
+ 2.44138861122
+ 2.44280497264
+ 2.44422133405
+ 2.44563769547
+ 2.44705405688
+ 2.4484704183
+ 2.44988677972
+ 2.45130314113
+ 2.45271950255
+ 2.45413586397
+ 2.45555222538
+ 2.4569685868
+ 2.45838494822
+ 2.45980130963
+ 2.46121767105
+ 2.46263403246
+ 2.46405039388
+ 2.4654667553
+ 2.46688311671
+ 2.46829947813
+ 2.46971583955
+ 2.47113220096
+ 2.47254856238
+ 2.4739649238
+ 2.47538128521
+ 2.47679764663
+ 2.47821400804
+ 2.47963036946
+ 2.48104673088
+ 2.48246309229
+ 2.48387945371
+ 2.48529581513
+ 2.48671217654
+ 2.48812853796
+ 2.48954489938
+ 2.49096126079
+ 2.49237762221
+ 2.49379398362
+ 2.49521034504
+ 2.49662670646
+ 2.49804306787
+ 2.49945942929
+ 2.50087579071
+ 2.50229215212
+ 2.50370851354
+ 2.50512487496
+ 2.50654123637
+ 2.50795759779
+ 2.5093739592
+ 2.51079032062
+ 2.51220668204
+ 2.51362304345
+ 2.51503940487
+ 2.51645576629
+ 2.5178721277
+ 2.51928848912
+ 2.52070485054
+ 2.52212121195
+ 2.52353757337
+ 2.52495393478
+ 2.5263702962
+ 2.52778665762
+ 2.52920301903
+ 2.53061938045
+ 2.53203574187
+ 2.53345210328
+ 2.5348684647
+ 2.53628482612
+ 2.53770118753
+ 2.53911754895
+ 2.54053391036
+ 2.54195027178
+ 2.5433666332
+ 2.54478299461
+ 2.54619935603
+ 2.54761571745
+ 2.54903207886
+ 2.55044844028
+ 2.5518648017
+ 2.55328116311
+ 2.55469752453
+ 2.55611388594
+ 2.55753024736
+ 2.55894660878
+ 2.56036297019
+ 2.56177933161
+ 2.56319569303
+ 2.56461205444
+ 2.56602841586
+ 2.56744477728
+ 2.56886113869
+ 2.57027750011
+ 2.57169386152
+ 2.57311022294
+ 2.57452658436
+ 2.57594294577
+ 2.57735930719
+ 2.57877566861
+ 2.58019203002
+ 2.58160839144
+ 2.58302475286
+ 2.58444111427
+ 2.58585747569
+ 2.5872738371
+ 2.58869019852
+ 2.59010655994
+ 2.59152292135
+ 2.59293928277
+ 2.59435564419
+ 2.5957720056
+ 2.59718836702
+ 2.59860472844
+ 2.60002108985
+ 2.60143745127
+ 2.60285381268
+ 2.6042701741
+ 2.60568653552
+ 2.60710289693
+ 2.60851925835
+ 2.60993561977
+ 2.61135198118
+ 2.6127683426
+ 2.61418470402
+ 2.61560106543
+ 2.61701742685
+ 2.61843378826
+ 2.61985014968
+ 2.6212665111
+ 2.62268287251
+ 2.62409923393
+ 2.62551559535
+ 2.62693195676
+ 2.62834831818
+ 2.6297646796
+ 2.63118104101
+ 2.63259740243
+ 2.63401376384
+ 2.63543012526
+ 2.63684648668
+ 2.63826284809
+ 2.63967920951
+ 2.64109557093
+ 2.64251193234
+ 2.64392829376
+ 2.64534465518
+ 2.64676101659
+ 2.64817737801
+ 2.64959373942
+ 2.65101010084
+ 2.65242646226
+ 2.65384282367
+ 2.65525918509
+ 2.65667554651
+ 2.65809190792
+ 2.65950826934
+ 2.66092463076
+ 2.66234099217
+ 2.66375735359
+ 2.665173715
+ 2.66659007642
+ 2.66800643784
+ 2.66942279925
+ 2.67083916067
+ 2.67225552209
+ 2.6736718835
+ 2.67508824492
+ 2.67650460634
+ 2.67792096775
+ 2.67933732917
+ 2.68075369058
+ 2.682170052
+ 2.68358641342
+ 2.68500277483
+ 2.68641913625
+ 2.68783549767
+ 2.68925185908
+ 2.6906682205
+ 2.69208458192
+ 2.69350094333
+ 2.69491730475
+ 2.69633366616
+ 2.69775002758
+ 2.699166389
+ 2.70058275041
+ 2.70199911183
+ 2.70341547325
+ 2.70483183466
+ 2.70624819608
+ 2.7076645575
+ 2.70908091891
+ 2.71049728033
+ 2.71191364174
+ 2.71333000316
+ 2.71474636458
+ 2.71616272599
+ 2.71757908741
+ 2.71899544883
+ 2.72041181024
+ 2.72182817166
+ 2.72324453308
+ 2.72466089449
+ 2.72607725591
+ 2.72749361732
+ 2.72890997874
+ 2.73032634016
+ 2.73174270157
+ 2.73315906299
+ 2.73457542441
+ 2.73599178582
+ 2.73740814724
+ 2.73882450866
+ 2.74024087007
+ 2.74165723149
+ 2.7430735929
+ 2.74448995432
+ 2.74590631574
+ 2.74732267715
+ 2.74873903857
+ 2.75015539999
+ 2.7515717614
+ 2.75298812282
+ 2.75440448424
+ 2.75582084565
+ 2.75723720707
+ 2.75865356848
+ 2.7600699299
+ 2.76148629132
+ 2.76290265273
+ 2.76431901415
+ 2.76573537557
+ 2.76715173698
+ 2.7685680984
+ 2.76998445982
+ 2.77140082123
+ 2.77281718265
+ 2.77423354406
+ 2.77564990548
+ 2.7770662669
+ 2.77848262831
+ 2.77989898973
+ 2.78131535115
+ 2.78273171256
+ 2.78414807398
+ 2.7855644354
+ 2.78698079681
+ 2.78839715823
+ 2.78981351964
+ 2.79122988106
+ 2.79264624248
+ 2.79406260389
+ 2.79547896531
+ 2.79689532673
+ 2.79831168814
+ 2.79972804956
+ 2.80114441098
+ 2.80256077239
+ 2.80397713381
+ 2.80539349522
+ 2.80680985664
+ 2.80822621806
+ 2.80964257947
+ 2.81105894089
+ 2.81247530231
+ 2.81389166372
+ 2.81530802514
+ 2.81672438656
+ 2.81814074797
+ 2.81955710939
+ 2.8209734708
+ 2.82238983222
+ 2.82380619364
+ 2.82522255505
+ 2.82663891647
+ 2.82805527789
+ 2.8294716393
+ 2.83088800072
+ 2.83230436214
+ 2.83372072355
+ 2.83513708497
+ 2.83655344638
+ 2.8379698078
+ 2.83938616922
+ 2.84080253063
+ 2.84221889205
+ 2.84363525347
+ 2.84505161488
+ 2.8464679763
+ 2.84788433772
+ 2.84930069913
+ 2.85071706055
+ 2.85213342196
+ 2.85354978338
+ 2.8549661448
+ 2.85638250621
+ 2.85779886763
+ 2.85921522905
+ 2.86063159046
+ 2.86204795188
+ 2.8634643133
+ 2.86488067471
+ 2.86629703613
+ 2.86771339754
+ 2.86912975896
+ 2.87054612038
+ 2.87196248179
+ 2.87337884321
+ 2.87479520463
+ 2.87621156604
+ 2.87762792746
+ 2.87904428888
+ 2.88046065029
+ 2.88187701171
+ 2.88329337312
+ 2.88470973454
+ 2.88612609596
+ 2.88754245737
+ 2.88895881879
+ 2.89037518021
+ 2.89179154162
+ 2.89320790304
+ 2.89462426446
+ 2.89604062587
+ 2.89745698729
+ 2.8988733487
+ 2.90028971012
+ 2.90170607154
+ 2.90312243295
+ 2.90453879437
+ 2.90595515579
+ 2.9073715172
+ 2.90878787862
+ 2.91020424004
+ 2.91162060145
+ 2.91303696287
+ 2.91445332428
+ 2.9158696857
+ 2.91728604712
+ 2.91870240853
+ 2.92011876995
+ 2.92153513137
+ 2.92295149278
+ 2.9243678542
+ 2.92578421562
+ 2.92720057703
+ 2.92861693845
+ 2.93003329986
+ 2.93144966128
+ 2.9328660227
+ 2.93428238411
+ 2.93569874553
+ 2.93711510695
+ 2.93853146836
+ 2.93994782978
+ 2.94136419119
+ 2.94278055261
+ 2.94419691403
+ 2.94561327544
+ 2.94702963686
+ 2.94844599828
+ 2.94986235969
+ 2.95127872111
+ 2.95269508253
+ 2.95411144394
+ 2.95552780536
+ 2.95694416677
+ 2.95836052819
+ 2.95977688961
+ 2.96119325102
+ 2.96260961244
+ 2.96402597386
+ 2.96544233527
+ 2.96685869669
+ 2.96827505811
+ 2.96969141952
+ 2.97110778094
+ 2.97252414235
+ 2.97394050377
+ 2.97535686519
+ 2.9767732266
+ 2.97818958802
+ 2.97960594944
+ 2.98102231085
+ 2.98243867227
+ 2.98385503369
+ 2.9852713951
+ 2.98668775652
+ 2.98810411793
+ 2.98952047935
+ 2.99093684077
+ 2.99235320218
+ 2.9937695636
+ 2.99518592502
+ 2.99660228643
+ 2.99801864785
+ 2.99943500927
+ 3.00085137068
+ 3.0022677321
+ 3.00368409351
+ 3.00510045493
+ 3.00651681635
+ 3.00793317776
+ 3.00934953918
+ 3.0107659006
+ 3.01218226201
+ 3.01359862343
+ 3.01501498485
+ 3.01643134626
+ 3.01784770768
+ 3.01926406909
+ 3.02068043051
+ 3.02209679193
+ 3.02351315334
+ 3.02492951476
+ 3.02634587618
+ 3.02776223759
+ 3.02917859901
+ 3.03059496043
+ 3.03201132184
+ 3.03342768326
+ 3.03484404467
+ 3.03626040609
+ 3.03767676751
+ 3.03909312892
+ 3.04050949034
+ 3.04192585176
+ 3.04334221317
+ 3.04475857459
+ 3.04617493601
+ 3.04759129742
+ 3.04900765884
+ 3.05042402025
+ 3.05184038167
+ 3.05325674309
+ 3.0546731045
+ 3.05608946592
+ 3.05750582734
+ 3.05892218875
+ 3.06033855017
+ 3.06175491159
+ 3.063171273
+ 3.06458763442
+ 3.06600399583
+ 3.06742035725
+ 3.06883671867
+ 3.07025308008
+ 3.0716694415
+ 3.07308580292
+ 3.07450216433
+ 3.07591852575
+ 3.07733488717
+ 3.07875124858
+ 3.08016761
+ 3.08158397141
+ 3.08300033283
+ 3.08441669425
+ 3.08583305566
+ 3.08724941708
+ 3.0886657785
+ 3.09008213991
+ 3.09149850133
+ 3.09291486275
+ 3.09433122416
+ 3.09574758558
+ 3.09716394699
+ 3.09858030841
+ 3.09999666983
+ 3.10141303124
+ 3.10282939266
+ 3.10424575408
+ 3.10566211549
+ 3.10707847691
+ 3.10849483833
+ 3.10991119974
+ 3.11132756116
+ 3.11274392257
+ 3.11416028399
+ 3.11557664541
+ 3.11699300682
+ 3.11840936824
+ 3.11982572966
+ 3.12124209107
+ 3.12265845249
+ 3.12407481391
+ 3.12549117532
+ 3.12690753674
+ 3.12832389815
+ 3.12974025957
+ 3.13115662099
+ 3.1325729824
+ 3.13398934382
+ 3.13540570524
+ 3.13682206665
+ 3.13823842807
+ 3.13965478949
+ 3.1410711509
+ 3.14248751232
+ 3.14390387373
+ 3.14532023515
+ 3.14673659657
+ 3.14815295798
+ 3.1495693194
+ 3.15098568082
+ 3.15240204223
+ 3.15381840365
+ 3.15523476507
+ 3.15665112648
+ 3.1580674879
+ 3.15948384931
+ 3.16090021073
+ 3.16231657215
+ 3.16373293356
+ 3.16514929498
+ 3.1665656564
+ 3.16798201781
+ 3.16939837923
+ 3.17081474065
+ 3.17223110206
+ 3.17364746348
+ 3.17506382489
+ 3.17648018631
+ 3.17789654773
+ 3.17931290914
+ 3.18072927056
+ 3.18214563198
+ 3.18356199339
+ 3.18497835481
+ 3.18639471623
+ 3.18781107764
+ 3.18922743906
+ 3.19064380047
+ 3.19206016189
+ 3.19347652331
+ 3.19489288472
+ 3.19630924614
+ 3.19772560756
+ 3.19914196897
+ 3.20055833039
+ 3.20197469181
+ 3.20339105322
+ 3.20480741464
+ 3.20622377605
+ 3.20764013747
+ 3.20905649889
+ 3.2104728603
+ 3.21188922172
+ 3.21330558314
+ 3.21472194455
+ 3.21613830597
+ 3.21755466739
+ 3.2189710288
+ 3.22038739022
+ 3.22180375163
+ 3.22322011305
+ 3.22463647447
+ 3.22605283588
+ 3.2274691973
+ 3.22888555872
+ 3.23030192013
+ 3.23171828155
+ 3.23313464297
+ 3.23455100438
+ 3.2359673658
+ 3.23738372721
+ 3.23880008863
+ 3.24021645005
+ 3.24163281146
+ 3.24304917288
+ 3.2444655343
+ 3.24588189571
+ 3.24729825713
+ 3.24871461855
+ 3.25013097996
+ 3.25154734138
+ 3.25296370279
+ 3.25438006421
+ 3.25579642563
+ 3.25721278704
+ 3.25862914846
+ 3.26004550988
+ 3.26146187129
+ 3.26287823271
+ 3.26429459413
+ 3.26571095554
+ 3.26712731696
+ 3.26854367837
+ 3.26996003979
+ 3.27137640121
+ 3.27279276262
+ 3.27420912404
+ 3.27562548546
+ 3.27704184687
+ 3.27845820829
+ 3.27987456971
+ 3.28129093112
+ 3.28270729254
+ 3.28412365395
+ 3.28554001537
+ 3.28695637679
+ 3.2883727382
+ 3.28978909962
+ 3.29120546104
+ 3.29262182245
+ 3.29403818387
+ 3.29545454529
+ 3.2968709067
+ 3.29828726812
+ 3.29970362953
+ 3.30111999095
+ 3.30253635237
+ 3.30395271378
+ 3.3053690752
+ 3.30678543662
+ 3.30820179803
+ 3.30961815945
+ 3.31103452087
+ 3.31245088228
+ 3.3138672437
+ 3.31528360511
+ 3.31669996653
+ 3.31811632795
+ 3.31953268936
+ 3.32094905078
+ 3.3223654122
+ 3.32378177361
+ 3.32519813503
+ 3.32661449645
+ 3.32803085786
+ 3.32944721928
+ 3.33086358069
+ 3.33227994211
+ 3.33369630353
+ 3.33511266494
+ 3.33652902636
+ 3.33794538778
+ 3.33936174919
+ 3.34077811061
+ 3.34219447203
+ 3.34361083344
+ 3.34502719486
+ 3.34644355627
+ 3.34785991769
+ 3.34927627911
+ 3.35069264052
+ 3.35210900194
+ 3.35352536336
+ 3.35494172477
+ 3.35635808619
+ 3.35777444761
+ 3.35919080902
+ 3.36060717044
+ 3.36202353185
+ 3.36343989327
+ 3.36485625469
+ 3.3662726161
+ 3.36768897752
+ 3.36910533894
+ 3.37052170035
+ 3.37193806177
+ 3.37335442319
+ 3.3747707846
+ 3.37618714602
+ 3.37760350743
+ 3.37901986885
+ 3.38043623027
+ 3.38185259168
+ 3.3832689531
+ 3.38468531452
+ 3.38610167593
+ 3.38751803735
+ 3.38893439877
+ 3.39035076018
+ 3.3917671216
+ 3.39318348301
+ 3.39459984443
+ 3.39601620585
+ 3.39743256726
+ 3.39884892868
+ 3.4002652901
+ 3.40168165151
+ 3.40309801293
+ 3.40451437435
+ 3.40593073576
+ 3.40734709718
+ 3.40876345859
+ 3.41017982001
+ 3.41159618143
+ 3.41301254284
+ 3.41442890426
+ 3.41584526568
+ 3.41726162709
+ 3.41867798851
+ 3.42009434993
+ 3.42151071134
+ 3.42292707276
+ 3.42434343417
+ 3.42575979559
+ 3.42717615701
+ 3.42859251842
+ 3.43000887984
+ 3.43142524126
+ 3.43284160267
+ 3.43425796409
+ 3.43567432551
+ 3.43709068692
+}
diff --git a/release/datafiles/colormanagement/luts/adx_exp_to_aces.spimtx b/release/datafiles/colormanagement/luts/adx_exp_to_aces.spimtx
new file mode 100644
index 00000000000..0c561590e11
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/adx_exp_to_aces.spimtx
@@ -0,0 +1,4 @@
+0.72286 0.12630 0.15084 0
+0.11923 0.76418 0.11659 0
+0.01427 0.08213 0.90359 0
+
diff --git a/release/datafiles/colormanagement/luts/colorworks_filmlg_to_p3.3dl b/release/datafiles/colormanagement/luts/colorworks_filmlg_to_p3.3dl
new file mode 100644
index 00000000000..db936eb7ce4
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/colorworks_filmlg_to_p3.3dl
@@ -0,0 +1,4916 @@
+# Autodesk 3D Export from Truelight v3.0
+ 0 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1023
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 0 100
+ 0 0 274
+ 0 0 608
+ 0 0 785
+ 0 0 1010
+ 0 0 1183
+ 0 0 1349
+ 0 0 1471
+ 0 0 1638
+ 0 0 1854
+ 0 65 1989
+ 0 451 2073
+ 0 722 2132
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 0 303
+ 0 0 419
+ 0 0 656
+ 0 0 846
+ 0 0 1071
+ 0 0 1250
+ 0 0 1419
+ 0 0 1549
+ 0 0 1714
+ 0 0 1920
+ 0 146 2048
+ 0 543 2129
+ 0 820 2186
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 0 187
+ 0 15 337
+ 0 64 462
+ 0 110 709
+ 0 137 910
+ 0 54 1141
+ 0 140 1323
+ 0 0 1500
+ 0 21 1637
+ 0 200 1797
+ 0 470 1986
+ 0 658 2106
+ 0 813 2183
+ 0 922 2238
+ 0 13 0
+ 0 82 0
+ 0 134 0
+ 0 132 235
+ 0 199 382
+ 0 224 503
+ 0 275 764
+ 0 306 981
+ 0 304 1215
+ 0 336 1407
+ 0 293 1596
+ 0 297 1733
+ 0 478 1887
+ 0 698 2060
+ 0 847 2172
+ 0 953 2246
+ 0 1026 2297
+ 0 209 0
+ 0 250 0
+ 0 277 194
+ 0 283 274
+ 0 314 420
+ 0 353 552
+ 0 396 822
+ 0 438 1050
+ 0 458 1290
+ 0 491 1488
+ 0 493 1691
+ 0 519 1824
+ 0 631 1965
+ 0 837 2125
+ 0 974 2234
+ 0 1060 2301
+ 0 1120 2349
+ 0 283 0
+ 0 349 133
+ 0 381 230
+ 0 374 307
+ 0 423 467
+ 0 444 600
+ 0 513 884
+ 0 560 1135
+ 0 597 1382
+ 0 635 1589
+ 0 663 1806
+ 0 695 1940
+ 0 794 2067
+ 0 985 2214
+ 0 1105 2307
+ 0 1180 2364
+ 0 1232 2405
+ 0 541 0
+ 0 567 211
+ 0 599 297
+ 0 612 366
+ 0 657 537
+ 0 692 692
+ 0 741 972
+ 0 789 1230
+ 0 827 1487
+ 0 871 1702
+ 0 913 1916
+ 0 946 2055
+ 0 1029 2178
+ 0 1178 2303
+ 0 1271 2382
+ 0 1329 2431
+ 0 1370 2465
+ 0 688 0
+ 0 718 268
+ 0 746 339
+ 0 764 408
+ 0 816 589
+ 0 865 753
+ 0 935 1052
+ 0 995 1324
+ 0 1046 1595
+ 0 1094 1814
+ 0 1142 2037
+ 0 1172 2173
+ 0 1238 2283
+ 0 1354 2387
+ 0 1434 2455
+ 0 1484 2497
+ 0 1519 2527
+ 0 934 0
+ 0 955 310
+ 0 985 400
+ 0 1018 469
+ 0 1064 643
+ 0 1117 831
+ 0 1200 1141
+ 0 1267 1425
+ 0 1334 1721
+ 0 1379 1936
+ 0 1437 2154
+ 0 1454 2293
+ 0 1504 2395
+ 0 1577 2473
+ 0 1631 2527
+ 0 1670 2565
+ 0 1698 2592
+ 0 1117 0
+ 0 1142 341
+ 0 1173 435
+ 0 1210 510
+ 0 1256 689
+ 0 1311 885
+ 0 1393 1206
+ 0 1470 1498
+ 0 1545 1799
+ 0 1594 2023
+ 0 1649 2233
+ 0 1673 2377
+ 0 1710 2480
+ 0 1767 2556
+ 0 1803 2603
+ 0 1825 2632
+ 0 1845 2654
+ 0 1309 125
+ 0 1326 356
+ 0 1357 457
+ 0 1397 541
+ 0 1443 720
+ 0 1503 922
+ 0 1593 1264
+ 0 1677 1570
+ 0 1760 1877
+ 0 1804 2104
+ 0 1850 2318
+ 0 1875 2459
+ 0 1903 2558
+ 0 1938 2626
+ 0 1960 2668
+ 0 1973 2694
+ 0 1987 2714
+ 0 1399 171
+ 0 1421 375
+ 0 1450 478
+ 0 1487 570
+ 0 1540 771
+ 0 1603 976
+ 0 1692 1312
+ 0 1776 1619
+ 0 1849 1918
+ 0 1897 2144
+ 0 1943 2359
+ 0 1969 2493
+ 0 1995 2592
+ 0 2027 2659
+ 0 2048 2701
+ 0 2061 2728
+ 0 2071 2746
+ 0 1496 237
+ 0 1525 435
+ 0 1558 553
+ 0 1595 666
+ 0 1657 898
+ 0 1715 1099
+ 0 1804 1426
+ 0 1882 1722
+ 0 1949 2011
+ 0 1993 2226
+ 0 2035 2428
+ 0 2062 2551
+ 0 2087 2636
+ 0 2118 2701
+ 0 2138 2744
+ 0 2151 2770
+ 0 2159 2788
+ 0 1593 308
+ 0 1628 505
+ 0 1670 650
+ 0 1711 789
+ 0 1778 1055
+ 0 1835 1260
+ 0 1918 1572
+ 0 1989 1851
+ 0 2049 2127
+ 0 2090 2329
+ 0 2124 2509
+ 0 2152 2617
+ 0 2177 2702
+ 0 2205 2749
+ 0 2224 2790
+ 0 2237 2816
+ 0 2246 2835
+ 0 1653 352
+ 0 1693 549
+ 0 1740 711
+ 0 1784 866
+ 0 1851 1140
+ 0 1912 1367
+ 0 1991 1667
+ 0 2058 1939
+ 0 2111 2199
+ 0 2150 2394
+ 0 2180 2560
+ 0 2208 2664
+ 0 2234 2743
+ 0 2261 2790
+ 0 2278 2819
+ 0 2291 2846
+ 0 2300 2864
+ 0 1692 380
+ 0 1734 577
+ 0 1784 750
+ 0 1831 915
+ 0 1898 1195
+ 0 1961 1435
+ 0 2038 1727
+ 0 2102 1996
+ 0 2153 2249
+ 0 2189 2435
+ 0 2216 2594
+ 0 2244 2697
+ 0 2270 2769
+ 0 2297 2816
+ 0 2315 2846
+ 0 2325 2864
+ 0 2334 2883
+ 0 1720 400
+ 0 1763 597
+ 0 1816 778
+ 0 1864 950
+ 0 1932 1234
+ 0 1996 1484
+ 0 2071 1771
+ 0 2134 2037
+ 0 2184 2287
+ 0 2217 2468
+ 0 2244 2623
+ 0 2269 2720
+ 0 2296 2788
+ 0 2323 2835
+ 0 2341 2865
+ 0 2351 2883
+ 0 2359 2896
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 0 262
+ 0 0 380
+ 0 0 627
+ 0 0 807
+ 0 0 1028
+ 0 0 1205
+ 0 0 1371
+ 0 0 1498
+ 0 0 1670
+ 0 0 1892
+ 0 83 2030
+ 0 473 2117
+ 0 745 2176
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 0 144
+ 0 0 330
+ 0 0 455
+ 0 0 665
+ 0 0 864
+ 0 0 1085
+ 0 0 1272
+ 0 0 1439
+ 0 0 1577
+ 0 0 1748
+ 0 0 1956
+ 0 158 2086
+ 0 557 2170
+ 0 835 2227
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 11 223
+ 0 68 364
+ 0 110 499
+ 0 130 711
+ 0 145 928
+ 0 104 1155
+ 0 93 1348
+ 0 0 1520
+ 0 0 1665
+ 0 23 1832
+ 0 296 2025
+ 0 530 2147
+ 0 789 2226
+ 0 933 2281
+ 0 101 0
+ 0 130 0
+ 0 155 118
+ 0 180 265
+ 0 223 405
+ 0 251 546
+ 0 288 771
+ 0 313 1004
+ 0 328 1235
+ 0 337 1436
+ 0 334 1617
+ 0 343 1760
+ 0 484 1920
+ 0 709 2098
+ 0 861 2213
+ 0 968 2288
+ 0 1042 2341
+ 0 265 0
+ 0 285 0
+ 0 296 205
+ 0 318 305
+ 0 342 442
+ 0 382 596
+ 0 415 833
+ 0 454 1074
+ 0 478 1312
+ 0 502 1522
+ 0 514 1712
+ 0 538 1854
+ 0 647 2000
+ 0 854 2164
+ 0 995 2275
+ 0 1083 2344
+ 0 1144 2392
+ 0 368 0
+ 0 406 134
+ 0 431 255
+ 0 441 343
+ 0 479 493
+ 0 507 645
+ 0 561 901
+ 0 602 1159
+ 0 638 1406
+ 0 671 1627
+ 0 701 1827
+ 0 732 1970
+ 0 832 2104
+ 0 1022 2256
+ 0 1140 2350
+ 0 1214 2409
+ 0 1266 2450
+ 0 584 0
+ 0 598 210
+ 0 613 305
+ 0 636 394
+ 0 670 548
+ 0 710 722
+ 0 759 985
+ 0 811 1253
+ 0 857 1511
+ 0 900 1744
+ 0 940 1941
+ 0 971 2087
+ 0 1055 2215
+ 0 1210 2344
+ 0 1307 2425
+ 0 1368 2475
+ 0 1409 2510
+ 0 737 0
+ 0 763 266
+ 0 790 354
+ 0 812 441
+ 0 861 609
+ 0 910 787
+ 0 979 1069
+ 0 1041 1351
+ 0 1095 1621
+ 0 1142 1854
+ 0 1185 2061
+ 0 1218 2207
+ 0 1288 2322
+ 0 1407 2430
+ 0 1489 2501
+ 0 1539 2545
+ 0 1575 2576
+ 0 982 0
+ 0 997 304
+ 0 1021 399
+ 0 1054 493
+ 0 1102 660
+ 0 1158 861
+ 0 1233 1154
+ 0 1302 1446
+ 0 1366 1736
+ 0 1416 1969
+ 0 1467 2173
+ 0 1491 2324
+ 0 1546 2435
+ 0 1627 2521
+ 0 1684 2578
+ 0 1725 2616
+ 0 1754 2643
+ 0 1177 0
+ 0 1199 333
+ 0 1227 430
+ 0 1262 530
+ 0 1311 705
+ 0 1369 916
+ 0 1447 1220
+ 0 1527 1525
+ 0 1597 1817
+ 0 1654 2063
+ 0 1700 2262
+ 0 1729 2416
+ 0 1770 2526
+ 0 1827 2605
+ 0 1864 2654
+ 0 1886 2684
+ 0 1907 2707
+ 0 1367 109
+ 0 1378 347
+ 0 1402 454
+ 0 1442 560
+ 0 1493 744
+ 0 1556 962
+ 0 1640 1279
+ 0 1722 1592
+ 0 1796 1889
+ 0 1846 2133
+ 0 1888 2341
+ 0 1917 2490
+ 0 1951 2596
+ 0 1995 2669
+ 0 2022 2715
+ 0 2039 2743
+ 0 2054 2764
+ 0 1475 156
+ 0 1495 364
+ 0 1521 474
+ 0 1557 590
+ 0 1613 790
+ 0 1679 1013
+ 0 1760 1332
+ 0 1841 1648
+ 0 1911 1940
+ 0 1968 2183
+ 0 2009 2391
+ 0 2038 2539
+ 0 2066 2642
+ 0 2097 2709
+ 0 2119 2752
+ 0 2136 2780
+ 0 2147 2799
+ 0 1581 222
+ 0 1609 424
+ 0 1641 549
+ 0 1679 688
+ 0 1740 910
+ 0 1802 1138
+ 0 1883 1447
+ 0 1957 1753
+ 0 2024 2039
+ 0 2078 2270
+ 0 2117 2466
+ 0 2144 2600
+ 0 2171 2693
+ 0 2202 2758
+ 0 2221 2799
+ 0 2234 2825
+ 0 2242 2843
+ 0 1683 292
+ 0 1715 495
+ 0 1753 648
+ 0 1798 810
+ 0 1865 1066
+ 0 1925 1298
+ 0 2001 1598
+ 0 2067 1883
+ 0 2129 2157
+ 0 2179 2373
+ 0 2214 2551
+ 0 2240 2665
+ 0 2267 2757
+ 0 2294 2806
+ 0 2313 2847
+ 0 2326 2873
+ 0 2334 2891
+ 0 1746 336
+ 0 1781 539
+ 0 1824 710
+ 0 1873 887
+ 0 1941 1156
+ 0 2004 1400
+ 0 2076 1696
+ 0 2139 1972
+ 0 2195 2231
+ 0 2242 2438
+ 0 2275 2604
+ 0 2301 2713
+ 0 2327 2798
+ 0 2354 2846
+ 0 2371 2877
+ 0 2383 2902
+ 0 2392 2921
+ 0 1787 364
+ 0 1823 567
+ 0 1869 750
+ 0 1921 936
+ 0 1991 1213
+ 0 2054 1465
+ 0 2125 1759
+ 0 2185 2030
+ 0 2238 2282
+ 0 2282 2480
+ 0 2315 2640
+ 0 2340 2747
+ 0 2366 2823
+ 0 2393 2872
+ 0 2409 2902
+ 0 2420 2921
+ 0 2428 2940
+ 0 1815 384
+ 0 1853 587
+ 0 1901 778
+ 0 1955 972
+ 0 2025 1253
+ 0 2089 1513
+ 0 2159 1803
+ 0 2218 2072
+ 0 2270 2320
+ 0 2311 2513
+ 0 2343 2669
+ 0 2367 2771
+ 0 2392 2842
+ 0 2419 2891
+ 0 2436 2921
+ 0 2447 2940
+ 0 2454 2953
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 0 289
+ 0 0 409
+ 0 0 649
+ 0 0 830
+ 0 0 1052
+ 0 0 1228
+ 0 0 1396
+ 0 0 1525
+ 0 0 1703
+ 0 0 1932
+ 0 113 2074
+ 0 506 2162
+ 0 781 2223
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 0 201
+ 0 0 344
+ 0 0 476
+ 0 0 679
+ 0 0 885
+ 0 0 1108
+ 0 0 1298
+ 0 0 1466
+ 0 0 1609
+ 0 0 1786
+ 0 0 2002
+ 0 184 2135
+ 0 587 2219
+ 0 868 2278
+ 0 0 0
+ 0 0 0
+ 0 12 0
+ 0 60 242
+ 0 81 369
+ 0 131 525
+ 0 131 711
+ 0 137 949
+ 0 77 1174
+ 0 0 1374
+ 0 0 1545
+ 0 0 1696
+ 0 0 1870
+ 0 0 2071
+ 0 263 2196
+ 0 676 2276
+ 0 964 2333
+ 0 163 0
+ 0 170 0
+ 0 170 75
+ 0 210 281
+ 0 235 410
+ 0 265 577
+ 0 296 776
+ 0 313 1030
+ 0 338 1259
+ 0 334 1466
+ 0 345 1644
+ 0 365 1791
+ 0 489 1959
+ 0 728 2144
+ 0 887 2261
+ 0 997 2338
+ 0 1075 2392
+ 152 295 0
+ 0 309 0
+ 0 297 200
+ 0 334 320
+ 0 345 440
+ 0 400 631
+ 0 417 843
+ 0 462 1100
+ 0 486 1341
+ 0 506 1557
+ 0 524 1740
+ 0 551 1887
+ 0 661 2038
+ 0 880 2210
+ 0 1027 2324
+ 0 1119 2394
+ 0 1183 2444
+ 194 400 0
+ 132 437 142
+ 0 469 260
+ 0 479 360
+ 0 514 502
+ 0 548 676
+ 0 597 920
+ 0 636 1187
+ 0 671 1436
+ 0 706 1668
+ 0 732 1858
+ 0 764 2005
+ 0 869 2146
+ 0 1067 2303
+ 0 1188 2400
+ 0 1263 2461
+ 0 1315 2503
+ 228 627 0
+ 144 633 212
+ 0 625 305
+ 0 658 411
+ 0 680 546
+ 0 730 749
+ 0 775 999
+ 0 837 1278
+ 0 886 1540
+ 0 930 1787
+ 0 968 1976
+ 0 999 2123
+ 0 1087 2258
+ 0 1253 2392
+ 0 1355 2475
+ 0 1419 2526
+ 0 1464 2562
+ 274 784 0
+ 150 810 265
+ 0 838 355
+ 0 861 461
+ 0 909 622
+ 0 958 816
+ 0 1025 1087
+ 0 1091 1383
+ 0 1145 1654
+ 0 1193 1898
+ 0 1232 2095
+ 0 1266 2250
+ 0 1342 2371
+ 0 1469 2482
+ 0 1553 2556
+ 0 1606 2601
+ 0 1642 2634
+ 233 1034 0
+ 0 1047 301
+ 0 1064 393
+ 0 1102 508
+ 0 1149 664
+ 0 1208 888
+ 0 1277 1170
+ 0 1346 1472
+ 0 1419 1766
+ 0 1465 2009
+ 0 1513 2207
+ 0 1540 2362
+ 0 1599 2485
+ 0 1687 2577
+ 0 1748 2636
+ 0 1792 2675
+ 0 1823 2702
+ 0 1236 5
+ 0 1258 326
+ 0 1282 421
+ 0 1320 544
+ 0 1368 716
+ 0 1433 946
+ 0 1507 1236
+ 0 1590 1558
+ 0 1657 1844
+ 0 1718 2106
+ 0 1757 2301
+ 0 1789 2459
+ 0 1835 2577
+ 0 1900 2659
+ 0 1939 2709
+ 0 1963 2741
+ 0 1987 2765
+ 0 1435 29
+ 0 1445 340
+ 0 1459 447
+ 0 1507 572
+ 0 1554 757
+ 0 1622 995
+ 0 1703 1301
+ 0 1781 1620
+ 0 1844 1904
+ 0 1896 2161
+ 0 1952 2381
+ 0 1978 2533
+ 0 2017 2646
+ 0 2068 2722
+ 0 2100 2769
+ 0 2120 2799
+ 0 2136 2820
+ 0 1554 116
+ 0 1576 352
+ 0 1599 467
+ 0 1638 602
+ 0 1689 801
+ 0 1759 1046
+ 0 1834 1354
+ 0 1922 1681
+ 0 1984 1970
+ 0 2043 2226
+ 0 2081 2432
+ 0 2114 2591
+ 0 2143 2698
+ 0 2176 2763
+ 0 2200 2805
+ 0 2220 2835
+ 0 2233 2856
+ 0 1668 191
+ 0 1699 415
+ 0 1733 545
+ 0 1773 707
+ 0 1828 917
+ 0 1893 1175
+ 0 1970 1473
+ 0 2046 1787
+ 0 2112 2072
+ 0 2168 2315
+ 0 2205 2512
+ 0 2233 2653
+ 0 2260 2754
+ 0 2293 2817
+ 0 2312 2858
+ 0 2324 2883
+ 0 2332 2901
+ 0 1776 275
+ 0 1810 489
+ 0 1851 651
+ 0 1899 834
+ 0 1959 1078
+ 0 2021 1340
+ 0 2095 1630
+ 0 2163 1916
+ 0 2226 2192
+ 0 2276 2416
+ 0 2312 2602
+ 0 2337 2717
+ 0 2364 2818
+ 0 2389 2867
+ 0 2408 2906
+ 0 2420 2932
+ 0 2428 2949
+ 0 1842 321
+ 0 1878 535
+ 0 1924 716
+ 0 1977 911
+ 0 2039 1176
+ 0 2102 1440
+ 0 2173 1733
+ 0 2238 2008
+ 0 2295 2267
+ 0 2342 2479
+ 0 2377 2658
+ 0 2401 2766
+ 0 2427 2857
+ 0 2451 2906
+ 0 2468 2937
+ 0 2479 2962
+ 0 2488 2980
+ 258 1884 350
+ 0 1921 564
+ 0 1971 757
+ 0 2026 961
+ 0 2091 1238
+ 0 2153 1505
+ 0 2222 1798
+ 0 2286 2069
+ 0 2341 2318
+ 0 2384 2520
+ 0 2419 2694
+ 0 2442 2802
+ 0 2467 2882
+ 0 2491 2931
+ 0 2507 2962
+ 0 2518 2981
+ 0 2526 2999
+ 494 1914 371
+ 0 1952 585
+ 0 2004 787
+ 0 2062 996
+ 0 2128 1283
+ 0 2190 1551
+ 0 2258 1845
+ 0 2321 2112
+ 0 2374 2355
+ 0 2416 2554
+ 0 2449 2723
+ 0 2472 2827
+ 0 2495 2900
+ 0 2520 2949
+ 0 2536 2980
+ 0 2546 2999
+ 0 2554 3013
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 0 0
+ 0 0 277
+ 0 0 392
+ 0 0 662
+ 0 0 851
+ 0 0 1078
+ 0 0 1257
+ 0 0 1428
+ 0 0 1560
+ 0 0 1742
+ 0 0 1978
+ 0 138 2124
+ 0 536 2214
+ 0 814 2278
+ 0 0 0
+ 0 0 0
+ 25 0 0
+ 0 0 208
+ 0 0 360
+ 0 0 483
+ 0 0 702
+ 0 0 914
+ 0 0 1141
+ 0 0 1334
+ 0 0 1505
+ 0 0 1650
+ 0 0 1831
+ 0 0 2054
+ 0 213 2191
+ 0 620 2279
+ 0 905 2340
+ 83 12 0
+ 198 59 0
+ 208 80 0
+ 143 113 250
+ 85 140 396
+ 0 167 535
+ 0 173 746
+ 0 179 983
+ 0 146 1211
+ 0 89 1413
+ 0 0 1589
+ 0 0 1740
+ 0 0 1918
+ 0 0 2125
+ 0 296 2253
+ 0 714 2336
+ 0 1006 2395
+ 181 179 0
+ 246 211 0
+ 245 222 169
+ 196 245 290
+ 148 277 437
+ 0 292 586
+ 0 328 810
+ 0 340 1063
+ 0 363 1296
+ 0 363 1509
+ 0 363 1690
+ 0 379 1839
+ 0 516 2008
+ 0 764 2197
+ 0 928 2318
+ 0 1043 2397
+ 0 1124 2453
+ 289 320 0
+ 290 345 0
+ 287 352 218
+ 241 376 330
+ 178 396 470
+ 0 436 644
+ 0 460 877
+ 0 499 1134
+ 0 523 1381
+ 0 542 1602
+ 0 553 1788
+ 0 579 1937
+ 0 698 2089
+ 0 926 2264
+ 0 1077 2381
+ 0 1171 2454
+ 0 1238 2506
+ 310 411 0
+ 317 463 158
+ 308 502 271
+ 217 502 363
+ 61 548 526
+ 0 569 687
+ 0 627 954
+ 0 662 1225
+ 0 700 1479
+ 0 735 1714
+ 0 760 1905
+ 0 790 2054
+ 0 902 2198
+ 0 1111 2359
+ 0 1239 2458
+ 0 1319 2521
+ 0 1375 2564
+ 357 659 0
+ 366 671 218
+ 353 674 316
+ 269 704 419
+ 0 735 577
+ 0 779 769
+ 0 833 1038
+ 0 888 1322
+ 0 939 1587
+ 0 980 1834
+ 0 1017 2030
+ 0 1047 2178
+ 0 1143 2313
+ 0 1319 2452
+ 0 1425 2537
+ 0 1490 2590
+ 0 1536 2628
+ 359 834 0
+ 381 865 267
+ 359 893 361
+ 0 912 460
+ 0 970 644
+ 0 1012 832
+ 0 1085 1125
+ 0 1148 1426
+ 0 1203 1702
+ 0 1251 1947
+ 0 1289 2149
+ 0 1324 2309
+ 0 1403 2432
+ 0 1537 2545
+ 0 1626 2620
+ 0 1683 2667
+ 0 1722 2700
+ 424 1098 0
+ 384 1117 299
+ 196 1142 400
+ 0 1177 512
+ 0 1231 689
+ 0 1283 909
+ 0 1359 1210
+ 0 1428 1518
+ 0 1501 1814
+ 0 1547 2062
+ 0 1595 2269
+ 0 1620 2422
+ 0 1683 2546
+ 0 1772 2641
+ 0 1833 2701
+ 0 1878 2742
+ 0 1910 2770
+ 417 1310 0
+ 334 1338 320
+ 0 1370 424
+ 0 1404 546
+ 0 1462 741
+ 0 1523 968
+ 0 1604 1278
+ 0 1682 1603
+ 0 1749 1892
+ 0 1807 2156
+ 0 1845 2363
+ 0 1876 2524
+ 0 1925 2640
+ 0 1993 2722
+ 0 2035 2774
+ 0 2061 2807
+ 0 2084 2832
+ 399 1526 0
+ 0 1540 329
+ 0 1563 446
+ 0 1607 573
+ 0 1660 779
+ 0 1721 1012
+ 0 1805 1342
+ 0 1880 1667
+ 0 1938 1946
+ 0 1995 2205
+ 0 2056 2444
+ 0 2080 2601
+ 0 2119 2712
+ 0 2171 2788
+ 0 2202 2835
+ 0 2221 2864
+ 0 2238 2886
+ 449 1652 0
+ 60 1677 337
+ 0 1705 465
+ 0 1739 601
+ 0 1795 825
+ 0 1862 1068
+ 0 1944 1395
+ 0 2026 1726
+ 0 2083 2015
+ 0 2139 2275
+ 0 2184 2491
+ 0 2221 2657
+ 0 2250 2763
+ 0 2285 2829
+ 0 2310 2872
+ 0 2329 2901
+ 0 2342 2922
+ 543 1770 0
+ 373 1804 400
+ 0 1842 546
+ 0 1875 711
+ 0 1939 946
+ 0 1999 1200
+ 0 2081 1517
+ 0 2155 1833
+ 0 2219 2121
+ 0 2272 2371
+ 0 2309 2572
+ 0 2338 2717
+ 0 2365 2816
+ 0 2399 2880
+ 0 2421 2921
+ 0 2435 2947
+ 0 2445 2965
+ 649 1879 0
+ 499 1918 479
+ 0 1963 656
+ 0 2004 844
+ 0 2073 1110
+ 0 2131 1367
+ 0 2209 1675
+ 0 2275 1964
+ 0 2336 2242
+ 0 2385 2472
+ 0 2420 2663
+ 0 2444 2780
+ 0 2471 2879
+ 0 2495 2927
+ 0 2517 2968
+ 0 2531 2994
+ 0 2541 3012
+ 727 1948 96
+ 601 1988 527
+ 0 2038 723
+ 0 2085 925
+ 0 2154 1208
+ 0 2214 1473
+ 0 2289 1778
+ 0 2353 2057
+ 0 2409 2316
+ 0 2454 2535
+ 0 2489 2719
+ 0 2512 2831
+ 0 2538 2920
+ 0 2562 2968
+ 0 2578 2998
+ 0 2591 3024
+ 0 2601 3042
+ 777 1992 235
+ 666 2034 558
+ 276 2085 766
+ 0 2136 977
+ 0 2206 1270
+ 0 2267 1541
+ 0 2341 1844
+ 0 2404 2118
+ 0 2456 2368
+ 0 2498 2576
+ 0 2533 2756
+ 0 2556 2867
+ 0 2580 2946
+ 0 2605 2994
+ 0 2620 3024
+ 0 2630 3043
+ 0 2640 3061
+ 813 2024 336
+ 713 2066 580
+ 509 2120 797
+ 0 2173 1015
+ 0 2244 1315
+ 0 2306 1590
+ 0 2378 1892
+ 0 2440 2163
+ 0 2490 2405
+ 0 2531 2610
+ 0 2565 2785
+ 0 2588 2893
+ 0 2611 2965
+ 0 2635 3013
+ 0 2651 3043
+ 0 2661 3062
+ 0 2667 3075
+ 134 0 0
+ 257 0 0
+ 281 0 0
+ 226 0 0
+ 173 0 304
+ 146 0 426
+ 0 0 685
+ 0 0 882
+ 0 0 1113
+ 0 0 1296
+ 0 0 1476
+ 0 0 1612
+ 0 0 1802
+ 0 0 2049
+ 0 182 2203
+ 0 584 2295
+ 0 865 2361
+ 328 0 0
+ 340 0 0
+ 346 0 0
+ 331 0 223
+ 317 23 371
+ 309 17 507
+ 291 0 727
+ 18 0 950
+ 0 0 1180
+ 0 0 1377
+ 0 0 1555
+ 0 0 1704
+ 0 0 1891
+ 0 0 2123
+ 0 256 2268
+ 0 667 2357
+ 0 955 2420
+ 374 119 0
+ 387 138 0
+ 381 135 0
+ 373 167 265
+ 351 179 401
+ 345 207 563
+ 136 207 771
+ 245 221 1021
+ 0 169 1255
+ 0 54 1463
+ 0 0 1646
+ 0 0 1797
+ 0 0 1979
+ 0 16 2193
+ 0 344 2327
+ 0 765 2413
+ 0 1060 2472
+ 419 257 0
+ 426 264 0
+ 417 264 178
+ 407 289 304
+ 383 310 441
+ 361 330 615
+ 235 359 838
+ 141 373 1102
+ 0 385 1342
+ 0 377 1561
+ 0 382 1749
+ 0 403 1904
+ 0 536 2075
+ 0 800 2266
+ 0 978 2391
+ 0 1100 2472
+ 0 1185 2529
+ 452 363 0
+ 463 385 0
+ 452 384 223
+ 437 410 342
+ 402 423 474
+ 381 469 673
+ 0 486 907
+ 0 530 1176
+ 0 546 1430
+ 0 563 1657
+ 0 577 1849
+ 0 607 2002
+ 0 730 2159
+ 0 971 2338
+ 0 1136 2457
+ 0 1234 2531
+ 0 1303 2583
+ 497 469 0
+ 508 514 165
+ 505 551 277
+ 475 556 378
+ 443 597 536
+ 392 625 720
+ 0 674 990
+ 0 712 1269
+ 0 750 1535
+ 0 785 1775
+ 0 807 1972
+ 0 840 2122
+ 0 957 2270
+ 0 1176 2435
+ 0 1313 2538
+ 0 1394 2601
+ 0 1452 2645
+ 596 712 0
+ 586 725 218
+ 553 726 320
+ 530 761 433
+ 471 792 586
+ 390 843 801
+ 0 894 1074
+ 0 951 1368
+ 0 999 1650
+ 0 1042 1897
+ 0 1080 2100
+ 0 1109 2253
+ 0 1207 2390
+ 0 1396 2532
+ 0 1514 2620
+ 0 1584 2675
+ 0 1633 2713
+ 634 915 0
+ 625 947 260
+ 607 976 363
+ 555 1001 475
+ 485 1055 656
+ 0 1102 867
+ 0 1171 1166
+ 0 1233 1476
+ 0 1289 1765
+ 0 1339 2017
+ 0 1378 2223
+ 0 1412 2385
+ 0 1492 2513
+ 0 1633 2629
+ 0 1732 2706
+ 0 1790 2753
+ 0 1831 2787
+ 696 1205 0
+ 675 1222 281
+ 633 1242 394
+ 581 1284 520
+ 416 1332 701
+ 0 1391 943
+ 0 1467 1253
+ 0 1539 1573
+ 0 1612 1877
+ 0 1656 2130
+ 0 1704 2348
+ 0 1726 2502
+ 0 1791 2630
+ 0 1888 2724
+ 0 1956 2786
+ 0 2003 2827
+ 0 2035 2855
+ 748 1428 0
+ 715 1456 293
+ 661 1486 412
+ 580 1527 552
+ 0 1581 750
+ 0 1648 1002
+ 0 1725 1320
+ 0 1803 1656
+ 0 1867 1962
+ 0 1926 2226
+ 0 1965 2441
+ 0 1996 2607
+ 0 2045 2726
+ 0 2115 2808
+ 0 2158 2860
+ 0 2186 2892
+ 0 2211 2918
+ 796 1672 0
+ 756 1679 289
+ 690 1695 430
+ 569 1742 575
+ 0 1791 787
+ 0 1856 1047
+ 0 1938 1384
+ 0 2018 1722
+ 0 2101 2049
+ 0 2143 2302
+ 0 2184 2519
+ 0 2208 2681
+ 0 2248 2796
+ 0 2305 2873
+ 0 2341 2920
+ 0 2362 2950
+ 0 2380 2972
+ 847 1790 0
+ 796 1811 290
+ 715 1832 447
+ 574 1872 601
+ 0 1931 831
+ 0 2004 1103
+ 0 2080 1439
+ 0 2162 1775
+ 0 2230 2084
+ 0 2288 2353
+ 0 2328 2567
+ 0 2363 2734
+ 0 2390 2844
+ 0 2422 2910
+ 0 2446 2953
+ 0 2467 2983
+ 0 2482 3004
+ 931 1907 0
+ 871 1937 357
+ 769 1969 533
+ 95 2009 713
+ 0 2071 951
+ 0 2139 1233
+ 0 2221 1561
+ 0 2295 1885
+ 0 2363 2188
+ 0 2417 2447
+ 0 2453 2647
+ 0 2482 2792
+ 0 2510 2895
+ 0 2540 2959
+ 0 2559 3001
+ 0 2573 3026
+ 0 2583 3044
+ 1030 2014 0
+ 967 2048 450
+ 863 2090 650
+ 181 2139 853
+ 1 2204 1122
+ 0 2269 1402
+ 0 2347 1720
+ 0 2414 2021
+ 0 2479 2314
+ 0 2527 2551
+ 0 2561 2733
+ 0 2582 2852
+ 0 2610 2954
+ 0 2631 3001
+ 0 2651 3042
+ 0 2664 3067
+ 0 2674 3085
+ 1092 2080 0
+ 1027 2118 508
+ 922 2165 724
+ 263 2220 940
+ 69 2287 1227
+ 0 2351 1509
+ 0 2426 1823
+ 0 2492 2115
+ 0 2551 2392
+ 0 2596 2616
+ 0 2628 2787
+ 0 2648 2899
+ 0 2673 2992
+ 0 2694 3038
+ 0 2708 3068
+ 0 2721 3093
+ 0 2731 3111
+ 1130 2124 31
+ 1067 2163 541
+ 973 2214 768
+ 613 2272 994
+ 249 2341 1293
+ 0 2406 1577
+ 0 2478 1889
+ 0 2543 2177
+ 0 2599 2444
+ 0 2641 2656
+ 0 2673 2824
+ 0 2693 2935
+ 0 2715 3017
+ 0 2737 3063
+ 0 2750 3093
+ 0 2760 3111
+ 0 2769 3129
+ 1156 2156 260
+ 1096 2196 564
+ 1009 2250 800
+ 865 2309 1032
+ 379 2379 1340
+ 0 2446 1625
+ 0 2515 1936
+ 0 2580 2221
+ 0 2634 2482
+ 0 2675 2690
+ 0 2706 2853
+ 0 2725 2961
+ 0 2746 3035
+ 0 2767 3081
+ 0 2781 3111
+ 0 2790 3129
+ 0 2797 3143
+ 451 0 0
+ 490 0 0
+ 512 0 0
+ 479 0 43
+ 489 0 325
+ 437 0 442
+ 474 0 707
+ 0 0 916
+ 373 0 1151
+ 0 0 1341
+ 0 0 1527
+ 0 0 1671
+ 0 0 1868
+ 0 0 2124
+ 0 220 2283
+ 0 628 2379
+ 0 914 2447
+ 549 99 0
+ 545 86 0
+ 541 82 0
+ 533 108 235
+ 529 117 387
+ 513 120 526
+ 512 89 754
+ 456 36 988
+ 384 0 1221
+ 0 0 1427
+ 0 0 1612
+ 0 0 1764
+ 0 0 1958
+ 0 0 2199
+ 0 301 2348
+ 0 719 2441
+ 0 1011 2505
+ 598 224 0
+ 585 214 0
+ 563 198 105
+ 568 224 276
+ 557 233 417
+ 541 252 585
+ 529 259 801
+ 495 259 1063
+ 387 228 1301
+ 0 97 1518
+ 0 0 1706
+ 0 0 1863
+ 0 0 2050
+ 0 53 2270
+ 0 393 2409
+ 0 822 2497
+ 0 1122 2558
+ 635 337 0
+ 630 330 0
+ 618 314 188
+ 614 341 314
+ 606 360 456
+ 586 378 639
+ 576 403 873
+ 525 412 1147
+ 368 421 1393
+ 0 408 1624
+ 0 410 1811
+ 0 428 1978
+ 0 572 2153
+ 0 851 2351
+ 0 1040 2479
+ 0 1166 2562
+ 0 1255 2620
+ 671 439 0
+ 673 448 0
+ 664 436 229
+ 657 465 353
+ 643 474 490
+ 632 521 697
+ 602 538 943
+ 553 576 1223
+ 357 589 1482
+ 0 603 1721
+ 0 618 1916
+ 0 649 2077
+ 0 780 2241
+ 0 1036 2424
+ 0 1209 2547
+ 0 1312 2622
+ 0 1384 2674
+ 714 543 0
+ 722 577 162
+ 724 609 281
+ 705 615 388
+ 699 653 553
+ 668 680 745
+ 645 731 1026
+ 543 768 1318
+ 0 807 1591
+ 0 842 1841
+ 0 863 2044
+ 0 896 2203
+ 0 1022 2353
+ 0 1254 2522
+ 0 1398 2628
+ 0 1484 2692
+ 0 1544 2738
+ 824 785 0
+ 816 799 211
+ 795 802 319
+ 786 837 442
+ 763 870 602
+ 729 921 828
+ 658 970 1112
+ 303 1024 1419
+ 0 1074 1708
+ 0 1114 1971
+ 0 1153 2174
+ 0 1184 2340
+ 0 1286 2482
+ 0 1487 2624
+ 0 1613 2713
+ 0 1686 2768
+ 0 1738 2806
+ 899 1011 0
+ 894 1044 244
+ 881 1076 359
+ 853 1100 478
+ 830 1154 672
+ 757 1202 894
+ 688 1273 1206
+ 0 1335 1531
+ 0 1393 1825
+ 0 1446 2097
+ 0 1481 2308
+ 0 1513 2475
+ 0 1595 2605
+ 0 1742 2721
+ 0 1843 2800
+ 0 1905 2848
+ 0 1948 2881
+ 1006 1319 0
+ 991 1335 248
+ 966 1357 382
+ 943 1402 520
+ 886 1454 715
+ 816 1516 971
+ 68 1593 1293
+ 0 1662 1628
+ 0 1731 1940
+ 0 1777 2207
+ 0 1822 2431
+ 0 1845 2595
+ 0 1911 2724
+ 0 2011 2820
+ 0 2081 2882
+ 0 2129 2924
+ 0 2163 2953
+ 1088 1568 0
+ 1063 1599 239
+ 1027 1633 392
+ 995 1674 548
+ 929 1728 761
+ 806 1793 1029
+ 67 1869 1361
+ 0 1952 1714
+ 0 2018 2028
+ 0 2078 2311
+ 0 2111 2524
+ 0 2140 2702
+ 0 2190 2823
+ 0 2264 2905
+ 0 2310 2957
+ 0 2338 2989
+ 0 2364 3015
+ 1161 1818 0
+ 1133 1826 169
+ 1093 1840 401
+ 1049 1887 567
+ 971 1943 797
+ 821 2012 1072
+ 72 2092 1424
+ 0 2171 1777
+ 0 2259 2112
+ 0 2306 2388
+ 0 2346 2606
+ 0 2369 2771
+ 0 2407 2889
+ 0 2460 2967
+ 0 2493 3015
+ 0 2516 3045
+ 0 2534 3067
+ 1221 1947 0
+ 1184 1972 0
+ 1132 1998 410
+ 1079 2035 589
+ 994 2092 839
+ 816 2170 1128
+ 72 2252 1480
+ 0 2339 1835
+ 0 2405 2149
+ 0 2465 2442
+ 0 2499 2657
+ 0 2532 2826
+ 0 2558 2937
+ 0 2587 3003
+ 0 2609 3046
+ 0 2632 3076
+ 0 2647 3097
+ 1299 2060 0
+ 1262 2096 0
+ 1205 2132 502
+ 1146 2170 707
+ 1048 2233 960
+ 874 2305 1260
+ 146 2392 1603
+ 0 2466 1945
+ 0 2532 2250
+ 0 2588 2526
+ 0 2622 2731
+ 0 2650 2881
+ 0 2676 2985
+ 0 2703 3048
+ 0 2721 3089
+ 0 2734 3115
+ 0 2742 3133
+ 1387 2164 0
+ 1351 2204 0
+ 1300 2250 634
+ 1234 2298 855
+ 1133 2363 1137
+ 971 2431 1431
+ 260 2512 1761
+ 57 2578 2080
+ 0 2641 2377
+ 0 2690 2627
+ 0 2722 2813
+ 0 2743 2935
+ 0 2769 3039
+ 0 2787 3086
+ 0 2805 3126
+ 0 2817 3152
+ 0 2826 3170
+ 1443 2229 0
+ 1407 2273 472
+ 1359 2324 714
+ 1289 2377 947
+ 1191 2445 1247
+ 1024 2512 1540
+ 321 2588 1865
+ 207 2652 2174
+ 63 2709 2457
+ 0 2754 2690
+ 0 2786 2865
+ 0 2805 2981
+ 0 2827 3073
+ 0 2846 3120
+ 0 2858 3150
+ 0 2870 3176
+ 0 2878 3194
+ 1482 2271 0
+ 1445 2317 509
+ 1397 2372 761
+ 1324 2429 1003
+ 1226 2498 1315
+ 1073 2565 1609
+ 321 2639 1931
+ 207 2702 2235
+ 63 2757 2510
+ 0 2798 2731
+ 0 2829 2901
+ 0 2848 3015
+ 0 2868 3097
+ 0 2886 3144
+ 0 2898 3174
+ 0 2906 3192
+ 0 2915 3210
+ 1511 2302 0
+ 1473 2349 536
+ 1424 2406 795
+ 1349 2467 1043
+ 1251 2537 1363
+ 1108 2603 1658
+ 321 2675 1979
+ 207 2738 2279
+ 63 2791 2549
+ 0 2831 2766
+ 0 2860 2931
+ 0 2879 3040
+ 0 2896 3114
+ 0 2915 3161
+ 0 2927 3191
+ 0 2935 3209
+ 0 2941 3222
+ 710 0 0
+ 718 0 0
+ 726 0 0
+ 710 0 149
+ 710 0 334
+ 706 0 457
+ 700 0 732
+ 681 0 954
+ 661 0 1200
+ 670 0 1394
+ 657 0 1588
+ 669 0 1739
+ 720 0 1945
+ 811 0 2209
+ 869 255 2374
+ 878 672 2475
+ 869 963 2545
+ 768 141 0
+ 762 173 0
+ 758 186 55
+ 753 181 244
+ 750 190 398
+ 747 191 544
+ 748 189 782
+ 741 147 1026
+ 731 0 1272
+ 736 0 1484
+ 731 0 1678
+ 735 0 1833
+ 774 0 2034
+ 853 0 2286
+ 902 343 2443
+ 907 772 2540
+ 895 1069 2607
+ 832 270 0
+ 817 295 0
+ 793 302 142
+ 801 309 283
+ 793 316 429
+ 796 332 605
+ 792 324 835
+ 804 307 1103
+ 790 265 1355
+ 795 78 1578
+ 782 0 1778
+ 789 0 1942
+ 809 0 2135
+ 873 94 2363
+ 914 449 2508
+ 917 890 2601
+ 904 1196 2665
+ 887 381 0
+ 874 389 0
+ 853 388 194
+ 859 402 322
+ 855 415 469
+ 860 431 661
+ 857 449 908
+ 859 459 1189
+ 845 459 1450
+ 842 437 1686
+ 827 437 1885
+ 824 453 2056
+ 836 608 2239
+ 886 902 2445
+ 920 1104 2579
+ 879 1243 2666
+ 812 1337 2727
+ 941 487 0
+ 937 503 0
+ 923 501 232
+ 924 520 358
+ 919 533 502
+ 930 574 717
+ 916 589 979
+ 921 624 1267
+ 889 638 1542
+ 884 649 1784
+ 854 663 1993
+ 850 694 2161
+ 843 833 2331
+ 883 1104 2520
+ 914 1288 2649
+ 735 1400 2727
+ 498 1476 2781
+ 1009 612 0
+ 1015 645 140
+ 1016 675 282
+ 1007 678 390
+ 1013 719 565
+ 1009 748 766
+ 1006 798 1063
+ 991 835 1364
+ 953 872 1654
+ 937 906 1905
+ 888 923 2125
+ 871 957 2295
+ 853 1089 2451
+ 883 1338 2623
+ 902 1493 2731
+ 726 1587 2797
+ 496 1650 2844
+ 1127 866 0
+ 1128 886 192
+ 1117 895 318
+ 1119 929 445
+ 1116 962 615
+ 1114 1014 853
+ 1088 1064 1154
+ 1069 1116 1470
+ 1020 1163 1775
+ 983 1204 2045
+ 928 1243 2262
+ 878 1272 2432
+ 463 1379 2583
+ 488 1590 2729
+ 504 1721 2820
+ 508 1802 2876
+ 508 1857 2915
+ 1233 1111 0
+ 1238 1150 211
+ 1240 1186 350
+ 1227 1208 475
+ 1227 1268 682
+ 1204 1320 919
+ 1184 1391 1247
+ 1132 1453 1585
+ 1078 1507 1894
+ 1015 1560 2171
+ 813 1594 2402
+ 468 1625 2575
+ 470 1709 2709
+ 488 1863 2829
+ 496 1971 2909
+ 498 2036 2959
+ 498 2081 2993
+ 1371 1460 0
+ 1367 1477 2
+ 1356 1500 360
+ 1348 1546 510
+ 1323 1601 721
+ 1305 1663 993
+ 1243 1740 1336
+ 1200 1805 1682
+ 1097 1880 2013
+ 812 1926 2288
+ 522 1971 2528
+ 467 1991 2698
+ 459 2058 2832
+ 481 2164 2931
+ 496 2238 2995
+ 500 2289 3037
+ 500 2323 3066
+ 1476 1726 0
+ 1468 1754 0
+ 1455 1787 353
+ 1442 1828 532
+ 1413 1885 764
+ 1372 1955 1049
+ 1307 2035 1401
+ 1224 2114 1765
+ 1121 2176 2097
+ 800 2236 2391
+ 524 2271 2622
+ 439 2301 2801
+ 431 2352 2928
+ 463 2427 3013
+ 484 2474 3067
+ 490 2503 3100
+ 490 2530 3126
+ 1574 1997 0
+ 1557 2002 0
+ 1534 2017 346
+ 1514 2069 541
+ 1483 2126 796
+ 1438 2197 1091
+ 1354 2283 1466
+ 1265 2365 1831
+ 1128 2448 2173
+ 635 2492 2462
+ 493 2538 2708
+ 427 2557 2876
+ 423 2594 2996
+ 453 2646 3074
+ 473 2679 3123
+ 478 2699 3153
+ 478 2718 3175
+ 1641 2126 0
+ 1623 2147 0
+ 1595 2173 345
+ 1565 2215 562
+ 1527 2283 840
+ 1475 2366 1147
+ 1392 2446 1521
+ 1277 2534 1890
+ 1145 2601 2222
+ 628 2661 2519
+ 507 2695 2753
+ 416 2726 2929
+ 415 2749 3043
+ 455 2774 3110
+ 478 2795 3154
+ 484 2816 3184
+ 484 2830 3205
+ 1719 2238 0
+ 1699 2273 0
+ 1668 2312 444
+ 1635 2354 683
+ 1586 2424 962
+ 1539 2499 1281
+ 1443 2587 1643
+ 1345 2662 2000
+ 774 2731 2324
+ 699 2784 2603
+ 597 2817 2825
+ 527 2843 2980
+ 509 2865 3088
+ 547 2889 3153
+ 572 2905 3195
+ 579 2915 3221
+ 579 2923 3239
+ 1798 2337 0
+ 1778 2377 0
+ 1750 2427 596
+ 1716 2479 842
+ 1659 2548 1144
+ 1612 2616 1456
+ 1518 2698 1803
+ 1437 2765 2136
+ 866 2829 2448
+ 810 2877 2702
+ 731 2909 2906
+ 695 2930 3030
+ 676 2952 3138
+ 693 2965 3188
+ 717 2980 3229
+ 724 2991 3255
+ 724 2998 3273
+ 1848 2398 0
+ 1828 2443 0
+ 1801 2499 691
+ 1767 2557 942
+ 1710 2626 1259
+ 1655 2692 1568
+ 1567 2768 1908
+ 1484 2833 2230
+ 923 2891 2526
+ 879 2935 2763
+ 815 2966 2956
+ 787 2986 3073
+ 781 3006 3170
+ 798 3019 3220
+ 808 3027 3251
+ 815 3038 3276
+ 815 3045 3294
+ 1881 2439 0
+ 1862 2486 240
+ 1837 2545 747
+ 1802 2608 1003
+ 1745 2678 1331
+ 1686 2743 1639
+ 1606 2815 1975
+ 1523 2879 2291
+ 1173 2934 2579
+ 1104 2974 2803
+ 896 3005 2990
+ 810 3024 3106
+ 810 3042 3191
+ 826 3055 3241
+ 837 3063 3272
+ 840 3070 3291
+ 840 3077 3308
+ 1907 2468 0
+ 1887 2517 488
+ 1864 2579 784
+ 1827 2644 1046
+ 1771 2715 1383
+ 1709 2780 1690
+ 1639 2850 2023
+ 1556 2913 2335
+ 1467 2966 2618
+ 1378 3005 2839
+ 1153 3034 3019
+ 810 3053 3130
+ 810 3068 3206
+ 826 3082 3256
+ 837 3090 3287
+ 840 3096 3306
+ 840 3101 3319
+ 941 0 0
+ 949 39 0
+ 953 103 0
+ 942 0 154
+ 949 0 346
+ 954 0 469
+ 967 0 757
+ 971 0 992
+ 980 0 1244
+ 998 0 1449
+ 1008 0 1651
+ 1029 0 1806
+ 1119 0 2021
+ 1247 0 2294
+ 1328 293 2464
+ 1378 720 2571
+ 1413 1019 2645
+ 1018 246 0
+ 1020 259 0
+ 1024 268 81
+ 1021 264 251
+ 1031 267 412
+ 1038 247 559
+ 1061 213 809
+ 1072 91 1066
+ 1089 0 1320
+ 1099 0 1543
+ 1113 0 1744
+ 1128 0 1909
+ 1209 0 2118
+ 1320 0 2376
+ 1389 384 2536
+ 1434 823 2639
+ 1466 1130 2711
+ 1099 300 0
+ 1100 318 0
+ 1103 335 148
+ 1104 334 290
+ 1119 347 445
+ 1127 348 621
+ 1150 345 866
+ 1166 323 1144
+ 1178 274 1404
+ 1189 8 1642
+ 1195 0 1843
+ 1210 0 2019
+ 1283 0 2222
+ 1375 134 2456
+ 1434 497 2604
+ 1474 950 2701
+ 1502 1267 2769
+ 1185 405 0
+ 1189 419 0
+ 1194 432 197
+ 1194 438 328
+ 1211 461 486
+ 1219 469 679
+ 1243 490 940
+ 1256 492 1233
+ 1268 492 1501
+ 1277 471 1756
+ 1279 464 1961
+ 1290 476 2138
+ 1352 649 2328
+ 1424 957 2539
+ 1474 1167 2676
+ 1510 1315 2767
+ 1535 1419 2831
+ 1265 521 0
+ 1276 547 0
+ 1284 561 233
+ 1284 571 364
+ 1301 595 521
+ 1316 627 735
+ 1330 648 1013
+ 1345 677 1313
+ 1349 688 1595
+ 1358 701 1857
+ 1353 710 2071
+ 1362 740 2249
+ 1408 886 2423
+ 1471 1171 2616
+ 1516 1364 2747
+ 1544 1484 2829
+ 1564 1568 2887
+ 1358 673 0
+ 1377 709 111
+ 1394 743 278
+ 1386 743 391
+ 1411 789 580
+ 1419 815 784
+ 1441 868 1095
+ 1441 905 1411
+ 1437 939 1709
+ 1441 972 1979
+ 1425 984 2204
+ 1428 1016 2385
+ 1470 1157 2550
+ 1523 1419 2725
+ 1556 1582 2834
+ 1576 1684 2903
+ 1591 1755 2951
+ 1496 954 0
+ 1512 977 138
+ 1528 991 305
+ 1531 1023 443
+ 1552 1061 628
+ 1563 1112 872
+ 1573 1161 1189
+ 1570 1216 1521
+ 1563 1263 1833
+ 1558 1302 2122
+ 1541 1335 2348
+ 1526 1364 2528
+ 1547 1473 2681
+ 1588 1689 2831
+ 1614 1824 2925
+ 1630 1908 2983
+ 1642 1967 3024
+ 1625 1216 0
+ 1651 1259 133
+ 1675 1302 328
+ 1667 1325 464
+ 1689 1389 692
+ 1690 1440 937
+ 1699 1513 1283
+ 1682 1575 1641
+ 1668 1628 1962
+ 1656 1681 2254
+ 1625 1709 2491
+ 1603 1739 2678
+ 1616 1826 2814
+ 1641 1985 2935
+ 1659 2096 3017
+ 1669 2165 3068
+ 1677 2213 3103
+ 1794 1597 0
+ 1808 1614 0
+ 1825 1641 320
+ 1822 1687 491
+ 1829 1743 726
+ 1826 1806 1009
+ 1818 1886 1371
+ 1800 1957 1734
+ 1770 2026 2077
+ 1750 2067 2373
+ 1698 2106 2619
+ 1674 2124 2798
+ 1677 2192 2938
+ 1700 2301 3037
+ 1714 2377 3103
+ 1722 2432 3146
+ 1728 2469 3176
+ 1917 1879 0
+ 1932 1911 0
+ 1948 1951 276
+ 1943 1996 501
+ 1948 2059 764
+ 1935 2129 1064
+ 1921 2205 1438
+ 1891 2292 1821
+ 1861 2356 2158
+ 1825 2414 2474
+ 1771 2443 2715
+ 1736 2475 2907
+ 1731 2521 3038
+ 1746 2596 3124
+ 1755 2642 3178
+ 1760 2672 3211
+ 1766 2702 3239
+ 2031 2165 0
+ 2036 2173 0
+ 2041 2192 107
+ 2031 2245 498
+ 2034 2313 791
+ 2016 2391 1102
+ 1991 2476 1501
+ 1951 2558 1886
+ 1914 2639 2237
+ 1872 2683 2541
+ 1792 2727 2798
+ 1762 2746 2979
+ 1757 2779 3106
+ 1770 2827 3187
+ 1779 2856 3238
+ 1784 2875 3270
+ 1788 2893 3293
+ 2100 2308 0
+ 2110 2340 0
+ 2117 2374 67
+ 2097 2416 512
+ 2098 2487 834
+ 2081 2576 1158
+ 2052 2656 1555
+ 2000 2746 1944
+ 1959 2805 2288
+ 1914 2866 2605
+ 1839 2897 2844
+ 1805 2931 3033
+ 1795 2946 3153
+ 1798 2968 3225
+ 1803 2986 3271
+ 1808 3005 3303
+ 1812 3017 3326
+ 2170 2423 0
+ 2179 2465 0
+ 2188 2513 304
+ 2161 2553 647
+ 2156 2628 960
+ 2133 2702 1296
+ 2107 2794 1679
+ 2056 2866 2053
+ 2008 2930 2390
+ 1963 2983 2687
+ 1897 3014 2914
+ 1866 3041 3080
+ 1855 3061 3193
+ 1859 3082 3262
+ 1861 3095 3306
+ 1862 3103 3334
+ 1863 3109 3354
+ 2241 2517 0
+ 2249 2566 0
+ 2253 2621 504
+ 2229 2672 819
+ 2211 2744 1148
+ 2184 2812 1474
+ 2159 2898 1840
+ 2112 2961 2190
+ 2067 3023 2514
+ 2025 3069 2783
+ 1973 3099 2992
+ 1945 3119 3129
+ 1933 3139 3241
+ 1939 3150 3291
+ 1941 3163 3335
+ 1942 3172 3363
+ 1943 3178 3382
+ 2286 2576 0
+ 2292 2628 0
+ 2293 2688 628
+ 2272 2746 927
+ 2247 2818 1267
+ 2217 2884 1591
+ 2190 2963 1947
+ 2146 3025 2284
+ 2104 3081 2591
+ 2063 3122 2843
+ 2021 3152 3042
+ 1993 3170 3171
+ 1982 3188 3272
+ 1988 3199 3322
+ 1991 3206 3353
+ 1993 3214 3380
+ 1994 3220 3400
+ 2314 2614 0
+ 2320 2669 180
+ 2319 2731 708
+ 2299 2794 996
+ 2271 2864 1344
+ 2238 2930 1665
+ 2210 3004 2015
+ 2168 3066 2346
+ 2127 3118 2645
+ 2088 3156 2881
+ 2050 3185 3074
+ 2023 3204 3202
+ 2014 3220 3292
+ 2019 3231 3341
+ 2022 3237 3372
+ 2025 3242 3392
+ 2026 3248 3411
+ 2335 2641 0
+ 2340 2698 417
+ 2338 2763 765
+ 2319 2828 1045
+ 2287 2898 1399
+ 2254 2964 1718
+ 2224 3034 2064
+ 2183 3096 2390
+ 2143 3145 2684
+ 2105 3182 2916
+ 2068 3210 3102
+ 2045 3229 3225
+ 2037 3242 3306
+ 2042 3253 3355
+ 2045 3260 3386
+ 2047 3264 3406
+ 2049 3267 3419
+ 1320 0 0
+ 1310 0 0
+ 1309 20 0
+ 1309 0 150
+ 1334 0 356
+ 1353 0 496
+ 1377 0 785
+ 1394 0 1030
+ 1421 0 1296
+ 1444 0 1507
+ 1463 0 1720
+ 1480 0 1879
+ 1588 0 2098
+ 1776 0 2384
+ 1879 331 2560
+ 1941 763 2669
+ 1983 1065 2746
+ 1397 244 0
+ 1382 238 0
+ 1375 235 107
+ 1383 239 259
+ 1405 239 420
+ 1425 223 581
+ 1450 182 835
+ 1471 0 1100
+ 1495 0 1365
+ 1512 0 1595
+ 1533 0 1805
+ 1555 0 1980
+ 1649 0 2196
+ 1816 0 2464
+ 1910 429 2628
+ 1968 872 2732
+ 2009 1182 2806
+ 1487 332 0
+ 1467 331 0
+ 1451 315 150
+ 1470 330 300
+ 1491 330 443
+ 1512 343 643
+ 1537 331 889
+ 1564 312 1174
+ 1584 244 1450
+ 1595 0 1693
+ 1620 0 1907
+ 1637 0 2085
+ 1715 0 2298
+ 1860 158 2544
+ 1946 544 2695
+ 2003 1002 2793
+ 2043 1322 2861
+ 1593 464 0
+ 1573 461 0
+ 1557 450 198
+ 1580 471 338
+ 1602 481 486
+ 1623 500 701
+ 1647 513 965
+ 1671 518 1264
+ 1689 516 1548
+ 1700 488 1806
+ 1721 479 2028
+ 1733 489 2211
+ 1799 660 2412
+ 1921 993 2630
+ 1997 1216 2768
+ 2049 1374 2860
+ 2085 1486 2925
+ 1690 581 0
+ 1675 597 0
+ 1665 592 226
+ 1687 614 367
+ 1711 628 517
+ 1734 669 757
+ 1753 680 1041
+ 1776 712 1346
+ 1791 718 1644
+ 1802 728 1911
+ 1821 738 2144
+ 1828 769 2327
+ 1880 919 2511
+ 1988 1224 2711
+ 2058 1427 2843
+ 2101 1553 2924
+ 2131 1641 2981
+ 1808 742 0
+ 1798 776 0
+ 1798 806 270
+ 1819 814 396
+ 1848 852 580
+ 1869 885 808
+ 1894 930 1124
+ 1906 966 1446
+ 1918 992 1759
+ 1925 1025 2037
+ 1939 1038 2277
+ 1940 1074 2462
+ 1985 1217 2636
+ 2079 1495 2819
+ 2132 1662 2930
+ 2163 1765 2999
+ 2185 1837 3047
+ 1968 1039 0
+ 1955 1057 0
+ 1948 1062 289
+ 1976 1102 442
+ 2000 1130 623
+ 2019 1185 890
+ 2039 1230 1215
+ 2047 1286 1556
+ 2058 1332 1886
+ 2058 1368 2181
+ 2064 1403 2426
+ 2051 1429 2613
+ 2080 1541 2775
+ 2163 1773 2929
+ 2208 1915 3022
+ 2235 2004 3079
+ 2254 2065 3119
+ 2127 1331 0
+ 2116 1366 0
+ 2117 1405 296
+ 2140 1436 456
+ 2163 1493 686
+ 2178 1541 954
+ 2198 1612 1309
+ 2199 1671 1670
+ 2209 1730 2016
+ 2199 1779 2313
+ 2197 1808 2565
+ 2176 1835 2756
+ 2195 1927 2907
+ 2256 2095 3033
+ 2291 2205 3114
+ 2311 2273 3164
+ 2325 2321 3199
+ 2328 1739 0
+ 2302 1746 0
+ 2296 1765 236
+ 2320 1814 463
+ 2340 1872 710
+ 2349 1936 1024
+ 2365 2020 1400
+ 2357 2078 1770
+ 2363 2157 2138
+ 2342 2194 2444
+ 2327 2237 2708
+ 2302 2252 2891
+ 2308 2321 3040
+ 2347 2431 3146
+ 2370 2507 3210
+ 2386 2561 3251
+ 2397 2598 3280
+ 2452 2033 0
+ 2432 2056 0
+ 2425 2089 0
+ 2444 2134 464
+ 2465 2200 743
+ 2467 2268 1077
+ 2474 2357 1466
+ 2459 2431 1855
+ 2454 2500 2215
+ 2427 2552 2537
+ 2405 2583 2796
+ 2378 2609 2991
+ 2381 2663 3135
+ 2412 2738 3232
+ 2426 2780 3286
+ 2434 2807 3319
+ 2443 2836 3346
+ 2588 2341 0
+ 2558 2339 0
+ 2545 2357 0
+ 2567 2419 437
+ 2591 2491 762
+ 2589 2563 1113
+ 2587 2655 1531
+ 2560 2723 1922
+ 2547 2805 2291
+ 2510 2841 2605
+ 2487 2895 2883
+ 2456 2905 3066
+ 2452 2940 3204
+ 2470 2989 3294
+ 2480 3018 3347
+ 2485 3037 3379
+ 2490 3053 3401
+ 2646 2488 0
+ 2628 2511 0
+ 2619 2543 0
+ 2631 2594 449
+ 2644 2666 804
+ 2643 2747 1167
+ 2634 2832 1577
+ 2606 2911 1977
+ 2589 2978 2346
+ 2553 3031 2670
+ 2523 3065 2926
+ 2494 3090 3117
+ 2487 3112 3250
+ 2498 3135 3330
+ 2503 3150 3377
+ 2508 3169 3409
+ 2512 3182 3432
+ 2707 2603 0
+ 2696 2642 0
+ 2696 2692 0
+ 2700 2739 589
+ 2703 2815 932
+ 2697 2885 1308
+ 2689 2981 1707
+ 2657 3043 2091
+ 2634 3114 2451
+ 2600 3164 2760
+ 2571 3196 3001
+ 2542 3215 3171
+ 2529 3236 3290
+ 2539 3257 3366
+ 2542 3266 3411
+ 2543 3270 3438
+ 2544 3273 3458
+ 2760 2692 0
+ 2753 2737 0
+ 2760 2797 0
+ 2762 2851 797
+ 2750 2923 1135
+ 2739 2988 1499
+ 2730 3078 1878
+ 2700 3133 2234
+ 2671 3201 2576
+ 2641 3246 2858
+ 2615 3278 3078
+ 2589 3292 3220
+ 2575 3314 3339
+ 2575 3322 3388
+ 2578 3330 3431
+ 2579 3334 3458
+ 2580 3337 3478
+ 2799 2750 0
+ 2793 2798 0
+ 2798 2860 94
+ 2800 2920 916
+ 2783 2990 1267
+ 2767 3054 1617
+ 2756 3136 1988
+ 2726 3192 2331
+ 2698 3253 2653
+ 2669 3293 2914
+ 2649 3326 3125
+ 2622 3339 3259
+ 2610 3357 3366
+ 2610 3365 3415
+ 2611 3371 3446
+ 2612 3375 3473
+ 2613 3378 3492
+ 2825 2788 0
+ 2818 2837 19
+ 2822 2899 470
+ 2825 2964 990
+ 2805 3033 1352
+ 2785 3096 1692
+ 2772 3172 2058
+ 2743 3230 2394
+ 2716 3285 2706
+ 2688 3322 2950
+ 2670 3356 3155
+ 2644 3370 3289
+ 2633 3385 3383
+ 2633 3393 3432
+ 2634 3398 3463
+ 2635 3402 3482
+ 2636 3405 3501
+ 2844 2815 0
+ 2837 2865 249
+ 2839 2928 740
+ 2843 2995 1043
+ 2820 3064 1413
+ 2798 3126 1746
+ 2783 3198 2108
+ 2755 3258 2440
+ 2729 3308 2745
+ 2701 3345 2984
+ 2683 3377 3181
+ 2660 3392 3311
+ 2650 3404 3395
+ 2649 3412 3444
+ 2651 3418 3475
+ 2652 3421 3494
+ 2652 3424 3508
+ 1603 0 0
+ 1596 0 0
+ 1590 0 0
+ 1595 0 187
+ 1624 0 378
+ 1656 0 509
+ 1679 0 799
+ 1703 0 1051
+ 1732 0 1322
+ 1757 0 1545
+ 1779 0 1761
+ 1801 0 1926
+ 1907 0 2149
+ 2095 0 2437
+ 2212 346 2616
+ 2286 784 2728
+ 2337 1090 2806
+ 1696 158 0
+ 1693 140 0
+ 1693 131 123
+ 1702 135 269
+ 1730 125 432
+ 1758 47 591
+ 1784 0 850
+ 1810 0 1125
+ 1832 0 1392
+ 1844 0 1632
+ 1867 0 1844
+ 1896 0 2029
+ 1995 0 2251
+ 2164 0 2519
+ 2270 447 2686
+ 2339 897 2793
+ 2386 1211 2868
+ 1789 308 0
+ 1790 305 0
+ 1796 297 161
+ 1810 306 308
+ 1837 308 459
+ 1862 316 652
+ 1890 298 904
+ 1921 274 1203
+ 1936 0 1477
+ 1939 0 1725
+ 1966 0 1943
+ 2000 0 2135
+ 2090 0 2353
+ 2234 27 2598
+ 2326 566 2753
+ 2387 1031 2854
+ 2431 1355 2925
+ 1897 464 0
+ 1899 457 0
+ 1906 446 196
+ 1924 466 342
+ 1954 479 498
+ 1984 491 711
+ 2011 505 981
+ 2039 503 1291
+ 2055 497 1578
+ 2069 446 1846
+ 2085 301 2068
+ 2108 279 2267
+ 2185 443 2469
+ 2308 791 2684
+ 2390 1105 2826
+ 2446 1397 2922
+ 2485 1523 2989
+ 2003 604 0
+ 2008 616 0
+ 2017 612 224
+ 2036 636 375
+ 2066 650 533
+ 2097 688 767
+ 2123 697 1056
+ 2150 727 1373
+ 2163 733 1673
+ 2181 740 1954
+ 2193 751 2185
+ 2212 777 2382
+ 2270 927 2569
+ 2378 1241 2768
+ 2455 1458 2902
+ 2503 1594 2986
+ 2536 1685 3046
+ 2136 777 0
+ 2144 810 0
+ 2159 842 263
+ 2178 851 399
+ 2209 894 592
+ 2240 921 817
+ 2265 966 1138
+ 2288 997 1473
+ 2299 1025 1788
+ 2315 1057 2082
+ 2324 1070 2323
+ 2339 1102 2522
+ 2385 1248 2696
+ 2479 1528 2877
+ 2538 1702 2991
+ 2575 1811 3061
+ 2601 1887 3111
+ 2300 1092 0
+ 2310 1109 0
+ 2325 1112 270
+ 2350 1153 439
+ 2384 1184 629
+ 2416 1237 896
+ 2441 1282 1225
+ 2460 1335 1583
+ 2468 1380 1914
+ 2479 1414 2224
+ 2478 1447 2469
+ 2483 1472 2673
+ 2515 1584 2840
+ 2586 1821 2990
+ 2630 1969 3083
+ 2658 2061 3141
+ 2680 2125 3183
+ 2481 1392 0
+ 2495 1430 0
+ 2516 1471 257
+ 2536 1501 444
+ 2565 1559 688
+ 2598 1606 957
+ 2616 1679 1320
+ 2632 1739 1699
+ 2635 1793 2045
+ 2640 1841 2365
+ 2630 1866 2614
+ 2628 1894 2820
+ 2641 1985 2971
+ 2688 2152 3095
+ 2723 2267 3179
+ 2745 2339 3232
+ 2763 2390 3268
+ 2686 1812 0
+ 2685 1822 0
+ 2695 1840 0
+ 2715 1892 444
+ 2744 1949 709
+ 2767 2014 1025
+ 2787 2088 1406
+ 2792 2152 1795
+ 2792 2221 2158
+ 2786 2261 2485
+ 2768 2300 2747
+ 2759 2320 2946
+ 2767 2388 3098
+ 2792 2499 3205
+ 2811 2578 3274
+ 2824 2635 3318
+ 2839 2676 3350
+ 2829 2125 0
+ 2841 2157 0
+ 2865 2195 0
+ 2877 2238 420
+ 2907 2309 729
+ 2927 2384 1074
+ 2937 2463 1474
+ 2942 2545 1887
+ 2929 2601 2247
+ 2923 2665 2594
+ 2892 2686 2846
+ 2885 2718 3058
+ 2884 2766 3203
+ 2892 2833 3296
+ 2897 2876 3354
+ 2900 2902 3390
+ 2911 2932 3419
+ 2977 2449 0
+ 2973 2454 0
+ 2979 2472 0
+ 2998 2529 382
+ 3025 2599 751
+ 3043 2678 1110
+ 3043 2760 1536
+ 3038 2836 1948
+ 3019 2902 2317
+ 3002 2948 2656
+ 2976 2994 2928
+ 2962 3013 3129
+ 2955 3044 3268
+ 2958 3089 3357
+ 2960 3117 3413
+ 2961 3134 3448
+ 2968 3153 3474
+ 3045 2609 0
+ 3057 2644 0
+ 3078 2685 0
+ 3087 2731 374
+ 3108 2801 781
+ 3128 2891 1160
+ 3120 2967 1585
+ 3113 3053 2005
+ 3088 3102 2376
+ 3074 3166 2729
+ 3039 3193 2982
+ 3028 3229 3193
+ 3014 3242 3324
+ 3002 3255 3398
+ 2998 3269 3447
+ 2999 3286 3482
+ 3003 3299 3507
+ 3101 2727 0
+ 3115 2774 0
+ 3141 2831 0
+ 3142 2874 522
+ 3158 2948 908
+ 3163 3022 1305
+ 3165 3112 1714
+ 3146 3179 2116
+ 3124 3236 2482
+ 3108 3294 2815
+ 3076 3320 3054
+ 3062 3346 3240
+ 3052 3364 3362
+ 3040 3376 3434
+ 3033 3383 3480
+ 3028 3388 3509
+ 3031 3394 3531
+ 3151 2817 0
+ 3163 2867 0
+ 3181 2926 0
+ 3187 2979 746
+ 3186 3049 1120
+ 3183 3117 1498
+ 3184 3203 1889
+ 3162 3262 2260
+ 3142 3320 2608
+ 3123 3368 2906
+ 3099 3395 3129
+ 3082 3413 3280
+ 3071 3431 3403
+ 3064 3437 3453
+ 3057 3444 3498
+ 3052 3449 3527
+ 3055 3455 3549
+ 3183 2874 0
+ 3193 2926 0
+ 3206 2985 73
+ 3214 3045 886
+ 3205 3113 1264
+ 3199 3180 1623
+ 3194 3259 2005
+ 3176 3319 2362
+ 3154 3373 2687
+ 3133 3414 2963
+ 3114 3442 3177
+ 3096 3459 3319
+ 3084 3473 3429
+ 3076 3479 3479
+ 3072 3482 3510
+ 3067 3487 3538
+ 3070 3493 3560
+ 3203 2910 0
+ 3212 2963 0
+ 3221 3024 443
+ 3232 3087 975
+ 3217 3154 1357
+ 3210 3220 1703
+ 3200 3294 2079
+ 3184 3356 2429
+ 3161 3406 2743
+ 3139 3443 3000
+ 3122 3473 3208
+ 3105 3489 3350
+ 3092 3500 3445
+ 3084 3505 3495
+ 3079 3509 3526
+ 3077 3511 3545
+ 3079 3517 3567
+ 3218 2935 0
+ 3228 2991 0
+ 3240 3054 712
+ 3250 3119 1035
+ 3234 3186 1417
+ 3222 3251 1760
+ 3212 3322 2131
+ 3196 3384 2476
+ 3173 3432 2784
+ 3149 3468 3034
+ 3134 3496 3236
+ 3118 3512 3372
+ 3105 3522 3459
+ 3097 3528 3509
+ 3093 3531 3540
+ 3090 3533 3560
+ 3090 3536 3573
+ 1900 0 0
+ 1888 0 0
+ 1883 0 0
+ 1892 0 183
+ 1924 0 371
+ 1957 0 504
+ 1979 0 808
+ 2002 0 1067
+ 2023 0 1344
+ 2048 0 1570
+ 2076 0 1797
+ 2101 0 1967
+ 2212 0 2193
+ 2406 0 2479
+ 2528 347 2658
+ 2604 785 2770
+ 2656 1091 2848
+ 1984 0 0
+ 1971 0 0
+ 1966 0 146
+ 1980 0 272
+ 2010 0 436
+ 2041 0 594
+ 2066 0 862
+ 2090 0 1139
+ 2109 0 1414
+ 2125 0 1658
+ 2150 0 1876
+ 2179 0 2063
+ 2284 0 2289
+ 2464 0 2559
+ 2576 452 2727
+ 2648 903 2835
+ 2697 1219 2910
+ 2082 239 0
+ 2068 244 0
+ 2060 233 179
+ 2081 242 311
+ 2109 236 466
+ 2136 246 656
+ 2162 165 920
+ 2187 88 1217
+ 2205 0 1497
+ 2212 0 1749
+ 2242 0 1976
+ 2274 0 2170
+ 2371 0 2390
+ 2531 0 2637
+ 2633 575 2794
+ 2701 1042 2897
+ 2747 1368 2968
+ 2191 439 0
+ 2177 441 0
+ 2170 436 209
+ 2193 450 345
+ 2226 467 506
+ 2257 475 713
+ 2286 489 995
+ 2312 485 1304
+ 2332 458 1598
+ 2345 0 1863
+ 2369 0 2098
+ 2390 0 2298
+ 2475 7 2505
+ 2611 363 2725
+ 2702 794 2869
+ 2764 1275 2965
+ 2806 1543 3032
+ 2306 602 0
+ 2295 620 0
+ 2290 618 232
+ 2316 639 373
+ 2347 653 540
+ 2381 690 768
+ 2408 697 1068
+ 2434 729 1386
+ 2455 732 1693
+ 2470 740 1970
+ 2491 743 2216
+ 2505 773 2413
+ 2570 930 2605
+ 2691 1253 2808
+ 2776 1475 2945
+ 2829 1614 3031
+ 2864 1710 3090
+ 2457 786 0
+ 2446 826 0
+ 2447 859 264
+ 2477 864 392
+ 2507 906 593
+ 2539 930 817
+ 2564 973 1148
+ 2585 1003 1484
+ 2605 1031 1809
+ 2617 1063 2099
+ 2635 1069 2358
+ 2642 1103 2556
+ 2693 1253 2733
+ 2800 1543 2918
+ 2867 1724 3034
+ 2909 1837 3106
+ 2937 1915 3156
+ 2628 1117 0
+ 2617 1137 0
+ 2612 1143 267
+ 2644 1181 430
+ 2678 1215 630
+ 2710 1265 895
+ 2734 1307 1234
+ 2753 1359 1592
+ 2769 1401 1935
+ 2776 1435 2237
+ 2785 1467 2500
+ 2784 1493 2702
+ 2823 1609 2874
+ 2907 1849 3029
+ 2960 1999 3126
+ 2994 2092 3187
+ 3015 2158 3228
+ 2812 1433 0
+ 2803 1471 0
+ 2805 1507 236
+ 2834 1532 425
+ 2867 1595 683
+ 2899 1637 952
+ 2919 1711 1328
+ 2933 1764 1706
+ 2945 1819 2063
+ 2946 1864 2378
+ 2948 1892 2647
+ 2940 1918 2850
+ 2960 2011 3005
+ 3018 2184 3137
+ 3061 2304 3225
+ 3088 2380 3280
+ 3106 2431 3318
+ 3026 1871 0
+ 3006 1880 0
+ 3003 1899 0
+ 3037 1953 413
+ 3069 2007 698
+ 3094 2068 1018
+ 3117 2143 1418
+ 3120 2205 1807
+ 3127 2272 2181
+ 3117 2308 2501
+ 3114 2353 2784
+ 3102 2370 2983
+ 3112 2438 3138
+ 3139 2549 3248
+ 3162 2630 3319
+ 3180 2689 3367
+ 3191 2729 3399
+ 3180 2192 0
+ 3171 2216 0
+ 3172 2253 0
+ 3199 2304 381
+ 3229 2370 721
+ 3252 2441 1066
+ 3264 2518 1482
+ 3268 2595 1894
+ 3261 2652 2266
+ 3250 2706 2605
+ 3238 2738 2879
+ 3227 2767 3089
+ 3230 2816 3238
+ 3245 2890 3337
+ 3254 2936 3399
+ 3260 2965 3438
+ 3267 2996 3467
+ 3354 2548 0
+ 3325 2543 0
+ 3316 2558 0
+ 3352 2627 268
+ 3374 2691 733
+ 3394 2766 1098
+ 3394 2846 1542
+ 3388 2917 1957
+ 3375 2981 2336
+ 3356 3020 2672
+ 3352 3080 2973
+ 3336 3095 3175
+ 3331 3125 3317
+ 3335 3169 3407
+ 3338 3196 3463
+ 3340 3213 3498
+ 3342 3231 3524
+ 3417 2712 0
+ 3403 2734 0
+ 3401 2764 0
+ 3427 2816 257
+ 3443 2886 767
+ 3465 2971 1150
+ 3460 3044 1592
+ 3454 3126 2015
+ 3438 3181 2398
+ 3419 3236 2743
+ 3403 3273 3018
+ 3388 3304 3230
+ 3379 3319 3367
+ 3376 3336 3447
+ 3376 3351 3498
+ 3378 3368 3533
+ 3379 3381 3558
+ 3465 2830 0
+ 3460 2868 0
+ 3465 2913 0
+ 3481 2959 415
+ 3493 3036 901
+ 3503 3108 1296
+ 3504 3193 1724
+ 3490 3258 2131
+ 3476 3320 2507
+ 3456 3371 2835
+ 3438 3403 3092
+ 3423 3426 3277
+ 3410 3443 3403
+ 3406 3458 3480
+ 3405 3468 3530
+ 3404 3475 3561
+ 3402 3478 3582
+ 3503 2918 0
+ 3501 2962 0
+ 3508 3014 0
+ 3525 3067 679
+ 3522 3142 1117
+ 3526 3210 1496
+ 3525 3290 1903
+ 3510 3348 2280
+ 3495 3407 2637
+ 3474 3450 2933
+ 3458 3480 3171
+ 3444 3498 3320
+ 3431 3514 3446
+ 3421 3519 3498
+ 3419 3528 3546
+ 3418 3535 3577
+ 3416 3539 3598
+ 3527 2973 0
+ 3527 3021 0
+ 3536 3076 54
+ 3552 3135 844
+ 3545 3209 1260
+ 3542 3276 1627
+ 3538 3350 2021
+ 3524 3408 2385
+ 3506 3461 2719
+ 3486 3500 2995
+ 3470 3529 3221
+ 3456 3545 3361
+ 3444 3559 3473
+ 3434 3563 3524
+ 3428 3566 3556
+ 3426 3573 3587
+ 3424 3576 3608
+ 3542 3008 0
+ 3544 3058 0
+ 3553 3117 421
+ 3569 3178 949
+ 3559 3251 1352
+ 3552 3318 1711
+ 3547 3389 2097
+ 3532 3447 2454
+ 3514 3497 2777
+ 3493 3531 3034
+ 3478 3560 3253
+ 3464 3576 3392
+ 3453 3587 3490
+ 3443 3592 3542
+ 3436 3595 3574
+ 3432 3597 3594
+ 3430 3601 3615
+ 3555 3033 0
+ 3556 3085 0
+ 3565 3145 686
+ 3582 3209 1019
+ 3568 3281 1418
+ 3560 3348 1770
+ 3552 3415 2151
+ 3538 3474 2502
+ 3520 3522 2819
+ 3498 3556 3070
+ 3483 3582 3281
+ 3470 3598 3415
+ 3459 3607 3502
+ 3448 3612 3554
+ 3442 3615 3586
+ 3438 3617 3606
+ 3436 3618 3620
+ 2079 0 0
+ 2074 0 0
+ 2070 0 0
+ 2078 0 211
+ 2107 0 392
+ 2138 0 520
+ 2158 0 816
+ 2181 0 1075
+ 2201 0 1346
+ 2226 0 1575
+ 2252 0 1806
+ 2286 0 1984
+ 2396 0 2211
+ 2586 0 2497
+ 2706 341 2676
+ 2782 779 2788
+ 2835 1086 2866
+ 2163 0 0
+ 2162 0 0
+ 2163 0 162
+ 2175 0 282
+ 2207 0 445
+ 2239 0 603
+ 2264 0 869
+ 2291 0 1150
+ 2310 0 1423
+ 2331 0 1675
+ 2353 0 1893
+ 2387 0 2084
+ 2489 0 2310
+ 2661 0 2580
+ 2770 448 2749
+ 2842 899 2856
+ 2892 1215 2932
+ 2262 168 0
+ 2266 144 0
+ 2273 107 186
+ 2288 126 319
+ 2317 114 473
+ 2348 114 663
+ 2372 0 924
+ 2402 0 1229
+ 2417 0 1509
+ 2436 0 1775
+ 2454 0 1997
+ 2489 0 2195
+ 2581 0 2414
+ 2734 0 2660
+ 2833 575 2817
+ 2901 1042 2919
+ 2949 1369 2991
+ 2379 427 0
+ 2383 416 0
+ 2389 396 209
+ 2408 420 349
+ 2437 433 510
+ 2468 438 719
+ 2493 450 997
+ 2522 437 1312
+ 2538 354 1607
+ 2557 0 1883
+ 2574 0 2113
+ 2604 0 2321
+ 2687 0 2528
+ 2818 288 2746
+ 2906 727 2890
+ 2969 1208 2986
+ 3012 1544 3054
+ 2488 605 0
+ 2494 615 0
+ 2502 605 231
+ 2522 633 379
+ 2552 643 544
+ 2586 679 774
+ 2610 685 1069
+ 2641 715 1394
+ 2655 722 1702
+ 2675 721 1988
+ 2689 732 2228
+ 2713 757 2434
+ 2778 912 2627
+ 2897 1244 2828
+ 2979 1475 2965
+ 3032 1614 3051
+ 3070 1711 3111
+ 2633 800 0
+ 2641 833 0
+ 2655 865 260
+ 2676 875 399
+ 2707 915 598
+ 2741 935 822
+ 2765 979 1149
+ 2790 1007 1492
+ 2803 1039 1817
+ 2820 1064 2115
+ 2830 1076 2368
+ 2849 1107 2576
+ 2898 1258 2754
+ 3004 1545 2938
+ 3071 1725 3054
+ 3113 1838 3126
+ 3142 1918 3177
+ 2805 1134 0
+ 2813 1150 0
+ 2823 1149 254
+ 2849 1194 432
+ 2883 1224 631
+ 2918 1271 897
+ 2941 1312 1234
+ 2965 1362 1601
+ 2976 1405 1941
+ 2989 1431 2253
+ 2994 1468 2510
+ 3005 1492 2723
+ 3040 1609 2896
+ 3119 1855 3051
+ 3169 2007 3149
+ 3202 2101 3209
+ 3225 2167 3252
+ 2995 1453 0
+ 3007 1489 0
+ 3023 1524 0
+ 3047 1555 423
+ 3081 1616 683
+ 3115 1655 953
+ 3134 1730 1328
+ 3155 1784 1716
+ 3159 1836 2068
+ 3170 1880 2396
+ 3166 1907 2659
+ 3171 1933 2874
+ 3186 2027 3029
+ 3236 2200 3160
+ 3275 2319 3248
+ 3302 2395 3303
+ 3320 2447 3341
+ 3208 1889 0
+ 3209 1902 0
+ 3218 1920 0
+ 3245 1973 409
+ 3277 2025 697
+ 3305 2084 1019
+ 3325 2156 1414
+ 3336 2222 1812
+ 3336 2283 2180
+ 3338 2322 2514
+ 3332 2364 2792
+ 3328 2382 3000
+ 3336 2452 3158
+ 3360 2568 3271
+ 3380 2650 3343
+ 3398 2709 3390
+ 3411 2750 3424
+ 3372 2216 0
+ 3387 2253 0
+ 3408 2297 0
+ 3427 2344 359
+ 3455 2408 710
+ 3483 2480 1064
+ 3492 2555 1480
+ 3502 2632 1903
+ 3489 2682 2271
+ 3487 2740 2626
+ 3472 2767 2894
+ 3470 2797 3117
+ 3469 2846 3267
+ 3475 2919 3364
+ 3480 2964 3425
+ 3486 2993 3464
+ 3494 3024 3494
+ 3541 2576 0
+ 3535 2580 0
+ 3538 2597 0
+ 3564 2659 234
+ 3586 2723 725
+ 3610 2799 1099
+ 3612 2874 1540
+ 3615 2949 1965
+ 3599 3008 2345
+ 3588 3051 2692
+ 3577 3098 2980
+ 3569 3118 3196
+ 3562 3150 3341
+ 3561 3198 3432
+ 3561 3227 3489
+ 3563 3244 3524
+ 3566 3262 3551
+ 3615 2755 0
+ 3624 2786 0
+ 3640 2826 0
+ 3660 2878 0
+ 3679 2945 746
+ 3704 3030 1147
+ 3698 3099 1592
+ 3701 3189 2027
+ 3678 3236 2409
+ 3668 3294 2766
+ 3648 3324 3036
+ 3645 3360 3263
+ 3630 3372 3400
+ 3615 3381 3477
+ 3609 3394 3528
+ 3611 3411 3563
+ 3612 3423 3588
+ 3662 2878 0
+ 3675 2921 0
+ 3695 2974 0
+ 3706 3020 0
+ 3724 3095 880
+ 3733 3166 1296
+ 3735 3248 1724
+ 3727 3318 2141
+ 3708 3373 2513
+ 3697 3427 2853
+ 3677 3455 3109
+ 3670 3482 3307
+ 3658 3498 3436
+ 3644 3507 3511
+ 3636 3514 3559
+ 3635 3520 3591
+ 3634 3525 3612
+ 3700 2972 0
+ 3712 3018 0
+ 3726 3072 0
+ 3739 3128 318
+ 3743 3201 1105
+ 3746 3266 1498
+ 3744 3344 1905
+ 3732 3401 2286
+ 3715 3456 2636
+ 3703 3503 2942
+ 3688 3533 3186
+ 3679 3552 3346
+ 3667 3568 3475
+ 3656 3572 3529
+ 3648 3578 3577
+ 3647 3585 3608
+ 3646 3589 3630
+ 3724 3029 0
+ 3735 3078 0
+ 3747 3134 30
+ 3762 3195 830
+ 3759 3267 1260
+ 3758 3332 1629
+ 3751 3403 2026
+ 3740 3460 2391
+ 3722 3509 2714
+ 3708 3550 2999
+ 3696 3581 3234
+ 3686 3599 3385
+ 3674 3612 3500
+ 3663 3616 3554
+ 3656 3618 3588
+ 3655 3625 3618
+ 3654 3629 3640
+ 3739 3064 0
+ 3752 3116 0
+ 3765 3174 397
+ 3779 3239 935
+ 3773 3310 1351
+ 3768 3375 1713
+ 3759 3442 2101
+ 3749 3499 2459
+ 3730 3545 2772
+ 3716 3582 3039
+ 3704 3612 3267
+ 3694 3630 3417
+ 3683 3641 3517
+ 3672 3644 3572
+ 3665 3647 3605
+ 3661 3649 3625
+ 3660 3653 3647
+ 3750 3090 0
+ 3764 3143 0
+ 3777 3203 661
+ 3792 3270 1011
+ 3783 3340 1417
+ 3776 3405 1773
+ 3766 3470 2156
+ 3755 3527 2508
+ 3735 3571 2815
+ 3721 3607 3075
+ 3709 3635 3295
+ 3700 3652 3440
+ 3689 3661 3530
+ 3678 3665 3584
+ 3671 3668 3617
+ 3667 3669 3637
+ 3664 3671 3651
+ 2221 0 0
+ 2222 0 0
+ 2218 0 96
+ 2226 0 231
+ 2254 0 411
+ 2283 0 543
+ 2302 0 837
+ 2324 0 1096
+ 2343 0 1368
+ 2368 0 1597
+ 2390 0 1826
+ 2424 0 2007
+ 2540 0 2241
+ 2731 0 2529
+ 2849 380 2707
+ 2924 817 2819
+ 2976 1123 2897
+ 2308 0 0
+ 2310 0 0
+ 2313 0 180
+ 2324 0 298
+ 2355 0 455
+ 2384 0 624
+ 2411 0 890
+ 2436 0 1170
+ 2455 0 1446
+ 2477 0 1699
+ 2498 0 1919
+ 2530 0 2109
+ 2638 0 2340
+ 2812 0 2611
+ 2919 489 2780
+ 2989 940 2887
+ 3038 1255 2963
+ 2403 36 0
+ 2412 0 0
+ 2425 0 199
+ 2436 0 336
+ 2470 0 475
+ 2495 0 688
+ 2524 0 943
+ 2549 0 1247
+ 2568 0 1534
+ 2588 0 1799
+ 2606 0 2028
+ 2637 0 2224
+ 2738 0 2444
+ 2892 0 2690
+ 2989 619 2846
+ 3052 1085 2949
+ 3097 1411 3020
+ 2519 416 0
+ 2528 411 0
+ 2541 384 222
+ 2555 410 367
+ 2589 414 514
+ 2614 435 743
+ 2644 429 1016
+ 2669 390 1332
+ 2689 0 1633
+ 2709 0 1909
+ 2725 0 2144
+ 2753 0 2348
+ 2841 0 2557
+ 2974 332 2776
+ 3061 771 2919
+ 3120 1252 3015
+ 3162 1588 3082
+ 2629 628 0
+ 2641 635 0
+ 2656 616 236
+ 2672 649 390
+ 2708 658 549
+ 2733 698 797
+ 2761 698 1089
+ 2787 731 1413
+ 2804 735 1725
+ 2824 734 2011
+ 2839 751 2257
+ 2861 778 2460
+ 2932 936 2655
+ 3052 1269 2857
+ 3134 1503 2993
+ 3185 1650 3078
+ 3221 1753 3138
+ 2770 834 0
+ 2785 872 0
+ 2805 903 264
+ 2819 915 413
+ 2857 952 604
+ 2882 977 845
+ 2912 1017 1169
+ 2932 1049 1509
+ 2949 1079 1840
+ 2965 1107 2136
+ 2974 1120 2395
+ 2991 1154 2598
+ 3048 1300 2782
+ 3155 1589 2966
+ 3221 1768 3081
+ 3263 1880 3153
+ 3292 1958 3203
+ 2944 1175 0
+ 2958 1190 0
+ 2976 1189 253
+ 2996 1234 441
+ 3035 1262 634
+ 3062 1313 917
+ 3091 1350 1251
+ 3111 1403 1617
+ 3125 1444 1964
+ 3138 1469 2273
+ 3144 1508 2536
+ 3154 1534 2744
+ 3197 1648 2922
+ 3276 1892 3078
+ 3325 2046 3175
+ 3356 2142 3236
+ 3378 2209 3278
+ 3133 1496 0
+ 3150 1537 0
+ 3173 1574 0
+ 3191 1604 434
+ 3230 1665 684
+ 3255 1707 974
+ 3282 1779 1345
+ 3296 1832 1726
+ 3306 1882 2087
+ 3315 1925 2409
+ 3314 1954 2679
+ 3317 1980 2887
+ 3342 2071 3052
+ 3393 2244 3184
+ 3431 2362 3271
+ 3454 2437 3326
+ 3471 2488 3365
+ 3350 1938 0
+ 3358 1952 0
+ 3375 1965 0
+ 3397 2019 413
+ 3434 2071 695
+ 3454 2135 1038
+ 3479 2205 1430
+ 3486 2272 1829
+ 3491 2332 2206
+ 3493 2371 2537
+ 3488 2412 2816
+ 3483 2429 3020
+ 3497 2491 3182
+ 3521 2605 3295
+ 3540 2687 3367
+ 3554 2747 3414
+ 3564 2790 3447
+ 3512 2263 0
+ 3530 2299 0
+ 3558 2343 0
+ 3571 2387 363
+ 3606 2453 702
+ 3622 2521 1082
+ 3642 2602 1494
+ 3644 2671 1914
+ 3638 2725 2293
+ 3636 2778 2641
+ 3624 2808 2914
+ 3621 2835 3130
+ 3627 2882 3288
+ 3635 2954 3386
+ 3639 3000 3447
+ 3641 3028 3485
+ 3648 3060 3516
+ 3673 2615 0
+ 3676 2625 0
+ 3688 2645 0
+ 3707 2703 0
+ 3736 2768 715
+ 3751 2842 1114
+ 3762 2920 1552
+ 3759 2988 1975
+ 3750 3049 2363
+ 3740 3090 2708
+ 3730 3138 2998
+ 3721 3156 3209
+ 3720 3184 3361
+ 3720 3230 3452
+ 3719 3260 3510
+ 3719 3278 3545
+ 3720 3297 3571
+ 3746 2787 0
+ 3760 2819 0
+ 3782 2858 0
+ 3795 2908 0
+ 3823 2977 738
+ 3835 3054 1164
+ 3842 3132 1602
+ 3838 3211 2033
+ 3823 3265 2424
+ 3814 3318 2777
+ 3797 3350 3050
+ 3791 3380 3269
+ 3786 3398 3417
+ 3772 3408 3495
+ 3766 3421 3546
+ 3765 3439 3582
+ 3765 3452 3607
+ 3798 2912 0
+ 3818 2960 0
+ 3849 3019 0
+ 3856 3064 0
+ 3880 3138 870
+ 3883 3205 1310
+ 3892 3289 1735
+ 3881 3355 2154
+ 3869 3414 2534
+ 3858 3466 2872
+ 3839 3492 3128
+ 3832 3517 3322
+ 3828 3536 3457
+ 3815 3545 3533
+ 3805 3550 3581
+ 3799 3554 3611
+ 3795 3556 3632
+ 3835 3006 0
+ 3855 3057 0
+ 3879 3117 0
+ 3889 3171 0
+ 3899 3244 1096
+ 3897 3306 1512
+ 3902 3385 1917
+ 3887 3438 2299
+ 3876 3498 2657
+ 3864 3541 2962
+ 3849 3569 3205
+ 3841 3587 3361
+ 3837 3606 3497
+ 3827 3610 3551
+ 3817 3615 3598
+ 3812 3619 3628
+ 3807 3621 3650
+ 3859 3064 0
+ 3878 3118 0
+ 3898 3178 42
+ 3909 3239 318
+ 3913 3310 1254
+ 3908 3372 1643
+ 3906 3444 2038
+ 3893 3497 2405
+ 3881 3550 2734
+ 3867 3588 3018
+ 3856 3618 3253
+ 3847 3634 3400
+ 3842 3649 3521
+ 3832 3653 3576
+ 3825 3656 3609
+ 3819 3659 3639
+ 3815 3662 3660
+ 3874 3102 0
+ 3893 3156 0
+ 3911 3217 404
+ 3923 3282 726
+ 3921 3352 1356
+ 3915 3414 1726
+ 3909 3482 2115
+ 3897 3536 2474
+ 3883 3583 2790
+ 3870 3619 3054
+ 3860 3649 3285
+ 3851 3665 3431
+ 3845 3677 3537
+ 3835 3681 3591
+ 3828 3684 3625
+ 3824 3685 3646
+ 3820 3688 3667
+ 3885 3129 0
+ 3903 3184 0
+ 3919 3245 665
+ 3932 3313 1020
+ 3927 3382 1429
+ 3920 3445 1787
+ 3912 3509 2171
+ 3900 3564 2523
+ 3884 3607 2832
+ 3872 3642 3088
+ 3862 3670 3310
+ 3854 3687 3453
+ 3848 3697 3548
+ 3838 3701 3603
+ 3831 3704 3636
+ 3826 3705 3657
+ 3823 3706 3672
+ 2332 0 0
+ 2334 0 0
+ 2333 0 116
+ 2338 0 240
+ 2366 0 427
+ 2396 0 562
+ 2415 0 859
+ 2438 0 1122
+ 2454 0 1396
+ 2477 0 1628
+ 2497 0 1851
+ 2530 0 2035
+ 2646 0 2270
+ 2839 0 2565
+ 2958 436 2744
+ 3033 873 2855
+ 3085 1179 2934
+ 2420 0 0
+ 2423 0 0
+ 2426 0 196
+ 2435 0 309
+ 2465 0 470
+ 2493 0 641
+ 2519 0 914
+ 2543 0 1194
+ 2561 0 1475
+ 2582 0 1726
+ 2601 0 1949
+ 2632 0 2138
+ 2740 0 2369
+ 2920 0 2645
+ 3028 550 2814
+ 3097 1001 2921
+ 3146 1316 2997
+ 2513 31 0
+ 2520 0 0
+ 2530 0 220
+ 2540 0 345
+ 2574 0 492
+ 2598 0 706
+ 2626 0 970
+ 2649 0 1269
+ 2669 0 1564
+ 2689 0 1823
+ 2705 0 2059
+ 2734 0 2254
+ 2835 0 2475
+ 2998 0 2721
+ 3096 683 2877
+ 3160 1149 2979
+ 3204 1475 3051
+ 2624 439 0
+ 2633 442 0
+ 2644 432 245
+ 2656 449 376
+ 2689 458 534
+ 2714 482 761
+ 2744 478 1042
+ 2768 446 1357
+ 2789 0 1664
+ 2808 0 1934
+ 2825 0 2176
+ 2851 0 2377
+ 2940 30 2585
+ 3080 396 2804
+ 3168 835 2947
+ 3228 1316 3044
+ 3269 1653 3111
+ 2733 656 0
+ 2746 669 0
+ 2758 661 257
+ 2773 687 397
+ 2808 701 570
+ 2834 740 815
+ 2862 745 1116
+ 2886 781 1439
+ 2904 783 1754
+ 2924 792 2036
+ 2940 808 2289
+ 2961 842 2490
+ 3033 1000 2684
+ 3159 1332 2885
+ 3241 1566 3022
+ 3292 1713 3107
+ 3328 1815 3167
+ 2873 870 0
+ 2889 910 0
+ 2906 940 280
+ 2920 952 417
+ 2958 992 622
+ 2983 1018 866
+ 3013 1059 1196
+ 3033 1089 1536
+ 3049 1118 1868
+ 3066 1149 2160
+ 3077 1169 2427
+ 3093 1204 2629
+ 3150 1350 2812
+ 3262 1648 2994
+ 3329 1828 3109
+ 3370 1940 3181
+ 3399 2019 3232
+ 3051 1222 0
+ 3065 1243 0
+ 3081 1253 270
+ 3100 1290 443
+ 3138 1322 651
+ 3165 1374 936
+ 3193 1414 1279
+ 3212 1470 1639
+ 3227 1510 1993
+ 3240 1541 2296
+ 3247 1577 2567
+ 3257 1608 2769
+ 3299 1722 2947
+ 3383 1952 3106
+ 3433 2105 3203
+ 3464 2201 3264
+ 3485 2268 3306
+ 3239 1550 0
+ 3256 1592 0
+ 3276 1630 0
+ 3292 1656 432
+ 3330 1717 698
+ 3353 1763 991
+ 3380 1834 1370
+ 3393 1882 1745
+ 3405 1936 2113
+ 3413 1978 2429
+ 3414 2009 2707
+ 3418 2036 2909
+ 3443 2127 3074
+ 3498 2298 3208
+ 3536 2417 3296
+ 3560 2491 3350
+ 3576 2543 3389
+ 3454 1998 0
+ 3463 2011 0
+ 3478 2026 0
+ 3498 2073 407
+ 3532 2129 709
+ 3552 2196 1053
+ 3577 2270 1455
+ 3584 2334 1851
+ 3590 2396 2238
+ 3592 2434 2561
+ 3589 2474 2842
+ 3584 2490 3040
+ 3598 2552 3202
+ 3624 2653 3315
+ 3643 2734 3388
+ 3657 2795 3434
+ 3667 2837 3467
+ 3615 2322 0
+ 3628 2353 0
+ 3648 2390 0
+ 3663 2433 355
+ 3695 2498 719
+ 3710 2566 1096
+ 3730 2650 1518
+ 3732 2715 1930
+ 3730 2773 2319
+ 3726 2820 2655
+ 3718 2855 2935
+ 3714 2877 3142
+ 3720 2925 3300
+ 3736 2993 3404
+ 3740 3038 3465
+ 3743 3067 3503
+ 3749 3098 3534
+ 3766 2657 0
+ 3769 2669 0
+ 3781 2694 0
+ 3799 2748 0
+ 3828 2814 729
+ 3843 2887 1126
+ 3853 2966 1571
+ 3851 3032 1991
+ 3843 3091 2385
+ 3834 3131 2722
+ 3827 3182 3018
+ 3817 3199 3223
+ 3816 3228 3375
+ 3821 3265 3468
+ 3821 3293 3526
+ 3821 3312 3561
+ 3822 3330 3587
+ 3838 2819 0
+ 3849 2849 0
+ 3864 2883 0
+ 3880 2935 0
+ 3906 3004 762
+ 3918 3078 1177
+ 3925 3156 1619
+ 3921 3230 2043
+ 3910 3289 2441
+ 3901 3338 2783
+ 3888 3375 3065
+ 3880 3399 3274
+ 3875 3417 3422
+ 3872 3433 3508
+ 3867 3446 3560
+ 3866 3465 3595
+ 3866 3478 3620
+ 3889 2944 0
+ 3908 2991 0
+ 3931 3044 0
+ 3940 3091 0
+ 3963 3165 893
+ 3966 3229 1324
+ 3975 3314 1753
+ 3964 3374 2165
+ 3956 3439 2551
+ 3944 3486 2878
+ 3930 3517 3142
+ 3921 3537 3327
+ 3917 3555 3462
+ 3915 3570 3546
+ 3906 3576 3594
+ 3900 3579 3625
+ 3896 3582 3646
+ 3927 3032 0
+ 3946 3085 0
+ 3970 3147 0
+ 3979 3201 0
+ 3991 3272 1116
+ 3989 3333 1531
+ 3996 3411 1936
+ 3983 3464 2319
+ 3974 3524 2681
+ 3963 3566 2981
+ 3949 3593 3221
+ 3942 3610 3373
+ 3938 3628 3509
+ 3933 3633 3564
+ 3924 3638 3611
+ 3919 3642 3641
+ 3914 3644 3663
+ 3950 3091 0
+ 3969 3146 0
+ 3990 3208 63
+ 4000 3268 335
+ 4004 3338 1274
+ 4001 3399 1662
+ 4000 3470 2056
+ 3989 3523 2424
+ 3979 3576 2757
+ 3967 3613 3037
+ 3956 3641 3270
+ 3948 3657 3412
+ 3943 3672 3534
+ 3939 3676 3589
+ 3932 3679 3622
+ 3926 3682 3652
+ 3922 3685 3673
+ 3966 3128 0
+ 3984 3184 0
+ 4002 3248 425
+ 4013 3311 743
+ 4013 3380 1376
+ 4008 3441 1746
+ 4003 3508 2134
+ 3993 3561 2493
+ 3981 3609 2814
+ 3969 3643 3072
+ 3960 3672 3301
+ 3952 3688 3443
+ 3947 3700 3549
+ 3942 3704 3604
+ 3935 3707 3638
+ 3931 3708 3659
+ 3927 3711 3680
+ 3976 3155 0
+ 3995 3212 0
+ 4011 3276 686
+ 4023 3342 1037
+ 4019 3410 1449
+ 4013 3471 1806
+ 4006 3535 2189
+ 3996 3589 2542
+ 3982 3633 2855
+ 3971 3667 3106
+ 3961 3694 3327
+ 3955 3710 3466
+ 3949 3720 3561
+ 3944 3724 3616
+ 3938 3727 3649
+ 3934 3728 3671
+ 3931 3729 3685
+ 2402 0 0
+ 2405 0 0
+ 2405 0 129
+ 2409 0 246
+ 2438 0 433
+ 2466 0 575
+ 2487 0 869
+ 2508 0 1138
+ 2523 0 1414
+ 2546 0 1647
+ 2563 0 1867
+ 2597 0 2052
+ 2713 0 2288
+ 2906 0 2582
+ 3027 470 2766
+ 3101 908 2878
+ 3153 1214 2956
+ 2491 0 0
+ 2494 0 0
+ 2496 0 206
+ 2505 0 315
+ 2534 0 482
+ 2562 0 649
+ 2587 0 928
+ 2610 0 1210
+ 2628 0 1493
+ 2648 0 1743
+ 2666 0 1968
+ 2697 0 2156
+ 2804 0 2387
+ 2984 0 2663
+ 3096 587 2835
+ 3165 1039 2943
+ 3214 1354 3018
+ 2582 0 0
+ 2589 0 0
+ 2596 0 233
+ 2606 0 351
+ 2639 0 512
+ 2664 0 711
+ 2691 0 988
+ 2713 0 1285
+ 2733 0 1583
+ 2752 0 1839
+ 2768 0 2079
+ 2797 0 2274
+ 2897 0 2494
+ 3060 225 2740
+ 3163 721 2897
+ 3227 1189 2999
+ 3272 1515 3071
+ 2692 445 0
+ 2700 455 0
+ 2709 457 260
+ 2720 468 382
+ 2752 485 554
+ 2779 505 768
+ 2807 511 1059
+ 2831 489 1373
+ 2852 30 1683
+ 2871 0 1950
+ 2888 0 2196
+ 2914 0 2396
+ 3002 227 2604
+ 3142 593 2823
+ 3235 885 2966
+ 3295 1356 3062
+ 3337 1693 3129
+ 2800 670 0
+ 2812 688 0
+ 2823 691 272
+ 2836 711 402
+ 2870 732 591
+ 2898 766 823
+ 2924 779 1132
+ 2949 811 1455
+ 2967 816 1773
+ 2987 834 2052
+ 3002 847 2309
+ 3024 884 2509
+ 3095 1046 2702
+ 3221 1378 2903
+ 3309 1607 3040
+ 3360 1753 3125
+ 3396 1856 3185
+ 2937 893 0
+ 2954 934 0
+ 2970 964 290
+ 2983 975 419
+ 3021 1016 635
+ 3048 1044 876
+ 3076 1085 1213
+ 3096 1116 1553
+ 3112 1143 1885
+ 3129 1176 2175
+ 3142 1200 2447
+ 3158 1235 2648
+ 3215 1382 2831
+ 3326 1680 3013
+ 3396 1866 3127
+ 3438 1978 3199
+ 3467 2057 3250
+ 3118 1252 0
+ 3133 1276 0
+ 3148 1293 281
+ 3166 1326 445
+ 3202 1362 668
+ 3230 1410 943
+ 3256 1455 1296
+ 3276 1510 1657
+ 3292 1551 2012
+ 3304 1585 2310
+ 3312 1621 2587
+ 3322 1653 2788
+ 3364 1769 2963
+ 3448 1999 3121
+ 3500 2142 3221
+ 3531 2238 3281
+ 3553 2305 3324
+ 3306 1584 0
+ 3323 1626 0
+ 3341 1663 0
+ 3357 1688 432
+ 3392 1748 710
+ 3417 1795 999
+ 3442 1867 1385
+ 3456 1916 1760
+ 3469 1970 2130
+ 3476 2009 2443
+ 3478 2043 2726
+ 3482 2070 2928
+ 3507 2160 3090
+ 3562 2332 3224
+ 3603 2453 3311
+ 3626 2527 3366
+ 3643 2579 3404
+ 3521 2033 0
+ 3529 2048 0
+ 3542 2066 0
+ 3561 2108 404
+ 3593 2166 724
+ 3614 2232 1058
+ 3637 2309 1470
+ 3645 2373 1867
+ 3652 2433 2256
+ 3653 2471 2573
+ 3651 2512 2857
+ 3647 2528 3054
+ 3661 2590 3213
+ 3687 2691 3327
+ 3708 2766 3401
+ 3722 2826 3448
+ 3732 2868 3480
+ 3679 2358 0
+ 3690 2387 0
+ 3705 2419 0
+ 3721 2462 350
+ 3749 2526 741
+ 3767 2595 1099
+ 3784 2678 1532
+ 3789 2746 1945
+ 3787 2802 2335
+ 3783 2846 2664
+ 3778 2884 2948
+ 3773 2906 3153
+ 3779 2951 3307
+ 3795 3020 3411
+ 3804 3063 3476
+ 3807 3091 3514
+ 3814 3123 3545
+ 3824 2683 0
+ 3828 2697 0
+ 3839 2725 0
+ 3857 2776 0
+ 3885 2844 745
+ 3901 2916 1129
+ 3910 2995 1582
+ 3909 3061 2002
+ 3901 3117 2399
+ 3894 3156 2731
+ 3888 3210 3031
+ 3878 3227 3235
+ 3877 3255 3384
+ 3882 3292 3477
+ 3885 3315 3536
+ 3885 3333 3571
+ 3886 3351 3598
+ 3896 2841 0
+ 3906 2872 0
+ 3919 2905 0
+ 3935 2956 0
+ 3958 3025 788
+ 3973 3099 1182
+ 3977 3175 1631
+ 3976 3251 2054
+ 3966 3309 2453
+ 3957 3355 2788
+ 3947 3396 3075
+ 3938 3418 3282
+ 3933 3435 3427
+ 3930 3450 3513
+ 3930 3464 3569
+ 3930 3482 3604
+ 3930 3495 3629
+ 3947 2964 0
+ 3964 3010 0
+ 3983 3060 0
+ 3994 3108 0
+ 4012 3181 924
+ 4020 3246 1329
+ 4025 3326 1766
+ 4017 3391 2174
+ 4010 3455 2562
+ 3999 3498 2882
+ 3988 3533 3151
+ 3978 3551 3334
+ 3974 3567 3466
+ 3971 3582 3549
+ 3969 3592 3603
+ 3963 3595 3633
+ 3959 3598 3654
+ 3984 3052 0
+ 4003 3104 0
+ 4022 3163 0
+ 4033 3218 0
+ 4041 3288 1147
+ 4043 3350 1537
+ 4046 3424 1948
+ 4036 3480 2329
+ 4029 3539 2691
+ 4017 3578 2984
+ 4007 3609 3230
+ 3999 3624 3380
+ 3994 3640 3512
+ 3989 3645 3567
+ 3988 3654 3620
+ 3982 3658 3650
+ 3978 3660 3671
+ 4008 3107 0
+ 4027 3163 0
+ 4047 3228 77
+ 4057 3287 345
+ 4062 3356 1287
+ 4059 3416 1675
+ 4059 3487 2068
+ 4048 3539 2436
+ 4041 3592 2772
+ 4029 3628 3048
+ 4018 3656 3280
+ 4011 3671 3422
+ 4007 3686 3541
+ 4002 3691 3596
+ 3999 3693 3631
+ 3994 3697 3660
+ 3989 3699 3682
+ 4023 3145 0
+ 4041 3202 0
+ 4059 3267 439
+ 4070 3330 753
+ 4070 3398 1388
+ 4066 3458 1759
+ 4062 3524 2146
+ 4052 3578 2505
+ 4043 3625 2828
+ 4031 3658 3084
+ 4022 3687 3312
+ 4015 3702 3453
+ 4010 3714 3557
+ 4006 3719 3612
+ 4003 3721 3646
+ 3999 3723 3667
+ 3994 3725 3688
+ 4034 3172 0
+ 4052 3230 0
+ 4068 3295 700
+ 4080 3361 1047
+ 4076 3428 1461
+ 4071 3489 1819
+ 4064 3552 2201
+ 4055 3606 2554
+ 4044 3649 2870
+ 4033 3682 3118
+ 4024 3708 3337
+ 4018 3725 3475
+ 4013 3734 3568
+ 4008 3739 3623
+ 4005 3741 3658
+ 4001 3743 3679
+ 3998 3744 3693
+ 2447 0 0
+ 2450 0 0
+ 2451 0 138
+ 2455 0 250
+ 2484 0 437
+ 2511 0 583
+ 2533 0 876
+ 2554 0 1149
+ 2569 0 1425
+ 2591 0 1659
+ 2606 0 1878
+ 2640 0 2062
+ 2756 0 2299
+ 2949 0 2594
+ 3070 470 2778
+ 3145 931 2893
+ 3197 1237 2971
+ 2536 0 0
+ 2539 0 0
+ 2542 0 211
+ 2550 0 319
+ 2580 0 488
+ 2607 0 655
+ 2632 0 935
+ 2655 0 1221
+ 2672 0 1503
+ 2691 0 1755
+ 2709 0 1980
+ 2739 0 2168
+ 2846 0 2398
+ 3026 0 2674
+ 3138 587 2847
+ 3209 1063 2957
+ 3258 1378 3032
+ 2628 0 0
+ 2634 0 0
+ 2640 0 242
+ 2650 0 355
+ 2681 0 524
+ 2708 0 715
+ 2733 0 999
+ 2756 0 1296
+ 2775 0 1593
+ 2793 0 1848
+ 2809 0 2091
+ 2838 0 2287
+ 2937 0 2506
+ 3100 225 2753
+ 3203 721 2909
+ 3271 1214 3013
+ 3315 1540 3084
+ 2736 444 0
+ 2744 458 0
+ 2751 469 268
+ 2762 477 385
+ 2794 500 566
+ 2821 517 772
+ 2849 530 1071
+ 2872 526 1384
+ 2892 327 1692
+ 2912 249 1960
+ 2928 0 2209
+ 2954 0 2409
+ 3041 478 2616
+ 3181 844 2835
+ 3275 1136 2979
+ 3338 1383 3075
+ 3380 1719 3142
+ 2842 679 0
+ 2855 701 0
+ 2864 711 281
+ 2877 727 406
+ 2910 751 604
+ 2938 782 828
+ 2965 800 1143
+ 2989 829 1466
+ 3007 839 1784
+ 3027 861 2062
+ 3042 873 2322
+ 3064 909 2522
+ 3135 1076 2714
+ 3261 1408 2915
+ 3348 1636 3051
+ 3403 1779 3137
+ 3439 1882 3196
+ 2979 907 0
+ 2996 949 0
+ 3011 979 296
+ 3024 990 421
+ 3061 1031 643
+ 3089 1060 882
+ 3116 1101 1224
+ 3137 1132 1565
+ 3153 1159 1896
+ 3170 1194 2184
+ 3183 1219 2459
+ 3200 1254 2661
+ 3256 1402 2843
+ 3368 1700 3025
+ 3437 1886 3139
+ 3481 2003 3211
+ 3510 2081 3261
+ 3162 1271 0
+ 3176 1298 0
+ 3190 1319 288
+ 3208 1348 445
+ 3243 1388 678
+ 3272 1434 947
+ 3297 1482 1307
+ 3318 1535 1668
+ 3333 1578 2022
+ 3345 1614 2319
+ 3353 1649 2599
+ 3364 1681 2800
+ 3405 1798 2973
+ 3489 2029 3132
+ 3542 2172 3231
+ 3575 2262 3293
+ 3596 2329 3335
+ 3348 1606 0
+ 3365 1648 0
+ 3383 1683 0
+ 3399 1709 431
+ 3433 1768 718
+ 3458 1816 1004
+ 3482 1887 1394
+ 3497 1939 1771
+ 3509 1990 2139
+ 3516 2029 2452
+ 3519 2065 2738
+ 3523 2091 2940
+ 3549 2182 3101
+ 3604 2353 3234
+ 3644 2474 3322
+ 3669 2549 3376
+ 3686 2601 3415
+ 3564 2055 0
+ 3571 2071 0
+ 3584 2092 0
+ 3602 2130 403
+ 3631 2190 736
+ 3653 2254 1061
+ 3675 2334 1480
+ 3684 2397 1877
+ 3690 2456 2262
+ 3691 2494 2578
+ 3691 2536 2866
+ 3686 2552 3063
+ 3700 2614 3220
+ 3726 2715 3333
+ 3747 2790 3407
+ 3764 2848 3457
+ 3774 2890 3489
+ 3721 2382 0
+ 3730 2409 0
+ 3742 2438 0
+ 3759 2481 347
+ 3784 2543 755
+ 3804 2613 1102
+ 3819 2695 1541
+ 3825 2766 1954
+ 3823 2820 2343
+ 3820 2864 2670
+ 3816 2903 2956
+ 3811 2925 3162
+ 3817 2969 3312
+ 3832 3037 3416
+ 3842 3080 3481
+ 3848 3107 3522
+ 3855 3139 3553
+ 3861 2700 0
+ 3865 2714 0
+ 3877 2745 0
+ 3895 2794 0
+ 3921 2863 756
+ 3938 2934 1131
+ 3947 3014 1589
+ 3946 3079 2010
+ 3938 3135 2406
+ 3932 3173 2736
+ 3927 3228 3039
+ 3917 3245 3243
+ 3916 3272 3389
+ 3921 3309 3483
+ 3924 3332 3541
+ 3926 3347 3578
+ 3927 3365 3604
+ 3933 2858 0
+ 3944 2889 0
+ 3956 2925 0
+ 3972 2974 0
+ 3995 3044 798
+ 4010 3117 1184
+ 4014 3194 1639
+ 4013 3270 2061
+ 4003 3326 2459
+ 3995 3372 2794
+ 3986 3413 3083
+ 3978 3436 3290
+ 3972 3452 3432
+ 3969 3468 3519
+ 3969 3482 3574
+ 3971 3496 3611
+ 3971 3509 3636
+ 3984 2976 0
+ 4000 3022 0
+ 4016 3070 0
+ 4028 3119 0
+ 4044 3191 944
+ 4054 3257 1332
+ 4057 3335 1774
+ 4052 3402 2181
+ 4044 3463 2566
+ 4034 3506 2885
+ 4024 3543 3156
+ 4015 3561 3339
+ 4010 3575 3468
+ 4007 3590 3551
+ 4005 3599 3605
+ 4004 3605 3639
+ 4000 3608 3660
+ 4021 3065 0
+ 4039 3117 0
+ 4055 3173 0
+ 4067 3229 0
+ 4072 3298 1166
+ 4077 3360 1540
+ 4078 3432 1956
+ 4070 3491 2335
+ 4063 3547 2696
+ 4053 3586 2987
+ 4043 3618 3236
+ 4036 3635 3386
+ 4030 3648 3514
+ 4025 3653 3569
+ 4024 3662 3622
+ 4023 3668 3655
+ 4019 3670 3677
+ 4045 3120 0
+ 4063 3176 0
+ 4080 3238 77
+ 4091 3298 345
+ 4093 3366 1307
+ 4093 3427 1678
+ 4091 3495 2076
+ 4083 3550 2443
+ 4074 3600 2777
+ 4064 3636 3051
+ 4055 3666 3285
+ 4048 3681 3428
+ 4043 3694 3543
+ 4038 3698 3598
+ 4035 3701 3633
+ 4034 3707 3666
+ 4030 3710 3687
+ 4060 3156 0
+ 4078 3213 0
+ 4095 3279 447
+ 4095 3342 760
+ 4095 3410 1396
+ 4095 3469 1767
+ 4095 3535 2153
+ 4090 3588 2512
+ 4082 3636 2837
+ 4071 3668 3091
+ 4062 3696 3318
+ 4056 3712 3459
+ 4051 3723 3562
+ 4046 3728 3617
+ 4044 3730 3651
+ 4042 3732 3673
+ 4038 3735 3694
+ 4071 3183 0
+ 4089 3241 0
+ 4095 3307 708
+ 4095 3373 1054
+ 4095 3440 1469
+ 4095 3500 1827
+ 4095 3562 2209
+ 4093 3616 2562
+ 4083 3660 2878
+ 4073 3692 3125
+ 4064 3718 3344
+ 4059 3734 3482
+ 4053 3743 3573
+ 4049 3748 3628
+ 4046 3750 3662
+ 4044 3752 3684
+ 4041 3753 3699
+ 2479 0 0
+ 2483 0 0
+ 2485 0 144
+ 2488 0 252
+ 2518 0 440
+ 2543 0 590
+ 2566 0 881
+ 2586 0 1156
+ 2602 0 1432
+ 2623 0 1668
+ 2639 0 1887
+ 2671 0 2070
+ 2787 0 2308
+ 2980 0 2602
+ 3101 470 2786
+ 3176 931 2901
+ 3229 1253 2982
+ 2569 0 0
+ 2572 0 0
+ 2575 0 215
+ 2583 0 322
+ 2613 0 492
+ 2640 0 659
+ 2665 0 941
+ 2687 0 1228
+ 2704 0 1511
+ 2723 0 1764
+ 2740 0 1989
+ 2770 0 2176
+ 2877 0 2407
+ 3056 0 2683
+ 3168 587 2855
+ 3240 1063 2965
+ 3290 1396 3043
+ 2661 0 0
+ 2667 0 0
+ 2672 0 249
+ 2681 0 358
+ 2712 0 533
+ 2739 0 717
+ 2764 0 1007
+ 2786 0 1303
+ 2805 0 1600
+ 2823 0 1857
+ 2839 0 2098
+ 2867 0 2296
+ 2965 0 2515
+ 3129 225 2761
+ 3232 721 2918
+ 3300 1214 3021
+ 3347 1559 3094
+ 2768 442 0
+ 2775 461 0
+ 2782 477 274
+ 2793 484 388
+ 2823 511 575
+ 2851 526 774
+ 2878 545 1079
+ 2902 553 1392
+ 2922 542 1699
+ 2941 456 1968
+ 2957 58 2216
+ 2983 0 2418
+ 3069 660 2625
+ 3210 1026 2844
+ 3303 1318 2987
+ 3367 1565 3084
+ 3411 1737 3151
+ 2873 685 0
+ 2885 709 0
+ 2895 725 288
+ 2907 738 409
+ 2939 765 614
+ 2968 794 831
+ 2994 816 1151
+ 3018 843 1474
+ 3036 855 1791
+ 3056 877 2070
+ 3071 892 2330
+ 3093 928 2532
+ 3163 1097 2722
+ 3290 1429 2923
+ 3377 1658 3060
+ 3432 1800 3145
+ 3471 1900 3205
+ 3009 918 0
+ 3026 961 0
+ 3041 990 301
+ 3053 1000 422
+ 3090 1042 649
+ 3119 1072 887
+ 3146 1113 1231
+ 3167 1145 1573
+ 3182 1171 1904
+ 3199 1205 2192
+ 3213 1232 2466
+ 3230 1269 2671
+ 3286 1416 2852
+ 3397 1715 3034
+ 3467 1901 3148
+ 3511 2017 3220
+ 3541 2099 3269
+ 3193 1285 0
+ 3207 1313 0
+ 3221 1338 293
+ 3239 1365 446
+ 3273 1407 686
+ 3302 1450 951
+ 3327 1501 1315
+ 3347 1553 1676
+ 3362 1598 2028
+ 3375 1633 2328
+ 3383 1670 2606
+ 3394 1701 2810
+ 3435 1820 2980
+ 3519 2050 3139
+ 3572 2194 3238
+ 3605 2284 3300
+ 3628 2347 3343
+ 3379 1622 0
+ 3396 1664 0
+ 3413 1698 0
+ 3429 1724 431
+ 3462 1783 724
+ 3488 1832 1008
+ 3511 1902 1401
+ 3526 1955 1778
+ 3538 2004 2145
+ 3546 2044 2460
+ 3549 2080 2744
+ 3553 2107 2949
+ 3579 2197 3108
+ 3634 2369 3242
+ 3674 2490 3329
+ 3699 2565 3384
+ 3717 2618 3422
+ 3595 2070 0
+ 3602 2087 0
+ 3613 2111 0
+ 3631 2146 402
+ 3658 2207 744
+ 3682 2271 1063
+ 3702 2352 1487
+ 3712 2414 1885
+ 3717 2472 2267
+ 3719 2510 2584
+ 3718 2552 2870
+ 3715 2569 3070
+ 3729 2632 3224
+ 3755 2732 3337
+ 3776 2808 3412
+ 3793 2865 3461
+ 3805 2906 3496
+ 3751 2399 0
+ 3761 2426 0
+ 3772 2456 0
+ 3788 2497 345
+ 3813 2560 761
+ 3833 2630 1104
+ 3847 2714 1548
+ 3854 2785 1962
+ 3852 2839 2350
+ 3849 2882 2679
+ 3845 2922 2963
+ 3840 2943 3169
+ 3846 2986 3318
+ 3862 3055 3422
+ 3872 3098 3487
+ 3878 3125 3528
+ 3885 3152 3558
+ 3891 2716 0
+ 3894 2730 0
+ 3903 2759 0
+ 3922 2807 0
+ 3947 2876 765
+ 3965 2947 1133
+ 3972 3026 1596
+ 3973 3094 2017
+ 3964 3148 2410
+ 3959 3186 2743
+ 3954 3240 3043
+ 3945 3258 3249
+ 3943 3285 3393
+ 3948 3322 3486
+ 3951 3345 3545
+ 3953 3359 3581
+ 3957 3376 3609
+ 3960 2870 0
+ 3971 2902 0
+ 3983 2939 0
+ 3999 2987 0
+ 4021 3057 806
+ 4037 3130 1186
+ 4041 3207 1644
+ 4039 3283 2067
+ 4030 3339 2464
+ 4023 3384 2800
+ 4014 3425 3087
+ 4006 3449 3296
+ 4000 3465 3437
+ 3997 3480 3523
+ 3997 3494 3578
+ 3999 3509 3615
+ 4001 3519 3641
+ 4011 2986 0
+ 4026 3031 0
+ 4040 3077 0
+ 4053 3127 0
+ 4068 3199 958
+ 4079 3265 1335
+ 4081 3341 1779
+ 4077 3410 2186
+ 4068 3469 2569
+ 4060 3513 2889
+ 4050 3548 3158
+ 4042 3569 3344
+ 4036 3581 3469
+ 4033 3595 3552
+ 4031 3605 3606
+ 4030 3611 3640
+ 4029 3615 3664
+ 4048 3074 0
+ 4065 3126 0
+ 4079 3181 0
+ 4092 3237 0
+ 4095 3306 1181
+ 4095 3368 1542
+ 4095 3438 1962
+ 4095 3500 2340
+ 4087 3553 2699
+ 4078 3593 2991
+ 4069 3624 3237
+ 4063 3642 3390
+ 4056 3654 3516
+ 4052 3658 3571
+ 4050 3668 3623
+ 4049 3674 3657
+ 4048 3678 3680
+ 4072 3130 0
+ 4089 3185 0
+ 4095 3245 77
+ 4095 3306 345
+ 4095 3374 1321
+ 4095 3435 1681
+ 4095 3501 2082
+ 4095 3559 2447
+ 4095 3606 2780
+ 4089 3643 3055
+ 4080 3671 3287
+ 4075 3689 3432
+ 4069 3700 3545
+ 4064 3704 3600
+ 4061 3707 3634
+ 4060 3713 3667
+ 4060 3717 3691
+ 4087 3165 0
+ 4095 3222 0
+ 4095 3286 447
+ 4095 3350 760
+ 4095 3417 1410
+ 4095 3477 1769
+ 4095 3541 2159
+ 4095 3597 2517
+ 4095 3641 2840
+ 4095 3675 3096
+ 4088 3702 3320
+ 4082 3719 3464
+ 4077 3729 3563
+ 4072 3733 3618
+ 4070 3736 3653
+ 4068 3738 3674
+ 4067 3742 3698
+ 4095 3191 0
+ 4095 3250 0
+ 4095 3316 714
+ 4095 3381 1059
+ 4095 3448 1475
+ 4095 3508 1833
+ 4095 3570 2214
+ 4095 3624 2568
+ 4095 3667 2884
+ 4095 3699 3132
+ 4093 3725 3350
+ 4088 3741 3486
+ 4083 3750 3577
+ 4078 3754 3632
+ 4076 3757 3666
+ 4074 3759 3687
+ 4072 3760 3703
+
diff --git a/release/datafiles/colormanagement/luts/dci_xyz.spi1d b/release/datafiles/colormanagement/luts/dci_xyz.spi1d
new file mode 100644
index 00000000000..548956c2825
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/dci_xyz.spi1d
@@ -0,0 +1,65542 @@
+Version 1
+From 0.0 1.0910416666666667
+Length 65536
+Components 1
+{
+ 0.000000
+ 0.013916
+ 0.018311
+ 0.021240
+ 0.023926
+ 0.025879
+ 0.027832
+ 0.029541
+ 0.031006
+ 0.032471
+ 0.033936
+ 0.035156
+ 0.036377
+ 0.037598
+ 0.038574
+ 0.039551
+ 0.040771
+ 0.041748
+ 0.042480
+ 0.043457
+ 0.044434
+ 0.045166
+ 0.045898
+ 0.046875
+ 0.047607
+ 0.048340
+ 0.049072
+ 0.049805
+ 0.050537
+ 0.051270
+ 0.051758
+ 0.052490
+ 0.053223
+ 0.053711
+ 0.054443
+ 0.054932
+ 0.055664
+ 0.056152
+ 0.056885
+ 0.057373
+ 0.057861
+ 0.058350
+ 0.059082
+ 0.059570
+ 0.060059
+ 0.060547
+ 0.061035
+ 0.061523
+ 0.062012
+ 0.062500
+ 0.062988
+ 0.063477
+ 0.063965
+ 0.064453
+ 0.064941
+ 0.065430
+ 0.065918
+ 0.066406
+ 0.066895
+ 0.067139
+ 0.067627
+ 0.068115
+ 0.068604
+ 0.069092
+ 0.069336
+ 0.069824
+ 0.070312
+ 0.070557
+ 0.071045
+ 0.071533
+ 0.071777
+ 0.072266
+ 0.072510
+ 0.072998
+ 0.073486
+ 0.073730
+ 0.074219
+ 0.074463
+ 0.074951
+ 0.075195
+ 0.075684
+ 0.075928
+ 0.076416
+ 0.076660
+ 0.077148
+ 0.077393
+ 0.077881
+ 0.078125
+ 0.078369
+ 0.078857
+ 0.079102
+ 0.079590
+ 0.079834
+ 0.080078
+ 0.080566
+ 0.080811
+ 0.081055
+ 0.081543
+ 0.081787
+ 0.082031
+ 0.082520
+ 0.082764
+ 0.083008
+ 0.083252
+ 0.083740
+ 0.083984
+ 0.084229
+ 0.084473
+ 0.084961
+ 0.085205
+ 0.085449
+ 0.085693
+ 0.086182
+ 0.086426
+ 0.086670
+ 0.086914
+ 0.087158
+ 0.087646
+ 0.087891
+ 0.088135
+ 0.088379
+ 0.088623
+ 0.088867
+ 0.089355
+ 0.089600
+ 0.089844
+ 0.090088
+ 0.090332
+ 0.090576
+ 0.090820
+ 0.091064
+ 0.091553
+ 0.091797
+ 0.092041
+ 0.092285
+ 0.092529
+ 0.092773
+ 0.093018
+ 0.093262
+ 0.093506
+ 0.093750
+ 0.093994
+ 0.094238
+ 0.094482
+ 0.094727
+ 0.094971
+ 0.095459
+ 0.095703
+ 0.095947
+ 0.096191
+ 0.096436
+ 0.096680
+ 0.096924
+ 0.097168
+ 0.097412
+ 0.097656
+ 0.097900
+ 0.098145
+ 0.098389
+ 0.098633
+ 0.098877
+ 0.099121
+ 0.099121
+ 0.099365
+ 0.099609
+ 0.099854
+ 0.100098
+ 0.100342
+ 0.100586
+ 0.100830
+ 0.101074
+ 0.101318
+ 0.101562
+ 0.101807
+ 0.102051
+ 0.102295
+ 0.102539
+ 0.102783
+ 0.102783
+ 0.103027
+ 0.103271
+ 0.103516
+ 0.103760
+ 0.104004
+ 0.104248
+ 0.104492
+ 0.104736
+ 0.104980
+ 0.104980
+ 0.105225
+ 0.105469
+ 0.105713
+ 0.105957
+ 0.106201
+ 0.106445
+ 0.106689
+ 0.106689
+ 0.106934
+ 0.107178
+ 0.107422
+ 0.107666
+ 0.107910
+ 0.108154
+ 0.108154
+ 0.108398
+ 0.108643
+ 0.108887
+ 0.109131
+ 0.109375
+ 0.109375
+ 0.109619
+ 0.109863
+ 0.110107
+ 0.110352
+ 0.110352
+ 0.110596
+ 0.110840
+ 0.111084
+ 0.111328
+ 0.111572
+ 0.111572
+ 0.111816
+ 0.112061
+ 0.112305
+ 0.112549
+ 0.112549
+ 0.112793
+ 0.113037
+ 0.113281
+ 0.113281
+ 0.113525
+ 0.113770
+ 0.114014
+ 0.114258
+ 0.114258
+ 0.114502
+ 0.114746
+ 0.114990
+ 0.114990
+ 0.115234
+ 0.115479
+ 0.115723
+ 0.115723
+ 0.115967
+ 0.116211
+ 0.116455
+ 0.116455
+ 0.116699
+ 0.116943
+ 0.117188
+ 0.117188
+ 0.117432
+ 0.117676
+ 0.117920
+ 0.117920
+ 0.118164
+ 0.118408
+ 0.118652
+ 0.118652
+ 0.118896
+ 0.119141
+ 0.119141
+ 0.119385
+ 0.119629
+ 0.119873
+ 0.119873
+ 0.120117
+ 0.120361
+ 0.120361
+ 0.120605
+ 0.120850
+ 0.121094
+ 0.121094
+ 0.121338
+ 0.121582
+ 0.121582
+ 0.121826
+ 0.122070
+ 0.122070
+ 0.122314
+ 0.122559
+ 0.122803
+ 0.122803
+ 0.123047
+ 0.123291
+ 0.123291
+ 0.123535
+ 0.123779
+ 0.123779
+ 0.124023
+ 0.124268
+ 0.124268
+ 0.124512
+ 0.124756
+ 0.124756
+ 0.125000
+ 0.125244
+ 0.125244
+ 0.125488
+ 0.125732
+ 0.125732
+ 0.125977
+ 0.126221
+ 0.126221
+ 0.126465
+ 0.126709
+ 0.126709
+ 0.126953
+ 0.127197
+ 0.127197
+ 0.127441
+ 0.127686
+ 0.127686
+ 0.127930
+ 0.127930
+ 0.128174
+ 0.128418
+ 0.128418
+ 0.128662
+ 0.128906
+ 0.128906
+ 0.129150
+ 0.129395
+ 0.129395
+ 0.129639
+ 0.129639
+ 0.129883
+ 0.130127
+ 0.130127
+ 0.130371
+ 0.130615
+ 0.130615
+ 0.130859
+ 0.130859
+ 0.131104
+ 0.131348
+ 0.131348
+ 0.131592
+ 0.131836
+ 0.131836
+ 0.132080
+ 0.132080
+ 0.132324
+ 0.132568
+ 0.132568
+ 0.132812
+ 0.132812
+ 0.133057
+ 0.133301
+ 0.133301
+ 0.133545
+ 0.133545
+ 0.133789
+ 0.134033
+ 0.134033
+ 0.134277
+ 0.134277
+ 0.134521
+ 0.134766
+ 0.134766
+ 0.135010
+ 0.135010
+ 0.135254
+ 0.135498
+ 0.135498
+ 0.135742
+ 0.135742
+ 0.135986
+ 0.135986
+ 0.136230
+ 0.136475
+ 0.136475
+ 0.136719
+ 0.136719
+ 0.136963
+ 0.137207
+ 0.137207
+ 0.137451
+ 0.137451
+ 0.137695
+ 0.137695
+ 0.137939
+ 0.138184
+ 0.138184
+ 0.138428
+ 0.138428
+ 0.138672
+ 0.138672
+ 0.138916
+ 0.139160
+ 0.139160
+ 0.139404
+ 0.139404
+ 0.139648
+ 0.139648
+ 0.139893
+ 0.139893
+ 0.140137
+ 0.140381
+ 0.140381
+ 0.140625
+ 0.140625
+ 0.140869
+ 0.140869
+ 0.141113
+ 0.141113
+ 0.141357
+ 0.141602
+ 0.141602
+ 0.141846
+ 0.141846
+ 0.142090
+ 0.142090
+ 0.142334
+ 0.142334
+ 0.142578
+ 0.142578
+ 0.142822
+ 0.143066
+ 0.143066
+ 0.143311
+ 0.143311
+ 0.143555
+ 0.143555
+ 0.143799
+ 0.143799
+ 0.144043
+ 0.144043
+ 0.144287
+ 0.144287
+ 0.144531
+ 0.144531
+ 0.144775
+ 0.145020
+ 0.145020
+ 0.145264
+ 0.145264
+ 0.145508
+ 0.145508
+ 0.145752
+ 0.145752
+ 0.145996
+ 0.145996
+ 0.146240
+ 0.146240
+ 0.146484
+ 0.146484
+ 0.146729
+ 0.146729
+ 0.146973
+ 0.146973
+ 0.147217
+ 0.147217
+ 0.147461
+ 0.147461
+ 0.147705
+ 0.147705
+ 0.147949
+ 0.147949
+ 0.148193
+ 0.148193
+ 0.148438
+ 0.148682
+ 0.148682
+ 0.148926
+ 0.148926
+ 0.149170
+ 0.149170
+ 0.149414
+ 0.149414
+ 0.149658
+ 0.149658
+ 0.149902
+ 0.149902
+ 0.150146
+ 0.150146
+ 0.150391
+ 0.150391
+ 0.150635
+ 0.150635
+ 0.150879
+ 0.150879
+ 0.151123
+ 0.151123
+ 0.151367
+ 0.151367
+ 0.151367
+ 0.151611
+ 0.151611
+ 0.151855
+ 0.151855
+ 0.152100
+ 0.152100
+ 0.152344
+ 0.152344
+ 0.152588
+ 0.152588
+ 0.152832
+ 0.152832
+ 0.153076
+ 0.153076
+ 0.153320
+ 0.153320
+ 0.153564
+ 0.153564
+ 0.153809
+ 0.153809
+ 0.154053
+ 0.154053
+ 0.154297
+ 0.154297
+ 0.154541
+ 0.154541
+ 0.154785
+ 0.154785
+ 0.154785
+ 0.155029
+ 0.155029
+ 0.155273
+ 0.155273
+ 0.155518
+ 0.155518
+ 0.155762
+ 0.155762
+ 0.156006
+ 0.156006
+ 0.156250
+ 0.156250
+ 0.156494
+ 0.156494
+ 0.156738
+ 0.156738
+ 0.156738
+ 0.156982
+ 0.156982
+ 0.157227
+ 0.157227
+ 0.157471
+ 0.157471
+ 0.157715
+ 0.157715
+ 0.157959
+ 0.157959
+ 0.158203
+ 0.158203
+ 0.158203
+ 0.158447
+ 0.158447
+ 0.158691
+ 0.158691
+ 0.158936
+ 0.158936
+ 0.159180
+ 0.159180
+ 0.159424
+ 0.159424
+ 0.159424
+ 0.159668
+ 0.159668
+ 0.159912
+ 0.159912
+ 0.160156
+ 0.160156
+ 0.160400
+ 0.160400
+ 0.160645
+ 0.160645
+ 0.160645
+ 0.160889
+ 0.160889
+ 0.161133
+ 0.161133
+ 0.161377
+ 0.161377
+ 0.161621
+ 0.161621
+ 0.161621
+ 0.161865
+ 0.161865
+ 0.162109
+ 0.162109
+ 0.162354
+ 0.162354
+ 0.162598
+ 0.162598
+ 0.162598
+ 0.162842
+ 0.162842
+ 0.163086
+ 0.163086
+ 0.163330
+ 0.163330
+ 0.163330
+ 0.163574
+ 0.163574
+ 0.163818
+ 0.163818
+ 0.164062
+ 0.164062
+ 0.164062
+ 0.164307
+ 0.164307
+ 0.164551
+ 0.164551
+ 0.164795
+ 0.164795
+ 0.164795
+ 0.165039
+ 0.165039
+ 0.165283
+ 0.165283
+ 0.165527
+ 0.165527
+ 0.165527
+ 0.165771
+ 0.165771
+ 0.166016
+ 0.166016
+ 0.166260
+ 0.166260
+ 0.166260
+ 0.166504
+ 0.166504
+ 0.166748
+ 0.166748
+ 0.166992
+ 0.166992
+ 0.166992
+ 0.167236
+ 0.167236
+ 0.167480
+ 0.167480
+ 0.167725
+ 0.167725
+ 0.167725
+ 0.167969
+ 0.167969
+ 0.168213
+ 0.168213
+ 0.168213
+ 0.168457
+ 0.168457
+ 0.168701
+ 0.168701
+ 0.168701
+ 0.168945
+ 0.168945
+ 0.169189
+ 0.169189
+ 0.169434
+ 0.169434
+ 0.169434
+ 0.169678
+ 0.169678
+ 0.169922
+ 0.169922
+ 0.169922
+ 0.170166
+ 0.170166
+ 0.170410
+ 0.170410
+ 0.170410
+ 0.170654
+ 0.170654
+ 0.170898
+ 0.170898
+ 0.170898
+ 0.171143
+ 0.171143
+ 0.171387
+ 0.171387
+ 0.171631
+ 0.171631
+ 0.171631
+ 0.171875
+ 0.171875
+ 0.172119
+ 0.172119
+ 0.172119
+ 0.172363
+ 0.172363
+ 0.172607
+ 0.172607
+ 0.172607
+ 0.172852
+ 0.172852
+ 0.173096
+ 0.173096
+ 0.173096
+ 0.173340
+ 0.173340
+ 0.173584
+ 0.173584
+ 0.173584
+ 0.173828
+ 0.173828
+ 0.173828
+ 0.174072
+ 0.174072
+ 0.174316
+ 0.174316
+ 0.174316
+ 0.174561
+ 0.174561
+ 0.174805
+ 0.174805
+ 0.174805
+ 0.175049
+ 0.175049
+ 0.175293
+ 0.175293
+ 0.175293
+ 0.175537
+ 0.175537
+ 0.175781
+ 0.175781
+ 0.175781
+ 0.176025
+ 0.176025
+ 0.176025
+ 0.176270
+ 0.176270
+ 0.176514
+ 0.176514
+ 0.176514
+ 0.176758
+ 0.176758
+ 0.177002
+ 0.177002
+ 0.177002
+ 0.177246
+ 0.177246
+ 0.177246
+ 0.177490
+ 0.177490
+ 0.177734
+ 0.177734
+ 0.177734
+ 0.177979
+ 0.177979
+ 0.177979
+ 0.178223
+ 0.178223
+ 0.178467
+ 0.178467
+ 0.178467
+ 0.178711
+ 0.178711
+ 0.178955
+ 0.178955
+ 0.178955
+ 0.179199
+ 0.179199
+ 0.179199
+ 0.179443
+ 0.179443
+ 0.179688
+ 0.179688
+ 0.179688
+ 0.179932
+ 0.179932
+ 0.179932
+ 0.180176
+ 0.180176
+ 0.180420
+ 0.180420
+ 0.180420
+ 0.180664
+ 0.180664
+ 0.180664
+ 0.180908
+ 0.180908
+ 0.180908
+ 0.181152
+ 0.181152
+ 0.181396
+ 0.181396
+ 0.181396
+ 0.181641
+ 0.181641
+ 0.181641
+ 0.181885
+ 0.181885
+ 0.182129
+ 0.182129
+ 0.182129
+ 0.182373
+ 0.182373
+ 0.182373
+ 0.182617
+ 0.182617
+ 0.182617
+ 0.182861
+ 0.182861
+ 0.183105
+ 0.183105
+ 0.183105
+ 0.183350
+ 0.183350
+ 0.183350
+ 0.183594
+ 0.183594
+ 0.183594
+ 0.183838
+ 0.183838
+ 0.184082
+ 0.184082
+ 0.184082
+ 0.184326
+ 0.184326
+ 0.184326
+ 0.184570
+ 0.184570
+ 0.184570
+ 0.184814
+ 0.184814
+ 0.184814
+ 0.185059
+ 0.185059
+ 0.185303
+ 0.185303
+ 0.185303
+ 0.185547
+ 0.185547
+ 0.185547
+ 0.185791
+ 0.185791
+ 0.185791
+ 0.186035
+ 0.186035
+ 0.186035
+ 0.186279
+ 0.186279
+ 0.186279
+ 0.186523
+ 0.186523
+ 0.186768
+ 0.186768
+ 0.186768
+ 0.187012
+ 0.187012
+ 0.187012
+ 0.187256
+ 0.187256
+ 0.187256
+ 0.187500
+ 0.187500
+ 0.187500
+ 0.187744
+ 0.187744
+ 0.187744
+ 0.187988
+ 0.187988
+ 0.187988
+ 0.188232
+ 0.188232
+ 0.188477
+ 0.188477
+ 0.188477
+ 0.188721
+ 0.188721
+ 0.188721
+ 0.188965
+ 0.188965
+ 0.188965
+ 0.189209
+ 0.189209
+ 0.189209
+ 0.189453
+ 0.189453
+ 0.189453
+ 0.189697
+ 0.189697
+ 0.189697
+ 0.189941
+ 0.189941
+ 0.189941
+ 0.190186
+ 0.190186
+ 0.190186
+ 0.190430
+ 0.190430
+ 0.190430
+ 0.190674
+ 0.190674
+ 0.190674
+ 0.190918
+ 0.190918
+ 0.191162
+ 0.191162
+ 0.191162
+ 0.191406
+ 0.191406
+ 0.191406
+ 0.191650
+ 0.191650
+ 0.191650
+ 0.191895
+ 0.191895
+ 0.191895
+ 0.192139
+ 0.192139
+ 0.192139
+ 0.192383
+ 0.192383
+ 0.192383
+ 0.192627
+ 0.192627
+ 0.192627
+ 0.192871
+ 0.192871
+ 0.192871
+ 0.193115
+ 0.193115
+ 0.193115
+ 0.193359
+ 0.193359
+ 0.193359
+ 0.193604
+ 0.193604
+ 0.193604
+ 0.193848
+ 0.193848
+ 0.193848
+ 0.194092
+ 0.194092
+ 0.194092
+ 0.194336
+ 0.194336
+ 0.194336
+ 0.194580
+ 0.194580
+ 0.194580
+ 0.194824
+ 0.194824
+ 0.194824
+ 0.195068
+ 0.195068
+ 0.195068
+ 0.195312
+ 0.195312
+ 0.195312
+ 0.195312
+ 0.195557
+ 0.195557
+ 0.195557
+ 0.195801
+ 0.195801
+ 0.195801
+ 0.196045
+ 0.196045
+ 0.196045
+ 0.196289
+ 0.196289
+ 0.196289
+ 0.196533
+ 0.196533
+ 0.196533
+ 0.196777
+ 0.196777
+ 0.196777
+ 0.197021
+ 0.197021
+ 0.197021
+ 0.197266
+ 0.197266
+ 0.197266
+ 0.197510
+ 0.197510
+ 0.197510
+ 0.197754
+ 0.197754
+ 0.197754
+ 0.197998
+ 0.197998
+ 0.197998
+ 0.197998
+ 0.198242
+ 0.198242
+ 0.198242
+ 0.198486
+ 0.198486
+ 0.198486
+ 0.198730
+ 0.198730
+ 0.198730
+ 0.198975
+ 0.198975
+ 0.198975
+ 0.199219
+ 0.199219
+ 0.199219
+ 0.199463
+ 0.199463
+ 0.199463
+ 0.199707
+ 0.199707
+ 0.199707
+ 0.199707
+ 0.199951
+ 0.199951
+ 0.199951
+ 0.200195
+ 0.200195
+ 0.200195
+ 0.200439
+ 0.200439
+ 0.200439
+ 0.200684
+ 0.200684
+ 0.200684
+ 0.200928
+ 0.200928
+ 0.200928
+ 0.201172
+ 0.201172
+ 0.201172
+ 0.201172
+ 0.201416
+ 0.201416
+ 0.201416
+ 0.201660
+ 0.201660
+ 0.201660
+ 0.201904
+ 0.201904
+ 0.201904
+ 0.202148
+ 0.202148
+ 0.202148
+ 0.202148
+ 0.202393
+ 0.202393
+ 0.202393
+ 0.202637
+ 0.202637
+ 0.202637
+ 0.202881
+ 0.202881
+ 0.202881
+ 0.203125
+ 0.203125
+ 0.203125
+ 0.203125
+ 0.203369
+ 0.203369
+ 0.203369
+ 0.203613
+ 0.203613
+ 0.203613
+ 0.203857
+ 0.203857
+ 0.203857
+ 0.204102
+ 0.204102
+ 0.204102
+ 0.204102
+ 0.204346
+ 0.204346
+ 0.204346
+ 0.204590
+ 0.204590
+ 0.204590
+ 0.204834
+ 0.204834
+ 0.204834
+ 0.205078
+ 0.205078
+ 0.205078
+ 0.205078
+ 0.205322
+ 0.205322
+ 0.205322
+ 0.205566
+ 0.205566
+ 0.205566
+ 0.205811
+ 0.205811
+ 0.205811
+ 0.205811
+ 0.206055
+ 0.206055
+ 0.206055
+ 0.206299
+ 0.206299
+ 0.206299
+ 0.206543
+ 0.206543
+ 0.206543
+ 0.206543
+ 0.206787
+ 0.206787
+ 0.206787
+ 0.207031
+ 0.207031
+ 0.207031
+ 0.207275
+ 0.207275
+ 0.207275
+ 0.207275
+ 0.207520
+ 0.207520
+ 0.207520
+ 0.207764
+ 0.207764
+ 0.207764
+ 0.207764
+ 0.208008
+ 0.208008
+ 0.208008
+ 0.208252
+ 0.208252
+ 0.208252
+ 0.208496
+ 0.208496
+ 0.208496
+ 0.208496
+ 0.208740
+ 0.208740
+ 0.208740
+ 0.208984
+ 0.208984
+ 0.208984
+ 0.209229
+ 0.209229
+ 0.209229
+ 0.209229
+ 0.209473
+ 0.209473
+ 0.209473
+ 0.209717
+ 0.209717
+ 0.209717
+ 0.209717
+ 0.209961
+ 0.209961
+ 0.209961
+ 0.210205
+ 0.210205
+ 0.210205
+ 0.210205
+ 0.210449
+ 0.210449
+ 0.210449
+ 0.210693
+ 0.210693
+ 0.210693
+ 0.210938
+ 0.210938
+ 0.210938
+ 0.210938
+ 0.211182
+ 0.211182
+ 0.211182
+ 0.211426
+ 0.211426
+ 0.211426
+ 0.211426
+ 0.211670
+ 0.211670
+ 0.211670
+ 0.211914
+ 0.211914
+ 0.211914
+ 0.211914
+ 0.212158
+ 0.212158
+ 0.212158
+ 0.212402
+ 0.212402
+ 0.212402
+ 0.212402
+ 0.212646
+ 0.212646
+ 0.212646
+ 0.212891
+ 0.212891
+ 0.212891
+ 0.212891
+ 0.213135
+ 0.213135
+ 0.213135
+ 0.213379
+ 0.213379
+ 0.213379
+ 0.213379
+ 0.213623
+ 0.213623
+ 0.213623
+ 0.213867
+ 0.213867
+ 0.213867
+ 0.213867
+ 0.214111
+ 0.214111
+ 0.214111
+ 0.214355
+ 0.214355
+ 0.214355
+ 0.214355
+ 0.214600
+ 0.214600
+ 0.214600
+ 0.214600
+ 0.214844
+ 0.214844
+ 0.214844
+ 0.215088
+ 0.215088
+ 0.215088
+ 0.215088
+ 0.215332
+ 0.215332
+ 0.215332
+ 0.215576
+ 0.215576
+ 0.215576
+ 0.215576
+ 0.215820
+ 0.215820
+ 0.215820
+ 0.216064
+ 0.216064
+ 0.216064
+ 0.216064
+ 0.216309
+ 0.216309
+ 0.216309
+ 0.216309
+ 0.216553
+ 0.216553
+ 0.216553
+ 0.216797
+ 0.216797
+ 0.216797
+ 0.216797
+ 0.217041
+ 0.217041
+ 0.217041
+ 0.217285
+ 0.217285
+ 0.217285
+ 0.217285
+ 0.217529
+ 0.217529
+ 0.217529
+ 0.217529
+ 0.217773
+ 0.217773
+ 0.217773
+ 0.218018
+ 0.218018
+ 0.218018
+ 0.218018
+ 0.218262
+ 0.218262
+ 0.218262
+ 0.218262
+ 0.218506
+ 0.218506
+ 0.218506
+ 0.218750
+ 0.218750
+ 0.218750
+ 0.218750
+ 0.218994
+ 0.218994
+ 0.218994
+ 0.218994
+ 0.219238
+ 0.219238
+ 0.219238
+ 0.219482
+ 0.219482
+ 0.219482
+ 0.219482
+ 0.219727
+ 0.219727
+ 0.219727
+ 0.219727
+ 0.219971
+ 0.219971
+ 0.219971
+ 0.220215
+ 0.220215
+ 0.220215
+ 0.220215
+ 0.220459
+ 0.220459
+ 0.220459
+ 0.220459
+ 0.220703
+ 0.220703
+ 0.220703
+ 0.220947
+ 0.220947
+ 0.220947
+ 0.220947
+ 0.221191
+ 0.221191
+ 0.221191
+ 0.221191
+ 0.221436
+ 0.221436
+ 0.221436
+ 0.221436
+ 0.221680
+ 0.221680
+ 0.221680
+ 0.221924
+ 0.221924
+ 0.221924
+ 0.221924
+ 0.222168
+ 0.222168
+ 0.222168
+ 0.222168
+ 0.222412
+ 0.222412
+ 0.222412
+ 0.222412
+ 0.222656
+ 0.222656
+ 0.222656
+ 0.222900
+ 0.222900
+ 0.222900
+ 0.222900
+ 0.223145
+ 0.223145
+ 0.223145
+ 0.223145
+ 0.223389
+ 0.223389
+ 0.223389
+ 0.223389
+ 0.223633
+ 0.223633
+ 0.223633
+ 0.223877
+ 0.223877
+ 0.223877
+ 0.223877
+ 0.224121
+ 0.224121
+ 0.224121
+ 0.224121
+ 0.224365
+ 0.224365
+ 0.224365
+ 0.224365
+ 0.224609
+ 0.224609
+ 0.224609
+ 0.224609
+ 0.224854
+ 0.224854
+ 0.224854
+ 0.224854
+ 0.225098
+ 0.225098
+ 0.225098
+ 0.225342
+ 0.225342
+ 0.225342
+ 0.225342
+ 0.225586
+ 0.225586
+ 0.225586
+ 0.225586
+ 0.225830
+ 0.225830
+ 0.225830
+ 0.225830
+ 0.226074
+ 0.226074
+ 0.226074
+ 0.226074
+ 0.226318
+ 0.226318
+ 0.226318
+ 0.226318
+ 0.226562
+ 0.226562
+ 0.226562
+ 0.226562
+ 0.226807
+ 0.226807
+ 0.226807
+ 0.227051
+ 0.227051
+ 0.227051
+ 0.227051
+ 0.227295
+ 0.227295
+ 0.227295
+ 0.227295
+ 0.227539
+ 0.227539
+ 0.227539
+ 0.227539
+ 0.227783
+ 0.227783
+ 0.227783
+ 0.227783
+ 0.228027
+ 0.228027
+ 0.228027
+ 0.228027
+ 0.228271
+ 0.228271
+ 0.228271
+ 0.228271
+ 0.228516
+ 0.228516
+ 0.228516
+ 0.228516
+ 0.228760
+ 0.228760
+ 0.228760
+ 0.228760
+ 0.229004
+ 0.229004
+ 0.229004
+ 0.229004
+ 0.229248
+ 0.229248
+ 0.229248
+ 0.229248
+ 0.229492
+ 0.229492
+ 0.229492
+ 0.229492
+ 0.229736
+ 0.229736
+ 0.229736
+ 0.229980
+ 0.229980
+ 0.229980
+ 0.229980
+ 0.230225
+ 0.230225
+ 0.230225
+ 0.230225
+ 0.230469
+ 0.230469
+ 0.230469
+ 0.230469
+ 0.230713
+ 0.230713
+ 0.230713
+ 0.230713
+ 0.230957
+ 0.230957
+ 0.230957
+ 0.230957
+ 0.231201
+ 0.231201
+ 0.231201
+ 0.231201
+ 0.231445
+ 0.231445
+ 0.231445
+ 0.231445
+ 0.231689
+ 0.231689
+ 0.231689
+ 0.231689
+ 0.231934
+ 0.231934
+ 0.231934
+ 0.231934
+ 0.232178
+ 0.232178
+ 0.232178
+ 0.232178
+ 0.232422
+ 0.232422
+ 0.232422
+ 0.232422
+ 0.232666
+ 0.232666
+ 0.232666
+ 0.232666
+ 0.232666
+ 0.232910
+ 0.232910
+ 0.232910
+ 0.232910
+ 0.233154
+ 0.233154
+ 0.233154
+ 0.233154
+ 0.233398
+ 0.233398
+ 0.233398
+ 0.233398
+ 0.233643
+ 0.233643
+ 0.233643
+ 0.233643
+ 0.233887
+ 0.233887
+ 0.233887
+ 0.233887
+ 0.234131
+ 0.234131
+ 0.234131
+ 0.234131
+ 0.234375
+ 0.234375
+ 0.234375
+ 0.234375
+ 0.234619
+ 0.234619
+ 0.234619
+ 0.234619
+ 0.234863
+ 0.234863
+ 0.234863
+ 0.234863
+ 0.235107
+ 0.235107
+ 0.235107
+ 0.235107
+ 0.235352
+ 0.235352
+ 0.235352
+ 0.235352
+ 0.235596
+ 0.235596
+ 0.235596
+ 0.235596
+ 0.235596
+ 0.235840
+ 0.235840
+ 0.235840
+ 0.235840
+ 0.236084
+ 0.236084
+ 0.236084
+ 0.236084
+ 0.236328
+ 0.236328
+ 0.236328
+ 0.236328
+ 0.236572
+ 0.236572
+ 0.236572
+ 0.236572
+ 0.236816
+ 0.236816
+ 0.236816
+ 0.236816
+ 0.237061
+ 0.237061
+ 0.237061
+ 0.237061
+ 0.237305
+ 0.237305
+ 0.237305
+ 0.237305
+ 0.237305
+ 0.237549
+ 0.237549
+ 0.237549
+ 0.237549
+ 0.237793
+ 0.237793
+ 0.237793
+ 0.237793
+ 0.238037
+ 0.238037
+ 0.238037
+ 0.238037
+ 0.238281
+ 0.238281
+ 0.238281
+ 0.238281
+ 0.238525
+ 0.238525
+ 0.238525
+ 0.238525
+ 0.238525
+ 0.238770
+ 0.238770
+ 0.238770
+ 0.238770
+ 0.239014
+ 0.239014
+ 0.239014
+ 0.239014
+ 0.239258
+ 0.239258
+ 0.239258
+ 0.239258
+ 0.239502
+ 0.239502
+ 0.239502
+ 0.239502
+ 0.239746
+ 0.239746
+ 0.239746
+ 0.239746
+ 0.239746
+ 0.239990
+ 0.239990
+ 0.239990
+ 0.239990
+ 0.240234
+ 0.240234
+ 0.240234
+ 0.240234
+ 0.240479
+ 0.240479
+ 0.240479
+ 0.240479
+ 0.240723
+ 0.240723
+ 0.240723
+ 0.240723
+ 0.240723
+ 0.240967
+ 0.240967
+ 0.240967
+ 0.240967
+ 0.241211
+ 0.241211
+ 0.241211
+ 0.241211
+ 0.241455
+ 0.241455
+ 0.241455
+ 0.241455
+ 0.241455
+ 0.241699
+ 0.241699
+ 0.241699
+ 0.241699
+ 0.241943
+ 0.241943
+ 0.241943
+ 0.241943
+ 0.242188
+ 0.242188
+ 0.242188
+ 0.242188
+ 0.242432
+ 0.242432
+ 0.242432
+ 0.242432
+ 0.242432
+ 0.242676
+ 0.242676
+ 0.242676
+ 0.242676
+ 0.242920
+ 0.242920
+ 0.242920
+ 0.242920
+ 0.243164
+ 0.243164
+ 0.243164
+ 0.243164
+ 0.243164
+ 0.243408
+ 0.243408
+ 0.243408
+ 0.243408
+ 0.243652
+ 0.243652
+ 0.243652
+ 0.243652
+ 0.243896
+ 0.243896
+ 0.243896
+ 0.243896
+ 0.243896
+ 0.244141
+ 0.244141
+ 0.244141
+ 0.244141
+ 0.244385
+ 0.244385
+ 0.244385
+ 0.244385
+ 0.244385
+ 0.244629
+ 0.244629
+ 0.244629
+ 0.244629
+ 0.244873
+ 0.244873
+ 0.244873
+ 0.244873
+ 0.245117
+ 0.245117
+ 0.245117
+ 0.245117
+ 0.245117
+ 0.245361
+ 0.245361
+ 0.245361
+ 0.245361
+ 0.245605
+ 0.245605
+ 0.245605
+ 0.245605
+ 0.245605
+ 0.245850
+ 0.245850
+ 0.245850
+ 0.245850
+ 0.246094
+ 0.246094
+ 0.246094
+ 0.246094
+ 0.246338
+ 0.246338
+ 0.246338
+ 0.246338
+ 0.246338
+ 0.246582
+ 0.246582
+ 0.246582
+ 0.246582
+ 0.246826
+ 0.246826
+ 0.246826
+ 0.246826
+ 0.246826
+ 0.247070
+ 0.247070
+ 0.247070
+ 0.247070
+ 0.247314
+ 0.247314
+ 0.247314
+ 0.247314
+ 0.247314
+ 0.247559
+ 0.247559
+ 0.247559
+ 0.247559
+ 0.247803
+ 0.247803
+ 0.247803
+ 0.247803
+ 0.248047
+ 0.248047
+ 0.248047
+ 0.248047
+ 0.248047
+ 0.248291
+ 0.248291
+ 0.248291
+ 0.248291
+ 0.248535
+ 0.248535
+ 0.248535
+ 0.248535
+ 0.248535
+ 0.248779
+ 0.248779
+ 0.248779
+ 0.248779
+ 0.249023
+ 0.249023
+ 0.249023
+ 0.249023
+ 0.249023
+ 0.249268
+ 0.249268
+ 0.249268
+ 0.249268
+ 0.249512
+ 0.249512
+ 0.249512
+ 0.249512
+ 0.249512
+ 0.249756
+ 0.249756
+ 0.249756
+ 0.249756
+ 0.250000
+ 0.250000
+ 0.250000
+ 0.250000
+ 0.250000
+ 0.250244
+ 0.250244
+ 0.250244
+ 0.250244
+ 0.250244
+ 0.250488
+ 0.250488
+ 0.250488
+ 0.250488
+ 0.250732
+ 0.250732
+ 0.250732
+ 0.250732
+ 0.250732
+ 0.250977
+ 0.250977
+ 0.250977
+ 0.250977
+ 0.251221
+ 0.251221
+ 0.251221
+ 0.251221
+ 0.251221
+ 0.251465
+ 0.251465
+ 0.251465
+ 0.251465
+ 0.251709
+ 0.251709
+ 0.251709
+ 0.251709
+ 0.251709
+ 0.251953
+ 0.251953
+ 0.251953
+ 0.251953
+ 0.251953
+ 0.252197
+ 0.252197
+ 0.252197
+ 0.252197
+ 0.252441
+ 0.252441
+ 0.252441
+ 0.252441
+ 0.252441
+ 0.252686
+ 0.252686
+ 0.252686
+ 0.252686
+ 0.252930
+ 0.252930
+ 0.252930
+ 0.252930
+ 0.252930
+ 0.253174
+ 0.253174
+ 0.253174
+ 0.253174
+ 0.253174
+ 0.253418
+ 0.253418
+ 0.253418
+ 0.253418
+ 0.253662
+ 0.253662
+ 0.253662
+ 0.253662
+ 0.253662
+ 0.253906
+ 0.253906
+ 0.253906
+ 0.253906
+ 0.253906
+ 0.254150
+ 0.254150
+ 0.254150
+ 0.254150
+ 0.254395
+ 0.254395
+ 0.254395
+ 0.254395
+ 0.254395
+ 0.254639
+ 0.254639
+ 0.254639
+ 0.254639
+ 0.254639
+ 0.254883
+ 0.254883
+ 0.254883
+ 0.254883
+ 0.255127
+ 0.255127
+ 0.255127
+ 0.255127
+ 0.255127
+ 0.255371
+ 0.255371
+ 0.255371
+ 0.255371
+ 0.255371
+ 0.255615
+ 0.255615
+ 0.255615
+ 0.255615
+ 0.255859
+ 0.255859
+ 0.255859
+ 0.255859
+ 0.255859
+ 0.256104
+ 0.256104
+ 0.256104
+ 0.256104
+ 0.256104
+ 0.256348
+ 0.256348
+ 0.256348
+ 0.256348
+ 0.256592
+ 0.256592
+ 0.256592
+ 0.256592
+ 0.256592
+ 0.256836
+ 0.256836
+ 0.256836
+ 0.256836
+ 0.256836
+ 0.257080
+ 0.257080
+ 0.257080
+ 0.257080
+ 0.257080
+ 0.257324
+ 0.257324
+ 0.257324
+ 0.257324
+ 0.257568
+ 0.257568
+ 0.257568
+ 0.257568
+ 0.257568
+ 0.257812
+ 0.257812
+ 0.257812
+ 0.257812
+ 0.257812
+ 0.258057
+ 0.258057
+ 0.258057
+ 0.258057
+ 0.258057
+ 0.258301
+ 0.258301
+ 0.258301
+ 0.258301
+ 0.258545
+ 0.258545
+ 0.258545
+ 0.258545
+ 0.258545
+ 0.258789
+ 0.258789
+ 0.258789
+ 0.258789
+ 0.258789
+ 0.259033
+ 0.259033
+ 0.259033
+ 0.259033
+ 0.259033
+ 0.259277
+ 0.259277
+ 0.259277
+ 0.259277
+ 0.259277
+ 0.259521
+ 0.259521
+ 0.259521
+ 0.259521
+ 0.259766
+ 0.259766
+ 0.259766
+ 0.259766
+ 0.259766
+ 0.260010
+ 0.260010
+ 0.260010
+ 0.260010
+ 0.260010
+ 0.260254
+ 0.260254
+ 0.260254
+ 0.260254
+ 0.260254
+ 0.260498
+ 0.260498
+ 0.260498
+ 0.260498
+ 0.260498
+ 0.260742
+ 0.260742
+ 0.260742
+ 0.260742
+ 0.260742
+ 0.260986
+ 0.260986
+ 0.260986
+ 0.260986
+ 0.261230
+ 0.261230
+ 0.261230
+ 0.261230
+ 0.261230
+ 0.261475
+ 0.261475
+ 0.261475
+ 0.261475
+ 0.261475
+ 0.261719
+ 0.261719
+ 0.261719
+ 0.261719
+ 0.261719
+ 0.261963
+ 0.261963
+ 0.261963
+ 0.261963
+ 0.261963
+ 0.262207
+ 0.262207
+ 0.262207
+ 0.262207
+ 0.262207
+ 0.262451
+ 0.262451
+ 0.262451
+ 0.262451
+ 0.262451
+ 0.262695
+ 0.262695
+ 0.262695
+ 0.262695
+ 0.262695
+ 0.262939
+ 0.262939
+ 0.262939
+ 0.262939
+ 0.262939
+ 0.263184
+ 0.263184
+ 0.263184
+ 0.263184
+ 0.263428
+ 0.263428
+ 0.263428
+ 0.263428
+ 0.263428
+ 0.263672
+ 0.263672
+ 0.263672
+ 0.263672
+ 0.263672
+ 0.263916
+ 0.263916
+ 0.263916
+ 0.263916
+ 0.263916
+ 0.264160
+ 0.264160
+ 0.264160
+ 0.264160
+ 0.264160
+ 0.264404
+ 0.264404
+ 0.264404
+ 0.264404
+ 0.264404
+ 0.264648
+ 0.264648
+ 0.264648
+ 0.264648
+ 0.264648
+ 0.264893
+ 0.264893
+ 0.264893
+ 0.264893
+ 0.264893
+ 0.265137
+ 0.265137
+ 0.265137
+ 0.265137
+ 0.265137
+ 0.265381
+ 0.265381
+ 0.265381
+ 0.265381
+ 0.265381
+ 0.265625
+ 0.265625
+ 0.265625
+ 0.265625
+ 0.265625
+ 0.265869
+ 0.265869
+ 0.265869
+ 0.265869
+ 0.265869
+ 0.266113
+ 0.266113
+ 0.266113
+ 0.266113
+ 0.266113
+ 0.266357
+ 0.266357
+ 0.266357
+ 0.266357
+ 0.266357
+ 0.266602
+ 0.266602
+ 0.266602
+ 0.266602
+ 0.266602
+ 0.266846
+ 0.266846
+ 0.266846
+ 0.266846
+ 0.266846
+ 0.267090
+ 0.267090
+ 0.267090
+ 0.267090
+ 0.267090
+ 0.267334
+ 0.267334
+ 0.267334
+ 0.267334
+ 0.267334
+ 0.267578
+ 0.267578
+ 0.267578
+ 0.267578
+ 0.267578
+ 0.267822
+ 0.267822
+ 0.267822
+ 0.267822
+ 0.267822
+ 0.268066
+ 0.268066
+ 0.268066
+ 0.268066
+ 0.268066
+ 0.268311
+ 0.268311
+ 0.268311
+ 0.268311
+ 0.268311
+ 0.268555
+ 0.268555
+ 0.268555
+ 0.268555
+ 0.268555
+ 0.268555
+ 0.268799
+ 0.268799
+ 0.268799
+ 0.268799
+ 0.268799
+ 0.269043
+ 0.269043
+ 0.269043
+ 0.269043
+ 0.269043
+ 0.269287
+ 0.269287
+ 0.269287
+ 0.269287
+ 0.269287
+ 0.269531
+ 0.269531
+ 0.269531
+ 0.269531
+ 0.269531
+ 0.269775
+ 0.269775
+ 0.269775
+ 0.269775
+ 0.269775
+ 0.270020
+ 0.270020
+ 0.270020
+ 0.270020
+ 0.270020
+ 0.270264
+ 0.270264
+ 0.270264
+ 0.270264
+ 0.270264
+ 0.270508
+ 0.270508
+ 0.270508
+ 0.270508
+ 0.270508
+ 0.270508
+ 0.270752
+ 0.270752
+ 0.270752
+ 0.270752
+ 0.270752
+ 0.270996
+ 0.270996
+ 0.270996
+ 0.270996
+ 0.270996
+ 0.271240
+ 0.271240
+ 0.271240
+ 0.271240
+ 0.271240
+ 0.271484
+ 0.271484
+ 0.271484
+ 0.271484
+ 0.271484
+ 0.271729
+ 0.271729
+ 0.271729
+ 0.271729
+ 0.271729
+ 0.271973
+ 0.271973
+ 0.271973
+ 0.271973
+ 0.271973
+ 0.271973
+ 0.272217
+ 0.272217
+ 0.272217
+ 0.272217
+ 0.272217
+ 0.272461
+ 0.272461
+ 0.272461
+ 0.272461
+ 0.272461
+ 0.272705
+ 0.272705
+ 0.272705
+ 0.272705
+ 0.272705
+ 0.272949
+ 0.272949
+ 0.272949
+ 0.272949
+ 0.272949
+ 0.273193
+ 0.273193
+ 0.273193
+ 0.273193
+ 0.273193
+ 0.273193
+ 0.273438
+ 0.273438
+ 0.273438
+ 0.273438
+ 0.273438
+ 0.273682
+ 0.273682
+ 0.273682
+ 0.273682
+ 0.273682
+ 0.273926
+ 0.273926
+ 0.273926
+ 0.273926
+ 0.273926
+ 0.274170
+ 0.274170
+ 0.274170
+ 0.274170
+ 0.274170
+ 0.274170
+ 0.274414
+ 0.274414
+ 0.274414
+ 0.274414
+ 0.274414
+ 0.274658
+ 0.274658
+ 0.274658
+ 0.274658
+ 0.274658
+ 0.274902
+ 0.274902
+ 0.274902
+ 0.274902
+ 0.274902
+ 0.275146
+ 0.275146
+ 0.275146
+ 0.275146
+ 0.275146
+ 0.275146
+ 0.275391
+ 0.275391
+ 0.275391
+ 0.275391
+ 0.275391
+ 0.275635
+ 0.275635
+ 0.275635
+ 0.275635
+ 0.275635
+ 0.275879
+ 0.275879
+ 0.275879
+ 0.275879
+ 0.275879
+ 0.275879
+ 0.276123
+ 0.276123
+ 0.276123
+ 0.276123
+ 0.276123
+ 0.276367
+ 0.276367
+ 0.276367
+ 0.276367
+ 0.276367
+ 0.276611
+ 0.276611
+ 0.276611
+ 0.276611
+ 0.276611
+ 0.276855
+ 0.276855
+ 0.276855
+ 0.276855
+ 0.276855
+ 0.276855
+ 0.277100
+ 0.277100
+ 0.277100
+ 0.277100
+ 0.277100
+ 0.277344
+ 0.277344
+ 0.277344
+ 0.277344
+ 0.277344
+ 0.277344
+ 0.277588
+ 0.277588
+ 0.277588
+ 0.277588
+ 0.277588
+ 0.277832
+ 0.277832
+ 0.277832
+ 0.277832
+ 0.277832
+ 0.278076
+ 0.278076
+ 0.278076
+ 0.278076
+ 0.278076
+ 0.278076
+ 0.278320
+ 0.278320
+ 0.278320
+ 0.278320
+ 0.278320
+ 0.278564
+ 0.278564
+ 0.278564
+ 0.278564
+ 0.278564
+ 0.278809
+ 0.278809
+ 0.278809
+ 0.278809
+ 0.278809
+ 0.278809
+ 0.279053
+ 0.279053
+ 0.279053
+ 0.279053
+ 0.279053
+ 0.279297
+ 0.279297
+ 0.279297
+ 0.279297
+ 0.279297
+ 0.279297
+ 0.279541
+ 0.279541
+ 0.279541
+ 0.279541
+ 0.279541
+ 0.279785
+ 0.279785
+ 0.279785
+ 0.279785
+ 0.279785
+ 0.280029
+ 0.280029
+ 0.280029
+ 0.280029
+ 0.280029
+ 0.280029
+ 0.280273
+ 0.280273
+ 0.280273
+ 0.280273
+ 0.280273
+ 0.280518
+ 0.280518
+ 0.280518
+ 0.280518
+ 0.280518
+ 0.280518
+ 0.280762
+ 0.280762
+ 0.280762
+ 0.280762
+ 0.280762
+ 0.281006
+ 0.281006
+ 0.281006
+ 0.281006
+ 0.281006
+ 0.281006
+ 0.281250
+ 0.281250
+ 0.281250
+ 0.281250
+ 0.281250
+ 0.281494
+ 0.281494
+ 0.281494
+ 0.281494
+ 0.281494
+ 0.281494
+ 0.281738
+ 0.281738
+ 0.281738
+ 0.281738
+ 0.281738
+ 0.281982
+ 0.281982
+ 0.281982
+ 0.281982
+ 0.281982
+ 0.281982
+ 0.282227
+ 0.282227
+ 0.282227
+ 0.282227
+ 0.282227
+ 0.282471
+ 0.282471
+ 0.282471
+ 0.282471
+ 0.282471
+ 0.282471
+ 0.282715
+ 0.282715
+ 0.282715
+ 0.282715
+ 0.282715
+ 0.282959
+ 0.282959
+ 0.282959
+ 0.282959
+ 0.282959
+ 0.282959
+ 0.283203
+ 0.283203
+ 0.283203
+ 0.283203
+ 0.283203
+ 0.283447
+ 0.283447
+ 0.283447
+ 0.283447
+ 0.283447
+ 0.283447
+ 0.283691
+ 0.283691
+ 0.283691
+ 0.283691
+ 0.283691
+ 0.283936
+ 0.283936
+ 0.283936
+ 0.283936
+ 0.283936
+ 0.283936
+ 0.284180
+ 0.284180
+ 0.284180
+ 0.284180
+ 0.284180
+ 0.284424
+ 0.284424
+ 0.284424
+ 0.284424
+ 0.284424
+ 0.284424
+ 0.284668
+ 0.284668
+ 0.284668
+ 0.284668
+ 0.284668
+ 0.284668
+ 0.284912
+ 0.284912
+ 0.284912
+ 0.284912
+ 0.284912
+ 0.285156
+ 0.285156
+ 0.285156
+ 0.285156
+ 0.285156
+ 0.285156
+ 0.285400
+ 0.285400
+ 0.285400
+ 0.285400
+ 0.285400
+ 0.285645
+ 0.285645
+ 0.285645
+ 0.285645
+ 0.285645
+ 0.285645
+ 0.285889
+ 0.285889
+ 0.285889
+ 0.285889
+ 0.285889
+ 0.285889
+ 0.286133
+ 0.286133
+ 0.286133
+ 0.286133
+ 0.286133
+ 0.286377
+ 0.286377
+ 0.286377
+ 0.286377
+ 0.286377
+ 0.286377
+ 0.286621
+ 0.286621
+ 0.286621
+ 0.286621
+ 0.286621
+ 0.286621
+ 0.286865
+ 0.286865
+ 0.286865
+ 0.286865
+ 0.286865
+ 0.287109
+ 0.287109
+ 0.287109
+ 0.287109
+ 0.287109
+ 0.287109
+ 0.287354
+ 0.287354
+ 0.287354
+ 0.287354
+ 0.287354
+ 0.287598
+ 0.287598
+ 0.287598
+ 0.287598
+ 0.287598
+ 0.287598
+ 0.287842
+ 0.287842
+ 0.287842
+ 0.287842
+ 0.287842
+ 0.287842
+ 0.288086
+ 0.288086
+ 0.288086
+ 0.288086
+ 0.288086
+ 0.288086
+ 0.288330
+ 0.288330
+ 0.288330
+ 0.288330
+ 0.288330
+ 0.288574
+ 0.288574
+ 0.288574
+ 0.288574
+ 0.288574
+ 0.288574
+ 0.288818
+ 0.288818
+ 0.288818
+ 0.288818
+ 0.288818
+ 0.288818
+ 0.289062
+ 0.289062
+ 0.289062
+ 0.289062
+ 0.289062
+ 0.289307
+ 0.289307
+ 0.289307
+ 0.289307
+ 0.289307
+ 0.289307
+ 0.289551
+ 0.289551
+ 0.289551
+ 0.289551
+ 0.289551
+ 0.289551
+ 0.289795
+ 0.289795
+ 0.289795
+ 0.289795
+ 0.289795
+ 0.289795
+ 0.290039
+ 0.290039
+ 0.290039
+ 0.290039
+ 0.290039
+ 0.290283
+ 0.290283
+ 0.290283
+ 0.290283
+ 0.290283
+ 0.290283
+ 0.290527
+ 0.290527
+ 0.290527
+ 0.290527
+ 0.290527
+ 0.290527
+ 0.290771
+ 0.290771
+ 0.290771
+ 0.290771
+ 0.290771
+ 0.290771
+ 0.291016
+ 0.291016
+ 0.291016
+ 0.291016
+ 0.291016
+ 0.291260
+ 0.291260
+ 0.291260
+ 0.291260
+ 0.291260
+ 0.291260
+ 0.291504
+ 0.291504
+ 0.291504
+ 0.291504
+ 0.291504
+ 0.291504
+ 0.291748
+ 0.291748
+ 0.291748
+ 0.291748
+ 0.291748
+ 0.291748
+ 0.291992
+ 0.291992
+ 0.291992
+ 0.291992
+ 0.291992
+ 0.291992
+ 0.292236
+ 0.292236
+ 0.292236
+ 0.292236
+ 0.292236
+ 0.292480
+ 0.292480
+ 0.292480
+ 0.292480
+ 0.292480
+ 0.292480
+ 0.292725
+ 0.292725
+ 0.292725
+ 0.292725
+ 0.292725
+ 0.292725
+ 0.292969
+ 0.292969
+ 0.292969
+ 0.292969
+ 0.292969
+ 0.292969
+ 0.293213
+ 0.293213
+ 0.293213
+ 0.293213
+ 0.293213
+ 0.293213
+ 0.293457
+ 0.293457
+ 0.293457
+ 0.293457
+ 0.293457
+ 0.293457
+ 0.293701
+ 0.293701
+ 0.293701
+ 0.293701
+ 0.293701
+ 0.293945
+ 0.293945
+ 0.293945
+ 0.293945
+ 0.293945
+ 0.293945
+ 0.294189
+ 0.294189
+ 0.294189
+ 0.294189
+ 0.294189
+ 0.294189
+ 0.294434
+ 0.294434
+ 0.294434
+ 0.294434
+ 0.294434
+ 0.294434
+ 0.294678
+ 0.294678
+ 0.294678
+ 0.294678
+ 0.294678
+ 0.294678
+ 0.294922
+ 0.294922
+ 0.294922
+ 0.294922
+ 0.294922
+ 0.294922
+ 0.295166
+ 0.295166
+ 0.295166
+ 0.295166
+ 0.295166
+ 0.295166
+ 0.295410
+ 0.295410
+ 0.295410
+ 0.295410
+ 0.295410
+ 0.295410
+ 0.295654
+ 0.295654
+ 0.295654
+ 0.295654
+ 0.295654
+ 0.295654
+ 0.295898
+ 0.295898
+ 0.295898
+ 0.295898
+ 0.295898
+ 0.295898
+ 0.296143
+ 0.296143
+ 0.296143
+ 0.296143
+ 0.296143
+ 0.296143
+ 0.296387
+ 0.296387
+ 0.296387
+ 0.296387
+ 0.296387
+ 0.296631
+ 0.296631
+ 0.296631
+ 0.296631
+ 0.296631
+ 0.296631
+ 0.296875
+ 0.296875
+ 0.296875
+ 0.296875
+ 0.296875
+ 0.296875
+ 0.297119
+ 0.297119
+ 0.297119
+ 0.297119
+ 0.297119
+ 0.297119
+ 0.297363
+ 0.297363
+ 0.297363
+ 0.297363
+ 0.297363
+ 0.297363
+ 0.297607
+ 0.297607
+ 0.297607
+ 0.297607
+ 0.297607
+ 0.297607
+ 0.297852
+ 0.297852
+ 0.297852
+ 0.297852
+ 0.297852
+ 0.297852
+ 0.298096
+ 0.298096
+ 0.298096
+ 0.298096
+ 0.298096
+ 0.298096
+ 0.298340
+ 0.298340
+ 0.298340
+ 0.298340
+ 0.298340
+ 0.298340
+ 0.298584
+ 0.298584
+ 0.298584
+ 0.298584
+ 0.298584
+ 0.298584
+ 0.298828
+ 0.298828
+ 0.298828
+ 0.298828
+ 0.298828
+ 0.298828
+ 0.299072
+ 0.299072
+ 0.299072
+ 0.299072
+ 0.299072
+ 0.299072
+ 0.299316
+ 0.299316
+ 0.299316
+ 0.299316
+ 0.299316
+ 0.299316
+ 0.299316
+ 0.299561
+ 0.299561
+ 0.299561
+ 0.299561
+ 0.299561
+ 0.299561
+ 0.299805
+ 0.299805
+ 0.299805
+ 0.299805
+ 0.299805
+ 0.299805
+ 0.300049
+ 0.300049
+ 0.300049
+ 0.300049
+ 0.300049
+ 0.300049
+ 0.300293
+ 0.300293
+ 0.300293
+ 0.300293
+ 0.300293
+ 0.300293
+ 0.300537
+ 0.300537
+ 0.300537
+ 0.300537
+ 0.300537
+ 0.300537
+ 0.300781
+ 0.300781
+ 0.300781
+ 0.300781
+ 0.300781
+ 0.300781
+ 0.301025
+ 0.301025
+ 0.301025
+ 0.301025
+ 0.301025
+ 0.301025
+ 0.301270
+ 0.301270
+ 0.301270
+ 0.301270
+ 0.301270
+ 0.301270
+ 0.301514
+ 0.301514
+ 0.301514
+ 0.301514
+ 0.301514
+ 0.301514
+ 0.301758
+ 0.301758
+ 0.301758
+ 0.301758
+ 0.301758
+ 0.301758
+ 0.302002
+ 0.302002
+ 0.302002
+ 0.302002
+ 0.302002
+ 0.302002
+ 0.302002
+ 0.302246
+ 0.302246
+ 0.302246
+ 0.302246
+ 0.302246
+ 0.302246
+ 0.302490
+ 0.302490
+ 0.302490
+ 0.302490
+ 0.302490
+ 0.302490
+ 0.302734
+ 0.302734
+ 0.302734
+ 0.302734
+ 0.302734
+ 0.302734
+ 0.302979
+ 0.302979
+ 0.302979
+ 0.302979
+ 0.302979
+ 0.302979
+ 0.303223
+ 0.303223
+ 0.303223
+ 0.303223
+ 0.303223
+ 0.303223
+ 0.303467
+ 0.303467
+ 0.303467
+ 0.303467
+ 0.303467
+ 0.303467
+ 0.303467
+ 0.303711
+ 0.303711
+ 0.303711
+ 0.303711
+ 0.303711
+ 0.303711
+ 0.303955
+ 0.303955
+ 0.303955
+ 0.303955
+ 0.303955
+ 0.303955
+ 0.304199
+ 0.304199
+ 0.304199
+ 0.304199
+ 0.304199
+ 0.304199
+ 0.304443
+ 0.304443
+ 0.304443
+ 0.304443
+ 0.304443
+ 0.304443
+ 0.304688
+ 0.304688
+ 0.304688
+ 0.304688
+ 0.304688
+ 0.304688
+ 0.304688
+ 0.304932
+ 0.304932
+ 0.304932
+ 0.304932
+ 0.304932
+ 0.304932
+ 0.305176
+ 0.305176
+ 0.305176
+ 0.305176
+ 0.305176
+ 0.305176
+ 0.305420
+ 0.305420
+ 0.305420
+ 0.305420
+ 0.305420
+ 0.305420
+ 0.305664
+ 0.305664
+ 0.305664
+ 0.305664
+ 0.305664
+ 0.305664
+ 0.305908
+ 0.305908
+ 0.305908
+ 0.305908
+ 0.305908
+ 0.305908
+ 0.305908
+ 0.306152
+ 0.306152
+ 0.306152
+ 0.306152
+ 0.306152
+ 0.306152
+ 0.306396
+ 0.306396
+ 0.306396
+ 0.306396
+ 0.306396
+ 0.306396
+ 0.306641
+ 0.306641
+ 0.306641
+ 0.306641
+ 0.306641
+ 0.306641
+ 0.306641
+ 0.306885
+ 0.306885
+ 0.306885
+ 0.306885
+ 0.306885
+ 0.306885
+ 0.307129
+ 0.307129
+ 0.307129
+ 0.307129
+ 0.307129
+ 0.307129
+ 0.307373
+ 0.307373
+ 0.307373
+ 0.307373
+ 0.307373
+ 0.307373
+ 0.307617
+ 0.307617
+ 0.307617
+ 0.307617
+ 0.307617
+ 0.307617
+ 0.307617
+ 0.307861
+ 0.307861
+ 0.307861
+ 0.307861
+ 0.307861
+ 0.307861
+ 0.308105
+ 0.308105
+ 0.308105
+ 0.308105
+ 0.308105
+ 0.308105
+ 0.308350
+ 0.308350
+ 0.308350
+ 0.308350
+ 0.308350
+ 0.308350
+ 0.308350
+ 0.308594
+ 0.308594
+ 0.308594
+ 0.308594
+ 0.308594
+ 0.308594
+ 0.308838
+ 0.308838
+ 0.308838
+ 0.308838
+ 0.308838
+ 0.308838
+ 0.309082
+ 0.309082
+ 0.309082
+ 0.309082
+ 0.309082
+ 0.309082
+ 0.309082
+ 0.309326
+ 0.309326
+ 0.309326
+ 0.309326
+ 0.309326
+ 0.309326
+ 0.309570
+ 0.309570
+ 0.309570
+ 0.309570
+ 0.309570
+ 0.309570
+ 0.309570
+ 0.309814
+ 0.309814
+ 0.309814
+ 0.309814
+ 0.309814
+ 0.309814
+ 0.310059
+ 0.310059
+ 0.310059
+ 0.310059
+ 0.310059
+ 0.310059
+ 0.310303
+ 0.310303
+ 0.310303
+ 0.310303
+ 0.310303
+ 0.310303
+ 0.310303
+ 0.310547
+ 0.310547
+ 0.310547
+ 0.310547
+ 0.310547
+ 0.310547
+ 0.310791
+ 0.310791
+ 0.310791
+ 0.310791
+ 0.310791
+ 0.310791
+ 0.310791
+ 0.311035
+ 0.311035
+ 0.311035
+ 0.311035
+ 0.311035
+ 0.311035
+ 0.311279
+ 0.311279
+ 0.311279
+ 0.311279
+ 0.311279
+ 0.311279
+ 0.311279
+ 0.311523
+ 0.311523
+ 0.311523
+ 0.311523
+ 0.311523
+ 0.311523
+ 0.311768
+ 0.311768
+ 0.311768
+ 0.311768
+ 0.311768
+ 0.311768
+ 0.312012
+ 0.312012
+ 0.312012
+ 0.312012
+ 0.312012
+ 0.312012
+ 0.312012
+ 0.312256
+ 0.312256
+ 0.312256
+ 0.312256
+ 0.312256
+ 0.312256
+ 0.312500
+ 0.312500
+ 0.312500
+ 0.312500
+ 0.312500
+ 0.312500
+ 0.312500
+ 0.312744
+ 0.312744
+ 0.312744
+ 0.312744
+ 0.312744
+ 0.312744
+ 0.312988
+ 0.312988
+ 0.312988
+ 0.312988
+ 0.312988
+ 0.312988
+ 0.312988
+ 0.313232
+ 0.313232
+ 0.313232
+ 0.313232
+ 0.313232
+ 0.313232
+ 0.313477
+ 0.313477
+ 0.313477
+ 0.313477
+ 0.313477
+ 0.313477
+ 0.313477
+ 0.313721
+ 0.313721
+ 0.313721
+ 0.313721
+ 0.313721
+ 0.313721
+ 0.313965
+ 0.313965
+ 0.313965
+ 0.313965
+ 0.313965
+ 0.313965
+ 0.313965
+ 0.314209
+ 0.314209
+ 0.314209
+ 0.314209
+ 0.314209
+ 0.314209
+ 0.314453
+ 0.314453
+ 0.314453
+ 0.314453
+ 0.314453
+ 0.314453
+ 0.314453
+ 0.314697
+ 0.314697
+ 0.314697
+ 0.314697
+ 0.314697
+ 0.314697
+ 0.314941
+ 0.314941
+ 0.314941
+ 0.314941
+ 0.314941
+ 0.314941
+ 0.314941
+ 0.315186
+ 0.315186
+ 0.315186
+ 0.315186
+ 0.315186
+ 0.315186
+ 0.315186
+ 0.315430
+ 0.315430
+ 0.315430
+ 0.315430
+ 0.315430
+ 0.315430
+ 0.315674
+ 0.315674
+ 0.315674
+ 0.315674
+ 0.315674
+ 0.315674
+ 0.315674
+ 0.315918
+ 0.315918
+ 0.315918
+ 0.315918
+ 0.315918
+ 0.315918
+ 0.316162
+ 0.316162
+ 0.316162
+ 0.316162
+ 0.316162
+ 0.316162
+ 0.316162
+ 0.316406
+ 0.316406
+ 0.316406
+ 0.316406
+ 0.316406
+ 0.316406
+ 0.316406
+ 0.316650
+ 0.316650
+ 0.316650
+ 0.316650
+ 0.316650
+ 0.316650
+ 0.316895
+ 0.316895
+ 0.316895
+ 0.316895
+ 0.316895
+ 0.316895
+ 0.316895
+ 0.317139
+ 0.317139
+ 0.317139
+ 0.317139
+ 0.317139
+ 0.317139
+ 0.317383
+ 0.317383
+ 0.317383
+ 0.317383
+ 0.317383
+ 0.317383
+ 0.317383
+ 0.317627
+ 0.317627
+ 0.317627
+ 0.317627
+ 0.317627
+ 0.317627
+ 0.317627
+ 0.317871
+ 0.317871
+ 0.317871
+ 0.317871
+ 0.317871
+ 0.317871
+ 0.318115
+ 0.318115
+ 0.318115
+ 0.318115
+ 0.318115
+ 0.318115
+ 0.318115
+ 0.318359
+ 0.318359
+ 0.318359
+ 0.318359
+ 0.318359
+ 0.318359
+ 0.318359
+ 0.318604
+ 0.318604
+ 0.318604
+ 0.318604
+ 0.318604
+ 0.318604
+ 0.318848
+ 0.318848
+ 0.318848
+ 0.318848
+ 0.318848
+ 0.318848
+ 0.318848
+ 0.319092
+ 0.319092
+ 0.319092
+ 0.319092
+ 0.319092
+ 0.319092
+ 0.319092
+ 0.319336
+ 0.319336
+ 0.319336
+ 0.319336
+ 0.319336
+ 0.319336
+ 0.319580
+ 0.319580
+ 0.319580
+ 0.319580
+ 0.319580
+ 0.319580
+ 0.319580
+ 0.319824
+ 0.319824
+ 0.319824
+ 0.319824
+ 0.319824
+ 0.319824
+ 0.319824
+ 0.320068
+ 0.320068
+ 0.320068
+ 0.320068
+ 0.320068
+ 0.320068
+ 0.320068
+ 0.320312
+ 0.320312
+ 0.320312
+ 0.320312
+ 0.320312
+ 0.320312
+ 0.320557
+ 0.320557
+ 0.320557
+ 0.320557
+ 0.320557
+ 0.320557
+ 0.320557
+ 0.320801
+ 0.320801
+ 0.320801
+ 0.320801
+ 0.320801
+ 0.320801
+ 0.320801
+ 0.321045
+ 0.321045
+ 0.321045
+ 0.321045
+ 0.321045
+ 0.321045
+ 0.321045
+ 0.321289
+ 0.321289
+ 0.321289
+ 0.321289
+ 0.321289
+ 0.321289
+ 0.321533
+ 0.321533
+ 0.321533
+ 0.321533
+ 0.321533
+ 0.321533
+ 0.321533
+ 0.321777
+ 0.321777
+ 0.321777
+ 0.321777
+ 0.321777
+ 0.321777
+ 0.321777
+ 0.322021
+ 0.322021
+ 0.322021
+ 0.322021
+ 0.322021
+ 0.322021
+ 0.322021
+ 0.322266
+ 0.322266
+ 0.322266
+ 0.322266
+ 0.322266
+ 0.322266
+ 0.322266
+ 0.322510
+ 0.322510
+ 0.322510
+ 0.322510
+ 0.322510
+ 0.322510
+ 0.322754
+ 0.322754
+ 0.322754
+ 0.322754
+ 0.322754
+ 0.322754
+ 0.322754
+ 0.322998
+ 0.322998
+ 0.322998
+ 0.322998
+ 0.322998
+ 0.322998
+ 0.322998
+ 0.323242
+ 0.323242
+ 0.323242
+ 0.323242
+ 0.323242
+ 0.323242
+ 0.323242
+ 0.323486
+ 0.323486
+ 0.323486
+ 0.323486
+ 0.323486
+ 0.323486
+ 0.323486
+ 0.323730
+ 0.323730
+ 0.323730
+ 0.323730
+ 0.323730
+ 0.323730
+ 0.323730
+ 0.323975
+ 0.323975
+ 0.323975
+ 0.323975
+ 0.323975
+ 0.323975
+ 0.324219
+ 0.324219
+ 0.324219
+ 0.324219
+ 0.324219
+ 0.324219
+ 0.324219
+ 0.324463
+ 0.324463
+ 0.324463
+ 0.324463
+ 0.324463
+ 0.324463
+ 0.324463
+ 0.324707
+ 0.324707
+ 0.324707
+ 0.324707
+ 0.324707
+ 0.324707
+ 0.324707
+ 0.324951
+ 0.324951
+ 0.324951
+ 0.324951
+ 0.324951
+ 0.324951
+ 0.324951
+ 0.325195
+ 0.325195
+ 0.325195
+ 0.325195
+ 0.325195
+ 0.325195
+ 0.325195
+ 0.325439
+ 0.325439
+ 0.325439
+ 0.325439
+ 0.325439
+ 0.325439
+ 0.325439
+ 0.325684
+ 0.325684
+ 0.325684
+ 0.325684
+ 0.325684
+ 0.325684
+ 0.325684
+ 0.325928
+ 0.325928
+ 0.325928
+ 0.325928
+ 0.325928
+ 0.325928
+ 0.325928
+ 0.326172
+ 0.326172
+ 0.326172
+ 0.326172
+ 0.326172
+ 0.326172
+ 0.326172
+ 0.326416
+ 0.326416
+ 0.326416
+ 0.326416
+ 0.326416
+ 0.326416
+ 0.326416
+ 0.326660
+ 0.326660
+ 0.326660
+ 0.326660
+ 0.326660
+ 0.326660
+ 0.326904
+ 0.326904
+ 0.326904
+ 0.326904
+ 0.326904
+ 0.326904
+ 0.326904
+ 0.327148
+ 0.327148
+ 0.327148
+ 0.327148
+ 0.327148
+ 0.327148
+ 0.327148
+ 0.327393
+ 0.327393
+ 0.327393
+ 0.327393
+ 0.327393
+ 0.327393
+ 0.327393
+ 0.327637
+ 0.327637
+ 0.327637
+ 0.327637
+ 0.327637
+ 0.327637
+ 0.327637
+ 0.327881
+ 0.327881
+ 0.327881
+ 0.327881
+ 0.327881
+ 0.327881
+ 0.327881
+ 0.328125
+ 0.328125
+ 0.328125
+ 0.328125
+ 0.328125
+ 0.328125
+ 0.328125
+ 0.328369
+ 0.328369
+ 0.328369
+ 0.328369
+ 0.328369
+ 0.328369
+ 0.328369
+ 0.328613
+ 0.328613
+ 0.328613
+ 0.328613
+ 0.328613
+ 0.328613
+ 0.328613
+ 0.328857
+ 0.328857
+ 0.328857
+ 0.328857
+ 0.328857
+ 0.328857
+ 0.328857
+ 0.329102
+ 0.329102
+ 0.329102
+ 0.329102
+ 0.329102
+ 0.329102
+ 0.329102
+ 0.329346
+ 0.329346
+ 0.329346
+ 0.329346
+ 0.329346
+ 0.329346
+ 0.329346
+ 0.329590
+ 0.329590
+ 0.329590
+ 0.329590
+ 0.329590
+ 0.329590
+ 0.329590
+ 0.329590
+ 0.329834
+ 0.329834
+ 0.329834
+ 0.329834
+ 0.329834
+ 0.329834
+ 0.329834
+ 0.330078
+ 0.330078
+ 0.330078
+ 0.330078
+ 0.330078
+ 0.330078
+ 0.330078
+ 0.330322
+ 0.330322
+ 0.330322
+ 0.330322
+ 0.330322
+ 0.330322
+ 0.330322
+ 0.330566
+ 0.330566
+ 0.330566
+ 0.330566
+ 0.330566
+ 0.330566
+ 0.330566
+ 0.330811
+ 0.330811
+ 0.330811
+ 0.330811
+ 0.330811
+ 0.330811
+ 0.330811
+ 0.331055
+ 0.331055
+ 0.331055
+ 0.331055
+ 0.331055
+ 0.331055
+ 0.331055
+ 0.331299
+ 0.331299
+ 0.331299
+ 0.331299
+ 0.331299
+ 0.331299
+ 0.331299
+ 0.331543
+ 0.331543
+ 0.331543
+ 0.331543
+ 0.331543
+ 0.331543
+ 0.331543
+ 0.331787
+ 0.331787
+ 0.331787
+ 0.331787
+ 0.331787
+ 0.331787
+ 0.331787
+ 0.332031
+ 0.332031
+ 0.332031
+ 0.332031
+ 0.332031
+ 0.332031
+ 0.332031
+ 0.332031
+ 0.332275
+ 0.332275
+ 0.332275
+ 0.332275
+ 0.332275
+ 0.332275
+ 0.332275
+ 0.332520
+ 0.332520
+ 0.332520
+ 0.332520
+ 0.332520
+ 0.332520
+ 0.332520
+ 0.332764
+ 0.332764
+ 0.332764
+ 0.332764
+ 0.332764
+ 0.332764
+ 0.332764
+ 0.333008
+ 0.333008
+ 0.333008
+ 0.333008
+ 0.333008
+ 0.333008
+ 0.333008
+ 0.333252
+ 0.333252
+ 0.333252
+ 0.333252
+ 0.333252
+ 0.333252
+ 0.333252
+ 0.333496
+ 0.333496
+ 0.333496
+ 0.333496
+ 0.333496
+ 0.333496
+ 0.333496
+ 0.333496
+ 0.333740
+ 0.333740
+ 0.333740
+ 0.333740
+ 0.333740
+ 0.333740
+ 0.333740
+ 0.333984
+ 0.333984
+ 0.333984
+ 0.333984
+ 0.333984
+ 0.333984
+ 0.333984
+ 0.334229
+ 0.334229
+ 0.334229
+ 0.334229
+ 0.334229
+ 0.334229
+ 0.334229
+ 0.334473
+ 0.334473
+ 0.334473
+ 0.334473
+ 0.334473
+ 0.334473
+ 0.334473
+ 0.334717
+ 0.334717
+ 0.334717
+ 0.334717
+ 0.334717
+ 0.334717
+ 0.334717
+ 0.334717
+ 0.334961
+ 0.334961
+ 0.334961
+ 0.334961
+ 0.334961
+ 0.334961
+ 0.334961
+ 0.335205
+ 0.335205
+ 0.335205
+ 0.335205
+ 0.335205
+ 0.335205
+ 0.335205
+ 0.335449
+ 0.335449
+ 0.335449
+ 0.335449
+ 0.335449
+ 0.335449
+ 0.335449
+ 0.335693
+ 0.335693
+ 0.335693
+ 0.335693
+ 0.335693
+ 0.335693
+ 0.335693
+ 0.335693
+ 0.335938
+ 0.335938
+ 0.335938
+ 0.335938
+ 0.335938
+ 0.335938
+ 0.335938
+ 0.336182
+ 0.336182
+ 0.336182
+ 0.336182
+ 0.336182
+ 0.336182
+ 0.336182
+ 0.336426
+ 0.336426
+ 0.336426
+ 0.336426
+ 0.336426
+ 0.336426
+ 0.336426
+ 0.336670
+ 0.336670
+ 0.336670
+ 0.336670
+ 0.336670
+ 0.336670
+ 0.336670
+ 0.336670
+ 0.336914
+ 0.336914
+ 0.336914
+ 0.336914
+ 0.336914
+ 0.336914
+ 0.336914
+ 0.337158
+ 0.337158
+ 0.337158
+ 0.337158
+ 0.337158
+ 0.337158
+ 0.337158
+ 0.337402
+ 0.337402
+ 0.337402
+ 0.337402
+ 0.337402
+ 0.337402
+ 0.337402
+ 0.337402
+ 0.337646
+ 0.337646
+ 0.337646
+ 0.337646
+ 0.337646
+ 0.337646
+ 0.337646
+ 0.337891
+ 0.337891
+ 0.337891
+ 0.337891
+ 0.337891
+ 0.337891
+ 0.337891
+ 0.338135
+ 0.338135
+ 0.338135
+ 0.338135
+ 0.338135
+ 0.338135
+ 0.338135
+ 0.338135
+ 0.338379
+ 0.338379
+ 0.338379
+ 0.338379
+ 0.338379
+ 0.338379
+ 0.338379
+ 0.338623
+ 0.338623
+ 0.338623
+ 0.338623
+ 0.338623
+ 0.338623
+ 0.338623
+ 0.338867
+ 0.338867
+ 0.338867
+ 0.338867
+ 0.338867
+ 0.338867
+ 0.338867
+ 0.338867
+ 0.339111
+ 0.339111
+ 0.339111
+ 0.339111
+ 0.339111
+ 0.339111
+ 0.339111
+ 0.339355
+ 0.339355
+ 0.339355
+ 0.339355
+ 0.339355
+ 0.339355
+ 0.339355
+ 0.339355
+ 0.339600
+ 0.339600
+ 0.339600
+ 0.339600
+ 0.339600
+ 0.339600
+ 0.339600
+ 0.339844
+ 0.339844
+ 0.339844
+ 0.339844
+ 0.339844
+ 0.339844
+ 0.339844
+ 0.340088
+ 0.340088
+ 0.340088
+ 0.340088
+ 0.340088
+ 0.340088
+ 0.340088
+ 0.340088
+ 0.340332
+ 0.340332
+ 0.340332
+ 0.340332
+ 0.340332
+ 0.340332
+ 0.340332
+ 0.340576
+ 0.340576
+ 0.340576
+ 0.340576
+ 0.340576
+ 0.340576
+ 0.340576
+ 0.340576
+ 0.340820
+ 0.340820
+ 0.340820
+ 0.340820
+ 0.340820
+ 0.340820
+ 0.340820
+ 0.341064
+ 0.341064
+ 0.341064
+ 0.341064
+ 0.341064
+ 0.341064
+ 0.341064
+ 0.341064
+ 0.341309
+ 0.341309
+ 0.341309
+ 0.341309
+ 0.341309
+ 0.341309
+ 0.341309
+ 0.341553
+ 0.341553
+ 0.341553
+ 0.341553
+ 0.341553
+ 0.341553
+ 0.341553
+ 0.341797
+ 0.341797
+ 0.341797
+ 0.341797
+ 0.341797
+ 0.341797
+ 0.341797
+ 0.341797
+ 0.342041
+ 0.342041
+ 0.342041
+ 0.342041
+ 0.342041
+ 0.342041
+ 0.342041
+ 0.342285
+ 0.342285
+ 0.342285
+ 0.342285
+ 0.342285
+ 0.342285
+ 0.342285
+ 0.342285
+ 0.342529
+ 0.342529
+ 0.342529
+ 0.342529
+ 0.342529
+ 0.342529
+ 0.342529
+ 0.342773
+ 0.342773
+ 0.342773
+ 0.342773
+ 0.342773
+ 0.342773
+ 0.342773
+ 0.342773
+ 0.343018
+ 0.343018
+ 0.343018
+ 0.343018
+ 0.343018
+ 0.343018
+ 0.343018
+ 0.343262
+ 0.343262
+ 0.343262
+ 0.343262
+ 0.343262
+ 0.343262
+ 0.343262
+ 0.343262
+ 0.343506
+ 0.343506
+ 0.343506
+ 0.343506
+ 0.343506
+ 0.343506
+ 0.343506
+ 0.343506
+ 0.343750
+ 0.343750
+ 0.343750
+ 0.343750
+ 0.343750
+ 0.343750
+ 0.343750
+ 0.343994
+ 0.343994
+ 0.343994
+ 0.343994
+ 0.343994
+ 0.343994
+ 0.343994
+ 0.343994
+ 0.344238
+ 0.344238
+ 0.344238
+ 0.344238
+ 0.344238
+ 0.344238
+ 0.344238
+ 0.344482
+ 0.344482
+ 0.344482
+ 0.344482
+ 0.344482
+ 0.344482
+ 0.344482
+ 0.344482
+ 0.344727
+ 0.344727
+ 0.344727
+ 0.344727
+ 0.344727
+ 0.344727
+ 0.344727
+ 0.344971
+ 0.344971
+ 0.344971
+ 0.344971
+ 0.344971
+ 0.344971
+ 0.344971
+ 0.344971
+ 0.345215
+ 0.345215
+ 0.345215
+ 0.345215
+ 0.345215
+ 0.345215
+ 0.345215
+ 0.345459
+ 0.345459
+ 0.345459
+ 0.345459
+ 0.345459
+ 0.345459
+ 0.345459
+ 0.345459
+ 0.345703
+ 0.345703
+ 0.345703
+ 0.345703
+ 0.345703
+ 0.345703
+ 0.345703
+ 0.345703
+ 0.345947
+ 0.345947
+ 0.345947
+ 0.345947
+ 0.345947
+ 0.345947
+ 0.345947
+ 0.346191
+ 0.346191
+ 0.346191
+ 0.346191
+ 0.346191
+ 0.346191
+ 0.346191
+ 0.346191
+ 0.346436
+ 0.346436
+ 0.346436
+ 0.346436
+ 0.346436
+ 0.346436
+ 0.346436
+ 0.346436
+ 0.346680
+ 0.346680
+ 0.346680
+ 0.346680
+ 0.346680
+ 0.346680
+ 0.346680
+ 0.346924
+ 0.346924
+ 0.346924
+ 0.346924
+ 0.346924
+ 0.346924
+ 0.346924
+ 0.346924
+ 0.347168
+ 0.347168
+ 0.347168
+ 0.347168
+ 0.347168
+ 0.347168
+ 0.347168
+ 0.347168
+ 0.347412
+ 0.347412
+ 0.347412
+ 0.347412
+ 0.347412
+ 0.347412
+ 0.347412
+ 0.347656
+ 0.347656
+ 0.347656
+ 0.347656
+ 0.347656
+ 0.347656
+ 0.347656
+ 0.347656
+ 0.347900
+ 0.347900
+ 0.347900
+ 0.347900
+ 0.347900
+ 0.347900
+ 0.347900
+ 0.347900
+ 0.348145
+ 0.348145
+ 0.348145
+ 0.348145
+ 0.348145
+ 0.348145
+ 0.348145
+ 0.348389
+ 0.348389
+ 0.348389
+ 0.348389
+ 0.348389
+ 0.348389
+ 0.348389
+ 0.348389
+ 0.348633
+ 0.348633
+ 0.348633
+ 0.348633
+ 0.348633
+ 0.348633
+ 0.348633
+ 0.348633
+ 0.348877
+ 0.348877
+ 0.348877
+ 0.348877
+ 0.348877
+ 0.348877
+ 0.348877
+ 0.349121
+ 0.349121
+ 0.349121
+ 0.349121
+ 0.349121
+ 0.349121
+ 0.349121
+ 0.349121
+ 0.349365
+ 0.349365
+ 0.349365
+ 0.349365
+ 0.349365
+ 0.349365
+ 0.349365
+ 0.349365
+ 0.349609
+ 0.349609
+ 0.349609
+ 0.349609
+ 0.349609
+ 0.349609
+ 0.349609
+ 0.349609
+ 0.349854
+ 0.349854
+ 0.349854
+ 0.349854
+ 0.349854
+ 0.349854
+ 0.349854
+ 0.350098
+ 0.350098
+ 0.350098
+ 0.350098
+ 0.350098
+ 0.350098
+ 0.350098
+ 0.350098
+ 0.350342
+ 0.350342
+ 0.350342
+ 0.350342
+ 0.350342
+ 0.350342
+ 0.350342
+ 0.350342
+ 0.350586
+ 0.350586
+ 0.350586
+ 0.350586
+ 0.350586
+ 0.350586
+ 0.350586
+ 0.350586
+ 0.350830
+ 0.350830
+ 0.350830
+ 0.350830
+ 0.350830
+ 0.350830
+ 0.350830
+ 0.350830
+ 0.351074
+ 0.351074
+ 0.351074
+ 0.351074
+ 0.351074
+ 0.351074
+ 0.351074
+ 0.351318
+ 0.351318
+ 0.351318
+ 0.351318
+ 0.351318
+ 0.351318
+ 0.351318
+ 0.351318
+ 0.351562
+ 0.351562
+ 0.351562
+ 0.351562
+ 0.351562
+ 0.351562
+ 0.351562
+ 0.351562
+ 0.351807
+ 0.351807
+ 0.351807
+ 0.351807
+ 0.351807
+ 0.351807
+ 0.351807
+ 0.351807
+ 0.352051
+ 0.352051
+ 0.352051
+ 0.352051
+ 0.352051
+ 0.352051
+ 0.352051
+ 0.352051
+ 0.352295
+ 0.352295
+ 0.352295
+ 0.352295
+ 0.352295
+ 0.352295
+ 0.352295
+ 0.352295
+ 0.352539
+ 0.352539
+ 0.352539
+ 0.352539
+ 0.352539
+ 0.352539
+ 0.352539
+ 0.352783
+ 0.352783
+ 0.352783
+ 0.352783
+ 0.352783
+ 0.352783
+ 0.352783
+ 0.352783
+ 0.353027
+ 0.353027
+ 0.353027
+ 0.353027
+ 0.353027
+ 0.353027
+ 0.353027
+ 0.353027
+ 0.353271
+ 0.353271
+ 0.353271
+ 0.353271
+ 0.353271
+ 0.353271
+ 0.353271
+ 0.353271
+ 0.353516
+ 0.353516
+ 0.353516
+ 0.353516
+ 0.353516
+ 0.353516
+ 0.353516
+ 0.353516
+ 0.353760
+ 0.353760
+ 0.353760
+ 0.353760
+ 0.353760
+ 0.353760
+ 0.353760
+ 0.353760
+ 0.354004
+ 0.354004
+ 0.354004
+ 0.354004
+ 0.354004
+ 0.354004
+ 0.354004
+ 0.354004
+ 0.354248
+ 0.354248
+ 0.354248
+ 0.354248
+ 0.354248
+ 0.354248
+ 0.354248
+ 0.354248
+ 0.354492
+ 0.354492
+ 0.354492
+ 0.354492
+ 0.354492
+ 0.354492
+ 0.354492
+ 0.354492
+ 0.354736
+ 0.354736
+ 0.354736
+ 0.354736
+ 0.354736
+ 0.354736
+ 0.354736
+ 0.354980
+ 0.354980
+ 0.354980
+ 0.354980
+ 0.354980
+ 0.354980
+ 0.354980
+ 0.354980
+ 0.355225
+ 0.355225
+ 0.355225
+ 0.355225
+ 0.355225
+ 0.355225
+ 0.355225
+ 0.355225
+ 0.355469
+ 0.355469
+ 0.355469
+ 0.355469
+ 0.355469
+ 0.355469
+ 0.355469
+ 0.355469
+ 0.355713
+ 0.355713
+ 0.355713
+ 0.355713
+ 0.355713
+ 0.355713
+ 0.355713
+ 0.355713
+ 0.355957
+ 0.355957
+ 0.355957
+ 0.355957
+ 0.355957
+ 0.355957
+ 0.355957
+ 0.355957
+ 0.356201
+ 0.356201
+ 0.356201
+ 0.356201
+ 0.356201
+ 0.356201
+ 0.356201
+ 0.356201
+ 0.356445
+ 0.356445
+ 0.356445
+ 0.356445
+ 0.356445
+ 0.356445
+ 0.356445
+ 0.356445
+ 0.356689
+ 0.356689
+ 0.356689
+ 0.356689
+ 0.356689
+ 0.356689
+ 0.356689
+ 0.356689
+ 0.356934
+ 0.356934
+ 0.356934
+ 0.356934
+ 0.356934
+ 0.356934
+ 0.356934
+ 0.356934
+ 0.357178
+ 0.357178
+ 0.357178
+ 0.357178
+ 0.357178
+ 0.357178
+ 0.357178
+ 0.357178
+ 0.357422
+ 0.357422
+ 0.357422
+ 0.357422
+ 0.357422
+ 0.357422
+ 0.357422
+ 0.357422
+ 0.357666
+ 0.357666
+ 0.357666
+ 0.357666
+ 0.357666
+ 0.357666
+ 0.357666
+ 0.357666
+ 0.357910
+ 0.357910
+ 0.357910
+ 0.357910
+ 0.357910
+ 0.357910
+ 0.357910
+ 0.357910
+ 0.358154
+ 0.358154
+ 0.358154
+ 0.358154
+ 0.358154
+ 0.358154
+ 0.358154
+ 0.358154
+ 0.358398
+ 0.358398
+ 0.358398
+ 0.358398
+ 0.358398
+ 0.358398
+ 0.358398
+ 0.358398
+ 0.358398
+ 0.358643
+ 0.358643
+ 0.358643
+ 0.358643
+ 0.358643
+ 0.358643
+ 0.358643
+ 0.358643
+ 0.358887
+ 0.358887
+ 0.358887
+ 0.358887
+ 0.358887
+ 0.358887
+ 0.358887
+ 0.358887
+ 0.359131
+ 0.359131
+ 0.359131
+ 0.359131
+ 0.359131
+ 0.359131
+ 0.359131
+ 0.359131
+ 0.359375
+ 0.359375
+ 0.359375
+ 0.359375
+ 0.359375
+ 0.359375
+ 0.359375
+ 0.359375
+ 0.359619
+ 0.359619
+ 0.359619
+ 0.359619
+ 0.359619
+ 0.359619
+ 0.359619
+ 0.359619
+ 0.359863
+ 0.359863
+ 0.359863
+ 0.359863
+ 0.359863
+ 0.359863
+ 0.359863
+ 0.359863
+ 0.360107
+ 0.360107
+ 0.360107
+ 0.360107
+ 0.360107
+ 0.360107
+ 0.360107
+ 0.360107
+ 0.360352
+ 0.360352
+ 0.360352
+ 0.360352
+ 0.360352
+ 0.360352
+ 0.360352
+ 0.360352
+ 0.360596
+ 0.360596
+ 0.360596
+ 0.360596
+ 0.360596
+ 0.360596
+ 0.360596
+ 0.360596
+ 0.360840
+ 0.360840
+ 0.360840
+ 0.360840
+ 0.360840
+ 0.360840
+ 0.360840
+ 0.360840
+ 0.360840
+ 0.361084
+ 0.361084
+ 0.361084
+ 0.361084
+ 0.361084
+ 0.361084
+ 0.361084
+ 0.361084
+ 0.361328
+ 0.361328
+ 0.361328
+ 0.361328
+ 0.361328
+ 0.361328
+ 0.361328
+ 0.361328
+ 0.361572
+ 0.361572
+ 0.361572
+ 0.361572
+ 0.361572
+ 0.361572
+ 0.361572
+ 0.361572
+ 0.361816
+ 0.361816
+ 0.361816
+ 0.361816
+ 0.361816
+ 0.361816
+ 0.361816
+ 0.361816
+ 0.362061
+ 0.362061
+ 0.362061
+ 0.362061
+ 0.362061
+ 0.362061
+ 0.362061
+ 0.362061
+ 0.362061
+ 0.362305
+ 0.362305
+ 0.362305
+ 0.362305
+ 0.362305
+ 0.362305
+ 0.362305
+ 0.362305
+ 0.362549
+ 0.362549
+ 0.362549
+ 0.362549
+ 0.362549
+ 0.362549
+ 0.362549
+ 0.362549
+ 0.362793
+ 0.362793
+ 0.362793
+ 0.362793
+ 0.362793
+ 0.362793
+ 0.362793
+ 0.362793
+ 0.363037
+ 0.363037
+ 0.363037
+ 0.363037
+ 0.363037
+ 0.363037
+ 0.363037
+ 0.363037
+ 0.363281
+ 0.363281
+ 0.363281
+ 0.363281
+ 0.363281
+ 0.363281
+ 0.363281
+ 0.363281
+ 0.363281
+ 0.363525
+ 0.363525
+ 0.363525
+ 0.363525
+ 0.363525
+ 0.363525
+ 0.363525
+ 0.363525
+ 0.363770
+ 0.363770
+ 0.363770
+ 0.363770
+ 0.363770
+ 0.363770
+ 0.363770
+ 0.363770
+ 0.364014
+ 0.364014
+ 0.364014
+ 0.364014
+ 0.364014
+ 0.364014
+ 0.364014
+ 0.364014
+ 0.364258
+ 0.364258
+ 0.364258
+ 0.364258
+ 0.364258
+ 0.364258
+ 0.364258
+ 0.364258
+ 0.364258
+ 0.364502
+ 0.364502
+ 0.364502
+ 0.364502
+ 0.364502
+ 0.364502
+ 0.364502
+ 0.364502
+ 0.364746
+ 0.364746
+ 0.364746
+ 0.364746
+ 0.364746
+ 0.364746
+ 0.364746
+ 0.364746
+ 0.364990
+ 0.364990
+ 0.364990
+ 0.364990
+ 0.364990
+ 0.364990
+ 0.364990
+ 0.364990
+ 0.364990
+ 0.365234
+ 0.365234
+ 0.365234
+ 0.365234
+ 0.365234
+ 0.365234
+ 0.365234
+ 0.365234
+ 0.365479
+ 0.365479
+ 0.365479
+ 0.365479
+ 0.365479
+ 0.365479
+ 0.365479
+ 0.365479
+ 0.365723
+ 0.365723
+ 0.365723
+ 0.365723
+ 0.365723
+ 0.365723
+ 0.365723
+ 0.365723
+ 0.365723
+ 0.365967
+ 0.365967
+ 0.365967
+ 0.365967
+ 0.365967
+ 0.365967
+ 0.365967
+ 0.365967
+ 0.366211
+ 0.366211
+ 0.366211
+ 0.366211
+ 0.366211
+ 0.366211
+ 0.366211
+ 0.366211
+ 0.366455
+ 0.366455
+ 0.366455
+ 0.366455
+ 0.366455
+ 0.366455
+ 0.366455
+ 0.366455
+ 0.366455
+ 0.366699
+ 0.366699
+ 0.366699
+ 0.366699
+ 0.366699
+ 0.366699
+ 0.366699
+ 0.366699
+ 0.366943
+ 0.366943
+ 0.366943
+ 0.366943
+ 0.366943
+ 0.366943
+ 0.366943
+ 0.366943
+ 0.367188
+ 0.367188
+ 0.367188
+ 0.367188
+ 0.367188
+ 0.367188
+ 0.367188
+ 0.367188
+ 0.367188
+ 0.367432
+ 0.367432
+ 0.367432
+ 0.367432
+ 0.367432
+ 0.367432
+ 0.367432
+ 0.367432
+ 0.367676
+ 0.367676
+ 0.367676
+ 0.367676
+ 0.367676
+ 0.367676
+ 0.367676
+ 0.367676
+ 0.367676
+ 0.367920
+ 0.367920
+ 0.367920
+ 0.367920
+ 0.367920
+ 0.367920
+ 0.367920
+ 0.367920
+ 0.368164
+ 0.368164
+ 0.368164
+ 0.368164
+ 0.368164
+ 0.368164
+ 0.368164
+ 0.368164
+ 0.368408
+ 0.368408
+ 0.368408
+ 0.368408
+ 0.368408
+ 0.368408
+ 0.368408
+ 0.368408
+ 0.368408
+ 0.368652
+ 0.368652
+ 0.368652
+ 0.368652
+ 0.368652
+ 0.368652
+ 0.368652
+ 0.368652
+ 0.368896
+ 0.368896
+ 0.368896
+ 0.368896
+ 0.368896
+ 0.368896
+ 0.368896
+ 0.368896
+ 0.368896
+ 0.369141
+ 0.369141
+ 0.369141
+ 0.369141
+ 0.369141
+ 0.369141
+ 0.369141
+ 0.369141
+ 0.369385
+ 0.369385
+ 0.369385
+ 0.369385
+ 0.369385
+ 0.369385
+ 0.369385
+ 0.369385
+ 0.369385
+ 0.369629
+ 0.369629
+ 0.369629
+ 0.369629
+ 0.369629
+ 0.369629
+ 0.369629
+ 0.369629
+ 0.369873
+ 0.369873
+ 0.369873
+ 0.369873
+ 0.369873
+ 0.369873
+ 0.369873
+ 0.369873
+ 0.369873
+ 0.370117
+ 0.370117
+ 0.370117
+ 0.370117
+ 0.370117
+ 0.370117
+ 0.370117
+ 0.370117
+ 0.370361
+ 0.370361
+ 0.370361
+ 0.370361
+ 0.370361
+ 0.370361
+ 0.370361
+ 0.370361
+ 0.370361
+ 0.370605
+ 0.370605
+ 0.370605
+ 0.370605
+ 0.370605
+ 0.370605
+ 0.370605
+ 0.370605
+ 0.370850
+ 0.370850
+ 0.370850
+ 0.370850
+ 0.370850
+ 0.370850
+ 0.370850
+ 0.370850
+ 0.370850
+ 0.371094
+ 0.371094
+ 0.371094
+ 0.371094
+ 0.371094
+ 0.371094
+ 0.371094
+ 0.371094
+ 0.371338
+ 0.371338
+ 0.371338
+ 0.371338
+ 0.371338
+ 0.371338
+ 0.371338
+ 0.371338
+ 0.371338
+ 0.371582
+ 0.371582
+ 0.371582
+ 0.371582
+ 0.371582
+ 0.371582
+ 0.371582
+ 0.371582
+ 0.371826
+ 0.371826
+ 0.371826
+ 0.371826
+ 0.371826
+ 0.371826
+ 0.371826
+ 0.371826
+ 0.371826
+ 0.372070
+ 0.372070
+ 0.372070
+ 0.372070
+ 0.372070
+ 0.372070
+ 0.372070
+ 0.372070
+ 0.372314
+ 0.372314
+ 0.372314
+ 0.372314
+ 0.372314
+ 0.372314
+ 0.372314
+ 0.372314
+ 0.372314
+ 0.372559
+ 0.372559
+ 0.372559
+ 0.372559
+ 0.372559
+ 0.372559
+ 0.372559
+ 0.372559
+ 0.372803
+ 0.372803
+ 0.372803
+ 0.372803
+ 0.372803
+ 0.372803
+ 0.372803
+ 0.372803
+ 0.372803
+ 0.373047
+ 0.373047
+ 0.373047
+ 0.373047
+ 0.373047
+ 0.373047
+ 0.373047
+ 0.373047
+ 0.373047
+ 0.373291
+ 0.373291
+ 0.373291
+ 0.373291
+ 0.373291
+ 0.373291
+ 0.373291
+ 0.373291
+ 0.373535
+ 0.373535
+ 0.373535
+ 0.373535
+ 0.373535
+ 0.373535
+ 0.373535
+ 0.373535
+ 0.373535
+ 0.373779
+ 0.373779
+ 0.373779
+ 0.373779
+ 0.373779
+ 0.373779
+ 0.373779
+ 0.373779
+ 0.374023
+ 0.374023
+ 0.374023
+ 0.374023
+ 0.374023
+ 0.374023
+ 0.374023
+ 0.374023
+ 0.374023
+ 0.374268
+ 0.374268
+ 0.374268
+ 0.374268
+ 0.374268
+ 0.374268
+ 0.374268
+ 0.374268
+ 0.374268
+ 0.374512
+ 0.374512
+ 0.374512
+ 0.374512
+ 0.374512
+ 0.374512
+ 0.374512
+ 0.374512
+ 0.374756
+ 0.374756
+ 0.374756
+ 0.374756
+ 0.374756
+ 0.374756
+ 0.374756
+ 0.374756
+ 0.374756
+ 0.375000
+ 0.375000
+ 0.375000
+ 0.375000
+ 0.375000
+ 0.375000
+ 0.375000
+ 0.375000
+ 0.375000
+ 0.375244
+ 0.375244
+ 0.375244
+ 0.375244
+ 0.375244
+ 0.375244
+ 0.375244
+ 0.375244
+ 0.375488
+ 0.375488
+ 0.375488
+ 0.375488
+ 0.375488
+ 0.375488
+ 0.375488
+ 0.375488
+ 0.375488
+ 0.375732
+ 0.375732
+ 0.375732
+ 0.375732
+ 0.375732
+ 0.375732
+ 0.375732
+ 0.375732
+ 0.375732
+ 0.375977
+ 0.375977
+ 0.375977
+ 0.375977
+ 0.375977
+ 0.375977
+ 0.375977
+ 0.375977
+ 0.376221
+ 0.376221
+ 0.376221
+ 0.376221
+ 0.376221
+ 0.376221
+ 0.376221
+ 0.376221
+ 0.376221
+ 0.376465
+ 0.376465
+ 0.376465
+ 0.376465
+ 0.376465
+ 0.376465
+ 0.376465
+ 0.376465
+ 0.376465
+ 0.376709
+ 0.376709
+ 0.376709
+ 0.376709
+ 0.376709
+ 0.376709
+ 0.376709
+ 0.376709
+ 0.376709
+ 0.376953
+ 0.376953
+ 0.376953
+ 0.376953
+ 0.376953
+ 0.376953
+ 0.376953
+ 0.376953
+ 0.377197
+ 0.377197
+ 0.377197
+ 0.377197
+ 0.377197
+ 0.377197
+ 0.377197
+ 0.377197
+ 0.377197
+ 0.377441
+ 0.377441
+ 0.377441
+ 0.377441
+ 0.377441
+ 0.377441
+ 0.377441
+ 0.377441
+ 0.377441
+ 0.377686
+ 0.377686
+ 0.377686
+ 0.377686
+ 0.377686
+ 0.377686
+ 0.377686
+ 0.377686
+ 0.377686
+ 0.377930
+ 0.377930
+ 0.377930
+ 0.377930
+ 0.377930
+ 0.377930
+ 0.377930
+ 0.377930
+ 0.378174
+ 0.378174
+ 0.378174
+ 0.378174
+ 0.378174
+ 0.378174
+ 0.378174
+ 0.378174
+ 0.378174
+ 0.378418
+ 0.378418
+ 0.378418
+ 0.378418
+ 0.378418
+ 0.378418
+ 0.378418
+ 0.378418
+ 0.378418
+ 0.378662
+ 0.378662
+ 0.378662
+ 0.378662
+ 0.378662
+ 0.378662
+ 0.378662
+ 0.378662
+ 0.378662
+ 0.378906
+ 0.378906
+ 0.378906
+ 0.378906
+ 0.378906
+ 0.378906
+ 0.378906
+ 0.378906
+ 0.378906
+ 0.379150
+ 0.379150
+ 0.379150
+ 0.379150
+ 0.379150
+ 0.379150
+ 0.379150
+ 0.379150
+ 0.379395
+ 0.379395
+ 0.379395
+ 0.379395
+ 0.379395
+ 0.379395
+ 0.379395
+ 0.379395
+ 0.379395
+ 0.379639
+ 0.379639
+ 0.379639
+ 0.379639
+ 0.379639
+ 0.379639
+ 0.379639
+ 0.379639
+ 0.379639
+ 0.379883
+ 0.379883
+ 0.379883
+ 0.379883
+ 0.379883
+ 0.379883
+ 0.379883
+ 0.379883
+ 0.379883
+ 0.380127
+ 0.380127
+ 0.380127
+ 0.380127
+ 0.380127
+ 0.380127
+ 0.380127
+ 0.380127
+ 0.380127
+ 0.380371
+ 0.380371
+ 0.380371
+ 0.380371
+ 0.380371
+ 0.380371
+ 0.380371
+ 0.380371
+ 0.380371
+ 0.380615
+ 0.380615
+ 0.380615
+ 0.380615
+ 0.380615
+ 0.380615
+ 0.380615
+ 0.380615
+ 0.380615
+ 0.380859
+ 0.380859
+ 0.380859
+ 0.380859
+ 0.380859
+ 0.380859
+ 0.380859
+ 0.380859
+ 0.380859
+ 0.381104
+ 0.381104
+ 0.381104
+ 0.381104
+ 0.381104
+ 0.381104
+ 0.381104
+ 0.381104
+ 0.381348
+ 0.381348
+ 0.381348
+ 0.381348
+ 0.381348
+ 0.381348
+ 0.381348
+ 0.381348
+ 0.381348
+ 0.381592
+ 0.381592
+ 0.381592
+ 0.381592
+ 0.381592
+ 0.381592
+ 0.381592
+ 0.381592
+ 0.381592
+ 0.381836
+ 0.381836
+ 0.381836
+ 0.381836
+ 0.381836
+ 0.381836
+ 0.381836
+ 0.381836
+ 0.381836
+ 0.382080
+ 0.382080
+ 0.382080
+ 0.382080
+ 0.382080
+ 0.382080
+ 0.382080
+ 0.382080
+ 0.382080
+ 0.382324
+ 0.382324
+ 0.382324
+ 0.382324
+ 0.382324
+ 0.382324
+ 0.382324
+ 0.382324
+ 0.382324
+ 0.382568
+ 0.382568
+ 0.382568
+ 0.382568
+ 0.382568
+ 0.382568
+ 0.382568
+ 0.382568
+ 0.382568
+ 0.382812
+ 0.382812
+ 0.382812
+ 0.382812
+ 0.382812
+ 0.382812
+ 0.382812
+ 0.382812
+ 0.382812
+ 0.383057
+ 0.383057
+ 0.383057
+ 0.383057
+ 0.383057
+ 0.383057
+ 0.383057
+ 0.383057
+ 0.383057
+ 0.383301
+ 0.383301
+ 0.383301
+ 0.383301
+ 0.383301
+ 0.383301
+ 0.383301
+ 0.383301
+ 0.383301
+ 0.383545
+ 0.383545
+ 0.383545
+ 0.383545
+ 0.383545
+ 0.383545
+ 0.383545
+ 0.383545
+ 0.383545
+ 0.383789
+ 0.383789
+ 0.383789
+ 0.383789
+ 0.383789
+ 0.383789
+ 0.383789
+ 0.383789
+ 0.383789
+ 0.384033
+ 0.384033
+ 0.384033
+ 0.384033
+ 0.384033
+ 0.384033
+ 0.384033
+ 0.384033
+ 0.384033
+ 0.384277
+ 0.384277
+ 0.384277
+ 0.384277
+ 0.384277
+ 0.384277
+ 0.384277
+ 0.384277
+ 0.384277
+ 0.384521
+ 0.384521
+ 0.384521
+ 0.384521
+ 0.384521
+ 0.384521
+ 0.384521
+ 0.384521
+ 0.384521
+ 0.384766
+ 0.384766
+ 0.384766
+ 0.384766
+ 0.384766
+ 0.384766
+ 0.384766
+ 0.384766
+ 0.384766
+ 0.385010
+ 0.385010
+ 0.385010
+ 0.385010
+ 0.385010
+ 0.385010
+ 0.385010
+ 0.385010
+ 0.385010
+ 0.385254
+ 0.385254
+ 0.385254
+ 0.385254
+ 0.385254
+ 0.385254
+ 0.385254
+ 0.385254
+ 0.385254
+ 0.385498
+ 0.385498
+ 0.385498
+ 0.385498
+ 0.385498
+ 0.385498
+ 0.385498
+ 0.385498
+ 0.385498
+ 0.385742
+ 0.385742
+ 0.385742
+ 0.385742
+ 0.385742
+ 0.385742
+ 0.385742
+ 0.385742
+ 0.385742
+ 0.385986
+ 0.385986
+ 0.385986
+ 0.385986
+ 0.385986
+ 0.385986
+ 0.385986
+ 0.385986
+ 0.385986
+ 0.386230
+ 0.386230
+ 0.386230
+ 0.386230
+ 0.386230
+ 0.386230
+ 0.386230
+ 0.386230
+ 0.386230
+ 0.386475
+ 0.386475
+ 0.386475
+ 0.386475
+ 0.386475
+ 0.386475
+ 0.386475
+ 0.386475
+ 0.386475
+ 0.386719
+ 0.386719
+ 0.386719
+ 0.386719
+ 0.386719
+ 0.386719
+ 0.386719
+ 0.386719
+ 0.386719
+ 0.386719
+ 0.386963
+ 0.386963
+ 0.386963
+ 0.386963
+ 0.386963
+ 0.386963
+ 0.386963
+ 0.386963
+ 0.386963
+ 0.387207
+ 0.387207
+ 0.387207
+ 0.387207
+ 0.387207
+ 0.387207
+ 0.387207
+ 0.387207
+ 0.387207
+ 0.387451
+ 0.387451
+ 0.387451
+ 0.387451
+ 0.387451
+ 0.387451
+ 0.387451
+ 0.387451
+ 0.387451
+ 0.387695
+ 0.387695
+ 0.387695
+ 0.387695
+ 0.387695
+ 0.387695
+ 0.387695
+ 0.387695
+ 0.387695
+ 0.387939
+ 0.387939
+ 0.387939
+ 0.387939
+ 0.387939
+ 0.387939
+ 0.387939
+ 0.387939
+ 0.387939
+ 0.388184
+ 0.388184
+ 0.388184
+ 0.388184
+ 0.388184
+ 0.388184
+ 0.388184
+ 0.388184
+ 0.388184
+ 0.388428
+ 0.388428
+ 0.388428
+ 0.388428
+ 0.388428
+ 0.388428
+ 0.388428
+ 0.388428
+ 0.388428
+ 0.388428
+ 0.388672
+ 0.388672
+ 0.388672
+ 0.388672
+ 0.388672
+ 0.388672
+ 0.388672
+ 0.388672
+ 0.388672
+ 0.388916
+ 0.388916
+ 0.388916
+ 0.388916
+ 0.388916
+ 0.388916
+ 0.388916
+ 0.388916
+ 0.388916
+ 0.389160
+ 0.389160
+ 0.389160
+ 0.389160
+ 0.389160
+ 0.389160
+ 0.389160
+ 0.389160
+ 0.389160
+ 0.389404
+ 0.389404
+ 0.389404
+ 0.389404
+ 0.389404
+ 0.389404
+ 0.389404
+ 0.389404
+ 0.389404
+ 0.389648
+ 0.389648
+ 0.389648
+ 0.389648
+ 0.389648
+ 0.389648
+ 0.389648
+ 0.389648
+ 0.389648
+ 0.389648
+ 0.389893
+ 0.389893
+ 0.389893
+ 0.389893
+ 0.389893
+ 0.389893
+ 0.389893
+ 0.389893
+ 0.389893
+ 0.390137
+ 0.390137
+ 0.390137
+ 0.390137
+ 0.390137
+ 0.390137
+ 0.390137
+ 0.390137
+ 0.390137
+ 0.390381
+ 0.390381
+ 0.390381
+ 0.390381
+ 0.390381
+ 0.390381
+ 0.390381
+ 0.390381
+ 0.390381
+ 0.390625
+ 0.390625
+ 0.390625
+ 0.390625
+ 0.390625
+ 0.390625
+ 0.390625
+ 0.390625
+ 0.390625
+ 0.390625
+ 0.390869
+ 0.390869
+ 0.390869
+ 0.390869
+ 0.390869
+ 0.390869
+ 0.390869
+ 0.390869
+ 0.390869
+ 0.391113
+ 0.391113
+ 0.391113
+ 0.391113
+ 0.391113
+ 0.391113
+ 0.391113
+ 0.391113
+ 0.391113
+ 0.391357
+ 0.391357
+ 0.391357
+ 0.391357
+ 0.391357
+ 0.391357
+ 0.391357
+ 0.391357
+ 0.391357
+ 0.391602
+ 0.391602
+ 0.391602
+ 0.391602
+ 0.391602
+ 0.391602
+ 0.391602
+ 0.391602
+ 0.391602
+ 0.391602
+ 0.391846
+ 0.391846
+ 0.391846
+ 0.391846
+ 0.391846
+ 0.391846
+ 0.391846
+ 0.391846
+ 0.391846
+ 0.392090
+ 0.392090
+ 0.392090
+ 0.392090
+ 0.392090
+ 0.392090
+ 0.392090
+ 0.392090
+ 0.392090
+ 0.392334
+ 0.392334
+ 0.392334
+ 0.392334
+ 0.392334
+ 0.392334
+ 0.392334
+ 0.392334
+ 0.392334
+ 0.392334
+ 0.392578
+ 0.392578
+ 0.392578
+ 0.392578
+ 0.392578
+ 0.392578
+ 0.392578
+ 0.392578
+ 0.392578
+ 0.392822
+ 0.392822
+ 0.392822
+ 0.392822
+ 0.392822
+ 0.392822
+ 0.392822
+ 0.392822
+ 0.392822
+ 0.393066
+ 0.393066
+ 0.393066
+ 0.393066
+ 0.393066
+ 0.393066
+ 0.393066
+ 0.393066
+ 0.393066
+ 0.393066
+ 0.393311
+ 0.393311
+ 0.393311
+ 0.393311
+ 0.393311
+ 0.393311
+ 0.393311
+ 0.393311
+ 0.393311
+ 0.393555
+ 0.393555
+ 0.393555
+ 0.393555
+ 0.393555
+ 0.393555
+ 0.393555
+ 0.393555
+ 0.393555
+ 0.393799
+ 0.393799
+ 0.393799
+ 0.393799
+ 0.393799
+ 0.393799
+ 0.393799
+ 0.393799
+ 0.393799
+ 0.393799
+ 0.394043
+ 0.394043
+ 0.394043
+ 0.394043
+ 0.394043
+ 0.394043
+ 0.394043
+ 0.394043
+ 0.394043
+ 0.394287
+ 0.394287
+ 0.394287
+ 0.394287
+ 0.394287
+ 0.394287
+ 0.394287
+ 0.394287
+ 0.394287
+ 0.394531
+ 0.394531
+ 0.394531
+ 0.394531
+ 0.394531
+ 0.394531
+ 0.394531
+ 0.394531
+ 0.394531
+ 0.394531
+ 0.394775
+ 0.394775
+ 0.394775
+ 0.394775
+ 0.394775
+ 0.394775
+ 0.394775
+ 0.394775
+ 0.394775
+ 0.395020
+ 0.395020
+ 0.395020
+ 0.395020
+ 0.395020
+ 0.395020
+ 0.395020
+ 0.395020
+ 0.395020
+ 0.395020
+ 0.395264
+ 0.395264
+ 0.395264
+ 0.395264
+ 0.395264
+ 0.395264
+ 0.395264
+ 0.395264
+ 0.395264
+ 0.395508
+ 0.395508
+ 0.395508
+ 0.395508
+ 0.395508
+ 0.395508
+ 0.395508
+ 0.395508
+ 0.395508
+ 0.395508
+ 0.395752
+ 0.395752
+ 0.395752
+ 0.395752
+ 0.395752
+ 0.395752
+ 0.395752
+ 0.395752
+ 0.395752
+ 0.395996
+ 0.395996
+ 0.395996
+ 0.395996
+ 0.395996
+ 0.395996
+ 0.395996
+ 0.395996
+ 0.395996
+ 0.395996
+ 0.396240
+ 0.396240
+ 0.396240
+ 0.396240
+ 0.396240
+ 0.396240
+ 0.396240
+ 0.396240
+ 0.396240
+ 0.396484
+ 0.396484
+ 0.396484
+ 0.396484
+ 0.396484
+ 0.396484
+ 0.396484
+ 0.396484
+ 0.396484
+ 0.396729
+ 0.396729
+ 0.396729
+ 0.396729
+ 0.396729
+ 0.396729
+ 0.396729
+ 0.396729
+ 0.396729
+ 0.396729
+ 0.396973
+ 0.396973
+ 0.396973
+ 0.396973
+ 0.396973
+ 0.396973
+ 0.396973
+ 0.396973
+ 0.396973
+ 0.397217
+ 0.397217
+ 0.397217
+ 0.397217
+ 0.397217
+ 0.397217
+ 0.397217
+ 0.397217
+ 0.397217
+ 0.397217
+ 0.397461
+ 0.397461
+ 0.397461
+ 0.397461
+ 0.397461
+ 0.397461
+ 0.397461
+ 0.397461
+ 0.397461
+ 0.397705
+ 0.397705
+ 0.397705
+ 0.397705
+ 0.397705
+ 0.397705
+ 0.397705
+ 0.397705
+ 0.397705
+ 0.397705
+ 0.397949
+ 0.397949
+ 0.397949
+ 0.397949
+ 0.397949
+ 0.397949
+ 0.397949
+ 0.397949
+ 0.397949
+ 0.397949
+ 0.398193
+ 0.398193
+ 0.398193
+ 0.398193
+ 0.398193
+ 0.398193
+ 0.398193
+ 0.398193
+ 0.398193
+ 0.398438
+ 0.398438
+ 0.398438
+ 0.398438
+ 0.398438
+ 0.398438
+ 0.398438
+ 0.398438
+ 0.398438
+ 0.398438
+ 0.398682
+ 0.398682
+ 0.398682
+ 0.398682
+ 0.398682
+ 0.398682
+ 0.398682
+ 0.398682
+ 0.398682
+ 0.398926
+ 0.398926
+ 0.398926
+ 0.398926
+ 0.398926
+ 0.398926
+ 0.398926
+ 0.398926
+ 0.398926
+ 0.398926
+ 0.399170
+ 0.399170
+ 0.399170
+ 0.399170
+ 0.399170
+ 0.399170
+ 0.399170
+ 0.399170
+ 0.399170
+ 0.399414
+ 0.399414
+ 0.399414
+ 0.399414
+ 0.399414
+ 0.399414
+ 0.399414
+ 0.399414
+ 0.399414
+ 0.399414
+ 0.399658
+ 0.399658
+ 0.399658
+ 0.399658
+ 0.399658
+ 0.399658
+ 0.399658
+ 0.399658
+ 0.399658
+ 0.399658
+ 0.399902
+ 0.399902
+ 0.399902
+ 0.399902
+ 0.399902
+ 0.399902
+ 0.399902
+ 0.399902
+ 0.399902
+ 0.400146
+ 0.400146
+ 0.400146
+ 0.400146
+ 0.400146
+ 0.400146
+ 0.400146
+ 0.400146
+ 0.400146
+ 0.400146
+ 0.400391
+ 0.400391
+ 0.400391
+ 0.400391
+ 0.400391
+ 0.400391
+ 0.400391
+ 0.400391
+ 0.400391
+ 0.400635
+ 0.400635
+ 0.400635
+ 0.400635
+ 0.400635
+ 0.400635
+ 0.400635
+ 0.400635
+ 0.400635
+ 0.400635
+ 0.400879
+ 0.400879
+ 0.400879
+ 0.400879
+ 0.400879
+ 0.400879
+ 0.400879
+ 0.400879
+ 0.400879
+ 0.400879
+ 0.401123
+ 0.401123
+ 0.401123
+ 0.401123
+ 0.401123
+ 0.401123
+ 0.401123
+ 0.401123
+ 0.401123
+ 0.401367
+ 0.401367
+ 0.401367
+ 0.401367
+ 0.401367
+ 0.401367
+ 0.401367
+ 0.401367
+ 0.401367
+ 0.401367
+ 0.401611
+ 0.401611
+ 0.401611
+ 0.401611
+ 0.401611
+ 0.401611
+ 0.401611
+ 0.401611
+ 0.401611
+ 0.401611
+ 0.401855
+ 0.401855
+ 0.401855
+ 0.401855
+ 0.401855
+ 0.401855
+ 0.401855
+ 0.401855
+ 0.401855
+ 0.402100
+ 0.402100
+ 0.402100
+ 0.402100
+ 0.402100
+ 0.402100
+ 0.402100
+ 0.402100
+ 0.402100
+ 0.402100
+ 0.402344
+ 0.402344
+ 0.402344
+ 0.402344
+ 0.402344
+ 0.402344
+ 0.402344
+ 0.402344
+ 0.402344
+ 0.402344
+ 0.402588
+ 0.402588
+ 0.402588
+ 0.402588
+ 0.402588
+ 0.402588
+ 0.402588
+ 0.402588
+ 0.402588
+ 0.402832
+ 0.402832
+ 0.402832
+ 0.402832
+ 0.402832
+ 0.402832
+ 0.402832
+ 0.402832
+ 0.402832
+ 0.402832
+ 0.403076
+ 0.403076
+ 0.403076
+ 0.403076
+ 0.403076
+ 0.403076
+ 0.403076
+ 0.403076
+ 0.403076
+ 0.403076
+ 0.403320
+ 0.403320
+ 0.403320
+ 0.403320
+ 0.403320
+ 0.403320
+ 0.403320
+ 0.403320
+ 0.403320
+ 0.403320
+ 0.403564
+ 0.403564
+ 0.403564
+ 0.403564
+ 0.403564
+ 0.403564
+ 0.403564
+ 0.403564
+ 0.403564
+ 0.403809
+ 0.403809
+ 0.403809
+ 0.403809
+ 0.403809
+ 0.403809
+ 0.403809
+ 0.403809
+ 0.403809
+ 0.403809
+ 0.404053
+ 0.404053
+ 0.404053
+ 0.404053
+ 0.404053
+ 0.404053
+ 0.404053
+ 0.404053
+ 0.404053
+ 0.404053
+ 0.404297
+ 0.404297
+ 0.404297
+ 0.404297
+ 0.404297
+ 0.404297
+ 0.404297
+ 0.404297
+ 0.404297
+ 0.404297
+ 0.404541
+ 0.404541
+ 0.404541
+ 0.404541
+ 0.404541
+ 0.404541
+ 0.404541
+ 0.404541
+ 0.404541
+ 0.404541
+ 0.404785
+ 0.404785
+ 0.404785
+ 0.404785
+ 0.404785
+ 0.404785
+ 0.404785
+ 0.404785
+ 0.404785
+ 0.405029
+ 0.405029
+ 0.405029
+ 0.405029
+ 0.405029
+ 0.405029
+ 0.405029
+ 0.405029
+ 0.405029
+ 0.405029
+ 0.405273
+ 0.405273
+ 0.405273
+ 0.405273
+ 0.405273
+ 0.405273
+ 0.405273
+ 0.405273
+ 0.405273
+ 0.405273
+ 0.405518
+ 0.405518
+ 0.405518
+ 0.405518
+ 0.405518
+ 0.405518
+ 0.405518
+ 0.405518
+ 0.405518
+ 0.405518
+ 0.405762
+ 0.405762
+ 0.405762
+ 0.405762
+ 0.405762
+ 0.405762
+ 0.405762
+ 0.405762
+ 0.405762
+ 0.405762
+ 0.406006
+ 0.406006
+ 0.406006
+ 0.406006
+ 0.406006
+ 0.406006
+ 0.406006
+ 0.406006
+ 0.406006
+ 0.406250
+ 0.406250
+ 0.406250
+ 0.406250
+ 0.406250
+ 0.406250
+ 0.406250
+ 0.406250
+ 0.406250
+ 0.406250
+ 0.406494
+ 0.406494
+ 0.406494
+ 0.406494
+ 0.406494
+ 0.406494
+ 0.406494
+ 0.406494
+ 0.406494
+ 0.406494
+ 0.406738
+ 0.406738
+ 0.406738
+ 0.406738
+ 0.406738
+ 0.406738
+ 0.406738
+ 0.406738
+ 0.406738
+ 0.406738
+ 0.406982
+ 0.406982
+ 0.406982
+ 0.406982
+ 0.406982
+ 0.406982
+ 0.406982
+ 0.406982
+ 0.406982
+ 0.406982
+ 0.407227
+ 0.407227
+ 0.407227
+ 0.407227
+ 0.407227
+ 0.407227
+ 0.407227
+ 0.407227
+ 0.407227
+ 0.407227
+ 0.407471
+ 0.407471
+ 0.407471
+ 0.407471
+ 0.407471
+ 0.407471
+ 0.407471
+ 0.407471
+ 0.407471
+ 0.407471
+ 0.407715
+ 0.407715
+ 0.407715
+ 0.407715
+ 0.407715
+ 0.407715
+ 0.407715
+ 0.407715
+ 0.407715
+ 0.407715
+ 0.407959
+ 0.407959
+ 0.407959
+ 0.407959
+ 0.407959
+ 0.407959
+ 0.407959
+ 0.407959
+ 0.407959
+ 0.407959
+ 0.408203
+ 0.408203
+ 0.408203
+ 0.408203
+ 0.408203
+ 0.408203
+ 0.408203
+ 0.408203
+ 0.408203
+ 0.408447
+ 0.408447
+ 0.408447
+ 0.408447
+ 0.408447
+ 0.408447
+ 0.408447
+ 0.408447
+ 0.408447
+ 0.408447
+ 0.408691
+ 0.408691
+ 0.408691
+ 0.408691
+ 0.408691
+ 0.408691
+ 0.408691
+ 0.408691
+ 0.408691
+ 0.408691
+ 0.408936
+ 0.408936
+ 0.408936
+ 0.408936
+ 0.408936
+ 0.408936
+ 0.408936
+ 0.408936
+ 0.408936
+ 0.408936
+ 0.409180
+ 0.409180
+ 0.409180
+ 0.409180
+ 0.409180
+ 0.409180
+ 0.409180
+ 0.409180
+ 0.409180
+ 0.409180
+ 0.409424
+ 0.409424
+ 0.409424
+ 0.409424
+ 0.409424
+ 0.409424
+ 0.409424
+ 0.409424
+ 0.409424
+ 0.409424
+ 0.409668
+ 0.409668
+ 0.409668
+ 0.409668
+ 0.409668
+ 0.409668
+ 0.409668
+ 0.409668
+ 0.409668
+ 0.409668
+ 0.409912
+ 0.409912
+ 0.409912
+ 0.409912
+ 0.409912
+ 0.409912
+ 0.409912
+ 0.409912
+ 0.409912
+ 0.409912
+ 0.410156
+ 0.410156
+ 0.410156
+ 0.410156
+ 0.410156
+ 0.410156
+ 0.410156
+ 0.410156
+ 0.410156
+ 0.410156
+ 0.410400
+ 0.410400
+ 0.410400
+ 0.410400
+ 0.410400
+ 0.410400
+ 0.410400
+ 0.410400
+ 0.410400
+ 0.410400
+ 0.410645
+ 0.410645
+ 0.410645
+ 0.410645
+ 0.410645
+ 0.410645
+ 0.410645
+ 0.410645
+ 0.410645
+ 0.410645
+ 0.410889
+ 0.410889
+ 0.410889
+ 0.410889
+ 0.410889
+ 0.410889
+ 0.410889
+ 0.410889
+ 0.410889
+ 0.410889
+ 0.411133
+ 0.411133
+ 0.411133
+ 0.411133
+ 0.411133
+ 0.411133
+ 0.411133
+ 0.411133
+ 0.411133
+ 0.411133
+ 0.411377
+ 0.411377
+ 0.411377
+ 0.411377
+ 0.411377
+ 0.411377
+ 0.411377
+ 0.411377
+ 0.411377
+ 0.411377
+ 0.411621
+ 0.411621
+ 0.411621
+ 0.411621
+ 0.411621
+ 0.411621
+ 0.411621
+ 0.411621
+ 0.411621
+ 0.411621
+ 0.411865
+ 0.411865
+ 0.411865
+ 0.411865
+ 0.411865
+ 0.411865
+ 0.411865
+ 0.411865
+ 0.411865
+ 0.411865
+ 0.411865
+ 0.412109
+ 0.412109
+ 0.412109
+ 0.412109
+ 0.412109
+ 0.412109
+ 0.412109
+ 0.412109
+ 0.412109
+ 0.412109
+ 0.412354
+ 0.412354
+ 0.412354
+ 0.412354
+ 0.412354
+ 0.412354
+ 0.412354
+ 0.412354
+ 0.412354
+ 0.412354
+ 0.412598
+ 0.412598
+ 0.412598
+ 0.412598
+ 0.412598
+ 0.412598
+ 0.412598
+ 0.412598
+ 0.412598
+ 0.412598
+ 0.412842
+ 0.412842
+ 0.412842
+ 0.412842
+ 0.412842
+ 0.412842
+ 0.412842
+ 0.412842
+ 0.412842
+ 0.412842
+ 0.413086
+ 0.413086
+ 0.413086
+ 0.413086
+ 0.413086
+ 0.413086
+ 0.413086
+ 0.413086
+ 0.413086
+ 0.413086
+ 0.413330
+ 0.413330
+ 0.413330
+ 0.413330
+ 0.413330
+ 0.413330
+ 0.413330
+ 0.413330
+ 0.413330
+ 0.413330
+ 0.413574
+ 0.413574
+ 0.413574
+ 0.413574
+ 0.413574
+ 0.413574
+ 0.413574
+ 0.413574
+ 0.413574
+ 0.413574
+ 0.413818
+ 0.413818
+ 0.413818
+ 0.413818
+ 0.413818
+ 0.413818
+ 0.413818
+ 0.413818
+ 0.413818
+ 0.413818
+ 0.413818
+ 0.414062
+ 0.414062
+ 0.414062
+ 0.414062
+ 0.414062
+ 0.414062
+ 0.414062
+ 0.414062
+ 0.414062
+ 0.414062
+ 0.414307
+ 0.414307
+ 0.414307
+ 0.414307
+ 0.414307
+ 0.414307
+ 0.414307
+ 0.414307
+ 0.414307
+ 0.414307
+ 0.414551
+ 0.414551
+ 0.414551
+ 0.414551
+ 0.414551
+ 0.414551
+ 0.414551
+ 0.414551
+ 0.414551
+ 0.414551
+ 0.414795
+ 0.414795
+ 0.414795
+ 0.414795
+ 0.414795
+ 0.414795
+ 0.414795
+ 0.414795
+ 0.414795
+ 0.414795
+ 0.415039
+ 0.415039
+ 0.415039
+ 0.415039
+ 0.415039
+ 0.415039
+ 0.415039
+ 0.415039
+ 0.415039
+ 0.415039
+ 0.415283
+ 0.415283
+ 0.415283
+ 0.415283
+ 0.415283
+ 0.415283
+ 0.415283
+ 0.415283
+ 0.415283
+ 0.415283
+ 0.415283
+ 0.415527
+ 0.415527
+ 0.415527
+ 0.415527
+ 0.415527
+ 0.415527
+ 0.415527
+ 0.415527
+ 0.415527
+ 0.415527
+ 0.415771
+ 0.415771
+ 0.415771
+ 0.415771
+ 0.415771
+ 0.415771
+ 0.415771
+ 0.415771
+ 0.415771
+ 0.415771
+ 0.416016
+ 0.416016
+ 0.416016
+ 0.416016
+ 0.416016
+ 0.416016
+ 0.416016
+ 0.416016
+ 0.416016
+ 0.416016
+ 0.416260
+ 0.416260
+ 0.416260
+ 0.416260
+ 0.416260
+ 0.416260
+ 0.416260
+ 0.416260
+ 0.416260
+ 0.416260
+ 0.416260
+ 0.416504
+ 0.416504
+ 0.416504
+ 0.416504
+ 0.416504
+ 0.416504
+ 0.416504
+ 0.416504
+ 0.416504
+ 0.416504
+ 0.416748
+ 0.416748
+ 0.416748
+ 0.416748
+ 0.416748
+ 0.416748
+ 0.416748
+ 0.416748
+ 0.416748
+ 0.416748
+ 0.416992
+ 0.416992
+ 0.416992
+ 0.416992
+ 0.416992
+ 0.416992
+ 0.416992
+ 0.416992
+ 0.416992
+ 0.416992
+ 0.417236
+ 0.417236
+ 0.417236
+ 0.417236
+ 0.417236
+ 0.417236
+ 0.417236
+ 0.417236
+ 0.417236
+ 0.417236
+ 0.417236
+ 0.417480
+ 0.417480
+ 0.417480
+ 0.417480
+ 0.417480
+ 0.417480
+ 0.417480
+ 0.417480
+ 0.417480
+ 0.417480
+ 0.417725
+ 0.417725
+ 0.417725
+ 0.417725
+ 0.417725
+ 0.417725
+ 0.417725
+ 0.417725
+ 0.417725
+ 0.417725
+ 0.417969
+ 0.417969
+ 0.417969
+ 0.417969
+ 0.417969
+ 0.417969
+ 0.417969
+ 0.417969
+ 0.417969
+ 0.417969
+ 0.417969
+ 0.418213
+ 0.418213
+ 0.418213
+ 0.418213
+ 0.418213
+ 0.418213
+ 0.418213
+ 0.418213
+ 0.418213
+ 0.418213
+ 0.418457
+ 0.418457
+ 0.418457
+ 0.418457
+ 0.418457
+ 0.418457
+ 0.418457
+ 0.418457
+ 0.418457
+ 0.418457
+ 0.418701
+ 0.418701
+ 0.418701
+ 0.418701
+ 0.418701
+ 0.418701
+ 0.418701
+ 0.418701
+ 0.418701
+ 0.418701
+ 0.418701
+ 0.418945
+ 0.418945
+ 0.418945
+ 0.418945
+ 0.418945
+ 0.418945
+ 0.418945
+ 0.418945
+ 0.418945
+ 0.418945
+ 0.419189
+ 0.419189
+ 0.419189
+ 0.419189
+ 0.419189
+ 0.419189
+ 0.419189
+ 0.419189
+ 0.419189
+ 0.419189
+ 0.419434
+ 0.419434
+ 0.419434
+ 0.419434
+ 0.419434
+ 0.419434
+ 0.419434
+ 0.419434
+ 0.419434
+ 0.419434
+ 0.419434
+ 0.419678
+ 0.419678
+ 0.419678
+ 0.419678
+ 0.419678
+ 0.419678
+ 0.419678
+ 0.419678
+ 0.419678
+ 0.419678
+ 0.419922
+ 0.419922
+ 0.419922
+ 0.419922
+ 0.419922
+ 0.419922
+ 0.419922
+ 0.419922
+ 0.419922
+ 0.419922
+ 0.420166
+ 0.420166
+ 0.420166
+ 0.420166
+ 0.420166
+ 0.420166
+ 0.420166
+ 0.420166
+ 0.420166
+ 0.420166
+ 0.420166
+ 0.420410
+ 0.420410
+ 0.420410
+ 0.420410
+ 0.420410
+ 0.420410
+ 0.420410
+ 0.420410
+ 0.420410
+ 0.420410
+ 0.420654
+ 0.420654
+ 0.420654
+ 0.420654
+ 0.420654
+ 0.420654
+ 0.420654
+ 0.420654
+ 0.420654
+ 0.420654
+ 0.420654
+ 0.420898
+ 0.420898
+ 0.420898
+ 0.420898
+ 0.420898
+ 0.420898
+ 0.420898
+ 0.420898
+ 0.420898
+ 0.420898
+ 0.421143
+ 0.421143
+ 0.421143
+ 0.421143
+ 0.421143
+ 0.421143
+ 0.421143
+ 0.421143
+ 0.421143
+ 0.421143
+ 0.421387
+ 0.421387
+ 0.421387
+ 0.421387
+ 0.421387
+ 0.421387
+ 0.421387
+ 0.421387
+ 0.421387
+ 0.421387
+ 0.421387
+ 0.421631
+ 0.421631
+ 0.421631
+ 0.421631
+ 0.421631
+ 0.421631
+ 0.421631
+ 0.421631
+ 0.421631
+ 0.421631
+ 0.421875
+ 0.421875
+ 0.421875
+ 0.421875
+ 0.421875
+ 0.421875
+ 0.421875
+ 0.421875
+ 0.421875
+ 0.421875
+ 0.421875
+ 0.422119
+ 0.422119
+ 0.422119
+ 0.422119
+ 0.422119
+ 0.422119
+ 0.422119
+ 0.422119
+ 0.422119
+ 0.422119
+ 0.422363
+ 0.422363
+ 0.422363
+ 0.422363
+ 0.422363
+ 0.422363
+ 0.422363
+ 0.422363
+ 0.422363
+ 0.422363
+ 0.422363
+ 0.422607
+ 0.422607
+ 0.422607
+ 0.422607
+ 0.422607
+ 0.422607
+ 0.422607
+ 0.422607
+ 0.422607
+ 0.422607
+ 0.422852
+ 0.422852
+ 0.422852
+ 0.422852
+ 0.422852
+ 0.422852
+ 0.422852
+ 0.422852
+ 0.422852
+ 0.422852
+ 0.422852
+ 0.423096
+ 0.423096
+ 0.423096
+ 0.423096
+ 0.423096
+ 0.423096
+ 0.423096
+ 0.423096
+ 0.423096
+ 0.423096
+ 0.423340
+ 0.423340
+ 0.423340
+ 0.423340
+ 0.423340
+ 0.423340
+ 0.423340
+ 0.423340
+ 0.423340
+ 0.423340
+ 0.423340
+ 0.423584
+ 0.423584
+ 0.423584
+ 0.423584
+ 0.423584
+ 0.423584
+ 0.423584
+ 0.423584
+ 0.423584
+ 0.423584
+ 0.423828
+ 0.423828
+ 0.423828
+ 0.423828
+ 0.423828
+ 0.423828
+ 0.423828
+ 0.423828
+ 0.423828
+ 0.423828
+ 0.423828
+ 0.424072
+ 0.424072
+ 0.424072
+ 0.424072
+ 0.424072
+ 0.424072
+ 0.424072
+ 0.424072
+ 0.424072
+ 0.424072
+ 0.424316
+ 0.424316
+ 0.424316
+ 0.424316
+ 0.424316
+ 0.424316
+ 0.424316
+ 0.424316
+ 0.424316
+ 0.424316
+ 0.424316
+ 0.424561
+ 0.424561
+ 0.424561
+ 0.424561
+ 0.424561
+ 0.424561
+ 0.424561
+ 0.424561
+ 0.424561
+ 0.424561
+ 0.424561
+ 0.424805
+ 0.424805
+ 0.424805
+ 0.424805
+ 0.424805
+ 0.424805
+ 0.424805
+ 0.424805
+ 0.424805
+ 0.424805
+ 0.425049
+ 0.425049
+ 0.425049
+ 0.425049
+ 0.425049
+ 0.425049
+ 0.425049
+ 0.425049
+ 0.425049
+ 0.425049
+ 0.425049
+ 0.425293
+ 0.425293
+ 0.425293
+ 0.425293
+ 0.425293
+ 0.425293
+ 0.425293
+ 0.425293
+ 0.425293
+ 0.425293
+ 0.425537
+ 0.425537
+ 0.425537
+ 0.425537
+ 0.425537
+ 0.425537
+ 0.425537
+ 0.425537
+ 0.425537
+ 0.425537
+ 0.425537
+ 0.425781
+ 0.425781
+ 0.425781
+ 0.425781
+ 0.425781
+ 0.425781
+ 0.425781
+ 0.425781
+ 0.425781
+ 0.425781
+ 0.425781
+ 0.426025
+ 0.426025
+ 0.426025
+ 0.426025
+ 0.426025
+ 0.426025
+ 0.426025
+ 0.426025
+ 0.426025
+ 0.426025
+ 0.426270
+ 0.426270
+ 0.426270
+ 0.426270
+ 0.426270
+ 0.426270
+ 0.426270
+ 0.426270
+ 0.426270
+ 0.426270
+ 0.426270
+ 0.426514
+ 0.426514
+ 0.426514
+ 0.426514
+ 0.426514
+ 0.426514
+ 0.426514
+ 0.426514
+ 0.426514
+ 0.426514
+ 0.426514
+ 0.426758
+ 0.426758
+ 0.426758
+ 0.426758
+ 0.426758
+ 0.426758
+ 0.426758
+ 0.426758
+ 0.426758
+ 0.426758
+ 0.427002
+ 0.427002
+ 0.427002
+ 0.427002
+ 0.427002
+ 0.427002
+ 0.427002
+ 0.427002
+ 0.427002
+ 0.427002
+ 0.427002
+ 0.427246
+ 0.427246
+ 0.427246
+ 0.427246
+ 0.427246
+ 0.427246
+ 0.427246
+ 0.427246
+ 0.427246
+ 0.427246
+ 0.427246
+ 0.427490
+ 0.427490
+ 0.427490
+ 0.427490
+ 0.427490
+ 0.427490
+ 0.427490
+ 0.427490
+ 0.427490
+ 0.427490
+ 0.427734
+ 0.427734
+ 0.427734
+ 0.427734
+ 0.427734
+ 0.427734
+ 0.427734
+ 0.427734
+ 0.427734
+ 0.427734
+ 0.427734
+ 0.427979
+ 0.427979
+ 0.427979
+ 0.427979
+ 0.427979
+ 0.427979
+ 0.427979
+ 0.427979
+ 0.427979
+ 0.427979
+ 0.427979
+ 0.428223
+ 0.428223
+ 0.428223
+ 0.428223
+ 0.428223
+ 0.428223
+ 0.428223
+ 0.428223
+ 0.428223
+ 0.428223
+ 0.428467
+ 0.428467
+ 0.428467
+ 0.428467
+ 0.428467
+ 0.428467
+ 0.428467
+ 0.428467
+ 0.428467
+ 0.428467
+ 0.428467
+ 0.428711
+ 0.428711
+ 0.428711
+ 0.428711
+ 0.428711
+ 0.428711
+ 0.428711
+ 0.428711
+ 0.428711
+ 0.428711
+ 0.428711
+ 0.428955
+ 0.428955
+ 0.428955
+ 0.428955
+ 0.428955
+ 0.428955
+ 0.428955
+ 0.428955
+ 0.428955
+ 0.428955
+ 0.428955
+ 0.429199
+ 0.429199
+ 0.429199
+ 0.429199
+ 0.429199
+ 0.429199
+ 0.429199
+ 0.429199
+ 0.429199
+ 0.429199
+ 0.429443
+ 0.429443
+ 0.429443
+ 0.429443
+ 0.429443
+ 0.429443
+ 0.429443
+ 0.429443
+ 0.429443
+ 0.429443
+ 0.429443
+ 0.429688
+ 0.429688
+ 0.429688
+ 0.429688
+ 0.429688
+ 0.429688
+ 0.429688
+ 0.429688
+ 0.429688
+ 0.429688
+ 0.429688
+ 0.429932
+ 0.429932
+ 0.429932
+ 0.429932
+ 0.429932
+ 0.429932
+ 0.429932
+ 0.429932
+ 0.429932
+ 0.429932
+ 0.429932
+ 0.430176
+ 0.430176
+ 0.430176
+ 0.430176
+ 0.430176
+ 0.430176
+ 0.430176
+ 0.430176
+ 0.430176
+ 0.430176
+ 0.430176
+ 0.430420
+ 0.430420
+ 0.430420
+ 0.430420
+ 0.430420
+ 0.430420
+ 0.430420
+ 0.430420
+ 0.430420
+ 0.430420
+ 0.430664
+ 0.430664
+ 0.430664
+ 0.430664
+ 0.430664
+ 0.430664
+ 0.430664
+ 0.430664
+ 0.430664
+ 0.430664
+ 0.430664
+ 0.430908
+ 0.430908
+ 0.430908
+ 0.430908
+ 0.430908
+ 0.430908
+ 0.430908
+ 0.430908
+ 0.430908
+ 0.430908
+ 0.430908
+ 0.431152
+ 0.431152
+ 0.431152
+ 0.431152
+ 0.431152
+ 0.431152
+ 0.431152
+ 0.431152
+ 0.431152
+ 0.431152
+ 0.431152
+ 0.431396
+ 0.431396
+ 0.431396
+ 0.431396
+ 0.431396
+ 0.431396
+ 0.431396
+ 0.431396
+ 0.431396
+ 0.431396
+ 0.431396
+ 0.431641
+ 0.431641
+ 0.431641
+ 0.431641
+ 0.431641
+ 0.431641
+ 0.431641
+ 0.431641
+ 0.431641
+ 0.431641
+ 0.431641
+ 0.431885
+ 0.431885
+ 0.431885
+ 0.431885
+ 0.431885
+ 0.431885
+ 0.431885
+ 0.431885
+ 0.431885
+ 0.431885
+ 0.432129
+ 0.432129
+ 0.432129
+ 0.432129
+ 0.432129
+ 0.432129
+ 0.432129
+ 0.432129
+ 0.432129
+ 0.432129
+ 0.432129
+ 0.432373
+ 0.432373
+ 0.432373
+ 0.432373
+ 0.432373
+ 0.432373
+ 0.432373
+ 0.432373
+ 0.432373
+ 0.432373
+ 0.432373
+ 0.432617
+ 0.432617
+ 0.432617
+ 0.432617
+ 0.432617
+ 0.432617
+ 0.432617
+ 0.432617
+ 0.432617
+ 0.432617
+ 0.432617
+ 0.432861
+ 0.432861
+ 0.432861
+ 0.432861
+ 0.432861
+ 0.432861
+ 0.432861
+ 0.432861
+ 0.432861
+ 0.432861
+ 0.432861
+ 0.433105
+ 0.433105
+ 0.433105
+ 0.433105
+ 0.433105
+ 0.433105
+ 0.433105
+ 0.433105
+ 0.433105
+ 0.433105
+ 0.433105
+ 0.433350
+ 0.433350
+ 0.433350
+ 0.433350
+ 0.433350
+ 0.433350
+ 0.433350
+ 0.433350
+ 0.433350
+ 0.433350
+ 0.433350
+ 0.433594
+ 0.433594
+ 0.433594
+ 0.433594
+ 0.433594
+ 0.433594
+ 0.433594
+ 0.433594
+ 0.433594
+ 0.433594
+ 0.433594
+ 0.433838
+ 0.433838
+ 0.433838
+ 0.433838
+ 0.433838
+ 0.433838
+ 0.433838
+ 0.433838
+ 0.433838
+ 0.433838
+ 0.433838
+ 0.434082
+ 0.434082
+ 0.434082
+ 0.434082
+ 0.434082
+ 0.434082
+ 0.434082
+ 0.434082
+ 0.434082
+ 0.434082
+ 0.434082
+ 0.434326
+ 0.434326
+ 0.434326
+ 0.434326
+ 0.434326
+ 0.434326
+ 0.434326
+ 0.434326
+ 0.434326
+ 0.434326
+ 0.434326
+ 0.434570
+ 0.434570
+ 0.434570
+ 0.434570
+ 0.434570
+ 0.434570
+ 0.434570
+ 0.434570
+ 0.434570
+ 0.434570
+ 0.434570
+ 0.434814
+ 0.434814
+ 0.434814
+ 0.434814
+ 0.434814
+ 0.434814
+ 0.434814
+ 0.434814
+ 0.434814
+ 0.434814
+ 0.434814
+ 0.435059
+ 0.435059
+ 0.435059
+ 0.435059
+ 0.435059
+ 0.435059
+ 0.435059
+ 0.435059
+ 0.435059
+ 0.435059
+ 0.435059
+ 0.435303
+ 0.435303
+ 0.435303
+ 0.435303
+ 0.435303
+ 0.435303
+ 0.435303
+ 0.435303
+ 0.435303
+ 0.435303
+ 0.435303
+ 0.435547
+ 0.435547
+ 0.435547
+ 0.435547
+ 0.435547
+ 0.435547
+ 0.435547
+ 0.435547
+ 0.435547
+ 0.435547
+ 0.435547
+ 0.435791
+ 0.435791
+ 0.435791
+ 0.435791
+ 0.435791
+ 0.435791
+ 0.435791
+ 0.435791
+ 0.435791
+ 0.435791
+ 0.435791
+ 0.436035
+ 0.436035
+ 0.436035
+ 0.436035
+ 0.436035
+ 0.436035
+ 0.436035
+ 0.436035
+ 0.436035
+ 0.436035
+ 0.436035
+ 0.436279
+ 0.436279
+ 0.436279
+ 0.436279
+ 0.436279
+ 0.436279
+ 0.436279
+ 0.436279
+ 0.436279
+ 0.436279
+ 0.436279
+ 0.436523
+ 0.436523
+ 0.436523
+ 0.436523
+ 0.436523
+ 0.436523
+ 0.436523
+ 0.436523
+ 0.436523
+ 0.436523
+ 0.436523
+ 0.436768
+ 0.436768
+ 0.436768
+ 0.436768
+ 0.436768
+ 0.436768
+ 0.436768
+ 0.436768
+ 0.436768
+ 0.436768
+ 0.436768
+ 0.437012
+ 0.437012
+ 0.437012
+ 0.437012
+ 0.437012
+ 0.437012
+ 0.437012
+ 0.437012
+ 0.437012
+ 0.437012
+ 0.437012
+ 0.437256
+ 0.437256
+ 0.437256
+ 0.437256
+ 0.437256
+ 0.437256
+ 0.437256
+ 0.437256
+ 0.437256
+ 0.437256
+ 0.437256
+ 0.437500
+ 0.437500
+ 0.437500
+ 0.437500
+ 0.437500
+ 0.437500
+ 0.437500
+ 0.437500
+ 0.437500
+ 0.437500
+ 0.437500
+ 0.437744
+ 0.437744
+ 0.437744
+ 0.437744
+ 0.437744
+ 0.437744
+ 0.437744
+ 0.437744
+ 0.437744
+ 0.437744
+ 0.437744
+ 0.437988
+ 0.437988
+ 0.437988
+ 0.437988
+ 0.437988
+ 0.437988
+ 0.437988
+ 0.437988
+ 0.437988
+ 0.437988
+ 0.437988
+ 0.438232
+ 0.438232
+ 0.438232
+ 0.438232
+ 0.438232
+ 0.438232
+ 0.438232
+ 0.438232
+ 0.438232
+ 0.438232
+ 0.438232
+ 0.438477
+ 0.438477
+ 0.438477
+ 0.438477
+ 0.438477
+ 0.438477
+ 0.438477
+ 0.438477
+ 0.438477
+ 0.438477
+ 0.438477
+ 0.438477
+ 0.438721
+ 0.438721
+ 0.438721
+ 0.438721
+ 0.438721
+ 0.438721
+ 0.438721
+ 0.438721
+ 0.438721
+ 0.438721
+ 0.438721
+ 0.438965
+ 0.438965
+ 0.438965
+ 0.438965
+ 0.438965
+ 0.438965
+ 0.438965
+ 0.438965
+ 0.438965
+ 0.438965
+ 0.438965
+ 0.439209
+ 0.439209
+ 0.439209
+ 0.439209
+ 0.439209
+ 0.439209
+ 0.439209
+ 0.439209
+ 0.439209
+ 0.439209
+ 0.439209
+ 0.439453
+ 0.439453
+ 0.439453
+ 0.439453
+ 0.439453
+ 0.439453
+ 0.439453
+ 0.439453
+ 0.439453
+ 0.439453
+ 0.439453
+ 0.439697
+ 0.439697
+ 0.439697
+ 0.439697
+ 0.439697
+ 0.439697
+ 0.439697
+ 0.439697
+ 0.439697
+ 0.439697
+ 0.439697
+ 0.439941
+ 0.439941
+ 0.439941
+ 0.439941
+ 0.439941
+ 0.439941
+ 0.439941
+ 0.439941
+ 0.439941
+ 0.439941
+ 0.439941
+ 0.439941
+ 0.440186
+ 0.440186
+ 0.440186
+ 0.440186
+ 0.440186
+ 0.440186
+ 0.440186
+ 0.440186
+ 0.440186
+ 0.440186
+ 0.440186
+ 0.440430
+ 0.440430
+ 0.440430
+ 0.440430
+ 0.440430
+ 0.440430
+ 0.440430
+ 0.440430
+ 0.440430
+ 0.440430
+ 0.440430
+ 0.440674
+ 0.440674
+ 0.440674
+ 0.440674
+ 0.440674
+ 0.440674
+ 0.440674
+ 0.440674
+ 0.440674
+ 0.440674
+ 0.440674
+ 0.440918
+ 0.440918
+ 0.440918
+ 0.440918
+ 0.440918
+ 0.440918
+ 0.440918
+ 0.440918
+ 0.440918
+ 0.440918
+ 0.440918
+ 0.441162
+ 0.441162
+ 0.441162
+ 0.441162
+ 0.441162
+ 0.441162
+ 0.441162
+ 0.441162
+ 0.441162
+ 0.441162
+ 0.441162
+ 0.441162
+ 0.441406
+ 0.441406
+ 0.441406
+ 0.441406
+ 0.441406
+ 0.441406
+ 0.441406
+ 0.441406
+ 0.441406
+ 0.441406
+ 0.441406
+ 0.441650
+ 0.441650
+ 0.441650
+ 0.441650
+ 0.441650
+ 0.441650
+ 0.441650
+ 0.441650
+ 0.441650
+ 0.441650
+ 0.441650
+ 0.441895
+ 0.441895
+ 0.441895
+ 0.441895
+ 0.441895
+ 0.441895
+ 0.441895
+ 0.441895
+ 0.441895
+ 0.441895
+ 0.441895
+ 0.442139
+ 0.442139
+ 0.442139
+ 0.442139
+ 0.442139
+ 0.442139
+ 0.442139
+ 0.442139
+ 0.442139
+ 0.442139
+ 0.442139
+ 0.442139
+ 0.442383
+ 0.442383
+ 0.442383
+ 0.442383
+ 0.442383
+ 0.442383
+ 0.442383
+ 0.442383
+ 0.442383
+ 0.442383
+ 0.442383
+ 0.442627
+ 0.442627
+ 0.442627
+ 0.442627
+ 0.442627
+ 0.442627
+ 0.442627
+ 0.442627
+ 0.442627
+ 0.442627
+ 0.442627
+ 0.442871
+ 0.442871
+ 0.442871
+ 0.442871
+ 0.442871
+ 0.442871
+ 0.442871
+ 0.442871
+ 0.442871
+ 0.442871
+ 0.442871
+ 0.442871
+ 0.443115
+ 0.443115
+ 0.443115
+ 0.443115
+ 0.443115
+ 0.443115
+ 0.443115
+ 0.443115
+ 0.443115
+ 0.443115
+ 0.443115
+ 0.443359
+ 0.443359
+ 0.443359
+ 0.443359
+ 0.443359
+ 0.443359
+ 0.443359
+ 0.443359
+ 0.443359
+ 0.443359
+ 0.443359
+ 0.443604
+ 0.443604
+ 0.443604
+ 0.443604
+ 0.443604
+ 0.443604
+ 0.443604
+ 0.443604
+ 0.443604
+ 0.443604
+ 0.443604
+ 0.443604
+ 0.443848
+ 0.443848
+ 0.443848
+ 0.443848
+ 0.443848
+ 0.443848
+ 0.443848
+ 0.443848
+ 0.443848
+ 0.443848
+ 0.443848
+ 0.444092
+ 0.444092
+ 0.444092
+ 0.444092
+ 0.444092
+ 0.444092
+ 0.444092
+ 0.444092
+ 0.444092
+ 0.444092
+ 0.444092
+ 0.444336
+ 0.444336
+ 0.444336
+ 0.444336
+ 0.444336
+ 0.444336
+ 0.444336
+ 0.444336
+ 0.444336
+ 0.444336
+ 0.444336
+ 0.444336
+ 0.444580
+ 0.444580
+ 0.444580
+ 0.444580
+ 0.444580
+ 0.444580
+ 0.444580
+ 0.444580
+ 0.444580
+ 0.444580
+ 0.444580
+ 0.444824
+ 0.444824
+ 0.444824
+ 0.444824
+ 0.444824
+ 0.444824
+ 0.444824
+ 0.444824
+ 0.444824
+ 0.444824
+ 0.444824
+ 0.444824
+ 0.445068
+ 0.445068
+ 0.445068
+ 0.445068
+ 0.445068
+ 0.445068
+ 0.445068
+ 0.445068
+ 0.445068
+ 0.445068
+ 0.445068
+ 0.445312
+ 0.445312
+ 0.445312
+ 0.445312
+ 0.445312
+ 0.445312
+ 0.445312
+ 0.445312
+ 0.445312
+ 0.445312
+ 0.445312
+ 0.445557
+ 0.445557
+ 0.445557
+ 0.445557
+ 0.445557
+ 0.445557
+ 0.445557
+ 0.445557
+ 0.445557
+ 0.445557
+ 0.445557
+ 0.445557
+ 0.445801
+ 0.445801
+ 0.445801
+ 0.445801
+ 0.445801
+ 0.445801
+ 0.445801
+ 0.445801
+ 0.445801
+ 0.445801
+ 0.445801
+ 0.446045
+ 0.446045
+ 0.446045
+ 0.446045
+ 0.446045
+ 0.446045
+ 0.446045
+ 0.446045
+ 0.446045
+ 0.446045
+ 0.446045
+ 0.446045
+ 0.446289
+ 0.446289
+ 0.446289
+ 0.446289
+ 0.446289
+ 0.446289
+ 0.446289
+ 0.446289
+ 0.446289
+ 0.446289
+ 0.446289
+ 0.446533
+ 0.446533
+ 0.446533
+ 0.446533
+ 0.446533
+ 0.446533
+ 0.446533
+ 0.446533
+ 0.446533
+ 0.446533
+ 0.446533
+ 0.446533
+ 0.446777
+ 0.446777
+ 0.446777
+ 0.446777
+ 0.446777
+ 0.446777
+ 0.446777
+ 0.446777
+ 0.446777
+ 0.446777
+ 0.446777
+ 0.447021
+ 0.447021
+ 0.447021
+ 0.447021
+ 0.447021
+ 0.447021
+ 0.447021
+ 0.447021
+ 0.447021
+ 0.447021
+ 0.447021
+ 0.447021
+ 0.447266
+ 0.447266
+ 0.447266
+ 0.447266
+ 0.447266
+ 0.447266
+ 0.447266
+ 0.447266
+ 0.447266
+ 0.447266
+ 0.447266
+ 0.447510
+ 0.447510
+ 0.447510
+ 0.447510
+ 0.447510
+ 0.447510
+ 0.447510
+ 0.447510
+ 0.447510
+ 0.447510
+ 0.447510
+ 0.447510
+ 0.447754
+ 0.447754
+ 0.447754
+ 0.447754
+ 0.447754
+ 0.447754
+ 0.447754
+ 0.447754
+ 0.447754
+ 0.447754
+ 0.447754
+ 0.447998
+ 0.447998
+ 0.447998
+ 0.447998
+ 0.447998
+ 0.447998
+ 0.447998
+ 0.447998
+ 0.447998
+ 0.447998
+ 0.447998
+ 0.447998
+ 0.448242
+ 0.448242
+ 0.448242
+ 0.448242
+ 0.448242
+ 0.448242
+ 0.448242
+ 0.448242
+ 0.448242
+ 0.448242
+ 0.448242
+ 0.448486
+ 0.448486
+ 0.448486
+ 0.448486
+ 0.448486
+ 0.448486
+ 0.448486
+ 0.448486
+ 0.448486
+ 0.448486
+ 0.448486
+ 0.448486
+ 0.448730
+ 0.448730
+ 0.448730
+ 0.448730
+ 0.448730
+ 0.448730
+ 0.448730
+ 0.448730
+ 0.448730
+ 0.448730
+ 0.448730
+ 0.448975
+ 0.448975
+ 0.448975
+ 0.448975
+ 0.448975
+ 0.448975
+ 0.448975
+ 0.448975
+ 0.448975
+ 0.448975
+ 0.448975
+ 0.448975
+ 0.449219
+ 0.449219
+ 0.449219
+ 0.449219
+ 0.449219
+ 0.449219
+ 0.449219
+ 0.449219
+ 0.449219
+ 0.449219
+ 0.449219
+ 0.449463
+ 0.449463
+ 0.449463
+ 0.449463
+ 0.449463
+ 0.449463
+ 0.449463
+ 0.449463
+ 0.449463
+ 0.449463
+ 0.449463
+ 0.449463
+ 0.449707
+ 0.449707
+ 0.449707
+ 0.449707
+ 0.449707
+ 0.449707
+ 0.449707
+ 0.449707
+ 0.449707
+ 0.449707
+ 0.449707
+ 0.449707
+ 0.449951
+ 0.449951
+ 0.449951
+ 0.449951
+ 0.449951
+ 0.449951
+ 0.449951
+ 0.449951
+ 0.449951
+ 0.449951
+ 0.449951
+ 0.450195
+ 0.450195
+ 0.450195
+ 0.450195
+ 0.450195
+ 0.450195
+ 0.450195
+ 0.450195
+ 0.450195
+ 0.450195
+ 0.450195
+ 0.450195
+ 0.450439
+ 0.450439
+ 0.450439
+ 0.450439
+ 0.450439
+ 0.450439
+ 0.450439
+ 0.450439
+ 0.450439
+ 0.450439
+ 0.450439
+ 0.450684
+ 0.450684
+ 0.450684
+ 0.450684
+ 0.450684
+ 0.450684
+ 0.450684
+ 0.450684
+ 0.450684
+ 0.450684
+ 0.450684
+ 0.450684
+ 0.450928
+ 0.450928
+ 0.450928
+ 0.450928
+ 0.450928
+ 0.450928
+ 0.450928
+ 0.450928
+ 0.450928
+ 0.450928
+ 0.450928
+ 0.450928
+ 0.451172
+ 0.451172
+ 0.451172
+ 0.451172
+ 0.451172
+ 0.451172
+ 0.451172
+ 0.451172
+ 0.451172
+ 0.451172
+ 0.451172
+ 0.451416
+ 0.451416
+ 0.451416
+ 0.451416
+ 0.451416
+ 0.451416
+ 0.451416
+ 0.451416
+ 0.451416
+ 0.451416
+ 0.451416
+ 0.451416
+ 0.451660
+ 0.451660
+ 0.451660
+ 0.451660
+ 0.451660
+ 0.451660
+ 0.451660
+ 0.451660
+ 0.451660
+ 0.451660
+ 0.451660
+ 0.451660
+ 0.451904
+ 0.451904
+ 0.451904
+ 0.451904
+ 0.451904
+ 0.451904
+ 0.451904
+ 0.451904
+ 0.451904
+ 0.451904
+ 0.451904
+ 0.452148
+ 0.452148
+ 0.452148
+ 0.452148
+ 0.452148
+ 0.452148
+ 0.452148
+ 0.452148
+ 0.452148
+ 0.452148
+ 0.452148
+ 0.452148
+ 0.452393
+ 0.452393
+ 0.452393
+ 0.452393
+ 0.452393
+ 0.452393
+ 0.452393
+ 0.452393
+ 0.452393
+ 0.452393
+ 0.452393
+ 0.452393
+ 0.452637
+ 0.452637
+ 0.452637
+ 0.452637
+ 0.452637
+ 0.452637
+ 0.452637
+ 0.452637
+ 0.452637
+ 0.452637
+ 0.452637
+ 0.452881
+ 0.452881
+ 0.452881
+ 0.452881
+ 0.452881
+ 0.452881
+ 0.452881
+ 0.452881
+ 0.452881
+ 0.452881
+ 0.452881
+ 0.452881
+ 0.453125
+ 0.453125
+ 0.453125
+ 0.453125
+ 0.453125
+ 0.453125
+ 0.453125
+ 0.453125
+ 0.453125
+ 0.453125
+ 0.453125
+ 0.453125
+ 0.453369
+ 0.453369
+ 0.453369
+ 0.453369
+ 0.453369
+ 0.453369
+ 0.453369
+ 0.453369
+ 0.453369
+ 0.453369
+ 0.453369
+ 0.453369
+ 0.453613
+ 0.453613
+ 0.453613
+ 0.453613
+ 0.453613
+ 0.453613
+ 0.453613
+ 0.453613
+ 0.453613
+ 0.453613
+ 0.453613
+ 0.453857
+ 0.453857
+ 0.453857
+ 0.453857
+ 0.453857
+ 0.453857
+ 0.453857
+ 0.453857
+ 0.453857
+ 0.453857
+ 0.453857
+ 0.453857
+ 0.454102
+ 0.454102
+ 0.454102
+ 0.454102
+ 0.454102
+ 0.454102
+ 0.454102
+ 0.454102
+ 0.454102
+ 0.454102
+ 0.454102
+ 0.454102
+ 0.454346
+ 0.454346
+ 0.454346
+ 0.454346
+ 0.454346
+ 0.454346
+ 0.454346
+ 0.454346
+ 0.454346
+ 0.454346
+ 0.454346
+ 0.454346
+ 0.454590
+ 0.454590
+ 0.454590
+ 0.454590
+ 0.454590
+ 0.454590
+ 0.454590
+ 0.454590
+ 0.454590
+ 0.454590
+ 0.454590
+ 0.454590
+ 0.454834
+ 0.454834
+ 0.454834
+ 0.454834
+ 0.454834
+ 0.454834
+ 0.454834
+ 0.454834
+ 0.454834
+ 0.454834
+ 0.454834
+ 0.455078
+ 0.455078
+ 0.455078
+ 0.455078
+ 0.455078
+ 0.455078
+ 0.455078
+ 0.455078
+ 0.455078
+ 0.455078
+ 0.455078
+ 0.455078
+ 0.455322
+ 0.455322
+ 0.455322
+ 0.455322
+ 0.455322
+ 0.455322
+ 0.455322
+ 0.455322
+ 0.455322
+ 0.455322
+ 0.455322
+ 0.455322
+ 0.455566
+ 0.455566
+ 0.455566
+ 0.455566
+ 0.455566
+ 0.455566
+ 0.455566
+ 0.455566
+ 0.455566
+ 0.455566
+ 0.455566
+ 0.455566
+ 0.455811
+ 0.455811
+ 0.455811
+ 0.455811
+ 0.455811
+ 0.455811
+ 0.455811
+ 0.455811
+ 0.455811
+ 0.455811
+ 0.455811
+ 0.455811
+ 0.456055
+ 0.456055
+ 0.456055
+ 0.456055
+ 0.456055
+ 0.456055
+ 0.456055
+ 0.456055
+ 0.456055
+ 0.456055
+ 0.456055
+ 0.456055
+ 0.456299
+ 0.456299
+ 0.456299
+ 0.456299
+ 0.456299
+ 0.456299
+ 0.456299
+ 0.456299
+ 0.456299
+ 0.456299
+ 0.456299
+ 0.456543
+ 0.456543
+ 0.456543
+ 0.456543
+ 0.456543
+ 0.456543
+ 0.456543
+ 0.456543
+ 0.456543
+ 0.456543
+ 0.456543
+ 0.456543
+ 0.456787
+ 0.456787
+ 0.456787
+ 0.456787
+ 0.456787
+ 0.456787
+ 0.456787
+ 0.456787
+ 0.456787
+ 0.456787
+ 0.456787
+ 0.456787
+ 0.457031
+ 0.457031
+ 0.457031
+ 0.457031
+ 0.457031
+ 0.457031
+ 0.457031
+ 0.457031
+ 0.457031
+ 0.457031
+ 0.457031
+ 0.457031
+ 0.457275
+ 0.457275
+ 0.457275
+ 0.457275
+ 0.457275
+ 0.457275
+ 0.457275
+ 0.457275
+ 0.457275
+ 0.457275
+ 0.457275
+ 0.457275
+ 0.457520
+ 0.457520
+ 0.457520
+ 0.457520
+ 0.457520
+ 0.457520
+ 0.457520
+ 0.457520
+ 0.457520
+ 0.457520
+ 0.457520
+ 0.457520
+ 0.457764
+ 0.457764
+ 0.457764
+ 0.457764
+ 0.457764
+ 0.457764
+ 0.457764
+ 0.457764
+ 0.457764
+ 0.457764
+ 0.457764
+ 0.457764
+ 0.458008
+ 0.458008
+ 0.458008
+ 0.458008
+ 0.458008
+ 0.458008
+ 0.458008
+ 0.458008
+ 0.458008
+ 0.458008
+ 0.458008
+ 0.458008
+ 0.458252
+ 0.458252
+ 0.458252
+ 0.458252
+ 0.458252
+ 0.458252
+ 0.458252
+ 0.458252
+ 0.458252
+ 0.458252
+ 0.458252
+ 0.458252
+ 0.458496
+ 0.458496
+ 0.458496
+ 0.458496
+ 0.458496
+ 0.458496
+ 0.458496
+ 0.458496
+ 0.458496
+ 0.458496
+ 0.458496
+ 0.458496
+ 0.458740
+ 0.458740
+ 0.458740
+ 0.458740
+ 0.458740
+ 0.458740
+ 0.458740
+ 0.458740
+ 0.458740
+ 0.458740
+ 0.458740
+ 0.458740
+ 0.458984
+ 0.458984
+ 0.458984
+ 0.458984
+ 0.458984
+ 0.458984
+ 0.458984
+ 0.458984
+ 0.458984
+ 0.458984
+ 0.458984
+ 0.458984
+ 0.459229
+ 0.459229
+ 0.459229
+ 0.459229
+ 0.459229
+ 0.459229
+ 0.459229
+ 0.459229
+ 0.459229
+ 0.459229
+ 0.459229
+ 0.459229
+ 0.459473
+ 0.459473
+ 0.459473
+ 0.459473
+ 0.459473
+ 0.459473
+ 0.459473
+ 0.459473
+ 0.459473
+ 0.459473
+ 0.459473
+ 0.459473
+ 0.459717
+ 0.459717
+ 0.459717
+ 0.459717
+ 0.459717
+ 0.459717
+ 0.459717
+ 0.459717
+ 0.459717
+ 0.459717
+ 0.459717
+ 0.459717
+ 0.459961
+ 0.459961
+ 0.459961
+ 0.459961
+ 0.459961
+ 0.459961
+ 0.459961
+ 0.459961
+ 0.459961
+ 0.459961
+ 0.459961
+ 0.459961
+ 0.460205
+ 0.460205
+ 0.460205
+ 0.460205
+ 0.460205
+ 0.460205
+ 0.460205
+ 0.460205
+ 0.460205
+ 0.460205
+ 0.460205
+ 0.460205
+ 0.460449
+ 0.460449
+ 0.460449
+ 0.460449
+ 0.460449
+ 0.460449
+ 0.460449
+ 0.460449
+ 0.460449
+ 0.460449
+ 0.460449
+ 0.460449
+ 0.460693
+ 0.460693
+ 0.460693
+ 0.460693
+ 0.460693
+ 0.460693
+ 0.460693
+ 0.460693
+ 0.460693
+ 0.460693
+ 0.460693
+ 0.460693
+ 0.460938
+ 0.460938
+ 0.460938
+ 0.460938
+ 0.460938
+ 0.460938
+ 0.460938
+ 0.460938
+ 0.460938
+ 0.460938
+ 0.460938
+ 0.460938
+ 0.461182
+ 0.461182
+ 0.461182
+ 0.461182
+ 0.461182
+ 0.461182
+ 0.461182
+ 0.461182
+ 0.461182
+ 0.461182
+ 0.461182
+ 0.461182
+ 0.461426
+ 0.461426
+ 0.461426
+ 0.461426
+ 0.461426
+ 0.461426
+ 0.461426
+ 0.461426
+ 0.461426
+ 0.461426
+ 0.461426
+ 0.461426
+ 0.461670
+ 0.461670
+ 0.461670
+ 0.461670
+ 0.461670
+ 0.461670
+ 0.461670
+ 0.461670
+ 0.461670
+ 0.461670
+ 0.461670
+ 0.461670
+ 0.461914
+ 0.461914
+ 0.461914
+ 0.461914
+ 0.461914
+ 0.461914
+ 0.461914
+ 0.461914
+ 0.461914
+ 0.461914
+ 0.461914
+ 0.461914
+ 0.462158
+ 0.462158
+ 0.462158
+ 0.462158
+ 0.462158
+ 0.462158
+ 0.462158
+ 0.462158
+ 0.462158
+ 0.462158
+ 0.462158
+ 0.462158
+ 0.462402
+ 0.462402
+ 0.462402
+ 0.462402
+ 0.462402
+ 0.462402
+ 0.462402
+ 0.462402
+ 0.462402
+ 0.462402
+ 0.462402
+ 0.462402
+ 0.462646
+ 0.462646
+ 0.462646
+ 0.462646
+ 0.462646
+ 0.462646
+ 0.462646
+ 0.462646
+ 0.462646
+ 0.462646
+ 0.462646
+ 0.462646
+ 0.462646
+ 0.462891
+ 0.462891
+ 0.462891
+ 0.462891
+ 0.462891
+ 0.462891
+ 0.462891
+ 0.462891
+ 0.462891
+ 0.462891
+ 0.462891
+ 0.462891
+ 0.463135
+ 0.463135
+ 0.463135
+ 0.463135
+ 0.463135
+ 0.463135
+ 0.463135
+ 0.463135
+ 0.463135
+ 0.463135
+ 0.463135
+ 0.463135
+ 0.463379
+ 0.463379
+ 0.463379
+ 0.463379
+ 0.463379
+ 0.463379
+ 0.463379
+ 0.463379
+ 0.463379
+ 0.463379
+ 0.463379
+ 0.463379
+ 0.463623
+ 0.463623
+ 0.463623
+ 0.463623
+ 0.463623
+ 0.463623
+ 0.463623
+ 0.463623
+ 0.463623
+ 0.463623
+ 0.463623
+ 0.463623
+ 0.463867
+ 0.463867
+ 0.463867
+ 0.463867
+ 0.463867
+ 0.463867
+ 0.463867
+ 0.463867
+ 0.463867
+ 0.463867
+ 0.463867
+ 0.463867
+ 0.464111
+ 0.464111
+ 0.464111
+ 0.464111
+ 0.464111
+ 0.464111
+ 0.464111
+ 0.464111
+ 0.464111
+ 0.464111
+ 0.464111
+ 0.464111
+ 0.464111
+ 0.464355
+ 0.464355
+ 0.464355
+ 0.464355
+ 0.464355
+ 0.464355
+ 0.464355
+ 0.464355
+ 0.464355
+ 0.464355
+ 0.464355
+ 0.464355
+ 0.464600
+ 0.464600
+ 0.464600
+ 0.464600
+ 0.464600
+ 0.464600
+ 0.464600
+ 0.464600
+ 0.464600
+ 0.464600
+ 0.464600
+ 0.464600
+ 0.464844
+ 0.464844
+ 0.464844
+ 0.464844
+ 0.464844
+ 0.464844
+ 0.464844
+ 0.464844
+ 0.464844
+ 0.464844
+ 0.464844
+ 0.464844
+ 0.465088
+ 0.465088
+ 0.465088
+ 0.465088
+ 0.465088
+ 0.465088
+ 0.465088
+ 0.465088
+ 0.465088
+ 0.465088
+ 0.465088
+ 0.465088
+ 0.465332
+ 0.465332
+ 0.465332
+ 0.465332
+ 0.465332
+ 0.465332
+ 0.465332
+ 0.465332
+ 0.465332
+ 0.465332
+ 0.465332
+ 0.465332
+ 0.465332
+ 0.465576
+ 0.465576
+ 0.465576
+ 0.465576
+ 0.465576
+ 0.465576
+ 0.465576
+ 0.465576
+ 0.465576
+ 0.465576
+ 0.465576
+ 0.465576
+ 0.465820
+ 0.465820
+ 0.465820
+ 0.465820
+ 0.465820
+ 0.465820
+ 0.465820
+ 0.465820
+ 0.465820
+ 0.465820
+ 0.465820
+ 0.465820
+ 0.466064
+ 0.466064
+ 0.466064
+ 0.466064
+ 0.466064
+ 0.466064
+ 0.466064
+ 0.466064
+ 0.466064
+ 0.466064
+ 0.466064
+ 0.466064
+ 0.466309
+ 0.466309
+ 0.466309
+ 0.466309
+ 0.466309
+ 0.466309
+ 0.466309
+ 0.466309
+ 0.466309
+ 0.466309
+ 0.466309
+ 0.466309
+ 0.466309
+ 0.466553
+ 0.466553
+ 0.466553
+ 0.466553
+ 0.466553
+ 0.466553
+ 0.466553
+ 0.466553
+ 0.466553
+ 0.466553
+ 0.466553
+ 0.466553
+ 0.466797
+ 0.466797
+ 0.466797
+ 0.466797
+ 0.466797
+ 0.466797
+ 0.466797
+ 0.466797
+ 0.466797
+ 0.466797
+ 0.466797
+ 0.466797
+ 0.467041
+ 0.467041
+ 0.467041
+ 0.467041
+ 0.467041
+ 0.467041
+ 0.467041
+ 0.467041
+ 0.467041
+ 0.467041
+ 0.467041
+ 0.467041
+ 0.467041
+ 0.467285
+ 0.467285
+ 0.467285
+ 0.467285
+ 0.467285
+ 0.467285
+ 0.467285
+ 0.467285
+ 0.467285
+ 0.467285
+ 0.467285
+ 0.467285
+ 0.467529
+ 0.467529
+ 0.467529
+ 0.467529
+ 0.467529
+ 0.467529
+ 0.467529
+ 0.467529
+ 0.467529
+ 0.467529
+ 0.467529
+ 0.467529
+ 0.467773
+ 0.467773
+ 0.467773
+ 0.467773
+ 0.467773
+ 0.467773
+ 0.467773
+ 0.467773
+ 0.467773
+ 0.467773
+ 0.467773
+ 0.467773
+ 0.467773
+ 0.468018
+ 0.468018
+ 0.468018
+ 0.468018
+ 0.468018
+ 0.468018
+ 0.468018
+ 0.468018
+ 0.468018
+ 0.468018
+ 0.468018
+ 0.468018
+ 0.468262
+ 0.468262
+ 0.468262
+ 0.468262
+ 0.468262
+ 0.468262
+ 0.468262
+ 0.468262
+ 0.468262
+ 0.468262
+ 0.468262
+ 0.468262
+ 0.468506
+ 0.468506
+ 0.468506
+ 0.468506
+ 0.468506
+ 0.468506
+ 0.468506
+ 0.468506
+ 0.468506
+ 0.468506
+ 0.468506
+ 0.468506
+ 0.468506
+ 0.468750
+ 0.468750
+ 0.468750
+ 0.468750
+ 0.468750
+ 0.468750
+ 0.468750
+ 0.468750
+ 0.468750
+ 0.468750
+ 0.468750
+ 0.468750
+ 0.468994
+ 0.468994
+ 0.468994
+ 0.468994
+ 0.468994
+ 0.468994
+ 0.468994
+ 0.468994
+ 0.468994
+ 0.468994
+ 0.468994
+ 0.468994
+ 0.468994
+ 0.469238
+ 0.469238
+ 0.469238
+ 0.469238
+ 0.469238
+ 0.469238
+ 0.469238
+ 0.469238
+ 0.469238
+ 0.469238
+ 0.469238
+ 0.469238
+ 0.469482
+ 0.469482
+ 0.469482
+ 0.469482
+ 0.469482
+ 0.469482
+ 0.469482
+ 0.469482
+ 0.469482
+ 0.469482
+ 0.469482
+ 0.469482
+ 0.469727
+ 0.469727
+ 0.469727
+ 0.469727
+ 0.469727
+ 0.469727
+ 0.469727
+ 0.469727
+ 0.469727
+ 0.469727
+ 0.469727
+ 0.469727
+ 0.469727
+ 0.469971
+ 0.469971
+ 0.469971
+ 0.469971
+ 0.469971
+ 0.469971
+ 0.469971
+ 0.469971
+ 0.469971
+ 0.469971
+ 0.469971
+ 0.469971
+ 0.470215
+ 0.470215
+ 0.470215
+ 0.470215
+ 0.470215
+ 0.470215
+ 0.470215
+ 0.470215
+ 0.470215
+ 0.470215
+ 0.470215
+ 0.470215
+ 0.470215
+ 0.470459
+ 0.470459
+ 0.470459
+ 0.470459
+ 0.470459
+ 0.470459
+ 0.470459
+ 0.470459
+ 0.470459
+ 0.470459
+ 0.470459
+ 0.470459
+ 0.470703
+ 0.470703
+ 0.470703
+ 0.470703
+ 0.470703
+ 0.470703
+ 0.470703
+ 0.470703
+ 0.470703
+ 0.470703
+ 0.470703
+ 0.470703
+ 0.470703
+ 0.470947
+ 0.470947
+ 0.470947
+ 0.470947
+ 0.470947
+ 0.470947
+ 0.470947
+ 0.470947
+ 0.470947
+ 0.470947
+ 0.470947
+ 0.470947
+ 0.471191
+ 0.471191
+ 0.471191
+ 0.471191
+ 0.471191
+ 0.471191
+ 0.471191
+ 0.471191
+ 0.471191
+ 0.471191
+ 0.471191
+ 0.471191
+ 0.471191
+ 0.471436
+ 0.471436
+ 0.471436
+ 0.471436
+ 0.471436
+ 0.471436
+ 0.471436
+ 0.471436
+ 0.471436
+ 0.471436
+ 0.471436
+ 0.471436
+ 0.471680
+ 0.471680
+ 0.471680
+ 0.471680
+ 0.471680
+ 0.471680
+ 0.471680
+ 0.471680
+ 0.471680
+ 0.471680
+ 0.471680
+ 0.471680
+ 0.471680
+ 0.471924
+ 0.471924
+ 0.471924
+ 0.471924
+ 0.471924
+ 0.471924
+ 0.471924
+ 0.471924
+ 0.471924
+ 0.471924
+ 0.471924
+ 0.471924
+ 0.472168
+ 0.472168
+ 0.472168
+ 0.472168
+ 0.472168
+ 0.472168
+ 0.472168
+ 0.472168
+ 0.472168
+ 0.472168
+ 0.472168
+ 0.472168
+ 0.472168
+ 0.472412
+ 0.472412
+ 0.472412
+ 0.472412
+ 0.472412
+ 0.472412
+ 0.472412
+ 0.472412
+ 0.472412
+ 0.472412
+ 0.472412
+ 0.472412
+ 0.472656
+ 0.472656
+ 0.472656
+ 0.472656
+ 0.472656
+ 0.472656
+ 0.472656
+ 0.472656
+ 0.472656
+ 0.472656
+ 0.472656
+ 0.472656
+ 0.472656
+ 0.472900
+ 0.472900
+ 0.472900
+ 0.472900
+ 0.472900
+ 0.472900
+ 0.472900
+ 0.472900
+ 0.472900
+ 0.472900
+ 0.472900
+ 0.472900
+ 0.473145
+ 0.473145
+ 0.473145
+ 0.473145
+ 0.473145
+ 0.473145
+ 0.473145
+ 0.473145
+ 0.473145
+ 0.473145
+ 0.473145
+ 0.473145
+ 0.473145
+ 0.473389
+ 0.473389
+ 0.473389
+ 0.473389
+ 0.473389
+ 0.473389
+ 0.473389
+ 0.473389
+ 0.473389
+ 0.473389
+ 0.473389
+ 0.473389
+ 0.473389
+ 0.473633
+ 0.473633
+ 0.473633
+ 0.473633
+ 0.473633
+ 0.473633
+ 0.473633
+ 0.473633
+ 0.473633
+ 0.473633
+ 0.473633
+ 0.473633
+ 0.473877
+ 0.473877
+ 0.473877
+ 0.473877
+ 0.473877
+ 0.473877
+ 0.473877
+ 0.473877
+ 0.473877
+ 0.473877
+ 0.473877
+ 0.473877
+ 0.473877
+ 0.474121
+ 0.474121
+ 0.474121
+ 0.474121
+ 0.474121
+ 0.474121
+ 0.474121
+ 0.474121
+ 0.474121
+ 0.474121
+ 0.474121
+ 0.474121
+ 0.474365
+ 0.474365
+ 0.474365
+ 0.474365
+ 0.474365
+ 0.474365
+ 0.474365
+ 0.474365
+ 0.474365
+ 0.474365
+ 0.474365
+ 0.474365
+ 0.474365
+ 0.474609
+ 0.474609
+ 0.474609
+ 0.474609
+ 0.474609
+ 0.474609
+ 0.474609
+ 0.474609
+ 0.474609
+ 0.474609
+ 0.474609
+ 0.474609
+ 0.474609
+ 0.474854
+ 0.474854
+ 0.474854
+ 0.474854
+ 0.474854
+ 0.474854
+ 0.474854
+ 0.474854
+ 0.474854
+ 0.474854
+ 0.474854
+ 0.474854
+ 0.475098
+ 0.475098
+ 0.475098
+ 0.475098
+ 0.475098
+ 0.475098
+ 0.475098
+ 0.475098
+ 0.475098
+ 0.475098
+ 0.475098
+ 0.475098
+ 0.475098
+ 0.475342
+ 0.475342
+ 0.475342
+ 0.475342
+ 0.475342
+ 0.475342
+ 0.475342
+ 0.475342
+ 0.475342
+ 0.475342
+ 0.475342
+ 0.475342
+ 0.475342
+ 0.475586
+ 0.475586
+ 0.475586
+ 0.475586
+ 0.475586
+ 0.475586
+ 0.475586
+ 0.475586
+ 0.475586
+ 0.475586
+ 0.475586
+ 0.475586
+ 0.475830
+ 0.475830
+ 0.475830
+ 0.475830
+ 0.475830
+ 0.475830
+ 0.475830
+ 0.475830
+ 0.475830
+ 0.475830
+ 0.475830
+ 0.475830
+ 0.475830
+ 0.476074
+ 0.476074
+ 0.476074
+ 0.476074
+ 0.476074
+ 0.476074
+ 0.476074
+ 0.476074
+ 0.476074
+ 0.476074
+ 0.476074
+ 0.476074
+ 0.476074
+ 0.476318
+ 0.476318
+ 0.476318
+ 0.476318
+ 0.476318
+ 0.476318
+ 0.476318
+ 0.476318
+ 0.476318
+ 0.476318
+ 0.476318
+ 0.476318
+ 0.476562
+ 0.476562
+ 0.476562
+ 0.476562
+ 0.476562
+ 0.476562
+ 0.476562
+ 0.476562
+ 0.476562
+ 0.476562
+ 0.476562
+ 0.476562
+ 0.476562
+ 0.476807
+ 0.476807
+ 0.476807
+ 0.476807
+ 0.476807
+ 0.476807
+ 0.476807
+ 0.476807
+ 0.476807
+ 0.476807
+ 0.476807
+ 0.476807
+ 0.476807
+ 0.477051
+ 0.477051
+ 0.477051
+ 0.477051
+ 0.477051
+ 0.477051
+ 0.477051
+ 0.477051
+ 0.477051
+ 0.477051
+ 0.477051
+ 0.477051
+ 0.477051
+ 0.477295
+ 0.477295
+ 0.477295
+ 0.477295
+ 0.477295
+ 0.477295
+ 0.477295
+ 0.477295
+ 0.477295
+ 0.477295
+ 0.477295
+ 0.477295
+ 0.477539
+ 0.477539
+ 0.477539
+ 0.477539
+ 0.477539
+ 0.477539
+ 0.477539
+ 0.477539
+ 0.477539
+ 0.477539
+ 0.477539
+ 0.477539
+ 0.477539
+ 0.477783
+ 0.477783
+ 0.477783
+ 0.477783
+ 0.477783
+ 0.477783
+ 0.477783
+ 0.477783
+ 0.477783
+ 0.477783
+ 0.477783
+ 0.477783
+ 0.477783
+ 0.478027
+ 0.478027
+ 0.478027
+ 0.478027
+ 0.478027
+ 0.478027
+ 0.478027
+ 0.478027
+ 0.478027
+ 0.478027
+ 0.478027
+ 0.478027
+ 0.478027
+ 0.478271
+ 0.478271
+ 0.478271
+ 0.478271
+ 0.478271
+ 0.478271
+ 0.478271
+ 0.478271
+ 0.478271
+ 0.478271
+ 0.478271
+ 0.478271
+ 0.478516
+ 0.478516
+ 0.478516
+ 0.478516
+ 0.478516
+ 0.478516
+ 0.478516
+ 0.478516
+ 0.478516
+ 0.478516
+ 0.478516
+ 0.478516
+ 0.478516
+ 0.478760
+ 0.478760
+ 0.478760
+ 0.478760
+ 0.478760
+ 0.478760
+ 0.478760
+ 0.478760
+ 0.478760
+ 0.478760
+ 0.478760
+ 0.478760
+ 0.478760
+ 0.479004
+ 0.479004
+ 0.479004
+ 0.479004
+ 0.479004
+ 0.479004
+ 0.479004
+ 0.479004
+ 0.479004
+ 0.479004
+ 0.479004
+ 0.479004
+ 0.479004
+ 0.479248
+ 0.479248
+ 0.479248
+ 0.479248
+ 0.479248
+ 0.479248
+ 0.479248
+ 0.479248
+ 0.479248
+ 0.479248
+ 0.479248
+ 0.479248
+ 0.479248
+ 0.479492
+ 0.479492
+ 0.479492
+ 0.479492
+ 0.479492
+ 0.479492
+ 0.479492
+ 0.479492
+ 0.479492
+ 0.479492
+ 0.479492
+ 0.479492
+ 0.479492
+ 0.479736
+ 0.479736
+ 0.479736
+ 0.479736
+ 0.479736
+ 0.479736
+ 0.479736
+ 0.479736
+ 0.479736
+ 0.479736
+ 0.479736
+ 0.479736
+ 0.479980
+ 0.479980
+ 0.479980
+ 0.479980
+ 0.479980
+ 0.479980
+ 0.479980
+ 0.479980
+ 0.479980
+ 0.479980
+ 0.479980
+ 0.479980
+ 0.479980
+ 0.480225
+ 0.480225
+ 0.480225
+ 0.480225
+ 0.480225
+ 0.480225
+ 0.480225
+ 0.480225
+ 0.480225
+ 0.480225
+ 0.480225
+ 0.480225
+ 0.480225
+ 0.480469
+ 0.480469
+ 0.480469
+ 0.480469
+ 0.480469
+ 0.480469
+ 0.480469
+ 0.480469
+ 0.480469
+ 0.480469
+ 0.480469
+ 0.480469
+ 0.480469
+ 0.480713
+ 0.480713
+ 0.480713
+ 0.480713
+ 0.480713
+ 0.480713
+ 0.480713
+ 0.480713
+ 0.480713
+ 0.480713
+ 0.480713
+ 0.480713
+ 0.480713
+ 0.480957
+ 0.480957
+ 0.480957
+ 0.480957
+ 0.480957
+ 0.480957
+ 0.480957
+ 0.480957
+ 0.480957
+ 0.480957
+ 0.480957
+ 0.480957
+ 0.480957
+ 0.481201
+ 0.481201
+ 0.481201
+ 0.481201
+ 0.481201
+ 0.481201
+ 0.481201
+ 0.481201
+ 0.481201
+ 0.481201
+ 0.481201
+ 0.481201
+ 0.481201
+ 0.481445
+ 0.481445
+ 0.481445
+ 0.481445
+ 0.481445
+ 0.481445
+ 0.481445
+ 0.481445
+ 0.481445
+ 0.481445
+ 0.481445
+ 0.481445
+ 0.481445
+ 0.481689
+ 0.481689
+ 0.481689
+ 0.481689
+ 0.481689
+ 0.481689
+ 0.481689
+ 0.481689
+ 0.481689
+ 0.481689
+ 0.481689
+ 0.481689
+ 0.481689
+ 0.481934
+ 0.481934
+ 0.481934
+ 0.481934
+ 0.481934
+ 0.481934
+ 0.481934
+ 0.481934
+ 0.481934
+ 0.481934
+ 0.481934
+ 0.481934
+ 0.481934
+ 0.482178
+ 0.482178
+ 0.482178
+ 0.482178
+ 0.482178
+ 0.482178
+ 0.482178
+ 0.482178
+ 0.482178
+ 0.482178
+ 0.482178
+ 0.482178
+ 0.482178
+ 0.482422
+ 0.482422
+ 0.482422
+ 0.482422
+ 0.482422
+ 0.482422
+ 0.482422
+ 0.482422
+ 0.482422
+ 0.482422
+ 0.482422
+ 0.482422
+ 0.482422
+ 0.482666
+ 0.482666
+ 0.482666
+ 0.482666
+ 0.482666
+ 0.482666
+ 0.482666
+ 0.482666
+ 0.482666
+ 0.482666
+ 0.482666
+ 0.482666
+ 0.482666
+ 0.482910
+ 0.482910
+ 0.482910
+ 0.482910
+ 0.482910
+ 0.482910
+ 0.482910
+ 0.482910
+ 0.482910
+ 0.482910
+ 0.482910
+ 0.482910
+ 0.482910
+ 0.483154
+ 0.483154
+ 0.483154
+ 0.483154
+ 0.483154
+ 0.483154
+ 0.483154
+ 0.483154
+ 0.483154
+ 0.483154
+ 0.483154
+ 0.483154
+ 0.483154
+ 0.483398
+ 0.483398
+ 0.483398
+ 0.483398
+ 0.483398
+ 0.483398
+ 0.483398
+ 0.483398
+ 0.483398
+ 0.483398
+ 0.483398
+ 0.483398
+ 0.483398
+ 0.483643
+ 0.483643
+ 0.483643
+ 0.483643
+ 0.483643
+ 0.483643
+ 0.483643
+ 0.483643
+ 0.483643
+ 0.483643
+ 0.483643
+ 0.483643
+ 0.483643
+ 0.483887
+ 0.483887
+ 0.483887
+ 0.483887
+ 0.483887
+ 0.483887
+ 0.483887
+ 0.483887
+ 0.483887
+ 0.483887
+ 0.483887
+ 0.483887
+ 0.483887
+ 0.484131
+ 0.484131
+ 0.484131
+ 0.484131
+ 0.484131
+ 0.484131
+ 0.484131
+ 0.484131
+ 0.484131
+ 0.484131
+ 0.484131
+ 0.484131
+ 0.484131
+ 0.484375
+ 0.484375
+ 0.484375
+ 0.484375
+ 0.484375
+ 0.484375
+ 0.484375
+ 0.484375
+ 0.484375
+ 0.484375
+ 0.484375
+ 0.484375
+ 0.484375
+ 0.484619
+ 0.484619
+ 0.484619
+ 0.484619
+ 0.484619
+ 0.484619
+ 0.484619
+ 0.484619
+ 0.484619
+ 0.484619
+ 0.484619
+ 0.484619
+ 0.484619
+ 0.484863
+ 0.484863
+ 0.484863
+ 0.484863
+ 0.484863
+ 0.484863
+ 0.484863
+ 0.484863
+ 0.484863
+ 0.484863
+ 0.484863
+ 0.484863
+ 0.484863
+ 0.485107
+ 0.485107
+ 0.485107
+ 0.485107
+ 0.485107
+ 0.485107
+ 0.485107
+ 0.485107
+ 0.485107
+ 0.485107
+ 0.485107
+ 0.485107
+ 0.485107
+ 0.485352
+ 0.485352
+ 0.485352
+ 0.485352
+ 0.485352
+ 0.485352
+ 0.485352
+ 0.485352
+ 0.485352
+ 0.485352
+ 0.485352
+ 0.485352
+ 0.485352
+ 0.485596
+ 0.485596
+ 0.485596
+ 0.485596
+ 0.485596
+ 0.485596
+ 0.485596
+ 0.485596
+ 0.485596
+ 0.485596
+ 0.485596
+ 0.485596
+ 0.485596
+ 0.485840
+ 0.485840
+ 0.485840
+ 0.485840
+ 0.485840
+ 0.485840
+ 0.485840
+ 0.485840
+ 0.485840
+ 0.485840
+ 0.485840
+ 0.485840
+ 0.485840
+ 0.486084
+ 0.486084
+ 0.486084
+ 0.486084
+ 0.486084
+ 0.486084
+ 0.486084
+ 0.486084
+ 0.486084
+ 0.486084
+ 0.486084
+ 0.486084
+ 0.486084
+ 0.486328
+ 0.486328
+ 0.486328
+ 0.486328
+ 0.486328
+ 0.486328
+ 0.486328
+ 0.486328
+ 0.486328
+ 0.486328
+ 0.486328
+ 0.486328
+ 0.486328
+ 0.486328
+ 0.486572
+ 0.486572
+ 0.486572
+ 0.486572
+ 0.486572
+ 0.486572
+ 0.486572
+ 0.486572
+ 0.486572
+ 0.486572
+ 0.486572
+ 0.486572
+ 0.486572
+ 0.486816
+ 0.486816
+ 0.486816
+ 0.486816
+ 0.486816
+ 0.486816
+ 0.486816
+ 0.486816
+ 0.486816
+ 0.486816
+ 0.486816
+ 0.486816
+ 0.486816
+ 0.487061
+ 0.487061
+ 0.487061
+ 0.487061
+ 0.487061
+ 0.487061
+ 0.487061
+ 0.487061
+ 0.487061
+ 0.487061
+ 0.487061
+ 0.487061
+ 0.487061
+ 0.487305
+ 0.487305
+ 0.487305
+ 0.487305
+ 0.487305
+ 0.487305
+ 0.487305
+ 0.487305
+ 0.487305
+ 0.487305
+ 0.487305
+ 0.487305
+ 0.487305
+ 0.487549
+ 0.487549
+ 0.487549
+ 0.487549
+ 0.487549
+ 0.487549
+ 0.487549
+ 0.487549
+ 0.487549
+ 0.487549
+ 0.487549
+ 0.487549
+ 0.487549
+ 0.487793
+ 0.487793
+ 0.487793
+ 0.487793
+ 0.487793
+ 0.487793
+ 0.487793
+ 0.487793
+ 0.487793
+ 0.487793
+ 0.487793
+ 0.487793
+ 0.487793
+ 0.487793
+ 0.488037
+ 0.488037
+ 0.488037
+ 0.488037
+ 0.488037
+ 0.488037
+ 0.488037
+ 0.488037
+ 0.488037
+ 0.488037
+ 0.488037
+ 0.488037
+ 0.488037
+ 0.488281
+ 0.488281
+ 0.488281
+ 0.488281
+ 0.488281
+ 0.488281
+ 0.488281
+ 0.488281
+ 0.488281
+ 0.488281
+ 0.488281
+ 0.488281
+ 0.488281
+ 0.488525
+ 0.488525
+ 0.488525
+ 0.488525
+ 0.488525
+ 0.488525
+ 0.488525
+ 0.488525
+ 0.488525
+ 0.488525
+ 0.488525
+ 0.488525
+ 0.488525
+ 0.488770
+ 0.488770
+ 0.488770
+ 0.488770
+ 0.488770
+ 0.488770
+ 0.488770
+ 0.488770
+ 0.488770
+ 0.488770
+ 0.488770
+ 0.488770
+ 0.488770
+ 0.488770
+ 0.489014
+ 0.489014
+ 0.489014
+ 0.489014
+ 0.489014
+ 0.489014
+ 0.489014
+ 0.489014
+ 0.489014
+ 0.489014
+ 0.489014
+ 0.489014
+ 0.489014
+ 0.489258
+ 0.489258
+ 0.489258
+ 0.489258
+ 0.489258
+ 0.489258
+ 0.489258
+ 0.489258
+ 0.489258
+ 0.489258
+ 0.489258
+ 0.489258
+ 0.489258
+ 0.489502
+ 0.489502
+ 0.489502
+ 0.489502
+ 0.489502
+ 0.489502
+ 0.489502
+ 0.489502
+ 0.489502
+ 0.489502
+ 0.489502
+ 0.489502
+ 0.489502
+ 0.489746
+ 0.489746
+ 0.489746
+ 0.489746
+ 0.489746
+ 0.489746
+ 0.489746
+ 0.489746
+ 0.489746
+ 0.489746
+ 0.489746
+ 0.489746
+ 0.489746
+ 0.489746
+ 0.489990
+ 0.489990
+ 0.489990
+ 0.489990
+ 0.489990
+ 0.489990
+ 0.489990
+ 0.489990
+ 0.489990
+ 0.489990
+ 0.489990
+ 0.489990
+ 0.489990
+ 0.490234
+ 0.490234
+ 0.490234
+ 0.490234
+ 0.490234
+ 0.490234
+ 0.490234
+ 0.490234
+ 0.490234
+ 0.490234
+ 0.490234
+ 0.490234
+ 0.490234
+ 0.490479
+ 0.490479
+ 0.490479
+ 0.490479
+ 0.490479
+ 0.490479
+ 0.490479
+ 0.490479
+ 0.490479
+ 0.490479
+ 0.490479
+ 0.490479
+ 0.490479
+ 0.490479
+ 0.490723
+ 0.490723
+ 0.490723
+ 0.490723
+ 0.490723
+ 0.490723
+ 0.490723
+ 0.490723
+ 0.490723
+ 0.490723
+ 0.490723
+ 0.490723
+ 0.490723
+ 0.490967
+ 0.490967
+ 0.490967
+ 0.490967
+ 0.490967
+ 0.490967
+ 0.490967
+ 0.490967
+ 0.490967
+ 0.490967
+ 0.490967
+ 0.490967
+ 0.490967
+ 0.491211
+ 0.491211
+ 0.491211
+ 0.491211
+ 0.491211
+ 0.491211
+ 0.491211
+ 0.491211
+ 0.491211
+ 0.491211
+ 0.491211
+ 0.491211
+ 0.491211
+ 0.491211
+ 0.491455
+ 0.491455
+ 0.491455
+ 0.491455
+ 0.491455
+ 0.491455
+ 0.491455
+ 0.491455
+ 0.491455
+ 0.491455
+ 0.491455
+ 0.491455
+ 0.491455
+ 0.491699
+ 0.491699
+ 0.491699
+ 0.491699
+ 0.491699
+ 0.491699
+ 0.491699
+ 0.491699
+ 0.491699
+ 0.491699
+ 0.491699
+ 0.491699
+ 0.491699
+ 0.491943
+ 0.491943
+ 0.491943
+ 0.491943
+ 0.491943
+ 0.491943
+ 0.491943
+ 0.491943
+ 0.491943
+ 0.491943
+ 0.491943
+ 0.491943
+ 0.491943
+ 0.491943
+ 0.492188
+ 0.492188
+ 0.492188
+ 0.492188
+ 0.492188
+ 0.492188
+ 0.492188
+ 0.492188
+ 0.492188
+ 0.492188
+ 0.492188
+ 0.492188
+ 0.492188
+ 0.492432
+ 0.492432
+ 0.492432
+ 0.492432
+ 0.492432
+ 0.492432
+ 0.492432
+ 0.492432
+ 0.492432
+ 0.492432
+ 0.492432
+ 0.492432
+ 0.492432
+ 0.492676
+ 0.492676
+ 0.492676
+ 0.492676
+ 0.492676
+ 0.492676
+ 0.492676
+ 0.492676
+ 0.492676
+ 0.492676
+ 0.492676
+ 0.492676
+ 0.492676
+ 0.492676
+ 0.492920
+ 0.492920
+ 0.492920
+ 0.492920
+ 0.492920
+ 0.492920
+ 0.492920
+ 0.492920
+ 0.492920
+ 0.492920
+ 0.492920
+ 0.492920
+ 0.492920
+ 0.493164
+ 0.493164
+ 0.493164
+ 0.493164
+ 0.493164
+ 0.493164
+ 0.493164
+ 0.493164
+ 0.493164
+ 0.493164
+ 0.493164
+ 0.493164
+ 0.493164
+ 0.493164
+ 0.493408
+ 0.493408
+ 0.493408
+ 0.493408
+ 0.493408
+ 0.493408
+ 0.493408
+ 0.493408
+ 0.493408
+ 0.493408
+ 0.493408
+ 0.493408
+ 0.493408
+ 0.493652
+ 0.493652
+ 0.493652
+ 0.493652
+ 0.493652
+ 0.493652
+ 0.493652
+ 0.493652
+ 0.493652
+ 0.493652
+ 0.493652
+ 0.493652
+ 0.493652
+ 0.493652
+ 0.493896
+ 0.493896
+ 0.493896
+ 0.493896
+ 0.493896
+ 0.493896
+ 0.493896
+ 0.493896
+ 0.493896
+ 0.493896
+ 0.493896
+ 0.493896
+ 0.493896
+ 0.494141
+ 0.494141
+ 0.494141
+ 0.494141
+ 0.494141
+ 0.494141
+ 0.494141
+ 0.494141
+ 0.494141
+ 0.494141
+ 0.494141
+ 0.494141
+ 0.494141
+ 0.494141
+ 0.494385
+ 0.494385
+ 0.494385
+ 0.494385
+ 0.494385
+ 0.494385
+ 0.494385
+ 0.494385
+ 0.494385
+ 0.494385
+ 0.494385
+ 0.494385
+ 0.494385
+ 0.494629
+ 0.494629
+ 0.494629
+ 0.494629
+ 0.494629
+ 0.494629
+ 0.494629
+ 0.494629
+ 0.494629
+ 0.494629
+ 0.494629
+ 0.494629
+ 0.494629
+ 0.494629
+ 0.494873
+ 0.494873
+ 0.494873
+ 0.494873
+ 0.494873
+ 0.494873
+ 0.494873
+ 0.494873
+ 0.494873
+ 0.494873
+ 0.494873
+ 0.494873
+ 0.494873
+ 0.495117
+ 0.495117
+ 0.495117
+ 0.495117
+ 0.495117
+ 0.495117
+ 0.495117
+ 0.495117
+ 0.495117
+ 0.495117
+ 0.495117
+ 0.495117
+ 0.495117
+ 0.495117
+ 0.495361
+ 0.495361
+ 0.495361
+ 0.495361
+ 0.495361
+ 0.495361
+ 0.495361
+ 0.495361
+ 0.495361
+ 0.495361
+ 0.495361
+ 0.495361
+ 0.495361
+ 0.495605
+ 0.495605
+ 0.495605
+ 0.495605
+ 0.495605
+ 0.495605
+ 0.495605
+ 0.495605
+ 0.495605
+ 0.495605
+ 0.495605
+ 0.495605
+ 0.495605
+ 0.495605
+ 0.495850
+ 0.495850
+ 0.495850
+ 0.495850
+ 0.495850
+ 0.495850
+ 0.495850
+ 0.495850
+ 0.495850
+ 0.495850
+ 0.495850
+ 0.495850
+ 0.495850
+ 0.496094
+ 0.496094
+ 0.496094
+ 0.496094
+ 0.496094
+ 0.496094
+ 0.496094
+ 0.496094
+ 0.496094
+ 0.496094
+ 0.496094
+ 0.496094
+ 0.496094
+ 0.496094
+ 0.496338
+ 0.496338
+ 0.496338
+ 0.496338
+ 0.496338
+ 0.496338
+ 0.496338
+ 0.496338
+ 0.496338
+ 0.496338
+ 0.496338
+ 0.496338
+ 0.496338
+ 0.496582
+ 0.496582
+ 0.496582
+ 0.496582
+ 0.496582
+ 0.496582
+ 0.496582
+ 0.496582
+ 0.496582
+ 0.496582
+ 0.496582
+ 0.496582
+ 0.496582
+ 0.496582
+ 0.496826
+ 0.496826
+ 0.496826
+ 0.496826
+ 0.496826
+ 0.496826
+ 0.496826
+ 0.496826
+ 0.496826
+ 0.496826
+ 0.496826
+ 0.496826
+ 0.496826
+ 0.496826
+ 0.497070
+ 0.497070
+ 0.497070
+ 0.497070
+ 0.497070
+ 0.497070
+ 0.497070
+ 0.497070
+ 0.497070
+ 0.497070
+ 0.497070
+ 0.497070
+ 0.497070
+ 0.497314
+ 0.497314
+ 0.497314
+ 0.497314
+ 0.497314
+ 0.497314
+ 0.497314
+ 0.497314
+ 0.497314
+ 0.497314
+ 0.497314
+ 0.497314
+ 0.497314
+ 0.497314
+ 0.497559
+ 0.497559
+ 0.497559
+ 0.497559
+ 0.497559
+ 0.497559
+ 0.497559
+ 0.497559
+ 0.497559
+ 0.497559
+ 0.497559
+ 0.497559
+ 0.497559
+ 0.497803
+ 0.497803
+ 0.497803
+ 0.497803
+ 0.497803
+ 0.497803
+ 0.497803
+ 0.497803
+ 0.497803
+ 0.497803
+ 0.497803
+ 0.497803
+ 0.497803
+ 0.497803
+ 0.498047
+ 0.498047
+ 0.498047
+ 0.498047
+ 0.498047
+ 0.498047
+ 0.498047
+ 0.498047
+ 0.498047
+ 0.498047
+ 0.498047
+ 0.498047
+ 0.498047
+ 0.498047
+ 0.498291
+ 0.498291
+ 0.498291
+ 0.498291
+ 0.498291
+ 0.498291
+ 0.498291
+ 0.498291
+ 0.498291
+ 0.498291
+ 0.498291
+ 0.498291
+ 0.498291
+ 0.498535
+ 0.498535
+ 0.498535
+ 0.498535
+ 0.498535
+ 0.498535
+ 0.498535
+ 0.498535
+ 0.498535
+ 0.498535
+ 0.498535
+ 0.498535
+ 0.498535
+ 0.498535
+ 0.498779
+ 0.498779
+ 0.498779
+ 0.498779
+ 0.498779
+ 0.498779
+ 0.498779
+ 0.498779
+ 0.498779
+ 0.498779
+ 0.498779
+ 0.498779
+ 0.498779
+ 0.498779
+ 0.499023
+ 0.499023
+ 0.499023
+ 0.499023
+ 0.499023
+ 0.499023
+ 0.499023
+ 0.499023
+ 0.499023
+ 0.499023
+ 0.499023
+ 0.499023
+ 0.499023
+ 0.499268
+ 0.499268
+ 0.499268
+ 0.499268
+ 0.499268
+ 0.499268
+ 0.499268
+ 0.499268
+ 0.499268
+ 0.499268
+ 0.499268
+ 0.499268
+ 0.499268
+ 0.499268
+ 0.499512
+ 0.499512
+ 0.499512
+ 0.499512
+ 0.499512
+ 0.499512
+ 0.499512
+ 0.499512
+ 0.499512
+ 0.499512
+ 0.499512
+ 0.499512
+ 0.499512
+ 0.499512
+ 0.499756
+ 0.499756
+ 0.499756
+ 0.499756
+ 0.499756
+ 0.499756
+ 0.499756
+ 0.499756
+ 0.499756
+ 0.499756
+ 0.499756
+ 0.499756
+ 0.499756
+ 0.499756
+ 0.500000
+ 0.500000
+ 0.500000
+ 0.500000
+ 0.500000
+ 0.500000
+ 0.500000
+ 0.500000
+ 0.500000
+ 0.500000
+ 0.500000
+ 0.500000
+ 0.500000
+ 0.500244
+ 0.500244
+ 0.500244
+ 0.500244
+ 0.500244
+ 0.500244
+ 0.500244
+ 0.500244
+ 0.500244
+ 0.500244
+ 0.500244
+ 0.500244
+ 0.500244
+ 0.500244
+ 0.500488
+ 0.500488
+ 0.500488
+ 0.500488
+ 0.500488
+ 0.500488
+ 0.500488
+ 0.500488
+ 0.500488
+ 0.500488
+ 0.500488
+ 0.500488
+ 0.500488
+ 0.500488
+ 0.500732
+ 0.500732
+ 0.500732
+ 0.500732
+ 0.500732
+ 0.500732
+ 0.500732
+ 0.500732
+ 0.500732
+ 0.500732
+ 0.500732
+ 0.500732
+ 0.500732
+ 0.500732
+ 0.500977
+ 0.500977
+ 0.500977
+ 0.500977
+ 0.500977
+ 0.500977
+ 0.500977
+ 0.500977
+ 0.500977
+ 0.500977
+ 0.500977
+ 0.500977
+ 0.500977
+ 0.501221
+ 0.501221
+ 0.501221
+ 0.501221
+ 0.501221
+ 0.501221
+ 0.501221
+ 0.501221
+ 0.501221
+ 0.501221
+ 0.501221
+ 0.501221
+ 0.501221
+ 0.501221
+ 0.501465
+ 0.501465
+ 0.501465
+ 0.501465
+ 0.501465
+ 0.501465
+ 0.501465
+ 0.501465
+ 0.501465
+ 0.501465
+ 0.501465
+ 0.501465
+ 0.501465
+ 0.501465
+ 0.501709
+ 0.501709
+ 0.501709
+ 0.501709
+ 0.501709
+ 0.501709
+ 0.501709
+ 0.501709
+ 0.501709
+ 0.501709
+ 0.501709
+ 0.501709
+ 0.501709
+ 0.501709
+ 0.501953
+ 0.501953
+ 0.501953
+ 0.501953
+ 0.501953
+ 0.501953
+ 0.501953
+ 0.501953
+ 0.501953
+ 0.501953
+ 0.501953
+ 0.501953
+ 0.501953
+ 0.501953
+ 0.502197
+ 0.502197
+ 0.502197
+ 0.502197
+ 0.502197
+ 0.502197
+ 0.502197
+ 0.502197
+ 0.502197
+ 0.502197
+ 0.502197
+ 0.502197
+ 0.502197
+ 0.502441
+ 0.502441
+ 0.502441
+ 0.502441
+ 0.502441
+ 0.502441
+ 0.502441
+ 0.502441
+ 0.502441
+ 0.502441
+ 0.502441
+ 0.502441
+ 0.502441
+ 0.502441
+ 0.502686
+ 0.502686
+ 0.502686
+ 0.502686
+ 0.502686
+ 0.502686
+ 0.502686
+ 0.502686
+ 0.502686
+ 0.502686
+ 0.502686
+ 0.502686
+ 0.502686
+ 0.502686
+ 0.502930
+ 0.502930
+ 0.502930
+ 0.502930
+ 0.502930
+ 0.502930
+ 0.502930
+ 0.502930
+ 0.502930
+ 0.502930
+ 0.502930
+ 0.502930
+ 0.502930
+ 0.502930
+ 0.503174
+ 0.503174
+ 0.503174
+ 0.503174
+ 0.503174
+ 0.503174
+ 0.503174
+ 0.503174
+ 0.503174
+ 0.503174
+ 0.503174
+ 0.503174
+ 0.503174
+ 0.503174
+ 0.503418
+ 0.503418
+ 0.503418
+ 0.503418
+ 0.503418
+ 0.503418
+ 0.503418
+ 0.503418
+ 0.503418
+ 0.503418
+ 0.503418
+ 0.503418
+ 0.503418
+ 0.503418
+ 0.503662
+ 0.503662
+ 0.503662
+ 0.503662
+ 0.503662
+ 0.503662
+ 0.503662
+ 0.503662
+ 0.503662
+ 0.503662
+ 0.503662
+ 0.503662
+ 0.503662
+ 0.503662
+ 0.503906
+ 0.503906
+ 0.503906
+ 0.503906
+ 0.503906
+ 0.503906
+ 0.503906
+ 0.503906
+ 0.503906
+ 0.503906
+ 0.503906
+ 0.503906
+ 0.503906
+ 0.503906
+ 0.504150
+ 0.504150
+ 0.504150
+ 0.504150
+ 0.504150
+ 0.504150
+ 0.504150
+ 0.504150
+ 0.504150
+ 0.504150
+ 0.504150
+ 0.504150
+ 0.504150
+ 0.504150
+ 0.504395
+ 0.504395
+ 0.504395
+ 0.504395
+ 0.504395
+ 0.504395
+ 0.504395
+ 0.504395
+ 0.504395
+ 0.504395
+ 0.504395
+ 0.504395
+ 0.504395
+ 0.504639
+ 0.504639
+ 0.504639
+ 0.504639
+ 0.504639
+ 0.504639
+ 0.504639
+ 0.504639
+ 0.504639
+ 0.504639
+ 0.504639
+ 0.504639
+ 0.504639
+ 0.504639
+ 0.504883
+ 0.504883
+ 0.504883
+ 0.504883
+ 0.504883
+ 0.504883
+ 0.504883
+ 0.504883
+ 0.504883
+ 0.504883
+ 0.504883
+ 0.504883
+ 0.504883
+ 0.504883
+ 0.505127
+ 0.505127
+ 0.505127
+ 0.505127
+ 0.505127
+ 0.505127
+ 0.505127
+ 0.505127
+ 0.505127
+ 0.505127
+ 0.505127
+ 0.505127
+ 0.505127
+ 0.505127
+ 0.505371
+ 0.505371
+ 0.505371
+ 0.505371
+ 0.505371
+ 0.505371
+ 0.505371
+ 0.505371
+ 0.505371
+ 0.505371
+ 0.505371
+ 0.505371
+ 0.505371
+ 0.505371
+ 0.505615
+ 0.505615
+ 0.505615
+ 0.505615
+ 0.505615
+ 0.505615
+ 0.505615
+ 0.505615
+ 0.505615
+ 0.505615
+ 0.505615
+ 0.505615
+ 0.505615
+ 0.505615
+ 0.505859
+ 0.505859
+ 0.505859
+ 0.505859
+ 0.505859
+ 0.505859
+ 0.505859
+ 0.505859
+ 0.505859
+ 0.505859
+ 0.505859
+ 0.505859
+ 0.505859
+ 0.505859
+ 0.506104
+ 0.506104
+ 0.506104
+ 0.506104
+ 0.506104
+ 0.506104
+ 0.506104
+ 0.506104
+ 0.506104
+ 0.506104
+ 0.506104
+ 0.506104
+ 0.506104
+ 0.506104
+ 0.506348
+ 0.506348
+ 0.506348
+ 0.506348
+ 0.506348
+ 0.506348
+ 0.506348
+ 0.506348
+ 0.506348
+ 0.506348
+ 0.506348
+ 0.506348
+ 0.506348
+ 0.506348
+ 0.506592
+ 0.506592
+ 0.506592
+ 0.506592
+ 0.506592
+ 0.506592
+ 0.506592
+ 0.506592
+ 0.506592
+ 0.506592
+ 0.506592
+ 0.506592
+ 0.506592
+ 0.506592
+ 0.506836
+ 0.506836
+ 0.506836
+ 0.506836
+ 0.506836
+ 0.506836
+ 0.506836
+ 0.506836
+ 0.506836
+ 0.506836
+ 0.506836
+ 0.506836
+ 0.506836
+ 0.506836
+ 0.507080
+ 0.507080
+ 0.507080
+ 0.507080
+ 0.507080
+ 0.507080
+ 0.507080
+ 0.507080
+ 0.507080
+ 0.507080
+ 0.507080
+ 0.507080
+ 0.507080
+ 0.507080
+ 0.507324
+ 0.507324
+ 0.507324
+ 0.507324
+ 0.507324
+ 0.507324
+ 0.507324
+ 0.507324
+ 0.507324
+ 0.507324
+ 0.507324
+ 0.507324
+ 0.507324
+ 0.507324
+ 0.507568
+ 0.507568
+ 0.507568
+ 0.507568
+ 0.507568
+ 0.507568
+ 0.507568
+ 0.507568
+ 0.507568
+ 0.507568
+ 0.507568
+ 0.507568
+ 0.507568
+ 0.507568
+ 0.507568
+ 0.507812
+ 0.507812
+ 0.507812
+ 0.507812
+ 0.507812
+ 0.507812
+ 0.507812
+ 0.507812
+ 0.507812
+ 0.507812
+ 0.507812
+ 0.507812
+ 0.507812
+ 0.507812
+ 0.508057
+ 0.508057
+ 0.508057
+ 0.508057
+ 0.508057
+ 0.508057
+ 0.508057
+ 0.508057
+ 0.508057
+ 0.508057
+ 0.508057
+ 0.508057
+ 0.508057
+ 0.508057
+ 0.508301
+ 0.508301
+ 0.508301
+ 0.508301
+ 0.508301
+ 0.508301
+ 0.508301
+ 0.508301
+ 0.508301
+ 0.508301
+ 0.508301
+ 0.508301
+ 0.508301
+ 0.508301
+ 0.508545
+ 0.508545
+ 0.508545
+ 0.508545
+ 0.508545
+ 0.508545
+ 0.508545
+ 0.508545
+ 0.508545
+ 0.508545
+ 0.508545
+ 0.508545
+ 0.508545
+ 0.508545
+ 0.508789
+ 0.508789
+ 0.508789
+ 0.508789
+ 0.508789
+ 0.508789
+ 0.508789
+ 0.508789
+ 0.508789
+ 0.508789
+ 0.508789
+ 0.508789
+ 0.508789
+ 0.508789
+ 0.509033
+ 0.509033
+ 0.509033
+ 0.509033
+ 0.509033
+ 0.509033
+ 0.509033
+ 0.509033
+ 0.509033
+ 0.509033
+ 0.509033
+ 0.509033
+ 0.509033
+ 0.509033
+ 0.509277
+ 0.509277
+ 0.509277
+ 0.509277
+ 0.509277
+ 0.509277
+ 0.509277
+ 0.509277
+ 0.509277
+ 0.509277
+ 0.509277
+ 0.509277
+ 0.509277
+ 0.509277
+ 0.509521
+ 0.509521
+ 0.509521
+ 0.509521
+ 0.509521
+ 0.509521
+ 0.509521
+ 0.509521
+ 0.509521
+ 0.509521
+ 0.509521
+ 0.509521
+ 0.509521
+ 0.509521
+ 0.509766
+ 0.509766
+ 0.509766
+ 0.509766
+ 0.509766
+ 0.509766
+ 0.509766
+ 0.509766
+ 0.509766
+ 0.509766
+ 0.509766
+ 0.509766
+ 0.509766
+ 0.509766
+ 0.509766
+ 0.510010
+ 0.510010
+ 0.510010
+ 0.510010
+ 0.510010
+ 0.510010
+ 0.510010
+ 0.510010
+ 0.510010
+ 0.510010
+ 0.510010
+ 0.510010
+ 0.510010
+ 0.510010
+ 0.510254
+ 0.510254
+ 0.510254
+ 0.510254
+ 0.510254
+ 0.510254
+ 0.510254
+ 0.510254
+ 0.510254
+ 0.510254
+ 0.510254
+ 0.510254
+ 0.510254
+ 0.510254
+ 0.510498
+ 0.510498
+ 0.510498
+ 0.510498
+ 0.510498
+ 0.510498
+ 0.510498
+ 0.510498
+ 0.510498
+ 0.510498
+ 0.510498
+ 0.510498
+ 0.510498
+ 0.510498
+ 0.510742
+ 0.510742
+ 0.510742
+ 0.510742
+ 0.510742
+ 0.510742
+ 0.510742
+ 0.510742
+ 0.510742
+ 0.510742
+ 0.510742
+ 0.510742
+ 0.510742
+ 0.510742
+ 0.510986
+ 0.510986
+ 0.510986
+ 0.510986
+ 0.510986
+ 0.510986
+ 0.510986
+ 0.510986
+ 0.510986
+ 0.510986
+ 0.510986
+ 0.510986
+ 0.510986
+ 0.510986
+ 0.510986
+ 0.511230
+ 0.511230
+ 0.511230
+ 0.511230
+ 0.511230
+ 0.511230
+ 0.511230
+ 0.511230
+ 0.511230
+ 0.511230
+ 0.511230
+ 0.511230
+ 0.511230
+ 0.511230
+ 0.511475
+ 0.511475
+ 0.511475
+ 0.511475
+ 0.511475
+ 0.511475
+ 0.511475
+ 0.511475
+ 0.511475
+ 0.511475
+ 0.511475
+ 0.511475
+ 0.511475
+ 0.511475
+ 0.511719
+ 0.511719
+ 0.511719
+ 0.511719
+ 0.511719
+ 0.511719
+ 0.511719
+ 0.511719
+ 0.511719
+ 0.511719
+ 0.511719
+ 0.511719
+ 0.511719
+ 0.511719
+ 0.511963
+ 0.511963
+ 0.511963
+ 0.511963
+ 0.511963
+ 0.511963
+ 0.511963
+ 0.511963
+ 0.511963
+ 0.511963
+ 0.511963
+ 0.511963
+ 0.511963
+ 0.511963
+ 0.511963
+ 0.512207
+ 0.512207
+ 0.512207
+ 0.512207
+ 0.512207
+ 0.512207
+ 0.512207
+ 0.512207
+ 0.512207
+ 0.512207
+ 0.512207
+ 0.512207
+ 0.512207
+ 0.512207
+ 0.512451
+ 0.512451
+ 0.512451
+ 0.512451
+ 0.512451
+ 0.512451
+ 0.512451
+ 0.512451
+ 0.512451
+ 0.512451
+ 0.512451
+ 0.512451
+ 0.512451
+ 0.512451
+ 0.512695
+ 0.512695
+ 0.512695
+ 0.512695
+ 0.512695
+ 0.512695
+ 0.512695
+ 0.512695
+ 0.512695
+ 0.512695
+ 0.512695
+ 0.512695
+ 0.512695
+ 0.512695
+ 0.512695
+ 0.512939
+ 0.512939
+ 0.512939
+ 0.512939
+ 0.512939
+ 0.512939
+ 0.512939
+ 0.512939
+ 0.512939
+ 0.512939
+ 0.512939
+ 0.512939
+ 0.512939
+ 0.512939
+ 0.513184
+ 0.513184
+ 0.513184
+ 0.513184
+ 0.513184
+ 0.513184
+ 0.513184
+ 0.513184
+ 0.513184
+ 0.513184
+ 0.513184
+ 0.513184
+ 0.513184
+ 0.513184
+ 0.513428
+ 0.513428
+ 0.513428
+ 0.513428
+ 0.513428
+ 0.513428
+ 0.513428
+ 0.513428
+ 0.513428
+ 0.513428
+ 0.513428
+ 0.513428
+ 0.513428
+ 0.513428
+ 0.513672
+ 0.513672
+ 0.513672
+ 0.513672
+ 0.513672
+ 0.513672
+ 0.513672
+ 0.513672
+ 0.513672
+ 0.513672
+ 0.513672
+ 0.513672
+ 0.513672
+ 0.513672
+ 0.513672
+ 0.513916
+ 0.513916
+ 0.513916
+ 0.513916
+ 0.513916
+ 0.513916
+ 0.513916
+ 0.513916
+ 0.513916
+ 0.513916
+ 0.513916
+ 0.513916
+ 0.513916
+ 0.513916
+ 0.514160
+ 0.514160
+ 0.514160
+ 0.514160
+ 0.514160
+ 0.514160
+ 0.514160
+ 0.514160
+ 0.514160
+ 0.514160
+ 0.514160
+ 0.514160
+ 0.514160
+ 0.514160
+ 0.514160
+ 0.514404
+ 0.514404
+ 0.514404
+ 0.514404
+ 0.514404
+ 0.514404
+ 0.514404
+ 0.514404
+ 0.514404
+ 0.514404
+ 0.514404
+ 0.514404
+ 0.514404
+ 0.514404
+ 0.514648
+ 0.514648
+ 0.514648
+ 0.514648
+ 0.514648
+ 0.514648
+ 0.514648
+ 0.514648
+ 0.514648
+ 0.514648
+ 0.514648
+ 0.514648
+ 0.514648
+ 0.514648
+ 0.514893
+ 0.514893
+ 0.514893
+ 0.514893
+ 0.514893
+ 0.514893
+ 0.514893
+ 0.514893
+ 0.514893
+ 0.514893
+ 0.514893
+ 0.514893
+ 0.514893
+ 0.514893
+ 0.514893
+ 0.515137
+ 0.515137
+ 0.515137
+ 0.515137
+ 0.515137
+ 0.515137
+ 0.515137
+ 0.515137
+ 0.515137
+ 0.515137
+ 0.515137
+ 0.515137
+ 0.515137
+ 0.515137
+ 0.515381
+ 0.515381
+ 0.515381
+ 0.515381
+ 0.515381
+ 0.515381
+ 0.515381
+ 0.515381
+ 0.515381
+ 0.515381
+ 0.515381
+ 0.515381
+ 0.515381
+ 0.515381
+ 0.515381
+ 0.515625
+ 0.515625
+ 0.515625
+ 0.515625
+ 0.515625
+ 0.515625
+ 0.515625
+ 0.515625
+ 0.515625
+ 0.515625
+ 0.515625
+ 0.515625
+ 0.515625
+ 0.515625
+ 0.515869
+ 0.515869
+ 0.515869
+ 0.515869
+ 0.515869
+ 0.515869
+ 0.515869
+ 0.515869
+ 0.515869
+ 0.515869
+ 0.515869
+ 0.515869
+ 0.515869
+ 0.515869
+ 0.516113
+ 0.516113
+ 0.516113
+ 0.516113
+ 0.516113
+ 0.516113
+ 0.516113
+ 0.516113
+ 0.516113
+ 0.516113
+ 0.516113
+ 0.516113
+ 0.516113
+ 0.516113
+ 0.516113
+ 0.516357
+ 0.516357
+ 0.516357
+ 0.516357
+ 0.516357
+ 0.516357
+ 0.516357
+ 0.516357
+ 0.516357
+ 0.516357
+ 0.516357
+ 0.516357
+ 0.516357
+ 0.516357
+ 0.516602
+ 0.516602
+ 0.516602
+ 0.516602
+ 0.516602
+ 0.516602
+ 0.516602
+ 0.516602
+ 0.516602
+ 0.516602
+ 0.516602
+ 0.516602
+ 0.516602
+ 0.516602
+ 0.516602
+ 0.516846
+ 0.516846
+ 0.516846
+ 0.516846
+ 0.516846
+ 0.516846
+ 0.516846
+ 0.516846
+ 0.516846
+ 0.516846
+ 0.516846
+ 0.516846
+ 0.516846
+ 0.516846
+ 0.517090
+ 0.517090
+ 0.517090
+ 0.517090
+ 0.517090
+ 0.517090
+ 0.517090
+ 0.517090
+ 0.517090
+ 0.517090
+ 0.517090
+ 0.517090
+ 0.517090
+ 0.517090
+ 0.517090
+ 0.517334
+ 0.517334
+ 0.517334
+ 0.517334
+ 0.517334
+ 0.517334
+ 0.517334
+ 0.517334
+ 0.517334
+ 0.517334
+ 0.517334
+ 0.517334
+ 0.517334
+ 0.517334
+ 0.517578
+ 0.517578
+ 0.517578
+ 0.517578
+ 0.517578
+ 0.517578
+ 0.517578
+ 0.517578
+ 0.517578
+ 0.517578
+ 0.517578
+ 0.517578
+ 0.517578
+ 0.517578
+ 0.517578
+ 0.517822
+ 0.517822
+ 0.517822
+ 0.517822
+ 0.517822
+ 0.517822
+ 0.517822
+ 0.517822
+ 0.517822
+ 0.517822
+ 0.517822
+ 0.517822
+ 0.517822
+ 0.517822
+ 0.518066
+ 0.518066
+ 0.518066
+ 0.518066
+ 0.518066
+ 0.518066
+ 0.518066
+ 0.518066
+ 0.518066
+ 0.518066
+ 0.518066
+ 0.518066
+ 0.518066
+ 0.518066
+ 0.518066
+ 0.518311
+ 0.518311
+ 0.518311
+ 0.518311
+ 0.518311
+ 0.518311
+ 0.518311
+ 0.518311
+ 0.518311
+ 0.518311
+ 0.518311
+ 0.518311
+ 0.518311
+ 0.518311
+ 0.518555
+ 0.518555
+ 0.518555
+ 0.518555
+ 0.518555
+ 0.518555
+ 0.518555
+ 0.518555
+ 0.518555
+ 0.518555
+ 0.518555
+ 0.518555
+ 0.518555
+ 0.518555
+ 0.518555
+ 0.518799
+ 0.518799
+ 0.518799
+ 0.518799
+ 0.518799
+ 0.518799
+ 0.518799
+ 0.518799
+ 0.518799
+ 0.518799
+ 0.518799
+ 0.518799
+ 0.518799
+ 0.518799
+ 0.518799
+ 0.519043
+ 0.519043
+ 0.519043
+ 0.519043
+ 0.519043
+ 0.519043
+ 0.519043
+ 0.519043
+ 0.519043
+ 0.519043
+ 0.519043
+ 0.519043
+ 0.519043
+ 0.519043
+ 0.519287
+ 0.519287
+ 0.519287
+ 0.519287
+ 0.519287
+ 0.519287
+ 0.519287
+ 0.519287
+ 0.519287
+ 0.519287
+ 0.519287
+ 0.519287
+ 0.519287
+ 0.519287
+ 0.519287
+ 0.519531
+ 0.519531
+ 0.519531
+ 0.519531
+ 0.519531
+ 0.519531
+ 0.519531
+ 0.519531
+ 0.519531
+ 0.519531
+ 0.519531
+ 0.519531
+ 0.519531
+ 0.519531
+ 0.519775
+ 0.519775
+ 0.519775
+ 0.519775
+ 0.519775
+ 0.519775
+ 0.519775
+ 0.519775
+ 0.519775
+ 0.519775
+ 0.519775
+ 0.519775
+ 0.519775
+ 0.519775
+ 0.519775
+ 0.520020
+ 0.520020
+ 0.520020
+ 0.520020
+ 0.520020
+ 0.520020
+ 0.520020
+ 0.520020
+ 0.520020
+ 0.520020
+ 0.520020
+ 0.520020
+ 0.520020
+ 0.520020
+ 0.520020
+ 0.520264
+ 0.520264
+ 0.520264
+ 0.520264
+ 0.520264
+ 0.520264
+ 0.520264
+ 0.520264
+ 0.520264
+ 0.520264
+ 0.520264
+ 0.520264
+ 0.520264
+ 0.520264
+ 0.520508
+ 0.520508
+ 0.520508
+ 0.520508
+ 0.520508
+ 0.520508
+ 0.520508
+ 0.520508
+ 0.520508
+ 0.520508
+ 0.520508
+ 0.520508
+ 0.520508
+ 0.520508
+ 0.520508
+ 0.520752
+ 0.520752
+ 0.520752
+ 0.520752
+ 0.520752
+ 0.520752
+ 0.520752
+ 0.520752
+ 0.520752
+ 0.520752
+ 0.520752
+ 0.520752
+ 0.520752
+ 0.520752
+ 0.520752
+ 0.520996
+ 0.520996
+ 0.520996
+ 0.520996
+ 0.520996
+ 0.520996
+ 0.520996
+ 0.520996
+ 0.520996
+ 0.520996
+ 0.520996
+ 0.520996
+ 0.520996
+ 0.520996
+ 0.521240
+ 0.521240
+ 0.521240
+ 0.521240
+ 0.521240
+ 0.521240
+ 0.521240
+ 0.521240
+ 0.521240
+ 0.521240
+ 0.521240
+ 0.521240
+ 0.521240
+ 0.521240
+ 0.521240
+ 0.521484
+ 0.521484
+ 0.521484
+ 0.521484
+ 0.521484
+ 0.521484
+ 0.521484
+ 0.521484
+ 0.521484
+ 0.521484
+ 0.521484
+ 0.521484
+ 0.521484
+ 0.521484
+ 0.521484
+ 0.521729
+ 0.521729
+ 0.521729
+ 0.521729
+ 0.521729
+ 0.521729
+ 0.521729
+ 0.521729
+ 0.521729
+ 0.521729
+ 0.521729
+ 0.521729
+ 0.521729
+ 0.521729
+ 0.521973
+ 0.521973
+ 0.521973
+ 0.521973
+ 0.521973
+ 0.521973
+ 0.521973
+ 0.521973
+ 0.521973
+ 0.521973
+ 0.521973
+ 0.521973
+ 0.521973
+ 0.521973
+ 0.521973
+ 0.522217
+ 0.522217
+ 0.522217
+ 0.522217
+ 0.522217
+ 0.522217
+ 0.522217
+ 0.522217
+ 0.522217
+ 0.522217
+ 0.522217
+ 0.522217
+ 0.522217
+ 0.522217
+ 0.522217
+ 0.522461
+ 0.522461
+ 0.522461
+ 0.522461
+ 0.522461
+ 0.522461
+ 0.522461
+ 0.522461
+ 0.522461
+ 0.522461
+ 0.522461
+ 0.522461
+ 0.522461
+ 0.522461
+ 0.522705
+ 0.522705
+ 0.522705
+ 0.522705
+ 0.522705
+ 0.522705
+ 0.522705
+ 0.522705
+ 0.522705
+ 0.522705
+ 0.522705
+ 0.522705
+ 0.522705
+ 0.522705
+ 0.522705
+ 0.522949
+ 0.522949
+ 0.522949
+ 0.522949
+ 0.522949
+ 0.522949
+ 0.522949
+ 0.522949
+ 0.522949
+ 0.522949
+ 0.522949
+ 0.522949
+ 0.522949
+ 0.522949
+ 0.522949
+ 0.523193
+ 0.523193
+ 0.523193
+ 0.523193
+ 0.523193
+ 0.523193
+ 0.523193
+ 0.523193
+ 0.523193
+ 0.523193
+ 0.523193
+ 0.523193
+ 0.523193
+ 0.523193
+ 0.523193
+ 0.523438
+ 0.523438
+ 0.523438
+ 0.523438
+ 0.523438
+ 0.523438
+ 0.523438
+ 0.523438
+ 0.523438
+ 0.523438
+ 0.523438
+ 0.523438
+ 0.523438
+ 0.523438
+ 0.523682
+ 0.523682
+ 0.523682
+ 0.523682
+ 0.523682
+ 0.523682
+ 0.523682
+ 0.523682
+ 0.523682
+ 0.523682
+ 0.523682
+ 0.523682
+ 0.523682
+ 0.523682
+ 0.523682
+ 0.523926
+ 0.523926
+ 0.523926
+ 0.523926
+ 0.523926
+ 0.523926
+ 0.523926
+ 0.523926
+ 0.523926
+ 0.523926
+ 0.523926
+ 0.523926
+ 0.523926
+ 0.523926
+ 0.523926
+ 0.524170
+ 0.524170
+ 0.524170
+ 0.524170
+ 0.524170
+ 0.524170
+ 0.524170
+ 0.524170
+ 0.524170
+ 0.524170
+ 0.524170
+ 0.524170
+ 0.524170
+ 0.524170
+ 0.524170
+ 0.524414
+ 0.524414
+ 0.524414
+ 0.524414
+ 0.524414
+ 0.524414
+ 0.524414
+ 0.524414
+ 0.524414
+ 0.524414
+ 0.524414
+ 0.524414
+ 0.524414
+ 0.524414
+ 0.524414
+ 0.524658
+ 0.524658
+ 0.524658
+ 0.524658
+ 0.524658
+ 0.524658
+ 0.524658
+ 0.524658
+ 0.524658
+ 0.524658
+ 0.524658
+ 0.524658
+ 0.524658
+ 0.524658
+ 0.524658
+ 0.524902
+ 0.524902
+ 0.524902
+ 0.524902
+ 0.524902
+ 0.524902
+ 0.524902
+ 0.524902
+ 0.524902
+ 0.524902
+ 0.524902
+ 0.524902
+ 0.524902
+ 0.524902
+ 0.525146
+ 0.525146
+ 0.525146
+ 0.525146
+ 0.525146
+ 0.525146
+ 0.525146
+ 0.525146
+ 0.525146
+ 0.525146
+ 0.525146
+ 0.525146
+ 0.525146
+ 0.525146
+ 0.525146
+ 0.525391
+ 0.525391
+ 0.525391
+ 0.525391
+ 0.525391
+ 0.525391
+ 0.525391
+ 0.525391
+ 0.525391
+ 0.525391
+ 0.525391
+ 0.525391
+ 0.525391
+ 0.525391
+ 0.525391
+ 0.525635
+ 0.525635
+ 0.525635
+ 0.525635
+ 0.525635
+ 0.525635
+ 0.525635
+ 0.525635
+ 0.525635
+ 0.525635
+ 0.525635
+ 0.525635
+ 0.525635
+ 0.525635
+ 0.525635
+ 0.525879
+ 0.525879
+ 0.525879
+ 0.525879
+ 0.525879
+ 0.525879
+ 0.525879
+ 0.525879
+ 0.525879
+ 0.525879
+ 0.525879
+ 0.525879
+ 0.525879
+ 0.525879
+ 0.525879
+ 0.526123
+ 0.526123
+ 0.526123
+ 0.526123
+ 0.526123
+ 0.526123
+ 0.526123
+ 0.526123
+ 0.526123
+ 0.526123
+ 0.526123
+ 0.526123
+ 0.526123
+ 0.526123
+ 0.526123
+ 0.526367
+ 0.526367
+ 0.526367
+ 0.526367
+ 0.526367
+ 0.526367
+ 0.526367
+ 0.526367
+ 0.526367
+ 0.526367
+ 0.526367
+ 0.526367
+ 0.526367
+ 0.526367
+ 0.526367
+ 0.526611
+ 0.526611
+ 0.526611
+ 0.526611
+ 0.526611
+ 0.526611
+ 0.526611
+ 0.526611
+ 0.526611
+ 0.526611
+ 0.526611
+ 0.526611
+ 0.526611
+ 0.526611
+ 0.526611
+ 0.526855
+ 0.526855
+ 0.526855
+ 0.526855
+ 0.526855
+ 0.526855
+ 0.526855
+ 0.526855
+ 0.526855
+ 0.526855
+ 0.526855
+ 0.526855
+ 0.526855
+ 0.526855
+ 0.526855
+ 0.527100
+ 0.527100
+ 0.527100
+ 0.527100
+ 0.527100
+ 0.527100
+ 0.527100
+ 0.527100
+ 0.527100
+ 0.527100
+ 0.527100
+ 0.527100
+ 0.527100
+ 0.527100
+ 0.527100
+ 0.527344
+ 0.527344
+ 0.527344
+ 0.527344
+ 0.527344
+ 0.527344
+ 0.527344
+ 0.527344
+ 0.527344
+ 0.527344
+ 0.527344
+ 0.527344
+ 0.527344
+ 0.527344
+ 0.527588
+ 0.527588
+ 0.527588
+ 0.527588
+ 0.527588
+ 0.527588
+ 0.527588
+ 0.527588
+ 0.527588
+ 0.527588
+ 0.527588
+ 0.527588
+ 0.527588
+ 0.527588
+ 0.527588
+ 0.527832
+ 0.527832
+ 0.527832
+ 0.527832
+ 0.527832
+ 0.527832
+ 0.527832
+ 0.527832
+ 0.527832
+ 0.527832
+ 0.527832
+ 0.527832
+ 0.527832
+ 0.527832
+ 0.527832
+ 0.528076
+ 0.528076
+ 0.528076
+ 0.528076
+ 0.528076
+ 0.528076
+ 0.528076
+ 0.528076
+ 0.528076
+ 0.528076
+ 0.528076
+ 0.528076
+ 0.528076
+ 0.528076
+ 0.528076
+ 0.528320
+ 0.528320
+ 0.528320
+ 0.528320
+ 0.528320
+ 0.528320
+ 0.528320
+ 0.528320
+ 0.528320
+ 0.528320
+ 0.528320
+ 0.528320
+ 0.528320
+ 0.528320
+ 0.528320
+ 0.528564
+ 0.528564
+ 0.528564
+ 0.528564
+ 0.528564
+ 0.528564
+ 0.528564
+ 0.528564
+ 0.528564
+ 0.528564
+ 0.528564
+ 0.528564
+ 0.528564
+ 0.528564
+ 0.528564
+ 0.528809
+ 0.528809
+ 0.528809
+ 0.528809
+ 0.528809
+ 0.528809
+ 0.528809
+ 0.528809
+ 0.528809
+ 0.528809
+ 0.528809
+ 0.528809
+ 0.528809
+ 0.528809
+ 0.528809
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529053
+ 0.529297
+ 0.529297
+ 0.529297
+ 0.529297
+ 0.529297
+ 0.529297
+ 0.529297
+ 0.529297
+ 0.529297
+ 0.529297
+ 0.529297
+ 0.529297
+ 0.529297
+ 0.529297
+ 0.529297
+ 0.529541
+ 0.529541
+ 0.529541
+ 0.529541
+ 0.529541
+ 0.529541
+ 0.529541
+ 0.529541
+ 0.529541
+ 0.529541
+ 0.529541
+ 0.529541
+ 0.529541
+ 0.529541
+ 0.529541
+ 0.529785
+ 0.529785
+ 0.529785
+ 0.529785
+ 0.529785
+ 0.529785
+ 0.529785
+ 0.529785
+ 0.529785
+ 0.529785
+ 0.529785
+ 0.529785
+ 0.529785
+ 0.529785
+ 0.529785
+ 0.530029
+ 0.530029
+ 0.530029
+ 0.530029
+ 0.530029
+ 0.530029
+ 0.530029
+ 0.530029
+ 0.530029
+ 0.530029
+ 0.530029
+ 0.530029
+ 0.530029
+ 0.530029
+ 0.530029
+ 0.530273
+ 0.530273
+ 0.530273
+ 0.530273
+ 0.530273
+ 0.530273
+ 0.530273
+ 0.530273
+ 0.530273
+ 0.530273
+ 0.530273
+ 0.530273
+ 0.530273
+ 0.530273
+ 0.530273
+ 0.530518
+ 0.530518
+ 0.530518
+ 0.530518
+ 0.530518
+ 0.530518
+ 0.530518
+ 0.530518
+ 0.530518
+ 0.530518
+ 0.530518
+ 0.530518
+ 0.530518
+ 0.530518
+ 0.530518
+ 0.530762
+ 0.530762
+ 0.530762
+ 0.530762
+ 0.530762
+ 0.530762
+ 0.530762
+ 0.530762
+ 0.530762
+ 0.530762
+ 0.530762
+ 0.530762
+ 0.530762
+ 0.530762
+ 0.530762
+ 0.531006
+ 0.531006
+ 0.531006
+ 0.531006
+ 0.531006
+ 0.531006
+ 0.531006
+ 0.531006
+ 0.531006
+ 0.531006
+ 0.531006
+ 0.531006
+ 0.531006
+ 0.531006
+ 0.531006
+ 0.531250
+ 0.531250
+ 0.531250
+ 0.531250
+ 0.531250
+ 0.531250
+ 0.531250
+ 0.531250
+ 0.531250
+ 0.531250
+ 0.531250
+ 0.531250
+ 0.531250
+ 0.531250
+ 0.531250
+ 0.531494
+ 0.531494
+ 0.531494
+ 0.531494
+ 0.531494
+ 0.531494
+ 0.531494
+ 0.531494
+ 0.531494
+ 0.531494
+ 0.531494
+ 0.531494
+ 0.531494
+ 0.531494
+ 0.531494
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531738
+ 0.531982
+ 0.531982
+ 0.531982
+ 0.531982
+ 0.531982
+ 0.531982
+ 0.531982
+ 0.531982
+ 0.531982
+ 0.531982
+ 0.531982
+ 0.531982
+ 0.531982
+ 0.531982
+ 0.531982
+ 0.532227
+ 0.532227
+ 0.532227
+ 0.532227
+ 0.532227
+ 0.532227
+ 0.532227
+ 0.532227
+ 0.532227
+ 0.532227
+ 0.532227
+ 0.532227
+ 0.532227
+ 0.532227
+ 0.532227
+ 0.532471
+ 0.532471
+ 0.532471
+ 0.532471
+ 0.532471
+ 0.532471
+ 0.532471
+ 0.532471
+ 0.532471
+ 0.532471
+ 0.532471
+ 0.532471
+ 0.532471
+ 0.532471
+ 0.532471
+ 0.532715
+ 0.532715
+ 0.532715
+ 0.532715
+ 0.532715
+ 0.532715
+ 0.532715
+ 0.532715
+ 0.532715
+ 0.532715
+ 0.532715
+ 0.532715
+ 0.532715
+ 0.532715
+ 0.532715
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.532959
+ 0.533203
+ 0.533203
+ 0.533203
+ 0.533203
+ 0.533203
+ 0.533203
+ 0.533203
+ 0.533203
+ 0.533203
+ 0.533203
+ 0.533203
+ 0.533203
+ 0.533203
+ 0.533203
+ 0.533203
+ 0.533447
+ 0.533447
+ 0.533447
+ 0.533447
+ 0.533447
+ 0.533447
+ 0.533447
+ 0.533447
+ 0.533447
+ 0.533447
+ 0.533447
+ 0.533447
+ 0.533447
+ 0.533447
+ 0.533447
+ 0.533691
+ 0.533691
+ 0.533691
+ 0.533691
+ 0.533691
+ 0.533691
+ 0.533691
+ 0.533691
+ 0.533691
+ 0.533691
+ 0.533691
+ 0.533691
+ 0.533691
+ 0.533691
+ 0.533691
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.533936
+ 0.534180
+ 0.534180
+ 0.534180
+ 0.534180
+ 0.534180
+ 0.534180
+ 0.534180
+ 0.534180
+ 0.534180
+ 0.534180
+ 0.534180
+ 0.534180
+ 0.534180
+ 0.534180
+ 0.534180
+ 0.534424
+ 0.534424
+ 0.534424
+ 0.534424
+ 0.534424
+ 0.534424
+ 0.534424
+ 0.534424
+ 0.534424
+ 0.534424
+ 0.534424
+ 0.534424
+ 0.534424
+ 0.534424
+ 0.534424
+ 0.534668
+ 0.534668
+ 0.534668
+ 0.534668
+ 0.534668
+ 0.534668
+ 0.534668
+ 0.534668
+ 0.534668
+ 0.534668
+ 0.534668
+ 0.534668
+ 0.534668
+ 0.534668
+ 0.534668
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.534912
+ 0.535156
+ 0.535156
+ 0.535156
+ 0.535156
+ 0.535156
+ 0.535156
+ 0.535156
+ 0.535156
+ 0.535156
+ 0.535156
+ 0.535156
+ 0.535156
+ 0.535156
+ 0.535156
+ 0.535156
+ 0.535400
+ 0.535400
+ 0.535400
+ 0.535400
+ 0.535400
+ 0.535400
+ 0.535400
+ 0.535400
+ 0.535400
+ 0.535400
+ 0.535400
+ 0.535400
+ 0.535400
+ 0.535400
+ 0.535400
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535645
+ 0.535889
+ 0.535889
+ 0.535889
+ 0.535889
+ 0.535889
+ 0.535889
+ 0.535889
+ 0.535889
+ 0.535889
+ 0.535889
+ 0.535889
+ 0.535889
+ 0.535889
+ 0.535889
+ 0.535889
+ 0.536133
+ 0.536133
+ 0.536133
+ 0.536133
+ 0.536133
+ 0.536133
+ 0.536133
+ 0.536133
+ 0.536133
+ 0.536133
+ 0.536133
+ 0.536133
+ 0.536133
+ 0.536133
+ 0.536133
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536377
+ 0.536621
+ 0.536621
+ 0.536621
+ 0.536621
+ 0.536621
+ 0.536621
+ 0.536621
+ 0.536621
+ 0.536621
+ 0.536621
+ 0.536621
+ 0.536621
+ 0.536621
+ 0.536621
+ 0.536621
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.536865
+ 0.537109
+ 0.537109
+ 0.537109
+ 0.537109
+ 0.537109
+ 0.537109
+ 0.537109
+ 0.537109
+ 0.537109
+ 0.537109
+ 0.537109
+ 0.537109
+ 0.537109
+ 0.537109
+ 0.537109
+ 0.537354
+ 0.537354
+ 0.537354
+ 0.537354
+ 0.537354
+ 0.537354
+ 0.537354
+ 0.537354
+ 0.537354
+ 0.537354
+ 0.537354
+ 0.537354
+ 0.537354
+ 0.537354
+ 0.537354
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537598
+ 0.537842
+ 0.537842
+ 0.537842
+ 0.537842
+ 0.537842
+ 0.537842
+ 0.537842
+ 0.537842
+ 0.537842
+ 0.537842
+ 0.537842
+ 0.537842
+ 0.537842
+ 0.537842
+ 0.537842
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538086
+ 0.538330
+ 0.538330
+ 0.538330
+ 0.538330
+ 0.538330
+ 0.538330
+ 0.538330
+ 0.538330
+ 0.538330
+ 0.538330
+ 0.538330
+ 0.538330
+ 0.538330
+ 0.538330
+ 0.538330
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538574
+ 0.538818
+ 0.538818
+ 0.538818
+ 0.538818
+ 0.538818
+ 0.538818
+ 0.538818
+ 0.538818
+ 0.538818
+ 0.538818
+ 0.538818
+ 0.538818
+ 0.538818
+ 0.538818
+ 0.538818
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539062
+ 0.539307
+ 0.539307
+ 0.539307
+ 0.539307
+ 0.539307
+ 0.539307
+ 0.539307
+ 0.539307
+ 0.539307
+ 0.539307
+ 0.539307
+ 0.539307
+ 0.539307
+ 0.539307
+ 0.539307
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539551
+ 0.539795
+ 0.539795
+ 0.539795
+ 0.539795
+ 0.539795
+ 0.539795
+ 0.539795
+ 0.539795
+ 0.539795
+ 0.539795
+ 0.539795
+ 0.539795
+ 0.539795
+ 0.539795
+ 0.539795
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540039
+ 0.540283
+ 0.540283
+ 0.540283
+ 0.540283
+ 0.540283
+ 0.540283
+ 0.540283
+ 0.540283
+ 0.540283
+ 0.540283
+ 0.540283
+ 0.540283
+ 0.540283
+ 0.540283
+ 0.540283
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540527
+ 0.540771
+ 0.540771
+ 0.540771
+ 0.540771
+ 0.540771
+ 0.540771
+ 0.540771
+ 0.540771
+ 0.540771
+ 0.540771
+ 0.540771
+ 0.540771
+ 0.540771
+ 0.540771
+ 0.540771
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541016
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541260
+ 0.541504
+ 0.541504
+ 0.541504
+ 0.541504
+ 0.541504
+ 0.541504
+ 0.541504
+ 0.541504
+ 0.541504
+ 0.541504
+ 0.541504
+ 0.541504
+ 0.541504
+ 0.541504
+ 0.541504
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541748
+ 0.541992
+ 0.541992
+ 0.541992
+ 0.541992
+ 0.541992
+ 0.541992
+ 0.541992
+ 0.541992
+ 0.541992
+ 0.541992
+ 0.541992
+ 0.541992
+ 0.541992
+ 0.541992
+ 0.541992
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542236
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542480
+ 0.542725
+ 0.542725
+ 0.542725
+ 0.542725
+ 0.542725
+ 0.542725
+ 0.542725
+ 0.542725
+ 0.542725
+ 0.542725
+ 0.542725
+ 0.542725
+ 0.542725
+ 0.542725
+ 0.542725
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.542969
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543213
+ 0.543457
+ 0.543457
+ 0.543457
+ 0.543457
+ 0.543457
+ 0.543457
+ 0.543457
+ 0.543457
+ 0.543457
+ 0.543457
+ 0.543457
+ 0.543457
+ 0.543457
+ 0.543457
+ 0.543457
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543701
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.543945
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544189
+ 0.544434
+ 0.544434
+ 0.544434
+ 0.544434
+ 0.544434
+ 0.544434
+ 0.544434
+ 0.544434
+ 0.544434
+ 0.544434
+ 0.544434
+ 0.544434
+ 0.544434
+ 0.544434
+ 0.544434
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544678
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.544922
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545166
+ 0.545410
+ 0.545410
+ 0.545410
+ 0.545410
+ 0.545410
+ 0.545410
+ 0.545410
+ 0.545410
+ 0.545410
+ 0.545410
+ 0.545410
+ 0.545410
+ 0.545410
+ 0.545410
+ 0.545410
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545654
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.545898
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546143
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546387
+ 0.546631
+ 0.546631
+ 0.546631
+ 0.546631
+ 0.546631
+ 0.546631
+ 0.546631
+ 0.546631
+ 0.546631
+ 0.546631
+ 0.546631
+ 0.546631
+ 0.546631
+ 0.546631
+ 0.546631
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.546875
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547119
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547363
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547607
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.547852
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548096
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548340
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548584
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.548828
+ 0.549072
+ 0.549072
+ 0.549072
+ 0.549072
+ 0.549072
+ 0.549072
+ 0.549072
+ 0.549072
+ 0.549072
+ 0.549072
+ 0.549072
+ 0.549072
+ 0.549072
+ 0.549072
+ 0.549072
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549316
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549561
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.549805
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550049
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550293
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550537
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.550781
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551025
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551270
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551514
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.551758
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552002
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552246
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552490
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552734
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.552979
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553223
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553467
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553711
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.553955
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554199
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554443
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554688
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.554932
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555176
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555420
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555664
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.555908
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556152
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556396
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556641
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.556885
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557129
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557373
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557617
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.557861
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558105
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558350
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558594
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.558838
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559082
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559326
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559570
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.559814
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560059
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560303
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560547
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.560791
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561035
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561279
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561523
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.561768
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562012
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562256
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562500
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562744
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.562988
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563232
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563477
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563721
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.563965
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564209
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564453
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564697
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.564941
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565186
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565430
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565674
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.565918
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566162
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566406
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566650
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.566895
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567139
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567383
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567627
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.567871
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568115
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568359
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568604
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.568848
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569092
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569336
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569580
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.569824
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570068
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570312
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570557
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.570801
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571045
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571289
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571533
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.571777
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572021
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572266
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572510
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572754
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.572998
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573242
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573486
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573730
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.573975
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574219
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574463
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574707
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.574951
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575195
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575439
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575684
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.575928
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576172
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576416
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576660
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.576904
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577148
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577393
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577637
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.577881
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578125
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578369
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578613
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.578857
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579102
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579346
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579590
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.579834
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580078
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580322
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580566
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.580811
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581055
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581299
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581543
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.581787
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582031
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582275
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582520
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.582764
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583008
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583252
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583496
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583740
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.583984
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584229
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584473
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584717
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.584961
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585205
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585449
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585693
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.585938
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586182
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586426
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586670
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.586914
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587158
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587402
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587646
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.587891
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588135
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588379
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588623
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.588867
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589111
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589355
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589600
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.589844
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590088
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590332
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590576
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.590820
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591064
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591309
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591553
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.591797
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592041
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592285
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592529
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.592773
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593018
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593262
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593506
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593750
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.593994
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594238
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594482
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594727
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.594971
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595215
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595459
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595703
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.595947
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596191
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596436
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596680
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.596924
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597168
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597412
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597656
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.597900
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598145
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598389
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598633
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.598877
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599121
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599365
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599609
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.599854
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600098
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600342
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600586
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.600830
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601074
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601318
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601562
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.601807
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602051
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602295
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602539
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.602783
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603027
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603271
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603516
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.603760
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604004
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604248
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604492
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604736
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.604980
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605225
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605469
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605713
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.605957
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606201
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606445
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606689
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.606934
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607178
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607422
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607666
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.607910
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608154
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608398
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608643
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.608887
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609131
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609375
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609619
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.609863
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610107
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610352
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610596
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.610840
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611084
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611328
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611572
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.611816
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612061
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612305
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612549
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.612793
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613037
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613281
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613525
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.613770
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614014
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614258
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614502
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614746
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.614990
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615234
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615479
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615723
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.615967
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616211
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616455
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616699
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.616943
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617188
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617432
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617676
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.617920
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618164
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618408
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618652
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.618896
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619141
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619385
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619629
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.619873
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620117
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620361
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620605
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.620850
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621094
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621338
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621582
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.621826
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622070
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622314
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622559
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.622803
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623047
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623291
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623535
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.623779
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624023
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624268
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624512
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.624756
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625000
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625244
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625488
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625732
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.625977
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626221
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626465
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626709
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.626953
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627197
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627441
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627686
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.627930
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628174
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628418
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628662
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.628906
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629150
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629395
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629639
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.629883
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630127
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630371
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630615
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.630859
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631104
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631348
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631592
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.631836
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632080
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632324
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632568
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.632812
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633057
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633301
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633545
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.633789
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634033
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634277
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634521
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.634766
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635010
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635254
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635498
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635742
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.635986
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636230
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636475
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636719
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.636963
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637207
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637451
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637695
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.637939
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638184
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638428
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638672
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.638916
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639160
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639404
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639648
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.639893
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640137
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640381
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640625
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.640869
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641113
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641357
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641602
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.641846
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642090
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642334
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642578
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.642822
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643066
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643311
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643555
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.643799
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644043
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644287
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644531
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.644775
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645020
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645264
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645508
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645752
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.645996
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646240
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646484
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646729
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.646973
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647217
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647461
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647705
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.647949
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648193
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648438
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648682
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.648926
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649170
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649414
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649658
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.649902
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650146
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650391
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650635
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.650879
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651123
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651367
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651611
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.651855
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652100
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652344
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652588
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.652832
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653076
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653320
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653564
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.653809
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654053
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654297
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654541
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.654785
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655029
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655273
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655518
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.655762
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656006
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656250
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656494
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656738
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.656982
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657227
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657471
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657715
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.657959
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658203
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658447
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658691
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.658936
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659180
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659424
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659668
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.659912
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660156
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660400
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660645
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.660889
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661133
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661377
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661621
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.661865
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662109
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662354
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662598
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.662842
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663086
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663330
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663574
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.663818
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664062
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664307
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664551
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.664795
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665039
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665283
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665527
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.665771
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666016
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666260
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666504
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666748
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.666992
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667236
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667480
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667725
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.667969
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668213
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668457
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668701
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.668945
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669189
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669434
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669678
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.669922
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670166
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670410
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670654
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.670898
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671143
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671387
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671631
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.671875
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672119
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672363
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672607
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.672852
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673096
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673340
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673584
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.673828
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674072
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674316
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674561
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.674805
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675049
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675293
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675537
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.675781
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676025
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676270
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676514
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.676758
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677002
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677246
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677490
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677734
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.677979
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678223
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678467
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678711
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.678955
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679199
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679443
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679688
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.679932
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680176
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680420
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680664
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.680908
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681152
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681396
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681641
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.681885
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682129
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682373
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682617
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.682861
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683105
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683350
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683594
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.683838
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684082
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684326
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684570
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.684814
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685059
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685303
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685547
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.685791
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686035
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686279
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686523
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.686768
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687012
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687256
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687500
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687744
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.687988
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688232
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688477
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688721
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.688965
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689209
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689453
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689697
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.689941
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690186
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690430
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690674
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.690918
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691162
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691406
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691650
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.691895
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692139
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692383
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692627
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.692871
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693115
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693359
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693604
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.693848
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694092
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694336
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694580
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.694824
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695068
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695312
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695557
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.695801
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696045
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696289
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696533
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.696777
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697021
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697266
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697510
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697754
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.697998
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698242
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698486
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698730
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.698975
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699219
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699463
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699707
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.699951
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700195
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700439
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700684
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.700928
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701172
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701416
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701660
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.701904
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702148
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702393
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702637
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.702881
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703125
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703369
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703613
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.703857
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704102
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704346
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704590
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.704834
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705078
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705322
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705566
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.705811
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706055
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706299
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706543
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.706787
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707031
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707275
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707520
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.707764
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708008
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708252
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708496
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708740
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.708984
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709229
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709473
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709717
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.709961
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710205
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710449
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710693
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.710938
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711182
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711426
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711670
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.711914
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712158
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712402
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712646
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.712891
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713135
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713379
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713623
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.713867
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714111
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714355
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714600
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.714844
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715088
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715332
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715576
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.715820
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716064
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716309
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716553
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.716797
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717041
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717285
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717529
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.717773
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718018
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718262
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718506
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718750
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.718994
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719238
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719482
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719727
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.719971
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720215
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720459
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720703
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.720947
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721191
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721436
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721680
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.721924
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722168
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722412
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722656
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.722900
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723145
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723389
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723633
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.723877
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724121
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724365
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724609
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.724854
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725098
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725342
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725586
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.725830
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726074
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726318
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726562
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.726807
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727051
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727295
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727539
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.727783
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728027
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728271
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728516
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.728760
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729004
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729248
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729492
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729736
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.729980
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730225
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730469
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730713
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.730957
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731201
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731445
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731689
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.731934
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732178
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732422
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732666
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.732910
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733154
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733398
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733643
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.733887
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734131
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734375
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734619
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.734863
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735107
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735352
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735596
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.735840
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736084
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736328
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736572
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.736816
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737061
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737305
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737549
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.737793
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738037
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738281
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738525
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.738770
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739014
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739258
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739502
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739746
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.739990
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740234
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740479
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740723
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.740967
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741211
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741455
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741699
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.741943
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742188
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742432
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742676
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.742920
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743164
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743408
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743652
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.743896
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744141
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744385
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744629
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.744873
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745117
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745361
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745605
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.745850
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746094
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746338
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746582
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.746826
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747070
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747314
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747559
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.747803
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748047
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748291
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748535
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.748779
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749023
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749268
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749512
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.749756
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750000
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750244
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750488
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750732
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.750977
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751221
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751465
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751709
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.751953
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752197
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752441
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752686
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.752930
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753174
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753418
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753662
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.753906
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754150
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754395
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754639
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.754883
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755127
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755371
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755615
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.755859
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756104
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756348
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756592
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.756836
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757080
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757324
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757568
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.757812
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758057
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758301
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758545
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.758789
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759033
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759277
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759521
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.759766
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760010
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760254
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760498
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760742
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.760986
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761230
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761475
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761719
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.761963
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762207
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762451
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762695
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.762939
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763184
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763428
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763672
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.763916
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764160
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764404
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764648
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.764893
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765137
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765381
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765625
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.765869
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766113
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766357
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766602
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.766846
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767090
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767334
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767578
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.767822
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768066
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768311
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768555
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.768799
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769043
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769287
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769531
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.769775
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770020
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770264
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770508
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770752
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.770996
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771240
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771484
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771729
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.771973
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772217
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772461
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772705
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.772949
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773193
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773438
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773682
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.773926
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774170
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774414
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774658
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.774902
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775146
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775391
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775635
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.775879
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776123
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776367
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776611
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.776855
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777100
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777344
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777588
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.777832
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778076
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778320
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778564
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.778809
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779053
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779297
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779541
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.779785
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780029
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780273
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780518
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.780762
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781006
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781250
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781494
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781738
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.781982
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782227
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782471
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782715
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.782959
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783203
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783447
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783691
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.783936
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784180
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784424
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784668
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.784912
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785156
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785400
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785645
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.785889
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786133
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786377
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786621
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.786865
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787109
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787354
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787598
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.787842
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788086
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788330
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788574
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.788818
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789062
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789307
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789551
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.789795
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790039
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790283
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790527
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.790771
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791016
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791260
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791504
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791748
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.791992
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792236
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792480
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792725
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.792969
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793213
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793457
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793701
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.793945
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794189
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794434
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794678
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.794922
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795166
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795410
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795654
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.795898
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796143
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796387
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796631
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.796875
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797119
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797363
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797607
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.797852
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798096
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798340
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798584
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.798828
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799072
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799316
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799561
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.799805
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800049
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800293
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800537
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.800781
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801025
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801270
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801514
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.801758
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802002
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802246
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802490
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802734
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.802979
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803223
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803467
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803711
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.803955
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804199
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804443
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804688
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.804932
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805176
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805420
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805664
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.805908
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806152
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806396
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806641
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.806885
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807129
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807373
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807617
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.807861
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808105
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808350
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808594
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.808838
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809082
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809326
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809570
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.809814
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810059
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810303
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810547
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.810791
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811035
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811279
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811523
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.811768
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812012
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812256
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812500
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812744
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.812988
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813232
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813477
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813721
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.813965
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814209
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814453
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814697
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.814941
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815186
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815430
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815674
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.815918
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816162
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816406
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816650
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.816895
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817139
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817383
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817627
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.817871
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818115
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818359
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818604
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.818848
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819092
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819336
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819580
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.819824
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820068
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820312
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820557
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.820801
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821045
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821289
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821533
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.821777
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822021
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822266
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822510
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822754
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.822998
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823242
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823486
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823730
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.823975
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824219
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824463
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824707
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.824951
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825195
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825439
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825684
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.825928
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826172
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826416
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826660
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.826904
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827148
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827393
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827637
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.827881
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828125
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828369
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828613
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.828857
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829102
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829346
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829590
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.829834
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830078
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830322
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830566
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.830811
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831055
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831299
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831543
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.831787
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832031
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832275
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832520
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.832764
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833008
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833252
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833496
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833740
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.833984
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834229
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834473
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834717
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.834961
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835205
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835449
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835693
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.835938
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836182
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836426
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836670
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.836914
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837158
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837402
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837646
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.837891
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838135
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838379
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838623
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.838867
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839111
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839355
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839600
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.839844
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840088
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840332
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840576
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.840820
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841064
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841309
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841553
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.841797
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842041
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842285
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842529
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.842773
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843018
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843262
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843506
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843750
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.843994
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844238
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844482
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844727
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.844971
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845215
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845459
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845703
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.845947
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846191
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846436
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846680
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.846924
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847168
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847412
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847656
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.847900
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848145
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848389
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848633
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.848877
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849121
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849365
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849609
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.849854
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850098
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850342
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850586
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.850830
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851074
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851318
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851562
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.851807
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852051
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852295
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852539
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.852783
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853027
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853271
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853516
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.853760
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854004
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854248
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854492
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854736
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.854980
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855225
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855469
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855713
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.855957
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856201
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856445
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856689
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.856934
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857178
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857422
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857666
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.857910
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858154
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858398
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858643
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.858887
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859131
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859375
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859619
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.859863
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860107
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860352
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860596
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.860840
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861084
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861328
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861572
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.861816
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862061
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862305
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862549
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.862793
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863037
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863281
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863525
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.863770
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864014
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864258
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864502
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864746
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.864990
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865234
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865479
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865723
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.865967
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866211
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866455
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866699
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.866943
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867188
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867432
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867676
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.867920
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868164
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868408
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868652
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.868896
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869141
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869385
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869629
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.869873
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870117
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870361
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870605
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.870850
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871094
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871338
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871582
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.871826
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872070
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872314
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872559
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.872803
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873047
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873291
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873535
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.873779
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874023
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874268
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874512
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.874756
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875000
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875244
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875488
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875732
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.875977
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876221
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876465
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876709
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.876953
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877197
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877441
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877686
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.877930
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878174
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878418
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878662
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.878906
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879150
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879395
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879639
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.879883
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880127
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880371
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880615
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.880859
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881104
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881348
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881592
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.881836
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882080
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882324
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882568
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.882812
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883057
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883301
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883545
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.883789
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884033
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884277
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884521
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.884766
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885010
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885254
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885498
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885742
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.885986
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886230
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886475
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886719
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.886963
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887207
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887451
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887695
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.887939
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888184
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888428
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888672
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.888916
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889160
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889404
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889648
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.889893
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890137
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890381
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890625
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.890869
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891113
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891357
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891602
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.891846
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892090
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892334
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892578
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.892822
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893066
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893311
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893555
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.893799
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894043
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894287
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894531
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.894775
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895020
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895264
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895508
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895752
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.895996
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896240
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896484
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896729
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.896973
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897217
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897461
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897705
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.897949
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898193
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898438
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898682
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.898926
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899170
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899414
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899658
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.899902
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900146
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900391
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900635
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.900879
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901123
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901367
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901611
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.901855
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902100
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902344
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902588
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.902832
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903076
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903320
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903564
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.903809
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904053
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904297
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904541
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.904785
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905029
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905273
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905518
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.905762
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906006
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906250
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906494
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906738
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.906982
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907227
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907471
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907715
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.907959
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908203
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908447
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908691
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.908936
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909180
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909424
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909668
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.909912
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910156
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910400
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910645
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.910889
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911133
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911377
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911621
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.911865
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912109
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912354
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912598
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.912842
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913086
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913330
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913574
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.913818
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914062
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914307
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914551
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.914795
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915039
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915283
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915527
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.915771
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916016
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916260
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916504
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916748
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.916992
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917236
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917480
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917725
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.917969
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918213
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918457
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918701
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.918945
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919189
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919434
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919678
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.919922
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920166
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920410
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920654
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.920898
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921143
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921387
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921631
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.921875
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922119
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922363
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922607
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.922852
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923096
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923340
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923584
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.923828
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924072
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924316
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924561
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.924805
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925049
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925293
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925537
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.925781
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926025
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926270
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926514
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.926758
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927002
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927246
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927490
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927734
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.927979
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928223
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928467
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928711
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.928955
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929199
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929443
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929688
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.929932
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930176
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930420
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930664
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.930908
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931152
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931396
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931641
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.931885
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932129
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932373
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932617
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.932861
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933105
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933350
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933594
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.933838
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934082
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934326
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934570
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.934814
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935059
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935303
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935547
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.935791
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936035
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936279
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936523
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.936768
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937012
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937256
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937500
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937744
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.937988
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938232
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938477
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938721
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.938965
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939209
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939453
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939697
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.939941
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940186
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940430
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940674
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.940918
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941162
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941406
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941650
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.941895
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942139
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942383
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942627
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.942871
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943115
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943359
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943604
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.943848
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944092
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944336
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944580
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.944824
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945068
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945312
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945557
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.945801
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946045
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946289
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946533
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.946777
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947021
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947266
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947510
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947754
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.947998
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948242
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948486
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948730
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.948975
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949219
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949463
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949707
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.949951
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950195
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950439
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950684
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.950928
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951172
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951416
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951660
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.951904
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952148
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952393
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952637
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.952881
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953125
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953369
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953613
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.953857
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954102
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954346
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954590
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.954834
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955078
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955322
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955566
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.955811
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956055
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956299
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956543
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.956787
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957031
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957275
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957520
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.957764
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958008
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958252
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958496
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958740
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.958984
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959229
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959473
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959717
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.959961
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960205
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960449
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960693
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.960938
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961182
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961426
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961670
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.961914
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962158
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962402
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962646
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.962891
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963135
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963379
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963623
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.963867
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964111
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964355
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964600
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.964844
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965088
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965332
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965576
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.965820
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966064
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966309
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966553
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.966797
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967041
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967285
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967529
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.967773
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968018
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968262
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968506
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968750
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.968994
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969238
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969482
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969727
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.969971
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970215
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970459
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970703
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.970947
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971191
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971436
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971680
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.971924
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972168
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972412
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972656
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.972900
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973145
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973389
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973633
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.973877
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974121
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974365
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974609
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.974854
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975098
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975342
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975586
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.975830
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976074
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976318
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976562
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.976807
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977051
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977295
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977539
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.977783
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978027
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978271
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978516
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.978760
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979004
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979248
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979492
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979736
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.979980
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980225
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980469
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980713
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.980957
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981201
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981445
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981689
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.981934
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982178
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982422
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982666
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.982910
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983154
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983398
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983643
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.983887
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984131
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984375
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984619
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.984863
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985107
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985352
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985596
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.985840
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986084
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986328
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986572
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.986816
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987061
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987305
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987549
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.987793
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988037
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988281
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988525
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.988770
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989014
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989258
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989502
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989746
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.989990
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990234
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990479
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990723
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.990967
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991211
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991455
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991699
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.991943
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992188
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992432
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992676
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.992920
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993164
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993408
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993652
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.993896
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994141
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994385
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994629
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.994873
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995117
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995361
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995605
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.995850
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996094
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996338
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996582
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.996826
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997070
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997314
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997559
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.997803
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998047
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998291
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998535
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.998779
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999023
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999268
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999512
+ 0.999756
+}
diff --git a/release/datafiles/colormanagement/luts/lg10.spi1d b/release/datafiles/colormanagement/luts/lg10.spi1d
new file mode 100644
index 00000000000..148c809bc36
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/lg10.spi1d
@@ -0,0 +1,2054 @@
+Version 1
+From 0.0 1.0
+Length 2048
+Components 1
+{
+ 3.0517578125e-05
+ 3.1315700371520417e-05
+ 3.2134420416480743e-05
+ 3.2974260634173945e-05
+ 3.3835756341150887e-05
+ 3.4719456106020991e-05
+ 3.5625922066277402e-05
+ 3.6555730252290222e-05
+ 3.7509470918612837e-05
+ 3.848774888275099e-05
+ 3.9491183871542739e-05
+ 4.0520410875304305e-05
+ 4.157608050989493e-05
+ 4.2658859386858501e-05
+ 4.3769430491801814e-05
+ 4.4908493571171243e-05
+ 4.6076765527590087e-05
+ 4.7274980823925932e-05
+ 4.8503891896253155e-05
+ 4.9764269575883683e-05
+ 5.1056903520636313e-05
+ 5.23826026555226e-05
+ 5.3742195623022875e-05
+ 5.5136531243133402e-05
+ 5.6566478983364575e-05
+ 5.8032929438874994e-05
+ 5.9536794822921754e-05
+ 6.107900946781976e-05
+ 6.266053033659155e-05
+ 6.4282337545503584e-05
+ 6.5945434897675929e-05
+ 6.7650850427961021e-05
+ 6.9399636959284895e-05
+ 7.1192872670646201e-05
+ 7.3031661676970159e-05
+ 7.4917134621015833e-05
+ 7.6850449277533482e-05
+ 7.883279116987421e-05
+ 8.0865374199248159e-05
+ 8.2949441286836304e-05
+ 8.5086265028951372e-05
+ 8.7277148365452273e-05
+ 8.9523425261611709e-05
+ 9.1826461403633804e-05
+ 9.4187654908027248e-05
+ 9.6608437045024988e-05
+ 9.9090272976254585e-05
+ 0.00010163466250685006
+ 0.0001042431408522007
+ 0.00010691727941952996
+ 0.00010965868660449022
+ 0.00011246900860296613
+ 0.00011534993023826097
+ 0.0001183031758038533
+ 0.00012133050992189348
+ 0.00012443373841761641
+ 0.00012761470920982857
+ 0.00013087531321763493
+ 0.00013421748528355998
+ 0.00013764320511319979
+ 0.0001411544982315589
+ 0.00014475343695618813
+ 0.00014844214138725681
+ 0.00015222278041466183
+ 0.0001560975727422808
+ 0.00016006878792946061
+ 0.00016413874744980908
+ 0.00016830982576736611
+ 0.00017258445143019565
+ 0.00017696510818143612
+ 0.00018145433608782391
+ 0.00018605473268569277
+ 0.00019076895414442613
+ 0.00019559971644732675
+ 0.00020054979658982978
+ 0.00020562203379498976
+ 0.00021081933074611453
+ 0.00021614465483641655
+ 0.00022160103943550833
+ 0.00022719158517254615
+ 0.00023291946123579378
+ 0.00023878790668832979
+ 0.00024480023179960483
+ 0.00025095981939249269
+ 0.00025727012620546365
+ 0.0002637346842694291
+ 0.00027035710229879301
+ 0.00027714106709616576
+ 0.00028409034497015891
+ 0.00029120878316561563
+ 0.000298500311305564
+ 0.00030596894284412634
+ 0.0003136187765295311
+ 0.00032145399787631942
+ 0.00032947888064573707
+ 0.00033769778833323775
+ 0.00034611517566191668
+ 0.0003547355900806166
+ 0.00036356367326532106
+ 0.00037260416262237776
+ 0.00038186189279193142
+ 0.00039134179714988296
+ 0.00040104890930650258
+ 0.00041098836459972795
+ 0.00042116540158101636
+ 0.00043158536349146204
+ 0.00044225369972572342
+ 0.00045317596728114239
+ 0.00046435783218921873
+ 0.00047580507092644125
+ 0.00048752357180124038
+ 0.00049951933631358573
+ 0.00051179848048355566
+ 0.00052436723614490309
+ 0.00053723195219939159
+ 0.00055039909582737287
+ 0.00056387525364977179
+ 0.00057766713283631305
+ 0.00059178156215445015
+ 0.00060622549295310071
+ 0.00062100600007489301
+ 0.00063613028269014305
+ 0.00065160566504540631
+ 0.0006674395971188571
+ 0.00068363965517431442
+ 0.00070021354220506848
+ 0.00071716908825816426
+ 0.00073451425062904217
+ 0.00075225711391582815
+ 0.00077040588992174507
+ 0.00078896891739338188
+ 0.00080795466158165138
+ 0.00082737171361133596
+ 0.00084722878964419172
+ 0.00086753472981940575
+ 0.00088829849695413695
+ 0.00090952917498559748
+ 0.00093123596713474738
+ 0.0009534281937703152
+ 0.00097611528995020409
+ 0.00099930680261566722
+ 0.001023012387411876
+ 0.0010472418051064066
+ 0.001072004917575079
+ 0.001097311683322229
+ 0.0011231721524999736
+ 0.0011495964613881453
+ 0.0011765948262937604
+ 0.0012041775368253492
+ 0.0012323549484940901
+ 0.0012611374745895919
+ 0.001290535577273978
+ 0.0013205597578331381
+ 0.0013512205460188484
+ 0.0013825284884097114
+ 0.0014144941357126792
+ 0.0014471280289198988
+ 0.0014804406842279627
+ 0.0015144425766182672
+ 0.0015491441219876794
+ 0.0015845556577083013
+ 0.0016206874214835659
+ 0.0016575495283548652
+ 0.0016951519456985511
+ 0.0017335044660368639
+ 0.0017726166774682699
+ 0.0018124979315022321
+ 0.0018531573080605274
+ 0.0018946035773811235
+ 0.0019368451585313946
+ 0.0019798900742039752
+ 0.0020237459014306996
+ 0.0020684197178066212
+ 0.0021139180427667448
+ 0.0021602467734010145
+ 0.002207411114227815
+ 0.0022554155002704806
+ 0.0023042635126938578
+ 0.0023539577861559388
+ 0.0024044999069109084
+ 0.0024558903005605704
+ 0.0025081281081875918
+ 0.0025612110494105827
+ 0.0026151352706719425
+ 0.002669895176796389
+ 0.0027254832435312298
+ 0.0027818898083866168
+ 0.0028391028366186416
+ 0.0028971076586204862
+ 0.0029558866742802185
+ 0.0030154190189945148
+ 0.0030756801849507716
+ 0.0031366415899473626
+ 0.0031982700843347332
+ 0.0032605273845242679
+ 0.0033233694187847647
+ 0.0033867455675334014
+ 0.003450597775759197
+ 0.003514859509213316
+ 0.0035794545180234992
+ 0.0036442953606626955
+ 0.0037092816265877231
+ 0.0037742977756689928
+ 0.0038392104841892811
+ 0.0039038653467270159
+ 0.0039680827243750577
+ 0.0040316524423022653
+ 0.0040943269066936391
+ 0.0041558120035162403
+ 0.0042157548076727858
+ 0.0042737265754496006
+ 0.0043292053405901811
+ 0.0043836169381053147
+ 0.0044383748536647692
+ 0.0044934613955575188
+ 0.0045488592860845204
+ 0.0046045517306858106
+ 0.0046605224782682074
+ 0.0047167558726410944
+ 0.0047732368951445368
+ 0.0048299511987085963
+ 0.0048868851337134471
+ 0.0049440257661253423
+ 0.0050013608884644364
+ 0.0050588790242174888
+ 0.0051165694263439589
+ 0.0051744220705397951
+ 0.0052324276439224202
+ 0.0052905775297853652
+ 0.0053488637890447555
+ 0.0054072791389648718
+ 0.0054658169297088239
+ 0.0055244711192148997
+ 0.0055832362468515914
+ 0.005642107406255919
+ 0.0057010802177119404
+ 0.005760150800380062
+ 0.0058193157446439709
+ 0.0058785720848009105
+ 0.0059379172722832194
+ 0.0059973491495646774
+ 0.0060568659248740843
+ 0.0061164661478110647
+ 0.0061761486859347172
+ 0.0062359127023746538
+ 0.0062957576344956617
+ 0.0063556831736318199
+ 0.0064156892458926834
+ 0.0064757759940333882
+ 0.0065359437603715537
+ 0.0065961930707267172
+ 0.0066565246193524136
+ 0.006716939254826625
+ 0.0067774379668632178
+ 0.0068380218740046626
+ 0.0068986922121550415
+ 0.0069594503239115441
+ 0.0070202976486524937
+ 0.0070812357133403494
+ 0.0071422661239986989
+ 0.0072033905578232985
+ 0.0072646107558884216
+ 0.007325928516411096
+ 0.0073873456885374094
+ 0.0074488641666165464
+ 0.0075104858849298845
+ 0.0075722128128442182
+ 0.0076340469503597052
+ 0.0076959903240248154
+ 0.0077580449831922372
+ 0.0078202129965911967
+ 0.0078824964491931004
+ 0.0079448974393490687
+ 0.0080074180761790324
+ 0.0080700604771936704
+ 0.0081328267661315845
+ 0.008195719070995252
+ 0.0082587395222706601
+ 0.008321890251316251
+ 0.0083851733889081636
+ 0.0084485910639294191
+ 0.008512145402191789
+ 0.0085758385253796761
+ 0.0086396725501064198
+ 0.0087036495870738625
+ 0.0087677717403268438
+ 0.0088320411065949019
+ 0.0088964597747139568
+ 0.0089610298251215133
+ 0.009025753329418993
+ 0.0090906323499958357
+ 0.0091556689397099666
+ 0.0092208651416198755
+ 0.0092862229887638367
+ 0.0093517445039822348
+ 0.0094174316997791049
+ 0.0094832865782195006
+ 0.0095493111308594062
+ 0.0096155073387053213
+ 0.0096818771722006654
+ 0.009748422591236594
+ 0.0098151455451848859
+ 0.0098820479729507579
+ 0.0099491318030436472
+ 0.010016398953664222
+ 0.010083851332805874
+ 0.010151490838369264
+ 0.010219319358288461
+ 0.010287338770667382
+ 0.010355550943925486
+ 0.010423957736951468
+ 0.010492560999264077
+ 0.010561362571179105
+ 0.010630364283981755
+ 0.010699567960103623
+ 0.010768975413303537
+ 0.010838588448851737
+ 0.010908408863716664
+ 0.010978438446754054
+ 0.01104867897889754
+ 0.011119132233350681
+ 0.011189799975779713
+ 0.011260683964506885
+ 0.011331785950703896
+ 0.011403107678585239
+ 0.011474650885601127
+ 0.011546417302629822
+ 0.01161840865416903
+ 0.011690626658526337
+ 0.011763073028008336
+ 0.011835749469108467
+ 0.011908657682693221
+ 0.011981799364186816
+ 0.012055176203754086
+ 0.012128789886481474
+ 0.012202642092556178
+ 0.012276734497443261
+ 0.012351068772060681
+ 0.012425646582952287
+ 0.012500469592458596
+ 0.012575539458885341
+ 0.012650857836669971
+ 0.012726426376545721
+ 0.012802246725703542
+ 0.012878320527951724
+ 0.012954649423873289
+ 0.013031235050981062
+ 0.013108079043870506
+ 0.013185183034370308
+ 0.013262548651690659
+ 0.013340177522569356
+ 0.013418071271415663
+ 0.013496231520451952
+ 0.013574659889853164
+ 0.013653357997884133
+ 0.013732327461034709
+ 0.013811569894152834
+ 0.013891086910575497
+ 0.013970880122257619
+ 0.014050951139898918
+ 0.01413130157306877
+ 0.014211933030329095
+ 0.014292847119355297
+ 0.014374045447055265
+ 0.014455529619686542
+ 0.014537301242971635
+ 0.014619361922211405
+ 0.014701713262396896
+ 0.014784356868319087
+ 0.014867294344677245
+ 0.014950527296185401
+ 0.015034057327677154
+ 0.015117886044208953
+ 0.01520201505116171
+ 0.015286445954340861
+ 0.015371180360074935
+ 0.015456219875312491
+ 0.015541566107717768
+ 0.015627220665764739
+ 0.015713185158829825
+ 0.015799461197283215
+ 0.015886050392578795
+ 0.015972954357342785
+ 0.01606017470546111
+ 0.016147713052165412
+ 0.01623557101411786
+ 0.016323750209494829
+ 0.0164122522580692
+ 0.016501078781291686
+ 0.016590231402370891
+ 0.016679711746352358
+ 0.01676952144019643
+ 0.01685966211285508
+ 0.016950135395347756
+ 0.017040942920836154
+ 0.017132086324697957
+ 0.017223567244599756
+ 0.017315387320568799
+ 0.017407548195064019
+ 0.017500051513046032
+ 0.017592898922046286
+ 0.017686092072235374
+ 0.017779632616490418
+ 0.017873569977332752
+ 0.017967968851050207
+ 0.018062831385412637
+ 0.018158159443146381
+ 0.018253954890683283
+ 0.018350219598159041
+ 0.018446955439412289
+ 0.018544164291984605
+ 0.01864184803712127
+ 0.018740008559772908
+ 0.018838647748598121
+ 0.018937767495966863
+ 0.019037369697964924
+ 0.019137456254399238
+ 0.019238029068804292
+ 0.019339090048449442
+ 0.019440641104347293
+ 0.019542684151263118
+ 0.019645221107725416
+ 0.019748253896037415
+ 0.019851784442289886
+ 0.019955814676374875
+ 0.020060346532000835
+ 0.020165381946708708
+ 0.020270922861889345
+ 0.0203769712228021
+ 0.02048352897859472
+ 0.020590598082324454
+ 0.020698180490980402
+ 0.02080627816550721
+ 0.020914893070830217
+ 0.021024027175881616
+ 0.021133682453628375
+ 0.021243860881101206
+ 0.021354564439425121
+ 0.021465795113851317
+ 0.021577554893790575
+ 0.021689845772847993
+ 0.021802669748859228
+ 0.021916028823928305
+ 0.022029925004466825
+ 0.022144360301234622
+ 0.022259336729382125
+ 0.0223748563084941
+ 0.022490921062635064
+ 0.022607533020396062
+ 0.022724694214943334
+ 0.022842406684068187
+ 0.022960672470238801
+ 0.023079493620653438
+ 0.02319887218729532
+ 0.023318810226989121
+ 0.023439309801459095
+ 0.023560372977388864
+ 0.023682001826482803
+ 0.023804198425529041
+ 0.023926964856464256
+ 0.02405030320643993
+ 0.024174215567890431
+ 0.024298704038602629
+ 0.024423770721787256
+ 0.024549417726151882
+ 0.024675647165975534
+ 0.024802461161185025
+ 0.024929861837432944
+ 0.025057851326177202
+ 0.025186431764762339
+ 0.025315605296502362
+ 0.025445374070765386
+ 0.025575740243059714
+ 0.025706705975121657
+ 0.025838273435004961
+ 0.025970444797171768
+ 0.026103222242585294
+ 0.02623660795880392
+ 0.026370604140077036
+ 0.026505212987442336
+ 0.026640436708824589
+ 0.02677627751913619
+ 0.026912737640378947
+ 0.027049819301747453
+ 0.027187524739734112
+ 0.027325856198235285
+ 0.027464815928659209
+ 0.02760440619003518
+ 0.027744629249124093
+ 0.027885487380530486
+ 0.028026982866815826
+ 0.028169117998613245
+ 0.028311895074743468
+ 0.0284553164023321
+ 0.028599384296928175
+ 0.028744101082623895
+ 0.028889469092175584
+ 0.029035490667125886
+ 0.029182168157927024
+ 0.029329503924065178
+ 0.029477500334186155
+ 0.02962615976622179
+ 0.029775484607517673
+ 0.02992547725496169
+ 0.030076140115113694
+ 0.030227475604335908
+ 0.030379486148924498
+ 0.030532174185241751
+ 0.030685542159849224
+ 0.030839592529641829
+ 0.03099432776198233
+ 0.03114975033483702
+ 0.031305862736911744
+ 0.031462667467788766
+ 0.031620167038064209
+ 0.031778363969486169
+ 0.031937260795093278
+ 0.032096860059353943
+ 0.032257164318305817
+ 0.032418176139696116
+ 0.032579898103121896
+ 0.032742332800171206
+ 0.03290548283456414
+ 0.033069350822294521
+ 0.033233939391771619
+ 0.033399251183962433
+ 0.033565288852533674
+ 0.033732055063994598
+ 0.033899552497839269
+ 0.034067783846689466
+ 0.034236751816437372
+ 0.034406459126388386
+ 0.034576908509403884
+ 0.034748102712044121
+ 0.034920044494710673
+ 0.035092736631789363
+ 0.03526618191179242
+ 0.035440383137501003
+ 0.035615343126107202
+ 0.035791064709355953
+ 0.035967550733686598
+ 0.036144804060374444
+ 0.036322827565671477
+ 0.036501624140947264
+ 0.03668119669282921
+ 0.03686154814334254
+ 0.037042681430049573
+ 0.037224599506189046
+ 0.037407305340814469
+ 0.037590801918932354
+ 0.037775092241639538
+ 0.03796017932626046
+ 0.038146066206483226
+ 0.038332755932495903
+ 0.038520251571121274
+ 0.038708556205951761
+ 0.038897672937483162
+ 0.039087604883248091
+ 0.039278355177948365
+ 0.039469926973587123
+ 0.039662323439599696
+ 0.039855547762984361
+ 0.040049603148431728
+ 0.04024449281845386
+ 0.040440220013512246
+ 0.040636787992145387
+ 0.04083420003109503
+ 0.041032459425432287
+ 0.041231569488682236
+ 0.041431533552948298
+ 0.0416323549690353
+ 0.041834037106572131
+ 0.042036583354133107
+ 0.042239997119358892
+ 0.04244428182907628
+ 0.042649440929417359
+ 0.042855477885937451
+ 0.043062396183732803
+ 0.043270199327556554
+ 0.043478890841934743
+ 0.043688474271280767
+ 0.043898953180009435
+ 0.044110331152649722
+ 0.044322611793957203
+ 0.04453579872902505
+ 0.044749895603394818
+ 0.044964906083165626
+ 0.045180833855103297
+ 0.045397682626748002
+ 0.0456154561265215
+ 0.045834158103833463
+ 0.046053792329186709
+ 0.046274362594282109
+ 0.046495872712122376
+ 0.046718326517115043
+ 0.046941727865174969
+ 0.047166080633825692
+ 0.047391388722300358
+ 0.047617656051641748
+ 0.047844886564801556
+ 0.048073084226739074
+ 0.048302253024519029
+ 0.048532396967408839
+ 0.048763520086975223
+ 0.048995626437179932
+ 0.049228720094475271
+ 0.049462805157898269
+ 0.049697885749165116
+ 0.049933966012764404
+ 0.050171050116049901
+ 0.050409142249332677
+ 0.050648246625973191
+ 0.050888367482471997
+ 0.051129509078560786
+ 0.051371675697292236
+ 0.051614871645129887
+ 0.051859101252037243
+ 0.052104368871566539
+ 0.052350678880947125
+ 0.052598035681173383
+ 0.052846443697092169
+ 0.053095907377490051
+ 0.053346431195180115
+ 0.053598019647088456
+ 0.053850677254340187
+ 0.054104408562345434
+ 0.054359218140884985
+ 0.054615110584195298
+ 0.054872090511053885
+ 0.05513016256486402
+ 0.055389331413739307
+ 0.055649601750588328
+ 0.055910978293198653
+ 0.056173465784321489
+ 0.056437068991754893
+ 0.05670179270842856
+ 0.05696764175248685
+ 0.057234620967373057
+ 0.057502735221912869
+ 0.057771989410397941
+ 0.058042388452669742
+ 0.058313937294202825
+ 0.058586640906188737
+ 0.058860504285619744
+ 0.059135532455372182
+ 0.05941173046429063
+ 0.059689103387271493
+ 0.059967656325347146
+ 0.060247394405769948
+ 0.060528322782096591
+ 0.060810446634272174
+ 0.061093771168715345
+ 0.061378301618402215
+ 0.061664043242952091
+ 0.061951001328712209
+ 0.062239181188843154
+ 0.062528588163404591
+ 0.062819227619441212
+ 0.063111104951068767
+ 0.063404225579560713
+ 0.063698594953434953
+ 0.063994218548540802
+ 0.064291101868146655
+ 0.064589250443027782
+ 0.064888669831554238
+ 0.065189365619779796
+ 0.065491343421530498
+ 0.065794608878494393
+ 0.066099167660310945
+ 0.066405025464661496
+ 0.066712188017359772
+ 0.067020661072443116
+ 0.067330450412263709
+ 0.06764156184758123
+ 0.067954001217654797
+ 0.06826777439033635
+ 0.068582887262164105
+ 0.068899345758456645
+ 0.069217155833407581
+ 0.069536323470180683
+ 0.069856854681005567
+ 0.070178755507274149
+ 0.070502032019637298
+ 0.070826690318102556
+ 0.071152736532131861
+ 0.07148017682074051
+ 0.071809017372596332
+ 0.072139264406119591
+ 0.072470924169583409
+ 0.072804002941215196
+ 0.073138507029298291
+ 0.073474442772274495
+ 0.073811816538847108
+ 0.074150634728085155
+ 0.074490903769527314
+ 0.074832630123287711
+ 0.075175820280161315
+ 0.075520480761730818
+ 0.075866618120473961
+ 0.076214238939871434
+ 0.076563349834515626
+ 0.076913957450220408
+ 0.077266068464130852
+ 0.077619689584834728
+ 0.077974827552473758
+ 0.078331489138856528
+ 0.078689681147571369
+ 0.079049410414100477
+ 0.079410683805934926
+ 0.079773508222689887
+ 0.080137890596220993
+ 0.080503837890741822
+ 0.080871357102941396
+ 0.081240455262103203
+ 0.08161113943022455
+ 0.081983416702137005
+ 0.082357294205627374
+ 0.082732779101560128
+ 0.083109878583999361
+ 0.083488599880333553
+ 0.083868950251398691
+ 0.084250936991604616
+ 0.084634567429060795
+ 0.085019848925703009
+ 0.08540678887742148
+ 0.08579539471418958
+ 0.086185673900193008
+ 0.086577633933960577
+ 0.086971282348494813
+ 0.087366626711404896
+ 0.087763674625038923
+ 0.088162433726617986
+ 0.088562911688371063
+ 0.088965116217670448
+ 0.089369055057167635
+ 0.089774735984931964
+ 0.090182166814587544
+ 0.090591355395453307
+ 0.091002309612682422
+ 0.091415037387403517
+ 0.091829546676862342
+ 0.092245845474564589
+ 0.092663941810419287
+ 0.093083843750883799
+ 0.093505559399108581
+ 0.093929096895084052
+ 0.094354464415787487
+ 0.094781670175331637
+ 0.095210722425113109
+ 0.095641629453963248
+ 0.096074399588298096
+ 0.096509041192271203
+ 0.096945562667925519
+ 0.097383972455348133
+ 0.097824279032823633
+ 0.098266490916991064
+ 0.098710616662999212
+ 0.099156664864665039
+ 0.099604644154631369
+ 0.10005456320452681
+ 0.10050643072512555
+ 0.10096025546650912
+ 0.10141604621822789
+ 0.10187381180946513
+ 0.10233356110920022
+ 0.10279530302637437
+ 0.10325904651005623
+ 0.10372480054960917
+ 0.10419257417485892
+ 0.10466237645626295
+ 0.10513421650507994
+ 0.10560810347354083
+ 0.10608404655502049
+ 0.10656205498421091
+ 0.10704213803729441
+ 0.10752430503211938
+ 0.10800856532837444
+ 0.10849492832776714
+ 0.10898340347420003
+ 0.10947400025395039
+ 0.10996672819584953
+ 0.11046159687146356
+ 0.11095861589527506
+ 0.111457794924866
+ 0.1119591436611012
+ 0.11246267184831311
+ 0.11296838927448753
+ 0.11347630577145057
+ 0.11398643121505597
+ 0.11449877552537428
+ 0.11501334866688197
+ 0.11553016064865346
+ 0.11604922152455147
+ 0.11657054139342105
+ 0.11709413039928245
+ 0.11761999873152697
+ 0.11814815662511208
+ 0.11867861436075923
+ 0.11921138226515089
+ 0.11974647071113023
+ 0.12028389011790119
+ 0.12082365095122949
+ 0.1213657637236444
+ 0.12191023899464293
+ 0.12245708737089335
+ 0.12300631950644066
+ 0.1235579461029131
+ 0.12411197790972989
+ 0.12466842572430924
+ 0.12522730039227839
+ 0.12578861280768391
+ 0.12635237391320386
+ 0.12691859470036049
+ 0.12748728620973399
+ 0.12805845953117745
+ 0.12863212580403358
+ 0.12920829621735083
+ 0.1297869820101028
+ 0.13036819447140674
+ 0.13095194494074439
+ 0.13153824480818369
+ 0.13212710551460108
+ 0.13271853855190568
+ 0.13331255546326426
+ 0.1339091678433264
+ 0.13450838733845316
+ 0.13511022564694367
+ 0.13571469451926618
+ 0.13632180575828703
+ 0.13693157121950367
+ 0.13754400281127641
+ 0.13815911249506349
+ 0.13877691228565492
+ 0.13939741425140978
+ 0.14002063051449293
+ 0.14064657325111413
+ 0.14127525469176741
+ 0.14190668712147195
+ 0.14254088288001454
+ 0.14317785436219232
+ 0.14381761401805757
+ 0.14446017435316305
+ 0.14510554792880895
+ 0.14575374736229108
+ 0.14640478532714923
+ 0.14705867455341873
+ 0.14771542782788091
+ 0.14837505799431672
+ 0.14903757795376002
+ 0.14970300066475339
+ 0.15037133914360426
+ 0.15104260646464271
+ 0.15171681576047982
+ 0.15239398022226872
+ 0.15307411309996505
+ 0.15375722770259018
+ 0.15444333739849442
+ 0.15513245561562325
+ 0.15582459584178213
+ 0.15651977162490507
+ 0.15721799657332358
+ 0.15791928435603644
+ 0.15862364870298082
+ 0.15933110340530618
+ 0.1600416623156467
+ 0.16075533934839767
+ 0.16147214847999145
+ 0.16219210374917603
+ 0.16291521925729308
+ 0.16364150916855982
+ 0.16437098771034919
+ 0.1651036691734748
+ 0.16583956791247353
+ 0.16657869834589267
+ 0.16732107495657639
+ 0.1680667122919545
+ 0.16881562496433158
+ 0.16956782765117895
+ 0.17032333509542658
+ 0.17108216210575744
+ 0.17184432355690171
+ 0.17260983438993507
+ 0.17337870961257457
+ 0.17415096429948018
+ 0.17492661359255354
+ 0.17570567270124135
+ 0.17648815690283848
+ 0.17727408154279323
+ 0.17806346203501272
+ 0.17885631386217196
+ 0.17965265257602209
+ 0.18045247223263419
+ 0.18125567502613685
+ 0.1820622586400969
+ 0.18287223684250994
+ 0.18368562345927125
+ 0.1845024323744574
+ 0.18532267753060536
+ 0.18614637292899708
+ 0.1869735326299449
+ 0.18780417075307573
+ 0.18863830147762145
+ 0.18947593904270738
+ 0.19031709774764435
+ 0.19116179195222185
+ 0.19201003607700348
+ 0.19286184460362271
+ 0.19371723207508235
+ 0.1945762130960538
+ 0.19543880233318148
+ 0.19630501451538246
+ 0.1971748644341576
+ 0.19804836694389369
+ 0.19892553696217666
+ 0.19980638947010099
+ 0.20069093951258307
+ 0.20157920219867581
+ 0.20247119270188618
+ 0.20336692626049341
+ 0.20426641817786886
+ 0.20516968382280076
+ 0.20607673862981565
+ 0.20698759809950756
+ 0.20790227779886361
+ 0.2088207933615979
+ 0.20974316048847993
+ 0.21066939494767109
+ 0.21159951257506157
+ 0.21253352927460725
+ 0.21347146101867021
+ 0.21441332384836165
+ 0.2153591338738875
+ 0.21630890727489266
+ 0.21726266030081154
+ 0.21822040927121811
+ 0.21918217057617903
+ 0.22014796067660836
+ 0.22111779610462676
+ 0.22209169346391658
+ 0.22306966943008955
+ 0.22405174075104439
+ 0.22503792424733693
+ 0.22602823681254722
+ 0.22702269541364947
+ 0.22802131709138507
+ 0.22902411896063879
+ 0.23003111821081396
+ 0.23104233210621372
+ 0.23205777798642302
+ 0.23307747326669134
+ 0.23410143543832107
+ 0.23512968206905618
+ 0.23616223080347165
+ 0.23719909936337144
+ 0.23824030554817996
+ 0.23928586723534473
+ 0.24033580238073407
+ 0.24139012901904422
+ 0.24244886526420253
+ 0.24351202930977708
+ 0.24457963942938801
+ 0.24565171397712185
+ 0.24672827138794617
+ 0.24780933017812842
+ 0.24889490894565919
+ 0.24998502637067474
+ 0.25107970121588324
+ 0.25217895232699522
+ 0.25328279863315545
+ 0.25439125914737565
+ 0.2555043529669741
+ 0.25662209927401547
+ 0.25774451733575188
+ 0.25887162650506962
+ 0.2600034462209373
+ 0.2611399960088579
+ 0.26228129548132045
+ 0.2634273643382582
+ 0.26457822236750966
+ 0.26573388944527798
+ 0.2668943855365985
+ 0.26805973069580663
+ 0.26922994506700842
+ 0.27040504888455558
+ 0.27158506247352199
+ 0.27277000625018516
+ 0.27395990072250692
+ 0.27515476649062259
+ 0.27635462424732782
+ 0.27755949477857167
+ 0.27876939896395347
+ 0.27998435777722019
+ 0.2812043922867658
+ 0.28242952365614182
+ 0.28365977314456048
+ 0.28489516210740756
+ 0.28613571199675741
+ 0.28738144436189023
+ 0.28863238084981413
+ 0.28988854320578622
+ 0.29114995327384491
+ 0.29241663299733844
+ 0.29368860441945843
+ 0.29496588968377996
+ 0.29624851103480077
+ 0.29753649081848627
+ 0.2988298514828196
+ 0.30012861557835152
+ 0.30143280575875503
+ 0.30274244478138435
+ 0.30405755550783886
+ 0.30537816090452696
+ 0.30670428404323719
+ 0.30803594810170798
+ 0.30937317636420936
+ 0.31071599222211882
+ 0.31206441917450911
+ 0.31341848082873258
+ 0.31477820090101505
+ 0.31614360321705215
+ 0.31751471171260576
+ 0.31889155043410983
+ 0.3202741435392753
+ 0.32166251529770129
+ 0.32305669009149279
+ 0.32445669241587494
+ 0.32586254687982069
+ 0.32727427820667004
+ 0.32869191123477137
+ 0.33011547091810767
+ 0.33154498232693985
+ 0.33298047064844605
+ 0.33442196118737488
+ 0.33586947936669231
+ 0.33732305072823715
+ 0.3387827009333847
+ 0.34024845576370655
+ 0.34172034112164157
+ 0.34319838303117023
+ 0.3446826076384874
+ 0.34617304121268883
+ 0.34766971014645148
+ 0.34917264095673256
+ 0.35068186028545423
+ 0.35219739490021112
+ 0.35371927169497069
+ 0.35524751769078333
+ 0.35678216003649466
+ 0.35832322600946293
+ 0.35987074301628486
+ 0.36142473859351926
+ 0.36298524040841956
+ 0.36455227625967362
+ 0.36612587407814196
+ 0.36770606192760907
+ 0.36929286800552558
+ 0.37088632064377686
+ 0.37248644830943484
+ 0.37409327960552941
+ 0.37570684327181525
+ 0.37732716818555523
+ 0.37895428336229381
+ 0.38058821795665104
+ 0.38222900126310805
+ 0.38387666271680854
+ 0.38553123189436067
+ 0.38719273851464087
+ 0.38886121243961208
+ 0.39053668367513777
+ 0.39221918237180792
+ 0.39390873882576821
+ 0.39560538347955132
+ 0.39730914692292363
+ 0.39902005989372241
+ 0.40073815327871576
+ 0.40246345811445078
+ 0.40419600558812563
+ 0.4059358270384491
+ 0.40768295395651999
+ 0.40943741798670535
+ 0.41119925092752568
+ 0.41296848473254633
+ 0.41474515151127939
+ 0.41652928353007862
+ 0.41832091321305748
+ 0.42012007314299932
+ 0.42192679606228212
+ 0.42374111487380217
+ 0.42556306264191479
+ 0.42739267259336594
+ 0.42922997811824931
+ 0.43107501277094579
+ 0.43292781027109661
+ 0.43478840450455786
+ 0.43665682952438017
+ 0.43853311955178043
+ 0.44041730897713538
+ 0.44230943236096215
+ 0.44420952443493061
+ 0.44611762010285283
+ 0.44803375444170951
+ 0.44995796270265703
+ 0.45189028031206041
+ 0.45383074287252173
+ 0.45577938616392144
+ 0.45773624614446251
+ 0.4597013589517277
+ 0.46167476090373233
+ 0.46365648850000329
+ 0.46564657842264034
+ 0.46764506753741142
+ 0.46965199289483078
+ 0.4716673917312621
+ 0.47369130147002148
+ 0.4757237597224882
+ 0.47776480428922202
+ 0.47981447316109399
+ 0.48187280452041575
+ 0.48393983674208912
+ 0.48601560839474439
+ 0.48810015824190828
+ 0.49019352524316329
+ 0.49229574855532415
+ 0.49440686753361557
+ 0.49652692173286533
+ 0.49865595090869919
+ 0.50079399501874777
+ 0.50294109422385613
+ 0.50509728888931238
+ 0.5072626195860731
+ 0.50943712709200406
+ 0.51162085239312494
+ 0.51381383668486724
+ 0.51601612137333797
+ 0.51822774807659411
+ 0.520448758625917
+ 0.52267919506711369
+ 0.52491909966180517
+ 0.52716851488874372
+ 0.52942748344512025
+ 0.53169604824790107
+ 0.53397425243515206
+ 0.53626213936739309
+ 0.5385597526289404
+ 0.54086713602928238
+ 0.54318433360443596
+ 0.545511389618347
+ 0.54784834856426101
+ 0.55019525516613887
+ 0.55255215438006222
+ 0.55491909139565332
+ 0.55729611163749837
+ 0.55968326076660202
+ 0.56208058468182143
+ 0.56448812952133576
+ 0.56690594166410846
+ 0.56933406773137751
+ 0.57177255458812992
+ 0.57422144934461827
+ 0.5766807993578581
+ 0.57915065223315865
+ 0.58163105582564767
+ 0.58412205824181884
+ 0.58662370784107853
+ 0.58913605323731799
+ 0.59165914330047797
+ 0.59419302715814293
+ 0.59673775419713249
+ 0.5992933740651093
+ 0.60185993667220128
+ 0.6044374921926281
+ 0.60702609106633953
+ 0.60962578400067968
+ 0.61223662197203632
+ 0.61485865622753244
+ 0.61749193828669735
+ 0.6201365199431792
+ 0.62279245326645016
+ 0.62545979060353252
+ 0.6281385845807278
+ 0.63082888810537185
+ 0.63353075436759121
+ 0.63624423684207498
+ 0.63896938928985403
+ 0.64170626576011047
+ 0.64445492059197207
+ 0.64721540841634795
+ 0.64998778415775105
+ 0.65277210303615452
+ 0.65556842056885001
+ 0.65837679257232151
+ 0.66119727516413085
+ 0.66402992476481781
+ 0.66687479809981931
+ 0.6697319522013877
+ 0.67260144441053782
+ 0.6754833323789986
+ 0.67837767407118366
+ 0.68128452776617077
+ 0.68420395205969686
+ 0.68713600586617374
+ 0.69008074842070488
+ 0.69303823928113206
+ 0.69600853833007748
+ 0.6989917057770263
+ 0.70198780216039292
+ 0.70499688834963248
+ 0.70801902554733909
+ 0.71105427529138499
+ 0.71410269945705251
+ 0.71716436025920005
+ 0.72023932025442394
+ 0.72332764234325608
+ 0.72642938977236349
+ 0.72954462613676974
+ 0.73267341538207809
+ 0.7358158218067441
+ 0.73897191006431873
+ 0.74214174516575304
+ 0.74532539248167839
+ 0.74852291774473623
+ 0.75173438705190154
+ 0.75495986686684002
+ 0.75819942402226004
+ 0.76145312572231161
+ 0.76472103954497594
+ 0.76800323344448418
+ 0.77129977575374931
+ 0.77461073518682733
+ 0.77793618084137284
+ 0.78127618220113459
+ 0.78463080913845618
+ 0.78800013191680252
+ 0.79138422119329677
+ 0.79478314802128347
+ 0.79819698385290094
+ 0.80162580054167942
+ 0.80506967034515819
+ 0.80852866592751604
+ 0.81200286036222336
+ 0.81549232713471698
+ 0.81899714014508551
+ 0.8225173737107907
+ 0.82605310256937858
+ 0.82960440188124973
+ 0.83317134723241171
+ 0.83675401463728216
+ 0.84035248054148826
+ 0.84396682182469784
+ 0.84759711580347941
+ 0.85124344023416276
+ 0.85490587331573209
+ 0.85858449369274414
+ 0.86227938045825947
+ 0.86599061315679837
+ 0.86971827178731087
+ 0.87346243680619162
+ 0.87722318913027952
+ 0.88100061013992115
+ 0.88479478168201031
+ 0.88860578607310237
+ 0.89243370610250328
+ 0.89627862503540989
+ 0.90014062661605754
+ 0.90401979507091401
+ 0.90791621511185672
+ 0.91182997193942028
+ 0.91576115124602875
+ 0.91970983921927207
+ 0.92367612254520648
+ 0.92766008841166736
+ 0.93166182451161295
+ 0.93568141904650248
+ 0.93971896072967809
+ 0.94377453878978856
+ 0.94784824297423387
+ 0.95194016355262923
+ 0.95605039132030245
+ 0.96017901760181534
+ 0.96432613425450242
+ 0.96849183367205005
+ 0.97267620878809147
+ 0.97687935307983509
+ 0.98110136057170061
+ 0.98534232583902259
+ 0.98960234401173153
+ 0.99388151077810416
+ 0.99817992238851261
+ 1.0024976756592199
+ 1.0068348679761887
+ 1.0111915972989327
+ 1.0155679621643843
+ 1.0199640616907975
+ 1.0243799955816841
+ 1.0288158641297636
+ 1.0332717682209553
+ 1.0377478093384054
+ 1.0422440895665188
+ 1.0467607115950579
+ 1.0512977787232274
+ 1.0558553948638394
+ 1.0604336645474599
+ 1.0650326929266329
+ 1.0696525857800909
+ 1.0742934495170324
+ 1.0789553911814156
+ 1.083638518456288
+ 1.0883429396681368
+ 1.0930687637912948
+ 1.0978161004523599
+ 1.1025850599346514
+ 1.1073757531827058
+ 1.1121882918068027
+ 1.1170227880875234
+ 1.1218793549803465
+ 1.1267581061202681
+ 1.1316591558264804
+ 1.1365826191070514
+ 1.1415286116636771
+ 1.1464972498964312
+ 1.151488650908586
+ 1.1565029325114449
+ 1.161540213229223
+ 1.1666006123039512
+ 1.1716842497004512
+ 1.1767912461112913
+ 1.1819217229618471
+ 1.1870758024153336
+ 1.1922536073779273
+ 1.1974552615039031
+ 1.2026808892008132
+ 1.2079306156347014
+ 1.2132045667353686
+ 1.2185028692016624
+ 1.2238256505068337
+ 1.2291730389038824
+ 1.2345451634310129
+ 1.2399421539170734
+ 1.2453641409870644
+ 1.2508112560676783
+ 1.2562836313928976
+ 1.2617814000095997
+ 1.2673046957832623
+ 1.2728536534036414
+ 1.2784284083905613
+ 1.2840290970996924
+ 1.2896558567284138
+ 1.2953088253216936
+ 1.3009881417780307
+ 1.3066939458554334
+ 1.3124263781774537
+ 1.3181855802392406
+ 1.3239716944136863
+ 1.3297848639575685
+ 1.3356252330177814
+ 1.3414929466375862
+ 1.3473881507629233
+ 1.3533109922487756
+ 1.3592616188655642
+ 1.3652401793056093
+ 1.371246823189644
+ 1.3772817010733449
+ 1.3833449644539759
+ 1.3894367657770008
+ 1.3955572584428284
+ 1.4017065968135483
+ 1.4078849362197563
+ 1.4140924329674078
+ 1.4203292443447455
+ 1.4265955286292575
+ 1.4328914450947201
+ 1.4392171540182517
+ 1.4455728166874717
+ 1.4519585954076677
+ 1.4583746535090591
+ 1.4648211553540742
+ 1.4712982663447365
+ 1.4778061529300535
+ 1.484344982613506
+ 1.4909149239605601
+ 1.4975161466062747
+ 1.5041488212629368
+ 1.510813119727773
+ 1.5175092148907094
+ 1.5242372807422087
+ 1.5309974923811522
+ 1.5377900260227932
+ 1.5446150590067624
+ 1.5514727698051523
+ 1.5583633380306436
+ 1.5652869444447157
+ 1.5722437709658994
+ 1.5792340006781271
+ 1.5862578178391047
+ 1.5933154078887926
+ 1.600406957457907
+ 1.6075326543765496
+ 1.6146926876828316
+ 1.6218872476316377
+ 1.6291165257033882
+ 1.6363807146129354
+ 1.643680008318487
+ 1.6510146020306191
+ 1.6583846922213374
+ 1.6657904766332587
+ 1.6732321542887898
+ 1.6807099254994662
+ 1.6882239918752842
+ 1.695774556334168
+ 1.7033618231114589
+ 1.7109859977695392
+ 1.718647287207465
+ 1.7263458996707344
+ 1.7340820447611047
+ 1.7418559334464843
+ 1.7496677780708991
+ 1.7575177923645762
+ 1.7654061914540573
+ 1.7733331918724338
+ 1.7812990115696057
+ 1.7893038699227155
+ 1.7973479877465692
+ 1.8054315873041995
+ 1.8135548923174776
+ 1.8217181279778545
+ 1.8299215209571338
+ 1.838165299418375
+ 1.8464496930268426
+ 1.8547749329611005
+ 1.8631412519241255
+ 1.8715488841545675
+ 1.8799980654380559
+ 1.8884890331186484
+ 1.8970220261102948
+ 1.9055972849084941
+ 1.9142150516019307
+ 1.9228755698843045
+ 1.9315790850661931
+ 1.9403258440870403
+ 1.9491160955272195
+ 1.957950089620214
+ 1.9668280782648828
+ 1.9757503150378262
+ 1.984717055205856
+ 1.9937285557385604
+ 2.0027850753209711
+ 2.0118868743663563
+ 2.021034215029049
+ 2.0302273612174839
+ 2.0394665786072244
+ 2.0487521346541993
+ 2.0580842986079504
+ 2.0674633415250914
+ 2.0768895362827622
+ 2.0863631575923103
+ 2.0958844820129512
+ 2.1054537879656805
+ 2.1150713557471836
+ 2.1247374675439352
+ 2.134452407446342
+ 2.1442164614630985
+ 2.1540299175355409
+ 2.163893065552227
+ 2.1738061973635525
+ 2.1837696067965502
+ 2.1937835896697528
+ 2.2038484438082313
+ 2.2139644690586966
+ 2.2241319673047903
+ 2.2343512424824512
+ 2.2446226005954264
+ 2.2549463497308944
+ 2.2653228000752526
+ 2.2757522639299852
+ 2.2862350557277162
+ 2.2967714920483138
+ 2.3073618916352379
+ 2.3180065754119048
+ 2.3287058664982871
+ 2.3394600902275662
+ 2.3502695741629998
+ 2.3611346481148545
+ 2.3720556441575273
+ 2.3830328966467937
+ 2.3940667422371966
+ 2.4051575198995852
+ 2.4163055709387775
+ 2.4275112390113893
+ 2.4387748701438206
+ 2.4500968127503597
+ 2.4614774176514569
+ 2.4729170380921346
+ 2.4844160297605895
+ 2.4959747508068855
+ 2.5075935618618663
+ 2.5192728260561541
+ 2.5310129090394038
+ 2.5428141789996128
+ 2.5546770066826521
+ 2.56660176541194
+ 2.5785888311083225
+ 2.5906385823100151
+ 2.6027514001928469
+ 2.6149276685905427
+ 2.6271677740152906
+ 2.6394721056783816
+ 2.6518410555111087
+ 2.6642750181857409
+ 2.6767743911367892
+ 2.6893395745823558
+ 2.7019709715457183
+ 2.7146689878770283
+ 2.7274340322753088
+ 2.7402665163105016
+ 2.7531668544457903
+ 2.7661354640600786
+ 2.7791727654706553
+ 2.7922791819560588
+ 2.8054551397791299
+ 2.8187010682102707
+ 2.8320173995508626
+ 2.8454045691569263
+ 2.8588630154629593
+ 2.872393180005953
+ 2.8859955074496826
+ 2.8996704456091047
+ 2.9134184454750525
+ 2.9272399612390485
+ 2.9411354503184488
+ 2.9551053733816537
+ 2.9691501943736536
+ 2.9832703805417258
+ 2.9974664024613809
+ 3.0117387340624822
+ 3.026087852655674
+ 3.040514238958921
+ 3.0550183771243833
+ 3.0696007547654087
+ 3.0842618629839107
+ 3.0990021963977616
+ 3.1138222531686308
+ 3.1287225350299521
+ 3.1437035473151194
+ 3.1587657989859594
+ 3.1739098026614734
+ 3.1891360746467252
+ 3.2044451349621261
+ 3.2198375073727723
+ 3.2353137194182633
+ 3.2508743024425666
+ 3.2665197916242819
+ 3.282250726007073
+ 3.2980676485304388
+ 3.3139711060606607
+ 3.3299616494221329
+ 3.346039833428792
+ 3.3622062169160261
+ 3.3784613627726481
+ 3.3948058379733395
+ 3.4112402136111837
+ 3.4277650649306532
+ 3.4443809713607587
+ 3.4610885165485454
+ 3.4778882883928386
+ 3.4947808790783306
+ 3.5117668851099038
+ 3.5288469073473334
+ 3.5460215510401327
+ 3.5632914258629325
+ 3.5806571459509362
+ 3.5981193299358472
+ 3.6156786009820112
+ 3.6333355868229074
+ 3.65109091979796
+ 3.6689452368896824
+ 3.68689917976107
+ 3.7049533947934452
+ 3.7231085331244995
+ 3.7413652506867625
+ 3.7597242082463382
+ 3.778186071442029
+ 3.7967515108247993
+ 3.8154212018975175
+ 3.8341958251551307
+ 3.853076066125146
+ 3.8720626154084625
+ 3.8911561687205896
+ 3.9103574269331491
+ 3.9296670961158635
+ 3.9490858875788279
+ 3.96861451791515
+ 3.988253709043966
+ 4.0080041882539224
+ 4.0278666882468892
+ 4.04784194718221
+ 4.0679307087211569
+ 4.0881337220720297
+ 4.1084517420353786
+ 4.1288855290498541
+ 4.1494358492382739
+ 4.170103474454252
+ 4.1908891823291263
+ 4.2117937563193593
+ 4.2328179857543491
+ 4.2539626658846199
+ 4.27522859793054
+ 4.2966165891313368
+ 4.3181274527946005
+ 4.3397620083463382
+ 4.361521081381265
+ 4.383405503713691
+ 4.4054161134288101
+ 4.4275537549344479
+ 4.44981927901327
+ 4.472213542875453
+ 4.4947374102118118
+ 4.517391751247434
+ 4.5401774427957307
+ 4.5630953683130899
+ 4.5861464179538007
+ 4.6093314886257142
+ 4.632651484046221
+ 4.6561073147988674
+ 4.6796998983902736
+ 4.7034301593078247
+ 4.7272990290776651
+ 4.7513074463232909
+ 4.7754563568246988
+ 4.7997467135780063
+ 4.824179476855595
+ 4.8487556142669375
+ 4.8734761008196843
+ 4.8983419189816679
+ 4.9233540587430991
+ 4.9485135176796238
+ 4.973821301015704
+ 4.999278421688782
+ 5.0248859004138096
+ 5.0506447657486033
+ 5.0765560541595018
+ 5.102620810087874
+ 5.1288400860171004
+ 5.1552149425401268
+ 5.1817464484277274
+ 5.2084356806973338
+ 5.2352837246824331
+ 5.2622916741027765
+ 5.2894606311348769
+ 5.3167917064836221
+ 5.3442860194540485
+ 5.3719446980241781
+ 5.399768878918163
+ 5.4277597076804254
+ 5.4559183387501458
+ 5.4842459355367561
+ 5.5127436704958104
+ 5.5414127252057614
+ 5.5702542904453649
+ 5.5992695662717384
+ 5.6284597620992303
+ 5.6578260967789022
+ 5.6873697986788683
+ 5.71709210576521
+ 5.7469942656837105
+ 5.777077535842432
+ 5.8073431834948197
+ 5.8377924858238135
+ 5.8684267300264974
+ 5.899247213399712
+ 5.9302552434263616
+ 5.9614521378625884
+ 5.9928392248254969
+ 6.0244178428821211
+ 6.0561893411387695
+ 6.0881550793314831
+ 6.1203164279171451
+ 6.1526747681656095
+ 6.1852314922524503
+ 6.2179880033528123
+ 6.2509457157358828
+ 6.2841060548604535
+ 6.3174704574711997
+ 6.3510403716959551
+ 6.3848172571437889
+ 6.4188025850040962
+ 6.4529978381465032
+ 6.4874045112218113
+ 6.5220241107636943
+ 6.5568581552915397
+ 6.5919081754141526
+ 6.6271757139343519
+ 6.662662325954674
+ 6.6983695789839484
+ 6.7342990530448867
+ 6.7704523407827732
+ 6.8068310475749731
+ 6.843436791641623
+ 6.8802712041572445
+ 6.9173359293635714
+ 6.9546326246830654
+ 6.9921629608340474
+ 7.0299286219462473
+ 7.0679313056780249
+ 7.1061727233342671
+ 7.1446545999856124
+ 7.1833786745887362
+ 7.2223467001076891
+ 7.2615604436364682
+ 7.3010216865226907
+ 7.3407322244924238
+ 7.3806938677762117
+ 7.4209084412361861
+ 7.4613777844945748
+ 7.5021037520631726
+ 7.5430882134742196
+ 7.5843330534123599
+ 7.6258401718480293
+ 7.6676114841718306
+ 7.7096489213304844
+ 7.7519544299637735
+ 7.7945299725429571
+ 7.8373775275104727
+ 7.8804990894208764
+ 7.9238966690831294
+ 7.9675722937043902
+ 8.0115280070348476
+ 8.0557658695142749
+ 8.1002879584196776
+ 8.1450963680145421
+ 8.1901932096993875
+ 8.2355806121638526
+ 8.2812607215399172
+ 8.3272357015571448
+ 8.3735077336988013
+ 8.4200790173598055
+ 8.4669517700061068
+ 8.5141282273355099
+ 8.5616106434401331
+ 8.6094012909703856
+ 8.6575024613002931
+ 8.7059164646949174
+ 8.7546456304786826
+ 8.803692307205921
+ 8.8530588628326665
+ 8.9027476848902332
+ 8.9527611806604828
+ 9.0031017773526045
+ 9.0537719222817952
+ 9.1047740830495218
+ 9.1561107477254549
+ 9.2077844250314023
+ 9.2597976445266035
+ 9.3121529567952521
+ 9.3648529336354063
+ 9.4179001682499823
+ 9.4712972754395199
+ 9.5250468917966842
+ 9.5791516759028301
+ 9.6336143085263313
+ 9.6884374928227608
+ 9.7436239545372292
+ 9.7991764422083527
+ 9.8550977273745772
+ 9.9113906047819889
+ 9.9680578925946968
+ 10.025102432606843
+ 10.082527090456733
+ 10.140334755843172
+ 10.198528342743773
+ 10.257110789635396
+ 10.316085059716828
+ 10.375454141133353
+ 10.435221047203903
+ 10.495388816649969
+ 10.555960513827142
+ 10.616939228958447
+ 10.678328078370525
+ 10.740130204731567
+ 10.802348777291844
+ 10.864986992126511
+ 10.92804807238077
+ 10.991535268517444
+ 11.055451858567057
+ 11.119801148379912
+ 11.184586471881383
+ 11.24981119132894
+ 11.315478697572285
+ 11.381592410315468
+ 11.448155778382107
+ 11.515172279982892
+ 11.582645422985712
+ 11.65057874518839
+ 11.718975814594547
+ 11.787840229691351
+ 11.857175619730805
+ 11.926985645013135
+ 11.997273997173561
+ 12.068044399471292
+ 12.139300607081955
+ 12.211046407392173
+ 12.283285620297958
+ 12.356022098505166
+ 12.429259727833468
+ 12.503002427523036
+ 12.57725415054451
+ 12.652018883911644
+ 12.727300648997492
+ 12.803103501853263
+ 12.879431533530759
+ 12.956288870407548
+ 13.033679674515859
+ 13.111608143874115
+ 13.190078512822572
+ 13.269095052361299
+ 13.348662070492407
+ 13.428783912564924
+ 13.509464961623854
+ 13.590709638761927
+ 13.672522403475451
+ 13.754907754023224
+ 13.837870227789479
+ 13.921414401650038
+ 14.005544892342433
+ 14.090266356839265
+ 14.175583492725922
+ 14.261501038581478
+ 14.348023774363776
+ 14.435156521797888
+ 14.522904144769296
+ 14.611271549719961
+ 14.700263686049059
+ 14.789885546517567
+ 14.880142167656862
+ 14.971038630181138
+ 15.062580059404622
+ 15.154771625662173
+ 15.247618544734744
+ 15.341126078278748
+ 15.435299534259906
+ 15.530144267391044
+ 15.625665679575196
+ 15.721869220352147
+ 15.818760387350089
+ 15.916344726741382
+ 16.014627833703678
+ 16.113615352884505
+ 16.213312978871851
+ 16.313726456668231
+ 16.41486158217063
+ 16.516724202654366
+ 16.619320217262704
+ 16.722655577500603
+ 16.826736287734015
+ 16.931568405694097
+ 17.037158042986391
+ 17.143511365605058
+ 17.250634594452873
+ 17.358534005865906
+ 17.467215932143809
+ 17.57668676208522
+ 17.686952941528972
+ 17.798020973900691
+ 17.909897420764572
+ 18.022588902381386
+ 18.136102098271536
+ 18.250443747784338
+ 18.365620650672902
+ 18.481639667674632
+ 18.598507721098191
+ 18.716231795415901
+ 18.834818937862561
+ 18.954276259039908
+ 19.074610933528202
+ 19.195830200502719
+ 19.317941364357768
+ 19.440951795336197
+ 19.564868930166035
+ 19.689700272703067
+ 19.815453394580619
+ 19.942135935865032
+ 20.069755605719067
+ 20.19832018307121
+ 20.327837517292132
+ 20.458315528878117
+ 20.589762210141711
+ 20.722185625908811
+ 20.855593914223821
+ 20.989995287061312
+ 21.125398031045414
+ 21.261810508176389
+ 21.399241156565221
+ 21.537698491174424
+ 21.677191104568756
+ 21.817727667670951
+ 21.95931693052788
+ 22.101967723082332
+ 22.245688955954748
+ 22.390489621231424
+ 22.536378793262092
+ 22.683365629464674
+ 22.831459371139637
+ 22.98066934429125
+ 23.13100496045908
+ 23.282475717556206
+ 23.435091200717999
+ 23.588861083158275
+ 23.74379512703532
+ 23.899903184326146
+ 24.057195197710424
+ 24.215681201463266
+ 24.375371322357402
+ 24.536275780574705
+ 24.698404890627621
+ 24.861769062289241
+ 25.026378801534278
+ 25.192244711488708
+ 25.359377493390248
+ 25.527787947558249
+ 25.697486974374364
+ 25.868485575272334
+ 26.040794853739605
+ 26.214426016328055
+ 26.389390373676495
+ 26.565699341542647
+ 26.743364441847181
+ 26.922397303727752
+ 27.10280966460455
+ 27.284613371256679
+ 27.467820380910826
+ 27.652442762339465
+ 27.838492696972917
+ 28.025982480020893
+ 28.214924521607873
+ 28.405331347918619
+ 28.597215602357227
+ 28.790590046716989
+ 28.985467562364089
+ 29.181861151432614
+ 29.379783938032837
+ 29.579249169471268
+ 29.780270217485441
+ 29.98286057948977
+ 30.18703387983599
+ 30.392803871085498
+ 30.600184435297336
+ 30.809189585327093
+ 31.019833466142288
+ 31.232130356149142
+ 31.446094668535522
+ 31.661740952626992
+ 31.879083895257395
+ 32.098138322153901
+ 32.318919199337749
+ 32.541441634538209
+ 32.765720878623043
+ 32.991772327042987
+ 33.219611521293146
+ 33.449254150388157
+ 33.680716052354541
+ 33.914013215737491
+ 34.149161781125855
+ 34.386178042690858
+ 34.625078449743491
+ 34.86587960830677
+ 35.108598282705977
+ 35.353251397175626
+ 35.599856037482851
+ 35.848429452569484
+ 36.098989056210492
+ 36.35155242869115
+ 36.606137318501276
+ 36.862761644047836
+ 37.121443495387503
+ 37.382201135974384
+ 37.645053004430586
+ 37.910017716332483
+ 38.177114066017765
+ 38.446361028411737
+ 38.71777776087346
+ 38.991383605060648
+ 39.267198088816095
+ 39.545240928073241
+ 39.825532028783734
+ 40.108091488863145
+ 40.392939600161185
+ 40.680096850449871
+ 40.969583925435771
+ 41.261421710791687
+ 41.555631294212347
+ 41.85223396749096
+ 42.15125122861896
+ 42.4527047839075
+ 42.756616550133671
+ 43.063008656707893
+ 43.371903447866288
+ 43.683323484886138
+ 43.997291548325812
+ 44.313830640288352
+ 44.632963986710429
+ 44.954715039675285
+ 45.279107479751566
+ 45.606165218357035
+ 45.935912400149121
+ 46.268373405438915
+ 46.60357285263472
+ 46.94153560070994
+ 47.282286751698493
+ 47.625851653217637
+ 47.972255901018151
+ 48.321525341561966
+ 48.673686074629636
+ 49.028764455952363
+ 49.386787099878262
+ 49.747780882063111
+ 50.111772942193312
+ 50.478790686736026
+ 50.848861791723223
+ 51.222014205562246
+ 51.598276151880505
+ 51.977676132397256
+ 52.360242929833149
+ 52.746005610844442
+ 53.134993528994997
+ 53.527236327757933
+ 53.922763943552262
+ 54.321606608810434
+ 54.723794855081827
+ 55.129359516169792
+ 55.538331731302158
+ 55.950742948338252
+ 56.366624927010704
+ 56.786009742201479
+ 57.208929787256963
+ 57.635417777336507
+ 58.065506752800715
+ 58.499230082635073
+ 58.936621467912424
+ 59.37771494529283
+ 59.822544890564679
+ 60.271146022220101
+ 60.723553405075712
+ 61.179802453928751
+ 61.639928937257032
+ 62.103968980956743
+ 62.571959072125637
+ 63.04393606288334
+ 63.519937174239473
+ 64.0
+}
diff --git a/release/datafiles/colormanagement/luts/rec709.spi1d b/release/datafiles/colormanagement/luts/rec709.spi1d
new file mode 100644
index 00000000000..1fad0d53aa5
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/rec709.spi1d
@@ -0,0 +1,4107 @@
+Version 1
+From -0.125 1.125
+Length 4101
+Components 1
+{
+ -0.0277777777778
+ -0.0277100271003
+ -0.0276422764228
+ -0.0275745257453
+ -0.0275067750678
+ -0.0274390243902
+ -0.0273712737127
+ -0.0273035230352
+ -0.0272357723577
+ -0.0271680216802
+ -0.0271002710027
+ -0.0270325203252
+ -0.0269647696477
+ -0.0268970189702
+ -0.0268292682927
+ -0.0267615176152
+ -0.0266937669377
+ -0.0266260162602
+ -0.0265582655827
+ -0.0264905149051
+ -0.0264227642276
+ -0.0263550135501
+ -0.0262872628726
+ -0.0262195121951
+ -0.0261517615176
+ -0.0260840108401
+ -0.0260162601626
+ -0.0259485094851
+ -0.0258807588076
+ -0.0258130081301
+ -0.0257452574526
+ -0.0256775067751
+ -0.0256097560976
+ -0.0255420054201
+ -0.0254742547425
+ -0.025406504065
+ -0.0253387533875
+ -0.02527100271
+ -0.0252032520325
+ -0.025135501355
+ -0.0250677506775
+ -0.025
+ -0.0249322493225
+ -0.024864498645
+ -0.0247967479675
+ -0.02472899729
+ -0.0246612466125
+ -0.024593495935
+ -0.0245257452575
+ -0.0244579945799
+ -0.0243902439024
+ -0.0243224932249
+ -0.0242547425474
+ -0.0241869918699
+ -0.0241192411924
+ -0.0240514905149
+ -0.0239837398374
+ -0.0239159891599
+ -0.0238482384824
+ -0.0237804878049
+ -0.0237127371274
+ -0.0236449864499
+ -0.0235772357724
+ -0.0235094850949
+ -0.0234417344173
+ -0.0233739837398
+ -0.0233062330623
+ -0.0232384823848
+ -0.0231707317073
+ -0.0231029810298
+ -0.0230352303523
+ -0.0229674796748
+ -0.0228997289973
+ -0.0228319783198
+ -0.0227642276423
+ -0.0226964769648
+ -0.0226287262873
+ -0.0225609756098
+ -0.0224932249322
+ -0.0224254742547
+ -0.0223577235772
+ -0.0222899728997
+ -0.0222222222222
+ -0.0221544715447
+ -0.0220867208672
+ -0.0220189701897
+ -0.0219512195122
+ -0.0218834688347
+ -0.0218157181572
+ -0.0217479674797
+ -0.0216802168022
+ -0.0216124661247
+ -0.0215447154472
+ -0.0214769647696
+ -0.0214092140921
+ -0.0213414634146
+ -0.0212737127371
+ -0.0212059620596
+ -0.0211382113821
+ -0.0210704607046
+ -0.0210027100271
+ -0.0209349593496
+ -0.0208672086721
+ -0.0207994579946
+ -0.0207317073171
+ -0.0206639566396
+ -0.0205962059621
+ -0.0205284552846
+ -0.020460704607
+ -0.0203929539295
+ -0.020325203252
+ -0.0202574525745
+ -0.020189701897
+ -0.0201219512195
+ -0.020054200542
+ -0.0199864498645
+ -0.019918699187
+ -0.0198509485095
+ -0.019783197832
+ -0.0197154471545
+ -0.019647696477
+ -0.0195799457995
+ -0.019512195122
+ -0.0194444444444
+ -0.0193766937669
+ -0.0193089430894
+ -0.0192411924119
+ -0.0191734417344
+ -0.0191056910569
+ -0.0190379403794
+ -0.0189701897019
+ -0.0189024390244
+ -0.0188346883469
+ -0.0187669376694
+ -0.0186991869919
+ -0.0186314363144
+ -0.0185636856369
+ -0.0184959349593
+ -0.0184281842818
+ -0.0183604336043
+ -0.0182926829268
+ -0.0182249322493
+ -0.0181571815718
+ -0.0180894308943
+ -0.0180216802168
+ -0.0179539295393
+ -0.0178861788618
+ -0.0178184281843
+ -0.0177506775068
+ -0.0176829268293
+ -0.0176151761518
+ -0.0175474254743
+ -0.0174796747967
+ -0.0174119241192
+ -0.0173441734417
+ -0.0172764227642
+ -0.0172086720867
+ -0.0171409214092
+ -0.0170731707317
+ -0.0170054200542
+ -0.0169376693767
+ -0.0168699186992
+ -0.0168021680217
+ -0.0167344173442
+ -0.0166666666667
+ -0.0165989159892
+ -0.0165311653117
+ -0.0164634146341
+ -0.0163956639566
+ -0.0163279132791
+ -0.0162601626016
+ -0.0161924119241
+ -0.0161246612466
+ -0.0160569105691
+ -0.0159891598916
+ -0.0159214092141
+ -0.0158536585366
+ -0.0157859078591
+ -0.0157181571816
+ -0.0156504065041
+ -0.0155826558266
+ -0.0155149051491
+ -0.0154471544715
+ -0.015379403794
+ -0.0153116531165
+ -0.015243902439
+ -0.0151761517615
+ -0.015108401084
+ -0.0150406504065
+ -0.014972899729
+ -0.0149051490515
+ -0.014837398374
+ -0.0147696476965
+ -0.014701897019
+ -0.0146341463415
+ -0.014566395664
+ -0.0144986449864
+ -0.0144308943089
+ -0.0143631436314
+ -0.0142953929539
+ -0.0142276422764
+ -0.0141598915989
+ -0.0140921409214
+ -0.0140243902439
+ -0.0139566395664
+ -0.0138888888889
+ -0.0138211382114
+ -0.0137533875339
+ -0.0136856368564
+ -0.0136178861789
+ -0.0135501355014
+ -0.0134823848238
+ -0.0134146341463
+ -0.0133468834688
+ -0.0132791327913
+ -0.0132113821138
+ -0.0131436314363
+ -0.0130758807588
+ -0.0130081300813
+ -0.0129403794038
+ -0.0128726287263
+ -0.0128048780488
+ -0.0127371273713
+ -0.0126693766938
+ -0.0126016260163
+ -0.0125338753388
+ -0.0124661246612
+ -0.0123983739837
+ -0.0123306233062
+ -0.0122628726287
+ -0.0121951219512
+ -0.0121273712737
+ -0.0120596205962
+ -0.0119918699187
+ -0.0119241192412
+ -0.0118563685637
+ -0.0117886178862
+ -0.0117208672087
+ -0.0116531165312
+ -0.0115853658537
+ -0.0115176151762
+ -0.0114498644986
+ -0.0113821138211
+ -0.0113143631436
+ -0.0112466124661
+ -0.0111788617886
+ -0.0111111111111
+ -0.0110433604336
+ -0.0109756097561
+ -0.0109078590786
+ -0.0108401084011
+ -0.0107723577236
+ -0.0107046070461
+ -0.0106368563686
+ -0.0105691056911
+ -0.0105013550136
+ -0.010433604336
+ -0.0103658536585
+ -0.010298102981
+ -0.0102303523035
+ -0.010162601626
+ -0.0100948509485
+ -0.010027100271
+ -0.0099593495935
+ -0.00989159891599
+ -0.00982384823848
+ -0.00975609756098
+ -0.00968834688347
+ -0.00962059620596
+ -0.00955284552846
+ -0.00948509485095
+ -0.00941734417344
+ -0.00934959349593
+ -0.00928184281843
+ -0.00921409214092
+ -0.00914634146341
+ -0.00907859078591
+ -0.0090108401084
+ -0.00894308943089
+ -0.00887533875339
+ -0.00880758807588
+ -0.00873983739837
+ -0.00867208672087
+ -0.00860433604336
+ -0.00853658536585
+ -0.00846883468835
+ -0.00840108401084
+ -0.00833333333333
+ -0.00826558265583
+ -0.00819783197832
+ -0.00813008130081
+ -0.00806233062331
+ -0.0079945799458
+ -0.00792682926829
+ -0.00785907859079
+ -0.00779132791328
+ -0.00772357723577
+ -0.00765582655827
+ -0.00758807588076
+ -0.00752032520325
+ -0.00745257452575
+ -0.00738482384824
+ -0.00731707317073
+ -0.00724932249322
+ -0.00718157181572
+ -0.00711382113821
+ -0.0070460704607
+ -0.0069783197832
+ -0.00691056910569
+ -0.00684281842818
+ -0.00677506775068
+ -0.00670731707317
+ -0.00663956639566
+ -0.00657181571816
+ -0.00650406504065
+ -0.00643631436314
+ -0.00636856368564
+ -0.00630081300813
+ -0.00623306233062
+ -0.00616531165312
+ -0.00609756097561
+ -0.0060298102981
+ -0.0059620596206
+ -0.00589430894309
+ -0.00582655826558
+ -0.00575880758808
+ -0.00569105691057
+ -0.00562330623306
+ -0.00555555555556
+ -0.00548780487805
+ -0.00542005420054
+ -0.00535230352304
+ -0.00528455284553
+ -0.00521680216802
+ -0.00514905149051
+ -0.00508130081301
+ -0.0050135501355
+ -0.00494579945799
+ -0.00487804878049
+ -0.00481029810298
+ -0.00474254742547
+ -0.00467479674797
+ -0.00460704607046
+ -0.00453929539295
+ -0.00447154471545
+ -0.00440379403794
+ -0.00433604336043
+ -0.00426829268293
+ -0.00420054200542
+ -0.00413279132791
+ -0.00406504065041
+ -0.0039972899729
+ -0.00392953929539
+ -0.00386178861789
+ -0.00379403794038
+ -0.00372628726287
+ -0.00365853658537
+ -0.00359078590786
+ -0.00352303523035
+ -0.00345528455285
+ -0.00338753387534
+ -0.00331978319783
+ -0.00325203252033
+ -0.00318428184282
+ -0.00311653116531
+ -0.0030487804878
+ -0.0029810298103
+ -0.00291327913279
+ -0.00284552845528
+ -0.00277777777778
+ -0.00271002710027
+ -0.00264227642276
+ -0.00257452574526
+ -0.00250677506775
+ -0.00243902439024
+ -0.00237127371274
+ -0.00230352303523
+ -0.00223577235772
+ -0.00216802168022
+ -0.00210027100271
+ -0.0020325203252
+ -0.0019647696477
+ -0.00189701897019
+ -0.00182926829268
+ -0.00176151761518
+ -0.00169376693767
+ -0.00162601626016
+ -0.00155826558266
+ -0.00149051490515
+ -0.00142276422764
+ -0.00135501355014
+ -0.00128726287263
+ -0.00121951219512
+ -0.00115176151762
+ -0.00108401084011
+ -0.0010162601626
+ -0.000948509485095
+ -0.000880758807588
+ -0.000813008130081
+ -0.000745257452575
+ -0.000677506775068
+ -0.000609756097561
+ -0.000542005420054
+ -0.000474254742547
+ -0.000406504065041
+ -0.000338753387534
+ -0.000271002710027
+ -0.00020325203252
+ -0.000135501355014
+ -6.77506775068e-05
+ 0.0
+ 6.77506775068e-05
+ 0.000135501355014
+ 0.00020325203252
+ 0.000271002710027
+ 0.000338753387534
+ 0.000406504065041
+ 0.000474254742547
+ 0.000542005420054
+ 0.000609756097561
+ 0.000677506775068
+ 0.000745257452575
+ 0.000813008130081
+ 0.000880758807588
+ 0.000948509485095
+ 0.0010162601626
+ 0.00108401084011
+ 0.00115176151762
+ 0.00121951219512
+ 0.00128726287263
+ 0.00135501355014
+ 0.00142276422764
+ 0.00149051490515
+ 0.00155826558266
+ 0.00162601626016
+ 0.00169376693767
+ 0.00176151761518
+ 0.00182926829268
+ 0.00189701897019
+ 0.0019647696477
+ 0.0020325203252
+ 0.00210027100271
+ 0.00216802168022
+ 0.00223577235772
+ 0.00230352303523
+ 0.00237127371274
+ 0.00243902439024
+ 0.00250677506775
+ 0.00257452574526
+ 0.00264227642276
+ 0.00271002710027
+ 0.00277777777778
+ 0.00284552845528
+ 0.00291327913279
+ 0.0029810298103
+ 0.0030487804878
+ 0.00311653116531
+ 0.00318428184282
+ 0.00325203252033
+ 0.00331978319783
+ 0.00338753387534
+ 0.00345528455285
+ 0.00352303523035
+ 0.00359078590786
+ 0.00365853658537
+ 0.00372628726287
+ 0.00379403794038
+ 0.00386178861789
+ 0.00392953929539
+ 0.0039972899729
+ 0.00406504065041
+ 0.00413279132791
+ 0.00420054200542
+ 0.00426829268293
+ 0.00433604336043
+ 0.00440379403794
+ 0.00447154471545
+ 0.00453929539295
+ 0.00460704607046
+ 0.00467479674797
+ 0.00474254742547
+ 0.00481029810298
+ 0.00487804878049
+ 0.00494579945799
+ 0.0050135501355
+ 0.00508130081301
+ 0.00514905149051
+ 0.00521680216802
+ 0.00528455284553
+ 0.00535230352304
+ 0.00542005420054
+ 0.00548780487805
+ 0.00555555555556
+ 0.00562330623306
+ 0.00569105691057
+ 0.00575880758808
+ 0.00582655826558
+ 0.00589430894309
+ 0.0059620596206
+ 0.0060298102981
+ 0.00609756097561
+ 0.00616531165312
+ 0.00623306233062
+ 0.00630081300813
+ 0.00636856368564
+ 0.00643631436314
+ 0.00650406504065
+ 0.00657181571816
+ 0.00663956639566
+ 0.00670731707317
+ 0.00677506775068
+ 0.00684281842818
+ 0.00691056910569
+ 0.0069783197832
+ 0.0070460704607
+ 0.00711382113821
+ 0.00718157181572
+ 0.00724932249322
+ 0.00731707317073
+ 0.00738482384824
+ 0.00745257452575
+ 0.00752032520325
+ 0.00758807588076
+ 0.00765582655827
+ 0.00772357723577
+ 0.00779132791328
+ 0.00785907859079
+ 0.00792682926829
+ 0.0079945799458
+ 0.00806233062331
+ 0.00813008130081
+ 0.00819783197832
+ 0.00826558265583
+ 0.00833333333333
+ 0.00840108401084
+ 0.00846883468835
+ 0.00853658536585
+ 0.00860433604336
+ 0.00867208672087
+ 0.00873983739837
+ 0.00880758807588
+ 0.00887533875339
+ 0.00894308943089
+ 0.0090108401084
+ 0.00907859078591
+ 0.00914634146341
+ 0.00921409214092
+ 0.00928184281843
+ 0.00934959349593
+ 0.00941734417344
+ 0.00948509485095
+ 0.00955284552846
+ 0.00962059620596
+ 0.00968834688347
+ 0.00975609756098
+ 0.00982384823848
+ 0.00989159891599
+ 0.0099593495935
+ 0.010027100271
+ 0.0100948509485
+ 0.010162601626
+ 0.0102303523035
+ 0.010298102981
+ 0.0103658536585
+ 0.010433604336
+ 0.0105013550136
+ 0.0105691056911
+ 0.0106368563686
+ 0.0107046070461
+ 0.0107723577236
+ 0.0108401084011
+ 0.0109078590786
+ 0.0109756097561
+ 0.0110433604336
+ 0.0111111111111
+ 0.0111788617886
+ 0.0112466124661
+ 0.0113143631436
+ 0.0113821138211
+ 0.0114498644986
+ 0.0115176151762
+ 0.0115853658537
+ 0.0116531165312
+ 0.0117208672087
+ 0.0117886178862
+ 0.0118563685637
+ 0.0119241192412
+ 0.0119918699187
+ 0.0120596205962
+ 0.0121273712737
+ 0.0121951219512
+ 0.0122628726287
+ 0.0123306233062
+ 0.0123983739837
+ 0.0124661246612
+ 0.0125338753388
+ 0.0126016260163
+ 0.0126693766938
+ 0.0127371273713
+ 0.0128048780488
+ 0.0128726287263
+ 0.0129403794038
+ 0.0130081300813
+ 0.0130758807588
+ 0.0131436314363
+ 0.0132113821138
+ 0.0132791327913
+ 0.0133468834688
+ 0.0134146341463
+ 0.0134823848238
+ 0.0135501355014
+ 0.0136178861789
+ 0.0136856368564
+ 0.0137533875339
+ 0.0138211382114
+ 0.0138888888889
+ 0.0139566395664
+ 0.0140243902439
+ 0.0140921409214
+ 0.0141598915989
+ 0.0142276422764
+ 0.0142953929539
+ 0.0143631436314
+ 0.0144308943089
+ 0.0144986449864
+ 0.014566395664
+ 0.0146341463415
+ 0.014701897019
+ 0.0147696476965
+ 0.014837398374
+ 0.0149051490515
+ 0.014972899729
+ 0.0150406504065
+ 0.015108401084
+ 0.0151761517615
+ 0.015243902439
+ 0.0153116531165
+ 0.015379403794
+ 0.0154471544715
+ 0.0155149051491
+ 0.0155826558266
+ 0.0156504065041
+ 0.0157181571816
+ 0.0157859078591
+ 0.0158536585366
+ 0.0159214092141
+ 0.0159891598916
+ 0.0160569105691
+ 0.0161246612466
+ 0.0161924119241
+ 0.0162601626016
+ 0.0163279132791
+ 0.0163956639566
+ 0.0164634146341
+ 0.0165311653117
+ 0.0165989159892
+ 0.0166666666667
+ 0.0167344173442
+ 0.0168021680217
+ 0.0168699186992
+ 0.0169376693767
+ 0.0170054200542
+ 0.0170731707317
+ 0.0171409214092
+ 0.0172086720867
+ 0.0172764227642
+ 0.0173441734417
+ 0.0174119241192
+ 0.0174796747967
+ 0.0175474254743
+ 0.0176151761518
+ 0.0176829268293
+ 0.0177506775068
+ 0.0178184281843
+ 0.0178861788618
+ 0.0179539295393
+ 0.017966644526
+ 0.018034302953
+ 0.0181021012757
+ 0.0181700395467
+ 0.0182381178183
+ 0.018306336143
+ 0.0183746945731
+ 0.0184431931607
+ 0.0185118319581
+ 0.0185806110173
+ 0.0186495303904
+ 0.0187185901292
+ 0.0187877902858
+ 0.018857130912
+ 0.0189266120594
+ 0.0189962337798
+ 0.0190659961248
+ 0.019135899146
+ 0.0192059428948
+ 0.0192761274227
+ 0.0193464527811
+ 0.0194169190212
+ 0.0194875261943
+ 0.0195582743515
+ 0.0196291635439
+ 0.0197001938227
+ 0.0197713652386
+ 0.0198426778427
+ 0.0199141316858
+ 0.0199857268187
+ 0.020057463292
+ 0.0201293411565
+ 0.0202013604627
+ 0.0202735212611
+ 0.0203458236023
+ 0.0204182675365
+ 0.0204908531142
+ 0.0205635803856
+ 0.0206364494009
+ 0.0207094602103
+ 0.0207826128639
+ 0.0208559074116
+ 0.0209293439035
+ 0.0210029223894
+ 0.0210766429192
+ 0.0211505055427
+ 0.0212245103096
+ 0.0212986572695
+ 0.021372946472
+ 0.0214473779667
+ 0.0215219518031
+ 0.0215966680305
+ 0.0216715266984
+ 0.0217465278559
+ 0.0218216715525
+ 0.0218969578371
+ 0.021972386759
+ 0.0220479583672
+ 0.0221236727107
+ 0.0221995298385
+ 0.0222755297994
+ 0.0223516726422
+ 0.0224279584158
+ 0.0225043871688
+ 0.0225809589499
+ 0.0226576738076
+ 0.0227345317905
+ 0.0228115329471
+ 0.0228886773258
+ 0.022965964975
+ 0.0230433959429
+ 0.0231209702778
+ 0.023198688028
+ 0.0232765492414
+ 0.0233545539663
+ 0.0234327022506
+ 0.0235109941423
+ 0.0235894296893
+ 0.0236680089395
+ 0.0237467319406
+ 0.0238255987405
+ 0.0239046093867
+ 0.0239837639269
+ 0.0240630624087
+ 0.0241425048797
+ 0.0242220913872
+ 0.0243018219787
+ 0.0243816967016
+ 0.0244617156031
+ 0.0245418787306
+ 0.0246221861311
+ 0.0247026378519
+ 0.02478323394
+ 0.0248639744424
+ 0.0249448594062
+ 0.0250258888783
+ 0.0251070629054
+ 0.0251883815346
+ 0.0252698448125
+ 0.0253514527858
+ 0.0254332055012
+ 0.0255151030053
+ 0.0255971453446
+ 0.0256793325658
+ 0.0257616647151
+ 0.0258441418391
+ 0.025926763984
+ 0.0260095311962
+ 0.0260924435219
+ 0.0261755010073
+ 0.0262587036985
+ 0.0263420516417
+ 0.0264255448828
+ 0.0265091834679
+ 0.0265929674429
+ 0.0266768968536
+ 0.026760971746
+ 0.0268451921658
+ 0.0269295581587
+ 0.0270140697704
+ 0.0270987270465
+ 0.0271835300327
+ 0.0272684787745
+ 0.0273535733173
+ 0.0274388137066
+ 0.0275241999878
+ 0.0276097322062
+ 0.0276954104072
+ 0.0277812346358
+ 0.0278672049374
+ 0.027953321357
+ 0.0280395839398
+ 0.0281259927308
+ 0.028212547775
+ 0.0282992491173
+ 0.0283860968027
+ 0.028473090876
+ 0.0285602313819
+ 0.0286475183653
+ 0.0287349518709
+ 0.0288225319432
+ 0.028910258627
+ 0.0289981319667
+ 0.029086152007
+ 0.0291743187922
+ 0.0292626323668
+ 0.0293510927751
+ 0.0294397000615
+ 0.0295284542704
+ 0.0296173554458
+ 0.0297064036319
+ 0.0297955988731
+ 0.0298849412132
+ 0.0299744306964
+ 0.0300640673667
+ 0.030153851268
+ 0.0302437824443
+ 0.0303338609394
+ 0.0304240867971
+ 0.0305144600612
+ 0.0306049807754
+ 0.0306956489834
+ 0.0307864647289
+ 0.0308774280554
+ 0.0309685390065
+ 0.0310597976257
+ 0.0311512039564
+ 0.0312427580421
+ 0.0313344599261
+ 0.0314263096517
+ 0.0315183072623
+ 0.0316104528011
+ 0.0317027463112
+ 0.0317951878358
+ 0.031887777418
+ 0.0319805151009
+ 0.0320734009274
+ 0.0321664349406
+ 0.0322596171834
+ 0.0323529476987
+ 0.0324464265292
+ 0.0325400537179
+ 0.0326338293074
+ 0.0327277533405
+ 0.0328218258598
+ 0.0329160469079
+ 0.0330104165276
+ 0.0331049347612
+ 0.0331996016513
+ 0.0332944172403
+ 0.0333893815707
+ 0.0334844946847
+ 0.0335797566249
+ 0.0336751674334
+ 0.0337707271524
+ 0.0338664358243
+ 0.0339622934911
+ 0.0340583001949
+ 0.0341544559779
+ 0.0342507608821
+ 0.0343472149494
+ 0.0344438182219
+ 0.0345405707413
+ 0.0346374725497
+ 0.0347345236889
+ 0.0348317242005
+ 0.0349290741264
+ 0.0350265735083
+ 0.0351242223879
+ 0.0352220208067
+ 0.0353199688063
+ 0.0354180664284
+ 0.0355163137143
+ 0.0356147107057
+ 0.0357132574438
+ 0.0358119539701
+ 0.0359108003259
+ 0.0360097965525
+ 0.0361089426912
+ 0.0362082387833
+ 0.0363076848698
+ 0.0364072809919
+ 0.0365070271909
+ 0.0366069235076
+ 0.0367069699831
+ 0.0368071666585
+ 0.0369075135747
+ 0.0370080107725
+ 0.0371086582929
+ 0.0372094561767
+ 0.0373104044647
+ 0.0374115031976
+ 0.0375127524162
+ 0.0376141521611
+ 0.037715702473
+ 0.0378174033924
+ 0.03791925496
+ 0.0380212572162
+ 0.0381234102016
+ 0.0382257139565
+ 0.0383281685215
+ 0.0384307739368
+ 0.0385335302428
+ 0.0386364374799
+ 0.0387394956882
+ 0.038842704908
+ 0.0389460651794
+ 0.0390495765427
+ 0.0391532390379
+ 0.0392570527051
+ 0.0393610175843
+ 0.0394651337156
+ 0.0395694011388
+ 0.039673819894
+ 0.039778390021
+ 0.0398831115596
+ 0.0399879845497
+ 0.040093009031
+ 0.0401981850433
+ 0.0403035126263
+ 0.0404089918197
+ 0.040514622663
+ 0.040620405196
+ 0.040726339458
+ 0.0408324254888
+ 0.0409386633277
+ 0.0410450530142
+ 0.0411515945877
+ 0.0412582880876
+ 0.0413651335533
+ 0.041472131024
+ 0.0415792805391
+ 0.0416865821377
+ 0.0417940358591
+ 0.0419016417424
+ 0.0420093998267
+ 0.0421173101513
+ 0.042225372755
+ 0.042333587677
+ 0.0424419549563
+ 0.0425504746317
+ 0.0426591467422
+ 0.0427679713268
+ 0.0428769484242
+ 0.0429860780732
+ 0.0430953603127
+ 0.0432047951815
+ 0.0433143827181
+ 0.0434241229613
+ 0.0435340159498
+ 0.0436440617221
+ 0.0437542603169
+ 0.0438646117726
+ 0.0439751161278
+ 0.044085773421
+ 0.0441965836905
+ 0.0443075469749
+ 0.0444186633124
+ 0.0445299327415
+ 0.0446413553004
+ 0.0447529310274
+ 0.0448646599607
+ 0.0449765421386
+ 0.0450885775991
+ 0.0452007663806
+ 0.045313108521
+ 0.0454256040584
+ 0.0455382530309
+ 0.0456510554765
+ 0.0457640114332
+ 0.0458771209388
+ 0.0459903840314
+ 0.0461038007487
+ 0.0462173711287
+ 0.0463310952091
+ 0.0464449730277
+ 0.0465590046223
+ 0.0466731900306
+ 0.0467875292902
+ 0.0469020224388
+ 0.0470166695141
+ 0.0471314705535
+ 0.0472464255947
+ 0.0473615346752
+ 0.0474767978325
+ 0.047592215104
+ 0.0477077865271
+ 0.0478235121393
+ 0.0479393919779
+ 0.0480554260802
+ 0.0481716144835
+ 0.0482879572252
+ 0.0484044543423
+ 0.0485211058722
+ 0.048637911852
+ 0.0487548723189
+ 0.0488719873099
+ 0.0489892568622
+ 0.0491066810127
+ 0.0492242597985
+ 0.0493419932567
+ 0.049459881424
+ 0.0495779243375
+ 0.0496961220341
+ 0.0498144745506
+ 0.0499329819239
+ 0.0500516441907
+ 0.0501704613878
+ 0.050289433552
+ 0.0504085607199
+ 0.0505278429283
+ 0.0506472802138
+ 0.050766872613
+ 0.0508866201625
+ 0.0510065228988
+ 0.0511265808586
+ 0.0512467940782
+ 0.0513671625942
+ 0.051487686443
+ 0.0516083656609
+ 0.0517292002845
+ 0.0518501903499
+ 0.0519713358936
+ 0.0520926369519
+ 0.0522140935609
+ 0.0523357057569
+ 0.0524574735762
+ 0.0525793970549
+ 0.052701476229
+ 0.0528237111349
+ 0.0529461018084
+ 0.0530686482857
+ 0.0531913506028
+ 0.0533142087958
+ 0.0534372229004
+ 0.0535603929528
+ 0.0536837189888
+ 0.0538072010443
+ 0.0539308391551
+ 0.0540546333571
+ 0.054178583686
+ 0.0543026901776
+ 0.0544269528677
+ 0.0545513717919
+ 0.054675946986
+ 0.0548006784855
+ 0.0549255663262
+ 0.0550506105435
+ 0.0551758111732
+ 0.0553011682506
+ 0.0554266818113
+ 0.0555523518908
+ 0.0556781785245
+ 0.0558041617479
+ 0.0559303015964
+ 0.0560565981053
+ 0.0561830513099
+ 0.0563096612457
+ 0.0564364279478
+ 0.0565633514515
+ 0.056690431792
+ 0.0568176690046
+ 0.0569450631244
+ 0.0570726141866
+ 0.0572003222263
+ 0.0573281872785
+ 0.0574562093784
+ 0.0575843885609
+ 0.0577127248611
+ 0.057841218314
+ 0.0579698689545
+ 0.0580986768176
+ 0.0582276419381
+ 0.0583567643509
+ 0.0584860440908
+ 0.0586154811928
+ 0.0587450756915
+ 0.0588748276217
+ 0.0590047370182
+ 0.0591348039157
+ 0.0592650283489
+ 0.0593954103524
+ 0.0595259499608
+ 0.0596566472089
+ 0.059787502131
+ 0.0599185147619
+ 0.0600496851359
+ 0.0601810132877
+ 0.0603124992516
+ 0.0604441430622
+ 0.0605759447539
+ 0.0607079043609
+ 0.0608400219178
+ 0.0609722974589
+ 0.0611047310184
+ 0.0612373226306
+ 0.0613700723299
+ 0.0615029801504
+ 0.0616360461264
+ 0.0617692702921
+ 0.0619026526815
+ 0.0620361933289
+ 0.0621698922684
+ 0.0623037495339
+ 0.0624377651597
+ 0.0625719391796
+ 0.0627062716278
+ 0.0628407625382
+ 0.0629754119448
+ 0.0631102198814
+ 0.063245186382
+ 0.0633803114805
+ 0.0635155952107
+ 0.0636510376064
+ 0.0637866387015
+ 0.0639223985297
+ 0.0640583171247
+ 0.0641943945204
+ 0.0643306307504
+ 0.0644670258483
+ 0.0646035798479
+ 0.0647402927827
+ 0.0648771646864
+ 0.0650141955925
+ 0.0651513855346
+ 0.0652887345463
+ 0.0654262426609
+ 0.065563909912
+ 0.0657017363331
+ 0.0658397219575
+ 0.0659778668188
+ 0.0661161709501
+ 0.066254634385
+ 0.0663932571568
+ 0.0665320392987
+ 0.066670980844
+ 0.066810081826
+ 0.0669493422779
+ 0.067088762233
+ 0.0672283417244
+ 0.0673680807852
+ 0.0675079794487
+ 0.0676480377479
+ 0.0677882557159
+ 0.0679286333858
+ 0.0680691707907
+ 0.0682098679634
+ 0.0683507249371
+ 0.0684917417447
+ 0.0686329184191
+ 0.0687742549933
+ 0.0689157515002
+ 0.0690574079726
+ 0.0691992244434
+ 0.0693412009454
+ 0.0694833375114
+ 0.0696256341743
+ 0.0697680909667
+ 0.0699107079213
+ 0.070053485071
+ 0.0701964224484
+ 0.0703395200861
+ 0.0704827780168
+ 0.0706261962731
+ 0.0707697748876
+ 0.0709135138929
+ 0.0710574133215
+ 0.0712014732059
+ 0.0713456935786
+ 0.0714900744722
+ 0.0716346159191
+ 0.0717793179516
+ 0.0719241806023
+ 0.0720692039034
+ 0.0722143878875
+ 0.0723597325867
+ 0.0725052380334
+ 0.07265090426
+ 0.0727967312986
+ 0.0729427191816
+ 0.0730888679412
+ 0.0732351776095
+ 0.0733816482187
+ 0.0735282798011
+ 0.0736750723887
+ 0.0738220260137
+ 0.0739691407081
+ 0.0741164165041
+ 0.0742638534336
+ 0.0744114515287
+ 0.0745592108214
+ 0.0747071313437
+ 0.0748552131275
+ 0.0750034562048
+ 0.0751518606075
+ 0.0753004263675
+ 0.0754491535166
+ 0.0755980420867
+ 0.0757470921096
+ 0.0758963036171
+ 0.0760456766411
+ 0.0761952112132
+ 0.0763449073652
+ 0.0764947651289
+ 0.0766447845359
+ 0.0767949656178
+ 0.0769453084064
+ 0.0770958129333
+ 0.0772464792301
+ 0.0773973073283
+ 0.0775482972595
+ 0.0776994490554
+ 0.0778507627473
+ 0.0780022383668
+ 0.0781538759454
+ 0.0783056755146
+ 0.0784576371057
+ 0.0786097607502
+ 0.0787620464794
+ 0.0789144943249
+ 0.0790671043178
+ 0.0792198764895
+ 0.0793728108714
+ 0.0795259074947
+ 0.0796791663908
+ 0.0798325875907
+ 0.0799861711258
+ 0.0801399170273
+ 0.0802938253264
+ 0.0804478960541
+ 0.0806021292417
+ 0.0807565249203
+ 0.080911083121
+ 0.0810658038748
+ 0.0812206872128
+ 0.081375733166
+ 0.0815309417655
+ 0.0816863130423
+ 0.0818418470273
+ 0.0819975437514
+ 0.0821534032457
+ 0.082309425541
+ 0.0824656106682
+ 0.0826219586583
+ 0.0827784695419
+ 0.08293514335
+ 0.0830919801135
+ 0.083248979863
+ 0.0834061426293
+ 0.0835634684432
+ 0.0837209573355
+ 0.0838786093367
+ 0.0840364244777
+ 0.0841944027891
+ 0.0843525443015
+ 0.0845108490456
+ 0.0846693170519
+ 0.0848279483511
+ 0.0849867429738
+ 0.0851457009504
+ 0.0853048223115
+ 0.0854641070876
+ 0.0856235553092
+ 0.0857831670068
+ 0.0859429422108
+ 0.0861028809516
+ 0.0862629832597
+ 0.0864232491654
+ 0.0865836786991
+ 0.0867442718912
+ 0.086905028772
+ 0.0870659493718
+ 0.0872270337208
+ 0.0873882818495
+ 0.0875496937879
+ 0.0877112695664
+ 0.0878730092151
+ 0.0880349127643
+ 0.0881969802441
+ 0.0883592116846
+ 0.0885216071161
+ 0.0886841665686
+ 0.0888468900722
+ 0.089009777657
+ 0.089172829353
+ 0.0893360451904
+ 0.089499425199
+ 0.089662969409
+ 0.0898266778502
+ 0.0899905505527
+ 0.0901545875464
+ 0.0903187888612
+ 0.090483154527
+ 0.0906476845738
+ 0.0908123790312
+ 0.0909772379293
+ 0.0911422612979
+ 0.0913074491667
+ 0.0914728015655
+ 0.0916383185242
+ 0.0918040000724
+ 0.0919698462399
+ 0.0921358570564
+ 0.0923020325516
+ 0.0924683727553
+ 0.0926348776969
+ 0.0928015474063
+ 0.0929683819129
+ 0.0931353812465
+ 0.0933025454365
+ 0.0934698745127
+ 0.0936373685044
+ 0.0938050274412
+ 0.0939728513527
+ 0.0941408402683
+ 0.0943089942176
+ 0.0944773132299
+ 0.0946457973347
+ 0.0948144465614
+ 0.0949832609394
+ 0.0951522404981
+ 0.0953213852669
+ 0.0954906952751
+ 0.095660170552
+ 0.095829811127
+ 0.0959996170292
+ 0.0961695882881
+ 0.0963397249329
+ 0.0965100269927
+ 0.0966804944968
+ 0.0968511274745
+ 0.0970219259548
+ 0.097192889967
+ 0.0973640195402
+ 0.0975353147035
+ 0.097706775486
+ 0.0978784019169
+ 0.0980501940252
+ 0.0982221518399
+ 0.0983942753901
+ 0.0985665647049
+ 0.0987390198131
+ 0.0989116407439
+ 0.0990844275261
+ 0.0992573801888
+ 0.0994304987608
+ 0.0996037832711
+ 0.0997772337485
+ 0.099950850222
+ 0.10012463272
+ 0.100298581272
+ 0.100472695907
+ 0.100646976653
+ 0.100821423539
+ 0.100996036595
+ 0.101170815848
+ 0.101345761327
+ 0.101520873061
+ 0.10169615108
+ 0.101871595411
+ 0.102047206083
+ 0.102222983125
+ 0.102398926566
+ 0.102575036433
+ 0.102751312757
+ 0.102927755564
+ 0.103104364885
+ 0.103281140747
+ 0.103458083179
+ 0.103635192209
+ 0.103812467867
+ 0.10398991018
+ 0.104167519177
+ 0.104345294886
+ 0.104523237336
+ 0.104701346555
+ 0.104879622572
+ 0.105058065415
+ 0.105236675112
+ 0.105415451692
+ 0.105594395183
+ 0.105773505613
+ 0.105952783011
+ 0.106132227404
+ 0.106311838822
+ 0.106491617292
+ 0.106671562843
+ 0.106851675503
+ 0.1070319553
+ 0.107212402262
+ 0.107393016418
+ 0.107573797795
+ 0.107754746421
+ 0.107935862326
+ 0.108117145536
+ 0.10829859608
+ 0.108480213986
+ 0.108661999282
+ 0.108843951997
+ 0.109026072157
+ 0.109208359792
+ 0.109390814928
+ 0.109573437595
+ 0.10975622782
+ 0.10993918563
+ 0.110122311054
+ 0.11030560412
+ 0.110489064856
+ 0.110672693289
+ 0.110856489448
+ 0.111040453359
+ 0.111224585052
+ 0.111408884553
+ 0.111593351891
+ 0.111777987094
+ 0.111962790188
+ 0.112147761202
+ 0.112332900164
+ 0.112518207101
+ 0.11270368204
+ 0.112889325011
+ 0.11307513604
+ 0.113261115154
+ 0.113447262383
+ 0.113633577752
+ 0.11382006129
+ 0.114006713024
+ 0.114193532983
+ 0.114380521192
+ 0.114567677681
+ 0.114755002476
+ 0.114942495605
+ 0.115130157095
+ 0.115317986975
+ 0.115505985271
+ 0.11569415201
+ 0.115882487221
+ 0.11607099093
+ 0.116259663166
+ 0.116448503955
+ 0.116637513324
+ 0.116826691302
+ 0.117016037915
+ 0.117205553191
+ 0.117395237157
+ 0.11758508984
+ 0.117775111267
+ 0.117965301467
+ 0.118155660466
+ 0.11834618829
+ 0.118536884969
+ 0.118727750528
+ 0.118918784995
+ 0.119109988396
+ 0.11930136076
+ 0.119492902114
+ 0.119684612483
+ 0.119876491896
+ 0.12006854038
+ 0.120260757961
+ 0.120453144667
+ 0.120645700525
+ 0.120838425562
+ 0.121031319804
+ 0.121224383279
+ 0.121417616013
+ 0.121611018035
+ 0.121804589369
+ 0.121998330045
+ 0.122192240088
+ 0.122386319525
+ 0.122580568384
+ 0.12277498669
+ 0.122969574472
+ 0.123164331755
+ 0.123359258567
+ 0.123554354935
+ 0.123749620884
+ 0.123945056443
+ 0.124140661638
+ 0.124336436495
+ 0.124532381041
+ 0.124728495304
+ 0.124924779309
+ 0.125121233084
+ 0.125317856654
+ 0.125514650048
+ 0.12571161329
+ 0.125908746409
+ 0.126106049431
+ 0.126303522382
+ 0.126501165288
+ 0.126698978177
+ 0.126896961075
+ 0.127095114009
+ 0.127293437005
+ 0.127491930089
+ 0.127690593288
+ 0.127889426629
+ 0.128088430138
+ 0.128287603842
+ 0.128486947766
+ 0.128686461938
+ 0.128886146384
+ 0.12908600113
+ 0.129286026202
+ 0.129486221628
+ 0.129686587433
+ 0.129887123643
+ 0.130087830286
+ 0.130288707387
+ 0.130489754973
+ 0.130690973069
+ 0.130892361703
+ 0.1310939209
+ 0.131295650687
+ 0.13149755109
+ 0.131699622135
+ 0.131901863848
+ 0.132104276256
+ 0.132306859385
+ 0.13250961326
+ 0.132712537909
+ 0.132915633357
+ 0.13311889963
+ 0.133322336754
+ 0.133525944756
+ 0.133729723662
+ 0.133933673497
+ 0.134137794288
+ 0.134342086061
+ 0.134546548841
+ 0.134751182655
+ 0.134955987529
+ 0.135160963489
+ 0.13536611056
+ 0.135571428769
+ 0.135776918142
+ 0.135982578704
+ 0.136188410481
+ 0.1363944135
+ 0.136600587786
+ 0.136806933366
+ 0.137013450264
+ 0.137220138507
+ 0.13742699812
+ 0.13763402913
+ 0.137841231563
+ 0.138048605443
+ 0.138256150797
+ 0.138463867651
+ 0.138671756029
+ 0.13887981596
+ 0.139088047466
+ 0.139296450576
+ 0.139505025313
+ 0.139713771704
+ 0.139922689775
+ 0.140131779551
+ 0.140341041058
+ 0.140550474321
+ 0.140760079367
+ 0.14096985622
+ 0.141179804906
+ 0.141389925451
+ 0.141600217881
+ 0.14181068222
+ 0.142021318495
+ 0.142232126731
+ 0.142443106953
+ 0.142654259188
+ 0.14286558346
+ 0.143077079794
+ 0.143288748218
+ 0.143500588755
+ 0.143712601431
+ 0.143924786272
+ 0.144137143303
+ 0.14434967255
+ 0.144562374037
+ 0.144775247791
+ 0.144988293836
+ 0.145201512198
+ 0.145414902902
+ 0.145628465974
+ 0.145842201439
+ 0.146056109322
+ 0.146270189648
+ 0.146484442443
+ 0.146698867732
+ 0.146913465539
+ 0.147128235892
+ 0.147343178813
+ 0.14755829433
+ 0.147773582467
+ 0.147989043248
+ 0.1482046767
+ 0.148420482847
+ 0.148636461715
+ 0.148852613329
+ 0.149068937713
+ 0.149285434893
+ 0.149502104894
+ 0.149718947741
+ 0.149935963459
+ 0.150153152073
+ 0.150370513608
+ 0.15058804809
+ 0.150805755542
+ 0.151023635991
+ 0.15124168946
+ 0.151459915976
+ 0.151678315563
+ 0.151896888246
+ 0.152115634049
+ 0.152334552999
+ 0.152553645119
+ 0.152772910435
+ 0.152992348971
+ 0.153211960753
+ 0.153431745805
+ 0.153651704151
+ 0.153871835818
+ 0.154092140829
+ 0.15431261921
+ 0.154533270985
+ 0.154754096179
+ 0.154975094817
+ 0.155196266924
+ 0.155417612524
+ 0.155639131642
+ 0.155860824302
+ 0.15608269053
+ 0.15630473035
+ 0.156526943787
+ 0.156749330866
+ 0.15697189161
+ 0.157194626046
+ 0.157417534197
+ 0.157640616088
+ 0.157863871743
+ 0.158087301188
+ 0.158310904446
+ 0.158534681543
+ 0.158758632503
+ 0.15898275735
+ 0.15920705611
+ 0.159431528806
+ 0.159656175463
+ 0.159880996105
+ 0.160105990758
+ 0.160331159445
+ 0.160556502191
+ 0.16078201902
+ 0.161007709957
+ 0.161233575027
+ 0.161459614253
+ 0.16168582766
+ 0.161912215273
+ 0.162138777115
+ 0.162365513212
+ 0.162592423587
+ 0.162819508266
+ 0.163046767271
+ 0.163274200628
+ 0.163501808361
+ 0.163729590494
+ 0.163957547051
+ 0.164185678057
+ 0.164413983537
+ 0.164642463513
+ 0.164871118011
+ 0.165099947054
+ 0.165328950667
+ 0.165558128874
+ 0.1657874817
+ 0.166017009168
+ 0.166246711303
+ 0.166476588128
+ 0.166706639668
+ 0.166936865947
+ 0.16716726699
+ 0.167397842819
+ 0.16762859346
+ 0.167859518936
+ 0.168090619272
+ 0.168321894492
+ 0.168553344618
+ 0.168784969677
+ 0.169016769691
+ 0.169248744685
+ 0.169480894683
+ 0.169713219708
+ 0.169945719785
+ 0.170178394937
+ 0.170411245189
+ 0.170644270564
+ 0.170877471087
+ 0.171110846781
+ 0.171344397671
+ 0.171578123779
+ 0.171812025131
+ 0.17204610175
+ 0.172280353659
+ 0.172514780883
+ 0.172749383445
+ 0.17298416137
+ 0.173219114681
+ 0.173454243402
+ 0.173689547556
+ 0.173925027168
+ 0.174160682262
+ 0.17439651286
+ 0.174632518987
+ 0.174868700667
+ 0.175105057923
+ 0.175341590779
+ 0.175578299258
+ 0.175815183385
+ 0.176052243183
+ 0.176289478676
+ 0.176526889887
+ 0.176764476841
+ 0.177002239559
+ 0.177240178068
+ 0.177478292389
+ 0.177716582546
+ 0.177955048564
+ 0.178193690466
+ 0.178432508275
+ 0.178671502014
+ 0.178910671708
+ 0.17915001738
+ 0.179389539054
+ 0.179629236752
+ 0.179869110499
+ 0.180109160318
+ 0.180349386232
+ 0.180589788265
+ 0.180830366441
+ 0.181071120782
+ 0.181312051313
+ 0.181553158057
+ 0.181794441036
+ 0.182035900276
+ 0.182277535798
+ 0.182519347626
+ 0.182761335784
+ 0.183003500296
+ 0.183245841183
+ 0.183488358471
+ 0.183731052181
+ 0.183973922338
+ 0.184216968965
+ 0.184460192085
+ 0.184703591721
+ 0.184947167896
+ 0.185190920635
+ 0.185434849959
+ 0.185678955893
+ 0.18592323846
+ 0.186167697682
+ 0.186412333584
+ 0.186657146187
+ 0.186902135516
+ 0.187147301594
+ 0.187392644443
+ 0.187638164088
+ 0.18788386055
+ 0.188129733854
+ 0.188375784022
+ 0.188622011078
+ 0.188868415044
+ 0.189114995944
+ 0.1893617538
+ 0.189608688637
+ 0.189855800476
+ 0.190103089342
+ 0.190350555256
+ 0.190598198242
+ 0.190846018324
+ 0.191094015523
+ 0.191342189864
+ 0.191590541369
+ 0.191839070061
+ 0.192087775962
+ 0.192336659097
+ 0.192585719488
+ 0.192834957157
+ 0.193084372129
+ 0.193333964425
+ 0.193583734069
+ 0.193833681083
+ 0.194083805491
+ 0.194334107315
+ 0.194584586578
+ 0.194835243303
+ 0.195086077513
+ 0.195337089231
+ 0.19558827848
+ 0.195839645281
+ 0.196091189659
+ 0.196342911636
+ 0.196594811234
+ 0.196846888477
+ 0.197099143388
+ 0.197351575988
+ 0.197604186301
+ 0.19785697435
+ 0.198109940157
+ 0.198363083744
+ 0.198616405136
+ 0.198869904354
+ 0.199123581421
+ 0.199377436359
+ 0.199631469192
+ 0.199885679942
+ 0.200140068631
+ 0.200394635283
+ 0.20064937992
+ 0.200904302564
+ 0.201159403239
+ 0.201414681966
+ 0.201670138768
+ 0.201925773669
+ 0.20218158669
+ 0.202437577853
+ 0.202693747183
+ 0.2029500947
+ 0.203206620428
+ 0.203463324389
+ 0.203720206606
+ 0.203977267101
+ 0.204234505896
+ 0.204491923014
+ 0.204749518478
+ 0.20500729231
+ 0.205265244533
+ 0.205523375168
+ 0.205781684238
+ 0.206040171766
+ 0.206298837775
+ 0.206557682285
+ 0.206816705321
+ 0.207075906904
+ 0.207335287056
+ 0.207594845801
+ 0.207854583159
+ 0.208114499155
+ 0.208374593809
+ 0.208634867145
+ 0.208895319184
+ 0.209155949949
+ 0.209416759462
+ 0.209677747746
+ 0.209938914822
+ 0.210200260714
+ 0.210461785442
+ 0.21072348903
+ 0.2109853715
+ 0.211247432874
+ 0.211509673174
+ 0.211772092422
+ 0.21203469064
+ 0.212297467852
+ 0.212560424078
+ 0.212823559341
+ 0.213086873663
+ 0.213350367067
+ 0.213614039574
+ 0.213877891207
+ 0.214141921987
+ 0.214406131937
+ 0.214670521079
+ 0.214935089435
+ 0.215199837027
+ 0.215464763877
+ 0.215729870007
+ 0.21599515544
+ 0.216260620196
+ 0.216526264299
+ 0.21679208777
+ 0.217058090632
+ 0.217324272905
+ 0.217590634613
+ 0.217857175778
+ 0.21812389642
+ 0.218390796563
+ 0.218657876228
+ 0.218925135437
+ 0.219192574212
+ 0.219460192575
+ 0.219727990547
+ 0.219995968152
+ 0.22026412541
+ 0.220532462344
+ 0.220800978975
+ 0.221069675325
+ 0.221338551417
+ 0.221607607271
+ 0.221876842911
+ 0.222146258357
+ 0.222415853631
+ 0.222685628756
+ 0.222955583753
+ 0.223225718644
+ 0.223496033451
+ 0.223766528195
+ 0.224037202898
+ 0.224308057582
+ 0.224579092269
+ 0.22485030698
+ 0.225121701738
+ 0.225393276563
+ 0.225665031478
+ 0.225936966505
+ 0.226209081664
+ 0.226481376978
+ 0.226753852468
+ 0.227026508157
+ 0.227299344065
+ 0.227572360215
+ 0.227845556627
+ 0.228118933324
+ 0.228392490328
+ 0.228666227659
+ 0.22894014534
+ 0.229214243391
+ 0.229488521835
+ 0.229762980694
+ 0.230037619988
+ 0.23031243974
+ 0.23058743997
+ 0.230862620701
+ 0.231137981953
+ 0.23141352375
+ 0.231689246111
+ 0.231965149058
+ 0.232241232614
+ 0.232517496799
+ 0.232793941634
+ 0.233070567143
+ 0.233347373345
+ 0.233624360262
+ 0.233901527916
+ 0.234178876328
+ 0.23445640552
+ 0.234734115513
+ 0.235012006328
+ 0.235290077987
+ 0.235568330511
+ 0.235846763922
+ 0.23612537824
+ 0.236404173488
+ 0.236683149686
+ 0.236962306857
+ 0.237241645021
+ 0.237521164199
+ 0.237800864413
+ 0.238080745685
+ 0.238360808035
+ 0.238641051485
+ 0.238921476056
+ 0.23920208177
+ 0.239482868647
+ 0.239763836709
+ 0.240044985977
+ 0.240326316473
+ 0.240607828217
+ 0.240889521231
+ 0.241171395537
+ 0.241453451154
+ 0.241735688105
+ 0.24201810641
+ 0.242300706092
+ 0.24258348717
+ 0.242866449666
+ 0.243149593602
+ 0.243432918998
+ 0.243716425876
+ 0.244000114257
+ 0.244283984161
+ 0.24456803561
+ 0.244852268625
+ 0.245136683227
+ 0.245421279438
+ 0.245706057278
+ 0.245991016768
+ 0.246276157929
+ 0.246561480783
+ 0.24684698535
+ 0.247132671652
+ 0.247418539709
+ 0.247704589543
+ 0.247990821175
+ 0.248277234624
+ 0.248563829914
+ 0.248850607064
+ 0.249137566095
+ 0.249424707029
+ 0.249712029886
+ 0.249999534688
+ 0.250287221455
+ 0.250575090208
+ 0.250863140968
+ 0.251151373756
+ 0.251439788593
+ 0.2517283855
+ 0.252017164498
+ 0.252306125607
+ 0.252595268849
+ 0.252884594244
+ 0.253174101813
+ 0.253463791578
+ 0.253753663558
+ 0.254043717774
+ 0.254333954249
+ 0.254624373001
+ 0.254914974053
+ 0.255205757425
+ 0.255496723137
+ 0.255787871211
+ 0.256079201667
+ 0.256370714527
+ 0.25666240981
+ 0.256954287537
+ 0.25724634773
+ 0.257538590408
+ 0.257831015594
+ 0.258123623307
+ 0.258416413568
+ 0.258709386397
+ 0.259002541817
+ 0.259295879846
+ 0.259589400506
+ 0.259883103818
+ 0.260176989802
+ 0.260471058479
+ 0.260765309869
+ 0.261059743993
+ 0.261354360873
+ 0.261649160527
+ 0.261944142977
+ 0.262239308244
+ 0.262534656348
+ 0.26283018731
+ 0.26312590115
+ 0.263421797888
+ 0.263717877546
+ 0.264014140145
+ 0.264310585703
+ 0.264607214243
+ 0.264904025784
+ 0.265201020347
+ 0.265498197953
+ 0.265795558622
+ 0.266093102374
+ 0.266390829231
+ 0.266688739212
+ 0.266986832338
+ 0.267285108629
+ 0.267583568107
+ 0.26788221079
+ 0.268181036701
+ 0.268480045858
+ 0.268779238284
+ 0.269078613997
+ 0.269378173019
+ 0.26967791537
+ 0.26997784107
+ 0.270277950139
+ 0.270578242599
+ 0.270878718469
+ 0.27117937777
+ 0.271480220522
+ 0.271781246745
+ 0.27208245646
+ 0.272383849687
+ 0.272685426446
+ 0.272987186758
+ 0.273289130643
+ 0.273591258122
+ 0.273893569214
+ 0.274196063939
+ 0.274498742319
+ 0.274801604374
+ 0.275104650123
+ 0.275407879587
+ 0.275711292786
+ 0.27601488974
+ 0.27631867047
+ 0.276622634996
+ 0.276926783338
+ 0.277231115516
+ 0.277535631551
+ 0.277840331462
+ 0.27814521527
+ 0.278450282994
+ 0.278755534656
+ 0.279060970276
+ 0.279366589872
+ 0.279672393466
+ 0.279978381078
+ 0.280284552728
+ 0.280590908435
+ 0.280897448221
+ 0.281204172105
+ 0.281511080107
+ 0.281818172247
+ 0.282125448545
+ 0.282432909023
+ 0.282740553698
+ 0.283048382592
+ 0.283356395725
+ 0.283664593116
+ 0.283972974786
+ 0.284281540755
+ 0.284590291043
+ 0.284899225669
+ 0.285208344654
+ 0.285517648018
+ 0.28582713578
+ 0.286136807961
+ 0.286446664581
+ 0.286756705659
+ 0.287066931216
+ 0.287377341272
+ 0.287687935846
+ 0.287998714958
+ 0.288309678629
+ 0.288620826878
+ 0.288932159725
+ 0.28924367719
+ 0.289555379293
+ 0.289867266054
+ 0.290179337493
+ 0.290491593629
+ 0.290804034483
+ 0.291116660074
+ 0.291429470422
+ 0.291742465547
+ 0.292055645469
+ 0.292369010208
+ 0.292682559783
+ 0.292996294215
+ 0.293310213523
+ 0.293624317726
+ 0.293938606845
+ 0.2942530809
+ 0.29456773991
+ 0.294882583895
+ 0.295197612875
+ 0.295512826869
+ 0.295828225898
+ 0.296143809981
+ 0.296459579137
+ 0.296775533387
+ 0.29709167275
+ 0.297407997246
+ 0.297724506895
+ 0.298041201716
+ 0.298358081729
+ 0.298675146954
+ 0.29899239741
+ 0.299309833117
+ 0.299627454094
+ 0.299945260362
+ 0.300263251941
+ 0.300581428848
+ 0.300899791105
+ 0.301218338731
+ 0.301537071745
+ 0.301855990167
+ 0.302175094017
+ 0.302494383314
+ 0.302813858078
+ 0.303133518329
+ 0.303453364086
+ 0.303773395368
+ 0.304093612195
+ 0.304414014587
+ 0.304734602563
+ 0.305055376143
+ 0.305376335346
+ 0.305697480192
+ 0.3060188107
+ 0.30634032689
+ 0.306662028782
+ 0.306983916394
+ 0.307305989747
+ 0.307628248859
+ 0.307950693751
+ 0.308273324441
+ 0.30859614095
+ 0.308919143296
+ 0.309242331499
+ 0.309565705579
+ 0.309889265554
+ 0.310213011445
+ 0.310536943271
+ 0.310861061051
+ 0.311185364804
+ 0.311509854551
+ 0.31183453031
+ 0.3121593921
+ 0.312484439942
+ 0.312809673854
+ 0.313135093856
+ 0.313460699967
+ 0.313786492206
+ 0.314112470593
+ 0.314438635148
+ 0.314764985889
+ 0.315091522836
+ 0.315418246008
+ 0.315745155424
+ 0.316072251104
+ 0.316399533068
+ 0.316727001333
+ 0.31705465592
+ 0.317382496848
+ 0.317710524135
+ 0.318038737803
+ 0.318367137868
+ 0.318695724352
+ 0.319024497273
+ 0.319353456649
+ 0.319682602502
+ 0.320011934849
+ 0.32034145371
+ 0.320671159104
+ 0.32100105105
+ 0.321331129568
+ 0.321661394677
+ 0.321991846395
+ 0.322322484742
+ 0.322653309738
+ 0.3229843214
+ 0.323315519749
+ 0.323646904804
+ 0.323978476583
+ 0.324310235106
+ 0.324642180393
+ 0.324974312461
+ 0.32530663133
+ 0.325639137019
+ 0.325971829548
+ 0.326304708935
+ 0.3266377752
+ 0.326971028361
+ 0.327304468438
+ 0.327638095449
+ 0.327971909414
+ 0.328305910352
+ 0.328640098281
+ 0.328974473221
+ 0.329309035192
+ 0.32964378421
+ 0.329978720297
+ 0.330313843471
+ 0.33064915375
+ 0.330984651154
+ 0.331320335702
+ 0.331656207413
+ 0.331992266305
+ 0.332328512398
+ 0.332664945711
+ 0.333001566262
+ 0.33333837407
+ 0.333675369156
+ 0.334012551536
+ 0.334349921231
+ 0.334687478259
+ 0.335025222639
+ 0.33536315439
+ 0.335701273531
+ 0.33603958008
+ 0.336378074057
+ 0.336716755481
+ 0.33705562437
+ 0.337394680744
+ 0.33773392462
+ 0.338073356019
+ 0.338412974958
+ 0.338752781456
+ 0.339092775534
+ 0.339432957208
+ 0.339773326498
+ 0.340113883424
+ 0.340454628003
+ 0.340795560254
+ 0.341136680197
+ 0.341477987849
+ 0.341819483231
+ 0.34216116636
+ 0.342503037255
+ 0.342845095935
+ 0.34318734242
+ 0.343529776726
+ 0.343872398874
+ 0.344215208882
+ 0.344558206769
+ 0.344901392553
+ 0.345244766253
+ 0.345588327888
+ 0.345932077477
+ 0.346276015038
+ 0.34662014059
+ 0.346964454151
+ 0.34730895574
+ 0.347653645377
+ 0.347998523079
+ 0.348343588865
+ 0.348688842754
+ 0.349034284765
+ 0.349379914916
+ 0.349725733225
+ 0.350071739712
+ 0.350417934394
+ 0.350764317292
+ 0.351110888422
+ 0.351457647804
+ 0.351804595457
+ 0.352151731398
+ 0.352499055647
+ 0.352846568222
+ 0.353194269142
+ 0.353542158424
+ 0.353890236089
+ 0.354238502153
+ 0.354586956637
+ 0.354935599558
+ 0.355284430934
+ 0.355633450785
+ 0.355982659129
+ 0.356332055984
+ 0.356681641369
+ 0.357031415302
+ 0.357381377802
+ 0.357731528887
+ 0.358081868576
+ 0.358432396887
+ 0.358783113839
+ 0.35913401945
+ 0.359485113739
+ 0.359836396723
+ 0.360187868422
+ 0.360539528854
+ 0.360891378037
+ 0.36124341599
+ 0.36159564273
+ 0.361948058278
+ 0.36230066265
+ 0.362653455865
+ 0.363006437943
+ 0.3633596089
+ 0.363712968755
+ 0.364066517527
+ 0.364420255235
+ 0.364774181896
+ 0.365128297528
+ 0.365482602151
+ 0.365837095782
+ 0.36619177844
+ 0.366546650144
+ 0.36690171091
+ 0.367256960758
+ 0.367612399707
+ 0.367968027773
+ 0.368323844977
+ 0.368679851335
+ 0.369036046866
+ 0.369392431589
+ 0.369749005521
+ 0.370105768682
+ 0.370462721088
+ 0.370819862759
+ 0.371177193713
+ 0.371534713967
+ 0.371892423541
+ 0.372250322452
+ 0.372608410719
+ 0.37296668836
+ 0.373325155392
+ 0.373683811835
+ 0.374042657706
+ 0.374401693023
+ 0.374760917806
+ 0.375120332071
+ 0.375479935837
+ 0.375839729123
+ 0.376199711945
+ 0.376559884324
+ 0.376920246276
+ 0.37728079782
+ 0.377641538973
+ 0.378002469755
+ 0.378363590183
+ 0.378724900275
+ 0.37908640005
+ 0.379448089525
+ 0.379809968719
+ 0.380172037649
+ 0.380534296334
+ 0.380896744792
+ 0.38125938304
+ 0.381622211098
+ 0.381985228983
+ 0.382348436712
+ 0.382711834305
+ 0.383075421779
+ 0.383439199152
+ 0.383803166442
+ 0.384167323667
+ 0.384531670846
+ 0.384896207996
+ 0.385260935135
+ 0.385625852281
+ 0.385990959452
+ 0.386356256667
+ 0.386721743942
+ 0.387087421297
+ 0.387453288749
+ 0.387819346316
+ 0.388185594016
+ 0.388552031867
+ 0.388918659887
+ 0.389285478094
+ 0.389652486506
+ 0.39001968514
+ 0.390387074015
+ 0.390754653148
+ 0.391122422558
+ 0.391490382262
+ 0.391858532278
+ 0.392226872625
+ 0.392595403319
+ 0.39296412438
+ 0.393333035824
+ 0.39370213767
+ 0.394071429935
+ 0.394440912637
+ 0.394810585795
+ 0.395180449426
+ 0.395550503548
+ 0.395920748178
+ 0.396291183335
+ 0.396661809036
+ 0.397032625299
+ 0.397403632142
+ 0.397774829583
+ 0.39814621764
+ 0.39851779633
+ 0.398889565671
+ 0.39926152568
+ 0.399633676377
+ 0.400006017778
+ 0.400378549901
+ 0.400751272764
+ 0.401124186385
+ 0.401497290781
+ 0.401870585971
+ 0.402244071971
+ 0.4026177488
+ 0.402991616476
+ 0.403365675015
+ 0.403739924436
+ 0.404114364757
+ 0.404488995995
+ 0.404863818168
+ 0.405238831293
+ 0.405614035389
+ 0.405989430472
+ 0.406365016561
+ 0.406740793673
+ 0.407116761827
+ 0.407492921038
+ 0.407869271326
+ 0.408245812708
+ 0.408622545201
+ 0.408999468824
+ 0.409376583593
+ 0.409753889526
+ 0.410131386642
+ 0.410509074957
+ 0.410886954489
+ 0.411265025256
+ 0.411643287275
+ 0.412021740564
+ 0.412400385141
+ 0.412779221023
+ 0.413158248227
+ 0.413537466772
+ 0.413916876674
+ 0.414296477952
+ 0.414676270622
+ 0.415056254703
+ 0.415436430212
+ 0.415816797166
+ 0.416197355583
+ 0.416578105481
+ 0.416959046877
+ 0.417340179788
+ 0.417721504232
+ 0.418103020227
+ 0.41848472779
+ 0.418866626938
+ 0.419248717689
+ 0.41963100006
+ 0.42001347407
+ 0.420396139734
+ 0.420778997072
+ 0.4211620461
+ 0.421545286835
+ 0.421928719295
+ 0.422312343499
+ 0.422696159462
+ 0.423080167202
+ 0.423464366737
+ 0.423848758085
+ 0.424233341262
+ 0.424618116286
+ 0.425003083175
+ 0.425388241945
+ 0.425773592614
+ 0.426159135201
+ 0.426544869721
+ 0.426930796192
+ 0.427316914632
+ 0.427703225058
+ 0.428089727487
+ 0.428476421937
+ 0.428863308426
+ 0.429250386969
+ 0.429637657585
+ 0.430025120292
+ 0.430412775105
+ 0.430800622043
+ 0.431188661124
+ 0.431576892363
+ 0.431965315779
+ 0.432353931389
+ 0.43274273921
+ 0.43313173926
+ 0.433520931555
+ 0.433910316113
+ 0.434299892951
+ 0.434689662087
+ 0.435079623537
+ 0.43546977732
+ 0.435860123451
+ 0.436250661949
+ 0.436641392831
+ 0.437032316113
+ 0.437423431814
+ 0.43781473995
+ 0.438206240539
+ 0.438597933597
+ 0.438989819142
+ 0.439381897192
+ 0.439774167762
+ 0.440166630872
+ 0.440559286536
+ 0.440952134774
+ 0.441345175602
+ 0.441738409036
+ 0.442131835096
+ 0.442525453796
+ 0.442919265155
+ 0.44331326919
+ 0.443707465918
+ 0.444101855356
+ 0.444496437521
+ 0.44489121243
+ 0.445286180101
+ 0.44568134055
+ 0.446076693794
+ 0.446472239851
+ 0.446867978738
+ 0.447263910472
+ 0.44766003507
+ 0.448056352549
+ 0.448452862925
+ 0.448849566217
+ 0.449246462441
+ 0.449643551615
+ 0.450040833754
+ 0.450438308877
+ 0.450835977
+ 0.451233838141
+ 0.451631892316
+ 0.452030139543
+ 0.452428579838
+ 0.452827213218
+ 0.453226039701
+ 0.453625059303
+ 0.454024272042
+ 0.454423677935
+ 0.454823276997
+ 0.455223069248
+ 0.455623054702
+ 0.456023233378
+ 0.456423605293
+ 0.456824170462
+ 0.457224928904
+ 0.457625880635
+ 0.458027025672
+ 0.458428364032
+ 0.458829895733
+ 0.45923162079
+ 0.459633539221
+ 0.460035651043
+ 0.460437956272
+ 0.460840454927
+ 0.461243147022
+ 0.461646032576
+ 0.462049111606
+ 0.462452384127
+ 0.462855850158
+ 0.463259509714
+ 0.463663362813
+ 0.464067409472
+ 0.464471649708
+ 0.464876083537
+ 0.465280710976
+ 0.465685532042
+ 0.466090546752
+ 0.466495755123
+ 0.466901157171
+ 0.467306752914
+ 0.467712542368
+ 0.46811852555
+ 0.468524702477
+ 0.468931073166
+ 0.469337637633
+ 0.469744395895
+ 0.470151347969
+ 0.470558493873
+ 0.470965833621
+ 0.471373367233
+ 0.471781094723
+ 0.472189016109
+ 0.472597131408
+ 0.473005440636
+ 0.473413943811
+ 0.473822640948
+ 0.474231532065
+ 0.474640617178
+ 0.475049896305
+ 0.475459369461
+ 0.475869036664
+ 0.47627889793
+ 0.476688953277
+ 0.477099202719
+ 0.477509646276
+ 0.477920283962
+ 0.478331115795
+ 0.478742141791
+ 0.479153361968
+ 0.479564776341
+ 0.479976384928
+ 0.480388187745
+ 0.480800184809
+ 0.481212376136
+ 0.481624761743
+ 0.482037341647
+ 0.482450115864
+ 0.482863084411
+ 0.483276247305
+ 0.483689604562
+ 0.484103156199
+ 0.484516902233
+ 0.484930842679
+ 0.485344977556
+ 0.485759306878
+ 0.486173830663
+ 0.486588548928
+ 0.487003461689
+ 0.487418568963
+ 0.487833870765
+ 0.488249367114
+ 0.488665058025
+ 0.489080943514
+ 0.4894970236
+ 0.489913298297
+ 0.490329767622
+ 0.490746431593
+ 0.491163290225
+ 0.491580343536
+ 0.491997591541
+ 0.492415034257
+ 0.492832671701
+ 0.49325050389
+ 0.493668530839
+ 0.494086752565
+ 0.494505169085
+ 0.494923780415
+ 0.495342586571
+ 0.495761587571
+ 0.496180783431
+ 0.496600174166
+ 0.497019759794
+ 0.497439540332
+ 0.497859515794
+ 0.498279686199
+ 0.498700051562
+ 0.4991206119
+ 0.499541367229
+ 0.499962317565
+ 0.500383462926
+ 0.500804803328
+ 0.501226338786
+ 0.501648069318
+ 0.502069994939
+ 0.502492115667
+ 0.502914431517
+ 0.503336942506
+ 0.503759648651
+ 0.504182549967
+ 0.504605646472
+ 0.50502893818
+ 0.50545242511
+ 0.505876107277
+ 0.506299984698
+ 0.506724057388
+ 0.507148325365
+ 0.507572788644
+ 0.507997447243
+ 0.508422301176
+ 0.508847350462
+ 0.509272595115
+ 0.509698035153
+ 0.510123670591
+ 0.510549501446
+ 0.510975527734
+ 0.511401749472
+ 0.511828166675
+ 0.512254779361
+ 0.512681587545
+ 0.513108591244
+ 0.513535790474
+ 0.513963185251
+ 0.514390775591
+ 0.514818561511
+ 0.515246543027
+ 0.515674720156
+ 0.516103092913
+ 0.516531661315
+ 0.516960425377
+ 0.517389385118
+ 0.517818540551
+ 0.518247891694
+ 0.518677438563
+ 0.519107181175
+ 0.519537119544
+ 0.519967253688
+ 0.520397583623
+ 0.520828109365
+ 0.52125883093
+ 0.521689748335
+ 0.522120861594
+ 0.522552170726
+ 0.522983675745
+ 0.523415376669
+ 0.523847273513
+ 0.524279366293
+ 0.524711655025
+ 0.525144139727
+ 0.525576820413
+ 0.5260096971
+ 0.526442769804
+ 0.526876038541
+ 0.527309503328
+ 0.52774316418
+ 0.528177021114
+ 0.528611074146
+ 0.529045323291
+ 0.529479768567
+ 0.529914409988
+ 0.530349247571
+ 0.530784281333
+ 0.531219511289
+ 0.531654937456
+ 0.532090559848
+ 0.532526378484
+ 0.532962393378
+ 0.533398604546
+ 0.533835012006
+ 0.534271615772
+ 0.534708415861
+ 0.535145412289
+ 0.535582605072
+ 0.536019994225
+ 0.536457579766
+ 0.53689536171
+ 0.537333340072
+ 0.53777151487
+ 0.538209886119
+ 0.538648453835
+ 0.539087218034
+ 0.539526178732
+ 0.539965335945
+ 0.540404689689
+ 0.54084423998
+ 0.541283986835
+ 0.541723930268
+ 0.542164070296
+ 0.542604406935
+ 0.543044940201
+ 0.54348567011
+ 0.543926596677
+ 0.54436771992
+ 0.544809039853
+ 0.545250556493
+ 0.545692269855
+ 0.546134179956
+ 0.546576286811
+ 0.547018590437
+ 0.547461090849
+ 0.547903788063
+ 0.548346682095
+ 0.548789772961
+ 0.549233060677
+ 0.549676545259
+ 0.550120226722
+ 0.550564105083
+ 0.551008180358
+ 0.551452452562
+ 0.551896921711
+ 0.552341587821
+ 0.552786450908
+ 0.553231510988
+ 0.553676768076
+ 0.554122222189
+ 0.554567873343
+ 0.555013721552
+ 0.555459766834
+ 0.555906009203
+ 0.556352448676
+ 0.556799085268
+ 0.557245918996
+ 0.557692949875
+ 0.558140177921
+ 0.55858760315
+ 0.559035225577
+ 0.559483045219
+ 0.55993106209
+ 0.560379276208
+ 0.560827687587
+ 0.561276296244
+ 0.561725102194
+ 0.562174105454
+ 0.562623306038
+ 0.563072703962
+ 0.563522299243
+ 0.563972091896
+ 0.564422081936
+ 0.564872269381
+ 0.565322654244
+ 0.565773236543
+ 0.566224016292
+ 0.566674993508
+ 0.567126168206
+ 0.567577540402
+ 0.568029110112
+ 0.568480877351
+ 0.568932842135
+ 0.56938500448
+ 0.569837364401
+ 0.570289921915
+ 0.570742677036
+ 0.571195629781
+ 0.571648780165
+ 0.572102128204
+ 0.572555673913
+ 0.573009417309
+ 0.573463358406
+ 0.573917497221
+ 0.57437183377
+ 0.574826368067
+ 0.575281100128
+ 0.57573602997
+ 0.576191157607
+ 0.576646483056
+ 0.577102006331
+ 0.57755772745
+ 0.578013646426
+ 0.578469763277
+ 0.578926078016
+ 0.579382590661
+ 0.579839301227
+ 0.580296209729
+ 0.580753316182
+ 0.581210620603
+ 0.581668123007
+ 0.58212582341
+ 0.582583721827
+ 0.583041818274
+ 0.583500112766
+ 0.583958605318
+ 0.584417295948
+ 0.584876184669
+ 0.585335271498
+ 0.585794556449
+ 0.58625403954
+ 0.586713720784
+ 0.587173600199
+ 0.587633677798
+ 0.588093953598
+ 0.588554427615
+ 0.589015099863
+ 0.589475970359
+ 0.589937039117
+ 0.590398306153
+ 0.590859771484
+ 0.591321435123
+ 0.591783297088
+ 0.592245357392
+ 0.592707616053
+ 0.593170073084
+ 0.593632728503
+ 0.594095582323
+ 0.594558634561
+ 0.595021885232
+ 0.595485334352
+ 0.595948981936
+ 0.596412827999
+ 0.596876872556
+ 0.597341115625
+ 0.597805557219
+ 0.598270197354
+ 0.598735036046
+ 0.599200073309
+ 0.59966530916
+ 0.600130743615
+ 0.600596376687
+ 0.601062208393
+ 0.601528238748
+ 0.601994467767
+ 0.602460895467
+ 0.602927521861
+ 0.603394346967
+ 0.603861370798
+ 0.60432859337
+ 0.6047960147
+ 0.605263634801
+ 0.60573145369
+ 0.606199471382
+ 0.606667687892
+ 0.607136103236
+ 0.607604717428
+ 0.608073530485
+ 0.608542542422
+ 0.609011753253
+ 0.609481162994
+ 0.609950771661
+ 0.610420579269
+ 0.610890585834
+ 0.611360791369
+ 0.611831195892
+ 0.612301799416
+ 0.612772601959
+ 0.613243603533
+ 0.613714804156
+ 0.614186203843
+ 0.614657802607
+ 0.615129600466
+ 0.615601597434
+ 0.616073793526
+ 0.616546188758
+ 0.617018783145
+ 0.617491576703
+ 0.617964569445
+ 0.618437761389
+ 0.618911152548
+ 0.619384742939
+ 0.619858532576
+ 0.620332521475
+ 0.620806709651
+ 0.621281097119
+ 0.621755683894
+ 0.622230469992
+ 0.622705455428
+ 0.623180640217
+ 0.623656024374
+ 0.624131607914
+ 0.624607390853
+ 0.625083373207
+ 0.625559554989
+ 0.626035936215
+ 0.6265125169
+ 0.626989297061
+ 0.627466276711
+ 0.627943455866
+ 0.628420834541
+ 0.628898412751
+ 0.629376190512
+ 0.629854167838
+ 0.630332344745
+ 0.630810721248
+ 0.631289297362
+ 0.631768073102
+ 0.632247048483
+ 0.632726223521
+ 0.63320559823
+ 0.633685172626
+ 0.634164946724
+ 0.634644920538
+ 0.635125094085
+ 0.635605467379
+ 0.636086040435
+ 0.636566813268
+ 0.637047785894
+ 0.637528958327
+ 0.638010330583
+ 0.638491902676
+ 0.638973674622
+ 0.639455646436
+ 0.639937818133
+ 0.640420189728
+ 0.640902761236
+ 0.641385532672
+ 0.641868504051
+ 0.642351675388
+ 0.642835046699
+ 0.643318617998
+ 0.6438023893
+ 0.64428636062
+ 0.644770531974
+ 0.645254903377
+ 0.645739474842
+ 0.646224246387
+ 0.646709218024
+ 0.64719438977
+ 0.64767976164
+ 0.648165333648
+ 0.64865110581
+ 0.64913707814
+ 0.649623250653
+ 0.650109623365
+ 0.650596196291
+ 0.651082969445
+ 0.651569942842
+ 0.652057116498
+ 0.652544490427
+ 0.653032064644
+ 0.653519839165
+ 0.654007814004
+ 0.654495989176
+ 0.654984364696
+ 0.655472940579
+ 0.65596171684
+ 0.656450693495
+ 0.656939870557
+ 0.657429248042
+ 0.657918825964
+ 0.658408604339
+ 0.658898583182
+ 0.659388762508
+ 0.65987914233
+ 0.660369722666
+ 0.660860503528
+ 0.661351484932
+ 0.661842666893
+ 0.662334049427
+ 0.662825632547
+ 0.663317416268
+ 0.663809400607
+ 0.664301585576
+ 0.664793971192
+ 0.665286557469
+ 0.665779344422
+ 0.666272332066
+ 0.666765520416
+ 0.667258909486
+ 0.667752499292
+ 0.668246289848
+ 0.668740281169
+ 0.66923447327
+ 0.669728866166
+ 0.670223459871
+ 0.670718254401
+ 0.67121324977
+ 0.671708445993
+ 0.672203843085
+ 0.672699441061
+ 0.673195239935
+ 0.673691239723
+ 0.674187440439
+ 0.674683842097
+ 0.675180444713
+ 0.675677248302
+ 0.676174252878
+ 0.676671458456
+ 0.677168865051
+ 0.677666472677
+ 0.67816428135
+ 0.678662291084
+ 0.679160501894
+ 0.679658913794
+ 0.6801575268
+ 0.680656340925
+ 0.681155356186
+ 0.681654572597
+ 0.682153990171
+ 0.682653608925
+ 0.683153428873
+ 0.683653450029
+ 0.684153672408
+ 0.684654096026
+ 0.685154720896
+ 0.685655547033
+ 0.686156574453
+ 0.686657803169
+ 0.687159233197
+ 0.687660864551
+ 0.688162697246
+ 0.688664731297
+ 0.689166966718
+ 0.689669403524
+ 0.690172041729
+ 0.690674881349
+ 0.691177922398
+ 0.691681164891
+ 0.692184608841
+ 0.692688254265
+ 0.693192101177
+ 0.69369614959
+ 0.694200399521
+ 0.694704850983
+ 0.695209503991
+ 0.69571435856
+ 0.696219414705
+ 0.69672467244
+ 0.697230131779
+ 0.697735792738
+ 0.698241655331
+ 0.698747719572
+ 0.699253985477
+ 0.699760453059
+ 0.700267122334
+ 0.700773993316
+ 0.701281066019
+ 0.701788340459
+ 0.702295816649
+ 0.702803494604
+ 0.70331137434
+ 0.70381945587
+ 0.704327739209
+ 0.704836224372
+ 0.705344911373
+ 0.705853800227
+ 0.706362890948
+ 0.706872183551
+ 0.707381678051
+ 0.707891374461
+ 0.708401272797
+ 0.708911373074
+ 0.709421675304
+ 0.709932179504
+ 0.710442885688
+ 0.71095379387
+ 0.711464904064
+ 0.711976216286
+ 0.712487730549
+ 0.712999446869
+ 0.71351136526
+ 0.714023485736
+ 0.714535808311
+ 0.715048333001
+ 0.71556105982
+ 0.716073988782
+ 0.716587119901
+ 0.717100453193
+ 0.717613988672
+ 0.718127726352
+ 0.718641666247
+ 0.719155808373
+ 0.719670152743
+ 0.720184699372
+ 0.720699448274
+ 0.721214399465
+ 0.721729552958
+ 0.722244908768
+ 0.722760466909
+ 0.723276227396
+ 0.723792190243
+ 0.724308355464
+ 0.724824723075
+ 0.725341293089
+ 0.725858065521
+ 0.726375040385
+ 0.726892217696
+ 0.727409597468
+ 0.727927179715
+ 0.728444964453
+ 0.728962951694
+ 0.729481141455
+ 0.729999533748
+ 0.730518128589
+ 0.731036925992
+ 0.731555925971
+ 0.732075128541
+ 0.732594533715
+ 0.733114141509
+ 0.733633951937
+ 0.734153965013
+ 0.734674180751
+ 0.735194599167
+ 0.735715220273
+ 0.736236044085
+ 0.736757070616
+ 0.737278299882
+ 0.737799731897
+ 0.738321366674
+ 0.738843204229
+ 0.739365244575
+ 0.739887487727
+ 0.740409933699
+ 0.740932582505
+ 0.741455434161
+ 0.741978488679
+ 0.742501746075
+ 0.743025206363
+ 0.743548869556
+ 0.74407273567
+ 0.744596804719
+ 0.745121076717
+ 0.745645551677
+ 0.746170229615
+ 0.746695110545
+ 0.747220194481
+ 0.747745481437
+ 0.748270971428
+ 0.748796664468
+ 0.749322560571
+ 0.749848659751
+ 0.750374962022
+ 0.7509014674
+ 0.751428175897
+ 0.751955087529
+ 0.75248220231
+ 0.753009520253
+ 0.753537041373
+ 0.754064765685
+ 0.754592693202
+ 0.755120823939
+ 0.75564915791
+ 0.756177695129
+ 0.75670643561
+ 0.757235379368
+ 0.757764526416
+ 0.75829387677
+ 0.758823430443
+ 0.759353187449
+ 0.759883147803
+ 0.760413311518
+ 0.760943678609
+ 0.761474249091
+ 0.762005022977
+ 0.762536000281
+ 0.763067181018
+ 0.763598565202
+ 0.764130152846
+ 0.764661943966
+ 0.765193938575
+ 0.765726136688
+ 0.766258538318
+ 0.76679114348
+ 0.767323952187
+ 0.767856964455
+ 0.768390180297
+ 0.768923599727
+ 0.76945722276
+ 0.769991049409
+ 0.770525079689
+ 0.771059313613
+ 0.771593751196
+ 0.772128392453
+ 0.772663237396
+ 0.773198286041
+ 0.773733538401
+ 0.774268994491
+ 0.774804654323
+ 0.775340517914
+ 0.775876585276
+ 0.776412856424
+ 0.776949331372
+ 0.777486010134
+ 0.778022892724
+ 0.778559979155
+ 0.779097269443
+ 0.779634763602
+ 0.780172461644
+ 0.780710363585
+ 0.781248469438
+ 0.781786779218
+ 0.782325292938
+ 0.782864010612
+ 0.783402932255
+ 0.783942057881
+ 0.784481387503
+ 0.785020921136
+ 0.785560658794
+ 0.786100600491
+ 0.78664074624
+ 0.787181096056
+ 0.787721649952
+ 0.788262407944
+ 0.788803370044
+ 0.789344536267
+ 0.789885906626
+ 0.790427481137
+ 0.790969259812
+ 0.791511242666
+ 0.792053429713
+ 0.792595820966
+ 0.79313841644
+ 0.793681216149
+ 0.794224220107
+ 0.794767428327
+ 0.795310840824
+ 0.795854457611
+ 0.796398278703
+ 0.796942304113
+ 0.797486533855
+ 0.798030967944
+ 0.798575606394
+ 0.799120449217
+ 0.799665496429
+ 0.800210748043
+ 0.800756204073
+ 0.801301864533
+ 0.801847729437
+ 0.802393798799
+ 0.802940072632
+ 0.803486550951
+ 0.80403323377
+ 0.804580121103
+ 0.805127212962
+ 0.805674509363
+ 0.80622201032
+ 0.806769715845
+ 0.807317625953
+ 0.807865740658
+ 0.808414059974
+ 0.808962583915
+ 0.809511312494
+ 0.810060245726
+ 0.810609383624
+ 0.811158726202
+ 0.811708273474
+ 0.812258025454
+ 0.812807982156
+ 0.813358143593
+ 0.81390850978
+ 0.81445908073
+ 0.815009856458
+ 0.815560836976
+ 0.816112022299
+ 0.816663412441
+ 0.817215007415
+ 0.817766807236
+ 0.818318811917
+ 0.818871021472
+ 0.819423435914
+ 0.819976055259
+ 0.820528879519
+ 0.821081908708
+ 0.82163514284
+ 0.822188581929
+ 0.822742225988
+ 0.823296075033
+ 0.823850129075
+ 0.824404388129
+ 0.82495885221
+ 0.82551352133
+ 0.826068395503
+ 0.826623474744
+ 0.827178759065
+ 0.827734248481
+ 0.828289943006
+ 0.828845842653
+ 0.829401947436
+ 0.829958257369
+ 0.830514772466
+ 0.831071492739
+ 0.831628418204
+ 0.832185548874
+ 0.832742884762
+ 0.833300425882
+ 0.833858172249
+ 0.834416123875
+ 0.834974280775
+ 0.835532642962
+ 0.83609121045
+ 0.836649983252
+ 0.837208961383
+ 0.837768144856
+ 0.838327533685
+ 0.838887127883
+ 0.839446927465
+ 0.840006932443
+ 0.840567142832
+ 0.841127558645
+ 0.841688179897
+ 0.8422490066
+ 0.842810038768
+ 0.843371276416
+ 0.843932719556
+ 0.844494368202
+ 0.845056222369
+ 0.84561828207
+ 0.846180547317
+ 0.846743018126
+ 0.84730569451
+ 0.847868576482
+ 0.848431664056
+ 0.848994957246
+ 0.849558456065
+ 0.850122160527
+ 0.850686070646
+ 0.851250186435
+ 0.851814507908
+ 0.852379035079
+ 0.85294376796
+ 0.853508706567
+ 0.854073850912
+ 0.854639201009
+ 0.855204756871
+ 0.855770518513
+ 0.856336485948
+ 0.856902659189
+ 0.85746903825
+ 0.858035623145
+ 0.858602413887
+ 0.85916941049
+ 0.859736612968
+ 0.860304021333
+ 0.8608716356
+ 0.861439455783
+ 0.862007481894
+ 0.862575713948
+ 0.863144151957
+ 0.863712795936
+ 0.864281645898
+ 0.864850701857
+ 0.865419963826
+ 0.865989431818
+ 0.866559105848
+ 0.867128985929
+ 0.867699072074
+ 0.868269364297
+ 0.868839862612
+ 0.869410567032
+ 0.86998147757
+ 0.87055259424
+ 0.871123917056
+ 0.871695446031
+ 0.872267181178
+ 0.872839122512
+ 0.873411270046
+ 0.873983623792
+ 0.874556183766
+ 0.875128949979
+ 0.875701922447
+ 0.876275101181
+ 0.876848486197
+ 0.877422077506
+ 0.877995875123
+ 0.878569879062
+ 0.879144089335
+ 0.879718505956
+ 0.880293128939
+ 0.880867958297
+ 0.881442994044
+ 0.882018236192
+ 0.882593684756
+ 0.88316933975
+ 0.883745201185
+ 0.884321269077
+ 0.884897543437
+ 0.885474024281
+ 0.886050711621
+ 0.886627605471
+ 0.887204705843
+ 0.887782012753
+ 0.888359526212
+ 0.888937246235
+ 0.889515172834
+ 0.890093306024
+ 0.890671645818
+ 0.891250192229
+ 0.89182894527
+ 0.892407904955
+ 0.892987071298
+ 0.893566444311
+ 0.894146024009
+ 0.894725810404
+ 0.895305803511
+ 0.895886003341
+ 0.89646640991
+ 0.897047023229
+ 0.897627843314
+ 0.898208870176
+ 0.898790103829
+ 0.899371544288
+ 0.899953191564
+ 0.900535045672
+ 0.901117106624
+ 0.901699374435
+ 0.902281849117
+ 0.902864530684
+ 0.90344741915
+ 0.904030514527
+ 0.904613816829
+ 0.905197326069
+ 0.905781042261
+ 0.906364965418
+ 0.906949095554
+ 0.907533432681
+ 0.908117976813
+ 0.908702727963
+ 0.909287686145
+ 0.909872851372
+ 0.910458223658
+ 0.911043803015
+ 0.911629589456
+ 0.912215582997
+ 0.912801783648
+ 0.913388191425
+ 0.91397480634
+ 0.914561628406
+ 0.915148657637
+ 0.915735894046
+ 0.916323337646
+ 0.916910988451
+ 0.917498846474
+ 0.918086911728
+ 0.918675184227
+ 0.919263663983
+ 0.919852351011
+ 0.920441245322
+ 0.921030346932
+ 0.921619655852
+ 0.922209172096
+ 0.922798895677
+ 0.923388826609
+ 0.923978964905
+ 0.924569310579
+ 0.925159863642
+ 0.925750624109
+ 0.926341591993
+ 0.926932767307
+ 0.927524150064
+ 0.928115740278
+ 0.928707537961
+ 0.929299543128
+ 0.92989175579
+ 0.930484175962
+ 0.931076803657
+ 0.931669638888
+ 0.932262681667
+ 0.932855932009
+ 0.933449389927
+ 0.934043055433
+ 0.934636928541
+ 0.935231009264
+ 0.935825297615
+ 0.936419793608
+ 0.937014497255
+ 0.93760940857
+ 0.938204527567
+ 0.938799854257
+ 0.939395388655
+ 0.939991130773
+ 0.940587080625
+ 0.941183238224
+ 0.941779603583
+ 0.942376176715
+ 0.942972957634
+ 0.943569946352
+ 0.944167142882
+ 0.944764547239
+ 0.945362159434
+ 0.945959979482
+ 0.946558007395
+ 0.947156243186
+ 0.947754686868
+ 0.948353338456
+ 0.948952197961
+ 0.949551265397
+ 0.950150540777
+ 0.950750024114
+ 0.951349715421
+ 0.951949614712
+ 0.952549721999
+ 0.953150037296
+ 0.953750560615
+ 0.954351291971
+ 0.954952231375
+ 0.955553378841
+ 0.956154734382
+ 0.956756298012
+ 0.957358069742
+ 0.957960049587
+ 0.95856223756
+ 0.959164633673
+ 0.959767237939
+ 0.960370050373
+ 0.960973070986
+ 0.961576299791
+ 0.962179736803
+ 0.962783382034
+ 0.963387235496
+ 0.963991297204
+ 0.96459556717
+ 0.965200045406
+ 0.965804731927
+ 0.966409626746
+ 0.967014729874
+ 0.967620041326
+ 0.968225561115
+ 0.968831289252
+ 0.969437225752
+ 0.970043370628
+ 0.970649723892
+ 0.971256285557
+ 0.971863055638
+ 0.972470034145
+ 0.973077221093
+ 0.973684616495
+ 0.974292220363
+ 0.974900032711
+ 0.975508053552
+ 0.976116282898
+ 0.976724720762
+ 0.977333367158
+ 0.977942222099
+ 0.978551285597
+ 0.979160557666
+ 0.979770038318
+ 0.980379727567
+ 0.980989625425
+ 0.981599731906
+ 0.982210047022
+ 0.982820570787
+ 0.983431303212
+ 0.984042244313
+ 0.9846533941
+ 0.985264752588
+ 0.985876319789
+ 0.986488095716
+ 0.987100080382
+ 0.9877122738
+ 0.988324675983
+ 0.988937286944
+ 0.989550106696
+ 0.990163135251
+ 0.990776372624
+ 0.991389818826
+ 0.99200347387
+ 0.99261733777
+ 0.993231410539
+ 0.993845692189
+ 0.994460182733
+ 0.995074882184
+ 0.995689790555
+ 0.996304907859
+ 0.99692023411
+ 0.997535769318
+ 0.998151513499
+ 0.998767466664
+ 0.999383628827
+ 1.0
+ 1.0006165802
+ 1.00123336943
+ 1.00185036771
+ 1.00246757505
+ 1.00308499147
+ 1.00370261698
+ 1.00432045158
+ 1.0049384953
+ 1.00555674815
+ 1.00617521013
+ 1.00679388127
+ 1.00741276157
+ 1.00803185105
+ 1.00865114972
+ 1.0092706576
+ 1.00989037468
+ 1.010510301
+ 1.01113043656
+ 1.01175078138
+ 1.01237133546
+ 1.01299209883
+ 1.01361307148
+ 1.01423425344
+ 1.01485564473
+ 1.01547724534
+ 1.0160990553
+ 1.01672107461
+ 1.0173433033
+ 1.01796574136
+ 1.01858838883
+ 1.0192112457
+ 1.01983431199
+ 1.02045758772
+ 1.0210810729
+ 1.02170476753
+ 1.02232867164
+ 1.02295278523
+ 1.02357710832
+ 1.02420164093
+ 1.02482638305
+ 1.02545133471
+ 1.02607649592
+ 1.0267018667
+ 1.02732744704
+ 1.02795323698
+ 1.02857923652
+ 1.02920544566
+ 1.02983186444
+ 1.03045849285
+ 1.03108533092
+ 1.03171237865
+ 1.03233963605
+ 1.03296710315
+ 1.03359477994
+ 1.03422266646
+ 1.0348507627
+ 1.03547906868
+ 1.03610758441
+ 1.03673630991
+ 1.03736524519
+ 1.03799439026
+ 1.03862374513
+ 1.03925330983
+ 1.03988308435
+ 1.04051306871
+ 1.04114326293
+ 1.04177366701
+ 1.04240428098
+ 1.04303510484
+ 1.0436661386
+ 1.04429738229
+ 1.0449288359
+ 1.04556049946
+ 1.04619237298
+ 1.04682445646
+ 1.04745674993
+ 1.04808925339
+ 1.04872196686
+ 1.04935489035
+ 1.04998802387
+ 1.05062136743
+ 1.05125492106
+ 1.05188868475
+ 1.05252265853
+ 1.05315684241
+ 1.05379123639
+ 1.0544258405
+ 1.05506065473
+ 1.05569567912
+ 1.05633091366
+ 1.05696635838
+ 1.05760201328
+ 1.05823787838
+ 1.05887395368
+ 1.05951023921
+ 1.06014673498
+ 1.06078344099
+ 1.06142035726
+ 1.06205748381
+ 1.06269482064
+ 1.06333236777
+ 1.06397012521
+ 1.06460809298
+ 1.06524627107
+ 1.06588465952
+ 1.06652325833
+ 1.06716206752
+ 1.06780108709
+ 1.06844031705
+ 1.06907975743
+ 1.06971940824
+ 1.07035926948
+ 1.07099934117
+ 1.07163962332
+ 1.07228011595
+ 1.07292081906
+ 1.07356173268
+ 1.0742028568
+ 1.07484419145
+ 1.07548573664
+ 1.07612749238
+ 1.07676945868
+ 1.07741163555
+ 1.07805402301
+ 1.07869662108
+ 1.07933942975
+ 1.07998244905
+ 1.08062567899
+ 1.08126911958
+ 1.08191277083
+ 1.08255663276
+ 1.08320070538
+ 1.08384498869
+ 1.08448948272
+ 1.08513418747
+ 1.08577910297
+ 1.08642422921
+ 1.08706956621
+ 1.08771511399
+ 1.08836087256
+ 1.08900684193
+ 1.08965302212
+ 1.09029941313
+ 1.09094601497
+ 1.09159282767
+ 1.09223985123
+ 1.09288708567
+ 1.09353453099
+ 1.09418218722
+ 1.09483005436
+ 1.09547813242
+ 1.09612642142
+ 1.09677492137
+ 1.09742363229
+ 1.09807255418
+ 1.09872168706
+ 1.09937103094
+ 1.10002058583
+ 1.10067035175
+ 1.1013203287
+ 1.10197051671
+ 1.10262091578
+ 1.10327152592
+ 1.10392234715
+ 1.10457337948
+ 1.10522462293
+ 1.1058760775
+ 1.1065277432
+ 1.10717962006
+ 1.10783170808
+ 1.10848400727
+ 1.10913651765
+ 1.10978923923
+ 1.11044217202
+ 1.11109531604
+ 1.11174867129
+ 1.11240223779
+ 1.11305601556
+ 1.1137100046
+ 1.11436420492
+ 1.11501861655
+ 1.11567323948
+ 1.11632807374
+ 1.11698311934
+ 1.11763837628
+ 1.11829384458
+ 1.11894952426
+ 1.11960541533
+ 1.12026151779
+ 1.12091783166
+ 1.12157435696
+ 1.12223109369
+ 1.12288804186
+ 1.1235452015
+ 1.12420257261
+ 1.12486015521
+ 1.1255179493
+ 1.1261759549
+ 1.12683417202
+ 1.12749260068
+ 1.12815124089
+ 1.12881009265
+ 1.12946915598
+ 1.1301284309
+ 1.13078791742
+ 1.13144761554
+ 1.13210752528
+ 1.13276764666
+ 1.13342797968
+ 1.13408852436
+ 1.13474928071
+ 1.13541024874
+ 1.13607142846
+ 1.1367328199
+ 1.13739442305
+ 1.13805623793
+ 1.13871826456
+ 1.13938050294
+ 1.1400429531
+ 1.14070561503
+ 1.14136848876
+ 1.14203157429
+ 1.14269487164
+ 1.14335838082
+ 1.14402210184
+ 1.14468603472
+ 1.14535017946
+ 1.14601453608
+ 1.1466791046
+ 1.14734388502
+ 1.14800887735
+ 1.14867408162
+ 1.14933949782
+ 1.15000512598
+ 1.1506709661
+ 1.1513370182
+ 1.15200328229
+ 1.15266975838
+ 1.15333644648
+ 1.15400334661
+ 1.15467045878
+ 1.15533778301
+ 1.15600531929
+ 1.15667306765
+ 1.1573410281
+ 1.15800920065
+ 1.15867758531
+ 1.15934618209
+ 1.16001499101
+ 1.16068401208
+ 1.16135324532
+ 1.16202269072
+ 1.16269234831
+ 1.1633622181
+ 1.1640323001
+ 1.16470259432
+ 1.16537310078
+ 1.16604381948
+ 1.16671475044
+ 1.16738589367
+ 1.16805724919
+ 1.168728817
+ 1.16940059712
+ 1.17007258956
+ 1.17074479433
+ 1.17141721145
+ 1.17208984092
+ 1.17276268276
+ 1.17343573699
+ 1.1741090036
+ 1.17478248262
+ 1.17545617406
+ 1.17613007793
+ 1.17680419424
+ 1.17747852301
+ 1.17815306424
+ 1.17882781794
+ 1.17950278414
+ 1.18017796285
+ 1.18085335406
+ 1.18152895781
+ 1.18220477409
+ 1.18288080292
+ 1.18355704432
+ 1.1842334983
+ 1.18491016486
+ 1.18558704402
+ 1.18626413579
+ 1.18694144019
+ 1.18761895722
+ 1.18829668691
+ 1.18897462925
+ 1.18965278427
+ 1.19033115197
+ 1.19100973236
+ 1.19168852547
+ 1.1923675313
+ 1.19304674986
+ 1.19372618117
+ 1.19440582523
+ 1.19508568207
+ 1.19576575168
+ 1.19644603409
+ 1.19712652931
+ 1.19780723734
+ 1.19848815821
+ 1.19916929192
+ 1.19985063848
+ 1.2005321979
+ 1.20121397021
+ 1.20189595541
+ 1.20257815351
+ 1.20326056452
+ 1.20394318846
+ 1.20462602534
+ 1.20530907517
+ 1.20599233797
+ 1.20667581374
+ 1.2073595025
+ 1.20804340425
+ 1.20872751902
+ 1.20941184681
+ 1.21009638764
+ 1.21078114151
+ 1.21146610845
+ 1.21215128845
+ 1.21283668154
+ 1.21352228773
+ 1.21420810702
+ 1.21489413943
+ 1.21558038498
+ 1.21626684366
+ 1.21695351551
+ 1.21764040052
+ 1.21832749871
+ 1.2190148101
+ 1.21970233469
+ 1.22039007249
+ 1.22107802352
+ 1.2217661878
+ 1.22245456532
+ 1.22314315611
+ 1.22383196018
+ 1.22452097753
+ 1.22521020818
+ 1.22589965215
+ 1.22658930944
+ 1.22727918007
+ 1.22796926404
+ 1.22865956138
+ 1.22935007208
+ 1.23004079617
+ 1.23073173366
+ 1.23142288456
+ 1.23211424887
+ 1.23280582662
+ 1.23349761781
+ 1.23418962246
+ 1.23488184057
+ 1.23557427217
+ 1.23626691726
+ 1.23695977585
+ 1.23765284795
+ 1.23834613359
+ 1.23903963276
+ 1.23973334549
+ 1.24042727178
+ 1.24112141165
+ 1.2418157651
+ 1.24251033215
+ 1.24320511282
+ 1.2439001071
+ 1.24459531503
+ 1.2452907366
+ 1.24598637183
+ 1.24668222073
+ 1.24737828331
+ 1.24807455959
+ 1.24877104958
+ 1.24946775328
+ 1.25016467072
+ 1.2508618019
+ 1.25155914683
+ 1.25225670553
+ 1.25295447801
+ 1.25365246427
+ 1.25435066434
+ 1.25504907823
+ 1.25574770594
+ 1.25644654749
+ 1.25714560289
+ 1.25784487215
+ 1.25854435528
+ 1.2592440523
+ 1.25994396322
+ 1.26064408804
+ 1.26134442679
+ 1.26204497947
+ 1.2627457461
+ 1.26344672668
+ 1.26414792123
+ 1.26484932976
+ 1.26555095229
+ 1.26625278882
+ 1.26695483936
+ 1.26765710393
+ 1.26835958255
+ 1.26906227521
+ 1.26976518194
+ 1.27046830274
+}
diff --git a/release/datafiles/colormanagement/luts/rec709_to_aces.spimtx b/release/datafiles/colormanagement/luts/rec709_to_aces.spimtx
new file mode 100644
index 00000000000..0f4f6bd68b4
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/rec709_to_aces.spimtx
@@ -0,0 +1,3 @@
+0.4395770431 0.3839148879 0.1765103489 0.0
+0.0895979404 0.8147120476 0.0956883803 0.0
+0.0174174830 0.1087378338 0.8738504052 0.0
diff --git a/release/datafiles/colormanagement/luts/rrt_ut33_dcdm.spi3d b/release/datafiles/colormanagement/luts/rrt_ut33_dcdm.spi3d
new file mode 100644
index 00000000000..639d0158e69
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/rrt_ut33_dcdm.spi3d
@@ -0,0 +1,32771 @@
+SPILUT 1.0
+3 3
+32 32 32
+0 0 0 0.00104332 0.00106335 0.00106621
+0 0 1 0.0058136 0.005867 0.00694275
+0 0 2 0.0106049 0.0105438 0.0148773
+0 0 3 0.0151749 0.01474 0.0249023
+0 0 4 0.0199432 0.0187225 0.0377197
+0 0 5 0.0241852 0.0217743 0.0513611
+0 0 6 0.028717 0.0247803 0.0662231
+0 0 7 0.0345764 0.0287628 0.0840454
+0 0 8 0.0426025 0.0344849 0.106812
+0 0 9 0.0534363 0.042572 0.136353
+0 0 10 0.0679321 0.0536499 0.174927
+0 0 11 0.086792 0.0681763 0.224487
+0 0 12 0.10907 0.0854492 0.282959
+0 0 13 0.134399 0.105103 0.348877
+0 0 14 0.162354 0.126831 0.421875
+0 0 15 0.192139 0.150146 0.499512
+0 0 16 0.223145 0.174316 0.580078
+0 0 17 0.25293 0.19751 0.658203
+0 0 18 0.280518 0.218994 0.729492
+0 0 19 0.304688 0.237793 0.79248
+0 0 20 0.318115 0.248291 0.827148
+0 0 21 0.320557 0.250244 0.833984
+0 0 22 0.323486 0.252441 0.841309
+0 0 23 0.326172 0.254639 0.848633
+0 0 24 0.329102 0.256836 0.855957
+0 0 25 0.332275 0.259277 0.864258
+0 0 26 0.335693 0.261963 0.873535
+0 0 27 0.3396 0.265137 0.883301
+0 0 28 0.34375 0.268311 0.894531
+0 0 29 0.348389 0.271973 0.906738
+0 0 30 0.353271 0.275879 0.919434
+0 0 31 0.358154 0.279541 0.932129
+0 1 0 0.00468445 0.00523376 0.0047226
+0 1 1 0.00731659 0.00809479 0.00862122
+0 1 2 0.0110931 0.0120468 0.015358
+0 1 3 0.015358 0.0162201 0.0249023
+0 1 4 0.0200806 0.02034 0.0376282
+0 1 5 0.0243378 0.0233612 0.0513306
+0 1 6 0.0288544 0.0261383 0.0662231
+0 1 7 0.0346985 0.0298157 0.0840454
+0 1 8 0.0426636 0.0352478 0.106812
+0 1 9 0.0534668 0.0430908 0.136353
+0 1 10 0.0679932 0.0540161 0.174927
+0 1 11 0.086792 0.0684814 0.224487
+0 1 12 0.10907 0.0856323 0.282959
+0 1 13 0.134399 0.105225 0.348877
+0 1 14 0.162354 0.126953 0.421875
+0 1 15 0.192139 0.150146 0.499512
+0 1 16 0.223145 0.174316 0.580078
+0 1 17 0.25293 0.197632 0.658203
+0 1 18 0.280518 0.218994 0.729492
+0 1 19 0.304688 0.237793 0.79248
+0 1 20 0.318115 0.248291 0.827148
+0 1 21 0.320557 0.250244 0.833984
+0 1 22 0.323486 0.252441 0.841309
+0 1 23 0.326172 0.254639 0.848633
+0 1 24 0.329102 0.256836 0.855957
+0 1 25 0.332275 0.259277 0.864258
+0 1 26 0.335693 0.261963 0.873535
+0 1 27 0.3396 0.265137 0.883301
+0 1 28 0.34375 0.268311 0.894531
+0 1 29 0.348389 0.271973 0.906738
+0 1 30 0.353271 0.275879 0.919434
+0 1 31 0.358154 0.279785 0.932129
+0 2 0 0.0089798 0.0112381 0.00884247
+0 2 1 0.0100479 0.0124283 0.0115662
+0 2 2 0.0123444 0.0149689 0.0167236
+0 2 3 0.0158691 0.0186462 0.025238
+0 2 4 0.0203857 0.0228119 0.0375671
+0 2 5 0.0246277 0.0258179 0.0513
+0 2 6 0.0290985 0.0283051 0.0662231
+0 2 7 0.0348816 0.0315552 0.0841064
+0 2 8 0.0427856 0.0365601 0.106812
+0 2 9 0.0535583 0.0440369 0.136353
+0 2 10 0.0680542 0.0546875 0.174927
+0 2 11 0.086853 0.0689697 0.224487
+0 2 12 0.109131 0.0859985 0.282959
+0 2 13 0.134399 0.10553 0.348877
+0 2 14 0.162354 0.127197 0.421875
+0 2 15 0.192139 0.150269 0.499512
+0 2 16 0.223145 0.174438 0.580078
+0 2 17 0.25293 0.197632 0.658203
+0 2 18 0.280518 0.219116 0.729492
+0 2 19 0.304688 0.237915 0.79248
+0 2 20 0.318115 0.248291 0.827148
+0 2 21 0.320557 0.250244 0.833984
+0 2 22 0.323486 0.252441 0.841309
+0 2 23 0.326172 0.254639 0.848633
+0 2 24 0.329102 0.256836 0.855957
+0 2 25 0.332275 0.259277 0.864258
+0 2 26 0.335693 0.261963 0.873535
+0 2 27 0.3396 0.265137 0.883301
+0 2 28 0.34375 0.268555 0.894531
+0 2 29 0.348389 0.271973 0.906738
+0 2 30 0.353271 0.275879 0.919434
+0 2 31 0.358154 0.279785 0.932129
+0 3 0 0.0134964 0.019165 0.0127869
+0 3 1 0.0138245 0.0193939 0.0153046
+0 3 2 0.0148544 0.0204315 0.0193939
+0 3 3 0.0171967 0.0228882 0.0264435
+0 3 4 0.0210724 0.0266266 0.0377502
+0 3 5 0.0251465 0.0295258 0.0512695
+0 3 6 0.029541 0.0317078 0.0662231
+0 3 7 0.0351868 0.0344238 0.0841064
+0 3 8 0.0429993 0.0387878 0.106873
+0 3 9 0.0537109 0.0456848 0.136353
+0 3 10 0.0681152 0.0559082 0.174927
+0 3 11 0.0869141 0.0698242 0.224487
+0 3 12 0.109192 0.0866089 0.282959
+0 3 13 0.134399 0.105957 0.348877
+0 3 14 0.162354 0.127441 0.421875
+0 3 15 0.192139 0.150635 0.499512
+0 3 16 0.223145 0.174561 0.580078
+0 3 17 0.25293 0.197754 0.658203
+0 3 18 0.280518 0.219238 0.729492
+0 3 19 0.304688 0.238037 0.79248
+0 3 20 0.318115 0.248413 0.827148
+0 3 21 0.320557 0.250488 0.833984
+0 3 22 0.323486 0.252441 0.841309
+0 3 23 0.326172 0.254639 0.848633
+0 3 24 0.329102 0.256836 0.855957
+0 3 25 0.332275 0.259277 0.864258
+0 3 26 0.335693 0.261963 0.873535
+0 3 27 0.3396 0.265137 0.883301
+0 3 28 0.34375 0.268555 0.894531
+0 3 29 0.348389 0.271973 0.906738
+0 3 30 0.353271 0.275879 0.919434
+0 3 31 0.358154 0.279785 0.932129
+0 4 0 0.0182648 0.0294495 0.0162811
+0 4 1 0.0184021 0.0293579 0.0191345
+0 4 2 0.0188446 0.0295258 0.0231476
+0 4 3 0.0200958 0.0305328 0.0292053
+0 4 4 0.0225983 0.0326843 0.0386047
+0 4 5 0.026123 0.0350647 0.0513306
+0 4 6 0.0303192 0.0368958 0.0662842
+0 4 7 0.0357971 0.0389709 0.0841675
+0 4 8 0.0434265 0.0425415 0.106873
+0 4 9 0.0539856 0.0485535 0.136353
+0 4 10 0.0682983 0.0580444 0.174927
+0 4 11 0.0870361 0.0714111 0.224487
+0 4 12 0.109253 0.0878296 0.282959
+0 4 13 0.134521 0.106873 0.348877
+0 4 14 0.162354 0.128174 0.421875
+0 4 15 0.192261 0.151001 0.499512
+0 4 16 0.223145 0.174927 0.580078
+0 4 17 0.25293 0.19812 0.658203
+0 4 18 0.280518 0.21936 0.729492
+0 4 19 0.304688 0.238159 0.79248
+0 4 20 0.318115 0.248535 0.827148
+0 4 21 0.320557 0.250488 0.833984
+0 4 22 0.323486 0.252686 0.841309
+0 4 23 0.326172 0.254883 0.848633
+0 4 24 0.329102 0.25708 0.855957
+0 4 25 0.332275 0.259521 0.864258
+0 4 26 0.335693 0.262207 0.873535
+0 4 27 0.3396 0.265137 0.883301
+0 4 28 0.343994 0.268555 0.894531
+0 4 29 0.348389 0.271973 0.906738
+0 4 30 0.353271 0.275879 0.919434
+0 4 31 0.358154 0.279785 0.932129
+0 5 0 0.0228271 0.0412292 0.0186005
+0 5 1 0.0230103 0.0411987 0.0218048
+0 5 2 0.0233459 0.0411682 0.026123
+0 5 3 0.0240173 0.0413208 0.0319824
+0 5 4 0.0254211 0.0419312 0.0401611
+0 5 5 0.0279999 0.0431824 0.0516968
+0 5 6 0.0317383 0.0445251 0.0663452
+0 5 7 0.0368958 0.0459595 0.0842285
+0 5 8 0.04422 0.0485535 0.106934
+0 5 9 0.0545349 0.0534668 0.136353
+0 5 10 0.0686646 0.0618896 0.174927
+0 5 11 0.0873413 0.0744019 0.224487
+0 5 12 0.109436 0.0900269 0.282959
+0 5 13 0.134644 0.108521 0.348877
+0 5 14 0.162476 0.129395 0.421875
+0 5 15 0.192261 0.151978 0.499512
+0 5 16 0.223267 0.175659 0.580566
+0 5 17 0.253174 0.198608 0.658203
+0 5 18 0.280518 0.219849 0.729492
+0 5 19 0.304688 0.238525 0.79248
+0 5 20 0.318115 0.248779 0.827637
+0 5 21 0.320557 0.250732 0.833984
+0 5 22 0.323486 0.252686 0.841309
+0 5 23 0.326172 0.254883 0.848633
+0 5 24 0.329102 0.25708 0.856445
+0 5 25 0.332275 0.259521 0.864258
+0 5 26 0.335693 0.262207 0.873535
+0 5 27 0.3396 0.265137 0.883301
+0 5 28 0.343994 0.268555 0.894531
+0 5 29 0.348389 0.272217 0.906738
+0 5 30 0.353271 0.275879 0.919434
+0 5 31 0.358398 0.279785 0.932129
+0 6 0 0.0272369 0.0535889 0.0197601
+0 6 1 0.02742 0.0535889 0.0229645
+0 6 2 0.0277252 0.0536499 0.0273438
+0 6 3 0.0282745 0.0537109 0.0332947
+0 6 4 0.0292969 0.0539246 0.0413513
+0 6 5 0.0311432 0.0543518 0.0522156
+0 6 6 0.0341797 0.0549927 0.0663452
+0 6 7 0.0388184 0.0558777 0.0842896
+0 6 8 0.0456543 0.0575562 0.107056
+0 6 9 0.0555115 0.0611877 0.136353
+0 6 10 0.069397 0.0682983 0.174805
+0 6 11 0.0878296 0.0795898 0.224487
+0 6 12 0.109802 0.0940552 0.282959
+0 6 13 0.134888 0.111572 0.348877
+0 6 14 0.16272 0.131592 0.421875
+0 6 15 0.192505 0.153687 0.499756
+0 6 16 0.223389 0.177002 0.580566
+0 6 17 0.253174 0.199585 0.658203
+0 6 18 0.280518 0.220581 0.729492
+0 6 19 0.304688 0.239136 0.79248
+0 6 20 0.318115 0.249268 0.827637
+0 6 21 0.320801 0.251221 0.834473
+0 6 22 0.323486 0.253174 0.841309
+0 6 23 0.326416 0.255127 0.848633
+0 6 24 0.329102 0.257324 0.856445
+0 6 25 0.332275 0.259766 0.864258
+0 6 26 0.335693 0.262451 0.873535
+0 6 27 0.3396 0.265381 0.883301
+0 6 28 0.343994 0.268799 0.894531
+0 6 29 0.348633 0.272217 0.906738
+0 6 30 0.353271 0.275879 0.919434
+0 6 31 0.358398 0.279785 0.932129
+0 7 0 0.0327454 0.0679932 0.0247345
+0 7 1 0.0327759 0.0679932 0.0247498
+0 7 2 0.0329895 0.0680542 0.0279083
+0 7 3 0.0334473 0.0681763 0.0336609
+0 7 4 0.0342407 0.0682983 0.0415344
+0 7 5 0.035675 0.0686035 0.0522461
+0 7 6 0.0381165 0.0689697 0.0662231
+0 7 7 0.0420837 0.069519 0.0842285
+0 7 8 0.0482483 0.0704346 0.107117
+0 7 9 0.0574036 0.072937 0.136475
+0 7 10 0.0706787 0.0786133 0.174805
+0 7 11 0.0887451 0.0883179 0.224365
+0 7 12 0.110535 0.101196 0.282715
+0 7 13 0.135498 0.117126 0.348877
+0 7 14 0.163086 0.135986 0.421875
+0 7 15 0.192749 0.156982 0.499756
+0 7 16 0.223633 0.179443 0.580566
+0 7 17 0.253418 0.201538 0.658203
+0 7 18 0.280762 0.222046 0.729492
+0 7 19 0.304932 0.240234 0.79248
+0 7 20 0.318359 0.250244 0.827637
+0 7 21 0.320801 0.251953 0.834473
+0 7 22 0.323486 0.253662 0.841797
+0 7 23 0.326416 0.255859 0.849121
+0 7 24 0.329102 0.257812 0.856445
+0 7 25 0.332275 0.26001 0.864258
+0 7 26 0.335693 0.262695 0.873535
+0 7 27 0.3396 0.265625 0.883301
+0 7 28 0.343994 0.269043 0.89502
+0 7 29 0.348633 0.272461 0.906738
+0 7 30 0.353271 0.276123 0.919434
+0 7 31 0.358398 0.280029 0.932129
+0 8 0 0.0401611 0.0861816 0.031311
+0 8 1 0.0402222 0.0861816 0.0313416
+0 8 2 0.0402832 0.0862427 0.0313416
+0 8 3 0.0404968 0.0863037 0.0341492
+0 8 4 0.0410767 0.0864258 0.041687
+0 8 5 0.0421448 0.0866699 0.052063
+0 8 6 0.0440674 0.0870361 0.0657959
+0 8 7 0.0473022 0.0875244 0.0838013
+0 8 8 0.0525818 0.0881348 0.106995
+0 8 9 0.060791 0.0897217 0.136475
+0 8 10 0.0731812 0.0941162 0.174683
+0 8 11 0.0905762 0.102234 0.224243
+0 8 12 0.111877 0.113159 0.282715
+0 8 13 0.136475 0.126953 0.349121
+0 8 14 0.163818 0.143799 0.421875
+0 8 15 0.193359 0.163086 0.499756
+0 8 16 0.223999 0.184204 0.580566
+0 8 17 0.253662 0.2052 0.658203
+0 8 18 0.281006 0.224976 0.72998
+0 8 19 0.305176 0.242554 0.79248
+0 8 20 0.318604 0.252197 0.827637
+0 8 21 0.321045 0.253418 0.834473
+0 8 22 0.32373 0.254883 0.841797
+0 8 23 0.326416 0.256836 0.849121
+0 8 24 0.329346 0.258789 0.856445
+0 8 25 0.33252 0.260986 0.864746
+0 8 26 0.335938 0.263428 0.873535
+0 8 27 0.3396 0.266113 0.883789
+0 8 28 0.343994 0.269287 0.89502
+0 8 29 0.348633 0.272949 0.906738
+0 8 30 0.353516 0.276611 0.919434
+0 8 31 0.358398 0.280273 0.932129
+0 9 0 0.0500488 0.109436 0.0397034
+0 9 1 0.0500793 0.109436 0.0397339
+0 9 2 0.0501404 0.109436 0.0397339
+0 9 3 0.0502319 0.109497 0.0397644
+0 9 4 0.0504761 0.109558 0.0424194
+0 9 5 0.051239 0.10968 0.0522766
+0 9 6 0.0526123 0.109985 0.0655518
+0 9 7 0.0550842 0.110413 0.083313
+0 9 8 0.0594482 0.111084 0.106689
+0 9 9 0.0665894 0.112488 0.136719
+0 9 10 0.0776367 0.115845 0.174927
+0 9 11 0.0939331 0.122681 0.224121
+0 9 12 0.11438 0.131714 0.282715
+0 9 13 0.138306 0.143066 0.349121
+0 9 14 0.165283 0.157104 0.422119
+0 9 15 0.194458 0.173828 0.5
+0 9 16 0.224854 0.192749 0.580566
+0 9 17 0.254395 0.211914 0.658691
+0 9 18 0.281494 0.230347 0.72998
+0 9 19 0.30542 0.246948 0.792969
+0 9 20 0.319092 0.255859 0.828125
+0 9 21 0.321533 0.256348 0.834961
+0 9 22 0.323975 0.257324 0.842285
+0 9 23 0.326904 0.258789 0.849609
+0 9 24 0.32959 0.260254 0.856934
+0 9 25 0.33252 0.262207 0.864746
+0 9 26 0.335938 0.264648 0.874023
+0 9 27 0.339844 0.267334 0.883789
+0 9 28 0.344238 0.270264 0.89502
+0 9 29 0.348633 0.273682 0.907227
+0 9 30 0.353516 0.2771 0.919434
+0 9 31 0.358398 0.280762 0.932617
+0 10 0 0.0631714 0.139404 0.0505676
+0 10 1 0.0631714 0.139404 0.0505676
+0 10 2 0.0632324 0.139404 0.0505981
+0 10 3 0.0632935 0.139404 0.0505981
+0 10 4 0.0634155 0.139526 0.0506287
+0 10 5 0.0637207 0.139526 0.0539246
+0 10 6 0.0646362 0.139648 0.0667114
+0 10 7 0.0664673 0.139893 0.0840454
+0 10 8 0.0697632 0.140381 0.107239
+0 10 9 0.0756226 0.141602 0.137451
+0 10 10 0.085144 0.144409 0.175659
+0 10 11 0.0996704 0.150146 0.224365
+0 10 12 0.118774 0.157471 0.282715
+0 10 13 0.141724 0.166382 0.349121
+0 10 14 0.167847 0.17749 0.422363
+0 10 15 0.196411 0.19104 0.5
+0 10 16 0.22644 0.206909 0.581055
+0 10 17 0.255615 0.223389 0.658691
+0 10 18 0.282471 0.239624 0.730469
+0 10 19 0.306396 0.254395 0.793457
+0 10 20 0.319824 0.261963 0.829102
+0 10 21 0.322021 0.26123 0.835938
+0 10 22 0.324707 0.261475 0.842773
+0 10 23 0.327393 0.262207 0.850098
+0 10 24 0.330078 0.263428 0.857422
+0 10 25 0.333008 0.264893 0.865234
+0 10 26 0.336426 0.266846 0.874023
+0 10 27 0.340088 0.269043 0.884277
+0 10 28 0.344482 0.271973 0.895508
+0 10 29 0.348877 0.275146 0.907227
+0 10 30 0.35376 0.27832 0.919922
+0 10 31 0.358643 0.281982 0.932617
+0 11 0 0.0803833 0.178345 0.0646973
+0 11 1 0.0804443 0.178345 0.0646973
+0 11 2 0.0804443 0.178345 0.0646973
+0 11 3 0.0805054 0.178345 0.0646973
+0 11 4 0.0805664 0.178345 0.0646973
+0 11 5 0.0807495 0.178467 0.0647583
+0 11 6 0.0811768 0.178589 0.0697632
+0 11 7 0.0823975 0.178589 0.086792
+0 11 8 0.0847778 0.178711 0.109802
+0 11 9 0.0892334 0.179321 0.139893
+0 11 10 0.0969238 0.181274 0.177979
+0 11 11 0.109009 0.185303 0.225464
+0 11 12 0.125977 0.19104 0.282959
+0 11 13 0.147217 0.197998 0.349365
+0 11 14 0.172119 0.206299 0.422607
+0 11 15 0.199707 0.216431 0.500488
+0 11 16 0.229004 0.228516 0.581543
+0 11 17 0.257568 0.241577 0.659668
+0 11 18 0.28418 0.254639 0.730957
+0 11 19 0.307617 0.26709 0.793945
+0 11 20 0.321289 0.272705 0.831055
+0 11 21 0.323242 0.27002 0.836914
+0 11 22 0.325684 0.268555 0.84375
+0 11 23 0.328125 0.268311 0.851074
+0 11 24 0.330811 0.268555 0.85791
+0 11 25 0.33374 0.269287 0.866211
+0 11 26 0.336914 0.270752 0.875
+0 11 27 0.340576 0.272461 0.884766
+0 11 28 0.344727 0.274902 0.895996
+0 11 29 0.349365 0.277588 0.907715
+0 11 30 0.354004 0.280518 0.92041
+0 11 31 0.358887 0.283691 0.933105
+0 12 0 0.101379 0.225464 0.0817871
+0 12 1 0.10144 0.225464 0.0817871
+0 12 2 0.10144 0.225464 0.0817871
+0 12 3 0.10144 0.225586 0.0817871
+0 12 4 0.101501 0.225586 0.0817871
+0 12 5 0.101624 0.225586 0.0818481
+0 12 6 0.101868 0.225708 0.0819092
+0 12 7 0.102539 0.22583 0.0904541
+0 12 8 0.10437 0.225952 0.113281
+0 12 9 0.107666 0.226318 0.143433
+0 12 10 0.113464 0.227295 0.181152
+0 12 11 0.122925 0.22937 0.227417
+0 12 12 0.137085 0.233276 0.283936
+0 12 13 0.156006 0.238403 0.349609
+0 12 14 0.179077 0.244385 0.422852
+0 12 15 0.2052 0.251221 0.500977
+0 12 16 0.233276 0.259521 0.58252
+0 12 17 0.260986 0.268311 0.660156
+0 12 18 0.287109 0.277588 0.731934
+0 12 19 0.310059 0.286621 0.794922
+0 12 20 0.323975 0.289551 0.833496
+0 12 21 0.325439 0.283691 0.839355
+0 12 22 0.327393 0.280273 0.845703
+0 12 23 0.32959 0.278076 0.852539
+0 12 24 0.332031 0.2771 0.859863
+0 12 25 0.334717 0.276855 0.867676
+0 12 26 0.337891 0.2771 0.875977
+0 12 27 0.341553 0.278076 0.885742
+0 12 28 0.345459 0.279541 0.896973
+0 12 29 0.349854 0.281738 0.908691
+0 12 30 0.354492 0.28418 0.920898
+0 12 31 0.359375 0.286865 0.933594
+0 13 0 0.125366 0.279297 0.101257
+0 13 1 0.125366 0.279297 0.101257
+0 13 2 0.125366 0.279297 0.101257
+0 13 3 0.125366 0.279297 0.101257
+0 13 4 0.125488 0.279297 0.101257
+0 13 5 0.125488 0.279297 0.101318
+0 13 6 0.125732 0.279297 0.101318
+0 13 7 0.125977 0.279541 0.101379
+0 13 8 0.127075 0.279785 0.116638
+0 13 9 0.129639 0.280029 0.146362
+0 13 10 0.134155 0.280762 0.183716
+0 13 11 0.141479 0.281982 0.229614
+0 13 12 0.152832 0.28418 0.285156
+0 13 13 0.168823 0.287598 0.349854
+0 13 14 0.189453 0.291504 0.423096
+0 13 15 0.213501 0.295654 0.501465
+0 13 16 0.23999 0.300293 0.583008
+0 13 17 0.266602 0.305176 0.661621
+0 13 18 0.291504 0.309814 0.733398
+0 13 19 0.313721 0.314697 0.796387
+0 13 20 0.328125 0.314697 0.837402
+0 13 21 0.328857 0.304688 0.842773
+0 13 22 0.330322 0.297852 0.849121
+0 13 23 0.332275 0.293457 0.855469
+0 13 24 0.334229 0.290527 0.862305
+0 13 25 0.33667 0.288574 0.869629
+0 13 26 0.3396 0.287354 0.878418
+0 13 27 0.343018 0.286865 0.887695
+0 13 28 0.346924 0.287354 0.898438
+0 13 29 0.351074 0.28833 0.910156
+0 13 30 0.355469 0.290039 0.921875
+0 13 31 0.360107 0.291748 0.93457
+0 14 0 0.1521 0.338867 0.122925
+0 14 1 0.1521 0.338867 0.122925
+0 14 2 0.1521 0.338867 0.122925
+0 14 3 0.1521 0.338867 0.122925
+0 14 4 0.1521 0.339111 0.122925
+0 14 5 0.152222 0.339111 0.122986
+0 14 6 0.152344 0.339111 0.122986
+0 14 7 0.152588 0.339111 0.123047
+0 14 8 0.152954 0.339355 0.123108
+0 14 9 0.154785 0.339844 0.148926
+0 14 10 0.158203 0.340332 0.185547
+0 14 11 0.164062 0.341309 0.230957
+0 14 12 0.173096 0.342773 0.285889
+0 14 13 0.186279 0.344971 0.349854
+0 14 14 0.203857 0.347412 0.422607
+0 14 15 0.225464 0.349609 0.501465
+0 14 16 0.249878 0.351318 0.583984
+0 14 17 0.274658 0.352051 0.663086
+0 14 18 0.298096 0.352539 0.735352
+0 14 19 0.319336 0.353027 0.79834
+0 14 20 0.334229 0.349854 0.843262
+0 14 21 0.334229 0.334717 0.848633
+0 14 22 0.334961 0.32373 0.854492
+0 14 23 0.336182 0.315918 0.860352
+0 14 24 0.337646 0.310303 0.866699
+0 14 25 0.339844 0.305908 0.873535
+0 14 26 0.342285 0.30249 0.881836
+0 14 27 0.345215 0.300293 0.890625
+0 14 28 0.348877 0.299072 0.900879
+0 14 29 0.352783 0.298584 0.912109
+0 14 30 0.356934 0.298828 0.923828
+0 14 31 0.361328 0.299561 0.936523
+0 15 0 0.180786 0.40332 0.14624
+0 15 1 0.180786 0.40332 0.14624
+0 15 2 0.180786 0.40332 0.14624
+0 15 3 0.180786 0.40332 0.14624
+0 15 4 0.180908 0.40332 0.14624
+0 15 5 0.180908 0.40332 0.14624
+0 15 6 0.18103 0.40332 0.14624
+0 15 7 0.181152 0.40332 0.14624
+0 15 8 0.181396 0.403564 0.146362
+0 15 9 0.182251 0.403809 0.151367
+0 15 10 0.184937 0.404541 0.186646
+0 15 11 0.189453 0.405518 0.230957
+0 15 12 0.196777 0.406982 0.285156
+0 15 13 0.20752 0.408691 0.348633
+0 15 14 0.222412 0.410156 0.421143
+0 15 15 0.241333 0.411133 0.500488
+0 15 16 0.263184 0.410889 0.583496
+0 15 17 0.285889 0.408691 0.663574
+0 15 18 0.307861 0.405029 0.736816
+0 15 19 0.327637 0.401123 0.800781
+0 15 20 0.343018 0.395508 0.850586
+0 15 21 0.342041 0.374756 0.856445
+0 15 22 0.341797 0.358643 0.862305
+0 15 23 0.342285 0.346924 0.867676
+0 15 24 0.343262 0.337891 0.873535
+0 15 25 0.344482 0.330566 0.879883
+0 15 26 0.346436 0.324463 0.887207
+0 15 27 0.348877 0.31958 0.895508
+0 15 28 0.352051 0.316162 0.905273
+0 15 29 0.355469 0.313477 0.916016
+0 15 30 0.359375 0.312012 0.927246
+0 15 31 0.363525 0.311035 0.938965
+0 16 0 0.21106 0.470703 0.170654
+0 16 1 0.21106 0.470703 0.170654
+0 16 2 0.21106 0.470703 0.170654
+0 16 3 0.21106 0.470703 0.170654
+0 16 4 0.21106 0.470703 0.170776
+0 16 5 0.21106 0.470703 0.170776
+0 16 6 0.211182 0.470703 0.170776
+0 16 7 0.211304 0.470947 0.170776
+0 16 8 0.211548 0.470947 0.170776
+0 16 9 0.211914 0.471191 0.170898
+0 16 10 0.213501 0.47168 0.187622
+0 16 11 0.217041 0.472656 0.230103
+0 16 12 0.2229 0.474365 0.282715
+0 16 13 0.231812 0.476074 0.345215
+0 16 14 0.244385 0.477783 0.417236
+0 16 15 0.260742 0.478516 0.496826
+0 16 16 0.280029 0.477051 0.580566
+0 16 17 0.300537 0.4729 0.662598
+0 16 18 0.320312 0.466553 0.737305
+0 16 19 0.338623 0.458984 0.802246
+0 16 20 0.35376 0.450439 0.855957
+0 16 21 0.353271 0.425293 0.867188
+0 16 22 0.352051 0.404297 0.873535
+0 16 23 0.351318 0.387939 0.878906
+0 16 24 0.351318 0.375 0.883789
+0 16 25 0.351807 0.36377 0.88916
+0 16 26 0.352783 0.354004 0.895508
+0 16 27 0.354492 0.345947 0.902832
+0 16 28 0.356689 0.3396 0.912109
+0 16 29 0.359619 0.334229 0.921875
+0 16 30 0.362793 0.330078 0.932129
+0 16 31 0.366455 0.327148 0.942871
+0 17 0 0.240845 0.537109 0.194824
+0 17 1 0.240845 0.537109 0.194824
+0 17 2 0.240845 0.537109 0.194824
+0 17 3 0.240845 0.537109 0.194824
+0 17 4 0.240845 0.537109 0.194824
+0 17 5 0.240845 0.537109 0.194824
+0 17 6 0.240967 0.537109 0.194824
+0 17 7 0.240967 0.537109 0.194824
+0 17 8 0.241211 0.537598 0.194946
+0 17 9 0.241577 0.537598 0.194946
+0 17 10 0.242188 0.538086 0.195068
+0 17 11 0.244751 0.539062 0.228516
+0 17 12 0.249634 0.540527 0.279053
+0 17 13 0.25708 0.542969 0.339844
+0 17 14 0.267578 0.544922 0.410645
+0 17 15 0.281738 0.546387 0.489746
+0 17 16 0.298828 0.544922 0.574219
+0 17 17 0.317139 0.540527 0.657715
+0 17 18 0.335449 0.532715 0.734863
+0 17 19 0.351807 0.522461 0.802246
+0 17 20 0.365967 0.510742 0.857422
+0 17 21 0.367188 0.484619 0.878418
+0 17 22 0.365723 0.459229 0.887695
+0 17 23 0.364014 0.438232 0.893555
+0 17 24 0.362793 0.420898 0.898438
+0 17 25 0.362061 0.405518 0.902832
+0 17 26 0.362061 0.391846 0.908203
+0 17 27 0.362549 0.379639 0.914062
+0 17 28 0.36377 0.369629 0.921875
+0 17 29 0.365479 0.361084 0.930176
+0 17 30 0.36792 0.354004 0.939453
+0 17 31 0.37085 0.3479 0.949219
+0 18 0 0.268555 0.599121 0.217285
+0 18 1 0.268555 0.599121 0.217407
+0 18 2 0.268555 0.599121 0.217407
+0 18 3 0.268555 0.599121 0.217407
+0 18 4 0.268555 0.599121 0.217407
+0 18 5 0.268555 0.599121 0.217407
+0 18 6 0.268799 0.599121 0.217407
+0 18 7 0.268799 0.599609 0.217407
+0 18 8 0.268799 0.599609 0.217407
+0 18 9 0.269043 0.599609 0.217407
+0 18 10 0.269531 0.599609 0.217529
+0 18 11 0.270752 0.600098 0.226318
+0 18 12 0.274902 0.602051 0.27417
+0 18 13 0.28125 0.604492 0.33252
+0 18 14 0.290283 0.607422 0.401123
+0 18 15 0.30249 0.609863 0.479004
+0 18 16 0.317871 0.609863 0.563965
+0 18 17 0.334717 0.606445 0.648926
+0 18 18 0.351318 0.598633 0.728516
+0 18 19 0.366699 0.587891 0.798828
+0 18 20 0.379395 0.57373 0.856445
+0 18 21 0.383057 0.548828 0.887695
+0 18 22 0.38208 0.520996 0.90332
+0 18 23 0.379883 0.496094 0.911621
+0 18 24 0.377686 0.474609 0.916992
+0 18 25 0.375732 0.454834 0.920898
+0 18 26 0.374268 0.436523 0.925293
+0 18 27 0.373291 0.420166 0.929688
+0 18 28 0.373047 0.406006 0.935059
+0 18 29 0.373779 0.393555 0.941895
+0 18 30 0.374756 0.382812 0.949219
+0 18 31 0.376709 0.373779 0.95752
+0 19 0 0.293457 0.654785 0.237549
+0 19 1 0.293457 0.654785 0.237549
+0 19 2 0.293457 0.654785 0.237549
+0 19 3 0.293457 0.654785 0.237549
+0 19 4 0.293457 0.654785 0.237549
+0 19 5 0.293701 0.655273 0.237549
+0 19 6 0.293701 0.655273 0.237549
+0 19 7 0.293701 0.655273 0.237549
+0 19 8 0.293701 0.655273 0.237549
+0 19 9 0.293945 0.655273 0.237671
+0 19 10 0.294434 0.655273 0.237671
+0 19 11 0.294922 0.655762 0.237793
+0 19 12 0.297852 0.657227 0.269043
+0 19 13 0.302979 0.659668 0.324463
+0 19 14 0.311035 0.662598 0.390625
+0 19 15 0.321777 0.666016 0.466309
+0 19 16 0.335693 0.667969 0.549805
+0 19 17 0.351074 0.666504 0.635742
+0 19 18 0.366943 0.660156 0.717773
+0 19 19 0.381104 0.649902 0.790527
+0 19 20 0.393066 0.635254 0.851074
+0 19 21 0.398926 0.612793 0.893066
+0 19 22 0.399658 0.585449 0.916992
+0 19 23 0.397705 0.558105 0.929688
+0 19 24 0.394775 0.533691 0.937012
+0 19 25 0.391846 0.509766 0.941406
+0 19 26 0.388916 0.487061 0.945312
+0 19 27 0.386475 0.466064 0.948242
+0 19 28 0.384766 0.44751 0.952148
+0 19 29 0.383789 0.430664 0.956543
+0 19 30 0.383545 0.416016 0.961914
+0 19 31 0.384033 0.40332 0.968262
+0 20 0 0.315186 0.703125 0.254883
+0 20 1 0.315186 0.703125 0.254883
+0 20 2 0.315186 0.703125 0.254883
+0 20 3 0.315186 0.703125 0.254883
+0 20 4 0.315186 0.703125 0.254883
+0 20 5 0.315186 0.703125 0.254883
+0 20 6 0.315186 0.703125 0.254883
+0 20 7 0.315186 0.703125 0.255127
+0 20 8 0.315186 0.703125 0.255127
+0 20 9 0.31543 0.703125 0.255127
+0 20 10 0.315674 0.703613 0.255127
+0 20 11 0.316406 0.703613 0.255127
+0 20 12 0.317627 0.704102 0.263916
+0 20 13 0.322266 0.707031 0.316162
+0 20 14 0.329102 0.710449 0.379395
+0 20 15 0.338867 0.714355 0.452637
+0 20 16 0.351318 0.717285 0.53418
+0 20 17 0.365967 0.718262 0.620117
+0 20 18 0.380859 0.714355 0.703125
+0 20 19 0.394287 0.705078 0.777832
+0 20 20 0.405762 0.691406 0.841797
+0 20 21 0.413574 0.672852 0.89209
+0 20 22 0.416504 0.647461 0.925293
+0 20 23 0.415527 0.620117 0.944336
+0 20 24 0.412842 0.59375 0.955078
+0 20 25 0.40918 0.566895 0.961914
+0 20 26 0.405273 0.540039 0.96582
+0 20 27 0.401367 0.515137 0.968262
+0 20 28 0.397949 0.491943 0.970703
+0 20 29 0.395508 0.470947 0.973633
+0 20 30 0.393799 0.452148 0.977051
+0 20 31 0.392822 0.435547 0.981445
+0 21 0 0.333496 0.744141 0.269775
+0 21 1 0.333496 0.744141 0.269775
+0 21 2 0.333496 0.744141 0.269775
+0 21 3 0.333496 0.744141 0.269775
+0 21 4 0.333496 0.744141 0.269775
+0 21 5 0.333496 0.744141 0.269775
+0 21 6 0.333496 0.744141 0.269775
+0 21 7 0.333496 0.744141 0.269775
+0 21 8 0.333496 0.744141 0.269775
+0 21 9 0.33374 0.744141 0.269775
+0 21 10 0.333984 0.744141 0.27002
+0 21 11 0.334473 0.744629 0.27002
+0 21 12 0.335205 0.744629 0.27002
+0 21 13 0.338623 0.74707 0.307861
+0 21 14 0.344727 0.750488 0.367676
+0 21 15 0.353516 0.754883 0.437988
+0 21 16 0.36499 0.759277 0.51709
+0 21 17 0.378418 0.761719 0.601074
+0 21 18 0.392578 0.760254 0.68457
+0 21 19 0.405762 0.753418 0.76123
+0 21 20 0.416992 0.741699 0.827637
+0 21 21 0.425781 0.725586 0.883301
+0 21 22 0.430908 0.70459 0.925293
+0 21 23 0.431641 0.679199 0.952148
+0 21 24 0.429932 0.652832 0.96875
+0 21 25 0.42627 0.624023 0.979004
+0 21 26 0.421875 0.595215 0.984863
+0 21 27 0.417236 0.566406 0.988281
+0 21 28 0.412598 0.539062 0.990234
+0 21 29 0.408691 0.51416 0.991699
+0 21 30 0.405273 0.491211 0.993652
+0 21 31 0.402832 0.470703 0.996094
+0 22 0 0.348633 0.777832 0.282227
+0 22 1 0.348633 0.777832 0.282227
+0 22 2 0.348633 0.777832 0.282227
+0 22 3 0.348633 0.777832 0.282227
+0 22 4 0.348633 0.777832 0.282227
+0 22 5 0.348633 0.777832 0.282227
+0 22 6 0.348633 0.777832 0.282227
+0 22 7 0.348633 0.777832 0.282227
+0 22 8 0.348877 0.777832 0.282227
+0 22 9 0.348877 0.777832 0.282227
+0 22 10 0.349121 0.77832 0.282227
+0 22 11 0.349365 0.77832 0.282227
+0 22 12 0.350098 0.77832 0.282471
+0 22 13 0.352051 0.779785 0.299316
+0 22 14 0.357666 0.783691 0.356201
+0 22 15 0.365479 0.788086 0.423096
+0 22 16 0.375977 0.793457 0.499268
+0 22 17 0.388672 0.797363 0.581055
+0 22 18 0.4021 0.797852 0.663574
+0 22 19 0.415039 0.793945 0.741211
+0 22 20 0.42627 0.784668 0.80957
+0 22 21 0.435303 0.770996 0.868164
+0 22 22 0.44165 0.75293 0.916504
+0 22 23 0.444824 0.731445 0.951172
+0 22 24 0.44458 0.706543 0.974121
+0 22 25 0.442139 0.678711 0.989746
+0 22 26 0.437988 0.648438 1
+0 22 27 0.432861 0.617188 1
+0 22 28 0.42749 0.586914 1
+0 22 29 0.422363 0.558594 1
+0 22 30 0.417725 0.531738 1
+0 22 31 0.413818 0.507324 1
+0 23 0 0.36084 0.805176 0.291992
+0 23 1 0.36084 0.805176 0.291992
+0 23 2 0.36084 0.805176 0.291992
+0 23 3 0.36084 0.805176 0.291992
+0 23 4 0.36084 0.805176 0.291992
+0 23 5 0.36084 0.805176 0.291992
+0 23 6 0.36084 0.805176 0.291992
+0 23 7 0.36084 0.805176 0.291992
+0 23 8 0.36084 0.805176 0.291992
+0 23 9 0.361084 0.805176 0.291992
+0 23 10 0.361084 0.805176 0.291992
+0 23 11 0.361572 0.805176 0.291992
+0 23 12 0.362061 0.805664 0.292236
+0 23 13 0.362793 0.805664 0.292236
+0 23 14 0.367676 0.80957 0.345215
+0 23 15 0.375 0.814453 0.408691
+0 23 16 0.384521 0.819824 0.482178
+0 23 17 0.396484 0.825195 0.561523
+0 23 18 0.409424 0.827637 0.64209
+0 23 19 0.422119 0.825684 0.719727
+0 23 20 0.43335 0.819336 0.789062
+0 23 21 0.442627 0.808105 0.850098
+0 23 22 0.449463 0.791992 0.901367
+0 23 23 0.453857 0.773926 0.941406
+0 23 24 0.455811 0.752441 0.971191
+0 23 25 0.454834 0.726562 0.993652
+0 23 26 0.45166 0.696777 1
+0 23 27 0.446777 0.665039 1
+0 23 28 0.441162 0.632812 1
+0 23 29 0.435303 0.601074 1
+0 23 30 0.429688 0.571289 1
+0 23 31 0.424561 0.543457 1
+0 24 0 0.370605 0.82666 0.299805
+0 24 1 0.370605 0.82666 0.299805
+0 24 2 0.370605 0.82666 0.299805
+0 24 3 0.370605 0.82666 0.299805
+0 24 4 0.370605 0.82666 0.299805
+0 24 5 0.370605 0.82666 0.299805
+0 24 6 0.370605 0.82666 0.299805
+0 24 7 0.370605 0.82666 0.299805
+0 24 8 0.370605 0.82666 0.299805
+0 24 9 0.370605 0.82666 0.299805
+0 24 10 0.37085 0.827148 0.299805
+0 24 11 0.371094 0.827148 0.300049
+0 24 12 0.371582 0.827148 0.300049
+0 24 13 0.372314 0.827637 0.300049
+0 24 14 0.375732 0.830078 0.334717
+0 24 15 0.382324 0.834961 0.395264
+0 24 16 0.391357 0.84082 0.465576
+0 24 17 0.402344 0.84668 0.541992
+0 24 18 0.414795 0.850586 0.621094
+0 24 19 0.427246 0.851074 0.697266
+0 24 20 0.438477 0.847168 0.767578
+0 24 21 0.447998 0.838379 0.830078
+0 24 22 0.455322 0.824707 0.883789
+0 24 23 0.460449 0.808594 0.927246
+0 24 24 0.463623 0.790039 0.961426
+0 24 25 0.4646 0.76709 0.989746
+0 24 26 0.462891 0.739258 1
+0 24 27 0.458984 0.708008 1
+0 24 28 0.453369 0.674805 1
+0 24 29 0.447266 0.641602 1
+0 24 30 0.441162 0.609375 1
+0 24 31 0.435059 0.578613 1
+0 25 0 0.37915 0.846191 0.306885
+0 25 1 0.37915 0.846191 0.306885
+0 25 2 0.37915 0.846191 0.306885
+0 25 3 0.37915 0.846191 0.306885
+0 25 4 0.37915 0.846191 0.306885
+0 25 5 0.37915 0.846191 0.306885
+0 25 6 0.37915 0.846191 0.306885
+0 25 7 0.37915 0.846191 0.306885
+0 25 8 0.37915 0.846191 0.306885
+0 25 9 0.37915 0.846191 0.306885
+0 25 10 0.379395 0.846191 0.306885
+0 25 11 0.379639 0.846191 0.306885
+0 25 12 0.380127 0.846191 0.306885
+0 25 13 0.380615 0.84668 0.307129
+0 25 14 0.382812 0.848145 0.323975
+0 25 15 0.388672 0.853027 0.381348
+0 25 16 0.396973 0.858887 0.448242
+0 25 17 0.407227 0.865234 0.521484
+0 25 18 0.418945 0.870117 0.597656
+0 25 19 0.430908 0.872559 0.672852
+0 25 20 0.442139 0.871094 0.742676
+0 25 21 0.452148 0.865234 0.806641
+0 25 22 0.459961 0.854492 0.862305
+0 25 23 0.46582 0.84082 0.908203
+0 25 24 0.469727 0.824707 0.945801
+0 25 25 0.472168 0.804688 0.979004
+0 25 26 0.472168 0.779785 1
+0 25 27 0.469482 0.75 1
+0 25 28 0.464844 0.717285 1
+0 25 29 0.458984 0.683105 1
+0 25 30 0.452393 0.648926 1
+0 25 31 0.445801 0.615723 1
+0 26 0 0.386963 0.863281 0.312988
+0 26 1 0.386963 0.863281 0.312988
+0 26 2 0.386963 0.863281 0.312988
+0 26 3 0.386963 0.863281 0.312988
+0 26 4 0.386963 0.863281 0.312988
+0 26 5 0.386963 0.863281 0.312988
+0 26 6 0.386963 0.863281 0.312988
+0 26 7 0.386963 0.863281 0.312988
+0 26 8 0.386963 0.863281 0.312988
+0 26 9 0.386963 0.863281 0.312988
+0 26 10 0.387207 0.863281 0.313232
+0 26 11 0.387207 0.863281 0.313232
+0 26 12 0.387695 0.86377 0.313232
+0 26 13 0.388184 0.86377 0.313232
+0 26 14 0.38916 0.864258 0.313477
+0 26 15 0.394287 0.868652 0.367188
+0 26 16 0.401855 0.874512 0.43042
+0 26 17 0.411133 0.880859 0.5
+0 26 18 0.422119 0.887207 0.57373
+0 26 19 0.433838 0.891113 0.646484
+0 26 20 0.444824 0.891602 0.715332
+0 26 21 0.455078 0.888672 0.779297
+0 26 22 0.463379 0.880859 0.836914
+0 26 23 0.469971 0.870117 0.885254
+0 26 24 0.474609 0.856445 0.925293
+0 26 25 0.477783 0.838867 0.961914
+0 26 26 0.479248 0.816895 0.994141
+0 26 27 0.478271 0.790039 1
+0 26 28 0.474854 0.758789 1
+0 26 29 0.469482 0.724609 1
+0 26 30 0.463135 0.689453 1
+0 26 31 0.456299 0.654785 1
+0 27 0 0.393555 0.878418 0.318604
+0 27 1 0.393555 0.878418 0.318604
+0 27 2 0.393555 0.878418 0.318604
+0 27 3 0.393555 0.878418 0.318604
+0 27 4 0.393555 0.878418 0.318604
+0 27 5 0.393555 0.878418 0.318604
+0 27 6 0.393555 0.878418 0.318604
+0 27 7 0.393799 0.878418 0.318604
+0 27 8 0.393799 0.878418 0.318604
+0 27 9 0.393799 0.878418 0.318604
+0 27 10 0.393799 0.878418 0.318604
+0 27 11 0.394043 0.878418 0.318604
+0 27 12 0.394287 0.878906 0.318604
+0 27 13 0.394775 0.878906 0.318848
+0 27 14 0.395508 0.878906 0.318848
+0 27 15 0.39917 0.882324 0.353027
+0 27 16 0.405762 0.887695 0.412598
+0 27 17 0.414551 0.894531 0.478516
+0 27 18 0.424561 0.900879 0.54834
+0 27 19 0.435547 0.90625 0.618652
+0 27 20 0.446533 0.908691 0.686035
+0 27 21 0.456543 0.908203 0.749512
+0 27 22 0.465576 0.903809 0.807617
+0 27 23 0.472656 0.895508 0.857422
+0 27 24 0.477783 0.884766 0.900391
+0 27 25 0.481934 0.869629 0.939941
+0 27 26 0.484375 0.850586 0.975586
+0 27 27 0.484863 0.82666 1
+0 27 28 0.48291 0.797852 1
+0 27 29 0.478516 0.764648 1
+0 27 30 0.472656 0.729492 1
+0 27 31 0.466064 0.693848 1
+0 28 0 0.399414 0.891113 0.323242
+0 28 1 0.399414 0.891113 0.323242
+0 28 2 0.399414 0.891113 0.323242
+0 28 3 0.399414 0.891113 0.323242
+0 28 4 0.399414 0.891113 0.323242
+0 28 5 0.399414 0.891113 0.323242
+0 28 6 0.399414 0.891113 0.323242
+0 28 7 0.399414 0.891113 0.323242
+0 28 8 0.399414 0.891113 0.323242
+0 28 9 0.399414 0.891113 0.323242
+0 28 10 0.399414 0.891113 0.323242
+0 28 11 0.399658 0.891113 0.323242
+0 28 12 0.399902 0.891113 0.323242
+0 28 13 0.400146 0.891602 0.323242
+0 28 14 0.400879 0.891602 0.323486
+0 28 15 0.403076 0.893066 0.338623
+0 28 16 0.408936 0.898438 0.394531
+0 28 17 0.416748 0.905273 0.456787
+0 28 18 0.42627 0.911621 0.522949
+0 28 19 0.436523 0.917969 0.589844
+0 28 20 0.446777 0.921875 0.655273
+0 28 21 0.457031 0.92334 0.717285
+0 28 22 0.466064 0.921875 0.775391
+0 28 23 0.473633 0.916504 0.826172
+0 28 24 0.479492 0.908691 0.870605
+0 28 25 0.484375 0.896484 0.912598
+0 28 26 0.487793 0.880371 0.951172
+0 28 27 0.489258 0.858887 0.985352
+0 28 28 0.48877 0.833008 1
+0 28 29 0.48584 0.802246 1
+0 28 30 0.481201 0.768555 1
+0 28 31 0.475098 0.733398 1
+0 29 0 0.403564 0.900879 0.32666
+0 29 1 0.403564 0.900879 0.32666
+0 29 2 0.403564 0.900879 0.32666
+0 29 3 0.403564 0.900879 0.32666
+0 29 4 0.403564 0.900879 0.32666
+0 29 5 0.403564 0.900879 0.32666
+0 29 6 0.403564 0.900879 0.32666
+0 29 7 0.403564 0.900879 0.32666
+0 29 8 0.403564 0.900879 0.32666
+0 29 9 0.403809 0.900879 0.32666
+0 29 10 0.403809 0.900879 0.32666
+0 29 11 0.403809 0.900879 0.32666
+0 29 12 0.404053 0.900879 0.32666
+0 29 13 0.404541 0.900879 0.32666
+0 29 14 0.405029 0.901367 0.326904
+0 29 15 0.405762 0.901367 0.326904
+0 29 16 0.411133 0.90625 0.376221
+0 29 17 0.417969 0.912598 0.43457
+0 29 18 0.426514 0.919434 0.496826
+0 29 19 0.436279 0.92627 0.560547
+0 29 20 0.446045 0.931641 0.622559
+0 29 21 0.455811 0.93457 0.683105
+0 29 22 0.464844 0.935059 0.740234
+0 29 23 0.472656 0.932617 0.791016
+0 29 24 0.479248 0.927734 0.836426
+0 29 25 0.484863 0.918945 0.880371
+0 29 26 0.489258 0.905762 0.921875
+0 29 27 0.491943 0.887695 0.959473
+0 29 28 0.492432 0.864746 0.991699
+0 29 29 0.491455 0.837402 1
+0 29 30 0.488281 0.806641 1
+0 29 31 0.483398 0.772461 1
+0 30 0 0.406494 0.907227 0.328857
+0 30 1 0.406494 0.907227 0.328857
+0 30 2 0.406494 0.907227 0.328857
+0 30 3 0.406494 0.907227 0.328857
+0 30 4 0.406494 0.907227 0.328857
+0 30 5 0.406494 0.907227 0.328857
+0 30 6 0.406494 0.907227 0.328857
+0 30 7 0.406494 0.907227 0.328857
+0 30 8 0.406494 0.907227 0.328857
+0 30 9 0.406494 0.907227 0.328857
+0 30 10 0.406494 0.907227 0.328857
+0 30 11 0.406738 0.907227 0.328857
+0 30 12 0.406982 0.907227 0.329102
+0 30 13 0.407227 0.907227 0.329102
+0 30 14 0.407715 0.907227 0.329102
+0 30 15 0.408203 0.907715 0.329102
+0 30 16 0.411621 0.910645 0.35791
+0 30 17 0.417969 0.916504 0.412354
+0 30 18 0.425781 0.92334 0.470703
+0 30 19 0.43457 0.930176 0.530273
+0 30 20 0.443848 0.936523 0.589355
+0 30 21 0.453125 0.940918 0.647461
+0 30 22 0.462158 0.943359 0.702637
+0 30 23 0.469971 0.943359 0.75293
+0 30 24 0.477051 0.940918 0.798828
+0 30 25 0.483154 0.935059 0.843262
+0 30 26 0.488525 0.925293 0.886719
+0 30 27 0.492432 0.911133 0.927734
+0 30 28 0.494629 0.892578 0.964844
+0 30 29 0.495117 0.869141 0.99707
+0 30 30 0.493652 0.841309 1
+0 30 31 0.490234 0.80957 1
+0 31 0 0.408691 0.911621 0.330566
+0 31 1 0.408691 0.911621 0.330566
+0 31 2 0.408691 0.911621 0.330566
+0 31 3 0.408691 0.911621 0.330566
+0 31 4 0.408691 0.911621 0.330566
+0 31 5 0.408691 0.911621 0.330566
+0 31 6 0.408691 0.911621 0.330566
+0 31 7 0.408691 0.911621 0.330566
+0 31 8 0.408691 0.911621 0.330566
+0 31 9 0.408691 0.911621 0.330566
+0 31 10 0.408691 0.911621 0.330566
+0 31 11 0.408691 0.912109 0.330811
+0 31 12 0.408936 0.912109 0.330811
+0 31 13 0.40918 0.912109 0.330811
+0 31 14 0.409668 0.912109 0.330811
+0 31 15 0.410156 0.912109 0.330811
+0 31 16 0.411865 0.913574 0.340576
+0 31 17 0.417236 0.918945 0.390625
+0 31 18 0.424072 0.925293 0.444824
+0 31 19 0.432129 0.931641 0.500488
+0 31 20 0.44043 0.937988 0.556152
+0 31 21 0.449219 0.943359 0.61084
+0 31 22 0.457764 0.947266 0.664062
+0 31 23 0.46582 0.949219 0.712891
+0 31 24 0.4729 0.94873 0.757812
+0 31 25 0.479736 0.946289 0.803223
+0 31 26 0.48584 0.94043 0.848145
+0 31 27 0.490967 0.930176 0.891602
+0 31 28 0.494873 0.916016 0.932129
+0 31 29 0.496826 0.896484 0.969238
+0 31 30 0.49707 0.872559 1
+0 31 31 0.495361 0.844238 1
+1 0 0 0.00991058 0.00936127 0.00862122
+1 0 1 0.0087204 0.00821686 0.00899506
+1 0 2 0.0126572 0.0118332 0.0154724
+1 0 3 0.0171661 0.0158386 0.0249023
+1 0 4 0.0220337 0.0198975 0.0375977
+1 0 5 0.026123 0.0229492 0.0513306
+1 0 6 0.0302887 0.0257874 0.0662231
+1 0 7 0.0357361 0.029541 0.0840454
+1 0 8 0.043396 0.0350647 0.106812
+1 0 9 0.0539856 0.0429688 0.136353
+1 0 10 0.0683594 0.0539246 0.174927
+1 0 11 0.0870972 0.0683594 0.224487
+1 0 12 0.109253 0.0855713 0.282959
+1 0 13 0.134521 0.105225 0.348877
+1 0 14 0.162354 0.126953 0.421875
+1 0 15 0.192261 0.150146 0.499512
+1 0 16 0.223145 0.174316 0.580078
+1 0 17 0.25293 0.197632 0.658203
+1 0 18 0.280518 0.218994 0.729492
+1 0 19 0.304688 0.237793 0.79248
+1 0 20 0.318115 0.248291 0.827148
+1 0 21 0.320557 0.250244 0.833984
+1 0 22 0.323486 0.252441 0.841309
+1 0 23 0.326172 0.254639 0.848633
+1 0 24 0.329102 0.256836 0.855957
+1 0 25 0.332275 0.259277 0.864258
+1 0 26 0.335693 0.261963 0.873535
+1 0 27 0.3396 0.265137 0.883301
+1 0 28 0.34375 0.268311 0.894531
+1 0 29 0.348389 0.271973 0.906738
+1 0 30 0.353271 0.275879 0.919434
+1 0 31 0.358154 0.279541 0.932129
+1 1 0 0.00815582 0.00836182 0.00709915
+1 1 1 0.0099411 0.0101318 0.0101624
+1 1 2 0.0131607 0.0132675 0.0159454
+1 1 3 0.0173492 0.0171967 0.0249481
+1 1 4 0.0221405 0.0213776 0.0375366
+1 1 5 0.0262604 0.0244141 0.0513
+1 1 6 0.0304108 0.0270691 0.0662231
+1 1 7 0.0358276 0.0305634 0.0841064
+1 1 8 0.043457 0.0358276 0.106812
+1 1 9 0.0540161 0.0434875 0.136353
+1 1 10 0.0683594 0.0542908 0.174927
+1 1 11 0.0870972 0.0686646 0.224487
+1 1 12 0.109314 0.0858154 0.282959
+1 1 13 0.134521 0.105347 0.348877
+1 1 14 0.162476 0.127075 0.421875
+1 1 15 0.192261 0.150269 0.499512
+1 1 16 0.223145 0.174316 0.580078
+1 1 17 0.25293 0.197632 0.658203
+1 1 18 0.280518 0.218994 0.729492
+1 1 19 0.304688 0.237915 0.79248
+1 1 20 0.318115 0.248291 0.827148
+1 1 21 0.320557 0.250244 0.833984
+1 1 22 0.323486 0.252441 0.841309
+1 1 23 0.326172 0.254639 0.848633
+1 1 24 0.329102 0.256836 0.855957
+1 1 25 0.332275 0.259277 0.864258
+1 1 26 0.335693 0.261963 0.873535
+1 1 27 0.3396 0.265137 0.883301
+1 1 28 0.34375 0.268311 0.894531
+1 1 29 0.348389 0.271973 0.906738
+1 1 30 0.353271 0.275879 0.919434
+1 1 31 0.358154 0.279785 0.932129
+1 2 0 0.0114441 0.0130081 0.00981903
+1 2 1 0.0123215 0.0139084 0.0124054
+1 2 2 0.0144043 0.0160522 0.0171814
+1 2 3 0.0178528 0.0195007 0.0253143
+1 2 4 0.0224152 0.0236816 0.0375061
+1 2 5 0.0265045 0.0267181 0.0512695
+1 2 6 0.0306396 0.029129 0.0662231
+1 2 7 0.0360107 0.0322571 0.0841064
+1 2 8 0.0435791 0.0371094 0.106873
+1 2 9 0.0541077 0.0444336 0.136353
+1 2 10 0.0684204 0.0549622 0.174927
+1 2 11 0.0870972 0.0691528 0.224487
+1 2 12 0.109314 0.0861206 0.282959
+1 2 13 0.134521 0.105591 0.348877
+1 2 14 0.162476 0.127197 0.421875
+1 2 15 0.192261 0.150391 0.499512
+1 2 16 0.223145 0.174438 0.580078
+1 2 17 0.25293 0.197754 0.658203
+1 2 18 0.280518 0.219116 0.729492
+1 2 19 0.304688 0.237915 0.79248
+1 2 20 0.318115 0.248291 0.827148
+1 2 21 0.320557 0.250244 0.833984
+1 2 22 0.323486 0.252441 0.841309
+1 2 23 0.326172 0.254639 0.848633
+1 2 24 0.329102 0.256836 0.855957
+1 2 25 0.332275 0.259277 0.864258
+1 2 26 0.335693 0.261963 0.873535
+1 2 27 0.3396 0.265137 0.883301
+1 2 28 0.34375 0.268555 0.894531
+1 2 29 0.348389 0.271973 0.906738
+1 2 30 0.353271 0.275879 0.919434
+1 2 31 0.358154 0.279785 0.932129
+1 3 0 0.015625 0.0200958 0.0130615
+1 3 1 0.0159149 0.0203094 0.0156021
+1 3 2 0.0168915 0.0212708 0.0196381
+1 3 3 0.0191956 0.0236206 0.0265503
+1 3 4 0.0230408 0.0273285 0.0377197
+1 3 5 0.0269623 0.0302582 0.051239
+1 3 6 0.0310364 0.0324097 0.0662842
+1 3 7 0.0363159 0.0350342 0.0841064
+1 3 8 0.0437927 0.0392761 0.106873
+1 3 9 0.0542603 0.046051 0.136353
+1 3 10 0.0685425 0.0561523 0.174927
+1 3 11 0.0872192 0.0700073 0.224487
+1 3 12 0.109375 0.086792 0.282959
+1 3 13 0.134521 0.106079 0.348877
+1 3 14 0.162476 0.127563 0.421875
+1 3 15 0.192261 0.150635 0.499512
+1 3 16 0.223267 0.174683 0.580078
+1 3 17 0.253174 0.197876 0.658203
+1 3 18 0.280518 0.219238 0.729492
+1 3 19 0.304688 0.238037 0.79248
+1 3 20 0.318115 0.248413 0.827148
+1 3 21 0.320557 0.250488 0.833984
+1 3 22 0.323486 0.252441 0.841309
+1 3 23 0.326172 0.254639 0.848633
+1 3 24 0.329102 0.256836 0.855957
+1 3 25 0.332275 0.259277 0.864258
+1 3 26 0.335693 0.261963 0.873535
+1 3 27 0.3396 0.265137 0.883301
+1 3 28 0.343994 0.268555 0.894531
+1 3 29 0.348389 0.271973 0.906738
+1 3 30 0.353271 0.275879 0.919434
+1 3 31 0.358154 0.279785 0.932129
+1 4 0 0.020401 0.030014 0.0163422
+1 4 1 0.0204926 0.0299225 0.0192108
+1 4 2 0.0208893 0.0301056 0.0232239
+1 4 3 0.0220795 0.0310974 0.0292664
+1 4 4 0.0244904 0.0332336 0.0386047
+1 4 5 0.0278625 0.035614 0.0513306
+1 4 6 0.0317688 0.0374451 0.0662842
+1 4 7 0.0368958 0.0394592 0.0841675
+1 4 8 0.04422 0.0429382 0.106934
+1 4 9 0.0545349 0.0488892 0.136353
+1 4 10 0.0687256 0.0583191 0.174927
+1 4 11 0.0873413 0.0715942 0.224487
+1 4 12 0.109436 0.0879517 0.282959
+1 4 13 0.134644 0.106934 0.348877
+1 4 14 0.162476 0.128174 0.421875
+1 4 15 0.192261 0.151123 0.499512
+1 4 16 0.223267 0.175049 0.580078
+1 4 17 0.253174 0.19812 0.658203
+1 4 18 0.280518 0.21936 0.729492
+1 4 19 0.304688 0.238159 0.79248
+1 4 20 0.318115 0.248535 0.827148
+1 4 21 0.320557 0.250488 0.833984
+1 4 22 0.323486 0.252686 0.841309
+1 4 23 0.326172 0.254883 0.848633
+1 4 24 0.329102 0.25708 0.855957
+1 4 25 0.332275 0.259521 0.864258
+1 4 26 0.335693 0.262207 0.873535
+1 4 27 0.3396 0.265137 0.883301
+1 4 28 0.343994 0.268555 0.894531
+1 4 29 0.348389 0.271973 0.906738
+1 4 30 0.353271 0.275879 0.919434
+1 4 31 0.358154 0.279785 0.932129
+1 5 0 0.0248566 0.041626 0.0186462
+1 5 1 0.0250092 0.0415955 0.0218353
+1 5 2 0.0252838 0.0415649 0.0261383
+1 5 3 0.0258789 0.0417175 0.0319824
+1 5 4 0.0271759 0.0423279 0.0401917
+1 5 5 0.0296021 0.0436096 0.0516968
+1 5 6 0.0330811 0.0449219 0.0663452
+1 5 7 0.0379333 0.0463257 0.0842285
+1 5 8 0.0449829 0.0488892 0.106995
+1 5 9 0.0550537 0.0537415 0.136353
+1 5 10 0.0690918 0.0621338 0.174927
+1 5 11 0.0875854 0.074585 0.224487
+1 5 12 0.10968 0.09021 0.282959
+1 5 13 0.134766 0.108582 0.348877
+1 5 14 0.162598 0.129395 0.421875
+1 5 15 0.192383 0.151978 0.499512
+1 5 16 0.223267 0.175659 0.580566
+1 5 17 0.253174 0.198608 0.658203
+1 5 18 0.280518 0.219849 0.729492
+1 5 19 0.304688 0.238525 0.79248
+1 5 20 0.318115 0.248779 0.827637
+1 5 21 0.320801 0.250732 0.833984
+1 5 22 0.323486 0.25293 0.841309
+1 5 23 0.326172 0.254883 0.848633
+1 5 24 0.329102 0.25708 0.856445
+1 5 25 0.332275 0.259521 0.864258
+1 5 26 0.335693 0.262207 0.873535
+1 5 27 0.3396 0.265137 0.883301
+1 5 28 0.343994 0.268555 0.894531
+1 5 29 0.348389 0.272217 0.906738
+1 5 30 0.353271 0.275879 0.919434
+1 5 31 0.358398 0.279785 0.932129
+1 6 0 0.0289307 0.0538635 0.0198364
+1 6 1 0.0290985 0.053894 0.0230103
+1 6 2 0.0293732 0.0539246 0.0273895
+1 6 3 0.0298767 0.0540161 0.0332947
+1 6 4 0.0308075 0.0541992 0.0413513
+1 6 5 0.0325317 0.0546265 0.0522461
+1 6 6 0.0353699 0.0552979 0.0663452
+1 6 7 0.0397949 0.0561523 0.0842896
+1 6 8 0.0463867 0.0578003 0.107056
+1 6 9 0.0560303 0.0614319 0.136353
+1 6 10 0.0697632 0.0684814 0.174805
+1 6 11 0.0880737 0.0797119 0.224365
+1 6 12 0.109985 0.0941772 0.282959
+1 6 13 0.13501 0.111633 0.348877
+1 6 14 0.162842 0.131714 0.421875
+1 6 15 0.192505 0.153687 0.499756
+1 6 16 0.223389 0.177002 0.580566
+1 6 17 0.253174 0.199585 0.658203
+1 6 18 0.280762 0.220581 0.729492
+1 6 19 0.304688 0.239136 0.79248
+1 6 20 0.318115 0.249268 0.827637
+1 6 21 0.320801 0.251221 0.834473
+1 6 22 0.323486 0.253174 0.841309
+1 6 23 0.326416 0.255127 0.848633
+1 6 24 0.329102 0.257324 0.856445
+1 6 25 0.332275 0.259766 0.864258
+1 6 26 0.335693 0.262451 0.873535
+1 6 27 0.3396 0.265381 0.883301
+1 6 28 0.343994 0.268799 0.894531
+1 6 29 0.348633 0.272217 0.906738
+1 6 30 0.353271 0.275879 0.919434
+1 6 31 0.358398 0.279785 0.932129
+1 7 0 0.0339966 0.0681763 0.0248718
+1 7 1 0.0340576 0.0682373 0.0248871
+1 7 2 0.0342407 0.0682373 0.0279541
+1 7 3 0.034668 0.0683594 0.0336914
+1 7 4 0.0354309 0.0685425 0.0415649
+1 7 5 0.0367737 0.0687866 0.0522766
+1 7 6 0.0391235 0.0692139 0.0662231
+1 7 7 0.0429382 0.0697021 0.0842285
+1 7 8 0.0488892 0.0706787 0.107117
+1 7 9 0.0578918 0.0730591 0.136475
+1 7 10 0.0710449 0.0787354 0.174805
+1 7 11 0.0889893 0.0884399 0.224365
+1 7 12 0.110718 0.101318 0.282715
+1 7 13 0.13562 0.117249 0.348877
+1 7 14 0.163208 0.135986 0.421875
+1 7 15 0.192871 0.156982 0.499756
+1 7 16 0.223633 0.179443 0.580566
+1 7 17 0.253418 0.201538 0.658203
+1 7 18 0.280762 0.222046 0.729492
+1 7 19 0.304932 0.240356 0.79248
+1 7 20 0.318359 0.250244 0.827637
+1 7 21 0.320801 0.251953 0.834473
+1 7 22 0.323486 0.253662 0.841797
+1 7 23 0.326416 0.255859 0.849121
+1 7 24 0.329102 0.257812 0.856445
+1 7 25 0.332275 0.26001 0.864258
+1 7 26 0.335693 0.262695 0.873535
+1 7 27 0.3396 0.265625 0.883301
+1 7 28 0.343994 0.269043 0.89502
+1 7 29 0.348633 0.272461 0.906738
+1 7 30 0.353271 0.276123 0.919434
+1 7 31 0.358398 0.280029 0.932129
+1 8 0 0.0410767 0.0863037 0.0314026
+1 8 1 0.0411072 0.0863647 0.0314026
+1 8 2 0.0411682 0.0863647 0.0314331
+1 8 3 0.0413818 0.0864258 0.0341797
+1 8 4 0.0419617 0.0866089 0.0417175
+1 8 5 0.0429993 0.086792 0.052063
+1 8 6 0.0448303 0.0871582 0.0657959
+1 8 7 0.0480042 0.0876465 0.0838013
+1 8 8 0.0531616 0.0882568 0.106995
+1 8 9 0.0612488 0.0898438 0.136475
+1 8 10 0.0734863 0.0941772 0.174683
+1 8 11 0.0908203 0.102356 0.224243
+1 8 12 0.112061 0.11322 0.282715
+1 8 13 0.136597 0.127075 0.349121
+1 8 14 0.16394 0.143799 0.421875
+1 8 15 0.193359 0.163086 0.499756
+1 8 16 0.224121 0.184204 0.580566
+1 8 17 0.253662 0.2052 0.658203
+1 8 18 0.281006 0.224976 0.72998
+1 8 19 0.305176 0.242554 0.79248
+1 8 20 0.318604 0.252197 0.827637
+1 8 21 0.321045 0.253418 0.834473
+1 8 22 0.32373 0.254883 0.841797
+1 8 23 0.326416 0.256836 0.849121
+1 8 24 0.329346 0.258789 0.856445
+1 8 25 0.33252 0.260986 0.864746
+1 8 26 0.335938 0.263428 0.873535
+1 8 27 0.3396 0.266113 0.883789
+1 8 28 0.343994 0.269531 0.89502
+1 8 29 0.348633 0.272949 0.906738
+1 8 30 0.353516 0.276611 0.919434
+1 8 31 0.358398 0.280273 0.932129
+1 9 0 0.0506897 0.109497 0.0397644
+1 9 1 0.0507202 0.109497 0.0397644
+1 9 2 0.0507507 0.109558 0.0397949
+1 9 3 0.0508423 0.109558 0.0397949
+1 9 4 0.0510864 0.10968 0.04245
+1 9 5 0.0518188 0.109802 0.0523071
+1 9 6 0.0531616 0.110046 0.0655518
+1 9 7 0.0556335 0.110474 0.083313
+1 9 8 0.059906 0.111206 0.106689
+1 9 9 0.0669556 0.112549 0.136719
+1 9 10 0.0779419 0.115967 0.174927
+1 9 11 0.0941772 0.122742 0.224121
+1 9 12 0.114563 0.131714 0.282715
+1 9 13 0.138428 0.143066 0.349121
+1 9 14 0.165405 0.157104 0.422119
+1 9 15 0.194458 0.173828 0.5
+1 9 16 0.224976 0.192749 0.580566
+1 9 17 0.254395 0.211914 0.658691
+1 9 18 0.281494 0.230347 0.72998
+1 9 19 0.305664 0.246948 0.792969
+1 9 20 0.319092 0.255859 0.828613
+1 9 21 0.321533 0.256348 0.834961
+1 9 22 0.323975 0.257324 0.842285
+1 9 23 0.326904 0.258789 0.849609
+1 9 24 0.32959 0.260254 0.856934
+1 9 25 0.33252 0.262207 0.864746
+1 9 26 0.335938 0.264648 0.874023
+1 9 27 0.339844 0.267334 0.883789
+1 9 28 0.344238 0.270264 0.89502
+1 9 29 0.348633 0.273682 0.907227
+1 9 30 0.353516 0.2771 0.919434
+1 9 31 0.358398 0.280762 0.932617
+1 10 0 0.0635986 0.139404 0.0505981
+1 10 1 0.0635986 0.139404 0.0506287
+1 10 2 0.0636597 0.139526 0.0506287
+1 10 3 0.0637207 0.139526 0.0506287
+1 10 4 0.0638428 0.139526 0.0506592
+1 10 5 0.0641479 0.139648 0.0539246
+1 10 6 0.0650635 0.139771 0.0667114
+1 10 7 0.0668335 0.139893 0.0840454
+1 10 8 0.0701294 0.140503 0.107239
+1 10 9 0.0759277 0.141724 0.137451
+1 10 10 0.0853882 0.144531 0.175659
+1 10 11 0.0999146 0.150146 0.224365
+1 10 12 0.118896 0.157471 0.282715
+1 10 13 0.141846 0.166504 0.349121
+1 10 14 0.167969 0.177612 0.422363
+1 10 15 0.196411 0.191162 0.5
+1 10 16 0.22644 0.206909 0.581055
+1 10 17 0.255615 0.223389 0.658691
+1 10 18 0.282471 0.239624 0.730469
+1 10 19 0.306396 0.254639 0.793457
+1 10 20 0.319824 0.262207 0.829102
+1 10 21 0.322021 0.26123 0.835938
+1 10 22 0.324707 0.261475 0.842773
+1 10 23 0.327393 0.262207 0.850098
+1 10 24 0.330078 0.263428 0.857422
+1 10 25 0.333008 0.264893 0.865234
+1 10 26 0.336426 0.266846 0.874023
+1 10 27 0.340088 0.269043 0.884277
+1 10 28 0.344482 0.271973 0.895508
+1 10 29 0.348877 0.275146 0.907227
+1 10 30 0.35376 0.27832 0.919922
+1 10 31 0.358643 0.281982 0.932617
+1 11 0 0.0806885 0.178345 0.0646973
+1 11 1 0.0807495 0.178345 0.0646973
+1 11 2 0.0807495 0.178345 0.0646973
+1 11 3 0.0808105 0.178345 0.0647583
+1 11 4 0.0808716 0.178467 0.0647583
+1 11 5 0.0809937 0.178467 0.0647583
+1 11 6 0.0814819 0.178589 0.0697632
+1 11 7 0.0827026 0.178589 0.086792
+1 11 8 0.085083 0.178711 0.109802
+1 11 9 0.0894775 0.179443 0.139893
+1 11 10 0.097168 0.181396 0.177979
+1 11 11 0.109192 0.185303 0.225464
+1 11 12 0.126099 0.19104 0.282959
+1 11 13 0.147339 0.197998 0.349365
+1 11 14 0.172241 0.206421 0.422607
+1 11 15 0.199829 0.216431 0.500488
+1 11 16 0.229126 0.228638 0.581543
+1 11 17 0.257568 0.241577 0.659668
+1 11 18 0.28418 0.254639 0.730957
+1 11 19 0.307617 0.26709 0.793945
+1 11 20 0.321289 0.272705 0.831055
+1 11 21 0.323486 0.27002 0.836914
+1 11 22 0.325684 0.268555 0.84375
+1 11 23 0.328125 0.268311 0.851074
+1 11 24 0.330811 0.268555 0.858398
+1 11 25 0.33374 0.269287 0.866211
+1 11 26 0.336914 0.270752 0.875
+1 11 27 0.340576 0.272461 0.884766
+1 11 28 0.344727 0.274902 0.895996
+1 11 29 0.349365 0.277588 0.907715
+1 11 30 0.354004 0.280518 0.92041
+1 11 31 0.358887 0.283691 0.933105
+1 12 0 0.101624 0.225586 0.0817871
+1 12 1 0.101624 0.225586 0.0817871
+1 12 2 0.101624 0.225586 0.0817871
+1 12 3 0.101685 0.225586 0.0818481
+1 12 4 0.101746 0.225586 0.0818481
+1 12 5 0.101868 0.225586 0.0818481
+1 12 6 0.102051 0.225708 0.0819092
+1 12 7 0.102783 0.22583 0.0905151
+1 12 8 0.104553 0.225952 0.113281
+1 12 9 0.10791 0.226318 0.143433
+1 12 10 0.113647 0.227295 0.181152
+1 12 11 0.123047 0.229492 0.227417
+1 12 12 0.137207 0.233276 0.283936
+1 12 13 0.156128 0.238525 0.349609
+1 12 14 0.179199 0.244385 0.422852
+1 12 15 0.2052 0.251221 0.500977
+1 12 16 0.233398 0.259521 0.58252
+1 12 17 0.26123 0.268311 0.660645
+1 12 18 0.287109 0.277588 0.731934
+1 12 19 0.310059 0.286621 0.794922
+1 12 20 0.323975 0.289551 0.833496
+1 12 21 0.325439 0.283691 0.839355
+1 12 22 0.327393 0.280273 0.845703
+1 12 23 0.32959 0.278076 0.852539
+1 12 24 0.332031 0.2771 0.859863
+1 12 25 0.334717 0.276855 0.867676
+1 12 26 0.337891 0.2771 0.875977
+1 12 27 0.341553 0.278076 0.885742
+1 12 28 0.345459 0.279541 0.896973
+1 12 29 0.349854 0.281738 0.908691
+1 12 30 0.354492 0.28418 0.920898
+1 12 31 0.359375 0.286865 0.933594
+1 13 0 0.125488 0.279297 0.101257
+1 13 1 0.125488 0.279297 0.101257
+1 13 2 0.125488 0.279297 0.101257
+1 13 3 0.12561 0.279297 0.101257
+1 13 4 0.12561 0.279297 0.101318
+1 13 5 0.125732 0.279297 0.101318
+1 13 6 0.125854 0.279297 0.101318
+1 13 7 0.126099 0.279541 0.101379
+1 13 8 0.127319 0.279785 0.116638
+1 13 9 0.129883 0.280029 0.146362
+1 13 10 0.134277 0.280762 0.183716
+1 13 11 0.141602 0.281982 0.229614
+1 13 12 0.152954 0.28418 0.285156
+1 13 13 0.168945 0.287598 0.349854
+1 13 14 0.189453 0.291504 0.423096
+1 13 15 0.213623 0.295654 0.501465
+1 13 16 0.240112 0.300293 0.583008
+1 13 17 0.266602 0.305176 0.661621
+1 13 18 0.291504 0.309814 0.733398
+1 13 19 0.313721 0.314697 0.796387
+1 13 20 0.328125 0.314697 0.837402
+1 13 21 0.328857 0.304688 0.842773
+1 13 22 0.330322 0.297852 0.849121
+1 13 23 0.332275 0.293457 0.855469
+1 13 24 0.334229 0.290527 0.862305
+1 13 25 0.33667 0.288574 0.869629
+1 13 26 0.3396 0.287354 0.878418
+1 13 27 0.343018 0.286865 0.887695
+1 13 28 0.346924 0.287354 0.898438
+1 13 29 0.351074 0.28833 0.910156
+1 13 30 0.355469 0.290039 0.921875
+1 13 31 0.360107 0.291748 0.93457
+1 14 0 0.152222 0.339111 0.122925
+1 14 1 0.152222 0.339111 0.122925
+1 14 2 0.152222 0.339111 0.122925
+1 14 3 0.152222 0.339111 0.122925
+1 14 4 0.152222 0.339111 0.122986
+1 14 5 0.152344 0.339111 0.122986
+1 14 6 0.152466 0.339111 0.122986
+1 14 7 0.152588 0.339111 0.123047
+1 14 8 0.153076 0.339355 0.123108
+1 14 9 0.154907 0.339844 0.148926
+1 14 10 0.158325 0.340332 0.185547
+1 14 11 0.164062 0.341309 0.230957
+1 14 12 0.173096 0.343018 0.285889
+1 14 13 0.186279 0.344971 0.349854
+1 14 14 0.203979 0.347412 0.422607
+1 14 15 0.225586 0.349609 0.501465
+1 14 16 0.249878 0.351318 0.583984
+1 14 17 0.274658 0.352051 0.663086
+1 14 18 0.29834 0.352539 0.735352
+1 14 19 0.319336 0.353027 0.79834
+1 14 20 0.334229 0.349854 0.843262
+1 14 21 0.334229 0.334717 0.848633
+1 14 22 0.334961 0.32373 0.854492
+1 14 23 0.336182 0.315918 0.860352
+1 14 24 0.337646 0.310303 0.866699
+1 14 25 0.339844 0.305908 0.873535
+1 14 26 0.342285 0.30249 0.881836
+1 14 27 0.345215 0.300293 0.890625
+1 14 28 0.348877 0.299072 0.900879
+1 14 29 0.352783 0.298584 0.912109
+1 14 30 0.356934 0.298828 0.923828
+1 14 31 0.361328 0.299561 0.936523
+1 15 0 0.180908 0.40332 0.14624
+1 15 1 0.180908 0.40332 0.14624
+1 15 2 0.180908 0.40332 0.14624
+1 15 3 0.180908 0.40332 0.14624
+1 15 4 0.180908 0.40332 0.14624
+1 15 5 0.18103 0.40332 0.14624
+1 15 6 0.18103 0.40332 0.14624
+1 15 7 0.181274 0.40332 0.146362
+1 15 8 0.181519 0.403564 0.146362
+1 15 9 0.182373 0.403809 0.151367
+1 15 10 0.185059 0.404541 0.186646
+1 15 11 0.189575 0.405518 0.230957
+1 15 12 0.196777 0.406982 0.285156
+1 15 13 0.207642 0.408691 0.348633
+1 15 14 0.222534 0.410156 0.421143
+1 15 15 0.241333 0.411133 0.500488
+1 15 16 0.263184 0.410889 0.583496
+1 15 17 0.285889 0.408691 0.663574
+1 15 18 0.307861 0.405029 0.736816
+1 15 19 0.327637 0.401123 0.800781
+1 15 20 0.343018 0.395508 0.850586
+1 15 21 0.342041 0.374756 0.856445
+1 15 22 0.341797 0.358643 0.862305
+1 15 23 0.342285 0.346924 0.867676
+1 15 24 0.343262 0.337891 0.873535
+1 15 25 0.344482 0.330566 0.879883
+1 15 26 0.346436 0.324463 0.887207
+1 15 27 0.348877 0.31958 0.895508
+1 15 28 0.352051 0.316162 0.905273
+1 15 29 0.355469 0.313477 0.916016
+1 15 30 0.359375 0.312012 0.927246
+1 15 31 0.363525 0.311035 0.938965
+1 16 0 0.21106 0.470703 0.170776
+1 16 1 0.21106 0.470703 0.170776
+1 16 2 0.21106 0.470703 0.170776
+1 16 3 0.21106 0.470703 0.170776
+1 16 4 0.211182 0.470703 0.170776
+1 16 5 0.211182 0.470703 0.170776
+1 16 6 0.211182 0.470703 0.170776
+1 16 7 0.211304 0.470947 0.170776
+1 16 8 0.211548 0.470947 0.170776
+1 16 9 0.212036 0.471191 0.170898
+1 16 10 0.213501 0.47168 0.187622
+1 16 11 0.217163 0.472656 0.230103
+1 16 12 0.223022 0.474365 0.282715
+1 16 13 0.231934 0.476074 0.345215
+1 16 14 0.244385 0.477783 0.417236
+1 16 15 0.260742 0.478516 0.496826
+1 16 16 0.280029 0.477051 0.580566
+1 16 17 0.300537 0.4729 0.662598
+1 16 18 0.320312 0.466553 0.737305
+1 16 19 0.338623 0.458984 0.802246
+1 16 20 0.354004 0.450439 0.855957
+1 16 21 0.353271 0.425537 0.867188
+1 16 22 0.352051 0.404297 0.873535
+1 16 23 0.351562 0.387939 0.878906
+1 16 24 0.351318 0.375 0.883789
+1 16 25 0.351807 0.36377 0.88916
+1 16 26 0.352783 0.354004 0.895508
+1 16 27 0.354492 0.345947 0.902832
+1 16 28 0.356689 0.3396 0.912109
+1 16 29 0.359619 0.334229 0.921875
+1 16 30 0.362793 0.330078 0.932129
+1 16 31 0.366455 0.327148 0.942871
+1 17 0 0.240845 0.537109 0.194824
+1 17 1 0.240845 0.537109 0.194824
+1 17 2 0.240845 0.537109 0.194824
+1 17 3 0.240845 0.537109 0.194824
+1 17 4 0.240845 0.537109 0.194824
+1 17 5 0.240967 0.537109 0.194824
+1 17 6 0.240967 0.537109 0.194824
+1 17 7 0.241089 0.537598 0.194824
+1 17 8 0.241211 0.537598 0.194946
+1 17 9 0.241577 0.537598 0.194946
+1 17 10 0.242188 0.538086 0.195068
+1 17 11 0.244873 0.539062 0.228516
+1 17 12 0.249634 0.540527 0.279053
+1 17 13 0.25708 0.542969 0.339844
+1 17 14 0.267822 0.544922 0.410645
+1 17 15 0.281738 0.546387 0.489746
+1 17 16 0.298828 0.544922 0.574219
+1 17 17 0.317139 0.540527 0.657715
+1 17 18 0.335449 0.532715 0.734863
+1 17 19 0.352051 0.522461 0.802246
+1 17 20 0.365967 0.510742 0.857422
+1 17 21 0.367188 0.484619 0.878418
+1 17 22 0.365723 0.459229 0.887695
+1 17 23 0.364014 0.438232 0.893555
+1 17 24 0.362793 0.420898 0.898438
+1 17 25 0.362061 0.405518 0.902832
+1 17 26 0.362061 0.391846 0.908203
+1 17 27 0.362549 0.379639 0.914062
+1 17 28 0.36377 0.369629 0.921875
+1 17 29 0.365479 0.361084 0.930176
+1 17 30 0.36792 0.354004 0.939453
+1 17 31 0.37085 0.3479 0.949219
+1 18 0 0.268555 0.599121 0.217407
+1 18 1 0.268555 0.599121 0.217407
+1 18 2 0.268555 0.599121 0.217407
+1 18 3 0.268555 0.599121 0.217407
+1 18 4 0.268555 0.599121 0.217407
+1 18 5 0.268799 0.599121 0.217407
+1 18 6 0.268799 0.599121 0.217407
+1 18 7 0.268799 0.599609 0.217407
+1 18 8 0.269043 0.599609 0.217407
+1 18 9 0.269287 0.599609 0.217407
+1 18 10 0.269775 0.599609 0.217529
+1 18 11 0.270996 0.600098 0.226318
+1 18 12 0.274902 0.602051 0.27417
+1 18 13 0.28125 0.604492 0.33252
+1 18 14 0.290283 0.607422 0.401123
+1 18 15 0.30249 0.609863 0.479004
+1 18 16 0.317871 0.609863 0.563965
+1 18 17 0.334717 0.606445 0.648926
+1 18 18 0.351318 0.598633 0.728516
+1 18 19 0.366699 0.587891 0.798828
+1 18 20 0.379395 0.57373 0.856445
+1 18 21 0.383057 0.548828 0.888184
+1 18 22 0.38208 0.520996 0.90332
+1 18 23 0.379883 0.496094 0.911621
+1 18 24 0.377686 0.474609 0.916992
+1 18 25 0.375732 0.454834 0.920898
+1 18 26 0.374268 0.436523 0.925293
+1 18 27 0.373291 0.420166 0.929688
+1 18 28 0.373047 0.406006 0.935059
+1 18 29 0.373779 0.393555 0.941895
+1 18 30 0.374756 0.382812 0.949219
+1 18 31 0.376709 0.373779 0.95752
+1 19 0 0.293701 0.654785 0.237549
+1 19 1 0.293701 0.654785 0.237549
+1 19 2 0.293701 0.654785 0.237549
+1 19 3 0.293701 0.654785 0.237549
+1 19 4 0.293701 0.655273 0.237549
+1 19 5 0.293701 0.655273 0.237549
+1 19 6 0.293701 0.655273 0.237549
+1 19 7 0.293701 0.655273 0.237549
+1 19 8 0.293701 0.655273 0.237549
+1 19 9 0.293945 0.655273 0.237671
+1 19 10 0.294434 0.655273 0.237671
+1 19 11 0.295166 0.655762 0.237793
+1 19 12 0.297852 0.657227 0.269043
+1 19 13 0.303223 0.659668 0.324463
+1 19 14 0.311035 0.662598 0.390625
+1 19 15 0.321777 0.666016 0.466309
+1 19 16 0.335693 0.667969 0.549805
+1 19 17 0.351318 0.666504 0.635742
+1 19 18 0.366943 0.660156 0.717773
+1 19 19 0.381104 0.649902 0.790527
+1 19 20 0.393066 0.635254 0.851074
+1 19 21 0.398926 0.612793 0.893066
+1 19 22 0.399658 0.585449 0.916992
+1 19 23 0.397705 0.558105 0.929688
+1 19 24 0.394775 0.533691 0.937012
+1 19 25 0.391846 0.509766 0.941406
+1 19 26 0.388916 0.487061 0.945312
+1 19 27 0.386475 0.466064 0.948242
+1 19 28 0.384766 0.44751 0.952148
+1 19 29 0.383789 0.430664 0.956543
+1 19 30 0.383545 0.416016 0.961914
+1 19 31 0.384033 0.40332 0.968262
+1 20 0 0.315186 0.703125 0.254883
+1 20 1 0.315186 0.703125 0.254883
+1 20 2 0.315186 0.703125 0.254883
+1 20 3 0.315186 0.703125 0.254883
+1 20 4 0.315186 0.703125 0.254883
+1 20 5 0.315186 0.703125 0.254883
+1 20 6 0.315186 0.703125 0.254883
+1 20 7 0.315186 0.703125 0.255127
+1 20 8 0.31543 0.703125 0.255127
+1 20 9 0.31543 0.703125 0.255127
+1 20 10 0.315674 0.703613 0.255127
+1 20 11 0.316406 0.703613 0.255127
+1 20 12 0.317627 0.704102 0.263916
+1 20 13 0.322266 0.707031 0.316162
+1 20 14 0.329346 0.710449 0.379395
+1 20 15 0.338867 0.714355 0.452637
+1 20 16 0.351562 0.717285 0.53418
+1 20 17 0.365967 0.718262 0.620117
+1 20 18 0.380859 0.714355 0.703125
+1 20 19 0.394531 0.705078 0.777832
+1 20 20 0.405762 0.691406 0.841797
+1 20 21 0.413574 0.672852 0.89209
+1 20 22 0.416504 0.647461 0.925293
+1 20 23 0.415527 0.620117 0.944336
+1 20 24 0.412842 0.59375 0.955078
+1 20 25 0.40918 0.566895 0.961914
+1 20 26 0.405273 0.540039 0.96582
+1 20 27 0.401367 0.515137 0.968262
+1 20 28 0.397949 0.491943 0.970703
+1 20 29 0.395508 0.470947 0.973633
+1 20 30 0.393799 0.452148 0.977051
+1 20 31 0.392822 0.435547 0.981445
+1 21 0 0.333496 0.744141 0.269775
+1 21 1 0.333496 0.744141 0.269775
+1 21 2 0.333496 0.744141 0.269775
+1 21 3 0.333496 0.744141 0.269775
+1 21 4 0.333496 0.744141 0.269775
+1 21 5 0.333496 0.744141 0.269775
+1 21 6 0.333496 0.744141 0.269775
+1 21 7 0.333496 0.744141 0.269775
+1 21 8 0.333496 0.744141 0.269775
+1 21 9 0.33374 0.744141 0.269775
+1 21 10 0.333984 0.744141 0.27002
+1 21 11 0.334473 0.744629 0.27002
+1 21 12 0.335205 0.744629 0.27002
+1 21 13 0.338623 0.74707 0.307861
+1 21 14 0.344727 0.750488 0.367676
+1 21 15 0.353516 0.754883 0.437988
+1 21 16 0.36499 0.759277 0.51709
+1 21 17 0.378418 0.761719 0.601074
+1 21 18 0.392578 0.760254 0.68457
+1 21 19 0.405762 0.753418 0.76123
+1 21 20 0.416992 0.741699 0.827637
+1 21 21 0.425781 0.725586 0.883301
+1 21 22 0.430908 0.70459 0.925293
+1 21 23 0.431641 0.679199 0.952148
+1 21 24 0.429932 0.652832 0.96875
+1 21 25 0.42627 0.624023 0.979004
+1 21 26 0.421875 0.595215 0.984863
+1 21 27 0.417236 0.566406 0.988281
+1 21 28 0.412598 0.539062 0.990234
+1 21 29 0.408691 0.51416 0.991699
+1 21 30 0.405273 0.491211 0.993652
+1 21 31 0.402832 0.470703 0.996094
+1 22 0 0.348633 0.777832 0.282227
+1 22 1 0.348633 0.777832 0.282227
+1 22 2 0.348633 0.777832 0.282227
+1 22 3 0.348633 0.777832 0.282227
+1 22 4 0.348633 0.777832 0.282227
+1 22 5 0.348633 0.777832 0.282227
+1 22 6 0.348633 0.777832 0.282227
+1 22 7 0.348633 0.777832 0.282227
+1 22 8 0.348877 0.777832 0.282227
+1 22 9 0.348877 0.77832 0.282227
+1 22 10 0.349121 0.77832 0.282227
+1 22 11 0.349365 0.77832 0.282227
+1 22 12 0.350098 0.77832 0.282471
+1 22 13 0.352051 0.779785 0.299316
+1 22 14 0.357666 0.783691 0.356201
+1 22 15 0.365479 0.788086 0.423096
+1 22 16 0.375977 0.793457 0.499268
+1 22 17 0.388672 0.797363 0.581055
+1 22 18 0.4021 0.797852 0.663574
+1 22 19 0.415039 0.793945 0.741211
+1 22 20 0.42627 0.784668 0.80957
+1 22 21 0.435303 0.770996 0.868164
+1 22 22 0.441895 0.75293 0.916504
+1 22 23 0.444824 0.731445 0.951172
+1 22 24 0.44458 0.706543 0.974121
+1 22 25 0.442139 0.678711 0.989746
+1 22 26 0.437988 0.648438 1
+1 22 27 0.432861 0.617188 1
+1 22 28 0.42749 0.586914 1
+1 22 29 0.422363 0.558594 1
+1 22 30 0.417725 0.531738 1
+1 22 31 0.413818 0.507324 1
+1 23 0 0.36084 0.805176 0.291992
+1 23 1 0.36084 0.805176 0.291992
+1 23 2 0.36084 0.805176 0.291992
+1 23 3 0.36084 0.805176 0.291992
+1 23 4 0.36084 0.805176 0.291992
+1 23 5 0.36084 0.805176 0.291992
+1 23 6 0.36084 0.805176 0.291992
+1 23 7 0.36084 0.805176 0.291992
+1 23 8 0.36084 0.805176 0.291992
+1 23 9 0.361084 0.805176 0.291992
+1 23 10 0.361084 0.805176 0.291992
+1 23 11 0.361572 0.805176 0.291992
+1 23 12 0.362061 0.805664 0.292236
+1 23 13 0.362793 0.805664 0.292236
+1 23 14 0.367676 0.80957 0.345215
+1 23 15 0.375 0.814453 0.408691
+1 23 16 0.384521 0.819824 0.482178
+1 23 17 0.396484 0.825195 0.561523
+1 23 18 0.409424 0.827637 0.64209
+1 23 19 0.422119 0.826172 0.719727
+1 23 20 0.43335 0.819336 0.789062
+1 23 21 0.442627 0.808105 0.850098
+1 23 22 0.449463 0.791992 0.901367
+1 23 23 0.453857 0.773926 0.941406
+1 23 24 0.455811 0.752441 0.971191
+1 23 25 0.454834 0.726562 0.993652
+1 23 26 0.45166 0.696777 1
+1 23 27 0.446777 0.665039 1
+1 23 28 0.441162 0.632812 1
+1 23 29 0.435303 0.601074 1
+1 23 30 0.429688 0.571289 1
+1 23 31 0.424561 0.543457 1
+1 24 0 0.370605 0.82666 0.299805
+1 24 1 0.370605 0.82666 0.299805
+1 24 2 0.370605 0.82666 0.299805
+1 24 3 0.370605 0.82666 0.299805
+1 24 4 0.370605 0.82666 0.299805
+1 24 5 0.370605 0.82666 0.299805
+1 24 6 0.370605 0.82666 0.299805
+1 24 7 0.370605 0.82666 0.299805
+1 24 8 0.370605 0.82666 0.299805
+1 24 9 0.370605 0.82666 0.299805
+1 24 10 0.37085 0.827148 0.299805
+1 24 11 0.371094 0.827148 0.300049
+1 24 12 0.371582 0.827148 0.300049
+1 24 13 0.372314 0.827637 0.300049
+1 24 14 0.375732 0.830078 0.334717
+1 24 15 0.382324 0.834961 0.395264
+1 24 16 0.391357 0.84082 0.465576
+1 24 17 0.402344 0.84668 0.541992
+1 24 18 0.414795 0.850586 0.621094
+1 24 19 0.427246 0.851074 0.697266
+1 24 20 0.438477 0.847168 0.767578
+1 24 21 0.447998 0.838379 0.830078
+1 24 22 0.455322 0.824707 0.883789
+1 24 23 0.460449 0.808594 0.927246
+1 24 24 0.463623 0.790039 0.961426
+1 24 25 0.4646 0.76709 0.989746
+1 24 26 0.462891 0.739258 1
+1 24 27 0.458984 0.708008 1
+1 24 28 0.453369 0.674805 1
+1 24 29 0.447266 0.641602 1
+1 24 30 0.441162 0.609375 1
+1 24 31 0.435059 0.578613 1
+1 25 0 0.37915 0.846191 0.306885
+1 25 1 0.37915 0.846191 0.306885
+1 25 2 0.37915 0.846191 0.306885
+1 25 3 0.37915 0.846191 0.306885
+1 25 4 0.37915 0.846191 0.306885
+1 25 5 0.37915 0.846191 0.306885
+1 25 6 0.37915 0.846191 0.306885
+1 25 7 0.37915 0.846191 0.306885
+1 25 8 0.37915 0.846191 0.306885
+1 25 9 0.37915 0.846191 0.306885
+1 25 10 0.379395 0.846191 0.306885
+1 25 11 0.379639 0.846191 0.306885
+1 25 12 0.380127 0.846191 0.306885
+1 25 13 0.380615 0.84668 0.307129
+1 25 14 0.382812 0.848145 0.323975
+1 25 15 0.388672 0.853027 0.381348
+1 25 16 0.396973 0.858887 0.448242
+1 25 17 0.407227 0.865234 0.521484
+1 25 18 0.418945 0.870117 0.597656
+1 25 19 0.430908 0.872559 0.672852
+1 25 20 0.442139 0.871094 0.742676
+1 25 21 0.452148 0.865234 0.806641
+1 25 22 0.459961 0.854492 0.862305
+1 25 23 0.46582 0.84082 0.908203
+1 25 24 0.469727 0.824707 0.945801
+1 25 25 0.472168 0.804688 0.979004
+1 25 26 0.472168 0.779785 1
+1 25 27 0.469482 0.75 1
+1 25 28 0.464844 0.717285 1
+1 25 29 0.458984 0.683105 1
+1 25 30 0.452393 0.648926 1
+1 25 31 0.445801 0.615723 1
+1 26 0 0.386963 0.863281 0.312988
+1 26 1 0.386963 0.863281 0.312988
+1 26 2 0.386963 0.863281 0.312988
+1 26 3 0.386963 0.863281 0.312988
+1 26 4 0.386963 0.863281 0.312988
+1 26 5 0.386963 0.863281 0.312988
+1 26 6 0.386963 0.863281 0.312988
+1 26 7 0.386963 0.863281 0.312988
+1 26 8 0.386963 0.863281 0.312988
+1 26 9 0.386963 0.863281 0.312988
+1 26 10 0.387207 0.863281 0.313232
+1 26 11 0.387207 0.863281 0.313232
+1 26 12 0.387695 0.86377 0.313232
+1 26 13 0.388184 0.86377 0.313232
+1 26 14 0.38916 0.864258 0.313477
+1 26 15 0.394287 0.868652 0.367188
+1 26 16 0.401855 0.874512 0.43042
+1 26 17 0.411133 0.880859 0.5
+1 26 18 0.422119 0.887207 0.57373
+1 26 19 0.433838 0.891113 0.646484
+1 26 20 0.444824 0.891602 0.715332
+1 26 21 0.455078 0.888672 0.779297
+1 26 22 0.463379 0.880859 0.836914
+1 26 23 0.469971 0.870117 0.885254
+1 26 24 0.474609 0.856445 0.925293
+1 26 25 0.477783 0.838867 0.961914
+1 26 26 0.479248 0.816895 0.994141
+1 26 27 0.478271 0.790039 1
+1 26 28 0.474854 0.758789 1
+1 26 29 0.469482 0.724609 1
+1 26 30 0.463135 0.689453 1
+1 26 31 0.456299 0.654785 1
+1 27 0 0.393555 0.878418 0.318604
+1 27 1 0.393555 0.878418 0.318604
+1 27 2 0.393555 0.878418 0.318604
+1 27 3 0.393555 0.878418 0.318604
+1 27 4 0.393555 0.878418 0.318604
+1 27 5 0.393555 0.878418 0.318604
+1 27 6 0.393555 0.878418 0.318604
+1 27 7 0.393799 0.878418 0.318604
+1 27 8 0.393799 0.878418 0.318604
+1 27 9 0.393799 0.878418 0.318604
+1 27 10 0.393799 0.878418 0.318604
+1 27 11 0.394043 0.878418 0.318604
+1 27 12 0.394287 0.878906 0.318604
+1 27 13 0.394775 0.878906 0.318848
+1 27 14 0.395508 0.878906 0.318848
+1 27 15 0.39917 0.882324 0.353027
+1 27 16 0.405762 0.887695 0.412598
+1 27 17 0.414551 0.894531 0.478516
+1 27 18 0.424805 0.900879 0.54834
+1 27 19 0.435547 0.90625 0.618652
+1 27 20 0.446533 0.908691 0.686035
+1 27 21 0.456543 0.908203 0.749512
+1 27 22 0.465576 0.903809 0.807617
+1 27 23 0.472656 0.895508 0.857422
+1 27 24 0.477783 0.884766 0.900391
+1 27 25 0.481934 0.869629 0.939941
+1 27 26 0.484375 0.850586 0.975586
+1 27 27 0.484863 0.82666 1
+1 27 28 0.48291 0.797852 1
+1 27 29 0.478516 0.764648 1
+1 27 30 0.472656 0.729492 1
+1 27 31 0.466064 0.693848 1
+1 28 0 0.399414 0.891113 0.323242
+1 28 1 0.399414 0.891113 0.323242
+1 28 2 0.399414 0.891113 0.323242
+1 28 3 0.399414 0.891113 0.323242
+1 28 4 0.399414 0.891113 0.323242
+1 28 5 0.399414 0.891113 0.323242
+1 28 6 0.399414 0.891113 0.323242
+1 28 7 0.399414 0.891113 0.323242
+1 28 8 0.399414 0.891113 0.323242
+1 28 9 0.399414 0.891113 0.323242
+1 28 10 0.399414 0.891113 0.323242
+1 28 11 0.399658 0.891113 0.323242
+1 28 12 0.399902 0.891113 0.323242
+1 28 13 0.400391 0.891602 0.323242
+1 28 14 0.400879 0.891602 0.323486
+1 28 15 0.403076 0.893066 0.338623
+1 28 16 0.408936 0.898438 0.394531
+1 28 17 0.416748 0.905273 0.456787
+1 28 18 0.42627 0.911621 0.522949
+1 28 19 0.436523 0.917969 0.589844
+1 28 20 0.446777 0.921875 0.655273
+1 28 21 0.457031 0.92334 0.717285
+1 28 22 0.466064 0.921875 0.775391
+1 28 23 0.473633 0.916504 0.826172
+1 28 24 0.479492 0.908691 0.870605
+1 28 25 0.484375 0.896484 0.912598
+1 28 26 0.487793 0.880371 0.951172
+1 28 27 0.489258 0.858887 0.985352
+1 28 28 0.48877 0.833008 1
+1 28 29 0.48584 0.802246 1
+1 28 30 0.481201 0.768555 1
+1 28 31 0.475098 0.733398 1
+1 29 0 0.403564 0.900879 0.32666
+1 29 1 0.403564 0.900879 0.32666
+1 29 2 0.403564 0.900879 0.32666
+1 29 3 0.403564 0.900879 0.32666
+1 29 4 0.403564 0.900879 0.32666
+1 29 5 0.403564 0.900879 0.32666
+1 29 6 0.403564 0.900879 0.32666
+1 29 7 0.403564 0.900879 0.32666
+1 29 8 0.403564 0.900879 0.32666
+1 29 9 0.403809 0.900879 0.32666
+1 29 10 0.403809 0.900879 0.32666
+1 29 11 0.403809 0.900879 0.32666
+1 29 12 0.404053 0.900879 0.32666
+1 29 13 0.404541 0.900879 0.32666
+1 29 14 0.405029 0.901367 0.326904
+1 29 15 0.405762 0.901367 0.326904
+1 29 16 0.411133 0.90625 0.376221
+1 29 17 0.417969 0.912598 0.43457
+1 29 18 0.426514 0.919434 0.496826
+1 29 19 0.436279 0.92627 0.560547
+1 29 20 0.446045 0.931641 0.622559
+1 29 21 0.455811 0.93457 0.683105
+1 29 22 0.464844 0.935059 0.740234
+1 29 23 0.4729 0.932617 0.791016
+1 29 24 0.479248 0.927734 0.836426
+1 29 25 0.484863 0.918945 0.880371
+1 29 26 0.489258 0.905762 0.921875
+1 29 27 0.491943 0.887695 0.959473
+1 29 28 0.492432 0.864746 0.991699
+1 29 29 0.491455 0.837402 1
+1 29 30 0.488281 0.806641 1
+1 29 31 0.483398 0.772461 1
+1 30 0 0.406494 0.907227 0.328857
+1 30 1 0.406494 0.907227 0.328857
+1 30 2 0.406494 0.907227 0.328857
+1 30 3 0.406494 0.907227 0.328857
+1 30 4 0.406494 0.907227 0.328857
+1 30 5 0.406494 0.907227 0.328857
+1 30 6 0.406494 0.907227 0.328857
+1 30 7 0.406494 0.907227 0.328857
+1 30 8 0.406494 0.907227 0.328857
+1 30 9 0.406494 0.907227 0.328857
+1 30 10 0.406494 0.907227 0.328857
+1 30 11 0.406738 0.907227 0.328857
+1 30 12 0.406982 0.907227 0.329102
+1 30 13 0.407227 0.907227 0.329102
+1 30 14 0.407715 0.907227 0.329102
+1 30 15 0.408447 0.907715 0.329102
+1 30 16 0.411621 0.910645 0.35791
+1 30 17 0.417969 0.916504 0.412354
+1 30 18 0.425781 0.92334 0.470703
+1 30 19 0.43457 0.930176 0.530273
+1 30 20 0.443848 0.936523 0.589355
+1 30 21 0.453125 0.940918 0.647461
+1 30 22 0.462158 0.943359 0.702637
+1 30 23 0.469971 0.943359 0.75293
+1 30 24 0.477051 0.940918 0.798828
+1 30 25 0.483154 0.935059 0.843262
+1 30 26 0.488525 0.925293 0.886719
+1 30 27 0.492432 0.911133 0.927734
+1 30 28 0.494629 0.892578 0.964844
+1 30 29 0.495117 0.869141 0.99707
+1 30 30 0.493652 0.841309 1
+1 30 31 0.490234 0.80957 1
+1 31 0 0.408691 0.911621 0.330566
+1 31 1 0.408691 0.911621 0.330566
+1 31 2 0.408691 0.911621 0.330566
+1 31 3 0.408691 0.911621 0.330566
+1 31 4 0.408691 0.911621 0.330566
+1 31 5 0.408691 0.911621 0.330566
+1 31 6 0.408691 0.911621 0.330566
+1 31 7 0.408691 0.911621 0.330566
+1 31 8 0.408691 0.911621 0.330566
+1 31 9 0.408691 0.911621 0.330566
+1 31 10 0.408691 0.911621 0.330566
+1 31 11 0.408691 0.912109 0.330811
+1 31 12 0.408936 0.912109 0.330811
+1 31 13 0.40918 0.912109 0.330811
+1 31 14 0.409668 0.912109 0.330811
+1 31 15 0.410156 0.912109 0.330811
+1 31 16 0.411865 0.913574 0.340576
+1 31 17 0.417236 0.918945 0.390625
+1 31 18 0.424072 0.925293 0.444824
+1 31 19 0.432129 0.931641 0.500488
+1 31 20 0.44043 0.937988 0.556152
+1 31 21 0.449219 0.943359 0.61084
+1 31 22 0.457764 0.947266 0.664062
+1 31 23 0.46582 0.949219 0.712891
+1 31 24 0.4729 0.94873 0.757812
+1 31 25 0.479736 0.946289 0.803223
+1 31 26 0.48584 0.94043 0.848145
+1 31 27 0.490967 0.930176 0.891602
+1 31 28 0.494873 0.916016 0.932129
+1 31 29 0.496826 0.896484 0.969238
+1 31 30 0.49707 0.872559 1
+1 31 31 0.495361 0.844238 1
+2 0 0 0.019104 0.0167999 0.0135269
+2 0 1 0.0183258 0.016037 0.0158386
+2 0 2 0.0164948 0.0145569 0.0171356
+2 0 3 0.0203247 0.017807 0.0253296
+2 0 4 0.0251312 0.0217896 0.0375366
+2 0 5 0.0290833 0.024826 0.0513
+2 0 6 0.0328064 0.0274506 0.0662231
+2 0 7 0.0376587 0.0308685 0.0841064
+2 0 8 0.0447693 0.0360413 0.106873
+2 0 9 0.0549316 0.0436707 0.136353
+2 0 10 0.0690308 0.0544128 0.174927
+2 0 11 0.0875244 0.0687256 0.224487
+2 0 12 0.109619 0.0858765 0.282959
+2 0 13 0.134766 0.105408 0.348877
+2 0 14 0.162598 0.127075 0.421875
+2 0 15 0.192383 0.150269 0.499512
+2 0 16 0.223267 0.174316 0.580078
+2 0 17 0.253174 0.197632 0.658203
+2 0 18 0.280518 0.218994 0.729492
+2 0 19 0.304688 0.237915 0.79248
+2 0 20 0.318115 0.248291 0.827148
+2 0 21 0.320557 0.250244 0.833984
+2 0 22 0.323486 0.252441 0.841309
+2 0 23 0.326172 0.254639 0.848633
+2 0 24 0.329102 0.256836 0.855957
+2 0 25 0.332275 0.259277 0.864258
+2 0 26 0.335693 0.261963 0.873535
+2 0 27 0.3396 0.265137 0.883301
+2 0 28 0.343994 0.268555 0.894531
+2 0 29 0.348389 0.271973 0.906738
+2 0 30 0.353271 0.275879 0.919434
+2 0 31 0.358154 0.279785 0.932129
+2 1 0 0.0163574 0.0154572 0.0117645
+2 1 1 0.0187073 0.0175476 0.0160065
+2 1 2 0.0169373 0.0158539 0.0174866
+2 1 3 0.0205078 0.019043 0.0254211
+2 1 4 0.025238 0.0230865 0.0375061
+2 1 5 0.0291901 0.026123 0.0512695
+2 1 6 0.0328979 0.0286102 0.0662231
+2 1 7 0.0377502 0.0318298 0.0841064
+2 1 8 0.0448303 0.0367737 0.106873
+2 1 9 0.0549927 0.0441895 0.136353
+2 1 10 0.0690308 0.0548096 0.174927
+2 1 11 0.0875854 0.0690308 0.224487
+2 1 12 0.109619 0.0860596 0.282959
+2 1 13 0.134766 0.10553 0.348877
+2 1 14 0.162598 0.127197 0.421875
+2 1 15 0.192383 0.150391 0.499512
+2 1 16 0.223267 0.174438 0.580078
+2 1 17 0.253174 0.197632 0.658203
+2 1 18 0.280518 0.219116 0.729492
+2 1 19 0.304688 0.237915 0.79248
+2 1 20 0.318115 0.248291 0.827148
+2 1 21 0.320557 0.250244 0.833984
+2 1 22 0.323486 0.252441 0.841309
+2 1 23 0.326172 0.254639 0.848633
+2 1 24 0.329102 0.256836 0.855957
+2 1 25 0.332275 0.259277 0.864258
+2 1 26 0.335693 0.261963 0.873535
+2 1 27 0.3396 0.265137 0.883301
+2 1 28 0.343994 0.268555 0.894531
+2 1 29 0.348389 0.271973 0.906738
+2 1 30 0.353271 0.275879 0.919434
+2 1 31 0.358154 0.279785 0.932129
+2 2 0 0.015976 0.016449 0.0116653
+2 2 1 0.0164948 0.0169067 0.0141449
+2 2 2 0.0179901 0.0183411 0.0184021
+2 2 3 0.0210266 0.0211792 0.0258026
+2 2 4 0.0254669 0.0251617 0.0375061
+2 2 5 0.0294037 0.0281982 0.051239
+2 2 6 0.0331116 0.0305176 0.0662842
+2 2 7 0.0379028 0.0334167 0.0841064
+2 2 8 0.0449524 0.0379944 0.106873
+2 2 9 0.0550537 0.0450745 0.136353
+2 2 10 0.0690918 0.0554504 0.174927
+2 2 11 0.0875854 0.069519 0.224487
+2 2 12 0.10968 0.0864258 0.282959
+2 2 13 0.134766 0.105774 0.348877
+2 2 14 0.162598 0.127319 0.421875
+2 2 15 0.192383 0.150513 0.499512
+2 2 16 0.223267 0.174561 0.580078
+2 2 17 0.253174 0.197754 0.658203
+2 2 18 0.280518 0.219116 0.729492
+2 2 19 0.304688 0.237915 0.79248
+2 2 20 0.318115 0.248413 0.827148
+2 2 21 0.320557 0.250488 0.833984
+2 2 22 0.323486 0.252441 0.841309
+2 2 23 0.326172 0.254639 0.848633
+2 2 24 0.329102 0.256836 0.855957
+2 2 25 0.332275 0.259277 0.864258
+2 2 26 0.335693 0.261963 0.873535
+2 2 27 0.3396 0.265137 0.883301
+2 2 28 0.343994 0.268555 0.894531
+2 2 29 0.348389 0.271973 0.906738
+2 2 30 0.353271 0.275879 0.919434
+2 2 31 0.358154 0.279785 0.932129
+2 3 0 0.0191956 0.0221252 0.0138016
+2 3 1 0.0194092 0.0222626 0.0163879
+2 3 2 0.0202332 0.0230255 0.02034
+2 3 3 0.0223389 0.0250702 0.0269623
+2 3 4 0.0260468 0.0285797 0.0377808
+2 3 5 0.0297852 0.0314941 0.051239
+2 3 6 0.0334473 0.0335693 0.0662842
+2 3 7 0.0381775 0.0360413 0.0841675
+2 3 8 0.045166 0.0401001 0.106873
+2 3 9 0.0552063 0.0466614 0.136353
+2 3 10 0.0692139 0.0566406 0.174927
+2 3 11 0.0877075 0.0703735 0.224487
+2 3 12 0.109741 0.0870361 0.282959
+2 3 13 0.134888 0.106262 0.348877
+2 3 14 0.162598 0.127686 0.421875
+2 3 15 0.192383 0.150757 0.499512
+2 3 16 0.223267 0.174683 0.580078
+2 3 17 0.253174 0.197876 0.658203
+2 3 18 0.280518 0.219238 0.729492
+2 3 19 0.304688 0.238037 0.79248
+2 3 20 0.318115 0.248413 0.827148
+2 3 21 0.320557 0.250488 0.833984
+2 3 22 0.323486 0.252686 0.841309
+2 3 23 0.326172 0.254639 0.848633
+2 3 24 0.329102 0.25708 0.855957
+2 3 25 0.332275 0.259277 0.864258
+2 3 26 0.335693 0.262207 0.873535
+2 3 27 0.3396 0.265137 0.883301
+2 3 28 0.343994 0.268555 0.894531
+2 3 29 0.348389 0.271973 0.906738
+2 3 30 0.353271 0.275879 0.919434
+2 3 31 0.358398 0.279785 0.932129
+2 4 0 0.0236969 0.0312195 0.0166168
+2 4 1 0.0237579 0.0311279 0.0194855
+2 4 2 0.0240784 0.031311 0.0234833
+2 4 3 0.0251617 0.032196 0.0294647
+2 4 4 0.02742 0.0342102 0.0386658
+2 4 5 0.0305634 0.0365906 0.0513306
+2 4 6 0.0340881 0.0383911 0.0662842
+2 4 7 0.0387268 0.0403137 0.0842285
+2 4 8 0.0455627 0.0436707 0.106934
+2 4 9 0.055481 0.049469 0.136353
+2 4 10 0.069397 0.0587463 0.174927
+2 4 11 0.0878296 0.0719604 0.224487
+2 4 12 0.109802 0.0881958 0.282959
+2 4 13 0.134888 0.107117 0.348877
+2 4 14 0.16272 0.128296 0.421875
+2 4 15 0.192383 0.151245 0.499512
+2 4 16 0.223389 0.175049 0.580078
+2 4 17 0.253174 0.19812 0.658203
+2 4 18 0.280518 0.219482 0.729492
+2 4 19 0.304688 0.238159 0.79248
+2 4 20 0.318115 0.248535 0.827148
+2 4 21 0.320801 0.250488 0.833984
+2 4 22 0.323486 0.252686 0.841309
+2 4 23 0.326172 0.254883 0.848633
+2 4 24 0.329102 0.25708 0.855957
+2 4 25 0.332275 0.259521 0.864258
+2 4 26 0.335693 0.262207 0.873535
+2 4 27 0.3396 0.265137 0.883301
+2 4 28 0.343994 0.268555 0.894531
+2 4 29 0.348389 0.272217 0.906738
+2 4 30 0.353271 0.275879 0.919434
+2 4 31 0.358398 0.279785 0.932129
+2 5 0 0.0279541 0.0423889 0.0187683
+2 5 1 0.0280457 0.0423279 0.0219269
+2 5 2 0.0282745 0.0423279 0.0262146
+2 5 3 0.0287781 0.04245 0.0320435
+2 5 4 0.0299225 0.0430603 0.0402222
+2 5 5 0.032135 0.0443115 0.0517273
+2 5 6 0.0352783 0.0456238 0.0663452
+2 5 7 0.0397034 0.0469971 0.0842896
+2 5 8 0.0462952 0.049469 0.106995
+2 5 9 0.0559998 0.0542297 0.136353
+2 5 10 0.0697021 0.0625 0.174927
+2 5 11 0.0880737 0.0748901 0.224487
+2 5 12 0.109985 0.0903931 0.282959
+2 5 13 0.13501 0.108765 0.348877
+2 5 14 0.162842 0.129517 0.421875
+2 5 15 0.192505 0.1521 0.499512
+2 5 16 0.223389 0.175781 0.580566
+2 5 17 0.253174 0.19873 0.658203
+2 5 18 0.280518 0.219849 0.729492
+2 5 19 0.304688 0.238525 0.79248
+2 5 20 0.318115 0.248779 0.827637
+2 5 21 0.320801 0.250732 0.833984
+2 5 22 0.323486 0.25293 0.841309
+2 5 23 0.326416 0.254883 0.848633
+2 5 24 0.329102 0.25708 0.856445
+2 5 25 0.332275 0.259521 0.864258
+2 5 26 0.335693 0.262207 0.873535
+2 5 27 0.3396 0.265137 0.883301
+2 5 28 0.343994 0.268555 0.894531
+2 5 29 0.348633 0.272217 0.906738
+2 5 30 0.353271 0.275879 0.919434
+2 5 31 0.358398 0.279785 0.932129
+2 6 0 0.0316162 0.0544128 0.0200806
+2 6 1 0.0317383 0.0544128 0.0231018
+2 6 2 0.0319824 0.0544739 0.0274506
+2 6 3 0.0324097 0.0545349 0.0333557
+2 6 4 0.0332336 0.054718 0.0413818
+2 6 5 0.03479 0.0551453 0.0522766
+2 6 6 0.0373535 0.0557861 0.0663452
+2 6 7 0.0414124 0.0566406 0.0842896
+2 6 8 0.0476379 0.0582581 0.107056
+2 6 9 0.0569458 0.0618286 0.136353
+2 6 10 0.0703735 0.0688477 0.174805
+2 6 11 0.088562 0.0800171 0.224365
+2 6 12 0.110352 0.0944214 0.282959
+2 6 13 0.135254 0.111816 0.348877
+2 6 14 0.162964 0.131836 0.421875
+2 6 15 0.192627 0.153809 0.499756
+2 6 16 0.223511 0.177124 0.580566
+2 6 17 0.253418 0.199707 0.658203
+2 6 18 0.280762 0.220703 0.729492
+2 6 19 0.304688 0.239136 0.79248
+2 6 20 0.318115 0.24939 0.827637
+2 6 21 0.320801 0.251221 0.834473
+2 6 22 0.323486 0.253174 0.841309
+2 6 23 0.326416 0.255371 0.848633
+2 6 24 0.329102 0.257324 0.856445
+2 6 25 0.332275 0.259766 0.864258
+2 6 26 0.335693 0.262451 0.873535
+2 6 27 0.3396 0.265381 0.883301
+2 6 28 0.343994 0.268799 0.894531
+2 6 29 0.348633 0.272217 0.906738
+2 6 30 0.353271 0.275879 0.919434
+2 6 31 0.358398 0.279785 0.932129
+2 7 0 0.0361023 0.0685425 0.0251007
+2 7 1 0.0361328 0.0686035 0.0251007
+2 7 2 0.0363159 0.0686035 0.0280151
+2 7 3 0.0366821 0.0687256 0.0337219
+2 7 4 0.037384 0.0689087 0.0415955
+2 7 5 0.0386353 0.0691528 0.0523071
+2 7 6 0.040802 0.069519 0.0662231
+2 7 7 0.0443726 0.0700684 0.0842285
+2 7 8 0.0500488 0.0709839 0.107178
+2 7 9 0.0587463 0.0733643 0.136475
+2 7 10 0.0716553 0.0789795 0.174805
+2 7 11 0.0894775 0.0886841 0.224365
+2 7 12 0.111023 0.101501 0.282715
+2 7 13 0.135864 0.117371 0.348877
+2 7 14 0.163452 0.136108 0.421875
+2 7 15 0.192993 0.157104 0.499756
+2 7 16 0.223755 0.179565 0.580566
+2 7 17 0.253418 0.20166 0.658203
+2 7 18 0.280762 0.222168 0.729492
+2 7 19 0.304932 0.240356 0.79248
+2 7 20 0.318359 0.250244 0.827637
+2 7 21 0.320801 0.251953 0.834473
+2 7 22 0.32373 0.253906 0.841797
+2 7 23 0.326416 0.255859 0.849121
+2 7 24 0.329102 0.257812 0.856445
+2 7 25 0.332275 0.260254 0.864258
+2 7 26 0.335693 0.262695 0.873535
+2 7 27 0.3396 0.265625 0.883301
+2 7 28 0.343994 0.269043 0.89502
+2 7 29 0.348633 0.272461 0.906738
+2 7 30 0.353271 0.276123 0.919434
+2 7 31 0.358398 0.280029 0.932129
+2 8 0 0.0426025 0.0866089 0.0315552
+2 8 1 0.0426331 0.0866089 0.0315552
+2 8 2 0.0426941 0.0866089 0.0315857
+2 8 3 0.0428772 0.086731 0.0342407
+2 8 4 0.0434265 0.086853 0.041748
+2 8 5 0.0444031 0.0870361 0.0520935
+2 8 6 0.0461731 0.0874023 0.0657959
+2 8 7 0.0491943 0.0878906 0.0838623
+2 8 8 0.0541687 0.088501 0.107056
+2 8 9 0.0620422 0.0900879 0.136597
+2 8 10 0.0740967 0.0944214 0.174683
+2 8 11 0.0912476 0.102539 0.224243
+2 8 12 0.112366 0.113403 0.282715
+2 8 13 0.136841 0.127197 0.349121
+2 8 14 0.164185 0.143921 0.421875
+2 8 15 0.193481 0.163208 0.499756
+2 8 16 0.224243 0.184326 0.580566
+2 8 17 0.253906 0.205322 0.658203
+2 8 18 0.281006 0.224976 0.72998
+2 8 19 0.305176 0.242676 0.79248
+2 8 20 0.318604 0.252197 0.827637
+2 8 21 0.321045 0.253418 0.834473
+2 8 22 0.32373 0.255127 0.841797
+2 8 23 0.32666 0.256836 0.849121
+2 8 24 0.329346 0.258789 0.856445
+2 8 25 0.33252 0.260986 0.864746
+2 8 26 0.335938 0.263428 0.873535
+2 8 27 0.3396 0.266113 0.883789
+2 8 28 0.343994 0.269531 0.89502
+2 8 29 0.348633 0.272949 0.906738
+2 8 30 0.353516 0.276611 0.919434
+2 8 31 0.358398 0.280273 0.932129
+2 9 0 0.0517578 0.10968 0.0398865
+2 9 1 0.0517578 0.10968 0.0398865
+2 9 2 0.0518188 0.10968 0.0398865
+2 9 3 0.0519104 0.109741 0.039917
+2 9 4 0.052124 0.109802 0.0424805
+2 9 5 0.0528564 0.109985 0.0523071
+2 9 6 0.0541687 0.110229 0.0655518
+2 9 7 0.0565491 0.110657 0.083313
+2 9 8 0.06073 0.111328 0.106689
+2 9 9 0.067627 0.112732 0.136719
+2 9 10 0.0784912 0.116089 0.174927
+2 9 11 0.0945435 0.122925 0.224121
+2 9 12 0.114868 0.131836 0.282715
+2 9 13 0.138672 0.143188 0.349121
+2 9 14 0.165527 0.157227 0.422119
+2 9 15 0.19458 0.17395 0.5
+2 9 16 0.225098 0.192871 0.580566
+2 9 17 0.254395 0.212036 0.658691
+2 9 18 0.281738 0.230347 0.72998
+2 9 19 0.305664 0.246948 0.792969
+2 9 20 0.319092 0.255859 0.828613
+2 9 21 0.321533 0.256348 0.834961
+2 9 22 0.324219 0.257324 0.842285
+2 9 23 0.326904 0.258789 0.849609
+2 9 24 0.32959 0.260498 0.856934
+2 9 25 0.332764 0.262451 0.864746
+2 9 26 0.335938 0.264648 0.874023
+2 9 27 0.339844 0.267334 0.883789
+2 9 28 0.344238 0.270264 0.89502
+2 9 29 0.348633 0.273682 0.907227
+2 9 30 0.353516 0.2771 0.919434
+2 9 31 0.358398 0.280762 0.932617
+2 10 0 0.0643311 0.139526 0.0506897
+2 10 1 0.0643311 0.139526 0.0506897
+2 10 2 0.0643921 0.139526 0.0506897
+2 10 3 0.0644531 0.139648 0.0506897
+2 10 4 0.0645752 0.139648 0.0507202
+2 10 5 0.0648804 0.139771 0.0539551
+2 10 6 0.0657959 0.139771 0.0667114
+2 10 7 0.0675049 0.140015 0.0840454
+2 10 8 0.0707397 0.140503 0.107239
+2 10 9 0.0764771 0.141724 0.137451
+2 10 10 0.0858765 0.144531 0.175659
+2 10 11 0.100281 0.150269 0.224365
+2 10 12 0.119202 0.157593 0.282715
+2 10 13 0.141968 0.166504 0.349121
+2 10 14 0.168091 0.177612 0.422363
+2 10 15 0.196533 0.191162 0.5
+2 10 16 0.226562 0.206909 0.581055
+2 10 17 0.255615 0.223511 0.658691
+2 10 18 0.282715 0.239624 0.730469
+2 10 19 0.306396 0.254639 0.793457
+2 10 20 0.319824 0.262207 0.829102
+2 10 21 0.322266 0.261475 0.835938
+2 10 22 0.324707 0.261475 0.842773
+2 10 23 0.327393 0.262207 0.850098
+2 10 24 0.330078 0.263428 0.857422
+2 10 25 0.333008 0.264893 0.865234
+2 10 26 0.336426 0.266846 0.874023
+2 10 27 0.340088 0.269287 0.884277
+2 10 28 0.344482 0.271973 0.895508
+2 10 29 0.348877 0.275146 0.907227
+2 10 30 0.35376 0.27832 0.919922
+2 10 31 0.358643 0.281982 0.932617
+2 11 0 0.0812378 0.178467 0.0647583
+2 11 1 0.0812378 0.178467 0.0647583
+2 11 2 0.0812988 0.178467 0.0647583
+2 11 3 0.0812988 0.178467 0.0647583
+2 11 4 0.0814209 0.178467 0.0648193
+2 11 5 0.081543 0.178589 0.0648193
+2 11 6 0.0819702 0.178711 0.0697632
+2 11 7 0.0831909 0.178711 0.086792
+2 11 8 0.0855713 0.178833 0.109802
+2 11 9 0.0899658 0.179443 0.140015
+2 11 10 0.0975342 0.181396 0.177979
+2 11 11 0.109497 0.185425 0.225464
+2 11 12 0.126343 0.191162 0.282959
+2 11 13 0.147583 0.19812 0.349365
+2 11 14 0.172363 0.206421 0.422607
+2 11 15 0.199951 0.216553 0.500488
+2 11 16 0.229126 0.228638 0.581543
+2 11 17 0.257812 0.241577 0.659668
+2 11 18 0.28418 0.254639 0.730957
+2 11 19 0.307861 0.26709 0.793945
+2 11 20 0.321533 0.272705 0.831055
+2 11 21 0.323486 0.27002 0.836914
+2 11 22 0.325684 0.268555 0.84375
+2 11 23 0.328125 0.268311 0.851074
+2 11 24 0.330811 0.268555 0.858398
+2 11 25 0.33374 0.269287 0.866211
+2 11 26 0.336914 0.270752 0.875
+2 11 27 0.340576 0.272461 0.884766
+2 11 28 0.344727 0.274902 0.895996
+2 11 29 0.349365 0.277588 0.907715
+2 11 30 0.354004 0.280518 0.92041
+2 11 31 0.358887 0.283691 0.933105
+2 12 0 0.10199 0.225586 0.0818481
+2 12 1 0.102051 0.225586 0.0818481
+2 12 2 0.102051 0.225586 0.0818481
+2 12 3 0.102051 0.225586 0.0818481
+2 12 4 0.102112 0.225586 0.0818481
+2 12 5 0.102234 0.225708 0.0819092
+2 12 6 0.102417 0.22583 0.0819092
+2 12 7 0.103149 0.225952 0.0905151
+2 12 8 0.104919 0.226074 0.113342
+2 12 9 0.108215 0.22644 0.143433
+2 12 10 0.113953 0.227295 0.181152
+2 12 11 0.123352 0.229492 0.227417
+2 12 12 0.137451 0.233398 0.283936
+2 12 13 0.15625 0.238525 0.349609
+2 12 14 0.179321 0.244507 0.422852
+2 12 15 0.205322 0.251465 0.500977
+2 12 16 0.233521 0.259521 0.58252
+2 12 17 0.26123 0.268555 0.660645
+2 12 18 0.287109 0.277588 0.731934
+2 12 19 0.310059 0.286621 0.794922
+2 12 20 0.323975 0.289551 0.833496
+2 12 21 0.325439 0.283691 0.839355
+2 12 22 0.327393 0.280273 0.846191
+2 12 23 0.32959 0.278076 0.852539
+2 12 24 0.332031 0.2771 0.859863
+2 12 25 0.334717 0.276855 0.867676
+2 12 26 0.337891 0.2771 0.875977
+2 12 27 0.341553 0.278076 0.885742
+2 12 28 0.345703 0.279785 0.896973
+2 12 29 0.349854 0.281738 0.908691
+2 12 30 0.354492 0.28418 0.920898
+2 12 31 0.359375 0.286865 0.933594
+2 13 0 0.125854 0.279297 0.101318
+2 13 1 0.125854 0.279297 0.101318
+2 13 2 0.125854 0.279297 0.101318
+2 13 3 0.125854 0.279297 0.101318
+2 13 4 0.125854 0.279297 0.101318
+2 13 5 0.125977 0.279297 0.101318
+2 13 6 0.126099 0.279297 0.101379
+2 13 7 0.126465 0.279541 0.10144
+2 13 8 0.127563 0.279785 0.116638
+2 13 9 0.130127 0.280029 0.146362
+2 13 10 0.134521 0.280762 0.183838
+2 13 11 0.141846 0.281982 0.229614
+2 13 12 0.153076 0.28418 0.285156
+2 13 13 0.169189 0.287598 0.349854
+2 13 14 0.189697 0.291504 0.423096
+2 13 15 0.213745 0.295654 0.501465
+2 13 16 0.240234 0.300537 0.583008
+2 13 17 0.266602 0.305176 0.661621
+2 13 18 0.291504 0.309814 0.733398
+2 13 19 0.313721 0.314697 0.796387
+2 13 20 0.328125 0.314697 0.837402
+2 13 21 0.328857 0.304688 0.843262
+2 13 22 0.330322 0.297852 0.849121
+2 13 23 0.332275 0.293457 0.855469
+2 13 24 0.334229 0.290527 0.862305
+2 13 25 0.33667 0.288574 0.869629
+2 13 26 0.3396 0.287354 0.878418
+2 13 27 0.343018 0.286865 0.887695
+2 13 28 0.346924 0.287354 0.898438
+2 13 29 0.351074 0.28833 0.910156
+2 13 30 0.355469 0.290039 0.921875
+2 13 31 0.360107 0.291748 0.93457
+2 14 0 0.152466 0.339111 0.122986
+2 14 1 0.152466 0.339111 0.122986
+2 14 2 0.152466 0.339111 0.122986
+2 14 3 0.152466 0.339111 0.122986
+2 14 4 0.152466 0.339111 0.122986
+2 14 5 0.152466 0.339111 0.122986
+2 14 6 0.152588 0.339111 0.122986
+2 14 7 0.152832 0.339111 0.123047
+2 14 8 0.15332 0.339355 0.123169
+2 14 9 0.155151 0.339844 0.148926
+2 14 10 0.158569 0.340332 0.185669
+2 14 11 0.164307 0.341309 0.230957
+2 14 12 0.17334 0.343018 0.285889
+2 14 13 0.186523 0.344971 0.349854
+2 14 14 0.204102 0.347412 0.422607
+2 14 15 0.225586 0.349609 0.501465
+2 14 16 0.25 0.351318 0.583984
+2 14 17 0.274902 0.352051 0.663086
+2 14 18 0.29834 0.352539 0.735352
+2 14 19 0.31958 0.353027 0.79834
+2 14 20 0.334229 0.349854 0.843262
+2 14 21 0.334229 0.334717 0.848633
+2 14 22 0.334961 0.32373 0.854492
+2 14 23 0.336182 0.315918 0.860352
+2 14 24 0.337646 0.310303 0.866699
+2 14 25 0.339844 0.305908 0.873535
+2 14 26 0.342285 0.30249 0.881836
+2 14 27 0.345215 0.300293 0.890625
+2 14 28 0.348877 0.299072 0.900879
+2 14 29 0.352783 0.298584 0.912109
+2 14 30 0.356934 0.298828 0.923828
+2 14 31 0.361328 0.299561 0.936523
+2 15 0 0.18103 0.40332 0.14624
+2 15 1 0.18103 0.40332 0.14624
+2 15 2 0.18103 0.40332 0.14624
+2 15 3 0.18103 0.40332 0.14624
+2 15 4 0.181152 0.40332 0.14624
+2 15 5 0.181152 0.40332 0.14624
+2 15 6 0.181274 0.40332 0.14624
+2 15 7 0.181396 0.40332 0.146362
+2 15 8 0.181641 0.403564 0.146362
+2 15 9 0.182495 0.403809 0.151367
+2 15 10 0.185181 0.404541 0.186768
+2 15 11 0.189697 0.405518 0.230957
+2 15 12 0.197021 0.406982 0.285156
+2 15 13 0.207764 0.408691 0.348633
+2 15 14 0.222656 0.410156 0.421143
+2 15 15 0.241455 0.411133 0.500488
+2 15 16 0.263428 0.410889 0.583496
+2 15 17 0.286133 0.408691 0.663574
+2 15 18 0.307861 0.405029 0.736816
+2 15 19 0.327637 0.401123 0.800781
+2 15 20 0.343018 0.395508 0.850586
+2 15 21 0.342285 0.374756 0.856445
+2 15 22 0.342041 0.358643 0.862305
+2 15 23 0.342285 0.346924 0.867676
+2 15 24 0.343262 0.337891 0.873535
+2 15 25 0.344482 0.330566 0.879883
+2 15 26 0.346436 0.324463 0.887207
+2 15 27 0.348877 0.31958 0.895508
+2 15 28 0.352051 0.316162 0.905273
+2 15 29 0.355469 0.313477 0.916016
+2 15 30 0.359375 0.312012 0.927246
+2 15 31 0.363525 0.311035 0.938965
+2 16 0 0.211182 0.470703 0.170776
+2 16 1 0.211182 0.470703 0.170776
+2 16 2 0.211182 0.470703 0.170776
+2 16 3 0.211182 0.470703 0.170776
+2 16 4 0.211304 0.470703 0.170776
+2 16 5 0.211304 0.470703 0.170776
+2 16 6 0.211304 0.470703 0.170776
+2 16 7 0.211426 0.470947 0.170776
+2 16 8 0.21167 0.470947 0.170776
+2 16 9 0.212158 0.471191 0.170898
+2 16 10 0.213623 0.47168 0.187622
+2 16 11 0.217285 0.472656 0.230103
+2 16 12 0.223145 0.474365 0.282715
+2 16 13 0.231934 0.476074 0.345215
+2 16 14 0.244507 0.477783 0.417236
+2 16 15 0.260742 0.478516 0.496826
+2 16 16 0.280029 0.477295 0.580566
+2 16 17 0.300537 0.4729 0.662598
+2 16 18 0.320557 0.466553 0.737305
+2 16 19 0.338623 0.458984 0.802246
+2 16 20 0.354004 0.450439 0.855957
+2 16 21 0.353271 0.425537 0.867188
+2 16 22 0.352051 0.404297 0.873535
+2 16 23 0.351562 0.387939 0.878906
+2 16 24 0.351318 0.375 0.883789
+2 16 25 0.351807 0.36377 0.88916
+2 16 26 0.352783 0.354248 0.895508
+2 16 27 0.354492 0.345947 0.902832
+2 16 28 0.356689 0.3396 0.912109
+2 16 29 0.359619 0.334229 0.921875
+2 16 30 0.362793 0.330078 0.932129
+2 16 31 0.366455 0.327148 0.942871
+2 17 0 0.240967 0.537109 0.194824
+2 17 1 0.240967 0.537109 0.194824
+2 17 2 0.240967 0.537109 0.194824
+2 17 3 0.240967 0.537109 0.194824
+2 17 4 0.240967 0.537109 0.194824
+2 17 5 0.240967 0.537109 0.194824
+2 17 6 0.241089 0.537109 0.194824
+2 17 7 0.241089 0.537598 0.194946
+2 17 8 0.241333 0.537598 0.194946
+2 17 9 0.241699 0.537598 0.194946
+2 17 10 0.24231 0.538086 0.195068
+2 17 11 0.244873 0.539062 0.228516
+2 17 12 0.249756 0.540527 0.279053
+2 17 13 0.25708 0.542969 0.339844
+2 17 14 0.267822 0.544922 0.410645
+2 17 15 0.281738 0.546387 0.489746
+2 17 16 0.298828 0.544922 0.574219
+2 17 17 0.317383 0.540527 0.657715
+2 17 18 0.335449 0.532715 0.734863
+2 17 19 0.352051 0.522461 0.802246
+2 17 20 0.365967 0.510742 0.857422
+2 17 21 0.367188 0.484863 0.878418
+2 17 22 0.365723 0.459229 0.887695
+2 17 23 0.364014 0.438232 0.893555
+2 17 24 0.362793 0.420898 0.898438
+2 17 25 0.362061 0.405518 0.902832
+2 17 26 0.362061 0.391846 0.908203
+2 17 27 0.362549 0.379639 0.914551
+2 17 28 0.36377 0.369629 0.921875
+2 17 29 0.365723 0.361084 0.930176
+2 17 30 0.36792 0.354004 0.939453
+2 17 31 0.37085 0.348145 0.949219
+2 18 0 0.268799 0.599121 0.217407
+2 18 1 0.268799 0.599121 0.217407
+2 18 2 0.268799 0.599121 0.217407
+2 18 3 0.268799 0.599121 0.217407
+2 18 4 0.268799 0.599121 0.217407
+2 18 5 0.268799 0.599121 0.217407
+2 18 6 0.268799 0.599609 0.217407
+2 18 7 0.268799 0.599609 0.217407
+2 18 8 0.269043 0.599609 0.217407
+2 18 9 0.269287 0.599609 0.217407
+2 18 10 0.269775 0.599609 0.217529
+2 18 11 0.270996 0.600098 0.226318
+2 18 12 0.274902 0.602051 0.27417
+2 18 13 0.28125 0.604492 0.33252
+2 18 14 0.290283 0.607422 0.401123
+2 18 15 0.302734 0.609863 0.479004
+2 18 16 0.317871 0.609863 0.563965
+2 18 17 0.334717 0.606445 0.648926
+2 18 18 0.351318 0.598633 0.728516
+2 18 19 0.366699 0.587891 0.798828
+2 18 20 0.379395 0.57373 0.856445
+2 18 21 0.383057 0.548828 0.888184
+2 18 22 0.38208 0.520996 0.90332
+2 18 23 0.379883 0.496094 0.911621
+2 18 24 0.377686 0.474609 0.916992
+2 18 25 0.375732 0.454834 0.920898
+2 18 26 0.374268 0.436523 0.925293
+2 18 27 0.373291 0.420166 0.929688
+2 18 28 0.373047 0.406006 0.935059
+2 18 29 0.373779 0.393555 0.941895
+2 18 30 0.375 0.382812 0.949219
+2 18 31 0.376709 0.373779 0.95752
+2 19 0 0.293701 0.655273 0.237549
+2 19 1 0.293701 0.655273 0.237549
+2 19 2 0.293701 0.655273 0.237549
+2 19 3 0.293701 0.655273 0.237549
+2 19 4 0.293701 0.655273 0.237549
+2 19 5 0.293701 0.655273 0.237549
+2 19 6 0.293701 0.655273 0.237549
+2 19 7 0.293701 0.655273 0.237549
+2 19 8 0.293945 0.655273 0.237549
+2 19 9 0.294189 0.655273 0.237671
+2 19 10 0.294434 0.655273 0.237671
+2 19 11 0.295166 0.655762 0.237793
+2 19 12 0.297852 0.657227 0.269043
+2 19 13 0.303223 0.659668 0.324463
+2 19 14 0.311035 0.663086 0.390625
+2 19 15 0.322021 0.666016 0.466309
+2 19 16 0.335693 0.667969 0.549805
+2 19 17 0.351318 0.666504 0.635742
+2 19 18 0.366943 0.660156 0.717773
+2 19 19 0.381348 0.649902 0.790527
+2 19 20 0.393066 0.635254 0.851074
+2 19 21 0.39917 0.612793 0.893066
+2 19 22 0.399658 0.585449 0.916992
+2 19 23 0.397705 0.558105 0.929688
+2 19 24 0.394775 0.533691 0.937012
+2 19 25 0.391846 0.509766 0.941406
+2 19 26 0.388916 0.487061 0.945312
+2 19 27 0.386475 0.466064 0.948242
+2 19 28 0.384766 0.44751 0.952148
+2 19 29 0.383789 0.430664 0.956543
+2 19 30 0.383545 0.416016 0.961914
+2 19 31 0.384033 0.40332 0.968262
+2 20 0 0.315186 0.703125 0.254883
+2 20 1 0.315186 0.703125 0.254883
+2 20 2 0.315186 0.703125 0.254883
+2 20 3 0.315186 0.703125 0.254883
+2 20 4 0.315186 0.703125 0.254883
+2 20 5 0.315186 0.703125 0.254883
+2 20 6 0.315186 0.703125 0.255127
+2 20 7 0.315186 0.703125 0.255127
+2 20 8 0.31543 0.703125 0.255127
+2 20 9 0.31543 0.703125 0.255127
+2 20 10 0.315918 0.703613 0.255127
+2 20 11 0.316406 0.703613 0.255127
+2 20 12 0.317627 0.704102 0.263916
+2 20 13 0.322266 0.707031 0.316162
+2 20 14 0.329346 0.710449 0.379395
+2 20 15 0.338867 0.714355 0.452637
+2 20 16 0.351562 0.717773 0.53418
+2 20 17 0.365967 0.718262 0.620117
+2 20 18 0.380859 0.714355 0.703125
+2 20 19 0.394531 0.705078 0.777832
+2 20 20 0.405762 0.691406 0.841797
+2 20 21 0.413574 0.672852 0.89209
+2 20 22 0.416504 0.647461 0.925293
+2 20 23 0.415527 0.620117 0.944336
+2 20 24 0.412842 0.59375 0.955078
+2 20 25 0.40918 0.566895 0.961914
+2 20 26 0.405273 0.540039 0.96582
+2 20 27 0.401367 0.515137 0.968262
+2 20 28 0.397949 0.491943 0.970703
+2 20 29 0.395508 0.470947 0.973633
+2 20 30 0.393799 0.452148 0.977051
+2 20 31 0.392822 0.435547 0.981445
+2 21 0 0.333496 0.744141 0.269775
+2 21 1 0.333496 0.744141 0.269775
+2 21 2 0.333496 0.744141 0.269775
+2 21 3 0.333496 0.744141 0.269775
+2 21 4 0.333496 0.744141 0.269775
+2 21 5 0.333496 0.744141 0.269775
+2 21 6 0.333496 0.744141 0.269775
+2 21 7 0.333496 0.744141 0.269775
+2 21 8 0.33374 0.744141 0.269775
+2 21 9 0.33374 0.744141 0.269775
+2 21 10 0.333984 0.744141 0.27002
+2 21 11 0.334473 0.744629 0.27002
+2 21 12 0.335205 0.744629 0.27002
+2 21 13 0.338623 0.74707 0.307861
+2 21 14 0.344727 0.750488 0.367676
+2 21 15 0.353516 0.754883 0.437988
+2 21 16 0.36499 0.759277 0.51709
+2 21 17 0.378418 0.761719 0.601074
+2 21 18 0.392578 0.760254 0.68457
+2 21 19 0.405762 0.753418 0.76123
+2 21 20 0.416992 0.741699 0.827637
+2 21 21 0.425781 0.725586 0.883301
+2 21 22 0.430908 0.70459 0.925293
+2 21 23 0.431641 0.679199 0.952148
+2 21 24 0.429932 0.652832 0.96875
+2 21 25 0.426514 0.624023 0.979004
+2 21 26 0.421875 0.595215 0.984863
+2 21 27 0.417236 0.566406 0.988281
+2 21 28 0.412598 0.539062 0.990234
+2 21 29 0.408691 0.51416 0.991699
+2 21 30 0.405273 0.491211 0.993652
+2 21 31 0.402832 0.470703 0.996094
+2 22 0 0.348633 0.777832 0.282227
+2 22 1 0.348633 0.777832 0.282227
+2 22 2 0.348633 0.777832 0.282227
+2 22 3 0.348633 0.777832 0.282227
+2 22 4 0.348633 0.777832 0.282227
+2 22 5 0.348633 0.777832 0.282227
+2 22 6 0.348633 0.777832 0.282227
+2 22 7 0.348633 0.777832 0.282227
+2 22 8 0.348877 0.777832 0.282227
+2 22 9 0.348877 0.77832 0.282227
+2 22 10 0.349121 0.77832 0.282227
+2 22 11 0.349609 0.77832 0.282227
+2 22 12 0.350098 0.77832 0.282471
+2 22 13 0.352051 0.779785 0.299316
+2 22 14 0.357666 0.783691 0.356201
+2 22 15 0.365479 0.788086 0.423096
+2 22 16 0.375977 0.793457 0.499268
+2 22 17 0.388672 0.797363 0.581055
+2 22 18 0.4021 0.797852 0.663574
+2 22 19 0.415039 0.793945 0.741211
+2 22 20 0.42627 0.784668 0.80957
+2 22 21 0.435303 0.770996 0.868164
+2 22 22 0.441895 0.75293 0.916504
+2 22 23 0.444824 0.731445 0.951172
+2 22 24 0.44458 0.706543 0.974121
+2 22 25 0.442139 0.678711 0.989746
+2 22 26 0.437988 0.648438 1
+2 22 27 0.432861 0.617188 1
+2 22 28 0.42749 0.587402 1
+2 22 29 0.422363 0.558594 1
+2 22 30 0.417725 0.531738 1
+2 22 31 0.413818 0.507324 1
+2 23 0 0.36084 0.805176 0.291992
+2 23 1 0.36084 0.805176 0.291992
+2 23 2 0.36084 0.805176 0.291992
+2 23 3 0.36084 0.805176 0.291992
+2 23 4 0.36084 0.805176 0.291992
+2 23 5 0.36084 0.805176 0.291992
+2 23 6 0.36084 0.805176 0.291992
+2 23 7 0.36084 0.805176 0.291992
+2 23 8 0.36084 0.805176 0.291992
+2 23 9 0.361084 0.805176 0.291992
+2 23 10 0.361084 0.805176 0.291992
+2 23 11 0.361572 0.805176 0.291992
+2 23 12 0.362061 0.805664 0.292236
+2 23 13 0.362793 0.805664 0.292236
+2 23 14 0.36792 0.80957 0.345215
+2 23 15 0.375 0.814453 0.408691
+2 23 16 0.384521 0.819824 0.482178
+2 23 17 0.396484 0.825195 0.561523
+2 23 18 0.409424 0.827637 0.64209
+2 23 19 0.422119 0.826172 0.719727
+2 23 20 0.43335 0.819336 0.789062
+2 23 21 0.442627 0.808105 0.850098
+2 23 22 0.449463 0.79248 0.901367
+2 23 23 0.453857 0.773926 0.941406
+2 23 24 0.455811 0.752441 0.971191
+2 23 25 0.454834 0.726562 0.993652
+2 23 26 0.45166 0.696777 1
+2 23 27 0.446777 0.665039 1
+2 23 28 0.441162 0.632812 1
+2 23 29 0.435303 0.601074 1
+2 23 30 0.429688 0.571289 1
+2 23 31 0.424561 0.543457 1
+2 24 0 0.370605 0.82666 0.299805
+2 24 1 0.370605 0.82666 0.299805
+2 24 2 0.370605 0.82666 0.299805
+2 24 3 0.370605 0.82666 0.299805
+2 24 4 0.370605 0.82666 0.299805
+2 24 5 0.370605 0.82666 0.299805
+2 24 6 0.370605 0.82666 0.299805
+2 24 7 0.370605 0.82666 0.299805
+2 24 8 0.370605 0.82666 0.299805
+2 24 9 0.370605 0.82666 0.299805
+2 24 10 0.37085 0.827148 0.299805
+2 24 11 0.371094 0.827148 0.300049
+2 24 12 0.371582 0.827148 0.300049
+2 24 13 0.372314 0.827637 0.300049
+2 24 14 0.375732 0.830078 0.334717
+2 24 15 0.382324 0.834961 0.395264
+2 24 16 0.391357 0.84082 0.465576
+2 24 17 0.402344 0.84668 0.541992
+2 24 18 0.414795 0.850586 0.621094
+2 24 19 0.427246 0.851074 0.697266
+2 24 20 0.438477 0.847168 0.767578
+2 24 21 0.447998 0.838379 0.830078
+2 24 22 0.455322 0.824707 0.883789
+2 24 23 0.460449 0.808594 0.927246
+2 24 24 0.463623 0.790039 0.961426
+2 24 25 0.4646 0.76709 0.989746
+2 24 26 0.462891 0.739258 1
+2 24 27 0.458984 0.708008 1
+2 24 28 0.453369 0.674805 1
+2 24 29 0.447266 0.641602 1
+2 24 30 0.441162 0.609375 1
+2 24 31 0.435059 0.578613 1
+2 25 0 0.37915 0.846191 0.306885
+2 25 1 0.37915 0.846191 0.306885
+2 25 2 0.37915 0.846191 0.306885
+2 25 3 0.37915 0.846191 0.306885
+2 25 4 0.37915 0.846191 0.306885
+2 25 5 0.37915 0.846191 0.306885
+2 25 6 0.37915 0.846191 0.306885
+2 25 7 0.37915 0.846191 0.306885
+2 25 8 0.37915 0.846191 0.306885
+2 25 9 0.379395 0.846191 0.306885
+2 25 10 0.379395 0.846191 0.306885
+2 25 11 0.379639 0.846191 0.306885
+2 25 12 0.380127 0.846191 0.306885
+2 25 13 0.380615 0.84668 0.307129
+2 25 14 0.382812 0.848145 0.323975
+2 25 15 0.388672 0.853027 0.381348
+2 25 16 0.396973 0.858887 0.448242
+2 25 17 0.407227 0.865234 0.521484
+2 25 18 0.418945 0.870117 0.597656
+2 25 19 0.430908 0.872559 0.672852
+2 25 20 0.442139 0.871094 0.742676
+2 25 21 0.452148 0.865234 0.806641
+2 25 22 0.459961 0.854492 0.862305
+2 25 23 0.46582 0.84082 0.908203
+2 25 24 0.469727 0.824707 0.945801
+2 25 25 0.472168 0.804688 0.979004
+2 25 26 0.472168 0.779785 1
+2 25 27 0.469482 0.75 1
+2 25 28 0.464844 0.717285 1
+2 25 29 0.458984 0.683105 1
+2 25 30 0.452393 0.648926 1
+2 25 31 0.445801 0.615723 1
+2 26 0 0.386963 0.863281 0.312988
+2 26 1 0.386963 0.863281 0.312988
+2 26 2 0.386963 0.863281 0.312988
+2 26 3 0.386963 0.863281 0.312988
+2 26 4 0.386963 0.863281 0.312988
+2 26 5 0.386963 0.863281 0.312988
+2 26 6 0.386963 0.863281 0.312988
+2 26 7 0.386963 0.863281 0.312988
+2 26 8 0.386963 0.863281 0.312988
+2 26 9 0.386963 0.863281 0.312988
+2 26 10 0.387207 0.863281 0.313232
+2 26 11 0.387451 0.863281 0.313232
+2 26 12 0.387695 0.86377 0.313232
+2 26 13 0.388184 0.86377 0.313232
+2 26 14 0.38916 0.864258 0.313477
+2 26 15 0.394287 0.868652 0.367188
+2 26 16 0.401855 0.874512 0.43042
+2 26 17 0.411377 0.880859 0.5
+2 26 18 0.422119 0.887207 0.57373
+2 26 19 0.433838 0.891113 0.646484
+2 26 20 0.444824 0.891602 0.715332
+2 26 21 0.455078 0.888672 0.779297
+2 26 22 0.463623 0.880859 0.836914
+2 26 23 0.469971 0.870117 0.885254
+2 26 24 0.474609 0.856445 0.925293
+2 26 25 0.477783 0.838867 0.961914
+2 26 26 0.479248 0.816895 0.994141
+2 26 27 0.478271 0.790039 1
+2 26 28 0.474854 0.758789 1
+2 26 29 0.469482 0.724609 1
+2 26 30 0.463135 0.689453 1
+2 26 31 0.456299 0.654785 1
+2 27 0 0.393555 0.878418 0.318604
+2 27 1 0.393555 0.878418 0.318604
+2 27 2 0.393555 0.878418 0.318604
+2 27 3 0.393799 0.878418 0.318604
+2 27 4 0.393799 0.878418 0.318604
+2 27 5 0.393799 0.878418 0.318604
+2 27 6 0.393799 0.878418 0.318604
+2 27 7 0.393799 0.878418 0.318604
+2 27 8 0.393799 0.878418 0.318604
+2 27 9 0.393799 0.878418 0.318604
+2 27 10 0.393799 0.878418 0.318604
+2 27 11 0.394043 0.878418 0.318604
+2 27 12 0.394287 0.878906 0.318604
+2 27 13 0.394775 0.878906 0.318848
+2 27 14 0.395508 0.878906 0.318848
+2 27 15 0.39917 0.882324 0.353027
+2 27 16 0.406006 0.887695 0.412598
+2 27 17 0.414551 0.894531 0.478516
+2 27 18 0.424805 0.900879 0.54834
+2 27 19 0.435791 0.90625 0.618652
+2 27 20 0.446533 0.908691 0.686035
+2 27 21 0.456787 0.908203 0.749512
+2 27 22 0.465576 0.903809 0.807617
+2 27 23 0.472656 0.895508 0.857422
+2 27 24 0.477783 0.884766 0.900391
+2 27 25 0.481934 0.869629 0.939941
+2 27 26 0.484375 0.850586 0.975586
+2 27 27 0.484863 0.82666 1
+2 27 28 0.48291 0.797852 1
+2 27 29 0.478516 0.764648 1
+2 27 30 0.472656 0.729492 1
+2 27 31 0.466064 0.693848 1
+2 28 0 0.399414 0.891113 0.323242
+2 28 1 0.399414 0.891113 0.323242
+2 28 2 0.399414 0.891113 0.323242
+2 28 3 0.399414 0.891113 0.323242
+2 28 4 0.399414 0.891113 0.323242
+2 28 5 0.399414 0.891113 0.323242
+2 28 6 0.399414 0.891113 0.323242
+2 28 7 0.399414 0.891113 0.323242
+2 28 8 0.399414 0.891113 0.323242
+2 28 9 0.399414 0.891113 0.323242
+2 28 10 0.399414 0.891113 0.323242
+2 28 11 0.399658 0.891113 0.323242
+2 28 12 0.399902 0.891113 0.323242
+2 28 13 0.400391 0.891602 0.323242
+2 28 14 0.400879 0.891602 0.323486
+2 28 15 0.403076 0.893066 0.338623
+2 28 16 0.408936 0.898438 0.394531
+2 28 17 0.416748 0.905273 0.456787
+2 28 18 0.42627 0.911621 0.522949
+2 28 19 0.436523 0.917969 0.589844
+2 28 20 0.446777 0.921875 0.655273
+2 28 21 0.457031 0.92334 0.717285
+2 28 22 0.466064 0.921875 0.775391
+2 28 23 0.473633 0.916504 0.826172
+2 28 24 0.479492 0.908691 0.870605
+2 28 25 0.484375 0.896484 0.912598
+2 28 26 0.487793 0.880371 0.951172
+2 28 27 0.489258 0.858887 0.985352
+2 28 28 0.48877 0.833008 1
+2 28 29 0.48584 0.802246 1
+2 28 30 0.481201 0.768555 1
+2 28 31 0.475098 0.733398 1
+2 29 0 0.403564 0.900879 0.32666
+2 29 1 0.403564 0.900879 0.32666
+2 29 2 0.403564 0.900879 0.32666
+2 29 3 0.403564 0.900879 0.32666
+2 29 4 0.403564 0.900879 0.32666
+2 29 5 0.403564 0.900879 0.32666
+2 29 6 0.403564 0.900879 0.32666
+2 29 7 0.403564 0.900879 0.32666
+2 29 8 0.403809 0.900879 0.32666
+2 29 9 0.403809 0.900879 0.32666
+2 29 10 0.403809 0.900879 0.32666
+2 29 11 0.403809 0.900879 0.32666
+2 29 12 0.404053 0.900879 0.32666
+2 29 13 0.404541 0.900879 0.32666
+2 29 14 0.405029 0.901367 0.326904
+2 29 15 0.405762 0.901367 0.326904
+2 29 16 0.411133 0.90625 0.376221
+2 29 17 0.417969 0.912598 0.43457
+2 29 18 0.426758 0.919434 0.496826
+2 29 19 0.436279 0.92627 0.560547
+2 29 20 0.446045 0.931641 0.622559
+2 29 21 0.455811 0.93457 0.683105
+2 29 22 0.464844 0.935059 0.740234
+2 29 23 0.4729 0.932617 0.791016
+2 29 24 0.479248 0.927734 0.836426
+2 29 25 0.484863 0.918945 0.880371
+2 29 26 0.489258 0.905762 0.921875
+2 29 27 0.491943 0.887695 0.959473
+2 29 28 0.492432 0.864746 0.991699
+2 29 29 0.491455 0.837402 1
+2 29 30 0.488281 0.806641 1
+2 29 31 0.483398 0.772461 1
+2 30 0 0.406494 0.907227 0.328857
+2 30 1 0.406494 0.907227 0.328857
+2 30 2 0.406494 0.907227 0.328857
+2 30 3 0.406494 0.907227 0.328857
+2 30 4 0.406494 0.907227 0.328857
+2 30 5 0.406494 0.907227 0.328857
+2 30 6 0.406494 0.907227 0.328857
+2 30 7 0.406494 0.907227 0.328857
+2 30 8 0.406494 0.907227 0.328857
+2 30 9 0.406494 0.907227 0.328857
+2 30 10 0.406494 0.907227 0.328857
+2 30 11 0.406738 0.907227 0.328857
+2 30 12 0.406982 0.907227 0.329102
+2 30 13 0.407227 0.907227 0.329102
+2 30 14 0.407715 0.907227 0.329102
+2 30 15 0.408447 0.907715 0.329102
+2 30 16 0.411621 0.910645 0.35791
+2 30 17 0.417969 0.916504 0.412354
+2 30 18 0.425781 0.92334 0.470703
+2 30 19 0.43457 0.930176 0.530273
+2 30 20 0.443848 0.936523 0.589355
+2 30 21 0.453125 0.940918 0.647461
+2 30 22 0.462158 0.943359 0.702637
+2 30 23 0.470215 0.943359 0.75293
+2 30 24 0.477051 0.940918 0.798828
+2 30 25 0.483154 0.935059 0.843262
+2 30 26 0.488525 0.925293 0.886719
+2 30 27 0.492432 0.911133 0.927734
+2 30 28 0.494629 0.892578 0.964844
+2 30 29 0.495117 0.869141 0.99707
+2 30 30 0.493652 0.841309 1
+2 30 31 0.490234 0.80957 1
+2 31 0 0.408691 0.911621 0.330566
+2 31 1 0.408691 0.911621 0.330566
+2 31 2 0.408691 0.911621 0.330566
+2 31 3 0.408691 0.911621 0.330566
+2 31 4 0.408691 0.911621 0.330566
+2 31 5 0.408691 0.911621 0.330566
+2 31 6 0.408691 0.911621 0.330566
+2 31 7 0.408691 0.911621 0.330566
+2 31 8 0.408691 0.911621 0.330566
+2 31 9 0.408691 0.911621 0.330566
+2 31 10 0.408691 0.911621 0.330566
+2 31 11 0.408691 0.912109 0.330811
+2 31 12 0.408936 0.912109 0.330811
+2 31 13 0.40918 0.912109 0.330811
+2 31 14 0.409668 0.912109 0.330811
+2 31 15 0.410156 0.912109 0.330811
+2 31 16 0.411865 0.913574 0.340576
+2 31 17 0.417236 0.918945 0.390625
+2 31 18 0.424072 0.925293 0.444824
+2 31 19 0.432129 0.931641 0.500488
+2 31 20 0.44043 0.937988 0.556152
+2 31 21 0.449219 0.943359 0.61084
+2 31 22 0.457764 0.947266 0.664062
+2 31 23 0.46582 0.949219 0.712891
+2 31 24 0.4729 0.94873 0.757812
+2 31 25 0.479736 0.946289 0.803223
+2 31 26 0.48584 0.94043 0.848145
+2 31 27 0.490967 0.930176 0.891602
+2 31 28 0.494873 0.916016 0.932129
+2 31 29 0.496826 0.896484 0.969238
+2 31 30 0.49707 0.872559 1
+2 31 31 0.495361 0.844238 1
+3 0 0 0.0308533 0.0255737 0.0167236
+3 0 1 0.0304871 0.0251312 0.0209198
+3 0 2 0.0273285 0.022583 0.0234528
+3 0 3 0.0257568 0.0215912 0.0268555
+3 0 4 0.0298462 0.0249023 0.0378113
+3 0 5 0.0335083 0.027771 0.0512695
+3 0 6 0.0367126 0.0301208 0.0662842
+3 0 7 0.0408325 0.0330811 0.0841675
+3 0 8 0.0471497 0.0377502 0.106873
+3 0 9 0.0566406 0.0448914 0.136353
+3 0 10 0.0701904 0.0552979 0.174927
+3 0 11 0.0884399 0.069397 0.224487
+3 0 12 0.110229 0.0863037 0.282959
+3 0 13 0.135254 0.105774 0.348877
+3 0 14 0.162964 0.127319 0.421875
+3 0 15 0.192627 0.150513 0.499512
+3 0 16 0.223511 0.174561 0.580078
+3 0 17 0.253174 0.197754 0.658203
+3 0 18 0.280762 0.219116 0.729492
+3 0 19 0.304688 0.237915 0.79248
+3 0 20 0.318115 0.248413 0.827148
+3 0 21 0.320801 0.250488 0.833984
+3 0 22 0.323486 0.252441 0.841309
+3 0 23 0.326416 0.254639 0.848633
+3 0 24 0.329102 0.256836 0.855957
+3 0 25 0.332275 0.259277 0.864258
+3 0 26 0.335693 0.261963 0.873535
+3 0 27 0.3396 0.265137 0.883301
+3 0 28 0.343994 0.268555 0.894531
+3 0 29 0.348633 0.271973 0.906738
+3 0 30 0.353271 0.275879 0.919434
+3 0 31 0.358398 0.279785 0.932129
+3 1 0 0.0288849 0.0252991 0.0158997
+3 1 1 0.0298615 0.0259857 0.0203705
+3 1 2 0.0287476 0.0248871 0.0244904
+3 1 3 0.0259399 0.0226593 0.026947
+3 1 4 0.0299377 0.026001 0.0378113
+3 1 5 0.0335999 0.0288544 0.0512695
+3 1 6 0.0368042 0.0311279 0.0662842
+3 1 7 0.0408936 0.0339355 0.0841675
+3 1 8 0.0472107 0.0384216 0.106873
+3 1 9 0.0566711 0.0453796 0.136353
+3 1 10 0.0702515 0.0556641 0.174927
+3 1 11 0.0884399 0.0696411 0.224487
+3 1 12 0.110291 0.0865479 0.282959
+3 1 13 0.135254 0.105896 0.348877
+3 1 14 0.162964 0.127441 0.421875
+3 1 15 0.192627 0.150513 0.499512
+3 1 16 0.223511 0.174561 0.580078
+3 1 17 0.253174 0.197754 0.658203
+3 1 18 0.280762 0.219116 0.729492
+3 1 19 0.304688 0.237915 0.79248
+3 1 20 0.318115 0.248413 0.827148
+3 1 21 0.320801 0.250488 0.833984
+3 1 22 0.323486 0.252441 0.841309
+3 1 23 0.326416 0.254639 0.848633
+3 1 24 0.329102 0.256836 0.855957
+3 1 25 0.332275 0.259277 0.864258
+3 1 26 0.335693 0.261963 0.873535
+3 1 27 0.3396 0.265137 0.883301
+3 1 28 0.343994 0.268555 0.894531
+3 1 29 0.348633 0.271973 0.906738
+3 1 30 0.353271 0.275879 0.919434
+3 1 31 0.358398 0.279785 0.932129
+3 2 0 0.0254364 0.0239563 0.0148697
+3 2 1 0.0263672 0.024765 0.0183258
+3 2 2 0.0290375 0.0270691 0.0244598
+3 2 3 0.0263824 0.0245667 0.0272522
+3 2 4 0.0301514 0.0278015 0.0378723
+3 2 5 0.0337524 0.0306549 0.051239
+3 2 6 0.0369873 0.0328064 0.0662842
+3 2 7 0.0410461 0.0353699 0.0841675
+3 2 8 0.0473022 0.0395508 0.106873
+3 2 9 0.0567322 0.0462646 0.136353
+3 2 10 0.0703125 0.0563049 0.174927
+3 2 11 0.088501 0.0701294 0.224487
+3 2 12 0.110291 0.086853 0.282959
+3 2 13 0.135254 0.10614 0.348877
+3 2 14 0.162964 0.127563 0.421875
+3 2 15 0.192627 0.150635 0.499512
+3 2 16 0.223511 0.174683 0.580078
+3 2 17 0.253174 0.197876 0.658203
+3 2 18 0.280762 0.219238 0.729492
+3 2 19 0.304688 0.238037 0.79248
+3 2 20 0.318115 0.248413 0.827148
+3 2 21 0.320801 0.250488 0.833984
+3 2 22 0.323486 0.252686 0.841309
+3 2 23 0.326416 0.254639 0.848633
+3 2 24 0.329102 0.256836 0.855957
+3 2 25 0.332275 0.259277 0.864258
+3 2 26 0.335693 0.261963 0.873535
+3 2 27 0.3396 0.265137 0.883301
+3 2 28 0.343994 0.268555 0.894531
+3 2 29 0.348633 0.271973 0.906738
+3 2 30 0.353271 0.275879 0.919434
+3 2 31 0.358398 0.279785 0.932129
+3 3 0 0.0253296 0.0261688 0.0153351
+3 3 1 0.0254364 0.0261993 0.0180359
+3 3 2 0.0259399 0.0266266 0.0219574
+3 3 3 0.0275421 0.0280609 0.0281525
+3 3 4 0.0306702 0.0308685 0.038147
+3 3 5 0.0340881 0.0335693 0.051239
+3 3 6 0.037262 0.0355835 0.0662842
+3 3 7 0.0412903 0.0378113 0.0842285
+3 3 8 0.0475159 0.0415344 0.106934
+3 3 9 0.0568848 0.0477905 0.136353
+3 3 10 0.0703735 0.0574646 0.174927
+3 3 11 0.088562 0.0709839 0.224487
+3 3 12 0.110352 0.0875244 0.282959
+3 3 13 0.135254 0.106628 0.348877
+3 3 14 0.162964 0.12793 0.421875
+3 3 15 0.192627 0.150879 0.499512
+3 3 16 0.223511 0.174927 0.580078
+3 3 17 0.253174 0.197998 0.658203
+3 3 18 0.280762 0.21936 0.729492
+3 3 19 0.304688 0.238159 0.79248
+3 3 20 0.318115 0.248535 0.827148
+3 3 21 0.320801 0.250488 0.833984
+3 3 22 0.323486 0.252686 0.841309
+3 3 23 0.326416 0.254883 0.848633
+3 3 24 0.329102 0.25708 0.855957
+3 3 25 0.332275 0.259521 0.864258
+3 3 26 0.335693 0.262207 0.873535
+3 3 27 0.3396 0.265137 0.883301
+3 3 28 0.343994 0.268555 0.894531
+3 3 29 0.348633 0.271973 0.906738
+3 3 30 0.353271 0.275879 0.919434
+3 3 31 0.358398 0.279785 0.932129
+3 4 0 0.0292511 0.0341187 0.0174866
+3 4 1 0.0291748 0.0339355 0.0203552
+3 4 2 0.0292511 0.0338745 0.0243073
+3 4 3 0.0299835 0.0344238 0.0300751
+3 4 4 0.0319214 0.0360718 0.0389404
+3 4 5 0.034729 0.038269 0.0513611
+3 4 6 0.0378113 0.0400391 0.0663452
+3 4 7 0.041748 0.0418091 0.0842285
+3 4 8 0.0478516 0.0449219 0.106934
+3 4 9 0.0571289 0.0504761 0.136353
+3 4 10 0.0705566 0.0595398 0.174927
+3 4 11 0.0886841 0.0725708 0.224487
+3 4 12 0.110413 0.0886841 0.282959
+3 4 13 0.135376 0.107483 0.348877
+3 4 14 0.163086 0.12854 0.421875
+3 4 15 0.192749 0.151367 0.499512
+3 4 16 0.223511 0.175171 0.580566
+3 4 17 0.253418 0.198242 0.658203
+3 4 18 0.280762 0.219604 0.729492
+3 4 19 0.304688 0.238281 0.79248
+3 4 20 0.318115 0.248657 0.827148
+3 4 21 0.320801 0.250488 0.833984
+3 4 22 0.323486 0.252686 0.841309
+3 4 23 0.326416 0.254883 0.848633
+3 4 24 0.329102 0.25708 0.856445
+3 4 25 0.332275 0.259521 0.864258
+3 4 26 0.335693 0.262207 0.873535
+3 4 27 0.3396 0.265137 0.883301
+3 4 28 0.343994 0.268555 0.894531
+3 4 29 0.348633 0.272217 0.906738
+3 4 30 0.353271 0.275879 0.919434
+3 4 31 0.358398 0.279785 0.932129
+3 5 0 0.0326843 0.0439453 0.019104
+3 5 1 0.0327148 0.0438538 0.0222168
+3 5 2 0.0328064 0.0437622 0.0264282
+3 5 3 0.0331726 0.0438538 0.0322266
+3 5 4 0.0341492 0.0444031 0.0403442
+3 5 5 0.0361023 0.0455933 0.0517883
+3 5 6 0.0388184 0.046875 0.0664062
+3 5 7 0.0426331 0.0481873 0.0842896
+3 5 8 0.0485535 0.0505066 0.106995
+3 5 9 0.0576172 0.0551147 0.136353
+3 5 10 0.0709229 0.0632324 0.174927
+3 5 11 0.0889282 0.0754395 0.224487
+3 5 12 0.110657 0.0908813 0.282959
+3 5 13 0.135498 0.109131 0.348877
+3 5 14 0.163086 0.129761 0.421875
+3 5 15 0.192749 0.152344 0.499756
+3 5 16 0.223633 0.175903 0.580566
+3 5 17 0.253418 0.198853 0.658203
+3 5 18 0.280762 0.219971 0.729492
+3 5 19 0.304932 0.238647 0.79248
+3 5 20 0.318115 0.248901 0.827637
+3 5 21 0.320801 0.250732 0.834473
+3 5 22 0.323486 0.25293 0.841309
+3 5 23 0.326416 0.255127 0.848633
+3 5 24 0.329102 0.25708 0.856445
+3 5 25 0.332275 0.259521 0.864258
+3 5 26 0.335693 0.262207 0.873535
+3 5 27 0.3396 0.265137 0.883301
+3 5 28 0.343994 0.268555 0.894531
+3 5 29 0.348633 0.272217 0.906738
+3 5 30 0.353271 0.275879 0.919434
+3 5 31 0.358398 0.279785 0.932129
+3 6 0 0.0357666 0.0554199 0.0206604
+3 6 1 0.0358582 0.0554199 0.0232849
+3 6 2 0.0360413 0.0554199 0.0275879
+3 6 3 0.036377 0.055481 0.0334473
+3 6 4 0.0370789 0.0556641 0.0414429
+3 6 5 0.0383911 0.0560913 0.0523071
+3 6 6 0.0406189 0.0567017 0.0664062
+3 6 7 0.0441589 0.0575256 0.0843506
+3 6 8 0.0498047 0.0590515 0.107117
+3 6 9 0.0585632 0.062561 0.136353
+3 6 10 0.0715332 0.069458 0.174805
+3 6 11 0.0894165 0.0805054 0.224365
+3 6 12 0.110962 0.0948486 0.282959
+3 6 13 0.135742 0.112122 0.348877
+3 6 14 0.16333 0.13208 0.421875
+3 6 15 0.192871 0.154053 0.499756
+3 6 16 0.223755 0.177246 0.580566
+3 6 17 0.253418 0.199829 0.658203
+3 6 18 0.280762 0.220703 0.729492
+3 6 19 0.304932 0.239258 0.79248
+3 6 20 0.318359 0.24939 0.827637
+3 6 21 0.320801 0.251221 0.834473
+3 6 22 0.323486 0.253174 0.841309
+3 6 23 0.326416 0.255371 0.849121
+3 6 24 0.329102 0.257324 0.856445
+3 6 25 0.332275 0.259766 0.864258
+3 6 26 0.335693 0.262451 0.873535
+3 6 27 0.3396 0.265381 0.883301
+3 6 28 0.343994 0.268799 0.894531
+3 6 29 0.348633 0.272217 0.906738
+3 6 30 0.353271 0.275879 0.919434
+3 6 31 0.358398 0.279785 0.932129
+3 7 0 0.0394897 0.0692139 0.0254974
+3 7 1 0.0395508 0.0692749 0.0255127
+3 7 2 0.0396729 0.0692749 0.0281372
+3 7 3 0.0400085 0.069397 0.033844
+3 7 4 0.0406189 0.069519 0.041687
+3 7 5 0.0417175 0.0698242 0.0523376
+3 7 6 0.0436401 0.0701904 0.0662842
+3 7 7 0.0468445 0.0706787 0.0842896
+3 7 8 0.052063 0.0715942 0.107178
+3 7 9 0.0602722 0.0739136 0.136475
+3 7 10 0.0728149 0.0795288 0.174805
+3 7 11 0.090332 0.0891113 0.224365
+3 7 12 0.111694 0.101868 0.282715
+3 7 13 0.13623 0.117676 0.348877
+3 7 14 0.163696 0.136353 0.421875
+3 7 15 0.193237 0.157227 0.499756
+3 7 16 0.223999 0.179688 0.580566
+3 7 17 0.253662 0.20166 0.658203
+3 7 18 0.281006 0.222168 0.729492
+3 7 19 0.304932 0.240356 0.79248
+3 7 20 0.318359 0.250488 0.827637
+3 7 21 0.321045 0.251953 0.834473
+3 7 22 0.32373 0.253906 0.841797
+3 7 23 0.326416 0.255859 0.849121
+3 7 24 0.329346 0.257812 0.856445
+3 7 25 0.332275 0.260254 0.864258
+3 7 26 0.335693 0.262695 0.873535
+3 7 27 0.3396 0.265625 0.883301
+3 7 28 0.343994 0.269043 0.89502
+3 7 29 0.348633 0.272461 0.906738
+3 7 30 0.353271 0.276123 0.919434
+3 7 31 0.358398 0.280029 0.932129
+3 8 0 0.045166 0.0870361 0.0318298
+3 8 1 0.0451965 0.0870361 0.0318298
+3 8 2 0.0452576 0.0870972 0.0318604
+3 8 3 0.0454407 0.0871582 0.0343323
+3 8 4 0.045929 0.0872803 0.0418091
+3 8 5 0.0468445 0.0875244 0.0521545
+3 8 6 0.0484619 0.0878296 0.0658569
+3 8 7 0.0512695 0.0883179 0.0838623
+3 8 8 0.0559387 0.0889282 0.107056
+3 8 9 0.0634155 0.0904541 0.136597
+3 8 10 0.0751953 0.0947876 0.174683
+3 8 11 0.0921021 0.102905 0.224243
+3 8 12 0.112976 0.113708 0.282715
+3 8 13 0.137329 0.127441 0.349121
+3 8 14 0.164429 0.144165 0.421875
+3 8 15 0.193848 0.16333 0.499756
+3 8 16 0.224365 0.184448 0.580566
+3 8 17 0.253906 0.205322 0.658203
+3 8 18 0.28125 0.225098 0.72998
+3 8 19 0.305176 0.242676 0.79248
+3 8 20 0.318604 0.252197 0.828125
+3 8 21 0.321045 0.253418 0.834473
+3 8 22 0.32373 0.255127 0.841797
+3 8 23 0.32666 0.256836 0.849121
+3 8 24 0.329346 0.258789 0.856445
+3 8 25 0.33252 0.260986 0.864746
+3 8 26 0.335938 0.263428 0.873535
+3 8 27 0.339844 0.266113 0.883789
+3 8 28 0.343994 0.269531 0.89502
+3 8 29 0.348633 0.272949 0.906738
+3 8 30 0.353516 0.276611 0.919434
+3 8 31 0.358398 0.280273 0.932129
+3 9 0 0.0536194 0.109985 0.0400391
+3 9 1 0.0536499 0.109985 0.0400696
+3 9 2 0.0536804 0.109985 0.0400696
+3 9 3 0.0537415 0.110046 0.0401001
+3 9 4 0.0539856 0.110107 0.0425415
+3 9 5 0.054657 0.110229 0.0523682
+3 9 6 0.0559082 0.110535 0.0656128
+3 9 7 0.0581665 0.110962 0.083374
+3 9 8 0.0621948 0.111633 0.10675
+3 9 9 0.0688477 0.112976 0.136719
+3 9 10 0.0794678 0.116333 0.174927
+3 9 11 0.0953369 0.123169 0.224121
+3 9 12 0.115479 0.13208 0.282715
+3 9 13 0.13916 0.143433 0.349121
+3 9 14 0.165894 0.157471 0.422119
+3 9 15 0.194824 0.174072 0.5
+3 9 16 0.22522 0.192871 0.580566
+3 9 17 0.254639 0.212158 0.658691
+3 9 18 0.281738 0.230469 0.72998
+3 9 19 0.305664 0.24707 0.792969
+3 9 20 0.319092 0.255859 0.828613
+3 9 21 0.321533 0.256348 0.834961
+3 9 22 0.324219 0.257324 0.842285
+3 9 23 0.326904 0.258789 0.849609
+3 9 24 0.32959 0.260498 0.856934
+3 9 25 0.332764 0.262451 0.864746
+3 9 26 0.336182 0.264648 0.874023
+3 9 27 0.339844 0.267334 0.883789
+3 9 28 0.344238 0.270264 0.89502
+3 9 29 0.348877 0.273682 0.907227
+3 9 30 0.353516 0.2771 0.919434
+3 9 31 0.358398 0.280762 0.932617
+3 10 0 0.0656738 0.139771 0.0508118
+3 10 1 0.0656738 0.139771 0.0508118
+3 10 2 0.0657349 0.139771 0.0508118
+3 10 3 0.0657959 0.139771 0.0508118
+3 10 4 0.0658569 0.139893 0.0508423
+3 10 5 0.0661621 0.139893 0.0539856
+3 10 6 0.0670776 0.140015 0.0667114
+3 10 7 0.0687256 0.140259 0.0840454
+3 10 8 0.0718994 0.140747 0.107239
+3 10 9 0.0775146 0.141968 0.137451
+3 10 10 0.086731 0.144775 0.175659
+3 10 11 0.100952 0.150391 0.224365
+3 10 12 0.119751 0.157715 0.282715
+3 10 13 0.142456 0.166748 0.349121
+3 10 14 0.168457 0.177856 0.422363
+3 10 15 0.196777 0.191284 0.5
+3 10 16 0.226685 0.207031 0.581055
+3 10 17 0.255859 0.223511 0.658691
+3 10 18 0.282715 0.239746 0.730469
+3 10 19 0.306396 0.254639 0.793457
+3 10 20 0.320068 0.262207 0.829102
+3 10 21 0.322266 0.261475 0.835938
+3 10 22 0.324707 0.261475 0.842773
+3 10 23 0.327393 0.262207 0.850098
+3 10 24 0.330078 0.263428 0.857422
+3 10 25 0.333008 0.264893 0.865234
+3 10 26 0.336426 0.266846 0.874023
+3 10 27 0.340088 0.269287 0.884277
+3 10 28 0.344482 0.271973 0.895508
+3 10 29 0.348877 0.275146 0.907227
+3 10 30 0.35376 0.27832 0.919922
+3 10 31 0.358643 0.281982 0.932617
+3 11 0 0.0822144 0.178589 0.0648193
+3 11 1 0.0822144 0.178589 0.0648193
+3 11 2 0.0822144 0.178589 0.0648193
+3 11 3 0.0822754 0.178589 0.0648804
+3 11 4 0.0823364 0.178589 0.0648804
+3 11 5 0.0825195 0.178711 0.0648804
+3 11 6 0.0829468 0.178833 0.0697632
+3 11 7 0.0841675 0.178833 0.086792
+3 11 8 0.0864258 0.178955 0.109802
+3 11 9 0.0907593 0.179565 0.140015
+3 11 10 0.0982666 0.181519 0.177979
+3 11 11 0.110107 0.185547 0.225464
+3 11 12 0.126831 0.191284 0.282959
+3 11 13 0.147949 0.198242 0.349365
+3 11 14 0.172729 0.206543 0.422607
+3 11 15 0.200195 0.216675 0.500488
+3 11 16 0.22937 0.22876 0.581543
+3 11 17 0.257812 0.241699 0.659668
+3 11 18 0.284424 0.254883 0.730957
+3 11 19 0.307861 0.26709 0.793945
+3 11 20 0.321533 0.272705 0.831055
+3 11 21 0.323486 0.27002 0.836914
+3 11 22 0.325684 0.268555 0.84375
+3 11 23 0.328125 0.268311 0.851074
+3 11 24 0.330811 0.268555 0.858398
+3 11 25 0.33374 0.269531 0.866211
+3 11 26 0.336914 0.270752 0.875
+3 11 27 0.340576 0.272461 0.884766
+3 11 28 0.344971 0.274902 0.895996
+3 11 29 0.349365 0.277588 0.907715
+3 11 30 0.354004 0.280518 0.92041
+3 11 31 0.358887 0.283691 0.933105
+3 12 0 0.102722 0.225708 0.0819092
+3 12 1 0.102722 0.225708 0.0819092
+3 12 2 0.102722 0.225708 0.0819092
+3 12 3 0.102783 0.225708 0.0819092
+3 12 4 0.102844 0.225708 0.0819092
+3 12 5 0.102905 0.22583 0.0819702
+3 12 6 0.103149 0.225952 0.0819702
+3 12 7 0.103821 0.226074 0.0905151
+3 12 8 0.105591 0.226196 0.113342
+3 12 9 0.108887 0.226562 0.143433
+3 12 10 0.114563 0.227417 0.181152
+3 12 11 0.12384 0.229614 0.227417
+3 12 12 0.137817 0.233398 0.283936
+3 12 13 0.156616 0.238647 0.349609
+3 12 14 0.179565 0.244629 0.422852
+3 12 15 0.205566 0.251465 0.500977
+3 12 16 0.233643 0.259766 0.58252
+3 12 17 0.261475 0.268555 0.660645
+3 12 18 0.287109 0.277588 0.731934
+3 12 19 0.310059 0.286621 0.794922
+3 12 20 0.323975 0.289795 0.833496
+3 12 21 0.325439 0.283936 0.839355
+3 12 22 0.327637 0.280273 0.846191
+3 12 23 0.329834 0.278076 0.852539
+3 12 24 0.332031 0.2771 0.859863
+3 12 25 0.334961 0.276855 0.867676
+3 12 26 0.337891 0.2771 0.875977
+3 12 27 0.341553 0.278076 0.885742
+3 12 28 0.345703 0.279785 0.896973
+3 12 29 0.350098 0.281738 0.908691
+3 12 30 0.354492 0.28418 0.920898
+3 12 31 0.359375 0.286865 0.933594
+3 13 0 0.126343 0.279297 0.101318
+3 13 1 0.126343 0.279297 0.101318
+3 13 2 0.126343 0.279297 0.101318
+3 13 3 0.126343 0.279297 0.101379
+3 13 4 0.126343 0.279297 0.101379
+3 13 5 0.126465 0.279297 0.101379
+3 13 6 0.126587 0.279541 0.101379
+3 13 7 0.126953 0.279541 0.10144
+3 13 8 0.128052 0.279785 0.116638
+3 13 9 0.130615 0.280273 0.146362
+3 13 10 0.13501 0.280762 0.183838
+3 13 11 0.142212 0.281982 0.229614
+3 13 12 0.153442 0.28418 0.285156
+3 13 13 0.169434 0.287598 0.349854
+3 13 14 0.189941 0.291748 0.423096
+3 13 15 0.213867 0.295898 0.501465
+3 13 16 0.240356 0.300537 0.583008
+3 13 17 0.266846 0.305176 0.661621
+3 13 18 0.291748 0.310059 0.733398
+3 13 19 0.313965 0.314697 0.796387
+3 13 20 0.328125 0.314697 0.837402
+3 13 21 0.328857 0.304688 0.843262
+3 13 22 0.330322 0.297852 0.849121
+3 13 23 0.332275 0.293457 0.855469
+3 13 24 0.334229 0.290527 0.862305
+3 13 25 0.33667 0.288574 0.869629
+3 13 26 0.3396 0.287354 0.878418
+3 13 27 0.343018 0.286865 0.887695
+3 13 28 0.346924 0.287354 0.898438
+3 13 29 0.351074 0.28833 0.910156
+3 13 30 0.355469 0.290039 0.921875
+3 13 31 0.360107 0.291992 0.93457
+3 14 0 0.152832 0.339111 0.122986
+3 14 1 0.152832 0.339111 0.122986
+3 14 2 0.152832 0.339111 0.122986
+3 14 3 0.152832 0.339111 0.122986
+3 14 4 0.152832 0.339111 0.122986
+3 14 5 0.152954 0.339111 0.123047
+3 14 6 0.152954 0.339111 0.123047
+3 14 7 0.153198 0.339355 0.123108
+3 14 8 0.153687 0.3396 0.123169
+3 14 9 0.155518 0.339844 0.148926
+3 14 10 0.158936 0.340576 0.185669
+3 14 11 0.164673 0.341553 0.230957
+3 14 12 0.173584 0.343018 0.285889
+3 14 13 0.186768 0.344971 0.349854
+3 14 14 0.204346 0.347412 0.422607
+3 14 15 0.22583 0.349609 0.501465
+3 14 16 0.250244 0.351318 0.583984
+3 14 17 0.274902 0.352051 0.663086
+3 14 18 0.29834 0.352539 0.735352
+3 14 19 0.31958 0.353027 0.79834
+3 14 20 0.334473 0.349854 0.843262
+3 14 21 0.334229 0.334717 0.848633
+3 14 22 0.334961 0.32373 0.854492
+3 14 23 0.336182 0.315918 0.860352
+3 14 24 0.337891 0.310303 0.866699
+3 14 25 0.339844 0.305908 0.873535
+3 14 26 0.342285 0.302734 0.881836
+3 14 27 0.345215 0.300293 0.890625
+3 14 28 0.348877 0.299072 0.900879
+3 14 29 0.352783 0.298584 0.912109
+3 14 30 0.356934 0.298828 0.923828
+3 14 31 0.361572 0.299561 0.936523
+3 15 0 0.181396 0.40332 0.14624
+3 15 1 0.181396 0.40332 0.14624
+3 15 2 0.181396 0.40332 0.14624
+3 15 3 0.181396 0.40332 0.14624
+3 15 4 0.181396 0.40332 0.14624
+3 15 5 0.181396 0.40332 0.14624
+3 15 6 0.181519 0.40332 0.146362
+3 15 7 0.181641 0.40332 0.146362
+3 15 8 0.182007 0.403564 0.146362
+3 15 9 0.182739 0.403809 0.151367
+3 15 10 0.185425 0.404541 0.186768
+3 15 11 0.189941 0.405518 0.231079
+3 15 12 0.197266 0.406982 0.285156
+3 15 13 0.208008 0.408691 0.348633
+3 15 14 0.222778 0.4104 0.421143
+3 15 15 0.241577 0.411133 0.500488
+3 15 16 0.263428 0.410889 0.583496
+3 15 17 0.286133 0.408691 0.663574
+3 15 18 0.307861 0.405029 0.736816
+3 15 19 0.327637 0.401123 0.800781
+3 15 20 0.343262 0.395508 0.850586
+3 15 21 0.342285 0.374756 0.856445
+3 15 22 0.342041 0.358887 0.862305
+3 15 23 0.342285 0.346924 0.867676
+3 15 24 0.343262 0.338135 0.873535
+3 15 25 0.344727 0.330566 0.879883
+3 15 26 0.346436 0.324463 0.887207
+3 15 27 0.348877 0.31958 0.895508
+3 15 28 0.352051 0.316162 0.905273
+3 15 29 0.355469 0.313477 0.916016
+3 15 30 0.359375 0.312012 0.927246
+3 15 31 0.363525 0.311035 0.938965
+3 16 0 0.211426 0.470703 0.170776
+3 16 1 0.211426 0.470703 0.170776
+3 16 2 0.211426 0.470703 0.170776
+3 16 3 0.211426 0.470703 0.170776
+3 16 4 0.211426 0.470703 0.170776
+3 16 5 0.211548 0.470703 0.170776
+3 16 6 0.211548 0.470947 0.170776
+3 16 7 0.21167 0.470947 0.170776
+3 16 8 0.211914 0.470947 0.170898
+3 16 9 0.212402 0.471191 0.170898
+3 16 10 0.213867 0.47168 0.187622
+3 16 11 0.217407 0.4729 0.230103
+3 16 12 0.223267 0.474365 0.282715
+3 16 13 0.232178 0.476074 0.345215
+3 16 14 0.244629 0.477783 0.417236
+3 16 15 0.260986 0.478516 0.496826
+3 16 16 0.280273 0.477295 0.580566
+3 16 17 0.300781 0.473145 0.662598
+3 16 18 0.320557 0.466553 0.737305
+3 16 19 0.338623 0.458984 0.802246
+3 16 20 0.354004 0.450439 0.855957
+3 16 21 0.353271 0.425537 0.867188
+3 16 22 0.352051 0.404297 0.873535
+3 16 23 0.351562 0.387939 0.878906
+3 16 24 0.351318 0.375 0.883789
+3 16 25 0.351807 0.36377 0.88916
+3 16 26 0.352783 0.354248 0.895508
+3 16 27 0.354492 0.345947 0.902832
+3 16 28 0.356689 0.3396 0.912109
+3 16 29 0.359619 0.334229 0.921875
+3 16 30 0.362793 0.330078 0.932129
+3 16 31 0.366455 0.327148 0.942871
+3 17 0 0.241089 0.537109 0.194824
+3 17 1 0.241089 0.537109 0.194824
+3 17 2 0.241089 0.537109 0.194824
+3 17 3 0.241089 0.537109 0.194824
+3 17 4 0.241089 0.537109 0.194824
+3 17 5 0.241211 0.537109 0.194824
+3 17 6 0.241211 0.537598 0.194946
+3 17 7 0.241333 0.537598 0.194946
+3 17 8 0.241455 0.537598 0.194946
+3 17 9 0.241821 0.537598 0.194946
+3 17 10 0.242432 0.538086 0.195068
+3 17 11 0.245117 0.539062 0.228516
+3 17 12 0.249878 0.540527 0.279053
+3 17 13 0.257324 0.542969 0.339844
+3 17 14 0.267822 0.544922 0.410645
+3 17 15 0.281982 0.546387 0.489746
+3 17 16 0.299072 0.544922 0.574219
+3 17 17 0.317383 0.540527 0.657715
+3 17 18 0.335449 0.532715 0.734863
+3 17 19 0.352051 0.522461 0.802246
+3 17 20 0.365967 0.510742 0.857422
+3 17 21 0.367432 0.484863 0.878418
+3 17 22 0.365723 0.459229 0.887695
+3 17 23 0.364014 0.438232 0.893555
+3 17 24 0.362793 0.420898 0.898438
+3 17 25 0.362305 0.405518 0.902832
+3 17 26 0.362061 0.391846 0.908203
+3 17 27 0.362549 0.379639 0.914551
+3 17 28 0.36377 0.369629 0.921875
+3 17 29 0.365723 0.361084 0.930176
+3 17 30 0.36792 0.354004 0.939453
+3 17 31 0.37085 0.348145 0.949219
+3 18 0 0.268799 0.599121 0.217407
+3 18 1 0.268799 0.599121 0.217407
+3 18 2 0.268799 0.599609 0.217407
+3 18 3 0.268799 0.599609 0.217407
+3 18 4 0.268799 0.599609 0.217407
+3 18 5 0.268799 0.599609 0.217407
+3 18 6 0.269043 0.599609 0.217407
+3 18 7 0.269043 0.599609 0.217407
+3 18 8 0.269043 0.599609 0.217407
+3 18 9 0.269287 0.599609 0.217529
+3 18 10 0.269775 0.599609 0.217529
+3 18 11 0.270996 0.600586 0.226318
+3 18 12 0.275146 0.602051 0.27417
+3 18 13 0.28125 0.604492 0.33252
+3 18 14 0.290527 0.607422 0.401123
+3 18 15 0.302734 0.609863 0.479004
+3 18 16 0.317871 0.609863 0.563965
+3 18 17 0.334717 0.606445 0.648926
+3 18 18 0.351562 0.598633 0.728516
+3 18 19 0.366699 0.587891 0.798828
+3 18 20 0.379395 0.57373 0.856445
+3 18 21 0.383057 0.548828 0.888184
+3 18 22 0.38208 0.520996 0.90332
+3 18 23 0.379883 0.496094 0.911621
+3 18 24 0.377686 0.474609 0.916992
+3 18 25 0.375732 0.454834 0.920898
+3 18 26 0.374268 0.436523 0.925293
+3 18 27 0.373291 0.420166 0.929688
+3 18 28 0.373047 0.406006 0.935059
+3 18 29 0.373779 0.393555 0.941895
+3 18 30 0.375 0.382812 0.949219
+3 18 31 0.376709 0.373779 0.95752
+3 19 0 0.293701 0.655273 0.237549
+3 19 1 0.293701 0.655273 0.237549
+3 19 2 0.293701 0.655273 0.237549
+3 19 3 0.293701 0.655273 0.237549
+3 19 4 0.293701 0.655273 0.237549
+3 19 5 0.293701 0.655273 0.237549
+3 19 6 0.293701 0.655273 0.237549
+3 19 7 0.293945 0.655273 0.237549
+3 19 8 0.293945 0.655273 0.237549
+3 19 9 0.294189 0.655273 0.237671
+3 19 10 0.294434 0.655273 0.237671
+3 19 11 0.295166 0.655762 0.237793
+3 19 12 0.297852 0.657227 0.269043
+3 19 13 0.303223 0.659668 0.324463
+3 19 14 0.311279 0.663086 0.390625
+3 19 15 0.322021 0.666016 0.466309
+3 19 16 0.335693 0.667969 0.549805
+3 19 17 0.351318 0.666504 0.635742
+3 19 18 0.366943 0.660156 0.717773
+3 19 19 0.381348 0.649902 0.790527
+3 19 20 0.393066 0.635254 0.851074
+3 19 21 0.39917 0.613281 0.893066
+3 19 22 0.399658 0.585449 0.916992
+3 19 23 0.397705 0.558105 0.929688
+3 19 24 0.39502 0.533691 0.937012
+3 19 25 0.391846 0.509766 0.941406
+3 19 26 0.388916 0.487061 0.945312
+3 19 27 0.386475 0.466064 0.948242
+3 19 28 0.384766 0.44751 0.952148
+3 19 29 0.383789 0.430664 0.956543
+3 19 30 0.383545 0.416016 0.961914
+3 19 31 0.384033 0.40332 0.968262
+3 20 0 0.315186 0.703125 0.255127
+3 20 1 0.315186 0.703125 0.255127
+3 20 2 0.315186 0.703125 0.255127
+3 20 3 0.315186 0.703125 0.255127
+3 20 4 0.315186 0.703125 0.255127
+3 20 5 0.315186 0.703125 0.255127
+3 20 6 0.31543 0.703125 0.255127
+3 20 7 0.31543 0.703125 0.255127
+3 20 8 0.31543 0.703125 0.255127
+3 20 9 0.315674 0.703125 0.255127
+3 20 10 0.315918 0.703613 0.255127
+3 20 11 0.316406 0.703613 0.255127
+3 20 12 0.317871 0.704102 0.263916
+3 20 13 0.32251 0.707031 0.316406
+3 20 14 0.329346 0.710449 0.379395
+3 20 15 0.339111 0.714355 0.452637
+3 20 16 0.351562 0.717773 0.53418
+3 20 17 0.365967 0.718262 0.620117
+3 20 18 0.380859 0.714355 0.703125
+3 20 19 0.394531 0.705078 0.777832
+3 20 20 0.405762 0.691406 0.841797
+3 20 21 0.413574 0.672852 0.89209
+3 20 22 0.416504 0.647461 0.925293
+3 20 23 0.415527 0.620117 0.944336
+3 20 24 0.412842 0.59375 0.955078
+3 20 25 0.40918 0.566895 0.961914
+3 20 26 0.405273 0.540527 0.96582
+3 20 27 0.401367 0.515137 0.968262
+3 20 28 0.398193 0.491943 0.970703
+3 20 29 0.395508 0.470947 0.973633
+3 20 30 0.393799 0.452148 0.977051
+3 20 31 0.392822 0.435547 0.981445
+3 21 0 0.333496 0.744141 0.269775
+3 21 1 0.333496 0.744141 0.269775
+3 21 2 0.333496 0.744141 0.269775
+3 21 3 0.333496 0.744141 0.269775
+3 21 4 0.333496 0.744141 0.269775
+3 21 5 0.333496 0.744141 0.269775
+3 21 6 0.333496 0.744141 0.269775
+3 21 7 0.33374 0.744141 0.269775
+3 21 8 0.33374 0.744141 0.269775
+3 21 9 0.33374 0.744141 0.269775
+3 21 10 0.333984 0.744141 0.27002
+3 21 11 0.334473 0.744629 0.27002
+3 21 12 0.335205 0.744629 0.27002
+3 21 13 0.338623 0.74707 0.307861
+3 21 14 0.344971 0.750488 0.367676
+3 21 15 0.353516 0.754883 0.437988
+3 21 16 0.36499 0.759277 0.51709
+3 21 17 0.378418 0.761719 0.601074
+3 21 18 0.392578 0.760254 0.68457
+3 21 19 0.406006 0.753418 0.76123
+3 21 20 0.416992 0.741699 0.827637
+3 21 21 0.425781 0.725586 0.883301
+3 21 22 0.430908 0.70459 0.925293
+3 21 23 0.431885 0.679199 0.952148
+3 21 24 0.429932 0.652832 0.96875
+3 21 25 0.426514 0.624023 0.979004
+3 21 26 0.421875 0.595215 0.984863
+3 21 27 0.417236 0.566406 0.988281
+3 21 28 0.412598 0.539062 0.990234
+3 21 29 0.408691 0.51416 0.991699
+3 21 30 0.405273 0.491211 0.993652
+3 21 31 0.402832 0.470703 0.996094
+3 22 0 0.348633 0.777832 0.282227
+3 22 1 0.348633 0.777832 0.282227
+3 22 2 0.348633 0.777832 0.282227
+3 22 3 0.348633 0.777832 0.282227
+3 22 4 0.348633 0.777832 0.282227
+3 22 5 0.348877 0.777832 0.282227
+3 22 6 0.348877 0.777832 0.282227
+3 22 7 0.348877 0.777832 0.282227
+3 22 8 0.348877 0.777832 0.282227
+3 22 9 0.348877 0.77832 0.282227
+3 22 10 0.349121 0.77832 0.282227
+3 22 11 0.349609 0.77832 0.282227
+3 22 12 0.350098 0.77832 0.282471
+3 22 13 0.352295 0.779785 0.299316
+3 22 14 0.357666 0.783691 0.356201
+3 22 15 0.365479 0.788086 0.423096
+3 22 16 0.375977 0.793457 0.499268
+3 22 17 0.388672 0.797363 0.581055
+3 22 18 0.4021 0.797852 0.663574
+3 22 19 0.415283 0.793945 0.741211
+3 22 20 0.42627 0.784668 0.80957
+3 22 21 0.435303 0.770996 0.868164
+3 22 22 0.441895 0.75293 0.916504
+3 22 23 0.444824 0.731445 0.951172
+3 22 24 0.44458 0.706543 0.974121
+3 22 25 0.442139 0.678711 0.989746
+3 22 26 0.437988 0.648438 1
+3 22 27 0.432861 0.617188 1
+3 22 28 0.42749 0.587402 1
+3 22 29 0.422363 0.558594 1
+3 22 30 0.417725 0.531738 1
+3 22 31 0.413818 0.507324 1
+3 23 0 0.36084 0.805176 0.291992
+3 23 1 0.36084 0.805176 0.291992
+3 23 2 0.36084 0.805176 0.291992
+3 23 3 0.36084 0.805176 0.291992
+3 23 4 0.36084 0.805176 0.291992
+3 23 5 0.36084 0.805176 0.291992
+3 23 6 0.36084 0.805176 0.291992
+3 23 7 0.36084 0.805176 0.291992
+3 23 8 0.361084 0.805176 0.291992
+3 23 9 0.361084 0.805176 0.291992
+3 23 10 0.361328 0.805176 0.291992
+3 23 11 0.361572 0.805176 0.291992
+3 23 12 0.362061 0.805664 0.292236
+3 23 13 0.363037 0.805664 0.292236
+3 23 14 0.36792 0.80957 0.345215
+3 23 15 0.375 0.814453 0.408936
+3 23 16 0.384766 0.819824 0.482178
+3 23 17 0.396484 0.825195 0.561523
+3 23 18 0.409424 0.827637 0.64209
+3 23 19 0.422119 0.826172 0.719727
+3 23 20 0.43335 0.819336 0.789062
+3 23 21 0.442627 0.808105 0.850098
+3 23 22 0.449463 0.79248 0.901367
+3 23 23 0.454102 0.773926 0.941406
+3 23 24 0.455811 0.752441 0.971191
+3 23 25 0.454834 0.726562 0.993652
+3 23 26 0.45166 0.696777 1
+3 23 27 0.447021 0.665039 1
+3 23 28 0.441162 0.632812 1
+3 23 29 0.435303 0.601074 1
+3 23 30 0.429688 0.571289 1
+3 23 31 0.424805 0.543457 1
+3 24 0 0.370605 0.82666 0.299805
+3 24 1 0.370605 0.82666 0.299805
+3 24 2 0.370605 0.82666 0.299805
+3 24 3 0.370605 0.82666 0.299805
+3 24 4 0.370605 0.82666 0.299805
+3 24 5 0.370605 0.82666 0.299805
+3 24 6 0.370605 0.82666 0.299805
+3 24 7 0.370605 0.82666 0.299805
+3 24 8 0.370605 0.82666 0.299805
+3 24 9 0.37085 0.82666 0.299805
+3 24 10 0.37085 0.827148 0.299805
+3 24 11 0.371094 0.827148 0.300049
+3 24 12 0.371582 0.827148 0.300049
+3 24 13 0.372314 0.827637 0.300049
+3 24 14 0.375977 0.830078 0.334717
+3 24 15 0.382324 0.834961 0.395264
+3 24 16 0.391357 0.84082 0.465576
+3 24 17 0.402344 0.84668 0.541992
+3 24 18 0.414795 0.850586 0.621094
+3 24 19 0.427246 0.851074 0.697266
+3 24 20 0.438477 0.847168 0.767578
+3 24 21 0.447998 0.838379 0.830078
+3 24 22 0.455322 0.824707 0.883789
+3 24 23 0.460449 0.808594 0.927246
+3 24 24 0.463623 0.790039 0.961426
+3 24 25 0.4646 0.76709 0.989746
+3 24 26 0.462891 0.739258 1
+3 24 27 0.458984 0.708008 1
+3 24 28 0.453613 0.674805 1
+3 24 29 0.447266 0.641602 1
+3 24 30 0.441162 0.609375 1
+3 24 31 0.435059 0.578613 1
+3 25 0 0.37915 0.846191 0.306885
+3 25 1 0.37915 0.846191 0.306885
+3 25 2 0.37915 0.846191 0.306885
+3 25 3 0.37915 0.846191 0.306885
+3 25 4 0.37915 0.846191 0.306885
+3 25 5 0.37915 0.846191 0.306885
+3 25 6 0.37915 0.846191 0.306885
+3 25 7 0.37915 0.846191 0.306885
+3 25 8 0.37915 0.846191 0.306885
+3 25 9 0.379395 0.846191 0.306885
+3 25 10 0.379395 0.846191 0.306885
+3 25 11 0.379639 0.846191 0.306885
+3 25 12 0.380127 0.846191 0.306885
+3 25 13 0.380615 0.84668 0.307129
+3 25 14 0.382812 0.848145 0.323975
+3 25 15 0.388672 0.853027 0.381348
+3 25 16 0.396973 0.858887 0.448242
+3 25 17 0.407227 0.865234 0.521484
+3 25 18 0.418945 0.870117 0.597656
+3 25 19 0.431152 0.872559 0.672852
+3 25 20 0.442383 0.871094 0.742676
+3 25 21 0.452148 0.865234 0.806641
+3 25 22 0.460205 0.854492 0.862305
+3 25 23 0.46582 0.84082 0.908203
+3 25 24 0.469727 0.824707 0.945801
+3 25 25 0.472168 0.804688 0.979004
+3 25 26 0.472168 0.779785 1
+3 25 27 0.469482 0.75 1
+3 25 28 0.464844 0.717285 1
+3 25 29 0.458984 0.683105 1
+3 25 30 0.452393 0.648926 1
+3 25 31 0.445801 0.615723 1
+3 26 0 0.386963 0.863281 0.312988
+3 26 1 0.386963 0.863281 0.312988
+3 26 2 0.386963 0.863281 0.312988
+3 26 3 0.386963 0.863281 0.312988
+3 26 4 0.386963 0.863281 0.312988
+3 26 5 0.386963 0.863281 0.312988
+3 26 6 0.386963 0.863281 0.312988
+3 26 7 0.386963 0.863281 0.312988
+3 26 8 0.386963 0.863281 0.312988
+3 26 9 0.386963 0.863281 0.313232
+3 26 10 0.387207 0.863281 0.313232
+3 26 11 0.387451 0.863281 0.313232
+3 26 12 0.387695 0.86377 0.313232
+3 26 13 0.388184 0.86377 0.313232
+3 26 14 0.38916 0.864258 0.313477
+3 26 15 0.394531 0.868652 0.367188
+3 26 16 0.401855 0.874512 0.43042
+3 26 17 0.411377 0.880859 0.5
+3 26 18 0.422363 0.887207 0.57373
+3 26 19 0.433838 0.891113 0.646484
+3 26 20 0.445068 0.891602 0.715332
+3 26 21 0.455078 0.888672 0.779297
+3 26 22 0.463623 0.880859 0.836914
+3 26 23 0.469971 0.870117 0.885254
+3 26 24 0.474609 0.856445 0.925293
+3 26 25 0.477783 0.838867 0.961914
+3 26 26 0.479248 0.816895 0.994141
+3 26 27 0.478271 0.790039 1
+3 26 28 0.474854 0.758789 1
+3 26 29 0.469482 0.724609 1
+3 26 30 0.463135 0.689453 1
+3 26 31 0.456299 0.654785 1
+3 27 0 0.393799 0.878418 0.318604
+3 27 1 0.393799 0.878418 0.318604
+3 27 2 0.393799 0.878418 0.318604
+3 27 3 0.393799 0.878418 0.318604
+3 27 4 0.393799 0.878418 0.318604
+3 27 5 0.393799 0.878418 0.318604
+3 27 6 0.393799 0.878418 0.318604
+3 27 7 0.393799 0.878418 0.318604
+3 27 8 0.393799 0.878418 0.318604
+3 27 9 0.393799 0.878418 0.318604
+3 27 10 0.393799 0.878418 0.318604
+3 27 11 0.394043 0.878418 0.318604
+3 27 12 0.394287 0.878906 0.318604
+3 27 13 0.394775 0.878906 0.318848
+3 27 14 0.395508 0.878906 0.318848
+3 27 15 0.39917 0.882324 0.353027
+3 27 16 0.406006 0.887695 0.412598
+3 27 17 0.414551 0.894531 0.478516
+3 27 18 0.424805 0.900879 0.54834
+3 27 19 0.435791 0.90625 0.618652
+3 27 20 0.446533 0.908691 0.686035
+3 27 21 0.456787 0.908203 0.749512
+3 27 22 0.465576 0.903809 0.807617
+3 27 23 0.472656 0.895508 0.857422
+3 27 24 0.478027 0.884766 0.900391
+3 27 25 0.481934 0.869629 0.939941
+3 27 26 0.484375 0.850586 0.975586
+3 27 27 0.484863 0.82666 1
+3 27 28 0.48291 0.797852 1
+3 27 29 0.478516 0.764648 1
+3 27 30 0.472656 0.729492 1
+3 27 31 0.466064 0.693848 1
+3 28 0 0.399414 0.891113 0.323242
+3 28 1 0.399414 0.891113 0.323242
+3 28 2 0.399414 0.891113 0.323242
+3 28 3 0.399414 0.891113 0.323242
+3 28 4 0.399414 0.891113 0.323242
+3 28 5 0.399414 0.891113 0.323242
+3 28 6 0.399414 0.891113 0.323242
+3 28 7 0.399414 0.891113 0.323242
+3 28 8 0.399414 0.891113 0.323242
+3 28 9 0.399414 0.891113 0.323242
+3 28 10 0.399414 0.891113 0.323242
+3 28 11 0.399658 0.891113 0.323242
+3 28 12 0.399902 0.891113 0.323242
+3 28 13 0.400391 0.891602 0.323242
+3 28 14 0.400879 0.891602 0.323486
+3 28 15 0.403076 0.893066 0.338623
+3 28 16 0.408936 0.898438 0.394531
+3 28 17 0.416992 0.905273 0.456787
+3 28 18 0.42627 0.911621 0.522949
+3 28 19 0.436523 0.917969 0.589844
+3 28 20 0.447021 0.921875 0.655273
+3 28 21 0.457031 0.92334 0.717285
+3 28 22 0.466064 0.921875 0.775391
+3 28 23 0.473633 0.916504 0.826172
+3 28 24 0.479492 0.908691 0.870605
+3 28 25 0.484375 0.896484 0.912598
+3 28 26 0.487793 0.880371 0.951172
+3 28 27 0.489258 0.858887 0.985352
+3 28 28 0.48877 0.833008 1
+3 28 29 0.48584 0.802246 1
+3 28 30 0.481201 0.768555 1
+3 28 31 0.475098 0.733398 1
+3 29 0 0.403564 0.900879 0.32666
+3 29 1 0.403564 0.900879 0.32666
+3 29 2 0.403564 0.900879 0.32666
+3 29 3 0.403564 0.900879 0.32666
+3 29 4 0.403564 0.900879 0.32666
+3 29 5 0.403564 0.900879 0.32666
+3 29 6 0.403564 0.900879 0.32666
+3 29 7 0.403809 0.900879 0.32666
+3 29 8 0.403809 0.900879 0.32666
+3 29 9 0.403809 0.900879 0.32666
+3 29 10 0.403809 0.900879 0.32666
+3 29 11 0.404053 0.900879 0.32666
+3 29 12 0.404053 0.900879 0.32666
+3 29 13 0.404541 0.900879 0.32666
+3 29 14 0.405029 0.901367 0.326904
+3 29 15 0.405762 0.901367 0.326904
+3 29 16 0.411133 0.90625 0.376221
+3 29 17 0.418213 0.912598 0.43457
+3 29 18 0.426758 0.919434 0.496826
+3 29 19 0.436279 0.92627 0.560547
+3 29 20 0.446045 0.931641 0.622559
+3 29 21 0.455811 0.93457 0.683105
+3 29 22 0.464844 0.935059 0.740234
+3 29 23 0.4729 0.932617 0.791016
+3 29 24 0.479248 0.927734 0.836426
+3 29 25 0.484863 0.918945 0.880371
+3 29 26 0.489258 0.905762 0.921875
+3 29 27 0.491943 0.887695 0.959473
+3 29 28 0.492432 0.864746 0.991699
+3 29 29 0.491455 0.837402 1
+3 29 30 0.488281 0.806641 1
+3 29 31 0.483398 0.772461 1
+3 30 0 0.406494 0.907227 0.328857
+3 30 1 0.406494 0.907227 0.328857
+3 30 2 0.406494 0.907227 0.328857
+3 30 3 0.406494 0.907227 0.328857
+3 30 4 0.406494 0.907227 0.328857
+3 30 5 0.406494 0.907227 0.328857
+3 30 6 0.406494 0.907227 0.328857
+3 30 7 0.406494 0.907227 0.328857
+3 30 8 0.406494 0.907227 0.328857
+3 30 9 0.406494 0.907227 0.328857
+3 30 10 0.406494 0.907227 0.328857
+3 30 11 0.406738 0.907227 0.328857
+3 30 12 0.406982 0.907227 0.329102
+3 30 13 0.407227 0.907227 0.329102
+3 30 14 0.407715 0.907227 0.329102
+3 30 15 0.408447 0.907715 0.329102
+3 30 16 0.411621 0.910645 0.35791
+3 30 17 0.417969 0.916504 0.412354
+3 30 18 0.425781 0.92334 0.470703
+3 30 19 0.43457 0.930664 0.530273
+3 30 20 0.443848 0.936523 0.589355
+3 30 21 0.453125 0.940918 0.647461
+3 30 22 0.462158 0.943359 0.702637
+3 30 23 0.470215 0.943359 0.75293
+3 30 24 0.477051 0.940918 0.798828
+3 30 25 0.483154 0.935059 0.843262
+3 30 26 0.488525 0.925293 0.886719
+3 30 27 0.492432 0.911133 0.927734
+3 30 28 0.494629 0.892578 0.964844
+3 30 29 0.495117 0.869141 0.99707
+3 30 30 0.493652 0.841309 1
+3 30 31 0.490234 0.80957 1
+3 31 0 0.408691 0.911621 0.330566
+3 31 1 0.408691 0.911621 0.330566
+3 31 2 0.408691 0.911621 0.330566
+3 31 3 0.408691 0.911621 0.330566
+3 31 4 0.408691 0.911621 0.330566
+3 31 5 0.408691 0.911621 0.330566
+3 31 6 0.408691 0.911621 0.330566
+3 31 7 0.408691 0.911621 0.330566
+3 31 8 0.408691 0.911621 0.330566
+3 31 9 0.408691 0.911621 0.330566
+3 31 10 0.408691 0.911621 0.330811
+3 31 11 0.408936 0.912109 0.330811
+3 31 12 0.408936 0.912109 0.330811
+3 31 13 0.40918 0.912109 0.330811
+3 31 14 0.409668 0.912109 0.330811
+3 31 15 0.410156 0.912109 0.330811
+3 31 16 0.411865 0.913574 0.340576
+3 31 17 0.417236 0.918945 0.390625
+3 31 18 0.424316 0.925293 0.444824
+3 31 19 0.432129 0.931641 0.500488
+3 31 20 0.44043 0.937988 0.556152
+3 31 21 0.449219 0.943359 0.61084
+3 31 22 0.457764 0.947266 0.664062
+3 31 23 0.46582 0.949219 0.712891
+3 31 24 0.4729 0.94873 0.757812
+3 31 25 0.479736 0.946289 0.803223
+3 31 26 0.48584 0.94043 0.848145
+3 31 27 0.490967 0.930176 0.891602
+3 31 28 0.494873 0.916016 0.932129
+3 31 29 0.496826 0.896484 0.969238
+3 31 30 0.49707 0.872559 1
+3 31 31 0.495361 0.844238 1
+4 0 0 0.0450134 0.0357056 0.0162964
+4 0 1 0.0449219 0.0354919 0.0227356
+4 0 2 0.0441284 0.0346985 0.0293579
+4 0 3 0.0394287 0.031311 0.0335083
+4 0 4 0.0372314 0.0301361 0.0389099
+4 0 5 0.0400696 0.0323486 0.0514221
+4 0 6 0.0426941 0.0343323 0.0663452
+4 0 7 0.0458984 0.0367126 0.0842285
+4 0 8 0.0511475 0.0406494 0.106934
+4 0 9 0.0596313 0.0470886 0.136353
+4 0 10 0.0723877 0.0569153 0.174927
+4 0 11 0.0900269 0.0705566 0.224487
+4 0 12 0.11145 0.0872192 0.282959
+4 0 13 0.136108 0.106384 0.348877
+4 0 14 0.163574 0.127808 0.421875
+4 0 15 0.193115 0.150757 0.499512
+4 0 16 0.223877 0.174805 0.580078
+4 0 17 0.253418 0.197998 0.658203
+4 0 18 0.280762 0.219238 0.729492
+4 0 19 0.304932 0.238037 0.79248
+4 0 20 0.318359 0.248413 0.827148
+4 0 21 0.320801 0.250488 0.833984
+4 0 22 0.323486 0.252686 0.841309
+4 0 23 0.326416 0.254883 0.848633
+4 0 24 0.329102 0.25708 0.856445
+4 0 25 0.332275 0.259521 0.864258
+4 0 26 0.335693 0.262207 0.873535
+4 0 27 0.3396 0.265137 0.883301
+4 0 28 0.343994 0.268555 0.894531
+4 0 29 0.348633 0.271973 0.906738
+4 0 30 0.353271 0.275879 0.919434
+4 0 31 0.358398 0.279785 0.932129
+4 1 0 0.0439148 0.0361633 0.0161896
+4 1 1 0.0441895 0.0362244 0.0223236
+4 1 2 0.0438232 0.0357361 0.029007
+4 1 3 0.0402527 0.0328979 0.0340576
+4 1 4 0.037323 0.0310059 0.0389099
+4 1 5 0.0401306 0.0332031 0.0514221
+4 1 6 0.0427856 0.0351562 0.0663452
+4 1 7 0.04599 0.0374451 0.0842285
+4 1 8 0.0512085 0.0412598 0.106934
+4 1 9 0.0596619 0.0475464 0.136353
+4 1 10 0.0724487 0.0572815 0.174927
+4 1 11 0.0900269 0.0708618 0.224487
+4 1 12 0.11145 0.0874023 0.282959
+4 1 13 0.136108 0.106506 0.348877
+4 1 14 0.163574 0.12793 0.421875
+4 1 15 0.193115 0.150879 0.499512
+4 1 16 0.223877 0.174805 0.580566
+4 1 17 0.253418 0.197998 0.658203
+4 1 18 0.280762 0.21936 0.729492
+4 1 19 0.304932 0.238037 0.79248
+4 1 20 0.318359 0.248535 0.827148
+4 1 21 0.320801 0.250488 0.833984
+4 1 22 0.323486 0.252686 0.841309
+4 1 23 0.326416 0.254883 0.848633
+4 1 24 0.329102 0.25708 0.856445
+4 1 25 0.332275 0.259521 0.864258
+4 1 26 0.335693 0.262207 0.873535
+4 1 27 0.3396 0.265137 0.883301
+4 1 28 0.343994 0.268555 0.894531
+4 1 29 0.348633 0.271973 0.906738
+4 1 30 0.353271 0.275879 0.919434
+4 1 31 0.358398 0.279785 0.932129
+4 2 0 0.0415649 0.0361938 0.0164642
+4 2 1 0.0421143 0.0365295 0.0216675
+4 2 2 0.0430603 0.0371399 0.0283203
+4 2 3 0.041687 0.0357361 0.0350037
+4 2 4 0.0375061 0.0325012 0.0389709
+4 2 5 0.0402527 0.034668 0.0514221
+4 2 6 0.0429077 0.0365601 0.0663452
+4 2 7 0.0460815 0.0386963 0.0842285
+4 2 8 0.0513 0.0422668 0.106934
+4 2 9 0.0597229 0.0483704 0.136353
+4 2 10 0.0725098 0.0578918 0.174927
+4 2 11 0.0900879 0.0712891 0.224487
+4 2 12 0.11145 0.0877075 0.282959
+4 2 13 0.136108 0.106812 0.348877
+4 2 14 0.163574 0.128052 0.421875
+4 2 15 0.193115 0.151001 0.499512
+4 2 16 0.223877 0.174927 0.580566
+4 2 17 0.253418 0.19812 0.658203
+4 2 18 0.280762 0.21936 0.729492
+4 2 19 0.304932 0.238159 0.79248
+4 2 20 0.318359 0.248535 0.827148
+4 2 21 0.320801 0.250488 0.833984
+4 2 22 0.323486 0.252686 0.841309
+4 2 23 0.326416 0.254883 0.848633
+4 2 24 0.329102 0.25708 0.856445
+4 2 25 0.332275 0.259521 0.864258
+4 2 26 0.335693 0.262207 0.873535
+4 2 27 0.3396 0.265137 0.883301
+4 2 28 0.343994 0.268555 0.894531
+4 2 29 0.348633 0.271973 0.906738
+4 2 30 0.353271 0.275879 0.919434
+4 2 31 0.358398 0.279785 0.932129
+4 3 0 0.0380249 0.035675 0.0176392
+4 3 1 0.0382385 0.0358276 0.0212097
+4 3 2 0.0391235 0.0365295 0.0263062
+4 3 3 0.041748 0.0386963 0.0346375
+4 3 4 0.0379028 0.0350952 0.0391541
+4 3 5 0.0405273 0.0371399 0.0514526
+4 3 6 0.0431519 0.0389099 0.0664062
+4 3 7 0.0462952 0.040802 0.0842896
+4 3 8 0.0514832 0.0440674 0.106995
+4 3 9 0.059845 0.0497742 0.136353
+4 3 10 0.0725708 0.0589905 0.174927
+4 3 11 0.0901489 0.0721436 0.224487
+4 3 12 0.111511 0.0883789 0.282959
+4 3 13 0.136108 0.107239 0.348877
+4 3 14 0.163574 0.128418 0.421875
+4 3 15 0.193115 0.151245 0.499512
+4 3 16 0.223877 0.175171 0.580566
+4 3 17 0.253662 0.198242 0.658203
+4 3 18 0.281006 0.219482 0.729492
+4 3 19 0.304932 0.238281 0.79248
+4 3 20 0.318359 0.248535 0.827148
+4 3 21 0.320801 0.250488 0.833984
+4 3 22 0.323486 0.252686 0.841309
+4 3 23 0.326416 0.254883 0.848633
+4 3 24 0.329102 0.25708 0.856445
+4 3 25 0.332275 0.259521 0.864258
+4 3 26 0.335693 0.262207 0.873535
+4 3 27 0.3396 0.265137 0.883301
+4 3 28 0.343994 0.268555 0.894531
+4 3 29 0.348633 0.272217 0.906738
+4 3 30 0.353271 0.275879 0.919434
+4 3 31 0.358398 0.279785 0.932129
+4 4 0 0.0387573 0.0401001 0.0193787
+4 4 1 0.0386047 0.0398865 0.0224304
+4 4 2 0.0384216 0.0396118 0.0265198
+4 4 3 0.0384521 0.0394592 0.032074
+4 4 4 0.0388489 0.0395508 0.0397034
+4 4 5 0.0410461 0.0412598 0.0515747
+4 4 6 0.0435791 0.0428467 0.0664062
+4 4 7 0.0466919 0.0444031 0.0842896
+4 4 8 0.0517883 0.0471802 0.106995
+4 4 9 0.0600891 0.0523071 0.136353
+4 4 10 0.0727539 0.0609741 0.174927
+4 4 11 0.090271 0.0736694 0.224487
+4 4 12 0.111633 0.0894775 0.282959
+4 4 13 0.13623 0.108093 0.348877
+4 4 14 0.163696 0.129028 0.421875
+4 4 15 0.193115 0.151733 0.499512
+4 4 16 0.223877 0.175537 0.580566
+4 4 17 0.253662 0.198486 0.658203
+4 4 18 0.281006 0.219727 0.729492
+4 4 19 0.304932 0.238403 0.79248
+4 4 20 0.318359 0.248779 0.827637
+4 4 21 0.320801 0.250732 0.833984
+4 4 22 0.323486 0.252686 0.841309
+4 4 23 0.326416 0.254883 0.848633
+4 4 24 0.329102 0.25708 0.856445
+4 4 25 0.332275 0.259521 0.864258
+4 4 26 0.335693 0.262207 0.873535
+4 4 27 0.3396 0.265137 0.883301
+4 4 28 0.343994 0.268555 0.894531
+4 4 29 0.348633 0.272217 0.906738
+4 4 30 0.353271 0.275879 0.919434
+4 4 31 0.358398 0.279785 0.932129
+4 5 0 0.0405579 0.04776 0.0201263
+4 5 1 0.0404358 0.0475464 0.0232086
+4 5 2 0.0403137 0.0472717 0.027359
+4 5 3 0.0401917 0.0469055 0.0329285
+4 5 4 0.0406189 0.046936 0.0406799
+4 5 5 0.0421448 0.0479431 0.0519409
+4 5 6 0.0443726 0.0491028 0.0664673
+4 5 7 0.0474243 0.050293 0.0843506
+4 5 8 0.0523987 0.0523987 0.107056
+4 5 9 0.0605469 0.0567017 0.136353
+4 5 10 0.0730591 0.0645142 0.174805
+4 5 11 0.0905151 0.0764771 0.224487
+4 5 12 0.111816 0.0916748 0.282959
+4 5 13 0.136353 0.109741 0.348877
+4 5 14 0.163818 0.130249 0.421875
+4 5 15 0.193237 0.15271 0.499756
+4 5 16 0.223999 0.176147 0.580566
+4 5 17 0.253662 0.198975 0.658203
+4 5 18 0.281006 0.220093 0.729492
+4 5 19 0.304932 0.23877 0.79248
+4 5 20 0.318359 0.249023 0.827637
+4 5 21 0.320801 0.250977 0.834473
+4 5 22 0.32373 0.25293 0.841309
+4 5 23 0.326416 0.255127 0.848633
+4 5 24 0.329346 0.257324 0.856445
+4 5 25 0.332275 0.259521 0.864258
+4 5 26 0.335693 0.262207 0.873535
+4 5 27 0.3396 0.265137 0.883301
+4 5 28 0.343994 0.268555 0.894531
+4 5 29 0.348633 0.272217 0.906738
+4 5 30 0.353271 0.275879 0.919434
+4 5 31 0.358398 0.279785 0.932129
+4 6 0 0.0422058 0.0574646 0.0218048
+4 6 1 0.0422363 0.0574341 0.0237122
+4 6 2 0.0423279 0.057373 0.0279236
+4 6 3 0.042511 0.057312 0.0336914
+4 6 4 0.0429688 0.0574036 0.0415955
+4 6 5 0.0440369 0.0578003 0.0523987
+4 6 6 0.0458374 0.0583801 0.0664673
+4 6 7 0.0487366 0.0591431 0.0844116
+4 6 8 0.0535278 0.0605469 0.107178
+4 6 9 0.0614014 0.0638428 0.136353
+4 6 10 0.0736694 0.0705566 0.174805
+4 6 11 0.0910034 0.0814819 0.224365
+4 6 12 0.112122 0.0955811 0.282959
+4 6 13 0.136597 0.112732 0.348877
+4 6 14 0.16394 0.132568 0.421875
+4 6 15 0.193359 0.154419 0.499756
+4 6 16 0.224121 0.17749 0.580566
+4 6 17 0.253662 0.199951 0.658203
+4 6 18 0.281006 0.220825 0.729492
+4 6 19 0.305176 0.23938 0.79248
+4 6 20 0.318359 0.249512 0.827637
+4 6 21 0.321045 0.251221 0.834473
+4 6 22 0.32373 0.253174 0.841797
+4 6 23 0.326416 0.255371 0.849121
+4 6 24 0.329346 0.257568 0.856445
+4 6 25 0.332275 0.259766 0.864258
+4 6 26 0.335693 0.262451 0.873535
+4 6 27 0.3396 0.265381 0.883301
+4 6 28 0.343994 0.268799 0.894531
+4 6 29 0.348633 0.272217 0.906738
+4 6 30 0.353271 0.276123 0.919434
+4 6 31 0.358398 0.279785 0.932129
+4 7 0 0.0449219 0.0704956 0.0262604
+4 7 1 0.0449524 0.0705566 0.0262604
+4 7 2 0.0450439 0.0705566 0.0283966
+4 7 3 0.0452881 0.0706177 0.0340271
+4 7 4 0.0457764 0.0707397 0.0418091
+4 7 5 0.0466919 0.0709839 0.0524292
+4 7 6 0.0483093 0.0713501 0.0663452
+4 7 7 0.0510254 0.0718384 0.0842896
+4 7 8 0.055542 0.0726929 0.107239
+4 7 9 0.0629883 0.0749512 0.136475
+4 7 10 0.0748901 0.0803833 0.174805
+4 7 11 0.0918579 0.0899048 0.224365
+4 7 12 0.112793 0.102539 0.282715
+4 7 13 0.137085 0.118225 0.348877
+4 7 14 0.164307 0.136841 0.421875
+4 7 15 0.193726 0.157593 0.499756
+4 7 16 0.224243 0.179932 0.580566
+4 7 17 0.253906 0.201904 0.658203
+4 7 18 0.28125 0.222412 0.729492
+4 7 19 0.305176 0.240479 0.79248
+4 7 20 0.318604 0.250488 0.827637
+4 7 21 0.321045 0.251953 0.834473
+4 7 22 0.32373 0.253906 0.841797
+4 7 23 0.326416 0.255859 0.849121
+4 7 24 0.329346 0.257812 0.856445
+4 7 25 0.33252 0.260254 0.864746
+4 7 26 0.335938 0.262695 0.873535
+4 7 27 0.3396 0.265625 0.883301
+4 7 28 0.343994 0.269043 0.89502
+4 7 29 0.348633 0.272461 0.906738
+4 7 30 0.353516 0.276123 0.919434
+4 7 31 0.358398 0.280029 0.932129
+4 8 0 0.0494995 0.0878906 0.0323486
+4 8 1 0.04953 0.0878906 0.0323486
+4 8 2 0.0495911 0.0879517 0.0323486
+4 8 3 0.0497437 0.0880127 0.0345154
+4 8 4 0.0501404 0.0881348 0.0419312
+4 8 5 0.0509338 0.0883179 0.0522461
+4 8 6 0.0523682 0.0886841 0.065918
+4 8 7 0.0548706 0.0891113 0.0839233
+4 8 8 0.0590515 0.0897217 0.107117
+4 8 9 0.065979 0.0911865 0.136597
+4 8 10 0.0771484 0.095459 0.174683
+4 8 11 0.0935669 0.103516 0.224243
+4 8 12 0.114136 0.114258 0.282715
+4 8 13 0.138062 0.12793 0.349121
+4 8 14 0.165161 0.144531 0.421875
+4 8 15 0.194214 0.163696 0.499756
+4 8 16 0.224731 0.184692 0.580566
+4 8 17 0.25415 0.205566 0.658203
+4 8 18 0.281494 0.22522 0.72998
+4 8 19 0.30542 0.242798 0.79248
+4 8 20 0.318848 0.252441 0.828125
+4 8 21 0.321289 0.253662 0.834473
+4 8 22 0.323975 0.255127 0.841797
+4 8 23 0.32666 0.256836 0.849121
+4 8 24 0.329346 0.258789 0.856445
+4 8 25 0.33252 0.260986 0.864746
+4 8 26 0.335938 0.263428 0.873535
+4 8 27 0.339844 0.266357 0.883789
+4 8 28 0.343994 0.269531 0.89502
+4 8 29 0.348633 0.272949 0.906738
+4 8 30 0.353516 0.276611 0.919434
+4 8 31 0.358398 0.280273 0.932129
+4 9 0 0.0568848 0.110535 0.0404053
+4 9 1 0.0569153 0.110535 0.0404053
+4 9 2 0.0569458 0.110535 0.0404053
+4 9 3 0.0570068 0.110596 0.0404358
+4 9 4 0.0572205 0.110657 0.0426636
+4 9 5 0.0578308 0.110779 0.0524597
+4 9 6 0.05896 0.111084 0.0656738
+4 9 7 0.0610657 0.111511 0.083374
+4 9 8 0.0648193 0.112183 0.10675
+4 9 9 0.071106 0.113525 0.136719
+4 9 10 0.0812988 0.116882 0.174927
+4 9 11 0.0967407 0.123657 0.224121
+4 9 12 0.116577 0.132568 0.282715
+4 9 13 0.140015 0.143799 0.349121
+4 9 14 0.166504 0.157715 0.422119
+4 9 15 0.195312 0.174438 0.5
+4 9 16 0.225586 0.193115 0.580566
+4 9 17 0.254883 0.21228 0.658691
+4 9 18 0.281982 0.230591 0.72998
+4 9 19 0.305908 0.247192 0.792969
+4 9 20 0.319336 0.255859 0.828613
+4 9 21 0.321533 0.256348 0.834961
+4 9 22 0.324219 0.257568 0.842285
+4 9 23 0.326904 0.258789 0.849609
+4 9 24 0.32959 0.260498 0.856934
+4 9 25 0.332764 0.262451 0.864746
+4 9 26 0.336182 0.264648 0.874023
+4 9 27 0.339844 0.267334 0.883789
+4 9 28 0.344238 0.270264 0.89502
+4 9 29 0.348877 0.273682 0.907227
+4 9 30 0.353516 0.277344 0.919434
+4 9 31 0.358398 0.281006 0.932617
+4 10 0 0.0680542 0.140137 0.0510254
+4 10 1 0.0681152 0.140137 0.0510254
+4 10 2 0.0681152 0.140137 0.0510254
+4 10 3 0.0681763 0.140137 0.0510559
+4 10 4 0.0682983 0.140259 0.0510864
+4 10 5 0.0685425 0.140259 0.0540466
+4 10 6 0.069397 0.140381 0.0667725
+4 10 7 0.0709839 0.140625 0.0841064
+4 10 8 0.0739746 0.141113 0.1073
+4 10 9 0.0793457 0.142334 0.137451
+4 10 10 0.0883179 0.145142 0.175659
+4 10 11 0.102295 0.150757 0.224365
+4 10 12 0.120789 0.158081 0.282715
+4 10 13 0.143188 0.166992 0.349121
+4 10 14 0.169067 0.178101 0.422363
+4 10 15 0.197266 0.191528 0.500488
+4 10 16 0.227051 0.207275 0.581055
+4 10 17 0.256104 0.223755 0.658691
+4 10 18 0.282959 0.239868 0.730469
+4 10 19 0.306641 0.254639 0.793457
+4 10 20 0.320068 0.262207 0.829102
+4 10 21 0.322266 0.261475 0.835938
+4 10 22 0.324951 0.261719 0.842773
+4 10 23 0.327393 0.262451 0.850098
+4 10 24 0.330078 0.263428 0.857422
+4 10 25 0.333008 0.264893 0.865234
+4 10 26 0.336426 0.266846 0.874023
+4 10 27 0.340088 0.269287 0.884277
+4 10 28 0.344482 0.271973 0.895508
+4 10 29 0.349121 0.275146 0.907227
+4 10 30 0.35376 0.278564 0.919922
+4 10 31 0.358643 0.281982 0.932617
+4 11 0 0.0839844 0.178833 0.0650024
+4 11 1 0.0839844 0.178833 0.0650024
+4 11 2 0.0840454 0.178833 0.0650024
+4 11 3 0.0840454 0.178833 0.0650024
+4 11 4 0.0841064 0.178833 0.0650024
+4 11 5 0.0842896 0.178955 0.0650635
+4 11 6 0.0847168 0.179077 0.0698242
+4 11 7 0.0858154 0.179077 0.086853
+4 11 8 0.0880737 0.179199 0.109863
+4 11 9 0.0922852 0.17981 0.140015
+4 11 10 0.0996094 0.181763 0.177979
+4 11 11 0.111267 0.185791 0.225464
+4 11 12 0.127808 0.191528 0.282959
+4 11 13 0.148682 0.198486 0.349365
+4 11 14 0.17334 0.206787 0.422607
+4 11 15 0.200562 0.216797 0.500488
+4 11 16 0.229736 0.228882 0.581543
+4 11 17 0.258057 0.241821 0.659668
+4 11 18 0.284668 0.254883 0.730957
+4 11 19 0.308105 0.267334 0.793945
+4 11 20 0.321533 0.272949 0.831055
+4 11 21 0.323486 0.27002 0.837402
+4 11 22 0.325928 0.268799 0.844238
+4 11 23 0.328369 0.268311 0.851074
+4 11 24 0.330811 0.268555 0.858398
+4 11 25 0.33374 0.269531 0.866211
+4 11 26 0.336914 0.270752 0.875
+4 11 27 0.34082 0.272461 0.884766
+4 11 28 0.344971 0.274902 0.895996
+4 11 29 0.349365 0.277588 0.907715
+4 11 30 0.354004 0.280518 0.92041
+4 11 31 0.358887 0.283691 0.933105
+4 12 0 0.104004 0.22583 0.0820312
+4 12 1 0.104004 0.22583 0.0820312
+4 12 2 0.104065 0.22583 0.0820312
+4 12 3 0.104065 0.22583 0.0820312
+4 12 4 0.104126 0.225952 0.0820312
+4 12 5 0.104248 0.225952 0.0820923
+4 12 6 0.104431 0.226074 0.0820923
+4 12 7 0.105103 0.226196 0.0905762
+4 12 8 0.106812 0.226318 0.113342
+4 12 9 0.110046 0.226685 0.143433
+4 12 10 0.115662 0.227661 0.181152
+4 12 11 0.124817 0.229736 0.227417
+4 12 12 0.138672 0.233643 0.283936
+4 12 13 0.157349 0.23877 0.349609
+4 12 14 0.180176 0.244751 0.422852
+4 12 15 0.206055 0.251709 0.500977
+4 12 16 0.234009 0.259766 0.58252
+4 12 17 0.261719 0.268555 0.660645
+4 12 18 0.287354 0.277832 0.731934
+4 12 19 0.310303 0.286621 0.794922
+4 12 20 0.324219 0.289795 0.833496
+4 12 21 0.325684 0.283936 0.839355
+4 12 22 0.327637 0.280273 0.846191
+4 12 23 0.329834 0.27832 0.853027
+4 12 24 0.332275 0.2771 0.859863
+4 12 25 0.334961 0.276855 0.867676
+4 12 26 0.338135 0.2771 0.875977
+4 12 27 0.341553 0.278076 0.885742
+4 12 28 0.345703 0.279785 0.896973
+4 12 29 0.350098 0.281738 0.908691
+4 12 30 0.354736 0.28418 0.920898
+4 12 31 0.359375 0.286865 0.933594
+4 13 0 0.127319 0.279541 0.10144
+4 13 1 0.127319 0.279541 0.10144
+4 13 2 0.127319 0.279541 0.10144
+4 13 3 0.127319 0.279541 0.10144
+4 13 4 0.127319 0.279541 0.10144
+4 13 5 0.127441 0.279541 0.10144
+4 13 6 0.127563 0.279541 0.101501
+4 13 7 0.12793 0.279785 0.101562
+4 13 8 0.129028 0.280029 0.116699
+4 13 9 0.13147 0.280273 0.146362
+4 13 10 0.135864 0.281006 0.183838
+4 13 11 0.143066 0.282227 0.229614
+4 13 12 0.154175 0.284424 0.285156
+4 13 13 0.170044 0.287842 0.349854
+4 13 14 0.19043 0.291748 0.423096
+4 13 15 0.214355 0.295898 0.501465
+4 13 16 0.240723 0.300537 0.583008
+4 13 17 0.26709 0.305176 0.661621
+4 13 18 0.291748 0.310059 0.733398
+4 13 19 0.313965 0.314941 0.796387
+4 13 20 0.328369 0.314941 0.837402
+4 13 21 0.329102 0.304932 0.843262
+4 13 22 0.330566 0.298096 0.849121
+4 13 23 0.332275 0.293457 0.855469
+4 13 24 0.334473 0.290527 0.862305
+4 13 25 0.336914 0.288574 0.869629
+4 13 26 0.3396 0.287354 0.878418
+4 13 27 0.343018 0.286865 0.887695
+4 13 28 0.346924 0.287354 0.898438
+4 13 29 0.351074 0.28833 0.910156
+4 13 30 0.355469 0.290039 0.921875
+4 13 31 0.360107 0.291992 0.93457
+4 14 0 0.153442 0.339111 0.123047
+4 14 1 0.153442 0.339111 0.123047
+4 14 2 0.153564 0.339111 0.123047
+4 14 3 0.153564 0.339111 0.123047
+4 14 4 0.153564 0.339111 0.123047
+4 14 5 0.153564 0.339111 0.123108
+4 14 6 0.153687 0.339355 0.123108
+4 14 7 0.153931 0.339355 0.123169
+4 14 8 0.154297 0.3396 0.12323
+4 14 9 0.156128 0.339844 0.148926
+4 14 10 0.159546 0.340576 0.185669
+4 14 11 0.165283 0.341553 0.230957
+4 14 12 0.174194 0.343018 0.285889
+4 14 13 0.187256 0.345215 0.349854
+4 14 14 0.204834 0.347656 0.422607
+4 14 15 0.226196 0.349609 0.501465
+4 14 16 0.250488 0.351318 0.583984
+4 14 17 0.275146 0.352295 0.663086
+4 14 18 0.298584 0.352539 0.735352
+4 14 19 0.319824 0.353027 0.79834
+4 14 20 0.334473 0.349854 0.843262
+4 14 21 0.334473 0.334717 0.848633
+4 14 22 0.334961 0.32373 0.854492
+4 14 23 0.336182 0.315918 0.860352
+4 14 24 0.337891 0.310303 0.866699
+4 14 25 0.339844 0.305908 0.873535
+4 14 26 0.342285 0.302734 0.881836
+4 14 27 0.345215 0.300293 0.890625
+4 14 28 0.348877 0.299072 0.900879
+4 14 29 0.352783 0.298584 0.912109
+4 14 30 0.356934 0.298828 0.924316
+4 14 31 0.361572 0.299561 0.936523
+4 15 0 0.181885 0.40332 0.146362
+4 15 1 0.181885 0.40332 0.146362
+4 15 2 0.181885 0.40332 0.146362
+4 15 3 0.181885 0.40332 0.146362
+4 15 4 0.181885 0.40332 0.146362
+4 15 5 0.182007 0.40332 0.146362
+4 15 6 0.182007 0.403564 0.146362
+4 15 7 0.182251 0.403564 0.146362
+4 15 8 0.182495 0.403564 0.146484
+4 15 9 0.183228 0.404053 0.151367
+4 15 10 0.185913 0.404541 0.186768
+4 15 11 0.19043 0.405762 0.231079
+4 15 12 0.197632 0.406982 0.285156
+4 15 13 0.208374 0.408691 0.348633
+4 15 14 0.223145 0.4104 0.421143
+4 15 15 0.241943 0.411377 0.500488
+4 15 16 0.263672 0.410889 0.583496
+4 15 17 0.286377 0.408691 0.663574
+4 15 18 0.308105 0.405273 0.736816
+4 15 19 0.327881 0.401367 0.800781
+4 15 20 0.343262 0.395508 0.850586
+4 15 21 0.342285 0.374756 0.856445
+4 15 22 0.342041 0.358887 0.862305
+4 15 23 0.342529 0.346924 0.867676
+4 15 24 0.343262 0.338135 0.873535
+4 15 25 0.344727 0.330566 0.879883
+4 15 26 0.346436 0.324463 0.887207
+4 15 27 0.348877 0.31958 0.895508
+4 15 28 0.352051 0.316162 0.905273
+4 15 29 0.355469 0.313477 0.916016
+4 15 30 0.359375 0.312012 0.927246
+4 15 31 0.363525 0.311035 0.938965
+4 16 0 0.211792 0.470947 0.170776
+4 16 1 0.211792 0.470947 0.170776
+4 16 2 0.211792 0.470947 0.170776
+4 16 3 0.211792 0.470947 0.170776
+4 16 4 0.211914 0.470947 0.170776
+4 16 5 0.211914 0.470947 0.170776
+4 16 6 0.211914 0.470947 0.170776
+4 16 7 0.212036 0.470947 0.170776
+4 16 8 0.21228 0.470947 0.170898
+4 16 9 0.212769 0.471191 0.171021
+4 16 10 0.214233 0.47168 0.187622
+4 16 11 0.217896 0.4729 0.230225
+4 16 12 0.223633 0.474365 0.282715
+4 16 13 0.232544 0.476074 0.345215
+4 16 14 0.244995 0.477783 0.417236
+4 16 15 0.26123 0.478516 0.496826
+4 16 16 0.280518 0.477295 0.580566
+4 16 17 0.300781 0.473145 0.662598
+4 16 18 0.320801 0.466553 0.737305
+4 16 19 0.338867 0.458984 0.802246
+4 16 20 0.354004 0.450439 0.855957
+4 16 21 0.353516 0.425537 0.867188
+4 16 22 0.352295 0.404297 0.873535
+4 16 23 0.351562 0.387939 0.878906
+4 16 24 0.351562 0.375 0.883789
+4 16 25 0.352051 0.36377 0.88916
+4 16 26 0.353027 0.354248 0.895508
+4 16 27 0.354492 0.345947 0.902832
+4 16 28 0.356934 0.3396 0.912109
+4 16 29 0.359619 0.334229 0.921875
+4 16 30 0.363037 0.330322 0.932129
+4 16 31 0.366455 0.327148 0.942871
+4 17 0 0.241455 0.537598 0.194946
+4 17 1 0.241455 0.537598 0.194946
+4 17 2 0.241455 0.537598 0.194946
+4 17 3 0.241455 0.537598 0.194946
+4 17 4 0.241455 0.537598 0.194946
+4 17 5 0.241455 0.537598 0.194946
+4 17 6 0.241577 0.537598 0.194946
+4 17 7 0.241577 0.537598 0.194946
+4 17 8 0.241821 0.537598 0.194946
+4 17 9 0.242188 0.537598 0.195068
+4 17 10 0.242676 0.538086 0.19519
+4 17 11 0.245361 0.539062 0.228516
+4 17 12 0.250244 0.540527 0.279053
+4 17 13 0.257568 0.542969 0.339844
+4 17 14 0.268311 0.544922 0.410645
+4 17 15 0.282227 0.546387 0.489746
+4 17 16 0.299072 0.54541 0.574219
+4 17 17 0.317627 0.540527 0.657715
+4 17 18 0.335693 0.532715 0.734863
+4 17 19 0.352295 0.522461 0.802246
+4 17 20 0.365967 0.510742 0.857422
+4 17 21 0.367432 0.484863 0.878418
+4 17 22 0.365723 0.459229 0.887695
+4 17 23 0.364258 0.438232 0.893555
+4 17 24 0.363037 0.420898 0.898438
+4 17 25 0.362305 0.405518 0.902832
+4 17 26 0.362061 0.391846 0.908203
+4 17 27 0.362549 0.379883 0.914551
+4 17 28 0.36377 0.369629 0.921875
+4 17 29 0.365723 0.361084 0.930176
+4 17 30 0.36792 0.354004 0.939453
+4 17 31 0.37085 0.348145 0.949219
+4 18 0 0.269043 0.599609 0.217407
+4 18 1 0.269043 0.599609 0.217407
+4 18 2 0.269043 0.599609 0.217407
+4 18 3 0.269043 0.599609 0.217407
+4 18 4 0.269043 0.599609 0.217407
+4 18 5 0.269043 0.599609 0.217407
+4 18 6 0.269043 0.599609 0.217407
+4 18 7 0.269287 0.599609 0.217407
+4 18 8 0.269287 0.599609 0.217407
+4 18 9 0.269531 0.599609 0.217529
+4 18 10 0.27002 0.599609 0.217529
+4 18 11 0.27124 0.600586 0.226318
+4 18 12 0.275391 0.602051 0.27417
+4 18 13 0.281494 0.604492 0.33252
+4 18 14 0.290771 0.607422 0.401123
+4 18 15 0.302979 0.609863 0.479004
+4 18 16 0.318115 0.609863 0.563965
+4 18 17 0.334961 0.606445 0.648926
+4 18 18 0.351562 0.598633 0.728516
+4 18 19 0.366943 0.587891 0.798828
+4 18 20 0.379639 0.57373 0.856445
+4 18 21 0.383301 0.548828 0.888184
+4 18 22 0.38208 0.520996 0.90332
+4 18 23 0.379883 0.496094 0.911621
+4 18 24 0.377686 0.474609 0.916992
+4 18 25 0.375732 0.454834 0.920898
+4 18 26 0.374268 0.436768 0.925293
+4 18 27 0.373291 0.42041 0.929688
+4 18 28 0.373047 0.406006 0.935059
+4 18 29 0.373779 0.393555 0.941895
+4 18 30 0.375 0.382812 0.949219
+4 18 31 0.376709 0.373779 0.95752
+4 19 0 0.293945 0.655273 0.237549
+4 19 1 0.293945 0.655273 0.237549
+4 19 2 0.293945 0.655273 0.237549
+4 19 3 0.293945 0.655273 0.237549
+4 19 4 0.293945 0.655273 0.237549
+4 19 5 0.293945 0.655273 0.237549
+4 19 6 0.293945 0.655273 0.237549
+4 19 7 0.293945 0.655273 0.237549
+4 19 8 0.294189 0.655273 0.237671
+4 19 9 0.294434 0.655273 0.237671
+4 19 10 0.294678 0.655273 0.237671
+4 19 11 0.29541 0.655762 0.237793
+4 19 12 0.298096 0.657227 0.269043
+4 19 13 0.303467 0.659668 0.324463
+4 19 14 0.311279 0.663086 0.390625
+4 19 15 0.322266 0.666016 0.466309
+4 19 16 0.335938 0.667969 0.549805
+4 19 17 0.351562 0.666504 0.635742
+4 19 18 0.367188 0.660645 0.717773
+4 19 19 0.381348 0.649902 0.790527
+4 19 20 0.393311 0.635254 0.851074
+4 19 21 0.39917 0.613281 0.893066
+4 19 22 0.399658 0.585449 0.916992
+4 19 23 0.397705 0.558105 0.929688
+4 19 24 0.39502 0.533691 0.937012
+4 19 25 0.391846 0.509766 0.941406
+4 19 26 0.388916 0.487061 0.945312
+4 19 27 0.386475 0.466064 0.948242
+4 19 28 0.384766 0.44751 0.952148
+4 19 29 0.383789 0.430664 0.956543
+4 19 30 0.383545 0.416016 0.961914
+4 19 31 0.384033 0.40332 0.968262
+4 20 0 0.31543 0.703125 0.255127
+4 20 1 0.31543 0.703125 0.255127
+4 20 2 0.31543 0.703125 0.255127
+4 20 3 0.31543 0.703125 0.255127
+4 20 4 0.31543 0.703125 0.255127
+4 20 5 0.31543 0.703125 0.255127
+4 20 6 0.31543 0.703125 0.255127
+4 20 7 0.31543 0.703125 0.255127
+4 20 8 0.315674 0.703125 0.255127
+4 20 9 0.315674 0.703125 0.255127
+4 20 10 0.316162 0.703613 0.255127
+4 20 11 0.31665 0.703613 0.255127
+4 20 12 0.317871 0.704102 0.263916
+4 20 13 0.32251 0.707031 0.316406
+4 20 14 0.32959 0.710449 0.379395
+4 20 15 0.339111 0.714355 0.452637
+4 20 16 0.351807 0.717773 0.534668
+4 20 17 0.366211 0.718262 0.620117
+4 20 18 0.380859 0.714355 0.703125
+4 20 19 0.394531 0.705078 0.777832
+4 20 20 0.406006 0.691406 0.841797
+4 20 21 0.413818 0.672852 0.89209
+4 20 22 0.416504 0.647461 0.925293
+4 20 23 0.415527 0.620117 0.944336
+4 20 24 0.412842 0.59375 0.955078
+4 20 25 0.40918 0.566895 0.961914
+4 20 26 0.405273 0.540527 0.96582
+4 20 27 0.401367 0.515137 0.968262
+4 20 28 0.398193 0.491943 0.970703
+4 20 29 0.395508 0.470947 0.973633
+4 20 30 0.393799 0.452148 0.977051
+4 20 31 0.392822 0.435547 0.981445
+4 21 0 0.33374 0.744141 0.269775
+4 21 1 0.33374 0.744141 0.269775
+4 21 2 0.33374 0.744141 0.269775
+4 21 3 0.33374 0.744141 0.269775
+4 21 4 0.33374 0.744141 0.269775
+4 21 5 0.33374 0.744141 0.269775
+4 21 6 0.33374 0.744141 0.269775
+4 21 7 0.33374 0.744141 0.269775
+4 21 8 0.33374 0.744141 0.269775
+4 21 9 0.333984 0.744141 0.27002
+4 21 10 0.334229 0.744141 0.27002
+4 21 11 0.334717 0.744629 0.27002
+4 21 12 0.335449 0.744629 0.270264
+4 21 13 0.338867 0.74707 0.307861
+4 21 14 0.344971 0.750488 0.367676
+4 21 15 0.35376 0.754883 0.437988
+4 21 16 0.365234 0.759277 0.51709
+4 21 17 0.378662 0.761719 0.601074
+4 21 18 0.392822 0.760254 0.68457
+4 21 19 0.406006 0.753418 0.76123
+4 21 20 0.417236 0.741699 0.827637
+4 21 21 0.426025 0.725586 0.883301
+4 21 22 0.430908 0.70459 0.925293
+4 21 23 0.431885 0.679199 0.952148
+4 21 24 0.429932 0.652832 0.96875
+4 21 25 0.426514 0.624023 0.979004
+4 21 26 0.422119 0.595215 0.984863
+4 21 27 0.417236 0.566406 0.988281
+4 21 28 0.412598 0.539062 0.990234
+4 21 29 0.408691 0.51416 0.991699
+4 21 30 0.405273 0.491211 0.993652
+4 21 31 0.402832 0.470703 0.996094
+4 22 0 0.348877 0.777832 0.282227
+4 22 1 0.348877 0.777832 0.282227
+4 22 2 0.348877 0.777832 0.282227
+4 22 3 0.348877 0.777832 0.282227
+4 22 4 0.348877 0.777832 0.282227
+4 22 5 0.348877 0.777832 0.282227
+4 22 6 0.348877 0.777832 0.282227
+4 22 7 0.348877 0.777832 0.282227
+4 22 8 0.348877 0.777832 0.282227
+4 22 9 0.349121 0.77832 0.282227
+4 22 10 0.349365 0.77832 0.282227
+4 22 11 0.349609 0.77832 0.282227
+4 22 12 0.350342 0.77832 0.282471
+4 22 13 0.352295 0.779785 0.299316
+4 22 14 0.35791 0.783691 0.356201
+4 22 15 0.365723 0.788086 0.423096
+4 22 16 0.376221 0.793457 0.499268
+4 22 17 0.388672 0.797363 0.581055
+4 22 18 0.402344 0.797852 0.663574
+4 22 19 0.415283 0.793945 0.741211
+4 22 20 0.426514 0.784668 0.80957
+4 22 21 0.435547 0.770996 0.868164
+4 22 22 0.441895 0.75293 0.916504
+4 22 23 0.444824 0.731445 0.951172
+4 22 24 0.44458 0.706543 0.974121
+4 22 25 0.442139 0.678711 0.989746
+4 22 26 0.437988 0.648438 1
+4 22 27 0.432861 0.617188 1
+4 22 28 0.42749 0.587402 1
+4 22 29 0.422363 0.558594 1
+4 22 30 0.417725 0.531738 1
+4 22 31 0.413818 0.507324 1
+4 23 0 0.361084 0.805176 0.291992
+4 23 1 0.361084 0.805176 0.291992
+4 23 2 0.361084 0.805176 0.291992
+4 23 3 0.361084 0.805176 0.291992
+4 23 4 0.361084 0.805176 0.291992
+4 23 5 0.361084 0.805176 0.291992
+4 23 6 0.361084 0.805176 0.291992
+4 23 7 0.361084 0.805176 0.291992
+4 23 8 0.361084 0.805176 0.291992
+4 23 9 0.361084 0.805176 0.291992
+4 23 10 0.361328 0.805176 0.291992
+4 23 11 0.361572 0.805176 0.291992
+4 23 12 0.362061 0.805664 0.292236
+4 23 13 0.363037 0.805664 0.292236
+4 23 14 0.36792 0.80957 0.345215
+4 23 15 0.375 0.814453 0.408936
+4 23 16 0.384766 0.819824 0.482178
+4 23 17 0.396484 0.825195 0.561523
+4 23 18 0.409424 0.827637 0.64209
+4 23 19 0.422119 0.826172 0.719727
+4 23 20 0.43335 0.819336 0.789062
+4 23 21 0.442627 0.808105 0.850098
+4 23 22 0.449707 0.79248 0.901367
+4 23 23 0.454102 0.773926 0.941406
+4 23 24 0.455811 0.752441 0.971191
+4 23 25 0.454834 0.726562 0.993652
+4 23 26 0.45166 0.696777 1
+4 23 27 0.447021 0.665039 1
+4 23 28 0.441162 0.632812 1
+4 23 29 0.435303 0.601074 1
+4 23 30 0.429688 0.571289 1
+4 23 31 0.424805 0.543457 1
+4 24 0 0.370605 0.82666 0.299805
+4 24 1 0.370605 0.82666 0.299805
+4 24 2 0.370605 0.82666 0.299805
+4 24 3 0.370605 0.82666 0.299805
+4 24 4 0.370605 0.82666 0.299805
+4 24 5 0.370605 0.82666 0.299805
+4 24 6 0.370605 0.82666 0.299805
+4 24 7 0.370605 0.82666 0.299805
+4 24 8 0.37085 0.82666 0.299805
+4 24 9 0.37085 0.82666 0.299805
+4 24 10 0.371094 0.827148 0.299805
+4 24 11 0.371338 0.827148 0.300049
+4 24 12 0.371826 0.827148 0.300049
+4 24 13 0.372559 0.827637 0.300049
+4 24 14 0.375977 0.830078 0.334717
+4 24 15 0.382568 0.834961 0.395264
+4 24 16 0.391357 0.84082 0.465576
+4 24 17 0.402588 0.84668 0.541992
+4 24 18 0.414795 0.850586 0.621094
+4 24 19 0.427246 0.851074 0.697266
+4 24 20 0.438477 0.847168 0.767578
+4 24 21 0.447998 0.838379 0.830078
+4 24 22 0.455566 0.824707 0.883789
+4 24 23 0.460449 0.808594 0.927246
+4 24 24 0.463623 0.790039 0.961426
+4 24 25 0.4646 0.76709 0.989746
+4 24 26 0.462891 0.739258 1
+4 24 27 0.458984 0.708008 1
+4 24 28 0.453613 0.674805 1
+4 24 29 0.44751 0.641602 1
+4 24 30 0.441162 0.609375 1
+4 24 31 0.435303 0.578613 1
+4 25 0 0.37915 0.846191 0.306885
+4 25 1 0.37915 0.846191 0.306885
+4 25 2 0.37915 0.846191 0.306885
+4 25 3 0.37915 0.846191 0.306885
+4 25 4 0.37915 0.846191 0.306885
+4 25 5 0.37915 0.846191 0.306885
+4 25 6 0.37915 0.846191 0.306885
+4 25 7 0.379395 0.846191 0.306885
+4 25 8 0.379395 0.846191 0.306885
+4 25 9 0.379395 0.846191 0.306885
+4 25 10 0.379639 0.846191 0.306885
+4 25 11 0.379883 0.846191 0.306885
+4 25 12 0.380127 0.846191 0.306885
+4 25 13 0.380859 0.84668 0.307129
+4 25 14 0.383057 0.848145 0.323975
+4 25 15 0.388916 0.853027 0.381348
+4 25 16 0.396973 0.858887 0.448242
+4 25 17 0.407227 0.865234 0.521484
+4 25 18 0.418945 0.870117 0.597656
+4 25 19 0.431152 0.872559 0.672852
+4 25 20 0.442383 0.871094 0.742676
+4 25 21 0.452148 0.865234 0.806641
+4 25 22 0.460205 0.854492 0.862305
+4 25 23 0.46582 0.84082 0.908203
+4 25 24 0.469727 0.824707 0.945801
+4 25 25 0.472168 0.804688 0.979004
+4 25 26 0.472168 0.779785 1
+4 25 27 0.469482 0.75 1
+4 25 28 0.464844 0.717285 1
+4 25 29 0.458984 0.683105 1
+4 25 30 0.452393 0.648926 1
+4 25 31 0.445801 0.615723 1
+4 26 0 0.386963 0.863281 0.312988
+4 26 1 0.386963 0.863281 0.312988
+4 26 2 0.386963 0.863281 0.312988
+4 26 3 0.386963 0.863281 0.312988
+4 26 4 0.386963 0.863281 0.312988
+4 26 5 0.386963 0.863281 0.312988
+4 26 6 0.386963 0.863281 0.312988
+4 26 7 0.386963 0.863281 0.312988
+4 26 8 0.386963 0.863281 0.312988
+4 26 9 0.387207 0.863281 0.313232
+4 26 10 0.387207 0.863281 0.313232
+4 26 11 0.387451 0.863281 0.313232
+4 26 12 0.387695 0.86377 0.313232
+4 26 13 0.388428 0.86377 0.313232
+4 26 14 0.38916 0.864258 0.313477
+4 26 15 0.394531 0.868652 0.367188
+4 26 16 0.401855 0.874512 0.43042
+4 26 17 0.411377 0.880859 0.5
+4 26 18 0.422363 0.887207 0.57373
+4 26 19 0.433838 0.891113 0.646484
+4 26 20 0.445068 0.891602 0.715332
+4 26 21 0.455078 0.888672 0.779297
+4 26 22 0.463623 0.880859 0.836914
+4 26 23 0.469971 0.870117 0.885254
+4 26 24 0.474609 0.856445 0.925293
+4 26 25 0.477783 0.838867 0.961914
+4 26 26 0.479248 0.816895 0.994141
+4 26 27 0.478271 0.790039 1
+4 26 28 0.474854 0.758789 1
+4 26 29 0.469727 0.724609 1
+4 26 30 0.463135 0.689453 1
+4 26 31 0.456299 0.654785 1
+4 27 0 0.393799 0.878418 0.318604
+4 27 1 0.393799 0.878418 0.318604
+4 27 2 0.393799 0.878418 0.318604
+4 27 3 0.393799 0.878418 0.318604
+4 27 4 0.393799 0.878418 0.318604
+4 27 5 0.393799 0.878418 0.318604
+4 27 6 0.393799 0.878418 0.318604
+4 27 7 0.393799 0.878418 0.318604
+4 27 8 0.393799 0.878418 0.318604
+4 27 9 0.393799 0.878418 0.318604
+4 27 10 0.394043 0.878418 0.318604
+4 27 11 0.394043 0.878418 0.318604
+4 27 12 0.394531 0.878906 0.318604
+4 27 13 0.39502 0.878906 0.318848
+4 27 14 0.395752 0.878906 0.318848
+4 27 15 0.399414 0.882324 0.353027
+4 27 16 0.406006 0.887695 0.412598
+4 27 17 0.414551 0.894531 0.478516
+4 27 18 0.424805 0.900879 0.54834
+4 27 19 0.435791 0.90625 0.618652
+4 27 20 0.446533 0.908691 0.686035
+4 27 21 0.456787 0.908203 0.749512
+4 27 22 0.465576 0.903809 0.807617
+4 27 23 0.472656 0.895508 0.857422
+4 27 24 0.478027 0.884766 0.900391
+4 27 25 0.481934 0.869629 0.939941
+4 27 26 0.484375 0.850586 0.975586
+4 27 27 0.484863 0.82666 1
+4 27 28 0.48291 0.797852 1
+4 27 29 0.478516 0.764648 1
+4 27 30 0.472656 0.729492 1
+4 27 31 0.466064 0.693848 1
+4 28 0 0.399414 0.891113 0.323242
+4 28 1 0.399414 0.891113 0.323242
+4 28 2 0.399414 0.891113 0.323242
+4 28 3 0.399414 0.891113 0.323242
+4 28 4 0.399414 0.891113 0.323242
+4 28 5 0.399414 0.891113 0.323242
+4 28 6 0.399414 0.891113 0.323242
+4 28 7 0.399414 0.891113 0.323242
+4 28 8 0.399414 0.891113 0.323242
+4 28 9 0.399414 0.891113 0.323242
+4 28 10 0.399658 0.891113 0.323242
+4 28 11 0.399658 0.891113 0.323242
+4 28 12 0.399902 0.891113 0.323242
+4 28 13 0.400391 0.891602 0.323242
+4 28 14 0.400879 0.891602 0.323486
+4 28 15 0.403076 0.893066 0.338623
+4 28 16 0.40918 0.898438 0.394531
+4 28 17 0.416992 0.905273 0.456787
+4 28 18 0.42627 0.912109 0.522949
+4 28 19 0.436523 0.917969 0.589844
+4 28 20 0.447021 0.921875 0.655273
+4 28 21 0.457031 0.92334 0.717285
+4 28 22 0.466064 0.921875 0.775391
+4 28 23 0.473633 0.916504 0.826172
+4 28 24 0.479492 0.908691 0.870605
+4 28 25 0.484375 0.896484 0.912598
+4 28 26 0.487793 0.880371 0.951172
+4 28 27 0.489258 0.858887 0.985352
+4 28 28 0.48877 0.833008 1
+4 28 29 0.48584 0.802246 1
+4 28 30 0.481201 0.768555 1
+4 28 31 0.475098 0.733398 1
+4 29 0 0.403809 0.900879 0.32666
+4 29 1 0.403809 0.900879 0.32666
+4 29 2 0.403809 0.900879 0.32666
+4 29 3 0.403809 0.900879 0.32666
+4 29 4 0.403809 0.900879 0.32666
+4 29 5 0.403809 0.900879 0.32666
+4 29 6 0.403809 0.900879 0.32666
+4 29 7 0.403809 0.900879 0.32666
+4 29 8 0.403809 0.900879 0.32666
+4 29 9 0.403809 0.900879 0.32666
+4 29 10 0.403809 0.900879 0.32666
+4 29 11 0.404053 0.900879 0.32666
+4 29 12 0.404297 0.900879 0.32666
+4 29 13 0.404541 0.900879 0.32666
+4 29 14 0.405029 0.901367 0.326904
+4 29 15 0.406006 0.901367 0.326904
+4 29 16 0.411133 0.90625 0.376221
+4 29 17 0.418213 0.912598 0.43457
+4 29 18 0.426758 0.919434 0.496826
+4 29 19 0.436279 0.92627 0.560547
+4 29 20 0.446045 0.931641 0.622559
+4 29 21 0.455811 0.93457 0.683105
+4 29 22 0.465088 0.935059 0.740234
+4 29 23 0.4729 0.932617 0.791016
+4 29 24 0.479248 0.927734 0.836426
+4 29 25 0.484863 0.918945 0.880371
+4 29 26 0.489258 0.905762 0.921875
+4 29 27 0.491943 0.887695 0.959473
+4 29 28 0.492676 0.864746 0.991699
+4 29 29 0.491455 0.837402 1
+4 29 30 0.488281 0.806641 1
+4 29 31 0.483398 0.772461 1
+4 30 0 0.406494 0.907227 0.328857
+4 30 1 0.406494 0.907227 0.328857
+4 30 2 0.406494 0.907227 0.328857
+4 30 3 0.406494 0.907227 0.328857
+4 30 4 0.406494 0.907227 0.328857
+4 30 5 0.406494 0.907227 0.328857
+4 30 6 0.406494 0.907227 0.328857
+4 30 7 0.406494 0.907227 0.328857
+4 30 8 0.406494 0.907227 0.328857
+4 30 9 0.406494 0.907227 0.328857
+4 30 10 0.406738 0.907227 0.328857
+4 30 11 0.406738 0.907227 0.329102
+4 30 12 0.406982 0.907227 0.329102
+4 30 13 0.407227 0.907227 0.329102
+4 30 14 0.407715 0.907227 0.329102
+4 30 15 0.408447 0.907715 0.329102
+4 30 16 0.411621 0.910645 0.35791
+4 30 17 0.417969 0.916504 0.412354
+4 30 18 0.425781 0.92334 0.470703
+4 30 19 0.43457 0.930664 0.530273
+4 30 20 0.443848 0.936523 0.589355
+4 30 21 0.453125 0.940918 0.647461
+4 30 22 0.462158 0.943359 0.702637
+4 30 23 0.470215 0.943359 0.75293
+4 30 24 0.477051 0.940918 0.798828
+4 30 25 0.483154 0.935059 0.843262
+4 30 26 0.488525 0.925293 0.886719
+4 30 27 0.492432 0.911133 0.927734
+4 30 28 0.494629 0.892578 0.964844
+4 30 29 0.495117 0.869141 0.99707
+4 30 30 0.493652 0.841309 1
+4 30 31 0.490234 0.80957 1
+4 31 0 0.408691 0.911621 0.330566
+4 31 1 0.408691 0.911621 0.330566
+4 31 2 0.408691 0.911621 0.330566
+4 31 3 0.408691 0.911621 0.330566
+4 31 4 0.408691 0.911621 0.330566
+4 31 5 0.408691 0.911621 0.330566
+4 31 6 0.408691 0.911621 0.330566
+4 31 7 0.408691 0.911621 0.330566
+4 31 8 0.408691 0.911621 0.330566
+4 31 9 0.408691 0.911621 0.330566
+4 31 10 0.408691 0.912109 0.330811
+4 31 11 0.408936 0.912109 0.330811
+4 31 12 0.408936 0.912109 0.330811
+4 31 13 0.40918 0.912109 0.330811
+4 31 14 0.409668 0.912109 0.330811
+4 31 15 0.410156 0.912109 0.330811
+4 31 16 0.411865 0.913574 0.340576
+4 31 17 0.41748 0.918945 0.390625
+4 31 18 0.424316 0.925293 0.444824
+4 31 19 0.432129 0.931641 0.500488
+4 31 20 0.44043 0.937988 0.556152
+4 31 21 0.449219 0.943359 0.61084
+4 31 22 0.458008 0.947266 0.664062
+4 31 23 0.46582 0.949219 0.712891
+4 31 24 0.4729 0.94873 0.757812
+4 31 25 0.479736 0.946289 0.803223
+4 31 26 0.48584 0.94043 0.848145
+4 31 27 0.490967 0.930176 0.891602
+4 31 28 0.494873 0.916016 0.932129
+4 31 29 0.496826 0.896484 0.969238
+4 31 30 0.49707 0.872559 1
+4 31 31 0.495361 0.844238 1
+5 0 0 0.0599976 0.0462036 0
+5 0 1 0.0601196 0.0462036 0.0184174
+5 0 2 0.0600281 0.04599 0.0284729
+5 0 3 0.0591431 0.0450745 0.038208
+5 0 4 0.0530701 0.0410156 0.0446472
+5 0 5 0.0496521 0.0392761 0.0519409
+5 0 6 0.0514832 0.0407104 0.0664673
+5 0 7 0.053772 0.04245 0.0843506
+5 0 8 0.0577698 0.0454712 0.107056
+5 0 9 0.0648193 0.0509033 0.136353
+5 0 10 0.076355 0.0598755 0.174927
+5 0 11 0.0930176 0.0728149 0.224487
+5 0 12 0.113647 0.0888672 0.282959
+5 0 13 0.137695 0.107605 0.348877
+5 0 14 0.164795 0.128662 0.421875
+5 0 15 0.19397 0.151489 0.499756
+5 0 16 0.224487 0.175293 0.580566
+5 0 17 0.25415 0.198364 0.658203
+5 0 18 0.28125 0.219604 0.729492
+5 0 19 0.305176 0.238281 0.79248
+5 0 20 0.318604 0.248657 0.827637
+5 0 21 0.321045 0.250732 0.834473
+5 0 22 0.32373 0.252686 0.841309
+5 0 23 0.326416 0.254883 0.848633
+5 0 24 0.329346 0.25708 0.856445
+5 0 25 0.33252 0.259521 0.864258
+5 0 26 0.335938 0.262207 0.873535
+5 0 27 0.3396 0.265137 0.883301
+5 0 28 0.343994 0.268555 0.894531
+5 0 29 0.348633 0.272217 0.906738
+5 0 30 0.353516 0.275879 0.919434
+5 0 31 0.358398 0.279785 0.932129
+5 1 0 0.0594177 0.046814 0
+5 1 1 0.0596313 0.046875 0.0183105
+5 1 2 0.0597839 0.046814 0.0282288
+5 1 3 0.0591431 0.0460815 0.0380249
+5 1 4 0.0535583 0.0421143 0.0449829
+5 1 5 0.0496826 0.0399475 0.0519409
+5 1 6 0.0515442 0.0413513 0.0664673
+5 1 7 0.053833 0.0430298 0.0843506
+5 1 8 0.0578003 0.04599 0.107056
+5 1 9 0.0648193 0.0513306 0.136353
+5 1 10 0.076355 0.0601807 0.174927
+5 1 11 0.0930176 0.0730591 0.224487
+5 1 12 0.113647 0.0890503 0.282959
+5 1 13 0.137695 0.107727 0.348877
+5 1 14 0.164795 0.128784 0.421875
+5 1 15 0.19397 0.151611 0.499756
+5 1 16 0.224487 0.175293 0.580566
+5 1 17 0.25415 0.198364 0.658203
+5 1 18 0.28125 0.219604 0.729492
+5 1 19 0.305176 0.238281 0.79248
+5 1 20 0.318604 0.248657 0.827637
+5 1 21 0.321045 0.250732 0.834473
+5 1 22 0.32373 0.252686 0.841309
+5 1 23 0.326416 0.254883 0.848633
+5 1 24 0.329346 0.25708 0.856445
+5 1 25 0.33252 0.259521 0.864258
+5 1 26 0.335938 0.262207 0.873535
+5 1 27 0.3396 0.265137 0.883301
+5 1 28 0.343994 0.268555 0.894531
+5 1 29 0.348633 0.272217 0.906738
+5 1 30 0.353516 0.275879 0.919434
+5 1 31 0.358398 0.279785 0.932129
+5 2 0 0.0581665 0.0475464 0
+5 2 1 0.0585327 0.0477295 0.0184174
+5 2 2 0.059021 0.0479431 0.0278015
+5 2 3 0.0588379 0.0475159 0.0376282
+5 2 4 0.0544739 0.0440979 0.0455627
+5 2 5 0.0498047 0.0410767 0.0519714
+5 2 6 0.0516357 0.0424194 0.0664673
+5 2 7 0.0539246 0.0440369 0.0843506
+5 2 8 0.0578918 0.046875 0.107056
+5 2 9 0.0648804 0.0520325 0.136353
+5 2 10 0.076416 0.0607605 0.174927
+5 2 11 0.0930786 0.0734863 0.224487
+5 2 12 0.113708 0.0893555 0.282959
+5 2 13 0.137695 0.107971 0.348877
+5 2 14 0.164795 0.129028 0.421875
+5 2 15 0.19397 0.151733 0.499756
+5 2 16 0.224487 0.175415 0.580566
+5 2 17 0.25415 0.198486 0.658203
+5 2 18 0.28125 0.219727 0.729492
+5 2 19 0.305176 0.238403 0.79248
+5 2 20 0.318604 0.248779 0.827637
+5 2 21 0.321045 0.250732 0.834473
+5 2 22 0.32373 0.252686 0.841309
+5 2 23 0.326416 0.254883 0.848633
+5 2 24 0.329346 0.25708 0.856445
+5 2 25 0.33252 0.259521 0.864258
+5 2 26 0.335938 0.262207 0.873535
+5 2 27 0.3396 0.265137 0.883301
+5 2 28 0.343994 0.268555 0.894531
+5 2 29 0.348633 0.272217 0.906738
+5 2 30 0.353516 0.275879 0.919434
+5 2 31 0.358398 0.279785 0.932129
+5 3 0 0.055603 0.0480957 0.0115814
+5 3 1 0.0559692 0.0483398 0.0194702
+5 3 2 0.0567017 0.0487976 0.0272675
+5 3 3 0.0578918 0.0494995 0.0367737
+5 3 4 0.0561218 0.0476685 0.0465088
+5 3 5 0.0499878 0.0430298 0.052002
+5 3 6 0.0518188 0.0443115 0.0664673
+5 3 7 0.0540771 0.0457764 0.0844116
+5 3 8 0.0580139 0.0484009 0.107117
+5 3 9 0.0650024 0.0533142 0.136353
+5 3 10 0.0765381 0.0617676 0.174927
+5 3 11 0.0931396 0.0742798 0.224487
+5 3 12 0.113708 0.0899658 0.282959
+5 3 13 0.137817 0.108459 0.348877
+5 3 14 0.164795 0.129272 0.421875
+5 3 15 0.19397 0.151978 0.499756
+5 3 16 0.224487 0.175659 0.580566
+5 3 17 0.25415 0.198608 0.658203
+5 3 18 0.28125 0.219849 0.729492
+5 3 19 0.305176 0.238403 0.79248
+5 3 20 0.318604 0.248779 0.827637
+5 3 21 0.321045 0.250732 0.834473
+5 3 22 0.32373 0.25293 0.841309
+5 3 23 0.326416 0.254883 0.848633
+5 3 24 0.329346 0.25708 0.856445
+5 3 25 0.33252 0.259521 0.864258
+5 3 26 0.335938 0.262207 0.873535
+5 3 27 0.3396 0.265137 0.883301
+5 3 28 0.343994 0.268555 0.894531
+5 3 29 0.348633 0.272217 0.906738
+5 3 30 0.353516 0.275879 0.919434
+5 3 31 0.358398 0.279785 0.932129
+5 4 0 0.0518799 0.0484924 0.0185547
+5 4 1 0.0519714 0.0485535 0.0224457
+5 4 2 0.0522461 0.0487366 0.0275574
+5 4 3 0.0531311 0.049408 0.0346375
+5 4 4 0.0558777 0.0515442 0.0457458
+5 4 5 0.050354 0.0464172 0.052063
+5 4 6 0.052124 0.0475769 0.0665283
+5 4 7 0.0543823 0.0488281 0.0844116
+5 4 8 0.0582886 0.0511169 0.107117
+5 4 9 0.0652466 0.055603 0.136353
+5 4 10 0.0766602 0.0635986 0.174805
+5 4 11 0.0932617 0.0757446 0.224487
+5 4 12 0.113831 0.0911255 0.282959
+5 4 13 0.137817 0.109314 0.348877
+5 4 14 0.164917 0.130005 0.421875
+5 4 15 0.194092 0.152466 0.499756
+5 4 16 0.224609 0.176025 0.580566
+5 4 17 0.25415 0.198853 0.658203
+5 4 18 0.28125 0.219971 0.729492
+5 4 19 0.305176 0.238647 0.79248
+5 4 20 0.318604 0.248901 0.827637
+5 4 21 0.321045 0.250732 0.834473
+5 4 22 0.32373 0.25293 0.841309
+5 4 23 0.32666 0.255127 0.848633
+5 4 24 0.329346 0.25708 0.856445
+5 4 25 0.33252 0.259521 0.864258
+5 4 26 0.335938 0.262207 0.873535
+5 4 27 0.3396 0.265137 0.883301
+5 4 28 0.343994 0.268555 0.894531
+5 4 29 0.348633 0.272217 0.906738
+5 4 30 0.353516 0.275879 0.919434
+5 4 31 0.358398 0.279785 0.932129
+5 5 0 0.0527649 0.054657 0.0219727
+5 5 1 0.0526733 0.0545044 0.0251007
+5 5 2 0.0524902 0.0542603 0.0293884
+5 5 3 0.0522156 0.0538635 0.0351562
+5 5 4 0.0518494 0.0532227 0.0427856
+5 5 5 0.0511475 0.052124 0.0523071
+5 5 6 0.0527344 0.053009 0.0665283
+5 5 7 0.0549622 0.0539856 0.0844727
+5 5 8 0.0588074 0.0557861 0.107178
+5 5 9 0.0656128 0.0596313 0.136475
+5 5 10 0.0769653 0.0669556 0.174805
+5 5 11 0.0935059 0.0784302 0.224365
+5 5 12 0.114014 0.0932007 0.282959
+5 5 13 0.137939 0.110901 0.348877
+5 5 14 0.165039 0.131104 0.421875
+5 5 15 0.194092 0.15332 0.499756
+5 5 16 0.224609 0.176636 0.580566
+5 5 17 0.25415 0.199341 0.658203
+5 5 18 0.28125 0.220459 0.729492
+5 5 19 0.30542 0.239014 0.79248
+5 5 20 0.318604 0.249146 0.827637
+5 5 21 0.321045 0.250977 0.834473
+5 5 22 0.32373 0.253174 0.841309
+5 5 23 0.32666 0.255127 0.849121
+5 5 24 0.329346 0.257324 0.856445
+5 5 25 0.33252 0.259766 0.864258
+5 5 26 0.335938 0.262451 0.873535
+5 5 27 0.3396 0.265381 0.883301
+5 5 28 0.343994 0.268555 0.894531
+5 5 29 0.348633 0.272217 0.906738
+5 5 30 0.353516 0.275879 0.919434
+5 5 31 0.358398 0.279785 0.932129
+5 6 0 0.0527039 0.0622864 0.024231
+5 6 1 0.0527039 0.0622864 0.0249786
+5 6 2 0.0526123 0.0620728 0.0291138
+5 6 3 0.0524597 0.0617065 0.034729
+5 6 4 0.0522461 0.0611572 0.0422668
+5 6 5 0.0524902 0.0608826 0.0525818
+5 6 6 0.053833 0.0613708 0.0665283
+5 6 7 0.0559998 0.0620422 0.0844727
+5 6 8 0.0597229 0.0632935 0.107239
+5 6 9 0.0663452 0.0662842 0.136475
+5 6 10 0.0775146 0.0726929 0.174805
+5 6 11 0.0939331 0.083252 0.224365
+5 6 12 0.114319 0.0969849 0.282959
+5 6 13 0.138306 0.113831 0.348877
+5 6 14 0.165161 0.133423 0.421875
+5 6 15 0.194336 0.155029 0.499756
+5 6 16 0.224731 0.177979 0.580566
+5 6 17 0.25415 0.200317 0.658203
+5 6 18 0.281494 0.221191 0.729492
+5 6 19 0.30542 0.239624 0.79248
+5 6 20 0.318604 0.249756 0.827637
+5 6 21 0.321045 0.251465 0.834473
+5 6 22 0.32373 0.253418 0.841797
+5 6 23 0.32666 0.255371 0.849121
+5 6 24 0.329346 0.257568 0.856445
+5 6 25 0.33252 0.26001 0.864258
+5 6 26 0.335938 0.262451 0.873535
+5 6 27 0.339844 0.265381 0.883301
+5 6 28 0.343994 0.268799 0.89502
+5 6 29 0.348633 0.272461 0.906738
+5 6 30 0.353516 0.276123 0.919434
+5 6 31 0.358398 0.279785 0.932129
+5 7 0 0.0533752 0.0731201 0.0277252
+5 7 1 0.0534058 0.0731812 0.0277252
+5 7 2 0.0534363 0.0731812 0.0289612
+5 7 3 0.0535583 0.0731201 0.0344543
+5 7 4 0.0538025 0.0730591 0.0420837
+5 7 5 0.0544434 0.0731812 0.0525818
+5 7 6 0.0556641 0.0735474 0.0664062
+5 7 7 0.0578003 0.0739746 0.0843506
+5 7 8 0.0614319 0.0747681 0.1073
+5 7 9 0.0678101 0.0768433 0.136475
+5 7 10 0.0786133 0.0821533 0.174805
+5 7 11 0.0947876 0.0914307 0.224365
+5 7 12 0.11499 0.103821 0.282715
+5 7 13 0.138794 0.119263 0.348877
+5 7 14 0.165527 0.137573 0.421875
+5 7 15 0.19458 0.158203 0.499756
+5 7 16 0.224976 0.18042 0.580566
+5 7 17 0.254395 0.202271 0.658203
+5 7 18 0.281494 0.222656 0.72998
+5 7 19 0.30542 0.240723 0.79248
+5 7 20 0.318848 0.250732 0.827637
+5 7 21 0.321289 0.252197 0.834473
+5 7 22 0.323975 0.253906 0.841797
+5 7 23 0.32666 0.255859 0.849121
+5 7 24 0.329346 0.258057 0.856445
+5 7 25 0.33252 0.260254 0.864746
+5 7 26 0.335938 0.262939 0.873535
+5 7 27 0.339844 0.265625 0.883301
+5 7 28 0.343994 0.269043 0.89502
+5 7 29 0.348633 0.272461 0.906738
+5 7 30 0.353516 0.276123 0.919434
+5 7 31 0.358398 0.280029 0.932129
+5 8 0 0.0565186 0.0895386 0.0332947
+5 8 1 0.0565491 0.0895386 0.0332947
+5 8 2 0.0565796 0.0895386 0.0333252
+5 8 3 0.0567017 0.0895996 0.0348511
+5 8 4 0.0570068 0.0897217 0.0421753
+5 8 5 0.0576477 0.0898438 0.0523987
+5 8 6 0.0588379 0.09021 0.06604
+5 8 7 0.0608826 0.0906372 0.0839844
+5 8 8 0.0643921 0.0911865 0.107178
+5 8 9 0.0704346 0.0925903 0.136597
+5 8 10 0.0807495 0.0967407 0.174683
+5 8 11 0.0963745 0.104736 0.224243
+5 8 12 0.116272 0.115356 0.282715
+5 8 13 0.139771 0.128784 0.349121
+5 8 14 0.16626 0.145264 0.422119
+5 8 15 0.19519 0.164307 0.499756
+5 8 16 0.225464 0.185059 0.580566
+5 8 17 0.254639 0.205933 0.658203
+5 8 18 0.281738 0.225586 0.72998
+5 8 19 0.305664 0.243042 0.79248
+5 8 20 0.319092 0.252686 0.828125
+5 8 21 0.321533 0.253662 0.834473
+5 8 22 0.324219 0.255371 0.841797
+5 8 23 0.326904 0.25708 0.849121
+5 8 24 0.32959 0.258789 0.856445
+5 8 25 0.33252 0.260986 0.864746
+5 8 26 0.335938 0.263428 0.873535
+5 8 27 0.339844 0.266357 0.883789
+5 8 28 0.344238 0.269531 0.89502
+5 8 29 0.348633 0.272949 0.906738
+5 8 30 0.353516 0.276611 0.919434
+5 8 31 0.358398 0.280273 0.932129
+5 9 0 0.0624695 0.111572 0.0410461
+5 9 1 0.0625 0.111572 0.0410461
+5 9 2 0.0625 0.111633 0.0410461
+5 9 3 0.062561 0.111633 0.0410767
+5 9 4 0.0627441 0.111755 0.0428772
+5 9 5 0.0632935 0.111877 0.0526123
+5 9 6 0.06427 0.112122 0.0657959
+5 9 7 0.0661011 0.112549 0.0834961
+5 9 8 0.069397 0.11322 0.106812
+5 9 9 0.0750732 0.114502 0.136719
+5 9 10 0.0845947 0.117798 0.174927
+5 9 11 0.0994263 0.124573 0.224121
+5 9 12 0.118652 0.133423 0.282715
+5 9 13 0.141602 0.144531 0.349121
+5 9 14 0.167725 0.158447 0.422119
+5 9 15 0.196167 0.174927 0.5
+5 9 16 0.226196 0.193604 0.580566
+5 9 17 0.255371 0.212646 0.658691
+5 9 18 0.282471 0.230835 0.72998
+5 9 19 0.306152 0.247437 0.792969
+5 9 20 0.31958 0.256104 0.828613
+5 9 21 0.321777 0.256592 0.834961
+5 9 22 0.324463 0.257568 0.842285
+5 9 23 0.327148 0.259033 0.849609
+5 9 24 0.329834 0.260498 0.856934
+5 9 25 0.332764 0.262451 0.864746
+5 9 26 0.336182 0.264648 0.874023
+5 9 27 0.340088 0.267334 0.883789
+5 9 28 0.344238 0.270508 0.89502
+5 9 29 0.348877 0.273682 0.907227
+5 9 30 0.353516 0.277344 0.919434
+5 9 31 0.358643 0.281006 0.932617
+5 10 0 0.0723877 0.140747 0.0514526
+5 10 1 0.0723877 0.140869 0.0514526
+5 10 2 0.0724487 0.140869 0.0514832
+5 10 3 0.0724487 0.140869 0.0514832
+5 10 4 0.0725708 0.140869 0.0515137
+5 10 5 0.0728149 0.140991 0.0541992
+5 10 6 0.0735474 0.141113 0.0668945
+5 10 7 0.0750122 0.141357 0.0841675
+5 10 8 0.0777588 0.141846 0.1073
+5 10 9 0.0827637 0.143066 0.137451
+5 10 10 0.0912476 0.145752 0.175659
+5 10 11 0.104736 0.151489 0.224365
+5 10 12 0.122742 0.158691 0.282715
+5 10 13 0.144775 0.167603 0.349121
+5 10 14 0.170166 0.178589 0.422363
+5 10 15 0.19812 0.192017 0.500488
+5 10 16 0.227783 0.207642 0.581055
+5 10 17 0.256592 0.223999 0.658691
+5 10 18 0.283447 0.240112 0.730469
+5 10 19 0.306885 0.254883 0.793457
+5 10 20 0.320312 0.262451 0.82959
+5 10 21 0.32251 0.261719 0.835938
+5 10 22 0.324951 0.261719 0.842773
+5 10 23 0.327637 0.262451 0.850098
+5 10 24 0.330322 0.263672 0.857422
+5 10 25 0.333252 0.265137 0.865234
+5 10 26 0.33667 0.266846 0.874023
+5 10 27 0.340332 0.269287 0.884277
+5 10 28 0.344482 0.271973 0.895508
+5 10 29 0.349121 0.275146 0.907227
+5 10 30 0.35376 0.278564 0.919922
+5 10 31 0.358643 0.281982 0.932617
+5 11 0 0.0872192 0.179321 0.0653076
+5 11 1 0.0872803 0.179321 0.0653076
+5 11 2 0.0872803 0.179321 0.0653076
+5 11 3 0.0873413 0.179321 0.0653076
+5 11 4 0.0874023 0.179321 0.0653076
+5 11 5 0.0875244 0.179443 0.0653687
+5 11 6 0.0878906 0.179565 0.0699463
+5 11 7 0.0889893 0.179565 0.0869141
+5 11 8 0.0910645 0.179688 0.109863
+5 11 9 0.0950928 0.180298 0.140015
+5 11 10 0.102112 0.182251 0.177979
+5 11 11 0.113464 0.186279 0.225464
+5 11 12 0.129639 0.192017 0.282959
+5 11 13 0.150146 0.198975 0.349365
+5 11 14 0.174438 0.207275 0.422607
+5 11 15 0.201416 0.217285 0.500488
+5 11 16 0.230347 0.229248 0.581543
+5 11 17 0.258789 0.242188 0.659668
+5 11 18 0.284912 0.255127 0.730957
+5 11 19 0.30835 0.267334 0.793945
+5 11 20 0.322021 0.272949 0.831055
+5 11 21 0.32373 0.270264 0.837402
+5 11 22 0.325928 0.268799 0.844238
+5 11 23 0.328369 0.268555 0.851074
+5 11 24 0.331055 0.268799 0.858398
+5 11 25 0.333984 0.269531 0.866211
+5 11 26 0.337158 0.270752 0.875
+5 11 27 0.34082 0.272705 0.884766
+5 11 28 0.344971 0.274902 0.895996
+5 11 29 0.349365 0.277588 0.907715
+5 11 30 0.354004 0.280518 0.92041
+5 11 31 0.358887 0.283936 0.933105
+5 12 0 0.106445 0.226196 0.0822144
+5 12 1 0.106506 0.226196 0.0822144
+5 12 2 0.106506 0.226196 0.0822144
+5 12 3 0.106506 0.226196 0.0822754
+5 12 4 0.106567 0.226318 0.0822754
+5 12 5 0.106689 0.226318 0.0822754
+5 12 6 0.106873 0.22644 0.0823364
+5 12 7 0.107483 0.226562 0.0906372
+5 12 8 0.109192 0.226685 0.113403
+5 12 9 0.112305 0.227051 0.143555
+5 12 10 0.117737 0.227905 0.181152
+5 12 11 0.126709 0.230103 0.227417
+5 12 12 0.140259 0.234009 0.283936
+5 12 13 0.158691 0.239136 0.349609
+5 12 14 0.181152 0.245117 0.422852
+5 12 15 0.206787 0.251953 0.501465
+5 12 16 0.234619 0.26001 0.58252
+5 12 17 0.262207 0.268799 0.660645
+5 12 18 0.287842 0.278076 0.731934
+5 12 19 0.310547 0.286865 0.794922
+5 12 20 0.324463 0.290039 0.833496
+5 12 21 0.325928 0.283936 0.839355
+5 12 22 0.327881 0.280518 0.846191
+5 12 23 0.330078 0.27832 0.853027
+5 12 24 0.332275 0.277344 0.859863
+5 12 25 0.334961 0.276855 0.867676
+5 12 26 0.338135 0.277344 0.875977
+5 12 27 0.341553 0.278076 0.885742
+5 12 28 0.345703 0.279785 0.896973
+5 12 29 0.350098 0.281738 0.908691
+5 12 30 0.354736 0.28418 0.920898
+5 12 31 0.359375 0.286865 0.933594
+5 13 0 0.12915 0.279785 0.101562
+5 13 1 0.12915 0.279785 0.101562
+5 13 2 0.12915 0.279785 0.101624
+5 13 3 0.12915 0.279785 0.101624
+5 13 4 0.12915 0.279785 0.101624
+5 13 5 0.129272 0.279785 0.101624
+5 13 6 0.129395 0.279785 0.101685
+5 13 7 0.129639 0.280029 0.101746
+5 13 8 0.130737 0.280273 0.11676
+5 13 9 0.133179 0.280518 0.146362
+5 13 10 0.137451 0.28125 0.183838
+5 13 11 0.144531 0.282471 0.229614
+5 13 12 0.155518 0.284668 0.285156
+5 13 13 0.171265 0.288086 0.349854
+5 13 14 0.191406 0.291992 0.423096
+5 13 15 0.215088 0.296143 0.501465
+5 13 16 0.241333 0.300781 0.583496
+5 13 17 0.267578 0.30542 0.661621
+5 13 18 0.292236 0.310303 0.733398
+5 13 19 0.314453 0.314941 0.796387
+5 13 20 0.328613 0.314941 0.837402
+5 13 21 0.329346 0.304932 0.843262
+5 13 22 0.330566 0.298096 0.849121
+5 13 23 0.33252 0.293701 0.855957
+5 13 24 0.334473 0.290527 0.862305
+5 13 25 0.336914 0.288574 0.869629
+5 13 26 0.339844 0.287354 0.878418
+5 13 27 0.343018 0.286865 0.887695
+5 13 28 0.346924 0.287354 0.898438
+5 13 29 0.351074 0.288574 0.910156
+5 13 30 0.355713 0.290039 0.922363
+5 13 31 0.360352 0.291992 0.93457
+5 14 0 0.154907 0.339355 0.123169
+5 14 1 0.154907 0.339355 0.123169
+5 14 2 0.154907 0.339355 0.123169
+5 14 3 0.154907 0.339355 0.123169
+5 14 4 0.154907 0.339355 0.123169
+5 14 5 0.154907 0.339355 0.12323
+5 14 6 0.155029 0.3396 0.12323
+5 14 7 0.155273 0.3396 0.123291
+5 14 8 0.15564 0.339844 0.123352
+5 14 9 0.157471 0.340088 0.148926
+5 14 10 0.160889 0.34082 0.185669
+5 14 11 0.166504 0.341797 0.230957
+5 14 12 0.175293 0.343262 0.285889
+5 14 13 0.188232 0.345459 0.349854
+5 14 14 0.205688 0.347656 0.422852
+5 14 15 0.226929 0.349854 0.501465
+5 14 16 0.250977 0.351562 0.583984
+5 14 17 0.275635 0.352295 0.663086
+5 14 18 0.299072 0.352783 0.735352
+5 14 19 0.320068 0.353271 0.79834
+5 14 20 0.334717 0.350098 0.843262
+5 14 21 0.334717 0.334961 0.848633
+5 14 22 0.335205 0.32373 0.854492
+5 14 23 0.336426 0.315918 0.860352
+5 14 24 0.337891 0.310547 0.866699
+5 14 25 0.340088 0.306152 0.873535
+5 14 26 0.342529 0.302734 0.881836
+5 14 27 0.345459 0.300293 0.890625
+5 14 28 0.348877 0.299072 0.900879
+5 14 29 0.352783 0.298584 0.912109
+5 14 30 0.357178 0.298828 0.924316
+5 14 31 0.361572 0.299561 0.936523
+5 15 0 0.182861 0.403564 0.146362
+5 15 1 0.182861 0.403564 0.146362
+5 15 2 0.182861 0.403564 0.146362
+5 15 3 0.182861 0.403564 0.146362
+5 15 4 0.182983 0.403564 0.146362
+5 15 5 0.182983 0.403564 0.146484
+5 15 6 0.183105 0.403564 0.146484
+5 15 7 0.183228 0.403564 0.146484
+5 15 8 0.183472 0.403809 0.146484
+5 15 9 0.184326 0.404053 0.151489
+5 15 10 0.18689 0.404785 0.186768
+5 15 11 0.191406 0.405762 0.231079
+5 15 12 0.198608 0.407227 0.285156
+5 15 13 0.209229 0.408936 0.348633
+5 15 14 0.223877 0.4104 0.421143
+5 15 15 0.242554 0.411377 0.500488
+5 15 16 0.264404 0.411133 0.583496
+5 15 17 0.286865 0.408936 0.663574
+5 15 18 0.308594 0.405273 0.736816
+5 15 19 0.328125 0.401367 0.800781
+5 15 20 0.343506 0.395752 0.850586
+5 15 21 0.342529 0.374756 0.856445
+5 15 22 0.342285 0.358887 0.862305
+5 15 23 0.342529 0.347168 0.867676
+5 15 24 0.343506 0.338135 0.873535
+5 15 25 0.344727 0.330566 0.879883
+5 15 26 0.34668 0.324463 0.887207
+5 15 27 0.349121 0.31958 0.895508
+5 15 28 0.352051 0.316162 0.905273
+5 15 29 0.355713 0.313721 0.916016
+5 15 30 0.359375 0.312012 0.927246
+5 15 31 0.363525 0.311035 0.938965
+5 16 0 0.212646 0.470947 0.170898
+5 16 1 0.212646 0.470947 0.170898
+5 16 2 0.212646 0.470947 0.170898
+5 16 3 0.212646 0.470947 0.170898
+5 16 4 0.212646 0.470947 0.170898
+5 16 5 0.212646 0.470947 0.170898
+5 16 6 0.212769 0.470947 0.170898
+5 16 7 0.212769 0.470947 0.170898
+5 16 8 0.213013 0.471191 0.170898
+5 16 9 0.213501 0.471436 0.171021
+5 16 10 0.214966 0.471924 0.187622
+5 16 11 0.218628 0.4729 0.230225
+5 16 12 0.224365 0.474365 0.282715
+5 16 13 0.233154 0.476318 0.345215
+5 16 14 0.245605 0.478027 0.417236
+5 16 15 0.261719 0.47876 0.496826
+5 16 16 0.281006 0.477295 0.580566
+5 16 17 0.30127 0.473145 0.662598
+5 16 18 0.321045 0.466797 0.737305
+5 16 19 0.339111 0.458984 0.802246
+5 16 20 0.354248 0.450684 0.855957
+5 16 21 0.353516 0.425537 0.867188
+5 16 22 0.352295 0.404541 0.873535
+5 16 23 0.351807 0.387939 0.878906
+5 16 24 0.351562 0.375 0.883789
+5 16 25 0.352051 0.36377 0.88916
+5 16 26 0.353027 0.354248 0.895996
+5 16 27 0.354492 0.345947 0.90332
+5 16 28 0.356934 0.3396 0.912109
+5 16 29 0.359619 0.334229 0.921875
+5 16 30 0.363037 0.330322 0.932129
+5 16 31 0.366455 0.327148 0.943359
+5 17 0 0.242065 0.537598 0.194946
+5 17 1 0.242065 0.537598 0.194946
+5 17 2 0.242065 0.537598 0.194946
+5 17 3 0.242065 0.537598 0.194946
+5 17 4 0.242065 0.537598 0.194946
+5 17 5 0.242065 0.537598 0.194946
+5 17 6 0.242065 0.537598 0.194946
+5 17 7 0.242188 0.537598 0.194946
+5 17 8 0.242432 0.537598 0.195068
+5 17 9 0.242676 0.537598 0.195068
+5 17 10 0.243286 0.538086 0.19519
+5 17 11 0.245972 0.539062 0.228638
+5 17 12 0.250732 0.541016 0.279053
+5 17 13 0.258057 0.542969 0.339844
+5 17 14 0.268799 0.544922 0.410645
+5 17 15 0.282715 0.546387 0.489746
+5 17 16 0.299561 0.54541 0.574219
+5 17 17 0.317871 0.540527 0.657715
+5 17 18 0.335938 0.532715 0.734863
+5 17 19 0.352539 0.522461 0.802246
+5 17 20 0.366211 0.510742 0.857422
+5 17 21 0.367676 0.484863 0.878418
+5 17 22 0.365967 0.459229 0.887695
+5 17 23 0.364258 0.438232 0.893555
+5 17 24 0.363037 0.420898 0.898438
+5 17 25 0.362305 0.405518 0.90332
+5 17 26 0.362061 0.391846 0.908203
+5 17 27 0.362549 0.379883 0.914551
+5 17 28 0.36377 0.369629 0.921875
+5 17 29 0.365723 0.361084 0.930176
+5 17 30 0.368164 0.354004 0.939453
+5 17 31 0.37085 0.348145 0.949219
+5 18 0 0.269531 0.599609 0.217407
+5 18 1 0.269531 0.599609 0.217407
+5 18 2 0.269531 0.599609 0.217407
+5 18 3 0.269531 0.599609 0.217407
+5 18 4 0.269531 0.599609 0.217407
+5 18 5 0.269531 0.599609 0.217407
+5 18 6 0.269531 0.599609 0.217407
+5 18 7 0.269775 0.599609 0.217407
+5 18 8 0.269775 0.599609 0.217529
+5 18 9 0.27002 0.599609 0.217529
+5 18 10 0.270508 0.600098 0.217651
+5 18 11 0.271729 0.600586 0.22644
+5 18 12 0.275879 0.602051 0.27417
+5 18 13 0.281982 0.604492 0.33252
+5 18 14 0.291016 0.607422 0.401123
+5 18 15 0.303223 0.609863 0.479004
+5 18 16 0.318604 0.609863 0.563965
+5 18 17 0.335205 0.606445 0.648926
+5 18 18 0.351807 0.599121 0.728516
+5 18 19 0.367188 0.587891 0.798828
+5 18 20 0.379639 0.57373 0.856445
+5 18 21 0.383301 0.548828 0.888184
+5 18 22 0.382324 0.520996 0.90332
+5 18 23 0.380127 0.496094 0.911621
+5 18 24 0.37793 0.474854 0.916992
+5 18 25 0.375977 0.454834 0.920898
+5 18 26 0.374268 0.436768 0.925293
+5 18 27 0.373291 0.42041 0.929688
+5 18 28 0.373291 0.406006 0.935059
+5 18 29 0.373779 0.393555 0.941895
+5 18 30 0.375 0.382812 0.949219
+5 18 31 0.376709 0.373779 0.95752
+5 19 0 0.294189 0.655273 0.237671
+5 19 1 0.294189 0.655273 0.237671
+5 19 2 0.294189 0.655273 0.237671
+5 19 3 0.294189 0.655273 0.237671
+5 19 4 0.294434 0.655273 0.237671
+5 19 5 0.294434 0.655273 0.237671
+5 19 6 0.294434 0.655273 0.237671
+5 19 7 0.294434 0.655273 0.237671
+5 19 8 0.294434 0.655273 0.237671
+5 19 9 0.294678 0.655273 0.237671
+5 19 10 0.295166 0.655273 0.237793
+5 19 11 0.295654 0.655762 0.237915
+5 19 12 0.298584 0.657227 0.269043
+5 19 13 0.303711 0.659668 0.324463
+5 19 14 0.311768 0.663086 0.390625
+5 19 15 0.32251 0.666016 0.466309
+5 19 16 0.336182 0.667969 0.549805
+5 19 17 0.351807 0.666504 0.635742
+5 19 18 0.367432 0.660645 0.717773
+5 19 19 0.381592 0.649902 0.790527
+5 19 20 0.393311 0.635254 0.851074
+5 19 21 0.399414 0.613281 0.893066
+5 19 22 0.399902 0.585449 0.916992
+5 19 23 0.397949 0.558594 0.929688
+5 19 24 0.39502 0.533691 0.937012
+5 19 25 0.39209 0.509766 0.941895
+5 19 26 0.38916 0.487061 0.945312
+5 19 27 0.386719 0.466309 0.948242
+5 19 28 0.384766 0.44751 0.952148
+5 19 29 0.383789 0.430664 0.956543
+5 19 30 0.383545 0.416016 0.961914
+5 19 31 0.384033 0.40332 0.968262
+5 20 0 0.315674 0.703125 0.255127
+5 20 1 0.315674 0.703125 0.255127
+5 20 2 0.315674 0.703125 0.255127
+5 20 3 0.315674 0.703125 0.255127
+5 20 4 0.315674 0.703125 0.255127
+5 20 5 0.315674 0.703125 0.255127
+5 20 6 0.315674 0.703125 0.255127
+5 20 7 0.315918 0.703125 0.255127
+5 20 8 0.315918 0.703125 0.255127
+5 20 9 0.316162 0.703613 0.255127
+5 20 10 0.316406 0.703613 0.255127
+5 20 11 0.316895 0.703613 0.255371
+5 20 12 0.318359 0.70459 0.263916
+5 20 13 0.322754 0.707031 0.316406
+5 20 14 0.329834 0.710449 0.379395
+5 20 15 0.339355 0.714355 0.452637
+5 20 16 0.352051 0.717773 0.534668
+5 20 17 0.366455 0.718262 0.620117
+5 20 18 0.381104 0.714355 0.703125
+5 20 19 0.394775 0.705078 0.777832
+5 20 20 0.406006 0.691406 0.841797
+5 20 21 0.413818 0.672852 0.89209
+5 20 22 0.416748 0.647461 0.925293
+5 20 23 0.415771 0.620605 0.944336
+5 20 24 0.413086 0.59375 0.955078
+5 20 25 0.409424 0.566895 0.961914
+5 20 26 0.405273 0.540527 0.96582
+5 20 27 0.401367 0.515137 0.968262
+5 20 28 0.398193 0.491943 0.970703
+5 20 29 0.395508 0.470947 0.973633
+5 20 30 0.393799 0.452393 0.977051
+5 20 31 0.392822 0.435547 0.981445
+5 21 0 0.333984 0.744141 0.269775
+5 21 1 0.333984 0.744141 0.269775
+5 21 2 0.333984 0.744141 0.269775
+5 21 3 0.333984 0.744141 0.269775
+5 21 4 0.333984 0.744141 0.269775
+5 21 5 0.333984 0.744141 0.269775
+5 21 6 0.333984 0.744141 0.269775
+5 21 7 0.333984 0.744141 0.269775
+5 21 8 0.333984 0.744141 0.27002
+5 21 9 0.334229 0.744141 0.27002
+5 21 10 0.334473 0.744141 0.27002
+5 21 11 0.334961 0.744629 0.27002
+5 21 12 0.335693 0.744629 0.270264
+5 21 13 0.339111 0.74707 0.307861
+5 21 14 0.345215 0.750488 0.367676
+5 21 15 0.354004 0.754883 0.437988
+5 21 16 0.365479 0.759277 0.51709
+5 21 17 0.378906 0.761719 0.601074
+5 21 18 0.393066 0.760254 0.68457
+5 21 19 0.40625 0.753418 0.76123
+5 21 20 0.417236 0.741699 0.827637
+5 21 21 0.426025 0.725586 0.883301
+5 21 22 0.431152 0.70459 0.925293
+5 21 23 0.431885 0.679199 0.952148
+5 21 24 0.430176 0.652832 0.96875
+5 21 25 0.426514 0.624023 0.979004
+5 21 26 0.422119 0.595215 0.984863
+5 21 27 0.417236 0.566406 0.988281
+5 21 28 0.412842 0.539062 0.990234
+5 21 29 0.408691 0.51416 0.991699
+5 21 30 0.405518 0.491211 0.993652
+5 21 31 0.403076 0.470703 0.996094
+5 22 0 0.349121 0.777832 0.282227
+5 22 1 0.349121 0.777832 0.282227
+5 22 2 0.349121 0.777832 0.282227
+5 22 3 0.349121 0.777832 0.282227
+5 22 4 0.349121 0.777832 0.282227
+5 22 5 0.349121 0.777832 0.282227
+5 22 6 0.349121 0.77832 0.282227
+5 22 7 0.349121 0.77832 0.282227
+5 22 8 0.349121 0.77832 0.282227
+5 22 9 0.349365 0.77832 0.282227
+5 22 10 0.349609 0.77832 0.282227
+5 22 11 0.349854 0.77832 0.282227
+5 22 12 0.350586 0.778809 0.282471
+5 22 13 0.352539 0.779785 0.299316
+5 22 14 0.35791 0.783691 0.356201
+5 22 15 0.365967 0.788574 0.423096
+5 22 16 0.376465 0.793457 0.499268
+5 22 17 0.388916 0.797363 0.581055
+5 22 18 0.402344 0.797852 0.663574
+5 22 19 0.415527 0.793945 0.741211
+5 22 20 0.426514 0.784668 0.80957
+5 22 21 0.435547 0.770996 0.868164
+5 22 22 0.441895 0.75293 0.916504
+5 22 23 0.445068 0.731445 0.951172
+5 22 24 0.444824 0.707031 0.974121
+5 22 25 0.442383 0.678711 0.989746
+5 22 26 0.437988 0.648438 1
+5 22 27 0.432861 0.617676 1
+5 22 28 0.42749 0.587402 1
+5 22 29 0.422363 0.558594 1
+5 22 30 0.417725 0.531738 1
+5 22 31 0.413818 0.507324 1
+5 23 0 0.361084 0.805176 0.291992
+5 23 1 0.361084 0.805176 0.291992
+5 23 2 0.361084 0.805176 0.291992
+5 23 3 0.361084 0.805176 0.291992
+5 23 4 0.361084 0.805176 0.291992
+5 23 5 0.361084 0.805176 0.291992
+5 23 6 0.361084 0.805176 0.291992
+5 23 7 0.361084 0.805176 0.291992
+5 23 8 0.361328 0.805176 0.291992
+5 23 9 0.361328 0.805176 0.291992
+5 23 10 0.361572 0.805176 0.291992
+5 23 11 0.361816 0.805176 0.292236
+5 23 12 0.362305 0.805664 0.292236
+5 23 13 0.363281 0.805664 0.292236
+5 23 14 0.368164 0.80957 0.345215
+5 23 15 0.375244 0.814453 0.408936
+5 23 16 0.38501 0.819824 0.482178
+5 23 17 0.396729 0.825195 0.561523
+5 23 18 0.409668 0.827637 0.64209
+5 23 19 0.422363 0.826172 0.719727
+5 23 20 0.433594 0.819336 0.789062
+5 23 21 0.442871 0.808105 0.850098
+5 23 22 0.449707 0.79248 0.901367
+5 23 23 0.454102 0.773926 0.941406
+5 23 24 0.455811 0.752441 0.971191
+5 23 25 0.455078 0.726562 0.993652
+5 23 26 0.451904 0.696777 1
+5 23 27 0.447021 0.665039 1
+5 23 28 0.441406 0.632812 1
+5 23 29 0.435547 0.601074 1
+5 23 30 0.429932 0.571289 1
+5 23 31 0.424805 0.543457 1
+5 24 0 0.37085 0.82666 0.299805
+5 24 1 0.37085 0.82666 0.299805
+5 24 2 0.37085 0.82666 0.299805
+5 24 3 0.37085 0.82666 0.299805
+5 24 4 0.37085 0.82666 0.299805
+5 24 5 0.37085 0.82666 0.299805
+5 24 6 0.37085 0.82666 0.299805
+5 24 7 0.37085 0.82666 0.299805
+5 24 8 0.37085 0.82666 0.299805
+5 24 9 0.371094 0.827148 0.299805
+5 24 10 0.371094 0.827148 0.299805
+5 24 11 0.371338 0.827148 0.300049
+5 24 12 0.371826 0.827148 0.300049
+5 24 13 0.372559 0.827637 0.300049
+5 24 14 0.376221 0.830078 0.334717
+5 24 15 0.382568 0.834961 0.395264
+5 24 16 0.391602 0.84082 0.465576
+5 24 17 0.402588 0.84668 0.541992
+5 24 18 0.415039 0.850586 0.621094
+5 24 19 0.42749 0.851074 0.697266
+5 24 20 0.438721 0.847168 0.767578
+5 24 21 0.448242 0.838379 0.830078
+5 24 22 0.455566 0.824707 0.883789
+5 24 23 0.460693 0.808594 0.927246
+5 24 24 0.463867 0.790039 0.961426
+5 24 25 0.4646 0.76709 0.989746
+5 24 26 0.462891 0.739258 1
+5 24 27 0.458984 0.708008 1
+5 24 28 0.453613 0.674805 1
+5 24 29 0.44751 0.641602 1
+5 24 30 0.441162 0.609375 1
+5 24 31 0.435303 0.578613 1
+5 25 0 0.379395 0.846191 0.306885
+5 25 1 0.379395 0.846191 0.306885
+5 25 2 0.379395 0.846191 0.306885
+5 25 3 0.379395 0.846191 0.306885
+5 25 4 0.379395 0.846191 0.306885
+5 25 5 0.379395 0.846191 0.306885
+5 25 6 0.379395 0.846191 0.306885
+5 25 7 0.379395 0.846191 0.306885
+5 25 8 0.379395 0.846191 0.306885
+5 25 9 0.379639 0.846191 0.306885
+5 25 10 0.379639 0.846191 0.306885
+5 25 11 0.379883 0.846191 0.306885
+5 25 12 0.380371 0.846191 0.306885
+5 25 13 0.380859 0.84668 0.307129
+5 25 14 0.383057 0.848145 0.323975
+5 25 15 0.388916 0.853027 0.381348
+5 25 16 0.397217 0.858887 0.448242
+5 25 17 0.407471 0.865234 0.521484
+5 25 18 0.419189 0.870117 0.597656
+5 25 19 0.431152 0.872559 0.672852
+5 25 20 0.442383 0.871094 0.742676
+5 25 21 0.452393 0.865234 0.806641
+5 25 22 0.460205 0.854492 0.862305
+5 25 23 0.466064 0.84082 0.908203
+5 25 24 0.469971 0.824707 0.945801
+5 25 25 0.472168 0.804688 0.979004
+5 25 26 0.472168 0.779785 1
+5 25 27 0.469727 0.75 1
+5 25 28 0.465088 0.717285 1
+5 25 29 0.458984 0.683105 1
+5 25 30 0.452637 0.648926 1
+5 25 31 0.446045 0.615723 1
+5 26 0 0.387207 0.863281 0.313232
+5 26 1 0.387207 0.863281 0.313232
+5 26 2 0.387207 0.863281 0.313232
+5 26 3 0.387207 0.863281 0.313232
+5 26 4 0.387207 0.863281 0.313232
+5 26 5 0.387207 0.863281 0.313232
+5 26 6 0.387207 0.863281 0.313232
+5 26 7 0.387207 0.863281 0.313232
+5 26 8 0.387207 0.863281 0.313232
+5 26 9 0.387207 0.863281 0.313232
+5 26 10 0.387451 0.863281 0.313232
+5 26 11 0.387451 0.863281 0.313232
+5 26 12 0.387939 0.86377 0.313232
+5 26 13 0.388428 0.86377 0.313232
+5 26 14 0.389404 0.864258 0.313477
+5 26 15 0.394531 0.868652 0.367188
+5 26 16 0.4021 0.874512 0.43042
+5 26 17 0.411377 0.880859 0.5
+5 26 18 0.422363 0.887207 0.57373
+5 26 19 0.434082 0.891113 0.646484
+5 26 20 0.445068 0.891602 0.715332
+5 26 21 0.455078 0.888672 0.779297
+5 26 22 0.463623 0.880859 0.836914
+5 26 23 0.470215 0.870117 0.885254
+5 26 24 0.474609 0.856445 0.925293
+5 26 25 0.477783 0.838867 0.961914
+5 26 26 0.479248 0.816895 0.994141
+5 26 27 0.478516 0.790039 1
+5 26 28 0.475098 0.758789 1
+5 26 29 0.469727 0.724609 1
+5 26 30 0.463379 0.689453 1
+5 26 31 0.456543 0.654785 1
+5 27 0 0.393799 0.878418 0.318604
+5 27 1 0.393799 0.878418 0.318604
+5 27 2 0.393799 0.878418 0.318604
+5 27 3 0.393799 0.878418 0.318604
+5 27 4 0.393799 0.878418 0.318604
+5 27 5 0.393799 0.878418 0.318604
+5 27 6 0.393799 0.878418 0.318604
+5 27 7 0.393799 0.878418 0.318604
+5 27 8 0.393799 0.878418 0.318604
+5 27 9 0.394043 0.878418 0.318604
+5 27 10 0.394043 0.878418 0.318604
+5 27 11 0.394287 0.878418 0.318604
+5 27 12 0.394531 0.878906 0.318604
+5 27 13 0.39502 0.878906 0.318848
+5 27 14 0.395752 0.878906 0.318848
+5 27 15 0.399414 0.882324 0.353027
+5 27 16 0.406006 0.887695 0.412598
+5 27 17 0.414795 0.894531 0.478516
+5 27 18 0.424805 0.900879 0.54834
+5 27 19 0.435791 0.90625 0.618652
+5 27 20 0.446533 0.908691 0.686035
+5 27 21 0.456787 0.908203 0.749512
+5 27 22 0.465576 0.903809 0.807617
+5 27 23 0.472656 0.895508 0.857422
+5 27 24 0.478027 0.884766 0.900391
+5 27 25 0.481934 0.869629 0.939941
+5 27 26 0.484375 0.850586 0.975586
+5 27 27 0.484863 0.82666 1
+5 27 28 0.48291 0.797852 1
+5 27 29 0.47876 0.764648 1
+5 27 30 0.4729 0.729492 1
+5 27 31 0.466064 0.693848 1
+5 28 0 0.399414 0.891113 0.323242
+5 28 1 0.399414 0.891113 0.323242
+5 28 2 0.399414 0.891113 0.323242
+5 28 3 0.399414 0.891113 0.323242
+5 28 4 0.399414 0.891113 0.323242
+5 28 5 0.399414 0.891113 0.323242
+5 28 6 0.399414 0.891113 0.323242
+5 28 7 0.399414 0.891113 0.323242
+5 28 8 0.399414 0.891113 0.323242
+5 28 9 0.399658 0.891113 0.323242
+5 28 10 0.399658 0.891113 0.323242
+5 28 11 0.399902 0.891113 0.323242
+5 28 12 0.400146 0.891113 0.323242
+5 28 13 0.400391 0.891602 0.323242
+5 28 14 0.401123 0.891602 0.323486
+5 28 15 0.403076 0.893066 0.338623
+5 28 16 0.40918 0.898438 0.394531
+5 28 17 0.416992 0.905273 0.456787
+5 28 18 0.42627 0.912109 0.522949
+5 28 19 0.436768 0.917969 0.589844
+5 28 20 0.447021 0.921875 0.655273
+5 28 21 0.457031 0.92334 0.717285
+5 28 22 0.466064 0.921875 0.775391
+5 28 23 0.473633 0.916504 0.826172
+5 28 24 0.479736 0.908691 0.870605
+5 28 25 0.484619 0.896484 0.912598
+5 28 26 0.487793 0.880371 0.951172
+5 28 27 0.489502 0.858887 0.985352
+5 28 28 0.48877 0.833008 1
+5 28 29 0.48584 0.802246 1
+5 28 30 0.481201 0.768555 1
+5 28 31 0.475098 0.733398 1
+5 29 0 0.403809 0.900879 0.32666
+5 29 1 0.403809 0.900879 0.32666
+5 29 2 0.403809 0.900879 0.32666
+5 29 3 0.403809 0.900879 0.32666
+5 29 4 0.403809 0.900879 0.32666
+5 29 5 0.403809 0.900879 0.32666
+5 29 6 0.403809 0.900879 0.32666
+5 29 7 0.403809 0.900879 0.32666
+5 29 8 0.403809 0.900879 0.32666
+5 29 9 0.403809 0.900879 0.32666
+5 29 10 0.404053 0.900879 0.32666
+5 29 11 0.404053 0.900879 0.32666
+5 29 12 0.404297 0.900879 0.32666
+5 29 13 0.404541 0.900879 0.326904
+5 29 14 0.405273 0.901367 0.326904
+5 29 15 0.406006 0.901367 0.326904
+5 29 16 0.411133 0.90625 0.376221
+5 29 17 0.418213 0.912598 0.43457
+5 29 18 0.426758 0.919434 0.496826
+5 29 19 0.436279 0.92627 0.560547
+5 29 20 0.446045 0.931641 0.622559
+5 29 21 0.456055 0.93457 0.683105
+5 29 22 0.465088 0.935059 0.740234
+5 29 23 0.4729 0.932617 0.791016
+5 29 24 0.479492 0.927734 0.836426
+5 29 25 0.485107 0.918945 0.880371
+5 29 26 0.489258 0.905762 0.921875
+5 29 27 0.491943 0.887695 0.959473
+5 29 28 0.492676 0.864746 0.991699
+5 29 29 0.491455 0.837402 1
+5 29 30 0.488281 0.806641 1
+5 29 31 0.483398 0.772461 1
+5 30 0 0.406494 0.907227 0.328857
+5 30 1 0.406494 0.907227 0.328857
+5 30 2 0.406494 0.907227 0.328857
+5 30 3 0.406494 0.907227 0.328857
+5 30 4 0.406494 0.907227 0.328857
+5 30 5 0.406494 0.907227 0.328857
+5 30 6 0.406494 0.907227 0.328857
+5 30 7 0.406494 0.907227 0.328857
+5 30 8 0.406738 0.907227 0.328857
+5 30 9 0.406738 0.907227 0.328857
+5 30 10 0.406738 0.907227 0.328857
+5 30 11 0.406738 0.907227 0.329102
+5 30 12 0.406982 0.907227 0.329102
+5 30 13 0.407227 0.907227 0.329102
+5 30 14 0.407715 0.907227 0.329102
+5 30 15 0.408447 0.907715 0.329102
+5 30 16 0.411865 0.910645 0.35791
+5 30 17 0.418213 0.916504 0.412354
+5 30 18 0.425781 0.92334 0.470703
+5 30 19 0.43457 0.930664 0.530273
+5 30 20 0.443848 0.936523 0.589355
+5 30 21 0.453369 0.940918 0.647461
+5 30 22 0.462158 0.943359 0.702637
+5 30 23 0.470215 0.943359 0.75293
+5 30 24 0.477051 0.940918 0.798828
+5 30 25 0.483398 0.935059 0.843262
+5 30 26 0.488525 0.925293 0.886719
+5 30 27 0.492432 0.911133 0.927734
+5 30 28 0.494629 0.892578 0.964844
+5 30 29 0.495117 0.869141 0.99707
+5 30 30 0.493652 0.841309 1
+5 30 31 0.490234 0.80957 1
+5 31 0 0.408691 0.911621 0.330566
+5 31 1 0.408691 0.911621 0.330566
+5 31 2 0.408691 0.911621 0.330566
+5 31 3 0.408691 0.911621 0.330566
+5 31 4 0.408691 0.911621 0.330566
+5 31 5 0.408691 0.911621 0.330566
+5 31 6 0.408691 0.911621 0.330566
+5 31 7 0.408691 0.911621 0.330566
+5 31 8 0.408691 0.911621 0.330811
+5 31 9 0.408691 0.912109 0.330811
+5 31 10 0.408691 0.912109 0.330811
+5 31 11 0.408936 0.912109 0.330811
+5 31 12 0.408936 0.912109 0.330811
+5 31 13 0.40918 0.912109 0.330811
+5 31 14 0.409668 0.912109 0.330811
+5 31 15 0.4104 0.912109 0.330811
+5 31 16 0.411865 0.913574 0.340576
+5 31 17 0.41748 0.918945 0.390625
+5 31 18 0.424316 0.925293 0.444824
+5 31 19 0.432129 0.931641 0.500488
+5 31 20 0.440674 0.937988 0.556152
+5 31 21 0.449219 0.943359 0.61084
+5 31 22 0.458008 0.947266 0.664062
+5 31 23 0.46582 0.949219 0.712891
+5 31 24 0.4729 0.94873 0.757812
+5 31 25 0.479736 0.946289 0.803223
+5 31 26 0.48584 0.94043 0.848145
+5 31 27 0.491211 0.930176 0.891602
+5 31 28 0.494873 0.916016 0.932129
+5 31 29 0.49707 0.896484 0.969238
+5 31 30 0.49707 0.872559 1
+5 31 31 0.495361 0.844238 1
+6 0 0 0.0766602 0.0579224 0
+6 0 1 0.0767822 0.0580139 0
+6 0 2 0.0769653 0.058075 0.0197144
+6 0 3 0.0768433 0.0578003 0.0345764
+6 0 4 0.0758057 0.0567627 0.0480347
+6 0 5 0.0681763 0.0518799 0.0571289
+6 0 6 0.0635376 0.0496521 0.0665894
+6 0 7 0.0650635 0.0508423 0.0844727
+6 0 8 0.0678101 0.052948 0.107239
+6 0 9 0.0731812 0.0571594 0.136475
+6 0 10 0.0831299 0.0648804 0.174805
+6 0 11 0.0983276 0.0767822 0.224365
+6 0 12 0.117676 0.0919189 0.282959
+6 0 13 0.140747 0.109924 0.348877
+6 0 14 0.166992 0.130371 0.421875
+6 0 15 0.195679 0.15271 0.499756
+6 0 16 0.22583 0.17627 0.580566
+6 0 17 0.255127 0.199097 0.658203
+6 0 18 0.281982 0.220215 0.729492
+6 0 19 0.305908 0.23877 0.79248
+6 0 20 0.319092 0.249023 0.827637
+6 0 21 0.321533 0.250977 0.834473
+6 0 22 0.323975 0.25293 0.841797
+6 0 23 0.326904 0.255127 0.849121
+6 0 24 0.32959 0.257324 0.856445
+6 0 25 0.33252 0.259521 0.864258
+6 0 26 0.335938 0.262207 0.873535
+6 0 27 0.339844 0.265381 0.883301
+6 0 28 0.344238 0.268555 0.89502
+6 0 29 0.348633 0.272217 0.906738
+6 0 30 0.353516 0.275879 0.919434
+6 0 31 0.358398 0.279785 0.932129
+6 1 0 0.076355 0.0584106 0
+6 1 1 0.0764771 0.0585327 0
+6 1 2 0.0767212 0.0586548 0.0195923
+6 1 3 0.0767822 0.0584717 0.0344238
+6 1 4 0.0758667 0.0575256 0.0479431
+6 1 5 0.0684814 0.0526123 0.057312
+6 1 6 0.0635986 0.0501099 0.0665894
+6 1 7 0.0651245 0.0512695 0.0844727
+6 1 8 0.0678101 0.0533447 0.107239
+6 1 9 0.0732422 0.0574951 0.136475
+6 1 10 0.0831299 0.0651855 0.174805
+6 1 11 0.0983276 0.0770264 0.224365
+6 1 12 0.117737 0.092041 0.282959
+6 1 13 0.140747 0.110046 0.348877
+6 1 14 0.167114 0.130493 0.421875
+6 1 15 0.195679 0.152832 0.499756
+6 1 16 0.22583 0.17627 0.580566
+6 1 17 0.255127 0.199097 0.658203
+6 1 18 0.281982 0.220215 0.729492
+6 1 19 0.305908 0.23877 0.79248
+6 1 20 0.319092 0.249023 0.827637
+6 1 21 0.321533 0.250977 0.834473
+6 1 22 0.323975 0.25293 0.841797
+6 1 23 0.326904 0.255127 0.849121
+6 1 24 0.32959 0.257324 0.856445
+6 1 25 0.33252 0.259766 0.864258
+6 1 26 0.335938 0.262207 0.873535
+6 1 27 0.339844 0.265381 0.883301
+6 1 28 0.344238 0.268555 0.89502
+6 1 29 0.348633 0.272217 0.906738
+6 1 30 0.353516 0.275879 0.919434
+6 1 31 0.358398 0.279785 0.932129
+6 2 0 0.0756836 0.0591736 0
+6 2 1 0.0758667 0.0593567 0
+6 2 2 0.0761719 0.0595398 0.019516
+6 2 3 0.0765381 0.0595398 0.0341187
+6 2 4 0.0758667 0.0587463 0.0477295
+6 2 5 0.0690308 0.0539246 0.0576782
+6 2 6 0.0636597 0.0509338 0.0665894
+6 2 7 0.0651855 0.0520325 0.0844727
+6 2 8 0.0678711 0.0540466 0.107239
+6 2 9 0.0732422 0.0581055 0.136475
+6 2 10 0.0831909 0.0656738 0.174805
+6 2 11 0.0983887 0.0773926 0.224365
+6 2 12 0.117737 0.0924072 0.282959
+6 2 13 0.140747 0.110291 0.348877
+6 2 14 0.167114 0.130737 0.421875
+6 2 15 0.195679 0.152954 0.499756
+6 2 16 0.22583 0.176392 0.580566
+6 2 17 0.255127 0.199219 0.658203
+6 2 18 0.281982 0.220215 0.729492
+6 2 19 0.305908 0.238892 0.79248
+6 2 20 0.319092 0.249146 0.827637
+6 2 21 0.321533 0.250977 0.834473
+6 2 22 0.323975 0.25293 0.841797
+6 2 23 0.326904 0.255127 0.849121
+6 2 24 0.32959 0.257324 0.856445
+6 2 25 0.33252 0.259766 0.864258
+6 2 26 0.335938 0.262207 0.873535
+6 2 27 0.339844 0.265381 0.883301
+6 2 28 0.344238 0.268555 0.89502
+6 2 29 0.348633 0.272217 0.906738
+6 2 30 0.353516 0.275879 0.919434
+6 2 31 0.358398 0.279785 0.932129
+6 3 0 0.0742188 0.0602417 0
+6 3 1 0.0744629 0.0604248 0
+6 3 2 0.0749512 0.06073 0.0199127
+6 3 3 0.0756226 0.0610352 0.0336304
+6 3 4 0.0755615 0.0606384 0.0472412
+6 3 5 0.0701294 0.056366 0.0583496
+6 3 6 0.0637817 0.0523682 0.0665894
+6 3 7 0.0653076 0.0533752 0.0845337
+6 3 8 0.0679932 0.0552673 0.107239
+6 3 9 0.0733643 0.0591736 0.136475
+6 3 10 0.083252 0.0665894 0.174805
+6 3 11 0.0984497 0.078125 0.224365
+6 3 12 0.117798 0.0929565 0.282959
+6 3 13 0.140869 0.110718 0.348877
+6 3 14 0.167114 0.130981 0.421875
+6 3 15 0.195679 0.153198 0.499756
+6 3 16 0.22583 0.176636 0.580566
+6 3 17 0.255127 0.199341 0.658203
+6 3 18 0.281982 0.220337 0.729492
+6 3 19 0.305908 0.238892 0.79248
+6 3 20 0.319092 0.249146 0.827637
+6 3 21 0.321533 0.250977 0.834473
+6 3 22 0.324219 0.253174 0.841797
+6 3 23 0.326904 0.255127 0.849121
+6 3 24 0.32959 0.257324 0.856445
+6 3 25 0.33252 0.259766 0.864258
+6 3 26 0.335938 0.262451 0.873535
+6 3 27 0.339844 0.265381 0.883301
+6 3 28 0.344238 0.268555 0.89502
+6 3 29 0.348633 0.272217 0.906738
+6 3 30 0.353516 0.275879 0.919434
+6 3 31 0.358398 0.279785 0.932129
+6 4 0 0.0712891 0.0613098 0
+6 4 1 0.0714111 0.0614624 0.00597382
+6 4 2 0.0718994 0.0617981 0.02211
+6 4 3 0.072876 0.0624084 0.0332031
+6 4 4 0.0744019 0.0632935 0.0461731
+6 4 5 0.0720825 0.0609131 0.0594482
+6 4 6 0.0640259 0.0548706 0.0666504
+6 4 7 0.0654907 0.0558167 0.0845337
+6 4 8 0.0681763 0.0574951 0.107239
+6 4 9 0.0735474 0.0611267 0.136475
+6 4 10 0.083374 0.0682373 0.174805
+6 4 11 0.0985718 0.0794678 0.224365
+6 4 12 0.117859 0.0939941 0.282959
+6 4 13 0.140869 0.111511 0.348877
+6 4 14 0.167114 0.131592 0.421875
+6 4 15 0.195801 0.153687 0.499756
+6 4 16 0.22583 0.177002 0.580566
+6 4 17 0.255127 0.199585 0.658203
+6 4 18 0.281982 0.220581 0.729492
+6 4 19 0.305908 0.239136 0.79248
+6 4 20 0.319092 0.249268 0.827637
+6 4 21 0.321533 0.251221 0.834473
+6 4 22 0.324219 0.253174 0.841797
+6 4 23 0.326904 0.255127 0.849121
+6 4 24 0.32959 0.257324 0.856445
+6 4 25 0.33252 0.259766 0.864258
+6 4 26 0.335938 0.262451 0.873535
+6 4 27 0.339844 0.265381 0.883301
+6 4 28 0.344238 0.268799 0.89502
+6 4 29 0.348633 0.272217 0.906738
+6 4 30 0.353516 0.275879 0.919434
+6 4 31 0.358398 0.279785 0.932129
+6 5 0 0.0670166 0.062561 0.0211029
+6 5 1 0.0670776 0.062561 0.0221252
+6 5 2 0.0671997 0.0626221 0.02742
+6 5 3 0.0675049 0.0628662 0.0343323
+6 5 4 0.0685425 0.0635986 0.0437927
+6 5 5 0.0717163 0.06604 0.0583801
+6 5 6 0.0644531 0.0592957 0.0666504
+6 5 7 0.065918 0.0600586 0.0845337
+6 5 8 0.0686035 0.0614319 0.1073
+6 5 9 0.0738525 0.0646362 0.136475
+6 5 10 0.0836182 0.071228 0.174805
+6 5 11 0.0987549 0.0819702 0.224365
+6 5 12 0.118042 0.0960083 0.282959
+6 5 13 0.140991 0.113037 0.348877
+6 5 14 0.167236 0.132812 0.421875
+6 5 15 0.195801 0.154541 0.499756
+6 5 16 0.225952 0.177612 0.580566
+6 5 17 0.255127 0.200073 0.658203
+6 5 18 0.282227 0.220947 0.729492
+6 5 19 0.305908 0.23938 0.79248
+6 5 20 0.319092 0.249634 0.827637
+6 5 21 0.321533 0.251465 0.834473
+6 5 22 0.324219 0.253418 0.841797
+6 5 23 0.326904 0.255371 0.849121
+6 5 24 0.32959 0.257568 0.856445
+6 5 25 0.332764 0.259766 0.864258
+6 5 26 0.335938 0.262451 0.873535
+6 5 27 0.339844 0.265381 0.883301
+6 5 28 0.344238 0.268799 0.89502
+6 5 29 0.348633 0.272217 0.906738
+6 5 30 0.353516 0.276123 0.919434
+6 5 31 0.358398 0.279785 0.932129
+6 6 0 0.0679932 0.0703735 0.0282593
+6 6 1 0.0679932 0.0704346 0.0282745
+6 6 2 0.0679321 0.0703125 0.0311737
+6 6 3 0.067749 0.0700684 0.0368958
+6 6 4 0.0673828 0.069519 0.0446777
+6 6 5 0.0667114 0.0685425 0.0548096
+6 6 6 0.0651855 0.0664062 0.0666504
+6 6 7 0.0667114 0.0669556 0.0845947
+6 6 8 0.0693359 0.0679932 0.107361
+6 6 9 0.0744629 0.0705566 0.136475
+6 6 10 0.0841064 0.0764771 0.174805
+6 6 11 0.0991211 0.0864868 0.224365
+6 6 12 0.118347 0.0996704 0.282715
+6 6 13 0.141235 0.115906 0.348877
+6 6 14 0.16748 0.13501 0.421875
+6 6 15 0.196045 0.15625 0.499756
+6 6 16 0.226074 0.178955 0.580566
+6 6 17 0.255127 0.20105 0.658203
+6 6 18 0.282227 0.221802 0.729492
+6 6 19 0.305908 0.23999 0.79248
+6 6 20 0.319092 0.25 0.827637
+6 6 21 0.321533 0.251709 0.834473
+6 6 22 0.324219 0.253662 0.841797
+6 6 23 0.326904 0.255615 0.849121
+6 6 24 0.32959 0.257812 0.856445
+6 6 25 0.332764 0.26001 0.864746
+6 6 26 0.336182 0.262695 0.873535
+6 6 27 0.339844 0.265625 0.883301
+6 6 28 0.344238 0.268799 0.89502
+6 6 29 0.348633 0.272461 0.906738
+6 6 30 0.353516 0.276123 0.919434
+6 6 31 0.358398 0.280029 0.932129
+6 7 0 0.0668335 0.0792236 0.0308228
+6 7 1 0.0668335 0.0792847 0.0308228
+6 7 2 0.0668945 0.0793457 0.030838
+6 7 3 0.0667725 0.0791016 0.0359497
+6 7 4 0.0665894 0.0786133 0.043396
+6 7 5 0.0662842 0.0778198 0.0533447
+6 7 6 0.0664673 0.0773315 0.0665283
+6 7 7 0.0679932 0.0777588 0.0844727
+6 7 8 0.0706787 0.0784302 0.107422
+6 7 9 0.0756836 0.0803223 0.136597
+6 7 10 0.085083 0.0852661 0.174683
+6 7 11 0.0999146 0.0942383 0.224243
+6 7 12 0.118958 0.106201 0.282715
+6 7 13 0.141724 0.121216 0.349121
+6 7 14 0.167847 0.13916 0.421875
+6 7 15 0.196289 0.159424 0.499756
+6 7 16 0.226196 0.181396 0.580566
+6 7 17 0.255371 0.203003 0.658203
+6 7 18 0.282227 0.223267 0.72998
+6 7 19 0.306152 0.241211 0.79248
+6 7 20 0.319336 0.250977 0.827637
+6 7 21 0.321777 0.252441 0.834473
+6 7 22 0.324219 0.254395 0.841797
+6 7 23 0.326904 0.256104 0.849121
+6 7 24 0.32959 0.258057 0.856445
+6 7 25 0.332764 0.260498 0.864746
+6 7 26 0.336182 0.262939 0.873535
+6 7 27 0.339844 0.265869 0.883789
+6 7 28 0.344238 0.269043 0.89502
+6 7 29 0.348877 0.272705 0.906738
+6 7 30 0.353516 0.276367 0.919434
+6 7 31 0.358398 0.280029 0.932129
+6 8 0 0.0673218 0.0928345 0.0351562
+6 8 1 0.0673218 0.0928345 0.0351562
+6 8 2 0.0673828 0.0928955 0.0351562
+6 8 3 0.0673828 0.0928955 0.0355835
+6 8 4 0.0675659 0.0928345 0.0427551
+6 8 5 0.0678711 0.0927734 0.0527649
+6 8 6 0.0686646 0.0929565 0.0662231
+6 8 7 0.0702515 0.0933838 0.0841064
+6 8 8 0.072998 0.0938721 0.107239
+6 8 9 0.0779419 0.0952148 0.136719
+6 8 10 0.0869141 0.0991821 0.174683
+6 8 11 0.101379 0.106995 0.224121
+6 8 12 0.120178 0.117371 0.282715
+6 8 13 0.1427 0.130615 0.349121
+6 8 14 0.168579 0.146729 0.422119
+6 8 15 0.196899 0.165405 0.499756
+6 8 16 0.226685 0.186035 0.580566
+6 8 17 0.255615 0.206665 0.658203
+6 8 18 0.282715 0.226074 0.72998
+6 8 19 0.306396 0.24353 0.792969
+6 8 20 0.31958 0.25293 0.828125
+6 8 21 0.321777 0.253906 0.834961
+6 8 22 0.324463 0.255615 0.841797
+6 8 23 0.327148 0.257324 0.849121
+6 8 24 0.329834 0.259033 0.856445
+6 8 25 0.332764 0.26123 0.864746
+6 8 26 0.336182 0.263672 0.873535
+6 8 27 0.340088 0.266357 0.883789
+6 8 28 0.344238 0.269531 0.89502
+6 8 29 0.348877 0.272949 0.906738
+6 8 30 0.353516 0.276611 0.919434
+6 8 31 0.358643 0.280518 0.932129
+6 9 0 0.0714111 0.113647 0.0422363
+6 9 1 0.0714111 0.113647 0.0422668
+6 9 2 0.0714722 0.113647 0.0422668
+6 9 3 0.0714722 0.113708 0.0422668
+6 9 4 0.0715942 0.11377 0.0433044
+6 9 5 0.0720215 0.113831 0.0529175
+6 9 6 0.0728149 0.114014 0.065979
+6 9 7 0.0743408 0.114441 0.0836182
+6 9 8 0.0770874 0.115112 0.106873
+6 9 9 0.0819092 0.116333 0.136841
+6 9 10 0.0903931 0.119568 0.174927
+6 9 11 0.104187 0.126221 0.224121
+6 9 12 0.122437 0.13501 0.282715
+6 9 13 0.144409 0.145996 0.349121
+6 9 14 0.169922 0.159668 0.422119
+6 9 15 0.197876 0.175903 0.5
+6 9 16 0.227539 0.194458 0.580566
+6 9 17 0.256348 0.213257 0.658691
+6 9 18 0.283203 0.231445 0.72998
+6 9 19 0.306885 0.247803 0.792969
+6 9 20 0.320068 0.256592 0.828613
+6 9 21 0.322266 0.256836 0.834961
+6 9 22 0.324707 0.257812 0.842285
+6 9 23 0.327393 0.259277 0.849609
+6 9 24 0.330078 0.260742 0.856934
+6 9 25 0.333008 0.262695 0.864746
+6 9 26 0.336426 0.264893 0.874023
+6 9 27 0.340088 0.267578 0.883789
+6 9 28 0.344482 0.270508 0.89502
+6 9 29 0.348877 0.273926 0.907227
+6 9 30 0.35376 0.277344 0.919434
+6 9 31 0.358643 0.281006 0.932617
+6 10 0 0.0796509 0.14209 0.0522766
+6 10 1 0.0796509 0.14209 0.0522766
+6 10 2 0.0796509 0.142212 0.0523071
+6 10 3 0.0797119 0.142212 0.0523071
+6 10 4 0.0797729 0.142212 0.0523376
+6 10 5 0.0799561 0.142334 0.0544739
+6 10 6 0.0806274 0.142456 0.0670776
+6 10 7 0.0818481 0.142578 0.0842896
+6 10 8 0.0842896 0.143188 0.107422
+6 10 9 0.0887451 0.144287 0.137573
+6 10 10 0.0964966 0.147095 0.175659
+6 10 11 0.109131 0.15271 0.224365
+6 10 12 0.126343 0.159912 0.282715
+6 10 13 0.147583 0.168823 0.349121
+6 10 14 0.172363 0.179688 0.422363
+6 10 15 0.199829 0.192871 0.500488
+6 10 16 0.229004 0.208374 0.581055
+6 10 17 0.257568 0.224609 0.65918
+6 10 18 0.28418 0.240601 0.730469
+6 10 19 0.307617 0.255371 0.793457
+6 10 20 0.320801 0.262695 0.82959
+6 10 21 0.322998 0.261963 0.835938
+6 10 22 0.325439 0.261963 0.842773
+6 10 23 0.327881 0.262695 0.850098
+6 10 24 0.330566 0.263672 0.857422
+6 10 25 0.333496 0.265137 0.865234
+6 10 26 0.33667 0.26709 0.874512
+6 10 27 0.340332 0.269287 0.884277
+6 10 28 0.344727 0.272217 0.895508
+6 10 29 0.349121 0.275146 0.907227
+6 10 30 0.354004 0.278564 0.919922
+6 10 31 0.358887 0.281982 0.932617
+6 11 0 0.0929565 0.180176 0.0658569
+6 11 1 0.0930176 0.180176 0.0658569
+6 11 2 0.0930176 0.180176 0.0658569
+6 11 3 0.0930176 0.180176 0.0658569
+6 11 4 0.0930786 0.180298 0.065918
+6 11 5 0.0932617 0.180298 0.065918
+6 11 6 0.0935669 0.18042 0.0700684
+6 11 7 0.0945435 0.18042 0.0869751
+6 11 8 0.0964355 0.180542 0.109924
+6 11 9 0.100098 0.181274 0.140015
+6 11 10 0.106628 0.183228 0.177979
+6 11 11 0.117432 0.187134 0.225464
+6 11 12 0.132935 0.192871 0.282959
+6 11 13 0.152832 0.199829 0.349365
+6 11 14 0.176514 0.208008 0.422607
+6 11 15 0.203003 0.218018 0.500488
+6 11 16 0.231567 0.229858 0.581543
+6 11 17 0.259521 0.242676 0.659668
+6 11 18 0.285645 0.255615 0.730957
+6 11 19 0.308838 0.267822 0.793945
+6 11 20 0.32251 0.273438 0.831055
+6 11 21 0.324219 0.270508 0.837402
+6 11 22 0.326416 0.269043 0.844238
+6 11 23 0.328857 0.268555 0.851074
+6 11 24 0.331299 0.268799 0.858398
+6 11 25 0.333984 0.269775 0.866211
+6 11 26 0.337402 0.270996 0.875
+6 11 27 0.34082 0.272705 0.884766
+6 11 28 0.345215 0.275146 0.895996
+6 11 29 0.349609 0.277832 0.907715
+6 11 30 0.354248 0.280762 0.92041
+6 11 31 0.359131 0.283936 0.933105
+6 12 0 0.110901 0.226929 0.0826416
+6 12 1 0.110901 0.226929 0.0826416
+6 12 2 0.110962 0.226929 0.0826416
+6 12 3 0.110962 0.226929 0.0826416
+6 12 4 0.111023 0.226929 0.0827026
+6 12 5 0.111084 0.226929 0.0827026
+6 12 6 0.111267 0.227051 0.0827637
+6 12 7 0.111877 0.227173 0.0907593
+6 12 8 0.113403 0.227295 0.113464
+6 12 9 0.116333 0.227661 0.143555
+6 12 10 0.121521 0.228638 0.181152
+6 12 11 0.130127 0.230835 0.227539
+6 12 12 0.143188 0.234619 0.283936
+6 12 13 0.161133 0.239746 0.349609
+6 12 14 0.183105 0.245728 0.422852
+6 12 15 0.208374 0.252441 0.501465
+6 12 16 0.23584 0.260498 0.58252
+6 12 17 0.262939 0.269287 0.660645
+6 12 18 0.288574 0.27832 0.731934
+6 12 19 0.311279 0.287354 0.794922
+6 12 20 0.324951 0.290283 0.833496
+6 12 21 0.326172 0.284424 0.839355
+6 12 22 0.328125 0.280518 0.846191
+6 12 23 0.330322 0.278564 0.853027
+6 12 24 0.33252 0.277344 0.859863
+6 12 25 0.335205 0.2771 0.867676
+6 12 26 0.338379 0.277344 0.876465
+6 12 27 0.341797 0.27832 0.885742
+6 12 28 0.345947 0.279785 0.896973
+6 12 29 0.350098 0.281982 0.908691
+6 12 30 0.354736 0.28418 0.920898
+6 12 31 0.359619 0.286865 0.933594
+6 13 0 0.132446 0.280273 0.101929
+6 13 1 0.132446 0.280273 0.101929
+6 13 2 0.132446 0.280273 0.101929
+6 13 3 0.132568 0.280273 0.101929
+6 13 4 0.132568 0.280273 0.101929
+6 13 5 0.132568 0.280273 0.101929
+6 13 6 0.132812 0.280273 0.10199
+6 13 7 0.133057 0.280518 0.102051
+6 13 8 0.134033 0.280762 0.116821
+6 13 9 0.136353 0.281006 0.146484
+6 13 10 0.140503 0.281738 0.183838
+6 13 11 0.147339 0.282959 0.229736
+6 13 12 0.158081 0.285156 0.285156
+6 13 13 0.17334 0.288574 0.349854
+6 13 14 0.193115 0.29248 0.423096
+6 13 15 0.216553 0.296631 0.501953
+6 13 16 0.242432 0.30127 0.583496
+6 13 17 0.268555 0.305908 0.661621
+6 13 18 0.292969 0.310547 0.733398
+6 13 19 0.314941 0.31543 0.796387
+6 13 20 0.329102 0.315186 0.837402
+6 13 21 0.32959 0.305176 0.843262
+6 13 22 0.331055 0.29834 0.849121
+6 13 23 0.332764 0.293701 0.855957
+6 13 24 0.334717 0.290771 0.862305
+6 13 25 0.337158 0.288818 0.870117
+6 13 26 0.339844 0.287598 0.878418
+6 13 27 0.343262 0.287109 0.887695
+6 13 28 0.347168 0.287598 0.898438
+6 13 29 0.351318 0.288574 0.910156
+6 13 30 0.355713 0.290039 0.922363
+6 13 31 0.360352 0.291992 0.93457
+6 14 0 0.157349 0.339844 0.123413
+6 14 1 0.157349 0.339844 0.123413
+6 14 2 0.157349 0.339844 0.123413
+6 14 3 0.157471 0.339844 0.123413
+6 14 4 0.157471 0.339844 0.123413
+6 14 5 0.157471 0.339844 0.123413
+6 14 6 0.157593 0.339844 0.123474
+6 14 7 0.157837 0.339844 0.123474
+6 14 8 0.158203 0.340088 0.123596
+6 14 9 0.159912 0.340576 0.149048
+6 14 10 0.163208 0.341064 0.185669
+6 14 11 0.168701 0.342041 0.231079
+6 14 12 0.177368 0.34375 0.285889
+6 14 13 0.190063 0.345703 0.349854
+6 14 14 0.207275 0.348145 0.422852
+6 14 15 0.228271 0.350342 0.501465
+6 14 16 0.252197 0.352051 0.583984
+6 14 17 0.276367 0.352783 0.663086
+6 14 18 0.299561 0.353027 0.735352
+6 14 19 0.320557 0.353516 0.79834
+6 14 20 0.335205 0.350342 0.843262
+6 14 21 0.334961 0.334961 0.848633
+6 14 22 0.335693 0.323975 0.854492
+6 14 23 0.33667 0.316162 0.860352
+6 14 24 0.338135 0.310547 0.866699
+6 14 25 0.340088 0.306152 0.873535
+6 14 26 0.342529 0.302734 0.881836
+6 14 27 0.345459 0.300537 0.890625
+6 14 28 0.349121 0.299316 0.901367
+6 14 29 0.353027 0.298828 0.912109
+6 14 30 0.357178 0.299072 0.924316
+6 14 31 0.361572 0.299805 0.936523
+6 15 0 0.184814 0.403809 0.146606
+6 15 1 0.184814 0.403809 0.146606
+6 15 2 0.184814 0.403809 0.146606
+6 15 3 0.184814 0.403809 0.146606
+6 15 4 0.184814 0.403809 0.146606
+6 15 5 0.184814 0.403809 0.146606
+6 15 6 0.184937 0.403809 0.146606
+6 15 7 0.185059 0.404053 0.146606
+6 15 8 0.185425 0.404053 0.146729
+6 15 9 0.186157 0.404297 0.151489
+6 15 10 0.188721 0.405029 0.186768
+6 15 11 0.193237 0.406006 0.231079
+6 15 12 0.200195 0.407471 0.285156
+6 15 13 0.210693 0.40918 0.348633
+6 15 14 0.225342 0.410889 0.421143
+6 15 15 0.243774 0.411621 0.500488
+6 15 16 0.265381 0.411377 0.583496
+6 15 17 0.287598 0.40918 0.663574
+6 15 18 0.309082 0.405518 0.736816
+6 15 19 0.328613 0.401611 0.800781
+6 15 20 0.343994 0.395996 0.850586
+6 15 21 0.343018 0.375 0.856934
+6 15 22 0.342529 0.359131 0.862305
+6 15 23 0.342773 0.347168 0.867676
+6 15 24 0.34375 0.338135 0.873535
+6 15 25 0.344971 0.330811 0.879883
+6 15 26 0.346924 0.324707 0.887207
+6 15 27 0.349121 0.319824 0.895508
+6 15 28 0.352295 0.316162 0.905273
+6 15 29 0.355713 0.313721 0.916016
+6 15 30 0.359619 0.312012 0.927246
+6 15 31 0.363525 0.311035 0.938965
+6 16 0 0.213989 0.471191 0.171021
+6 16 1 0.213989 0.471191 0.171021
+6 16 2 0.213989 0.471191 0.171021
+6 16 3 0.214111 0.471191 0.171021
+6 16 4 0.214111 0.471191 0.171021
+6 16 5 0.214111 0.471191 0.171021
+6 16 6 0.214111 0.471191 0.171021
+6 16 7 0.214233 0.471191 0.171021
+6 16 8 0.214478 0.471436 0.171021
+6 16 9 0.214966 0.47168 0.171143
+6 16 10 0.216431 0.472168 0.187622
+6 16 11 0.219971 0.473145 0.230225
+6 16 12 0.225708 0.474609 0.282715
+6 16 13 0.234375 0.476562 0.345215
+6 16 14 0.246704 0.478271 0.417236
+6 16 15 0.262695 0.479004 0.496826
+6 16 16 0.281738 0.477539 0.580566
+6 16 17 0.302002 0.473389 0.662598
+6 16 18 0.321777 0.466797 0.737305
+6 16 19 0.3396 0.459229 0.802246
+6 16 20 0.354736 0.450684 0.855957
+6 16 21 0.354004 0.425781 0.867188
+6 16 22 0.352783 0.404541 0.873535
+6 16 23 0.352051 0.388184 0.878906
+6 16 24 0.351807 0.375244 0.883789
+6 16 25 0.352295 0.364014 0.88916
+6 16 26 0.353271 0.354248 0.895996
+6 16 27 0.354736 0.346191 0.90332
+6 16 28 0.356934 0.3396 0.912109
+6 16 29 0.359863 0.334473 0.921875
+6 16 30 0.363037 0.330322 0.932129
+6 16 31 0.366699 0.327148 0.943359
+6 17 0 0.243164 0.537598 0.195068
+6 17 1 0.243164 0.537598 0.195068
+6 17 2 0.243164 0.537598 0.195068
+6 17 3 0.243164 0.537598 0.195068
+6 17 4 0.243164 0.537598 0.195068
+6 17 5 0.243164 0.537598 0.195068
+6 17 6 0.243286 0.537598 0.195068
+6 17 7 0.243286 0.537598 0.195068
+6 17 8 0.24353 0.537598 0.195068
+6 17 9 0.243774 0.538086 0.19519
+6 17 10 0.244385 0.538086 0.195312
+6 17 11 0.24707 0.539062 0.228638
+6 17 12 0.251709 0.541016 0.279053
+6 17 13 0.259033 0.542969 0.339844
+6 17 14 0.269531 0.54541 0.410645
+6 17 15 0.283447 0.546387 0.489746
+6 17 16 0.300293 0.54541 0.574219
+6 17 17 0.318604 0.541016 0.657715
+6 17 18 0.336426 0.533203 0.734863
+6 17 19 0.353027 0.522949 0.802246
+6 17 20 0.366699 0.51123 0.857422
+6 17 21 0.36792 0.485107 0.878418
+6 17 22 0.366211 0.459473 0.887695
+6 17 23 0.364502 0.438232 0.893555
+6 17 24 0.363281 0.421143 0.898438
+6 17 25 0.362549 0.405762 0.90332
+6 17 26 0.362305 0.391846 0.908203
+6 17 27 0.362793 0.379883 0.914551
+6 17 28 0.364014 0.369629 0.921875
+6 17 29 0.365723 0.361084 0.930176
+6 17 30 0.368164 0.354004 0.939453
+6 17 31 0.37085 0.348145 0.949219
+6 18 0 0.270508 0.599609 0.217529
+6 18 1 0.270508 0.599609 0.217529
+6 18 2 0.270508 0.599609 0.217529
+6 18 3 0.270508 0.599609 0.217529
+6 18 4 0.270508 0.599609 0.217529
+6 18 5 0.270508 0.599609 0.217529
+6 18 6 0.270508 0.599609 0.217529
+6 18 7 0.270508 0.599609 0.217529
+6 18 8 0.270752 0.599609 0.217529
+6 18 9 0.270996 0.600098 0.217651
+6 18 10 0.271484 0.600098 0.217651
+6 18 11 0.272705 0.600586 0.22644
+6 18 12 0.276611 0.602539 0.274414
+6 18 13 0.282715 0.60498 0.33252
+6 18 14 0.291992 0.607422 0.401367
+6 18 15 0.303955 0.609863 0.479004
+6 18 16 0.319092 0.609863 0.563965
+6 18 17 0.335938 0.606445 0.648926
+6 18 18 0.352539 0.599121 0.728516
+6 18 19 0.367676 0.587891 0.798828
+6 18 20 0.380127 0.574219 0.856445
+6 18 21 0.383789 0.549316 0.888184
+6 18 22 0.382568 0.520996 0.90332
+6 18 23 0.380371 0.496338 0.911621
+6 18 24 0.378174 0.474854 0.916992
+6 18 25 0.375977 0.455078 0.920898
+6 18 26 0.374512 0.436768 0.925293
+6 18 27 0.373535 0.42041 0.929688
+6 18 28 0.373291 0.406006 0.935059
+6 18 29 0.373779 0.393555 0.941895
+6 18 30 0.375 0.383057 0.949219
+6 18 31 0.376709 0.373779 0.95752
+6 19 0 0.294922 0.655273 0.237671
+6 19 1 0.294922 0.655273 0.237671
+6 19 2 0.294922 0.655273 0.237671
+6 19 3 0.294922 0.655273 0.237671
+6 19 4 0.294922 0.655273 0.237671
+6 19 5 0.294922 0.655273 0.237671
+6 19 6 0.295166 0.655273 0.237671
+6 19 7 0.295166 0.655273 0.237671
+6 19 8 0.295166 0.655273 0.237671
+6 19 9 0.29541 0.655273 0.237793
+6 19 10 0.295898 0.655762 0.237793
+6 19 11 0.296387 0.655762 0.237915
+6 19 12 0.299072 0.657227 0.269043
+6 19 13 0.304443 0.659668 0.324463
+6 19 14 0.312256 0.663086 0.390625
+6 19 15 0.323242 0.666016 0.466309
+6 19 16 0.336914 0.667969 0.549805
+6 19 17 0.352295 0.666504 0.635742
+6 19 18 0.36792 0.660645 0.717773
+6 19 19 0.38208 0.649902 0.790527
+6 19 20 0.393799 0.635742 0.851074
+6 19 21 0.399658 0.613281 0.893066
+6 19 22 0.400146 0.585449 0.916992
+6 19 23 0.398193 0.558594 0.929688
+6 19 24 0.395264 0.533691 0.937012
+6 19 25 0.39209 0.509766 0.941895
+6 19 26 0.38916 0.487061 0.945312
+6 19 27 0.386719 0.466309 0.948242
+6 19 28 0.38501 0.44751 0.952148
+6 19 29 0.384033 0.430908 0.956543
+6 19 30 0.383789 0.416016 0.961914
+6 19 31 0.384277 0.40332 0.968262
+6 20 0 0.316406 0.703125 0.255127
+6 20 1 0.316406 0.703125 0.255127
+6 20 2 0.316406 0.703125 0.255127
+6 20 3 0.316406 0.703125 0.255127
+6 20 4 0.316406 0.703125 0.255127
+6 20 5 0.316406 0.703125 0.255127
+6 20 6 0.316406 0.703125 0.255127
+6 20 7 0.316406 0.703613 0.255127
+6 20 8 0.316406 0.703613 0.255127
+6 20 9 0.31665 0.703613 0.255127
+6 20 10 0.316895 0.703613 0.255127
+6 20 11 0.317383 0.703613 0.255371
+6 20 12 0.318848 0.70459 0.263916
+6 20 13 0.323486 0.707031 0.316406
+6 20 14 0.330322 0.710449 0.379395
+6 20 15 0.340088 0.714355 0.452637
+6 20 16 0.352539 0.717773 0.534668
+6 20 17 0.366943 0.718262 0.620117
+6 20 18 0.381592 0.714355 0.703125
+6 20 19 0.395264 0.705078 0.777832
+6 20 20 0.406494 0.691895 0.841797
+6 20 21 0.414307 0.672852 0.89209
+6 20 22 0.416992 0.647949 0.925293
+6 20 23 0.416016 0.620605 0.944336
+6 20 24 0.413086 0.59375 0.955566
+6 20 25 0.409424 0.566895 0.961914
+6 20 26 0.405518 0.540527 0.96582
+6 20 27 0.401611 0.515137 0.968262
+6 20 28 0.398193 0.492188 0.970703
+6 20 29 0.395752 0.471191 0.973633
+6 20 30 0.394043 0.452393 0.977051
+6 20 31 0.393066 0.435791 0.981445
+6 21 0 0.334473 0.744141 0.27002
+6 21 1 0.334473 0.744141 0.27002
+6 21 2 0.334473 0.744141 0.27002
+6 21 3 0.334473 0.744141 0.27002
+6 21 4 0.334473 0.744141 0.27002
+6 21 5 0.334473 0.744141 0.27002
+6 21 6 0.334473 0.744141 0.27002
+6 21 7 0.334473 0.744141 0.27002
+6 21 8 0.334473 0.744141 0.27002
+6 21 9 0.334717 0.744141 0.27002
+6 21 10 0.334961 0.744629 0.27002
+6 21 11 0.335449 0.744629 0.27002
+6 21 12 0.336182 0.745117 0.270264
+6 21 13 0.3396 0.74707 0.307861
+6 21 14 0.345703 0.750977 0.36792
+6 21 15 0.354492 0.755371 0.437988
+6 21 16 0.365723 0.759277 0.51709
+6 21 17 0.37915 0.761719 0.601074
+6 21 18 0.393311 0.760254 0.68457
+6 21 19 0.406494 0.753418 0.76123
+6 21 20 0.417725 0.742188 0.827637
+6 21 21 0.42627 0.726074 0.883301
+6 21 22 0.431396 0.70459 0.925293
+6 21 23 0.432129 0.679199 0.952148
+6 21 24 0.43042 0.652832 0.96875
+6 21 25 0.426758 0.624023 0.979004
+6 21 26 0.422363 0.595215 0.984863
+6 21 27 0.41748 0.566406 0.988281
+6 21 28 0.412842 0.539551 0.990234
+6 21 29 0.408936 0.51416 0.991699
+6 21 30 0.405518 0.491211 0.993652
+6 21 31 0.403076 0.470703 0.996094
+6 22 0 0.349365 0.77832 0.282227
+6 22 1 0.349365 0.77832 0.282227
+6 22 2 0.349365 0.77832 0.282227
+6 22 3 0.349365 0.77832 0.282227
+6 22 4 0.349365 0.77832 0.282227
+6 22 5 0.349365 0.77832 0.282227
+6 22 6 0.349609 0.77832 0.282227
+6 22 7 0.349609 0.77832 0.282227
+6 22 8 0.349609 0.77832 0.282227
+6 22 9 0.349609 0.77832 0.282227
+6 22 10 0.349854 0.77832 0.282227
+6 22 11 0.350342 0.77832 0.282471
+6 22 12 0.35083 0.778809 0.282471
+6 22 13 0.353027 0.779785 0.299316
+6 22 14 0.358398 0.783691 0.356201
+6 22 15 0.366211 0.788574 0.423096
+6 22 16 0.376709 0.793457 0.499268
+6 22 17 0.389404 0.797363 0.581055
+6 22 18 0.402832 0.797852 0.663574
+6 22 19 0.415771 0.793945 0.741211
+6 22 20 0.426758 0.784668 0.80957
+6 22 21 0.435791 0.770996 0.868164
+6 22 22 0.442139 0.75293 0.916504
+6 22 23 0.445312 0.731445 0.951172
+6 22 24 0.445068 0.707031 0.974121
+6 22 25 0.442383 0.678711 0.989746
+6 22 26 0.438232 0.648438 1
+6 22 27 0.433105 0.617676 1
+6 22 28 0.427734 0.587402 1
+6 22 29 0.422607 0.558594 1
+6 22 30 0.417969 0.531738 1
+6 22 31 0.414062 0.507324 1
+6 23 0 0.361572 0.805176 0.291992
+6 23 1 0.361572 0.805176 0.291992
+6 23 2 0.361572 0.805176 0.291992
+6 23 3 0.361572 0.805176 0.291992
+6 23 4 0.361572 0.805176 0.291992
+6 23 5 0.361572 0.805176 0.291992
+6 23 6 0.361572 0.805176 0.291992
+6 23 7 0.361572 0.805176 0.291992
+6 23 8 0.361572 0.805176 0.291992
+6 23 9 0.361816 0.805176 0.291992
+6 23 10 0.361816 0.805176 0.291992
+6 23 11 0.362061 0.805664 0.292236
+6 23 12 0.362793 0.805664 0.292236
+6 23 13 0.363525 0.806152 0.29248
+6 23 14 0.368408 0.80957 0.345215
+6 23 15 0.375488 0.814453 0.408936
+6 23 16 0.385254 0.820312 0.482178
+6 23 17 0.396973 0.825195 0.561523
+6 23 18 0.409912 0.827637 0.64209
+6 23 19 0.422607 0.826172 0.719727
+6 23 20 0.433838 0.819336 0.789062
+6 23 21 0.443115 0.808105 0.850098
+6 23 22 0.449951 0.79248 0.901367
+6 23 23 0.454346 0.773926 0.941406
+6 23 24 0.456055 0.752441 0.971191
+6 23 25 0.455078 0.726562 0.993652
+6 23 26 0.451904 0.696777 1
+6 23 27 0.447021 0.665039 1
+6 23 28 0.441406 0.632812 1
+6 23 29 0.435547 0.601074 1
+6 23 30 0.429932 0.571289 1
+6 23 31 0.424805 0.543457 1
+6 24 0 0.371094 0.827148 0.299805
+6 24 1 0.371094 0.827148 0.299805
+6 24 2 0.371094 0.827148 0.299805
+6 24 3 0.371094 0.827148 0.299805
+6 24 4 0.371094 0.827148 0.299805
+6 24 5 0.371094 0.827148 0.299805
+6 24 6 0.371094 0.827148 0.299805
+6 24 7 0.371094 0.827148 0.299805
+6 24 8 0.371338 0.827148 0.299805
+6 24 9 0.371338 0.827148 0.300049
+6 24 10 0.371338 0.827148 0.300049
+6 24 11 0.371826 0.827148 0.300049
+6 24 12 0.37207 0.827148 0.300049
+6 24 13 0.372803 0.827637 0.300293
+6 24 14 0.376465 0.830078 0.334717
+6 24 15 0.383057 0.834961 0.395264
+6 24 16 0.391846 0.84082 0.465576
+6 24 17 0.402832 0.84668 0.541992
+6 24 18 0.415283 0.850586 0.621094
+6 24 19 0.427734 0.851074 0.697754
+6 24 20 0.438965 0.847168 0.767578
+6 24 21 0.448486 0.838379 0.830078
+6 24 22 0.455811 0.825195 0.883789
+6 24 23 0.460938 0.808594 0.927246
+6 24 24 0.463867 0.790527 0.961914
+6 24 25 0.464844 0.76709 0.989746
+6 24 26 0.463135 0.739746 1
+6 24 27 0.459229 0.708008 1
+6 24 28 0.453613 0.675293 1
+6 24 29 0.44751 0.641602 1
+6 24 30 0.441162 0.609375 1
+6 24 31 0.435303 0.578613 1
+6 25 0 0.379639 0.846191 0.306885
+6 25 1 0.379639 0.846191 0.306885
+6 25 2 0.379639 0.846191 0.306885
+6 25 3 0.379639 0.846191 0.306885
+6 25 4 0.379639 0.846191 0.306885
+6 25 5 0.379639 0.846191 0.306885
+6 25 6 0.379639 0.846191 0.306885
+6 25 7 0.379639 0.846191 0.306885
+6 25 8 0.379639 0.846191 0.306885
+6 25 9 0.379883 0.846191 0.306885
+6 25 10 0.379883 0.846191 0.306885
+6 25 11 0.380127 0.846191 0.306885
+6 25 12 0.380615 0.846191 0.306885
+6 25 13 0.381104 0.84668 0.307129
+6 25 14 0.383301 0.848145 0.323975
+6 25 15 0.38916 0.853027 0.381348
+6 25 16 0.397461 0.858887 0.448242
+6 25 17 0.407715 0.865234 0.521484
+6 25 18 0.419434 0.870605 0.597656
+6 25 19 0.431396 0.872559 0.672852
+6 25 20 0.442627 0.871094 0.742676
+6 25 21 0.452393 0.865234 0.806641
+6 25 22 0.460449 0.854492 0.862305
+6 25 23 0.466064 0.84082 0.908203
+6 25 24 0.469971 0.824707 0.945801
+6 25 25 0.472412 0.804688 0.979004
+6 25 26 0.472412 0.779785 1
+6 25 27 0.469727 0.75 1
+6 25 28 0.465088 0.717285 1
+6 25 29 0.459229 0.683105 1
+6 25 30 0.452637 0.648926 1
+6 25 31 0.446045 0.615723 1
+6 26 0 0.387451 0.863281 0.313232
+6 26 1 0.387451 0.863281 0.313232
+6 26 2 0.387451 0.863281 0.313232
+6 26 3 0.387451 0.863281 0.313232
+6 26 4 0.387451 0.863281 0.313232
+6 26 5 0.387451 0.863281 0.313232
+6 26 6 0.387451 0.863281 0.313232
+6 26 7 0.387451 0.863281 0.313232
+6 26 8 0.387451 0.863281 0.313232
+6 26 9 0.387451 0.863281 0.313232
+6 26 10 0.387695 0.863281 0.313232
+6 26 11 0.387695 0.86377 0.313232
+6 26 12 0.388184 0.86377 0.313232
+6 26 13 0.388672 0.86377 0.313232
+6 26 14 0.389648 0.864258 0.313477
+6 26 15 0.394775 0.868652 0.367188
+6 26 16 0.402344 0.874512 0.43042
+6 26 17 0.411621 0.880859 0.500488
+6 26 18 0.422607 0.887207 0.57373
+6 26 19 0.434082 0.891113 0.646484
+6 26 20 0.445312 0.891602 0.715332
+6 26 21 0.455322 0.888672 0.779297
+6 26 22 0.463867 0.881348 0.836914
+6 26 23 0.470215 0.870117 0.885254
+6 26 24 0.474854 0.856445 0.925293
+6 26 25 0.478027 0.838867 0.961914
+6 26 26 0.479492 0.816895 0.994141
+6 26 27 0.478516 0.790039 1
+6 26 28 0.475098 0.758789 1
+6 26 29 0.469727 0.724609 1
+6 26 30 0.463379 0.689453 1
+6 26 31 0.456543 0.654785 1
+6 27 0 0.394043 0.878418 0.318604
+6 27 1 0.394043 0.878418 0.318604
+6 27 2 0.394043 0.878418 0.318604
+6 27 3 0.394043 0.878418 0.318604
+6 27 4 0.394043 0.878418 0.318604
+6 27 5 0.394043 0.878418 0.318604
+6 27 6 0.394043 0.878418 0.318604
+6 27 7 0.394043 0.878418 0.318604
+6 27 8 0.394043 0.878418 0.318604
+6 27 9 0.394287 0.878418 0.318604
+6 27 10 0.394287 0.878418 0.318604
+6 27 11 0.394531 0.878906 0.318604
+6 27 12 0.394775 0.878906 0.318604
+6 27 13 0.395264 0.878906 0.318848
+6 27 14 0.395996 0.878906 0.318848
+6 27 15 0.399658 0.882324 0.353027
+6 27 16 0.40625 0.887695 0.412598
+6 27 17 0.414795 0.894531 0.478516
+6 27 18 0.425049 0.900879 0.54834
+6 27 19 0.436035 0.90625 0.618652
+6 27 20 0.446777 0.908691 0.686035
+6 27 21 0.457031 0.908203 0.749512
+6 27 22 0.46582 0.903809 0.807617
+6 27 23 0.4729 0.895508 0.85791
+6 27 24 0.478271 0.884766 0.900391
+6 27 25 0.482178 0.869629 0.939941
+6 27 26 0.484619 0.850586 0.975586
+6 27 27 0.485107 0.82666 1
+6 27 28 0.483154 0.797852 1
+6 27 29 0.47876 0.764648 1
+6 27 30 0.4729 0.729492 1
+6 27 31 0.466064 0.693848 1
+6 28 0 0.399658 0.891113 0.323242
+6 28 1 0.399658 0.891113 0.323242
+6 28 2 0.399658 0.891113 0.323242
+6 28 3 0.399658 0.891113 0.323242
+6 28 4 0.399658 0.891113 0.323242
+6 28 5 0.399658 0.891113 0.323242
+6 28 6 0.399658 0.891113 0.323242
+6 28 7 0.399658 0.891113 0.323242
+6 28 8 0.399658 0.891113 0.323242
+6 28 9 0.399658 0.891113 0.323242
+6 28 10 0.399902 0.891113 0.323242
+6 28 11 0.399902 0.891113 0.323242
+6 28 12 0.400146 0.891113 0.323242
+6 28 13 0.400635 0.891602 0.323242
+6 28 14 0.401367 0.891602 0.323486
+6 28 15 0.40332 0.893066 0.338867
+6 28 16 0.409424 0.898438 0.394531
+6 28 17 0.417236 0.905273 0.456787
+6 28 18 0.426514 0.912109 0.522949
+6 28 19 0.436768 0.917969 0.589844
+6 28 20 0.447266 0.921875 0.655273
+6 28 21 0.457275 0.923828 0.717285
+6 28 22 0.466309 0.921875 0.775391
+6 28 23 0.473877 0.916504 0.826172
+6 28 24 0.479736 0.908691 0.870605
+6 28 25 0.484619 0.896484 0.912598
+6 28 26 0.488037 0.880371 0.951172
+6 28 27 0.489502 0.858887 0.985352
+6 28 28 0.489014 0.833008 1
+6 28 29 0.486084 0.802246 1
+6 28 30 0.481201 0.769043 1
+6 28 31 0.475342 0.733398 1
+6 29 0 0.403809 0.900879 0.32666
+6 29 1 0.403809 0.900879 0.32666
+6 29 2 0.403809 0.900879 0.32666
+6 29 3 0.403809 0.900879 0.32666
+6 29 4 0.403809 0.900879 0.32666
+6 29 5 0.404053 0.900879 0.32666
+6 29 6 0.404053 0.900879 0.32666
+6 29 7 0.404053 0.900879 0.32666
+6 29 8 0.404053 0.900879 0.32666
+6 29 9 0.404053 0.900879 0.32666
+6 29 10 0.404053 0.900879 0.32666
+6 29 11 0.404297 0.900879 0.32666
+6 29 12 0.404297 0.900879 0.32666
+6 29 13 0.404785 0.900879 0.326904
+6 29 14 0.405273 0.901367 0.326904
+6 29 15 0.40625 0.901367 0.326904
+6 29 16 0.411377 0.90625 0.376221
+6 29 17 0.418457 0.912598 0.43457
+6 29 18 0.427002 0.919434 0.496826
+6 29 19 0.436523 0.92627 0.560547
+6 29 20 0.446289 0.931641 0.622559
+6 29 21 0.456055 0.93457 0.683105
+6 29 22 0.465088 0.935059 0.740234
+6 29 23 0.4729 0.932617 0.791016
+6 29 24 0.479492 0.927734 0.836426
+6 29 25 0.485107 0.918945 0.880371
+6 29 26 0.489502 0.905762 0.921875
+6 29 27 0.491943 0.887695 0.959473
+6 29 28 0.492676 0.864746 0.991699
+6 29 29 0.491455 0.837402 1
+6 29 30 0.488525 0.806641 1
+6 29 31 0.483398 0.772461 1
+6 30 0 0.406738 0.907227 0.328857
+6 30 1 0.406738 0.907227 0.328857
+6 30 2 0.406738 0.907227 0.328857
+6 30 3 0.406738 0.907227 0.328857
+6 30 4 0.406738 0.907227 0.328857
+6 30 5 0.406738 0.907227 0.328857
+6 30 6 0.406738 0.907227 0.328857
+6 30 7 0.406738 0.907227 0.328857
+6 30 8 0.406738 0.907227 0.328857
+6 30 9 0.406738 0.907227 0.329102
+6 30 10 0.406738 0.907227 0.329102
+6 30 11 0.406982 0.907227 0.329102
+6 30 12 0.407227 0.907227 0.329102
+6 30 13 0.407471 0.907227 0.329102
+6 30 14 0.407959 0.907227 0.329102
+6 30 15 0.408691 0.907715 0.329102
+6 30 16 0.411865 0.910645 0.358154
+6 30 17 0.418213 0.916504 0.412354
+6 30 18 0.426025 0.92334 0.470703
+6 30 19 0.434814 0.930664 0.530273
+6 30 20 0.444092 0.936523 0.589355
+6 30 21 0.453369 0.940918 0.647461
+6 30 22 0.462402 0.943359 0.702637
+6 30 23 0.470215 0.943359 0.75293
+6 30 24 0.477051 0.940918 0.798828
+6 30 25 0.483398 0.935059 0.843262
+6 30 26 0.488525 0.925293 0.886719
+6 30 27 0.492432 0.911133 0.927734
+6 30 28 0.494629 0.892578 0.964844
+6 30 29 0.495117 0.869141 0.99707
+6 30 30 0.493652 0.841309 1
+6 30 31 0.490234 0.80957 1
+6 31 0 0.408691 0.912109 0.330811
+6 31 1 0.408691 0.912109 0.330811
+6 31 2 0.408691 0.912109 0.330811
+6 31 3 0.408691 0.912109 0.330811
+6 31 4 0.408691 0.912109 0.330811
+6 31 5 0.408691 0.912109 0.330811
+6 31 6 0.408936 0.912109 0.330811
+6 31 7 0.408936 0.912109 0.330811
+6 31 8 0.408936 0.912109 0.330811
+6 31 9 0.408936 0.912109 0.330811
+6 31 10 0.408936 0.912109 0.330811
+6 31 11 0.408936 0.912109 0.330811
+6 31 12 0.40918 0.912109 0.330811
+6 31 13 0.409424 0.912109 0.330811
+6 31 14 0.409912 0.912109 0.330811
+6 31 15 0.4104 0.912109 0.330811
+6 31 16 0.412109 0.913574 0.340576
+6 31 17 0.41748 0.918945 0.390625
+6 31 18 0.424316 0.925293 0.444824
+6 31 19 0.432373 0.931641 0.500488
+6 31 20 0.440674 0.937988 0.556152
+6 31 21 0.449463 0.943359 0.61084
+6 31 22 0.458008 0.947266 0.664062
+6 31 23 0.466064 0.949219 0.712891
+6 31 24 0.473145 0.94873 0.757812
+6 31 25 0.479736 0.946289 0.803223
+6 31 26 0.486084 0.94043 0.848145
+6 31 27 0.491211 0.930176 0.891602
+6 31 28 0.494873 0.916016 0.932129
+6 31 29 0.49707 0.896484 0.969238
+6 31 30 0.497314 0.872559 1
+6 31 31 0.495361 0.844238 1
+7 0 0 0.0977173 0.072937 0
+7 0 1 0.0977173 0.072998 0
+7 0 2 0.0978394 0.0731201 0
+7 0 3 0.0979614 0.0731812 0.0202332
+7 0 4 0.0978394 0.0728149 0.0422363
+7 0 5 0.0965576 0.0715332 0.0603638
+7 0 6 0.086731 0.0654297 0.0723267
+7 0 7 0.0806274 0.062561 0.0844727
+7 0 8 0.0823975 0.0639038 0.107361
+7 0 9 0.0861816 0.0668945 0.136597
+7 0 10 0.0941772 0.0731812 0.174805
+7 0 11 0.107483 0.0836792 0.224365
+7 0 12 0.125 0.0973511 0.282959
+7 0 13 0.146362 0.114136 0.349121
+7 0 14 0.171387 0.133667 0.421875
+7 0 15 0.198975 0.155151 0.499756
+7 0 16 0.228271 0.178101 0.580566
+7 0 17 0.256836 0.200439 0.658203
+7 0 18 0.283447 0.221313 0.72998
+7 0 19 0.307129 0.239624 0.79248
+7 0 20 0.320068 0.249756 0.827637
+7 0 21 0.322266 0.251465 0.834473
+7 0 22 0.324707 0.253418 0.841797
+7 0 23 0.327393 0.255615 0.849121
+7 0 24 0.330078 0.257568 0.856445
+7 0 25 0.333008 0.26001 0.864746
+7 0 26 0.336426 0.262451 0.873535
+7 0 27 0.340088 0.265381 0.883789
+7 0 28 0.344482 0.268799 0.89502
+7 0 29 0.348877 0.272461 0.906738
+7 0 30 0.35376 0.276123 0.919434
+7 0 31 0.358643 0.280029 0.932129
+7 1 0 0.0975342 0.0733032 0
+7 1 1 0.0975342 0.0733643 0
+7 1 2 0.0976562 0.0734863 0
+7 1 3 0.0978394 0.0736084 0.0201111
+7 1 4 0.0978394 0.0733032 0.0421143
+7 1 5 0.0966187 0.0720825 0.0603027
+7 1 6 0.0869141 0.065918 0.0724487
+7 1 7 0.0806885 0.0628662 0.0844727
+7 1 8 0.0823975 0.064209 0.107361
+7 1 9 0.0861816 0.0671997 0.136597
+7 1 10 0.0941772 0.0734253 0.174805
+7 1 11 0.107544 0.0838623 0.224365
+7 1 12 0.125 0.0975342 0.282959
+7 1 13 0.146484 0.114258 0.349121
+7 1 14 0.171387 0.133667 0.421875
+7 1 15 0.198975 0.155273 0.499756
+7 1 16 0.228271 0.178223 0.580566
+7 1 17 0.256836 0.200562 0.658203
+7 1 18 0.283447 0.221313 0.72998
+7 1 19 0.307129 0.239624 0.79248
+7 1 20 0.320068 0.249756 0.827637
+7 1 21 0.322266 0.251465 0.834473
+7 1 22 0.324707 0.253418 0.841797
+7 1 23 0.327393 0.255615 0.849121
+7 1 24 0.330078 0.257568 0.856445
+7 1 25 0.333008 0.26001 0.864746
+7 1 26 0.336426 0.262451 0.873535
+7 1 27 0.340088 0.265381 0.883789
+7 1 28 0.344482 0.268799 0.89502
+7 1 29 0.348877 0.272461 0.906738
+7 1 30 0.35376 0.276123 0.919434
+7 1 31 0.358643 0.280029 0.932129
+7 2 0 0.097168 0.0739136 0
+7 2 1 0.097168 0.0739746 0
+7 2 2 0.09729 0.0740967 0
+7 2 3 0.0975342 0.0742798 0.0199585
+7 2 4 0.0977173 0.0740967 0.0419006
+7 2 5 0.0966797 0.072937 0.0602112
+7 2 6 0.0872803 0.0667725 0.0726929
+7 2 7 0.0806885 0.0634155 0.0845337
+7 2 8 0.0824585 0.0647583 0.107361
+7 2 9 0.0862427 0.067627 0.136597
+7 2 10 0.0942383 0.0738525 0.174805
+7 2 11 0.107544 0.0842285 0.224365
+7 2 12 0.125 0.0978394 0.282959
+7 2 13 0.146484 0.114502 0.349121
+7 2 14 0.171387 0.133911 0.421875
+7 2 15 0.198975 0.155396 0.499756
+7 2 16 0.228271 0.178223 0.580566
+7 2 17 0.256836 0.200562 0.658203
+7 2 18 0.283447 0.221313 0.72998
+7 2 19 0.307129 0.239746 0.79248
+7 2 20 0.320068 0.249878 0.827637
+7 2 21 0.322266 0.251465 0.834473
+7 2 22 0.324707 0.253418 0.841797
+7 2 23 0.327393 0.255615 0.849121
+7 2 24 0.330078 0.257568 0.856445
+7 2 25 0.333008 0.26001 0.864746
+7 2 26 0.336426 0.262695 0.873535
+7 2 27 0.340088 0.265625 0.883789
+7 2 28 0.344482 0.268799 0.89502
+7 2 29 0.348877 0.272461 0.906738
+7 2 30 0.35376 0.276123 0.919434
+7 2 31 0.358643 0.280029 0.932129
+7 3 0 0.0963745 0.0749512 0
+7 3 1 0.0963745 0.0749512 0
+7 3 2 0.0964966 0.0751343 0
+7 3 3 0.0969238 0.0753784 0.0199585
+7 3 4 0.0974121 0.0754395 0.0415344
+7 3 5 0.0966187 0.0744629 0.059967
+7 3 6 0.0880127 0.0684204 0.0731201
+7 3 7 0.0808105 0.0643921 0.0845337
+7 3 8 0.0825195 0.0656738 0.107422
+7 3 9 0.0863037 0.0684814 0.136597
+7 3 10 0.0942383 0.074585 0.174805
+7 3 11 0.107605 0.0848389 0.224365
+7 3 12 0.125122 0.0983276 0.282959
+7 3 13 0.146484 0.114868 0.349121
+7 3 14 0.171387 0.134155 0.421875
+7 3 15 0.198975 0.15564 0.499756
+7 3 16 0.228271 0.178467 0.580566
+7 3 17 0.256836 0.200806 0.658203
+7 3 18 0.283447 0.221436 0.72998
+7 3 19 0.307129 0.239868 0.79248
+7 3 20 0.320068 0.249878 0.827637
+7 3 21 0.322266 0.251709 0.834473
+7 3 22 0.324707 0.253662 0.841797
+7 3 23 0.327393 0.255615 0.849121
+7 3 24 0.330078 0.257568 0.856445
+7 3 25 0.333008 0.26001 0.864746
+7 3 26 0.336426 0.262695 0.873535
+7 3 27 0.340088 0.265625 0.883789
+7 3 28 0.344482 0.268799 0.89502
+7 3 29 0.348877 0.272461 0.906738
+7 3 30 0.35376 0.276123 0.919434
+7 3 31 0.358643 0.280029 0.932129
+7 4 0 0.0946655 0.076355 0
+7 4 1 0.0946045 0.076355 0
+7 4 2 0.0947876 0.0765381 0
+7 4 3 0.0953369 0.0769043 0.0208893
+7 4 4 0.0962524 0.0773315 0.0409851
+7 4 5 0.0962524 0.0768433 0.0593567
+7 4 6 0.0893555 0.0715332 0.0739136
+7 4 7 0.0809326 0.0662231 0.0845337
+7 4 8 0.0827026 0.0673828 0.107422
+7 4 9 0.0864258 0.0700684 0.136597
+7 4 10 0.0943604 0.0759888 0.174805
+7 4 11 0.107666 0.0859985 0.224365
+7 4 12 0.125122 0.0993042 0.282959
+7 4 13 0.146606 0.115662 0.349121
+7 4 14 0.171509 0.134766 0.421875
+7 4 15 0.198975 0.156128 0.499756
+7 4 16 0.228271 0.178833 0.580566
+7 4 17 0.25708 0.20105 0.658203
+7 4 18 0.283447 0.22168 0.72998
+7 4 19 0.307129 0.23999 0.79248
+7 4 20 0.320068 0.25 0.827637
+7 4 21 0.322266 0.251709 0.834473
+7 4 22 0.324707 0.253662 0.841797
+7 4 23 0.327393 0.255615 0.849121
+7 4 24 0.330078 0.257812 0.856445
+7 4 25 0.333008 0.26001 0.864746
+7 4 26 0.336426 0.262695 0.873535
+7 4 27 0.340088 0.265625 0.883789
+7 4 28 0.344482 0.268799 0.89502
+7 4 29 0.348877 0.272461 0.906738
+7 4 30 0.35376 0.276123 0.919434
+7 4 31 0.358643 0.280029 0.932129
+7 5 0 0.0908813 0.0778809 0
+7 5 1 0.0908203 0.0778809 0
+7 5 2 0.0909424 0.0780029 0
+7 5 3 0.0915527 0.0784302 0.0249634
+7 5 4 0.0927734 0.0792236 0.0405884
+7 5 5 0.0947876 0.0803833 0.0579834
+7 5 6 0.0918579 0.0773926 0.0753174
+7 5 7 0.0812378 0.069458 0.0845337
+7 5 8 0.0829468 0.0704956 0.107422
+7 5 9 0.0866699 0.072876 0.136597
+7 5 10 0.0946045 0.0784912 0.174805
+7 5 11 0.107849 0.0882568 0.224365
+7 5 12 0.125366 0.101135 0.282959
+7 5 13 0.146729 0.117126 0.349121
+7 5 14 0.171509 0.135986 0.421875
+7 5 15 0.199097 0.156982 0.499756
+7 5 16 0.228394 0.179443 0.580566
+7 5 17 0.25708 0.201538 0.658203
+7 5 18 0.283691 0.222046 0.72998
+7 5 19 0.307129 0.240356 0.79248
+7 5 20 0.320068 0.250244 0.827637
+7 5 21 0.322266 0.251953 0.834473
+7 5 22 0.324707 0.253906 0.841797
+7 5 23 0.327393 0.255859 0.849121
+7 5 24 0.330078 0.257812 0.856445
+7 5 25 0.333008 0.260254 0.864746
+7 5 26 0.336426 0.262695 0.873535
+7 5 27 0.340088 0.265625 0.883789
+7 5 28 0.344482 0.269043 0.89502
+7 5 29 0.348877 0.272461 0.906738
+7 5 30 0.35376 0.276123 0.919434
+7 5 31 0.358643 0.280029 0.932129
+7 6 0 0.0854492 0.0795288 0.0263977
+7 6 1 0.0854492 0.0795288 0.0264435
+7 6 2 0.0855103 0.0795898 0.0265045
+7 6 3 0.0856323 0.0797119 0.0332642
+7 6 4 0.0860596 0.0799561 0.042511
+7 6 5 0.0873413 0.0808716 0.0550842
+7 6 6 0.0913086 0.0838623 0.0738525
+7 6 7 0.0817871 0.0750732 0.0845947
+7 6 8 0.0834961 0.0758667 0.107483
+7 6 9 0.0871582 0.0778809 0.136719
+7 6 10 0.0949707 0.0830688 0.174805
+7 6 11 0.108215 0.0922241 0.224243
+7 6 12 0.12561 0.104492 0.282715
+7 6 13 0.146851 0.119812 0.349121
+7 6 14 0.171753 0.138062 0.421875
+7 6 15 0.199219 0.158569 0.499756
+7 6 16 0.228516 0.180664 0.580566
+7 6 17 0.25708 0.202515 0.658203
+7 6 18 0.283691 0.2229 0.72998
+7 6 19 0.307129 0.240845 0.79248
+7 6 20 0.320068 0.250732 0.827637
+7 6 21 0.322266 0.252441 0.834473
+7 6 22 0.324707 0.25415 0.841797
+7 6 23 0.327393 0.256104 0.849121
+7 6 24 0.330078 0.258057 0.856445
+7 6 25 0.333008 0.260254 0.864746
+7 6 26 0.336426 0.262939 0.873535
+7 6 27 0.340088 0.265869 0.883789
+7 6 28 0.344482 0.269043 0.89502
+7 6 29 0.348877 0.272705 0.906738
+7 6 30 0.35376 0.276367 0.919434
+7 6 31 0.358643 0.280029 0.932129
+7 7 0 0.0866699 0.0897217 0.0360107
+7 7 1 0.0866699 0.0897217 0.0360413
+7 7 2 0.0866699 0.0897827 0.0360413
+7 7 3 0.0866699 0.0897217 0.0386047
+7 7 4 0.0864258 0.0893555 0.0461426
+7 7 5 0.0859375 0.0886841 0.0563965
+7 7 6 0.0849609 0.0872803 0.069397
+7 7 7 0.0826416 0.0842285 0.0844727
+7 7 8 0.0844727 0.0848389 0.107483
+7 7 9 0.0880737 0.0863647 0.136719
+7 7 10 0.0957642 0.0908813 0.174683
+7 7 11 0.108887 0.0993042 0.224243
+7 7 12 0.126221 0.110596 0.282715
+7 7 13 0.147339 0.124817 0.349121
+7 7 14 0.172119 0.14209 0.422119
+7 7 15 0.199463 0.161743 0.499756
+7 7 16 0.22876 0.183105 0.580566
+7 7 17 0.257324 0.204346 0.658203
+7 7 18 0.283936 0.224365 0.72998
+7 7 19 0.307373 0.242065 0.792969
+7 7 20 0.320312 0.251709 0.828125
+7 7 21 0.32251 0.253174 0.834473
+7 7 22 0.324951 0.254639 0.841797
+7 7 23 0.327393 0.256592 0.849121
+7 7 24 0.330078 0.258545 0.856445
+7 7 25 0.333252 0.260742 0.864746
+7 7 26 0.336426 0.263184 0.873535
+7 7 27 0.340332 0.266113 0.883789
+7 7 28 0.344482 0.269287 0.89502
+7 7 29 0.349121 0.272705 0.906738
+7 7 30 0.35376 0.276367 0.919434
+7 7 31 0.358643 0.280273 0.932129
+7 8 0 0.0847168 0.100708 0.0391541
+7 8 1 0.0847168 0.100708 0.0391541
+7 8 2 0.0847778 0.100769 0.0391541
+7 8 3 0.0847778 0.10083 0.0391846
+7 8 4 0.0846558 0.100586 0.0447083
+7 8 5 0.0844116 0.0999756 0.0544434
+7 8 6 0.0839844 0.098938 0.0671997
+7 8 7 0.0842285 0.0982056 0.0842285
+7 8 8 0.0861816 0.0986938 0.107361
+7 8 9 0.0898438 0.0999146 0.136841
+7 8 10 0.09729 0.103638 0.174683
+7 8 11 0.110168 0.111145 0.224121
+7 8 12 0.127197 0.121155 0.282715
+7 8 13 0.148193 0.133789 0.349121
+7 8 14 0.172729 0.149414 0.422119
+7 8 15 0.200073 0.167603 0.5
+7 8 16 0.229126 0.187744 0.580566
+7 8 17 0.257568 0.208008 0.658691
+7 8 18 0.28418 0.227173 0.72998
+7 8 19 0.307617 0.244385 0.792969
+7 8 20 0.320557 0.253662 0.828125
+7 8 21 0.322754 0.254639 0.834961
+7 8 22 0.325195 0.255859 0.842285
+7 8 23 0.327637 0.257568 0.849609
+7 8 24 0.330322 0.259521 0.856934
+7 8 25 0.333252 0.261475 0.864746
+7 8 26 0.33667 0.263916 0.874023
+7 8 27 0.340332 0.266602 0.883789
+7 8 28 0.344482 0.269775 0.89502
+7 8 29 0.349121 0.273193 0.907227
+7 8 30 0.35376 0.276855 0.919434
+7 8 31 0.358643 0.280518 0.932617
+7 9 0 0.0853271 0.11792 0.0446472
+7 9 1 0.0853271 0.11792 0.0446472
+7 9 2 0.0853882 0.11792 0.0446472
+7 9 3 0.0853882 0.117981 0.0446472
+7 9 4 0.0855103 0.118042 0.0446777
+7 9 5 0.0856323 0.11792 0.0536804
+7 9 6 0.0860596 0.117859 0.0664673
+7 9 7 0.0870361 0.117981 0.0838623
+7 9 8 0.0891724 0.118652 0.107056
+7 9 9 0.0930786 0.119812 0.136963
+7 9 10 0.100281 0.122925 0.174927
+7 9 11 0.11261 0.129517 0.224121
+7 9 12 0.129272 0.138062 0.282715
+7 9 13 0.149902 0.148682 0.349121
+7 9 14 0.174072 0.161987 0.422119
+7 9 15 0.20105 0.177856 0.5
+7 9 16 0.22998 0.196045 0.581055
+7 9 17 0.258301 0.2146 0.658691
+7 9 18 0.284668 0.232422 0.72998
+7 9 19 0.307861 0.248657 0.792969
+7 9 20 0.321045 0.257324 0.828613
+7 9 21 0.322998 0.257324 0.835449
+7 9 22 0.325439 0.258301 0.842285
+7 9 23 0.327881 0.259521 0.849609
+7 9 24 0.330566 0.260986 0.856934
+7 9 25 0.333496 0.262939 0.865234
+7 9 26 0.33667 0.265137 0.874023
+7 9 27 0.340332 0.267578 0.883789
+7 9 28 0.344727 0.270752 0.89502
+7 9 29 0.349121 0.273926 0.907227
+7 9 30 0.354004 0.277588 0.919434
+7 9 31 0.358887 0.281006 0.932617
+7 10 0 0.0913696 0.144775 0.0538635
+7 10 1 0.0913696 0.144775 0.0538635
+7 10 2 0.0913696 0.144775 0.0538635
+7 10 3 0.0914307 0.144897 0.053894
+7 10 4 0.0914917 0.144897 0.0539246
+7 10 5 0.0916138 0.14502 0.0550232
+7 10 6 0.0921021 0.14502 0.0674438
+7 10 7 0.0930786 0.145142 0.0845337
+7 10 8 0.0950317 0.14563 0.107605
+7 10 9 0.0988159 0.146851 0.137695
+7 10 10 0.10553 0.149536 0.175781
+7 10 11 0.117004 0.155029 0.224365
+7 10 12 0.132935 0.162231 0.282715
+7 10 13 0.152832 0.170898 0.349121
+7 10 14 0.176514 0.181641 0.422363
+7 10 15 0.203003 0.19458 0.500488
+7 10 16 0.231445 0.209839 0.581055
+7 10 17 0.259521 0.22583 0.65918
+7 10 18 0.285645 0.241577 0.730469
+7 10 19 0.308838 0.256104 0.793457
+7 10 20 0.321777 0.263428 0.82959
+7 10 21 0.32373 0.262451 0.835938
+7 10 22 0.325928 0.262451 0.843262
+7 10 23 0.328369 0.263184 0.850098
+7 10 24 0.331055 0.26416 0.857422
+7 10 25 0.33374 0.265625 0.865723
+7 10 26 0.337158 0.267334 0.874512
+7 10 27 0.34082 0.269531 0.884277
+7 10 28 0.344971 0.272461 0.895508
+7 10 29 0.349365 0.275391 0.907227
+7 10 30 0.354004 0.278809 0.919922
+7 10 31 0.358887 0.282227 0.932617
+7 11 0 0.102783 0.182007 0.0669556
+7 11 1 0.102783 0.182007 0.0669556
+7 11 2 0.102783 0.182007 0.0669556
+7 11 3 0.102844 0.182007 0.0670166
+7 11 4 0.102844 0.182007 0.0670166
+7 11 5 0.102966 0.182129 0.0670166
+7 11 6 0.103271 0.182251 0.0704346
+7 11 7 0.104065 0.182251 0.0872192
+7 11 8 0.105652 0.182373 0.110107
+7 11 9 0.108826 0.182983 0.140137
+7 11 10 0.114685 0.184937 0.178101
+7 11 11 0.124573 0.188965 0.225464
+7 11 12 0.139038 0.19458 0.282959
+7 11 13 0.157837 0.201416 0.349365
+7 11 14 0.18042 0.209595 0.422607
+7 11 15 0.206177 0.21936 0.500977
+7 11 16 0.234009 0.231079 0.581543
+7 11 17 0.261475 0.243774 0.659668
+7 11 18 0.287109 0.256592 0.730957
+7 11 19 0.310059 0.268555 0.793945
+7 11 20 0.323486 0.27417 0.831055
+7 11 21 0.324951 0.270996 0.837402
+7 11 22 0.326904 0.269531 0.844238
+7 11 23 0.329346 0.269043 0.851074
+7 11 24 0.331787 0.269287 0.858398
+7 11 25 0.334473 0.27002 0.866211
+7 11 26 0.337646 0.27124 0.875
+7 11 27 0.341309 0.272949 0.884766
+7 11 28 0.345459 0.275146 0.895996
+7 11 29 0.349854 0.277832 0.907715
+7 11 30 0.354492 0.280762 0.92041
+7 11 31 0.359131 0.283936 0.933105
+7 12 0 0.118835 0.228149 0.0834961
+7 12 1 0.118835 0.228149 0.0834961
+7 12 2 0.118835 0.228149 0.0834961
+7 12 3 0.118835 0.228149 0.0834961
+7 12 4 0.118896 0.228271 0.0834961
+7 12 5 0.119019 0.228271 0.0834961
+7 12 6 0.119141 0.228394 0.0835571
+7 12 7 0.11969 0.228516 0.0910034
+7 12 8 0.121033 0.228638 0.113647
+7 12 9 0.123657 0.229004 0.143677
+7 12 10 0.128418 0.22998 0.181274
+7 12 11 0.136353 0.232056 0.227539
+7 12 12 0.148682 0.23584 0.283936
+7 12 13 0.165649 0.240967 0.349609
+7 12 14 0.18689 0.246948 0.423096
+7 12 15 0.211304 0.253662 0.501465
+7 12 16 0.238159 0.261719 0.58252
+7 12 17 0.264893 0.270264 0.660645
+7 12 18 0.290039 0.279297 0.731934
+7 12 19 0.3125 0.287842 0.794922
+7 12 20 0.325928 0.290771 0.833984
+7 12 21 0.327148 0.284912 0.839844
+7 12 22 0.328857 0.281006 0.846191
+7 12 23 0.330811 0.278809 0.853027
+7 12 24 0.333008 0.277832 0.859863
+7 12 25 0.335693 0.277344 0.867676
+7 12 26 0.338623 0.277588 0.876465
+7 12 27 0.342041 0.278564 0.88623
+7 12 28 0.346191 0.280029 0.896973
+7 12 29 0.350342 0.281982 0.908691
+7 12 30 0.35498 0.284424 0.920898
+7 12 31 0.359619 0.287109 0.933594
+7 13 0 0.138672 0.28125 0.102478
+7 13 1 0.138672 0.28125 0.102478
+7 13 2 0.138672 0.28125 0.102478
+7 13 3 0.138672 0.28125 0.102478
+7 13 4 0.138672 0.28125 0.102539
+7 13 5 0.138794 0.28125 0.102539
+7 13 6 0.138916 0.28125 0.102539
+7 13 7 0.13916 0.281494 0.1026
+7 13 8 0.140137 0.281738 0.117004
+7 13 9 0.142334 0.281982 0.146606
+7 13 10 0.146118 0.282715 0.18396
+7 13 11 0.152588 0.283936 0.229736
+7 13 12 0.16272 0.286133 0.285156
+7 13 13 0.17749 0.289551 0.350098
+7 13 14 0.196655 0.293457 0.423096
+7 13 15 0.21936 0.297607 0.501953
+7 13 16 0.244629 0.302002 0.583496
+7 13 17 0.270264 0.306641 0.661621
+7 13 18 0.294434 0.311279 0.733398
+7 13 19 0.316162 0.315918 0.796387
+7 13 20 0.330078 0.315918 0.837891
+7 13 21 0.330566 0.305664 0.843262
+7 13 22 0.331543 0.298828 0.849609
+7 13 23 0.333252 0.294189 0.855957
+7 13 24 0.335205 0.291016 0.862305
+7 13 25 0.337402 0.289062 0.870117
+7 13 26 0.340332 0.287842 0.878418
+7 13 27 0.343506 0.287354 0.887695
+7 13 28 0.347412 0.287598 0.898438
+7 13 29 0.351562 0.288818 0.910156
+7 13 30 0.355957 0.290283 0.922363
+7 13 31 0.360596 0.291992 0.93457
+7 14 0 0.162109 0.340576 0.12384
+7 14 1 0.162109 0.340576 0.12384
+7 14 2 0.162109 0.340576 0.12384
+7 14 3 0.162109 0.340576 0.12384
+7 14 4 0.162231 0.340576 0.123901
+7 14 5 0.162231 0.340576 0.123901
+7 14 6 0.162354 0.340576 0.123901
+7 14 7 0.162598 0.340576 0.123962
+7 14 8 0.162964 0.34082 0.124023
+7 14 9 0.164551 0.341309 0.14917
+7 14 10 0.167725 0.341797 0.185791
+7 14 11 0.172974 0.342773 0.231079
+7 14 12 0.181396 0.344238 0.285889
+7 14 13 0.193604 0.346436 0.349854
+7 14 14 0.210327 0.348877 0.422852
+7 14 15 0.230835 0.35083 0.501953
+7 14 16 0.25415 0.352539 0.583984
+7 14 17 0.278076 0.353271 0.663086
+7 14 18 0.301025 0.353516 0.735352
+7 14 19 0.321777 0.354004 0.79834
+7 14 20 0.336182 0.35083 0.84375
+7 14 21 0.335693 0.335449 0.849121
+7 14 22 0.336182 0.324463 0.854492
+7 14 23 0.337158 0.316406 0.860352
+7 14 24 0.338623 0.310791 0.866699
+7 14 25 0.340576 0.306396 0.874023
+7 14 26 0.343018 0.302979 0.881836
+7 14 27 0.345947 0.300781 0.890625
+7 14 28 0.349365 0.299316 0.901367
+7 14 29 0.353271 0.298828 0.912598
+7 14 30 0.357422 0.299072 0.924316
+7 14 31 0.361816 0.299805 0.936523
+7 15 0 0.188477 0.404297 0.146973
+7 15 1 0.188477 0.404297 0.146973
+7 15 2 0.188477 0.404297 0.146973
+7 15 3 0.188477 0.404297 0.146973
+7 15 4 0.188477 0.404297 0.146973
+7 15 5 0.188477 0.404297 0.146973
+7 15 6 0.188599 0.404541 0.146973
+7 15 7 0.188721 0.404541 0.146973
+7 15 8 0.188965 0.404541 0.147095
+7 15 9 0.189697 0.405029 0.151611
+7 15 10 0.192261 0.405518 0.18689
+7 15 11 0.196533 0.406738 0.231201
+7 15 12 0.203491 0.407959 0.285156
+7 15 13 0.213745 0.409668 0.348633
+7 15 14 0.227905 0.411377 0.421143
+7 15 15 0.246094 0.412109 0.500488
+7 15 16 0.267334 0.411865 0.583496
+7 15 17 0.289307 0.409668 0.663574
+7 15 18 0.310547 0.406006 0.736816
+7 15 19 0.329834 0.4021 0.800781
+7 15 20 0.344971 0.39624 0.850586
+7 15 21 0.34375 0.375488 0.856934
+7 15 22 0.343262 0.359375 0.862305
+7 15 23 0.343262 0.347412 0.867676
+7 15 24 0.343994 0.338379 0.873535
+7 15 25 0.345459 0.331055 0.879883
+7 15 26 0.347168 0.324951 0.887207
+7 15 27 0.349365 0.319824 0.895508
+7 15 28 0.352539 0.316406 0.905273
+7 15 29 0.355957 0.313721 0.916016
+7 15 30 0.359619 0.312256 0.927246
+7 15 31 0.36377 0.311279 0.938965
+7 16 0 0.216797 0.47168 0.171265
+7 16 1 0.216797 0.47168 0.171265
+7 16 2 0.216797 0.47168 0.171265
+7 16 3 0.216797 0.47168 0.171265
+7 16 4 0.216797 0.47168 0.171265
+7 16 5 0.216919 0.47168 0.171265
+7 16 6 0.216919 0.47168 0.171265
+7 16 7 0.217041 0.47168 0.171265
+7 16 8 0.217285 0.471924 0.171387
+7 16 9 0.217651 0.471924 0.171387
+7 16 10 0.219116 0.472656 0.187744
+7 16 11 0.222656 0.473633 0.230347
+7 16 12 0.228271 0.475098 0.282959
+7 16 13 0.236816 0.476807 0.345215
+7 16 14 0.249023 0.478516 0.417236
+7 16 15 0.264893 0.479248 0.496826
+7 16 16 0.283447 0.478027 0.580566
+7 16 17 0.303467 0.473877 0.662598
+7 16 18 0.322998 0.467285 0.737305
+7 16 19 0.340576 0.459473 0.802246
+7 16 20 0.355713 0.451172 0.855957
+7 16 21 0.354736 0.426025 0.867188
+7 16 22 0.353271 0.404785 0.873535
+7 16 23 0.352539 0.388428 0.878906
+7 16 24 0.352295 0.375488 0.883789
+7 16 25 0.352539 0.364258 0.889648
+7 16 26 0.353516 0.354492 0.895996
+7 16 27 0.35498 0.346191 0.90332
+7 16 28 0.357178 0.339844 0.912109
+7 16 29 0.360107 0.334473 0.921875
+7 16 30 0.363281 0.330322 0.932129
+7 16 31 0.366699 0.327148 0.943359
+7 17 0 0.245239 0.538086 0.195312
+7 17 1 0.245239 0.538086 0.195312
+7 17 2 0.245239 0.538086 0.195312
+7 17 3 0.245239 0.538086 0.195312
+7 17 4 0.245361 0.538086 0.195312
+7 17 5 0.245361 0.538086 0.195312
+7 17 6 0.245361 0.538086 0.195312
+7 17 7 0.245483 0.538086 0.195312
+7 17 8 0.245605 0.538086 0.195312
+7 17 9 0.245972 0.538086 0.195435
+7 17 10 0.246582 0.538574 0.195557
+7 17 11 0.249146 0.539551 0.228638
+7 17 12 0.253906 0.541504 0.279297
+7 17 13 0.260986 0.543457 0.339844
+7 17 14 0.271484 0.54541 0.410645
+7 17 15 0.285156 0.546875 0.489746
+7 17 16 0.302002 0.545898 0.574219
+7 17 17 0.319824 0.541016 0.657715
+7 17 18 0.337646 0.533203 0.734863
+7 17 19 0.354004 0.522949 0.802246
+7 17 20 0.367432 0.51123 0.857422
+7 17 21 0.368652 0.485352 0.878418
+7 17 22 0.366699 0.459717 0.887695
+7 17 23 0.36499 0.438477 0.893555
+7 17 24 0.36377 0.421387 0.898438
+7 17 25 0.362793 0.405762 0.90332
+7 17 26 0.362549 0.39209 0.908203
+7 17 27 0.363037 0.380127 0.914551
+7 17 28 0.364258 0.369873 0.921875
+7 17 29 0.365967 0.361328 0.930176
+7 17 30 0.368408 0.354248 0.939453
+7 17 31 0.371094 0.348145 0.949219
+7 18 0 0.272217 0.600098 0.217651
+7 18 1 0.272217 0.600098 0.217651
+7 18 2 0.272217 0.600098 0.217651
+7 18 3 0.272217 0.600098 0.217651
+7 18 4 0.272217 0.600098 0.217651
+7 18 5 0.272217 0.600098 0.217651
+7 18 6 0.272217 0.600098 0.217651
+7 18 7 0.272217 0.600098 0.217651
+7 18 8 0.272461 0.600098 0.217773
+7 18 9 0.272705 0.600098 0.217773
+7 18 10 0.273193 0.600098 0.217896
+7 18 11 0.274414 0.601074 0.22644
+7 18 12 0.27832 0.602539 0.274414
+7 18 13 0.284424 0.60498 0.33252
+7 18 14 0.293457 0.60791 0.401367
+7 18 15 0.30542 0.610352 0.479248
+7 18 16 0.320557 0.610352 0.563965
+7 18 17 0.336914 0.606934 0.648926
+7 18 18 0.353516 0.599121 0.728516
+7 18 19 0.368408 0.587891 0.798828
+7 18 20 0.380859 0.574219 0.856445
+7 18 21 0.384277 0.549316 0.888184
+7 18 22 0.383057 0.521484 0.90332
+7 18 23 0.380859 0.496338 0.911621
+7 18 24 0.378418 0.475098 0.916992
+7 18 25 0.376465 0.455078 0.920898
+7 18 26 0.374756 0.437012 0.925293
+7 18 27 0.373779 0.42041 0.929688
+7 18 28 0.373535 0.40625 0.935059
+7 18 29 0.374023 0.393799 0.941895
+7 18 30 0.375244 0.383057 0.949219
+7 18 31 0.376953 0.373779 0.95752
+7 19 0 0.296387 0.655273 0.237793
+7 19 1 0.296387 0.655273 0.237793
+7 19 2 0.296387 0.655273 0.237793
+7 19 3 0.296387 0.655273 0.237793
+7 19 4 0.296387 0.655273 0.237793
+7 19 5 0.296387 0.655273 0.237793
+7 19 6 0.296387 0.655762 0.237793
+7 19 7 0.296387 0.655762 0.237793
+7 19 8 0.296631 0.655762 0.237915
+7 19 9 0.296875 0.655762 0.237915
+7 19 10 0.297119 0.655762 0.237915
+7 19 11 0.297852 0.65625 0.238037
+7 19 12 0.300537 0.657715 0.269043
+7 19 13 0.305664 0.660156 0.324463
+7 19 14 0.313477 0.663086 0.390625
+7 19 15 0.324219 0.666504 0.466309
+7 19 16 0.337891 0.668457 0.549805
+7 19 17 0.353271 0.666504 0.635742
+7 19 18 0.368896 0.660645 0.717773
+7 19 19 0.382812 0.649902 0.790527
+7 19 20 0.394531 0.635742 0.851074
+7 19 21 0.400391 0.613281 0.893066
+7 19 22 0.400635 0.585938 0.916992
+7 19 23 0.398682 0.558594 0.929688
+7 19 24 0.395752 0.533691 0.937012
+7 19 25 0.392578 0.509766 0.941895
+7 19 26 0.389648 0.487305 0.945312
+7 19 27 0.386963 0.466309 0.948242
+7 19 28 0.385254 0.44751 0.952148
+7 19 29 0.384277 0.430908 0.956543
+7 19 30 0.384033 0.41626 0.961914
+7 19 31 0.384277 0.40332 0.968262
+7 20 0 0.317383 0.703613 0.255127
+7 20 1 0.317383 0.703613 0.255127
+7 20 2 0.317383 0.703613 0.255127
+7 20 3 0.317383 0.703613 0.255127
+7 20 4 0.317383 0.703613 0.255127
+7 20 5 0.317383 0.703613 0.255127
+7 20 6 0.317383 0.703613 0.255127
+7 20 7 0.317383 0.703613 0.255127
+7 20 8 0.317627 0.703613 0.255371
+7 20 9 0.317627 0.703613 0.255371
+7 20 10 0.318115 0.703613 0.255371
+7 20 11 0.318604 0.704102 0.255371
+7 20 12 0.319824 0.70459 0.263916
+7 20 13 0.324463 0.70752 0.316406
+7 20 14 0.331299 0.710938 0.379395
+7 20 15 0.341064 0.714844 0.452637
+7 20 16 0.353516 0.717773 0.534668
+7 20 17 0.367676 0.718262 0.620117
+7 20 18 0.382324 0.714355 0.703125
+7 20 19 0.395996 0.705566 0.77832
+7 20 20 0.406982 0.691895 0.841797
+7 20 21 0.414795 0.672852 0.89209
+7 20 22 0.41748 0.647949 0.925293
+7 20 23 0.416504 0.620605 0.944336
+7 20 24 0.413574 0.59375 0.955566
+7 20 25 0.409912 0.566895 0.961914
+7 20 26 0.405762 0.540527 0.96582
+7 20 27 0.401855 0.515137 0.968262
+7 20 28 0.398438 0.492188 0.970703
+7 20 29 0.395996 0.471191 0.973633
+7 20 30 0.394043 0.452393 0.977051
+7 20 31 0.393066 0.435791 0.981445
+7 21 0 0.335449 0.744629 0.27002
+7 21 1 0.335449 0.744629 0.27002
+7 21 2 0.335449 0.744629 0.27002
+7 21 3 0.335449 0.744629 0.27002
+7 21 4 0.335449 0.744629 0.27002
+7 21 5 0.335449 0.744629 0.27002
+7 21 6 0.335449 0.744629 0.27002
+7 21 7 0.335449 0.744629 0.27002
+7 21 8 0.335449 0.744629 0.27002
+7 21 9 0.335693 0.744629 0.27002
+7 21 10 0.335938 0.744629 0.27002
+7 21 11 0.336426 0.744629 0.270264
+7 21 12 0.337158 0.745117 0.270264
+7 21 13 0.340576 0.74707 0.307861
+7 21 14 0.34668 0.750977 0.36792
+7 21 15 0.355225 0.755371 0.437988
+7 21 16 0.366699 0.759766 0.51709
+7 21 17 0.380127 0.761719 0.601074
+7 21 18 0.394043 0.760254 0.68457
+7 21 19 0.407227 0.753906 0.76123
+7 21 20 0.418213 0.742188 0.827637
+7 21 21 0.427002 0.726074 0.883301
+7 21 22 0.431885 0.70459 0.925293
+7 21 23 0.432617 0.679688 0.952148
+7 21 24 0.430664 0.652832 0.96875
+7 21 25 0.427002 0.624512 0.979004
+7 21 26 0.422607 0.595215 0.984863
+7 21 27 0.417725 0.566406 0.988281
+7 21 28 0.413086 0.539551 0.990234
+7 21 29 0.408936 0.51416 0.991699
+7 21 30 0.405762 0.491455 0.993652
+7 21 31 0.40332 0.470703 0.996094
+7 22 0 0.350342 0.77832 0.282227
+7 22 1 0.350342 0.77832 0.282227
+7 22 2 0.350342 0.77832 0.282227
+7 22 3 0.350342 0.77832 0.282227
+7 22 4 0.350342 0.77832 0.282227
+7 22 5 0.350342 0.77832 0.282227
+7 22 6 0.350342 0.77832 0.282227
+7 22 7 0.350342 0.77832 0.282227
+7 22 8 0.350342 0.77832 0.282227
+7 22 9 0.350586 0.77832 0.282227
+7 22 10 0.350586 0.77832 0.282471
+7 22 11 0.351074 0.778809 0.282471
+7 22 12 0.351562 0.778809 0.282471
+7 22 13 0.35376 0.780273 0.299316
+7 22 14 0.359131 0.783691 0.356201
+7 22 15 0.366943 0.788574 0.423096
+7 22 16 0.377441 0.793457 0.499512
+7 22 17 0.389893 0.797363 0.581055
+7 22 18 0.40332 0.79834 0.663574
+7 22 19 0.41626 0.793945 0.741211
+7 22 20 0.42749 0.785156 0.80957
+7 22 21 0.436279 0.770996 0.868164
+7 22 22 0.442627 0.753418 0.916504
+7 22 23 0.445557 0.731445 0.951172
+7 22 24 0.445312 0.707031 0.974121
+7 22 25 0.442871 0.678711 0.989746
+7 22 26 0.438477 0.648438 1
+7 22 27 0.43335 0.617676 1
+7 22 28 0.427979 0.587402 1
+7 22 29 0.422607 0.558594 1
+7 22 30 0.417969 0.531738 1
+7 22 31 0.414062 0.507324 1
+7 23 0 0.362061 0.805176 0.291992
+7 23 1 0.362061 0.805176 0.291992
+7 23 2 0.362061 0.805176 0.291992
+7 23 3 0.362061 0.805176 0.291992
+7 23 4 0.362061 0.805176 0.291992
+7 23 5 0.362061 0.805176 0.292236
+7 23 6 0.362305 0.805176 0.292236
+7 23 7 0.362305 0.805176 0.292236
+7 23 8 0.362305 0.805176 0.292236
+7 23 9 0.362305 0.805664 0.292236
+7 23 10 0.362549 0.805664 0.292236
+7 23 11 0.362793 0.805664 0.292236
+7 23 12 0.363281 0.805664 0.292236
+7 23 13 0.364258 0.806152 0.29248
+7 23 14 0.369141 0.80957 0.345215
+7 23 15 0.376221 0.814453 0.408936
+7 23 16 0.385986 0.820312 0.482178
+7 23 17 0.397705 0.825195 0.561523
+7 23 18 0.4104 0.827637 0.64209
+7 23 19 0.423096 0.826172 0.719727
+7 23 20 0.434326 0.819824 0.789062
+7 23 21 0.443604 0.808105 0.850586
+7 23 22 0.450439 0.79248 0.901367
+7 23 23 0.454834 0.773926 0.941406
+7 23 24 0.456543 0.752441 0.971191
+7 23 25 0.455566 0.726562 0.993652
+7 23 26 0.452148 0.696777 1
+7 23 27 0.447266 0.665039 1
+7 23 28 0.44165 0.632812 1
+7 23 29 0.435791 0.601074 1
+7 23 30 0.430176 0.571289 1
+7 23 31 0.425049 0.543457 1
+7 24 0 0.371826 0.827148 0.300049
+7 24 1 0.371826 0.827148 0.300049
+7 24 2 0.371826 0.827148 0.300049
+7 24 3 0.371826 0.827148 0.300049
+7 24 4 0.371826 0.827148 0.300049
+7 24 5 0.371826 0.827148 0.300049
+7 24 6 0.371826 0.827148 0.300049
+7 24 7 0.371826 0.827148 0.300049
+7 24 8 0.371826 0.827148 0.300049
+7 24 9 0.371826 0.827148 0.300049
+7 24 10 0.37207 0.827148 0.300049
+7 24 11 0.372314 0.827148 0.300049
+7 24 12 0.372803 0.827637 0.300049
+7 24 13 0.373535 0.827637 0.300293
+7 24 14 0.376953 0.830078 0.334717
+7 24 15 0.383545 0.835449 0.395508
+7 24 16 0.392334 0.841309 0.465576
+7 24 17 0.40332 0.84668 0.541992
+7 24 18 0.415771 0.851074 0.621094
+7 24 19 0.428223 0.851562 0.697754
+7 24 20 0.439453 0.847168 0.767578
+7 24 21 0.44873 0.838379 0.830078
+7 24 22 0.456055 0.825195 0.883789
+7 24 23 0.461182 0.808594 0.927246
+7 24 24 0.464355 0.790527 0.961914
+7 24 25 0.465088 0.767578 0.989746
+7 24 26 0.463379 0.739746 1
+7 24 27 0.459473 0.708008 1
+7 24 28 0.453857 0.675293 1
+7 24 29 0.447754 0.641602 1
+7 24 30 0.441406 0.609375 1
+7 24 31 0.435547 0.578613 1
+7 25 0 0.380127 0.846191 0.306885
+7 25 1 0.380127 0.846191 0.306885
+7 25 2 0.380127 0.846191 0.306885
+7 25 3 0.380127 0.846191 0.306885
+7 25 4 0.380127 0.846191 0.306885
+7 25 5 0.380127 0.846191 0.306885
+7 25 6 0.380127 0.846191 0.306885
+7 25 7 0.380127 0.846191 0.306885
+7 25 8 0.380127 0.846191 0.306885
+7 25 9 0.380371 0.846191 0.306885
+7 25 10 0.380371 0.846191 0.306885
+7 25 11 0.380615 0.846191 0.306885
+7 25 12 0.381104 0.84668 0.307129
+7 25 13 0.381592 0.84668 0.307129
+7 25 14 0.383789 0.848145 0.323975
+7 25 15 0.389648 0.853027 0.381348
+7 25 16 0.397949 0.858887 0.448242
+7 25 17 0.408203 0.865234 0.521484
+7 25 18 0.419922 0.870605 0.597656
+7 25 19 0.431885 0.873047 0.672852
+7 25 20 0.443115 0.871094 0.742676
+7 25 21 0.452881 0.865234 0.806641
+7 25 22 0.460693 0.85498 0.862305
+7 25 23 0.466553 0.84082 0.908203
+7 25 24 0.470459 0.824707 0.945801
+7 25 25 0.472656 0.804688 0.979004
+7 25 26 0.472656 0.779785 1
+7 25 27 0.469971 0.750488 1
+7 25 28 0.465332 0.717285 1
+7 25 29 0.459229 0.683105 1
+7 25 30 0.452881 0.648926 1
+7 25 31 0.446045 0.616211 1
+7 26 0 0.387695 0.863281 0.313232
+7 26 1 0.387695 0.863281 0.313232
+7 26 2 0.387695 0.863281 0.313232
+7 26 3 0.387695 0.863281 0.313232
+7 26 4 0.387695 0.863281 0.313232
+7 26 5 0.387695 0.863281 0.313232
+7 26 6 0.387695 0.86377 0.313232
+7 26 7 0.387695 0.86377 0.313232
+7 26 8 0.387939 0.86377 0.313232
+7 26 9 0.387939 0.86377 0.313232
+7 26 10 0.387939 0.86377 0.313232
+7 26 11 0.388184 0.86377 0.313232
+7 26 12 0.388672 0.86377 0.313232
+7 26 13 0.38916 0.86377 0.313477
+7 26 14 0.389893 0.864258 0.313477
+7 26 15 0.395264 0.868652 0.367188
+7 26 16 0.402588 0.874512 0.43042
+7 26 17 0.412109 0.881348 0.500488
+7 26 18 0.423096 0.887207 0.57373
+7 26 19 0.43457 0.891113 0.646484
+7 26 20 0.445557 0.89209 0.715332
+7 26 21 0.455811 0.888672 0.779785
+7 26 22 0.464111 0.881348 0.836914
+7 26 23 0.470459 0.870117 0.885254
+7 26 24 0.475098 0.856445 0.925781
+7 26 25 0.478271 0.838867 0.961914
+7 26 26 0.479736 0.816895 0.994141
+7 26 27 0.47876 0.790039 1
+7 26 28 0.475342 0.758789 1
+7 26 29 0.469971 0.724609 1
+7 26 30 0.463623 0.689453 1
+7 26 31 0.456543 0.654785 1
+7 27 0 0.394531 0.878418 0.318604
+7 27 1 0.394531 0.878418 0.318604
+7 27 2 0.394531 0.878418 0.318604
+7 27 3 0.394531 0.878418 0.318604
+7 27 4 0.394531 0.878418 0.318604
+7 27 5 0.394531 0.878418 0.318604
+7 27 6 0.394531 0.878418 0.318604
+7 27 7 0.394531 0.878418 0.318604
+7 27 8 0.394531 0.878906 0.318604
+7 27 9 0.394531 0.878906 0.318604
+7 27 10 0.394531 0.878906 0.318604
+7 27 11 0.394775 0.878906 0.318604
+7 27 12 0.39502 0.878906 0.318848
+7 27 13 0.395508 0.878906 0.318848
+7 27 14 0.39624 0.879395 0.318848
+7 27 15 0.399902 0.882324 0.353027
+7 27 16 0.406738 0.888184 0.412598
+7 27 17 0.415283 0.894531 0.478516
+7 27 18 0.425293 0.900879 0.54834
+7 27 19 0.436279 0.90625 0.618652
+7 27 20 0.447266 0.908691 0.686035
+7 27 21 0.457275 0.908203 0.749512
+7 27 22 0.466064 0.903809 0.807617
+7 27 23 0.473145 0.895508 0.85791
+7 27 24 0.478516 0.884766 0.900391
+7 27 25 0.482422 0.869629 0.939941
+7 27 26 0.484863 0.850586 0.975586
+7 27 27 0.485352 0.82666 1
+7 27 28 0.483398 0.797852 1
+7 27 29 0.479004 0.764648 1
+7 27 30 0.473145 0.729492 1
+7 27 31 0.466309 0.693848 1
+7 28 0 0.399902 0.891113 0.323242
+7 28 1 0.399902 0.891113 0.323242
+7 28 2 0.399902 0.891113 0.323242
+7 28 3 0.399902 0.891113 0.323242
+7 28 4 0.399902 0.891113 0.323242
+7 28 5 0.399902 0.891113 0.323242
+7 28 6 0.399902 0.891113 0.323242
+7 28 7 0.399902 0.891113 0.323242
+7 28 8 0.399902 0.891113 0.323242
+7 28 9 0.400146 0.891113 0.323242
+7 28 10 0.400146 0.891113 0.323242
+7 28 11 0.400391 0.891113 0.323242
+7 28 12 0.400635 0.891602 0.323242
+7 28 13 0.400879 0.891602 0.323242
+7 28 14 0.401611 0.891602 0.323486
+7 28 15 0.403564 0.893066 0.338867
+7 28 16 0.409668 0.898438 0.394531
+7 28 17 0.41748 0.905273 0.456787
+7 28 18 0.426758 0.912109 0.522949
+7 28 19 0.437012 0.917969 0.589844
+7 28 20 0.44751 0.922363 0.655273
+7 28 21 0.45752 0.923828 0.717773
+7 28 22 0.466553 0.921875 0.775391
+7 28 23 0.474121 0.916992 0.826172
+7 28 24 0.47998 0.908691 0.870605
+7 28 25 0.484863 0.896973 0.912598
+7 28 26 0.488281 0.880371 0.951172
+7 28 27 0.489746 0.858887 0.985352
+7 28 28 0.489014 0.833008 1
+7 28 29 0.486084 0.802734 1
+7 28 30 0.481445 0.769043 1
+7 28 31 0.475342 0.733398 1
+7 29 0 0.404297 0.900879 0.32666
+7 29 1 0.404297 0.900879 0.32666
+7 29 2 0.404297 0.900879 0.32666
+7 29 3 0.404297 0.900879 0.32666
+7 29 4 0.404297 0.900879 0.32666
+7 29 5 0.404297 0.900879 0.32666
+7 29 6 0.404297 0.900879 0.32666
+7 29 7 0.404297 0.900879 0.32666
+7 29 8 0.404297 0.900879 0.32666
+7 29 9 0.404297 0.900879 0.32666
+7 29 10 0.404297 0.900879 0.32666
+7 29 11 0.404541 0.900879 0.32666
+7 29 12 0.404785 0.900879 0.326904
+7 29 13 0.405029 0.900879 0.326904
+7 29 14 0.405518 0.901367 0.326904
+7 29 15 0.406494 0.901367 0.326904
+7 29 16 0.411621 0.90625 0.376221
+7 29 17 0.418701 0.912598 0.43457
+7 29 18 0.427246 0.919434 0.49707
+7 29 19 0.436768 0.92627 0.560547
+7 29 20 0.446533 0.931641 0.622559
+7 29 21 0.456299 0.93457 0.683105
+7 29 22 0.465332 0.935059 0.740234
+7 29 23 0.473145 0.933105 0.791016
+7 29 24 0.479736 0.927734 0.836426
+7 29 25 0.485352 0.918945 0.880371
+7 29 26 0.489502 0.905762 0.921875
+7 29 27 0.492188 0.887695 0.959473
+7 29 28 0.49292 0.864746 0.991699
+7 29 29 0.491699 0.837402 1
+7 29 30 0.488525 0.806641 1
+7 29 31 0.483643 0.772461 1
+7 30 0 0.406982 0.907227 0.329102
+7 30 1 0.406982 0.907227 0.329102
+7 30 2 0.406982 0.907227 0.329102
+7 30 3 0.406982 0.907227 0.329102
+7 30 4 0.406982 0.907227 0.329102
+7 30 5 0.406982 0.907227 0.329102
+7 30 6 0.406982 0.907227 0.329102
+7 30 7 0.406982 0.907227 0.329102
+7 30 8 0.406982 0.907227 0.329102
+7 30 9 0.406982 0.907227 0.329102
+7 30 10 0.406982 0.907227 0.329102
+7 30 11 0.407227 0.907227 0.329102
+7 30 12 0.407471 0.907227 0.329102
+7 30 13 0.407715 0.907227 0.329102
+7 30 14 0.408203 0.907715 0.329102
+7 30 15 0.408936 0.907715 0.329346
+7 30 16 0.412109 0.910645 0.358154
+7 30 17 0.418457 0.916504 0.412354
+7 30 18 0.42627 0.923828 0.470703
+7 30 19 0.435059 0.930664 0.530762
+7 30 20 0.444336 0.936523 0.589355
+7 30 21 0.453613 0.941406 0.647461
+7 30 22 0.462646 0.943848 0.702637
+7 30 23 0.470459 0.943359 0.75293
+7 30 24 0.477295 0.940918 0.798828
+7 30 25 0.483643 0.935059 0.843262
+7 30 26 0.48877 0.925293 0.886719
+7 30 27 0.492676 0.911133 0.927734
+7 30 28 0.494873 0.892578 0.964844
+7 30 29 0.495361 0.869141 0.99707
+7 30 30 0.493896 0.841309 1
+7 30 31 0.490479 0.80957 1
+7 31 0 0.408936 0.912109 0.330811
+7 31 1 0.408936 0.912109 0.330811
+7 31 2 0.408936 0.912109 0.330811
+7 31 3 0.408936 0.912109 0.330811
+7 31 4 0.408936 0.912109 0.330811
+7 31 5 0.408936 0.912109 0.330811
+7 31 6 0.408936 0.912109 0.330811
+7 31 7 0.408936 0.912109 0.330811
+7 31 8 0.408936 0.912109 0.330811
+7 31 9 0.40918 0.912109 0.330811
+7 31 10 0.40918 0.912109 0.330811
+7 31 11 0.40918 0.912109 0.330811
+7 31 12 0.409424 0.912109 0.330811
+7 31 13 0.409668 0.912109 0.330811
+7 31 14 0.409912 0.912109 0.330811
+7 31 15 0.410645 0.912109 0.330811
+7 31 16 0.412109 0.913574 0.340576
+7 31 17 0.417725 0.918945 0.390625
+7 31 18 0.424561 0.925293 0.444824
+7 31 19 0.432373 0.932129 0.500488
+7 31 20 0.440918 0.937988 0.556152
+7 31 21 0.449707 0.943359 0.61084
+7 31 22 0.458252 0.947266 0.664062
+7 31 23 0.466064 0.949219 0.712891
+7 31 24 0.473145 0.949219 0.757812
+7 31 25 0.47998 0.946289 0.803223
+7 31 26 0.486084 0.94043 0.848145
+7 31 27 0.491211 0.930176 0.891602
+7 31 28 0.495117 0.916016 0.932129
+7 31 29 0.49707 0.896973 0.969238
+7 31 30 0.497314 0.872559 1
+7 31 31 0.495605 0.844238 1
+8 0 0 0.125 0.0927124 0
+8 0 1 0.125 0.0927734 0
+8 0 2 0.125 0.0927734 0
+8 0 3 0.125122 0.0928955 0
+8 0 4 0.125244 0.0930786 0.0197754
+8 0 5 0.125 0.0925293 0.0524292
+8 0 6 0.12323 0.0908203 0.0760498
+8 0 7 0.110474 0.0828857 0.0917358
+8 0 8 0.102478 0.0791626 0.107361
+8 0 9 0.105103 0.0812378 0.136841
+8 0 10 0.111206 0.0861206 0.174805
+8 0 11 0.122498 0.0949707 0.224243
+8 0 12 0.137573 0.106873 0.282959
+8 0 13 0.156616 0.121765 0.349121
+8 0 14 0.179321 0.139648 0.422119
+8 0 15 0.205078 0.15979 0.499756
+8 0 16 0.233032 0.181641 0.580566
+8 0 17 0.260498 0.203247 0.658203
+8 0 18 0.286377 0.223389 0.72998
+8 0 19 0.309326 0.241333 0.792969
+8 0 20 0.322021 0.251221 0.828125
+8 0 21 0.32373 0.252686 0.834961
+8 0 22 0.325928 0.254395 0.841797
+8 0 23 0.328369 0.256348 0.849121
+8 0 24 0.331055 0.258301 0.856445
+8 0 25 0.33374 0.260498 0.864746
+8 0 26 0.337158 0.263184 0.873535
+8 0 27 0.34082 0.265869 0.883789
+8 0 28 0.344971 0.269287 0.89502
+8 0 29 0.349365 0.272705 0.907227
+8 0 30 0.354004 0.276367 0.919434
+8 0 31 0.358887 0.280273 0.932617
+8 1 0 0.124878 0.0929565 0
+8 1 1 0.124878 0.0930176 0
+8 1 2 0.124878 0.0930176 0
+8 1 3 0.125 0.0932007 0
+8 1 4 0.125244 0.0933838 0.0196533
+8 1 5 0.124939 0.0928345 0.0523376
+8 1 6 0.123291 0.0911865 0.0759888
+8 1 7 0.110596 0.0831909 0.0918579
+8 1 8 0.102478 0.0794067 0.107361
+8 1 9 0.105103 0.0814209 0.136841
+8 1 10 0.111267 0.0863037 0.174805
+8 1 11 0.122498 0.0951538 0.224243
+8 1 12 0.137573 0.106995 0.282959
+8 1 13 0.156616 0.121887 0.349121
+8 1 14 0.179321 0.139648 0.422119
+8 1 15 0.205078 0.159912 0.5
+8 1 16 0.233032 0.181763 0.580566
+8 1 17 0.260498 0.203247 0.658203
+8 1 18 0.286377 0.223511 0.72998
+8 1 19 0.309326 0.241455 0.792969
+8 1 20 0.322021 0.251221 0.828125
+8 1 21 0.32373 0.252686 0.834961
+8 1 22 0.325928 0.254395 0.841797
+8 1 23 0.328369 0.256348 0.849121
+8 1 24 0.331055 0.258301 0.856445
+8 1 25 0.33374 0.260498 0.864746
+8 1 26 0.337158 0.263184 0.873535
+8 1 27 0.34082 0.265869 0.883789
+8 1 28 0.344971 0.269287 0.89502
+8 1 29 0.349365 0.272705 0.907227
+8 1 30 0.354004 0.276367 0.919434
+8 1 31 0.358887 0.280273 0.932617
+8 2 0 0.124634 0.0933838 0
+8 2 1 0.124634 0.0934448 0
+8 2 2 0.124634 0.0934448 0
+8 2 3 0.124756 0.0936279 0
+8 2 4 0.125 0.093811 0.019455
+8 2 5 0.124939 0.0933838 0.0521851
+8 2 6 0.123352 0.0917969 0.0759277
+8 2 7 0.11084 0.0838013 0.09198
+8 2 8 0.102539 0.0797729 0.107422
+8 2 9 0.105103 0.0817871 0.136841
+8 2 10 0.111267 0.0866089 0.174805
+8 2 11 0.122498 0.0953979 0.224243
+8 2 12 0.137573 0.107239 0.282959
+8 2 13 0.156616 0.12207 0.349121
+8 2 14 0.179321 0.139893 0.422119
+8 2 15 0.205078 0.160034 0.5
+8 2 16 0.233032 0.181763 0.580566
+8 2 17 0.260498 0.203369 0.658203
+8 2 18 0.286377 0.223511 0.72998
+8 2 19 0.309326 0.241455 0.792969
+8 2 20 0.322021 0.251221 0.828125
+8 2 21 0.32373 0.252686 0.834961
+8 2 22 0.325928 0.254395 0.841797
+8 2 23 0.328369 0.256348 0.849121
+8 2 24 0.331055 0.258301 0.856445
+8 2 25 0.33374 0.260498 0.864746
+8 2 26 0.337158 0.263184 0.873535
+8 2 27 0.34082 0.265869 0.883789
+8 2 28 0.344971 0.269287 0.89502
+8 2 29 0.349365 0.272705 0.907227
+8 2 30 0.354004 0.276367 0.919434
+8 2 31 0.358887 0.280273 0.932617
+8 3 0 0.124146 0.0941162 0
+8 3 1 0.124146 0.0941772 0
+8 3 2 0.124146 0.0942383 0
+8 3 3 0.124268 0.0943604 0
+8 3 4 0.124634 0.0946045 0.0192413
+8 3 5 0.124756 0.0943604 0.0519409
+8 3 6 0.123413 0.0928345 0.0758057
+8 3 7 0.111328 0.0848999 0.0922852
+8 3 8 0.1026 0.0803833 0.107422
+8 3 9 0.105164 0.0823975 0.136841
+8 3 10 0.111328 0.0872192 0.174805
+8 3 11 0.122559 0.0959473 0.224243
+8 3 12 0.137695 0.107666 0.282959
+8 3 13 0.156616 0.122437 0.349121
+8 3 14 0.179321 0.140137 0.422119
+8 3 15 0.205078 0.160278 0.5
+8 3 16 0.233032 0.182007 0.580566
+8 3 17 0.260498 0.203491 0.658203
+8 3 18 0.286377 0.223633 0.72998
+8 3 19 0.309326 0.241577 0.792969
+8 3 20 0.322021 0.251465 0.828125
+8 3 21 0.32373 0.252686 0.834961
+8 3 22 0.325928 0.254395 0.841797
+8 3 23 0.328369 0.256348 0.849121
+8 3 24 0.331055 0.258301 0.856445
+8 3 25 0.33374 0.260498 0.864746
+8 3 26 0.337158 0.263184 0.873535
+8 3 27 0.34082 0.265869 0.883789
+8 3 28 0.344971 0.269287 0.89502
+8 3 29 0.349365 0.272705 0.907227
+8 3 30 0.354004 0.276367 0.919434
+8 3 31 0.358887 0.280273 0.932617
+8 4 0 0.123169 0.0953979 0
+8 4 1 0.123108 0.0953979 0
+8 4 2 0.123108 0.0953979 0
+8 4 3 0.12323 0.0955811 0
+8 4 4 0.123779 0.0959473 0.0193787
+8 4 5 0.124329 0.0960083 0.0514832
+8 4 6 0.123352 0.0947266 0.0755005
+8 4 7 0.112183 0.0869141 0.0928345
+8 4 8 0.102661 0.081665 0.107422
+8 4 9 0.105286 0.0835571 0.136841
+8 4 10 0.111389 0.0882568 0.174805
+8 4 11 0.12262 0.0969238 0.224243
+8 4 12 0.137695 0.108521 0.282959
+8 4 13 0.156616 0.123169 0.349121
+8 4 14 0.179443 0.140747 0.422119
+8 4 15 0.2052 0.160645 0.5
+8 4 16 0.233032 0.182373 0.580566
+8 4 17 0.260742 0.203735 0.658203
+8 4 18 0.286377 0.223877 0.72998
+8 4 19 0.309326 0.241699 0.792969
+8 4 20 0.322021 0.251465 0.828125
+8 4 21 0.32373 0.25293 0.834961
+8 4 22 0.325928 0.254639 0.841797
+8 4 23 0.328369 0.256348 0.849121
+8 4 24 0.331055 0.258301 0.856445
+8 4 25 0.33374 0.260742 0.864746
+8 4 26 0.337158 0.263184 0.873535
+8 4 27 0.34082 0.266113 0.883789
+8 4 28 0.344971 0.269287 0.89502
+8 4 29 0.349365 0.272705 0.907227
+8 4 30 0.354004 0.276367 0.919434
+8 4 31 0.358887 0.280273 0.932617
+8 5 0 0.12085 0.097168 0
+8 5 1 0.12085 0.097168 0
+8 5 2 0.12085 0.097229 0
+8 5 3 0.120972 0.0973511 0
+8 5 4 0.121643 0.0979004 0.0214233
+8 5 5 0.122803 0.0984497 0.0507202
+8 5 6 0.122864 0.0978394 0.074707
+8 5 7 0.113953 0.0908813 0.0938721
+8 5 8 0.102905 0.0839233 0.107422
+8 5 9 0.105469 0.0857544 0.136841
+8 5 10 0.111572 0.090271 0.174805
+8 5 11 0.122742 0.0987549 0.224243
+8 5 12 0.137817 0.110107 0.282959
+8 5 13 0.156738 0.124451 0.349121
+8 5 14 0.179443 0.141724 0.422119
+8 5 15 0.2052 0.161499 0.5
+8 5 16 0.233154 0.182983 0.580566
+8 5 17 0.260742 0.204224 0.658203
+8 5 18 0.286377 0.224243 0.72998
+8 5 19 0.309326 0.242065 0.792969
+8 5 20 0.322021 0.251709 0.828125
+8 5 21 0.32373 0.253174 0.834961
+8 5 22 0.325928 0.254639 0.842285
+8 5 23 0.328369 0.256592 0.849121
+8 5 24 0.331055 0.258545 0.856445
+8 5 25 0.33374 0.260742 0.864746
+8 5 26 0.337158 0.263184 0.874023
+8 5 27 0.34082 0.266113 0.883789
+8 5 28 0.344971 0.269287 0.89502
+8 5 29 0.349365 0.272705 0.907227
+8 5 30 0.354004 0.276367 0.919434
+8 5 31 0.358887 0.280273 0.932617
+8 6 0 0.115967 0.0990601 0
+8 6 1 0.115967 0.0990601 0
+8 6 2 0.115967 0.0991211 0
+8 6 3 0.115967 0.0991821 0
+8 6 4 0.11676 0.0997314 0.0284729
+8 6 5 0.118347 0.100708 0.050293
+8 6 6 0.12085 0.102234 0.072937
+8 6 7 0.117126 0.0983276 0.0955811
+8 6 8 0.10321 0.0880737 0.107483
+8 6 9 0.105835 0.0896606 0.136841
+8 6 10 0.111877 0.0939331 0.174805
+8 6 11 0.123047 0.102112 0.224243
+8 6 12 0.138062 0.113098 0.282715
+8 6 13 0.156982 0.126953 0.349121
+8 6 14 0.179688 0.143799 0.422119
+8 6 15 0.205322 0.163086 0.5
+8 6 16 0.233154 0.184204 0.580566
+8 6 17 0.260742 0.2052 0.658203
+8 6 18 0.286621 0.224976 0.72998
+8 6 19 0.30957 0.242676 0.792969
+8 6 20 0.322021 0.252197 0.828125
+8 6 21 0.323975 0.253418 0.834961
+8 6 22 0.326172 0.255127 0.842285
+8 6 23 0.328369 0.256836 0.849609
+8 6 24 0.331055 0.258789 0.856934
+8 6 25 0.333984 0.260986 0.864746
+8 6 26 0.337158 0.263428 0.874023
+8 6 27 0.34082 0.266113 0.883789
+8 6 28 0.344971 0.269531 0.89502
+8 6 29 0.349365 0.272949 0.907227
+8 6 30 0.354004 0.276611 0.919434
+8 6 31 0.358887 0.280273 0.932617
+8 7 0 0.108887 0.101135 0.0332031
+8 7 1 0.108887 0.101196 0.0332336
+8 7 2 0.108948 0.101196 0.0332642
+8 7 3 0.108948 0.101257 0.0333557
+8 7 4 0.10907 0.101379 0.0408325
+8 7 5 0.109619 0.101685 0.0531006
+8 7 6 0.111206 0.102905 0.0693359
+8 7 7 0.116333 0.106689 0.093689
+8 7 8 0.103882 0.0952148 0.107483
+8 7 9 0.106506 0.0966187 0.136963
+8 7 10 0.112488 0.100464 0.174805
+8 7 11 0.123596 0.108154 0.224121
+8 7 12 0.13855 0.118469 0.282715
+8 7 13 0.157349 0.13147 0.349121
+8 7 14 0.179932 0.147461 0.422119
+8 7 15 0.205688 0.166016 0.5
+8 7 16 0.233398 0.186523 0.580566
+8 7 17 0.260986 0.207031 0.658691
+8 7 18 0.286621 0.22644 0.72998
+8 7 19 0.30957 0.243774 0.792969
+8 7 20 0.322266 0.253174 0.828125
+8 7 21 0.323975 0.25415 0.834961
+8 7 22 0.326172 0.255615 0.842285
+8 7 23 0.328613 0.257324 0.849609
+8 7 24 0.331055 0.259277 0.856934
+8 7 25 0.333984 0.26123 0.864746
+8 7 26 0.337158 0.263672 0.874023
+8 7 27 0.34082 0.266602 0.883789
+8 7 28 0.344971 0.269775 0.89502
+8 7 29 0.349365 0.273193 0.907227
+8 7 30 0.354004 0.276855 0.919434
+8 7 31 0.358887 0.280518 0.932617
+8 8 0 0.110535 0.114441 0.0459595
+8 8 1 0.110535 0.114441 0.0459595
+8 8 2 0.110535 0.114441 0.0459595
+8 8 3 0.110596 0.114502 0.04599
+8 8 4 0.110596 0.114502 0.0482178
+8 8 5 0.110229 0.114014 0.058075
+8 8 6 0.109619 0.113098 0.071228
+8 8 7 0.108215 0.111206 0.0880737
+8 8 8 0.105103 0.107056 0.107422
+8 8 9 0.107788 0.108276 0.136963
+8 8 10 0.113647 0.111633 0.174805
+8 8 11 0.124634 0.118652 0.224121
+8 8 12 0.139526 0.128052 0.282715
+8 8 13 0.158203 0.139771 0.349121
+8 8 14 0.180664 0.154419 0.422119
+8 8 15 0.206177 0.171631 0.5
+8 8 16 0.233887 0.190918 0.581055
+8 8 17 0.26123 0.210571 0.658691
+8 8 18 0.286865 0.229248 0.72998
+8 8 19 0.309814 0.246094 0.792969
+8 8 20 0.32251 0.255127 0.828613
+8 8 21 0.324219 0.255615 0.835449
+8 8 22 0.326416 0.256836 0.842285
+8 8 23 0.328613 0.258301 0.849609
+8 8 24 0.331299 0.26001 0.856934
+8 8 25 0.333984 0.261963 0.865234
+8 8 26 0.337158 0.264404 0.874023
+8 8 27 0.34082 0.26709 0.883789
+8 8 28 0.344971 0.270264 0.89502
+8 8 29 0.349609 0.273438 0.907227
+8 8 30 0.354248 0.2771 0.919434
+8 8 31 0.359131 0.280762 0.932617
+8 9 0 0.108215 0.12854 0.0499573
+8 9 1 0.108215 0.12854 0.0499573
+8 9 2 0.108215 0.12854 0.0499573
+8 9 3 0.108215 0.12854 0.0499878
+8 9 4 0.108276 0.128662 0.0500183
+8 9 5 0.108154 0.128296 0.056366
+8 9 6 0.107727 0.127441 0.0688477
+8 9 7 0.106995 0.125977 0.0853271
+8 9 8 0.1073 0.125 0.107361
+8 9 9 0.110229 0.126221 0.137207
+8 9 10 0.116028 0.12915 0.175049
+8 9 11 0.126587 0.135498 0.224121
+8 9 12 0.141235 0.143677 0.282715
+8 9 13 0.159668 0.153809 0.349121
+8 9 14 0.181885 0.166504 0.422363
+8 9 15 0.207153 0.181641 0.5
+8 9 16 0.234619 0.199097 0.581055
+8 9 17 0.261963 0.217041 0.658691
+8 9 18 0.287354 0.234497 0.730469
+8 9 19 0.310303 0.250244 0.792969
+8 9 20 0.322998 0.258545 0.829102
+8 9 21 0.324463 0.258545 0.835449
+8 9 22 0.32666 0.259277 0.842773
+8 9 23 0.328857 0.260254 0.850098
+8 9 24 0.331543 0.261719 0.857422
+8 9 25 0.334229 0.263428 0.865234
+8 9 26 0.337402 0.265625 0.874023
+8 9 27 0.341064 0.268066 0.884277
+8 9 28 0.345215 0.270996 0.895508
+8 9 29 0.349609 0.274414 0.907227
+8 9 30 0.354248 0.277832 0.919922
+8 9 31 0.359131 0.28125 0.932617
+8 10 0 0.109802 0.150635 0.0570984
+8 10 1 0.109863 0.150635 0.0570984
+8 10 2 0.109863 0.150635 0.0570984
+8 10 3 0.109863 0.150635 0.0570984
+8 10 4 0.109924 0.150757 0.0571289
+8 10 5 0.110046 0.150879 0.0571594
+8 10 6 0.110168 0.150635 0.0685425
+8 10 7 0.110535 0.150269 0.0852661
+8 10 8 0.111816 0.150513 0.107971
+8 10 9 0.114807 0.151611 0.137939
+8 10 10 0.120422 0.154175 0.175903
+8 10 11 0.130371 0.159668 0.224365
+8 10 12 0.144409 0.166626 0.282715
+8 10 13 0.162354 0.175049 0.349365
+8 10 14 0.184082 0.185303 0.422607
+8 10 15 0.208862 0.197876 0.500488
+8 10 16 0.236084 0.212646 0.581543
+8 10 17 0.262939 0.228149 0.65918
+8 10 18 0.28833 0.24353 0.730469
+8 10 19 0.311035 0.257812 0.793457
+8 10 20 0.32373 0.264893 0.830078
+8 10 21 0.325195 0.263672 0.836426
+8 10 22 0.327148 0.263428 0.843262
+8 10 23 0.329346 0.263916 0.850586
+8 10 24 0.331787 0.264648 0.85791
+8 10 25 0.334717 0.266113 0.865723
+8 10 26 0.337646 0.267822 0.874512
+8 10 27 0.341309 0.27002 0.884277
+8 10 28 0.345459 0.272705 0.895508
+8 10 29 0.349854 0.275635 0.907715
+8 10 30 0.354492 0.279053 0.919922
+8 10 31 0.359375 0.282471 0.932617
+8 11 0 0.118591 0.185547 0.0691528
+8 11 1 0.118591 0.185669 0.0691528
+8 11 2 0.118652 0.185669 0.0691528
+8 11 3 0.118652 0.185669 0.0691528
+8 11 4 0.118713 0.185669 0.0691528
+8 11 5 0.118774 0.185791 0.0692139
+8 11 6 0.118958 0.185913 0.071228
+8 11 7 0.119507 0.185791 0.0877686
+8 11 8 0.120728 0.185791 0.110413
+8 11 9 0.123291 0.186523 0.140381
+8 11 10 0.128296 0.188477 0.178223
+8 11 11 0.136841 0.192261 0.225586
+8 11 12 0.14978 0.197876 0.283203
+8 11 13 0.16687 0.204712 0.349365
+8 11 14 0.187744 0.212524 0.422852
+8 11 15 0.211914 0.222046 0.500977
+8 11 16 0.238525 0.233521 0.582031
+8 11 17 0.265137 0.245728 0.659668
+8 11 18 0.290039 0.258301 0.731445
+8 11 19 0.3125 0.27002 0.793945
+8 11 20 0.325195 0.275391 0.831543
+8 11 21 0.326416 0.271973 0.837891
+8 11 22 0.328369 0.270508 0.844727
+8 11 23 0.330322 0.269775 0.851562
+8 11 24 0.33252 0.269775 0.858398
+8 11 25 0.335205 0.270508 0.866699
+8 11 26 0.338379 0.271729 0.875488
+8 11 27 0.341797 0.273438 0.885254
+8 11 28 0.345947 0.275635 0.895996
+8 11 29 0.350098 0.27832 0.908203
+8 11 30 0.354736 0.281006 0.92041
+8 11 31 0.359619 0.28418 0.933105
+8 12 0 0.132202 0.230713 0.085022
+8 12 1 0.132202 0.230713 0.085022
+8 12 2 0.132324 0.230713 0.085022
+8 12 3 0.132324 0.230713 0.085022
+8 12 4 0.132324 0.230835 0.085083
+8 12 5 0.132446 0.230835 0.085083
+8 12 6 0.132568 0.230957 0.085144
+8 12 7 0.132935 0.231079 0.0914307
+8 12 8 0.134033 0.231201 0.113953
+8 12 9 0.136353 0.231567 0.143921
+8 12 10 0.140381 0.232422 0.181396
+8 12 11 0.147339 0.234619 0.227661
+8 12 12 0.158569 0.238403 0.283936
+8 12 13 0.174194 0.243408 0.349609
+8 12 14 0.193848 0.249268 0.423096
+8 12 15 0.216919 0.255859 0.501465
+8 12 16 0.242554 0.263672 0.58252
+8 12 17 0.268311 0.271973 0.660645
+8 12 18 0.292725 0.280762 0.732422
+8 12 19 0.314697 0.289307 0.79541
+8 12 20 0.327881 0.291992 0.833984
+8 12 21 0.328613 0.285889 0.839844
+8 12 22 0.330078 0.281982 0.84668
+8 12 23 0.331787 0.279541 0.853027
+8 12 24 0.333984 0.27832 0.860352
+8 12 25 0.336426 0.277832 0.867676
+8 12 26 0.339355 0.278076 0.876465
+8 12 27 0.342773 0.278809 0.88623
+8 12 28 0.34668 0.280273 0.896973
+8 12 29 0.35083 0.282471 0.908691
+8 12 30 0.355225 0.284668 0.920898
+8 12 31 0.360107 0.287354 0.933594
+8 13 0 0.149658 0.282959 0.103638
+8 13 1 0.149658 0.282959 0.103638
+8 13 2 0.149658 0.282959 0.103638
+8 13 3 0.149658 0.283203 0.103638
+8 13 4 0.149658 0.283203 0.103699
+8 13 5 0.14978 0.283203 0.103699
+8 13 6 0.149902 0.283203 0.103699
+8 13 7 0.150146 0.283447 0.10376
+8 13 8 0.150879 0.283447 0.11731
+8 13 9 0.152832 0.283936 0.146851
+8 13 10 0.15625 0.284424 0.184082
+8 13 11 0.162109 0.285645 0.229858
+8 13 12 0.171387 0.287842 0.285156
+8 13 13 0.185059 0.29126 0.350098
+8 13 14 0.203003 0.295166 0.42334
+8 13 15 0.224609 0.299316 0.501953
+8 13 16 0.248901 0.303711 0.583496
+8 13 17 0.273682 0.308105 0.662109
+8 13 18 0.297119 0.3125 0.733887
+8 13 19 0.318359 0.317139 0.796875
+8 13 20 0.331787 0.316895 0.837891
+8 13 21 0.332031 0.306641 0.84375
+8 13 22 0.332764 0.299561 0.849609
+8 13 23 0.334229 0.294678 0.855957
+8 13 24 0.336182 0.291748 0.862793
+8 13 25 0.338379 0.289551 0.870117
+8 13 26 0.341064 0.288086 0.878418
+8 13 27 0.343994 0.287598 0.888184
+8 13 28 0.3479 0.288086 0.898926
+8 13 29 0.351807 0.289062 0.910156
+8 13 30 0.356201 0.290527 0.922363
+8 13 31 0.36084 0.292236 0.935059
+8 14 0 0.170898 0.341797 0.124756
+8 14 1 0.170898 0.341797 0.124756
+8 14 2 0.170898 0.341797 0.124756
+8 14 3 0.170898 0.341797 0.124756
+8 14 4 0.170898 0.342041 0.124756
+8 14 5 0.170898 0.342041 0.124756
+8 14 6 0.171021 0.342041 0.124756
+8 14 7 0.171265 0.342041 0.124817
+8 14 8 0.171631 0.342285 0.124878
+8 14 9 0.173096 0.342773 0.149414
+8 14 10 0.176025 0.343262 0.185913
+8 14 11 0.180908 0.344238 0.231201
+8 14 12 0.188721 0.345703 0.285889
+8 14 13 0.200317 0.3479 0.350098
+8 14 14 0.216064 0.350098 0.422852
+8 14 15 0.235718 0.352295 0.501953
+8 14 16 0.258301 0.35376 0.583984
+8 14 17 0.281494 0.354492 0.663086
+8 14 18 0.303711 0.354736 0.735352
+8 14 19 0.323975 0.35498 0.798828
+8 14 20 0.338135 0.351807 0.84375
+8 14 21 0.337158 0.336182 0.849121
+8 14 22 0.337402 0.324951 0.85498
+8 14 23 0.338379 0.317139 0.86084
+8 14 24 0.3396 0.311279 0.867188
+8 14 25 0.341309 0.306885 0.874023
+8 14 26 0.343506 0.303467 0.881836
+8 14 27 0.346436 0.301025 0.891113
+8 14 28 0.349854 0.299805 0.901367
+8 14 29 0.35376 0.299316 0.912598
+8 14 30 0.357666 0.299316 0.924316
+8 14 31 0.362061 0.300049 0.936523
+8 15 0 0.19519 0.405518 0.147583
+8 15 1 0.19519 0.405518 0.147583
+8 15 2 0.19519 0.405518 0.147583
+8 15 3 0.19519 0.405518 0.147583
+8 15 4 0.195312 0.405518 0.147583
+8 15 5 0.195312 0.405518 0.147583
+8 15 6 0.195312 0.405518 0.147583
+8 15 7 0.195557 0.405518 0.147705
+8 15 8 0.195801 0.405762 0.147705
+8 15 9 0.196411 0.406006 0.151855
+8 15 10 0.198853 0.406738 0.187012
+8 15 11 0.203003 0.407715 0.231323
+8 15 12 0.209473 0.40918 0.285156
+8 15 13 0.21936 0.410645 0.348633
+8 15 14 0.233032 0.412354 0.421143
+8 15 15 0.250488 0.41333 0.500488
+8 15 16 0.270996 0.412842 0.583496
+8 15 17 0.292236 0.4104 0.663574
+8 15 18 0.312988 0.406738 0.736816
+8 15 19 0.331787 0.402832 0.800781
+8 15 20 0.34668 0.397217 0.851074
+8 15 21 0.345215 0.375977 0.856934
+8 15 22 0.344482 0.359863 0.862793
+8 15 23 0.344482 0.3479 0.868164
+8 15 24 0.344971 0.338867 0.873535
+8 15 25 0.346191 0.331543 0.879883
+8 15 26 0.3479 0.325195 0.887207
+8 15 27 0.350098 0.320312 0.895508
+8 15 28 0.353027 0.31665 0.905273
+8 15 29 0.356445 0.314209 0.916016
+8 15 30 0.360107 0.3125 0.927246
+8 15 31 0.364014 0.311523 0.938965
+8 16 0 0.222046 0.472412 0.171753
+8 16 1 0.222046 0.472412 0.171753
+8 16 2 0.222046 0.472412 0.171753
+8 16 3 0.222046 0.472412 0.171753
+8 16 4 0.222168 0.472412 0.171753
+8 16 5 0.222168 0.472412 0.171753
+8 16 6 0.222168 0.472412 0.171753
+8 16 7 0.22229 0.472656 0.171753
+8 16 8 0.222534 0.472656 0.171875
+8 16 9 0.2229 0.4729 0.171875
+8 16 10 0.224365 0.473389 0.187988
+8 16 11 0.227661 0.474365 0.230469
+8 16 12 0.233154 0.47583 0.282959
+8 16 13 0.241455 0.477783 0.345215
+8 16 14 0.253174 0.479492 0.417236
+8 16 15 0.268555 0.47998 0.496826
+8 16 16 0.286865 0.47876 0.580566
+8 16 17 0.306396 0.474609 0.662598
+8 16 18 0.325195 0.468018 0.737305
+8 16 19 0.342773 0.460205 0.802734
+8 16 20 0.357422 0.45166 0.855957
+8 16 21 0.356201 0.426514 0.867188
+8 16 22 0.354492 0.405273 0.873535
+8 16 23 0.353516 0.388916 0.878906
+8 16 24 0.353027 0.375732 0.883789
+8 16 25 0.353271 0.364502 0.889648
+8 16 26 0.354248 0.354736 0.895996
+8 16 27 0.355469 0.34668 0.90332
+8 16 28 0.357666 0.340088 0.912109
+8 16 29 0.360596 0.334717 0.921875
+8 16 30 0.363525 0.330566 0.932129
+8 16 31 0.367188 0.327393 0.943359
+8 17 0 0.24939 0.538574 0.195679
+8 17 1 0.24939 0.538574 0.195679
+8 17 2 0.24939 0.538574 0.195679
+8 17 3 0.24939 0.538574 0.195679
+8 17 4 0.24939 0.538574 0.195679
+8 17 5 0.24939 0.538574 0.195679
+8 17 6 0.249512 0.538574 0.195679
+8 17 7 0.249512 0.538574 0.195679
+8 17 8 0.249756 0.538574 0.195679
+8 17 9 0.25 0.539062 0.195801
+8 17 10 0.250732 0.539062 0.195923
+8 17 11 0.253174 0.540039 0.22876
+8 17 12 0.257812 0.541992 0.279297
+8 17 13 0.264893 0.543945 0.339844
+8 17 14 0.275146 0.546387 0.410645
+8 17 15 0.288574 0.547363 0.489746
+8 17 16 0.304688 0.546387 0.574219
+8 17 17 0.32251 0.541992 0.658203
+8 17 18 0.339844 0.533691 0.735352
+8 17 19 0.355713 0.523438 0.802246
+8 17 20 0.369141 0.511719 0.857422
+8 17 21 0.370117 0.48584 0.878418
+8 17 22 0.36792 0.460205 0.888184
+8 17 23 0.365967 0.438965 0.894043
+8 17 24 0.364502 0.421631 0.898438
+8 17 25 0.363525 0.40625 0.90332
+8 17 26 0.363281 0.392334 0.908691
+8 17 27 0.363525 0.380371 0.914551
+8 17 28 0.364746 0.370117 0.921875
+8 17 29 0.366455 0.361572 0.930176
+8 17 30 0.368652 0.354248 0.939453
+8 17 31 0.371338 0.348389 0.949219
+8 18 0 0.275391 0.600586 0.218018
+8 18 1 0.275391 0.600586 0.218018
+8 18 2 0.275391 0.600586 0.218018
+8 18 3 0.275391 0.600586 0.218018
+8 18 4 0.275391 0.600586 0.218018
+8 18 5 0.275391 0.600586 0.218018
+8 18 6 0.275391 0.600586 0.218018
+8 18 7 0.275391 0.600586 0.218018
+8 18 8 0.275635 0.600586 0.218018
+8 18 9 0.275879 0.600586 0.21814
+8 18 10 0.276367 0.601074 0.21814
+8 18 11 0.277588 0.601562 0.226562
+8 18 12 0.281494 0.603027 0.274414
+8 18 13 0.287354 0.605469 0.332764
+8 18 14 0.296387 0.608398 0.401367
+8 18 15 0.30835 0.61084 0.479248
+8 18 16 0.322998 0.61084 0.563965
+8 18 17 0.339355 0.607422 0.648926
+8 18 18 0.355469 0.599609 0.729004
+8 18 19 0.370117 0.588379 0.798828
+8 18 20 0.382324 0.574707 0.856445
+8 18 21 0.385742 0.549805 0.888184
+8 18 22 0.384277 0.521973 0.90332
+8 18 23 0.381836 0.496826 0.911621
+8 18 24 0.379395 0.475342 0.916992
+8 18 25 0.377197 0.455322 0.921387
+8 18 26 0.375488 0.437256 0.925293
+8 18 27 0.374268 0.420654 0.929688
+8 18 28 0.374023 0.406494 0.935547
+8 18 29 0.374512 0.394043 0.941895
+8 18 30 0.375488 0.383301 0.949219
+8 18 31 0.377197 0.374023 0.95752
+8 19 0 0.299072 0.655762 0.238037
+8 19 1 0.299072 0.655762 0.238037
+8 19 2 0.299072 0.655762 0.238037
+8 19 3 0.299072 0.655762 0.238037
+8 19 4 0.299072 0.655762 0.238037
+8 19 5 0.299072 0.655762 0.238037
+8 19 6 0.299072 0.655762 0.238037
+8 19 7 0.299072 0.655762 0.238037
+8 19 8 0.299316 0.65625 0.238159
+8 19 9 0.299316 0.65625 0.238159
+8 19 10 0.299805 0.65625 0.238281
+8 19 11 0.300293 0.656738 0.238281
+8 19 12 0.302979 0.657715 0.269287
+8 19 13 0.30835 0.660645 0.324707
+8 19 14 0.315918 0.663574 0.390625
+8 19 15 0.32666 0.666992 0.466309
+8 19 16 0.340088 0.668457 0.550293
+8 19 17 0.355225 0.666992 0.635742
+8 19 18 0.370605 0.661133 0.717773
+8 19 19 0.384521 0.650391 0.790527
+8 19 20 0.395996 0.63623 0.851074
+8 19 21 0.401611 0.61377 0.893066
+8 19 22 0.401855 0.585938 0.916992
+8 19 23 0.399414 0.559082 0.930176
+8 19 24 0.396484 0.53418 0.937012
+8 19 25 0.393311 0.510254 0.941895
+8 19 26 0.390137 0.487549 0.945312
+8 19 27 0.387451 0.466553 0.948242
+8 19 28 0.385742 0.447754 0.952148
+8 19 29 0.384521 0.431152 0.956543
+8 19 30 0.384277 0.416504 0.961914
+8 19 31 0.384766 0.403564 0.96875
+8 20 0 0.31958 0.704102 0.255371
+8 20 1 0.31958 0.704102 0.255371
+8 20 2 0.31958 0.704102 0.255371
+8 20 3 0.31958 0.704102 0.255371
+8 20 4 0.31958 0.704102 0.255371
+8 20 5 0.31958 0.704102 0.255371
+8 20 6 0.31958 0.704102 0.255371
+8 20 7 0.31958 0.704102 0.255371
+8 20 8 0.319824 0.704102 0.255371
+8 20 9 0.319824 0.704102 0.255615
+8 20 10 0.320312 0.704102 0.255615
+8 20 11 0.320801 0.70459 0.255615
+8 20 12 0.322021 0.705078 0.26416
+8 20 13 0.32666 0.70752 0.316406
+8 20 14 0.333496 0.711426 0.379639
+8 20 15 0.343018 0.715332 0.452637
+8 20 16 0.355225 0.718262 0.534668
+8 20 17 0.369385 0.71875 0.620117
+8 20 18 0.384033 0.714844 0.703125
+8 20 19 0.397461 0.705566 0.77832
+8 20 20 0.408447 0.692383 0.841797
+8 20 21 0.416016 0.67334 0.89209
+8 20 22 0.418457 0.647949 0.925293
+8 20 23 0.417236 0.620605 0.944824
+8 20 24 0.414307 0.594238 0.955566
+8 20 25 0.4104 0.567383 0.961914
+8 20 26 0.406494 0.540527 0.96582
+8 20 27 0.402344 0.515625 0.96875
+8 20 28 0.398926 0.492432 0.970703
+8 20 29 0.39624 0.471436 0.973633
+8 20 30 0.394531 0.452637 0.977051
+8 20 31 0.393311 0.435791 0.981445
+8 21 0 0.337158 0.744629 0.270264
+8 21 1 0.337158 0.744629 0.270264
+8 21 2 0.337158 0.744629 0.270264
+8 21 3 0.337158 0.744629 0.270264
+8 21 4 0.337158 0.744629 0.270264
+8 21 5 0.337158 0.744629 0.270264
+8 21 6 0.337158 0.744629 0.270264
+8 21 7 0.337158 0.744629 0.270264
+8 21 8 0.337402 0.744629 0.270264
+8 21 9 0.337402 0.744629 0.270264
+8 21 10 0.337646 0.745117 0.270264
+8 21 11 0.338135 0.745117 0.270264
+8 21 12 0.338867 0.745605 0.270508
+8 21 13 0.342285 0.747559 0.307861
+8 21 14 0.348389 0.751465 0.36792
+8 21 15 0.356934 0.755859 0.437988
+8 21 16 0.368164 0.759766 0.51709
+8 21 17 0.381592 0.762207 0.601562
+8 21 18 0.395508 0.760742 0.68457
+8 21 19 0.408447 0.753906 0.76123
+8 21 20 0.419434 0.742188 0.827637
+8 21 21 0.427979 0.726074 0.883301
+8 21 22 0.432861 0.705078 0.925293
+8 21 23 0.433594 0.679688 0.952637
+8 21 24 0.431396 0.65332 0.96875
+8 21 25 0.427734 0.624512 0.979004
+8 21 26 0.423096 0.595215 0.984863
+8 21 27 0.418213 0.566895 0.988281
+8 21 28 0.413574 0.539551 0.990234
+8 21 29 0.409424 0.51416 0.991699
+8 21 30 0.406006 0.491455 0.993652
+8 21 31 0.403564 0.470947 0.996094
+8 22 0 0.351807 0.778809 0.282471
+8 22 1 0.351807 0.778809 0.282471
+8 22 2 0.351807 0.778809 0.282471
+8 22 3 0.351807 0.778809 0.282471
+8 22 4 0.351807 0.778809 0.282471
+8 22 5 0.351807 0.778809 0.282471
+8 22 6 0.351807 0.778809 0.282471
+8 22 7 0.351807 0.778809 0.282471
+8 22 8 0.351807 0.778809 0.282471
+8 22 9 0.352051 0.778809 0.282471
+8 22 10 0.352295 0.778809 0.282471
+8 22 11 0.352539 0.778809 0.282715
+8 22 12 0.353271 0.779297 0.282715
+8 22 13 0.355225 0.780273 0.299561
+8 22 14 0.360596 0.78418 0.356201
+8 22 15 0.368408 0.789062 0.423096
+8 22 16 0.378906 0.793945 0.499512
+8 22 17 0.391357 0.797852 0.581543
+8 22 18 0.404785 0.79834 0.663574
+8 22 19 0.41748 0.794434 0.741211
+8 22 20 0.428467 0.785156 0.80957
+8 22 21 0.437256 0.771484 0.868164
+8 22 22 0.443604 0.753418 0.916504
+8 22 23 0.446289 0.731934 0.951172
+8 22 24 0.446045 0.707031 0.974121
+8 22 25 0.443359 0.679199 0.989746
+8 22 26 0.439209 0.648926 1
+8 22 27 0.433838 0.617676 1
+8 22 28 0.428223 0.587402 1
+8 22 29 0.423096 0.558594 1
+8 22 30 0.418457 0.531738 1
+8 22 31 0.414307 0.507324 1
+8 23 0 0.363525 0.805664 0.292236
+8 23 1 0.363525 0.805664 0.292236
+8 23 2 0.363525 0.805664 0.292236
+8 23 3 0.363525 0.805664 0.292236
+8 23 4 0.363525 0.805664 0.292236
+8 23 5 0.363525 0.805664 0.292236
+8 23 6 0.363525 0.805664 0.292236
+8 23 7 0.363525 0.805664 0.292236
+8 23 8 0.363525 0.805664 0.292236
+8 23 9 0.36377 0.805664 0.292236
+8 23 10 0.36377 0.805664 0.292236
+8 23 11 0.364258 0.805664 0.29248
+8 23 12 0.364746 0.806152 0.29248
+8 23 13 0.365479 0.806152 0.29248
+8 23 14 0.370361 0.810059 0.345215
+8 23 15 0.377441 0.814941 0.408936
+8 23 16 0.386963 0.820312 0.482178
+8 23 17 0.398682 0.825195 0.561523
+8 23 18 0.411621 0.828125 0.642578
+8 23 19 0.424316 0.826172 0.719727
+8 23 20 0.435303 0.819824 0.789062
+8 23 21 0.444336 0.808594 0.850586
+8 23 22 0.451172 0.79248 0.901367
+8 23 23 0.455566 0.773926 0.941895
+8 23 24 0.457031 0.75293 0.971191
+8 23 25 0.456055 0.727051 0.993652
+8 23 26 0.452881 0.697266 1
+8 23 27 0.447754 0.665039 1
+8 23 28 0.442139 0.632812 1
+8 23 29 0.436035 0.601562 1
+8 23 30 0.43042 0.571289 1
+8 23 31 0.425293 0.543457 1
+8 24 0 0.372803 0.827148 0.300049
+8 24 1 0.372803 0.827148 0.300049
+8 24 2 0.372803 0.827148 0.300049
+8 24 3 0.372803 0.827148 0.300049
+8 24 4 0.372803 0.827148 0.300049
+8 24 5 0.372803 0.827148 0.300049
+8 24 6 0.372803 0.827148 0.300049
+8 24 7 0.372803 0.827148 0.300049
+8 24 8 0.373047 0.827148 0.300049
+8 24 9 0.373047 0.827148 0.300049
+8 24 10 0.373291 0.827637 0.300049
+8 24 11 0.373535 0.827637 0.300293
+8 24 12 0.373779 0.827637 0.300293
+8 24 13 0.374756 0.828125 0.300293
+8 24 14 0.378174 0.830566 0.334717
+8 24 15 0.384521 0.835449 0.395508
+8 24 16 0.393555 0.841309 0.465576
+8 24 17 0.404541 0.847168 0.541992
+8 24 18 0.416748 0.851074 0.621094
+8 24 19 0.429199 0.851562 0.697754
+8 24 20 0.440186 0.847656 0.767578
+8 24 21 0.449707 0.838867 0.830078
+8 24 22 0.457031 0.825195 0.883789
+8 24 23 0.461914 0.809082 0.927246
+8 24 24 0.464844 0.790527 0.961914
+8 24 25 0.46582 0.767578 0.989746
+8 24 26 0.463867 0.739746 1
+8 24 27 0.459961 0.708496 1
+8 24 28 0.454346 0.675293 1
+8 24 29 0.447998 0.64209 1
+8 24 30 0.44165 0.609375 1
+8 24 31 0.435791 0.578613 1
+8 25 0 0.381104 0.84668 0.307129
+8 25 1 0.381104 0.84668 0.307129
+8 25 2 0.381104 0.84668 0.307129
+8 25 3 0.381104 0.84668 0.307129
+8 25 4 0.381104 0.84668 0.307129
+8 25 5 0.381104 0.84668 0.307129
+8 25 6 0.381104 0.84668 0.307129
+8 25 7 0.381104 0.84668 0.307129
+8 25 8 0.381348 0.84668 0.307129
+8 25 9 0.381348 0.84668 0.307129
+8 25 10 0.381348 0.84668 0.307129
+8 25 11 0.381592 0.84668 0.307129
+8 25 12 0.38208 0.84668 0.307129
+8 25 13 0.382812 0.847168 0.307373
+8 25 14 0.384766 0.848633 0.324219
+8 25 15 0.390625 0.853027 0.381592
+8 25 16 0.398926 0.859375 0.448242
+8 25 17 0.40918 0.865234 0.521484
+8 25 18 0.420654 0.870605 0.598145
+8 25 19 0.432617 0.873047 0.672852
+8 25 20 0.443848 0.871582 0.742676
+8 25 21 0.453613 0.865234 0.806641
+8 25 22 0.461426 0.85498 0.862305
+8 25 23 0.467285 0.841309 0.908203
+8 25 24 0.470947 0.824707 0.945801
+8 25 25 0.473145 0.804688 0.979492
+8 25 26 0.473145 0.780273 1
+8 25 27 0.470459 0.750488 1
+8 25 28 0.46582 0.717773 1
+8 25 29 0.459717 0.683594 1
+8 25 30 0.453125 0.649414 1
+8 25 31 0.446533 0.616211 1
+8 26 0 0.388672 0.86377 0.313232
+8 26 1 0.388672 0.86377 0.313232
+8 26 2 0.388672 0.86377 0.313232
+8 26 3 0.388672 0.86377 0.313232
+8 26 4 0.388672 0.86377 0.313232
+8 26 5 0.388672 0.86377 0.313232
+8 26 6 0.388672 0.86377 0.313232
+8 26 7 0.388672 0.86377 0.313232
+8 26 8 0.388672 0.86377 0.313232
+8 26 9 0.388672 0.86377 0.313232
+8 26 10 0.388916 0.86377 0.313232
+8 26 11 0.38916 0.86377 0.313232
+8 26 12 0.389404 0.86377 0.313477
+8 26 13 0.389893 0.864258 0.313477
+8 26 14 0.390869 0.864258 0.313721
+8 26 15 0.395996 0.869141 0.367432
+8 26 16 0.403564 0.875 0.43042
+8 26 17 0.412842 0.881348 0.500488
+8 26 18 0.423828 0.887207 0.57373
+8 26 19 0.435303 0.891113 0.646484
+8 26 20 0.446289 0.89209 0.715332
+8 26 21 0.456299 0.888672 0.779785
+8 26 22 0.464844 0.881348 0.836914
+8 26 23 0.471191 0.870605 0.885254
+8 26 24 0.475586 0.856445 0.925781
+8 26 25 0.47876 0.838867 0.962402
+8 26 26 0.480225 0.816895 0.994141
+8 26 27 0.479248 0.790039 1
+8 26 28 0.475586 0.758789 1
+8 26 29 0.470215 0.724609 1
+8 26 30 0.463867 0.689941 1
+8 26 31 0.457031 0.654785 1
+8 27 0 0.395264 0.878906 0.318848
+8 27 1 0.395264 0.878906 0.318848
+8 27 2 0.395264 0.878906 0.318848
+8 27 3 0.395264 0.878906 0.318848
+8 27 4 0.395264 0.878906 0.318848
+8 27 5 0.395264 0.878906 0.318848
+8 27 6 0.395264 0.878906 0.318848
+8 27 7 0.395264 0.878906 0.318848
+8 27 8 0.395264 0.878906 0.318848
+8 27 9 0.395264 0.878906 0.318848
+8 27 10 0.395508 0.878906 0.318848
+8 27 11 0.395508 0.878906 0.318848
+8 27 12 0.395752 0.878906 0.318848
+8 27 13 0.39624 0.879395 0.318848
+8 27 14 0.396973 0.879395 0.319092
+8 27 15 0.400635 0.882324 0.353027
+8 27 16 0.407471 0.888184 0.412598
+8 27 17 0.416016 0.894531 0.47876
+8 27 18 0.426025 0.901367 0.54834
+8 27 19 0.437012 0.90625 0.618652
+8 27 20 0.447754 0.90918 0.686035
+8 27 21 0.458008 0.908203 0.749512
+8 27 22 0.466797 0.903809 0.807617
+8 27 23 0.473633 0.895996 0.85791
+8 27 24 0.479004 0.884766 0.900391
+8 27 25 0.48291 0.870117 0.939941
+8 27 26 0.485352 0.850586 0.975586
+8 27 27 0.48584 0.82666 1
+8 27 28 0.483643 0.797852 1
+8 27 29 0.479248 0.764648 1
+8 27 30 0.473389 0.72998 1
+8 27 31 0.466553 0.693848 1
+8 28 0 0.400635 0.891602 0.323242
+8 28 1 0.400635 0.891602 0.323242
+8 28 2 0.400635 0.891602 0.323242
+8 28 3 0.400635 0.891602 0.323242
+8 28 4 0.400635 0.891602 0.323242
+8 28 5 0.400635 0.891602 0.323242
+8 28 6 0.400635 0.891602 0.323242
+8 28 7 0.400635 0.891602 0.323242
+8 28 8 0.400635 0.891602 0.323242
+8 28 9 0.400635 0.891602 0.323242
+8 28 10 0.400879 0.891602 0.323242
+8 28 11 0.400879 0.891602 0.323242
+8 28 12 0.401123 0.891602 0.323486
+8 28 13 0.401611 0.891602 0.323486
+8 28 14 0.4021 0.891602 0.323486
+8 28 15 0.404297 0.893555 0.338867
+8 28 16 0.4104 0.898926 0.394531
+8 28 17 0.418213 0.905273 0.456787
+8 28 18 0.42749 0.912109 0.522949
+8 28 19 0.437744 0.917969 0.590332
+8 28 20 0.447998 0.922363 0.655273
+8 28 21 0.458008 0.923828 0.717773
+8 28 22 0.467041 0.921875 0.775391
+8 28 23 0.474609 0.916992 0.826172
+8 28 24 0.480469 0.908691 0.870605
+8 28 25 0.485352 0.896973 0.912598
+8 28 26 0.488525 0.880371 0.951172
+8 28 27 0.490234 0.859375 0.985352
+8 28 28 0.489502 0.833008 1
+8 28 29 0.486572 0.802734 1
+8 28 30 0.481689 0.769043 1
+8 28 31 0.475586 0.733398 1
+8 29 0 0.404785 0.900879 0.326904
+8 29 1 0.404785 0.900879 0.326904
+8 29 2 0.404785 0.900879 0.326904
+8 29 3 0.404785 0.900879 0.326904
+8 29 4 0.404785 0.900879 0.326904
+8 29 5 0.404785 0.900879 0.326904
+8 29 6 0.404785 0.900879 0.326904
+8 29 7 0.404785 0.900879 0.326904
+8 29 8 0.404785 0.900879 0.326904
+8 29 9 0.404785 0.900879 0.326904
+8 29 10 0.405029 0.900879 0.326904
+8 29 11 0.405029 0.900879 0.326904
+8 29 12 0.405273 0.901367 0.326904
+8 29 13 0.405518 0.901367 0.326904
+8 29 14 0.40625 0.901367 0.326904
+8 29 15 0.406982 0.901855 0.327148
+8 29 16 0.412109 0.906738 0.376465
+8 29 17 0.419189 0.913086 0.43457
+8 29 18 0.427734 0.919922 0.49707
+8 29 19 0.437256 0.92627 0.560547
+8 29 20 0.447021 0.931641 0.623047
+8 29 21 0.456787 0.935059 0.683105
+8 29 22 0.46582 0.935547 0.740234
+8 29 23 0.473633 0.933105 0.791504
+8 29 24 0.480225 0.927734 0.836426
+8 29 25 0.485596 0.918945 0.880371
+8 29 26 0.48999 0.905762 0.921875
+8 29 27 0.492676 0.887695 0.959473
+8 29 28 0.493164 0.864746 0.992188
+8 29 29 0.491943 0.837891 1
+8 29 30 0.48877 0.806641 1
+8 29 31 0.483887 0.772461 1
+8 30 0 0.407471 0.907227 0.329102
+8 30 1 0.407471 0.907227 0.329102
+8 30 2 0.407471 0.907227 0.329102
+8 30 3 0.407471 0.907227 0.329102
+8 30 4 0.407471 0.907227 0.329102
+8 30 5 0.407471 0.907227 0.329102
+8 30 6 0.407471 0.907227 0.329102
+8 30 7 0.407471 0.907227 0.329102
+8 30 8 0.407471 0.907227 0.329102
+8 30 9 0.407471 0.907227 0.329102
+8 30 10 0.407471 0.907227 0.329102
+8 30 11 0.407715 0.907227 0.329102
+8 30 12 0.407715 0.907227 0.329102
+8 30 13 0.408203 0.907715 0.329102
+8 30 14 0.408691 0.907715 0.329102
+8 30 15 0.40918 0.907715 0.329346
+8 30 16 0.412598 0.910645 0.358154
+8 30 17 0.418945 0.916992 0.412354
+8 30 18 0.426758 0.923828 0.470703
+8 30 19 0.435547 0.930664 0.530762
+8 30 20 0.44458 0.936523 0.589355
+8 30 21 0.454102 0.941406 0.647461
+8 30 22 0.462891 0.943848 0.703125
+8 30 23 0.470947 0.943848 0.75293
+8 30 24 0.477783 0.940918 0.798828
+8 30 25 0.483887 0.935059 0.843262
+8 30 26 0.489014 0.925781 0.886719
+8 30 27 0.49292 0.911621 0.927734
+8 30 28 0.495117 0.892578 0.964844
+8 30 29 0.495605 0.869141 0.99707
+8 30 30 0.494141 0.841309 1
+8 30 31 0.490723 0.80957 1
+8 31 0 0.409424 0.912109 0.330811
+8 31 1 0.409424 0.912109 0.330811
+8 31 2 0.409424 0.912109 0.330811
+8 31 3 0.409424 0.912109 0.330811
+8 31 4 0.409424 0.912109 0.330811
+8 31 5 0.409424 0.912109 0.330811
+8 31 6 0.409424 0.912109 0.330811
+8 31 7 0.409424 0.912109 0.330811
+8 31 8 0.409424 0.912109 0.330811
+8 31 9 0.409424 0.912109 0.330811
+8 31 10 0.409424 0.912109 0.330811
+8 31 11 0.409668 0.912109 0.330811
+8 31 12 0.409668 0.912109 0.330811
+8 31 13 0.409912 0.912109 0.330811
+8 31 14 0.4104 0.912109 0.330811
+8 31 15 0.410889 0.912598 0.331055
+8 31 16 0.412598 0.913574 0.340576
+8 31 17 0.418213 0.918945 0.390625
+8 31 18 0.425049 0.925293 0.444824
+8 31 19 0.432861 0.932129 0.500488
+8 31 20 0.441162 0.938477 0.556152
+8 31 21 0.449951 0.943848 0.611328
+8 31 22 0.458496 0.947266 0.664062
+8 31 23 0.466553 0.949219 0.712891
+8 31 24 0.473633 0.949219 0.757812
+8 31 25 0.480225 0.946289 0.803223
+8 31 26 0.486572 0.94043 0.848145
+8 31 27 0.491699 0.930664 0.891602
+8 31 28 0.495361 0.916016 0.932129
+8 31 29 0.497314 0.896973 0.969238
+8 31 30 0.497559 0.873047 1
+8 31 31 0.49585 0.844238 1
+9 0 0 0.161987 0.119751 0
+9 0 1 0.161987 0.119751 0
+9 0 2 0.161987 0.119812 0
+9 0 3 0.161987 0.119873 0
+9 0 4 0.162109 0.119995 0
+9 0 5 0.162231 0.120239 0.0200195
+9 0 6 0.161499 0.119263 0.0665894
+9 0 7 0.158691 0.116638 0.0976562
+9 0 8 0.140869 0.10553 0.117249
+9 0 9 0.130981 0.100952 0.137207
+9 0 10 0.135742 0.104736 0.175171
+9 0 11 0.14502 0.112061 0.224243
+9 0 12 0.157593 0.122009 0.282959
+9 0 13 0.173462 0.134521 0.349121
+9 0 14 0.193115 0.150024 0.422363
+9 0 15 0.216064 0.168091 0.5
+9 0 16 0.241577 0.18811 0.581055
+9 0 17 0.267334 0.208374 0.658691
+9 0 18 0.291748 0.227417 0.72998
+9 0 19 0.313721 0.244629 0.792969
+9 0 20 0.325684 0.253906 0.828613
+9 0 21 0.32666 0.254883 0.835449
+9 0 22 0.328369 0.256104 0.842773
+9 0 23 0.330322 0.257812 0.849609
+9 0 24 0.332764 0.259521 0.856934
+9 0 25 0.335205 0.261719 0.865234
+9 0 26 0.338379 0.26416 0.874023
+9 0 27 0.341797 0.266846 0.884277
+9 0 28 0.345947 0.27002 0.895508
+9 0 29 0.350098 0.273438 0.907227
+9 0 30 0.354736 0.276855 0.919922
+9 0 31 0.359619 0.280518 0.932617
+9 1 0 0.161865 0.119873 0
+9 1 1 0.161865 0.119934 0
+9 1 2 0.161865 0.119934 0
+9 1 3 0.161865 0.119995 0
+9 1 4 0.161987 0.120178 0
+9 1 5 0.162231 0.120422 0.0198822
+9 1 6 0.161499 0.119446 0.0665283
+9 1 7 0.158691 0.116882 0.0975952
+9 1 8 0.140991 0.105713 0.11731
+9 1 9 0.130981 0.101135 0.137207
+9 1 10 0.135742 0.104858 0.175171
+9 1 11 0.14502 0.112183 0.224243
+9 1 12 0.157593 0.12207 0.282959
+9 1 13 0.173462 0.134644 0.349121
+9 1 14 0.193115 0.150146 0.422363
+9 1 15 0.216064 0.168213 0.5
+9 1 16 0.241577 0.188232 0.581055
+9 1 17 0.267334 0.208374 0.658691
+9 1 18 0.291748 0.227539 0.72998
+9 1 19 0.313721 0.244629 0.792969
+9 1 20 0.325684 0.253906 0.828613
+9 1 21 0.32666 0.254883 0.835449
+9 1 22 0.328369 0.256348 0.842773
+9 1 23 0.330322 0.257812 0.849609
+9 1 24 0.332764 0.259521 0.856934
+9 1 25 0.335205 0.261719 0.865234
+9 1 26 0.338379 0.26416 0.874023
+9 1 27 0.341797 0.266846 0.884277
+9 1 28 0.345947 0.27002 0.895508
+9 1 29 0.350098 0.273438 0.907227
+9 1 30 0.354736 0.276855 0.919922
+9 1 31 0.359619 0.280518 0.932617
+9 2 0 0.161743 0.120178 0
+9 2 1 0.161743 0.120178 0
+9 2 2 0.161743 0.120239 0
+9 2 3 0.161743 0.1203 0
+9 2 4 0.161743 0.120422 0
+9 2 5 0.162109 0.120728 0.0196686
+9 2 6 0.161499 0.119812 0.0664673
+9 2 7 0.158813 0.11731 0.0975952
+9 2 8 0.141113 0.10614 0.117371
+9 2 9 0.130981 0.101379 0.137207
+9 2 10 0.135742 0.105103 0.175171
+9 2 11 0.14502 0.112427 0.224243
+9 2 12 0.157593 0.122314 0.282959
+9 2 13 0.173584 0.134888 0.349121
+9 2 14 0.193115 0.150269 0.422363
+9 2 15 0.216064 0.168213 0.5
+9 2 16 0.241699 0.188232 0.581055
+9 2 17 0.267334 0.208496 0.658691
+9 2 18 0.291748 0.227539 0.72998
+9 2 19 0.313721 0.244751 0.792969
+9 2 20 0.325684 0.25415 0.828613
+9 2 21 0.32666 0.254883 0.835449
+9 2 22 0.328369 0.256348 0.842773
+9 2 23 0.330322 0.257812 0.849609
+9 2 24 0.332764 0.259521 0.856934
+9 2 25 0.335205 0.261719 0.865234
+9 2 26 0.338379 0.26416 0.874023
+9 2 27 0.341797 0.266846 0.884277
+9 2 28 0.345947 0.27002 0.895508
+9 2 29 0.350098 0.273438 0.907227
+9 2 30 0.354736 0.276855 0.919922
+9 2 31 0.359619 0.280518 0.932617
+9 3 0 0.161377 0.120667 0
+9 3 1 0.161377 0.120667 0
+9 3 2 0.161377 0.120728 0
+9 3 3 0.161377 0.120789 0
+9 3 4 0.161499 0.120911 0
+9 3 5 0.161743 0.121277 0.0193329
+9 3 6 0.161377 0.120483 0.0662231
+9 3 7 0.158813 0.118042 0.0974731
+9 3 8 0.141479 0.106812 0.117615
+9 3 9 0.130981 0.101807 0.137207
+9 3 10 0.135742 0.10553 0.175171
+9 3 11 0.14502 0.112793 0.224243
+9 3 12 0.157593 0.122681 0.282959
+9 3 13 0.173584 0.135132 0.349121
+9 3 14 0.193115 0.150513 0.422363
+9 3 15 0.216064 0.168457 0.5
+9 3 16 0.241699 0.188477 0.581055
+9 3 17 0.267334 0.208618 0.658691
+9 3 18 0.291748 0.227661 0.72998
+9 3 19 0.313721 0.244751 0.792969
+9 3 20 0.325684 0.25415 0.828613
+9 3 21 0.32666 0.254883 0.835449
+9 3 22 0.328369 0.256348 0.842773
+9 3 23 0.330322 0.257812 0.849609
+9 3 24 0.332764 0.259766 0.856934
+9 3 25 0.335205 0.261719 0.865234
+9 3 26 0.338379 0.26416 0.874023
+9 3 27 0.341797 0.266846 0.884277
+9 3 28 0.345947 0.27002 0.895508
+9 3 29 0.350098 0.273438 0.907227
+9 3 30 0.354736 0.276855 0.919922
+9 3 31 0.359619 0.280762 0.932617
+9 4 0 0.160645 0.121582 0
+9 4 1 0.160645 0.121582 0
+9 4 2 0.160645 0.121582 0
+9 4 3 0.160645 0.121643 0
+9 4 4 0.160767 0.121826 0
+9 4 5 0.161255 0.122192 0.0189819
+9 4 6 0.161133 0.121704 0.065918
+9 4 7 0.158936 0.119385 0.09729
+9 4 8 0.14209 0.108215 0.117981
+9 4 9 0.131104 0.102661 0.137329
+9 4 10 0.135864 0.106323 0.175171
+9 4 11 0.145142 0.113586 0.224243
+9 4 12 0.157715 0.123352 0.282959
+9 4 13 0.173584 0.135742 0.349121
+9 4 14 0.193237 0.151001 0.422363
+9 4 15 0.216187 0.168823 0.5
+9 4 16 0.241699 0.188721 0.581055
+9 4 17 0.267334 0.208862 0.658691
+9 4 18 0.291748 0.227905 0.72998
+9 4 19 0.313721 0.244995 0.792969
+9 4 20 0.325684 0.25415 0.828613
+9 4 21 0.32666 0.255127 0.835449
+9 4 22 0.328369 0.256348 0.842773
+9 4 23 0.330566 0.258057 0.849609
+9 4 24 0.332764 0.259766 0.856934
+9 4 25 0.335449 0.261719 0.865234
+9 4 26 0.338379 0.26416 0.874023
+9 4 27 0.341797 0.266846 0.884277
+9 4 28 0.345947 0.27002 0.895508
+9 4 29 0.350098 0.273438 0.907227
+9 4 30 0.354736 0.276855 0.919922
+9 4 31 0.359619 0.280762 0.932617
+9 5 0 0.15918 0.123047 0
+9 5 1 0.15918 0.123047 0
+9 5 2 0.15918 0.123108 0
+9 5 3 0.15918 0.123108 0
+9 5 4 0.159302 0.123291 0
+9 5 5 0.159912 0.12384 0.0193787
+9 5 6 0.1604 0.123718 0.0652466
+9 5 7 0.158813 0.121765 0.0968628
+9 5 8 0.143188 0.11084 0.118713
+9 5 9 0.131226 0.104187 0.137329
+9 5 10 0.135986 0.107849 0.175171
+9 5 11 0.145264 0.11499 0.224243
+9 5 12 0.157837 0.124634 0.282959
+9 5 13 0.173706 0.136841 0.349121
+9 5 14 0.193237 0.151978 0.422363
+9 5 15 0.216187 0.169678 0.5
+9 5 16 0.241699 0.189331 0.581055
+9 5 17 0.267334 0.209351 0.658691
+9 5 18 0.291748 0.228271 0.72998
+9 5 19 0.313721 0.245239 0.792969
+9 5 20 0.325684 0.254395 0.828613
+9 5 21 0.32666 0.255371 0.835449
+9 5 22 0.328369 0.256592 0.842773
+9 5 23 0.330566 0.258057 0.849609
+9 5 24 0.332764 0.259766 0.856934
+9 5 25 0.335449 0.261963 0.865234
+9 5 26 0.338379 0.26416 0.874023
+9 5 27 0.341797 0.266846 0.884277
+9 5 28 0.345947 0.27002 0.895508
+9 5 29 0.350342 0.273438 0.907227
+9 5 30 0.354736 0.2771 0.919922
+9 5 31 0.359619 0.280762 0.932617
+9 6 0 0.156006 0.125122 0
+9 6 1 0.156006 0.125122 0
+9 6 2 0.156006 0.125244 0
+9 6 3 0.156006 0.125244 0
+9 6 4 0.156006 0.125366 0
+9 6 5 0.156982 0.126099 0.0232849
+9 6 6 0.158325 0.126709 0.064209
+9 6 7 0.158081 0.12561 0.0957642
+9 6 8 0.14563 0.115967 0.120117
+9 6 9 0.13147 0.107117 0.137329
+9 6 10 0.13623 0.110657 0.175171
+9 6 11 0.145386 0.117615 0.224243
+9 6 12 0.157959 0.127075 0.282959
+9 6 13 0.173828 0.139038 0.349121
+9 6 14 0.193481 0.153687 0.422363
+9 6 15 0.216309 0.171143 0.5
+9 6 16 0.241821 0.190552 0.581055
+9 6 17 0.267578 0.210205 0.658691
+9 6 18 0.291992 0.229004 0.730469
+9 6 19 0.313721 0.24585 0.792969
+9 6 20 0.325684 0.254883 0.829102
+9 6 21 0.326904 0.255615 0.835449
+9 6 22 0.328369 0.256836 0.842773
+9 6 23 0.330566 0.258301 0.850098
+9 6 24 0.332764 0.26001 0.856934
+9 6 25 0.335449 0.261963 0.865234
+9 6 26 0.338379 0.264404 0.874023
+9 6 27 0.341797 0.26709 0.884277
+9 6 28 0.345947 0.270264 0.895508
+9 6 29 0.350342 0.273438 0.907227
+9 6 30 0.354736 0.2771 0.919922
+9 6 31 0.359619 0.280762 0.932617
+9 7 0 0.14917 0.127197 0
+9 7 1 0.14917 0.127319 0
+9 7 2 0.14917 0.127319 0
+9 7 3 0.14917 0.127319 0
+9 7 4 0.149048 0.127319 0
+9 7 5 0.150024 0.128052 0.0344238
+9 7 6 0.151978 0.129272 0.0635986
+9 7 7 0.155273 0.131226 0.0933838
+9 7 8 0.150024 0.125854 0.12262
+9 7 9 0.131958 0.112427 0.137329
+9 7 10 0.136597 0.115784 0.175171
+9 7 11 0.145874 0.122498 0.224243
+9 7 12 0.158325 0.131592 0.282959
+9 7 13 0.174194 0.142944 0.349121
+9 7 14 0.193726 0.157104 0.422363
+9 7 15 0.216553 0.173828 0.5
+9 7 16 0.242065 0.192749 0.581055
+9 7 17 0.267822 0.212036 0.658691
+9 7 18 0.291992 0.230347 0.730469
+9 7 19 0.313965 0.246948 0.792969
+9 7 20 0.325928 0.255859 0.829102
+9 7 21 0.326904 0.256348 0.835449
+9 7 22 0.328613 0.257568 0.842773
+9 7 23 0.330566 0.258789 0.850098
+9 7 24 0.332764 0.260498 0.857422
+9 7 25 0.335449 0.262451 0.865234
+9 7 26 0.338379 0.264648 0.874023
+9 7 27 0.341797 0.267334 0.884277
+9 7 28 0.345947 0.270508 0.895508
+9 7 29 0.350342 0.273682 0.907227
+9 7 30 0.354736 0.277344 0.919922
+9 7 31 0.359619 0.281006 0.932617
+9 8 0 0.139404 0.129517 0.0426941
+9 8 1 0.139404 0.129517 0.0426941
+9 8 2 0.139404 0.129517 0.0427246
+9 8 3 0.139404 0.129639 0.0427856
+9 8 4 0.139404 0.129639 0.0428772
+9 8 5 0.139526 0.129761 0.0515747
+9 8 6 0.140137 0.130127 0.0673218
+9 8 7 0.14209 0.131592 0.0883789
+9 8 8 0.14917 0.136841 0.120361
+9 8 9 0.132935 0.121887 0.137451
+9 8 10 0.137573 0.124878 0.175293
+9 8 11 0.146606 0.131226 0.224121
+9 8 12 0.159058 0.139771 0.282959
+9 8 13 0.174927 0.150269 0.349365
+9 8 14 0.194336 0.163452 0.422363
+9 8 15 0.217041 0.179077 0.500488
+9 8 16 0.242432 0.197021 0.581055
+9 8 17 0.268066 0.215454 0.658691
+9 8 18 0.292236 0.233154 0.730469
+9 8 19 0.314209 0.249146 0.793457
+9 8 20 0.326172 0.257812 0.829102
+9 8 21 0.327148 0.257812 0.835938
+9 8 22 0.328613 0.258789 0.842773
+9 8 23 0.330811 0.26001 0.850098
+9 8 24 0.333008 0.261475 0.857422
+9 8 25 0.335449 0.263184 0.865234
+9 8 26 0.338623 0.265381 0.874512
+9 8 27 0.342041 0.267822 0.884277
+9 8 28 0.345947 0.270996 0.895508
+9 8 29 0.350342 0.27417 0.907227
+9 8 30 0.35498 0.277588 0.919922
+9 8 31 0.359619 0.28125 0.932617
+9 9 0 0.142212 0.147217 0.0591431
+9 9 1 0.142212 0.147217 0.0591431
+9 9 2 0.142212 0.147339 0.0591431
+9 9 3 0.142334 0.147339 0.0591431
+9 9 4 0.142334 0.147339 0.0591736
+9 9 5 0.142334 0.147339 0.0614319
+9 9 6 0.141846 0.146606 0.0741577
+9 9 7 0.140747 0.145264 0.0913086
+9 9 8 0.138794 0.142578 0.113098
+9 9 9 0.134766 0.137329 0.137695
+9 9 10 0.139282 0.140015 0.175537
+9 9 11 0.148193 0.145874 0.224243
+9 9 12 0.160522 0.153564 0.282715
+9 9 13 0.176147 0.162964 0.349365
+9 9 14 0.195435 0.174561 0.422607
+9 9 15 0.218018 0.188477 0.500488
+9 9 16 0.243164 0.204712 0.581055
+9 9 17 0.268555 0.22168 0.65918
+9 9 18 0.292725 0.238159 0.730469
+9 9 19 0.314453 0.253418 0.793457
+9 9 20 0.32666 0.26123 0.82959
+9 9 21 0.327393 0.260742 0.836426
+9 9 22 0.329102 0.260986 0.843262
+9 9 23 0.331055 0.261719 0.850586
+9 9 24 0.333252 0.262939 0.857422
+9 9 25 0.335693 0.264648 0.865723
+9 9 26 0.338623 0.266602 0.874512
+9 9 27 0.342041 0.269043 0.884277
+9 9 28 0.346191 0.271729 0.895508
+9 9 29 0.350342 0.274902 0.907715
+9 9 30 0.35498 0.27832 0.919922
+9 9 31 0.359619 0.281738 0.932617
+9 10 0 0.140137 0.165527 0.0643921
+9 10 1 0.140137 0.165527 0.0643921
+9 10 2 0.140137 0.165527 0.0643921
+9 10 3 0.140259 0.165527 0.0644531
+9 10 4 0.140259 0.165527 0.0644531
+9 10 5 0.140259 0.165649 0.0644531
+9 10 6 0.140015 0.165161 0.0725098
+9 10 7 0.139282 0.163818 0.0888672
+9 10 8 0.138062 0.161499 0.110352
+9 10 9 0.138306 0.160278 0.13855
+9 10 10 0.142822 0.16272 0.176392
+9 10 11 0.151245 0.167847 0.224609
+9 10 12 0.163086 0.174561 0.282959
+9 10 13 0.178467 0.182617 0.349365
+9 10 14 0.197388 0.192261 0.422607
+9 10 15 0.219604 0.203857 0.500488
+9 10 16 0.244507 0.217773 0.581543
+9 10 17 0.269775 0.232422 0.659668
+9 10 18 0.293701 0.24707 0.730957
+9 10 19 0.31543 0.260742 0.793945
+9 10 20 0.327393 0.267334 0.830566
+9 10 21 0.328125 0.265625 0.836914
+9 10 22 0.32959 0.265137 0.84375
+9 10 23 0.331543 0.265381 0.851074
+9 10 24 0.333496 0.266113 0.858398
+9 10 25 0.336182 0.26709 0.866211
+9 10 26 0.339111 0.268799 0.875
+9 10 27 0.342529 0.270752 0.884766
+9 10 28 0.346436 0.273438 0.895996
+9 10 29 0.350586 0.276367 0.907715
+9 10 30 0.355225 0.279541 0.92041
+9 10 31 0.359863 0.282959 0.933105
+9 11 0 0.143188 0.193726 0.0735474
+9 11 1 0.143188 0.193726 0.0736084
+9 11 2 0.143188 0.193726 0.0736084
+9 11 3 0.143188 0.193848 0.0736084
+9 11 4 0.143188 0.193848 0.0736084
+9 11 5 0.143311 0.193848 0.0736084
+9 11 6 0.143433 0.194092 0.0736694
+9 11 7 0.143433 0.193604 0.0893555
+9 11 8 0.143799 0.192871 0.11145
+9 11 9 0.145386 0.193115 0.140991
+9 11 10 0.149414 0.194946 0.178589
+9 11 11 0.156616 0.198608 0.22583
+9 11 12 0.167603 0.204102 0.283203
+9 11 13 0.182373 0.210571 0.349609
+9 11 14 0.200806 0.21814 0.422852
+9 11 15 0.222534 0.227173 0.500977
+9 11 16 0.246948 0.237915 0.582031
+9 11 17 0.271729 0.249634 0.660156
+9 11 18 0.29541 0.261475 0.731445
+9 11 19 0.31665 0.272705 0.794434
+9 11 20 0.328857 0.277832 0.832031
+9 11 21 0.329346 0.27417 0.838379
+9 11 22 0.330566 0.271973 0.845215
+9 11 23 0.332275 0.27124 0.852051
+9 11 24 0.334229 0.27124 0.858887
+9 11 25 0.33667 0.271729 0.866699
+9 11 26 0.3396 0.272705 0.875488
+9 11 27 0.343018 0.27417 0.885254
+9 11 28 0.346924 0.276367 0.896484
+9 11 29 0.351074 0.278809 0.908203
+9 11 30 0.355469 0.281738 0.92041
+9 11 31 0.360107 0.284668 0.933594
+9 12 0 0.153442 0.23584 0.0880127
+9 12 1 0.153442 0.23584 0.0880127
+9 12 2 0.153442 0.23584 0.0880127
+9 12 3 0.153442 0.23584 0.0880127
+9 12 4 0.153442 0.23584 0.0880737
+9 12 5 0.153564 0.235962 0.0880737
+9 12 6 0.153687 0.236084 0.0881348
+9 12 7 0.153931 0.236084 0.0924683
+9 12 8 0.154663 0.236084 0.114685
+9 12 9 0.156372 0.236328 0.144287
+9 12 10 0.159668 0.237183 0.181763
+9 12 11 0.165527 0.239258 0.227905
+9 12 12 0.175049 0.243042 0.28418
+9 12 13 0.188721 0.247925 0.349854
+9 12 14 0.206177 0.253662 0.42334
+9 12 15 0.227173 0.259766 0.501465
+9 12 16 0.250732 0.267334 0.583008
+9 12 17 0.274902 0.275391 0.661133
+9 12 18 0.298096 0.283691 0.732422
+9 12 19 0.318848 0.291748 0.79541
+9 12 20 0.331543 0.294189 0.834961
+9 12 21 0.331543 0.287598 0.840332
+9 12 22 0.332275 0.283447 0.847168
+9 12 23 0.33374 0.281006 0.853516
+9 12 24 0.335693 0.279541 0.860352
+9 12 25 0.337891 0.279053 0.868164
+9 12 26 0.340576 0.279053 0.876953
+9 12 27 0.34375 0.279785 0.886719
+9 12 28 0.347656 0.281006 0.897461
+9 12 29 0.351562 0.282959 0.90918
+9 12 30 0.355957 0.285156 0.921387
+9 12 31 0.360596 0.287842 0.934082
+9 13 0 0.167725 0.286621 0.105835
+9 13 1 0.167725 0.286621 0.105835
+9 13 2 0.167725 0.286621 0.105835
+9 13 3 0.167725 0.286621 0.105835
+9 13 4 0.167725 0.286621 0.105835
+9 13 5 0.167847 0.286621 0.105896
+9 13 6 0.167969 0.286865 0.105896
+9 13 7 0.168091 0.286865 0.105957
+9 13 8 0.168701 0.287109 0.117981
+9 13 9 0.170288 0.287354 0.147217
+9 13 10 0.173218 0.288086 0.184448
+9 13 11 0.178223 0.289307 0.230103
+9 13 12 0.186279 0.291504 0.2854
+9 13 13 0.198364 0.294678 0.350098
+9 13 14 0.2146 0.298584 0.42334
+9 13 15 0.234253 0.30249 0.501953
+9 13 16 0.256836 0.306641 0.583496
+9 13 17 0.280029 0.310791 0.662109
+9 13 18 0.302246 0.314941 0.733887
+9 13 19 0.32251 0.319336 0.796875
+9 13 20 0.335449 0.318848 0.838867
+9 13 21 0.334717 0.30835 0.844238
+9 13 22 0.335205 0.301025 0.850098
+9 13 23 0.336182 0.296143 0.856445
+9 13 24 0.337891 0.292725 0.863281
+9 13 25 0.339844 0.290527 0.870605
+9 13 26 0.342285 0.289062 0.878906
+9 13 27 0.345215 0.28833 0.888184
+9 13 28 0.348877 0.288818 0.898926
+9 13 29 0.352783 0.289551 0.910645
+9 13 30 0.356934 0.291016 0.922363
+9 13 31 0.361328 0.292725 0.935059
+9 14 0 0.185791 0.344482 0.126343
+9 14 1 0.185791 0.344482 0.126343
+9 14 2 0.185791 0.344482 0.126343
+9 14 3 0.185791 0.344482 0.126343
+9 14 4 0.185913 0.344727 0.126343
+9 14 5 0.185913 0.344727 0.126343
+9 14 6 0.186035 0.344727 0.126465
+9 14 7 0.186157 0.344727 0.126465
+9 14 8 0.186401 0.344971 0.126587
+9 14 9 0.187744 0.345215 0.14978
+9 14 10 0.190308 0.345947 0.186279
+9 14 11 0.194702 0.346924 0.231445
+9 14 12 0.20166 0.348389 0.286133
+9 14 13 0.212036 0.350342 0.350098
+9 14 14 0.226562 0.352783 0.422852
+9 14 15 0.244629 0.354736 0.501953
+9 14 16 0.265625 0.356201 0.583984
+9 14 17 0.287598 0.356689 0.663574
+9 14 18 0.308594 0.356689 0.735352
+9 14 19 0.327881 0.356689 0.798828
+9 14 20 0.341553 0.353516 0.844238
+9 14 21 0.340088 0.337891 0.849609
+9 14 22 0.339844 0.326416 0.855469
+9 14 23 0.340332 0.318359 0.861328
+9 14 24 0.341309 0.3125 0.867188
+9 14 25 0.342773 0.307861 0.874512
+9 14 26 0.344971 0.304199 0.882324
+9 14 27 0.347412 0.301758 0.891113
+9 14 28 0.35083 0.300293 0.901367
+9 14 29 0.354492 0.299805 0.912598
+9 14 30 0.358398 0.299805 0.924316
+9 14 31 0.362793 0.300537 0.936523
+9 15 0 0.207275 0.407471 0.148804
+9 15 1 0.207275 0.407471 0.148804
+9 15 2 0.207275 0.407471 0.148804
+9 15 3 0.207275 0.407471 0.148804
+9 15 4 0.207275 0.407471 0.148804
+9 15 5 0.207397 0.407471 0.148804
+9 15 6 0.207397 0.407471 0.148926
+9 15 7 0.20752 0.407715 0.148926
+9 15 8 0.207764 0.407715 0.148926
+9 15 9 0.208374 0.408203 0.152344
+9 15 10 0.210571 0.408691 0.187378
+9 15 11 0.214355 0.409668 0.231567
+9 15 12 0.220459 0.411133 0.2854
+9 15 13 0.229492 0.412598 0.348877
+9 15 14 0.242188 0.414307 0.421387
+9 15 15 0.258545 0.415039 0.500488
+9 15 16 0.277832 0.414795 0.583496
+9 15 17 0.298096 0.412354 0.664062
+9 15 18 0.317871 0.408447 0.737305
+9 15 19 0.335938 0.404297 0.80127
+9 15 20 0.350098 0.398682 0.851562
+9 15 21 0.3479 0.377441 0.857422
+9 15 22 0.34668 0.361084 0.862793
+9 15 23 0.346191 0.349121 0.868652
+9 15 24 0.34668 0.339844 0.874023
+9 15 25 0.347656 0.332275 0.880371
+9 15 26 0.349121 0.325928 0.887695
+9 15 27 0.351074 0.321045 0.895996
+9 15 28 0.354004 0.317383 0.905762
+9 15 29 0.357178 0.314697 0.916504
+9 15 30 0.36084 0.312744 0.927734
+9 15 31 0.364746 0.311768 0.939453
+9 16 0 0.231689 0.474121 0.172729
+9 16 1 0.231689 0.474121 0.172729
+9 16 2 0.231689 0.474121 0.172729
+9 16 3 0.231689 0.474121 0.172729
+9 16 4 0.231689 0.474121 0.172729
+9 16 5 0.231689 0.474121 0.172729
+9 16 6 0.231812 0.474121 0.172729
+9 16 7 0.231934 0.474121 0.172729
+9 16 8 0.232056 0.474365 0.172852
+9 16 9 0.232422 0.474365 0.172852
+9 16 10 0.233765 0.474854 0.188232
+9 16 11 0.236938 0.476074 0.230713
+9 16 12 0.242065 0.477539 0.283203
+9 16 13 0.25 0.479248 0.345459
+9 16 14 0.260986 0.480957 0.41748
+9 16 15 0.275635 0.481689 0.49707
+9 16 16 0.292969 0.480225 0.581055
+9 16 17 0.311523 0.47583 0.662598
+9 16 18 0.329834 0.469238 0.737305
+9 16 19 0.346436 0.461426 0.802734
+9 16 20 0.360596 0.452881 0.856445
+9 16 21 0.358887 0.427734 0.867676
+9 16 22 0.356689 0.40625 0.874023
+9 16 23 0.355469 0.389648 0.879395
+9 16 24 0.354736 0.376709 0.884277
+9 16 25 0.354736 0.365234 0.889648
+9 16 26 0.355469 0.355469 0.895996
+9 16 27 0.356689 0.347168 0.90332
+9 16 28 0.358643 0.340576 0.912109
+9 16 29 0.361328 0.335205 0.921875
+9 16 30 0.364258 0.331055 0.932617
+9 16 31 0.367676 0.327881 0.943359
+9 17 0 0.25708 0.540039 0.196411
+9 17 1 0.25708 0.540039 0.196411
+9 17 2 0.25708 0.540039 0.196411
+9 17 3 0.25708 0.540039 0.196411
+9 17 4 0.25708 0.540039 0.196411
+9 17 5 0.25708 0.540039 0.196411
+9 17 6 0.25708 0.540039 0.196411
+9 17 7 0.25708 0.540039 0.196411
+9 17 8 0.257324 0.540039 0.196533
+9 17 9 0.257568 0.540039 0.196533
+9 17 10 0.258301 0.540527 0.196655
+9 17 11 0.260498 0.541504 0.229126
+9 17 12 0.265137 0.542969 0.279541
+9 17 13 0.271729 0.54541 0.340088
+9 17 14 0.281738 0.547363 0.410889
+9 17 15 0.294678 0.548828 0.48999
+9 17 16 0.310303 0.547363 0.574219
+9 17 17 0.327148 0.542969 0.658203
+9 17 18 0.343994 0.535156 0.735352
+9 17 19 0.359375 0.524414 0.802734
+9 17 20 0.37207 0.512695 0.85791
+9 17 21 0.372559 0.486816 0.878906
+9 17 22 0.370117 0.460938 0.888184
+9 17 23 0.36792 0.439697 0.894043
+9 17 24 0.366211 0.422363 0.898926
+9 17 25 0.36499 0.406738 0.90332
+9 17 26 0.364502 0.393066 0.908691
+9 17 27 0.364502 0.380859 0.914551
+9 17 28 0.365479 0.370605 0.921875
+9 17 29 0.367188 0.362061 0.930664
+9 17 30 0.369385 0.354736 0.939453
+9 17 31 0.37207 0.348633 0.949707
+9 18 0 0.281494 0.601562 0.218628
+9 18 1 0.281494 0.601562 0.218628
+9 18 2 0.281494 0.601562 0.218628
+9 18 3 0.281494 0.601562 0.218628
+9 18 4 0.281494 0.601562 0.218628
+9 18 5 0.281494 0.601562 0.218628
+9 18 6 0.281494 0.601562 0.218628
+9 18 7 0.281494 0.601562 0.218628
+9 18 8 0.281738 0.601562 0.218628
+9 18 9 0.281982 0.601562 0.21875
+9 18 10 0.282471 0.602051 0.21875
+9 18 11 0.283447 0.602539 0.226807
+9 18 12 0.287354 0.604004 0.274658
+9 18 13 0.293213 0.606445 0.332764
+9 18 14 0.301758 0.609375 0.401611
+9 18 15 0.313477 0.611816 0.479248
+9 18 16 0.327637 0.611816 0.563965
+9 18 17 0.343506 0.608398 0.648926
+9 18 18 0.359131 0.600586 0.729004
+9 18 19 0.373535 0.589355 0.798828
+9 18 20 0.385254 0.575684 0.856445
+9 18 21 0.388184 0.550293 0.888184
+9 18 22 0.38623 0.522461 0.903809
+9 18 23 0.383545 0.497314 0.912109
+9 18 24 0.380859 0.47583 0.916992
+9 18 25 0.378418 0.456055 0.921387
+9 18 26 0.376465 0.437744 0.925293
+9 18 27 0.375244 0.421143 0.929688
+9 18 28 0.375 0.406982 0.935547
+9 18 29 0.375244 0.394287 0.941895
+9 18 30 0.376221 0.383545 0.949707
+9 18 31 0.37793 0.374268 0.958008
+9 19 0 0.303955 0.656738 0.238525
+9 19 1 0.303955 0.656738 0.238525
+9 19 2 0.303955 0.656738 0.238525
+9 19 3 0.303955 0.656738 0.238525
+9 19 4 0.303955 0.656738 0.238525
+9 19 5 0.303955 0.656738 0.238525
+9 19 6 0.303955 0.656738 0.238525
+9 19 7 0.303955 0.656738 0.238647
+9 19 8 0.304199 0.656738 0.238647
+9 19 9 0.304199 0.657227 0.238647
+9 19 10 0.304688 0.657227 0.23877
+9 19 11 0.305176 0.657227 0.238892
+9 19 12 0.307861 0.658691 0.269531
+9 19 13 0.312988 0.661133 0.324707
+9 19 14 0.320557 0.664551 0.390869
+9 19 15 0.331055 0.66748 0.466553
+9 19 16 0.344238 0.669434 0.550293
+9 19 17 0.358887 0.667969 0.63623
+9 19 18 0.374023 0.662109 0.718262
+9 19 19 0.387451 0.651367 0.791016
+9 19 20 0.398438 0.636719 0.851562
+9 19 21 0.403809 0.614258 0.893555
+9 19 22 0.403809 0.586914 0.91748
+9 19 23 0.401123 0.55957 0.930176
+9 19 24 0.397949 0.534668 0.937012
+9 19 25 0.394531 0.510742 0.941895
+9 19 26 0.391357 0.488037 0.945312
+9 19 27 0.388428 0.467041 0.948242
+9 19 28 0.386475 0.448242 0.952148
+9 19 29 0.385254 0.431396 0.957031
+9 19 30 0.38501 0.416748 0.962402
+9 19 31 0.385254 0.403809 0.96875
+9 20 0 0.32373 0.70459 0.255859
+9 20 1 0.32373 0.70459 0.255859
+9 20 2 0.32373 0.70459 0.255859
+9 20 3 0.32373 0.70459 0.255859
+9 20 4 0.32373 0.70459 0.255859
+9 20 5 0.32373 0.70459 0.255859
+9 20 6 0.32373 0.70459 0.255859
+9 20 7 0.32373 0.70459 0.255859
+9 20 8 0.32373 0.70459 0.255859
+9 20 9 0.323975 0.70459 0.255859
+9 20 10 0.324219 0.705078 0.255859
+9 20 11 0.324707 0.705078 0.256104
+9 20 12 0.325928 0.705566 0.26416
+9 20 13 0.330566 0.708496 0.31665
+9 20 14 0.337158 0.711914 0.379639
+9 20 15 0.34668 0.71582 0.452881
+9 20 16 0.358887 0.71875 0.534668
+9 20 17 0.372803 0.719238 0.620117
+9 20 18 0.386963 0.715332 0.703125
+9 20 19 0.400146 0.706543 0.77832
+9 20 20 0.410889 0.692871 0.841797
+9 20 21 0.418213 0.673828 0.89209
+9 20 22 0.42041 0.648438 0.925293
+9 20 23 0.418945 0.621094 0.944824
+9 20 24 0.415771 0.594727 0.955566
+9 20 25 0.411865 0.567383 0.961914
+9 20 26 0.407471 0.541016 0.96582
+9 20 27 0.40332 0.516113 0.96875
+9 20 28 0.399902 0.492676 0.970703
+9 20 29 0.396973 0.47168 0.973633
+9 20 30 0.39502 0.452881 0.977051
+9 20 31 0.394043 0.436035 0.981445
+9 21 0 0.340576 0.745605 0.270508
+9 21 1 0.340576 0.745605 0.270508
+9 21 2 0.340576 0.745605 0.270508
+9 21 3 0.340576 0.745605 0.270508
+9 21 4 0.340576 0.745605 0.270508
+9 21 5 0.340576 0.745605 0.270508
+9 21 6 0.340576 0.745605 0.270508
+9 21 7 0.340576 0.745605 0.270508
+9 21 8 0.34082 0.745605 0.270508
+9 21 9 0.34082 0.745605 0.270508
+9 21 10 0.341064 0.745605 0.270752
+9 21 11 0.341553 0.745605 0.270752
+9 21 12 0.342285 0.746094 0.270752
+9 21 13 0.345459 0.748047 0.308105
+9 21 14 0.351562 0.751953 0.36792
+9 21 15 0.360107 0.756348 0.438232
+9 21 16 0.371338 0.760254 0.517578
+9 21 17 0.384521 0.762695 0.601562
+9 21 18 0.398193 0.76123 0.68457
+9 21 19 0.410889 0.754395 0.76123
+9 21 20 0.421631 0.742676 0.827637
+9 21 21 0.429932 0.726562 0.883301
+9 21 22 0.43457 0.705566 0.925293
+9 21 23 0.435059 0.680176 0.952637
+9 21 24 0.432861 0.653809 0.96875
+9 21 25 0.428955 0.625 0.979004
+9 21 26 0.424316 0.595703 0.984863
+9 21 27 0.419189 0.566895 0.988281
+9 21 28 0.414307 0.540039 0.990234
+9 21 29 0.410156 0.514648 0.991699
+9 21 30 0.406738 0.491699 0.993652
+9 21 31 0.404053 0.471191 0.996094
+9 22 0 0.354736 0.779297 0.282715
+9 22 1 0.354736 0.779297 0.282715
+9 22 2 0.354736 0.779297 0.282715
+9 22 3 0.354736 0.779297 0.282715
+9 22 4 0.354736 0.779297 0.282715
+9 22 5 0.354736 0.779297 0.282715
+9 22 6 0.354736 0.779297 0.282715
+9 22 7 0.354736 0.779297 0.282715
+9 22 8 0.354736 0.779297 0.282715
+9 22 9 0.35498 0.779297 0.282715
+9 22 10 0.355225 0.779297 0.282959
+9 22 11 0.355469 0.779297 0.282959
+9 22 12 0.355957 0.779785 0.282959
+9 22 13 0.35791 0.780762 0.299561
+9 22 14 0.363525 0.784668 0.356445
+9 22 15 0.371094 0.789551 0.42334
+9 22 16 0.381348 0.794434 0.499512
+9 22 17 0.393799 0.79834 0.581543
+9 22 18 0.406982 0.798828 0.663574
+9 22 19 0.419678 0.794922 0.741211
+9 22 20 0.43042 0.785645 0.80957
+9 22 21 0.439209 0.771973 0.868652
+9 22 22 0.445312 0.753906 0.916504
+9 22 23 0.447998 0.731934 0.951172
+9 22 24 0.44751 0.70752 0.974121
+9 22 25 0.44458 0.679199 0.990234
+9 22 26 0.440186 0.648926 1
+9 22 27 0.434814 0.618164 1
+9 22 28 0.429199 0.587891 1
+9 22 29 0.423828 0.559082 1
+9 22 30 0.418945 0.532227 1
+9 22 31 0.415039 0.507812 1
+9 23 0 0.365967 0.806152 0.29248
+9 23 1 0.365967 0.806152 0.29248
+9 23 2 0.365967 0.806152 0.29248
+9 23 3 0.365967 0.806152 0.29248
+9 23 4 0.365967 0.806152 0.29248
+9 23 5 0.365967 0.806152 0.29248
+9 23 6 0.365967 0.806152 0.29248
+9 23 7 0.365967 0.806152 0.29248
+9 23 8 0.365967 0.806152 0.29248
+9 23 9 0.366211 0.806152 0.29248
+9 23 10 0.366455 0.806152 0.29248
+9 23 11 0.366699 0.806152 0.292725
+9 23 12 0.367188 0.806641 0.292725
+9 23 13 0.36792 0.806641 0.292969
+9 23 14 0.372803 0.810547 0.345459
+9 23 15 0.379883 0.81543 0.408936
+9 23 16 0.389404 0.820801 0.482178
+9 23 17 0.401123 0.825684 0.561523
+9 23 18 0.413818 0.828125 0.642578
+9 23 19 0.42627 0.82666 0.719727
+9 23 20 0.437256 0.820312 0.789551
+9 23 21 0.446045 0.808594 0.850586
+9 23 22 0.452881 0.792969 0.901367
+9 23 23 0.457031 0.774414 0.941895
+9 23 24 0.458496 0.75293 0.97168
+9 23 25 0.457275 0.727051 0.993652
+9 23 26 0.453857 0.697266 1
+9 23 27 0.44873 0.665527 1
+9 23 28 0.442871 0.633301 1
+9 23 29 0.436768 0.601562 1
+9 23 30 0.430908 0.571777 1
+9 23 31 0.425781 0.543945 1
+9 24 0 0.375 0.827637 0.300293
+9 24 1 0.375 0.827637 0.300293
+9 24 2 0.375 0.827637 0.300293
+9 24 3 0.375 0.827637 0.300293
+9 24 4 0.375 0.827637 0.300293
+9 24 5 0.375 0.827637 0.300293
+9 24 6 0.375 0.827637 0.300293
+9 24 7 0.375 0.827637 0.300293
+9 24 8 0.375244 0.827637 0.300293
+9 24 9 0.375244 0.827637 0.300293
+9 24 10 0.375244 0.827637 0.300293
+9 24 11 0.375732 0.828125 0.300537
+9 24 12 0.375977 0.828125 0.300537
+9 24 13 0.376709 0.828125 0.300537
+9 24 14 0.380127 0.831055 0.334961
+9 24 15 0.386719 0.835938 0.395508
+9 24 16 0.395508 0.841797 0.465576
+9 24 17 0.406494 0.847656 0.541992
+9 24 18 0.418701 0.851562 0.621094
+9 24 19 0.430908 0.852051 0.697754
+9 24 20 0.441895 0.848145 0.767578
+9 24 21 0.451172 0.838867 0.830566
+9 24 22 0.458496 0.825684 0.883789
+9 24 23 0.463379 0.809082 0.927246
+9 24 24 0.466309 0.791016 0.961914
+9 24 25 0.466797 0.768066 0.990234
+9 24 26 0.464844 0.740234 1
+9 24 27 0.460693 0.708496 1
+9 24 28 0.455078 0.675293 1
+9 24 29 0.44873 0.64209 1
+9 24 30 0.442383 0.609863 1
+9 24 31 0.436279 0.579102 1
+9 25 0 0.383057 0.84668 0.307129
+9 25 1 0.383057 0.84668 0.307129
+9 25 2 0.383057 0.84668 0.307129
+9 25 3 0.383057 0.84668 0.307129
+9 25 4 0.383057 0.84668 0.307129
+9 25 5 0.383057 0.84668 0.307129
+9 25 6 0.383057 0.84668 0.307129
+9 25 7 0.383057 0.84668 0.307129
+9 25 8 0.383057 0.84668 0.307373
+9 25 9 0.383301 0.84668 0.307373
+9 25 10 0.383301 0.847168 0.307373
+9 25 11 0.383545 0.847168 0.307373
+9 25 12 0.384033 0.847168 0.307373
+9 25 13 0.384521 0.847168 0.307373
+9 25 14 0.386719 0.848633 0.324219
+9 25 15 0.392578 0.853516 0.381592
+9 25 16 0.400635 0.859375 0.448242
+9 25 17 0.410889 0.865723 0.521484
+9 25 18 0.422363 0.871094 0.598145
+9 25 19 0.434326 0.873535 0.672852
+9 25 20 0.445312 0.871582 0.742676
+9 25 21 0.455078 0.865723 0.806641
+9 25 22 0.462891 0.85498 0.862305
+9 25 23 0.468506 0.841309 0.908203
+9 25 24 0.472168 0.825195 0.946289
+9 25 25 0.474365 0.805176 0.979492
+9 25 26 0.474121 0.780273 1
+9 25 27 0.471436 0.750488 1
+9 25 28 0.466553 0.717773 1
+9 25 29 0.460449 0.683594 1
+9 25 30 0.453613 0.649414 1
+9 25 31 0.447021 0.616211 1
+9 26 0 0.390381 0.864258 0.313477
+9 26 1 0.390381 0.864258 0.313477
+9 26 2 0.390381 0.864258 0.313477
+9 26 3 0.390381 0.864258 0.313477
+9 26 4 0.390381 0.864258 0.313477
+9 26 5 0.390381 0.864258 0.313477
+9 26 6 0.390381 0.864258 0.313477
+9 26 7 0.390381 0.864258 0.313477
+9 26 8 0.390381 0.864258 0.313477
+9 26 9 0.390381 0.864258 0.313477
+9 26 10 0.390625 0.864258 0.313477
+9 26 11 0.390625 0.864258 0.313477
+9 26 12 0.391113 0.864258 0.313477
+9 26 13 0.391602 0.864258 0.313721
+9 26 14 0.392578 0.864746 0.313721
+9 26 15 0.397705 0.869141 0.367432
+9 26 16 0.405029 0.875 0.430664
+9 26 17 0.414551 0.881836 0.500488
+9 26 18 0.425293 0.887695 0.57373
+9 26 19 0.436768 0.891602 0.646484
+9 26 20 0.447754 0.89209 0.715332
+9 26 21 0.457764 0.88916 0.779785
+9 26 22 0.466064 0.881348 0.836914
+9 26 23 0.472412 0.870605 0.885254
+9 26 24 0.476807 0.856934 0.925781
+9 26 25 0.479736 0.839355 0.962402
+9 26 26 0.481201 0.817383 0.994141
+9 26 27 0.47998 0.790527 1
+9 26 28 0.476562 0.759277 1
+9 26 29 0.470947 0.725098 1
+9 26 30 0.464355 0.689941 1
+9 26 31 0.45752 0.654785 1
+9 27 0 0.396729 0.878906 0.318848
+9 27 1 0.396729 0.878906 0.318848
+9 27 2 0.396729 0.878906 0.318848
+9 27 3 0.396729 0.878906 0.318848
+9 27 4 0.396729 0.878906 0.318848
+9 27 5 0.396729 0.878906 0.318848
+9 27 6 0.396729 0.878906 0.318848
+9 27 7 0.396729 0.878906 0.318848
+9 27 8 0.396729 0.878906 0.318848
+9 27 9 0.396729 0.879395 0.318848
+9 27 10 0.396729 0.879395 0.318848
+9 27 11 0.396973 0.879395 0.318848
+9 27 12 0.397217 0.879395 0.319092
+9 27 13 0.397705 0.879395 0.319092
+9 27 14 0.398438 0.879883 0.319092
+9 27 15 0.4021 0.882812 0.353271
+9 27 16 0.408691 0.888184 0.412598
+9 27 17 0.417236 0.89502 0.47876
+9 27 18 0.42749 0.901367 0.548828
+9 27 19 0.438232 0.906738 0.618652
+9 27 20 0.448975 0.90918 0.686035
+9 27 21 0.458984 0.908691 0.75
+9 27 22 0.467773 0.904297 0.807617
+9 27 23 0.474854 0.895996 0.85791
+9 27 24 0.47998 0.885254 0.900391
+9 27 25 0.483887 0.870117 0.939941
+9 27 26 0.486084 0.850586 0.975586
+9 27 27 0.486572 0.82666 1
+9 27 28 0.484375 0.797852 1
+9 27 29 0.47998 0.765137 1
+9 27 30 0.473877 0.72998 1
+9 27 31 0.467041 0.693848 1
+9 28 0 0.401855 0.891602 0.323486
+9 28 1 0.401855 0.891602 0.323486
+9 28 2 0.401855 0.891602 0.323486
+9 28 3 0.401855 0.891602 0.323486
+9 28 4 0.401855 0.891602 0.323486
+9 28 5 0.401855 0.891602 0.323486
+9 28 6 0.401855 0.891602 0.323486
+9 28 7 0.401855 0.891602 0.323486
+9 28 8 0.401855 0.891602 0.323486
+9 28 9 0.401855 0.891602 0.323486
+9 28 10 0.4021 0.891602 0.323486
+9 28 11 0.4021 0.891602 0.323486
+9 28 12 0.402344 0.891602 0.323486
+9 28 13 0.402832 0.89209 0.323486
+9 28 14 0.40332 0.89209 0.32373
+9 28 15 0.405518 0.893555 0.338867
+9 28 16 0.411377 0.898926 0.394531
+9 28 17 0.419189 0.905762 0.456787
+9 28 18 0.428711 0.912598 0.522949
+9 28 19 0.438721 0.918457 0.590332
+9 28 20 0.449219 0.922363 0.655273
+9 28 21 0.459229 0.923828 0.717773
+9 28 22 0.468018 0.922363 0.775391
+9 28 23 0.475586 0.916992 0.826172
+9 28 24 0.481445 0.90918 0.870605
+9 28 25 0.486084 0.896973 0.912598
+9 28 26 0.489502 0.880371 0.95166
+9 28 27 0.490967 0.859375 0.98584
+9 28 28 0.490234 0.833496 1
+9 28 29 0.487061 0.802734 1
+9 28 30 0.482422 0.769043 1
+9 28 31 0.476074 0.733398 1
+9 29 0 0.405762 0.901367 0.326904
+9 29 1 0.405762 0.901367 0.326904
+9 29 2 0.405762 0.901367 0.326904
+9 29 3 0.405762 0.901367 0.326904
+9 29 4 0.405762 0.901367 0.326904
+9 29 5 0.405762 0.901367 0.326904
+9 29 6 0.405762 0.901367 0.326904
+9 29 7 0.405762 0.901367 0.326904
+9 29 8 0.405762 0.901367 0.326904
+9 29 9 0.406006 0.901367 0.326904
+9 29 10 0.406006 0.901367 0.326904
+9 29 11 0.406006 0.901367 0.326904
+9 29 12 0.40625 0.901367 0.326904
+9 29 13 0.406738 0.901367 0.326904
+9 29 14 0.407227 0.901855 0.327148
+9 29 15 0.407959 0.901855 0.327148
+9 29 16 0.413086 0.906738 0.376465
+9 29 17 0.420166 0.913086 0.434814
+9 29 18 0.428711 0.919922 0.49707
+9 29 19 0.438232 0.926758 0.560547
+9 29 20 0.447998 0.931641 0.623047
+9 29 21 0.457764 0.935059 0.683594
+9 29 22 0.466797 0.935547 0.740234
+9 29 23 0.474609 0.933105 0.791504
+9 29 24 0.480957 0.927734 0.836426
+9 29 25 0.486572 0.918945 0.880371
+9 29 26 0.490723 0.905762 0.921875
+9 29 27 0.493164 0.887695 0.959473
+9 29 28 0.493896 0.865234 0.992188
+9 29 29 0.492676 0.837891 1
+9 29 30 0.489258 0.806641 1
+9 29 31 0.484375 0.772461 1
+9 30 0 0.408447 0.907715 0.329102
+9 30 1 0.408447 0.907715 0.329102
+9 30 2 0.408447 0.907715 0.329102
+9 30 3 0.408447 0.907715 0.329102
+9 30 4 0.408447 0.907715 0.329102
+9 30 5 0.408447 0.907715 0.329102
+9 30 6 0.408447 0.907715 0.329102
+9 30 7 0.408447 0.907715 0.329102
+9 30 8 0.408447 0.907715 0.329102
+9 30 9 0.408447 0.907715 0.329102
+9 30 10 0.408447 0.907715 0.329102
+9 30 11 0.408447 0.907715 0.329102
+9 30 12 0.408691 0.907715 0.329102
+9 30 13 0.408936 0.907715 0.329346
+9 30 14 0.409424 0.907715 0.329346
+9 30 15 0.410156 0.908203 0.329346
+9 30 16 0.413574 0.911133 0.358154
+9 30 17 0.419922 0.916992 0.412354
+9 30 18 0.42749 0.923828 0.470703
+9 30 19 0.436279 0.930664 0.530762
+9 30 20 0.445557 0.937012 0.589844
+9 30 21 0.454834 0.941406 0.647461
+9 30 22 0.463623 0.943848 0.703125
+9 30 23 0.47168 0.943848 0.753418
+9 30 24 0.478516 0.941406 0.798828
+9 30 25 0.484619 0.935547 0.843262
+9 30 26 0.489746 0.925781 0.886719
+9 30 27 0.493652 0.911621 0.927734
+9 30 28 0.49585 0.892578 0.964844
+9 30 29 0.496094 0.869141 0.99707
+9 30 30 0.494629 0.841797 1
+9 30 31 0.491211 0.810059 1
+9 31 0 0.410156 0.912109 0.330811
+9 31 1 0.410156 0.912109 0.330811
+9 31 2 0.410156 0.912109 0.330811
+9 31 3 0.410156 0.912109 0.330811
+9 31 4 0.410156 0.912109 0.330811
+9 31 5 0.410156 0.912109 0.330811
+9 31 6 0.410156 0.912109 0.330811
+9 31 7 0.410156 0.912109 0.330811
+9 31 8 0.410156 0.912109 0.330811
+9 31 9 0.410156 0.912109 0.330811
+9 31 10 0.4104 0.912109 0.330811
+9 31 11 0.4104 0.912109 0.330811
+9 31 12 0.410645 0.912109 0.330811
+9 31 13 0.410889 0.912598 0.331055
+9 31 14 0.411133 0.912598 0.331055
+9 31 15 0.411865 0.912598 0.331055
+9 31 16 0.41333 0.913574 0.340576
+9 31 17 0.418945 0.918945 0.390869
+9 31 18 0.425781 0.925293 0.444824
+9 31 19 0.433594 0.932129 0.500977
+9 31 20 0.441895 0.938477 0.556152
+9 31 21 0.450684 0.943848 0.611328
+9 31 22 0.459229 0.947754 0.664062
+9 31 23 0.467041 0.949707 0.712891
+9 31 24 0.474121 0.949219 0.757812
+9 31 25 0.480957 0.946289 0.803223
+9 31 26 0.487061 0.94043 0.848145
+9 31 27 0.492188 0.930664 0.891602
+9 31 28 0.49585 0.916016 0.932129
+9 31 29 0.498047 0.896973 0.969238
+9 31 30 0.498047 0.873047 1
+9 31 31 0.496094 0.844727 1
+10 0 0 0.210571 0.155396 0
+10 0 1 0.210571 0.155396 0
+10 0 2 0.210571 0.155396 0
+10 0 3 0.210571 0.155396 0
+10 0 4 0.210571 0.155518 0
+10 0 5 0.210571 0.15564 0
+10 0 6 0.210938 0.156006 0.0271454
+10 0 7 0.209595 0.154419 0.0878296
+10 0 8 0.205078 0.150513 0.128296
+10 0 9 0.179565 0.134521 0.151001
+10 0 10 0.168335 0.129639 0.176392
+10 0 11 0.175781 0.135498 0.224731
+10 0 12 0.186035 0.143555 0.282959
+10 0 13 0.198853 0.153809 0.349365
+10 0 14 0.214844 0.166504 0.422607
+10 0 15 0.234131 0.181641 0.500488
+10 0 16 0.256104 0.199097 0.581543
+10 0 17 0.279053 0.217163 0.65918
+10 0 18 0.30127 0.234497 0.730469
+10 0 19 0.321289 0.250488 0.793457
+10 0 20 0.332031 0.258789 0.830078
+10 0 21 0.332031 0.258789 0.836426
+10 0 22 0.332764 0.259521 0.84375
+10 0 23 0.333984 0.260498 0.850586
+10 0 24 0.335693 0.261963 0.85791
+10 0 25 0.338135 0.263672 0.865723
+10 0 26 0.340576 0.265869 0.875
+10 0 27 0.34375 0.268311 0.884766
+10 0 28 0.347656 0.27124 0.895996
+10 0 29 0.351807 0.274414 0.907715
+10 0 30 0.356201 0.277832 0.92041
+10 0 31 0.360596 0.281494 0.933105
+10 1 0 0.210449 0.155518 0
+10 1 1 0.210449 0.155518 0
+10 1 2 0.210449 0.155518 0
+10 1 3 0.210449 0.155518 0
+10 1 4 0.210449 0.15564 0
+10 1 5 0.210571 0.155762 0
+10 1 6 0.210815 0.156128 0.0270386
+10 1 7 0.209595 0.154663 0.0878296
+10 1 8 0.205078 0.150635 0.128296
+10 1 9 0.179565 0.134766 0.151001
+10 1 10 0.168335 0.129761 0.176392
+10 1 11 0.175781 0.13562 0.224731
+10 1 12 0.186035 0.143677 0.282959
+10 1 13 0.198853 0.153931 0.349365
+10 1 14 0.214844 0.166504 0.422607
+10 1 15 0.234131 0.181763 0.500488
+10 1 16 0.256104 0.199219 0.581543
+10 1 17 0.279053 0.217163 0.65918
+10 1 18 0.30127 0.234619 0.730469
+10 1 19 0.321289 0.250488 0.793457
+10 1 20 0.332031 0.258789 0.830078
+10 1 21 0.332031 0.258789 0.836426
+10 1 22 0.332764 0.259521 0.84375
+10 1 23 0.333984 0.260498 0.850586
+10 1 24 0.335693 0.261963 0.85791
+10 1 25 0.338135 0.263672 0.865723
+10 1 26 0.340576 0.265869 0.875
+10 1 27 0.34375 0.268311 0.884766
+10 1 28 0.347656 0.27124 0.895996
+10 1 29 0.351807 0.274414 0.907715
+10 1 30 0.356201 0.277832 0.92041
+10 1 31 0.360596 0.281494 0.933105
+10 2 0 0.210327 0.15564 0
+10 2 1 0.210327 0.15564 0
+10 2 2 0.210327 0.15564 0
+10 2 3 0.210327 0.155762 0
+10 2 4 0.210327 0.155762 0
+10 2 5 0.210449 0.156006 0
+10 2 6 0.210693 0.156372 0.026886
+10 2 7 0.209595 0.154907 0.0877686
+10 2 8 0.2052 0.151001 0.128296
+10 2 9 0.179688 0.13501 0.151123
+10 2 10 0.168335 0.129883 0.176392
+10 2 11 0.175781 0.135864 0.224731
+10 2 12 0.186035 0.143799 0.282959
+10 2 13 0.198853 0.154053 0.349365
+10 2 14 0.214844 0.166626 0.422607
+10 2 15 0.234131 0.181885 0.500488
+10 2 16 0.256348 0.199219 0.581543
+10 2 17 0.279053 0.217285 0.65918
+10 2 18 0.30127 0.234619 0.730469
+10 2 19 0.321289 0.250488 0.793457
+10 2 20 0.332031 0.259033 0.830078
+10 2 21 0.332031 0.258789 0.836426
+10 2 22 0.332764 0.259521 0.84375
+10 2 23 0.333984 0.260498 0.850586
+10 2 24 0.335693 0.261963 0.85791
+10 2 25 0.338135 0.263672 0.865723
+10 2 26 0.340576 0.265869 0.875
+10 2 27 0.34375 0.268311 0.884766
+10 2 28 0.347656 0.27124 0.895996
+10 2 29 0.351807 0.274414 0.907715
+10 2 30 0.356201 0.277832 0.92041
+10 2 31 0.360596 0.281494 0.933105
+10 3 0 0.210083 0.156006 0
+10 3 1 0.210083 0.156006 0
+10 3 2 0.210083 0.156006 0
+10 3 3 0.210083 0.156128 0
+10 3 4 0.210083 0.156128 0
+10 3 5 0.210205 0.156372 0
+10 3 6 0.210571 0.156738 0.0266113
+10 3 7 0.209473 0.155396 0.0875854
+10 3 8 0.2052 0.151489 0.128174
+10 3 9 0.179932 0.135498 0.151245
+10 3 10 0.168335 0.130249 0.176514
+10 3 11 0.175781 0.136108 0.224731
+10 3 12 0.186035 0.144165 0.282959
+10 3 13 0.198853 0.154297 0.349365
+10 3 14 0.214844 0.16687 0.422607
+10 3 15 0.234131 0.182007 0.500488
+10 3 16 0.256348 0.199463 0.581543
+10 3 17 0.279053 0.217407 0.65918
+10 3 18 0.30127 0.234741 0.730469
+10 3 19 0.321289 0.250488 0.793457
+10 3 20 0.332031 0.259033 0.830078
+10 3 21 0.332031 0.258789 0.836426
+10 3 22 0.332764 0.259521 0.84375
+10 3 23 0.333984 0.260742 0.850586
+10 3 24 0.335938 0.261963 0.85791
+10 3 25 0.338135 0.263672 0.865723
+10 3 26 0.340576 0.265869 0.875
+10 3 27 0.34375 0.268311 0.884766
+10 3 28 0.347656 0.27124 0.895996
+10 3 29 0.351807 0.274414 0.907715
+10 3 30 0.356201 0.277832 0.92041
+10 3 31 0.360596 0.281494 0.933105
+10 4 0 0.209595 0.156616 0
+10 4 1 0.209595 0.156616 0
+10 4 2 0.209595 0.156738 0
+10 4 3 0.209595 0.156738 0
+10 4 4 0.209595 0.15686 0
+10 4 5 0.209717 0.156982 0
+10 4 6 0.210205 0.157471 0.0261841
+10 4 7 0.209351 0.15625 0.0873413
+10 4 8 0.205322 0.152466 0.128052
+10 4 9 0.180298 0.136353 0.151489
+10 4 10 0.168457 0.130859 0.176514
+10 4 11 0.175903 0.136719 0.224731
+10 4 12 0.186035 0.144653 0.282959
+10 4 13 0.198975 0.154785 0.349365
+10 4 14 0.214966 0.167358 0.422607
+10 4 15 0.234131 0.182373 0.500488
+10 4 16 0.256348 0.199707 0.581543
+10 4 17 0.279053 0.217651 0.65918
+10 4 18 0.30127 0.234863 0.730957
+10 4 19 0.321289 0.250732 0.793457
+10 4 20 0.332031 0.259033 0.830078
+10 4 21 0.332031 0.259033 0.836426
+10 4 22 0.332764 0.259521 0.84375
+10 4 23 0.333984 0.260742 0.850586
+10 4 24 0.335938 0.261963 0.85791
+10 4 25 0.338135 0.263916 0.865723
+10 4 26 0.340576 0.265869 0.875
+10 4 27 0.34375 0.268311 0.884766
+10 4 28 0.347656 0.27124 0.895996
+10 4 29 0.351807 0.274414 0.907715
+10 4 30 0.356201 0.277832 0.92041
+10 4 31 0.360596 0.281494 0.933105
+10 5 0 0.208618 0.157837 0
+10 5 1 0.208618 0.157837 0
+10 5 2 0.208618 0.157837 0
+10 5 3 0.208618 0.157837 0
+10 5 4 0.208618 0.157959 0
+10 5 5 0.20874 0.158203 0
+10 5 6 0.209351 0.158691 0.0257111
+10 5 7 0.209106 0.157837 0.086853
+10 5 8 0.205444 0.154297 0.12793
+10 5 9 0.181152 0.138184 0.151978
+10 5 10 0.168457 0.131958 0.176514
+10 5 11 0.175903 0.137695 0.224731
+10 5 12 0.186157 0.14563 0.282959
+10 5 13 0.198975 0.15564 0.349365
+10 5 14 0.214966 0.168091 0.422607
+10 5 15 0.234253 0.183105 0.500488
+10 5 16 0.256348 0.200317 0.581543
+10 5 17 0.279053 0.218018 0.65918
+10 5 18 0.30127 0.235229 0.730957
+10 5 19 0.321289 0.250977 0.793457
+10 5 20 0.332275 0.259277 0.830078
+10 5 21 0.332031 0.259277 0.836426
+10 5 22 0.332764 0.259766 0.84375
+10 5 23 0.333984 0.260742 0.850586
+10 5 24 0.335938 0.262207 0.85791
+10 5 25 0.338135 0.263916 0.865723
+10 5 26 0.34082 0.265869 0.875
+10 5 27 0.34375 0.268555 0.884766
+10 5 28 0.347656 0.271484 0.895996
+10 5 29 0.351807 0.274658 0.907715
+10 5 30 0.356201 0.278076 0.92041
+10 5 31 0.360596 0.281494 0.933105
+10 6 0 0.206665 0.159668 0
+10 6 1 0.206665 0.15979 0
+10 6 2 0.206665 0.15979 0
+10 6 3 0.206543 0.15979 0
+10 6 4 0.206543 0.15979 0
+10 6 5 0.206665 0.160034 0
+10 6 6 0.207642 0.160767 0.0261536
+10 6 7 0.20813 0.160522 0.0859985
+10 6 8 0.205444 0.157471 0.127319
+10 6 9 0.182617 0.141602 0.153076
+10 6 10 0.168701 0.134033 0.176514
+10 6 11 0.176147 0.139771 0.224731
+10 6 12 0.186279 0.147583 0.282959
+10 6 13 0.199219 0.157471 0.349365
+10 6 14 0.215088 0.169678 0.422607
+10 6 15 0.234375 0.184326 0.500488
+10 6 16 0.256348 0.201294 0.581543
+10 6 17 0.279297 0.218872 0.65918
+10 6 18 0.30127 0.235962 0.730957
+10 6 19 0.321533 0.251465 0.793457
+10 6 20 0.332275 0.259766 0.830078
+10 6 21 0.332031 0.259521 0.836426
+10 6 22 0.332764 0.26001 0.84375
+10 6 23 0.334229 0.260986 0.850586
+10 6 24 0.335938 0.262451 0.85791
+10 6 25 0.338135 0.26416 0.866211
+10 6 26 0.34082 0.266113 0.875
+10 6 27 0.343994 0.268555 0.884766
+10 6 28 0.347656 0.271484 0.895996
+10 6 29 0.351807 0.274658 0.907715
+10 6 30 0.356201 0.278076 0.92041
+10 6 31 0.360596 0.281738 0.933105
+10 7 0 0.202026 0.162354 0
+10 7 1 0.202026 0.162354 0
+10 7 2 0.202026 0.162354 0
+10 7 3 0.202026 0.162476 0
+10 7 4 0.202026 0.162476 0
+10 7 5 0.202026 0.162598 0
+10 7 6 0.203369 0.163574 0.0311584
+10 7 7 0.205078 0.164307 0.0844727
+10 7 8 0.204224 0.162598 0.125732
+10 7 9 0.185913 0.148438 0.155151
+10 7 10 0.168945 0.137817 0.176514
+10 7 11 0.176392 0.143433 0.224731
+10 7 12 0.186646 0.151123 0.282959
+10 7 13 0.199463 0.160645 0.349365
+10 7 14 0.215332 0.172485 0.422607
+10 7 15 0.234497 0.186768 0.500488
+10 7 16 0.256592 0.203369 0.581543
+10 7 17 0.279297 0.220581 0.65918
+10 7 18 0.301514 0.237305 0.730957
+10 7 19 0.321533 0.252686 0.793457
+10 7 20 0.332275 0.260742 0.830078
+10 7 21 0.332031 0.260254 0.836914
+10 7 22 0.332764 0.260742 0.84375
+10 7 23 0.334229 0.261719 0.851074
+10 7 24 0.335938 0.262939 0.85791
+10 7 25 0.338135 0.264404 0.866211
+10 7 26 0.34082 0.266357 0.875
+10 7 27 0.343994 0.268799 0.884766
+10 7 28 0.347656 0.271729 0.895996
+10 7 29 0.351807 0.274902 0.907715
+10 7 30 0.356201 0.27832 0.92041
+10 7 31 0.360596 0.281738 0.933105
+10 8 0 0.192261 0.164551 0
+10 8 1 0.192261 0.164551 0
+10 8 2 0.192261 0.164673 0
+10 8 3 0.192261 0.164673 0
+10 8 4 0.192139 0.164673 0
+10 8 5 0.192139 0.164673 0
+10 8 6 0.193359 0.165649 0.0457458
+10 8 7 0.195923 0.167236 0.083313
+10 8 8 0.200439 0.169922 0.122437
+10 8 9 0.192383 0.161987 0.159058
+10 8 10 0.169678 0.14502 0.176636
+10 8 11 0.177002 0.150391 0.224731
+10 8 12 0.187134 0.157837 0.282959
+10 8 13 0.199951 0.16687 0.349365
+10 8 14 0.215942 0.177979 0.422607
+10 8 15 0.234985 0.191528 0.500488
+10 8 16 0.25708 0.207275 0.581543
+10 8 17 0.279785 0.223755 0.65918
+10 8 18 0.301758 0.23999 0.730957
+10 8 19 0.321777 0.254883 0.793945
+10 8 20 0.33252 0.262695 0.830566
+10 8 21 0.332275 0.261719 0.836914
+10 8 22 0.333008 0.261963 0.84375
+10 8 23 0.334473 0.262695 0.851074
+10 8 24 0.336182 0.263672 0.858398
+10 8 25 0.338135 0.265137 0.866211
+10 8 26 0.34082 0.26709 0.875
+10 8 27 0.343994 0.269531 0.884766
+10 8 28 0.347656 0.272217 0.895996
+10 8 29 0.351807 0.275391 0.907715
+10 8 30 0.356201 0.278564 0.92041
+10 8 31 0.36084 0.281982 0.933105
+10 9 0 0.179077 0.167114 0.056488
+10 9 1 0.179077 0.167114 0.056488
+10 9 2 0.179077 0.167114 0.0565186
+10 9 3 0.179077 0.167114 0.0565491
+10 9 4 0.179199 0.167236 0.0566101
+10 9 5 0.179199 0.167236 0.0567322
+10 9 6 0.179321 0.167358 0.0673828
+10 9 7 0.17981 0.167603 0.0877686
+10 9 8 0.182129 0.169312 0.11499
+10 9 9 0.192017 0.17688 0.156616
+10 9 10 0.171021 0.157471 0.17688
+10 9 11 0.178223 0.162598 0.224854
+10 9 12 0.188232 0.169434 0.282959
+10 9 13 0.20105 0.177734 0.349609
+10 9 14 0.216797 0.187744 0.422852
+10 9 15 0.23584 0.200073 0.500977
+10 9 16 0.257568 0.214478 0.581543
+10 9 17 0.280273 0.229736 0.659668
+10 9 18 0.302246 0.244751 0.730957
+10 9 19 0.322266 0.258789 0.793945
+10 9 20 0.333008 0.265869 0.831055
+10 9 21 0.332764 0.264404 0.837402
+10 9 22 0.333252 0.26416 0.844238
+10 9 23 0.334717 0.264404 0.851074
+10 9 24 0.336182 0.265381 0.858398
+10 9 25 0.338379 0.266602 0.866211
+10 9 26 0.341064 0.268311 0.875
+10 9 27 0.344238 0.270508 0.885254
+10 9 28 0.3479 0.273193 0.895996
+10 9 29 0.352051 0.276123 0.908203
+10 9 30 0.356201 0.279297 0.92041
+10 9 31 0.36084 0.282715 0.933105
+10 10 0 0.184082 0.190552 0.0765381
+10 10 1 0.184082 0.190552 0.0765381
+10 10 2 0.184082 0.190552 0.0765381
+10 10 3 0.184204 0.190674 0.0765381
+10 10 4 0.184204 0.190674 0.0765991
+10 10 5 0.184204 0.190796 0.0765991
+10 10 6 0.184204 0.190796 0.0795898
+10 10 7 0.18335 0.189575 0.0964966
+10 10 8 0.181763 0.1875 0.119141
+10 10 9 0.178833 0.183716 0.147095
+10 10 10 0.173828 0.177124 0.177734
+10 10 11 0.180542 0.181641 0.225342
+10 10 12 0.190308 0.187744 0.283203
+10 10 13 0.202881 0.195068 0.349609
+10 10 14 0.218506 0.203735 0.423096
+10 10 15 0.237305 0.214111 0.500977
+10 10 16 0.259033 0.226562 0.582031
+10 10 17 0.28125 0.239868 0.660156
+10 10 18 0.302979 0.253418 0.731445
+10 10 19 0.322998 0.265869 0.794434
+10 10 20 0.333984 0.271973 0.832031
+10 10 21 0.333496 0.269287 0.837891
+10 10 22 0.333984 0.268066 0.844727
+10 10 23 0.335205 0.267822 0.852051
+10 10 24 0.33667 0.268311 0.858887
+10 10 25 0.338867 0.269287 0.866699
+10 10 26 0.341309 0.270508 0.875488
+10 10 27 0.344482 0.272461 0.885254
+10 10 28 0.348145 0.274658 0.896484
+10 10 29 0.352051 0.277588 0.908203
+10 10 30 0.356445 0.280518 0.920898
+10 10 31 0.361084 0.283691 0.933594
+10 11 0 0.182251 0.213745 0.083313
+10 11 1 0.182251 0.213745 0.083313
+10 11 2 0.182251 0.213745 0.083313
+10 11 3 0.182251 0.213745 0.083313
+10 11 4 0.182251 0.213745 0.083313
+10 11 5 0.182373 0.213867 0.083374
+10 11 6 0.182495 0.213989 0.083374
+10 11 7 0.182007 0.213257 0.0949097
+10 11 8 0.180786 0.211182 0.11676
+10 11 9 0.178833 0.207886 0.144531
+10 11 10 0.179199 0.206177 0.179688
+10 11 11 0.184937 0.209473 0.22644
+10 11 12 0.193848 0.214478 0.283447
+10 11 13 0.206055 0.220703 0.349609
+10 11 14 0.221313 0.227661 0.423096
+10 11 15 0.239746 0.23584 0.501465
+10 11 16 0.260986 0.245728 0.58252
+10 11 17 0.283203 0.256348 0.660645
+10 11 18 0.304688 0.267334 0.731934
+10 11 19 0.324219 0.277588 0.794922
+10 11 20 0.335449 0.282227 0.833496
+10 11 21 0.334473 0.277588 0.839355
+10 11 22 0.334961 0.275146 0.846191
+10 11 23 0.335938 0.273682 0.853027
+10 11 24 0.337402 0.273438 0.859863
+10 11 25 0.339355 0.273438 0.867676
+10 11 26 0.342041 0.274414 0.876465
+10 11 27 0.344971 0.275635 0.88623
+10 11 28 0.348633 0.277588 0.896973
+10 11 29 0.352539 0.280029 0.908691
+10 11 30 0.356689 0.282715 0.920898
+10 11 31 0.361328 0.2854 0.933594
+10 12 0 0.18457 0.246582 0.093811
+10 12 1 0.18457 0.246582 0.093811
+10 12 2 0.18457 0.246582 0.093811
+10 12 3 0.18457 0.246582 0.093811
+10 12 4 0.18457 0.246582 0.0938721
+10 12 5 0.184692 0.246704 0.0938721
+10 12 6 0.184814 0.246704 0.0938721
+10 12 7 0.184937 0.246948 0.0950928
+10 12 8 0.184937 0.246216 0.116699
+10 12 9 0.185425 0.245361 0.14563
+10 12 10 0.1875 0.245605 0.182373
+10 12 11 0.192139 0.247559 0.228394
+10 12 12 0.199951 0.250977 0.284424
+10 12 13 0.211304 0.255859 0.350098
+10 12 14 0.226074 0.26123 0.42334
+10 12 15 0.243896 0.26709 0.501953
+10 12 16 0.264648 0.273926 0.583008
+10 12 17 0.286133 0.28125 0.661621
+10 12 18 0.307129 0.288818 0.73291
+10 12 19 0.326416 0.296143 0.795898
+10 12 20 0.337891 0.29834 0.835938
+10 12 21 0.33667 0.291016 0.841797
+10 12 22 0.33667 0.286377 0.847656
+10 12 23 0.337402 0.283447 0.854492
+10 12 24 0.338623 0.281738 0.861328
+10 12 25 0.340576 0.280762 0.869141
+10 12 26 0.343018 0.280518 0.877441
+10 12 27 0.345703 0.281006 0.887207
+10 12 28 0.349365 0.282227 0.897949
+10 12 29 0.353271 0.283936 0.909668
+10 12 30 0.357422 0.286133 0.921875
+10 12 31 0.361816 0.288574 0.93457
+10 13 0 0.19458 0.293457 0.109741
+10 13 1 0.19458 0.293457 0.109741
+10 13 2 0.19458 0.293457 0.109741
+10 13 3 0.19458 0.293457 0.109741
+10 13 4 0.19458 0.293457 0.109741
+10 13 5 0.19458 0.293457 0.109802
+10 13 6 0.194702 0.293457 0.109802
+10 13 7 0.194824 0.293701 0.109863
+10 13 8 0.195312 0.293701 0.119263
+10 13 9 0.196411 0.293701 0.148071
+10 13 10 0.198608 0.294189 0.184937
+10 13 11 0.202637 0.29541 0.230469
+10 13 12 0.209351 0.297607 0.285645
+10 13 13 0.219482 0.300781 0.350342
+10 13 14 0.233276 0.304443 0.423584
+10 13 15 0.250244 0.308105 0.502441
+10 13 16 0.270264 0.312012 0.583984
+10 13 17 0.291016 0.315674 0.662598
+10 13 18 0.311279 0.319336 0.734375
+10 13 19 0.329834 0.323242 0.797363
+10 13 20 0.341797 0.322754 0.839844
+10 13 21 0.339844 0.311279 0.845215
+10 13 22 0.339355 0.303467 0.851074
+10 13 23 0.339844 0.29834 0.857422
+10 13 24 0.34082 0.294922 0.86377
+10 13 25 0.342529 0.292236 0.871094
+10 13 26 0.344482 0.290527 0.879395
+10 13 27 0.347168 0.289795 0.888672
+10 13 28 0.350586 0.289795 0.899414
+10 13 29 0.354248 0.290527 0.911133
+10 13 30 0.358154 0.291992 0.922852
+10 13 31 0.362549 0.293457 0.935547
+10 14 0 0.208984 0.349365 0.129272
+10 14 1 0.208984 0.349365 0.129272
+10 14 2 0.208984 0.349365 0.129272
+10 14 3 0.208984 0.349365 0.129272
+10 14 4 0.208984 0.349365 0.129272
+10 14 5 0.209106 0.349365 0.129272
+10 14 6 0.209106 0.349609 0.129272
+10 14 7 0.209229 0.349609 0.129395
+10 14 8 0.209473 0.349854 0.129395
+10 14 9 0.210571 0.350098 0.150635
+10 14 10 0.212646 0.350586 0.18689
+10 14 11 0.216309 0.351562 0.231812
+10 14 12 0.222168 0.353027 0.286377
+10 14 13 0.231201 0.35498 0.350342
+10 14 14 0.243774 0.357178 0.423096
+10 14 15 0.259766 0.359131 0.501953
+10 14 16 0.278564 0.360352 0.584473
+10 14 17 0.298096 0.360596 0.663574
+10 14 18 0.317383 0.360352 0.73584
+10 14 19 0.335205 0.360107 0.799316
+10 14 20 0.3479 0.356689 0.845215
+10 14 21 0.345215 0.340576 0.850586
+10 14 22 0.343994 0.328857 0.855957
+10 14 23 0.34375 0.320312 0.861816
+10 14 24 0.344238 0.314209 0.868164
+10 14 25 0.345459 0.30957 0.875
+10 14 26 0.347168 0.305664 0.882812
+10 14 27 0.349365 0.302979 0.891602
+10 14 28 0.352539 0.301514 0.901855
+10 14 29 0.355957 0.300781 0.913086
+10 14 30 0.359619 0.300781 0.924805
+10 14 31 0.36377 0.30127 0.937012
+10 15 0 0.226807 0.411133 0.151001
+10 15 1 0.226807 0.411133 0.151001
+10 15 2 0.226807 0.411133 0.151001
+10 15 3 0.226807 0.411133 0.151001
+10 15 4 0.226807 0.411133 0.151123
+10 15 5 0.226807 0.411133 0.151123
+10 15 6 0.226929 0.411377 0.151123
+10 15 7 0.227051 0.411377 0.151123
+10 15 8 0.227173 0.411377 0.151123
+10 15 9 0.227661 0.411865 0.153076
+10 15 10 0.229614 0.412354 0.187988
+10 15 11 0.23291 0.41333 0.231934
+10 15 12 0.238281 0.414551 0.285645
+10 15 13 0.246216 0.41626 0.349121
+10 15 14 0.257568 0.417725 0.421387
+10 15 15 0.272217 0.418457 0.500977
+10 15 16 0.289551 0.417969 0.583984
+10 15 17 0.308105 0.415527 0.664062
+10 15 18 0.326172 0.411377 0.737305
+10 15 19 0.342773 0.407227 0.80127
+10 15 20 0.356445 0.401367 0.852539
+10 15 21 0.352783 0.379883 0.858398
+10 15 22 0.35083 0.363281 0.86377
+10 15 23 0.349854 0.35083 0.869141
+10 15 24 0.349609 0.341553 0.874512
+10 15 25 0.350098 0.33374 0.880859
+10 15 26 0.351318 0.327393 0.888184
+10 15 27 0.353027 0.322021 0.896484
+10 15 28 0.355469 0.318359 0.90625
+10 15 29 0.358643 0.315674 0.916504
+10 15 30 0.362061 0.313721 0.927734
+10 15 31 0.365723 0.3125 0.939453
+10 16 0 0.247681 0.476807 0.174438
+10 16 1 0.247681 0.476807 0.174438
+10 16 2 0.247681 0.476807 0.174438
+10 16 3 0.247681 0.476807 0.174438
+10 16 4 0.247681 0.477051 0.174438
+10 16 5 0.247681 0.477051 0.174438
+10 16 6 0.247803 0.477051 0.174438
+10 16 7 0.247803 0.477051 0.174438
+10 16 8 0.248047 0.477051 0.174561
+10 16 9 0.248413 0.477295 0.174561
+10 16 10 0.249512 0.477783 0.188843
+10 16 11 0.252441 0.47876 0.231079
+10 16 12 0.25708 0.480225 0.283447
+10 16 13 0.26416 0.481934 0.345703
+10 16 14 0.274414 0.483643 0.417725
+10 16 15 0.287842 0.484131 0.49707
+10 16 16 0.303955 0.482666 0.581055
+10 16 17 0.320801 0.478516 0.663086
+10 16 18 0.337646 0.47168 0.737793
+10 16 19 0.353027 0.463867 0.803223
+10 16 20 0.366211 0.455078 0.856934
+10 16 21 0.36377 0.429932 0.868652
+10 16 22 0.360596 0.408203 0.874512
+10 16 23 0.358887 0.391357 0.879883
+10 16 24 0.357666 0.378174 0.884766
+10 16 25 0.357422 0.366699 0.890137
+10 16 26 0.357666 0.356689 0.896484
+10 16 27 0.358643 0.348389 0.903809
+10 16 28 0.360352 0.341553 0.912598
+10 16 29 0.362793 0.336182 0.922363
+10 16 30 0.365479 0.331787 0.932617
+10 16 31 0.368652 0.328613 0.943848
+10 17 0 0.27002 0.541992 0.197754
+10 17 1 0.27002 0.541992 0.197754
+10 17 2 0.27002 0.541992 0.197754
+10 17 3 0.27002 0.541992 0.197754
+10 17 4 0.27002 0.54248 0.197754
+10 17 5 0.27002 0.54248 0.197754
+10 17 6 0.27002 0.54248 0.197754
+10 17 7 0.27002 0.54248 0.197754
+10 17 8 0.270264 0.54248 0.197876
+10 17 9 0.270508 0.54248 0.197876
+10 17 10 0.270996 0.542969 0.197998
+10 17 11 0.273193 0.543945 0.229492
+10 17 12 0.277344 0.54541 0.279785
+10 17 13 0.283936 0.547363 0.340332
+10 17 14 0.292969 0.549805 0.411133
+10 17 15 0.305176 0.550781 0.48999
+10 17 16 0.319824 0.549316 0.574707
+10 17 17 0.335693 0.544922 0.658203
+10 17 18 0.351318 0.536621 0.735352
+10 17 19 0.365723 0.526367 0.802734
+10 17 20 0.377686 0.514648 0.85791
+10 17 21 0.377197 0.488525 0.879395
+10 17 22 0.374023 0.462402 0.888672
+10 17 23 0.371094 0.441162 0.894531
+10 17 24 0.369141 0.423584 0.898926
+10 17 25 0.367432 0.407959 0.903809
+10 17 26 0.366699 0.394043 0.90918
+10 17 27 0.366455 0.381836 0.915039
+10 17 28 0.367188 0.371582 0.922363
+10 17 29 0.368652 0.362793 0.930664
+10 17 30 0.370605 0.355469 0.939941
+10 17 31 0.373047 0.349365 0.949707
+10 18 0 0.291992 0.603516 0.219727
+10 18 1 0.291992 0.603516 0.219727
+10 18 2 0.291992 0.603516 0.219727
+10 18 3 0.291992 0.603516 0.219727
+10 18 4 0.291992 0.603516 0.219727
+10 18 5 0.291992 0.603516 0.219727
+10 18 6 0.291992 0.603516 0.219727
+10 18 7 0.292236 0.603516 0.219727
+10 18 8 0.292236 0.603516 0.219727
+10 18 9 0.29248 0.603516 0.219849
+10 18 10 0.292969 0.604004 0.219849
+10 18 11 0.293945 0.604492 0.227295
+10 18 12 0.297607 0.605957 0.274902
+10 18 13 0.303223 0.608398 0.333008
+10 18 14 0.311279 0.611328 0.401855
+10 18 15 0.32251 0.613281 0.479492
+10 18 16 0.336182 0.613281 0.563965
+10 18 17 0.351074 0.609863 0.649414
+10 18 18 0.365723 0.602051 0.729004
+10 18 19 0.379395 0.59082 0.799316
+10 18 20 0.390381 0.577148 0.856934
+10 18 21 0.392578 0.551758 0.888672
+10 18 22 0.390137 0.523926 0.903809
+10 18 23 0.386719 0.498535 0.912109
+10 18 24 0.383789 0.477051 0.91748
+10 18 25 0.380859 0.457031 0.921387
+10 18 26 0.378662 0.438477 0.925781
+10 18 27 0.377197 0.422119 0.930176
+10 18 28 0.376465 0.407715 0.935547
+10 18 29 0.376709 0.39502 0.942383
+10 18 30 0.377441 0.384277 0.949707
+10 18 31 0.378906 0.375 0.958008
+10 19 0 0.3125 0.658203 0.239502
+10 19 1 0.3125 0.658203 0.239502
+10 19 2 0.3125 0.658203 0.239502
+10 19 3 0.3125 0.658203 0.239502
+10 19 4 0.3125 0.658203 0.239502
+10 19 5 0.3125 0.658203 0.239502
+10 19 6 0.3125 0.658203 0.239502
+10 19 7 0.312744 0.658203 0.239502
+10 19 8 0.312744 0.658691 0.239502
+10 19 9 0.312988 0.658691 0.239502
+10 19 10 0.313232 0.658691 0.239624
+10 19 11 0.313965 0.65918 0.239746
+10 19 12 0.316406 0.660156 0.269775
+10 19 13 0.321289 0.662598 0.324951
+10 19 14 0.328613 0.666016 0.391113
+10 19 15 0.338623 0.668945 0.466797
+10 19 16 0.351318 0.670898 0.550293
+10 19 17 0.365723 0.669434 0.63623
+10 19 18 0.379883 0.663086 0.718262
+10 19 19 0.392822 0.652344 0.791016
+10 19 20 0.40332 0.638184 0.851562
+10 19 21 0.407959 0.615723 0.893555
+10 19 22 0.407471 0.587891 0.91748
+10 19 23 0.404297 0.560547 0.930176
+10 19 24 0.400635 0.535645 0.9375
+10 19 25 0.396973 0.511719 0.941895
+10 19 26 0.393311 0.48877 0.945312
+10 19 27 0.390381 0.467773 0.94873
+10 19 28 0.388184 0.44873 0.952148
+10 19 29 0.386719 0.432129 0.957031
+10 19 30 0.385986 0.417236 0.962402
+10 19 31 0.38623 0.404297 0.96875
+10 20 0 0.330811 0.706055 0.256592
+10 20 1 0.330811 0.706055 0.256592
+10 20 2 0.330811 0.706055 0.256592
+10 20 3 0.330811 0.706055 0.256592
+10 20 4 0.330811 0.706055 0.256592
+10 20 5 0.330811 0.706055 0.256592
+10 20 6 0.330811 0.706055 0.256592
+10 20 7 0.330811 0.706055 0.256592
+10 20 8 0.331055 0.706055 0.256592
+10 20 9 0.331055 0.706055 0.256592
+10 20 10 0.331543 0.706055 0.256836
+10 20 11 0.332031 0.706543 0.256836
+10 20 12 0.333252 0.707031 0.264648
+10 20 13 0.337646 0.709473 0.316895
+10 20 14 0.343994 0.713379 0.379883
+10 20 15 0.353271 0.716797 0.452881
+10 20 16 0.36499 0.720215 0.534668
+10 20 17 0.378662 0.720703 0.620117
+10 20 18 0.392334 0.716309 0.703125
+10 20 19 0.405029 0.70752 0.77832
+10 20 20 0.415283 0.693848 0.841797
+10 20 21 0.422119 0.674805 0.89209
+10 20 22 0.423828 0.649414 0.925781
+10 20 23 0.421875 0.62207 0.944824
+10 20 24 0.418457 0.595703 0.955566
+10 20 25 0.414062 0.568359 0.962402
+10 20 26 0.409668 0.541992 0.966309
+10 20 27 0.405273 0.516602 0.96875
+10 20 28 0.401367 0.493164 0.971191
+10 20 29 0.398438 0.472168 0.973633
+10 20 30 0.39624 0.453369 0.977051
+10 20 31 0.39502 0.436523 0.981445
+10 21 0 0.34668 0.746582 0.27124
+10 21 1 0.34668 0.746582 0.27124
+10 21 2 0.34668 0.746582 0.27124
+10 21 3 0.34668 0.746582 0.27124
+10 21 4 0.34668 0.746582 0.27124
+10 21 5 0.34668 0.746582 0.27124
+10 21 6 0.34668 0.746582 0.27124
+10 21 7 0.34668 0.746582 0.27124
+10 21 8 0.34668 0.746582 0.27124
+10 21 9 0.346924 0.746582 0.27124
+10 21 10 0.347168 0.746582 0.27124
+10 21 11 0.347412 0.74707 0.271484
+10 21 12 0.348145 0.74707 0.271484
+10 21 13 0.351562 0.749512 0.30835
+10 21 14 0.357422 0.75293 0.368164
+10 21 15 0.365723 0.757324 0.438232
+10 21 16 0.376709 0.761719 0.517578
+10 21 17 0.389648 0.763672 0.601562
+10 21 18 0.402832 0.762207 0.68457
+10 21 19 0.415283 0.755371 0.76123
+10 21 20 0.425537 0.743652 0.827637
+10 21 21 0.433594 0.727539 0.883301
+10 21 22 0.437988 0.706543 0.925781
+10 21 23 0.437988 0.681152 0.952637
+10 21 24 0.435547 0.654297 0.96875
+10 21 25 0.431396 0.625488 0.979004
+10 21 26 0.42627 0.596191 0.985352
+10 21 27 0.420898 0.567383 0.988281
+10 21 28 0.415771 0.540527 0.990234
+10 21 29 0.411377 0.515137 0.991699
+10 21 30 0.407715 0.492188 0.993652
+10 21 31 0.405029 0.471436 0.996094
+10 22 0 0.359863 0.780273 0.283203
+10 22 1 0.359863 0.780273 0.283203
+10 22 2 0.359863 0.780273 0.283203
+10 22 3 0.359863 0.780273 0.283203
+10 22 4 0.359863 0.780273 0.283447
+10 22 5 0.359863 0.780273 0.283447
+10 22 6 0.359863 0.780273 0.283447
+10 22 7 0.359863 0.780273 0.283447
+10 22 8 0.359863 0.780273 0.283447
+10 22 9 0.360107 0.780273 0.283447
+10 22 10 0.360352 0.780273 0.283447
+10 22 11 0.360596 0.780273 0.283447
+10 22 12 0.361084 0.780762 0.283447
+10 22 13 0.363037 0.781738 0.299805
+10 22 14 0.368408 0.785645 0.356689
+10 22 15 0.375977 0.790039 0.42334
+10 22 16 0.38623 0.79541 0.499756
+10 22 17 0.398438 0.799316 0.581543
+10 22 18 0.411377 0.799805 0.664062
+10 22 19 0.423584 0.79541 0.741211
+10 22 20 0.434082 0.786621 0.80957
+10 22 21 0.442627 0.772461 0.868652
+10 22 22 0.448242 0.754395 0.916504
+10 22 23 0.450684 0.73291 0.951172
+10 22 24 0.449951 0.708008 0.974609
+10 22 25 0.446777 0.680176 0.990234
+10 22 26 0.442139 0.649414 1
+10 22 27 0.436523 0.618652 1
+10 22 28 0.430664 0.588379 1
+10 22 29 0.425049 0.55957 1
+10 22 30 0.420166 0.532715 1
+10 22 31 0.416016 0.508301 1
+10 23 0 0.370361 0.807129 0.292969
+10 23 1 0.370361 0.807129 0.292969
+10 23 2 0.370361 0.807129 0.292969
+10 23 3 0.370361 0.807129 0.292969
+10 23 4 0.370361 0.807129 0.292969
+10 23 5 0.370361 0.807129 0.292969
+10 23 6 0.370361 0.807129 0.292969
+10 23 7 0.370605 0.807129 0.292969
+10 23 8 0.370605 0.807129 0.292969
+10 23 9 0.370605 0.807129 0.292969
+10 23 10 0.37085 0.807129 0.292969
+10 23 11 0.371094 0.807129 0.293213
+10 23 12 0.371582 0.807617 0.293213
+10 23 13 0.372314 0.807617 0.293457
+10 23 14 0.377197 0.811523 0.345459
+10 23 15 0.384033 0.816406 0.40918
+10 23 16 0.393555 0.821777 0.482422
+10 23 17 0.405029 0.82666 0.561523
+10 23 18 0.41748 0.829102 0.642578
+10 23 19 0.429688 0.827637 0.719727
+10 23 20 0.44043 0.820801 0.789551
+10 23 21 0.449219 0.80957 0.850586
+10 23 22 0.455566 0.793457 0.901855
+10 23 23 0.459473 0.774902 0.941895
+10 23 24 0.460938 0.753906 0.97168
+10 23 25 0.459473 0.727539 0.993652
+10 23 26 0.455811 0.697754 1
+10 23 27 0.450439 0.666016 1
+10 23 28 0.444336 0.633789 1
+10 23 29 0.438232 0.602051 1
+10 23 30 0.432129 0.572266 1
+10 23 31 0.426758 0.543945 1
+10 24 0 0.378906 0.828613 0.300781
+10 24 1 0.378906 0.828613 0.300781
+10 24 2 0.378906 0.828613 0.300781
+10 24 3 0.378906 0.828613 0.300781
+10 24 4 0.378906 0.828613 0.300781
+10 24 5 0.378906 0.828613 0.300781
+10 24 6 0.378906 0.828613 0.300781
+10 24 7 0.378906 0.828613 0.300781
+10 24 8 0.37915 0.828613 0.300781
+10 24 9 0.37915 0.828613 0.300781
+10 24 10 0.37915 0.828613 0.300781
+10 24 11 0.379639 0.828613 0.300781
+10 24 12 0.379883 0.829102 0.301025
+10 24 13 0.380615 0.829102 0.301025
+10 24 14 0.384033 0.831543 0.335205
+10 24 15 0.390381 0.836426 0.395752
+10 24 16 0.39917 0.842285 0.46582
+10 24 17 0.410156 0.848145 0.54248
+10 24 18 0.422119 0.852051 0.621094
+10 24 19 0.434082 0.852539 0.697754
+10 24 20 0.445068 0.848633 0.767578
+10 24 21 0.454102 0.839355 0.830566
+10 24 22 0.460938 0.826172 0.883789
+10 24 23 0.46582 0.810059 0.927246
+10 24 24 0.468506 0.791504 0.961914
+10 24 25 0.468994 0.768555 0.990234
+10 24 26 0.466797 0.740723 1
+10 24 27 0.462402 0.708984 1
+10 24 28 0.456543 0.675781 1
+10 24 29 0.450195 0.642578 1
+10 24 30 0.443604 0.610352 1
+10 24 31 0.437256 0.57959 1
+10 25 0 0.386475 0.847656 0.307617
+10 25 1 0.386475 0.847656 0.307617
+10 25 2 0.386475 0.847656 0.307617
+10 25 3 0.386475 0.847656 0.307617
+10 25 4 0.386475 0.847656 0.307617
+10 25 5 0.386475 0.847656 0.307617
+10 25 6 0.386475 0.847656 0.307617
+10 25 7 0.386475 0.847656 0.307617
+10 25 8 0.386475 0.847656 0.307617
+10 25 9 0.386719 0.847656 0.307617
+10 25 10 0.386719 0.847656 0.307617
+10 25 11 0.386963 0.847656 0.307617
+10 25 12 0.387451 0.847656 0.307861
+10 25 13 0.387939 0.848145 0.307861
+10 25 14 0.390137 0.849609 0.324463
+10 25 15 0.395752 0.854492 0.381836
+10 25 16 0.403809 0.860352 0.448486
+10 25 17 0.414062 0.866211 0.521973
+10 25 18 0.425537 0.871582 0.598145
+10 25 19 0.437256 0.874023 0.67334
+10 25 20 0.448242 0.872559 0.743164
+10 25 21 0.457764 0.866211 0.806641
+10 25 22 0.465332 0.855957 0.862305
+10 25 23 0.470703 0.841797 0.908691
+10 25 24 0.474365 0.825684 0.946289
+10 25 25 0.476318 0.805664 0.979492
+10 25 26 0.47583 0.780762 1
+10 25 27 0.4729 0.750977 1
+10 25 28 0.468018 0.718262 1
+10 25 29 0.46167 0.684082 1
+10 25 30 0.454834 0.649902 1
+10 25 31 0.447998 0.616699 1
+10 26 0 0.393311 0.864746 0.313721
+10 26 1 0.393311 0.864746 0.313721
+10 26 2 0.393311 0.864746 0.313721
+10 26 3 0.393311 0.864746 0.313721
+10 26 4 0.393311 0.864746 0.313721
+10 26 5 0.393311 0.864746 0.313721
+10 26 6 0.393311 0.864746 0.313721
+10 26 7 0.393311 0.864746 0.313721
+10 26 8 0.393311 0.864746 0.313721
+10 26 9 0.393311 0.864746 0.313721
+10 26 10 0.393555 0.864746 0.313721
+10 26 11 0.393799 0.864746 0.313965
+10 26 12 0.394043 0.864746 0.313965
+10 26 13 0.394531 0.865234 0.313965
+10 26 14 0.395508 0.865234 0.314209
+10 26 15 0.400635 0.869629 0.367676
+10 26 16 0.407959 0.875488 0.430664
+10 26 17 0.417236 0.882324 0.500488
+10 26 18 0.427979 0.888184 0.57373
+10 26 19 0.439453 0.89209 0.646484
+10 26 20 0.450195 0.892578 0.71582
+10 26 21 0.459961 0.889648 0.779785
+10 26 22 0.468262 0.881836 0.836914
+10 26 23 0.474365 0.871094 0.885254
+10 26 24 0.47876 0.857422 0.925781
+10 26 25 0.481689 0.839844 0.962402
+10 26 26 0.48291 0.817871 0.994141
+10 26 27 0.481689 0.791016 1
+10 26 28 0.477783 0.759766 1
+10 26 29 0.472168 0.725586 1
+10 26 30 0.465576 0.69043 1
+10 26 31 0.458496 0.655273 1
+10 27 0 0.39917 0.879883 0.319092
+10 27 1 0.39917 0.879883 0.319092
+10 27 2 0.39917 0.879883 0.319092
+10 27 3 0.39917 0.879883 0.319092
+10 27 4 0.39917 0.879883 0.319092
+10 27 5 0.39917 0.879883 0.319092
+10 27 6 0.39917 0.879883 0.319092
+10 27 7 0.39917 0.879883 0.319092
+10 27 8 0.39917 0.879883 0.319336
+10 27 9 0.39917 0.879883 0.319336
+10 27 10 0.399414 0.879883 0.319336
+10 27 11 0.399658 0.879883 0.319336
+10 27 12 0.399902 0.879883 0.319336
+10 27 13 0.400391 0.879883 0.319336
+10 27 14 0.401123 0.880371 0.31958
+10 27 15 0.404541 0.883301 0.353271
+10 27 16 0.411133 0.88916 0.412842
+10 27 17 0.419678 0.895508 0.47876
+10 27 18 0.429688 0.901855 0.548828
+10 27 19 0.440674 0.907227 0.619141
+10 27 20 0.451172 0.909668 0.686035
+10 27 21 0.461182 0.90918 0.75
+10 27 22 0.469971 0.904297 0.807617
+10 27 23 0.476562 0.896484 0.85791
+10 27 24 0.481689 0.885742 0.900391
+10 27 25 0.485596 0.870605 0.939941
+10 27 26 0.487793 0.851074 0.975586
+10 27 27 0.488037 0.827148 1
+10 27 28 0.48584 0.79834 1
+10 27 29 0.481201 0.765625 1
+10 27 30 0.475098 0.730469 1
+10 27 31 0.468018 0.694336 1
+10 28 0 0.404053 0.89209 0.32373
+10 28 1 0.404053 0.89209 0.32373
+10 28 2 0.404053 0.89209 0.32373
+10 28 3 0.404053 0.89209 0.32373
+10 28 4 0.404053 0.89209 0.32373
+10 28 5 0.404053 0.89209 0.32373
+10 28 6 0.404053 0.89209 0.32373
+10 28 7 0.404053 0.89209 0.32373
+10 28 8 0.404053 0.89209 0.32373
+10 28 9 0.404053 0.89209 0.32373
+10 28 10 0.404297 0.89209 0.32373
+10 28 11 0.404297 0.89209 0.32373
+10 28 12 0.404541 0.89209 0.32373
+10 28 13 0.405029 0.892578 0.32373
+10 28 14 0.405762 0.892578 0.323975
+10 28 15 0.407715 0.894043 0.339111
+10 28 16 0.413574 0.899414 0.394775
+10 28 17 0.421387 0.905762 0.457031
+10 28 18 0.430664 0.912598 0.522949
+10 28 19 0.440918 0.918945 0.590332
+10 28 20 0.451172 0.922852 0.655273
+10 28 21 0.460938 0.924316 0.717773
+10 28 22 0.469971 0.922363 0.775391
+10 28 23 0.477295 0.91748 0.82666
+10 28 24 0.483154 0.90918 0.870605
+10 28 25 0.487793 0.897461 0.912598
+10 28 26 0.490967 0.880859 0.95166
+10 28 27 0.492188 0.859863 0.98584
+10 28 28 0.491455 0.833496 1
+10 28 29 0.488281 0.803223 1
+10 28 30 0.483398 0.769531 1
+10 28 31 0.477051 0.733887 1
+10 29 0 0.407715 0.901855 0.327148
+10 29 1 0.407715 0.901855 0.327148
+10 29 2 0.407715 0.901855 0.327148
+10 29 3 0.407715 0.901855 0.327148
+10 29 4 0.407715 0.901855 0.327148
+10 29 5 0.407715 0.901855 0.327148
+10 29 6 0.407715 0.901855 0.327148
+10 29 7 0.407715 0.901855 0.327148
+10 29 8 0.407715 0.901855 0.327148
+10 29 9 0.407715 0.901855 0.327148
+10 29 10 0.407959 0.901855 0.327148
+10 29 11 0.407959 0.901855 0.327148
+10 29 12 0.408203 0.901855 0.327148
+10 29 13 0.408447 0.901855 0.327148
+10 29 14 0.40918 0.901855 0.327393
+10 29 15 0.409912 0.902344 0.327393
+10 29 16 0.415039 0.907227 0.376465
+10 29 17 0.422119 0.913574 0.434814
+10 29 18 0.43042 0.92041 0.49707
+10 29 19 0.439941 0.926758 0.560547
+10 29 20 0.449707 0.932129 0.623047
+10 29 21 0.459473 0.935547 0.683594
+10 29 22 0.468262 0.936035 0.740234
+10 29 23 0.476074 0.933594 0.791504
+10 29 24 0.482422 0.928223 0.836914
+10 29 25 0.487793 0.919434 0.880371
+10 29 26 0.492188 0.90625 0.921875
+10 29 27 0.494629 0.888184 0.959473
+10 29 28 0.495117 0.865234 0.992188
+10 29 29 0.493652 0.837891 1
+10 29 30 0.490234 0.807129 1
+10 29 31 0.485107 0.772949 1
+10 30 0 0.409912 0.907715 0.329346
+10 30 1 0.409912 0.907715 0.329346
+10 30 2 0.409912 0.907715 0.329346
+10 30 3 0.409912 0.907715 0.329346
+10 30 4 0.409912 0.907715 0.329346
+10 30 5 0.409912 0.907715 0.329346
+10 30 6 0.409912 0.907715 0.329346
+10 30 7 0.409912 0.907715 0.329346
+10 30 8 0.409912 0.907715 0.329346
+10 30 9 0.409912 0.907715 0.329346
+10 30 10 0.410156 0.907715 0.329346
+10 30 11 0.410156 0.907715 0.329346
+10 30 12 0.4104 0.908203 0.329346
+10 30 13 0.410645 0.908203 0.329346
+10 30 14 0.411133 0.908203 0.32959
+10 30 15 0.411865 0.908203 0.32959
+10 30 16 0.415039 0.911621 0.358154
+10 30 17 0.421387 0.91748 0.412598
+10 30 18 0.429199 0.924316 0.470703
+10 30 19 0.437744 0.931152 0.530762
+10 30 20 0.447021 0.937012 0.589844
+10 30 21 0.456299 0.941895 0.647949
+10 30 22 0.465088 0.944336 0.703125
+10 30 23 0.473145 0.944336 0.753418
+10 30 24 0.479736 0.941406 0.798828
+10 30 25 0.48584 0.935547 0.84375
+10 30 26 0.490967 0.925781 0.886719
+10 30 27 0.494873 0.911621 0.927734
+10 30 28 0.496826 0.893066 0.964844
+10 30 29 0.49707 0.869629 0.99707
+10 30 30 0.495605 0.841797 1
+10 30 31 0.491943 0.810059 1
+10 31 0 0.411621 0.912598 0.331055
+10 31 1 0.411621 0.912598 0.331055
+10 31 2 0.411621 0.912598 0.331055
+10 31 3 0.411621 0.912598 0.331055
+10 31 4 0.411621 0.912598 0.331055
+10 31 5 0.411621 0.912598 0.331055
+10 31 6 0.411621 0.912598 0.331055
+10 31 7 0.411621 0.912598 0.331055
+10 31 8 0.411621 0.912598 0.331055
+10 31 9 0.411621 0.912598 0.331055
+10 31 10 0.411621 0.912598 0.331055
+10 31 11 0.411865 0.912598 0.331055
+10 31 12 0.411865 0.912598 0.331055
+10 31 13 0.412109 0.912598 0.331055
+10 31 14 0.412598 0.912598 0.331055
+10 31 15 0.413086 0.913086 0.331299
+10 31 16 0.414795 0.914062 0.340576
+10 31 17 0.420166 0.919434 0.390869
+10 31 18 0.427002 0.925781 0.445068
+10 31 19 0.434814 0.932617 0.500977
+10 31 20 0.443359 0.938477 0.556152
+10 31 21 0.451904 0.943848 0.611328
+10 31 22 0.460449 0.947754 0.664062
+10 31 23 0.468262 0.949707 0.712891
+10 31 24 0.475342 0.949707 0.757812
+10 31 25 0.482178 0.946777 0.803223
+10 31 26 0.488037 0.940918 0.848145
+10 31 27 0.493164 0.930664 0.891602
+10 31 28 0.496826 0.916504 0.932617
+10 31 29 0.498779 0.896973 0.969238
+10 31 30 0.498779 0.873047 1
+10 31 31 0.49707 0.844727 1
+11 0 0 0.268311 0.197876 0
+11 0 1 0.268311 0.197876 0
+11 0 2 0.268311 0.197876 0
+11 0 3 0.268311 0.197876 0
+11 0 4 0.268311 0.197998 0
+11 0 5 0.268311 0.19812 0
+11 0 6 0.268555 0.198364 0
+11 0 7 0.268799 0.198608 0.0465393
+11 0 8 0.26709 0.196655 0.11731
+11 0 9 0.260986 0.191284 0.168091
+11 0 10 0.228271 0.171387 0.194214
+11 0 11 0.216064 0.16626 0.22644
+11 0 12 0.223755 0.172485 0.283691
+11 0 13 0.233887 0.18042 0.349854
+11 0 14 0.246216 0.190308 0.423096
+11 0 15 0.26123 0.202271 0.500977
+11 0 16 0.279053 0.216431 0.582031
+11 0 17 0.297852 0.231323 0.660156
+11 0 18 0.31665 0.246216 0.731445
+11 0 19 0.334229 0.26001 0.794434
+11 0 20 0.343018 0.26709 0.832031
+11 0 21 0.34082 0.265625 0.838379
+11 0 22 0.340088 0.265137 0.845215
+11 0 23 0.340332 0.265381 0.852051
+11 0 24 0.341309 0.266113 0.859375
+11 0 25 0.342773 0.267334 0.867188
+11 0 26 0.344727 0.268799 0.875977
+11 0 27 0.347412 0.270996 0.885742
+11 0 28 0.350586 0.273438 0.896973
+11 0 29 0.354248 0.276367 0.908691
+11 0 30 0.358398 0.279541 0.920898
+11 0 31 0.362549 0.282959 0.933594
+11 1 0 0.268311 0.197998 0
+11 1 1 0.268311 0.197998 0
+11 1 2 0.268311 0.197998 0
+11 1 3 0.268311 0.197998 0
+11 1 4 0.268311 0.197998 0
+11 1 5 0.268311 0.19812 0
+11 1 6 0.268555 0.198486 0
+11 1 7 0.268799 0.19873 0.0464783
+11 1 8 0.26709 0.196777 0.117249
+11 1 9 0.260986 0.191406 0.168091
+11 1 10 0.228394 0.171509 0.194336
+11 1 11 0.216064 0.166382 0.22644
+11 1 12 0.223755 0.172485 0.283691
+11 1 13 0.233887 0.180542 0.349854
+11 1 14 0.246216 0.190308 0.423096
+11 1 15 0.26123 0.202271 0.500977
+11 1 16 0.279053 0.216431 0.582031
+11 1 17 0.297852 0.231445 0.660156
+11 1 18 0.31665 0.246216 0.731445
+11 1 19 0.334229 0.26001 0.794434
+11 1 20 0.343262 0.26709 0.832031
+11 1 21 0.34082 0.265625 0.838379
+11 1 22 0.340088 0.265137 0.845215
+11 1 23 0.340332 0.265381 0.852051
+11 1 24 0.341309 0.266113 0.859375
+11 1 25 0.342773 0.267334 0.867188
+11 1 26 0.344727 0.268799 0.875977
+11 1 27 0.347412 0.270996 0.885742
+11 1 28 0.350586 0.273438 0.896973
+11 1 29 0.354248 0.276367 0.908691
+11 1 30 0.358398 0.279541 0.920898
+11 1 31 0.362549 0.282959 0.933594
+11 2 0 0.268311 0.19812 0
+11 2 1 0.268311 0.19812 0
+11 2 2 0.268311 0.19812 0
+11 2 3 0.268311 0.19812 0
+11 2 4 0.268311 0.198242 0
+11 2 5 0.268311 0.198364 0
+11 2 6 0.268311 0.198608 0
+11 2 7 0.268799 0.198853 0.0464172
+11 2 8 0.26709 0.196899 0.117188
+11 2 9 0.260986 0.19165 0.168091
+11 2 10 0.228394 0.171753 0.194336
+11 2 11 0.216064 0.166504 0.22644
+11 2 12 0.223755 0.172607 0.283691
+11 2 13 0.233887 0.180664 0.349854
+11 2 14 0.246216 0.19043 0.423096
+11 2 15 0.26123 0.202393 0.500977
+11 2 16 0.279053 0.216553 0.582031
+11 2 17 0.297852 0.231445 0.660156
+11 2 18 0.31665 0.246338 0.731445
+11 2 19 0.334229 0.26001 0.794434
+11 2 20 0.343262 0.267334 0.832031
+11 2 21 0.34082 0.265625 0.838379
+11 2 22 0.340088 0.265137 0.845215
+11 2 23 0.340332 0.265381 0.852051
+11 2 24 0.341309 0.266113 0.859375
+11 2 25 0.342773 0.267334 0.867188
+11 2 26 0.344727 0.268799 0.875977
+11 2 27 0.347412 0.270996 0.885742
+11 2 28 0.350586 0.273438 0.896973
+11 2 29 0.354248 0.276367 0.908691
+11 2 30 0.358398 0.279541 0.920898
+11 2 31 0.362549 0.282959 0.933594
+11 3 0 0.268066 0.198364 0
+11 3 1 0.268066 0.198364 0
+11 3 2 0.268066 0.198364 0
+11 3 3 0.268066 0.198364 0
+11 3 4 0.268066 0.198486 0
+11 3 5 0.268066 0.198608 0
+11 3 6 0.268311 0.198853 0
+11 3 7 0.268555 0.199219 0.0462646
+11 3 8 0.26709 0.197266 0.117126
+11 3 9 0.260986 0.192017 0.167969
+11 3 10 0.228516 0.171997 0.194458
+11 3 11 0.216064 0.166748 0.22644
+11 3 12 0.223755 0.172852 0.283691
+11 3 13 0.233887 0.180786 0.349854
+11 3 14 0.246216 0.190674 0.423096
+11 3 15 0.26123 0.202515 0.500977
+11 3 16 0.279053 0.216675 0.582031
+11 3 17 0.297852 0.231567 0.660156
+11 3 18 0.31665 0.246338 0.731445
+11 3 19 0.334229 0.260254 0.794434
+11 3 20 0.343262 0.267334 0.832031
+11 3 21 0.34082 0.265625 0.838379
+11 3 22 0.340088 0.265137 0.845215
+11 3 23 0.340332 0.265381 0.852051
+11 3 24 0.341309 0.266113 0.859375
+11 3 25 0.342773 0.267334 0.867188
+11 3 26 0.344727 0.268799 0.875977
+11 3 27 0.347412 0.270996 0.885742
+11 3 28 0.350586 0.273438 0.896973
+11 3 29 0.354248 0.276367 0.908691
+11 3 30 0.358398 0.279541 0.920898
+11 3 31 0.362549 0.282959 0.933594
+11 4 0 0.267822 0.198853 0
+11 4 1 0.267822 0.198853 0
+11 4 2 0.267822 0.198853 0
+11 4 3 0.267822 0.198853 0
+11 4 4 0.267822 0.198975 0
+11 4 5 0.267822 0.199097 0
+11 4 6 0.268066 0.199341 0
+11 4 7 0.268311 0.199707 0.04599
+11 4 8 0.26709 0.197998 0.116943
+11 4 9 0.26123 0.192749 0.167969
+11 4 10 0.228882 0.172729 0.19458
+11 4 11 0.216064 0.167114 0.22644
+11 4 12 0.223877 0.173218 0.283691
+11 4 13 0.233887 0.181152 0.349854
+11 4 14 0.246338 0.190918 0.423096
+11 4 15 0.26123 0.202881 0.500977
+11 4 16 0.279053 0.216919 0.582031
+11 4 17 0.297852 0.231812 0.660156
+11 4 18 0.31665 0.246582 0.731445
+11 4 19 0.334229 0.260254 0.794434
+11 4 20 0.343262 0.267334 0.832031
+11 4 21 0.34082 0.265625 0.838379
+11 4 22 0.340088 0.265137 0.845215
+11 4 23 0.340332 0.265381 0.852051
+11 4 24 0.341309 0.266113 0.859375
+11 4 25 0.342773 0.267334 0.867188
+11 4 26 0.344727 0.269043 0.875977
+11 4 27 0.347412 0.270996 0.885742
+11 4 28 0.350586 0.273682 0.896973
+11 4 29 0.354248 0.276367 0.908691
+11 4 30 0.358398 0.279541 0.920898
+11 4 31 0.362549 0.282959 0.933594
+11 5 0 0.267334 0.199707 0
+11 5 1 0.267334 0.199829 0
+11 5 2 0.267334 0.199829 0
+11 5 3 0.267334 0.199829 0
+11 5 4 0.267334 0.199829 0
+11 5 5 0.26709 0.199951 0
+11 5 6 0.267334 0.200195 0
+11 5 7 0.268066 0.200684 0.0455627
+11 5 8 0.26709 0.199219 0.116638
+11 5 9 0.261475 0.194214 0.167969
+11 5 10 0.22937 0.17395 0.194946
+11 5 11 0.216187 0.167969 0.22644
+11 5 12 0.223877 0.17395 0.283691
+11 5 13 0.234009 0.181885 0.349854
+11 5 14 0.246338 0.19165 0.423096
+11 5 15 0.261475 0.203491 0.500977
+11 5 16 0.279053 0.217407 0.582031
+11 5 17 0.298096 0.232178 0.660156
+11 5 18 0.31665 0.246948 0.731445
+11 5 19 0.334229 0.260498 0.794434
+11 5 20 0.343262 0.267578 0.832031
+11 5 21 0.34082 0.265869 0.838379
+11 5 22 0.340088 0.265381 0.845215
+11 5 23 0.340332 0.265625 0.852051
+11 5 24 0.341309 0.266357 0.859375
+11 5 25 0.342773 0.267334 0.867188
+11 5 26 0.344727 0.269043 0.875977
+11 5 27 0.347412 0.270996 0.885742
+11 5 28 0.350586 0.273682 0.896973
+11 5 29 0.354248 0.276611 0.908691
+11 5 30 0.358398 0.279785 0.920898
+11 5 31 0.362549 0.282959 0.933594
+11 6 0 0.266113 0.201416 0
+11 6 1 0.266113 0.201416 0
+11 6 2 0.266113 0.201416 0
+11 6 3 0.266113 0.201416 0
+11 6 4 0.266113 0.201538 0
+11 6 5 0.266113 0.201538 0
+11 6 6 0.266113 0.201904 0
+11 6 7 0.26709 0.202515 0.0450134
+11 6 8 0.266602 0.201416 0.116028
+11 6 9 0.261719 0.196655 0.167725
+11 6 10 0.230347 0.17627 0.195679
+11 6 11 0.216309 0.169434 0.22644
+11 6 12 0.223999 0.175415 0.283691
+11 6 13 0.234009 0.183228 0.349854
+11 6 14 0.24646 0.192871 0.423096
+11 6 15 0.261475 0.204468 0.500977
+11 6 16 0.279297 0.218384 0.582031
+11 6 17 0.298096 0.233032 0.660156
+11 6 18 0.316895 0.247559 0.731445
+11 6 19 0.334229 0.26123 0.794434
+11 6 20 0.343262 0.268066 0.832031
+11 6 21 0.341064 0.266357 0.838379
+11 6 22 0.340088 0.265625 0.845215
+11 6 23 0.340332 0.265869 0.852539
+11 6 24 0.341309 0.266602 0.859375
+11 6 25 0.342773 0.267578 0.867188
+11 6 26 0.344727 0.269287 0.875977
+11 6 27 0.347412 0.27124 0.885742
+11 6 28 0.350586 0.273682 0.896973
+11 6 29 0.354248 0.276611 0.908691
+11 6 30 0.358398 0.279785 0.920898
+11 6 31 0.362549 0.283203 0.933594
+11 7 0 0.263428 0.204102 0
+11 7 1 0.263428 0.204102 0
+11 7 2 0.263428 0.204102 0
+11 7 3 0.263428 0.204102 0
+11 7 4 0.263428 0.204224 0
+11 7 5 0.263428 0.204224 0
+11 7 6 0.263672 0.20459 0
+11 7 7 0.264893 0.205444 0.045105
+11 7 8 0.265625 0.2052 0.114868
+11 7 9 0.261963 0.201294 0.167236
+11 7 10 0.232422 0.180786 0.197021
+11 7 11 0.216431 0.172241 0.22644
+11 7 12 0.224243 0.178223 0.283691
+11 7 13 0.234253 0.185791 0.349854
+11 7 14 0.246704 0.19519 0.423096
+11 7 15 0.261719 0.206665 0.501465
+11 7 16 0.279297 0.220093 0.582031
+11 7 17 0.29834 0.234497 0.660156
+11 7 18 0.316895 0.248779 0.731445
+11 7 19 0.334229 0.262207 0.794434
+11 7 20 0.343506 0.269043 0.83252
+11 7 21 0.341064 0.26709 0.838379
+11 7 22 0.340332 0.266357 0.845215
+11 7 23 0.340576 0.266357 0.852539
+11 7 24 0.341309 0.266846 0.859375
+11 7 25 0.342773 0.268066 0.867188
+11 7 26 0.344727 0.269531 0.875977
+11 7 27 0.347412 0.271484 0.885742
+11 7 28 0.350586 0.273926 0.896973
+11 7 29 0.354492 0.276855 0.908691
+11 7 30 0.358398 0.280029 0.920898
+11 7 31 0.362549 0.283203 0.933594
+11 8 0 0.257324 0.207886 0
+11 8 1 0.257324 0.207886 0
+11 8 2 0.257324 0.207886 0
+11 8 3 0.257324 0.207886 0
+11 8 4 0.257324 0.207886 0
+11 8 5 0.257324 0.208008 0
+11 8 6 0.257568 0.208252 0
+11 8 7 0.259277 0.209473 0.0493774
+11 8 8 0.261719 0.210571 0.112854
+11 8 9 0.260498 0.208252 0.165161
+11 8 10 0.236816 0.190063 0.199829
+11 8 11 0.216919 0.177612 0.22644
+11 8 12 0.224609 0.18335 0.283691
+11 8 13 0.234741 0.190796 0.349854
+11 8 14 0.24707 0.199829 0.423096
+11 8 15 0.261963 0.210693 0.501465
+11 8 16 0.279785 0.223633 0.58252
+11 8 17 0.298584 0.237427 0.660156
+11 8 18 0.317139 0.251221 0.731934
+11 8 19 0.334473 0.26416 0.794434
+11 8 20 0.343506 0.270752 0.83252
+11 8 21 0.341309 0.268311 0.838867
+11 8 22 0.340332 0.267334 0.845703
+11 8 23 0.340576 0.267334 0.852539
+11 8 24 0.341553 0.267822 0.859375
+11 8 25 0.343018 0.268799 0.867676
+11 8 26 0.344971 0.270264 0.875977
+11 8 27 0.347412 0.271973 0.885742
+11 8 28 0.35083 0.274414 0.896973
+11 8 29 0.354492 0.277344 0.908691
+11 8 30 0.358398 0.280273 0.920898
+11 8 31 0.362793 0.283447 0.933594
+11 9 0 0.244751 0.21106 0
+11 9 1 0.244751 0.21106 0
+11 9 2 0.244751 0.21106 0
+11 9 3 0.244751 0.21106 0
+11 9 4 0.244751 0.21106 0
+11 9 5 0.244751 0.21106 0
+11 9 6 0.244629 0.211182 0
+11 9 7 0.246338 0.212402 0.0648804
+11 9 8 0.249878 0.214722 0.111084
+11 9 9 0.256104 0.218506 0.160889
+11 9 10 0.245483 0.20813 0.205322
+11 9 11 0.217773 0.187134 0.226685
+11 9 12 0.225464 0.192627 0.283691
+11 9 13 0.235474 0.199707 0.349854
+11 9 14 0.247803 0.208008 0.42334
+11 9 15 0.262695 0.218018 0.501465
+11 9 16 0.280273 0.22998 0.58252
+11 9 17 0.299072 0.242798 0.660645
+11 9 18 0.317627 0.255859 0.731934
+11 9 19 0.334961 0.268066 0.794922
+11 9 20 0.343994 0.273926 0.833008
+11 9 21 0.341553 0.270996 0.839355
+11 9 22 0.34082 0.269531 0.845703
+11 9 23 0.34082 0.269043 0.853027
+11 9 24 0.341797 0.269287 0.859863
+11 9 25 0.343018 0.27002 0.867676
+11 9 26 0.345215 0.27124 0.876465
+11 9 27 0.347656 0.273193 0.88623
+11 9 28 0.35083 0.275391 0.896973
+11 9 29 0.354492 0.278076 0.908691
+11 9 30 0.358643 0.281006 0.921387
+11 9 31 0.362793 0.28418 0.933594
+11 10 0 0.229492 0.214966 0.0745239
+11 10 1 0.229492 0.214966 0.0745239
+11 10 2 0.229492 0.214966 0.0745239
+11 10 3 0.229492 0.215088 0.0745239
+11 10 4 0.229492 0.215088 0.074585
+11 10 5 0.229492 0.215088 0.074707
+11 10 6 0.229492 0.21521 0.0748291
+11 10 7 0.229614 0.21521 0.0894775
+11 10 8 0.230103 0.215454 0.115967
+11 10 9 0.233154 0.217529 0.151001
+11 10 10 0.245483 0.227173 0.202637
+11 10 11 0.219604 0.203003 0.226929
+11 10 12 0.227051 0.208008 0.283936
+11 10 13 0.236938 0.214355 0.349854
+11 10 14 0.249146 0.221802 0.42334
+11 10 15 0.263916 0.230469 0.501465
+11 10 16 0.281494 0.240967 0.58252
+11 10 17 0.300049 0.252197 0.660645
+11 10 18 0.318359 0.263672 0.732422
+11 10 19 0.335693 0.274658 0.794922
+11 10 20 0.344971 0.279785 0.833984
+11 10 21 0.342285 0.275879 0.839844
+11 10 22 0.341309 0.273438 0.84668
+11 10 23 0.341309 0.272461 0.853516
+11 10 24 0.342041 0.272217 0.860352
+11 10 25 0.343506 0.272705 0.868164
+11 10 26 0.345459 0.273438 0.876953
+11 10 27 0.3479 0.274902 0.88623
+11 10 28 0.351074 0.2771 0.897461
+11 10 29 0.354736 0.279297 0.90918
+11 10 30 0.358643 0.282227 0.921387
+11 10 31 0.363037 0.285156 0.934082
+11 11 0 0.23584 0.244141 0.0980225
+11 11 1 0.23584 0.244141 0.0980225
+11 11 2 0.23584 0.244141 0.0980225
+11 11 3 0.23584 0.244141 0.0980225
+11 11 4 0.23584 0.244141 0.0980835
+11 11 5 0.235962 0.244263 0.0980835
+11 11 6 0.235962 0.244385 0.0981445
+11 11 7 0.235962 0.244263 0.103455
+11 11 8 0.234863 0.242798 0.126099
+11 11 9 0.232788 0.240112 0.15564
+11 11 10 0.229248 0.235352 0.190552
+11 11 11 0.2229 0.227051 0.227783
+11 11 12 0.229858 0.231323 0.28418
+11 11 13 0.23938 0.236816 0.350098
+11 11 14 0.251465 0.243042 0.423584
+11 11 15 0.266113 0.25 0.501953
+11 11 16 0.283447 0.258545 0.583008
+11 11 17 0.301758 0.267578 0.661133
+11 11 18 0.319824 0.276855 0.73291
+11 11 19 0.336914 0.285889 0.795898
+11 11 20 0.346436 0.289551 0.835449
+11 11 21 0.343506 0.283691 0.841309
+11 11 22 0.342285 0.280273 0.847656
+11 11 23 0.342285 0.27832 0.854492
+11 11 24 0.342773 0.277344 0.861328
+11 11 25 0.344238 0.276855 0.868652
+11 11 26 0.345947 0.277344 0.877441
+11 11 27 0.348389 0.278076 0.887207
+11 11 28 0.351562 0.279785 0.897949
+11 11 29 0.355225 0.281738 0.909668
+11 11 30 0.359131 0.28418 0.921875
+11 11 31 0.363281 0.286865 0.93457
+11 12 0 0.232666 0.27124 0.105835
+11 12 1 0.232666 0.27124 0.105835
+11 12 2 0.232666 0.27124 0.105835
+11 12 3 0.232788 0.27124 0.105835
+11 12 4 0.232788 0.27124 0.105896
+11 12 5 0.232788 0.27124 0.105896
+11 12 6 0.232788 0.271484 0.105896
+11 12 7 0.23291 0.271484 0.105957
+11 12 8 0.2323 0.270508 0.123535
+11 12 9 0.230713 0.267822 0.1521
+11 12 10 0.228394 0.263672 0.186646
+11 12 11 0.228516 0.26123 0.22937
+11 12 12 0.234619 0.264404 0.284912
+11 12 13 0.243652 0.268799 0.350342
+11 12 14 0.255371 0.273682 0.423828
+11 12 15 0.269531 0.278809 0.502441
+11 12 16 0.286621 0.284668 0.583984
+11 12 17 0.304443 0.291016 0.662109
+11 12 18 0.322266 0.297363 0.733887
+11 12 19 0.338867 0.303711 0.796875
+11 12 20 0.348633 0.30542 0.837891
+11 12 21 0.345459 0.296875 0.843262
+11 12 22 0.343994 0.29126 0.849609
+11 12 23 0.34375 0.287598 0.855957
+11 12 24 0.343994 0.2854 0.862793
+11 12 25 0.345215 0.28418 0.870117
+11 12 26 0.346924 0.283447 0.878418
+11 12 27 0.349365 0.283691 0.888184
+11 12 28 0.352295 0.284424 0.898926
+11 12 29 0.355713 0.285889 0.910156
+11 12 30 0.359619 0.287842 0.922363
+11 12 31 0.36377 0.290039 0.935059
+11 13 0 0.232788 0.306641 0.116943
+11 13 1 0.232788 0.306641 0.116943
+11 13 2 0.232788 0.306641 0.116943
+11 13 3 0.232788 0.306641 0.116943
+11 13 4 0.232788 0.306641 0.116943
+11 13 5 0.232788 0.306641 0.116943
+11 13 6 0.23291 0.306885 0.117004
+11 13 7 0.23291 0.306885 0.117065
+11 13 8 0.233154 0.306885 0.122314
+11 13 9 0.233398 0.306396 0.150513
+11 13 10 0.234131 0.305664 0.186523
+11 13 11 0.236694 0.305908 0.231201
+11 13 12 0.241943 0.307861 0.286133
+11 13 13 0.250244 0.310791 0.35083
+11 13 14 0.26123 0.314209 0.423828
+11 13 15 0.275146 0.317627 0.502441
+11 13 16 0.291504 0.321045 0.584473
+11 13 17 0.308838 0.323975 0.663086
+11 13 18 0.326172 0.326904 0.734863
+11 13 19 0.342285 0.329834 0.79834
+11 13 20 0.352539 0.328857 0.841797
+11 13 21 0.348633 0.31665 0.84668
+11 13 22 0.34668 0.308105 0.852539
+11 13 23 0.345947 0.302246 0.858887
+11 13 24 0.346191 0.29834 0.865234
+11 13 25 0.347168 0.29541 0.872559
+11 13 26 0.348633 0.293457 0.880371
+11 13 27 0.350586 0.292236 0.889648
+11 13 28 0.353516 0.291992 0.900391
+11 13 29 0.356689 0.29248 0.911621
+11 13 30 0.360596 0.293457 0.923828
+11 13 31 0.364502 0.294922 0.936035
+11 14 0 0.242188 0.358154 0.134277
+11 14 1 0.242188 0.358154 0.134277
+11 14 2 0.242188 0.358154 0.134277
+11 14 3 0.242188 0.358154 0.134277
+11 14 4 0.242188 0.358154 0.134277
+11 14 5 0.242188 0.358154 0.134277
+11 14 6 0.242188 0.358154 0.134277
+11 14 7 0.24231 0.358154 0.134399
+11 14 8 0.242554 0.358398 0.134399
+11 14 9 0.243164 0.358643 0.152222
+11 14 10 0.244751 0.358887 0.187866
+11 14 11 0.247559 0.359375 0.232544
+11 14 12 0.252197 0.36084 0.286865
+11 14 13 0.259521 0.362793 0.35083
+11 14 14 0.27002 0.36499 0.42334
+11 14 15 0.283203 0.366455 0.502441
+11 14 16 0.298828 0.367676 0.584961
+11 14 17 0.31543 0.367432 0.664062
+11 14 18 0.331787 0.366699 0.736816
+11 14 19 0.347412 0.365723 0.799805
+11 14 20 0.358398 0.362305 0.847168
+11 14 21 0.35376 0.345459 0.852051
+11 14 22 0.351074 0.333008 0.857422
+11 14 23 0.349854 0.323975 0.863281
+11 14 24 0.349609 0.317627 0.869141
+11 14 25 0.350098 0.312256 0.875977
+11 14 26 0.351074 0.30835 0.883789
+11 14 27 0.352783 0.30542 0.892578
+11 14 28 0.355469 0.303467 0.902832
+11 14 29 0.358398 0.30249 0.914062
+11 14 30 0.362061 0.302246 0.925293
+11 14 31 0.365723 0.30249 0.9375
+11 15 0 0.255615 0.41748 0.154785
+11 15 1 0.255615 0.41748 0.154785
+11 15 2 0.255615 0.41748 0.154785
+11 15 3 0.255615 0.41748 0.154785
+11 15 4 0.255615 0.41748 0.154907
+11 15 5 0.255615 0.41748 0.154907
+11 15 6 0.255859 0.417725 0.154907
+11 15 7 0.255859 0.417725 0.154907
+11 15 8 0.256104 0.417725 0.154907
+11 15 9 0.256348 0.418213 0.155029
+11 15 10 0.258057 0.418701 0.188965
+11 15 11 0.260742 0.419434 0.232666
+11 15 12 0.265137 0.420654 0.286133
+11 15 13 0.271973 0.422119 0.349365
+11 15 14 0.281494 0.423584 0.421631
+11 15 15 0.293945 0.424316 0.500977
+11 15 16 0.308838 0.423828 0.584473
+11 15 17 0.324463 0.420898 0.664551
+11 15 18 0.340088 0.416748 0.737793
+11 15 19 0.354736 0.411865 0.802246
+11 15 20 0.366699 0.40625 0.854004
+11 15 21 0.361328 0.384033 0.859863
+11 15 22 0.35791 0.366943 0.864746
+11 15 23 0.355713 0.354248 0.870117
+11 15 24 0.354736 0.344482 0.875488
+11 15 25 0.354736 0.336426 0.881836
+11 15 26 0.355225 0.32959 0.88916
+11 15 27 0.356445 0.324219 0.897461
+11 15 28 0.358643 0.320068 0.906738
+11 15 29 0.361084 0.317139 0.91748
+11 15 30 0.364258 0.315186 0.928711
+11 15 31 0.367676 0.313965 0.939941
+11 16 0 0.272217 0.481934 0.177368
+11 16 1 0.272217 0.481934 0.177368
+11 16 2 0.272217 0.481934 0.177368
+11 16 3 0.272217 0.481934 0.177368
+11 16 4 0.272217 0.481934 0.177368
+11 16 5 0.272217 0.481934 0.177368
+11 16 6 0.272461 0.481934 0.177368
+11 16 7 0.272461 0.481934 0.177368
+11 16 8 0.272705 0.481934 0.17749
+11 16 9 0.272949 0.482178 0.17749
+11 16 10 0.273926 0.482666 0.189819
+11 16 11 0.276367 0.483643 0.231812
+11 16 12 0.280518 0.485107 0.283936
+11 16 13 0.286865 0.486572 0.346191
+11 16 14 0.295654 0.488281 0.417969
+11 16 15 0.307373 0.48877 0.497314
+11 16 16 0.321289 0.487305 0.581543
+11 16 17 0.336182 0.482666 0.663086
+11 16 18 0.35083 0.47583 0.738281
+11 16 19 0.364502 0.467773 0.803711
+11 16 20 0.375977 0.45874 0.857422
+11 16 21 0.371826 0.43335 0.869629
+11 16 22 0.367676 0.411377 0.875488
+11 16 23 0.364746 0.394043 0.880859
+11 16 24 0.362793 0.380615 0.885742
+11 16 25 0.361816 0.368896 0.891113
+11 16 26 0.361328 0.358887 0.897461
+11 16 27 0.361816 0.350098 0.904785
+11 16 28 0.363281 0.343262 0.913574
+11 16 29 0.365234 0.337646 0.922852
+11 16 30 0.367676 0.333252 0.933105
+11 16 31 0.370605 0.329834 0.944336
+11 17 0 0.290527 0.546387 0.200073
+11 17 1 0.290527 0.546387 0.200073
+11 17 2 0.290527 0.546387 0.200073
+11 17 3 0.290771 0.546387 0.200073
+11 17 4 0.290771 0.546387 0.200073
+11 17 5 0.290771 0.546387 0.200073
+11 17 6 0.290771 0.546387 0.200073
+11 17 7 0.290771 0.546387 0.200073
+11 17 8 0.291016 0.546387 0.200195
+11 17 9 0.29126 0.546387 0.200195
+11 17 10 0.291504 0.546875 0.200317
+11 17 11 0.293457 0.547852 0.230225
+11 17 12 0.297363 0.549316 0.280518
+11 17 13 0.303223 0.55127 0.34082
+11 17 14 0.311523 0.553223 0.411377
+11 17 15 0.322266 0.554199 0.490234
+11 17 16 0.335449 0.553223 0.574707
+11 17 17 0.349609 0.54834 0.658691
+11 17 18 0.363525 0.540039 0.73584
+11 17 19 0.376221 0.529785 0.803223
+11 17 20 0.386963 0.517578 0.858398
+11 17 21 0.385254 0.491455 0.880371
+11 17 22 0.380615 0.465088 0.88916
+11 17 23 0.376953 0.443604 0.89502
+11 17 24 0.374023 0.425781 0.899902
+11 17 25 0.371826 0.409912 0.904297
+11 17 26 0.370361 0.395752 0.909668
+11 17 27 0.369873 0.383545 0.915527
+11 17 28 0.370117 0.373047 0.922852
+11 17 29 0.371094 0.364014 0.931152
+11 17 30 0.372803 0.356689 0.94043
+11 17 31 0.375 0.350586 0.950195
+11 18 0 0.309082 0.606445 0.221558
+11 18 1 0.309082 0.606445 0.221558
+11 18 2 0.309082 0.606445 0.221558
+11 18 3 0.309082 0.606445 0.221558
+11 18 4 0.309082 0.606445 0.221558
+11 18 5 0.309326 0.606445 0.221558
+11 18 6 0.309326 0.606445 0.221558
+11 18 7 0.309326 0.606445 0.221558
+11 18 8 0.309326 0.606934 0.22168
+11 18 9 0.30957 0.606934 0.22168
+11 18 10 0.310059 0.606934 0.221802
+11 18 11 0.310791 0.607422 0.228027
+11 18 12 0.314209 0.609375 0.275635
+11 18 13 0.31958 0.611328 0.333496
+11 18 14 0.327148 0.614258 0.4021
+11 18 15 0.337402 0.616211 0.479736
+11 18 16 0.349854 0.616211 0.564453
+11 18 17 0.363525 0.612793 0.649414
+11 18 18 0.377197 0.60498 0.729492
+11 18 19 0.38916 0.59375 0.799316
+11 18 20 0.39917 0.57959 0.857422
+11 18 21 0.400146 0.554688 0.88916
+11 18 22 0.396484 0.525879 0.904297
+11 18 23 0.392334 0.500488 0.912598
+11 18 24 0.388428 0.47876 0.917969
+11 18 25 0.385254 0.45874 0.921875
+11 18 26 0.382324 0.440186 0.925781
+11 18 27 0.380371 0.423584 0.930664
+11 18 28 0.379395 0.408936 0.936035
+11 18 29 0.37915 0.39624 0.942871
+11 18 30 0.379639 0.385254 0.950195
+11 18 31 0.380615 0.375977 0.958496
+11 19 0 0.326904 0.661133 0.240967
+11 19 1 0.326904 0.661133 0.240967
+11 19 2 0.326904 0.661133 0.240967
+11 19 3 0.326904 0.661133 0.240967
+11 19 4 0.326904 0.661133 0.240967
+11 19 5 0.326904 0.661133 0.240967
+11 19 6 0.326904 0.661133 0.240967
+11 19 7 0.326904 0.661133 0.241089
+11 19 8 0.327148 0.661133 0.241089
+11 19 9 0.327148 0.661133 0.241089
+11 19 10 0.327637 0.661621 0.241211
+11 19 11 0.328125 0.661621 0.241211
+11 19 12 0.330566 0.663086 0.270264
+11 19 13 0.335205 0.665527 0.325439
+11 19 14 0.342041 0.668457 0.391357
+11 19 15 0.351562 0.671387 0.467041
+11 19 16 0.363525 0.67334 0.550781
+11 19 17 0.376953 0.671387 0.63623
+11 19 18 0.390137 0.665527 0.718262
+11 19 19 0.401855 0.654785 0.791504
+11 19 20 0.411377 0.640137 0.852051
+11 19 21 0.415283 0.617676 0.894043
+11 19 22 0.413574 0.589844 0.917969
+11 19 23 0.409668 0.562012 0.930664
+11 19 24 0.405518 0.537109 0.9375
+11 19 25 0.401123 0.513184 0.942383
+11 19 26 0.396973 0.490234 0.945801
+11 19 27 0.393555 0.468994 0.94873
+11 19 28 0.390869 0.449951 0.952637
+11 19 29 0.38916 0.433105 0.957031
+11 19 30 0.388184 0.418213 0.962891
+11 19 31 0.387939 0.405273 0.969238
+11 20 0 0.343018 0.708496 0.257812
+11 20 1 0.343018 0.708496 0.257812
+11 20 2 0.343018 0.708496 0.257812
+11 20 3 0.343018 0.708496 0.257812
+11 20 4 0.343018 0.708496 0.257812
+11 20 5 0.343018 0.708496 0.257812
+11 20 6 0.343018 0.708496 0.257812
+11 20 7 0.343018 0.708496 0.257812
+11 20 8 0.343018 0.708496 0.258057
+11 20 9 0.343262 0.708496 0.258057
+11 20 10 0.343506 0.708496 0.258057
+11 20 11 0.343994 0.708984 0.258057
+11 20 12 0.344971 0.709473 0.265137
+11 20 13 0.349365 0.711914 0.317383
+11 20 14 0.355713 0.715332 0.380371
+11 20 15 0.364502 0.719238 0.453369
+11 20 16 0.375732 0.722168 0.535156
+11 20 17 0.388428 0.722656 0.620605
+11 20 18 0.401611 0.718262 0.703613
+11 20 19 0.41333 0.709473 0.778809
+11 20 20 0.422607 0.695801 0.842285
+11 20 21 0.428711 0.676758 0.892578
+11 20 22 0.429688 0.651367 0.925781
+11 20 23 0.427246 0.624023 0.945312
+11 20 24 0.423096 0.59668 0.956055
+11 20 25 0.418213 0.569824 0.962402
+11 20 26 0.413086 0.542969 0.966309
+11 20 27 0.408203 0.517578 0.96875
+11 20 28 0.404053 0.494385 0.971191
+11 20 29 0.400635 0.473145 0.974121
+11 20 30 0.398193 0.454102 0.977539
+11 20 31 0.396729 0.4375 0.981934
+11 21 0 0.356934 0.748535 0.272217
+11 21 1 0.356934 0.748535 0.272217
+11 21 2 0.356934 0.748535 0.272217
+11 21 3 0.356934 0.748535 0.272217
+11 21 4 0.356934 0.748535 0.272217
+11 21 5 0.356934 0.748535 0.272217
+11 21 6 0.356934 0.748535 0.272217
+11 21 7 0.356934 0.748535 0.272217
+11 21 8 0.356934 0.748535 0.272217
+11 21 9 0.357178 0.748535 0.272461
+11 21 10 0.357422 0.748535 0.272461
+11 21 11 0.357666 0.749023 0.272461
+11 21 12 0.358398 0.749023 0.272705
+11 21 13 0.361572 0.751465 0.308838
+11 21 14 0.367188 0.754883 0.368652
+11 21 15 0.375488 0.759277 0.438721
+11 21 16 0.385986 0.763184 0.518066
+11 21 17 0.398193 0.765625 0.602051
+11 21 18 0.411133 0.763672 0.685059
+11 21 19 0.422852 0.756836 0.761719
+11 21 20 0.432617 0.745605 0.828125
+11 21 21 0.439941 0.729004 0.883789
+11 21 22 0.443604 0.708008 0.925781
+11 21 23 0.443115 0.682617 0.953125
+11 21 24 0.439941 0.655762 0.969238
+11 21 25 0.435303 0.626953 0.979492
+11 21 26 0.429688 0.597656 0.985352
+11 21 27 0.424072 0.568848 0.98877
+11 21 28 0.418457 0.541504 0.990723
+11 21 29 0.413818 0.516113 0.992188
+11 21 30 0.409912 0.49292 0.993652
+11 21 31 0.406738 0.472168 0.996582
+11 22 0 0.368652 0.781738 0.28418
+11 22 1 0.368652 0.781738 0.28418
+11 22 2 0.368652 0.781738 0.28418
+11 22 3 0.368652 0.781738 0.28418
+11 22 4 0.368652 0.781738 0.28418
+11 22 5 0.368652 0.781738 0.28418
+11 22 6 0.368652 0.781738 0.28418
+11 22 7 0.368652 0.781738 0.28418
+11 22 8 0.368652 0.781738 0.284424
+11 22 9 0.368896 0.782227 0.284424
+11 22 10 0.369141 0.782227 0.284424
+11 22 11 0.369385 0.782227 0.284424
+11 22 12 0.369873 0.782227 0.284424
+11 22 13 0.371826 0.783691 0.300293
+11 22 14 0.376953 0.787109 0.356934
+11 22 15 0.384521 0.791992 0.423828
+11 22 16 0.394287 0.796875 0.5
+11 22 17 0.406006 0.800781 0.582031
+11 22 18 0.418701 0.80127 0.664062
+11 22 19 0.43042 0.796875 0.741699
+11 22 20 0.44043 0.788086 0.810059
+11 22 21 0.448242 0.773926 0.868652
+11 22 22 0.453613 0.755859 0.916992
+11 22 23 0.455566 0.733887 0.95166
+11 22 24 0.454346 0.709473 0.974609
+11 22 25 0.450684 0.681152 0.990234
+11 22 26 0.445557 0.650391 1
+11 22 27 0.439453 0.619629 1
+11 22 28 0.43335 0.588867 1
+11 22 29 0.42749 0.560059 1
+11 22 30 0.422119 0.533203 1
+11 22 31 0.417725 0.508789 1
+11 23 0 0.378174 0.808594 0.293945
+11 23 1 0.378174 0.808594 0.293945
+11 23 2 0.378174 0.808594 0.293945
+11 23 3 0.378174 0.808594 0.293945
+11 23 4 0.378174 0.808594 0.293945
+11 23 5 0.378174 0.808594 0.293945
+11 23 6 0.378174 0.808594 0.293945
+11 23 7 0.378174 0.808594 0.293945
+11 23 8 0.378174 0.808594 0.293945
+11 23 9 0.378174 0.808594 0.293945
+11 23 10 0.378418 0.808594 0.293945
+11 23 11 0.378662 0.808594 0.293945
+11 23 12 0.37915 0.809082 0.293945
+11 23 13 0.380127 0.809082 0.294189
+11 23 14 0.384766 0.812988 0.345947
+11 23 15 0.391602 0.817871 0.409424
+11 23 16 0.400635 0.823242 0.482666
+11 23 17 0.411865 0.828125 0.562012
+11 23 18 0.424072 0.830566 0.642578
+11 23 19 0.436035 0.828613 0.720215
+11 23 20 0.446289 0.822266 0.789551
+11 23 21 0.45459 0.810547 0.850586
+11 23 22 0.460449 0.794922 0.901855
+11 23 23 0.464111 0.776367 0.941895
+11 23 24 0.465088 0.754883 0.97168
+11 23 25 0.463135 0.729004 0.994141
+11 23 26 0.459229 0.69873 1
+11 23 27 0.453369 0.666992 1
+11 23 28 0.447021 0.634277 1
+11 23 29 0.44043 0.603027 1
+11 23 30 0.434082 0.572754 1
+11 23 31 0.428467 0.544922 1
+11 24 0 0.385742 0.830078 0.301514
+11 24 1 0.385742 0.830078 0.301514
+11 24 2 0.385742 0.830078 0.301514
+11 24 3 0.385742 0.830078 0.301514
+11 24 4 0.385742 0.830078 0.301514
+11 24 5 0.385742 0.830078 0.301514
+11 24 6 0.385742 0.830078 0.301514
+11 24 7 0.385742 0.830078 0.301514
+11 24 8 0.385742 0.830078 0.301514
+11 24 9 0.385742 0.830078 0.301514
+11 24 10 0.385986 0.830078 0.301514
+11 24 11 0.38623 0.830078 0.301514
+11 24 12 0.386719 0.830078 0.301758
+11 24 13 0.387451 0.830566 0.301758
+11 24 14 0.390625 0.833008 0.335449
+11 24 15 0.396973 0.837891 0.395996
+11 24 16 0.405518 0.84375 0.466064
+11 24 17 0.41626 0.849609 0.54248
+11 24 18 0.427979 0.853516 0.621582
+11 24 19 0.439697 0.853516 0.697754
+11 24 20 0.450195 0.849609 0.768066
+11 24 21 0.458984 0.84082 0.830566
+11 24 22 0.465576 0.827148 0.884277
+11 24 23 0.469971 0.811035 0.927734
+11 24 24 0.472412 0.79248 0.961914
+11 24 25 0.472656 0.769531 0.990234
+11 24 26 0.469971 0.741211 1
+11 24 27 0.465332 0.709961 1
+11 24 28 0.459229 0.676758 1
+11 24 29 0.452393 0.643066 1
+11 24 30 0.445557 0.61084 1
+11 24 31 0.438965 0.580078 1
+11 25 0 0.392334 0.848633 0.30835
+11 25 1 0.392334 0.848633 0.30835
+11 25 2 0.392334 0.848633 0.30835
+11 25 3 0.392334 0.848633 0.30835
+11 25 4 0.392334 0.848633 0.30835
+11 25 5 0.392334 0.848633 0.30835
+11 25 6 0.392334 0.848633 0.30835
+11 25 7 0.392334 0.848633 0.30835
+11 25 8 0.392334 0.848633 0.30835
+11 25 9 0.392578 0.848633 0.30835
+11 25 10 0.392578 0.849121 0.30835
+11 25 11 0.392822 0.849121 0.30835
+11 25 12 0.393311 0.849121 0.30835
+11 25 13 0.393799 0.849121 0.308594
+11 25 14 0.395752 0.850586 0.324707
+11 25 15 0.401611 0.855469 0.38208
+11 25 16 0.409424 0.861328 0.44873
+11 25 17 0.419434 0.867676 0.521973
+11 25 18 0.430664 0.872559 0.598145
+11 25 19 0.442383 0.875 0.67334
+11 25 20 0.452881 0.873535 0.743164
+11 25 21 0.462158 0.867188 0.807129
+11 25 22 0.469482 0.856934 0.862793
+11 25 23 0.474609 0.842773 0.908691
+11 25 24 0.478027 0.82666 0.946289
+11 25 25 0.479736 0.806641 0.979492
+11 25 26 0.479004 0.781738 1
+11 25 27 0.47583 0.751953 1
+11 25 28 0.470459 0.719238 1
+11 25 29 0.463867 0.68457 1
+11 25 30 0.456787 0.650391 1
+11 25 31 0.449707 0.617188 1
+11 26 0 0.398438 0.865723 0.314453
+11 26 1 0.398438 0.865723 0.314453
+11 26 2 0.398438 0.865723 0.314453
+11 26 3 0.398438 0.865723 0.314453
+11 26 4 0.398438 0.865723 0.314453
+11 26 5 0.398438 0.865723 0.314453
+11 26 6 0.398438 0.865723 0.314453
+11 26 7 0.398438 0.865723 0.314453
+11 26 8 0.398438 0.865723 0.314453
+11 26 9 0.398438 0.865723 0.314453
+11 26 10 0.398682 0.865723 0.314453
+11 26 11 0.398682 0.865723 0.314453
+11 26 12 0.39917 0.866211 0.314453
+11 26 13 0.399658 0.866211 0.314697
+11 26 14 0.400391 0.866699 0.314697
+11 26 15 0.405518 0.871094 0.36792
+11 26 16 0.412842 0.876953 0.430908
+11 26 17 0.422119 0.883301 0.500977
+11 26 18 0.432617 0.88916 0.574219
+11 26 19 0.443848 0.893066 0.646973
+11 26 20 0.45459 0.893555 0.71582
+11 26 21 0.464111 0.890137 0.779785
+11 26 22 0.472168 0.882812 0.836914
+11 26 23 0.478027 0.87207 0.885254
+11 26 24 0.482178 0.85791 0.925781
+11 26 25 0.484863 0.840332 0.962402
+11 26 26 0.48584 0.818359 0.994629
+11 26 27 0.484375 0.791504 1
+11 26 28 0.480225 0.760254 1
+11 26 29 0.474365 0.726074 1
+11 26 30 0.467529 0.690918 1
+11 26 31 0.459961 0.655762 1
+11 27 0 0.403564 0.880859 0.319824
+11 27 1 0.403564 0.880859 0.319824
+11 27 2 0.403564 0.880859 0.319824
+11 27 3 0.403564 0.880859 0.319824
+11 27 4 0.403564 0.880859 0.319824
+11 27 5 0.403564 0.880859 0.319824
+11 27 6 0.403564 0.880859 0.319824
+11 27 7 0.403564 0.880859 0.319824
+11 27 8 0.403564 0.880859 0.319824
+11 27 9 0.403809 0.880859 0.319824
+11 27 10 0.403809 0.880859 0.319824
+11 27 11 0.404053 0.880859 0.319824
+11 27 12 0.404297 0.880859 0.319824
+11 27 13 0.404785 0.880859 0.319824
+11 27 14 0.405518 0.881348 0.320068
+11 27 15 0.408936 0.884277 0.353516
+11 27 16 0.415527 0.889648 0.413086
+11 27 17 0.424072 0.896484 0.479004
+11 27 18 0.433838 0.902832 0.548828
+11 27 19 0.44458 0.907715 0.619141
+11 27 20 0.455078 0.910645 0.686523
+11 27 21 0.464844 0.909668 0.75
+11 27 22 0.473389 0.905273 0.808105
+11 27 23 0.47998 0.897461 0.85791
+11 27 24 0.484863 0.88623 0.900879
+11 27 25 0.488525 0.871094 0.94043
+11 27 26 0.490479 0.852051 0.975586
+11 27 27 0.490479 0.828125 1
+11 27 28 0.488037 0.798828 1
+11 27 29 0.483154 0.766113 1
+11 27 30 0.476807 0.730957 1
+11 27 31 0.469727 0.694824 1
+11 28 0 0.407959 0.893066 0.324219
+11 28 1 0.407959 0.893066 0.324219
+11 28 2 0.407959 0.893066 0.324219
+11 28 3 0.407959 0.893066 0.324219
+11 28 4 0.407959 0.893066 0.324219
+11 28 5 0.407959 0.893066 0.324219
+11 28 6 0.407959 0.893066 0.324219
+11 28 7 0.407959 0.893066 0.324219
+11 28 8 0.407959 0.893066 0.324219
+11 28 9 0.407959 0.893066 0.324219
+11 28 10 0.407959 0.893066 0.324219
+11 28 11 0.408203 0.893066 0.324219
+11 28 12 0.408447 0.893066 0.324219
+11 28 13 0.408936 0.893066 0.324219
+11 28 14 0.409424 0.893555 0.324463
+11 28 15 0.411377 0.89502 0.339111
+11 28 16 0.41748 0.900391 0.39502
+11 28 17 0.425049 0.906738 0.457275
+11 28 18 0.434326 0.913574 0.523438
+11 28 19 0.444336 0.919434 0.590332
+11 28 20 0.45459 0.923828 0.655273
+11 28 21 0.464355 0.925293 0.717773
+11 28 22 0.473145 0.92334 0.775879
+11 28 23 0.480225 0.917969 0.82666
+11 28 24 0.48584 0.910156 0.871094
+11 28 25 0.490479 0.897949 0.913086
+11 28 26 0.493408 0.881348 0.95166
+11 28 27 0.494629 0.860352 0.98584
+11 28 28 0.493652 0.834473 1
+11 28 29 0.490234 0.803711 1
+11 28 30 0.485107 0.77002 1
+11 28 31 0.478516 0.734375 1
+11 29 0 0.411133 0.902344 0.327637
+11 29 1 0.411133 0.902344 0.327637
+11 29 2 0.411133 0.902344 0.327637
+11 29 3 0.411133 0.902344 0.327637
+11 29 4 0.411133 0.902344 0.327637
+11 29 5 0.411133 0.902344 0.327637
+11 29 6 0.411133 0.902344 0.327637
+11 29 7 0.411133 0.902344 0.327637
+11 29 8 0.411133 0.902344 0.327637
+11 29 9 0.411133 0.902344 0.327637
+11 29 10 0.411133 0.902344 0.327637
+11 29 11 0.411377 0.902344 0.327637
+11 29 12 0.411621 0.902344 0.327637
+11 29 13 0.411865 0.902832 0.327637
+11 29 14 0.412354 0.902832 0.327637
+11 29 15 0.413086 0.902832 0.327881
+11 29 16 0.418213 0.907715 0.376709
+11 29 17 0.425293 0.914062 0.435059
+11 29 18 0.433594 0.920898 0.497314
+11 29 19 0.443115 0.927734 0.561035
+11 29 20 0.452637 0.932617 0.623047
+11 29 21 0.462402 0.936035 0.683594
+11 29 22 0.471191 0.936523 0.740723
+11 29 23 0.47876 0.934082 0.791504
+11 29 24 0.485107 0.928711 0.836914
+11 29 25 0.490479 0.919922 0.880859
+11 29 26 0.494385 0.906738 0.921875
+11 29 27 0.496826 0.888672 0.959473
+11 29 28 0.49707 0.865723 0.992188
+11 29 29 0.495605 0.838379 1
+11 29 30 0.491943 0.807617 1
+11 29 31 0.486816 0.773438 1
+11 30 0 0.412842 0.908691 0.32959
+11 30 1 0.412842 0.908691 0.32959
+11 30 2 0.412842 0.908691 0.32959
+11 30 3 0.412842 0.908691 0.32959
+11 30 4 0.412842 0.908691 0.32959
+11 30 5 0.412842 0.908691 0.32959
+11 30 6 0.412842 0.908691 0.32959
+11 30 7 0.412842 0.908691 0.32959
+11 30 8 0.412842 0.908691 0.32959
+11 30 9 0.412842 0.908691 0.32959
+11 30 10 0.412842 0.908691 0.329834
+11 30 11 0.413086 0.908691 0.329834
+11 30 12 0.413086 0.908691 0.329834
+11 30 13 0.413574 0.908691 0.329834
+11 30 14 0.413818 0.908691 0.329834
+11 30 15 0.414551 0.90918 0.329834
+11 30 16 0.417969 0.912109 0.358398
+11 30 17 0.424072 0.917969 0.412598
+11 30 18 0.431885 0.924805 0.470947
+11 30 19 0.44043 0.931641 0.530762
+11 30 20 0.449707 0.937988 0.589844
+11 30 21 0.45874 0.942383 0.647949
+11 30 22 0.467529 0.944824 0.703125
+11 30 23 0.475342 0.944824 0.753418
+11 30 24 0.482178 0.941895 0.798828
+11 30 25 0.488037 0.936035 0.84375
+11 30 26 0.493164 0.92627 0.887207
+11 30 27 0.496826 0.912109 0.927734
+11 30 28 0.498779 0.893555 0.964844
+11 30 29 0.498779 0.870117 0.99707
+11 30 30 0.49707 0.842285 1
+11 30 31 0.493408 0.810547 1
+11 31 0 0.414062 0.913086 0.331299
+11 31 1 0.414062 0.913086 0.331299
+11 31 2 0.414062 0.913086 0.331299
+11 31 3 0.414062 0.913086 0.331299
+11 31 4 0.414062 0.913086 0.331299
+11 31 5 0.414062 0.913086 0.331299
+11 31 6 0.414062 0.913086 0.331299
+11 31 7 0.414062 0.913086 0.331299
+11 31 8 0.414062 0.913086 0.331299
+11 31 9 0.414062 0.913086 0.331299
+11 31 10 0.414062 0.913086 0.331299
+11 31 11 0.414307 0.913086 0.331299
+11 31 12 0.414307 0.913086 0.331299
+11 31 13 0.414551 0.913086 0.331299
+11 31 14 0.415039 0.913574 0.331543
+11 31 15 0.415527 0.913574 0.331543
+11 31 16 0.417236 0.914551 0.34082
+11 31 17 0.422607 0.919922 0.390869
+11 31 18 0.429443 0.92627 0.445068
+11 31 19 0.437256 0.933105 0.500977
+11 31 20 0.445557 0.939453 0.556641
+11 31 21 0.454102 0.944336 0.611328
+11 31 22 0.462646 0.948242 0.664551
+11 31 23 0.470459 0.950195 0.713379
+11 31 24 0.477539 0.949707 0.758301
+11 31 25 0.484131 0.947266 0.803223
+11 31 26 0.48999 0.940918 0.848145
+11 31 27 0.495117 0.931152 0.891602
+11 31 28 0.498535 0.916992 0.932617
+11 31 29 0.500488 0.897461 0.969238
+11 31 30 0.500488 0.873535 1
+11 31 31 0.498291 0.845215 1
+12 0 0 0.324951 0.239502 0
+12 0 1 0.324951 0.239502 0
+12 0 2 0.324951 0.239502 0
+12 0 3 0.324951 0.239502 0
+12 0 4 0.324951 0.239502 0
+12 0 5 0.324951 0.239624 0
+12 0 6 0.324951 0.239868 0
+12 0 7 0.326416 0.241089 0
+12 0 8 0.330811 0.244263 0.0753784
+12 0 9 0.333252 0.245239 0.155396
+12 0 10 0.325195 0.238403 0.215454
+12 0 11 0.2854 0.214722 0.245239
+12 0 12 0.271973 0.209229 0.284912
+12 0 13 0.279297 0.21521 0.350342
+12 0 14 0.288574 0.222534 0.423584
+12 0 15 0.299316 0.231201 0.501953
+12 0 16 0.3125 0.241699 0.583008
+12 0 17 0.326416 0.25293 0.661133
+12 0 18 0.34082 0.264404 0.73291
+12 0 19 0.354492 0.275391 0.795898
+12 0 20 0.361084 0.280762 0.835449
+12 0 21 0.355469 0.276611 0.841797
+12 0 22 0.352295 0.27417 0.848145
+12 0 23 0.35083 0.273193 0.85498
+12 0 24 0.350342 0.272949 0.861816
+12 0 25 0.350586 0.273193 0.869629
+12 0 26 0.351562 0.273926 0.87793
+12 0 27 0.353271 0.275391 0.887695
+12 0 28 0.355713 0.277344 0.898438
+12 0 29 0.358643 0.279785 0.910156
+12 0 30 0.362061 0.282471 0.922363
+12 0 31 0.365967 0.2854 0.93457
+12 1 0 0.324951 0.239502 0
+12 1 1 0.324951 0.239502 0
+12 1 2 0.324951 0.239624 0
+12 1 3 0.324951 0.239624 0
+12 1 4 0.324951 0.239624 0
+12 1 5 0.324951 0.239746 0
+12 1 6 0.324951 0.239868 0
+12 1 7 0.326416 0.241211 0
+12 1 8 0.330811 0.244385 0.0753784
+12 1 9 0.333252 0.245239 0.155396
+12 1 10 0.325195 0.238525 0.215454
+12 1 11 0.2854 0.214722 0.245361
+12 1 12 0.271973 0.209351 0.284912
+12 1 13 0.279297 0.21521 0.350342
+12 1 14 0.288574 0.222534 0.423584
+12 1 15 0.299316 0.231323 0.501953
+12 1 16 0.3125 0.241821 0.583008
+12 1 17 0.326416 0.25293 0.661133
+12 1 18 0.34082 0.264404 0.73291
+12 1 19 0.354492 0.275391 0.795898
+12 1 20 0.361084 0.280762 0.835449
+12 1 21 0.355469 0.276611 0.841797
+12 1 22 0.352295 0.27417 0.848145
+12 1 23 0.35083 0.273193 0.85498
+12 1 24 0.350342 0.272949 0.861816
+12 1 25 0.350586 0.273193 0.869629
+12 1 26 0.351562 0.273926 0.87793
+12 1 27 0.353271 0.275391 0.887695
+12 1 28 0.355713 0.277344 0.898438
+12 1 29 0.358643 0.279785 0.910156
+12 1 30 0.362061 0.282471 0.922363
+12 1 31 0.365967 0.2854 0.93457
+12 2 0 0.324951 0.239746 0
+12 2 1 0.324951 0.239746 0
+12 2 2 0.324951 0.239746 0
+12 2 3 0.324951 0.239746 0
+12 2 4 0.324951 0.239746 0
+12 2 5 0.324951 0.239868 0
+12 2 6 0.324951 0.23999 0
+12 2 7 0.326416 0.241333 0
+12 2 8 0.330811 0.244507 0.0753174
+12 2 9 0.333252 0.245361 0.155396
+12 2 10 0.325195 0.238647 0.215454
+12 2 11 0.2854 0.214844 0.245361
+12 2 12 0.271973 0.209473 0.284912
+12 2 13 0.279297 0.215332 0.350342
+12 2 14 0.288574 0.222656 0.423584
+12 2 15 0.299316 0.231323 0.501953
+12 2 16 0.3125 0.241821 0.583008
+12 2 17 0.326416 0.253174 0.661133
+12 2 18 0.34082 0.264404 0.73291
+12 2 19 0.354492 0.275391 0.795898
+12 2 20 0.361084 0.280762 0.835449
+12 2 21 0.355469 0.276611 0.841797
+12 2 22 0.352295 0.27417 0.848145
+12 2 23 0.35083 0.273193 0.85498
+12 2 24 0.350342 0.272949 0.861816
+12 2 25 0.350586 0.273193 0.869629
+12 2 26 0.351562 0.273926 0.87793
+12 2 27 0.353271 0.275391 0.887695
+12 2 28 0.355713 0.277344 0.898438
+12 2 29 0.358643 0.279785 0.910156
+12 2 30 0.362061 0.282471 0.922363
+12 2 31 0.365967 0.2854 0.93457
+12 3 0 0.324951 0.23999 0
+12 3 1 0.324951 0.23999 0
+12 3 2 0.324951 0.23999 0
+12 3 3 0.324951 0.23999 0
+12 3 4 0.324951 0.23999 0
+12 3 5 0.324951 0.240112 0
+12 3 6 0.324951 0.240234 0
+12 3 7 0.326416 0.241577 0
+12 3 8 0.330811 0.244751 0.0752563
+12 3 9 0.333252 0.245728 0.155273
+12 3 10 0.325195 0.238892 0.215454
+12 3 11 0.2854 0.215088 0.245361
+12 3 12 0.271973 0.209595 0.284912
+12 3 13 0.279297 0.215454 0.350342
+12 3 14 0.288574 0.222778 0.423584
+12 3 15 0.299316 0.231445 0.501953
+12 3 16 0.3125 0.241943 0.583008
+12 3 17 0.326416 0.253174 0.661133
+12 3 18 0.34082 0.264648 0.73291
+12 3 19 0.354492 0.275391 0.795898
+12 3 20 0.361084 0.280762 0.835449
+12 3 21 0.355469 0.276611 0.841797
+12 3 22 0.352295 0.274414 0.848145
+12 3 23 0.35083 0.273193 0.85498
+12 3 24 0.350342 0.272949 0.861816
+12 3 25 0.350586 0.273193 0.869629
+12 3 26 0.351562 0.273926 0.87793
+12 3 27 0.353271 0.275391 0.887695
+12 3 28 0.355713 0.277344 0.898438
+12 3 29 0.358643 0.279785 0.910156
+12 3 30 0.362061 0.282471 0.922363
+12 3 31 0.365967 0.2854 0.93457
+12 4 0 0.324951 0.240479 0
+12 4 1 0.324951 0.240479 0
+12 4 2 0.324951 0.240479 0
+12 4 3 0.324951 0.240479 0
+12 4 4 0.324951 0.240479 0
+12 4 5 0.324951 0.240601 0
+12 4 6 0.324951 0.240723 0
+12 4 7 0.326416 0.242065 0
+12 4 8 0.330811 0.245239 0.0751343
+12 4 9 0.333252 0.246216 0.155273
+12 4 10 0.325439 0.23938 0.215454
+12 4 11 0.285645 0.215576 0.245483
+12 4 12 0.271973 0.209839 0.284912
+12 4 13 0.279297 0.215698 0.350342
+12 4 14 0.288574 0.223022 0.423584
+12 4 15 0.299316 0.231689 0.501953
+12 4 16 0.3125 0.242188 0.583008
+12 4 17 0.326416 0.253418 0.661133
+12 4 18 0.34082 0.264648 0.73291
+12 4 19 0.354492 0.275635 0.795898
+12 4 20 0.361084 0.280762 0.835449
+12 4 21 0.355469 0.276855 0.841797
+12 4 22 0.352295 0.274414 0.848145
+12 4 23 0.35083 0.273193 0.85498
+12 4 24 0.350342 0.272949 0.861816
+12 4 25 0.350586 0.273193 0.869629
+12 4 26 0.351562 0.27417 0.87793
+12 4 27 0.353271 0.275391 0.887695
+12 4 28 0.355713 0.277344 0.898438
+12 4 29 0.358643 0.279785 0.910156
+12 4 30 0.362061 0.282471 0.922363
+12 4 31 0.365967 0.2854 0.93457
+12 5 0 0.324951 0.241333 0
+12 5 1 0.324951 0.241333 0
+12 5 2 0.324951 0.241333 0
+12 5 3 0.324951 0.241333 0
+12 5 4 0.324951 0.241455 0
+12 5 5 0.324951 0.241455 0
+12 5 6 0.324951 0.241699 0
+12 5 7 0.326416 0.24292 0
+12 5 8 0.331055 0.246216 0.0748901
+12 5 9 0.333496 0.24707 0.155029
+12 5 10 0.325684 0.240479 0.215454
+12 5 11 0.285889 0.216309 0.245728
+12 5 12 0.271973 0.210449 0.284912
+12 5 13 0.279297 0.216309 0.350342
+12 5 14 0.288574 0.223511 0.423584
+12 5 15 0.299561 0.232178 0.501953
+12 5 16 0.3125 0.242554 0.583008
+12 5 17 0.326416 0.253662 0.661133
+12 5 18 0.34082 0.265137 0.73291
+12 5 19 0.354492 0.275879 0.795898
+12 5 20 0.361084 0.281006 0.835449
+12 5 21 0.355469 0.276855 0.841797
+12 5 22 0.352295 0.274658 0.848145
+12 5 23 0.35083 0.273438 0.85498
+12 5 24 0.350342 0.273193 0.861816
+12 5 25 0.350586 0.273438 0.869629
+12 5 26 0.351562 0.27417 0.87793
+12 5 27 0.353271 0.275635 0.887695
+12 5 28 0.355713 0.277588 0.898438
+12 5 29 0.358887 0.279785 0.910156
+12 5 30 0.362305 0.282471 0.922363
+12 5 31 0.365967 0.2854 0.93457
+12 6 0 0.324707 0.243042 0
+12 6 1 0.324707 0.243042 0
+12 6 2 0.324707 0.243042 0
+12 6 3 0.324707 0.243042 0
+12 6 4 0.324707 0.243042 0
+12 6 5 0.324707 0.243164 0
+12 6 6 0.324707 0.243286 0
+12 6 7 0.326172 0.244507 0
+12 6 8 0.330811 0.248047 0.0745239
+12 6 9 0.333496 0.248901 0.154663
+12 6 10 0.325928 0.24231 0.215454
+12 6 11 0.286621 0.217896 0.246216
+12 6 12 0.271973 0.211548 0.284912
+12 6 13 0.279541 0.217285 0.350342
+12 6 14 0.288574 0.224487 0.423584
+12 6 15 0.299561 0.233032 0.501953
+12 6 16 0.3125 0.243408 0.583008
+12 6 17 0.32666 0.254395 0.661133
+12 6 18 0.34082 0.265625 0.73291
+12 6 19 0.354492 0.276367 0.795898
+12 6 20 0.361084 0.281494 0.835938
+12 6 21 0.355469 0.277344 0.841797
+12 6 22 0.352295 0.274902 0.848145
+12 6 23 0.35083 0.273682 0.85498
+12 6 24 0.350342 0.273193 0.861816
+12 6 25 0.350586 0.273438 0.869629
+12 6 26 0.351562 0.274414 0.87793
+12 6 27 0.353271 0.275635 0.887695
+12 6 28 0.355713 0.277588 0.898438
+12 6 29 0.358887 0.280029 0.910156
+12 6 30 0.362305 0.282715 0.922363
+12 6 31 0.365967 0.285645 0.93457
+12 7 0 0.324219 0.246094 0
+12 7 1 0.324219 0.246094 0
+12 7 2 0.324219 0.246094 0
+12 7 3 0.324219 0.246094 0
+12 7 4 0.324219 0.246094 0
+12 7 5 0.324219 0.246216 0
+12 7 6 0.324219 0.246338 0
+12 7 7 0.325684 0.247559 0
+12 7 8 0.330566 0.251221 0.0739746
+12 7 9 0.333252 0.251953 0.153931
+12 7 10 0.32666 0.245972 0.215332
+12 7 11 0.287842 0.221069 0.24707
+12 7 12 0.272217 0.213501 0.285156
+12 7 13 0.279541 0.219238 0.350342
+12 7 14 0.288818 0.22644 0.423584
+12 7 15 0.299805 0.234863 0.501953
+12 7 16 0.312744 0.244873 0.583496
+12 7 17 0.32666 0.255615 0.661621
+12 7 18 0.341064 0.266846 0.73291
+12 7 19 0.354736 0.277344 0.795898
+12 7 20 0.361328 0.282471 0.835938
+12 7 21 0.355713 0.278076 0.841797
+12 7 22 0.352539 0.275391 0.848145
+12 7 23 0.35083 0.27417 0.85498
+12 7 24 0.350342 0.273682 0.861816
+12 7 25 0.350586 0.273926 0.869629
+12 7 26 0.351562 0.274658 0.87793
+12 7 27 0.353271 0.275879 0.887695
+12 7 28 0.355713 0.277832 0.898438
+12 7 29 0.358887 0.280273 0.910156
+12 7 30 0.362305 0.282715 0.922363
+12 7 31 0.365967 0.285645 0.93457
+12 8 0 0.322754 0.251221 0
+12 8 1 0.322754 0.251221 0
+12 8 2 0.322754 0.251221 0
+12 8 3 0.322754 0.251221 0
+12 8 4 0.322754 0.251221 0
+12 8 5 0.322754 0.251221 0
+12 8 6 0.322754 0.251465 0
+12 8 7 0.323975 0.252441 0
+12 8 8 0.329346 0.256348 0.0738525
+12 8 9 0.332275 0.257568 0.152344
+12 8 10 0.327637 0.252441 0.214844
+12 8 11 0.290527 0.227173 0.248779
+12 8 12 0.272461 0.217529 0.285156
+12 8 13 0.280029 0.223145 0.350342
+12 8 14 0.289062 0.22998 0.423828
+12 8 15 0.300049 0.238159 0.501953
+12 8 16 0.312988 0.247803 0.583496
+12 8 17 0.326904 0.258301 0.661621
+12 8 18 0.341309 0.268799 0.73291
+12 8 19 0.354736 0.279053 0.795898
+12 8 20 0.361328 0.283936 0.835938
+12 8 21 0.355957 0.279297 0.841797
+12 8 22 0.352539 0.276611 0.848633
+12 8 23 0.351074 0.275146 0.85498
+12 8 24 0.350586 0.274658 0.861816
+12 8 25 0.35083 0.274658 0.869629
+12 8 26 0.351807 0.275146 0.878418
+12 8 27 0.353516 0.276367 0.887695
+12 8 28 0.355957 0.27832 0.898438
+12 8 29 0.358887 0.280518 0.910156
+12 8 30 0.362305 0.283203 0.922363
+12 8 31 0.365967 0.286133 0.93457
+12 9 0 0.317383 0.258057 0
+12 9 1 0.317383 0.258057 0
+12 9 2 0.317383 0.258057 0
+12 9 3 0.317383 0.258057 0
+12 9 4 0.317383 0.258057 0
+12 9 5 0.317383 0.258301 0
+12 9 6 0.317383 0.258301 0
+12 9 7 0.318115 0.259033 0
+12 9 8 0.32373 0.263184 0.0773315
+12 9 9 0.327393 0.265137 0.149658
+12 9 10 0.326172 0.262451 0.212524
+12 9 11 0.296143 0.23938 0.252686
+12 9 12 0.273193 0.224731 0.285156
+12 9 13 0.280518 0.230103 0.350586
+12 9 14 0.289795 0.236572 0.423828
+12 9 15 0.300537 0.244263 0.502441
+12 9 16 0.313477 0.253418 0.583496
+12 9 17 0.327393 0.262939 0.661621
+12 9 18 0.341553 0.272949 0.733398
+12 9 19 0.355225 0.282715 0.796387
+12 9 20 0.361816 0.287109 0.836426
+12 9 21 0.356201 0.281738 0.842285
+12 9 22 0.353027 0.278564 0.848633
+12 9 23 0.351318 0.276855 0.855469
+12 9 24 0.35083 0.276123 0.862305
+12 9 25 0.351074 0.275879 0.870117
+12 9 26 0.351807 0.276367 0.878418
+12 9 27 0.353516 0.277588 0.887695
+12 9 28 0.355957 0.279297 0.898926
+12 9 29 0.358887 0.28125 0.910156
+12 9 30 0.362305 0.283936 0.922363
+12 9 31 0.365967 0.286621 0.935059
+12 10 0 0.303711 0.263672 0
+12 10 1 0.303711 0.263672 0
+12 10 2 0.303711 0.263672 0
+12 10 3 0.303711 0.263672 0
+12 10 4 0.303711 0.263672 0
+12 10 5 0.303711 0.263916 0
+12 10 6 0.303711 0.263916 0
+12 10 7 0.303711 0.26416 0
+12 10 8 0.307617 0.26709 0.0918579
+12 10 9 0.3125 0.270264 0.146729
+12 10 10 0.320557 0.275146 0.207031
+12 10 11 0.307129 0.262207 0.259766
+12 10 12 0.274414 0.237061 0.285156
+12 10 13 0.281738 0.242065 0.350586
+12 10 14 0.290771 0.247925 0.423828
+12 10 15 0.301514 0.254883 0.502441
+12 10 16 0.314453 0.262939 0.583984
+12 10 17 0.328369 0.271484 0.662109
+12 10 18 0.342285 0.280273 0.733398
+12 10 19 0.355957 0.288818 0.796387
+12 10 20 0.362793 0.29248 0.837402
+12 10 21 0.356934 0.286377 0.843262
+12 10 22 0.353516 0.282471 0.849609
+12 10 23 0.351807 0.280029 0.855957
+12 10 24 0.351074 0.278809 0.862793
+12 10 25 0.351318 0.27832 0.870117
+12 10 26 0.352295 0.278564 0.878906
+12 10 27 0.35376 0.279297 0.888184
+12 10 28 0.356201 0.280762 0.898926
+12 10 29 0.359131 0.282715 0.910645
+12 10 30 0.362549 0.284912 0.922852
+12 10 31 0.366211 0.287598 0.935059
+12 11 0 0.287354 0.270264 0.0963135
+12 11 1 0.287354 0.270264 0.0963135
+12 11 2 0.287354 0.270264 0.0963135
+12 11 3 0.287354 0.270264 0.0963135
+12 11 4 0.287354 0.270264 0.0963745
+12 11 5 0.287354 0.270264 0.0964355
+12 11 6 0.287354 0.270264 0.0964966
+12 11 7 0.287354 0.270508 0.0967407
+12 11 8 0.287842 0.270996 0.117859
+12 11 9 0.289307 0.271729 0.151489
+12 11 10 0.292725 0.27417 0.194336
+12 11 11 0.307373 0.285645 0.256592
+12 11 12 0.276367 0.256348 0.285645
+12 11 13 0.283447 0.260986 0.350586
+12 11 14 0.29248 0.266113 0.424072
+12 11 15 0.303223 0.271729 0.502441
+12 11 16 0.316162 0.27832 0.583984
+12 11 17 0.329834 0.285156 0.662598
+12 11 18 0.34375 0.292236 0.734375
+12 11 19 0.356934 0.299316 0.796875
+12 11 20 0.364014 0.301758 0.838867
+12 11 21 0.35791 0.293945 0.844238
+12 11 22 0.354492 0.288818 0.850586
+12 11 23 0.352539 0.285645 0.856934
+12 11 24 0.351807 0.283691 0.86377
+12 11 25 0.352051 0.282471 0.871094
+12 11 26 0.352783 0.282227 0.879395
+12 11 27 0.354248 0.282471 0.888672
+12 11 28 0.356689 0.283447 0.899414
+12 11 29 0.359619 0.285156 0.911133
+12 11 30 0.362793 0.287109 0.922852
+12 11 31 0.366455 0.289307 0.935547
+12 12 0 0.293945 0.304199 0.122192
+12 12 1 0.293945 0.304199 0.122192
+12 12 2 0.293945 0.304199 0.122192
+12 12 3 0.293945 0.304199 0.122192
+12 12 4 0.293945 0.304199 0.122192
+12 12 5 0.293945 0.304199 0.122192
+12 12 6 0.293945 0.304443 0.122192
+12 12 7 0.294189 0.304443 0.122253
+12 12 8 0.293945 0.304443 0.132324
+12 12 9 0.293213 0.302979 0.161743
+12 12 10 0.29126 0.300293 0.198608
+12 12 11 0.287109 0.294678 0.241089
+12 12 12 0.280029 0.285156 0.286133
+12 12 13 0.286865 0.288818 0.351074
+12 12 14 0.295654 0.292969 0.424316
+12 12 15 0.306152 0.297363 0.50293
+12 12 16 0.318848 0.302002 0.584473
+12 12 17 0.332275 0.306641 0.663086
+12 12 18 0.345947 0.311279 0.734863
+12 12 19 0.358887 0.316162 0.797852
+12 12 20 0.366455 0.31665 0.841309
+12 12 21 0.359863 0.306396 0.846191
+12 12 22 0.355957 0.299316 0.852051
+12 12 23 0.354004 0.294678 0.858398
+12 12 24 0.353027 0.291748 0.864746
+12 12 25 0.353027 0.289551 0.87207
+12 12 26 0.35376 0.28833 0.880371
+12 12 27 0.355225 0.287842 0.889648
+12 12 28 0.357422 0.288086 0.900391
+12 12 29 0.360107 0.289062 0.911621
+12 12 30 0.363281 0.290527 0.923828
+12 12 31 0.366943 0.29248 0.936035
+12 13 0 0.288574 0.333984 0.130615
+12 13 1 0.288574 0.333984 0.130615
+12 13 2 0.288574 0.333984 0.130615
+12 13 3 0.288574 0.333984 0.130615
+12 13 4 0.288574 0.333984 0.130615
+12 13 5 0.288574 0.333984 0.130615
+12 13 6 0.288818 0.334229 0.130615
+12 13 7 0.288818 0.334229 0.130615
+12 13 8 0.289062 0.334473 0.130737
+12 13 9 0.28833 0.333252 0.157715
+12 13 10 0.287109 0.330811 0.193115
+12 13 11 0.285156 0.32666 0.235474
+12 13 12 0.285645 0.324463 0.287109
+12 13 13 0.291748 0.326904 0.351318
+12 13 14 0.300293 0.330078 0.424316
+12 13 15 0.310547 0.332764 0.503418
+12 13 16 0.322998 0.335449 0.585449
+12 13 17 0.336182 0.337402 0.664062
+12 13 18 0.349365 0.339111 0.736328
+12 13 19 0.362061 0.34082 0.799316
+12 13 20 0.370117 0.339355 0.844727
+12 13 21 0.363037 0.325684 0.849609
+12 13 22 0.358643 0.315674 0.85498
+12 13 23 0.356201 0.309082 0.86084
+12 13 24 0.355225 0.304199 0.867188
+12 13 25 0.354736 0.300537 0.874512
+12 13 26 0.355225 0.297852 0.882324
+12 13 27 0.356445 0.296143 0.891602
+12 13 28 0.358643 0.295654 0.901855
+12 13 29 0.361084 0.295654 0.913086
+12 13 30 0.364258 0.296143 0.924805
+12 13 31 0.367676 0.297363 0.937012
+12 14 0 0.288086 0.374023 0.143066
+12 14 1 0.288086 0.374023 0.143066
+12 14 2 0.288086 0.374023 0.143066
+12 14 3 0.288086 0.374023 0.143066
+12 14 4 0.288086 0.374023 0.143066
+12 14 5 0.288086 0.374268 0.143066
+12 14 6 0.288086 0.374268 0.143066
+12 14 7 0.28833 0.374268 0.143066
+12 14 8 0.28833 0.374512 0.143188
+12 14 9 0.288574 0.374512 0.15564
+12 14 10 0.289062 0.373779 0.190552
+12 14 11 0.290283 0.373291 0.234131
+12 14 12 0.293457 0.373535 0.287598
+12 14 13 0.299072 0.375488 0.351318
+12 14 14 0.306885 0.377197 0.423828
+12 14 15 0.317139 0.378662 0.50293
+12 14 16 0.329102 0.379395 0.585449
+12 14 17 0.341797 0.378662 0.665039
+12 14 18 0.354736 0.376953 0.737793
+12 14 19 0.366699 0.375244 0.80127
+12 14 20 0.375732 0.371582 0.850098
+12 14 21 0.36792 0.353271 0.854492
+12 14 22 0.363037 0.339844 0.859863
+12 14 23 0.360107 0.330078 0.865234
+12 14 24 0.358398 0.322998 0.871094
+12 14 25 0.357666 0.317139 0.87793
+12 14 26 0.35791 0.3125 0.885742
+12 14 27 0.358643 0.309082 0.894043
+12 14 28 0.360596 0.306885 0.904297
+12 14 29 0.362793 0.30542 0.915039
+12 14 30 0.365723 0.304932 0.926758
+12 14 31 0.368896 0.304932 0.938477
+12 15 0 0.295898 0.428467 0.161133
+12 15 1 0.295898 0.428467 0.161133
+12 15 2 0.295898 0.428467 0.161133
+12 15 3 0.295898 0.428467 0.161133
+12 15 4 0.295898 0.428467 0.161133
+12 15 5 0.295898 0.428467 0.161133
+12 15 6 0.295898 0.428467 0.161133
+12 15 7 0.296143 0.428467 0.161133
+12 15 8 0.296143 0.428711 0.161255
+12 15 9 0.296387 0.428955 0.161377
+12 15 10 0.297607 0.429199 0.190796
+12 15 11 0.299561 0.429688 0.233887
+12 15 12 0.302979 0.430664 0.287109
+12 15 13 0.30835 0.432129 0.349854
+12 15 14 0.315918 0.43335 0.422119
+12 15 15 0.325928 0.434082 0.501465
+12 15 16 0.337646 0.433105 0.584961
+12 15 17 0.349854 0.429932 0.665527
+12 15 18 0.362061 0.425293 0.73877
+12 15 19 0.373535 0.419922 0.803223
+12 15 20 0.383301 0.414062 0.855957
+12 15 21 0.375244 0.391113 0.861816
+12 15 22 0.369385 0.373047 0.866699
+12 15 23 0.365723 0.359619 0.87207
+12 15 24 0.363525 0.349365 0.877441
+12 15 25 0.362305 0.34082 0.883301
+12 15 26 0.361816 0.333496 0.890625
+12 15 27 0.362061 0.327637 0.898438
+12 15 28 0.363525 0.323242 0.908203
+12 15 29 0.365479 0.320068 0.918457
+12 15 30 0.36792 0.317627 0.929688
+12 15 31 0.37085 0.315918 0.940918
+12 16 0 0.307617 0.48999 0.182251
+12 16 1 0.307617 0.48999 0.182251
+12 16 2 0.307617 0.48999 0.182251
+12 16 3 0.307617 0.48999 0.182251
+12 16 4 0.307617 0.48999 0.182251
+12 16 5 0.307861 0.48999 0.182251
+12 16 6 0.307861 0.48999 0.182251
+12 16 7 0.307861 0.490234 0.182251
+12 16 8 0.307861 0.490234 0.182251
+12 16 9 0.308105 0.490479 0.182373
+12 16 10 0.308838 0.490723 0.191528
+12 16 11 0.311035 0.491699 0.233032
+12 16 12 0.314453 0.49292 0.284912
+12 16 13 0.31958 0.494385 0.34668
+12 16 14 0.327148 0.49585 0.418457
+12 16 15 0.33667 0.496338 0.497803
+12 16 16 0.348145 0.494629 0.582031
+12 16 17 0.360107 0.48999 0.664062
+12 16 18 0.371826 0.48291 0.73877
+12 16 19 0.382568 0.474365 0.804199
+12 16 20 0.391602 0.464844 0.858398
+12 16 21 0.385498 0.439453 0.871582
+12 16 22 0.378906 0.416748 0.877441
+12 16 23 0.374512 0.398926 0.882324
+12 16 24 0.371338 0.38501 0.887207
+12 16 25 0.369141 0.372803 0.892578
+12 16 26 0.36792 0.362305 0.898438
+12 16 27 0.367432 0.353271 0.905762
+12 16 28 0.368164 0.346191 0.914551
+12 16 29 0.369385 0.340332 0.923828
+12 16 30 0.371338 0.335449 0.934082
+12 16 31 0.373779 0.331787 0.945312
+12 17 0 0.321289 0.552734 0.203979
+12 17 1 0.321289 0.552734 0.203979
+12 17 2 0.321289 0.552734 0.203979
+12 17 3 0.321289 0.552734 0.203979
+12 17 4 0.321289 0.552734 0.203979
+12 17 5 0.321289 0.552734 0.203979
+12 17 6 0.321533 0.552734 0.203979
+12 17 7 0.321533 0.552734 0.203979
+12 17 8 0.321533 0.552734 0.203979
+12 17 9 0.321777 0.553223 0.204102
+12 17 10 0.322266 0.553223 0.204224
+12 17 11 0.32373 0.554199 0.231567
+12 17 12 0.327148 0.555664 0.281494
+12 17 13 0.332275 0.557617 0.341553
+12 17 14 0.339355 0.55957 0.411865
+12 17 15 0.348633 0.560547 0.490723
+12 17 16 0.359863 0.559082 0.575195
+12 17 17 0.371826 0.554199 0.65918
+12 17 18 0.383057 0.545898 0.736328
+12 17 19 0.393555 0.535156 0.803711
+12 17 20 0.401855 0.522949 0.859375
+12 17 21 0.398193 0.496582 0.881836
+12 17 22 0.391846 0.469727 0.890625
+12 17 23 0.386475 0.44751 0.896484
+12 17 24 0.382324 0.429688 0.900879
+12 17 25 0.37915 0.41333 0.905273
+12 17 26 0.376709 0.398926 0.910645
+12 17 27 0.375244 0.38623 0.916504
+12 17 28 0.374756 0.375488 0.923828
+12 17 29 0.375244 0.366455 0.932129
+12 17 30 0.376465 0.358887 0.941406
+12 17 31 0.378174 0.352295 0.950684
+12 18 0 0.335449 0.611816 0.224731
+12 18 1 0.335449 0.611816 0.224731
+12 18 2 0.335449 0.611816 0.224731
+12 18 3 0.335449 0.611816 0.224731
+12 18 4 0.335449 0.611816 0.224731
+12 18 5 0.335449 0.611816 0.224731
+12 18 6 0.335449 0.611816 0.224731
+12 18 7 0.335693 0.611816 0.224731
+12 18 8 0.335693 0.612305 0.224731
+12 18 9 0.335938 0.612305 0.224854
+12 18 10 0.336182 0.612305 0.224854
+12 18 11 0.336914 0.612793 0.229248
+12 18 12 0.340088 0.614258 0.276611
+12 18 13 0.344727 0.616699 0.334473
+12 18 14 0.351562 0.619141 0.402832
+12 18 15 0.360596 0.621094 0.480225
+12 18 16 0.371826 0.621094 0.564941
+12 18 17 0.383545 0.617676 0.649902
+12 18 18 0.39502 0.609375 0.72998
+12 18 19 0.405273 0.598145 0.799805
+12 18 20 0.41333 0.583984 0.85791
+12 18 21 0.412598 0.558594 0.890137
+12 18 22 0.407227 0.529785 0.905273
+12 18 23 0.401611 0.503906 0.913574
+12 18 24 0.396729 0.482178 0.918457
+12 18 25 0.392334 0.46167 0.922852
+12 18 26 0.388672 0.442871 0.926758
+12 18 27 0.385742 0.426025 0.931152
+12 18 28 0.384033 0.411133 0.937012
+12 18 29 0.383057 0.398438 0.943359
+12 18 30 0.383057 0.387207 0.950684
+12 18 31 0.383789 0.377686 0.958984
+12 19 0 0.349365 0.665527 0.243652
+12 19 1 0.349365 0.665527 0.243652
+12 19 2 0.349365 0.665527 0.243652
+12 19 3 0.349365 0.665527 0.243652
+12 19 4 0.349365 0.665527 0.243652
+12 19 5 0.349365 0.665527 0.243652
+12 19 6 0.349365 0.665527 0.243652
+12 19 7 0.349365 0.665527 0.243652
+12 19 8 0.349609 0.665527 0.243652
+12 19 9 0.349609 0.665527 0.243652
+12 19 10 0.349854 0.666016 0.243774
+12 19 11 0.350342 0.666016 0.243896
+12 19 12 0.352539 0.66748 0.27124
+12 19 13 0.356934 0.669922 0.326416
+12 19 14 0.363281 0.672852 0.39209
+12 19 15 0.37207 0.675781 0.467529
+12 19 16 0.382812 0.677246 0.55127
+12 19 17 0.394775 0.675293 0.636719
+12 19 18 0.406494 0.669434 0.71875
+12 19 19 0.416748 0.658203 0.791992
+12 19 20 0.424805 0.644043 0.852539
+12 19 21 0.427002 0.621094 0.894531
+12 19 22 0.423828 0.593262 0.918457
+12 19 23 0.418701 0.56543 0.931152
+12 19 24 0.41333 0.540039 0.937988
+12 19 25 0.407959 0.515625 0.942871
+12 19 26 0.403076 0.492432 0.946289
+12 19 27 0.398682 0.471191 0.949219
+12 19 28 0.395508 0.452148 0.953125
+12 19 29 0.393066 0.435059 0.95752
+12 19 30 0.391602 0.419922 0.963379
+12 19 31 0.391113 0.406738 0.969727
+12 20 0 0.362305 0.711914 0.26001
+12 20 1 0.362305 0.711914 0.26001
+12 20 2 0.362305 0.711914 0.26001
+12 20 3 0.362305 0.711914 0.26001
+12 20 4 0.362305 0.711914 0.26001
+12 20 5 0.362305 0.711914 0.26001
+12 20 6 0.362305 0.711914 0.26001
+12 20 7 0.362305 0.712402 0.26001
+12 20 8 0.362305 0.712402 0.26001
+12 20 9 0.362549 0.712402 0.260254
+12 20 10 0.362793 0.712402 0.260254
+12 20 11 0.363037 0.712402 0.260254
+12 20 12 0.364014 0.712891 0.266113
+12 20 13 0.368164 0.71582 0.318115
+12 20 14 0.374023 0.71875 0.381104
+12 20 15 0.382324 0.722656 0.453857
+12 20 16 0.392822 0.725586 0.535645
+12 20 17 0.404541 0.725586 0.621094
+12 20 18 0.416504 0.72168 0.704102
+12 20 19 0.427002 0.712402 0.778809
+12 20 20 0.435059 0.69873 0.842773
+12 20 21 0.439941 0.679688 0.893066
+12 20 22 0.439697 0.654297 0.92627
+12 20 23 0.436035 0.626465 0.945801
+12 20 24 0.430908 0.599121 0.956055
+12 20 25 0.425049 0.571777 0.962891
+12 20 26 0.418945 0.544922 0.966797
+12 20 27 0.41333 0.519531 0.969238
+12 20 28 0.408691 0.496094 0.97168
+12 20 29 0.404785 0.474854 0.974121
+12 20 30 0.401855 0.455811 0.978027
+12 20 31 0.399658 0.438721 0.982422
+12 21 0 0.373535 0.751953 0.27417
+12 21 1 0.373535 0.751953 0.27417
+12 21 2 0.373535 0.751953 0.27417
+12 21 3 0.373535 0.751953 0.27417
+12 21 4 0.373535 0.751953 0.27417
+12 21 5 0.373535 0.751953 0.27417
+12 21 6 0.373535 0.751953 0.27417
+12 21 7 0.373535 0.751953 0.27417
+12 21 8 0.373535 0.751953 0.27417
+12 21 9 0.373779 0.751953 0.27417
+12 21 10 0.373779 0.751953 0.27417
+12 21 11 0.374268 0.752441 0.274414
+12 21 12 0.374756 0.752441 0.274414
+12 21 13 0.377686 0.754395 0.30957
+12 21 14 0.383301 0.757812 0.369385
+12 21 15 0.390869 0.762207 0.439209
+12 21 16 0.400879 0.766113 0.518555
+12 21 17 0.412598 0.768555 0.602051
+12 21 18 0.424561 0.766602 0.685547
+12 21 19 0.435303 0.759766 0.762207
+12 21 20 0.443848 0.748047 0.828613
+12 21 21 0.450195 0.731934 0.884277
+12 21 22 0.452881 0.710449 0.92627
+12 21 23 0.451416 0.68457 0.953125
+12 21 24 0.44751 0.657715 0.969727
+12 21 25 0.441895 0.628906 0.979492
+12 21 26 0.435547 0.599121 0.98584
+12 21 27 0.429199 0.570312 0.98877
+12 21 28 0.423096 0.542969 0.990723
+12 21 29 0.417725 0.517578 0.992188
+12 21 30 0.41333 0.494385 0.994141
+12 21 31 0.409668 0.473633 0.996582
+12 22 0 0.383057 0.784668 0.285889
+12 22 1 0.383057 0.784668 0.285889
+12 22 2 0.383057 0.784668 0.285889
+12 22 3 0.383057 0.784668 0.285889
+12 22 4 0.383057 0.784668 0.285889
+12 22 5 0.383057 0.784668 0.285889
+12 22 6 0.383057 0.784668 0.285889
+12 22 7 0.383057 0.784668 0.285889
+12 22 8 0.383057 0.784668 0.285889
+12 22 9 0.383301 0.785156 0.285889
+12 22 10 0.383301 0.785156 0.285889
+12 22 11 0.383789 0.785156 0.286133
+12 22 12 0.384277 0.785156 0.286133
+12 22 13 0.385986 0.786621 0.301025
+12 22 14 0.390869 0.790039 0.357666
+12 22 15 0.398193 0.794434 0.424316
+12 22 16 0.407471 0.799316 0.500488
+12 22 17 0.418701 0.803223 0.582031
+12 22 18 0.430664 0.803711 0.664551
+12 22 19 0.44165 0.799316 0.742188
+12 22 20 0.450928 0.790039 0.810059
+12 22 21 0.458008 0.776367 0.869141
+12 22 22 0.462402 0.758301 0.91748
+12 22 23 0.463623 0.736328 0.952148
+12 22 24 0.46167 0.711426 0.975098
+12 22 25 0.457275 0.683105 0.990723
+12 22 26 0.451416 0.652344 1
+12 22 27 0.44458 0.621094 1
+12 22 28 0.437744 0.590332 1
+12 22 29 0.431152 0.561523 1
+12 22 30 0.425537 0.534668 1
+12 22 31 0.420654 0.509766 1
+12 23 0 0.390625 0.811035 0.295166
+12 23 1 0.390625 0.811035 0.295166
+12 23 2 0.390625 0.811035 0.295166
+12 23 3 0.390625 0.811035 0.295166
+12 23 4 0.390625 0.811035 0.295166
+12 23 5 0.390625 0.811035 0.295166
+12 23 6 0.390625 0.811035 0.295166
+12 23 7 0.390625 0.811035 0.29541
+12 23 8 0.390625 0.811035 0.29541
+12 23 9 0.390869 0.811035 0.29541
+12 23 10 0.390869 0.811523 0.29541
+12 23 11 0.391357 0.811523 0.29541
+12 23 12 0.391602 0.811523 0.29541
+12 23 13 0.392578 0.812012 0.295654
+12 23 14 0.396973 0.81543 0.346436
+12 23 15 0.403564 0.820312 0.410156
+12 23 16 0.412354 0.825684 0.483154
+12 23 17 0.42334 0.830078 0.5625
+12 23 18 0.435059 0.83252 0.643066
+12 23 19 0.446289 0.831055 0.720215
+12 23 20 0.455811 0.824219 0.790039
+12 23 21 0.463379 0.8125 0.851074
+12 23 22 0.46875 0.796875 0.902344
+12 23 23 0.47168 0.77832 0.942383
+12 23 24 0.471924 0.756836 0.972168
+12 23 25 0.469482 0.730469 0.994141
+12 23 26 0.464844 0.700684 1
+12 23 27 0.458496 0.668457 1
+12 23 28 0.451416 0.635742 1
+12 23 29 0.444336 0.604004 1
+12 23 30 0.4375 0.57373 1
+12 23 31 0.431396 0.545898 1
+12 24 0 0.396729 0.83252 0.302734
+12 24 1 0.396729 0.83252 0.302734
+12 24 2 0.396729 0.83252 0.302734
+12 24 3 0.396729 0.83252 0.302734
+12 24 4 0.396729 0.83252 0.302734
+12 24 5 0.396729 0.83252 0.302734
+12 24 6 0.396729 0.83252 0.302734
+12 24 7 0.396729 0.83252 0.302734
+12 24 8 0.396729 0.83252 0.302734
+12 24 9 0.396973 0.83252 0.302734
+12 24 10 0.396973 0.83252 0.302734
+12 24 11 0.397217 0.83252 0.302979
+12 24 12 0.397705 0.83252 0.302979
+12 24 13 0.398438 0.833008 0.302979
+12 24 14 0.401611 0.835449 0.335938
+12 24 15 0.407715 0.840332 0.396484
+12 24 16 0.416016 0.845703 0.466553
+12 24 17 0.42627 0.851562 0.542969
+12 24 18 0.437744 0.855469 0.621582
+12 24 19 0.448975 0.855469 0.698242
+12 24 20 0.458984 0.851562 0.768066
+12 24 21 0.467285 0.842285 0.831055
+12 24 22 0.473145 0.829102 0.884277
+12 24 23 0.477051 0.8125 0.927734
+12 24 24 0.479004 0.793945 0.962402
+12 24 25 0.478516 0.770996 0.990723
+12 24 26 0.475586 0.743164 1
+12 24 27 0.470215 0.711426 1
+12 24 28 0.463379 0.678223 1
+12 24 29 0.456055 0.644531 1
+12 24 30 0.44873 0.611816 1
+12 24 31 0.441895 0.581055 1
+12 25 0 0.4021 0.851074 0.309326
+12 25 1 0.4021 0.851074 0.309326
+12 25 2 0.4021 0.851074 0.309326
+12 25 3 0.4021 0.851074 0.309326
+12 25 4 0.4021 0.851074 0.309326
+12 25 5 0.4021 0.851074 0.309326
+12 25 6 0.4021 0.851074 0.309326
+12 25 7 0.4021 0.851074 0.309326
+12 25 8 0.4021 0.851074 0.309326
+12 25 9 0.402344 0.851074 0.309326
+12 25 10 0.402344 0.851074 0.30957
+12 25 11 0.402588 0.851074 0.30957
+12 25 12 0.402832 0.851074 0.30957
+12 25 13 0.403564 0.851562 0.30957
+12 25 14 0.405518 0.852539 0.325195
+12 25 15 0.411133 0.857422 0.382568
+12 25 16 0.418701 0.863281 0.449219
+12 25 17 0.428467 0.869629 0.522461
+12 25 18 0.439453 0.874512 0.598633
+12 25 19 0.450684 0.876465 0.673828
+12 25 20 0.460938 0.875 0.743652
+12 25 21 0.469727 0.868652 0.807129
+12 25 22 0.476562 0.858398 0.862793
+12 25 23 0.481201 0.844238 0.90918
+12 25 24 0.484131 0.828125 0.946777
+12 25 25 0.485352 0.808105 0.97998
+12 25 26 0.484375 0.783203 1
+12 25 27 0.480469 0.753418 1
+12 25 28 0.474609 0.720215 1
+12 25 29 0.467529 0.685547 1
+12 25 30 0.459961 0.651367 1
+12 25 31 0.452393 0.618164 1
+12 26 0 0.406982 0.867676 0.31543
+12 26 1 0.406982 0.867676 0.31543
+12 26 2 0.406982 0.867676 0.31543
+12 26 3 0.406982 0.867676 0.31543
+12 26 4 0.406982 0.867676 0.31543
+12 26 5 0.406982 0.867676 0.31543
+12 26 6 0.406982 0.867676 0.31543
+12 26 7 0.406982 0.867676 0.31543
+12 26 8 0.406982 0.867676 0.31543
+12 26 9 0.406982 0.867676 0.31543
+12 26 10 0.407227 0.867676 0.31543
+12 26 11 0.407227 0.867676 0.31543
+12 26 12 0.407715 0.867676 0.31543
+12 26 13 0.408203 0.868164 0.315674
+12 26 14 0.408936 0.868164 0.315674
+12 26 15 0.413818 0.872559 0.368164
+12 26 16 0.421143 0.878418 0.431396
+12 26 17 0.430176 0.884766 0.500977
+12 26 18 0.44043 0.890625 0.574219
+12 26 19 0.451416 0.894531 0.647461
+12 26 20 0.46167 0.89502 0.716309
+12 26 21 0.470947 0.891602 0.780273
+12 26 22 0.478516 0.884277 0.837402
+12 26 23 0.484131 0.873047 0.885742
+12 26 24 0.488037 0.859375 0.92627
+12 26 25 0.490234 0.841797 0.962891
+12 26 26 0.490723 0.819824 0.994629
+12 26 27 0.48877 0.792969 1
+12 26 28 0.484375 0.76123 1
+12 26 29 0.478027 0.727051 1
+12 26 30 0.470703 0.691895 1
+12 26 31 0.462891 0.656738 1
+12 27 0 0.411133 0.882324 0.320557
+12 27 1 0.411133 0.882324 0.320557
+12 27 2 0.411133 0.882324 0.320557
+12 27 3 0.411133 0.882324 0.320557
+12 27 4 0.411133 0.882324 0.320557
+12 27 5 0.411133 0.882324 0.320557
+12 27 6 0.411133 0.882324 0.320557
+12 27 7 0.411133 0.882324 0.320557
+12 27 8 0.411133 0.882324 0.320557
+12 27 9 0.411133 0.882324 0.320557
+12 27 10 0.411133 0.882324 0.320557
+12 27 11 0.411377 0.882324 0.320557
+12 27 12 0.411621 0.882324 0.320801
+12 27 13 0.412109 0.882812 0.320801
+12 27 14 0.412842 0.882812 0.320801
+12 27 15 0.41626 0.885742 0.354004
+12 27 16 0.422607 0.891602 0.41333
+12 27 17 0.430908 0.897949 0.479492
+12 27 18 0.440918 0.904297 0.549316
+12 27 19 0.451172 0.90918 0.619629
+12 27 20 0.461426 0.912109 0.686523
+12 27 21 0.470947 0.911133 0.750488
+12 27 22 0.479248 0.906738 0.808105
+12 27 23 0.485596 0.898438 0.858398
+12 27 24 0.490234 0.887207 0.900879
+12 27 25 0.493408 0.872559 0.94043
+12 27 26 0.495117 0.853027 0.976074
+12 27 27 0.494873 0.829102 1
+12 27 28 0.491943 0.800293 1
+12 27 29 0.486816 0.76709 1
+12 27 30 0.47998 0.731934 1
+12 27 31 0.472412 0.695801 1
+12 28 0 0.414307 0.894531 0.324951
+12 28 1 0.414307 0.894531 0.324951
+12 28 2 0.414307 0.894531 0.324951
+12 28 3 0.414307 0.894531 0.324951
+12 28 4 0.414307 0.894531 0.324951
+12 28 5 0.414307 0.894531 0.324951
+12 28 6 0.414307 0.894531 0.324951
+12 28 7 0.414307 0.894531 0.324951
+12 28 8 0.414307 0.894531 0.324951
+12 28 9 0.414551 0.894531 0.324951
+12 28 10 0.414551 0.894531 0.324951
+12 28 11 0.414551 0.894531 0.324951
+12 28 12 0.414795 0.894531 0.324951
+12 28 13 0.415283 0.894531 0.324951
+12 28 14 0.415771 0.89502 0.325195
+12 28 15 0.417725 0.896484 0.3396
+12 28 16 0.423584 0.901855 0.395264
+12 28 17 0.431152 0.908203 0.45752
+12 28 18 0.44043 0.915039 0.523438
+12 28 19 0.450195 0.920898 0.59082
+12 28 20 0.460205 0.924805 0.655762
+12 28 21 0.469727 0.92627 0.718262
+12 28 22 0.478271 0.924316 0.775879
+12 28 23 0.485352 0.919434 0.82666
+12 28 24 0.490723 0.911133 0.871094
+12 28 25 0.495117 0.898926 0.913086
+12 28 26 0.497803 0.882324 0.95166
+12 28 27 0.498535 0.861328 0.98584
+12 28 28 0.497314 0.834961 1
+12 28 29 0.493652 0.804688 1
+12 28 30 0.488037 0.770996 1
+12 28 31 0.481201 0.734863 1
+12 29 0 0.416504 0.903809 0.328125
+12 29 1 0.416504 0.903809 0.328125
+12 29 2 0.416504 0.903809 0.328125
+12 29 3 0.416504 0.903809 0.328125
+12 29 4 0.416504 0.903809 0.328125
+12 29 5 0.416504 0.903809 0.328125
+12 29 6 0.416504 0.903809 0.328125
+12 29 7 0.416748 0.903809 0.328125
+12 29 8 0.416748 0.903809 0.328125
+12 29 9 0.416748 0.903809 0.328125
+12 29 10 0.416748 0.903809 0.328125
+12 29 11 0.416992 0.903809 0.328125
+12 29 12 0.416992 0.903809 0.328369
+12 29 13 0.41748 0.903809 0.328369
+12 29 14 0.417969 0.904297 0.328369
+12 29 15 0.418701 0.904297 0.328369
+12 29 16 0.423828 0.90918 0.376953
+12 29 17 0.430664 0.915527 0.435303
+12 29 18 0.438965 0.922363 0.497559
+12 29 19 0.448242 0.928711 0.561035
+12 29 20 0.457764 0.934082 0.623535
+12 29 21 0.467285 0.937012 0.684082
+12 29 22 0.47583 0.9375 0.740723
+12 29 23 0.483398 0.935059 0.791504
+12 29 24 0.489502 0.929688 0.836914
+12 29 25 0.494629 0.920898 0.880859
+12 29 26 0.498291 0.907715 0.922363
+12 29 27 0.500488 0.889648 0.959961
+12 29 28 0.500488 0.866699 0.992188
+12 29 29 0.498535 0.839355 1
+12 29 30 0.494873 0.808105 1
+12 29 31 0.489258 0.773926 1
+12 30 0 0.41748 0.909668 0.330322
+12 30 1 0.41748 0.909668 0.330322
+12 30 2 0.41748 0.909668 0.330322
+12 30 3 0.41748 0.909668 0.330322
+12 30 4 0.417725 0.909668 0.330322
+12 30 5 0.417725 0.909668 0.330322
+12 30 6 0.417725 0.909668 0.330322
+12 30 7 0.417725 0.909668 0.330322
+12 30 8 0.417725 0.909668 0.330322
+12 30 9 0.417725 0.909668 0.330322
+12 30 10 0.417725 0.909668 0.330322
+12 30 11 0.417725 0.909668 0.330322
+12 30 12 0.417969 0.909668 0.330322
+12 30 13 0.418213 0.909668 0.330322
+12 30 14 0.418701 0.910156 0.330322
+12 30 15 0.419434 0.910156 0.330566
+12 30 16 0.422607 0.913086 0.358643
+12 30 17 0.428711 0.918945 0.412842
+12 30 18 0.436523 0.925781 0.471191
+12 30 19 0.445068 0.932617 0.53125
+12 30 20 0.454102 0.938477 0.590332
+12 30 21 0.463135 0.943359 0.647949
+12 30 22 0.471924 0.945801 0.703125
+12 30 23 0.479492 0.945312 0.753418
+12 30 24 0.486084 0.942871 0.798828
+12 30 25 0.491943 0.937012 0.84375
+12 30 26 0.496582 0.927246 0.887207
+12 30 27 0.5 0.913086 0.928223
+12 30 28 0.501953 0.894043 0.965332
+12 30 29 0.501953 0.870605 0.997559
+12 30 30 0.499756 0.842773 1
+12 30 31 0.49585 0.811035 1
+12 31 0 0.418213 0.914062 0.331787
+12 31 1 0.418213 0.914062 0.331787
+12 31 2 0.418213 0.914062 0.331787
+12 31 3 0.418213 0.914062 0.331787
+12 31 4 0.418213 0.914062 0.331787
+12 31 5 0.418213 0.914062 0.331787
+12 31 6 0.418213 0.914062 0.331787
+12 31 7 0.418213 0.914062 0.331787
+12 31 8 0.418213 0.914062 0.331787
+12 31 9 0.418213 0.914062 0.331787
+12 31 10 0.418213 0.914062 0.331787
+12 31 11 0.418213 0.914062 0.331787
+12 31 12 0.418457 0.914062 0.331787
+12 31 13 0.418701 0.914062 0.331787
+12 31 14 0.418945 0.914551 0.332031
+12 31 15 0.419678 0.914551 0.332031
+12 31 16 0.421143 0.915527 0.341064
+12 31 17 0.426514 0.920898 0.391113
+12 31 18 0.43335 0.927246 0.445312
+12 31 19 0.441162 0.934082 0.500977
+12 31 20 0.449463 0.939941 0.556641
+12 31 21 0.458008 0.945312 0.611328
+12 31 22 0.466309 0.949219 0.664551
+12 31 23 0.474121 0.951172 0.713379
+12 31 24 0.480957 0.950684 0.758301
+12 31 25 0.487305 0.947754 0.803711
+12 31 26 0.493164 0.941895 0.848633
+12 31 27 0.498047 0.932129 0.89209
+12 31 28 0.501465 0.91748 0.932617
+12 31 29 0.50293 0.897949 0.969727
+12 31 30 0.50293 0.874023 1
+12 31 31 0.500488 0.845703 1
+13 0 0 0.364014 0.268555 0
+13 0 1 0.364014 0.268555 0
+13 0 2 0.364014 0.268555 0
+13 0 3 0.364014 0.268555 0
+13 0 4 0.364014 0.268555 0
+13 0 5 0.364014 0.268555 0
+13 0 6 0.364014 0.268799 0
+13 0 7 0.364258 0.269043 0
+13 0 8 0.365967 0.270508 0
+13 0 9 0.370117 0.273193 0.105896
+13 0 10 0.374268 0.275391 0.185547
+13 0 11 0.371338 0.272949 0.253662
+13 0 12 0.341064 0.258057 0.296631
+13 0 13 0.335205 0.257812 0.351318
+13 0 14 0.341553 0.262939 0.424072
+13 0 15 0.348877 0.269043 0.50293
+13 0 16 0.357422 0.275879 0.584473
+13 0 17 0.366211 0.283203 0.663086
+13 0 18 0.375488 0.290771 0.734863
+13 0 19 0.384277 0.297852 0.797852
+13 0 20 0.387939 0.301025 0.84082
+13 0 21 0.37793 0.293457 0.846191
+13 0 22 0.371338 0.288574 0.853027
+13 0 23 0.367188 0.285645 0.859375
+13 0 24 0.364502 0.283691 0.865723
+13 0 25 0.363037 0.282715 0.873047
+13 0 26 0.362549 0.282227 0.881348
+13 0 27 0.362793 0.282471 0.890625
+13 0 28 0.364014 0.283691 0.900879
+13 0 29 0.365967 0.285156 0.912598
+13 0 30 0.368408 0.287109 0.924316
+13 0 31 0.371338 0.289551 0.936523
+13 1 0 0.364014 0.268555 0
+13 1 1 0.364014 0.268555 0
+13 1 2 0.364014 0.268555 0
+13 1 3 0.364014 0.268555 0
+13 1 4 0.364014 0.268555 0
+13 1 5 0.364014 0.268555 0
+13 1 6 0.364014 0.268799 0
+13 1 7 0.364258 0.269043 0
+13 1 8 0.365967 0.270508 0
+13 1 9 0.370117 0.273193 0.105896
+13 1 10 0.374268 0.275391 0.185547
+13 1 11 0.371338 0.272949 0.253906
+13 1 12 0.341064 0.258057 0.296631
+13 1 13 0.335205 0.257812 0.351318
+13 1 14 0.341553 0.262939 0.424072
+13 1 15 0.348877 0.269043 0.50293
+13 1 16 0.357422 0.275879 0.584473
+13 1 17 0.366211 0.283203 0.663086
+13 1 18 0.375488 0.290771 0.734863
+13 1 19 0.384277 0.298096 0.797852
+13 1 20 0.387939 0.301025 0.84082
+13 1 21 0.37793 0.293457 0.846191
+13 1 22 0.371338 0.288574 0.853027
+13 1 23 0.367188 0.285645 0.859375
+13 1 24 0.364502 0.283691 0.865723
+13 1 25 0.363037 0.282715 0.873047
+13 1 26 0.362549 0.282227 0.881348
+13 1 27 0.362793 0.282471 0.890625
+13 1 28 0.364014 0.283691 0.900879
+13 1 29 0.365967 0.285156 0.912598
+13 1 30 0.368408 0.287109 0.924316
+13 1 31 0.371338 0.289551 0.936523
+13 2 0 0.364014 0.268555 0
+13 2 1 0.364014 0.268555 0
+13 2 2 0.364014 0.268555 0
+13 2 3 0.364014 0.268555 0
+13 2 4 0.364014 0.268799 0
+13 2 5 0.364014 0.268799 0
+13 2 6 0.364014 0.268799 0
+13 2 7 0.364258 0.269043 0
+13 2 8 0.365967 0.270508 0
+13 2 9 0.370117 0.273438 0.105896
+13 2 10 0.374268 0.275391 0.185547
+13 2 11 0.371338 0.273193 0.253906
+13 2 12 0.341064 0.258301 0.296631
+13 2 13 0.335205 0.258057 0.351318
+13 2 14 0.341553 0.263184 0.424072
+13 2 15 0.348877 0.269043 0.50293
+13 2 16 0.357422 0.276123 0.584473
+13 2 17 0.366211 0.283203 0.663086
+13 2 18 0.375488 0.290771 0.734863
+13 2 19 0.384277 0.298096 0.797852
+13 2 20 0.387939 0.301025 0.84082
+13 2 21 0.37793 0.293457 0.846191
+13 2 22 0.371338 0.288574 0.853027
+13 2 23 0.367188 0.285645 0.859375
+13 2 24 0.364502 0.283691 0.865723
+13 2 25 0.363037 0.282715 0.873047
+13 2 26 0.362549 0.282227 0.881348
+13 2 27 0.362793 0.282471 0.890625
+13 2 28 0.364014 0.283691 0.900879
+13 2 29 0.365967 0.285156 0.912598
+13 2 30 0.368408 0.287109 0.924316
+13 2 31 0.371338 0.289551 0.936523
+13 3 0 0.364014 0.268799 0
+13 3 1 0.364014 0.268799 0
+13 3 2 0.364014 0.268799 0
+13 3 3 0.364014 0.268799 0
+13 3 4 0.364014 0.268799 0
+13 3 5 0.364014 0.268799 0
+13 3 6 0.364258 0.269043 0
+13 3 7 0.364258 0.269287 0
+13 3 8 0.365967 0.270752 0
+13 3 9 0.370117 0.273438 0.105835
+13 3 10 0.374268 0.275635 0.185547
+13 3 11 0.371338 0.273193 0.253906
+13 3 12 0.341064 0.258301 0.296631
+13 3 13 0.335205 0.258057 0.351318
+13 3 14 0.341553 0.263184 0.424072
+13 3 15 0.348877 0.269043 0.50293
+13 3 16 0.357422 0.276123 0.584473
+13 3 17 0.366211 0.283447 0.663086
+13 3 18 0.375488 0.290771 0.734863
+13 3 19 0.384277 0.298096 0.797852
+13 3 20 0.387939 0.301025 0.84082
+13 3 21 0.37793 0.293457 0.846191
+13 3 22 0.371338 0.288818 0.853027
+13 3 23 0.367188 0.285645 0.859375
+13 3 24 0.364502 0.283691 0.865723
+13 3 25 0.363037 0.282715 0.873047
+13 3 26 0.362549 0.282227 0.881348
+13 3 27 0.362793 0.282471 0.890625
+13 3 28 0.364014 0.283691 0.900879
+13 3 29 0.365967 0.285156 0.912598
+13 3 30 0.368408 0.287109 0.924316
+13 3 31 0.371338 0.289551 0.936523
+13 4 0 0.364014 0.269043 0
+13 4 1 0.364014 0.269043 0
+13 4 2 0.364014 0.269043 0
+13 4 3 0.364014 0.269043 0
+13 4 4 0.364014 0.269287 0
+13 4 5 0.364014 0.269287 0
+13 4 6 0.364258 0.269287 0
+13 4 7 0.364258 0.269531 0
+13 4 8 0.365967 0.27124 0
+13 4 9 0.370117 0.273926 0.105774
+13 4 10 0.374268 0.275879 0.185547
+13 4 11 0.371582 0.273682 0.253906
+13 4 12 0.341064 0.258545 0.296875
+13 4 13 0.335205 0.258301 0.351318
+13 4 14 0.341553 0.263428 0.424072
+13 4 15 0.348877 0.269287 0.50293
+13 4 16 0.357422 0.276367 0.584473
+13 4 17 0.366211 0.283447 0.663086
+13 4 18 0.375488 0.291016 0.734863
+13 4 19 0.384277 0.298096 0.797852
+13 4 20 0.387939 0.30127 0.84082
+13 4 21 0.37793 0.293701 0.84668
+13 4 22 0.371338 0.288818 0.853027
+13 4 23 0.367188 0.285645 0.859375
+13 4 24 0.364746 0.283691 0.865723
+13 4 25 0.363037 0.282715 0.873047
+13 4 26 0.362549 0.282227 0.881348
+13 4 27 0.362793 0.282715 0.890625
+13 4 28 0.364014 0.283691 0.900879
+13 4 29 0.365967 0.285156 0.912598
+13 4 30 0.368408 0.287109 0.924316
+13 4 31 0.371338 0.289551 0.936523
+13 5 0 0.364258 0.269775 0
+13 5 1 0.364258 0.269775 0
+13 5 2 0.364258 0.269775 0
+13 5 3 0.364258 0.269775 0
+13 5 4 0.364258 0.269775 0
+13 5 5 0.364258 0.269775 0
+13 5 6 0.364258 0.27002 0
+13 5 7 0.364258 0.270264 0
+13 5 8 0.365967 0.271729 0
+13 5 9 0.370361 0.274658 0.105713
+13 5 10 0.374268 0.276611 0.185547
+13 5 11 0.371826 0.274414 0.253906
+13 5 12 0.341309 0.259277 0.296875
+13 5 13 0.335205 0.258789 0.351318
+13 5 14 0.341553 0.263916 0.424072
+13 5 15 0.348877 0.269775 0.50293
+13 5 16 0.357422 0.276611 0.584473
+13 5 17 0.366211 0.283936 0.663086
+13 5 18 0.375488 0.29126 0.734863
+13 5 19 0.384521 0.29834 0.797852
+13 5 20 0.387939 0.301514 0.84082
+13 5 21 0.37793 0.293945 0.84668
+13 5 22 0.371338 0.288818 0.853027
+13 5 23 0.367188 0.285889 0.859375
+13 5 24 0.364746 0.283936 0.865723
+13 5 25 0.363037 0.282715 0.873047
+13 5 26 0.362549 0.282471 0.881348
+13 5 27 0.362793 0.282715 0.890625
+13 5 28 0.364014 0.283691 0.901367
+13 5 29 0.365967 0.285156 0.912598
+13 5 30 0.368408 0.287354 0.924316
+13 5 31 0.371338 0.289551 0.936523
+13 6 0 0.364258 0.270996 0
+13 6 1 0.364258 0.270996 0
+13 6 2 0.364258 0.270996 0
+13 6 3 0.364258 0.270996 0
+13 6 4 0.364258 0.270996 0
+13 6 5 0.364258 0.270996 0
+13 6 6 0.364258 0.27124 0
+13 6 7 0.364258 0.271484 0
+13 6 8 0.366211 0.272949 0
+13 6 9 0.370361 0.275879 0.105591
+13 6 10 0.374512 0.277832 0.185425
+13 6 11 0.37207 0.275635 0.253906
+13 6 12 0.341553 0.260254 0.297119
+13 6 13 0.335205 0.259521 0.351318
+13 6 14 0.341553 0.264648 0.424072
+13 6 15 0.348877 0.270508 0.50293
+13 6 16 0.357422 0.277344 0.584473
+13 6 17 0.366455 0.284424 0.663086
+13 6 18 0.375488 0.291748 0.734863
+13 6 19 0.384521 0.298828 0.797852
+13 6 20 0.387939 0.301758 0.84082
+13 6 21 0.37793 0.294189 0.84668
+13 6 22 0.371338 0.289307 0.853027
+13 6 23 0.367188 0.286133 0.859375
+13 6 24 0.364746 0.28418 0.865723
+13 6 25 0.363037 0.282959 0.873047
+13 6 26 0.362549 0.282471 0.881348
+13 6 27 0.362793 0.282715 0.890625
+13 6 28 0.364014 0.283936 0.901367
+13 6 29 0.365967 0.2854 0.912598
+13 6 30 0.368408 0.287354 0.924316
+13 6 31 0.371338 0.289551 0.936523
+13 7 0 0.364258 0.273193 0
+13 7 1 0.364258 0.273193 0
+13 7 2 0.364258 0.273193 0
+13 7 3 0.364258 0.273438 0
+13 7 4 0.364258 0.273438 0
+13 7 5 0.364258 0.273438 0
+13 7 6 0.364258 0.273438 0
+13 7 7 0.364258 0.273682 0
+13 7 8 0.366211 0.275146 0
+13 7 9 0.370605 0.278076 0.105347
+13 7 10 0.374756 0.280273 0.185181
+13 7 11 0.373047 0.27832 0.25415
+13 7 12 0.342285 0.261963 0.297363
+13 7 13 0.335449 0.260986 0.351318
+13 7 14 0.341797 0.266113 0.424316
+13 7 15 0.349121 0.271729 0.50293
+13 7 16 0.357666 0.278564 0.584473
+13 7 17 0.366455 0.2854 0.663086
+13 7 18 0.375488 0.292725 0.734863
+13 7 19 0.384521 0.299805 0.797852
+13 7 20 0.388184 0.30249 0.84082
+13 7 21 0.378174 0.294922 0.84668
+13 7 22 0.371582 0.289795 0.853027
+13 7 23 0.367188 0.286377 0.859375
+13 7 24 0.364746 0.284424 0.865723
+13 7 25 0.363281 0.283203 0.873047
+13 7 26 0.362549 0.282959 0.881348
+13 7 27 0.362793 0.282959 0.890625
+13 7 28 0.364014 0.28418 0.901367
+13 7 29 0.365967 0.285645 0.912598
+13 7 30 0.368408 0.287598 0.924316
+13 7 31 0.371338 0.289795 0.936523
+13 8 0 0.364014 0.277588 0
+13 8 1 0.364014 0.277588 0
+13 8 2 0.364014 0.277588 0
+13 8 3 0.364014 0.277588 0
+13 8 4 0.364014 0.277588 0
+13 8 5 0.364258 0.277588 0
+13 8 6 0.364258 0.277832 0
+13 8 7 0.364258 0.277832 0
+13 8 8 0.365967 0.279541 0
+13 8 9 0.370605 0.282471 0.105286
+13 8 10 0.375488 0.285156 0.184814
+13 8 11 0.374512 0.283447 0.254639
+13 8 12 0.343506 0.265869 0.29834
+13 8 13 0.335693 0.263916 0.351318
+13 8 14 0.342041 0.268799 0.424316
+13 8 15 0.349365 0.274414 0.50293
+13 8 16 0.35791 0.281006 0.584473
+13 8 17 0.366699 0.287598 0.663086
+13 8 18 0.375732 0.294678 0.734863
+13 8 19 0.384766 0.301514 0.797852
+13 8 20 0.388428 0.304199 0.841309
+13 8 21 0.378174 0.296143 0.84668
+13 8 22 0.371582 0.290771 0.853027
+13 8 23 0.367432 0.287354 0.859375
+13 8 24 0.364746 0.285156 0.866211
+13 8 25 0.363281 0.283936 0.873535
+13 8 26 0.362549 0.283447 0.881348
+13 8 27 0.362793 0.283691 0.890625
+13 8 28 0.364014 0.284424 0.901367
+13 8 29 0.365967 0.285889 0.912598
+13 8 30 0.368408 0.287842 0.924316
+13 8 31 0.371338 0.290039 0.936523
+13 9 0 0.363281 0.284912 0
+13 9 1 0.363281 0.284912 0
+13 9 2 0.363281 0.284912 0
+13 9 3 0.363281 0.284912 0
+13 9 4 0.363281 0.284912 0
+13 9 5 0.363281 0.284912 0
+13 9 6 0.363281 0.284912 0
+13 9 7 0.363281 0.285156 0
+13 9 8 0.36499 0.286621 0
+13 9 9 0.369873 0.289795 0.10614
+13 9 10 0.376221 0.293457 0.18396
+13 9 11 0.376709 0.29248 0.254639
+13 9 12 0.346191 0.273193 0.300049
+13 9 13 0.335938 0.269287 0.351318
+13 9 14 0.342529 0.273926 0.424316
+13 9 15 0.349854 0.279297 0.50293
+13 9 16 0.358154 0.2854 0.584473
+13 9 17 0.367188 0.291748 0.663086
+13 9 18 0.376221 0.298096 0.735352
+13 9 19 0.38501 0.304443 0.79834
+13 9 20 0.388916 0.306885 0.841797
+13 9 21 0.378662 0.29834 0.847168
+13 9 22 0.371826 0.292725 0.853516
+13 9 23 0.367676 0.289062 0.859863
+13 9 24 0.36499 0.286865 0.866211
+13 9 25 0.363525 0.2854 0.873535
+13 9 26 0.362793 0.284668 0.881836
+13 9 27 0.363037 0.284668 0.891113
+13 9 28 0.364258 0.2854 0.901367
+13 9 29 0.366211 0.286621 0.912598
+13 9 30 0.368652 0.288574 0.924316
+13 9 31 0.371338 0.290527 0.936523
+13 10 0 0.359863 0.29541 0
+13 10 1 0.359863 0.29541 0
+13 10 2 0.359863 0.29541 0
+13 10 3 0.359863 0.29541 0
+13 10 4 0.359863 0.29541 0
+13 10 5 0.359863 0.29541 0
+13 10 6 0.359863 0.29541 0
+13 10 7 0.359863 0.295654 0
+13 10 8 0.361084 0.296875 0
+13 10 9 0.365967 0.300049 0.111145
+13 10 10 0.373779 0.304932 0.182495
+13 10 11 0.377686 0.306152 0.253418
+13 10 12 0.351318 0.286865 0.303467
+13 10 13 0.336914 0.278564 0.351562
+13 10 14 0.343262 0.282959 0.424316
+13 10 15 0.350586 0.287842 0.50293
+13 10 16 0.359131 0.293457 0.584961
+13 10 17 0.36792 0.298828 0.663574
+13 10 18 0.376709 0.304443 0.735352
+13 10 19 0.385742 0.310059 0.79834
+13 10 20 0.389648 0.312012 0.842773
+13 10 21 0.379395 0.302734 0.848145
+13 10 22 0.372314 0.296143 0.854004
+13 10 23 0.368164 0.291992 0.860352
+13 10 24 0.365479 0.289307 0.866699
+13 10 25 0.36377 0.287598 0.874023
+13 10 26 0.363037 0.286621 0.881836
+13 10 27 0.363281 0.286377 0.891113
+13 10 28 0.364502 0.286865 0.901855
+13 10 29 0.366211 0.288086 0.913086
+13 10 30 0.368652 0.289551 0.924805
+13 10 31 0.371582 0.291504 0.937012
+13 11 0 0.352051 0.307861 0.0469666
+13 11 1 0.352051 0.307861 0.0469971
+13 11 2 0.352051 0.307861 0.0470276
+13 11 3 0.352051 0.307861 0.0470886
+13 11 4 0.352051 0.308105 0.0471802
+13 11 5 0.352051 0.308105 0.0473938
+13 11 6 0.352051 0.308105 0.0477905
+13 11 7 0.352051 0.308105 0.0485535
+13 11 8 0.352539 0.308594 0.0684204
+13 11 9 0.355957 0.311035 0.126709
+13 11 10 0.362793 0.315918 0.182373
+13 11 11 0.373291 0.322754 0.248657
+13 11 12 0.361328 0.311035 0.309326
+13 11 13 0.338379 0.293945 0.351562
+13 11 14 0.344727 0.297852 0.424561
+13 11 15 0.352051 0.302002 0.503418
+13 11 16 0.360352 0.306641 0.585449
+13 11 17 0.369141 0.311035 0.664062
+13 11 18 0.37793 0.315186 0.73584
+13 11 19 0.386719 0.31958 0.798828
+13 11 20 0.390869 0.320557 0.844238
+13 11 21 0.380371 0.309814 0.849121
+13 11 22 0.373291 0.302246 0.85498
+13 11 23 0.368896 0.297363 0.86084
+13 11 24 0.366211 0.293945 0.867188
+13 11 25 0.364502 0.291748 0.874512
+13 11 26 0.363525 0.290039 0.882812
+13 11 27 0.36377 0.289307 0.891602
+13 11 28 0.36499 0.289551 0.902344
+13 11 29 0.366699 0.290283 0.913086
+13 11 30 0.369141 0.291748 0.925293
+13 11 31 0.371826 0.293457 0.937012
+13 12 0 0.346191 0.327148 0.122253
+13 12 1 0.346191 0.327148 0.122253
+13 12 2 0.346191 0.327148 0.122253
+13 12 3 0.346191 0.327148 0.122314
+13 12 4 0.346191 0.327148 0.122314
+13 12 5 0.346191 0.327148 0.122314
+13 12 6 0.346191 0.327148 0.122375
+13 12 7 0.346191 0.327393 0.122498
+13 12 8 0.346436 0.327637 0.122742
+13 12 9 0.34668 0.327637 0.152344
+13 12 10 0.347412 0.327881 0.191162
+13 12 11 0.350342 0.329834 0.239624
+13 12 12 0.361328 0.337646 0.305664
+13 12 13 0.340576 0.317627 0.351807
+13 12 14 0.346924 0.320801 0.424561
+13 12 15 0.354248 0.323975 0.503418
+13 12 16 0.362549 0.327148 0.585449
+13 12 17 0.371338 0.329834 0.664551
+13 12 18 0.379883 0.332275 0.736816
+13 12 19 0.388428 0.334717 0.799805
+13 12 20 0.393066 0.334473 0.846191
+13 12 21 0.38208 0.321533 0.851074
+13 12 22 0.374756 0.312256 0.856445
+13 12 23 0.370117 0.305908 0.862305
+13 12 24 0.367188 0.301758 0.868652
+13 12 25 0.365479 0.29834 0.875977
+13 12 26 0.364502 0.295898 0.883789
+13 12 27 0.364502 0.294678 0.892578
+13 12 28 0.365479 0.294189 0.902832
+13 12 29 0.367188 0.294189 0.914062
+13 12 30 0.369629 0.295166 0.925781
+13 12 31 0.372314 0.296387 0.937988
+13 13 0 0.356201 0.368652 0.148071
+13 13 1 0.356201 0.368652 0.148071
+13 13 2 0.356201 0.368652 0.148071
+13 13 3 0.356201 0.368652 0.148071
+13 13 4 0.356201 0.368652 0.148071
+13 13 5 0.356201 0.368652 0.148071
+13 13 6 0.356201 0.368896 0.148071
+13 13 7 0.356445 0.368896 0.148193
+13 13 8 0.356445 0.369141 0.148193
+13 13 9 0.356201 0.368896 0.166016
+13 13 10 0.355713 0.367432 0.202148
+13 13 11 0.354004 0.364746 0.24646
+13 13 12 0.350586 0.359619 0.297607
+13 13 13 0.344238 0.35083 0.352051
+13 13 14 0.350342 0.353271 0.424561
+13 13 15 0.357666 0.355469 0.503418
+13 13 16 0.365967 0.357178 0.585938
+13 13 17 0.374512 0.357666 0.665527
+13 13 18 0.383057 0.357666 0.737793
+13 13 19 0.391357 0.357666 0.80127
+13 13 20 0.396729 0.355713 0.849609
+13 13 21 0.385254 0.3396 0.854004
+13 13 22 0.377441 0.327881 0.859375
+13 13 23 0.372314 0.31958 0.864746
+13 13 24 0.369141 0.313721 0.871094
+13 13 25 0.367188 0.309082 0.87793
+13 13 26 0.365967 0.30542 0.885254
+13 13 27 0.365723 0.302734 0.894043
+13 13 28 0.366699 0.30127 0.904297
+13 13 29 0.368164 0.300537 0.915039
+13 13 30 0.370361 0.300537 0.926758
+13 13 31 0.373047 0.301025 0.938477
+13 14 0 0.351562 0.404297 0.158203
+13 14 1 0.351562 0.404297 0.158203
+13 14 2 0.351562 0.404297 0.158203
+13 14 3 0.351562 0.404297 0.158203
+13 14 4 0.351562 0.404297 0.158203
+13 14 5 0.351562 0.404297 0.158203
+13 14 6 0.351562 0.404297 0.158203
+13 14 7 0.351807 0.404297 0.158325
+13 14 8 0.351807 0.404541 0.158325
+13 14 9 0.352051 0.404541 0.16333
+13 14 10 0.351562 0.40332 0.197876
+13 14 11 0.350586 0.400879 0.240845
+13 14 12 0.348877 0.396973 0.291748
+13 14 13 0.349609 0.394531 0.351807
+13 14 14 0.355469 0.395996 0.424072
+13 14 15 0.362549 0.397217 0.503418
+13 14 16 0.371094 0.397461 0.586426
+13 14 17 0.379395 0.395752 0.666016
+13 14 18 0.387695 0.393066 0.739258
+13 14 19 0.395508 0.390137 0.802734
+13 14 20 0.4021 0.38623 0.854492
+13 14 21 0.389893 0.365967 0.858887
+13 14 22 0.381348 0.35083 0.86377
+13 14 23 0.375977 0.339844 0.868652
+13 14 24 0.372314 0.331787 0.874512
+13 14 25 0.369873 0.324951 0.880859
+13 14 26 0.368408 0.31958 0.888184
+13 14 27 0.36792 0.31543 0.896973
+13 14 28 0.368652 0.312256 0.906738
+13 14 29 0.369873 0.310303 0.91748
+13 14 30 0.371826 0.309082 0.928711
+13 14 31 0.374268 0.308594 0.94043
+13 15 0 0.349609 0.44751 0.171509
+13 15 1 0.349609 0.44751 0.171509
+13 15 2 0.349609 0.44751 0.171509
+13 15 3 0.349609 0.44751 0.171509
+13 15 4 0.349609 0.44751 0.171509
+13 15 5 0.349609 0.44751 0.171509
+13 15 6 0.349609 0.44751 0.171509
+13 15 7 0.349609 0.44751 0.171509
+13 15 8 0.349854 0.447754 0.171631
+13 15 9 0.350098 0.447998 0.171631
+13 15 10 0.350342 0.447754 0.194702
+13 15 11 0.351074 0.447266 0.236816
+13 15 12 0.352539 0.446777 0.288574
+13 15 13 0.356201 0.447021 0.350586
+13 15 14 0.362061 0.448242 0.422363
+13 15 15 0.369385 0.44873 0.501953
+13 15 16 0.377686 0.447754 0.585449
+13 15 17 0.385986 0.444092 0.666504
+13 15 18 0.394043 0.438721 0.740234
+13 15 19 0.401611 0.432373 0.804688
+13 15 20 0.407959 0.425781 0.857422
+13 15 21 0.396729 0.4021 0.865723
+13 15 22 0.387695 0.382812 0.870117
+13 15 23 0.381348 0.368408 0.875
+13 15 24 0.377197 0.357422 0.880371
+13 15 25 0.374268 0.3479 0.88623
+13 15 26 0.372314 0.340088 0.893066
+13 15 27 0.371338 0.333496 0.900879
+13 15 28 0.371582 0.328369 0.910156
+13 15 29 0.372559 0.324463 0.92041
+13 15 30 0.374023 0.321533 0.931152
+13 15 31 0.376221 0.31958 0.942871
+13 16 0 0.355225 0.503418 0.189819
+13 16 1 0.355225 0.503418 0.189819
+13 16 2 0.355225 0.503418 0.189819
+13 16 3 0.355225 0.503418 0.189819
+13 16 4 0.355225 0.503418 0.189819
+13 16 5 0.355225 0.503418 0.189819
+13 16 6 0.355225 0.503418 0.189819
+13 16 7 0.355225 0.503418 0.189941
+13 16 8 0.355225 0.503418 0.189941
+13 16 9 0.355469 0.503906 0.189941
+13 16 10 0.355957 0.503906 0.194336
+13 16 11 0.357422 0.504395 0.235107
+13 16 12 0.359863 0.504883 0.286133
+13 16 13 0.364014 0.506348 0.347656
+13 16 14 0.369873 0.507812 0.418945
+13 16 15 0.377441 0.508301 0.498047
+13 16 16 0.385986 0.506348 0.582031
+13 16 17 0.394531 0.501465 0.664551
+13 16 18 0.402344 0.493896 0.739746
+13 16 19 0.409668 0.484863 0.805664
+13 16 20 0.415527 0.474854 0.859863
+13 16 21 0.40625 0.448975 0.874512
+13 16 22 0.396729 0.425293 0.879883
+13 16 23 0.389648 0.406738 0.884766
+13 16 24 0.384766 0.39209 0.88916
+13 16 25 0.380859 0.37915 0.894531
+13 16 26 0.378174 0.368164 0.900879
+13 16 27 0.376465 0.358643 0.907715
+13 16 28 0.375977 0.35083 0.916504
+13 16 29 0.376465 0.344482 0.925781
+13 16 30 0.377441 0.339111 0.936035
+13 16 31 0.37915 0.335205 0.946289
+13 17 0 0.363525 0.562988 0.209961
+13 17 1 0.363525 0.562988 0.209961
+13 17 2 0.363525 0.562988 0.209961
+13 17 3 0.363525 0.562988 0.209961
+13 17 4 0.363525 0.562988 0.209961
+13 17 5 0.363525 0.562988 0.209961
+13 17 6 0.363525 0.562988 0.209961
+13 17 7 0.36377 0.562988 0.209961
+13 17 8 0.36377 0.562988 0.210083
+13 17 9 0.364014 0.563477 0.210083
+13 17 10 0.364258 0.563477 0.210205
+13 17 11 0.365479 0.564453 0.233398
+13 17 12 0.368164 0.56543 0.282715
+13 17 13 0.372314 0.566895 0.342529
+13 17 14 0.378418 0.568848 0.412598
+13 17 15 0.385986 0.569824 0.491211
+13 17 16 0.39502 0.568359 0.575684
+13 17 17 0.403809 0.563477 0.659668
+13 17 18 0.412109 0.554688 0.737305
+13 17 19 0.419434 0.543945 0.804688
+13 17 20 0.424805 0.53125 0.860352
+13 17 21 0.418457 0.504883 0.883789
+13 17 22 0.408936 0.477051 0.892578
+13 17 23 0.401367 0.454346 0.897949
+13 17 24 0.395508 0.435547 0.902344
+13 17 25 0.390625 0.418945 0.907227
+13 17 26 0.386719 0.404053 0.912109
+13 17 27 0.384033 0.390869 0.917969
+13 17 28 0.382568 0.379883 0.925293
+13 17 29 0.38208 0.370361 0.933594
+13 17 30 0.382324 0.362305 0.942383
+13 17 31 0.383057 0.355469 0.952148
+13 18 0 0.372803 0.620605 0.229614
+13 18 1 0.372803 0.620605 0.229614
+13 18 2 0.372803 0.620605 0.229614
+13 18 3 0.372803 0.620605 0.229614
+13 18 4 0.372803 0.620605 0.229614
+13 18 5 0.372803 0.620605 0.229614
+13 18 6 0.372803 0.620605 0.229614
+13 18 7 0.372803 0.620605 0.229614
+13 18 8 0.372803 0.620605 0.229614
+13 18 9 0.373047 0.620605 0.229736
+13 18 10 0.373291 0.620605 0.229736
+13 18 11 0.373779 0.621094 0.231079
+13 18 12 0.376465 0.622559 0.278076
+13 18 13 0.380615 0.624512 0.335449
+13 18 14 0.386475 0.626953 0.403564
+13 18 15 0.394287 0.628906 0.480957
+13 18 16 0.403564 0.628906 0.56543
+13 18 17 0.41333 0.625 0.650391
+13 18 18 0.422119 0.617188 0.730469
+13 18 19 0.429688 0.605469 0.800781
+13 18 20 0.435059 0.59082 0.858887
+13 18 21 0.431885 0.56543 0.891602
+13 18 22 0.423828 0.536133 0.906738
+13 18 23 0.416016 0.509766 0.914551
+13 18 24 0.409424 0.487305 0.919434
+13 18 25 0.403564 0.466309 0.923828
+13 18 26 0.398438 0.447266 0.927734
+13 18 27 0.394287 0.430176 0.932129
+13 18 28 0.391602 0.415039 0.937988
+13 18 29 0.389648 0.401855 0.944336
+13 18 30 0.388916 0.390381 0.952148
+13 18 31 0.388916 0.380371 0.959961
+13 19 0 0.381836 0.672852 0.247681
+13 19 1 0.381836 0.672852 0.247681
+13 19 2 0.381836 0.672852 0.247681
+13 19 3 0.381836 0.672852 0.247681
+13 19 4 0.381836 0.672852 0.247681
+13 19 5 0.381836 0.672852 0.247681
+13 19 6 0.38208 0.672852 0.247681
+13 19 7 0.38208 0.672852 0.247681
+13 19 8 0.38208 0.672852 0.247681
+13 19 9 0.382324 0.672852 0.247803
+13 19 10 0.382324 0.672852 0.247803
+13 19 11 0.382812 0.67334 0.247925
+13 19 12 0.384521 0.674316 0.272705
+13 19 13 0.388428 0.67627 0.327393
+13 19 14 0.394287 0.679199 0.393066
+13 19 15 0.4021 0.682129 0.468262
+13 19 16 0.411621 0.683594 0.551758
+13 19 17 0.421875 0.681641 0.637207
+13 19 18 0.431396 0.675293 0.719238
+13 19 19 0.439453 0.664551 0.79248
+13 19 20 0.445312 0.649902 0.853027
+13 19 21 0.445312 0.626953 0.895508
+13 19 22 0.439941 0.598145 0.919434
+13 19 23 0.432861 0.570312 0.932129
+13 19 24 0.425781 0.544434 0.938965
+13 19 25 0.418945 0.519531 0.943359
+13 19 26 0.412598 0.496338 0.946777
+13 19 27 0.407227 0.474609 0.950195
+13 19 28 0.402832 0.455322 0.954102
+13 19 29 0.399658 0.437988 0.958496
+13 19 30 0.397217 0.422607 0.963867
+13 19 31 0.395996 0.409424 0.970215
+13 20 0 0.390625 0.718262 0.263672
+13 20 1 0.390625 0.718262 0.263672
+13 20 2 0.390625 0.718262 0.263672
+13 20 3 0.390625 0.718262 0.263672
+13 20 4 0.390625 0.718262 0.263672
+13 20 5 0.390625 0.718262 0.263672
+13 20 6 0.390869 0.718262 0.263672
+13 20 7 0.390869 0.718262 0.263672
+13 20 8 0.390869 0.718262 0.263672
+13 20 9 0.390869 0.718262 0.263672
+13 20 10 0.391113 0.718262 0.263672
+13 20 11 0.391602 0.71875 0.263672
+13 20 12 0.392334 0.719238 0.267334
+13 20 13 0.395996 0.72168 0.319336
+13 20 14 0.401367 0.724609 0.38208
+13 20 15 0.408936 0.728027 0.45459
+13 20 16 0.418457 0.730957 0.536133
+13 20 17 0.428955 0.730957 0.621582
+13 20 18 0.439209 0.727051 0.70459
+13 20 19 0.447754 0.717773 0.779785
+13 20 20 0.454102 0.703613 0.843262
+13 20 21 0.457275 0.68457 0.894043
+13 20 22 0.455078 0.658691 0.927246
+13 20 23 0.449707 0.630859 0.946289
+13 20 24 0.443115 0.603516 0.957031
+13 20 25 0.435791 0.575684 0.963379
+13 20 26 0.428467 0.54834 0.967285
+13 20 27 0.421875 0.522949 0.969727
+13 20 28 0.415771 0.499023 0.972168
+13 20 29 0.411133 0.477539 0.975098
+13 20 30 0.407227 0.458252 0.978516
+13 20 31 0.404541 0.441162 0.98291
+13 21 0 0.398438 0.757324 0.2771
+13 21 1 0.398438 0.757324 0.2771
+13 21 2 0.398438 0.757324 0.2771
+13 21 3 0.398438 0.757324 0.2771
+13 21 4 0.398438 0.757324 0.2771
+13 21 5 0.398438 0.757324 0.2771
+13 21 6 0.398438 0.757324 0.2771
+13 21 7 0.398438 0.757324 0.2771
+13 21 8 0.398438 0.757324 0.2771
+13 21 9 0.398682 0.757324 0.2771
+13 21 10 0.398926 0.757324 0.277344
+13 21 11 0.39917 0.757324 0.277344
+13 21 12 0.399658 0.757812 0.277344
+13 21 13 0.402344 0.759766 0.310791
+13 21 14 0.407471 0.763184 0.370361
+13 21 15 0.414551 0.76709 0.440186
+13 21 16 0.423828 0.770996 0.519043
+13 21 17 0.43457 0.772949 0.603027
+13 21 18 0.445068 0.770996 0.686035
+13 21 19 0.45459 0.76416 0.762695
+13 21 20 0.46167 0.752441 0.829102
+13 21 21 0.466553 0.73584 0.884766
+13 21 22 0.467529 0.714355 0.927246
+13 21 23 0.4646 0.688477 0.954102
+13 21 24 0.459473 0.661621 0.970215
+13 21 25 0.452637 0.632324 0.97998
+13 21 26 0.445068 0.602539 0.98584
+13 21 27 0.437256 0.573242 0.989258
+13 21 28 0.430176 0.54541 0.991211
+13 21 29 0.423828 0.52002 0.992676
+13 21 30 0.418701 0.496582 0.994629
+13 21 31 0.414551 0.475586 0.99707
+13 22 0 0.404785 0.789551 0.288574
+13 22 1 0.404785 0.789551 0.288574
+13 22 2 0.404785 0.789551 0.288574
+13 22 3 0.404785 0.789551 0.288574
+13 22 4 0.404785 0.789551 0.288574
+13 22 5 0.404785 0.789551 0.288574
+13 22 6 0.405029 0.789551 0.288574
+13 22 7 0.405029 0.789551 0.288574
+13 22 8 0.405029 0.789551 0.288574
+13 22 9 0.405029 0.789551 0.288574
+13 22 10 0.405273 0.789551 0.288574
+13 22 11 0.405518 0.790039 0.288574
+13 22 12 0.406006 0.790039 0.288818
+13 22 13 0.407471 0.791016 0.302246
+13 22 14 0.412354 0.794434 0.358643
+13 22 15 0.418945 0.798828 0.425293
+13 22 16 0.427979 0.803711 0.501465
+13 22 17 0.438477 0.807129 0.583008
+13 22 18 0.449219 0.807617 0.665039
+13 22 19 0.459229 0.803223 0.742676
+13 22 20 0.467285 0.793945 0.811035
+13 22 21 0.4729 0.779785 0.869629
+13 22 22 0.476318 0.761719 0.917969
+13 22 23 0.476318 0.739746 0.952637
+13 22 24 0.473145 0.714844 0.975586
+13 22 25 0.467529 0.686035 0.991211
+13 22 26 0.460449 0.655273 1
+13 22 27 0.452637 0.623535 1
+13 22 28 0.444824 0.592773 1
+13 22 29 0.4375 0.563477 1
+13 22 30 0.430908 0.536621 1
+13 22 31 0.425293 0.511719 1
+13 23 0 0.409912 0.81543 0.297607
+13 23 1 0.409912 0.81543 0.297607
+13 23 2 0.409912 0.81543 0.297607
+13 23 3 0.409912 0.81543 0.297607
+13 23 4 0.409912 0.81543 0.297607
+13 23 5 0.409912 0.81543 0.297607
+13 23 6 0.410156 0.81543 0.297607
+13 23 7 0.410156 0.81543 0.297607
+13 23 8 0.410156 0.81543 0.297607
+13 23 9 0.410156 0.81543 0.297607
+13 23 10 0.4104 0.81543 0.297607
+13 23 11 0.410645 0.81543 0.297607
+13 23 12 0.410889 0.815918 0.297852
+13 23 13 0.411621 0.815918 0.297852
+13 23 14 0.415771 0.819336 0.347412
+13 23 15 0.422119 0.824219 0.410889
+13 23 16 0.430664 0.829102 0.483887
+13 23 17 0.440918 0.833984 0.562988
+13 23 18 0.451904 0.835938 0.643555
+13 23 19 0.462158 0.834473 0.721191
+13 23 20 0.470947 0.827637 0.790527
+13 23 21 0.477539 0.815918 0.851562
+13 23 22 0.481689 0.799805 0.902832
+13 23 23 0.483643 0.78125 0.942871
+13 23 24 0.48291 0.759766 0.972656
+13 23 25 0.479492 0.733398 0.995117
+13 23 26 0.473877 0.703125 1
+13 23 27 0.466553 0.670898 1
+13 23 28 0.458496 0.638184 1
+13 23 29 0.450439 0.605957 1
+13 23 30 0.442871 0.575684 1
+13 23 31 0.436035 0.547852 1
+13 24 0 0.414062 0.835938 0.304932
+13 24 1 0.414062 0.835938 0.304932
+13 24 2 0.414062 0.835938 0.304932
+13 24 3 0.414062 0.835938 0.304932
+13 24 4 0.414062 0.835938 0.304932
+13 24 5 0.414062 0.835938 0.304932
+13 24 6 0.414062 0.835938 0.304932
+13 24 7 0.414062 0.835938 0.304932
+13 24 8 0.414062 0.835938 0.304932
+13 24 9 0.414062 0.835938 0.304932
+13 24 10 0.414307 0.835938 0.304932
+13 24 11 0.414551 0.836426 0.304932
+13 24 12 0.414795 0.836426 0.304932
+13 24 13 0.415527 0.836426 0.305176
+13 24 14 0.418457 0.838867 0.336914
+13 24 15 0.424316 0.84375 0.397461
+13 24 16 0.432373 0.849121 0.467285
+13 24 17 0.442383 0.85498 0.543457
+13 24 18 0.453125 0.858398 0.622559
+13 24 19 0.463623 0.858887 0.69873
+13 24 20 0.4729 0.854492 0.768555
+13 24 21 0.480225 0.845215 0.831543
+13 24 22 0.485352 0.832031 0.884766
+13 24 23 0.488281 0.81543 0.928223
+13 24 24 0.489502 0.796875 0.962891
+13 24 25 0.488281 0.773438 0.991211
+13 24 26 0.484375 0.745605 1
+13 24 27 0.478027 0.713867 1
+13 24 28 0.470459 0.680176 1
+13 24 29 0.462158 0.646484 1
+13 24 30 0.454102 0.61377 1
+13 24 31 0.446533 0.58252 1
+13 25 0 0.417236 0.854492 0.311279
+13 25 1 0.417236 0.854492 0.311279
+13 25 2 0.417236 0.854492 0.311279
+13 25 3 0.417236 0.854492 0.311279
+13 25 4 0.417236 0.854492 0.311279
+13 25 5 0.41748 0.854492 0.311279
+13 25 6 0.41748 0.854492 0.311279
+13 25 7 0.41748 0.854492 0.311279
+13 25 8 0.41748 0.854492 0.311279
+13 25 9 0.41748 0.854492 0.311279
+13 25 10 0.41748 0.854492 0.311279
+13 25 11 0.417725 0.854492 0.311279
+13 25 12 0.418213 0.854492 0.311279
+13 25 13 0.418701 0.85498 0.311523
+13 25 14 0.42041 0.855957 0.326172
+13 25 15 0.426025 0.86084 0.383301
+13 25 16 0.43335 0.866211 0.449951
+13 25 17 0.442871 0.872559 0.522949
+13 25 18 0.453369 0.877441 0.599121
+13 25 19 0.463867 0.879395 0.674316
+13 25 20 0.473633 0.87793 0.744141
+13 25 21 0.481689 0.871582 0.807617
+13 25 22 0.487793 0.86084 0.863281
+13 25 23 0.491943 0.84668 0.90918
+13 25 24 0.493896 0.830566 0.947266
+13 25 25 0.494629 0.810547 0.980469
+13 25 26 0.492676 0.785156 1
+13 25 27 0.488037 0.755371 1
+13 25 28 0.481445 0.722168 1
+13 25 29 0.473633 0.6875 1
+13 25 30 0.465332 0.65332 1
+13 25 31 0.457031 0.619629 1
+13 26 0 0.42041 0.870605 0.316895
+13 26 1 0.42041 0.870605 0.316895
+13 26 2 0.42041 0.870605 0.316895
+13 26 3 0.42041 0.870605 0.316895
+13 26 4 0.42041 0.870605 0.316895
+13 26 5 0.42041 0.870605 0.316895
+13 26 6 0.42041 0.870605 0.316895
+13 26 7 0.42041 0.870605 0.316895
+13 26 8 0.42041 0.870605 0.316895
+13 26 9 0.42041 0.870605 0.316895
+13 26 10 0.420654 0.870605 0.316895
+13 26 11 0.420654 0.870605 0.317139
+13 26 12 0.420898 0.871094 0.317139
+13 26 13 0.421387 0.871094 0.317139
+13 26 14 0.422119 0.871094 0.317383
+13 26 15 0.427002 0.875488 0.368896
+13 26 16 0.434082 0.881348 0.432129
+13 26 17 0.442871 0.887695 0.501953
+13 26 18 0.452881 0.893555 0.574707
+13 26 19 0.463379 0.896973 0.647949
+13 26 20 0.473145 0.897461 0.716797
+13 26 21 0.481934 0.894043 0.780762
+13 26 22 0.489014 0.886719 0.837891
+13 26 23 0.493896 0.875488 0.88623
+13 26 24 0.49707 0.861816 0.926758
+13 26 25 0.498779 0.84375 0.963379
+13 26 26 0.498779 0.821777 0.995117
+13 26 27 0.496094 0.794922 1
+13 26 28 0.490967 0.763184 1
+13 26 29 0.483887 0.729004 1
+13 26 30 0.47583 0.693359 1
+13 26 31 0.467529 0.658203 1
+13 27 0 0.422852 0.884766 0.322021
+13 27 1 0.422852 0.884766 0.322021
+13 27 2 0.422852 0.884766 0.322021
+13 27 3 0.422852 0.884766 0.322021
+13 27 4 0.422852 0.884766 0.322021
+13 27 5 0.422852 0.884766 0.322021
+13 27 6 0.422852 0.884766 0.322021
+13 27 7 0.422852 0.884766 0.322021
+13 27 8 0.422852 0.884766 0.322021
+13 27 9 0.422852 0.884766 0.322021
+13 27 10 0.423096 0.885254 0.322021
+13 27 11 0.423096 0.885254 0.322021
+13 27 12 0.42334 0.885254 0.322021
+13 27 13 0.423828 0.885254 0.322266
+13 27 14 0.424561 0.885742 0.322266
+13 27 15 0.427734 0.888184 0.354736
+13 27 16 0.434082 0.894043 0.414062
+13 27 17 0.442139 0.900391 0.47998
+13 27 18 0.45166 0.906738 0.549805
+13 27 19 0.461914 0.911621 0.620117
+13 27 20 0.471924 0.914062 0.687012
+13 27 21 0.480957 0.913086 0.750977
+13 27 22 0.48877 0.908691 0.808594
+13 27 23 0.494629 0.900391 0.858398
+13 27 24 0.498779 0.88916 0.901367
+13 27 25 0.501465 0.874512 0.940918
+13 27 26 0.502441 0.85498 0.976562
+13 27 27 0.501465 0.830566 1
+13 27 28 0.498291 0.801758 1
+13 27 29 0.492432 0.768555 1
+13 27 30 0.485107 0.733398 1
+13 27 31 0.476807 0.697266 1
+13 28 0 0.424561 0.896973 0.326172
+13 28 1 0.424561 0.896973 0.326172
+13 28 2 0.424561 0.896973 0.326172
+13 28 3 0.424561 0.896973 0.326172
+13 28 4 0.424561 0.896973 0.326172
+13 28 5 0.424561 0.896973 0.326172
+13 28 6 0.424561 0.896973 0.326172
+13 28 7 0.424561 0.896973 0.326172
+13 28 8 0.424561 0.896973 0.326172
+13 28 9 0.424805 0.896973 0.326172
+13 28 10 0.424805 0.896973 0.326172
+13 28 11 0.424805 0.896973 0.326172
+13 28 12 0.425049 0.896973 0.326172
+13 28 13 0.425537 0.896973 0.326172
+13 28 14 0.426025 0.897461 0.326416
+13 28 15 0.427979 0.898438 0.340332
+13 28 16 0.433594 0.903809 0.395752
+13 28 17 0.441162 0.910156 0.458008
+13 28 18 0.449951 0.916992 0.524414
+13 28 19 0.459717 0.922852 0.591309
+13 28 20 0.469482 0.926758 0.65625
+13 28 21 0.47876 0.928223 0.71875
+13 28 22 0.486816 0.92627 0.776367
+13 28 23 0.493408 0.920898 0.827148
+13 28 24 0.498535 0.912598 0.871582
+13 28 25 0.502441 0.900879 0.913574
+13 28 26 0.504883 0.884277 0.952148
+13 28 27 0.504883 0.862793 0.986328
+13 28 28 0.50293 0.836914 1
+13 28 29 0.499023 0.806152 1
+13 28 30 0.49292 0.771973 1
+13 28 31 0.485596 0.736328 1
+13 29 0 0.425537 0.905762 0.329346
+13 29 1 0.425537 0.905762 0.329346
+13 29 2 0.425537 0.905762 0.329346
+13 29 3 0.425537 0.905762 0.329346
+13 29 4 0.425537 0.905762 0.329346
+13 29 5 0.425537 0.905762 0.329346
+13 29 6 0.425537 0.905762 0.329346
+13 29 7 0.425537 0.905762 0.329346
+13 29 8 0.425537 0.905762 0.329346
+13 29 9 0.425537 0.905762 0.329346
+13 29 10 0.425781 0.905762 0.329346
+13 29 11 0.425781 0.905762 0.329346
+13 29 12 0.426025 0.905762 0.329346
+13 29 13 0.42627 0.90625 0.329346
+13 29 14 0.426758 0.90625 0.329346
+13 29 15 0.42749 0.90625 0.32959
+13 29 16 0.432373 0.911133 0.377441
+13 29 17 0.439209 0.91748 0.435791
+13 29 18 0.44751 0.924316 0.498047
+13 29 19 0.456543 0.930664 0.561523
+13 29 20 0.46582 0.935547 0.624023
+13 29 21 0.475098 0.938965 0.684082
+13 29 22 0.483398 0.938965 0.741211
+13 29 23 0.490723 0.936523 0.791992
+13 29 24 0.496582 0.931152 0.837402
+13 29 25 0.501465 0.922363 0.881348
+13 29 26 0.504883 0.90918 0.922363
+13 29 27 0.506348 0.891113 0.959961
+13 29 28 0.505859 0.868164 0.992676
+13 29 29 0.503906 0.84082 1
+13 29 30 0.499512 0.80957 1
+13 29 31 0.493408 0.775391 1
+13 30 0 0.425293 0.911621 0.331299
+13 30 1 0.425293 0.911621 0.331299
+13 30 2 0.425293 0.911621 0.331299
+13 30 3 0.425293 0.911621 0.331299
+13 30 4 0.425293 0.911621 0.331299
+13 30 5 0.425293 0.911621 0.331299
+13 30 6 0.425293 0.911621 0.331299
+13 30 7 0.425293 0.911621 0.331299
+13 30 8 0.425293 0.911621 0.331299
+13 30 9 0.425293 0.911621 0.331299
+13 30 10 0.425293 0.911621 0.331299
+13 30 11 0.425537 0.911621 0.331299
+13 30 12 0.425781 0.911621 0.331299
+13 30 13 0.426025 0.911621 0.331299
+13 30 14 0.42627 0.911621 0.331299
+13 30 15 0.427002 0.912109 0.331543
+13 30 16 0.430176 0.915039 0.359131
+13 30 17 0.436279 0.920898 0.41333
+13 30 18 0.443848 0.927734 0.47168
+13 30 19 0.452393 0.93457 0.531738
+13 30 20 0.461182 0.94043 0.590332
+13 30 21 0.469971 0.944824 0.648438
+13 30 22 0.478516 0.947266 0.703613
+13 30 23 0.486084 0.946777 0.753906
+13 30 24 0.492432 0.944336 0.799316
+13 30 25 0.498047 0.938477 0.844238
+13 30 26 0.502441 0.928711 0.887695
+13 30 27 0.505371 0.914551 0.928223
+13 30 28 0.506836 0.895508 0.965332
+13 30 29 0.506348 0.87207 0.997559
+13 30 30 0.503906 0.844238 1
+13 30 31 0.499756 0.812012 1
+13 31 0 0.424805 0.915527 0.33252
+13 31 1 0.424805 0.915527 0.33252
+13 31 2 0.424805 0.915527 0.33252
+13 31 3 0.424805 0.915527 0.33252
+13 31 4 0.424805 0.915527 0.33252
+13 31 5 0.424805 0.915527 0.33252
+13 31 6 0.424805 0.915527 0.33252
+13 31 7 0.424805 0.915527 0.33252
+13 31 8 0.424805 0.915527 0.33252
+13 31 9 0.424805 0.915527 0.33252
+13 31 10 0.424805 0.915527 0.33252
+13 31 11 0.424805 0.915527 0.332764
+13 31 12 0.425049 0.915527 0.332764
+13 31 13 0.425293 0.916016 0.332764
+13 31 14 0.425537 0.916016 0.332764
+13 31 15 0.42627 0.916016 0.332764
+13 31 16 0.427734 0.916992 0.341553
+13 31 17 0.433105 0.922363 0.391602
+13 31 18 0.439697 0.928711 0.445801
+13 31 19 0.447266 0.935059 0.501465
+13 31 20 0.455566 0.941406 0.557129
+13 31 21 0.464111 0.946777 0.611816
+13 31 22 0.472168 0.950684 0.665039
+13 31 23 0.479736 0.952148 0.713867
+13 31 24 0.486572 0.95166 0.758789
+13 31 25 0.49292 0.949219 0.803711
+13 31 26 0.498535 0.942871 0.848633
+13 31 27 0.50293 0.933105 0.89209
+13 31 28 0.506348 0.918457 0.933105
+13 31 29 0.507324 0.899414 0.969727
+13 31 30 0.506836 0.875 1
+13 31 31 0.504395 0.84668 1
+14 0 0 0.41333 0.304932 0
+14 0 1 0.41333 0.304932 0
+14 0 2 0.41333 0.304932 0
+14 0 3 0.41333 0.304932 0
+14 0 4 0.41333 0.304932 0
+14 0 5 0.41333 0.305176 0
+14 0 6 0.41333 0.305176 0
+14 0 7 0.413574 0.30542 0
+14 0 8 0.413574 0.305664 0
+14 0 9 0.415771 0.307373 0
+14 0 10 0.419678 0.309814 0.140381
+14 0 11 0.424072 0.312012 0.222656
+14 0 12 0.422363 0.311768 0.297852
+14 0 13 0.405518 0.30835 0.356689
+14 0 14 0.404541 0.311279 0.424072
+14 0 15 0.40918 0.315186 0.50293
+14 0 16 0.414062 0.319336 0.585449
+14 0 17 0.418213 0.322754 0.664551
+14 0 18 0.422119 0.326172 0.737305
+14 0 19 0.425781 0.329346 0.800293
+14 0 20 0.42627 0.330078 0.848145
+14 0 21 0.410156 0.317871 0.853027
+14 0 22 0.398682 0.309326 0.858398
+14 0 23 0.391113 0.303711 0.864746
+14 0 24 0.385986 0.300049 0.871582
+14 0 25 0.38208 0.297119 0.878906
+14 0 26 0.37915 0.294922 0.886719
+14 0 27 0.377441 0.293701 0.895508
+14 0 28 0.376709 0.293213 0.905273
+14 0 29 0.376953 0.293457 0.916016
+14 0 30 0.37793 0.294434 0.927734
+14 0 31 0.379639 0.295654 0.939453
+14 1 0 0.41333 0.304932 0
+14 1 1 0.41333 0.304932 0
+14 1 2 0.41333 0.304932 0
+14 1 3 0.41333 0.304932 0
+14 1 4 0.41333 0.305176 0
+14 1 5 0.41333 0.305176 0
+14 1 6 0.41333 0.305176 0
+14 1 7 0.413574 0.30542 0
+14 1 8 0.413574 0.305664 0
+14 1 9 0.415771 0.307373 0
+14 1 10 0.419678 0.309814 0.140381
+14 1 11 0.424072 0.312012 0.222656
+14 1 12 0.422363 0.311768 0.297852
+14 1 13 0.405518 0.30835 0.356689
+14 1 14 0.404541 0.311523 0.424072
+14 1 15 0.40918 0.315186 0.50293
+14 1 16 0.414062 0.319336 0.585449
+14 1 17 0.418213 0.322754 0.664551
+14 1 18 0.422119 0.326172 0.737305
+14 1 19 0.425781 0.329346 0.800293
+14 1 20 0.42627 0.330078 0.848145
+14 1 21 0.410156 0.317871 0.853027
+14 1 22 0.398682 0.309326 0.858398
+14 1 23 0.391113 0.303711 0.864746
+14 1 24 0.385986 0.300049 0.871582
+14 1 25 0.38208 0.297119 0.878906
+14 1 26 0.37915 0.294922 0.886719
+14 1 27 0.377441 0.293701 0.895508
+14 1 28 0.376709 0.293213 0.905273
+14 1 29 0.376953 0.293457 0.916016
+14 1 30 0.37793 0.294434 0.927734
+14 1 31 0.379639 0.295654 0.939453
+14 2 0 0.41333 0.305176 0
+14 2 1 0.41333 0.305176 0
+14 2 2 0.41333 0.305176 0
+14 2 3 0.41333 0.305176 0
+14 2 4 0.41333 0.305176 0
+14 2 5 0.41333 0.305176 0
+14 2 6 0.413574 0.305176 0
+14 2 7 0.413574 0.30542 0
+14 2 8 0.413574 0.305664 0
+14 2 9 0.415771 0.307617 0
+14 2 10 0.419678 0.309814 0.140381
+14 2 11 0.424072 0.312256 0.222656
+14 2 12 0.422363 0.311768 0.297852
+14 2 13 0.405518 0.30835 0.356689
+14 2 14 0.404541 0.311523 0.424072
+14 2 15 0.40918 0.315186 0.50293
+14 2 16 0.414062 0.319336 0.585449
+14 2 17 0.418213 0.322754 0.664551
+14 2 18 0.422119 0.326172 0.737305
+14 2 19 0.425781 0.329346 0.800293
+14 2 20 0.42627 0.330322 0.848145
+14 2 21 0.410156 0.317871 0.853027
+14 2 22 0.398682 0.309326 0.858398
+14 2 23 0.391113 0.303711 0.864746
+14 2 24 0.385986 0.300049 0.871582
+14 2 25 0.38208 0.297119 0.878906
+14 2 26 0.37915 0.294922 0.886719
+14 2 27 0.377441 0.293701 0.895508
+14 2 28 0.376709 0.293213 0.905273
+14 2 29 0.376953 0.293457 0.916016
+14 2 30 0.37793 0.294434 0.927734
+14 2 31 0.379639 0.295898 0.939453
+14 3 0 0.41333 0.305176 0
+14 3 1 0.41333 0.305176 0
+14 3 2 0.41333 0.305176 0
+14 3 3 0.41333 0.305176 0
+14 3 4 0.41333 0.305176 0
+14 3 5 0.41333 0.30542 0
+14 3 6 0.413574 0.30542 0
+14 3 7 0.413574 0.305664 0
+14 3 8 0.413574 0.305908 0
+14 3 9 0.415771 0.307617 0
+14 3 10 0.419678 0.310059 0.140381
+14 3 11 0.424072 0.312256 0.222656
+14 3 12 0.422363 0.312012 0.297852
+14 3 13 0.405518 0.308594 0.356689
+14 3 14 0.404785 0.311523 0.424072
+14 3 15 0.40918 0.31543 0.50293
+14 3 16 0.414062 0.319336 0.585449
+14 3 17 0.418213 0.322998 0.664551
+14 3 18 0.422119 0.326172 0.737305
+14 3 19 0.425781 0.32959 0.800293
+14 3 20 0.42627 0.330322 0.848145
+14 3 21 0.410156 0.317871 0.853027
+14 3 22 0.398682 0.30957 0.858398
+14 3 23 0.391113 0.303711 0.864746
+14 3 24 0.38623 0.300049 0.871582
+14 3 25 0.38208 0.297119 0.878906
+14 3 26 0.37915 0.294922 0.886719
+14 3 27 0.377441 0.293701 0.895508
+14 3 28 0.376709 0.293213 0.905273
+14 3 29 0.376953 0.293701 0.916016
+14 3 30 0.37793 0.294434 0.927734
+14 3 31 0.379639 0.295898 0.939453
+14 4 0 0.41333 0.30542 0
+14 4 1 0.41333 0.30542 0
+14 4 2 0.41333 0.30542 0
+14 4 3 0.413574 0.30542 0
+14 4 4 0.413574 0.30542 0
+14 4 5 0.413574 0.30542 0
+14 4 6 0.413574 0.305664 0
+14 4 7 0.413574 0.305908 0
+14 4 8 0.413574 0.306152 0
+14 4 9 0.415771 0.307861 0
+14 4 10 0.419678 0.310303 0.140381
+14 4 11 0.424072 0.3125 0.222656
+14 4 12 0.422363 0.312256 0.297852
+14 4 13 0.405762 0.308594 0.356689
+14 4 14 0.404785 0.311768 0.424316
+14 4 15 0.409424 0.31543 0.50293
+14 4 16 0.414062 0.31958 0.585449
+14 4 17 0.418213 0.322998 0.664551
+14 4 18 0.422119 0.326416 0.737305
+14 4 19 0.425781 0.32959 0.800293
+14 4 20 0.42627 0.330322 0.848145
+14 4 21 0.410156 0.318115 0.853027
+14 4 22 0.398682 0.30957 0.858398
+14 4 23 0.391113 0.303955 0.864746
+14 4 24 0.38623 0.300049 0.871582
+14 4 25 0.38208 0.297119 0.878906
+14 4 26 0.37915 0.294922 0.886719
+14 4 27 0.377441 0.293701 0.895508
+14 4 28 0.376709 0.293213 0.905273
+14 4 29 0.376953 0.293701 0.916016
+14 4 30 0.37793 0.294434 0.927734
+14 4 31 0.379639 0.295898 0.939453
+14 5 0 0.413574 0.305908 0
+14 5 1 0.413574 0.305908 0
+14 5 2 0.413574 0.305908 0
+14 5 3 0.413574 0.305908 0
+14 5 4 0.413574 0.305908 0
+14 5 5 0.413574 0.305908 0
+14 5 6 0.413574 0.306152 0
+14 5 7 0.413574 0.306152 0
+14 5 8 0.413574 0.306641 0
+14 5 9 0.415771 0.30835 0
+14 5 10 0.419678 0.310791 0.140381
+14 5 11 0.424316 0.312988 0.222656
+14 5 12 0.422607 0.3125 0.298096
+14 5 13 0.405762 0.309082 0.356689
+14 5 14 0.404785 0.312012 0.424316
+14 5 15 0.409424 0.315674 0.50293
+14 5 16 0.414062 0.319824 0.585449
+14 5 17 0.418213 0.323242 0.664551
+14 5 18 0.422119 0.32666 0.737305
+14 5 19 0.425781 0.329834 0.800293
+14 5 20 0.42627 0.330566 0.848145
+14 5 21 0.410156 0.318115 0.853027
+14 5 22 0.398926 0.30957 0.858398
+14 5 23 0.391357 0.303955 0.864746
+14 5 24 0.38623 0.300049 0.87207
+14 5 25 0.38208 0.297119 0.878906
+14 5 26 0.37915 0.294922 0.886719
+14 5 27 0.377441 0.293701 0.895508
+14 5 28 0.376709 0.293457 0.905273
+14 5 29 0.376953 0.293701 0.916016
+14 5 30 0.37793 0.294434 0.927734
+14 5 31 0.379639 0.295898 0.939453
+14 6 0 0.413574 0.306885 0
+14 6 1 0.413574 0.306885 0
+14 6 2 0.413574 0.306885 0
+14 6 3 0.413574 0.306885 0
+14 6 4 0.413574 0.306885 0
+14 6 5 0.413574 0.306885 0
+14 6 6 0.413574 0.306885 0
+14 6 7 0.413574 0.307129 0
+14 6 8 0.413818 0.307373 0
+14 6 9 0.415771 0.309326 0
+14 6 10 0.419922 0.311523 0.140259
+14 6 11 0.424316 0.313965 0.222656
+14 6 12 0.422852 0.313477 0.298096
+14 6 13 0.405762 0.30957 0.356689
+14 6 14 0.404785 0.3125 0.424316
+14 6 15 0.409424 0.316406 0.50293
+14 6 16 0.414307 0.320312 0.585449
+14 6 17 0.418213 0.32373 0.665039
+14 6 18 0.422119 0.326904 0.737305
+14 6 19 0.425781 0.330078 0.800781
+14 6 20 0.426514 0.330811 0.848145
+14 6 21 0.410156 0.318604 0.853027
+14 6 22 0.398926 0.309814 0.858398
+14 6 23 0.391357 0.304199 0.865234
+14 6 24 0.38623 0.300293 0.87207
+14 6 25 0.38208 0.297363 0.878906
+14 6 26 0.37915 0.295166 0.886719
+14 6 27 0.377441 0.293945 0.895508
+14 6 28 0.376709 0.293457 0.905273
+14 6 29 0.376953 0.293701 0.916016
+14 6 30 0.378174 0.294678 0.927734
+14 6 31 0.379639 0.295898 0.939453
+14 7 0 0.413818 0.308594 0
+14 7 1 0.413818 0.308594 0
+14 7 2 0.413818 0.308594 0
+14 7 3 0.413818 0.308594 0
+14 7 4 0.413818 0.308594 0
+14 7 5 0.413818 0.308594 0
+14 7 6 0.413818 0.308594 0
+14 7 7 0.413818 0.308838 0
+14 7 8 0.414062 0.309082 0
+14 7 9 0.416016 0.310791 0
+14 7 10 0.420166 0.313232 0.140137
+14 7 11 0.424561 0.31543 0.222534
+14 7 12 0.42334 0.315186 0.298096
+14 7 13 0.406006 0.310791 0.356934
+14 7 14 0.404785 0.313721 0.424316
+14 7 15 0.409424 0.317383 0.50293
+14 7 16 0.414307 0.321289 0.585449
+14 7 17 0.418457 0.324707 0.665039
+14 7 18 0.422119 0.327881 0.737305
+14 7 19 0.426025 0.330811 0.800781
+14 7 20 0.426514 0.331543 0.848633
+14 7 21 0.410156 0.319092 0.853027
+14 7 22 0.398926 0.310303 0.858887
+14 7 23 0.391357 0.304688 0.865234
+14 7 24 0.38623 0.300781 0.87207
+14 7 25 0.382324 0.297607 0.878906
+14 7 26 0.379395 0.29541 0.886719
+14 7 27 0.377441 0.294189 0.895508
+14 7 28 0.376709 0.293701 0.905273
+14 7 29 0.377197 0.293945 0.916504
+14 7 30 0.378174 0.294678 0.927734
+14 7 31 0.379639 0.296143 0.939453
+14 8 0 0.414062 0.311768 0
+14 8 1 0.414062 0.311768 0
+14 8 2 0.414062 0.311768 0
+14 8 3 0.414062 0.311768 0
+14 8 4 0.414062 0.311768 0
+14 8 5 0.414062 0.311768 0
+14 8 6 0.414062 0.312012 0
+14 8 7 0.414062 0.312012 0
+14 8 8 0.414307 0.3125 0
+14 8 9 0.41626 0.314209 0
+14 8 10 0.42041 0.316406 0.140015
+14 8 11 0.424805 0.318604 0.222412
+14 8 12 0.424072 0.318359 0.298096
+14 8 13 0.406494 0.313232 0.357178
+14 8 14 0.405029 0.315674 0.424316
+14 8 15 0.409668 0.319336 0.50293
+14 8 16 0.414551 0.323242 0.585449
+14 8 17 0.418701 0.326416 0.665039
+14 8 18 0.422363 0.329346 0.737305
+14 8 19 0.426025 0.332275 0.800781
+14 8 20 0.426758 0.333008 0.848633
+14 8 21 0.4104 0.320312 0.853027
+14 8 22 0.39917 0.311279 0.858887
+14 8 23 0.391602 0.30542 0.865234
+14 8 24 0.386475 0.301514 0.87207
+14 8 25 0.382324 0.29834 0.879395
+14 8 26 0.379395 0.296143 0.886719
+14 8 27 0.377441 0.294678 0.895508
+14 8 28 0.376953 0.294189 0.905762
+14 8 29 0.377197 0.294434 0.916504
+14 8 30 0.378174 0.295166 0.927734
+14 8 31 0.379639 0.296387 0.939453
+14 9 0 0.414551 0.317871 0
+14 9 1 0.414551 0.317871 0
+14 9 2 0.414551 0.317871 0
+14 9 3 0.414551 0.317871 0
+14 9 4 0.414551 0.317871 0
+14 9 5 0.414551 0.317871 0
+14 9 6 0.414551 0.317871 0
+14 9 7 0.414551 0.318115 0
+14 9 8 0.414551 0.318359 0
+14 9 9 0.416504 0.320068 0
+14 9 10 0.420898 0.32251 0.140259
+14 9 11 0.425537 0.324707 0.222046
+14 9 12 0.425537 0.324219 0.29834
+14 9 13 0.407471 0.317871 0.357666
+14 9 14 0.405273 0.319824 0.424316
+14 9 15 0.409912 0.323242 0.50293
+14 9 16 0.414795 0.326904 0.585449
+14 9 17 0.418945 0.329834 0.665039
+14 9 18 0.422607 0.33252 0.737305
+14 9 19 0.42627 0.334961 0.800781
+14 9 20 0.427246 0.335449 0.849121
+14 9 21 0.410889 0.322266 0.853516
+14 9 22 0.399414 0.313232 0.859375
+14 9 23 0.391846 0.307129 0.865723
+14 9 24 0.386719 0.302979 0.872559
+14 9 25 0.382568 0.299561 0.879395
+14 9 26 0.379395 0.297119 0.887207
+14 9 27 0.377686 0.29541 0.895508
+14 9 28 0.376953 0.294922 0.905762
+14 9 29 0.377197 0.294922 0.916504
+14 9 30 0.378174 0.295654 0.927734
+14 9 31 0.379883 0.296875 0.939453
+14 10 0 0.414551 0.327637 0
+14 10 1 0.414551 0.327637 0
+14 10 2 0.414551 0.327637 0
+14 10 3 0.414551 0.327637 0
+14 10 4 0.414551 0.327637 0
+14 10 5 0.414551 0.327637 0
+14 10 6 0.414551 0.327881 0
+14 10 7 0.414795 0.327881 0
+14 10 8 0.414795 0.328125 0
+14 10 9 0.416504 0.329834 0
+14 10 10 0.420898 0.332275 0.141846
+14 10 11 0.426514 0.334961 0.221191
+14 10 12 0.427734 0.334717 0.29834
+14 10 13 0.409424 0.326172 0.358643
+14 10 14 0.406006 0.326904 0.424316
+14 10 15 0.410645 0.330078 0.503418
+14 10 16 0.415527 0.333252 0.585938
+14 10 17 0.419434 0.335693 0.665039
+14 10 18 0.42334 0.337891 0.737793
+14 10 19 0.427002 0.339844 0.80127
+14 10 20 0.427979 0.339844 0.849609
+14 10 21 0.411377 0.326172 0.854492
+14 10 22 0.399902 0.31665 0.859863
+14 10 23 0.392334 0.310059 0.866211
+14 10 24 0.386963 0.30542 0.873047
+14 10 25 0.382812 0.301758 0.879883
+14 10 26 0.379883 0.299072 0.887207
+14 10 27 0.37793 0.297119 0.895996
+14 10 28 0.377197 0.296387 0.905762
+14 10 29 0.377441 0.296387 0.916504
+14 10 30 0.378418 0.296875 0.928223
+14 10 31 0.379883 0.297852 0.939941
+14 11 0 0.413574 0.342529 0
+14 11 1 0.413574 0.342529 0
+14 11 2 0.413574 0.342529 0
+14 11 3 0.413818 0.342529 0
+14 11 4 0.413818 0.342529 0
+14 11 5 0.413818 0.342529 0
+14 11 6 0.413818 0.342529 0
+14 11 7 0.413818 0.342773 0
+14 11 8 0.413818 0.343018 0
+14 11 9 0.415283 0.344238 0.0491638
+14 11 10 0.419189 0.34668 0.14856
+14 11 11 0.425537 0.350098 0.220825
+14 11 12 0.429199 0.351074 0.297119
+14 11 13 0.413086 0.340576 0.36084
+14 11 14 0.406982 0.338867 0.424561
+14 11 15 0.411621 0.341553 0.503418
+14 11 16 0.416504 0.344238 0.585938
+14 11 17 0.420654 0.345947 0.665527
+14 11 18 0.424316 0.347168 0.738281
+14 11 19 0.427734 0.348145 0.801758
+14 11 20 0.429199 0.347656 0.851074
+14 11 21 0.412598 0.332764 0.855469
+14 11 22 0.401123 0.322266 0.861328
+14 11 23 0.393311 0.314941 0.867676
+14 11 24 0.387695 0.309814 0.873535
+14 11 25 0.383301 0.30542 0.880371
+14 11 26 0.380371 0.302246 0.887695
+14 11 27 0.378418 0.300049 0.896484
+14 11 28 0.377686 0.299072 0.90625
+14 11 29 0.377686 0.298584 0.916992
+14 11 30 0.378662 0.298828 0.928223
+14 11 31 0.380127 0.299561 0.939941
+14 12 0 0.411377 0.362549 0.086853
+14 12 1 0.411377 0.362549 0.086853
+14 12 2 0.411377 0.362549 0.086853
+14 12 3 0.411377 0.362549 0.086853
+14 12 4 0.411377 0.362793 0.0869141
+14 12 5 0.411377 0.362793 0.0869751
+14 12 6 0.411377 0.362793 0.0870972
+14 12 7 0.411377 0.362793 0.0874023
+14 12 8 0.411377 0.363037 0.0878906
+14 12 9 0.412109 0.363525 0.113037
+14 12 10 0.414551 0.365234 0.166382
+14 12 11 0.419434 0.368164 0.224243
+14 12 12 0.427002 0.372314 0.293701
+14 12 13 0.420166 0.36499 0.364014
+14 12 14 0.408691 0.357422 0.424561
+14 12 15 0.41333 0.359863 0.503418
+14 12 16 0.418213 0.361572 0.586426
+14 12 17 0.422363 0.362061 0.666016
+14 12 18 0.426025 0.362061 0.73877
+14 12 19 0.429443 0.361572 0.802246
+14 12 20 0.431152 0.360352 0.853027
+14 12 21 0.414551 0.34375 0.85791
+14 12 22 0.402832 0.331787 0.863281
+14 12 23 0.394531 0.323242 0.869141
+14 12 24 0.388672 0.316895 0.874512
+14 12 25 0.384277 0.311768 0.881348
+14 12 26 0.381104 0.307861 0.888672
+14 12 27 0.37915 0.305176 0.897461
+14 12 28 0.378174 0.303223 0.907227
+14 12 29 0.378418 0.30249 0.91748
+14 12 30 0.37915 0.302246 0.928711
+14 12 31 0.380615 0.30249 0.94043
+14 13 0 0.414062 0.392822 0.150757
+14 13 1 0.414062 0.392822 0.150757
+14 13 2 0.414062 0.392822 0.150757
+14 13 3 0.414062 0.392822 0.150757
+14 13 4 0.414062 0.392822 0.150757
+14 13 5 0.414062 0.392822 0.150879
+14 13 6 0.414062 0.392822 0.150879
+14 13 7 0.414062 0.393066 0.150879
+14 13 8 0.414062 0.393066 0.151123
+14 13 9 0.414307 0.393311 0.156616
+14 13 10 0.414307 0.393066 0.192749
+14 13 11 0.414307 0.392578 0.237671
+14 13 12 0.415283 0.392334 0.292236
+14 13 13 0.421387 0.395508 0.361084
+14 13 14 0.411133 0.38501 0.424561
+14 13 15 0.416016 0.386475 0.503418
+14 13 16 0.420898 0.387207 0.586426
+14 13 17 0.425049 0.386475 0.666504
+14 13 18 0.428467 0.384521 0.739746
+14 13 19 0.431885 0.382324 0.803223
+14 13 20 0.434326 0.379639 0.855957
+14 13 21 0.41748 0.360596 0.86084
+14 13 22 0.405029 0.346191 0.865723
+14 13 23 0.396484 0.335938 0.871094
+14 13 24 0.390381 0.328125 0.876465
+14 13 25 0.385986 0.322021 0.882812
+14 13 26 0.382568 0.316895 0.890137
+14 13 27 0.380371 0.312988 0.898438
+14 13 28 0.379395 0.310303 0.908203
+14 13 29 0.379395 0.30835 0.918945
+14 13 30 0.379883 0.307373 0.929688
+14 13 31 0.381348 0.307129 0.941406
+14 14 0 0.425781 0.440674 0.177002
+14 14 1 0.425781 0.440674 0.177002
+14 14 2 0.425781 0.440674 0.177002
+14 14 3 0.425781 0.440674 0.177002
+14 14 4 0.425781 0.440674 0.177002
+14 14 5 0.425781 0.440674 0.177002
+14 14 6 0.425781 0.440674 0.177002
+14 14 7 0.425781 0.440918 0.177002
+14 14 8 0.426025 0.440918 0.177124
+14 14 9 0.426025 0.441162 0.177124
+14 14 10 0.426025 0.440918 0.205811
+14 14 11 0.425537 0.439453 0.249146
+14 14 12 0.424072 0.437012 0.301514
+14 14 13 0.420898 0.431641 0.361084
+14 14 14 0.414795 0.422607 0.424072
+14 14 15 0.419678 0.42334 0.503418
+14 14 16 0.424805 0.423096 0.586426
+14 14 17 0.428955 0.42041 0.666992
+14 14 18 0.432373 0.416504 0.740723
+14 14 19 0.435547 0.411865 0.804688
+14 14 20 0.437744 0.406738 0.857422
+14 14 21 0.421631 0.385254 0.864746
+14 14 22 0.408691 0.367676 0.869629
+14 14 23 0.399902 0.35498 0.874512
+14 14 24 0.393311 0.345215 0.879883
+14 14 25 0.388428 0.337158 0.885742
+14 14 26 0.384766 0.330322 0.893066
+14 14 27 0.382324 0.324951 0.900879
+14 14 28 0.381104 0.320801 0.910645
+14 14 29 0.380859 0.317871 0.920898
+14 14 30 0.381348 0.315674 0.931641
+14 14 31 0.382568 0.314453 0.942871
+14 15 0 0.420898 0.480469 0.188354
+14 15 1 0.420898 0.480469 0.188354
+14 15 2 0.420898 0.480469 0.188354
+14 15 3 0.420898 0.480469 0.188354
+14 15 4 0.420898 0.480469 0.188354
+14 15 5 0.420898 0.480469 0.188354
+14 15 6 0.420898 0.480469 0.188354
+14 15 7 0.420898 0.480469 0.188354
+14 15 8 0.421143 0.480713 0.188477
+14 15 9 0.421143 0.480957 0.188477
+14 15 10 0.421387 0.480713 0.202637
+14 15 11 0.421143 0.479492 0.244263
+14 15 12 0.420166 0.477051 0.295166
+14 15 13 0.418701 0.4729 0.354248
+14 15 14 0.419189 0.469727 0.422607
+14 15 15 0.424316 0.470215 0.501465
+14 15 16 0.429688 0.468994 0.585449
+14 15 17 0.434326 0.464844 0.666992
+14 15 18 0.437744 0.458496 0.741211
+14 15 19 0.440918 0.451172 0.806152
+14 15 20 0.442871 0.443359 0.859863
+14 15 21 0.427979 0.419189 0.871094
+14 15 22 0.414551 0.397949 0.875488
+14 15 23 0.404785 0.38208 0.879883
+14 15 24 0.397949 0.369629 0.884766
+14 15 25 0.392578 0.359131 0.890625
+14 15 26 0.388428 0.350098 0.897461
+14 15 27 0.385498 0.342529 0.904785
+14 15 28 0.383789 0.336426 0.914062
+14 15 29 0.383301 0.331787 0.923828
+14 15 30 0.383545 0.327881 0.934082
+14 15 31 0.384277 0.325195 0.945312
+14 16 0 0.416748 0.525391 0.201904
+14 16 1 0.416748 0.525391 0.201904
+14 16 2 0.416748 0.525391 0.201904
+14 16 3 0.416748 0.525391 0.201904
+14 16 4 0.416748 0.525391 0.201904
+14 16 5 0.416748 0.525391 0.201904
+14 16 6 0.416748 0.525391 0.201904
+14 16 7 0.416748 0.525391 0.202026
+14 16 8 0.416748 0.525879 0.202026
+14 16 9 0.416992 0.525879 0.202026
+14 16 10 0.417236 0.526367 0.202148
+14 16 11 0.417725 0.525879 0.239258
+14 16 12 0.418701 0.525391 0.289307
+14 16 13 0.420654 0.524902 0.349121
+14 16 14 0.424316 0.524902 0.419189
+14 16 15 0.429932 0.525391 0.498291
+14 16 16 0.435791 0.523438 0.58252
+14 16 17 0.440674 0.518555 0.665039
+14 16 18 0.444824 0.510254 0.741211
+14 16 19 0.447754 0.500488 0.807129
+14 16 20 0.449707 0.489746 0.861328
+14 16 21 0.436768 0.463867 0.878906
+14 16 22 0.422852 0.438477 0.883789
+14 16 23 0.412598 0.418701 0.888672
+14 16 24 0.405029 0.402832 0.893066
+14 16 25 0.398926 0.38916 0.898438
+14 16 26 0.394043 0.377197 0.904297
+14 16 27 0.390381 0.366699 0.911133
+14 16 28 0.388184 0.358154 0.919434
+14 16 29 0.386963 0.351074 0.928711
+14 16 30 0.386719 0.345215 0.938477
+14 16 31 0.387207 0.340332 0.94873
+14 17 0 0.418457 0.579102 0.219116
+14 17 1 0.418457 0.579102 0.219116
+14 17 2 0.418457 0.579102 0.219116
+14 17 3 0.418457 0.579102 0.219116
+14 17 4 0.418457 0.579102 0.219116
+14 17 5 0.418457 0.579102 0.219116
+14 17 6 0.418457 0.579102 0.219116
+14 17 7 0.418457 0.579102 0.219116
+14 17 8 0.418457 0.579102 0.219238
+14 17 9 0.418701 0.579102 0.219238
+14 17 10 0.418945 0.57959 0.21936
+14 17 11 0.419678 0.580078 0.23645
+14 17 12 0.421631 0.580566 0.284912
+14 17 13 0.424561 0.581543 0.34375
+14 17 14 0.429199 0.583008 0.41333
+14 17 15 0.435303 0.583496 0.491455
+14 17 16 0.44165 0.582031 0.575684
+14 17 17 0.447754 0.577148 0.660156
+14 17 18 0.452393 0.568359 0.737793
+14 17 19 0.455811 0.557129 0.806152
+14 17 20 0.457764 0.543945 0.862305
+14 17 21 0.447998 0.51709 0.887207
+14 17 22 0.434326 0.488281 0.895508
+14 17 23 0.423584 0.4646 0.900879
+14 17 24 0.415039 0.445068 0.905273
+14 17 25 0.407959 0.427734 0.909668
+14 17 26 0.4021 0.412109 0.915039
+14 17 27 0.397705 0.398193 0.920898
+14 17 28 0.394531 0.386475 0.927734
+14 17 29 0.392578 0.376221 0.936035
+14 17 30 0.391357 0.367676 0.944824
+14 17 31 0.391113 0.360352 0.954102
+14 18 0 0.422119 0.633301 0.237061
+14 18 1 0.422119 0.633301 0.237061
+14 18 2 0.422119 0.633301 0.237061
+14 18 3 0.422119 0.633301 0.237061
+14 18 4 0.422119 0.633301 0.237061
+14 18 5 0.422119 0.633301 0.237061
+14 18 6 0.422119 0.633301 0.237061
+14 18 7 0.422119 0.633301 0.237061
+14 18 8 0.422119 0.633301 0.237061
+14 18 9 0.422363 0.633301 0.237061
+14 18 10 0.422363 0.633301 0.237183
+14 18 11 0.422852 0.633789 0.237305
+14 18 12 0.425049 0.634766 0.280029
+14 18 13 0.428467 0.636719 0.336914
+14 18 14 0.43335 0.638672 0.404541
+14 18 15 0.439697 0.640137 0.481445
+14 18 16 0.447021 0.640137 0.565918
+14 18 17 0.454102 0.63623 0.650879
+14 18 18 0.459961 0.62793 0.730957
+14 18 19 0.464355 0.616211 0.801758
+14 18 20 0.466553 0.601562 0.859863
+14 18 21 0.460205 0.576172 0.894043
+14 18 22 0.448486 0.54541 0.908691
+14 18 23 0.437744 0.518555 0.916504
+14 18 24 0.428711 0.495361 0.921387
+14 18 25 0.42041 0.473877 0.925781
+14 18 26 0.41333 0.454102 0.929688
+14 18 27 0.407715 0.436523 0.934082
+14 18 28 0.403076 0.420898 0.939941
+14 18 29 0.399902 0.407227 0.946289
+14 18 30 0.397949 0.395264 0.953613
+14 18 31 0.396729 0.384766 0.961914
+14 19 0 0.42627 0.683105 0.253906
+14 19 1 0.42627 0.683105 0.253906
+14 19 2 0.42627 0.683105 0.253906
+14 19 3 0.42627 0.683105 0.253906
+14 19 4 0.42627 0.683105 0.253906
+14 19 5 0.42627 0.683105 0.253906
+14 19 6 0.42627 0.683105 0.253906
+14 19 7 0.42627 0.683105 0.253906
+14 19 8 0.42627 0.683105 0.253906
+14 19 9 0.426514 0.683594 0.253906
+14 19 10 0.426514 0.683594 0.253906
+14 19 11 0.427002 0.683594 0.25415
+14 19 12 0.428223 0.68457 0.274902
+14 19 13 0.431641 0.686523 0.329102
+14 19 14 0.436768 0.689453 0.394287
+14 19 15 0.443359 0.691895 0.469238
+14 19 16 0.451416 0.692871 0.552246
+14 19 17 0.459473 0.690918 0.637695
+14 19 18 0.466797 0.68457 0.720215
+14 19 19 0.472168 0.673828 0.792969
+14 19 20 0.475098 0.658691 0.854492
+14 19 21 0.472168 0.635742 0.896973
+14 19 22 0.463867 0.606445 0.920898
+14 19 23 0.453857 0.577637 0.933105
+14 19 24 0.44458 0.55127 0.939941
+14 19 25 0.435547 0.526367 0.944824
+14 19 26 0.42749 0.502441 0.948242
+14 19 27 0.420166 0.480225 0.95166
+14 19 28 0.414307 0.460449 0.955078
+14 19 29 0.409668 0.442871 0.959961
+14 19 30 0.406006 0.427002 0.965332
+14 19 31 0.403809 0.41333 0.97168
+14 20 0 0.43042 0.727539 0.268799
+14 20 1 0.43042 0.727539 0.268799
+14 20 2 0.43042 0.727539 0.268799
+14 20 3 0.43042 0.727539 0.268799
+14 20 4 0.43042 0.727539 0.268799
+14 20 5 0.43042 0.727539 0.268799
+14 20 6 0.43042 0.727539 0.268799
+14 20 7 0.43042 0.727539 0.268799
+14 20 8 0.43042 0.727539 0.268799
+14 20 9 0.43042 0.727539 0.268799
+14 20 10 0.430664 0.727539 0.269043
+14 20 11 0.430908 0.728027 0.269043
+14 20 12 0.431396 0.728027 0.269531
+14 20 13 0.434814 0.730469 0.321045
+14 20 14 0.439697 0.733398 0.383301
+14 20 15 0.446289 0.736816 0.455811
+14 20 16 0.45459 0.739258 0.537109
+14 20 17 0.463623 0.739258 0.62207
+14 20 18 0.47168 0.734863 0.705078
+14 20 19 0.478271 0.725586 0.780273
+14 20 20 0.482178 0.711426 0.844238
+14 20 21 0.482666 0.691895 0.89502
+14 20 22 0.478027 0.666016 0.928223
+14 20 23 0.470215 0.637207 0.947266
+14 20 24 0.461426 0.609375 0.95752
+14 20 25 0.452148 0.581543 0.964355
+14 20 26 0.443115 0.553711 0.968262
+14 20 27 0.43457 0.527832 0.970703
+14 20 28 0.427002 0.503418 0.973145
+14 20 29 0.420898 0.481689 0.976074
+14 20 30 0.416016 0.462158 0.979492
+14 20 31 0.412109 0.444824 0.983887
+14 21 0 0.433838 0.765137 0.281738
+14 21 1 0.433838 0.765137 0.281738
+14 21 2 0.433838 0.765137 0.281738
+14 21 3 0.433838 0.765137 0.281738
+14 21 4 0.433838 0.765137 0.281738
+14 21 5 0.433838 0.765137 0.281738
+14 21 6 0.433838 0.765137 0.281738
+14 21 7 0.433838 0.765137 0.281738
+14 21 8 0.433838 0.765137 0.281738
+14 21 9 0.433838 0.765137 0.281738
+14 21 10 0.434082 0.765625 0.281738
+14 21 11 0.434326 0.765625 0.281982
+14 21 12 0.434814 0.765625 0.281982
+14 21 13 0.437012 0.767578 0.3125
+14 21 14 0.441895 0.770508 0.371826
+14 21 15 0.448242 0.774414 0.441162
+14 21 16 0.456543 0.77832 0.52002
+14 21 17 0.466064 0.779785 0.603516
+14 21 18 0.475098 0.777832 0.686523
+14 21 19 0.482666 0.770996 0.763184
+14 21 20 0.487793 0.758789 0.82959
+14 21 21 0.490479 0.742676 0.885742
+14 21 22 0.489746 0.720703 0.928223
+14 21 23 0.484619 0.694824 0.955078
+14 21 24 0.477539 0.666992 0.971191
+14 21 25 0.46875 0.637207 0.980957
+14 21 26 0.459229 0.606934 0.986816
+14 21 27 0.449951 0.577637 0.989746
+14 21 28 0.441162 0.549805 0.991699
+14 21 29 0.433594 0.523926 0.993652
+14 21 30 0.427246 0.5 0.995117
+14 21 31 0.421875 0.47876 0.998047
+14 22 0 0.436279 0.796875 0.29248
+14 22 1 0.436279 0.796875 0.29248
+14 22 2 0.436279 0.796875 0.29248
+14 22 3 0.436279 0.796875 0.29248
+14 22 4 0.436279 0.796875 0.29248
+14 22 5 0.436279 0.796875 0.29248
+14 22 6 0.436279 0.796875 0.29248
+14 22 7 0.436523 0.796875 0.29248
+14 22 8 0.436523 0.796875 0.29248
+14 22 9 0.436523 0.796875 0.29248
+14 22 10 0.436768 0.796875 0.29248
+14 22 11 0.437012 0.796875 0.292725
+14 22 12 0.437256 0.797363 0.292725
+14 22 13 0.438477 0.797852 0.303711
+14 22 14 0.443115 0.80127 0.360107
+14 22 15 0.449219 0.805664 0.426514
+14 22 16 0.45752 0.810059 0.502441
+14 22 17 0.467041 0.813477 0.583984
+14 22 18 0.476562 0.813477 0.666016
+14 22 19 0.485107 0.809082 0.743164
+14 22 20 0.491455 0.799805 0.811523
+14 22 21 0.495605 0.785645 0.870605
+14 22 22 0.49707 0.76709 0.918945
+14 22 23 0.495361 0.745117 0.953613
+14 22 24 0.490479 0.719727 0.976562
+14 22 25 0.483398 0.690918 0.992188
+14 22 26 0.474609 0.659668 1
+14 22 27 0.465088 0.62793 1
+14 22 28 0.455811 0.59668 1
+14 22 29 0.447021 0.567383 1
+14 22 30 0.439209 0.540039 1
+14 22 31 0.432617 0.514648 1
+14 23 0 0.438232 0.821777 0.301025
+14 23 1 0.438232 0.821777 0.301025
+14 23 2 0.438232 0.821777 0.301025
+14 23 3 0.438232 0.821777 0.301025
+14 23 4 0.438232 0.821777 0.301025
+14 23 5 0.438232 0.821777 0.301025
+14 23 6 0.438232 0.821777 0.301025
+14 23 7 0.438232 0.821777 0.301025
+14 23 8 0.438232 0.821777 0.301025
+14 23 9 0.438477 0.821777 0.30127
+14 23 10 0.438477 0.821777 0.30127
+14 23 11 0.438721 0.821777 0.30127
+14 23 12 0.438965 0.822266 0.30127
+14 23 13 0.439697 0.822266 0.301514
+14 23 14 0.443604 0.825684 0.348877
+14 23 15 0.449463 0.830078 0.412109
+14 23 16 0.45752 0.834961 0.485107
+14 23 17 0.466797 0.839355 0.563965
+14 23 18 0.476807 0.841797 0.644531
+14 23 19 0.486084 0.839355 0.72168
+14 23 20 0.493408 0.83252 0.791016
+14 23 21 0.498535 0.820801 0.852539
+14 23 22 0.501465 0.805176 0.903809
+14 23 23 0.501953 0.786133 0.943848
+14 23 24 0.499756 0.764648 0.973633
+14 23 25 0.494873 0.737793 0.995605
+14 23 26 0.487549 0.70752 1
+14 23 27 0.47876 0.674805 1
+14 23 28 0.469238 0.641602 1
+14 23 29 0.459961 0.609375 1
+14 23 30 0.451172 0.578613 1
+14 23 31 0.443359 0.550293 1
+14 24 0 0.439453 0.841797 0.308105
+14 24 1 0.439453 0.841797 0.308105
+14 24 2 0.439453 0.841797 0.308105
+14 24 3 0.439453 0.841797 0.308105
+14 24 4 0.439453 0.841797 0.308105
+14 24 5 0.439453 0.841797 0.308105
+14 24 6 0.439453 0.841797 0.308105
+14 24 7 0.439453 0.841797 0.308105
+14 24 8 0.439453 0.841797 0.308105
+14 24 9 0.439453 0.841797 0.308105
+14 24 10 0.439697 0.841797 0.308105
+14 24 11 0.439697 0.842285 0.308105
+14 24 12 0.440186 0.842285 0.308105
+14 24 13 0.440674 0.842285 0.30835
+14 24 14 0.443359 0.844727 0.338379
+14 24 15 0.448975 0.849121 0.398682
+14 24 16 0.456543 0.854492 0.468506
+14 24 17 0.46582 0.859863 0.544434
+14 24 18 0.47583 0.863281 0.623047
+14 24 19 0.485596 0.863281 0.699707
+14 24 20 0.493652 0.859375 0.769531
+14 24 21 0.5 0.850098 0.832031
+14 24 22 0.503906 0.836426 0.885742
+14 24 23 0.505371 0.819824 0.929199
+14 24 24 0.505371 0.80127 0.963867
+14 24 25 0.50293 0.777832 0.992188
+14 24 26 0.497803 0.749512 1
+14 24 27 0.48999 0.717285 1
+14 24 28 0.481201 0.683594 1
+14 24 29 0.47168 0.649414 1
+14 24 30 0.462402 0.616699 1
+14 24 31 0.453613 0.584961 1
+14 25 0 0.439941 0.859375 0.313965
+14 25 1 0.439941 0.859375 0.313965
+14 25 2 0.439941 0.859375 0.313965
+14 25 3 0.439941 0.859375 0.313965
+14 25 4 0.439941 0.859375 0.313965
+14 25 5 0.439941 0.859375 0.313965
+14 25 6 0.439941 0.859375 0.313965
+14 25 7 0.439941 0.859375 0.313965
+14 25 8 0.440186 0.859375 0.313965
+14 25 9 0.440186 0.859375 0.313965
+14 25 10 0.440186 0.859375 0.313965
+14 25 11 0.44043 0.859863 0.314209
+14 25 12 0.440674 0.859863 0.314209
+14 25 13 0.441162 0.859863 0.314209
+14 25 14 0.442871 0.861328 0.327393
+14 25 15 0.447998 0.865723 0.384521
+14 25 16 0.455322 0.871094 0.450928
+14 25 17 0.464111 0.876953 0.523926
+14 25 18 0.474121 0.881836 0.600098
+14 25 19 0.483887 0.883789 0.674805
+14 25 20 0.492676 0.881836 0.744629
+14 25 21 0.499756 0.875488 0.808105
+14 25 22 0.504883 0.864746 0.86377
+14 25 23 0.507812 0.850586 0.910156
+14 25 24 0.509277 0.834473 0.947754
+14 25 25 0.508789 0.813965 0.981445
+14 25 26 0.505859 0.789062 1
+14 25 27 0.499756 0.758789 1
+14 25 28 0.491943 0.725586 1
+14 25 29 0.48291 0.69043 1
+14 25 30 0.473389 0.655762 1
+14 25 31 0.464355 0.62207 1
+14 26 0 0.44043 0.875488 0.31958
+14 26 1 0.44043 0.875488 0.31958
+14 26 2 0.44043 0.875488 0.31958
+14 26 3 0.44043 0.875488 0.31958
+14 26 4 0.44043 0.875488 0.31958
+14 26 5 0.44043 0.875488 0.31958
+14 26 6 0.44043 0.875488 0.31958
+14 26 7 0.44043 0.875488 0.31958
+14 26 8 0.44043 0.875488 0.31958
+14 26 9 0.440674 0.875488 0.31958
+14 26 10 0.440674 0.875488 0.31958
+14 26 11 0.440918 0.875488 0.31958
+14 26 12 0.441162 0.875488 0.31958
+14 26 13 0.441406 0.875488 0.31958
+14 26 14 0.442139 0.875977 0.319824
+14 26 15 0.446777 0.879883 0.370117
+14 26 16 0.453369 0.885742 0.433105
+14 26 17 0.461914 0.891602 0.502441
+14 26 18 0.471436 0.897461 0.575684
+14 26 19 0.481445 0.900879 0.648438
+14 26 20 0.490479 0.901367 0.717285
+14 26 21 0.498535 0.897949 0.78125
+14 26 22 0.504883 0.890137 0.838379
+14 26 23 0.508789 0.878906 0.886719
+14 26 24 0.51123 0.865234 0.927246
+14 26 25 0.512207 0.847168 0.963867
+14 26 26 0.51123 0.825195 0.996094
+14 26 27 0.507324 0.797852 1
+14 26 28 0.500977 0.766113 1
+14 26 29 0.49292 0.731445 1
+14 26 30 0.483887 0.695801 1
+14 26 31 0.474609 0.660645 1
+14 27 0 0.440674 0.88916 0.324219
+14 27 1 0.440674 0.88916 0.324219
+14 27 2 0.440674 0.88916 0.324219
+14 27 3 0.440674 0.88916 0.324219
+14 27 4 0.440674 0.88916 0.324219
+14 27 5 0.440674 0.88916 0.324219
+14 27 6 0.440674 0.88916 0.324219
+14 27 7 0.440674 0.88916 0.324219
+14 27 8 0.440674 0.88916 0.324219
+14 27 9 0.440674 0.88916 0.324219
+14 27 10 0.440674 0.88916 0.324219
+14 27 11 0.440918 0.88916 0.324219
+14 27 12 0.441162 0.88916 0.324219
+14 27 13 0.44165 0.889648 0.324219
+14 27 14 0.442139 0.889648 0.324463
+14 27 15 0.445312 0.892578 0.355713
+14 27 16 0.451416 0.897949 0.415039
+14 27 17 0.459229 0.904297 0.480957
+14 27 18 0.468506 0.910156 0.550781
+14 27 19 0.478027 0.915039 0.620605
+14 27 20 0.487549 0.91748 0.687988
+14 27 21 0.496094 0.916504 0.751465
+14 27 22 0.50293 0.911621 0.809082
+14 27 23 0.508301 0.903809 0.859375
+14 27 24 0.511719 0.892578 0.901855
+14 27 25 0.513672 0.877441 0.941406
+14 27 26 0.51416 0.85791 0.977051
+14 27 27 0.512207 0.833496 1
+14 27 28 0.507812 0.804688 1
+14 27 29 0.500977 0.770996 1
+14 27 30 0.49292 0.73584 1
+14 27 31 0.483887 0.699219 1
+14 28 0 0.440186 0.900391 0.328125
+14 28 1 0.440186 0.900391 0.328125
+14 28 2 0.440186 0.900391 0.328125
+14 28 3 0.440186 0.900391 0.328125
+14 28 4 0.440186 0.900391 0.328125
+14 28 5 0.440186 0.900391 0.328125
+14 28 6 0.440186 0.900391 0.328125
+14 28 7 0.440186 0.900391 0.328125
+14 28 8 0.440186 0.900391 0.328125
+14 28 9 0.44043 0.900391 0.328125
+14 28 10 0.44043 0.900391 0.328125
+14 28 11 0.44043 0.900391 0.328125
+14 28 12 0.440674 0.900391 0.328125
+14 28 13 0.441162 0.900879 0.328125
+14 28 14 0.44165 0.900879 0.328369
+14 28 15 0.443359 0.902344 0.341064
+14 28 16 0.448975 0.907227 0.396729
+14 28 17 0.456055 0.913574 0.458984
+14 28 18 0.464844 0.92041 0.524902
+14 28 19 0.474121 0.925781 0.591797
+14 28 20 0.483398 0.929688 0.656738
+14 28 21 0.492188 0.931152 0.719238
+14 28 22 0.5 0.929199 0.776855
+14 28 23 0.505859 0.923828 0.827637
+14 28 24 0.510742 0.915527 0.87207
+14 28 25 0.513672 0.90332 0.914062
+14 28 26 0.515137 0.886719 0.952637
+14 28 27 0.515137 0.865723 0.986816
+14 28 28 0.512207 0.839355 1
+14 28 29 0.507324 0.808594 1
+14 28 30 0.500488 0.774414 1
+14 28 31 0.492432 0.738281 1
+14 29 0 0.439209 0.90918 0.331055
+14 29 1 0.439209 0.90918 0.331055
+14 29 2 0.439209 0.90918 0.331055
+14 29 3 0.439209 0.90918 0.331055
+14 29 4 0.439209 0.90918 0.331055
+14 29 5 0.439209 0.90918 0.331055
+14 29 6 0.439209 0.90918 0.331055
+14 29 7 0.439209 0.90918 0.331055
+14 29 8 0.439209 0.90918 0.331055
+14 29 9 0.439209 0.90918 0.331055
+14 29 10 0.439209 0.90918 0.331055
+14 29 11 0.439453 0.90918 0.331055
+14 29 12 0.439453 0.90918 0.331055
+14 29 13 0.439941 0.90918 0.331055
+14 29 14 0.44043 0.90918 0.331055
+14 29 15 0.440918 0.909668 0.331299
+14 29 16 0.445801 0.914062 0.378418
+14 29 17 0.452393 0.92041 0.436523
+14 29 18 0.460449 0.927246 0.498779
+14 29 19 0.469238 0.933594 0.5625
+14 29 20 0.478271 0.938477 0.624512
+14 29 21 0.487061 0.941406 0.685059
+14 29 22 0.495117 0.941895 0.741699
+14 29 23 0.501953 0.938965 0.79248
+14 29 24 0.507324 0.933594 0.837891
+14 29 25 0.511719 0.924805 0.881836
+14 29 26 0.514648 0.911621 0.922852
+14 29 27 0.515625 0.893555 0.960449
+14 29 28 0.514648 0.870117 0.993164
+14 29 29 0.511719 0.842773 1
+14 29 30 0.506836 0.811523 1
+14 29 31 0.5 0.776855 1
+14 30 0 0.437012 0.914551 0.332764
+14 30 1 0.437012 0.914551 0.332764
+14 30 2 0.437012 0.914551 0.332764
+14 30 3 0.437012 0.914551 0.332764
+14 30 4 0.437012 0.914551 0.332764
+14 30 5 0.437012 0.914551 0.332764
+14 30 6 0.437256 0.914551 0.332764
+14 30 7 0.437256 0.914551 0.332764
+14 30 8 0.437256 0.914551 0.332764
+14 30 9 0.437256 0.914551 0.332764
+14 30 10 0.437256 0.914551 0.332764
+14 30 11 0.437256 0.914551 0.332764
+14 30 12 0.4375 0.914551 0.332764
+14 30 13 0.437744 0.914551 0.332764
+14 30 14 0.438232 0.914551 0.332764
+14 30 15 0.438721 0.915039 0.333008
+14 30 16 0.441895 0.91748 0.359863
+14 30 17 0.447754 0.92334 0.414062
+14 30 18 0.455078 0.930176 0.472412
+14 30 19 0.463379 0.937012 0.532227
+14 30 20 0.472168 0.942871 0.591309
+14 30 21 0.480713 0.947266 0.648926
+14 30 22 0.489014 0.949219 0.704102
+14 30 23 0.496094 0.949219 0.754395
+14 30 24 0.501953 0.946289 0.799805
+14 30 25 0.507324 0.94043 0.844727
+14 30 26 0.51123 0.930664 0.888184
+14 30 27 0.51416 0.916504 0.928711
+14 30 28 0.515137 0.897461 0.96582
+14 30 29 0.51416 0.874023 0.998047
+14 30 30 0.510742 0.845703 1
+14 30 31 0.505859 0.813965 1
+14 31 0 0.434814 0.917969 0.333984
+14 31 1 0.434814 0.917969 0.333984
+14 31 2 0.434814 0.917969 0.333984
+14 31 3 0.434814 0.917969 0.333984
+14 31 4 0.434814 0.917969 0.333984
+14 31 5 0.434814 0.917969 0.333984
+14 31 6 0.434814 0.917969 0.333984
+14 31 7 0.434814 0.917969 0.333984
+14 31 8 0.435059 0.917969 0.333984
+14 31 9 0.435059 0.917969 0.333984
+14 31 10 0.435059 0.917969 0.333984
+14 31 11 0.435059 0.917969 0.333984
+14 31 12 0.435303 0.917969 0.333984
+14 31 13 0.435547 0.918457 0.333984
+14 31 14 0.435791 0.918457 0.333984
+14 31 15 0.436279 0.918457 0.333984
+14 31 16 0.437744 0.919434 0.342041
+14 31 17 0.443115 0.924805 0.392334
+14 31 18 0.449707 0.931152 0.446289
+14 31 19 0.457031 0.9375 0.501953
+14 31 20 0.465088 0.943848 0.557617
+14 31 21 0.473389 0.94873 0.612305
+14 31 22 0.481445 0.952637 0.665527
+14 31 23 0.48877 0.954102 0.714355
+14 31 24 0.495117 0.953613 0.759277
+14 31 25 0.501465 0.951172 0.804199
+14 31 26 0.506348 0.944824 0.849121
+14 31 27 0.510742 0.93457 0.892578
+14 31 28 0.513184 0.92041 0.933105
+14 31 29 0.51416 0.900879 0.970215
+14 31 30 0.513184 0.876953 1
+14 31 31 0.510254 0.848145 1
+15 0 0 0.471191 0.3479 0
+15 0 1 0.471191 0.3479 0
+15 0 2 0.471191 0.3479 0
+15 0 3 0.471191 0.3479 0
+15 0 4 0.471191 0.3479 0
+15 0 5 0.471191 0.3479 0
+15 0 6 0.471436 0.3479 0
+15 0 7 0.471436 0.348145 0
+15 0 8 0.471436 0.348389 0
+15 0 9 0.47168 0.348877 0
+15 0 10 0.473877 0.350586 0
+15 0 11 0.478027 0.352783 0.18103
+15 0 12 0.483154 0.355469 0.268311
+15 0 13 0.483887 0.358398 0.351807
+15 0 14 0.477539 0.364258 0.424805
+15 0 15 0.47876 0.368408 0.501953
+15 0 16 0.480957 0.370361 0.584961
+15 0 17 0.481445 0.371094 0.665527
+15 0 18 0.480469 0.370605 0.739258
+15 0 19 0.479004 0.369873 0.803711
+15 0 20 0.476807 0.368652 0.856445
+15 0 21 0.454102 0.351318 0.861816
+15 0 22 0.436768 0.338135 0.866699
+15 0 23 0.424316 0.328857 0.87207
+15 0 24 0.415283 0.322021 0.87793
+15 0 25 0.408203 0.31665 0.884766
+15 0 26 0.402588 0.312744 0.893066
+15 0 27 0.398682 0.30957 0.902344
+15 0 28 0.395508 0.307373 0.912109
+15 0 29 0.393555 0.305908 0.921875
+15 0 30 0.392334 0.305176 0.932617
+15 0 31 0.39209 0.305176 0.943848
+15 1 0 0.471191 0.3479 0
+15 1 1 0.471191 0.3479 0
+15 1 2 0.471191 0.3479 0
+15 1 3 0.471191 0.3479 0
+15 1 4 0.471191 0.3479 0
+15 1 5 0.471191 0.3479 0
+15 1 6 0.471436 0.3479 0
+15 1 7 0.471436 0.348145 0
+15 1 8 0.471436 0.348389 0
+15 1 9 0.47168 0.348877 0
+15 1 10 0.473877 0.350586 0
+15 1 11 0.478027 0.352783 0.18103
+15 1 12 0.483154 0.355713 0.268311
+15 1 13 0.483887 0.358398 0.351807
+15 1 14 0.477539 0.364258 0.424805
+15 1 15 0.47876 0.368408 0.501953
+15 1 16 0.480957 0.370361 0.584961
+15 1 17 0.481445 0.371094 0.665527
+15 1 18 0.480469 0.370605 0.739258
+15 1 19 0.479004 0.369873 0.803711
+15 1 20 0.476807 0.368652 0.856445
+15 1 21 0.454102 0.351318 0.861816
+15 1 22 0.436768 0.338135 0.866699
+15 1 23 0.424316 0.328857 0.87207
+15 1 24 0.415283 0.322021 0.87793
+15 1 25 0.408203 0.31665 0.884766
+15 1 26 0.402588 0.312744 0.893066
+15 1 27 0.398682 0.30957 0.902344
+15 1 28 0.395508 0.307373 0.912109
+15 1 29 0.393555 0.305908 0.921875
+15 1 30 0.392334 0.305176 0.932617
+15 1 31 0.39209 0.305176 0.943848
+15 2 0 0.471191 0.3479 0
+15 2 1 0.471191 0.3479 0
+15 2 2 0.471191 0.3479 0
+15 2 3 0.471191 0.3479 0
+15 2 4 0.471191 0.3479 0
+15 2 5 0.471191 0.3479 0
+15 2 6 0.471436 0.3479 0
+15 2 7 0.471436 0.348145 0
+15 2 8 0.471436 0.348389 0
+15 2 9 0.471924 0.348877 0
+15 2 10 0.473877 0.35083 0
+15 2 11 0.478027 0.353027 0.18103
+15 2 12 0.483154 0.355713 0.268311
+15 2 13 0.483887 0.358643 0.351807
+15 2 14 0.477539 0.364258 0.424805
+15 2 15 0.47876 0.368408 0.501953
+15 2 16 0.480957 0.370361 0.584961
+15 2 17 0.481445 0.371094 0.665527
+15 2 18 0.480469 0.370605 0.739258
+15 2 19 0.479004 0.369873 0.803711
+15 2 20 0.476807 0.368652 0.856445
+15 2 21 0.454102 0.351318 0.861816
+15 2 22 0.436768 0.338135 0.866699
+15 2 23 0.424316 0.328857 0.87207
+15 2 24 0.415283 0.322021 0.87793
+15 2 25 0.408203 0.31665 0.884766
+15 2 26 0.402588 0.312744 0.893066
+15 2 27 0.398682 0.30957 0.902344
+15 2 28 0.395508 0.307373 0.912109
+15 2 29 0.393555 0.305908 0.921875
+15 2 30 0.392334 0.30542 0.932617
+15 2 31 0.39209 0.305176 0.943848
+15 3 0 0.471191 0.3479 0
+15 3 1 0.471191 0.3479 0
+15 3 2 0.471191 0.3479 0
+15 3 3 0.471191 0.3479 0
+15 3 4 0.471436 0.3479 0
+15 3 5 0.471436 0.348145 0
+15 3 6 0.471436 0.348145 0
+15 3 7 0.471436 0.348145 0
+15 3 8 0.471436 0.348389 0
+15 3 9 0.471924 0.349121 0
+15 3 10 0.473877 0.35083 0
+15 3 11 0.478027 0.353027 0.18103
+15 3 12 0.483154 0.355713 0.268311
+15 3 13 0.483887 0.358643 0.351807
+15 3 14 0.477539 0.364258 0.424805
+15 3 15 0.47876 0.368652 0.501953
+15 3 16 0.480957 0.370605 0.584961
+15 3 17 0.481445 0.371094 0.665527
+15 3 18 0.480469 0.37085 0.739258
+15 3 19 0.479004 0.369873 0.803711
+15 3 20 0.476807 0.368652 0.856445
+15 3 21 0.454102 0.351318 0.861816
+15 3 22 0.436768 0.338379 0.866699
+15 3 23 0.424316 0.328857 0.87207
+15 3 24 0.415283 0.322266 0.87793
+15 3 25 0.408203 0.316895 0.884766
+15 3 26 0.402588 0.312744 0.893066
+15 3 27 0.398682 0.309814 0.902344
+15 3 28 0.395508 0.307617 0.912109
+15 3 29 0.393555 0.306152 0.921875
+15 3 30 0.392334 0.30542 0.932617
+15 3 31 0.39209 0.305176 0.943848
+15 4 0 0.471436 0.348145 0
+15 4 1 0.471436 0.348145 0
+15 4 2 0.471436 0.348145 0
+15 4 3 0.471436 0.348145 0
+15 4 4 0.471436 0.348145 0
+15 4 5 0.471436 0.348145 0
+15 4 6 0.471436 0.348389 0
+15 4 7 0.471436 0.348389 0
+15 4 8 0.471436 0.348633 0
+15 4 9 0.471924 0.349121 0
+15 4 10 0.473877 0.351074 0
+15 4 11 0.478027 0.353271 0.18103
+15 4 12 0.483154 0.355957 0.268311
+15 4 13 0.483887 0.358643 0.351807
+15 4 14 0.477539 0.364502 0.424805
+15 4 15 0.47876 0.368652 0.501953
+15 4 16 0.480957 0.370605 0.584961
+15 4 17 0.481445 0.371094 0.665527
+15 4 18 0.480469 0.37085 0.739258
+15 4 19 0.479004 0.370117 0.803711
+15 4 20 0.476807 0.368652 0.856445
+15 4 21 0.454102 0.351562 0.861816
+15 4 22 0.436768 0.338379 0.866699
+15 4 23 0.424316 0.328857 0.87207
+15 4 24 0.415283 0.322266 0.87793
+15 4 25 0.408203 0.316895 0.884766
+15 4 26 0.402588 0.312744 0.893066
+15 4 27 0.398682 0.309814 0.902344
+15 4 28 0.395508 0.307617 0.912109
+15 4 29 0.393555 0.306152 0.922363
+15 4 30 0.392334 0.30542 0.932617
+15 4 31 0.39209 0.305176 0.943848
+15 5 0 0.471436 0.348389 0
+15 5 1 0.471436 0.348389 0
+15 5 2 0.471436 0.348389 0
+15 5 3 0.471436 0.348633 0
+15 5 4 0.471436 0.348633 0
+15 5 5 0.471436 0.348633 0
+15 5 6 0.471436 0.348633 0
+15 5 7 0.471436 0.348633 0
+15 5 8 0.471436 0.348877 0
+15 5 9 0.471924 0.349609 0
+15 5 10 0.473877 0.351318 0
+15 5 11 0.478271 0.353516 0.18103
+15 5 12 0.483154 0.356201 0.268311
+15 5 13 0.483887 0.359131 0.351807
+15 5 14 0.477539 0.364746 0.424805
+15 5 15 0.47876 0.368896 0.501953
+15 5 16 0.480957 0.37085 0.584961
+15 5 17 0.481445 0.371338 0.665527
+15 5 18 0.480469 0.371094 0.739258
+15 5 19 0.479004 0.370361 0.803711
+15 5 20 0.476807 0.368896 0.856445
+15 5 21 0.454102 0.351562 0.861816
+15 5 22 0.436768 0.338379 0.866699
+15 5 23 0.424316 0.329102 0.87207
+15 5 24 0.415283 0.322266 0.87793
+15 5 25 0.408203 0.316895 0.884766
+15 5 26 0.402588 0.312744 0.893066
+15 5 27 0.398682 0.309814 0.902344
+15 5 28 0.395508 0.307617 0.912109
+15 5 29 0.393555 0.306152 0.922363
+15 5 30 0.392334 0.30542 0.932617
+15 5 31 0.39209 0.305176 0.943848
+15 6 0 0.471436 0.349121 0
+15 6 1 0.471436 0.349121 0
+15 6 2 0.471436 0.349121 0
+15 6 3 0.471436 0.349121 0
+15 6 4 0.471436 0.349121 0
+15 6 5 0.471436 0.349121 0
+15 6 6 0.471436 0.349365 0
+15 6 7 0.47168 0.349365 0
+15 6 8 0.47168 0.349609 0
+15 6 9 0.471924 0.350098 0
+15 6 10 0.474121 0.352051 0
+15 6 11 0.478271 0.354248 0.180908
+15 6 12 0.483154 0.356934 0.268311
+15 6 13 0.484131 0.359619 0.351807
+15 6 14 0.477783 0.36499 0.424805
+15 6 15 0.47876 0.369385 0.501953
+15 6 16 0.480957 0.371338 0.584961
+15 6 17 0.481445 0.371826 0.666016
+15 6 18 0.480469 0.371338 0.739258
+15 6 19 0.479004 0.370605 0.803711
+15 6 20 0.476807 0.369141 0.856445
+15 6 21 0.454102 0.351807 0.861816
+15 6 22 0.436768 0.338623 0.866699
+15 6 23 0.424316 0.329346 0.87207
+15 6 24 0.415527 0.32251 0.87793
+15 6 25 0.408203 0.317139 0.884766
+15 6 26 0.402588 0.312988 0.893066
+15 6 27 0.398682 0.309814 0.902344
+15 6 28 0.395508 0.307617 0.912109
+15 6 29 0.393555 0.306152 0.922363
+15 6 30 0.392334 0.30542 0.932617
+15 6 31 0.39209 0.30542 0.943848
+15 7 0 0.47168 0.350342 0
+15 7 1 0.47168 0.350342 0
+15 7 2 0.47168 0.350342 0
+15 7 3 0.47168 0.350342 0
+15 7 4 0.47168 0.350586 0
+15 7 5 0.47168 0.350586 0
+15 7 6 0.47168 0.350586 0
+15 7 7 0.47168 0.350586 0
+15 7 8 0.471924 0.35083 0
+15 7 9 0.472168 0.351562 0
+15 7 10 0.474365 0.353271 0
+15 7 11 0.478516 0.355469 0.180908
+15 7 12 0.483398 0.358154 0.268311
+15 7 13 0.484375 0.360596 0.351807
+15 7 14 0.477783 0.365967 0.424805
+15 7 15 0.479004 0.370117 0.501953
+15 7 16 0.481201 0.37207 0.584961
+15 7 17 0.481445 0.372559 0.666016
+15 7 18 0.480469 0.37207 0.739258
+15 7 19 0.479004 0.371094 0.803711
+15 7 20 0.476807 0.369629 0.856445
+15 7 21 0.454102 0.352295 0.861816
+15 7 22 0.437012 0.339111 0.866699
+15 7 23 0.424561 0.32959 0.87207
+15 7 24 0.415527 0.322754 0.87793
+15 7 25 0.408203 0.317383 0.885254
+15 7 26 0.402832 0.313232 0.893066
+15 7 27 0.398682 0.310059 0.902832
+15 7 28 0.395508 0.307861 0.912109
+15 7 29 0.393555 0.306396 0.922363
+15 7 30 0.392334 0.305664 0.932617
+15 7 31 0.39209 0.30542 0.943848
+15 8 0 0.472168 0.352783 0
+15 8 1 0.472168 0.352783 0
+15 8 2 0.472168 0.352783 0
+15 8 3 0.472168 0.353027 0
+15 8 4 0.472168 0.353027 0
+15 8 5 0.472168 0.353027 0
+15 8 6 0.472168 0.353027 0
+15 8 7 0.472168 0.353027 0
+15 8 8 0.472168 0.353271 0
+15 8 9 0.472412 0.354004 0
+15 8 10 0.474609 0.355713 0
+15 8 11 0.47876 0.357666 0.180786
+15 8 12 0.483643 0.360352 0.268066
+15 8 13 0.484619 0.362793 0.351807
+15 8 14 0.478027 0.367676 0.425049
+15 8 15 0.479004 0.371582 0.501953
+15 8 16 0.481201 0.373535 0.585449
+15 8 17 0.481689 0.374023 0.666016
+15 8 18 0.480713 0.373291 0.739258
+15 8 19 0.479248 0.372314 0.803711
+15 8 20 0.477051 0.37085 0.856445
+15 8 21 0.454346 0.353271 0.862305
+15 8 22 0.437012 0.340088 0.867188
+15 8 23 0.424561 0.330322 0.872559
+15 8 24 0.415527 0.323486 0.878418
+15 8 25 0.408447 0.318115 0.885254
+15 8 26 0.402832 0.313721 0.893555
+15 8 27 0.398682 0.310547 0.902832
+15 8 28 0.395752 0.30835 0.912109
+15 8 29 0.393555 0.306641 0.922363
+15 8 30 0.392578 0.305908 0.932617
+15 8 31 0.39209 0.305664 0.943848
+15 9 0 0.472656 0.357422 0
+15 9 1 0.472656 0.357422 0
+15 9 2 0.472656 0.357422 0
+15 9 3 0.472656 0.357422 0
+15 9 4 0.472656 0.357666 0
+15 9 5 0.472656 0.357666 0
+15 9 6 0.472656 0.357666 0
+15 9 7 0.472656 0.357666 0
+15 9 8 0.4729 0.35791 0
+15 9 9 0.473145 0.358398 0
+15 9 10 0.475098 0.360107 0.0258942
+15 9 11 0.479492 0.362305 0.180664
+15 9 12 0.484375 0.364746 0.268066
+15 9 13 0.485352 0.366699 0.351562
+15 9 14 0.478516 0.37085 0.425049
+15 9 15 0.479248 0.374756 0.501953
+15 9 16 0.481445 0.376465 0.585449
+15 9 17 0.481934 0.376709 0.666016
+15 9 18 0.480957 0.375977 0.739746
+15 9 19 0.479492 0.374756 0.803711
+15 9 20 0.477295 0.372803 0.856445
+15 9 21 0.45459 0.355225 0.862793
+15 9 22 0.437256 0.341553 0.867188
+15 9 23 0.424805 0.331787 0.872559
+15 9 24 0.415771 0.324707 0.878418
+15 9 25 0.408691 0.319092 0.885742
+15 9 26 0.403076 0.314697 0.893555
+15 9 27 0.398926 0.311523 0.902832
+15 9 28 0.395752 0.309082 0.912109
+15 9 29 0.393555 0.307373 0.922363
+15 9 30 0.392578 0.306641 0.933105
+15 9 31 0.392334 0.306396 0.943848
+15 10 0 0.473633 0.365479 0
+15 10 1 0.473633 0.365479 0
+15 10 2 0.473633 0.365479 0
+15 10 3 0.473633 0.365723 0
+15 10 4 0.473633 0.365723 0
+15 10 5 0.473877 0.365723 0
+15 10 6 0.473877 0.365723 0
+15 10 7 0.473877 0.365723 0
+15 10 8 0.473877 0.365967 0
+15 10 9 0.474121 0.366455 0
+15 10 10 0.476074 0.368164 0.0482788
+15 10 11 0.480225 0.370117 0.18103
+15 10 12 0.485107 0.372314 0.267822
+15 10 13 0.486816 0.373779 0.351562
+15 10 14 0.479248 0.376465 0.425537
+15 10 15 0.479736 0.380127 0.501953
+15 10 16 0.481934 0.381592 0.585449
+15 10 17 0.482422 0.381592 0.666016
+15 10 18 0.481445 0.380371 0.739746
+15 10 19 0.47998 0.378906 0.804199
+15 10 20 0.477783 0.376709 0.856934
+15 10 21 0.455322 0.358643 0.863281
+15 10 22 0.437744 0.344727 0.867676
+15 10 23 0.425293 0.334473 0.873047
+15 10 24 0.41626 0.327148 0.878906
+15 10 25 0.40918 0.321289 0.88623
+15 10 26 0.403564 0.31665 0.894531
+15 10 27 0.39917 0.313232 0.90332
+15 10 28 0.395996 0.310547 0.912598
+15 10 29 0.393799 0.308594 0.922363
+15 10 30 0.392822 0.307617 0.933105
+15 10 31 0.392334 0.307129 0.944336
+15 11 0 0.475098 0.378662 0
+15 11 1 0.475098 0.378662 0
+15 11 2 0.475098 0.378662 0
+15 11 3 0.475098 0.378662 0
+15 11 4 0.475098 0.378662 0
+15 11 5 0.475098 0.378906 0
+15 11 6 0.475098 0.378906 0
+15 11 7 0.475098 0.378906 0
+15 11 8 0.475342 0.37915 0
+15 11 9 0.475342 0.379639 0
+15 11 10 0.477295 0.380859 0.0756226
+15 11 11 0.481201 0.382812 0.183472
+15 11 12 0.486572 0.38501 0.26709
+15 11 13 0.48877 0.385986 0.351074
+15 11 14 0.480713 0.38623 0.426025
+15 11 15 0.480713 0.38916 0.501953
+15 11 16 0.48291 0.390381 0.585449
+15 11 17 0.483154 0.389893 0.666504
+15 11 18 0.482178 0.387939 0.740234
+15 11 19 0.480713 0.385986 0.804199
+15 11 20 0.478516 0.383057 0.857422
+15 11 21 0.456299 0.364502 0.864258
+15 11 22 0.438721 0.349854 0.869141
+15 11 23 0.42627 0.339111 0.874512
+15 11 24 0.416992 0.331299 0.880371
+15 11 25 0.409912 0.324951 0.887207
+15 11 26 0.404053 0.320068 0.895508
+15 11 27 0.399658 0.315918 0.903809
+15 11 28 0.39624 0.312988 0.913086
+15 11 29 0.394043 0.310791 0.922852
+15 11 30 0.393066 0.30957 0.933594
+15 11 31 0.392578 0.308838 0.944336
+15 12 0 0.476807 0.398682 0
+15 12 1 0.476807 0.398682 0
+15 12 2 0.476807 0.398682 0
+15 12 3 0.476807 0.398682 0
+15 12 4 0.476807 0.398682 0
+15 12 5 0.476807 0.398682 0
+15 12 6 0.476807 0.398682 0
+15 12 7 0.476807 0.398682 0
+15 12 8 0.476807 0.398926 0
+15 12 9 0.477051 0.399414 0
+15 12 10 0.478516 0.400391 0.112366
+15 12 11 0.481934 0.401855 0.191895
+15 12 12 0.487061 0.404053 0.267578
+15 12 13 0.490723 0.405029 0.349854
+15 12 14 0.483398 0.4021 0.426758
+15 12 15 0.481934 0.403809 0.502441
+15 12 16 0.484131 0.404541 0.585938
+15 12 17 0.484619 0.40332 0.666504
+15 12 18 0.483643 0.400635 0.740723
+15 12 19 0.482178 0.397461 0.805176
+15 12 20 0.479736 0.393799 0.85791
+15 12 21 0.458008 0.374268 0.866211
+15 12 22 0.44043 0.358398 0.870605
+15 12 23 0.427734 0.34668 0.875977
+15 12 24 0.418457 0.338135 0.881836
+15 12 25 0.411133 0.331055 0.888672
+15 12 26 0.405273 0.325439 0.896484
+15 12 27 0.400391 0.320557 0.904297
+15 12 28 0.396973 0.316895 0.913574
+15 12 29 0.394775 0.314453 0.92334
+15 12 30 0.393555 0.312744 0.934082
+15 12 31 0.393066 0.311523 0.944824
+15 13 0 0.479492 0.426025 0.120544
+15 13 1 0.479492 0.426025 0.120544
+15 13 2 0.479492 0.426025 0.120544
+15 13 3 0.479492 0.426025 0.120544
+15 13 4 0.479492 0.426025 0.120605
+15 13 5 0.479492 0.426025 0.120605
+15 13 6 0.479492 0.42627 0.120667
+15 13 7 0.479492 0.42627 0.12085
+15 13 8 0.479736 0.426514 0.121094
+15 13 9 0.479736 0.426758 0.121643
+15 13 10 0.480469 0.427246 0.157104
+15 13 11 0.482178 0.427979 0.211914
+15 13 12 0.485352 0.429443 0.27417
+15 13 13 0.490479 0.431152 0.347656
+15 13 14 0.487793 0.42749 0.427734
+15 13 15 0.483887 0.426025 0.502441
+15 13 16 0.486328 0.426025 0.585938
+15 13 17 0.486816 0.423828 0.666992
+15 13 18 0.48584 0.420166 0.741211
+15 13 19 0.484131 0.415527 0.805664
+15 13 20 0.481689 0.410156 0.858887
+15 13 21 0.460693 0.389404 0.868652
+15 13 22 0.442871 0.371826 0.873535
+15 13 23 0.430176 0.358887 0.878906
+15 13 24 0.420654 0.349121 0.884766
+15 13 25 0.412842 0.34082 0.891113
+15 13 26 0.406494 0.33374 0.897949
+15 13 27 0.401367 0.327881 0.905762
+15 13 28 0.397949 0.323486 0.914551
+15 13 29 0.395508 0.320068 0.924316
+15 13 30 0.394287 0.317871 0.93457
+15 13 31 0.393799 0.316162 0.945801
+15 14 0 0.488281 0.465576 0.181763
+15 14 1 0.488281 0.465576 0.181763
+15 14 2 0.488281 0.465576 0.181763
+15 14 3 0.488281 0.465576 0.181763
+15 14 4 0.488281 0.465576 0.181763
+15 14 5 0.488281 0.465576 0.181763
+15 14 6 0.488281 0.465576 0.181763
+15 14 7 0.488281 0.465576 0.181763
+15 14 8 0.488281 0.46582 0.181885
+15 14 9 0.488525 0.466064 0.182129
+15 14 10 0.488525 0.466064 0.196777
+15 14 11 0.488525 0.465576 0.239258
+15 14 12 0.488037 0.4646 0.29126
+15 14 13 0.487549 0.462646 0.352051
+15 14 14 0.489502 0.461914 0.425049
+15 14 15 0.486328 0.457764 0.501953
+15 14 16 0.489014 0.456787 0.585938
+15 14 17 0.489746 0.453613 0.66748
+15 14 18 0.489014 0.448242 0.742188
+15 14 19 0.487305 0.44165 0.807129
+15 14 20 0.484863 0.43457 0.860352
+15 14 21 0.465088 0.412354 0.873047
+15 14 22 0.447021 0.39209 0.878418
+15 14 23 0.433594 0.376953 0.882812
+15 14 24 0.423584 0.365234 0.887695
+15 14 25 0.415283 0.35498 0.893555
+15 14 26 0.408447 0.346436 0.899902
+15 14 27 0.40332 0.339355 0.907715
+15 14 28 0.399414 0.33374 0.916504
+15 14 29 0.396973 0.329102 0.925781
+15 14 30 0.395508 0.325684 0.936035
+15 14 31 0.394775 0.323242 0.946777
+15 15 0 0.500488 0.518066 0.208008
+15 15 1 0.500488 0.518066 0.208008
+15 15 2 0.500488 0.518066 0.208008
+15 15 3 0.500488 0.518066 0.208008
+15 15 4 0.500488 0.518066 0.208008
+15 15 5 0.500488 0.518066 0.208008
+15 15 6 0.500488 0.518066 0.208008
+15 15 7 0.500488 0.518066 0.208008
+15 15 8 0.500488 0.518066 0.20813
+15 15 9 0.500488 0.518555 0.20813
+15 15 10 0.500977 0.518555 0.210571
+15 15 11 0.500977 0.518066 0.251465
+15 15 12 0.500488 0.51709 0.30249
+15 15 13 0.499268 0.51416 0.363037
+15 15 14 0.496094 0.508789 0.43042
+15 15 15 0.489746 0.498779 0.500488
+15 15 16 0.492676 0.497559 0.584473
+15 15 17 0.493896 0.493164 0.666992
+15 15 18 0.493408 0.486084 0.742188
+15 15 19 0.491699 0.477539 0.808105
+15 15 20 0.489258 0.468018 0.862305
+15 15 21 0.470703 0.443848 0.878418
+15 15 22 0.451904 0.420166 0.882812
+15 15 23 0.437988 0.4021 0.887207
+15 15 24 0.42749 0.387939 0.89209
+15 15 25 0.418945 0.375488 0.897461
+15 15 26 0.411865 0.36499 0.903809
+15 15 27 0.406006 0.355957 0.910645
+15 15 28 0.4021 0.348389 0.919434
+15 15 29 0.39917 0.342285 0.928711
+15 15 30 0.397461 0.337402 0.938477
+15 15 31 0.396484 0.333496 0.949219
+15 16 0 0.494385 0.560547 0.220093
+15 16 1 0.494385 0.560547 0.220093
+15 16 2 0.494385 0.560547 0.220093
+15 16 3 0.494385 0.560547 0.220093
+15 16 4 0.494629 0.560547 0.220093
+15 16 5 0.494629 0.560547 0.220093
+15 16 6 0.494629 0.560547 0.220093
+15 16 7 0.494629 0.560547 0.220093
+15 16 8 0.494629 0.560547 0.220215
+15 16 9 0.494629 0.561035 0.220215
+15 16 10 0.494873 0.561035 0.220337
+15 16 11 0.495117 0.561035 0.247192
+15 16 12 0.495117 0.55957 0.296631
+15 16 13 0.494385 0.557129 0.355225
+15 16 14 0.49292 0.552734 0.422119
+15 16 15 0.49292 0.548828 0.497314
+15 16 16 0.496582 0.546875 0.581543
+15 16 17 0.498535 0.541992 0.665039
+15 16 18 0.498535 0.533691 0.741699
+15 16 19 0.497559 0.522949 0.808594
+15 16 20 0.494873 0.51123 0.86377
+15 16 21 0.478516 0.485352 0.884766
+15 16 22 0.459473 0.457764 0.890137
+15 16 23 0.444824 0.436279 0.894531
+15 16 24 0.433838 0.419189 0.898926
+15 16 25 0.424561 0.404053 0.903809
+15 16 26 0.416992 0.390625 0.909668
+15 16 27 0.410645 0.37915 0.916504
+15 16 28 0.406006 0.369141 0.924316
+15 16 29 0.402832 0.36084 0.933105
+15 16 30 0.400391 0.354004 0.942383
+15 16 31 0.39917 0.348145 0.952148
+15 17 0 0.486816 0.604004 0.232788
+15 17 1 0.486816 0.604004 0.232788
+15 17 2 0.486816 0.604004 0.232788
+15 17 3 0.486816 0.604004 0.232788
+15 17 4 0.486816 0.604004 0.232788
+15 17 5 0.486816 0.604004 0.232788
+15 17 6 0.486816 0.604004 0.232788
+15 17 7 0.486816 0.604004 0.232788
+15 17 8 0.486816 0.604004 0.232788
+15 17 9 0.486816 0.604004 0.232788
+15 17 10 0.487061 0.604492 0.23291
+15 17 11 0.487549 0.604492 0.241821
+15 17 12 0.488281 0.604492 0.289062
+15 17 13 0.489746 0.604004 0.34668
+15 17 14 0.491699 0.603027 0.414062
+15 17 15 0.495361 0.602539 0.491211
+15 17 16 0.499756 0.601562 0.575195
+15 17 17 0.50293 0.59668 0.659668
+15 17 18 0.504395 0.587891 0.738281
+15 17 19 0.503906 0.576172 0.807129
+15 17 20 0.501953 0.562012 0.86377
+15 17 21 0.488281 0.535645 0.891602
+15 17 22 0.469727 0.504883 0.899902
+15 17 23 0.454834 0.479736 0.905273
+15 17 24 0.443115 0.459229 0.909668
+15 17 25 0.433105 0.440674 0.914062
+15 17 26 0.424561 0.424072 0.918945
+15 17 27 0.41748 0.40918 0.924805
+15 17 28 0.411865 0.396484 0.931641
+15 17 29 0.407959 0.385254 0.939453
+15 17 30 0.405029 0.375732 0.948242
+15 17 31 0.403076 0.367676 0.95752
+15 18 0 0.483398 0.651855 0.247681
+15 18 1 0.483398 0.651855 0.247681
+15 18 2 0.483398 0.651855 0.247681
+15 18 3 0.483398 0.651855 0.247681
+15 18 4 0.483643 0.651855 0.247681
+15 18 5 0.483643 0.651855 0.247681
+15 18 6 0.483643 0.651855 0.247681
+15 18 7 0.483643 0.651855 0.247681
+15 18 8 0.483643 0.651855 0.247681
+15 18 9 0.483643 0.651855 0.247681
+15 18 10 0.483887 0.651855 0.247803
+15 18 11 0.484131 0.652344 0.247925
+15 18 12 0.485596 0.652832 0.283203
+15 18 13 0.488037 0.653809 0.339111
+15 18 14 0.491455 0.655273 0.405518
+15 18 15 0.496338 0.65625 0.481689
+15 18 16 0.501953 0.655762 0.56543
+15 18 17 0.506348 0.652344 0.650879
+15 18 18 0.509277 0.644043 0.731445
+15 18 19 0.510254 0.632324 0.802734
+15 18 20 0.508789 0.617188 0.861328
+15 18 21 0.498779 0.591309 0.896973
+15 18 22 0.482666 0.55957 0.911133
+15 18 23 0.468018 0.53125 0.918945
+15 18 24 0.455811 0.507324 0.924316
+15 18 25 0.444824 0.485107 0.928223
+15 18 26 0.435059 0.4646 0.932617
+15 18 27 0.426758 0.446045 0.937012
+15 18 28 0.420166 0.429688 0.942871
+15 18 29 0.415039 0.415283 0.949219
+15 18 30 0.411133 0.402588 0.956543
+15 18 31 0.408203 0.391602 0.964355
+15 19 0 0.482178 0.698242 0.262695
+15 19 1 0.482178 0.698242 0.262695
+15 19 2 0.482178 0.698242 0.262695
+15 19 3 0.482178 0.698242 0.262695
+15 19 4 0.482178 0.698242 0.262695
+15 19 5 0.482178 0.698242 0.262695
+15 19 6 0.482178 0.698242 0.262695
+15 19 7 0.482178 0.698242 0.262695
+15 19 8 0.482422 0.69873 0.262695
+15 19 9 0.482422 0.69873 0.262695
+15 19 10 0.482666 0.69873 0.262695
+15 19 11 0.48291 0.69873 0.262939
+15 19 12 0.483887 0.699707 0.277832
+15 19 13 0.486572 0.701172 0.331299
+15 19 14 0.490723 0.703125 0.395752
+15 19 15 0.496094 0.705566 0.469971
+15 19 16 0.502441 0.706543 0.552734
+15 19 17 0.508789 0.70459 0.638184
+15 19 18 0.513184 0.698242 0.720215
+15 19 19 0.515625 0.687012 0.793945
+15 19 20 0.515625 0.671875 0.855469
+15 19 21 0.509277 0.648438 0.898926
+15 19 22 0.496826 0.618164 0.922363
+15 19 23 0.483398 0.588867 0.93457
+15 19 24 0.471191 0.561523 0.941895
+15 19 25 0.459229 0.535645 0.946289
+15 19 26 0.448486 0.51123 0.950195
+15 19 27 0.438965 0.48877 0.953613
+15 19 28 0.430908 0.468262 0.95752
+15 19 29 0.424316 0.449951 0.961914
+15 19 30 0.419189 0.433838 0.967773
+15 19 31 0.415039 0.419434 0.974121
+15 20 0 0.481445 0.740234 0.276367
+15 20 1 0.481445 0.740234 0.276367
+15 20 2 0.481445 0.740234 0.276367
+15 20 3 0.481445 0.740234 0.276367
+15 20 4 0.481445 0.740234 0.276367
+15 20 5 0.481445 0.740234 0.276367
+15 20 6 0.481445 0.740234 0.276367
+15 20 7 0.481445 0.740234 0.276367
+15 20 8 0.481445 0.740234 0.276367
+15 20 9 0.481689 0.740723 0.276367
+15 20 10 0.481689 0.740723 0.276367
+15 20 11 0.481934 0.740723 0.276611
+15 20 12 0.482422 0.741211 0.276611
+15 20 13 0.485107 0.743164 0.323242
+15 20 14 0.489258 0.745605 0.38501
+15 20 15 0.495117 0.748535 0.457031
+15 20 16 0.501953 0.750977 0.537598
+15 20 17 0.509277 0.750488 0.622559
+15 20 18 0.515137 0.746094 0.705566
+15 20 19 0.519043 0.736816 0.780762
+15 20 20 0.520508 0.722656 0.845215
+15 20 21 0.518066 0.703125 0.895996
+15 20 22 0.510254 0.67627 0.929688
+15 20 23 0.499023 0.646973 0.948242
+15 20 24 0.487549 0.618652 0.958984
+15 20 25 0.475342 0.589844 0.965332
+15 20 26 0.463867 0.561523 0.969238
+15 20 27 0.452881 0.535156 0.97168
+15 20 28 0.443359 0.510254 0.974121
+15 20 29 0.435303 0.488037 0.977539
+15 20 30 0.428711 0.468018 0.980957
+15 20 31 0.42334 0.450195 0.985352
+15 21 0 0.480225 0.776855 0.28833
+15 21 1 0.480225 0.776855 0.28833
+15 21 2 0.480225 0.776855 0.28833
+15 21 3 0.480225 0.776855 0.28833
+15 21 4 0.480225 0.776855 0.28833
+15 21 5 0.480225 0.776855 0.28833
+15 21 6 0.480225 0.776855 0.28833
+15 21 7 0.480225 0.776855 0.28833
+15 21 8 0.480225 0.776855 0.28833
+15 21 9 0.480469 0.776855 0.28833
+15 21 10 0.480469 0.776855 0.28833
+15 21 11 0.480713 0.776855 0.28833
+15 21 12 0.481201 0.777344 0.288574
+15 21 13 0.48291 0.778809 0.314697
+15 21 14 0.487061 0.781738 0.373535
+15 21 15 0.49292 0.785156 0.442627
+15 21 16 0.500488 0.788574 0.520996
+15 21 17 0.508301 0.790039 0.604492
+15 21 18 0.515625 0.787598 0.687012
+15 21 19 0.520996 0.780762 0.763672
+15 21 20 0.523926 0.768555 0.830566
+15 21 21 0.523926 0.751953 0.886719
+15 21 22 0.520508 0.72998 0.929199
+15 21 23 0.512695 0.703613 0.956055
+15 21 24 0.50293 0.675293 0.972168
+15 21 25 0.491699 0.64502 0.981934
+15 21 26 0.479736 0.614258 0.987793
+15 21 27 0.468018 0.583984 0.990723
+15 21 28 0.457275 0.555664 0.992676
+15 21 29 0.447754 0.529297 0.994629
+15 21 30 0.439697 0.505371 0.996582
+15 21 31 0.432861 0.483887 0.999023
+15 22 0 0.478516 0.807129 0.29834
+15 22 1 0.478516 0.807129 0.29834
+15 22 2 0.478516 0.807129 0.29834
+15 22 3 0.478516 0.807129 0.29834
+15 22 4 0.478516 0.807129 0.29834
+15 22 5 0.478516 0.807129 0.29834
+15 22 6 0.478516 0.807129 0.29834
+15 22 7 0.478516 0.807129 0.29834
+15 22 8 0.478516 0.807129 0.29834
+15 22 9 0.47876 0.807129 0.29834
+15 22 10 0.47876 0.807129 0.29834
+15 22 11 0.479004 0.807129 0.29834
+15 22 12 0.479248 0.807617 0.298584
+15 22 13 0.480225 0.808105 0.306152
+15 22 14 0.484375 0.811035 0.362061
+15 22 15 0.48999 0.814941 0.427979
+15 22 16 0.497314 0.819336 0.503418
+15 22 17 0.505859 0.822266 0.584961
+15 22 18 0.51416 0.822266 0.666504
+15 22 19 0.520508 0.817871 0.743652
+15 22 20 0.524902 0.808105 0.812012
+15 22 21 0.526855 0.793945 0.871582
+15 22 22 0.526367 0.775391 0.919922
+15 22 23 0.522461 0.753418 0.955078
+15 22 24 0.515625 0.727539 0.977539
+15 22 25 0.505859 0.697754 0.993164
+15 22 26 0.494873 0.666016 1
+15 22 27 0.483154 0.633789 1
+15 22 28 0.47168 0.602539 1
+15 22 29 0.461182 0.572266 1
+15 22 30 0.45166 0.544434 1
+15 22 31 0.443604 0.519043 1
+15 23 0 0.476562 0.831055 0.306396
+15 23 1 0.476562 0.831055 0.306396
+15 23 2 0.476562 0.831055 0.306396
+15 23 3 0.476562 0.831055 0.306396
+15 23 4 0.476562 0.831055 0.306396
+15 23 5 0.476562 0.831055 0.306396
+15 23 6 0.476562 0.831055 0.306396
+15 23 7 0.476562 0.831055 0.306396
+15 23 8 0.476562 0.831055 0.306396
+15 23 9 0.476562 0.831055 0.306396
+15 23 10 0.476807 0.831055 0.306396
+15 23 11 0.477051 0.831055 0.306396
+15 23 12 0.477295 0.831543 0.306396
+15 23 13 0.477783 0.831543 0.306641
+15 23 14 0.481201 0.834473 0.35083
+15 23 15 0.486572 0.838867 0.413818
+15 23 16 0.493896 0.843262 0.486328
+15 23 17 0.502441 0.847656 0.564941
+15 23 18 0.51123 0.849609 0.645508
+15 23 19 0.519043 0.847168 0.722656
+15 23 20 0.524902 0.840332 0.791992
+15 23 21 0.52832 0.828613 0.853027
+15 23 22 0.529297 0.8125 0.904785
+15 23 23 0.527832 0.793457 0.944824
+15 23 24 0.523926 0.771484 0.975098
+15 23 25 0.51709 0.744629 0.99707
+15 23 26 0.507324 0.713379 1
+15 23 27 0.496582 0.680176 1
+15 23 28 0.485107 0.646973 1
+15 23 29 0.473877 0.614258 1
+15 23 30 0.463379 0.583496 1
+15 23 31 0.454102 0.554688 1
+15 24 0 0.474365 0.850098 0.312744
+15 24 1 0.474365 0.850098 0.312744
+15 24 2 0.474365 0.850098 0.312744
+15 24 3 0.474365 0.850098 0.312744
+15 24 4 0.474365 0.850098 0.312744
+15 24 5 0.474365 0.850098 0.312744
+15 24 6 0.474365 0.850098 0.312744
+15 24 7 0.474365 0.850098 0.312744
+15 24 8 0.474365 0.850098 0.312744
+15 24 9 0.474365 0.850098 0.312744
+15 24 10 0.474609 0.850586 0.312744
+15 24 11 0.474609 0.850586 0.312744
+15 24 12 0.474854 0.850586 0.312744
+15 24 13 0.475342 0.850586 0.312988
+15 24 14 0.477783 0.852539 0.340332
+15 24 15 0.483154 0.856934 0.400146
+15 24 16 0.490234 0.862305 0.469971
+15 24 17 0.498779 0.867188 0.545898
+15 24 18 0.507812 0.870605 0.624512
+15 24 19 0.516113 0.870605 0.700684
+15 24 20 0.522949 0.865723 0.770508
+15 24 21 0.527832 0.856445 0.833008
+15 24 22 0.529785 0.842773 0.886719
+15 24 23 0.530273 0.826172 0.930176
+15 24 24 0.52832 0.807617 0.964844
+15 24 25 0.524414 0.783691 0.993164
+15 24 26 0.51709 0.754883 1
+15 24 27 0.507812 0.722656 1
+15 24 28 0.496826 0.688477 1
+15 24 29 0.485596 0.654297 1
+15 24 30 0.474609 0.620605 1
+15 24 31 0.464355 0.589355 1
+15 25 0 0.47168 0.867188 0.318115
+15 25 1 0.47168 0.867188 0.318115
+15 25 2 0.47168 0.867188 0.318115
+15 25 3 0.47168 0.867188 0.318115
+15 25 4 0.47168 0.867188 0.318115
+15 25 5 0.47168 0.867188 0.318115
+15 25 6 0.47168 0.867188 0.318115
+15 25 7 0.47168 0.867188 0.318115
+15 25 8 0.47168 0.867188 0.318115
+15 25 9 0.47168 0.867188 0.318115
+15 25 10 0.47168 0.867188 0.318115
+15 25 11 0.471924 0.867188 0.318359
+15 25 12 0.472168 0.867188 0.318359
+15 25 13 0.472656 0.867676 0.318359
+15 25 14 0.473877 0.868652 0.329346
+15 25 15 0.479004 0.873047 0.385986
+15 25 16 0.485596 0.878418 0.452393
+15 25 17 0.493896 0.883789 0.525391
+15 25 18 0.50293 0.888184 0.601074
+15 25 19 0.512207 0.890137 0.675781
+15 25 20 0.519531 0.888184 0.745605
+15 25 21 0.525391 0.881348 0.809082
+15 25 22 0.529297 0.870605 0.864746
+15 25 23 0.53125 0.856445 0.911133
+15 25 24 0.530762 0.840332 0.94873
+15 25 25 0.528809 0.819824 0.982422
+15 25 26 0.524414 0.794434 1
+15 25 27 0.51709 0.763672 1
+15 25 28 0.507324 0.72998 1
+15 25 29 0.496582 0.694824 1
+15 25 30 0.485596 0.659668 1
+15 25 31 0.474854 0.625977 1
+15 26 0 0.46875 0.882324 0.323242
+15 26 1 0.46875 0.882324 0.323242
+15 26 2 0.46875 0.882324 0.323242
+15 26 3 0.46875 0.882324 0.323242
+15 26 4 0.46875 0.882324 0.323242
+15 26 5 0.46875 0.882324 0.323242
+15 26 6 0.46875 0.882324 0.323242
+15 26 7 0.46875 0.882324 0.323242
+15 26 8 0.46875 0.882324 0.323242
+15 26 9 0.468994 0.882324 0.323242
+15 26 10 0.468994 0.882324 0.323242
+15 26 11 0.469238 0.882324 0.323242
+15 26 12 0.469238 0.882324 0.323242
+15 26 13 0.469727 0.882324 0.323242
+15 26 14 0.470459 0.882812 0.323486
+15 26 15 0.474609 0.886719 0.371582
+15 26 16 0.480957 0.89209 0.43457
+15 26 17 0.48877 0.897949 0.503906
+15 26 18 0.497803 0.90332 0.57666
+15 26 19 0.506836 0.906738 0.649414
+15 26 20 0.515137 0.906738 0.718262
+15 26 21 0.522461 0.90332 0.782227
+15 26 22 0.527344 0.895508 0.839355
+15 26 23 0.530273 0.884277 0.887695
+15 26 24 0.531738 0.870117 0.928223
+15 26 25 0.53125 0.852051 0.964844
+15 26 26 0.528809 0.830078 0.99707
+15 26 27 0.523926 0.802734 1
+15 26 28 0.516113 0.770508 1
+15 26 29 0.506348 0.73584 1
+15 26 30 0.49585 0.699707 1
+15 26 31 0.485107 0.664062 1
+15 27 0 0.46582 0.89502 0.327393
+15 27 1 0.46582 0.89502 0.327393
+15 27 2 0.46582 0.89502 0.327393
+15 27 3 0.46582 0.89502 0.327393
+15 27 4 0.46582 0.89502 0.327393
+15 27 5 0.46582 0.89502 0.327393
+15 27 6 0.46582 0.89502 0.327393
+15 27 7 0.46582 0.89502 0.327393
+15 27 8 0.46582 0.89502 0.327393
+15 27 9 0.466064 0.89502 0.327393
+15 27 10 0.466064 0.89502 0.327393
+15 27 11 0.466064 0.895508 0.327393
+15 27 12 0.466309 0.895508 0.327637
+15 27 13 0.466797 0.895508 0.327637
+15 27 14 0.467285 0.895508 0.327637
+15 27 15 0.470215 0.898438 0.357178
+15 27 16 0.476074 0.90332 0.41626
+15 27 17 0.483398 0.909668 0.482178
+15 27 18 0.492188 0.915527 0.551758
+15 27 19 0.501465 0.92041 0.621582
+15 27 20 0.509766 0.922363 0.688477
+15 27 21 0.517578 0.921387 0.751953
+15 27 22 0.523926 0.916504 0.810059
+15 27 23 0.52832 0.908203 0.859863
+15 27 24 0.530762 0.896973 0.902832
+15 27 25 0.531738 0.881836 0.942383
+15 27 26 0.530762 0.862305 0.978027
+15 27 27 0.527832 0.837891 1
+15 27 28 0.522461 0.808594 1
+15 27 29 0.51416 0.774902 1
+15 27 30 0.504395 0.739258 1
+15 27 31 0.494141 0.702637 1
+15 28 0 0.462646 0.905762 0.331055
+15 28 1 0.462646 0.905762 0.331055
+15 28 2 0.462646 0.905762 0.331055
+15 28 3 0.462646 0.905762 0.331055
+15 28 4 0.462646 0.905762 0.331055
+15 28 5 0.462646 0.905762 0.331055
+15 28 6 0.462646 0.905762 0.331055
+15 28 7 0.462646 0.905762 0.331055
+15 28 8 0.462646 0.905762 0.331055
+15 28 9 0.462646 0.905762 0.331055
+15 28 10 0.462646 0.905762 0.331055
+15 28 11 0.462891 0.905762 0.331055
+15 28 12 0.463135 0.90625 0.331055
+15 28 13 0.463379 0.90625 0.331055
+15 28 14 0.463867 0.90625 0.331055
+15 28 15 0.465332 0.907227 0.342529
+15 28 16 0.470703 0.912598 0.397949
+15 28 17 0.477783 0.918457 0.459961
+15 28 18 0.486084 0.925293 0.525879
+15 28 19 0.494873 0.930664 0.592773
+15 28 20 0.503906 0.93457 0.657715
+15 28 21 0.511719 0.935547 0.719727
+15 28 22 0.519043 0.933105 0.777832
+15 28 23 0.524414 0.927734 0.828613
+15 28 24 0.527832 0.919434 0.872559
+15 28 25 0.530273 0.907227 0.914551
+15 28 26 0.53125 0.890625 0.953613
+15 28 27 0.529785 0.869141 0.987793
+15 28 28 0.525879 0.842773 1
+15 28 29 0.52002 0.812012 1
+15 28 30 0.511719 0.777832 1
+15 28 31 0.502441 0.741699 1
+15 29 0 0.458984 0.914062 0.333496
+15 29 1 0.458984 0.914062 0.333496
+15 29 2 0.458984 0.914062 0.333496
+15 29 3 0.458984 0.914062 0.333496
+15 29 4 0.458984 0.914062 0.333496
+15 29 5 0.458984 0.914062 0.333496
+15 29 6 0.458984 0.914062 0.333496
+15 29 7 0.458984 0.914062 0.333496
+15 29 8 0.458984 0.914062 0.333496
+15 29 9 0.458984 0.914062 0.333496
+15 29 10 0.458984 0.914062 0.333496
+15 29 11 0.458984 0.914062 0.333496
+15 29 12 0.459229 0.914062 0.333496
+15 29 13 0.459473 0.914062 0.333496
+15 29 14 0.459961 0.914062 0.33374
+15 29 15 0.460693 0.914551 0.33374
+15 29 16 0.465088 0.918945 0.379639
+15 29 17 0.471436 0.924805 0.437744
+15 29 18 0.479248 0.931152 0.499756
+15 29 19 0.487793 0.9375 0.563477
+15 29 20 0.496338 0.942383 0.625488
+15 29 21 0.504883 0.945312 0.685547
+15 29 22 0.512207 0.945312 0.742676
+15 29 23 0.518555 0.942871 0.793457
+15 29 24 0.523438 0.9375 0.838379
+15 29 25 0.526855 0.928223 0.882324
+15 29 26 0.529297 0.915039 0.923828
+15 29 27 0.529297 0.896973 0.961426
+15 29 28 0.527344 0.873535 0.994141
+15 29 29 0.523438 0.846191 1
+15 29 30 0.517578 0.814453 1
+15 29 31 0.509766 0.779785 1
+15 30 0 0.454346 0.918457 0.334961
+15 30 1 0.454346 0.918457 0.334961
+15 30 2 0.454346 0.918457 0.334961
+15 30 3 0.454346 0.918457 0.334961
+15 30 4 0.454346 0.918457 0.334961
+15 30 5 0.454346 0.918457 0.334961
+15 30 6 0.454346 0.918457 0.334961
+15 30 7 0.454346 0.918457 0.334961
+15 30 8 0.454346 0.918457 0.334961
+15 30 9 0.454346 0.918457 0.334961
+15 30 10 0.454346 0.918457 0.334961
+15 30 11 0.45459 0.918457 0.334961
+15 30 12 0.45459 0.918457 0.334961
+15 30 13 0.454834 0.918945 0.334961
+15 30 14 0.455322 0.918945 0.334961
+15 30 15 0.455811 0.918945 0.335205
+15 30 16 0.45874 0.921875 0.361084
+15 30 17 0.4646 0.927734 0.415039
+15 30 18 0.47168 0.934082 0.473389
+15 30 19 0.479736 0.94043 0.533203
+15 30 20 0.488037 0.946289 0.591797
+15 30 21 0.496582 0.950684 0.649902
+15 30 22 0.504395 0.952637 0.705078
+15 30 23 0.510742 0.952637 0.755371
+15 30 24 0.516602 0.949707 0.800781
+15 30 25 0.520996 0.943848 0.845215
+15 30 26 0.524902 0.933594 0.888672
+15 30 27 0.526855 0.919434 0.929688
+15 30 28 0.526855 0.900391 0.966309
+15 30 29 0.524902 0.876465 0.999023
+15 30 30 0.520996 0.848633 1
+15 30 31 0.515137 0.816406 1
+15 31 0 0.449951 0.921875 0.335693
+15 31 1 0.449951 0.921875 0.335693
+15 31 2 0.449951 0.921875 0.335693
+15 31 3 0.449951 0.921875 0.335693
+15 31 4 0.449951 0.921875 0.335693
+15 31 5 0.449951 0.921875 0.335693
+15 31 6 0.449951 0.921875 0.335693
+15 31 7 0.449951 0.921875 0.335693
+15 31 8 0.449951 0.921875 0.335693
+15 31 9 0.449951 0.921875 0.335693
+15 31 10 0.449951 0.921875 0.335693
+15 31 11 0.449951 0.921875 0.335938
+15 31 12 0.450195 0.921875 0.335938
+15 31 13 0.450439 0.921875 0.335938
+15 31 14 0.450684 0.921875 0.335938
+15 31 15 0.451172 0.922363 0.335938
+15 31 16 0.452393 0.922852 0.343018
+15 31 17 0.457764 0.928223 0.393066
+15 31 18 0.464111 0.93457 0.447266
+15 31 19 0.471436 0.940918 0.50293
+15 31 20 0.479248 0.946777 0.558105
+15 31 21 0.487305 0.952148 0.613281
+15 31 22 0.494873 0.955566 0.666016
+15 31 23 0.501953 0.957031 0.714844
+15 31 24 0.507812 0.956543 0.759766
+15 31 25 0.513672 0.953613 0.804688
+15 31 26 0.518555 0.947754 0.849609
+15 31 27 0.521973 0.9375 0.893066
+15 31 28 0.524414 0.922852 0.934082
+15 31 29 0.524414 0.90332 0.970703
+15 31 30 0.522461 0.879395 1
+15 31 31 0.518555 0.850586 1
+16 0 0 0.527832 0.389893 0
+16 0 1 0.527832 0.389893 0
+16 0 2 0.527832 0.389893 0
+16 0 3 0.527832 0.389893 0
+16 0 4 0.527832 0.389893 0
+16 0 5 0.527832 0.389893 0
+16 0 6 0.527832 0.389893 0
+16 0 7 0.527832 0.389893 0
+16 0 8 0.527832 0.390137 0
+16 0 9 0.52832 0.390625 0
+16 0 10 0.530273 0.39209 0
+16 0 11 0.536133 0.396729 0.110535
+16 0 12 0.543945 0.401367 0.229004
+16 0 13 0.549805 0.404785 0.321777
+16 0 14 0.553711 0.411865 0.414307
+16 0 15 0.554688 0.423828 0.498779
+16 0 16 0.555176 0.427246 0.582031
+16 0 17 0.553711 0.42627 0.664551
+16 0 18 0.549316 0.423096 0.739746
+16 0 19 0.543457 0.418945 0.805664
+16 0 20 0.536133 0.413818 0.859863
+16 0 21 0.510742 0.394531 0.873535
+16 0 22 0.487061 0.376465 0.878418
+16 0 23 0.468994 0.362793 0.882812
+16 0 24 0.455078 0.352295 0.887695
+16 0 25 0.443359 0.343506 0.893066
+16 0 26 0.433838 0.336182 0.900391
+16 0 27 0.426025 0.330566 0.908203
+16 0 28 0.420166 0.326172 0.917969
+16 0 29 0.416016 0.322998 0.929199
+16 0 30 0.412842 0.320801 0.94043
+16 0 31 0.409912 0.318604 0.950684
+16 1 0 0.527832 0.389893 0
+16 1 1 0.527832 0.389893 0
+16 1 2 0.527832 0.389893 0
+16 1 3 0.527832 0.389893 0
+16 1 4 0.527832 0.389893 0
+16 1 5 0.527832 0.389893 0
+16 1 6 0.527832 0.389893 0
+16 1 7 0.527832 0.389893 0
+16 1 8 0.527832 0.390137 0
+16 1 9 0.52832 0.390625 0
+16 1 10 0.530273 0.392334 0
+16 1 11 0.536133 0.396729 0.110535
+16 1 12 0.543945 0.401367 0.229004
+16 1 13 0.549805 0.404785 0.321777
+16 1 14 0.553711 0.411865 0.414307
+16 1 15 0.554688 0.423828 0.498779
+16 1 16 0.555176 0.427246 0.582031
+16 1 17 0.553711 0.42627 0.664551
+16 1 18 0.549316 0.423096 0.739746
+16 1 19 0.543457 0.418945 0.805664
+16 1 20 0.536133 0.413818 0.859863
+16 1 21 0.510742 0.394531 0.873535
+16 1 22 0.487061 0.376465 0.878418
+16 1 23 0.468994 0.362793 0.882812
+16 1 24 0.455078 0.352295 0.887695
+16 1 25 0.443359 0.343506 0.893066
+16 1 26 0.433838 0.336182 0.900391
+16 1 27 0.426025 0.330566 0.908203
+16 1 28 0.420166 0.326172 0.917969
+16 1 29 0.416016 0.322998 0.929199
+16 1 30 0.412842 0.320801 0.94043
+16 1 31 0.409912 0.318604 0.950684
+16 2 0 0.527832 0.389893 0
+16 2 1 0.527832 0.389893 0
+16 2 2 0.527832 0.389893 0
+16 2 3 0.527832 0.389893 0
+16 2 4 0.527832 0.389893 0
+16 2 5 0.527832 0.389893 0
+16 2 6 0.527832 0.389893 0
+16 2 7 0.527832 0.390137 0
+16 2 8 0.52832 0.390137 0
+16 2 9 0.52832 0.390625 0
+16 2 10 0.530273 0.392334 0
+16 2 11 0.536133 0.396729 0.110596
+16 2 12 0.543945 0.401367 0.229004
+16 2 13 0.549805 0.404785 0.321777
+16 2 14 0.553711 0.411865 0.414307
+16 2 15 0.554688 0.423828 0.498779
+16 2 16 0.555176 0.427246 0.582031
+16 2 17 0.553711 0.42627 0.664551
+16 2 18 0.549316 0.423096 0.739746
+16 2 19 0.543457 0.418945 0.805664
+16 2 20 0.536133 0.414062 0.859863
+16 2 21 0.510742 0.394531 0.873535
+16 2 22 0.487061 0.376465 0.878418
+16 2 23 0.468994 0.362793 0.882812
+16 2 24 0.455078 0.352295 0.887695
+16 2 25 0.443359 0.343506 0.893066
+16 2 26 0.433838 0.336182 0.900391
+16 2 27 0.426025 0.330566 0.908203
+16 2 28 0.420166 0.326172 0.917969
+16 2 29 0.416016 0.322998 0.929199
+16 2 30 0.412842 0.320801 0.94043
+16 2 31 0.409912 0.318604 0.950684
+16 3 0 0.527832 0.389893 0
+16 3 1 0.527832 0.389893 0
+16 3 2 0.527832 0.389893 0
+16 3 3 0.527832 0.389893 0
+16 3 4 0.527832 0.389893 0
+16 3 5 0.527832 0.389893 0
+16 3 6 0.527832 0.390137 0
+16 3 7 0.527832 0.390137 0
+16 3 8 0.52832 0.390381 0
+16 3 9 0.52832 0.390625 0
+16 3 10 0.530273 0.392334 0
+16 3 11 0.536133 0.396729 0.110596
+16 3 12 0.543945 0.401367 0.229004
+16 3 13 0.549805 0.404785 0.321777
+16 3 14 0.553711 0.411865 0.414307
+16 3 15 0.554688 0.423828 0.498779
+16 3 16 0.555176 0.42749 0.582031
+16 3 17 0.553711 0.42627 0.664551
+16 3 18 0.549316 0.423096 0.739746
+16 3 19 0.543457 0.418945 0.805664
+16 3 20 0.536133 0.414062 0.859863
+16 3 21 0.510742 0.394531 0.873535
+16 3 22 0.487061 0.376465 0.878418
+16 3 23 0.468994 0.362793 0.882812
+16 3 24 0.455078 0.352295 0.887695
+16 3 25 0.443359 0.343506 0.893066
+16 3 26 0.433838 0.336426 0.900391
+16 3 27 0.426025 0.330566 0.908203
+16 3 28 0.420166 0.326172 0.917969
+16 3 29 0.416016 0.322998 0.929199
+16 3 30 0.412842 0.320801 0.94043
+16 3 31 0.409912 0.318604 0.950684
+16 4 0 0.527832 0.390137 0
+16 4 1 0.527832 0.390137 0
+16 4 2 0.527832 0.390137 0
+16 4 3 0.527832 0.390137 0
+16 4 4 0.527832 0.390137 0
+16 4 5 0.527832 0.390137 0
+16 4 6 0.527832 0.390137 0
+16 4 7 0.52832 0.390381 0
+16 4 8 0.52832 0.390381 0
+16 4 9 0.52832 0.390869 0
+16 4 10 0.530273 0.392578 0
+16 4 11 0.536133 0.396973 0.110596
+16 4 12 0.543945 0.401611 0.228882
+16 4 13 0.549805 0.405029 0.321777
+16 4 14 0.553711 0.411865 0.414307
+16 4 15 0.554688 0.424072 0.498779
+16 4 16 0.555176 0.42749 0.582031
+16 4 17 0.553711 0.42627 0.664551
+16 4 18 0.549316 0.42334 0.739746
+16 4 19 0.543457 0.419189 0.805664
+16 4 20 0.536133 0.414062 0.859863
+16 4 21 0.510742 0.394531 0.873535
+16 4 22 0.487061 0.376465 0.878418
+16 4 23 0.468994 0.362793 0.882812
+16 4 24 0.455078 0.352295 0.887695
+16 4 25 0.443359 0.343506 0.893066
+16 4 26 0.433838 0.336426 0.900391
+16 4 27 0.426025 0.330566 0.908203
+16 4 28 0.420166 0.326172 0.917969
+16 4 29 0.416016 0.322998 0.929199
+16 4 30 0.412842 0.320801 0.94043
+16 4 31 0.409912 0.318604 0.950684
+16 5 0 0.52832 0.390381 0
+16 5 1 0.52832 0.390381 0
+16 5 2 0.52832 0.390381 0
+16 5 3 0.52832 0.390381 0
+16 5 4 0.52832 0.390381 0
+16 5 5 0.52832 0.390381 0
+16 5 6 0.52832 0.390381 0
+16 5 7 0.52832 0.390625 0
+16 5 8 0.52832 0.390869 0
+16 5 9 0.52832 0.391113 0
+16 5 10 0.530273 0.392822 0
+16 5 11 0.536133 0.397217 0.110657
+16 5 12 0.543945 0.401855 0.228882
+16 5 13 0.549805 0.405273 0.321777
+16 5 14 0.553711 0.412109 0.414307
+16 5 15 0.554688 0.424072 0.498779
+16 5 16 0.555176 0.427734 0.582031
+16 5 17 0.553711 0.426514 0.664551
+16 5 18 0.549316 0.42334 0.739746
+16 5 19 0.543457 0.419189 0.805664
+16 5 20 0.536133 0.414062 0.859863
+16 5 21 0.510742 0.394775 0.873535
+16 5 22 0.487061 0.376709 0.878418
+16 5 23 0.468994 0.363037 0.882812
+16 5 24 0.455078 0.352539 0.887695
+16 5 25 0.443359 0.34375 0.893066
+16 5 26 0.433838 0.336426 0.900391
+16 5 27 0.426025 0.330566 0.908203
+16 5 28 0.420166 0.326172 0.917969
+16 5 29 0.416016 0.322998 0.929199
+16 5 30 0.412842 0.320801 0.94043
+16 5 31 0.409912 0.318848 0.950684
+16 6 0 0.52832 0.390869 0
+16 6 1 0.52832 0.390869 0
+16 6 2 0.52832 0.390869 0
+16 6 3 0.52832 0.390869 0
+16 6 4 0.52832 0.390869 0
+16 6 5 0.52832 0.390869 0
+16 6 6 0.52832 0.391113 0
+16 6 7 0.52832 0.391113 0
+16 6 8 0.52832 0.391357 0
+16 6 9 0.528809 0.391602 0
+16 6 10 0.530273 0.393311 0
+16 6 11 0.536621 0.397705 0.110718
+16 6 12 0.543945 0.402344 0.228882
+16 6 13 0.549805 0.405762 0.321777
+16 6 14 0.553711 0.412598 0.414307
+16 6 15 0.554688 0.424561 0.498779
+16 6 16 0.555176 0.427979 0.582031
+16 6 17 0.553711 0.426758 0.664551
+16 6 18 0.549316 0.423828 0.739746
+16 6 19 0.543457 0.419434 0.805664
+16 6 20 0.536133 0.414307 0.859863
+16 6 21 0.510742 0.39502 0.873535
+16 6 22 0.487061 0.376953 0.878418
+16 6 23 0.468994 0.363037 0.882812
+16 6 24 0.455078 0.352539 0.887695
+16 6 25 0.443604 0.34375 0.893066
+16 6 26 0.433838 0.336426 0.900391
+16 6 27 0.426025 0.330811 0.908203
+16 6 28 0.42041 0.326416 0.918457
+16 6 29 0.416016 0.323242 0.929199
+16 6 30 0.412842 0.320801 0.94043
+16 6 31 0.409912 0.318848 0.950684
+16 7 0 0.528809 0.39209 0
+16 7 1 0.528809 0.39209 0
+16 7 2 0.528809 0.39209 0
+16 7 3 0.528809 0.39209 0
+16 7 4 0.528809 0.39209 0
+16 7 5 0.528809 0.39209 0
+16 7 6 0.528809 0.39209 0
+16 7 7 0.528809 0.39209 0
+16 7 8 0.528809 0.392334 0
+16 7 9 0.528809 0.392822 0
+16 7 10 0.530762 0.394287 0
+16 7 11 0.536621 0.398682 0.110901
+16 7 12 0.543945 0.403076 0.22876
+16 7 13 0.549805 0.406494 0.321777
+16 7 14 0.553711 0.41333 0.414307
+16 7 15 0.554688 0.425049 0.498779
+16 7 16 0.555664 0.428467 0.582031
+16 7 17 0.553711 0.42749 0.664551
+16 7 18 0.549316 0.424316 0.739746
+16 7 19 0.543457 0.420166 0.805664
+16 7 20 0.536621 0.414795 0.859863
+16 7 21 0.510742 0.395508 0.873535
+16 7 22 0.487061 0.377197 0.878418
+16 7 23 0.468994 0.363525 0.882812
+16 7 24 0.455078 0.353027 0.887695
+16 7 25 0.443604 0.343994 0.893555
+16 7 26 0.433838 0.336914 0.900391
+16 7 27 0.426025 0.331055 0.908691
+16 7 28 0.42041 0.32666 0.918457
+16 7 29 0.416016 0.323486 0.929199
+16 7 30 0.412842 0.321045 0.94043
+16 7 31 0.409912 0.318848 0.950684
+16 8 0 0.529297 0.394043 0
+16 8 1 0.529297 0.394043 0
+16 8 2 0.529297 0.394043 0
+16 8 3 0.529297 0.394043 0
+16 8 4 0.529297 0.394043 0
+16 8 5 0.529297 0.394043 0
+16 8 6 0.529297 0.394287 0
+16 8 7 0.529297 0.394287 0
+16 8 8 0.529297 0.394531 0
+16 8 9 0.529785 0.394775 0
+16 8 10 0.53125 0.396484 0
+16 8 11 0.537109 0.400635 0.111328
+16 8 12 0.544434 0.404785 0.228638
+16 8 13 0.550293 0.408203 0.321533
+16 8 14 0.553711 0.414551 0.414062
+16 8 15 0.554688 0.42627 0.498779
+16 8 16 0.555664 0.429688 0.582031
+16 8 17 0.553711 0.428467 0.664551
+16 8 18 0.549316 0.425293 0.740234
+16 8 19 0.543457 0.421143 0.805664
+16 8 20 0.536621 0.415771 0.859863
+16 8 21 0.51123 0.39624 0.873535
+16 8 22 0.487305 0.37793 0.878418
+16 8 23 0.468994 0.364014 0.882812
+16 8 24 0.455322 0.353516 0.887695
+16 8 25 0.443604 0.344727 0.893555
+16 8 26 0.434082 0.337402 0.900391
+16 8 27 0.42627 0.331299 0.908691
+16 8 28 0.42041 0.326904 0.918457
+16 8 29 0.416016 0.32373 0.929199
+16 8 30 0.412842 0.321289 0.94043
+16 8 31 0.409912 0.319336 0.950684
+16 9 0 0.530762 0.398193 0
+16 9 1 0.530762 0.398193 0
+16 9 2 0.530762 0.398193 0
+16 9 3 0.530762 0.398193 0
+16 9 4 0.530762 0.398193 0
+16 9 5 0.530762 0.398193 0
+16 9 6 0.530762 0.398193 0
+16 9 7 0.530762 0.398193 0
+16 9 8 0.530762 0.398438 0
+16 9 9 0.530762 0.398926 0
+16 9 10 0.532715 0.400391 0
+16 9 11 0.538574 0.404541 0.112305
+16 9 12 0.544922 0.408203 0.228394
+16 9 13 0.550293 0.411377 0.321533
+16 9 14 0.554199 0.417236 0.414062
+16 9 15 0.555176 0.428711 0.498779
+16 9 16 0.555664 0.432129 0.582031
+16 9 17 0.553711 0.430664 0.664551
+16 9 18 0.549805 0.42749 0.740234
+16 9 19 0.543945 0.422852 0.806152
+16 9 20 0.536621 0.41748 0.859863
+16 9 21 0.51123 0.397949 0.874023
+16 9 22 0.487549 0.379395 0.878906
+16 9 23 0.469238 0.365479 0.883301
+16 9 24 0.455566 0.354736 0.888184
+16 9 25 0.443848 0.345703 0.893555
+16 9 26 0.434326 0.338135 0.900879
+16 9 27 0.426514 0.332275 0.908691
+16 9 28 0.420654 0.327637 0.918457
+16 9 29 0.41626 0.324463 0.929688
+16 9 30 0.412842 0.322021 0.94043
+16 9 31 0.410156 0.319824 0.950684
+16 10 0 0.532715 0.405029 0
+16 10 1 0.532715 0.405029 0
+16 10 2 0.532715 0.405029 0
+16 10 3 0.532715 0.405029 0
+16 10 4 0.532715 0.405273 0
+16 10 5 0.532715 0.405273 0
+16 10 6 0.532715 0.405273 0
+16 10 7 0.532715 0.405273 0
+16 10 8 0.532715 0.405518 0
+16 10 9 0.533203 0.405762 0
+16 10 10 0.534668 0.407227 0
+16 10 11 0.540039 0.411377 0.114868
+16 10 12 0.545898 0.414062 0.228271
+16 10 13 0.55127 0.416992 0.321289
+16 10 14 0.555176 0.422119 0.413818
+16 10 15 0.555664 0.432861 0.499023
+16 10 16 0.556152 0.436035 0.58252
+16 10 17 0.554199 0.43457 0.664551
+16 10 18 0.549805 0.431152 0.740234
+16 10 19 0.543945 0.42627 0.806152
+16 10 20 0.537109 0.420654 0.860352
+16 10 21 0.511719 0.400879 0.874512
+16 10 22 0.487793 0.38208 0.879395
+16 10 23 0.469727 0.367676 0.883789
+16 10 24 0.455811 0.356689 0.888672
+16 10 25 0.444336 0.347656 0.894043
+16 10 26 0.43457 0.339844 0.901367
+16 10 27 0.426758 0.33374 0.90918
+16 10 28 0.420898 0.329102 0.918945
+16 10 29 0.416504 0.325684 0.929688
+16 10 30 0.413086 0.322998 0.940918
+16 10 31 0.410156 0.320557 0.950684
+16 11 0 0.536133 0.416992 0
+16 11 1 0.536133 0.416992 0
+16 11 2 0.536133 0.416992 0
+16 11 3 0.536133 0.416992 0
+16 11 4 0.536133 0.416992 0
+16 11 5 0.536133 0.416992 0
+16 11 6 0.536133 0.416992 0
+16 11 7 0.536133 0.416992 0
+16 11 8 0.536621 0.417236 0
+16 11 9 0.536621 0.41748 0
+16 11 10 0.537598 0.418945 0
+16 11 11 0.542969 0.422363 0.121155
+16 11 12 0.546875 0.424072 0.22876
+16 11 13 0.552246 0.427002 0.321289
+16 11 14 0.556152 0.430664 0.41333
+16 11 15 0.556152 0.439941 0.499023
+16 11 16 0.556641 0.443115 0.58252
+16 11 17 0.555176 0.441162 0.665039
+16 11 18 0.550781 0.437256 0.740723
+16 11 19 0.544922 0.432373 0.806641
+16 11 20 0.537598 0.42627 0.86084
+16 11 21 0.512695 0.405762 0.875488
+16 11 22 0.48877 0.386475 0.879883
+16 11 23 0.470459 0.371826 0.884277
+16 11 24 0.456543 0.360352 0.88916
+16 11 25 0.444824 0.35083 0.89502
+16 11 26 0.435059 0.343018 0.901855
+16 11 27 0.427246 0.336426 0.910156
+16 11 28 0.421387 0.331543 0.919922
+16 11 29 0.416992 0.327881 0.930664
+16 11 30 0.41333 0.324707 0.940918
+16 11 31 0.4104 0.322266 0.951172
+16 12 0 0.541016 0.435547 0
+16 12 1 0.541016 0.435547 0
+16 12 2 0.541016 0.435547 0
+16 12 3 0.541016 0.435547 0
+16 12 4 0.541016 0.435547 0
+16 12 5 0.541016 0.435547 0
+16 12 6 0.541016 0.435547 0
+16 12 7 0.541016 0.435547 0
+16 12 8 0.541016 0.435791 0
+16 12 9 0.541504 0.436035 0
+16 12 10 0.541992 0.437012 0
+16 12 11 0.54541 0.438965 0.135986
+16 12 12 0.549316 0.44043 0.231812
+16 12 13 0.554199 0.442383 0.320557
+16 12 14 0.558105 0.44458 0.412354
+16 12 15 0.557129 0.45166 0.499268
+16 12 16 0.557617 0.45459 0.58252
+16 12 17 0.556152 0.452148 0.665039
+16 12 18 0.551758 0.447754 0.740723
+16 12 19 0.545898 0.442139 0.807129
+16 12 20 0.539062 0.435303 0.861328
+16 12 21 0.51416 0.414307 0.876465
+16 12 22 0.48999 0.394043 0.881348
+16 12 23 0.47168 0.378418 0.885742
+16 12 24 0.457764 0.366699 0.890625
+16 12 25 0.446045 0.356445 0.896484
+16 12 26 0.436279 0.3479 0.90332
+16 12 27 0.428223 0.341064 0.911621
+16 12 28 0.422363 0.335693 0.921387
+16 12 29 0.417725 0.331543 0.931641
+16 12 30 0.413818 0.327637 0.941406
+16 12 31 0.410889 0.324707 0.951172
+16 13 0 0.546875 0.46167 0
+16 13 1 0.546875 0.46167 0
+16 13 2 0.546875 0.46167 0
+16 13 3 0.546875 0.46167 0
+16 13 4 0.546875 0.46167 0
+16 13 5 0.546875 0.46167 0
+16 13 6 0.546875 0.461914 0
+16 13 7 0.546875 0.461914 0
+16 13 8 0.546875 0.461914 0
+16 13 9 0.546875 0.462158 0
+16 13 10 0.547363 0.462891 0.035614
+16 13 11 0.548828 0.463623 0.164429
+16 13 12 0.551758 0.4646 0.241821
+16 13 13 0.556152 0.465576 0.321777
+16 13 14 0.560059 0.466553 0.410645
+16 13 15 0.559082 0.469727 0.499268
+16 13 16 0.559082 0.472168 0.58252
+16 13 17 0.557617 0.469482 0.665527
+16 13 18 0.553223 0.464111 0.741211
+16 13 19 0.547852 0.457275 0.807617
+16 13 20 0.540527 0.449707 0.862305
+16 13 21 0.516602 0.427734 0.878906
+16 13 22 0.492188 0.406006 0.883789
+16 13 23 0.473877 0.389404 0.888184
+16 13 24 0.459717 0.376465 0.893066
+16 13 25 0.447754 0.365479 0.898926
+16 13 26 0.437988 0.356201 0.905762
+16 13 27 0.429932 0.348389 0.913574
+16 13 28 0.423828 0.342285 0.92334
+16 13 29 0.418701 0.336914 0.932617
+16 13 30 0.414551 0.33252 0.941895
+16 13 31 0.411377 0.329102 0.952148
+16 14 0 0.554199 0.496338 0.154663
+16 14 1 0.554199 0.496338 0.154663
+16 14 2 0.554199 0.496338 0.154663
+16 14 3 0.554199 0.496338 0.154663
+16 14 4 0.554199 0.496338 0.154663
+16 14 5 0.554199 0.496338 0.154663
+16 14 6 0.554199 0.496338 0.154663
+16 14 7 0.554199 0.496338 0.154785
+16 14 8 0.554199 0.496582 0.155029
+16 14 9 0.554199 0.496826 0.155273
+16 14 10 0.554199 0.49707 0.155884
+16 14 11 0.555176 0.497559 0.205078
+16 14 12 0.556152 0.497559 0.26416
+16 14 13 0.558105 0.497803 0.331055
+16 14 14 0.561035 0.497559 0.409424
+16 14 15 0.561523 0.496582 0.498291
+16 14 16 0.561523 0.498047 0.58252
+16 14 17 0.560059 0.494385 0.665527
+16 14 18 0.556152 0.488281 0.741699
+16 14 19 0.550293 0.480225 0.808594
+16 14 20 0.542969 0.470947 0.863281
+16 14 21 0.52002 0.447998 0.882324
+16 14 22 0.495605 0.424072 0.887207
+16 14 23 0.477051 0.405762 0.891602
+16 14 24 0.462891 0.391602 0.896973
+16 14 25 0.450928 0.37915 0.902832
+16 14 26 0.440674 0.368652 0.909668
+16 14 27 0.432617 0.359619 0.91748
+16 14 28 0.425537 0.351807 0.925293
+16 14 29 0.419922 0.345215 0.934082
+16 14 30 0.415527 0.340088 0.943359
+16 14 31 0.412354 0.335693 0.953125
+16 15 0 0.565918 0.54248 0.214233
+16 15 1 0.565918 0.54248 0.214233
+16 15 2 0.565918 0.54248 0.214233
+16 15 3 0.565918 0.54248 0.214233
+16 15 4 0.565918 0.54248 0.214233
+16 15 5 0.565918 0.54248 0.214233
+16 15 6 0.565918 0.54248 0.214355
+16 15 7 0.566406 0.54248 0.214355
+16 15 8 0.566406 0.54248 0.214355
+16 15 9 0.566406 0.542969 0.214478
+16 15 10 0.566406 0.542969 0.214722
+16 15 11 0.566895 0.542969 0.241821
+16 15 12 0.566895 0.542969 0.291504
+16 15 13 0.566406 0.541504 0.350586
+16 15 14 0.564453 0.538086 0.418213
+16 15 15 0.563477 0.53418 0.495117
+16 15 16 0.563965 0.532715 0.581543
+16 15 17 0.562988 0.528809 0.665039
+16 15 18 0.559082 0.521484 0.741699
+16 15 19 0.553711 0.511719 0.809082
+16 15 20 0.546875 0.500977 0.864746
+16 15 21 0.525391 0.476562 0.886719
+16 15 22 0.500977 0.450195 0.892578
+16 15 23 0.482178 0.429688 0.897461
+16 15 24 0.467773 0.413574 0.902832
+16 15 25 0.455078 0.39917 0.907715
+16 15 26 0.444092 0.38623 0.913574
+16 15 27 0.435059 0.375 0.919922
+16 15 28 0.427734 0.365723 0.927734
+16 15 29 0.421875 0.357666 0.936035
+16 15 30 0.417236 0.351074 0.945312
+16 15 31 0.414062 0.345703 0.955078
+16 16 0 0.577148 0.597656 0.239868
+16 16 1 0.577148 0.597656 0.239868
+16 16 2 0.577148 0.597656 0.239868
+16 16 3 0.577148 0.597656 0.239868
+16 16 4 0.577148 0.597656 0.239868
+16 16 5 0.577148 0.597656 0.23999
+16 16 6 0.577148 0.597656 0.23999
+16 16 7 0.577148 0.597656 0.23999
+16 16 8 0.577148 0.597656 0.23999
+16 16 9 0.577148 0.597656 0.23999
+16 16 10 0.577637 0.598145 0.240112
+16 16 11 0.577637 0.598145 0.253662
+16 16 12 0.578125 0.597656 0.302002
+16 16 13 0.578125 0.59668 0.36084
+16 16 14 0.577148 0.594238 0.428955
+16 16 15 0.57373 0.587891 0.50293
+16 16 16 0.565918 0.57666 0.578613
+16 16 17 0.565918 0.571777 0.662598
+16 16 18 0.562988 0.563965 0.740723
+16 16 19 0.558105 0.552734 0.809082
+16 16 20 0.551758 0.540039 0.865723
+16 16 21 0.532227 0.514648 0.891602
+16 16 22 0.507324 0.485107 0.898438
+16 16 23 0.488281 0.461426 0.90332
+16 16 24 0.473145 0.442383 0.907715
+16 16 25 0.459961 0.425293 0.912598
+16 16 26 0.448486 0.410156 0.917969
+16 16 27 0.438965 0.396729 0.924316
+16 16 28 0.431152 0.385254 0.931641
+16 16 29 0.425049 0.375244 0.939453
+16 16 30 0.420166 0.366943 0.948242
+16 16 31 0.416504 0.359619 0.95752
+16 17 0 0.569336 0.639648 0.251709
+16 17 1 0.569336 0.639648 0.251709
+16 17 2 0.569336 0.639648 0.251709
+16 17 3 0.569336 0.639648 0.251709
+16 17 4 0.569336 0.639648 0.251709
+16 17 5 0.569336 0.639648 0.251709
+16 17 6 0.569336 0.639648 0.251709
+16 17 7 0.569336 0.639648 0.251709
+16 17 8 0.569336 0.639648 0.251709
+16 17 9 0.569336 0.640137 0.251709
+16 17 10 0.569336 0.640137 0.251709
+16 17 11 0.569824 0.640625 0.251953
+16 17 12 0.570312 0.640137 0.296143
+16 17 13 0.570312 0.63916 0.353027
+16 17 14 0.570312 0.636719 0.419434
+16 17 15 0.568359 0.631348 0.492676
+16 17 16 0.567383 0.625977 0.573242
+16 17 17 0.568359 0.621582 0.657715
+16 17 18 0.566895 0.613281 0.737305
+16 17 19 0.562988 0.601074 0.807129
+16 17 20 0.557129 0.586914 0.865234
+16 17 21 0.540039 0.560547 0.896484
+16 17 22 0.516113 0.52832 0.905273
+16 17 23 0.496582 0.501465 0.911133
+16 17 24 0.480957 0.479492 0.916016
+16 17 25 0.467285 0.459473 0.92041
+16 17 26 0.455322 0.441406 0.925781
+16 17 27 0.445068 0.425049 0.931152
+16 17 28 0.436523 0.410889 0.937988
+16 17 29 0.429688 0.398438 0.945312
+16 17 30 0.424316 0.387695 0.953613
+16 17 31 0.419922 0.378174 0.961914
+16 18 0 0.557617 0.678711 0.262695
+16 18 1 0.557617 0.678711 0.262695
+16 18 2 0.557617 0.678711 0.262695
+16 18 3 0.557617 0.678711 0.262695
+16 18 4 0.557617 0.678711 0.262695
+16 18 5 0.557617 0.678711 0.262695
+16 18 6 0.557617 0.678711 0.262695
+16 18 7 0.557617 0.678711 0.262695
+16 18 8 0.557617 0.678711 0.262695
+16 18 9 0.558105 0.679199 0.262695
+16 18 10 0.558105 0.679199 0.262695
+16 18 11 0.558105 0.679199 0.262939
+16 18 12 0.559082 0.679688 0.28833
+16 18 13 0.560059 0.679688 0.343018
+16 18 14 0.562012 0.679199 0.407715
+16 18 15 0.563477 0.678223 0.481689
+16 18 16 0.566406 0.67627 0.563965
+16 18 17 0.569336 0.672852 0.649414
+16 18 18 0.569824 0.665039 0.730469
+16 18 19 0.567383 0.65332 0.802246
+16 18 20 0.5625 0.638184 0.862305
+16 18 21 0.54834 0.612305 0.899414
+16 18 22 0.527344 0.579102 0.914551
+16 18 23 0.508301 0.549805 0.922852
+16 18 24 0.492188 0.524902 0.928223
+16 18 25 0.477783 0.501465 0.932617
+16 18 26 0.464844 0.479736 0.937012
+16 18 27 0.453613 0.459961 0.941895
+16 18 28 0.444092 0.442627 0.947266
+16 18 29 0.436279 0.427002 0.953613
+16 18 30 0.429932 0.41333 0.960938
+16 18 31 0.425049 0.401367 0.968262
+16 19 0 0.549805 0.719727 0.274658
+16 19 1 0.549805 0.719727 0.274658
+16 19 2 0.549805 0.719727 0.274658
+16 19 3 0.549805 0.719727 0.274658
+16 19 4 0.549805 0.719727 0.274658
+16 19 5 0.549805 0.719727 0.274658
+16 19 6 0.549805 0.719727 0.274658
+16 19 7 0.549805 0.719727 0.274658
+16 19 8 0.549805 0.719727 0.274658
+16 19 9 0.549805 0.719727 0.274902
+16 19 10 0.550293 0.719727 0.274902
+16 19 11 0.550293 0.720215 0.274902
+16 19 12 0.550781 0.720703 0.281982
+16 19 13 0.552734 0.72168 0.334229
+16 19 14 0.555664 0.722656 0.397461
+16 19 15 0.55957 0.723633 0.470459
+16 19 16 0.563965 0.724121 0.552246
+16 19 17 0.568359 0.722168 0.637207
+16 19 18 0.570801 0.71582 0.719727
+16 19 19 0.570312 0.705078 0.793457
+16 19 20 0.566895 0.689941 0.855957
+16 19 21 0.556641 0.666504 0.900391
+16 19 22 0.540039 0.634766 0.923828
+16 19 23 0.522461 0.604004 0.936523
+16 19 24 0.506348 0.57666 0.943848
+16 19 25 0.491455 0.549805 0.94873
+16 19 26 0.477295 0.524414 0.952637
+16 19 27 0.464844 0.500977 0.956543
+16 19 28 0.454102 0.479492 0.960449
+16 19 29 0.445068 0.460449 0.965332
+16 19 30 0.4375 0.443359 0.970703
+16 19 31 0.431396 0.428223 0.977051
+16 20 0 0.543945 0.757812 0.286621
+16 20 1 0.543945 0.757812 0.286621
+16 20 2 0.543945 0.757812 0.286621
+16 20 3 0.543945 0.757812 0.286621
+16 20 4 0.543945 0.757812 0.286621
+16 20 5 0.543945 0.757812 0.286621
+16 20 6 0.543945 0.758301 0.286621
+16 20 7 0.543945 0.758301 0.286621
+16 20 8 0.543945 0.758301 0.286621
+16 20 9 0.543945 0.758301 0.286621
+16 20 10 0.543945 0.758301 0.286621
+16 20 11 0.544434 0.758301 0.286621
+16 20 12 0.544434 0.758789 0.286865
+16 20 13 0.546387 0.760254 0.326172
+16 20 14 0.549805 0.762207 0.386963
+16 20 15 0.554688 0.76416 0.458008
+16 20 16 0.560059 0.766113 0.538086
+16 20 17 0.565918 0.765625 0.622559
+16 20 18 0.569824 0.76123 0.705078
+16 20 19 0.570801 0.751953 0.780762
+16 20 20 0.569336 0.738281 0.845215
+16 20 21 0.563965 0.718262 0.896973
+16 20 22 0.552246 0.690918 0.930664
+16 20 23 0.537109 0.660645 0.949219
+16 20 24 0.521973 0.631348 0.959961
+16 20 25 0.506836 0.602051 0.966309
+16 20 26 0.491943 0.573242 0.970703
+16 20 27 0.478271 0.545898 0.973633
+16 20 28 0.466064 0.520508 0.976562
+16 20 29 0.455566 0.497314 0.979492
+16 20 30 0.446533 0.476807 0.983398
+16 20 31 0.439209 0.458252 0.987793
+16 21 0 0.538086 0.791992 0.297363
+16 21 1 0.538086 0.791992 0.297363
+16 21 2 0.538086 0.791992 0.297363
+16 21 3 0.538086 0.791992 0.297363
+16 21 4 0.538086 0.791992 0.297363
+16 21 5 0.538086 0.791992 0.297363
+16 21 6 0.538086 0.791992 0.297363
+16 21 7 0.538086 0.791992 0.297363
+16 21 8 0.538086 0.79248 0.297363
+16 21 9 0.538086 0.79248 0.297363
+16 21 10 0.538086 0.79248 0.297363
+16 21 11 0.538086 0.79248 0.297363
+16 21 12 0.538574 0.79248 0.297363
+16 21 13 0.540039 0.793945 0.317871
+16 21 14 0.543457 0.796387 0.375732
+16 21 15 0.54834 0.799316 0.444092
+16 21 16 0.554688 0.802246 0.521973
+16 21 17 0.561035 0.803711 0.60498
+16 21 18 0.566406 0.80127 0.6875
+16 21 19 0.569824 0.793945 0.76416
+16 21 20 0.570312 0.782227 0.831055
+16 21 21 0.567871 0.765625 0.887695
+16 21 22 0.561035 0.743164 0.930176
+16 21 23 0.550293 0.71582 0.957031
+16 21 24 0.537109 0.687012 0.973145
+16 21 25 0.522461 0.655762 0.98291
+16 21 26 0.507812 0.624512 0.98877
+16 21 27 0.493164 0.59375 0.991699
+16 21 28 0.479736 0.564453 0.994141
+16 21 29 0.467773 0.537598 0.996094
+16 21 30 0.457275 0.513184 0.998047
+16 21 31 0.44873 0.490967 1
+16 22 0 0.531738 0.820801 0.306152
+16 22 1 0.531738 0.820801 0.306152
+16 22 2 0.531738 0.820801 0.306152
+16 22 3 0.531738 0.820801 0.306152
+16 22 4 0.531738 0.820801 0.306152
+16 22 5 0.531738 0.820801 0.306152
+16 22 6 0.531738 0.820801 0.306152
+16 22 7 0.531738 0.820801 0.306152
+16 22 8 0.531738 0.820801 0.306396
+16 22 9 0.531738 0.820801 0.306396
+16 22 10 0.531738 0.820801 0.306396
+16 22 11 0.532227 0.821289 0.306396
+16 22 12 0.532227 0.821289 0.306396
+16 22 13 0.533203 0.821777 0.309326
+16 22 14 0.536621 0.824219 0.364258
+16 22 15 0.541504 0.828125 0.429688
+16 22 16 0.547852 0.831543 0.504883
+16 22 17 0.555176 0.834473 0.585449
+16 22 18 0.562012 0.833984 0.666992
+16 22 19 0.566406 0.82959 0.744141
+16 22 20 0.568848 0.819824 0.8125
+16 22 21 0.568359 0.805664 0.87207
+16 22 22 0.56543 0.787109 0.920898
+16 22 23 0.559082 0.764648 0.956055
+16 22 24 0.549316 0.738281 0.979004
+16 22 25 0.536621 0.708008 0.994141
+16 22 26 0.522461 0.675293 1
+16 22 27 0.507812 0.642578 1
+16 22 28 0.493896 0.610352 1
+16 22 29 0.480713 0.580078 1
+16 22 30 0.469238 0.551758 1
+16 22 31 0.458984 0.525879 1
+16 23 0 0.525391 0.84375 0.313477
+16 23 1 0.525391 0.84375 0.313477
+16 23 2 0.525391 0.84375 0.313477
+16 23 3 0.525391 0.84375 0.313477
+16 23 4 0.525391 0.84375 0.313477
+16 23 5 0.525391 0.84375 0.313477
+16 23 6 0.525391 0.84375 0.313477
+16 23 7 0.525879 0.84375 0.313477
+16 23 8 0.525879 0.84375 0.313477
+16 23 9 0.525879 0.84375 0.313477
+16 23 10 0.525879 0.84375 0.313477
+16 23 11 0.525879 0.84375 0.313477
+16 23 12 0.526367 0.844238 0.313477
+16 23 13 0.526367 0.844238 0.313721
+16 23 14 0.529297 0.84668 0.353271
+16 23 15 0.53418 0.850586 0.415771
+16 23 16 0.541016 0.85498 0.488037
+16 23 17 0.54834 0.858398 0.566406
+16 23 18 0.555664 0.860352 0.646484
+16 23 19 0.562012 0.85791 0.723145
+16 23 20 0.565918 0.850586 0.79248
+16 23 21 0.567383 0.838867 0.854004
+16 23 22 0.565918 0.822754 0.905273
+16 23 23 0.5625 0.803711 0.946289
+16 23 24 0.556641 0.78125 0.976074
+16 23 25 0.546875 0.753906 0.998047
+16 23 26 0.534668 0.722168 1
+16 23 27 0.520996 0.688477 1
+16 23 28 0.506836 0.654297 1
+16 23 29 0.493408 0.621094 1
+16 23 30 0.480713 0.589844 1
+16 23 31 0.469482 0.560547 1
+16 24 0 0.519531 0.861816 0.319092
+16 24 1 0.519531 0.861816 0.319092
+16 24 2 0.519531 0.861816 0.319092
+16 24 3 0.519531 0.861816 0.319092
+16 24 4 0.519531 0.861816 0.319092
+16 24 5 0.519531 0.861816 0.319092
+16 24 6 0.519531 0.861816 0.319092
+16 24 7 0.519531 0.861816 0.319092
+16 24 8 0.519531 0.861816 0.319092
+16 24 9 0.519531 0.861816 0.319092
+16 24 10 0.519531 0.861816 0.319092
+16 24 11 0.52002 0.861816 0.319092
+16 24 12 0.52002 0.862305 0.319092
+16 24 13 0.520508 0.862305 0.319336
+16 24 14 0.522461 0.86377 0.342773
+16 24 15 0.527344 0.868164 0.402344
+16 24 16 0.533691 0.872559 0.47168
+16 24 17 0.541504 0.877441 0.547363
+16 24 18 0.549316 0.880371 0.625488
+16 24 19 0.556641 0.879883 0.701172
+16 24 20 0.561523 0.875488 0.770996
+16 24 21 0.564453 0.865723 0.833496
+16 24 22 0.564941 0.852051 0.887207
+16 24 23 0.563477 0.835449 0.931152
+16 24 24 0.560059 0.816406 0.966309
+16 24 25 0.553711 0.79248 0.994629
+16 24 26 0.543945 0.763184 1
+16 24 27 0.531738 0.730469 1
+16 24 28 0.518555 0.695801 1
+16 24 29 0.504883 0.660645 1
+16 24 30 0.491699 0.626953 1
+16 24 31 0.479492 0.594727 1
+16 25 0 0.513184 0.877441 0.323975
+16 25 1 0.513184 0.877441 0.323975
+16 25 2 0.513184 0.877441 0.323975
+16 25 3 0.513184 0.877441 0.323975
+16 25 4 0.513184 0.877441 0.323975
+16 25 5 0.513184 0.877441 0.323975
+16 25 6 0.513184 0.877441 0.323975
+16 25 7 0.513184 0.877441 0.323975
+16 25 8 0.513184 0.877441 0.323975
+16 25 9 0.513184 0.877441 0.323975
+16 25 10 0.513184 0.877441 0.323975
+16 25 11 0.513184 0.87793 0.323975
+16 25 12 0.513672 0.87793 0.323975
+16 25 13 0.513672 0.87793 0.324219
+16 25 14 0.514648 0.878906 0.331787
+16 25 15 0.519531 0.882812 0.388184
+16 25 16 0.525879 0.887695 0.454102
+16 25 17 0.533203 0.893066 0.526855
+16 25 18 0.541504 0.897461 0.602539
+16 25 19 0.549316 0.898926 0.676758
+16 25 20 0.555664 0.896484 0.746582
+16 25 21 0.560059 0.890137 0.810059
+16 25 22 0.5625 0.878906 0.865723
+16 25 23 0.5625 0.864746 0.912109
+16 25 24 0.560547 0.848145 0.949707
+16 25 25 0.557129 0.827637 0.983398
+16 25 26 0.550293 0.801758 1
+16 25 27 0.540527 0.770996 1
+16 25 28 0.528809 0.736816 1
+16 25 29 0.515625 0.701172 1
+16 25 30 0.50293 0.665527 1
+16 25 31 0.48999 0.631348 1
+16 26 0 0.506348 0.891602 0.328369
+16 26 1 0.506348 0.891602 0.328369
+16 26 2 0.506348 0.891602 0.328369
+16 26 3 0.506348 0.891602 0.328369
+16 26 4 0.506348 0.891602 0.328369
+16 26 5 0.506348 0.891602 0.328369
+16 26 6 0.506348 0.891602 0.328369
+16 26 7 0.506348 0.891602 0.328369
+16 26 8 0.506348 0.891602 0.328369
+16 26 9 0.506348 0.891602 0.328369
+16 26 10 0.506348 0.891602 0.328369
+16 26 11 0.506836 0.891602 0.328369
+16 26 12 0.506836 0.891602 0.328369
+16 26 13 0.507324 0.89209 0.328369
+16 26 14 0.507812 0.89209 0.328613
+16 26 15 0.511719 0.895508 0.373779
+16 26 16 0.517578 0.900879 0.436279
+16 26 17 0.524902 0.90625 0.505371
+16 26 18 0.533203 0.911621 0.578125
+16 26 19 0.541504 0.914551 0.650879
+16 26 20 0.548828 0.914551 0.719238
+16 26 21 0.554199 0.910645 0.783203
+16 26 22 0.558105 0.902832 0.840332
+16 26 23 0.560059 0.891602 0.888672
+16 26 24 0.55957 0.877441 0.929199
+16 26 25 0.557617 0.859375 0.96582
+16 26 26 0.553711 0.836914 0.998047
+16 26 27 0.546875 0.80957 1
+16 26 28 0.537109 0.776855 1
+16 26 29 0.525391 0.741699 1
+16 26 30 0.512695 0.705566 1
+16 26 31 0.5 0.669434 1
+16 27 0 0.499756 0.903809 0.332031
+16 27 1 0.499756 0.903809 0.332031
+16 27 2 0.499756 0.903809 0.332031
+16 27 3 0.499756 0.903809 0.332031
+16 27 4 0.499756 0.903809 0.332031
+16 27 5 0.499756 0.903809 0.332031
+16 27 6 0.499756 0.903809 0.332031
+16 27 7 0.499756 0.903809 0.332031
+16 27 8 0.499756 0.903809 0.332031
+16 27 9 0.499756 0.903809 0.332031
+16 27 10 0.5 0.903809 0.332031
+16 27 11 0.5 0.903809 0.332031
+16 27 12 0.5 0.903809 0.332031
+16 27 13 0.500488 0.903809 0.332275
+16 27 14 0.500977 0.904297 0.332275
+16 27 15 0.503418 0.90625 0.359131
+16 27 16 0.509277 0.911621 0.418213
+16 27 17 0.516113 0.91748 0.483643
+16 27 18 0.524414 0.92334 0.553223
+16 27 19 0.532715 0.927734 0.623047
+16 27 20 0.540527 0.929688 0.689941
+16 27 21 0.547363 0.928223 0.753418
+16 27 22 0.552246 0.92334 0.811035
+16 27 23 0.555664 0.915039 0.86084
+16 27 24 0.557129 0.90332 0.903809
+16 27 25 0.556641 0.888184 0.943359
+16 27 26 0.554199 0.868652 0.979004
+16 27 27 0.549805 0.844238 1
+16 27 28 0.54248 0.814453 1
+16 27 29 0.532715 0.780762 1
+16 27 30 0.520996 0.744629 1
+16 27 31 0.508789 0.70752 1
+16 28 0 0.49292 0.913574 0.334961
+16 28 1 0.49292 0.913574 0.334961
+16 28 2 0.49292 0.913574 0.334961
+16 28 3 0.49292 0.913574 0.334961
+16 28 4 0.49292 0.913574 0.334961
+16 28 5 0.49292 0.913574 0.334961
+16 28 6 0.49292 0.913574 0.334961
+16 28 7 0.49292 0.913574 0.334961
+16 28 8 0.49292 0.913574 0.334961
+16 28 9 0.493164 0.913574 0.334961
+16 28 10 0.493164 0.913574 0.334961
+16 28 11 0.493164 0.913574 0.334961
+16 28 12 0.493408 0.913574 0.335205
+16 28 13 0.493652 0.913574 0.335205
+16 28 14 0.494141 0.914062 0.335205
+16 28 15 0.495361 0.915039 0.344482
+16 28 16 0.500488 0.919922 0.399658
+16 28 17 0.507324 0.925781 0.46167
+16 28 18 0.515137 0.931641 0.527344
+16 28 19 0.523438 0.937012 0.594238
+16 28 20 0.53125 0.940918 0.658691
+16 28 21 0.539062 0.941406 0.721191
+16 28 22 0.544922 0.939453 0.778809
+16 28 23 0.549316 0.933594 0.82959
+16 28 24 0.552246 0.925293 0.873535
+16 28 25 0.553711 0.913086 0.915527
+16 28 26 0.553223 0.896484 0.95459
+16 28 27 0.550293 0.875 0.98877
+16 28 28 0.544922 0.848145 1
+16 28 29 0.537109 0.816895 1
+16 28 30 0.527832 0.782715 1
+16 28 31 0.516602 0.746094 1
+16 29 0 0.48584 0.920898 0.337158
+16 29 1 0.48584 0.920898 0.337158
+16 29 2 0.48584 0.920898 0.337158
+16 29 3 0.48584 0.920898 0.337158
+16 29 4 0.48584 0.920898 0.337158
+16 29 5 0.48584 0.920898 0.337158
+16 29 6 0.48584 0.920898 0.337158
+16 29 7 0.48584 0.920898 0.337158
+16 29 8 0.48584 0.920898 0.337158
+16 29 9 0.48584 0.920898 0.337158
+16 29 10 0.486084 0.920898 0.337158
+16 29 11 0.486084 0.920898 0.337158
+16 29 12 0.486084 0.920898 0.337158
+16 29 13 0.486328 0.920898 0.337158
+16 29 14 0.486816 0.920898 0.337158
+16 29 15 0.487305 0.921387 0.337402
+16 29 16 0.491699 0.925293 0.381104
+16 29 17 0.497803 0.931152 0.439209
+16 29 18 0.505371 0.9375 0.501465
+16 29 19 0.513184 0.943359 0.564453
+16 29 20 0.521484 0.948242 0.626465
+16 29 21 0.529297 0.950684 0.686523
+16 29 22 0.536133 0.951172 0.743652
+16 29 23 0.541504 0.948242 0.794434
+16 29 24 0.54541 0.942383 0.839355
+16 29 25 0.54834 0.933594 0.883301
+16 29 26 0.549316 0.919922 0.924805
+16 29 27 0.54834 0.901855 0.962402
+16 29 28 0.54541 0.878418 0.995117
+16 29 29 0.540039 0.850586 1
+16 29 30 0.532715 0.818848 1
+16 29 31 0.523438 0.78418 1
+16 30 0 0.478271 0.924805 0.338135
+16 30 1 0.478271 0.924805 0.338135
+16 30 2 0.478271 0.924805 0.338135
+16 30 3 0.478271 0.924805 0.338135
+16 30 4 0.478271 0.924805 0.338135
+16 30 5 0.478271 0.924805 0.338135
+16 30 6 0.478271 0.924805 0.338135
+16 30 7 0.478271 0.924805 0.338135
+16 30 8 0.478271 0.924805 0.338135
+16 30 9 0.478271 0.924805 0.338135
+16 30 10 0.478271 0.924805 0.338135
+16 30 11 0.478271 0.924805 0.338135
+16 30 12 0.478516 0.924805 0.338135
+16 30 13 0.47876 0.924805 0.338135
+16 30 14 0.479004 0.924805 0.338135
+16 30 15 0.479492 0.925293 0.338379
+16 30 16 0.482178 0.927734 0.362549
+16 30 17 0.487793 0.933105 0.416504
+16 30 18 0.494873 0.939453 0.474609
+16 30 19 0.502441 0.946289 0.53418
+16 30 20 0.510254 0.95166 0.593262
+16 30 21 0.518066 0.955566 0.650879
+16 30 22 0.525391 0.95752 0.706055
+16 30 23 0.531738 0.957031 0.756348
+16 30 24 0.536621 0.954102 0.80127
+16 30 25 0.540527 0.948242 0.846191
+16 30 26 0.543457 0.937988 0.889648
+16 30 27 0.544434 0.923828 0.930176
+16 30 28 0.543457 0.904785 0.967285
+16 30 29 0.540527 0.880859 1
+16 30 30 0.535645 0.852539 1
+16 30 31 0.52832 0.820312 1
+16 31 0 0.470703 0.927246 0.338623
+16 31 1 0.470703 0.927246 0.338623
+16 31 2 0.470703 0.927246 0.338623
+16 31 3 0.470703 0.927246 0.338623
+16 31 4 0.470703 0.927246 0.338623
+16 31 5 0.470703 0.927246 0.338623
+16 31 6 0.470703 0.927246 0.338623
+16 31 7 0.470703 0.927246 0.338623
+16 31 8 0.470703 0.927246 0.338623
+16 31 9 0.470703 0.927246 0.338623
+16 31 10 0.470703 0.927246 0.338623
+16 31 11 0.470947 0.927246 0.338623
+16 31 12 0.470947 0.927246 0.338623
+16 31 13 0.471191 0.927246 0.338623
+16 31 14 0.471436 0.927246 0.338623
+16 31 15 0.471924 0.927246 0.338623
+16 31 16 0.4729 0.928223 0.344482
+16 31 17 0.478027 0.933105 0.394531
+16 31 18 0.484375 0.939453 0.448486
+16 31 19 0.491455 0.945801 0.504395
+16 31 20 0.499023 0.95166 0.55957
+16 31 21 0.506348 0.956543 0.614258
+16 31 22 0.51416 0.959961 0.666992
+16 31 23 0.520508 0.961426 0.71582
+16 31 24 0.526367 0.960938 0.760742
+16 31 25 0.53125 0.958008 0.805664
+16 31 26 0.535645 0.95166 0.850586
+16 31 27 0.538574 0.941406 0.894043
+16 31 28 0.539551 0.926758 0.93457
+16 31 29 0.539062 0.907227 0.97168
+16 31 30 0.536133 0.882812 1
+16 31 31 0.53125 0.854004 1
+17 0 0 0.566895 0.419189 0
+17 0 1 0.566895 0.419189 0
+17 0 2 0.566895 0.419189 0
+17 0 3 0.566895 0.419189 0
+17 0 4 0.566895 0.419189 0
+17 0 5 0.566895 0.419189 0
+17 0 6 0.567383 0.419189 0
+17 0 7 0.567383 0.419189 0
+17 0 8 0.567383 0.419434 0
+17 0 9 0.567383 0.419678 0
+17 0 10 0.567383 0.420166 0
+17 0 11 0.570312 0.422607 0
+17 0 12 0.577148 0.427246 0.16687
+17 0 13 0.589355 0.435303 0.275146
+17 0 14 0.602051 0.44458 0.373535
+17 0 15 0.617188 0.461914 0.476562
+17 0 16 0.628906 0.481934 0.57373
+17 0 17 0.628906 0.483887 0.65918
+17 0 18 0.623047 0.479736 0.737305
+17 0 19 0.614258 0.473389 0.805664
+17 0 20 0.603516 0.465332 0.861816
+17 0 21 0.577637 0.445557 0.885254
+17 0 22 0.54834 0.42334 0.893066
+17 0 23 0.524414 0.405273 0.897949
+17 0 24 0.505371 0.390625 0.901367
+17 0 25 0.488525 0.37793 0.905762
+17 0 26 0.474121 0.366943 0.911133
+17 0 27 0.46167 0.357666 0.91748
+17 0 28 0.45166 0.350098 0.925781
+17 0 29 0.443604 0.343994 0.935059
+17 0 30 0.437256 0.339355 0.945801
+17 0 31 0.432129 0.335693 0.956543
+17 1 0 0.566895 0.419189 0
+17 1 1 0.566895 0.419189 0
+17 1 2 0.566895 0.419189 0
+17 1 3 0.566895 0.419189 0
+17 1 4 0.566895 0.419189 0
+17 1 5 0.567383 0.419189 0
+17 1 6 0.567383 0.419189 0
+17 1 7 0.567383 0.419189 0
+17 1 8 0.567383 0.419434 0
+17 1 9 0.567383 0.419678 0
+17 1 10 0.567383 0.420166 0
+17 1 11 0.570312 0.422607 0
+17 1 12 0.577148 0.427246 0.16687
+17 1 13 0.589355 0.435303 0.275146
+17 1 14 0.602051 0.44458 0.373535
+17 1 15 0.617188 0.461914 0.476562
+17 1 16 0.628906 0.481934 0.57373
+17 1 17 0.628906 0.483887 0.65918
+17 1 18 0.623047 0.479736 0.737305
+17 1 19 0.614258 0.473389 0.805664
+17 1 20 0.603516 0.465332 0.861816
+17 1 21 0.577637 0.445557 0.885254
+17 1 22 0.54834 0.42334 0.893066
+17 1 23 0.524414 0.405273 0.897949
+17 1 24 0.505371 0.390625 0.901367
+17 1 25 0.488525 0.37793 0.905762
+17 1 26 0.474121 0.366943 0.911133
+17 1 27 0.46167 0.357666 0.91748
+17 1 28 0.45166 0.350098 0.925781
+17 1 29 0.443604 0.343994 0.935059
+17 1 30 0.437256 0.339355 0.945801
+17 1 31 0.432129 0.335693 0.956543
+17 2 0 0.566895 0.419189 0
+17 2 1 0.566895 0.419189 0
+17 2 2 0.566895 0.419189 0
+17 2 3 0.566895 0.419189 0
+17 2 4 0.567383 0.419189 0
+17 2 5 0.567383 0.419189 0
+17 2 6 0.567383 0.419189 0
+17 2 7 0.567383 0.419434 0
+17 2 8 0.567383 0.419434 0
+17 2 9 0.567383 0.419678 0
+17 2 10 0.567871 0.420166 0
+17 2 11 0.570312 0.422607 0
+17 2 12 0.577148 0.427246 0.16687
+17 2 13 0.589355 0.435303 0.275146
+17 2 14 0.602051 0.44458 0.373535
+17 2 15 0.617188 0.461914 0.476562
+17 2 16 0.628906 0.481934 0.57373
+17 2 17 0.628906 0.483887 0.65918
+17 2 18 0.623047 0.479736 0.737305
+17 2 19 0.614258 0.473389 0.805664
+17 2 20 0.603516 0.465332 0.861816
+17 2 21 0.577637 0.445557 0.885254
+17 2 22 0.54834 0.42334 0.893066
+17 2 23 0.524414 0.405273 0.897949
+17 2 24 0.505371 0.390625 0.901367
+17 2 25 0.488525 0.37793 0.905762
+17 2 26 0.474121 0.366943 0.911133
+17 2 27 0.46167 0.357666 0.91748
+17 2 28 0.45166 0.350098 0.925781
+17 2 29 0.443604 0.343994 0.935059
+17 2 30 0.437256 0.339355 0.945801
+17 2 31 0.432129 0.335693 0.956543
+17 3 0 0.567383 0.419189 0
+17 3 1 0.567383 0.419189 0
+17 3 2 0.567383 0.419189 0
+17 3 3 0.567383 0.419189 0
+17 3 4 0.567383 0.419189 0
+17 3 5 0.567383 0.419189 0
+17 3 6 0.567383 0.419434 0
+17 3 7 0.567383 0.419434 0
+17 3 8 0.567383 0.419434 0
+17 3 9 0.567383 0.419922 0
+17 3 10 0.567871 0.42041 0
+17 3 11 0.570312 0.422607 0
+17 3 12 0.577148 0.427246 0.16687
+17 3 13 0.589355 0.435303 0.275146
+17 3 14 0.602051 0.44458 0.373535
+17 3 15 0.617188 0.461914 0.476562
+17 3 16 0.628906 0.481934 0.57373
+17 3 17 0.628906 0.483887 0.65918
+17 3 18 0.623047 0.479736 0.737305
+17 3 19 0.614258 0.473389 0.805664
+17 3 20 0.603516 0.465332 0.861816
+17 3 21 0.577637 0.445557 0.885254
+17 3 22 0.54834 0.42334 0.893066
+17 3 23 0.524414 0.405273 0.897949
+17 3 24 0.505371 0.390625 0.901367
+17 3 25 0.488525 0.37793 0.905762
+17 3 26 0.474121 0.366943 0.911133
+17 3 27 0.46167 0.357666 0.91748
+17 3 28 0.45166 0.350098 0.925781
+17 3 29 0.443604 0.343994 0.935059
+17 3 30 0.437256 0.339355 0.945801
+17 3 31 0.432129 0.335693 0.956543
+17 4 0 0.567383 0.419434 0
+17 4 1 0.567383 0.419434 0
+17 4 2 0.567383 0.419434 0
+17 4 3 0.567383 0.419434 0
+17 4 4 0.567383 0.419434 0
+17 4 5 0.567383 0.419434 0
+17 4 6 0.567383 0.419434 0
+17 4 7 0.567383 0.419434 0
+17 4 8 0.567383 0.419678 0
+17 4 9 0.567383 0.419922 0
+17 4 10 0.567871 0.42041 0
+17 4 11 0.570312 0.422852 0
+17 4 12 0.577148 0.427246 0.16687
+17 4 13 0.589355 0.435547 0.275146
+17 4 14 0.602051 0.44458 0.373535
+17 4 15 0.617188 0.461914 0.476562
+17 4 16 0.628906 0.481934 0.57373
+17 4 17 0.628906 0.483887 0.65918
+17 4 18 0.623047 0.479736 0.737305
+17 4 19 0.614258 0.473389 0.805664
+17 4 20 0.603516 0.465576 0.861816
+17 4 21 0.577637 0.445557 0.885254
+17 4 22 0.54834 0.42334 0.893066
+17 4 23 0.524414 0.405273 0.897949
+17 4 24 0.505371 0.390625 0.901367
+17 4 25 0.488525 0.37793 0.905762
+17 4 26 0.474121 0.366943 0.911133
+17 4 27 0.46167 0.357666 0.91748
+17 4 28 0.45166 0.350098 0.925781
+17 4 29 0.443604 0.343994 0.935059
+17 4 30 0.437256 0.339355 0.945801
+17 4 31 0.432129 0.335693 0.956543
+17 5 0 0.567383 0.419678 0
+17 5 1 0.567383 0.419678 0
+17 5 2 0.567383 0.419678 0
+17 5 3 0.567383 0.419678 0
+17 5 4 0.567383 0.419678 0
+17 5 5 0.567383 0.419678 0
+17 5 6 0.567383 0.419678 0
+17 5 7 0.567383 0.419678 0
+17 5 8 0.567383 0.419922 0
+17 5 9 0.567383 0.420166 0
+17 5 10 0.567871 0.420654 0
+17 5 11 0.570801 0.422852 0
+17 5 12 0.577637 0.42749 0.16687
+17 5 13 0.589355 0.435547 0.275146
+17 5 14 0.602539 0.444824 0.373535
+17 5 15 0.617188 0.462158 0.476562
+17 5 16 0.628906 0.482178 0.57373
+17 5 17 0.628906 0.484131 0.65918
+17 5 18 0.623047 0.47998 0.737305
+17 5 19 0.614258 0.473633 0.805664
+17 5 20 0.603516 0.465576 0.861816
+17 5 21 0.577637 0.445557 0.885742
+17 5 22 0.54834 0.423584 0.893066
+17 5 23 0.524414 0.405273 0.897949
+17 5 24 0.505371 0.390869 0.901367
+17 5 25 0.488525 0.37793 0.905762
+17 5 26 0.474121 0.366943 0.911133
+17 5 27 0.46167 0.357666 0.91748
+17 5 28 0.45166 0.350098 0.925781
+17 5 29 0.443604 0.344238 0.935059
+17 5 30 0.437256 0.339355 0.945801
+17 5 31 0.432129 0.335693 0.956543
+17 6 0 0.567383 0.419922 0
+17 6 1 0.567383 0.419922 0
+17 6 2 0.567383 0.419922 0
+17 6 3 0.567383 0.419922 0
+17 6 4 0.567383 0.419922 0
+17 6 5 0.567383 0.420166 0
+17 6 6 0.567383 0.420166 0
+17 6 7 0.567383 0.420166 0
+17 6 8 0.567383 0.42041 0
+17 6 9 0.567871 0.420654 0
+17 6 10 0.567871 0.421143 0
+17 6 11 0.570801 0.42334 0
+17 6 12 0.577637 0.427979 0.166992
+17 6 13 0.589355 0.436035 0.274902
+17 6 14 0.602539 0.445068 0.373535
+17 6 15 0.617188 0.462402 0.476562
+17 6 16 0.628906 0.482422 0.57373
+17 6 17 0.628906 0.484375 0.65918
+17 6 18 0.623047 0.480225 0.737305
+17 6 19 0.614258 0.473877 0.805664
+17 6 20 0.603516 0.46582 0.861816
+17 6 21 0.577637 0.445801 0.885742
+17 6 22 0.54834 0.423584 0.893066
+17 6 23 0.524414 0.405518 0.897949
+17 6 24 0.505371 0.390869 0.901367
+17 6 25 0.488525 0.378174 0.905762
+17 6 26 0.474121 0.367188 0.911133
+17 6 27 0.46167 0.357666 0.91748
+17 6 28 0.45166 0.350342 0.925781
+17 6 29 0.443604 0.344238 0.935547
+17 6 30 0.437256 0.339355 0.945801
+17 6 31 0.432129 0.335693 0.956543
+17 7 0 0.567871 0.420898 0
+17 7 1 0.567871 0.420898 0
+17 7 2 0.567871 0.420898 0
+17 7 3 0.567871 0.420898 0
+17 7 4 0.567871 0.420898 0
+17 7 5 0.567871 0.420898 0
+17 7 6 0.567871 0.420898 0
+17 7 7 0.567871 0.420898 0
+17 7 8 0.567871 0.421143 0
+17 7 9 0.567871 0.421387 0
+17 7 10 0.568359 0.421875 0
+17 7 11 0.570801 0.424072 0
+17 7 12 0.577637 0.428711 0.167114
+17 7 13 0.589355 0.436768 0.274902
+17 7 14 0.602539 0.445801 0.373535
+17 7 15 0.617188 0.462891 0.476562
+17 7 16 0.628906 0.48291 0.57373
+17 7 17 0.628906 0.484863 0.65918
+17 7 18 0.623047 0.480469 0.737305
+17 7 19 0.614746 0.474121 0.805664
+17 7 20 0.604004 0.466309 0.861816
+17 7 21 0.577637 0.446289 0.885742
+17 7 22 0.54834 0.424072 0.893066
+17 7 23 0.524414 0.405762 0.897949
+17 7 24 0.505371 0.391113 0.901855
+17 7 25 0.48877 0.378418 0.905762
+17 7 26 0.474121 0.367432 0.911133
+17 7 27 0.461914 0.35791 0.91748
+17 7 28 0.451904 0.350342 0.925781
+17 7 29 0.443848 0.344482 0.935547
+17 7 30 0.437256 0.3396 0.945801
+17 7 31 0.432373 0.335938 0.956543
+17 8 0 0.568359 0.422607 0
+17 8 1 0.568359 0.422607 0
+17 8 2 0.568359 0.422607 0
+17 8 3 0.568359 0.422607 0
+17 8 4 0.568359 0.422607 0
+17 8 5 0.568359 0.422607 0
+17 8 6 0.568359 0.422607 0
+17 8 7 0.568359 0.422607 0
+17 8 8 0.568359 0.422852 0
+17 8 9 0.568848 0.423096 0
+17 8 10 0.568848 0.423584 0
+17 8 11 0.571777 0.425781 0
+17 8 12 0.578125 0.430176 0.167358
+17 8 13 0.589844 0.437988 0.274902
+17 8 14 0.603027 0.447021 0.373535
+17 8 15 0.617188 0.463867 0.476562
+17 8 16 0.628906 0.483643 0.57373
+17 8 17 0.628906 0.485596 0.65918
+17 8 18 0.623047 0.481445 0.737305
+17 8 19 0.614746 0.475098 0.805664
+17 8 20 0.604004 0.467041 0.861816
+17 8 21 0.577637 0.447021 0.885742
+17 8 22 0.54834 0.424561 0.893555
+17 8 23 0.524902 0.406494 0.897949
+17 8 24 0.505371 0.391846 0.901855
+17 8 25 0.48877 0.378906 0.90625
+17 8 26 0.474121 0.367676 0.911133
+17 8 27 0.461914 0.358398 0.917969
+17 8 28 0.451904 0.35083 0.925781
+17 8 29 0.443848 0.344727 0.935547
+17 8 30 0.4375 0.339844 0.945801
+17 8 31 0.432373 0.336182 0.957031
+17 9 0 0.569824 0.425537 0
+17 9 1 0.569824 0.425537 0
+17 9 2 0.569824 0.425537 0
+17 9 3 0.569824 0.425537 0
+17 9 4 0.569824 0.425537 0
+17 9 5 0.569824 0.425537 0
+17 9 6 0.569824 0.425781 0
+17 9 7 0.569824 0.425781 0
+17 9 8 0.569824 0.425781 0
+17 9 9 0.569824 0.42627 0
+17 9 10 0.570312 0.426758 0
+17 9 11 0.572754 0.428711 0
+17 9 12 0.579102 0.433105 0.167847
+17 9 13 0.590332 0.44043 0.274658
+17 9 14 0.603516 0.449463 0.373291
+17 9 15 0.617676 0.465576 0.476318
+17 9 16 0.629395 0.485352 0.57373
+17 9 17 0.628906 0.487549 0.65918
+17 9 18 0.623535 0.483154 0.737305
+17 9 19 0.614746 0.476562 0.805664
+17 9 20 0.604004 0.468506 0.861816
+17 9 21 0.577637 0.448242 0.885742
+17 9 22 0.548828 0.425781 0.893555
+17 9 23 0.524902 0.407471 0.897949
+17 9 24 0.505859 0.392822 0.901855
+17 9 25 0.489014 0.379883 0.90625
+17 9 26 0.474365 0.368652 0.911621
+17 9 27 0.461914 0.359131 0.917969
+17 9 28 0.451904 0.351562 0.92627
+17 9 29 0.443848 0.345215 0.935547
+17 9 30 0.4375 0.340332 0.945801
+17 9 31 0.432373 0.33667 0.957031
+17 10 0 0.571777 0.431152 0
+17 10 1 0.571777 0.431152 0
+17 10 2 0.571777 0.431152 0
+17 10 3 0.571777 0.431152 0
+17 10 4 0.571777 0.431152 0
+17 10 5 0.571777 0.431152 0
+17 10 6 0.571777 0.431396 0
+17 10 7 0.571777 0.431396 0
+17 10 8 0.571777 0.431396 0
+17 10 9 0.572266 0.431885 0
+17 10 10 0.572266 0.432373 0
+17 10 11 0.574707 0.434326 0
+17 10 12 0.581055 0.438232 0.169067
+17 10 13 0.591797 0.445068 0.274658
+17 10 14 0.604492 0.453857 0.373291
+17 10 15 0.617676 0.468994 0.476318
+17 10 16 0.629395 0.488525 0.57373
+17 10 17 0.629395 0.490479 0.65918
+17 10 18 0.623535 0.486084 0.737305
+17 10 19 0.615234 0.479492 0.805664
+17 10 20 0.604492 0.471191 0.861816
+17 10 21 0.578125 0.450684 0.88623
+17 10 22 0.549316 0.427979 0.894043
+17 10 23 0.525391 0.409424 0.898438
+17 10 24 0.505859 0.394531 0.902344
+17 10 25 0.489258 0.381592 0.906738
+17 10 26 0.474609 0.370117 0.911621
+17 10 27 0.462402 0.360596 0.918457
+17 10 28 0.452393 0.352783 0.926758
+17 10 29 0.444092 0.346436 0.936035
+17 10 30 0.437744 0.341553 0.946289
+17 10 31 0.432617 0.337402 0.957031
+17 11 0 0.575684 0.440918 0
+17 11 1 0.575684 0.440918 0
+17 11 2 0.575684 0.440918 0
+17 11 3 0.575684 0.440918 0
+17 11 4 0.575684 0.440918 0
+17 11 5 0.575684 0.440918 0
+17 11 6 0.575684 0.440918 0
+17 11 7 0.575684 0.440918 0
+17 11 8 0.575684 0.441162 0
+17 11 9 0.575684 0.441406 0
+17 11 10 0.576172 0.441895 0
+17 11 11 0.578125 0.443604 0
+17 11 12 0.583984 0.447021 0.171875
+17 11 13 0.59375 0.453125 0.274902
+17 11 14 0.605957 0.461426 0.373535
+17 11 15 0.618652 0.474854 0.47583
+17 11 16 0.629883 0.493896 0.57373
+17 11 17 0.629883 0.49585 0.659668
+17 11 18 0.624023 0.491211 0.737793
+17 11 19 0.615723 0.484375 0.806152
+17 11 20 0.60498 0.475586 0.862305
+17 11 21 0.579102 0.455078 0.886719
+17 11 22 0.549805 0.431885 0.894531
+17 11 23 0.525879 0.413086 0.898926
+17 11 24 0.506836 0.397705 0.902832
+17 11 25 0.489746 0.384521 0.907227
+17 11 26 0.475098 0.372803 0.912598
+17 11 27 0.462891 0.363037 0.918945
+17 11 28 0.452637 0.35498 0.927246
+17 11 29 0.44458 0.348389 0.936523
+17 11 30 0.438232 0.343262 0.946777
+17 11 31 0.433105 0.339111 0.958008
+17 12 0 0.582031 0.456787 0
+17 12 1 0.582031 0.456787 0
+17 12 2 0.582031 0.456787 0
+17 12 3 0.582031 0.456787 0
+17 12 4 0.582031 0.456787 0
+17 12 5 0.582031 0.456787 0
+17 12 6 0.582031 0.456787 0
+17 12 7 0.582031 0.457031 0
+17 12 8 0.582031 0.457031 0
+17 12 9 0.582031 0.457275 0
+17 12 10 0.582031 0.457764 0
+17 12 11 0.583984 0.459229 0
+17 12 12 0.588867 0.461914 0.178589
+17 12 13 0.597168 0.466797 0.276367
+17 12 14 0.608887 0.474365 0.374023
+17 12 15 0.619629 0.484863 0.475098
+17 12 16 0.630371 0.50293 0.57373
+17 12 17 0.630859 0.504883 0.659668
+17 12 18 0.625 0.499756 0.737793
+17 12 19 0.616699 0.492432 0.806152
+17 12 20 0.605957 0.483398 0.862793
+17 12 21 0.580078 0.462402 0.887695
+17 12 22 0.550781 0.438477 0.89502
+17 12 23 0.526855 0.418945 0.899902
+17 12 24 0.507324 0.403076 0.903809
+17 12 25 0.490723 0.389404 0.908203
+17 12 26 0.476074 0.377197 0.913574
+17 12 27 0.463623 0.366943 0.919922
+17 12 28 0.453613 0.358643 0.928223
+17 12 29 0.445312 0.351807 0.9375
+17 12 30 0.438721 0.346191 0.947754
+17 12 31 0.433594 0.341797 0.958496
+17 13 0 0.591309 0.481445 0
+17 13 1 0.591309 0.481445 0
+17 13 2 0.591309 0.481445 0
+17 13 3 0.591309 0.481445 0
+17 13 4 0.591309 0.481445 0
+17 13 5 0.591309 0.481445 0
+17 13 6 0.591309 0.481445 0
+17 13 7 0.591309 0.481445 0
+17 13 8 0.591309 0.481689 0
+17 13 9 0.591309 0.481934 0
+17 13 10 0.591797 0.482178 0
+17 13 11 0.592773 0.483154 0.0661011
+17 13 12 0.59668 0.485352 0.193359
+17 13 13 0.603027 0.488525 0.281494
+17 13 14 0.612305 0.493896 0.374512
+17 13 15 0.621094 0.500488 0.473633
+17 13 16 0.630859 0.516602 0.573242
+17 13 17 0.631836 0.519043 0.659668
+17 13 18 0.626465 0.513184 0.738281
+17 13 19 0.618164 0.505371 0.806641
+17 13 20 0.607422 0.495605 0.863281
+17 13 21 0.582031 0.473877 0.88916
+17 13 22 0.552246 0.44873 0.896484
+17 13 23 0.52832 0.428223 0.901367
+17 13 24 0.509277 0.411865 0.905273
+17 13 25 0.492188 0.397217 0.909668
+17 13 26 0.477539 0.384521 0.915527
+17 13 27 0.465088 0.373779 0.921875
+17 13 28 0.454834 0.364746 0.930176
+17 13 29 0.446533 0.357178 0.939453
+17 13 30 0.439941 0.351074 0.949707
+17 13 31 0.43457 0.346191 0.959961
+17 14 0 0.604492 0.516602 0.10614
+17 14 1 0.604492 0.516602 0.10614
+17 14 2 0.604492 0.516602 0.10614
+17 14 3 0.604492 0.516602 0.10614
+17 14 4 0.604492 0.516602 0.106201
+17 14 5 0.604492 0.516602 0.106201
+17 14 6 0.604492 0.516602 0.106323
+17 14 7 0.604492 0.516602 0.106445
+17 14 8 0.604492 0.516602 0.10675
+17 14 9 0.60498 0.51709 0.1073
+17 14 10 0.60498 0.51709 0.108276
+17 14 11 0.605957 0.518066 0.146484
+17 14 12 0.60791 0.519043 0.221069
+17 14 13 0.611816 0.520508 0.295166
+17 14 14 0.617188 0.522461 0.377441
+17 14 15 0.623047 0.525391 0.47168
+17 14 16 0.631348 0.536621 0.571777
+17 14 17 0.633789 0.539551 0.659668
+17 14 18 0.628418 0.533691 0.738281
+17 14 19 0.620117 0.524902 0.807617
+17 14 20 0.609375 0.51416 0.864258
+17 14 21 0.584961 0.491211 0.891113
+17 14 22 0.555176 0.4646 0.898926
+17 14 23 0.530762 0.442627 0.903809
+17 14 24 0.511719 0.425049 0.907715
+17 14 25 0.494629 0.409668 0.912598
+17 14 26 0.47998 0.395752 0.917969
+17 14 27 0.467285 0.384033 0.924805
+17 14 28 0.457031 0.374023 0.933105
+17 14 29 0.448486 0.365723 0.942383
+17 14 30 0.44165 0.358643 0.952148
+17 14 31 0.435791 0.352539 0.961914
+17 15 0 0.62207 0.5625 0.194824
+17 15 1 0.62207 0.5625 0.194824
+17 15 2 0.62207 0.5625 0.194824
+17 15 3 0.62207 0.5625 0.194824
+17 15 4 0.622559 0.5625 0.194824
+17 15 5 0.622559 0.5625 0.194824
+17 15 6 0.622559 0.5625 0.194824
+17 15 7 0.622559 0.562988 0.194946
+17 15 8 0.622559 0.562988 0.195068
+17 15 9 0.622559 0.562988 0.19519
+17 15 10 0.622559 0.563477 0.195557
+17 15 11 0.623047 0.563965 0.206421
+17 15 12 0.623535 0.563965 0.259521
+17 15 13 0.624512 0.563965 0.320801
+17 15 14 0.625488 0.562988 0.391113
+17 15 15 0.625977 0.560547 0.471436
+17 15 16 0.630371 0.562988 0.567383
+17 15 17 0.635742 0.568848 0.65918
+17 15 18 0.630859 0.562012 0.738281
+17 15 19 0.623047 0.552246 0.807617
+17 15 20 0.612305 0.540039 0.865234
+17 15 21 0.588867 0.516602 0.894043
+17 15 22 0.559082 0.487305 0.902344
+17 15 23 0.534668 0.463867 0.907227
+17 15 24 0.515625 0.444824 0.912109
+17 15 25 0.498535 0.427734 0.916992
+17 15 26 0.483643 0.412598 0.922852
+17 15 27 0.470947 0.39917 0.929688
+17 15 28 0.460205 0.387939 0.9375
+17 15 29 0.45166 0.378174 0.946289
+17 15 30 0.443604 0.369385 0.95459
+17 15 31 0.437256 0.361816 0.962891
+17 16 0 0.641602 0.618652 0.247559
+17 16 1 0.641602 0.618652 0.247559
+17 16 2 0.641602 0.618652 0.247559
+17 16 3 0.641602 0.618652 0.247559
+17 16 4 0.641602 0.618652 0.247559
+17 16 5 0.641602 0.618652 0.247559
+17 16 6 0.641602 0.618652 0.247559
+17 16 7 0.641602 0.618652 0.247559
+17 16 8 0.641602 0.618652 0.247559
+17 16 9 0.641602 0.618652 0.247681
+17 16 10 0.641602 0.619141 0.247803
+17 16 11 0.64209 0.619629 0.248047
+17 16 12 0.64209 0.619141 0.291992
+17 16 13 0.642578 0.618652 0.348145
+17 16 14 0.641602 0.616699 0.413818
+17 16 15 0.638184 0.611816 0.486084
+17 16 16 0.630371 0.601562 0.5625
+17 16 17 0.637695 0.606445 0.657227
+17 16 18 0.633301 0.599121 0.736816
+17 16 19 0.625977 0.588379 0.807617
+17 16 20 0.616211 0.574707 0.865723
+17 16 21 0.594238 0.550293 0.897949
+17 16 22 0.564941 0.519043 0.906738
+17 16 23 0.541016 0.493408 0.913086
+17 16 24 0.521484 0.472412 0.918457
+17 16 25 0.504395 0.453369 0.924316
+17 16 26 0.489502 0.436279 0.930176
+17 16 27 0.47583 0.420654 0.936035
+17 16 28 0.464111 0.406738 0.942383
+17 16 29 0.454346 0.394775 0.949219
+17 16 30 0.446045 0.384277 0.957031
+17 16 31 0.439209 0.375 0.965332
+17 17 0 0.650879 0.67334 0.270508
+17 17 1 0.650879 0.67334 0.270508
+17 17 2 0.650879 0.67334 0.270508
+17 17 3 0.650879 0.67334 0.270508
+17 17 4 0.650879 0.67334 0.270508
+17 17 5 0.650879 0.67334 0.270508
+17 17 6 0.650879 0.67334 0.270508
+17 17 7 0.650879 0.67334 0.270508
+17 17 8 0.650879 0.673828 0.270508
+17 17 9 0.650879 0.673828 0.270508
+17 17 10 0.650879 0.673828 0.270508
+17 17 11 0.650879 0.674316 0.270752
+17 17 12 0.651367 0.674316 0.300293
+17 17 13 0.652344 0.674316 0.355957
+17 17 14 0.652832 0.67334 0.422119
+17 17 15 0.651367 0.67041 0.496582
+17 17 16 0.647461 0.663574 0.575684
+17 17 17 0.638672 0.650879 0.652832
+17 17 18 0.635742 0.643066 0.733887
+17 17 19 0.629395 0.631836 0.805176
+17 17 20 0.620117 0.617188 0.864746
+17 17 21 0.600586 0.591797 0.900391
+17 17 22 0.572266 0.558594 0.912109
+17 17 23 0.54834 0.530273 0.919922
+17 17 24 0.528809 0.506836 0.925293
+17 17 25 0.510742 0.484863 0.930176
+17 17 26 0.494873 0.464844 0.935059
+17 17 27 0.480713 0.446533 0.94043
+17 17 28 0.468506 0.43042 0.946777
+17 17 29 0.458252 0.41626 0.953613
+17 17 30 0.449707 0.403809 0.960938
+17 17 31 0.442383 0.392578 0.96875
+17 18 0 0.641113 0.713379 0.28125
+17 18 1 0.641113 0.713379 0.28125
+17 18 2 0.641113 0.713379 0.28125
+17 18 3 0.641113 0.713379 0.28125
+17 18 4 0.641113 0.713379 0.28125
+17 18 5 0.641113 0.713379 0.28125
+17 18 6 0.641113 0.713379 0.28125
+17 18 7 0.641113 0.713379 0.28125
+17 18 8 0.641113 0.713867 0.28125
+17 18 9 0.641113 0.713867 0.281494
+17 18 10 0.641113 0.713867 0.281494
+17 18 11 0.641113 0.713867 0.281494
+17 18 12 0.641602 0.714355 0.295166
+17 18 13 0.642578 0.714355 0.348633
+17 18 14 0.643066 0.713379 0.412598
+17 18 15 0.643066 0.710938 0.485352
+17 18 16 0.640625 0.70459 0.563965
+17 18 17 0.637695 0.697754 0.645508
+17 18 18 0.63623 0.69043 0.727051
+17 18 19 0.631836 0.679199 0.800293
+17 18 20 0.624023 0.664062 0.861816
+17 18 21 0.606445 0.638672 0.901367
+17 18 22 0.580566 0.604492 0.91748
+17 18 23 0.557129 0.57373 0.927246
+17 18 24 0.537598 0.547852 0.933594
+17 18 25 0.519531 0.522949 0.938965
+17 18 26 0.50293 0.5 0.943848
+17 18 27 0.488037 0.479004 0.94873
+17 18 28 0.475098 0.460205 0.954102
+17 18 29 0.464111 0.443115 0.960449
+17 18 30 0.454834 0.427979 0.967285
+17 18 31 0.447021 0.414551 0.974121
+17 19 0 0.626465 0.747559 0.290283
+17 19 1 0.626465 0.747559 0.290283
+17 19 2 0.626465 0.747559 0.290283
+17 19 3 0.626465 0.747559 0.290283
+17 19 4 0.626465 0.747559 0.290283
+17 19 5 0.626465 0.747559 0.290283
+17 19 6 0.626465 0.747559 0.290283
+17 19 7 0.626465 0.747559 0.290283
+17 19 8 0.626465 0.747559 0.290283
+17 19 9 0.626465 0.747559 0.290527
+17 19 10 0.626953 0.748047 0.290527
+17 19 11 0.626953 0.748047 0.290527
+17 19 12 0.626953 0.748535 0.290527
+17 19 13 0.628418 0.749023 0.338623
+17 19 14 0.629883 0.749023 0.400391
+17 19 15 0.631836 0.748535 0.47168
+17 19 16 0.632812 0.746094 0.550781
+17 19 17 0.634766 0.743164 0.634277
+17 19 18 0.635254 0.737305 0.716797
+17 19 19 0.632324 0.727051 0.791504
+17 19 20 0.626465 0.711914 0.85498
+17 19 21 0.612793 0.688477 0.900391
+17 19 22 0.59082 0.655762 0.924316
+17 19 23 0.569336 0.624023 0.937988
+17 19 24 0.549805 0.595703 0.945801
+17 19 25 0.53125 0.567871 0.95166
+17 19 26 0.513672 0.541992 0.956543
+17 19 27 0.498047 0.517578 0.960449
+17 19 28 0.484131 0.494873 0.964844
+17 19 29 0.471924 0.474854 0.970215
+17 19 30 0.46167 0.456543 0.975586
+17 19 31 0.452881 0.44043 0.981934
+17 20 0 0.614258 0.780762 0.299561
+17 20 1 0.614258 0.780762 0.299561
+17 20 2 0.614258 0.780762 0.299561
+17 20 3 0.614258 0.780762 0.299561
+17 20 4 0.614258 0.780762 0.299561
+17 20 5 0.614746 0.780762 0.299561
+17 20 6 0.614746 0.780762 0.299561
+17 20 7 0.614746 0.780762 0.299561
+17 20 8 0.614746 0.780762 0.299561
+17 20 9 0.614746 0.780762 0.299561
+17 20 10 0.614746 0.780762 0.299561
+17 20 11 0.614746 0.780762 0.299805
+17 20 12 0.615234 0.78125 0.299805
+17 20 13 0.616211 0.782227 0.329834
+17 20 14 0.618652 0.783203 0.38916
+17 20 15 0.62207 0.78418 0.45874
+17 20 16 0.625488 0.785156 0.537109
+17 20 17 0.629395 0.78418 0.620605
+17 20 18 0.631348 0.779785 0.703125
+17 20 19 0.630859 0.770996 0.779297
+17 20 20 0.626953 0.757324 0.844238
+17 20 21 0.618164 0.737305 0.896973
+17 20 22 0.602051 0.708984 0.930664
+17 20 23 0.583008 0.677734 0.949707
+17 20 24 0.564453 0.647949 0.960449
+17 20 25 0.545898 0.617676 0.967773
+17 20 26 0.527344 0.587891 0.972168
+17 20 27 0.510742 0.560059 0.976074
+17 20 28 0.495117 0.53418 0.979004
+17 20 29 0.481689 0.510254 0.98291
+17 20 30 0.470215 0.488525 0.986816
+17 20 31 0.460205 0.469238 0.991699
+17 21 0 0.604004 0.811523 0.308594
+17 21 1 0.604004 0.811523 0.308594
+17 21 2 0.604004 0.811523 0.308594
+17 21 3 0.604004 0.811523 0.308594
+17 21 4 0.604004 0.811523 0.308594
+17 21 5 0.604004 0.811523 0.308594
+17 21 6 0.604004 0.811523 0.308594
+17 21 7 0.604004 0.811523 0.308594
+17 21 8 0.604004 0.811523 0.308594
+17 21 9 0.604004 0.812012 0.308594
+17 21 10 0.604004 0.812012 0.308594
+17 21 11 0.604004 0.812012 0.308594
+17 21 12 0.604492 0.812012 0.308838
+17 21 13 0.605469 0.812988 0.321289
+17 21 14 0.60791 0.814453 0.378174
+17 21 15 0.611816 0.816895 0.445312
+17 21 16 0.616699 0.818848 0.521973
+17 21 17 0.621582 0.819824 0.604004
+17 21 18 0.625488 0.817383 0.686035
+17 21 19 0.626953 0.810547 0.762695
+17 21 20 0.625 0.798828 0.830078
+17 21 21 0.620117 0.782227 0.887207
+17 21 22 0.610352 0.759766 0.930664
+17 21 23 0.595703 0.731445 0.95752
+17 21 24 0.579102 0.70166 0.973633
+17 21 25 0.561035 0.669922 0.983398
+17 21 26 0.54248 0.637695 0.989258
+17 21 27 0.524902 0.606445 0.993164
+17 21 28 0.508301 0.57666 0.995605
+17 21 29 0.493408 0.548828 0.998047
+17 21 30 0.480469 0.523926 1
+17 21 31 0.469238 0.500977 1
+17 22 0 0.59375 0.838379 0.316406
+17 22 1 0.59375 0.838379 0.316406
+17 22 2 0.59375 0.838379 0.316406
+17 22 3 0.59375 0.838379 0.316406
+17 22 4 0.59375 0.838379 0.316406
+17 22 5 0.59375 0.838379 0.316406
+17 22 6 0.59375 0.838379 0.316406
+17 22 7 0.59375 0.838379 0.316406
+17 22 8 0.59375 0.838379 0.316406
+17 22 9 0.59375 0.838379 0.316406
+17 22 10 0.59375 0.838379 0.316406
+17 22 11 0.59375 0.838867 0.316406
+17 22 12 0.594238 0.838867 0.31665
+17 22 13 0.594238 0.838867 0.31665
+17 22 14 0.597168 0.841309 0.367188
+17 22 15 0.601074 0.84375 0.431641
+17 22 16 0.606445 0.84668 0.505859
+17 22 17 0.612305 0.849121 0.585449
+17 22 18 0.617676 0.848633 0.666504
+17 22 19 0.620605 0.84375 0.743652
+17 22 20 0.621094 0.834473 0.8125
+17 22 21 0.618164 0.820312 0.87207
+17 22 22 0.612793 0.801758 0.921387
+17 22 23 0.603516 0.778809 0.957031
+17 22 24 0.590332 0.751953 0.97998
+17 22 25 0.574707 0.721191 0.995117
+17 22 26 0.557129 0.687988 1
+17 22 27 0.539551 0.653809 1
+17 22 28 0.521973 0.621094 1
+17 22 29 0.506348 0.590332 1
+17 22 30 0.491699 0.561035 1
+17 22 31 0.479248 0.534668 1
+17 23 0 0.583496 0.859375 0.32251
+17 23 1 0.583496 0.859375 0.32251
+17 23 2 0.583496 0.859375 0.32251
+17 23 3 0.583496 0.859375 0.32251
+17 23 4 0.583496 0.859375 0.32251
+17 23 5 0.583496 0.859375 0.32251
+17 23 6 0.583496 0.859375 0.32251
+17 23 7 0.583496 0.859375 0.32251
+17 23 8 0.583496 0.859375 0.32251
+17 23 9 0.583496 0.859375 0.32251
+17 23 10 0.583496 0.859863 0.32251
+17 23 11 0.583496 0.859863 0.32251
+17 23 12 0.583496 0.859863 0.32251
+17 23 13 0.583984 0.859863 0.322754
+17 23 14 0.586426 0.861816 0.356201
+17 23 15 0.590332 0.865234 0.417969
+17 23 16 0.596191 0.868652 0.489258
+17 23 17 0.602539 0.87207 0.566895
+17 23 18 0.608887 0.873535 0.646484
+17 23 19 0.613281 0.870605 0.723145
+17 23 20 0.615723 0.86377 0.79248
+17 23 21 0.614746 0.852051 0.854004
+17 23 22 0.611328 0.835449 0.905762
+17 23 23 0.605469 0.816406 0.947266
+17 23 24 0.597168 0.793945 0.977539
+17 23 25 0.584473 0.766113 0.999512
+17 23 26 0.569336 0.733887 1
+17 23 27 0.552246 0.699219 1
+17 23 28 0.535156 0.664551 1
+17 23 29 0.518555 0.630859 1
+17 23 30 0.503418 0.598633 1
+17 23 31 0.489502 0.568848 1
+17 24 0 0.573242 0.876465 0.327393
+17 24 1 0.573242 0.876465 0.327393
+17 24 2 0.573242 0.876465 0.327393
+17 24 3 0.573242 0.876465 0.327393
+17 24 4 0.573242 0.876465 0.327393
+17 24 5 0.573242 0.876465 0.327393
+17 24 6 0.573242 0.876465 0.327393
+17 24 7 0.573242 0.876465 0.327393
+17 24 8 0.573242 0.876465 0.327393
+17 24 9 0.573242 0.876465 0.327393
+17 24 10 0.573242 0.876465 0.327393
+17 24 11 0.57373 0.876465 0.327393
+17 24 12 0.57373 0.876465 0.327393
+17 24 13 0.574219 0.876953 0.327393
+17 24 14 0.575684 0.87793 0.345703
+17 24 15 0.580078 0.881348 0.404785
+17 24 16 0.585449 0.885742 0.473389
+17 24 17 0.592285 0.890137 0.54834
+17 24 18 0.599121 0.892578 0.625977
+17 24 19 0.60498 0.89209 0.70166
+17 24 20 0.608398 0.887207 0.771484
+17 24 21 0.609863 0.87793 0.833984
+17 24 22 0.608398 0.86377 0.887695
+17 24 23 0.604492 0.847168 0.931641
+17 24 24 0.599121 0.828125 0.967285
+17 24 25 0.590332 0.804199 0.996094
+17 24 26 0.577637 0.774414 1
+17 24 27 0.562988 0.740723 1
+17 24 28 0.546387 0.705078 1
+17 24 29 0.529785 0.669434 1
+17 24 30 0.51416 0.635254 1
+17 24 31 0.499512 0.602539 1
+17 25 0 0.562988 0.890625 0.331299
+17 25 1 0.562988 0.890625 0.331299
+17 25 2 0.562988 0.890625 0.331299
+17 25 3 0.562988 0.890625 0.331299
+17 25 4 0.562988 0.890625 0.331299
+17 25 5 0.562988 0.890625 0.331299
+17 25 6 0.562988 0.890625 0.331543
+17 25 7 0.562988 0.890625 0.331543
+17 25 8 0.562988 0.890625 0.331543
+17 25 9 0.562988 0.890625 0.331543
+17 25 10 0.562988 0.890625 0.331543
+17 25 11 0.562988 0.891113 0.331543
+17 25 12 0.563477 0.891113 0.331543
+17 25 13 0.563477 0.891113 0.331543
+17 25 14 0.563965 0.891602 0.334717
+17 25 15 0.568359 0.895508 0.390625
+17 25 16 0.574219 0.899902 0.456055
+17 25 17 0.581055 0.904785 0.52832
+17 25 18 0.588379 0.908691 0.603516
+17 25 19 0.595215 0.909668 0.677734
+17 25 20 0.600098 0.907227 0.74707
+17 25 21 0.603027 0.900879 0.810547
+17 25 22 0.603027 0.889648 0.866211
+17 25 23 0.601562 0.875488 0.912598
+17 25 24 0.598145 0.858887 0.950684
+17 25 25 0.592285 0.837891 0.984863
+17 25 26 0.583496 0.812012 1
+17 25 27 0.571289 0.780762 1
+17 25 28 0.556641 0.746094 1
+17 25 29 0.540527 0.709961 1
+17 25 30 0.524902 0.673828 1
+17 25 31 0.509766 0.638672 1
+17 26 0 0.552246 0.903809 0.334961
+17 26 1 0.552246 0.903809 0.334961
+17 26 2 0.552246 0.903809 0.334961
+17 26 3 0.552246 0.903809 0.334961
+17 26 4 0.552246 0.903809 0.334961
+17 26 5 0.552246 0.903809 0.334961
+17 26 6 0.552246 0.903809 0.334961
+17 26 7 0.552246 0.903809 0.334961
+17 26 8 0.552246 0.903809 0.334961
+17 26 9 0.552246 0.903809 0.334961
+17 26 10 0.552246 0.903809 0.334961
+17 26 11 0.552246 0.903809 0.334961
+17 26 12 0.552734 0.903809 0.335205
+17 26 13 0.552734 0.903809 0.335205
+17 26 14 0.553223 0.904297 0.335205
+17 26 15 0.556641 0.907227 0.376221
+17 26 16 0.562012 0.912109 0.438477
+17 26 17 0.568848 0.916992 0.507324
+17 26 18 0.57666 0.921875 0.57959
+17 26 19 0.583984 0.924805 0.651855
+17 26 20 0.589844 0.924316 0.720215
+17 26 21 0.594238 0.92041 0.783691
+17 26 22 0.59668 0.912598 0.84082
+17 26 23 0.59668 0.900879 0.88916
+17 26 24 0.595215 0.886719 0.929688
+17 26 25 0.591309 0.868652 0.966797
+17 26 26 0.585449 0.846191 0.999512
+17 26 27 0.576172 0.818359 1
+17 26 28 0.563965 0.785645 1
+17 26 29 0.549805 0.75 1
+17 26 30 0.534668 0.712891 1
+17 26 31 0.519531 0.67627 1
+17 27 0 0.541504 0.914551 0.338135
+17 27 1 0.541504 0.914551 0.338135
+17 27 2 0.541504 0.914551 0.338135
+17 27 3 0.541504 0.914551 0.338135
+17 27 4 0.541504 0.914551 0.338135
+17 27 5 0.541504 0.914551 0.338135
+17 27 6 0.541504 0.914551 0.338135
+17 27 7 0.541504 0.914551 0.338135
+17 27 8 0.541504 0.914551 0.338135
+17 27 9 0.541504 0.914551 0.338135
+17 27 10 0.541504 0.914551 0.338135
+17 27 11 0.541992 0.914551 0.338135
+17 27 12 0.541992 0.914551 0.338135
+17 27 13 0.541992 0.915039 0.338135
+17 27 14 0.54248 0.915039 0.338379
+17 27 15 0.544922 0.916992 0.361572
+17 27 16 0.549805 0.921875 0.420166
+17 27 17 0.556641 0.927246 0.485596
+17 27 18 0.563965 0.932617 0.554688
+17 27 19 0.571777 0.937012 0.624023
+17 27 20 0.578613 0.938477 0.690918
+17 27 21 0.584473 0.937012 0.753906
+17 27 22 0.588379 0.931641 0.812012
+17 27 23 0.589844 0.92334 0.861816
+17 27 24 0.590332 0.912109 0.904297
+17 27 25 0.588379 0.896484 0.944336
+17 27 26 0.584473 0.876465 0.97998
+17 27 27 0.578125 0.852051 1
+17 27 28 0.568359 0.822266 1
+17 27 29 0.556152 0.788086 1
+17 27 30 0.54248 0.751465 1
+17 27 31 0.52832 0.714355 1
+17 28 0 0.530762 0.92334 0.340332
+17 28 1 0.530762 0.92334 0.340332
+17 28 2 0.530762 0.92334 0.340332
+17 28 3 0.530762 0.92334 0.340332
+17 28 4 0.530762 0.92334 0.340332
+17 28 5 0.530762 0.92334 0.340332
+17 28 6 0.530762 0.92334 0.340332
+17 28 7 0.530762 0.92334 0.340332
+17 28 8 0.530762 0.92334 0.340332
+17 28 9 0.530762 0.92334 0.340332
+17 28 10 0.530762 0.92334 0.340332
+17 28 11 0.53125 0.92334 0.340332
+17 28 12 0.53125 0.92334 0.340576
+17 28 13 0.53125 0.923828 0.340576
+17 28 14 0.531738 0.923828 0.340576
+17 28 15 0.532715 0.924316 0.346924
+17 28 16 0.537598 0.929199 0.401855
+17 28 17 0.543945 0.93457 0.463623
+17 28 18 0.55127 0.94043 0.529297
+17 28 19 0.559082 0.945801 0.595703
+17 28 20 0.566406 0.949219 0.660156
+17 28 21 0.572754 0.949707 0.722168
+17 28 22 0.578125 0.947266 0.779785
+17 28 23 0.581543 0.941406 0.830078
+17 28 24 0.583008 0.933105 0.874512
+17 28 25 0.583008 0.92041 0.916504
+17 28 26 0.581055 0.903809 0.955566
+17 28 27 0.57666 0.881836 0.990234
+17 28 28 0.569824 0.855469 1
+17 28 29 0.560059 0.82373 1
+17 28 30 0.548828 0.789062 1
+17 28 31 0.535645 0.752441 1
+17 29 0 0.52002 0.929688 0.341797
+17 29 1 0.52002 0.929688 0.341797
+17 29 2 0.52002 0.929688 0.341797
+17 29 3 0.52002 0.929688 0.341797
+17 29 4 0.52002 0.929688 0.341797
+17 29 5 0.52002 0.929688 0.341797
+17 29 6 0.52002 0.929688 0.341797
+17 29 7 0.52002 0.929688 0.341797
+17 29 8 0.52002 0.929688 0.341797
+17 29 9 0.52002 0.929688 0.341797
+17 29 10 0.52002 0.929688 0.341797
+17 29 11 0.52002 0.929688 0.341797
+17 29 12 0.52002 0.929688 0.342041
+17 29 13 0.520508 0.929688 0.342041
+17 29 14 0.520508 0.929688 0.342041
+17 29 15 0.520996 0.930176 0.342041
+17 29 16 0.524902 0.933594 0.383301
+17 29 17 0.530762 0.939453 0.441162
+17 29 18 0.538086 0.945312 0.50293
+17 29 19 0.54541 0.951172 0.565918
+17 29 20 0.553223 0.955566 0.62793
+17 29 21 0.560059 0.958008 0.687988
+17 29 22 0.566406 0.958008 0.744629
+17 29 23 0.570801 0.955078 0.79541
+17 29 24 0.57373 0.949219 0.840332
+17 29 25 0.575684 0.939941 0.884277
+17 29 26 0.575684 0.926758 0.925781
+17 29 27 0.573242 0.908203 0.963379
+17 29 28 0.568848 0.884766 0.996094
+17 29 29 0.562012 0.856934 1
+17 29 30 0.552734 0.825195 1
+17 29 31 0.541504 0.789551 1
+17 30 0 0.508301 0.932617 0.342285
+17 30 1 0.508301 0.932617 0.342285
+17 30 2 0.508301 0.932617 0.342285
+17 30 3 0.508301 0.932617 0.342285
+17 30 4 0.508301 0.932617 0.342285
+17 30 5 0.508301 0.932617 0.342285
+17 30 6 0.508301 0.932617 0.342285
+17 30 7 0.508301 0.932617 0.342285
+17 30 8 0.508301 0.932617 0.342285
+17 30 9 0.508789 0.932617 0.342285
+17 30 10 0.508789 0.932617 0.342285
+17 30 11 0.508789 0.932617 0.342285
+17 30 12 0.508789 0.932617 0.342285
+17 30 13 0.508789 0.932617 0.342285
+17 30 14 0.509277 0.933105 0.342529
+17 30 15 0.509766 0.933105 0.342529
+17 30 16 0.512207 0.935059 0.364502
+17 30 17 0.517578 0.940918 0.418457
+17 30 18 0.524414 0.946777 0.476318
+17 30 19 0.531738 0.953125 0.536133
+17 30 20 0.539062 0.958496 0.594727
+17 30 21 0.546387 0.962402 0.652344
+17 30 22 0.552734 0.964355 0.707031
+17 30 23 0.558594 0.963379 0.757324
+17 30 24 0.5625 0.960449 0.802246
+17 30 25 0.565918 0.954102 0.847168
+17 30 26 0.567383 0.943848 0.890625
+17 30 27 0.567383 0.929688 0.931152
+17 30 28 0.56543 0.910156 0.968262
+17 30 29 0.561035 0.88623 1
+17 30 30 0.554688 0.85791 1
+17 30 31 0.545898 0.825684 1
+17 31 0 0.497559 0.934082 0.342285
+17 31 1 0.497559 0.934082 0.342285
+17 31 2 0.497559 0.934082 0.342285
+17 31 3 0.497559 0.934082 0.342285
+17 31 4 0.497559 0.934082 0.342285
+17 31 5 0.497559 0.934082 0.342285
+17 31 6 0.497559 0.934082 0.342285
+17 31 7 0.497559 0.934082 0.342285
+17 31 8 0.497559 0.934082 0.342285
+17 31 9 0.497559 0.934082 0.342285
+17 31 10 0.497559 0.934082 0.342285
+17 31 11 0.497559 0.934082 0.342285
+17 31 12 0.497803 0.934082 0.342285
+17 31 13 0.497803 0.934082 0.342285
+17 31 14 0.498291 0.934082 0.342285
+17 31 15 0.498535 0.93457 0.342285
+17 31 16 0.499512 0.935059 0.346191
+17 31 17 0.504395 0.939941 0.39624
+17 31 18 0.510254 0.945801 0.449951
+17 31 19 0.51709 0.95166 0.505859
+17 31 20 0.524414 0.95752 0.561035
+17 31 21 0.531738 0.962402 0.615723
+17 31 22 0.538574 0.96582 0.668457
+17 31 23 0.544434 0.966797 0.716797
+17 31 24 0.549805 0.966309 0.761719
+17 31 25 0.554199 0.963379 0.806641
+17 31 26 0.557617 0.956543 0.851562
+17 31 27 0.55957 0.946289 0.89502
+17 31 28 0.560059 0.931641 0.935547
+17 31 29 0.558105 0.912109 0.972656
+17 31 30 0.554199 0.887695 1
+17 31 31 0.547852 0.858398 1
+18 0 0 0.609375 0.450684 0
+18 0 1 0.609375 0.450684 0
+18 0 2 0.609375 0.450684 0
+18 0 3 0.609375 0.450684 0
+18 0 4 0.609375 0.450684 0
+18 0 5 0.609375 0.450684 0
+18 0 6 0.609375 0.450684 0
+18 0 7 0.609375 0.450684 0
+18 0 8 0.609375 0.450928 0
+18 0 9 0.609375 0.450928 0
+18 0 10 0.609375 0.451416 0
+18 0 11 0.610352 0.452393 0
+18 0 12 0.61377 0.455078 0.0422363
+18 0 13 0.622559 0.460693 0.221802
+18 0 14 0.635742 0.469971 0.326172
+18 0 15 0.65332 0.484131 0.430176
+18 0 16 0.679688 0.512695 0.543457
+18 0 17 0.69873 0.536621 0.646973
+18 0 18 0.696289 0.535645 0.72998
+18 0 19 0.687012 0.528809 0.800781
+18 0 20 0.673828 0.519043 0.859863
+18 0 21 0.649414 0.500488 0.894531
+18 0 22 0.618164 0.476562 0.90918
+18 0 23 0.589844 0.455078 0.916016
+18 0 24 0.56543 0.436523 0.919922
+18 0 25 0.542969 0.419434 0.92334
+18 0 26 0.522949 0.404297 0.926758
+18 0 27 0.505371 0.390869 0.931152
+18 0 28 0.490479 0.379639 0.937012
+18 0 29 0.477783 0.370117 0.944824
+18 0 30 0.467529 0.362061 0.953125
+18 0 31 0.45874 0.355713 0.962891
+18 1 0 0.609375 0.450684 0
+18 1 1 0.609375 0.450684 0
+18 1 2 0.609375 0.450684 0
+18 1 3 0.609375 0.450684 0
+18 1 4 0.609375 0.450684 0
+18 1 5 0.609375 0.450684 0
+18 1 6 0.609375 0.450684 0
+18 1 7 0.609375 0.450684 0
+18 1 8 0.609375 0.450928 0
+18 1 9 0.609375 0.450928 0
+18 1 10 0.609375 0.451416 0
+18 1 11 0.610352 0.452393 0
+18 1 12 0.61377 0.455078 0.0422668
+18 1 13 0.622559 0.460693 0.221802
+18 1 14 0.635742 0.469971 0.326172
+18 1 15 0.65332 0.484131 0.430176
+18 1 16 0.679688 0.512695 0.543457
+18 1 17 0.69873 0.536621 0.646973
+18 1 18 0.696289 0.535645 0.72998
+18 1 19 0.687012 0.528809 0.800781
+18 1 20 0.673828 0.519043 0.859863
+18 1 21 0.649414 0.500488 0.894531
+18 1 22 0.618164 0.476562 0.90918
+18 1 23 0.589844 0.455078 0.916016
+18 1 24 0.56543 0.436523 0.919922
+18 1 25 0.542969 0.419434 0.92334
+18 1 26 0.522949 0.404297 0.926758
+18 1 27 0.505371 0.390869 0.931152
+18 1 28 0.490479 0.379639 0.937012
+18 1 29 0.477783 0.370117 0.944824
+18 1 30 0.467529 0.362305 0.953125
+18 1 31 0.45874 0.355713 0.962891
+18 2 0 0.609375 0.450684 0
+18 2 1 0.609375 0.450684 0
+18 2 2 0.609375 0.450684 0
+18 2 3 0.609375 0.450684 0
+18 2 4 0.609375 0.450684 0
+18 2 5 0.609375 0.450684 0
+18 2 6 0.609375 0.450684 0
+18 2 7 0.609375 0.450684 0
+18 2 8 0.609375 0.450928 0
+18 2 9 0.609375 0.451172 0
+18 2 10 0.609375 0.451416 0
+18 2 11 0.610352 0.452393 0
+18 2 12 0.61377 0.455078 0.0423279
+18 2 13 0.622559 0.460693 0.221802
+18 2 14 0.635742 0.469971 0.326172
+18 2 15 0.65332 0.484131 0.430176
+18 2 16 0.679688 0.512695 0.543457
+18 2 17 0.69873 0.536621 0.646973
+18 2 18 0.696289 0.535645 0.72998
+18 2 19 0.687012 0.528809 0.800781
+18 2 20 0.673828 0.519043 0.859863
+18 2 21 0.649414 0.500488 0.894531
+18 2 22 0.618164 0.476562 0.90918
+18 2 23 0.589844 0.455078 0.916016
+18 2 24 0.56543 0.436523 0.919922
+18 2 25 0.542969 0.419434 0.92334
+18 2 26 0.522949 0.404297 0.926758
+18 2 27 0.505371 0.390869 0.931152
+18 2 28 0.490479 0.379639 0.937012
+18 2 29 0.477783 0.370117 0.944824
+18 2 30 0.467529 0.362305 0.953125
+18 2 31 0.45874 0.355713 0.962891
+18 3 0 0.609375 0.450684 0
+18 3 1 0.609375 0.450684 0
+18 3 2 0.609375 0.450684 0
+18 3 3 0.609375 0.450684 0
+18 3 4 0.609375 0.450684 0
+18 3 5 0.609375 0.450684 0
+18 3 6 0.609375 0.450684 0
+18 3 7 0.609375 0.450684 0
+18 3 8 0.609375 0.450928 0
+18 3 9 0.609375 0.451172 0
+18 3 10 0.609863 0.451416 0
+18 3 11 0.610352 0.452393 0
+18 3 12 0.61377 0.455078 0.04245
+18 3 13 0.622559 0.460693 0.221802
+18 3 14 0.635742 0.470215 0.326172
+18 3 15 0.65332 0.484131 0.430176
+18 3 16 0.679688 0.512695 0.543457
+18 3 17 0.69873 0.536621 0.646973
+18 3 18 0.696289 0.535645 0.72998
+18 3 19 0.687012 0.528809 0.800781
+18 3 20 0.673828 0.519043 0.859863
+18 3 21 0.649414 0.500488 0.894531
+18 3 22 0.618164 0.476562 0.90918
+18 3 23 0.589844 0.455078 0.916016
+18 3 24 0.56543 0.436523 0.919922
+18 3 25 0.542969 0.419434 0.92334
+18 3 26 0.522949 0.404297 0.926758
+18 3 27 0.505371 0.390869 0.931152
+18 3 28 0.490479 0.379639 0.937012
+18 3 29 0.477783 0.370117 0.944824
+18 3 30 0.467529 0.362305 0.953125
+18 3 31 0.45874 0.355713 0.962891
+18 4 0 0.609375 0.450684 0
+18 4 1 0.609375 0.450684 0
+18 4 2 0.609375 0.450684 0
+18 4 3 0.609375 0.450684 0
+18 4 4 0.609375 0.450684 0
+18 4 5 0.609375 0.450684 0
+18 4 6 0.609375 0.450928 0
+18 4 7 0.609375 0.450928 0
+18 4 8 0.609375 0.450928 0
+18 4 9 0.609375 0.451172 0
+18 4 10 0.609863 0.45166 0
+18 4 11 0.610352 0.452393 0
+18 4 12 0.61377 0.455078 0.0426941
+18 4 13 0.622559 0.460693 0.221802
+18 4 14 0.635742 0.470215 0.326416
+18 4 15 0.65332 0.484131 0.430176
+18 4 16 0.679688 0.512695 0.543457
+18 4 17 0.69873 0.536621 0.646973
+18 4 18 0.696289 0.535645 0.72998
+18 4 19 0.687012 0.528809 0.800781
+18 4 20 0.673828 0.519043 0.859863
+18 4 21 0.649414 0.500488 0.894531
+18 4 22 0.618164 0.476562 0.90918
+18 4 23 0.589844 0.455078 0.916016
+18 4 24 0.56543 0.436523 0.919922
+18 4 25 0.542969 0.419434 0.92334
+18 4 26 0.522949 0.404297 0.926758
+18 4 27 0.505371 0.390869 0.931152
+18 4 28 0.490479 0.379639 0.937012
+18 4 29 0.477783 0.370117 0.944824
+18 4 30 0.467529 0.362305 0.953125
+18 4 31 0.45874 0.355713 0.962891
+18 5 0 0.609375 0.450928 0
+18 5 1 0.609375 0.450928 0
+18 5 2 0.609375 0.450928 0
+18 5 3 0.609375 0.450928 0
+18 5 4 0.609375 0.450928 0
+18 5 5 0.609375 0.450928 0
+18 5 6 0.609375 0.450928 0
+18 5 7 0.609375 0.451172 0
+18 5 8 0.609375 0.451172 0
+18 5 9 0.609375 0.451416 0
+18 5 10 0.609863 0.451904 0
+18 5 11 0.610352 0.452637 0
+18 5 12 0.61377 0.455322 0.0431213
+18 5 13 0.622559 0.460938 0.221802
+18 5 14 0.635742 0.470215 0.326416
+18 5 15 0.65332 0.484375 0.430176
+18 5 16 0.679688 0.512695 0.543457
+18 5 17 0.69873 0.536621 0.646973
+18 5 18 0.696289 0.535645 0.72998
+18 5 19 0.687012 0.528809 0.800781
+18 5 20 0.673828 0.519531 0.859863
+18 5 21 0.649414 0.500488 0.894531
+18 5 22 0.618164 0.476807 0.90918
+18 5 23 0.589844 0.455078 0.916504
+18 5 24 0.56543 0.436523 0.92041
+18 5 25 0.542969 0.419678 0.92334
+18 5 26 0.522949 0.404297 0.926758
+18 5 27 0.505371 0.390869 0.931152
+18 5 28 0.490479 0.379639 0.937012
+18 5 29 0.477783 0.370117 0.944824
+18 5 30 0.467529 0.362305 0.953125
+18 5 31 0.45874 0.355713 0.962891
+18 6 0 0.609375 0.451172 0
+18 6 1 0.609375 0.451172 0
+18 6 2 0.609375 0.451172 0
+18 6 3 0.609375 0.451172 0
+18 6 4 0.609375 0.451172 0
+18 6 5 0.609375 0.451416 0
+18 6 6 0.609375 0.451416 0
+18 6 7 0.609375 0.451416 0
+18 6 8 0.609375 0.451416 0
+18 6 9 0.609863 0.45166 0
+18 6 10 0.609863 0.452148 0
+18 6 11 0.61084 0.453125 0
+18 6 12 0.61377 0.455566 0.0439148
+18 6 13 0.622559 0.461182 0.221802
+18 6 14 0.63623 0.470703 0.326416
+18 6 15 0.65332 0.484619 0.430176
+18 6 16 0.679688 0.512695 0.543457
+18 6 17 0.699219 0.536621 0.646973
+18 6 18 0.696289 0.536133 0.72998
+18 6 19 0.687012 0.529297 0.800781
+18 6 20 0.674316 0.519531 0.859863
+18 6 21 0.649414 0.500488 0.894531
+18 6 22 0.618164 0.476807 0.90918
+18 6 23 0.589844 0.455322 0.916504
+18 6 24 0.56543 0.436768 0.92041
+18 6 25 0.542969 0.419678 0.92334
+18 6 26 0.522949 0.404541 0.926758
+18 6 27 0.505371 0.391113 0.931152
+18 6 28 0.490479 0.379639 0.937012
+18 6 29 0.478027 0.370117 0.944824
+18 6 30 0.467529 0.362305 0.953125
+18 6 31 0.45874 0.355713 0.962891
+18 7 0 0.609863 0.451904 0
+18 7 1 0.609863 0.451904 0
+18 7 2 0.609863 0.451904 0
+18 7 3 0.609863 0.451904 0
+18 7 4 0.609863 0.451904 0
+18 7 5 0.609863 0.451904 0
+18 7 6 0.609863 0.451904 0
+18 7 7 0.609863 0.452148 0
+18 7 8 0.609863 0.452148 0
+18 7 9 0.609863 0.452393 0
+18 7 10 0.610352 0.452881 0
+18 7 11 0.61084 0.453613 0
+18 7 12 0.614258 0.456299 0.0454712
+18 7 13 0.622559 0.46167 0.221924
+18 7 14 0.63623 0.471191 0.326416
+18 7 15 0.653809 0.485107 0.430176
+18 7 16 0.679688 0.513184 0.543457
+18 7 17 0.699219 0.537109 0.646973
+18 7 18 0.696289 0.536621 0.72998
+18 7 19 0.687012 0.529297 0.800781
+18 7 20 0.674316 0.52002 0.859863
+18 7 21 0.649414 0.500977 0.894531
+18 7 22 0.618164 0.477051 0.90918
+18 7 23 0.589844 0.455566 0.916504
+18 7 24 0.56543 0.437012 0.92041
+18 7 25 0.542969 0.419922 0.92334
+18 7 26 0.522949 0.404541 0.926758
+18 7 27 0.505371 0.391113 0.931152
+18 7 28 0.490479 0.379883 0.9375
+18 7 29 0.478027 0.370361 0.944824
+18 7 30 0.467529 0.362549 0.953125
+18 7 31 0.45874 0.355957 0.962891
+18 8 0 0.610352 0.453125 0
+18 8 1 0.610352 0.453125 0
+18 8 2 0.610352 0.453125 0
+18 8 3 0.610352 0.453125 0
+18 8 4 0.610352 0.453125 0
+18 8 5 0.610352 0.453369 0
+18 8 6 0.610352 0.453369 0
+18 8 7 0.610352 0.453369 0
+18 8 8 0.610352 0.453369 0
+18 8 9 0.610352 0.453613 0
+18 8 10 0.61084 0.454102 0
+18 8 11 0.611328 0.454834 0
+18 8 12 0.614746 0.45752 0.0483704
+18 8 13 0.623047 0.462891 0.222046
+18 8 14 0.636719 0.472412 0.32666
+18 8 15 0.653809 0.48584 0.430176
+18 8 16 0.679688 0.513672 0.543457
+18 8 17 0.699219 0.538086 0.646973
+18 8 18 0.696289 0.537109 0.72998
+18 8 19 0.687012 0.530273 0.80127
+18 8 20 0.674316 0.520508 0.859863
+18 8 21 0.649414 0.501465 0.894531
+18 8 22 0.618164 0.477783 0.90918
+18 8 23 0.589844 0.456055 0.916504
+18 8 24 0.56543 0.4375 0.92041
+18 8 25 0.543457 0.42041 0.92334
+18 8 26 0.522949 0.405029 0.926758
+18 8 27 0.505371 0.391602 0.931152
+18 8 28 0.490479 0.380127 0.9375
+18 8 29 0.478027 0.370605 0.944824
+18 8 30 0.467529 0.362793 0.953613
+18 8 31 0.45874 0.356201 0.962891
+18 9 0 0.611328 0.455811 0
+18 9 1 0.611328 0.455811 0
+18 9 2 0.611328 0.455811 0
+18 9 3 0.611328 0.455811 0
+18 9 4 0.611328 0.455811 0
+18 9 5 0.611328 0.455811 0
+18 9 6 0.611328 0.455811 0
+18 9 7 0.611328 0.455811 0
+18 9 8 0.611328 0.456055 0
+18 9 9 0.611816 0.456055 0
+18 9 10 0.611816 0.456543 0
+18 9 11 0.612305 0.457275 0
+18 9 12 0.615723 0.459961 0.0535583
+18 9 13 0.624023 0.465088 0.22229
+18 9 14 0.637207 0.474365 0.326904
+18 9 15 0.653809 0.487549 0.429932
+18 9 16 0.679688 0.515137 0.543457
+18 9 17 0.699219 0.539062 0.646973
+18 9 18 0.696289 0.538574 0.72998
+18 9 19 0.687012 0.53125 0.80127
+18 9 20 0.674316 0.521484 0.859863
+18 9 21 0.649414 0.50293 0.89502
+18 9 22 0.618164 0.47876 0.909668
+18 9 23 0.589844 0.457031 0.916504
+18 9 24 0.56543 0.438232 0.92041
+18 9 25 0.543457 0.421143 0.923828
+18 9 26 0.523438 0.405762 0.927246
+18 9 27 0.505859 0.392334 0.931641
+18 9 28 0.490723 0.380859 0.9375
+18 9 29 0.478027 0.371094 0.944824
+18 9 30 0.467529 0.363281 0.953613
+18 9 31 0.458984 0.356689 0.962891
+18 10 0 0.613281 0.460205 0
+18 10 1 0.613281 0.460205 0
+18 10 2 0.613281 0.460205 0
+18 10 3 0.613281 0.460205 0
+18 10 4 0.613281 0.460205 0
+18 10 5 0.613281 0.460205 0
+18 10 6 0.613281 0.460205 0
+18 10 7 0.613281 0.460205 0
+18 10 8 0.613281 0.460449 0
+18 10 9 0.61377 0.460693 0
+18 10 10 0.61377 0.460938 0
+18 10 11 0.614258 0.461914 0
+18 10 12 0.617188 0.464111 0.0621643
+18 10 13 0.625 0.46875 0.2229
+18 10 14 0.638672 0.478271 0.327637
+18 10 15 0.654297 0.490234 0.429688
+18 10 16 0.679688 0.517578 0.542969
+18 10 17 0.699219 0.541504 0.646973
+18 10 18 0.696777 0.541016 0.72998
+18 10 19 0.6875 0.533691 0.80127
+18 10 20 0.674805 0.523926 0.860352
+18 10 21 0.649902 0.504883 0.89502
+18 10 22 0.618652 0.480713 0.909668
+18 10 23 0.590332 0.45874 0.916504
+18 10 24 0.565918 0.439941 0.92041
+18 10 25 0.543457 0.422607 0.923828
+18 10 26 0.523438 0.406982 0.927246
+18 10 27 0.505859 0.393555 0.931641
+18 10 28 0.490967 0.381836 0.937988
+18 10 29 0.478271 0.372314 0.945312
+18 10 30 0.467773 0.364258 0.953613
+18 10 31 0.459229 0.357422 0.963379
+18 11 0 0.616699 0.468018 0
+18 11 1 0.616699 0.468018 0
+18 11 2 0.616699 0.468018 0
+18 11 3 0.616699 0.468018 0
+18 11 4 0.616699 0.468018 0
+18 11 5 0.616699 0.468018 0
+18 11 6 0.616699 0.468018 0
+18 11 7 0.616699 0.468018 0
+18 11 8 0.616699 0.468262 0
+18 11 9 0.617188 0.468506 0
+18 11 10 0.617188 0.46875 0
+18 11 11 0.617676 0.469482 0
+18 11 12 0.620117 0.471436 0.0756226
+18 11 13 0.627441 0.475586 0.224243
+18 11 14 0.640137 0.484375 0.327637
+18 11 15 0.655273 0.495605 0.429443
+18 11 16 0.679688 0.521484 0.54248
+18 11 17 0.699707 0.545898 0.646973
+18 11 18 0.697266 0.544922 0.72998
+18 11 19 0.687988 0.537598 0.80127
+18 11 20 0.675293 0.527832 0.860352
+18 11 21 0.650391 0.508301 0.895508
+18 11 22 0.619141 0.483887 0.910156
+18 11 23 0.590332 0.46167 0.916992
+18 11 24 0.566406 0.442627 0.920898
+18 11 25 0.543945 0.425049 0.924316
+18 11 26 0.523926 0.409424 0.927734
+18 11 27 0.506348 0.395508 0.932129
+18 11 28 0.491211 0.383789 0.937988
+18 11 29 0.47876 0.374023 0.945801
+18 11 30 0.468262 0.365723 0.954102
+18 11 31 0.459473 0.358887 0.963867
+18 12 0 0.622559 0.481201 0
+18 12 1 0.622559 0.481201 0
+18 12 2 0.622559 0.481201 0
+18 12 3 0.622559 0.481201 0
+18 12 4 0.622559 0.481201 0
+18 12 5 0.622559 0.481201 0
+18 12 6 0.622559 0.481201 0
+18 12 7 0.622559 0.481201 0
+18 12 8 0.622559 0.481201 0
+18 12 9 0.623047 0.481445 0
+18 12 10 0.623047 0.481934 0
+18 12 11 0.623535 0.482666 0
+18 12 12 0.625488 0.484131 0.0959473
+18 12 13 0.631836 0.487305 0.227539
+18 12 14 0.642578 0.494141 0.327637
+18 12 15 0.65625 0.504395 0.428955
+18 12 16 0.679688 0.527832 0.541504
+18 12 17 0.700195 0.552734 0.646973
+18 12 18 0.697754 0.552246 0.730469
+18 12 19 0.688477 0.544434 0.801758
+18 12 20 0.675781 0.53418 0.86084
+18 12 21 0.651367 0.514648 0.895996
+18 12 22 0.619629 0.489502 0.910645
+18 12 23 0.591309 0.466553 0.91748
+18 12 24 0.566895 0.447266 0.921387
+18 12 25 0.544434 0.429443 0.924805
+18 12 26 0.524414 0.41333 0.928223
+18 12 27 0.506836 0.39917 0.933105
+18 12 28 0.491943 0.387207 0.938965
+18 12 29 0.479248 0.376953 0.946289
+18 12 30 0.46875 0.368408 0.955078
+18 12 31 0.459961 0.361328 0.964355
+18 13 0 0.631836 0.501953 0
+18 13 1 0.631836 0.501953 0
+18 13 2 0.631836 0.501953 0
+18 13 3 0.631836 0.501953 0
+18 13 4 0.631836 0.501953 0
+18 13 5 0.632324 0.501953 0
+18 13 6 0.632324 0.501953 0
+18 13 7 0.632324 0.501953 0
+18 13 8 0.632324 0.502441 0
+18 13 9 0.632324 0.502441 0
+18 13 10 0.632324 0.50293 0
+18 13 11 0.632812 0.503418 0
+18 13 12 0.634277 0.504395 0.125244
+18 13 13 0.63916 0.506348 0.235229
+18 13 14 0.646973 0.510742 0.329346
+18 13 15 0.65918 0.519043 0.429199
+18 13 16 0.679199 0.538086 0.539551
+18 13 17 0.700684 0.563965 0.646973
+18 13 18 0.69873 0.563477 0.730469
+18 13 19 0.689453 0.555176 0.801758
+18 13 20 0.676758 0.544434 0.861328
+18 13 21 0.652832 0.524414 0.896973
+18 13 22 0.621094 0.498291 0.911133
+18 13 23 0.592285 0.474854 0.917969
+18 13 24 0.567871 0.454834 0.922363
+18 13 25 0.545898 0.436279 0.925781
+18 13 26 0.525879 0.419678 0.929688
+18 13 27 0.507812 0.405029 0.934082
+18 13 28 0.49292 0.392578 0.94043
+18 13 29 0.480469 0.381836 0.947754
+18 13 30 0.469727 0.373047 0.956543
+18 13 31 0.460938 0.365479 0.96582
+18 14 0 0.646484 0.533691 0
+18 14 1 0.646484 0.533691 0
+18 14 2 0.646484 0.533691 0
+18 14 3 0.646484 0.533691 0
+18 14 4 0.646484 0.533691 0
+18 14 5 0.646484 0.533691 0
+18 14 6 0.646484 0.533691 0
+18 14 7 0.646484 0.533691 0
+18 14 8 0.646484 0.533691 0
+18 14 9 0.646484 0.533691 0
+18 14 10 0.646973 0.53418 0
+18 14 11 0.646973 0.534668 0
+18 14 12 0.648438 0.535156 0.164917
+18 14 13 0.650879 0.536133 0.251709
+18 14 14 0.655273 0.537598 0.336426
+18 14 15 0.664062 0.54248 0.430664
+18 14 16 0.678223 0.554199 0.536133
+18 14 17 0.700684 0.580078 0.645996
+18 14 18 0.700195 0.580078 0.730469
+18 14 19 0.691406 0.571777 0.802246
+18 14 20 0.678711 0.560059 0.861816
+18 14 21 0.654785 0.539062 0.897949
+18 14 22 0.622559 0.511719 0.912109
+18 14 23 0.594238 0.487305 0.919434
+18 14 24 0.569824 0.466309 0.92334
+18 14 25 0.547363 0.447021 0.927246
+18 14 26 0.527344 0.429688 0.931152
+18 14 27 0.509766 0.414307 0.936035
+18 14 28 0.494873 0.401123 0.942383
+18 14 29 0.481934 0.389648 0.950195
+18 14 30 0.471191 0.379883 0.958496
+18 14 31 0.462402 0.371582 0.967773
+18 15 0 0.666992 0.577148 0.160034
+18 15 1 0.666992 0.577148 0.160034
+18 15 2 0.666992 0.577148 0.160034
+18 15 3 0.666992 0.577148 0.160034
+18 15 4 0.666992 0.577148 0.160034
+18 15 5 0.666992 0.577148 0.160034
+18 15 6 0.666992 0.577148 0.160034
+18 15 7 0.666992 0.577148 0.160156
+18 15 8 0.666992 0.577637 0.160278
+18 15 9 0.666992 0.577637 0.160522
+18 15 10 0.66748 0.577637 0.161011
+18 15 11 0.66748 0.578613 0.161743
+18 15 12 0.668457 0.578613 0.213257
+18 15 13 0.668945 0.578125 0.280762
+18 15 14 0.669922 0.577637 0.35376
+18 15 15 0.671387 0.576172 0.435303
+18 15 16 0.678223 0.579102 0.531738
+18 15 17 0.700195 0.602051 0.643066
+18 15 18 0.702148 0.604492 0.730469
+18 15 19 0.693359 0.595215 0.802734
+18 15 20 0.681152 0.583008 0.862305
+18 15 21 0.657715 0.561035 0.899414
+18 15 22 0.625488 0.531738 0.913574
+18 15 23 0.59668 0.505371 0.920898
+18 15 24 0.572754 0.483398 0.925781
+18 15 25 0.550293 0.462891 0.929688
+18 15 26 0.530273 0.44458 0.93457
+18 15 27 0.512695 0.427979 0.939453
+18 15 28 0.497559 0.413574 0.945801
+18 15 29 0.484619 0.401123 0.953613
+18 15 30 0.473633 0.390381 0.961914
+18 15 31 0.4646 0.381104 0.971191
+18 16 0 0.691406 0.632324 0.233398
+18 16 1 0.691406 0.632324 0.233398
+18 16 2 0.691406 0.632324 0.233398
+18 16 3 0.691406 0.632324 0.233398
+18 16 4 0.691406 0.632324 0.233398
+18 16 5 0.691406 0.632324 0.233398
+18 16 6 0.691406 0.632324 0.233398
+18 16 7 0.691406 0.632324 0.233398
+18 16 8 0.691406 0.632324 0.233521
+18 16 9 0.691406 0.632324 0.233643
+18 16 10 0.691895 0.632812 0.233765
+18 16 11 0.691895 0.633301 0.234131
+18 16 12 0.692383 0.633301 0.261719
+18 16 13 0.692383 0.632812 0.317871
+18 16 14 0.691895 0.631348 0.382812
+18 16 15 0.688965 0.627441 0.45459
+18 16 16 0.684082 0.619629 0.533691
+18 16 17 0.695312 0.628418 0.635254
+18 16 18 0.704102 0.63623 0.729004
+18 16 19 0.695801 0.626465 0.801758
+18 16 20 0.684082 0.613281 0.862305
+18 16 21 0.661133 0.590332 0.900879
+18 16 22 0.628906 0.558594 0.915527
+18 16 23 0.600586 0.530762 0.923828
+18 16 24 0.57666 0.507324 0.929199
+18 16 25 0.554688 0.485596 0.934082
+18 16 26 0.534668 0.465576 0.939453
+18 16 27 0.51709 0.44751 0.944824
+18 16 28 0.501953 0.431641 0.951172
+18 16 29 0.48877 0.417725 0.958984
+18 16 30 0.477539 0.405518 0.966797
+18 16 31 0.467773 0.394775 0.975586
+18 17 0 0.711914 0.690918 0.278564
+18 17 1 0.711914 0.690918 0.278564
+18 17 2 0.711914 0.690918 0.278564
+18 17 3 0.711914 0.690918 0.278564
+18 17 4 0.711914 0.690918 0.278564
+18 17 5 0.711914 0.690918 0.278564
+18 17 6 0.711914 0.690918 0.278564
+18 17 7 0.711914 0.691406 0.278564
+18 17 8 0.711914 0.691406 0.278564
+18 17 9 0.711914 0.691406 0.278564
+18 17 10 0.711914 0.691406 0.278809
+18 17 11 0.712402 0.691895 0.278809
+18 17 12 0.712402 0.692383 0.29248
+18 17 13 0.713379 0.692383 0.344971
+18 17 14 0.713379 0.691895 0.407959
+18 17 15 0.711914 0.689453 0.479492
+18 17 16 0.706543 0.682129 0.555664
+18 17 17 0.693359 0.666504 0.628906
+18 17 18 0.705078 0.675293 0.726074
+18 17 19 0.697754 0.665039 0.799805
+18 17 20 0.687012 0.650879 0.861328
+18 17 21 0.665039 0.626465 0.901367
+18 17 22 0.634277 0.593262 0.917969
+18 17 23 0.606445 0.563965 0.927734
+18 17 24 0.583008 0.539062 0.935059
+18 17 25 0.561523 0.515625 0.940918
+18 17 26 0.541504 0.493652 0.946777
+18 17 27 0.523926 0.473633 0.952637
+18 17 28 0.507812 0.455811 0.958984
+18 17 29 0.493652 0.439209 0.965332
+18 17 30 0.481201 0.424316 0.971191
+18 17 31 0.470459 0.411133 0.978027
+18 18 0 0.717773 0.742676 0.29834
+18 18 1 0.717773 0.742676 0.29834
+18 18 2 0.717773 0.742676 0.29834
+18 18 3 0.717773 0.742676 0.29834
+18 18 4 0.717773 0.742676 0.29834
+18 18 5 0.717773 0.742676 0.29834
+18 18 6 0.717773 0.743164 0.29834
+18 18 7 0.717773 0.743164 0.29834
+18 18 8 0.717773 0.743164 0.29834
+18 18 9 0.717773 0.743164 0.29834
+18 18 10 0.717773 0.743164 0.29834
+18 18 11 0.717773 0.743164 0.298584
+18 18 12 0.718262 0.743652 0.298584
+18 18 13 0.719238 0.744141 0.350098
+18 18 14 0.720215 0.744629 0.412842
+18 18 15 0.721191 0.743652 0.485107
+18 18 16 0.719727 0.739746 0.564941
+18 18 17 0.714844 0.731934 0.645508
+18 18 18 0.70459 0.717773 0.720215
+18 18 19 0.69873 0.70752 0.794922
+18 18 20 0.688965 0.693359 0.85791
+18 18 21 0.668945 0.668457 0.899902
+18 18 22 0.640137 0.634766 0.92041
+18 18 23 0.61377 0.604004 0.933105
+18 18 24 0.59082 0.57666 0.941406
+18 18 25 0.568848 0.550781 0.947754
+18 18 26 0.54834 0.526367 0.953613
+18 18 27 0.529785 0.503418 0.958496
+18 18 28 0.513184 0.482666 0.963867
+18 18 29 0.498291 0.463867 0.969727
+18 18 30 0.485352 0.446777 0.975586
+18 18 31 0.474365 0.431641 0.982422
+18 19 0 0.706543 0.779297 0.307861
+18 19 1 0.706543 0.779297 0.307861
+18 19 2 0.706543 0.779297 0.307861
+18 19 3 0.706543 0.779297 0.307861
+18 19 4 0.706543 0.779297 0.307861
+18 19 5 0.706543 0.779297 0.307861
+18 19 6 0.706543 0.779297 0.307861
+18 19 7 0.706543 0.779297 0.307861
+18 19 8 0.706543 0.779297 0.307861
+18 19 9 0.706543 0.779297 0.307861
+18 19 10 0.706543 0.779297 0.307861
+18 19 11 0.706543 0.779297 0.308105
+18 19 12 0.706543 0.779785 0.308105
+18 19 13 0.70752 0.780273 0.343262
+18 19 14 0.708984 0.780762 0.404053
+18 19 15 0.709961 0.780273 0.474365
+18 19 16 0.709473 0.776855 0.552246
+18 19 17 0.706055 0.77002 0.632324
+18 19 18 0.70166 0.760742 0.710938
+18 19 19 0.697754 0.750977 0.786621
+18 19 20 0.689941 0.737305 0.851074
+18 19 21 0.672363 0.712891 0.896973
+18 19 22 0.647461 0.680176 0.922852
+18 19 23 0.622559 0.648438 0.938477
+18 19 24 0.600098 0.619629 0.94873
+18 19 25 0.578125 0.591309 0.956055
+18 19 26 0.557129 0.563965 0.961914
+18 19 27 0.537598 0.538574 0.966797
+18 19 28 0.520508 0.514648 0.97168
+18 19 29 0.504883 0.493164 0.977051
+18 19 30 0.491455 0.473633 0.982422
+18 19 31 0.479492 0.456055 0.988281
+18 20 0 0.689453 0.807617 0.314697
+18 20 1 0.689453 0.807617 0.314697
+18 20 2 0.689453 0.807617 0.314697
+18 20 3 0.689453 0.807617 0.314697
+18 20 4 0.689453 0.807617 0.314697
+18 20 5 0.689453 0.807617 0.314697
+18 20 6 0.689453 0.807617 0.314697
+18 20 7 0.689453 0.807617 0.314697
+18 20 8 0.689453 0.807617 0.314697
+18 20 9 0.689941 0.807617 0.314941
+18 20 10 0.689941 0.807617 0.314941
+18 20 11 0.689941 0.807617 0.314941
+18 20 12 0.689941 0.808105 0.314941
+18 20 13 0.690918 0.808594 0.334229
+18 20 14 0.692383 0.809082 0.39209
+18 20 15 0.694336 0.80957 0.460205
+18 20 16 0.696289 0.808594 0.536621
+18 20 17 0.696289 0.805176 0.617188
+18 20 18 0.696289 0.799805 0.69873
+18 20 19 0.694336 0.791504 0.774902
+18 20 20 0.688477 0.778809 0.841309
+18 20 21 0.676758 0.758789 0.894043
+18 20 22 0.656738 0.72998 0.928223
+18 20 23 0.634277 0.698242 0.947754
+18 20 24 0.612305 0.66748 0.959961
+18 20 25 0.590332 0.637207 0.968262
+18 20 26 0.568848 0.606934 0.974609
+18 20 27 0.548828 0.578125 0.979004
+18 20 28 0.530273 0.55127 0.983398
+18 20 29 0.513672 0.526367 0.987305
+18 20 30 0.499023 0.503906 0.991699
+18 20 31 0.486328 0.483154 0.996582
+18 21 0 0.675293 0.835449 0.322266
+18 21 1 0.675293 0.835449 0.322266
+18 21 2 0.675293 0.835449 0.322266
+18 21 3 0.675293 0.835449 0.322266
+18 21 4 0.675293 0.835449 0.322266
+18 21 5 0.675293 0.835449 0.322266
+18 21 6 0.675293 0.835449 0.322266
+18 21 7 0.675293 0.835449 0.322266
+18 21 8 0.675293 0.835449 0.322266
+18 21 9 0.675293 0.835449 0.322266
+18 21 10 0.675293 0.835449 0.322266
+18 21 11 0.675293 0.835449 0.322266
+18 21 12 0.675781 0.835938 0.322266
+18 21 13 0.675781 0.836426 0.325928
+18 21 14 0.677734 0.836914 0.381104
+18 21 15 0.680176 0.837891 0.446777
+18 21 16 0.683105 0.838379 0.521484
+18 21 17 0.686035 0.837891 0.601562
+18 21 18 0.687988 0.834961 0.682617
+18 21 19 0.687988 0.828613 0.759277
+18 21 20 0.68457 0.817383 0.827148
+18 21 21 0.677246 0.80127 0.885254
+18 21 22 0.664551 0.778809 0.929199
+18 21 23 0.646484 0.749512 0.956055
+18 21 24 0.626465 0.719238 0.972168
+18 21 25 0.60498 0.687012 0.98291
+18 21 26 0.583008 0.654297 0.989746
+18 21 27 0.562012 0.62207 0.994141
+18 21 28 0.541992 0.591797 0.997559
+18 21 29 0.524414 0.563477 1
+18 21 30 0.508301 0.537598 1
+18 21 31 0.494385 0.513672 1
+18 22 0 0.660645 0.859375 0.328369
+18 22 1 0.660645 0.859375 0.328369
+18 22 2 0.660645 0.859375 0.328369
+18 22 3 0.660645 0.859375 0.328369
+18 22 4 0.660645 0.859375 0.328369
+18 22 5 0.660645 0.859375 0.328369
+18 22 6 0.660645 0.859375 0.328369
+18 22 7 0.660645 0.859375 0.328369
+18 22 8 0.660645 0.859375 0.328369
+18 22 9 0.660645 0.859375 0.328613
+18 22 10 0.661133 0.859375 0.328613
+18 22 11 0.661133 0.859863 0.328613
+18 22 12 0.661133 0.859863 0.328613
+18 22 13 0.661621 0.859863 0.328613
+18 22 14 0.663086 0.861328 0.370361
+18 22 15 0.666504 0.862793 0.43335
+18 22 16 0.669922 0.864746 0.505859
+18 22 17 0.674316 0.865234 0.584473
+18 22 18 0.677734 0.864746 0.664551
+18 22 19 0.679688 0.860352 0.741211
+18 22 20 0.678223 0.851074 0.810059
+18 22 21 0.67334 0.837402 0.870117
+18 22 22 0.666016 0.819336 0.92041
+18 22 23 0.653809 0.795898 0.956543
+18 22 24 0.637695 0.768555 0.979492
+18 22 25 0.618164 0.736816 0.994629
+18 22 26 0.597168 0.702637 1
+18 22 27 0.576172 0.667969 1
+18 22 28 0.555664 0.634766 1
+18 22 29 0.536621 0.603027 1
+18 22 30 0.519043 0.573242 1
+18 22 31 0.503906 0.546387 1
+18 23 0 0.646484 0.878418 0.333252
+18 23 1 0.646484 0.878418 0.333252
+18 23 2 0.646484 0.878418 0.333252
+18 23 3 0.646484 0.878418 0.333252
+18 23 4 0.646484 0.878418 0.333252
+18 23 5 0.646484 0.878418 0.333252
+18 23 6 0.646484 0.878418 0.333252
+18 23 7 0.646484 0.878418 0.333252
+18 23 8 0.646484 0.878418 0.333252
+18 23 9 0.646484 0.878418 0.333252
+18 23 10 0.646484 0.878418 0.333252
+18 23 11 0.646484 0.878418 0.333496
+18 23 12 0.646973 0.878418 0.333496
+18 23 13 0.646973 0.878906 0.333496
+18 23 14 0.648438 0.879883 0.359619
+18 23 15 0.651855 0.882324 0.420166
+18 23 16 0.65625 0.884766 0.490234
+18 23 17 0.661621 0.887207 0.566406
+18 23 18 0.666504 0.888184 0.64502
+18 23 19 0.669434 0.885742 0.72168
+18 23 20 0.67041 0.878418 0.791016
+18 23 21 0.667969 0.867188 0.852539
+18 23 22 0.662109 0.851074 0.905273
+18 23 23 0.654297 0.832031 0.946777
+18 23 24 0.643555 0.80957 0.977539
+18 23 25 0.62793 0.780762 0.999512
+18 23 26 0.609375 0.747559 1
+18 23 27 0.588867 0.712402 1
+18 23 28 0.568359 0.676758 1
+18 23 29 0.548828 0.642578 1
+18 23 30 0.530273 0.609863 1
+18 23 31 0.513672 0.579102 1
+18 24 0 0.632812 0.893066 0.337158
+18 24 1 0.632812 0.893066 0.337158
+18 24 2 0.632812 0.893066 0.337158
+18 24 3 0.632812 0.893066 0.337158
+18 24 4 0.632812 0.893066 0.337158
+18 24 5 0.632812 0.893066 0.337158
+18 24 6 0.632812 0.893066 0.337158
+18 24 7 0.632812 0.893066 0.337158
+18 24 8 0.632812 0.893066 0.337158
+18 24 9 0.632812 0.893066 0.337158
+18 24 10 0.632812 0.893066 0.337158
+18 24 11 0.632812 0.893555 0.337158
+18 24 12 0.633301 0.893555 0.337158
+18 24 13 0.633301 0.893555 0.337158
+18 24 14 0.634277 0.894531 0.349121
+18 24 15 0.638184 0.897461 0.406982
+18 24 16 0.643066 0.900879 0.474609
+18 24 17 0.648438 0.904297 0.548828
+18 24 18 0.654297 0.90625 0.625488
+18 24 19 0.658691 0.905762 0.700684
+18 24 20 0.661133 0.900879 0.77002
+18 24 21 0.660645 0.891602 0.833008
+18 24 22 0.657227 0.87793 0.887207
+18 24 23 0.651367 0.861328 0.931641
+18 24 24 0.644043 0.842285 0.967773
+18 24 25 0.632812 0.817871 0.996582
+18 24 26 0.617676 0.787598 1
+18 24 27 0.599121 0.75293 1
+18 24 28 0.57959 0.716797 1
+18 24 29 0.560059 0.680664 1
+18 24 30 0.541016 0.645508 1
+18 24 31 0.523926 0.612305 1
+18 25 0 0.618652 0.90625 0.340332
+18 25 1 0.618652 0.90625 0.340332
+18 25 2 0.618652 0.90625 0.340332
+18 25 3 0.618652 0.90625 0.340332
+18 25 4 0.618652 0.90625 0.340332
+18 25 5 0.618652 0.90625 0.340332
+18 25 6 0.618652 0.90625 0.340332
+18 25 7 0.618652 0.90625 0.340332
+18 25 8 0.618652 0.90625 0.340332
+18 25 9 0.618652 0.90625 0.340332
+18 25 10 0.618652 0.90625 0.340332
+18 25 11 0.618652 0.90625 0.340332
+18 25 12 0.618652 0.90625 0.340332
+18 25 13 0.619141 0.906738 0.340332
+18 25 14 0.619141 0.906738 0.340576
+18 25 15 0.623047 0.909668 0.393311
+18 25 16 0.62793 0.914062 0.458008
+18 25 17 0.634277 0.917969 0.529297
+18 25 18 0.640625 0.921387 0.604004
+18 25 19 0.645996 0.922363 0.677734
+18 25 20 0.649902 0.919922 0.746582
+18 25 21 0.651367 0.913086 0.810059
+18 25 22 0.649902 0.902344 0.865723
+18 25 23 0.646484 0.888184 0.912598
+18 25 24 0.641113 0.871582 0.951172
+18 25 25 0.633301 0.850586 0.985352
+18 25 26 0.62207 0.824707 1
+18 25 27 0.606934 0.792969 1
+18 25 28 0.589355 0.757324 1
+18 25 29 0.570312 0.720215 1
+18 25 30 0.551758 0.683594 1
+18 25 31 0.533691 0.647949 1
+18 26 0 0.604004 0.917969 0.343018
+18 26 1 0.604004 0.917969 0.343018
+18 26 2 0.604004 0.917969 0.343018
+18 26 3 0.604004 0.917969 0.343018
+18 26 4 0.604004 0.917969 0.343018
+18 26 5 0.604004 0.917969 0.343018
+18 26 6 0.604004 0.917969 0.343018
+18 26 7 0.604004 0.917969 0.343018
+18 26 8 0.604004 0.917969 0.343018
+18 26 9 0.604004 0.917969 0.343018
+18 26 10 0.604004 0.917969 0.343018
+18 26 11 0.604004 0.917969 0.343018
+18 26 12 0.604492 0.917969 0.343018
+18 26 13 0.604492 0.917969 0.343262
+18 26 14 0.60498 0.918457 0.343262
+18 26 15 0.607422 0.92041 0.378906
+18 26 16 0.612793 0.924805 0.44043
+18 26 17 0.618652 0.929688 0.508789
+18 26 18 0.625488 0.934082 0.580566
+18 26 19 0.631836 0.936523 0.652344
+18 26 20 0.636719 0.936035 0.720215
+18 26 21 0.640137 0.932129 0.783691
+18 26 22 0.640625 0.923828 0.84082
+18 26 23 0.639648 0.912598 0.889648
+18 26 24 0.63623 0.898438 0.930176
+18 26 25 0.630859 0.879883 0.967773
+18 26 26 0.622559 0.857422 1
+18 26 27 0.611328 0.82959 1
+18 26 28 0.596191 0.796387 1
+18 26 29 0.579102 0.759766 1
+18 26 30 0.561523 0.722168 1
+18 26 31 0.543457 0.685059 1
+18 27 0 0.589355 0.927734 0.345215
+18 27 1 0.589355 0.927734 0.345215
+18 27 2 0.589355 0.927734 0.345215
+18 27 3 0.589355 0.927734 0.345215
+18 27 4 0.589355 0.927734 0.345215
+18 27 5 0.589355 0.927734 0.345215
+18 27 6 0.589355 0.927734 0.345215
+18 27 7 0.589355 0.927734 0.345215
+18 27 8 0.589355 0.927734 0.345215
+18 27 9 0.589355 0.927734 0.345215
+18 27 10 0.589355 0.927734 0.345215
+18 27 11 0.589355 0.927734 0.345459
+18 27 12 0.589844 0.927734 0.345459
+18 27 13 0.589844 0.927734 0.345459
+18 27 14 0.590332 0.927734 0.345459
+18 27 15 0.591797 0.929199 0.364502
+18 27 16 0.59668 0.933594 0.422607
+18 27 17 0.603027 0.938965 0.487305
+18 27 18 0.609863 0.943848 0.556152
+18 27 19 0.616699 0.947754 0.625
+18 27 20 0.622559 0.949219 0.691406
+18 27 21 0.626953 0.947266 0.754395
+18 27 22 0.629883 0.942383 0.812012
+18 27 23 0.630371 0.933594 0.862305
+18 27 24 0.628906 0.922363 0.904785
+18 27 25 0.625488 0.906738 0.944824
+18 27 26 0.620117 0.886719 0.980957
+18 27 27 0.611328 0.862305 1
+18 27 28 0.600098 0.83252 1
+18 27 29 0.585449 0.797852 1
+18 27 30 0.568848 0.760742 1
+18 27 31 0.551758 0.722656 1
+18 28 0 0.574707 0.935059 0.346924
+18 28 1 0.574707 0.935059 0.346924
+18 28 2 0.574707 0.935059 0.346924
+18 28 3 0.574707 0.935059 0.346924
+18 28 4 0.574707 0.935059 0.346924
+18 28 5 0.574707 0.935059 0.346924
+18 28 6 0.574707 0.935059 0.346924
+18 28 7 0.574707 0.935059 0.346924
+18 28 8 0.574707 0.935059 0.346924
+18 28 9 0.574707 0.935059 0.346924
+18 28 10 0.574707 0.935059 0.346924
+18 28 11 0.574707 0.935059 0.346924
+18 28 12 0.574707 0.935059 0.346924
+18 28 13 0.575195 0.935547 0.346924
+18 28 14 0.575195 0.935547 0.347168
+18 28 15 0.576172 0.936035 0.349609
+18 28 16 0.580566 0.94043 0.404297
+18 28 17 0.586426 0.945801 0.465576
+18 28 18 0.593262 0.951172 0.530762
+18 28 19 0.600586 0.956055 0.597168
+18 28 20 0.606934 0.958984 0.661133
+18 28 21 0.612793 0.958984 0.723145
+18 28 22 0.616699 0.956543 0.780273
+18 28 23 0.619141 0.950684 0.831055
+18 28 24 0.619629 0.942383 0.875
+18 28 25 0.618164 0.929688 0.91748
+18 28 26 0.614746 0.912598 0.956543
+18 28 27 0.608887 0.891113 0.991211
+18 28 28 0.600098 0.864258 1
+18 28 29 0.587891 0.83252 1
+18 28 30 0.574219 0.797363 1
+18 28 31 0.558594 0.759766 1
+18 29 0 0.55957 0.94043 0.347656
+18 29 1 0.55957 0.94043 0.347656
+18 29 2 0.55957 0.94043 0.347656
+18 29 3 0.55957 0.94043 0.347656
+18 29 4 0.55957 0.94043 0.347656
+18 29 5 0.55957 0.94043 0.347656
+18 29 6 0.55957 0.94043 0.347656
+18 29 7 0.55957 0.94043 0.347656
+18 29 8 0.55957 0.94043 0.347656
+18 29 9 0.55957 0.94043 0.347656
+18 29 10 0.55957 0.94043 0.347656
+18 29 11 0.560059 0.94043 0.347656
+18 29 12 0.560059 0.94043 0.347656
+18 29 13 0.560059 0.94043 0.3479
+18 29 14 0.560547 0.94043 0.3479
+18 29 15 0.560547 0.940918 0.3479
+18 29 16 0.563965 0.943848 0.385742
+18 29 17 0.569824 0.949219 0.443115
+18 29 18 0.576172 0.955078 0.504883
+18 29 19 0.583496 0.960449 0.567871
+18 29 20 0.590332 0.964844 0.629395
+18 29 21 0.59668 0.966797 0.688965
+18 29 22 0.602051 0.966797 0.745605
+18 29 23 0.605469 0.963379 0.795898
+18 29 24 0.60791 0.95752 0.841309
+18 29 25 0.608398 0.948242 0.884766
+18 29 26 0.606934 0.93457 0.92627
+18 29 27 0.603516 0.916016 0.964355
+18 29 28 0.597168 0.892578 0.99707
+18 29 29 0.588379 0.864746 1
+18 29 30 0.577148 0.83252 1
+18 29 31 0.563965 0.796875 1
+18 30 0 0.544434 0.942383 0.347412
+18 30 1 0.544434 0.942383 0.347412
+18 30 2 0.544434 0.942383 0.347412
+18 30 3 0.544434 0.942383 0.347412
+18 30 4 0.544434 0.942383 0.347412
+18 30 5 0.544434 0.942383 0.347412
+18 30 6 0.544434 0.942383 0.347412
+18 30 7 0.544434 0.942383 0.347412
+18 30 8 0.544434 0.942383 0.347412
+18 30 9 0.544434 0.942383 0.347412
+18 30 10 0.544434 0.942383 0.347412
+18 30 11 0.544434 0.942383 0.347412
+18 30 12 0.544434 0.942383 0.347656
+18 30 13 0.544922 0.942383 0.347656
+18 30 14 0.544922 0.942383 0.347656
+18 30 15 0.54541 0.942871 0.347656
+18 30 16 0.547363 0.944336 0.366943
+18 30 17 0.552734 0.949707 0.42041
+18 30 18 0.559082 0.955566 0.478271
+18 30 19 0.565918 0.961426 0.537598
+18 30 20 0.572754 0.966797 0.596191
+18 30 21 0.57959 0.970215 0.65332
+18 30 22 0.585449 0.972168 0.708496
+18 30 23 0.590332 0.971191 0.758301
+18 30 24 0.59375 0.967773 0.803223
+18 30 25 0.596191 0.961426 0.848145
+18 30 26 0.59668 0.951172 0.891113
+18 30 27 0.595215 0.936523 0.932129
+18 30 28 0.591797 0.91748 0.969238
+18 30 29 0.585938 0.893066 1
+18 30 30 0.577637 0.864746 1
+18 30 31 0.567383 0.832031 1
+18 31 0 0.529297 0.942383 0.34668
+18 31 1 0.529297 0.942383 0.34668
+18 31 2 0.529297 0.942383 0.34668
+18 31 3 0.529297 0.942383 0.34668
+18 31 4 0.529297 0.942383 0.34668
+18 31 5 0.529297 0.942383 0.34668
+18 31 6 0.529297 0.942383 0.34668
+18 31 7 0.529297 0.942383 0.34668
+18 31 8 0.529785 0.942383 0.34668
+18 31 9 0.529785 0.942383 0.34668
+18 31 10 0.529785 0.942383 0.34668
+18 31 11 0.529785 0.942871 0.346924
+18 31 12 0.529785 0.942871 0.346924
+18 31 13 0.529785 0.942871 0.346924
+18 31 14 0.530273 0.942871 0.346924
+18 31 15 0.530273 0.942871 0.346924
+18 31 16 0.53125 0.943359 0.348389
+18 31 17 0.535645 0.948242 0.398193
+18 31 18 0.541504 0.953613 0.451904
+18 31 19 0.54834 0.959473 0.507324
+18 31 20 0.554688 0.965332 0.5625
+18 31 21 0.561523 0.969727 0.616699
+18 31 22 0.567871 0.972656 0.669434
+18 31 23 0.57373 0.974121 0.718262
+18 31 24 0.578125 0.973145 0.762695
+18 31 25 0.581543 0.969727 0.807617
+18 31 26 0.584473 0.963379 0.852539
+18 31 27 0.585449 0.952637 0.895508
+18 31 28 0.584473 0.937988 0.936523
+18 31 29 0.581543 0.917969 0.973633
+18 31 30 0.576172 0.893555 1
+18 31 31 0.568359 0.864258 1
+19 0 0 0.651367 0.481934 0
+19 0 1 0.651367 0.481934 0
+19 0 2 0.651367 0.481934 0
+19 0 3 0.651367 0.481934 0
+19 0 4 0.651367 0.481934 0
+19 0 5 0.651367 0.482178 0
+19 0 6 0.651367 0.482178 0
+19 0 7 0.651367 0.482178 0
+19 0 8 0.651367 0.482178 0
+19 0 9 0.651367 0.482422 0
+19 0 10 0.651855 0.482666 0
+19 0 11 0.651855 0.483398 0
+19 0 12 0.65332 0.484619 0
+19 0 13 0.658203 0.488037 0.161377
+19 0 14 0.669434 0.49585 0.281494
+19 0 15 0.68457 0.506348 0.384766
+19 0 16 0.709961 0.528809 0.49707
+19 0 17 0.743652 0.563965 0.615234
+19 0 18 0.761719 0.584961 0.71582
+19 0 19 0.754883 0.580566 0.791504
+19 0 20 0.741699 0.571289 0.853516
+19 0 21 0.720703 0.554688 0.898438
+19 0 22 0.690918 0.532227 0.92334
+19 0 23 0.660645 0.509277 0.935547
+19 0 24 0.632324 0.487549 0.941406
+19 0 25 0.60498 0.466797 0.944824
+19 0 26 0.579102 0.447266 0.946777
+19 0 27 0.556152 0.429443 0.949219
+19 0 28 0.535645 0.414062 0.952637
+19 0 29 0.518066 0.400391 0.95752
+19 0 30 0.50293 0.388916 0.963867
+19 0 31 0.489746 0.379395 0.971191
+19 1 0 0.651367 0.481934 0
+19 1 1 0.651367 0.481934 0
+19 1 2 0.651367 0.482178 0
+19 1 3 0.651367 0.482178 0
+19 1 4 0.651367 0.482178 0
+19 1 5 0.651367 0.482178 0
+19 1 6 0.651367 0.482178 0
+19 1 7 0.651367 0.482178 0
+19 1 8 0.651367 0.482178 0
+19 1 9 0.651367 0.482422 0
+19 1 10 0.651855 0.482666 0
+19 1 11 0.651855 0.483398 0
+19 1 12 0.65332 0.484619 0
+19 1 13 0.658203 0.488037 0.161377
+19 1 14 0.669434 0.49585 0.281494
+19 1 15 0.68457 0.506348 0.384766
+19 1 16 0.709961 0.528809 0.49707
+19 1 17 0.743652 0.563965 0.615234
+19 1 18 0.761719 0.584961 0.71582
+19 1 19 0.754883 0.580566 0.791504
+19 1 20 0.741699 0.571289 0.853516
+19 1 21 0.720703 0.554688 0.898438
+19 1 22 0.690918 0.532227 0.92334
+19 1 23 0.660645 0.509277 0.935547
+19 1 24 0.632324 0.487549 0.941406
+19 1 25 0.60498 0.466797 0.944824
+19 1 26 0.579102 0.447266 0.946777
+19 1 27 0.556152 0.429443 0.949219
+19 1 28 0.535645 0.414062 0.952637
+19 1 29 0.518066 0.400391 0.95752
+19 1 30 0.50293 0.388916 0.963867
+19 1 31 0.489746 0.379395 0.971191
+19 2 0 0.651367 0.482178 0
+19 2 1 0.651367 0.482178 0
+19 2 2 0.651367 0.482178 0
+19 2 3 0.651367 0.482178 0
+19 2 4 0.651367 0.482178 0
+19 2 5 0.651367 0.482178 0
+19 2 6 0.651367 0.482178 0
+19 2 7 0.651367 0.482178 0
+19 2 8 0.651367 0.482178 0
+19 2 9 0.651367 0.482422 0
+19 2 10 0.651855 0.482666 0
+19 2 11 0.651855 0.483398 0
+19 2 12 0.65332 0.484619 0
+19 2 13 0.658203 0.488037 0.161377
+19 2 14 0.669434 0.49585 0.281494
+19 2 15 0.68457 0.506348 0.384766
+19 2 16 0.709961 0.528809 0.49707
+19 2 17 0.743652 0.563965 0.615234
+19 2 18 0.761719 0.584961 0.71582
+19 2 19 0.754883 0.581055 0.791504
+19 2 20 0.741699 0.571289 0.853516
+19 2 21 0.720703 0.554688 0.898438
+19 2 22 0.690918 0.532227 0.92334
+19 2 23 0.660645 0.509277 0.935547
+19 2 24 0.632324 0.487549 0.941406
+19 2 25 0.60498 0.466797 0.944824
+19 2 26 0.579102 0.447266 0.946777
+19 2 27 0.556152 0.429443 0.949219
+19 2 28 0.535645 0.414062 0.952637
+19 2 29 0.518066 0.400635 0.95752
+19 2 30 0.50293 0.38916 0.963867
+19 2 31 0.489746 0.379395 0.971191
+19 3 0 0.651367 0.482178 0
+19 3 1 0.651367 0.482178 0
+19 3 2 0.651367 0.482178 0
+19 3 3 0.651367 0.482178 0
+19 3 4 0.651367 0.482178 0
+19 3 5 0.651367 0.482178 0
+19 3 6 0.651367 0.482178 0
+19 3 7 0.651367 0.482178 0
+19 3 8 0.651367 0.482422 0
+19 3 9 0.651367 0.482422 0
+19 3 10 0.651855 0.48291 0
+19 3 11 0.651855 0.483398 0
+19 3 12 0.65332 0.484619 0
+19 3 13 0.658203 0.488037 0.161377
+19 3 14 0.669434 0.49585 0.281494
+19 3 15 0.68457 0.506348 0.384766
+19 3 16 0.709961 0.528809 0.49707
+19 3 17 0.743652 0.563965 0.615234
+19 3 18 0.761719 0.584961 0.71582
+19 3 19 0.754883 0.581055 0.791504
+19 3 20 0.741699 0.571289 0.853516
+19 3 21 0.720703 0.555176 0.898438
+19 3 22 0.690918 0.532227 0.92334
+19 3 23 0.660645 0.509277 0.935547
+19 3 24 0.632324 0.487549 0.941406
+19 3 25 0.60498 0.466797 0.944824
+19 3 26 0.579102 0.447266 0.946777
+19 3 27 0.556152 0.429443 0.949219
+19 3 28 0.535645 0.414062 0.952637
+19 3 29 0.518066 0.400635 0.95752
+19 3 30 0.50293 0.38916 0.963867
+19 3 31 0.489746 0.379395 0.971191
+19 4 0 0.651367 0.482178 0
+19 4 1 0.651367 0.482178 0
+19 4 2 0.651367 0.482178 0
+19 4 3 0.651367 0.482178 0
+19 4 4 0.651367 0.482178 0
+19 4 5 0.651367 0.482178 0
+19 4 6 0.651367 0.482178 0
+19 4 7 0.651367 0.482178 0
+19 4 8 0.651367 0.482422 0
+19 4 9 0.651367 0.482666 0
+19 4 10 0.651855 0.48291 0
+19 4 11 0.651855 0.483398 0
+19 4 12 0.65332 0.484863 0
+19 4 13 0.658203 0.488281 0.161377
+19 4 14 0.669434 0.49585 0.281494
+19 4 15 0.68457 0.506348 0.384766
+19 4 16 0.709961 0.528809 0.49707
+19 4 17 0.743652 0.563965 0.615234
+19 4 18 0.761719 0.584961 0.71582
+19 4 19 0.754883 0.581055 0.791504
+19 4 20 0.741699 0.571289 0.853516
+19 4 21 0.720703 0.555176 0.898438
+19 4 22 0.690918 0.532227 0.92334
+19 4 23 0.660645 0.509277 0.935547
+19 4 24 0.632324 0.487549 0.941406
+19 4 25 0.60498 0.466797 0.944824
+19 4 26 0.579102 0.447266 0.946777
+19 4 27 0.556152 0.429443 0.949219
+19 4 28 0.535645 0.414062 0.952637
+19 4 29 0.518066 0.400635 0.95752
+19 4 30 0.50293 0.38916 0.963867
+19 4 31 0.489746 0.379395 0.971191
+19 5 0 0.651367 0.482422 0
+19 5 1 0.651367 0.482422 0
+19 5 2 0.651367 0.482422 0
+19 5 3 0.651367 0.482422 0
+19 5 4 0.651367 0.482422 0
+19 5 5 0.651367 0.482422 0
+19 5 6 0.651367 0.482422 0
+19 5 7 0.651367 0.482422 0
+19 5 8 0.651367 0.482422 0
+19 5 9 0.651855 0.482666 0
+19 5 10 0.651855 0.48291 0
+19 5 11 0.651855 0.483643 0
+19 5 12 0.65332 0.484863 0
+19 5 13 0.658691 0.488281 0.161499
+19 5 14 0.669922 0.496094 0.281494
+19 5 15 0.68457 0.506348 0.384766
+19 5 16 0.709961 0.528809 0.49707
+19 5 17 0.743652 0.564453 0.615234
+19 5 18 0.761719 0.585449 0.71582
+19 5 19 0.754883 0.581055 0.791504
+19 5 20 0.741699 0.571289 0.853516
+19 5 21 0.720703 0.555176 0.898438
+19 5 22 0.690918 0.532715 0.92334
+19 5 23 0.660645 0.509277 0.935547
+19 5 24 0.632324 0.487793 0.941406
+19 5 25 0.60498 0.466797 0.944824
+19 5 26 0.57959 0.447266 0.946777
+19 5 27 0.556152 0.429688 0.949219
+19 5 28 0.535645 0.414062 0.952637
+19 5 29 0.518066 0.400635 0.95752
+19 5 30 0.50293 0.38916 0.963867
+19 5 31 0.489746 0.379395 0.971191
+19 6 0 0.651367 0.482666 0
+19 6 1 0.651367 0.482666 0
+19 6 2 0.651367 0.482666 0
+19 6 3 0.651367 0.482666 0
+19 6 4 0.651367 0.482666 0
+19 6 5 0.651367 0.482666 0
+19 6 6 0.651367 0.482666 0
+19 6 7 0.651367 0.482666 0
+19 6 8 0.651855 0.48291 0
+19 6 9 0.651855 0.48291 0
+19 6 10 0.651855 0.483398 0
+19 6 11 0.652344 0.483887 0
+19 6 12 0.653809 0.485107 0
+19 6 13 0.658691 0.488525 0.161621
+19 6 14 0.669922 0.496094 0.281494
+19 6 15 0.68457 0.506836 0.384766
+19 6 16 0.709961 0.528809 0.49707
+19 6 17 0.743652 0.564453 0.615234
+19 6 18 0.761719 0.585449 0.71582
+19 6 19 0.754883 0.581055 0.791504
+19 6 20 0.741699 0.571289 0.853516
+19 6 21 0.720703 0.555176 0.898438
+19 6 22 0.690918 0.532715 0.92334
+19 6 23 0.660645 0.509277 0.935547
+19 6 24 0.632324 0.487793 0.941406
+19 6 25 0.60498 0.467041 0.944824
+19 6 26 0.57959 0.44751 0.946777
+19 6 27 0.556152 0.429688 0.949219
+19 6 28 0.535645 0.414062 0.952637
+19 6 29 0.518066 0.400635 0.95752
+19 6 30 0.50293 0.38916 0.963867
+19 6 31 0.489746 0.379395 0.971191
+19 7 0 0.651855 0.483154 0
+19 7 1 0.651855 0.483154 0
+19 7 2 0.651855 0.483154 0
+19 7 3 0.651855 0.483154 0
+19 7 4 0.651855 0.483154 0
+19 7 5 0.651855 0.483154 0
+19 7 6 0.651855 0.483154 0
+19 7 7 0.651855 0.483154 0
+19 7 8 0.651855 0.483398 0
+19 7 9 0.651855 0.483398 0
+19 7 10 0.652344 0.483887 0
+19 7 11 0.652344 0.484375 0
+19 7 12 0.653809 0.48584 0
+19 7 13 0.658691 0.489014 0.161743
+19 7 14 0.669922 0.496582 0.281494
+19 7 15 0.68457 0.507324 0.384766
+19 7 16 0.709961 0.529297 0.49707
+19 7 17 0.743652 0.564453 0.615234
+19 7 18 0.761719 0.585938 0.71582
+19 7 19 0.754883 0.581543 0.791504
+19 7 20 0.742188 0.571777 0.853516
+19 7 21 0.720703 0.555664 0.898438
+19 7 22 0.690918 0.532715 0.92334
+19 7 23 0.660645 0.509766 0.935547
+19 7 24 0.632324 0.488037 0.941406
+19 7 25 0.60498 0.467041 0.944824
+19 7 26 0.57959 0.44751 0.946777
+19 7 27 0.556152 0.429932 0.949219
+19 7 28 0.535645 0.414307 0.952637
+19 7 29 0.518066 0.400879 0.95752
+19 7 30 0.50293 0.389404 0.963867
+19 7 31 0.48999 0.379639 0.971191
+19 8 0 0.652344 0.484131 0
+19 8 1 0.652344 0.484131 0
+19 8 2 0.652344 0.484131 0
+19 8 3 0.652344 0.484131 0
+19 8 4 0.652344 0.484131 0
+19 8 5 0.652344 0.484131 0
+19 8 6 0.652344 0.484131 0
+19 8 7 0.652344 0.484375 0
+19 8 8 0.652344 0.484375 0
+19 8 9 0.652344 0.484619 0
+19 8 10 0.652832 0.484863 0
+19 8 11 0.652832 0.485352 0
+19 8 12 0.654297 0.486816 0
+19 8 13 0.65918 0.48999 0.162109
+19 8 14 0.669922 0.497314 0.281494
+19 8 15 0.685059 0.507812 0.384766
+19 8 16 0.709961 0.529785 0.496826
+19 8 17 0.743652 0.564941 0.615234
+19 8 18 0.761719 0.586426 0.71582
+19 8 19 0.754883 0.582031 0.791504
+19 8 20 0.742188 0.572266 0.853516
+19 8 21 0.720703 0.556152 0.898438
+19 8 22 0.690918 0.533203 0.92334
+19 8 23 0.660645 0.509766 0.935547
+19 8 24 0.632324 0.488281 0.941406
+19 8 25 0.60498 0.467529 0.944824
+19 8 26 0.57959 0.447998 0.947266
+19 8 27 0.556152 0.430176 0.949219
+19 8 28 0.535645 0.414551 0.952637
+19 8 29 0.518066 0.401123 0.958008
+19 8 30 0.50293 0.389648 0.963867
+19 8 31 0.48999 0.379883 0.971191
+19 9 0 0.65332 0.486084 0
+19 9 1 0.65332 0.486084 0
+19 9 2 0.65332 0.486084 0
+19 9 3 0.65332 0.486084 0
+19 9 4 0.65332 0.486084 0
+19 9 5 0.65332 0.486084 0
+19 9 6 0.65332 0.486328 0
+19 9 7 0.65332 0.486328 0
+19 9 8 0.65332 0.486328 0
+19 9 9 0.65332 0.486572 0
+19 9 10 0.65332 0.486816 0
+19 9 11 0.653809 0.487549 0
+19 9 12 0.655273 0.48877 0
+19 9 13 0.659668 0.491943 0.162842
+19 9 14 0.67041 0.499023 0.281494
+19 9 15 0.685547 0.509277 0.38501
+19 9 16 0.709961 0.530762 0.496582
+19 9 17 0.743652 0.565918 0.614746
+19 9 18 0.761719 0.587402 0.71582
+19 9 19 0.754883 0.583008 0.791504
+19 9 20 0.742188 0.573242 0.853516
+19 9 21 0.720703 0.557129 0.898438
+19 9 22 0.690918 0.53418 0.92334
+19 9 23 0.660645 0.510742 0.935547
+19 9 24 0.632324 0.489014 0.941406
+19 9 25 0.60498 0.468262 0.944824
+19 9 26 0.57959 0.448486 0.947266
+19 9 27 0.556152 0.430664 0.949707
+19 9 28 0.535645 0.415039 0.953125
+19 9 29 0.518066 0.401611 0.958008
+19 9 30 0.50293 0.389893 0.963867
+19 9 31 0.48999 0.380127 0.97168
+19 10 0 0.654785 0.489746 0
+19 10 1 0.654785 0.489746 0
+19 10 2 0.654785 0.489746 0
+19 10 3 0.654785 0.489746 0
+19 10 4 0.654785 0.489746 0
+19 10 5 0.654785 0.489746 0
+19 10 6 0.654785 0.489746 0
+19 10 7 0.654785 0.48999 0
+19 10 8 0.654785 0.48999 0
+19 10 9 0.655273 0.490234 0
+19 10 10 0.655273 0.490479 0
+19 10 11 0.655762 0.490967 0
+19 10 12 0.656738 0.492188 0
+19 10 13 0.661133 0.495117 0.164185
+19 10 14 0.671387 0.501953 0.281738
+19 10 15 0.686035 0.512207 0.385254
+19 10 16 0.709961 0.532715 0.496338
+19 10 17 0.743652 0.567871 0.614746
+19 10 18 0.761719 0.589355 0.71582
+19 10 19 0.755371 0.584961 0.791504
+19 10 20 0.742188 0.575195 0.853516
+19 10 21 0.721191 0.558594 0.898438
+19 10 22 0.691406 0.535645 0.92334
+19 10 23 0.660645 0.512207 0.935547
+19 10 24 0.632324 0.490479 0.941406
+19 10 25 0.605469 0.469482 0.944824
+19 10 26 0.57959 0.449707 0.947266
+19 10 27 0.556152 0.431885 0.949707
+19 10 28 0.536133 0.416016 0.953125
+19 10 29 0.518066 0.402344 0.958008
+19 10 30 0.50293 0.390869 0.964355
+19 10 31 0.490234 0.380859 0.97168
+19 11 0 0.657715 0.496094 0
+19 11 1 0.657715 0.496094 0
+19 11 2 0.657715 0.496094 0
+19 11 3 0.657715 0.496094 0
+19 11 4 0.657715 0.496094 0
+19 11 5 0.657715 0.496094 0
+19 11 6 0.657715 0.496094 0
+19 11 7 0.657715 0.496338 0
+19 11 8 0.657715 0.496338 0
+19 11 9 0.658203 0.496582 0
+19 11 10 0.658203 0.496826 0
+19 11 11 0.658691 0.497314 0
+19 11 12 0.659668 0.498291 0
+19 11 13 0.663574 0.500977 0.166992
+19 11 14 0.672852 0.506836 0.282227
+19 11 15 0.6875 0.51709 0.385742
+19 11 16 0.709961 0.536133 0.495605
+19 11 17 0.743164 0.570801 0.614258
+19 11 18 0.762207 0.592773 0.71582
+19 11 19 0.755859 0.588379 0.791504
+19 11 20 0.742676 0.578125 0.853516
+19 11 21 0.721191 0.561523 0.898926
+19 11 22 0.691406 0.538574 0.92334
+19 11 23 0.661133 0.514648 0.935547
+19 11 24 0.632812 0.49292 0.941406
+19 11 25 0.605469 0.47168 0.944824
+19 11 26 0.580078 0.45166 0.947266
+19 11 27 0.556641 0.433594 0.949707
+19 11 28 0.536133 0.417725 0.953613
+19 11 29 0.518555 0.404053 0.958496
+19 11 30 0.503418 0.392334 0.964844
+19 11 31 0.490479 0.382324 0.972168
+19 12 0 0.663086 0.506836 0
+19 12 1 0.663086 0.506836 0
+19 12 2 0.663086 0.506836 0
+19 12 3 0.663086 0.506836 0
+19 12 4 0.663086 0.506836 0
+19 12 5 0.663086 0.506836 0
+19 12 6 0.663086 0.506836 0
+19 12 7 0.663086 0.506836 0
+19 12 8 0.663086 0.507324 0
+19 12 9 0.663086 0.507324 0
+19 12 10 0.663086 0.507812 0
+19 12 11 0.663574 0.508301 0
+19 12 12 0.664551 0.508789 0
+19 12 13 0.667969 0.510742 0.172607
+19 12 14 0.675781 0.515625 0.283691
+19 12 15 0.69043 0.525879 0.386963
+19 12 16 0.709961 0.541992 0.494873
+19 12 17 0.742676 0.575684 0.613281
+19 12 18 0.762695 0.598145 0.71582
+19 12 19 0.756348 0.59375 0.791504
+19 12 20 0.743164 0.583984 0.854004
+19 12 21 0.722168 0.566895 0.898926
+19 12 22 0.692383 0.543457 0.923828
+19 12 23 0.661621 0.519043 0.936035
+19 12 24 0.633301 0.496826 0.941895
+19 12 25 0.605957 0.475342 0.945312
+19 12 26 0.580566 0.455322 0.947754
+19 12 27 0.557129 0.437012 0.950195
+19 12 28 0.536621 0.420654 0.954102
+19 12 29 0.519043 0.406738 0.958984
+19 12 30 0.503906 0.394775 0.965332
+19 12 31 0.490967 0.384521 0.972656
+19 13 0 0.671387 0.524414 0
+19 13 1 0.671387 0.524414 0
+19 13 2 0.671387 0.524414 0
+19 13 3 0.671387 0.524414 0
+19 13 4 0.671387 0.524414 0
+19 13 5 0.671387 0.524414 0
+19 13 6 0.671387 0.524414 0
+19 13 7 0.671387 0.524414 0
+19 13 8 0.671387 0.524414 0
+19 13 9 0.671387 0.524902 0
+19 13 10 0.671875 0.524902 0
+19 13 11 0.671875 0.525391 0
+19 13 12 0.672363 0.525879 0
+19 13 13 0.675293 0.527344 0.183594
+19 13 14 0.681152 0.530273 0.287354
+19 13 15 0.693848 0.539062 0.388184
+19 13 16 0.710449 0.551758 0.493408
+19 13 17 0.742188 0.583496 0.611328
+19 13 18 0.763184 0.607422 0.71582
+19 13 19 0.757324 0.603027 0.791992
+19 13 20 0.744141 0.592285 0.854492
+19 13 21 0.723145 0.575195 0.899414
+19 13 22 0.692871 0.550781 0.924316
+19 13 23 0.662109 0.526367 0.936035
+19 13 24 0.633789 0.503418 0.941895
+19 13 25 0.606445 0.481445 0.945801
+19 13 26 0.581055 0.460693 0.948242
+19 13 27 0.558105 0.442139 0.951172
+19 13 28 0.537598 0.425537 0.95459
+19 13 29 0.52002 0.411133 0.959961
+19 13 30 0.504883 0.398682 0.966309
+19 13 31 0.491699 0.388184 0.973633
+19 14 0 0.68457 0.55127 0
+19 14 1 0.68457 0.55127 0
+19 14 2 0.68457 0.55127 0
+19 14 3 0.68457 0.55127 0
+19 14 4 0.68457 0.55127 0
+19 14 5 0.68457 0.55127 0
+19 14 6 0.68457 0.55127 0
+19 14 7 0.68457 0.55127 0
+19 14 8 0.68457 0.55127 0
+19 14 9 0.68457 0.551758 0
+19 14 10 0.685059 0.551758 0
+19 14 11 0.685059 0.552246 0
+19 14 12 0.685547 0.552734 0.0378113
+19 14 13 0.6875 0.553223 0.203735
+19 14 14 0.690918 0.554199 0.296143
+19 14 15 0.698242 0.558105 0.389404
+19 14 16 0.712402 0.568359 0.492432
+19 14 17 0.740234 0.595215 0.608398
+19 14 18 0.763672 0.621094 0.715332
+19 14 19 0.758301 0.616699 0.79248
+19 14 20 0.745605 0.605957 0.85498
+19 14 21 0.724609 0.587891 0.899902
+19 14 22 0.694336 0.5625 0.924316
+19 14 23 0.663574 0.537109 0.936523
+19 14 24 0.635254 0.513672 0.942383
+19 14 25 0.60791 0.490723 0.946289
+19 14 26 0.58252 0.469482 0.949219
+19 14 27 0.559082 0.450195 0.952148
+19 14 28 0.539062 0.433105 0.956055
+19 14 29 0.520996 0.417969 0.961426
+19 14 30 0.505859 0.405029 0.967773
+19 14 31 0.49292 0.394043 0.975586
+19 15 0 0.704102 0.589844 0.110962
+19 15 1 0.704102 0.589844 0.110962
+19 15 2 0.704102 0.589844 0.110962
+19 15 3 0.704102 0.589844 0.110962
+19 15 4 0.704102 0.589844 0.111023
+19 15 5 0.704102 0.589844 0.111023
+19 15 6 0.704102 0.589844 0.111084
+19 15 7 0.704102 0.589844 0.111206
+19 15 8 0.704102 0.590332 0.111389
+19 15 9 0.704102 0.590332 0.111755
+19 15 10 0.70459 0.590332 0.112488
+19 15 11 0.70459 0.59082 0.113708
+19 15 12 0.705078 0.591309 0.150757
+19 15 13 0.706055 0.591309 0.235962
+19 15 14 0.707031 0.590332 0.314697
+19 15 15 0.708984 0.589844 0.397705
+19 15 16 0.717773 0.594727 0.494385
+19 15 17 0.737305 0.611816 0.603027
+19 15 18 0.76416 0.640137 0.714355
+19 15 19 0.760254 0.636719 0.79248
+19 15 20 0.747559 0.625488 0.85498
+19 15 21 0.726562 0.606445 0.900391
+19 15 22 0.695801 0.57959 0.924805
+19 15 23 0.665039 0.552734 0.937012
+19 15 24 0.636719 0.52832 0.943359
+19 15 25 0.609863 0.504395 0.947266
+19 15 26 0.584473 0.482422 0.950684
+19 15 27 0.561523 0.462158 0.954102
+19 15 28 0.541016 0.444336 0.958496
+19 15 29 0.523438 0.428467 0.963867
+19 15 30 0.507812 0.414551 0.970215
+19 15 31 0.494873 0.402588 0.978027
+19 16 0 0.72998 0.641113 0.206299
+19 16 1 0.72998 0.641113 0.206299
+19 16 2 0.72998 0.641113 0.206299
+19 16 3 0.72998 0.641113 0.206299
+19 16 4 0.72998 0.641113 0.206299
+19 16 5 0.72998 0.641113 0.206299
+19 16 6 0.72998 0.641602 0.206299
+19 16 7 0.72998 0.641602 0.206421
+19 16 8 0.730469 0.641602 0.206421
+19 16 9 0.730469 0.641602 0.206543
+19 16 10 0.730469 0.641602 0.206909
+19 16 11 0.730469 0.64209 0.207275
+19 16 12 0.730957 0.642578 0.216919
+19 16 13 0.730957 0.64209 0.27832
+19 16 14 0.730469 0.641113 0.345215
+19 16 15 0.729004 0.637695 0.418457
+19 16 16 0.726562 0.632812 0.499756
+19 16 17 0.733887 0.636719 0.596191
+19 16 18 0.762695 0.665039 0.710449
+19 16 19 0.761719 0.664062 0.791504
+19 16 20 0.75 0.651855 0.85498
+19 16 21 0.728516 0.631836 0.900879
+19 16 22 0.698242 0.603027 0.924805
+19 16 23 0.666992 0.574707 0.937012
+19 16 24 0.63916 0.548828 0.944336
+19 16 25 0.612305 0.524414 0.949219
+19 16 26 0.587402 0.500977 0.953125
+19 16 27 0.564453 0.479492 0.957031
+19 16 28 0.544434 0.460449 0.961914
+19 16 29 0.526367 0.443359 0.967773
+19 16 30 0.51123 0.428467 0.974121
+19 16 31 0.497803 0.415283 0.981934
+19 17 0 0.756836 0.700195 0.268799
+19 17 1 0.756836 0.700195 0.268799
+19 17 2 0.756836 0.700195 0.268799
+19 17 3 0.756836 0.700195 0.268799
+19 17 4 0.756836 0.700195 0.268799
+19 17 5 0.756836 0.700195 0.268799
+19 17 6 0.756836 0.700195 0.268799
+19 17 7 0.756836 0.700195 0.268799
+19 17 8 0.756836 0.700195 0.269043
+19 17 9 0.756836 0.700195 0.269043
+19 17 10 0.756836 0.700684 0.269043
+19 17 11 0.756836 0.700684 0.269287
+19 17 12 0.757324 0.701172 0.269775
+19 17 13 0.757812 0.701172 0.318359
+19 17 14 0.757324 0.700684 0.379395
+19 17 15 0.755859 0.698242 0.448486
+19 17 16 0.750488 0.691406 0.522461
+19 17 17 0.740723 0.679199 0.599121
+19 17 18 0.755859 0.691406 0.700684
+19 17 19 0.763184 0.697754 0.789551
+19 17 20 0.751953 0.685059 0.853516
+19 17 21 0.730957 0.663086 0.899414
+19 17 22 0.700195 0.632812 0.923828
+19 17 23 0.669922 0.603027 0.9375
+19 17 24 0.642578 0.576172 0.945801
+19 17 25 0.616699 0.550293 0.95166
+19 17 26 0.591797 0.525391 0.957031
+19 17 27 0.569336 0.50293 0.961914
+19 17 28 0.549316 0.481934 0.967285
+19 17 29 0.53125 0.463379 0.973633
+19 17 30 0.515625 0.446777 0.97998
+19 17 31 0.501953 0.432129 0.987305
+19 18 0 0.773926 0.756836 0.306152
+19 18 1 0.773926 0.756836 0.306152
+19 18 2 0.773926 0.756836 0.306152
+19 18 3 0.773926 0.756836 0.306152
+19 18 4 0.773926 0.756836 0.306152
+19 18 5 0.773926 0.756836 0.306152
+19 18 6 0.773926 0.756836 0.306152
+19 18 7 0.773926 0.756836 0.306152
+19 18 8 0.773926 0.756836 0.306152
+19 18 9 0.773926 0.756836 0.306152
+19 18 10 0.773926 0.756836 0.306152
+19 18 11 0.773926 0.757324 0.306396
+19 18 12 0.774414 0.757812 0.306396
+19 18 13 0.774902 0.758301 0.341064
+19 18 14 0.776367 0.758789 0.400635
+19 18 15 0.776855 0.758301 0.469727
+19 18 16 0.775391 0.755371 0.546387
+19 18 17 0.768066 0.746582 0.623535
+19 18 18 0.751953 0.727539 0.692383
+19 18 19 0.763184 0.73584 0.785156
+19 18 20 0.75293 0.723145 0.850098
+19 18 21 0.731934 0.699219 0.895996
+19 18 22 0.702637 0.667969 0.922363
+19 18 23 0.673828 0.637207 0.937988
+19 18 24 0.647949 0.609375 0.94873
+19 18 25 0.622559 0.58252 0.957031
+19 18 26 0.598633 0.556641 0.963379
+19 18 27 0.57666 0.532227 0.969727
+19 18 28 0.556152 0.509277 0.975586
+19 18 29 0.538086 0.489014 0.981934
+19 18 30 0.521484 0.469727 0.987305
+19 18 31 0.506348 0.452393 0.992676
+19 19 0 0.774902 0.802246 0.322266
+19 19 1 0.774902 0.802246 0.322266
+19 19 2 0.774902 0.802246 0.322266
+19 19 3 0.774902 0.802246 0.322266
+19 19 4 0.774902 0.802246 0.322266
+19 19 5 0.774902 0.802246 0.322266
+19 19 6 0.774902 0.802246 0.322266
+19 19 7 0.774902 0.802246 0.322266
+19 19 8 0.774902 0.802246 0.322266
+19 19 9 0.774902 0.802246 0.322266
+19 19 10 0.774902 0.802246 0.322266
+19 19 11 0.775391 0.802734 0.322266
+19 19 12 0.775391 0.802734 0.322266
+19 19 13 0.775879 0.803711 0.343506
+19 19 14 0.777832 0.804688 0.4021
+19 19 15 0.779297 0.805176 0.470947
+19 19 16 0.780273 0.804199 0.548828
+19 19 17 0.77832 0.799805 0.629395
+19 19 18 0.771973 0.790039 0.708008
+19 19 19 0.760742 0.775391 0.777832
+19 19 20 0.752441 0.762695 0.84375
+19 19 21 0.731934 0.737793 0.890625
+19 19 22 0.706055 0.70752 0.920898
+19 19 23 0.679688 0.676758 0.94043
+19 19 24 0.654785 0.647949 0.953125
+19 19 25 0.630371 0.619629 0.962891
+19 19 26 0.605957 0.591309 0.970215
+19 19 27 0.583496 0.564453 0.976074
+19 19 28 0.562012 0.539062 0.981445
+19 19 29 0.542969 0.515625 0.986328
+19 19 30 0.525879 0.494385 0.991699
+19 19 31 0.510742 0.474854 0.99707
+19 20 0 0.762695 0.833984 0.330322
+19 20 1 0.762695 0.833984 0.330322
+19 20 2 0.762695 0.833984 0.330322
+19 20 3 0.762695 0.833984 0.330322
+19 20 4 0.762695 0.833984 0.330322
+19 20 5 0.762695 0.833984 0.330322
+19 20 6 0.762695 0.833984 0.330322
+19 20 7 0.762695 0.833984 0.330322
+19 20 8 0.762695 0.833984 0.330322
+19 20 9 0.762695 0.833984 0.330322
+19 20 10 0.762695 0.834473 0.330322
+19 20 11 0.762695 0.834473 0.330322
+19 20 12 0.763184 0.834473 0.330566
+19 20 13 0.763184 0.834961 0.337646
+19 20 14 0.764648 0.835449 0.393799
+19 20 15 0.766602 0.835938 0.460693
+19 20 16 0.767578 0.835449 0.536621
+19 20 17 0.76709 0.832031 0.616211
+19 20 18 0.762207 0.823242 0.693848
+19 20 19 0.755859 0.8125 0.76709
+19 20 20 0.749512 0.800781 0.834473
+19 20 21 0.734863 0.780273 0.887207
+19 20 22 0.711914 0.750977 0.921875
+19 20 23 0.687012 0.719727 0.943848
+19 20 24 0.663086 0.689941 0.958496
+19 20 25 0.638672 0.659668 0.969238
+19 20 26 0.614746 0.629395 0.977539
+19 20 27 0.591797 0.600098 0.983887
+19 20 28 0.569824 0.572266 0.98877
+19 20 29 0.550293 0.546387 0.993652
+19 20 30 0.532227 0.522461 0.998535
+19 20 31 0.516602 0.500488 1
+19 21 0 0.748535 0.862793 0.337646
+19 21 1 0.748535 0.862793 0.337646
+19 21 2 0.748535 0.862793 0.337646
+19 21 3 0.748535 0.862793 0.337646
+19 21 4 0.748535 0.862793 0.337646
+19 21 5 0.748535 0.862793 0.337646
+19 21 6 0.748535 0.862793 0.337646
+19 21 7 0.748535 0.862793 0.337646
+19 21 8 0.748535 0.862793 0.337646
+19 21 9 0.749023 0.862793 0.337646
+19 21 10 0.749023 0.862793 0.337646
+19 21 11 0.749023 0.863281 0.337646
+19 21 12 0.749023 0.863281 0.337646
+19 21 13 0.749023 0.863281 0.337891
+19 21 14 0.75 0.86377 0.38501
+19 21 15 0.751465 0.86377 0.448975
+19 21 16 0.752441 0.862793 0.521973
+19 21 17 0.75293 0.859863 0.599609
+19 21 18 0.750977 0.854004 0.677734
+19 21 19 0.748535 0.84668 0.75293
+19 21 20 0.744141 0.836426 0.821289
+19 21 21 0.73584 0.821777 0.880859
+19 21 22 0.720215 0.79834 0.924805
+19 21 23 0.698242 0.768555 0.95166
+19 21 24 0.675781 0.738281 0.96875
+19 21 25 0.651367 0.705566 0.980957
+19 21 26 0.626953 0.672852 0.989258
+19 21 27 0.603027 0.640625 0.995605
+19 21 28 0.580078 0.609863 1
+19 21 29 0.55957 0.580566 1
+19 21 30 0.540527 0.553711 1
+19 21 31 0.523438 0.528809 1
+19 22 0 0.730469 0.883789 0.342285
+19 22 1 0.730469 0.883789 0.342285
+19 22 2 0.730469 0.883789 0.342285
+19 22 3 0.730469 0.883789 0.342285
+19 22 4 0.730469 0.883789 0.342285
+19 22 5 0.730469 0.883789 0.342285
+19 22 6 0.730469 0.883789 0.342285
+19 22 7 0.730469 0.883789 0.342285
+19 22 8 0.730469 0.883789 0.342285
+19 22 9 0.730469 0.883789 0.342285
+19 22 10 0.730469 0.883789 0.342285
+19 22 11 0.730469 0.883789 0.342285
+19 22 12 0.730469 0.883789 0.342285
+19 22 13 0.730957 0.884277 0.342285
+19 22 14 0.731934 0.884766 0.374023
+19 22 15 0.733887 0.885254 0.435791
+19 22 16 0.73584 0.885742 0.506836
+19 22 17 0.737793 0.884277 0.583008
+19 22 18 0.73877 0.881348 0.660645
+19 22 19 0.738281 0.876465 0.736328
+19 22 20 0.73584 0.868164 0.805176
+19 22 21 0.72998 0.85498 0.866211
+19 22 22 0.720703 0.837402 0.91748
+19 22 23 0.706055 0.814453 0.954102
+19 22 24 0.687012 0.786133 0.977051
+19 22 25 0.664551 0.753418 0.992188
+19 22 26 0.640137 0.719238 1
+19 22 27 0.616211 0.684082 1
+19 22 28 0.592285 0.650391 1
+19 22 29 0.570312 0.618164 1
+19 22 30 0.550293 0.587891 1
+19 22 31 0.532227 0.560059 1
+19 23 0 0.711914 0.899414 0.345459
+19 23 1 0.711914 0.899414 0.345459
+19 23 2 0.711914 0.899414 0.345459
+19 23 3 0.711914 0.899414 0.345459
+19 23 4 0.711914 0.899414 0.345459
+19 23 5 0.711914 0.899414 0.345459
+19 23 6 0.711914 0.899414 0.345459
+19 23 7 0.711914 0.899414 0.345459
+19 23 8 0.711914 0.899414 0.345459
+19 23 9 0.711914 0.899414 0.345459
+19 23 10 0.711914 0.899414 0.345459
+19 23 11 0.712402 0.899414 0.345459
+19 23 12 0.712402 0.899414 0.345703
+19 23 13 0.712402 0.899902 0.345703
+19 23 14 0.713379 0.900391 0.363037
+19 23 15 0.71582 0.901855 0.422363
+19 23 16 0.719238 0.90332 0.490967
+19 23 17 0.722168 0.904297 0.56543
+19 23 18 0.725098 0.90332 0.642578
+19 23 19 0.727051 0.900391 0.717773
+19 23 20 0.726074 0.894043 0.787109
+19 23 21 0.722656 0.882812 0.849121
+19 23 22 0.715332 0.867188 0.902344
+19 23 23 0.706055 0.849121 0.944824
+19 23 24 0.692871 0.826172 0.976562
+19 23 25 0.674316 0.796875 0.998535
+19 23 26 0.652344 0.763184 1
+19 23 27 0.628418 0.727051 1
+19 23 28 0.60498 0.691406 1
+19 23 29 0.582031 0.65625 1
+19 23 30 0.561035 0.623047 1
+19 23 31 0.541504 0.591797 1
+19 24 0 0.694824 0.912109 0.3479
+19 24 1 0.694824 0.912109 0.3479
+19 24 2 0.694824 0.912109 0.3479
+19 24 3 0.694824 0.912109 0.3479
+19 24 4 0.694824 0.912109 0.3479
+19 24 5 0.694824 0.912109 0.3479
+19 24 6 0.694824 0.912109 0.3479
+19 24 7 0.694824 0.912109 0.3479
+19 24 8 0.694824 0.912109 0.3479
+19 24 9 0.694824 0.912109 0.3479
+19 24 10 0.694824 0.912109 0.348145
+19 24 11 0.694824 0.912109 0.348145
+19 24 12 0.694824 0.912109 0.348145
+19 24 13 0.694824 0.912109 0.348145
+19 24 14 0.695312 0.912598 0.352539
+19 24 15 0.698242 0.915039 0.409424
+19 24 16 0.702148 0.91748 0.475586
+19 24 17 0.706543 0.919434 0.54834
+19 24 18 0.710938 0.92041 0.624023
+19 24 19 0.713867 0.919434 0.698242
+19 24 20 0.715332 0.915039 0.767578
+19 24 21 0.713379 0.905762 0.830078
+19 24 22 0.708496 0.892578 0.884766
+19 24 23 0.701172 0.876465 0.930176
+19 24 24 0.692383 0.85791 0.966797
+19 24 25 0.678711 0.833496 0.996094
+19 24 26 0.660645 0.802246 1
+19 24 27 0.63916 0.76709 1
+19 24 28 0.616211 0.730469 1
+19 24 29 0.593262 0.693359 1
+19 24 30 0.571777 0.657715 1
+19 24 31 0.55127 0.624023 1
+19 25 0 0.676758 0.92334 0.350098
+19 25 1 0.676758 0.92334 0.350098
+19 25 2 0.676758 0.92334 0.350098
+19 25 3 0.676758 0.92334 0.350098
+19 25 4 0.676758 0.92334 0.350098
+19 25 5 0.676758 0.92334 0.350098
+19 25 6 0.676758 0.92334 0.350098
+19 25 7 0.676758 0.92334 0.350098
+19 25 8 0.676758 0.92334 0.350098
+19 25 9 0.676758 0.92334 0.350098
+19 25 10 0.676758 0.92334 0.350098
+19 25 11 0.676758 0.92334 0.350098
+19 25 12 0.676758 0.92334 0.350098
+19 25 13 0.677246 0.92334 0.350342
+19 25 14 0.677246 0.923828 0.350342
+19 25 15 0.680176 0.925781 0.395752
+19 25 16 0.68457 0.929199 0.459473
+19 25 17 0.689453 0.932129 0.529785
+19 25 18 0.694336 0.935059 0.603027
+19 25 19 0.699219 0.935547 0.67627
+19 25 20 0.70166 0.933105 0.744629
+19 25 21 0.702148 0.92627 0.808105
+19 25 22 0.699219 0.915527 0.864258
+19 25 23 0.694336 0.901855 0.911133
+19 25 24 0.6875 0.885254 0.950195
+19 25 25 0.678223 0.864746 0.985352
+19 25 26 0.664551 0.838867 1
+19 25 27 0.646484 0.806152 1
+19 25 28 0.625977 0.77002 1
+19 25 29 0.604004 0.732422 1
+19 25 30 0.582031 0.694824 1
+19 25 31 0.561523 0.658691 1
+19 26 0 0.658691 0.933105 0.352051
+19 26 1 0.658691 0.933105 0.352051
+19 26 2 0.658691 0.933105 0.352051
+19 26 3 0.658691 0.933105 0.352051
+19 26 4 0.658691 0.933105 0.352051
+19 26 5 0.658691 0.933105 0.352051
+19 26 6 0.658691 0.933105 0.352051
+19 26 7 0.658691 0.933105 0.352051
+19 26 8 0.658691 0.933105 0.352051
+19 26 9 0.658691 0.933105 0.352051
+19 26 10 0.658691 0.933105 0.352051
+19 26 11 0.658691 0.933105 0.352051
+19 26 12 0.658691 0.933105 0.352051
+19 26 13 0.65918 0.933594 0.352051
+19 26 14 0.65918 0.933594 0.352051
+19 26 15 0.661133 0.935547 0.381592
+19 26 16 0.665527 0.938965 0.442383
+19 26 17 0.670898 0.942871 0.509766
+19 26 18 0.676758 0.946777 0.580566
+19 26 19 0.682129 0.94873 0.651855
+19 26 20 0.686523 0.948242 0.719238
+19 26 21 0.688477 0.943848 0.782715
+19 26 22 0.687988 0.936035 0.839844
+19 26 23 0.685547 0.924805 0.888672
+19 26 24 0.680664 0.910645 0.929688
+19 26 25 0.673828 0.893066 0.967285
+19 26 26 0.663574 0.870605 1
+19 26 27 0.649902 0.842285 1
+19 26 28 0.632324 0.808594 1
+19 26 29 0.612305 0.771484 1
+19 26 30 0.591797 0.733398 1
+19 26 31 0.570801 0.695312 1
+19 27 0 0.640137 0.941406 0.353516
+19 27 1 0.640137 0.941406 0.353516
+19 27 2 0.640137 0.941406 0.353516
+19 27 3 0.640137 0.941406 0.353516
+19 27 4 0.640137 0.941406 0.353516
+19 27 5 0.640137 0.941406 0.353516
+19 27 6 0.640137 0.941406 0.353516
+19 27 7 0.640137 0.941406 0.353516
+19 27 8 0.640137 0.941406 0.353516
+19 27 9 0.640137 0.941406 0.353516
+19 27 10 0.640625 0.941895 0.353516
+19 27 11 0.640625 0.941895 0.353516
+19 27 12 0.640625 0.941895 0.353516
+19 27 13 0.640625 0.941895 0.353516
+19 27 14 0.641113 0.941895 0.353516
+19 27 15 0.64209 0.942871 0.367188
+19 27 16 0.646484 0.946777 0.424561
+19 27 17 0.651855 0.95166 0.48877
+19 27 18 0.658203 0.956055 0.556641
+19 27 19 0.664062 0.959473 0.625488
+19 27 20 0.669434 0.960449 0.691406
+19 27 21 0.672852 0.958496 0.753906
+19 27 22 0.674316 0.953613 0.811523
+19 27 23 0.673828 0.944824 0.861816
+19 27 24 0.671387 0.933594 0.904785
+19 27 25 0.666504 0.917969 0.944824
+19 27 26 0.65918 0.898438 0.981445
+19 27 27 0.648926 0.873535 1
+19 27 28 0.634766 0.84375 1
+19 27 29 0.617676 0.808594 1
+19 27 30 0.598633 0.770996 1
+19 27 31 0.579102 0.732422 1
+19 28 0 0.62207 0.948242 0.354248
+19 28 1 0.62207 0.948242 0.354248
+19 28 2 0.62207 0.948242 0.354248
+19 28 3 0.62207 0.948242 0.354248
+19 28 4 0.62207 0.948242 0.354248
+19 28 5 0.62207 0.948242 0.354248
+19 28 6 0.62207 0.948242 0.354248
+19 28 7 0.62207 0.948242 0.354248
+19 28 8 0.62207 0.948242 0.354248
+19 28 9 0.62207 0.948242 0.354248
+19 28 10 0.62207 0.948242 0.354248
+19 28 11 0.62207 0.948242 0.354248
+19 28 12 0.62207 0.948242 0.354248
+19 28 13 0.62207 0.948242 0.354248
+19 28 14 0.622559 0.948242 0.354492
+19 28 15 0.622559 0.94873 0.354492
+19 28 16 0.626953 0.952637 0.406494
+19 28 17 0.632324 0.95752 0.467285
+19 28 18 0.638672 0.962402 0.532227
+19 28 19 0.64502 0.966797 0.597656
+19 28 20 0.650879 0.969238 0.661621
+19 28 21 0.655762 0.969727 0.723145
+19 28 22 0.658691 0.966797 0.780273
+19 28 23 0.660156 0.960938 0.831055
+19 28 24 0.659668 0.952637 0.875
+19 28 25 0.657227 0.939941 0.91748
+19 28 26 0.652344 0.92334 0.956543
+19 28 27 0.644531 0.901367 0.991699
+19 28 28 0.633789 0.874512 1
+19 28 29 0.619629 0.842773 1
+19 28 30 0.603027 0.807129 1
+19 28 31 0.585449 0.769043 1
+19 29 0 0.603027 0.952148 0.354248
+19 29 1 0.603027 0.952148 0.354248
+19 29 2 0.603027 0.952148 0.354248
+19 29 3 0.603027 0.952148 0.354248
+19 29 4 0.603027 0.952148 0.354248
+19 29 5 0.603027 0.952148 0.354248
+19 29 6 0.603027 0.952148 0.354248
+19 29 7 0.603027 0.952148 0.354248
+19 29 8 0.603027 0.952148 0.354248
+19 29 9 0.603027 0.952148 0.354248
+19 29 10 0.603027 0.952148 0.354248
+19 29 11 0.603027 0.952148 0.354248
+19 29 12 0.603027 0.952148 0.354248
+19 29 13 0.603516 0.952148 0.354492
+19 29 14 0.603516 0.952148 0.354492
+19 29 15 0.604004 0.952637 0.354492
+19 29 16 0.606934 0.955078 0.388184
+19 29 17 0.612305 0.960449 0.445068
+19 29 18 0.618164 0.96582 0.506348
+19 29 19 0.625 0.970703 0.568848
+19 29 20 0.631348 0.974609 0.630371
+19 29 21 0.636719 0.976562 0.689941
+19 29 22 0.641113 0.976074 0.746094
+19 29 23 0.644043 0.973145 0.796387
+19 29 24 0.645508 0.966797 0.841309
+19 29 25 0.64502 0.95752 0.885254
+19 29 26 0.64209 0.943848 0.926758
+19 29 27 0.637207 0.925293 0.964844
+19 29 28 0.628906 0.901855 0.998047
+19 29 29 0.618164 0.873535 1
+19 29 30 0.60498 0.841309 1
+19 29 31 0.589844 0.805176 1
+19 30 0 0.583984 0.953125 0.353516
+19 30 1 0.583984 0.953125 0.353516
+19 30 2 0.583984 0.953125 0.353516
+19 30 3 0.583984 0.953125 0.353516
+19 30 4 0.583984 0.953125 0.353516
+19 30 5 0.583984 0.953125 0.353516
+19 30 6 0.583984 0.953125 0.353516
+19 30 7 0.583984 0.953125 0.353516
+19 30 8 0.583984 0.953125 0.353516
+19 30 9 0.583984 0.953125 0.353516
+19 30 10 0.583984 0.953125 0.353516
+19 30 11 0.583984 0.953125 0.353516
+19 30 12 0.583984 0.953125 0.353516
+19 30 13 0.583984 0.953125 0.353516
+19 30 14 0.584473 0.953125 0.353516
+19 30 15 0.584473 0.953613 0.353516
+19 30 16 0.586426 0.955078 0.369385
+19 30 17 0.591309 0.959961 0.422607
+19 30 18 0.597168 0.96582 0.480225
+19 30 19 0.604004 0.971191 0.539062
+19 30 20 0.610352 0.976074 0.597168
+19 30 21 0.616699 0.979492 0.654785
+19 30 22 0.62207 0.980957 0.709473
+19 30 23 0.625977 0.97998 0.758789
+19 30 24 0.628418 0.976562 0.804199
+19 30 25 0.629883 0.969727 0.848633
+19 30 26 0.629395 0.959473 0.89209
+19 30 27 0.626953 0.944824 0.933105
+19 30 28 0.62207 0.925293 0.970215
+19 30 29 0.614258 0.901367 1
+19 30 30 0.604492 0.872559 1
+19 30 31 0.592285 0.839844 1
+19 31 0 0.564941 0.952148 0.352051
+19 31 1 0.564941 0.952148 0.352051
+19 31 2 0.564941 0.952148 0.352051
+19 31 3 0.564941 0.952148 0.352051
+19 31 4 0.564941 0.952148 0.352051
+19 31 5 0.564941 0.952148 0.352051
+19 31 6 0.564941 0.952148 0.352051
+19 31 7 0.564941 0.952148 0.352051
+19 31 8 0.564941 0.952148 0.352051
+19 31 9 0.564941 0.952148 0.352051
+19 31 10 0.56543 0.952148 0.352051
+19 31 11 0.56543 0.952148 0.352051
+19 31 12 0.56543 0.952148 0.352051
+19 31 13 0.56543 0.952637 0.352051
+19 31 14 0.56543 0.952637 0.352051
+19 31 15 0.565918 0.952637 0.352295
+19 31 16 0.566406 0.952637 0.352295
+19 31 17 0.570801 0.95752 0.400391
+19 31 18 0.576172 0.962891 0.453857
+19 31 19 0.58252 0.968262 0.509277
+19 31 20 0.588867 0.973633 0.563965
+19 31 21 0.595215 0.978027 0.618164
+19 31 22 0.601074 0.980957 0.670898
+19 31 23 0.605957 0.981934 0.719238
+19 31 24 0.609863 0.980957 0.763672
+19 31 25 0.612793 0.977539 0.808594
+19 31 26 0.614746 0.970703 0.853027
+19 31 27 0.614746 0.959961 0.896484
+19 31 28 0.612793 0.945312 0.9375
+19 31 29 0.60791 0.925293 0.974609
+19 31 30 0.601074 0.900879 1
+19 31 31 0.591797 0.871582 1
+20 0 0 0.702148 0.519531 0
+20 0 1 0.702148 0.519531 0
+20 0 2 0.702148 0.519531 0
+20 0 3 0.702148 0.519531 0
+20 0 4 0.702148 0.519531 0
+20 0 5 0.702148 0.519531 0
+20 0 6 0.702148 0.519531 0
+20 0 7 0.702148 0.519531 0
+20 0 8 0.702148 0.52002 0
+20 0 9 0.702148 0.52002 0
+20 0 10 0.702148 0.52002 0
+20 0 11 0.702637 0.520508 0
+20 0 12 0.702637 0.520996 0
+20 0 13 0.701172 0.52002 0
+20 0 14 0.703613 0.521484 0.235596
+20 0 15 0.718262 0.532227 0.347656
+20 0 16 0.735352 0.544922 0.452148
+20 0 17 0.768066 0.575684 0.569824
+20 0 18 0.802734 0.611816 0.685547
+20 0 19 0.813477 0.625488 0.775879
+20 0 20 0.802734 0.617676 0.841797
+20 0 21 0.785645 0.60498 0.89502
+20 0 22 0.760742 0.585449 0.930664
+20 0 23 0.730957 0.562988 0.950684
+20 0 24 0.701172 0.540527 0.960938
+20 0 25 0.67041 0.516602 0.966309
+20 0 26 0.640137 0.493652 0.969238
+20 0 27 0.611328 0.471924 0.970215
+20 0 28 0.585449 0.451904 0.97168
+20 0 29 0.562012 0.434326 0.974121
+20 0 30 0.541992 0.418945 0.977539
+20 0 31 0.524414 0.405762 0.982422
+20 1 0 0.702148 0.519531 0
+20 1 1 0.702148 0.519531 0
+20 1 2 0.702148 0.519531 0
+20 1 3 0.702148 0.519531 0
+20 1 4 0.702148 0.519531 0
+20 1 5 0.702148 0.519531 0
+20 1 6 0.702148 0.519531 0
+20 1 7 0.702148 0.519531 0
+20 1 8 0.702148 0.52002 0
+20 1 9 0.702148 0.52002 0
+20 1 10 0.702148 0.52002 0
+20 1 11 0.702637 0.520508 0
+20 1 12 0.702637 0.520996 0
+20 1 13 0.701172 0.52002 0
+20 1 14 0.703613 0.521484 0.235596
+20 1 15 0.718262 0.532227 0.347656
+20 1 16 0.735352 0.544922 0.452148
+20 1 17 0.768066 0.575684 0.569824
+20 1 18 0.802734 0.611816 0.685547
+20 1 19 0.813477 0.625488 0.775879
+20 1 20 0.802734 0.617676 0.841797
+20 1 21 0.785645 0.60498 0.89502
+20 1 22 0.760742 0.585449 0.930664
+20 1 23 0.730957 0.562988 0.950684
+20 1 24 0.701172 0.540527 0.960938
+20 1 25 0.67041 0.516602 0.966309
+20 1 26 0.640137 0.493652 0.969238
+20 1 27 0.611328 0.471924 0.970215
+20 1 28 0.585449 0.451904 0.97168
+20 1 29 0.562012 0.434326 0.974121
+20 1 30 0.541992 0.418945 0.977539
+20 1 31 0.524414 0.405762 0.982422
+20 2 0 0.702148 0.519531 0
+20 2 1 0.702148 0.519531 0
+20 2 2 0.702148 0.519531 0
+20 2 3 0.702148 0.519531 0
+20 2 4 0.702148 0.519531 0
+20 2 5 0.702148 0.519531 0
+20 2 6 0.702148 0.519531 0
+20 2 7 0.702148 0.519531 0
+20 2 8 0.702148 0.52002 0
+20 2 9 0.702148 0.52002 0
+20 2 10 0.702148 0.52002 0
+20 2 11 0.702637 0.520508 0
+20 2 12 0.702637 0.520996 0
+20 2 13 0.701172 0.52002 0
+20 2 14 0.703613 0.521484 0.235596
+20 2 15 0.718262 0.532227 0.347656
+20 2 16 0.735352 0.544922 0.452148
+20 2 17 0.768066 0.575684 0.569824
+20 2 18 0.802734 0.611816 0.685547
+20 2 19 0.813477 0.625488 0.775879
+20 2 20 0.802734 0.617676 0.841797
+20 2 21 0.785645 0.60498 0.89502
+20 2 22 0.760742 0.585449 0.930664
+20 2 23 0.730957 0.562988 0.950684
+20 2 24 0.701172 0.540527 0.960938
+20 2 25 0.67041 0.516602 0.966309
+20 2 26 0.640137 0.493652 0.969238
+20 2 27 0.611328 0.471924 0.970215
+20 2 28 0.585449 0.451904 0.97168
+20 2 29 0.562012 0.434326 0.974121
+20 2 30 0.541992 0.418945 0.977539
+20 2 31 0.524414 0.405762 0.982422
+20 3 0 0.702148 0.519531 0
+20 3 1 0.702148 0.519531 0
+20 3 2 0.702148 0.519531 0
+20 3 3 0.702148 0.519531 0
+20 3 4 0.702148 0.519531 0
+20 3 5 0.702148 0.519531 0
+20 3 6 0.702148 0.519531 0
+20 3 7 0.702148 0.52002 0
+20 3 8 0.702148 0.52002 0
+20 3 9 0.702148 0.52002 0
+20 3 10 0.702148 0.52002 0
+20 3 11 0.702637 0.520508 0
+20 3 12 0.702637 0.520996 0
+20 3 13 0.701172 0.520508 0
+20 3 14 0.703613 0.521484 0.235596
+20 3 15 0.718262 0.532227 0.347656
+20 3 16 0.735352 0.544922 0.452148
+20 3 17 0.768066 0.575684 0.569824
+20 3 18 0.802734 0.611816 0.685547
+20 3 19 0.813477 0.625488 0.775879
+20 3 20 0.802734 0.617676 0.841797
+20 3 21 0.785645 0.60498 0.89502
+20 3 22 0.760742 0.585938 0.930664
+20 3 23 0.730957 0.562988 0.950684
+20 3 24 0.701172 0.540527 0.960938
+20 3 25 0.67041 0.516602 0.966309
+20 3 26 0.640137 0.493652 0.969238
+20 3 27 0.611328 0.471924 0.970215
+20 3 28 0.585449 0.451904 0.97168
+20 3 29 0.562012 0.434326 0.974121
+20 3 30 0.541992 0.418945 0.977539
+20 3 31 0.524414 0.405762 0.982422
+20 4 0 0.702148 0.519531 0
+20 4 1 0.702148 0.519531 0
+20 4 2 0.702148 0.519531 0
+20 4 3 0.702148 0.52002 0
+20 4 4 0.702148 0.52002 0
+20 4 5 0.702148 0.52002 0
+20 4 6 0.702148 0.52002 0
+20 4 7 0.702148 0.52002 0
+20 4 8 0.702148 0.52002 0
+20 4 9 0.702148 0.52002 0
+20 4 10 0.702148 0.520508 0
+20 4 11 0.702637 0.520996 0
+20 4 12 0.702637 0.520996 0
+20 4 13 0.701172 0.520508 0
+20 4 14 0.703613 0.521484 0.235596
+20 4 15 0.718262 0.532227 0.347656
+20 4 16 0.735352 0.544922 0.452148
+20 4 17 0.768066 0.575684 0.569824
+20 4 18 0.802734 0.611816 0.685547
+20 4 19 0.813477 0.625488 0.775879
+20 4 20 0.802734 0.617676 0.841797
+20 4 21 0.785645 0.60498 0.89502
+20 4 22 0.760742 0.585938 0.930664
+20 4 23 0.730957 0.562988 0.950684
+20 4 24 0.701172 0.540527 0.960938
+20 4 25 0.67041 0.516602 0.966309
+20 4 26 0.640137 0.493652 0.969238
+20 4 27 0.611328 0.471924 0.970215
+20 4 28 0.585449 0.452148 0.97168
+20 4 29 0.562012 0.434326 0.974121
+20 4 30 0.541992 0.418945 0.977539
+20 4 31 0.524414 0.405762 0.982422
+20 5 0 0.702148 0.52002 0
+20 5 1 0.702148 0.52002 0
+20 5 2 0.702148 0.52002 0
+20 5 3 0.702148 0.52002 0
+20 5 4 0.702148 0.52002 0
+20 5 5 0.702148 0.52002 0
+20 5 6 0.702148 0.52002 0
+20 5 7 0.702148 0.52002 0
+20 5 8 0.702148 0.52002 0
+20 5 9 0.702148 0.52002 0
+20 5 10 0.702637 0.520508 0
+20 5 11 0.702637 0.520996 0
+20 5 12 0.702637 0.521484 0
+20 5 13 0.701172 0.520508 0
+20 5 14 0.703613 0.521484 0.235596
+20 5 15 0.718262 0.532227 0.347656
+20 5 16 0.735352 0.544922 0.452148
+20 5 17 0.768066 0.575684 0.569824
+20 5 18 0.802734 0.612305 0.685547
+20 5 19 0.813477 0.625488 0.775879
+20 5 20 0.802734 0.618164 0.841797
+20 5 21 0.785645 0.60498 0.89502
+20 5 22 0.760742 0.585938 0.930664
+20 5 23 0.730957 0.562988 0.950684
+20 5 24 0.701172 0.540527 0.960938
+20 5 25 0.67041 0.51709 0.966309
+20 5 26 0.640137 0.493652 0.969238
+20 5 27 0.611328 0.471924 0.970215
+20 5 28 0.585449 0.452148 0.97168
+20 5 29 0.562012 0.434326 0.974121
+20 5 30 0.541992 0.418945 0.977539
+20 5 31 0.524414 0.405762 0.982422
+20 6 0 0.702148 0.52002 0
+20 6 1 0.702148 0.52002 0
+20 6 2 0.702148 0.52002 0
+20 6 3 0.702148 0.52002 0
+20 6 4 0.702148 0.52002 0
+20 6 5 0.702148 0.52002 0
+20 6 6 0.702148 0.52002 0
+20 6 7 0.702148 0.52002 0
+20 6 8 0.702148 0.52002 0
+20 6 9 0.702148 0.520508 0
+20 6 10 0.702637 0.520508 0
+20 6 11 0.702637 0.520996 0
+20 6 12 0.702637 0.521484 0
+20 6 13 0.701172 0.520508 0
+20 6 14 0.703613 0.521973 0.235596
+20 6 15 0.718262 0.532715 0.347656
+20 6 16 0.735352 0.544922 0.452148
+20 6 17 0.768066 0.576172 0.569824
+20 6 18 0.802734 0.612305 0.685547
+20 6 19 0.813477 0.625488 0.775879
+20 6 20 0.802734 0.618164 0.841797
+20 6 21 0.785645 0.60498 0.89502
+20 6 22 0.760742 0.585938 0.930664
+20 6 23 0.730957 0.563477 0.950684
+20 6 24 0.701172 0.540527 0.960938
+20 6 25 0.67041 0.51709 0.966309
+20 6 26 0.640137 0.493896 0.969238
+20 6 27 0.611328 0.471924 0.970215
+20 6 28 0.585449 0.452148 0.97168
+20 6 29 0.562012 0.43457 0.974121
+20 6 30 0.541992 0.419189 0.977539
+20 6 31 0.524414 0.405762 0.982422
+20 7 0 0.702148 0.520508 0
+20 7 1 0.702148 0.520508 0
+20 7 2 0.702148 0.520508 0
+20 7 3 0.702148 0.520508 0
+20 7 4 0.702148 0.520508 0
+20 7 5 0.702148 0.520508 0
+20 7 6 0.702637 0.520508 0
+20 7 7 0.702637 0.520508 0
+20 7 8 0.702637 0.520508 0
+20 7 9 0.702637 0.520996 0
+20 7 10 0.702637 0.520996 0
+20 7 11 0.702637 0.521484 0
+20 7 12 0.702637 0.521973 0
+20 7 13 0.701172 0.520996 0
+20 7 14 0.703613 0.521973 0.235718
+20 7 15 0.718262 0.532715 0.347656
+20 7 16 0.735352 0.54541 0.452148
+20 7 17 0.768066 0.576172 0.569824
+20 7 18 0.802734 0.612305 0.685547
+20 7 19 0.813477 0.625977 0.775879
+20 7 20 0.802734 0.618164 0.841797
+20 7 21 0.785645 0.605469 0.89502
+20 7 22 0.760742 0.585938 0.930664
+20 7 23 0.730957 0.563477 0.950684
+20 7 24 0.701172 0.540527 0.960938
+20 7 25 0.67041 0.51709 0.966309
+20 7 26 0.640137 0.493896 0.969238
+20 7 27 0.611328 0.472168 0.970215
+20 7 28 0.585449 0.452148 0.97168
+20 7 29 0.5625 0.43457 0.974121
+20 7 30 0.541992 0.419189 0.977539
+20 7 31 0.524414 0.406006 0.982422
+20 8 0 0.702637 0.521484 0
+20 8 1 0.702637 0.521484 0
+20 8 2 0.702637 0.521484 0
+20 8 3 0.702637 0.521484 0
+20 8 4 0.702637 0.521484 0
+20 8 5 0.702637 0.521484 0
+20 8 6 0.702637 0.521484 0
+20 8 7 0.702637 0.521484 0
+20 8 8 0.702637 0.521484 0
+20 8 9 0.702637 0.521484 0
+20 8 10 0.703125 0.521973 0
+20 8 11 0.703125 0.522461 0
+20 8 12 0.703125 0.522461 0
+20 8 13 0.70166 0.521973 0
+20 8 14 0.704102 0.522949 0.23584
+20 8 15 0.718262 0.533691 0.347656
+20 8 16 0.735352 0.545898 0.452148
+20 8 17 0.768066 0.57666 0.569824
+20 8 18 0.802734 0.612793 0.685059
+20 8 19 0.813477 0.626465 0.775879
+20 8 20 0.803223 0.618652 0.841797
+20 8 21 0.785645 0.605957 0.89502
+20 8 22 0.760742 0.586426 0.930664
+20 8 23 0.730957 0.563965 0.950684
+20 8 24 0.701172 0.541016 0.960938
+20 8 25 0.67041 0.517578 0.966309
+20 8 26 0.640137 0.494385 0.969238
+20 8 27 0.611328 0.472412 0.970215
+20 8 28 0.585449 0.452393 0.97168
+20 8 29 0.5625 0.434814 0.974121
+20 8 30 0.541992 0.419434 0.977539
+20 8 31 0.524414 0.40625 0.982422
+20 9 0 0.703125 0.522949 0
+20 9 1 0.703125 0.522949 0
+20 9 2 0.703125 0.522949 0
+20 9 3 0.703125 0.522949 0
+20 9 4 0.703125 0.522949 0
+20 9 5 0.703125 0.522949 0
+20 9 6 0.703125 0.522949 0
+20 9 7 0.703125 0.522949 0
+20 9 8 0.703125 0.522949 0
+20 9 9 0.703125 0.522949 0
+20 9 10 0.703613 0.523438 0
+20 9 11 0.703613 0.523926 0
+20 9 12 0.703613 0.523926 0
+20 9 13 0.702148 0.522949 0
+20 9 14 0.704102 0.523926 0.236084
+20 9 15 0.71875 0.534668 0.347412
+20 9 16 0.735352 0.546875 0.451904
+20 9 17 0.768066 0.577148 0.569336
+20 9 18 0.802734 0.61377 0.685059
+20 9 19 0.813477 0.626953 0.775879
+20 9 20 0.803223 0.619629 0.841797
+20 9 21 0.786133 0.606445 0.89502
+20 9 22 0.760742 0.587402 0.930664
+20 9 23 0.730957 0.564453 0.950684
+20 9 24 0.701172 0.541504 0.960938
+20 9 25 0.67041 0.518066 0.966797
+20 9 26 0.640137 0.494873 0.969238
+20 9 27 0.611328 0.4729 0.970215
+20 9 28 0.585449 0.452881 0.97168
+20 9 29 0.5625 0.435303 0.974121
+20 9 30 0.541992 0.419922 0.977539
+20 9 31 0.524414 0.406494 0.98291
+20 10 0 0.704102 0.525391 0
+20 10 1 0.704102 0.525391 0
+20 10 2 0.704102 0.525391 0
+20 10 3 0.704102 0.525391 0
+20 10 4 0.704102 0.525391 0
+20 10 5 0.704102 0.525391 0
+20 10 6 0.704102 0.525391 0
+20 10 7 0.704102 0.525391 0
+20 10 8 0.704102 0.525391 0
+20 10 9 0.704102 0.525879 0
+20 10 10 0.70459 0.525879 0
+20 10 11 0.70459 0.526367 0
+20 10 12 0.70459 0.526855 0
+20 10 13 0.702637 0.525879 0
+20 10 14 0.705078 0.526367 0.236572
+20 10 15 0.719238 0.536621 0.347412
+20 10 16 0.73584 0.548828 0.451904
+20 10 17 0.768066 0.578613 0.569336
+20 10 18 0.802734 0.615234 0.685059
+20 10 19 0.813965 0.628906 0.775879
+20 10 20 0.803223 0.621094 0.841797
+20 10 21 0.786133 0.60791 0.89502
+20 10 22 0.760742 0.588867 0.930664
+20 10 23 0.731445 0.565918 0.950684
+20 10 24 0.701172 0.542969 0.960938
+20 10 25 0.67041 0.519043 0.966797
+20 10 26 0.640137 0.49585 0.969238
+20 10 27 0.611816 0.473877 0.970703
+20 10 28 0.585449 0.453857 0.97168
+20 10 29 0.5625 0.436035 0.974121
+20 10 30 0.54248 0.420654 0.978027
+20 10 31 0.524902 0.407227 0.98291
+20 11 0 0.706055 0.530273 0
+20 11 1 0.706055 0.530273 0
+20 11 2 0.706055 0.530273 0
+20 11 3 0.706055 0.530273 0
+20 11 4 0.706055 0.530273 0
+20 11 5 0.706055 0.530273 0
+20 11 6 0.706055 0.530273 0
+20 11 7 0.706055 0.530273 0
+20 11 8 0.706055 0.530273 0
+20 11 9 0.706055 0.530273 0
+20 11 10 0.706055 0.530762 0
+20 11 11 0.706543 0.53125 0
+20 11 12 0.706543 0.531738 0
+20 11 13 0.70459 0.530273 0.042511
+20 11 14 0.706543 0.530762 0.237793
+20 11 15 0.719727 0.540527 0.347168
+20 11 16 0.736328 0.552734 0.451904
+20 11 17 0.767578 0.581055 0.568359
+20 11 18 0.802734 0.617676 0.68457
+20 11 19 0.813965 0.631348 0.775879
+20 11 20 0.803711 0.624023 0.841797
+20 11 21 0.786621 0.61084 0.89502
+20 11 22 0.76123 0.591309 0.931152
+20 11 23 0.731445 0.568359 0.950684
+20 11 24 0.70166 0.544922 0.960938
+20 11 25 0.670898 0.520996 0.966797
+20 11 26 0.640625 0.497559 0.969238
+20 11 27 0.611816 0.475586 0.970703
+20 11 28 0.585938 0.455322 0.972168
+20 11 29 0.5625 0.4375 0.974609
+20 11 30 0.54248 0.421875 0.978027
+20 11 31 0.524902 0.408447 0.98291
+20 12 0 0.708984 0.538086 0
+20 12 1 0.708984 0.538086 0
+20 12 2 0.708984 0.538086 0
+20 12 3 0.708984 0.538086 0
+20 12 4 0.708984 0.538086 0
+20 12 5 0.708984 0.538086 0
+20 12 6 0.708984 0.538086 0
+20 12 7 0.708984 0.538086 0
+20 12 8 0.708984 0.538574 0
+20 12 9 0.708984 0.538574 0
+20 12 10 0.709473 0.538574 0
+20 12 11 0.709473 0.539062 0
+20 12 12 0.709473 0.539551 0
+20 12 13 0.70752 0.538086 0.0734253
+20 12 14 0.709473 0.538574 0.240234
+20 12 15 0.72168 0.546875 0.347412
+20 12 16 0.737793 0.558594 0.451904
+20 12 17 0.76709 0.585449 0.567383
+20 12 18 0.802246 0.621582 0.684082
+20 12 19 0.814453 0.63623 0.775879
+20 12 20 0.804199 0.628418 0.842285
+20 12 21 0.787109 0.615234 0.895508
+20 12 22 0.761719 0.595215 0.931152
+20 12 23 0.731934 0.572266 0.951172
+20 12 24 0.70166 0.54834 0.961426
+20 12 25 0.670898 0.524414 0.966797
+20 12 26 0.640625 0.500488 0.969238
+20 12 27 0.612305 0.478271 0.970703
+20 12 28 0.585938 0.458008 0.972168
+20 12 29 0.562988 0.439941 0.974609
+20 12 30 0.542969 0.424072 0.978516
+20 12 31 0.525391 0.4104 0.983398
+20 13 0 0.714355 0.55127 0
+20 13 1 0.714355 0.55127 0
+20 13 2 0.714355 0.55127 0
+20 13 3 0.714355 0.55127 0
+20 13 4 0.714355 0.55127 0
+20 13 5 0.714355 0.551758 0
+20 13 6 0.714355 0.551758 0
+20 13 7 0.714355 0.551758 0
+20 13 8 0.714355 0.551758 0
+20 13 9 0.714844 0.551758 0
+20 13 10 0.714844 0.552246 0
+20 13 11 0.714844 0.552246 0
+20 13 12 0.715332 0.553223 0
+20 13 13 0.712891 0.55127 0.104248
+20 13 14 0.715332 0.551758 0.245361
+20 13 15 0.724609 0.557617 0.348389
+20 13 16 0.740234 0.568848 0.452637
+20 13 17 0.766602 0.592285 0.56543
+20 13 18 0.801758 0.628418 0.683105
+20 13 19 0.814941 0.643555 0.775879
+20 13 20 0.804688 0.63623 0.842285
+20 13 21 0.787598 0.62207 0.895508
+20 13 22 0.762207 0.602051 0.931152
+20 13 23 0.732422 0.578125 0.951172
+20 13 24 0.702148 0.554199 0.961426
+20 13 25 0.671387 0.529785 0.966797
+20 13 26 0.641113 0.505859 0.969727
+20 13 27 0.612793 0.48291 0.971191
+20 13 28 0.586914 0.462402 0.972656
+20 13 29 0.563477 0.443848 0.975098
+20 13 30 0.543457 0.427734 0.979004
+20 13 31 0.525879 0.413818 0.984375
+20 14 0 0.723633 0.572754 0
+20 14 1 0.723633 0.572754 0
+20 14 2 0.723633 0.572754 0
+20 14 3 0.723633 0.572754 0
+20 14 4 0.723633 0.572754 0
+20 14 5 0.723633 0.572754 0
+20 14 6 0.723633 0.572754 0
+20 14 7 0.723633 0.572754 0
+20 14 8 0.723633 0.572754 0
+20 14 9 0.724121 0.572754 0
+20 14 10 0.724121 0.573242 0
+20 14 11 0.724121 0.57373 0
+20 14 12 0.724609 0.574219 0
+20 14 13 0.722168 0.572266 0.140503
+20 14 14 0.724609 0.572266 0.255859
+20 14 15 0.730957 0.575684 0.352051
+20 14 16 0.745117 0.585938 0.455078
+20 14 17 0.765625 0.603027 0.562988
+20 14 18 0.800781 0.638184 0.681152
+20 14 19 0.815918 0.655273 0.775879
+20 14 20 0.806152 0.647461 0.842773
+20 14 21 0.789062 0.633301 0.895996
+20 14 22 0.763184 0.612305 0.931641
+20 14 23 0.733398 0.587891 0.951172
+20 14 24 0.703125 0.562988 0.961426
+20 14 25 0.672363 0.538086 0.966797
+20 14 26 0.64209 0.513184 0.969727
+20 14 27 0.61377 0.48999 0.97168
+20 14 28 0.587891 0.468994 0.973145
+20 14 29 0.564453 0.450195 0.976074
+20 14 30 0.544434 0.433594 0.97998
+20 14 31 0.526855 0.419189 0.985352
+20 15 0 0.73877 0.604492 0
+20 15 1 0.73877 0.604492 0
+20 15 2 0.73877 0.604492 0
+20 15 3 0.73877 0.604492 0
+20 15 4 0.73877 0.604492 0
+20 15 5 0.73877 0.604492 0
+20 15 6 0.73877 0.604492 0
+20 15 7 0.73877 0.604492 0
+20 15 8 0.73877 0.604492 0
+20 15 9 0.73877 0.604492 0
+20 15 10 0.73877 0.60498 0
+20 15 11 0.739258 0.60498 0
+20 15 12 0.739746 0.605957 0
+20 15 13 0.73877 0.604492 0.183716
+20 15 14 0.740234 0.604492 0.275391
+20 15 15 0.742676 0.604492 0.361816
+20 15 16 0.75 0.60791 0.456299
+20 15 17 0.765625 0.620117 0.560059
+20 15 18 0.79834 0.651855 0.677246
+20 15 19 0.816895 0.671875 0.775391
+20 15 20 0.807617 0.664062 0.842773
+20 15 21 0.790527 0.649414 0.896484
+20 15 22 0.764648 0.627441 0.931641
+20 15 23 0.734375 0.602051 0.951172
+20 15 24 0.704102 0.576172 0.961426
+20 15 25 0.67334 0.550293 0.967285
+20 15 26 0.643066 0.524902 0.970215
+20 15 27 0.614746 0.500977 0.972168
+20 15 28 0.589355 0.479004 0.974609
+20 15 29 0.566406 0.459473 0.977539
+20 15 30 0.546387 0.442139 0.981934
+20 15 31 0.528809 0.427002 0.987305
+20 16 0 0.762207 0.649414 0.172485
+20 16 1 0.762207 0.649414 0.172485
+20 16 2 0.762207 0.649414 0.172485
+20 16 3 0.762207 0.649414 0.172485
+20 16 4 0.762207 0.649414 0.172485
+20 16 5 0.762207 0.649414 0.172485
+20 16 6 0.762207 0.649414 0.172485
+20 16 7 0.762207 0.649414 0.172485
+20 16 8 0.762207 0.649414 0.172607
+20 16 9 0.762207 0.649414 0.172852
+20 16 10 0.762207 0.649902 0.173096
+20 16 11 0.762695 0.650391 0.173706
+20 16 12 0.762695 0.650879 0.174683
+20 16 13 0.763184 0.650391 0.233276
+20 16 14 0.762695 0.649414 0.306641
+20 16 15 0.762207 0.647461 0.382568
+20 16 16 0.762207 0.644531 0.465088
+20 16 17 0.77002 0.648926 0.561035
+20 16 18 0.792969 0.669922 0.669922
+20 16 19 0.816895 0.694336 0.773926
+20 16 20 0.809082 0.6875 0.842773
+20 16 21 0.79248 0.671875 0.896484
+20 16 22 0.766113 0.648438 0.931641
+20 16 23 0.73584 0.621582 0.950684
+20 16 24 0.705566 0.594727 0.960938
+20 16 25 0.674805 0.567383 0.967285
+20 16 26 0.64502 0.541016 0.970703
+20 16 27 0.616699 0.516113 0.973633
+20 16 28 0.591309 0.493164 0.976562
+20 16 29 0.568848 0.472656 0.97998
+20 16 30 0.548828 0.45459 0.984863
+20 16 31 0.53125 0.438477 0.990234
+20 17 0 0.790039 0.70459 0.247681
+20 17 1 0.790039 0.70459 0.247681
+20 17 2 0.790039 0.70459 0.247681
+20 17 3 0.790039 0.70459 0.247681
+20 17 4 0.790039 0.70459 0.247681
+20 17 5 0.790039 0.70459 0.247681
+20 17 6 0.790039 0.70459 0.247681
+20 17 7 0.790039 0.70459 0.247803
+20 17 8 0.790039 0.70459 0.247803
+20 17 9 0.790039 0.705078 0.247925
+20 17 10 0.790039 0.705078 0.248047
+20 17 11 0.790039 0.705078 0.248291
+20 17 12 0.790527 0.706055 0.248779
+20 17 13 0.790527 0.706055 0.282471
+20 17 14 0.790527 0.705078 0.344482
+20 17 15 0.789551 0.703125 0.41333
+20 17 16 0.785645 0.697754 0.487793
+20 17 17 0.779785 0.689941 0.566406
+20 17 18 0.787109 0.693848 0.660645
+20 17 19 0.81543 0.72168 0.77002
+20 17 20 0.810547 0.716797 0.841309
+20 17 21 0.793945 0.700195 0.895508
+20 17 22 0.767578 0.674805 0.930176
+20 17 23 0.736816 0.645996 0.949219
+20 17 24 0.707031 0.618164 0.959961
+20 17 25 0.676758 0.589844 0.966797
+20 17 26 0.647461 0.5625 0.97168
+20 17 27 0.620117 0.536621 0.975586
+20 17 28 0.594727 0.512695 0.979492
+20 17 29 0.572266 0.490723 0.983887
+20 17 30 0.552246 0.471436 0.98877
+20 17 31 0.534668 0.454102 0.994629
+20 18 0 0.813477 0.762207 0.299561
+20 18 1 0.813477 0.762207 0.299561
+20 18 2 0.813477 0.762207 0.299561
+20 18 3 0.813477 0.762207 0.299561
+20 18 4 0.813477 0.762207 0.299561
+20 18 5 0.813477 0.762207 0.299561
+20 18 6 0.813477 0.762207 0.299561
+20 18 7 0.813477 0.762207 0.299561
+20 18 8 0.813477 0.762207 0.299561
+20 18 9 0.813477 0.762207 0.299561
+20 18 10 0.813477 0.762207 0.299561
+20 18 11 0.813965 0.762695 0.299805
+20 18 12 0.813965 0.762695 0.300049
+20 18 13 0.814453 0.763184 0.319336
+20 18 14 0.814941 0.763672 0.376709
+20 18 15 0.814941 0.762695 0.442871
+20 18 16 0.812988 0.759766 0.516113
+20 18 17 0.805664 0.750977 0.590332
+20 18 18 0.792969 0.736328 0.662598
+20 18 19 0.807129 0.748047 0.758789
+20 18 20 0.811035 0.750488 0.838379
+20 18 21 0.794434 0.73291 0.89209
+20 18 22 0.767578 0.705566 0.92627
+20 18 23 0.737793 0.675293 0.946289
+20 18 24 0.708496 0.646484 0.958496
+20 18 25 0.679688 0.617676 0.967285
+20 18 26 0.651367 0.588867 0.973633
+20 18 27 0.624512 0.562012 0.979004
+20 18 28 0.599609 0.536621 0.983887
+20 18 29 0.577637 0.513672 0.989258
+20 18 30 0.557129 0.492676 0.994629
+20 18 31 0.539551 0.473633 1
+20 19 0 0.827148 0.814453 0.329834
+20 19 1 0.827148 0.814453 0.329834
+20 19 2 0.827148 0.814453 0.329834
+20 19 3 0.827148 0.814453 0.329834
+20 19 4 0.827148 0.814453 0.329834
+20 19 5 0.827148 0.814453 0.329834
+20 19 6 0.827148 0.814453 0.329834
+20 19 7 0.827148 0.814453 0.329834
+20 19 8 0.827148 0.814453 0.329834
+20 19 9 0.827148 0.814453 0.329834
+20 19 10 0.827148 0.814941 0.329834
+20 19 11 0.827148 0.814941 0.329834
+20 19 12 0.827637 0.81543 0.330078
+20 19 13 0.827637 0.81543 0.337158
+20 19 14 0.828125 0.815918 0.392334
+20 19 15 0.828613 0.81543 0.45752
+20 19 16 0.82959 0.814941 0.532227
+20 19 17 0.827148 0.811035 0.610352
+20 19 18 0.819336 0.80127 0.685547
+20 19 19 0.801758 0.78125 0.749023
+20 19 20 0.80957 0.786133 0.83252
+20 19 21 0.79248 0.766602 0.885254
+20 19 22 0.766113 0.737793 0.919922
+20 19 23 0.738281 0.708008 0.942383
+20 19 24 0.711426 0.679199 0.95752
+20 19 25 0.684082 0.649902 0.96875
+20 19 26 0.657227 0.620605 0.978027
+20 19 27 0.631348 0.592773 0.985352
+20 19 28 0.606934 0.565918 0.991211
+20 19 29 0.584473 0.541016 0.99707
+20 19 30 0.563965 0.518066 1
+20 19 31 0.54541 0.496826 1
+20 20 0 0.829102 0.858398 0.344727
+20 20 1 0.829102 0.858398 0.344727
+20 20 2 0.829102 0.858398 0.344727
+20 20 3 0.829102 0.858398 0.344727
+20 20 4 0.829102 0.858398 0.344727
+20 20 5 0.829102 0.858398 0.344727
+20 20 6 0.829102 0.858398 0.344727
+20 20 7 0.829102 0.858398 0.344727
+20 20 8 0.829102 0.858398 0.344727
+20 20 9 0.829102 0.858398 0.344727
+20 20 10 0.829102 0.858398 0.344727
+20 20 11 0.829102 0.858398 0.344727
+20 20 12 0.829102 0.858887 0.344727
+20 20 13 0.82959 0.858887 0.344971
+20 20 14 0.830566 0.859375 0.394043
+20 20 15 0.831543 0.859375 0.458496
+20 20 16 0.831543 0.858398 0.532227
+20 20 17 0.831055 0.855469 0.61084
+20 20 18 0.827637 0.849609 0.689453
+20 20 19 0.819824 0.838867 0.762695
+20 20 20 0.806152 0.821289 0.824219
+20 20 21 0.789062 0.800293 0.875977
+20 20 22 0.766113 0.772949 0.914551
+20 20 23 0.741211 0.744629 0.940918
+20 20 24 0.716309 0.71582 0.958984
+20 20 25 0.69043 0.686035 0.972656
+20 20 26 0.664062 0.655762 0.983398
+20 20 27 0.638184 0.625488 0.991211
+20 20 28 0.613281 0.59668 0.99707
+20 20 29 0.590332 0.569336 1
+20 20 30 0.568848 0.543945 1
+20 20 31 0.549805 0.520508 1
+20 21 0 0.817871 0.888672 0.352539
+20 21 1 0.817871 0.888672 0.352539
+20 21 2 0.817871 0.888672 0.352539
+20 21 3 0.817871 0.888672 0.352539
+20 21 4 0.817871 0.888672 0.352539
+20 21 5 0.817871 0.888672 0.352539
+20 21 6 0.817871 0.888672 0.352539
+20 21 7 0.817871 0.888672 0.352539
+20 21 8 0.817871 0.888672 0.352539
+20 21 9 0.817871 0.888672 0.352539
+20 21 10 0.817871 0.888672 0.352539
+20 21 11 0.817871 0.88916 0.352539
+20 21 12 0.817871 0.88916 0.352539
+20 21 13 0.817871 0.88916 0.352783
+20 21 14 0.818848 0.889648 0.387939
+20 21 15 0.820312 0.890137 0.450684
+20 21 16 0.820801 0.88916 0.522949
+20 21 17 0.820312 0.886719 0.599609
+20 21 18 0.816895 0.879883 0.676758
+20 21 19 0.809082 0.868164 0.747559
+20 21 20 0.799805 0.854004 0.812012
+20 21 21 0.791016 0.84082 0.872559
+20 21 22 0.772461 0.816406 0.916016
+20 21 23 0.748047 0.786621 0.943359
+20 21 24 0.724121 0.756836 0.962891
+20 21 25 0.698242 0.725586 0.978027
+20 21 26 0.672363 0.693848 0.989258
+20 21 27 0.645996 0.661621 0.997559
+20 21 28 0.621094 0.630371 1
+20 21 29 0.597168 0.600586 1
+20 21 30 0.575684 0.572754 1
+20 21 31 0.555664 0.546875 1
+20 22 0 0.797852 0.908203 0.356201
+20 22 1 0.797852 0.908203 0.356201
+20 22 2 0.797852 0.908203 0.356201
+20 22 3 0.797852 0.908203 0.356201
+20 22 4 0.797852 0.908203 0.356201
+20 22 5 0.797852 0.908203 0.356201
+20 22 6 0.797852 0.908203 0.356201
+20 22 7 0.797852 0.908203 0.356201
+20 22 8 0.797852 0.908203 0.356201
+20 22 9 0.797852 0.908203 0.356201
+20 22 10 0.797852 0.908203 0.356201
+20 22 11 0.79834 0.908203 0.356445
+20 22 12 0.79834 0.908203 0.356445
+20 22 13 0.79834 0.908691 0.356445
+20 22 14 0.798828 0.90918 0.377686
+20 22 15 0.800293 0.909668 0.437988
+20 22 16 0.801758 0.909668 0.507812
+20 22 17 0.802246 0.907227 0.58252
+20 22 18 0.800293 0.901855 0.658203
+20 22 19 0.795898 0.893555 0.72998
+20 22 20 0.791016 0.883789 0.797363
+20 22 21 0.78418 0.871582 0.858887
+20 22 22 0.773926 0.855469 0.911133
+20 22 23 0.757324 0.832031 0.948242
+20 22 24 0.735352 0.803223 0.971191
+20 22 25 0.709961 0.770508 0.987793
+20 22 26 0.683594 0.736328 0.999512
+20 22 27 0.657227 0.70166 1
+20 22 28 0.631348 0.667969 1
+20 22 29 0.606934 0.635254 1
+20 22 30 0.583984 0.604492 1
+20 22 31 0.563477 0.575684 1
+20 23 0 0.776367 0.921387 0.358154
+20 23 1 0.776367 0.921387 0.358154
+20 23 2 0.776367 0.921387 0.358154
+20 23 3 0.776367 0.921387 0.358154
+20 23 4 0.776367 0.921387 0.358154
+20 23 5 0.776367 0.921387 0.358154
+20 23 6 0.776367 0.921387 0.358154
+20 23 7 0.776367 0.921387 0.358154
+20 23 8 0.776367 0.921387 0.358154
+20 23 9 0.776367 0.921387 0.358154
+20 23 10 0.776367 0.921387 0.358398
+20 23 11 0.776855 0.921387 0.358398
+20 23 12 0.776855 0.921387 0.358398
+20 23 13 0.776855 0.921875 0.358398
+20 23 14 0.777344 0.922363 0.366699
+20 23 15 0.779297 0.92334 0.424561
+20 23 16 0.78125 0.923828 0.491943
+20 23 17 0.783203 0.92334 0.564941
+20 23 18 0.783203 0.92041 0.639648
+20 23 19 0.782227 0.915039 0.712402
+20 23 20 0.779785 0.908203 0.780273
+20 23 21 0.775391 0.897949 0.842773
+20 23 22 0.767578 0.883301 0.896973
+20 23 23 0.756836 0.865723 0.940918
+20 23 24 0.741699 0.843262 0.972656
+20 23 25 0.720703 0.813477 0.994629
+20 23 26 0.695801 0.778809 1
+20 23 27 0.669434 0.742676 1
+20 23 28 0.643066 0.706543 1
+20 23 29 0.617676 0.671387 1
+20 23 30 0.59375 0.637695 1
+20 23 31 0.571777 0.605957 1
+20 24 0 0.755859 0.931641 0.359375
+20 24 1 0.755859 0.931641 0.359375
+20 24 2 0.755859 0.931641 0.359375
+20 24 3 0.755859 0.931641 0.359375
+20 24 4 0.755859 0.931641 0.359375
+20 24 5 0.755859 0.931641 0.359375
+20 24 6 0.755859 0.931641 0.359375
+20 24 7 0.755859 0.931641 0.359375
+20 24 8 0.755859 0.931641 0.359375
+20 24 9 0.755859 0.931641 0.359375
+20 24 10 0.755859 0.931641 0.359375
+20 24 11 0.755859 0.931641 0.359619
+20 24 12 0.755859 0.931641 0.359619
+20 24 13 0.755859 0.931641 0.359619
+20 24 14 0.756348 0.932129 0.359619
+20 24 15 0.758301 0.933594 0.411621
+20 24 16 0.76123 0.935059 0.476562
+20 24 17 0.76416 0.936035 0.547852
+20 24 18 0.766602 0.935547 0.621582
+20 24 19 0.767578 0.932617 0.693848
+20 24 20 0.767578 0.927734 0.762207
+20 24 21 0.765137 0.919434 0.825195
+20 24 22 0.759277 0.907227 0.880371
+20 24 23 0.750977 0.891602 0.92627
+20 24 24 0.740723 0.873535 0.963867
+20 24 25 0.725098 0.849121 0.994141
+20 24 26 0.704102 0.817871 1
+20 24 27 0.679688 0.782227 1
+20 24 28 0.653809 0.744629 1
+20 24 29 0.628418 0.70752 1
+20 24 30 0.604004 0.671387 1
+20 24 31 0.581055 0.636719 1
+20 25 0 0.734863 0.94043 0.360596
+20 25 1 0.734863 0.94043 0.360596
+20 25 2 0.734863 0.94043 0.360596
+20 25 3 0.734863 0.94043 0.360596
+20 25 4 0.734863 0.94043 0.360596
+20 25 5 0.734863 0.94043 0.360596
+20 25 6 0.734863 0.94043 0.360596
+20 25 7 0.734863 0.94043 0.360596
+20 25 8 0.734863 0.94043 0.360596
+20 25 9 0.734863 0.940918 0.360596
+20 25 10 0.734863 0.940918 0.360596
+20 25 11 0.734863 0.940918 0.360596
+20 25 12 0.734863 0.940918 0.360596
+20 25 13 0.734863 0.940918 0.360596
+20 25 14 0.734863 0.940918 0.360596
+20 25 15 0.737305 0.942383 0.397949
+20 25 16 0.740723 0.944824 0.460449
+20 25 17 0.744141 0.947266 0.529297
+20 25 18 0.748047 0.948242 0.601562
+20 25 19 0.750977 0.947754 0.672852
+20 25 20 0.75293 0.945312 0.740723
+20 25 21 0.751953 0.938965 0.804199
+20 25 22 0.748535 0.928711 0.860352
+20 25 23 0.742676 0.915527 0.908203
+20 25 24 0.734375 0.899414 0.947754
+20 25 25 0.723633 0.879395 0.983398
+20 25 26 0.708008 0.853516 1
+20 25 27 0.6875 0.820312 1
+20 25 28 0.663574 0.783691 1
+20 25 29 0.638672 0.745605 1
+20 25 30 0.614258 0.70752 1
+20 25 31 0.59082 0.670898 1
+20 26 0 0.713379 0.94873 0.361328
+20 26 1 0.713379 0.94873 0.361328
+20 26 2 0.713379 0.94873 0.361328
+20 26 3 0.713379 0.94873 0.361328
+20 26 4 0.713379 0.94873 0.361328
+20 26 5 0.713379 0.94873 0.361328
+20 26 6 0.713379 0.94873 0.361328
+20 26 7 0.713379 0.94873 0.361328
+20 26 8 0.713379 0.94873 0.361328
+20 26 9 0.713379 0.94873 0.361328
+20 26 10 0.713379 0.949219 0.361328
+20 26 11 0.713379 0.949219 0.361328
+20 26 12 0.713379 0.949219 0.361328
+20 26 13 0.713379 0.949219 0.361328
+20 26 14 0.713867 0.949219 0.361572
+20 26 15 0.715332 0.950684 0.384033
+20 26 16 0.71875 0.953613 0.443604
+20 26 17 0.723633 0.956543 0.509766
+20 26 18 0.728027 0.959473 0.57959
+20 26 19 0.732422 0.960938 0.649902
+20 26 20 0.73584 0.959961 0.716797
+20 26 21 0.736816 0.956055 0.779785
+20 26 22 0.735352 0.948242 0.836914
+20 26 23 0.731934 0.9375 0.885742
+20 26 24 0.726074 0.923828 0.927734
+20 26 25 0.717285 0.90625 0.96582
+20 26 26 0.706055 0.883789 1
+20 26 27 0.689941 0.855469 1
+20 26 28 0.669922 0.821777 1
+20 26 29 0.647461 0.78418 1
+20 26 30 0.623535 0.745605 1
+20 26 31 0.600098 0.707031 1
+20 27 0 0.691406 0.956055 0.361816
+20 27 1 0.691406 0.956055 0.361816
+20 27 2 0.691406 0.956055 0.361816
+20 27 3 0.691406 0.956055 0.361816
+20 27 4 0.691406 0.956055 0.361816
+20 27 5 0.691406 0.956055 0.361816
+20 27 6 0.691406 0.956055 0.361816
+20 27 7 0.691406 0.956055 0.361816
+20 27 8 0.691406 0.956055 0.361816
+20 27 9 0.691895 0.956055 0.361816
+20 27 10 0.691895 0.956055 0.361816
+20 27 11 0.691895 0.956055 0.361816
+20 27 12 0.691895 0.956055 0.361816
+20 27 13 0.691895 0.956055 0.362061
+20 27 14 0.691895 0.956543 0.362061
+20 27 15 0.692871 0.957031 0.369873
+20 27 16 0.696777 0.960449 0.426514
+20 27 17 0.70166 0.964355 0.489746
+20 27 18 0.707031 0.968262 0.556641
+20 27 19 0.711914 0.970703 0.624512
+20 27 20 0.716309 0.97168 0.689941
+20 27 21 0.719238 0.969727 0.752441
+20 27 22 0.719727 0.964844 0.80957
+20 27 23 0.718262 0.956543 0.859863
+20 27 24 0.714844 0.945312 0.902832
+20 27 25 0.708984 0.930176 0.943359
+20 27 26 0.699707 0.910645 0.980469
+20 27 27 0.687988 0.88623 1
+20 27 28 0.671875 0.855957 1
+20 27 29 0.652344 0.820801 1
+20 27 30 0.630371 0.782715 1
+20 27 31 0.608398 0.743652 1
+20 28 0 0.669922 0.961426 0.362061
+20 28 1 0.669922 0.961426 0.362061
+20 28 2 0.669922 0.961426 0.362061
+20 28 3 0.669922 0.961426 0.362061
+20 28 4 0.669922 0.961426 0.362061
+20 28 5 0.669922 0.961426 0.362061
+20 28 6 0.669922 0.961426 0.362061
+20 28 7 0.669922 0.961426 0.362061
+20 28 8 0.669922 0.961426 0.362061
+20 28 9 0.669922 0.961426 0.362061
+20 28 10 0.669922 0.961426 0.362061
+20 28 11 0.669922 0.961426 0.362061
+20 28 12 0.669922 0.961426 0.362061
+20 28 13 0.669922 0.961426 0.362061
+20 28 14 0.67041 0.961426 0.362061
+20 28 15 0.67041 0.961914 0.362061
+20 28 16 0.673828 0.964844 0.408691
+20 28 17 0.679199 0.969238 0.46875
+20 28 18 0.68457 0.973633 0.532715
+20 28 19 0.69043 0.977539 0.597656
+20 28 20 0.695801 0.97998 0.661133
+20 28 21 0.699707 0.97998 0.722168
+20 28 22 0.702148 0.977539 0.779297
+20 28 23 0.702637 0.97168 0.82959
+20 28 24 0.701172 0.962891 0.874023
+20 28 25 0.697266 0.950684 0.916504
+20 28 26 0.690918 0.934082 0.956055
+20 28 27 0.681641 0.912598 0.991699
+20 28 28 0.668945 0.885742 1
+20 28 29 0.652832 0.853516 1
+20 28 30 0.634277 0.817871 1
+20 28 31 0.61377 0.779297 1
+20 29 0 0.647461 0.964355 0.361328
+20 29 1 0.647461 0.964355 0.361328
+20 29 2 0.647461 0.964355 0.361328
+20 29 3 0.647461 0.964355 0.361328
+20 29 4 0.647461 0.964355 0.361328
+20 29 5 0.647461 0.964355 0.361328
+20 29 6 0.647461 0.964355 0.361328
+20 29 7 0.647461 0.964355 0.361328
+20 29 8 0.647461 0.964355 0.361328
+20 29 9 0.647461 0.964355 0.361328
+20 29 10 0.647461 0.964355 0.361328
+20 29 11 0.647461 0.964355 0.361328
+20 29 12 0.647461 0.964355 0.361328
+20 29 13 0.647949 0.964355 0.361328
+20 29 14 0.647949 0.964355 0.361328
+20 29 15 0.647949 0.964355 0.361572
+20 29 16 0.650391 0.966797 0.390381
+20 29 17 0.655762 0.97168 0.446777
+20 29 18 0.661133 0.976562 0.507812
+20 29 19 0.66748 0.981445 0.569824
+20 29 20 0.67334 0.984863 0.630371
+20 29 21 0.678223 0.986816 0.689941
+20 29 22 0.681641 0.98584 0.745605
+20 29 23 0.684082 0.982422 0.795898
+20 29 24 0.684082 0.976562 0.84082
+20 29 25 0.682617 0.967285 0.884766
+20 29 26 0.679199 0.953613 0.926758
+20 29 27 0.672363 0.935059 0.964844
+20 29 28 0.662598 0.911621 0.998535
+20 29 29 0.650391 0.883789 1
+20 29 30 0.635254 0.851074 1
+20 29 31 0.617676 0.814941 1
+20 30 0 0.625 0.964355 0.359863
+20 30 1 0.625 0.964355 0.359863
+20 30 2 0.625 0.964355 0.359863
+20 30 3 0.625 0.964355 0.359863
+20 30 4 0.625 0.964355 0.359863
+20 30 5 0.625 0.964355 0.359863
+20 30 6 0.625 0.964355 0.359863
+20 30 7 0.625 0.964355 0.359863
+20 30 8 0.625 0.964355 0.359863
+20 30 9 0.625 0.964355 0.359863
+20 30 10 0.625 0.964355 0.359863
+20 30 11 0.625 0.964355 0.359863
+20 30 12 0.625 0.964355 0.359863
+20 30 13 0.625 0.964355 0.359863
+20 30 14 0.625 0.964355 0.359863
+20 30 15 0.625488 0.964355 0.359863
+20 30 16 0.626465 0.96582 0.371582
+20 30 17 0.631348 0.970215 0.424561
+20 30 18 0.637207 0.975586 0.481689
+20 30 19 0.643066 0.980957 0.540527
+20 30 20 0.649414 0.985352 0.598145
+20 30 21 0.654785 0.98877 0.655273
+20 30 22 0.659668 0.989746 0.709473
+20 30 23 0.663086 0.98877 0.759277
+20 30 24 0.665039 0.985352 0.804199
+20 30 25 0.665527 0.979004 0.848633
+20 30 26 0.664062 0.968262 0.89209
+20 30 27 0.660156 0.953613 0.933105
+20 30 28 0.653809 0.93457 0.970703
+20 30 29 0.64502 0.910156 1
+20 30 30 0.633301 0.881348 1
+20 30 31 0.619141 0.848145 1
+20 31 0 0.602539 0.962402 0.357666
+20 31 1 0.602539 0.962402 0.357666
+20 31 2 0.602539 0.962402 0.357666
+20 31 3 0.602539 0.962402 0.357666
+20 31 4 0.602539 0.962402 0.357666
+20 31 5 0.602539 0.962402 0.357666
+20 31 6 0.602539 0.962402 0.357666
+20 31 7 0.602539 0.962402 0.357666
+20 31 8 0.602539 0.962402 0.357666
+20 31 9 0.602539 0.962402 0.357666
+20 31 10 0.602539 0.962402 0.357666
+20 31 11 0.602539 0.962402 0.357666
+20 31 12 0.602539 0.962402 0.35791
+20 31 13 0.602539 0.962891 0.35791
+20 31 14 0.603027 0.962891 0.35791
+20 31 15 0.603027 0.962891 0.35791
+20 31 16 0.603516 0.962891 0.35791
+20 31 17 0.607422 0.966797 0.402344
+20 31 18 0.612793 0.972168 0.455566
+20 31 19 0.618652 0.977539 0.510742
+20 31 20 0.625 0.982422 0.564941
+20 31 21 0.630859 0.986816 0.619141
+20 31 22 0.63623 0.989258 0.671387
+20 31 23 0.640625 0.990234 0.719727
+20 31 24 0.643555 0.98877 0.76416
+20 31 25 0.645996 0.985352 0.808594
+20 31 26 0.646973 0.978516 0.853516
+20 31 27 0.645996 0.968262 0.896973
+20 31 28 0.642578 0.953125 0.9375
+20 31 29 0.636719 0.933105 0.975098
+20 31 30 0.628418 0.908691 1
+20 31 31 0.617188 0.878906 1
+21 0 0 0.758789 0.561035 0
+21 0 1 0.758789 0.561035 0
+21 0 2 0.758789 0.561035 0
+21 0 3 0.758789 0.561035 0
+21 0 4 0.758789 0.561035 0
+21 0 5 0.758789 0.561523 0
+21 0 6 0.758789 0.561523 0
+21 0 7 0.758789 0.561523 0
+21 0 8 0.758789 0.561523 0
+21 0 9 0.758789 0.561523 0
+21 0 10 0.758789 0.561523 0
+21 0 11 0.758789 0.562012 0
+21 0 12 0.759277 0.5625 0
+21 0 13 0.758789 0.5625 0
+21 0 14 0.759766 0.563477 0.182129
+21 0 15 0.766113 0.567383 0.312256
+21 0 16 0.775879 0.574219 0.419678
+21 0 17 0.794434 0.59082 0.52832
+21 0 18 0.828125 0.624023 0.644043
+21 0 19 0.854004 0.652832 0.748047
+21 0 20 0.855957 0.658203 0.824707
+21 0 21 0.842285 0.647949 0.882812
+21 0 22 0.822754 0.633301 0.928223
+21 0 23 0.797363 0.61377 0.958008
+21 0 24 0.768555 0.591797 0.975098
+21 0 25 0.736328 0.567383 0.984863
+21 0 26 0.703125 0.541992 0.990234
+21 0 27 0.67041 0.516602 0.992188
+21 0 28 0.63916 0.493164 0.992188
+21 0 29 0.61084 0.471436 0.992676
+21 0 30 0.585449 0.452148 0.994141
+21 0 31 0.562988 0.435059 0.996582
+21 1 0 0.758789 0.561035 0
+21 1 1 0.758789 0.561035 0
+21 1 2 0.758789 0.561035 0
+21 1 3 0.758789 0.561523 0
+21 1 4 0.758789 0.561523 0
+21 1 5 0.758789 0.561523 0
+21 1 6 0.758789 0.561523 0
+21 1 7 0.758789 0.561523 0
+21 1 8 0.758789 0.561523 0
+21 1 9 0.758789 0.561523 0
+21 1 10 0.758789 0.561523 0
+21 1 11 0.758789 0.562012 0
+21 1 12 0.759277 0.5625 0
+21 1 13 0.758789 0.5625 0
+21 1 14 0.759766 0.563477 0.182129
+21 1 15 0.766113 0.567383 0.312256
+21 1 16 0.775879 0.574219 0.419678
+21 1 17 0.794434 0.59082 0.52832
+21 1 18 0.828125 0.624023 0.644043
+21 1 19 0.854004 0.652832 0.748047
+21 1 20 0.855957 0.658203 0.824707
+21 1 21 0.842285 0.647949 0.882812
+21 1 22 0.822754 0.633301 0.928223
+21 1 23 0.797363 0.61377 0.958008
+21 1 24 0.768555 0.591797 0.975098
+21 1 25 0.736328 0.567383 0.984863
+21 1 26 0.703125 0.541992 0.990234
+21 1 27 0.67041 0.516602 0.992188
+21 1 28 0.63916 0.493164 0.992188
+21 1 29 0.61084 0.471436 0.992676
+21 1 30 0.585449 0.452148 0.994141
+21 1 31 0.562988 0.435059 0.996582
+21 2 0 0.758789 0.561523 0
+21 2 1 0.758789 0.561523 0
+21 2 2 0.758789 0.561523 0
+21 2 3 0.758789 0.561523 0
+21 2 4 0.758789 0.561523 0
+21 2 5 0.758789 0.561523 0
+21 2 6 0.758789 0.561523 0
+21 2 7 0.758789 0.561523 0
+21 2 8 0.758789 0.561523 0
+21 2 9 0.758789 0.561523 0
+21 2 10 0.758789 0.561523 0
+21 2 11 0.758789 0.562012 0
+21 2 12 0.759277 0.5625 0
+21 2 13 0.758789 0.5625 0
+21 2 14 0.759766 0.563477 0.182129
+21 2 15 0.766113 0.567383 0.312256
+21 2 16 0.775879 0.574219 0.419678
+21 2 17 0.794434 0.59082 0.52832
+21 2 18 0.828125 0.624023 0.644043
+21 2 19 0.854004 0.652832 0.748047
+21 2 20 0.855957 0.658203 0.824707
+21 2 21 0.842285 0.647949 0.882812
+21 2 22 0.822754 0.633301 0.928223
+21 2 23 0.797363 0.61377 0.958008
+21 2 24 0.768555 0.591797 0.975098
+21 2 25 0.736328 0.567383 0.984863
+21 2 26 0.703125 0.541992 0.990234
+21 2 27 0.67041 0.516602 0.992188
+21 2 28 0.63916 0.493164 0.992188
+21 2 29 0.61084 0.471436 0.992676
+21 2 30 0.585449 0.452148 0.994141
+21 2 31 0.562988 0.435059 0.996582
+21 3 0 0.758789 0.561523 0
+21 3 1 0.758789 0.561523 0
+21 3 2 0.758789 0.561523 0
+21 3 3 0.758789 0.561523 0
+21 3 4 0.758789 0.561523 0
+21 3 5 0.758789 0.561523 0
+21 3 6 0.758789 0.561523 0
+21 3 7 0.758789 0.561523 0
+21 3 8 0.758789 0.561523 0
+21 3 9 0.758789 0.561523 0
+21 3 10 0.758789 0.561523 0
+21 3 11 0.758789 0.562012 0
+21 3 12 0.759277 0.5625 0
+21 3 13 0.758789 0.5625 0
+21 3 14 0.759766 0.563477 0.182129
+21 3 15 0.766113 0.567383 0.312256
+21 3 16 0.775879 0.574219 0.419678
+21 3 17 0.794434 0.59082 0.52832
+21 3 18 0.828125 0.624023 0.644043
+21 3 19 0.854004 0.652832 0.748047
+21 3 20 0.855957 0.658203 0.824707
+21 3 21 0.842285 0.647949 0.882812
+21 3 22 0.822754 0.633301 0.928223
+21 3 23 0.797363 0.61377 0.958008
+21 3 24 0.768555 0.591797 0.975098
+21 3 25 0.736328 0.567383 0.984863
+21 3 26 0.703125 0.541992 0.990234
+21 3 27 0.67041 0.51709 0.992188
+21 3 28 0.63916 0.493164 0.992188
+21 3 29 0.61084 0.471436 0.992676
+21 3 30 0.585449 0.452148 0.994141
+21 3 31 0.562988 0.435059 0.996582
+21 4 0 0.758789 0.561523 0
+21 4 1 0.758789 0.561523 0
+21 4 2 0.758789 0.561523 0
+21 4 3 0.758789 0.561523 0
+21 4 4 0.758789 0.561523 0
+21 4 5 0.758789 0.561523 0
+21 4 6 0.758789 0.561523 0
+21 4 7 0.758789 0.561523 0
+21 4 8 0.758789 0.561523 0
+21 4 9 0.758789 0.561523 0
+21 4 10 0.758789 0.562012 0
+21 4 11 0.758789 0.562012 0
+21 4 12 0.759277 0.562988 0
+21 4 13 0.758789 0.5625 0
+21 4 14 0.759766 0.563477 0.182129
+21 4 15 0.766113 0.567383 0.312256
+21 4 16 0.775879 0.574219 0.419678
+21 4 17 0.794434 0.59082 0.52832
+21 4 18 0.828125 0.624023 0.644043
+21 4 19 0.854004 0.652832 0.748047
+21 4 20 0.855957 0.658203 0.824707
+21 4 21 0.842285 0.647949 0.882812
+21 4 22 0.822754 0.633301 0.928223
+21 4 23 0.797363 0.61377 0.958008
+21 4 24 0.768555 0.591797 0.975098
+21 4 25 0.736328 0.567383 0.984863
+21 4 26 0.703125 0.541992 0.990234
+21 4 27 0.67041 0.51709 0.992188
+21 4 28 0.63916 0.493164 0.992188
+21 4 29 0.61084 0.471436 0.992676
+21 4 30 0.585449 0.452148 0.994141
+21 4 31 0.562988 0.435059 0.996582
+21 5 0 0.758789 0.561523 0
+21 5 1 0.758789 0.561523 0
+21 5 2 0.758789 0.561523 0
+21 5 3 0.758789 0.561523 0
+21 5 4 0.758789 0.561523 0
+21 5 5 0.758789 0.561523 0
+21 5 6 0.758789 0.561523 0
+21 5 7 0.758789 0.561523 0
+21 5 8 0.758789 0.561523 0
+21 5 9 0.758789 0.561523 0
+21 5 10 0.758789 0.562012 0
+21 5 11 0.758789 0.562012 0
+21 5 12 0.759277 0.562988 0
+21 5 13 0.758789 0.5625 0
+21 5 14 0.759766 0.563477 0.182129
+21 5 15 0.766113 0.567383 0.312256
+21 5 16 0.775879 0.574707 0.419678
+21 5 17 0.794434 0.59082 0.52832
+21 5 18 0.828125 0.624023 0.644043
+21 5 19 0.854004 0.652832 0.748047
+21 5 20 0.855957 0.658203 0.824707
+21 5 21 0.842285 0.647949 0.882812
+21 5 22 0.822754 0.633301 0.928223
+21 5 23 0.797363 0.61377 0.958008
+21 5 24 0.768555 0.591797 0.975098
+21 5 25 0.736328 0.567383 0.984863
+21 5 26 0.703125 0.541992 0.990234
+21 5 27 0.67041 0.51709 0.992188
+21 5 28 0.63916 0.493164 0.992188
+21 5 29 0.61084 0.471436 0.992676
+21 5 30 0.585449 0.452148 0.994141
+21 5 31 0.562988 0.435059 0.996582
+21 6 0 0.758789 0.561523 0
+21 6 1 0.758789 0.561523 0
+21 6 2 0.758789 0.561523 0
+21 6 3 0.758789 0.561523 0
+21 6 4 0.758789 0.561523 0
+21 6 5 0.758789 0.561523 0
+21 6 6 0.758789 0.561523 0
+21 6 7 0.758789 0.561523 0
+21 6 8 0.758789 0.561523 0
+21 6 9 0.758789 0.562012 0
+21 6 10 0.758789 0.562012 0
+21 6 11 0.759277 0.5625 0
+21 6 12 0.759277 0.562988 0
+21 6 13 0.758789 0.562988 0
+21 6 14 0.759766 0.563477 0.182251
+21 6 15 0.766602 0.567871 0.312256
+21 6 16 0.775879 0.574707 0.419678
+21 6 17 0.794434 0.59082 0.52832
+21 6 18 0.828125 0.624023 0.644043
+21 6 19 0.854004 0.652832 0.748047
+21 6 20 0.855957 0.658203 0.824707
+21 6 21 0.842285 0.648438 0.882812
+21 6 22 0.822754 0.633301 0.928223
+21 6 23 0.797363 0.61377 0.958008
+21 6 24 0.768555 0.591797 0.975098
+21 6 25 0.736328 0.567383 0.984863
+21 6 26 0.703125 0.541992 0.990234
+21 6 27 0.67041 0.51709 0.992188
+21 6 28 0.63916 0.493164 0.992188
+21 6 29 0.61084 0.47168 0.992676
+21 6 30 0.585449 0.452148 0.994141
+21 6 31 0.562988 0.435059 0.996582
+21 7 0 0.758789 0.562012 0
+21 7 1 0.758789 0.562012 0
+21 7 2 0.758789 0.562012 0
+21 7 3 0.758789 0.562012 0
+21 7 4 0.758789 0.562012 0
+21 7 5 0.758789 0.562012 0
+21 7 6 0.758789 0.562012 0
+21 7 7 0.758789 0.562012 0
+21 7 8 0.758789 0.562012 0
+21 7 9 0.758789 0.562012 0
+21 7 10 0.758789 0.5625 0
+21 7 11 0.759277 0.562988 0
+21 7 12 0.759277 0.563477 0
+21 7 13 0.758789 0.562988 0
+21 7 14 0.759766 0.563965 0.182373
+21 7 15 0.766602 0.567871 0.312256
+21 7 16 0.775879 0.574707 0.419678
+21 7 17 0.794434 0.591309 0.52832
+21 7 18 0.827637 0.624023 0.644043
+21 7 19 0.854004 0.65332 0.748047
+21 7 20 0.855957 0.658691 0.824707
+21 7 21 0.842285 0.648438 0.882812
+21 7 22 0.822754 0.633789 0.928223
+21 7 23 0.797363 0.614258 0.958008
+21 7 24 0.768555 0.592285 0.975098
+21 7 25 0.736328 0.567871 0.984863
+21 7 26 0.703125 0.541992 0.990234
+21 7 27 0.67041 0.51709 0.992188
+21 7 28 0.63916 0.493408 0.992188
+21 7 29 0.61084 0.47168 0.992676
+21 7 30 0.585449 0.452393 0.994141
+21 7 31 0.562988 0.435303 0.996582
+21 8 0 0.759277 0.5625 0
+21 8 1 0.759277 0.5625 0
+21 8 2 0.759277 0.5625 0
+21 8 3 0.759277 0.5625 0
+21 8 4 0.759277 0.5625 0
+21 8 5 0.759277 0.5625 0
+21 8 6 0.759277 0.5625 0
+21 8 7 0.759277 0.5625 0
+21 8 8 0.759277 0.5625 0
+21 8 9 0.759277 0.562988 0
+21 8 10 0.759277 0.562988 0
+21 8 11 0.759277 0.563477 0
+21 8 12 0.759766 0.563965 0
+21 8 13 0.758789 0.563965 0
+21 8 14 0.760254 0.564453 0.182617
+21 8 15 0.766602 0.568359 0.312256
+21 8 16 0.776367 0.575684 0.419678
+21 8 17 0.794434 0.591309 0.527832
+21 8 18 0.827637 0.624512 0.644043
+21 8 19 0.854004 0.65332 0.748047
+21 8 20 0.855957 0.658691 0.824707
+21 8 21 0.842285 0.648926 0.882812
+21 8 22 0.822754 0.633789 0.928223
+21 8 23 0.797363 0.614258 0.958008
+21 8 24 0.768555 0.592285 0.975098
+21 8 25 0.736328 0.567871 0.984863
+21 8 26 0.703125 0.54248 0.990234
+21 8 27 0.67041 0.517578 0.992188
+21 8 28 0.63916 0.493652 0.992188
+21 8 29 0.61084 0.471924 0.992676
+21 8 30 0.585449 0.452393 0.994141
+21 8 31 0.562988 0.435303 0.996582
+21 9 0 0.759277 0.563965 0
+21 9 1 0.759277 0.563965 0
+21 9 2 0.759277 0.563965 0
+21 9 3 0.759277 0.563965 0
+21 9 4 0.759277 0.563965 0
+21 9 5 0.759277 0.563965 0
+21 9 6 0.759277 0.563965 0
+21 9 7 0.759277 0.563965 0
+21 9 8 0.759766 0.563965 0
+21 9 9 0.759766 0.563965 0
+21 9 10 0.759766 0.564453 0
+21 9 11 0.759766 0.564453 0
+21 9 12 0.760254 0.56543 0
+21 9 13 0.759277 0.564941 0
+21 9 14 0.760742 0.56543 0.183105
+21 9 15 0.766602 0.569336 0.312256
+21 9 16 0.776367 0.57666 0.419678
+21 9 17 0.794434 0.592285 0.527832
+21 9 18 0.827637 0.625 0.643555
+21 9 19 0.854004 0.654297 0.748047
+21 9 20 0.855957 0.659668 0.824707
+21 9 21 0.842285 0.649414 0.882812
+21 9 22 0.822754 0.634766 0.928223
+21 9 23 0.797363 0.615234 0.958008
+21 9 24 0.768555 0.593262 0.975098
+21 9 25 0.736328 0.568359 0.984863
+21 9 26 0.703125 0.542969 0.990234
+21 9 27 0.67041 0.517578 0.992188
+21 9 28 0.63916 0.494141 0.992188
+21 9 29 0.61084 0.472412 0.992676
+21 9 30 0.585449 0.452881 0.994141
+21 9 31 0.562988 0.435791 0.996582
+21 10 0 0.760254 0.565918 0
+21 10 1 0.760254 0.565918 0
+21 10 2 0.760254 0.565918 0
+21 10 3 0.760254 0.565918 0
+21 10 4 0.760254 0.565918 0
+21 10 5 0.760254 0.565918 0
+21 10 6 0.760254 0.565918 0
+21 10 7 0.760254 0.565918 0
+21 10 8 0.760254 0.566406 0
+21 10 9 0.760254 0.566406 0
+21 10 10 0.760254 0.566406 0
+21 10 11 0.760742 0.566895 0
+21 10 12 0.760742 0.567383 0
+21 10 13 0.760254 0.567383 0
+21 10 14 0.76123 0.567871 0.184082
+21 10 15 0.76709 0.571289 0.312256
+21 10 16 0.776855 0.578125 0.419922
+21 10 17 0.794434 0.59375 0.527344
+21 10 18 0.827637 0.626465 0.643555
+21 10 19 0.854004 0.655273 0.747559
+21 10 20 0.855957 0.661133 0.824707
+21 10 21 0.842773 0.650879 0.882812
+21 10 22 0.822754 0.635742 0.928223
+21 10 23 0.797363 0.616211 0.958008
+21 10 24 0.768555 0.594238 0.975098
+21 10 25 0.736328 0.569336 0.985352
+21 10 26 0.703125 0.543945 0.990234
+21 10 27 0.67041 0.518555 0.992188
+21 10 28 0.63916 0.494873 0.992676
+21 10 29 0.61084 0.4729 0.992676
+21 10 30 0.585449 0.453613 0.994141
+21 10 31 0.562988 0.436279 0.996582
+21 11 0 0.761719 0.569824 0
+21 11 1 0.761719 0.569824 0
+21 11 2 0.761719 0.569824 0
+21 11 3 0.761719 0.569824 0
+21 11 4 0.761719 0.569824 0
+21 11 5 0.761719 0.569824 0
+21 11 6 0.761719 0.569824 0
+21 11 7 0.761719 0.569824 0
+21 11 8 0.761719 0.570312 0
+21 11 9 0.761719 0.570312 0
+21 11 10 0.761719 0.570312 0
+21 11 11 0.762207 0.570801 0
+21 11 12 0.762207 0.571289 0
+21 11 13 0.761719 0.571289 0
+21 11 14 0.762207 0.571289 0.185791
+21 11 15 0.767578 0.574707 0.3125
+21 11 16 0.777832 0.581543 0.42041
+21 11 17 0.794434 0.595703 0.526855
+21 11 18 0.827148 0.62793 0.642578
+21 11 19 0.854004 0.657715 0.747559
+21 11 20 0.856445 0.663086 0.824707
+21 11 21 0.842773 0.65332 0.883301
+21 11 22 0.823242 0.638184 0.928711
+21 11 23 0.797852 0.618164 0.958008
+21 11 24 0.769043 0.596191 0.975098
+21 11 25 0.736816 0.571289 0.985352
+21 11 26 0.703613 0.54541 0.990234
+21 11 27 0.67041 0.52002 0.992188
+21 11 28 0.639648 0.496094 0.992676
+21 11 29 0.611328 0.474365 0.993164
+21 11 30 0.585449 0.454834 0.994141
+21 11 31 0.563477 0.4375 0.996582
+21 12 0 0.76416 0.57666 0
+21 12 1 0.76416 0.57666 0
+21 12 2 0.76416 0.57666 0
+21 12 3 0.76416 0.57666 0
+21 12 4 0.76416 0.57666 0
+21 12 5 0.76416 0.57666 0
+21 12 6 0.76416 0.57666 0
+21 12 7 0.76416 0.57666 0
+21 12 8 0.76416 0.57666 0
+21 12 9 0.76416 0.577148 0
+21 12 10 0.76416 0.577148 0
+21 12 11 0.764648 0.577637 0
+21 12 12 0.764648 0.578125 0
+21 12 13 0.763672 0.577637 0
+21 12 14 0.764648 0.577637 0.189331
+21 12 15 0.769043 0.580078 0.312988
+21 12 16 0.779297 0.587402 0.421143
+21 12 17 0.794434 0.599609 0.526367
+21 12 18 0.82666 0.631348 0.641602
+21 12 19 0.854004 0.661133 0.747559
+21 12 20 0.856934 0.666992 0.825195
+21 12 21 0.843262 0.656738 0.883301
+21 12 22 0.82373 0.641602 0.928711
+21 12 23 0.797852 0.621582 0.958008
+21 12 24 0.769043 0.599121 0.975098
+21 12 25 0.736816 0.574219 0.985352
+21 12 26 0.703613 0.54834 0.990234
+21 12 27 0.670898 0.522461 0.992188
+21 12 28 0.639648 0.498535 0.992676
+21 12 29 0.611328 0.476562 0.993164
+21 12 30 0.585938 0.456787 0.994629
+21 12 31 0.563477 0.439209 0.99707
+21 13 0 0.768066 0.587402 0
+21 13 1 0.768066 0.587402 0
+21 13 2 0.768066 0.587402 0
+21 13 3 0.768066 0.587402 0
+21 13 4 0.768066 0.587402 0
+21 13 5 0.768066 0.587891 0
+21 13 6 0.768066 0.587891 0
+21 13 7 0.768066 0.587891 0
+21 13 8 0.768066 0.587891 0
+21 13 9 0.768555 0.587891 0
+21 13 10 0.768555 0.587891 0
+21 13 11 0.768555 0.588379 0
+21 13 12 0.769043 0.588867 0
+21 13 13 0.768066 0.588379 0
+21 13 14 0.768066 0.587891 0.195923
+21 13 15 0.771484 0.589355 0.314697
+21 13 16 0.78125 0.596191 0.422363
+21 13 17 0.794434 0.606445 0.525391
+21 13 18 0.825195 0.636719 0.640137
+21 13 19 0.854004 0.666992 0.746582
+21 13 20 0.857422 0.67334 0.825195
+21 13 21 0.84375 0.663086 0.883789
+21 13 22 0.824219 0.647461 0.929199
+21 13 23 0.798828 0.627441 0.958496
+21 13 24 0.769531 0.604492 0.975586
+21 13 25 0.737305 0.579102 0.985352
+21 13 26 0.704102 0.552734 0.990234
+21 13 27 0.670898 0.526855 0.992188
+21 13 28 0.640137 0.502441 0.992676
+21 13 29 0.611816 0.47998 0.993652
+21 13 30 0.586426 0.459961 0.995117
+21 13 31 0.563965 0.442383 0.997559
+21 14 0 0.774902 0.60498 0
+21 14 1 0.774902 0.60498 0
+21 14 2 0.774902 0.60498 0
+21 14 3 0.774902 0.60498 0
+21 14 4 0.774902 0.60498 0
+21 14 5 0.774902 0.60498 0
+21 14 6 0.774902 0.60498 0
+21 14 7 0.774902 0.60498 0
+21 14 8 0.774902 0.60498 0
+21 14 9 0.775391 0.60498 0
+21 14 10 0.775391 0.605469 0
+21 14 11 0.775391 0.605469 0
+21 14 12 0.775879 0.606445 0
+21 14 13 0.774902 0.605469 0
+21 14 14 0.774414 0.604492 0.208374
+21 14 15 0.776367 0.604492 0.319092
+21 14 16 0.782715 0.608398 0.421631
+21 14 17 0.794922 0.617188 0.523926
+21 14 18 0.82373 0.644531 0.637207
+21 14 19 0.853516 0.675781 0.745605
+21 14 20 0.858398 0.683105 0.825195
+21 14 21 0.845215 0.672852 0.883789
+21 14 22 0.825195 0.656738 0.929688
+21 14 23 0.799316 0.63623 0.958496
+21 14 24 0.770508 0.612305 0.975586
+21 14 25 0.737793 0.586426 0.985352
+21 14 26 0.70459 0.55957 0.990234
+21 14 27 0.671875 0.533203 0.992188
+21 14 28 0.640625 0.508301 0.993164
+21 14 29 0.612305 0.485596 0.993652
+21 14 30 0.587402 0.465088 0.995605
+21 14 31 0.564941 0.447021 0.998535
+21 15 0 0.785645 0.630859 0
+21 15 1 0.785645 0.630859 0
+21 15 2 0.785645 0.630859 0
+21 15 3 0.785645 0.630859 0
+21 15 4 0.785645 0.630859 0
+21 15 5 0.785645 0.630859 0
+21 15 6 0.785645 0.630859 0
+21 15 7 0.785645 0.630859 0
+21 15 8 0.786133 0.630859 0
+21 15 9 0.786133 0.630859 0
+21 15 10 0.786133 0.631348 0
+21 15 11 0.786133 0.631348 0
+21 15 12 0.786621 0.632324 0
+21 15 13 0.785645 0.631348 0.045105
+21 15 14 0.785156 0.630371 0.22998
+21 15 15 0.785156 0.628418 0.328857
+21 15 16 0.787598 0.628418 0.424072
+21 15 17 0.797363 0.635254 0.524414
+21 15 18 0.820801 0.65625 0.632812
+21 15 19 0.852539 0.688477 0.743652
+21 15 20 0.859375 0.697754 0.825195
+21 15 21 0.846191 0.687012 0.884277
+21 15 22 0.82666 0.67041 0.929688
+21 15 23 0.800781 0.648926 0.958984
+21 15 24 0.771484 0.624512 0.975586
+21 15 25 0.73877 0.597656 0.985352
+21 15 26 0.705566 0.569824 0.990234
+21 15 27 0.672363 0.542969 0.992188
+21 15 28 0.641602 0.51709 0.993164
+21 15 29 0.61377 0.493896 0.994629
+21 15 30 0.588379 0.4729 0.996582
+21 15 31 0.565918 0.454346 0.999512
+21 16 0 0.802246 0.66748 0.100769
+21 16 1 0.802246 0.66748 0.100769
+21 16 2 0.802246 0.66748 0.100769
+21 16 3 0.802246 0.66748 0.100769
+21 16 4 0.802246 0.66748 0.100769
+21 16 5 0.802246 0.66748 0.10083
+21 16 6 0.802246 0.66748 0.10083
+21 16 7 0.802246 0.66748 0.100952
+21 16 8 0.802246 0.66748 0.101135
+21 16 9 0.802246 0.667969 0.101562
+21 16 10 0.802734 0.667969 0.102234
+21 16 11 0.802734 0.668457 0.103394
+21 16 12 0.803223 0.668945 0.105347
+21 16 13 0.803223 0.668945 0.165405
+21 16 14 0.802246 0.66748 0.263184
+21 16 15 0.800781 0.664551 0.348145
+21 16 16 0.798828 0.660645 0.433594
+21 16 17 0.802246 0.661621 0.525879
+21 16 18 0.817871 0.673828 0.627441
+21 16 19 0.849609 0.705078 0.739258
+21 16 20 0.860352 0.717285 0.824707
+21 16 21 0.848145 0.706543 0.884277
+21 16 22 0.828613 0.689453 0.930176
+21 16 23 0.802246 0.666504 0.958496
+21 16 24 0.772461 0.641113 0.975098
+21 16 25 0.739746 0.613281 0.984863
+21 16 26 0.706543 0.584473 0.989746
+21 16 27 0.673828 0.556641 0.992676
+21 16 28 0.643066 0.530273 0.994141
+21 16 29 0.615234 0.505859 0.995605
+21 16 30 0.590332 0.484131 0.998047
+21 16 31 0.567871 0.464844 1
+21 17 0 0.825195 0.715332 0.213501
+21 17 1 0.825195 0.715332 0.213501
+21 17 2 0.825195 0.715332 0.213501
+21 17 3 0.825195 0.715332 0.213501
+21 17 4 0.825195 0.715332 0.213501
+21 17 5 0.825195 0.715332 0.213501
+21 17 6 0.825195 0.715332 0.213623
+21 17 7 0.825195 0.715332 0.213623
+21 17 8 0.825195 0.715332 0.213623
+21 17 9 0.825195 0.715332 0.213745
+21 17 10 0.825195 0.71582 0.213989
+21 17 11 0.825684 0.71582 0.214355
+21 17 12 0.825684 0.716309 0.214966
+21 17 13 0.826172 0.716797 0.233521
+21 17 14 0.825195 0.715332 0.304443
+21 17 15 0.823242 0.712402 0.377686
+21 17 16 0.819336 0.707031 0.454346
+21 17 17 0.813965 0.700195 0.53418
+21 17 18 0.819336 0.702637 0.625488
+21 17 19 0.84375 0.724609 0.730957
+21 17 20 0.860352 0.742188 0.822754
+21 17 21 0.849609 0.731934 0.883789
+21 17 22 0.830078 0.713867 0.929199
+21 17 23 0.803223 0.689453 0.95752
+21 17 24 0.773438 0.662598 0.974121
+21 17 25 0.740723 0.633301 0.983887
+21 17 26 0.70752 0.603516 0.989258
+21 17 27 0.675293 0.574707 0.992676
+21 17 28 0.64502 0.547363 0.995117
+21 17 29 0.617676 0.521973 0.997559
+21 17 30 0.592773 0.499268 1
+21 17 31 0.570801 0.479004 1
+21 18 0 0.849121 0.769043 0.28125
+21 18 1 0.849121 0.769043 0.28125
+21 18 2 0.849121 0.769043 0.28125
+21 18 3 0.849121 0.769043 0.28125
+21 18 4 0.849121 0.769043 0.28125
+21 18 5 0.849121 0.769043 0.28125
+21 18 6 0.849121 0.769043 0.28125
+21 18 7 0.849121 0.769043 0.28125
+21 18 8 0.849121 0.769043 0.28125
+21 18 9 0.849121 0.769043 0.281494
+21 18 10 0.849121 0.769043 0.281494
+21 18 11 0.849609 0.769531 0.281738
+21 18 12 0.849609 0.769531 0.281982
+21 18 13 0.850098 0.770508 0.286377
+21 18 14 0.849609 0.769531 0.344971
+21 18 15 0.848633 0.768066 0.410889
+21 18 16 0.845703 0.76416 0.483154
+21 18 17 0.838379 0.755859 0.557129
+21 18 18 0.82959 0.744629 0.631348
+21 18 19 0.835938 0.748535 0.720215
+21 18 20 0.858398 0.770508 0.818359
+21 18 21 0.850098 0.761719 0.881348
+21 18 22 0.831055 0.742676 0.927246
+21 18 23 0.803711 0.716309 0.955078
+21 18 24 0.773926 0.687988 0.971191
+21 18 25 0.741699 0.657715 0.981445
+21 18 26 0.709473 0.626953 0.988281
+21 18 27 0.677734 0.59668 0.993164
+21 18 28 0.648438 0.568359 0.996582
+21 18 29 0.621094 0.54248 1
+21 18 30 0.59668 0.518555 1
+21 18 31 0.574707 0.496826 1
+21 19 0 0.868164 0.821777 0.326416
+21 19 1 0.868164 0.821777 0.326416
+21 19 2 0.868164 0.821777 0.326416
+21 19 3 0.868164 0.821777 0.326416
+21 19 4 0.868164 0.821777 0.326416
+21 19 5 0.868164 0.821777 0.326416
+21 19 6 0.868164 0.821777 0.326416
+21 19 7 0.868164 0.821777 0.326416
+21 19 8 0.868164 0.821777 0.326416
+21 19 9 0.868164 0.821777 0.326416
+21 19 10 0.868164 0.821777 0.32666
+21 19 11 0.868164 0.822266 0.32666
+21 19 12 0.868164 0.822266 0.326904
+21 19 13 0.868652 0.822754 0.327148
+21 19 14 0.869141 0.823242 0.374023
+21 19 15 0.869141 0.822754 0.436768
+21 19 16 0.868164 0.820801 0.507812
+21 19 17 0.864258 0.815918 0.58252
+21 19 18 0.854492 0.804688 0.654297
+21 19 19 0.84082 0.788574 0.720703
+21 19 20 0.851074 0.796387 0.807617
+21 19 21 0.849609 0.794434 0.877441
+21 19 22 0.830078 0.773438 0.922363
+21 19 23 0.802246 0.745117 0.949707
+21 19 24 0.772949 0.71582 0.966309
+21 19 25 0.742188 0.685059 0.978516
+21 19 26 0.711426 0.653809 0.987793
+21 19 27 0.681152 0.623047 0.994141
+21 19 28 0.652344 0.594238 0.999512
+21 19 29 0.625977 0.566895 1
+21 19 30 0.602051 0.541504 1
+21 19 31 0.580078 0.518555 1
+21 20 0 0.876953 0.868164 0.351562
+21 20 1 0.876953 0.868164 0.351562
+21 20 2 0.876953 0.868164 0.351562
+21 20 3 0.876953 0.868164 0.351562
+21 20 4 0.876953 0.868164 0.351562
+21 20 5 0.876953 0.868164 0.351562
+21 20 6 0.876953 0.868164 0.351562
+21 20 7 0.876953 0.868164 0.351562
+21 20 8 0.876953 0.868164 0.351562
+21 20 9 0.876953 0.868164 0.351562
+21 20 10 0.876953 0.868164 0.351562
+21 20 11 0.876953 0.868164 0.351562
+21 20 12 0.876953 0.868652 0.351807
+21 20 13 0.877441 0.868652 0.351807
+21 20 14 0.87793 0.869629 0.386475
+21 20 15 0.879395 0.870117 0.448242
+21 20 16 0.879883 0.869629 0.519531
+21 20 17 0.878906 0.867188 0.595703
+21 20 18 0.874023 0.860352 0.671387
+21 20 19 0.863281 0.847656 0.740234
+21 20 20 0.845215 0.827148 0.797363
+21 20 21 0.847168 0.82666 0.870605
+21 20 22 0.826172 0.803223 0.914062
+21 20 23 0.798828 0.773926 0.941406
+21 20 24 0.771973 0.745117 0.960938
+21 20 25 0.743652 0.714844 0.976074
+21 20 26 0.714844 0.684082 0.988281
+21 20 27 0.686523 0.65332 0.997559
+21 20 28 0.658691 0.623047 1
+21 20 29 0.632812 0.594727 1
+21 20 30 0.608398 0.567871 1
+21 20 31 0.586426 0.542969 1
+21 21 0 0.874023 0.904785 0.363281
+21 21 1 0.874023 0.904785 0.363281
+21 21 2 0.874023 0.904785 0.363281
+21 21 3 0.874023 0.904785 0.363281
+21 21 4 0.874023 0.904785 0.363281
+21 21 5 0.874023 0.904785 0.363281
+21 21 6 0.874023 0.904785 0.363281
+21 21 7 0.874023 0.904785 0.363281
+21 21 8 0.874023 0.904785 0.363281
+21 21 9 0.874023 0.904785 0.363281
+21 21 10 0.874023 0.904785 0.363281
+21 21 11 0.874023 0.904785 0.363281
+21 21 12 0.874023 0.904785 0.363281
+21 21 13 0.874023 0.905273 0.363525
+21 21 14 0.875 0.905762 0.385986
+21 21 15 0.876465 0.906738 0.446777
+21 21 16 0.87793 0.907227 0.51709
+21 21 17 0.878418 0.905762 0.593262
+21 21 18 0.875977 0.901367 0.67041
+21 21 19 0.869629 0.89209 0.743164
+21 21 20 0.858887 0.878418 0.807129
+21 21 21 0.842285 0.85791 0.86084
+21 21 22 0.820801 0.833008 0.90332
+21 21 23 0.797852 0.806152 0.935059
+21 21 24 0.773926 0.779297 0.958496
+21 21 25 0.748047 0.749512 0.977051
+21 21 26 0.720703 0.718262 0.991211
+21 21 27 0.692871 0.686035 1
+21 21 28 0.665039 0.654297 1
+21 21 29 0.638672 0.624023 1
+21 21 30 0.614258 0.594727 1
+21 21 31 0.59082 0.567383 1
+21 22 0 0.858887 0.927734 0.368408
+21 22 1 0.858887 0.927734 0.368408
+21 22 2 0.858887 0.927734 0.368408
+21 22 3 0.858887 0.927734 0.368408
+21 22 4 0.858887 0.927734 0.368408
+21 22 5 0.858887 0.927734 0.368408
+21 22 6 0.858887 0.927734 0.368408
+21 22 7 0.858887 0.927734 0.368408
+21 22 8 0.858887 0.927734 0.368408
+21 22 9 0.858887 0.928223 0.368408
+21 22 10 0.858887 0.928223 0.368408
+21 22 11 0.858887 0.928223 0.368652
+21 22 12 0.858887 0.928223 0.368652
+21 22 13 0.858887 0.928223 0.368652
+21 22 14 0.859375 0.928711 0.378906
+21 22 15 0.861328 0.930176 0.437988
+21 22 16 0.862793 0.930664 0.506348
+21 22 17 0.86377 0.929688 0.581055
+21 22 18 0.862305 0.925781 0.65625
+21 22 19 0.856934 0.916992 0.728027
+21 22 20 0.84668 0.902832 0.791016
+21 22 21 0.834961 0.886719 0.848633
+21 22 22 0.824707 0.87207 0.901855
+21 22 23 0.804688 0.847656 0.937988
+21 22 24 0.780762 0.818848 0.961426
+21 22 25 0.754883 0.787598 0.980469
+21 22 26 0.728027 0.754883 0.995605
+21 22 27 0.700195 0.721191 1
+21 22 28 0.672363 0.6875 1
+21 22 29 0.645996 0.654785 1
+21 22 30 0.620605 0.623535 1
+21 22 31 0.597168 0.594238 1
+21 23 0 0.837402 0.941895 0.370361
+21 23 1 0.837402 0.941895 0.370361
+21 23 2 0.837402 0.941895 0.370361
+21 23 3 0.837402 0.941895 0.370361
+21 23 4 0.837402 0.941895 0.370361
+21 23 5 0.837402 0.941895 0.370361
+21 23 6 0.837402 0.941895 0.370361
+21 23 7 0.837402 0.941895 0.370361
+21 23 8 0.837402 0.941895 0.370361
+21 23 9 0.837402 0.941895 0.370361
+21 23 10 0.837402 0.941895 0.370361
+21 23 11 0.837402 0.941895 0.370361
+21 23 12 0.837402 0.941895 0.370605
+21 23 13 0.837402 0.941895 0.370605
+21 23 14 0.837402 0.942383 0.370605
+21 23 15 0.839355 0.943359 0.425781
+21 23 16 0.841797 0.944336 0.491943
+21 23 17 0.843262 0.943848 0.563965
+21 23 18 0.842285 0.940918 0.637695
+21 23 19 0.838867 0.933594 0.708496
+21 23 20 0.832031 0.922852 0.772949
+21 23 21 0.825195 0.911133 0.833496
+21 23 22 0.816895 0.897949 0.888672
+21 23 23 0.806152 0.881836 0.933594
+21 23 24 0.789062 0.859375 0.96582
+21 23 25 0.765137 0.828613 0.988281
+21 23 26 0.738281 0.794922 1
+21 23 27 0.710449 0.759277 1
+21 23 28 0.682129 0.723145 1
+21 23 29 0.654785 0.687988 1
+21 23 30 0.628906 0.654297 1
+21 23 31 0.604492 0.62207 1
+21 24 0 0.81543 0.950684 0.371094
+21 24 1 0.81543 0.950684 0.371094
+21 24 2 0.81543 0.950684 0.371094
+21 24 3 0.81543 0.950684 0.371094
+21 24 4 0.81543 0.950684 0.371094
+21 24 5 0.81543 0.950684 0.371094
+21 24 6 0.81543 0.950684 0.371094
+21 24 7 0.81543 0.950684 0.371094
+21 24 8 0.81543 0.950684 0.371094
+21 24 9 0.81543 0.950684 0.371094
+21 24 10 0.81543 0.950684 0.371094
+21 24 11 0.81543 0.950684 0.371094
+21 24 12 0.81543 0.951172 0.371094
+21 24 13 0.81543 0.951172 0.371094
+21 24 14 0.81543 0.951172 0.371094
+21 24 15 0.816895 0.952637 0.41333
+21 24 16 0.819336 0.953613 0.477051
+21 24 17 0.821777 0.954102 0.546875
+21 24 18 0.822266 0.952637 0.619141
+21 24 19 0.821289 0.947754 0.689453
+21 24 20 0.818359 0.94043 0.755371
+21 24 21 0.813965 0.932129 0.817383
+21 24 22 0.808105 0.92041 0.873047
+21 24 23 0.799316 0.90625 0.919922
+21 24 24 0.788086 0.88916 0.958496
+21 24 25 0.770996 0.864746 0.989258
+21 24 26 0.747559 0.833008 1
+21 24 27 0.720703 0.796875 1
+21 24 28 0.692383 0.759766 1
+21 24 29 0.664551 0.722168 1
+21 24 30 0.637695 0.686035 1
+21 24 31 0.612305 0.651367 1
+21 25 0 0.791504 0.958496 0.371094
+21 25 1 0.791504 0.958496 0.371094
+21 25 2 0.791504 0.958496 0.371094
+21 25 3 0.791504 0.958496 0.371094
+21 25 4 0.791504 0.958496 0.371094
+21 25 5 0.791504 0.958496 0.371094
+21 25 6 0.791504 0.958496 0.371094
+21 25 7 0.791504 0.958496 0.371094
+21 25 8 0.791504 0.958496 0.371094
+21 25 9 0.791504 0.958496 0.371094
+21 25 10 0.791504 0.958496 0.371094
+21 25 11 0.791504 0.958496 0.371094
+21 25 12 0.791504 0.958496 0.371094
+21 25 13 0.791504 0.958496 0.371094
+21 25 14 0.791992 0.958496 0.371338
+21 25 15 0.792969 0.959961 0.400146
+21 25 16 0.795898 0.961426 0.461182
+21 25 17 0.798828 0.962891 0.528809
+21 25 18 0.80127 0.962891 0.599121
+21 25 19 0.802246 0.960938 0.668945
+21 25 20 0.802246 0.957031 0.734863
+21 25 21 0.800293 0.950684 0.797852
+21 25 22 0.796387 0.941406 0.854492
+21 25 23 0.789551 0.928711 0.902344
+21 25 24 0.780762 0.913574 0.942871
+21 25 25 0.769043 0.894043 0.97998
+21 25 26 0.751465 0.868164 1
+21 25 27 0.728516 0.834961 1
+21 25 28 0.702148 0.797852 1
+21 25 29 0.674805 0.759277 1
+21 25 30 0.647949 0.721191 1
+21 25 31 0.621582 0.684082 1
+21 26 0 0.76709 0.964844 0.371094
+21 26 1 0.76709 0.964844 0.371094
+21 26 2 0.76709 0.964844 0.371094
+21 26 3 0.76709 0.964844 0.371094
+21 26 4 0.76709 0.964844 0.371094
+21 26 5 0.76709 0.964844 0.371094
+21 26 6 0.76709 0.964844 0.371094
+21 26 7 0.767578 0.964844 0.371094
+21 26 8 0.767578 0.964844 0.371094
+21 26 9 0.767578 0.964844 0.371094
+21 26 10 0.767578 0.964844 0.371094
+21 26 11 0.767578 0.964844 0.371094
+21 26 12 0.767578 0.964844 0.371094
+21 26 13 0.767578 0.964844 0.371094
+21 26 14 0.767578 0.965332 0.371094
+21 26 15 0.768555 0.96582 0.38623
+21 26 16 0.771973 0.968262 0.444824
+21 26 17 0.775391 0.970703 0.509766
+21 26 18 0.778809 0.972656 0.578125
+21 26 19 0.781738 0.972656 0.646973
+21 26 20 0.783691 0.970703 0.712402
+21 26 21 0.78418 0.966797 0.774902
+21 26 22 0.782227 0.959473 0.832031
+21 26 23 0.777832 0.949219 0.881348
+21 26 24 0.770996 0.936523 0.92334
+21 26 25 0.761719 0.919434 0.962402
+21 26 26 0.749023 0.897461 0.997559
+21 26 27 0.731445 0.869629 1
+21 26 28 0.708496 0.835449 1
+21 26 29 0.683594 0.797363 1
+21 26 30 0.657227 0.758301 1
+21 26 31 0.630859 0.719238 1
+21 27 0 0.742676 0.970215 0.370605
+21 27 1 0.742676 0.970215 0.370605
+21 27 2 0.742676 0.970215 0.370605
+21 27 3 0.742676 0.970215 0.370605
+21 27 4 0.742676 0.970215 0.370605
+21 27 5 0.742676 0.970215 0.370605
+21 27 6 0.742676 0.970215 0.370605
+21 27 7 0.742676 0.970215 0.370605
+21 27 8 0.742676 0.970215 0.370605
+21 27 9 0.742676 0.970215 0.370605
+21 27 10 0.742676 0.970215 0.370605
+21 27 11 0.742676 0.970703 0.370605
+21 27 12 0.742676 0.970703 0.370605
+21 27 13 0.742676 0.970703 0.370605
+21 27 14 0.743164 0.970703 0.370605
+21 27 15 0.743164 0.970703 0.37207
+21 27 16 0.746582 0.973633 0.427734
+21 27 17 0.750977 0.977051 0.48999
+21 27 18 0.755371 0.97998 0.556152
+21 27 19 0.759766 0.981934 0.622559
+21 27 20 0.763184 0.982422 0.687012
+21 27 21 0.765137 0.980469 0.749023
+21 27 22 0.765137 0.975586 0.806152
+21 27 23 0.762695 0.967285 0.856445
+21 27 24 0.758301 0.956543 0.899902
+21 27 25 0.751465 0.941895 0.940918
+21 27 26 0.741211 0.922852 0.978516
+21 27 27 0.728027 0.898926 1
+21 27 28 0.709961 0.868652 1
+21 27 29 0.687988 0.833008 1
+21 27 30 0.664062 0.794922 1
+21 27 31 0.63916 0.755371 1
+21 28 0 0.717773 0.974609 0.369873
+21 28 1 0.717773 0.974609 0.369873
+21 28 2 0.717773 0.974609 0.369873
+21 28 3 0.717773 0.974609 0.369873
+21 28 4 0.717773 0.974609 0.369873
+21 28 5 0.717773 0.974609 0.369873
+21 28 6 0.717773 0.974609 0.369873
+21 28 7 0.717773 0.974609 0.369873
+21 28 8 0.717773 0.974609 0.369873
+21 28 9 0.717773 0.974609 0.369873
+21 28 10 0.717773 0.974609 0.369873
+21 28 11 0.717773 0.974609 0.369873
+21 28 12 0.717773 0.974609 0.369873
+21 28 13 0.717773 0.974609 0.369873
+21 28 14 0.718262 0.974609 0.369873
+21 28 15 0.718262 0.974609 0.370117
+21 28 16 0.721191 0.977539 0.4104
+21 28 17 0.725586 0.981445 0.469482
+21 28 18 0.730957 0.985352 0.532715
+21 28 19 0.73584 0.988281 0.597168
+21 28 20 0.740234 0.990234 0.659668
+21 28 21 0.743652 0.990234 0.720215
+21 28 22 0.745117 0.987305 0.776855
+21 28 23 0.745117 0.981934 0.827148
+21 28 24 0.742676 0.973633 0.871582
+21 28 25 0.738281 0.961426 0.914551
+21 28 26 0.730957 0.944824 0.95459
+21 28 27 0.720215 0.923828 0.990234
+21 28 28 0.706055 0.897461 1
+21 28 29 0.687988 0.865234 1
+21 28 30 0.666992 0.829102 1
+21 28 31 0.644043 0.790527 1
+21 29 0 0.692383 0.976562 0.368408
+21 29 1 0.692383 0.976562 0.368408
+21 29 2 0.692383 0.976562 0.368408
+21 29 3 0.692383 0.976562 0.368408
+21 29 4 0.692383 0.976562 0.368408
+21 29 5 0.692383 0.976562 0.368408
+21 29 6 0.692383 0.976562 0.368408
+21 29 7 0.692383 0.976562 0.368408
+21 29 8 0.692383 0.976562 0.368408
+21 29 9 0.692383 0.976562 0.368408
+21 29 10 0.692383 0.976562 0.368408
+21 29 11 0.692383 0.976562 0.368408
+21 29 12 0.692383 0.976562 0.368652
+21 29 13 0.692383 0.976562 0.368652
+21 29 14 0.692871 0.976562 0.368652
+21 29 15 0.692871 0.976562 0.368652
+21 29 16 0.694824 0.978516 0.392334
+21 29 17 0.699219 0.98291 0.448242
+21 29 18 0.70459 0.987305 0.508301
+21 29 19 0.710449 0.991699 0.569824
+21 29 20 0.715332 0.994629 0.629883
+21 29 21 0.719727 0.996094 0.688477
+21 29 22 0.723145 0.995605 0.744141
+21 29 23 0.724609 0.992188 0.794434
+21 29 24 0.724121 0.986328 0.839355
+21 29 25 0.72168 0.977051 0.883301
+21 29 26 0.716797 0.963867 0.925293
+21 29 27 0.708984 0.945312 0.963867
+21 29 28 0.698242 0.921875 0.998047
+21 29 29 0.684082 0.894043 1
+21 29 30 0.666992 0.861816 1
+21 29 31 0.647461 0.825195 1
+21 30 0 0.666504 0.975586 0.366455
+21 30 1 0.666504 0.975586 0.366455
+21 30 2 0.666504 0.975586 0.366455
+21 30 3 0.666504 0.975586 0.366455
+21 30 4 0.666504 0.975586 0.366455
+21 30 5 0.666504 0.975586 0.366455
+21 30 6 0.666504 0.975586 0.366455
+21 30 7 0.666504 0.975586 0.366455
+21 30 8 0.666504 0.975586 0.366455
+21 30 9 0.666504 0.975586 0.366455
+21 30 10 0.666504 0.975586 0.366455
+21 30 11 0.666504 0.975586 0.366455
+21 30 12 0.666504 0.975586 0.366455
+21 30 13 0.666504 0.975586 0.366455
+21 30 14 0.666992 0.975586 0.366455
+21 30 15 0.666992 0.975586 0.366455
+21 30 16 0.667969 0.976562 0.373779
+21 30 17 0.672363 0.980957 0.42627
+21 30 18 0.677734 0.98584 0.482666
+21 30 19 0.683594 0.990723 0.541016
+21 30 20 0.688965 0.995117 0.598633
+21 30 21 0.694336 0.998047 0.654785
+21 30 22 0.698242 0.999023 0.708984
+21 30 23 0.701172 0.997559 0.758301
+21 30 24 0.702637 0.994141 0.803223
+21 30 25 0.702148 0.987793 0.847656
+21 30 26 0.700195 0.977539 0.891113
+21 30 27 0.695312 0.962891 0.932617
+21 30 28 0.6875 0.943848 0.970215
+21 30 29 0.677246 0.919434 1
+21 30 30 0.663574 0.891113 1
+21 30 31 0.647461 0.85791 1
+21 31 0 0.641113 0.973145 0.36377
+21 31 1 0.641113 0.973145 0.36377
+21 31 2 0.641113 0.973145 0.36377
+21 31 3 0.641113 0.973145 0.36377
+21 31 4 0.641113 0.973145 0.36377
+21 31 5 0.641113 0.973145 0.36377
+21 31 6 0.641113 0.973145 0.36377
+21 31 7 0.641113 0.973145 0.36377
+21 31 8 0.641113 0.973145 0.36377
+21 31 9 0.641113 0.973145 0.36377
+21 31 10 0.641113 0.973145 0.36377
+21 31 11 0.641113 0.973145 0.36377
+21 31 12 0.641113 0.973145 0.36377
+21 31 13 0.641113 0.973145 0.36377
+21 31 14 0.641602 0.973145 0.36377
+21 31 15 0.641602 0.973145 0.36377
+21 31 16 0.641602 0.973145 0.364014
+21 31 17 0.645508 0.977051 0.404297
+21 31 18 0.650391 0.981934 0.457031
+21 31 19 0.65625 0.986816 0.511719
+21 31 20 0.661621 0.991699 0.565918
+21 31 21 0.66748 0.995605 0.619629
+21 31 22 0.672363 0.998047 0.671875
+21 31 23 0.67627 0.998535 0.719727
+21 31 24 0.678711 0.997559 0.763672
+21 31 25 0.680664 0.993652 0.808594
+21 31 26 0.680664 0.986816 0.853027
+21 31 27 0.678711 0.976562 0.896484
+21 31 28 0.674316 0.961426 0.9375
+21 31 29 0.66748 0.941406 0.975098
+21 31 30 0.657715 0.916992 1
+21 31 31 0.64502 0.887695 1
+22 0 0 0.804199 0.595215 0
+22 0 1 0.804199 0.595215 0
+22 0 2 0.804199 0.595215 0
+22 0 3 0.804199 0.595215 0
+22 0 4 0.804199 0.595215 0
+22 0 5 0.804199 0.595215 0
+22 0 6 0.804199 0.595215 0
+22 0 7 0.804199 0.595215 0
+22 0 8 0.804199 0.595215 0
+22 0 9 0.804199 0.595215 0
+22 0 10 0.804688 0.595215 0
+22 0 11 0.804688 0.595703 0
+22 0 12 0.804688 0.596191 0
+22 0 13 0.804688 0.59668 0
+22 0 14 0.804199 0.59668 0.0561523
+22 0 15 0.810547 0.600098 0.271973
+22 0 16 0.821289 0.608398 0.391602
+22 0 17 0.83252 0.616211 0.496338
+22 0 18 0.854492 0.637207 0.605957
+22 0 19 0.880859 0.666504 0.711914
+22 0 20 0.894531 0.68457 0.799316
+22 0 21 0.88916 0.683594 0.864746
+22 0 22 0.873535 0.671875 0.915527
+22 0 23 0.853027 0.656738 0.953613
+22 0 24 0.828613 0.637695 0.979492
+22 0 25 0.79834 0.614746 0.996582
+22 0 26 0.764648 0.588867 1
+22 0 27 0.729004 0.562012 1
+22 0 28 0.694336 0.535645 1
+22 0 29 0.661621 0.510254 1
+22 0 30 0.631348 0.487305 1
+22 0 31 0.604004 0.466309 1
+22 1 0 0.804199 0.595215 0
+22 1 1 0.804199 0.595215 0
+22 1 2 0.804199 0.595215 0
+22 1 3 0.804199 0.595215 0
+22 1 4 0.804199 0.595215 0
+22 1 5 0.804199 0.595215 0
+22 1 6 0.804199 0.595215 0
+22 1 7 0.804199 0.595215 0
+22 1 8 0.804199 0.595215 0
+22 1 9 0.804199 0.595215 0
+22 1 10 0.804688 0.595215 0
+22 1 11 0.804688 0.595703 0
+22 1 12 0.804688 0.596191 0
+22 1 13 0.804688 0.59668 0
+22 1 14 0.804199 0.59668 0.0561829
+22 1 15 0.810547 0.600098 0.271973
+22 1 16 0.821289 0.608398 0.391602
+22 1 17 0.83252 0.616211 0.496338
+22 1 18 0.854492 0.637207 0.605957
+22 1 19 0.880859 0.666504 0.711914
+22 1 20 0.894531 0.68457 0.799316
+22 1 21 0.88916 0.683594 0.864746
+22 1 22 0.873535 0.671875 0.915527
+22 1 23 0.853027 0.656738 0.953613
+22 1 24 0.828613 0.637695 0.979492
+22 1 25 0.79834 0.614746 0.996582
+22 1 26 0.764648 0.588867 1
+22 1 27 0.729004 0.562012 1
+22 1 28 0.694336 0.535645 1
+22 1 29 0.661621 0.510254 1
+22 1 30 0.631348 0.487305 1
+22 1 31 0.604004 0.466309 1
+22 2 0 0.804199 0.595215 0
+22 2 1 0.804199 0.595215 0
+22 2 2 0.804199 0.595215 0
+22 2 3 0.804199 0.595215 0
+22 2 4 0.804199 0.595215 0
+22 2 5 0.804199 0.595215 0
+22 2 6 0.804199 0.595215 0
+22 2 7 0.804199 0.595215 0
+22 2 8 0.804199 0.595215 0
+22 2 9 0.804199 0.595215 0
+22 2 10 0.804688 0.595215 0
+22 2 11 0.804688 0.595703 0
+22 2 12 0.804688 0.596191 0
+22 2 13 0.804688 0.59668 0
+22 2 14 0.804199 0.59668 0.0562134
+22 2 15 0.810547 0.600098 0.271973
+22 2 16 0.821289 0.608398 0.391602
+22 2 17 0.83252 0.616211 0.496338
+22 2 18 0.854492 0.637207 0.605957
+22 2 19 0.880859 0.666504 0.711914
+22 2 20 0.894531 0.68457 0.799316
+22 2 21 0.88916 0.683594 0.864746
+22 2 22 0.873535 0.671875 0.915527
+22 2 23 0.853027 0.656738 0.953613
+22 2 24 0.828613 0.637695 0.979492
+22 2 25 0.79834 0.614746 0.996582
+22 2 26 0.764648 0.588867 1
+22 2 27 0.729004 0.562012 1
+22 2 28 0.694336 0.535645 1
+22 2 29 0.661621 0.510254 1
+22 2 30 0.631348 0.487305 1
+22 2 31 0.604004 0.466309 1
+22 3 0 0.804199 0.595215 0
+22 3 1 0.804199 0.595215 0
+22 3 2 0.804199 0.595215 0
+22 3 3 0.804199 0.595215 0
+22 3 4 0.804199 0.595215 0
+22 3 5 0.804199 0.595215 0
+22 3 6 0.804199 0.595215 0
+22 3 7 0.804199 0.595215 0
+22 3 8 0.804199 0.595215 0
+22 3 9 0.804688 0.595215 0
+22 3 10 0.804688 0.595215 0
+22 3 11 0.804688 0.595703 0
+22 3 12 0.804688 0.596191 0
+22 3 13 0.804688 0.59668 0
+22 3 14 0.804199 0.59668 0.0562744
+22 3 15 0.810547 0.600098 0.271973
+22 3 16 0.821289 0.608398 0.391602
+22 3 17 0.83252 0.616211 0.496338
+22 3 18 0.854492 0.637207 0.605957
+22 3 19 0.880859 0.666504 0.711914
+22 3 20 0.894531 0.68457 0.799316
+22 3 21 0.88916 0.684082 0.864746
+22 3 22 0.873535 0.671875 0.915527
+22 3 23 0.853027 0.656738 0.953613
+22 3 24 0.828613 0.637695 0.979492
+22 3 25 0.79834 0.614746 0.996582
+22 3 26 0.764648 0.588867 1
+22 3 27 0.729004 0.562012 1
+22 3 28 0.694336 0.535645 1
+22 3 29 0.661621 0.510254 1
+22 3 30 0.631348 0.487305 1
+22 3 31 0.604004 0.466309 1
+22 4 0 0.804199 0.595215 0
+22 4 1 0.804199 0.595215 0
+22 4 2 0.804199 0.595215 0
+22 4 3 0.804199 0.595215 0
+22 4 4 0.804199 0.595215 0
+22 4 5 0.804199 0.595215 0
+22 4 6 0.804199 0.595215 0
+22 4 7 0.804199 0.595215 0
+22 4 8 0.804199 0.595215 0
+22 4 9 0.804688 0.595215 0
+22 4 10 0.804688 0.595215 0
+22 4 11 0.804688 0.595703 0
+22 4 12 0.804688 0.596191 0
+22 4 13 0.804688 0.59668 0
+22 4 14 0.804199 0.59668 0.0563965
+22 4 15 0.810547 0.600098 0.271973
+22 4 16 0.821289 0.608398 0.391602
+22 4 17 0.83252 0.616211 0.496338
+22 4 18 0.854492 0.637207 0.605957
+22 4 19 0.880859 0.666504 0.711914
+22 4 20 0.894531 0.68457 0.799316
+22 4 21 0.88916 0.684082 0.864746
+22 4 22 0.873535 0.671875 0.915527
+22 4 23 0.853027 0.656738 0.953613
+22 4 24 0.828613 0.637695 0.979492
+22 4 25 0.79834 0.614746 0.996582
+22 4 26 0.764648 0.588867 1
+22 4 27 0.729004 0.562012 1
+22 4 28 0.694336 0.535645 1
+22 4 29 0.661621 0.510254 1
+22 4 30 0.631348 0.487305 1
+22 4 31 0.604004 0.466309 1
+22 5 0 0.804199 0.595215 0
+22 5 1 0.804199 0.595215 0
+22 5 2 0.804199 0.595215 0
+22 5 3 0.804199 0.595215 0
+22 5 4 0.804199 0.595215 0
+22 5 5 0.804199 0.595215 0
+22 5 6 0.804199 0.595215 0
+22 5 7 0.804199 0.595215 0
+22 5 8 0.804199 0.595215 0
+22 5 9 0.804688 0.595215 0
+22 5 10 0.804688 0.595703 0
+22 5 11 0.804688 0.595703 0
+22 5 12 0.804688 0.596191 0
+22 5 13 0.804688 0.59668 0
+22 5 14 0.804199 0.59668 0.0566101
+22 5 15 0.810547 0.600586 0.271973
+22 5 16 0.821289 0.608398 0.391602
+22 5 17 0.83252 0.616211 0.496338
+22 5 18 0.854492 0.637695 0.605957
+22 5 19 0.880859 0.666504 0.711914
+22 5 20 0.894531 0.685059 0.799316
+22 5 21 0.88916 0.684082 0.864746
+22 5 22 0.873535 0.671875 0.915527
+22 5 23 0.853027 0.656738 0.953613
+22 5 24 0.828613 0.637695 0.979492
+22 5 25 0.79834 0.614746 0.996582
+22 5 26 0.764648 0.588867 1
+22 5 27 0.729492 0.562012 1
+22 5 28 0.694336 0.535645 1
+22 5 29 0.661621 0.510254 1
+22 5 30 0.631348 0.487305 1
+22 5 31 0.604004 0.466309 1
+22 6 0 0.804688 0.595215 0
+22 6 1 0.804688 0.595215 0
+22 6 2 0.804688 0.595215 0
+22 6 3 0.804688 0.595215 0
+22 6 4 0.804688 0.595215 0
+22 6 5 0.804688 0.595215 0
+22 6 6 0.804688 0.595215 0
+22 6 7 0.804688 0.595215 0
+22 6 8 0.804688 0.595215 0
+22 6 9 0.804688 0.595703 0
+22 6 10 0.804688 0.595703 0
+22 6 11 0.804688 0.596191 0
+22 6 12 0.805176 0.59668 0
+22 6 13 0.805176 0.59668 0
+22 6 14 0.804688 0.59668 0.0570374
+22 6 15 0.810547 0.600586 0.271973
+22 6 16 0.821777 0.608398 0.391602
+22 6 17 0.83252 0.616211 0.496338
+22 6 18 0.854492 0.637695 0.605957
+22 6 19 0.880859 0.666504 0.711914
+22 6 20 0.894531 0.685059 0.799316
+22 6 21 0.88916 0.684082 0.864746
+22 6 22 0.873535 0.672363 0.915527
+22 6 23 0.853027 0.656738 0.953613
+22 6 24 0.828613 0.638184 0.979492
+22 6 25 0.79834 0.614746 0.996582
+22 6 26 0.764648 0.588867 1
+22 6 27 0.729492 0.562012 1
+22 6 28 0.694336 0.535645 1
+22 6 29 0.661621 0.510254 1
+22 6 30 0.631348 0.487305 1
+22 6 31 0.604004 0.466553 1
+22 7 0 0.804688 0.595703 0
+22 7 1 0.804688 0.595703 0
+22 7 2 0.804688 0.595703 0
+22 7 3 0.804688 0.595703 0
+22 7 4 0.804688 0.595703 0
+22 7 5 0.804688 0.595703 0
+22 7 6 0.804688 0.595703 0
+22 7 7 0.804688 0.595703 0
+22 7 8 0.804688 0.595703 0
+22 7 9 0.804688 0.595703 0
+22 7 10 0.804688 0.595703 0
+22 7 11 0.804688 0.596191 0
+22 7 12 0.805176 0.59668 0
+22 7 13 0.805176 0.597168 0
+22 7 14 0.804688 0.597168 0.0578918
+22 7 15 0.810547 0.600586 0.271973
+22 7 16 0.821777 0.608887 0.391602
+22 7 17 0.83252 0.616699 0.496338
+22 7 18 0.854492 0.637695 0.605957
+22 7 19 0.880859 0.666504 0.711914
+22 7 20 0.894531 0.685059 0.799316
+22 7 21 0.88916 0.684082 0.864746
+22 7 22 0.873535 0.672363 0.915527
+22 7 23 0.853027 0.657227 0.953613
+22 7 24 0.828613 0.638184 0.979492
+22 7 25 0.79834 0.615234 0.996582
+22 7 26 0.764648 0.589355 1
+22 7 27 0.729492 0.5625 1
+22 7 28 0.694336 0.535645 1
+22 7 29 0.661621 0.510742 1
+22 7 30 0.631348 0.487305 1
+22 7 31 0.604004 0.466553 1
+22 8 0 0.804688 0.596191 0
+22 8 1 0.804688 0.596191 0
+22 8 2 0.804688 0.596191 0
+22 8 3 0.804688 0.596191 0
+22 8 4 0.804688 0.596191 0
+22 8 5 0.804688 0.596191 0
+22 8 6 0.804688 0.596191 0
+22 8 7 0.804688 0.596191 0
+22 8 8 0.804688 0.596191 0
+22 8 9 0.804688 0.596191 0
+22 8 10 0.804688 0.59668 0
+22 8 11 0.805176 0.59668 0
+22 8 12 0.805176 0.597168 0
+22 8 13 0.805176 0.597656 0
+22 8 14 0.804688 0.597656 0.0594788
+22 8 15 0.811035 0.601074 0.272217
+22 8 16 0.821777 0.609375 0.391602
+22 8 17 0.83252 0.616699 0.496094
+22 8 18 0.854492 0.638184 0.605957
+22 8 19 0.880859 0.666992 0.711914
+22 8 20 0.894531 0.685547 0.799316
+22 8 21 0.88916 0.68457 0.864746
+22 8 22 0.873535 0.672852 0.915527
+22 8 23 0.853027 0.657227 0.953613
+22 8 24 0.828613 0.638184 0.979492
+22 8 25 0.79834 0.615234 0.996582
+22 8 26 0.764648 0.589355 1
+22 8 27 0.729492 0.5625 1
+22 8 28 0.694336 0.536133 1
+22 8 29 0.661621 0.510742 1
+22 8 30 0.631348 0.487549 1
+22 8 31 0.604004 0.466797 1
+22 9 0 0.805176 0.597168 0
+22 9 1 0.805176 0.597168 0
+22 9 2 0.805176 0.597168 0
+22 9 3 0.805176 0.597168 0
+22 9 4 0.805176 0.597168 0
+22 9 5 0.805176 0.597168 0
+22 9 6 0.805176 0.597168 0
+22 9 7 0.805176 0.597168 0
+22 9 8 0.805176 0.597168 0
+22 9 9 0.805176 0.597168 0
+22 9 10 0.805176 0.597656 0
+22 9 11 0.805176 0.597656 0
+22 9 12 0.805664 0.598145 0
+22 9 13 0.805664 0.598633 0
+22 9 14 0.805176 0.598633 0.0624084
+22 9 15 0.811035 0.602051 0.272217
+22 9 16 0.821777 0.609863 0.391602
+22 9 17 0.83252 0.617676 0.496094
+22 9 18 0.854492 0.638672 0.605957
+22 9 19 0.880859 0.66748 0.711914
+22 9 20 0.894531 0.686035 0.799316
+22 9 21 0.88916 0.685059 0.864746
+22 9 22 0.873535 0.67334 0.915527
+22 9 23 0.853516 0.657715 0.953613
+22 9 24 0.828613 0.63916 0.979492
+22 9 25 0.79834 0.615723 0.996582
+22 9 26 0.764648 0.589844 1
+22 9 27 0.729492 0.562988 1
+22 9 28 0.694336 0.536133 1
+22 9 29 0.661621 0.51123 1
+22 9 30 0.631348 0.487793 1
+22 9 31 0.604004 0.467041 1
+22 10 0 0.805664 0.599121 0
+22 10 1 0.805664 0.599121 0
+22 10 2 0.805664 0.599121 0
+22 10 3 0.805664 0.599121 0
+22 10 4 0.805664 0.599121 0
+22 10 5 0.805664 0.599121 0
+22 10 6 0.805664 0.599121 0
+22 10 7 0.805664 0.599121 0
+22 10 8 0.805664 0.599121 0
+22 10 9 0.805664 0.599121 0
+22 10 10 0.806152 0.599609 0
+22 10 11 0.806152 0.599609 0
+22 10 12 0.806152 0.600098 0
+22 10 13 0.806152 0.600586 0
+22 10 14 0.805664 0.600586 0.0673828
+22 10 15 0.811523 0.604004 0.272461
+22 10 16 0.821777 0.611328 0.391357
+22 10 17 0.833008 0.619141 0.496094
+22 10 18 0.854492 0.639648 0.605469
+22 10 19 0.880371 0.668457 0.711914
+22 10 20 0.894531 0.687012 0.799316
+22 10 21 0.88916 0.686035 0.865234
+22 10 22 0.873535 0.674316 0.915527
+22 10 23 0.853516 0.658691 0.953613
+22 10 24 0.828613 0.640137 0.979492
+22 10 25 0.79834 0.616699 0.996582
+22 10 26 0.764648 0.59082 1
+22 10 27 0.729492 0.563477 1
+22 10 28 0.694824 0.537109 1
+22 10 29 0.661621 0.511719 1
+22 10 30 0.631348 0.488525 1
+22 10 31 0.604004 0.467529 1
+22 11 0 0.807129 0.602539 0
+22 11 1 0.807129 0.602539 0
+22 11 2 0.807129 0.602539 0
+22 11 3 0.807129 0.602539 0
+22 11 4 0.807129 0.602539 0
+22 11 5 0.807129 0.602539 0
+22 11 6 0.807129 0.602539 0
+22 11 7 0.807129 0.602539 0
+22 11 8 0.807129 0.602539 0
+22 11 9 0.807129 0.602539 0
+22 11 10 0.807129 0.602539 0
+22 11 11 0.807129 0.603027 0
+22 11 12 0.807617 0.603516 0
+22 11 13 0.807617 0.604004 0
+22 11 14 0.806641 0.603516 0.0754395
+22 11 15 0.8125 0.606934 0.273193
+22 11 16 0.822266 0.61377 0.391113
+22 11 17 0.833008 0.621582 0.496094
+22 11 18 0.854004 0.641602 0.60498
+22 11 19 0.880371 0.67041 0.711426
+22 11 20 0.894531 0.688965 0.799316
+22 11 21 0.889648 0.687988 0.865234
+22 11 22 0.874023 0.67627 0.915527
+22 11 23 0.853516 0.660645 0.954102
+22 11 24 0.829102 0.641602 0.979492
+22 11 25 0.798828 0.618164 0.996582
+22 11 26 0.764648 0.592285 1
+22 11 27 0.729492 0.564941 1
+22 11 28 0.694824 0.538086 1
+22 11 29 0.661621 0.512695 1
+22 11 30 0.631348 0.489502 1
+22 11 31 0.604004 0.468506 1
+22 12 0 0.809082 0.60791 0
+22 12 1 0.809082 0.60791 0
+22 12 2 0.809082 0.60791 0
+22 12 3 0.809082 0.60791 0
+22 12 4 0.809082 0.60791 0
+22 12 5 0.809082 0.60791 0
+22 12 6 0.809082 0.60791 0
+22 12 7 0.809082 0.60791 0
+22 12 8 0.809082 0.60791 0
+22 12 9 0.809082 0.608398 0
+22 12 10 0.809082 0.608398 0
+22 12 11 0.809082 0.608887 0
+22 12 12 0.80957 0.609375 0
+22 12 13 0.80957 0.609375 0
+22 12 14 0.808594 0.609375 0.0878296
+22 12 15 0.813965 0.611816 0.27417
+22 12 16 0.822754 0.618164 0.390869
+22 12 17 0.833984 0.625977 0.496094
+22 12 18 0.854004 0.644531 0.604492
+22 12 19 0.880371 0.67334 0.710938
+22 12 20 0.89502 0.692383 0.799316
+22 12 21 0.890137 0.691406 0.865234
+22 12 22 0.874023 0.679688 0.916016
+22 12 23 0.854004 0.664062 0.954102
+22 12 24 0.829102 0.644531 0.979492
+22 12 25 0.798828 0.621094 0.996582
+22 12 26 0.765137 0.594727 1
+22 12 27 0.729492 0.567383 1
+22 12 28 0.694824 0.540527 1
+22 12 29 0.662109 0.514648 1
+22 12 30 0.631836 0.491455 1
+22 12 31 0.604492 0.470215 1
+22 13 0 0.812012 0.617188 0
+22 13 1 0.812012 0.617188 0
+22 13 2 0.812012 0.617188 0
+22 13 3 0.812012 0.617188 0
+22 13 4 0.812012 0.617188 0
+22 13 5 0.812012 0.617188 0
+22 13 6 0.812012 0.617188 0
+22 13 7 0.8125 0.617188 0
+22 13 8 0.8125 0.617188 0
+22 13 9 0.8125 0.617676 0
+22 13 10 0.8125 0.617676 0
+22 13 11 0.8125 0.618164 0
+22 13 12 0.812988 0.618652 0
+22 13 13 0.8125 0.618652 0
+22 13 14 0.812012 0.618164 0.105774
+22 13 15 0.816406 0.620117 0.276611
+22 13 16 0.824219 0.625 0.390869
+22 13 17 0.834961 0.632812 0.496094
+22 13 18 0.853516 0.649902 0.603027
+22 13 19 0.879883 0.677734 0.709961
+22 13 20 0.89502 0.697266 0.798828
+22 13 21 0.890625 0.696777 0.865234
+22 13 22 0.875 0.68457 0.916016
+22 13 23 0.854492 0.668945 0.95459
+22 13 24 0.82959 0.649414 0.97998
+22 13 25 0.799316 0.625488 0.996582
+22 13 26 0.765625 0.598633 1
+22 13 27 0.72998 0.571289 1
+22 13 28 0.695312 0.543945 1
+22 13 29 0.662109 0.518066 1
+22 13 30 0.631836 0.494385 1
+22 13 31 0.60498 0.473145 1
+22 14 0 0.817383 0.631836 0
+22 14 1 0.817383 0.631836 0
+22 14 2 0.817383 0.631836 0
+22 14 3 0.817383 0.631836 0
+22 14 4 0.817383 0.631836 0
+22 14 5 0.817383 0.631836 0
+22 14 6 0.817383 0.631836 0
+22 14 7 0.817383 0.631836 0
+22 14 8 0.817871 0.631836 0
+22 14 9 0.817871 0.631836 0
+22 14 10 0.817871 0.632324 0
+22 14 11 0.817871 0.632324 0
+22 14 12 0.818359 0.632812 0
+22 14 13 0.817871 0.633301 0
+22 14 14 0.817383 0.632324 0.130981
+22 14 15 0.820801 0.633789 0.281738
+22 14 16 0.82666 0.636719 0.391602
+22 14 17 0.837402 0.644531 0.496826
+22 14 18 0.853516 0.658203 0.601562
+22 14 19 0.878906 0.685059 0.708496
+22 14 20 0.895508 0.705078 0.798828
+22 14 21 0.891602 0.705078 0.865723
+22 14 22 0.875977 0.692871 0.916504
+22 14 23 0.855469 0.676758 0.95459
+22 14 24 0.830566 0.656738 0.980469
+22 14 25 0.799805 0.632324 0.99707
+22 14 26 0.766113 0.605469 1
+22 14 27 0.730469 0.577148 1
+22 14 28 0.695801 0.549316 1
+22 14 29 0.662598 0.522949 1
+22 14 30 0.632812 0.499023 1
+22 14 31 0.605469 0.477295 1
+22 15 0 0.825684 0.65332 0
+22 15 1 0.825684 0.65332 0
+22 15 2 0.825684 0.65332 0
+22 15 3 0.825684 0.65332 0
+22 15 4 0.825684 0.65332 0
+22 15 5 0.825684 0.65332 0
+22 15 6 0.825684 0.65332 0
+22 15 7 0.826172 0.65332 0
+22 15 8 0.826172 0.65332 0
+22 15 9 0.826172 0.653809 0
+22 15 10 0.826172 0.653809 0
+22 15 11 0.826172 0.654297 0
+22 15 12 0.82666 0.654785 0
+22 15 13 0.82666 0.654785 0
+22 15 14 0.826172 0.654297 0.164673
+22 15 15 0.828125 0.654297 0.291748
+22 15 16 0.832031 0.655273 0.39502
+22 15 17 0.84082 0.661621 0.498535
+22 15 18 0.853027 0.670898 0.599121
+22 15 19 0.877441 0.695801 0.705566
+22 15 20 0.895508 0.716797 0.797852
+22 15 21 0.892578 0.717773 0.865723
+22 15 22 0.876953 0.705078 0.916992
+22 15 23 0.856934 0.688477 0.955078
+22 15 24 0.831543 0.667969 0.980469
+22 15 25 0.800781 0.642578 0.99707
+22 15 26 0.766602 0.614746 1
+22 15 27 0.730957 0.585938 1
+22 15 28 0.696289 0.557617 1
+22 15 29 0.663574 0.530762 1
+22 15 30 0.633301 0.506348 1
+22 15 31 0.606445 0.483887 1
+22 16 0 0.838379 0.684082 0
+22 16 1 0.838379 0.684082 0
+22 16 2 0.838379 0.684082 0
+22 16 3 0.838379 0.684082 0
+22 16 4 0.838379 0.684082 0
+22 16 5 0.838379 0.684082 0
+22 16 6 0.838379 0.684082 0
+22 16 7 0.838379 0.684082 0
+22 16 8 0.838379 0.68457 0
+22 16 9 0.838379 0.68457 0
+22 16 10 0.838379 0.68457 0
+22 16 11 0.838379 0.685059 0
+22 16 12 0.838867 0.685059 0
+22 16 13 0.838867 0.686035 0
+22 16 14 0.839355 0.685547 0.20752
+22 16 15 0.839844 0.68457 0.310791
+22 16 16 0.84082 0.683594 0.404297
+22 16 17 0.844727 0.684082 0.499268
+22 16 18 0.854492 0.690918 0.597656
+22 16 19 0.875 0.710449 0.701172
+22 16 20 0.894531 0.73291 0.795898
+22 16 21 0.894043 0.734863 0.865723
+22 16 22 0.878418 0.72168 0.916992
+22 16 23 0.858398 0.70459 0.955566
+22 16 24 0.833008 0.683105 0.980469
+22 16 25 0.802246 0.657227 0.99707
+22 16 26 0.767578 0.62793 1
+22 16 27 0.731934 0.598145 1
+22 16 28 0.697266 0.568848 1
+22 16 29 0.664551 0.541504 1
+22 16 30 0.634766 0.516113 1
+22 16 31 0.60791 0.493408 1
+22 17 0 0.855957 0.725098 0.165649
+22 17 1 0.855957 0.725098 0.165649
+22 17 2 0.855957 0.725098 0.165649
+22 17 3 0.855957 0.725098 0.165649
+22 17 4 0.855957 0.725098 0.165649
+22 17 5 0.855957 0.725098 0.165649
+22 17 6 0.855957 0.725098 0.165771
+22 17 7 0.855957 0.725098 0.165771
+22 17 8 0.855957 0.725098 0.165894
+22 17 9 0.855957 0.725098 0.166016
+22 17 10 0.855957 0.725098 0.16626
+22 17 11 0.855957 0.725586 0.16687
+22 17 12 0.856445 0.725586 0.167725
+22 17 13 0.856934 0.726562 0.169067
+22 17 14 0.856934 0.726074 0.256592
+22 17 15 0.856934 0.725098 0.3396
+22 17 16 0.855957 0.722656 0.422607
+22 17 17 0.85498 0.71875 0.507324
+22 17 18 0.859375 0.720215 0.599121
+22 17 19 0.871582 0.730469 0.694824
+22 17 20 0.892578 0.752441 0.791504
+22 17 21 0.894531 0.756836 0.864746
+22 17 22 0.880371 0.744141 0.916992
+22 17 23 0.860352 0.726074 0.955566
+22 17 24 0.834473 0.703613 0.97998
+22 17 25 0.803223 0.675781 0.996094
+22 17 26 0.768555 0.645508 1
+22 17 27 0.73291 0.614746 1
+22 17 28 0.69873 0.584473 1
+22 17 29 0.666016 0.556152 1
+22 17 30 0.636719 0.529785 1
+22 17 31 0.609863 0.506348 1
+22 18 0 0.876953 0.772461 0.252441
+22 18 1 0.876953 0.772461 0.252441
+22 18 2 0.876953 0.772461 0.252441
+22 18 3 0.876953 0.772461 0.252441
+22 18 4 0.876953 0.772461 0.252441
+22 18 5 0.876953 0.772461 0.252441
+22 18 6 0.876953 0.772461 0.252441
+22 18 7 0.876953 0.772949 0.252441
+22 18 8 0.876953 0.772949 0.252441
+22 18 9 0.876953 0.772949 0.252441
+22 18 10 0.876953 0.772949 0.252686
+22 18 11 0.876953 0.772949 0.25293
+22 18 12 0.877441 0.773438 0.253418
+22 18 13 0.877441 0.773926 0.25415
+22 18 14 0.87793 0.773926 0.304932
+22 18 15 0.87793 0.773438 0.374756
+22 18 16 0.876465 0.770508 0.449219
+22 18 17 0.872559 0.765625 0.526367
+22 18 18 0.868164 0.758301 0.604492
+22 18 19 0.871094 0.758789 0.690918
+22 18 20 0.887207 0.773926 0.78418
+22 18 21 0.894531 0.783203 0.862793
+22 18 22 0.881348 0.770508 0.915527
+22 18 23 0.861328 0.751465 0.954102
+22 18 24 0.835449 0.727539 0.978516
+22 18 25 0.803711 0.698242 0.994141
+22 18 26 0.769043 0.666992 1
+22 18 27 0.733887 0.634766 1
+22 18 28 0.700195 0.603516 1
+22 18 29 0.668457 0.574219 1
+22 18 30 0.63916 0.547363 1
+22 18 31 0.612793 0.522461 1
+22 19 0 0.895996 0.822266 0.310303
+22 19 1 0.895996 0.822266 0.310303
+22 19 2 0.895996 0.822266 0.310303
+22 19 3 0.895996 0.822266 0.310303
+22 19 4 0.895996 0.822266 0.310303
+22 19 5 0.895996 0.822266 0.310303
+22 19 6 0.895996 0.822266 0.310303
+22 19 7 0.895996 0.822266 0.310303
+22 19 8 0.895996 0.822266 0.310547
+22 19 9 0.895996 0.822266 0.310547
+22 19 10 0.895996 0.822266 0.310547
+22 19 11 0.896484 0.822754 0.310791
+22 19 12 0.896484 0.822754 0.311035
+22 19 13 0.896484 0.823242 0.311279
+22 19 14 0.897461 0.82373 0.344482
+22 19 15 0.897949 0.82373 0.406982
+22 19 16 0.896973 0.822266 0.477051
+22 19 17 0.894043 0.817871 0.550293
+22 19 18 0.886719 0.80957 0.623047
+22 19 19 0.877441 0.79834 0.693848
+22 19 20 0.879883 0.79834 0.773438
+22 19 21 0.89209 0.810547 0.857422
+22 19 22 0.881348 0.799316 0.912598
+22 19 23 0.861328 0.779785 0.951172
+22 19 24 0.834961 0.753906 0.975098
+22 19 25 0.803223 0.723145 0.990723
+22 19 26 0.769531 0.690918 1
+22 19 27 0.735352 0.658203 1
+22 19 28 0.702148 0.625977 1
+22 19 29 0.671387 0.596191 1
+22 19 30 0.642578 0.567871 1
+22 19 31 0.616699 0.541992 1
+22 20 0 0.90918 0.868164 0.347412
+22 20 1 0.90918 0.868164 0.347412
+22 20 2 0.90918 0.868164 0.347412
+22 20 3 0.90918 0.868164 0.347412
+22 20 4 0.90918 0.868164 0.347412
+22 20 5 0.90918 0.868164 0.347412
+22 20 6 0.90918 0.868164 0.347412
+22 20 7 0.90918 0.868164 0.347412
+22 20 8 0.90918 0.868164 0.347412
+22 20 9 0.90918 0.868164 0.347412
+22 20 10 0.90918 0.868164 0.347412
+22 20 11 0.90918 0.868652 0.347656
+22 20 12 0.90918 0.868652 0.347656
+22 20 13 0.90918 0.869141 0.3479
+22 20 14 0.910156 0.869629 0.368896
+22 20 15 0.911133 0.870117 0.428223
+22 20 16 0.912109 0.870117 0.496582
+22 20 17 0.910645 0.868164 0.569824
+22 20 18 0.905762 0.861816 0.642578
+22 20 19 0.89502 0.850098 0.709961
+22 20 20 0.881348 0.833984 0.771484
+22 20 21 0.885254 0.835938 0.847656
+22 20 22 0.879883 0.829102 0.907227
+22 20 23 0.859863 0.808105 0.945801
+22 20 24 0.83252 0.780273 0.968262
+22 20 25 0.80127 0.749023 0.984863
+22 20 26 0.769043 0.716309 0.99707
+22 20 27 0.736816 0.683594 1
+22 20 28 0.705078 0.651367 1
+22 20 29 0.675293 0.620605 1
+22 20 30 0.647461 0.591309 1
+22 20 31 0.621582 0.564453 1
+22 21 0 0.912598 0.907227 0.367432
+22 21 1 0.912598 0.907227 0.367432
+22 21 2 0.912598 0.907227 0.367432
+22 21 3 0.912598 0.907227 0.367432
+22 21 4 0.912598 0.907227 0.367432
+22 21 5 0.912598 0.907227 0.367432
+22 21 6 0.912598 0.907227 0.367432
+22 21 7 0.912598 0.907227 0.367432
+22 21 8 0.912598 0.907715 0.367432
+22 21 9 0.912598 0.907715 0.367432
+22 21 10 0.912598 0.907715 0.367432
+22 21 11 0.912598 0.907715 0.367432
+22 21 12 0.912598 0.907715 0.367432
+22 21 13 0.912598 0.908203 0.367676
+22 21 14 0.913086 0.908691 0.37793
+22 21 15 0.915039 0.909668 0.435791
+22 21 16 0.916992 0.910645 0.503418
+22 21 17 0.91748 0.910156 0.577148
+22 21 18 0.915527 0.906738 0.651855
+22 21 19 0.90918 0.898438 0.722656
+22 21 20 0.896973 0.884277 0.784668
+22 21 21 0.878906 0.86377 0.836914
+22 21 22 0.875977 0.858887 0.899902
+22 21 23 0.854492 0.834961 0.936035
+22 21 24 0.827637 0.806641 0.958984
+22 21 25 0.799316 0.775879 0.978027
+22 21 26 0.77002 0.744141 0.993652
+22 21 27 0.739746 0.711914 1
+22 21 28 0.709961 0.679688 1
+22 21 29 0.681152 0.648438 1
+22 21 30 0.653809 0.618164 1
+22 21 31 0.62793 0.589844 1
+22 22 0 0.905273 0.9375 0.376465
+22 22 1 0.905273 0.9375 0.376465
+22 22 2 0.905273 0.9375 0.376465
+22 22 3 0.905273 0.9375 0.376465
+22 22 4 0.905273 0.9375 0.376465
+22 22 5 0.905273 0.9375 0.376465
+22 22 6 0.905273 0.9375 0.376465
+22 22 7 0.905273 0.9375 0.376465
+22 22 8 0.905273 0.9375 0.376465
+22 22 9 0.905273 0.9375 0.376465
+22 22 10 0.905762 0.9375 0.376465
+22 22 11 0.905762 0.9375 0.376465
+22 22 12 0.905762 0.9375 0.376465
+22 22 13 0.905762 0.9375 0.376465
+22 22 14 0.905762 0.937988 0.376709
+22 22 15 0.907715 0.939453 0.432617
+22 22 16 0.910156 0.940918 0.499023
+22 22 17 0.911621 0.941406 0.571777
+22 22 18 0.911621 0.938965 0.646973
+22 22 19 0.907715 0.933105 0.719238
+22 22 20 0.899902 0.922852 0.784668
+22 22 21 0.887695 0.907227 0.841797
+22 22 22 0.870117 0.886719 0.889648
+22 22 23 0.848145 0.861328 0.924805
+22 22 24 0.825684 0.835449 0.952148
+22 22 25 0.800781 0.807129 0.975098
+22 22 26 0.773438 0.776367 0.994141
+22 22 27 0.745117 0.743652 1
+22 22 28 0.71582 0.710449 1
+22 22 29 0.687012 0.677246 1
+22 22 30 0.65918 0.645508 1
+22 22 31 0.632812 0.614746 1
+22 23 0 0.889648 0.956055 0.380127
+22 23 1 0.889648 0.956055 0.380127
+22 23 2 0.889648 0.956055 0.380127
+22 23 3 0.889648 0.956055 0.380127
+22 23 4 0.889648 0.956055 0.380127
+22 23 5 0.889648 0.956055 0.380127
+22 23 6 0.889648 0.956055 0.380127
+22 23 7 0.889648 0.956055 0.380127
+22 23 8 0.889648 0.956055 0.380127
+22 23 9 0.889648 0.956055 0.380127
+22 23 10 0.889648 0.956055 0.380127
+22 23 11 0.889648 0.956055 0.380127
+22 23 12 0.889648 0.956055 0.380127
+22 23 13 0.889648 0.956055 0.380127
+22 23 14 0.889648 0.956055 0.380371
+22 23 15 0.891602 0.95752 0.424072
+22 23 16 0.894043 0.959473 0.48877
+22 23 17 0.895996 0.959961 0.560059
+22 23 18 0.896484 0.958496 0.633301
+22 23 19 0.893555 0.953125 0.70459
+22 23 20 0.886719 0.942871 0.769043
+22 23 21 0.875 0.927734 0.826172
+22 23 22 0.862305 0.911133 0.876953
+22 23 23 0.851562 0.896484 0.923828
+22 23 24 0.83252 0.872559 0.955078
+22 23 25 0.807129 0.842285 0.978027
+22 23 26 0.779785 0.810059 0.996582
+22 23 27 0.750977 0.775879 1
+22 23 28 0.72168 0.741211 1
+22 23 29 0.692871 0.706543 1
+22 23 30 0.665039 0.672852 1
+22 23 31 0.638184 0.640137 1
+22 24 0 0.868652 0.966797 0.381104
+22 24 1 0.868652 0.966797 0.381104
+22 24 2 0.868652 0.966797 0.381104
+22 24 3 0.868652 0.966797 0.381104
+22 24 4 0.868652 0.966797 0.381104
+22 24 5 0.868652 0.966797 0.381104
+22 24 6 0.868652 0.966797 0.381104
+22 24 7 0.868652 0.966797 0.381348
+22 24 8 0.868652 0.966797 0.381348
+22 24 9 0.868652 0.966797 0.381348
+22 24 10 0.868652 0.966797 0.381348
+22 24 11 0.868652 0.966797 0.381348
+22 24 12 0.868652 0.966797 0.381348
+22 24 13 0.869141 0.966797 0.381348
+22 24 14 0.869141 0.967285 0.381348
+22 24 15 0.870117 0.968262 0.413574
+22 24 16 0.873047 0.969727 0.476074
+22 24 17 0.875 0.970703 0.544922
+22 24 18 0.875977 0.969727 0.616211
+22 24 19 0.874512 0.965332 0.686035
+22 24 20 0.869141 0.957031 0.75
+22 24 21 0.861328 0.944824 0.808594
+22 24 22 0.853027 0.932129 0.863281
+22 24 23 0.844238 0.918945 0.910645
+22 24 24 0.833008 0.90332 0.950684
+22 24 25 0.814453 0.878906 0.981934
+22 24 26 0.788574 0.84668 1
+22 24 27 0.760254 0.811523 1
+22 24 28 0.730469 0.774902 1
+22 24 29 0.701172 0.738281 1
+22 24 30 0.672852 0.702148 1
+22 24 31 0.64502 0.66748 1
+22 25 0 0.844727 0.974121 0.381104
+22 25 1 0.844727 0.974121 0.381104
+22 25 2 0.844727 0.974121 0.381104
+22 25 3 0.844727 0.974121 0.381104
+22 25 4 0.844727 0.974121 0.381104
+22 25 5 0.844727 0.974121 0.381104
+22 25 6 0.844727 0.974121 0.381104
+22 25 7 0.844727 0.974121 0.381104
+22 25 8 0.844727 0.974121 0.381104
+22 25 9 0.844727 0.974121 0.381104
+22 25 10 0.844727 0.974121 0.381104
+22 25 11 0.844727 0.974121 0.381104
+22 25 12 0.844727 0.974121 0.381104
+22 25 13 0.844727 0.974609 0.381104
+22 25 14 0.844727 0.974609 0.381104
+22 25 15 0.845703 0.975098 0.401123
+22 25 16 0.848633 0.977051 0.461182
+22 25 17 0.851074 0.978516 0.527832
+22 25 18 0.853027 0.978516 0.597168
+22 25 19 0.853027 0.975586 0.665527
+22 25 20 0.850586 0.969727 0.729492
+22 25 21 0.846191 0.961426 0.790039
+22 25 22 0.84082 0.95166 0.845703
+22 25 23 0.833984 0.94043 0.894531
+22 25 24 0.824707 0.92627 0.936035
+22 25 25 0.8125 0.908203 0.973633
+22 25 26 0.793945 0.882324 1
+22 25 27 0.768555 0.849121 1
+22 25 28 0.740234 0.812012 1
+22 25 29 0.710938 0.773438 1
+22 25 30 0.681641 0.735352 1
+22 25 31 0.653809 0.698242 1
+22 26 0 0.818848 0.97998 0.380371
+22 26 1 0.818848 0.97998 0.380371
+22 26 2 0.818848 0.97998 0.380371
+22 26 3 0.818848 0.97998 0.380371
+22 26 4 0.818848 0.97998 0.380371
+22 26 5 0.818848 0.97998 0.380371
+22 26 6 0.818848 0.97998 0.380371
+22 26 7 0.818848 0.97998 0.380371
+22 26 8 0.818848 0.97998 0.380371
+22 26 9 0.818848 0.97998 0.380371
+22 26 10 0.818848 0.97998 0.380371
+22 26 11 0.818848 0.97998 0.380371
+22 26 12 0.818848 0.97998 0.380371
+22 26 13 0.818848 0.97998 0.380371
+22 26 14 0.818848 0.97998 0.380371
+22 26 15 0.819336 0.980469 0.387939
+22 26 16 0.822266 0.98291 0.445068
+22 26 17 0.825195 0.984863 0.509277
+22 26 18 0.828125 0.98584 0.576172
+22 26 19 0.830078 0.985352 0.643555
+22 26 20 0.830078 0.981934 0.70752
+22 26 21 0.828613 0.977051 0.768555
+22 26 22 0.825684 0.969727 0.825195
+22 26 23 0.821289 0.959961 0.874512
+22 26 24 0.813965 0.947754 0.91748
+22 26 25 0.804199 0.931641 0.957031
+22 26 26 0.790527 0.910645 0.993164
+22 26 27 0.771484 0.883301 1
+22 26 28 0.74707 0.848633 1
+22 26 29 0.719238 0.810547 1
+22 26 30 0.690918 0.771484 1
+22 26 31 0.662598 0.732422 1
+22 27 0 0.791504 0.983887 0.37915
+22 27 1 0.791504 0.983887 0.37915
+22 27 2 0.791504 0.983887 0.37915
+22 27 3 0.791504 0.983887 0.37915
+22 27 4 0.791504 0.983887 0.37915
+22 27 5 0.791504 0.983887 0.37915
+22 27 6 0.791504 0.983887 0.37915
+22 27 7 0.791504 0.983887 0.37915
+22 27 8 0.791504 0.983887 0.37915
+22 27 9 0.791992 0.983887 0.37915
+22 27 10 0.791992 0.983887 0.37915
+22 27 11 0.791992 0.983887 0.37915
+22 27 12 0.791992 0.983887 0.37915
+22 27 13 0.791992 0.984375 0.37915
+22 27 14 0.791992 0.984375 0.37915
+22 27 15 0.791992 0.984375 0.37915
+22 27 16 0.794922 0.986816 0.428467
+22 27 17 0.798828 0.989746 0.489746
+22 27 18 0.802246 0.991699 0.554688
+22 27 19 0.805664 0.993164 0.620117
+22 27 20 0.807617 0.992188 0.683105
+22 27 21 0.808594 0.989746 0.744141
+22 27 22 0.808105 0.984863 0.800781
+22 27 23 0.805176 0.977539 0.850586
+22 27 24 0.800293 0.967285 0.894531
+22 27 25 0.79248 0.953125 0.936035
+22 27 26 0.781738 0.93457 0.974609
+22 27 27 0.76709 0.911133 1
+22 27 28 0.748047 0.881348 1
+22 27 29 0.724121 0.846191 1
+22 27 30 0.697754 0.807617 1
+22 27 31 0.67041 0.767578 1
+22 28 0 0.76416 0.986816 0.377686
+22 28 1 0.76416 0.986816 0.377686
+22 28 2 0.76416 0.986816 0.377686
+22 28 3 0.76416 0.986816 0.377686
+22 28 4 0.76416 0.986816 0.377686
+22 28 5 0.76416 0.986816 0.377686
+22 28 6 0.76416 0.986816 0.377686
+22 28 7 0.76416 0.986816 0.377686
+22 28 8 0.76416 0.986816 0.377686
+22 28 9 0.76416 0.986816 0.377686
+22 28 10 0.76416 0.986816 0.377686
+22 28 11 0.76416 0.986816 0.377686
+22 28 12 0.76416 0.986816 0.377686
+22 28 13 0.764648 0.986816 0.377686
+22 28 14 0.764648 0.987305 0.377686
+22 28 15 0.764648 0.987305 0.377686
+22 28 16 0.76709 0.989258 0.411377
+22 28 17 0.770996 0.992676 0.469727
+22 28 18 0.775391 0.996094 0.531738
+22 28 19 0.779785 0.998535 0.595215
+22 28 20 0.783203 1 0.656738
+22 28 21 0.785645 0.999512 0.716797
+22 28 22 0.787109 0.996582 0.772949
+22 28 23 0.786133 0.991211 0.823242
+22 28 24 0.783203 0.983398 0.867676
+22 28 25 0.77832 0.97168 0.910645
+22 28 26 0.77002 0.955566 0.951172
+22 28 27 0.758301 0.935059 0.987793
+22 28 28 0.742676 0.908691 1
+22 28 29 0.723145 0.876953 1
+22 28 30 0.700195 0.84082 1
+22 28 31 0.675293 0.802246 1
+22 29 0 0.736328 0.987793 0.375488
+22 29 1 0.736328 0.987793 0.375488
+22 29 2 0.736328 0.987793 0.375488
+22 29 3 0.736328 0.987793 0.375488
+22 29 4 0.736328 0.987793 0.375488
+22 29 5 0.736328 0.987793 0.375488
+22 29 6 0.736328 0.987793 0.375488
+22 29 7 0.736328 0.987793 0.375488
+22 29 8 0.736328 0.987793 0.375488
+22 29 9 0.736328 0.987793 0.375488
+22 29 10 0.736328 0.987793 0.375488
+22 29 11 0.736328 0.987793 0.375488
+22 29 12 0.736328 0.987793 0.375732
+22 29 13 0.736328 0.987793 0.375732
+22 29 14 0.736328 0.987793 0.375732
+22 29 15 0.736328 0.987793 0.375732
+22 29 16 0.737793 0.989258 0.393799
+22 29 17 0.742188 0.993164 0.44873
+22 29 18 0.74707 0.997559 0.508301
+22 29 19 0.752441 1 0.568848
+22 29 20 0.756836 1 0.628418
+22 29 21 0.760742 1 0.686523
+22 29 22 0.763184 1 0.741699
+22 29 23 0.76416 1 0.791504
+22 29 24 0.763184 0.995605 0.836426
+22 29 25 0.760254 0.986328 0.880371
+22 29 26 0.754395 0.973145 0.922852
+22 29 27 0.745605 0.955566 0.961914
+22 29 28 0.733398 0.932617 0.996582
+22 29 29 0.718262 0.904785 1
+22 29 30 0.699219 0.872559 1
+22 29 31 0.677734 0.835938 1
+22 30 0 0.70752 0.986328 0.372803
+22 30 1 0.70752 0.986328 0.372803
+22 30 2 0.70752 0.986328 0.372803
+22 30 3 0.70752 0.986328 0.372803
+22 30 4 0.70752 0.986328 0.372803
+22 30 5 0.70752 0.986328 0.372803
+22 30 6 0.70752 0.986328 0.372803
+22 30 7 0.70752 0.986328 0.372803
+22 30 8 0.70752 0.986328 0.372803
+22 30 9 0.70752 0.986328 0.372803
+22 30 10 0.70752 0.986328 0.372803
+22 30 11 0.70752 0.986328 0.372803
+22 30 12 0.70752 0.986328 0.372803
+22 30 13 0.70752 0.986328 0.372803
+22 30 14 0.708008 0.986328 0.372803
+22 30 15 0.708008 0.986328 0.373047
+22 30 16 0.708496 0.986816 0.375732
+22 30 17 0.712891 0.990723 0.427246
+22 30 18 0.717773 0.995605 0.483154
+22 30 19 0.723145 1 0.541016
+22 30 20 0.728516 1 0.597656
+22 30 21 0.73291 1 0.653809
+22 30 22 0.736816 1 0.70752
+22 30 23 0.73877 1 0.756348
+22 30 24 0.739746 1 0.80127
+22 30 25 0.73877 0.996582 0.845703
+22 30 26 0.73584 0.986328 0.88916
+22 30 27 0.72998 0.972168 0.930664
+22 30 28 0.72168 0.953125 0.969238
+22 30 29 0.709961 0.929199 1
+22 30 30 0.694824 0.900879 1
+22 30 31 0.677246 0.867676 1
+22 31 0 0.679688 0.983398 0.369873
+22 31 1 0.679688 0.983398 0.369873
+22 31 2 0.679688 0.983398 0.369873
+22 31 3 0.679688 0.983398 0.369873
+22 31 4 0.679688 0.983398 0.369873
+22 31 5 0.679688 0.983398 0.369873
+22 31 6 0.679688 0.983398 0.369873
+22 31 7 0.679688 0.983398 0.369873
+22 31 8 0.679688 0.983398 0.369873
+22 31 9 0.679688 0.983398 0.369873
+22 31 10 0.679688 0.983398 0.369873
+22 31 11 0.679688 0.983398 0.369873
+22 31 12 0.679688 0.983398 0.369873
+22 31 13 0.679688 0.983398 0.369873
+22 31 14 0.679688 0.983398 0.369873
+22 31 15 0.679688 0.983398 0.369873
+22 31 16 0.680176 0.983398 0.369873
+22 31 17 0.683105 0.986816 0.405762
+22 31 18 0.687988 0.991211 0.458252
+22 31 19 0.693359 0.996094 0.512207
+22 31 20 0.69873 1 0.565918
+22 31 21 0.703613 1 0.619629
+22 31 22 0.708496 1 0.670898
+22 31 23 0.711914 1 0.71875
+22 31 24 0.713867 1 0.762695
+22 31 25 0.714844 1 0.807617
+22 31 26 0.714355 0.995117 0.852051
+22 31 27 0.711914 0.984863 0.895508
+22 31 28 0.706543 0.969727 0.937012
+22 31 29 0.69873 0.950195 0.974609
+22 31 30 0.6875 0.925781 1
+22 31 31 0.67334 0.896484 1
+23 0 0 0.840332 0.621582 0
+23 0 1 0.840332 0.621582 0
+23 0 2 0.840332 0.621582 0
+23 0 3 0.840332 0.621582 0
+23 0 4 0.840332 0.621582 0
+23 0 5 0.840332 0.621582 0
+23 0 6 0.840332 0.621582 0
+23 0 7 0.840332 0.621582 0
+23 0 8 0.840332 0.621582 0
+23 0 9 0.840332 0.621582 0
+23 0 10 0.840332 0.62207 0
+23 0 11 0.84082 0.62207 0
+23 0 12 0.84082 0.622559 0
+23 0 13 0.841309 0.623047 0
+23 0 14 0.84082 0.623047 0
+23 0 15 0.844727 0.625977 0.223999
+23 0 16 0.854492 0.632324 0.356445
+23 0 17 0.865723 0.640137 0.466309
+23 0 18 0.880859 0.65332 0.571777
+23 0 19 0.901855 0.675781 0.675781
+23 0 20 0.919434 0.698242 0.767578
+23 0 21 0.923828 0.708496 0.841797
+23 0 22 0.913574 0.702637 0.897461
+23 0 23 0.896973 0.689941 0.94043
+23 0 24 0.876953 0.675293 0.973633
+23 0 25 0.851074 0.655273 0.998535
+23 0 26 0.819336 0.630859 1
+23 0 27 0.783691 0.604004 1
+23 0 28 0.74707 0.575684 1
+23 0 29 0.710938 0.54834 1
+23 0 30 0.676758 0.521973 1
+23 0 31 0.64502 0.498047 1
+23 1 0 0.840332 0.621582 0
+23 1 1 0.840332 0.621582 0
+23 1 2 0.840332 0.621582 0
+23 1 3 0.840332 0.621582 0
+23 1 4 0.840332 0.621582 0
+23 1 5 0.840332 0.621582 0
+23 1 6 0.840332 0.621582 0
+23 1 7 0.840332 0.621582 0
+23 1 8 0.840332 0.621582 0
+23 1 9 0.840332 0.621582 0
+23 1 10 0.840332 0.62207 0
+23 1 11 0.84082 0.62207 0
+23 1 12 0.84082 0.622559 0
+23 1 13 0.841309 0.623535 0
+23 1 14 0.84082 0.623047 0
+23 1 15 0.844727 0.625977 0.223999
+23 1 16 0.854492 0.632324 0.356445
+23 1 17 0.865723 0.640137 0.466309
+23 1 18 0.880859 0.65332 0.571777
+23 1 19 0.901855 0.675781 0.675781
+23 1 20 0.919434 0.698242 0.767578
+23 1 21 0.923828 0.708496 0.841797
+23 1 22 0.913574 0.702637 0.897461
+23 1 23 0.896973 0.689941 0.94043
+23 1 24 0.876953 0.675293 0.973633
+23 1 25 0.851074 0.655273 0.998535
+23 1 26 0.819336 0.630859 1
+23 1 27 0.783691 0.604004 1
+23 1 28 0.74707 0.575684 1
+23 1 29 0.710938 0.54834 1
+23 1 30 0.676758 0.521973 1
+23 1 31 0.64502 0.498047 1
+23 2 0 0.840332 0.621582 0
+23 2 1 0.840332 0.621582 0
+23 2 2 0.840332 0.621582 0
+23 2 3 0.840332 0.621582 0
+23 2 4 0.840332 0.621582 0
+23 2 5 0.840332 0.621582 0
+23 2 6 0.840332 0.621582 0
+23 2 7 0.840332 0.621582 0
+23 2 8 0.840332 0.621582 0
+23 2 9 0.840332 0.621582 0
+23 2 10 0.840332 0.62207 0
+23 2 11 0.84082 0.62207 0
+23 2 12 0.84082 0.622559 0
+23 2 13 0.841309 0.623535 0
+23 2 14 0.84082 0.623535 0
+23 2 15 0.844727 0.625977 0.223999
+23 2 16 0.854492 0.632324 0.356445
+23 2 17 0.865723 0.640137 0.466309
+23 2 18 0.880859 0.65332 0.571777
+23 2 19 0.901855 0.675781 0.675781
+23 2 20 0.919434 0.698242 0.767578
+23 2 21 0.923828 0.708496 0.841797
+23 2 22 0.913574 0.702637 0.897461
+23 2 23 0.896973 0.69043 0.94043
+23 2 24 0.876953 0.675293 0.973633
+23 2 25 0.851074 0.655273 0.998535
+23 2 26 0.819336 0.630859 1
+23 2 27 0.783691 0.604004 1
+23 2 28 0.74707 0.575684 1
+23 2 29 0.710938 0.54834 1
+23 2 30 0.676758 0.521973 1
+23 2 31 0.64502 0.498047 1
+23 3 0 0.840332 0.621582 0
+23 3 1 0.840332 0.621582 0
+23 3 2 0.840332 0.621582 0
+23 3 3 0.840332 0.621582 0
+23 3 4 0.840332 0.621582 0
+23 3 5 0.840332 0.621582 0
+23 3 6 0.840332 0.621582 0
+23 3 7 0.840332 0.621582 0
+23 3 8 0.840332 0.621582 0
+23 3 9 0.840332 0.621582 0
+23 3 10 0.840332 0.62207 0
+23 3 11 0.84082 0.62207 0
+23 3 12 0.84082 0.622559 0
+23 3 13 0.841309 0.623535 0
+23 3 14 0.84082 0.623535 0
+23 3 15 0.844727 0.625977 0.223999
+23 3 16 0.854492 0.632324 0.356445
+23 3 17 0.865723 0.640137 0.466309
+23 3 18 0.880859 0.65332 0.571777
+23 3 19 0.901855 0.675781 0.675781
+23 3 20 0.919434 0.698242 0.767578
+23 3 21 0.923828 0.708496 0.841797
+23 3 22 0.913574 0.702637 0.897461
+23 3 23 0.896973 0.69043 0.94043
+23 3 24 0.876953 0.675293 0.973633
+23 3 25 0.851074 0.655273 0.998535
+23 3 26 0.819336 0.630859 1
+23 3 27 0.783691 0.604004 1
+23 3 28 0.74707 0.575684 1
+23 3 29 0.710938 0.54834 1
+23 3 30 0.676758 0.521973 1
+23 3 31 0.64502 0.498047 1
+23 4 0 0.840332 0.621582 0
+23 4 1 0.840332 0.621582 0
+23 4 2 0.840332 0.621582 0
+23 4 3 0.840332 0.621582 0
+23 4 4 0.840332 0.621582 0
+23 4 5 0.840332 0.621582 0
+23 4 6 0.840332 0.621582 0
+23 4 7 0.840332 0.621582 0
+23 4 8 0.840332 0.621582 0
+23 4 9 0.840332 0.621582 0
+23 4 10 0.840332 0.62207 0
+23 4 11 0.84082 0.62207 0
+23 4 12 0.84082 0.622559 0
+23 4 13 0.841309 0.623535 0
+23 4 14 0.84082 0.623535 0
+23 4 15 0.844727 0.625977 0.223999
+23 4 16 0.854492 0.632324 0.356445
+23 4 17 0.865723 0.640137 0.466309
+23 4 18 0.880859 0.65332 0.571777
+23 4 19 0.901855 0.675781 0.675781
+23 4 20 0.919434 0.698242 0.767578
+23 4 21 0.923828 0.708496 0.841797
+23 4 22 0.913574 0.702637 0.897461
+23 4 23 0.896973 0.69043 0.94043
+23 4 24 0.876953 0.675293 0.973633
+23 4 25 0.851074 0.655273 0.998535
+23 4 26 0.819336 0.630859 1
+23 4 27 0.783691 0.604004 1
+23 4 28 0.74707 0.575684 1
+23 4 29 0.710938 0.54834 1
+23 4 30 0.676758 0.521973 1
+23 4 31 0.64502 0.498047 1
+23 5 0 0.840332 0.621582 0
+23 5 1 0.840332 0.621582 0
+23 5 2 0.840332 0.621582 0
+23 5 3 0.840332 0.621582 0
+23 5 4 0.840332 0.621582 0
+23 5 5 0.840332 0.621582 0
+23 5 6 0.840332 0.621582 0
+23 5 7 0.840332 0.621582 0
+23 5 8 0.840332 0.621582 0
+23 5 9 0.840332 0.62207 0
+23 5 10 0.84082 0.62207 0
+23 5 11 0.84082 0.62207 0
+23 5 12 0.84082 0.622559 0
+23 5 13 0.841309 0.623535 0
+23 5 14 0.84082 0.623535 0
+23 5 15 0.844727 0.625977 0.223999
+23 5 16 0.854492 0.632324 0.356445
+23 5 17 0.865723 0.640137 0.466309
+23 5 18 0.880859 0.65332 0.571777
+23 5 19 0.901855 0.675781 0.675781
+23 5 20 0.919434 0.698242 0.767578
+23 5 21 0.923828 0.708496 0.841797
+23 5 22 0.913574 0.702637 0.897461
+23 5 23 0.896973 0.69043 0.94043
+23 5 24 0.876953 0.675293 0.973633
+23 5 25 0.851074 0.655273 0.998535
+23 5 26 0.819336 0.630859 1
+23 5 27 0.783691 0.604004 1
+23 5 28 0.74707 0.575684 1
+23 5 29 0.710938 0.54834 1
+23 5 30 0.676758 0.521973 1
+23 5 31 0.64502 0.498047 1
+23 6 0 0.840332 0.621582 0
+23 6 1 0.840332 0.621582 0
+23 6 2 0.840332 0.621582 0
+23 6 3 0.840332 0.621582 0
+23 6 4 0.840332 0.621582 0
+23 6 5 0.840332 0.621582 0
+23 6 6 0.840332 0.62207 0
+23 6 7 0.840332 0.62207 0
+23 6 8 0.840332 0.62207 0
+23 6 9 0.840332 0.62207 0
+23 6 10 0.84082 0.62207 0
+23 6 11 0.84082 0.622559 0
+23 6 12 0.84082 0.623047 0
+23 6 13 0.841309 0.623535 0
+23 6 14 0.84082 0.623535 0
+23 6 15 0.844727 0.625977 0.223999
+23 6 16 0.854492 0.632324 0.356445
+23 6 17 0.865723 0.640625 0.466309
+23 6 18 0.880859 0.65332 0.571777
+23 6 19 0.901855 0.675781 0.675781
+23 6 20 0.919434 0.698242 0.767578
+23 6 21 0.923828 0.708496 0.841797
+23 6 22 0.913574 0.703125 0.897461
+23 6 23 0.896973 0.69043 0.94043
+23 6 24 0.876953 0.675293 0.973633
+23 6 25 0.851074 0.655273 0.998535
+23 6 26 0.819336 0.630859 1
+23 6 27 0.783691 0.604004 1
+23 6 28 0.74707 0.576172 1
+23 6 29 0.710938 0.54834 1
+23 6 30 0.676758 0.521973 1
+23 6 31 0.64502 0.498047 1
+23 7 0 0.840332 0.62207 0
+23 7 1 0.840332 0.62207 0
+23 7 2 0.840332 0.62207 0
+23 7 3 0.84082 0.62207 0
+23 7 4 0.84082 0.62207 0
+23 7 5 0.84082 0.62207 0
+23 7 6 0.84082 0.62207 0
+23 7 7 0.84082 0.62207 0
+23 7 8 0.84082 0.62207 0
+23 7 9 0.84082 0.62207 0
+23 7 10 0.84082 0.622559 0
+23 7 11 0.84082 0.622559 0
+23 7 12 0.84082 0.623047 0
+23 7 13 0.841309 0.624023 0
+23 7 14 0.84082 0.623535 0
+23 7 15 0.844727 0.626465 0.224121
+23 7 16 0.854492 0.632812 0.356445
+23 7 17 0.865723 0.640625 0.466309
+23 7 18 0.880859 0.65332 0.571777
+23 7 19 0.901855 0.67627 0.675781
+23 7 20 0.919434 0.69873 0.767578
+23 7 21 0.923828 0.708496 0.841797
+23 7 22 0.913574 0.703125 0.897461
+23 7 23 0.896973 0.69043 0.94043
+23 7 24 0.877441 0.675293 0.973633
+23 7 25 0.851074 0.655273 0.998535
+23 7 26 0.819336 0.631348 1
+23 7 27 0.783691 0.604004 1
+23 7 28 0.74707 0.576172 1
+23 7 29 0.710938 0.54834 1
+23 7 30 0.676758 0.522461 1
+23 7 31 0.64502 0.498047 1
+23 8 0 0.84082 0.622559 0
+23 8 1 0.84082 0.622559 0
+23 8 2 0.84082 0.622559 0
+23 8 3 0.84082 0.622559 0
+23 8 4 0.84082 0.622559 0
+23 8 5 0.84082 0.622559 0
+23 8 6 0.84082 0.622559 0
+23 8 7 0.84082 0.622559 0
+23 8 8 0.84082 0.622559 0
+23 8 9 0.84082 0.622559 0
+23 8 10 0.84082 0.623047 0
+23 8 11 0.84082 0.623047 0
+23 8 12 0.841309 0.623535 0
+23 8 13 0.841309 0.624023 0
+23 8 14 0.84082 0.624023 0
+23 8 15 0.845215 0.626953 0.224243
+23 8 16 0.854492 0.633301 0.356445
+23 8 17 0.865723 0.641113 0.466309
+23 8 18 0.880859 0.653809 0.571777
+23 8 19 0.901855 0.67627 0.675781
+23 8 20 0.919434 0.69873 0.767578
+23 8 21 0.923828 0.708984 0.841797
+23 8 22 0.913574 0.703125 0.897461
+23 8 23 0.896973 0.690918 0.94043
+23 8 24 0.877441 0.675781 0.973633
+23 8 25 0.851074 0.655762 0.998535
+23 8 26 0.819336 0.631348 1
+23 8 27 0.783691 0.604492 1
+23 8 28 0.74707 0.576172 1
+23 8 29 0.710938 0.548828 1
+23 8 30 0.676758 0.522461 1
+23 8 31 0.645508 0.498291 1
+23 9 0 0.84082 0.623535 0
+23 9 1 0.84082 0.623535 0
+23 9 2 0.84082 0.623535 0
+23 9 3 0.84082 0.623535 0
+23 9 4 0.84082 0.623535 0
+23 9 5 0.84082 0.623535 0
+23 9 6 0.84082 0.623535 0
+23 9 7 0.841309 0.623535 0
+23 9 8 0.841309 0.623535 0
+23 9 9 0.841309 0.623535 0
+23 9 10 0.841309 0.623535 0
+23 9 11 0.841309 0.624023 0
+23 9 12 0.841309 0.624512 0
+23 9 13 0.841797 0.625 0
+23 9 14 0.841309 0.625 0
+23 9 15 0.845215 0.627441 0.224487
+23 9 16 0.85498 0.633789 0.356445
+23 9 17 0.866211 0.641602 0.466309
+23 9 18 0.880859 0.654297 0.571289
+23 9 19 0.901855 0.676758 0.675781
+23 9 20 0.919434 0.699219 0.767578
+23 9 21 0.923828 0.709473 0.841797
+23 9 22 0.913574 0.704102 0.897461
+23 9 23 0.896973 0.691406 0.94043
+23 9 24 0.877441 0.67627 0.973633
+23 9 25 0.851074 0.65625 0.998535
+23 9 26 0.819336 0.631836 1
+23 9 27 0.78418 0.604492 1
+23 9 28 0.74707 0.57666 1
+23 9 29 0.710938 0.548828 1
+23 9 30 0.676758 0.522949 1
+23 9 31 0.645508 0.498535 1
+23 10 0 0.841797 0.625 0
+23 10 1 0.841797 0.625 0
+23 10 2 0.841797 0.625 0
+23 10 3 0.841797 0.625 0
+23 10 4 0.841797 0.625 0
+23 10 5 0.841797 0.625 0
+23 10 6 0.841797 0.625 0
+23 10 7 0.841797 0.625 0
+23 10 8 0.841797 0.625 0
+23 10 9 0.841797 0.625 0
+23 10 10 0.841797 0.625488 0
+23 10 11 0.841797 0.625488 0
+23 10 12 0.842285 0.625977 0
+23 10 13 0.842285 0.626953 0
+23 10 14 0.841797 0.626465 0
+23 10 15 0.845703 0.628906 0.224976
+23 10 16 0.85498 0.635254 0.356445
+23 10 17 0.866211 0.643066 0.466553
+23 10 18 0.880859 0.655273 0.571289
+23 10 19 0.901855 0.677734 0.675293
+23 10 20 0.919434 0.700195 0.767578
+23 10 21 0.923828 0.710449 0.841797
+23 10 22 0.914062 0.70459 0.897461
+23 10 23 0.897461 0.692383 0.94043
+23 10 24 0.877441 0.677246 0.973633
+23 10 25 0.851562 0.657227 0.998535
+23 10 26 0.819336 0.632812 1
+23 10 27 0.78418 0.605469 1
+23 10 28 0.747559 0.577148 1
+23 10 29 0.711426 0.549805 1
+23 10 30 0.676758 0.523438 1
+23 10 31 0.645508 0.499023 1
+23 11 0 0.842773 0.62793 0
+23 11 1 0.842773 0.62793 0
+23 11 2 0.842773 0.62793 0
+23 11 3 0.842773 0.62793 0
+23 11 4 0.842773 0.62793 0
+23 11 5 0.842773 0.62793 0
+23 11 6 0.842773 0.62793 0
+23 11 7 0.842773 0.62793 0
+23 11 8 0.842773 0.62793 0
+23 11 9 0.842773 0.62793 0
+23 11 10 0.842773 0.628418 0
+23 11 11 0.842773 0.628418 0
+23 11 12 0.843262 0.628906 0
+23 11 13 0.843262 0.629883 0
+23 11 14 0.842773 0.629395 0
+23 11 15 0.84668 0.631836 0.22583
+23 11 16 0.855469 0.637695 0.356689
+23 11 17 0.867188 0.645508 0.466553
+23 11 18 0.880859 0.657227 0.571289
+23 11 19 0.901855 0.679199 0.675293
+23 11 20 0.919434 0.70166 0.767578
+23 11 21 0.924316 0.711914 0.841797
+23 11 22 0.914062 0.706543 0.897461
+23 11 23 0.897461 0.693848 0.94043
+23 11 24 0.877441 0.678711 0.973633
+23 11 25 0.851562 0.658691 0.998535
+23 11 26 0.819824 0.633789 1
+23 11 27 0.78418 0.606934 1
+23 11 28 0.747559 0.578613 1
+23 11 29 0.711426 0.550781 1
+23 11 30 0.677246 0.524414 1
+23 11 31 0.645508 0.5 1
+23 12 0 0.844238 0.632812 0
+23 12 1 0.844238 0.632812 0
+23 12 2 0.844238 0.632812 0
+23 12 3 0.844238 0.632812 0
+23 12 4 0.844238 0.632812 0
+23 12 5 0.844238 0.632812 0
+23 12 6 0.844238 0.632812 0
+23 12 7 0.844238 0.632812 0
+23 12 8 0.844238 0.632812 0
+23 12 9 0.844238 0.632812 0
+23 12 10 0.844238 0.633301 0
+23 12 11 0.844727 0.633301 0
+23 12 12 0.844727 0.633789 0
+23 12 13 0.845215 0.634766 0
+23 12 14 0.844238 0.634277 0
+23 12 15 0.848145 0.63623 0.227539
+23 12 16 0.856445 0.641602 0.356689
+23 12 17 0.868164 0.649902 0.467041
+23 12 18 0.881348 0.660645 0.570801
+23 12 19 0.901855 0.682129 0.674805
+23 12 20 0.919434 0.70459 0.76709
+23 12 21 0.924316 0.714844 0.841797
+23 12 22 0.914551 0.709473 0.897949
+23 12 23 0.897949 0.696777 0.940918
+23 12 24 0.87793 0.681152 0.973633
+23 12 25 0.852051 0.661133 0.999023
+23 12 26 0.819824 0.63623 1
+23 12 27 0.78418 0.608887 1
+23 12 28 0.747559 0.580566 1
+23 12 29 0.711426 0.552246 1
+23 12 30 0.677246 0.525879 1
+23 12 31 0.645508 0.501465 1
+23 13 0 0.847168 0.640625 0
+23 13 1 0.847168 0.640625 0
+23 13 2 0.847168 0.640625 0
+23 13 3 0.847168 0.640625 0
+23 13 4 0.847168 0.640625 0
+23 13 5 0.847168 0.640625 0
+23 13 6 0.847168 0.640625 0
+23 13 7 0.847168 0.640625 0
+23 13 8 0.847168 0.640625 0
+23 13 9 0.847168 0.641113 0
+23 13 10 0.847168 0.641113 0
+23 13 11 0.847168 0.641113 0
+23 13 12 0.847656 0.641602 0
+23 13 13 0.847656 0.642578 0
+23 13 14 0.847168 0.64209 0
+23 13 15 0.850586 0.644043 0.230713
+23 13 16 0.858398 0.648438 0.357422
+23 13 17 0.869629 0.656738 0.468018
+23 13 18 0.881836 0.666016 0.570312
+23 13 19 0.901367 0.686523 0.673828
+23 13 20 0.919434 0.708984 0.766602
+23 13 21 0.924805 0.719238 0.841797
+23 13 22 0.915039 0.713867 0.897949
+23 13 23 0.898438 0.701172 0.940918
+23 13 24 0.878418 0.685547 0.974121
+23 13 25 0.852539 0.665039 0.999023
+23 13 26 0.820312 0.640137 1
+23 13 27 0.784668 0.612305 1
+23 13 28 0.748047 0.583496 1
+23 13 29 0.711914 0.555664 1
+23 13 30 0.677734 0.528809 1
+23 13 31 0.645996 0.503906 1
+23 14 0 0.851562 0.65332 0
+23 14 1 0.851562 0.65332 0
+23 14 2 0.851562 0.65332 0
+23 14 3 0.851562 0.65332 0
+23 14 4 0.851562 0.65332 0
+23 14 5 0.851562 0.65332 0
+23 14 6 0.851562 0.65332 0
+23 14 7 0.851562 0.65332 0
+23 14 8 0.851562 0.65332 0
+23 14 9 0.851562 0.65332 0
+23 14 10 0.851562 0.65332 0
+23 14 11 0.851562 0.653809 0
+23 14 12 0.852051 0.654297 0
+23 14 13 0.852051 0.654785 0
+23 14 14 0.851562 0.654297 0
+23 14 15 0.854492 0.655762 0.236938
+23 14 16 0.861328 0.65918 0.359131
+23 14 17 0.87207 0.666992 0.46875
+23 14 18 0.882812 0.674805 0.569824
+23 14 19 0.901367 0.693359 0.672363
+23 14 20 0.919434 0.715332 0.766113
+23 14 21 0.925293 0.726562 0.841797
+23 14 22 0.916016 0.721191 0.898438
+23 14 23 0.899414 0.708008 0.941406
+23 14 24 0.879395 0.692383 0.974609
+23 14 25 0.853027 0.671387 0.999512
+23 14 26 0.820801 0.645996 1
+23 14 27 0.785156 0.617676 1
+23 14 28 0.748535 0.588867 1
+23 14 29 0.712402 0.560059 1
+23 14 30 0.677734 0.533203 1
+23 14 31 0.646484 0.508301 1
+23 15 0 0.858398 0.671875 0
+23 15 1 0.858398 0.671875 0
+23 15 2 0.858398 0.671875 0
+23 15 3 0.858398 0.671875 0
+23 15 4 0.858398 0.671875 0
+23 15 5 0.858398 0.671875 0
+23 15 6 0.858398 0.671875 0
+23 15 7 0.858398 0.671875 0
+23 15 8 0.858398 0.671875 0
+23 15 9 0.858398 0.671875 0
+23 15 10 0.858398 0.672363 0
+23 15 11 0.858398 0.672363 0
+23 15 12 0.858887 0.672852 0
+23 15 13 0.858887 0.67334 0
+23 15 14 0.85791 0.672852 0
+23 15 15 0.86084 0.673828 0.248535
+23 15 16 0.866211 0.675781 0.363281
+23 15 17 0.874023 0.681152 0.468506
+23 15 18 0.884277 0.688477 0.569336
+23 15 19 0.900879 0.703613 0.669922
+23 15 20 0.918945 0.725098 0.764648
+23 15 21 0.925781 0.736816 0.841797
+23 15 22 0.916992 0.731934 0.898438
+23 15 23 0.900391 0.718262 0.941895
+23 15 24 0.880371 0.702637 0.975098
+23 15 25 0.854004 0.681152 1
+23 15 26 0.821777 0.654785 1
+23 15 27 0.785645 0.625977 1
+23 15 28 0.749023 0.596191 1
+23 15 29 0.712891 0.566895 1
+23 15 30 0.678711 0.539551 1
+23 15 31 0.646973 0.51416 1
+23 16 0 0.868164 0.698242 0
+23 16 1 0.868164 0.698242 0
+23 16 2 0.868164 0.698242 0
+23 16 3 0.868164 0.698242 0
+23 16 4 0.868164 0.698242 0
+23 16 5 0.868164 0.698242 0
+23 16 6 0.868164 0.698242 0
+23 16 7 0.868164 0.698242 0
+23 16 8 0.868164 0.698242 0
+23 16 9 0.868164 0.69873 0
+23 16 10 0.868164 0.69873 0
+23 16 11 0.868164 0.69873 0
+23 16 12 0.868652 0.699219 0
+23 16 13 0.868652 0.699707 0
+23 16 14 0.868164 0.699707 0.120911
+23 16 15 0.870605 0.700195 0.268799
+23 16 16 0.874023 0.700684 0.372559
+23 16 17 0.878906 0.702637 0.470947
+23 16 18 0.888184 0.708984 0.570312
+23 16 19 0.899902 0.71875 0.666992
+23 16 20 0.917969 0.73877 0.761719
+23 16 21 0.92627 0.751465 0.84082
+23 16 22 0.917969 0.74707 0.898926
+23 16 23 0.901855 0.733398 0.941895
+23 16 24 0.881836 0.716797 0.975586
+23 16 25 0.855469 0.694824 1
+23 16 26 0.822754 0.66748 1
+23 16 27 0.786621 0.637695 1
+23 16 28 0.75 0.606934 1
+23 16 29 0.713379 0.577148 1
+23 16 30 0.679688 0.548828 1
+23 16 31 0.648438 0.522949 1
+23 17 0 0.881348 0.73291 0.0822144
+23 17 1 0.881348 0.73291 0.0822144
+23 17 2 0.881348 0.73291 0.0822144
+23 17 3 0.881348 0.73291 0.0822144
+23 17 4 0.881348 0.73291 0.0822754
+23 17 5 0.881348 0.73291 0.0822754
+23 17 6 0.881348 0.73291 0.0823364
+23 17 7 0.881348 0.73291 0.0824585
+23 17 8 0.881348 0.73291 0.0827026
+23 17 9 0.881348 0.73291 0.0831299
+23 17 10 0.881348 0.733398 0.0839233
+23 17 11 0.881348 0.733398 0.0853271
+23 17 12 0.881836 0.733887 0.0875854
+23 17 13 0.881836 0.734375 0.0910645
+23 17 14 0.882812 0.734863 0.197021
+23 17 15 0.884766 0.734863 0.298828
+23 17 16 0.88623 0.734375 0.389648
+23 17 17 0.887695 0.733398 0.479004
+23 17 18 0.89209 0.734863 0.570801
+23 17 19 0.900391 0.740234 0.664062
+23 17 20 0.915527 0.755859 0.757324
+23 17 21 0.925781 0.77002 0.838867
+23 17 22 0.919434 0.766602 0.898438
+23 17 23 0.90332 0.75293 0.941895
+23 17 24 0.883789 0.735352 0.975586
+23 17 25 0.856934 0.712402 1
+23 17 26 0.82373 0.684082 1
+23 17 27 0.787598 0.65332 1
+23 17 28 0.750488 0.621582 1
+23 17 29 0.714844 0.59082 1
+23 17 30 0.680664 0.561523 1
+23 17 31 0.649902 0.534668 1
+23 18 0 0.899414 0.775391 0.216187
+23 18 1 0.899414 0.775391 0.216187
+23 18 2 0.899414 0.775391 0.216187
+23 18 3 0.899414 0.775391 0.216187
+23 18 4 0.899414 0.775391 0.216187
+23 18 5 0.899414 0.775391 0.216187
+23 18 6 0.899414 0.775391 0.216187
+23 18 7 0.899414 0.775391 0.216187
+23 18 8 0.899414 0.775391 0.216309
+23 18 9 0.899414 0.775391 0.216431
+23 18 10 0.899414 0.775391 0.216553
+23 18 11 0.899414 0.775879 0.216919
+23 18 12 0.899414 0.775879 0.217407
+23 18 13 0.899902 0.776367 0.218262
+23 18 14 0.900391 0.777344 0.258301
+23 18 15 0.901367 0.777344 0.335938
+23 18 16 0.901855 0.776367 0.415039
+23 18 17 0.901367 0.773926 0.495605
+23 18 18 0.900391 0.77002 0.577148
+23 18 19 0.90332 0.770508 0.664062
+23 18 20 0.911621 0.777344 0.750488
+23 18 21 0.923828 0.791504 0.834961
+23 18 22 0.919922 0.790039 0.896973
+23 18 23 0.904785 0.776367 0.941406
+23 18 24 0.885254 0.758301 0.975098
+23 18 25 0.85791 0.733887 0.999023
+23 18 26 0.824707 0.704102 1
+23 18 27 0.788574 0.671875 1
+23 18 28 0.751465 0.63916 1
+23 18 29 0.71582 0.607422 1
+23 18 30 0.682617 0.577148 1
+23 18 31 0.651855 0.549805 1
+23 19 0 0.916992 0.820801 0.286377
+23 19 1 0.916992 0.820801 0.286377
+23 19 2 0.916992 0.820801 0.286377
+23 19 3 0.916992 0.820801 0.286377
+23 19 4 0.916992 0.820801 0.286377
+23 19 5 0.916992 0.820801 0.286377
+23 19 6 0.916992 0.820801 0.286377
+23 19 7 0.916992 0.820801 0.286377
+23 19 8 0.916992 0.820801 0.286377
+23 19 9 0.916992 0.820801 0.286621
+23 19 10 0.916992 0.820801 0.286621
+23 19 11 0.916992 0.820801 0.286865
+23 19 12 0.916992 0.821289 0.287109
+23 19 13 0.91748 0.821777 0.287598
+23 19 14 0.917969 0.822266 0.308105
+23 19 15 0.918945 0.822754 0.372803
+23 19 16 0.919434 0.822266 0.444092
+23 19 17 0.917969 0.819824 0.518555
+23 19 18 0.914062 0.814453 0.592773
+23 19 19 0.90918 0.806641 0.666992
+23 19 20 0.910156 0.805176 0.745117
+23 19 21 0.919434 0.814453 0.827637
+23 19 22 0.919434 0.816406 0.894043
+23 19 23 0.905273 0.802246 0.939453
+23 19 24 0.885742 0.78418 0.973145
+23 19 25 0.858398 0.757812 0.996582
+23 19 26 0.824707 0.727051 1
+23 19 27 0.789062 0.693359 1
+23 19 28 0.752441 0.659668 1
+23 19 29 0.717773 0.626953 1
+23 19 30 0.68457 0.596191 1
+23 19 31 0.654297 0.567383 1
+23 20 0 0.930664 0.864258 0.33374
+23 20 1 0.930664 0.864258 0.33374
+23 20 2 0.930664 0.864258 0.33374
+23 20 3 0.930664 0.864258 0.33374
+23 20 4 0.930664 0.864258 0.33374
+23 20 5 0.930664 0.864258 0.33374
+23 20 6 0.930664 0.864258 0.33374
+23 20 7 0.930664 0.864258 0.33374
+23 20 8 0.930664 0.864258 0.333984
+23 20 9 0.930664 0.864258 0.333984
+23 20 10 0.930664 0.864258 0.333984
+23 20 11 0.930664 0.864258 0.333984
+23 20 12 0.930664 0.864746 0.334229
+23 20 13 0.931152 0.864746 0.334473
+23 20 14 0.931152 0.865723 0.343262
+23 20 15 0.933105 0.866699 0.401611
+23 20 16 0.934082 0.866699 0.468506
+23 20 17 0.933594 0.865723 0.540039
+23 20 18 0.930176 0.86084 0.612305
+23 20 19 0.922363 0.852051 0.680664
+23 20 20 0.913086 0.840332 0.745605
+23 20 21 0.912109 0.837402 0.817383
+23 20 22 0.916992 0.842285 0.888672
+23 20 23 0.904297 0.82959 0.935547
+23 20 24 0.885254 0.810547 0.969238
+23 20 25 0.856934 0.783203 0.992188
+23 20 26 0.82373 0.750488 1
+23 20 27 0.788574 0.716309 1
+23 20 28 0.753418 0.681641 1
+23 20 29 0.719727 0.648438 1
+23 20 30 0.6875 0.617188 1
+23 20 31 0.658203 0.587402 1
+23 21 0 0.937988 0.903809 0.363525
+23 21 1 0.937988 0.903809 0.363525
+23 21 2 0.937988 0.903809 0.363525
+23 21 3 0.937988 0.903809 0.363525
+23 21 4 0.937988 0.903809 0.363525
+23 21 5 0.937988 0.903809 0.363525
+23 21 6 0.937988 0.903809 0.363525
+23 21 7 0.937988 0.903809 0.363525
+23 21 8 0.937988 0.903809 0.363525
+23 21 9 0.937988 0.903809 0.36377
+23 21 10 0.937988 0.903809 0.36377
+23 21 11 0.937988 0.903809 0.36377
+23 21 12 0.937988 0.904297 0.36377
+23 21 13 0.937988 0.904297 0.364014
+23 21 14 0.938477 0.904785 0.364258
+23 21 15 0.939941 0.90625 0.418213
+23 21 16 0.941895 0.907227 0.483154
+23 21 17 0.942871 0.907227 0.553711
+23 21 18 0.941406 0.904297 0.625977
+23 21 19 0.935547 0.897461 0.695312
+23 21 20 0.924805 0.885254 0.756348
+23 21 21 0.911133 0.869141 0.812988
+23 21 22 0.910156 0.866699 0.878906
+23 21 23 0.901855 0.857422 0.929688
+23 21 24 0.882812 0.836914 0.962891
+23 21 25 0.854004 0.807617 0.985352
+23 21 26 0.821777 0.774414 1
+23 21 27 0.788086 0.740234 1
+23 21 28 0.754883 0.706055 1
+23 21 29 0.722656 0.672852 1
+23 21 30 0.691406 0.640625 1
+23 21 31 0.662598 0.610352 1
+23 22 0 0.937012 0.936523 0.37915
+23 22 1 0.937012 0.936523 0.37915
+23 22 2 0.937012 0.937012 0.37915
+23 22 3 0.937012 0.937012 0.37915
+23 22 4 0.937012 0.937012 0.37915
+23 22 5 0.937012 0.937012 0.37915
+23 22 6 0.937012 0.937012 0.37915
+23 22 7 0.937012 0.937012 0.37915
+23 22 8 0.937012 0.937012 0.37915
+23 22 9 0.937012 0.937012 0.37915
+23 22 10 0.937012 0.937012 0.37915
+23 22 11 0.937012 0.937012 0.37915
+23 22 12 0.937012 0.937012 0.37915
+23 22 13 0.937012 0.937012 0.37915
+23 22 14 0.9375 0.9375 0.379395
+23 22 15 0.938965 0.938965 0.422607
+23 22 16 0.941895 0.940918 0.486328
+23 22 17 0.943848 0.941406 0.556641
+23 22 18 0.943848 0.94043 0.629395
+23 22 19 0.940918 0.935547 0.700195
+23 22 20 0.933594 0.926758 0.76416
+23 22 21 0.92041 0.911621 0.820801
+23 22 22 0.90332 0.891602 0.868164
+23 22 23 0.897461 0.884277 0.921387
+23 22 24 0.876953 0.861328 0.952637
+23 22 25 0.848633 0.831055 0.975098
+23 22 26 0.819336 0.799316 0.994629
+23 22 27 0.788574 0.766602 1
+23 22 28 0.757812 0.73291 1
+23 22 29 0.727051 0.699707 1
+23 22 30 0.697266 0.666992 1
+23 22 31 0.668457 0.635742 1
+23 23 0 0.928223 0.960449 0.385742
+23 23 1 0.928223 0.960449 0.385742
+23 23 2 0.928223 0.960449 0.385742
+23 23 3 0.928223 0.960449 0.385742
+23 23 4 0.928223 0.960449 0.385742
+23 23 5 0.928223 0.960449 0.385742
+23 23 6 0.928223 0.960449 0.385742
+23 23 7 0.928223 0.960449 0.385742
+23 23 8 0.928223 0.960449 0.385742
+23 23 9 0.928223 0.960938 0.385742
+23 23 10 0.928223 0.960938 0.385742
+23 23 11 0.928223 0.960938 0.385742
+23 23 12 0.928223 0.960938 0.385742
+23 23 13 0.928223 0.960938 0.385742
+23 23 14 0.928223 0.960938 0.385986
+23 23 15 0.929688 0.962402 0.418701
+23 23 16 0.932617 0.964355 0.481201
+23 23 17 0.935059 0.96582 0.550293
+23 23 18 0.936523 0.96582 0.622559
+23 23 19 0.935059 0.962402 0.693359
+23 23 20 0.930176 0.955566 0.759277
+23 23 21 0.921387 0.943848 0.818848
+23 23 22 0.908203 0.927734 0.870117
+23 23 23 0.891602 0.908203 0.911133
+23 23 24 0.870117 0.884277 0.941895
+23 23 25 0.84668 0.856934 0.96875
+23 23 26 0.820312 0.827148 0.991699
+23 23 27 0.791992 0.794922 1
+23 23 28 0.762207 0.76123 1
+23 23 29 0.731934 0.727051 1
+23 23 30 0.702148 0.692871 1
+23 23 31 0.67334 0.659668 1
+23 24 0 0.912109 0.975586 0.388428
+23 24 1 0.912109 0.975586 0.388428
+23 24 2 0.912109 0.975586 0.388428
+23 24 3 0.912109 0.975586 0.388428
+23 24 4 0.912109 0.975586 0.388428
+23 24 5 0.912109 0.975586 0.388428
+23 24 6 0.912109 0.975586 0.388428
+23 24 7 0.912109 0.975586 0.388428
+23 24 8 0.912109 0.975586 0.388428
+23 24 9 0.912109 0.975586 0.388428
+23 24 10 0.912109 0.975586 0.388428
+23 24 11 0.912109 0.976074 0.388428
+23 24 12 0.912109 0.976074 0.388428
+23 24 13 0.912109 0.976074 0.388428
+23 24 14 0.912109 0.976074 0.388672
+23 24 15 0.913086 0.977051 0.410889
+23 24 16 0.916016 0.979492 0.47168
+23 24 17 0.918945 0.980957 0.539551
+23 24 18 0.920898 0.981445 0.610352
+23 24 19 0.92041 0.979004 0.679688
+23 24 20 0.916504 0.972656 0.744629
+23 24 21 0.908691 0.961426 0.804199
+23 24 22 0.896484 0.945801 0.85498
+23 24 23 0.883789 0.929688 0.899414
+23 24 24 0.873047 0.915039 0.94043
+23 24 25 0.852051 0.890137 0.970703
+23 24 26 0.825195 0.858887 0.993164
+23 24 27 0.796875 0.825195 1
+23 24 28 0.76709 0.790039 1
+23 24 29 0.737305 0.754395 1
+23 24 30 0.707031 0.719238 1
+23 24 31 0.678223 0.684082 1
+23 25 0 0.890137 0.985352 0.38916
+23 25 1 0.890137 0.985352 0.38916
+23 25 2 0.890137 0.985352 0.38916
+23 25 3 0.890137 0.985352 0.38916
+23 25 4 0.890137 0.985352 0.38916
+23 25 5 0.890137 0.985352 0.38916
+23 25 6 0.890137 0.985352 0.38916
+23 25 7 0.890137 0.985352 0.38916
+23 25 8 0.890137 0.985352 0.38916
+23 25 9 0.890137 0.985352 0.38916
+23 25 10 0.890137 0.985352 0.38916
+23 25 11 0.890137 0.985352 0.38916
+23 25 12 0.890137 0.985352 0.38916
+23 25 13 0.890137 0.98584 0.38916
+23 25 14 0.890137 0.98584 0.38916
+23 25 15 0.890625 0.986328 0.400391
+23 25 16 0.893555 0.98877 0.458984
+23 25 17 0.896484 0.990723 0.524414
+23 25 18 0.898438 0.991211 0.593262
+23 25 19 0.898926 0.989258 0.661133
+23 25 20 0.896484 0.983887 0.725098
+23 25 21 0.890625 0.974609 0.78418
+23 25 22 0.881836 0.962402 0.836914
+23 25 23 0.873535 0.950195 0.884277
+23 25 24 0.864258 0.937012 0.926758
+23 25 25 0.852051 0.919922 0.96582
+23 25 26 0.832031 0.894531 0.996094
+23 25 27 0.804688 0.861328 1
+23 25 28 0.775391 0.824707 1
+23 25 29 0.745117 0.787109 1
+23 25 30 0.714844 0.749512 1
+23 25 31 0.685059 0.712891 1
+23 26 0 0.864258 0.991699 0.388428
+23 26 1 0.864258 0.991699 0.388428
+23 26 2 0.864258 0.991699 0.388428
+23 26 3 0.864258 0.991699 0.388428
+23 26 4 0.864258 0.991699 0.388428
+23 26 5 0.864258 0.991699 0.388428
+23 26 6 0.864258 0.991699 0.388428
+23 26 7 0.864258 0.991699 0.388428
+23 26 8 0.864258 0.991699 0.388428
+23 26 9 0.864258 0.991699 0.388428
+23 26 10 0.864258 0.991699 0.388428
+23 26 11 0.864258 0.991699 0.388428
+23 26 12 0.864258 0.991699 0.388428
+23 26 13 0.864258 0.991699 0.388428
+23 26 14 0.864258 0.991699 0.388428
+23 26 15 0.864258 0.991699 0.388428
+23 26 16 0.867188 0.994141 0.444336
+23 26 17 0.870117 0.996582 0.507324
+23 26 18 0.873047 0.998047 0.57373
+23 26 19 0.874512 0.99707 0.639648
+23 26 20 0.873535 0.993652 0.702637
+23 26 21 0.870605 0.987305 0.762207
+23 26 22 0.865723 0.978516 0.816895
+23 26 23 0.859863 0.96875 0.865723
+23 26 24 0.853027 0.95752 0.90918
+23 26 25 0.842773 0.942383 0.949707
+23 26 26 0.829102 0.922852 0.986816
+23 26 27 0.808594 0.895508 1
+23 26 28 0.782715 0.861328 1
+23 26 29 0.753418 0.823242 1
+23 26 30 0.723145 0.78418 1
+23 26 31 0.693359 0.745117 1
+23 27 0 0.835938 0.995605 0.386719
+23 27 1 0.835938 0.995605 0.386719
+23 27 2 0.835938 0.995605 0.386719
+23 27 3 0.835938 0.995605 0.386719
+23 27 4 0.835938 0.995605 0.386719
+23 27 5 0.835938 0.995605 0.386719
+23 27 6 0.835938 0.995605 0.386719
+23 27 7 0.835938 0.995605 0.386719
+23 27 8 0.835938 0.995605 0.386719
+23 27 9 0.835938 0.995605 0.386719
+23 27 10 0.835938 0.995605 0.386719
+23 27 11 0.835938 0.995605 0.386719
+23 27 12 0.835938 0.995605 0.386719
+23 27 13 0.835938 0.995605 0.386719
+23 27 14 0.835938 0.995605 0.386719
+23 27 15 0.835938 0.995605 0.386963
+23 27 16 0.838379 0.997559 0.428467
+23 27 17 0.842285 1 0.488525
+23 27 18 0.845703 1 0.552246
+23 27 19 0.848145 1 0.616699
+23 27 20 0.849121 1 0.678711
+23 27 21 0.849121 0.998535 0.738281
+23 27 22 0.84668 0.993164 0.793945
+23 27 23 0.84375 0.98584 0.84375
+23 27 24 0.838379 0.976074 0.887695
+23 27 25 0.830566 0.962891 0.929688
+23 27 26 0.819336 0.945312 0.96875
+23 27 27 0.804199 0.922363 1
+23 27 28 0.783691 0.893555 1
+23 27 29 0.757812 0.85791 1
+23 27 30 0.72998 0.819824 1
+23 27 31 0.700684 0.779785 1
+23 28 0 0.807129 0.997559 0.384766
+23 28 1 0.807129 0.997559 0.384766
+23 28 2 0.807129 0.997559 0.384766
+23 28 3 0.807129 0.997559 0.384766
+23 28 4 0.807129 0.997559 0.384766
+23 28 5 0.807129 0.997559 0.384766
+23 28 6 0.807129 0.997559 0.384766
+23 28 7 0.807129 0.997559 0.384766
+23 28 8 0.807129 0.997559 0.384766
+23 28 9 0.807129 0.997559 0.384766
+23 28 10 0.807129 0.997559 0.384766
+23 28 11 0.807129 0.997559 0.384766
+23 28 12 0.807129 0.997559 0.384766
+23 28 13 0.807129 0.997559 0.384766
+23 28 14 0.807129 0.997559 0.384766
+23 28 15 0.807129 0.997559 0.384766
+23 28 16 0.808594 0.999512 0.411865
+23 28 17 0.8125 1 0.468994
+23 28 18 0.816895 1 0.530273
+23 28 19 0.820312 1 0.592773
+23 28 20 0.823242 1 0.65332
+23 28 21 0.824707 1 0.711914
+23 28 22 0.825195 1 0.767578
+23 28 23 0.82373 0.999023 0.817383
+23 28 24 0.820801 0.991699 0.862305
+23 28 25 0.814941 0.980469 0.905273
+23 28 26 0.806152 0.965332 0.946289
+23 28 27 0.793945 0.945312 0.983887
+23 28 28 0.777832 0.919922 1
+23 28 29 0.756836 0.888672 1
+23 28 30 0.732422 0.852539 1
+23 28 31 0.705566 0.813477 1
+23 29 0 0.776367 0.997559 0.38208
+23 29 1 0.776367 0.997559 0.38208
+23 29 2 0.776367 0.997559 0.38208
+23 29 3 0.776367 0.997559 0.38208
+23 29 4 0.776367 0.997559 0.38208
+23 29 5 0.776367 0.997559 0.38208
+23 29 6 0.776367 0.997559 0.38208
+23 29 7 0.776367 0.997559 0.38208
+23 29 8 0.776855 0.997559 0.38208
+23 29 9 0.776855 0.997559 0.38208
+23 29 10 0.776855 0.997559 0.38208
+23 29 11 0.776855 0.997559 0.38208
+23 29 12 0.776855 0.997559 0.38208
+23 29 13 0.776855 0.997559 0.38208
+23 29 14 0.776855 0.997559 0.38208
+23 29 15 0.776855 0.997559 0.38208
+23 29 16 0.777832 0.998535 0.394531
+23 29 17 0.781738 1 0.44873
+23 29 18 0.786621 1 0.507324
+23 29 19 0.791016 1 0.566895
+23 29 20 0.794922 1 0.625488
+23 29 21 0.79834 1 0.683105
+23 29 22 0.800293 1 0.737793
+23 29 23 0.800781 1 0.787598
+23 29 24 0.799316 1 0.832031
+23 29 25 0.795898 0.994629 0.876465
+23 29 26 0.790039 0.981934 0.918945
+23 29 27 0.780273 0.964355 0.958496
+23 29 28 0.767578 0.942383 0.993652
+23 29 29 0.750977 0.915039 1
+23 29 30 0.730957 0.882812 1
+23 29 31 0.70752 0.846191 1
+23 30 0 0.746094 0.995605 0.378906
+23 30 1 0.746094 0.995605 0.378906
+23 30 2 0.746094 0.995605 0.378906
+23 30 3 0.746094 0.995605 0.378906
+23 30 4 0.746094 0.995605 0.378906
+23 30 5 0.746094 0.995605 0.378906
+23 30 6 0.746094 0.995605 0.378906
+23 30 7 0.746094 0.995605 0.378906
+23 30 8 0.746094 0.995605 0.378906
+23 30 9 0.746094 0.995605 0.378906
+23 30 10 0.746094 0.995605 0.378906
+23 30 11 0.746094 0.995605 0.378906
+23 30 12 0.746094 0.995605 0.378906
+23 30 13 0.746094 0.995605 0.378906
+23 30 14 0.746094 0.995605 0.378906
+23 30 15 0.746094 0.995605 0.378906
+23 30 16 0.746094 0.995605 0.378906
+23 30 17 0.750488 0.999512 0.427734
+23 30 18 0.754883 1 0.48291
+23 30 19 0.760254 1 0.540039
+23 30 20 0.765137 1 0.596191
+23 30 21 0.769043 1 0.651855
+23 30 22 0.772461 1 0.705078
+23 30 23 0.774414 1 0.753906
+23 30 24 0.774902 1 0.79834
+23 30 25 0.773438 1 0.842773
+23 30 26 0.769531 0.994141 0.88623
+23 30 27 0.763672 0.980469 0.928223
+23 30 28 0.753906 0.961914 0.966797
+23 30 29 0.741211 0.938477 1
+23 30 30 0.725586 0.910156 1
+23 30 31 0.706055 0.877441 1
+23 31 0 0.71582 0.992676 0.375488
+23 31 1 0.71582 0.992676 0.375488
+23 31 2 0.71582 0.992676 0.375488
+23 31 3 0.71582 0.992676 0.375488
+23 31 4 0.71582 0.992676 0.375488
+23 31 5 0.71582 0.992676 0.375488
+23 31 6 0.71582 0.992676 0.375488
+23 31 7 0.71582 0.992676 0.375488
+23 31 8 0.71582 0.992676 0.375488
+23 31 9 0.71582 0.992676 0.375488
+23 31 10 0.71582 0.992676 0.375488
+23 31 11 0.71582 0.992676 0.375488
+23 31 12 0.71582 0.992676 0.375488
+23 31 13 0.71582 0.992676 0.375488
+23 31 14 0.71582 0.992676 0.375488
+23 31 15 0.716309 0.992676 0.375488
+23 31 16 0.716309 0.992676 0.375732
+23 31 17 0.71875 0.995117 0.406982
+23 31 18 0.723633 0.999512 0.45874
+23 31 19 0.728516 1 0.512207
+23 31 20 0.733398 1 0.56543
+23 31 21 0.738281 1 0.618652
+23 31 22 0.742676 1 0.669922
+23 31 23 0.745605 1 0.717285
+23 31 24 0.747559 1 0.76123
+23 31 25 0.748047 1 0.805664
+23 31 26 0.74707 1 0.850098
+23 31 27 0.743652 0.992676 0.893555
+23 31 28 0.737793 0.978027 0.935059
+23 31 29 0.728516 0.958496 0.973145
+23 31 30 0.716309 0.934082 1
+23 31 31 0.701172 0.905273 1
+24 0 0 0.869141 0.642578 0
+24 0 1 0.869141 0.642578 0
+24 0 2 0.869141 0.642578 0
+24 0 3 0.869141 0.642578 0
+24 0 4 0.869141 0.642578 0
+24 0 5 0.869141 0.642578 0
+24 0 6 0.869141 0.642578 0
+24 0 7 0.869141 0.642578 0
+24 0 8 0.869141 0.643066 0
+24 0 9 0.869141 0.643066 0
+24 0 10 0.869141 0.643066 0
+24 0 11 0.869629 0.643066 0
+24 0 12 0.869629 0.643555 0
+24 0 13 0.869629 0.644043 0
+24 0 14 0.869629 0.644531 0
+24 0 15 0.871582 0.645996 0.159302
+24 0 16 0.880859 0.651855 0.319824
+24 0 17 0.893066 0.661133 0.437012
+24 0 18 0.904785 0.668945 0.539551
+24 0 19 0.921387 0.685547 0.641113
+24 0 20 0.937988 0.706055 0.734375
+24 0 21 0.947754 0.722168 0.813477
+24 0 22 0.944824 0.725586 0.875977
+24 0 23 0.932617 0.717285 0.922852
+24 0 24 0.915527 0.70459 0.959961
+24 0 25 0.894043 0.687988 0.991699
+24 0 26 0.866211 0.666992 1
+24 0 27 0.83252 0.641113 1
+24 0 28 0.795898 0.613281 1
+24 0 29 0.758301 0.583984 1
+24 0 30 0.721191 0.556152 1
+24 0 31 0.686035 0.529297 1
+24 1 0 0.869141 0.642578 0
+24 1 1 0.869141 0.642578 0
+24 1 2 0.869141 0.642578 0
+24 1 3 0.869141 0.642578 0
+24 1 4 0.869141 0.642578 0
+24 1 5 0.869141 0.642578 0
+24 1 6 0.869141 0.642578 0
+24 1 7 0.869141 0.642578 0
+24 1 8 0.869141 0.643066 0
+24 1 9 0.869141 0.643066 0
+24 1 10 0.869141 0.643066 0
+24 1 11 0.869629 0.643066 0
+24 1 12 0.869629 0.643555 0
+24 1 13 0.869629 0.644043 0
+24 1 14 0.869629 0.644531 0
+24 1 15 0.871582 0.645996 0.159302
+24 1 16 0.880859 0.651855 0.319824
+24 1 17 0.893066 0.661133 0.437012
+24 1 18 0.904785 0.669434 0.539551
+24 1 19 0.921387 0.685547 0.641113
+24 1 20 0.937988 0.706055 0.734375
+24 1 21 0.947754 0.722168 0.813477
+24 1 22 0.944824 0.725586 0.875977
+24 1 23 0.932617 0.717285 0.922852
+24 1 24 0.915527 0.70459 0.959961
+24 1 25 0.894043 0.687988 0.991699
+24 1 26 0.866211 0.666992 1
+24 1 27 0.83252 0.641113 1
+24 1 28 0.795898 0.613281 1
+24 1 29 0.758301 0.583984 1
+24 1 30 0.721191 0.556152 1
+24 1 31 0.686035 0.529297 1
+24 2 0 0.869141 0.642578 0
+24 2 1 0.869141 0.642578 0
+24 2 2 0.869141 0.642578 0
+24 2 3 0.869141 0.642578 0
+24 2 4 0.869141 0.642578 0
+24 2 5 0.869141 0.642578 0
+24 2 6 0.869141 0.642578 0
+24 2 7 0.869141 0.643066 0
+24 2 8 0.869141 0.643066 0
+24 2 9 0.869141 0.643066 0
+24 2 10 0.869141 0.643066 0
+24 2 11 0.869629 0.643066 0
+24 2 12 0.869629 0.643555 0
+24 2 13 0.869629 0.644531 0
+24 2 14 0.869629 0.644531 0
+24 2 15 0.871582 0.645996 0.159302
+24 2 16 0.880859 0.651855 0.319824
+24 2 17 0.893066 0.661133 0.437012
+24 2 18 0.904785 0.669434 0.539551
+24 2 19 0.921387 0.685547 0.641113
+24 2 20 0.937988 0.706055 0.734375
+24 2 21 0.947754 0.722168 0.813477
+24 2 22 0.944824 0.725586 0.875977
+24 2 23 0.932617 0.717285 0.922852
+24 2 24 0.915527 0.70459 0.959961
+24 2 25 0.894043 0.687988 0.991699
+24 2 26 0.866211 0.666992 1
+24 2 27 0.83252 0.641113 1
+24 2 28 0.795898 0.613281 1
+24 2 29 0.758301 0.584473 1
+24 2 30 0.721191 0.556152 1
+24 2 31 0.686035 0.529297 1
+24 3 0 0.869141 0.642578 0
+24 3 1 0.869141 0.642578 0
+24 3 2 0.869141 0.642578 0
+24 3 3 0.869141 0.642578 0
+24 3 4 0.869141 0.642578 0
+24 3 5 0.869141 0.642578 0
+24 3 6 0.869141 0.643066 0
+24 3 7 0.869141 0.643066 0
+24 3 8 0.869141 0.643066 0
+24 3 9 0.869141 0.643066 0
+24 3 10 0.869141 0.643066 0
+24 3 11 0.869629 0.643066 0
+24 3 12 0.869629 0.643555 0
+24 3 13 0.869629 0.644531 0
+24 3 14 0.869629 0.644531 0
+24 3 15 0.871582 0.645996 0.159302
+24 3 16 0.880859 0.651855 0.319824
+24 3 17 0.893066 0.661133 0.437012
+24 3 18 0.904785 0.669434 0.539551
+24 3 19 0.921387 0.685547 0.641113
+24 3 20 0.937988 0.706055 0.734375
+24 3 21 0.947754 0.722168 0.813477
+24 3 22 0.944824 0.725586 0.875977
+24 3 23 0.932617 0.717285 0.922852
+24 3 24 0.915527 0.70459 0.959961
+24 3 25 0.894043 0.687988 0.991699
+24 3 26 0.866211 0.666992 1
+24 3 27 0.83252 0.641113 1
+24 3 28 0.795898 0.613281 1
+24 3 29 0.758301 0.584473 1
+24 3 30 0.721191 0.556152 1
+24 3 31 0.686035 0.529297 1
+24 4 0 0.869141 0.643066 0
+24 4 1 0.869141 0.643066 0
+24 4 2 0.869141 0.643066 0
+24 4 3 0.869141 0.643066 0
+24 4 4 0.869141 0.643066 0
+24 4 5 0.869141 0.643066 0
+24 4 6 0.869141 0.643066 0
+24 4 7 0.869141 0.643066 0
+24 4 8 0.869141 0.643066 0
+24 4 9 0.869141 0.643066 0
+24 4 10 0.869141 0.643066 0
+24 4 11 0.869629 0.643555 0
+24 4 12 0.869629 0.643555 0
+24 4 13 0.869629 0.644531 0
+24 4 14 0.869629 0.644531 0
+24 4 15 0.871582 0.645996 0.159302
+24 4 16 0.880859 0.651855 0.319824
+24 4 17 0.893066 0.661133 0.437012
+24 4 18 0.904785 0.669434 0.539551
+24 4 19 0.921387 0.685547 0.641113
+24 4 20 0.937988 0.706055 0.734375
+24 4 21 0.947754 0.722168 0.813477
+24 4 22 0.944824 0.725586 0.875977
+24 4 23 0.932617 0.717285 0.922852
+24 4 24 0.915527 0.70459 0.959961
+24 4 25 0.894043 0.687988 0.991699
+24 4 26 0.866211 0.666992 1
+24 4 27 0.83252 0.641113 1
+24 4 28 0.795898 0.613281 1
+24 4 29 0.758301 0.584473 1
+24 4 30 0.721191 0.556152 1
+24 4 31 0.686035 0.529297 1
+24 5 0 0.869141 0.643066 0
+24 5 1 0.869141 0.643066 0
+24 5 2 0.869141 0.643066 0
+24 5 3 0.869141 0.643066 0
+24 5 4 0.869141 0.643066 0
+24 5 5 0.869141 0.643066 0
+24 5 6 0.869141 0.643066 0
+24 5 7 0.869141 0.643066 0
+24 5 8 0.869141 0.643066 0
+24 5 9 0.869141 0.643066 0
+24 5 10 0.869141 0.643066 0
+24 5 11 0.869629 0.643555 0
+24 5 12 0.869629 0.643555 0
+24 5 13 0.870117 0.644531 0
+24 5 14 0.869629 0.644531 0
+24 5 15 0.871582 0.645996 0.159302
+24 5 16 0.880859 0.651855 0.319824
+24 5 17 0.893066 0.661133 0.437012
+24 5 18 0.904785 0.669434 0.539551
+24 5 19 0.921387 0.685547 0.641113
+24 5 20 0.937988 0.706055 0.734375
+24 5 21 0.947754 0.722168 0.813477
+24 5 22 0.944824 0.725586 0.875977
+24 5 23 0.932617 0.717285 0.922852
+24 5 24 0.915527 0.70459 0.959961
+24 5 25 0.894043 0.688477 0.991699
+24 5 26 0.866211 0.666992 1
+24 5 27 0.83252 0.641113 1
+24 5 28 0.795898 0.613281 1
+24 5 29 0.758301 0.584473 1
+24 5 30 0.721191 0.556152 1
+24 5 31 0.686035 0.529297 1
+24 6 0 0.869141 0.643066 0
+24 6 1 0.869141 0.643066 0
+24 6 2 0.869141 0.643066 0
+24 6 3 0.869141 0.643066 0
+24 6 4 0.869141 0.643066 0
+24 6 5 0.869141 0.643066 0
+24 6 6 0.869141 0.643066 0
+24 6 7 0.869141 0.643066 0
+24 6 8 0.869141 0.643066 0
+24 6 9 0.869141 0.643066 0
+24 6 10 0.869629 0.643066 0
+24 6 11 0.869629 0.643555 0
+24 6 12 0.869629 0.644043 0
+24 6 13 0.870117 0.644531 0
+24 6 14 0.869629 0.64502 0
+24 6 15 0.871582 0.645996 0.159424
+24 6 16 0.880859 0.651855 0.319824
+24 6 17 0.893066 0.661133 0.437012
+24 6 18 0.904785 0.669434 0.539551
+24 6 19 0.921387 0.685547 0.641113
+24 6 20 0.937988 0.706055 0.734375
+24 6 21 0.947754 0.722168 0.813477
+24 6 22 0.944824 0.725586 0.875977
+24 6 23 0.932617 0.717285 0.922852
+24 6 24 0.916016 0.70459 0.959961
+24 6 25 0.894043 0.688477 0.991699
+24 6 26 0.866211 0.666992 1
+24 6 27 0.83252 0.641113 1
+24 6 28 0.795898 0.613281 1
+24 6 29 0.758301 0.584473 1
+24 6 30 0.721191 0.556152 1
+24 6 31 0.686035 0.529297 1
+24 7 0 0.869141 0.643066 0
+24 7 1 0.869141 0.643066 0
+24 7 2 0.869141 0.643066 0
+24 7 3 0.869141 0.643066 0
+24 7 4 0.869141 0.643066 0
+24 7 5 0.869141 0.643066 0
+24 7 6 0.869141 0.643066 0
+24 7 7 0.869141 0.643066 0
+24 7 8 0.869141 0.643066 0
+24 7 9 0.869629 0.643555 0
+24 7 10 0.869629 0.643555 0
+24 7 11 0.869629 0.643555 0
+24 7 12 0.869629 0.644043 0
+24 7 13 0.870117 0.644531 0
+24 7 14 0.870117 0.64502 0
+24 7 15 0.871582 0.646484 0.159546
+24 7 16 0.880859 0.652344 0.319824
+24 7 17 0.893555 0.661133 0.437012
+24 7 18 0.904785 0.669434 0.539551
+24 7 19 0.921387 0.685547 0.641113
+24 7 20 0.937988 0.706543 0.734375
+24 7 21 0.947754 0.722168 0.813477
+24 7 22 0.944824 0.725586 0.875977
+24 7 23 0.932617 0.717773 0.922852
+24 7 24 0.916016 0.705078 0.959961
+24 7 25 0.894043 0.688477 0.991699
+24 7 26 0.866211 0.666992 1
+24 7 27 0.83252 0.641113 1
+24 7 28 0.795898 0.613281 1
+24 7 29 0.758301 0.584473 1
+24 7 30 0.721191 0.556152 1
+24 7 31 0.686035 0.529297 1
+24 8 0 0.869629 0.643555 0
+24 8 1 0.869629 0.643555 0
+24 8 2 0.869629 0.643555 0
+24 8 3 0.869629 0.643555 0
+24 8 4 0.869629 0.643555 0
+24 8 5 0.869629 0.643555 0
+24 8 6 0.869629 0.643555 0
+24 8 7 0.869629 0.643555 0
+24 8 8 0.869629 0.643555 0
+24 8 9 0.869629 0.643555 0
+24 8 10 0.869629 0.644043 0
+24 8 11 0.869629 0.644043 0
+24 8 12 0.869629 0.644531 0
+24 8 13 0.870117 0.64502 0
+24 8 14 0.870117 0.645508 0
+24 8 15 0.871582 0.646973 0.159668
+24 8 16 0.880859 0.652344 0.319824
+24 8 17 0.893555 0.661621 0.437256
+24 8 18 0.904785 0.669922 0.539551
+24 8 19 0.921387 0.686035 0.641113
+24 8 20 0.937988 0.706543 0.733887
+24 8 21 0.947754 0.722656 0.813477
+24 8 22 0.944824 0.726074 0.875977
+24 8 23 0.932617 0.717773 0.922852
+24 8 24 0.916016 0.705078 0.959961
+24 8 25 0.894043 0.688477 0.991699
+24 8 26 0.866211 0.666992 1
+24 8 27 0.83252 0.641602 1
+24 8 28 0.795898 0.613281 1
+24 8 29 0.758301 0.584473 1
+24 8 30 0.721191 0.556152 1
+24 8 31 0.686035 0.529297 1
+24 9 0 0.869629 0.644531 0
+24 9 1 0.869629 0.644531 0
+24 9 2 0.869629 0.644531 0
+24 9 3 0.869629 0.644531 0
+24 9 4 0.869629 0.644531 0
+24 9 5 0.869629 0.644531 0
+24 9 6 0.869629 0.644531 0
+24 9 7 0.869629 0.644531 0
+24 9 8 0.869629 0.644531 0
+24 9 9 0.869629 0.644531 0
+24 9 10 0.870117 0.644531 0
+24 9 11 0.870117 0.64502 0
+24 9 12 0.870117 0.645508 0
+24 9 13 0.870605 0.645996 0
+24 9 14 0.870117 0.645996 0
+24 9 15 0.87207 0.647461 0.160156
+24 9 16 0.880859 0.65332 0.319824
+24 9 17 0.893555 0.662598 0.437256
+24 9 18 0.904785 0.67041 0.539551
+24 9 19 0.921387 0.686523 0.640625
+24 9 20 0.937988 0.707031 0.733887
+24 9 21 0.947754 0.722656 0.813477
+24 9 22 0.944824 0.726074 0.875977
+24 9 23 0.932617 0.718262 0.922852
+24 9 24 0.916016 0.705566 0.959961
+24 9 25 0.894531 0.688965 0.991699
+24 9 26 0.866211 0.66748 1
+24 9 27 0.83252 0.64209 1
+24 9 28 0.795898 0.61377 1
+24 9 29 0.758301 0.584961 1
+24 9 30 0.721191 0.556641 1
+24 9 31 0.686035 0.529785 1
+24 10 0 0.870117 0.645996 0
+24 10 1 0.870117 0.645996 0
+24 10 2 0.870117 0.645996 0
+24 10 3 0.870117 0.645996 0
+24 10 4 0.870117 0.645996 0
+24 10 5 0.870117 0.645996 0
+24 10 6 0.870117 0.645996 0
+24 10 7 0.870117 0.645996 0
+24 10 8 0.870117 0.645996 0
+24 10 9 0.870117 0.645996 0
+24 10 10 0.870605 0.645996 0
+24 10 11 0.870605 0.646484 0
+24 10 12 0.870605 0.646484 0
+24 10 13 0.871094 0.647461 0
+24 10 14 0.870605 0.647461 0
+24 10 15 0.872559 0.648926 0.161011
+24 10 16 0.881348 0.654297 0.320068
+24 10 17 0.894043 0.663574 0.4375
+24 10 18 0.905273 0.671387 0.539551
+24 10 19 0.921387 0.6875 0.640625
+24 10 20 0.937988 0.708008 0.733887
+24 10 21 0.947754 0.723633 0.813477
+24 10 22 0.945312 0.727051 0.875977
+24 10 23 0.932617 0.719238 0.922852
+24 10 24 0.916016 0.706543 0.959961
+24 10 25 0.894531 0.689941 0.991699
+24 10 26 0.866211 0.668457 1
+24 10 27 0.83252 0.642578 1
+24 10 28 0.795898 0.614258 1
+24 10 29 0.758301 0.585449 1
+24 10 30 0.721191 0.557129 1
+24 10 31 0.686035 0.530273 1
+24 11 0 0.871094 0.648438 0
+24 11 1 0.871094 0.648438 0
+24 11 2 0.871094 0.648438 0
+24 11 3 0.871094 0.648438 0
+24 11 4 0.871094 0.648438 0
+24 11 5 0.871094 0.648438 0
+24 11 6 0.871094 0.648438 0
+24 11 7 0.871094 0.648438 0
+24 11 8 0.871094 0.648438 0
+24 11 9 0.871094 0.648438 0
+24 11 10 0.871094 0.648438 0
+24 11 11 0.871582 0.648926 0
+24 11 12 0.871582 0.649414 0
+24 11 13 0.871582 0.649902 0
+24 11 14 0.871582 0.649902 0
+24 11 15 0.873535 0.651367 0.162476
+24 11 16 0.881836 0.656738 0.320312
+24 11 17 0.894531 0.666016 0.4375
+24 11 18 0.905273 0.67334 0.539551
+24 11 19 0.921387 0.688965 0.640625
+24 11 20 0.937988 0.709473 0.733887
+24 11 21 0.947754 0.725098 0.813477
+24 11 22 0.945312 0.728516 0.875977
+24 11 23 0.933105 0.720703 0.922852
+24 11 24 0.916016 0.708008 0.959961
+24 11 25 0.894531 0.691406 0.992188
+24 11 26 0.866699 0.669434 1
+24 11 27 0.833008 0.643555 1
+24 11 28 0.795898 0.615723 1
+24 11 29 0.758301 0.586426 1
+24 11 30 0.721191 0.558105 1
+24 11 31 0.686035 0.53125 1
+24 12 0 0.872559 0.652832 0
+24 12 1 0.872559 0.652832 0
+24 12 2 0.872559 0.652832 0
+24 12 3 0.872559 0.652832 0
+24 12 4 0.872559 0.652832 0
+24 12 5 0.872559 0.652832 0
+24 12 6 0.872559 0.652832 0
+24 12 7 0.872559 0.652832 0
+24 12 8 0.872559 0.652832 0
+24 12 9 0.872559 0.652832 0
+24 12 10 0.872559 0.652832 0
+24 12 11 0.873047 0.65332 0
+24 12 12 0.873047 0.65332 0
+24 12 13 0.873047 0.654297 0
+24 12 14 0.873047 0.654297 0
+24 12 15 0.874512 0.655273 0.165283
+24 12 16 0.883301 0.660645 0.320801
+24 12 17 0.89502 0.668945 0.437256
+24 12 18 0.90625 0.676758 0.539551
+24 12 19 0.921387 0.691895 0.640137
+24 12 20 0.937988 0.711426 0.733398
+24 12 21 0.947754 0.727539 0.813477
+24 12 22 0.945312 0.730957 0.875977
+24 12 23 0.933105 0.723145 0.922852
+24 12 24 0.916504 0.709961 0.960449
+24 12 25 0.89502 0.693359 0.992188
+24 12 26 0.866699 0.671875 1
+24 12 27 0.833008 0.645996 1
+24 12 28 0.796387 0.617188 1
+24 12 29 0.758301 0.588379 1
+24 12 30 0.72168 0.55957 1
+24 12 31 0.686523 0.532715 1
+24 13 0 0.875 0.659668 0
+24 13 1 0.875 0.659668 0
+24 13 2 0.875 0.659668 0
+24 13 3 0.875 0.659668 0
+24 13 4 0.875 0.659668 0
+24 13 5 0.875 0.659668 0
+24 13 6 0.875 0.659668 0
+24 13 7 0.875 0.659668 0
+24 13 8 0.875 0.659668 0
+24 13 9 0.875 0.659668 0
+24 13 10 0.875 0.659668 0
+24 13 11 0.875 0.660156 0
+24 13 12 0.875488 0.660645 0
+24 13 13 0.875488 0.661133 0
+24 13 14 0.875488 0.661133 0
+24 13 15 0.876953 0.662109 0.17041
+24 13 16 0.884766 0.666992 0.321777
+24 13 17 0.895996 0.674316 0.437012
+24 13 18 0.907227 0.682129 0.539551
+24 13 19 0.921875 0.696289 0.639648
+24 13 20 0.937988 0.715332 0.73291
+24 13 21 0.948242 0.731445 0.813477
+24 13 22 0.945801 0.734863 0.875977
+24 13 23 0.933594 0.727051 0.92334
+24 13 24 0.916992 0.713867 0.960449
+24 13 25 0.895508 0.697266 0.992676
+24 13 26 0.867188 0.675293 1
+24 13 27 0.833496 0.648926 1
+24 13 28 0.796387 0.620605 1
+24 13 29 0.758789 0.59082 1
+24 13 30 0.72168 0.562012 1
+24 13 31 0.686523 0.534668 1
+24 14 0 0.878906 0.67041 0
+24 14 1 0.878906 0.67041 0
+24 14 2 0.878906 0.67041 0
+24 14 3 0.878906 0.67041 0
+24 14 4 0.878906 0.67041 0
+24 14 5 0.878906 0.67041 0
+24 14 6 0.878906 0.67041 0
+24 14 7 0.878906 0.67041 0
+24 14 8 0.878906 0.67041 0
+24 14 9 0.878906 0.67041 0
+24 14 10 0.878906 0.670898 0
+24 14 11 0.878906 0.670898 0
+24 14 12 0.879395 0.671387 0
+24 14 13 0.879395 0.671875 0
+24 14 14 0.879395 0.671875 0
+24 14 15 0.880859 0.672852 0.179443
+24 14 16 0.887695 0.676758 0.323975
+24 14 17 0.897949 0.683105 0.437012
+24 14 18 0.908691 0.690918 0.539551
+24 14 19 0.921875 0.703125 0.638672
+24 14 20 0.937988 0.72168 0.731934
+24 14 21 0.948242 0.737305 0.812988
+24 14 22 0.946777 0.741211 0.876465
+24 14 23 0.93457 0.733398 0.92334
+24 14 24 0.917969 0.720215 0.960938
+24 14 25 0.895996 0.703125 0.992676
+24 14 26 0.867676 0.681152 1
+24 14 27 0.833984 0.654297 1
+24 14 28 0.796875 0.625 1
+24 14 29 0.759277 0.595215 1
+24 14 30 0.722168 0.566406 1
+24 14 31 0.687012 0.538574 1
+24 15 0 0.884766 0.686523 0
+24 15 1 0.884766 0.686523 0
+24 15 2 0.884766 0.686523 0
+24 15 3 0.884766 0.686523 0
+24 15 4 0.884766 0.686523 0
+24 15 5 0.884766 0.686523 0
+24 15 6 0.884766 0.686523 0
+24 15 7 0.884766 0.687012 0
+24 15 8 0.884766 0.687012 0
+24 15 9 0.884766 0.687012 0
+24 15 10 0.884766 0.687012 0
+24 15 11 0.884766 0.687012 0
+24 15 12 0.884766 0.6875 0
+24 15 13 0.885254 0.687988 0
+24 15 14 0.884766 0.687988 0
+24 15 15 0.88623 0.688965 0.194824
+24 15 16 0.892578 0.691895 0.328857
+24 15 17 0.900879 0.696777 0.437744
+24 15 18 0.911621 0.704102 0.540527
+24 15 19 0.922852 0.713379 0.637207
+24 15 20 0.937988 0.730469 0.730469
+24 15 21 0.94873 0.746582 0.8125
+24 15 22 0.947266 0.750488 0.876465
+24 15 23 0.935547 0.742676 0.923828
+24 15 24 0.918945 0.729492 0.961426
+24 15 25 0.896973 0.711914 0.993164
+24 15 26 0.868652 0.689453 1
+24 15 27 0.834961 0.662109 1
+24 15 28 0.797852 0.632324 1
+24 15 29 0.759766 0.602051 1
+24 15 30 0.722656 0.572266 1
+24 15 31 0.6875 0.544434 1
+24 16 0 0.892578 0.709961 0
+24 16 1 0.892578 0.709961 0
+24 16 2 0.892578 0.709961 0
+24 16 3 0.892578 0.709961 0
+24 16 4 0.892578 0.709961 0
+24 16 5 0.892578 0.709961 0
+24 16 6 0.892578 0.709961 0
+24 16 7 0.892578 0.709961 0
+24 16 8 0.892578 0.709961 0
+24 16 9 0.892578 0.709961 0
+24 16 10 0.892578 0.709961 0
+24 16 11 0.893066 0.710449 0
+24 16 12 0.893066 0.710449 0
+24 16 13 0.893066 0.711426 0
+24 16 14 0.893066 0.711426 0
+24 16 15 0.89502 0.711914 0.219482
+24 16 16 0.899414 0.713867 0.338379
+24 16 17 0.905762 0.716797 0.441162
+24 16 18 0.915039 0.722656 0.541504
+24 16 19 0.923828 0.729492 0.635742
+24 16 20 0.937012 0.743652 0.728027
+24 16 21 0.948242 0.758789 0.811035
+24 16 22 0.948242 0.763672 0.876465
+24 16 23 0.936523 0.755859 0.924316
+24 16 24 0.92041 0.742188 0.961914
+24 16 25 0.898438 0.724609 0.993652
+24 16 26 0.870117 0.701172 1
+24 16 27 0.835938 0.672852 1
+24 16 28 0.798828 0.642578 1
+24 16 29 0.760742 0.611328 1
+24 16 30 0.723633 0.581055 1
+24 16 31 0.688477 0.552246 1
+24 17 0 0.90332 0.740234 0
+24 17 1 0.90332 0.740234 0
+24 17 2 0.90332 0.740234 0
+24 17 3 0.90332 0.740234 0
+24 17 4 0.90332 0.740234 0
+24 17 5 0.90332 0.740234 0
+24 17 6 0.90332 0.740234 0
+24 17 7 0.90332 0.740234 0
+24 17 8 0.90332 0.740234 0
+24 17 9 0.90332 0.740234 0
+24 17 10 0.90332 0.740234 0
+24 17 11 0.90332 0.740723 0
+24 17 12 0.903809 0.740723 0
+24 17 13 0.903809 0.741211 0
+24 17 14 0.903809 0.741699 0.0928955
+24 17 15 0.906738 0.742676 0.253662
+24 17 16 0.909668 0.743652 0.355469
+24 17 17 0.913574 0.744629 0.449463
+24 17 18 0.918945 0.746582 0.54248
+24 17 19 0.92627 0.751465 0.635254
+24 17 20 0.936035 0.760742 0.724121
+24 17 21 0.947754 0.775391 0.808594
+24 17 22 0.94873 0.780762 0.875488
+24 17 23 0.937988 0.773438 0.924316
+24 17 24 0.921875 0.759277 0.961914
+24 17 25 0.900391 0.741211 0.994141
+24 17 26 0.871582 0.716797 1
+24 17 27 0.836914 0.687988 1
+24 17 28 0.799805 0.65625 1
+24 17 29 0.761719 0.624023 1
+24 17 30 0.724609 0.592773 1
+24 17 31 0.689453 0.563477 1
+24 18 0 0.91748 0.777344 0.171021
+24 18 1 0.91748 0.777344 0.171021
+24 18 2 0.91748 0.777344 0.171021
+24 18 3 0.91748 0.777344 0.171021
+24 18 4 0.91748 0.777344 0.171021
+24 18 5 0.91748 0.777344 0.171021
+24 18 6 0.91748 0.777344 0.171021
+24 18 7 0.91748 0.777344 0.171143
+24 18 8 0.91748 0.777344 0.171143
+24 18 9 0.91748 0.777344 0.171265
+24 18 10 0.91748 0.777344 0.171509
+24 18 11 0.917969 0.777832 0.171875
+24 18 12 0.917969 0.777832 0.172607
+24 18 13 0.917969 0.77832 0.173706
+24 18 14 0.918945 0.779297 0.200439
+24 18 15 0.920898 0.780273 0.294434
+24 18 16 0.922852 0.780762 0.380371
+24 18 17 0.924805 0.780273 0.464844
+24 18 18 0.92627 0.778809 0.549316
+24 18 19 0.929688 0.779297 0.635742
+24 18 20 0.935547 0.783203 0.720215
+24 18 21 0.945312 0.794434 0.804199
+24 18 22 0.94873 0.80127 0.873535
+24 18 23 0.938965 0.794922 0.92334
+24 18 24 0.92334 0.780273 0.961426
+24 18 25 0.901855 0.761719 0.994141
+24 18 26 0.873047 0.736328 1
+24 18 27 0.837891 0.705566 1
+24 18 28 0.800781 0.672852 1
+24 18 29 0.762695 0.639648 1
+24 18 30 0.725586 0.607422 1
+24 18 31 0.690918 0.577148 1
+24 19 0 0.933105 0.818359 0.25708
+24 19 1 0.933105 0.818359 0.25708
+24 19 2 0.933105 0.818359 0.25708
+24 19 3 0.933105 0.818359 0.25708
+24 19 4 0.933105 0.818359 0.25708
+24 19 5 0.933105 0.818359 0.25708
+24 19 6 0.933105 0.818359 0.25708
+24 19 7 0.933105 0.818359 0.25708
+24 19 8 0.933105 0.818359 0.257324
+24 19 9 0.933105 0.818359 0.257324
+24 19 10 0.933105 0.818359 0.257324
+24 19 11 0.933594 0.818848 0.257568
+24 19 12 0.933594 0.818848 0.258057
+24 19 13 0.933594 0.819336 0.258545
+24 19 14 0.934082 0.819824 0.265137
+24 19 15 0.936035 0.820801 0.335938
+24 19 16 0.9375 0.821289 0.409912
+24 19 17 0.938477 0.820801 0.486328
+24 19 18 0.9375 0.817871 0.563477
+24 19 19 0.935547 0.813477 0.639648
+24 19 20 0.937012 0.8125 0.71875
+24 19 21 0.941406 0.815918 0.797363
+24 19 22 0.946777 0.82373 0.869629
+24 19 23 0.939453 0.818359 0.921387
+24 19 24 0.923828 0.804199 0.959961
+24 19 25 0.902832 0.784668 0.992676
+24 19 26 0.873535 0.757812 1
+24 19 27 0.838867 0.726074 1
+24 19 28 0.80127 0.692383 1
+24 19 29 0.763672 0.658203 1
+24 19 30 0.727051 0.625 1
+24 19 31 0.692871 0.59375 1
+24 20 0 0.946777 0.858887 0.313965
+24 20 1 0.946777 0.858887 0.313965
+24 20 2 0.946777 0.858887 0.313965
+24 20 3 0.946777 0.858887 0.313965
+24 20 4 0.946777 0.858887 0.313965
+24 20 5 0.946777 0.858887 0.313965
+24 20 6 0.946777 0.858887 0.313965
+24 20 7 0.946777 0.858887 0.313965
+24 20 8 0.946777 0.859375 0.313965
+24 20 9 0.946777 0.859375 0.313965
+24 20 10 0.946777 0.859375 0.313965
+24 20 11 0.946777 0.859375 0.314209
+24 20 12 0.946777 0.859375 0.314453
+24 20 13 0.947266 0.859863 0.314697
+24 20 14 0.947266 0.860352 0.315186
+24 20 15 0.94873 0.861328 0.37085
+24 20 16 0.950684 0.862305 0.437744
+24 20 17 0.951172 0.862305 0.509277
+24 20 18 0.950195 0.859375 0.581543
+24 20 19 0.945801 0.853516 0.651855
+24 20 20 0.939941 0.845703 0.719238
+24 20 21 0.938477 0.841797 0.790527
+24 20 22 0.941895 0.845703 0.862793
+24 20 23 0.937988 0.843262 0.917969
+24 20 24 0.923828 0.82959 0.95752
+24 20 25 0.902832 0.809082 0.990234
+24 20 26 0.873535 0.78125 1
+24 20 27 0.838379 0.748047 1
+24 20 28 0.80127 0.712891 1
+24 20 29 0.76416 0.677734 1
+24 20 30 0.729004 0.644043 1
+24 20 31 0.695312 0.612305 1
+24 21 0 0.956055 0.897461 0.352783
+24 21 1 0.956055 0.897461 0.352783
+24 21 2 0.956055 0.897461 0.352783
+24 21 3 0.956055 0.897461 0.352783
+24 21 4 0.956055 0.897461 0.352783
+24 21 5 0.956055 0.897461 0.352783
+24 21 6 0.956055 0.897461 0.352783
+24 21 7 0.956055 0.897949 0.352783
+24 21 8 0.956055 0.897949 0.352783
+24 21 9 0.956055 0.897949 0.352783
+24 21 10 0.956055 0.897949 0.352783
+24 21 11 0.956055 0.897949 0.352783
+24 21 12 0.956055 0.897949 0.353027
+24 21 13 0.956055 0.898438 0.353027
+24 21 14 0.956543 0.898438 0.353516
+24 21 15 0.958008 0.899902 0.395508
+24 21 16 0.959961 0.901367 0.45874
+24 21 17 0.961426 0.901855 0.527344
+24 21 18 0.960449 0.899902 0.597656
+24 21 19 0.956543 0.89502 0.666016
+24 21 20 0.94873 0.885254 0.728516
+24 21 21 0.938965 0.873535 0.788574
+24 21 22 0.935059 0.868164 0.852539
+24 21 23 0.935059 0.868164 0.912109
+24 21 24 0.922363 0.855469 0.953125
+24 21 25 0.901855 0.834473 0.98584
+24 21 26 0.871582 0.804688 1
+24 21 27 0.836914 0.770508 1
+24 21 28 0.80127 0.734863 1
+24 21 29 0.765137 0.699707 1
+24 21 30 0.730957 0.665527 1
+24 21 31 0.698242 0.632812 1
+24 22 0 0.958984 0.931641 0.375977
+24 22 1 0.958984 0.931641 0.375977
+24 22 2 0.958984 0.931641 0.375977
+24 22 3 0.958984 0.931641 0.375977
+24 22 4 0.958984 0.931641 0.375977
+24 22 5 0.958984 0.931641 0.375977
+24 22 6 0.958984 0.931641 0.375977
+24 22 7 0.958984 0.931641 0.375977
+24 22 8 0.958984 0.931641 0.375977
+24 22 9 0.958984 0.931641 0.375977
+24 22 10 0.958984 0.931641 0.376221
+24 22 11 0.958984 0.931641 0.376221
+24 22 12 0.958984 0.931641 0.376221
+24 22 13 0.958984 0.932129 0.376221
+24 22 14 0.958984 0.932129 0.376465
+24 22 15 0.960449 0.933594 0.407959
+24 22 16 0.962891 0.935547 0.468994
+24 22 17 0.965332 0.936523 0.536621
+24 22 18 0.96582 0.936035 0.606934
+24 22 19 0.963379 0.932617 0.675293
+24 22 20 0.957031 0.924805 0.73877
+24 22 21 0.945801 0.911621 0.794922
+24 22 22 0.932129 0.895996 0.846191
+24 22 23 0.928223 0.891113 0.902344
+24 22 24 0.918945 0.880371 0.946289
+24 22 25 0.898438 0.858398 0.979004
+24 22 26 0.868164 0.827148 1
+24 22 27 0.834961 0.792969 1
+24 22 28 0.800781 0.757812 1
+24 22 29 0.766602 0.722656 1
+24 22 30 0.733887 0.688477 1
+24 22 31 0.702148 0.655273 1
+24 23 0 0.955078 0.958008 0.387451
+24 23 1 0.955078 0.958008 0.387451
+24 23 2 0.955078 0.958008 0.387451
+24 23 3 0.955078 0.958008 0.387451
+24 23 4 0.955078 0.958008 0.387451
+24 23 5 0.955078 0.958008 0.387451
+24 23 6 0.955078 0.958008 0.387451
+24 23 7 0.955078 0.958008 0.387451
+24 23 8 0.955078 0.958008 0.387451
+24 23 9 0.955078 0.958008 0.387451
+24 23 10 0.955078 0.958008 0.387451
+24 23 11 0.955078 0.958008 0.387451
+24 23 12 0.955078 0.958496 0.387695
+24 23 13 0.955078 0.958496 0.387695
+24 23 14 0.955078 0.958496 0.387695
+24 23 15 0.956055 0.959473 0.409668
+24 23 16 0.958984 0.961914 0.469727
+24 23 17 0.961914 0.963867 0.536621
+24 23 18 0.963867 0.964355 0.606445
+24 23 19 0.962891 0.962402 0.675781
+24 23 20 0.958984 0.957031 0.740723
+24 23 21 0.950684 0.946777 0.799316
+24 23 22 0.9375 0.931641 0.850098
+24 23 23 0.921387 0.913086 0.89209
+24 23 24 0.914551 0.903809 0.937988
+24 23 25 0.89209 0.879395 0.96875
+24 23 26 0.863281 0.848145 0.990723
+24 23 27 0.83252 0.81543 1
+24 23 28 0.80127 0.781738 1
+24 23 29 0.769531 0.74707 1
+24 23 30 0.738281 0.712891 1
+24 23 31 0.70752 0.679199 1
+24 24 0 0.944336 0.977539 0.392334
+24 24 1 0.944336 0.977539 0.392334
+24 24 2 0.944336 0.977539 0.392334
+24 24 3 0.944336 0.977539 0.392334
+24 24 4 0.944336 0.977539 0.392334
+24 24 5 0.944336 0.977539 0.392334
+24 24 6 0.944336 0.977539 0.392334
+24 24 7 0.944336 0.977539 0.392334
+24 24 8 0.944336 0.977539 0.392334
+24 24 9 0.944336 0.977539 0.392578
+24 24 10 0.944336 0.977539 0.392578
+24 24 11 0.944336 0.977539 0.392578
+24 24 12 0.944336 0.977539 0.392578
+24 24 13 0.944336 0.977539 0.392578
+24 24 14 0.944336 0.977539 0.392578
+24 24 15 0.944824 0.978516 0.405273
+24 24 16 0.948242 0.980957 0.464111
+24 24 17 0.951172 0.983398 0.529785
+24 24 18 0.953613 0.984375 0.599121
+24 24 19 0.95459 0.983398 0.667969
+24 24 20 0.952148 0.979492 0.73291
+24 24 21 0.946289 0.971191 0.793457
+24 24 22 0.937012 0.959473 0.84668
+24 24 23 0.923828 0.943848 0.891602
+24 24 24 0.908203 0.925293 0.928223
+24 24 25 0.88623 0.899902 0.958496
+24 24 26 0.861328 0.87207 0.984863
+24 24 27 0.833496 0.84082 1
+24 24 28 0.804199 0.807617 1
+24 24 29 0.773438 0.772461 1
+24 24 30 0.742188 0.737305 1
+24 24 31 0.711426 0.702148 1
+24 25 0 0.92627 0.990723 0.394531
+24 25 1 0.92627 0.990723 0.394531
+24 25 2 0.92627 0.990723 0.394531
+24 25 3 0.92627 0.990723 0.394531
+24 25 4 0.92627 0.990723 0.394531
+24 25 5 0.92627 0.990723 0.394531
+24 25 6 0.92627 0.990723 0.394531
+24 25 7 0.92627 0.990723 0.394531
+24 25 8 0.92627 0.990723 0.394531
+24 25 9 0.92627 0.990723 0.394531
+24 25 10 0.92627 0.990723 0.394531
+24 25 11 0.92627 0.990723 0.394531
+24 25 12 0.92627 0.990723 0.394531
+24 25 13 0.92627 0.990723 0.394531
+24 25 14 0.92627 0.990723 0.394531
+24 25 15 0.92627 0.991211 0.397461
+24 25 16 0.929688 0.993652 0.454346
+24 25 17 0.933105 0.996582 0.518066
+24 25 18 0.936035 0.998047 0.585938
+24 25 19 0.9375 0.998047 0.65332
+24 25 20 0.936035 0.994629 0.717773
+24 25 21 0.931641 0.987305 0.777344
+24 25 22 0.92334 0.976074 0.831055
+24 25 23 0.911133 0.960938 0.875977
+24 25 24 0.899414 0.945801 0.915527
+24 25 25 0.887207 0.930176 0.955566
+24 25 26 0.865723 0.904297 0.98584
+24 25 27 0.837891 0.871582 1
+24 25 28 0.808594 0.836914 1
+24 25 29 0.777832 0.80127 1
+24 25 30 0.74707 0.764648 1
+24 25 31 0.716309 0.728027 1
+24 26 0 0.902344 0.999023 0.394531
+24 26 1 0.902344 0.999023 0.394531
+24 26 2 0.902344 0.999023 0.394531
+24 26 3 0.902344 0.999023 0.394531
+24 26 4 0.902344 0.999023 0.394531
+24 26 5 0.902344 0.999023 0.394531
+24 26 6 0.902344 0.999023 0.394531
+24 26 7 0.902344 0.999023 0.394531
+24 26 8 0.902344 0.999023 0.394531
+24 26 9 0.902344 0.999023 0.394531
+24 26 10 0.902344 0.999023 0.394531
+24 26 11 0.902344 0.999023 0.394531
+24 26 12 0.902344 0.999023 0.394531
+24 26 13 0.902344 0.999023 0.394531
+24 26 14 0.902344 0.999023 0.394531
+24 26 15 0.902344 0.999023 0.394531
+24 26 16 0.905273 1 0.44165
+24 26 17 0.908691 1 0.503418
+24 26 18 0.912109 1 0.568848
+24 26 19 0.913574 1 0.634277
+24 26 20 0.913574 1 0.697266
+24 26 21 0.910645 0.998535 0.756348
+24 26 22 0.904297 0.98877 0.810059
+24 26 23 0.895996 0.977051 0.856934
+24 26 24 0.887695 0.965332 0.899414
+24 26 25 0.87793 0.95166 0.940918
+24 26 26 0.864258 0.933105 0.979004
+24 26 27 0.842773 0.90625 1
+24 26 28 0.81543 0.87207 1
+24 26 29 0.785156 0.834961 1
+24 26 30 0.753906 0.796875 1
+24 26 31 0.723145 0.758301 1
+24 27 0 0.875 1 0.393066
+24 27 1 0.875 1 0.393066
+24 27 2 0.875 1 0.393066
+24 27 3 0.875 1 0.393066
+24 27 4 0.875 1 0.393066
+24 27 5 0.875 1 0.393066
+24 27 6 0.875 1 0.393066
+24 27 7 0.875 1 0.393066
+24 27 8 0.875 1 0.393066
+24 27 9 0.875 1 0.393066
+24 27 10 0.875 1 0.393066
+24 27 11 0.875 1 0.393066
+24 27 12 0.875 1 0.393066
+24 27 13 0.875 1 0.393066
+24 27 14 0.875 1 0.393066
+24 27 15 0.875 1 0.393066
+24 27 16 0.876953 1 0.427002
+24 27 17 0.880859 1 0.486084
+24 27 18 0.884277 1 0.548828
+24 27 19 0.886719 1 0.612793
+24 27 20 0.887695 1 0.673828
+24 27 21 0.886719 1 0.732422
+24 27 22 0.883301 1 0.787109
+24 27 23 0.878906 0.992676 0.835449
+24 27 24 0.873047 0.983398 0.878906
+24 27 25 0.865234 0.971191 0.921875
+24 27 26 0.853516 0.95459 0.961914
+24 27 27 0.838379 0.932617 0.997559
+24 27 28 0.816895 0.904297 1
+24 27 29 0.790039 0.869141 1
+24 27 30 0.760742 0.831055 1
+24 27 31 0.72998 0.791504 1
+24 28 0 0.845215 1 0.390869
+24 28 1 0.845215 1 0.390869
+24 28 2 0.845215 1 0.390869
+24 28 3 0.845215 1 0.390869
+24 28 4 0.845215 1 0.390869
+24 28 5 0.845215 1 0.390869
+24 28 6 0.845215 1 0.390869
+24 28 7 0.845215 1 0.390869
+24 28 8 0.845215 1 0.390869
+24 28 9 0.845215 1 0.390869
+24 28 10 0.845215 1 0.390869
+24 28 11 0.845215 1 0.390869
+24 28 12 0.845215 1 0.390869
+24 28 13 0.845215 1 0.390869
+24 28 14 0.845215 1 0.390869
+24 28 15 0.845215 1 0.390869
+24 28 16 0.84668 1 0.411377
+24 28 17 0.850098 1 0.467529
+24 28 18 0.854492 1 0.527832
+24 28 19 0.85791 1 0.589355
+24 28 20 0.860352 1 0.648926
+24 28 21 0.861328 1 0.707031
+24 28 22 0.860352 1 0.76123
+24 28 23 0.858398 1 0.810547
+24 28 24 0.85498 0.998535 0.85498
+24 28 25 0.849121 0.988281 0.898438
+24 28 26 0.840332 0.973633 0.939941
+24 28 27 0.827148 0.954102 0.978027
+24 28 28 0.810547 0.929688 1
+24 28 29 0.789062 0.898926 1
+24 28 30 0.762695 0.863281 1
+24 28 31 0.734375 0.824707 1
+24 29 0 0.813477 1 0.387695
+24 29 1 0.813477 1 0.387695
+24 29 2 0.813477 1 0.387695
+24 29 3 0.813477 1 0.387695
+24 29 4 0.813477 1 0.387695
+24 29 5 0.813477 1 0.387695
+24 29 6 0.813477 1 0.387695
+24 29 7 0.813477 1 0.387695
+24 29 8 0.813477 1 0.387695
+24 29 9 0.813477 1 0.387695
+24 29 10 0.813477 1 0.387695
+24 29 11 0.813477 1 0.387695
+24 29 12 0.813477 1 0.387939
+24 29 13 0.813477 1 0.387939
+24 29 14 0.813477 1 0.387939
+24 29 15 0.813477 1 0.387939
+24 29 16 0.813965 1 0.394531
+24 29 17 0.817871 1 0.447754
+24 29 18 0.822754 1 0.505371
+24 29 19 0.82666 1 0.564453
+24 29 20 0.830566 1 0.62207
+24 29 21 0.833496 1 0.678711
+24 29 22 0.834473 1 0.73291
+24 29 23 0.834473 1 0.781738
+24 29 24 0.833008 1 0.82666
+24 29 25 0.829102 1 0.870605
+24 29 26 0.822754 0.989746 0.913574
+24 29 27 0.812988 0.972656 0.953613
+24 29 28 0.799316 0.951172 0.989746
+24 29 29 0.782227 0.924805 1
+24 29 30 0.76123 0.893066 1
+24 29 31 0.736328 0.856934 1
+24 30 0 0.781738 1 0.384521
+24 30 1 0.781738 1 0.384521
+24 30 2 0.781738 1 0.384521
+24 30 3 0.781738 1 0.384521
+24 30 4 0.781738 1 0.384521
+24 30 5 0.781738 1 0.384521
+24 30 6 0.781738 1 0.384521
+24 30 7 0.781738 1 0.384521
+24 30 8 0.781738 1 0.384521
+24 30 9 0.781738 1 0.384521
+24 30 10 0.781738 1 0.384521
+24 30 11 0.781738 1 0.384521
+24 30 12 0.781738 1 0.384521
+24 30 13 0.781738 1 0.384521
+24 30 14 0.781738 1 0.384521
+24 30 15 0.781738 1 0.384521
+24 30 16 0.781738 1 0.384521
+24 30 17 0.785156 1 0.427734
+24 30 18 0.789551 1 0.482178
+24 30 19 0.794434 1 0.538086
+24 30 20 0.798828 1 0.59375
+24 30 21 0.802734 1 0.648438
+24 30 22 0.805664 1 0.701172
+24 30 23 0.807129 1 0.749512
+24 30 24 0.807129 1 0.793945
+24 30 25 0.805664 1 0.838379
+24 30 26 0.801758 1 0.882324
+24 30 27 0.794922 0.987793 0.924316
+24 30 28 0.785156 0.969727 0.963379
+24 30 29 0.771484 0.947266 0.999023
+24 30 30 0.754883 0.919434 1
+24 30 31 0.733887 0.886719 1
+24 31 0 0.75 1 0.380859
+24 31 1 0.75 1 0.380859
+24 31 2 0.75 1 0.380859
+24 31 3 0.75 1 0.380859
+24 31 4 0.75 1 0.380859
+24 31 5 0.75 1 0.380859
+24 31 6 0.75 1 0.380859
+24 31 7 0.75 1 0.380859
+24 31 8 0.75 1 0.380859
+24 31 9 0.75 1 0.380859
+24 31 10 0.75 1 0.380859
+24 31 11 0.75 1 0.380859
+24 31 12 0.75 1 0.380859
+24 31 13 0.75 1 0.380859
+24 31 14 0.75 1 0.380859
+24 31 15 0.750488 1 0.380859
+24 31 16 0.750488 1 0.380859
+24 31 17 0.752441 1 0.407471
+24 31 18 0.756836 1 0.45874
+24 31 19 0.761719 1 0.511719
+24 31 20 0.766602 1 0.564453
+24 31 21 0.770996 1 0.616699
+24 31 22 0.774902 1 0.66748
+24 31 23 0.777344 1 0.714844
+24 31 24 0.778809 1 0.758301
+24 31 25 0.779297 1 0.802734
+24 31 26 0.777832 1 0.847168
+24 31 27 0.773926 0.999512 0.891113
+24 31 28 0.767578 0.985352 0.932617
+24 31 29 0.757812 0.966309 0.971191
+24 31 30 0.744629 0.942383 1
+24 31 31 0.728027 0.913574 1
+25 0 0 0.894531 0.661621 0
+25 0 1 0.894531 0.661621 0
+25 0 2 0.894531 0.661621 0
+25 0 3 0.894531 0.661621 0
+25 0 4 0.894531 0.661621 0
+25 0 5 0.894531 0.661621 0
+25 0 6 0.894531 0.661621 0
+25 0 7 0.894531 0.661621 0
+25 0 8 0.894531 0.661621 0
+25 0 9 0.894531 0.661621 0
+25 0 10 0.894531 0.661621 0
+25 0 11 0.894531 0.661621 0
+25 0 12 0.894531 0.662109 0
+25 0 13 0.89502 0.662598 0
+25 0 14 0.89502 0.663086 0
+25 0 15 0.89502 0.663574 0
+25 0 16 0.90332 0.668945 0.275879
+25 0 17 0.915039 0.677246 0.400879
+25 0 18 0.927246 0.685059 0.505859
+25 0 19 0.94043 0.696777 0.604492
+25 0 20 0.95459 0.712891 0.697266
+25 0 21 0.966309 0.72998 0.779785
+25 0 22 0.969727 0.740234 0.847656
+25 0 23 0.963379 0.739746 0.900391
+25 0 24 0.950684 0.730957 0.940918
+25 0 25 0.932129 0.717285 0.977051
+25 0 26 0.908691 0.699219 1
+25 0 27 0.878418 0.67627 1
+25 0 28 0.843262 0.649414 1
+25 0 29 0.805664 0.620605 1
+25 0 30 0.76709 0.591309 1
+25 0 31 0.729492 0.5625 1
+25 1 0 0.894531 0.661621 0
+25 1 1 0.894531 0.661621 0
+25 1 2 0.894531 0.661621 0
+25 1 3 0.894531 0.661621 0
+25 1 4 0.894531 0.661621 0
+25 1 5 0.894531 0.661621 0
+25 1 6 0.894531 0.661621 0
+25 1 7 0.894531 0.661621 0
+25 1 8 0.894531 0.661621 0
+25 1 9 0.894531 0.661621 0
+25 1 10 0.894531 0.661621 0
+25 1 11 0.894531 0.661621 0
+25 1 12 0.894531 0.662109 0
+25 1 13 0.89502 0.662598 0
+25 1 14 0.89502 0.663086 0
+25 1 15 0.89502 0.663574 0
+25 1 16 0.90332 0.668945 0.275879
+25 1 17 0.915039 0.677246 0.400879
+25 1 18 0.927246 0.685059 0.505859
+25 1 19 0.94043 0.696777 0.604492
+25 1 20 0.95459 0.712891 0.697266
+25 1 21 0.966309 0.72998 0.779785
+25 1 22 0.969727 0.740234 0.847656
+25 1 23 0.963379 0.739746 0.900391
+25 1 24 0.950684 0.730957 0.940918
+25 1 25 0.932129 0.717285 0.977051
+25 1 26 0.908691 0.699219 1
+25 1 27 0.878418 0.67627 1
+25 1 28 0.843262 0.649414 1
+25 1 29 0.805664 0.620605 1
+25 1 30 0.76709 0.591309 1
+25 1 31 0.729492 0.5625 1
+25 2 0 0.894531 0.661621 0
+25 2 1 0.894531 0.661621 0
+25 2 2 0.894531 0.661621 0
+25 2 3 0.894531 0.661621 0
+25 2 4 0.894531 0.661621 0
+25 2 5 0.894531 0.661621 0
+25 2 6 0.894531 0.661621 0
+25 2 7 0.894531 0.661621 0
+25 2 8 0.894531 0.661621 0
+25 2 9 0.894531 0.661621 0
+25 2 10 0.894531 0.661621 0
+25 2 11 0.894531 0.661621 0
+25 2 12 0.894531 0.662109 0
+25 2 13 0.89502 0.662598 0
+25 2 14 0.89502 0.663086 0
+25 2 15 0.89502 0.663574 0
+25 2 16 0.90332 0.668945 0.275879
+25 2 17 0.915039 0.677246 0.400879
+25 2 18 0.927246 0.685059 0.505859
+25 2 19 0.94043 0.696777 0.604492
+25 2 20 0.95459 0.712891 0.697266
+25 2 21 0.966309 0.72998 0.779785
+25 2 22 0.969727 0.740234 0.847656
+25 2 23 0.963379 0.739746 0.900391
+25 2 24 0.950684 0.730957 0.940918
+25 2 25 0.932129 0.717285 0.977051
+25 2 26 0.908691 0.699219 1
+25 2 27 0.878418 0.67627 1
+25 2 28 0.843262 0.649414 1
+25 2 29 0.805664 0.620605 1
+25 2 30 0.76709 0.591309 1
+25 2 31 0.729492 0.5625 1
+25 3 0 0.894531 0.661621 0
+25 3 1 0.894531 0.661621 0
+25 3 2 0.894531 0.661621 0
+25 3 3 0.894531 0.661621 0
+25 3 4 0.894531 0.661621 0
+25 3 5 0.894531 0.661621 0
+25 3 6 0.894531 0.661621 0
+25 3 7 0.894531 0.661621 0
+25 3 8 0.894531 0.661621 0
+25 3 9 0.894531 0.661621 0
+25 3 10 0.894531 0.661621 0
+25 3 11 0.894531 0.661621 0
+25 3 12 0.894531 0.662109 0
+25 3 13 0.89502 0.662598 0
+25 3 14 0.89502 0.663086 0
+25 3 15 0.89502 0.663574 0
+25 3 16 0.90332 0.668945 0.275879
+25 3 17 0.915039 0.677246 0.400879
+25 3 18 0.927246 0.685059 0.505859
+25 3 19 0.94043 0.696777 0.604492
+25 3 20 0.95459 0.712891 0.697266
+25 3 21 0.966309 0.72998 0.779785
+25 3 22 0.969727 0.740234 0.847656
+25 3 23 0.963379 0.740234 0.900391
+25 3 24 0.950684 0.730957 0.940918
+25 3 25 0.932129 0.717285 0.977051
+25 3 26 0.908691 0.699219 1
+25 3 27 0.878418 0.67627 1
+25 3 28 0.843262 0.649414 1
+25 3 29 0.805664 0.620605 1
+25 3 30 0.76709 0.591309 1
+25 3 31 0.729492 0.5625 1
+25 4 0 0.894531 0.661621 0
+25 4 1 0.894531 0.661621 0
+25 4 2 0.894531 0.661621 0
+25 4 3 0.894531 0.661621 0
+25 4 4 0.894531 0.661621 0
+25 4 5 0.894531 0.661621 0
+25 4 6 0.894531 0.661621 0
+25 4 7 0.894531 0.661621 0
+25 4 8 0.894531 0.661621 0
+25 4 9 0.894531 0.661621 0
+25 4 10 0.894531 0.661621 0
+25 4 11 0.894531 0.661621 0
+25 4 12 0.89502 0.662109 0
+25 4 13 0.89502 0.662598 0
+25 4 14 0.89502 0.663086 0
+25 4 15 0.89502 0.663574 0
+25 4 16 0.90332 0.668945 0.275879
+25 4 17 0.915039 0.677246 0.400879
+25 4 18 0.927246 0.685059 0.505859
+25 4 19 0.94043 0.696777 0.604492
+25 4 20 0.95459 0.712891 0.697266
+25 4 21 0.966309 0.72998 0.779785
+25 4 22 0.969727 0.740234 0.847656
+25 4 23 0.963379 0.740234 0.900391
+25 4 24 0.950684 0.730957 0.940918
+25 4 25 0.932129 0.717285 0.977051
+25 4 26 0.908691 0.699219 1
+25 4 27 0.878418 0.67627 1
+25 4 28 0.843262 0.649414 1
+25 4 29 0.805664 0.620605 1
+25 4 30 0.76709 0.591309 1
+25 4 31 0.729492 0.5625 1
+25 5 0 0.894531 0.661621 0
+25 5 1 0.894531 0.661621 0
+25 5 2 0.894531 0.661621 0
+25 5 3 0.894531 0.661621 0
+25 5 4 0.894531 0.661621 0
+25 5 5 0.894531 0.661621 0
+25 5 6 0.894531 0.661621 0
+25 5 7 0.894531 0.661621 0
+25 5 8 0.894531 0.661621 0
+25 5 9 0.894531 0.661621 0
+25 5 10 0.894531 0.661621 0
+25 5 11 0.894531 0.662109 0
+25 5 12 0.89502 0.662109 0
+25 5 13 0.89502 0.662598 0
+25 5 14 0.89502 0.663574 0
+25 5 15 0.89502 0.663574 0
+25 5 16 0.90332 0.668945 0.275879
+25 5 17 0.915039 0.677246 0.400879
+25 5 18 0.927246 0.685547 0.505859
+25 5 19 0.94043 0.696777 0.604492
+25 5 20 0.95459 0.712891 0.697266
+25 5 21 0.966309 0.72998 0.779785
+25 5 22 0.969727 0.740234 0.847656
+25 5 23 0.963379 0.740234 0.900391
+25 5 24 0.950684 0.731445 0.940918
+25 5 25 0.932129 0.717285 0.977051
+25 5 26 0.908691 0.699219 1
+25 5 27 0.878418 0.67627 1
+25 5 28 0.843262 0.649414 1
+25 5 29 0.805664 0.620605 1
+25 5 30 0.76709 0.591309 1
+25 5 31 0.729492 0.5625 1
+25 6 0 0.894531 0.661621 0
+25 6 1 0.894531 0.661621 0
+25 6 2 0.894531 0.661621 0
+25 6 3 0.894531 0.661621 0
+25 6 4 0.894531 0.661621 0
+25 6 5 0.894531 0.661621 0
+25 6 6 0.894531 0.661621 0
+25 6 7 0.894531 0.661621 0
+25 6 8 0.894531 0.661621 0
+25 6 9 0.894531 0.661621 0
+25 6 10 0.894531 0.661621 0
+25 6 11 0.894531 0.662109 0
+25 6 12 0.89502 0.662109 0
+25 6 13 0.89502 0.663086 0
+25 6 14 0.89502 0.663574 0
+25 6 15 0.89502 0.663574 0
+25 6 16 0.90332 0.668945 0.275879
+25 6 17 0.915039 0.677246 0.400879
+25 6 18 0.927246 0.685547 0.505859
+25 6 19 0.94043 0.696777 0.604492
+25 6 20 0.95459 0.713379 0.697266
+25 6 21 0.966309 0.72998 0.779785
+25 6 22 0.969727 0.740234 0.847656
+25 6 23 0.963379 0.740234 0.900391
+25 6 24 0.950684 0.731445 0.940918
+25 6 25 0.932129 0.717285 0.977051
+25 6 26 0.908691 0.699219 1
+25 6 27 0.878418 0.67627 1
+25 6 28 0.843262 0.649414 1
+25 6 29 0.805664 0.620605 1
+25 6 30 0.76709 0.591309 1
+25 6 31 0.729492 0.5625 1
+25 7 0 0.894531 0.661621 0
+25 7 1 0.894531 0.661621 0
+25 7 2 0.894531 0.661621 0
+25 7 3 0.894531 0.661621 0
+25 7 4 0.894531 0.661621 0
+25 7 5 0.894531 0.661621 0
+25 7 6 0.894531 0.661621 0
+25 7 7 0.894531 0.661621 0
+25 7 8 0.894531 0.661621 0
+25 7 9 0.894531 0.662109 0
+25 7 10 0.894531 0.662109 0
+25 7 11 0.894531 0.662109 0
+25 7 12 0.89502 0.662598 0
+25 7 13 0.89502 0.663086 0
+25 7 14 0.895508 0.663574 0
+25 7 15 0.89502 0.664062 0
+25 7 16 0.90332 0.668945 0.276123
+25 7 17 0.915527 0.677246 0.400879
+25 7 18 0.927246 0.685547 0.505859
+25 7 19 0.94043 0.696777 0.604492
+25 7 20 0.95459 0.713379 0.697266
+25 7 21 0.966309 0.72998 0.779785
+25 7 22 0.969727 0.740234 0.847656
+25 7 23 0.963379 0.740234 0.900391
+25 7 24 0.950684 0.731445 0.940918
+25 7 25 0.932129 0.717285 0.977051
+25 7 26 0.908691 0.699219 1
+25 7 27 0.878418 0.67627 1
+25 7 28 0.843262 0.649902 1
+25 7 29 0.805664 0.620605 1
+25 7 30 0.76709 0.591309 1
+25 7 31 0.729492 0.5625 1
+25 8 0 0.894531 0.662109 0
+25 8 1 0.894531 0.662109 0
+25 8 2 0.894531 0.662109 0
+25 8 3 0.894531 0.662109 0
+25 8 4 0.894531 0.662109 0
+25 8 5 0.894531 0.662109 0
+25 8 6 0.894531 0.662109 0
+25 8 7 0.894531 0.662109 0
+25 8 8 0.894531 0.662109 0
+25 8 9 0.894531 0.662109 0
+25 8 10 0.89502 0.662598 0
+25 8 11 0.89502 0.662598 0
+25 8 12 0.89502 0.663086 0
+25 8 13 0.89502 0.663574 0
+25 8 14 0.895508 0.664062 0
+25 8 15 0.895508 0.664062 0
+25 8 16 0.90332 0.669434 0.276123
+25 8 17 0.915527 0.677734 0.400879
+25 8 18 0.927246 0.686035 0.505859
+25 8 19 0.94043 0.697266 0.604492
+25 8 20 0.95459 0.713379 0.697266
+25 8 21 0.966309 0.730469 0.779785
+25 8 22 0.969727 0.740723 0.847656
+25 8 23 0.963379 0.740234 0.900391
+25 8 24 0.950684 0.731445 0.940918
+25 8 25 0.932129 0.717773 0.977051
+25 8 26 0.908691 0.699707 1
+25 8 27 0.878418 0.676758 1
+25 8 28 0.843262 0.649902 1
+25 8 29 0.805664 0.621094 1
+25 8 30 0.76709 0.591309 1
+25 8 31 0.729492 0.5625 1
+25 9 0 0.89502 0.662598 0
+25 9 1 0.89502 0.662598 0
+25 9 2 0.89502 0.662598 0
+25 9 3 0.89502 0.662598 0
+25 9 4 0.89502 0.662598 0
+25 9 5 0.89502 0.662598 0
+25 9 6 0.89502 0.662598 0
+25 9 7 0.89502 0.663086 0
+25 9 8 0.89502 0.663086 0
+25 9 9 0.89502 0.663086 0
+25 9 10 0.89502 0.663086 0
+25 9 11 0.89502 0.663086 0
+25 9 12 0.89502 0.663574 0
+25 9 13 0.895508 0.664062 0
+25 9 14 0.895508 0.664551 0
+25 9 15 0.895508 0.665039 0
+25 9 16 0.903809 0.669922 0.276123
+25 9 17 0.915527 0.678223 0.400879
+25 9 18 0.927246 0.686523 0.505859
+25 9 19 0.94043 0.697754 0.604492
+25 9 20 0.955078 0.713867 0.696777
+25 9 21 0.966309 0.730957 0.779785
+25 9 22 0.969727 0.741211 0.848145
+25 9 23 0.963867 0.740723 0.900391
+25 9 24 0.950684 0.731934 0.940918
+25 9 25 0.932129 0.717773 0.977051
+25 9 26 0.908691 0.700195 1
+25 9 27 0.878418 0.676758 1
+25 9 28 0.84375 0.650391 1
+25 9 29 0.805664 0.621094 1
+25 9 30 0.76709 0.591797 1
+25 9 31 0.729492 0.562988 1
+25 10 0 0.895508 0.664062 0
+25 10 1 0.895508 0.664062 0
+25 10 2 0.895508 0.664062 0
+25 10 3 0.895508 0.664062 0
+25 10 4 0.895508 0.664062 0
+25 10 5 0.895508 0.664062 0
+25 10 6 0.895508 0.664062 0
+25 10 7 0.895508 0.664062 0
+25 10 8 0.895508 0.664062 0
+25 10 9 0.895508 0.664062 0
+25 10 10 0.895508 0.664062 0
+25 10 11 0.895508 0.664551 0
+25 10 12 0.895508 0.665039 0
+25 10 13 0.895996 0.665527 0
+25 10 14 0.895996 0.666016 0
+25 10 15 0.895996 0.666016 0
+25 10 16 0.903809 0.671387 0.276367
+25 10 17 0.915527 0.679199 0.400879
+25 10 18 0.927734 0.6875 0.505859
+25 10 19 0.94043 0.698242 0.604492
+25 10 20 0.955078 0.714844 0.696777
+25 10 21 0.966309 0.731445 0.779785
+25 10 22 0.969727 0.741699 0.848145
+25 10 23 0.963867 0.741699 0.900391
+25 10 24 0.950684 0.73291 0.940918
+25 10 25 0.932129 0.71875 0.977051
+25 10 26 0.908691 0.700684 1
+25 10 27 0.878418 0.677734 1
+25 10 28 0.84375 0.650879 1
+25 10 29 0.805664 0.621582 1
+25 10 30 0.76709 0.592285 1
+25 10 31 0.729492 0.563477 1
+25 11 0 0.895996 0.666504 0
+25 11 1 0.895996 0.666504 0
+25 11 2 0.895996 0.666504 0
+25 11 3 0.895996 0.666504 0
+25 11 4 0.895996 0.666504 0
+25 11 5 0.895996 0.666504 0
+25 11 6 0.895996 0.666504 0
+25 11 7 0.895996 0.666504 0
+25 11 8 0.895996 0.666504 0
+25 11 9 0.895996 0.666504 0
+25 11 10 0.896484 0.666504 0
+25 11 11 0.896484 0.666504 0
+25 11 12 0.896484 0.666992 0
+25 11 13 0.896484 0.66748 0
+25 11 14 0.896973 0.667969 0
+25 11 15 0.896484 0.668457 0
+25 11 16 0.904785 0.67334 0.276855
+25 11 17 0.916016 0.681152 0.400879
+25 11 18 0.928223 0.689453 0.505859
+25 11 19 0.940918 0.700195 0.604004
+25 11 20 0.955078 0.71582 0.696777
+25 11 21 0.966309 0.73291 0.779785
+25 11 22 0.969727 0.743164 0.848145
+25 11 23 0.963867 0.742676 0.900391
+25 11 24 0.950684 0.733887 0.941406
+25 11 25 0.932617 0.719727 0.977539
+25 11 26 0.908691 0.70166 1
+25 11 27 0.878906 0.678711 1
+25 11 28 0.84375 0.651855 1
+25 11 29 0.805664 0.622559 1
+25 11 30 0.76709 0.593262 1
+25 11 31 0.729492 0.563965 1
+25 12 0 0.897461 0.669922 0
+25 12 1 0.897461 0.669922 0
+25 12 2 0.897461 0.669922 0
+25 12 3 0.897461 0.669922 0
+25 12 4 0.897461 0.669922 0
+25 12 5 0.897461 0.669922 0
+25 12 6 0.897461 0.669922 0
+25 12 7 0.897461 0.669922 0
+25 12 8 0.897461 0.669922 0
+25 12 9 0.897461 0.669922 0
+25 12 10 0.897461 0.67041 0
+25 12 11 0.897461 0.67041 0
+25 12 12 0.897949 0.670898 0
+25 12 13 0.897949 0.671387 0
+25 12 14 0.897949 0.671875 0
+25 12 15 0.897949 0.671875 0
+25 12 16 0.905762 0.676758 0.277588
+25 12 17 0.916992 0.684082 0.400879
+25 12 18 0.928711 0.692383 0.506348
+25 12 19 0.940918 0.702637 0.604004
+25 12 20 0.955078 0.718262 0.696289
+25 12 21 0.966309 0.734863 0.779297
+25 12 22 0.970215 0.745117 0.848145
+25 12 23 0.964355 0.745117 0.900391
+25 12 24 0.951172 0.736328 0.941406
+25 12 25 0.932617 0.722168 0.977539
+25 12 26 0.90918 0.703613 1
+25 12 27 0.878906 0.680664 1
+25 12 28 0.84375 0.653809 1
+25 12 29 0.806152 0.624512 1
+25 12 30 0.767578 0.594727 1
+25 12 31 0.72998 0.56543 1
+25 13 0 0.899414 0.67627 0
+25 13 1 0.899414 0.67627 0
+25 13 2 0.899414 0.67627 0
+25 13 3 0.899414 0.67627 0
+25 13 4 0.899414 0.67627 0
+25 13 5 0.899414 0.67627 0
+25 13 6 0.899414 0.67627 0
+25 13 7 0.899414 0.67627 0
+25 13 8 0.899414 0.67627 0
+25 13 9 0.899414 0.67627 0
+25 13 10 0.899414 0.67627 0
+25 13 11 0.899902 0.67627 0
+25 13 12 0.899902 0.676758 0
+25 13 13 0.899902 0.677246 0
+25 13 14 0.900391 0.677734 0
+25 13 15 0.899902 0.677734 0
+25 13 16 0.907227 0.682129 0.279053
+25 13 17 0.917969 0.689453 0.400879
+25 13 18 0.930176 0.697754 0.506836
+25 13 19 0.941895 0.707031 0.603516
+25 13 20 0.955566 0.722168 0.695801
+25 13 21 0.966797 0.738281 0.779297
+25 13 22 0.970215 0.748535 0.848145
+25 13 23 0.964355 0.748535 0.900391
+25 13 24 0.95166 0.739746 0.941406
+25 13 25 0.933105 0.725586 0.977539
+25 13 26 0.909668 0.707031 1
+25 13 27 0.879395 0.683594 1
+25 13 28 0.844238 0.65625 1
+25 13 29 0.806152 0.626953 1
+25 13 30 0.767578 0.597168 1
+25 13 31 0.72998 0.567871 1
+25 14 0 0.902832 0.685547 0
+25 14 1 0.902832 0.685547 0
+25 14 2 0.902832 0.685547 0
+25 14 3 0.902832 0.685547 0
+25 14 4 0.902832 0.685547 0
+25 14 5 0.902832 0.685547 0
+25 14 6 0.902832 0.685547 0
+25 14 7 0.902832 0.685547 0
+25 14 8 0.902832 0.685547 0
+25 14 9 0.902832 0.685547 0
+25 14 10 0.902832 0.685547 0
+25 14 11 0.902832 0.686035 0
+25 14 12 0.90332 0.686035 0
+25 14 13 0.90332 0.687012 0
+25 14 14 0.90332 0.6875 0
+25 14 15 0.902832 0.687012 0
+25 14 16 0.910156 0.691406 0.281982
+25 14 17 0.919922 0.697266 0.401611
+25 14 18 0.932129 0.706055 0.507812
+25 14 19 0.942871 0.713867 0.603516
+25 14 20 0.955566 0.728027 0.695312
+25 14 21 0.966797 0.743652 0.778809
+25 14 22 0.970703 0.753906 0.847656
+25 14 23 0.965332 0.753906 0.900879
+25 14 24 0.952148 0.745117 0.941895
+25 14 25 0.934082 0.730469 0.978027
+25 14 26 0.910156 0.711914 1
+25 14 27 0.879883 0.688477 1
+25 14 28 0.844727 0.661133 1
+25 14 29 0.806641 0.631348 1
+25 14 30 0.768066 0.601074 1
+25 14 31 0.730469 0.571289 1
+25 15 0 0.907715 0.699707 0
+25 15 1 0.907715 0.699707 0
+25 15 2 0.907715 0.699707 0
+25 15 3 0.907715 0.699707 0
+25 15 4 0.907715 0.699707 0
+25 15 5 0.907715 0.699707 0
+25 15 6 0.907715 0.699707 0
+25 15 7 0.907715 0.699707 0
+25 15 8 0.907715 0.699707 0
+25 15 9 0.907715 0.699707 0
+25 15 10 0.907715 0.700195 0
+25 15 11 0.907715 0.700195 0
+25 15 12 0.908203 0.700684 0
+25 15 13 0.908203 0.701172 0
+25 15 14 0.908203 0.70166 0
+25 15 15 0.908203 0.701172 0.0912476
+25 15 16 0.914551 0.705078 0.287598
+25 15 17 0.92334 0.709961 0.403076
+25 15 18 0.93457 0.717773 0.508301
+25 15 19 0.944336 0.724609 0.603027
+25 15 20 0.956055 0.736816 0.693848
+25 15 21 0.966797 0.751465 0.777832
+25 15 22 0.971191 0.762207 0.847656
+25 15 23 0.96582 0.762207 0.900879
+25 15 24 0.953125 0.753418 0.942383
+25 15 25 0.935059 0.73877 0.978516
+25 15 26 0.911133 0.719727 1
+25 15 27 0.880859 0.695801 1
+25 15 28 0.845703 0.66748 1
+25 15 29 0.807617 0.637207 1
+25 15 30 0.768555 0.606445 1
+25 15 31 0.730957 0.57666 1
+25 16 0 0.914551 0.720215 0
+25 16 1 0.914551 0.720215 0
+25 16 2 0.914551 0.720215 0
+25 16 3 0.914551 0.720215 0
+25 16 4 0.914551 0.720215 0
+25 16 5 0.914551 0.720215 0
+25 16 6 0.914551 0.720215 0
+25 16 7 0.914551 0.720215 0
+25 16 8 0.914551 0.720215 0
+25 16 9 0.914551 0.720215 0
+25 16 10 0.914551 0.720215 0
+25 16 11 0.914551 0.720215 0
+25 16 12 0.915039 0.720703 0
+25 16 13 0.915039 0.721191 0
+25 16 14 0.915039 0.72168 0
+25 16 15 0.915527 0.72168 0.142822
+25 16 16 0.920898 0.724609 0.298096
+25 16 17 0.928223 0.728516 0.407227
+25 16 18 0.9375 0.733887 0.508301
+25 16 19 0.946777 0.740234 0.603027
+25 16 20 0.956543 0.749512 0.692383
+25 16 21 0.966797 0.763184 0.776367
+25 16 22 0.97168 0.773438 0.847168
+25 16 23 0.966797 0.773926 0.900879
+25 16 24 0.954102 0.764648 0.942383
+25 16 25 0.936035 0.75 0.979004
+25 16 26 0.912598 0.730957 1
+25 16 27 0.882324 0.706055 1
+25 16 28 0.84668 0.677246 1
+25 16 29 0.808105 0.646484 1
+25 16 30 0.769531 0.614746 1
+25 16 31 0.731934 0.584473 1
+25 17 0 0.92334 0.746582 0
+25 17 1 0.92334 0.746582 0
+25 17 2 0.92334 0.746582 0
+25 17 3 0.92334 0.746582 0
+25 17 4 0.92334 0.746582 0
+25 17 5 0.92334 0.746582 0
+25 17 6 0.92334 0.746582 0
+25 17 7 0.92334 0.746582 0
+25 17 8 0.92334 0.746582 0
+25 17 9 0.92334 0.746582 0
+25 17 10 0.92334 0.746582 0
+25 17 11 0.923828 0.74707 0
+25 17 12 0.923828 0.74707 0
+25 17 13 0.923828 0.747559 0
+25 17 14 0.924316 0.748047 0
+25 17 15 0.925293 0.748535 0.192627
+25 17 16 0.930176 0.750977 0.315674
+25 17 17 0.935547 0.753418 0.415771
+25 17 18 0.941895 0.756348 0.510742
+25 17 19 0.950684 0.762207 0.60498
+25 17 20 0.95752 0.76709 0.689941
+25 17 21 0.966309 0.77832 0.773926
+25 17 22 0.97168 0.788086 0.845703
+25 17 23 0.967773 0.789062 0.900879
+25 17 24 0.955566 0.780273 0.942383
+25 17 25 0.9375 0.765137 0.979004
+25 17 26 0.914062 0.745605 1
+25 17 27 0.883301 0.720215 1
+25 17 28 0.847656 0.69043 1
+25 17 29 0.80957 0.658203 1
+25 17 30 0.770508 0.625977 1
+25 17 31 0.73291 0.594727 1
+25 18 0 0.934082 0.778809 0.09021
+25 18 1 0.934082 0.778809 0.09021
+25 18 2 0.934082 0.778809 0.09021
+25 18 3 0.934082 0.778809 0.09021
+25 18 4 0.934082 0.778809 0.09021
+25 18 5 0.934082 0.778809 0.090271
+25 18 6 0.934082 0.778809 0.090271
+25 18 7 0.934082 0.778809 0.0903931
+25 18 8 0.934082 0.778809 0.0905762
+25 18 9 0.934082 0.778809 0.0908813
+25 18 10 0.934082 0.778809 0.0914307
+25 18 11 0.934082 0.778809 0.0924683
+25 18 12 0.93457 0.779297 0.0941162
+25 18 13 0.93457 0.779785 0.0967407
+25 18 14 0.935059 0.780273 0.100708
+25 18 15 0.9375 0.781738 0.243042
+25 18 16 0.940918 0.783691 0.341064
+25 18 17 0.944824 0.784668 0.43042
+25 18 18 0.94873 0.785645 0.517578
+25 18 19 0.953613 0.787109 0.604492
+25 18 20 0.958984 0.790527 0.688477
+25 18 21 0.965332 0.796875 0.769531
+25 18 22 0.970703 0.806152 0.843262
+25 18 23 0.968262 0.807617 0.899902
+25 18 24 0.957031 0.799316 0.942383
+25 18 25 0.938965 0.783691 0.979004
+25 18 26 0.915527 0.763672 1
+25 18 27 0.884766 0.737305 1
+25 18 28 0.849121 0.706543 1
+25 18 29 0.810547 0.67334 1
+25 18 30 0.771484 0.640137 1
+25 18 31 0.733887 0.607422 1
+25 19 0 0.948242 0.815918 0.219482
+25 19 1 0.948242 0.815918 0.219482
+25 19 2 0.948242 0.815918 0.219482
+25 19 3 0.948242 0.815918 0.219482
+25 19 4 0.948242 0.815918 0.219482
+25 19 5 0.948242 0.815918 0.219482
+25 19 6 0.948242 0.815918 0.219482
+25 19 7 0.948242 0.815918 0.219482
+25 19 8 0.948242 0.815918 0.219482
+25 19 9 0.948242 0.815918 0.219604
+25 19 10 0.948242 0.815918 0.219727
+25 19 11 0.948242 0.815918 0.219971
+25 19 12 0.948242 0.816406 0.220337
+25 19 13 0.948242 0.816895 0.221069
+25 19 14 0.94873 0.817383 0.222168
+25 19 15 0.950684 0.818359 0.29126
+25 19 16 0.953613 0.819824 0.371582
+25 19 17 0.956055 0.820801 0.451416
+25 19 18 0.958008 0.820312 0.530762
+25 19 19 0.958984 0.818848 0.609375
+25 19 20 0.961426 0.818359 0.687988
+25 19 21 0.963867 0.819336 0.765137
+25 19 22 0.96875 0.826172 0.838379
+25 19 23 0.967773 0.828613 0.897461
+25 19 24 0.95752 0.820801 0.940918
+25 19 25 0.939941 0.805176 0.978027
+25 19 26 0.916992 0.78418 1
+25 19 27 0.88623 0.756836 1
+25 19 28 0.850098 0.724609 1
+25 19 29 0.811523 0.69043 1
+25 19 30 0.772949 0.65625 1
+25 19 31 0.735352 0.623047 1
+25 20 0 0.960938 0.853516 0.286865
+25 20 1 0.960938 0.853516 0.286865
+25 20 2 0.960938 0.853516 0.286865
+25 20 3 0.960938 0.853516 0.286865
+25 20 4 0.960938 0.853516 0.286865
+25 20 5 0.960938 0.853516 0.286865
+25 20 6 0.960938 0.853516 0.286865
+25 20 7 0.960938 0.853516 0.286865
+25 20 8 0.960938 0.853516 0.286865
+25 20 9 0.960938 0.853516 0.286865
+25 20 10 0.960938 0.853516 0.287109
+25 20 11 0.960938 0.854004 0.287109
+25 20 12 0.960938 0.854004 0.287354
+25 20 13 0.960938 0.854004 0.287842
+25 20 14 0.961426 0.854492 0.28833
+25 20 15 0.962891 0.855957 0.333252
+25 20 16 0.965332 0.857422 0.402344
+25 20 17 0.967285 0.858398 0.474609
+25 20 18 0.967773 0.857422 0.547852
+25 20 19 0.966797 0.854492 0.620117
+25 20 20 0.964355 0.849609 0.689941
+25 20 21 0.964355 0.847168 0.762207
+25 20 22 0.964844 0.847168 0.831543
+25 20 23 0.965332 0.850098 0.893066
+25 20 24 0.957031 0.84375 0.938477
+25 20 25 0.94043 0.828125 0.976562
+25 20 26 0.91748 0.806641 1
+25 20 27 0.886719 0.777832 1
+25 20 28 0.850586 0.744629 1
+25 20 29 0.812012 0.709473 1
+25 20 30 0.773926 0.674316 1
+25 20 31 0.736816 0.639648 1
+25 21 0 0.970703 0.890137 0.334473
+25 21 1 0.970703 0.890137 0.334473
+25 21 2 0.970703 0.890137 0.334473
+25 21 3 0.970703 0.890137 0.334473
+25 21 4 0.970703 0.890137 0.334473
+25 21 5 0.970703 0.890137 0.334473
+25 21 6 0.970703 0.890137 0.334473
+25 21 7 0.970703 0.890137 0.334473
+25 21 8 0.970703 0.890137 0.334473
+25 21 9 0.970703 0.890137 0.334473
+25 21 10 0.970703 0.890137 0.334473
+25 21 11 0.970703 0.890625 0.334473
+25 21 12 0.970703 0.890625 0.334717
+25 21 13 0.970703 0.890625 0.334961
+25 21 14 0.971191 0.891113 0.335449
+25 21 15 0.972168 0.89209 0.365723
+25 21 16 0.974609 0.894043 0.428467
+25 21 17 0.976562 0.89502 0.496094
+25 21 18 0.977051 0.894531 0.565918
+25 21 19 0.975586 0.891602 0.634277
+25 21 20 0.970703 0.885254 0.698242
+25 21 21 0.964844 0.876953 0.760742
+25 21 22 0.960938 0.871094 0.824707
+25 21 23 0.960938 0.871582 0.885742
+25 21 24 0.955078 0.867188 0.934082
+25 21 25 0.939453 0.852051 0.973145
+25 21 26 0.916992 0.830078 1
+25 21 27 0.88623 0.800293 1
+25 21 28 0.850098 0.765625 1
+25 21 29 0.8125 0.729492 1
+25 21 30 0.774902 0.693359 1
+25 21 31 0.73877 0.658691 1
+25 22 0 0.976074 0.92334 0.366211
+25 22 1 0.976074 0.92334 0.366211
+25 22 2 0.976074 0.92334 0.366211
+25 22 3 0.976074 0.92334 0.366211
+25 22 4 0.976074 0.92334 0.366211
+25 22 5 0.976074 0.92334 0.366211
+25 22 6 0.976074 0.92334 0.366211
+25 22 7 0.976074 0.92334 0.366211
+25 22 8 0.976074 0.92334 0.366211
+25 22 9 0.976074 0.92334 0.366211
+25 22 10 0.976074 0.923828 0.366211
+25 22 11 0.976074 0.923828 0.366211
+25 22 12 0.976074 0.923828 0.366211
+25 22 13 0.976074 0.923828 0.366455
+25 22 14 0.976074 0.924316 0.366699
+25 22 15 0.977051 0.925293 0.386719
+25 22 16 0.97998 0.927246 0.445801
+25 22 17 0.982422 0.928711 0.51123
+25 22 18 0.983398 0.929199 0.579102
+25 22 19 0.982422 0.926758 0.645996
+25 22 20 0.977539 0.920898 0.708496
+25 22 21 0.969238 0.911621 0.766602
+25 22 22 0.959473 0.899414 0.820801
+25 22 23 0.954102 0.892578 0.875977
+25 22 24 0.951172 0.890137 0.927734
+25 22 25 0.9375 0.875977 0.967773
+25 22 26 0.915527 0.853027 1
+25 22 27 0.884277 0.821777 1
+25 22 28 0.848633 0.786621 1
+25 22 29 0.812012 0.75 1
+25 22 30 0.775879 0.713867 1
+25 22 31 0.740723 0.678711 1
+25 23 0 0.975586 0.951172 0.384277
+25 23 1 0.975586 0.951172 0.384277
+25 23 2 0.975586 0.951172 0.384277
+25 23 3 0.975586 0.951172 0.384521
+25 23 4 0.975586 0.951172 0.384521
+25 23 5 0.975586 0.951172 0.384521
+25 23 6 0.975586 0.951172 0.384521
+25 23 7 0.975586 0.951172 0.384521
+25 23 8 0.975586 0.951172 0.384521
+25 23 9 0.975586 0.951172 0.384521
+25 23 10 0.975586 0.951172 0.384521
+25 23 11 0.975586 0.951172 0.384521
+25 23 12 0.975586 0.951172 0.384521
+25 23 13 0.975586 0.95166 0.384521
+25 23 14 0.975586 0.95166 0.384766
+25 23 15 0.976074 0.952148 0.395752
+25 23 16 0.979004 0.95459 0.453125
+25 23 17 0.981934 0.957031 0.51709
+25 23 18 0.984375 0.958008 0.584473
+25 23 19 0.984375 0.957031 0.651855
+25 23 20 0.981445 0.952637 0.714844
+25 23 21 0.974121 0.944336 0.772949
+25 23 22 0.962891 0.931641 0.824219
+25 23 23 0.950195 0.916992 0.869629
+25 23 24 0.944824 0.910156 0.918457
+25 23 25 0.934082 0.897949 0.961426
+25 23 26 0.911621 0.874512 0.993164
+25 23 27 0.880371 0.842285 1
+25 23 28 0.84668 0.807129 1
+25 23 29 0.812012 0.770996 1
+25 23 30 0.777344 0.734863 1
+25 23 31 0.743652 0.699707 1
+25 24 0 0.969238 0.972656 0.393311
+25 24 1 0.969238 0.972656 0.393311
+25 24 2 0.969238 0.972656 0.393311
+25 24 3 0.969238 0.972656 0.393311
+25 24 4 0.969238 0.972656 0.393311
+25 24 5 0.969238 0.972656 0.393311
+25 24 6 0.969238 0.972656 0.393311
+25 24 7 0.969238 0.972656 0.393311
+25 24 8 0.969238 0.972656 0.393311
+25 24 9 0.969238 0.972656 0.393311
+25 24 10 0.969238 0.972656 0.393311
+25 24 11 0.969238 0.972656 0.393311
+25 24 12 0.969238 0.972656 0.393555
+25 24 13 0.969238 0.972656 0.393555
+25 24 14 0.969238 0.973145 0.393555
+25 24 15 0.969238 0.973145 0.396484
+25 24 16 0.972656 0.976074 0.452393
+25 24 17 0.976074 0.979004 0.515625
+25 24 18 0.979004 0.980957 0.58252
+25 24 19 0.980469 0.980957 0.649414
+25 24 20 0.979004 0.978027 0.713379
+25 24 21 0.974121 0.97168 0.772949
+25 24 22 0.965332 0.960938 0.826172
+25 24 23 0.953125 0.946777 0.871094
+25 24 24 0.937988 0.929688 0.908691
+25 24 25 0.929199 0.918945 0.953125
+25 24 26 0.905762 0.893555 0.983398
+25 24 27 0.875977 0.861328 1
+25 24 28 0.844727 0.827637 1
+25 24 29 0.8125 0.79248 1
+25 24 30 0.779785 0.757324 1
+25 24 31 0.74707 0.72168 1
+25 25 0 0.956055 0.989746 0.397461
+25 25 1 0.956055 0.989746 0.397461
+25 25 2 0.956055 0.989746 0.397461
+25 25 3 0.956055 0.989746 0.397461
+25 25 4 0.956055 0.989746 0.397461
+25 25 5 0.956055 0.989746 0.397461
+25 25 6 0.956055 0.989746 0.397461
+25 25 7 0.956055 0.989746 0.397461
+25 25 8 0.956055 0.989746 0.397461
+25 25 9 0.956055 0.989746 0.397461
+25 25 10 0.956055 0.989746 0.397461
+25 25 11 0.956055 0.989746 0.397461
+25 25 12 0.956055 0.989746 0.397461
+25 25 13 0.956055 0.989746 0.397461
+25 25 14 0.956055 0.989746 0.397461
+25 25 15 0.956055 0.990234 0.397461
+25 25 16 0.958984 0.992676 0.446289
+25 25 17 0.962891 0.995605 0.507812
+25 25 18 0.966309 0.998047 0.57373
+25 25 19 0.96875 0.999023 0.640137
+25 25 20 0.96875 0.997559 0.703613
+25 25 21 0.96582 0.992676 0.76416
+25 25 22 0.959473 0.984375 0.818848
+25 25 23 0.950195 0.972656 0.865723
+25 25 24 0.937988 0.958496 0.905762
+25 25 25 0.921875 0.939453 0.942383
+25 25 26 0.899414 0.913574 0.972656
+25 25 27 0.873535 0.884277 0.999023
+25 25 28 0.845215 0.852539 1
+25 25 29 0.814941 0.818359 1
+25 25 30 0.783203 0.782227 1
+25 25 31 0.750977 0.746094 1
+25 26 0 0.936035 1 0.398682
+25 26 1 0.936035 1 0.398682
+25 26 2 0.936035 1 0.398682
+25 26 3 0.936035 1 0.398682
+25 26 4 0.936035 1 0.398682
+25 26 5 0.936035 1 0.398682
+25 26 6 0.936035 1 0.398682
+25 26 7 0.936035 1 0.398682
+25 26 8 0.936035 1 0.398682
+25 26 9 0.936035 1 0.398682
+25 26 10 0.936035 1 0.398682
+25 26 11 0.936035 1 0.398682
+25 26 12 0.936035 1 0.398682
+25 26 13 0.936035 1 0.398682
+25 26 14 0.936035 1 0.398682
+25 26 15 0.936035 1 0.398682
+25 26 16 0.938477 1 0.436279
+25 26 17 0.942383 1 0.496094
+25 26 18 0.946289 1 0.560059
+25 26 19 0.949219 1 0.625
+25 26 20 0.949707 1 0.6875
+25 26 21 0.948242 1 0.74707
+25 26 22 0.943359 0.999512 0.801758
+25 26 23 0.935547 0.98877 0.848633
+25 26 24 0.924805 0.975098 0.88916
+25 26 25 0.912109 0.959473 0.928711
+25 26 26 0.898926 0.942383 0.968262
+25 26 27 0.876465 0.915527 0.998047
+25 26 28 0.848633 0.882812 1
+25 26 29 0.818359 0.847168 1
+25 26 30 0.787109 0.810547 1
+25 26 31 0.755371 0.772949 1
+25 27 0 0.910645 1 0.397949
+25 27 1 0.910645 1 0.397949
+25 27 2 0.910645 1 0.397949
+25 27 3 0.910645 1 0.397949
+25 27 4 0.910645 1 0.397949
+25 27 5 0.910645 1 0.397949
+25 27 6 0.910645 1 0.397949
+25 27 7 0.910645 1 0.397949
+25 27 8 0.910645 1 0.397949
+25 27 9 0.910645 1 0.397949
+25 27 10 0.910645 1 0.397949
+25 27 11 0.910645 1 0.397949
+25 27 12 0.910645 1 0.397949
+25 27 13 0.910645 1 0.397949
+25 27 14 0.910645 1 0.397949
+25 27 15 0.910645 1 0.397949
+25 27 16 0.912109 1 0.423584
+25 27 17 0.916016 1 0.481201
+25 27 18 0.92041 1 0.542969
+25 27 19 0.92334 1 0.605957
+25 27 20 0.925293 1 0.666504
+25 27 21 0.924805 1 0.725098
+25 27 22 0.921387 1 0.779297
+25 27 23 0.915527 1 0.82666
+25 27 24 0.908203 0.990723 0.868652
+25 27 25 0.899414 0.978027 0.911133
+25 27 26 0.888184 0.962891 0.95166
+25 27 27 0.873047 0.942383 0.989258
+25 27 28 0.851074 0.914551 1
+25 27 29 0.823242 0.880371 1
+25 27 30 0.792969 0.843262 1
+25 27 31 0.76123 0.804199 1
+25 28 0 0.881348 1 0.395996
+25 28 1 0.881348 1 0.395996
+25 28 2 0.881348 1 0.395996
+25 28 3 0.881348 1 0.395996
+25 28 4 0.881348 1 0.395996
+25 28 5 0.881348 1 0.395996
+25 28 6 0.881348 1 0.395996
+25 28 7 0.881348 1 0.395996
+25 28 8 0.881348 1 0.395996
+25 28 9 0.881348 1 0.395996
+25 28 10 0.881348 1 0.395996
+25 28 11 0.881348 1 0.395996
+25 28 12 0.881348 1 0.395996
+25 28 13 0.881348 1 0.395996
+25 28 14 0.881348 1 0.395996
+25 28 15 0.881348 1 0.395996
+25 28 16 0.882324 1 0.40918
+25 28 17 0.88623 1 0.464111
+25 28 18 0.890625 1 0.523438
+25 28 19 0.894531 1 0.583984
+25 28 20 0.896973 1 0.643066
+25 28 21 0.897949 1 0.700195
+25 28 22 0.896973 1 0.753906
+25 28 23 0.893555 1 0.802246
+25 28 24 0.88916 1 0.845703
+25 28 25 0.883301 0.994629 0.88916
+25 28 26 0.874023 0.980957 0.931152
+25 28 27 0.861328 0.962891 0.970215
+25 28 28 0.844238 0.939453 1
+25 28 29 0.821777 0.909668 1
+25 28 30 0.794922 0.874512 1
+25 28 31 0.765137 0.836426 1
+25 29 0 0.850098 1 0.393066
+25 29 1 0.850098 1 0.393066
+25 29 2 0.850098 1 0.393066
+25 29 3 0.850098 1 0.393066
+25 29 4 0.850098 1 0.393066
+25 29 5 0.850098 1 0.393066
+25 29 6 0.850098 1 0.393066
+25 29 7 0.850098 1 0.393066
+25 29 8 0.850098 1 0.393066
+25 29 9 0.850098 1 0.393066
+25 29 10 0.850098 1 0.393066
+25 29 11 0.850098 1 0.393066
+25 29 12 0.850098 1 0.393066
+25 29 13 0.850098 1 0.393066
+25 29 14 0.850098 1 0.393066
+25 29 15 0.850098 1 0.393066
+25 29 16 0.850098 1 0.393555
+25 29 17 0.854004 1 0.445801
+25 29 18 0.858398 1 0.501953
+25 29 19 0.862793 1 0.560059
+25 29 20 0.866211 1 0.617188
+25 29 21 0.868652 1 0.67334
+25 29 22 0.869629 1 0.726562
+25 29 23 0.869141 1 0.774902
+25 29 24 0.866699 1 0.818848
+25 29 25 0.862793 1 0.862793
+25 29 26 0.856445 0.996582 0.90625
+25 29 27 0.846191 0.980469 0.946777
+25 29 28 0.83252 0.959961 0.983887
+25 29 29 0.814941 0.93457 1
+25 29 30 0.792969 0.903809 1
+25 29 31 0.766602 0.867676 1
+25 30 0 0.817871 1 0.389893
+25 30 1 0.817871 1 0.389893
+25 30 2 0.817871 1 0.389893
+25 30 3 0.817871 1 0.389893
+25 30 4 0.817871 1 0.389893
+25 30 5 0.817871 1 0.389893
+25 30 6 0.817871 1 0.389893
+25 30 7 0.817871 1 0.389893
+25 30 8 0.817871 1 0.389893
+25 30 9 0.817871 1 0.389893
+25 30 10 0.817871 1 0.389893
+25 30 11 0.817871 1 0.389893
+25 30 12 0.817871 1 0.389893
+25 30 13 0.817871 1 0.389893
+25 30 14 0.817871 1 0.389893
+25 30 15 0.817871 1 0.389893
+25 30 16 0.817871 1 0.389893
+25 30 17 0.820801 1 0.426758
+25 30 18 0.825195 1 0.480225
+25 30 19 0.82959 1 0.535645
+25 30 20 0.833496 1 0.590332
+25 30 21 0.837402 1 0.644531
+25 30 22 0.839844 1 0.696289
+25 30 23 0.84082 1 0.744141
+25 30 24 0.840332 1 0.788086
+25 30 25 0.838867 1 0.832031
+25 30 26 0.834473 1 0.876465
+25 30 27 0.827637 0.995117 0.918945
+25 30 28 0.817383 0.978027 0.958496
+25 30 29 0.803223 0.956055 0.994629
+25 30 30 0.785645 0.929199 1
+25 30 31 0.76416 0.896973 1
+25 31 0 0.785645 1 0.38623
+25 31 1 0.785645 1 0.38623
+25 31 2 0.785645 1 0.38623
+25 31 3 0.785645 1 0.38623
+25 31 4 0.785645 1 0.38623
+25 31 5 0.785645 1 0.38623
+25 31 6 0.785645 1 0.38623
+25 31 7 0.785645 1 0.38623
+25 31 8 0.785645 1 0.38623
+25 31 9 0.785645 1 0.38623
+25 31 10 0.785645 1 0.38623
+25 31 11 0.785645 1 0.38623
+25 31 12 0.785645 1 0.38623
+25 31 13 0.785645 1 0.38623
+25 31 14 0.785645 1 0.38623
+25 31 15 0.785645 1 0.38623
+25 31 16 0.785645 1 0.38623
+25 31 17 0.787109 1 0.407715
+25 31 18 0.791504 1 0.458008
+25 31 19 0.795898 1 0.510254
+25 31 20 0.800293 1 0.5625
+25 31 21 0.804688 1 0.614258
+25 31 22 0.808105 1 0.664062
+25 31 23 0.810547 1 0.710938
+25 31 24 0.811523 1 0.754395
+25 31 25 0.811523 1 0.79834
+25 31 26 0.810059 1 0.842773
+25 31 27 0.805664 1 0.886719
+25 31 28 0.798828 0.992676 0.928711
+25 31 29 0.788574 0.974609 0.967773
+25 31 30 0.774902 0.951172 1
+25 31 31 0.757324 0.922852 1
+26 0 0 0.916504 0.677734 0
+26 0 1 0.916504 0.677734 0
+26 0 2 0.916504 0.677734 0
+26 0 3 0.916504 0.677734 0
+26 0 4 0.916504 0.677734 0
+26 0 5 0.916504 0.677734 0
+26 0 6 0.916504 0.677734 0
+26 0 7 0.916504 0.677734 0
+26 0 8 0.916504 0.677734 0
+26 0 9 0.916504 0.677734 0
+26 0 10 0.916504 0.677734 0
+26 0 11 0.916504 0.678223 0
+26 0 12 0.916992 0.678223 0
+26 0 13 0.916992 0.678711 0
+26 0 14 0.91748 0.679688 0
+26 0 15 0.916992 0.679688 0
+26 0 16 0.921875 0.683105 0.219971
+26 0 17 0.933594 0.69043 0.359375
+26 0 18 0.946289 0.700195 0.469971
+26 0 19 0.958008 0.708008 0.565918
+26 0 20 0.970215 0.720215 0.656738
+26 0 21 0.981934 0.735352 0.741211
+26 0 22 0.98877 0.748535 0.813477
+26 0 23 0.988281 0.755371 0.871094
+26 0 24 0.980469 0.75293 0.916504
+26 0 25 0.96582 0.743164 0.956543
+26 0 26 0.945801 0.727539 0.991211
+26 0 27 0.919922 0.708008 1
+26 0 28 0.888184 0.683594 1
+26 0 29 0.852051 0.655762 1
+26 0 30 0.813477 0.626465 1
+26 0 31 0.774414 0.59668 1
+26 1 0 0.916504 0.677734 0
+26 1 1 0.916504 0.677734 0
+26 1 2 0.916504 0.677734 0
+26 1 3 0.916504 0.677734 0
+26 1 4 0.916504 0.677734 0
+26 1 5 0.916504 0.677734 0
+26 1 6 0.916504 0.677734 0
+26 1 7 0.916504 0.677734 0
+26 1 8 0.916504 0.677734 0
+26 1 9 0.916504 0.677734 0
+26 1 10 0.916504 0.677734 0
+26 1 11 0.916504 0.678223 0
+26 1 12 0.916992 0.678223 0
+26 1 13 0.916992 0.678711 0
+26 1 14 0.91748 0.679688 0
+26 1 15 0.916992 0.679688 0
+26 1 16 0.921875 0.683105 0.219971
+26 1 17 0.933594 0.69043 0.359375
+26 1 18 0.946289 0.700195 0.469971
+26 1 19 0.958008 0.708008 0.565918
+26 1 20 0.970215 0.720215 0.656738
+26 1 21 0.981934 0.735352 0.741211
+26 1 22 0.98877 0.748535 0.813477
+26 1 23 0.988281 0.755371 0.871094
+26 1 24 0.980469 0.75293 0.916504
+26 1 25 0.96582 0.743164 0.956543
+26 1 26 0.945801 0.727539 0.991211
+26 1 27 0.919922 0.708008 1
+26 1 28 0.888184 0.683594 1
+26 1 29 0.852051 0.655762 1
+26 1 30 0.813477 0.626465 1
+26 1 31 0.774414 0.59668 1
+26 2 0 0.916504 0.677734 0
+26 2 1 0.916504 0.677734 0
+26 2 2 0.916504 0.677734 0
+26 2 3 0.916504 0.677734 0
+26 2 4 0.916504 0.677734 0
+26 2 5 0.916504 0.677734 0
+26 2 6 0.916504 0.677734 0
+26 2 7 0.916504 0.677734 0
+26 2 8 0.916504 0.677734 0
+26 2 9 0.916504 0.677734 0
+26 2 10 0.916504 0.677734 0
+26 2 11 0.916504 0.678223 0
+26 2 12 0.916992 0.678223 0
+26 2 13 0.916992 0.678711 0
+26 2 14 0.91748 0.679688 0
+26 2 15 0.916992 0.679688 0
+26 2 16 0.921875 0.683105 0.219971
+26 2 17 0.933594 0.69043 0.359375
+26 2 18 0.946289 0.700195 0.469971
+26 2 19 0.958008 0.708008 0.565918
+26 2 20 0.970215 0.720215 0.656738
+26 2 21 0.981934 0.735352 0.741211
+26 2 22 0.98877 0.748535 0.813477
+26 2 23 0.988281 0.755371 0.871094
+26 2 24 0.980469 0.75293 0.916504
+26 2 25 0.96582 0.743164 0.956543
+26 2 26 0.945801 0.727539 0.991211
+26 2 27 0.919922 0.708008 1
+26 2 28 0.888184 0.683594 1
+26 2 29 0.852051 0.655762 1
+26 2 30 0.813477 0.626465 1
+26 2 31 0.774414 0.59668 1
+26 3 0 0.916504 0.677734 0
+26 3 1 0.916504 0.677734 0
+26 3 2 0.916504 0.677734 0
+26 3 3 0.916504 0.677734 0
+26 3 4 0.916504 0.677734 0
+26 3 5 0.916504 0.677734 0
+26 3 6 0.916504 0.677734 0
+26 3 7 0.916504 0.677734 0
+26 3 8 0.916504 0.677734 0
+26 3 9 0.916504 0.677734 0
+26 3 10 0.916504 0.677734 0
+26 3 11 0.916504 0.678223 0
+26 3 12 0.916992 0.678223 0
+26 3 13 0.916992 0.678711 0
+26 3 14 0.91748 0.679688 0
+26 3 15 0.916992 0.679688 0
+26 3 16 0.921875 0.683105 0.219971
+26 3 17 0.933594 0.69043 0.359375
+26 3 18 0.946289 0.700195 0.469971
+26 3 19 0.958008 0.708008 0.565918
+26 3 20 0.970215 0.720703 0.656738
+26 3 21 0.981934 0.735352 0.741211
+26 3 22 0.98877 0.748535 0.813477
+26 3 23 0.988281 0.755371 0.871094
+26 3 24 0.980469 0.75293 0.916504
+26 3 25 0.96582 0.743164 0.956543
+26 3 26 0.945801 0.727539 0.991211
+26 3 27 0.919922 0.708008 1
+26 3 28 0.888184 0.683594 1
+26 3 29 0.852051 0.655762 1
+26 3 30 0.813477 0.626465 1
+26 3 31 0.774414 0.59668 1
+26 4 0 0.916504 0.677734 0
+26 4 1 0.916504 0.677734 0
+26 4 2 0.916504 0.677734 0
+26 4 3 0.916504 0.677734 0
+26 4 4 0.916504 0.677734 0
+26 4 5 0.916504 0.677734 0
+26 4 6 0.916504 0.677734 0
+26 4 7 0.916504 0.677734 0
+26 4 8 0.916504 0.677734 0
+26 4 9 0.916504 0.677734 0
+26 4 10 0.916504 0.677734 0
+26 4 11 0.916504 0.678223 0
+26 4 12 0.916992 0.678223 0
+26 4 13 0.916992 0.678711 0
+26 4 14 0.91748 0.679688 0
+26 4 15 0.916992 0.679688 0
+26 4 16 0.921875 0.683105 0.219971
+26 4 17 0.933594 0.69043 0.359375
+26 4 18 0.946289 0.700195 0.469971
+26 4 19 0.958008 0.708008 0.565918
+26 4 20 0.970215 0.720703 0.656738
+26 4 21 0.981934 0.735352 0.741211
+26 4 22 0.98877 0.749023 0.813477
+26 4 23 0.988281 0.755371 0.871094
+26 4 24 0.980469 0.753418 0.916504
+26 4 25 0.96582 0.743164 0.956543
+26 4 26 0.945801 0.727539 0.991211
+26 4 27 0.919922 0.708008 1
+26 4 28 0.888184 0.683594 1
+26 4 29 0.852051 0.65625 1
+26 4 30 0.813477 0.626465 1
+26 4 31 0.774414 0.59668 1
+26 5 0 0.916504 0.677734 0
+26 5 1 0.916504 0.677734 0
+26 5 2 0.916504 0.677734 0
+26 5 3 0.916504 0.677734 0
+26 5 4 0.916504 0.677734 0
+26 5 5 0.916504 0.677734 0
+26 5 6 0.916504 0.677734 0
+26 5 7 0.916504 0.677734 0
+26 5 8 0.916504 0.677734 0
+26 5 9 0.916504 0.677734 0
+26 5 10 0.916504 0.677734 0
+26 5 11 0.916504 0.678223 0
+26 5 12 0.916992 0.678223 0
+26 5 13 0.916992 0.678711 0
+26 5 14 0.91748 0.679688 0
+26 5 15 0.91748 0.679688 0
+26 5 16 0.922363 0.683105 0.219971
+26 5 17 0.933594 0.69043 0.359375
+26 5 18 0.946289 0.700195 0.469971
+26 5 19 0.958008 0.708008 0.565918
+26 5 20 0.970215 0.720703 0.656738
+26 5 21 0.981934 0.73584 0.741211
+26 5 22 0.98877 0.749023 0.813477
+26 5 23 0.988281 0.755371 0.871094
+26 5 24 0.980469 0.753418 0.916504
+26 5 25 0.96582 0.743164 0.956543
+26 5 26 0.945801 0.727539 0.991699
+26 5 27 0.919922 0.708008 1
+26 5 28 0.888184 0.683594 1
+26 5 29 0.852051 0.65625 1
+26 5 30 0.813477 0.626465 1
+26 5 31 0.774414 0.59668 1
+26 6 0 0.916504 0.677734 0
+26 6 1 0.916504 0.677734 0
+26 6 2 0.916504 0.677734 0
+26 6 3 0.916504 0.677734 0
+26 6 4 0.916504 0.677734 0
+26 6 5 0.916504 0.677734 0
+26 6 6 0.916504 0.677734 0
+26 6 7 0.916504 0.677734 0
+26 6 8 0.916504 0.677734 0
+26 6 9 0.916504 0.677734 0
+26 6 10 0.916504 0.678223 0
+26 6 11 0.916504 0.678223 0
+26 6 12 0.916992 0.678711 0
+26 6 13 0.916992 0.678711 0
+26 6 14 0.91748 0.679688 0
+26 6 15 0.91748 0.679688 0
+26 6 16 0.922363 0.683105 0.219971
+26 6 17 0.933594 0.690918 0.359375
+26 6 18 0.946289 0.700195 0.469971
+26 6 19 0.958008 0.708008 0.565918
+26 6 20 0.970215 0.720703 0.656738
+26 6 21 0.981934 0.73584 0.741211
+26 6 22 0.98877 0.749023 0.813477
+26 6 23 0.988281 0.755371 0.871094
+26 6 24 0.980469 0.753418 0.916504
+26 6 25 0.966309 0.743164 0.956543
+26 6 26 0.945801 0.728027 0.991699
+26 6 27 0.919922 0.708008 1
+26 6 28 0.888184 0.684082 1
+26 6 29 0.852051 0.65625 1
+26 6 30 0.813477 0.626465 1
+26 6 31 0.774414 0.59668 1
+26 7 0 0.916504 0.678223 0
+26 7 1 0.916504 0.678223 0
+26 7 2 0.916504 0.678223 0
+26 7 3 0.916504 0.678223 0
+26 7 4 0.916504 0.678223 0
+26 7 5 0.916504 0.678223 0
+26 7 6 0.916504 0.678223 0
+26 7 7 0.916504 0.678223 0
+26 7 8 0.916504 0.678223 0
+26 7 9 0.916504 0.678223 0
+26 7 10 0.916504 0.678223 0
+26 7 11 0.916992 0.678223 0
+26 7 12 0.916992 0.678711 0
+26 7 13 0.916992 0.679199 0
+26 7 14 0.91748 0.679688 0
+26 7 15 0.91748 0.680176 0
+26 7 16 0.922363 0.683594 0.220093
+26 7 17 0.933594 0.690918 0.359619
+26 7 18 0.946777 0.700195 0.469971
+26 7 19 0.958008 0.708496 0.565918
+26 7 20 0.970215 0.720703 0.656738
+26 7 21 0.981934 0.73584 0.741211
+26 7 22 0.98877 0.749023 0.813477
+26 7 23 0.988281 0.755371 0.871094
+26 7 24 0.980957 0.753418 0.916504
+26 7 25 0.966309 0.743164 0.956543
+26 7 26 0.945801 0.728027 0.991699
+26 7 27 0.919922 0.708008 1
+26 7 28 0.888184 0.684082 1
+26 7 29 0.852051 0.65625 1
+26 7 30 0.813477 0.626465 1
+26 7 31 0.774414 0.59668 1
+26 8 0 0.916504 0.678223 0
+26 8 1 0.916504 0.678223 0
+26 8 2 0.916504 0.678223 0
+26 8 3 0.916504 0.678223 0
+26 8 4 0.916504 0.678223 0
+26 8 5 0.916992 0.678223 0
+26 8 6 0.916992 0.678223 0
+26 8 7 0.916992 0.678223 0
+26 8 8 0.916992 0.678223 0
+26 8 9 0.916992 0.678223 0
+26 8 10 0.916992 0.678711 0
+26 8 11 0.916992 0.678711 0
+26 8 12 0.916992 0.678711 0
+26 8 13 0.916992 0.679199 0
+26 8 14 0.91748 0.680176 0
+26 8 15 0.91748 0.680176 0
+26 8 16 0.922363 0.683594 0.220215
+26 8 17 0.933594 0.690918 0.359619
+26 8 18 0.946777 0.700684 0.469971
+26 8 19 0.958008 0.708496 0.565918
+26 8 20 0.970215 0.720703 0.656738
+26 8 21 0.981934 0.73584 0.741211
+26 8 22 0.98877 0.749023 0.813477
+26 8 23 0.988281 0.755371 0.871094
+26 8 24 0.980957 0.753418 0.916992
+26 8 25 0.966309 0.743652 0.956543
+26 8 26 0.945801 0.728027 0.991699
+26 8 27 0.919922 0.708496 1
+26 8 28 0.888184 0.684082 1
+26 8 29 0.852051 0.65625 1
+26 8 30 0.813477 0.626953 1
+26 8 31 0.774414 0.59668 1
+26 9 0 0.916992 0.678711 0
+26 9 1 0.916992 0.678711 0
+26 9 2 0.916992 0.678711 0
+26 9 3 0.916992 0.678711 0
+26 9 4 0.916992 0.678711 0
+26 9 5 0.916992 0.678711 0
+26 9 6 0.916992 0.678711 0
+26 9 7 0.916992 0.678711 0
+26 9 8 0.916992 0.678711 0
+26 9 9 0.916992 0.679199 0
+26 9 10 0.916992 0.679199 0
+26 9 11 0.916992 0.679199 0
+26 9 12 0.916992 0.679688 0
+26 9 13 0.91748 0.680176 0
+26 9 14 0.91748 0.680664 0
+26 9 15 0.91748 0.681152 0
+26 9 16 0.922363 0.684082 0.220337
+26 9 17 0.933594 0.691406 0.359619
+26 9 18 0.946777 0.701172 0.469971
+26 9 19 0.958008 0.708984 0.565918
+26 9 20 0.970703 0.721191 0.656738
+26 9 21 0.981934 0.736328 0.741211
+26 9 22 0.98877 0.749512 0.813477
+26 9 23 0.988281 0.755859 0.871094
+26 9 24 0.980957 0.753906 0.916992
+26 9 25 0.966309 0.743652 0.956543
+26 9 26 0.945801 0.728516 0.991699
+26 9 27 0.919922 0.708496 1
+26 9 28 0.888184 0.68457 1
+26 9 29 0.852051 0.656738 1
+26 9 30 0.813477 0.626953 1
+26 9 31 0.774414 0.597168 1
+26 10 0 0.91748 0.680176 0
+26 10 1 0.91748 0.680176 0
+26 10 2 0.91748 0.680176 0
+26 10 3 0.91748 0.680176 0
+26 10 4 0.91748 0.680176 0
+26 10 5 0.91748 0.680176 0
+26 10 6 0.91748 0.680176 0
+26 10 7 0.91748 0.680176 0
+26 10 8 0.91748 0.680176 0
+26 10 9 0.91748 0.680176 0
+26 10 10 0.91748 0.680176 0
+26 10 11 0.91748 0.680176 0
+26 10 12 0.91748 0.680664 0
+26 10 13 0.917969 0.681152 0
+26 10 14 0.917969 0.681641 0
+26 10 15 0.917969 0.682129 0
+26 10 16 0.922852 0.685059 0.220703
+26 10 17 0.934082 0.692383 0.359619
+26 10 18 0.947266 0.702148 0.470215
+26 10 19 0.958008 0.709961 0.565918
+26 10 20 0.970703 0.722168 0.656738
+26 10 21 0.981934 0.736816 0.741211
+26 10 22 0.98877 0.75 0.813477
+26 10 23 0.988281 0.756348 0.871094
+26 10 24 0.980957 0.754395 0.916992
+26 10 25 0.966309 0.744629 0.956543
+26 10 26 0.945801 0.729004 0.991699
+26 10 27 0.92041 0.709473 1
+26 10 28 0.888184 0.685059 1
+26 10 29 0.852051 0.657227 1
+26 10 30 0.813477 0.627441 1
+26 10 31 0.774414 0.597656 1
+26 11 0 0.917969 0.682129 0
+26 11 1 0.917969 0.682129 0
+26 11 2 0.917969 0.682129 0
+26 11 3 0.917969 0.682129 0
+26 11 4 0.917969 0.682129 0
+26 11 5 0.917969 0.682129 0
+26 11 6 0.917969 0.682129 0
+26 11 7 0.917969 0.682129 0
+26 11 8 0.917969 0.682129 0
+26 11 9 0.917969 0.682129 0
+26 11 10 0.917969 0.682129 0
+26 11 11 0.917969 0.682129 0
+26 11 12 0.918457 0.682617 0
+26 11 13 0.918457 0.683105 0
+26 11 14 0.918945 0.683594 0
+26 11 15 0.918457 0.684082 0
+26 11 16 0.92334 0.687012 0.221313
+26 11 17 0.93457 0.694336 0.359619
+26 11 18 0.947754 0.704102 0.470459
+26 11 19 0.958496 0.711426 0.565918
+26 11 20 0.970703 0.723145 0.656738
+26 11 21 0.981934 0.738281 0.740723
+26 11 22 0.98877 0.750977 0.813477
+26 11 23 0.98877 0.757812 0.871582
+26 11 24 0.980957 0.755371 0.916992
+26 11 25 0.966309 0.745605 0.956543
+26 11 26 0.946289 0.72998 0.991699
+26 11 27 0.92041 0.710449 1
+26 11 28 0.888672 0.686035 1
+26 11 29 0.852051 0.658203 1
+26 11 30 0.813477 0.628418 1
+26 11 31 0.774414 0.598145 1
+26 12 0 0.918945 0.685059 0
+26 12 1 0.918945 0.685059 0
+26 12 2 0.918945 0.685059 0
+26 12 3 0.918945 0.685059 0
+26 12 4 0.918945 0.685059 0
+26 12 5 0.918945 0.685059 0
+26 12 6 0.918945 0.685059 0
+26 12 7 0.918945 0.685059 0
+26 12 8 0.918945 0.685059 0
+26 12 9 0.918945 0.685059 0
+26 12 10 0.919434 0.685547 0
+26 12 11 0.919434 0.685547 0
+26 12 12 0.919434 0.685547 0
+26 12 13 0.919434 0.686035 0
+26 12 14 0.919922 0.687012 0
+26 12 15 0.919922 0.687012 0
+26 12 16 0.924316 0.69043 0.222534
+26 12 17 0.935059 0.697266 0.359863
+26 12 18 0.948242 0.707031 0.470947
+26 12 19 0.958984 0.713867 0.565918
+26 12 20 0.971191 0.725586 0.656738
+26 12 21 0.982422 0.740234 0.740723
+26 12 22 0.989258 0.75293 0.813477
+26 12 23 0.98877 0.759277 0.871582
+26 12 24 0.981445 0.757324 0.916992
+26 12 25 0.966797 0.747559 0.956543
+26 12 26 0.946289 0.731934 0.991699
+26 12 27 0.92041 0.711914 1
+26 12 28 0.888672 0.6875 1
+26 12 29 0.852539 0.659668 1
+26 12 30 0.813477 0.629883 1
+26 12 31 0.774414 0.599609 1
+26 13 0 0.920898 0.69043 0
+26 13 1 0.920898 0.69043 0
+26 13 2 0.920898 0.69043 0
+26 13 3 0.920898 0.69043 0
+26 13 4 0.920898 0.69043 0
+26 13 5 0.920898 0.69043 0
+26 13 6 0.920898 0.69043 0
+26 13 7 0.920898 0.69043 0
+26 13 8 0.920898 0.69043 0
+26 13 9 0.920898 0.69043 0
+26 13 10 0.920898 0.69043 0
+26 13 11 0.920898 0.690918 0
+26 13 12 0.921387 0.690918 0
+26 13 13 0.921387 0.691406 0
+26 13 14 0.921875 0.692383 0
+26 13 15 0.921387 0.692383 0
+26 13 16 0.92627 0.695312 0.224609
+26 13 17 0.936523 0.70166 0.360352
+26 13 18 0.949219 0.710938 0.470947
+26 13 19 0.959961 0.718262 0.565918
+26 13 20 0.97168 0.729004 0.65625
+26 13 21 0.982422 0.743164 0.740723
+26 13 22 0.989258 0.755859 0.813477
+26 13 23 0.989258 0.762695 0.871582
+26 13 24 0.981445 0.760742 0.916992
+26 13 25 0.966797 0.750488 0.957031
+26 13 26 0.946777 0.734863 0.992188
+26 13 27 0.920898 0.714844 1
+26 13 28 0.88916 0.689941 1
+26 13 29 0.852539 0.662109 1
+26 13 30 0.813965 0.631836 1
+26 13 31 0.774902 0.601562 1
+26 14 0 0.923828 0.69873 0
+26 14 1 0.923828 0.69873 0
+26 14 2 0.923828 0.69873 0
+26 14 3 0.923828 0.69873 0
+26 14 4 0.923828 0.69873 0
+26 14 5 0.923828 0.69873 0
+26 14 6 0.923828 0.69873 0
+26 14 7 0.923828 0.69873 0
+26 14 8 0.923828 0.69873 0
+26 14 9 0.923828 0.69873 0
+26 14 10 0.923828 0.69873 0
+26 14 11 0.923828 0.699219 0
+26 14 12 0.924316 0.699219 0
+26 14 13 0.924316 0.699707 0
+26 14 14 0.924316 0.700684 0
+26 14 15 0.924316 0.700195 0
+26 14 16 0.928711 0.703125 0.228516
+26 14 17 0.938477 0.709473 0.361328
+26 14 18 0.950684 0.717773 0.470703
+26 14 19 0.961426 0.725098 0.566406
+26 14 20 0.972168 0.734863 0.655762
+26 14 21 0.98291 0.748535 0.740234
+26 14 22 0.989746 0.760742 0.812988
+26 14 23 0.989258 0.76709 0.871582
+26 14 24 0.981934 0.765137 0.91748
+26 14 25 0.967773 0.755371 0.957031
+26 14 26 0.947266 0.739258 0.992188
+26 14 27 0.921387 0.719238 1
+26 14 28 0.889648 0.694336 1
+26 14 29 0.853027 0.666016 1
+26 14 30 0.814453 0.635742 1
+26 14 31 0.775391 0.60498 1
+26 15 0 0.928223 0.710938 0
+26 15 1 0.928223 0.710938 0
+26 15 2 0.928223 0.710938 0
+26 15 3 0.928223 0.710938 0
+26 15 4 0.928223 0.710938 0
+26 15 5 0.928223 0.710938 0
+26 15 6 0.928223 0.710938 0
+26 15 7 0.928223 0.710938 0
+26 15 8 0.928223 0.710938 0
+26 15 9 0.928223 0.710938 0
+26 15 10 0.928223 0.711426 0
+26 15 11 0.928223 0.711426 0
+26 15 12 0.928223 0.711914 0
+26 15 13 0.928223 0.711914 0
+26 15 14 0.928711 0.712891 0
+26 15 15 0.928223 0.712402 0
+26 15 16 0.933105 0.715332 0.235596
+26 15 17 0.941895 0.720703 0.36377
+26 15 18 0.952637 0.728027 0.470703
+26 15 19 0.963379 0.735352 0.566895
+26 15 20 0.973145 0.743652 0.655273
+26 15 21 0.983398 0.755859 0.739258
+26 15 22 0.990234 0.768066 0.812988
+26 15 23 0.990234 0.774414 0.871582
+26 15 24 0.98291 0.772461 0.91748
+26 15 25 0.968262 0.762207 0.95752
+26 15 26 0.948242 0.746094 0.992676
+26 15 27 0.922363 0.726074 1
+26 15 28 0.890625 0.700684 1
+26 15 29 0.854004 0.671875 1
+26 15 30 0.814941 0.641113 1
+26 15 31 0.775879 0.609863 1
+26 16 0 0.934082 0.729004 0
+26 16 1 0.934082 0.729004 0
+26 16 2 0.934082 0.729004 0
+26 16 3 0.934082 0.729004 0
+26 16 4 0.934082 0.729004 0
+26 16 5 0.934082 0.729004 0
+26 16 6 0.934082 0.729004 0
+26 16 7 0.934082 0.729004 0
+26 16 8 0.934082 0.729004 0
+26 16 9 0.934082 0.729004 0
+26 16 10 0.934082 0.729004 0
+26 16 11 0.934082 0.729004 0
+26 16 12 0.934082 0.729492 0
+26 16 13 0.93457 0.72998 0
+26 16 14 0.93457 0.730469 0
+26 16 15 0.934082 0.72998 0
+26 16 16 0.938965 0.73291 0.247925
+26 16 17 0.946777 0.737305 0.368408
+26 16 18 0.956055 0.743164 0.47168
+26 16 19 0.966797 0.750488 0.568359
+26 16 20 0.974609 0.756348 0.654297
+26 16 21 0.983887 0.766602 0.737793
+26 16 22 0.990234 0.77832 0.812012
+26 16 23 0.990723 0.784668 0.871094
+26 16 24 0.983887 0.782715 0.917969
+26 16 25 0.969727 0.772461 0.958008
+26 16 26 0.949219 0.756348 0.993164
+26 16 27 0.923828 0.735352 1
+26 16 28 0.891602 0.709473 1
+26 16 29 0.85498 0.680176 1
+26 16 30 0.815918 0.648926 1
+26 16 31 0.776855 0.617188 1
+26 17 0 0.941406 0.751953 0
+26 17 1 0.941406 0.751953 0
+26 17 2 0.941406 0.751953 0
+26 17 3 0.941406 0.751953 0
+26 17 4 0.941406 0.751953 0
+26 17 5 0.941406 0.751953 0
+26 17 6 0.941406 0.751953 0
+26 17 7 0.941406 0.751953 0
+26 17 8 0.941406 0.751953 0
+26 17 9 0.941406 0.751953 0
+26 17 10 0.941406 0.752441 0
+26 17 11 0.941895 0.752441 0
+26 17 12 0.941895 0.752441 0
+26 17 13 0.941895 0.75293 0
+26 17 14 0.942383 0.753418 0
+26 17 15 0.941406 0.753418 0.0378723
+26 17 16 0.946777 0.756348 0.267578
+26 17 17 0.953125 0.759766 0.377197
+26 17 18 0.960938 0.763672 0.474854
+26 17 19 0.969727 0.769043 0.568359
+26 17 20 0.977051 0.773926 0.653809
+26 17 21 0.984375 0.781738 0.73584
+26 17 22 0.990234 0.791504 0.810059
+26 17 23 0.991211 0.797852 0.870605
+26 17 24 0.984863 0.796387 0.917969
+26 17 25 0.970703 0.786133 0.958008
+26 17 26 0.950684 0.769531 0.993652
+26 17 27 0.925293 0.748047 1
+26 17 28 0.893066 0.72168 1
+26 17 29 0.856445 0.691406 1
+26 17 30 0.817383 0.659668 1
+26 17 31 0.777832 0.626953 1
+26 18 0 0.950195 0.780273 0
+26 18 1 0.950195 0.780273 0
+26 18 2 0.950195 0.780273 0
+26 18 3 0.950195 0.780273 0
+26 18 4 0.950195 0.780273 0
+26 18 5 0.950195 0.780273 0
+26 18 6 0.950195 0.780273 0
+26 18 7 0.950195 0.780273 0
+26 18 8 0.950195 0.780273 0
+26 18 9 0.950195 0.780273 0
+26 18 10 0.950684 0.780762 0
+26 18 11 0.950684 0.780762 0
+26 18 12 0.950684 0.780762 0
+26 18 13 0.950684 0.78125 0
+26 18 14 0.951172 0.781738 0
+26 18 15 0.952148 0.782715 0.169312
+26 18 16 0.956543 0.785156 0.294922
+26 18 17 0.961914 0.787598 0.39209
+26 18 18 0.967285 0.790039 0.482178
+26 18 19 0.973633 0.792969 0.569824
+26 18 20 0.980469 0.797363 0.654785
+26 18 21 0.984863 0.800293 0.73291
+26 18 22 0.989746 0.808105 0.807617
+26 18 23 0.991211 0.813965 0.869141
+26 18 24 0.98584 0.812988 0.916992
+26 18 25 0.972168 0.802734 0.958008
+26 18 26 0.952148 0.786133 0.993652
+26 18 27 0.926758 0.76416 1
+26 18 28 0.894531 0.736816 1
+26 18 29 0.857422 0.705566 1
+26 18 30 0.818359 0.672852 1
+26 18 31 0.778809 0.639648 1
+26 19 0 0.961426 0.812988 0.167847
+26 19 1 0.961426 0.812988 0.167847
+26 19 2 0.961426 0.812988 0.167847
+26 19 3 0.961426 0.812988 0.167847
+26 19 4 0.961426 0.812988 0.167847
+26 19 5 0.961426 0.812988 0.167847
+26 19 6 0.961426 0.812988 0.167847
+26 19 7 0.961426 0.812988 0.167847
+26 19 8 0.961426 0.812988 0.167969
+26 19 9 0.961426 0.812988 0.167969
+26 19 10 0.961426 0.813477 0.168213
+26 19 11 0.961426 0.813477 0.168579
+26 19 12 0.961914 0.813477 0.169189
+26 19 13 0.961914 0.813965 0.170044
+26 19 14 0.961914 0.814453 0.171631
+26 19 15 0.963867 0.815918 0.234863
+26 19 16 0.967285 0.817871 0.327637
+26 19 17 0.971191 0.819824 0.412598
+26 19 18 0.975586 0.821289 0.494873
+26 19 19 0.979004 0.821777 0.575195
+26 19 20 0.982422 0.822266 0.653809
+26 19 21 0.98584 0.82373 0.730469
+26 19 22 0.98877 0.827148 0.803223
+26 19 23 0.990234 0.83252 0.866211
+26 19 24 0.98584 0.832031 0.915527
+26 19 25 0.972656 0.822266 0.957031
+26 19 26 0.953613 0.805176 0.993164
+26 19 27 0.928223 0.782715 1
+26 19 28 0.895996 0.754395 1
+26 19 29 0.858887 0.722168 1
+26 19 30 0.819824 0.688477 1
+26 19 31 0.780273 0.653809 1
+26 20 0 0.973145 0.847656 0.252197
+26 20 1 0.973145 0.847656 0.252197
+26 20 2 0.973145 0.847656 0.252197
+26 20 3 0.973145 0.847656 0.252197
+26 20 4 0.973145 0.847656 0.252197
+26 20 5 0.973145 0.847656 0.252197
+26 20 6 0.973145 0.847656 0.252197
+26 20 7 0.973145 0.847656 0.252197
+26 20 8 0.973145 0.847656 0.252197
+26 20 9 0.973145 0.847656 0.252197
+26 20 10 0.973145 0.847656 0.252441
+26 20 11 0.973145 0.847656 0.252686
+26 20 12 0.973145 0.848145 0.25293
+26 20 13 0.973633 0.848145 0.253418
+26 20 14 0.973633 0.848633 0.25415
+26 20 15 0.975098 0.850098 0.286621
+26 20 16 0.978027 0.852051 0.361328
+26 20 17 0.980957 0.853516 0.436523
+26 20 18 0.983887 0.854492 0.511719
+26 20 19 0.985352 0.853516 0.585449
+26 20 20 0.98584 0.851562 0.656738
+26 20 21 0.986816 0.850098 0.729004
+26 20 22 0.986816 0.849121 0.79834
+26 20 23 0.987793 0.852051 0.861328
+26 20 24 0.984863 0.852051 0.913086
+26 20 25 0.973145 0.842773 0.955566
+26 20 26 0.954102 0.825684 0.992188
+26 20 27 0.929199 0.802734 1
+26 20 28 0.896973 0.773926 1
+26 20 29 0.859863 0.740234 1
+26 20 30 0.820801 0.705078 1
+26 20 31 0.781738 0.669922 1
+26 21 0 0.98291 0.881836 0.308838
+26 21 1 0.98291 0.881836 0.308838
+26 21 2 0.98291 0.881836 0.308838
+26 21 3 0.98291 0.881836 0.308838
+26 21 4 0.98291 0.881836 0.308838
+26 21 5 0.98291 0.881836 0.308838
+26 21 6 0.98291 0.881836 0.308838
+26 21 7 0.98291 0.881836 0.308838
+26 21 8 0.98291 0.881836 0.308838
+26 21 9 0.98291 0.881836 0.308838
+26 21 10 0.98291 0.881836 0.308838
+26 21 11 0.98291 0.882324 0.309082
+26 21 12 0.98291 0.882324 0.309082
+26 21 13 0.983398 0.882324 0.309326
+26 21 14 0.983398 0.882812 0.309814
+26 21 15 0.984375 0.883789 0.327881
+26 21 16 0.986816 0.885742 0.39209
+26 21 17 0.989746 0.887695 0.460449
+26 21 18 0.992188 0.888672 0.530273
+26 21 19 0.992676 0.887207 0.599121
+26 21 20 0.991211 0.883789 0.665039
+26 21 21 0.988281 0.878418 0.729492
+26 21 22 0.986328 0.875 0.794922
+26 21 23 0.983887 0.872559 0.85498
+26 21 24 0.981934 0.872559 0.908203
+26 21 25 0.972168 0.864746 0.952637
+26 21 26 0.954102 0.847656 0.989746
+26 21 27 0.929199 0.824219 1
+26 21 28 0.896973 0.793945 1
+26 21 29 0.860352 0.759766 1
+26 21 30 0.821777 0.723633 1
+26 21 31 0.782715 0.6875 1
+26 22 0 0.989258 0.914062 0.348633
+26 22 1 0.989258 0.914062 0.348633
+26 22 2 0.989258 0.914062 0.348633
+26 22 3 0.989258 0.914062 0.348633
+26 22 4 0.989258 0.914062 0.348633
+26 22 5 0.989258 0.914062 0.348633
+26 22 6 0.989746 0.914062 0.348633
+26 22 7 0.989746 0.914062 0.348633
+26 22 8 0.989746 0.914062 0.348633
+26 22 9 0.989746 0.914062 0.348633
+26 22 10 0.989746 0.914062 0.348633
+26 22 11 0.989746 0.914062 0.348877
+26 22 12 0.989746 0.914062 0.348877
+26 22 13 0.989746 0.914551 0.349121
+26 22 14 0.989746 0.914551 0.349365
+26 22 15 0.990234 0.915039 0.357422
+26 22 16 0.993164 0.91748 0.415771
+26 22 17 0.996094 0.919434 0.47998
+26 22 18 0.998047 0.920898 0.546875
+26 22 19 0.998535 0.919922 0.612793
+26 22 20 0.996094 0.916504 0.675293
+26 22 21 0.991699 0.910156 0.734863
+26 22 22 0.984863 0.901855 0.791992
+26 22 23 0.980469 0.89502 0.847656
+26 22 24 0.977051 0.892578 0.900879
+26 22 25 0.969727 0.88623 0.947754
+26 22 26 0.952637 0.869629 0.98584
+26 22 27 0.928711 0.845703 1
+26 22 28 0.896484 0.814941 1
+26 22 29 0.859863 0.779297 1
+26 22 30 0.821777 0.742676 1
+26 22 31 0.783691 0.706055 1
+26 23 0 0.991211 0.941406 0.374512
+26 23 1 0.991211 0.941406 0.374512
+26 23 2 0.991211 0.941406 0.374512
+26 23 3 0.991211 0.941406 0.374512
+26 23 4 0.991211 0.941406 0.374512
+26 23 5 0.991211 0.941406 0.374512
+26 23 6 0.991211 0.941406 0.374512
+26 23 7 0.991211 0.941406 0.374512
+26 23 8 0.991211 0.941406 0.374512
+26 23 9 0.991211 0.941406 0.374512
+26 23 10 0.991211 0.941406 0.374512
+26 23 11 0.991211 0.941406 0.374512
+26 23 12 0.991211 0.941406 0.374512
+26 23 13 0.991211 0.941406 0.374756
+26 23 14 0.991699 0.941895 0.374756
+26 23 15 0.991699 0.942383 0.375
+26 23 16 0.994629 0.944824 0.430176
+26 23 17 0.997559 0.947266 0.491943
+26 23 18 1 0.94873 0.557129
+26 23 19 1 0.94873 0.62207
+26 23 20 0.999512 0.946289 0.684082
+26 23 21 0.995117 0.939941 0.742188
+26 23 22 0.986816 0.930664 0.794922
+26 23 23 0.978027 0.919922 0.843262
+26 23 24 0.971191 0.911621 0.89209
+26 23 25 0.965332 0.90625 0.941406
+26 23 26 0.950195 0.890625 0.980469
+26 23 27 0.92627 0.866699 1
+26 23 28 0.894531 0.834473 1
+26 23 29 0.858887 0.798828 1
+26 23 30 0.821777 0.761719 1
+26 23 31 0.784668 0.724609 1
+26 24 0 0.988281 0.963867 0.389648
+26 24 1 0.988281 0.963867 0.389648
+26 24 2 0.988281 0.963867 0.389648
+26 24 3 0.988281 0.963867 0.389648
+26 24 4 0.988281 0.963867 0.389648
+26 24 5 0.988281 0.963867 0.389648
+26 24 6 0.988281 0.963867 0.389648
+26 24 7 0.988281 0.963867 0.389648
+26 24 8 0.988281 0.963867 0.389648
+26 24 9 0.988281 0.963867 0.389648
+26 24 10 0.988281 0.963867 0.389648
+26 24 11 0.988281 0.963867 0.389648
+26 24 12 0.988281 0.963867 0.389648
+26 24 13 0.988281 0.963867 0.389648
+26 24 14 0.988281 0.964355 0.389648
+26 24 15 0.988281 0.964355 0.389893
+26 24 16 0.991211 0.966797 0.436035
+26 24 17 0.994629 0.969727 0.496094
+26 24 18 0.998047 0.972168 0.560547
+26 24 19 1 0.973145 0.625
+26 24 20 0.999512 0.971191 0.687012
+26 24 21 0.996094 0.966797 0.745605
+26 24 22 0.98877 0.958008 0.79834
+26 24 23 0.978516 0.946289 0.844238
+26 24 24 0.967285 0.933105 0.885254
+26 24 25 0.959473 0.924316 0.932617
+26 24 26 0.946289 0.910156 0.974121
+26 24 27 0.922852 0.885742 1
+26 24 28 0.891602 0.853027 1
+26 24 29 0.856934 0.817383 1
+26 24 30 0.821777 0.780273 1
+26 24 31 0.786133 0.743652 1
+26 25 0 0.979492 0.98291 0.397461
+26 25 1 0.979492 0.98291 0.397461
+26 25 2 0.979492 0.98291 0.397461
+26 25 3 0.979492 0.98291 0.397461
+26 25 4 0.979492 0.98291 0.397461
+26 25 5 0.979492 0.98291 0.397461
+26 25 6 0.979492 0.98291 0.397461
+26 25 7 0.979492 0.98291 0.397461
+26 25 8 0.979492 0.98291 0.397461
+26 25 9 0.979492 0.98291 0.397461
+26 25 10 0.979492 0.98291 0.397461
+26 25 11 0.979492 0.98291 0.397461
+26 25 12 0.979492 0.98291 0.397461
+26 25 13 0.979004 0.98291 0.397705
+26 25 14 0.979004 0.98291 0.397705
+26 25 15 0.979004 0.983398 0.397705
+26 25 16 0.981445 0.985352 0.43457
+26 25 17 0.98584 0.98877 0.493652
+26 25 18 0.989746 0.991699 0.557129
+26 25 19 0.992188 0.993652 0.621094
+26 25 20 0.993164 0.993164 0.683105
+26 25 21 0.991699 0.989746 0.742188
+26 25 22 0.986328 0.983398 0.796875
+26 25 23 0.978516 0.973633 0.84375
+26 25 24 0.966797 0.960449 0.884277
+26 25 25 0.952148 0.943848 0.922363
+26 25 26 0.940918 0.930664 0.965332
+26 25 27 0.916992 0.904297 0.995605
+26 25 28 0.887207 0.87207 1
+26 25 29 0.85498 0.837891 1
+26 25 30 0.822266 0.802246 1
+26 25 31 0.788574 0.765625 1
+26 26 0 0.963379 0.997559 0.400635
+26 26 1 0.963379 0.997559 0.400635
+26 26 2 0.963379 0.997559 0.400635
+26 26 3 0.963379 0.997559 0.400635
+26 26 4 0.963379 0.997559 0.400635
+26 26 5 0.963379 0.997559 0.400635
+26 26 6 0.963379 0.997559 0.400635
+26 26 7 0.963379 0.997559 0.400635
+26 26 8 0.963379 0.997559 0.400635
+26 26 9 0.963379 0.997559 0.400635
+26 26 10 0.963379 0.997559 0.400635
+26 26 11 0.963379 0.997559 0.400635
+26 26 12 0.963379 0.997559 0.400635
+26 26 13 0.963379 0.997559 0.400635
+26 26 14 0.963379 0.997559 0.400635
+26 26 15 0.963379 0.997559 0.400635
+26 26 16 0.965332 0.999512 0.42749
+26 26 17 0.969727 1 0.485107
+26 26 18 0.973633 1 0.547363
+26 26 19 0.977539 1 0.610352
+26 26 20 0.979492 1 0.671875
+26 26 21 0.979004 1 0.730957
+26 26 22 0.976074 1 0.785645
+26 26 23 0.970215 0.995117 0.834473
+26 26 24 0.961426 0.984375 0.876465
+26 26 25 0.949219 0.969727 0.916992
+26 26 26 0.933105 0.950684 0.953613
+26 26 27 0.910156 0.924805 0.984863
+26 26 28 0.884277 0.89502 1
+26 26 29 0.85498 0.862305 1
+26 26 30 0.824219 0.827148 1
+26 26 31 0.791504 0.790527 1
+26 27 0 0.942383 1 0.401123
+26 27 1 0.942383 1 0.401123
+26 27 2 0.942383 1 0.401123
+26 27 3 0.942383 1 0.401123
+26 27 4 0.942383 1 0.401123
+26 27 5 0.942383 1 0.401123
+26 27 6 0.942383 1 0.401123
+26 27 7 0.942383 1 0.401123
+26 27 8 0.942383 1 0.401123
+26 27 9 0.942383 1 0.401123
+26 27 10 0.942383 1 0.401123
+26 27 11 0.942383 1 0.401123
+26 27 12 0.941895 1 0.401123
+26 27 13 0.941895 1 0.401123
+26 27 14 0.941895 1 0.401123
+26 27 15 0.941895 1 0.401367
+26 27 16 0.942871 1 0.41748
+26 27 17 0.947266 1 0.473145
+26 27 18 0.95166 1 0.533203
+26 27 19 0.955078 1 0.594727
+26 27 20 0.958008 1 0.654785
+26 27 21 0.958496 1 0.712891
+26 27 22 0.957031 1 0.767578
+26 27 23 0.952637 1 0.815918
+26 27 24 0.945312 0.999512 0.858398
+26 27 25 0.935059 0.98584 0.898926
+26 27 26 0.922363 0.969727 0.938477
+26 27 27 0.907227 0.951172 0.977051
+26 27 28 0.884766 0.924316 1
+26 27 29 0.856934 0.891113 1
+26 27 30 0.82666 0.855469 1
+26 27 31 0.794434 0.818359 1
+26 28 0 0.915527 1 0.400146
+26 28 1 0.915527 1 0.400146
+26 28 2 0.915527 1 0.400146
+26 28 3 0.915527 1 0.400146
+26 28 4 0.915527 1 0.400146
+26 28 5 0.915527 1 0.400146
+26 28 6 0.915527 1 0.400146
+26 28 7 0.915527 1 0.400146
+26 28 8 0.915527 1 0.400146
+26 28 9 0.915527 1 0.400146
+26 28 10 0.915527 1 0.400146
+26 28 11 0.915527 1 0.400146
+26 28 12 0.915527 1 0.400146
+26 28 13 0.915527 1 0.400146
+26 28 14 0.915527 1 0.400146
+26 28 15 0.915527 1 0.400146
+26 28 16 0.915527 1 0.405273
+26 28 17 0.919434 1 0.458496
+26 28 18 0.923828 1 0.516113
+26 28 19 0.928223 1 0.575684
+26 28 20 0.931152 1 0.633789
+26 28 21 0.932617 1 0.69043
+26 28 22 0.932129 1 0.744141
+26 28 23 0.929688 1 0.79248
+26 28 24 0.924805 1 0.835449
+26 28 25 0.91748 1 0.877441
+26 28 26 0.907715 0.987305 0.919434
+26 28 27 0.895508 0.970215 0.959473
+26 28 28 0.878418 0.94873 0.995605
+26 28 29 0.855957 0.92041 1
+26 28 30 0.828125 0.885742 1
+26 28 31 0.797852 0.848633 1
+26 29 0 0.885742 1 0.397949
+26 29 1 0.885742 1 0.397949
+26 29 2 0.885742 1 0.397949
+26 29 3 0.885742 1 0.397949
+26 29 4 0.885742 1 0.397949
+26 29 5 0.885742 1 0.397949
+26 29 6 0.885742 1 0.397949
+26 29 7 0.885742 1 0.397949
+26 29 8 0.885742 1 0.397949
+26 29 9 0.885742 1 0.397949
+26 29 10 0.885742 1 0.397949
+26 29 11 0.885742 1 0.397949
+26 29 12 0.885742 1 0.397949
+26 29 13 0.885742 1 0.397949
+26 29 14 0.885742 1 0.397949
+26 29 15 0.885742 1 0.397949
+26 29 16 0.885742 1 0.397949
+26 29 17 0.888672 1 0.442139
+26 29 18 0.893066 1 0.497314
+26 29 19 0.897461 1 0.554199
+26 29 20 0.900879 1 0.610352
+26 29 21 0.90332 1 0.665527
+26 29 22 0.904297 1 0.717773
+26 29 23 0.90332 1 0.765625
+26 29 24 0.900879 1 0.809082
+26 29 25 0.896484 1 0.852539
+26 29 26 0.889648 1 0.895996
+26 29 27 0.879883 0.987305 0.9375
+26 29 28 0.866211 0.968262 0.976074
+26 29 29 0.848633 0.944336 1
+26 29 30 0.826172 0.914551 1
+26 29 31 0.798828 0.878906 1
+26 30 0 0.854004 1 0.39502
+26 30 1 0.854004 1 0.39502
+26 30 2 0.854004 1 0.39502
+26 30 3 0.854004 1 0.39502
+26 30 4 0.854004 1 0.39502
+26 30 5 0.854004 1 0.39502
+26 30 6 0.854004 1 0.39502
+26 30 7 0.854004 1 0.39502
+26 30 8 0.854004 1 0.39502
+26 30 9 0.854004 1 0.39502
+26 30 10 0.854004 1 0.39502
+26 30 11 0.854004 1 0.39502
+26 30 12 0.854004 1 0.39502
+26 30 13 0.854004 1 0.39502
+26 30 14 0.854004 1 0.39502
+26 30 15 0.854004 1 0.39502
+26 30 16 0.854004 1 0.39502
+26 30 17 0.856445 1 0.425049
+26 30 18 0.860352 1 0.477295
+26 30 19 0.864746 1 0.53125
+26 30 20 0.868652 1 0.584961
+26 30 21 0.87207 1 0.638184
+26 30 22 0.874023 1 0.689453
+26 30 23 0.875 1 0.736816
+26 30 24 0.874512 1 0.780273
+26 30 25 0.87207 1 0.824219
+26 30 26 0.868164 1 0.868164
+26 30 27 0.86084 1 0.911133
+26 30 28 0.850586 0.98584 0.95166
+26 30 29 0.836426 0.964844 0.98877
+26 30 30 0.818359 0.938965 1
+26 30 31 0.795898 0.907227 1
+26 31 0 0.821289 1 0.391602
+26 31 1 0.821289 1 0.391602
+26 31 2 0.821289 1 0.391602
+26 31 3 0.821289 1 0.391602
+26 31 4 0.821289 1 0.391602
+26 31 5 0.821289 1 0.391602
+26 31 6 0.821289 1 0.391602
+26 31 7 0.821289 1 0.391602
+26 31 8 0.821289 1 0.391602
+26 31 9 0.821289 1 0.391602
+26 31 10 0.821289 1 0.391602
+26 31 11 0.821289 1 0.391602
+26 31 12 0.821289 1 0.391602
+26 31 13 0.821289 1 0.391602
+26 31 14 0.821777 1 0.391602
+26 31 15 0.821777 1 0.391602
+26 31 16 0.821777 1 0.391602
+26 31 17 0.822754 1 0.406982
+26 31 18 0.82666 1 0.456543
+26 31 19 0.831055 1 0.507812
+26 31 20 0.834961 1 0.559082
+26 31 21 0.838867 1 0.609863
+26 31 22 0.842285 1 0.659668
+26 31 23 0.844238 1 0.705566
+26 31 24 0.845215 1 0.748535
+26 31 25 0.845215 1 0.791992
+26 31 26 0.843262 1 0.836426
+26 31 27 0.838867 1 0.880859
+26 31 28 0.831543 1 0.92334
+26 31 29 0.820801 0.982422 0.962891
+26 31 30 0.806641 0.959961 0.999023
+26 31 31 0.788574 0.932129 1
+27 0 0 0.937988 0.693359 0
+27 0 1 0.937988 0.693359 0
+27 0 2 0.937988 0.693359 0
+27 0 3 0.937988 0.693359 0
+27 0 4 0.937988 0.693359 0
+27 0 5 0.937988 0.693359 0
+27 0 6 0.937988 0.693359 0
+27 0 7 0.937988 0.693359 0
+27 0 8 0.937988 0.693359 0
+27 0 9 0.937988 0.693359 0
+27 0 10 0.937988 0.693848 0
+27 0 11 0.937988 0.693848 0
+27 0 12 0.938477 0.693848 0
+27 0 13 0.938477 0.694336 0
+27 0 14 0.938477 0.694824 0
+27 0 15 0.937988 0.694824 0
+27 0 16 0.937988 0.695312 0.129639
+27 0 17 0.94873 0.702148 0.312744
+27 0 18 0.961426 0.711426 0.428711
+27 0 19 0.973145 0.719238 0.525879
+27 0 20 0.984863 0.728516 0.614746
+27 0 21 0.995605 0.740723 0.69873
+27 0 22 1 0.753906 0.773926
+27 0 23 1 0.763672 0.835938
+27 0 24 1 0.767578 0.88623
+27 0 25 0.995117 0.76416 0.930176
+27 0 26 0.978516 0.75293 0.96875
+27 0 27 0.956543 0.73584 1
+27 0 28 0.928223 0.714355 1
+27 0 29 0.894531 0.688965 1
+27 0 30 0.857422 0.660156 1
+27 0 31 0.818359 0.630371 1
+27 1 0 0.937988 0.693359 0
+27 1 1 0.937988 0.693359 0
+27 1 2 0.937988 0.693359 0
+27 1 3 0.937988 0.693359 0
+27 1 4 0.937988 0.693359 0
+27 1 5 0.937988 0.693359 0
+27 1 6 0.937988 0.693359 0
+27 1 7 0.937988 0.693359 0
+27 1 8 0.937988 0.693359 0
+27 1 9 0.937988 0.693359 0
+27 1 10 0.937988 0.693848 0
+27 1 11 0.937988 0.693848 0
+27 1 12 0.938477 0.693848 0
+27 1 13 0.938477 0.694336 0
+27 1 14 0.938477 0.694824 0
+27 1 15 0.937988 0.694824 0
+27 1 16 0.937988 0.695312 0.129639
+27 1 17 0.94873 0.702148 0.312744
+27 1 18 0.961426 0.711426 0.428711
+27 1 19 0.973145 0.719238 0.525879
+27 1 20 0.984863 0.728516 0.614746
+27 1 21 0.995605 0.740723 0.69873
+27 1 22 1 0.753906 0.773926
+27 1 23 1 0.763672 0.835938
+27 1 24 1 0.767578 0.88623
+27 1 25 0.995117 0.76416 0.930176
+27 1 26 0.978516 0.75293 0.96875
+27 1 27 0.956543 0.73584 1
+27 1 28 0.928223 0.714355 1
+27 1 29 0.894531 0.688965 1
+27 1 30 0.857422 0.660156 1
+27 1 31 0.818359 0.630371 1
+27 2 0 0.937988 0.693359 0
+27 2 1 0.937988 0.693359 0
+27 2 2 0.937988 0.693359 0
+27 2 3 0.937988 0.693359 0
+27 2 4 0.937988 0.693359 0
+27 2 5 0.937988 0.693359 0
+27 2 6 0.937988 0.693359 0
+27 2 7 0.937988 0.693359 0
+27 2 8 0.937988 0.693359 0
+27 2 9 0.937988 0.693359 0
+27 2 10 0.937988 0.693848 0
+27 2 11 0.937988 0.693848 0
+27 2 12 0.938477 0.693848 0
+27 2 13 0.938477 0.694336 0
+27 2 14 0.938477 0.694824 0
+27 2 15 0.937988 0.694824 0
+27 2 16 0.937988 0.695312 0.129639
+27 2 17 0.94873 0.702148 0.312744
+27 2 18 0.961426 0.711426 0.428711
+27 2 19 0.973145 0.719238 0.525879
+27 2 20 0.984863 0.728516 0.614746
+27 2 21 0.995605 0.740723 0.69873
+27 2 22 1 0.753906 0.773926
+27 2 23 1 0.763672 0.835938
+27 2 24 1 0.767578 0.88623
+27 2 25 0.995117 0.76416 0.930176
+27 2 26 0.978516 0.75293 0.96875
+27 2 27 0.956543 0.73584 1
+27 2 28 0.928223 0.714355 1
+27 2 29 0.894531 0.688965 1
+27 2 30 0.857422 0.660156 1
+27 2 31 0.818359 0.630371 1
+27 3 0 0.937988 0.693359 0
+27 3 1 0.937988 0.693359 0
+27 3 2 0.937988 0.693359 0
+27 3 3 0.937988 0.693359 0
+27 3 4 0.937988 0.693359 0
+27 3 5 0.937988 0.693359 0
+27 3 6 0.937988 0.693359 0
+27 3 7 0.937988 0.693359 0
+27 3 8 0.937988 0.693359 0
+27 3 9 0.937988 0.693359 0
+27 3 10 0.937988 0.693848 0
+27 3 11 0.937988 0.693848 0
+27 3 12 0.938477 0.693848 0
+27 3 13 0.938477 0.694336 0
+27 3 14 0.938477 0.694824 0
+27 3 15 0.937988 0.694824 0
+27 3 16 0.937988 0.695312 0.129639
+27 3 17 0.94873 0.702148 0.312744
+27 3 18 0.961426 0.711426 0.428711
+27 3 19 0.973633 0.719238 0.525879
+27 3 20 0.984863 0.728516 0.614746
+27 3 21 0.995605 0.740723 0.69873
+27 3 22 1 0.753906 0.773926
+27 3 23 1 0.763672 0.835938
+27 3 24 1 0.767578 0.88623
+27 3 25 0.995117 0.76416 0.930176
+27 3 26 0.978516 0.75293 0.96875
+27 3 27 0.956543 0.73584 1
+27 3 28 0.928223 0.714355 1
+27 3 29 0.894531 0.688965 1
+27 3 30 0.857422 0.660156 1
+27 3 31 0.818359 0.630371 1
+27 4 0 0.937988 0.693359 0
+27 4 1 0.937988 0.693359 0
+27 4 2 0.937988 0.693359 0
+27 4 3 0.937988 0.693359 0
+27 4 4 0.937988 0.693359 0
+27 4 5 0.937988 0.693359 0
+27 4 6 0.937988 0.693359 0
+27 4 7 0.937988 0.693359 0
+27 4 8 0.937988 0.693359 0
+27 4 9 0.937988 0.693359 0
+27 4 10 0.937988 0.693848 0
+27 4 11 0.937988 0.693848 0
+27 4 12 0.938477 0.693848 0
+27 4 13 0.938477 0.694336 0
+27 4 14 0.938477 0.694824 0
+27 4 15 0.937988 0.694824 0
+27 4 16 0.937988 0.695312 0.129639
+27 4 17 0.94873 0.702148 0.312744
+27 4 18 0.961426 0.711426 0.428711
+27 4 19 0.973633 0.719238 0.525879
+27 4 20 0.984863 0.728516 0.614746
+27 4 21 0.995605 0.740723 0.69873
+27 4 22 1 0.753906 0.773926
+27 4 23 1 0.763672 0.835938
+27 4 24 1 0.767578 0.88623
+27 4 25 0.995117 0.76416 0.930176
+27 4 26 0.978516 0.75293 0.96875
+27 4 27 0.956543 0.73584 1
+27 4 28 0.928223 0.714355 1
+27 4 29 0.894531 0.688965 1
+27 4 30 0.857422 0.660156 1
+27 4 31 0.818359 0.630371 1
+27 5 0 0.937988 0.693359 0
+27 5 1 0.937988 0.693359 0
+27 5 2 0.937988 0.693359 0
+27 5 3 0.937988 0.693359 0
+27 5 4 0.937988 0.693359 0
+27 5 5 0.937988 0.693359 0
+27 5 6 0.937988 0.693359 0
+27 5 7 0.937988 0.693359 0
+27 5 8 0.937988 0.693359 0
+27 5 9 0.937988 0.693848 0
+27 5 10 0.937988 0.693848 0
+27 5 11 0.937988 0.693848 0
+27 5 12 0.938477 0.693848 0
+27 5 13 0.938477 0.694336 0
+27 5 14 0.938477 0.695312 0
+27 5 15 0.937988 0.694824 0
+27 5 16 0.937988 0.695312 0.129639
+27 5 17 0.94873 0.702148 0.312744
+27 5 18 0.961426 0.711426 0.428711
+27 5 19 0.973633 0.719238 0.525879
+27 5 20 0.984863 0.728516 0.614746
+27 5 21 0.995605 0.740723 0.69873
+27 5 22 1 0.753906 0.773926
+27 5 23 1 0.763672 0.835938
+27 5 24 1 0.767578 0.88623
+27 5 25 0.995117 0.76416 0.930176
+27 5 26 0.978516 0.75293 0.96875
+27 5 27 0.956543 0.73584 1
+27 5 28 0.928223 0.714355 1
+27 5 29 0.894531 0.688965 1
+27 5 30 0.857422 0.660156 1
+27 5 31 0.818359 0.630371 1
+27 6 0 0.937988 0.693359 0
+27 6 1 0.937988 0.693359 0
+27 6 2 0.937988 0.693359 0
+27 6 3 0.937988 0.693359 0
+27 6 4 0.937988 0.693359 0
+27 6 5 0.937988 0.693359 0
+27 6 6 0.937988 0.693848 0
+27 6 7 0.937988 0.693848 0
+27 6 8 0.937988 0.693848 0
+27 6 9 0.937988 0.693848 0
+27 6 10 0.937988 0.693848 0
+27 6 11 0.937988 0.693848 0
+27 6 12 0.938477 0.694336 0
+27 6 13 0.938477 0.694336 0
+27 6 14 0.938477 0.695312 0
+27 6 15 0.937988 0.694824 0
+27 6 16 0.937988 0.695312 0.129761
+27 6 17 0.94873 0.702148 0.312744
+27 6 18 0.961914 0.711426 0.428711
+27 6 19 0.973633 0.719238 0.525879
+27 6 20 0.984863 0.728516 0.614746
+27 6 21 0.995605 0.740723 0.69873
+27 6 22 1 0.753906 0.773926
+27 6 23 1 0.763672 0.835938
+27 6 24 1 0.767578 0.88623
+27 6 25 0.995117 0.76416 0.930176
+27 6 26 0.978516 0.75293 0.96875
+27 6 27 0.956543 0.73584 1
+27 6 28 0.928223 0.714844 1
+27 6 29 0.894531 0.688965 1
+27 6 30 0.857422 0.660645 1
+27 6 31 0.818359 0.630371 1
+27 7 0 0.937988 0.693848 0
+27 7 1 0.937988 0.693848 0
+27 7 2 0.937988 0.693848 0
+27 7 3 0.937988 0.693848 0
+27 7 4 0.937988 0.693848 0
+27 7 5 0.937988 0.693848 0
+27 7 6 0.937988 0.693848 0
+27 7 7 0.937988 0.693848 0
+27 7 8 0.937988 0.693848 0
+27 7 9 0.937988 0.693848 0
+27 7 10 0.937988 0.693848 0
+27 7 11 0.938477 0.693848 0
+27 7 12 0.938477 0.694336 0
+27 7 13 0.938477 0.694824 0
+27 7 14 0.938965 0.695312 0
+27 7 15 0.937988 0.695312 0
+27 7 16 0.938477 0.695801 0.129883
+27 7 17 0.94873 0.702637 0.312744
+27 7 18 0.961914 0.711426 0.428711
+27 7 19 0.973633 0.719727 0.525879
+27 7 20 0.984863 0.728516 0.614746
+27 7 21 0.995605 0.740723 0.69873
+27 7 22 1 0.753906 0.773926
+27 7 23 1 0.763672 0.835938
+27 7 24 1 0.767578 0.88623
+27 7 25 0.995117 0.764648 0.930176
+27 7 26 0.979004 0.75293 0.96875
+27 7 27 0.956543 0.73584 1
+27 7 28 0.928223 0.714844 1
+27 7 29 0.89502 0.688965 1
+27 7 30 0.857422 0.660645 1
+27 7 31 0.818359 0.630371 1
+27 8 0 0.938477 0.693848 0
+27 8 1 0.938477 0.693848 0
+27 8 2 0.938477 0.693848 0
+27 8 3 0.938477 0.693848 0
+27 8 4 0.938477 0.693848 0
+27 8 5 0.938477 0.693848 0
+27 8 6 0.938477 0.693848 0
+27 8 7 0.938477 0.693848 0
+27 8 8 0.938477 0.693848 0
+27 8 9 0.938477 0.693848 0
+27 8 10 0.938477 0.694336 0
+27 8 11 0.938477 0.694336 0
+27 8 12 0.938477 0.694336 0
+27 8 13 0.938477 0.694824 0
+27 8 14 0.938965 0.695312 0
+27 8 15 0.937988 0.695312 0
+27 8 16 0.938477 0.695801 0.130127
+27 8 17 0.94873 0.702637 0.312744
+27 8 18 0.961914 0.711914 0.428711
+27 8 19 0.973633 0.719727 0.525879
+27 8 20 0.984863 0.729004 0.614746
+27 8 21 0.995605 0.741211 0.69873
+27 8 22 1 0.753906 0.773926
+27 8 23 1 0.763672 0.835938
+27 8 24 1 0.768066 0.88623
+27 8 25 0.995117 0.764648 0.930176
+27 8 26 0.979004 0.753418 0.96875
+27 8 27 0.956543 0.736328 1
+27 8 28 0.928223 0.714844 1
+27 8 29 0.89502 0.688965 1
+27 8 30 0.857422 0.660645 1
+27 8 31 0.818359 0.630859 1
+27 9 0 0.938477 0.694336 0
+27 9 1 0.938477 0.694336 0
+27 9 2 0.938477 0.694336 0
+27 9 3 0.938477 0.694336 0
+27 9 4 0.938477 0.694336 0
+27 9 5 0.938477 0.694336 0
+27 9 6 0.938477 0.694336 0
+27 9 7 0.938477 0.694336 0
+27 9 8 0.938477 0.694336 0
+27 9 9 0.938477 0.694824 0
+27 9 10 0.938477 0.694824 0
+27 9 11 0.938477 0.694824 0
+27 9 12 0.938477 0.694824 0
+27 9 13 0.938965 0.695312 0
+27 9 14 0.938965 0.696289 0
+27 9 15 0.938477 0.695801 0
+27 9 16 0.938477 0.696289 0.130493
+27 9 17 0.949219 0.703125 0.312744
+27 9 18 0.961914 0.712402 0.428711
+27 9 19 0.973633 0.720215 0.525879
+27 9 20 0.984863 0.729492 0.614746
+27 9 21 0.995605 0.741699 0.69873
+27 9 22 1 0.754395 0.773926
+27 9 23 1 0.76416 0.835938
+27 9 24 1 0.768066 0.88623
+27 9 25 0.995117 0.764648 0.930176
+27 9 26 0.979004 0.753418 0.969238
+27 9 27 0.956543 0.736328 1
+27 9 28 0.928711 0.715332 1
+27 9 29 0.89502 0.689453 1
+27 9 30 0.857422 0.660645 1
+27 9 31 0.818359 0.630859 1
+27 10 0 0.938477 0.695312 0
+27 10 1 0.938477 0.695312 0
+27 10 2 0.938477 0.695312 0
+27 10 3 0.938477 0.695312 0
+27 10 4 0.938477 0.695312 0
+27 10 5 0.938477 0.695312 0
+27 10 6 0.938477 0.695312 0
+27 10 7 0.938477 0.695312 0
+27 10 8 0.938477 0.695312 0
+27 10 9 0.938477 0.695312 0
+27 10 10 0.938965 0.695801 0
+27 10 11 0.938965 0.695801 0
+27 10 12 0.938965 0.695801 0
+27 10 13 0.938965 0.696289 0
+27 10 14 0.939453 0.696777 0
+27 10 15 0.938477 0.696777 0
+27 10 16 0.938965 0.697266 0.131348
+27 10 17 0.949219 0.704102 0.312988
+27 10 18 0.961914 0.712891 0.428711
+27 10 19 0.973633 0.721191 0.525879
+27 10 20 0.984863 0.72998 0.614746
+27 10 21 0.995605 0.742188 0.69873
+27 10 22 1 0.754883 0.773926
+27 10 23 1 0.764648 0.835938
+27 10 24 1 0.768555 0.88623
+27 10 25 0.995117 0.765625 0.930176
+27 10 26 0.979004 0.753906 0.969238
+27 10 27 0.956543 0.736816 1
+27 10 28 0.928711 0.71582 1
+27 10 29 0.89502 0.689941 1
+27 10 30 0.857422 0.661133 1
+27 10 31 0.818359 0.631348 1
+27 11 0 0.938965 0.696777 0
+27 11 1 0.938965 0.696777 0
+27 11 2 0.938965 0.696777 0
+27 11 3 0.938965 0.696777 0
+27 11 4 0.938965 0.696777 0
+27 11 5 0.938965 0.696777 0
+27 11 6 0.938965 0.696777 0
+27 11 7 0.938965 0.696777 0
+27 11 8 0.938965 0.697266 0
+27 11 9 0.939453 0.697266 0
+27 11 10 0.939453 0.697266 0
+27 11 11 0.939453 0.697266 0
+27 11 12 0.939453 0.697754 0
+27 11 13 0.939453 0.697754 0
+27 11 14 0.939941 0.69873 0
+27 11 15 0.938965 0.698242 0
+27 11 16 0.939453 0.69873 0.13269
+27 11 17 0.949707 0.705566 0.313232
+27 11 18 0.962402 0.714355 0.428711
+27 11 19 0.974121 0.722656 0.525879
+27 11 20 0.985352 0.731445 0.614746
+27 11 21 0.996094 0.743164 0.69873
+27 11 22 1 0.755859 0.773926
+27 11 23 1 0.765625 0.835938
+27 11 24 1 0.769531 0.88623
+27 11 25 0.995605 0.766602 0.930176
+27 11 26 0.979004 0.754883 0.969238
+27 11 27 0.956543 0.737793 1
+27 11 28 0.928711 0.716309 1
+27 11 29 0.89502 0.69043 1
+27 11 30 0.85791 0.662109 1
+27 11 31 0.818848 0.631836 1
+27 12 0 0.939941 0.699707 0
+27 12 1 0.939941 0.699707 0
+27 12 2 0.939941 0.699707 0
+27 12 3 0.939941 0.699707 0
+27 12 4 0.939941 0.699707 0
+27 12 5 0.939941 0.699707 0
+27 12 6 0.939941 0.699707 0
+27 12 7 0.939941 0.699707 0
+27 12 8 0.939941 0.699707 0
+27 12 9 0.939941 0.699707 0
+27 12 10 0.939941 0.699707 0
+27 12 11 0.939941 0.700195 0
+27 12 12 0.94043 0.700195 0
+27 12 13 0.94043 0.700684 0
+27 12 14 0.94043 0.701172 0
+27 12 15 0.939941 0.701172 0
+27 12 16 0.94043 0.70166 0.135254
+27 12 17 0.950684 0.708008 0.313477
+27 12 18 0.962891 0.716797 0.428711
+27 12 19 0.974609 0.725098 0.526367
+27 12 20 0.98584 0.733398 0.614746
+27 12 21 0.996094 0.745117 0.698242
+27 12 22 1 0.757812 0.773438
+27 12 23 1 0.76709 0.835938
+27 12 24 1 0.771484 0.88623
+27 12 25 0.995605 0.768066 0.930664
+27 12 26 0.979492 0.756348 0.969238
+27 12 27 0.957031 0.739258 1
+27 12 28 0.928711 0.717773 1
+27 12 29 0.89502 0.691895 1
+27 12 30 0.85791 0.663574 1
+27 12 31 0.818848 0.633301 1
+27 13 0 0.941406 0.704102 0
+27 13 1 0.941406 0.704102 0
+27 13 2 0.941406 0.704102 0
+27 13 3 0.941406 0.704102 0
+27 13 4 0.941406 0.704102 0
+27 13 5 0.941406 0.704102 0
+27 13 6 0.941406 0.704102 0
+27 13 7 0.941406 0.704102 0
+27 13 8 0.941406 0.704102 0
+27 13 9 0.941406 0.704102 0
+27 13 10 0.941406 0.704102 0
+27 13 11 0.941406 0.70459 0
+27 13 12 0.941406 0.70459 0
+27 13 13 0.941895 0.705078 0
+27 13 14 0.941895 0.705566 0
+27 13 15 0.941406 0.705566 0
+27 13 16 0.941895 0.706055 0.139648
+27 13 17 0.952148 0.712402 0.314453
+27 13 18 0.963867 0.720703 0.428711
+27 13 19 0.976074 0.729004 0.526855
+27 13 20 0.986328 0.736816 0.614258
+27 13 21 0.996582 0.748047 0.698242
+27 13 22 1 0.760254 0.773438
+27 13 23 1 0.77002 0.835938
+27 13 24 1 0.773926 0.88623
+27 13 25 0.996094 0.770508 0.930664
+27 13 26 0.979492 0.759277 0.969238
+27 13 27 0.957031 0.742188 1
+27 13 28 0.929199 0.720215 1
+27 13 29 0.895508 0.694336 1
+27 13 30 0.858398 0.665527 1
+27 13 31 0.819336 0.635254 1
+27 14 0 0.943359 0.710938 0
+27 14 1 0.943359 0.710938 0
+27 14 2 0.943359 0.710938 0
+27 14 3 0.943359 0.710938 0
+27 14 4 0.943359 0.710938 0
+27 14 5 0.943359 0.710938 0
+27 14 6 0.943359 0.710938 0
+27 14 7 0.943359 0.710938 0
+27 14 8 0.943359 0.710938 0
+27 14 9 0.943359 0.710938 0
+27 14 10 0.943359 0.711426 0
+27 14 11 0.943848 0.711426 0
+27 14 12 0.943848 0.711426 0
+27 14 13 0.943848 0.711914 0
+27 14 14 0.944336 0.712402 0
+27 14 15 0.943359 0.712402 0
+27 14 16 0.944336 0.713379 0.147095
+27 14 17 0.954102 0.719238 0.315918
+27 14 18 0.965332 0.726562 0.428955
+27 14 19 0.977539 0.735352 0.527344
+27 14 20 0.987305 0.742676 0.614258
+27 14 21 0.99707 0.75293 0.697754
+27 14 22 1 0.764648 0.773438
+27 14 23 1 0.773926 0.835938
+27 14 24 1 0.777832 0.88623
+27 14 25 0.996582 0.774902 0.930664
+27 14 26 0.97998 0.763184 0.969727
+27 14 27 0.958008 0.746094 1
+27 14 28 0.929688 0.724121 1
+27 14 29 0.895996 0.697754 1
+27 14 30 0.858887 0.668945 1
+27 14 31 0.819336 0.638184 1
+27 15 0 0.946777 0.72168 0
+27 15 1 0.946777 0.72168 0
+27 15 2 0.946777 0.72168 0
+27 15 3 0.946777 0.72168 0
+27 15 4 0.946777 0.72168 0
+27 15 5 0.946777 0.72168 0
+27 15 6 0.946777 0.72168 0
+27 15 7 0.946777 0.72168 0
+27 15 8 0.946777 0.72168 0
+27 15 9 0.946777 0.72168 0
+27 15 10 0.946777 0.72168 0
+27 15 11 0.946777 0.72168 0
+27 15 12 0.946777 0.722168 0
+27 15 13 0.947266 0.722168 0
+27 15 14 0.947266 0.723145 0
+27 15 15 0.946777 0.722656 0
+27 15 16 0.948242 0.723633 0.15918
+27 15 17 0.957031 0.729492 0.318604
+27 15 18 0.967773 0.736328 0.429443
+27 15 19 0.97998 0.745117 0.528809
+27 15 20 0.98877 0.750977 0.614258
+27 15 21 0.998047 0.760254 0.697266
+27 15 22 1 0.771484 0.772461
+27 15 23 1 0.780273 0.835449
+27 15 24 1 0.78418 0.886719
+27 15 25 0.99707 0.78125 0.931152
+27 15 26 0.980957 0.769531 0.970215
+27 15 27 0.958496 0.751953 1
+27 15 28 0.930664 0.72998 1
+27 15 29 0.896973 0.703613 1
+27 15 30 0.859375 0.673828 1
+27 15 31 0.820312 0.643066 1
+27 16 0 0.951172 0.736328 0
+27 16 1 0.951172 0.736328 0
+27 16 2 0.951172 0.736328 0
+27 16 3 0.951172 0.736328 0
+27 16 4 0.951172 0.736328 0
+27 16 5 0.951172 0.736328 0
+27 16 6 0.951172 0.736328 0
+27 16 7 0.951172 0.736328 0
+27 16 8 0.951172 0.736328 0
+27 16 9 0.951172 0.736816 0
+27 16 10 0.951172 0.736816 0
+27 16 11 0.951172 0.736816 0
+27 16 12 0.951172 0.736816 0
+27 16 13 0.95166 0.737305 0
+27 16 14 0.95166 0.737793 0
+27 16 15 0.95166 0.738281 0
+27 16 16 0.953613 0.739258 0.178101
+27 16 17 0.961914 0.744141 0.324219
+27 16 18 0.97168 0.75 0.431396
+27 16 19 0.982422 0.757324 0.52832
+27 16 20 0.991211 0.763184 0.614258
+27 16 21 0.999023 0.770996 0.696289
+27 16 22 1 0.780762 0.771973
+27 16 23 1 0.789551 0.834961
+27 16 24 1 0.792969 0.886719
+27 16 25 0.998047 0.790039 0.931152
+27 16 26 0.981934 0.77832 0.970215
+27 16 27 0.959473 0.760742 1
+27 16 28 0.931641 0.738281 1
+27 16 29 0.897949 0.711426 1
+27 16 30 0.860352 0.681152 1
+27 16 31 0.821289 0.649902 1
+27 17 0 0.95752 0.756836 0
+27 17 1 0.95752 0.756836 0
+27 17 2 0.95752 0.756836 0
+27 17 3 0.95752 0.756836 0
+27 17 4 0.95752 0.756836 0
+27 17 5 0.95752 0.756836 0
+27 17 6 0.95752 0.756836 0
+27 17 7 0.95752 0.756836 0
+27 17 8 0.95752 0.756836 0
+27 17 9 0.958008 0.756836 0
+27 17 10 0.958008 0.757324 0
+27 17 11 0.958008 0.757324 0
+27 17 12 0.958008 0.757324 0
+27 17 13 0.958008 0.757812 0
+27 17 14 0.958008 0.758301 0
+27 17 15 0.958008 0.758301 0
+27 17 16 0.960938 0.759766 0.20459
+27 17 17 0.967773 0.76416 0.33374
+27 17 18 0.976074 0.768555 0.435547
+27 17 19 0.985352 0.774414 0.528809
+27 17 20 0.994141 0.780273 0.615234
+27 17 21 1 0.785645 0.695312
+27 17 22 1 0.793457 0.77002
+27 17 23 1 0.80127 0.833984
+27 17 24 1 0.805176 0.88623
+27 17 25 0.999023 0.801758 0.931641
+27 17 26 0.98291 0.790039 0.970703
+27 17 27 0.960938 0.771973 1
+27 17 28 0.933105 0.749512 1
+27 17 29 0.899414 0.72168 1
+27 17 30 0.861816 0.691406 1
+27 17 31 0.822266 0.65918 1
+27 18 0 0.965332 0.781738 0
+27 18 1 0.965332 0.781738 0
+27 18 2 0.965332 0.781738 0
+27 18 3 0.965332 0.781738 0
+27 18 4 0.965332 0.781738 0
+27 18 5 0.965332 0.781738 0
+27 18 6 0.965332 0.781738 0
+27 18 7 0.965332 0.781738 0
+27 18 8 0.965332 0.781738 0
+27 18 9 0.965332 0.782227 0
+27 18 10 0.965332 0.782227 0
+27 18 11 0.965332 0.782227 0
+27 18 12 0.965332 0.782227 0
+27 18 13 0.96582 0.782715 0
+27 18 14 0.96582 0.783203 0
+27 18 15 0.96582 0.783203 0
+27 18 16 0.969727 0.785645 0.238037
+27 18 17 0.975586 0.789062 0.348877
+27 18 18 0.982422 0.79248 0.443115
+27 18 19 0.989746 0.796387 0.53125
+27 18 20 0.99707 0.80127 0.615723
+27 18 21 1 0.804199 0.694336
+27 18 22 1 0.80957 0.768066
+27 18 23 1 0.816406 0.83252
+27 18 24 1 0.819824 0.885254
+27 18 25 1 0.816895 0.931152
+27 18 26 0.984375 0.805176 0.970703
+27 18 27 0.962402 0.786621 1
+27 18 28 0.93457 0.763184 1
+27 18 29 0.900879 0.735352 1
+27 18 30 0.863281 0.703613 1
+27 18 31 0.82373 0.670898 1
+27 19 0 0.973633 0.810059 0.0548706
+27 19 1 0.973633 0.810059 0.0548706
+27 19 2 0.973633 0.810059 0.0549011
+27 19 3 0.973633 0.810059 0.0549011
+27 19 4 0.973633 0.810059 0.0549316
+27 19 5 0.973633 0.810059 0.0549622
+27 19 6 0.973633 0.810059 0.0550537
+27 19 7 0.973633 0.810059 0.0552063
+27 19 8 0.973633 0.810059 0.055481
+27 19 9 0.973633 0.810059 0.0560608
+27 19 10 0.973633 0.810059 0.0570374
+27 19 11 0.973633 0.810547 0.0587158
+27 19 12 0.973633 0.810547 0.0614014
+27 19 13 0.973633 0.811035 0.0654297
+27 19 14 0.974121 0.811035 0.071167
+27 19 15 0.975098 0.8125 0.147827
+27 19 16 0.979004 0.814941 0.275635
+27 19 17 0.984375 0.817871 0.369629
+27 19 18 0.989746 0.820312 0.455566
+27 19 19 0.995117 0.822754 0.537598
+27 19 20 1 0.824707 0.616211
+27 19 21 1 0.827637 0.694336
+27 19 22 1 0.829102 0.765137
+27 19 23 1 0.833496 0.82959
+27 19 24 1 0.836426 0.883301
+27 19 25 1 0.833984 0.930176
+27 19 26 0.985352 0.822266 0.970215
+27 19 27 0.963867 0.803223 1
+27 19 28 0.936035 0.779785 1
+27 19 29 0.902344 0.750977 1
+27 19 30 0.864746 0.71875 1
+27 19 31 0.825195 0.68457 1
+27 20 0 0.983887 0.841309 0.20752
+27 20 1 0.983887 0.841309 0.20752
+27 20 2 0.983887 0.841309 0.20752
+27 20 3 0.983887 0.841309 0.20752
+27 20 4 0.983887 0.841309 0.20752
+27 20 5 0.983887 0.841309 0.20752
+27 20 6 0.983887 0.841309 0.20752
+27 20 7 0.983887 0.841309 0.20752
+27 20 8 0.983887 0.841309 0.20752
+27 20 9 0.983887 0.841797 0.207642
+27 20 10 0.983887 0.841797 0.207764
+27 20 11 0.983887 0.841797 0.208008
+27 20 12 0.984375 0.841797 0.208374
+27 20 13 0.984375 0.842285 0.208862
+27 20 14 0.984375 0.842285 0.209839
+27 20 15 0.984863 0.843262 0.22583
+27 20 16 0.98877 0.845703 0.313721
+27 20 17 0.993164 0.848145 0.394287
+27 20 18 0.99707 0.850586 0.472168
+27 20 19 1 0.851562 0.547852
+27 20 20 1 0.851562 0.620605
+27 20 21 1 0.851562 0.692871
+27 20 22 1 0.851562 0.762207
+27 20 23 1 0.852539 0.825195
+27 20 24 1 0.854492 0.880371
+27 20 25 1 0.852051 0.928711
+27 20 26 0.98584 0.84082 0.969238
+27 20 27 0.964355 0.821777 1
+27 20 28 0.9375 0.797852 1
+27 20 29 0.903809 0.768066 1
+27 20 30 0.866211 0.734863 1
+27 20 31 0.82666 0.700195 1
+27 21 0 0.993164 0.873047 0.275635
+27 21 1 0.993164 0.873047 0.275635
+27 21 2 0.993164 0.873047 0.275635
+27 21 3 0.993164 0.873047 0.275635
+27 21 4 0.993164 0.873047 0.275635
+27 21 5 0.993164 0.873047 0.275635
+27 21 6 0.993164 0.873047 0.275635
+27 21 7 0.993164 0.873047 0.275635
+27 21 8 0.993164 0.873047 0.275635
+27 21 9 0.993164 0.873047 0.275635
+27 21 10 0.993164 0.873047 0.275635
+27 21 11 0.993164 0.873535 0.275879
+27 21 12 0.993652 0.873535 0.276123
+27 21 13 0.993652 0.873535 0.276367
+27 21 14 0.993652 0.874023 0.276855
+27 21 15 0.993652 0.874512 0.279541
+27 21 16 0.99707 0.876953 0.349365
+27 21 17 1 0.879395 0.420166
+27 21 18 1 0.881348 0.491211
+27 21 19 1 0.882324 0.561035
+27 21 20 1 0.881348 0.628418
+27 21 21 1 0.878418 0.694824
+27 21 22 1 0.875977 0.760254
+27 21 23 1 0.873535 0.820312
+27 21 24 1 0.873535 0.875488
+27 21 25 0.999023 0.871094 0.925293
+27 21 26 0.985352 0.86084 0.967285
+27 21 27 0.964844 0.841797 1
+27 21 28 0.937988 0.816895 1
+27 21 29 0.904785 0.786621 1
+27 21 30 0.867188 0.752441 1
+27 21 31 0.828125 0.716797 1
+27 22 0 1 0.90332 0.323486
+27 22 1 1 0.90332 0.323486
+27 22 2 1 0.90332 0.323486
+27 22 3 1 0.90332 0.323486
+27 22 4 1 0.90332 0.323486
+27 22 5 1 0.90332 0.323486
+27 22 6 1 0.90332 0.323486
+27 22 7 1 0.90332 0.323486
+27 22 8 1 0.90332 0.323486
+27 22 9 1 0.90332 0.32373
+27 22 10 1 0.90332 0.32373
+27 22 11 1 0.90332 0.32373
+27 22 12 1 0.90332 0.323975
+27 22 13 1 0.903809 0.324219
+27 22 14 1 0.903809 0.324463
+27 22 15 1 0.904297 0.324951
+27 22 16 1 0.906738 0.37915
+27 22 17 1 0.90918 0.443359
+27 22 18 1 0.911133 0.509766
+27 22 19 1 0.912109 0.575684
+27 22 20 1 0.911133 0.63916
+27 22 21 1 0.907227 0.700195
+27 22 22 1 0.901855 0.759277
+27 22 23 1 0.897461 0.816406
+27 22 24 1 0.893066 0.869141
+27 22 25 0.996094 0.890625 0.92041
+27 22 26 0.983887 0.880859 0.963867
+27 22 27 0.963867 0.861816 0.999512
+27 22 28 0.937988 0.836914 1
+27 22 29 0.904785 0.805664 1
+27 22 30 0.867676 0.770996 1
+27 22 31 0.829102 0.734375 1
+27 23 0 1 0.929688 0.356934
+27 23 1 1 0.929688 0.356934
+27 23 2 1 0.929688 0.356934
+27 23 3 1 0.929688 0.356934
+27 23 4 1 0.929688 0.356934
+27 23 5 1 0.929688 0.356934
+27 23 6 1 0.929688 0.356934
+27 23 7 1 0.929688 0.356934
+27 23 8 1 0.929688 0.356934
+27 23 9 1 0.929688 0.356934
+27 23 10 1 0.929688 0.356934
+27 23 11 1 0.929688 0.356934
+27 23 12 1 0.930176 0.357178
+27 23 13 1 0.930176 0.357178
+27 23 14 1 0.930176 0.357422
+27 23 15 1 0.930664 0.357666
+27 23 16 1 0.932617 0.400146
+27 23 17 1 0.935547 0.460449
+27 23 18 1 0.937988 0.523926
+27 23 19 1 0.938965 0.587891
+27 23 20 1 0.938477 0.648926
+27 23 21 1 0.93457 0.70752
+27 23 22 1 0.928711 0.762207
+27 23 23 1 0.920898 0.812988
+27 23 24 0.99707 0.913574 0.862793
+27 23 25 0.991699 0.908203 0.913574
+27 23 26 0.981445 0.899902 0.958984
+27 23 27 0.962402 0.881348 0.995605
+27 23 28 0.937012 0.855957 1
+27 23 29 0.904297 0.824219 1
+27 23 30 0.867676 0.789062 1
+27 23 31 0.82959 0.751465 1
+27 24 0 1 0.952148 0.378906
+27 24 1 1 0.952148 0.378906
+27 24 2 1 0.952148 0.378906
+27 24 3 1 0.952148 0.378906
+27 24 4 1 0.952148 0.378906
+27 24 5 1 0.952148 0.378906
+27 24 6 1 0.952148 0.378906
+27 24 7 1 0.952148 0.378906
+27 24 8 1 0.952148 0.378906
+27 24 9 1 0.952148 0.378906
+27 24 10 1 0.952148 0.378906
+27 24 11 1 0.952148 0.378906
+27 24 12 1 0.952637 0.378906
+27 24 13 1 0.952637 0.37915
+27 24 14 1 0.952637 0.37915
+27 24 15 1 0.953125 0.379395
+27 24 16 1 0.955078 0.412842
+27 24 17 1 0.958008 0.470703
+27 24 18 1 0.960938 0.532715
+27 24 19 1 0.962402 0.595215
+27 24 20 1 0.962402 0.655273
+27 24 21 1 0.959473 0.712891
+27 24 22 1 0.953613 0.766113
+27 24 23 1 0.945312 0.813965
+27 24 24 0.994141 0.935059 0.85791
+27 24 25 0.986328 0.925781 0.905273
+27 24 26 0.977539 0.91748 0.952637
+27 24 27 0.959961 0.899902 0.990723
+27 24 28 0.935059 0.874512 1
+27 24 29 0.902832 0.842285 1
+27 24 30 0.867188 0.806641 1
+27 24 31 0.82959 0.769043 1
+27 25 0 0.99707 0.972168 0.392822
+27 25 1 0.99707 0.972168 0.392822
+27 25 2 0.99707 0.972168 0.392822
+27 25 3 0.99707 0.972168 0.392822
+27 25 4 0.99707 0.972168 0.392822
+27 25 5 0.99707 0.972168 0.392822
+27 25 6 0.99707 0.972168 0.392822
+27 25 7 0.99707 0.972168 0.392822
+27 25 8 0.99707 0.972168 0.392822
+27 25 9 0.99707 0.972168 0.392822
+27 25 10 0.99707 0.972168 0.392822
+27 25 11 0.99707 0.972168 0.392822
+27 25 12 0.99707 0.972168 0.392822
+27 25 13 0.99707 0.972168 0.393066
+27 25 14 0.99707 0.972656 0.393066
+27 25 15 0.996582 0.972656 0.393066
+27 25 16 0.998535 0.974121 0.417969
+27 25 17 1 0.977539 0.474365
+27 25 18 1 0.980957 0.534668
+27 25 19 1 0.983398 0.59668
+27 25 20 1 0.984375 0.656738
+27 25 21 1 0.982422 0.714355
+27 25 22 1 0.977539 0.768066
+27 25 23 1 0.970215 0.814941
+27 25 24 0.992188 0.959961 0.856445
+27 25 25 0.980957 0.946777 0.897949
+27 25 26 0.971191 0.935547 0.943848
+27 25 27 0.955566 0.919434 0.983887
+27 25 28 0.931641 0.893555 1
+27 25 29 0.899902 0.86084 1
+27 25 30 0.865234 0.825195 1
+27 25 31 0.82959 0.788086 1
+27 26 0 0.985352 0.989258 0.399902
+27 26 1 0.985352 0.989258 0.399902
+27 26 2 0.985352 0.989258 0.399902
+27 26 3 0.985352 0.989258 0.399902
+27 26 4 0.985352 0.989258 0.399902
+27 26 5 0.985352 0.989258 0.399902
+27 26 6 0.985352 0.989258 0.399902
+27 26 7 0.985352 0.989258 0.399902
+27 26 8 0.985352 0.989258 0.399902
+27 26 9 0.985352 0.989258 0.399902
+27 26 10 0.985352 0.989258 0.399902
+27 26 11 0.985352 0.989258 0.399902
+27 26 12 0.985352 0.989258 0.400146
+27 26 13 0.985352 0.989258 0.400146
+27 26 14 0.985352 0.989258 0.400146
+27 26 15 0.985352 0.989258 0.400146
+27 26 16 0.986328 0.990723 0.41626
+27 26 17 0.990723 0.994141 0.470947
+27 26 18 0.995117 0.997559 0.530273
+27 26 19 0.999023 1 0.59082
+27 26 20 1 1 0.650391
+27 26 21 1 1 0.708496
+27 26 22 1 0.998535 0.762695
+27 26 23 0.996094 0.992676 0.810547
+27 26 24 0.98877 0.983887 0.853516
+27 26 25 0.978027 0.971191 0.894043
+27 26 26 0.963379 0.95459 0.933105
+27 26 27 0.949219 0.938965 0.974121
+27 26 28 0.925781 0.912598 1
+27 26 29 0.895508 0.880371 1
+27 26 30 0.86377 0.846191 1
+27 26 31 0.830078 0.80957 1
+27 27 0 0.968262 1 0.402588
+27 27 1 0.968262 1 0.402588
+27 27 2 0.968262 1 0.402588
+27 27 3 0.968262 1 0.402588
+27 27 4 0.968262 1 0.402588
+27 27 5 0.968262 1 0.402588
+27 27 6 0.968262 1 0.402588
+27 27 7 0.968262 1 0.402588
+27 27 8 0.968262 1 0.402588
+27 27 9 0.968262 1 0.402588
+27 27 10 0.968262 1 0.402588
+27 27 11 0.968262 1 0.402588
+27 27 12 0.968262 1 0.402588
+27 27 13 0.968262 1 0.402588
+27 27 14 0.968262 1 0.402588
+27 27 15 0.968262 1 0.402588
+27 27 16 0.96875 1 0.40918
+27 27 17 0.972656 1 0.462402
+27 27 18 0.977051 1 0.52002
+27 27 19 0.981445 1 0.57959
+27 27 20 0.984375 1 0.637695
+27 27 21 0.986328 1 0.694824
+27 27 22 0.985352 1 0.749023
+27 27 23 0.982422 1 0.797363
+27 27 24 0.977539 1 0.84082
+27 27 25 0.969238 0.992188 0.883301
+27 27 26 0.957031 0.977539 0.923828
+27 27 27 0.94043 0.958496 0.961426
+27 27 28 0.918457 0.932617 0.993164
+27 27 29 0.89209 0.90332 1
+27 27 30 0.862793 0.870117 1
+27 27 31 0.831055 0.834473 1
+27 28 0 0.946289 1 0.402832
+27 28 1 0.946289 1 0.402832
+27 28 2 0.946289 1 0.402832
+27 28 3 0.946289 1 0.402832
+27 28 4 0.946289 1 0.402832
+27 28 5 0.946289 1 0.402832
+27 28 6 0.946289 1 0.402832
+27 28 7 0.946289 1 0.402832
+27 28 8 0.946289 1 0.402832
+27 28 9 0.946289 1 0.402832
+27 28 10 0.946289 1 0.402832
+27 28 11 0.946289 1 0.402832
+27 28 12 0.946289 1 0.402832
+27 28 13 0.945801 1 0.402832
+27 28 14 0.945801 1 0.402832
+27 28 15 0.945801 1 0.402832
+27 28 16 0.945801 1 0.402832
+27 28 17 0.949219 1 0.450684
+27 28 18 0.953613 1 0.506348
+27 28 19 0.958008 1 0.563965
+27 28 20 0.961426 1 0.620605
+27 28 21 0.963379 1 0.676758
+27 28 22 0.963867 1 0.729492
+27 28 23 0.962402 1 0.777832
+27 28 24 0.958496 1 0.821289
+27 28 25 0.95166 1 0.86377
+27 28 26 0.941895 0.993164 0.905273
+27 28 27 0.928711 0.976562 0.945312
+27 28 28 0.912598 0.957031 0.98291
+27 28 29 0.890137 0.929688 1
+27 28 30 0.862305 0.896973 1
+27 28 31 0.832031 0.861328 1
+27 29 0 0.919434 1 0.401855
+27 29 1 0.919434 1 0.401855
+27 29 2 0.919434 1 0.401855
+27 29 3 0.919434 1 0.401855
+27 29 4 0.919434 1 0.401855
+27 29 5 0.919434 1 0.401855
+27 29 6 0.919434 1 0.401855
+27 29 7 0.919434 1 0.401855
+27 29 8 0.919434 1 0.401855
+27 29 9 0.919434 1 0.401855
+27 29 10 0.919434 1 0.401855
+27 29 11 0.919434 1 0.401855
+27 29 12 0.919434 1 0.401855
+27 29 13 0.919434 1 0.401855
+27 29 14 0.919434 1 0.401855
+27 29 15 0.918945 1 0.401855
+27 29 16 0.918945 1 0.401855
+27 29 17 0.921875 1 0.437012
+27 29 18 0.925781 1 0.490479
+27 29 19 0.930176 1 0.545898
+27 29 20 0.933594 1 0.600586
+27 29 21 0.936523 1 0.654785
+27 29 22 0.9375 1 0.706543
+27 29 23 0.937012 1 0.753906
+27 29 24 0.93457 1 0.797363
+27 29 25 0.930176 1 0.840332
+27 29 26 0.92334 1 0.883301
+27 29 27 0.913574 0.993164 0.925293
+27 29 28 0.900391 0.975586 0.964844
+27 29 29 0.883301 0.953613 1
+27 29 30 0.860352 0.924805 1
+27 29 31 0.83252 0.890137 1
+27 30 0 0.889648 1 0.399658
+27 30 1 0.889648 1 0.399658
+27 30 2 0.889648 1 0.399658
+27 30 3 0.889648 1 0.399658
+27 30 4 0.889648 1 0.399658
+27 30 5 0.889648 1 0.399658
+27 30 6 0.889648 1 0.399658
+27 30 7 0.889648 1 0.399658
+27 30 8 0.889648 1 0.399658
+27 30 9 0.889648 1 0.399658
+27 30 10 0.889648 1 0.399658
+27 30 11 0.889648 1 0.399658
+27 30 12 0.889648 1 0.399658
+27 30 13 0.889648 1 0.399658
+27 30 14 0.889648 1 0.399658
+27 30 15 0.88916 1 0.399658
+27 30 16 0.88916 1 0.399658
+27 30 17 0.891113 1 0.421875
+27 30 18 0.89502 1 0.472656
+27 30 19 0.898926 1 0.525391
+27 30 20 0.902832 1 0.578125
+27 30 21 0.90625 1 0.630371
+27 30 22 0.908203 1 0.680664
+27 30 23 0.90918 1 0.727051
+27 30 24 0.908203 1 0.77002
+27 30 25 0.905762 1 0.813477
+27 30 26 0.901367 1 0.857422
+27 30 27 0.894531 1 0.900879
+27 30 28 0.884277 0.992676 0.942383
+27 30 29 0.870605 0.973145 0.980469
+27 30 30 0.852539 0.948242 1
+27 30 31 0.82959 0.917969 1
+27 31 0 0.857422 1 0.396484
+27 31 1 0.857422 1 0.396484
+27 31 2 0.857422 1 0.396484
+27 31 3 0.857422 1 0.396484
+27 31 4 0.857422 1 0.396484
+27 31 5 0.857422 1 0.396484
+27 31 6 0.857422 1 0.396484
+27 31 7 0.857422 1 0.396484
+27 31 8 0.857422 1 0.396484
+27 31 9 0.857422 1 0.396484
+27 31 10 0.857422 1 0.396484
+27 31 11 0.857422 1 0.396484
+27 31 12 0.857422 1 0.396484
+27 31 13 0.857422 1 0.396484
+27 31 14 0.857422 1 0.396484
+27 31 15 0.857422 1 0.396484
+27 31 16 0.857422 1 0.396484
+27 31 17 0.858398 1 0.405518
+27 31 18 0.861816 1 0.453613
+27 31 19 0.866211 1 0.503906
+27 31 20 0.870117 1 0.554199
+27 31 21 0.873535 1 0.604492
+27 31 22 0.876465 1 0.65332
+27 31 23 0.878418 1 0.698242
+27 31 24 0.879395 1 0.740723
+27 31 25 0.878906 1 0.78418
+27 31 26 0.876465 1 0.828125
+27 31 27 0.87207 1 0.872559
+27 31 28 0.865234 1 0.915527
+27 31 29 0.854492 0.990234 0.956055
+27 31 30 0.839844 0.96875 0.992676
+27 31 31 0.821289 0.941895 1
+28 0 0 0.958984 0.708496 0
+28 0 1 0.958984 0.708496 0
+28 0 2 0.958984 0.708496 0
+28 0 3 0.958984 0.708496 0
+28 0 4 0.958984 0.708496 0
+28 0 5 0.958984 0.708496 0
+28 0 6 0.958984 0.708496 0
+28 0 7 0.958984 0.708496 0
+28 0 8 0.958984 0.708496 0
+28 0 9 0.958984 0.708984 0
+28 0 10 0.958984 0.708984 0
+28 0 11 0.958984 0.708984 0
+28 0 12 0.959473 0.708984 0
+28 0 13 0.959473 0.709473 0
+28 0 14 0.959473 0.709961 0
+28 0 15 0.959473 0.710449 0
+28 0 16 0.958984 0.710449 0
+28 0 17 0.965332 0.714844 0.256104
+28 0 18 0.976074 0.72168 0.383057
+28 0 19 0.987305 0.72998 0.484863
+28 0 20 0.99707 0.736328 0.570801
+28 0 21 1 0.746094 0.653809
+28 0 22 1 0.757324 0.729492
+28 0 23 1 0.767578 0.794922
+28 0 24 1 0.774902 0.849121
+28 0 25 1 0.777344 0.897461
+28 0 26 1 0.772949 0.940918
+28 0 27 0.987793 0.759766 0.978027
+28 0 28 0.963379 0.741211 1
+28 0 29 0.933594 0.71875 1
+28 0 30 0.899414 0.692383 1
+28 0 31 0.861816 0.663574 1
+28 1 0 0.958984 0.708496 0
+28 1 1 0.958984 0.708496 0
+28 1 2 0.958984 0.708496 0
+28 1 3 0.958984 0.708496 0
+28 1 4 0.958984 0.708496 0
+28 1 5 0.958984 0.708496 0
+28 1 6 0.958984 0.708496 0
+28 1 7 0.958984 0.708496 0
+28 1 8 0.958984 0.708496 0
+28 1 9 0.958984 0.708984 0
+28 1 10 0.958984 0.708984 0
+28 1 11 0.958984 0.708984 0
+28 1 12 0.959473 0.708984 0
+28 1 13 0.959473 0.709473 0
+28 1 14 0.959473 0.709961 0
+28 1 15 0.959473 0.710449 0
+28 1 16 0.958984 0.710449 0
+28 1 17 0.965332 0.714844 0.256104
+28 1 18 0.976074 0.72168 0.383057
+28 1 19 0.987305 0.72998 0.484863
+28 1 20 0.99707 0.736328 0.570801
+28 1 21 1 0.746094 0.653809
+28 1 22 1 0.757324 0.729492
+28 1 23 1 0.767578 0.794922
+28 1 24 1 0.774902 0.849121
+28 1 25 1 0.777344 0.897461
+28 1 26 1 0.772949 0.940918
+28 1 27 0.987793 0.759766 0.978027
+28 1 28 0.963379 0.741211 1
+28 1 29 0.933594 0.71875 1
+28 1 30 0.899414 0.692383 1
+28 1 31 0.861816 0.663574 1
+28 2 0 0.958984 0.708496 0
+28 2 1 0.958984 0.708496 0
+28 2 2 0.958984 0.708496 0
+28 2 3 0.958984 0.708496 0
+28 2 4 0.958984 0.708496 0
+28 2 5 0.958984 0.708496 0
+28 2 6 0.958984 0.708496 0
+28 2 7 0.958984 0.708496 0
+28 2 8 0.958984 0.708496 0
+28 2 9 0.958984 0.708984 0
+28 2 10 0.958984 0.708984 0
+28 2 11 0.958984 0.708984 0
+28 2 12 0.959473 0.708984 0
+28 2 13 0.959473 0.709473 0
+28 2 14 0.959473 0.709961 0
+28 2 15 0.959473 0.710449 0
+28 2 16 0.958984 0.710449 0
+28 2 17 0.965332 0.714844 0.256104
+28 2 18 0.976074 0.72168 0.383057
+28 2 19 0.987305 0.72998 0.484863
+28 2 20 0.99707 0.736328 0.570801
+28 2 21 1 0.746094 0.653809
+28 2 22 1 0.757324 0.729492
+28 2 23 1 0.767578 0.794922
+28 2 24 1 0.774902 0.849121
+28 2 25 1 0.777344 0.897461
+28 2 26 1 0.772949 0.940918
+28 2 27 0.987793 0.759766 0.978027
+28 2 28 0.963379 0.741211 1
+28 2 29 0.933594 0.71875 1
+28 2 30 0.899414 0.692383 1
+28 2 31 0.861816 0.663574 1
+28 3 0 0.958984 0.708496 0
+28 3 1 0.958984 0.708496 0
+28 3 2 0.958984 0.708496 0
+28 3 3 0.958984 0.708496 0
+28 3 4 0.958984 0.708496 0
+28 3 5 0.958984 0.708496 0
+28 3 6 0.958984 0.708496 0
+28 3 7 0.958984 0.708496 0
+28 3 8 0.958984 0.708496 0
+28 3 9 0.958984 0.708984 0
+28 3 10 0.958984 0.708984 0
+28 3 11 0.958984 0.708984 0
+28 3 12 0.959473 0.708984 0
+28 3 13 0.959473 0.709473 0
+28 3 14 0.959473 0.709961 0
+28 3 15 0.959473 0.710449 0
+28 3 16 0.958984 0.710449 0
+28 3 17 0.965332 0.714844 0.256104
+28 3 18 0.976074 0.72168 0.383057
+28 3 19 0.987305 0.72998 0.484863
+28 3 20 0.99707 0.736328 0.570801
+28 3 21 1 0.746094 0.653809
+28 3 22 1 0.757324 0.729492
+28 3 23 1 0.767578 0.794922
+28 3 24 1 0.774902 0.849121
+28 3 25 1 0.777344 0.897461
+28 3 26 1 0.772949 0.940918
+28 3 27 0.987793 0.759766 0.978027
+28 3 28 0.963379 0.741211 1
+28 3 29 0.933594 0.71875 1
+28 3 30 0.899414 0.692383 1
+28 3 31 0.861816 0.663574 1
+28 4 0 0.958984 0.708496 0
+28 4 1 0.958984 0.708496 0
+28 4 2 0.958984 0.708496 0
+28 4 3 0.958984 0.708496 0
+28 4 4 0.958984 0.708496 0
+28 4 5 0.958984 0.708496 0
+28 4 6 0.958984 0.708496 0
+28 4 7 0.958984 0.708496 0
+28 4 8 0.958984 0.708984 0
+28 4 9 0.958984 0.708984 0
+28 4 10 0.958984 0.708984 0
+28 4 11 0.958984 0.708984 0
+28 4 12 0.959473 0.708984 0
+28 4 13 0.959473 0.709473 0
+28 4 14 0.959473 0.709961 0
+28 4 15 0.959473 0.710449 0
+28 4 16 0.958984 0.710449 0
+28 4 17 0.965332 0.714844 0.256104
+28 4 18 0.976074 0.72168 0.383057
+28 4 19 0.987305 0.72998 0.484863
+28 4 20 0.99707 0.736328 0.570801
+28 4 21 1 0.746094 0.653809
+28 4 22 1 0.757324 0.729492
+28 4 23 1 0.767578 0.794922
+28 4 24 1 0.774902 0.849121
+28 4 25 1 0.777344 0.897461
+28 4 26 1 0.772949 0.940918
+28 4 27 0.987793 0.759766 0.978027
+28 4 28 0.963379 0.741211 1
+28 4 29 0.933594 0.71875 1
+28 4 30 0.899414 0.692383 1
+28 4 31 0.861816 0.663574 1
+28 5 0 0.958984 0.708496 0
+28 5 1 0.958984 0.708496 0
+28 5 2 0.958984 0.708496 0
+28 5 3 0.958984 0.708496 0
+28 5 4 0.958984 0.708496 0
+28 5 5 0.958984 0.708984 0
+28 5 6 0.958984 0.708984 0
+28 5 7 0.958984 0.708984 0
+28 5 8 0.958984 0.708984 0
+28 5 9 0.958984 0.708984 0
+28 5 10 0.958984 0.708984 0
+28 5 11 0.958984 0.708984 0
+28 5 12 0.959473 0.708984 0
+28 5 13 0.959473 0.709473 0
+28 5 14 0.959473 0.709961 0
+28 5 15 0.959473 0.710449 0
+28 5 16 0.958984 0.710449 0
+28 5 17 0.965332 0.714844 0.256348
+28 5 18 0.976074 0.72168 0.383057
+28 5 19 0.987305 0.72998 0.484863
+28 5 20 0.99707 0.736816 0.570801
+28 5 21 1 0.746094 0.653809
+28 5 22 1 0.757324 0.729492
+28 5 23 1 0.767578 0.794922
+28 5 24 1 0.774902 0.849121
+28 5 25 1 0.777344 0.897461
+28 5 26 1 0.772949 0.940918
+28 5 27 0.987793 0.760254 0.978027
+28 5 28 0.963379 0.741211 1
+28 5 29 0.933594 0.71875 1
+28 5 30 0.899414 0.692383 1
+28 5 31 0.861816 0.663574 1
+28 6 0 0.958984 0.708984 0
+28 6 1 0.958984 0.708984 0
+28 6 2 0.958984 0.708984 0
+28 6 3 0.958984 0.708984 0
+28 6 4 0.958984 0.708984 0
+28 6 5 0.958984 0.708984 0
+28 6 6 0.958984 0.708984 0
+28 6 7 0.958984 0.708984 0
+28 6 8 0.958984 0.708984 0
+28 6 9 0.958984 0.708984 0
+28 6 10 0.958984 0.708984 0
+28 6 11 0.958984 0.708984 0
+28 6 12 0.959473 0.709473 0
+28 6 13 0.959473 0.709473 0
+28 6 14 0.959473 0.709961 0
+28 6 15 0.959473 0.710449 0
+28 6 16 0.958984 0.710449 0
+28 6 17 0.965332 0.714844 0.256348
+28 6 18 0.976074 0.722168 0.383301
+28 6 19 0.987305 0.730469 0.484863
+28 6 20 0.99707 0.736816 0.570801
+28 6 21 1 0.746094 0.653809
+28 6 22 1 0.757324 0.729492
+28 6 23 1 0.767578 0.794922
+28 6 24 1 0.774902 0.849121
+28 6 25 1 0.777344 0.897949
+28 6 26 1 0.772949 0.940918
+28 6 27 0.987793 0.760254 0.978027
+28 6 28 0.963379 0.741211 1
+28 6 29 0.933594 0.71875 1
+28 6 30 0.899414 0.692383 1
+28 6 31 0.861816 0.663574 1
+28 7 0 0.958984 0.708984 0
+28 7 1 0.958984 0.708984 0
+28 7 2 0.958984 0.708984 0
+28 7 3 0.958984 0.708984 0
+28 7 4 0.958984 0.708984 0
+28 7 5 0.958984 0.708984 0
+28 7 6 0.958984 0.708984 0
+28 7 7 0.958984 0.708984 0
+28 7 8 0.958984 0.708984 0
+28 7 9 0.958984 0.708984 0
+28 7 10 0.958984 0.708984 0
+28 7 11 0.959473 0.708984 0
+28 7 12 0.959473 0.709473 0
+28 7 13 0.959473 0.709961 0
+28 7 14 0.959473 0.710449 0
+28 7 15 0.959473 0.710938 0
+28 7 16 0.958984 0.710449 0
+28 7 17 0.965332 0.714844 0.256348
+28 7 18 0.976074 0.722168 0.383301
+28 7 19 0.987305 0.730469 0.484863
+28 7 20 0.99707 0.736816 0.570801
+28 7 21 1 0.746094 0.653809
+28 7 22 1 0.757324 0.729492
+28 7 23 1 0.767578 0.794922
+28 7 24 1 0.774902 0.849121
+28 7 25 1 0.777832 0.897949
+28 7 26 1 0.772949 0.940918
+28 7 27 0.987793 0.760254 0.978027
+28 7 28 0.963379 0.741211 1
+28 7 29 0.933594 0.71875 1
+28 7 30 0.899414 0.692383 1
+28 7 31 0.861816 0.663574 1
+28 8 0 0.958984 0.708984 0
+28 8 1 0.958984 0.708984 0
+28 8 2 0.958984 0.708984 0
+28 8 3 0.958984 0.708984 0
+28 8 4 0.958984 0.708984 0
+28 8 5 0.958984 0.708984 0
+28 8 6 0.958984 0.708984 0
+28 8 7 0.958984 0.708984 0
+28 8 8 0.958984 0.708984 0
+28 8 9 0.959473 0.708984 0
+28 8 10 0.959473 0.709473 0
+28 8 11 0.959473 0.709473 0
+28 8 12 0.959473 0.709473 0
+28 8 13 0.959473 0.709961 0
+28 8 14 0.959473 0.710449 0
+28 8 15 0.959961 0.710938 0
+28 8 16 0.958984 0.710938 0
+28 8 17 0.965332 0.715332 0.256348
+28 8 18 0.976074 0.722168 0.383301
+28 8 19 0.987793 0.730469 0.484863
+28 8 20 0.99707 0.736816 0.570801
+28 8 21 1 0.746582 0.653809
+28 8 22 1 0.757324 0.729492
+28 8 23 1 0.768066 0.794922
+28 8 24 1 0.775391 0.849121
+28 8 25 1 0.777832 0.897949
+28 8 26 1 0.772949 0.940918
+28 8 27 0.987793 0.760254 0.978027
+28 8 28 0.963379 0.741699 1
+28 8 29 0.933594 0.71875 1
+28 8 30 0.899414 0.692871 1
+28 8 31 0.861816 0.664062 1
+28 9 0 0.959473 0.709473 0
+28 9 1 0.959473 0.709473 0
+28 9 2 0.959473 0.709473 0
+28 9 3 0.959473 0.709473 0
+28 9 4 0.959473 0.709473 0
+28 9 5 0.959473 0.709473 0
+28 9 6 0.959473 0.709473 0
+28 9 7 0.959473 0.709473 0
+28 9 8 0.959473 0.709473 0
+28 9 9 0.959473 0.709473 0
+28 9 10 0.959473 0.709961 0
+28 9 11 0.959473 0.709961 0
+28 9 12 0.959473 0.709961 0
+28 9 13 0.959473 0.710449 0
+28 9 14 0.959961 0.710938 0
+28 9 15 0.959961 0.711426 0
+28 9 16 0.958984 0.711426 0
+28 9 17 0.96582 0.715332 0.256348
+28 9 18 0.976562 0.722656 0.383301
+28 9 19 0.987793 0.730957 0.485107
+28 9 20 0.99707 0.737305 0.570801
+28 9 21 1 0.746582 0.653809
+28 9 22 1 0.757812 0.729492
+28 9 23 1 0.768066 0.794922
+28 9 24 1 0.775391 0.849121
+28 9 25 1 0.777832 0.897949
+28 9 26 1 0.773438 0.940918
+28 9 27 0.987793 0.760742 0.978027
+28 9 28 0.963379 0.741699 1
+28 9 29 0.933594 0.719238 1
+28 9 30 0.899414 0.692871 1
+28 9 31 0.861816 0.664062 1
+28 10 0 0.959473 0.710449 0
+28 10 1 0.959473 0.710449 0
+28 10 2 0.959473 0.710449 0
+28 10 3 0.959473 0.710449 0
+28 10 4 0.959473 0.710449 0
+28 10 5 0.959473 0.710449 0
+28 10 6 0.959473 0.710449 0
+28 10 7 0.959473 0.710449 0
+28 10 8 0.959473 0.710449 0
+28 10 9 0.959473 0.710449 0
+28 10 10 0.959473 0.710449 0
+28 10 11 0.959473 0.710449 0
+28 10 12 0.959961 0.710938 0
+28 10 13 0.959961 0.710938 0
+28 10 14 0.959961 0.711914 0
+28 10 15 0.959961 0.712402 0
+28 10 16 0.959473 0.711914 0
+28 10 17 0.96582 0.716309 0.256592
+28 10 18 0.976562 0.723145 0.383301
+28 10 19 0.987793 0.731934 0.485107
+28 10 20 0.99707 0.737793 0.570801
+28 10 21 1 0.747559 0.653809
+28 10 22 1 0.758301 0.729492
+28 10 23 1 0.768555 0.794922
+28 10 24 1 0.775879 0.849121
+28 10 25 1 0.77832 0.897949
+28 10 26 1 0.773926 0.940918
+28 10 27 0.988281 0.760742 0.978516
+28 10 28 0.963379 0.742188 1
+28 10 29 0.934082 0.719727 1
+28 10 30 0.899414 0.693359 1
+28 10 31 0.861816 0.664551 1
+28 11 0 0.959961 0.711914 0
+28 11 1 0.959961 0.711914 0
+28 11 2 0.959961 0.711914 0
+28 11 3 0.959961 0.711914 0
+28 11 4 0.959961 0.711914 0
+28 11 5 0.959961 0.711914 0
+28 11 6 0.959961 0.711914 0
+28 11 7 0.959961 0.711914 0
+28 11 8 0.959961 0.711914 0
+28 11 9 0.959961 0.711914 0
+28 11 10 0.959961 0.711914 0
+28 11 11 0.959961 0.711914 0
+28 11 12 0.960449 0.712402 0
+28 11 13 0.960449 0.712402 0
+28 11 14 0.960449 0.712891 0
+28 11 15 0.960449 0.713379 0
+28 11 16 0.959961 0.713379 0
+28 11 17 0.966309 0.717773 0.256836
+28 11 18 0.977051 0.724609 0.383301
+28 11 19 0.988281 0.73291 0.485352
+28 11 20 0.997559 0.739258 0.570801
+28 11 21 1 0.748535 0.65332
+28 11 22 1 0.759277 0.729492
+28 11 23 1 0.769531 0.794434
+28 11 24 1 0.776855 0.849121
+28 11 25 1 0.779297 0.897949
+28 11 26 1 0.774414 0.940918
+28 11 27 0.988281 0.761719 0.978516
+28 11 28 0.963867 0.743164 1
+28 11 29 0.934082 0.720215 1
+28 11 30 0.899902 0.693848 1
+28 11 31 0.861816 0.665039 1
+28 12 0 0.960938 0.714355 0
+28 12 1 0.960938 0.714355 0
+28 12 2 0.960938 0.714355 0
+28 12 3 0.960938 0.714355 0
+28 12 4 0.960938 0.714355 0
+28 12 5 0.960938 0.714355 0
+28 12 6 0.960938 0.714355 0
+28 12 7 0.960938 0.714355 0
+28 12 8 0.960938 0.714355 0
+28 12 9 0.960938 0.714355 0
+28 12 10 0.960938 0.714355 0
+28 12 11 0.960938 0.714355 0
+28 12 12 0.960938 0.714844 0
+28 12 13 0.960938 0.714844 0
+28 12 14 0.961426 0.715332 0
+28 12 15 0.961426 0.71582 0
+28 12 16 0.960449 0.71582 0
+28 12 17 0.966797 0.719727 0.257568
+28 12 18 0.977539 0.726562 0.383301
+28 12 19 0.98877 0.735352 0.48584
+28 12 20 0.998047 0.741211 0.571289
+28 12 21 1 0.75 0.65332
+28 12 22 1 0.760742 0.729492
+28 12 23 1 0.770996 0.794434
+28 12 24 1 0.77832 0.849121
+28 12 25 1 0.780762 0.897949
+28 12 26 1 0.775879 0.940918
+28 12 27 0.988281 0.763184 0.978516
+28 12 28 0.963867 0.744141 1
+28 12 29 0.934082 0.72168 1
+28 12 30 0.899902 0.695312 1
+28 12 31 0.862305 0.666016 1
+28 13 0 0.961914 0.717773 0
+28 13 1 0.961914 0.717773 0
+28 13 2 0.961914 0.717773 0
+28 13 3 0.961914 0.717773 0
+28 13 4 0.961914 0.717773 0
+28 13 5 0.961914 0.717773 0
+28 13 6 0.961914 0.717773 0
+28 13 7 0.961914 0.717773 0
+28 13 8 0.961914 0.718262 0
+28 13 9 0.961914 0.718262 0
+28 13 10 0.961914 0.718262 0
+28 13 11 0.962402 0.718262 0
+28 13 12 0.962402 0.718262 0
+28 13 13 0.962402 0.71875 0
+28 13 14 0.962402 0.719238 0
+28 13 15 0.962402 0.719727 0
+28 13 16 0.961914 0.719238 0
+28 13 17 0.968262 0.723633 0.258545
+28 13 18 0.978516 0.72998 0.383545
+28 13 19 0.989258 0.738281 0.485596
+28 13 20 0.998535 0.744629 0.571289
+28 13 21 1 0.75293 0.65332
+28 13 22 1 0.763672 0.729492
+28 13 23 1 0.773438 0.794434
+28 13 24 1 0.780273 0.849121
+28 13 25 1 0.783203 0.897949
+28 13 26 1 0.77832 0.940918
+28 13 27 0.98877 0.765137 0.978516
+28 13 28 0.964355 0.746582 1
+28 13 29 0.93457 0.723633 1
+28 13 30 0.900391 0.697266 1
+28 13 31 0.862305 0.667969 1
+28 14 0 0.963867 0.724121 0
+28 14 1 0.963867 0.724121 0
+28 14 2 0.963867 0.724121 0
+28 14 3 0.963867 0.724121 0
+28 14 4 0.963867 0.724121 0
+28 14 5 0.963867 0.724121 0
+28 14 6 0.963867 0.724121 0
+28 14 7 0.963867 0.724121 0
+28 14 8 0.963867 0.724121 0
+28 14 9 0.963867 0.724121 0
+28 14 10 0.963867 0.724121 0
+28 14 11 0.963867 0.724121 0
+28 14 12 0.964355 0.724609 0
+28 14 13 0.964355 0.724609 0
+28 14 14 0.964355 0.725586 0
+28 14 15 0.964355 0.725586 0
+28 14 16 0.963379 0.725586 0
+28 14 17 0.969727 0.729492 0.260498
+28 14 18 0.979492 0.73584 0.384033
+28 14 19 0.990234 0.743164 0.485352
+28 14 20 1 0.75 0.571289
+28 14 21 1 0.757812 0.65332
+28 14 22 1 0.767578 0.729004
+28 14 23 1 0.777344 0.794434
+28 14 24 1 0.78418 0.849121
+28 14 25 1 0.786621 0.897949
+28 14 26 1 0.781738 0.941406
+28 14 27 0.989258 0.769043 0.979004
+28 14 28 0.964844 0.75 1
+28 14 29 0.935059 0.727051 1
+28 14 30 0.900879 0.700195 1
+28 14 31 0.862793 0.670898 1
+28 15 0 0.966797 0.733398 0
+28 15 1 0.966797 0.733398 0
+28 15 2 0.966797 0.733398 0
+28 15 3 0.966797 0.733398 0
+28 15 4 0.966797 0.733398 0
+28 15 5 0.966797 0.733398 0
+28 15 6 0.966797 0.733398 0
+28 15 7 0.966797 0.733398 0
+28 15 8 0.966797 0.733398 0
+28 15 9 0.966797 0.733398 0
+28 15 10 0.966797 0.733398 0
+28 15 11 0.966797 0.733398 0
+28 15 12 0.966797 0.733398 0
+28 15 13 0.967285 0.733887 0
+28 15 14 0.967285 0.734375 0
+28 15 15 0.967285 0.734863 0
+28 15 16 0.966309 0.734375 0
+28 15 17 0.972656 0.738281 0.26416
+28 15 18 0.981934 0.744141 0.385254
+28 15 19 0.992188 0.750977 0.485107
+28 15 20 1 0.757812 0.572266
+28 15 21 1 0.764648 0.652832
+28 15 22 1 0.773926 0.728516
+28 15 23 1 0.782715 0.793945
+28 15 24 1 0.789551 0.849121
+28 15 25 1 0.791992 0.898438
+28 15 26 1 0.787109 0.941406
+28 15 27 0.989746 0.774414 0.979004
+28 15 28 0.965332 0.754883 1
+28 15 29 0.935547 0.731934 1
+28 15 30 0.901367 0.705078 1
+28 15 31 0.863281 0.675293 1
+28 16 0 0.970703 0.746094 0
+28 16 1 0.970703 0.746094 0
+28 16 2 0.970703 0.746094 0
+28 16 3 0.970703 0.746094 0
+28 16 4 0.970703 0.746094 0
+28 16 5 0.970703 0.746094 0
+28 16 6 0.970703 0.746094 0
+28 16 7 0.970703 0.746094 0
+28 16 8 0.970703 0.746094 0
+28 16 9 0.970703 0.746094 0
+28 16 10 0.970703 0.746582 0
+28 16 11 0.970703 0.746582 0
+28 16 12 0.970703 0.746582 0
+28 16 13 0.971191 0.74707 0
+28 16 14 0.971191 0.747559 0
+28 16 15 0.971191 0.748047 0
+28 16 16 0.970215 0.74707 0
+28 16 17 0.976562 0.750977 0.270508
+28 16 18 0.984863 0.756348 0.387451
+28 16 19 0.994141 0.762207 0.485352
+28 16 20 1 0.769531 0.573242
+28 16 21 1 0.775391 0.652832
+28 16 22 1 0.783203 0.728027
+28 16 23 1 0.791504 0.793457
+28 16 24 1 0.797852 0.848633
+28 16 25 1 0.799805 0.898438
+28 16 26 1 0.794922 0.941895
+28 16 27 0.990723 0.781738 0.979492
+28 16 28 0.966309 0.762695 1
+28 16 29 0.936523 0.73877 1
+28 16 30 0.902344 0.711914 1
+28 16 31 0.864258 0.681641 1
+28 17 0 0.975586 0.763672 0
+28 17 1 0.975586 0.763672 0
+28 17 2 0.975586 0.763672 0
+28 17 3 0.975586 0.763672 0
+28 17 4 0.975586 0.763672 0
+28 17 5 0.975586 0.763672 0
+28 17 6 0.975586 0.763672 0
+28 17 7 0.975586 0.763672 0
+28 17 8 0.975586 0.763672 0
+28 17 9 0.975586 0.763672 0
+28 17 10 0.975586 0.763672 0
+28 17 11 0.975586 0.763672 0
+28 17 12 0.976074 0.76416 0
+28 17 13 0.976074 0.76416 0
+28 17 14 0.976074 0.764648 0
+28 17 15 0.976074 0.765137 0
+28 17 16 0.975098 0.764648 0
+28 17 17 0.981934 0.768555 0.28125
+28 17 18 0.989258 0.772949 0.39209
+28 17 19 0.997559 0.777832 0.486816
+28 17 20 1 0.784668 0.574219
+28 17 21 1 0.789551 0.652832
+28 17 22 1 0.79541 0.727051
+28 17 23 1 0.802734 0.79248
+28 17 24 1 0.808105 0.848145
+28 17 25 1 0.810547 0.898438
+28 17 26 1 0.805664 0.942383
+28 17 27 0.992188 0.791992 0.97998
+28 17 28 0.967773 0.772461 1
+28 17 29 0.937988 0.748535 1
+28 17 30 0.90332 0.720703 1
+28 17 31 0.865723 0.69043 1
+28 18 0 0.981445 0.785156 0
+28 18 1 0.981445 0.785156 0
+28 18 2 0.981445 0.785156 0
+28 18 3 0.981445 0.785156 0
+28 18 4 0.981445 0.785156 0
+28 18 5 0.981445 0.785156 0
+28 18 6 0.981445 0.785156 0
+28 18 7 0.981445 0.785156 0
+28 18 8 0.981445 0.785156 0
+28 18 9 0.981445 0.785156 0
+28 18 10 0.981445 0.785156 0
+28 18 11 0.981445 0.785156 0
+28 18 12 0.981445 0.785645 0
+28 18 13 0.981934 0.785645 0
+28 18 14 0.981934 0.786133 0
+28 18 15 0.981934 0.786621 0
+28 18 16 0.982422 0.786621 0.1427
+28 18 17 0.988281 0.790039 0.297607
+28 18 18 0.994629 0.793945 0.400391
+28 18 19 1 0.797852 0.490234
+28 18 20 1 0.802734 0.574219
+28 18 21 1 0.807617 0.65332
+28 18 22 1 0.811523 0.725586
+28 18 23 1 0.816895 0.791016
+28 18 24 1 0.821777 0.847168
+28 18 25 1 0.823242 0.897949
+28 18 26 1 0.818848 0.942383
+28 18 27 0.993164 0.805176 0.97998
+28 18 28 0.96875 0.785156 1
+28 18 29 0.939453 0.760742 1
+28 18 30 0.904785 0.732422 1
+28 18 31 0.866699 0.701172 1
+28 19 0 0.987793 0.80957 0
+28 19 1 0.987793 0.80957 0
+28 19 2 0.987793 0.80957 0
+28 19 3 0.987793 0.80957 0
+28 19 4 0.987793 0.80957 0
+28 19 5 0.987793 0.80957 0
+28 19 6 0.987793 0.80957 0
+28 19 7 0.987793 0.80957 0
+28 19 8 0.987793 0.80957 0
+28 19 9 0.987793 0.80957 0
+28 19 10 0.987793 0.80957 0
+28 19 11 0.987793 0.80957 0
+28 19 12 0.987793 0.80957 0
+28 19 13 0.987793 0.810059 0
+28 19 14 0.987793 0.810547 0
+28 19 15 0.987793 0.811035 0
+28 19 16 0.990234 0.8125 0.201904
+28 19 17 0.995605 0.81543 0.319824
+28 19 18 1 0.818359 0.412842
+28 19 19 1 0.821777 0.496826
+28 19 20 1 0.825195 0.576172
+28 19 21 1 0.828613 0.65332
+28 19 22 1 0.830566 0.724121
+28 19 23 1 0.833496 0.788574
+28 19 24 1 0.836914 0.845215
+28 19 25 1 0.838379 0.896973
+28 19 26 1 0.833984 0.941895
+28 19 27 0.994141 0.820312 0.97998
+28 19 28 0.970215 0.799805 1
+28 19 29 0.940918 0.774902 1
+28 19 30 0.90625 0.746094 1
+28 19 31 0.868164 0.713867 1
+28 20 0 0.994141 0.835938 0.125488
+28 20 1 0.994141 0.835938 0.125488
+28 20 2 0.994141 0.835938 0.125488
+28 20 3 0.994141 0.835938 0.125488
+28 20 4 0.994141 0.835938 0.125488
+28 20 5 0.994141 0.835938 0.125488
+28 20 6 0.994141 0.835938 0.12561
+28 20 7 0.994141 0.835938 0.12561
+28 20 8 0.994141 0.835938 0.12561
+28 20 9 0.994141 0.835938 0.125854
+28 20 10 0.994141 0.835938 0.126099
+28 20 11 0.994141 0.835938 0.126465
+28 20 12 0.994141 0.835938 0.127197
+28 20 13 0.994629 0.836426 0.128296
+28 20 14 0.994629 0.836914 0.130127
+28 20 15 0.994629 0.837402 0.132812
+28 20 16 0.998047 0.839844 0.251465
+28 20 17 1 0.842773 0.346191
+28 20 18 1 0.845215 0.429443
+28 20 19 1 0.847656 0.506836
+28 20 20 1 0.849609 0.581055
+28 20 21 1 0.851074 0.65332
+28 20 22 1 0.852539 0.723633
+28 20 23 1 0.852539 0.785645
+28 20 24 1 0.854004 0.842285
+28 20 25 1 0.85498 0.89502
+28 20 26 1 0.850098 0.94043
+28 20 27 0.995117 0.836914 0.979492
+28 20 28 0.971191 0.816406 1
+28 20 29 0.941895 0.791016 1
+28 20 30 0.907715 0.76123 1
+28 20 31 0.869629 0.728516 1
+28 21 0 1 0.864258 0.227173
+28 21 1 1 0.864258 0.227173
+28 21 2 1 0.864258 0.227173
+28 21 3 1 0.864258 0.227173
+28 21 4 1 0.864258 0.227173
+28 21 5 1 0.864258 0.227173
+28 21 6 1 0.864258 0.227173
+28 21 7 1 0.864258 0.227173
+28 21 8 1 0.864258 0.227295
+28 21 9 1 0.864258 0.227295
+28 21 10 1 0.864258 0.227417
+28 21 11 1 0.864746 0.227539
+28 21 12 1 0.864746 0.227783
+28 21 13 1 0.864746 0.228271
+28 21 14 1 0.865234 0.228882
+28 21 15 1 0.865723 0.22998
+28 21 16 1 0.867676 0.295166
+28 21 17 1 0.870605 0.374023
+28 21 18 1 0.873047 0.448975
+28 21 19 1 0.875488 0.520508
+28 21 20 1 0.876465 0.588867
+28 21 21 1 0.876465 0.65625
+28 21 22 1 0.875488 0.722168
+28 21 23 1 0.874023 0.782715
+28 21 24 1 0.873047 0.837891
+28 21 25 1 0.872559 0.891602
+28 21 26 1 0.867676 0.938477
+28 21 27 0.995117 0.85498 0.978027
+28 21 28 0.97168 0.833984 1
+28 21 29 0.942871 0.808105 1
+28 21 30 0.90918 0.777832 1
+28 21 31 0.871094 0.744141 1
+28 22 0 1 0.89209 0.286865
+28 22 1 1 0.89209 0.286865
+28 22 2 1 0.89209 0.286865
+28 22 3 1 0.89209 0.286865
+28 22 4 1 0.89209 0.286865
+28 22 5 1 0.89209 0.286865
+28 22 6 1 0.89209 0.286865
+28 22 7 1 0.89209 0.286865
+28 22 8 1 0.89209 0.286865
+28 22 9 1 0.89209 0.286865
+28 22 10 1 0.89209 0.287109
+28 22 11 1 0.89209 0.287109
+28 22 12 1 0.89209 0.287354
+28 22 13 1 0.892578 0.287598
+28 22 14 1 0.892578 0.288086
+28 22 15 1 0.893066 0.288574
+28 22 16 1 0.89502 0.332031
+28 22 17 1 0.897949 0.400391
+28 22 18 1 0.900879 0.46875
+28 22 19 1 0.902832 0.535645
+28 22 20 1 0.903809 0.599609
+28 22 21 1 0.902832 0.662109
+28 22 22 1 0.899902 0.722656
+28 22 23 1 0.896973 0.780273
+28 22 24 1 0.893066 0.833496
+28 22 25 1 0.890625 0.886719
+28 22 26 1 0.885742 0.935059
+28 22 27 0.994141 0.873047 0.975586
+28 22 28 0.97168 0.852051 1
+28 22 29 0.943359 0.826172 1
+28 22 30 0.909668 0.79541 1
+28 22 31 0.87207 0.760742 1
+28 23 0 1 0.916992 0.328613
+28 23 1 1 0.916992 0.328613
+28 23 2 1 0.916992 0.328613
+28 23 3 1 0.916992 0.328613
+28 23 4 1 0.916992 0.328613
+28 23 5 1 0.916992 0.328613
+28 23 6 1 0.916992 0.328613
+28 23 7 1 0.916992 0.328613
+28 23 8 1 0.916992 0.328613
+28 23 9 1 0.916992 0.328613
+28 23 10 1 0.916992 0.328613
+28 23 11 1 0.916992 0.328857
+28 23 12 1 0.916992 0.328857
+28 23 13 1 0.916992 0.329102
+28 23 14 1 0.91748 0.329346
+28 23 15 1 0.917969 0.329834
+28 23 16 1 0.919434 0.360352
+28 23 17 1 0.922852 0.421875
+28 23 18 1 0.925781 0.48584
+28 23 19 1 0.928223 0.549316
+28 23 20 1 0.928711 0.610352
+28 23 21 1 0.927734 0.669434
+28 23 22 1 0.924316 0.726074
+28 23 23 1 0.919434 0.778809
+28 23 24 1 0.914062 0.829102
+28 23 25 1 0.908203 0.880859
+28 23 26 1 0.902832 0.930664
+28 23 27 0.992676 0.891113 0.972168
+28 23 28 0.970703 0.870117 1
+28 23 29 0.943359 0.84375 1
+28 23 30 0.910156 0.8125 1
+28 23 31 0.872559 0.777344 1
+28 24 0 1 0.938477 0.358154
+28 24 1 1 0.938477 0.358154
+28 24 2 1 0.938477 0.358154
+28 24 3 1 0.938477 0.358154
+28 24 4 1 0.938477 0.358154
+28 24 5 1 0.938477 0.358398
+28 24 6 1 0.938477 0.358398
+28 24 7 1 0.938477 0.358398
+28 24 8 1 0.938477 0.358398
+28 24 9 1 0.938477 0.358398
+28 24 10 1 0.938477 0.358398
+28 24 11 1 0.938477 0.358398
+28 24 12 1 0.938477 0.358398
+28 24 13 1 0.938965 0.358643
+28 24 14 1 0.938965 0.358643
+28 24 15 1 0.938965 0.358887
+28 24 16 1 0.94043 0.380371
+28 24 17 1 0.943848 0.437744
+28 24 18 1 0.947266 0.498535
+28 24 19 1 0.950195 0.560059
+28 24 20 1 0.951172 0.619141
+28 24 21 1 0.950684 0.67627
+28 24 22 1 0.947266 0.730469
+28 24 23 1 0.941895 0.779785
+28 24 24 1 0.93457 0.825684
+28 24 25 1 0.926758 0.875
+28 24 26 1 0.919434 0.924316
+28 24 27 0.989746 0.907715 0.967285
+28 24 28 0.969238 0.887695 1
+28 24 29 0.942383 0.861328 1
+28 24 30 0.909668 0.829102 1
+28 24 31 0.873047 0.793457 1
+28 25 0 1 0.958496 0.380127
+28 25 1 1 0.958496 0.380127
+28 25 2 1 0.958496 0.380127
+28 25 3 1 0.958496 0.380127
+28 25 4 1 0.958496 0.380127
+28 25 5 1 0.958496 0.380127
+28 25 6 1 0.958496 0.380127
+28 25 7 1 0.958496 0.380127
+28 25 8 1 0.958496 0.380127
+28 25 9 1 0.958496 0.380127
+28 25 10 1 0.958496 0.380127
+28 25 11 1 0.958496 0.380127
+28 25 12 1 0.958496 0.380127
+28 25 13 1 0.958984 0.380371
+28 25 14 1 0.958984 0.380371
+28 25 15 1 0.958984 0.380615
+28 25 16 1 0.959961 0.393799
+28 25 17 1 0.963867 0.447998
+28 25 18 1 0.967285 0.506348
+28 25 19 1 0.970703 0.566406
+28 25 20 1 0.972168 0.624512
+28 25 21 1 0.972168 0.680664
+28 25 22 1 0.969727 0.733887
+28 25 23 1 0.964844 0.781738
+28 25 24 1 0.95752 0.824707
+28 25 25 1 0.947266 0.869141
+28 25 26 0.997559 0.936523 0.916016
+28 25 27 0.98584 0.925293 0.960938
+28 25 28 0.966309 0.905762 0.99707
+28 25 29 0.94043 0.879395 1
+28 25 30 0.908203 0.847168 1
+28 25 31 0.872559 0.811523 1
+28 26 0 1 0.977051 0.394287
+28 26 1 1 0.977051 0.394287
+28 26 2 1 0.977051 0.394287
+28 26 3 1 0.977051 0.394287
+28 26 4 1 0.977051 0.394287
+28 26 5 1 0.977051 0.394287
+28 26 6 1 0.977051 0.394287
+28 26 7 1 0.977051 0.394287
+28 26 8 1 0.977051 0.394287
+28 26 9 1 0.977051 0.394287
+28 26 10 1 0.977051 0.394287
+28 26 11 1 0.977051 0.394287
+28 26 12 1 0.977051 0.394531
+28 26 13 1 0.977051 0.394531
+28 26 14 1 0.977051 0.394531
+28 26 15 1 0.977539 0.394531
+28 26 16 1 0.978027 0.399658
+28 26 17 1 0.981445 0.45166
+28 26 18 1 0.984863 0.508301
+28 26 19 1 0.988281 0.566406
+28 26 20 1 0.990723 0.623535
+28 26 21 1 0.991211 0.679688
+28 26 22 1 0.989746 0.73291
+28 26 23 1 0.98584 0.780762
+28 26 24 1 0.979492 0.823242
+28 26 25 1 0.969727 0.865234
+28 26 26 0.991699 0.957031 0.907715
+28 26 27 0.979004 0.943359 0.952148
+28 26 28 0.961426 0.924805 0.989746
+28 26 29 0.937012 0.898926 1
+28 26 30 0.905762 0.866211 1
+28 26 31 0.871094 0.830566 1
+28 27 0 0.989258 0.993164 0.401611
+28 27 1 0.989258 0.993164 0.401611
+28 27 2 0.989258 0.993164 0.401611
+28 27 3 0.989258 0.993164 0.401611
+28 27 4 0.989258 0.993164 0.401611
+28 27 5 0.989258 0.993164 0.401611
+28 27 6 0.989258 0.993164 0.401611
+28 27 7 0.989258 0.993164 0.401611
+28 27 8 0.989258 0.993164 0.401611
+28 27 9 0.989258 0.993164 0.401611
+28 27 10 0.989258 0.993164 0.401611
+28 27 11 0.989258 0.993164 0.401611
+28 27 12 0.989258 0.993164 0.401611
+28 27 13 0.989258 0.993164 0.401611
+28 27 14 0.989258 0.993164 0.401611
+28 27 15 0.989258 0.993164 0.401611
+28 27 16 0.989258 0.993652 0.401611
+28 27 17 0.992676 0.996582 0.44873
+28 27 18 0.99707 1 0.503906
+28 27 19 1 1 0.560547
+28 27 20 1 1 0.616699
+28 27 21 1 1 0.671875
+28 27 22 1 1 0.724609
+28 27 23 1 1 0.772949
+28 27 24 1 0.998535 0.815918
+28 27 25 0.995117 0.990234 0.858887
+28 27 26 0.984863 0.978027 0.900391
+28 27 27 0.970703 0.961914 0.94043
+28 27 28 0.955078 0.944336 0.97998
+28 27 29 0.931152 0.917969 1
+28 27 30 0.901367 0.88623 1
+28 27 31 0.869629 0.851562 1
+28 28 0 0.972168 1 0.404053
+28 28 1 0.972168 1 0.404053
+28 28 2 0.972168 1 0.404053
+28 28 3 0.972168 1 0.404053
+28 28 4 0.972168 1 0.404053
+28 28 5 0.972168 1 0.404053
+28 28 6 0.972168 1 0.404053
+28 28 7 0.972168 1 0.404053
+28 28 8 0.972168 1 0.404053
+28 28 9 0.972168 1 0.404053
+28 28 10 0.972168 1 0.404053
+28 28 11 0.972168 1 0.404053
+28 28 12 0.972168 1 0.404053
+28 28 13 0.972168 1 0.404053
+28 28 14 0.97168 1 0.404053
+28 28 15 0.97168 1 0.404053
+28 28 16 0.97168 1 0.404053
+28 28 17 0.974609 1 0.440674
+28 28 18 0.979004 1 0.494141
+28 28 19 0.98291 1 0.549316
+28 28 20 0.986816 1 0.604492
+28 28 21 0.989258 1 0.658691
+28 28 22 0.990723 1 0.710449
+28 28 23 0.989746 1 0.758301
+28 28 24 0.987305 1 0.801758
+28 28 25 0.981934 1 0.845215
+28 28 26 0.974121 0.99707 0.887695
+28 28 27 0.961914 0.982422 0.928711
+28 28 28 0.945801 0.963379 0.966797
+28 28 29 0.92334 0.937988 0.999023
+28 28 30 0.897461 0.908691 1
+28 28 31 0.867676 0.875 1
+28 29 0 0.949219 1 0.404297
+28 29 1 0.949219 1 0.404297
+28 29 2 0.949219 1 0.404297
+28 29 3 0.949219 1 0.404297
+28 29 4 0.949219 1 0.404297
+28 29 5 0.949219 1 0.404297
+28 29 6 0.949219 1 0.404297
+28 29 7 0.949219 1 0.404297
+28 29 8 0.949219 1 0.404297
+28 29 9 0.949219 1 0.404297
+28 29 10 0.949219 1 0.404297
+28 29 11 0.949219 1 0.404297
+28 29 12 0.949219 1 0.404297
+28 29 13 0.949219 1 0.404297
+28 29 14 0.949219 1 0.404297
+28 29 15 0.949219 1 0.404297
+28 29 16 0.949219 1 0.404297
+28 29 17 0.951172 1 0.429932
+28 29 18 0.955078 1 0.481201
+28 29 19 0.959473 1 0.534668
+28 29 20 0.962891 1 0.587891
+28 29 21 0.966309 1 0.640625
+28 29 22 0.967773 1 0.691895
+28 29 23 0.967773 1 0.73877
+28 29 24 0.966309 1 0.781738
+28 29 25 0.962891 1 0.825195
+28 29 26 0.956543 1 0.868164
+28 29 27 0.946777 0.998047 0.910156
+28 29 28 0.933594 0.981934 0.950195
+28 29 29 0.916992 0.961426 0.987793
+28 29 30 0.894531 0.934082 1
+28 29 31 0.866699 0.901367 1
+28 30 0 0.922363 1 0.403076
+28 30 1 0.922363 1 0.403076
+28 30 2 0.922363 1 0.403076
+28 30 3 0.922363 1 0.403076
+28 30 4 0.922363 1 0.403076
+28 30 5 0.922363 1 0.403076
+28 30 6 0.922363 1 0.403076
+28 30 7 0.922363 1 0.403076
+28 30 8 0.922363 1 0.403076
+28 30 9 0.922363 1 0.403076
+28 30 10 0.922363 1 0.403076
+28 30 11 0.922363 1 0.403076
+28 30 12 0.922363 1 0.403076
+28 30 13 0.922363 1 0.403076
+28 30 14 0.922363 1 0.403076
+28 30 15 0.922363 1 0.403076
+28 30 16 0.922363 1 0.403076
+28 30 17 0.92334 1 0.416992
+28 30 18 0.927246 1 0.466309
+28 30 19 0.931152 1 0.517578
+28 30 20 0.935059 1 0.568848
+28 30 21 0.938477 1 0.620117
+28 30 22 0.94043 1 0.669434
+28 30 23 0.941895 1 0.715332
+28 30 24 0.941406 1 0.757812
+28 30 25 0.938965 1 0.800781
+28 30 26 0.935059 1 0.844727
+28 30 27 0.927734 1 0.887695
+28 30 28 0.917969 0.998047 0.929688
+28 30 29 0.904297 0.980469 0.969238
+28 30 30 0.886719 0.95752 1
+28 30 31 0.86377 0.928223 1
+28 31 0 0.892578 1 0.400879
+28 31 1 0.892578 1 0.400879
+28 31 2 0.892578 1 0.400879
+28 31 3 0.892578 1 0.400879
+28 31 4 0.892578 1 0.400879
+28 31 5 0.892578 1 0.400879
+28 31 6 0.892578 1 0.400879
+28 31 7 0.892578 1 0.400879
+28 31 8 0.892578 1 0.400879
+28 31 9 0.892578 1 0.400879
+28 31 10 0.892578 1 0.400879
+28 31 11 0.892578 1 0.400879
+28 31 12 0.892578 1 0.400879
+28 31 13 0.89209 1 0.400879
+28 31 14 0.89209 1 0.400879
+28 31 15 0.89209 1 0.400879
+28 31 16 0.89209 1 0.400879
+28 31 17 0.89209 1 0.402588
+28 31 18 0.895996 1 0.449463
+28 31 19 0.899902 1 0.498535
+28 31 20 0.903809 1 0.547363
+28 31 21 0.907227 1 0.59668
+28 31 22 0.910156 1 0.644531
+28 31 23 0.912109 1 0.688965
+28 31 24 0.913086 1 0.730957
+28 31 25 0.912109 1 0.773438
+28 31 26 0.910156 1 0.817383
+28 31 27 0.905762 1 0.861328
+28 31 28 0.898438 1 0.904785
+28 31 29 0.888184 0.996582 0.946289
+28 31 30 0.873535 0.976562 0.984375
+28 31 31 0.85498 0.951172 1
+29 0 0 0.973145 0.71875 0
+29 0 1 0.973145 0.71875 0
+29 0 2 0.973145 0.71875 0
+29 0 3 0.973145 0.71875 0
+29 0 4 0.973145 0.71875 0
+29 0 5 0.973145 0.71875 0
+29 0 6 0.973145 0.71875 0
+29 0 7 0.973145 0.71875 0
+29 0 8 0.973145 0.71875 0
+29 0 9 0.973145 0.719238 0
+29 0 10 0.973145 0.719238 0
+29 0 11 0.973145 0.719238 0
+29 0 12 0.973633 0.719238 0
+29 0 13 0.973633 0.719727 0
+29 0 14 0.973633 0.720215 0
+29 0 15 0.974121 0.720703 0
+29 0 16 0.973633 0.720703 0
+29 0 17 0.976562 0.723145 0.174561
+29 0 18 0.987793 0.730469 0.331299
+29 0 19 1 0.73877 0.438477
+29 0 20 1 0.746094 0.526855
+29 0 21 1 0.753418 0.60791
+29 0 22 1 0.761719 0.683105
+29 0 23 1 0.77002 0.749023
+29 0 24 1 0.777832 0.806152
+29 0 25 1 0.783691 0.858887
+29 0 26 1 0.784668 0.90625
+29 0 27 1 0.77832 0.947754
+29 0 28 0.994141 0.764648 0.983887
+29 0 29 0.96875 0.745117 1
+29 0 30 0.938477 0.722168 1
+29 0 31 0.90332 0.695312 1
+29 1 0 0.973145 0.71875 0
+29 1 1 0.973145 0.71875 0
+29 1 2 0.973145 0.71875 0
+29 1 3 0.973145 0.71875 0
+29 1 4 0.973145 0.71875 0
+29 1 5 0.973145 0.71875 0
+29 1 6 0.973145 0.71875 0
+29 1 7 0.973145 0.71875 0
+29 1 8 0.973145 0.71875 0
+29 1 9 0.973145 0.719238 0
+29 1 10 0.973145 0.719238 0
+29 1 11 0.973145 0.719238 0
+29 1 12 0.973633 0.719238 0
+29 1 13 0.973633 0.719727 0
+29 1 14 0.973633 0.720215 0
+29 1 15 0.974121 0.720703 0
+29 1 16 0.973633 0.720703 0
+29 1 17 0.976562 0.723145 0.174561
+29 1 18 0.987793 0.730469 0.331299
+29 1 19 1 0.73877 0.438477
+29 1 20 1 0.746094 0.526855
+29 1 21 1 0.753418 0.60791
+29 1 22 1 0.761719 0.683105
+29 1 23 1 0.77002 0.749023
+29 1 24 1 0.777832 0.806152
+29 1 25 1 0.783691 0.858887
+29 1 26 1 0.784668 0.90625
+29 1 27 1 0.77832 0.947754
+29 1 28 0.994141 0.764648 0.983887
+29 1 29 0.96875 0.745117 1
+29 1 30 0.938477 0.722168 1
+29 1 31 0.90332 0.695312 1
+29 2 0 0.973145 0.71875 0
+29 2 1 0.973145 0.71875 0
+29 2 2 0.973145 0.71875 0
+29 2 3 0.973145 0.71875 0
+29 2 4 0.973145 0.71875 0
+29 2 5 0.973145 0.71875 0
+29 2 6 0.973145 0.71875 0
+29 2 7 0.973145 0.71875 0
+29 2 8 0.973145 0.71875 0
+29 2 9 0.973145 0.719238 0
+29 2 10 0.973145 0.719238 0
+29 2 11 0.973145 0.719238 0
+29 2 12 0.973633 0.719238 0
+29 2 13 0.973633 0.719727 0
+29 2 14 0.973633 0.720215 0
+29 2 15 0.974121 0.720703 0
+29 2 16 0.973633 0.720703 0
+29 2 17 0.976562 0.723145 0.174561
+29 2 18 0.987793 0.730469 0.331299
+29 2 19 1 0.73877 0.438477
+29 2 20 1 0.746582 0.526855
+29 2 21 1 0.753418 0.60791
+29 2 22 1 0.761719 0.683105
+29 2 23 1 0.77002 0.749023
+29 2 24 1 0.777832 0.806152
+29 2 25 1 0.783691 0.858887
+29 2 26 1 0.784668 0.90625
+29 2 27 1 0.77832 0.947754
+29 2 28 0.994141 0.764648 0.983887
+29 2 29 0.96875 0.745117 1
+29 2 30 0.938477 0.722168 1
+29 2 31 0.90332 0.695312 1
+29 3 0 0.973145 0.71875 0
+29 3 1 0.973145 0.71875 0
+29 3 2 0.973145 0.71875 0
+29 3 3 0.973145 0.71875 0
+29 3 4 0.973145 0.71875 0
+29 3 5 0.973145 0.71875 0
+29 3 6 0.973145 0.71875 0
+29 3 7 0.973145 0.71875 0
+29 3 8 0.973145 0.71875 0
+29 3 9 0.973145 0.719238 0
+29 3 10 0.973145 0.719238 0
+29 3 11 0.973145 0.719238 0
+29 3 12 0.973633 0.719238 0
+29 3 13 0.973633 0.719727 0
+29 3 14 0.973633 0.720215 0
+29 3 15 0.974121 0.720703 0
+29 3 16 0.973633 0.720703 0
+29 3 17 0.976562 0.723145 0.174561
+29 3 18 0.987793 0.730469 0.331299
+29 3 19 1 0.73877 0.438477
+29 3 20 1 0.746582 0.526855
+29 3 21 1 0.753418 0.60791
+29 3 22 1 0.761719 0.683105
+29 3 23 1 0.77002 0.749023
+29 3 24 1 0.777832 0.806152
+29 3 25 1 0.783691 0.858887
+29 3 26 1 0.784668 0.90625
+29 3 27 1 0.77832 0.947754
+29 3 28 0.994141 0.764648 0.983887
+29 3 29 0.96875 0.745117 1
+29 3 30 0.938477 0.722168 1
+29 3 31 0.90332 0.695312 1
+29 4 0 0.973145 0.71875 0
+29 4 1 0.973145 0.71875 0
+29 4 2 0.973145 0.71875 0
+29 4 3 0.973145 0.71875 0
+29 4 4 0.973145 0.71875 0
+29 4 5 0.973145 0.71875 0
+29 4 6 0.973145 0.71875 0
+29 4 7 0.973145 0.71875 0
+29 4 8 0.973145 0.719238 0
+29 4 9 0.973145 0.719238 0
+29 4 10 0.973145 0.719238 0
+29 4 11 0.973145 0.719238 0
+29 4 12 0.973633 0.719238 0
+29 4 13 0.973633 0.719727 0
+29 4 14 0.973633 0.720215 0
+29 4 15 0.974121 0.720703 0
+29 4 16 0.973633 0.721191 0
+29 4 17 0.976562 0.723145 0.174561
+29 4 18 0.987793 0.730469 0.331299
+29 4 19 1 0.739258 0.438477
+29 4 20 1 0.746582 0.526855
+29 4 21 1 0.753418 0.60791
+29 4 22 1 0.761719 0.683105
+29 4 23 1 0.77002 0.749023
+29 4 24 1 0.777832 0.806152
+29 4 25 1 0.783691 0.858887
+29 4 26 1 0.784668 0.90625
+29 4 27 1 0.77832 0.947754
+29 4 28 0.994141 0.764648 0.983887
+29 4 29 0.96875 0.745117 1
+29 4 30 0.938477 0.722168 1
+29 4 31 0.90332 0.695312 1
+29 5 0 0.973145 0.719238 0
+29 5 1 0.973145 0.719238 0
+29 5 2 0.973145 0.719238 0
+29 5 3 0.973145 0.719238 0
+29 5 4 0.973145 0.719238 0
+29 5 5 0.973145 0.719238 0
+29 5 6 0.973145 0.719238 0
+29 5 7 0.973145 0.719238 0
+29 5 8 0.973145 0.719238 0
+29 5 9 0.973145 0.719238 0
+29 5 10 0.973145 0.719238 0
+29 5 11 0.973145 0.719238 0
+29 5 12 0.973633 0.719238 0
+29 5 13 0.973633 0.719727 0
+29 5 14 0.973633 0.720215 0
+29 5 15 0.974121 0.720703 0
+29 5 16 0.973633 0.721191 0
+29 5 17 0.976562 0.723145 0.174561
+29 5 18 0.987793 0.730469 0.331299
+29 5 19 1 0.739258 0.438477
+29 5 20 1 0.746582 0.526855
+29 5 21 1 0.753418 0.60791
+29 5 22 1 0.761719 0.683105
+29 5 23 1 0.77002 0.749023
+29 5 24 1 0.777832 0.806152
+29 5 25 1 0.783691 0.858887
+29 5 26 1 0.784668 0.90625
+29 5 27 1 0.77832 0.947754
+29 5 28 0.994141 0.764648 0.983887
+29 5 29 0.96875 0.745117 1
+29 5 30 0.938477 0.722168 1
+29 5 31 0.90332 0.695312 1
+29 6 0 0.973145 0.719238 0
+29 6 1 0.973145 0.719238 0
+29 6 2 0.973145 0.719238 0
+29 6 3 0.973145 0.719238 0
+29 6 4 0.973145 0.719238 0
+29 6 5 0.973145 0.719238 0
+29 6 6 0.973145 0.719238 0
+29 6 7 0.973145 0.719238 0
+29 6 8 0.973145 0.719238 0
+29 6 9 0.973145 0.719238 0
+29 6 10 0.973145 0.719238 0
+29 6 11 0.973145 0.719238 0
+29 6 12 0.973633 0.719238 0
+29 6 13 0.973633 0.719727 0
+29 6 14 0.973633 0.720215 0
+29 6 15 0.974121 0.720703 0
+29 6 16 0.973633 0.721191 0
+29 6 17 0.976562 0.723145 0.174561
+29 6 18 0.987793 0.730469 0.331299
+29 6 19 1 0.739258 0.438477
+29 6 20 1 0.746582 0.526855
+29 6 21 1 0.753418 0.60791
+29 6 22 1 0.761719 0.683105
+29 6 23 1 0.77002 0.749023
+29 6 24 1 0.777832 0.806152
+29 6 25 1 0.783691 0.858887
+29 6 26 1 0.784668 0.90625
+29 6 27 1 0.77832 0.947754
+29 6 28 0.994141 0.764648 0.983887
+29 6 29 0.96875 0.745117 1
+29 6 30 0.938477 0.722168 1
+29 6 31 0.90332 0.695801 1
+29 7 0 0.973145 0.719238 0
+29 7 1 0.973145 0.719238 0
+29 7 2 0.973145 0.719238 0
+29 7 3 0.973145 0.719238 0
+29 7 4 0.973145 0.719238 0
+29 7 5 0.973145 0.719238 0
+29 7 6 0.973145 0.719238 0
+29 7 7 0.973145 0.719238 0
+29 7 8 0.973145 0.719238 0
+29 7 9 0.973145 0.719238 0
+29 7 10 0.973145 0.719238 0
+29 7 11 0.973633 0.719238 0
+29 7 12 0.973633 0.719727 0
+29 7 13 0.973633 0.719727 0
+29 7 14 0.973633 0.720215 0
+29 7 15 0.974121 0.721191 0
+29 7 16 0.973633 0.721191 0
+29 7 17 0.976562 0.723145 0.174561
+29 7 18 0.987793 0.730469 0.331299
+29 7 19 1 0.739258 0.438477
+29 7 20 1 0.746582 0.526855
+29 7 21 1 0.753418 0.60791
+29 7 22 1 0.761719 0.683105
+29 7 23 1 0.770508 0.749023
+29 7 24 1 0.777832 0.806152
+29 7 25 1 0.783691 0.858887
+29 7 26 1 0.784668 0.90625
+29 7 27 1 0.77832 0.947754
+29 7 28 0.994141 0.764648 0.983887
+29 7 29 0.96875 0.745605 1
+29 7 30 0.938477 0.722168 1
+29 7 31 0.90332 0.695801 1
+29 8 0 0.973633 0.719238 0
+29 8 1 0.973633 0.719238 0
+29 8 2 0.973633 0.719238 0
+29 8 3 0.973633 0.719238 0
+29 8 4 0.973633 0.719238 0
+29 8 5 0.973633 0.719238 0
+29 8 6 0.973633 0.719238 0
+29 8 7 0.973633 0.719238 0
+29 8 8 0.973633 0.719238 0
+29 8 9 0.973633 0.719238 0
+29 8 10 0.973633 0.719238 0
+29 8 11 0.973633 0.719727 0
+29 8 12 0.973633 0.719727 0
+29 8 13 0.973633 0.720215 0
+29 8 14 0.973633 0.720703 0
+29 8 15 0.974121 0.721191 0
+29 8 16 0.973633 0.721191 0
+29 8 17 0.976562 0.723633 0.174683
+29 8 18 0.987793 0.730957 0.331299
+29 8 19 1 0.739258 0.438477
+29 8 20 1 0.746582 0.526855
+29 8 21 1 0.753418 0.60791
+29 8 22 1 0.761719 0.683105
+29 8 23 1 0.770508 0.749023
+29 8 24 1 0.77832 0.806152
+29 8 25 1 0.783691 0.858887
+29 8 26 1 0.784668 0.90625
+29 8 27 1 0.778809 0.947754
+29 8 28 0.994141 0.764648 0.983887
+29 8 29 0.96875 0.745605 1
+29 8 30 0.938477 0.722168 1
+29 8 31 0.90332 0.695801 1
+29 9 0 0.973633 0.719727 0
+29 9 1 0.973633 0.719727 0
+29 9 2 0.973633 0.719727 0
+29 9 3 0.973633 0.719727 0
+29 9 4 0.973633 0.719727 0
+29 9 5 0.973633 0.719727 0
+29 9 6 0.973633 0.719727 0
+29 9 7 0.973633 0.719727 0
+29 9 8 0.973633 0.719727 0
+29 9 9 0.973633 0.719727 0
+29 9 10 0.973633 0.719727 0
+29 9 11 0.973633 0.719727 0
+29 9 12 0.973633 0.720215 0
+29 9 13 0.973633 0.720215 0
+29 9 14 0.974121 0.720703 0
+29 9 15 0.974121 0.72168 0
+29 9 16 0.974121 0.72168 0
+29 9 17 0.976562 0.723633 0.174805
+29 9 18 0.987793 0.730957 0.331543
+29 9 19 1 0.739746 0.438477
+29 9 20 1 0.74707 0.527344
+29 9 21 1 0.753906 0.60791
+29 9 22 1 0.762207 0.683105
+29 9 23 1 0.770508 0.749023
+29 9 24 1 0.77832 0.806152
+29 9 25 1 0.78418 0.858887
+29 9 26 1 0.785156 0.90625
+29 9 27 1 0.778809 0.947754
+29 9 28 0.994141 0.765137 0.983887
+29 9 29 0.96875 0.745605 1
+29 9 30 0.938477 0.722656 1
+29 9 31 0.90332 0.695801 1
+29 10 0 0.973633 0.720215 0
+29 10 1 0.973633 0.720215 0
+29 10 2 0.973633 0.720215 0
+29 10 3 0.973633 0.720215 0
+29 10 4 0.973633 0.720215 0
+29 10 5 0.973633 0.720215 0
+29 10 6 0.973633 0.720215 0
+29 10 7 0.973633 0.720215 0
+29 10 8 0.973633 0.720703 0
+29 10 9 0.973633 0.720703 0
+29 10 10 0.973633 0.720703 0
+29 10 11 0.973633 0.720703 0
+29 10 12 0.974121 0.720703 0
+29 10 13 0.974121 0.721191 0
+29 10 14 0.974121 0.72168 0
+29 10 15 0.974609 0.722168 0
+29 10 16 0.974121 0.722168 0
+29 10 17 0.977051 0.724609 0.175171
+29 10 18 0.988281 0.731934 0.331543
+29 10 19 1 0.740234 0.438477
+29 10 20 1 0.747559 0.527344
+29 10 21 1 0.754395 0.60791
+29 10 22 1 0.762695 0.683105
+29 10 23 1 0.770996 0.749023
+29 10 24 1 0.778809 0.806152
+29 10 25 1 0.784668 0.858887
+29 10 26 1 0.785645 0.90625
+29 10 27 1 0.779297 0.947754
+29 10 28 0.994141 0.765625 0.983887
+29 10 29 0.96875 0.746094 1
+29 10 30 0.938477 0.723145 1
+29 10 31 0.903809 0.696289 1
+29 11 0 0.974121 0.72168 0
+29 11 1 0.974121 0.72168 0
+29 11 2 0.974121 0.72168 0
+29 11 3 0.974121 0.72168 0
+29 11 4 0.974121 0.72168 0
+29 11 5 0.974121 0.72168 0
+29 11 6 0.974121 0.72168 0
+29 11 7 0.974121 0.72168 0
+29 11 8 0.974121 0.72168 0
+29 11 9 0.974121 0.72168 0
+29 11 10 0.974121 0.72168 0
+29 11 11 0.974121 0.72168 0
+29 11 12 0.974121 0.722168 0
+29 11 13 0.974609 0.722168 0
+29 11 14 0.974609 0.722656 0
+29 11 15 0.975098 0.723633 0
+29 11 16 0.974609 0.723633 0
+29 11 17 0.977539 0.725586 0.175659
+29 11 18 0.98877 0.73291 0.331543
+29 11 19 1 0.741211 0.438477
+29 11 20 1 0.748535 0.527344
+29 11 21 1 0.755371 0.60791
+29 11 22 1 0.763672 0.683105
+29 11 23 1 0.771973 0.749023
+29 11 24 1 0.779785 0.806152
+29 11 25 1 0.785156 0.859375
+29 11 26 1 0.786133 0.90625
+29 11 27 1 0.779785 0.947754
+29 11 28 0.994141 0.766113 0.984375
+29 11 29 0.96875 0.746582 1
+29 11 30 0.938477 0.723633 1
+29 11 31 0.903809 0.696777 1
+29 12 0 0.975098 0.723633 0
+29 12 1 0.975098 0.723633 0
+29 12 2 0.975098 0.723633 0
+29 12 3 0.975098 0.723633 0
+29 12 4 0.975098 0.723633 0
+29 12 5 0.975098 0.723633 0
+29 12 6 0.975098 0.723633 0
+29 12 7 0.975098 0.723633 0
+29 12 8 0.975098 0.723633 0
+29 12 9 0.975098 0.723633 0
+29 12 10 0.975098 0.723633 0
+29 12 11 0.975098 0.724121 0
+29 12 12 0.975098 0.724121 0
+29 12 13 0.975098 0.724609 0
+29 12 14 0.975098 0.724609 0
+29 12 15 0.975586 0.725586 0
+29 12 16 0.975098 0.725586 0
+29 12 17 0.978027 0.727539 0.176636
+29 12 18 0.989258 0.734863 0.331787
+29 12 19 1 0.743164 0.438477
+29 12 20 1 0.750488 0.527344
+29 12 21 1 0.757324 0.60791
+29 12 22 1 0.765137 0.682617
+29 12 23 1 0.773438 0.749023
+29 12 24 1 0.780762 0.806152
+29 12 25 1 0.786621 0.859375
+29 12 26 1 0.787598 0.906738
+29 12 27 1 0.78125 0.947754
+29 12 28 0.994141 0.76709 0.984375
+29 12 29 0.96875 0.748047 1
+29 12 30 0.938477 0.724609 1
+29 12 31 0.903809 0.697754 1
+29 13 0 0.976074 0.727051 0
+29 13 1 0.976074 0.727051 0
+29 13 2 0.976074 0.727051 0
+29 13 3 0.976074 0.727051 0
+29 13 4 0.976074 0.727051 0
+29 13 5 0.976074 0.727051 0
+29 13 6 0.976074 0.727051 0
+29 13 7 0.976074 0.727051 0
+29 13 8 0.976074 0.727051 0
+29 13 9 0.976074 0.727051 0
+29 13 10 0.976074 0.727051 0
+29 13 11 0.976074 0.727051 0
+29 13 12 0.976074 0.727539 0
+29 13 13 0.976074 0.727539 0
+29 13 14 0.976562 0.728027 0
+29 13 15 0.976562 0.729004 0
+29 13 16 0.976562 0.729004 0
+29 13 17 0.979004 0.730957 0.178345
+29 13 18 0.990234 0.737793 0.332275
+29 13 19 1 0.746094 0.438477
+29 13 20 1 0.753906 0.527832
+29 13 21 1 0.759766 0.60791
+29 13 22 1 0.767578 0.682617
+29 13 23 1 0.775879 0.749023
+29 13 24 1 0.783203 0.806152
+29 13 25 1 0.788574 0.859375
+29 13 26 1 0.789551 0.906738
+29 13 27 1 0.783203 0.948242
+29 13 28 0.994629 0.769043 0.984375
+29 13 29 0.969238 0.749512 1
+29 13 30 0.938965 0.726562 1
+29 13 31 0.904297 0.699707 1
+29 14 0 0.977539 0.732422 0
+29 14 1 0.977539 0.732422 0
+29 14 2 0.977539 0.732422 0
+29 14 3 0.977539 0.732422 0
+29 14 4 0.977539 0.732422 0
+29 14 5 0.977539 0.732422 0
+29 14 6 0.977539 0.732422 0
+29 14 7 0.977539 0.732422 0
+29 14 8 0.978027 0.732422 0
+29 14 9 0.978027 0.732422 0
+29 14 10 0.978027 0.732422 0
+29 14 11 0.978027 0.732422 0
+29 14 12 0.978027 0.73291 0
+29 14 13 0.978027 0.73291 0
+29 14 14 0.978027 0.733398 0
+29 14 15 0.978516 0.733887 0
+29 14 16 0.978027 0.734375 0
+29 14 17 0.980957 0.736328 0.181274
+29 14 18 0.991699 0.743164 0.333008
+29 14 19 1 0.750488 0.438477
+29 14 20 1 0.758301 0.52832
+29 14 21 1 0.76416 0.60791
+29 14 22 1 0.771484 0.682617
+29 14 23 1 0.779297 0.749023
+29 14 24 1 0.786621 0.806152
+29 14 25 1 0.791504 0.859375
+29 14 26 1 0.79248 0.906738
+29 14 27 1 0.786133 0.948242
+29 14 28 0.995117 0.771973 0.984375
+29 14 29 0.969727 0.752441 1
+29 14 30 0.939453 0.729004 1
+29 14 31 0.904297 0.702148 1
+29 15 0 0.980469 0.740234 0
+29 15 1 0.980469 0.740234 0
+29 15 2 0.980469 0.740234 0
+29 15 3 0.980469 0.740234 0
+29 15 4 0.980469 0.740234 0
+29 15 5 0.980469 0.740234 0
+29 15 6 0.980469 0.740234 0
+29 15 7 0.980469 0.740234 0
+29 15 8 0.980469 0.740234 0
+29 15 9 0.980469 0.740234 0
+29 15 10 0.980469 0.740234 0
+29 15 11 0.980469 0.740723 0
+29 15 12 0.980469 0.740723 0
+29 15 13 0.980469 0.740723 0
+29 15 14 0.980957 0.741211 0
+29 15 15 0.980957 0.742188 0
+29 15 16 0.980469 0.742188 0
+29 15 17 0.983398 0.744141 0.186401
+29 15 18 0.993652 0.750488 0.334473
+29 15 19 1 0.757812 0.438965
+29 15 20 1 0.765625 0.529297
+29 15 21 1 0.770996 0.60791
+29 15 22 1 0.777344 0.682129
+29 15 23 1 0.784668 0.748535
+29 15 24 1 0.791504 0.806152
+29 15 25 1 0.796387 0.859375
+29 15 26 1 0.797363 0.907227
+29 15 27 1 0.791016 0.94873
+29 15 28 0.995605 0.776855 0.984863
+29 15 29 0.970215 0.756836 1
+29 15 30 0.939941 0.733398 1
+29 15 31 0.905273 0.706055 1
+29 16 0 0.983887 0.751953 0
+29 16 1 0.983887 0.751953 0
+29 16 2 0.983887 0.751953 0
+29 16 3 0.983887 0.751953 0
+29 16 4 0.983887 0.751953 0
+29 16 5 0.983887 0.751953 0
+29 16 6 0.983887 0.751953 0
+29 16 7 0.983887 0.751953 0
+29 16 8 0.983887 0.751953 0
+29 16 9 0.983887 0.751953 0
+29 16 10 0.983887 0.751953 0
+29 16 11 0.983887 0.751953 0
+29 16 12 0.983887 0.751953 0
+29 16 13 0.983887 0.752441 0
+29 16 14 0.984375 0.75293 0
+29 16 15 0.984375 0.753418 0
+29 16 16 0.983887 0.753418 0
+29 16 17 0.987305 0.755371 0.19519
+29 16 18 0.99707 0.76123 0.337158
+29 16 19 1 0.768066 0.439697
+29 16 20 1 0.775391 0.529297
+29 16 21 1 0.780762 0.608398
+29 16 22 1 0.786133 0.682129
+29 16 23 1 0.79248 0.748047
+29 16 24 1 0.798828 0.805664
+29 16 25 1 0.803711 0.859375
+29 16 26 1 0.804199 0.907227
+29 16 27 1 0.797852 0.94873
+29 16 28 0.996582 0.783203 0.985352
+29 16 29 0.971191 0.763184 1
+29 16 30 0.940918 0.739746 1
+29 16 31 0.905762 0.711914 1
+29 17 0 0.988281 0.76709 0
+29 17 1 0.988281 0.76709 0
+29 17 2 0.988281 0.76709 0
+29 17 3 0.988281 0.76709 0
+29 17 4 0.988281 0.76709 0
+29 17 5 0.988281 0.76709 0
+29 17 6 0.988281 0.76709 0
+29 17 7 0.988281 0.76709 0
+29 17 8 0.988281 0.76709 0
+29 17 9 0.988281 0.76709 0
+29 17 10 0.988281 0.76709 0
+29 17 11 0.988281 0.76709 0
+29 17 12 0.988281 0.76709 0
+29 17 13 0.98877 0.767578 0
+29 17 14 0.98877 0.768066 0
+29 17 15 0.98877 0.768555 0
+29 17 16 0.98877 0.768555 0
+29 17 17 0.992188 0.770508 0.208984
+29 17 18 1 0.776367 0.342041
+29 17 19 1 0.782227 0.44165
+29 17 20 1 0.788574 0.529297
+29 17 21 1 0.793945 0.609375
+29 17 22 1 0.79834 0.681641
+29 17 23 1 0.803223 0.74707
+29 17 24 1 0.808594 0.805176
+29 17 25 1 0.812988 0.859375
+29 17 26 1 0.813477 0.907227
+29 17 27 1 0.806641 0.949219
+29 17 28 0.997559 0.79248 0.98584
+29 17 29 0.972168 0.771973 1
+29 17 30 0.941895 0.748047 1
+29 17 31 0.907227 0.719727 1
+29 18 0 0.993652 0.785645 0
+29 18 1 0.993652 0.785645 0
+29 18 2 0.993652 0.785645 0
+29 18 3 0.993652 0.785645 0
+29 18 4 0.993652 0.785645 0
+29 18 5 0.993652 0.785645 0
+29 18 6 0.993652 0.785645 0
+29 18 7 0.993652 0.785645 0
+29 18 8 0.993652 0.785645 0
+29 18 9 0.993652 0.785645 0
+29 18 10 0.993652 0.785645 0
+29 18 11 0.993652 0.786133 0
+29 18 12 0.993652 0.786133 0
+29 18 13 0.993652 0.786133 0
+29 18 14 0.993652 0.786621 0
+29 18 15 0.993652 0.787109 0
+29 18 16 0.993652 0.787109 0
+29 18 17 0.998047 0.790039 0.229004
+29 18 18 1 0.794922 0.350342
+29 18 19 1 0.799805 0.445312
+29 18 20 1 0.805176 0.529785
+29 18 21 1 0.810547 0.609863
+29 18 22 1 0.813477 0.681152
+29 18 23 1 0.817383 0.746094
+29 18 24 1 0.821289 0.804199
+29 18 25 1 0.824707 0.858398
+29 18 26 1 0.824707 0.907227
+29 18 27 1 0.818359 0.949707
+29 18 28 0.998535 0.803711 0.98584
+29 18 29 0.973633 0.783203 1
+29 18 30 0.943359 0.758301 1
+29 18 31 0.908203 0.72998 1
+29 19 0 0.998535 0.807129 0
+29 19 1 0.998535 0.807129 0
+29 19 2 0.998535 0.807129 0
+29 19 3 0.998535 0.807129 0
+29 19 4 0.998535 0.807129 0
+29 19 5 0.998535 0.807129 0
+29 19 6 0.998535 0.807129 0
+29 19 7 0.998535 0.807129 0
+29 19 8 0.998535 0.807129 0
+29 19 9 0.998535 0.807129 0
+29 19 10 0.998535 0.807129 0
+29 19 11 0.998535 0.807129 0
+29 19 12 0.998535 0.807617 0
+29 19 13 0.998535 0.807617 0
+29 19 14 0.999023 0.808105 0
+29 19 15 0.999023 0.808594 0
+29 19 16 0.998535 0.808594 0
+29 19 17 1 0.812012 0.254639
+29 19 18 1 0.816895 0.362549
+29 19 19 1 0.821289 0.451904
+29 19 20 1 0.825195 0.532715
+29 19 21 1 0.828613 0.609375
+29 19 22 1 0.832031 0.681152
+29 19 23 1 0.833496 0.744629
+29 19 24 1 0.836426 0.802246
+29 19 25 1 0.838867 0.857422
+29 19 26 1 0.838379 0.906738
+29 19 27 1 0.831543 0.949219
+29 19 28 1 0.816895 0.98584
+29 19 29 0.974609 0.795898 1
+29 19 30 0.944824 0.770996 1
+29 19 31 0.909668 0.741699 1
+29 20 0 1 0.830078 0
+29 20 1 1 0.830078 0
+29 20 2 1 0.830078 0
+29 20 3 1 0.830078 0
+29 20 4 1 0.830078 0
+29 20 5 1 0.830078 0
+29 20 6 1 0.830078 0
+29 20 7 1 0.830078 0
+29 20 8 1 0.830078 0
+29 20 9 1 0.830078 0
+29 20 10 1 0.830078 0
+29 20 11 1 0.830078 0
+29 20 12 1 0.830078 0
+29 20 13 1 0.830566 0
+29 20 14 1 0.830566 0
+29 20 15 1 0.831055 0
+29 20 16 1 0.832031 0.145508
+29 20 17 1 0.835938 0.28418
+29 20 18 1 0.840332 0.378906
+29 20 19 1 0.844238 0.46167
+29 20 20 1 0.847168 0.537598
+29 20 21 1 0.849609 0.61084
+29 20 22 1 0.852051 0.680664
+29 20 23 1 0.852539 0.743164
+29 20 24 1 0.853027 0.799805
+29 20 25 1 0.854492 0.855469
+29 20 26 1 0.853516 0.905762
+29 20 27 1 0.846191 0.94873
+29 20 28 1 0.831543 0.98584
+29 20 29 0.975586 0.810547 1
+29 20 30 0.945801 0.784668 1
+29 20 31 0.911133 0.754883 1
+29 21 0 1 0.854492 0.147583
+29 21 1 1 0.854492 0.147583
+29 21 2 1 0.854492 0.147583
+29 21 3 1 0.854492 0.147583
+29 21 4 1 0.854492 0.147583
+29 21 5 1 0.854492 0.147583
+29 21 6 1 0.854492 0.147583
+29 21 7 1 0.854492 0.147583
+29 21 8 1 0.854492 0.147705
+29 21 9 1 0.854492 0.147705
+29 21 10 1 0.854492 0.147949
+29 21 11 1 0.854492 0.148193
+29 21 12 1 0.854492 0.148682
+29 21 13 1 0.85498 0.149414
+29 21 14 1 0.85498 0.150635
+29 21 15 1 0.855469 0.152466
+29 21 16 1 0.857422 0.216797
+29 21 17 1 0.861328 0.315674
+29 21 18 1 0.865234 0.398682
+29 21 19 1 0.868652 0.474609
+29 21 20 1 0.871094 0.545898
+29 21 21 1 0.872559 0.614258
+29 21 22 1 0.873047 0.680176
+29 21 23 1 0.873535 0.742188
+29 21 24 1 0.87207 0.796875
+29 21 25 1 0.871094 0.852539
+29 21 26 1 0.869141 0.903809
+29 21 27 1 0.862305 0.947266
+29 21 28 1 0.847656 0.984863
+29 21 29 0.976562 0.826172 1
+29 21 30 0.947266 0.800293 1
+29 21 31 0.912598 0.77002 1
+29 22 0 1 0.879883 0.234497
+29 22 1 1 0.879883 0.234497
+29 22 2 1 0.879883 0.234497
+29 22 3 1 0.879883 0.234497
+29 22 4 1 0.879883 0.234497
+29 22 5 1 0.879883 0.234497
+29 22 6 1 0.879883 0.234497
+29 22 7 1 0.879883 0.234497
+29 22 8 1 0.879883 0.234619
+29 22 9 1 0.879883 0.234619
+29 22 10 1 0.879883 0.234619
+29 22 11 1 0.879883 0.234863
+29 22 12 1 0.879883 0.234985
+29 22 13 1 0.879883 0.235352
+29 22 14 1 0.880371 0.235962
+29 22 15 1 0.880371 0.236816
+29 22 16 1 0.882324 0.267822
+29 22 17 1 0.885742 0.346191
+29 22 18 1 0.889648 0.419678
+29 22 19 1 0.893066 0.489746
+29 22 20 1 0.895508 0.556152
+29 22 21 1 0.896484 0.620117
+29 22 22 1 0.895996 0.682129
+29 22 23 1 0.894531 0.740234
+29 22 24 1 0.892578 0.794434
+29 22 25 1 0.88916 0.848145
+29 22 26 1 0.885742 0.900391
+29 22 27 1 0.878418 0.945312
+29 22 28 1 0.86377 0.983398
+29 22 29 0.977051 0.842285 1
+29 22 30 0.947754 0.816406 1
+29 22 31 0.913574 0.785156 1
+29 23 0 1 0.902832 0.288086
+29 23 1 1 0.902832 0.288086
+29 23 2 1 0.902832 0.288086
+29 23 3 1 0.902832 0.288086
+29 23 4 1 0.902832 0.288086
+29 23 5 1 0.902832 0.288086
+29 23 6 1 0.902832 0.288086
+29 23 7 1 0.902832 0.288086
+29 23 8 1 0.902832 0.288086
+29 23 9 1 0.902832 0.288086
+29 23 10 1 0.902832 0.288086
+29 23 11 1 0.902832 0.288086
+29 23 12 1 0.902832 0.28833
+29 23 13 1 0.902832 0.288574
+29 23 14 1 0.90332 0.288818
+29 23 15 1 0.90332 0.289551
+29 23 16 1 0.904785 0.306396
+29 23 17 1 0.908203 0.373047
+29 23 18 1 0.912109 0.439453
+29 23 19 1 0.915527 0.504395
+29 23 20 1 0.917969 0.566895
+29 23 21 1 0.918945 0.627441
+29 23 22 1 0.917969 0.685547
+29 23 23 1 0.915527 0.739746
+29 23 24 1 0.912109 0.791504
+29 23 25 1 0.907715 0.844238
+29 23 26 1 0.902344 0.895996
+29 23 27 1 0.894531 0.942383
+29 23 28 1 0.880371 0.980957
+29 23 29 0.976562 0.858887 1
+29 23 30 0.948242 0.83252 1
+29 23 31 0.914062 0.800781 1
+29 24 0 1 0.92334 0.32666
+29 24 1 1 0.92334 0.32666
+29 24 2 1 0.92334 0.32666
+29 24 3 1 0.92334 0.32666
+29 24 4 1 0.92334 0.32666
+29 24 5 1 0.92334 0.32666
+29 24 6 1 0.92334 0.32666
+29 24 7 1 0.92334 0.32666
+29 24 8 1 0.92334 0.32666
+29 24 9 1 0.92334 0.32666
+29 24 10 1 0.92334 0.32666
+29 24 11 1 0.92334 0.32666
+29 24 12 1 0.923828 0.326904
+29 24 13 1 0.923828 0.326904
+29 24 14 1 0.923828 0.327148
+29 24 15 1 0.924316 0.327637
+29 24 16 1 0.924805 0.335693
+29 24 17 1 0.928223 0.39502
+29 24 18 1 0.932617 0.456299
+29 24 19 1 0.936035 0.517578
+29 24 20 1 0.938477 0.577148
+29 24 21 1 0.939941 0.635254
+29 24 22 1 0.938965 0.69043
+29 24 23 1 0.936035 0.741211
+29 24 24 1 0.932129 0.789062
+29 24 25 1 0.92627 0.839844
+29 24 26 1 0.918945 0.890625
+29 24 27 1 0.910156 0.937988
+29 24 28 0.998535 0.895996 0.977539
+29 24 29 0.976074 0.875 1
+29 24 30 0.947754 0.848145 1
+29 24 31 0.914062 0.816406 1
+29 25 0 1 0.943848 0.357422
+29 25 1 1 0.943848 0.357422
+29 25 2 1 0.943848 0.357422
+29 25 3 1 0.943848 0.357422
+29 25 4 1 0.943848 0.357422
+29 25 5 1 0.943848 0.357422
+29 25 6 1 0.943848 0.357422
+29 25 7 1 0.943848 0.357666
+29 25 8 1 0.943848 0.357666
+29 25 9 1 0.943848 0.357666
+29 25 10 1 0.943848 0.357666
+29 25 11 1 0.943848 0.357666
+29 25 12 1 0.943848 0.357666
+29 25 13 1 0.943848 0.357666
+29 25 14 1 0.943848 0.35791
+29 25 15 1 0.944336 0.358154
+29 25 16 1 0.944336 0.358887
+29 25 17 1 0.948242 0.412842
+29 25 18 1 0.95166 0.470215
+29 25 19 1 0.955566 0.528809
+29 25 20 1 0.958496 0.585938
+29 25 21 1 0.959961 0.641602
+29 25 22 1 0.959473 0.694824
+29 25 23 1 0.957031 0.743652
+29 25 24 1 0.952637 0.788574
+29 25 25 1 0.945801 0.835449
+29 25 26 1 0.937012 0.884277
+29 25 27 1 0.926758 0.932129
+29 25 28 0.995605 0.913086 0.972656
+29 25 29 0.974121 0.89209 1
+29 25 30 0.946777 0.865723 1
+29 25 31 0.914062 0.833496 1
+29 26 0 1 0.963379 0.380615
+29 26 1 1 0.963379 0.380615
+29 26 2 1 0.963379 0.380615
+29 26 3 1 0.963379 0.380615
+29 26 4 1 0.963379 0.380615
+29 26 5 1 0.963379 0.380615
+29 26 6 1 0.963379 0.380615
+29 26 7 1 0.963379 0.380615
+29 26 8 1 0.963379 0.380615
+29 26 9 1 0.963379 0.380615
+29 26 10 1 0.963379 0.380615
+29 26 11 1 0.963379 0.380615
+29 26 12 1 0.963379 0.380859
+29 26 13 1 0.963379 0.380859
+29 26 14 1 0.963379 0.380859
+29 26 15 1 0.963379 0.381104
+29 26 16 1 0.963867 0.381348
+29 26 17 1 0.966797 0.425293
+29 26 18 1 0.970215 0.479736
+29 26 19 1 0.974121 0.535645
+29 26 20 1 0.977051 0.59082
+29 26 21 1 0.978516 0.645508
+29 26 22 1 0.978516 0.697266
+29 26 23 1 0.977051 0.744629
+29 26 24 1 0.973145 0.788574
+29 26 25 1 0.966309 0.83252
+29 26 26 1 0.956543 0.877441
+29 26 27 1 0.944336 0.923828
+29 26 28 0.991211 0.930664 0.966309
+29 26 29 0.971191 0.910645 1
+29 26 30 0.944824 0.883789 1
+29 26 31 0.912598 0.851562 1
+29 27 0 1 0.980957 0.395508
+29 27 1 1 0.980957 0.395508
+29 27 2 1 0.980957 0.395508
+29 27 3 1 0.980957 0.395508
+29 27 4 1 0.980957 0.395508
+29 27 5 1 0.980957 0.395508
+29 27 6 1 0.980957 0.395508
+29 27 7 1 0.980957 0.395508
+29 27 8 1 0.980957 0.395508
+29 27 9 1 0.980957 0.395508
+29 27 10 1 0.980957 0.395508
+29 27 11 1 0.980957 0.395508
+29 27 12 1 0.980957 0.395752
+29 27 13 1 0.980957 0.395752
+29 27 14 1 0.981445 0.395752
+29 27 15 1 0.981445 0.395752
+29 27 16 1 0.981445 0.395752
+29 27 17 1 0.983887 0.43042
+29 27 18 1 0.987793 0.482666
+29 27 19 1 0.991211 0.537109
+29 27 20 1 0.994141 0.59082
+29 27 21 1 0.996094 0.644043
+29 27 22 1 0.996094 0.695312
+29 27 23 1 0.994629 0.742188
+29 27 24 1 0.991699 0.785156
+29 27 25 1 0.98584 0.828125
+29 27 26 1 0.976562 0.871094
+29 27 27 0.998535 0.963867 0.914062
+29 27 28 0.984863 0.94873 0.95752
+29 27 29 0.966309 0.929688 0.994629
+29 27 30 0.941406 0.90332 1
+29 27 31 0.910156 0.870605 1
+29 28 0 0.993164 0.996582 0.403076
+29 28 1 0.993164 0.996582 0.403076
+29 28 2 0.993164 0.996582 0.403076
+29 28 3 0.993164 0.996582 0.403076
+29 28 4 0.993164 0.996582 0.403076
+29 28 5 0.993164 0.996582 0.403076
+29 28 6 0.993164 0.996582 0.403076
+29 28 7 0.993164 0.996582 0.403076
+29 28 8 0.993164 0.996582 0.403076
+29 28 9 0.993164 0.996582 0.403076
+29 28 10 0.993164 0.996582 0.403076
+29 28 11 0.993164 0.996582 0.403076
+29 28 12 0.993164 0.996582 0.403076
+29 28 13 0.993164 0.996582 0.403076
+29 28 14 0.993164 0.996582 0.403076
+29 28 15 0.992676 0.99707 0.403076
+29 28 16 0.992676 0.99707 0.403076
+29 28 17 0.994629 0.998535 0.428223
+29 28 18 0.999023 1 0.47876
+29 28 19 1 1 0.531738
+29 28 20 1 1 0.584473
+29 28 21 1 1 0.636719
+29 28 22 1 1 0.687012
+29 28 23 1 1 0.733887
+29 28 24 1 1 0.776855
+29 28 25 1 1 0.819824
+29 28 26 1 0.995117 0.863281
+29 28 27 0.989746 0.983398 0.905273
+29 28 28 0.976074 0.967285 0.945312
+29 28 29 0.959473 0.94873 0.984375
+29 28 30 0.935547 0.922852 1
+29 28 31 0.90625 0.890625 1
+29 29 0 0.975098 1 0.405273
+29 29 1 0.975098 1 0.405273
+29 29 2 0.975098 1 0.405273
+29 29 3 0.975098 1 0.405273
+29 29 4 0.975098 1 0.405273
+29 29 5 0.975098 1 0.405273
+29 29 6 0.975098 1 0.405273
+29 29 7 0.975098 1 0.405273
+29 29 8 0.975098 1 0.405273
+29 29 9 0.975098 1 0.405273
+29 29 10 0.975098 1 0.405273
+29 29 11 0.975098 1 0.405273
+29 29 12 0.975098 1 0.405273
+29 29 13 0.975098 1 0.405273
+29 29 14 0.974609 1 0.405273
+29 29 15 0.974609 1 0.405273
+29 29 16 0.974609 1 0.405273
+29 29 17 0.975586 1 0.420654
+29 29 18 0.97998 1 0.469727
+29 29 19 0.983887 1 0.520996
+29 29 20 0.987793 1 0.572266
+29 29 21 0.991211 1 0.623535
+29 29 22 0.993164 1 0.672852
+29 29 23 0.994141 1 0.71875
+29 29 24 0.993652 1 0.761719
+29 29 25 0.991211 1 0.805176
+29 29 26 0.986328 1 0.848633
+29 29 27 0.978027 1 0.891602
+29 29 28 0.966309 0.986816 0.933105
+29 29 29 0.950195 0.967773 0.971191
+29 29 30 0.927734 0.942871 1
+29 29 31 0.901855 0.913086 1
+29 30 0 0.952148 1 0.405273
+29 30 1 0.952148 1 0.405273
+29 30 2 0.952148 1 0.405273
+29 30 3 0.952148 1 0.405273
+29 30 4 0.952148 1 0.405273
+29 30 5 0.952148 1 0.405273
+29 30 6 0.952148 1 0.405273
+29 30 7 0.952148 1 0.405273
+29 30 8 0.952148 1 0.405273
+29 30 9 0.952148 1 0.405273
+29 30 10 0.952148 1 0.405273
+29 30 11 0.952148 1 0.405273
+29 30 12 0.952148 1 0.405273
+29 30 13 0.952148 1 0.405273
+29 30 14 0.95166 1 0.405273
+29 30 15 0.95166 1 0.405273
+29 30 16 0.95166 1 0.405273
+29 30 17 0.952148 1 0.4104
+29 30 18 0.955566 1 0.45752
+29 30 19 0.959961 1 0.507324
+29 30 20 0.963867 1 0.556641
+29 30 21 0.967285 1 0.606445
+29 30 22 0.969727 1 0.654785
+29 30 23 0.971191 1 0.699707
+29 30 24 0.97168 1 0.741699
+29 30 25 0.970215 1 0.784668
+29 30 26 0.966797 1 0.828613
+29 30 27 0.960449 1 0.87207
+29 30 28 0.950684 1 0.914062
+29 30 29 0.9375 0.98584 0.954102
+29 30 30 0.920898 0.965332 0.991699
+29 30 31 0.897949 0.937988 1
+29 31 0 0.924805 1 0.404053
+29 31 1 0.924805 1 0.404053
+29 31 2 0.924805 1 0.404053
+29 31 3 0.924805 1 0.404053
+29 31 4 0.924805 1 0.404053
+29 31 5 0.924805 1 0.404053
+29 31 6 0.924805 1 0.404053
+29 31 7 0.924805 1 0.404053
+29 31 8 0.924805 1 0.404053
+29 31 9 0.924805 1 0.404053
+29 31 10 0.924805 1 0.404053
+29 31 11 0.924805 1 0.404053
+29 31 12 0.924805 1 0.404053
+29 31 13 0.924805 1 0.404053
+29 31 14 0.924805 1 0.404053
+29 31 15 0.924805 1 0.404053
+29 31 16 0.924316 1 0.404053
+29 31 17 0.924316 1 0.404053
+29 31 18 0.927734 1 0.443359
+29 31 19 0.931641 1 0.490967
+29 31 20 0.935547 1 0.538574
+29 31 21 0.938965 1 0.586426
+29 31 22 0.941895 1 0.633301
+29 31 23 0.943848 1 0.677246
+29 31 24 0.944824 1 0.718262
+29 31 25 0.944824 1 0.760742
+29 31 26 0.942871 1 0.804199
+29 31 27 0.938477 1 0.847656
+29 31 28 0.931641 1 0.891113
+29 31 29 0.921387 1 0.933105
+29 31 30 0.907715 0.983887 0.972656
+29 31 31 0.88916 0.960449 1
+30 0 0 0.981445 0.724609 0
+30 0 1 0.981445 0.724609 0
+30 0 2 0.981445 0.724609 0
+30 0 3 0.981445 0.724609 0
+30 0 4 0.981445 0.724609 0
+30 0 5 0.981445 0.724609 0
+30 0 6 0.981445 0.724609 0
+30 0 7 0.981445 0.724609 0
+30 0 8 0.981445 0.724609 0
+30 0 9 0.981445 0.724609 0
+30 0 10 0.981445 0.724609 0
+30 0 11 0.981445 0.724609 0
+30 0 12 0.981445 0.725098 0
+30 0 13 0.981445 0.725098 0
+30 0 14 0.981445 0.725586 0
+30 0 15 0.981934 0.726074 0
+30 0 16 0.981934 0.726562 0
+30 0 17 0.981934 0.727051 0
+30 0 18 0.991211 0.733398 0.269775
+30 0 19 1 0.741699 0.385742
+30 0 20 1 0.750977 0.479248
+30 0 21 1 0.757324 0.558594
+30 0 22 1 0.764648 0.632812
+30 0 23 1 0.771484 0.699219
+30 0 24 1 0.77832 0.757812
+30 0 25 1 0.784668 0.813965
+30 0 26 1 0.788574 0.865723
+30 0 27 1 0.789062 0.912109
+30 0 28 1 0.782715 0.952637
+30 0 29 0.998535 0.768066 0.98877
+30 0 30 0.972656 0.748535 1
+30 0 31 0.941895 0.725098 1
+30 1 0 0.981445 0.724609 0
+30 1 1 0.981445 0.724609 0
+30 1 2 0.981445 0.724609 0
+30 1 3 0.981445 0.724609 0
+30 1 4 0.981445 0.724609 0
+30 1 5 0.981445 0.724609 0
+30 1 6 0.981445 0.724609 0
+30 1 7 0.981445 0.724609 0
+30 1 8 0.981445 0.724609 0
+30 1 9 0.981445 0.724609 0
+30 1 10 0.981445 0.724609 0
+30 1 11 0.981445 0.724609 0
+30 1 12 0.981445 0.725098 0
+30 1 13 0.981445 0.725098 0
+30 1 14 0.981445 0.725586 0
+30 1 15 0.981934 0.726074 0
+30 1 16 0.981934 0.726562 0
+30 1 17 0.981934 0.727051 0
+30 1 18 0.991211 0.733398 0.269775
+30 1 19 1 0.741699 0.385742
+30 1 20 1 0.750977 0.479248
+30 1 21 1 0.757324 0.558594
+30 1 22 1 0.764648 0.632812
+30 1 23 1 0.771484 0.699219
+30 1 24 1 0.77832 0.757812
+30 1 25 1 0.784668 0.813965
+30 1 26 1 0.788574 0.865723
+30 1 27 1 0.789062 0.912109
+30 1 28 1 0.782715 0.952637
+30 1 29 0.998535 0.768066 0.98877
+30 1 30 0.972656 0.748535 1
+30 1 31 0.941895 0.725098 1
+30 2 0 0.981445 0.724609 0
+30 2 1 0.981445 0.724609 0
+30 2 2 0.981445 0.724609 0
+30 2 3 0.981445 0.724609 0
+30 2 4 0.981445 0.724609 0
+30 2 5 0.981445 0.724609 0
+30 2 6 0.981445 0.724609 0
+30 2 7 0.981445 0.724609 0
+30 2 8 0.981445 0.724609 0
+30 2 9 0.981445 0.724609 0
+30 2 10 0.981445 0.724609 0
+30 2 11 0.981445 0.724609 0
+30 2 12 0.981445 0.725098 0
+30 2 13 0.981445 0.725098 0
+30 2 14 0.981445 0.725586 0
+30 2 15 0.981934 0.726074 0
+30 2 16 0.981934 0.726562 0
+30 2 17 0.981934 0.727051 0
+30 2 18 0.991211 0.733398 0.269775
+30 2 19 1 0.741699 0.385742
+30 2 20 1 0.750977 0.479248
+30 2 21 1 0.757324 0.558594
+30 2 22 1 0.764648 0.632812
+30 2 23 1 0.771484 0.699219
+30 2 24 1 0.77832 0.757812
+30 2 25 1 0.784668 0.813965
+30 2 26 1 0.788574 0.865723
+30 2 27 1 0.789062 0.912109
+30 2 28 1 0.782715 0.952637
+30 2 29 0.998535 0.768066 0.98877
+30 2 30 0.972656 0.748535 1
+30 2 31 0.941895 0.725098 1
+30 3 0 0.981445 0.724609 0
+30 3 1 0.981445 0.724609 0
+30 3 2 0.981445 0.724609 0
+30 3 3 0.981445 0.724609 0
+30 3 4 0.981445 0.724609 0
+30 3 5 0.981445 0.724609 0
+30 3 6 0.981445 0.724609 0
+30 3 7 0.981445 0.724609 0
+30 3 8 0.981445 0.724609 0
+30 3 9 0.981445 0.724609 0
+30 3 10 0.981445 0.724609 0
+30 3 11 0.981445 0.724609 0
+30 3 12 0.981445 0.725098 0
+30 3 13 0.981445 0.725098 0
+30 3 14 0.981445 0.725586 0
+30 3 15 0.981934 0.726074 0
+30 3 16 0.981934 0.726562 0
+30 3 17 0.981934 0.727051 0
+30 3 18 0.991211 0.733398 0.269775
+30 3 19 1 0.741699 0.385742
+30 3 20 1 0.750977 0.479248
+30 3 21 1 0.757324 0.558594
+30 3 22 1 0.764648 0.632812
+30 3 23 1 0.771484 0.699219
+30 3 24 1 0.77832 0.757812
+30 3 25 1 0.784668 0.813965
+30 3 26 1 0.788574 0.865723
+30 3 27 1 0.789062 0.912109
+30 3 28 1 0.782715 0.952637
+30 3 29 0.998535 0.768066 0.98877
+30 3 30 0.972656 0.748535 1
+30 3 31 0.941895 0.725098 1
+30 4 0 0.981445 0.724609 0
+30 4 1 0.981445 0.724609 0
+30 4 2 0.981445 0.724609 0
+30 4 3 0.981445 0.724609 0
+30 4 4 0.981445 0.724609 0
+30 4 5 0.981445 0.724609 0
+30 4 6 0.981445 0.724609 0
+30 4 7 0.981445 0.724609 0
+30 4 8 0.981445 0.724609 0
+30 4 9 0.981445 0.724609 0
+30 4 10 0.981445 0.724609 0
+30 4 11 0.981445 0.724609 0
+30 4 12 0.981445 0.725098 0
+30 4 13 0.981445 0.725098 0
+30 4 14 0.981445 0.725586 0
+30 4 15 0.981934 0.726074 0
+30 4 16 0.981934 0.726562 0
+30 4 17 0.981934 0.727051 0
+30 4 18 0.991211 0.733398 0.269775
+30 4 19 1 0.741699 0.385742
+30 4 20 1 0.750977 0.479248
+30 4 21 1 0.757324 0.558594
+30 4 22 1 0.764648 0.632812
+30 4 23 1 0.771484 0.699219
+30 4 24 1 0.77832 0.757812
+30 4 25 1 0.784668 0.813965
+30 4 26 1 0.788574 0.865723
+30 4 27 1 0.789062 0.912109
+30 4 28 1 0.782715 0.952637
+30 4 29 0.998535 0.768555 0.98877
+30 4 30 0.972656 0.748535 1
+30 4 31 0.941895 0.725098 1
+30 5 0 0.981445 0.724609 0
+30 5 1 0.981445 0.724609 0
+30 5 2 0.981445 0.724609 0
+30 5 3 0.981445 0.724609 0
+30 5 4 0.981445 0.724609 0
+30 5 5 0.981445 0.724609 0
+30 5 6 0.981445 0.724609 0
+30 5 7 0.981445 0.724609 0
+30 5 8 0.981445 0.724609 0
+30 5 9 0.981445 0.724609 0
+30 5 10 0.981445 0.724609 0
+30 5 11 0.981445 0.725098 0
+30 5 12 0.981445 0.725098 0
+30 5 13 0.981445 0.725098 0
+30 5 14 0.981445 0.725586 0
+30 5 15 0.981934 0.726074 0
+30 5 16 0.981934 0.726562 0
+30 5 17 0.981934 0.727051 0
+30 5 18 0.991211 0.733398 0.269775
+30 5 19 1 0.741699 0.385742
+30 5 20 1 0.750977 0.479248
+30 5 21 1 0.757324 0.558594
+30 5 22 1 0.764648 0.632812
+30 5 23 1 0.771484 0.699219
+30 5 24 1 0.77832 0.757812
+30 5 25 1 0.784668 0.813965
+30 5 26 1 0.788574 0.865723
+30 5 27 1 0.789062 0.912109
+30 5 28 1 0.782715 0.952637
+30 5 29 0.998535 0.768555 0.98877
+30 5 30 0.972656 0.748535 1
+30 5 31 0.941895 0.725098 1
+30 6 0 0.981445 0.724609 0
+30 6 1 0.981445 0.724609 0
+30 6 2 0.981445 0.724609 0
+30 6 3 0.981445 0.724609 0
+30 6 4 0.981445 0.724609 0
+30 6 5 0.981445 0.724609 0
+30 6 6 0.981445 0.724609 0
+30 6 7 0.981445 0.724609 0
+30 6 8 0.981445 0.724609 0
+30 6 9 0.981445 0.724609 0
+30 6 10 0.981445 0.724609 0
+30 6 11 0.981445 0.725098 0
+30 6 12 0.981445 0.725098 0
+30 6 13 0.981445 0.725098 0
+30 6 14 0.981445 0.725586 0
+30 6 15 0.981934 0.726074 0
+30 6 16 0.981934 0.726562 0
+30 6 17 0.981934 0.727051 0
+30 6 18 0.991211 0.733398 0.269775
+30 6 19 1 0.741699 0.385742
+30 6 20 1 0.750977 0.479248
+30 6 21 1 0.757324 0.558594
+30 6 22 1 0.764648 0.632812
+30 6 23 1 0.771484 0.699219
+30 6 24 1 0.77832 0.757812
+30 6 25 1 0.784668 0.813965
+30 6 26 1 0.789062 0.865723
+30 6 27 1 0.789062 0.912109
+30 6 28 1 0.782715 0.952637
+30 6 29 0.998535 0.768555 0.98877
+30 6 30 0.972656 0.748535 1
+30 6 31 0.941895 0.725098 1
+30 7 0 0.981445 0.724609 0
+30 7 1 0.981445 0.724609 0
+30 7 2 0.981445 0.724609 0
+30 7 3 0.981445 0.724609 0
+30 7 4 0.981445 0.724609 0
+30 7 5 0.981445 0.724609 0
+30 7 6 0.981445 0.724609 0
+30 7 7 0.981445 0.724609 0
+30 7 8 0.981445 0.724609 0
+30 7 9 0.981445 0.725098 0
+30 7 10 0.981445 0.725098 0
+30 7 11 0.981445 0.725098 0
+30 7 12 0.981445 0.725098 0
+30 7 13 0.981445 0.725586 0
+30 7 14 0.981445 0.725586 0
+30 7 15 0.981934 0.726562 0
+30 7 16 0.981934 0.727051 0
+30 7 17 0.981934 0.727051 0
+30 7 18 0.991211 0.733398 0.269775
+30 7 19 1 0.741699 0.385742
+30 7 20 1 0.750977 0.479248
+30 7 21 1 0.757812 0.558594
+30 7 22 1 0.764648 0.632812
+30 7 23 1 0.771484 0.699219
+30 7 24 1 0.77832 0.757812
+30 7 25 1 0.784668 0.813965
+30 7 26 1 0.789062 0.865723
+30 7 27 1 0.789062 0.912109
+30 7 28 1 0.782715 0.952637
+30 7 29 0.999023 0.768555 0.98877
+30 7 30 0.972656 0.748535 1
+30 7 31 0.941895 0.725098 1
+30 8 0 0.981445 0.725098 0
+30 8 1 0.981445 0.725098 0
+30 8 2 0.981445 0.725098 0
+30 8 3 0.981445 0.725098 0
+30 8 4 0.981445 0.725098 0
+30 8 5 0.981445 0.725098 0
+30 8 6 0.981445 0.725098 0
+30 8 7 0.981445 0.725098 0
+30 8 8 0.981445 0.725098 0
+30 8 9 0.981445 0.725098 0
+30 8 10 0.981445 0.725098 0
+30 8 11 0.981445 0.725098 0
+30 8 12 0.981445 0.725098 0
+30 8 13 0.981445 0.725586 0
+30 8 14 0.981934 0.726074 0
+30 8 15 0.981934 0.726562 0
+30 8 16 0.981934 0.727051 0
+30 8 17 0.981934 0.727539 0
+30 8 18 0.991699 0.733887 0.269775
+30 8 19 1 0.742188 0.385742
+30 8 20 1 0.750977 0.479248
+30 8 21 1 0.757812 0.558594
+30 8 22 1 0.764648 0.632812
+30 8 23 1 0.771973 0.699219
+30 8 24 1 0.77832 0.757812
+30 8 25 1 0.784668 0.813965
+30 8 26 1 0.789062 0.865723
+30 8 27 1 0.789062 0.912109
+30 8 28 1 0.782715 0.952637
+30 8 29 0.999023 0.768555 0.98877
+30 8 30 0.972656 0.748535 1
+30 8 31 0.941895 0.725098 1
+30 9 0 0.981445 0.725098 0
+30 9 1 0.981445 0.725098 0
+30 9 2 0.981445 0.725098 0
+30 9 3 0.981445 0.725098 0
+30 9 4 0.981445 0.725098 0
+30 9 5 0.981445 0.725098 0
+30 9 6 0.981445 0.725098 0
+30 9 7 0.981445 0.725098 0
+30 9 8 0.981445 0.725586 0
+30 9 9 0.981445 0.725586 0
+30 9 10 0.981445 0.725586 0
+30 9 11 0.981445 0.725586 0
+30 9 12 0.981445 0.725586 0
+30 9 13 0.981445 0.726074 0
+30 9 14 0.981934 0.726074 0
+30 9 15 0.981934 0.727051 0
+30 9 16 0.981934 0.727539 0
+30 9 17 0.981934 0.727539 0
+30 9 18 0.991699 0.733887 0.269775
+30 9 19 1 0.742188 0.385742
+30 9 20 1 0.751465 0.479248
+30 9 21 1 0.758301 0.558594
+30 9 22 1 0.765137 0.632812
+30 9 23 1 0.771973 0.699219
+30 9 24 1 0.778809 0.757812
+30 9 25 1 0.785156 0.813965
+30 9 26 1 0.789062 0.865723
+30 9 27 1 0.789062 0.912109
+30 9 28 1 0.782715 0.953125
+30 9 29 0.999023 0.768555 0.98877
+30 9 30 0.972656 0.749023 1
+30 9 31 0.941895 0.725098 1
+30 10 0 0.981445 0.726074 0
+30 10 1 0.981445 0.726074 0
+30 10 2 0.981445 0.726074 0
+30 10 3 0.981445 0.726074 0
+30 10 4 0.981445 0.726074 0
+30 10 5 0.981445 0.726074 0
+30 10 6 0.981445 0.726074 0
+30 10 7 0.981445 0.726074 0
+30 10 8 0.981445 0.726074 0
+30 10 9 0.981445 0.726074 0
+30 10 10 0.981934 0.726074 0
+30 10 11 0.981934 0.726074 0
+30 10 12 0.981934 0.726074 0
+30 10 13 0.981934 0.726562 0
+30 10 14 0.981934 0.727051 0
+30 10 15 0.982422 0.727539 0
+30 10 16 0.982422 0.728027 0
+30 10 17 0.982422 0.728516 0
+30 10 18 0.991699 0.734375 0.27002
+30 10 19 1 0.742676 0.385986
+30 10 20 1 0.751953 0.479248
+30 10 21 1 0.758789 0.558594
+30 10 22 1 0.765625 0.632812
+30 10 23 1 0.772461 0.699219
+30 10 24 1 0.779297 0.757812
+30 10 25 1 0.785156 0.813965
+30 10 26 1 0.789551 0.865723
+30 10 27 1 0.789551 0.912109
+30 10 28 1 0.783203 0.953125
+30 10 29 0.999023 0.769043 0.98877
+30 10 30 0.973145 0.749023 1
+30 10 31 0.941895 0.725586 1
+30 11 0 0.981934 0.727051 0
+30 11 1 0.981934 0.727051 0
+30 11 2 0.981934 0.727051 0
+30 11 3 0.981934 0.727051 0
+30 11 4 0.981934 0.727051 0
+30 11 5 0.981934 0.727051 0
+30 11 6 0.981934 0.727051 0
+30 11 7 0.981934 0.727051 0
+30 11 8 0.981934 0.727051 0
+30 11 9 0.981934 0.727051 0
+30 11 10 0.981934 0.727051 0
+30 11 11 0.981934 0.727051 0
+30 11 12 0.981934 0.727539 0
+30 11 13 0.982422 0.727539 0
+30 11 14 0.982422 0.728027 0
+30 11 15 0.982422 0.728516 0
+30 11 16 0.98291 0.729004 0
+30 11 17 0.98291 0.729492 0
+30 11 18 0.992188 0.735352 0.27002
+30 11 19 1 0.743652 0.385986
+30 11 20 1 0.75293 0.479248
+30 11 21 1 0.759766 0.558594
+30 11 22 1 0.766113 0.632812
+30 11 23 1 0.773438 0.699219
+30 11 24 1 0.779785 0.757812
+30 11 25 1 0.786133 0.813965
+30 11 26 1 0.790039 0.865723
+30 11 27 1 0.790039 0.912109
+30 11 28 1 0.783691 0.953125
+30 11 29 0.999023 0.769531 0.989258
+30 11 30 0.973145 0.75 1
+30 11 31 0.941895 0.726074 1
+30 12 0 0.982422 0.728516 0
+30 12 1 0.982422 0.728516 0
+30 12 2 0.982422 0.728516 0
+30 12 3 0.982422 0.728516 0
+30 12 4 0.982422 0.728516 0
+30 12 5 0.982422 0.728516 0
+30 12 6 0.982422 0.728516 0
+30 12 7 0.982422 0.728516 0
+30 12 8 0.98291 0.729004 0
+30 12 9 0.98291 0.729004 0
+30 12 10 0.98291 0.729004 0
+30 12 11 0.98291 0.729004 0
+30 12 12 0.98291 0.729004 0
+30 12 13 0.98291 0.729492 0
+30 12 14 0.98291 0.729492 0
+30 12 15 0.983398 0.730469 0
+30 12 16 0.983398 0.730957 0
+30 12 17 0.983398 0.730957 0
+30 12 18 0.992676 0.737305 0.270264
+30 12 19 1 0.745605 0.385986
+30 12 20 1 0.754395 0.479248
+30 12 21 1 0.76123 0.559082
+30 12 22 1 0.767578 0.632812
+30 12 23 1 0.774414 0.699219
+30 12 24 1 0.78125 0.757812
+30 12 25 1 0.787109 0.813965
+30 12 26 1 0.791504 0.865723
+30 12 27 1 0.791504 0.912109
+30 12 28 1 0.784668 0.953125
+30 12 29 0.999023 0.770508 0.989258
+30 12 30 0.973145 0.750977 1
+30 12 31 0.942383 0.727051 1
+30 13 0 0.983887 0.731445 0
+30 13 1 0.983887 0.731445 0
+30 13 2 0.983887 0.731445 0
+30 13 3 0.983887 0.731445 0
+30 13 4 0.983887 0.731445 0
+30 13 5 0.983887 0.731445 0
+30 13 6 0.983887 0.731445 0
+30 13 7 0.983887 0.731445 0
+30 13 8 0.983887 0.731445 0
+30 13 9 0.983887 0.731934 0
+30 13 10 0.983887 0.731934 0
+30 13 11 0.983887 0.731934 0
+30 13 12 0.983887 0.731934 0
+30 13 13 0.983887 0.732422 0
+30 13 14 0.983887 0.732422 0
+30 13 15 0.984375 0.733398 0
+30 13 16 0.984375 0.733398 0
+30 13 17 0.984375 0.733887 0
+30 13 18 0.993652 0.740234 0.270996
+30 13 19 1 0.748047 0.38623
+30 13 20 1 0.756836 0.479004
+30 13 21 1 0.763672 0.559082
+30 13 22 1 0.77002 0.632812
+30 13 23 1 0.776855 0.699219
+30 13 24 1 0.783203 0.757812
+30 13 25 1 0.789062 0.813965
+30 13 26 1 0.792969 0.865723
+30 13 27 1 0.792969 0.912109
+30 13 28 1 0.786621 0.953125
+30 13 29 0.999512 0.772461 0.989258
+30 13 30 0.973633 0.752441 1
+30 13 31 0.942383 0.728516 1
+30 14 0 0.985352 0.736328 0
+30 14 1 0.985352 0.736328 0
+30 14 2 0.985352 0.736328 0
+30 14 3 0.985352 0.736328 0
+30 14 4 0.985352 0.736328 0
+30 14 5 0.985352 0.736328 0
+30 14 6 0.985352 0.736328 0
+30 14 7 0.985352 0.736328 0
+30 14 8 0.985352 0.736328 0
+30 14 9 0.985352 0.736328 0
+30 14 10 0.985352 0.736328 0
+30 14 11 0.985352 0.736328 0
+30 14 12 0.985352 0.736328 0
+30 14 13 0.985352 0.736816 0
+30 14 14 0.985352 0.737305 0
+30 14 15 0.98584 0.737793 0
+30 14 16 0.98584 0.738281 0
+30 14 17 0.98584 0.738281 0
+30 14 18 0.995117 0.744629 0.271973
+30 14 19 1 0.752441 0.386475
+30 14 20 1 0.760742 0.479004
+30 14 21 1 0.767578 0.55957
+30 14 22 1 0.773926 0.632812
+30 14 23 1 0.780273 0.699219
+30 14 24 1 0.786621 0.757812
+30 14 25 1 0.791992 0.813965
+30 14 26 1 0.795898 0.865723
+30 14 27 1 0.795898 0.912598
+30 14 28 1 0.789062 0.953125
+30 14 29 0.999512 0.774902 0.989258
+30 14 30 0.973633 0.754883 1
+30 14 31 0.942871 0.730957 1
+30 15 0 0.987793 0.743164 0
+30 15 1 0.987793 0.743164 0
+30 15 2 0.987793 0.743164 0
+30 15 3 0.987793 0.743164 0
+30 15 4 0.987793 0.743164 0
+30 15 5 0.987793 0.743164 0
+30 15 6 0.987793 0.743164 0
+30 15 7 0.987793 0.743164 0
+30 15 8 0.987793 0.743164 0
+30 15 9 0.987793 0.743164 0
+30 15 10 0.987793 0.743164 0
+30 15 11 0.987793 0.743164 0
+30 15 12 0.987793 0.743652 0
+30 15 13 0.987793 0.743652 0
+30 15 14 0.987793 0.744141 0
+30 15 15 0.988281 0.744629 0
+30 15 16 0.988281 0.745117 0
+30 15 17 0.987793 0.745117 0
+30 15 18 0.997559 0.750977 0.273682
+30 15 19 1 0.758789 0.386963
+30 15 20 1 0.76709 0.479004
+30 15 21 1 0.773926 0.560059
+30 15 22 1 0.779785 0.632812
+30 15 23 1 0.785645 0.69873
+30 15 24 1 0.791016 0.757812
+30 15 25 1 0.796387 0.813965
+30 15 26 1 0.800293 0.866211
+30 15 27 1 0.799805 0.912598
+30 15 28 1 0.792969 0.953613
+30 15 29 1 0.778809 0.989746
+30 15 30 0.974121 0.758789 1
+30 15 31 0.943359 0.734375 1
+30 16 0 0.990723 0.75293 0
+30 16 1 0.990723 0.75293 0
+30 16 2 0.990723 0.75293 0
+30 16 3 0.990723 0.75293 0
+30 16 4 0.990723 0.75293 0
+30 16 5 0.990723 0.75293 0
+30 16 6 0.990723 0.75293 0
+30 16 7 0.990723 0.75293 0
+30 16 8 0.990723 0.75293 0
+30 16 9 0.990723 0.75293 0
+30 16 10 0.990723 0.75293 0
+30 16 11 0.990723 0.753418 0
+30 16 12 0.990723 0.753418 0
+30 16 13 0.991211 0.753418 0
+30 16 14 0.991211 0.753906 0
+30 16 15 0.991211 0.754395 0
+30 16 16 0.991211 0.754883 0
+30 16 17 0.991211 0.754883 0
+30 16 18 1 0.760742 0.276855
+30 16 19 1 0.768066 0.388184
+30 16 20 1 0.775879 0.479248
+30 16 21 1 0.783203 0.561035
+30 16 22 1 0.788086 0.633301
+30 16 23 1 0.792969 0.69873
+30 16 24 1 0.79834 0.757812
+30 16 25 1 0.803223 0.813965
+30 16 26 1 0.806152 0.866211
+30 16 27 1 0.805664 0.913086
+30 16 28 1 0.798828 0.954102
+30 16 29 1 0.78418 0.990234
+30 16 30 0.975098 0.76416 1
+30 16 31 0.943848 0.739746 1
+30 17 0 0.995117 0.766113 0
+30 17 1 0.995117 0.766113 0
+30 17 2 0.995117 0.766113 0
+30 17 3 0.995117 0.766113 0
+30 17 4 0.995117 0.766113 0
+30 17 5 0.995117 0.766113 0
+30 17 6 0.995117 0.766113 0
+30 17 7 0.995117 0.766113 0
+30 17 8 0.995117 0.766113 0
+30 17 9 0.995117 0.766602 0
+30 17 10 0.995117 0.766602 0
+30 17 11 0.995117 0.766602 0
+30 17 12 0.995117 0.766602 0
+30 17 13 0.995117 0.766602 0
+30 17 14 0.995117 0.76709 0
+30 17 15 0.995117 0.767578 0
+30 17 16 0.995117 0.768066 0
+30 17 17 0.995117 0.768066 0
+30 17 18 1 0.773926 0.282471
+30 17 19 1 0.780762 0.390625
+30 17 20 1 0.787598 0.479736
+30 17 21 1 0.794922 0.561523
+30 17 22 1 0.799316 0.633301
+30 17 23 1 0.803711 0.698242
+30 17 24 1 0.808105 0.757324
+30 17 25 1 0.812012 0.813965
+30 17 26 1 0.814453 0.866211
+30 17 27 1 0.813965 0.913086
+30 17 28 1 0.806641 0.954102
+30 17 29 1 0.791992 0.990234
+30 17 30 0.976074 0.771484 1
+30 17 31 0.944824 0.74707 1
+30 18 0 0.999512 0.782715 0
+30 18 1 0.999512 0.782715 0
+30 18 2 0.999512 0.782715 0
+30 18 3 0.999512 0.782715 0
+30 18 4 0.999512 0.782715 0
+30 18 5 0.999512 0.782715 0
+30 18 6 0.999512 0.782715 0
+30 18 7 0.999512 0.782715 0
+30 18 8 0.999512 0.782715 0
+30 18 9 0.999512 0.782715 0
+30 18 10 0.999512 0.782715 0
+30 18 11 0.999512 0.783203 0
+30 18 12 0.999512 0.783203 0
+30 18 13 0.999512 0.783203 0
+30 18 14 1 0.783691 0
+30 18 15 1 0.78418 0
+30 18 16 1 0.784668 0
+30 18 17 1 0.784668 0.107849
+30 18 18 1 0.790527 0.29126
+30 18 19 1 0.796875 0.394775
+30 18 20 1 0.803223 0.481445
+30 18 21 1 0.809082 0.561523
+30 18 22 1 0.813965 0.634277
+30 18 23 1 0.816895 0.698242
+30 18 24 1 0.820312 0.756348
+30 18 25 1 0.823242 0.813477
+30 18 26 1 0.825195 0.866211
+30 18 27 1 0.82373 0.913086
+30 18 28 1 0.816895 0.95459
+30 18 29 1 0.801758 0.990723
+30 18 30 0.977051 0.780762 1
+30 18 31 0.946289 0.755859 1
+30 19 0 1 0.801758 0
+30 19 1 1 0.801758 0
+30 19 2 1 0.801758 0
+30 19 3 1 0.801758 0
+30 19 4 1 0.801758 0
+30 19 5 1 0.801758 0
+30 19 6 1 0.801758 0
+30 19 7 1 0.801758 0
+30 19 8 1 0.801758 0
+30 19 9 1 0.801758 0
+30 19 10 1 0.801758 0
+30 19 11 1 0.801758 0
+30 19 12 1 0.802246 0
+30 19 13 1 0.802246 0
+30 19 14 1 0.802734 0
+30 19 15 1 0.803223 0
+30 19 16 1 0.803223 0
+30 19 17 1 0.804688 0.158569
+30 19 18 1 0.810059 0.304199
+30 19 19 1 0.815918 0.401611
+30 19 20 1 0.821289 0.484619
+30 19 21 1 0.826172 0.562012
+30 19 22 1 0.831055 0.634766
+30 19 23 1 0.833008 0.697754
+30 19 24 1 0.834961 0.755371
+30 19 25 1 0.836914 0.812012
+30 19 26 1 0.837891 0.865723
+30 19 27 1 0.835938 0.913086
+30 19 28 1 0.828613 0.95459
+30 19 29 1 0.813477 0.991211
+30 19 30 0.978516 0.791992 1
+30 19 31 0.947754 0.766602 1
+30 20 0 1 0.822266 0
+30 20 1 1 0.822266 0
+30 20 2 1 0.822266 0
+30 20 3 1 0.822266 0
+30 20 4 1 0.822266 0
+30 20 5 1 0.822266 0
+30 20 6 1 0.822266 0
+30 20 7 1 0.822266 0
+30 20 8 1 0.822266 0
+30 20 9 1 0.822266 0
+30 20 10 1 0.822266 0
+30 20 11 1 0.822266 0
+30 20 12 1 0.822266 0
+30 20 13 1 0.822754 0
+30 20 14 1 0.822754 0
+30 20 15 1 0.823242 0
+30 20 16 1 0.82373 0
+30 20 17 1 0.826172 0.202148
+30 20 18 1 0.831055 0.321045
+30 20 19 1 0.836426 0.411133
+30 20 20 1 0.841309 0.48999
+30 20 21 1 0.845215 0.563965
+30 20 22 1 0.848633 0.634277
+30 20 23 1 0.851074 0.697754
+30 20 24 1 0.851562 0.753906
+30 20 25 1 0.852051 0.810547
+30 20 26 1 0.851562 0.864258
+30 20 27 1 0.849121 0.912598
+30 20 28 1 0.841309 0.95459
+30 20 29 1 0.826172 0.990723
+30 20 30 0.979492 0.804688 1
+30 20 31 0.94873 0.778809 1
+30 21 0 1 0.843262 0
+30 21 1 1 0.843262 0
+30 21 2 1 0.843262 0
+30 21 3 1 0.843262 0
+30 21 4 1 0.843262 0
+30 21 5 1 0.843262 0
+30 21 6 1 0.843262 0
+30 21 7 1 0.843262 0
+30 21 8 1 0.843262 0
+30 21 9 1 0.843262 0
+30 21 10 1 0.843262 0
+30 21 11 1 0.84375 0
+30 21 12 1 0.84375 0
+30 21 13 1 0.84375 0
+30 21 14 1 0.844238 0
+30 21 15 1 0.844238 0
+30 21 16 1 0.844727 0
+30 21 17 1 0.848633 0.24292
+30 21 18 1 0.853516 0.341553
+30 21 19 1 0.858398 0.423828
+30 21 20 1 0.862793 0.497803
+30 21 21 1 0.866211 0.567871
+30 21 22 1 0.868652 0.634766
+30 21 23 1 0.870117 0.696777
+30 21 24 1 0.870117 0.752441
+30 21 25 1 0.868652 0.808105
+30 21 26 1 0.867188 0.862305
+30 21 27 1 0.86377 0.911621
+30 21 28 1 0.855469 0.953613
+30 21 29 1 0.840332 0.990234
+30 21 30 0.980469 0.818848 1
+30 21 31 0.950195 0.79248 1
+30 22 0 1 0.865723 0.158203
+30 22 1 1 0.865723 0.158203
+30 22 2 1 0.865723 0.158203
+30 22 3 1 0.865723 0.158203
+30 22 4 1 0.865723 0.158203
+30 22 5 1 0.865723 0.158203
+30 22 6 1 0.865723 0.158203
+30 22 7 1 0.865723 0.158203
+30 22 8 1 0.865723 0.158203
+30 22 9 1 0.865723 0.158325
+30 22 10 1 0.865723 0.158447
+30 22 11 1 0.865723 0.158691
+30 22 12 1 0.866211 0.159058
+30 22 13 1 0.866211 0.159668
+30 22 14 1 0.866211 0.160522
+30 22 15 1 0.866699 0.161987
+30 22 16 1 0.867188 0.171997
+30 22 17 1 0.871094 0.280762
+30 22 18 1 0.875488 0.364258
+30 22 19 1 0.880371 0.438965
+30 22 20 1 0.884277 0.507812
+30 22 21 1 0.887695 0.57373
+30 22 22 1 0.88916 0.637207
+30 22 23 1 0.889648 0.695801
+30 22 24 1 0.88916 0.750977
+30 22 25 1 0.886719 0.805664
+30 22 26 1 0.883301 0.859863
+30 22 27 1 0.878906 0.90918
+30 22 28 1 0.870605 0.952148
+30 22 29 1 0.855469 0.989258
+30 22 30 0.980957 0.833496 1
+30 22 31 0.951172 0.806641 1
+30 23 0 1 0.887695 0.234375
+30 23 1 1 0.887695 0.234375
+30 23 2 1 0.887695 0.234375
+30 23 3 1 0.887695 0.234375
+30 23 4 1 0.887695 0.234375
+30 23 5 1 0.887695 0.234375
+30 23 6 1 0.887695 0.234497
+30 23 7 1 0.887695 0.234497
+30 23 8 1 0.887695 0.234497
+30 23 9 1 0.887695 0.234497
+30 23 10 1 0.887695 0.234619
+30 23 11 1 0.887695 0.234619
+30 23 12 1 0.887695 0.234863
+30 23 13 1 0.888184 0.235107
+30 23 14 1 0.888184 0.235596
+30 23 15 1 0.888672 0.23645
+30 23 16 1 0.888672 0.237427
+30 23 17 1 0.892578 0.313965
+30 23 18 1 0.896484 0.386475
+30 23 19 1 0.900879 0.45459
+30 23 20 1 0.904785 0.519043
+30 23 21 1 0.907715 0.581055
+30 23 22 1 0.90918 0.640625
+30 23 23 1 0.90918 0.696289
+30 23 24 1 0.907715 0.749023
+30 23 25 1 0.904785 0.803223
+30 23 26 1 0.899902 0.855957
+30 23 27 1 0.894043 0.90625
+30 23 28 1 0.885254 0.950195
+30 23 29 1 0.870117 0.987793
+30 23 30 0.981445 0.848145 1
+30 23 31 0.95166 0.821289 1
+30 24 0 1 0.907715 0.28418
+30 24 1 1 0.907715 0.28418
+30 24 2 1 0.907715 0.28418
+30 24 3 1 0.907715 0.28418
+30 24 4 1 0.907715 0.28418
+30 24 5 1 0.907715 0.28418
+30 24 6 1 0.907715 0.28418
+30 24 7 1 0.907715 0.28418
+30 24 8 1 0.907715 0.28418
+30 24 9 1 0.907715 0.28418
+30 24 10 1 0.907715 0.28418
+30 24 11 1 0.908203 0.28418
+30 24 12 1 0.908203 0.284424
+30 24 13 1 0.908203 0.284668
+30 24 14 1 0.908203 0.284912
+30 24 15 1 0.908691 0.2854
+30 24 16 1 0.908691 0.286133
+30 24 17 1 0.912109 0.342529
+30 24 18 1 0.916016 0.407227
+30 24 19 1 0.92041 0.469971
+30 24 20 1 0.923828 0.530273
+30 24 21 1 0.926758 0.589355
+30 24 22 1 0.928223 0.645508
+30 24 23 1 0.928223 0.698242
+30 24 24 1 0.92627 0.747559
+30 24 25 1 0.922363 0.799316
+30 24 26 1 0.916504 0.852051
+30 24 27 1 0.908691 0.902832
+30 24 28 1 0.899902 0.947266
+30 24 29 1 0.884766 0.985352
+30 24 30 0.980957 0.862793 1
+30 24 31 0.95166 0.835449 1
+30 25 0 1 0.928223 0.324463
+30 25 1 1 0.928223 0.324463
+30 25 2 1 0.928223 0.324463
+30 25 3 1 0.928223 0.324463
+30 25 4 1 0.928223 0.324463
+30 25 5 1 0.928223 0.324463
+30 25 6 1 0.928223 0.324463
+30 25 7 1 0.928223 0.324463
+30 25 8 1 0.928223 0.324463
+30 25 9 1 0.928223 0.324463
+30 25 10 1 0.928223 0.324463
+30 25 11 1 0.928223 0.324463
+30 25 12 1 0.928223 0.324707
+30 25 13 1 0.928223 0.324707
+30 25 14 1 0.928711 0.324951
+30 25 15 1 0.928711 0.325195
+30 25 16 1 0.929199 0.325684
+30 25 17 1 0.931641 0.368164
+30 25 18 1 0.935547 0.426514
+30 25 19 1 0.939453 0.485107
+30 25 20 1 0.942871 0.541992
+30 25 21 1 0.945801 0.597656
+30 25 22 1 0.947266 0.651367
+30 25 23 1 0.946777 0.701172
+30 25 24 1 0.944824 0.748047
+30 25 25 1 0.940918 0.796387
+30 25 26 1 0.93457 0.847168
+30 25 27 1 0.925293 0.897461
+30 25 28 1 0.915039 0.943359
+30 25 29 1 0.900391 0.982422
+30 25 30 0.97998 0.878906 1
+30 25 31 0.95166 0.851562 1
+30 26 0 1 0.948242 0.356934
+30 26 1 1 0.948242 0.356934
+30 26 2 1 0.948242 0.356934
+30 26 3 1 0.948242 0.356934
+30 26 4 1 0.948242 0.356934
+30 26 5 1 0.948242 0.356934
+30 26 6 1 0.948242 0.356934
+30 26 7 1 0.948242 0.356934
+30 26 8 1 0.948242 0.356934
+30 26 9 1 0.948242 0.356934
+30 26 10 1 0.948242 0.356934
+30 26 11 1 0.948242 0.356934
+30 26 12 1 0.948242 0.356934
+30 26 13 1 0.948242 0.357178
+30 26 14 1 0.948242 0.357178
+30 26 15 1 0.94873 0.357422
+30 26 16 1 0.94873 0.357666
+30 26 17 1 0.950684 0.38916
+30 26 18 1 0.95459 0.443115
+30 26 19 1 0.958496 0.498047
+30 26 20 1 0.961914 0.552246
+30 26 21 1 0.964355 0.605469
+30 26 22 1 0.96582 0.656738
+30 26 23 1 0.96582 0.70459
+30 26 24 1 0.963867 0.748535
+30 26 25 1 0.959961 0.794434
+30 26 26 1 0.953125 0.841797
+30 26 27 1 0.943848 0.890625
+30 26 28 1 0.932129 0.9375
+30 26 29 1 0.91748 0.977539
+30 26 30 0.978027 0.895996 1
+30 26 31 0.950684 0.868652 1
+30 27 0 1 0.967285 0.381104
+30 27 1 1 0.967285 0.381104
+30 27 2 1 0.967285 0.381104
+30 27 3 1 0.967285 0.381104
+30 27 4 1 0.967285 0.381104
+30 27 5 1 0.967285 0.381104
+30 27 6 1 0.967285 0.381104
+30 27 7 1 0.967285 0.381104
+30 27 8 1 0.967285 0.381104
+30 27 9 1 0.967285 0.381104
+30 27 10 1 0.967285 0.381104
+30 27 11 1 0.967285 0.381104
+30 27 12 1 0.967285 0.381104
+30 27 13 1 0.967285 0.381348
+30 27 14 1 0.967285 0.381348
+30 27 15 1 0.967285 0.381348
+30 27 16 1 0.967773 0.381592
+30 27 17 1 0.969238 0.403809
+30 27 18 1 0.972656 0.454346
+30 27 19 1 0.976562 0.506836
+30 27 20 1 0.97998 0.558594
+30 27 21 1 0.982422 0.610352
+30 27 22 1 0.983887 0.660156
+30 27 23 1 0.983887 0.706055
+30 27 24 1 0.982422 0.749023
+30 27 25 1 0.978516 0.79248
+30 27 26 1 0.972656 0.836914
+30 27 27 1 0.962891 0.882812
+30 27 28 1 0.949707 0.929199
+30 27 29 0.996094 0.935059 0.971191
+30 27 30 0.975098 0.914062 1
+30 27 31 0.94873 0.887207 1
+30 28 0 1 0.984375 0.396484
+30 28 1 1 0.984375 0.396484
+30 28 2 1 0.984375 0.396484
+30 28 3 1 0.984375 0.396484
+30 28 4 1 0.984375 0.396484
+30 28 5 1 0.984375 0.396484
+30 28 6 1 0.984375 0.396484
+30 28 7 1 0.984375 0.396484
+30 28 8 1 0.984375 0.396484
+30 28 9 1 0.984375 0.396484
+30 28 10 1 0.984375 0.396484
+30 28 11 1 0.984375 0.396484
+30 28 12 1 0.984375 0.396729
+30 28 13 1 0.984375 0.396729
+30 28 14 1 0.984375 0.396729
+30 28 15 1 0.984863 0.396729
+30 28 16 1 0.984863 0.396729
+30 28 17 1 0.98584 0.4104
+30 28 18 1 0.989258 0.45874
+30 28 19 1 0.992676 0.508789
+30 28 20 1 0.996094 0.55957
+30 28 21 1 0.998535 0.609375
+30 28 22 1 1 0.658203
+30 28 23 1 1 0.703613
+30 28 24 1 0.999512 0.745605
+30 28 25 1 0.996094 0.788574
+30 28 26 1 0.990723 0.832031
+30 28 27 1 0.981934 0.875488
+30 28 28 1 0.96875 0.918945
+30 28 29 0.989258 0.953125 0.961914
+30 28 30 0.970215 0.933105 0.998535
+30 28 31 0.944824 0.906738 1
+30 29 0 0.995605 0.999512 0.404053
+30 29 1 0.995605 0.999512 0.404053
+30 29 2 0.995605 0.999512 0.404053
+30 29 3 0.995605 0.999512 0.404053
+30 29 4 0.995605 0.999512 0.404053
+30 29 5 0.995605 0.999512 0.404053
+30 29 6 0.995605 0.999512 0.404053
+30 29 7 0.995605 0.999512 0.404053
+30 29 8 0.995605 0.999512 0.404053
+30 29 9 0.995605 0.999512 0.404053
+30 29 10 0.995605 0.999512 0.404053
+30 29 11 0.995605 0.999512 0.404053
+30 29 12 0.995605 0.999512 0.404053
+30 29 13 0.995605 0.999512 0.404053
+30 29 14 0.995605 0.999512 0.404053
+30 29 15 0.995605 0.999512 0.404053
+30 29 16 0.995605 0.999512 0.404053
+30 29 17 0.995605 1 0.408936
+30 29 18 0.999512 1 0.455566
+30 29 19 1 1 0.504395
+30 29 20 1 1 0.553223
+30 29 21 1 1 0.602539
+30 29 22 1 1 0.650391
+30 29 23 1 1 0.694824
+30 29 24 1 1 0.736816
+30 29 25 1 1 0.779785
+30 29 26 1 1 0.823242
+30 29 27 1 0.999512 0.866699
+30 29 28 0.994141 0.987793 0.90918
+30 29 29 0.980469 0.97168 0.949707
+30 29 30 0.963379 0.952637 0.988281
+30 29 31 0.938965 0.92627 1
+30 30 0 0.977051 1 0.406006
+30 30 1 0.977051 1 0.406006
+30 30 2 0.977051 1 0.406006
+30 30 3 0.977051 1 0.406006
+30 30 4 0.977051 1 0.406006
+30 30 5 0.977051 1 0.406006
+30 30 6 0.977051 1 0.406006
+30 30 7 0.977051 1 0.406006
+30 30 8 0.977051 1 0.406006
+30 30 9 0.977051 1 0.406006
+30 30 10 0.977051 1 0.406006
+30 30 11 0.977051 1 0.406006
+30 30 12 0.977051 1 0.406006
+30 30 13 0.977051 1 0.406006
+30 30 14 0.976562 1 0.406006
+30 30 15 0.976562 1 0.406006
+30 30 16 0.976562 1 0.406006
+30 30 17 0.976562 1 0.406006
+30 30 18 0.97998 1 0.446777
+30 30 19 0.983887 1 0.494141
+30 30 20 0.987793 1 0.541992
+30 30 21 0.991211 1 0.589844
+30 30 22 0.994629 1 0.63623
+30 30 23 0.996582 1 0.680176
+30 30 24 0.99707 1 0.72168
+30 30 25 0.996582 1 0.76416
+30 30 26 0.994141 1 0.807617
+30 30 27 0.989746 1 0.851562
+30 30 28 0.981445 1 0.89502
+30 30 29 0.969727 0.990234 0.936523
+30 30 30 0.953613 0.971191 0.974609
+30 30 31 0.931641 0.946289 1
+30 31 0 0.953613 1 0.406006
+30 31 1 0.953613 1 0.406006
+30 31 2 0.953613 1 0.406006
+30 31 3 0.953613 1 0.406006
+30 31 4 0.953613 1 0.406006
+30 31 5 0.953613 1 0.406006
+30 31 6 0.953613 1 0.406006
+30 31 7 0.953613 1 0.406006
+30 31 8 0.953613 1 0.406006
+30 31 9 0.953613 1 0.406006
+30 31 10 0.953613 1 0.406006
+30 31 11 0.953125 1 0.406006
+30 31 12 0.953125 1 0.406006
+30 31 13 0.953125 1 0.406006
+30 31 14 0.953125 1 0.406006
+30 31 15 0.953125 1 0.406006
+30 31 16 0.953125 1 0.406006
+30 31 17 0.953125 1 0.406006
+30 31 18 0.955566 1 0.435303
+30 31 19 0.958984 1 0.480957
+30 31 20 0.962891 1 0.526855
+30 31 21 0.966797 1 0.573242
+30 31 22 0.969727 1 0.618652
+30 31 23 0.972168 1 0.661621
+30 31 24 0.973633 1 0.70166
+30 31 25 0.974121 1 0.743652
+30 31 26 0.972656 1 0.787109
+30 31 27 0.969727 1 0.831055
+30 31 28 0.963379 1 0.874512
+30 31 29 0.953613 1 0.916992
+30 31 30 0.94043 0.989258 0.957031
+30 31 31 0.92334 0.967773 0.994141
+31 0 0 0.986816 0.728516 0
+31 0 1 0.986816 0.728516 0
+31 0 2 0.986816 0.728516 0
+31 0 3 0.986816 0.728516 0
+31 0 4 0.986816 0.728516 0
+31 0 5 0.986816 0.728516 0
+31 0 6 0.986816 0.728516 0
+31 0 7 0.986816 0.728516 0
+31 0 8 0.986816 0.728516 0
+31 0 9 0.986816 0.729004 0
+31 0 10 0.986816 0.729004 0
+31 0 11 0.986816 0.729004 0
+31 0 12 0.986816 0.729004 0
+31 0 13 0.987305 0.729004 0
+31 0 14 0.987305 0.729492 0
+31 0 15 0.987305 0.72998 0
+31 0 16 0.987793 0.730469 0
+31 0 17 0.987793 0.730957 0
+31 0 18 0.991699 0.733887 0.188232
+31 0 19 1 0.741699 0.328125
+31 0 20 1 0.749512 0.424561
+31 0 21 1 0.757812 0.506836
+31 0 22 1 0.76416 0.579102
+31 0 23 1 0.770508 0.644531
+31 0 24 1 0.776367 0.704102
+31 0 25 1 0.782715 0.762695
+31 0 26 1 0.788574 0.818848
+31 0 27 1 0.79248 0.870117
+31 0 28 1 0.79248 0.916504
+31 0 29 1 0.785645 0.957031
+31 0 30 1 0.771484 0.992676
+31 0 31 0.976074 0.750977 1
+31 1 0 0.986816 0.728516 0
+31 1 1 0.986816 0.728516 0
+31 1 2 0.986816 0.728516 0
+31 1 3 0.986816 0.728516 0
+31 1 4 0.986816 0.728516 0
+31 1 5 0.986816 0.728516 0
+31 1 6 0.986816 0.728516 0
+31 1 7 0.986816 0.728516 0
+31 1 8 0.986816 0.728516 0
+31 1 9 0.986816 0.729004 0
+31 1 10 0.986816 0.729004 0
+31 1 11 0.986816 0.729004 0
+31 1 12 0.986816 0.729004 0
+31 1 13 0.987305 0.729004 0
+31 1 14 0.987305 0.729492 0
+31 1 15 0.987305 0.72998 0
+31 1 16 0.987793 0.730469 0
+31 1 17 0.987793 0.730957 0
+31 1 18 0.991699 0.733887 0.188232
+31 1 19 1 0.741699 0.328125
+31 1 20 1 0.749512 0.424561
+31 1 21 1 0.757812 0.506836
+31 1 22 1 0.76416 0.579102
+31 1 23 1 0.770508 0.644531
+31 1 24 1 0.776367 0.704102
+31 1 25 1 0.782715 0.762695
+31 1 26 1 0.788574 0.818848
+31 1 27 1 0.79248 0.870117
+31 1 28 1 0.79248 0.916504
+31 1 29 1 0.785645 0.957031
+31 1 30 1 0.771484 0.992676
+31 1 31 0.976074 0.750977 1
+31 2 0 0.986816 0.728516 0
+31 2 1 0.986816 0.728516 0
+31 2 2 0.986816 0.728516 0
+31 2 3 0.986816 0.728516 0
+31 2 4 0.986816 0.728516 0
+31 2 5 0.986816 0.728516 0
+31 2 6 0.986816 0.728516 0
+31 2 7 0.986816 0.728516 0
+31 2 8 0.986816 0.728516 0
+31 2 9 0.986816 0.729004 0
+31 2 10 0.986816 0.729004 0
+31 2 11 0.986816 0.729004 0
+31 2 12 0.986816 0.729004 0
+31 2 13 0.987305 0.729004 0
+31 2 14 0.987305 0.729492 0
+31 2 15 0.987305 0.72998 0
+31 2 16 0.987793 0.730469 0
+31 2 17 0.987793 0.730957 0
+31 2 18 0.991699 0.733887 0.188232
+31 2 19 1 0.741699 0.328125
+31 2 20 1 0.749512 0.424561
+31 2 21 1 0.757812 0.506836
+31 2 22 1 0.76416 0.579102
+31 2 23 1 0.770508 0.644531
+31 2 24 1 0.776367 0.704102
+31 2 25 1 0.782715 0.762695
+31 2 26 1 0.788574 0.818848
+31 2 27 1 0.79248 0.870117
+31 2 28 1 0.79248 0.916504
+31 2 29 1 0.785645 0.957031
+31 2 30 1 0.771484 0.992676
+31 2 31 0.976074 0.750977 1
+31 3 0 0.986816 0.728516 0
+31 3 1 0.986816 0.728516 0
+31 3 2 0.986816 0.728516 0
+31 3 3 0.986816 0.728516 0
+31 3 4 0.986816 0.728516 0
+31 3 5 0.986816 0.728516 0
+31 3 6 0.986816 0.728516 0
+31 3 7 0.986816 0.728516 0
+31 3 8 0.986816 0.728516 0
+31 3 9 0.986816 0.729004 0
+31 3 10 0.986816 0.729004 0
+31 3 11 0.986816 0.729004 0
+31 3 12 0.986816 0.729004 0
+31 3 13 0.987305 0.729004 0
+31 3 14 0.987305 0.729492 0
+31 3 15 0.987305 0.72998 0
+31 3 16 0.987793 0.730469 0
+31 3 17 0.987793 0.730957 0
+31 3 18 0.991699 0.733887 0.188232
+31 3 19 1 0.741699 0.328125
+31 3 20 1 0.749512 0.424561
+31 3 21 1 0.757812 0.506836
+31 3 22 1 0.76416 0.579102
+31 3 23 1 0.770508 0.644531
+31 3 24 1 0.776367 0.704102
+31 3 25 1 0.782715 0.762695
+31 3 26 1 0.788574 0.818848
+31 3 27 1 0.79248 0.870117
+31 3 28 1 0.79248 0.916504
+31 3 29 1 0.785645 0.957031
+31 3 30 1 0.771484 0.992676
+31 3 31 0.976074 0.750977 1
+31 4 0 0.986816 0.728516 0
+31 4 1 0.986816 0.728516 0
+31 4 2 0.986816 0.728516 0
+31 4 3 0.986816 0.728516 0
+31 4 4 0.986816 0.728516 0
+31 4 5 0.986816 0.728516 0
+31 4 6 0.986816 0.728516 0
+31 4 7 0.986816 0.728516 0
+31 4 8 0.986816 0.729004 0
+31 4 9 0.986816 0.729004 0
+31 4 10 0.986816 0.729004 0
+31 4 11 0.986816 0.729004 0
+31 4 12 0.986816 0.729004 0
+31 4 13 0.987305 0.729004 0
+31 4 14 0.987305 0.729492 0
+31 4 15 0.987305 0.72998 0
+31 4 16 0.987793 0.730469 0
+31 4 17 0.987793 0.730957 0
+31 4 18 0.991699 0.733887 0.188232
+31 4 19 1 0.741699 0.328125
+31 4 20 1 0.749512 0.424561
+31 4 21 1 0.757812 0.506836
+31 4 22 1 0.76416 0.579102
+31 4 23 1 0.770508 0.644531
+31 4 24 1 0.776367 0.704102
+31 4 25 1 0.782715 0.762695
+31 4 26 1 0.788574 0.818848
+31 4 27 1 0.79248 0.870117
+31 4 28 1 0.79248 0.916504
+31 4 29 1 0.785645 0.957031
+31 4 30 1 0.771484 0.992676
+31 4 31 0.976074 0.750977 1
+31 5 0 0.986816 0.729004 0
+31 5 1 0.986816 0.729004 0
+31 5 2 0.986816 0.729004 0
+31 5 3 0.986816 0.729004 0
+31 5 4 0.986816 0.729004 0
+31 5 5 0.986816 0.729004 0
+31 5 6 0.986816 0.729004 0
+31 5 7 0.986816 0.729004 0
+31 5 8 0.986816 0.729004 0
+31 5 9 0.986816 0.729004 0
+31 5 10 0.986816 0.729004 0
+31 5 11 0.986816 0.729004 0
+31 5 12 0.986816 0.729004 0
+31 5 13 0.987305 0.729492 0
+31 5 14 0.987305 0.729492 0
+31 5 15 0.987305 0.72998 0
+31 5 16 0.987793 0.730469 0
+31 5 17 0.987793 0.730957 0
+31 5 18 0.991699 0.733887 0.188232
+31 5 19 1 0.741699 0.328125
+31 5 20 1 0.75 0.424561
+31 5 21 1 0.757812 0.506836
+31 5 22 1 0.76416 0.579102
+31 5 23 1 0.770508 0.644531
+31 5 24 1 0.776367 0.704102
+31 5 25 1 0.782715 0.762695
+31 5 26 1 0.788574 0.818848
+31 5 27 1 0.79248 0.870117
+31 5 28 1 0.79248 0.916504
+31 5 29 1 0.786133 0.957031
+31 5 30 1 0.771484 0.992676
+31 5 31 0.976074 0.750977 1
+31 6 0 0.986816 0.729004 0
+31 6 1 0.986816 0.729004 0
+31 6 2 0.986816 0.729004 0
+31 6 3 0.986816 0.729004 0
+31 6 4 0.986816 0.729004 0
+31 6 5 0.986816 0.729004 0
+31 6 6 0.986816 0.729004 0
+31 6 7 0.986816 0.729004 0
+31 6 8 0.986816 0.729004 0
+31 6 9 0.986816 0.729004 0
+31 6 10 0.986816 0.729004 0
+31 6 11 0.986816 0.729004 0
+31 6 12 0.987305 0.729004 0
+31 6 13 0.987305 0.729492 0
+31 6 14 0.987305 0.729492 0
+31 6 15 0.987305 0.72998 0
+31 6 16 0.987793 0.730957 0
+31 6 17 0.987793 0.730957 0
+31 6 18 0.991699 0.733887 0.188232
+31 6 19 1 0.741699 0.328125
+31 6 20 1 0.75 0.424561
+31 6 21 1 0.757812 0.506836
+31 6 22 1 0.76416 0.579102
+31 6 23 1 0.770508 0.644531
+31 6 24 1 0.776367 0.704102
+31 6 25 1 0.782715 0.762695
+31 6 26 1 0.788574 0.818848
+31 6 27 1 0.79248 0.870117
+31 6 28 1 0.79248 0.916504
+31 6 29 1 0.786133 0.957031
+31 6 30 1 0.771484 0.992676
+31 6 31 0.976074 0.750977 1
+31 7 0 0.986816 0.729004 0
+31 7 1 0.986816 0.729004 0
+31 7 2 0.986816 0.729004 0
+31 7 3 0.986816 0.729004 0
+31 7 4 0.986816 0.729004 0
+31 7 5 0.986816 0.729004 0
+31 7 6 0.986816 0.729004 0
+31 7 7 0.986816 0.729004 0
+31 7 8 0.986816 0.729004 0
+31 7 9 0.986816 0.729004 0
+31 7 10 0.986816 0.729004 0
+31 7 11 0.986816 0.729004 0
+31 7 12 0.987305 0.729004 0
+31 7 13 0.987305 0.729492 0
+31 7 14 0.987305 0.729492 0
+31 7 15 0.987305 0.72998 0
+31 7 16 0.987793 0.730957 0
+31 7 17 0.987793 0.730957 0
+31 7 18 0.991699 0.733887 0.188232
+31 7 19 1 0.741699 0.328125
+31 7 20 1 0.75 0.424561
+31 7 21 1 0.757812 0.506836
+31 7 22 1 0.76416 0.579102
+31 7 23 1 0.770508 0.644531
+31 7 24 1 0.776367 0.704102
+31 7 25 1 0.782715 0.762695
+31 7 26 1 0.788574 0.818848
+31 7 27 1 0.79248 0.870117
+31 7 28 1 0.79248 0.916504
+31 7 29 1 0.786133 0.957031
+31 7 30 1 0.771484 0.992676
+31 7 31 0.976074 0.750977 1
+31 8 0 0.986816 0.729004 0
+31 8 1 0.986816 0.729004 0
+31 8 2 0.986816 0.729004 0
+31 8 3 0.986816 0.729004 0
+31 8 4 0.986816 0.729004 0
+31 8 5 0.986816 0.729004 0
+31 8 6 0.986816 0.729004 0
+31 8 7 0.986816 0.729004 0
+31 8 8 0.986816 0.729004 0
+31 8 9 0.986816 0.729004 0
+31 8 10 0.987305 0.729004 0
+31 8 11 0.987305 0.729004 0
+31 8 12 0.987305 0.729492 0
+31 8 13 0.987305 0.729492 0
+31 8 14 0.987305 0.72998 0
+31 8 15 0.987305 0.730469 0
+31 8 16 0.987793 0.730957 0
+31 8 17 0.987793 0.731445 0
+31 8 18 0.991699 0.734375 0.188232
+31 8 19 1 0.741699 0.328125
+31 8 20 1 0.75 0.424561
+31 8 21 1 0.758301 0.506836
+31 8 22 1 0.76416 0.579102
+31 8 23 1 0.770508 0.644531
+31 8 24 1 0.776855 0.704102
+31 8 25 1 0.783203 0.762695
+31 8 26 1 0.788574 0.818848
+31 8 27 1 0.79248 0.870117
+31 8 28 1 0.79248 0.916504
+31 8 29 1 0.786133 0.957031
+31 8 30 1 0.771484 0.992676
+31 8 31 0.976074 0.750977 1
+31 9 0 0.987305 0.729492 0
+31 9 1 0.987305 0.729492 0
+31 9 2 0.987305 0.729492 0
+31 9 3 0.987305 0.729492 0
+31 9 4 0.987305 0.729492 0
+31 9 5 0.987305 0.729492 0
+31 9 6 0.987305 0.729492 0
+31 9 7 0.987305 0.729492 0
+31 9 8 0.987305 0.729492 0
+31 9 9 0.987305 0.729492 0
+31 9 10 0.987305 0.729492 0
+31 9 11 0.987305 0.729492 0
+31 9 12 0.987305 0.729492 0
+31 9 13 0.987305 0.72998 0
+31 9 14 0.987305 0.72998 0
+31 9 15 0.987793 0.730469 0
+31 9 16 0.987793 0.731445 0
+31 9 17 0.987793 0.731445 0
+31 9 18 0.991699 0.734375 0.188354
+31 9 19 1 0.742188 0.328125
+31 9 20 1 0.750488 0.424561
+31 9 21 1 0.758301 0.507324
+31 9 22 1 0.764648 0.579102
+31 9 23 1 0.770996 0.644531
+31 9 24 1 0.776855 0.704102
+31 9 25 1 0.783203 0.762695
+31 9 26 1 0.789062 0.818848
+31 9 27 1 0.792969 0.870117
+31 9 28 1 0.792969 0.916504
+31 9 29 1 0.786133 0.957031
+31 9 30 1 0.771484 0.992676
+31 9 31 0.976074 0.751465 1
+31 10 0 0.987305 0.72998 0
+31 10 1 0.987305 0.72998 0
+31 10 2 0.987305 0.72998 0
+31 10 3 0.987305 0.72998 0
+31 10 4 0.987305 0.72998 0
+31 10 5 0.987305 0.72998 0
+31 10 6 0.987305 0.72998 0
+31 10 7 0.987305 0.72998 0
+31 10 8 0.987305 0.72998 0
+31 10 9 0.987305 0.72998 0
+31 10 10 0.987305 0.72998 0
+31 10 11 0.987305 0.72998 0
+31 10 12 0.987305 0.72998 0
+31 10 13 0.987305 0.730469 0
+31 10 14 0.987793 0.730469 0
+31 10 15 0.987793 0.730957 0
+31 10 16 0.987793 0.731934 0
+31 10 17 0.988281 0.731934 0
+31 10 18 0.992188 0.734863 0.188477
+31 10 19 1 0.742676 0.328369
+31 10 20 1 0.750488 0.424561
+31 10 21 1 0.758789 0.507324
+31 10 22 1 0.765137 0.579102
+31 10 23 1 0.770996 0.644531
+31 10 24 1 0.777344 0.704102
+31 10 25 1 0.783691 0.762695
+31 10 26 1 0.789062 0.818848
+31 10 27 1 0.792969 0.870117
+31 10 28 1 0.792969 0.916504
+31 10 29 1 0.786621 0.957031
+31 10 30 1 0.771973 0.992676
+31 10 31 0.976074 0.751465 1
+31 11 0 0.987793 0.730469 0
+31 11 1 0.987793 0.730469 0
+31 11 2 0.987793 0.730469 0
+31 11 3 0.987793 0.730469 0
+31 11 4 0.987793 0.730469 0
+31 11 5 0.987793 0.730469 0
+31 11 6 0.987793 0.730957 0
+31 11 7 0.987793 0.730957 0
+31 11 8 0.987793 0.730957 0
+31 11 9 0.987793 0.730957 0
+31 11 10 0.987793 0.730957 0
+31 11 11 0.987793 0.730957 0
+31 11 12 0.987793 0.730957 0
+31 11 13 0.987793 0.731445 0
+31 11 14 0.987793 0.731445 0
+31 11 15 0.988281 0.731934 0
+31 11 16 0.988281 0.732422 0
+31 11 17 0.988281 0.73291 0
+31 11 18 0.992188 0.73584 0.188721
+31 11 19 1 0.743164 0.328369
+31 11 20 1 0.751465 0.424561
+31 11 21 1 0.759766 0.507324
+31 11 22 1 0.765625 0.579102
+31 11 23 1 0.771973 0.644531
+31 11 24 1 0.777832 0.704102
+31 11 25 1 0.78418 0.762695
+31 11 26 1 0.790039 0.818848
+31 11 27 1 0.793945 0.870117
+31 11 28 1 0.793457 0.916504
+31 11 29 1 0.787109 0.957031
+31 11 30 1 0.772461 0.992676
+31 11 31 0.976074 0.751953 1
+31 12 0 0.988281 0.732422 0
+31 12 1 0.988281 0.732422 0
+31 12 2 0.988281 0.732422 0
+31 12 3 0.988281 0.732422 0
+31 12 4 0.988281 0.732422 0
+31 12 5 0.988281 0.732422 0
+31 12 6 0.988281 0.732422 0
+31 12 7 0.988281 0.732422 0
+31 12 8 0.988281 0.732422 0
+31 12 9 0.988281 0.732422 0
+31 12 10 0.988281 0.732422 0
+31 12 11 0.988281 0.732422 0
+31 12 12 0.988281 0.732422 0
+31 12 13 0.988281 0.73291 0
+31 12 14 0.988281 0.73291 0
+31 12 15 0.98877 0.733398 0
+31 12 16 0.98877 0.734375 0
+31 12 17 0.98877 0.734375 0
+31 12 18 0.992676 0.737305 0.189209
+31 12 19 1 0.744629 0.328369
+31 12 20 1 0.75293 0.424561
+31 12 21 1 0.76123 0.507324
+31 12 22 1 0.76709 0.579102
+31 12 23 1 0.773438 0.644531
+31 12 24 1 0.779297 0.704102
+31 12 25 1 0.785156 0.762695
+31 12 26 1 0.791016 0.818848
+31 12 27 1 0.794922 0.870605
+31 12 28 1 0.794434 0.916504
+31 12 29 1 0.788086 0.957031
+31 12 30 1 0.773438 0.992676
+31 12 31 0.976074 0.75293 1
+31 13 0 0.989258 0.734863 0
+31 13 1 0.989258 0.734863 0
+31 13 2 0.989258 0.734863 0
+31 13 3 0.989258 0.734863 0
+31 13 4 0.989258 0.734863 0
+31 13 5 0.989258 0.734863 0
+31 13 6 0.989258 0.734863 0
+31 13 7 0.989258 0.734863 0
+31 13 8 0.989258 0.734863 0
+31 13 9 0.989258 0.734863 0
+31 13 10 0.989258 0.734863 0
+31 13 11 0.989258 0.734863 0
+31 13 12 0.989258 0.734863 0
+31 13 13 0.989258 0.735352 0
+31 13 14 0.989258 0.735352 0
+31 13 15 0.989746 0.73584 0
+31 13 16 0.989746 0.736816 0
+31 13 17 0.989746 0.736816 0
+31 13 18 0.993652 0.739746 0.190063
+31 13 19 1 0.74707 0.328613
+31 13 20 1 0.755371 0.424561
+31 13 21 1 0.763184 0.507812
+31 13 22 1 0.769531 0.57959
+31 13 23 1 0.775391 0.644531
+31 13 24 1 0.78125 0.704102
+31 13 25 1 0.787109 0.762695
+31 13 26 1 0.79248 0.818848
+31 13 27 1 0.796387 0.870605
+31 13 28 1 0.795898 0.916504
+31 13 29 1 0.789062 0.95752
+31 13 30 1 0.774902 0.993164
+31 13 31 0.976562 0.754395 1
+31 14 0 0.990234 0.73877 0
+31 14 1 0.990234 0.73877 0
+31 14 2 0.990234 0.73877 0
+31 14 3 0.990234 0.73877 0
+31 14 4 0.990234 0.73877 0
+31 14 5 0.990234 0.73877 0
+31 14 6 0.990234 0.73877 0
+31 14 7 0.990234 0.73877 0
+31 14 8 0.990234 0.73877 0
+31 14 9 0.990234 0.73877 0
+31 14 10 0.990234 0.73877 0
+31 14 11 0.990723 0.73877 0
+31 14 12 0.990723 0.73877 0
+31 14 13 0.990723 0.739258 0
+31 14 14 0.990723 0.739258 0
+31 14 15 0.990723 0.739746 0
+31 14 16 0.991211 0.740723 0
+31 14 17 0.991211 0.740723 0
+31 14 18 0.995117 0.743652 0.191528
+31 14 19 1 0.750977 0.329102
+31 14 20 1 0.758789 0.424805
+31 14 21 1 0.76709 0.508301
+31 14 22 1 0.772949 0.57959
+31 14 23 1 0.77832 0.64502
+31 14 24 1 0.78418 0.704102
+31 14 25 1 0.790039 0.762695
+31 14 26 1 0.794922 0.818848
+31 14 27 1 0.798828 0.870605
+31 14 28 1 0.79834 0.916504
+31 14 29 1 0.791504 0.95752
+31 14 30 1 0.776855 0.993164
+31 14 31 0.976562 0.756348 1
+31 15 0 0.992676 0.744629 0
+31 15 1 0.992676 0.744629 0
+31 15 2 0.992676 0.744629 0
+31 15 3 0.992676 0.744629 0
+31 15 4 0.992676 0.744629 0
+31 15 5 0.992676 0.744629 0
+31 15 6 0.992676 0.744629 0
+31 15 7 0.992676 0.744629 0
+31 15 8 0.992676 0.744629 0
+31 15 9 0.992676 0.744629 0
+31 15 10 0.992676 0.744629 0
+31 15 11 0.992676 0.744629 0
+31 15 12 0.992676 0.744629 0
+31 15 13 0.992676 0.745117 0
+31 15 14 0.992676 0.745117 0
+31 15 15 0.992676 0.745605 0
+31 15 16 0.993164 0.746582 0
+31 15 17 0.993164 0.746582 0
+31 15 18 0.99707 0.749512 0.194092
+31 15 19 1 0.756348 0.329834
+31 15 20 1 0.76416 0.425049
+31 15 21 1 0.771973 0.508301
+31 15 22 1 0.77832 0.580078
+31 15 23 1 0.783203 0.64502
+31 15 24 1 0.788574 0.704102
+31 15 25 1 0.793945 0.762695
+31 15 26 1 0.798828 0.818848
+31 15 27 1 0.802246 0.870605
+31 15 28 1 0.801758 0.916992
+31 15 29 1 0.794922 0.95752
+31 15 30 1 0.780273 0.993652
+31 15 31 0.977051 0.759766 1
+31 16 0 0.995117 0.75293 0
+31 16 1 0.995117 0.75293 0
+31 16 2 0.995117 0.75293 0
+31 16 3 0.995117 0.75293 0
+31 16 4 0.995117 0.75293 0
+31 16 5 0.995117 0.75293 0
+31 16 6 0.995117 0.75293 0
+31 16 7 0.995117 0.75293 0
+31 16 8 0.995117 0.75293 0
+31 16 9 0.995117 0.75293 0
+31 16 10 0.995117 0.75293 0
+31 16 11 0.995605 0.753418 0
+31 16 12 0.995605 0.753418 0
+31 16 13 0.995605 0.753418 0
+31 16 14 0.995605 0.753906 0
+31 16 15 0.995605 0.754395 0
+31 16 16 0.996094 0.754883 0
+31 16 17 0.996094 0.754883 0
+31 16 18 1 0.757812 0.198486
+31 16 19 1 0.764648 0.331299
+31 16 20 1 0.771973 0.425537
+31 16 21 1 0.779785 0.507812
+31 16 22 1 0.785645 0.580566
+31 16 23 1 0.790527 0.64502
+31 16 24 1 0.79541 0.704102
+31 16 25 1 0.800293 0.762695
+31 16 26 1 0.804688 0.818848
+31 16 27 1 0.807617 0.871094
+31 16 28 1 0.807129 0.916992
+31 16 29 1 0.799805 0.958008
+31 16 30 1 0.785156 0.993652
+31 16 31 0.978027 0.76416 1
+31 17 0 0.999023 0.764648 0
+31 17 1 0.999023 0.764648 0
+31 17 2 0.999023 0.764648 0
+31 17 3 0.999023 0.764648 0
+31 17 4 0.999023 0.764648 0
+31 17 5 0.999023 0.764648 0
+31 17 6 0.999023 0.764648 0
+31 17 7 0.999023 0.764648 0
+31 17 8 0.999023 0.764648 0
+31 17 9 0.999023 0.764648 0
+31 17 10 0.999023 0.764648 0
+31 17 11 0.999023 0.764648 0
+31 17 12 0.999023 0.764648 0
+31 17 13 0.999023 0.765137 0
+31 17 14 0.999023 0.765137 0
+31 17 15 0.999512 0.765625 0
+31 17 16 0.999512 0.766602 0
+31 17 17 0.999512 0.766602 0
+31 17 18 1 0.769531 0.205811
+31 17 19 1 0.775879 0.333984
+31 17 20 1 0.782715 0.426514
+31 17 21 1 0.789551 0.507812
+31 17 22 1 0.796387 0.581543
+31 17 23 1 0.800293 0.64502
+31 17 24 1 0.804688 0.703613
+31 17 25 1 0.808594 0.762207
+31 17 26 1 0.8125 0.818848
+31 17 27 1 0.814941 0.871094
+31 17 28 1 0.813965 0.91748
+31 17 29 1 0.806641 0.958496
+31 17 30 1 0.791504 0.994141
+31 17 31 0.979004 0.770508 1
+31 18 0 1 0.778809 0
+31 18 1 1 0.778809 0
+31 18 2 1 0.778809 0
+31 18 3 1 0.778809 0
+31 18 4 1 0.778809 0
+31 18 5 1 0.778809 0
+31 18 6 1 0.778809 0
+31 18 7 1 0.778809 0
+31 18 8 1 0.778809 0
+31 18 9 1 0.778809 0
+31 18 10 1 0.779297 0
+31 18 11 1 0.779297 0
+31 18 12 1 0.779297 0
+31 18 13 1 0.779297 0
+31 18 14 1 0.779785 0
+31 18 15 1 0.780273 0
+31 18 16 1 0.780762 0
+31 18 17 1 0.780762 0
+31 18 18 1 0.783691 0.217041
+31 18 19 1 0.790039 0.338623
+31 18 20 1 0.796387 0.428711
+31 18 21 1 0.802734 0.508789
+31 18 22 1 0.809082 0.582031
+31 18 23 1 0.812988 0.645508
+31 18 24 1 0.816406 0.703613
+31 18 25 1 0.819336 0.761719
+31 18 26 1 0.822266 0.818359
+31 18 27 1 0.824219 0.871094
+31 18 28 1 0.822754 0.917969
+31 18 29 1 0.81543 0.958496
+31 18 30 1 0.800293 0.994629
+31 18 31 0.97998 0.778809 1
+31 19 0 1 0.795898 0
+31 19 1 1 0.795898 0
+31 19 2 1 0.795898 0
+31 19 3 1 0.795898 0
+31 19 4 1 0.795898 0
+31 19 5 1 0.795898 0
+31 19 6 1 0.795898 0
+31 19 7 1 0.795898 0
+31 19 8 1 0.795898 0
+31 19 9 1 0.795898 0
+31 19 10 1 0.795898 0
+31 19 11 1 0.795898 0
+31 19 12 1 0.795898 0
+31 19 13 1 0.796387 0
+31 19 14 1 0.796387 0
+31 19 15 1 0.796875 0
+31 19 16 1 0.797363 0
+31 19 17 1 0.797363 0
+31 19 18 1 0.800781 0.232666
+31 19 19 1 0.806641 0.345459
+31 19 20 1 0.8125 0.432373
+31 19 21 1 0.818359 0.510254
+31 19 22 1 0.82373 0.582031
+31 19 23 1 0.828125 0.646484
+31 19 24 1 0.830078 0.703125
+31 19 25 1 0.83252 0.76123
+31 19 26 1 0.834473 0.817871
+31 19 27 1 0.834961 0.870605
+31 19 28 1 0.833008 0.917969
+31 19 29 1 0.825684 0.958984
+31 19 30 1 0.810059 0.994629
+31 19 31 0.980957 0.788574 1
+31 20 0 1 0.813965 0
+31 20 1 1 0.813965 0
+31 20 2 1 0.813965 0
+31 20 3 1 0.813965 0
+31 20 4 1 0.813965 0
+31 20 5 1 0.813965 0
+31 20 6 1 0.813965 0
+31 20 7 1 0.813965 0
+31 20 8 1 0.813965 0
+31 20 9 1 0.813965 0
+31 20 10 1 0.813965 0
+31 20 11 1 0.813965 0
+31 20 12 1 0.813965 0
+31 20 13 1 0.814453 0
+31 20 14 1 0.814453 0
+31 20 15 1 0.814941 0
+31 20 16 1 0.81543 0
+31 20 17 1 0.81543 0
+31 20 18 1 0.819824 0.252197
+31 20 19 1 0.825195 0.355225
+31 20 20 1 0.830566 0.437744
+31 20 21 1 0.835938 0.512695
+31 20 22 1 0.840332 0.58252
+31 20 23 1 0.844238 0.646484
+31 20 24 1 0.846191 0.703125
+31 20 25 1 0.847168 0.760254
+31 20 26 1 0.847656 0.816895
+31 20 27 1 0.847168 0.870117
+31 20 28 1 0.844727 0.91748
+31 20 29 1 0.836914 0.958984
+31 20 30 1 0.821289 0.995117
+31 20 31 0.981934 0.799316 1
+31 21 0 1 0.833496 0
+31 21 1 1 0.833496 0
+31 21 2 1 0.833496 0
+31 21 3 1 0.833496 0
+31 21 4 1 0.833496 0
+31 21 5 1 0.833496 0
+31 21 6 1 0.833496 0
+31 21 7 1 0.833496 0
+31 21 8 1 0.833496 0
+31 21 9 1 0.833496 0
+31 21 10 1 0.833496 0
+31 21 11 1 0.833496 0
+31 21 12 1 0.833496 0
+31 21 13 1 0.833496 0
+31 21 14 1 0.833984 0
+31 21 15 1 0.833984 0
+31 21 16 1 0.834473 0
+31 21 17 1 0.835449 0.12323
+31 21 18 1 0.839844 0.275635
+31 21 19 1 0.845215 0.368164
+31 21 20 1 0.850098 0.445557
+31 21 21 1 0.854492 0.51709
+31 21 22 1 0.858398 0.583984
+31 21 23 1 0.861328 0.645996
+31 21 24 1 0.86377 0.703125
+31 21 25 1 0.863281 0.758789
+31 21 26 1 0.862305 0.81543
+31 21 27 1 0.86084 0.869141
+31 21 28 1 0.857422 0.916992
+31 21 29 1 0.849609 0.958496
+31 21 30 1 0.833984 0.994629
+31 21 31 0.98291 0.811523 1
+31 22 0 1 0.852539 0
+31 22 1 1 0.852539 0
+31 22 2 1 0.852539 0
+31 22 3 1 0.852539 0
+31 22 4 1 0.852539 0
+31 22 5 1 0.852539 0
+31 22 6 1 0.852539 0
+31 22 7 1 0.852539 0
+31 22 8 1 0.853027 0
+31 22 9 1 0.853027 0
+31 22 10 1 0.853027 0
+31 22 11 1 0.853027 0
+31 22 12 1 0.853027 0
+31 22 13 1 0.853027 0
+31 22 14 1 0.853027 0
+31 22 15 1 0.853516 0
+31 22 16 1 0.854004 0
+31 22 17 1 0.856445 0.191895
+31 22 18 1 0.86084 0.301025
+31 22 19 1 0.865723 0.383545
+31 22 20 1 0.870117 0.455811
+31 22 21 1 0.874512 0.523438
+31 22 22 1 0.877441 0.586914
+31 22 23 1 0.879883 0.645996
+31 22 24 1 0.880859 0.70166
+31 22 25 1 0.880859 0.757324
+31 22 26 1 0.878418 0.812988
+31 22 27 1 0.875488 0.867188
+31 22 28 1 0.871094 0.915527
+31 22 29 1 0.862793 0.95752
+31 22 30 1 0.847168 0.994141
+31 22 31 0.983887 0.824707 1
+31 23 0 1 0.872559 0.15686
+31 23 1 1 0.872559 0.15686
+31 23 2 1 0.872559 0.15686
+31 23 3 1 0.872559 0.15686
+31 23 4 1 0.872559 0.15686
+31 23 5 1 0.872559 0.15686
+31 23 6 1 0.872559 0.15686
+31 23 7 1 0.872559 0.156982
+31 23 8 1 0.872559 0.156982
+31 23 9 1 0.872559 0.156982
+31 23 10 1 0.872559 0.157104
+31 23 11 1 0.872559 0.157349
+31 23 12 1 0.872559 0.157593
+31 23 13 1 0.873047 0.158203
+31 23 14 1 0.873047 0.158936
+31 23 15 1 0.873535 0.160156
+31 23 16 1 0.873535 0.161987
+31 23 17 1 0.876465 0.239258
+31 23 18 1 0.880371 0.326416
+31 23 19 1 0.885254 0.400391
+31 23 20 1 0.889648 0.467285
+31 23 21 1 0.893555 0.530762
+31 23 22 1 0.896484 0.591309
+31 23 23 1 0.897949 0.647949
+31 23 24 1 0.898438 0.700684
+31 23 25 1 0.897949 0.755859
+31 23 26 1 0.894531 0.810547
+31 23 27 1 0.890625 0.864258
+31 23 28 1 0.884766 0.914062
+31 23 29 1 0.875977 0.956543
+31 23 30 1 0.860352 0.993164
+31 23 31 0.984375 0.837891 1
+31 24 0 1 0.89209 0.228394
+31 24 1 1 0.89209 0.228394
+31 24 2 1 0.89209 0.228394
+31 24 3 1 0.89209 0.228394
+31 24 4 1 0.89209 0.228394
+31 24 5 1 0.89209 0.228394
+31 24 6 1 0.89209 0.228394
+31 24 7 1 0.89209 0.228394
+31 24 8 1 0.89209 0.228394
+31 24 9 1 0.89209 0.228394
+31 24 10 1 0.89209 0.228516
+31 24 11 1 0.89209 0.228638
+31 24 12 1 0.89209 0.22876
+31 24 13 1 0.89209 0.229004
+31 24 14 1 0.892578 0.229492
+31 24 15 1 0.892578 0.230103
+31 24 16 1 0.893066 0.231079
+31 24 17 1 0.89502 0.277344
+31 24 18 1 0.899414 0.350586
+31 24 19 1 0.903809 0.41748
+31 24 20 1 0.907715 0.479736
+31 24 21 1 0.911621 0.539551
+31 24 22 1 0.914062 0.597168
+31 24 23 1 0.915527 0.650391
+31 24 24 1 0.915527 0.700684
+31 24 25 1 0.914551 0.753418
+31 24 26 1 0.911133 0.808105
+31 24 27 1 0.905273 0.861328
+31 24 28 1 0.898438 0.911133
+31 24 29 1 0.88916 0.95459
+31 24 30 1 0.873535 0.991699
+31 24 31 0.984375 0.851074 1
+31 25 0 1 0.912109 0.280273
+31 25 1 1 0.912109 0.280273
+31 25 2 1 0.912109 0.280273
+31 25 3 1 0.912109 0.280273
+31 25 4 1 0.912109 0.280273
+31 25 5 1 0.912109 0.280273
+31 25 6 1 0.912109 0.280273
+31 25 7 1 0.912109 0.280273
+31 25 8 1 0.912109 0.280273
+31 25 9 1 0.912109 0.280273
+31 25 10 1 0.912109 0.280273
+31 25 11 1 0.912109 0.280273
+31 25 12 1 0.912109 0.280518
+31 25 13 1 0.912109 0.280518
+31 25 14 1 0.912109 0.281006
+31 25 15 1 0.912598 0.28125
+31 25 16 1 0.912598 0.281982
+31 25 17 1 0.914551 0.311768
+31 25 18 1 0.918457 0.375
+31 25 19 1 0.922363 0.435547
+31 25 20 1 0.926758 0.493652
+31 25 21 1 0.930176 0.549805
+31 25 22 1 0.932617 0.604004
+31 25 23 1 0.934082 0.654785
+31 25 24 1 0.934082 0.702148
+31 25 25 1 0.932129 0.751953
+31 25 26 1 0.928223 0.804199
+31 25 27 1 0.921875 0.856934
+31 25 28 1 0.913574 0.907227
+31 25 29 1 0.903809 0.95166
+31 25 30 1 0.888184 0.989258
+31 25 31 0.984375 0.865723 1
+31 26 0 1 0.932129 0.322266
+31 26 1 1 0.932129 0.322266
+31 26 2 1 0.932129 0.322266
+31 26 3 1 0.932129 0.322266
+31 26 4 1 0.932129 0.322266
+31 26 5 1 0.932129 0.322266
+31 26 6 1 0.932129 0.322266
+31 26 7 1 0.932129 0.322266
+31 26 8 1 0.932129 0.322266
+31 26 9 1 0.932129 0.322266
+31 26 10 1 0.932129 0.322266
+31 26 11 1 0.932129 0.32251
+31 26 12 1 0.932129 0.32251
+31 26 13 1 0.932129 0.32251
+31 26 14 1 0.932129 0.322754
+31 26 15 1 0.932617 0.322998
+31 26 16 1 0.932617 0.323486
+31 26 17 1 0.934082 0.342041
+31 26 18 1 0.9375 0.397705
+31 26 19 1 0.941406 0.453369
+31 26 20 1 0.945312 0.507324
+31 26 21 1 0.94873 0.560547
+31 26 22 1 0.951172 0.611816
+31 26 23 1 0.952637 0.659668
+31 26 24 1 0.952637 0.70459
+31 26 25 1 0.950684 0.751465
+31 26 26 1 0.946777 0.800781
+31 26 27 1 0.939941 0.852051
+31 26 28 1 0.930176 0.901855
+31 26 29 1 0.919434 0.947754
+31 26 30 1 0.903809 0.98584
+31 26 31 0.983398 0.881348 1
+31 27 0 1 0.95166 0.356201
+31 27 1 1 0.95166 0.356201
+31 27 2 1 0.95166 0.356201
+31 27 3 1 0.95166 0.356201
+31 27 4 1 0.95166 0.356201
+31 27 5 1 0.95166 0.356201
+31 27 6 1 0.95166 0.356201
+31 27 7 1 0.95166 0.356201
+31 27 8 1 0.95166 0.356201
+31 27 9 1 0.95166 0.356201
+31 27 10 1 0.95166 0.356201
+31 27 11 1 0.95166 0.356201
+31 27 12 1 0.95166 0.356201
+31 27 13 1 0.95166 0.356445
+31 27 14 1 0.95166 0.356445
+31 27 15 1 0.952148 0.356689
+31 27 16 1 0.952148 0.356934
+31 27 17 1 0.953125 0.366699
+31 27 18 1 0.956543 0.416992
+31 27 19 1 0.960449 0.46875
+31 27 20 1 0.963867 0.519531
+31 27 21 1 0.966797 0.569824
+31 27 22 1 0.969238 0.619141
+31 27 23 1 0.970703 0.664551
+31 27 24 1 0.970703 0.70752
+31 27 25 1 0.969238 0.751953
+31 27 26 1 0.965332 0.79834
+31 27 27 1 0.958496 0.846191
+31 27 28 1 0.94873 0.89502
+31 27 29 1 0.936035 0.941895
+31 27 30 1 0.920898 0.980957
+31 27 31 0.981445 0.898438 1
+31 28 0 1 0.970215 0.381348
+31 28 1 1 0.970215 0.381348
+31 28 2 1 0.970215 0.381348
+31 28 3 1 0.970215 0.381348
+31 28 4 1 0.970215 0.381348
+31 28 5 1 0.970215 0.381348
+31 28 6 1 0.970215 0.381348
+31 28 7 1 0.970215 0.381348
+31 28 8 1 0.970215 0.381348
+31 28 9 1 0.970215 0.381348
+31 28 10 1 0.970215 0.381348
+31 28 11 1 0.970215 0.381348
+31 28 12 1 0.970215 0.381348
+31 28 13 1 0.970215 0.381348
+31 28 14 1 0.970215 0.381348
+31 28 15 1 0.970215 0.381592
+31 28 16 1 0.970215 0.381592
+31 28 17 1 0.970703 0.383789
+31 28 18 1 0.974121 0.43042
+31 28 19 1 0.977539 0.479004
+31 28 20 1 0.980957 0.527344
+31 28 21 1 0.984375 0.576172
+31 28 22 1 0.986816 0.623535
+31 28 23 1 0.987793 0.66748
+31 28 24 1 0.987793 0.708984
+31 28 25 1 0.986816 0.751953
+31 28 26 1 0.983398 0.795898
+31 28 27 1 0.977051 0.84082
+31 28 28 1 0.967773 0.886719
+31 28 29 1 0.954102 0.933105
+31 28 30 0.999512 0.938477 0.974609
+31 28 31 0.978027 0.916992 1
+31 29 0 1 0.986816 0.397217
+31 29 1 1 0.986816 0.397217
+31 29 2 1 0.986816 0.397217
+31 29 3 1 0.986816 0.397217
+31 29 4 1 0.986816 0.397217
+31 29 5 1 0.986816 0.397217
+31 29 6 1 0.986816 0.397217
+31 29 7 1 0.986816 0.397217
+31 29 8 1 0.986816 0.397217
+31 29 9 1 0.986816 0.397217
+31 29 10 1 0.986816 0.397217
+31 29 11 1 0.986816 0.397217
+31 29 12 1 0.986816 0.397217
+31 29 13 1 0.986816 0.397217
+31 29 14 1 0.986816 0.397217
+31 29 15 1 0.986816 0.397217
+31 29 16 1 0.986816 0.397461
+31 29 17 1 0.987305 0.397461
+31 29 18 1 0.990234 0.436035
+31 29 19 1 0.993652 0.482422
+31 29 20 1 0.99707 0.529297
+31 29 21 1 1 0.576172
+31 29 22 1 1 0.622559
+31 29 23 1 1 0.665527
+31 29 24 1 1 0.706055
+31 29 25 1 1 0.748047
+31 29 26 1 1 0.791504
+31 29 27 1 0.994629 0.835449
+31 29 28 1 0.98584 0.878906
+31 29 29 1 0.973145 0.922852
+31 29 30 0.993164 0.956543 0.965332
+31 29 31 0.972656 0.936035 1
+31 30 0 0.99707 1 0.404541
+31 30 1 0.99707 1 0.404541
+31 30 2 0.99707 1 0.404541
+31 30 3 0.99707 1 0.404541
+31 30 4 0.99707 1 0.404541
+31 30 5 0.99707 1 0.404541
+31 30 6 0.99707 1 0.404541
+31 30 7 0.99707 1 0.404541
+31 30 8 0.99707 1 0.404541
+31 30 9 0.99707 1 0.404541
+31 30 10 0.99707 1 0.404541
+31 30 11 0.99707 1 0.404541
+31 30 12 0.99707 1 0.404541
+31 30 13 0.99707 1 0.404541
+31 30 14 0.99707 1 0.404541
+31 30 15 0.99707 1 0.404541
+31 30 16 0.99707 1 0.404541
+31 30 17 0.99707 1 0.404785
+31 30 18 0.999512 1 0.433594
+31 30 19 1 1 0.478516
+31 30 20 1 1 0.523926
+31 30 21 1 1 0.569824
+31 30 22 1 1 0.614746
+31 30 23 1 1 0.657227
+31 30 24 1 1 0.697266
+31 30 25 1 1 0.73877
+31 30 26 1 1 0.781738
+31 30 27 1 1 0.825684
+31 30 28 1 1 0.869141
+31 30 29 0.997559 0.990723 0.912109
+31 30 30 0.983887 0.975098 0.952637
+31 30 31 0.965332 0.955078 0.990723
+31 31 0 0.978027 1 0.406494
+31 31 1 0.978027 1 0.406494
+31 31 2 0.978027 1 0.406494
+31 31 3 0.978027 1 0.406494
+31 31 4 0.978027 1 0.406494
+31 31 5 0.978027 1 0.406494
+31 31 6 0.978027 1 0.406494
+31 31 7 0.978027 1 0.406494
+31 31 8 0.978027 1 0.406494
+31 31 9 0.978027 1 0.406494
+31 31 10 0.978027 1 0.406494
+31 31 11 0.978027 1 0.406494
+31 31 12 0.978027 1 0.406494
+31 31 13 0.978027 1 0.406494
+31 31 14 0.978027 1 0.406494
+31 31 15 0.978027 1 0.406494
+31 31 16 0.978027 1 0.406494
+31 31 17 0.978027 1 0.406494
+31 31 18 0.979492 1 0.425537
+31 31 19 0.98291 1 0.468994
+31 31 20 0.986816 1 0.512695
+31 31 21 0.990234 1 0.557129
+31 31 22 0.993652 1 0.601074
+31 31 23 0.996094 1 0.642578
+31 31 24 0.998047 1 0.681641
+31 31 25 0.999023 1 0.722656
+31 31 26 0.998535 1 0.765137
+31 31 27 0.996094 1 0.809082
+31 31 28 0.991699 1 0.853027
+31 31 29 0.983398 1 0.896484
+31 31 30 0.97168 0.992676 0.937988
+31 31 31 0.955566 0.973633 0.976562
diff --git a/release/datafiles/colormanagement/luts/rrt_ut33_p3dci.spi3d b/release/datafiles/colormanagement/luts/rrt_ut33_p3dci.spi3d
new file mode 100644
index 00000000000..6b64964ac5c
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/rrt_ut33_p3dci.spi3d
@@ -0,0 +1,32771 @@
+SPILUT 1.0
+3 3
+32 32 32
+0 0 0 0.00115395 0.00107956 0.00112534
+0 0 1 0.00597382 0.0059433 0.00737
+0 0 2 0.00935364 0.0106354 0.0158691
+0 0 3 0.00822449 0.0147629 0.0266266
+0 0 4 0 0.0185394 0.0403748
+0 0 5 0 0.0212097 0.0550232
+0 0 6 0 0.0236664 0.0709839
+0 0 7 0 0.0269318 0.0901489
+0 0 8 0 0.0317993 0.114563
+0 0 9 0 0.0387878 0.14624
+0 0 10 0 0.048584 0.187744
+0 0 11 0 0.061554 0.240845
+0 0 12 0 0.0769653 0.303467
+0 0 13 0 0.0946045 0.374268
+0 0 14 0 0.114075 0.452637
+0 0 15 0 0.134888 0.536133
+0 0 16 0 0.156616 0.622559
+0 0 17 0 0.17749 0.706055
+0 0 18 0 0.196777 0.782715
+0 0 19 0 0.213745 0.850098
+0 0 20 0 0.223022 0.887695
+0 0 21 0 0.224854 0.89502
+0 0 22 0 0.226807 0.902832
+0 0 23 0 0.22876 0.910645
+0 0 24 0 0.230835 0.918457
+0 0 25 0 0.233032 0.927246
+0 0 26 0 0.235474 0.937012
+0 0 27 0 0.238159 0.947754
+0 0 28 0 0.241211 0.959961
+0 0 29 0 0.244385 0.972656
+0 0 30 0 0.247803 0.986328
+0 0 31 0 0.251221 1
+0 1 0 0.00468063 0.00563812 0.0049324
+0 1 1 0.00670242 0.00868988 0.00909424
+0 1 2 0.00834656 0.0128784 0.0163116
+0 1 3 0.0019989 0.0171967 0.0265656
+0 1 4 0 0.0213013 0.0402222
+0 1 5 0 0.0239716 0.0549622
+0 1 6 0 0.0261078 0.0709839
+0 1 7 0 0.0289154 0.0901489
+0 1 8 0 0.0332947 0.114563
+0 1 9 0 0.0398865 0.14624
+0 1 10 0 0.0493774 0.187622
+0 1 11 0 0.0621033 0.240845
+0 1 12 0 0.0773926 0.303467
+0 1 13 0 0.0949097 0.374268
+0 1 14 0 0.114319 0.452637
+0 1 15 0 0.135132 0.536133
+0 1 16 0 0.156738 0.622559
+0 1 17 0 0.177612 0.706055
+0 1 18 0 0.196899 0.782715
+0 1 19 0 0.213745 0.850098
+0 1 20 0 0.223145 0.887695
+0 1 21 0 0.224976 0.89502
+0 1 22 0 0.226807 0.902832
+0 1 23 0 0.228882 0.910645
+0 1 24 0 0.230835 0.918457
+0 1 25 0 0.233032 0.927246
+0 1 26 0 0.235474 0.937012
+0 1 27 0 0.238159 0.947754
+0 1 28 0 0.241211 0.959961
+0 1 29 0 0.244385 0.972656
+0 1 30 0 0.247803 0.986328
+0 1 31 0 0.251221 1
+0 2 0 0.00698471 0.0126953 0.00907135
+0 2 1 0.00671768 0.0140076 0.0120697
+0 2 2 0.00474167 0.0167999 0.0176392
+0 2 3 0 0.0207825 0.0268097
+0 2 4 0 0.0251465 0.0401001
+0 2 5 0 0.0278931 0.0548706
+0 2 6 0 0.0297394 0.0709229
+0 2 7 0 0.0319824 0.0901489
+0 2 8 0 0.0357056 0.114563
+0 2 9 0 0.0417175 0.14624
+0 2 10 0 0.0507202 0.187622
+0 2 11 0 0.0631104 0.240845
+0 2 12 0 0.078125 0.303467
+0 2 13 0 0.0953979 0.374268
+0 2 14 0 0.114685 0.452637
+0 2 15 0 0.135376 0.536133
+0 2 16 0 0.156982 0.622559
+0 2 17 0 0.177734 0.706055
+0 2 18 0 0.197021 0.782715
+0 2 19 0 0.213867 0.850098
+0 2 20 0 0.223145 0.887695
+0 2 21 0 0.224976 0.89502
+0 2 22 0 0.226929 0.902832
+0 2 23 0 0.228882 0.910645
+0 2 24 0 0.230835 0.918457
+0 2 25 0 0.233032 0.927246
+0 2 26 0 0.235474 0.937012
+0 2 27 0 0.238159 0.947754
+0 2 28 0 0.241211 0.959961
+0 2 29 0 0.244385 0.972656
+0 2 30 0 0.247803 0.986328
+0 2 31 0 0.251221 1
+0 3 0 0 0.0224152 0.0126877
+0 3 1 0 0.0226593 0.0156555
+0 3 2 0 0.0238037 0.0202179
+0 3 3 0 0.026535 0.0279083
+0 3 4 0 0.0305786 0.0401306
+0 3 5 0 0.0333862 0.054718
+0 3 6 0 0.0349731 0.0708618
+0 3 7 0 0.0366516 0.0901489
+0 3 8 0 0.0395813 0.114563
+0 3 9 0 0.0447388 0.14624
+0 3 10 0 0.053009 0.187622
+0 3 11 0 0.0648193 0.240845
+0 3 12 0 0.0794067 0.303467
+0 3 13 0 0.0963745 0.374268
+0 3 14 0 0.115356 0.452637
+0 3 15 0 0.135864 0.536133
+0 3 16 0 0.157349 0.622559
+0 3 17 0 0.178101 0.706055
+0 3 18 0 0.197144 0.782715
+0 3 19 0 0.213989 0.850098
+0 3 20 0 0.223389 0.887695
+0 3 21 0 0.225098 0.89502
+0 3 22 0 0.227051 0.902832
+0 3 23 0 0.229004 0.910645
+0 3 24 0 0.230957 0.918457
+0 3 25 0 0.233154 0.927246
+0 3 26 0 0.235474 0.937012
+0 3 27 0 0.238159 0.947754
+0 3 28 0 0.241211 0.959961
+0 3 29 0 0.244507 0.972656
+0 3 30 0 0.247803 0.986328
+0 3 31 0 0.251221 1
+0 4 0 0 0.0352783 0.0150452
+0 4 1 0 0.0351257 0.0187683
+0 4 2 0 0.0352478 0.0235596
+0 4 3 0 0.0363464 0.0304108
+0 4 4 0 0.0386658 0.040741
+0 4 5 0 0.0410461 0.0545959
+0 4 6 0 0.0424194 0.0708008
+0 4 7 0 0.0435181 0.0900879
+0 4 8 0 0.0455933 0.114563
+0 4 9 0 0.0497131 0.146118
+0 4 10 0 0.0570068 0.187622
+0 4 11 0 0.0679321 0.240845
+0 4 12 0 0.0817261 0.303467
+0 4 13 0 0.0980835 0.374268
+0 4 14 0 0.116699 0.452637
+0 4 15 0 0.136841 0.536133
+0 4 16 0 0.158081 0.622559
+0 4 17 0 0.178589 0.706055
+0 4 18 0 0.197632 0.782715
+0 4 19 0 0.214355 0.850098
+0 4 20 0 0.223633 0.887695
+0 4 21 0 0.225342 0.89502
+0 4 22 0 0.227173 0.902832
+0 4 23 0 0.229126 0.910645
+0 4 24 0 0.231079 0.918457
+0 4 25 0 0.233154 0.927246
+0 4 26 0 0.235596 0.937012
+0 4 27 0 0.238281 0.947754
+0 4 28 0 0.241333 0.959961
+0 4 29 0 0.244507 0.972656
+0 4 30 0 0.247925 0.986328
+0 4 31 0 0.251465 1
+0 5 0 0 0.0501099 0.0144577
+0 5 1 0 0.0500183 0.0195465
+0 5 2 0 0.0499573 0.0253143
+0 5 3 0 0.0500183 0.0324097
+0 5 4 0 0.0505676 0.0417786
+0 5 5 0 0.0517578 0.0545654
+0 5 6 0 0.0527344 0.0705566
+0 5 7 0 0.0533447 0.0899658
+0 5 8 0 0.0545654 0.114502
+0 5 9 0 0.0575562 0.146118
+0 5 10 0 0.0635986 0.1875
+0 5 11 0 0.0733643 0.240723
+0 5 12 0 0.0859985 0.303467
+0 5 13 0 0.101379 0.374268
+0 5 14 0 0.119141 0.452637
+0 5 15 0 0.138672 0.536133
+0 5 16 0 0.159424 0.622559
+0 5 17 0 0.179688 0.706055
+0 5 18 0 0.198486 0.782715
+0 5 19 0 0.215088 0.850098
+0 5 20 0 0.224121 0.887695
+0 5 21 0 0.225708 0.89502
+0 5 22 0 0.227539 0.902832
+0 5 23 0 0.22937 0.910645
+0 5 24 0 0.231323 0.918457
+0 5 25 0 0.233398 0.927246
+0 5 26 0 0.23584 0.937012
+0 5 27 0 0.238403 0.947754
+0 5 28 0 0.241455 0.959961
+0 5 29 0 0.244629 0.972656
+0 5 30 0 0.247925 0.986328
+0 5 31 0 0.251465 1
+0 6 0 0 0.0656128 0.00494766
+0 6 1 0 0.0656738 0.0162506
+0 6 2 0 0.0656738 0.0238037
+0 6 3 0 0.0656738 0.0319519
+0 6 4 0 0.0657959 0.0417786
+0 6 5 0 0.06604 0.0543213
+0 6 6 0 0.0664062 0.0700073
+0 6 7 0 0.0665894 0.0896606
+0 6 8 0 0.0671387 0.11438
+0 6 9 0 0.0690308 0.145996
+0 6 10 0 0.0738525 0.187378
+0 6 11 0 0.0822144 0.240601
+0 6 12 0 0.0932617 0.303223
+0 6 13 0 0.107117 0.374268
+0 6 14 0 0.123596 0.452637
+0 6 15 0 0.14209 0.536133
+0 6 16 0 0.162109 0.622559
+0 6 17 0 0.181763 0.706055
+0 6 18 0 0.200073 0.782715
+0 6 19 0 0.216309 0.850098
+0 6 20 0 0.225098 0.887695
+0 6 21 0 0.226562 0.89502
+0 6 22 0 0.228149 0.902832
+0 6 23 0 0.22998 0.910645
+0 6 24 0 0.231812 0.918457
+0 6 25 0 0.233765 0.927246
+0 6 26 0 0.236084 0.937012
+0 6 27 0 0.23877 0.947754
+0 6 28 0 0.241699 0.959961
+0 6 29 0 0.244873 0.972656
+0 6 30 0 0.248169 0.986328
+0 6 31 0 0.251709 1
+0 7 0 0 0.0836792 0
+0 7 1 0 0.0836792 0
+0 7 2 0 0.0837402 0.0175629
+0 7 3 0 0.0838013 0.0284576
+0 7 4 0 0.0839233 0.0395508
+0 7 5 0 0.0840454 0.0527344
+0 7 6 0 0.0842285 0.0687866
+0 7 7 0 0.0842896 0.0888672
+0 7 8 0 0.0842896 0.113953
+0 7 9 0 0.0853271 0.145752
+0 7 10 0 0.0889893 0.187134
+0 7 11 0 0.0960083 0.240356
+0 7 12 0 0.105347 0.303223
+0 7 13 0 0.117126 0.374268
+0 7 14 0 0.131592 0.452637
+0 7 15 0 0.148438 0.536133
+0 7 16 0 0.166992 0.622559
+0 7 17 0 0.185547 0.706055
+0 7 18 0 0.203003 0.782715
+0 7 19 0 0.218628 0.850098
+0 7 20 0 0.227051 0.887695
+0 7 21 0 0.228149 0.89502
+0 7 22 0 0.229492 0.902832
+0 7 23 0 0.230957 0.910645
+0 7 24 0 0.232666 0.918945
+0 7 25 0 0.234619 0.927246
+0 7 26 0 0.236816 0.937012
+0 7 27 0 0.239258 0.947754
+0 7 28 0 0.242188 0.959961
+0 7 29 0 0.245239 0.973145
+0 7 30 0 0.248535 0.986328
+0 7 31 0 0.251953 1
+0 8 0 0 0.106323 0
+0 8 1 0 0.106323 0
+0 8 2 0 0.106384 0
+0 8 3 0 0.106445 0.018631
+0 8 4 0 0.106567 0.0344238
+0 8 5 0 0.106689 0.0492859
+0 8 6 0 0.106934 0.0662842
+0 8 7 0 0.107117 0.0870972
+0 8 8 0 0.107056 0.112976
+0 8 9 0 0.107544 0.145264
+0 8 10 0 0.110413 0.186646
+0 8 11 0 0.116394 0.23999
+0 8 12 0 0.124023 0.302979
+0 8 13 0 0.133545 0.374023
+0 8 14 0 0.145386 0.452393
+0 8 15 0 0.159668 0.536133
+0 8 16 0 0.175903 0.622559
+0 8 17 0 0.192627 0.706055
+0 8 18 0 0.20874 0.782715
+0 8 19 0 0.223267 0.850586
+0 8 20 0 0.230835 0.888184
+0 8 21 0 0.231079 0.895508
+0 8 22 0 0.231934 0.90332
+0 8 23 0 0.233032 0.911133
+0 8 24 0 0.234375 0.918945
+0 8 25 0 0.236084 0.927734
+0 8 26 0 0.238037 0.937012
+0 8 27 0 0.240356 0.947754
+0 8 28 0 0.243164 0.959961
+0 8 29 0 0.246094 0.973145
+0 8 30 0 0.249268 0.986328
+0 8 31 0 0.252441 1
+0 9 0 0 0.135132 0
+0 9 1 0 0.135132 0
+0 9 2 0 0.135132 0
+0 9 3 0 0.135254 0
+0 9 4 0 0.135254 0.0202179
+0 9 5 0 0.135376 0.0426025
+0 9 6 0 0.135498 0.0618591
+0 9 7 0 0.135864 0.0838623
+0 9 8 0 0.136108 0.11084
+0 9 9 0 0.136719 0.144287
+0 9 10 0 0.13916 0.186035
+0 9 11 0 0.144409 0.23938
+0 9 12 0 0.150757 0.30249
+0 9 13 0 0.158203 0.374023
+0 9 14 0 0.167236 0.452393
+0 9 15 0 0.178345 0.536133
+0 9 16 0 0.191406 0.623047
+0 9 17 0 0.2052 0.706543
+0 9 18 0 0.218994 0.783203
+0 9 19 0 0.231689 0.850586
+0 9 20 0 0.237793 0.888672
+0 9 21 0 0.236572 0.895996
+0 9 22 0 0.23645 0.90332
+0 9 23 0 0.236938 0.911133
+0 9 24 0 0.237671 0.918945
+0 9 25 0 0.238892 0.927734
+0 9 26 0 0.240479 0.9375
+0 9 27 0 0.242554 0.948242
+0 9 28 0 0.244995 0.960449
+0 9 29 0 0.247681 0.973145
+0 9 30 0 0.250488 0.986328
+0 9 31 0 0.253662 1
+0 10 0 0 0.172241 0
+0 10 1 0 0.172241 0
+0 10 2 0 0.172241 0
+0 10 3 0 0.172363 0
+0 10 4 0 0.172363 0
+0 10 5 0 0.172485 0.0250854
+0 10 6 0 0.172485 0.0544128
+0 10 7 0 0.172485 0.0795288
+0 10 8 0 0.172729 0.108215
+0 10 9 0 0.173584 0.142944
+0 10 10 0 0.175659 0.185425
+0 10 11 0 0.18042 0.238525
+0 10 12 0 0.185913 0.301758
+0 10 13 0 0.19165 0.373535
+0 10 14 0 0.19812 0.452393
+0 10 15 0 0.205811 0.536133
+0 10 16 0 0.21521 0.623047
+0 10 17 0 0.225464 0.706543
+0 10 18 0 0.23584 0.783203
+0 10 19 0 0.24585 0.851074
+0 10 20 0 0.249634 0.889648
+0 10 21 0 0.246216 0.896484
+0 10 22 0 0.244385 0.904297
+0 10 23 0 0.243652 0.912109
+0 10 24 0 0.24353 0.919434
+0 10 25 0 0.244019 0.928223
+0 10 26 0 0.244873 0.937988
+0 10 27 0 0.246216 0.94873
+0 10 28 0 0.248169 0.960449
+0 10 29 0 0.250488 0.973633
+0 10 30 0 0.25293 0.986816
+0 10 31 0 0.255859 1
+0 11 0 0 0.220459 0
+0 11 1 0 0.220459 0
+0 11 2 0 0.220459 0
+0 11 3 0 0.220459 0
+0 11 4 0 0.220581 0
+0 11 5 0 0.220581 0
+0 11 6 0 0.220703 0.0350037
+0 11 7 0 0.220581 0.0720215
+0 11 8 0 0.220459 0.104797
+0 11 9 0 0.220703 0.141724
+0 11 10 0 0.222168 0.185181
+0 11 11 0 0.225464 0.237915
+0 11 12 0 0.229858 0.300781
+0 11 13 0 0.234375 0.372803
+0 11 14 0 0.23877 0.451904
+0 11 15 0 0.24353 0.536133
+0 11 16 0 0.249146 0.623047
+0 11 17 0 0.255127 0.707031
+0 11 18 0 0.261719 0.783691
+0 11 19 0 0.268066 0.851562
+0 11 20 0 0.268555 0.891113
+0 11 21 0 0.261963 0.897949
+0 11 22 0 0.257568 0.905273
+0 11 23 0 0.254883 0.913086
+0 11 24 0 0.253418 0.92041
+0 11 25 0 0.252441 0.929199
+0 11 26 0 0.252197 0.938477
+0 11 27 0 0.252686 0.949219
+0 11 28 0 0.253662 0.960938
+0 11 29 0 0.255127 0.974121
+0 11 30 0 0.25708 0.987305
+0 11 31 0 0.259277 1
+0 12 0 0 0.278809 0
+0 12 1 0 0.278809 0
+0 12 2 0 0.278809 0
+0 12 3 0 0.278809 0
+0 12 4 0 0.278809 0
+0 12 5 0 0.279053 0
+0 12 6 0 0.279053 0
+0 12 7 0 0.279053 0.0516052
+0 12 8 0 0.279053 0.0966797
+0 12 9 0 0.279053 0.138306
+0 12 10 0 0.279541 0.18396
+0 12 11 0 0.28125 0.236938
+0 12 12 0 0.283936 0.299561
+0 12 13 0 0.287109 0.371582
+0 12 14 0 0.290039 0.451172
+0 12 15 0 0.292236 0.535645
+0 12 16 0 0.294434 0.623535
+0 12 17 0 0.296387 0.70752
+0 12 18 0 0.29834 0.784668
+0 12 19 0 0.300293 0.852051
+0 12 20 0 0.297119 0.893555
+0 12 21 0 0.285889 0.899902
+0 12 22 0 0.277832 0.907227
+0 12 23 0 0.272461 0.914551
+0 12 24 0 0.268799 0.922363
+0 12 25 0 0.266113 0.930664
+0 12 26 0 0.26416 0.939941
+0 12 27 0 0.262939 0.950195
+0 12 28 0 0.262695 0.961914
+0 12 29 0 0.263184 0.974609
+0 12 30 0 0.263916 0.987793
+0 12 31 0 0.265381 1
+0 13 0 0 0.345215 0
+0 13 1 0 0.345215 0
+0 13 2 0 0.345215 0
+0 13 3 0 0.345215 0
+0 13 4 0 0.345215 0
+0 13 5 0 0.345459 0
+0 13 6 0 0.345459 0
+0 13 7 0 0.345459 0
+0 13 8 0 0.345703 0.0759888
+0 13 9 0 0.345703 0.128784
+0 13 10 0 0.346191 0.178955
+0 13 11 0 0.34668 0.234131
+0 13 12 0 0.348145 0.297363
+0 13 13 0 0.350098 0.369385
+0 13 14 0 0.351562 0.449463
+0 13 15 0 0.351562 0.535156
+0 13 16 0 0.35083 0.623535
+0 13 17 0 0.348877 0.708008
+0 13 18 0 0.346436 0.785645
+0 13 19 0 0.343994 0.853516
+0 13 20 0 0.33667 0.897461
+0 13 21 0 0.319824 0.903809
+0 13 22 0 0.307373 0.910645
+0 13 23 0 0.29834 0.91748
+0 13 24 0 0.291748 0.924805
+0 13 25 0 0.286377 0.933105
+0 13 26 0 0.282227 0.941895
+0 13 27 0 0.279053 0.952148
+0 13 28 0 0.276855 0.963867
+0 13 29 0 0.275391 0.976074
+0 13 30 0 0.274902 0.989258
+0 13 31 0 0.274658 1
+0 14 0 0 0.419189 0
+0 14 1 0 0.419189 0
+0 14 2 0 0.419189 0
+0 14 3 0 0.419189 0
+0 14 4 0 0.419189 0
+0 14 5 0 0.419189 0
+0 14 6 0 0.419434 0
+0 14 7 0 0.419434 0
+0 14 8 0 0.419678 0
+0 14 9 0 0.419922 0.107971
+0 14 10 0 0.42041 0.167725
+0 14 11 0 0.420898 0.226929
+0 14 12 0 0.421631 0.292236
+0 14 13 0 0.422607 0.365234
+0 14 14 0 0.422852 0.446045
+0 14 15 0 0.421631 0.532715
+0 14 16 0 0.418701 0.622559
+0 14 17 0 0.41333 0.708008
+0 14 18 0 0.406494 0.786133
+0 14 19 0 0.399414 0.854492
+0 14 20 0 0.388672 0.90332
+0 14 21 0 0.365479 0.90918
+0 14 22 0 0.347656 0.915527
+0 14 23 0 0.334229 0.922363
+0 14 24 0 0.323975 0.929199
+0 14 25 0 0.31543 0.936523
+0 14 26 0 0.307861 0.945312
+0 14 27 0 0.302002 0.955078
+0 14 28 0 0.297119 0.966309
+0 14 29 0 0.293457 0.978516
+0 14 30 0 0.290771 0.991211
+0 14 31 0 0.288818 1
+0 15 0 0 0.498779 0
+0 15 1 0 0.498779 0
+0 15 2 0 0.498779 0
+0 15 3 0 0.498779 0
+0 15 4 0 0.498779 0
+0 15 5 0 0.498779 0
+0 15 6 0 0.498779 0
+0 15 7 0 0.498779 0
+0 15 8 0 0.499023 0
+0 15 9 0 0.499268 0.0470886
+0 15 10 0 0.499756 0.146362
+0 15 11 0 0.500488 0.213501
+0 15 12 0 0.501465 0.282471
+0 15 13 0 0.502441 0.357422
+0 15 14 0 0.502441 0.439941
+0 15 15 0 0.500488 0.527832
+0 15 16 0 0.496094 0.619629
+0 15 17 0 0.488037 0.707031
+0 15 18 0 0.477783 0.786621
+0 15 19 0 0.466553 0.855957
+0 15 20 0 0.453125 0.910156
+0 15 21 0 0.422852 0.916992
+0 15 22 0 0.39917 0.92334
+0 15 23 0 0.380615 0.929688
+0 15 24 0 0.366211 0.936035
+0 15 25 0 0.35376 0.942871
+0 15 26 0 0.342529 0.951172
+0 15 27 0 0.333008 0.959961
+0 15 28 0 0.325195 0.970703
+0 15 29 0 0.318604 0.981934
+0 15 30 0 0.312988 0.994141
+0 15 31 0 0.308594 1
+0 16 0 0 0.582031 0
+0 16 1 0 0.582031 0
+0 16 2 0 0.582031 0
+0 16 3 0 0.582031 0
+0 16 4 0 0.582031 0
+0 16 5 0 0.582031 0
+0 16 6 0 0.582031 0
+0 16 7 0 0.58252 0
+0 16 8 0 0.58252 0
+0 16 9 0 0.58252 0
+0 16 10 0 0.583008 0.103455
+0 16 11 0 0.583984 0.191284
+0 16 12 0 0.585449 0.266602
+0 16 13 0 0.586426 0.344727
+0 16 14 0 0.586914 0.429199
+0 16 15 0 0.585938 0.519531
+0 16 16 0 0.581055 0.612793
+0 16 17 0 0.571777 0.703125
+0 16 18 0 0.558594 0.785156
+0 16 19 0 0.543945 0.855957
+0 16 20 0 0.527832 0.914551
+0 16 21 0 0.49292 0.927246
+0 16 22 0 0.462891 0.93457
+0 16 23 0 0.438965 0.940918
+0 16 24 0 0.419678 0.946289
+0 16 25 0 0.402344 0.952637
+0 16 26 0 0.386963 0.959961
+0 16 27 0 0.373291 0.967773
+0 16 28 0 0.361572 0.977539
+0 16 29 0 0.351562 0.987793
+0 16 30 0 0.342773 0.999512
+0 16 31 0 0.335205 1
+0 17 0 0 0.664551 0
+0 17 1 0 0.664551 0
+0 17 2 0 0.664551 0
+0 17 3 0 0.664551 0
+0 17 4 0 0.664551 0
+0 17 5 0 0.664551 0
+0 17 6 0 0.664551 0
+0 17 7 0 0.664551 0
+0 17 8 0 0.664551 0
+0 17 9 0 0.664551 0
+0 17 10 0 0.665039 0
+0 17 11 0 0.666016 0.155151
+0 17 12 0 0.66748 0.24353
+0 17 13 0 0.669434 0.326172
+0 17 14 0 0.671387 0.413086
+0 17 15 0 0.670898 0.505371
+0 17 16 0 0.666992 0.601074
+0 17 17 0 0.658203 0.694336
+0 17 18 0 0.644531 0.779785
+0 17 19 0 0.627441 0.853516
+0 17 20 0 0.60791 0.914062
+0 17 21 0 0.571777 0.937988
+0 17 22 0 0.536621 0.94873
+0 17 23 0 0.507324 0.955566
+0 17 24 0 0.483154 0.960938
+0 17 25 0 0.460938 0.966797
+0 17 26 0 0.440674 0.972656
+0 17 27 0 0.422119 0.979492
+0 17 28 0 0.406006 0.987305
+0 17 29 0 0.391846 0.996582
+0 17 30 0 0.37915 1
+0 17 31 0 0.36792 1
+0 18 0 0 0.741211 0
+0 18 1 0 0.741211 0
+0 18 2 0 0.741211 0
+0 18 3 0 0.741211 0
+0 18 4 0 0.741211 0
+0 18 5 0 0.741211 0
+0 18 6 0 0.741211 0
+0 18 7 0 0.741211 0
+0 18 8 0 0.741211 0
+0 18 9 0 0.741211 0
+0 18 10 0 0.741699 0
+0 18 11 0 0.742188 0.0792847
+0 18 12 0 0.744141 0.211304
+0 18 13 0 0.746582 0.301758
+0 18 14 0 0.749023 0.391602
+0 18 15 0 0.750488 0.485596
+0 18 16 0 0.748535 0.583496
+0 18 17 0 0.741699 0.680176
+0 18 18 0 0.729004 0.769043
+0 18 19 0 0.711426 0.84668
+0 18 20 0 0.69043 0.910645
+0 18 21 0 0.655762 0.945801
+0 18 22 0 0.618164 0.963867
+0 18 23 0 0.584473 0.973633
+0 18 24 0 0.555176 0.979492
+0 18 25 0 0.527344 0.984863
+0 18 26 0 0.501953 0.989746
+0 18 27 0 0.478516 0.995117
+0 18 28 0 0.45752 1
+0 18 29 0 0.438477 1
+0 18 30 0 0.421631 1
+0 18 31 0 0.40625 1
+0 19 0 0 0.810059 0
+0 19 1 0 0.810059 0
+0 19 2 0 0.810059 0
+0 19 3 0 0.810059 0
+0 19 4 0 0.810059 0
+0 19 5 0 0.810059 0
+0 19 6 0 0.810059 0
+0 19 7 0 0.810059 0
+0 19 8 0 0.810059 0
+0 19 9 0 0.810059 0
+0 19 10 0 0.810547 0
+0 19 11 0 0.810547 0
+0 19 12 0 0.812012 0.166138
+0 19 13 0 0.814941 0.272217
+0 19 14 0 0.818359 0.366455
+0 19 15 0 0.820801 0.462158
+0 19 16 0 0.821289 0.561523
+0 19 17 0 0.817383 0.660156
+0 19 18 0 0.807129 0.75293
+0 19 19 0 0.791016 0.834473
+0 19 20 0 0.77002 0.901855
+0 19 21 0 0.73877 0.94873
+0 19 22 0 0.70166 0.976074
+0 19 23 0 0.665527 0.991211
+0 19 24 0 0.632324 1
+0 19 25 0 0.599609 1
+0 19 26 0 0.568848 1
+0 19 27 0 0.540039 1
+0 19 28 0 0.513672 1
+0 19 29 0 0.48999 1
+0 19 30 0 0.468262 1
+0 19 31 0 0.44873 1
+0 20 0 0 0.869629 0
+0 20 1 0 0.869629 0
+0 20 2 0 0.869629 0
+0 20 3 0 0.869629 0
+0 20 4 0 0.869629 0
+0 20 5 0 0.869629 0
+0 20 6 0 0.869629 0
+0 20 7 0 0.869629 0
+0 20 8 0 0.869629 0
+0 20 9 0 0.869629 0
+0 20 10 0 0.869629 0
+0 20 11 0 0.870117 0
+0 20 12 0 0.870605 0.0809326
+0 20 13 0 0.873535 0.237427
+0 20 14 0 0.877441 0.338623
+0 20 15 0 0.881348 0.436279
+0 20 16 0 0.883789 0.536621
+0 20 17 0 0.882812 0.636719
+0 20 18 0 0.875488 0.731934
+0 20 19 0 0.861328 0.816895
+0 20 20 0 0.841797 0.888184
+0 20 21 0 0.81543 0.944824
+0 20 22 0 0.781738 0.982422
+0 20 23 0 0.745117 1
+0 20 24 0 0.709961 1
+0 20 25 0 0.673828 1
+0 20 26 0 0.638672 1
+0 20 27 0 0.60498 1
+0 20 28 0 0.573242 1
+0 20 29 0 0.544434 1
+0 20 30 0 0.517578 1
+0 20 31 0 0.493652 1
+0 21 0 0 0.92041 0
+0 21 1 0 0.92041 0
+0 21 2 0 0.92041 0
+0 21 3 0 0.92041 0
+0 21 4 0 0.92041 0
+0 21 5 0 0.92041 0
+0 21 6 0 0.92041 0
+0 21 7 0 0.92041 0
+0 21 8 0 0.92041 0
+0 21 9 0 0.92041 0
+0 21 10 0 0.92041 0
+0 21 11 0 0.92041 0
+0 21 12 0 0.920898 0
+0 21 13 0 0.92334 0.193848
+0 21 14 0 0.927246 0.307617
+0 21 15 0 0.932129 0.408203
+0 21 16 0 0.936035 0.509277
+0 21 17 0 0.9375 0.609863
+0 21 18 0 0.933594 0.706543
+0 21 19 0 0.922852 0.794434
+0 21 20 0 0.90625 0.869141
+0 21 21 0 0.883301 0.932129
+0 21 22 0 0.854492 0.979492
+0 21 23 0 0.820801 1
+0 21 24 0 0.785645 1
+0 21 25 0 0.748047 1
+0 21 26 0 0.709473 1
+0 21 27 0 0.671387 1
+0 21 28 0 0.635254 1
+0 21 29 0 0.601074 1
+0 21 30 0 0.569824 1
+0 21 31 0 0.541016 1
+0 22 0 0 0.962402 0
+0 22 1 0 0.962402 0
+0 22 2 0 0.962402 0
+0 22 3 0 0.962402 0
+0 22 4 0 0.962402 0
+0 22 5 0 0.962402 0
+0 22 6 0 0.962402 0
+0 22 7 0 0.962402 0
+0 22 8 0 0.962402 0
+0 22 9 0 0.962402 0
+0 22 10 0 0.962402 0
+0 22 11 0 0.962402 0
+0 22 12 0 0.962891 0
+0 22 13 0 0.963867 0.131348
+0 22 14 0 0.968262 0.273682
+0 22 15 0 0.973633 0.378662
+0 22 16 0 0.979004 0.480469
+0 22 17 0 0.982422 0.581055
+0 22 18 0 0.981445 0.678223
+0 22 19 0 0.974609 0.768066
+0 22 20 0 0.960938 0.845703
+0 22 21 0 0.941406 0.912598
+0 22 22 0 0.916504 0.967285
+0 22 23 0 0.887695 1
+0 22 24 0 0.85498 1
+0 22 25 0 0.817871 1
+0 22 26 0 0.77832 1
+0 22 27 0 0.737305 1
+0 22 28 0 0.697266 1
+0 22 29 0 0.65918 1
+0 22 30 0 0.623047 1
+0 22 31 0 0.589844 1
+0 23 0 0 0.995605 0
+0 23 1 0 0.995605 0
+0 23 2 0 0.995605 0
+0 23 3 0 0.995605 0
+0 23 4 0 0.995605 0
+0 23 5 0 0.995605 0
+0 23 6 0 0.995605 0
+0 23 7 0 0.995605 0
+0 23 8 0 0.995605 0
+0 23 9 0 0.995605 0
+0 23 10 0 0.995605 0
+0 23 11 0 0.996094 0
+0 23 12 0 0.996094 0
+0 23 13 0 0.996582 0
+0 23 14 0 1 0.237061
+0 23 15 0 1 0.349121
+0 23 16 0 1 0.451904
+0 23 17 0 1 0.552246
+0 23 18 0 1 0.649902
+0 23 19 0 1 0.740234
+0 23 20 0 1 0.820312
+0 23 21 0 0.98877 0.890137
+0 23 22 0 0.967285 0.948242
+0 23 23 0 0.941895 0.993652
+0 23 24 0 0.913574 1
+0 23 25 0 0.879395 1
+0 23 26 0 0.840332 1
+0 23 27 0 0.79834 1
+0 23 28 0 0.756348 1
+0 23 29 0 0.714844 1
+0 23 30 0 0.674805 1
+0 23 31 0 0.637695 1
+0 24 0 0 1 0
+0 24 1 0 1 0
+0 24 2 0 1 0
+0 24 3 0 1 0
+0 24 4 0 1 0
+0 24 5 0 1 0
+0 24 6 0 1 0
+0 24 7 0 1 0
+0 24 8 0 1 0
+0 24 9 0 1 0
+0 24 10 0 1 0
+0 24 11 0 1 0
+0 24 12 0 1 0
+0 24 13 0 1 0
+0 24 14 0 1 0.195801
+0 24 15 0 1 0.319336
+0 24 16 0 1 0.424072
+0 24 17 0 1 0.524414
+0 24 18 0 1 0.621094
+0 24 19 0 1 0.711426
+0 24 20 0 1 0.792969
+0 24 21 0 1 0.864746
+0 24 22 0 1 0.92627
+0 24 23 0 0.986816 0.975586
+0 24 24 0 0.961914 1
+0 24 25 0 0.931641 1
+0 24 26 0 0.89502 1
+0 24 27 0 0.854004 1
+0 24 28 0 0.810547 1
+0 24 29 0 0.76709 1
+0 24 30 0 0.724609 1
+0 24 31 0 0.683594 1
+0 25 0 0 1 0
+0 25 1 0 1 0
+0 25 2 0 1 0
+0 25 3 0 1 0
+0 25 4 0 1 0
+0 25 5 0 1 0
+0 25 6 0 1 0
+0 25 7 0 1 0
+0 25 8 0 1 0
+0 25 9 0 1 0
+0 25 10 0 1 0
+0 25 11 0 1 0
+0 25 12 0 1 0
+0 25 13 0 1 0
+0 25 14 0 1 0.13562
+0 25 15 0 1 0.286133
+0 25 16 0 1 0.394043
+0 25 17 0 1 0.493896
+0 25 18 0 1 0.589844
+0 25 19 0 1 0.679688
+0 25 20 0 1 0.761719
+0 25 21 0 1 0.835449
+0 25 22 0 1 0.899414
+0 25 23 0 1 0.952148
+0 25 24 0 1 0.995605
+0 25 25 0 0.979492 1
+0 25 26 0 0.946777 1
+0 25 27 0 0.907715 1
+0 25 28 0 0.865234 1
+0 25 29 0 0.820312 1
+0 25 30 0 0.775879 1
+0 25 31 0 0.732422 1
+0 26 0 0 1 0
+0 26 1 0 1 0
+0 26 2 0 1 0
+0 26 3 0 1 0
+0 26 4 0 1 0
+0 26 5 0 1 0
+0 26 6 0 1 0
+0 26 7 0 1 0
+0 26 8 0 1 0
+0 26 9 0 1 0
+0 26 10 0 1 0
+0 26 11 0 1 0
+0 26 12 0 1 0
+0 26 13 0 1 0
+0 26 14 0 1 0
+0 26 15 0 1 0.247559
+0 26 16 0 1 0.361328
+0 26 17 0 1 0.46167
+0 26 18 0 1 0.556641
+0 26 19 0 1 0.645508
+0 26 20 0 1 0.727539
+0 26 21 0 1 0.802246
+0 26 22 0 1 0.868652
+0 26 23 0 1 0.923828
+0 26 24 0 1 0.970215
+0 26 25 0 1 1
+0 26 26 0 0.994629 1
+0 26 27 0 0.958984 1
+0 26 28 0 0.918457 1
+0 26 29 0 0.874023 1
+0 26 30 0 0.828125 1
+0 26 31 0 0.782227 1
+0 27 0 0 1 0
+0 27 1 0 1 0
+0 27 2 0 1 0
+0 27 3 0 1 0
+0 27 4 0 1 0
+0 27 5 0 1 0
+0 27 6 0 1 0
+0 27 7 0 1 0
+0 27 8 0 1 0
+0 27 9 0 1 0
+0 27 10 0 1 0
+0 27 11 0 1 0
+0 27 12 0 1 0
+0 27 13 0 1 0
+0 27 14 0 1 0
+0 27 15 0 1 0.200073
+0 27 16 0 1 0.326172
+0 27 17 0 1 0.427734
+0 27 18 0 1 0.521484
+0 27 19 0 1 0.609375
+0 27 20 0 1 0.69043
+0 27 21 0 1 0.765625
+0 27 22 0 1 0.833008
+0 27 23 0 1 0.890625
+0 27 24 0 1 0.939941
+0 27 25 0 1 0.985352
+0 27 26 0 1 1
+0 27 27 0 1 1
+0 27 28 0 0.968262 1
+0 27 29 0 0.925293 1
+0 27 30 0 0.879883 1
+0 27 31 0 0.833008 1
+0 28 0 0 1 0
+0 28 1 0 1 0
+0 28 2 0 1 0
+0 28 3 0 1 0
+0 28 4 0 1 0
+0 28 5 0 1 0
+0 28 6 0 1 0
+0 28 7 0 1 0
+0 28 8 0 1 0
+0 28 9 0 1 0
+0 28 10 0 1 0
+0 28 11 0 1 0
+0 28 12 0 1 0
+0 28 13 0 1 0
+0 28 14 0 1 0
+0 28 15 0 1 0.129761
+0 28 16 0 1 0.287109
+0 28 17 0 1 0.391602
+0 28 18 0 1 0.484863
+0 28 19 0 1 0.571289
+0 28 20 0 1 0.651367
+0 28 21 0 1 0.726074
+0 28 22 0 1 0.793945
+0 28 23 0 1 0.853027
+0 28 24 0 1 0.904297
+0 28 25 0 1 0.952637
+0 28 26 0 1 0.997559
+0 28 27 0 1 1
+0 28 28 0 1 1
+0 28 29 0 0.974121 1
+0 28 30 0 0.930664 1
+0 28 31 0 0.884277 1
+0 29 0 0 1 0
+0 29 1 0 1 0
+0 29 2 0 1 0
+0 29 3 0 1 0
+0 29 4 0 1 0
+0 29 5 0 1 0
+0 29 6 0 1 0
+0 29 7 0 1 0
+0 29 8 0 1 0
+0 29 9 0 1 0
+0 29 10 0 1 0
+0 29 11 0 1 0
+0 29 12 0 1 0
+0 29 13 0 1 0
+0 29 14 0 1 0
+0 29 15 0 1 0
+0 29 16 0 1 0.242188
+0 29 17 0 1 0.353271
+0 29 18 0 1 0.446533
+0 29 19 0 1 0.531738
+0 29 20 0 1 0.609863
+0 29 21 0 1 0.683594
+0 29 22 0 1 0.750977
+0 29 23 0 1 0.811035
+0 29 24 0 1 0.86377
+0 29 25 0 1 0.914551
+0 29 26 0 1 0.962402
+0 29 27 0 1 1
+0 29 28 0 1 1
+0 29 29 0 1 1
+0 29 30 0 0.979004 1
+0 29 31 0 0.93457 1
+0 30 0 0 1 0
+0 30 1 0 1 0
+0 30 2 0 1 0
+0 30 3 0 1 0
+0 30 4 0 1 0
+0 30 5 0 1 0
+0 30 6 0 1 0
+0 30 7 0 1 0
+0 30 8 0 1 0
+0 30 9 0 1 0
+0 30 10 0 1 0
+0 30 11 0 1 0
+0 30 12 0 1 0
+0 30 13 0 1 0
+0 30 14 0 1 0
+0 30 15 0 1 0
+0 30 16 0 1 0.186279
+0 30 17 0 1 0.312012
+0 30 18 0 1 0.406738
+0 30 19 0 1 0.490479
+0 30 20 0 1 0.566895
+0 30 21 0 1 0.63916
+0 30 22 0 1 0.705566
+0 30 23 0 1 0.765137
+0 30 24 0 1 0.818848
+0 30 25 0 1 0.870605
+0 30 26 0 1 0.921387
+0 30 27 0 1 0.96875
+0 30 28 0 1 1
+0 30 29 0 1 1
+0 30 30 0 1 1
+0 30 31 0 0.98291 1
+0 31 0 0 1 0
+0 31 1 0 1 0
+0 31 2 0 1 0
+0 31 3 0 1 0
+0 31 4 0 1 0
+0 31 5 0 1 0
+0 31 6 0 1 0
+0 31 7 0 1 0
+0 31 8 0 1 0
+0 31 9 0 1 0
+0 31 10 0 1 0
+0 31 11 0 1 0
+0 31 12 0 1 0
+0 31 13 0 1 0
+0 31 14 0 1 0
+0 31 15 0 1 0
+0 31 16 0 1 0.0895386
+0 31 17 0 1 0.266846
+0 31 18 0 1 0.365234
+0 31 19 0 1 0.448486
+0 31 20 0 1 0.523438
+0 31 21 0 1 0.593262
+0 31 22 0 1 0.658203
+0 31 23 0 1 0.716797
+0 31 24 0 1 0.77002
+0 31 25 0 1 0.823242
+0 31 26 0 1 0.875488
+0 31 27 0 1 0.92627
+0 31 28 0 1 0.973145
+0 31 29 0 1 1
+0 31 30 0 1 1
+0 31 31 0 1 1
+1 0 0 0.0121078 0.00881958 0.00908661
+1 0 1 0.0101929 0.00776291 0.00954437
+1 0 2 0.0137177 0.0111618 0.0164948
+1 0 3 0.0158386 0.0148926 0.0266113
+1 0 4 0.0116882 0.0186462 0.0402527
+1 0 5 0 0.0213623 0.0549927
+1 0 6 0 0.0238037 0.0709839
+1 0 7 0 0.0270386 0.0901489
+1 0 8 0 0.0318604 0.114563
+1 0 9 0 0.0388489 0.14624
+1 0 10 0 0.048645 0.187622
+1 0 11 0 0.0615845 0.240845
+1 0 12 0 0.0770264 0.303467
+1 0 13 0 0.0946045 0.374268
+1 0 14 0 0.114075 0.452637
+1 0 15 0 0.13501 0.536133
+1 0 16 0 0.156616 0.622559
+1 0 17 0 0.17749 0.706055
+1 0 18 0 0.196777 0.782715
+1 0 19 0 0.213745 0.850098
+1 0 20 0 0.223022 0.887695
+1 0 21 0 0.224854 0.89502
+1 0 22 0 0.226807 0.902832
+1 0 23 0 0.22876 0.910645
+1 0 24 0 0.230835 0.918457
+1 0 25 0 0.233032 0.927246
+1 0 26 0 0.235474 0.937012
+1 0 27 0 0.238159 0.947754
+1 0 28 0 0.241211 0.959961
+1 0 29 0 0.244385 0.972656
+1 0 30 0 0.247803 0.986328
+1 0 31 0 0.251221 1
+1 1 0 0.00941467 0.00850677 0.00741577
+1 1 1 0.010994 0.0102921 0.0107269
+1 1 2 0.0133972 0.013443 0.0169373
+1 1 3 0.0147095 0.017334 0.0266113
+1 1 4 0.00791168 0.0213623 0.0401306
+1 1 5 0 0.0240784 0.0549316
+1 1 6 0 0.0262299 0.0709839
+1 1 7 0 0.0290222 0.0901489
+1 1 8 0 0.0333557 0.114563
+1 1 9 0 0.0399475 0.14624
+1 1 10 0 0.049408 0.187622
+1 1 11 0 0.0621338 0.240845
+1 1 12 0 0.0773926 0.303467
+1 1 13 0 0.0949097 0.374268
+1 1 14 0 0.114319 0.452637
+1 1 15 0 0.135132 0.536133
+1 1 16 0 0.156738 0.622559
+1 1 17 0 0.177612 0.706055
+1 1 18 0 0.196899 0.782715
+1 1 19 0 0.213745 0.850098
+1 1 20 0 0.223145 0.887695
+1 1 21 0 0.224976 0.89502
+1 1 22 0 0.226929 0.902832
+1 1 23 0 0.228882 0.910645
+1 1 24 0 0.230835 0.918457
+1 1 25 0 0.233032 0.927246
+1 1 26 0 0.235474 0.937012
+1 1 27 0 0.238159 0.947754
+1 1 28 0 0.241211 0.959961
+1 1 29 0 0.244385 0.972656
+1 1 30 0 0.247803 0.986328
+1 1 31 0 0.251221 1
+1 2 0 0.011879 0.0141068 0.0100784
+1 2 1 0.0121536 0.0150528 0.0129471
+1 2 2 0.0128403 0.0173187 0.0181274
+1 2 3 0.0123978 0.0209198 0.0269012
+1 2 4 0 0.0251923 0.0400085
+1 2 5 0 0.0279846 0.0548401
+1 2 6 0 0.0298309 0.0709229
+1 2 7 0 0.032074 0.0901489
+1 2 8 0 0.0357971 0.114563
+1 2 9 0 0.041748 0.14624
+1 2 10 0 0.0507507 0.187622
+1 2 11 0 0.0631104 0.240845
+1 2 12 0 0.078125 0.303467
+1 2 13 0 0.0953979 0.374268
+1 2 14 0 0.114685 0.452637
+1 2 15 0 0.135376 0.536133
+1 2 16 0 0.156982 0.622559
+1 2 17 0 0.177734 0.706055
+1 2 18 0 0.197021 0.782715
+1 2 19 0 0.213867 0.850098
+1 2 20 0 0.223145 0.887695
+1 2 21 0 0.224976 0.89502
+1 2 22 0 0.226929 0.902832
+1 2 23 0 0.228882 0.910645
+1 2 24 0 0.230835 0.918457
+1 2 25 0 0.233032 0.927246
+1 2 26 0 0.235474 0.937012
+1 2 27 0 0.238159 0.947754
+1 2 28 0 0.241211 0.959961
+1 2 29 0 0.244385 0.972656
+1 2 30 0 0.247803 0.986328
+1 2 31 0 0.251221 1
+1 3 0 0.0122833 0.0228729 0.0129623
+1 3 1 0.0114441 0.0230865 0.0159454
+1 3 2 0.00980377 0.0241241 0.020462
+1 3 3 0 0.0266724 0.0280151
+1 3 4 0 0.0306244 0.0401001
+1 3 5 0 0.0334473 0.054718
+1 3 6 0 0.0350647 0.0709229
+1 3 7 0 0.0367126 0.0901489
+1 3 8 0 0.0396423 0.114563
+1 3 9 0 0.0447998 0.14624
+1 3 10 0 0.0530701 0.187622
+1 3 11 0 0.0648804 0.240845
+1 3 12 0 0.0794067 0.303467
+1 3 13 0 0.0963745 0.374268
+1 3 14 0 0.115417 0.452637
+1 3 15 0 0.135864 0.536133
+1 3 16 0 0.157349 0.622559
+1 3 17 0 0.178101 0.706055
+1 3 18 0 0.197144 0.782715
+1 3 19 0 0.213989 0.850098
+1 3 20 0 0.223389 0.887695
+1 3 21 0 0.225098 0.89502
+1 3 22 0 0.227051 0.902832
+1 3 23 0 0.229004 0.910645
+1 3 24 0 0.230957 0.918457
+1 3 25 0 0.233154 0.927246
+1 3 26 0 0.235474 0.937012
+1 3 27 0 0.238159 0.947754
+1 3 28 0 0.241211 0.959961
+1 3 29 0 0.244507 0.972656
+1 3 30 0 0.247803 0.986328
+1 3 31 0 0.251221 1
+1 4 0 0 0.0353394 0.0151215
+1 4 1 0 0.0352173 0.0188446
+1 4 2 0 0.0353699 0.0236359
+1 4 3 0 0.036438 0.0304718
+1 4 4 0 0.0387268 0.040741
+1 4 5 0 0.0410767 0.0545959
+1 4 6 0 0.0424805 0.0708008
+1 4 7 0 0.0435791 0.0900879
+1 4 8 0 0.0456543 0.114563
+1 4 9 0 0.0497437 0.146118
+1 4 10 0 0.0570374 0.187622
+1 4 11 0 0.0679321 0.240845
+1 4 12 0 0.0817871 0.303467
+1 4 13 0 0.0981445 0.374268
+1 4 14 0 0.116699 0.452637
+1 4 15 0 0.136841 0.536133
+1 4 16 0 0.158081 0.622559
+1 4 17 0 0.178589 0.706055
+1 4 18 0 0.197632 0.782715
+1 4 19 0 0.214355 0.850098
+1 4 20 0 0.223633 0.887695
+1 4 21 0 0.225342 0.89502
+1 4 22 0 0.227173 0.902832
+1 4 23 0 0.229126 0.910645
+1 4 24 0 0.231079 0.918457
+1 4 25 0 0.233154 0.927246
+1 4 26 0 0.235596 0.937012
+1 4 27 0 0.238281 0.947754
+1 4 28 0 0.241333 0.959961
+1 4 29 0 0.244507 0.972656
+1 4 30 0 0.247925 0.986328
+1 4 31 0 0.251465 1
+1 5 0 0 0.0501099 0.0145493
+1 5 1 0 0.0500183 0.0195923
+1 5 2 0 0.0499573 0.0253448
+1 5 3 0 0.0500488 0.0324402
+1 5 4 0 0.0505981 0.0418091
+1 5 5 0 0.0517883 0.0545654
+1 5 6 0 0.0527649 0.0705566
+1 5 7 0 0.0533752 0.0899658
+1 5 8 0 0.0545959 0.114502
+1 5 9 0 0.0575867 0.146118
+1 5 10 0 0.0636597 0.1875
+1 5 11 0 0.0733643 0.240723
+1 5 12 0 0.0859985 0.303467
+1 5 13 0 0.101379 0.374268
+1 5 14 0 0.119141 0.452637
+1 5 15 0 0.138794 0.536133
+1 5 16 0 0.159424 0.622559
+1 5 17 0 0.179688 0.706055
+1 5 18 0 0.198486 0.782715
+1 5 19 0 0.215088 0.850098
+1 5 20 0 0.224121 0.887695
+1 5 21 0 0.225708 0.89502
+1 5 22 0 0.227539 0.902832
+1 5 23 0 0.22937 0.910645
+1 5 24 0 0.231323 0.918457
+1 5 25 0 0.233398 0.927246
+1 5 26 0 0.23584 0.937012
+1 5 27 0 0.238403 0.947754
+1 5 28 0 0.241455 0.959961
+1 5 29 0 0.244629 0.972656
+1 5 30 0 0.247925 0.986328
+1 5 31 0 0.251465 1
+1 6 0 0 0.0656738 0.00552368
+1 6 1 0 0.0656738 0.0163422
+1 6 2 0 0.0656738 0.0238495
+1 6 3 0 0.0657349 0.0319824
+1 6 4 0 0.0657959 0.0418091
+1 6 5 0 0.0661011 0.0543213
+1 6 6 0 0.0664062 0.0700073
+1 6 7 0 0.0666504 0.0896606
+1 6 8 0 0.0671387 0.11438
+1 6 9 0 0.0690308 0.145996
+1 6 10 0 0.0738525 0.187378
+1 6 11 0 0.0822144 0.240601
+1 6 12 0 0.0933228 0.303223
+1 6 13 0 0.107178 0.374268
+1 6 14 0 0.123596 0.452637
+1 6 15 0 0.142212 0.536133
+1 6 16 0 0.162109 0.622559
+1 6 17 0 0.181763 0.706055
+1 6 18 0 0.200073 0.782715
+1 6 19 0 0.216309 0.850098
+1 6 20 0 0.225098 0.887695
+1 6 21 0 0.226562 0.89502
+1 6 22 0 0.228149 0.902832
+1 6 23 0 0.22998 0.910645
+1 6 24 0 0.231812 0.918457
+1 6 25 0 0.233765 0.927246
+1 6 26 0 0.236084 0.937012
+1 6 27 0 0.23877 0.947754
+1 6 28 0 0.241699 0.959961
+1 6 29 0 0.244873 0.972656
+1 6 30 0 0.248169 0.986328
+1 6 31 0 0.251709 1
+1 7 0 0 0.0836792 0
+1 7 1 0 0.0836792 0
+1 7 2 0 0.0837402 0.0176544
+1 7 3 0 0.0838013 0.0285034
+1 7 4 0 0.0839233 0.0395813
+1 7 5 0 0.0841064 0.0527344
+1 7 6 0 0.0842285 0.0687866
+1 7 7 0 0.0842896 0.0888672
+1 7 8 0 0.0842896 0.113953
+1 7 9 0 0.0853271 0.145752
+1 7 10 0 0.0890503 0.187134
+1 7 11 0 0.0960693 0.240356
+1 7 12 0 0.105347 0.303223
+1 7 13 0 0.117126 0.374268
+1 7 14 0 0.131592 0.452637
+1 7 15 0 0.148438 0.536133
+1 7 16 0 0.166992 0.622559
+1 7 17 0 0.185547 0.706055
+1 7 18 0 0.203003 0.782715
+1 7 19 0 0.21875 0.850098
+1 7 20 0 0.227051 0.887695
+1 7 21 0 0.228149 0.89502
+1 7 22 0 0.229492 0.902832
+1 7 23 0 0.230957 0.910645
+1 7 24 0 0.232666 0.918945
+1 7 25 0 0.234619 0.927246
+1 7 26 0 0.236816 0.937012
+1 7 27 0 0.239258 0.947754
+1 7 28 0 0.242188 0.959961
+1 7 29 0 0.245239 0.973145
+1 7 30 0 0.248535 0.986328
+1 7 31 0 0.251953 1
+1 8 0 0 0.106323 0
+1 8 1 0 0.106384 0
+1 8 2 0 0.106384 0
+1 8 3 0 0.106445 0.0187073
+1 8 4 0 0.106567 0.0344543
+1 8 5 0 0.10675 0.0492859
+1 8 6 0 0.106934 0.0662842
+1 8 7 0 0.107117 0.0870972
+1 8 8 0 0.107117 0.112976
+1 8 9 0 0.107605 0.145264
+1 8 10 0 0.110413 0.186646
+1 8 11 0 0.116394 0.23999
+1 8 12 0 0.124023 0.302979
+1 8 13 0 0.133545 0.374023
+1 8 14 0 0.145386 0.452393
+1 8 15 0 0.159668 0.536133
+1 8 16 0 0.176025 0.622559
+1 8 17 0 0.192627 0.706055
+1 8 18 0 0.20874 0.782715
+1 8 19 0 0.223267 0.850586
+1 8 20 0 0.230835 0.888184
+1 8 21 0 0.231079 0.895508
+1 8 22 0 0.231934 0.90332
+1 8 23 0 0.233032 0.911133
+1 8 24 0 0.234375 0.918945
+1 8 25 0 0.236084 0.927734
+1 8 26 0 0.238037 0.937012
+1 8 27 0 0.240356 0.947754
+1 8 28 0 0.243164 0.959961
+1 8 29 0 0.246094 0.973145
+1 8 30 0 0.249268 0.986328
+1 8 31 0 0.252441 1
+1 9 0 0 0.135132 0
+1 9 1 0 0.135132 0
+1 9 2 0 0.135132 0
+1 9 3 0 0.135254 0
+1 9 4 0 0.135254 0.0202789
+1 9 5 0 0.135376 0.0426025
+1 9 6 0 0.135498 0.0618591
+1 9 7 0 0.135864 0.0838623
+1 9 8 0 0.136108 0.11084
+1 9 9 0 0.136841 0.144287
+1 9 10 0 0.13916 0.186035
+1 9 11 0 0.144409 0.23938
+1 9 12 0 0.150757 0.30249
+1 9 13 0 0.158203 0.374023
+1 9 14 0 0.167236 0.452393
+1 9 15 0 0.178345 0.536133
+1 9 16 0 0.191406 0.623047
+1 9 17 0 0.2052 0.706543
+1 9 18 0 0.218994 0.783203
+1 9 19 0 0.231689 0.850586
+1 9 20 0 0.237793 0.888672
+1 9 21 0 0.236572 0.895996
+1 9 22 0 0.23645 0.90332
+1 9 23 0 0.236938 0.911133
+1 9 24 0 0.237671 0.918945
+1 9 25 0 0.238892 0.927734
+1 9 26 0 0.240479 0.9375
+1 9 27 0 0.242554 0.948242
+1 9 28 0 0.244995 0.960449
+1 9 29 0 0.247681 0.973145
+1 9 30 0 0.250488 0.986328
+1 9 31 0 0.253662 1
+1 10 0 0 0.172241 0
+1 10 1 0 0.172241 0
+1 10 2 0 0.172241 0
+1 10 3 0 0.172363 0
+1 10 4 0 0.172363 0
+1 10 5 0 0.172485 0.0251312
+1 10 6 0 0.172485 0.0544128
+1 10 7 0 0.172485 0.0795288
+1 10 8 0 0.172729 0.108215
+1 10 9 0 0.173584 0.142944
+1 10 10 0 0.175781 0.185425
+1 10 11 0 0.18042 0.238525
+1 10 12 0 0.185913 0.301758
+1 10 13 0 0.19165 0.373535
+1 10 14 0 0.19812 0.452393
+1 10 15 0 0.205811 0.536133
+1 10 16 0 0.21521 0.623047
+1 10 17 0 0.225464 0.706543
+1 10 18 0 0.23584 0.783203
+1 10 19 0 0.24585 0.851074
+1 10 20 0 0.249634 0.889648
+1 10 21 0 0.246216 0.896484
+1 10 22 0 0.244385 0.904297
+1 10 23 0 0.243652 0.912109
+1 10 24 0 0.24353 0.919434
+1 10 25 0 0.244019 0.928223
+1 10 26 0 0.244873 0.937988
+1 10 27 0 0.246216 0.94873
+1 10 28 0 0.248169 0.960449
+1 10 29 0 0.250488 0.973633
+1 10 30 0 0.25293 0.986816
+1 10 31 0 0.255859 1
+1 11 0 0 0.220459 0
+1 11 1 0 0.220459 0
+1 11 2 0 0.220459 0
+1 11 3 0 0.220459 0
+1 11 4 0 0.220581 0
+1 11 5 0 0.220581 0
+1 11 6 0 0.220703 0.0350342
+1 11 7 0 0.220581 0.0720215
+1 11 8 0 0.220459 0.104797
+1 11 9 0 0.220703 0.141724
+1 11 10 0 0.222168 0.185181
+1 11 11 0 0.225464 0.237915
+1 11 12 0 0.229858 0.300781
+1 11 13 0 0.234375 0.372803
+1 11 14 0 0.23877 0.451904
+1 11 15 0 0.24353 0.536133
+1 11 16 0 0.249146 0.623047
+1 11 17 0 0.255127 0.707031
+1 11 18 0 0.261719 0.783691
+1 11 19 0 0.268066 0.851562
+1 11 20 0 0.268555 0.891113
+1 11 21 0 0.261963 0.897949
+1 11 22 0 0.257568 0.905273
+1 11 23 0 0.254883 0.913086
+1 11 24 0 0.253418 0.92041
+1 11 25 0 0.252441 0.929199
+1 11 26 0 0.252197 0.938477
+1 11 27 0 0.252686 0.949219
+1 11 28 0 0.253662 0.960938
+1 11 29 0 0.255127 0.974121
+1 11 30 0 0.25708 0.987305
+1 11 31 0 0.259277 1
+1 12 0 0 0.278809 0
+1 12 1 0 0.278809 0
+1 12 2 0 0.278809 0
+1 12 3 0 0.278809 0
+1 12 4 0 0.278809 0
+1 12 5 0 0.279053 0
+1 12 6 0 0.279053 0
+1 12 7 0 0.279053 0.0516357
+1 12 8 0 0.279053 0.0966797
+1 12 9 0 0.279053 0.138306
+1 12 10 0 0.279541 0.18396
+1 12 11 0 0.28125 0.236938
+1 12 12 0 0.283936 0.299561
+1 12 13 0 0.287354 0.371582
+1 12 14 0 0.290039 0.451172
+1 12 15 0 0.292236 0.535645
+1 12 16 0 0.294434 0.623535
+1 12 17 0 0.296387 0.70752
+1 12 18 0 0.29834 0.784668
+1 12 19 0 0.300293 0.852051
+1 12 20 0 0.297119 0.893555
+1 12 21 0 0.285889 0.899902
+1 12 22 0 0.277832 0.907227
+1 12 23 0 0.272461 0.914551
+1 12 24 0 0.268799 0.922363
+1 12 25 0 0.266113 0.930664
+1 12 26 0 0.26416 0.939941
+1 12 27 0 0.262939 0.950195
+1 12 28 0 0.262695 0.961914
+1 12 29 0 0.263184 0.974609
+1 12 30 0 0.263916 0.987793
+1 12 31 0 0.265381 1
+1 13 0 0 0.345215 0
+1 13 1 0 0.345215 0
+1 13 2 0 0.345215 0
+1 13 3 0 0.345215 0
+1 13 4 0 0.345215 0
+1 13 5 0 0.345459 0
+1 13 6 0 0.345459 0
+1 13 7 0 0.345459 0
+1 13 8 0 0.345703 0.0759888
+1 13 9 0 0.345703 0.128784
+1 13 10 0 0.346191 0.178955
+1 13 11 0 0.34668 0.234131
+1 13 12 0 0.348145 0.297363
+1 13 13 0 0.350098 0.369385
+1 13 14 0 0.351562 0.449463
+1 13 15 0 0.351807 0.535156
+1 13 16 0 0.35083 0.623535
+1 13 17 0 0.348877 0.708008
+1 13 18 0 0.346436 0.785645
+1 13 19 0 0.343994 0.853516
+1 13 20 0 0.33667 0.897461
+1 13 21 0 0.319824 0.903809
+1 13 22 0 0.307373 0.910645
+1 13 23 0 0.29834 0.91748
+1 13 24 0 0.291748 0.924805
+1 13 25 0 0.286377 0.933105
+1 13 26 0 0.282227 0.941895
+1 13 27 0 0.279053 0.952148
+1 13 28 0 0.276855 0.963867
+1 13 29 0 0.275391 0.976074
+1 13 30 0 0.274902 0.989258
+1 13 31 0 0.274658 1
+1 14 0 0 0.419189 0
+1 14 1 0 0.419189 0
+1 14 2 0 0.419189 0
+1 14 3 0 0.419189 0
+1 14 4 0 0.419189 0
+1 14 5 0 0.419189 0
+1 14 6 0 0.419434 0
+1 14 7 0 0.419434 0
+1 14 8 0 0.419678 0
+1 14 9 0 0.419922 0.107971
+1 14 10 0 0.42041 0.167725
+1 14 11 0 0.420898 0.226929
+1 14 12 0 0.421631 0.292236
+1 14 13 0 0.422607 0.365234
+1 14 14 0 0.422852 0.446045
+1 14 15 0 0.421631 0.532715
+1 14 16 0 0.418701 0.622559
+1 14 17 0 0.41333 0.708008
+1 14 18 0 0.406494 0.786133
+1 14 19 0 0.399414 0.854492
+1 14 20 0 0.388672 0.90332
+1 14 21 0 0.365479 0.90918
+1 14 22 0 0.347656 0.915527
+1 14 23 0 0.334229 0.922363
+1 14 24 0 0.323975 0.929199
+1 14 25 0 0.31543 0.936523
+1 14 26 0 0.307861 0.945312
+1 14 27 0 0.302002 0.955078
+1 14 28 0 0.297119 0.966309
+1 14 29 0 0.293457 0.978516
+1 14 30 0 0.290771 0.991211
+1 14 31 0 0.288818 1
+1 15 0 0 0.498779 0
+1 15 1 0 0.498779 0
+1 15 2 0 0.498779 0
+1 15 3 0 0.498779 0
+1 15 4 0 0.498779 0
+1 15 5 0 0.498779 0
+1 15 6 0 0.498779 0
+1 15 7 0 0.498779 0
+1 15 8 0 0.499023 0
+1 15 9 0 0.499268 0.0471191
+1 15 10 0 0.499756 0.146362
+1 15 11 0 0.500488 0.213501
+1 15 12 0 0.501465 0.282471
+1 15 13 0 0.502441 0.357422
+1 15 14 0 0.502441 0.439941
+1 15 15 0 0.500488 0.52832
+1 15 16 0 0.496094 0.619629
+1 15 17 0 0.488037 0.707031
+1 15 18 0 0.477783 0.786621
+1 15 19 0 0.466553 0.855957
+1 15 20 0 0.453125 0.910156
+1 15 21 0 0.422852 0.916992
+1 15 22 0 0.39917 0.92334
+1 15 23 0 0.380615 0.929688
+1 15 24 0 0.366211 0.936035
+1 15 25 0 0.35376 0.942871
+1 15 26 0 0.342529 0.951172
+1 15 27 0 0.333008 0.959961
+1 15 28 0 0.325195 0.970703
+1 15 29 0 0.318604 0.981934
+1 15 30 0 0.312988 0.994141
+1 15 31 0 0.308594 1
+1 16 0 0 0.582031 0
+1 16 1 0 0.582031 0
+1 16 2 0 0.582031 0
+1 16 3 0 0.582031 0
+1 16 4 0 0.582031 0
+1 16 5 0 0.582031 0
+1 16 6 0 0.582031 0
+1 16 7 0 0.58252 0
+1 16 8 0 0.58252 0
+1 16 9 0 0.58252 0
+1 16 10 0 0.583008 0.103455
+1 16 11 0 0.583984 0.191284
+1 16 12 0 0.585449 0.266602
+1 16 13 0 0.586426 0.344727
+1 16 14 0 0.586914 0.429199
+1 16 15 0 0.585938 0.519531
+1 16 16 0 0.581055 0.612793
+1 16 17 0 0.571777 0.703125
+1 16 18 0 0.558594 0.785156
+1 16 19 0 0.543945 0.855957
+1 16 20 0 0.527832 0.914551
+1 16 21 0 0.49292 0.927246
+1 16 22 0 0.462891 0.93457
+1 16 23 0 0.438965 0.940918
+1 16 24 0 0.419678 0.946289
+1 16 25 0 0.402344 0.952637
+1 16 26 0 0.386963 0.959961
+1 16 27 0 0.373291 0.967773
+1 16 28 0 0.361572 0.977539
+1 16 29 0 0.351562 0.987793
+1 16 30 0 0.342773 0.999512
+1 16 31 0 0.335205 1
+1 17 0 0 0.664551 0
+1 17 1 0 0.664551 0
+1 17 2 0 0.664551 0
+1 17 3 0 0.664551 0
+1 17 4 0 0.664551 0
+1 17 5 0 0.664551 0
+1 17 6 0 0.664551 0
+1 17 7 0 0.664551 0
+1 17 8 0 0.664551 0
+1 17 9 0 0.664551 0
+1 17 10 0 0.665039 0
+1 17 11 0 0.666016 0.155151
+1 17 12 0 0.66748 0.24353
+1 17 13 0 0.669434 0.326172
+1 17 14 0 0.671387 0.413086
+1 17 15 0 0.670898 0.505371
+1 17 16 0 0.666992 0.601074
+1 17 17 0 0.658203 0.694336
+1 17 18 0 0.644531 0.779785
+1 17 19 0 0.627441 0.853516
+1 17 20 0 0.60791 0.914062
+1 17 21 0 0.571777 0.937988
+1 17 22 0 0.536621 0.94873
+1 17 23 0 0.507324 0.955566
+1 17 24 0 0.483154 0.960938
+1 17 25 0 0.460938 0.966797
+1 17 26 0 0.440674 0.972656
+1 17 27 0 0.422119 0.979492
+1 17 28 0 0.406006 0.987305
+1 17 29 0 0.391846 0.996582
+1 17 30 0 0.37915 1
+1 17 31 0 0.36792 1
+1 18 0 0 0.741211 0
+1 18 1 0 0.741211 0
+1 18 2 0 0.741211 0
+1 18 3 0 0.741211 0
+1 18 4 0 0.741211 0
+1 18 5 0 0.741211 0
+1 18 6 0 0.741211 0
+1 18 7 0 0.741211 0
+1 18 8 0 0.741211 0
+1 18 9 0 0.741211 0
+1 18 10 0 0.741699 0
+1 18 11 0 0.742188 0.0792847
+1 18 12 0 0.744141 0.211304
+1 18 13 0 0.746582 0.301758
+1 18 14 0 0.749023 0.391602
+1 18 15 0 0.750488 0.485596
+1 18 16 0 0.748535 0.583496
+1 18 17 0 0.741699 0.680176
+1 18 18 0 0.729004 0.769043
+1 18 19 0 0.711426 0.84668
+1 18 20 0 0.69043 0.910645
+1 18 21 0 0.655762 0.945801
+1 18 22 0 0.618164 0.963867
+1 18 23 0 0.584473 0.973633
+1 18 24 0 0.555176 0.979492
+1 18 25 0 0.527344 0.984863
+1 18 26 0 0.501953 0.989746
+1 18 27 0 0.478516 0.995117
+1 18 28 0 0.45752 1
+1 18 29 0 0.438477 1
+1 18 30 0 0.421631 1
+1 18 31 0 0.40625 1
+1 19 0 0 0.810059 0
+1 19 1 0 0.810059 0
+1 19 2 0 0.810059 0
+1 19 3 0 0.810059 0
+1 19 4 0 0.810059 0
+1 19 5 0 0.810059 0
+1 19 6 0 0.810059 0
+1 19 7 0 0.810059 0
+1 19 8 0 0.810059 0
+1 19 9 0 0.810059 0
+1 19 10 0 0.810547 0
+1 19 11 0 0.810547 0
+1 19 12 0 0.812012 0.166138
+1 19 13 0 0.814941 0.272217
+1 19 14 0 0.818359 0.366455
+1 19 15 0 0.820801 0.462158
+1 19 16 0 0.821289 0.561523
+1 19 17 0 0.817383 0.660156
+1 19 18 0 0.807129 0.75293
+1 19 19 0 0.791016 0.834473
+1 19 20 0 0.77002 0.901855
+1 19 21 0 0.73877 0.94873
+1 19 22 0 0.70166 0.976074
+1 19 23 0 0.665527 0.991211
+1 19 24 0 0.632324 1
+1 19 25 0 0.599609 1
+1 19 26 0 0.568848 1
+1 19 27 0 0.540039 1
+1 19 28 0 0.513672 1
+1 19 29 0 0.48999 1
+1 19 30 0 0.468262 1
+1 19 31 0 0.44873 1
+1 20 0 0 0.869629 0
+1 20 1 0 0.869629 0
+1 20 2 0 0.869629 0
+1 20 3 0 0.869629 0
+1 20 4 0 0.869629 0
+1 20 5 0 0.869629 0
+1 20 6 0 0.869629 0
+1 20 7 0 0.869629 0
+1 20 8 0 0.869629 0
+1 20 9 0 0.869629 0
+1 20 10 0 0.869629 0
+1 20 11 0 0.870117 0
+1 20 12 0 0.870605 0.0809326
+1 20 13 0 0.873535 0.237427
+1 20 14 0 0.877441 0.338623
+1 20 15 0 0.881348 0.436279
+1 20 16 0 0.883789 0.536621
+1 20 17 0 0.882812 0.636719
+1 20 18 0 0.875488 0.731934
+1 20 19 0 0.861328 0.816895
+1 20 20 0 0.841797 0.888184
+1 20 21 0 0.81543 0.944824
+1 20 22 0 0.781738 0.982422
+1 20 23 0 0.745117 1
+1 20 24 0 0.709961 1
+1 20 25 0 0.673828 1
+1 20 26 0 0.638672 1
+1 20 27 0 0.60498 1
+1 20 28 0 0.573242 1
+1 20 29 0 0.544434 1
+1 20 30 0 0.517578 1
+1 20 31 0 0.493652 1
+1 21 0 0 0.92041 0
+1 21 1 0 0.92041 0
+1 21 2 0 0.92041 0
+1 21 3 0 0.92041 0
+1 21 4 0 0.92041 0
+1 21 5 0 0.92041 0
+1 21 6 0 0.92041 0
+1 21 7 0 0.92041 0
+1 21 8 0 0.92041 0
+1 21 9 0 0.92041 0
+1 21 10 0 0.92041 0
+1 21 11 0 0.92041 0
+1 21 12 0 0.920898 0
+1 21 13 0 0.92334 0.193848
+1 21 14 0 0.927246 0.307617
+1 21 15 0 0.932129 0.408203
+1 21 16 0 0.936035 0.509277
+1 21 17 0 0.9375 0.609863
+1 21 18 0 0.933594 0.706543
+1 21 19 0 0.922852 0.794434
+1 21 20 0 0.90625 0.869141
+1 21 21 0 0.883301 0.932129
+1 21 22 0 0.854492 0.979492
+1 21 23 0 0.820801 1
+1 21 24 0 0.785645 1
+1 21 25 0 0.748047 1
+1 21 26 0 0.709473 1
+1 21 27 0 0.671387 1
+1 21 28 0 0.635254 1
+1 21 29 0 0.601074 1
+1 21 30 0 0.569824 1
+1 21 31 0 0.541016 1
+1 22 0 0 0.962402 0
+1 22 1 0 0.962402 0
+1 22 2 0 0.962402 0
+1 22 3 0 0.962402 0
+1 22 4 0 0.962402 0
+1 22 5 0 0.962402 0
+1 22 6 0 0.962402 0
+1 22 7 0 0.962402 0
+1 22 8 0 0.962402 0
+1 22 9 0 0.962402 0
+1 22 10 0 0.962402 0
+1 22 11 0 0.962402 0
+1 22 12 0 0.962891 0
+1 22 13 0 0.963867 0.131348
+1 22 14 0 0.968262 0.273682
+1 22 15 0 0.973633 0.378662
+1 22 16 0 0.979004 0.480469
+1 22 17 0 0.982422 0.581055
+1 22 18 0 0.981445 0.678223
+1 22 19 0 0.974609 0.768066
+1 22 20 0 0.960938 0.845703
+1 22 21 0 0.941406 0.912598
+1 22 22 0 0.916504 0.967285
+1 22 23 0 0.887695 1
+1 22 24 0 0.85498 1
+1 22 25 0 0.817871 1
+1 22 26 0 0.77832 1
+1 22 27 0 0.737305 1
+1 22 28 0 0.697266 1
+1 22 29 0 0.65918 1
+1 22 30 0 0.623047 1
+1 22 31 0 0.589844 1
+1 23 0 0 0.995605 0
+1 23 1 0 0.995605 0
+1 23 2 0 0.995605 0
+1 23 3 0 0.995605 0
+1 23 4 0 0.995605 0
+1 23 5 0 0.995605 0
+1 23 6 0 0.995605 0
+1 23 7 0 0.995605 0
+1 23 8 0 0.995605 0
+1 23 9 0 0.995605 0
+1 23 10 0 0.995605 0
+1 23 11 0 0.996094 0
+1 23 12 0 0.996094 0
+1 23 13 0 0.996582 0
+1 23 14 0 1 0.237061
+1 23 15 0 1 0.349121
+1 23 16 0 1 0.451904
+1 23 17 0 1 0.552246
+1 23 18 0 1 0.649902
+1 23 19 0 1 0.740234
+1 23 20 0 1 0.820312
+1 23 21 0 0.98877 0.890137
+1 23 22 0 0.967285 0.948242
+1 23 23 0 0.941895 0.993652
+1 23 24 0 0.913574 1
+1 23 25 0 0.879395 1
+1 23 26 0 0.840332 1
+1 23 27 0 0.79834 1
+1 23 28 0 0.756348 1
+1 23 29 0 0.714844 1
+1 23 30 0 0.674805 1
+1 23 31 0 0.637695 1
+1 24 0 0 1 0
+1 24 1 0 1 0
+1 24 2 0 1 0
+1 24 3 0 1 0
+1 24 4 0 1 0
+1 24 5 0 1 0
+1 24 6 0 1 0
+1 24 7 0 1 0
+1 24 8 0 1 0
+1 24 9 0 1 0
+1 24 10 0 1 0
+1 24 11 0 1 0
+1 24 12 0 1 0
+1 24 13 0 1 0
+1 24 14 0 1 0.195801
+1 24 15 0 1 0.319336
+1 24 16 0 1 0.424072
+1 24 17 0 1 0.524414
+1 24 18 0 1 0.621094
+1 24 19 0 1 0.711426
+1 24 20 0 1 0.792969
+1 24 21 0 1 0.864746
+1 24 22 0 1 0.92627
+1 24 23 0 0.986816 0.975586
+1 24 24 0 0.961914 1
+1 24 25 0 0.931641 1
+1 24 26 0 0.89502 1
+1 24 27 0 0.854004 1
+1 24 28 0 0.810547 1
+1 24 29 0 0.76709 1
+1 24 30 0 0.724609 1
+1 24 31 0 0.683594 1
+1 25 0 0 1 0
+1 25 1 0 1 0
+1 25 2 0 1 0
+1 25 3 0 1 0
+1 25 4 0 1 0
+1 25 5 0 1 0
+1 25 6 0 1 0
+1 25 7 0 1 0
+1 25 8 0 1 0
+1 25 9 0 1 0
+1 25 10 0 1 0
+1 25 11 0 1 0
+1 25 12 0 1 0
+1 25 13 0 1 0
+1 25 14 0 1 0.13562
+1 25 15 0 1 0.286133
+1 25 16 0 1 0.394043
+1 25 17 0 1 0.493896
+1 25 18 0 1 0.589844
+1 25 19 0 1 0.679688
+1 25 20 0 1 0.761719
+1 25 21 0 1 0.835449
+1 25 22 0 1 0.899414
+1 25 23 0 1 0.952148
+1 25 24 0 1 0.995605
+1 25 25 0 0.979492 1
+1 25 26 0 0.946777 1
+1 25 27 0 0.907715 1
+1 25 28 0 0.865234 1
+1 25 29 0 0.820312 1
+1 25 30 0 0.775879 1
+1 25 31 0 0.732422 1
+1 26 0 0 1 0
+1 26 1 0 1 0
+1 26 2 0 1 0
+1 26 3 0 1 0
+1 26 4 0 1 0
+1 26 5 0 1 0
+1 26 6 0 1 0
+1 26 7 0 1 0
+1 26 8 0 1 0
+1 26 9 0 1 0
+1 26 10 0 1 0
+1 26 11 0 1 0
+1 26 12 0 1 0
+1 26 13 0 1 0
+1 26 14 0 1 0
+1 26 15 0 1 0.247559
+1 26 16 0 1 0.361328
+1 26 17 0 1 0.46167
+1 26 18 0 1 0.556641
+1 26 19 0 1 0.645508
+1 26 20 0 1 0.727539
+1 26 21 0 1 0.802246
+1 26 22 0 1 0.868652
+1 26 23 0 1 0.923828
+1 26 24 0 1 0.970215
+1 26 25 0 1 1
+1 26 26 0 0.994629 1
+1 26 27 0 0.958984 1
+1 26 28 0 0.918457 1
+1 26 29 0 0.874023 1
+1 26 30 0 0.828125 1
+1 26 31 0 0.782227 1
+1 27 0 0 1 0
+1 27 1 0 1 0
+1 27 2 0 1 0
+1 27 3 0 1 0
+1 27 4 0 1 0
+1 27 5 0 1 0
+1 27 6 0 1 0
+1 27 7 0 1 0
+1 27 8 0 1 0
+1 27 9 0 1 0
+1 27 10 0 1 0
+1 27 11 0 1 0
+1 27 12 0 1 0
+1 27 13 0 1 0
+1 27 14 0 1 0
+1 27 15 0 1 0.200073
+1 27 16 0 1 0.326172
+1 27 17 0 1 0.427734
+1 27 18 0 1 0.521484
+1 27 19 0 1 0.609375
+1 27 20 0 1 0.69043
+1 27 21 0 1 0.765625
+1 27 22 0 1 0.833008
+1 27 23 0 1 0.890625
+1 27 24 0 1 0.939941
+1 27 25 0 1 0.985352
+1 27 26 0 1 1
+1 27 27 0 1 1
+1 27 28 0 0.968262 1
+1 27 29 0 0.925293 1
+1 27 30 0 0.879883 1
+1 27 31 0 0.833008 1
+1 28 0 0 1 0
+1 28 1 0 1 0
+1 28 2 0 1 0
+1 28 3 0 1 0
+1 28 4 0 1 0
+1 28 5 0 1 0
+1 28 6 0 1 0
+1 28 7 0 1 0
+1 28 8 0 1 0
+1 28 9 0 1 0
+1 28 10 0 1 0
+1 28 11 0 1 0
+1 28 12 0 1 0
+1 28 13 0 1 0
+1 28 14 0 1 0
+1 28 15 0 1 0.129761
+1 28 16 0 1 0.287109
+1 28 17 0 1 0.391602
+1 28 18 0 1 0.484863
+1 28 19 0 1 0.571289
+1 28 20 0 1 0.651367
+1 28 21 0 1 0.726074
+1 28 22 0 1 0.793945
+1 28 23 0 1 0.853027
+1 28 24 0 1 0.904297
+1 28 25 0 1 0.952637
+1 28 26 0 1 0.997559
+1 28 27 0 1 1
+1 28 28 0 1 1
+1 28 29 0 0.974121 1
+1 28 30 0 0.930664 1
+1 28 31 0 0.884277 1
+1 29 0 0 1 0
+1 29 1 0 1 0
+1 29 2 0 1 0
+1 29 3 0 1 0
+1 29 4 0 1 0
+1 29 5 0 1 0
+1 29 6 0 1 0
+1 29 7 0 1 0
+1 29 8 0 1 0
+1 29 9 0 1 0
+1 29 10 0 1 0
+1 29 11 0 1 0
+1 29 12 0 1 0
+1 29 13 0 1 0
+1 29 14 0 1 0
+1 29 15 0 1 0
+1 29 16 0 1 0.242188
+1 29 17 0 1 0.353271
+1 29 18 0 1 0.446533
+1 29 19 0 1 0.531738
+1 29 20 0 1 0.609863
+1 29 21 0 1 0.683594
+1 29 22 0 1 0.751465
+1 29 23 0 1 0.811035
+1 29 24 0 1 0.86377
+1 29 25 0 1 0.914551
+1 29 26 0 1 0.962402
+1 29 27 0 1 1
+1 29 28 0 1 1
+1 29 29 0 1 1
+1 29 30 0 0.979004 1
+1 29 31 0 0.93457 1
+1 30 0 0 1 0
+1 30 1 0 1 0
+1 30 2 0 1 0
+1 30 3 0 1 0
+1 30 4 0 1 0
+1 30 5 0 1 0
+1 30 6 0 1 0
+1 30 7 0 1 0
+1 30 8 0 1 0
+1 30 9 0 1 0
+1 30 10 0 1 0
+1 30 11 0 1 0
+1 30 12 0 1 0
+1 30 13 0 1 0
+1 30 14 0 1 0
+1 30 15 0 1 0
+1 30 16 0 1 0.186279
+1 30 17 0 1 0.312012
+1 30 18 0 1 0.406738
+1 30 19 0 1 0.490479
+1 30 20 0 1 0.566895
+1 30 21 0 1 0.63916
+1 30 22 0 1 0.705566
+1 30 23 0 1 0.765137
+1 30 24 0 1 0.818848
+1 30 25 0 1 0.870605
+1 30 26 0 1 0.921387
+1 30 27 0 1 0.96875
+1 30 28 0 1 1
+1 30 29 0 1 1
+1 30 30 0 1 1
+1 30 31 0 0.98291 1
+1 31 0 0 1 0
+1 31 1 0 1 0
+1 31 2 0 1 0
+1 31 3 0 1 0
+1 31 4 0 1 0
+1 31 5 0 1 0
+1 31 6 0 1 0
+1 31 7 0 1 0
+1 31 8 0 1 0
+1 31 9 0 1 0
+1 31 10 0 1 0
+1 31 11 0 1 0
+1 31 12 0 1 0
+1 31 13 0 1 0
+1 31 14 0 1 0
+1 31 15 0 1 0
+1 31 16 0 1 0.0895386
+1 31 17 0 1 0.266846
+1 31 18 0 1 0.365234
+1 31 19 0 1 0.448486
+1 31 20 0 1 0.523438
+1 31 21 0 1 0.593262
+1 31 22 0 1 0.658203
+1 31 23 0 1 0.716797
+1 31 24 0 1 0.77002
+1 31 25 0 1 0.823242
+1 31 26 0 1 0.875488
+1 31 27 0 1 0.92627
+1 31 28 0 1 0.973145
+1 31 29 0 1 1
+1 31 30 0 1 1
+1 31 31 0 1 1
+2 0 0 0.0248718 0.0142059 0.0142441
+2 0 1 0.0232544 0.013504 0.0168152
+2 0 2 0.0199738 0.0125351 0.0182495
+2 0 3 0.0227203 0.0153732 0.0270691
+2 0 4 0.0235596 0.0188751 0.0401917
+2 0 5 0.013588 0.0216064 0.0549622
+2 0 6 0 0.0240479 0.0710449
+2 0 7 0 0.0272369 0.09021
+2 0 8 0 0.0320129 0.114624
+2 0 9 0 0.0389709 0.14624
+2 0 10 0 0.0487061 0.187622
+2 0 11 0 0.061615 0.240845
+2 0 12 0 0.0770264 0.303467
+2 0 13 0 0.0946045 0.374268
+2 0 14 0 0.114136 0.452637
+2 0 15 0 0.13501 0.536133
+2 0 16 0 0.156616 0.622559
+2 0 17 0 0.17749 0.706055
+2 0 18 0 0.196777 0.782715
+2 0 19 0 0.213745 0.850098
+2 0 20 0 0.223022 0.887695
+2 0 21 0 0.224854 0.89502
+2 0 22 0 0.226807 0.902832
+2 0 23 0 0.22876 0.910645
+2 0 24 0 0.230835 0.918457
+2 0 25 0 0.233032 0.927246
+2 0 26 0 0.235474 0.937012
+2 0 27 0 0.238159 0.947754
+2 0 28 0 0.241211 0.959961
+2 0 29 0 0.244385 0.972656
+2 0 30 0 0.247803 0.986328
+2 0 31 0 0.251221 1
+2 1 0 0.0205688 0.0145187 0.0122604
+2 1 1 0.0230103 0.0164032 0.0168762
+2 1 2 0.0198669 0.0148697 0.0185547
+2 1 3 0.0221405 0.0178223 0.0270996
+2 1 4 0.0225677 0.0215607 0.0401001
+2 1 5 0.0102539 0.024292 0.0549011
+2 1 6 0 0.0264435 0.0709839
+2 1 7 0 0.0291901 0.09021
+2 1 8 0 0.0335083 0.114624
+2 1 9 0 0.0400391 0.14624
+2 1 10 0 0.049469 0.187622
+2 1 11 0 0.0621948 0.240845
+2 1 12 0 0.0774536 0.303467
+2 1 13 0 0.0949097 0.374268
+2 1 14 0 0.114319 0.452637
+2 1 15 0 0.135132 0.536133
+2 1 16 0 0.156738 0.622559
+2 1 17 0 0.177612 0.706055
+2 1 18 0 0.196899 0.782715
+2 1 19 0 0.213745 0.850098
+2 1 20 0 0.223145 0.887695
+2 1 21 0 0.224976 0.89502
+2 1 22 0 0.226929 0.902832
+2 1 23 0 0.228882 0.910645
+2 1 24 0 0.230835 0.918457
+2 1 25 0 0.233032 0.927246
+2 1 26 0 0.235474 0.937012
+2 1 27 0 0.238159 0.947754
+2 1 28 0 0.241211 0.959961
+2 1 29 0 0.244385 0.972656
+2 1 30 0 0.247803 0.986328
+2 1 31 0 0.251221 1
+2 2 0 0.0189667 0.0167542 0.0119629
+2 2 1 0.0190887 0.0172119 0.0147552
+2 2 2 0.0198975 0.018631 0.0194092
+2 2 3 0.0212097 0.0214386 0.02742
+2 2 4 0.0206909 0.0253448 0.0400391
+2 2 5 0 0.0281372 0.0548096
+2 2 6 0 0.030014 0.0709839
+2 2 7 0 0.0322266 0.09021
+2 2 8 0 0.0359192 0.114624
+2 2 9 0 0.0418396 0.14624
+2 2 10 0 0.0508118 0.187622
+2 2 11 0 0.0631714 0.240845
+2 2 12 0 0.078186 0.303467
+2 2 13 0 0.095459 0.374268
+2 2 14 0 0.114685 0.452637
+2 2 15 0 0.135376 0.536133
+2 2 16 0 0.156982 0.622559
+2 2 17 0 0.177856 0.706055
+2 2 18 0 0.197021 0.782715
+2 2 19 0 0.213867 0.850098
+2 2 20 0 0.223145 0.887695
+2 2 21 0 0.224976 0.89502
+2 2 22 0 0.226929 0.902832
+2 2 23 0 0.228882 0.910645
+2 2 24 0 0.230835 0.918457
+2 2 25 0 0.233032 0.927246
+2 2 26 0 0.235474 0.937012
+2 2 27 0 0.238159 0.947754
+2 2 28 0 0.241211 0.959961
+2 2 29 0 0.244385 0.972656
+2 2 30 0 0.247803 0.986328
+2 2 31 0 0.251221 1
+2 3 0 0.02034 0.0241089 0.0137024
+2 3 1 0.0199738 0.0242462 0.0167389
+2 3 2 0.0196991 0.0250244 0.0211945
+2 3 3 0.0193634 0.0271606 0.0284424
+2 3 4 0.0163879 0.030777 0.0401611
+2 3 5 0 0.0335388 0.0546875
+2 3 6 0 0.0351868 0.0709229
+2 3 7 0 0.0368347 0.0901489
+2 3 8 0 0.0397644 0.114563
+2 3 9 0 0.0448608 0.14624
+2 3 10 0 0.0531311 0.187622
+2 3 11 0 0.0648804 0.240845
+2 3 12 0 0.0794678 0.303467
+2 3 13 0 0.0963745 0.374268
+2 3 14 0 0.115417 0.452637
+2 3 15 0 0.135986 0.536133
+2 3 16 0 0.157349 0.622559
+2 3 17 0 0.178101 0.706055
+2 3 18 0 0.197266 0.782715
+2 3 19 0 0.213989 0.850098
+2 3 20 0 0.223389 0.887695
+2 3 21 0 0.225098 0.89502
+2 3 22 0 0.227051 0.902832
+2 3 23 0 0.229004 0.910645
+2 3 24 0 0.230957 0.918457
+2 3 25 0 0.233154 0.927246
+2 3 26 0 0.235474 0.937012
+2 3 27 0 0.238159 0.947754
+2 3 28 0 0.241211 0.959961
+2 3 29 0 0.244507 0.972656
+2 3 30 0 0.247803 0.986328
+2 3 31 0 0.251221 1
+2 4 0 0.01828 0.0357666 0.0154037
+2 4 1 0.0173492 0.0356445 0.0191193
+2 4 2 0.015686 0.0357666 0.0239105
+2 4 3 0.0117035 0.0367126 0.0306854
+2 4 4 0 0.0388489 0.040802
+2 4 5 0 0.0411682 0.0545959
+2 4 6 0 0.042572 0.0708008
+2 4 7 0 0.0436707 0.0900879
+2 4 8 0 0.0457458 0.114563
+2 4 9 0 0.0498352 0.146118
+2 4 10 0 0.0570984 0.187622
+2 4 11 0 0.0679932 0.240845
+2 4 12 0 0.0817871 0.303467
+2 4 13 0 0.0981445 0.374268
+2 4 14 0 0.116699 0.452637
+2 4 15 0 0.136963 0.536133
+2 4 16 0 0.158081 0.622559
+2 4 17 0 0.178589 0.706055
+2 4 18 0 0.197632 0.782715
+2 4 19 0 0.214355 0.850098
+2 4 20 0 0.223633 0.887695
+2 4 21 0 0.225342 0.89502
+2 4 22 0 0.227173 0.902832
+2 4 23 0 0.229126 0.910645
+2 4 24 0 0.231079 0.918457
+2 4 25 0 0.233154 0.927246
+2 4 26 0 0.235596 0.937012
+2 4 27 0 0.238281 0.947754
+2 4 28 0 0.241333 0.959961
+2 4 29 0 0.244507 0.972656
+2 4 30 0 0.247925 0.986328
+2 4 31 0 0.251465 1
+2 5 0 0 0.0501709 0.01474
+2 5 1 0 0.0501099 0.0197144
+2 5 2 0 0.0500488 0.0254211
+2 5 3 0 0.0501404 0.0325012
+2 5 4 0 0.0506897 0.0418396
+2 5 5 0 0.0518494 0.0545959
+2 5 6 0 0.0528564 0.0705566
+2 5 7 0 0.0534363 0.0900269
+2 5 8 0 0.054657 0.114502
+2 5 9 0 0.0576477 0.146118
+2 5 10 0 0.0637207 0.1875
+2 5 11 0 0.0734253 0.240723
+2 5 12 0 0.0860596 0.303467
+2 5 13 0 0.101379 0.374268
+2 5 14 0 0.119141 0.452637
+2 5 15 0 0.138794 0.536133
+2 5 16 0 0.159546 0.622559
+2 5 17 0 0.179688 0.706055
+2 5 18 0 0.198486 0.782715
+2 5 19 0 0.215088 0.850098
+2 5 20 0 0.224121 0.887695
+2 5 21 0 0.225708 0.89502
+2 5 22 0 0.227539 0.902832
+2 5 23 0 0.22937 0.910645
+2 5 24 0 0.231323 0.918457
+2 5 25 0 0.233398 0.927246
+2 5 26 0 0.23584 0.937012
+2 5 27 0 0.238403 0.947754
+2 5 28 0 0.241455 0.959961
+2 5 29 0 0.244629 0.972656
+2 5 30 0 0.247925 0.986328
+2 5 31 0 0.251465 1
+2 6 0 0 0.0657349 0.00722504
+2 6 1 0 0.0657349 0.01651
+2 6 2 0 0.0657349 0.023941
+2 6 3 0 0.0657349 0.0320129
+2 6 4 0 0.0658569 0.0418396
+2 6 5 0 0.0661621 0.0543518
+2 6 6 0 0.0664673 0.0700684
+2 6 7 0 0.0667114 0.0896606
+2 6 8 0 0.0671997 0.11438
+2 6 9 0 0.0690918 0.145996
+2 6 10 0 0.0739136 0.187378
+2 6 11 0 0.0822754 0.240601
+2 6 12 0 0.0933228 0.303223
+2 6 13 0 0.107178 0.374268
+2 6 14 0 0.123657 0.452637
+2 6 15 0 0.142212 0.536133
+2 6 16 0 0.162109 0.622559
+2 6 17 0 0.181763 0.706055
+2 6 18 0 0.200073 0.782715
+2 6 19 0 0.216309 0.850098
+2 6 20 0 0.22522 0.887695
+2 6 21 0 0.226562 0.89502
+2 6 22 0 0.228149 0.902832
+2 6 23 0 0.22998 0.910645
+2 6 24 0 0.231812 0.918457
+2 6 25 0 0.233765 0.927246
+2 6 26 0 0.236084 0.937012
+2 6 27 0 0.23877 0.947754
+2 6 28 0 0.241699 0.959961
+2 6 29 0 0.244873 0.972656
+2 6 30 0 0.248169 0.986328
+2 6 31 0 0.251709 1
+2 7 0 0 0.0837402 0.00473785
+2 7 1 0 0.0837402 0.0048027
+2 7 2 0 0.0838013 0.0177917
+2 7 3 0 0.0838623 0.0285645
+2 7 4 0 0.0839844 0.0396118
+2 7 5 0 0.0841064 0.0527649
+2 7 6 0 0.0842896 0.0688477
+2 7 7 0 0.0842896 0.0889282
+2 7 8 0 0.0843506 0.114014
+2 7 9 0 0.0853271 0.145752
+2 7 10 0 0.0890503 0.187134
+2 7 11 0 0.0960693 0.240356
+2 7 12 0 0.105347 0.303223
+2 7 13 0 0.117188 0.374268
+2 7 14 0 0.131714 0.452637
+2 7 15 0 0.148438 0.536133
+2 7 16 0 0.166992 0.622559
+2 7 17 0 0.185547 0.706055
+2 7 18 0 0.203003 0.782715
+2 7 19 0 0.21875 0.850098
+2 7 20 0 0.227051 0.887695
+2 7 21 0 0.228149 0.89502
+2 7 22 0 0.229492 0.902832
+2 7 23 0 0.230957 0.910645
+2 7 24 0 0.232666 0.918945
+2 7 25 0 0.234619 0.927246
+2 7 26 0 0.236816 0.937012
+2 7 27 0 0.239258 0.947754
+2 7 28 0 0.242188 0.959961
+2 7 29 0 0.245239 0.973145
+2 7 30 0 0.248535 0.986328
+2 7 31 0 0.251953 1
+2 8 0 0 0.106384 0
+2 8 1 0 0.106384 0
+2 8 2 0 0.106445 0
+2 8 3 0 0.106506 0.0188446
+2 8 4 0 0.106567 0.0344849
+2 8 5 0 0.10675 0.0493164
+2 8 6 0 0.106995 0.0662842
+2 8 7 0 0.107117 0.0870972
+2 8 8 0 0.107117 0.112976
+2 8 9 0 0.107605 0.145264
+2 8 10 0 0.110413 0.186646
+2 8 11 0 0.116455 0.23999
+2 8 12 0 0.124023 0.302979
+2 8 13 0 0.133545 0.374023
+2 8 14 0 0.145386 0.452393
+2 8 15 0 0.159668 0.536133
+2 8 16 0 0.176025 0.622559
+2 8 17 0 0.192627 0.706055
+2 8 18 0 0.20874 0.782715
+2 8 19 0 0.223267 0.850586
+2 8 20 0 0.230835 0.888184
+2 8 21 0 0.231079 0.895508
+2 8 22 0 0.231934 0.90332
+2 8 23 0 0.233032 0.911133
+2 8 24 0 0.234375 0.918945
+2 8 25 0 0.236084 0.927734
+2 8 26 0 0.238037 0.9375
+2 8 27 0 0.240356 0.947754
+2 8 28 0 0.243164 0.959961
+2 8 29 0 0.246094 0.973145
+2 8 30 0 0.249268 0.986328
+2 8 31 0 0.252441 1
+2 9 0 0 0.135132 0
+2 9 1 0 0.135132 0
+2 9 2 0 0.135254 0
+2 9 3 0 0.135254 0
+2 9 4 0 0.135254 0.0203857
+2 9 5 0 0.135376 0.0426636
+2 9 6 0 0.13562 0.0618896
+2 9 7 0 0.135864 0.0839233
+2 9 8 0 0.136108 0.110901
+2 9 9 0 0.136841 0.144287
+2 9 10 0 0.13916 0.186035
+2 9 11 0 0.144531 0.23938
+2 9 12 0 0.150757 0.30249
+2 9 13 0 0.158203 0.374023
+2 9 14 0 0.167236 0.452393
+2 9 15 0 0.178345 0.536133
+2 9 16 0 0.191406 0.623047
+2 9 17 0 0.2052 0.706543
+2 9 18 0 0.218994 0.783203
+2 9 19 0 0.231689 0.850586
+2 9 20 0 0.237793 0.888672
+2 9 21 0 0.236572 0.895996
+2 9 22 0 0.23645 0.90332
+2 9 23 0 0.236938 0.911133
+2 9 24 0 0.237671 0.918945
+2 9 25 0 0.238892 0.927734
+2 9 26 0 0.240479 0.9375
+2 9 27 0 0.242554 0.948242
+2 9 28 0 0.244995 0.960449
+2 9 29 0 0.247681 0.973145
+2 9 30 0 0.250488 0.986328
+2 9 31 0 0.253662 1
+2 10 0 0 0.172241 0
+2 10 1 0 0.172241 0
+2 10 2 0 0.172241 0
+2 10 3 0 0.172363 0
+2 10 4 0 0.172363 0
+2 10 5 0 0.172485 0.0252075
+2 10 6 0 0.172485 0.0544434
+2 10 7 0 0.172485 0.0795288
+2 10 8 0 0.172729 0.108215
+2 10 9 0 0.173584 0.142944
+2 10 10 0 0.175781 0.185425
+2 10 11 0 0.18042 0.238525
+2 10 12 0 0.185913 0.301758
+2 10 13 0 0.19165 0.373535
+2 10 14 0 0.19812 0.452393
+2 10 15 0 0.205811 0.536133
+2 10 16 0 0.21521 0.623047
+2 10 17 0 0.225464 0.706543
+2 10 18 0 0.23584 0.783203
+2 10 19 0 0.24585 0.851074
+2 10 20 0 0.249634 0.889648
+2 10 21 0 0.246216 0.896484
+2 10 22 0 0.244385 0.904297
+2 10 23 0 0.243652 0.912109
+2 10 24 0 0.24353 0.919434
+2 10 25 0 0.244019 0.928223
+2 10 26 0 0.244873 0.937988
+2 10 27 0 0.246216 0.94873
+2 10 28 0 0.248169 0.960449
+2 10 29 0 0.250488 0.973633
+2 10 30 0 0.25293 0.986816
+2 10 31 0 0.255859 1
+2 11 0 0 0.220459 0
+2 11 1 0 0.220459 0
+2 11 2 0 0.220459 0
+2 11 3 0 0.220459 0
+2 11 4 0 0.220581 0
+2 11 5 0 0.220581 0
+2 11 6 0 0.220703 0.0350647
+2 11 7 0 0.220581 0.0720825
+2 11 8 0 0.220459 0.104797
+2 11 9 0 0.220703 0.141724
+2 11 10 0 0.222168 0.185181
+2 11 11 0 0.225464 0.237915
+2 11 12 0 0.229858 0.300781
+2 11 13 0 0.234375 0.372803
+2 11 14 0 0.23877 0.451904
+2 11 15 0 0.24353 0.536133
+2 11 16 0 0.249146 0.623047
+2 11 17 0 0.255371 0.707031
+2 11 18 0 0.261719 0.783691
+2 11 19 0 0.268066 0.851562
+2 11 20 0 0.268555 0.891113
+2 11 21 0 0.261963 0.897949
+2 11 22 0 0.257568 0.905273
+2 11 23 0 0.254883 0.913086
+2 11 24 0 0.253418 0.92041
+2 11 25 0 0.252441 0.929199
+2 11 26 0 0.252197 0.938477
+2 11 27 0 0.252686 0.949219
+2 11 28 0 0.253662 0.960938
+2 11 29 0 0.255371 0.974121
+2 11 30 0 0.25708 0.987305
+2 11 31 0 0.259277 1
+2 12 0 0 0.278809 0
+2 12 1 0 0.278809 0
+2 12 2 0 0.278809 0
+2 12 3 0 0.278809 0
+2 12 4 0 0.278809 0
+2 12 5 0 0.279053 0
+2 12 6 0 0.279053 0
+2 12 7 0 0.279053 0.0516663
+2 12 8 0 0.279053 0.0966797
+2 12 9 0 0.279053 0.138306
+2 12 10 0 0.279541 0.18396
+2 12 11 0 0.28125 0.236938
+2 12 12 0 0.283936 0.299561
+2 12 13 0 0.287354 0.371582
+2 12 14 0 0.290039 0.451172
+2 12 15 0 0.292236 0.535645
+2 12 16 0 0.294434 0.623535
+2 12 17 0 0.296387 0.70752
+2 12 18 0 0.29834 0.784668
+2 12 19 0 0.300293 0.852051
+2 12 20 0 0.297119 0.893555
+2 12 21 0 0.285889 0.900391
+2 12 22 0 0.278076 0.907227
+2 12 23 0 0.272461 0.914551
+2 12 24 0 0.268799 0.922363
+2 12 25 0 0.266113 0.930664
+2 12 26 0 0.26416 0.939941
+2 12 27 0 0.262939 0.950195
+2 12 28 0 0.262695 0.961914
+2 12 29 0 0.263184 0.974609
+2 12 30 0 0.263916 0.987793
+2 12 31 0 0.265381 1
+2 13 0 0 0.345215 0
+2 13 1 0 0.345215 0
+2 13 2 0 0.345215 0
+2 13 3 0 0.345215 0
+2 13 4 0 0.345215 0
+2 13 5 0 0.345459 0
+2 13 6 0 0.345459 0
+2 13 7 0 0.345459 0
+2 13 8 0 0.345703 0.0759888
+2 13 9 0 0.345703 0.128784
+2 13 10 0 0.346191 0.178955
+2 13 11 0 0.34668 0.234131
+2 13 12 0 0.348145 0.297363
+2 13 13 0 0.350098 0.369385
+2 13 14 0 0.351562 0.449463
+2 13 15 0 0.351807 0.535156
+2 13 16 0 0.35083 0.623535
+2 13 17 0 0.348877 0.708008
+2 13 18 0 0.346436 0.785645
+2 13 19 0 0.343994 0.853516
+2 13 20 0 0.33667 0.897461
+2 13 21 0 0.319824 0.903809
+2 13 22 0 0.307373 0.910645
+2 13 23 0 0.29834 0.91748
+2 13 24 0 0.291748 0.924805
+2 13 25 0 0.286377 0.933105
+2 13 26 0 0.282227 0.941895
+2 13 27 0 0.279053 0.952148
+2 13 28 0 0.276855 0.963867
+2 13 29 0 0.275391 0.976074
+2 13 30 0 0.274902 0.989258
+2 13 31 0 0.274658 1
+2 14 0 0 0.419189 0
+2 14 1 0 0.419189 0
+2 14 2 0 0.419189 0
+2 14 3 0 0.419189 0
+2 14 4 0 0.419189 0
+2 14 5 0 0.419189 0
+2 14 6 0 0.419434 0
+2 14 7 0 0.419434 0
+2 14 8 0 0.419678 0
+2 14 9 0 0.419922 0.107971
+2 14 10 0 0.42041 0.167725
+2 14 11 0 0.420898 0.226929
+2 14 12 0 0.421631 0.292236
+2 14 13 0 0.422607 0.365234
+2 14 14 0 0.422852 0.446045
+2 14 15 0 0.421631 0.532715
+2 14 16 0 0.418701 0.622559
+2 14 17 0 0.41333 0.708008
+2 14 18 0 0.406494 0.786133
+2 14 19 0 0.399414 0.854492
+2 14 20 0 0.388672 0.90332
+2 14 21 0 0.365479 0.90918
+2 14 22 0 0.347656 0.915527
+2 14 23 0 0.334229 0.922363
+2 14 24 0 0.323975 0.929199
+2 14 25 0 0.31543 0.936523
+2 14 26 0 0.307861 0.945312
+2 14 27 0 0.302002 0.955078
+2 14 28 0 0.297119 0.966309
+2 14 29 0 0.293457 0.978516
+2 14 30 0 0.290771 0.991211
+2 14 31 0 0.288818 1
+2 15 0 0 0.498779 0
+2 15 1 0 0.498779 0
+2 15 2 0 0.498779 0
+2 15 3 0 0.498779 0
+2 15 4 0 0.498779 0
+2 15 5 0 0.498779 0
+2 15 6 0 0.498779 0
+2 15 7 0 0.498779 0
+2 15 8 0 0.499023 0
+2 15 9 0 0.499268 0.0471497
+2 15 10 0 0.499756 0.146362
+2 15 11 0 0.500488 0.213501
+2 15 12 0 0.501465 0.282471
+2 15 13 0 0.502441 0.357422
+2 15 14 0 0.502441 0.439941
+2 15 15 0 0.500488 0.52832
+2 15 16 0 0.496094 0.619629
+2 15 17 0 0.488037 0.707031
+2 15 18 0 0.477783 0.786621
+2 15 19 0 0.466553 0.855957
+2 15 20 0 0.453125 0.910156
+2 15 21 0 0.423096 0.916992
+2 15 22 0 0.39917 0.92334
+2 15 23 0 0.380859 0.929688
+2 15 24 0 0.366211 0.936035
+2 15 25 0 0.35376 0.942871
+2 15 26 0 0.342529 0.951172
+2 15 27 0 0.333008 0.959961
+2 15 28 0 0.325195 0.970703
+2 15 29 0 0.318604 0.981934
+2 15 30 0 0.312988 0.994141
+2 15 31 0 0.308594 1
+2 16 0 0 0.582031 0
+2 16 1 0 0.582031 0
+2 16 2 0 0.582031 0
+2 16 3 0 0.582031 0
+2 16 4 0 0.582031 0
+2 16 5 0 0.582031 0
+2 16 6 0 0.582031 0
+2 16 7 0 0.58252 0
+2 16 8 0 0.58252 0
+2 16 9 0 0.58252 0
+2 16 10 0 0.583008 0.103455
+2 16 11 0 0.583984 0.191284
+2 16 12 0 0.585449 0.266602
+2 16 13 0 0.586426 0.344727
+2 16 14 0 0.586914 0.429199
+2 16 15 0 0.585938 0.519531
+2 16 16 0 0.581055 0.612793
+2 16 17 0 0.571777 0.703125
+2 16 18 0 0.558594 0.785156
+2 16 19 0 0.543945 0.855957
+2 16 20 0 0.527832 0.914551
+2 16 21 0 0.49292 0.927246
+2 16 22 0 0.462891 0.93457
+2 16 23 0 0.438965 0.940918
+2 16 24 0 0.419678 0.946289
+2 16 25 0 0.402344 0.952637
+2 16 26 0 0.386963 0.959961
+2 16 27 0 0.373291 0.967773
+2 16 28 0 0.361572 0.977539
+2 16 29 0 0.351562 0.987793
+2 16 30 0 0.342773 0.999512
+2 16 31 0 0.335205 1
+2 17 0 0 0.664551 0
+2 17 1 0 0.664551 0
+2 17 2 0 0.664551 0
+2 17 3 0 0.664551 0
+2 17 4 0 0.664551 0
+2 17 5 0 0.664551 0
+2 17 6 0 0.664551 0
+2 17 7 0 0.664551 0
+2 17 8 0 0.664551 0
+2 17 9 0 0.664551 0
+2 17 10 0 0.665039 0
+2 17 11 0 0.666016 0.155151
+2 17 12 0 0.66748 0.24353
+2 17 13 0 0.669434 0.326172
+2 17 14 0 0.671387 0.413086
+2 17 15 0 0.670898 0.505371
+2 17 16 0 0.666992 0.601074
+2 17 17 0 0.658203 0.694336
+2 17 18 0 0.644531 0.779785
+2 17 19 0 0.627441 0.853516
+2 17 20 0 0.60791 0.914062
+2 17 21 0 0.571777 0.937988
+2 17 22 0 0.536621 0.94873
+2 17 23 0 0.507324 0.955566
+2 17 24 0 0.483154 0.960938
+2 17 25 0 0.460938 0.966797
+2 17 26 0 0.440674 0.972656
+2 17 27 0 0.422119 0.979492
+2 17 28 0 0.406006 0.987305
+2 17 29 0 0.391846 0.996582
+2 17 30 0 0.37915 1
+2 17 31 0 0.36792 1
+2 18 0 0 0.741211 0
+2 18 1 0 0.741211 0
+2 18 2 0 0.741211 0
+2 18 3 0 0.741211 0
+2 18 4 0 0.741211 0
+2 18 5 0 0.741211 0
+2 18 6 0 0.741211 0
+2 18 7 0 0.741211 0
+2 18 8 0 0.741211 0
+2 18 9 0 0.741211 0
+2 18 10 0 0.741699 0
+2 18 11 0 0.742188 0.0793457
+2 18 12 0 0.744141 0.211304
+2 18 13 0 0.746582 0.301758
+2 18 14 0 0.749023 0.391602
+2 18 15 0 0.750488 0.485596
+2 18 16 0 0.748535 0.583496
+2 18 17 0 0.741699 0.680176
+2 18 18 0 0.729004 0.769043
+2 18 19 0 0.711426 0.84668
+2 18 20 0 0.69043 0.910645
+2 18 21 0 0.655762 0.945801
+2 18 22 0 0.618164 0.963867
+2 18 23 0 0.584473 0.973633
+2 18 24 0 0.555176 0.979492
+2 18 25 0 0.527344 0.984863
+2 18 26 0 0.501953 0.989746
+2 18 27 0 0.478516 0.995117
+2 18 28 0 0.45752 1
+2 18 29 0 0.438477 1
+2 18 30 0 0.421631 1
+2 18 31 0 0.40625 1
+2 19 0 0 0.810059 0
+2 19 1 0 0.810059 0
+2 19 2 0 0.810059 0
+2 19 3 0 0.810059 0
+2 19 4 0 0.810059 0
+2 19 5 0 0.810059 0
+2 19 6 0 0.810059 0
+2 19 7 0 0.810059 0
+2 19 8 0 0.810059 0
+2 19 9 0 0.810059 0
+2 19 10 0 0.810547 0
+2 19 11 0 0.810547 0
+2 19 12 0 0.812012 0.166138
+2 19 13 0 0.814941 0.272217
+2 19 14 0 0.818359 0.366455
+2 19 15 0 0.820801 0.462158
+2 19 16 0 0.821289 0.561523
+2 19 17 0 0.817383 0.660156
+2 19 18 0 0.807129 0.75293
+2 19 19 0 0.791016 0.834473
+2 19 20 0 0.77002 0.901855
+2 19 21 0 0.73877 0.94873
+2 19 22 0 0.70166 0.976074
+2 19 23 0 0.665527 0.991211
+2 19 24 0 0.632324 1
+2 19 25 0 0.599609 1
+2 19 26 0 0.568848 1
+2 19 27 0 0.540039 1
+2 19 28 0 0.513672 1
+2 19 29 0 0.48999 1
+2 19 30 0 0.468262 1
+2 19 31 0 0.44873 1
+2 20 0 0 0.869629 0
+2 20 1 0 0.869629 0
+2 20 2 0 0.869629 0
+2 20 3 0 0.869629 0
+2 20 4 0 0.869629 0
+2 20 5 0 0.869629 0
+2 20 6 0 0.869629 0
+2 20 7 0 0.869629 0
+2 20 8 0 0.869629 0
+2 20 9 0 0.869629 0
+2 20 10 0 0.869629 0
+2 20 11 0 0.870117 0
+2 20 12 0 0.870605 0.0809326
+2 20 13 0 0.873535 0.237427
+2 20 14 0 0.877441 0.338623
+2 20 15 0 0.881348 0.436279
+2 20 16 0 0.883789 0.536621
+2 20 17 0 0.882812 0.636719
+2 20 18 0 0.875488 0.731934
+2 20 19 0 0.861328 0.816895
+2 20 20 0 0.841797 0.888184
+2 20 21 0 0.81543 0.944824
+2 20 22 0 0.781738 0.982422
+2 20 23 0 0.745117 1
+2 20 24 0 0.709961 1
+2 20 25 0 0.673828 1
+2 20 26 0 0.638672 1
+2 20 27 0 0.60498 1
+2 20 28 0 0.573242 1
+2 20 29 0 0.544434 1
+2 20 30 0 0.517578 1
+2 20 31 0 0.493652 1
+2 21 0 0 0.92041 0
+2 21 1 0 0.92041 0
+2 21 2 0 0.92041 0
+2 21 3 0 0.92041 0
+2 21 4 0 0.92041 0
+2 21 5 0 0.92041 0
+2 21 6 0 0.92041 0
+2 21 7 0 0.92041 0
+2 21 8 0 0.92041 0
+2 21 9 0 0.92041 0
+2 21 10 0 0.92041 0
+2 21 11 0 0.92041 0
+2 21 12 0 0.920898 0
+2 21 13 0 0.92334 0.193848
+2 21 14 0 0.927246 0.307617
+2 21 15 0 0.932129 0.408203
+2 21 16 0 0.936035 0.509277
+2 21 17 0 0.9375 0.609863
+2 21 18 0 0.933594 0.706543
+2 21 19 0 0.922852 0.794434
+2 21 20 0 0.90625 0.869141
+2 21 21 0 0.883301 0.932129
+2 21 22 0 0.854492 0.979492
+2 21 23 0 0.820801 1
+2 21 24 0 0.785645 1
+2 21 25 0 0.748047 1
+2 21 26 0 0.709473 1
+2 21 27 0 0.671387 1
+2 21 28 0 0.635254 1
+2 21 29 0 0.601074 1
+2 21 30 0 0.569824 1
+2 21 31 0 0.541016 1
+2 22 0 0 0.962402 0
+2 22 1 0 0.962402 0
+2 22 2 0 0.962402 0
+2 22 3 0 0.962402 0
+2 22 4 0 0.962402 0
+2 22 5 0 0.962402 0
+2 22 6 0 0.962402 0
+2 22 7 0 0.962402 0
+2 22 8 0 0.962402 0
+2 22 9 0 0.962402 0
+2 22 10 0 0.962402 0
+2 22 11 0 0.962402 0
+2 22 12 0 0.962891 0
+2 22 13 0 0.963867 0.131348
+2 22 14 0 0.968262 0.273682
+2 22 15 0 0.973633 0.378662
+2 22 16 0 0.979004 0.480469
+2 22 17 0 0.982422 0.581055
+2 22 18 0 0.981445 0.678223
+2 22 19 0 0.974609 0.768066
+2 22 20 0 0.960938 0.845703
+2 22 21 0 0.941406 0.912598
+2 22 22 0 0.916504 0.967285
+2 22 23 0 0.887695 1
+2 22 24 0 0.85498 1
+2 22 25 0 0.817871 1
+2 22 26 0 0.77832 1
+2 22 27 0 0.737305 1
+2 22 28 0 0.697266 1
+2 22 29 0 0.65918 1
+2 22 30 0 0.623047 1
+2 22 31 0 0.589844 1
+2 23 0 0 0.995605 0
+2 23 1 0 0.995605 0
+2 23 2 0 0.995605 0
+2 23 3 0 0.995605 0
+2 23 4 0 0.995605 0
+2 23 5 0 0.995605 0
+2 23 6 0 0.995605 0
+2 23 7 0 0.995605 0
+2 23 8 0 0.995605 0
+2 23 9 0 0.995605 0
+2 23 10 0 0.996094 0
+2 23 11 0 0.996094 0
+2 23 12 0 0.996094 0
+2 23 13 0 0.996582 0
+2 23 14 0 1 0.237061
+2 23 15 0 1 0.349121
+2 23 16 0 1 0.451904
+2 23 17 0 1 0.552246
+2 23 18 0 1 0.649902
+2 23 19 0 1 0.740234
+2 23 20 0 1 0.820312
+2 23 21 0 0.98877 0.890137
+2 23 22 0 0.967285 0.948242
+2 23 23 0 0.941895 0.993652
+2 23 24 0 0.913574 1
+2 23 25 0 0.879395 1
+2 23 26 0 0.840332 1
+2 23 27 0 0.79834 1
+2 23 28 0 0.756348 1
+2 23 29 0 0.714844 1
+2 23 30 0 0.674805 1
+2 23 31 0 0.637695 1
+2 24 0 0 1 0
+2 24 1 0 1 0
+2 24 2 0 1 0
+2 24 3 0 1 0
+2 24 4 0 1 0
+2 24 5 0 1 0
+2 24 6 0 1 0
+2 24 7 0 1 0
+2 24 8 0 1 0
+2 24 9 0 1 0
+2 24 10 0 1 0
+2 24 11 0 1 0
+2 24 12 0 1 0
+2 24 13 0 1 0
+2 24 14 0 1 0.195801
+2 24 15 0 1 0.319336
+2 24 16 0 1 0.424072
+2 24 17 0 1 0.524414
+2 24 18 0 1 0.621094
+2 24 19 0 1 0.711426
+2 24 20 0 1 0.792969
+2 24 21 0 1 0.864746
+2 24 22 0 1 0.92627
+2 24 23 0 0.986816 0.975586
+2 24 24 0 0.961914 1
+2 24 25 0 0.931641 1
+2 24 26 0 0.89502 1
+2 24 27 0 0.854004 1
+2 24 28 0 0.810547 1
+2 24 29 0 0.76709 1
+2 24 30 0 0.724609 1
+2 24 31 0 0.683594 1
+2 25 0 0 1 0
+2 25 1 0 1 0
+2 25 2 0 1 0
+2 25 3 0 1 0
+2 25 4 0 1 0
+2 25 5 0 1 0
+2 25 6 0 1 0
+2 25 7 0 1 0
+2 25 8 0 1 0
+2 25 9 0 1 0
+2 25 10 0 1 0
+2 25 11 0 1 0
+2 25 12 0 1 0
+2 25 13 0 1 0
+2 25 14 0 1 0.13562
+2 25 15 0 1 0.286133
+2 25 16 0 1 0.394043
+2 25 17 0 1 0.493896
+2 25 18 0 1 0.589844
+2 25 19 0 1 0.679688
+2 25 20 0 1 0.761719
+2 25 21 0 1 0.835449
+2 25 22 0 1 0.899414
+2 25 23 0 1 0.952148
+2 25 24 0 1 0.995605
+2 25 25 0 0.979492 1
+2 25 26 0 0.946777 1
+2 25 27 0 0.907715 1
+2 25 28 0 0.865234 1
+2 25 29 0 0.820312 1
+2 25 30 0 0.775879 1
+2 25 31 0 0.732422 1
+2 26 0 0 1 0
+2 26 1 0 1 0
+2 26 2 0 1 0
+2 26 3 0 1 0
+2 26 4 0 1 0
+2 26 5 0 1 0
+2 26 6 0 1 0
+2 26 7 0 1 0
+2 26 8 0 1 0
+2 26 9 0 1 0
+2 26 10 0 1 0
+2 26 11 0 1 0
+2 26 12 0 1 0
+2 26 13 0 1 0
+2 26 14 0 1 0
+2 26 15 0 1 0.247559
+2 26 16 0 1 0.361328
+2 26 17 0 1 0.46167
+2 26 18 0 1 0.556641
+2 26 19 0 1 0.645508
+2 26 20 0 1 0.727539
+2 26 21 0 1 0.802246
+2 26 22 0 1 0.868652
+2 26 23 0 1 0.923828
+2 26 24 0 1 0.970215
+2 26 25 0 1 1
+2 26 26 0 0.994629 1
+2 26 27 0 0.958984 1
+2 26 28 0 0.918457 1
+2 26 29 0 0.874023 1
+2 26 30 0 0.828125 1
+2 26 31 0 0.782227 1
+2 27 0 0 1 0
+2 27 1 0 1 0
+2 27 2 0 1 0
+2 27 3 0 1 0
+2 27 4 0 1 0
+2 27 5 0 1 0
+2 27 6 0 1 0
+2 27 7 0 1 0
+2 27 8 0 1 0
+2 27 9 0 1 0
+2 27 10 0 1 0
+2 27 11 0 1 0
+2 27 12 0 1 0
+2 27 13 0 1 0
+2 27 14 0 1 0
+2 27 15 0 1 0.200073
+2 27 16 0 1 0.326172
+2 27 17 0 1 0.427734
+2 27 18 0 1 0.521484
+2 27 19 0 1 0.609375
+2 27 20 0 1 0.69043
+2 27 21 0 1 0.765625
+2 27 22 0 1 0.833008
+2 27 23 0 1 0.890625
+2 27 24 0 1 0.939941
+2 27 25 0 1 0.985352
+2 27 26 0 1 1
+2 27 27 0 1 1
+2 27 28 0 0.968262 1
+2 27 29 0 0.925293 1
+2 27 30 0 0.879883 1
+2 27 31 0 0.833008 1
+2 28 0 0 1 0
+2 28 1 0 1 0
+2 28 2 0 1 0
+2 28 3 0 1 0
+2 28 4 0 1 0
+2 28 5 0 1 0
+2 28 6 0 1 0
+2 28 7 0 1 0
+2 28 8 0 1 0
+2 28 9 0 1 0
+2 28 10 0 1 0
+2 28 11 0 1 0
+2 28 12 0 1 0
+2 28 13 0 1 0
+2 28 14 0 1 0
+2 28 15 0 1 0.129761
+2 28 16 0 1 0.287109
+2 28 17 0 1 0.391602
+2 28 18 0 1 0.484863
+2 28 19 0 1 0.571289
+2 28 20 0 1 0.651367
+2 28 21 0 1 0.726074
+2 28 22 0 1 0.793945
+2 28 23 0 1 0.853027
+2 28 24 0 1 0.904297
+2 28 25 0 1 0.952637
+2 28 26 0 1 0.997559
+2 28 27 0 1 1
+2 28 28 0 1 1
+2 28 29 0 0.974121 1
+2 28 30 0 0.930664 1
+2 28 31 0 0.884277 1
+2 29 0 0 1 0
+2 29 1 0 1 0
+2 29 2 0 1 0
+2 29 3 0 1 0
+2 29 4 0 1 0
+2 29 5 0 1 0
+2 29 6 0 1 0
+2 29 7 0 1 0
+2 29 8 0 1 0
+2 29 9 0 1 0
+2 29 10 0 1 0
+2 29 11 0 1 0
+2 29 12 0 1 0
+2 29 13 0 1 0
+2 29 14 0 1 0
+2 29 15 0 1 0
+2 29 16 0 1 0.242188
+2 29 17 0 1 0.353271
+2 29 18 0 1 0.446533
+2 29 19 0 1 0.531738
+2 29 20 0 1 0.609863
+2 29 21 0 1 0.683594
+2 29 22 0 1 0.751465
+2 29 23 0 1 0.811035
+2 29 24 0 1 0.86377
+2 29 25 0 1 0.914551
+2 29 26 0 1 0.962402
+2 29 27 0 1 1
+2 29 28 0 1 1
+2 29 29 0 1 1
+2 29 30 0 0.979004 1
+2 29 31 0 0.93457 1
+2 30 0 0 1 0
+2 30 1 0 1 0
+2 30 2 0 1 0
+2 30 3 0 1 0
+2 30 4 0 1 0
+2 30 5 0 1 0
+2 30 6 0 1 0
+2 30 7 0 1 0
+2 30 8 0 1 0
+2 30 9 0 1 0
+2 30 10 0 1 0
+2 30 11 0 1 0
+2 30 12 0 1 0
+2 30 13 0 1 0
+2 30 14 0 1 0
+2 30 15 0 1 0
+2 30 16 0 1 0.186279
+2 30 17 0 1 0.312012
+2 30 18 0 1 0.406738
+2 30 19 0 1 0.490479
+2 30 20 0 1 0.566895
+2 30 21 0 1 0.63916
+2 30 22 0 1 0.705566
+2 30 23 0 1 0.765137
+2 30 24 0 1 0.818848
+2 30 25 0 1 0.870605
+2 30 26 0 1 0.921387
+2 30 27 0 1 0.96875
+2 30 28 0 1 1
+2 30 29 0 1 1
+2 30 30 0 1 1
+2 30 31 0 0.98291 1
+2 31 0 0 1 0
+2 31 1 0 1 0
+2 31 2 0 1 0
+2 31 3 0 1 0
+2 31 4 0 1 0
+2 31 5 0 1 0
+2 31 6 0 1 0
+2 31 7 0 1 0
+2 31 8 0 1 0
+2 31 9 0 1 0
+2 31 10 0 1 0
+2 31 11 0 1 0
+2 31 12 0 1 0
+2 31 13 0 1 0
+2 31 14 0 1 0
+2 31 15 0 1 0
+2 31 16 0 1 0.0895386
+2 31 17 0 1 0.266846
+2 31 18 0 1 0.365234
+2 31 19 0 1 0.448486
+2 31 20 0 1 0.523438
+2 31 21 0 1 0.593262
+2 31 22 0 1 0.658203
+2 31 23 0 1 0.716797
+2 31 24 0 1 0.77002
+2 31 25 0 1 0.823242
+2 31 26 0 1 0.875488
+2 31 27 0 1 0.92627
+2 31 28 0 1 0.973145
+2 31 29 0 1 1
+2 31 30 0 1 1
+2 31 31 0 1 1
+3 0 0 0.041748 0.0186157 0.0175629
+3 0 1 0.0407104 0.0180817 0.0222015
+3 0 2 0.0354919 0.0165863 0.0250092
+3 0 3 0.0318604 0.0167236 0.0286865
+3 0 4 0.0338745 0.0194855 0.0404663
+3 0 5 0.0313416 0.0220795 0.0549316
+3 0 6 0.0138474 0.0244904 0.0710449
+3 0 7 0 0.0276031 0.090271
+3 0 8 0 0.0322876 0.114624
+3 0 9 0 0.0391541 0.14624
+3 0 10 0 0.0488281 0.187622
+3 0 11 0 0.0617065 0.240845
+3 0 12 0 0.0770874 0.303467
+3 0 13 0 0.0946655 0.374268
+3 0 14 0 0.114136 0.452637
+3 0 15 0 0.13501 0.536133
+3 0 16 0 0.156616 0.622559
+3 0 17 0 0.177612 0.706055
+3 0 18 0 0.196777 0.782715
+3 0 19 0 0.213745 0.850098
+3 0 20 0 0.223145 0.887695
+3 0 21 0 0.224854 0.89502
+3 0 22 0 0.226807 0.902832
+3 0 23 0 0.228882 0.910645
+3 0 24 0 0.230835 0.918457
+3 0 25 0 0.233032 0.927246
+3 0 26 0 0.235474 0.937012
+3 0 27 0 0.238159 0.947754
+3 0 28 0 0.241211 0.959961
+3 0 29 0 0.244385 0.972656
+3 0 30 0 0.247803 0.986328
+3 0 31 0 0.251221 1
+3 1 0 0.0383301 0.0211182 0.016449
+3 1 1 0.0391541 0.0215149 0.0214386
+3 1 2 0.0367432 0.0205231 0.0260162
+3 1 3 0.0315247 0.0192108 0.028717
+3 1 4 0.0333557 0.02211 0.0404053
+3 1 5 0.0306091 0.0246735 0.0549011
+3 1 6 0.0105057 0.026825 0.0710449
+3 1 7 0 0.0295105 0.090271
+3 1 8 0 0.0337524 0.114624
+3 1 9 0 0.0402222 0.14624
+3 1 10 0 0.0495911 0.187622
+3 1 11 0 0.0622864 0.240845
+3 1 12 0 0.0775146 0.303467
+3 1 13 0 0.0949707 0.374268
+3 1 14 0 0.11438 0.452637
+3 1 15 0 0.135132 0.536133
+3 1 16 0 0.156738 0.622559
+3 1 17 0 0.177612 0.706055
+3 1 18 0 0.196899 0.782715
+3 1 19 0 0.213745 0.850098
+3 1 20 0 0.223145 0.887695
+3 1 21 0 0.224976 0.89502
+3 1 22 0 0.226929 0.902832
+3 1 23 0 0.228882 0.910645
+3 1 24 0 0.230835 0.918457
+3 1 25 0 0.233032 0.927246
+3 1 26 0 0.235474 0.937012
+3 1 27 0 0.238159 0.947754
+3 1 28 0 0.241211 0.959961
+3 1 29 0 0.244385 0.972656
+3 1 30 0 0.247803 0.986328
+3 1 31 0 0.251221 1
+3 2 0 0.0325928 0.0223694 0.0151672
+3 2 1 0.0333557 0.0230865 0.0190582
+3 2 2 0.0359192 0.025116 0.0257874
+3 2 3 0.0310669 0.0228729 0.0289459
+3 2 4 0.0324097 0.0258636 0.0403748
+3 2 5 0.0292358 0.0284271 0.0548096
+3 2 6 0 0.0303192 0.0709839
+3 2 7 0 0.0325012 0.09021
+3 2 8 0 0.0361328 0.114624
+3 2 9 0 0.0420227 0.14624
+3 2 10 0 0.0509338 0.187622
+3 2 11 0 0.0632324 0.240845
+3 2 12 0 0.0782471 0.303467
+3 2 13 0 0.09552 0.374268
+3 2 14 0 0.114746 0.452637
+3 2 15 0 0.135498 0.536133
+3 2 16 0 0.156982 0.622559
+3 2 17 0 0.177856 0.706055
+3 2 18 0 0.197021 0.782715
+3 2 19 0 0.213867 0.850098
+3 2 20 0 0.223267 0.887695
+3 2 21 0 0.224976 0.89502
+3 2 22 0 0.226929 0.902832
+3 2 23 0 0.228882 0.910645
+3 2 24 0 0.230835 0.918457
+3 2 25 0 0.233032 0.927246
+3 2 26 0 0.235474 0.937012
+3 2 27 0 0.238159 0.947754
+3 2 28 0 0.241211 0.959961
+3 2 29 0 0.244385 0.972656
+3 2 30 0 0.247803 0.986328
+3 2 31 0 0.251221 1
+3 3 0 0.0306091 0.0266724 0.0152359
+3 3 1 0.0302887 0.0267029 0.0184326
+3 3 2 0.0301208 0.0270996 0.0228729
+3 3 3 0.0304565 0.0285034 0.0297089
+3 3 4 0.0306702 0.03125 0.0405273
+3 3 5 0.0264435 0.033783 0.054718
+3 3 6 0 0.0354309 0.0709839
+3 3 7 0 0.0370789 0.09021
+3 3 8 0 0.0399475 0.114624
+3 3 9 0 0.0450134 0.14624
+3 3 10 0 0.0532227 0.187622
+3 3 11 0 0.0650024 0.240845
+3 3 12 0 0.0795288 0.303467
+3 3 13 0 0.0964355 0.374268
+3 3 14 0 0.115479 0.452637
+3 3 15 0 0.135986 0.536133
+3 3 16 0 0.157349 0.622559
+3 3 17 0 0.178101 0.706055
+3 3 18 0 0.197266 0.782715
+3 3 19 0 0.213989 0.850098
+3 3 20 0 0.223389 0.887695
+3 3 21 0 0.225098 0.89502
+3 3 22 0 0.227051 0.902832
+3 3 23 0 0.229004 0.910645
+3 3 24 0 0.230957 0.918457
+3 3 25 0 0.233154 0.927246
+3 3 26 0 0.235474 0.937012
+3 3 27 0 0.238159 0.947754
+3 3 28 0 0.241211 0.959961
+3 3 29 0 0.244507 0.972656
+3 3 30 0 0.247803 0.986328
+3 3 31 0 0.251221 1
+3 4 0 0.0312805 0.037384 0.0162659
+3 4 1 0.0306702 0.0371399 0.0200043
+3 4 2 0.0298309 0.0370178 0.0247498
+3 4 3 0.0287781 0.0375366 0.031311
+3 4 4 0.0268707 0.0392151 0.0410767
+3 4 5 0.0192871 0.0413513 0.0546265
+3 4 6 0 0.0427551 0.0708618
+3 4 7 0 0.0438538 0.0901489
+3 4 8 0 0.0458984 0.114624
+3 4 9 0 0.0499573 0.14624
+3 4 10 0 0.0571899 0.187622
+3 4 11 0 0.0680542 0.240845
+3 4 12 0 0.0818481 0.303467
+3 4 13 0 0.0982056 0.374268
+3 4 14 0 0.11676 0.452637
+3 4 15 0 0.136963 0.536133
+3 4 16 0 0.158081 0.622559
+3 4 17 0 0.178711 0.706055
+3 4 18 0 0.197632 0.782715
+3 4 19 0 0.214355 0.850098
+3 4 20 0 0.223633 0.887695
+3 4 21 0 0.225342 0.89502
+3 4 22 0 0.227173 0.902832
+3 4 23 0 0.229126 0.910645
+3 4 24 0 0.231079 0.918457
+3 4 25 0 0.233276 0.927246
+3 4 26 0 0.235596 0.937012
+3 4 27 0 0.238281 0.947754
+3 4 28 0 0.241333 0.959961
+3 4 29 0 0.244507 0.972656
+3 4 30 0 0.247925 0.986328
+3 4 31 0 0.251465 1
+3 5 0 0.0242157 0.0506287 0.0151596
+3 5 1 0.0234222 0.0504761 0.0200195
+3 5 2 0.0219879 0.050354 0.02565
+3 5 3 0.0190735 0.0503845 0.0326538
+3 5 4 0.0094986 0.0508728 0.0419617
+3 5 5 0 0.052002 0.0546265
+3 5 6 0 0.0529785 0.0706177
+3 5 7 0 0.0535889 0.0900269
+3 5 8 0 0.0547791 0.114563
+3 5 9 0 0.0577393 0.146118
+3 5 10 0 0.0637817 0.1875
+3 5 11 0 0.0734863 0.240723
+3 5 12 0 0.0861206 0.303467
+3 5 13 0 0.10144 0.374268
+3 5 14 0 0.119202 0.452637
+3 5 15 0 0.138794 0.536133
+3 5 16 0 0.159546 0.622559
+3 5 17 0 0.179688 0.706055
+3 5 18 0 0.198486 0.782715
+3 5 19 0 0.215088 0.850098
+3 5 20 0 0.224121 0.887695
+3 5 21 0 0.225708 0.89502
+3 5 22 0 0.227539 0.902832
+3 5 23 0 0.22937 0.910645
+3 5 24 0 0.231323 0.918457
+3 5 25 0 0.233398 0.927246
+3 5 26 0 0.23584 0.937012
+3 5 27 0 0.238403 0.947754
+3 5 28 0 0.241455 0.959961
+3 5 29 0 0.244629 0.972656
+3 5 30 0 0.248047 0.986328
+3 5 31 0 0.251465 1
+3 6 0 0 0.0658569 0.00985718
+3 6 1 0 0.0658569 0.0168152
+3 6 2 0 0.0658569 0.0241089
+3 6 3 0 0.0658569 0.032135
+3 6 4 0 0.065979 0.0419006
+3 6 5 0 0.0662231 0.0543823
+3 6 6 0 0.0665894 0.0700684
+3 6 7 0 0.0667725 0.0897217
+3 6 8 0 0.0672607 0.11438
+3 6 9 0 0.0691528 0.145996
+3 6 10 0 0.0739746 0.187378
+3 6 11 0 0.0823364 0.240601
+3 6 12 0 0.0933838 0.303223
+3 6 13 0 0.107239 0.374268
+3 6 14 0 0.123657 0.452637
+3 6 15 0 0.142212 0.536133
+3 6 16 0 0.162109 0.622559
+3 6 17 0 0.181763 0.706055
+3 6 18 0 0.200073 0.782715
+3 6 19 0 0.216309 0.850098
+3 6 20 0 0.22522 0.887695
+3 6 21 0 0.226562 0.89502
+3 6 22 0 0.228149 0.902832
+3 6 23 0 0.22998 0.910645
+3 6 24 0 0.231812 0.918457
+3 6 25 0 0.233887 0.927246
+3 6 26 0 0.236084 0.937012
+3 6 27 0 0.23877 0.947754
+3 6 28 0 0.241699 0.959961
+3 6 29 0 0.244873 0.972656
+3 6 30 0 0.248169 0.986328
+3 6 31 0 0.251709 1
+3 7 0 0 0.0838013 0.00856781
+3 7 1 0 0.0838623 0.0085907
+3 7 2 0 0.0838623 0.0180511
+3 7 3 0 0.0839233 0.0287018
+3 7 4 0 0.0840454 0.0397034
+3 7 5 0 0.0841675 0.0528259
+3 7 6 0 0.0843506 0.0688477
+3 7 7 0 0.0844116 0.0889282
+3 7 8 0 0.0844116 0.114014
+3 7 9 0 0.0853882 0.145752
+3 7 10 0 0.0891113 0.187012
+3 7 11 0 0.0961304 0.240356
+3 7 12 0 0.105408 0.303223
+3 7 13 0 0.117188 0.374268
+3 7 14 0 0.131714 0.452637
+3 7 15 0 0.148438 0.536133
+3 7 16 0 0.166992 0.622559
+3 7 17 0 0.185547 0.706055
+3 7 18 0 0.203003 0.782715
+3 7 19 0 0.21875 0.850098
+3 7 20 0 0.227173 0.887695
+3 7 21 0 0.228149 0.89502
+3 7 22 0 0.229492 0.902832
+3 7 23 0 0.230957 0.910645
+3 7 24 0 0.232666 0.918945
+3 7 25 0 0.234619 0.927734
+3 7 26 0 0.236816 0.937012
+3 7 27 0 0.239258 0.947754
+3 7 28 0 0.242188 0.959961
+3 7 29 0 0.245239 0.973145
+3 7 30 0 0.248535 0.986328
+3 7 31 0 0.251953 1
+3 8 0 0 0.106445 0.00437546
+3 8 1 0 0.106445 0.00444794
+3 8 2 0 0.106506 0.00457001
+3 8 3 0 0.106567 0.0190735
+3 8 4 0 0.106628 0.0345764
+3 8 5 0 0.106812 0.0493774
+3 8 6 0 0.106995 0.0663452
+3 8 7 0 0.107178 0.0870972
+3 8 8 0 0.107178 0.112976
+3 8 9 0 0.107605 0.145264
+3 8 10 0 0.110474 0.186646
+3 8 11 0 0.116455 0.23999
+3 8 12 0 0.124084 0.302979
+3 8 13 0 0.133545 0.374023
+3 8 14 0 0.145508 0.452393
+3 8 15 0 0.15979 0.536133
+3 8 16 0 0.176025 0.622559
+3 8 17 0 0.192627 0.706055
+3 8 18 0 0.20874 0.782715
+3 8 19 0 0.223267 0.850586
+3 8 20 0 0.230835 0.888184
+3 8 21 0 0.231079 0.895508
+3 8 22 0 0.231934 0.90332
+3 8 23 0 0.233032 0.911133
+3 8 24 0 0.234375 0.918945
+3 8 25 0 0.236084 0.927734
+3 8 26 0 0.238037 0.9375
+3 8 27 0 0.240356 0.948242
+3 8 28 0 0.243164 0.959961
+3 8 29 0 0.246094 0.973145
+3 8 30 0 0.249268 0.986328
+3 8 31 0 0.252441 1
+3 9 0 0 0.135254 0
+3 9 1 0 0.135254 0
+3 9 2 0 0.135254 0
+3 9 3 0 0.135254 0
+3 9 4 0 0.135376 0.0205841
+3 9 5 0 0.135376 0.0427246
+3 9 6 0 0.13562 0.0619202
+3 9 7 0 0.135864 0.0839233
+3 9 8 0 0.13623 0.110901
+3 9 9 0 0.136841 0.144287
+3 9 10 0 0.13916 0.186035
+3 9 11 0 0.144531 0.23938
+3 9 12 0 0.150757 0.30249
+3 9 13 0 0.158203 0.374023
+3 9 14 0 0.167236 0.452393
+3 9 15 0 0.178345 0.536133
+3 9 16 0 0.191406 0.623047
+3 9 17 0 0.205322 0.706543
+3 9 18 0 0.218994 0.783203
+3 9 19 0 0.231689 0.850586
+3 9 20 0 0.237793 0.888672
+3 9 21 0 0.236694 0.895996
+3 9 22 0 0.23645 0.90332
+3 9 23 0 0.236938 0.911133
+3 9 24 0 0.237671 0.918945
+3 9 25 0 0.238892 0.927734
+3 9 26 0 0.240479 0.9375
+3 9 27 0 0.242554 0.948242
+3 9 28 0 0.244995 0.960449
+3 9 29 0 0.247681 0.973145
+3 9 30 0 0.250488 0.986328
+3 9 31 0 0.253662 1
+3 10 0 0 0.172241 0
+3 10 1 0 0.172241 0
+3 10 2 0 0.172363 0
+3 10 3 0 0.172363 0
+3 10 4 0 0.172363 0
+3 10 5 0 0.172485 0.0253448
+3 10 6 0 0.172485 0.0544739
+3 10 7 0 0.172485 0.0795288
+3 10 8 0 0.172852 0.108215
+3 10 9 0 0.173584 0.142944
+3 10 10 0 0.175781 0.185425
+3 10 11 0 0.18042 0.238525
+3 10 12 0 0.185913 0.301758
+3 10 13 0 0.19165 0.373535
+3 10 14 0 0.19812 0.452393
+3 10 15 0 0.205811 0.536133
+3 10 16 0 0.215332 0.623047
+3 10 17 0 0.225464 0.706543
+3 10 18 0 0.23584 0.783203
+3 10 19 0 0.24585 0.851074
+3 10 20 0 0.249634 0.889648
+3 10 21 0 0.246216 0.896484
+3 10 22 0 0.244385 0.904297
+3 10 23 0 0.243652 0.912109
+3 10 24 0 0.24353 0.919922
+3 10 25 0 0.244019 0.928223
+3 10 26 0 0.244873 0.937988
+3 10 27 0 0.246216 0.94873
+3 10 28 0 0.248169 0.960449
+3 10 29 0 0.250488 0.973633
+3 10 30 0 0.25293 0.986816
+3 10 31 0 0.255859 1
+3 11 0 0 0.220459 0
+3 11 1 0 0.220459 0
+3 11 2 0 0.220459 0
+3 11 3 0 0.220459 0
+3 11 4 0 0.220581 0
+3 11 5 0 0.220581 0
+3 11 6 0 0.220703 0.0351562
+3 11 7 0 0.220581 0.0720825
+3 11 8 0 0.220459 0.104797
+3 11 9 0 0.220703 0.141724
+3 11 10 0 0.222168 0.185303
+3 11 11 0 0.225464 0.237915
+3 11 12 0 0.229858 0.300781
+3 11 13 0 0.234375 0.372803
+3 11 14 0 0.23877 0.451904
+3 11 15 0 0.24353 0.536133
+3 11 16 0 0.249146 0.623047
+3 11 17 0 0.255371 0.707031
+3 11 18 0 0.261719 0.783691
+3 11 19 0 0.268066 0.851562
+3 11 20 0 0.268555 0.891113
+3 11 21 0 0.261963 0.897949
+3 11 22 0 0.257568 0.905273
+3 11 23 0 0.254883 0.913086
+3 11 24 0 0.253418 0.92041
+3 11 25 0 0.252441 0.929199
+3 11 26 0 0.252197 0.938477
+3 11 27 0 0.252686 0.949219
+3 11 28 0 0.253662 0.960938
+3 11 29 0 0.255371 0.974121
+3 11 30 0 0.25708 0.987305
+3 11 31 0 0.259277 1
+3 12 0 0 0.278809 0
+3 12 1 0 0.278809 0
+3 12 2 0 0.278809 0
+3 12 3 0 0.278809 0
+3 12 4 0 0.278809 0
+3 12 5 0 0.279053 0
+3 12 6 0 0.279053 0
+3 12 7 0 0.279053 0.0516968
+3 12 8 0 0.279053 0.0966797
+3 12 9 0 0.279053 0.138306
+3 12 10 0 0.279541 0.184082
+3 12 11 0 0.28125 0.236938
+3 12 12 0 0.283936 0.299561
+3 12 13 0 0.287354 0.371582
+3 12 14 0 0.290039 0.451172
+3 12 15 0 0.292236 0.535645
+3 12 16 0 0.294434 0.623535
+3 12 17 0 0.296387 0.70752
+3 12 18 0 0.29834 0.784668
+3 12 19 0 0.300293 0.852051
+3 12 20 0 0.297119 0.893555
+3 12 21 0 0.285889 0.900391
+3 12 22 0 0.278076 0.907227
+3 12 23 0 0.272461 0.914551
+3 12 24 0 0.268799 0.922363
+3 12 25 0 0.266113 0.930664
+3 12 26 0 0.26416 0.939941
+3 12 27 0 0.262939 0.950195
+3 12 28 0 0.262695 0.961914
+3 12 29 0 0.263184 0.974609
+3 12 30 0 0.263916 0.987793
+3 12 31 0 0.265381 1
+3 13 0 0 0.345215 0
+3 13 1 0 0.345215 0
+3 13 2 0 0.345215 0
+3 13 3 0 0.345215 0
+3 13 4 0 0.345215 0
+3 13 5 0 0.345459 0
+3 13 6 0 0.345459 0
+3 13 7 0 0.345459 0
+3 13 8 0 0.345703 0.0760498
+3 13 9 0 0.345703 0.128784
+3 13 10 0 0.346191 0.178955
+3 13 11 0 0.34668 0.234131
+3 13 12 0 0.348145 0.297363
+3 13 13 0 0.350098 0.369385
+3 13 14 0 0.351562 0.449463
+3 13 15 0 0.351807 0.535156
+3 13 16 0 0.35083 0.623535
+3 13 17 0 0.348877 0.708008
+3 13 18 0 0.346436 0.785645
+3 13 19 0 0.343994 0.853516
+3 13 20 0 0.33667 0.897461
+3 13 21 0 0.319824 0.903809
+3 13 22 0 0.307373 0.910645
+3 13 23 0 0.298584 0.91748
+3 13 24 0 0.291748 0.924805
+3 13 25 0 0.286377 0.933105
+3 13 26 0 0.282227 0.941895
+3 13 27 0 0.279053 0.952148
+3 13 28 0 0.276855 0.963867
+3 13 29 0 0.275391 0.976074
+3 13 30 0 0.274902 0.989258
+3 13 31 0 0.274658 1
+3 14 0 0 0.419189 0
+3 14 1 0 0.419189 0
+3 14 2 0 0.419189 0
+3 14 3 0 0.419189 0
+3 14 4 0 0.419189 0
+3 14 5 0 0.419189 0
+3 14 6 0 0.419434 0
+3 14 7 0 0.419434 0
+3 14 8 0 0.419678 0
+3 14 9 0 0.419922 0.108032
+3 14 10 0 0.42041 0.167725
+3 14 11 0 0.420898 0.226929
+3 14 12 0 0.421631 0.292236
+3 14 13 0 0.422607 0.365234
+3 14 14 0 0.422852 0.446045
+3 14 15 0 0.421631 0.532715
+3 14 16 0 0.418701 0.622559
+3 14 17 0 0.41333 0.708008
+3 14 18 0 0.406494 0.786133
+3 14 19 0 0.399658 0.854492
+3 14 20 0 0.388672 0.90332
+3 14 21 0 0.365479 0.90918
+3 14 22 0 0.347656 0.915527
+3 14 23 0 0.334229 0.922363
+3 14 24 0 0.323975 0.929199
+3 14 25 0 0.31543 0.936523
+3 14 26 0 0.308105 0.945312
+3 14 27 0 0.302002 0.955078
+3 14 28 0 0.297119 0.966309
+3 14 29 0 0.293457 0.978516
+3 14 30 0 0.290771 0.991211
+3 14 31 0 0.288818 1
+3 15 0 0 0.498779 0
+3 15 1 0 0.498779 0
+3 15 2 0 0.498779 0
+3 15 3 0 0.498779 0
+3 15 4 0 0.498779 0
+3 15 5 0 0.498779 0
+3 15 6 0 0.498779 0
+3 15 7 0 0.498779 0
+3 15 8 0 0.499023 0
+3 15 9 0 0.499268 0.0472107
+3 15 10 0 0.499756 0.146484
+3 15 11 0 0.500488 0.213501
+3 15 12 0 0.501465 0.282471
+3 15 13 0 0.502441 0.357422
+3 15 14 0 0.502441 0.439941
+3 15 15 0 0.500488 0.52832
+3 15 16 0 0.496094 0.619629
+3 15 17 0 0.488037 0.707031
+3 15 18 0 0.477783 0.786621
+3 15 19 0 0.466553 0.855957
+3 15 20 0 0.453125 0.910156
+3 15 21 0 0.423096 0.916992
+3 15 22 0 0.39917 0.92334
+3 15 23 0 0.380859 0.929688
+3 15 24 0 0.366211 0.936035
+3 15 25 0 0.35376 0.942871
+3 15 26 0 0.342529 0.951172
+3 15 27 0 0.333008 0.959961
+3 15 28 0 0.325195 0.970703
+3 15 29 0 0.318604 0.981934
+3 15 30 0 0.312988 0.994141
+3 15 31 0 0.308594 1
+3 16 0 0 0.582031 0
+3 16 1 0 0.582031 0
+3 16 2 0 0.582031 0
+3 16 3 0 0.582031 0
+3 16 4 0 0.582031 0
+3 16 5 0 0.582031 0
+3 16 6 0 0.582031 0
+3 16 7 0 0.58252 0
+3 16 8 0 0.58252 0
+3 16 9 0 0.58252 0
+3 16 10 0 0.583008 0.103516
+3 16 11 0 0.583984 0.191284
+3 16 12 0 0.585449 0.266602
+3 16 13 0 0.586426 0.344727
+3 16 14 0 0.586914 0.429199
+3 16 15 0 0.585938 0.519531
+3 16 16 0 0.581055 0.612793
+3 16 17 0 0.571777 0.703125
+3 16 18 0 0.558594 0.785156
+3 16 19 0 0.543945 0.855957
+3 16 20 0 0.527832 0.914551
+3 16 21 0 0.49292 0.927246
+3 16 22 0 0.462891 0.93457
+3 16 23 0 0.438965 0.940918
+3 16 24 0 0.419678 0.946289
+3 16 25 0 0.402344 0.952637
+3 16 26 0 0.386963 0.959961
+3 16 27 0 0.373291 0.967773
+3 16 28 0 0.361572 0.977539
+3 16 29 0 0.351562 0.987793
+3 16 30 0 0.342773 0.999512
+3 16 31 0 0.335205 1
+3 17 0 0 0.664551 0
+3 17 1 0 0.664551 0
+3 17 2 0 0.664551 0
+3 17 3 0 0.664551 0
+3 17 4 0 0.664551 0
+3 17 5 0 0.664551 0
+3 17 6 0 0.664551 0
+3 17 7 0 0.664551 0
+3 17 8 0 0.664551 0
+3 17 9 0 0.664551 0
+3 17 10 0 0.665039 0
+3 17 11 0 0.666016 0.155151
+3 17 12 0 0.667969 0.24353
+3 17 13 0 0.669434 0.326172
+3 17 14 0 0.671387 0.413086
+3 17 15 0 0.670898 0.505371
+3 17 16 0 0.666992 0.601074
+3 17 17 0 0.658203 0.694336
+3 17 18 0 0.644531 0.779785
+3 17 19 0 0.627441 0.853516
+3 17 20 0 0.60791 0.914062
+3 17 21 0 0.571777 0.937988
+3 17 22 0 0.536621 0.94873
+3 17 23 0 0.507324 0.955566
+3 17 24 0 0.483154 0.960938
+3 17 25 0 0.460938 0.966797
+3 17 26 0 0.440674 0.972656
+3 17 27 0 0.422119 0.979492
+3 17 28 0 0.406006 0.987305
+3 17 29 0 0.391846 0.996582
+3 17 30 0 0.37915 1
+3 17 31 0 0.36792 1
+3 18 0 0 0.741211 0
+3 18 1 0 0.741211 0
+3 18 2 0 0.741211 0
+3 18 3 0 0.741211 0
+3 18 4 0 0.741211 0
+3 18 5 0 0.741211 0
+3 18 6 0 0.741211 0
+3 18 7 0 0.741211 0
+3 18 8 0 0.741211 0
+3 18 9 0 0.741699 0
+3 18 10 0 0.741699 0
+3 18 11 0 0.742188 0.0793457
+3 18 12 0 0.744141 0.211304
+3 18 13 0 0.746582 0.301758
+3 18 14 0 0.749023 0.391602
+3 18 15 0 0.750488 0.485596
+3 18 16 0 0.748535 0.583496
+3 18 17 0 0.741699 0.680176
+3 18 18 0 0.729004 0.769043
+3 18 19 0 0.711426 0.84668
+3 18 20 0 0.69043 0.910645
+3 18 21 0 0.655762 0.945801
+3 18 22 0 0.618164 0.963867
+3 18 23 0 0.584473 0.973633
+3 18 24 0 0.555176 0.979492
+3 18 25 0 0.527344 0.984863
+3 18 26 0 0.501953 0.989746
+3 18 27 0 0.478516 0.995117
+3 18 28 0 0.45752 1
+3 18 29 0 0.438477 1
+3 18 30 0 0.421631 1
+3 18 31 0 0.40625 1
+3 19 0 0 0.810059 0
+3 19 1 0 0.810059 0
+3 19 2 0 0.810059 0
+3 19 3 0 0.810059 0
+3 19 4 0 0.810059 0
+3 19 5 0 0.810059 0
+3 19 6 0 0.810059 0
+3 19 7 0 0.810059 0
+3 19 8 0 0.810059 0
+3 19 9 0 0.810059 0
+3 19 10 0 0.810547 0
+3 19 11 0 0.810547 0
+3 19 12 0 0.812012 0.166138
+3 19 13 0 0.814941 0.272217
+3 19 14 0 0.818359 0.366455
+3 19 15 0 0.820801 0.462158
+3 19 16 0 0.821289 0.561523
+3 19 17 0 0.817383 0.660156
+3 19 18 0 0.807129 0.75293
+3 19 19 0 0.791016 0.834473
+3 19 20 0 0.77002 0.901855
+3 19 21 0 0.73877 0.94873
+3 19 22 0 0.70166 0.976074
+3 19 23 0 0.665527 0.991211
+3 19 24 0 0.632324 1
+3 19 25 0 0.599609 1
+3 19 26 0 0.568848 1
+3 19 27 0 0.540039 1
+3 19 28 0 0.513672 1
+3 19 29 0 0.48999 1
+3 19 30 0 0.468262 1
+3 19 31 0 0.44873 1
+3 20 0 0 0.869629 0
+3 20 1 0 0.869629 0
+3 20 2 0 0.869629 0
+3 20 3 0 0.869629 0
+3 20 4 0 0.869629 0
+3 20 5 0 0.869629 0
+3 20 6 0 0.869629 0
+3 20 7 0 0.869629 0
+3 20 8 0 0.869629 0
+3 20 9 0 0.869629 0
+3 20 10 0 0.869629 0
+3 20 11 0 0.870117 0
+3 20 12 0 0.870605 0.0809326
+3 20 13 0 0.873535 0.237427
+3 20 14 0 0.877441 0.338623
+3 20 15 0 0.881348 0.436279
+3 20 16 0 0.883789 0.536621
+3 20 17 0 0.882812 0.636719
+3 20 18 0 0.875488 0.731934
+3 20 19 0 0.861328 0.816895
+3 20 20 0 0.841797 0.888184
+3 20 21 0 0.81543 0.944824
+3 20 22 0 0.781738 0.982422
+3 20 23 0 0.745117 1
+3 20 24 0 0.709961 1
+3 20 25 0 0.673828 1
+3 20 26 0 0.638672 1
+3 20 27 0 0.60498 1
+3 20 28 0 0.573242 1
+3 20 29 0 0.544434 1
+3 20 30 0 0.517578 1
+3 20 31 0 0.493652 1
+3 21 0 0 0.92041 0
+3 21 1 0 0.92041 0
+3 21 2 0 0.92041 0
+3 21 3 0 0.92041 0
+3 21 4 0 0.92041 0
+3 21 5 0 0.92041 0
+3 21 6 0 0.92041 0
+3 21 7 0 0.92041 0
+3 21 8 0 0.92041 0
+3 21 9 0 0.92041 0
+3 21 10 0 0.92041 0
+3 21 11 0 0.92041 0
+3 21 12 0 0.920898 0
+3 21 13 0 0.92334 0.193848
+3 21 14 0 0.927246 0.307617
+3 21 15 0 0.932129 0.408203
+3 21 16 0 0.936035 0.509277
+3 21 17 0 0.9375 0.609863
+3 21 18 0 0.933594 0.706543
+3 21 19 0 0.922852 0.794434
+3 21 20 0 0.90625 0.869141
+3 21 21 0 0.883301 0.932129
+3 21 22 0 0.854492 0.979492
+3 21 23 0 0.820801 1
+3 21 24 0 0.785645 1
+3 21 25 0 0.748047 1
+3 21 26 0 0.709473 1
+3 21 27 0 0.671387 1
+3 21 28 0 0.635254 1
+3 21 29 0 0.601074 1
+3 21 30 0 0.569824 1
+3 21 31 0 0.541016 1
+3 22 0 0 0.962402 0
+3 22 1 0 0.962402 0
+3 22 2 0 0.962402 0
+3 22 3 0 0.962402 0
+3 22 4 0 0.962402 0
+3 22 5 0 0.962402 0
+3 22 6 0 0.962402 0
+3 22 7 0 0.962402 0
+3 22 8 0 0.962402 0
+3 22 9 0 0.962402 0
+3 22 10 0 0.962402 0
+3 22 11 0 0.962402 0
+3 22 12 0 0.962891 0
+3 22 13 0 0.963867 0.131348
+3 22 14 0 0.968262 0.273682
+3 22 15 0 0.973633 0.378662
+3 22 16 0 0.979004 0.480469
+3 22 17 0 0.982422 0.581055
+3 22 18 0 0.981445 0.678223
+3 22 19 0 0.974609 0.768066
+3 22 20 0 0.960938 0.845703
+3 22 21 0 0.941406 0.912598
+3 22 22 0 0.916504 0.967285
+3 22 23 0 0.887695 1
+3 22 24 0 0.85498 1
+3 22 25 0 0.817871 1
+3 22 26 0 0.77832 1
+3 22 27 0 0.737305 1
+3 22 28 0 0.697266 1
+3 22 29 0 0.65918 1
+3 22 30 0 0.623047 1
+3 22 31 0 0.589844 1
+3 23 0 0 0.995605 0
+3 23 1 0 0.995605 0
+3 23 2 0 0.995605 0
+3 23 3 0 0.995605 0
+3 23 4 0 0.995605 0
+3 23 5 0 0.995605 0
+3 23 6 0 0.995605 0
+3 23 7 0 0.995605 0
+3 23 8 0 0.995605 0
+3 23 9 0 0.995605 0
+3 23 10 0 0.996094 0
+3 23 11 0 0.996094 0
+3 23 12 0 0.996094 0
+3 23 13 0 0.996582 0
+3 23 14 0 1 0.237061
+3 23 15 0 1 0.349121
+3 23 16 0 1 0.451904
+3 23 17 0 1 0.552246
+3 23 18 0 1 0.649902
+3 23 19 0 1 0.740234
+3 23 20 0 1 0.820312
+3 23 21 0 0.98877 0.890137
+3 23 22 0 0.967285 0.948242
+3 23 23 0 0.941895 0.993652
+3 23 24 0 0.913574 1
+3 23 25 0 0.879395 1
+3 23 26 0 0.840332 1
+3 23 27 0 0.79834 1
+3 23 28 0 0.756348 1
+3 23 29 0 0.714844 1
+3 23 30 0 0.674805 1
+3 23 31 0 0.637695 1
+3 24 0 0 1 0
+3 24 1 0 1 0
+3 24 2 0 1 0
+3 24 3 0 1 0
+3 24 4 0 1 0
+3 24 5 0 1 0
+3 24 6 0 1 0
+3 24 7 0 1 0
+3 24 8 0 1 0
+3 24 9 0 1 0
+3 24 10 0 1 0
+3 24 11 0 1 0
+3 24 12 0 1 0
+3 24 13 0 1 0
+3 24 14 0 1 0.195801
+3 24 15 0 1 0.319336
+3 24 16 0 1 0.424072
+3 24 17 0 1 0.524414
+3 24 18 0 1 0.621094
+3 24 19 0 1 0.711426
+3 24 20 0 1 0.792969
+3 24 21 0 1 0.864746
+3 24 22 0 1 0.92627
+3 24 23 0 0.986816 0.975586
+3 24 24 0 0.961914 1
+3 24 25 0 0.931641 1
+3 24 26 0 0.89502 1
+3 24 27 0 0.854004 1
+3 24 28 0 0.810547 1
+3 24 29 0 0.76709 1
+3 24 30 0 0.724609 1
+3 24 31 0 0.683594 1
+3 25 0 0 1 0
+3 25 1 0 1 0
+3 25 2 0 1 0
+3 25 3 0 1 0
+3 25 4 0 1 0
+3 25 5 0 1 0
+3 25 6 0 1 0
+3 25 7 0 1 0
+3 25 8 0 1 0
+3 25 9 0 1 0
+3 25 10 0 1 0
+3 25 11 0 1 0
+3 25 12 0 1 0
+3 25 13 0 1 0
+3 25 14 0 1 0.13562
+3 25 15 0 1 0.286133
+3 25 16 0 1 0.394043
+3 25 17 0 1 0.493896
+3 25 18 0 1 0.589844
+3 25 19 0 1 0.679688
+3 25 20 0 1 0.761719
+3 25 21 0 1 0.835449
+3 25 22 0 1 0.899414
+3 25 23 0 1 0.952148
+3 25 24 0 1 0.995605
+3 25 25 0 0.979492 1
+3 25 26 0 0.946777 1
+3 25 27 0 0.907715 1
+3 25 28 0 0.865234 1
+3 25 29 0 0.820312 1
+3 25 30 0 0.775879 1
+3 25 31 0 0.732422 1
+3 26 0 0 1 0
+3 26 1 0 1 0
+3 26 2 0 1 0
+3 26 3 0 1 0
+3 26 4 0 1 0
+3 26 5 0 1 0
+3 26 6 0 1 0
+3 26 7 0 1 0
+3 26 8 0 1 0
+3 26 9 0 1 0
+3 26 10 0 1 0
+3 26 11 0 1 0
+3 26 12 0 1 0
+3 26 13 0 1 0
+3 26 14 0 1 0
+3 26 15 0 1 0.247559
+3 26 16 0 1 0.361328
+3 26 17 0 1 0.46167
+3 26 18 0 1 0.556641
+3 26 19 0 1 0.645508
+3 26 20 0 1 0.727539
+3 26 21 0 1 0.802246
+3 26 22 0 1 0.868652
+3 26 23 0 1 0.923828
+3 26 24 0 1 0.970215
+3 26 25 0 1 1
+3 26 26 0 0.994629 1
+3 26 27 0 0.958984 1
+3 26 28 0 0.918457 1
+3 26 29 0 0.874023 1
+3 26 30 0 0.828125 1
+3 26 31 0 0.782227 1
+3 27 0 0 1 0
+3 27 1 0 1 0
+3 27 2 0 1 0
+3 27 3 0 1 0
+3 27 4 0 1 0
+3 27 5 0 1 0
+3 27 6 0 1 0
+3 27 7 0 1 0
+3 27 8 0 1 0
+3 27 9 0 1 0
+3 27 10 0 1 0
+3 27 11 0 1 0
+3 27 12 0 1 0
+3 27 13 0 1 0
+3 27 14 0 1 0
+3 27 15 0 1 0.200073
+3 27 16 0 1 0.326172
+3 27 17 0 1 0.427734
+3 27 18 0 1 0.521484
+3 27 19 0 1 0.609375
+3 27 20 0 1 0.69043
+3 27 21 0 1 0.765625
+3 27 22 0 1 0.833008
+3 27 23 0 1 0.890625
+3 27 24 0 1 0.939941
+3 27 25 0 1 0.985352
+3 27 26 0 1 1
+3 27 27 0 1 1
+3 27 28 0 0.968262 1
+3 27 29 0 0.925293 1
+3 27 30 0 0.879883 1
+3 27 31 0 0.833008 1
+3 28 0 0 1 0
+3 28 1 0 1 0
+3 28 2 0 1 0
+3 28 3 0 1 0
+3 28 4 0 1 0
+3 28 5 0 1 0
+3 28 6 0 1 0
+3 28 7 0 1 0
+3 28 8 0 1 0
+3 28 9 0 1 0
+3 28 10 0 1 0
+3 28 11 0 1 0
+3 28 12 0 1 0
+3 28 13 0 1 0
+3 28 14 0 1 0
+3 28 15 0 1 0.129761
+3 28 16 0 1 0.287109
+3 28 17 0 1 0.391602
+3 28 18 0 1 0.484863
+3 28 19 0 1 0.571289
+3 28 20 0 1 0.651367
+3 28 21 0 1 0.726074
+3 28 22 0 1 0.793945
+3 28 23 0 1 0.853027
+3 28 24 0 1 0.904297
+3 28 25 0 1 0.952637
+3 28 26 0 1 0.997559
+3 28 27 0 1 1
+3 28 28 0 1 1
+3 28 29 0 0.974121 1
+3 28 30 0 0.930664 1
+3 28 31 0 0.884277 1
+3 29 0 0 1 0
+3 29 1 0 1 0
+3 29 2 0 1 0
+3 29 3 0 1 0
+3 29 4 0 1 0
+3 29 5 0 1 0
+3 29 6 0 1 0
+3 29 7 0 1 0
+3 29 8 0 1 0
+3 29 9 0 1 0
+3 29 10 0 1 0
+3 29 11 0 1 0
+3 29 12 0 1 0
+3 29 13 0 1 0
+3 29 14 0 1 0
+3 29 15 0 1 0
+3 29 16 0 1 0.242188
+3 29 17 0 1 0.353271
+3 29 18 0 1 0.446533
+3 29 19 0 1 0.531738
+3 29 20 0 1 0.609863
+3 29 21 0 1 0.683594
+3 29 22 0 1 0.751465
+3 29 23 0 1 0.811035
+3 29 24 0 1 0.86377
+3 29 25 0 1 0.914551
+3 29 26 0 1 0.962402
+3 29 27 0 1 1
+3 29 28 0 1 1
+3 29 29 0 1 1
+3 29 30 0 0.979004 1
+3 29 31 0 0.93457 1
+3 30 0 0 1 0
+3 30 1 0 1 0
+3 30 2 0 1 0
+3 30 3 0 1 0
+3 30 4 0 1 0
+3 30 5 0 1 0
+3 30 6 0 1 0
+3 30 7 0 1 0
+3 30 8 0 1 0
+3 30 9 0 1 0
+3 30 10 0 1 0
+3 30 11 0 1 0
+3 30 12 0 1 0
+3 30 13 0 1 0
+3 30 14 0 1 0
+3 30 15 0 1 0
+3 30 16 0 1 0.186279
+3 30 17 0 1 0.312012
+3 30 18 0 1 0.406738
+3 30 19 0 1 0.490479
+3 30 20 0 1 0.566895
+3 30 21 0 1 0.63916
+3 30 22 0 1 0.705566
+3 30 23 0 1 0.765137
+3 30 24 0 1 0.818848
+3 30 25 0 1 0.870605
+3 30 26 0 1 0.921387
+3 30 27 0 1 0.96875
+3 30 28 0 1 1
+3 30 29 0 1 1
+3 30 30 0 1 1
+3 30 31 0 0.98291 1
+3 31 0 0 1 0
+3 31 1 0 1 0
+3 31 2 0 1 0
+3 31 3 0 1 0
+3 31 4 0 1 0
+3 31 5 0 1 0
+3 31 6 0 1 0
+3 31 7 0 1 0
+3 31 8 0 1 0
+3 31 9 0 1 0
+3 31 10 0 1 0
+3 31 11 0 1 0
+3 31 12 0 1 0
+3 31 13 0 1 0
+3 31 14 0 1 0
+3 31 15 0 1 0
+3 31 16 0 1 0.0895386
+3 31 17 0 1 0.266846
+3 31 18 0 1 0.365234
+3 31 19 0 1 0.448486
+3 31 20 0 1 0.523438
+3 31 21 0 1 0.593262
+3 31 22 0 1 0.658203
+3 31 23 0 1 0.716797
+3 31 24 0 1 0.77002
+3 31 25 0 1 0.823242
+3 31 26 0 1 0.875488
+3 31 27 0 1 0.92627
+3 31 28 0 1 0.973145
+3 31 29 0 1 1
+3 31 30 0 1 1
+3 31 31 0 1 1
+4 0 0 0.0623474 0.0213318 0.0169067
+4 0 1 0.0617981 0.0208282 0.0240936
+4 0 2 0.0598755 0.0199738 0.0313416
+4 0 3 0.0519714 0.019516 0.0358276
+4 0 4 0.0466309 0.0209198 0.041626
+4 0 5 0.0458374 0.022995 0.0550842
+4 0 6 0.0398254 0.0252686 0.071106
+4 0 7 0.0112762 0.028244 0.090332
+4 0 8 0 0.0327759 0.114685
+4 0 9 0 0.0394897 0.14624
+4 0 10 0 0.0490723 0.187622
+4 0 11 0 0.0618896 0.240845
+4 0 12 0 0.0772095 0.303467
+4 0 13 0 0.0947876 0.374268
+4 0 14 0 0.114197 0.452637
+4 0 15 0 0.13501 0.536133
+4 0 16 0 0.156738 0.622559
+4 0 17 0 0.177612 0.706055
+4 0 18 0 0.196777 0.782715
+4 0 19 0 0.213745 0.850098
+4 0 20 0 0.223145 0.887695
+4 0 21 0 0.224976 0.89502
+4 0 22 0 0.226807 0.902832
+4 0 23 0 0.228882 0.910645
+4 0 24 0 0.230835 0.918457
+4 0 25 0 0.233032 0.927246
+4 0 26 0 0.235474 0.937012
+4 0 27 0 0.238159 0.947754
+4 0 28 0 0.241211 0.959961
+4 0 29 0 0.244385 0.972656
+4 0 30 0 0.247803 0.986328
+4 0 31 0 0.251221 1
+4 1 0 0.0601807 0.0256042 0.0163879
+4 1 1 0.0601196 0.0253754 0.0233917
+4 1 2 0.0588989 0.0246887 0.0307922
+4 1 3 0.0525818 0.0232239 0.0363464
+4 1 4 0.0462952 0.0234528 0.0415955
+4 1 5 0.0454407 0.0254517 0.0550537
+4 1 6 0.0393066 0.0275116 0.071106
+4 1 7 0.00539017 0.0301056 0.090332
+4 1 8 0 0.0342102 0.114685
+4 1 9 0 0.0405579 0.14624
+4 1 10 0 0.0498352 0.187622
+4 1 11 0 0.062439 0.240845
+4 1 12 0 0.0776367 0.303467
+4 1 13 0 0.0950928 0.374268
+4 1 14 0 0.114441 0.452637
+4 1 15 0 0.135254 0.536133
+4 1 16 0 0.15686 0.622559
+4 1 17 0 0.177734 0.706055
+4 1 18 0 0.196899 0.782715
+4 1 19 0 0.213745 0.850098
+4 1 20 0 0.223145 0.887695
+4 1 21 0 0.224976 0.89502
+4 1 22 0 0.226929 0.902832
+4 1 23 0 0.228882 0.910645
+4 1 24 0 0.230835 0.918457
+4 1 25 0 0.233032 0.927246
+4 1 26 0 0.235474 0.937012
+4 1 27 0 0.238159 0.947754
+4 1 28 0 0.241211 0.959961
+4 1 29 0 0.244385 0.972656
+4 1 30 0 0.247803 0.986328
+4 1 31 0 0.251221 1
+4 2 0 0.0558777 0.0297699 0.0162201
+4 2 1 0.0562439 0.0299225 0.0223389
+4 2 2 0.0568237 0.0301208 0.0298004
+4 2 3 0.0536499 0.0288391 0.0372009
+4 2 4 0.0457458 0.0271454 0.0415649
+4 2 5 0.0447083 0.0290833 0.0549927
+4 2 6 0.0383911 0.0308838 0.0710449
+4 2 7 0 0.03302 0.090332
+4 2 8 0 0.0365601 0.114685
+4 2 9 0 0.0423279 0.14624
+4 2 10 0 0.0511475 0.187622
+4 2 11 0 0.0634155 0.240845
+4 2 12 0 0.0783691 0.303467
+4 2 13 0 0.0955811 0.374268
+4 2 14 0 0.114807 0.452637
+4 2 15 0 0.135498 0.536133
+4 2 16 0 0.156982 0.622559
+4 2 17 0 0.177856 0.706055
+4 2 18 0 0.197021 0.782715
+4 2 19 0 0.213867 0.850098
+4 2 20 0 0.223267 0.887695
+4 2 21 0 0.224976 0.89502
+4 2 22 0 0.226929 0.902832
+4 2 23 0 0.228882 0.910645
+4 2 24 0 0.230835 0.918457
+4 2 25 0 0.233032 0.927246
+4 2 26 0 0.235474 0.937012
+4 2 27 0 0.238159 0.947754
+4 2 28 0 0.241211 0.959961
+4 2 29 0 0.244385 0.972656
+4 2 30 0 0.247803 0.986328
+4 2 31 0 0.251221 1
+4 3 0 0.0493164 0.0331116 0.0171967
+4 3 1 0.0492859 0.0332336 0.0214996
+4 3 2 0.0497742 0.033844 0.0273132
+4 3 3 0.0519409 0.035614 0.0365295
+4 3 4 0.0447693 0.0324402 0.041626
+4 3 5 0.0433655 0.0343018 0.0549011
+4 3 6 0.0365601 0.0358887 0.0709839
+4 3 7 0 0.0374756 0.090271
+4 3 8 0 0.0403137 0.114685
+4 3 9 0 0.0452881 0.14624
+4 3 10 0 0.0534363 0.187622
+4 3 11 0 0.0651245 0.240845
+4 3 12 0 0.0796509 0.303467
+4 3 13 0 0.0965576 0.374268
+4 3 14 0 0.11554 0.452637
+4 3 15 0 0.135986 0.536133
+4 3 16 0 0.157471 0.622559
+4 3 17 0 0.178101 0.706055
+4 3 18 0 0.197266 0.782715
+4 3 19 0 0.214111 0.850098
+4 3 20 0 0.223389 0.887695
+4 3 21 0 0.225098 0.89502
+4 3 22 0 0.227051 0.902832
+4 3 23 0 0.229004 0.910645
+4 3 24 0 0.230957 0.918457
+4 3 25 0 0.233154 0.927246
+4 3 26 0 0.235474 0.937012
+4 3 27 0 0.238159 0.947754
+4 3 28 0 0.241211 0.959961
+4 3 29 0 0.244507 0.972656
+4 3 30 0 0.247803 0.986328
+4 3 31 0 0.251221 1
+4 4 0 0.0473328 0.0409241 0.0181274
+4 4 1 0.0467529 0.0406494 0.0220642
+4 4 2 0.0458984 0.0403748 0.0269928
+4 4 3 0.0447388 0.0401611 0.0333862
+4 4 4 0.0429382 0.0401917 0.0418701
+4 4 5 0.0407104 0.0417786 0.0548096
+4 4 6 0.0327148 0.0430908 0.0709229
+4 4 7 0 0.0441589 0.09021
+4 4 8 0 0.0461731 0.114685
+4 4 9 0 0.0502014 0.14624
+4 4 10 0 0.057373 0.187622
+4 4 11 0 0.0682373 0.240723
+4 4 12 0 0.0819702 0.303467
+4 4 13 0 0.0982666 0.374268
+4 4 14 0 0.116821 0.452637
+4 4 15 0 0.136963 0.536133
+4 4 16 0 0.158203 0.622559
+4 4 17 0 0.178711 0.706055
+4 4 18 0 0.197632 0.782715
+4 4 19 0 0.214355 0.850098
+4 4 20 0 0.223633 0.887695
+4 4 21 0 0.225342 0.89502
+4 4 22 0 0.227173 0.902832
+4 4 23 0 0.229126 0.910645
+4 4 24 0 0.231079 0.918457
+4 4 25 0 0.233276 0.927246
+4 4 26 0 0.235596 0.937012
+4 4 27 0 0.238281 0.947754
+4 4 28 0 0.241333 0.959961
+4 4 29 0 0.244507 0.972656
+4 4 30 0 0.247925 0.986328
+4 4 31 0 0.251465 1
+4 5 0 0.043457 0.0524902 0.0162659
+4 5 1 0.0429382 0.0522461 0.0210266
+4 5 2 0.0420837 0.0519104 0.0265961
+4 5 3 0.0406494 0.0514526 0.0333862
+4 5 4 0.0385132 0.0513916 0.0423279
+4 5 5 0.0345154 0.0523071 0.0547791
+4 5 6 0.0217743 0.0531921 0.0706787
+4 5 7 0 0.0538025 0.0900879
+4 5 8 0 0.0550232 0.114624
+4 5 9 0 0.0579224 0.146118
+4 5 10 0 0.0639038 0.1875
+4 5 11 0 0.0736084 0.240723
+4 5 12 0 0.0861816 0.303467
+4 5 13 0 0.101501 0.374268
+4 5 14 0 0.119263 0.452637
+4 5 15 0 0.138794 0.536133
+4 5 16 0 0.159546 0.622559
+4 5 17 0 0.17981 0.706055
+4 5 18 0 0.198486 0.782715
+4 5 19 0 0.215088 0.850098
+4 5 20 0 0.224243 0.887695
+4 5 21 0 0.22583 0.89502
+4 5 22 0 0.227539 0.902832
+4 5 23 0 0.22937 0.910645
+4 5 24 0 0.231323 0.918457
+4 5 25 0 0.233398 0.927246
+4 5 26 0 0.23584 0.937012
+4 5 27 0 0.238403 0.947754
+4 5 28 0 0.241455 0.959961
+4 5 29 0 0.244629 0.972656
+4 5 30 0 0.248047 0.986328
+4 5 31 0 0.251465 1
+4 6 0 0.0300293 0.0664062 0.0130615
+4 6 1 0.0296631 0.0663452 0.0174408
+4 6 2 0.0286255 0.0662231 0.0245056
+4 6 3 0.0265808 0.0661011 0.0323792
+4 6 4 0.0220337 0.0661621 0.0420532
+4 6 5 0 0.0664062 0.0544739
+4 6 6 0 0.0667114 0.0701294
+4 6 7 0 0.0669556 0.0897827
+4 6 8 0 0.0674438 0.114441
+4 6 9 0 0.0693359 0.145996
+4 6 10 0 0.0740967 0.187378
+4 6 11 0 0.0823975 0.240601
+4 6 12 0 0.0934448 0.303223
+4 6 13 0 0.1073 0.374268
+4 6 14 0 0.123718 0.452637
+4 6 15 0 0.142212 0.536133
+4 6 16 0 0.162109 0.622559
+4 6 17 0 0.181763 0.706055
+4 6 18 0 0.200073 0.782715
+4 6 19 0 0.216309 0.850098
+4 6 20 0 0.22522 0.887695
+4 6 21 0 0.226562 0.89502
+4 6 22 0 0.228271 0.902832
+4 6 23 0 0.22998 0.910645
+4 6 24 0 0.231812 0.918457
+4 6 25 0 0.233887 0.927246
+4 6 26 0 0.236084 0.937012
+4 6 27 0 0.23877 0.947754
+4 6 28 0 0.241699 0.959961
+4 6 29 0 0.244873 0.972656
+4 6 30 0 0.248169 0.986328
+4 6 31 0 0.251709 1
+4 7 0 0 0.0839844 0.0121689
+4 7 1 0 0.0840454 0.0121841
+4 7 2 0 0.0840454 0.0185547
+4 7 3 0 0.0841064 0.0289459
+4 7 4 0 0.0841675 0.0398254
+4 7 5 0 0.0842896 0.0529175
+4 7 6 0 0.0844727 0.0689087
+4 7 7 0 0.0844727 0.0889893
+4 7 8 0 0.0845337 0.114075
+4 7 9 0 0.0855103 0.145752
+4 7 10 0 0.0891724 0.187012
+4 7 11 0 0.0961914 0.240356
+4 7 12 0 0.105469 0.303223
+4 7 13 0 0.117249 0.374268
+4 7 14 0 0.131714 0.452637
+4 7 15 0 0.14856 0.536133
+4 7 16 0 0.167114 0.622559
+4 7 17 0 0.185547 0.706055
+4 7 18 0 0.203125 0.782715
+4 7 19 0 0.21875 0.850098
+4 7 20 0 0.227173 0.888184
+4 7 21 0 0.228149 0.89502
+4 7 22 0 0.229492 0.902832
+4 7 23 0 0.230957 0.910645
+4 7 24 0 0.232666 0.918945
+4 7 25 0 0.234619 0.927734
+4 7 26 0 0.236816 0.937012
+4 7 27 0 0.239258 0.947754
+4 7 28 0 0.242188 0.959961
+4 7 29 0 0.245239 0.973145
+4 7 30 0 0.248535 0.986328
+4 7 31 0 0.251953 1
+4 8 0 0 0.106567 0.0102921
+4 8 1 0 0.106567 0.0103073
+4 8 2 0 0.106628 0.0103455
+4 8 3 0 0.106628 0.0195007
+4 8 4 0 0.10675 0.0347595
+4 8 5 0 0.106873 0.0494995
+4 8 6 0 0.107117 0.0664062
+4 8 7 0 0.107239 0.0871582
+4 8 8 0 0.107239 0.113037
+4 8 9 0 0.107727 0.145264
+4 8 10 0 0.110535 0.186646
+4 8 11 0 0.116516 0.23999
+4 8 12 0 0.124146 0.302979
+4 8 13 0 0.133667 0.374268
+4 8 14 0 0.145508 0.452637
+4 8 15 0 0.15979 0.536133
+4 8 16 0 0.176025 0.622559
+4 8 17 0 0.192749 0.706055
+4 8 18 0 0.20874 0.783203
+4 8 19 0 0.223267 0.850586
+4 8 20 0 0.230835 0.888184
+4 8 21 0 0.231079 0.895508
+4 8 22 0 0.231934 0.90332
+4 8 23 0 0.233032 0.911133
+4 8 24 0 0.234375 0.918945
+4 8 25 0 0.236084 0.927734
+4 8 26 0 0.238037 0.9375
+4 8 27 0 0.240479 0.948242
+4 8 28 0 0.243164 0.959961
+4 8 29 0 0.246094 0.973145
+4 8 30 0 0.249268 0.986328
+4 8 31 0 0.252441 1
+4 9 0 0 0.135254 0.00337601
+4 9 1 0 0.135254 0.00348091
+4 9 2 0 0.135254 0.00365448
+4 9 3 0 0.135376 0.00394058
+4 9 4 0 0.135376 0.0209503
+4 9 5 0 0.135498 0.0428162
+4 9 6 0 0.13562 0.0619812
+4 9 7 0 0.135864 0.0839844
+4 9 8 0 0.13623 0.110901
+4 9 9 0 0.136841 0.144287
+4 9 10 0 0.13916 0.186035
+4 9 11 0 0.144531 0.23938
+4 9 12 0 0.150879 0.30249
+4 9 13 0 0.158203 0.374023
+4 9 14 0 0.167236 0.452393
+4 9 15 0 0.178345 0.536133
+4 9 16 0 0.191406 0.623047
+4 9 17 0 0.205322 0.706543
+4 9 18 0 0.218994 0.783203
+4 9 19 0 0.231689 0.850586
+4 9 20 0 0.237793 0.888672
+4 9 21 0 0.236694 0.895996
+4 9 22 0 0.23645 0.90332
+4 9 23 0 0.236938 0.911133
+4 9 24 0 0.237793 0.918945
+4 9 25 0 0.239014 0.927734
+4 9 26 0 0.240601 0.9375
+4 9 27 0 0.242554 0.948242
+4 9 28 0 0.244995 0.960449
+4 9 29 0 0.247681 0.973145
+4 9 30 0 0.250488 0.986328
+4 9 31 0 0.253662 1
+4 10 0 0 0.172363 0
+4 10 1 0 0.172363 0
+4 10 2 0 0.172363 0
+4 10 3 0 0.172363 0
+4 10 4 0 0.172363 0
+4 10 5 0 0.172485 0.0256042
+4 10 6 0 0.172485 0.0545654
+4 10 7 0 0.172607 0.0795898
+4 10 8 0 0.172852 0.108215
+4 10 9 0 0.173584 0.142944
+4 10 10 0 0.175781 0.185425
+4 10 11 0 0.180542 0.238525
+4 10 12 0 0.185913 0.301758
+4 10 13 0 0.19165 0.373535
+4 10 14 0 0.19812 0.452393
+4 10 15 0 0.205933 0.536133
+4 10 16 0 0.215332 0.623047
+4 10 17 0 0.225464 0.706543
+4 10 18 0 0.235962 0.783203
+4 10 19 0 0.24585 0.851074
+4 10 20 0 0.249634 0.889648
+4 10 21 0 0.246216 0.896484
+4 10 22 0 0.244385 0.904297
+4 10 23 0 0.243652 0.912109
+4 10 24 0 0.24353 0.919922
+4 10 25 0 0.244019 0.928223
+4 10 26 0 0.244873 0.937988
+4 10 27 0 0.246216 0.94873
+4 10 28 0 0.248169 0.960449
+4 10 29 0 0.250488 0.973633
+4 10 30 0 0.25293 0.986816
+4 10 31 0 0.255859 1
+4 11 0 0 0.220459 0
+4 11 1 0 0.220459 0
+4 11 2 0 0.220459 0
+4 11 3 0 0.220459 0
+4 11 4 0 0.220581 0
+4 11 5 0 0.220581 0
+4 11 6 0 0.220703 0.0353088
+4 11 7 0 0.220581 0.0721436
+4 11 8 0 0.220459 0.104797
+4 11 9 0 0.220703 0.141724
+4 11 10 0 0.22229 0.185303
+4 11 11 0 0.225586 0.237915
+4 11 12 0 0.22998 0.300781
+4 11 13 0 0.234375 0.372803
+4 11 14 0 0.23877 0.451904
+4 11 15 0 0.24353 0.536133
+4 11 16 0 0.249268 0.623047
+4 11 17 0 0.255371 0.707031
+4 11 18 0 0.261719 0.783691
+4 11 19 0 0.268066 0.851562
+4 11 20 0 0.268555 0.891113
+4 11 21 0 0.261963 0.897949
+4 11 22 0 0.257568 0.905273
+4 11 23 0 0.254883 0.913086
+4 11 24 0 0.253418 0.92041
+4 11 25 0 0.252441 0.929199
+4 11 26 0 0.252197 0.938477
+4 11 27 0 0.252686 0.949219
+4 11 28 0 0.253662 0.960938
+4 11 29 0 0.255371 0.974121
+4 11 30 0 0.25708 0.987305
+4 11 31 0 0.259277 1
+4 12 0 0 0.278809 0
+4 12 1 0 0.278809 0
+4 12 2 0 0.278809 0
+4 12 3 0 0.278809 0
+4 12 4 0 0.278809 0
+4 12 5 0 0.279053 0
+4 12 6 0 0.279053 0
+4 12 7 0 0.279053 0.0517883
+4 12 8 0 0.279053 0.0967407
+4 12 9 0 0.279053 0.138306
+4 12 10 0 0.279541 0.184082
+4 12 11 0 0.28125 0.236938
+4 12 12 0 0.283936 0.299561
+4 12 13 0 0.287354 0.371582
+4 12 14 0 0.290039 0.451172
+4 12 15 0 0.292236 0.535645
+4 12 16 0 0.294434 0.623535
+4 12 17 0 0.296387 0.70752
+4 12 18 0 0.29834 0.784668
+4 12 19 0 0.300293 0.852051
+4 12 20 0 0.297119 0.893555
+4 12 21 0 0.285889 0.900391
+4 12 22 0 0.278076 0.907227
+4 12 23 0 0.272705 0.914551
+4 12 24 0 0.268799 0.922363
+4 12 25 0 0.266113 0.930664
+4 12 26 0 0.26416 0.939941
+4 12 27 0 0.263184 0.950195
+4 12 28 0 0.262695 0.961914
+4 12 29 0 0.263184 0.974609
+4 12 30 0 0.263916 0.987793
+4 12 31 0 0.265381 1
+4 13 0 0 0.345215 0
+4 13 1 0 0.345215 0
+4 13 2 0 0.345215 0
+4 13 3 0 0.345215 0
+4 13 4 0 0.345215 0
+4 13 5 0 0.345459 0
+4 13 6 0 0.345459 0
+4 13 7 0 0.345459 0
+4 13 8 0 0.345703 0.0761108
+4 13 9 0 0.345947 0.128784
+4 13 10 0 0.346191 0.178955
+4 13 11 0 0.34668 0.234131
+4 13 12 0 0.348145 0.297363
+4 13 13 0 0.350098 0.369385
+4 13 14 0 0.351562 0.449463
+4 13 15 0 0.351807 0.535156
+4 13 16 0 0.35083 0.623535
+4 13 17 0 0.348877 0.708008
+4 13 18 0 0.346436 0.785645
+4 13 19 0 0.343994 0.853516
+4 13 20 0 0.33667 0.897461
+4 13 21 0 0.319824 0.903809
+4 13 22 0 0.307373 0.910645
+4 13 23 0 0.298584 0.91748
+4 13 24 0 0.291748 0.924805
+4 13 25 0 0.286377 0.933105
+4 13 26 0 0.282227 0.941895
+4 13 27 0 0.279053 0.952148
+4 13 28 0 0.276855 0.963867
+4 13 29 0 0.275391 0.976074
+4 13 30 0 0.274902 0.989258
+4 13 31 0 0.274658 1
+4 14 0 0 0.419189 0
+4 14 1 0 0.419189 0
+4 14 2 0 0.419189 0
+4 14 3 0 0.419189 0
+4 14 4 0 0.419189 0
+4 14 5 0 0.419189 0
+4 14 6 0 0.419434 0
+4 14 7 0 0.419434 0
+4 14 8 0 0.419678 0
+4 14 9 0 0.419922 0.108032
+4 14 10 0 0.42041 0.167725
+4 14 11 0 0.420898 0.227051
+4 14 12 0 0.421631 0.292236
+4 14 13 0 0.422607 0.365234
+4 14 14 0 0.422852 0.446045
+4 14 15 0 0.421631 0.532715
+4 14 16 0 0.418701 0.622559
+4 14 17 0 0.41333 0.708008
+4 14 18 0 0.406494 0.786133
+4 14 19 0 0.399658 0.854492
+4 14 20 0 0.388916 0.90332
+4 14 21 0 0.365479 0.90918
+4 14 22 0 0.347656 0.915527
+4 14 23 0 0.334229 0.922363
+4 14 24 0 0.323975 0.929199
+4 14 25 0 0.31543 0.937012
+4 14 26 0 0.308105 0.945312
+4 14 27 0 0.302002 0.955078
+4 14 28 0 0.297119 0.966309
+4 14 29 0 0.293457 0.978516
+4 14 30 0 0.290771 0.991211
+4 14 31 0 0.288818 1
+4 15 0 0 0.498779 0
+4 15 1 0 0.498779 0
+4 15 2 0 0.498779 0
+4 15 3 0 0.498779 0
+4 15 4 0 0.498779 0
+4 15 5 0 0.498779 0
+4 15 6 0 0.498779 0
+4 15 7 0 0.498779 0
+4 15 8 0 0.499023 0
+4 15 9 0 0.499268 0.0473022
+4 15 10 0 0.499756 0.146484
+4 15 11 0 0.500488 0.213623
+4 15 12 0 0.501465 0.282471
+4 15 13 0 0.502441 0.357422
+4 15 14 0 0.502441 0.439941
+4 15 15 0 0.500488 0.52832
+4 15 16 0 0.496094 0.619629
+4 15 17 0 0.488037 0.707031
+4 15 18 0 0.477783 0.786621
+4 15 19 0 0.466553 0.855957
+4 15 20 0 0.453125 0.910156
+4 15 21 0 0.423096 0.916992
+4 15 22 0 0.39917 0.92334
+4 15 23 0 0.380859 0.929688
+4 15 24 0 0.366211 0.936035
+4 15 25 0 0.35376 0.942871
+4 15 26 0 0.342529 0.951172
+4 15 27 0 0.333008 0.959961
+4 15 28 0 0.325195 0.970703
+4 15 29 0 0.318604 0.981934
+4 15 30 0 0.312988 0.994141
+4 15 31 0 0.308594 1
+4 16 0 0 0.582031 0
+4 16 1 0 0.582031 0
+4 16 2 0 0.582031 0
+4 16 3 0 0.582031 0
+4 16 4 0 0.582031 0
+4 16 5 0 0.582031 0
+4 16 6 0 0.582031 0
+4 16 7 0 0.58252 0
+4 16 8 0 0.58252 0
+4 16 9 0 0.58252 0
+4 16 10 0 0.583008 0.103516
+4 16 11 0 0.583984 0.191284
+4 16 12 0 0.585449 0.266602
+4 16 13 0 0.586426 0.344727
+4 16 14 0 0.586914 0.429199
+4 16 15 0 0.585938 0.519531
+4 16 16 0 0.581055 0.612793
+4 16 17 0 0.571777 0.703125
+4 16 18 0 0.558594 0.785156
+4 16 19 0 0.543945 0.855957
+4 16 20 0 0.527832 0.914551
+4 16 21 0 0.49292 0.927246
+4 16 22 0 0.462891 0.93457
+4 16 23 0 0.438965 0.940918
+4 16 24 0 0.419678 0.946289
+4 16 25 0 0.402344 0.952637
+4 16 26 0 0.386963 0.959961
+4 16 27 0 0.373291 0.967773
+4 16 28 0 0.361572 0.977539
+4 16 29 0 0.351562 0.987793
+4 16 30 0 0.342773 0.999512
+4 16 31 0 0.335205 1
+4 17 0 0 0.664551 0
+4 17 1 0 0.664551 0
+4 17 2 0 0.664551 0
+4 17 3 0 0.664551 0
+4 17 4 0 0.664551 0
+4 17 5 0 0.664551 0
+4 17 6 0 0.664551 0
+4 17 7 0 0.664551 0
+4 17 8 0 0.664551 0
+4 17 9 0 0.664551 0
+4 17 10 0 0.665039 0
+4 17 11 0 0.666016 0.155273
+4 17 12 0 0.667969 0.24353
+4 17 13 0 0.669434 0.326172
+4 17 14 0 0.671387 0.413086
+4 17 15 0 0.670898 0.505371
+4 17 16 0 0.666992 0.601074
+4 17 17 0 0.658203 0.694336
+4 17 18 0 0.644531 0.779785
+4 17 19 0 0.627441 0.853516
+4 17 20 0 0.60791 0.914062
+4 17 21 0 0.572266 0.937988
+4 17 22 0 0.537109 0.94873
+4 17 23 0 0.507324 0.955566
+4 17 24 0 0.483154 0.960938
+4 17 25 0 0.460938 0.966797
+4 17 26 0 0.440674 0.972656
+4 17 27 0 0.422363 0.979492
+4 17 28 0 0.406006 0.987305
+4 17 29 0 0.391846 0.996582
+4 17 30 0 0.37915 1
+4 17 31 0 0.36792 1
+4 18 0 0 0.741211 0
+4 18 1 0 0.741211 0
+4 18 2 0 0.741211 0
+4 18 3 0 0.741211 0
+4 18 4 0 0.741211 0
+4 18 5 0 0.741211 0
+4 18 6 0 0.741211 0
+4 18 7 0 0.741211 0
+4 18 8 0 0.741211 0
+4 18 9 0 0.741699 0
+4 18 10 0 0.741699 0
+4 18 11 0 0.742188 0.0794067
+4 18 12 0 0.744141 0.211304
+4 18 13 0 0.746582 0.301758
+4 18 14 0 0.749023 0.391602
+4 18 15 0 0.750488 0.485596
+4 18 16 0 0.748535 0.583496
+4 18 17 0 0.741699 0.680176
+4 18 18 0 0.729004 0.769043
+4 18 19 0 0.711426 0.84668
+4 18 20 0 0.69043 0.910645
+4 18 21 0 0.655762 0.945801
+4 18 22 0 0.618164 0.963867
+4 18 23 0 0.584473 0.973633
+4 18 24 0 0.555176 0.979492
+4 18 25 0 0.527344 0.984863
+4 18 26 0 0.501953 0.989746
+4 18 27 0 0.478516 0.995117
+4 18 28 0 0.45752 1
+4 18 29 0 0.438477 1
+4 18 30 0 0.421631 1
+4 18 31 0 0.40625 1
+4 19 0 0 0.810059 0
+4 19 1 0 0.810059 0
+4 19 2 0 0.810059 0
+4 19 3 0 0.810059 0
+4 19 4 0 0.810059 0
+4 19 5 0 0.810059 0
+4 19 6 0 0.810059 0
+4 19 7 0 0.810059 0
+4 19 8 0 0.810059 0
+4 19 9 0 0.810547 0
+4 19 10 0 0.810547 0
+4 19 11 0 0.810547 0
+4 19 12 0 0.812012 0.166138
+4 19 13 0 0.814941 0.272217
+4 19 14 0 0.818359 0.366455
+4 19 15 0 0.820801 0.462158
+4 19 16 0 0.821289 0.561523
+4 19 17 0 0.817383 0.660156
+4 19 18 0 0.807129 0.75293
+4 19 19 0 0.791016 0.834473
+4 19 20 0 0.77002 0.901855
+4 19 21 0 0.73877 0.94873
+4 19 22 0 0.70166 0.976074
+4 19 23 0 0.665527 0.991211
+4 19 24 0 0.632324 1
+4 19 25 0 0.599609 1
+4 19 26 0 0.568848 1
+4 19 27 0 0.540039 1
+4 19 28 0 0.513672 1
+4 19 29 0 0.48999 1
+4 19 30 0 0.468262 1
+4 19 31 0 0.44873 1
+4 20 0 0 0.869629 0
+4 20 1 0 0.869629 0
+4 20 2 0 0.869629 0
+4 20 3 0 0.869629 0
+4 20 4 0 0.869629 0
+4 20 5 0 0.869629 0
+4 20 6 0 0.869629 0
+4 20 7 0 0.869629 0
+4 20 8 0 0.869629 0
+4 20 9 0 0.869629 0
+4 20 10 0 0.870117 0
+4 20 11 0 0.870117 0
+4 20 12 0 0.870605 0.0809937
+4 20 13 0 0.873535 0.237427
+4 20 14 0 0.877441 0.338623
+4 20 15 0 0.881348 0.436279
+4 20 16 0 0.883789 0.536621
+4 20 17 0 0.882812 0.636719
+4 20 18 0 0.875488 0.731934
+4 20 19 0 0.861816 0.816895
+4 20 20 0 0.841797 0.888184
+4 20 21 0 0.81543 0.944824
+4 20 22 0 0.781738 0.982422
+4 20 23 0 0.745117 1
+4 20 24 0 0.709961 1
+4 20 25 0 0.673828 1
+4 20 26 0 0.638672 1
+4 20 27 0 0.60498 1
+4 20 28 0 0.573242 1
+4 20 29 0 0.544434 1
+4 20 30 0 0.517578 1
+4 20 31 0 0.493652 1
+4 21 0 0 0.92041 0
+4 21 1 0 0.92041 0
+4 21 2 0 0.92041 0
+4 21 3 0 0.92041 0
+4 21 4 0 0.92041 0
+4 21 5 0 0.92041 0
+4 21 6 0 0.92041 0
+4 21 7 0 0.92041 0
+4 21 8 0 0.92041 0
+4 21 9 0 0.92041 0
+4 21 10 0 0.92041 0
+4 21 11 0 0.92041 0
+4 21 12 0 0.920898 0
+4 21 13 0 0.92334 0.193848
+4 21 14 0 0.927246 0.307617
+4 21 15 0 0.932129 0.408203
+4 21 16 0 0.936035 0.509277
+4 21 17 0 0.9375 0.609863
+4 21 18 0 0.933594 0.706543
+4 21 19 0 0.922852 0.794434
+4 21 20 0 0.90625 0.869141
+4 21 21 0 0.883301 0.932129
+4 21 22 0 0.854492 0.979492
+4 21 23 0 0.820801 1
+4 21 24 0 0.785645 1
+4 21 25 0 0.748047 1
+4 21 26 0 0.709473 1
+4 21 27 0 0.671387 1
+4 21 28 0 0.635254 1
+4 21 29 0 0.601074 1
+4 21 30 0 0.569824 1
+4 21 31 0 0.541016 1
+4 22 0 0 0.962402 0
+4 22 1 0 0.962402 0
+4 22 2 0 0.962402 0
+4 22 3 0 0.962402 0
+4 22 4 0 0.962402 0
+4 22 5 0 0.962402 0
+4 22 6 0 0.962402 0
+4 22 7 0 0.962402 0
+4 22 8 0 0.962402 0
+4 22 9 0 0.962402 0
+4 22 10 0 0.962402 0
+4 22 11 0 0.962402 0
+4 22 12 0 0.962891 0
+4 22 13 0 0.963867 0.131348
+4 22 14 0 0.968262 0.273682
+4 22 15 0 0.973633 0.378662
+4 22 16 0 0.979004 0.480469
+4 22 17 0 0.982422 0.581055
+4 22 18 0 0.981445 0.678223
+4 22 19 0 0.974609 0.768066
+4 22 20 0 0.960938 0.845703
+4 22 21 0 0.941406 0.912598
+4 22 22 0 0.916504 0.967285
+4 22 23 0 0.887695 1
+4 22 24 0 0.85498 1
+4 22 25 0 0.817871 1
+4 22 26 0 0.77832 1
+4 22 27 0 0.737305 1
+4 22 28 0 0.697266 1
+4 22 29 0 0.65918 1
+4 22 30 0 0.623047 1
+4 22 31 0 0.589844 1
+4 23 0 0 0.995605 0
+4 23 1 0 0.995605 0
+4 23 2 0 0.995605 0
+4 23 3 0 0.995605 0
+4 23 4 0 0.995605 0
+4 23 5 0 0.995605 0
+4 23 6 0 0.995605 0
+4 23 7 0 0.995605 0
+4 23 8 0 0.995605 0
+4 23 9 0 0.995605 0
+4 23 10 0 0.996094 0
+4 23 11 0 0.996094 0
+4 23 12 0 0.996094 0
+4 23 13 0 0.996582 0
+4 23 14 0 1 0.237061
+4 23 15 0 1 0.349121
+4 23 16 0 1 0.451904
+4 23 17 0 1 0.552246
+4 23 18 0 1 0.649902
+4 23 19 0 1 0.740234
+4 23 20 0 1 0.820312
+4 23 21 0 0.98877 0.890137
+4 23 22 0 0.967285 0.948242
+4 23 23 0 0.941895 0.993652
+4 23 24 0 0.913574 1
+4 23 25 0 0.879395 1
+4 23 26 0 0.840332 1
+4 23 27 0 0.79834 1
+4 23 28 0 0.756348 1
+4 23 29 0 0.714844 1
+4 23 30 0 0.674805 1
+4 23 31 0 0.637695 1
+4 24 0 0 1 0
+4 24 1 0 1 0
+4 24 2 0 1 0
+4 24 3 0 1 0
+4 24 4 0 1 0
+4 24 5 0 1 0
+4 24 6 0 1 0
+4 24 7 0 1 0
+4 24 8 0 1 0
+4 24 9 0 1 0
+4 24 10 0 1 0
+4 24 11 0 1 0
+4 24 12 0 1 0
+4 24 13 0 1 0
+4 24 14 0 1 0.195801
+4 24 15 0 1 0.319336
+4 24 16 0 1 0.424072
+4 24 17 0 1 0.524414
+4 24 18 0 1 0.621094
+4 24 19 0 1 0.711426
+4 24 20 0 1 0.792969
+4 24 21 0 1 0.864746
+4 24 22 0 1 0.92627
+4 24 23 0 0.986816 0.975586
+4 24 24 0 0.961914 1
+4 24 25 0 0.931641 1
+4 24 26 0 0.89502 1
+4 24 27 0 0.854004 1
+4 24 28 0 0.810547 1
+4 24 29 0 0.76709 1
+4 24 30 0 0.724609 1
+4 24 31 0 0.683594 1
+4 25 0 0 1 0
+4 25 1 0 1 0
+4 25 2 0 1 0
+4 25 3 0 1 0
+4 25 4 0 1 0
+4 25 5 0 1 0
+4 25 6 0 1 0
+4 25 7 0 1 0
+4 25 8 0 1 0
+4 25 9 0 1 0
+4 25 10 0 1 0
+4 25 11 0 1 0
+4 25 12 0 1 0
+4 25 13 0 1 0
+4 25 14 0 1 0.13562
+4 25 15 0 1 0.286133
+4 25 16 0 1 0.394043
+4 25 17 0 1 0.493896
+4 25 18 0 1 0.589844
+4 25 19 0 1 0.679688
+4 25 20 0 1 0.761719
+4 25 21 0 1 0.835449
+4 25 22 0 1 0.899414
+4 25 23 0 1 0.952148
+4 25 24 0 1 0.995605
+4 25 25 0 0.979492 1
+4 25 26 0 0.946777 1
+4 25 27 0 0.907715 1
+4 25 28 0 0.865234 1
+4 25 29 0 0.820312 1
+4 25 30 0 0.775879 1
+4 25 31 0 0.732422 1
+4 26 0 0 1 0
+4 26 1 0 1 0
+4 26 2 0 1 0
+4 26 3 0 1 0
+4 26 4 0 1 0
+4 26 5 0 1 0
+4 26 6 0 1 0
+4 26 7 0 1 0
+4 26 8 0 1 0
+4 26 9 0 1 0
+4 26 10 0 1 0
+4 26 11 0 1 0
+4 26 12 0 1 0
+4 26 13 0 1 0
+4 26 14 0 1 0
+4 26 15 0 1 0.247559
+4 26 16 0 1 0.361328
+4 26 17 0 1 0.46167
+4 26 18 0 1 0.556641
+4 26 19 0 1 0.645508
+4 26 20 0 1 0.727539
+4 26 21 0 1 0.802246
+4 26 22 0 1 0.868652
+4 26 23 0 1 0.923828
+4 26 24 0 1 0.970215
+4 26 25 0 1 1
+4 26 26 0 0.994629 1
+4 26 27 0 0.958984 1
+4 26 28 0 0.918457 1
+4 26 29 0 0.874023 1
+4 26 30 0 0.828125 1
+4 26 31 0 0.782227 1
+4 27 0 0 1 0
+4 27 1 0 1 0
+4 27 2 0 1 0
+4 27 3 0 1 0
+4 27 4 0 1 0
+4 27 5 0 1 0
+4 27 6 0 1 0
+4 27 7 0 1 0
+4 27 8 0 1 0
+4 27 9 0 1 0
+4 27 10 0 1 0
+4 27 11 0 1 0
+4 27 12 0 1 0
+4 27 13 0 1 0
+4 27 14 0 1 0
+4 27 15 0 1 0.200073
+4 27 16 0 1 0.326172
+4 27 17 0 1 0.427734
+4 27 18 0 1 0.521484
+4 27 19 0 1 0.609375
+4 27 20 0 1 0.69043
+4 27 21 0 1 0.765625
+4 27 22 0 1 0.833008
+4 27 23 0 1 0.890625
+4 27 24 0 1 0.939941
+4 27 25 0 1 0.985352
+4 27 26 0 1 1
+4 27 27 0 1 1
+4 27 28 0 0.968262 1
+4 27 29 0 0.925293 1
+4 27 30 0 0.879883 1
+4 27 31 0 0.833008 1
+4 28 0 0 1 0
+4 28 1 0 1 0
+4 28 2 0 1 0
+4 28 3 0 1 0
+4 28 4 0 1 0
+4 28 5 0 1 0
+4 28 6 0 1 0
+4 28 7 0 1 0
+4 28 8 0 1 0
+4 28 9 0 1 0
+4 28 10 0 1 0
+4 28 11 0 1 0
+4 28 12 0 1 0
+4 28 13 0 1 0
+4 28 14 0 1 0
+4 28 15 0 1 0.129883
+4 28 16 0 1 0.287109
+4 28 17 0 1 0.391602
+4 28 18 0 1 0.484863
+4 28 19 0 1 0.571289
+4 28 20 0 1 0.651367
+4 28 21 0 1 0.726074
+4 28 22 0 1 0.793945
+4 28 23 0 1 0.853027
+4 28 24 0 1 0.904297
+4 28 25 0 1 0.952637
+4 28 26 0 1 0.997559
+4 28 27 0 1 1
+4 28 28 0 1 1
+4 28 29 0 0.974121 1
+4 28 30 0 0.930664 1
+4 28 31 0 0.884277 1
+4 29 0 0 1 0
+4 29 1 0 1 0
+4 29 2 0 1 0
+4 29 3 0 1 0
+4 29 4 0 1 0
+4 29 5 0 1 0
+4 29 6 0 1 0
+4 29 7 0 1 0
+4 29 8 0 1 0
+4 29 9 0 1 0
+4 29 10 0 1 0
+4 29 11 0 1 0
+4 29 12 0 1 0
+4 29 13 0 1 0
+4 29 14 0 1 0
+4 29 15 0 1 0
+4 29 16 0 1 0.242188
+4 29 17 0 1 0.353271
+4 29 18 0 1 0.446533
+4 29 19 0 1 0.531738
+4 29 20 0 1 0.609863
+4 29 21 0 1 0.683594
+4 29 22 0 1 0.751465
+4 29 23 0 1 0.811035
+4 29 24 0 1 0.86377
+4 29 25 0 1 0.914551
+4 29 26 0 1 0.962402
+4 29 27 0 1 1
+4 29 28 0 1 1
+4 29 29 0 1 1
+4 29 30 0 0.979004 1
+4 29 31 0 0.93457 1
+4 30 0 0 1 0
+4 30 1 0 1 0
+4 30 2 0 1 0
+4 30 3 0 1 0
+4 30 4 0 1 0
+4 30 5 0 1 0
+4 30 6 0 1 0
+4 30 7 0 1 0
+4 30 8 0 1 0
+4 30 9 0 1 0
+4 30 10 0 1 0
+4 30 11 0 1 0
+4 30 12 0 1 0
+4 30 13 0 1 0
+4 30 14 0 1 0
+4 30 15 0 1 0
+4 30 16 0 1 0.186279
+4 30 17 0 1 0.312012
+4 30 18 0 1 0.406738
+4 30 19 0 1 0.490479
+4 30 20 0 1 0.566895
+4 30 21 0 1 0.63916
+4 30 22 0 1 0.705566
+4 30 23 0 1 0.765137
+4 30 24 0 1 0.818848
+4 30 25 0 1 0.870605
+4 30 26 0 1 0.921387
+4 30 27 0 1 0.96875
+4 30 28 0 1 1
+4 30 29 0 1 1
+4 30 30 0 1 1
+4 30 31 0 0.98291 1
+4 31 0 0 1 0
+4 31 1 0 1 0
+4 31 2 0 1 0
+4 31 3 0 1 0
+4 31 4 0 1 0
+4 31 5 0 1 0
+4 31 6 0 1 0
+4 31 7 0 1 0
+4 31 8 0 1 0
+4 31 9 0 1 0
+4 31 10 0 1 0
+4 31 11 0 1 0
+4 31 12 0 1 0
+4 31 13 0 1 0
+4 31 14 0 1 0
+4 31 15 0 1 0
+4 31 16 0 1 0.0895386
+4 31 17 0 1 0.266846
+4 31 18 0 1 0.365234
+4 31 19 0 1 0.448486
+4 31 20 0 1 0.523438
+4 31 21 0 1 0.593262
+4 31 22 0 1 0.658203
+4 31 23 0 1 0.716797
+4 31 24 0 1 0.77002
+4 31 25 0 1 0.823242
+4 31 26 0 1 0.875488
+4 31 27 0 1 0.92627
+4 31 28 0 1 0.973145
+4 31 29 0 1 1
+4 31 30 0 1 1
+4 31 31 0 1 1
+5 0 0 0.0841064 0.0212708 0
+5 0 1 0.0840454 0.0208588 0.0193024
+5 0 2 0.083374 0.019989 0.030365
+5 0 3 0.0810547 0.0188141 0.0408936
+5 0 4 0.0706177 0.0211945 0.047821
+5 0 5 0.0626221 0.0247345 0.0556335
+5 0 6 0.0592041 0.0266876 0.071228
+5 0 7 0.0499573 0.0294342 0.0904541
+5 0 8 0 0.0336914 0.114807
+5 0 9 0 0.0401611 0.146362
+5 0 10 0 0.04953 0.187622
+5 0 11 0 0.0622253 0.240845
+5 0 12 0 0.0774536 0.303467
+5 0 13 0 0.0949707 0.374512
+5 0 14 0 0.11438 0.452637
+5 0 15 0 0.135132 0.536133
+5 0 16 0 0.156738 0.622559
+5 0 17 0 0.177612 0.706055
+5 0 18 0 0.196899 0.782715
+5 0 19 0 0.213745 0.850098
+5 0 20 0 0.223145 0.887695
+5 0 21 0 0.224976 0.89502
+5 0 22 0 0.226929 0.902832
+5 0 23 0 0.228882 0.910645
+5 0 24 0 0.230835 0.918457
+5 0 25 0 0.233032 0.927246
+5 0 26 0 0.235474 0.937012
+5 0 27 0 0.238159 0.947754
+5 0 28 0 0.241211 0.959961
+5 0 29 0 0.244385 0.972656
+5 0 30 0 0.247803 0.986328
+5 0 31 0 0.251221 1
+5 1 0 0.0828857 0.0266418 0
+5 1 1 0.0829468 0.0263977 0.0187836
+5 1 2 0.0825806 0.0257874 0.029892
+5 1 3 0.0806274 0.0247345 0.0406189
+5 1 4 0.0709229 0.024765 0.0480957
+5 1 5 0.0623779 0.0269928 0.055603
+5 1 6 0.05896 0.0287476 0.071228
+5 1 7 0.0496216 0.0311737 0.0904541
+5 1 8 0 0.0350647 0.114807
+5 1 9 0 0.0411682 0.14624
+5 1 10 0 0.050293 0.187622
+5 1 11 0 0.0628052 0.240845
+5 1 12 0 0.0778809 0.303467
+5 1 13 0 0.0952759 0.374512
+5 1 14 0 0.114563 0.452637
+5 1 15 0 0.135254 0.536133
+5 1 16 0 0.15686 0.622559
+5 1 17 0 0.177734 0.706055
+5 1 18 0 0.196899 0.782715
+5 1 19 0 0.213867 0.850098
+5 1 20 0 0.223145 0.887695
+5 1 21 0 0.224976 0.89502
+5 1 22 0 0.226929 0.902832
+5 1 23 0 0.228882 0.910645
+5 1 24 0 0.230835 0.918457
+5 1 25 0 0.233032 0.927246
+5 1 26 0 0.235474 0.937012
+5 1 27 0 0.238159 0.947754
+5 1 28 0 0.241211 0.959961
+5 1 29 0 0.244385 0.972656
+5 1 30 0 0.247803 0.986328
+5 1 31 0 0.251221 1
+5 2 0 0.0803833 0.0327148 0
+5 2 1 0.0805664 0.0326233 0.018219
+5 2 2 0.0807495 0.0323792 0.0290833
+5 2 3 0.0794678 0.0315552 0.0399475
+5 2 4 0.0715332 0.029953 0.0486145
+5 2 5 0.0619202 0.0304108 0.055542
+5 2 6 0.0584717 0.0319214 0.071167
+5 2 7 0.0490112 0.0339661 0.0904541
+5 2 8 0 0.037323 0.114807
+5 2 9 0 0.0429077 0.14624
+5 2 10 0 0.0516052 0.187622
+5 2 11 0 0.0637207 0.240845
+5 2 12 0 0.0786133 0.303467
+5 2 13 0 0.0957642 0.374268
+5 2 14 0 0.114929 0.452637
+5 2 15 0 0.13562 0.536133
+5 2 16 0 0.157104 0.622559
+5 2 17 0 0.177856 0.706055
+5 2 18 0 0.197021 0.782715
+5 2 19 0 0.213867 0.850098
+5 2 20 0 0.223267 0.887695
+5 2 21 0 0.225098 0.89502
+5 2 22 0 0.226929 0.902832
+5 2 23 0 0.228882 0.910645
+5 2 24 0 0.230957 0.918457
+5 2 25 0 0.233032 0.927246
+5 2 26 0 0.235474 0.937012
+5 2 27 0 0.238159 0.947754
+5 2 28 0 0.241211 0.959961
+5 2 29 0 0.244507 0.972656
+5 2 30 0 0.247803 0.986328
+5 2 31 0 0.251221 1
+5 3 0 0.0753174 0.0389709 0
+5 3 1 0.0756226 0.0390625 0.0185852
+5 3 2 0.0761108 0.0392456 0.0279694
+5 3 3 0.0768433 0.0393982 0.0386658
+5 3 4 0.0725708 0.0376587 0.0494385
+5 3 5 0.0611572 0.0354309 0.0554504
+5 3 6 0.0575867 0.0367126 0.071106
+5 3 7 0.047821 0.038269 0.0903931
+5 3 8 0 0.0409851 0.114807
+5 3 9 0 0.0458374 0.14624
+5 3 10 0 0.053833 0.187622
+5 3 11 0 0.0654297 0.240845
+5 3 12 0 0.079895 0.303467
+5 3 13 0 0.0967407 0.374268
+5 3 14 0 0.115662 0.452637
+5 3 15 0 0.136108 0.536133
+5 3 16 0 0.157471 0.622559
+5 3 17 0 0.178223 0.706055
+5 3 18 0 0.197266 0.782715
+5 3 19 0 0.214111 0.850098
+5 3 20 0 0.223389 0.887695
+5 3 21 0 0.22522 0.89502
+5 3 22 0 0.227051 0.902832
+5 3 23 0 0.229004 0.910645
+5 3 24 0 0.230957 0.918457
+5 3 25 0 0.233154 0.927246
+5 3 26 0 0.235596 0.937012
+5 3 27 0 0.238281 0.947754
+5 3 28 0 0.241211 0.959961
+5 3 29 0 0.244507 0.972656
+5 3 30 0 0.247803 0.986328
+5 3 31 0 0.251221 1
+5 4 0 0.0678711 0.0447693 0.0160828
+5 4 1 0.067749 0.0447998 0.0214539
+5 4 2 0.067627 0.0449219 0.0277405
+5 4 3 0.0679321 0.0454712 0.0358887
+5 4 4 0.0698853 0.0471191 0.0482178
+5 4 5 0.0596313 0.0426941 0.0553589
+5 4 6 0.0558167 0.0437012 0.0709839
+5 4 7 0.0455017 0.0447693 0.090332
+5 4 8 0 0.0467224 0.114746
+5 4 9 0 0.0506287 0.14624
+5 4 10 0 0.0577393 0.1875
+5 4 11 0 0.0685425 0.240723
+5 4 12 0 0.0822144 0.303467
+5 4 13 0 0.0984497 0.374268
+5 4 14 0 0.116943 0.452637
+5 4 15 0 0.137085 0.536133
+5 4 16 0 0.158203 0.622559
+5 4 17 0 0.178711 0.706055
+5 4 18 0 0.197754 0.782715
+5 4 19 0 0.214478 0.850098
+5 4 20 0 0.223755 0.887695
+5 4 21 0 0.225342 0.89502
+5 4 22 0 0.227295 0.902832
+5 4 23 0 0.229126 0.910645
+5 4 24 0 0.231079 0.918457
+5 4 25 0 0.233276 0.927246
+5 4 26 0 0.235596 0.937012
+5 4 27 0 0.238281 0.947754
+5 4 28 0 0.241333 0.959961
+5 4 29 0 0.244507 0.972656
+5 4 30 0 0.247925 0.986328
+5 4 31 0 0.251465 1
+5 5 0 0.0648193 0.0557556 0.0182648
+5 5 1 0.0644531 0.055603 0.0229492
+5 5 2 0.0637207 0.0553284 0.0286255
+5 5 3 0.062561 0.0549011 0.035675
+5 5 4 0.0604553 0.0541992 0.0444641
+5 5 5 0.0565796 0.052948 0.0551758
+5 5 6 0.052124 0.0536499 0.0707397
+5 5 7 0.0403137 0.0542603 0.09021
+5 5 8 0 0.0554504 0.114685
+5 5 9 0 0.0582886 0.146118
+5 5 10 0 0.064209 0.1875
+5 5 11 0 0.0738525 0.240723
+5 5 12 0 0.0864258 0.303467
+5 5 13 0 0.101685 0.374268
+5 5 14 0 0.119385 0.452637
+5 5 15 0 0.138916 0.536133
+5 5 16 0 0.159668 0.622559
+5 5 17 0 0.17981 0.706055
+5 5 18 0 0.198608 0.782715
+5 5 19 0 0.215088 0.850098
+5 5 20 0 0.224243 0.887695
+5 5 21 0 0.22583 0.89502
+5 5 22 0 0.227539 0.902832
+5 5 23 0 0.229492 0.910645
+5 5 24 0 0.231323 0.918457
+5 5 25 0 0.233398 0.927246
+5 5 26 0 0.23584 0.937012
+5 5 27 0 0.238403 0.947754
+5 5 28 0 0.241455 0.959961
+5 5 29 0 0.244629 0.972656
+5 5 30 0 0.248047 0.986328
+5 5 31 0 0.251465 1
+5 6 0 0.0564575 0.0685425 0.0174866
+5 6 1 0.056366 0.0685425 0.0189362
+5 6 2 0.0557861 0.0682983 0.0257416
+5 6 3 0.0546875 0.0678711 0.0334473
+5 6 4 0.0527344 0.0671997 0.0427551
+5 6 5 0.04953 0.0667114 0.054657
+5 6 6 0.0435791 0.0670166 0.0701904
+5 6 7 0.0251007 0.0672607 0.0898438
+5 6 8 0 0.067749 0.114563
+5 6 9 0 0.0695801 0.145996
+5 6 10 0 0.0743408 0.187256
+5 6 11 0 0.0826416 0.240601
+5 6 12 0 0.0936279 0.303223
+5 6 13 0 0.107422 0.374268
+5 6 14 0 0.12384 0.452637
+5 6 15 0 0.142334 0.536133
+5 6 16 0 0.162231 0.622559
+5 6 17 0 0.181885 0.706055
+5 6 18 0 0.200073 0.782715
+5 6 19 0 0.216309 0.850098
+5 6 20 0 0.22522 0.887695
+5 6 21 0 0.226562 0.89502
+5 6 22 0 0.228271 0.902832
+5 6 23 0 0.22998 0.910645
+5 6 24 0 0.231812 0.918945
+5 6 25 0 0.233887 0.927246
+5 6 26 0 0.236206 0.937012
+5 6 27 0 0.23877 0.947754
+5 6 28 0 0.241699 0.959961
+5 6 29 0 0.244873 0.973145
+5 6 30 0 0.248169 0.986328
+5 6 31 0 0.251709 1
+5 7 0 0.0362854 0.0846558 0.0164337
+5 7 1 0.0363464 0.0847168 0.016449
+5 7 2 0.0361328 0.0847168 0.019516
+5 7 3 0.03479 0.0845947 0.02948
+5 7 4 0.0319824 0.0844727 0.0401611
+5 7 5 0.0253296 0.0844727 0.0530701
+5 7 6 0 0.0846558 0.0690308
+5 7 7 0 0.0847168 0.0890503
+5 7 8 0 0.0847168 0.114136
+5 7 9 0 0.0856934 0.145874
+5 7 10 0 0.0893555 0.187012
+5 7 11 0 0.0963745 0.240356
+5 7 12 0 0.105591 0.303223
+5 7 13 0 0.117432 0.374268
+5 7 14 0 0.131836 0.452637
+5 7 15 0 0.148682 0.536133
+5 7 16 0 0.167114 0.622559
+5 7 17 0 0.185669 0.706055
+5 7 18 0 0.203125 0.782715
+5 7 19 0 0.21875 0.850586
+5 7 20 0 0.227173 0.888184
+5 7 21 0 0.228149 0.895508
+5 7 22 0 0.229492 0.902832
+5 7 23 0 0.231079 0.911133
+5 7 24 0 0.232666 0.918945
+5 7 25 0 0.234619 0.927734
+5 7 26 0 0.236816 0.937012
+5 7 27 0 0.23938 0.947754
+5 7 28 0 0.242188 0.959961
+5 7 29 0 0.245239 0.973145
+5 7 30 0 0.248535 0.986328
+5 7 31 0 0.251953 1
+5 8 0 0 0.106812 0.0151443
+5 8 1 0 0.106812 0.015152
+5 8 2 0 0.106873 0.0151672
+5 8 3 0 0.106873 0.0202942
+5 8 4 0 0.106934 0.0350952
+5 8 5 0 0.107056 0.0496826
+5 8 6 0 0.107239 0.0665283
+5 8 7 0 0.107422 0.0872192
+5 8 8 0 0.107361 0.113098
+5 8 9 0 0.107849 0.145264
+5 8 10 0 0.110657 0.186646
+5 8 11 0 0.116638 0.23999
+5 8 12 0 0.124207 0.302979
+5 8 13 0 0.133789 0.374268
+5 8 14 0 0.14563 0.452637
+5 8 15 0 0.159912 0.536133
+5 8 16 0 0.176147 0.622559
+5 8 17 0 0.192749 0.706055
+5 8 18 0 0.20874 0.783203
+5 8 19 0 0.223389 0.850586
+5 8 20 0 0.230957 0.888184
+5 8 21 0 0.231079 0.895508
+5 8 22 0 0.231934 0.90332
+5 8 23 0 0.233032 0.911133
+5 8 24 0 0.234497 0.918945
+5 8 25 0 0.236084 0.927734
+5 8 26 0 0.238159 0.9375
+5 8 27 0 0.240479 0.948242
+5 8 28 0 0.243164 0.959961
+5 8 29 0 0.246094 0.973145
+5 8 30 0 0.249268 0.986328
+5 8 31 0 0.252441 1
+5 9 0 0 0.135376 0.0126877
+5 9 1 0 0.135376 0.0127029
+5 9 2 0 0.135376 0.0127258
+5 9 3 0 0.135498 0.012764
+5 9 4 0 0.135498 0.0216217
+5 9 5 0 0.13562 0.0430603
+5 9 6 0 0.135742 0.0621033
+5 9 7 0 0.135986 0.0840454
+5 9 8 0 0.136353 0.110962
+5 9 9 0 0.136963 0.144287
+5 9 10 0 0.139282 0.186035
+5 9 11 0 0.144653 0.23938
+5 9 12 0 0.150879 0.30249
+5 9 13 0 0.158325 0.374023
+5 9 14 0 0.167358 0.452393
+5 9 15 0 0.178467 0.536133
+5 9 16 0 0.191528 0.623047
+5 9 17 0 0.205322 0.706543
+5 9 18 0 0.218994 0.783203
+5 9 19 0 0.231812 0.850586
+5 9 20 0 0.237793 0.888672
+5 9 21 0 0.236694 0.895996
+5 9 22 0 0.23645 0.903809
+5 9 23 0 0.236938 0.911133
+5 9 24 0 0.237793 0.919434
+5 9 25 0 0.239014 0.927734
+5 9 26 0 0.240601 0.9375
+5 9 27 0 0.242554 0.948242
+5 9 28 0 0.244995 0.960449
+5 9 29 0 0.247681 0.973145
+5 9 30 0 0.250488 0.986816
+5 9 31 0 0.253662 1
+5 10 0 0 0.172363 0.00358391
+5 10 1 0 0.172363 0.00367928
+5 10 2 0 0.172363 0.00383949
+5 10 3 0 0.172363 0.00410843
+5 10 4 0 0.172485 0.00455093
+5 10 5 0 0.172485 0.0260925
+5 10 6 0 0.172485 0.0546875
+5 10 7 0 0.172607 0.0796509
+5 10 8 0 0.172852 0.108276
+5 10 9 0 0.173706 0.142944
+5 10 10 0 0.175781 0.185425
+5 10 11 0 0.180542 0.238525
+5 10 12 0 0.186035 0.301758
+5 10 13 0 0.191772 0.373535
+5 10 14 0 0.198242 0.452393
+5 10 15 0 0.205933 0.536133
+5 10 16 0 0.215332 0.623047
+5 10 17 0 0.225586 0.706543
+5 10 18 0 0.235962 0.783203
+5 10 19 0 0.24585 0.851074
+5 10 20 0 0.249634 0.889648
+5 10 21 0 0.246338 0.896484
+5 10 22 0 0.244507 0.904297
+5 10 23 0 0.243652 0.912109
+5 10 24 0 0.243652 0.919922
+5 10 25 0 0.244019 0.928223
+5 10 26 0 0.244873 0.937988
+5 10 27 0 0.246338 0.94873
+5 10 28 0 0.248169 0.960449
+5 10 29 0 0.250488 0.973633
+5 10 30 0 0.25293 0.986816
+5 10 31 0 0.255859 1
+5 11 0 0 0.220459 0
+5 11 1 0 0.220459 0
+5 11 2 0 0.220459 0
+5 11 3 0 0.220459 0
+5 11 4 0 0.220581 0
+5 11 5 0 0.220581 0
+5 11 6 0 0.220703 0.035614
+5 11 7 0 0.220581 0.0722046
+5 11 8 0 0.220459 0.104858
+5 11 9 0 0.220825 0.141724
+5 11 10 0 0.22229 0.185303
+5 11 11 0 0.225586 0.237915
+5 11 12 0 0.22998 0.300781
+5 11 13 0 0.234497 0.372803
+5 11 14 0 0.238892 0.451904
+5 11 15 0 0.243652 0.536133
+5 11 16 0 0.249268 0.623047
+5 11 17 0 0.255371 0.707031
+5 11 18 0 0.261719 0.783691
+5 11 19 0 0.268066 0.851562
+5 11 20 0 0.268555 0.891113
+5 11 21 0 0.261963 0.897949
+5 11 22 0 0.257568 0.905273
+5 11 23 0 0.254883 0.913086
+5 11 24 0 0.253418 0.92041
+5 11 25 0 0.252441 0.929199
+5 11 26 0 0.252197 0.938477
+5 11 27 0 0.252686 0.949219
+5 11 28 0 0.253662 0.960938
+5 11 29 0 0.255371 0.974121
+5 11 30 0 0.25708 0.987305
+5 11 31 0 0.259277 1
+5 12 0 0 0.278809 0
+5 12 1 0 0.278809 0
+5 12 2 0 0.278809 0
+5 12 3 0 0.278809 0
+5 12 4 0 0.278809 0
+5 12 5 0 0.279053 0
+5 12 6 0 0.279053 0
+5 12 7 0 0.279053 0.0519714
+5 12 8 0 0.279053 0.0968018
+5 12 9 0 0.279297 0.138428
+5 12 10 0 0.279785 0.184082
+5 12 11 0 0.28125 0.236938
+5 12 12 0 0.283936 0.299561
+5 12 13 0 0.287354 0.371582
+5 12 14 0 0.290039 0.451172
+5 12 15 0 0.292236 0.535645
+5 12 16 0 0.294434 0.623535
+5 12 17 0 0.296387 0.70752
+5 12 18 0 0.29834 0.784668
+5 12 19 0 0.300293 0.852051
+5 12 20 0 0.297119 0.893555
+5 12 21 0 0.285889 0.900391
+5 12 22 0 0.278076 0.907227
+5 12 23 0 0.272705 0.914551
+5 12 24 0 0.268799 0.922363
+5 12 25 0 0.266113 0.930664
+5 12 26 0 0.26416 0.939941
+5 12 27 0 0.263184 0.950195
+5 12 28 0 0.262939 0.961914
+5 12 29 0 0.263184 0.974609
+5 12 30 0 0.26416 0.987793
+5 12 31 0 0.265381 1
+5 13 0 0 0.345215 0
+5 13 1 0 0.345215 0
+5 13 2 0 0.345215 0
+5 13 3 0 0.345215 0
+5 13 4 0 0.345459 0
+5 13 5 0 0.345459 0
+5 13 6 0 0.345459 0
+5 13 7 0 0.345703 0
+5 13 8 0 0.345703 0.0761719
+5 13 9 0 0.345947 0.128906
+5 13 10 0 0.346191 0.179077
+5 13 11 0 0.346924 0.234131
+5 13 12 0 0.348145 0.297363
+5 13 13 0 0.350098 0.369385
+5 13 14 0 0.351562 0.449463
+5 13 15 0 0.351807 0.535156
+5 13 16 0 0.351074 0.623535
+5 13 17 0 0.348877 0.708008
+5 13 18 0 0.346436 0.785645
+5 13 19 0 0.343994 0.853516
+5 13 20 0 0.336914 0.897461
+5 13 21 0 0.319824 0.903809
+5 13 22 0 0.307373 0.910645
+5 13 23 0 0.298584 0.91748
+5 13 24 0 0.291992 0.924805
+5 13 25 0 0.286621 0.933105
+5 13 26 0 0.282227 0.941895
+5 13 27 0 0.279053 0.952148
+5 13 28 0 0.276855 0.963867
+5 13 29 0 0.275391 0.976074
+5 13 30 0 0.274902 0.989258
+5 13 31 0 0.274658 1
+5 14 0 0 0.419189 0
+5 14 1 0 0.419189 0
+5 14 2 0 0.419189 0
+5 14 3 0 0.419189 0
+5 14 4 0 0.419189 0
+5 14 5 0 0.419189 0
+5 14 6 0 0.419434 0
+5 14 7 0 0.419434 0
+5 14 8 0 0.419678 0
+5 14 9 0 0.419922 0.108093
+5 14 10 0 0.42041 0.167725
+5 14 11 0 0.420898 0.227051
+5 14 12 0 0.421631 0.292236
+5 14 13 0 0.422607 0.365234
+5 14 14 0 0.422852 0.446045
+5 14 15 0 0.421631 0.532715
+5 14 16 0 0.418701 0.622559
+5 14 17 0 0.41333 0.708008
+5 14 18 0 0.406494 0.786133
+5 14 19 0 0.399658 0.85498
+5 14 20 0 0.388916 0.90332
+5 14 21 0 0.365479 0.90918
+5 14 22 0 0.347656 0.915527
+5 14 23 0 0.334229 0.922363
+5 14 24 0 0.323975 0.929199
+5 14 25 0 0.31543 0.937012
+5 14 26 0 0.308105 0.945312
+5 14 27 0 0.302002 0.955078
+5 14 28 0 0.297119 0.966309
+5 14 29 0 0.293457 0.978516
+5 14 30 0 0.290771 0.991211
+5 14 31 0 0.288818 1
+5 15 0 0 0.498779 0
+5 15 1 0 0.498779 0
+5 15 2 0 0.498779 0
+5 15 3 0 0.498779 0
+5 15 4 0 0.498779 0
+5 15 5 0 0.498779 0
+5 15 6 0 0.498779 0
+5 15 7 0 0.498779 0
+5 15 8 0 0.499023 0
+5 15 9 0 0.499268 0.0475159
+5 15 10 0 0.499756 0.146484
+5 15 11 0 0.500488 0.213623
+5 15 12 0 0.501465 0.282471
+5 15 13 0 0.502441 0.357422
+5 15 14 0 0.502441 0.439941
+5 15 15 0 0.500488 0.52832
+5 15 16 0 0.496094 0.619629
+5 15 17 0 0.488037 0.707031
+5 15 18 0 0.477783 0.786621
+5 15 19 0 0.466553 0.855957
+5 15 20 0 0.453125 0.910156
+5 15 21 0 0.423096 0.916992
+5 15 22 0 0.39917 0.92334
+5 15 23 0 0.380859 0.929688
+5 15 24 0 0.366211 0.936035
+5 15 25 0 0.35376 0.942871
+5 15 26 0 0.342529 0.951172
+5 15 27 0 0.333008 0.959961
+5 15 28 0 0.325195 0.970703
+5 15 29 0 0.318604 0.982422
+5 15 30 0 0.312988 0.994141
+5 15 31 0 0.308594 1
+5 16 0 0 0.582031 0
+5 16 1 0 0.582031 0
+5 16 2 0 0.582031 0
+5 16 3 0 0.582031 0
+5 16 4 0 0.582031 0
+5 16 5 0 0.582031 0
+5 16 6 0 0.582031 0
+5 16 7 0 0.58252 0
+5 16 8 0 0.58252 0
+5 16 9 0 0.58252 0
+5 16 10 0 0.583008 0.103577
+5 16 11 0 0.583984 0.191406
+5 16 12 0 0.585449 0.266602
+5 16 13 0 0.586426 0.344727
+5 16 14 0 0.586914 0.429199
+5 16 15 0 0.585938 0.519531
+5 16 16 0 0.581055 0.612793
+5 16 17 0 0.571777 0.703125
+5 16 18 0 0.558594 0.785156
+5 16 19 0 0.543945 0.855957
+5 16 20 0 0.527832 0.914551
+5 16 21 0 0.49292 0.927246
+5 16 22 0 0.462891 0.93457
+5 16 23 0 0.438965 0.940918
+5 16 24 0 0.419678 0.946289
+5 16 25 0 0.402344 0.952637
+5 16 26 0 0.386963 0.959961
+5 16 27 0 0.373291 0.967773
+5 16 28 0 0.361816 0.977539
+5 16 29 0 0.351562 0.988281
+5 16 30 0 0.342773 0.999512
+5 16 31 0 0.335205 1
+5 17 0 0 0.664551 0
+5 17 1 0 0.664551 0
+5 17 2 0 0.664551 0
+5 17 3 0 0.664551 0
+5 17 4 0 0.664551 0
+5 17 5 0 0.664551 0
+5 17 6 0 0.664551 0
+5 17 7 0 0.664551 0
+5 17 8 0 0.664551 0
+5 17 9 0 0.665039 0
+5 17 10 0 0.665039 0
+5 17 11 0 0.666016 0.155273
+5 17 12 0 0.667969 0.24353
+5 17 13 0 0.669922 0.326172
+5 17 14 0 0.671387 0.413086
+5 17 15 0 0.670898 0.505371
+5 17 16 0 0.666992 0.601074
+5 17 17 0 0.658203 0.694336
+5 17 18 0 0.644531 0.779785
+5 17 19 0 0.627441 0.853516
+5 17 20 0 0.60791 0.914062
+5 17 21 0 0.572266 0.937988
+5 17 22 0 0.537109 0.94873
+5 17 23 0 0.507324 0.955566
+5 17 24 0 0.483154 0.960938
+5 17 25 0 0.460938 0.966797
+5 17 26 0 0.440674 0.972656
+5 17 27 0 0.422363 0.979492
+5 17 28 0 0.40625 0.987305
+5 17 29 0 0.391846 0.996582
+5 17 30 0 0.37915 1
+5 17 31 0 0.36792 1
+5 18 0 0 0.741211 0
+5 18 1 0 0.741211 0
+5 18 2 0 0.741211 0
+5 18 3 0 0.741211 0
+5 18 4 0 0.741211 0
+5 18 5 0 0.741211 0
+5 18 6 0 0.741211 0
+5 18 7 0 0.741211 0
+5 18 8 0 0.741211 0
+5 18 9 0 0.741699 0
+5 18 10 0 0.741699 0
+5 18 11 0 0.742188 0.0794678
+5 18 12 0 0.744141 0.211304
+5 18 13 0 0.746582 0.301758
+5 18 14 0 0.749023 0.391846
+5 18 15 0 0.750488 0.485596
+5 18 16 0 0.748535 0.583496
+5 18 17 0 0.741699 0.680176
+5 18 18 0 0.729004 0.769043
+5 18 19 0 0.711426 0.84668
+5 18 20 0 0.69043 0.910645
+5 18 21 0 0.655762 0.945801
+5 18 22 0 0.618164 0.963867
+5 18 23 0 0.584473 0.973633
+5 18 24 0 0.555176 0.979492
+5 18 25 0 0.527344 0.984863
+5 18 26 0 0.501953 0.989746
+5 18 27 0 0.478516 0.995117
+5 18 28 0 0.45752 1
+5 18 29 0 0.438477 1
+5 18 30 0 0.421631 1
+5 18 31 0 0.40625 1
+5 19 0 0 0.810059 0
+5 19 1 0 0.810059 0
+5 19 2 0 0.810059 0
+5 19 3 0 0.810059 0
+5 19 4 0 0.810059 0
+5 19 5 0 0.810059 0
+5 19 6 0 0.810059 0
+5 19 7 0 0.810059 0
+5 19 8 0 0.810059 0
+5 19 9 0 0.810547 0
+5 19 10 0 0.810547 0
+5 19 11 0 0.810547 0
+5 19 12 0 0.812012 0.166138
+5 19 13 0 0.814941 0.272217
+5 19 14 0 0.818359 0.366455
+5 19 15 0 0.820801 0.462158
+5 19 16 0 0.821289 0.561523
+5 19 17 0 0.817383 0.660156
+5 19 18 0 0.807129 0.75293
+5 19 19 0 0.791016 0.834473
+5 19 20 0 0.77002 0.901855
+5 19 21 0 0.73877 0.94873
+5 19 22 0 0.70166 0.976074
+5 19 23 0 0.665527 0.991211
+5 19 24 0 0.632324 1
+5 19 25 0 0.599609 1
+5 19 26 0 0.568848 1
+5 19 27 0 0.540039 1
+5 19 28 0 0.513672 1
+5 19 29 0 0.48999 1
+5 19 30 0 0.468262 1
+5 19 31 0 0.44873 1
+5 20 0 0 0.869629 0
+5 20 1 0 0.869629 0
+5 20 2 0 0.869629 0
+5 20 3 0 0.869629 0
+5 20 4 0 0.869629 0
+5 20 5 0 0.869629 0
+5 20 6 0 0.869629 0
+5 20 7 0 0.869629 0
+5 20 8 0 0.869629 0
+5 20 9 0 0.869629 0
+5 20 10 0 0.870117 0
+5 20 11 0 0.870117 0
+5 20 12 0 0.870605 0.0810547
+5 20 13 0 0.873535 0.237427
+5 20 14 0 0.877441 0.338623
+5 20 15 0 0.881348 0.436279
+5 20 16 0 0.883789 0.536621
+5 20 17 0 0.882812 0.636719
+5 20 18 0 0.875488 0.731934
+5 20 19 0 0.861816 0.816895
+5 20 20 0 0.841797 0.888184
+5 20 21 0 0.81543 0.944824
+5 20 22 0 0.781738 0.982422
+5 20 23 0 0.745117 1
+5 20 24 0 0.709961 1
+5 20 25 0 0.673828 1
+5 20 26 0 0.638672 1
+5 20 27 0 0.60498 1
+5 20 28 0 0.573242 1
+5 20 29 0 0.544434 1
+5 20 30 0 0.517578 1
+5 20 31 0 0.493652 1
+5 21 0 0 0.92041 0
+5 21 1 0 0.92041 0
+5 21 2 0 0.92041 0
+5 21 3 0 0.92041 0
+5 21 4 0 0.92041 0
+5 21 5 0 0.92041 0
+5 21 6 0 0.92041 0
+5 21 7 0 0.92041 0
+5 21 8 0 0.92041 0
+5 21 9 0 0.92041 0
+5 21 10 0 0.92041 0
+5 21 11 0 0.92041 0
+5 21 12 0 0.920898 0
+5 21 13 0 0.92334 0.193848
+5 21 14 0 0.927246 0.307617
+5 21 15 0 0.932129 0.408203
+5 21 16 0 0.936035 0.509277
+5 21 17 0 0.9375 0.609863
+5 21 18 0 0.933594 0.706543
+5 21 19 0 0.922852 0.794434
+5 21 20 0 0.90625 0.869141
+5 21 21 0 0.883789 0.932129
+5 21 22 0 0.854492 0.97998
+5 21 23 0 0.820801 1
+5 21 24 0 0.785645 1
+5 21 25 0 0.748047 1
+5 21 26 0 0.709473 1
+5 21 27 0 0.671387 1
+5 21 28 0 0.635254 1
+5 21 29 0 0.601074 1
+5 21 30 0 0.569824 1
+5 21 31 0 0.541016 1
+5 22 0 0 0.962402 0
+5 22 1 0 0.962402 0
+5 22 2 0 0.962402 0
+5 22 3 0 0.962402 0
+5 22 4 0 0.962402 0
+5 22 5 0 0.962402 0
+5 22 6 0 0.962402 0
+5 22 7 0 0.962402 0
+5 22 8 0 0.962402 0
+5 22 9 0 0.962402 0
+5 22 10 0 0.962402 0
+5 22 11 0 0.962402 0
+5 22 12 0 0.962891 0
+5 22 13 0 0.963867 0.131348
+5 22 14 0 0.968262 0.273682
+5 22 15 0 0.973633 0.378662
+5 22 16 0 0.979004 0.480469
+5 22 17 0 0.982422 0.581055
+5 22 18 0 0.981445 0.678223
+5 22 19 0 0.974609 0.768066
+5 22 20 0 0.960938 0.845703
+5 22 21 0 0.941406 0.912598
+5 22 22 0 0.916504 0.967285
+5 22 23 0 0.887695 1
+5 22 24 0 0.85498 1
+5 22 25 0 0.817871 1
+5 22 26 0 0.77832 1
+5 22 27 0 0.737305 1
+5 22 28 0 0.697266 1
+5 22 29 0 0.65918 1
+5 22 30 0 0.623047 1
+5 22 31 0 0.589844 1
+5 23 0 0 0.995605 0
+5 23 1 0 0.995605 0
+5 23 2 0 0.995605 0
+5 23 3 0 0.995605 0
+5 23 4 0 0.995605 0
+5 23 5 0 0.995605 0
+5 23 6 0 0.995605 0
+5 23 7 0 0.995605 0
+5 23 8 0 0.995605 0
+5 23 9 0 0.995605 0
+5 23 10 0 0.996094 0
+5 23 11 0 0.996094 0
+5 23 12 0 0.996094 0
+5 23 13 0 0.996582 0
+5 23 14 0 1 0.237061
+5 23 15 0 1 0.349121
+5 23 16 0 1 0.451904
+5 23 17 0 1 0.552246
+5 23 18 0 1 0.649902
+5 23 19 0 1 0.740234
+5 23 20 0 1 0.820312
+5 23 21 0 0.98877 0.890137
+5 23 22 0 0.967285 0.948242
+5 23 23 0 0.941895 0.993652
+5 23 24 0 0.913574 1
+5 23 25 0 0.879395 1
+5 23 26 0 0.840332 1
+5 23 27 0 0.79834 1
+5 23 28 0 0.756348 1
+5 23 29 0 0.714844 1
+5 23 30 0 0.674805 1
+5 23 31 0 0.637695 1
+5 24 0 0 1 0
+5 24 1 0 1 0
+5 24 2 0 1 0
+5 24 3 0 1 0
+5 24 4 0 1 0
+5 24 5 0 1 0
+5 24 6 0 1 0
+5 24 7 0 1 0
+5 24 8 0 1 0
+5 24 9 0 1 0
+5 24 10 0 1 0
+5 24 11 0 1 0
+5 24 12 0 1 0
+5 24 13 0 1 0
+5 24 14 0 1 0.195801
+5 24 15 0 1 0.319336
+5 24 16 0 1 0.424072
+5 24 17 0 1 0.524414
+5 24 18 0 1 0.621094
+5 24 19 0 1 0.711426
+5 24 20 0 1 0.792969
+5 24 21 0 1 0.864746
+5 24 22 0 1 0.92627
+5 24 23 0 0.986816 0.975586
+5 24 24 0 0.961914 1
+5 24 25 0 0.931641 1
+5 24 26 0 0.89502 1
+5 24 27 0 0.854004 1
+5 24 28 0 0.810547 1
+5 24 29 0 0.76709 1
+5 24 30 0 0.724609 1
+5 24 31 0 0.683594 1
+5 25 0 0 1 0
+5 25 1 0 1 0
+5 25 2 0 1 0
+5 25 3 0 1 0
+5 25 4 0 1 0
+5 25 5 0 1 0
+5 25 6 0 1 0
+5 25 7 0 1 0
+5 25 8 0 1 0
+5 25 9 0 1 0
+5 25 10 0 1 0
+5 25 11 0 1 0
+5 25 12 0 1 0
+5 25 13 0 1 0
+5 25 14 0 1 0.13562
+5 25 15 0 1 0.286133
+5 25 16 0 1 0.394043
+5 25 17 0 1 0.493896
+5 25 18 0 1 0.589844
+5 25 19 0 1 0.679688
+5 25 20 0 1 0.761719
+5 25 21 0 1 0.835449
+5 25 22 0 1 0.899414
+5 25 23 0 1 0.952148
+5 25 24 0 1 0.995605
+5 25 25 0 0.979492 1
+5 25 26 0 0.946777 1
+5 25 27 0 0.907715 1
+5 25 28 0 0.865234 1
+5 25 29 0 0.820312 1
+5 25 30 0 0.775879 1
+5 25 31 0 0.732422 1
+5 26 0 0 1 0
+5 26 1 0 1 0
+5 26 2 0 1 0
+5 26 3 0 1 0
+5 26 4 0 1 0
+5 26 5 0 1 0
+5 26 6 0 1 0
+5 26 7 0 1 0
+5 26 8 0 1 0
+5 26 9 0 1 0
+5 26 10 0 1 0
+5 26 11 0 1 0
+5 26 12 0 1 0
+5 26 13 0 1 0
+5 26 14 0 1 0
+5 26 15 0 1 0.247559
+5 26 16 0 1 0.361328
+5 26 17 0 1 0.46167
+5 26 18 0 1 0.556641
+5 26 19 0 1 0.645508
+5 26 20 0 1 0.727539
+5 26 21 0 1 0.802246
+5 26 22 0 1 0.868652
+5 26 23 0 1 0.923828
+5 26 24 0 1 0.970215
+5 26 25 0 1 1
+5 26 26 0 0.994629 1
+5 26 27 0 0.958984 1
+5 26 28 0 0.918457 1
+5 26 29 0 0.874023 1
+5 26 30 0 0.828125 1
+5 26 31 0 0.782227 1
+5 27 0 0 1 0
+5 27 1 0 1 0
+5 27 2 0 1 0
+5 27 3 0 1 0
+5 27 4 0 1 0
+5 27 5 0 1 0
+5 27 6 0 1 0
+5 27 7 0 1 0
+5 27 8 0 1 0
+5 27 9 0 1 0
+5 27 10 0 1 0
+5 27 11 0 1 0
+5 27 12 0 1 0
+5 27 13 0 1 0
+5 27 14 0 1 0
+5 27 15 0 1 0.200073
+5 27 16 0 1 0.326172
+5 27 17 0 1 0.427734
+5 27 18 0 1 0.521484
+5 27 19 0 1 0.609375
+5 27 20 0 1 0.69043
+5 27 21 0 1 0.765625
+5 27 22 0 1 0.833008
+5 27 23 0 1 0.890625
+5 27 24 0 1 0.939941
+5 27 25 0 1 0.985352
+5 27 26 0 1 1
+5 27 27 0 1 1
+5 27 28 0 0.968262 1
+5 27 29 0 0.925293 1
+5 27 30 0 0.879883 1
+5 27 31 0 0.833008 1
+5 28 0 0 1 0
+5 28 1 0 1 0
+5 28 2 0 1 0
+5 28 3 0 1 0
+5 28 4 0 1 0
+5 28 5 0 1 0
+5 28 6 0 1 0
+5 28 7 0 1 0
+5 28 8 0 1 0
+5 28 9 0 1 0
+5 28 10 0 1 0
+5 28 11 0 1 0
+5 28 12 0 1 0
+5 28 13 0 1 0
+5 28 14 0 1 0
+5 28 15 0 1 0.129883
+5 28 16 0 1 0.287109
+5 28 17 0 1 0.391602
+5 28 18 0 1 0.484863
+5 28 19 0 1 0.571289
+5 28 20 0 1 0.651367
+5 28 21 0 1 0.726074
+5 28 22 0 1 0.793945
+5 28 23 0 1 0.853027
+5 28 24 0 1 0.904297
+5 28 25 0 1 0.952637
+5 28 26 0 1 0.997559
+5 28 27 0 1 1
+5 28 28 0 1 1
+5 28 29 0 0.974121 1
+5 28 30 0 0.930664 1
+5 28 31 0 0.884277 1
+5 29 0 0 1 0
+5 29 1 0 1 0
+5 29 2 0 1 0
+5 29 3 0 1 0
+5 29 4 0 1 0
+5 29 5 0 1 0
+5 29 6 0 1 0
+5 29 7 0 1 0
+5 29 8 0 1 0
+5 29 9 0 1 0
+5 29 10 0 1 0
+5 29 11 0 1 0
+5 29 12 0 1 0
+5 29 13 0 1 0
+5 29 14 0 1 0
+5 29 15 0 1 0
+5 29 16 0 1 0.242188
+5 29 17 0 1 0.353271
+5 29 18 0 1 0.446533
+5 29 19 0 1 0.531738
+5 29 20 0 1 0.609863
+5 29 21 0 1 0.683594
+5 29 22 0 1 0.751465
+5 29 23 0 1 0.811035
+5 29 24 0 1 0.86377
+5 29 25 0 1 0.914551
+5 29 26 0 1 0.962402
+5 29 27 0 1 1
+5 29 28 0 1 1
+5 29 29 0 1 1
+5 29 30 0 0.979004 1
+5 29 31 0 0.93457 1
+5 30 0 0 1 0
+5 30 1 0 1 0
+5 30 2 0 1 0
+5 30 3 0 1 0
+5 30 4 0 1 0
+5 30 5 0 1 0
+5 30 6 0 1 0
+5 30 7 0 1 0
+5 30 8 0 1 0
+5 30 9 0 1 0
+5 30 10 0 1 0
+5 30 11 0 1 0
+5 30 12 0 1 0
+5 30 13 0 1 0
+5 30 14 0 1 0
+5 30 15 0 1 0
+5 30 16 0 1 0.186279
+5 30 17 0 1 0.312012
+5 30 18 0 1 0.406738
+5 30 19 0 1 0.490479
+5 30 20 0 1 0.566895
+5 30 21 0 1 0.63916
+5 30 22 0 1 0.705566
+5 30 23 0 1 0.765137
+5 30 24 0 1 0.818848
+5 30 25 0 1 0.870605
+5 30 26 0 1 0.921387
+5 30 27 0 1 0.96875
+5 30 28 0 1 1
+5 30 29 0 1 1
+5 30 30 0 1 1
+5 30 31 0 0.98291 1
+5 31 0 0 1 0
+5 31 1 0 1 0
+5 31 2 0 1 0
+5 31 3 0 1 0
+5 31 4 0 1 0
+5 31 5 0 1 0
+5 31 6 0 1 0
+5 31 7 0 1 0
+5 31 8 0 1 0
+5 31 9 0 1 0
+5 31 10 0 1 0
+5 31 11 0 1 0
+5 31 12 0 1 0
+5 31 13 0 1 0
+5 31 14 0 1 0
+5 31 15 0 1 0
+5 31 16 0 1 0.0895996
+5 31 17 0 1 0.266846
+5 31 18 0 1 0.365234
+5 31 19 0 1 0.448486
+5 31 20 0 1 0.523438
+5 31 21 0 1 0.593262
+5 31 22 0 1 0.658203
+5 31 23 0 1 0.716797
+5 31 24 0 1 0.77002
+5 31 25 0 1 0.823242
+5 31 26 0 1 0.875488
+5 31 27 0 1 0.92627
+5 31 28 0 1 0.973145
+5 31 29 0 1 1
+5 31 30 0 1 1
+5 31 31 0 1 1
+6 0 0 0.108032 0.0173492 0
+6 0 1 0.108215 0.0175781 0
+6 0 2 0.108215 0.0170898 0.0209198
+6 0 3 0.107361 0.0150146 0.0370483
+6 0 4 0.104553 0.0122375 0.0515137
+6 0 5 0.0910645 0.0223083 0.0612488
+6 0 6 0.0805054 0.0290527 0.0713501
+6 0 7 0.0748901 0.0314636 0.0905762
+6 0 8 0.062439 0.0353394 0.11499
+6 0 9 0 0.0413513 0.146362
+6 0 10 0 0.050415 0.187622
+6 0 11 0 0.0628662 0.240723
+6 0 12 0 0.0779419 0.303467
+6 0 13 0 0.0952759 0.374512
+6 0 14 0 0.114624 0.452637
+6 0 15 0 0.135376 0.536133
+6 0 16 0 0.156982 0.622559
+6 0 17 0 0.177734 0.706055
+6 0 18 0 0.197021 0.782715
+6 0 19 0 0.213867 0.850098
+6 0 20 0 0.223267 0.887695
+6 0 21 0 0.224976 0.89502
+6 0 22 0 0.226929 0.902832
+6 0 23 0 0.228882 0.910645
+6 0 24 0 0.230835 0.918945
+6 0 25 0 0.233032 0.927246
+6 0 26 0 0.235474 0.937012
+6 0 27 0 0.238159 0.947754
+6 0 28 0 0.241211 0.959961
+6 0 29 0 0.244507 0.973145
+6 0 30 0 0.247803 0.986328
+6 0 31 0 0.251221 1
+6 1 0 0.107239 0.0244141 0
+6 1 1 0.107483 0.0245514 0
+6 1 2 0.107544 0.0242767 0.020401
+6 1 3 0.106934 0.0230255 0.0367126
+6 1 4 0.104309 0.0213165 0.0513611
+6 1 5 0.0912476 0.0256042 0.0614014
+6 1 6 0.0803223 0.0308685 0.0712891
+6 1 7 0.074707 0.0330505 0.0905762
+6 1 8 0.0622253 0.0366211 0.11499
+6 1 9 0 0.0423584 0.146362
+6 1 10 0 0.0511475 0.187622
+6 1 11 0 0.0634155 0.240723
+6 1 12 0 0.0783691 0.303467
+6 1 13 0 0.0955811 0.374512
+6 1 14 0 0.114807 0.452637
+6 1 15 0 0.135498 0.536133
+6 1 16 0 0.157104 0.622559
+6 1 17 0 0.177856 0.706055
+6 1 18 0 0.197021 0.782715
+6 1 19 0 0.213867 0.850098
+6 1 20 0 0.223267 0.887695
+6 1 21 0 0.225098 0.89502
+6 1 22 0 0.226929 0.902832
+6 1 23 0 0.228882 0.910645
+6 1 24 0 0.230957 0.918945
+6 1 25 0 0.233032 0.927246
+6 1 26 0 0.235474 0.937012
+6 1 27 0 0.238159 0.947754
+6 1 28 0 0.241211 0.959961
+6 1 29 0 0.244507 0.973145
+6 1 30 0 0.247803 0.986328
+6 1 31 0 0.251221 1
+6 2 0 0.105774 0.0318909 0
+6 2 1 0.106018 0.0320129 0
+6 2 2 0.106262 0.0318604 0.0196533
+6 2 3 0.106018 0.0310669 0.0361328
+6 2 4 0.103821 0.0296783 0.0509949
+6 2 5 0.0916138 0.0303497 0.0617371
+6 2 6 0.0800171 0.0337219 0.0712891
+6 2 7 0.0744019 0.035614 0.0905151
+6 2 8 0.0617981 0.0387268 0.11499
+6 2 9 0 0.0440063 0.146362
+6 2 10 0 0.0523987 0.1875
+6 2 11 0 0.0643311 0.240723
+6 2 12 0 0.0790405 0.303467
+6 2 13 0 0.0961304 0.374512
+6 2 14 0 0.115234 0.452637
+6 2 15 0 0.135742 0.536133
+6 2 16 0 0.157227 0.622559
+6 2 17 0 0.177979 0.706055
+6 2 18 0 0.197144 0.782715
+6 2 19 0 0.213989 0.850098
+6 2 20 0 0.223389 0.887695
+6 2 21 0 0.225098 0.89502
+6 2 22 0 0.227051 0.902832
+6 2 23 0 0.229004 0.910645
+6 2 24 0 0.230957 0.918945
+6 2 25 0 0.233154 0.927246
+6 2 26 0 0.235474 0.937012
+6 2 27 0 0.238159 0.947754
+6 2 28 0 0.241211 0.959961
+6 2 29 0 0.244507 0.973145
+6 2 30 0 0.247803 0.986328
+6 2 31 0 0.251221 1
+6 3 0 0.102783 0.0402222 0
+6 3 1 0.103088 0.0403748 0
+6 3 2 0.103455 0.0403748 0.0189362
+6 3 3 0.103821 0.0400391 0.0351562
+6 3 4 0.102417 0.039032 0.0502014
+6 3 5 0.0923462 0.0372314 0.0623169
+6 3 6 0.0795288 0.038147 0.071228
+6 3 7 0.0738525 0.0396423 0.0905151
+6 3 8 0.0610352 0.0422058 0.114929
+6 3 9 0 0.046814 0.146362
+6 3 10 0 0.0545959 0.1875
+6 3 11 0 0.06604 0.240723
+6 3 12 0 0.0803223 0.303467
+6 3 13 0 0.0970459 0.374512
+6 3 14 0 0.115906 0.452637
+6 3 15 0 0.136353 0.536133
+6 3 16 0 0.157593 0.622559
+6 3 17 0 0.178345 0.706055
+6 3 18 0 0.197388 0.782715
+6 3 19 0 0.214233 0.850098
+6 3 20 0 0.223511 0.887695
+6 3 21 0 0.22522 0.89502
+6 3 22 0 0.227173 0.902832
+6 3 23 0 0.229004 0.910645
+6 3 24 0 0.230957 0.918945
+6 3 25 0 0.233154 0.927246
+6 3 26 0 0.235596 0.937012
+6 3 27 0 0.238281 0.947754
+6 3 28 0 0.241333 0.959961
+6 3 29 0 0.244507 0.973145
+6 3 30 0 0.247925 0.986328
+6 3 31 0 0.251221 1
+6 4 0 0.0968628 0.0490723 0
+6 4 1 0.0971069 0.0492249 0
+6 4 2 0.0974731 0.0493774 0.0201263
+6 4 3 0.0981445 0.0495911 0.033905
+6 4 4 0.0990601 0.0497131 0.0485535
+6 4 5 0.0934448 0.0474854 0.0632324
+6 4 6 0.0784912 0.0447998 0.071106
+6 4 7 0.0726929 0.0458374 0.0904541
+6 4 8 0.0595398 0.0477295 0.114929
+6 4 9 0 0.0514832 0.146362
+6 4 10 0 0.0584106 0.1875
+6 4 11 0 0.0690308 0.240723
+6 4 12 0 0.0826416 0.303467
+6 4 13 0 0.0988159 0.374512
+6 4 14 0 0.117188 0.452637
+6 4 15 0 0.137329 0.536133
+6 4 16 0 0.158325 0.622559
+6 4 17 0 0.178833 0.706055
+6 4 18 0 0.197876 0.782715
+6 4 19 0 0.214478 0.850098
+6 4 20 0 0.223755 0.887695
+6 4 21 0 0.225464 0.89502
+6 4 22 0 0.227295 0.902832
+6 4 23 0 0.229248 0.910645
+6 4 24 0 0.231079 0.918945
+6 4 25 0 0.233276 0.927246
+6 4 26 0 0.235718 0.937012
+6 4 27 0 0.238281 0.947754
+6 4 28 0 0.241333 0.959961
+6 4 29 0 0.244507 0.973145
+6 4 30 0 0.247925 0.986328
+6 4 31 0 0.251465 1
+6 5 0 0.0878906 0.0575562 0.0161438
+6 5 1 0.0878296 0.0575867 0.0179291
+6 5 2 0.0877075 0.0576477 0.0256958
+6 5 3 0.0875854 0.0578308 0.0343323
+6 5 4 0.0878296 0.0584106 0.0453186
+6 5 5 0.0898438 0.0601807 0.061554
+6 5 6 0.076416 0.0543823 0.0708618
+6 5 7 0.0704346 0.0550232 0.090271
+6 5 8 0.0564575 0.0562134 0.114868
+6 5 9 0 0.05896 0.14624
+6 5 10 0 0.0647583 0.187378
+6 5 11 0 0.0743408 0.240601
+6 5 12 0 0.086792 0.303467
+6 5 13 0 0.10199 0.374268
+6 5 14 0 0.119629 0.452637
+6 5 15 0 0.13916 0.536133
+6 5 16 0 0.15979 0.622559
+6 5 17 0 0.179932 0.706055
+6 5 18 0 0.198608 0.782715
+6 5 19 0 0.21521 0.850098
+6 5 20 0 0.224243 0.887695
+6 5 21 0 0.22583 0.89502
+6 5 22 0 0.227661 0.902832
+6 5 23 0 0.229492 0.910645
+6 5 24 0 0.231323 0.918945
+6 5 25 0 0.233521 0.927734
+6 5 26 0 0.23584 0.937012
+6 5 27 0 0.238525 0.947754
+6 5 28 0 0.241455 0.959961
+6 5 29 0 0.244629 0.973145
+6 5 30 0 0.248047 0.986328
+6 5 31 0 0.251465 1
+6 6 0 0.0834961 0.0717773 0.023468
+6 6 1 0.0835571 0.0718384 0.023468
+6 6 2 0.0831909 0.0717163 0.0279083
+6 6 3 0.0823975 0.0714722 0.0356445
+6 6 4 0.0808716 0.0708618 0.0451965
+6 6 5 0.0778809 0.0697632 0.0569458
+6 6 6 0.0720825 0.0675049 0.0703125
+6 6 7 0.0656128 0.0678101 0.0899048
+6 6 8 0.0496521 0.0682983 0.114685
+6 6 9 0 0.0701294 0.146118
+6 6 10 0 0.0747681 0.187256
+6 6 11 0 0.0830078 0.240479
+6 6 12 0 0.0939941 0.303223
+6 6 13 0 0.107727 0.374268
+6 6 14 0 0.124084 0.452637
+6 6 15 0 0.142578 0.536133
+6 6 16 0 0.162354 0.622559
+6 6 17 0 0.181885 0.706055
+6 6 18 0 0.200195 0.782715
+6 6 19 0 0.216431 0.850586
+6 6 20 0 0.225342 0.888184
+6 6 21 0 0.226685 0.89502
+6 6 22 0 0.228271 0.902832
+6 6 23 0 0.22998 0.910645
+6 6 24 0 0.231812 0.918945
+6 6 25 0 0.233887 0.927734
+6 6 26 0 0.236206 0.937012
+6 6 27 0 0.23877 0.947754
+6 6 28 0 0.241699 0.959961
+6 6 29 0 0.244873 0.973145
+6 6 30 0 0.248169 0.986328
+6 6 31 0 0.251709 1
+6 7 0 0.071228 0.0874023 0.0221405
+6 7 1 0.071228 0.0874023 0.0221558
+6 7 2 0.071228 0.0874634 0.0221558
+6 7 3 0.0705566 0.0871582 0.0310516
+6 7 4 0.0691528 0.0866089 0.0414734
+6 7 5 0.0665283 0.0856323 0.0538635
+6 7 6 0.0623169 0.0848999 0.0691528
+6 7 7 0.0542603 0.085022 0.0891113
+6 7 8 0.0280457 0.085144 0.114258
+6 7 9 0 0.0860596 0.145874
+6 7 10 0 0.0896606 0.187012
+6 7 11 0 0.0966187 0.240356
+6 7 12 0 0.105896 0.303223
+6 7 13 0 0.117676 0.374268
+6 7 14 0 0.13208 0.452637
+6 7 15 0 0.148804 0.536133
+6 7 16 0 0.167236 0.622559
+6 7 17 0 0.185791 0.706055
+6 7 18 0 0.203247 0.782715
+6 7 19 0 0.218872 0.850586
+6 7 20 0 0.227295 0.888184
+6 7 21 0 0.228271 0.895508
+6 7 22 0 0.229492 0.90332
+6 7 23 0 0.231079 0.911133
+6 7 24 0 0.232788 0.918945
+6 7 25 0 0.234619 0.927734
+6 7 26 0 0.236816 0.937012
+6 7 27 0 0.23938 0.947754
+6 7 28 0 0.242188 0.959961
+6 7 29 0 0.245361 0.973145
+6 7 30 0 0.248535 0.986328
+6 7 31 0 0.251953 1
+6 8 0 0.0436096 0.107605 0.0206451
+6 8 1 0.0436401 0.107666 0.0206451
+6 8 2 0.0437012 0.107666 0.0206604
+6 8 3 0.0437012 0.107727 0.0217743
+6 8 4 0.0418701 0.107605 0.0358276
+6 8 5 0.0379944 0.107483 0.0500793
+6 8 6 0.0282288 0.107483 0.0667114
+6 8 7 0 0.107605 0.0873413
+6 8 8 0 0.107666 0.113159
+6 8 9 0 0.108093 0.145386
+6 8 10 0 0.11084 0.186646
+6 8 11 0 0.116821 0.239868
+6 8 12 0 0.124451 0.302979
+6 8 13 0 0.133911 0.374268
+6 8 14 0 0.145752 0.452637
+6 8 15 0 0.160034 0.536133
+6 8 16 0 0.17627 0.622559
+6 8 17 0 0.192871 0.706055
+6 8 18 0 0.208862 0.783203
+6 8 19 0 0.223389 0.850586
+6 8 20 0 0.230957 0.888184
+6 8 21 0 0.231201 0.895508
+6 8 22 0 0.231934 0.90332
+6 8 23 0 0.233154 0.911133
+6 8 24 0 0.234497 0.918945
+6 8 25 0 0.236206 0.927734
+6 8 26 0 0.238159 0.9375
+6 8 27 0 0.240479 0.948242
+6 8 28 0 0.243164 0.959961
+6 8 29 0 0.246094 0.973145
+6 8 30 0 0.249268 0.986328
+6 8 31 0 0.252441 1
+6 9 0 0 0.135742 0.0189972
+6 9 1 0 0.135742 0.0189972
+6 9 2 0 0.135742 0.0190125
+6 9 3 0 0.135742 0.0190277
+6 9 4 0 0.135864 0.0228424
+6 9 5 0 0.135864 0.0434875
+6 9 6 0 0.135986 0.0623474
+6 9 7 0 0.13623 0.0841675
+6 9 8 0 0.136475 0.111084
+6 9 9 0 0.137085 0.144409
+6 9 10 0 0.139404 0.186035
+6 9 11 0 0.144775 0.239258
+6 9 12 0 0.151123 0.30249
+6 9 13 0 0.158447 0.374023
+6 9 14 0 0.16748 0.452393
+6 9 15 0 0.178589 0.536133
+6 9 16 0 0.19165 0.623047
+6 9 17 0 0.205444 0.706543
+6 9 18 0 0.219116 0.783203
+6 9 19 0 0.231812 0.850586
+6 9 20 0 0.237915 0.888672
+6 9 21 0 0.236694 0.895996
+6 9 22 0 0.236572 0.903809
+6 9 23 0 0.236938 0.911621
+6 9 24 0 0.237793 0.919434
+6 9 25 0 0.239014 0.927734
+6 9 26 0 0.240601 0.9375
+6 9 27 0 0.242554 0.948242
+6 9 28 0 0.244995 0.960449
+6 9 29 0 0.247681 0.973145
+6 9 30 0 0.250732 0.986816
+6 9 31 0 0.253662 1
+6 10 0 0 0.172485 0.0162048
+6 10 1 0 0.172485 0.0162048
+6 10 2 0 0.172485 0.0162354
+6 10 3 0 0.172485 0.0162506
+6 10 4 0 0.172607 0.0163116
+6 10 5 0 0.172607 0.0269928
+6 10 6 0 0.172607 0.0549622
+6 10 7 0 0.172729 0.079834
+6 10 8 0 0.172974 0.108337
+6 10 9 0 0.173706 0.143066
+6 10 10 0 0.175903 0.185425
+6 10 11 0 0.180664 0.238525
+6 10 12 0 0.186035 0.301758
+6 10 13 0 0.191772 0.373535
+6 10 14 0 0.198364 0.452393
+6 10 15 0 0.206055 0.536133
+6 10 16 0 0.215454 0.623047
+6 10 17 0 0.225586 0.706543
+6 10 18 0 0.235962 0.783691
+6 10 19 0 0.245972 0.851074
+6 10 20 0 0.249756 0.889648
+6 10 21 0 0.246338 0.896973
+6 10 22 0 0.244507 0.904297
+6 10 23 0 0.243774 0.912109
+6 10 24 0 0.243652 0.919922
+6 10 25 0 0.244019 0.928223
+6 10 26 0 0.244995 0.937988
+6 10 27 0 0.246338 0.94873
+6 10 28 0 0.248169 0.960449
+6 10 29 0 0.250488 0.973633
+6 10 30 0 0.25293 0.986816
+6 10 31 0 0.255859 1
+6 11 0 0 0.220459 0.0069046
+6 11 1 0 0.220459 0.00693893
+6 11 2 0 0.220459 0.00699997
+6 11 3 0 0.220459 0.00711441
+6 11 4 0 0.220581 0.00731659
+6 11 5 0 0.220581 0.00768661
+6 11 6 0 0.220703 0.0361938
+6 11 7 0 0.220581 0.0723877
+6 11 8 0 0.220459 0.104919
+6 11 9 0 0.220825 0.141846
+6 11 10 0 0.22229 0.185303
+6 11 11 0 0.225586 0.237915
+6 11 12 0 0.22998 0.300781
+6 11 13 0 0.234497 0.372803
+6 11 14 0 0.238892 0.451904
+6 11 15 0 0.243652 0.536133
+6 11 16 0 0.24939 0.623047
+6 11 17 0 0.255371 0.707031
+6 11 18 0 0.261719 0.783691
+6 11 19 0 0.268066 0.851562
+6 11 20 0 0.268799 0.891113
+6 11 21 0 0.261963 0.897949
+6 11 22 0 0.257568 0.905273
+6 11 23 0 0.254883 0.913086
+6 11 24 0 0.253418 0.920898
+6 11 25 0 0.252441 0.929199
+6 11 26 0 0.252197 0.938477
+6 11 27 0 0.252686 0.949219
+6 11 28 0 0.253662 0.961426
+6 11 29 0 0.255371 0.974121
+6 11 30 0 0.25708 0.987305
+6 11 31 0 0.259277 1
+6 12 0 0 0.278809 0
+6 12 1 0 0.278809 0
+6 12 2 0 0.278809 0
+6 12 3 0 0.278809 0
+6 12 4 0 0.279053 0
+6 12 5 0 0.279053 0
+6 12 6 0 0.279053 0
+6 12 7 0 0.279297 0.0523071
+6 12 8 0 0.279053 0.0969238
+6 12 9 0 0.279297 0.138428
+6 12 10 0 0.279785 0.184082
+6 12 11 0 0.28125 0.237061
+6 12 12 0 0.283936 0.299561
+6 12 13 0 0.287354 0.371582
+6 12 14 0 0.290039 0.451172
+6 12 15 0 0.292236 0.535645
+6 12 16 0 0.294434 0.623535
+6 12 17 0 0.296387 0.70752
+6 12 18 0 0.29834 0.784668
+6 12 19 0 0.300293 0.852051
+6 12 20 0 0.297119 0.894043
+6 12 21 0 0.285889 0.900391
+6 12 22 0 0.278076 0.907227
+6 12 23 0 0.272705 0.914551
+6 12 24 0 0.268799 0.922363
+6 12 25 0 0.266113 0.930664
+6 12 26 0 0.26416 0.939941
+6 12 27 0 0.263184 0.950195
+6 12 28 0 0.262939 0.962402
+6 12 29 0 0.263184 0.974609
+6 12 30 0 0.26416 0.987793
+6 12 31 0 0.265381 1
+6 13 0 0 0.345459 0
+6 13 1 0 0.345459 0
+6 13 2 0 0.345459 0
+6 13 3 0 0.345459 0
+6 13 4 0 0.345459 0
+6 13 5 0 0.345459 0
+6 13 6 0 0.345459 0
+6 13 7 0 0.345703 0
+6 13 8 0 0.345703 0.076355
+6 13 9 0 0.345947 0.128906
+6 13 10 0 0.346191 0.179077
+6 13 11 0 0.346924 0.234131
+6 13 12 0 0.348145 0.297363
+6 13 13 0 0.350098 0.369385
+6 13 14 0 0.351562 0.449463
+6 13 15 0 0.351807 0.535156
+6 13 16 0 0.351074 0.623535
+6 13 17 0 0.349121 0.708008
+6 13 18 0 0.346436 0.785645
+6 13 19 0 0.343994 0.853516
+6 13 20 0 0.336914 0.897949
+6 13 21 0 0.320068 0.903809
+6 13 22 0 0.307617 0.910645
+6 13 23 0 0.298584 0.91748
+6 13 24 0 0.291992 0.924805
+6 13 25 0 0.286621 0.933105
+6 13 26 0 0.282227 0.941895
+6 13 27 0 0.279053 0.952148
+6 13 28 0 0.276855 0.963867
+6 13 29 0 0.275391 0.976074
+6 13 30 0 0.274902 0.989258
+6 13 31 0 0.274658 1
+6 14 0 0 0.419189 0
+6 14 1 0 0.419189 0
+6 14 2 0 0.419189 0
+6 14 3 0 0.419189 0
+6 14 4 0 0.419434 0
+6 14 5 0 0.419434 0
+6 14 6 0 0.419434 0
+6 14 7 0 0.419434 0
+6 14 8 0 0.419678 0
+6 14 9 0 0.419922 0.108215
+6 14 10 0 0.42041 0.167847
+6 14 11 0 0.420898 0.227051
+6 14 12 0 0.421875 0.292236
+6 14 13 0 0.422607 0.365234
+6 14 14 0 0.422852 0.446289
+6 14 15 0 0.421875 0.532715
+6 14 16 0 0.418701 0.622559
+6 14 17 0 0.41333 0.708008
+6 14 18 0 0.406494 0.786621
+6 14 19 0 0.399658 0.85498
+6 14 20 0 0.388916 0.90332
+6 14 21 0 0.365479 0.909668
+6 14 22 0 0.347656 0.916016
+6 14 23 0 0.334229 0.922363
+6 14 24 0 0.323975 0.929199
+6 14 25 0 0.31543 0.937012
+6 14 26 0 0.308105 0.945312
+6 14 27 0 0.302002 0.955078
+6 14 28 0 0.297363 0.966309
+6 14 29 0 0.293457 0.978516
+6 14 30 0 0.290771 0.991211
+6 14 31 0 0.288818 1
+6 15 0 0 0.498779 0
+6 15 1 0 0.498779 0
+6 15 2 0 0.498779 0
+6 15 3 0 0.498779 0
+6 15 4 0 0.498779 0
+6 15 5 0 0.498779 0
+6 15 6 0 0.498779 0
+6 15 7 0 0.498779 0
+6 15 8 0 0.499023 0
+6 15 9 0 0.499268 0.0478821
+6 15 10 0 0.499756 0.146606
+6 15 11 0 0.500488 0.213623
+6 15 12 0 0.501465 0.282471
+6 15 13 0 0.502441 0.357422
+6 15 14 0 0.502441 0.439941
+6 15 15 0 0.500488 0.52832
+6 15 16 0 0.496094 0.619629
+6 15 17 0 0.488281 0.707031
+6 15 18 0 0.477783 0.786621
+6 15 19 0 0.466553 0.855957
+6 15 20 0 0.453369 0.910156
+6 15 21 0 0.423096 0.91748
+6 15 22 0 0.39917 0.923828
+6 15 23 0 0.380859 0.929688
+6 15 24 0 0.366455 0.936035
+6 15 25 0 0.35376 0.942871
+6 15 26 0 0.342773 0.951172
+6 15 27 0 0.333008 0.959961
+6 15 28 0 0.325195 0.970703
+6 15 29 0 0.318604 0.982422
+6 15 30 0 0.313232 0.994629
+6 15 31 0 0.308594 1
+6 16 0 0 0.582031 0
+6 16 1 0 0.582031 0
+6 16 2 0 0.582031 0
+6 16 3 0 0.582031 0
+6 16 4 0 0.582031 0
+6 16 5 0 0.58252 0
+6 16 6 0 0.58252 0
+6 16 7 0 0.58252 0
+6 16 8 0 0.58252 0
+6 16 9 0 0.58252 0
+6 16 10 0 0.583008 0.103699
+6 16 11 0 0.583984 0.191406
+6 16 12 0 0.585449 0.266602
+6 16 13 0 0.586426 0.344727
+6 16 14 0 0.587402 0.429199
+6 16 15 0 0.585938 0.519531
+6 16 16 0 0.581055 0.612793
+6 16 17 0 0.571777 0.703125
+6 16 18 0 0.558594 0.785156
+6 16 19 0 0.543945 0.855957
+6 16 20 0 0.527832 0.914551
+6 16 21 0 0.49292 0.927246
+6 16 22 0 0.462891 0.93457
+6 16 23 0 0.438965 0.940918
+6 16 24 0 0.419678 0.946289
+6 16 25 0 0.402588 0.952637
+6 16 26 0 0.386963 0.959961
+6 16 27 0 0.373535 0.967773
+6 16 28 0 0.361816 0.977539
+6 16 29 0 0.351562 0.988281
+6 16 30 0 0.342773 0.999512
+6 16 31 0 0.335205 1
+6 17 0 0 0.664551 0
+6 17 1 0 0.664551 0
+6 17 2 0 0.664551 0
+6 17 3 0 0.664551 0
+6 17 4 0 0.664551 0
+6 17 5 0 0.664551 0
+6 17 6 0 0.664551 0
+6 17 7 0 0.664551 0
+6 17 8 0 0.664551 0
+6 17 9 0 0.665039 0
+6 17 10 0 0.665039 0
+6 17 11 0 0.666016 0.155273
+6 17 12 0 0.667969 0.24353
+6 17 13 0 0.669922 0.326172
+6 17 14 0 0.671387 0.413086
+6 17 15 0 0.670898 0.505371
+6 17 16 0 0.666992 0.601074
+6 17 17 0 0.658203 0.694336
+6 17 18 0 0.644531 0.779785
+6 17 19 0 0.627441 0.853516
+6 17 20 0 0.608398 0.914062
+6 17 21 0 0.572266 0.937988
+6 17 22 0 0.537109 0.94873
+6 17 23 0 0.507324 0.955566
+6 17 24 0 0.483154 0.961426
+6 17 25 0 0.460938 0.966797
+6 17 26 0 0.440674 0.972656
+6 17 27 0 0.422363 0.979492
+6 17 28 0 0.40625 0.987305
+6 17 29 0 0.391846 0.996582
+6 17 30 0 0.37915 1
+6 17 31 0 0.36792 1
+6 18 0 0 0.741211 0
+6 18 1 0 0.741211 0
+6 18 2 0 0.741211 0
+6 18 3 0 0.741211 0
+6 18 4 0 0.741211 0
+6 18 5 0 0.741211 0
+6 18 6 0 0.741211 0
+6 18 7 0 0.741211 0
+6 18 8 0 0.741211 0
+6 18 9 0 0.741699 0
+6 18 10 0 0.741699 0
+6 18 11 0 0.742188 0.0795898
+6 18 12 0 0.744141 0.211304
+6 18 13 0 0.746582 0.302002
+6 18 14 0 0.749023 0.391846
+6 18 15 0 0.750488 0.485596
+6 18 16 0 0.748535 0.583496
+6 18 17 0 0.741699 0.680176
+6 18 18 0 0.729004 0.769043
+6 18 19 0 0.711426 0.84668
+6 18 20 0 0.69043 0.910645
+6 18 21 0 0.655762 0.945801
+6 18 22 0 0.618164 0.963867
+6 18 23 0 0.584473 0.973633
+6 18 24 0 0.555176 0.97998
+6 18 25 0 0.527344 0.984863
+6 18 26 0 0.501953 0.989746
+6 18 27 0 0.478516 0.995117
+6 18 28 0 0.45752 1
+6 18 29 0 0.438477 1
+6 18 30 0 0.421631 1
+6 18 31 0 0.40625 1
+6 19 0 0 0.810059 0
+6 19 1 0 0.810059 0
+6 19 2 0 0.810059 0
+6 19 3 0 0.810059 0
+6 19 4 0 0.810059 0
+6 19 5 0 0.810059 0
+6 19 6 0 0.810059 0
+6 19 7 0 0.810059 0
+6 19 8 0 0.810059 0
+6 19 9 0 0.810547 0
+6 19 10 0 0.810547 0
+6 19 11 0 0.810547 0
+6 19 12 0 0.812012 0.166138
+6 19 13 0 0.814941 0.272217
+6 19 14 0 0.818359 0.366455
+6 19 15 0 0.820801 0.462158
+6 19 16 0 0.821777 0.561523
+6 19 17 0 0.817383 0.660156
+6 19 18 0 0.807129 0.75293
+6 19 19 0 0.791016 0.834473
+6 19 20 0 0.77002 0.901855
+6 19 21 0 0.73877 0.94873
+6 19 22 0 0.70166 0.976074
+6 19 23 0 0.665527 0.991211
+6 19 24 0 0.632324 1
+6 19 25 0 0.600098 1
+6 19 26 0 0.568848 1
+6 19 27 0 0.540039 1
+6 19 28 0 0.513672 1
+6 19 29 0 0.48999 1
+6 19 30 0 0.468262 1
+6 19 31 0 0.44873 1
+6 20 0 0 0.869629 0
+6 20 1 0 0.869629 0
+6 20 2 0 0.869629 0
+6 20 3 0 0.869629 0
+6 20 4 0 0.869629 0
+6 20 5 0 0.869629 0
+6 20 6 0 0.869629 0
+6 20 7 0 0.869629 0
+6 20 8 0 0.869629 0
+6 20 9 0 0.869629 0
+6 20 10 0 0.870117 0
+6 20 11 0 0.870117 0
+6 20 12 0 0.870605 0.0811768
+6 20 13 0 0.873535 0.237427
+6 20 14 0 0.877441 0.338623
+6 20 15 0 0.881348 0.436279
+6 20 16 0 0.883789 0.536621
+6 20 17 0 0.882812 0.636719
+6 20 18 0 0.875488 0.731934
+6 20 19 0 0.861816 0.816895
+6 20 20 0 0.841797 0.888184
+6 20 21 0 0.81543 0.944824
+6 20 22 0 0.781738 0.982422
+6 20 23 0 0.745117 1
+6 20 24 0 0.709961 1
+6 20 25 0 0.673828 1
+6 20 26 0 0.638672 1
+6 20 27 0 0.60498 1
+6 20 28 0 0.573242 1
+6 20 29 0 0.544434 1
+6 20 30 0 0.517578 1
+6 20 31 0 0.493652 1
+6 21 0 0 0.92041 0
+6 21 1 0 0.92041 0
+6 21 2 0 0.92041 0
+6 21 3 0 0.92041 0
+6 21 4 0 0.92041 0
+6 21 5 0 0.92041 0
+6 21 6 0 0.92041 0
+6 21 7 0 0.92041 0
+6 21 8 0 0.92041 0
+6 21 9 0 0.92041 0
+6 21 10 0 0.92041 0
+6 21 11 0 0.92041 0
+6 21 12 0 0.920898 0
+6 21 13 0 0.92334 0.193848
+6 21 14 0 0.927246 0.307617
+6 21 15 0 0.932129 0.408203
+6 21 16 0 0.936035 0.509277
+6 21 17 0 0.9375 0.609863
+6 21 18 0 0.933594 0.706543
+6 21 19 0 0.922852 0.794434
+6 21 20 0 0.90625 0.869141
+6 21 21 0 0.883789 0.932129
+6 21 22 0 0.854492 0.97998
+6 21 23 0 0.820801 1
+6 21 24 0 0.785645 1
+6 21 25 0 0.748047 1
+6 21 26 0 0.709473 1
+6 21 27 0 0.671387 1
+6 21 28 0 0.635254 1
+6 21 29 0 0.601074 1
+6 21 30 0 0.569824 1
+6 21 31 0 0.541016 1
+6 22 0 0 0.962402 0
+6 22 1 0 0.962402 0
+6 22 2 0 0.962402 0
+6 22 3 0 0.962402 0
+6 22 4 0 0.962402 0
+6 22 5 0 0.962402 0
+6 22 6 0 0.962402 0
+6 22 7 0 0.962402 0
+6 22 8 0 0.962402 0
+6 22 9 0 0.962402 0
+6 22 10 0 0.962402 0
+6 22 11 0 0.962402 0
+6 22 12 0 0.962891 0
+6 22 13 0 0.963867 0.13147
+6 22 14 0 0.968262 0.273682
+6 22 15 0 0.973633 0.378662
+6 22 16 0 0.979004 0.480469
+6 22 17 0 0.982422 0.581055
+6 22 18 0 0.981445 0.678223
+6 22 19 0 0.974609 0.768066
+6 22 20 0 0.960938 0.846191
+6 22 21 0 0.941406 0.912598
+6 22 22 0 0.916504 0.967285
+6 22 23 0 0.887695 1
+6 22 24 0 0.85498 1
+6 22 25 0 0.817871 1
+6 22 26 0 0.77832 1
+6 22 27 0 0.737305 1
+6 22 28 0 0.697266 1
+6 22 29 0 0.65918 1
+6 22 30 0 0.623047 1
+6 22 31 0 0.589844 1
+6 23 0 0 0.995605 0
+6 23 1 0 0.995605 0
+6 23 2 0 0.995605 0
+6 23 3 0 0.995605 0
+6 23 4 0 0.995605 0
+6 23 5 0 0.995605 0
+6 23 6 0 0.995605 0
+6 23 7 0 0.995605 0
+6 23 8 0 0.995605 0
+6 23 9 0 0.996094 0
+6 23 10 0 0.996094 0
+6 23 11 0 0.996094 0
+6 23 12 0 0.996094 0
+6 23 13 0 0.996582 0
+6 23 14 0 1 0.237183
+6 23 15 0 1 0.349121
+6 23 16 0 1 0.451904
+6 23 17 0 1 0.552246
+6 23 18 0 1 0.649902
+6 23 19 0 1 0.740234
+6 23 20 0 1 0.820312
+6 23 21 0 0.98877 0.890137
+6 23 22 0 0.967285 0.948242
+6 23 23 0 0.941895 0.993652
+6 23 24 0 0.913574 1
+6 23 25 0 0.879395 1
+6 23 26 0 0.840332 1
+6 23 27 0 0.79834 1
+6 23 28 0 0.756348 1
+6 23 29 0 0.714844 1
+6 23 30 0 0.674805 1
+6 23 31 0 0.637695 1
+6 24 0 0 1 0
+6 24 1 0 1 0
+6 24 2 0 1 0
+6 24 3 0 1 0
+6 24 4 0 1 0
+6 24 5 0 1 0
+6 24 6 0 1 0
+6 24 7 0 1 0
+6 24 8 0 1 0
+6 24 9 0 1 0
+6 24 10 0 1 0
+6 24 11 0 1 0
+6 24 12 0 1 0
+6 24 13 0 1 0
+6 24 14 0 1 0.195801
+6 24 15 0 1 0.31958
+6 24 16 0 1 0.424072
+6 24 17 0 1 0.524414
+6 24 18 0 1 0.621094
+6 24 19 0 1 0.711426
+6 24 20 0 1 0.792969
+6 24 21 0 1 0.864746
+6 24 22 0 1 0.92627
+6 24 23 0 0.986816 0.975586
+6 24 24 0 0.961914 1
+6 24 25 0 0.931641 1
+6 24 26 0 0.89502 1
+6 24 27 0 0.854004 1
+6 24 28 0 0.810547 1
+6 24 29 0 0.76709 1
+6 24 30 0 0.724609 1
+6 24 31 0 0.683594 1
+6 25 0 0 1 0
+6 25 1 0 1 0
+6 25 2 0 1 0
+6 25 3 0 1 0
+6 25 4 0 1 0
+6 25 5 0 1 0
+6 25 6 0 1 0
+6 25 7 0 1 0
+6 25 8 0 1 0
+6 25 9 0 1 0
+6 25 10 0 1 0
+6 25 11 0 1 0
+6 25 12 0 1 0
+6 25 13 0 1 0
+6 25 14 0 1 0.135742
+6 25 15 0 1 0.286133
+6 25 16 0 1 0.394043
+6 25 17 0 1 0.493896
+6 25 18 0 1 0.589844
+6 25 19 0 1 0.680176
+6 25 20 0 1 0.761719
+6 25 21 0 1 0.835449
+6 25 22 0 1 0.899414
+6 25 23 0 1 0.952148
+6 25 24 0 1 0.995605
+6 25 25 0 0.979492 1
+6 25 26 0 0.946777 1
+6 25 27 0 0.907715 1
+6 25 28 0 0.865234 1
+6 25 29 0 0.820312 1
+6 25 30 0 0.775879 1
+6 25 31 0 0.732422 1
+6 26 0 0 1 0
+6 26 1 0 1 0
+6 26 2 0 1 0
+6 26 3 0 1 0
+6 26 4 0 1 0
+6 26 5 0 1 0
+6 26 6 0 1 0
+6 26 7 0 1 0
+6 26 8 0 1 0
+6 26 9 0 1 0
+6 26 10 0 1 0
+6 26 11 0 1 0
+6 26 12 0 1 0
+6 26 13 0 1 0
+6 26 14 0 1 0
+6 26 15 0 1 0.247559
+6 26 16 0 1 0.361328
+6 26 17 0 1 0.46167
+6 26 18 0 1 0.556641
+6 26 19 0 1 0.645508
+6 26 20 0 1 0.727539
+6 26 21 0 1 0.802246
+6 26 22 0 1 0.868652
+6 26 23 0 1 0.923828
+6 26 24 0 1 0.970215
+6 26 25 0 1 1
+6 26 26 0 0.994629 1
+6 26 27 0 0.958984 1
+6 26 28 0 0.918457 1
+6 26 29 0 0.874023 1
+6 26 30 0 0.828125 1
+6 26 31 0 0.782227 1
+6 27 0 0 1 0
+6 27 1 0 1 0
+6 27 2 0 1 0
+6 27 3 0 1 0
+6 27 4 0 1 0
+6 27 5 0 1 0
+6 27 6 0 1 0
+6 27 7 0 1 0
+6 27 8 0 1 0
+6 27 9 0 1 0
+6 27 10 0 1 0
+6 27 11 0 1 0
+6 27 12 0 1 0
+6 27 13 0 1 0
+6 27 14 0 1 0
+6 27 15 0 1 0.200195
+6 27 16 0 1 0.326172
+6 27 17 0 1 0.427734
+6 27 18 0 1 0.521484
+6 27 19 0 1 0.609375
+6 27 20 0 1 0.69043
+6 27 21 0 1 0.765625
+6 27 22 0 1 0.833008
+6 27 23 0 1 0.890625
+6 27 24 0 1 0.939941
+6 27 25 0 1 0.985352
+6 27 26 0 1 1
+6 27 27 0 1 1
+6 27 28 0 0.968262 1
+6 27 29 0 0.925293 1
+6 27 30 0 0.879883 1
+6 27 31 0 0.833008 1
+6 28 0 0 1 0
+6 28 1 0 1 0
+6 28 2 0 1 0
+6 28 3 0 1 0
+6 28 4 0 1 0
+6 28 5 0 1 0
+6 28 6 0 1 0
+6 28 7 0 1 0
+6 28 8 0 1 0
+6 28 9 0 1 0
+6 28 10 0 1 0
+6 28 11 0 1 0
+6 28 12 0 1 0
+6 28 13 0 1 0
+6 28 14 0 1 0
+6 28 15 0 1 0.129883
+6 28 16 0 1 0.287109
+6 28 17 0 1 0.391602
+6 28 18 0 1 0.484863
+6 28 19 0 1 0.571289
+6 28 20 0 1 0.651367
+6 28 21 0 1 0.726074
+6 28 22 0 1 0.793945
+6 28 23 0 1 0.853027
+6 28 24 0 1 0.904297
+6 28 25 0 1 0.952637
+6 28 26 0 1 0.997559
+6 28 27 0 1 1
+6 28 28 0 1 1
+6 28 29 0 0.974121 1
+6 28 30 0 0.930664 1
+6 28 31 0 0.884277 1
+6 29 0 0 1 0
+6 29 1 0 1 0
+6 29 2 0 1 0
+6 29 3 0 1 0
+6 29 4 0 1 0
+6 29 5 0 1 0
+6 29 6 0 1 0
+6 29 7 0 1 0
+6 29 8 0 1 0
+6 29 9 0 1 0
+6 29 10 0 1 0
+6 29 11 0 1 0
+6 29 12 0 1 0
+6 29 13 0 1 0
+6 29 14 0 1 0
+6 29 15 0 1 0
+6 29 16 0 1 0.242188
+6 29 17 0 1 0.353271
+6 29 18 0 1 0.446533
+6 29 19 0 1 0.531738
+6 29 20 0 1 0.609863
+6 29 21 0 1 0.683594
+6 29 22 0 1 0.751465
+6 29 23 0 1 0.811035
+6 29 24 0 1 0.86377
+6 29 25 0 1 0.914551
+6 29 26 0 1 0.962402
+6 29 27 0 1 1
+6 29 28 0 1 1
+6 29 29 0 1 1
+6 29 30 0 0.979004 1
+6 29 31 0 0.93457 1
+6 30 0 0 1 0
+6 30 1 0 1 0
+6 30 2 0 1 0
+6 30 3 0 1 0
+6 30 4 0 1 0
+6 30 5 0 1 0
+6 30 6 0 1 0
+6 30 7 0 1 0
+6 30 8 0 1 0
+6 30 9 0 1 0
+6 30 10 0 1 0
+6 30 11 0 1 0
+6 30 12 0 1 0
+6 30 13 0 1 0
+6 30 14 0 1 0
+6 30 15 0 1 0
+6 30 16 0 1 0.186279
+6 30 17 0 1 0.312012
+6 30 18 0 1 0.406738
+6 30 19 0 1 0.490479
+6 30 20 0 1 0.566895
+6 30 21 0 1 0.63916
+6 30 22 0 1 0.705566
+6 30 23 0 1 0.765137
+6 30 24 0 1 0.818848
+6 30 25 0 1 0.870605
+6 30 26 0 1 0.921387
+6 30 27 0 1 0.96875
+6 30 28 0 1 1
+6 30 29 0 1 1
+6 30 30 0 1 1
+6 30 31 0 0.98291 1
+6 31 0 0 1 0
+6 31 1 0 1 0
+6 31 2 0 1 0
+6 31 3 0 1 0
+6 31 4 0 1 0
+6 31 5 0 1 0
+6 31 6 0 1 0
+6 31 7 0 1 0
+6 31 8 0 1 0
+6 31 9 0 1 0
+6 31 10 0 1 0
+6 31 11 0 1 0
+6 31 12 0 1 0
+6 31 13 0 1 0
+6 31 14 0 1 0
+6 31 15 0 1 0
+6 31 16 0 1 0.0895996
+6 31 17 0 1 0.266846
+6 31 18 0 1 0.365234
+6 31 19 0 1 0.448486
+6 31 20 0 1 0.523438
+6 31 21 0 1 0.593262
+6 31 22 0 1 0.658203
+6 31 23 0 1 0.716797
+6 31 24 0 1 0.77002
+6 31 25 0 1 0.823242
+6 31 26 0 1 0.875488
+6 31 27 0 1 0.92627
+6 31 28 0 1 0.973145
+6 31 29 0 1 1
+6 31 30 0 1 1
+6 31 31 0 1 1
+7 0 0 0.138062 0 0.00432205
+7 0 1 0.138062 0 0.00391769
+7 0 2 0.138184 0 0.00354385
+7 0 3 0.138184 0 0.0218048
+7 0 4 0.137085 0 0.0453796
+7 0 5 0.133423 0 0.0648193
+7 0 6 0.116211 0.0233612 0.0775757
+7 0 7 0.102356 0.0348206 0.0905762
+7 0 8 0.0948486 0.0381775 0.115112
+7 0 9 0.0792847 0.0435791 0.146484
+7 0 10 0 0.0520325 0.1875
+7 0 11 0 0.0640869 0.240723
+7 0 12 0 0.0788574 0.303467
+7 0 13 0 0.0959473 0.374512
+7 0 14 0 0.115112 0.452637
+7 0 15 0 0.135742 0.536133
+7 0 16 0 0.157227 0.622559
+7 0 17 0 0.177979 0.706055
+7 0 18 0 0.197144 0.782715
+7 0 19 0 0.213989 0.850586
+7 0 20 0 0.223389 0.888184
+7 0 21 0 0.225098 0.895508
+7 0 22 0 0.227051 0.902832
+7 0 23 0 0.229004 0.911133
+7 0 24 0 0.230957 0.918945
+7 0 25 0 0.233154 0.927734
+7 0 26 0 0.235596 0.937012
+7 0 27 0 0.238281 0.947754
+7 0 28 0 0.241211 0.959961
+7 0 29 0 0.244507 0.973145
+7 0 30 0 0.247803 0.986328
+7 0 31 0 0.251221 1
+7 1 0 0.137573 0.0167694 0
+7 1 1 0.137573 0.0175476 0
+7 1 2 0.137695 0.0181427 0
+7 1 3 0.137817 0.0179901 0.0213165
+7 1 4 0.136841 0.0140533 0.045166
+7 1 5 0.133423 0.00502777 0.0647583
+7 1 6 0.116394 0.0263672 0.0776978
+7 1 7 0.102234 0.0361633 0.0905151
+7 1 8 0.0947266 0.0393066 0.115112
+7 1 9 0.0791626 0.0444641 0.146484
+7 1 10 0 0.0527344 0.1875
+7 1 11 0 0.0645752 0.240723
+7 1 12 0 0.0792236 0.303467
+7 1 13 0 0.0962524 0.374512
+7 1 14 0 0.115356 0.452637
+7 1 15 0 0.135864 0.536133
+7 1 16 0 0.157349 0.622559
+7 1 17 0 0.178101 0.706055
+7 1 18 0 0.197266 0.782715
+7 1 19 0 0.213989 0.850586
+7 1 20 0 0.223389 0.888184
+7 1 21 0 0.22522 0.895508
+7 1 22 0 0.227051 0.902832
+7 1 23 0 0.229004 0.911133
+7 1 24 0 0.230957 0.918945
+7 1 25 0 0.233154 0.927734
+7 1 26 0 0.235596 0.937012
+7 1 27 0 0.238281 0.947754
+7 1 28 0 0.241333 0.959961
+7 1 29 0 0.244507 0.973145
+7 1 30 0 0.247925 0.986328
+7 1 31 0 0.251221 1
+7 2 0 0.136597 0.0278473 0
+7 2 1 0.136597 0.028183 0
+7 2 2 0.136841 0.0284882 0
+7 2 3 0.137085 0.0283966 0.0205078
+7 2 4 0.136353 0.0265808 0.0447693
+7 2 5 0.133179 0.0240173 0.0645142
+7 2 6 0.116638 0.0307312 0.0778809
+7 2 7 0.102051 0.0383911 0.0905151
+7 2 8 0.0944824 0.0411987 0.115112
+7 2 9 0.0788574 0.0460205 0.146484
+7 2 10 0 0.0539246 0.1875
+7 2 11 0 0.0654907 0.240723
+7 2 12 0 0.0799561 0.303467
+7 2 13 0 0.0968018 0.374512
+7 2 14 0 0.115723 0.452637
+7 2 15 0 0.136108 0.536133
+7 2 16 0 0.157593 0.622559
+7 2 17 0 0.178223 0.706055
+7 2 18 0 0.197388 0.782715
+7 2 19 0 0.214111 0.850586
+7 2 20 0 0.223511 0.888184
+7 2 21 0 0.22522 0.895508
+7 2 22 0 0.227173 0.902832
+7 2 23 0 0.229004 0.911133
+7 2 24 0 0.230957 0.918945
+7 2 25 0 0.233154 0.927734
+7 2 26 0 0.235596 0.937012
+7 2 27 0 0.238281 0.947754
+7 2 28 0 0.241333 0.959961
+7 2 29 0 0.244507 0.973145
+7 2 30 0 0.247925 0.986328
+7 2 31 0 0.251465 1
+7 3 0 0.134888 0.0382996 0
+7 3 1 0.134888 0.0384827 0
+7 3 2 0.13501 0.0386963 0
+7 3 3 0.135498 0.0386963 0.0192719
+7 3 4 0.135254 0.0375977 0.0440369
+7 3 5 0.132446 0.0357056 0.0640869
+7 3 6 0.117065 0.0370178 0.0782471
+7 3 7 0.101685 0.0419922 0.0904541
+7 3 8 0.0941162 0.0443726 0.115112
+7 3 9 0.0783691 0.048645 0.146484
+7 3 10 0 0.0560303 0.1875
+7 3 11 0 0.0671387 0.240601
+7 3 12 0 0.0811768 0.303467
+7 3 13 0 0.0977173 0.374512
+7 3 14 0 0.116394 0.452637
+7 3 15 0 0.136719 0.536133
+7 3 16 0 0.157959 0.622559
+7 3 17 0 0.178589 0.706055
+7 3 18 0 0.19751 0.782715
+7 3 19 0 0.214355 0.850586
+7 3 20 0 0.223633 0.888184
+7 3 21 0 0.225342 0.895508
+7 3 22 0 0.227173 0.90332
+7 3 23 0 0.229126 0.911133
+7 3 24 0 0.231079 0.918945
+7 3 25 0 0.233276 0.927734
+7 3 26 0 0.235596 0.937012
+7 3 27 0 0.238281 0.947754
+7 3 28 0 0.241333 0.959961
+7 3 29 0 0.244507 0.973145
+7 3 30 0 0.247925 0.986328
+7 3 31 0 0.251465 1
+7 4 0 0.131226 0.0497131 0
+7 4 1 0.131226 0.0498352 0
+7 4 2 0.131348 0.0500183 0
+7 4 3 0.131958 0.0501099 0.0181885
+7 4 4 0.132446 0.0496826 0.0427551
+7 4 5 0.130737 0.0483398 0.0631104
+7 4 6 0.117981 0.0461731 0.0789795
+7 4 7 0.101013 0.047699 0.0903931
+7 4 8 0.0933838 0.04953 0.115051
+7 4 9 0.0773926 0.0530701 0.146484
+7 4 10 0 0.0596924 0.1875
+7 4 11 0 0.0700684 0.240601
+7 4 12 0 0.0834351 0.303467
+7 4 13 0 0.0994263 0.374512
+7 4 14 0 0.117676 0.452637
+7 4 15 0 0.137695 0.536133
+7 4 16 0 0.158691 0.622559
+7 4 17 0 0.179077 0.706055
+7 4 18 0 0.197998 0.782715
+7 4 19 0 0.214722 0.850586
+7 4 20 0 0.223877 0.888184
+7 4 21 0 0.225586 0.895508
+7 4 22 0 0.227417 0.90332
+7 4 23 0 0.229248 0.911133
+7 4 24 0 0.231201 0.918945
+7 4 25 0 0.233398 0.927734
+7 4 26 0 0.235718 0.937012
+7 4 27 0 0.238403 0.947754
+7 4 28 0 0.241455 0.959961
+7 4 29 0 0.244629 0.973145
+7 4 30 0 0.247925 0.986328
+7 4 31 0 0.251465 1
+7 5 0 0.123657 0.0617676 0
+7 5 1 0.123657 0.0618286 0
+7 5 2 0.123779 0.0619812 0
+7 5 3 0.124329 0.0621948 0.0211029
+7 5 4 0.125244 0.0624695 0.0412292
+7 5 5 0.126465 0.0626221 0.0609436
+7 5 6 0.119385 0.0597839 0.0800781
+7 5 7 0.0996704 0.056366 0.090271
+7 5 8 0.0919189 0.0576172 0.11499
+7 5 9 0.0754395 0.0602722 0.146362
+7 5 10 0 0.0658569 0.187378
+7 5 11 0 0.0752563 0.240601
+7 5 12 0 0.0875854 0.303467
+7 5 13 0 0.1026 0.374512
+7 5 14 0 0.120117 0.452637
+7 5 15 0 0.139526 0.536133
+7 5 16 0 0.160034 0.622559
+7 5 17 0 0.180176 0.706055
+7 5 18 0 0.198853 0.783203
+7 5 19 0 0.215332 0.850586
+7 5 20 0 0.224487 0.888184
+7 5 21 0 0.225952 0.895508
+7 5 22 0 0.227783 0.90332
+7 5 23 0 0.229614 0.911133
+7 5 24 0 0.231445 0.918945
+7 5 25 0 0.233521 0.927734
+7 5 26 0 0.235962 0.9375
+7 5 27 0 0.238525 0.948242
+7 5 28 0 0.241577 0.959961
+7 5 29 0 0.244751 0.973145
+7 5 30 0 0.248047 0.986328
+7 5 31 0 0.251465 1
+7 6 0 0.112244 0.072937 0.0198212
+7 6 1 0.112183 0.072998 0.0198669
+7 6 2 0.112183 0.0730591 0.0199738
+7 6 3 0.112061 0.0731201 0.0305328
+7 6 4 0.111877 0.0733032 0.0423279
+7 6 5 0.112183 0.0740356 0.0569458
+7 6 6 0.114624 0.0761719 0.0778198
+7 6 7 0.0970459 0.0686646 0.0899048
+7 6 8 0.0890503 0.0693359 0.114746
+7 6 9 0.0715332 0.071106 0.14624
+7 6 10 0 0.0756226 0.187256
+7 6 11 0 0.0837402 0.240479
+7 6 12 0 0.0946655 0.303223
+7 6 13 0 0.108276 0.374268
+7 6 14 0 0.124512 0.452637
+7 6 15 0 0.142822 0.536133
+7 6 16 0 0.162598 0.622559
+7 6 17 0 0.182129 0.706055
+7 6 18 0 0.200439 0.783203
+7 6 19 0 0.216553 0.850586
+7 6 20 0 0.225464 0.888184
+7 6 21 0 0.226807 0.895508
+7 6 22 0 0.228394 0.90332
+7 6 23 0 0.230103 0.911133
+7 6 24 0 0.231934 0.918945
+7 6 25 0 0.234009 0.927734
+7 6 26 0 0.236206 0.9375
+7 6 27 0 0.238892 0.948242
+7 6 28 0 0.241821 0.959961
+7 6 29 0 0.244995 0.973145
+7 6 30 0 0.248291 0.986328
+7 6 31 0 0.251709 1
+7 7 0 0.106506 0.0914917 0.0299072
+7 7 1 0.106506 0.0915527 0.0299225
+7 7 2 0.106506 0.0916138 0.0299225
+7 7 3 0.106262 0.0915527 0.033905
+7 7 4 0.105225 0.0911865 0.0442505
+7 7 5 0.10321 0.0903931 0.0569763
+7 7 6 0.0992432 0.0888672 0.0720825
+7 7 7 0.0914307 0.0855713 0.0891113
+7 7 8 0.0828857 0.0858154 0.114319
+7 7 9 0.0626831 0.086792 0.145996
+7 7 10 0 0.090271 0.187012
+7 7 11 0 0.097229 0.240234
+7 7 12 0 0.106445 0.303223
+7 7 13 0 0.118164 0.374268
+7 7 14 0 0.132446 0.452637
+7 7 15 0 0.14917 0.536133
+7 7 16 0 0.16748 0.623047
+7 7 17 0 0.185913 0.706055
+7 7 18 0 0.203369 0.783203
+7 7 19 0 0.218994 0.850586
+7 7 20 0 0.227417 0.888184
+7 7 21 0 0.228394 0.895508
+7 7 22 0 0.229614 0.90332
+7 7 23 0 0.231201 0.911133
+7 7 24 0 0.232788 0.918945
+7 7 25 0 0.234741 0.927734
+7 7 26 0 0.236938 0.9375
+7 7 27 0 0.23938 0.948242
+7 7 28 0 0.24231 0.959961
+7 7 29 0 0.245361 0.973145
+7 7 30 0 0.248657 0.986328
+7 7 31 0 0.251953 1
+7 8 0 0.0899048 0.111145 0.0280457
+7 8 1 0.0899048 0.111206 0.0280457
+7 8 2 0.0899658 0.111206 0.0280457
+7 8 3 0.0899658 0.111267 0.0280609
+7 8 4 0.0892334 0.110962 0.0379028
+7 8 5 0.0874634 0.110229 0.0517883
+7 8 6 0.0841064 0.108948 0.067749
+7 8 7 0.0785522 0.107971 0.0874634
+7 8 8 0.0679932 0.108093 0.113281
+7 8 9 0.0334473 0.108582 0.145508
+7 8 10 0 0.111328 0.186646
+7 8 11 0 0.117249 0.239868
+7 8 12 0 0.124878 0.302979
+7 8 13 0 0.134277 0.374268
+7 8 14 0 0.146118 0.452637
+7 8 15 0 0.160278 0.536133
+7 8 16 0 0.176514 0.623047
+7 8 17 0 0.193115 0.706543
+7 8 18 0 0.209106 0.783203
+7 8 19 0 0.223511 0.850586
+7 8 20 0 0.231201 0.888672
+7 8 21 0 0.231323 0.895996
+7 8 22 0 0.232056 0.90332
+7 8 23 0 0.233276 0.911133
+7 8 24 0 0.234619 0.918945
+7 8 25 0 0.236206 0.927734
+7 8 26 0 0.238159 0.9375
+7 8 27 0 0.240479 0.948242
+7 8 28 0 0.243164 0.960449
+7 8 29 0 0.246216 0.973145
+7 8 30 0 0.249268 0.986328
+7 8 31 0 0.252686 1
+7 9 0 0.0545044 0.136719 0.0261383
+7 9 1 0.0545044 0.136841 0.0261536
+7 9 2 0.0545654 0.136841 0.0261536
+7 9 3 0.0546265 0.136841 0.0261688
+7 9 4 0.0547791 0.136963 0.0261993
+7 9 5 0.0524597 0.136719 0.0444641
+7 9 6 0.0474243 0.136475 0.0628662
+7 9 7 0.0343018 0.136475 0.0844727
+7 9 8 0 0.136841 0.111206
+7 9 9 0 0.137451 0.144531
+7 9 10 0 0.139771 0.186035
+7 9 11 0 0.14502 0.239258
+7 9 12 0 0.151367 0.30249
+7 9 13 0 0.158813 0.374023
+7 9 14 0 0.167847 0.452637
+7 9 15 0 0.178833 0.536133
+7 9 16 0 0.191895 0.623047
+7 9 17 0 0.205688 0.706543
+7 9 18 0 0.219238 0.783203
+7 9 19 0 0.231934 0.850586
+7 9 20 0 0.238037 0.88916
+7 9 21 0 0.236816 0.895996
+7 9 22 0 0.236694 0.903809
+7 9 23 0 0.237061 0.911621
+7 9 24 0 0.237915 0.919434
+7 9 25 0 0.239136 0.928223
+7 9 26 0 0.240601 0.9375
+7 9 27 0 0.242554 0.948242
+7 9 28 0 0.244995 0.960449
+7 9 29 0 0.247681 0.973145
+7 9 30 0 0.250732 0.986816
+7 9 31 0 0.253662 1
+7 10 0 0 0.172852 0.0244446
+7 10 1 0 0.172852 0.0244446
+7 10 2 0 0.172852 0.0244598
+7 10 3 0 0.172852 0.0244751
+7 10 4 0 0.172974 0.0245056
+7 10 5 0 0.172974 0.028656
+7 10 6 0 0.172974 0.055542
+7 10 7 0 0.172974 0.0801392
+7 10 8 0 0.173218 0.108521
+7 10 9 0 0.17395 0.143188
+7 10 10 0 0.176147 0.185425
+7 10 11 0 0.180786 0.238525
+7 10 12 0 0.186279 0.301758
+7 10 13 0 0.192017 0.373535
+7 10 14 0 0.198486 0.452393
+7 10 15 0 0.206299 0.536133
+7 10 16 0 0.215698 0.623047
+7 10 17 0 0.22583 0.706543
+7 10 18 0 0.236206 0.783691
+7 10 19 0 0.246094 0.851074
+7 10 20 0 0.249878 0.890137
+7 10 21 0 0.24646 0.896973
+7 10 22 0 0.244629 0.904297
+7 10 23 0 0.243774 0.912109
+7 10 24 0 0.243652 0.919922
+7 10 25 0 0.244141 0.928711
+7 10 26 0 0.244995 0.937988
+7 10 27 0 0.246338 0.94873
+7 10 28 0 0.248291 0.960938
+7 10 29 0 0.250488 0.973633
+7 10 30 0 0.253174 0.986816
+7 10 31 0 0.255859 1
+7 11 0 0 0.220581 0.0215454
+7 11 1 0 0.220581 0.0215454
+7 11 2 0 0.220581 0.0215607
+7 11 3 0 0.220581 0.0215759
+7 11 4 0 0.220703 0.0216217
+7 11 5 0 0.220703 0.0216827
+7 11 6 0 0.220825 0.0372925
+7 11 7 0 0.220703 0.0727539
+7 11 8 0 0.220581 0.105103
+7 11 9 0 0.220947 0.141846
+7 11 10 0 0.222412 0.185303
+7 11 11 0 0.22583 0.237915
+7 11 12 0 0.230225 0.301025
+7 11 13 0 0.234741 0.372803
+7 11 14 0 0.239136 0.452148
+7 11 15 0 0.243896 0.536133
+7 11 16 0 0.249512 0.623535
+7 11 17 0 0.255615 0.707031
+7 11 18 0 0.261963 0.78418
+7 11 19 0 0.268311 0.851562
+7 11 20 0 0.268799 0.891602
+7 11 21 0 0.262207 0.898438
+7 11 22 0 0.257812 0.905762
+7 11 23 0 0.255127 0.913086
+7 11 24 0 0.253418 0.920898
+7 11 25 0 0.252686 0.929199
+7 11 26 0 0.252441 0.938965
+7 11 27 0 0.252686 0.949219
+7 11 28 0 0.253906 0.961426
+7 11 29 0 0.255371 0.974121
+7 11 30 0 0.257324 0.987305
+7 11 31 0 0.259277 1
+7 12 0 0 0.279053 0.0126343
+7 12 1 0 0.279053 0.0126495
+7 12 2 0 0.279053 0.0126724
+7 12 3 0 0.279053 0.0127182
+7 12 4 0 0.279053 0.0128021
+7 12 5 0 0.279053 0.01297
+7 12 6 0 0.279297 0.0132675
+7 12 7 0 0.279297 0.0529175
+7 12 8 0 0.279297 0.097168
+7 12 9 0 0.279297 0.13855
+7 12 10 0 0.279785 0.184204
+7 12 11 0 0.28125 0.237061
+7 12 12 0 0.28418 0.299561
+7 12 13 0 0.287354 0.371582
+7 12 14 0 0.290283 0.451172
+7 12 15 0 0.29248 0.536133
+7 12 16 0 0.294678 0.623535
+7 12 17 0 0.296631 0.70752
+7 12 18 0 0.29834 0.784668
+7 12 19 0 0.300537 0.852539
+7 12 20 0 0.297363 0.894043
+7 12 21 0 0.286133 0.900391
+7 12 22 0 0.278076 0.907715
+7 12 23 0 0.272705 0.915039
+7 12 24 0 0.269043 0.922363
+7 12 25 0 0.266113 0.930664
+7 12 26 0 0.26416 0.939941
+7 12 27 0 0.263184 0.950195
+7 12 28 0 0.262939 0.962402
+7 12 29 0 0.263184 0.975098
+7 12 30 0 0.26416 0.988281
+7 12 31 0 0.265381 1
+7 13 0 0 0.345459 0
+7 13 1 0 0.345459 0
+7 13 2 0 0.345459 0
+7 13 3 0 0.345459 0
+7 13 4 0 0.345459 0
+7 13 5 0 0.345459 0
+7 13 6 0 0.345459 0
+7 13 7 0 0.345703 0
+7 13 8 0 0.345947 0.0767212
+7 13 9 0 0.345947 0.129028
+7 13 10 0 0.346191 0.179199
+7 13 11 0 0.346924 0.234131
+7 13 12 0 0.348389 0.297363
+7 13 13 0 0.350342 0.369385
+7 13 14 0 0.351562 0.449463
+7 13 15 0 0.351807 0.535156
+7 13 16 0 0.351074 0.623535
+7 13 17 0 0.349121 0.708008
+7 13 18 0 0.34668 0.785645
+7 13 19 0 0.343994 0.853516
+7 13 20 0 0.336914 0.897949
+7 13 21 0 0.320068 0.904297
+7 13 22 0 0.307617 0.910645
+7 13 23 0 0.298584 0.917969
+7 13 24 0 0.291992 0.924805
+7 13 25 0 0.286621 0.933105
+7 13 26 0 0.282227 0.941895
+7 13 27 0 0.279053 0.952148
+7 13 28 0 0.276855 0.963867
+7 13 29 0 0.275635 0.976074
+7 13 30 0 0.274902 0.989258
+7 13 31 0 0.274658 1
+7 14 0 0 0.419434 0
+7 14 1 0 0.419434 0
+7 14 2 0 0.419434 0
+7 14 3 0 0.419434 0
+7 14 4 0 0.419434 0
+7 14 5 0 0.419434 0
+7 14 6 0 0.419434 0
+7 14 7 0 0.419678 0
+7 14 8 0 0.419678 0
+7 14 9 0 0.419922 0.108398
+7 14 10 0 0.42041 0.167969
+7 14 11 0 0.421143 0.227051
+7 14 12 0 0.421875 0.292236
+7 14 13 0 0.422607 0.365234
+7 14 14 0 0.423096 0.446289
+7 14 15 0 0.421875 0.532715
+7 14 16 0 0.418701 0.622559
+7 14 17 0 0.41333 0.708496
+7 14 18 0 0.406738 0.786621
+7 14 19 0 0.399658 0.85498
+7 14 20 0 0.388916 0.90332
+7 14 21 0 0.365479 0.909668
+7 14 22 0 0.347656 0.916016
+7 14 23 0 0.334473 0.922363
+7 14 24 0 0.324219 0.929199
+7 14 25 0 0.31543 0.937012
+7 14 26 0 0.308105 0.945801
+7 14 27 0 0.302002 0.955078
+7 14 28 0 0.297363 0.966309
+7 14 29 0 0.293701 0.978516
+7 14 30 0 0.290771 0.991211
+7 14 31 0 0.288818 1
+7 15 0 0 0.498779 0
+7 15 1 0 0.498779 0
+7 15 2 0 0.498779 0
+7 15 3 0 0.498779 0
+7 15 4 0 0.498779 0
+7 15 5 0 0.498779 0
+7 15 6 0 0.499023 0
+7 15 7 0 0.499023 0
+7 15 8 0 0.499023 0
+7 15 9 0 0.499512 0.0486145
+7 15 10 0 0.5 0.146729
+7 15 11 0 0.500488 0.213745
+7 15 12 0 0.501465 0.282715
+7 15 13 0 0.502441 0.357666
+7 15 14 0 0.502441 0.439941
+7 15 15 0 0.500488 0.52832
+7 15 16 0 0.496094 0.619629
+7 15 17 0 0.488281 0.707031
+7 15 18 0 0.477783 0.786621
+7 15 19 0 0.466553 0.855957
+7 15 20 0 0.453369 0.910156
+7 15 21 0 0.423096 0.91748
+7 15 22 0 0.39917 0.923828
+7 15 23 0 0.380859 0.929688
+7 15 24 0 0.366455 0.936035
+7 15 25 0 0.35376 0.943359
+7 15 26 0 0.342773 0.951172
+7 15 27 0 0.333252 0.959961
+7 15 28 0 0.325195 0.970703
+7 15 29 0 0.318604 0.982422
+7 15 30 0 0.313232 0.994629
+7 15 31 0 0.308594 1
+7 16 0 0 0.58252 0
+7 16 1 0 0.58252 0
+7 16 2 0 0.58252 0
+7 16 3 0 0.58252 0
+7 16 4 0 0.58252 0
+7 16 5 0 0.58252 0
+7 16 6 0 0.58252 0
+7 16 7 0 0.58252 0
+7 16 8 0 0.58252 0
+7 16 9 0 0.58252 0
+7 16 10 0 0.583008 0.103882
+7 16 11 0 0.583984 0.191528
+7 16 12 0 0.585449 0.266846
+7 16 13 0 0.586914 0.344727
+7 16 14 0 0.587402 0.429199
+7 16 15 0 0.585938 0.519531
+7 16 16 0 0.581055 0.612793
+7 16 17 0 0.571777 0.703125
+7 16 18 0 0.558594 0.785156
+7 16 19 0 0.543945 0.856445
+7 16 20 0 0.527832 0.914551
+7 16 21 0 0.49292 0.927246
+7 16 22 0 0.462891 0.93457
+7 16 23 0 0.438965 0.940918
+7 16 24 0 0.419678 0.946777
+7 16 25 0 0.402588 0.952637
+7 16 26 0 0.387207 0.959961
+7 16 27 0 0.373535 0.967773
+7 16 28 0 0.361816 0.977539
+7 16 29 0 0.351562 0.988281
+7 16 30 0 0.342773 0.999512
+7 16 31 0 0.335205 1
+7 17 0 0 0.664551 0
+7 17 1 0 0.664551 0
+7 17 2 0 0.664551 0
+7 17 3 0 0.664551 0
+7 17 4 0 0.664551 0
+7 17 5 0 0.664551 0
+7 17 6 0 0.664551 0
+7 17 7 0 0.664551 0
+7 17 8 0 0.664551 0
+7 17 9 0 0.665039 0
+7 17 10 0 0.665039 0
+7 17 11 0 0.666016 0.155396
+7 17 12 0 0.667969 0.243652
+7 17 13 0 0.669922 0.326416
+7 17 14 0 0.671387 0.413086
+7 17 15 0 0.670898 0.505371
+7 17 16 0 0.666992 0.601074
+7 17 17 0 0.658203 0.694336
+7 17 18 0 0.644531 0.779785
+7 17 19 0 0.627441 0.853516
+7 17 20 0 0.608398 0.914062
+7 17 21 0 0.572266 0.937988
+7 17 22 0 0.537109 0.94873
+7 17 23 0 0.507812 0.955566
+7 17 24 0 0.483154 0.961426
+7 17 25 0 0.460938 0.966797
+7 17 26 0 0.440674 0.972656
+7 17 27 0 0.422363 0.979492
+7 17 28 0 0.40625 0.987793
+7 17 29 0 0.391846 0.996582
+7 17 30 0 0.37915 1
+7 17 31 0 0.368164 1
+7 18 0 0 0.741211 0
+7 18 1 0 0.741211 0
+7 18 2 0 0.741211 0
+7 18 3 0 0.741211 0
+7 18 4 0 0.741211 0
+7 18 5 0 0.741211 0
+7 18 6 0 0.741211 0
+7 18 7 0 0.741211 0
+7 18 8 0 0.741699 0
+7 18 9 0 0.741699 0
+7 18 10 0 0.741699 0
+7 18 11 0 0.742188 0.079895
+7 18 12 0 0.744141 0.211426
+7 18 13 0 0.746582 0.302002
+7 18 14 0 0.749023 0.391846
+7 18 15 0 0.750488 0.485596
+7 18 16 0 0.748535 0.583496
+7 18 17 0 0.741699 0.680176
+7 18 18 0 0.729004 0.769043
+7 18 19 0 0.711426 0.84668
+7 18 20 0 0.69043 0.910645
+7 18 21 0 0.65625 0.946289
+7 18 22 0 0.618164 0.963867
+7 18 23 0 0.584473 0.973633
+7 18 24 0 0.555176 0.97998
+7 18 25 0 0.527832 0.984863
+7 18 26 0 0.501953 0.989746
+7 18 27 0 0.478516 0.995117
+7 18 28 0 0.45752 1
+7 18 29 0 0.438477 1
+7 18 30 0 0.421631 1
+7 18 31 0 0.406494 1
+7 19 0 0 0.810059 0
+7 19 1 0 0.810059 0
+7 19 2 0 0.810059 0
+7 19 3 0 0.810059 0
+7 19 4 0 0.810059 0
+7 19 5 0 0.810059 0
+7 19 6 0 0.810059 0
+7 19 7 0 0.810547 0
+7 19 8 0 0.810547 0
+7 19 9 0 0.810547 0
+7 19 10 0 0.810547 0
+7 19 11 0 0.811035 0
+7 19 12 0 0.8125 0.16626
+7 19 13 0 0.814941 0.272461
+7 19 14 0 0.818359 0.366455
+7 19 15 0 0.820801 0.462158
+7 19 16 0 0.821777 0.561523
+7 19 17 0 0.817383 0.660156
+7 19 18 0 0.807617 0.75293
+7 19 19 0 0.791016 0.834473
+7 19 20 0 0.77002 0.901855
+7 19 21 0 0.73877 0.94873
+7 19 22 0 0.70166 0.976074
+7 19 23 0 0.665527 0.991211
+7 19 24 0 0.632324 1
+7 19 25 0 0.600098 1
+7 19 26 0 0.568848 1
+7 19 27 0 0.540039 1
+7 19 28 0 0.51416 1
+7 19 29 0 0.48999 1
+7 19 30 0 0.468262 1
+7 19 31 0 0.44873 1
+7 20 0 0 0.869629 0
+7 20 1 0 0.869629 0
+7 20 2 0 0.869629 0
+7 20 3 0 0.869629 0
+7 20 4 0 0.869629 0
+7 20 5 0 0.869629 0
+7 20 6 0 0.869629 0
+7 20 7 0 0.869629 0
+7 20 8 0 0.869629 0
+7 20 9 0 0.870117 0
+7 20 10 0 0.870117 0
+7 20 11 0 0.870117 0
+7 20 12 0 0.871094 0.0813599
+7 20 13 0 0.873535 0.237549
+7 20 14 0 0.877441 0.338623
+7 20 15 0 0.881348 0.436279
+7 20 16 0 0.883789 0.536621
+7 20 17 0 0.882812 0.636719
+7 20 18 0 0.875488 0.731934
+7 20 19 0 0.861816 0.816895
+7 20 20 0 0.841797 0.888184
+7 20 21 0 0.81543 0.944824
+7 20 22 0 0.781738 0.982422
+7 20 23 0 0.745117 1
+7 20 24 0 0.709961 1
+7 20 25 0 0.673828 1
+7 20 26 0 0.638672 1
+7 20 27 0 0.60498 1
+7 20 28 0 0.573242 1
+7 20 29 0 0.544434 1
+7 20 30 0 0.517578 1
+7 20 31 0 0.493652 1
+7 21 0 0 0.92041 0
+7 21 1 0 0.92041 0
+7 21 2 0 0.92041 0
+7 21 3 0 0.92041 0
+7 21 4 0 0.92041 0
+7 21 5 0 0.92041 0
+7 21 6 0 0.92041 0
+7 21 7 0 0.92041 0
+7 21 8 0 0.92041 0
+7 21 9 0 0.92041 0
+7 21 10 0 0.92041 0
+7 21 11 0 0.920898 0
+7 21 12 0 0.920898 0
+7 21 13 0 0.92334 0.19397
+7 21 14 0 0.927246 0.307617
+7 21 15 0 0.932129 0.408203
+7 21 16 0 0.936035 0.509277
+7 21 17 0 0.9375 0.609863
+7 21 18 0 0.933594 0.706543
+7 21 19 0 0.92334 0.794434
+7 21 20 0 0.90625 0.869141
+7 21 21 0 0.883789 0.932129
+7 21 22 0 0.854492 0.97998
+7 21 23 0 0.820801 1
+7 21 24 0 0.785645 1
+7 21 25 0 0.748047 1
+7 21 26 0 0.709473 1
+7 21 27 0 0.671387 1
+7 21 28 0 0.635254 1
+7 21 29 0 0.601074 1
+7 21 30 0 0.569824 1
+7 21 31 0 0.541016 1
+7 22 0 0 0.962402 0
+7 22 1 0 0.962402 0
+7 22 2 0 0.962402 0
+7 22 3 0 0.962402 0
+7 22 4 0 0.962402 0
+7 22 5 0 0.962402 0
+7 22 6 0 0.962402 0
+7 22 7 0 0.962402 0
+7 22 8 0 0.962402 0
+7 22 9 0 0.962402 0
+7 22 10 0 0.962402 0
+7 22 11 0 0.962402 0
+7 22 12 0 0.962891 0
+7 22 13 0 0.964355 0.131592
+7 22 14 0 0.968262 0.273682
+7 22 15 0 0.973633 0.378662
+7 22 16 0 0.979004 0.480469
+7 22 17 0 0.982422 0.581055
+7 22 18 0 0.981445 0.678223
+7 22 19 0 0.974609 0.768066
+7 22 20 0 0.960938 0.846191
+7 22 21 0 0.941406 0.912598
+7 22 22 0 0.916504 0.967285
+7 22 23 0 0.887695 1
+7 22 24 0 0.85498 1
+7 22 25 0 0.817871 1
+7 22 26 0 0.77832 1
+7 22 27 0 0.737305 1
+7 22 28 0 0.697266 1
+7 22 29 0 0.65918 1
+7 22 30 0 0.623047 1
+7 22 31 0 0.589844 1
+7 23 0 0 0.996094 0
+7 23 1 0 0.996094 0
+7 23 2 0 0.996094 0
+7 23 3 0 0.996094 0
+7 23 4 0 0.996094 0
+7 23 5 0 0.996094 0
+7 23 6 0 0.996094 0
+7 23 7 0 0.996094 0
+7 23 8 0 0.996094 0
+7 23 9 0 0.996094 0
+7 23 10 0 0.996094 0
+7 23 11 0 0.996094 0
+7 23 12 0 0.996094 0
+7 23 13 0 0.996582 0
+7 23 14 0 1 0.237183
+7 23 15 0 1 0.349121
+7 23 16 0 1 0.451904
+7 23 17 0 1 0.552734
+7 23 18 0 1 0.649902
+7 23 19 0 1 0.740234
+7 23 20 0 1 0.820312
+7 23 21 0 0.98877 0.890137
+7 23 22 0 0.967285 0.948242
+7 23 23 0 0.941895 0.993652
+7 23 24 0 0.913574 1
+7 23 25 0 0.879395 1
+7 23 26 0 0.840332 1
+7 23 27 0 0.79834 1
+7 23 28 0 0.756348 1
+7 23 29 0 0.714844 1
+7 23 30 0 0.674805 1
+7 23 31 0 0.637695 1
+7 24 0 0 1 0
+7 24 1 0 1 0
+7 24 2 0 1 0
+7 24 3 0 1 0
+7 24 4 0 1 0
+7 24 5 0 1 0
+7 24 6 0 1 0
+7 24 7 0 1 0
+7 24 8 0 1 0
+7 24 9 0 1 0
+7 24 10 0 1 0
+7 24 11 0 1 0
+7 24 12 0 1 0
+7 24 13 0 1 0
+7 24 14 0 1 0.195801
+7 24 15 0 1 0.31958
+7 24 16 0 1 0.424072
+7 24 17 0 1 0.524414
+7 24 18 0 1 0.621094
+7 24 19 0 1 0.711426
+7 24 20 0 1 0.792969
+7 24 21 0 1 0.864746
+7 24 22 0 1 0.92627
+7 24 23 0 0.986816 0.975586
+7 24 24 0 0.961914 1
+7 24 25 0 0.931641 1
+7 24 26 0 0.89502 1
+7 24 27 0 0.854004 1
+7 24 28 0 0.810547 1
+7 24 29 0 0.76709 1
+7 24 30 0 0.724609 1
+7 24 31 0 0.683594 1
+7 25 0 0 1 0
+7 25 1 0 1 0
+7 25 2 0 1 0
+7 25 3 0 1 0
+7 25 4 0 1 0
+7 25 5 0 1 0
+7 25 6 0 1 0
+7 25 7 0 1 0
+7 25 8 0 1 0
+7 25 9 0 1 0
+7 25 10 0 1 0
+7 25 11 0 1 0
+7 25 12 0 1 0
+7 25 13 0 1 0
+7 25 14 0 1 0.135742
+7 25 15 0 1 0.286133
+7 25 16 0 1 0.394043
+7 25 17 0 1 0.493896
+7 25 18 0 1 0.589844
+7 25 19 0 1 0.680176
+7 25 20 0 1 0.761719
+7 25 21 0 1 0.835449
+7 25 22 0 1 0.899414
+7 25 23 0 1 0.952148
+7 25 24 0 1 0.995605
+7 25 25 0 0.979492 1
+7 25 26 0 0.946777 1
+7 25 27 0 0.907715 1
+7 25 28 0 0.865234 1
+7 25 29 0 0.820312 1
+7 25 30 0 0.775879 1
+7 25 31 0 0.732422 1
+7 26 0 0 1 0
+7 26 1 0 1 0
+7 26 2 0 1 0
+7 26 3 0 1 0
+7 26 4 0 1 0
+7 26 5 0 1 0
+7 26 6 0 1 0
+7 26 7 0 1 0
+7 26 8 0 1 0
+7 26 9 0 1 0
+7 26 10 0 1 0
+7 26 11 0 1 0
+7 26 12 0 1 0
+7 26 13 0 1 0
+7 26 14 0 1 0
+7 26 15 0 1 0.247681
+7 26 16 0 1 0.361572
+7 26 17 0 1 0.46167
+7 26 18 0 1 0.556641
+7 26 19 0 1 0.645508
+7 26 20 0 1 0.727539
+7 26 21 0 1 0.802246
+7 26 22 0 1 0.868652
+7 26 23 0 1 0.923828
+7 26 24 0 1 0.970215
+7 26 25 0 1 1
+7 26 26 0 0.994629 1
+7 26 27 0 0.958984 1
+7 26 28 0 0.918457 1
+7 26 29 0 0.874023 1
+7 26 30 0 0.828125 1
+7 26 31 0 0.782715 1
+7 27 0 0 1 0
+7 27 1 0 1 0
+7 27 2 0 1 0
+7 27 3 0 1 0
+7 27 4 0 1 0
+7 27 5 0 1 0
+7 27 6 0 1 0
+7 27 7 0 1 0
+7 27 8 0 1 0
+7 27 9 0 1 0
+7 27 10 0 1 0
+7 27 11 0 1 0
+7 27 12 0 1 0
+7 27 13 0 1 0
+7 27 14 0 1 0
+7 27 15 0 1 0.200195
+7 27 16 0 1 0.326172
+7 27 17 0 1 0.427734
+7 27 18 0 1 0.521484
+7 27 19 0 1 0.609375
+7 27 20 0 1 0.69043
+7 27 21 0 1 0.765625
+7 27 22 0 1 0.833008
+7 27 23 0 1 0.890625
+7 27 24 0 1 0.939941
+7 27 25 0 1 0.985352
+7 27 26 0 1 1
+7 27 27 0 1 1
+7 27 28 0 0.968262 1
+7 27 29 0 0.925293 1
+7 27 30 0 0.879883 1
+7 27 31 0 0.833008 1
+7 28 0 0 1 0
+7 28 1 0 1 0
+7 28 2 0 1 0
+7 28 3 0 1 0
+7 28 4 0 1 0
+7 28 5 0 1 0
+7 28 6 0 1 0
+7 28 7 0 1 0
+7 28 8 0 1 0
+7 28 9 0 1 0
+7 28 10 0 1 0
+7 28 11 0 1 0
+7 28 12 0 1 0
+7 28 13 0 1 0
+7 28 14 0 1 0
+7 28 15 0 1 0.129883
+7 28 16 0 1 0.287109
+7 28 17 0 1 0.391602
+7 28 18 0 1 0.484863
+7 28 19 0 1 0.571289
+7 28 20 0 1 0.651367
+7 28 21 0 1 0.726074
+7 28 22 0 1 0.793945
+7 28 23 0 1 0.853027
+7 28 24 0 1 0.904297
+7 28 25 0 1 0.952637
+7 28 26 0 1 0.997559
+7 28 27 0 1 1
+7 28 28 0 1 1
+7 28 29 0 0.974121 1
+7 28 30 0 0.930664 1
+7 28 31 0 0.884277 1
+7 29 0 0 1 0
+7 29 1 0 1 0
+7 29 2 0 1 0
+7 29 3 0 1 0
+7 29 4 0 1 0
+7 29 5 0 1 0
+7 29 6 0 1 0
+7 29 7 0 1 0
+7 29 8 0 1 0
+7 29 9 0 1 0
+7 29 10 0 1 0
+7 29 11 0 1 0
+7 29 12 0 1 0
+7 29 13 0 1 0
+7 29 14 0 1 0
+7 29 15 0 1 0
+7 29 16 0 1 0.242188
+7 29 17 0 1 0.353271
+7 29 18 0 1 0.446777
+7 29 19 0 1 0.531738
+7 29 20 0 1 0.609863
+7 29 21 0 1 0.683594
+7 29 22 0 1 0.751465
+7 29 23 0 1 0.811035
+7 29 24 0 1 0.86377
+7 29 25 0 1 0.914551
+7 29 26 0 1 0.962402
+7 29 27 0 1 1
+7 29 28 0 1 1
+7 29 29 0 1 1
+7 29 30 0 0.979004 1
+7 29 31 0 0.93457 1
+7 30 0 0 1 0
+7 30 1 0 1 0
+7 30 2 0 1 0
+7 30 3 0 1 0
+7 30 4 0 1 0
+7 30 5 0 1 0
+7 30 6 0 1 0
+7 30 7 0 1 0
+7 30 8 0 1 0
+7 30 9 0 1 0
+7 30 10 0 1 0
+7 30 11 0 1 0
+7 30 12 0 1 0
+7 30 13 0 1 0
+7 30 14 0 1 0
+7 30 15 0 1 0
+7 30 16 0 1 0.186279
+7 30 17 0 1 0.312012
+7 30 18 0 1 0.406738
+7 30 19 0 1 0.490723
+7 30 20 0 1 0.567383
+7 30 21 0 1 0.63916
+7 30 22 0 1 0.705566
+7 30 23 0 1 0.765137
+7 30 24 0 1 0.818848
+7 30 25 0 1 0.870605
+7 30 26 0 1 0.921387
+7 30 27 0 1 0.96875
+7 30 28 0 1 1
+7 30 29 0 1 1
+7 30 30 0 1 1
+7 30 31 0 0.98291 1
+7 31 0 0 1 0
+7 31 1 0 1 0
+7 31 2 0 1 0
+7 31 3 0 1 0
+7 31 4 0 1 0
+7 31 5 0 1 0
+7 31 6 0 1 0
+7 31 7 0 1 0
+7 31 8 0 1 0
+7 31 9 0 1 0
+7 31 10 0 1 0
+7 31 11 0 1 0
+7 31 12 0 1 0
+7 31 13 0 1 0
+7 31 14 0 1 0
+7 31 15 0 1 0
+7 31 16 0 1 0.0896606
+7 31 17 0 1 0.266846
+7 31 18 0 1 0.365234
+7 31 19 0 1 0.448486
+7 31 20 0 1 0.523438
+7 31 21 0 1 0.593262
+7 31 22 0 1 0.658203
+7 31 23 0 1 0.716797
+7 31 24 0 1 0.77002
+7 31 25 0 1 0.823242
+7 31 26 0 1 0.875488
+7 31 27 0 1 0.92627
+7 31 28 0 1 0.973145
+7 31 29 0 1 1
+7 31 30 0 1 1
+7 31 31 0 1 1
+8 0 0 0.17688 0 0.00891113
+8 0 1 0.176758 0 0.00878906
+8 0 2 0.176758 0 0.00857544
+8 0 3 0.17688 0 0.0083313
+8 0 4 0.177002 0 0.0219116
+8 0 5 0.175415 0 0.0564575
+8 0 6 0.170776 0 0.0817871
+8 0 7 0.148315 0.0249786 0.0984497
+8 0 8 0.130127 0.0427856 0.115112
+8 0 9 0.121216 0.0474243 0.146729
+8 0 10 0.104309 0.0550232 0.1875
+8 0 11 0.0476074 0.0663452 0.240601
+8 0 12 0 0.0805664 0.303467
+8 0 13 0 0.09729 0.374512
+8 0 14 0 0.116089 0.452881
+8 0 15 0 0.136475 0.536133
+8 0 16 0 0.157837 0.623047
+8 0 17 0 0.178467 0.706543
+8 0 18 0 0.19751 0.783203
+8 0 19 0 0.214233 0.850586
+8 0 20 0 0.223633 0.888184
+8 0 21 0 0.225342 0.895508
+8 0 22 0 0.227295 0.90332
+8 0 23 0 0.229126 0.911133
+8 0 24 0 0.231079 0.918945
+8 0 25 0 0.233276 0.927734
+8 0 26 0 0.235718 0.9375
+8 0 27 0 0.238281 0.948242
+8 0 28 0 0.241333 0.960449
+8 0 29 0 0.244507 0.973145
+8 0 30 0 0.247925 0.986328
+8 0 31 0 0.251465 1
+8 1 0 0.176514 0 0.0072403
+8 1 1 0.176514 0 0.00707626
+8 1 2 0.176514 0 0.00677109
+8 1 3 0.176636 0 0.00640106
+8 1 4 0.176758 0 0.0214233
+8 1 5 0.175293 0 0.0563049
+8 1 6 0.170654 0 0.081665
+8 1 7 0.148438 0.0276184 0.0985107
+8 1 8 0.130127 0.0437317 0.115112
+8 1 9 0.121155 0.0482178 0.146729
+8 1 10 0.104187 0.0556335 0.1875
+8 1 11 0.0472412 0.0668335 0.240601
+8 1 12 0 0.0809326 0.303467
+8 1 13 0 0.0975342 0.374512
+8 1 14 0 0.116333 0.452881
+8 1 15 0 0.136597 0.536133
+8 1 16 0 0.157959 0.623047
+8 1 17 0 0.178589 0.706543
+8 1 18 0 0.19751 0.783203
+8 1 19 0 0.214355 0.850586
+8 1 20 0 0.223755 0.888184
+8 1 21 0 0.225464 0.895508
+8 1 22 0 0.227295 0.90332
+8 1 23 0 0.229248 0.911133
+8 1 24 0 0.231079 0.918945
+8 1 25 0 0.233276 0.927734
+8 1 26 0 0.235718 0.9375
+8 1 27 0 0.238403 0.948242
+8 1 28 0 0.241333 0.960449
+8 1 29 0 0.244629 0.973145
+8 1 30 0 0.247925 0.986328
+8 1 31 0 0.251465 1
+8 2 0 0.175903 0.0134659 0
+8 2 1 0.175903 0.014534 0
+8 2 2 0.175903 0.0161591 0
+8 2 3 0.176025 0.017746 0
+8 2 4 0.17627 0.0183258 0.0205841
+8 2 5 0.174927 0.00848389 0.0560303
+8 2 6 0.170532 0 0.081543
+8 2 7 0.14856 0.0315552 0.0986328
+8 2 8 0.130005 0.0453491 0.115112
+8 2 9 0.121033 0.0495911 0.146729
+8 2 10 0.104004 0.0567627 0.1875
+8 2 11 0.0465393 0.067688 0.240601
+8 2 12 0 0.081604 0.303467
+8 2 13 0 0.0980835 0.374512
+8 2 14 0 0.116699 0.452881
+8 2 15 0 0.136963 0.536133
+8 2 16 0 0.158081 0.623047
+8 2 17 0 0.178711 0.706543
+8 2 18 0 0.197632 0.783203
+8 2 19 0 0.214478 0.850586
+8 2 20 0 0.223755 0.888672
+8 2 21 0 0.225464 0.895508
+8 2 22 0 0.227295 0.90332
+8 2 23 0 0.229248 0.911133
+8 2 24 0 0.231201 0.918945
+8 2 25 0 0.233276 0.927734
+8 2 26 0 0.235718 0.9375
+8 2 27 0 0.238403 0.948242
+8 2 28 0 0.241333 0.960449
+8 2 29 0 0.244629 0.973145
+8 2 30 0 0.247925 0.986328
+8 2 31 0 0.251465 1
+8 3 0 0.174805 0.0322876 0
+8 3 1 0.174805 0.0325623 0
+8 3 2 0.174683 0.03302 0
+8 3 3 0.174927 0.0335693 0
+8 3 4 0.175293 0.033783 0.0190887
+8 3 5 0.174316 0.0310974 0.0555115
+8 3 6 0.170166 0.0272675 0.0812988
+8 3 7 0.148926 0.037323 0.098877
+8 3 8 0.129761 0.0480652 0.115051
+8 3 9 0.120728 0.0519409 0.146729
+8 3 10 0.103699 0.0586853 0.1875
+8 3 11 0.0452576 0.0692749 0.240601
+8 3 12 0 0.0828247 0.303467
+8 3 13 0 0.098938 0.374512
+8 3 14 0 0.117371 0.452881
+8 3 15 0 0.137451 0.536133
+8 3 16 0 0.158447 0.623047
+8 3 17 0 0.178955 0.706543
+8 3 18 0 0.197876 0.783203
+8 3 19 0 0.2146 0.850586
+8 3 20 0 0.223999 0.888672
+8 3 21 0 0.225586 0.895508
+8 3 22 0 0.227417 0.90332
+8 3 23 0 0.22937 0.911133
+8 3 24 0 0.231201 0.918945
+8 3 25 0 0.233398 0.927734
+8 3 26 0 0.235718 0.9375
+8 3 27 0 0.238403 0.948242
+8 3 28 0 0.241455 0.960449
+8 3 29 0 0.244629 0.973145
+8 3 30 0 0.247925 0.986328
+8 3 31 0 0.251465 1
+8 4 0 0.172485 0.0468445 0
+8 4 1 0.172485 0.0469666 0
+8 4 2 0.172485 0.0472412 0
+8 4 3 0.172607 0.0475769 0
+8 4 4 0.173218 0.0477295 0.0165405
+8 4 5 0.172974 0.0462036 0.0545654
+8 4 6 0.169312 0.0436707 0.0806885
+8 4 7 0.149536 0.0456848 0.0993652
+8 4 8 0.129272 0.0526428 0.11499
+8 4 9 0.120239 0.0559692 0.146606
+8 4 10 0.103088 0.0621033 0.1875
+8 4 11 0.0426636 0.0720215 0.240479
+8 4 12 0 0.085022 0.303467
+8 4 13 0 0.100647 0.374512
+8 4 14 0 0.118652 0.452881
+8 4 15 0 0.138428 0.536133
+8 4 16 0 0.15918 0.623047
+8 4 17 0 0.179565 0.706543
+8 4 18 0 0.198364 0.783203
+8 4 19 0 0.214966 0.850586
+8 4 20 0 0.224243 0.888672
+8 4 21 0 0.22583 0.895508
+8 4 22 0 0.227661 0.90332
+8 4 23 0 0.229492 0.911133
+8 4 24 0 0.231323 0.918945
+8 4 25 0 0.233521 0.927734
+8 4 26 0 0.23584 0.9375
+8 4 27 0 0.238525 0.948242
+8 4 28 0 0.241455 0.960449
+8 4 29 0 0.244629 0.973145
+8 4 30 0 0.248047 0.986328
+8 4 31 0 0.251465 1
+8 5 0 0.167725 0.0622253 0
+8 5 1 0.167725 0.0623169 0
+8 5 2 0.167603 0.062439 0
+8 5 3 0.167847 0.0626831 0
+8 5 4 0.168701 0.0629272 0.0142822
+8 5 5 0.169189 0.0623169 0.052887
+8 5 6 0.167114 0.0605469 0.0794067
+8 5 7 0.150635 0.0578308 0.100281
+8 5 8 0.128418 0.0600281 0.114929
+8 5 9 0.119324 0.0626221 0.146606
+8 5 10 0.101807 0.0679321 0.187378
+8 5 11 0.0367737 0.0769653 0.240479
+8 5 12 0 0.0889893 0.303467
+8 5 13 0 0.10376 0.374512
+8 5 14 0 0.121033 0.452881
+8 5 15 0 0.140137 0.536133
+8 5 16 0 0.160645 0.623047
+8 5 17 0 0.180542 0.706543
+8 5 18 0 0.199219 0.783203
+8 5 19 0 0.215576 0.850586
+8 5 20 0 0.224731 0.888672
+8 5 21 0 0.226196 0.895508
+8 5 22 0 0.227905 0.90332
+8 5 23 0 0.229736 0.911133
+8 5 24 0 0.231567 0.918945
+8 5 25 0 0.233643 0.927734
+8 5 26 0 0.236084 0.9375
+8 5 27 0 0.238647 0.948242
+8 5 28 0 0.241577 0.960449
+8 5 29 0 0.244751 0.973145
+8 5 30 0 0.248169 0.986328
+8 5 31 0 0.251465 1
+8 6 0 0.158081 0.0779419 0
+8 6 1 0.158081 0.0780029 0
+8 6 2 0.158081 0.078064 0
+8 6 3 0.158081 0.078186 0
+8 6 4 0.158813 0.0785522 0.0214081
+8 6 5 0.160034 0.0788574 0.0509644
+8 6 6 0.161499 0.0790405 0.0766602
+8 6 7 0.152466 0.0753784 0.101685
+8 6 8 0.126831 0.0710449 0.114685
+8 6 9 0.117493 0.072937 0.146484
+8 6 10 0.0993652 0.0772705 0.187256
+8 6 11 0.0150299 0.0852051 0.240356
+8 6 12 0 0.0959473 0.303223
+8 6 13 0 0.109375 0.374512
+8 6 14 0 0.125366 0.452881
+8 6 15 0 0.143555 0.536133
+8 6 16 0 0.163208 0.623047
+8 6 17 0 0.182617 0.706543
+8 6 18 0 0.200684 0.783203
+8 6 19 0 0.216919 0.850586
+8 6 20 0 0.225708 0.888672
+8 6 21 0 0.227051 0.895996
+8 6 22 0 0.228638 0.90332
+8 6 23 0 0.230347 0.911133
+8 6 24 0 0.232056 0.918945
+8 6 25 0 0.234131 0.927734
+8 6 26 0 0.236328 0.9375
+8 6 27 0 0.238892 0.948242
+8 6 28 0 0.241821 0.960449
+8 6 29 0 0.244995 0.973145
+8 6 30 0 0.248291 0.986816
+8 6 31 0 0.251709 1
+8 7 0 0.143188 0.0925903 0.0245514
+8 7 1 0.143188 0.0925903 0.0245972
+8 7 2 0.143066 0.0926514 0.0246582
+8 7 3 0.143066 0.0927124 0.0247955
+8 7 4 0.142944 0.0928345 0.0368042
+8 7 5 0.1427 0.0930786 0.0527039
+8 7 6 0.143188 0.0939941 0.0715942
+8 7 7 0.14624 0.0966797 0.0987549
+8 7 8 0.123413 0.0869141 0.114258
+8 7 9 0.11377 0.0881348 0.14624
+8 7 10 0.0943604 0.0915527 0.187134
+8 7 11 0 0.0983887 0.240112
+8 7 12 0 0.107483 0.303223
+8 7 13 0 0.11908 0.374268
+8 7 14 0 0.133301 0.452881
+8 7 15 0 0.14978 0.536133
+8 7 16 0 0.168091 0.623047
+8 7 17 0 0.186401 0.706543
+8 7 18 0 0.203735 0.783203
+8 7 19 0 0.219238 0.850586
+8 7 20 0 0.227661 0.888672
+8 7 21 0 0.228516 0.895996
+8 7 22 0 0.229858 0.903809
+8 7 23 0 0.231323 0.911133
+8 7 24 0 0.233032 0.919434
+8 7 25 0 0.234863 0.927734
+8 7 26 0 0.237061 0.9375
+8 7 27 0 0.239502 0.948242
+8 7 28 0 0.24231 0.960449
+8 7 29 0 0.245483 0.973145
+8 7 30 0 0.248657 0.986816
+8 7 31 0 0.251953 1
+8 8 0 0.135864 0.116699 0.038147
+8 8 1 0.135864 0.11676 0.038147
+8 8 2 0.135864 0.11676 0.0381775
+8 8 3 0.135864 0.116821 0.0381775
+8 8 4 0.13562 0.116821 0.041687
+8 8 5 0.134277 0.116272 0.055481
+8 8 6 0.131714 0.115295 0.0718384
+8 8 7 0.126587 0.11322 0.0914307
+8 8 8 0.116211 0.108765 0.113281
+8 8 9 0.105896 0.109558 0.145752
+8 8 10 0.0831299 0.112183 0.186768
+8 8 11 0 0.118042 0.239746
+8 8 12 0 0.12561 0.302979
+8 8 13 0 0.135132 0.374268
+8 8 14 0 0.146851 0.452637
+8 8 15 0 0.160889 0.536133
+8 8 16 0 0.177002 0.623047
+8 8 17 0 0.193481 0.706543
+8 8 18 0 0.209351 0.783203
+8 8 19 0 0.223877 0.850586
+8 8 20 0 0.231445 0.88916
+8 8 21 0 0.231567 0.895996
+8 8 22 0 0.2323 0.903809
+8 8 23 0 0.233398 0.911621
+8 8 24 0 0.234741 0.919434
+8 8 25 0 0.236328 0.928223
+8 8 26 0 0.238281 0.9375
+8 8 27 0 0.240601 0.948242
+8 8 28 0 0.243286 0.960449
+8 8 29 0 0.246216 0.973145
+8 8 30 0 0.24939 0.986816
+8 8 31 0 0.252686 1
+8 9 0 0.11499 0.141724 0.0358276
+8 9 1 0.11499 0.141846 0.0358276
+8 9 2 0.11499 0.141846 0.0358276
+8 9 3 0.115051 0.141846 0.0358276
+8 9 4 0.115051 0.141968 0.0358582
+8 9 5 0.114197 0.141602 0.0473328
+8 9 6 0.111816 0.140503 0.0653076
+8 9 7 0.107422 0.138672 0.0859375
+8 9 8 0.100281 0.137329 0.111511
+8 9 9 0.0873413 0.138184 0.144775
+8 9 10 0.0489502 0.140381 0.186157
+8 9 11 0 0.14563 0.239258
+8 9 12 0 0.151978 0.30249
+8 9 13 0 0.159302 0.374023
+8 9 14 0 0.168335 0.452637
+8 9 15 0 0.179321 0.536133
+8 9 16 0 0.192261 0.623047
+8 9 17 0 0.206055 0.706543
+8 9 18 0 0.219604 0.783203
+8 9 19 0 0.232178 0.851074
+8 9 20 0 0.238281 0.889648
+8 9 21 0 0.237061 0.896484
+8 9 22 0 0.236816 0.904297
+8 9 23 0 0.237183 0.911621
+8 9 24 0 0.238037 0.919434
+8 9 25 0 0.239258 0.928223
+8 9 26 0 0.240723 0.937988
+8 9 27 0 0.242676 0.94873
+8 9 28 0 0.245117 0.960449
+8 9 29 0 0.247803 0.973633
+8 9 30 0 0.250732 0.986816
+8 9 31 0 0.253662 1
+8 10 0 0.0741577 0.174438 0.0338135
+8 10 1 0.0742188 0.174438 0.0338135
+8 10 2 0.0742188 0.174438 0.0338135
+8 10 3 0.0742798 0.174438 0.0338135
+8 10 4 0.0743408 0.174561 0.033844
+8 10 5 0.0745239 0.174683 0.0338745
+8 10 6 0.0718384 0.174316 0.0568848
+8 10 7 0.0658569 0.173828 0.0808716
+8 10 8 0.0513611 0.173706 0.108948
+8 10 9 0 0.174438 0.143433
+8 10 10 0 0.176514 0.185669
+8 10 11 0 0.181274 0.238647
+8 10 12 0 0.186646 0.302002
+8 10 13 0 0.192505 0.373535
+8 10 14 0 0.198975 0.452393
+8 10 15 0 0.206665 0.536133
+8 10 16 0 0.216064 0.623047
+8 10 17 0 0.226074 0.707031
+8 10 18 0 0.23645 0.783691
+8 10 19 0 0.246338 0.851074
+8 10 20 0 0.250244 0.890137
+8 10 21 0 0.246704 0.897461
+8 10 22 0 0.244751 0.904785
+8 10 23 0 0.244019 0.912598
+8 10 24 0 0.243896 0.919922
+8 10 25 0 0.244263 0.928711
+8 10 26 0 0.245117 0.938477
+8 10 27 0 0.24646 0.94873
+8 10 28 0 0.248413 0.960938
+8 10 29 0 0.250488 0.973633
+8 10 30 0 0.253174 0.986816
+8 10 31 0 0.255859 1
+8 11 0 0 0.221069 0.0322876
+8 11 1 0 0.221069 0.0322876
+8 11 2 0 0.221069 0.0322876
+8 11 3 0 0.221069 0.0322876
+8 11 4 0 0.221069 0.0323181
+8 11 5 0 0.221191 0.0323486
+8 11 6 0 0.221313 0.0393066
+8 11 7 0 0.221069 0.0734253
+8 11 8 0 0.220947 0.105469
+8 11 9 0 0.221313 0.14209
+8 11 10 0 0.222778 0.185547
+8 11 11 0 0.226074 0.238037
+8 11 12 0 0.230469 0.301025
+8 11 13 0 0.234985 0.372803
+8 11 14 0 0.239502 0.452148
+8 11 15 0 0.244141 0.536133
+8 11 16 0 0.249756 0.623535
+8 11 17 0 0.255859 0.707031
+8 11 18 0 0.262207 0.78418
+8 11 19 0 0.268311 0.851562
+8 11 20 0 0.269043 0.89209
+8 11 21 0 0.262451 0.898438
+8 11 22 0 0.257812 0.905762
+8 11 23 0 0.255127 0.913574
+8 11 24 0 0.253662 0.920898
+8 11 25 0 0.252686 0.929688
+8 11 26 0 0.252441 0.938965
+8 11 27 0 0.25293 0.949707
+8 11 28 0 0.253906 0.961426
+8 11 29 0 0.255371 0.974121
+8 11 30 0 0.257324 0.987305
+8 11 31 0 0.259521 1
+8 12 0 0 0.279053 0.0290985
+8 12 1 0 0.279053 0.0291138
+8 12 2 0 0.279297 0.0291138
+8 12 3 0 0.279297 0.029129
+8 12 4 0 0.279297 0.0291443
+8 12 5 0 0.279297 0.0291901
+8 12 6 0 0.279297 0.0292816
+8 12 7 0 0.279541 0.0541382
+8 12 8 0 0.279297 0.0975952
+8 12 9 0 0.279541 0.138794
+8 12 10 0 0.280029 0.184326
+8 12 11 0 0.281494 0.237183
+8 12 12 0 0.284424 0.299561
+8 12 13 0 0.287598 0.371582
+8 12 14 0 0.290527 0.451416
+8 12 15 0 0.292725 0.536133
+8 12 16 0 0.294922 0.623535
+8 12 17 0 0.296875 0.70752
+8 12 18 0 0.298584 0.784668
+8 12 19 0 0.300781 0.852539
+8 12 20 0 0.297607 0.894531
+8 12 21 0 0.286377 0.900879
+8 12 22 0 0.27832 0.907715
+8 12 23 0 0.272949 0.915039
+8 12 24 0 0.269043 0.922852
+8 12 25 0 0.266357 0.931152
+8 12 26 0 0.264404 0.94043
+8 12 27 0 0.263184 0.950684
+8 12 28 0 0.262939 0.962402
+8 12 29 0 0.263428 0.975098
+8 12 30 0 0.26416 0.988281
+8 12 31 0 0.265381 1
+8 13 0 0 0.345459 0.0206909
+8 13 1 0 0.345459 0.0207062
+8 13 2 0 0.345459 0.0207062
+8 13 3 0 0.345703 0.0207367
+8 13 4 0 0.345703 0.0207672
+8 13 5 0 0.345703 0.0208435
+8 13 6 0 0.345703 0.0209961
+8 13 7 0 0.345947 0.0212708
+8 13 8 0 0.345947 0.0773926
+8 13 9 0 0.346191 0.129395
+8 13 10 0 0.346436 0.179321
+8 13 11 0 0.347168 0.234253
+8 13 12 0 0.348389 0.297363
+8 13 13 0 0.350342 0.369385
+8 13 14 0 0.351807 0.449707
+8 13 15 0 0.352051 0.535156
+8 13 16 0 0.351318 0.623535
+8 13 17 0 0.349365 0.708496
+8 13 18 0 0.34668 0.785645
+8 13 19 0 0.344238 0.853516
+8 13 20 0 0.337158 0.898438
+8 13 21 0 0.320312 0.904297
+8 13 22 0 0.307861 0.911133
+8 13 23 0 0.298828 0.917969
+8 13 24 0 0.292236 0.925293
+8 13 25 0 0.286621 0.933105
+8 13 26 0 0.282471 0.942383
+8 13 27 0 0.279053 0.952637
+8 13 28 0 0.276855 0.963867
+8 13 29 0 0.275635 0.976562
+8 13 30 0 0.274902 0.989258
+8 13 31 0 0.274902 1
+8 14 0 0 0.419434 0
+8 14 1 0 0.419434 0
+8 14 2 0 0.419434 0
+8 14 3 0 0.419434 0
+8 14 4 0 0.419678 0
+8 14 5 0 0.419678 0
+8 14 6 0 0.419678 0
+8 14 7 0 0.419678 0
+8 14 8 0 0.419922 0
+8 14 9 0 0.420166 0.108826
+8 14 10 0 0.420654 0.168091
+8 14 11 0 0.421143 0.227295
+8 14 12 0 0.421875 0.29248
+8 14 13 0 0.422852 0.365234
+8 14 14 0 0.423096 0.446289
+8 14 15 0 0.422119 0.532715
+8 14 16 0 0.418945 0.622559
+8 14 17 0 0.413574 0.708496
+8 14 18 0 0.406738 0.786621
+8 14 19 0 0.399902 0.85498
+8 14 20 0 0.38916 0.903809
+8 14 21 0 0.365723 0.909668
+8 14 22 0 0.3479 0.916016
+8 14 23 0 0.334473 0.922852
+8 14 24 0 0.324219 0.929688
+8 14 25 0 0.31543 0.937012
+8 14 26 0 0.308105 0.945801
+8 14 27 0 0.302002 0.955566
+8 14 28 0 0.297363 0.966797
+8 14 29 0 0.293701 0.978516
+8 14 30 0 0.290771 0.991211
+8 14 31 0 0.288818 1
+8 15 0 0 0.499023 0
+8 15 1 0 0.499023 0
+8 15 2 0 0.499023 0
+8 15 3 0 0.499023 0
+8 15 4 0 0.499023 0
+8 15 5 0 0.499023 0
+8 15 6 0 0.499023 0
+8 15 7 0 0.499023 0
+8 15 8 0 0.499268 0
+8 15 9 0 0.499512 0.0500183
+8 15 10 0 0.5 0.146973
+8 15 11 0 0.500977 0.213867
+8 15 12 0 0.501953 0.282715
+8 15 13 0 0.502441 0.357666
+8 15 14 0 0.502441 0.439941
+8 15 15 0 0.500977 0.52832
+8 15 16 0 0.496338 0.619629
+8 15 17 0 0.488281 0.707031
+8 15 18 0 0.478027 0.786621
+8 15 19 0 0.466797 0.855957
+8 15 20 0 0.453613 0.910645
+8 15 21 0 0.42334 0.91748
+8 15 22 0 0.399414 0.923828
+8 15 23 0 0.381104 0.930176
+8 15 24 0 0.366455 0.936035
+8 15 25 0 0.35376 0.943359
+8 15 26 0 0.342773 0.951172
+8 15 27 0 0.333252 0.960449
+8 15 28 0 0.325439 0.970703
+8 15 29 0 0.318604 0.982422
+8 15 30 0 0.313232 0.994629
+8 15 31 0 0.308594 1
+8 16 0 0 0.58252 0
+8 16 1 0 0.58252 0
+8 16 2 0 0.58252 0
+8 16 3 0 0.58252 0
+8 16 4 0 0.58252 0
+8 16 5 0 0.58252 0
+8 16 6 0 0.58252 0
+8 16 7 0 0.58252 0
+8 16 8 0 0.58252 0
+8 16 9 0 0.583008 0
+8 16 10 0 0.583496 0.104309
+8 16 11 0 0.584473 0.19165
+8 16 12 0 0.585449 0.266846
+8 16 13 0 0.586914 0.344971
+8 16 14 0 0.587402 0.429199
+8 16 15 0 0.585938 0.519531
+8 16 16 0 0.581055 0.612793
+8 16 17 0 0.571777 0.703125
+8 16 18 0 0.559082 0.785156
+8 16 19 0 0.543945 0.856445
+8 16 20 0 0.52832 0.914551
+8 16 21 0 0.493164 0.927734
+8 16 22 0 0.463135 0.935059
+8 16 23 0 0.439209 0.940918
+8 16 24 0 0.419922 0.946777
+8 16 25 0 0.402588 0.953125
+8 16 26 0 0.387207 0.959961
+8 16 27 0 0.373535 0.968262
+8 16 28 0 0.361816 0.977539
+8 16 29 0 0.351562 0.988281
+8 16 30 0 0.342773 0.999512
+8 16 31 0 0.335205 1
+8 17 0 0 0.664551 0
+8 17 1 0 0.665039 0
+8 17 2 0 0.665039 0
+8 17 3 0 0.665039 0
+8 17 4 0 0.665039 0
+8 17 5 0 0.665039 0
+8 17 6 0 0.665039 0
+8 17 7 0 0.665039 0
+8 17 8 0 0.665039 0
+8 17 9 0 0.665039 0
+8 17 10 0 0.665527 0
+8 17 11 0 0.666504 0.15564
+8 17 12 0 0.667969 0.243774
+8 17 13 0 0.669922 0.326416
+8 17 14 0 0.671387 0.41333
+8 17 15 0 0.670898 0.505371
+8 17 16 0 0.666992 0.601074
+8 17 17 0 0.658203 0.694336
+8 17 18 0 0.644531 0.779785
+8 17 19 0 0.627441 0.854004
+8 17 20 0 0.608398 0.914551
+8 17 21 0 0.572266 0.937988
+8 17 22 0 0.537109 0.94873
+8 17 23 0 0.507812 0.956055
+8 17 24 0 0.483398 0.961426
+8 17 25 0 0.460938 0.966797
+8 17 26 0 0.440674 0.972656
+8 17 27 0 0.422363 0.979492
+8 17 28 0 0.40625 0.987793
+8 17 29 0 0.391846 0.99707
+8 17 30 0 0.37915 1
+8 17 31 0 0.368164 1
+8 18 0 0 0.741699 0
+8 18 1 0 0.741699 0
+8 18 2 0 0.741699 0
+8 18 3 0 0.741699 0
+8 18 4 0 0.741699 0
+8 18 5 0 0.741699 0
+8 18 6 0 0.741699 0
+8 18 7 0 0.741699 0
+8 18 8 0 0.741699 0
+8 18 9 0 0.741699 0
+8 18 10 0 0.741699 0
+8 18 11 0 0.742676 0.0804443
+8 18 12 0 0.744141 0.211548
+8 18 13 0 0.746582 0.302002
+8 18 14 0 0.749023 0.391846
+8 18 15 0 0.750488 0.48584
+8 18 16 0 0.749023 0.583496
+8 18 17 0 0.741699 0.680176
+8 18 18 0 0.729004 0.769043
+8 18 19 0 0.711426 0.84668
+8 18 20 0 0.69043 0.910645
+8 18 21 0 0.65625 0.946289
+8 18 22 0 0.618164 0.963867
+8 18 23 0 0.584473 0.973633
+8 18 24 0 0.555176 0.97998
+8 18 25 0 0.527832 0.984863
+8 18 26 0 0.501953 0.989746
+8 18 27 0 0.478516 0.995117
+8 18 28 0 0.45752 1
+8 18 29 0 0.438477 1
+8 18 30 0 0.421631 1
+8 18 31 0 0.406494 1
+8 19 0 0 0.810547 0
+8 19 1 0 0.810547 0
+8 19 2 0 0.810547 0
+8 19 3 0 0.810547 0
+8 19 4 0 0.810547 0
+8 19 5 0 0.810547 0
+8 19 6 0 0.810547 0
+8 19 7 0 0.810547 0
+8 19 8 0 0.810547 0
+8 19 9 0 0.810547 0
+8 19 10 0 0.810547 0
+8 19 11 0 0.811035 0
+8 19 12 0 0.8125 0.166504
+8 19 13 0 0.814941 0.272461
+8 19 14 0 0.818359 0.366699
+8 19 15 0 0.821289 0.462158
+8 19 16 0 0.821777 0.561523
+8 19 17 0 0.817383 0.660156
+8 19 18 0 0.807617 0.75293
+8 19 19 0 0.791016 0.834473
+8 19 20 0 0.77002 0.901855
+8 19 21 0 0.739258 0.949219
+8 19 22 0 0.70166 0.976562
+8 19 23 0 0.665527 0.991211
+8 19 24 0 0.632324 1
+8 19 25 0 0.600098 1
+8 19 26 0 0.569336 1
+8 19 27 0 0.540527 1
+8 19 28 0 0.51416 1
+8 19 29 0 0.48999 1
+8 19 30 0 0.468262 1
+8 19 31 0 0.44873 1
+8 20 0 0 0.870117 0
+8 20 1 0 0.870117 0
+8 20 2 0 0.870117 0
+8 20 3 0 0.870117 0
+8 20 4 0 0.870117 0
+8 20 5 0 0.870117 0
+8 20 6 0 0.870117 0
+8 20 7 0 0.870117 0
+8 20 8 0 0.870117 0
+8 20 9 0 0.870117 0
+8 20 10 0 0.870117 0
+8 20 11 0 0.870117 0
+8 20 12 0 0.871094 0.0818481
+8 20 13 0 0.874023 0.237671
+8 20 14 0 0.877441 0.338867
+8 20 15 0 0.881348 0.436279
+8 20 16 0 0.883789 0.536621
+8 20 17 0 0.882812 0.636719
+8 20 18 0 0.875488 0.731934
+8 20 19 0 0.861816 0.816895
+8 20 20 0 0.841797 0.888184
+8 20 21 0 0.81543 0.944824
+8 20 22 0 0.781738 0.982422
+8 20 23 0 0.745117 1
+8 20 24 0 0.709961 1
+8 20 25 0 0.674316 1
+8 20 26 0 0.638672 1
+8 20 27 0 0.60498 1
+8 20 28 0 0.573242 1
+8 20 29 0 0.544434 1
+8 20 30 0 0.517578 1
+8 20 31 0 0.493652 1
+8 21 0 0 0.92041 0
+8 21 1 0 0.92041 0
+8 21 2 0 0.92041 0
+8 21 3 0 0.92041 0
+8 21 4 0 0.92041 0
+8 21 5 0 0.92041 0
+8 21 6 0 0.92041 0
+8 21 7 0 0.92041 0
+8 21 8 0 0.92041 0
+8 21 9 0 0.92041 0
+8 21 10 0 0.920898 0
+8 21 11 0 0.920898 0
+8 21 12 0 0.920898 0
+8 21 13 0 0.92334 0.194092
+8 21 14 0 0.927734 0.307617
+8 21 15 0 0.932129 0.408203
+8 21 16 0 0.936523 0.509277
+8 21 17 0 0.9375 0.609863
+8 21 18 0 0.933594 0.706543
+8 21 19 0 0.92334 0.794434
+8 21 20 0 0.90625 0.869141
+8 21 21 0 0.883789 0.932129
+8 21 22 0 0.854492 0.97998
+8 21 23 0 0.820801 1
+8 21 24 0 0.785645 1
+8 21 25 0 0.748047 1
+8 21 26 0 0.709473 1
+8 21 27 0 0.671387 1
+8 21 28 0 0.635254 1
+8 21 29 0 0.601074 1
+8 21 30 0 0.569824 1
+8 21 31 0 0.541016 1
+8 22 0 0 0.962402 0
+8 22 1 0 0.962402 0
+8 22 2 0 0.962402 0
+8 22 3 0 0.962402 0
+8 22 4 0 0.962402 0
+8 22 5 0 0.962402 0
+8 22 6 0 0.962402 0
+8 22 7 0 0.962402 0
+8 22 8 0 0.962402 0
+8 22 9 0 0.962402 0
+8 22 10 0 0.962402 0
+8 22 11 0 0.962891 0
+8 22 12 0 0.962891 0
+8 22 13 0 0.964355 0.131714
+8 22 14 0 0.968262 0.273682
+8 22 15 0 0.973633 0.378662
+8 22 16 0 0.979004 0.480469
+8 22 17 0 0.982422 0.581055
+8 22 18 0 0.981445 0.678711
+8 22 19 0 0.974609 0.768066
+8 22 20 0 0.960938 0.846191
+8 22 21 0 0.941406 0.912598
+8 22 22 0 0.916992 0.967285
+8 22 23 0 0.887695 1
+8 22 24 0 0.85498 1
+8 22 25 0 0.817871 1
+8 22 26 0 0.77832 1
+8 22 27 0 0.737305 1
+8 22 28 0 0.697266 1
+8 22 29 0 0.65918 1
+8 22 30 0 0.623535 1
+8 22 31 0 0.589844 1
+8 23 0 0 0.996094 0
+8 23 1 0 0.996094 0
+8 23 2 0 0.996094 0
+8 23 3 0 0.996094 0
+8 23 4 0 0.996094 0
+8 23 5 0 0.996094 0
+8 23 6 0 0.996094 0
+8 23 7 0 0.996094 0
+8 23 8 0 0.996094 0
+8 23 9 0 0.996094 0
+8 23 10 0 0.996094 0
+8 23 11 0 0.996094 0
+8 23 12 0 0.996094 0
+8 23 13 0 0.996582 0
+8 23 14 0 1 0.237305
+8 23 15 0 1 0.349121
+8 23 16 0 1 0.452148
+8 23 17 0 1 0.552734
+8 23 18 0 1 0.649902
+8 23 19 0 1 0.740234
+8 23 20 0 1 0.820312
+8 23 21 0 0.98877 0.890137
+8 23 22 0 0.967285 0.948242
+8 23 23 0 0.941895 0.993652
+8 23 24 0 0.913574 1
+8 23 25 0 0.879395 1
+8 23 26 0 0.840332 1
+8 23 27 0 0.79834 1
+8 23 28 0 0.756348 1
+8 23 29 0 0.714844 1
+8 23 30 0 0.674805 1
+8 23 31 0 0.637695 1
+8 24 0 0 1 0
+8 24 1 0 1 0
+8 24 2 0 1 0
+8 24 3 0 1 0
+8 24 4 0 1 0
+8 24 5 0 1 0
+8 24 6 0 1 0
+8 24 7 0 1 0
+8 24 8 0 1 0
+8 24 9 0 1 0
+8 24 10 0 1 0
+8 24 11 0 1 0
+8 24 12 0 1 0
+8 24 13 0 1 0
+8 24 14 0 1 0.195923
+8 24 15 0 1 0.31958
+8 24 16 0 1 0.424316
+8 24 17 0 1 0.524414
+8 24 18 0 1 0.621094
+8 24 19 0 1 0.711426
+8 24 20 0 1 0.792969
+8 24 21 0 1 0.864746
+8 24 22 0 1 0.92627
+8 24 23 0 0.986816 0.975586
+8 24 24 0 0.961914 1
+8 24 25 0 0.931641 1
+8 24 26 0 0.89502 1
+8 24 27 0 0.854004 1
+8 24 28 0 0.810547 1
+8 24 29 0 0.76709 1
+8 24 30 0 0.724609 1
+8 24 31 0 0.683594 1
+8 25 0 0 1 0
+8 25 1 0 1 0
+8 25 2 0 1 0
+8 25 3 0 1 0
+8 25 4 0 1 0
+8 25 5 0 1 0
+8 25 6 0 1 0
+8 25 7 0 1 0
+8 25 8 0 1 0
+8 25 9 0 1 0
+8 25 10 0 1 0
+8 25 11 0 1 0
+8 25 12 0 1 0
+8 25 13 0 1 0
+8 25 14 0 1 0.135864
+8 25 15 0 1 0.286133
+8 25 16 0 1 0.394043
+8 25 17 0 1 0.493896
+8 25 18 0 1 0.589844
+8 25 19 0 1 0.680176
+8 25 20 0 1 0.761719
+8 25 21 0 1 0.835449
+8 25 22 0 1 0.899414
+8 25 23 0 1 0.952148
+8 25 24 0 1 0.995605
+8 25 25 0 0.979492 1
+8 25 26 0 0.946777 1
+8 25 27 0 0.908203 1
+8 25 28 0 0.865234 1
+8 25 29 0 0.820312 1
+8 25 30 0 0.775879 1
+8 25 31 0 0.732422 1
+8 26 0 0 1 0
+8 26 1 0 1 0
+8 26 2 0 1 0
+8 26 3 0 1 0
+8 26 4 0 1 0
+8 26 5 0 1 0
+8 26 6 0 1 0
+8 26 7 0 1 0
+8 26 8 0 1 0
+8 26 9 0 1 0
+8 26 10 0 1 0
+8 26 11 0 1 0
+8 26 12 0 1 0
+8 26 13 0 1 0
+8 26 14 0 1 0
+8 26 15 0 1 0.247681
+8 26 16 0 1 0.361572
+8 26 17 0 1 0.46167
+8 26 18 0 1 0.556641
+8 26 19 0 1 0.645996
+8 26 20 0 1 0.727539
+8 26 21 0 1 0.802246
+8 26 22 0 1 0.868652
+8 26 23 0 1 0.924316
+8 26 24 0 1 0.970215
+8 26 25 0 1 1
+8 26 26 0 0.994629 1
+8 26 27 0 0.958984 1
+8 26 28 0 0.918457 1
+8 26 29 0 0.874023 1
+8 26 30 0 0.828125 1
+8 26 31 0 0.782715 1
+8 27 0 0 1 0
+8 27 1 0 1 0
+8 27 2 0 1 0
+8 27 3 0 1 0
+8 27 4 0 1 0
+8 27 5 0 1 0
+8 27 6 0 1 0
+8 27 7 0 1 0
+8 27 8 0 1 0
+8 27 9 0 1 0
+8 27 10 0 1 0
+8 27 11 0 1 0
+8 27 12 0 1 0
+8 27 13 0 1 0
+8 27 14 0 1 0
+8 27 15 0 1 0.200195
+8 27 16 0 1 0.326172
+8 27 17 0 1 0.427734
+8 27 18 0 1 0.521484
+8 27 19 0 1 0.609375
+8 27 20 0 1 0.69043
+8 27 21 0 1 0.765625
+8 27 22 0 1 0.833008
+8 27 23 0 1 0.891113
+8 27 24 0 1 0.939941
+8 27 25 0 1 0.985352
+8 27 26 0 1 1
+8 27 27 0 1 1
+8 27 28 0 0.968262 1
+8 27 29 0 0.925781 1
+8 27 30 0 0.879883 1
+8 27 31 0 0.833008 1
+8 28 0 0 1 0
+8 28 1 0 1 0
+8 28 2 0 1 0
+8 28 3 0 1 0
+8 28 4 0 1 0
+8 28 5 0 1 0
+8 28 6 0 1 0
+8 28 7 0 1 0
+8 28 8 0 1 0
+8 28 9 0 1 0
+8 28 10 0 1 0
+8 28 11 0 1 0
+8 28 12 0 1 0
+8 28 13 0 1 0
+8 28 14 0 1 0
+8 28 15 0 1 0.130005
+8 28 16 0 1 0.287109
+8 28 17 0 1 0.391846
+8 28 18 0 1 0.484863
+8 28 19 0 1 0.571289
+8 28 20 0 1 0.651367
+8 28 21 0 1 0.726074
+8 28 22 0 1 0.793945
+8 28 23 0 1 0.853027
+8 28 24 0 1 0.904297
+8 28 25 0 1 0.952637
+8 28 26 0 1 0.997559
+8 28 27 0 1 1
+8 28 28 0 1 1
+8 28 29 0 0.974121 1
+8 28 30 0 0.930664 1
+8 28 31 0 0.884277 1
+8 29 0 0 1 0
+8 29 1 0 1 0
+8 29 2 0 1 0
+8 29 3 0 1 0
+8 29 4 0 1 0
+8 29 5 0 1 0
+8 29 6 0 1 0
+8 29 7 0 1 0
+8 29 8 0 1 0
+8 29 9 0 1 0
+8 29 10 0 1 0
+8 29 11 0 1 0
+8 29 12 0 1 0
+8 29 13 0 1 0
+8 29 14 0 1 0
+8 29 15 0 1 0
+8 29 16 0 1 0.242188
+8 29 17 0 1 0.353271
+8 29 18 0 1 0.446777
+8 29 19 0 1 0.531738
+8 29 20 0 1 0.609863
+8 29 21 0 1 0.683594
+8 29 22 0 1 0.751465
+8 29 23 0 1 0.811035
+8 29 24 0 1 0.86377
+8 29 25 0 1 0.914551
+8 29 26 0 1 0.962402
+8 29 27 0 1 1
+8 29 28 0 1 1
+8 29 29 0 1 1
+8 29 30 0 0.979004 1
+8 29 31 0 0.93457 1
+8 30 0 0 1 0
+8 30 1 0 1 0
+8 30 2 0 1 0
+8 30 3 0 1 0
+8 30 4 0 1 0
+8 30 5 0 1 0
+8 30 6 0 1 0
+8 30 7 0 1 0
+8 30 8 0 1 0
+8 30 9 0 1 0
+8 30 10 0 1 0
+8 30 11 0 1 0
+8 30 12 0 1 0
+8 30 13 0 1 0
+8 30 14 0 1 0
+8 30 15 0 1 0
+8 30 16 0 1 0.186401
+8 30 17 0 1 0.312012
+8 30 18 0 1 0.406738
+8 30 19 0 1 0.490723
+8 30 20 0 1 0.567383
+8 30 21 0 1 0.63916
+8 30 22 0 1 0.705566
+8 30 23 0 1 0.765137
+8 30 24 0 1 0.818848
+8 30 25 0 1 0.871094
+8 30 26 0 1 0.921387
+8 30 27 0 1 0.96875
+8 30 28 0 1 1
+8 30 29 0 1 1
+8 30 30 0 1 1
+8 30 31 0 0.98291 1
+8 31 0 0 1 0
+8 31 1 0 1 0
+8 31 2 0 1 0
+8 31 3 0 1 0
+8 31 4 0 1 0
+8 31 5 0 1 0
+8 31 6 0 1 0
+8 31 7 0 1 0
+8 31 8 0 1 0
+8 31 9 0 1 0
+8 31 10 0 1 0
+8 31 11 0 1 0
+8 31 12 0 1 0
+8 31 13 0 1 0
+8 31 14 0 1 0
+8 31 15 0 1 0
+8 31 16 0 1 0.0897827
+8 31 17 0 1 0.266846
+8 31 18 0 1 0.365234
+8 31 19 0 1 0.448486
+8 31 20 0 1 0.523438
+8 31 21 0 1 0.593262
+8 31 22 0 1 0.658203
+8 31 23 0 1 0.716797
+8 31 24 0 1 0.77002
+8 31 25 0 1 0.823242
+8 31 26 0 1 0.875488
+8 31 27 0 1 0.92627
+8 31 28 0 1 0.973145
+8 31 29 0 1 1
+8 31 30 0 1 1
+8 31 31 0 1 1
+9 0 0 0.229248 0 0.0130157
+9 0 1 0.229248 0 0.0129471
+9 0 2 0.229248 0 0.0128326
+9 0 3 0.229248 0 0.012619
+9 0 4 0.229248 0 0.0123138
+9 0 5 0.229492 0 0.0232239
+9 0 6 0.226929 0 0.0718384
+9 0 7 0.220093 0 0.10498
+9 0 8 0.189209 0.0291595 0.125854
+9 0 9 0.166504 0.0536499 0.147095
+9 0 10 0.157593 0.0601807 0.187866
+9 0 11 0.140015 0.0703735 0.240601
+9 0 12 0.0855103 0.0836792 0.303467
+9 0 13 0 0.0996704 0.374512
+9 0 14 0 0.11792 0.453125
+9 0 15 0 0.137817 0.536621
+9 0 16 0 0.158813 0.623047
+9 0 17 0 0.179321 0.706543
+9 0 18 0 0.19812 0.783203
+9 0 19 0 0.214844 0.851074
+9 0 20 0 0.224243 0.88916
+9 0 21 0 0.22583 0.896484
+9 0 22 0 0.227661 0.903809
+9 0 23 0 0.229492 0.911621
+9 0 24 0 0.231445 0.919434
+9 0 25 0 0.233521 0.928223
+9 0 26 0 0.23584 0.937988
+9 0 27 0 0.238525 0.94873
+9 0 28 0 0.241577 0.960449
+9 0 29 0 0.244751 0.973633
+9 0 30 0 0.248047 0.986816
+9 0 31 0 0.251465 1
+9 1 0 0.229004 0 0.0121765
+9 1 1 0.229004 0 0.0121002
+9 1 2 0.229004 0 0.0119705
+9 1 3 0.229004 0 0.0117264
+9 1 4 0.229004 0 0.0113907
+9 1 5 0.22937 0 0.0227814
+9 1 6 0.226807 0 0.0717163
+9 1 7 0.219971 0 0.10498
+9 1 8 0.189331 0.0312195 0.125854
+9 1 9 0.166382 0.0543213 0.147095
+9 1 10 0.157471 0.06073 0.187866
+9 1 11 0.139893 0.0708618 0.240601
+9 1 12 0.0853271 0.0840454 0.303467
+9 1 13 0 0.0999756 0.374512
+9 1 14 0 0.118164 0.453125
+9 1 15 0 0.138062 0.536621
+9 1 16 0 0.158936 0.623047
+9 1 17 0 0.179321 0.706543
+9 1 18 0 0.198242 0.783203
+9 1 19 0 0.214844 0.851074
+9 1 20 0 0.224243 0.88916
+9 1 21 0 0.22583 0.896484
+9 1 22 0 0.227661 0.903809
+9 1 23 0 0.229492 0.911621
+9 1 24 0 0.231445 0.919434
+9 1 25 0 0.233521 0.928223
+9 1 26 0 0.235962 0.937988
+9 1 27 0 0.238525 0.94873
+9 1 28 0 0.241577 0.960449
+9 1 29 0 0.244751 0.973633
+9 1 30 0 0.248047 0.986816
+9 1 31 0 0.251465 1
+9 2 0 0.228638 0 0.0103989
+9 2 1 0.228638 0 0.0103073
+9 2 2 0.228638 0 0.0101395
+9 2 3 0.228516 0 0.00982666
+9 2 4 0.228638 0 0.0093689
+9 2 5 0.229004 0 0.0219727
+9 2 6 0.226562 0 0.0715332
+9 2 7 0.219971 0 0.104858
+9 2 8 0.189331 0.0344543 0.125977
+9 2 9 0.16626 0.0554504 0.147095
+9 2 10 0.157471 0.061676 0.187866
+9 2 11 0.139771 0.0716553 0.240601
+9 2 12 0.085083 0.0847168 0.303467
+9 2 13 0 0.100403 0.374512
+9 2 14 0 0.11853 0.453125
+9 2 15 0 0.138306 0.536621
+9 2 16 0 0.15918 0.623047
+9 2 17 0 0.179565 0.706543
+9 2 18 0 0.198364 0.783203
+9 2 19 0 0.214966 0.851074
+9 2 20 0 0.224365 0.88916
+9 2 21 0 0.225952 0.896484
+9 2 22 0 0.227661 0.903809
+9 2 23 0 0.229614 0.911621
+9 2 24 0 0.231445 0.919434
+9 2 25 0 0.233521 0.928223
+9 2 26 0 0.235962 0.937988
+9 2 27 0 0.238525 0.94873
+9 2 28 0 0.241577 0.960449
+9 2 29 0 0.244751 0.973633
+9 2 30 0 0.248047 0.986816
+9 2 31 0 0.251465 1
+9 3 0 0.227783 0 0.00400543
+9 3 1 0.227783 0 0.00354958
+9 3 2 0.227783 0 0.00234795
+9 3 3 0.227783 0.0104599 0
+9 3 4 0.227905 0.0157623 0
+9 3 5 0.228271 0.0179901 0.020462
+9 3 6 0.226196 0 0.071167
+9 3 7 0.219727 0 0.104675
+9 3 8 0.189575 0.0393982 0.126099
+9 3 9 0.166138 0.0574341 0.147095
+9 3 10 0.157227 0.0634155 0.187866
+9 3 11 0.139526 0.0730591 0.240479
+9 3 12 0.0845947 0.0858154 0.303467
+9 3 13 0 0.101318 0.374512
+9 3 14 0 0.119141 0.453125
+9 3 15 0 0.138794 0.536621
+9 3 16 0 0.159546 0.623047
+9 3 17 0 0.17981 0.706543
+9 3 18 0 0.198608 0.783203
+9 3 19 0 0.21521 0.851074
+9 3 20 0 0.224487 0.88916
+9 3 21 0 0.226074 0.896484
+9 3 22 0 0.227783 0.903809
+9 3 23 0 0.229614 0.911621
+9 3 24 0 0.231567 0.919434
+9 3 25 0 0.233643 0.928223
+9 3 26 0 0.235962 0.937988
+9 3 27 0 0.238647 0.94873
+9 3 28 0 0.241577 0.960449
+9 3 29 0 0.244751 0.973633
+9 3 30 0 0.248047 0.986816
+9 3 31 0 0.251465 1
+9 4 0 0.226196 0.039032 0
+9 4 1 0.226196 0.0392456 0
+9 4 2 0.226196 0.0396118 0
+9 4 3 0.226196 0.0402527 0
+9 4 4 0.226318 0.0411377 0
+9 4 5 0.226929 0.041626 0.0174408
+9 4 6 0.225342 0.0378418 0.0704346
+9 4 7 0.21936 0.0322266 0.10437
+9 4 8 0.190063 0.046814 0.126465
+9 4 9 0.165894 0.0609131 0.147095
+9 4 10 0.156982 0.0664062 0.187866
+9 4 11 0.13916 0.0756226 0.240479
+9 4 12 0.0836182 0.0878906 0.303467
+9 4 13 0 0.102905 0.374512
+9 4 14 0 0.120422 0.453125
+9 4 15 0 0.139771 0.536621
+9 4 16 0 0.160278 0.623047
+9 4 17 0 0.18042 0.706543
+9 4 18 0 0.198975 0.783203
+9 4 19 0 0.215454 0.851074
+9 4 20 0 0.224731 0.88916
+9 4 21 0 0.226318 0.896484
+9 4 22 0 0.228027 0.903809
+9 4 23 0 0.229736 0.911621
+9 4 24 0 0.231689 0.919434
+9 4 25 0 0.233765 0.928223
+9 4 26 0 0.236084 0.937988
+9 4 27 0 0.238647 0.94873
+9 4 28 0 0.241699 0.960449
+9 4 29 0 0.244873 0.973633
+9 4 30 0 0.248169 0.986816
+9 4 31 0 0.251465 1
+9 5 0 0.223022 0.0591736 0
+9 5 1 0.223022 0.0592957 0
+9 5 2 0.223022 0.0594482 0
+9 5 3 0.223022 0.0597839 0
+9 5 4 0.223145 0.0602722 0
+9 5 5 0.223999 0.0606079 0.0103912
+9 5 6 0.223267 0.0585327 0.0691528
+9 5 7 0.21814 0.0550232 0.103577
+9 5 8 0.190796 0.0577393 0.127075
+9 5 9 0.165283 0.0668335 0.146973
+9 5 10 0.15625 0.0717163 0.187744
+9 5 11 0.138306 0.0802002 0.240479
+9 5 12 0.0817261 0.0916748 0.303467
+9 5 13 0 0.105957 0.374512
+9 5 14 0 0.122742 0.453125
+9 5 15 0 0.141479 0.536621
+9 5 16 0 0.161621 0.623047
+9 5 17 0 0.181396 0.706543
+9 5 18 0 0.199829 0.783203
+9 5 19 0 0.216187 0.851074
+9 5 20 0 0.225342 0.88916
+9 5 21 0 0.226685 0.896484
+9 5 22 0 0.228271 0.903809
+9 5 23 0 0.230103 0.911621
+9 5 24 0 0.231934 0.919434
+9 5 25 0 0.234009 0.928223
+9 5 26 0 0.236206 0.937988
+9 5 27 0 0.238892 0.94873
+9 5 28 0 0.241821 0.960449
+9 5 29 0 0.244995 0.973633
+9 5 30 0 0.248291 0.986816
+9 5 31 0 0.251709 1
+9 6 0 0.216553 0.0793457 0
+9 6 1 0.216553 0.0794067 0
+9 6 2 0.216553 0.0795288 0
+9 6 3 0.216431 0.0797119 0
+9 6 4 0.216553 0.0800171 0
+9 6 5 0.217773 0.0804443 0
+9 6 6 0.218262 0.0795288 0.0668945
+9 6 7 0.21521 0.0770874 0.101807
+9 6 8 0.192505 0.0733032 0.128418
+9 6 9 0.164185 0.0762939 0.146851
+9 6 10 0.155029 0.0804443 0.187622
+9 6 11 0.136841 0.0879517 0.240356
+9 6 12 0.0778809 0.0983276 0.303223
+9 6 13 0 0.111328 0.374512
+9 6 14 0 0.127075 0.452881
+9 6 15 0 0.144897 0.536621
+9 6 16 0 0.164185 0.623047
+9 6 17 0 0.183472 0.706543
+9 6 18 0 0.201416 0.783691
+9 6 19 0 0.217407 0.851074
+9 6 20 0 0.226318 0.88916
+9 6 21 0 0.227539 0.896484
+9 6 22 0 0.229004 0.903809
+9 6 23 0 0.230591 0.911621
+9 6 24 0 0.232422 0.919434
+9 6 25 0 0.234375 0.928223
+9 6 26 0 0.236572 0.937988
+9 6 27 0 0.239136 0.94873
+9 6 28 0 0.242065 0.960449
+9 6 29 0 0.245117 0.973633
+9 6 30 0 0.248413 0.986816
+9 6 31 0 0.251709 1
+9 7 0 0.203369 0.0998535 0
+9 7 1 0.203369 0.0999146 0
+9 7 2 0.203247 0.0999756 0
+9 7 3 0.203247 0.100037 0
+9 7 4 0.203125 0.10022 0
+9 7 5 0.204102 0.100647 0.0231934
+9 7 6 0.205566 0.101013 0.06427
+9 7 7 0.207642 0.101257 0.0981445
+9 7 8 0.19519 0.0962524 0.130493
+9 7 9 0.162109 0.0906372 0.146606
+9 7 10 0.15271 0.0939941 0.1875
+9 7 11 0.133667 0.100525 0.240234
+9 7 12 0.069458 0.109497 0.303223
+9 7 13 0 0.12085 0.374512
+9 7 14 0 0.134766 0.452881
+9 7 15 0 0.151001 0.536621
+9 7 16 0 0.169067 0.623047
+9 7 17 0 0.187134 0.706543
+9 7 18 0 0.204346 0.783691
+9 7 19 0 0.219849 0.851074
+9 7 20 0 0.228271 0.889648
+9 7 21 0 0.229004 0.896484
+9 7 22 0 0.230225 0.904297
+9 7 23 0 0.231689 0.912109
+9 7 24 0 0.233276 0.919922
+9 7 25 0 0.235107 0.928223
+9 7 26 0 0.237305 0.937988
+9 7 27 0 0.239746 0.94873
+9 7 28 0 0.242554 0.960449
+9 7 29 0 0.245605 0.973633
+9 7 30 0 0.248779 0.986816
+9 7 31 0 0.252197 1
+9 8 0 0.183105 0.118591 0.0317383
+9 8 1 0.183105 0.118652 0.0317688
+9 8 2 0.183105 0.118652 0.0317993
+9 8 3 0.183105 0.118713 0.0318909
+9 8 4 0.183105 0.118835 0.0320435
+9 8 5 0.182861 0.118896 0.0460815
+9 8 6 0.182495 0.119141 0.0666504
+9 8 7 0.182861 0.120239 0.0912476
+9 8 8 0.1875 0.124146 0.126831
+9 8 9 0.157837 0.111328 0.146118
+9 8 10 0.147827 0.114014 0.187134
+9 8 11 0.127319 0.11969 0.239868
+9 8 12 0.0448608 0.127197 0.302979
+9 8 13 0 0.136475 0.374268
+9 8 14 0 0.148071 0.452881
+9 8 15 0 0.161987 0.536621
+9 8 16 0 0.177856 0.623535
+9 8 17 0 0.194214 0.707031
+9 8 18 0 0.209961 0.783691
+9 8 19 0 0.224365 0.851074
+9 8 20 0 0.231934 0.889648
+9 8 21 0 0.232056 0.896973
+9 8 22 0 0.232666 0.904297
+9 8 23 0 0.233765 0.912109
+9 8 24 0 0.234985 0.919922
+9 8 25 0 0.236572 0.928711
+9 8 26 0 0.238525 0.937988
+9 8 27 0 0.240845 0.94873
+9 8 28 0 0.24353 0.960938
+9 8 29 0 0.24646 0.973633
+9 8 30 0 0.249512 0.986816
+9 8 31 0 0.252686 1
+9 9 0 0.174805 0.150146 0.0491028
+9 9 1 0.174805 0.150269 0.0491028
+9 9 2 0.174805 0.150269 0.0491028
+9 9 3 0.174805 0.150269 0.0491333
+9 9 4 0.174927 0.150391 0.0491333
+9 9 5 0.174683 0.150391 0.0527039
+9 9 6 0.172852 0.149536 0.0706177
+9 9 7 0.169189 0.148071 0.09198
+9 9 8 0.162231 0.145142 0.117432
+9 9 9 0.149048 0.139526 0.145264
+9 9 10 0.137817 0.141724 0.186646
+9 9 11 0.113342 0.146729 0.23938
+9 9 12 0 0.153076 0.30249
+9 9 13 0 0.1604 0.374023
+9 9 14 0 0.169434 0.452881
+9 9 15 0 0.180298 0.536621
+9 9 16 0 0.193115 0.623535
+9 9 17 0 0.206665 0.707031
+9 9 18 0 0.220215 0.783691
+9 9 19 0 0.232666 0.851074
+9 9 20 0 0.238892 0.890137
+9 9 21 0 0.237549 0.896973
+9 9 22 0 0.237183 0.904785
+9 9 23 0 0.237549 0.912598
+9 9 24 0 0.238281 0.919922
+9 9 25 0 0.239502 0.928711
+9 9 26 0 0.240967 0.938477
+9 9 27 0 0.24292 0.94873
+9 9 28 0 0.245239 0.960938
+9 9 29 0 0.247925 0.973633
+9 9 30 0 0.250732 0.986816
+9 9 31 0 0.253906 1
+9 10 0 0.150391 0.182129 0.0465088
+9 10 1 0.150391 0.182129 0.0465393
+9 10 2 0.150391 0.182129 0.0465393
+9 10 3 0.150391 0.182129 0.0465393
+9 10 4 0.150391 0.182129 0.0465393
+9 10 5 0.150513 0.182251 0.0465698
+9 10 6 0.149292 0.181763 0.0610046
+9 10 7 0.145996 0.180054 0.0845337
+9 10 8 0.139893 0.177368 0.111389
+9 10 9 0.130737 0.175659 0.144043
+9 10 10 0.116089 0.177612 0.186157
+9 10 11 0.0768433 0.182129 0.23877
+9 10 12 0 0.1875 0.302002
+9 10 13 0 0.193237 0.373779
+9 10 14 0 0.199707 0.452637
+9 10 15 0 0.207397 0.536621
+9 10 16 0 0.216675 0.623535
+9 10 17 0 0.226685 0.707031
+9 10 18 0 0.236938 0.78418
+9 10 19 0 0.246826 0.851562
+9 10 20 0 0.250732 0.891113
+9 10 21 0 0.247192 0.897949
+9 10 22 0 0.245239 0.905273
+9 10 23 0 0.244263 0.913086
+9 10 24 0 0.244141 0.92041
+9 10 25 0 0.244507 0.929199
+9 10 26 0 0.245361 0.938477
+9 10 27 0 0.246704 0.949219
+9 10 28 0 0.248535 0.961426
+9 10 29 0 0.250732 0.974121
+9 10 30 0 0.253174 0.987305
+9 10 31 0 0.255859 1
+9 11 0 0.105164 0.223511 0.0444336
+9 11 1 0.105164 0.223511 0.0444336
+9 11 2 0.105164 0.223633 0.0444641
+9 11 3 0.105225 0.223633 0.0444641
+9 11 4 0.105225 0.223633 0.0444641
+9 11 5 0.105347 0.223755 0.0444946
+9 11 6 0.10553 0.223877 0.0445251
+9 11 7 0.102173 0.223145 0.0753174
+9 11 8 0.0950928 0.22229 0.106628
+9 11 9 0.0797119 0.222046 0.1427
+9 11 10 0 0.223511 0.185913
+9 11 11 0 0.226685 0.238281
+9 11 12 0 0.231079 0.301025
+9 11 13 0 0.235596 0.373047
+9 11 14 0 0.240112 0.452393
+9 11 15 0 0.244751 0.536621
+9 11 16 0 0.250488 0.623535
+9 11 17 0 0.256348 0.70752
+9 11 18 0 0.262695 0.784668
+9 11 19 0 0.268799 0.852051
+9 11 20 0 0.269531 0.892578
+9 11 21 0 0.262695 0.899414
+9 11 22 0 0.258301 0.90625
+9 11 23 0 0.255615 0.914062
+9 11 24 0 0.253906 0.921387
+9 11 25 0 0.25293 0.930176
+9 11 26 0 0.252686 0.939453
+9 11 27 0 0.25293 0.949707
+9 11 28 0 0.25415 0.961914
+9 11 29 0 0.255615 0.974609
+9 11 30 0 0.257324 0.987793
+9 11 31 0 0.259521 1
+9 12 0 0 0.280029 0.0426941
+9 12 1 0 0.280029 0.0426941
+9 12 2 0 0.280029 0.0426941
+9 12 3 0 0.280029 0.0426941
+9 12 4 0 0.280029 0.0426941
+9 12 5 0 0.280029 0.0427246
+9 12 6 0 0.280029 0.0427856
+9 12 7 0 0.280273 0.056427
+9 12 8 0 0.280029 0.0985107
+9 12 9 0 0.280029 0.139282
+9 12 10 0 0.280518 0.184692
+9 12 11 0 0.281982 0.237305
+9 12 12 0 0.284668 0.299805
+9 12 13 0 0.288086 0.371582
+9 12 14 0 0.291016 0.451416
+9 12 15 0 0.293213 0.536133
+9 12 16 0 0.29541 0.624023
+9 12 17 0 0.297119 0.708008
+9 12 18 0 0.299072 0.785156
+9 12 19 0 0.301025 0.852539
+9 12 20 0 0.298096 0.89502
+9 12 21 0 0.286621 0.901367
+9 12 22 0 0.278564 0.908203
+9 12 23 0 0.273193 0.915527
+9 12 24 0 0.269287 0.922852
+9 12 25 0 0.266602 0.931152
+9 12 26 0 0.264648 0.94043
+9 12 27 0 0.263428 0.951172
+9 12 28 0 0.263184 0.962891
+9 12 29 0 0.263428 0.975098
+9 12 30 0 0.264404 0.988281
+9 12 31 0 0.265625 1
+9 13 0 0 0.345947 0.0390015
+9 13 1 0 0.345947 0.039032
+9 13 2 0 0.345947 0.039032
+9 13 3 0 0.345947 0.039032
+9 13 4 0 0.345947 0.039032
+9 13 5 0 0.345947 0.0390625
+9 13 6 0 0.346191 0.0391235
+9 13 7 0 0.346191 0.0392456
+9 13 8 0 0.346436 0.0787354
+9 13 9 0 0.346436 0.129883
+9 13 10 0 0.34668 0.179688
+9 13 11 0 0.347412 0.234497
+9 13 12 0 0.348877 0.297607
+9 13 13 0 0.35083 0.369629
+9 13 14 0 0.352295 0.449707
+9 13 15 0 0.352539 0.535156
+9 13 16 0 0.351807 0.623535
+9 13 17 0 0.349609 0.708496
+9 13 18 0 0.347168 0.786133
+9 13 19 0 0.344482 0.854004
+9 13 20 0 0.337646 0.898926
+9 13 21 0 0.320557 0.904785
+9 13 22 0 0.308105 0.911621
+9 13 23 0 0.299072 0.918457
+9 13 24 0 0.29248 0.925781
+9 13 25 0 0.286865 0.933594
+9 13 26 0 0.282715 0.942871
+9 13 27 0 0.279297 0.952637
+9 13 28 0 0.2771 0.964355
+9 13 29 0 0.275635 0.976562
+9 13 30 0 0.275146 0.989746
+9 13 31 0 0.274902 1
+9 14 0 0 0.419922 0.0309601
+9 14 1 0 0.419922 0.0309601
+9 14 2 0 0.419922 0.0309753
+9 14 3 0 0.419922 0.0309906
+9 14 4 0 0.419922 0.0310059
+9 14 5 0 0.419922 0.0310516
+9 14 6 0 0.419922 0.0311279
+9 14 7 0 0.419922 0.0312805
+9 14 8 0 0.420166 0.0315552
+9 14 9 0 0.42041 0.109619
+9 14 10 0 0.420898 0.168457
+9 14 11 0 0.421387 0.227539
+9 14 12 0 0.422119 0.292725
+9 14 13 0 0.423096 0.365479
+9 14 14 0 0.42334 0.446289
+9 14 15 0 0.422363 0.533203
+9 14 16 0 0.419189 0.622559
+9 14 17 0 0.413818 0.708496
+9 14 18 0 0.407227 0.786621
+9 14 19 0 0.400146 0.85498
+9 14 20 0 0.389648 0.904297
+9 14 21 0 0.366211 0.910156
+9 14 22 0 0.348145 0.916504
+9 14 23 0 0.334717 0.92334
+9 14 24 0 0.324463 0.929688
+9 14 25 0 0.315674 0.9375
+9 14 26 0 0.30835 0.946289
+9 14 27 0 0.302246 0.955566
+9 14 28 0 0.297607 0.966797
+9 14 29 0 0.293701 0.979004
+9 14 30 0 0.291016 0.991699
+9 14 31 0 0.289062 1
+9 15 0 0 0.499268 0
+9 15 1 0 0.499268 0
+9 15 2 0 0.499268 0
+9 15 3 0 0.499268 0
+9 15 4 0 0.499268 0
+9 15 5 0 0.499268 0
+9 15 6 0 0.499268 0
+9 15 7 0 0.499512 0
+9 15 8 0 0.499512 0
+9 15 9 0 0.499756 0.0525208
+9 15 10 0 0.500488 0.147461
+9 15 11 0 0.500977 0.214111
+9 15 12 0 0.501953 0.282959
+9 15 13 0 0.50293 0.357666
+9 15 14 0 0.50293 0.440186
+9 15 15 0 0.500977 0.52832
+9 15 16 0 0.496582 0.619629
+9 15 17 0 0.488525 0.70752
+9 15 18 0 0.478271 0.787109
+9 15 19 0 0.467041 0.856445
+9 15 20 0 0.454102 0.911133
+9 15 21 0 0.423584 0.917969
+9 15 22 0 0.399658 0.924316
+9 15 23 0 0.381348 0.930664
+9 15 24 0 0.366699 0.936523
+9 15 25 0 0.354004 0.943848
+9 15 26 0 0.343018 0.95166
+9 15 27 0 0.333496 0.960449
+9 15 28 0 0.325439 0.971191
+9 15 29 0 0.318848 0.982422
+9 15 30 0 0.313232 0.994629
+9 15 31 0 0.308838 1
+9 16 0 0 0.58252 0
+9 16 1 0 0.58252 0
+9 16 2 0 0.58252 0
+9 16 3 0 0.583008 0
+9 16 4 0 0.583008 0
+9 16 5 0 0.583008 0
+9 16 6 0 0.583008 0
+9 16 7 0 0.583008 0
+9 16 8 0 0.583008 0
+9 16 9 0 0.583008 0
+9 16 10 0 0.583496 0.105103
+9 16 11 0 0.584473 0.192017
+9 16 12 0 0.585938 0.26709
+9 16 13 0 0.586914 0.344971
+9 16 14 0 0.587402 0.429443
+9 16 15 0 0.585938 0.519531
+9 16 16 0 0.581543 0.613281
+9 16 17 0 0.572266 0.703125
+9 16 18 0 0.559082 0.785156
+9 16 19 0 0.544434 0.856445
+9 16 20 0 0.52832 0.915039
+9 16 21 0 0.493408 0.927734
+9 16 22 0 0.463379 0.935547
+9 16 23 0 0.439453 0.941406
+9 16 24 0 0.420166 0.946777
+9 16 25 0 0.402832 0.953125
+9 16 26 0 0.387451 0.960449
+9 16 27 0 0.373779 0.968262
+9 16 28 0 0.362061 0.978027
+9 16 29 0 0.351807 0.988281
+9 16 30 0 0.343018 0.999512
+9 16 31 0 0.335205 1
+9 17 0 0 0.665039 0
+9 17 1 0 0.665039 0
+9 17 2 0 0.665039 0
+9 17 3 0 0.665039 0
+9 17 4 0 0.665039 0
+9 17 5 0 0.665039 0
+9 17 6 0 0.665039 0
+9 17 7 0 0.665039 0
+9 17 8 0 0.665039 0
+9 17 9 0 0.665527 0
+9 17 10 0 0.665527 0
+9 17 11 0 0.666504 0.156006
+9 17 12 0 0.668457 0.244019
+9 17 13 0 0.669922 0.32666
+9 17 14 0 0.671387 0.41333
+9 17 15 0 0.671387 0.505371
+9 17 16 0 0.66748 0.601074
+9 17 17 0 0.658691 0.694336
+9 17 18 0 0.644531 0.779785
+9 17 19 0 0.62793 0.854004
+9 17 20 0 0.608398 0.914551
+9 17 21 0 0.572754 0.938477
+9 17 22 0 0.537109 0.949219
+9 17 23 0 0.507812 0.956055
+9 17 24 0 0.483398 0.961426
+9 17 25 0 0.461182 0.966797
+9 17 26 0 0.440918 0.973145
+9 17 27 0 0.422607 0.979492
+9 17 28 0 0.40625 0.987793
+9 17 29 0 0.39209 0.99707
+9 17 30 0 0.379395 1
+9 17 31 0 0.368164 1
+9 18 0 0 0.741699 0
+9 18 1 0 0.741699 0
+9 18 2 0 0.741699 0
+9 18 3 0 0.741699 0
+9 18 4 0 0.741699 0
+9 18 5 0 0.741699 0
+9 18 6 0 0.741699 0
+9 18 7 0 0.741699 0
+9 18 8 0 0.741699 0
+9 18 9 0 0.742188 0
+9 18 10 0 0.742188 0
+9 18 11 0 0.742676 0.0814209
+9 18 12 0 0.744629 0.211792
+9 18 13 0 0.74707 0.302246
+9 18 14 0 0.749512 0.39209
+9 18 15 0 0.750977 0.48584
+9 18 16 0 0.749023 0.583984
+9 18 17 0 0.742188 0.680176
+9 18 18 0 0.729492 0.769531
+9 18 19 0 0.711914 0.847168
+9 18 20 0 0.690918 0.910645
+9 18 21 0 0.65625 0.946289
+9 18 22 0 0.618652 0.963867
+9 18 23 0 0.584473 0.973633
+9 18 24 0 0.555176 0.97998
+9 18 25 0 0.527832 0.985352
+9 18 26 0 0.501953 0.990234
+9 18 27 0 0.47876 0.995117
+9 18 28 0 0.45752 1
+9 18 29 0 0.438721 1
+9 18 30 0 0.421631 1
+9 18 31 0 0.406494 1
+9 19 0 0 0.810547 0
+9 19 1 0 0.810547 0
+9 19 2 0 0.810547 0
+9 19 3 0 0.810547 0
+9 19 4 0 0.810547 0
+9 19 5 0 0.810547 0
+9 19 6 0 0.810547 0
+9 19 7 0 0.810547 0
+9 19 8 0 0.810547 0
+9 19 9 0 0.811035 0
+9 19 10 0 0.811035 0
+9 19 11 0 0.811035 0
+9 19 12 0 0.8125 0.166748
+9 19 13 0 0.81543 0.272705
+9 19 14 0 0.818359 0.366699
+9 19 15 0 0.821289 0.462402
+9 19 16 0 0.821777 0.561523
+9 19 17 0 0.817871 0.660645
+9 19 18 0 0.807617 0.753418
+9 19 19 0 0.791016 0.834473
+9 19 20 0 0.77002 0.902344
+9 19 21 0 0.739258 0.949219
+9 19 22 0 0.702148 0.976562
+9 19 23 0 0.665527 0.991211
+9 19 24 0 0.632324 1
+9 19 25 0 0.600098 1
+9 19 26 0 0.569336 1
+9 19 27 0 0.540527 1
+9 19 28 0 0.51416 1
+9 19 29 0 0.48999 1
+9 19 30 0 0.468506 1
+9 19 31 0 0.448975 1
+9 20 0 0 0.870117 0
+9 20 1 0 0.870117 0
+9 20 2 0 0.870117 0
+9 20 3 0 0.870117 0
+9 20 4 0 0.870117 0
+9 20 5 0 0.870117 0
+9 20 6 0 0.870117 0
+9 20 7 0 0.870117 0
+9 20 8 0 0.870117 0
+9 20 9 0 0.870117 0
+9 20 10 0 0.870605 0
+9 20 11 0 0.870605 0
+9 20 12 0 0.871094 0.0826416
+9 20 13 0 0.874023 0.237793
+9 20 14 0 0.87793 0.338867
+9 20 15 0 0.881836 0.436523
+9 20 16 0 0.884277 0.536621
+9 20 17 0 0.882812 0.637207
+9 20 18 0 0.875488 0.731934
+9 20 19 0 0.861816 0.816895
+9 20 20 0 0.842285 0.888184
+9 20 21 0 0.815918 0.944824
+9 20 22 0 0.781738 0.98291
+9 20 23 0 0.745605 1
+9 20 24 0 0.709961 1
+9 20 25 0 0.674316 1
+9 20 26 0 0.638672 1
+9 20 27 0 0.60498 1
+9 20 28 0 0.573242 1
+9 20 29 0 0.544434 1
+9 20 30 0 0.518066 1
+9 20 31 0 0.493896 1
+9 21 0 0 0.920898 0
+9 21 1 0 0.920898 0
+9 21 2 0 0.920898 0
+9 21 3 0 0.920898 0
+9 21 4 0 0.920898 0
+9 21 5 0 0.920898 0
+9 21 6 0 0.920898 0
+9 21 7 0 0.920898 0
+9 21 8 0 0.920898 0
+9 21 9 0 0.920898 0
+9 21 10 0 0.920898 0
+9 21 11 0 0.920898 0
+9 21 12 0 0.921387 0
+9 21 13 0 0.923828 0.194214
+9 21 14 0 0.927734 0.307861
+9 21 15 0 0.932617 0.408447
+9 21 16 0 0.936523 0.509277
+9 21 17 0 0.937988 0.609863
+9 21 18 0 0.933594 0.706543
+9 21 19 0 0.92334 0.794434
+9 21 20 0 0.90625 0.869629
+9 21 21 0 0.883789 0.932129
+9 21 22 0 0.85498 0.97998
+9 21 23 0 0.821289 1
+9 21 24 0 0.786133 1
+9 21 25 0 0.748047 1
+9 21 26 0 0.709473 1
+9 21 27 0 0.671387 1
+9 21 28 0 0.635254 1
+9 21 29 0 0.601562 1
+9 21 30 0 0.569824 1
+9 21 31 0 0.541504 1
+9 22 0 0 0.962891 0
+9 22 1 0 0.962891 0
+9 22 2 0 0.962891 0
+9 22 3 0 0.962891 0
+9 22 4 0 0.962891 0
+9 22 5 0 0.962891 0
+9 22 6 0 0.962891 0
+9 22 7 0 0.962891 0
+9 22 8 0 0.962891 0
+9 22 9 0 0.962891 0
+9 22 10 0 0.962891 0
+9 22 11 0 0.962891 0
+9 22 12 0 0.962891 0
+9 22 13 0 0.964355 0.13208
+9 22 14 0 0.96875 0.273926
+9 22 15 0 0.973633 0.378906
+9 22 16 0 0.979004 0.480469
+9 22 17 0 0.982422 0.581543
+9 22 18 0 0.981445 0.678711
+9 22 19 0 0.974609 0.768066
+9 22 20 0 0.960938 0.846191
+9 22 21 0 0.941406 0.913086
+9 22 22 0 0.916992 0.967285
+9 22 23 0 0.887695 1
+9 22 24 0 0.85498 1
+9 22 25 0 0.817871 1
+9 22 26 0 0.77832 1
+9 22 27 0 0.737305 1
+9 22 28 0 0.697754 1
+9 22 29 0 0.65918 1
+9 22 30 0 0.623535 1
+9 22 31 0 0.589844 1
+9 23 0 0 0.996094 0
+9 23 1 0 0.996094 0
+9 23 2 0 0.996094 0
+9 23 3 0 0.996094 0
+9 23 4 0 0.996094 0
+9 23 5 0 0.996094 0
+9 23 6 0 0.996094 0
+9 23 7 0 0.996094 0
+9 23 8 0 0.996094 0
+9 23 9 0 0.996094 0
+9 23 10 0 0.996094 0
+9 23 11 0 0.996582 0
+9 23 12 0 0.996582 0
+9 23 13 0 0.996582 0
+9 23 14 0 1 0.237427
+9 23 15 0 1 0.349365
+9 23 16 0 1 0.452148
+9 23 17 0 1 0.552734
+9 23 18 0 1 0.649902
+9 23 19 0 1 0.740234
+9 23 20 0 1 0.820312
+9 23 21 0 0.98877 0.890137
+9 23 22 0 0.967285 0.948242
+9 23 23 0 0.942383 0.994141
+9 23 24 0 0.913574 1
+9 23 25 0 0.879395 1
+9 23 26 0 0.840332 1
+9 23 27 0 0.798828 1
+9 23 28 0 0.756348 1
+9 23 29 0 0.714844 1
+9 23 30 0 0.674805 1
+9 23 31 0 0.637695 1
+9 24 0 0 1 0
+9 24 1 0 1 0
+9 24 2 0 1 0
+9 24 3 0 1 0
+9 24 4 0 1 0
+9 24 5 0 1 0
+9 24 6 0 1 0
+9 24 7 0 1 0
+9 24 8 0 1 0
+9 24 9 0 1 0
+9 24 10 0 1 0
+9 24 11 0 1 0
+9 24 12 0 1 0
+9 24 13 0 1 0
+9 24 14 0 1 0.196045
+9 24 15 0 1 0.31958
+9 24 16 0 1 0.424316
+9 24 17 0 1 0.524414
+9 24 18 0 1 0.621094
+9 24 19 0 1 0.711914
+9 24 20 0 1 0.792969
+9 24 21 0 1 0.864746
+9 24 22 0 1 0.92627
+9 24 23 0 0.986816 0.975586
+9 24 24 0 0.962402 1
+9 24 25 0 0.931641 1
+9 24 26 0 0.89502 1
+9 24 27 0 0.854004 1
+9 24 28 0 0.810547 1
+9 24 29 0 0.76709 1
+9 24 30 0 0.724609 1
+9 24 31 0 0.683594 1
+9 25 0 0 1 0
+9 25 1 0 1 0
+9 25 2 0 1 0
+9 25 3 0 1 0
+9 25 4 0 1 0
+9 25 5 0 1 0
+9 25 6 0 1 0
+9 25 7 0 1 0
+9 25 8 0 1 0
+9 25 9 0 1 0
+9 25 10 0 1 0
+9 25 11 0 1 0
+9 25 12 0 1 0
+9 25 13 0 1 0
+9 25 14 0 1 0.136108
+9 25 15 0 1 0.286377
+9 25 16 0 1 0.394043
+9 25 17 0 1 0.494141
+9 25 18 0 1 0.589844
+9 25 19 0 1 0.680176
+9 25 20 0 1 0.761719
+9 25 21 0 1 0.835449
+9 25 22 0 1 0.899414
+9 25 23 0 1 0.952148
+9 25 24 0 1 0.995605
+9 25 25 0 0.97998 1
+9 25 26 0 0.946777 1
+9 25 27 0 0.908203 1
+9 25 28 0 0.865234 1
+9 25 29 0 0.820312 1
+9 25 30 0 0.775879 1
+9 25 31 0 0.732422 1
+9 26 0 0 1 0
+9 26 1 0 1 0
+9 26 2 0 1 0
+9 26 3 0 1 0
+9 26 4 0 1 0
+9 26 5 0 1 0
+9 26 6 0 1 0
+9 26 7 0 1 0
+9 26 8 0 1 0
+9 26 9 0 1 0
+9 26 10 0 1 0
+9 26 11 0 1 0
+9 26 12 0 1 0
+9 26 13 0 1 0
+9 26 14 0 1 0
+9 26 15 0 1 0.247803
+9 26 16 0 1 0.361572
+9 26 17 0 1 0.461914
+9 26 18 0 1 0.556641
+9 26 19 0 1 0.645996
+9 26 20 0 1 0.727539
+9 26 21 0 1 0.802246
+9 26 22 0 1 0.868652
+9 26 23 0 1 0.924316
+9 26 24 0 1 0.970703
+9 26 25 0 1 1
+9 26 26 0 0.994629 1
+9 26 27 0 0.959473 1
+9 26 28 0 0.918457 1
+9 26 29 0 0.874023 1
+9 26 30 0 0.828125 1
+9 26 31 0 0.782715 1
+9 27 0 0 1 0
+9 27 1 0 1 0
+9 27 2 0 1 0
+9 27 3 0 1 0
+9 27 4 0 1 0
+9 27 5 0 1 0
+9 27 6 0 1 0
+9 27 7 0 1 0
+9 27 8 0 1 0
+9 27 9 0 1 0
+9 27 10 0 1 0
+9 27 11 0 1 0
+9 27 12 0 1 0
+9 27 13 0 1 0
+9 27 14 0 1 0
+9 27 15 0 1 0.200317
+9 27 16 0 1 0.326172
+9 27 17 0 1 0.427734
+9 27 18 0 1 0.521484
+9 27 19 0 1 0.609375
+9 27 20 0 1 0.69043
+9 27 21 0 1 0.765625
+9 27 22 0 1 0.833008
+9 27 23 0 1 0.891113
+9 27 24 0 1 0.939941
+9 27 25 0 1 0.985352
+9 27 26 0 1 1
+9 27 27 0 1 1
+9 27 28 0 0.96875 1
+9 27 29 0 0.925781 1
+9 27 30 0 0.879883 1
+9 27 31 0 0.833008 1
+9 28 0 0 1 0
+9 28 1 0 1 0
+9 28 2 0 1 0
+9 28 3 0 1 0
+9 28 4 0 1 0
+9 28 5 0 1 0
+9 28 6 0 1 0
+9 28 7 0 1 0
+9 28 8 0 1 0
+9 28 9 0 1 0
+9 28 10 0 1 0
+9 28 11 0 1 0
+9 28 12 0 1 0
+9 28 13 0 1 0
+9 28 14 0 1 0
+9 28 15 0 1 0.130249
+9 28 16 0 1 0.287109
+9 28 17 0 1 0.391846
+9 28 18 0 1 0.485107
+9 28 19 0 1 0.571777
+9 28 20 0 1 0.651367
+9 28 21 0 1 0.726074
+9 28 22 0 1 0.793945
+9 28 23 0 1 0.853027
+9 28 24 0 1 0.904297
+9 28 25 0 1 0.953125
+9 28 26 0 1 0.997559
+9 28 27 0 1 1
+9 28 28 0 1 1
+9 28 29 0 0.974121 1
+9 28 30 0 0.930664 1
+9 28 31 0 0.884277 1
+9 29 0 0 1 0
+9 29 1 0 1 0
+9 29 2 0 1 0
+9 29 3 0 1 0
+9 29 4 0 1 0
+9 29 5 0 1 0
+9 29 6 0 1 0
+9 29 7 0 1 0
+9 29 8 0 1 0
+9 29 9 0 1 0
+9 29 10 0 1 0
+9 29 11 0 1 0
+9 29 12 0 1 0
+9 29 13 0 1 0
+9 29 14 0 1 0
+9 29 15 0 1 0
+9 29 16 0 1 0.24231
+9 29 17 0 1 0.353516
+9 29 18 0 1 0.446777
+9 29 19 0 1 0.531738
+9 29 20 0 1 0.610352
+9 29 21 0 1 0.683594
+9 29 22 0 1 0.751465
+9 29 23 0 1 0.811035
+9 29 24 0 1 0.86377
+9 29 25 0 1 0.914551
+9 29 26 0 1 0.962402
+9 29 27 0 1 1
+9 29 28 0 1 1
+9 29 29 0 1 1
+9 29 30 0 0.979492 1
+9 29 31 0 0.93457 1
+9 30 0 0 1 0
+9 30 1 0 1 0
+9 30 2 0 1 0
+9 30 3 0 1 0
+9 30 4 0 1 0
+9 30 5 0 1 0
+9 30 6 0 1 0
+9 30 7 0 1 0
+9 30 8 0 1 0
+9 30 9 0 1 0
+9 30 10 0 1 0
+9 30 11 0 1 0
+9 30 12 0 1 0
+9 30 13 0 1 0
+9 30 14 0 1 0
+9 30 15 0 1 0
+9 30 16 0 1 0.186401
+9 30 17 0 1 0.312012
+9 30 18 0 1 0.406738
+9 30 19 0 1 0.490723
+9 30 20 0 1 0.567383
+9 30 21 0 1 0.63916
+9 30 22 0 1 0.706055
+9 30 23 0 1 0.765625
+9 30 24 0 1 0.818848
+9 30 25 0 1 0.871094
+9 30 26 0 1 0.921387
+9 30 27 0 1 0.96875
+9 30 28 0 1 1
+9 30 29 0 1 1
+9 30 30 0 1 1
+9 30 31 0 0.98291 1
+9 31 0 0 1 0
+9 31 1 0 1 0
+9 31 2 0 1 0
+9 31 3 0 1 0
+9 31 4 0 1 0
+9 31 5 0 1 0
+9 31 6 0 1 0
+9 31 7 0 1 0
+9 31 8 0 1 0
+9 31 9 0 1 0
+9 31 10 0 1 0
+9 31 11 0 1 0
+9 31 12 0 1 0
+9 31 13 0 1 0
+9 31 14 0 1 0
+9 31 15 0 1 0
+9 31 16 0 1 0.0899658
+9 31 17 0 1 0.266846
+9 31 18 0 1 0.365234
+9 31 19 0 1 0.448486
+9 31 20 0 1 0.523438
+9 31 21 0 1 0.593262
+9 31 22 0 1 0.658203
+9 31 23 0 1 0.717285
+9 31 24 0 1 0.770508
+9 31 25 0 1 0.823242
+9 31 26 0 1 0.875488
+9 31 27 0 1 0.92627
+9 31 28 0 1 0.973145
+9 31 29 0 1 1
+9 31 30 0 1 1
+9 31 31 0 1 1
+10 0 0 0.298096 0 0.0177612
+10 0 1 0.298096 0 0.0177155
+10 0 2 0.298096 0 0.0176392
+10 0 3 0.298096 0 0.0175018
+10 0 4 0.298096 0 0.0172424
+10 0 5 0.298096 0 0.016861
+10 0 6 0.29834 0 0.0315552
+10 0 7 0.294434 0 0.0947876
+10 0 8 0.28418 0 0.137939
+10 0 9 0.240601 0.0393982 0.161987
+10 0 10 0.213989 0.0682983 0.189209
+10 0 11 0.205444 0.0770264 0.241089
+10 0 12 0.184326 0.0889893 0.303711
+10 0 13 0.12915 0.103821 0.374756
+10 0 14 0 0.121155 0.453369
+10 0 15 0 0.140381 0.537109
+10 0 16 0 0.160767 0.623535
+10 0 17 0 0.180786 0.707031
+10 0 18 0 0.199341 0.78418
+10 0 19 0 0.21582 0.851562
+10 0 20 0 0.22522 0.890625
+10 0 21 0 0.226685 0.897461
+10 0 22 0 0.228394 0.904785
+10 0 23 0 0.230103 0.912598
+10 0 24 0 0.231934 0.92041
+10 0 25 0 0.234009 0.929199
+10 0 26 0 0.236328 0.938477
+10 0 27 0 0.238892 0.949219
+10 0 28 0 0.241821 0.960938
+10 0 29 0 0.244995 0.974121
+10 0 30 0 0.248291 0.987305
+10 0 31 0 0.251709 1
+10 1 0 0.297852 0 0.0172272
+10 1 1 0.297852 0 0.0171967
+10 1 2 0.297852 0 0.0171051
+10 1 3 0.297852 0 0.0169678
+10 1 4 0.297852 0 0.0166931
+10 1 5 0.297852 0 0.0162811
+10 1 6 0.298096 0 0.03125
+10 1 7 0.294434 0 0.0946655
+10 1 8 0.28418 0 0.137939
+10 1 9 0.240723 0.0407104 0.162109
+10 1 10 0.213989 0.0687866 0.189087
+10 1 11 0.205322 0.0774536 0.241089
+10 1 12 0.184204 0.0892944 0.303467
+10 1 13 0.129028 0.104065 0.374756
+10 1 14 0 0.121338 0.453369
+10 1 15 0 0.140503 0.537109
+10 1 16 0 0.160889 0.623535
+10 1 17 0 0.180908 0.707031
+10 1 18 0 0.199463 0.78418
+10 1 19 0 0.21582 0.851562
+10 1 20 0 0.225342 0.890625
+10 1 21 0 0.226685 0.897461
+10 1 22 0 0.228394 0.904785
+10 1 23 0 0.230103 0.912598
+10 1 24 0 0.231934 0.92041
+10 1 25 0 0.234009 0.929199
+10 1 26 0 0.236328 0.938477
+10 1 27 0 0.238892 0.949219
+10 1 28 0 0.241821 0.960938
+10 1 29 0 0.244995 0.974121
+10 1 30 0 0.248291 0.987305
+10 1 31 0 0.251709 1
+10 2 0 0.297607 0 0.0162354
+10 2 1 0.297607 0 0.0161896
+10 2 2 0.297607 0 0.016098
+10 2 3 0.297607 0 0.0159454
+10 2 4 0.297607 0 0.0156403
+10 2 5 0.297607 0 0.0151825
+10 2 6 0.297852 0 0.0307465
+10 2 7 0.294189 0 0.0945435
+10 2 8 0.28418 0 0.137939
+10 2 9 0.240723 0.0428772 0.162109
+10 2 10 0.213989 0.0695801 0.189087
+10 2 11 0.205322 0.078125 0.241089
+10 2 12 0.184204 0.0899048 0.303467
+10 2 13 0.128906 0.104492 0.374756
+10 2 14 0 0.121704 0.453369
+10 2 15 0 0.140747 0.537109
+10 2 16 0 0.161133 0.623535
+10 2 17 0 0.18103 0.707031
+10 2 18 0 0.199585 0.78418
+10 2 19 0 0.215942 0.851562
+10 2 20 0 0.225342 0.890625
+10 2 21 0 0.226807 0.897461
+10 2 22 0 0.228394 0.904785
+10 2 23 0 0.230225 0.912598
+10 2 24 0 0.231934 0.92041
+10 2 25 0 0.234009 0.929199
+10 2 26 0 0.236328 0.938477
+10 2 27 0 0.238892 0.949219
+10 2 28 0 0.241821 0.960938
+10 2 29 0 0.244995 0.974121
+10 2 30 0 0.248291 0.987305
+10 2 31 0 0.251709 1
+10 3 0 0.297119 0 0.0140991
+10 3 1 0.297119 0 0.0140381
+10 3 2 0.297119 0 0.0139313
+10 3 3 0.297119 0 0.0137329
+10 3 4 0.296875 0 0.0133362
+10 3 5 0.297119 0 0.0127563
+10 3 6 0.297363 0 0.0297699
+10 3 7 0.293945 0 0.0942993
+10 3 8 0.283936 0 0.137817
+10 3 9 0.240967 0.0464783 0.162231
+10 3 10 0.213867 0.0709839 0.189087
+10 3 11 0.2052 0.0793457 0.241089
+10 3 12 0.18396 0.0909424 0.303467
+10 3 13 0.128662 0.105347 0.374756
+10 3 14 0 0.122314 0.453369
+10 3 15 0 0.141235 0.537109
+10 3 16 0 0.161499 0.623535
+10 3 17 0 0.181274 0.707031
+10 3 18 0 0.199829 0.78418
+10 3 19 0 0.216187 0.851562
+10 3 20 0 0.225464 0.890625
+10 3 21 0 0.226929 0.897461
+10 3 22 0 0.228516 0.904785
+10 3 23 0 0.230225 0.912598
+10 3 24 0 0.232056 0.92041
+10 3 25 0 0.234131 0.929199
+10 3 26 0 0.236328 0.938477
+10 3 27 0 0.239014 0.949219
+10 3 28 0 0.241943 0.960938
+10 3 29 0 0.244995 0.974121
+10 3 30 0 0.248291 0.987305
+10 3 31 0 0.251709 1
+10 4 0 0.295898 0 0.00713348
+10 4 1 0.295898 0 0.00695419
+10 4 2 0.295898 0 0.0066185
+10 4 3 0.295898 0 0.00592041
+10 4 4 0.295898 0 0.00402069
+10 4 5 0.296143 0.0146332 0
+10 4 6 0.296631 0.0189819 0.0279083
+10 4 7 0.293457 0 0.093811
+10 4 8 0.283936 0 0.137573
+10 4 9 0.241211 0.0523376 0.162476
+10 4 10 0.213623 0.0736084 0.189087
+10 4 11 0.204956 0.081604 0.240967
+10 4 12 0.183716 0.0928345 0.303467
+10 4 13 0.128174 0.106873 0.374756
+10 4 14 0 0.123535 0.453369
+10 4 15 0 0.142212 0.537109
+10 4 16 0 0.162231 0.623535
+10 4 17 0 0.181885 0.707031
+10 4 18 0 0.200195 0.78418
+10 4 19 0 0.216431 0.851562
+10 4 20 0 0.22583 0.890625
+10 4 21 0 0.227051 0.897461
+10 4 22 0 0.228638 0.904785
+10 4 23 0 0.230347 0.912598
+10 4 24 0 0.232178 0.92041
+10 4 25 0 0.234253 0.929199
+10 4 26 0 0.23645 0.938477
+10 4 27 0 0.239014 0.949219
+10 4 28 0 0.241943 0.960938
+10 4 29 0 0.245117 0.974121
+10 4 30 0 0.248413 0.987305
+10 4 31 0 0.251709 1
+10 5 0 0.293945 0.0500793 0
+10 5 1 0.293945 0.0502319 0
+10 5 2 0.293945 0.0504761 0
+10 5 3 0.293945 0.0509338 0
+10 5 4 0.293701 0.0517883 0
+10 5 5 0.293945 0.0530396 0
+10 5 6 0.294678 0.0536804 0.0241547
+10 5 7 0.292236 0.0484619 0.0928955
+10 5 8 0.283447 0.0410461 0.137207
+10 5 9 0.241699 0.0614929 0.162964
+10 5 10 0.213257 0.078186 0.189087
+10 5 11 0.204468 0.0857544 0.240967
+10 5 12 0.183228 0.0963135 0.303467
+10 5 13 0.127197 0.109741 0.374756
+10 5 14 0 0.125732 0.453369
+10 5 15 0 0.143921 0.537109
+10 5 16 0 0.163574 0.623535
+10 5 17 0 0.182861 0.707031
+10 5 18 0 0.20105 0.78418
+10 5 19 0 0.217163 0.851562
+10 5 20 0 0.226318 0.890625
+10 5 21 0 0.227539 0.897461
+10 5 22 0 0.229004 0.905273
+10 5 23 0 0.230713 0.912598
+10 5 24 0 0.232422 0.92041
+10 5 25 0 0.234375 0.929199
+10 5 26 0 0.236694 0.938477
+10 5 27 0 0.239258 0.949219
+10 5 28 0 0.242065 0.960938
+10 5 29 0 0.245239 0.974121
+10 5 30 0 0.248535 0.987305
+10 5 31 0 0.251953 1
+10 6 0 0.289551 0.0769043 0
+10 6 1 0.289551 0.0769653 0
+10 6 2 0.289551 0.0770874 0
+10 6 3 0.289551 0.0773315 0
+10 6 4 0.289551 0.0776978 0
+10 6 5 0.289551 0.0784302 0
+10 6 6 0.290771 0.0788574 0.0162354
+10 6 7 0.289551 0.0759888 0.0911865
+10 6 8 0.281982 0.071167 0.13623
+10 6 9 0.24292 0.0750732 0.163818
+10 6 10 0.212524 0.0859985 0.188965
+10 6 11 0.203613 0.0927734 0.240845
+10 6 12 0.182129 0.102478 0.303467
+10 6 13 0.125366 0.114868 0.374756
+10 6 14 0 0.129883 0.453369
+10 6 15 0 0.147217 0.537109
+10 6 16 0 0.166016 0.623535
+10 6 17 0 0.184937 0.707031
+10 6 18 0 0.202637 0.78418
+10 6 19 0 0.218384 0.851562
+10 6 20 0 0.227295 0.890625
+10 6 21 0 0.228271 0.897461
+10 6 22 0 0.229736 0.905273
+10 6 23 0 0.231201 0.912598
+10 6 24 0 0.23291 0.92041
+10 6 25 0 0.234863 0.929199
+10 6 26 0 0.237061 0.938477
+10 6 27 0 0.239502 0.949219
+10 6 28 0 0.24231 0.961426
+10 6 29 0 0.245483 0.974121
+10 6 30 0 0.248657 0.987305
+10 6 31 0 0.251953 1
+10 7 0 0.280518 0.103699 0
+10 7 1 0.280518 0.10376 0
+10 7 2 0.280518 0.103821 0
+10 7 3 0.280273 0.103943 0
+10 7 4 0.280273 0.104126 0
+10 7 5 0.280273 0.104553 0
+10 7 6 0.281982 0.105103 0
+10 7 7 0.282715 0.103882 0.0880737
+10 7 8 0.277588 0.100464 0.133789
+10 7 9 0.245239 0.0950928 0.165771
+10 7 10 0.21106 0.0985107 0.188721
+10 7 11 0.202026 0.104492 0.240723
+10 7 12 0.180176 0.112976 0.303467
+10 7 13 0.121582 0.123901 0.374756
+10 7 14 0 0.137329 0.453369
+10 7 15 0 0.153198 0.537109
+10 7 16 0 0.170776 0.623535
+10 7 17 0 0.188599 0.70752
+10 7 18 0 0.205566 0.78418
+10 7 19 0 0.220703 0.851562
+10 7 20 0 0.229248 0.890625
+10 7 21 0 0.229858 0.897461
+10 7 22 0 0.230957 0.905273
+10 7 23 0 0.2323 0.912598
+10 7 24 0 0.233765 0.92041
+10 7 25 0 0.235596 0.929199
+10 7 26 0 0.237671 0.938477
+10 7 27 0 0.240112 0.949219
+10 7 28 0 0.242798 0.961426
+10 7 29 0 0.24585 0.974121
+10 7 30 0 0.249023 0.987305
+10 7 31 0 0.252441 1
+10 8 0 0.261719 0.130371 0
+10 8 1 0.261719 0.130371 0
+10 8 2 0.261719 0.130371 0
+10 8 3 0.261719 0.130493 0
+10 8 4 0.261719 0.130493 0
+10 8 5 0.261475 0.130737 0
+10 8 6 0.262695 0.131348 0.0321045
+10 8 7 0.264648 0.131836 0.0842896
+10 8 8 0.267578 0.132324 0.128784
+10 8 9 0.249756 0.125244 0.169189
+10 8 10 0.20813 0.117554 0.188477
+10 8 11 0.19873 0.122803 0.240479
+10 8 12 0.176147 0.130005 0.303223
+10 8 13 0.113708 0.139038 0.374512
+10 8 14 0 0.150391 0.453369
+10 8 15 0 0.16394 0.537109
+10 8 16 0 0.179565 0.624023
+10 8 17 0 0.195557 0.70752
+10 8 18 0 0.211182 0.78418
+10 8 19 0 0.225342 0.851562
+10 8 20 0 0.23291 0.891113
+10 8 21 0 0.232788 0.897949
+10 8 22 0 0.233398 0.905273
+10 8 23 0 0.234375 0.913086
+10 8 24 0 0.235596 0.920898
+10 8 25 0 0.237061 0.929199
+10 8 26 0 0.238892 0.938965
+10 8 27 0 0.241211 0.949219
+10 8 28 0 0.243774 0.961426
+10 8 29 0 0.246704 0.974121
+10 8 30 0 0.249756 0.987305
+10 8 31 0 0.25293 1
+10 9 0 0.234863 0.153809 0.0432739
+10 9 1 0.234863 0.153809 0.0433044
+10 9 2 0.234863 0.153809 0.043335
+10 9 3 0.234863 0.153809 0.043396
+10 9 4 0.234863 0.153931 0.0434875
+10 9 5 0.234863 0.154053 0.0436707
+10 9 6 0.234375 0.154175 0.0605164
+10 9 7 0.233521 0.154297 0.0869751
+10 9 8 0.233643 0.15564 0.118835
+10 9 9 0.240479 0.161377 0.165161
+10 9 10 0.202637 0.144531 0.187988
+10 9 11 0.192383 0.149048 0.23999
+10 9 12 0.167969 0.155151 0.302734
+10 9 13 0.095459 0.162476 0.374268
+10 9 14 0 0.171265 0.453125
+10 9 15 0 0.181885 0.537109
+10 9 16 0 0.19458 0.624023
+10 9 17 0 0.207886 0.70752
+10 9 18 0 0.221191 0.78418
+10 9 19 0 0.233643 0.851562
+10 9 20 0 0.239868 0.891602
+10 9 21 0 0.238403 0.898438
+10 9 22 0 0.237915 0.905762
+10 9 23 0 0.238159 0.913086
+10 9 24 0 0.238892 0.920898
+10 9 25 0 0.239868 0.929688
+10 9 26 0 0.241333 0.938965
+10 9 27 0 0.243286 0.949707
+10 9 28 0 0.245605 0.961426
+10 9 29 0 0.248291 0.974121
+10 9 30 0 0.250977 0.987305
+10 9 31 0 0.25415 1
+10 10 0 0.226318 0.194458 0.0635376
+10 10 1 0.226318 0.194458 0.0635376
+10 10 2 0.226318 0.194458 0.0635376
+10 10 3 0.226318 0.194458 0.0635986
+10 10 4 0.226318 0.19458 0.0635986
+10 10 5 0.22644 0.194702 0.0635986
+10 10 6 0.226074 0.19458 0.0683594
+10 10 7 0.223389 0.193359 0.0921021
+10 10 8 0.21814 0.191162 0.1203
+10 10 9 0.20874 0.187012 0.152954
+10 10 10 0.192261 0.179932 0.1875
+10 10 11 0.180054 0.183838 0.239502
+10 10 12 0.151367 0.188965 0.302246
+10 10 13 0 0.194824 0.373779
+10 10 14 0 0.201172 0.452881
+10 10 15 0 0.208862 0.537109
+10 10 16 0 0.217896 0.624023
+10 10 17 0 0.227783 0.70752
+10 10 18 0 0.237915 0.784668
+10 10 19 0 0.247681 0.852051
+10 10 20 0 0.251709 0.892578
+10 10 21 0 0.247925 0.898926
+10 10 22 0 0.24585 0.90625
+10 10 23 0 0.244873 0.914062
+10 10 24 0 0.244629 0.921387
+10 10 25 0 0.244995 0.930176
+10 10 26 0 0.245728 0.939453
+10 10 27 0 0.24707 0.949707
+10 10 28 0 0.248779 0.961914
+10 10 29 0 0.250977 0.974609
+10 10 30 0 0.253418 0.987793
+10 10 31 0 0.256104 1
+10 11 0 0.197388 0.234497 0.0606384
+10 11 1 0.197388 0.234497 0.0606384
+10 11 2 0.197388 0.234497 0.0606384
+10 11 3 0.197388 0.234497 0.0606384
+10 11 4 0.197388 0.234497 0.0606384
+10 11 5 0.19751 0.234619 0.0606689
+10 11 6 0.19751 0.234741 0.0606995
+10 11 7 0.195801 0.233887 0.0809326
+10 11 8 0.191162 0.231445 0.111877
+10 11 9 0.182739 0.227539 0.146362
+10 11 10 0.171265 0.22522 0.187012
+10 11 11 0.154175 0.228027 0.238892
+10 11 12 0.111694 0.232178 0.30127
+10 11 13 0 0.236694 0.373047
+10 11 14 0 0.241211 0.452637
+10 11 15 0 0.24585 0.537109
+10 11 16 0 0.251465 0.624023
+10 11 17 0 0.257324 0.708008
+10 11 18 0 0.263428 0.785156
+10 11 19 0 0.269531 0.852539
+10 11 20 0 0.270508 0.894043
+10 11 21 0 0.263428 0.900391
+10 11 22 0 0.259033 0.907227
+10 11 23 0 0.256104 0.915039
+10 11 24 0 0.254395 0.922363
+10 11 25 0 0.253418 0.930664
+10 11 26 0 0.253174 0.939941
+10 11 27 0 0.253418 0.950684
+10 11 28 0 0.254395 0.962402
+10 11 29 0 0.255859 0.975098
+10 11 30 0 0.257568 0.988281
+10 11 31 0 0.259766 1
+10 12 0 0.144897 0.283447 0.0577698
+10 12 1 0.144897 0.283447 0.0577698
+10 12 2 0.144897 0.283447 0.0577698
+10 12 3 0.14502 0.283447 0.0577698
+10 12 4 0.14502 0.283447 0.0578003
+10 12 5 0.14502 0.283447 0.0578003
+10 12 6 0.145142 0.283691 0.0578308
+10 12 7 0.145264 0.283691 0.06073
+10 12 8 0.140869 0.282959 0.10083
+10 12 9 0.132324 0.281738 0.140747
+10 12 10 0.11554 0.281494 0.185303
+10 12 11 0.0705566 0.282959 0.237915
+10 12 12 0 0.285645 0.300049
+10 12 13 0 0.288818 0.371826
+10 12 14 0 0.291748 0.45166
+10 12 15 0 0.293945 0.536621
+10 12 16 0 0.296143 0.624512
+10 12 17 0 0.298096 0.708496
+10 12 18 0 0.299805 0.785645
+10 12 19 0 0.301758 0.853027
+10 12 20 0 0.298828 0.896484
+10 12 21 0 0.287354 0.902344
+10 12 22 0 0.279297 0.90918
+10 12 23 0 0.273682 0.916504
+10 12 24 0 0.269775 0.923828
+10 12 25 0 0.26709 0.932129
+10 12 26 0 0.264893 0.941406
+10 12 27 0 0.263672 0.95166
+10 12 28 0 0.263428 0.963379
+10 12 29 0 0.263672 0.975586
+10 12 30 0 0.264404 0.98877
+10 12 31 0 0.265625 1
+10 13 0 0 0.346924 0.0552979
+10 13 1 0 0.346924 0.0552979
+10 13 2 0 0.346924 0.0552979
+10 13 3 0 0.346924 0.0552979
+10 13 4 0 0.346924 0.0552979
+10 13 5 0 0.347168 0.0553284
+10 13 6 0 0.347168 0.0553589
+10 13 7 0 0.347168 0.0554199
+10 13 8 0 0.347412 0.0811157
+10 13 9 0 0.347168 0.131104
+10 13 10 0 0.347412 0.180298
+10 13 11 0 0.3479 0.234985
+10 13 12 0 0.349365 0.297852
+10 13 13 0 0.351318 0.369629
+10 13 14 0 0.352783 0.449951
+10 13 15 0 0.353027 0.535645
+10 13 16 0 0.352295 0.624023
+10 13 17 0 0.350342 0.708984
+10 13 18 0 0.347656 0.786621
+10 13 19 0 0.345215 0.854492
+10 13 20 0 0.338379 0.900391
+10 13 21 0 0.321289 0.905762
+10 13 22 0 0.308594 0.912598
+10 13 23 0 0.299561 0.919434
+10 13 24 0 0.292725 0.92627
+10 13 25 0 0.287354 0.93457
+10 13 26 0 0.282959 0.943359
+10 13 27 0 0.279541 0.953125
+10 13 28 0 0.277344 0.964844
+10 13 29 0 0.275879 0.977051
+10 13 30 0 0.275146 0.990234
+10 13 31 0 0.275146 1
+10 14 0 0 0.42041 0.0510559
+10 14 1 0 0.42041 0.0510864
+10 14 2 0 0.42041 0.0510864
+10 14 3 0 0.42041 0.0510864
+10 14 4 0 0.42041 0.0510864
+10 14 5 0 0.42041 0.0511169
+10 14 6 0 0.42041 0.0511475
+10 14 7 0 0.420654 0.0512085
+10 14 8 0 0.420898 0.0513306
+10 14 9 0 0.420898 0.110962
+10 14 10 0 0.421387 0.169189
+10 14 11 0 0.421875 0.227905
+10 14 12 0 0.422607 0.292969
+10 14 13 0 0.423584 0.365723
+10 14 14 0 0.423828 0.446533
+10 14 15 0 0.422852 0.533203
+10 14 16 0 0.419922 0.623047
+10 14 17 0 0.414551 0.708984
+10 14 18 0 0.407715 0.787109
+10 14 19 0 0.400635 0.855469
+10 14 20 0 0.390381 0.905762
+10 14 21 0 0.366699 0.911133
+10 14 22 0 0.348633 0.91748
+10 14 23 0 0.335205 0.923828
+10 14 24 0 0.324951 0.930664
+10 14 25 0 0.316162 0.937988
+10 14 26 0 0.308838 0.946777
+10 14 27 0 0.30249 0.956543
+10 14 28 0 0.297852 0.967285
+10 14 29 0 0.293945 0.979492
+10 14 30 0 0.29126 0.992188
+10 14 31 0 0.289062 1
+10 15 0 0 0.499756 0.0431213
+10 15 1 0 0.499756 0.0431213
+10 15 2 0 0.499756 0.0431213
+10 15 3 0 0.499756 0.0431213
+10 15 4 0 0.499756 0.0431213
+10 15 5 0 0.499756 0.0431519
+10 15 6 0 0.499756 0.0432129
+10 15 7 0 0.5 0.0432739
+10 15 8 0 0.5 0.043457
+10 15 9 0 0.500488 0.0566406
+10 15 10 0 0.500977 0.148315
+10 15 11 0 0.501465 0.2146
+10 15 12 0 0.502441 0.283203
+10 15 13 0 0.50293 0.35791
+10 15 14 0 0.50293 0.440186
+10 15 15 0 0.501465 0.52832
+10 15 16 0 0.49707 0.620117
+10 15 17 0 0.489014 0.70752
+10 15 18 0 0.47876 0.787598
+10 15 19 0 0.467529 0.856934
+10 15 20 0 0.45459 0.912109
+10 15 21 0 0.424316 0.918945
+10 15 22 0 0.400146 0.925293
+10 15 23 0 0.381592 0.931152
+10 15 24 0 0.367188 0.937012
+10 15 25 0 0.354492 0.944336
+10 15 26 0 0.343262 0.952148
+10 15 27 0 0.33374 0.960938
+10 15 28 0 0.325684 0.97168
+10 15 29 0 0.319092 0.98291
+10 15 30 0 0.313477 0.995117
+10 15 31 0 0.309082 1
+10 16 0 0 0.583008 0.0243225
+10 16 1 0 0.583008 0.0243225
+10 16 2 0 0.583008 0.0243378
+10 16 3 0 0.583008 0.024353
+10 16 4 0 0.583008 0.0243835
+10 16 5 0 0.583496 0.0244293
+10 16 6 0 0.583496 0.0245361
+10 16 7 0 0.583496 0.0247345
+10 16 8 0 0.583496 0.0251312
+10 16 9 0 0.583496 0.0258636
+10 16 10 0 0.583984 0.106506
+10 16 11 0 0.584961 0.192627
+10 16 12 0 0.585938 0.267334
+10 16 13 0 0.587402 0.345215
+10 16 14 0 0.587891 0.429688
+10 16 15 0 0.586426 0.519531
+10 16 16 0 0.581543 0.613281
+10 16 17 0 0.572266 0.703613
+10 16 18 0 0.55957 0.785645
+10 16 19 0 0.544922 0.856934
+10 16 20 0 0.528809 0.915039
+10 16 21 0 0.493896 0.928711
+10 16 22 0 0.463867 0.936035
+10 16 23 0 0.439697 0.941895
+10 16 24 0 0.42041 0.947266
+10 16 25 0 0.403076 0.953613
+10 16 26 0 0.387695 0.960938
+10 16 27 0 0.374023 0.96875
+10 16 28 0 0.362305 0.978516
+10 16 29 0 0.352051 0.98877
+10 16 30 0 0.343018 1
+10 16 31 0 0.335449 1
+10 17 0 0 0.665527 0
+10 17 1 0 0.665527 0
+10 17 2 0 0.665527 0
+10 17 3 0 0.665527 0
+10 17 4 0 0.665527 0
+10 17 5 0 0.665527 0
+10 17 6 0 0.665527 0
+10 17 7 0 0.665527 0
+10 17 8 0 0.665527 0
+10 17 9 0 0.666016 0
+10 17 10 0 0.666016 0
+10 17 11 0 0.666992 0.15686
+10 17 12 0 0.668457 0.244385
+10 17 13 0 0.67041 0.326904
+10 17 14 0 0.671875 0.413574
+10 17 15 0 0.671387 0.505859
+10 17 16 0 0.66748 0.601562
+10 17 17 0 0.658691 0.694824
+10 17 18 0 0.64502 0.780273
+10 17 19 0 0.62793 0.854004
+10 17 20 0 0.608887 0.915039
+10 17 21 0 0.572754 0.938965
+10 17 22 0 0.537598 0.949707
+10 17 23 0 0.508301 0.956543
+10 17 24 0 0.483887 0.961914
+10 17 25 0 0.461426 0.967285
+10 17 26 0 0.441162 0.973145
+10 17 27 0 0.422607 0.97998
+10 17 28 0 0.406494 0.988281
+10 17 29 0 0.39209 0.997559
+10 17 30 0 0.379639 1
+10 17 31 0 0.368408 1
+10 18 0 0 0.742188 0
+10 18 1 0 0.742188 0
+10 18 2 0 0.742188 0
+10 18 3 0 0.742188 0
+10 18 4 0 0.742188 0
+10 18 5 0 0.742188 0
+10 18 6 0 0.742188 0
+10 18 7 0 0.742188 0
+10 18 8 0 0.742188 0
+10 18 9 0 0.742676 0
+10 18 10 0 0.742676 0
+10 18 11 0 0.743164 0.083252
+10 18 12 0 0.745117 0.21228
+10 18 13 0 0.747559 0.30249
+10 18 14 0 0.75 0.392334
+10 18 15 0 0.750977 0.486084
+10 18 16 0 0.749023 0.583984
+10 18 17 0 0.742188 0.680176
+10 18 18 0 0.729492 0.769531
+10 18 19 0 0.711914 0.847168
+10 18 20 0 0.690918 0.911133
+10 18 21 0 0.656738 0.946777
+10 18 22 0 0.618652 0.964355
+10 18 23 0 0.584961 0.974121
+10 18 24 0 0.555664 0.980469
+10 18 25 0 0.527832 0.985352
+10 18 26 0 0.502441 0.990234
+10 18 27 0 0.47876 0.995605
+10 18 28 0 0.457764 1
+10 18 29 0 0.438721 1
+10 18 30 0 0.421875 1
+10 18 31 0 0.406738 1
+10 19 0 0 0.811035 0
+10 19 1 0 0.811035 0
+10 19 2 0 0.811035 0
+10 19 3 0 0.811035 0
+10 19 4 0 0.811035 0
+10 19 5 0 0.811035 0
+10 19 6 0 0.811035 0
+10 19 7 0 0.811035 0
+10 19 8 0 0.811035 0
+10 19 9 0 0.811523 0
+10 19 10 0 0.811523 0
+10 19 11 0 0.811523 0
+10 19 12 0 0.812988 0.167358
+10 19 13 0 0.815918 0.272949
+10 19 14 0 0.818848 0.366943
+10 19 15 0 0.821777 0.462402
+10 19 16 0 0.822266 0.562012
+10 19 17 0 0.817871 0.660645
+10 19 18 0 0.807617 0.753418
+10 19 19 0 0.791504 0.834961
+10 19 20 0 0.770508 0.902344
+10 19 21 0 0.739746 0.949219
+10 19 22 0 0.702148 0.976562
+10 19 23 0 0.665527 0.991699
+10 19 24 0 0.632324 1
+10 19 25 0 0.600098 1
+10 19 26 0 0.569336 1
+10 19 27 0 0.540527 1
+10 19 28 0 0.51416 1
+10 19 29 0 0.490234 1
+10 19 30 0 0.468506 1
+10 19 31 0 0.448975 1
+10 20 0 0 0.870605 0
+10 20 1 0 0.870605 0
+10 20 2 0 0.870605 0
+10 20 3 0 0.870605 0
+10 20 4 0 0.870605 0
+10 20 5 0 0.870605 0
+10 20 6 0 0.870605 0
+10 20 7 0 0.870605 0
+10 20 8 0 0.870605 0
+10 20 9 0 0.870605 0
+10 20 10 0 0.870605 0
+10 20 11 0 0.871094 0
+10 20 12 0 0.871582 0.0841675
+10 20 13 0 0.874512 0.238159
+10 20 14 0 0.87793 0.339111
+10 20 15 0 0.881836 0.436768
+10 20 16 0 0.884277 0.537109
+10 20 17 0 0.883301 0.637207
+10 20 18 0 0.875977 0.732422
+10 20 19 0 0.861816 0.817383
+10 20 20 0 0.842285 0.888672
+10 20 21 0 0.815918 0.945312
+10 20 22 0 0.782227 0.98291
+10 20 23 0 0.745605 1
+10 20 24 0 0.710449 1
+10 20 25 0 0.674316 1
+10 20 26 0 0.63916 1
+10 20 27 0 0.60498 1
+10 20 28 0 0.57373 1
+10 20 29 0 0.544434 1
+10 20 30 0 0.518066 1
+10 20 31 0 0.493896 1
+10 21 0 0 0.921387 0
+10 21 1 0 0.921387 0
+10 21 2 0 0.921387 0
+10 21 3 0 0.921387 0
+10 21 4 0 0.921387 0
+10 21 5 0 0.921387 0
+10 21 6 0 0.921387 0
+10 21 7 0 0.921387 0
+10 21 8 0 0.921387 0
+10 21 9 0 0.921387 0
+10 21 10 0 0.921387 0
+10 21 11 0 0.921387 0
+10 21 12 0 0.921875 0
+10 21 13 0 0.923828 0.194702
+10 21 14 0 0.928223 0.308105
+10 21 15 0 0.932617 0.408691
+10 21 16 0 0.936523 0.509277
+10 21 17 0 0.937988 0.610352
+10 21 18 0 0.934082 0.707031
+10 21 19 0 0.92334 0.794434
+10 21 20 0 0.906738 0.869629
+10 21 21 0 0.883789 0.932617
+10 21 22 0 0.85498 0.97998
+10 21 23 0 0.821289 1
+10 21 24 0 0.786133 1
+10 21 25 0 0.748535 1
+10 21 26 0 0.709473 1
+10 21 27 0 0.671875 1
+10 21 28 0 0.635254 1
+10 21 29 0 0.601562 1
+10 21 30 0 0.570312 1
+10 21 31 0 0.541504 1
+10 22 0 0 0.962891 0
+10 22 1 0 0.962891 0
+10 22 2 0 0.962891 0
+10 22 3 0 0.962891 0
+10 22 4 0 0.962891 0
+10 22 5 0 0.962891 0
+10 22 6 0 0.962891 0
+10 22 7 0 0.962891 0
+10 22 8 0 0.963379 0
+10 22 9 0 0.963379 0
+10 22 10 0 0.963379 0
+10 22 11 0 0.963379 0
+10 22 12 0 0.963379 0
+10 22 13 0 0.964844 0.13269
+10 22 14 0 0.96875 0.27417
+10 22 15 0 0.974121 0.37915
+10 22 16 0 0.979492 0.480713
+10 22 17 0 0.98291 0.581543
+10 22 18 0 0.981934 0.678711
+10 22 19 0 0.974609 0.768066
+10 22 20 0 0.961426 0.846191
+10 22 21 0 0.941895 0.913086
+10 22 22 0 0.916992 0.967285
+10 22 23 0 0.887695 1
+10 22 24 0 0.855469 1
+10 22 25 0 0.818359 1
+10 22 26 0 0.77832 1
+10 22 27 0 0.737793 1
+10 22 28 0 0.697754 1
+10 22 29 0 0.65918 1
+10 22 30 0 0.623535 1
+10 22 31 0 0.590332 1
+10 23 0 0 0.996582 0
+10 23 1 0 0.996582 0
+10 23 2 0 0.996582 0
+10 23 3 0 0.996582 0
+10 23 4 0 0.996582 0
+10 23 5 0 0.996582 0
+10 23 6 0 0.996582 0
+10 23 7 0 0.996582 0
+10 23 8 0 0.996582 0
+10 23 9 0 0.996582 0
+10 23 10 0 0.996582 0
+10 23 11 0 0.996582 0
+10 23 12 0 0.99707 0
+10 23 13 0 0.99707 0
+10 23 14 0 1 0.237671
+10 23 15 0 1 0.349609
+10 23 16 0 1 0.452393
+10 23 17 0 1 0.552734
+10 23 18 0 1 0.649902
+10 23 19 0 1 0.740234
+10 23 20 0 1 0.820312
+10 23 21 0 0.989258 0.890137
+10 23 22 0 0.967285 0.948242
+10 23 23 0 0.942383 0.994141
+10 23 24 0 0.914062 1
+10 23 25 0 0.879395 1
+10 23 26 0 0.840332 1
+10 23 27 0 0.798828 1
+10 23 28 0 0.756348 1
+10 23 29 0 0.714844 1
+10 23 30 0 0.675293 1
+10 23 31 0 0.637695 1
+10 24 0 0 1 0
+10 24 1 0 1 0
+10 24 2 0 1 0
+10 24 3 0 1 0
+10 24 4 0 1 0
+10 24 5 0 1 0
+10 24 6 0 1 0
+10 24 7 0 1 0
+10 24 8 0 1 0
+10 24 9 0 1 0
+10 24 10 0 1 0
+10 24 11 0 1 0
+10 24 12 0 1 0
+10 24 13 0 1 0
+10 24 14 0 1 0.196411
+10 24 15 0 1 0.319824
+10 24 16 0 1 0.424561
+10 24 17 0 1 0.524414
+10 24 18 0 1 0.621094
+10 24 19 0 1 0.711914
+10 24 20 0 1 0.792969
+10 24 21 0 1 0.865234
+10 24 22 0 1 0.92627
+10 24 23 0 0.987305 0.975586
+10 24 24 0 0.962402 1
+10 24 25 0 0.931641 1
+10 24 26 0 0.89502 1
+10 24 27 0 0.854004 1
+10 24 28 0 0.811035 1
+10 24 29 0 0.76709 1
+10 24 30 0 0.724609 1
+10 24 31 0 0.684082 1
+10 25 0 0 1 0
+10 25 1 0 1 0
+10 25 2 0 1 0
+10 25 3 0 1 0
+10 25 4 0 1 0
+10 25 5 0 1 0
+10 25 6 0 1 0
+10 25 7 0 1 0
+10 25 8 0 1 0
+10 25 9 0 1 0
+10 25 10 0 1 0
+10 25 11 0 1 0
+10 25 12 0 1 0
+10 25 13 0 1 0
+10 25 14 0 1 0.136597
+10 25 15 0 1 0.286621
+10 25 16 0 1 0.394287
+10 25 17 0 1 0.494141
+10 25 18 0 1 0.589844
+10 25 19 0 1 0.680176
+10 25 20 0 1 0.762207
+10 25 21 0 1 0.835938
+10 25 22 0 1 0.899902
+10 25 23 0 1 0.952637
+10 25 24 0 1 0.995605
+10 25 25 0 0.97998 1
+10 25 26 0 0.946777 1
+10 25 27 0 0.908203 1
+10 25 28 0 0.865234 1
+10 25 29 0 0.820801 1
+10 25 30 0 0.775879 1
+10 25 31 0 0.732422 1
+10 26 0 0 1 0
+10 26 1 0 1 0
+10 26 2 0 1 0
+10 26 3 0 1 0
+10 26 4 0 1 0
+10 26 5 0 1 0
+10 26 6 0 1 0
+10 26 7 0 1 0
+10 26 8 0 1 0
+10 26 9 0 1 0
+10 26 10 0 1 0
+10 26 11 0 1 0
+10 26 12 0 1 0
+10 26 13 0 1 0
+10 26 14 0 1 0
+10 26 15 0 1 0.248047
+10 26 16 0 1 0.361816
+10 26 17 0 1 0.461914
+10 26 18 0 1 0.556641
+10 26 19 0 1 0.645996
+10 26 20 0 1 0.727539
+10 26 21 0 1 0.802734
+10 26 22 0 1 0.868652
+10 26 23 0 1 0.924316
+10 26 24 0 1 0.970703
+10 26 25 0 1 1
+10 26 26 0 0.994629 1
+10 26 27 0 0.959473 1
+10 26 28 0 0.918457 1
+10 26 29 0 0.874023 1
+10 26 30 0 0.828125 1
+10 26 31 0 0.782715 1
+10 27 0 0 1 0
+10 27 1 0 1 0
+10 27 2 0 1 0
+10 27 3 0 1 0
+10 27 4 0 1 0
+10 27 5 0 1 0
+10 27 6 0 1 0
+10 27 7 0 1 0
+10 27 8 0 1 0
+10 27 9 0 1 0
+10 27 10 0 1 0
+10 27 11 0 1 0
+10 27 12 0 1 0
+10 27 13 0 1 0
+10 27 14 0 1 0
+10 27 15 0 1 0.200562
+10 27 16 0 1 0.326416
+10 27 17 0 1 0.427979
+10 27 18 0 1 0.521484
+10 27 19 0 1 0.609863
+10 27 20 0 1 0.690918
+10 27 21 0 1 0.765625
+10 27 22 0 1 0.833496
+10 27 23 0 1 0.891113
+10 27 24 0 1 0.939941
+10 27 25 0 1 0.98584
+10 27 26 0 1 1
+10 27 27 0 1 1
+10 27 28 0 0.96875 1
+10 27 29 0 0.925781 1
+10 27 30 0 0.879883 1
+10 27 31 0 0.833496 1
+10 28 0 0 1 0
+10 28 1 0 1 0
+10 28 2 0 1 0
+10 28 3 0 1 0
+10 28 4 0 1 0
+10 28 5 0 1 0
+10 28 6 0 1 0
+10 28 7 0 1 0
+10 28 8 0 1 0
+10 28 9 0 1 0
+10 28 10 0 1 0
+10 28 11 0 1 0
+10 28 12 0 1 0
+10 28 13 0 1 0
+10 28 14 0 1 0
+10 28 15 0 1 0.130493
+10 28 16 0 1 0.287354
+10 28 17 0 1 0.391846
+10 28 18 0 1 0.485107
+10 28 19 0 1 0.571777
+10 28 20 0 1 0.651367
+10 28 21 0 1 0.726074
+10 28 22 0 1 0.793945
+10 28 23 0 1 0.853027
+10 28 24 0 1 0.904785
+10 28 25 0 1 0.953125
+10 28 26 0 1 0.997559
+10 28 27 0 1 1
+10 28 28 0 1 1
+10 28 29 0 0.974609 1
+10 28 30 0 0.930664 1
+10 28 31 0 0.884277 1
+10 29 0 0 1 0
+10 29 1 0 1 0
+10 29 2 0 1 0
+10 29 3 0 1 0
+10 29 4 0 1 0
+10 29 5 0 1 0
+10 29 6 0 1 0
+10 29 7 0 1 0
+10 29 8 0 1 0
+10 29 9 0 1 0
+10 29 10 0 1 0
+10 29 11 0 1 0
+10 29 12 0 1 0
+10 29 13 0 1 0
+10 29 14 0 1 0
+10 29 15 0 1 0
+10 29 16 0 1 0.242432
+10 29 17 0 1 0.353516
+10 29 18 0 1 0.446777
+10 29 19 0 1 0.531738
+10 29 20 0 1 0.610352
+10 29 21 0 1 0.683594
+10 29 22 0 1 0.751465
+10 29 23 0 1 0.811035
+10 29 24 0 1 0.86377
+10 29 25 0 1 0.914551
+10 29 26 0 1 0.962402
+10 29 27 0 1 1
+10 29 28 0 1 1
+10 29 29 0 1 1
+10 29 30 0 0.979492 1
+10 29 31 0 0.935059 1
+10 30 0 0 1 0
+10 30 1 0 1 0
+10 30 2 0 1 0
+10 30 3 0 1 0
+10 30 4 0 1 0
+10 30 5 0 1 0
+10 30 6 0 1 0
+10 30 7 0 1 0
+10 30 8 0 1 0
+10 30 9 0 1 0
+10 30 10 0 1 0
+10 30 11 0 1 0
+10 30 12 0 1 0
+10 30 13 0 1 0
+10 30 14 0 1 0
+10 30 15 0 1 0
+10 30 16 0 1 0.186646
+10 30 17 0 1 0.312256
+10 30 18 0 1 0.406738
+10 30 19 0 1 0.490723
+10 30 20 0 1 0.567383
+10 30 21 0 1 0.63916
+10 30 22 0 1 0.706055
+10 30 23 0 1 0.765625
+10 30 24 0 1 0.818848
+10 30 25 0 1 0.871094
+10 30 26 0 1 0.921387
+10 30 27 0 1 0.96875
+10 30 28 0 1 1
+10 30 29 0 1 1
+10 30 30 0 1 1
+10 30 31 0 0.98291 1
+10 31 0 0 1 0
+10 31 1 0 1 0
+10 31 2 0 1 0
+10 31 3 0 1 0
+10 31 4 0 1 0
+10 31 5 0 1 0
+10 31 6 0 1 0
+10 31 7 0 1 0
+10 31 8 0 1 0
+10 31 9 0 1 0
+10 31 10 0 1 0
+10 31 11 0 1 0
+10 31 12 0 1 0
+10 31 13 0 1 0
+10 31 14 0 1 0
+10 31 15 0 1 0
+10 31 16 0 1 0.090332
+10 31 17 0 1 0.26709
+10 31 18 0 1 0.365479
+10 31 19 0 1 0.44873
+10 31 20 0 1 0.523438
+10 31 21 0 1 0.593262
+10 31 22 0 1 0.658203
+10 31 23 0 1 0.717285
+10 31 24 0 1 0.770508
+10 31 25 0 1 0.823242
+10 31 26 0 1 0.875488
+10 31 27 0 1 0.92627
+10 31 28 0 1 0.973633
+10 31 29 0 1 1
+10 31 30 0 1 1
+10 31 31 0 1 1
+11 0 0 0.380127 0 0.0231628
+11 0 1 0.380127 0 0.0231323
+11 0 2 0.380127 0 0.0230865
+11 0 3 0.380127 0 0.022995
+11 0 4 0.379883 0 0.0228119
+11 0 5 0.379883 0 0.0224762
+11 0 6 0.380127 0 0.0220032
+11 0 7 0.380127 0 0.0520935
+11 0 8 0.375 0 0.126465
+11 0 9 0.36084 0 0.180786
+11 0 10 0.30542 0.0544739 0.208374
+11 0 11 0.274658 0.0872192 0.242798
+11 0 12 0.262939 0.09729 0.304199
+11 0 13 0.237305 0.110474 0.375244
+11 0 14 0.180054 0.126465 0.453857
+11 0 15 0 0.144531 0.537598
+11 0 16 0 0.164062 0.624512
+11 0 17 0 0.18335 0.708008
+11 0 18 0 0.201416 0.784668
+11 0 19 0 0.217529 0.852539
+11 0 20 0 0.227051 0.892578
+11 0 21 0 0.228149 0.899414
+11 0 22 0 0.229614 0.906738
+11 0 23 0 0.231201 0.914551
+11 0 24 0 0.23291 0.921875
+11 0 25 0 0.234863 0.930664
+11 0 26 0 0.237061 0.939941
+11 0 27 0 0.239502 0.950195
+11 0 28 0 0.242432 0.962402
+11 0 29 0 0.245483 0.974609
+11 0 30 0 0.248657 0.987793
+11 0 31 0 0.251953 1
+11 1 0 0.379883 0 0.0228119
+11 1 1 0.379883 0 0.0227814
+11 1 2 0.379883 0 0.0227356
+11 1 3 0.379883 0 0.022644
+11 1 4 0.379883 0 0.0224609
+11 1 5 0.379883 0 0.02211
+11 1 6 0.379883 0 0.0216217
+11 1 7 0.380127 0 0.0519714
+11 1 8 0.375 0 0.126465
+11 1 9 0.36084 0 0.180664
+11 1 10 0.30542 0.0552979 0.208496
+11 1 11 0.274658 0.0875244 0.242676
+11 1 12 0.262939 0.0975952 0.304199
+11 1 13 0.237305 0.110718 0.375244
+11 1 14 0.180054 0.126587 0.453857
+11 1 15 0 0.144653 0.537598
+11 1 16 0 0.164185 0.624512
+11 1 17 0 0.183472 0.708008
+11 1 18 0 0.201538 0.784668
+11 1 19 0 0.217529 0.852539
+11 1 20 0 0.227051 0.892578
+11 1 21 0 0.228149 0.899414
+11 1 22 0 0.229614 0.906738
+11 1 23 0 0.231201 0.914551
+11 1 24 0 0.23291 0.921875
+11 1 25 0 0.234863 0.930664
+11 1 26 0 0.237061 0.939941
+11 1 27 0 0.239502 0.950195
+11 1 28 0 0.242432 0.962402
+11 1 29 0 0.245483 0.974609
+11 1 30 0 0.248657 0.987793
+11 1 31 0 0.251953 1
+11 2 0 0.379639 0 0.022171
+11 2 1 0.379639 0 0.0221405
+11 2 2 0.379639 0 0.0220795
+11 2 3 0.379639 0 0.0219879
+11 2 4 0.379639 0 0.0217896
+11 2 5 0.379639 0 0.0214233
+11 2 6 0.379883 0 0.0209198
+11 2 7 0.379883 0 0.0516968
+11 2 8 0.374756 0 0.126343
+11 2 9 0.36084 0 0.180664
+11 2 10 0.30542 0.0566711 0.208496
+11 2 11 0.274658 0.0881348 0.242676
+11 2 12 0.262695 0.0980835 0.304199
+11 2 13 0.237305 0.111145 0.375244
+11 2 14 0.179932 0.126953 0.453857
+11 2 15 0 0.144897 0.537598
+11 2 16 0 0.164429 0.624512
+11 2 17 0 0.183594 0.708008
+11 2 18 0 0.20166 0.784668
+11 2 19 0 0.217651 0.852539
+11 2 20 0 0.227173 0.892578
+11 2 21 0 0.228271 0.899414
+11 2 22 0 0.229614 0.906738
+11 2 23 0 0.231201 0.914551
+11 2 24 0 0.23291 0.921875
+11 2 25 0 0.234863 0.930664
+11 2 26 0 0.237061 0.939941
+11 2 27 0 0.239502 0.950195
+11 2 28 0 0.242432 0.962402
+11 2 29 0 0.245483 0.974609
+11 2 30 0 0.248779 0.987793
+11 2 31 0 0.252197 1
+11 3 0 0.379395 0 0.0209045
+11 3 1 0.379395 0 0.020874
+11 3 2 0.379395 0 0.020813
+11 3 3 0.379395 0 0.0207062
+11 3 4 0.379395 0 0.0204926
+11 3 5 0.379395 0 0.0200806
+11 3 6 0.379395 0 0.019516
+11 3 7 0.379639 0 0.051239
+11 3 8 0.374756 0 0.126221
+11 3 9 0.36084 0 0.180664
+11 3 10 0.305664 0.059082 0.208618
+11 3 11 0.274658 0.0891724 0.242676
+11 3 12 0.262695 0.098938 0.304199
+11 3 13 0.237183 0.111877 0.375244
+11 3 14 0.17981 0.127563 0.453857
+11 3 15 0 0.145386 0.537598
+11 3 16 0 0.164795 0.624512
+11 3 17 0 0.18396 0.708008
+11 3 18 0 0.201904 0.784668
+11 3 19 0 0.217896 0.852539
+11 3 20 0 0.227295 0.892578
+11 3 21 0 0.228394 0.899414
+11 3 22 0 0.229736 0.906738
+11 3 23 0 0.231323 0.914551
+11 3 24 0 0.233032 0.921875
+11 3 25 0 0.234863 0.930664
+11 3 26 0 0.237061 0.939941
+11 3 27 0 0.239624 0.950195
+11 3 28 0 0.242432 0.962402
+11 3 29 0 0.245483 0.974609
+11 3 30 0 0.248779 0.987793
+11 3 31 0 0.252197 1
+11 4 0 0.378662 0 0.0181122
+11 4 1 0.378662 0 0.0180664
+11 4 2 0.378662 0 0.0179901
+11 4 3 0.378662 0 0.0178528
+11 4 4 0.378662 0 0.0175934
+11 4 5 0.378662 0 0.0170746
+11 4 6 0.378662 0 0.0163422
+11 4 7 0.37915 0 0.0503845
+11 4 8 0.374512 0 0.125854
+11 4 9 0.36084 0 0.180542
+11 4 10 0.305664 0.0632935 0.20874
+11 4 11 0.274414 0.0910645 0.242676
+11 4 12 0.262451 0.100647 0.304199
+11 4 13 0.236938 0.113281 0.375244
+11 4 14 0.179565 0.128662 0.453857
+11 4 15 0 0.14624 0.537598
+11 4 16 0 0.165405 0.624512
+11 4 17 0 0.184448 0.708008
+11 4 18 0 0.202271 0.784668
+11 4 19 0 0.21814 0.852539
+11 4 20 0 0.227539 0.892578
+11 4 21 0 0.228516 0.899414
+11 4 22 0 0.229858 0.906738
+11 4 23 0 0.231445 0.914551
+11 4 24 0 0.233154 0.921875
+11 4 25 0 0.234985 0.930664
+11 4 26 0 0.237183 0.939941
+11 4 27 0 0.239624 0.950195
+11 4 28 0 0.242554 0.962402
+11 4 29 0 0.245605 0.974609
+11 4 30 0 0.248779 0.988281
+11 4 31 0 0.252197 1
+11 5 0 0.377441 0 0.00840759
+11 5 1 0.377441 0 0.00827026
+11 5 2 0.377197 0 0.00801086
+11 5 3 0.377197 0 0.00749588
+11 5 4 0.377197 0 0.00632858
+11 5 5 0.377197 0.00693512 0
+11 5 6 0.377441 0.0230865 0
+11 5 7 0.37793 0.0254364 0.0487061
+11 5 8 0.373779 0 0.125244
+11 5 9 0.360596 0 0.180298
+11 5 10 0.306152 0.0704346 0.208984
+11 5 11 0.27417 0.0946045 0.242676
+11 5 12 0.262207 0.103699 0.304199
+11 5 13 0.236694 0.115845 0.375
+11 5 14 0.178955 0.130737 0.453857
+11 5 15 0 0.147949 0.537598
+11 5 16 0 0.166748 0.624512
+11 5 17 0 0.185425 0.708008
+11 5 18 0 0.203125 0.784668
+11 5 19 0 0.218872 0.852539
+11 5 20 0 0.228027 0.893066
+11 5 21 0 0.229004 0.899414
+11 5 22 0 0.230225 0.906738
+11 5 23 0 0.231689 0.914551
+11 5 24 0 0.233398 0.921875
+11 5 25 0 0.235229 0.930664
+11 5 26 0 0.237427 0.939941
+11 5 27 0 0.239868 0.950195
+11 5 28 0 0.242676 0.962402
+11 5 29 0 0.245728 0.974609
+11 5 30 0 0.248901 0.988281
+11 5 31 0 0.252197 1
+11 6 0 0.374512 0.0657349 0
+11 6 1 0.374512 0.0658569 0
+11 6 2 0.374512 0.065979 0
+11 6 3 0.374512 0.0663452 0
+11 6 4 0.374512 0.0668945 0
+11 6 5 0.374512 0.0679932 0
+11 6 6 0.374756 0.069519 0
+11 6 7 0.375488 0.0698853 0.0456848
+11 6 8 0.372559 0.0631714 0.124146
+11 6 9 0.360352 0.054718 0.179932
+11 6 10 0.306641 0.081665 0.209595
+11 6 11 0.273682 0.100769 0.242554
+11 6 12 0.261719 0.109253 0.303955
+11 6 13 0.235962 0.120605 0.375
+11 6 14 0.177979 0.134644 0.453857
+11 6 15 0 0.151001 0.537598
+11 6 16 0 0.169189 0.624512
+11 6 17 0 0.187378 0.708008
+11 6 18 0 0.20459 0.784668
+11 6 19 0 0.220093 0.852539
+11 6 20 0 0.229126 0.893066
+11 6 21 0 0.229736 0.899414
+11 6 22 0 0.230957 0.906738
+11 6 23 0 0.2323 0.914551
+11 6 24 0 0.233765 0.921875
+11 6 25 0 0.235596 0.930664
+11 6 26 0 0.237671 0.939941
+11 6 27 0 0.240112 0.950195
+11 6 28 0 0.24292 0.962402
+11 6 29 0 0.245972 0.975098
+11 6 30 0 0.249146 0.988281
+11 6 31 0 0.252441 1
+11 7 0 0.368896 0.100708 0
+11 7 1 0.368896 0.100769 0
+11 7 2 0.368896 0.10083 0
+11 7 3 0.368896 0.101013 0
+11 7 4 0.368896 0.101257 0
+11 7 5 0.368896 0.101807 0
+11 7 6 0.369141 0.102661 0
+11 7 7 0.370361 0.102966 0.0405579
+11 7 8 0.369141 0.0993042 0.121887
+11 7 9 0.358887 0.0933228 0.178833
+11 7 10 0.308105 0.098877 0.210938
+11 7 11 0.272461 0.111328 0.242432
+11 7 12 0.260498 0.118835 0.303955
+11 7 13 0.234619 0.129028 0.375
+11 7 14 0.175903 0.141724 0.453857
+11 7 15 0 0.15686 0.537598
+11 7 16 0 0.173828 0.624512
+11 7 17 0 0.19104 0.708008
+11 7 18 0 0.20752 0.785156
+11 7 19 0 0.222412 0.852539
+11 7 20 0 0.230957 0.893066
+11 7 21 0 0.231323 0.899902
+11 7 22 0 0.232178 0.907227
+11 7 23 0 0.233276 0.914551
+11 7 24 0 0.234741 0.921875
+11 7 25 0 0.23645 0.930664
+11 7 26 0 0.238403 0.939941
+11 7 27 0 0.240723 0.950195
+11 7 28 0 0.243408 0.962402
+11 7 29 0 0.246338 0.975098
+11 7 30 0 0.24939 0.988281
+11 7 31 0 0.252686 1
+11 8 0 0.356689 0.135742 0
+11 8 1 0.356689 0.135742 0
+11 8 2 0.356689 0.135864 0
+11 8 3 0.356689 0.135986 0
+11 8 4 0.356689 0.136108 0
+11 8 5 0.356689 0.136353 0
+11 8 6 0.356689 0.136963 0
+11 8 7 0.358887 0.137451 0.0365906
+11 8 8 0.359863 0.136108 0.117798
+11 8 9 0.353271 0.131714 0.175659
+11 8 10 0.311279 0.124817 0.213501
+11 8 11 0.270508 0.128296 0.242188
+11 8 12 0.258301 0.134766 0.303711
+11 8 13 0.231934 0.143311 0.375
+11 8 14 0.171753 0.154175 0.453613
+11 8 15 0 0.167236 0.537598
+11 8 16 0 0.182373 0.624512
+11 8 17 0 0.197876 0.708008
+11 8 18 0 0.213013 0.785156
+11 8 19 0 0.226929 0.852539
+11 8 20 0 0.234741 0.893066
+11 8 21 0 0.234253 0.899902
+11 8 22 0 0.234619 0.907227
+11 8 23 0 0.235352 0.914551
+11 8 24 0 0.23645 0.922363
+11 8 25 0 0.237915 0.930664
+11 8 26 0 0.239624 0.939941
+11 8 27 0 0.241821 0.950684
+11 8 28 0 0.244385 0.962402
+11 8 29 0 0.247192 0.975098
+11 8 30 0 0.250244 0.988281
+11 8 31 0 0.253418 1
+11 9 0 0.33252 0.169678 0
+11 9 1 0.33252 0.169678 0
+11 9 2 0.33252 0.169678 0
+11 9 3 0.33252 0.1698 0
+11 9 4 0.33252 0.1698 0
+11 9 5 0.332275 0.170044 0
+11 9 6 0.332275 0.170288 0
+11 9 7 0.33374 0.171021 0.0518188
+11 9 8 0.336426 0.171875 0.112793
+11 9 9 0.340332 0.172729 0.169189
+11 9 10 0.317383 0.163574 0.218384
+11 9 11 0.266602 0.153442 0.241821
+11 9 12 0.253906 0.158813 0.303467
+11 9 13 0.226807 0.165771 0.374756
+11 9 14 0.163208 0.174438 0.453613
+11 9 15 0 0.184814 0.537598
+11 9 16 0 0.197021 0.624512
+11 9 17 0 0.210083 0.708496
+11 9 18 0 0.223022 0.785156
+11 9 19 0 0.235107 0.852539
+11 9 20 0 0.241577 0.893555
+11 9 21 0 0.239746 0.900391
+11 9 22 0 0.239136 0.907715
+11 9 23 0 0.239136 0.915039
+11 9 24 0 0.239746 0.922363
+11 9 25 0 0.240723 0.930664
+11 9 26 0 0.242065 0.94043
+11 9 27 0 0.243896 0.950684
+11 9 28 0 0.246094 0.962402
+11 9 29 0 0.248657 0.975098
+11 9 30 0 0.251465 0.988281
+11 9 31 0 0.254395 1
+11 10 0 0.300049 0.198975 0.0585938
+11 10 1 0.300049 0.198975 0.0585938
+11 10 2 0.300049 0.198975 0.0586243
+11 10 3 0.300049 0.198975 0.0586548
+11 10 4 0.300049 0.199097 0.0587158
+11 10 5 0.300049 0.199219 0.0588379
+11 10 6 0.300049 0.199341 0.0590515
+11 10 7 0.299316 0.199341 0.081543
+11 10 8 0.298096 0.199463 0.115479
+11 10 9 0.297852 0.20105 0.15625
+11 10 10 0.306152 0.208496 0.213501
+11 10 11 0.259521 0.187378 0.241211
+11 10 12 0.24585 0.191772 0.302734
+11 10 13 0.216797 0.197266 0.374268
+11 10 14 0.14563 0.203735 0.453369
+11 10 15 0 0.211182 0.537598
+11 10 16 0 0.220093 0.624512
+11 10 17 0 0.229736 0.708496
+11 10 18 0 0.239624 0.785156
+11 10 19 0 0.249023 0.853027
+11 10 20 0 0.253174 0.894531
+11 10 21 0 0.249268 0.900879
+11 10 22 0 0.24707 0.908203
+11 10 23 0 0.24585 0.915527
+11 10 24 0 0.245605 0.922852
+11 10 25 0 0.245728 0.931152
+11 10 26 0 0.24646 0.94043
+11 10 27 0 0.247681 0.951172
+11 10 28 0 0.24939 0.962891
+11 10 29 0 0.251465 0.975586
+11 10 30 0 0.253906 0.988281
+11 10 31 0 0.256592 1
+11 11 0 0.289795 0.249023 0.0814209
+11 11 1 0.289795 0.249023 0.0814209
+11 11 2 0.289795 0.249023 0.0814209
+11 11 3 0.289795 0.249023 0.0814209
+11 11 4 0.289795 0.249146 0.0814209
+11 11 5 0.290039 0.249146 0.0814209
+11 11 6 0.290039 0.249268 0.0814819
+11 11 7 0.289307 0.249268 0.0897827
+11 11 8 0.285889 0.247681 0.121155
+11 11 9 0.279053 0.244751 0.157715
+11 11 10 0.26709 0.239624 0.198242
+11 11 11 0.24646 0.230713 0.240356
+11 11 12 0.230591 0.234253 0.302002
+11 11 13 0.197266 0.238525 0.373535
+11 11 14 0.101746 0.243042 0.452881
+11 11 15 0 0.247681 0.537598
+11 11 16 0 0.253174 0.625
+11 11 17 0 0.259033 0.708984
+11 11 18 0 0.264893 0.785645
+11 11 19 0 0.270996 0.853516
+11 11 20 0 0.271973 0.895996
+11 11 21 0 0.264893 0.902344
+11 11 22 0 0.26001 0.90918
+11 11 23 0 0.25708 0.916504
+11 11 24 0 0.255371 0.923828
+11 11 25 0 0.25415 0.932129
+11 11 26 0 0.253662 0.941406
+11 11 27 0 0.253906 0.95166
+11 11 28 0 0.254883 0.963379
+11 11 29 0 0.256348 0.976074
+11 11 30 0 0.258057 0.98877
+11 11 31 0 0.26001 1
+11 12 0 0.25415 0.296631 0.0775757
+11 12 1 0.25415 0.296631 0.0775757
+11 12 2 0.25415 0.296631 0.0775757
+11 12 3 0.25415 0.296631 0.0775757
+11 12 4 0.25415 0.296875 0.0776367
+11 12 5 0.25415 0.296875 0.0776367
+11 12 6 0.254395 0.296875 0.0776367
+11 12 7 0.254395 0.297119 0.0776978
+11 12 8 0.251709 0.295898 0.107727
+11 12 9 0.245483 0.292725 0.147095
+11 12 10 0.234985 0.287842 0.189575
+11 12 11 0.220581 0.284668 0.238892
+11 12 12 0.199951 0.287109 0.300781
+11 12 13 0.154053 0.290283 0.372314
+11 12 14 0 0.293213 0.452148
+11 12 15 0 0.29541 0.537109
+11 12 16 0 0.297607 0.625
+11 12 17 0 0.299316 0.709473
+11 12 18 0 0.301025 0.786621
+11 12 19 0 0.302979 0.854004
+11 12 20 0 0.300293 0.898438
+11 12 21 0 0.288574 0.904297
+11 12 22 0 0.280273 0.911133
+11 12 23 0 0.274658 0.917969
+11 12 24 0 0.270752 0.925293
+11 12 25 0 0.267822 0.933594
+11 12 26 0 0.265625 0.942383
+11 12 27 0 0.264404 0.952637
+11 12 28 0 0.263916 0.964355
+11 12 29 0 0.26416 0.976562
+11 12 30 0 0.264893 0.989746
+11 12 31 0 0.266113 1
+11 13 0 0.193481 0.351074 0.0734253
+11 13 1 0.193481 0.351074 0.0734253
+11 13 2 0.193481 0.351074 0.0734253
+11 13 3 0.193481 0.351074 0.0734253
+11 13 4 0.193481 0.351074 0.0734253
+11 13 5 0.193481 0.351074 0.0734253
+11 13 6 0.193604 0.351318 0.0734863
+11 13 7 0.193726 0.351318 0.0734863
+11 13 8 0.193237 0.351318 0.0856323
+11 13 9 0.187866 0.350586 0.133667
+11 13 10 0.177979 0.349365 0.181885
+11 13 11 0.159546 0.349121 0.235718
+11 13 12 0.11792 0.350342 0.29834
+11 13 13 0 0.352295 0.370117
+11 13 14 0 0.35376 0.450195
+11 13 15 0 0.354248 0.536133
+11 13 16 0 0.353516 0.624512
+11 13 17 0 0.351562 0.709473
+11 13 18 0 0.348877 0.787109
+11 13 19 0 0.346191 0.85498
+11 13 20 0 0.339844 0.902344
+11 13 21 0 0.32251 0.907715
+11 13 22 0 0.309814 0.914062
+11 13 23 0 0.300537 0.920898
+11 13 24 0 0.293701 0.927734
+11 13 25 0 0.288086 0.935547
+11 13 26 0 0.283691 0.944336
+11 13 27 0 0.280273 0.95459
+11 13 28 0 0.277832 0.96582
+11 13 29 0 0.276367 0.978027
+11 13 30 0 0.275635 0.990723
+11 13 31 0 0.275391 1
+11 14 0 0 0.421875 0.0701904
+11 14 1 0 0.421875 0.0701904
+11 14 2 0 0.421875 0.0701904
+11 14 3 0 0.421875 0.0701904
+11 14 4 0 0.421875 0.0701904
+11 14 5 0 0.421875 0.0701904
+11 14 6 0 0.421875 0.0702515
+11 14 7 0 0.422119 0.0702515
+11 14 8 0 0.422363 0.0703735
+11 14 9 0 0.422363 0.113464
+11 14 10 0 0.422363 0.170532
+11 14 11 0 0.422607 0.228638
+11 14 12 0 0.42334 0.293457
+11 14 13 0 0.424316 0.365967
+11 14 14 0 0.424561 0.446777
+11 14 15 0 0.423584 0.533691
+11 14 16 0 0.420654 0.623535
+11 14 17 0 0.415283 0.709473
+11 14 18 0 0.408691 0.788086
+11 14 19 0 0.401611 0.856445
+11 14 20 0 0.391846 0.907227
+11 14 21 0 0.36792 0.913086
+11 14 22 0 0.349609 0.918945
+11 14 23 0 0.336182 0.925293
+11 14 24 0 0.325684 0.931641
+11 14 25 0 0.316895 0.939453
+11 14 26 0 0.309326 0.947754
+11 14 27 0 0.303223 0.957031
+11 14 28 0 0.29834 0.968262
+11 14 29 0 0.294434 0.97998
+11 14 30 0 0.291504 0.992676
+11 14 31 0 0.289551 1
+11 15 0 0 0.500488 0.0653076
+11 15 1 0 0.500488 0.0653076
+11 15 2 0 0.500488 0.0653076
+11 15 3 0 0.500488 0.0653076
+11 15 4 0 0.500488 0.0653076
+11 15 5 0 0.500488 0.0653076
+11 15 6 0 0.500977 0.0653076
+11 15 7 0 0.500977 0.0653687
+11 15 8 0 0.500977 0.0654907
+11 15 9 0 0.500977 0.0656128
+11 15 10 0 0.501465 0.14978
+11 15 11 0 0.501953 0.215454
+11 15 12 0 0.50293 0.283691
+11 15 13 0 0.503906 0.358398
+11 15 14 0 0.503906 0.440674
+11 15 15 0 0.501953 0.528809
+11 15 16 0 0.497803 0.620117
+11 15 17 0 0.489746 0.708008
+11 15 18 0 0.479492 0.788086
+11 15 19 0 0.468262 0.857422
+11 15 20 0 0.456055 0.913574
+11 15 21 0 0.425293 0.92041
+11 15 22 0 0.401123 0.92627
+11 15 23 0 0.382568 0.932129
+11 15 24 0 0.36792 0.938477
+11 15 25 0 0.35498 0.945312
+11 15 26 0 0.34375 0.953125
+11 15 27 0 0.334229 0.961914
+11 15 28 0 0.326172 0.972656
+11 15 29 0 0.31958 0.983887
+11 15 30 0 0.313965 0.995605
+11 15 31 0 0.309326 1
+11 16 0 0 0.583984 0.0572205
+11 16 1 0 0.583984 0.0572205
+11 16 2 0 0.583984 0.0572205
+11 16 3 0 0.583984 0.0572205
+11 16 4 0 0.583984 0.0572205
+11 16 5 0 0.583984 0.057251
+11 16 6 0 0.583984 0.0572815
+11 16 7 0 0.583984 0.0573425
+11 16 8 0 0.583984 0.0574341
+11 16 9 0 0.584473 0.0576172
+11 16 10 0 0.584961 0.108887
+11 16 11 0 0.585449 0.193604
+11 16 12 0 0.586914 0.268066
+11 16 13 0 0.587891 0.345703
+11 16 14 0 0.588379 0.429932
+11 16 15 0 0.586914 0.52002
+11 16 16 0 0.582031 0.61377
+11 16 17 0 0.573242 0.704102
+11 16 18 0 0.560059 0.786133
+11 16 19 0 0.54541 0.857422
+11 16 20 0 0.529297 0.916016
+11 16 21 0 0.494873 0.929688
+11 16 22 0 0.4646 0.937012
+11 16 23 0 0.44043 0.942871
+11 16 24 0 0.421143 0.948242
+11 16 25 0 0.403564 0.95459
+11 16 26 0 0.388184 0.961426
+11 16 27 0 0.374512 0.969238
+11 16 28 0 0.362549 0.979004
+11 16 29 0 0.352295 0.989258
+11 16 30 0 0.343506 1
+11 16 31 0 0.335693 1
+11 17 0 0 0.666504 0.0432434
+11 17 1 0 0.666504 0.0432434
+11 17 2 0 0.666504 0.0432434
+11 17 3 0 0.666504 0.0432434
+11 17 4 0 0.666504 0.0432739
+11 17 5 0 0.666504 0.0433044
+11 17 6 0 0.666504 0.043335
+11 17 7 0 0.666504 0.043396
+11 17 8 0 0.666504 0.0435486
+11 17 9 0 0.666504 0.0438538
+11 17 10 0 0.666992 0.0443726
+11 17 11 0 0.667969 0.158081
+11 17 12 0 0.669434 0.245117
+11 17 13 0 0.670898 0.327393
+11 17 14 0 0.672363 0.414062
+11 17 15 0 0.671875 0.505859
+11 17 16 0 0.667969 0.601562
+11 17 17 0 0.65918 0.694824
+11 17 18 0 0.645508 0.780273
+11 17 19 0 0.628418 0.854492
+11 17 20 0 0.609375 0.915527
+11 17 21 0 0.57373 0.939941
+11 17 22 0 0.538086 0.950195
+11 17 23 0 0.508789 0.957031
+11 17 24 0 0.484375 0.962402
+11 17 25 0 0.461914 0.968262
+11 17 26 0 0.441406 0.974121
+11 17 27 0 0.423096 0.980469
+11 17 28 0 0.406982 0.98877
+11 17 29 0 0.392578 0.998047
+11 17 30 0 0.379883 1
+11 17 31 0 0.368652 1
+11 18 0 0 0.743164 0
+11 18 1 0 0.743164 0
+11 18 2 0 0.743164 0
+11 18 3 0 0.743164 0
+11 18 4 0 0.743164 0
+11 18 5 0 0.743164 0
+11 18 6 0 0.743164 0
+11 18 7 0 0.743164 0
+11 18 8 0 0.743164 0
+11 18 9 0 0.743164 0
+11 18 10 0 0.743652 0
+11 18 11 0 0.744141 0.0863037
+11 18 12 0 0.745605 0.213135
+11 18 13 0 0.748047 0.302979
+11 18 14 0 0.750488 0.392578
+11 18 15 0 0.751465 0.486328
+11 18 16 0 0.749512 0.583984
+11 18 17 0 0.742676 0.680664
+11 18 18 0 0.72998 0.77002
+11 18 19 0 0.712402 0.847656
+11 18 20 0 0.691406 0.911621
+11 18 21 0 0.657227 0.947266
+11 18 22 0 0.619141 0.964844
+11 18 23 0 0.585449 0.974609
+11 18 24 0 0.556152 0.980957
+11 18 25 0 0.52832 0.98584
+11 18 26 0 0.50293 0.990723
+11 18 27 0 0.479248 0.996094
+11 18 28 0 0.458008 1
+11 18 29 0 0.439209 1
+11 18 30 0 0.422119 1
+11 18 31 0 0.406982 1
+11 19 0 0 0.812012 0
+11 19 1 0 0.812012 0
+11 19 2 0 0.812012 0
+11 19 3 0 0.812012 0
+11 19 4 0 0.812012 0
+11 19 5 0 0.812012 0
+11 19 6 0 0.812012 0
+11 19 7 0 0.812012 0
+11 19 8 0 0.812012 0
+11 19 9 0 0.812012 0
+11 19 10 0 0.812012 0
+11 19 11 0 0.8125 0
+11 19 12 0 0.813965 0.168335
+11 19 13 0 0.816406 0.273438
+11 19 14 0 0.819336 0.367432
+11 19 15 0 0.822266 0.462891
+11 19 16 0 0.822266 0.562012
+11 19 17 0 0.818359 0.660645
+11 19 18 0 0.808105 0.753418
+11 19 19 0 0.791992 0.834961
+11 19 20 0 0.770996 0.902832
+11 19 21 0 0.739746 0.949707
+11 19 22 0 0.702637 0.977051
+11 19 23 0 0.666016 0.992188
+11 19 24 0 0.632812 1
+11 19 25 0 0.600586 1
+11 19 26 0 0.569824 1
+11 19 27 0 0.541016 1
+11 19 28 0 0.514648 1
+11 19 29 0 0.490479 1
+11 19 30 0 0.46875 1
+11 19 31 0 0.449219 1
+11 20 0 0 0.871582 0
+11 20 1 0 0.871582 0
+11 20 2 0 0.871582 0
+11 20 3 0 0.871582 0
+11 20 4 0 0.871582 0
+11 20 5 0 0.871582 0
+11 20 6 0 0.871582 0
+11 20 7 0 0.871582 0
+11 20 8 0 0.871582 0
+11 20 9 0 0.871582 0
+11 20 10 0 0.871582 0
+11 20 11 0 0.871582 0
+11 20 12 0 0.872559 0.0866699
+11 20 13 0 0.875 0.23877
+11 20 14 0 0.878906 0.3396
+11 20 15 0 0.882324 0.437012
+11 20 16 0 0.884766 0.537109
+11 20 17 0 0.883301 0.637207
+11 20 18 0 0.876465 0.732422
+11 20 19 0 0.862305 0.817383
+11 20 20 0 0.842773 0.888672
+11 20 21 0 0.816406 0.945312
+11 20 22 0 0.782227 0.983398
+11 20 23 0 0.746094 1
+11 20 24 0 0.710449 1
+11 20 25 0 0.674805 1
+11 20 26 0 0.63916 1
+11 20 27 0 0.605469 1
+11 20 28 0 0.57373 1
+11 20 29 0 0.544434 1
+11 20 30 0 0.518066 1
+11 20 31 0 0.494141 1
+11 21 0 0 0.921875 0
+11 21 1 0 0.921875 0
+11 21 2 0 0.921875 0
+11 21 3 0 0.921875 0
+11 21 4 0 0.921875 0
+11 21 5 0 0.921875 0
+11 21 6 0 0.921875 0
+11 21 7 0 0.921875 0
+11 21 8 0 0.921875 0
+11 21 9 0 0.921875 0
+11 21 10 0 0.921875 0
+11 21 11 0 0.922363 0
+11 21 12 0 0.922363 0
+11 21 13 0 0.924805 0.195435
+11 21 14 0 0.928711 0.308594
+11 21 15 0 0.933105 0.408936
+11 21 16 0 0.937012 0.509766
+11 21 17 0 0.938477 0.610352
+11 21 18 0 0.93457 0.707031
+11 21 19 0 0.923828 0.794922
+11 21 20 0 0.906738 0.869629
+11 21 21 0 0.884277 0.932617
+11 21 22 0 0.855469 0.980469
+11 21 23 0 0.821777 1
+11 21 24 0 0.786133 1
+11 21 25 0 0.748535 1
+11 21 26 0 0.709961 1
+11 21 27 0 0.671875 1
+11 21 28 0 0.635742 1
+11 21 29 0 0.601562 1
+11 21 30 0 0.570312 1
+11 21 31 0 0.541504 1
+11 22 0 0 0.963867 0
+11 22 1 0 0.963867 0
+11 22 2 0 0.963867 0
+11 22 3 0 0.963867 0
+11 22 4 0 0.963867 0
+11 22 5 0 0.963867 0
+11 22 6 0 0.963867 0
+11 22 7 0 0.963867 0
+11 22 8 0 0.963867 0
+11 22 9 0 0.963867 0
+11 22 10 0 0.963867 0
+11 22 11 0 0.963867 0
+11 22 12 0 0.964355 0
+11 22 13 0 0.965332 0.133789
+11 22 14 0 0.969727 0.274658
+11 22 15 0 0.974609 0.379395
+11 22 16 0 0.97998 0.480957
+11 22 17 0 0.98291 0.581543
+11 22 18 0 0.981934 0.679199
+11 22 19 0 0.975098 0.768555
+11 22 20 0 0.961426 0.84668
+11 22 21 0 0.941895 0.913086
+11 22 22 0 0.91748 0.967773
+11 22 23 0 0.888184 1
+11 22 24 0 0.855469 1
+11 22 25 0 0.818359 1
+11 22 26 0 0.778809 1
+11 22 27 0 0.737793 1
+11 22 28 0 0.697754 1
+11 22 29 0 0.659668 1
+11 22 30 0 0.623535 1
+11 22 31 0 0.590332 1
+11 23 0 0 0.99707 0
+11 23 1 0 0.99707 0
+11 23 2 0 0.99707 0
+11 23 3 0 0.99707 0
+11 23 4 0 0.99707 0
+11 23 5 0 0.99707 0
+11 23 6 0 0.99707 0
+11 23 7 0 0.99707 0
+11 23 8 0 0.99707 0
+11 23 9 0 0.99707 0
+11 23 10 0 0.997559 0
+11 23 11 0 0.997559 0
+11 23 12 0 0.997559 0
+11 23 13 0 0.998047 0
+11 23 14 0 1 0.238159
+11 23 15 0 1 0.349854
+11 23 16 0 1 0.452637
+11 23 17 0 1 0.553223
+11 23 18 0 1 0.650391
+11 23 19 0 1 0.740723
+11 23 20 0 1 0.820801
+11 23 21 0 0.989258 0.890625
+11 23 22 0 0.967773 0.94873
+11 23 23 0 0.942383 0.994141
+11 23 24 0 0.914062 1
+11 23 25 0 0.879883 1
+11 23 26 0 0.84082 1
+11 23 27 0 0.798828 1
+11 23 28 0 0.756348 1
+11 23 29 0 0.714844 1
+11 23 30 0 0.675293 1
+11 23 31 0 0.637695 1
+11 24 0 0 1 0
+11 24 1 0 1 0
+11 24 2 0 1 0
+11 24 3 0 1 0
+11 24 4 0 1 0
+11 24 5 0 1 0
+11 24 6 0 1 0
+11 24 7 0 1 0
+11 24 8 0 1 0
+11 24 9 0 1 0
+11 24 10 0 1 0
+11 24 11 0 1 0
+11 24 12 0 1 0
+11 24 13 0 1 0
+11 24 14 0 1 0.196899
+11 24 15 0 1 0.320312
+11 24 16 0 1 0.424805
+11 24 17 0 1 0.524902
+11 24 18 0 1 0.621582
+11 24 19 0 1 0.711914
+11 24 20 0 1 0.793457
+11 24 21 0 1 0.865234
+11 24 22 0 1 0.92627
+11 24 23 0 0.987305 0.976074
+11 24 24 0 0.962402 1
+11 24 25 0 0.932129 1
+11 24 26 0 0.895508 1
+11 24 27 0 0.854492 1
+11 24 28 0 0.811035 1
+11 24 29 0 0.76709 1
+11 24 30 0 0.724609 1
+11 24 31 0 0.684082 1
+11 25 0 0 1 0
+11 25 1 0 1 0
+11 25 2 0 1 0
+11 25 3 0 1 0
+11 25 4 0 1 0
+11 25 5 0 1 0
+11 25 6 0 1 0
+11 25 7 0 1 0
+11 25 8 0 1 0
+11 25 9 0 1 0
+11 25 10 0 1 0
+11 25 11 0 1 0
+11 25 12 0 1 0
+11 25 13 0 1 0
+11 25 14 0 1 0.137329
+11 25 15 0 1 0.286865
+11 25 16 0 1 0.394531
+11 25 17 0 1 0.494385
+11 25 18 0 1 0.590332
+11 25 19 0 1 0.680176
+11 25 20 0 1 0.762207
+11 25 21 0 1 0.835938
+11 25 22 0 1 0.899902
+11 25 23 0 1 0.952637
+11 25 24 0 1 0.995605
+11 25 25 0 0.97998 1
+11 25 26 0 0.947266 1
+11 25 27 0 0.908203 1
+11 25 28 0 0.865723 1
+11 25 29 0 0.820801 1
+11 25 30 0 0.775879 1
+11 25 31 0 0.732422 1
+11 26 0 0 1 0
+11 26 1 0 1 0
+11 26 2 0 1 0
+11 26 3 0 1 0
+11 26 4 0 1 0
+11 26 5 0 1 0
+11 26 6 0 1 0
+11 26 7 0 1 0
+11 26 8 0 1 0
+11 26 9 0 1 0
+11 26 10 0 1 0
+11 26 11 0 1 0
+11 26 12 0 1 0
+11 26 13 0 1 0
+11 26 14 0 1 0
+11 26 15 0 1 0.248291
+11 26 16 0 1 0.362061
+11 26 17 0 1 0.462158
+11 26 18 0 1 0.557129
+11 26 19 0 1 0.645996
+11 26 20 0 1 0.728027
+11 26 21 0 1 0.802734
+11 26 22 0 1 0.868652
+11 26 23 0 1 0.924316
+11 26 24 0 1 0.970703
+11 26 25 0 1 1
+11 26 26 0 0.995117 1
+11 26 27 0 0.959473 1
+11 26 28 0 0.918945 1
+11 26 29 0 0.874023 1
+11 26 30 0 0.828613 1
+11 26 31 0 0.782715 1
+11 27 0 0 1 0
+11 27 1 0 1 0
+11 27 2 0 1 0
+11 27 3 0 1 0
+11 27 4 0 1 0
+11 27 5 0 1 0
+11 27 6 0 1 0
+11 27 7 0 1 0
+11 27 8 0 1 0
+11 27 9 0 1 0
+11 27 10 0 1 0
+11 27 11 0 1 0
+11 27 12 0 1 0
+11 27 13 0 1 0
+11 27 14 0 1 0
+11 27 15 0 1 0.200928
+11 27 16 0 1 0.32666
+11 27 17 0 1 0.428223
+11 27 18 0 1 0.521973
+11 27 19 0 1 0.609863
+11 27 20 0 1 0.690918
+11 27 21 0 1 0.766113
+11 27 22 0 1 0.833496
+11 27 23 0 1 0.891113
+11 27 24 0 1 0.94043
+11 27 25 0 1 0.98584
+11 27 26 0 1 1
+11 27 27 0 1 1
+11 27 28 0 0.96875 1
+11 27 29 0 0.925781 1
+11 27 30 0 0.880371 1
+11 27 31 0 0.833496 1
+11 28 0 0 1 0
+11 28 1 0 1 0
+11 28 2 0 1 0
+11 28 3 0 1 0
+11 28 4 0 1 0
+11 28 5 0 1 0
+11 28 6 0 1 0
+11 28 7 0 1 0
+11 28 8 0 1 0
+11 28 9 0 1 0
+11 28 10 0 1 0
+11 28 11 0 1 0
+11 28 12 0 1 0
+11 28 13 0 1 0
+11 28 14 0 1 0
+11 28 15 0 1 0.131104
+11 28 16 0 1 0.287598
+11 28 17 0 1 0.39209
+11 28 18 0 1 0.485352
+11 28 19 0 1 0.571777
+11 28 20 0 1 0.651855
+11 28 21 0 1 0.726074
+11 28 22 0 1 0.794434
+11 28 23 0 1 0.853516
+11 28 24 0 1 0.904785
+11 28 25 0 1 0.953125
+11 28 26 0 1 0.997559
+11 28 27 0 1 1
+11 28 28 0 1 1
+11 28 29 0 0.974609 1
+11 28 30 0 0.930664 1
+11 28 31 0 0.884277 1
+11 29 0 0 1 0
+11 29 1 0 1 0
+11 29 2 0 1 0
+11 29 3 0 1 0
+11 29 4 0 1 0
+11 29 5 0 1 0
+11 29 6 0 1 0
+11 29 7 0 1 0
+11 29 8 0 1 0
+11 29 9 0 1 0
+11 29 10 0 1 0
+11 29 11 0 1 0
+11 29 12 0 1 0
+11 29 13 0 1 0
+11 29 14 0 1 0
+11 29 15 0 1 0
+11 29 16 0 1 0.242676
+11 29 17 0 1 0.35376
+11 29 18 0 1 0.447021
+11 29 19 0 1 0.532227
+11 29 20 0 1 0.610352
+11 29 21 0 1 0.684082
+11 29 22 0 1 0.751465
+11 29 23 0 1 0.811523
+11 29 24 0 1 0.86377
+11 29 25 0 1 0.914551
+11 29 26 0 1 0.962402
+11 29 27 0 1 1
+11 29 28 0 1 1
+11 29 29 0 1 1
+11 29 30 0 0.979492 1
+11 29 31 0 0.935059 1
+11 30 0 0 1 0
+11 30 1 0 1 0
+11 30 2 0 1 0
+11 30 3 0 1 0
+11 30 4 0 1 0
+11 30 5 0 1 0
+11 30 6 0 1 0
+11 30 7 0 1 0
+11 30 8 0 1 0
+11 30 9 0 1 0
+11 30 10 0 1 0
+11 30 11 0 1 0
+11 30 12 0 1 0
+11 30 13 0 1 0
+11 30 14 0 1 0
+11 30 15 0 1 0
+11 30 16 0 1 0.18689
+11 30 17 0 1 0.312256
+11 30 18 0 1 0.406982
+11 30 19 0 1 0.490967
+11 30 20 0 1 0.567383
+11 30 21 0 1 0.63916
+11 30 22 0 1 0.706055
+11 30 23 0 1 0.765625
+11 30 24 0 1 0.818848
+11 30 25 0 1 0.871094
+11 30 26 0 1 0.921387
+11 30 27 0 1 0.96875
+11 30 28 0 1 1
+11 30 29 0 1 1
+11 30 30 0 1 1
+11 30 31 0 0.983398 1
+11 31 0 0 1 0
+11 31 1 0 1 0
+11 31 2 0 1 0
+11 31 3 0 1 0
+11 31 4 0 1 0
+11 31 5 0 1 0
+11 31 6 0 1 0
+11 31 7 0 1 0
+11 31 8 0 1 0
+11 31 9 0 1 0
+11 31 10 0 1 0
+11 31 11 0 1 0
+11 31 12 0 1 0
+11 31 13 0 1 0
+11 31 14 0 1 0
+11 31 15 0 1 0
+11 31 16 0 1 0.0909424
+11 31 17 0 1 0.26709
+11 31 18 0 1 0.365479
+11 31 19 0 1 0.44873
+11 31 20 0 1 0.523438
+11 31 21 0 1 0.593262
+11 31 22 0 1 0.658691
+11 31 23 0 1 0.717285
+11 31 24 0 1 0.770508
+11 31 25 0 1 0.823242
+11 31 26 0 1 0.875977
+11 31 27 0 1 0.92627
+11 31 28 0 1 0.973633
+11 31 29 0 1 1
+11 31 30 0 1 1
+11 31 31 0 1 1
+12 0 0 0.460205 0 0.0282288
+12 0 1 0.460205 0 0.0281982
+12 0 2 0.460205 0 0.0281677
+12 0 3 0.460205 0 0.0281067
+12 0 4 0.460205 0 0.0279846
+12 0 5 0.460205 0 0.0277557
+12 0 6 0.459961 0 0.0273132
+12 0 7 0.462158 0 0.026886
+12 0 8 0.467529 0 0.0827637
+12 0 9 0.467285 0 0.16748
+12 0 10 0.44873 0 0.231689
+12 0 11 0.380859 0.0732422 0.263184
+12 0 12 0.345703 0.109497 0.30542
+12 0 13 0.330078 0.120605 0.375732
+12 0 14 0.299561 0.134766 0.454346
+12 0 15 0.240356 0.151245 0.538574
+12 0 16 0 0.169434 0.625488
+12 0 17 0 0.187744 0.709473
+12 0 18 0 0.204956 0.786133
+12 0 19 0 0.220459 0.854004
+12 0 20 0 0.22998 0.896484
+12 0 21 0 0.230591 0.902832
+12 0 22 0 0.231689 0.910156
+12 0 23 0 0.233032 0.916992
+12 0 24 0 0.234497 0.924805
+12 0 25 0 0.236206 0.932617
+12 0 26 0 0.238281 0.941895
+12 0 27 0 0.240601 0.952148
+12 0 28 0 0.243286 0.963867
+12 0 29 0 0.246338 0.976562
+12 0 30 0 0.24939 0.989258
+12 0 31 0 0.252686 1
+12 1 0 0.460205 0 0.0279846
+12 1 1 0.459961 0 0.0279694
+12 1 2 0.459961 0 0.0279388
+12 1 3 0.459961 0 0.0278778
+12 1 4 0.459961 0 0.0277557
+12 1 5 0.459961 0 0.0275269
+12 1 6 0.459961 0 0.0270691
+12 1 7 0.462158 0 0.0266266
+12 1 8 0.467529 0 0.0827026
+12 1 9 0.467285 0 0.16748
+12 1 10 0.448975 0 0.231689
+12 1 11 0.380859 0.0737305 0.263184
+12 1 12 0.345703 0.10968 0.30542
+12 1 13 0.330078 0.120789 0.375732
+12 1 14 0.299561 0.134888 0.454346
+12 1 15 0.240234 0.151367 0.538574
+12 1 16 0 0.169556 0.625488
+12 1 17 0 0.187744 0.709473
+12 1 18 0 0.205078 0.786133
+12 1 19 0 0.220459 0.854004
+12 1 20 0 0.22998 0.896484
+12 1 21 0 0.230591 0.902832
+12 1 22 0 0.231689 0.910156
+12 1 23 0 0.233032 0.916992
+12 1 24 0 0.234497 0.924805
+12 1 25 0 0.236206 0.932617
+12 1 26 0 0.238281 0.941895
+12 1 27 0 0.240601 0.952148
+12 1 28 0 0.243286 0.963867
+12 1 29 0 0.246338 0.976562
+12 1 30 0 0.24939 0.989258
+12 1 31 0 0.252686 1
+12 2 0 0.459961 0 0.0275574
+12 2 1 0.459961 0 0.0275421
+12 2 2 0.459961 0 0.0275116
+12 2 3 0.459961 0 0.0274506
+12 2 4 0.459961 0 0.0273285
+12 2 5 0.459961 0 0.0270844
+12 2 6 0.459961 0 0.0266113
+12 2 7 0.461914 0 0.0261688
+12 2 8 0.467529 0 0.0825806
+12 2 9 0.467285 0 0.16748
+12 2 10 0.448975 0 0.231689
+12 2 11 0.380859 0.074646 0.263184
+12 2 12 0.345703 0.110107 0.30542
+12 2 13 0.330078 0.121155 0.375732
+12 2 14 0.299561 0.135132 0.454346
+12 2 15 0.240234 0.151611 0.538574
+12 2 16 0 0.169678 0.625488
+12 2 17 0 0.187988 0.709473
+12 2 18 0 0.205078 0.786133
+12 2 19 0 0.220581 0.854004
+12 2 20 0 0.230103 0.896484
+12 2 21 0 0.230713 0.902832
+12 2 22 0 0.231689 0.910156
+12 2 23 0 0.233032 0.916992
+12 2 24 0 0.234497 0.924805
+12 2 25 0 0.236206 0.932617
+12 2 26 0 0.238281 0.941895
+12 2 27 0 0.240601 0.952148
+12 2 28 0 0.243408 0.963867
+12 2 29 0 0.246338 0.976562
+12 2 30 0 0.24939 0.989258
+12 2 31 0 0.252686 1
+12 3 0 0.459961 0 0.0267487
+12 3 1 0.459961 0 0.0267334
+12 3 2 0.459961 0 0.0267029
+12 3 3 0.459961 0 0.0266266
+12 3 4 0.459961 0 0.0265045
+12 3 5 0.459961 0 0.0262451
+12 3 6 0.459961 0 0.0257568
+12 3 7 0.461914 0 0.0252686
+12 3 8 0.467529 0 0.0823364
+12 3 9 0.467285 0 0.167358
+12 3 10 0.448975 0 0.231689
+12 3 11 0.380859 0.0762329 0.263184
+12 3 12 0.345703 0.11084 0.30542
+12 3 13 0.330078 0.121826 0.375732
+12 3 14 0.299561 0.135742 0.454346
+12 3 15 0.240112 0.151978 0.538574
+12 3 16 0 0.170044 0.625488
+12 3 17 0 0.188232 0.709473
+12 3 18 0 0.205322 0.786133
+12 3 19 0 0.220703 0.854004
+12 3 20 0 0.230225 0.896484
+12 3 21 0 0.230835 0.902832
+12 3 22 0 0.231812 0.910156
+12 3 23 0 0.233154 0.916992
+12 3 24 0 0.234619 0.924805
+12 3 25 0 0.236328 0.932617
+12 3 26 0 0.238281 0.941895
+12 3 27 0 0.240723 0.952148
+12 3 28 0 0.243408 0.963867
+12 3 29 0 0.246338 0.976562
+12 3 30 0 0.249512 0.989258
+12 3 31 0 0.252686 1
+12 4 0 0.459717 0 0.025116
+12 4 1 0.459717 0 0.0250854
+12 4 2 0.459717 0 0.0250549
+12 4 3 0.459717 0 0.0249786
+12 4 4 0.459717 0 0.024826
+12 4 5 0.459717 0 0.0245514
+12 4 6 0.459717 0 0.0240021
+12 4 7 0.46167 0 0.0234375
+12 4 8 0.467285 0 0.0819092
+12 4 9 0.467041 0 0.167114
+12 4 10 0.448975 0 0.231567
+12 4 11 0.381104 0.0791016 0.263428
+12 4 12 0.345459 0.112244 0.30542
+12 4 13 0.329834 0.123047 0.375732
+12 4 14 0.299316 0.136719 0.454346
+12 4 15 0.23999 0.152832 0.538574
+12 4 16 0 0.170776 0.625488
+12 4 17 0 0.188721 0.709473
+12 4 18 0 0.205811 0.786133
+12 4 19 0 0.221069 0.854004
+12 4 20 0 0.230469 0.896484
+12 4 21 0 0.230957 0.902832
+12 4 22 0 0.232056 0.910156
+12 4 23 0 0.233276 0.916992
+12 4 24 0 0.234741 0.924805
+12 4 25 0 0.23645 0.932617
+12 4 26 0 0.238403 0.941895
+12 4 27 0 0.240723 0.952148
+12 4 28 0 0.243408 0.963867
+12 4 29 0 0.24646 0.976562
+12 4 30 0 0.249512 0.989258
+12 4 31 0 0.252686 1
+12 5 0 0.459229 0 0.0213318
+12 5 1 0.459229 0 0.0213013
+12 5 2 0.459229 0 0.0212555
+12 5 3 0.459229 0 0.0211487
+12 5 4 0.459229 0 0.0209656
+12 5 5 0.459229 0 0.0205994
+12 5 6 0.459229 0 0.0198669
+12 5 7 0.461182 0 0.019043
+12 5 8 0.467041 0 0.0811768
+12 5 9 0.466797 0 0.166748
+12 5 10 0.448975 0 0.231567
+12 5 11 0.381348 0.0842285 0.263428
+12 5 12 0.345459 0.114868 0.30542
+12 5 13 0.32959 0.125366 0.375732
+12 5 14 0.299072 0.138672 0.454346
+12 5 15 0.239624 0.154419 0.538574
+12 5 16 0 0.171997 0.625488
+12 5 17 0 0.189697 0.709473
+12 5 18 0 0.206543 0.786133
+12 5 19 0 0.22168 0.854004
+12 5 20 0 0.231079 0.896484
+12 5 21 0 0.231445 0.902832
+12 5 22 0 0.2323 0.910156
+12 5 23 0 0.233521 0.916992
+12 5 24 0 0.234985 0.924805
+12 5 25 0 0.236572 0.932617
+12 5 26 0 0.238647 0.941895
+12 5 27 0 0.240845 0.952148
+12 5 28 0 0.243652 0.963867
+12 5 29 0 0.24646 0.976562
+12 5 30 0 0.249634 0.989258
+12 5 31 0 0.25293 1
+12 6 0 0.458496 0.00932312 0
+12 6 1 0.458496 0.0111542 0
+12 6 2 0.458496 0.0135651 0
+12 6 3 0.458252 0.0167542 0
+12 6 4 0.458252 0.0209808 0
+12 6 5 0.458252 0.0266266 0
+12 6 6 0.458252 0.0339355 0
+12 6 7 0.460205 0.0402222 0
+12 6 8 0.466309 0.0382996 0.0797119
+12 6 9 0.466064 0 0.166016
+12 6 10 0.44873 0 0.231323
+12 6 11 0.381592 0.0929565 0.263916
+12 6 12 0.344971 0.119629 0.30542
+12 6 13 0.329346 0.129517 0.375732
+12 6 14 0.298584 0.142212 0.454346
+12 6 15 0.239014 0.157349 0.538574
+12 6 16 0 0.174316 0.625488
+12 6 17 0 0.191528 0.709473
+12 6 18 0 0.208008 0.786133
+12 6 19 0 0.2229 0.854004
+12 6 20 0 0.232056 0.896484
+12 6 21 0 0.232178 0.902832
+12 6 22 0 0.233032 0.910156
+12 6 23 0 0.234131 0.91748
+12 6 24 0 0.235352 0.924805
+12 6 25 0 0.237061 0.933105
+12 6 26 0 0.238892 0.941895
+12 6 27 0 0.241211 0.952148
+12 6 28 0 0.243896 0.963867
+12 6 29 0 0.246704 0.976562
+12 6 30 0 0.249756 0.989258
+12 6 31 0 0.25293 1
+12 7 0 0.456299 0.0860596 0
+12 7 1 0.456299 0.0861206 0
+12 7 2 0.456299 0.0862427 0
+12 7 3 0.456299 0.0864258 0
+12 7 4 0.456299 0.086792 0
+12 7 5 0.456299 0.0874634 0
+12 7 6 0.456299 0.0888062 0
+12 7 7 0.458252 0.0906372 0
+12 7 8 0.4646 0.0909424 0.0770874
+12 7 9 0.4646 0.0836792 0.164673
+12 7 10 0.448486 0.0751953 0.230957
+12 7 11 0.382324 0.107117 0.264648
+12 7 12 0.344238 0.128174 0.30542
+12 7 13 0.328613 0.137085 0.375488
+12 7 14 0.297852 0.148804 0.454346
+12 7 15 0.237793 0.16272 0.538574
+12 7 16 0 0.178711 0.625488
+12 7 17 0 0.19519 0.709473
+12 7 18 0 0.210938 0.786133
+12 7 19 0 0.22522 0.854004
+12 7 20 0 0.233887 0.896973
+12 7 21 0 0.233765 0.90332
+12 7 22 0 0.234253 0.910156
+12 7 23 0 0.235107 0.91748
+12 7 24 0 0.236328 0.924805
+12 7 25 0 0.237793 0.933105
+12 7 26 0 0.239624 0.941895
+12 7 27 0 0.241699 0.952148
+12 7 28 0 0.244385 0.963867
+12 7 29 0 0.247192 0.976562
+12 7 30 0 0.250244 0.989258
+12 7 31 0 0.253418 1
+12 8 0 0.451416 0.129639 0
+12 8 1 0.451416 0.129639 0
+12 8 2 0.451416 0.129761 0
+12 8 3 0.451416 0.129761 0
+12 8 4 0.451416 0.130005 0
+12 8 5 0.451416 0.130371 0
+12 8 6 0.451172 0.130981 0
+12 8 7 0.452881 0.132202 0
+12 8 8 0.459961 0.133545 0.0727539
+12 8 9 0.460449 0.129639 0.161743
+12 8 10 0.447266 0.122681 0.229736
+12 8 11 0.384033 0.12915 0.266357
+12 8 12 0.342773 0.142578 0.305176
+12 8 13 0.326904 0.150269 0.375488
+12 8 14 0.296143 0.1604 0.454346
+12 8 15 0.235352 0.172607 0.538574
+12 8 16 0 0.18689 0.625488
+12 8 17 0 0.201782 0.709473
+12 8 18 0 0.216309 0.786621
+12 8 19 0 0.229614 0.854004
+12 8 20 0 0.237549 0.896973
+12 8 21 0 0.236694 0.90332
+12 8 22 0 0.236572 0.910156
+12 8 23 0 0.237183 0.91748
+12 8 24 0 0.238037 0.924805
+12 8 25 0 0.239258 0.933105
+12 8 26 0 0.240845 0.942383
+12 8 27 0 0.242798 0.952637
+12 8 28 0 0.245239 0.963867
+12 8 29 0 0.247925 0.976562
+12 8 30 0 0.250977 0.989746
+12 8 31 0 0.253906 1
+12 9 0 0.438965 0.17395 0
+12 9 1 0.438965 0.17395 0
+12 9 2 0.438965 0.17395 0
+12 9 3 0.438965 0.174072 0
+12 9 4 0.438965 0.174072 0
+12 9 5 0.438965 0.174316 0
+12 9 6 0.438721 0.174683 0
+12 9 7 0.439941 0.175659 0
+12 9 8 0.446777 0.177734 0.0692749
+12 9 9 0.44873 0.17627 0.156494
+12 9 10 0.440674 0.171021 0.225952
+12 9 11 0.387939 0.161987 0.269775
+12 9 12 0.340088 0.165039 0.304932
+12 9 13 0.323975 0.171387 0.375244
+12 9 14 0.29248 0.179565 0.454102
+12 9 15 0.230469 0.189453 0.538574
+12 9 16 0 0.201172 0.625977
+12 9 17 0 0.213623 0.709473
+12 9 18 0 0.226074 0.786621
+12 9 19 0 0.237793 0.854004
+12 9 20 0 0.244385 0.897461
+12 9 21 0 0.242065 0.903809
+12 9 22 0 0.241089 0.910645
+12 9 23 0 0.240967 0.917969
+12 9 24 0 0.241333 0.925293
+12 9 25 0 0.242065 0.933105
+12 9 26 0 0.243286 0.942383
+12 9 27 0 0.244995 0.952637
+12 9 28 0 0.24707 0.964355
+12 9 29 0 0.249512 0.976562
+12 9 30 0 0.252197 0.989746
+12 9 31 0 0.255127 1
+12 10 0 0.411865 0.215454 0
+12 10 1 0.411865 0.215454 0
+12 10 2 0.411621 0.215454 0
+12 10 3 0.411621 0.215454 0
+12 10 4 0.411621 0.215454 0
+12 10 5 0.411621 0.215576 0
+12 10 6 0.411621 0.21582 0
+12 10 7 0.411621 0.216187 0
+12 10 8 0.415527 0.21814 0.0805664
+12 10 9 0.419189 0.219604 0.14978
+12 10 10 0.424316 0.221069 0.217773
+12 10 11 0.395508 0.209473 0.276123
+12 10 12 0.335205 0.196533 0.304199
+12 10 13 0.318604 0.201538 0.374756
+12 10 14 0.286133 0.207764 0.453857
+12 10 15 0.221191 0.214966 0.538086
+12 10 16 0 0.223633 0.625977
+12 10 17 0 0.23291 0.709961
+12 10 18 0 0.242432 0.786621
+12 10 19 0 0.251465 0.854492
+12 10 20 0 0.256104 0.898438
+12 10 21 0 0.251709 0.904297
+12 10 22 0 0.249023 0.911133
+12 10 23 0 0.247681 0.918457
+12 10 24 0 0.24707 0.925293
+12 10 25 0 0.24707 0.933594
+12 10 26 0 0.247681 0.942871
+12 10 27 0 0.248657 0.953125
+12 10 28 0 0.250244 0.964355
+12 10 29 0 0.252197 0.977051
+12 10 30 0 0.254639 0.989746
+12 10 31 0 0.25708 1
+12 11 0 0.375 0.251221 0.0778198
+12 11 1 0.375 0.251221 0.0778198
+12 11 2 0.375 0.251221 0.0778198
+12 11 3 0.375 0.251221 0.0778198
+12 11 4 0.375 0.251465 0.0778809
+12 11 5 0.375 0.251465 0.0779419
+12 11 6 0.374756 0.251465 0.078064
+12 11 7 0.374756 0.251709 0.0783691
+12 11 8 0.374268 0.252197 0.109558
+12 11 9 0.373047 0.25293 0.151855
+12 11 10 0.372559 0.254883 0.201416
+12 11 11 0.381836 0.263672 0.270264
+12 11 12 0.325928 0.237915 0.303467
+12 11 13 0.30835 0.241699 0.374023
+12 11 14 0.27417 0.246094 0.453369
+12 11 15 0.203247 0.250732 0.538086
+12 11 16 0 0.256104 0.625977
+12 11 17 0 0.261719 0.709961
+12 11 18 0 0.267334 0.787109
+12 11 19 0 0.273193 0.85498
+12 11 20 0 0.274658 0.899902
+12 11 21 0 0.26709 0.905762
+12 11 22 0 0.261963 0.912109
+12 11 23 0 0.258789 0.918945
+12 11 24 0 0.256836 0.92627
+12 11 25 0 0.255615 0.93457
+12 11 26 0 0.254883 0.943359
+12 11 27 0 0.255127 0.953613
+12 11 28 0 0.255859 0.964844
+12 11 29 0 0.25708 0.977539
+12 11 30 0 0.258789 0.990234
+12 11 31 0 0.260742 1
+12 12 0 0.361328 0.310303 0.10144
+12 12 1 0.361328 0.310303 0.10144
+12 12 2 0.361328 0.310303 0.10144
+12 12 3 0.361328 0.310303 0.10144
+12 12 4 0.361328 0.310303 0.10144
+12 12 5 0.361328 0.310303 0.101501
+12 12 6 0.361328 0.310547 0.101501
+12 12 7 0.361328 0.310791 0.101501
+12 12 8 0.360352 0.310547 0.116882
+12 12 9 0.356201 0.309082 0.15686
+12 12 10 0.348389 0.306152 0.201782
+12 12 11 0.333984 0.300049 0.250977
+12 12 12 0.30957 0.289795 0.302002
+12 12 13 0.290039 0.29248 0.372803
+12 12 14 0.251709 0.29541 0.452393
+12 12 15 0.164673 0.297852 0.537598
+12 12 16 0 0.300049 0.625977
+12 12 17 0 0.301758 0.710449
+12 12 18 0 0.303223 0.787598
+12 12 19 0 0.304932 0.855469
+12 12 20 0 0.302979 0.901855
+12 12 21 0 0.290771 0.907715
+12 12 22 0 0.282227 0.914062
+12 12 23 0 0.276367 0.920898
+12 12 24 0 0.272217 0.927734
+12 12 25 0 0.269043 0.935547
+12 12 26 0 0.266846 0.944336
+12 12 27 0 0.265381 0.95459
+12 12 28 0 0.264893 0.96582
+12 12 29 0 0.264893 0.978027
+12 12 30 0 0.265625 0.990723
+12 12 31 0 0.266602 1
+12 13 0 0.318359 0.364258 0.0964966
+12 13 1 0.318359 0.364258 0.0964966
+12 13 2 0.318359 0.364258 0.0964966
+12 13 3 0.318359 0.364258 0.0964966
+12 13 4 0.318359 0.364258 0.0964966
+12 13 5 0.318359 0.364258 0.0964966
+12 13 6 0.318359 0.364258 0.0964966
+12 13 7 0.318359 0.364502 0.0965576
+12 13 8 0.318604 0.364746 0.0965576
+12 13 9 0.314697 0.363281 0.140991
+12 13 10 0.307861 0.360352 0.188599
+12 13 11 0.295654 0.355469 0.240112
+12 13 12 0.278809 0.352295 0.299316
+12 13 13 0.254639 0.354004 0.370605
+12 13 14 0.205444 0.355469 0.450684
+12 13 15 0 0.355957 0.536621
+12 13 16 0 0.355469 0.625488
+12 13 17 0 0.353271 0.710449
+12 13 18 0 0.350586 0.788574
+12 13 19 0 0.3479 0.856445
+12 13 20 0 0.342285 0.905762
+12 13 21 0 0.324463 0.910645
+12 13 22 0 0.311523 0.916992
+12 13 23 0 0.302002 0.92334
+12 13 24 0 0.294922 0.930176
+12 13 25 0 0.289307 0.937988
+12 13 26 0 0.284668 0.946289
+12 13 27 0 0.28125 0.956055
+12 13 28 0 0.278809 0.967285
+12 13 29 0 0.2771 0.979492
+12 13 30 0 0.276367 0.992188
+12 13 31 0 0.276123 1
+12 14 0 0.251709 0.426514 0.0916138
+12 14 1 0.251709 0.426514 0.0916138
+12 14 2 0.251709 0.426514 0.0916138
+12 14 3 0.251709 0.426514 0.0916138
+12 14 4 0.251709 0.426514 0.0916138
+12 14 5 0.251709 0.426514 0.0916138
+12 14 6 0.251953 0.426514 0.0916138
+12 14 7 0.251953 0.426758 0.0916748
+12 14 8 0.252197 0.427002 0.0917358
+12 14 9 0.250488 0.426758 0.118164
+12 14 10 0.244141 0.425781 0.173462
+12 14 11 0.23291 0.424805 0.230347
+12 14 12 0.212769 0.424561 0.294189
+12 14 13 0.171997 0.425293 0.366455
+12 14 14 0 0.425781 0.447266
+12 14 15 0 0.424805 0.53418
+12 14 16 0 0.422119 0.624023
+12 14 17 0 0.416992 0.710449
+12 14 18 0 0.410156 0.789062
+12 14 19 0 0.403076 0.857422
+12 14 20 0 0.394043 0.910645
+12 14 21 0 0.369629 0.915527
+12 14 22 0 0.351318 0.921387
+12 14 23 0 0.337646 0.927734
+12 14 24 0 0.326904 0.934082
+12 14 25 0 0.318115 0.941406
+12 14 26 0 0.310303 0.949707
+12 14 27 0 0.303955 0.958984
+12 14 28 0 0.299072 0.969727
+12 14 29 0 0.295166 0.981445
+12 14 30 0 0.292236 0.994141
+12 14 31 0 0.290039 1
+12 15 0 0 0.502441 0.0874023
+12 15 1 0 0.502441 0.0874023
+12 15 2 0 0.502441 0.0874023
+12 15 3 0 0.502441 0.0874634
+12 15 4 0 0.502441 0.0874634
+12 15 5 0 0.502441 0.0874634
+12 15 6 0 0.502441 0.0874634
+12 15 7 0 0.502441 0.0874634
+12 15 8 0 0.50293 0.0875244
+12 15 9 0 0.50293 0.0876465
+12 15 10 0 0.50293 0.152466
+12 15 11 0 0.503418 0.216919
+12 15 12 0 0.503906 0.284668
+12 15 13 0 0.504395 0.358887
+12 15 14 0 0.504395 0.440918
+12 15 15 0 0.50293 0.529297
+12 15 16 0 0.498779 0.620605
+12 15 17 0 0.490967 0.708984
+12 15 18 0 0.480713 0.789062
+12 15 19 0 0.469482 0.858398
+12 15 20 0 0.45752 0.915527
+12 15 21 0 0.427002 0.922852
+12 15 22 0 0.402588 0.928711
+12 15 23 0 0.383789 0.934082
+12 15 24 0 0.369141 0.94043
+12 15 25 0 0.356201 0.946777
+12 15 26 0 0.344727 0.95459
+12 15 27 0 0.335205 0.963379
+12 15 28 0 0.326904 0.973633
+12 15 29 0 0.320068 0.984863
+12 15 30 0 0.314453 0.99707
+12 15 31 0 0.309814 1
+12 16 0 0 0.585449 0.0817871
+12 16 1 0 0.585449 0.0817871
+12 16 2 0 0.585449 0.0817871
+12 16 3 0 0.585449 0.0817871
+12 16 4 0 0.585449 0.0817871
+12 16 5 0 0.585449 0.0817871
+12 16 6 0 0.585449 0.0817871
+12 16 7 0 0.585449 0.0818481
+12 16 8 0 0.585449 0.0819092
+12 16 9 0 0.585449 0.0819702
+12 16 10 0 0.585938 0.112793
+12 16 11 0 0.586426 0.19519
+12 16 12 0 0.587402 0.269043
+12 16 13 0 0.588379 0.346436
+12 16 14 0 0.588867 0.43042
+12 16 15 0 0.587891 0.520508
+12 16 16 0 0.583008 0.61377
+12 16 17 0 0.574219 0.70459
+12 16 18 0 0.561035 0.786621
+12 16 19 0 0.546387 0.858398
+12 16 20 0 0.530762 0.916992
+12 16 21 0 0.496338 0.931641
+12 16 22 0 0.46582 0.938477
+12 16 23 0 0.44165 0.944336
+12 16 24 0 0.422119 0.949707
+12 16 25 0 0.404541 0.956055
+12 16 26 0 0.38916 0.962891
+12 16 27 0 0.375244 0.970703
+12 16 28 0 0.363281 0.97998
+12 16 29 0 0.353027 0.990723
+12 16 30 0 0.343994 1
+12 16 31 0 0.336182 1
+12 17 0 0 0.66748 0.0736084
+12 17 1 0 0.66748 0.0736084
+12 17 2 0 0.66748 0.0736084
+12 17 3 0 0.66748 0.0736084
+12 17 4 0 0.66748 0.0736084
+12 17 5 0 0.66748 0.0736084
+12 17 6 0 0.66748 0.0736084
+12 17 7 0 0.66748 0.0736694
+12 17 8 0 0.66748 0.0737305
+12 17 9 0 0.667969 0.0738525
+12 17 10 0 0.667969 0.0740967
+12 17 11 0 0.668945 0.160278
+12 17 12 0 0.67041 0.246216
+12 17 13 0 0.671875 0.328125
+12 17 14 0 0.67334 0.414551
+12 17 15 0 0.672852 0.506348
+12 17 16 0 0.668945 0.602051
+12 17 17 0 0.660156 0.695312
+12 17 18 0 0.646484 0.78125
+12 17 19 0 0.629395 0.855469
+12 17 20 0 0.610352 0.916016
+12 17 21 0 0.575195 0.941406
+12 17 22 0 0.539551 0.95166
+12 17 23 0 0.509766 0.958496
+12 17 24 0 0.485107 0.963867
+12 17 25 0 0.462646 0.969238
+12 17 26 0 0.442383 0.975098
+12 17 27 0 0.423828 0.981445
+12 17 28 0 0.407471 0.989746
+12 17 29 0 0.393066 0.999023
+12 17 30 0 0.380371 1
+12 17 31 0 0.369141 1
+12 18 0 0 0.744141 0.0618896
+12 18 1 0 0.744141 0.0618896
+12 18 2 0 0.744141 0.0618896
+12 18 3 0 0.744141 0.0618896
+12 18 4 0 0.744141 0.0618896
+12 18 5 0 0.744141 0.0619202
+12 18 6 0 0.744141 0.0619507
+12 18 7 0 0.744141 0.0619812
+12 18 8 0 0.744629 0.0620422
+12 18 9 0 0.744629 0.0621948
+12 18 10 0 0.744629 0.0624695
+12 18 11 0 0.745117 0.0911255
+12 18 12 0 0.746582 0.214478
+12 18 13 0 0.749023 0.303955
+12 18 14 0 0.750977 0.393311
+12 18 15 0 0.752441 0.486816
+12 18 16 0 0.750488 0.584473
+12 18 17 0 0.743164 0.681152
+12 18 18 0 0.730469 0.77002
+12 18 19 0 0.713379 0.848145
+12 18 20 0 0.692383 0.912109
+12 18 21 0 0.658203 0.948242
+12 18 22 0 0.620117 0.96582
+12 18 23 0 0.585938 0.975586
+12 18 24 0 0.556641 0.981445
+12 18 25 0 0.528809 0.986328
+12 18 26 0 0.503418 0.991211
+12 18 27 0 0.479736 0.996582
+12 18 28 0 0.45874 1
+12 18 29 0 0.439697 1
+12 18 30 0 0.422607 1
+12 18 31 0 0.407227 1
+12 19 0 0 0.812988 0.0437012
+12 19 1 0 0.812988 0.0437012
+12 19 2 0 0.812988 0.0437012
+12 19 3 0 0.812988 0.0437012
+12 19 4 0 0.812988 0.0437317
+12 19 5 0 0.812988 0.0437317
+12 19 6 0 0.812988 0.0437622
+12 19 7 0 0.812988 0.0438232
+12 19 8 0 0.812988 0.0439758
+12 19 9 0 0.813477 0.04422
+12 19 10 0 0.813477 0.0446472
+12 19 11 0 0.813477 0.0453796
+12 19 12 0 0.814941 0.170044
+12 19 13 0 0.817383 0.274414
+12 19 14 0 0.820312 0.368164
+12 19 15 0 0.822754 0.463379
+12 19 16 0 0.823242 0.5625
+12 19 17 0 0.818848 0.661133
+12 19 18 0 0.808594 0.753906
+12 19 19 0 0.79248 0.835449
+12 19 20 0 0.771484 0.90332
+12 19 21 0 0.740723 0.950684
+12 19 22 0 0.703125 0.977539
+12 19 23 0 0.666504 0.992676
+12 19 24 0 0.633301 1
+12 19 25 0 0.601074 1
+12 19 26 0 0.570312 1
+12 19 27 0 0.541016 1
+12 19 28 0 0.514648 1
+12 19 29 0 0.490967 1
+12 19 30 0 0.469238 1
+12 19 31 0 0.449707 1
+12 20 0 0 0.872559 0
+12 20 1 0 0.872559 0
+12 20 2 0 0.872559 0
+12 20 3 0 0.872559 0
+12 20 4 0 0.872559 0
+12 20 5 0 0.872559 0
+12 20 6 0 0.872559 0
+12 20 7 0 0.872559 0
+12 20 8 0 0.872559 0
+12 20 9 0 0.872559 0
+12 20 10 0 0.872559 0
+12 20 11 0 0.873047 0
+12 20 12 0 0.873535 0.0907593
+12 20 13 0 0.875977 0.239868
+12 20 14 0 0.879395 0.340332
+12 20 15 0 0.883301 0.437744
+12 20 16 0 0.885254 0.537598
+12 20 17 0 0.884277 0.637695
+12 20 18 0 0.876953 0.73291
+12 20 19 0 0.862793 0.817871
+12 20 20 0 0.843262 0.88916
+12 20 21 0 0.816895 0.945801
+12 20 22 0 0.783203 0.983887
+12 20 23 0 0.746582 1
+12 20 24 0 0.710938 1
+12 20 25 0 0.674805 1
+12 20 26 0 0.639648 1
+12 20 27 0 0.605469 1
+12 20 28 0 0.574219 1
+12 20 29 0 0.544922 1
+12 20 30 0 0.518555 1
+12 20 31 0 0.494385 1
+12 21 0 0 0.922852 0
+12 21 1 0 0.922852 0
+12 21 2 0 0.922852 0
+12 21 3 0 0.922852 0
+12 21 4 0 0.922852 0
+12 21 5 0 0.922852 0
+12 21 6 0 0.922852 0
+12 21 7 0 0.922852 0
+12 21 8 0 0.92334 0
+12 21 9 0 0.92334 0
+12 21 10 0 0.92334 0
+12 21 11 0 0.92334 0
+12 21 12 0 0.923828 0
+12 21 13 0 0.925781 0.196533
+12 21 14 0 0.929688 0.309326
+12 21 15 0 0.934082 0.409424
+12 21 16 0 0.937988 0.510254
+12 21 17 0 0.938965 0.61084
+12 21 18 0 0.935059 0.70752
+12 21 19 0 0.924316 0.794922
+12 21 20 0 0.907227 0.870117
+12 21 21 0 0.884766 0.933105
+12 21 22 0 0.855957 0.980957
+12 21 23 0 0.822266 1
+12 21 24 0 0.786621 1
+12 21 25 0 0.749023 1
+12 21 26 0 0.710449 1
+12 21 27 0 0.672363 1
+12 21 28 0 0.635742 1
+12 21 29 0 0.602051 1
+12 21 30 0 0.570312 1
+12 21 31 0 0.541992 1
+12 22 0 0 0.964844 0
+12 22 1 0 0.964844 0
+12 22 2 0 0.964844 0
+12 22 3 0 0.964844 0
+12 22 4 0 0.964844 0
+12 22 5 0 0.964844 0
+12 22 6 0 0.964844 0
+12 22 7 0 0.964844 0
+12 22 8 0 0.964844 0
+12 22 9 0 0.964844 0
+12 22 10 0 0.964844 0
+12 22 11 0 0.965332 0
+12 22 12 0 0.965332 0
+12 22 13 0 0.966309 0.135498
+12 22 14 0 0.970703 0.275391
+12 22 15 0 0.975586 0.380127
+12 22 16 0 0.980469 0.481445
+12 22 17 0 0.983887 0.582031
+12 22 18 0 0.98291 0.679199
+12 22 19 0 0.975586 0.768555
+12 22 20 0 0.961914 0.84668
+12 22 21 0 0.942383 0.913574
+12 22 22 0 0.917969 0.968262
+12 22 23 0 0.888672 1
+12 22 24 0 0.855957 1
+12 22 25 0 0.818848 1
+12 22 26 0 0.778809 1
+12 22 27 0 0.738281 1
+12 22 28 0 0.698242 1
+12 22 29 0 0.659668 1
+12 22 30 0 0.624023 1
+12 22 31 0 0.590332 1
+12 23 0 0 0.998535 0
+12 23 1 0 0.998535 0
+12 23 2 0 0.998535 0
+12 23 3 0 0.998535 0
+12 23 4 0 0.998535 0
+12 23 5 0 0.998535 0
+12 23 6 0 0.998535 0
+12 23 7 0 0.998535 0
+12 23 8 0 0.998535 0
+12 23 9 0 0.998535 0
+12 23 10 0 0.998535 0
+12 23 11 0 0.998535 0
+12 23 12 0 0.998535 0
+12 23 13 0 0.999023 0
+12 23 14 0 1 0.239014
+12 23 15 0 1 0.350586
+12 23 16 0 1 0.453125
+12 23 17 0 1 0.553711
+12 23 18 0 1 0.650391
+12 23 19 0 1 0.740723
+12 23 20 0 1 0.820801
+12 23 21 0 0.989746 0.890625
+12 23 22 0 0.968262 0.94873
+12 23 23 0 0.942871 0.994629
+12 23 24 0 0.914551 1
+12 23 25 0 0.880371 1
+12 23 26 0 0.841309 1
+12 23 27 0 0.799316 1
+12 23 28 0 0.756836 1
+12 23 29 0 0.715332 1
+12 23 30 0 0.675293 1
+12 23 31 0 0.638184 1
+12 24 0 0 1 0
+12 24 1 0 1 0
+12 24 2 0 1 0
+12 24 3 0 1 0
+12 24 4 0 1 0
+12 24 5 0 1 0
+12 24 6 0 1 0
+12 24 7 0 1 0
+12 24 8 0 1 0
+12 24 9 0 1 0
+12 24 10 0 1 0
+12 24 11 0 1 0
+12 24 12 0 1 0
+12 24 13 0 1 0
+12 24 14 0 1 0.197876
+12 24 15 0 1 0.320801
+12 24 16 0 1 0.425293
+12 24 17 0 1 0.525391
+12 24 18 0 1 0.62207
+12 24 19 0 1 0.712402
+12 24 20 0 1 0.793457
+12 24 21 0 1 0.865723
+12 24 22 0 1 0.926758
+12 24 23 0 0.987793 0.976074
+12 24 24 0 0.962891 1
+12 24 25 0 0.932617 1
+12 24 26 0 0.895996 1
+12 24 27 0 0.854492 1
+12 24 28 0 0.811523 1
+12 24 29 0 0.767578 1
+12 24 30 0 0.725098 1
+12 24 31 0 0.684082 1
+12 25 0 0 1 0
+12 25 1 0 1 0
+12 25 2 0 1 0
+12 25 3 0 1 0
+12 25 4 0 1 0
+12 25 5 0 1 0
+12 25 6 0 1 0
+12 25 7 0 1 0
+12 25 8 0 1 0
+12 25 9 0 1 0
+12 25 10 0 1 0
+12 25 11 0 1 0
+12 25 12 0 1 0
+12 25 13 0 1 0
+12 25 14 0 1 0.138672
+12 25 15 0 1 0.287354
+12 25 16 0 1 0.39502
+12 25 17 0 1 0.494873
+12 25 18 0 1 0.59082
+12 25 19 0 1 0.680664
+12 25 20 0 1 0.762695
+12 25 21 0 1 0.836426
+12 25 22 0 1 0.900391
+12 25 23 0 1 0.953125
+12 25 24 0 1 0.996094
+12 25 25 0 0.980469 1
+12 25 26 0 0.947754 1
+12 25 27 0 0.908691 1
+12 25 28 0 0.865723 1
+12 25 29 0 0.821289 1
+12 25 30 0 0.776367 1
+12 25 31 0 0.73291 1
+12 26 0 0 1 0
+12 26 1 0 1 0
+12 26 2 0 1 0
+12 26 3 0 1 0
+12 26 4 0 1 0
+12 26 5 0 1 0
+12 26 6 0 1 0
+12 26 7 0 1 0
+12 26 8 0 1 0
+12 26 9 0 1 0
+12 26 10 0 1 0
+12 26 11 0 1 0
+12 26 12 0 1 0
+12 26 13 0 1 0
+12 26 14 0 1 0
+12 26 15 0 1 0.248901
+12 26 16 0 1 0.362549
+12 26 17 0 1 0.462646
+12 26 18 0 1 0.557129
+12 26 19 0 1 0.646484
+12 26 20 0 1 0.728027
+12 26 21 0 1 0.803223
+12 26 22 0 1 0.869141
+12 26 23 0 1 0.924805
+12 26 24 0 1 0.971191
+12 26 25 0 1 1
+12 26 26 0 0.995117 1
+12 26 27 0 0.959961 1
+12 26 28 0 0.918945 1
+12 26 29 0 0.874512 1
+12 26 30 0 0.828613 1
+12 26 31 0 0.783203 1
+12 27 0 0 1 0
+12 27 1 0 1 0
+12 27 2 0 1 0
+12 27 3 0 1 0
+12 27 4 0 1 0
+12 27 5 0 1 0
+12 27 6 0 1 0
+12 27 7 0 1 0
+12 27 8 0 1 0
+12 27 9 0 1 0
+12 27 10 0 1 0
+12 27 11 0 1 0
+12 27 12 0 1 0
+12 27 13 0 1 0
+12 27 14 0 1 0
+12 27 15 0 1 0.201538
+12 27 16 0 1 0.327148
+12 27 17 0 1 0.428467
+12 27 18 0 1 0.522461
+12 27 19 0 1 0.610352
+12 27 20 0 1 0.691406
+12 27 21 0 1 0.766113
+12 27 22 0 1 0.833496
+12 27 23 0 1 0.891602
+12 27 24 0 1 0.94043
+12 27 25 0 1 0.98584
+12 27 26 0 1 1
+12 27 27 0 1 1
+12 27 28 0 0.969238 1
+12 27 29 0 0.92627 1
+12 27 30 0 0.880371 1
+12 27 31 0 0.833496 1
+12 28 0 0 1 0
+12 28 1 0 1 0
+12 28 2 0 1 0
+12 28 3 0 1 0
+12 28 4 0 1 0
+12 28 5 0 1 0
+12 28 6 0 1 0
+12 28 7 0 1 0
+12 28 8 0 1 0
+12 28 9 0 1 0
+12 28 10 0 1 0
+12 28 11 0 1 0
+12 28 12 0 1 0
+12 28 13 0 1 0
+12 28 14 0 1 0
+12 28 15 0 1 0.13208
+12 28 16 0 1 0.288086
+12 28 17 0 1 0.392578
+12 28 18 0 1 0.485596
+12 28 19 0 1 0.572266
+12 28 20 0 1 0.651855
+12 28 21 0 1 0.726562
+12 28 22 0 1 0.794434
+12 28 23 0 1 0.853516
+12 28 24 0 1 0.904785
+12 28 25 0 1 0.953125
+12 28 26 0 1 0.998047
+12 28 27 0 1 1
+12 28 28 0 1 1
+12 28 29 0 0.975098 1
+12 28 30 0 0.931152 1
+12 28 31 0 0.884766 1
+12 29 0 0 1 0
+12 29 1 0 1 0
+12 29 2 0 1 0
+12 29 3 0 1 0
+12 29 4 0 1 0
+12 29 5 0 1 0
+12 29 6 0 1 0
+12 29 7 0 1 0
+12 29 8 0 1 0
+12 29 9 0 1 0
+12 29 10 0 1 0
+12 29 11 0 1 0
+12 29 12 0 1 0
+12 29 13 0 1 0
+12 29 14 0 1 0
+12 29 15 0 1 0
+12 29 16 0 1 0.243042
+12 29 17 0 1 0.354004
+12 29 18 0 1 0.447266
+12 29 19 0 1 0.532227
+12 29 20 0 1 0.61084
+12 29 21 0 1 0.684082
+12 29 22 0 1 0.751953
+12 29 23 0 1 0.811523
+12 29 24 0 1 0.864258
+12 29 25 0 1 0.915039
+12 29 26 0 1 0.962891
+12 29 27 0 1 1
+12 29 28 0 1 1
+12 29 29 0 1 1
+12 29 30 0 0.979492 1
+12 29 31 0 0.935059 1
+12 30 0 0 1 0
+12 30 1 0 1 0
+12 30 2 0 1 0
+12 30 3 0 1 0
+12 30 4 0 1 0
+12 30 5 0 1 0
+12 30 6 0 1 0
+12 30 7 0 1 0
+12 30 8 0 1 0
+12 30 9 0 1 0
+12 30 10 0 1 0
+12 30 11 0 1 0
+12 30 12 0 1 0
+12 30 13 0 1 0
+12 30 14 0 1 0
+12 30 15 0 1 0
+12 30 16 0 1 0.187378
+12 30 17 0 1 0.312744
+12 30 18 0 1 0.407227
+12 30 19 0 1 0.491211
+12 30 20 0 1 0.567871
+12 30 21 0 1 0.639648
+12 30 22 0 1 0.706055
+12 30 23 0 1 0.765625
+12 30 24 0 1 0.819336
+12 30 25 0 1 0.871094
+12 30 26 0 1 0.921875
+12 30 27 0 1 0.96875
+12 30 28 0 1 1
+12 30 29 0 1 1
+12 30 30 0 1 1
+12 30 31 0 0.983398 1
+12 31 0 0 1 0
+12 31 1 0 1 0
+12 31 2 0 1 0
+12 31 3 0 1 0
+12 31 4 0 1 0
+12 31 5 0 1 0
+12 31 6 0 1 0
+12 31 7 0 1 0
+12 31 8 0 1 0
+12 31 9 0 1 0
+12 31 10 0 1 0
+12 31 11 0 1 0
+12 31 12 0 1 0
+12 31 13 0 1 0
+12 31 14 0 1 0
+12 31 15 0 1 0
+12 31 16 0 1 0.092041
+12 31 17 0 1 0.267334
+12 31 18 0 1 0.365723
+12 31 19 0 1 0.448975
+12 31 20 0 1 0.523926
+12 31 21 0 1 0.59375
+12 31 22 0 1 0.658691
+12 31 23 0 1 0.717285
+12 31 24 0 1 0.770508
+12 31 25 0 1 0.82373
+12 31 26 0 1 0.875977
+12 31 27 0 1 0.92627
+12 31 28 0 1 0.973633
+12 31 29 0 1 1
+12 31 30 0 1 1
+12 31 31 0 1 1
+13 0 0 0.515625 0 0.03125
+13 0 1 0.515625 0 0.03125
+13 0 2 0.515625 0 0.0312195
+13 0 3 0.515625 0 0.0311737
+13 0 4 0.515625 0 0.0310974
+13 0 5 0.515625 0 0.0309448
+13 0 6 0.515625 0 0.0306549
+13 0 7 0.515625 0 0.0300598
+13 0 8 0.518066 0 0.0296021
+13 0 9 0.522461 0 0.115051
+13 0 10 0.523926 0 0.199951
+13 0 11 0.51123 0 0.272705
+13 0 12 0.453613 0.101868 0.318115
+13 0 13 0.42627 0.134766 0.376465
+13 0 14 0.405762 0.146606 0.454834
+13 0 15 0.370117 0.161133 0.539062
+13 0 16 0.30835 0.177612 0.626953
+13 0 17 0.180054 0.194336 0.711426
+13 0 18 0 0.210449 0.788086
+13 0 19 0 0.224976 0.855957
+13 0 20 0 0.234619 0.901855
+13 0 21 0 0.234497 0.908203
+13 0 22 0 0.235107 0.915039
+13 0 23 0 0.235962 0.921875
+13 0 24 0 0.237061 0.928711
+13 0 25 0 0.238525 0.936523
+13 0 26 0 0.240234 0.945801
+13 0 27 0 0.24231 0.955566
+13 0 28 0 0.244873 0.966797
+13 0 29 0 0.247681 0.979004
+13 0 30 0 0.250488 0.991699
+13 0 31 0 0.253662 1
+13 1 0 0.515625 0 0.0310974
+13 1 1 0.515625 0 0.0310822
+13 1 2 0.515625 0 0.0310669
+13 1 3 0.515625 0 0.0310211
+13 1 4 0.515625 0 0.0309448
+13 1 5 0.515625 0 0.0307922
+13 1 6 0.515625 0 0.0304871
+13 1 7 0.515625 0 0.029892
+13 1 8 0.518066 0 0.0294342
+13 1 9 0.522461 0 0.115051
+13 1 10 0.523926 0 0.199951
+13 1 11 0.51123 0 0.272705
+13 1 12 0.453613 0.102173 0.318115
+13 1 13 0.42627 0.134888 0.376465
+13 1 14 0.405762 0.146729 0.454834
+13 1 15 0.370117 0.161255 0.539062
+13 1 16 0.30835 0.177734 0.626953
+13 1 17 0.180054 0.194458 0.711426
+13 1 18 0 0.210449 0.788086
+13 1 19 0 0.224976 0.855957
+13 1 20 0 0.234741 0.901855
+13 1 21 0 0.234497 0.908203
+13 1 22 0 0.235107 0.915039
+13 1 23 0 0.235962 0.921875
+13 1 24 0 0.237061 0.928711
+13 1 25 0 0.238525 0.936523
+13 1 26 0 0.240234 0.945801
+13 1 27 0 0.242432 0.955566
+13 1 28 0 0.244873 0.966797
+13 1 29 0 0.247681 0.979004
+13 1 30 0 0.250488 0.991699
+13 1 31 0 0.253662 1
+13 2 0 0.515625 0 0.0308228
+13 2 1 0.515625 0 0.0308075
+13 2 2 0.515625 0 0.030777
+13 2 3 0.515625 0 0.0307312
+13 2 4 0.515625 0 0.0306549
+13 2 5 0.515625 0 0.0305023
+13 2 6 0.515625 0 0.0301971
+13 2 7 0.515625 0 0.0296021
+13 2 8 0.518066 0 0.0291138
+13 2 9 0.522461 0 0.11499
+13 2 10 0.523926 0 0.199951
+13 2 11 0.51123 0 0.272705
+13 2 12 0.453613 0.102661 0.318115
+13 2 13 0.426025 0.135132 0.376465
+13 2 14 0.405762 0.147095 0.454834
+13 2 15 0.370117 0.161499 0.539062
+13 2 16 0.30835 0.177856 0.626953
+13 2 17 0.180054 0.19458 0.711426
+13 2 18 0 0.210571 0.788086
+13 2 19 0 0.225098 0.855957
+13 2 20 0 0.234741 0.901855
+13 2 21 0 0.234619 0.908203
+13 2 22 0 0.235107 0.915039
+13 2 23 0 0.235962 0.921875
+13 2 24 0 0.237061 0.928711
+13 2 25 0 0.238525 0.936523
+13 2 26 0 0.240356 0.945801
+13 2 27 0 0.242432 0.955566
+13 2 28 0 0.244873 0.966797
+13 2 29 0 0.247681 0.979004
+13 2 30 0 0.250488 0.991699
+13 2 31 0 0.253662 1
+13 3 0 0.515625 0 0.0302887
+13 3 1 0.515625 0 0.0302734
+13 3 2 0.515625 0 0.0302582
+13 3 3 0.515625 0 0.0302124
+13 3 4 0.515625 0 0.0301208
+13 3 5 0.515625 0 0.0299683
+13 3 6 0.515625 0 0.0296478
+13 3 7 0.515625 0 0.0290222
+13 3 8 0.518066 0 0.0285339
+13 3 9 0.522461 0 0.114929
+13 3 10 0.523438 0 0.199829
+13 3 11 0.51123 0 0.272705
+13 3 12 0.453613 0.103516 0.318115
+13 3 13 0.426025 0.135742 0.376465
+13 3 14 0.405762 0.147461 0.454834
+13 3 15 0.369873 0.161865 0.539062
+13 3 16 0.308105 0.178223 0.626953
+13 3 17 0.179932 0.194824 0.711426
+13 3 18 0 0.210815 0.788086
+13 3 19 0 0.225342 0.855957
+13 3 20 0 0.234863 0.901855
+13 3 21 0 0.234741 0.908203
+13 3 22 0 0.235229 0.915039
+13 3 23 0 0.236084 0.921875
+13 3 24 0 0.237183 0.928711
+13 3 25 0 0.238647 0.936523
+13 3 26 0 0.240356 0.945801
+13 3 27 0 0.242432 0.955566
+13 3 28 0 0.244995 0.966797
+13 3 29 0 0.247681 0.979004
+13 3 30 0 0.250732 0.991699
+13 3 31 0 0.253662 1
+13 4 0 0.515137 0 0.0292511
+13 4 1 0.515137 0 0.0292358
+13 4 2 0.515137 0 0.0292053
+13 4 3 0.515137 0 0.0291595
+13 4 4 0.515137 0 0.029068
+13 4 5 0.515137 0 0.0289001
+13 4 6 0.515137 0 0.0285645
+13 4 7 0.515137 0 0.0279083
+13 4 8 0.518066 0 0.0273743
+13 4 9 0.522461 0 0.114746
+13 4 10 0.523438 0 0.199829
+13 4 11 0.51123 0 0.272705
+13 4 12 0.453857 0.105164 0.318115
+13 4 13 0.426025 0.136719 0.376465
+13 4 14 0.405518 0.148438 0.454834
+13 4 15 0.369873 0.162598 0.539062
+13 4 16 0.308105 0.178833 0.626953
+13 4 17 0.179688 0.195312 0.711426
+13 4 18 0 0.211182 0.788086
+13 4 19 0 0.225586 0.855957
+13 4 20 0 0.235229 0.901855
+13 4 21 0 0.234985 0.908203
+13 4 22 0 0.235352 0.915039
+13 4 23 0 0.236206 0.921875
+13 4 24 0 0.237305 0.928711
+13 4 25 0 0.23877 0.936523
+13 4 26 0 0.240479 0.945801
+13 4 27 0 0.242554 0.955566
+13 4 28 0 0.244995 0.966797
+13 4 29 0 0.247803 0.979004
+13 4 30 0 0.250732 0.991699
+13 4 31 0 0.253662 1
+13 5 0 0.515137 0 0.0270386
+13 5 1 0.515137 0 0.0270233
+13 5 2 0.515137 0 0.0269928
+13 5 3 0.515137 0 0.026947
+13 5 4 0.515137 0 0.0268402
+13 5 5 0.515137 0 0.0266571
+13 5 6 0.515137 0 0.0262756
+13 5 7 0.515137 0 0.0255127
+13 5 8 0.517578 0 0.0248718
+13 5 9 0.521973 0 0.114441
+13 5 10 0.523438 0 0.199585
+13 5 11 0.51123 0 0.272705
+13 5 12 0.453857 0.108215 0.318359
+13 5 13 0.425781 0.138672 0.376465
+13 5 14 0.405518 0.150146 0.454834
+13 5 15 0.369629 0.164062 0.539062
+13 5 16 0.307861 0.179932 0.626953
+13 5 17 0.179199 0.196289 0.711426
+13 5 18 0 0.212036 0.788086
+13 5 19 0 0.226196 0.855957
+13 5 20 0 0.235718 0.902344
+13 5 21 0 0.235352 0.908203
+13 5 22 0 0.235718 0.915039
+13 5 23 0 0.23645 0.921875
+13 5 24 0 0.237549 0.928711
+13 5 25 0 0.238892 0.937012
+13 5 26 0 0.240601 0.945801
+13 5 27 0 0.242676 0.955566
+13 5 28 0 0.245117 0.966797
+13 5 29 0 0.247925 0.979004
+13 5 30 0 0.250732 0.991699
+13 5 31 0 0.253906 1
+13 6 0 0.514648 0 0.0217743
+13 6 1 0.514648 0 0.0217438
+13 6 2 0.514648 0 0.0217133
+13 6 3 0.514648 0 0.021637
+13 6 4 0.514648 0 0.0214844
+13 6 5 0.514648 0 0.0212097
+13 6 6 0.514648 0 0.0206604
+13 6 7 0.514648 0 0.0195312
+13 6 8 0.51709 0 0.0184479
+13 6 9 0.521973 0 0.113831
+13 6 10 0.522949 0 0.199341
+13 6 11 0.511719 0 0.272949
+13 6 12 0.453857 0.11377 0.318359
+13 6 13 0.425537 0.142212 0.376465
+13 6 14 0.405273 0.153198 0.454834
+13 6 15 0.369385 0.166626 0.539062
+13 6 16 0.307373 0.182129 0.626953
+13 6 17 0.178223 0.19812 0.711426
+13 6 18 0 0.213379 0.788574
+13 6 19 0 0.227417 0.855957
+13 6 20 0 0.236694 0.902344
+13 6 21 0 0.236084 0.908203
+13 6 22 0 0.236328 0.915039
+13 6 23 0 0.237061 0.921875
+13 6 24 0 0.238037 0.928711
+13 6 25 0 0.239258 0.937012
+13 6 26 0 0.240967 0.945801
+13 6 27 0 0.24292 0.955566
+13 6 28 0 0.245361 0.966797
+13 6 29 0 0.248047 0.979004
+13 6 30 0 0.250977 0.991699
+13 6 31 0 0.253906 1
+13 7 0 0.513672 0.0509338 0
+13 7 1 0.513672 0.0510559 0
+13 7 2 0.513672 0.051239 0
+13 7 3 0.513672 0.0516052 0
+13 7 4 0.513672 0.0522766 0
+13 7 5 0.513672 0.0535278 0
+13 7 6 0.513672 0.0557861 0
+13 7 7 0.513672 0.0598145 0
+13 7 8 0.516113 0.0633545 0
+13 7 9 0.520996 0.0587463 0.112732
+13 7 10 0.522461 0.0409241 0.19873
+13 7 11 0.511719 0.039856 0.272949
+13 7 12 0.454102 0.123474 0.318848
+13 7 13 0.425049 0.148804 0.376465
+13 7 14 0.404541 0.159058 0.454834
+13 7 15 0.368896 0.171631 0.539062
+13 7 16 0.306641 0.186279 0.626953
+13 7 17 0.176514 0.201416 0.711426
+13 7 18 0 0.216187 0.788574
+13 7 19 0 0.229614 0.855957
+13 7 20 0 0.238525 0.902344
+13 7 21 0 0.237671 0.908203
+13 7 22 0 0.237549 0.915039
+13 7 23 0 0.238037 0.921875
+13 7 24 0 0.238892 0.929199
+13 7 25 0 0.240112 0.937012
+13 7 26 0 0.241577 0.945801
+13 7 27 0 0.24353 0.955566
+13 7 28 0 0.24585 0.966797
+13 7 29 0 0.248535 0.979004
+13 7 30 0 0.251221 0.991699
+13 7 31 0 0.254395 1
+13 8 0 0.511719 0.108093 0
+13 8 1 0.511719 0.108093 0
+13 8 2 0.511719 0.108154 0
+13 8 3 0.511719 0.108276 0
+13 8 4 0.511719 0.108459 0
+13 8 5 0.511719 0.108887 0
+13 8 6 0.511719 0.109619 0
+13 8 7 0.511719 0.111023 0
+13 8 8 0.51416 0.112732 0
+13 8 9 0.519531 0.11145 0.110779
+13 8 10 0.521973 0.105774 0.197632
+13 8 11 0.512695 0.102539 0.272705
+13 8 12 0.45459 0.139771 0.31958
+13 8 13 0.424072 0.160522 0.376221
+13 8 14 0.403564 0.169556 0.454834
+13 8 15 0.367676 0.180786 0.539062
+13 8 16 0.305176 0.19397 0.626953
+13 8 17 0.172974 0.207886 0.711426
+13 8 18 0 0.221436 0.788574
+13 8 19 0 0.234009 0.855957
+13 8 20 0 0.242188 0.902344
+13 8 21 0 0.240479 0.908691
+13 8 22 0 0.23999 0.915527
+13 8 23 0 0.240112 0.921875
+13 8 24 0 0.240601 0.929199
+13 8 25 0 0.241577 0.937012
+13 8 26 0 0.24292 0.945801
+13 8 27 0 0.244629 0.955566
+13 8 28 0 0.246826 0.966797
+13 8 29 0 0.249268 0.979004
+13 8 30 0 0.251953 0.991699
+13 8 31 0 0.254883 1
+13 9 0 0.507324 0.156372 0
+13 9 1 0.507324 0.156372 0
+13 9 2 0.507324 0.156494 0
+13 9 3 0.507324 0.156494 0
+13 9 4 0.507324 0.156616 0
+13 9 5 0.507324 0.15686 0
+13 9 6 0.507324 0.157227 0
+13 9 7 0.507324 0.157959 0
+13 9 8 0.509277 0.159302 0
+13 9 9 0.515137 0.159424 0.108276
+13 9 10 0.519531 0.156738 0.19519
+13 9 11 0.512695 0.15271 0.272217
+13 9 12 0.455566 0.165161 0.320801
+13 9 13 0.422119 0.17981 0.375977
+13 9 14 0.401611 0.187256 0.45459
+13 9 15 0.365234 0.196533 0.539062
+13 9 16 0.302246 0.20752 0.626953
+13 9 17 0.165771 0.219238 0.711426
+13 9 18 0 0.230957 0.788574
+13 9 19 0 0.241943 0.855957
+13 9 20 0 0.248779 0.902832
+13 9 21 0 0.245972 0.90918
+13 9 22 0 0.244385 0.915527
+13 9 23 0 0.243896 0.922363
+13 9 24 0 0.243896 0.929199
+13 9 25 0 0.244385 0.937012
+13 9 26 0 0.245361 0.945801
+13 9 27 0 0.246704 0.955566
+13 9 28 0 0.248657 0.967285
+13 9 29 0 0.250977 0.979004
+13 9 30 0 0.253418 0.991699
+13 9 31 0 0.256104 1
+13 10 0 0.496582 0.206055 0
+13 10 1 0.496582 0.206055 0
+13 10 2 0.496582 0.206055 0
+13 10 3 0.496582 0.206177 0
+13 10 4 0.496582 0.206177 0
+13 10 5 0.496582 0.206299 0
+13 10 6 0.496582 0.206543 0
+13 10 7 0.496582 0.207031 0
+13 10 8 0.498047 0.20813 0
+13 10 9 0.503418 0.209229 0.108215
+13 10 10 0.510254 0.209595 0.191162
+13 10 11 0.507812 0.206787 0.269287
+13 10 12 0.458008 0.201782 0.32373
+13 10 13 0.418457 0.20813 0.375732
+13 10 14 0.397705 0.213867 0.454346
+13 10 15 0.361084 0.220825 0.539062
+13 10 16 0.296631 0.229126 0.626953
+13 10 17 0.151367 0.237915 0.711426
+13 10 18 0 0.246826 0.788574
+13 10 19 0 0.255371 0.856445
+13 10 20 0 0.260254 0.903809
+13 10 21 0 0.255371 0.909668
+13 10 22 0 0.252197 0.916016
+13 10 23 0 0.250488 0.922852
+13 10 24 0 0.249634 0.929688
+13 10 25 0 0.24939 0.9375
+13 10 26 0 0.249634 0.946289
+13 10 27 0 0.250488 0.956055
+13 10 28 0 0.251709 0.967285
+13 10 29 0 0.253662 0.979492
+13 10 30 0 0.255859 0.992188
+13 10 31 0 0.258057 1
+13 11 0 0.475586 0.255615 0
+13 11 1 0.475586 0.255615 0
+13 11 2 0.475586 0.255615 0
+13 11 3 0.475586 0.255615 0
+13 11 4 0.475586 0.255615 0
+13 11 5 0.475586 0.255615 0
+13 11 6 0.475342 0.255859 0
+13 11 7 0.475342 0.256104 0
+13 11 8 0.475586 0.256592 0
+13 11 9 0.478516 0.258057 0.120178
+13 11 10 0.483887 0.260742 0.187256
+13 11 11 0.491455 0.263672 0.261719
+13 11 12 0.462402 0.253418 0.328613
+13 11 13 0.412109 0.246704 0.375
+13 11 14 0.390869 0.250732 0.453857
+13 11 15 0.353271 0.255371 0.538574
+13 11 16 0.286377 0.260498 0.626953
+13 11 17 0.118591 0.265869 0.711914
+13 11 18 0 0.27124 0.789062
+13 11 19 0 0.276611 0.856934
+13 11 20 0 0.278809 0.905273
+13 11 21 0 0.270752 0.910645
+13 11 22 0 0.265137 0.916992
+13 11 23 0 0.261475 0.923828
+13 11 24 0 0.259277 0.930664
+13 11 25 0 0.257812 0.937988
+13 11 26 0 0.256836 0.946777
+13 11 27 0 0.256836 0.956543
+13 11 28 0 0.257324 0.967773
+13 11 29 0 0.258301 0.97998
+13 11 30 0 0.259766 0.992676
+13 11 31 0 0.261719 1
+13 12 0 0.450439 0.305908 0.102966
+13 12 1 0.450439 0.305908 0.102966
+13 12 2 0.450439 0.305908 0.102966
+13 12 3 0.450439 0.305908 0.103027
+13 12 4 0.450439 0.305908 0.103027
+13 12 5 0.450439 0.305908 0.103088
+13 12 6 0.450439 0.305908 0.103149
+13 12 7 0.450439 0.306152 0.103271
+13 12 8 0.450684 0.306641 0.103516
+13 12 9 0.448975 0.306641 0.145264
+13 12 10 0.446289 0.306641 0.192993
+13 12 11 0.443604 0.308105 0.248779
+13 12 12 0.446533 0.313721 0.322266
+13 12 13 0.400879 0.296143 0.373535
+13 12 14 0.378418 0.298828 0.452881
+13 12 15 0.339111 0.30127 0.538086
+13 12 16 0.267334 0.303467 0.626953
+13 12 17 0 0.305176 0.711914
+13 12 18 0 0.306641 0.789551
+13 12 19 0 0.307861 0.857422
+13 12 20 0 0.306885 0.907227
+13 12 21 0 0.294189 0.912598
+13 12 22 0 0.285156 0.918457
+13 12 23 0 0.279053 0.925293
+13 12 24 0 0.274658 0.931641
+13 12 25 0 0.27124 0.939453
+13 12 26 0 0.268799 0.947754
+13 12 27 0 0.26709 0.95752
+13 12 28 0 0.266357 0.96875
+13 12 29 0 0.266357 0.980469
+13 12 30 0 0.266846 0.993164
+13 12 31 0 0.267578 1
+13 13 0 0.437744 0.375977 0.122986
+13 13 1 0.437744 0.375977 0.122986
+13 13 2 0.437744 0.375977 0.122986
+13 13 3 0.437744 0.375977 0.122986
+13 13 4 0.437744 0.376221 0.122986
+13 13 5 0.437744 0.376221 0.122986
+13 13 6 0.437744 0.376221 0.122986
+13 13 7 0.437988 0.376465 0.122986
+13 13 8 0.437988 0.376709 0.123047
+13 13 9 0.436279 0.376221 0.149902
+13 13 10 0.431396 0.374756 0.197754
+13 13 11 0.422607 0.371826 0.251221
+13 13 12 0.406738 0.366211 0.310059
+13 13 13 0.380859 0.356445 0.371338
+13 13 14 0.356689 0.35791 0.450928
+13 13 15 0.313721 0.358398 0.537109
+13 13 16 0.22998 0.358154 0.626465
+13 13 17 0 0.356201 0.711914
+13 13 18 0 0.353516 0.790039
+13 13 19 0 0.350586 0.858398
+13 13 20 0 0.345947 0.910645
+13 13 21 0 0.327637 0.915527
+13 13 22 0 0.314209 0.921387
+13 13 23 0 0.304443 0.927246
+13 13 24 0 0.297363 0.934082
+13 13 25 0 0.29126 0.941406
+13 13 26 0 0.286621 0.949707
+13 13 27 0 0.282715 0.958984
+13 13 28 0 0.280273 0.970215
+13 13 29 0 0.278564 0.981934
+13 13 30 0 0.277344 0.994141
+13 13 31 0 0.2771 1
+13 14 0 0.390869 0.439453 0.117798
+13 14 1 0.390869 0.439453 0.117798
+13 14 2 0.390869 0.439453 0.117798
+13 14 3 0.390869 0.439453 0.117798
+13 14 4 0.390869 0.439453 0.117798
+13 14 5 0.390869 0.439453 0.117798
+13 14 6 0.391113 0.439453 0.117798
+13 14 7 0.391113 0.439453 0.117859
+13 14 8 0.391113 0.439697 0.117859
+13 14 9 0.390625 0.439697 0.127197
+13 14 10 0.38623 0.438232 0.18103
+13 14 11 0.378174 0.435303 0.237183
+13 14 12 0.364014 0.43042 0.29834
+13 14 13 0.344727 0.427002 0.366943
+13 14 14 0.31665 0.42749 0.44751
+13 14 15 0.264404 0.426758 0.53418
+13 14 16 0.13208 0.424316 0.625
+13 14 17 0 0.419189 0.711426
+13 14 18 0 0.412598 0.790527
+13 14 19 0 0.405273 0.859375
+13 14 20 0 0.397461 0.915527
+13 14 21 0 0.372803 0.919922
+13 14 22 0 0.354004 0.925293
+13 14 23 0 0.339844 0.931152
+13 14 24 0 0.329102 0.9375
+13 14 25 0 0.319824 0.944336
+13 14 26 0 0.312012 0.952637
+13 14 27 0 0.305664 0.961914
+13 14 28 0 0.300537 0.972168
+13 14 29 0 0.296387 0.983887
+13 14 30 0 0.293213 0.996094
+13 14 31 0 0.291016 1
+13 15 0 0.318848 0.507812 0.112
+13 15 1 0.318848 0.507812 0.112
+13 15 2 0.318848 0.507812 0.112
+13 15 3 0.318848 0.507812 0.112
+13 15 4 0.319092 0.507812 0.112
+13 15 5 0.319092 0.507812 0.112
+13 15 6 0.319092 0.507812 0.112061
+13 15 7 0.319092 0.507812 0.112061
+13 15 8 0.319092 0.507812 0.112122
+13 15 9 0.319336 0.508301 0.112183
+13 15 10 0.316406 0.507812 0.157227
+13 15 11 0.309082 0.506836 0.220093
+13 15 12 0.296143 0.505859 0.286377
+13 15 13 0.27417 0.505371 0.359619
+13 15 14 0.233032 0.505859 0.441162
+13 15 15 0.128052 0.504395 0.529297
+13 15 16 0 0.500488 0.621094
+13 15 17 0 0.49292 0.709961
+13 15 18 0 0.482666 0.790039
+13 15 19 0 0.471436 0.859863
+13 15 20 0 0.459473 0.91748
+13 15 21 0 0.429688 0.926758
+13 15 22 0 0.405029 0.932129
+13 15 23 0 0.385986 0.9375
+13 15 24 0 0.371094 0.943359
+13 15 25 0 0.35791 0.949707
+13 15 26 0 0.346436 0.95752
+13 15 27 0 0.336426 0.96582
+13 15 28 0 0.328369 0.976074
+13 15 29 0 0.321289 0.987305
+13 15 30 0 0.31543 0.999023
+13 15 31 0 0.310791 1
+13 16 0 0.161255 0.587402 0.10675
+13 16 1 0.161255 0.587402 0.10675
+13 16 2 0.161377 0.587402 0.10675
+13 16 3 0.161377 0.587402 0.10675
+13 16 4 0.161377 0.587402 0.10675
+13 16 5 0.161377 0.587402 0.10675
+13 16 6 0.161499 0.587402 0.10675
+13 16 7 0.161621 0.587891 0.106812
+13 16 8 0.161987 0.587891 0.106812
+13 16 9 0.16272 0.587891 0.106873
+13 16 10 0.162231 0.588379 0.118835
+13 16 11 0.142212 0.588379 0.197998
+13 16 12 0.0900879 0.588867 0.270508
+13 16 13 0 0.589355 0.347168
+13 16 14 0 0.589844 0.430908
+13 16 15 0 0.588867 0.520508
+13 16 16 0 0.583984 0.614258
+13 16 17 0 0.575195 0.705078
+13 16 18 0 0.562988 0.787598
+13 16 19 0 0.54834 0.859375
+13 16 20 0 0.532227 0.918457
+13 16 21 0 0.498779 0.935059
+13 16 22 0 0.468018 0.941406
+13 16 23 0 0.443604 0.947266
+13 16 24 0 0.423828 0.952148
+13 16 25 0 0.40625 0.958496
+13 16 26 0 0.390381 0.965332
+13 16 27 0 0.376465 0.973145
+13 16 28 0 0.364502 0.982422
+13 16 29 0 0.354004 0.992676
+13 16 30 0 0.344971 1
+13 16 31 0 0.337158 1
+13 17 0 0 0.669434 0.100281
+13 17 1 0 0.669434 0.100281
+13 17 2 0 0.669434 0.100281
+13 17 3 0 0.669434 0.100281
+13 17 4 0 0.669434 0.100281
+13 17 5 0 0.669434 0.100281
+13 17 6 0 0.669434 0.100281
+13 17 7 0 0.669434 0.100281
+13 17 8 0 0.669434 0.100342
+13 17 9 0 0.669434 0.100403
+13 17 10 0 0.669922 0.100525
+13 17 11 0 0.67041 0.163574
+13 17 12 0 0.671387 0.248047
+13 17 13 0 0.672852 0.329346
+13 17 14 0 0.673828 0.415283
+13 17 15 0 0.67334 0.506836
+13 17 16 0 0.669922 0.602539
+13 17 17 0 0.661133 0.695801
+13 17 18 0 0.647461 0.781738
+13 17 19 0 0.630859 0.856445
+13 17 20 0 0.611816 0.91748
+13 17 21 0 0.577148 0.943848
+13 17 22 0 0.541016 0.953613
+13 17 23 0 0.51123 0.960449
+13 17 24 0 0.486572 0.96582
+13 17 25 0 0.464111 0.970703
+13 17 26 0 0.443604 0.976562
+13 17 27 0 0.425049 0.983398
+13 17 28 0 0.408691 0.991211
+13 17 29 0 0.394043 1
+13 17 30 0 0.381348 1
+13 17 31 0 0.369873 1
+13 18 0 0 0.746094 0.0919189
+13 18 1 0 0.746094 0.0919189
+13 18 2 0 0.746094 0.0919189
+13 18 3 0 0.746094 0.0919189
+13 18 4 0 0.746094 0.0919189
+13 18 5 0 0.746094 0.0919189
+13 18 6 0 0.746094 0.0919189
+13 18 7 0 0.746094 0.0919189
+13 18 8 0 0.746094 0.09198
+13 18 9 0 0.746094 0.092041
+13 18 10 0 0.746094 0.0922241
+13 18 11 0 0.746582 0.0982666
+13 18 12 0 0.748047 0.216553
+13 18 13 0 0.75 0.305176
+13 18 14 0 0.751953 0.394287
+13 18 15 0 0.75293 0.487549
+13 18 16 0 0.750977 0.584961
+13 18 17 0 0.744141 0.681641
+13 18 18 0 0.731934 0.770996
+13 18 19 0 0.714355 0.849121
+13 18 20 0 0.693848 0.913086
+13 18 21 0 0.660156 0.950195
+13 18 22 0 0.621582 0.967285
+13 18 23 0 0.587402 0.976562
+13 18 24 0 0.557617 0.98291
+13 18 25 0 0.530273 0.987793
+13 18 26 0 0.504395 0.992676
+13 18 27 0 0.480713 0.998047
+13 18 28 0 0.459473 1
+13 18 29 0 0.44043 1
+13 18 30 0 0.42334 1
+13 18 31 0 0.407959 1
+13 19 0 0 0.814941 0.081604
+13 19 1 0 0.814941 0.081604
+13 19 2 0 0.814941 0.081604
+13 19 3 0 0.814941 0.081604
+13 19 4 0 0.814941 0.081604
+13 19 5 0 0.814941 0.081604
+13 19 6 0 0.814941 0.081604
+13 19 7 0 0.814941 0.081665
+13 19 8 0 0.814941 0.0817261
+13 19 9 0 0.814941 0.0817871
+13 19 10 0 0.814941 0.0819702
+13 19 11 0 0.81543 0.0822144
+13 19 12 0 0.816406 0.172852
+13 19 13 0 0.818848 0.275879
+13 19 14 0 0.821289 0.369141
+13 19 15 0 0.82373 0.464111
+13 19 16 0 0.82373 0.562988
+13 19 17 0 0.819824 0.661621
+13 19 18 0 0.80957 0.754395
+13 19 19 0 0.793457 0.836426
+13 19 20 0 0.772461 0.904297
+13 19 21 0 0.742188 0.95166
+13 19 22 0 0.70459 0.978516
+13 19 23 0 0.66748 0.993652
+13 19 24 0 0.634277 1
+13 19 25 0 0.601562 1
+13 19 26 0 0.570801 1
+13 19 27 0 0.541992 1
+13 19 28 0 0.515625 1
+13 19 29 0 0.491455 1
+13 19 30 0 0.469727 1
+13 19 31 0 0.450195 1
+13 20 0 0 0.874023 0.0689697
+13 20 1 0 0.874023 0.0689697
+13 20 2 0 0.874023 0.0689697
+13 20 3 0 0.874023 0.0689697
+13 20 4 0 0.874023 0.0689697
+13 20 5 0 0.874023 0.0690308
+13 20 6 0 0.874512 0.0690308
+13 20 7 0 0.874512 0.0690308
+13 20 8 0 0.874512 0.0690918
+13 20 9 0 0.874512 0.0692139
+13 20 10 0 0.874512 0.069397
+13 20 11 0 0.874512 0.0697632
+13 20 12 0 0.875 0.0968628
+13 20 13 0 0.877441 0.241455
+13 20 14 0 0.880859 0.341309
+13 20 15 0 0.884277 0.438477
+13 20 16 0 0.88623 0.538574
+13 20 17 0 0.884766 0.638184
+13 20 18 0 0.877441 0.733398
+13 20 19 0 0.86377 0.818359
+13 20 20 0 0.844238 0.890137
+13 20 21 0 0.817871 0.946777
+13 20 22 0 0.78418 0.984375
+13 20 23 0 0.747559 1
+13 20 24 0 0.711914 1
+13 20 25 0 0.675781 1
+13 20 26 0 0.640137 1
+13 20 27 0 0.606445 1
+13 20 28 0 0.574707 1
+13 20 29 0 0.54541 1
+13 20 30 0 0.519043 1
+13 20 31 0 0.494873 1
+13 21 0 0 0.924805 0.0517578
+13 21 1 0 0.924805 0.0517578
+13 21 2 0 0.924805 0.0517578
+13 21 3 0 0.924805 0.0517578
+13 21 4 0 0.924805 0.0517578
+13 21 5 0 0.924805 0.0517578
+13 21 6 0 0.924805 0.0517883
+13 21 7 0 0.924805 0.0518188
+13 21 8 0 0.924805 0.0519104
+13 21 9 0 0.924805 0.052063
+13 21 10 0 0.924805 0.0523376
+13 21 11 0 0.925293 0.0528259
+13 21 12 0 0.925293 0.0536194
+13 21 13 0 0.927246 0.198486
+13 21 14 0 0.931152 0.310547
+13 21 15 0 0.935059 0.4104
+13 21 16 0 0.938965 0.51123
+13 21 17 0 0.939941 0.611328
+13 21 18 0 0.935547 0.708008
+13 21 19 0 0.925293 0.795898
+13 21 20 0 0.908203 0.870605
+13 21 21 0 0.885742 0.934082
+13 21 22 0 0.856934 0.981445
+13 21 23 0 0.822754 1
+13 21 24 0 0.787598 1
+13 21 25 0 0.749512 1
+13 21 26 0 0.710938 1
+13 21 27 0 0.672852 1
+13 21 28 0 0.63623 1
+13 21 29 0 0.602539 1
+13 21 30 0 0.570801 1
+13 21 31 0 0.54248 1
+13 22 0 0 0.966797 0
+13 22 1 0 0.966797 0
+13 22 2 0 0.966797 0
+13 22 3 0 0.966797 0
+13 22 4 0 0.966797 0
+13 22 5 0 0.966797 0
+13 22 6 0 0.966797 0
+13 22 7 0 0.966797 0
+13 22 8 0 0.966797 0
+13 22 9 0 0.966797 0
+13 22 10 0 0.966797 0.00717926
+13 22 11 0 0.966797 0.0131683
+13 22 12 0 0.967285 0.0183105
+13 22 13 0 0.968262 0.138428
+13 22 14 0 0.972168 0.276611
+13 22 15 0 0.977051 0.380859
+13 22 16 0 0.981934 0.482422
+13 22 17 0 0.984863 0.583008
+13 22 18 0 0.983398 0.679688
+13 22 19 0 0.976562 0.769531
+13 22 20 0 0.962891 0.847168
+13 22 21 0 0.943359 0.914062
+13 22 22 0 0.918945 0.96875
+13 22 23 0 0.889648 1
+13 22 24 0 0.856934 1
+13 22 25 0 0.819336 1
+13 22 26 0 0.779297 1
+13 22 27 0 0.73877 1
+13 22 28 0 0.698242 1
+13 22 29 0 0.660156 1
+13 22 30 0 0.624023 1
+13 22 31 0 0.59082 1
+13 23 0 0 1 0
+13 23 1 0 1 0
+13 23 2 0 1 0
+13 23 3 0 1 0
+13 23 4 0 1 0
+13 23 5 0 1 0
+13 23 6 0 1 0
+13 23 7 0 1 0
+13 23 8 0 1 0
+13 23 9 0 1 0
+13 23 10 0 1 0
+13 23 11 0 1 0
+13 23 12 0 1 0
+13 23 13 0 1 0
+13 23 14 0 1 0.240234
+13 23 15 0 1 0.351318
+13 23 16 0 1 0.453857
+13 23 17 0 1 0.554199
+13 23 18 0 1 0.651367
+13 23 19 0 1 0.741699
+13 23 20 0 1 0.821289
+13 23 21 0 0.990723 0.891113
+13 23 22 0 0.96875 0.949707
+13 23 23 0 0.943848 0.995117
+13 23 24 0 0.915527 1
+13 23 25 0 0.880859 1
+13 23 26 0 0.841797 1
+13 23 27 0 0.799805 1
+13 23 28 0 0.757324 1
+13 23 29 0 0.715332 1
+13 23 30 0 0.675781 1
+13 23 31 0 0.638672 1
+13 24 0 0 1 0
+13 24 1 0 1 0
+13 24 2 0 1 0
+13 24 3 0 1 0
+13 24 4 0 1 0
+13 24 5 0 1 0
+13 24 6 0 1 0
+13 24 7 0 1 0
+13 24 8 0 1 0
+13 24 9 0 1 0
+13 24 10 0 1 0
+13 24 11 0 1 0
+13 24 12 0 1 0
+13 24 13 0 1 0
+13 24 14 0 1 0.199341
+13 24 15 0 1 0.321777
+13 24 16 0 1 0.426025
+13 24 17 0 1 0.525879
+13 24 18 0 1 0.622559
+13 24 19 0 1 0.712891
+13 24 20 0 1 0.793945
+13 24 21 0 1 0.866211
+13 24 22 0 1 0.927246
+13 24 23 0 0.988281 0.977051
+13 24 24 0 0.963867 1
+13 24 25 0 0.933105 1
+13 24 26 0 0.896484 1
+13 24 27 0 0.85498 1
+13 24 28 0 0.812012 1
+13 24 29 0 0.768066 1
+13 24 30 0 0.725098 1
+13 24 31 0 0.68457 1
+13 25 0 0 1 0
+13 25 1 0 1 0
+13 25 2 0 1 0
+13 25 3 0 1 0
+13 25 4 0 1 0
+13 25 5 0 1 0
+13 25 6 0 1 0
+13 25 7 0 1 0
+13 25 8 0 1 0
+13 25 9 0 1 0
+13 25 10 0 1 0
+13 25 11 0 1 0
+13 25 12 0 1 0
+13 25 13 0 1 0
+13 25 14 0 1 0.140747
+13 25 15 0 1 0.28833
+13 25 16 0 1 0.395752
+13 25 17 0 1 0.495605
+13 25 18 0 1 0.591309
+13 25 19 0 1 0.681152
+13 25 20 0 1 0.763184
+13 25 21 0 1 0.836914
+13 25 22 0 1 0.900879
+13 25 23 0 1 0.953613
+13 25 24 0 1 0.996582
+13 25 25 0 0.980957 1
+13 25 26 0 0.948242 1
+13 25 27 0 0.90918 1
+13 25 28 0 0.866211 1
+13 25 29 0 0.821289 1
+13 25 30 0 0.776855 1
+13 25 31 0 0.73291 1
+13 26 0 0 1 0
+13 26 1 0 1 0
+13 26 2 0 1 0
+13 26 3 0 1 0
+13 26 4 0 1 0
+13 26 5 0 1 0
+13 26 6 0 1 0
+13 26 7 0 1 0
+13 26 8 0 1 0
+13 26 9 0 1 0
+13 26 10 0 1 0
+13 26 11 0 1 0
+13 26 12 0 1 0
+13 26 13 0 1 0
+13 26 14 0 1 0
+13 26 15 0 1 0.249878
+13 26 16 0 1 0.363281
+13 26 17 0 1 0.463135
+13 26 18 0 1 0.557617
+13 26 19 0 1 0.646973
+13 26 20 0 1 0.728516
+13 26 21 0 1 0.803223
+13 26 22 0 1 0.869629
+13 26 23 0 1 0.925293
+13 26 24 0 1 0.97168
+13 26 25 0 1 1
+13 26 26 0 0.995605 1
+13 26 27 0 0.960449 1
+13 26 28 0 0.919434 1
+13 26 29 0 0.875 1
+13 26 30 0 0.829102 1
+13 26 31 0 0.783203 1
+13 27 0 0 1 0
+13 27 1 0 1 0
+13 27 2 0 1 0
+13 27 3 0 1 0
+13 27 4 0 1 0
+13 27 5 0 1 0
+13 27 6 0 1 0
+13 27 7 0 1 0
+13 27 8 0 1 0
+13 27 9 0 1 0
+13 27 10 0 1 0
+13 27 11 0 1 0
+13 27 12 0 1 0
+13 27 13 0 1 0
+13 27 14 0 1 0
+13 27 15 0 1 0.202637
+13 27 16 0 1 0.327637
+13 27 17 0 1 0.428955
+13 27 18 0 1 0.522949
+13 27 19 0 1 0.61084
+13 27 20 0 1 0.691895
+13 27 21 0 1 0.766602
+13 27 22 0 1 0.833984
+13 27 23 0 1 0.891602
+13 27 24 0 1 0.940918
+13 27 25 0 1 0.986328
+13 27 26 0 1 1
+13 27 27 0 1 1
+13 27 28 0 0.969727 1
+13 27 29 0 0.926758 1
+13 27 30 0 0.880859 1
+13 27 31 0 0.833984 1
+13 28 0 0 1 0
+13 28 1 0 1 0
+13 28 2 0 1 0
+13 28 3 0 1 0
+13 28 4 0 1 0
+13 28 5 0 1 0
+13 28 6 0 1 0
+13 28 7 0 1 0
+13 28 8 0 1 0
+13 28 9 0 1 0
+13 28 10 0 1 0
+13 28 11 0 1 0
+13 28 12 0 1 0
+13 28 13 0 1 0
+13 28 14 0 1 0
+13 28 15 0 1 0.133667
+13 28 16 0 1 0.288574
+13 28 17 0 1 0.393066
+13 28 18 0 1 0.486084
+13 28 19 0 1 0.572754
+13 28 20 0 1 0.652344
+13 28 21 0 1 0.727051
+13 28 22 0 1 0.794922
+13 28 23 0 1 0.854004
+13 28 24 0 1 0.905273
+13 28 25 0 1 0.953613
+13 28 26 0 1 0.998535
+13 28 27 0 1 1
+13 28 28 0 1 1
+13 28 29 0 0.975586 1
+13 28 30 0 0.931641 1
+13 28 31 0 0.885254 1
+13 29 0 0 1 0
+13 29 1 0 1 0
+13 29 2 0 1 0
+13 29 3 0 1 0
+13 29 4 0 1 0
+13 29 5 0 1 0
+13 29 6 0 1 0
+13 29 7 0 1 0
+13 29 8 0 1 0
+13 29 9 0 1 0
+13 29 10 0 1 0
+13 29 11 0 1 0
+13 29 12 0 1 0
+13 29 13 0 1 0
+13 29 14 0 1 0
+13 29 15 0 1 0
+13 29 16 0 1 0.243774
+13 29 17 0 1 0.354492
+13 29 18 0 1 0.447754
+13 29 19 0 1 0.532715
+13 29 20 0 1 0.611328
+13 29 21 0 1 0.68457
+13 29 22 0 1 0.751953
+13 29 23 0 1 0.812012
+13 29 24 0 1 0.864746
+13 29 25 0 1 0.915039
+13 29 26 0 1 0.963379
+13 29 27 0 1 1
+13 29 28 0 1 1
+13 29 29 0 1 1
+13 29 30 0 0.97998 1
+13 29 31 0 0.935547 1
+13 30 0 0 1 0
+13 30 1 0 1 0
+13 30 2 0 1 0
+13 30 3 0 1 0
+13 30 4 0 1 0
+13 30 5 0 1 0
+13 30 6 0 1 0
+13 30 7 0 1 0
+13 30 8 0 1 0
+13 30 9 0 1 0
+13 30 10 0 1 0
+13 30 11 0 1 0
+13 30 12 0 1 0
+13 30 13 0 1 0
+13 30 14 0 1 0
+13 30 15 0 1 0
+13 30 16 0 1 0.18811
+13 30 17 0 1 0.313232
+13 30 18 0 1 0.407715
+13 30 19 0 1 0.491699
+13 30 20 0 1 0.567871
+13 30 21 0 1 0.640137
+13 30 22 0 1 0.706543
+13 30 23 0 1 0.766113
+13 30 24 0 1 0.819336
+13 30 25 0 1 0.871582
+13 30 26 0 1 0.921875
+13 30 27 0 1 0.969238
+13 30 28 0 1 1
+13 30 29 0 1 1
+13 30 30 0 1 1
+13 30 31 0 0.983887 1
+13 31 0 0 1 0
+13 31 1 0 1 0
+13 31 2 0 1 0
+13 31 3 0 1 0
+13 31 4 0 1 0
+13 31 5 0 1 0
+13 31 6 0 1 0
+13 31 7 0 1 0
+13 31 8 0 1 0
+13 31 9 0 1 0
+13 31 10 0 1 0
+13 31 11 0 1 0
+13 31 12 0 1 0
+13 31 13 0 1 0
+13 31 14 0 1 0
+13 31 15 0 1 0
+13 31 16 0 1 0.09375
+13 31 17 0 1 0.267822
+13 31 18 0 1 0.366211
+13 31 19 0 1 0.449463
+13 31 20 0 1 0.523926
+13 31 21 0 1 0.59375
+13 31 22 0 1 0.65918
+13 31 23 0 1 0.717773
+13 31 24 0 1 0.770996
+13 31 25 0 1 0.82373
+13 31 26 0 1 0.876465
+13 31 27 0 1 0.926758
+13 31 28 0 1 0.974121
+13 31 29 0 1 1
+13 31 30 0 1 1
+13 31 31 0 1 1
+14 0 0 0.585449 0 0.0350647
+14 0 1 0.585449 0 0.0350647
+14 0 2 0.585449 0 0.0350647
+14 0 3 0.585449 0 0.0350342
+14 0 4 0.585449 0 0.0349731
+14 0 5 0.585449 0 0.0348511
+14 0 6 0.585449 0 0.034668
+14 0 7 0.585449 0 0.0342407
+14 0 8 0.585449 0 0.0334473
+14 0 9 0.588379 0 0.0329285
+14 0 10 0.591309 0 0.151978
+14 0 11 0.592285 0 0.239746
+14 0 12 0.57959 0 0.320068
+14 0 13 0.538086 0.131958 0.382324
+14 0 14 0.514648 0.162598 0.454834
+14 0 15 0.489014 0.174805 0.539551
+14 0 16 0.447998 0.189209 0.62793
+14 0 17 0.384766 0.204224 0.712891
+14 0 18 0.28418 0.218628 0.790527
+14 0 19 0 0.231934 0.858887
+14 0 20 0 0.241821 0.909668
+14 0 21 0 0.240356 0.915039
+14 0 22 0 0.23999 0.920898
+14 0 23 0 0.240234 0.927734
+14 0 24 0 0.241089 0.935059
+14 0 25 0 0.242188 0.942871
+14 0 26 0 0.24353 0.951172
+14 0 27 0 0.245239 0.960449
+14 0 28 0 0.247314 0.971191
+14 0 29 0 0.249756 0.98291
+14 0 30 0 0.252441 0.995117
+14 0 31 0 0.255371 1
+14 1 0 0.585449 0 0.0349731
+14 1 1 0.585449 0 0.0349426
+14 1 2 0.585449 0 0.0349426
+14 1 3 0.585449 0 0.0349121
+14 1 4 0.585449 0 0.0348511
+14 1 5 0.585449 0 0.0347595
+14 1 6 0.585449 0 0.0345459
+14 1 7 0.585449 0 0.0341492
+14 1 8 0.585449 0 0.0333252
+14 1 9 0.588379 0 0.0328064
+14 1 10 0.591309 0 0.151978
+14 1 11 0.592285 0 0.239746
+14 1 12 0.57959 0 0.320068
+14 1 13 0.538086 0.13208 0.382324
+14 1 14 0.514648 0.16272 0.454834
+14 1 15 0.489014 0.174927 0.539551
+14 1 16 0.447998 0.189331 0.62793
+14 1 17 0.384766 0.204224 0.712891
+14 1 18 0.28418 0.21875 0.790527
+14 1 19 0 0.231934 0.858887
+14 1 20 0 0.241821 0.909668
+14 1 21 0 0.240356 0.915039
+14 1 22 0 0.23999 0.920898
+14 1 23 0 0.240356 0.927734
+14 1 24 0 0.241089 0.935547
+14 1 25 0 0.242188 0.942871
+14 1 26 0 0.24353 0.951172
+14 1 27 0 0.245239 0.960449
+14 1 28 0 0.247314 0.971191
+14 1 29 0 0.249756 0.98291
+14 1 30 0 0.252441 0.995117
+14 1 31 0 0.255371 1
+14 2 0 0.585449 0 0.0347595
+14 2 1 0.585449 0 0.0347595
+14 2 2 0.585449 0 0.034729
+14 2 3 0.585449 0 0.0346985
+14 2 4 0.585449 0 0.034668
+14 2 5 0.585449 0 0.0345459
+14 2 6 0.585449 0 0.0343323
+14 2 7 0.585449 0 0.0339355
+14 2 8 0.585449 0 0.0331116
+14 2 9 0.588379 0 0.0325928
+14 2 10 0.591309 0 0.151978
+14 2 11 0.592285 0 0.239746
+14 2 12 0.57959 0 0.320068
+14 2 13 0.538086 0.132446 0.382324
+14 2 14 0.514648 0.162842 0.454834
+14 2 15 0.489014 0.175171 0.539551
+14 2 16 0.447998 0.189453 0.62793
+14 2 17 0.384766 0.204346 0.712891
+14 2 18 0.28418 0.21875 0.790527
+14 2 19 0 0.232056 0.858887
+14 2 20 0 0.241943 0.909668
+14 2 21 0 0.240479 0.915039
+14 2 22 0 0.23999 0.920898
+14 2 23 0 0.240356 0.927734
+14 2 24 0 0.241211 0.935547
+14 2 25 0 0.242188 0.942871
+14 2 26 0 0.24353 0.951172
+14 2 27 0 0.245239 0.960449
+14 2 28 0 0.247437 0.971191
+14 2 29 0 0.249756 0.98291
+14 2 30 0 0.252441 0.995117
+14 2 31 0 0.255371 1
+14 3 0 0.585449 0 0.0343933
+14 3 1 0.585449 0 0.0343933
+14 3 2 0.585449 0 0.0343628
+14 3 3 0.585449 0 0.0343323
+14 3 4 0.585449 0 0.0343018
+14 3 5 0.585449 0 0.0341797
+14 3 6 0.585449 0 0.0339661
+14 3 7 0.585449 0 0.0335388
+14 3 8 0.585449 0 0.0327148
+14 3 9 0.588379 0 0.032196
+14 3 10 0.591309 0 0.151855
+14 3 11 0.592285 0 0.239746
+14 3 12 0.57959 0 0.320068
+14 3 13 0.538086 0.132935 0.382324
+14 3 14 0.514648 0.16333 0.454834
+14 3 15 0.489014 0.175415 0.539551
+14 3 16 0.447998 0.189697 0.62793
+14 3 17 0.384766 0.20459 0.712891
+14 3 18 0.28418 0.218994 0.790527
+14 3 19 0 0.232178 0.858887
+14 3 20 0 0.242065 0.910156
+14 3 21 0 0.240479 0.915039
+14 3 22 0 0.240112 0.920898
+14 3 23 0 0.240479 0.927734
+14 3 24 0 0.241211 0.935547
+14 3 25 0 0.24231 0.942871
+14 3 26 0 0.24353 0.951172
+14 3 27 0 0.245239 0.960449
+14 3 28 0 0.247437 0.971191
+14 3 29 0 0.249878 0.98291
+14 3 30 0 0.252441 0.995117
+14 3 31 0 0.255371 1
+14 4 0 0.585449 0 0.0336914
+14 4 1 0.585449 0 0.0336914
+14 4 2 0.585449 0 0.0336609
+14 4 3 0.585449 0 0.0336304
+14 4 4 0.585449 0 0.0335693
+14 4 5 0.585449 0 0.0334778
+14 4 6 0.585449 0 0.0332336
+14 4 7 0.585449 0 0.0328064
+14 4 8 0.585449 0 0.0319214
+14 4 9 0.588379 0 0.0314026
+14 4 10 0.591309 0 0.151855
+14 4 11 0.592285 0 0.239624
+14 4 12 0.57959 0 0.320068
+14 4 13 0.538086 0.134033 0.382324
+14 4 14 0.514648 0.164062 0.454834
+14 4 15 0.489014 0.176147 0.539551
+14 4 16 0.447998 0.190308 0.62793
+14 4 17 0.384521 0.205078 0.712891
+14 4 18 0.283936 0.21936 0.790527
+14 4 19 0 0.232544 0.858887
+14 4 20 0 0.24231 0.910156
+14 4 21 0 0.240723 0.915039
+14 4 22 0 0.240234 0.920898
+14 4 23 0 0.240601 0.927734
+14 4 24 0 0.241333 0.935547
+14 4 25 0 0.242432 0.942871
+14 4 26 0 0.243652 0.951172
+14 4 27 0 0.245361 0.960449
+14 4 28 0 0.247437 0.971191
+14 4 29 0 0.249878 0.98291
+14 4 30 0 0.252441 0.995117
+14 4 31 0 0.255371 1
+14 5 0 0.584961 0 0.0322571
+14 5 1 0.584961 0 0.0322571
+14 5 2 0.584961 0 0.0322266
+14 5 3 0.584961 0 0.032196
+14 5 4 0.584961 0 0.032135
+14 5 5 0.584961 0 0.0320129
+14 5 6 0.584961 0 0.0317688
+14 5 7 0.584961 0 0.031311
+14 5 8 0.584961 0 0.0303497
+14 5 9 0.587891 0 0.0297699
+14 5 10 0.591309 0 0.151611
+14 5 11 0.592285 0 0.239624
+14 5 12 0.57959 0 0.320068
+14 5 13 0.538086 0.135986 0.382324
+14 5 14 0.514648 0.165405 0.454834
+14 5 15 0.489014 0.177368 0.539551
+14 5 16 0.447754 0.191406 0.62793
+14 5 17 0.384521 0.205933 0.712891
+14 5 18 0.283691 0.220093 0.790527
+14 5 19 0 0.233154 0.858887
+14 5 20 0 0.242798 0.910156
+14 5 21 0 0.241089 0.915039
+14 5 22 0 0.240601 0.920898
+14 5 23 0 0.240845 0.927734
+14 5 24 0 0.241577 0.935547
+14 5 25 0 0.242554 0.942871
+14 5 26 0 0.243896 0.951172
+14 5 27 0 0.245483 0.960449
+14 5 28 0 0.247559 0.971191
+14 5 29 0 0.25 0.98291
+14 5 30 0 0.252686 0.995117
+14 5 31 0 0.255371 1
+14 6 0 0.584961 0 0.0291748
+14 6 1 0.584961 0 0.0291595
+14 6 2 0.584961 0 0.0291443
+14 6 3 0.584961 0 0.0290985
+14 6 4 0.584961 0 0.0290222
+14 6 5 0.584961 0 0.0288849
+14 6 6 0.584961 0 0.028595
+14 6 7 0.584961 0 0.0280457
+14 6 8 0.584961 0 0.0269012
+14 6 9 0.587891 0 0.0261688
+14 6 10 0.591309 0 0.151367
+14 6 11 0.591797 0 0.23938
+14 6 12 0.57959 0 0.320068
+14 6 13 0.538086 0.139648 0.382568
+14 6 14 0.51416 0.168091 0.45459
+14 6 15 0.48877 0.179688 0.539551
+14 6 16 0.44751 0.193359 0.62793
+14 6 17 0.384277 0.207642 0.712891
+14 6 18 0.283447 0.221436 0.791016
+14 6 19 0 0.234253 0.858887
+14 6 20 0 0.243774 0.910156
+14 6 21 0 0.241943 0.915039
+14 6 22 0 0.241211 0.920898
+14 6 23 0 0.241333 0.928223
+14 6 24 0 0.242065 0.935547
+14 6 25 0 0.24292 0.943359
+14 6 26 0 0.244141 0.951172
+14 6 27 0 0.245728 0.960449
+14 6 28 0 0.247803 0.971191
+14 6 29 0 0.250244 0.98291
+14 6 30 0 0.25293 0.995117
+14 6 31 0 0.255615 1
+14 7 0 0.584473 0 0.020874
+14 7 1 0.584473 0 0.0208435
+14 7 2 0.584473 0 0.020813
+14 7 3 0.584473 0 0.020752
+14 7 4 0.584473 0 0.0206146
+14 7 5 0.584473 0 0.0203705
+14 7 6 0.584473 0 0.0198669
+14 7 7 0.584473 0 0.0188599
+14 7 8 0.584473 0 0.0165558
+14 7 9 0.587402 0 0.0147629
+14 7 10 0.59082 0 0.150757
+14 7 11 0.591797 0 0.239136
+14 7 12 0.57959 0 0.320068
+14 7 13 0.537598 0.146362 0.382568
+14 7 14 0.513672 0.173218 0.45459
+14 7 15 0.488281 0.184082 0.539551
+14 7 16 0.447266 0.197144 0.62793
+14 7 17 0.383789 0.210815 0.712891
+14 7 18 0.282715 0.224121 0.791016
+14 7 19 0 0.23645 0.858887
+14 7 20 0 0.245605 0.910156
+14 7 21 0 0.243408 0.915039
+14 7 22 0 0.242432 0.921387
+14 7 23 0 0.242432 0.928223
+14 7 24 0 0.24292 0.935547
+14 7 25 0 0.243774 0.943359
+14 7 26 0 0.244873 0.95166
+14 7 27 0 0.246338 0.960938
+14 7 28 0 0.248291 0.97168
+14 7 29 0 0.250732 0.98291
+14 7 30 0 0.253174 0.995117
+14 7 31 0 0.255859 1
+14 8 0 0.583984 0.0802002 0
+14 8 1 0.583984 0.0802612 0
+14 8 2 0.583984 0.0803223 0
+14 8 3 0.583984 0.0805054 0
+14 8 4 0.583984 0.0807495 0
+14 8 5 0.583984 0.0812988 0
+14 8 6 0.583984 0.0823364 0
+14 8 7 0.583984 0.0842285 0
+14 8 8 0.583984 0.0877686 0
+14 8 9 0.586426 0.0901489 0
+14 8 10 0.590332 0.0836182 0.149658
+14 8 11 0.59082 0.0744019 0.238525
+14 8 12 0.57959 0.0872192 0.319824
+14 8 13 0.537598 0.158325 0.382568
+14 8 14 0.513184 0.182373 0.45459
+14 8 15 0.487549 0.192383 0.539551
+14 8 16 0.446289 0.204224 0.62793
+14 8 17 0.382812 0.216675 0.712891
+14 8 18 0.28125 0.229004 0.791016
+14 8 19 0 0.240601 0.858887
+14 8 20 0 0.249023 0.910156
+14 8 21 0 0.246216 0.915527
+14 8 22 0 0.244751 0.921387
+14 8 23 0 0.244385 0.928223
+14 8 24 0 0.244629 0.935547
+14 8 25 0 0.245239 0.943359
+14 8 26 0 0.246094 0.95166
+14 8 27 0 0.247437 0.960938
+14 8 28 0 0.249268 0.97168
+14 8 29 0 0.251465 0.98291
+14 8 30 0 0.253906 0.995117
+14 8 31 0 0.256592 1
+14 9 0 0.582031 0.137085 0
+14 9 1 0.582031 0.137085 0
+14 9 2 0.582031 0.137207 0
+14 9 3 0.582031 0.137207 0
+14 9 4 0.582031 0.137329 0
+14 9 5 0.582031 0.137573 0
+14 9 6 0.582031 0.137939 0
+14 9 7 0.582031 0.138794 0
+14 9 8 0.582031 0.140503 0
+14 9 9 0.584961 0.141846 0
+14 9 10 0.588379 0.139038 0.148071
+14 9 11 0.589844 0.134521 0.237305
+14 9 12 0.580078 0.136108 0.31958
+14 9 13 0.537109 0.178101 0.383057
+14 9 14 0.511719 0.198242 0.454346
+14 9 15 0.486084 0.206665 0.539062
+14 9 16 0.444824 0.216797 0.62793
+14 9 17 0.380859 0.227539 0.713379
+14 9 18 0.27832 0.238159 0.791016
+14 9 19 0 0.248169 0.858887
+14 9 20 0 0.255615 0.910645
+14 9 21 0 0.251465 0.915527
+14 9 22 0 0.249268 0.921875
+14 9 23 0 0.248169 0.928711
+14 9 24 0 0.247925 0.936035
+14 9 25 0 0.247925 0.943359
+14 9 26 0 0.248535 0.95166
+14 9 27 0 0.249512 0.960938
+14 9 28 0 0.250977 0.97168
+14 9 29 0 0.25293 0.983398
+14 9 30 0 0.255127 0.995605
+14 9 31 0 0.257568 1
+14 10 0 0.578125 0.19043 0
+14 10 1 0.578125 0.19043 0
+14 10 2 0.578125 0.19043 0
+14 10 3 0.578125 0.19043 0
+14 10 4 0.578125 0.190552 0
+14 10 5 0.578125 0.190674 0
+14 10 6 0.578125 0.190918 0
+14 10 7 0.578125 0.191406 0
+14 10 8 0.578125 0.192383 0
+14 10 9 0.580566 0.193604 0
+14 10 10 0.583984 0.192261 0.146606
+14 10 11 0.586914 0.189331 0.234863
+14 10 12 0.579102 0.187256 0.318604
+14 10 13 0.536621 0.207275 0.383545
+14 10 14 0.509277 0.222656 0.454102
+14 10 15 0.483398 0.229248 0.539062
+14 10 16 0.441895 0.237061 0.62793
+14 10 17 0.377197 0.245239 0.713379
+14 10 18 0.272705 0.253418 0.791016
+14 10 19 0 0.26123 0.859375
+14 10 20 0 0.266846 0.911621
+14 10 21 0 0.260742 0.916504
+14 10 22 0 0.25708 0.922363
+14 10 23 0 0.254883 0.929199
+14 10 24 0 0.253662 0.936523
+14 10 25 0 0.25293 0.943848
+14 10 26 0 0.252686 0.952148
+14 10 27 0 0.253174 0.960938
+14 10 28 0 0.25415 0.97168
+14 10 29 0 0.255859 0.983398
+14 10 30 0 0.257568 0.995605
+14 10 31 0 0.259766 1
+14 11 0 0.569336 0.246826 0
+14 11 1 0.569336 0.246826 0
+14 11 2 0.569336 0.246826 0
+14 11 3 0.569336 0.246826 0
+14 11 4 0.569336 0.246826 0
+14 11 5 0.569336 0.246948 0
+14 11 6 0.569336 0.24707 0
+14 11 7 0.569336 0.247437 0
+14 11 8 0.569336 0.247925 0
+14 11 9 0.570801 0.249023 0
+14 11 10 0.574219 0.249023 0.148804
+14 11 11 0.578125 0.248291 0.231567
+14 11 12 0.574219 0.245483 0.315674
+14 11 13 0.535645 0.247925 0.384766
+14 11 14 0.504395 0.257324 0.453613
+14 11 15 0.478516 0.261963 0.538574
+14 11 16 0.436523 0.26709 0.62793
+14 11 17 0.371094 0.272217 0.713379
+14 11 18 0.262939 0.2771 0.791504
+14 11 19 0 0.281982 0.859375
+14 11 20 0 0.285156 0.912598
+14 11 21 0 0.275879 0.91748
+14 11 22 0 0.269775 0.923828
+14 11 23 0 0.265869 0.930664
+14 11 24 0 0.263184 0.937012
+14 11 25 0 0.26123 0.944336
+14 11 26 0 0.26001 0.952637
+14 11 27 0 0.259521 0.961426
+14 11 28 0 0.259766 0.972168
+14 11 29 0 0.260498 0.983887
+14 11 30 0 0.261719 0.996094
+14 11 31 0 0.263184 1
+14 12 0 0.553711 0.305664 0
+14 12 1 0.553711 0.305664 0
+14 12 2 0.553711 0.305664 0
+14 12 3 0.553711 0.305664 0
+14 12 4 0.553711 0.305664 0
+14 12 5 0.553711 0.305664 0
+14 12 6 0.553711 0.305664 0
+14 12 7 0.553711 0.305908 0
+14 12 8 0.553711 0.306396 0
+14 12 9 0.553711 0.306885 0.0869751
+14 12 10 0.554688 0.307617 0.162842
+14 12 11 0.556641 0.308838 0.231201
+14 12 12 0.559082 0.30957 0.309326
+14 12 13 0.534668 0.303223 0.386719
+14 12 14 0.496582 0.303467 0.452637
+14 12 15 0.470215 0.306152 0.538086
+14 12 16 0.427246 0.308594 0.627441
+14 12 17 0.359619 0.310303 0.713379
+14 12 18 0.244141 0.311523 0.791504
+14 12 19 0 0.312744 0.859863
+14 12 20 0 0.312744 0.914551
+14 12 21 0 0.299316 0.919922
+14 12 22 0 0.290039 0.925781
+14 12 23 0 0.283203 0.932129
+14 12 24 0 0.27832 0.937988
+14 12 25 0 0.274658 0.945312
+14 12 26 0 0.271729 0.953613
+14 12 27 0 0.269775 0.962402
+14 12 28 0 0.268799 0.973145
+14 12 29 0 0.268311 0.984375
+14 12 30 0 0.268555 0.996582
+14 12 31 0 0.269287 1
+14 13 0 0.537109 0.369141 0.129272
+14 13 1 0.537109 0.369141 0.129272
+14 13 2 0.537109 0.369141 0.129272
+14 13 3 0.537109 0.369141 0.129272
+14 13 4 0.537109 0.369141 0.129272
+14 13 5 0.537109 0.369385 0.129272
+14 13 6 0.537109 0.369385 0.129395
+14 13 7 0.537109 0.369385 0.129395
+14 13 8 0.537598 0.369629 0.129639
+14 13 9 0.537109 0.370117 0.137695
+14 13 10 0.534668 0.369629 0.186768
+14 13 11 0.529785 0.369141 0.241211
+14 13 12 0.522949 0.368652 0.303955
+14 13 13 0.518066 0.369873 0.380615
+14 13 14 0.482666 0.361084 0.450684
+14 13 15 0.455566 0.362061 0.536621
+14 13 16 0.411133 0.362061 0.626953
+14 13 17 0.3396 0.360352 0.713379
+14 13 18 0.207031 0.357666 0.791992
+14 13 19 0 0.354736 0.86084
+14 13 20 0 0.351074 0.91748
+14 13 21 0 0.332764 0.922852
+14 13 22 0 0.318848 0.928223
+14 13 23 0 0.308594 0.934082
+14 13 24 0 0.301025 0.939941
+14 13 25 0 0.294678 0.946777
+14 13 26 0 0.289551 0.955078
+14 13 27 0 0.2854 0.963867
+14 13 28 0 0.282471 0.974121
+14 13 29 0 0.280518 0.98584
+14 13 30 0 0.279297 0.997559
+14 13 31 0 0.278564 1
+14 14 0 0.523438 0.449463 0.146973
+14 14 1 0.523438 0.449463 0.146973
+14 14 2 0.523438 0.449463 0.146973
+14 14 3 0.523438 0.449463 0.146973
+14 14 4 0.523438 0.449463 0.146973
+14 14 5 0.523438 0.449463 0.146973
+14 14 6 0.523438 0.449707 0.146973
+14 14 7 0.523438 0.449707 0.146973
+14 14 8 0.523438 0.449951 0.146973
+14 14 9 0.523438 0.450195 0.147095
+14 14 10 0.520996 0.449707 0.189453
+14 14 11 0.515137 0.448242 0.245605
+14 14 12 0.504883 0.445312 0.30835
+14 14 13 0.487549 0.439453 0.376465
+14 14 14 0.45874 0.429443 0.447266
+14 14 15 0.430176 0.428955 0.53418
+14 14 16 0.382812 0.427002 0.625
+14 14 17 0.302979 0.422363 0.712402
+14 14 18 0.0975342 0.416016 0.791992
+14 14 19 0 0.408691 0.861328
+14 14 20 0 0.401123 0.918457
+14 14 21 0 0.377441 0.926758
+14 14 22 0 0.358154 0.931641
+14 14 23 0 0.34375 0.9375
+14 14 24 0 0.33252 0.943359
+14 14 25 0 0.322998 0.949707
+14 14 26 0 0.314941 0.95752
+14 14 27 0 0.308105 0.966309
+14 14 28 0 0.302734 0.976562
+14 14 29 0 0.29834 0.987305
+14 14 30 0 0.294922 0.999023
+14 14 31 0 0.29248 1
+14 15 0 0.472168 0.520508 0.141357
+14 15 1 0.472168 0.520508 0.141357
+14 15 2 0.472168 0.520508 0.141357
+14 15 3 0.472168 0.520508 0.141357
+14 15 4 0.472168 0.520508 0.141357
+14 15 5 0.472168 0.520508 0.141357
+14 15 6 0.472168 0.520508 0.141357
+14 15 7 0.472168 0.520508 0.141357
+14 15 8 0.472168 0.520508 0.141357
+14 15 9 0.472412 0.520996 0.141479
+14 15 10 0.470947 0.520508 0.166382
+14 15 11 0.465576 0.519043 0.227783
+14 15 12 0.456055 0.516113 0.292969
+14 15 13 0.440186 0.510742 0.363281
+14 15 14 0.417725 0.506836 0.441162
+14 15 15 0.385986 0.505859 0.529297
+14 15 16 0.331055 0.502441 0.621582
+14 15 17 0.22583 0.495361 0.710449
+14 15 18 0 0.485596 0.791504
+14 15 19 0 0.474365 0.861816
+14 15 20 0 0.462402 0.919922
+14 15 21 0 0.434082 0.932617
+14 15 22 0 0.408691 0.9375
+14 15 23 0 0.389404 0.942871
+14 15 24 0 0.374023 0.948242
+14 15 25 0 0.36084 0.95459
+14 15 26 0 0.349121 0.961914
+14 15 27 0 0.338867 0.970215
+14 15 28 0 0.330322 0.97998
+14 15 29 0 0.323242 0.990723
+14 15 30 0 0.317139 1
+14 15 31 0 0.312256 1
+14 16 0 0.394775 0.593262 0.134521
+14 16 1 0.394775 0.593262 0.134521
+14 16 2 0.394775 0.593262 0.134521
+14 16 3 0.394775 0.593262 0.134521
+14 16 4 0.394775 0.593262 0.134521
+14 16 5 0.394775 0.593262 0.134521
+14 16 6 0.39502 0.593262 0.134521
+14 16 7 0.39502 0.593262 0.134521
+14 16 8 0.39502 0.59375 0.134521
+14 16 9 0.395264 0.59375 0.134521
+14 16 10 0.395508 0.594238 0.134644
+14 16 11 0.390869 0.59375 0.203003
+14 16 12 0.38208 0.592773 0.273926
+14 16 13 0.367432 0.591309 0.348877
+14 16 14 0.343506 0.59082 0.431152
+14 16 15 0.302002 0.589355 0.520996
+14 16 16 0.216797 0.585449 0.614258
+14 16 17 0 0.577148 0.705566
+14 16 18 0 0.564941 0.789062
+14 16 19 0 0.550781 0.861328
+14 16 20 0 0.534668 0.92041
+14 16 21 0 0.502441 0.939453
+14 16 22 0 0.471191 0.945801
+14 16 23 0 0.446533 0.951172
+14 16 24 0 0.426514 0.956543
+14 16 25 0 0.408691 0.962402
+14 16 26 0 0.392822 0.96875
+14 16 27 0 0.378662 0.976562
+14 16 28 0 0.366455 0.985352
+14 16 29 0 0.355713 0.995605
+14 16 30 0 0.346436 1
+14 16 31 0 0.338379 1
+14 17 0 0.262695 0.671875 0.12793
+14 17 1 0.262695 0.671875 0.12793
+14 17 2 0.262695 0.671875 0.12793
+14 17 3 0.262695 0.671875 0.12793
+14 17 4 0.262939 0.671875 0.12793
+14 17 5 0.262939 0.671875 0.128052
+14 17 6 0.262939 0.671875 0.128052
+14 17 7 0.262939 0.671875 0.128052
+14 17 8 0.263184 0.672363 0.128052
+14 17 9 0.263428 0.672363 0.128052
+14 17 10 0.263916 0.672363 0.128174
+14 17 11 0.260498 0.672852 0.168823
+14 17 12 0.246338 0.67334 0.250732
+14 17 13 0.219604 0.673828 0.330811
+14 17 14 0.160767 0.674805 0.416016
+14 17 15 0 0.674316 0.507324
+14 17 16 0 0.67041 0.602539
+14 17 17 0 0.662598 0.696289
+14 17 18 0 0.649414 0.782715
+14 17 19 0 0.632812 0.857422
+14 17 20 0 0.61377 0.918945
+14 17 21 0 0.580078 0.947266
+14 17 22 0 0.543945 0.957031
+14 17 23 0 0.513672 0.963379
+14 17 24 0 0.48877 0.96875
+14 17 25 0 0.466064 0.973633
+14 17 26 0 0.445557 0.979492
+14 17 27 0 0.426758 0.986328
+14 17 28 0 0.4104 0.994141
+14 17 29 0 0.395508 1
+14 17 30 0 0.382568 1
+14 17 31 0 0.371094 1
+14 18 0 0 0.748047 0.120605
+14 18 1 0 0.748047 0.120605
+14 18 2 0 0.748047 0.120605
+14 18 3 0 0.748047 0.120605
+14 18 4 0 0.748047 0.120605
+14 18 5 0 0.748047 0.120605
+14 18 6 0 0.748047 0.120605
+14 18 7 0 0.748047 0.120605
+14 18 8 0 0.748047 0.120667
+14 18 9 0 0.748047 0.120667
+14 18 10 0 0.748535 0.120789
+14 18 11 0 0.748535 0.120911
+14 18 12 0 0.75 0.219727
+14 18 13 0 0.751465 0.307129
+14 18 14 0 0.75293 0.395264
+14 18 15 0 0.753906 0.488037
+14 18 16 0 0.751953 0.585449
+14 18 17 0 0.745117 0.681641
+14 18 18 0 0.73291 0.771484
+14 18 19 0 0.71582 0.850098
+14 18 20 0 0.695312 0.914551
+14 18 21 0 0.662109 0.952148
+14 18 22 0 0.623535 0.969238
+14 18 23 0 0.589355 0.978516
+14 18 24 0 0.55957 0.984863
+14 18 25 0 0.531738 0.989746
+14 18 26 0 0.505859 0.994629
+14 18 27 0 0.482178 1
+14 18 28 0 0.460938 1
+14 18 29 0 0.44165 1
+14 18 30 0 0.424561 1
+14 18 31 0 0.40918 1
+14 19 0 0 0.816895 0.112122
+14 19 1 0 0.816895 0.112122
+14 19 2 0 0.816895 0.112122
+14 19 3 0 0.816895 0.112122
+14 19 4 0 0.816895 0.112122
+14 19 5 0 0.816895 0.112122
+14 19 6 0 0.816895 0.112122
+14 19 7 0 0.816895 0.112183
+14 19 8 0 0.816895 0.112183
+14 19 9 0 0.816895 0.112244
+14 19 10 0 0.817383 0.112305
+14 19 11 0 0.817383 0.112488
+14 19 12 0 0.818359 0.17688
+14 19 13 0 0.820312 0.278076
+14 19 14 0 0.822754 0.370605
+14 19 15 0 0.824707 0.465088
+14 19 16 0 0.824707 0.563965
+14 19 17 0 0.820801 0.662109
+14 19 18 0 0.810547 0.754883
+14 19 19 0 0.794922 0.836914
+14 19 20 0 0.773926 0.905273
+14 19 21 0 0.743652 0.953125
+14 19 22 0 0.706055 0.97998
+14 19 23 0 0.668945 0.994629
+14 19 24 0 0.635742 1
+14 19 25 0 0.603027 1
+14 19 26 0 0.572266 1
+14 19 27 0 0.542969 1
+14 19 28 0 0.516602 1
+14 19 29 0 0.492676 1
+14 19 30 0 0.470947 1
+14 19 31 0 0.451172 1
+14 20 0 0 0.876465 0.102722
+14 20 1 0 0.876465 0.102722
+14 20 2 0 0.876465 0.102722
+14 20 3 0 0.876465 0.102722
+14 20 4 0 0.876465 0.102722
+14 20 5 0 0.876465 0.102722
+14 20 6 0 0.876465 0.102783
+14 20 7 0 0.876465 0.102783
+14 20 8 0 0.876465 0.102783
+14 20 9 0 0.876465 0.102844
+14 20 10 0 0.876465 0.102966
+14 20 11 0 0.876953 0.103149
+14 20 12 0 0.876953 0.10553
+14 20 13 0 0.879395 0.243896
+14 20 14 0 0.882324 0.343018
+14 20 15 0 0.885742 0.439697
+14 20 16 0 0.887695 0.539062
+14 20 17 0 0.885742 0.63916
+14 20 18 0 0.878418 0.733887
+14 20 19 0 0.864746 0.818848
+14 20 20 0 0.845703 0.890625
+14 20 21 0 0.819336 0.947754
+14 20 22 0 0.785156 0.98584
+14 20 23 0 0.748535 1
+14 20 24 0 0.712891 1
+14 20 25 0 0.676758 1
+14 20 26 0 0.641113 1
+14 20 27 0 0.606934 1
+14 20 28 0 0.575684 1
+14 20 29 0 0.546387 1
+14 20 30 0 0.52002 1
+14 20 31 0 0.49585 1
+14 21 0 0 0.927246 0.0921021
+14 21 1 0 0.927246 0.0921021
+14 21 2 0 0.927246 0.0921021
+14 21 3 0 0.927246 0.0921021
+14 21 4 0 0.927246 0.0921021
+14 21 5 0 0.927246 0.0921021
+14 21 6 0 0.927246 0.0921021
+14 21 7 0 0.927246 0.0921631
+14 21 8 0 0.927246 0.0921631
+14 21 9 0 0.927246 0.0922241
+14 21 10 0 0.927246 0.0923462
+14 21 11 0 0.927246 0.0925293
+14 21 12 0 0.927734 0.0928345
+14 21 13 0 0.929199 0.201416
+14 21 14 0 0.933105 0.312256
+14 21 15 0 0.937012 0.411621
+14 21 16 0 0.94043 0.512207
+14 21 17 0 0.940918 0.612305
+14 21 18 0 0.936523 0.708496
+14 21 19 0 0.92627 0.796387
+14 21 20 0 0.90918 0.871582
+14 21 21 0 0.887207 0.93457
+14 21 22 0 0.85791 0.982422
+14 21 23 0 0.824219 1
+14 21 24 0 0.788574 1
+14 21 25 0 0.750488 1
+14 21 26 0 0.711914 1
+14 21 27 0 0.67334 1
+14 21 28 0 0.637207 1
+14 21 29 0 0.603027 1
+14 21 30 0 0.571777 1
+14 21 31 0 0.542969 1
+14 22 0 0 0.969238 0.0801392
+14 22 1 0 0.969238 0.0801392
+14 22 2 0 0.969238 0.0801392
+14 22 3 0 0.969238 0.0801392
+14 22 4 0 0.969238 0.0801392
+14 22 5 0 0.969238 0.0801392
+14 22 6 0 0.969238 0.0801392
+14 22 7 0 0.969238 0.0801392
+14 22 8 0 0.969238 0.0802002
+14 22 9 0 0.969238 0.0802612
+14 22 10 0 0.969238 0.0803833
+14 22 11 0 0.969238 0.0806274
+14 22 12 0 0.969238 0.0809937
+14 22 13 0 0.970215 0.142822
+14 22 14 0 0.974121 0.27832
+14 22 15 0 0.978516 0.382324
+14 22 16 0 0.983398 0.483398
+14 22 17 0 0.98584 0.583496
+14 22 18 0 0.984863 0.680664
+14 22 19 0 0.977539 0.77002
+14 22 20 0 0.963867 0.848145
+14 22 21 0 0.944336 0.915039
+14 22 22 0 0.919922 0.969727
+14 22 23 0 0.890625 1
+14 22 24 0 0.85791 1
+14 22 25 0 0.820312 1
+14 22 26 0 0.780273 1
+14 22 27 0 0.739258 1
+14 22 28 0 0.699219 1
+14 22 29 0 0.660645 1
+14 22 30 0 0.625 1
+14 22 31 0 0.591309 1
+14 23 0 0 1 0.0665283
+14 23 1 0 1 0.0665283
+14 23 2 0 1 0.0665283
+14 23 3 0 1 0.0665283
+14 23 4 0 1 0.0665283
+14 23 5 0 1 0.0665283
+14 23 6 0 1 0.0665894
+14 23 7 0 1 0.0665894
+14 23 8 0 1 0.0666504
+14 23 9 0 1 0.0667114
+14 23 10 0 1 0.0668945
+14 23 11 0 1 0.0671387
+14 23 12 0 1 0.0675659
+14 23 13 0 1 0.0682983
+14 23 14 0 1 0.242188
+14 23 15 0 1 0.352783
+14 23 16 0 1 0.455078
+14 23 17 0 1 0.555176
+14 23 18 0 1 0.651855
+14 23 19 0 1 0.742188
+14 23 20 0 1 0.822266
+14 23 21 0 0.991699 0.89209
+14 23 22 0 0.969727 0.950195
+14 23 23 0 0.944824 0.996094
+14 23 24 0 0.916504 1
+14 23 25 0 0.881836 1
+14 23 26 0 0.842773 1
+14 23 27 0 0.800293 1
+14 23 28 0 0.757812 1
+14 23 29 0 0.716309 1
+14 23 30 0 0.67627 1
+14 23 31 0 0.63916 1
+14 24 0 0 1 0.0492859
+14 24 1 0 1 0.0492859
+14 24 2 0 1 0.0492859
+14 24 3 0 1 0.0492859
+14 24 4 0 1 0.0492859
+14 24 5 0 1 0.0493164
+14 24 6 0 1 0.0493164
+14 24 7 0 1 0.0493469
+14 24 8 0 1 0.049408
+14 24 9 0 1 0.04953
+14 24 10 0 1 0.0497742
+14 24 11 0 1 0.0501404
+14 24 12 0 1 0.0508118
+14 24 13 0 1 0.0518494
+14 24 14 0 1 0.201538
+14 24 15 0 1 0.322998
+14 24 16 0 1 0.427246
+14 24 17 0 1 0.526855
+14 24 18 0 1 0.623535
+14 24 19 0 1 0.713867
+14 24 20 0 1 0.794922
+14 24 21 0 1 0.866699
+14 24 22 0 1 0.928223
+14 24 23 0 0.989258 0.977539
+14 24 24 0 0.964844 1
+14 24 25 0 0.934082 1
+14 24 26 0 0.897461 1
+14 24 27 0 0.855957 1
+14 24 28 0 0.8125 1
+14 24 29 0 0.768555 1
+14 24 30 0 0.726074 1
+14 24 31 0 0.685059 1
+14 25 0 0 1 0
+14 25 1 0 1 0
+14 25 2 0 1 0
+14 25 3 0 1 0
+14 25 4 0 1 0
+14 25 5 0 1 0
+14 25 6 0 1 0
+14 25 7 0 1 0
+14 25 8 0 1 0
+14 25 9 0 1 0
+14 25 10 0 1 0
+14 25 11 0 1 0
+14 25 12 0 1 0
+14 25 13 0 1 0
+14 25 14 0 1 0.143921
+14 25 15 0 1 0.289795
+14 25 16 0 1 0.396973
+14 25 17 0 1 0.496582
+14 25 18 0 1 0.592285
+14 25 19 0 1 0.682129
+14 25 20 0 1 0.763672
+14 25 21 0 1 0.837402
+14 25 22 0 1 0.901367
+14 25 23 0 1 0.954102
+14 25 24 0 1 0.997559
+14 25 25 0 0.981934 1
+14 25 26 0 0.949219 1
+14 25 27 0 0.910156 1
+14 25 28 0 0.867188 1
+14 25 29 0 0.822266 1
+14 25 30 0 0.777344 1
+14 25 31 0 0.733398 1
+14 26 0 0 1 0
+14 26 1 0 1 0
+14 26 2 0 1 0
+14 26 3 0 1 0
+14 26 4 0 1 0
+14 26 5 0 1 0
+14 26 6 0 1 0
+14 26 7 0 1 0
+14 26 8 0 1 0
+14 26 9 0 1 0
+14 26 10 0 1 0
+14 26 11 0 1 0
+14 26 12 0 1 0
+14 26 13 0 1 0
+14 26 14 0 1 0
+14 26 15 0 1 0.251221
+14 26 16 0 1 0.364258
+14 26 17 0 1 0.464111
+14 26 18 0 1 0.558594
+14 26 19 0 1 0.647949
+14 26 20 0 1 0.729492
+14 26 21 0 1 0.804199
+14 26 22 0 1 0.870117
+14 26 23 0 1 0.925781
+14 26 24 0 1 0.972168
+14 26 25 0 1 1
+14 26 26 0 0.996582 1
+14 26 27 0 0.961426 1
+14 26 28 0 0.92041 1
+14 26 29 0 0.875977 1
+14 26 30 0 0.82959 1
+14 26 31 0 0.78418 1
+14 27 0 0 1 0
+14 27 1 0 1 0
+14 27 2 0 1 0
+14 27 3 0 1 0
+14 27 4 0 1 0
+14 27 5 0 1 0
+14 27 6 0 1 0
+14 27 7 0 1 0
+14 27 8 0 1 0
+14 27 9 0 1 0
+14 27 10 0 1 0
+14 27 11 0 1 0
+14 27 12 0 1 0
+14 27 13 0 1 0
+14 27 14 0 1 0
+14 27 15 0 1 0.204224
+14 27 16 0 1 0.328857
+14 27 17 0 1 0.429932
+14 27 18 0 1 0.523438
+14 27 19 0 1 0.611328
+14 27 20 0 1 0.692383
+14 27 21 0 1 0.76709
+14 27 22 0 1 0.834473
+14 27 23 0 1 0.892578
+14 27 24 0 1 0.941406
+14 27 25 0 1 0.986816
+14 27 26 0 1 1
+14 27 27 0 1 1
+14 27 28 0 0.970215 1
+14 27 29 0 0.927246 1
+14 27 30 0 0.881348 1
+14 27 31 0 0.834473 1
+14 28 0 0 1 0
+14 28 1 0 1 0
+14 28 2 0 1 0
+14 28 3 0 1 0
+14 28 4 0 1 0
+14 28 5 0 1 0
+14 28 6 0 1 0
+14 28 7 0 1 0
+14 28 8 0 1 0
+14 28 9 0 1 0
+14 28 10 0 1 0
+14 28 11 0 1 0
+14 28 12 0 1 0
+14 28 13 0 1 0
+14 28 14 0 1 0
+14 28 15 0 1 0.135986
+14 28 16 0 1 0.289795
+14 28 17 0 1 0.393799
+14 28 18 0 1 0.486816
+14 28 19 0 1 0.573242
+14 28 20 0 1 0.65332
+14 28 21 0 1 0.727539
+14 28 22 0 1 0.79541
+14 28 23 0 1 0.854492
+14 28 24 0 1 0.905762
+14 28 25 0 1 0.954102
+14 28 26 0 1 0.999023
+14 28 27 0 1 1
+14 28 28 0 1 1
+14 28 29 0 0.976074 1
+14 28 30 0 0.932129 1
+14 28 31 0 0.885742 1
+14 29 0 0 1 0
+14 29 1 0 1 0
+14 29 2 0 1 0
+14 29 3 0 1 0
+14 29 4 0 1 0
+14 29 5 0 1 0
+14 29 6 0 1 0
+14 29 7 0 1 0
+14 29 8 0 1 0
+14 29 9 0 1 0
+14 29 10 0 1 0
+14 29 11 0 1 0
+14 29 12 0 1 0
+14 29 13 0 1 0
+14 29 14 0 1 0
+14 29 15 0 1 0
+14 29 16 0 1 0.244873
+14 29 17 0 1 0.355469
+14 29 18 0 1 0.448486
+14 29 19 0 1 0.533691
+14 29 20 0 1 0.611816
+14 29 21 0 1 0.685059
+14 29 22 0 1 0.75293
+14 29 23 0 1 0.8125
+14 29 24 0 1 0.865234
+14 29 25 0 1 0.916016
+14 29 26 0 1 0.963867
+14 29 27 0 1 1
+14 29 28 0 1 1
+14 29 29 0 1 1
+14 29 30 0 0.980957 1
+14 29 31 0 0.936035 1
+14 30 0 0 1 0
+14 30 1 0 1 0
+14 30 2 0 1 0
+14 30 3 0 1 0
+14 30 4 0 1 0
+14 30 5 0 1 0
+14 30 6 0 1 0
+14 30 7 0 1 0
+14 30 8 0 1 0
+14 30 9 0 1 0
+14 30 10 0 1 0
+14 30 11 0 1 0
+14 30 12 0 1 0
+14 30 13 0 1 0
+14 30 14 0 1 0
+14 30 15 0 1 0
+14 30 16 0 1 0.189331
+14 30 17 0 1 0.313965
+14 30 18 0 1 0.408447
+14 30 19 0 1 0.492188
+14 30 20 0 1 0.568848
+14 30 21 0 1 0.640625
+14 30 22 0 1 0.707031
+14 30 23 0 1 0.766602
+14 30 24 0 1 0.819824
+14 30 25 0 1 0.87207
+14 30 26 0 1 0.922363
+14 30 27 0 1 0.969727
+14 30 28 0 1 1
+14 30 29 0 1 1
+14 30 30 0 1 1
+14 30 31 0 0.984375 1
+14 31 0 0 1 0
+14 31 1 0 1 0
+14 31 2 0 1 0
+14 31 3 0 1 0
+14 31 4 0 1 0
+14 31 5 0 1 0
+14 31 6 0 1 0
+14 31 7 0 1 0
+14 31 8 0 1 0
+14 31 9 0 1 0
+14 31 10 0 1 0
+14 31 11 0 1 0
+14 31 12 0 1 0
+14 31 13 0 1 0
+14 31 14 0 1 0
+14 31 15 0 1 0
+14 31 16 0 1 0.0963745
+14 31 17 0 1 0.268555
+14 31 18 0 1 0.366943
+14 31 19 0 1 0.449951
+14 31 20 0 1 0.524414
+14 31 21 0 1 0.594727
+14 31 22 0 1 0.659668
+14 31 23 0 1 0.718262
+14 31 24 0 1 0.771484
+14 31 25 0 1 0.824219
+14 31 26 0 1 0.876465
+14 31 27 0 1 0.927246
+14 31 28 0 1 0.974609
+14 31 29 0 1 1
+14 31 30 0 1 1
+14 31 31 0 1 1
+15 0 0 0.666992 0 0.0396118
+15 0 1 0.666992 0 0.0395813
+15 0 2 0.666992 0 0.0395813
+15 0 3 0.666992 0 0.0395508
+15 0 4 0.666992 0 0.0395203
+15 0 5 0.66748 0 0.0394287
+15 0 6 0.66748 0 0.0393066
+15 0 7 0.66748 0 0.0390015
+15 0 8 0.66748 0 0.0384216
+15 0 9 0.66748 0 0.0374756
+15 0 10 0.67041 0 0.0367737
+15 0 11 0.672852 0 0.195557
+15 0 12 0.672852 0 0.288818
+15 0 13 0.661621 0 0.377686
+15 0 14 0.631836 0.163818 0.455322
+15 0 15 0.608887 0.192261 0.538086
+15 0 16 0.577637 0.204468 0.627441
+15 0 17 0.53125 0.217407 0.713867
+15 0 18 0.468018 0.22998 0.792969
+15 0 19 0.384033 0.241699 0.861816
+15 0 20 0.258301 0.251709 0.918457
+15 0 21 0 0.248901 0.924805
+15 0 22 0 0.247192 0.929688
+15 0 23 0 0.24646 0.935547
+15 0 24 0 0.246338 0.941895
+15 0 25 0 0.246948 0.949219
+15 0 26 0 0.247925 0.958008
+15 0 27 0 0.24939 0.968262
+15 0 28 0 0.251221 0.978516
+15 0 29 0 0.253174 0.989258
+15 0 30 0 0.255371 1
+15 0 31 0 0.257812 1
+15 1 0 0.666992 0 0.0395203
+15 1 1 0.666992 0 0.0395203
+15 1 2 0.666992 0 0.0394897
+15 1 3 0.666992 0 0.0394897
+15 1 4 0.666992 0 0.0394287
+15 1 5 0.666992 0 0.0393677
+15 1 6 0.66748 0 0.0392151
+15 1 7 0.66748 0 0.0389099
+15 1 8 0.66748 0 0.0383301
+15 1 9 0.66748 0 0.037384
+15 1 10 0.67041 0 0.0366821
+15 1 11 0.672852 0 0.195435
+15 1 12 0.672852 0 0.288818
+15 1 13 0.661621 0 0.377686
+15 1 14 0.631836 0.16394 0.455322
+15 1 15 0.608887 0.192261 0.538086
+15 1 16 0.577637 0.20459 0.627441
+15 1 17 0.53125 0.217407 0.713867
+15 1 18 0.468018 0.230103 0.792969
+15 1 19 0.384033 0.241699 0.861816
+15 1 20 0.258301 0.251709 0.918457
+15 1 21 0 0.248901 0.924805
+15 1 22 0 0.247192 0.929688
+15 1 23 0 0.24646 0.935547
+15 1 24 0 0.24646 0.941895
+15 1 25 0 0.246948 0.949219
+15 1 26 0 0.247925 0.958008
+15 1 27 0 0.24939 0.968262
+15 1 28 0 0.251221 0.978516
+15 1 29 0 0.253174 0.989258
+15 1 30 0 0.255371 1
+15 1 31 0 0.257812 1
+15 2 0 0.666992 0 0.0393677
+15 2 1 0.666992 0 0.0393677
+15 2 2 0.666992 0 0.0393677
+15 2 3 0.666992 0 0.0393372
+15 2 4 0.666992 0 0.0393066
+15 2 5 0.666992 0 0.0392151
+15 2 6 0.666992 0 0.0390625
+15 2 7 0.66748 0 0.0387878
+15 2 8 0.66748 0 0.038208
+15 2 9 0.66748 0 0.0372314
+15 2 10 0.67041 0 0.036499
+15 2 11 0.672852 0 0.195435
+15 2 12 0.672852 0 0.288818
+15 2 13 0.661621 0 0.377686
+15 2 14 0.631836 0.164062 0.455322
+15 2 15 0.608887 0.192505 0.538086
+15 2 16 0.577637 0.204712 0.627441
+15 2 17 0.53125 0.217529 0.713867
+15 2 18 0.468018 0.230225 0.792969
+15 2 19 0.384033 0.241821 0.861816
+15 2 20 0.258301 0.251709 0.918457
+15 2 21 0 0.249023 0.924805
+15 2 22 0 0.247314 0.929688
+15 2 23 0 0.24646 0.935547
+15 2 24 0 0.24646 0.941895
+15 2 25 0 0.246948 0.949219
+15 2 26 0 0.247925 0.958008
+15 2 27 0 0.249512 0.968262
+15 2 28 0 0.251221 0.978516
+15 2 29 0 0.253174 0.989258
+15 2 30 0 0.255371 1
+15 2 31 0 0.257812 1
+15 3 0 0.666992 0 0.0391235
+15 3 1 0.666992 0 0.0391235
+15 3 2 0.666992 0 0.039093
+15 3 3 0.666992 0 0.0390625
+15 3 4 0.666992 0 0.039032
+15 3 5 0.666992 0 0.0389709
+15 3 6 0.666992 0 0.0388184
+15 3 7 0.66748 0 0.0385132
+15 3 8 0.66748 0 0.0379333
+15 3 9 0.66748 0 0.0369263
+15 3 10 0.67041 0 0.0362244
+15 3 11 0.672852 0 0.195435
+15 3 12 0.672852 0 0.288818
+15 3 13 0.661621 0 0.377686
+15 3 14 0.631836 0.164429 0.455322
+15 3 15 0.608887 0.192749 0.538086
+15 3 16 0.577637 0.204956 0.627441
+15 3 17 0.53125 0.217773 0.713867
+15 3 18 0.468018 0.230347 0.792969
+15 3 19 0.384033 0.241943 0.861816
+15 3 20 0.258057 0.251709 0.918457
+15 3 21 0 0.249146 0.924805
+15 3 22 0 0.247314 0.929688
+15 3 23 0 0.246582 0.935547
+15 3 24 0 0.24646 0.941895
+15 3 25 0 0.246948 0.949219
+15 3 26 0 0.248047 0.958008
+15 3 27 0 0.249512 0.968262
+15 3 28 0 0.251221 0.978516
+15 3 29 0 0.253174 0.989258
+15 3 30 0 0.255371 1
+15 3 31 0 0.257812 1
+15 4 0 0.666992 0 0.0386047
+15 4 1 0.666992 0 0.0386047
+15 4 2 0.666992 0 0.0386047
+15 4 3 0.666992 0 0.0385742
+15 4 4 0.666992 0 0.0385437
+15 4 5 0.666992 0 0.0384521
+15 4 6 0.666992 0 0.0382996
+15 4 7 0.666992 0 0.0379944
+15 4 8 0.66748 0 0.037384
+15 4 9 0.66748 0 0.036377
+15 4 10 0.67041 0 0.0356445
+15 4 11 0.672852 0 0.195435
+15 4 12 0.672852 0 0.288818
+15 4 13 0.661621 0 0.377686
+15 4 14 0.631836 0.165161 0.455322
+15 4 15 0.608887 0.193359 0.538086
+15 4 16 0.577637 0.205444 0.627441
+15 4 17 0.53125 0.218262 0.713867
+15 4 18 0.468018 0.230713 0.792969
+15 4 19 0.383789 0.24231 0.861816
+15 4 20 0.258057 0.252197 0.918457
+15 4 21 0 0.249268 0.924805
+15 4 22 0 0.247559 0.929688
+15 4 23 0 0.246704 0.935547
+15 4 24 0 0.246582 0.941895
+15 4 25 0 0.24707 0.949219
+15 4 26 0 0.248169 0.958008
+15 4 27 0 0.249634 0.968262
+15 4 28 0 0.251221 0.978516
+15 4 29 0 0.253174 0.989258
+15 4 30 0 0.255371 1
+15 4 31 0 0.257812 1
+15 5 0 0.666992 0 0.0375977
+15 5 1 0.666992 0 0.0375977
+15 5 2 0.666992 0 0.0375977
+15 5 3 0.666992 0 0.0375671
+15 5 4 0.666992 0 0.0375366
+15 5 5 0.666992 0 0.0374451
+15 5 6 0.666992 0 0.0372925
+15 5 7 0.666992 0 0.0369568
+15 5 8 0.666992 0 0.0363159
+15 5 9 0.66748 0 0.0352783
+15 5 10 0.67041 0 0.0345154
+15 5 11 0.672852 0 0.195312
+15 5 12 0.672852 0 0.288574
+15 5 13 0.661621 0 0.377686
+15 5 14 0.631836 0.166504 0.455322
+15 5 15 0.608887 0.194336 0.538086
+15 5 16 0.577637 0.206299 0.627441
+15 5 17 0.53125 0.218994 0.713867
+15 5 18 0.468018 0.231323 0.792969
+15 5 19 0.383789 0.242798 0.861816
+15 5 20 0.257812 0.252441 0.918457
+15 5 21 0 0.249756 0.924805
+15 5 22 0 0.247803 0.929688
+15 5 23 0 0.246948 0.935547
+15 5 24 0 0.246826 0.941895
+15 5 25 0 0.247314 0.949219
+15 5 26 0 0.248291 0.958008
+15 5 27 0 0.249756 0.968262
+15 5 28 0 0.251465 0.978516
+15 5 29 0 0.253418 0.989258
+15 5 30 0 0.255615 1
+15 5 31 0 0.257812 1
+15 6 0 0.666992 0 0.035553
+15 6 1 0.666992 0 0.035553
+15 6 2 0.666992 0 0.035553
+15 6 3 0.666992 0 0.0355225
+15 6 4 0.666992 0 0.0354614
+15 6 5 0.666992 0 0.0353699
+15 6 6 0.666992 0 0.0351868
+15 6 7 0.666992 0 0.0348511
+15 6 8 0.666992 0 0.0341492
+15 6 9 0.66748 0 0.0329895
+15 6 10 0.67041 0 0.032135
+15 6 11 0.672363 0 0.195068
+15 6 12 0.672852 0 0.288574
+15 6 13 0.661133 0 0.377686
+15 6 14 0.631348 0.169067 0.455322
+15 6 15 0.608887 0.196411 0.538086
+15 6 16 0.577637 0.20813 0.627441
+15 6 17 0.53125 0.220459 0.713867
+15 6 18 0.467773 0.232666 0.792969
+15 6 19 0.383545 0.243896 0.861816
+15 6 20 0.257568 0.253418 0.918457
+15 6 21 0 0.250488 0.924805
+15 6 22 0 0.248413 0.929688
+15 6 23 0 0.247559 0.935547
+15 6 24 0 0.247314 0.941895
+15 6 25 0 0.247681 0.949219
+15 6 26 0 0.248657 0.958496
+15 6 27 0 0.25 0.968262
+15 6 28 0 0.251709 0.978516
+15 6 29 0 0.253418 0.989258
+15 6 30 0 0.255615 1
+15 6 31 0 0.258057 1
+15 7 0 0.666992 0 0.0309143
+15 7 1 0.666992 0 0.0309143
+15 7 2 0.666992 0 0.0308838
+15 7 3 0.666992 0 0.0308533
+15 7 4 0.666992 0 0.0307922
+15 7 5 0.666992 0 0.0306854
+15 7 6 0.666992 0 0.0304565
+15 7 7 0.666992 0 0.0300293
+15 7 8 0.666992 0 0.029129
+15 7 9 0.66748 0 0.0275726
+15 7 10 0.67041 0 0.0264587
+15 7 11 0.672363 0 0.194702
+15 7 12 0.672852 0 0.28833
+15 7 13 0.661133 0.00745773 0.377686
+15 7 14 0.631348 0.17395 0.455322
+15 7 15 0.608398 0.200195 0.538086
+15 7 16 0.577148 0.211426 0.627441
+15 7 17 0.530762 0.223389 0.713867
+15 7 18 0.467529 0.235107 0.792969
+15 7 19 0.383057 0.245972 0.861816
+15 7 20 0.256836 0.255127 0.918457
+15 7 21 0 0.251953 0.924805
+15 7 22 0 0.249634 0.929688
+15 7 23 0 0.248535 0.935547
+15 7 24 0 0.248169 0.941895
+15 7 25 0 0.248413 0.949707
+15 7 26 0 0.249268 0.958496
+15 7 27 0 0.250488 0.968262
+15 7 28 0 0.252197 0.978516
+15 7 29 0 0.253906 0.989258
+15 7 30 0 0.256104 1
+15 7 31 0 0.258301 1
+15 8 0 0.666504 0 0.0144958
+15 8 1 0.666504 0 0.0144653
+15 8 2 0.666504 0 0.0144043
+15 8 3 0.666504 0 0.0142975
+15 8 4 0.666504 0 0.0140915
+15 8 5 0.666504 0 0.0136795
+15 8 6 0.666504 0 0.0128326
+15 8 7 0.666504 0 0.0108719
+15 8 8 0.666504 0.0112381 0
+15 8 9 0.666992 0.0426331 0
+15 8 10 0.669922 0.0512695 0
+15 8 11 0.671875 0 0.194092
+15 8 12 0.672363 0 0.288086
+15 8 13 0.661133 0.0853882 0.377441
+15 8 14 0.630859 0.182739 0.455322
+15 8 15 0.60791 0.207275 0.538086
+15 8 16 0.57666 0.217773 0.627441
+15 8 17 0.530273 0.228882 0.713867
+15 8 18 0.466797 0.239746 0.792969
+15 8 19 0.382324 0.249878 0.861816
+15 8 20 0.255371 0.258545 0.918945
+15 8 21 0 0.254639 0.924805
+15 8 22 0 0.251953 0.930176
+15 8 23 0 0.250488 0.936035
+15 8 24 0 0.249878 0.942383
+15 8 25 0 0.249878 0.949707
+15 8 26 0 0.250488 0.958496
+15 8 27 0 0.251709 0.96875
+15 8 28 0 0.253174 0.978516
+15 8 29 0 0.254639 0.989258
+15 8 30 0 0.256836 1
+15 8 31 0 0.259033 1
+15 9 0 0.665527 0.113159 0
+15 9 1 0.665527 0.11322 0
+15 9 2 0.665527 0.11322 0
+15 9 3 0.665527 0.113342 0
+15 9 4 0.666016 0.113464 0
+15 9 5 0.666016 0.11377 0
+15 9 6 0.666016 0.114258 0
+15 9 7 0.666016 0.115295 0
+15 9 8 0.666016 0.117188 0
+15 9 9 0.666016 0.120361 0
+15 9 10 0.668945 0.122131 0
+15 9 11 0.671387 0.114014 0.192993
+15 9 12 0.671387 0.107788 0.287354
+15 9 13 0.661133 0.129272 0.376953
+15 9 14 0.630371 0.197998 0.455322
+15 9 15 0.606934 0.219971 0.538086
+15 9 16 0.575684 0.229126 0.627441
+15 9 17 0.529297 0.23877 0.713867
+15 9 18 0.465576 0.248291 0.792969
+15 9 19 0.380859 0.25708 0.862305
+15 9 20 0.252441 0.264648 0.918945
+15 9 21 0 0.259766 0.925293
+15 9 22 0 0.256348 0.930176
+15 9 23 0 0.25415 0.936035
+15 9 24 0 0.253174 0.942383
+15 9 25 0 0.252686 0.950195
+15 9 26 0 0.25293 0.958984
+15 9 27 0 0.253906 0.96875
+15 9 28 0 0.254883 0.979004
+15 9 29 0 0.256348 0.989746
+15 9 30 0 0.258057 1
+15 9 31 0 0.26001 1
+15 10 0 0.664062 0.172363 0
+15 10 1 0.664062 0.172485 0
+15 10 2 0.664062 0.172485 0
+15 10 3 0.664062 0.172485 0
+15 10 4 0.664062 0.172607 0
+15 10 5 0.664062 0.172729 0
+15 10 6 0.664062 0.172974 0
+15 10 7 0.664062 0.173462 0
+15 10 8 0.664062 0.174438 0
+15 10 9 0.664551 0.17627 0
+15 10 10 0.666992 0.177124 0
+15 10 11 0.669434 0.172729 0.191406
+15 10 12 0.669434 0.1698 0.286133
+15 10 13 0.660156 0.175659 0.376221
+15 10 14 0.628906 0.22168 0.455322
+15 10 15 0.60498 0.240356 0.537598
+15 10 16 0.57373 0.247681 0.627441
+15 10 17 0.527344 0.255371 0.713867
+15 10 18 0.463379 0.262695 0.792969
+15 10 19 0.37793 0.269531 0.862305
+15 10 20 0.247314 0.275635 0.918945
+15 10 21 0 0.268799 0.925781
+15 10 22 0 0.263916 0.931152
+15 10 23 0 0.260742 0.936523
+15 10 24 0 0.258789 0.942871
+15 10 25 0 0.257568 0.950684
+15 10 26 0 0.257324 0.959473
+15 10 27 0 0.257568 0.969238
+15 10 28 0 0.258057 0.979004
+15 10 29 0 0.259033 0.989746
+15 10 30 0 0.260498 1
+15 10 31 0 0.262207 1
+15 11 0 0.660645 0.231934 0
+15 11 1 0.660645 0.231934 0
+15 11 2 0.660645 0.231934 0
+15 11 3 0.660645 0.231934 0
+15 11 4 0.660645 0.231934 0
+15 11 5 0.660645 0.232056 0
+15 11 6 0.660645 0.232178 0
+15 11 7 0.660645 0.232544 0
+15 11 8 0.660645 0.233154 0
+15 11 9 0.660645 0.234375 0
+15 11 10 0.663086 0.234863 0.0418091
+15 11 11 0.665527 0.232544 0.190674
+15 11 12 0.666504 0.229248 0.283447
+15 11 13 0.658691 0.229248 0.374756
+15 11 14 0.626953 0.255615 0.455322
+15 11 15 0.601562 0.270752 0.537109
+15 11 16 0.570312 0.275879 0.626953
+15 11 17 0.523438 0.280762 0.713867
+15 11 18 0.459229 0.285156 0.793457
+15 11 19 0.372559 0.289551 0.862305
+15 11 20 0.237793 0.292969 0.919434
+15 11 21 0 0.283691 0.926758
+15 11 22 0 0.276367 0.932129
+15 11 23 0 0.271484 0.937988
+15 11 24 0 0.268311 0.944336
+15 11 25 0 0.266113 0.95166
+15 11 26 0 0.264648 0.960449
+15 11 27 0 0.263672 0.969238
+15 11 28 0 0.263428 0.979492
+15 11 29 0 0.263672 0.990234
+15 11 30 0 0.264404 1
+15 11 31 0 0.265625 1
+15 12 0 0.654297 0.296143 0
+15 12 1 0.654297 0.296143 0
+15 12 2 0.654297 0.296143 0
+15 12 3 0.654297 0.296143 0
+15 12 4 0.654297 0.296143 0
+15 12 5 0.654297 0.296387 0
+15 12 6 0.654297 0.296387 0
+15 12 7 0.654297 0.296631 0
+15 12 8 0.654297 0.297119 0
+15 12 9 0.654297 0.297852 0
+15 12 10 0.655273 0.298096 0.0890503
+15 12 11 0.656738 0.297363 0.194824
+15 12 12 0.658203 0.295654 0.280762
+15 12 13 0.652832 0.292969 0.371582
+15 12 14 0.623047 0.301758 0.455078
+15 12 15 0.595703 0.3125 0.536621
+15 12 16 0.564453 0.31543 0.626953
+15 12 17 0.51709 0.317383 0.713867
+15 12 18 0.452148 0.318359 0.793457
+15 12 19 0.363525 0.319336 0.862793
+15 12 20 0.219727 0.319336 0.919922
+15 12 21 0 0.306641 0.928711
+15 12 22 0 0.296143 0.933594
+15 12 23 0 0.288818 0.939453
+15 12 24 0 0.283447 0.945801
+15 12 25 0 0.279541 0.953613
+15 12 26 0 0.276367 0.961914
+15 12 27 0 0.273926 0.970215
+15 12 28 0 0.272217 0.97998
+15 12 29 0 0.271484 0.990723
+15 12 30 0 0.27124 1
+15 12 31 0 0.271484 1
+15 13 0 0.643066 0.364258 0.0741577
+15 13 1 0.643066 0.364258 0.0741577
+15 13 2 0.643066 0.364258 0.0741577
+15 13 3 0.643066 0.364258 0.0742188
+15 13 4 0.643066 0.364258 0.0742188
+15 13 5 0.643066 0.364258 0.0743408
+15 13 6 0.643066 0.364502 0.0744629
+15 13 7 0.643066 0.364502 0.0747681
+15 13 8 0.643066 0.364746 0.0753174
+15 13 9 0.643066 0.365234 0.076355
+15 13 10 0.642578 0.365723 0.139648
+15 13 11 0.641602 0.365723 0.210938
+15 13 12 0.640137 0.365723 0.283691
+15 13 13 0.638184 0.364258 0.366211
+15 13 14 0.617188 0.361328 0.454346
+15 13 15 0.585938 0.366211 0.535156
+15 13 16 0.554199 0.366943 0.625977
+15 13 17 0.506348 0.365723 0.713867
+15 13 18 0.439697 0.363281 0.793457
+15 13 19 0.347412 0.360352 0.863281
+15 13 20 0.18335 0.356689 0.920898
+15 13 21 0 0.3396 0.931152
+15 13 22 0 0.324951 0.936523
+15 13 23 0 0.314209 0.942383
+15 13 24 0 0.306396 0.94873
+15 13 25 0 0.299561 0.956055
+15 13 26 0 0.293945 0.962891
+15 13 27 0 0.289307 0.971191
+15 13 28 0 0.286133 0.980957
+15 13 29 0 0.283691 0.991699
+15 13 30 0 0.281982 1
+15 13 31 0 0.280762 1
+15 14 0 0.631836 0.439941 0.157104
+15 14 1 0.631836 0.439941 0.157104
+15 14 2 0.631836 0.439941 0.157104
+15 14 3 0.631836 0.439941 0.157104
+15 14 4 0.631836 0.439941 0.157104
+15 14 5 0.631836 0.439941 0.157227
+15 14 6 0.631836 0.440186 0.157227
+15 14 7 0.631836 0.440186 0.157227
+15 14 8 0.631836 0.44043 0.157349
+15 14 9 0.631836 0.440674 0.157471
+15 14 10 0.631348 0.440918 0.178711
+15 14 11 0.627441 0.44043 0.234497
+15 14 12 0.621094 0.439209 0.296875
+15 14 13 0.61084 0.437256 0.366699
+15 14 14 0.598633 0.434814 0.448242
+15 14 15 0.569336 0.431641 0.532715
+15 14 16 0.537109 0.430176 0.624023
+15 14 17 0.488037 0.42627 0.712891
+15 14 18 0.418701 0.42041 0.793457
+15 14 19 0.318604 0.41333 0.86377
+15 14 20 0.0506897 0.405762 0.921387
+15 14 21 0 0.384033 0.935547
+15 14 22 0 0.364502 0.941406
+15 14 23 0 0.349365 0.946289
+15 14 24 0 0.337891 0.95166
+15 14 25 0 0.327881 0.958008
+15 14 26 0 0.319092 0.965332
+15 14 27 0 0.312012 0.973145
+15 14 28 0 0.306152 0.98291
+15 14 29 0 0.30127 0.993164
+15 14 30 0 0.297607 1
+15 14 31 0 0.294678 1
+15 15 0 0.615234 0.52832 0.172729
+15 15 1 0.615234 0.52832 0.172729
+15 15 2 0.615234 0.52832 0.172729
+15 15 3 0.615234 0.52832 0.172729
+15 15 4 0.615234 0.52832 0.172729
+15 15 5 0.615234 0.52832 0.172729
+15 15 6 0.615234 0.52832 0.172729
+15 15 7 0.615234 0.52832 0.172729
+15 15 8 0.615234 0.528809 0.172852
+15 15 9 0.615234 0.528809 0.172852
+15 15 10 0.615234 0.529297 0.176514
+15 15 11 0.611328 0.528809 0.235474
+15 15 12 0.60498 0.526855 0.300537
+15 15 13 0.593262 0.523926 0.372314
+15 15 14 0.573242 0.517578 0.449219
+15 15 15 0.541504 0.506836 0.527832
+15 15 16 0.508301 0.503906 0.620605
+15 15 17 0.457275 0.498047 0.710449
+15 15 18 0.382324 0.489014 0.79248
+15 15 19 0.263672 0.478271 0.86377
+15 15 20 0 0.466553 0.922363
+15 15 21 0 0.440186 0.94043
+15 15 22 0 0.414551 0.945801
+15 15 23 0 0.394775 0.950684
+15 15 24 0 0.378906 0.956055
+15 15 25 0 0.365234 0.961914
+15 15 26 0 0.353027 0.96875
+15 15 27 0 0.342529 0.976562
+15 15 28 0 0.333496 0.98584
+15 15 29 0 0.325928 0.995605
+15 15 30 0 0.31958 1
+15 15 31 0 0.314453 1
+15 16 0 0.559082 0.60498 0.166382
+15 16 1 0.559082 0.60498 0.166382
+15 16 2 0.559082 0.60498 0.166382
+15 16 3 0.559082 0.60498 0.166504
+15 16 4 0.559082 0.60498 0.166504
+15 16 5 0.559082 0.60498 0.166504
+15 16 6 0.559082 0.60498 0.166504
+15 16 7 0.559082 0.60498 0.166504
+15 16 8 0.559082 0.605469 0.166504
+15 16 9 0.559082 0.605469 0.166504
+15 16 10 0.55957 0.605957 0.166504
+15 16 11 0.556641 0.605469 0.211914
+15 16 12 0.550293 0.604004 0.281494
+15 16 13 0.539551 0.600586 0.355225
+15 16 14 0.520996 0.595215 0.434082
+15 16 15 0.495605 0.589844 0.52002
+15 16 16 0.459961 0.586426 0.61377
+15 16 17 0.403809 0.579102 0.705566
+15 16 18 0.314453 0.567383 0.789551
+15 16 19 0.0844727 0.553711 0.862793
+15 16 20 0 0.538086 0.922852
+15 16 21 0 0.507812 0.945801
+15 16 22 0 0.476318 0.952148
+15 16 23 0 0.451172 0.95752
+15 16 24 0 0.430908 0.962402
+15 16 25 0 0.412842 0.968262
+15 16 26 0 0.396484 0.974609
+15 16 27 0 0.38208 0.981934
+15 16 28 0 0.369385 0.990723
+15 16 29 0 0.358398 1
+15 16 30 0 0.348877 1
+15 16 31 0 0.340576 1
+15 17 0 0.478516 0.677734 0.158325
+15 17 1 0.478516 0.677734 0.158325
+15 17 2 0.478516 0.677734 0.158325
+15 17 3 0.478516 0.677734 0.158325
+15 17 4 0.478516 0.677734 0.158325
+15 17 5 0.47876 0.677734 0.158325
+15 17 6 0.47876 0.677734 0.158325
+15 17 7 0.47876 0.677734 0.158325
+15 17 8 0.47876 0.677734 0.158325
+15 17 9 0.47876 0.678223 0.158325
+15 17 10 0.479004 0.678223 0.158447
+15 17 11 0.478271 0.678711 0.17688
+15 17 12 0.472412 0.678223 0.255615
+15 17 13 0.462646 0.677246 0.33374
+15 17 14 0.446289 0.675781 0.416992
+15 17 15 0.420654 0.673828 0.506836
+15 17 16 0.378174 0.670898 0.602051
+15 17 17 0.304688 0.663574 0.696289
+15 17 18 0.125244 0.651367 0.782715
+15 17 19 0 0.635254 0.858887
+15 17 20 0 0.616699 0.920898
+15 17 21 0 0.584473 0.95166
+15 17 22 0 0.547852 0.961426
+15 17 23 0 0.517578 0.967773
+15 17 24 0 0.492432 0.973145
+15 17 25 0 0.469482 0.978516
+15 17 26 0 0.448486 0.983887
+15 17 27 0 0.429688 0.990723
+15 17 28 0 0.412842 0.998047
+15 17 29 0 0.397949 1
+15 17 30 0 0.384766 1
+15 17 31 0 0.373047 1
+15 18 0 0.363281 0.750977 0.150513
+15 18 1 0.363281 0.750977 0.150513
+15 18 2 0.363281 0.750977 0.150513
+15 18 3 0.363281 0.750977 0.150513
+15 18 4 0.363281 0.750977 0.150513
+15 18 5 0.363281 0.750977 0.150513
+15 18 6 0.363281 0.750977 0.150513
+15 18 7 0.363525 0.750977 0.150513
+15 18 8 0.363525 0.750977 0.150513
+15 18 9 0.36377 0.751465 0.150635
+15 18 10 0.364014 0.751465 0.150635
+15 18 11 0.364502 0.751953 0.150757
+15 18 12 0.358643 0.752441 0.224365
+15 18 13 0.345947 0.75293 0.30957
+15 18 14 0.32373 0.753906 0.396484
+15 18 15 0.283691 0.753906 0.488281
+15 18 16 0.199341 0.751953 0.585449
+15 18 17 0 0.746094 0.681641
+15 18 18 0 0.734375 0.771484
+15 18 19 0 0.717773 0.850586
+15 18 20 0 0.697754 0.916016
+15 18 21 0 0.665527 0.955078
+15 18 22 0 0.626465 0.972168
+15 18 23 0 0.591797 0.981445
+15 18 24 0 0.562012 0.987305
+15 18 25 0 0.53418 0.992676
+15 18 26 0 0.508301 0.997559
+15 18 27 0 0.484619 1
+15 18 28 0 0.463135 1
+15 18 29 0 0.443848 1
+15 18 30 0 0.426514 1
+15 18 31 0 0.410889 1
+15 19 0 0 0.819336 0.142456
+15 19 1 0 0.819336 0.142456
+15 19 2 0 0.819336 0.142456
+15 19 3 0 0.819336 0.142456
+15 19 4 0 0.819336 0.142456
+15 19 5 0 0.819336 0.142456
+15 19 6 0 0.819336 0.142456
+15 19 7 0 0.819336 0.142456
+15 19 8 0 0.819336 0.142456
+15 19 9 0 0.819336 0.142456
+15 19 10 0 0.819336 0.142578
+15 19 11 0 0.819824 0.1427
+15 19 12 0 0.820312 0.182739
+15 19 13 0 0.821777 0.281006
+15 19 14 0 0.82373 0.372314
+15 19 15 0 0.825684 0.466064
+15 19 16 0 0.825195 0.563965
+15 19 17 0 0.821289 0.662598
+15 19 18 0 0.811523 0.755371
+15 19 19 0 0.796387 0.837891
+15 19 20 0 0.775879 0.90625
+15 19 21 0 0.746094 0.955078
+15 19 22 0 0.708008 0.981934
+15 19 23 0 0.670898 0.996582
+15 19 24 0 0.637695 1
+15 19 25 0 0.60498 1
+15 19 26 0 0.57373 1
+15 19 27 0 0.544922 1
+15 19 28 0 0.518555 1
+15 19 29 0 0.494385 1
+15 19 30 0 0.472412 1
+15 19 31 0 0.452637 1
+15 20 0 0 0.878906 0.133911
+15 20 1 0 0.878906 0.133911
+15 20 2 0 0.878906 0.133911
+15 20 3 0 0.878906 0.133911
+15 20 4 0 0.878906 0.133911
+15 20 5 0 0.878906 0.133911
+15 20 6 0 0.878906 0.133911
+15 20 7 0 0.878906 0.133911
+15 20 8 0 0.878906 0.133911
+15 20 9 0 0.878906 0.133911
+15 20 10 0 0.879395 0.134033
+15 20 11 0 0.879395 0.134155
+15 20 12 0 0.879883 0.134277
+15 20 13 0 0.881348 0.247314
+15 20 14 0 0.884277 0.344971
+15 20 15 0 0.886719 0.440918
+15 20 16 0 0.888672 0.540039
+15 20 17 0 0.886719 0.639648
+15 20 18 0 0.879395 0.734375
+15 20 19 0 0.866211 0.819824
+15 20 20 0 0.847168 0.891602
+15 20 21 0 0.821289 0.949219
+15 20 22 0 0.787109 0.986816
+15 20 23 0 0.75 1
+15 20 24 0 0.714355 1
+15 20 25 0 0.678223 1
+15 20 26 0 0.642578 1
+15 20 27 0 0.608398 1
+15 20 28 0 0.57666 1
+15 20 29 0 0.547852 1
+15 20 30 0 0.520996 1
+15 20 31 0 0.49707 1
+15 21 0 0 0.929688 0.124634
+15 21 1 0 0.929688 0.124634
+15 21 2 0 0.929688 0.124634
+15 21 3 0 0.929688 0.124634
+15 21 4 0 0.929688 0.124634
+15 21 5 0 0.929688 0.124634
+15 21 6 0 0.929688 0.124634
+15 21 7 0 0.930176 0.124634
+15 21 8 0 0.930176 0.124695
+15 21 9 0 0.930176 0.124695
+15 21 10 0 0.930176 0.124756
+15 21 11 0 0.930176 0.124878
+15 21 12 0 0.930664 0.125122
+15 21 13 0 0.931641 0.205566
+15 21 14 0 0.935059 0.314453
+15 21 15 0 0.938477 0.41333
+15 21 16 0 0.941406 0.513184
+15 21 17 0 0.941895 0.613281
+15 21 18 0 0.937988 0.709473
+15 21 19 0 0.927246 0.796875
+15 21 20 0 0.910645 0.872559
+15 21 21 0 0.888672 0.936035
+15 21 22 0 0.859863 0.983887
+15 21 23 0 0.825684 1
+15 21 24 0 0.790039 1
+15 21 25 0 0.751953 1
+15 21 26 0 0.712891 1
+15 21 27 0 0.674805 1
+15 21 28 0 0.638184 1
+15 21 29 0 0.604004 1
+15 21 30 0 0.572754 1
+15 21 31 0 0.543945 1
+15 22 0 0 0.972168 0.114868
+15 22 1 0 0.972168 0.114868
+15 22 2 0 0.972168 0.114868
+15 22 3 0 0.972168 0.114868
+15 22 4 0 0.972168 0.114868
+15 22 5 0 0.972168 0.114868
+15 22 6 0 0.972168 0.114929
+15 22 7 0 0.972168 0.114929
+15 22 8 0 0.972168 0.114929
+15 22 9 0 0.972168 0.11499
+15 22 10 0 0.972168 0.115051
+15 22 11 0 0.972168 0.115173
+15 22 12 0 0.972656 0.115356
+15 22 13 0 0.973145 0.149048
+15 22 14 0 0.976562 0.281006
+15 22 15 0 0.980469 0.384033
+15 22 16 0 0.984863 0.484863
+15 22 17 0 0.987305 0.584961
+15 22 18 0 0.98584 0.681641
+15 22 19 0 0.978516 0.770508
+15 22 20 0 0.965332 0.848633
+15 22 21 0 0.945801 0.916016
+15 22 22 0 0.921387 0.970703
+15 22 23 0 0.892578 1
+15 22 24 0 0.859375 1
+15 22 25 0 0.821777 1
+15 22 26 0 0.781738 1
+15 22 27 0 0.740234 1
+15 22 28 0 0.700195 1
+15 22 29 0 0.661621 1
+15 22 30 0 0.625488 1
+15 22 31 0 0.592285 1
+15 23 0 0 1 0.105042
+15 23 1 0 1 0.105042
+15 23 2 0 1 0.105042
+15 23 3 0 1 0.105042
+15 23 4 0 1 0.105042
+15 23 5 0 1 0.105042
+15 23 6 0 1 0.105042
+15 23 7 0 1 0.105042
+15 23 8 0 1 0.105042
+15 23 9 0 1 0.105103
+15 23 10 0 1 0.105164
+15 23 11 0 1 0.105286
+15 23 12 0 1 0.10553
+15 23 13 0 1 0.105835
+15 23 14 0 1 0.245117
+15 23 15 0 1 0.354736
+15 23 16 0 1 0.456543
+15 23 17 0 1 0.556152
+15 23 18 0 1 0.652832
+15 23 19 0 1 0.743164
+15 23 20 0 1 0.822754
+15 23 21 0 0.992676 0.893066
+15 23 22 0 0.971191 0.951172
+15 23 23 0 0.946289 0.997559
+15 23 24 0 0.917969 1
+15 23 25 0 0.883301 1
+15 23 26 0 0.84375 1
+15 23 27 0 0.801758 1
+15 23 28 0 0.758789 1
+15 23 29 0 0.717285 1
+15 23 30 0 0.677246 1
+15 23 31 0 0.639648 1
+15 24 0 0 1 0.0949097
+15 24 1 0 1 0.0949097
+15 24 2 0 1 0.0949097
+15 24 3 0 1 0.0949097
+15 24 4 0 1 0.0949097
+15 24 5 0 1 0.0949097
+15 24 6 0 1 0.0949097
+15 24 7 0 1 0.0949097
+15 24 8 0 1 0.0949097
+15 24 9 0 1 0.0949707
+15 24 10 0 1 0.0950317
+15 24 11 0 1 0.0952148
+15 24 12 0 1 0.0953979
+15 24 13 0 1 0.0957642
+15 24 14 0 1 0.204834
+15 24 15 0 1 0.324951
+15 24 16 0 1 0.428711
+15 24 17 0 1 0.52832
+15 24 18 0 1 0.624512
+15 24 19 0 1 0.714355
+15 24 20 0 1 0.795898
+15 24 21 0 1 0.867676
+15 24 22 0 1 0.928711
+15 24 23 0 0.990723 0.978516
+15 24 24 0 0.966309 1
+15 24 25 0 0.935547 1
+15 24 26 0 0.898926 1
+15 24 27 0 0.857422 1
+15 24 28 0 0.813477 1
+15 24 29 0 0.769531 1
+15 24 30 0 0.726562 1
+15 24 31 0 0.686035 1
+15 25 0 0 1 0.0831909
+15 25 1 0 1 0.0831909
+15 25 2 0 1 0.0831909
+15 25 3 0 1 0.0831909
+15 25 4 0 1 0.0831909
+15 25 5 0 1 0.0831909
+15 25 6 0 1 0.0831909
+15 25 7 0 1 0.0831909
+15 25 8 0 1 0.083252
+15 25 9 0 1 0.083252
+15 25 10 0 1 0.083374
+15 25 11 0 1 0.0834961
+15 25 12 0 1 0.0837402
+15 25 13 0 1 0.0841675
+15 25 14 0 1 0.14856
+15 25 15 0 1 0.291748
+15 25 16 0 1 0.398438
+15 25 17 0 1 0.497803
+15 25 18 0 1 0.593262
+15 25 19 0 1 0.683105
+15 25 20 0 1 0.764648
+15 25 21 0 1 0.838379
+15 25 22 0 1 0.902344
+15 25 23 0 1 0.955078
+15 25 24 0 1 0.998535
+15 25 25 0 0.983398 1
+15 25 26 0 0.950684 1
+15 25 27 0 0.911133 1
+15 25 28 0 0.868164 1
+15 25 29 0 0.823242 1
+15 25 30 0 0.77832 1
+15 25 31 0 0.734375 1
+15 26 0 0 1 0.0689087
+15 26 1 0 1 0.0689087
+15 26 2 0 1 0.0689087
+15 26 3 0 1 0.0689087
+15 26 4 0 1 0.0689087
+15 26 5 0 1 0.0689087
+15 26 6 0 1 0.0689087
+15 26 7 0 1 0.0689087
+15 26 8 0 1 0.0689697
+15 26 9 0 1 0.0690308
+15 26 10 0 1 0.0690918
+15 26 11 0 1 0.0692749
+15 26 12 0 1 0.0695801
+15 26 13 0 1 0.0701294
+15 26 14 0 1 0.0709229
+15 26 15 0 1 0.253418
+15 26 16 0 1 0.365723
+15 26 17 0 1 0.465576
+15 26 18 0 1 0.560059
+15 26 19 0 1 0.648926
+15 26 20 0 1 0.730469
+15 26 21 0 1 0.805176
+15 26 22 0 1 0.871094
+15 26 23 0 1 0.926758
+15 26 24 0 1 0.973145
+15 26 25 0 1 1
+15 26 26 0 0.998047 1
+15 26 27 0 0.962402 1
+15 26 28 0 0.921387 1
+15 26 29 0 0.876953 1
+15 26 30 0 0.830566 1
+15 26 31 0 0.784668 1
+15 27 0 0 1 0.0487976
+15 27 1 0 1 0.0487976
+15 27 2 0 1 0.0487976
+15 27 3 0 1 0.0488281
+15 27 4 0 1 0.0488281
+15 27 5 0 1 0.0488281
+15 27 6 0 1 0.0488281
+15 27 7 0 1 0.0488586
+15 27 8 0 1 0.0489197
+15 27 9 0 1 0.0490112
+15 27 10 0 1 0.0491638
+15 27 11 0 1 0.0494385
+15 27 12 0 1 0.0499268
+15 27 13 0 1 0.0506897
+15 27 14 0 1 0.0518799
+15 27 15 0 1 0.206665
+15 27 16 0 1 0.330322
+15 27 17 0 1 0.431152
+15 27 18 0 1 0.524902
+15 27 19 0 1 0.612305
+15 27 20 0 1 0.693359
+15 27 21 0 1 0.768066
+15 27 22 0 1 0.835449
+15 27 23 0 1 0.893066
+15 27 24 0 1 0.942383
+15 27 25 0 1 0.987793
+15 27 26 0 1 1
+15 27 27 0 1 1
+15 27 28 0 0.97168 1
+15 27 29 0 0.928711 1
+15 27 30 0 0.882324 1
+15 27 31 0 0.835449 1
+15 28 0 0 1 0
+15 28 1 0 1 0
+15 28 2 0 1 0
+15 28 3 0 1 0
+15 28 4 0 1 0
+15 28 5 0 1 0
+15 28 6 0 1 0
+15 28 7 0 1 0
+15 28 8 0 1 0
+15 28 9 0 1 0
+15 28 10 0 1 0
+15 28 11 0 1 0
+15 28 12 0 1 0
+15 28 13 0 1 0
+15 28 14 0 1 0
+15 28 15 0 1 0.139648
+15 28 16 0 1 0.29126
+15 28 17 0 1 0.395264
+15 28 18 0 1 0.488037
+15 28 19 0 1 0.574219
+15 28 20 0 1 0.653809
+15 28 21 0 1 0.728516
+15 28 22 0 1 0.796387
+15 28 23 0 1 0.855469
+15 28 24 0 1 0.906738
+15 28 25 0 1 0.955078
+15 28 26 0 1 0.999512
+15 28 27 0 1 1
+15 28 28 0 1 1
+15 28 29 0 0.977051 1
+15 28 30 0 0.933105 1
+15 28 31 0 0.886719 1
+15 29 0 0 1 0
+15 29 1 0 1 0
+15 29 2 0 1 0
+15 29 3 0 1 0
+15 29 4 0 1 0
+15 29 5 0 1 0
+15 29 6 0 1 0
+15 29 7 0 1 0
+15 29 8 0 1 0
+15 29 9 0 1 0
+15 29 10 0 1 0
+15 29 11 0 1 0
+15 29 12 0 1 0
+15 29 13 0 1 0
+15 29 14 0 1 0
+15 29 15 0 1 0
+15 29 16 0 1 0.246338
+15 29 17 0 1 0.356689
+15 29 18 0 1 0.449707
+15 29 19 0 1 0.534668
+15 29 20 0 1 0.612793
+15 29 21 0 1 0.686035
+15 29 22 0 1 0.753418
+15 29 23 0 1 0.812988
+15 29 24 0 1 0.865723
+15 29 25 0 1 0.916504
+15 29 26 0 1 0.964355
+15 29 27 0 1 1
+15 29 28 0 1 1
+15 29 29 0 1 1
+15 29 30 0 0.981445 1
+15 29 31 0 0.937012 1
+15 30 0 0 1 0
+15 30 1 0 1 0
+15 30 2 0 1 0
+15 30 3 0 1 0
+15 30 4 0 1 0
+15 30 5 0 1 0
+15 30 6 0 1 0
+15 30 7 0 1 0
+15 30 8 0 1 0
+15 30 9 0 1 0
+15 30 10 0 1 0
+15 30 11 0 1 0
+15 30 12 0 1 0
+15 30 13 0 1 0
+15 30 14 0 1 0
+15 30 15 0 1 0
+15 30 16 0 1 0.191162
+15 30 17 0 1 0.315186
+15 30 18 0 1 0.409424
+15 30 19 0 1 0.493164
+15 30 20 0 1 0.569824
+15 30 21 0 1 0.641602
+15 30 22 0 1 0.708008
+15 30 23 0 1 0.767578
+15 30 24 0 1 0.820801
+15 30 25 0 1 0.872559
+15 30 26 0 1 0.922852
+15 30 27 0 1 0.970215
+15 30 28 0 1 1
+15 30 29 0 1 1
+15 30 30 0 1 1
+15 30 31 0 0.984863 1
+15 31 0 0 1 0
+15 31 1 0 1 0
+15 31 2 0 1 0
+15 31 3 0 1 0
+15 31 4 0 1 0
+15 31 5 0 1 0
+15 31 6 0 1 0
+15 31 7 0 1 0
+15 31 8 0 1 0
+15 31 9 0 1 0
+15 31 10 0 1 0
+15 31 11 0 1 0
+15 31 12 0 1 0
+15 31 13 0 1 0
+15 31 14 0 1 0
+15 31 15 0 1 0
+15 31 16 0 1 0.100159
+15 31 17 0 1 0.269775
+15 31 18 0 1 0.367676
+15 31 19 0 1 0.450928
+15 31 20 0 1 0.525391
+15 31 21 0 1 0.595215
+15 31 22 0 1 0.660156
+15 31 23 0 1 0.71875
+15 31 24 0 1 0.771973
+15 31 25 0 1 0.825195
+15 31 26 0 1 0.877441
+15 31 27 0 1 0.927734
+15 31 28 0 1 0.975098
+15 31 29 0 1 1
+15 31 30 0 1 1
+15 31 31 0 1 1
+16 0 0 0.747559 0 0.0437927
+16 0 1 0.747559 0 0.0437622
+16 0 2 0.747559 0 0.0437622
+16 0 3 0.747559 0 0.0437622
+16 0 4 0.747559 0 0.0437317
+16 0 5 0.747559 0 0.0436707
+16 0 6 0.747559 0 0.0435486
+16 0 7 0.747559 0 0.043335
+16 0 8 0.747559 0 0.0429382
+16 0 9 0.747559 0 0.0421143
+16 0 10 0.75 0 0.0412903
+16 0 11 0.757812 0 0.121643
+16 0 12 0.763672 0 0.246826
+16 0 13 0.763672 0 0.346191
+16 0 14 0.753906 0 0.444824
+16 0 15 0.731934 0.196777 0.534668
+16 0 16 0.706543 0.2229 0.624023
+16 0 17 0.669434 0.233887 0.712402
+16 0 18 0.619141 0.244751 0.793457
+16 0 19 0.557617 0.254639 0.864258
+16 0 20 0.484619 0.262939 0.922363
+16 0 21 0.381348 0.260986 0.937012
+16 0 22 0.251221 0.257568 0.942383
+16 0 23 0 0.255615 0.946777
+16 0 24 0 0.254395 0.952148
+16 0 25 0 0.253662 0.958496
+16 0 26 0 0.253662 0.96582
+16 0 27 0 0.254395 0.974609
+16 0 28 0 0.255615 0.984863
+16 0 29 0 0.257568 0.996582
+16 0 30 0 0.259521 1
+16 0 31 0 0.261475 1
+16 1 0 0.747559 0 0.0437317
+16 1 1 0.747559 0 0.0437012
+16 1 2 0.747559 0 0.0437012
+16 1 3 0.747559 0 0.0437012
+16 1 4 0.747559 0 0.0436707
+16 1 5 0.747559 0 0.0436096
+16 1 6 0.747559 0 0.0434875
+16 1 7 0.747559 0 0.0432739
+16 1 8 0.747559 0 0.0428772
+16 1 9 0.747559 0 0.0420532
+16 1 10 0.75 0 0.0412292
+16 1 11 0.757812 0 0.121643
+16 1 12 0.763672 0 0.246826
+16 1 13 0.763672 0 0.346191
+16 1 14 0.753906 0 0.444824
+16 1 15 0.731934 0.196777 0.534668
+16 1 16 0.706543 0.223022 0.624023
+16 1 17 0.669434 0.234009 0.712402
+16 1 18 0.619141 0.244751 0.793457
+16 1 19 0.557617 0.254639 0.864258
+16 1 20 0.484619 0.263184 0.922363
+16 1 21 0.381348 0.260986 0.937012
+16 1 22 0.251221 0.257812 0.942383
+16 1 23 0 0.255615 0.946777
+16 1 24 0 0.254395 0.952148
+16 1 25 0 0.253662 0.958496
+16 1 26 0 0.253906 0.96582
+16 1 27 0 0.254395 0.974609
+16 1 28 0 0.255859 0.984863
+16 1 29 0 0.257568 0.996582
+16 1 30 0 0.259521 1
+16 1 31 0 0.261475 1
+16 2 0 0.747559 0 0.0436096
+16 2 1 0.747559 0 0.0436096
+16 2 2 0.747559 0 0.0436096
+16 2 3 0.747559 0 0.0435791
+16 2 4 0.747559 0 0.0435486
+16 2 5 0.747559 0 0.0434875
+16 2 6 0.747559 0 0.043396
+16 2 7 0.747559 0 0.0431824
+16 2 8 0.747559 0 0.0427551
+16 2 9 0.747559 0 0.0419312
+16 2 10 0.75 0 0.0411072
+16 2 11 0.757812 0 0.121582
+16 2 12 0.763672 0 0.246826
+16 2 13 0.763672 0 0.346191
+16 2 14 0.753906 0 0.444824
+16 2 15 0.731934 0.197021 0.534668
+16 2 16 0.706055 0.223022 0.624023
+16 2 17 0.669434 0.234009 0.712402
+16 2 18 0.619141 0.244873 0.793457
+16 2 19 0.557617 0.254883 0.864258
+16 2 20 0.484619 0.263184 0.922363
+16 2 21 0.381348 0.260986 0.937012
+16 2 22 0.251221 0.257812 0.942383
+16 2 23 0 0.255615 0.946777
+16 2 24 0 0.254395 0.952148
+16 2 25 0 0.253906 0.958496
+16 2 26 0 0.253906 0.96582
+16 2 27 0 0.254395 0.974609
+16 2 28 0 0.255859 0.984863
+16 2 29 0 0.257568 0.996582
+16 2 30 0 0.259521 1
+16 2 31 0 0.261475 1
+16 3 0 0.747559 0 0.0434265
+16 3 1 0.747559 0 0.0434265
+16 3 2 0.747559 0 0.0434265
+16 3 3 0.747559 0 0.043396
+16 3 4 0.747559 0 0.0433655
+16 3 5 0.747559 0 0.0433044
+16 3 6 0.747559 0 0.0432129
+16 3 7 0.747559 0 0.0429993
+16 3 8 0.747559 0 0.042572
+16 3 9 0.747559 0 0.0417175
+16 3 10 0.75 0 0.0409241
+16 3 11 0.757812 0 0.121582
+16 3 12 0.763672 0 0.246826
+16 3 13 0.763672 0 0.346191
+16 3 14 0.753906 0 0.444824
+16 3 15 0.731934 0.197266 0.534668
+16 3 16 0.706055 0.223267 0.624023
+16 3 17 0.669434 0.234253 0.712402
+16 3 18 0.619141 0.244995 0.793457
+16 3 19 0.557617 0.254883 0.864258
+16 3 20 0.484619 0.263184 0.922363
+16 3 21 0.381104 0.260986 0.937012
+16 3 22 0.251221 0.257812 0.942383
+16 3 23 0 0.255615 0.946777
+16 3 24 0 0.254395 0.952148
+16 3 25 0 0.253906 0.958496
+16 3 26 0 0.253906 0.96582
+16 3 27 0 0.254395 0.974609
+16 3 28 0 0.255859 0.984863
+16 3 29 0 0.257568 0.996582
+16 3 30 0 0.259521 1
+16 3 31 0 0.261475 1
+16 4 0 0.747559 0 0.0430603
+16 4 1 0.747559 0 0.0430603
+16 4 2 0.747559 0 0.0430603
+16 4 3 0.747559 0 0.0430298
+16 4 4 0.747559 0 0.0429993
+16 4 5 0.747559 0 0.0429382
+16 4 6 0.747559 0 0.0428467
+16 4 7 0.747559 0 0.0426025
+16 4 8 0.747559 0 0.0421753
+16 4 9 0.747559 0 0.0413208
+16 4 10 0.75 0 0.0404968
+16 4 11 0.757812 0 0.121521
+16 4 12 0.763672 0 0.246826
+16 4 13 0.763672 0 0.346191
+16 4 14 0.753906 0 0.444824
+16 4 15 0.731934 0.197754 0.534668
+16 4 16 0.706055 0.223755 0.624023
+16 4 17 0.668945 0.234619 0.712402
+16 4 18 0.619141 0.245361 0.793457
+16 4 19 0.557617 0.255127 0.864258
+16 4 20 0.484619 0.263428 0.922363
+16 4 21 0.381104 0.26123 0.937012
+16 4 22 0.250977 0.258057 0.942383
+16 4 23 0 0.255859 0.946777
+16 4 24 0 0.254639 0.952148
+16 4 25 0 0.253906 0.958496
+16 4 26 0 0.253906 0.96582
+16 4 27 0 0.254639 0.974609
+16 4 28 0 0.255859 0.984863
+16 4 29 0 0.257568 0.996582
+16 4 30 0 0.259766 1
+16 4 31 0 0.261475 1
+16 5 0 0.747559 0 0.0423279
+16 5 1 0.747559 0 0.0423279
+16 5 2 0.747559 0 0.0423279
+16 5 3 0.747559 0 0.0422974
+16 5 4 0.747559 0 0.0422668
+16 5 5 0.747559 0 0.0422058
+16 5 6 0.747559 0 0.0421143
+16 5 7 0.747559 0 0.0418701
+16 5 8 0.747559 0 0.0414429
+16 5 9 0.747559 0 0.0405579
+16 5 10 0.75 0 0.0397034
+16 5 11 0.757812 0 0.12146
+16 5 12 0.763672 0 0.246704
+16 5 13 0.763672 0 0.345947
+16 5 14 0.753906 0.0201111 0.44458
+16 5 15 0.731934 0.19873 0.534668
+16 5 16 0.706055 0.224487 0.624023
+16 5 17 0.668945 0.235352 0.712402
+16 5 18 0.619141 0.245972 0.793457
+16 5 19 0.557617 0.255615 0.864258
+16 5 20 0.484619 0.263916 0.922363
+16 5 21 0.381104 0.261719 0.937012
+16 5 22 0.250977 0.258301 0.942383
+16 5 23 0 0.256104 0.947266
+16 5 24 0 0.254883 0.952148
+16 5 25 0 0.25415 0.958496
+16 5 26 0 0.25415 0.96582
+16 5 27 0 0.254639 0.974609
+16 5 28 0 0.256104 0.984863
+16 5 29 0 0.257812 0.996582
+16 5 30 0 0.259766 1
+16 5 31 0 0.261475 1
+16 6 0 0.747559 0 0.0408936
+16 6 1 0.747559 0 0.0408936
+16 6 2 0.747559 0 0.0408936
+16 6 3 0.747559 0 0.040863
+16 6 4 0.747559 0 0.0408325
+16 6 5 0.747559 0 0.0407715
+16 6 6 0.747559 0 0.0406494
+16 6 7 0.747559 0 0.0404358
+16 6 8 0.747559 0 0.0399475
+16 6 9 0.747559 0 0.039032
+16 6 10 0.750488 0 0.0380859
+16 6 11 0.757812 0 0.121277
+16 6 12 0.763672 0 0.246582
+16 6 13 0.763672 0 0.345947
+16 6 14 0.753906 0.0503845 0.44458
+16 6 15 0.731445 0.200562 0.534668
+16 6 16 0.706055 0.226074 0.624023
+16 6 17 0.668945 0.236694 0.712402
+16 6 18 0.619141 0.24707 0.793457
+16 6 19 0.557617 0.256592 0.864258
+16 6 20 0.484375 0.264893 0.922363
+16 6 21 0.380859 0.262451 0.937012
+16 6 22 0.250732 0.258789 0.942383
+16 6 23 0 0.256592 0.947266
+16 6 24 0 0.255127 0.952148
+16 6 25 0 0.254639 0.958496
+16 6 26 0 0.254395 0.96582
+16 6 27 0 0.254883 0.974609
+16 6 28 0 0.256348 0.985352
+16 6 29 0 0.258057 0.996582
+16 6 30 0 0.26001 1
+16 6 31 0 0.261719 1
+16 7 0 0.747559 0 0.0378418
+16 7 1 0.747559 0 0.0378418
+16 7 2 0.747559 0 0.0378418
+16 7 3 0.747559 0 0.0378113
+16 7 4 0.747559 0 0.0377808
+16 7 5 0.747559 0 0.0377197
+16 7 6 0.747559 0 0.0375671
+16 7 7 0.747559 0 0.0372925
+16 7 8 0.748047 0 0.0367737
+16 7 9 0.748047 0 0.0357056
+16 7 10 0.750488 0 0.0346069
+16 7 11 0.757812 0 0.120911
+16 7 12 0.763672 0 0.246338
+16 7 13 0.763672 0 0.345947
+16 7 14 0.753906 0.0745239 0.44458
+16 7 15 0.731445 0.204102 0.534668
+16 7 16 0.706055 0.228882 0.624023
+16 7 17 0.668945 0.239136 0.712402
+16 7 18 0.618652 0.249268 0.793457
+16 7 19 0.557129 0.258545 0.864258
+16 7 20 0.484131 0.266357 0.922363
+16 7 21 0.380615 0.263672 0.937012
+16 7 22 0.250244 0.26001 0.942383
+16 7 23 0 0.257568 0.947266
+16 7 24 0 0.256104 0.952148
+16 7 25 0 0.255371 0.958496
+16 7 26 0 0.255127 0.96582
+16 7 27 0 0.255615 0.974609
+16 7 28 0 0.256836 0.985352
+16 7 29 0 0.258301 0.99707
+16 7 30 0 0.260254 1
+16 7 31 0 0.261963 1
+16 8 0 0.748047 0 0.030304
+16 8 1 0.748047 0 0.030304
+16 8 2 0.748047 0 0.0302887
+16 8 3 0.748047 0 0.0302582
+16 8 4 0.748047 0 0.0301971
+16 8 5 0.748047 0 0.0301056
+16 8 6 0.748047 0 0.0299072
+16 8 7 0.748047 0 0.0295105
+16 8 8 0.748047 0 0.028717
+16 8 9 0.748047 0 0.0270844
+16 8 10 0.750488 0 0.025238
+16 8 11 0.758301 0 0.120361
+16 8 12 0.763184 0 0.24585
+16 8 13 0.763184 0 0.345459
+16 8 14 0.753418 0.101868 0.444336
+16 8 15 0.730957 0.210571 0.534668
+16 8 16 0.705566 0.234375 0.624023
+16 8 17 0.668457 0.244019 0.712402
+16 8 18 0.618164 0.253418 0.793457
+16 8 19 0.556641 0.262207 0.864258
+16 8 20 0.483643 0.269531 0.922363
+16 8 21 0.380127 0.266357 0.937012
+16 8 22 0.249146 0.262207 0.942383
+16 8 23 0 0.259521 0.947266
+16 8 24 0 0.257812 0.952148
+16 8 25 0 0.256592 0.958496
+16 8 26 0 0.256348 0.96582
+16 8 27 0 0.256592 0.974609
+16 8 28 0 0.257568 0.985352
+16 8 29 0 0.259277 0.99707
+16 8 30 0 0.260986 1
+16 8 31 0 0.262695 1
+16 9 0 0.748535 0.0731201 0
+16 9 1 0.748535 0.0731201 0
+16 9 2 0.748535 0.0732422 0
+16 9 3 0.748535 0.0733643 0
+16 9 4 0.748535 0.0736084 0
+16 9 5 0.748535 0.0740967 0
+16 9 6 0.748535 0.0749512 0
+16 9 7 0.748535 0.0766602 0
+16 9 8 0.748535 0.079834 0
+16 9 9 0.749023 0.0853882 0
+16 9 10 0.750977 0.0908813 0
+16 9 11 0.758301 0.0896606 0.119446
+16 9 12 0.762695 0.0715942 0.244995
+16 9 13 0.762695 0.0581055 0.344971
+16 9 14 0.75293 0.134766 0.444092
+16 9 15 0.730469 0.22229 0.53418
+16 9 16 0.70459 0.244385 0.624023
+16 9 17 0.66748 0.25293 0.712402
+16 9 18 0.617676 0.26123 0.793457
+16 9 19 0.556152 0.269043 0.864258
+16 9 20 0.482666 0.275391 0.922363
+16 9 21 0.378906 0.27124 0.9375
+16 9 22 0.247192 0.266357 0.942871
+16 9 23 0 0.262939 0.947266
+16 9 24 0 0.260742 0.952637
+16 9 25 0 0.259521 0.958984
+16 9 26 0 0.258789 0.966309
+16 9 27 0 0.258789 0.975098
+16 9 28 0 0.259521 0.985352
+16 9 29 0 0.260742 0.99707
+16 9 30 0 0.262207 1
+16 9 31 0 0.263672 1
+16 10 0 0.749512 0.149536 0
+16 10 1 0.749512 0.149536 0
+16 10 2 0.749512 0.149658 0
+16 10 3 0.749512 0.149658 0
+16 10 4 0.749512 0.14978 0
+16 10 5 0.749512 0.149902 0
+16 10 6 0.749512 0.150146 0
+16 10 7 0.749512 0.150757 0
+16 10 8 0.749512 0.151855 0
+16 10 9 0.749512 0.153931 0
+16 10 10 0.751953 0.156494 0
+16 10 11 0.758789 0.156372 0.118591
+16 10 12 0.761719 0.149292 0.243774
+16 10 13 0.761719 0.145386 0.344238
+16 10 14 0.752441 0.174316 0.443359
+16 10 15 0.729004 0.241455 0.53418
+16 10 16 0.703613 0.260986 0.624023
+16 10 17 0.666504 0.268066 0.712402
+16 10 18 0.616211 0.274658 0.793457
+16 10 19 0.554688 0.280762 0.864258
+16 10 20 0.480957 0.285645 0.922363
+16 10 21 0.376953 0.280029 0.937988
+16 10 22 0.243774 0.273682 0.943359
+16 10 23 0 0.269287 0.947754
+16 10 24 0 0.266357 0.953125
+16 10 25 0 0.26416 0.959473
+16 10 26 0 0.262939 0.966797
+16 10 27 0 0.262451 0.975586
+16 10 28 0 0.262695 0.98584
+16 10 29 0 0.263428 0.997559
+16 10 30 0 0.264648 1
+16 10 31 0 0.265869 1
+16 11 0 0.750488 0.213013 0
+16 11 1 0.750488 0.213013 0
+16 11 2 0.750488 0.213013 0
+16 11 3 0.750488 0.213013 0
+16 11 4 0.750488 0.213013 0
+16 11 5 0.750488 0.213135 0
+16 11 6 0.750488 0.213379 0
+16 11 7 0.750488 0.213623 0
+16 11 8 0.750488 0.214355 0
+16 11 9 0.750488 0.215576 0
+16 11 10 0.752441 0.217285 0
+16 11 11 0.758301 0.217407 0.119507
+16 11 12 0.760254 0.212891 0.242188
+16 11 13 0.759766 0.210693 0.343018
+16 11 14 0.750488 0.22168 0.442139
+16 11 15 0.727051 0.27002 0.53418
+16 11 16 0.701172 0.286621 0.623535
+16 11 17 0.664062 0.291504 0.712402
+16 11 18 0.61377 0.295898 0.793457
+16 11 19 0.551758 0.299561 0.864746
+16 11 20 0.477783 0.302246 0.922852
+16 11 21 0.373291 0.294189 0.938477
+16 11 22 0.237305 0.285889 0.943848
+16 11 23 0 0.280029 0.94873
+16 11 24 0 0.275635 0.954102
+16 11 25 0 0.272461 0.959961
+16 11 26 0 0.27002 0.967773
+16 11 27 0 0.268555 0.976074
+16 11 28 0 0.268066 0.986816
+16 11 29 0 0.268311 0.998535
+16 11 30 0 0.268799 1
+16 11 31 0 0.269287 1
+16 12 0 0.750488 0.280029 0
+16 12 1 0.750488 0.280029 0
+16 12 2 0.750488 0.280029 0
+16 12 3 0.750488 0.280029 0
+16 12 4 0.750488 0.280273 0
+16 12 5 0.750488 0.280273 0
+16 12 6 0.750488 0.280273 0
+16 12 7 0.750488 0.280518 0
+16 12 8 0.750488 0.281006 0
+16 12 9 0.750977 0.281738 0
+16 12 10 0.751953 0.283203 0
+16 12 11 0.754883 0.282959 0.128052
+16 12 12 0.755859 0.280029 0.241943
+16 12 13 0.755859 0.276855 0.340088
+16 12 14 0.747559 0.279053 0.439941
+16 12 15 0.723633 0.310059 0.533203
+16 12 16 0.696777 0.323486 0.623047
+16 12 17 0.659668 0.325928 0.711914
+16 12 18 0.609375 0.327148 0.793945
+16 12 19 0.546875 0.327881 0.864746
+16 12 20 0.472412 0.327881 0.92334
+16 12 21 0.366943 0.31665 0.939941
+16 12 22 0.225586 0.305176 0.945312
+16 12 23 0 0.296875 0.950195
+16 12 24 0 0.290527 0.955078
+16 12 25 0 0.285645 0.961426
+16 12 26 0 0.281738 0.96875
+16 12 27 0 0.278809 0.977539
+16 12 28 0 0.2771 0.988281
+16 12 29 0 0.276123 0.999512
+16 12 30 0 0.275391 1
+16 12 31 0 0.275146 1
+16 13 0 0.748047 0.353027 0
+16 13 1 0.748047 0.353027 0
+16 13 2 0.748047 0.353027 0
+16 13 3 0.748047 0.353027 0
+16 13 4 0.748047 0.353027 0
+16 13 5 0.748047 0.353027 0
+16 13 6 0.748047 0.353271 0
+16 13 7 0.748047 0.353271 0
+16 13 8 0.748047 0.353516 0
+16 13 9 0.748047 0.354004 0
+16 13 10 0.748047 0.35498 0
+16 13 11 0.748535 0.354492 0.152344
+16 13 12 0.748047 0.353271 0.247681
+16 13 13 0.74707 0.350586 0.338135
+16 13 14 0.740723 0.348145 0.436035
+16 13 15 0.717285 0.361816 0.532227
+16 13 16 0.689453 0.372314 0.62207
+16 13 17 0.652344 0.37207 0.711426
+16 13 18 0.602051 0.370361 0.793457
+16 13 19 0.539062 0.367432 0.865234
+16 13 20 0.463379 0.364014 0.923828
+16 13 21 0.355713 0.348633 0.941895
+16 13 22 0.203613 0.333252 0.947266
+16 13 23 0 0.321777 0.952148
+16 13 24 0 0.312988 0.95752
+16 13 25 0 0.305664 0.963867
+16 13 26 0 0.299561 0.971191
+16 13 27 0 0.294678 0.97998
+16 13 28 0 0.29126 0.990234
+16 13 29 0 0.28833 1
+16 13 30 0 0.285889 1
+16 13 31 0 0.284424 1
+16 14 0 0.739746 0.43042 0.114685
+16 14 1 0.739746 0.43042 0.114685
+16 14 2 0.739746 0.43042 0.114685
+16 14 3 0.739746 0.43042 0.114685
+16 14 4 0.739746 0.43042 0.114746
+16 14 5 0.739746 0.43042 0.114746
+16 14 6 0.739746 0.43042 0.114807
+16 14 7 0.739746 0.430664 0.114929
+16 14 8 0.739746 0.430664 0.115234
+16 14 9 0.739746 0.431152 0.115723
+16 14 10 0.740234 0.431641 0.116577
+16 14 11 0.73877 0.431885 0.192017
+16 14 12 0.736328 0.431396 0.265625
+16 14 13 0.731934 0.430176 0.343262
+16 14 14 0.725586 0.427002 0.431396
+16 14 15 0.706543 0.426514 0.528809
+16 14 16 0.677734 0.43335 0.620605
+16 14 17 0.640625 0.430664 0.710449
+16 14 18 0.589355 0.425781 0.792969
+16 14 19 0.525879 0.419189 0.865234
+16 14 20 0.447998 0.411865 0.924316
+16 14 21 0.336426 0.392334 0.944824
+16 14 22 0.15686 0.37207 0.950684
+16 14 23 0 0.356445 0.956055
+16 14 24 0 0.344482 0.961426
+16 14 25 0 0.333984 0.967773
+16 14 26 0 0.325195 0.975098
+16 14 27 0 0.317627 0.983887
+16 14 28 0 0.311279 0.992188
+16 14 29 0 0.305908 1
+16 14 30 0 0.301514 1
+16 14 31 0 0.298096 1
+16 15 0 0.730469 0.515625 0.186157
+16 15 1 0.730469 0.515625 0.186157
+16 15 2 0.730469 0.515625 0.186157
+16 15 3 0.730469 0.515625 0.186157
+16 15 4 0.730469 0.515625 0.186157
+16 15 5 0.730469 0.515625 0.186157
+16 15 6 0.730469 0.515625 0.186279
+16 15 7 0.730957 0.515625 0.186279
+16 15 8 0.730957 0.515625 0.186279
+16 15 9 0.730957 0.516113 0.186401
+16 15 10 0.730957 0.516602 0.186646
+16 15 11 0.729492 0.516602 0.225098
+16 15 12 0.725098 0.516113 0.288574
+16 15 13 0.716797 0.514648 0.358887
+16 15 14 0.703613 0.51123 0.436035
+16 15 15 0.685059 0.505859 0.521973
+16 15 16 0.657715 0.505371 0.616699
+16 15 17 0.620605 0.500488 0.708008
+16 15 18 0.569336 0.492676 0.791992
+16 15 19 0.503906 0.48291 0.864746
+16 15 20 0.422119 0.471436 0.924805
+16 15 21 0.302002 0.447754 0.949219
+16 15 22 0 0.422119 0.955566
+16 15 23 0 0.4021 0.961426
+16 15 24 0 0.38623 0.967285
+16 15 25 0 0.37207 0.973145
+16 15 26 0 0.359131 0.979492
+16 15 27 0 0.3479 0.986328
+16 15 28 0 0.338379 0.994629
+16 15 29 0 0.330322 1
+16 15 30 0 0.323486 1
+16 15 31 0 0.317627 1
+16 16 0 0.709473 0.609375 0.199219
+16 16 1 0.709473 0.609375 0.199219
+16 16 2 0.709473 0.609375 0.199219
+16 16 3 0.709473 0.609375 0.199219
+16 16 4 0.709473 0.609375 0.199219
+16 16 5 0.709473 0.609375 0.199219
+16 16 6 0.709473 0.609375 0.199219
+16 16 7 0.709473 0.609375 0.199219
+16 16 8 0.709473 0.609375 0.199341
+16 16 9 0.709473 0.609863 0.199341
+16 16 10 0.709473 0.610352 0.199341
+16 16 11 0.708496 0.610352 0.220337
+16 16 12 0.70459 0.609863 0.287598
+16 16 13 0.696777 0.608398 0.36084
+16 16 14 0.683594 0.60498 0.441162
+16 16 15 0.661133 0.598145 0.525391
+16 16 16 0.625977 0.585938 0.610352
+16 16 17 0.588379 0.580078 0.703125
+16 16 18 0.536133 0.569824 0.788574
+16 16 19 0.467529 0.557129 0.863281
+16 16 20 0.377686 0.541992 0.924316
+16 16 21 0.231934 0.514648 0.953613
+16 16 22 0 0.483154 0.960938
+16 16 23 0 0.458008 0.966797
+16 16 24 0 0.437256 0.972168
+16 16 25 0 0.418701 0.977539
+16 16 26 0 0.4021 0.983398
+16 16 27 0 0.386963 0.990234
+16 16 28 0 0.374023 0.998535
+16 16 29 0 0.362549 1
+16 16 30 0 0.352539 1
+16 16 31 0 0.34375 1
+16 17 0 0.649902 0.6875 0.192139
+16 17 1 0.649902 0.6875 0.192139
+16 17 2 0.649902 0.6875 0.192139
+16 17 3 0.649902 0.6875 0.192139
+16 17 4 0.649902 0.6875 0.192139
+16 17 5 0.649902 0.6875 0.192139
+16 17 6 0.649902 0.6875 0.192139
+16 17 7 0.649902 0.6875 0.192139
+16 17 8 0.649902 0.6875 0.192139
+16 17 9 0.649902 0.6875 0.192139
+16 17 10 0.649902 0.687988 0.192261
+16 17 11 0.650391 0.687988 0.192261
+16 17 12 0.646484 0.6875 0.263672
+16 17 13 0.63916 0.686523 0.340332
+16 17 14 0.626465 0.683105 0.422119
+16 17 15 0.605957 0.676758 0.508301
+16 17 16 0.57666 0.669922 0.599609
+16 17 17 0.538574 0.663574 0.693848
+16 17 18 0.483398 0.652344 0.781738
+16 17 19 0.407227 0.637695 0.858887
+16 17 20 0.296143 0.620117 0.922363
+16 17 21 0 0.589844 0.957031
+16 17 22 0 0.553223 0.967285
+16 17 23 0 0.522949 0.974121
+16 17 24 0 0.497559 0.97998
+16 17 25 0 0.474609 0.985352
+16 17 26 0 0.453369 0.991211
+16 17 27 0 0.434082 0.99707
+16 17 28 0 0.416992 1
+16 17 29 0 0.401611 1
+16 17 30 0 0.388184 1
+16 17 31 0 0.375977 1
+16 18 0 0.569336 0.756348 0.182861
+16 18 1 0.569336 0.756348 0.182861
+16 18 2 0.569336 0.756348 0.182861
+16 18 3 0.569336 0.756348 0.182861
+16 18 4 0.569336 0.756348 0.182861
+16 18 5 0.569336 0.756348 0.182861
+16 18 6 0.569336 0.756348 0.182861
+16 18 7 0.569336 0.756348 0.182861
+16 18 8 0.569336 0.756348 0.182983
+16 18 9 0.569336 0.756836 0.182983
+16 18 10 0.569336 0.756836 0.182983
+16 18 11 0.569824 0.757324 0.183105
+16 18 12 0.567383 0.757324 0.231445
+16 18 13 0.561035 0.756836 0.314209
+16 18 14 0.549805 0.755859 0.398926
+16 18 15 0.531738 0.753906 0.488525
+16 18 16 0.503906 0.750977 0.583984
+16 18 17 0.462158 0.745605 0.680176
+16 18 18 0.398193 0.734863 0.770508
+16 18 19 0.297852 0.719238 0.850586
+16 18 20 0 0.700195 0.916504
+16 18 21 0 0.669434 0.958496
+16 18 22 0 0.630371 0.975586
+16 18 23 0 0.595703 0.985352
+16 18 24 0 0.565918 0.991699
+16 18 25 0 0.538086 0.99707
+16 18 26 0 0.512207 1
+16 18 27 0 0.488281 1
+16 18 28 0 0.466553 1
+16 18 29 0 0.447021 1
+16 18 30 0 0.429443 1
+16 18 31 0 0.413574 1
+16 19 0 0.468506 0.822266 0.174194
+16 19 1 0.468506 0.822266 0.174194
+16 19 2 0.468506 0.822266 0.174194
+16 19 3 0.468506 0.822266 0.174194
+16 19 4 0.468506 0.822266 0.174194
+16 19 5 0.468506 0.822266 0.174194
+16 19 6 0.468506 0.822266 0.174194
+16 19 7 0.468506 0.822266 0.174194
+16 19 8 0.468506 0.822266 0.174194
+16 19 9 0.468506 0.822266 0.174194
+16 19 10 0.46875 0.822754 0.174194
+16 19 11 0.468994 0.822754 0.174316
+16 19 12 0.468506 0.823242 0.190796
+16 19 13 0.461182 0.82373 0.285156
+16 19 14 0.448975 0.824707 0.374268
+16 19 15 0.428467 0.825195 0.466553
+16 19 16 0.394287 0.824707 0.563477
+16 19 17 0.337402 0.820801 0.661621
+16 19 18 0.229614 0.812012 0.754395
+16 19 19 0 0.797363 0.837402
+16 19 20 0 0.777832 0.906738
+16 19 21 0 0.748535 0.956543
+16 19 22 0 0.710449 0.983398
+16 19 23 0 0.67334 0.998047
+16 19 24 0 0.640137 1
+16 19 25 0 0.607422 1
+16 19 26 0 0.57666 1
+16 19 27 0 0.547852 1
+16 19 28 0 0.520996 1
+16 19 29 0 0.496826 1
+16 19 30 0 0.474854 1
+16 19 31 0 0.455078 1
+16 20 0 0.318604 0.881348 0.165527
+16 20 1 0.318604 0.881348 0.165527
+16 20 2 0.318604 0.881348 0.165527
+16 20 3 0.318604 0.881348 0.165527
+16 20 4 0.318604 0.881348 0.165527
+16 20 5 0.318604 0.881348 0.165527
+16 20 6 0.318604 0.881348 0.165527
+16 20 7 0.318604 0.881348 0.165527
+16 20 8 0.318848 0.881348 0.165527
+16 20 9 0.318848 0.881348 0.165527
+16 20 10 0.319092 0.881348 0.165649
+16 20 11 0.31958 0.881836 0.165649
+16 20 12 0.320557 0.881836 0.165771
+16 20 13 0.310791 0.883301 0.251953
+16 20 14 0.288818 0.885254 0.347656
+16 20 15 0.248413 0.887207 0.442139
+16 20 16 0.15271 0.888184 0.540527
+16 20 17 0 0.886719 0.63916
+16 20 18 0 0.879883 0.733887
+16 20 19 0 0.866699 0.819336
+16 20 20 0 0.848633 0.89209
+16 20 21 0 0.823242 0.950195
+16 20 22 0 0.789062 0.988281
+16 20 23 0 0.751953 1
+16 20 24 0 0.716309 1
+16 20 25 0 0.680176 1
+16 20 26 0 0.644531 1
+16 20 27 0 0.610352 1
+16 20 28 0 0.579102 1
+16 20 29 0 0.549805 1
+16 20 30 0 0.523438 1
+16 20 31 0 0.499023 1
+16 21 0 0 0.932617 0.156494
+16 21 1 0 0.932617 0.156494
+16 21 2 0 0.932617 0.156494
+16 21 3 0 0.932617 0.156494
+16 21 4 0 0.932617 0.156494
+16 21 5 0 0.932617 0.156494
+16 21 6 0 0.932617 0.156494
+16 21 7 0 0.932617 0.156494
+16 21 8 0 0.932617 0.156494
+16 21 9 0 0.932617 0.156616
+16 21 10 0 0.932617 0.156616
+16 21 11 0 0.933105 0.156738
+16 21 12 0 0.933105 0.15686
+16 21 13 0 0.934082 0.211304
+16 21 14 0 0.936523 0.317383
+16 21 15 0 0.939453 0.415039
+16 21 16 0 0.942383 0.51416
+16 21 17 0 0.942383 0.613281
+16 21 18 0 0.937988 0.709473
+16 21 19 0 0.927734 0.796875
+16 21 20 0 0.911621 0.872559
+16 21 21 0 0.890137 0.936523
+16 21 22 0 0.861816 0.984863
+16 21 23 0 0.827637 1
+16 21 24 0 0.791504 1
+16 21 25 0 0.753418 1
+16 21 26 0 0.714355 1
+16 21 27 0 0.67627 1
+16 21 28 0 0.639648 1
+16 21 29 0 0.605957 1
+16 21 30 0 0.574219 1
+16 21 31 0 0.54541 1
+16 22 0 0 0.975098 0.147217
+16 22 1 0 0.975098 0.147217
+16 22 2 0 0.975098 0.147217
+16 22 3 0 0.975098 0.147217
+16 22 4 0 0.975098 0.147217
+16 22 5 0 0.975098 0.147217
+16 22 6 0 0.975098 0.147217
+16 22 7 0 0.975098 0.147217
+16 22 8 0 0.975098 0.147217
+16 22 9 0 0.975098 0.147217
+16 22 10 0 0.975098 0.147339
+16 22 11 0 0.975586 0.147339
+16 22 12 0 0.975586 0.147461
+16 22 13 0 0.976074 0.157471
+16 22 14 0 0.979004 0.284424
+16 22 15 0 0.982422 0.38623
+16 22 16 0 0.986328 0.486084
+16 22 17 0 0.988281 0.585449
+16 22 18 0 0.986816 0.682129
+16 22 19 0 0.979492 0.770996
+16 22 20 0 0.966309 0.849121
+16 22 21 0 0.947266 0.916504
+16 22 22 0 0.92334 0.97168
+16 22 23 0 0.894043 1
+16 22 24 0 0.861328 1
+16 22 25 0 0.823242 1
+16 22 26 0 0.783203 1
+16 22 27 0 0.741699 1
+16 22 28 0 0.701172 1
+16 22 29 0 0.663086 1
+16 22 30 0 0.626953 1
+16 22 31 0 0.59375 1
+16 23 0 0 1 0.138062
+16 23 1 0 1 0.138062
+16 23 2 0 1 0.138062
+16 23 3 0 1 0.138062
+16 23 4 0 1 0.138062
+16 23 5 0 1 0.138062
+16 23 6 0 1 0.138062
+16 23 7 0 1 0.138062
+16 23 8 0 1 0.138062
+16 23 9 0 1 0.138062
+16 23 10 0 1 0.138184
+16 23 11 0 1 0.138184
+16 23 12 0 1 0.138306
+16 23 13 0 1 0.13855
+16 23 14 0 1 0.249023
+16 23 15 0 1 0.357178
+16 23 16 0 1 0.458252
+16 23 17 0 1 0.557617
+16 23 18 0 1 0.653809
+16 23 19 0 1 0.743652
+16 23 20 0 1 0.82373
+16 23 21 0 0.994141 0.893555
+16 23 22 0 0.972656 0.952148
+16 23 23 0 0.948242 0.998535
+16 23 24 0 0.919922 1
+16 23 25 0 0.885254 1
+16 23 26 0 0.845215 1
+16 23 27 0 0.803223 1
+16 23 28 0 0.760254 1
+16 23 29 0 0.718262 1
+16 23 30 0 0.678223 1
+16 23 31 0 0.641113 1
+16 24 0 0 1 0.129028
+16 24 1 0 1 0.129028
+16 24 2 0 1 0.129028
+16 24 3 0 1 0.129028
+16 24 4 0 1 0.129028
+16 24 5 0 1 0.129028
+16 24 6 0 1 0.129028
+16 24 7 0 1 0.129028
+16 24 8 0 1 0.129028
+16 24 9 0 1 0.129028
+16 24 10 0 1 0.129028
+16 24 11 0 1 0.12915
+16 24 12 0 1 0.129272
+16 24 13 0 1 0.129517
+16 24 14 0 1 0.209473
+16 24 15 0 1 0.327637
+16 24 16 0 1 0.430664
+16 24 17 0 1 0.529785
+16 24 18 0 1 0.625488
+16 24 19 0 1 0.715332
+16 24 20 0 1 0.796387
+16 24 21 0 1 0.868652
+16 24 22 0 1 0.929688
+16 24 23 0 0.992188 0.979492
+16 24 24 0 0.967773 1
+16 24 25 0 0.9375 1
+16 24 26 0 0.900391 1
+16 24 27 0 0.858887 1
+16 24 28 0 0.814941 1
+16 24 29 0 0.770508 1
+16 24 30 0 0.728027 1
+16 24 31 0 0.687012 1
+16 25 0 0 1 0.119141
+16 25 1 0 1 0.119141
+16 25 2 0 1 0.119141
+16 25 3 0 1 0.119141
+16 25 4 0 1 0.119141
+16 25 5 0 1 0.119141
+16 25 6 0 1 0.119141
+16 25 7 0 1 0.119141
+16 25 8 0 1 0.119141
+16 25 9 0 1 0.119202
+16 25 10 0 1 0.119202
+16 25 11 0 1 0.119324
+16 25 12 0 1 0.119446
+16 25 13 0 1 0.11969
+16 25 14 0 1 0.155151
+16 25 15 0 1 0.294434
+16 25 16 0 1 0.400391
+16 25 17 0 1 0.499512
+16 25 18 0 1 0.594727
+16 25 19 0 1 0.684082
+16 25 20 0 1 0.765625
+16 25 21 0 1 0.838867
+16 25 22 0 1 0.90332
+16 25 23 0 1 0.956055
+16 25 24 0 1 0.999512
+16 25 25 0 0.984863 1
+16 25 26 0 0.952148 1
+16 25 27 0 0.913086 1
+16 25 28 0 0.869629 1
+16 25 29 0 0.824707 1
+16 25 30 0 0.779297 1
+16 25 31 0 0.735352 1
+16 26 0 0 1 0.108337
+16 26 1 0 1 0.108337
+16 26 2 0 1 0.108337
+16 26 3 0 1 0.108337
+16 26 4 0 1 0.108337
+16 26 5 0 1 0.108337
+16 26 6 0 1 0.108337
+16 26 7 0 1 0.108337
+16 26 8 0 1 0.108337
+16 26 9 0 1 0.108398
+16 26 10 0 1 0.108459
+16 26 11 0 1 0.108521
+16 26 12 0 1 0.108643
+16 26 13 0 1 0.108887
+16 26 14 0 1 0.109253
+16 26 15 0 1 0.256348
+16 26 16 0 1 0.36792
+16 26 17 0 1 0.467285
+16 26 18 0 1 0.561523
+16 26 19 0 1 0.649902
+16 26 20 0 1 0.731445
+16 26 21 0 1 0.805664
+16 26 22 0 1 0.87207
+16 26 23 0 1 0.927734
+16 26 24 0 1 0.974121
+16 26 25 0 1 1
+16 26 26 0 0.999512 1
+16 26 27 0 0.964355 1
+16 26 28 0 0.922852 1
+16 26 29 0 0.878418 1
+16 26 30 0 0.832031 1
+16 26 31 0 0.786133 1
+16 27 0 0 1 0.0963135
+16 27 1 0 1 0.0963135
+16 27 2 0 1 0.0963135
+16 27 3 0 1 0.0963135
+16 27 4 0 1 0.0963135
+16 27 5 0 1 0.0963135
+16 27 6 0 1 0.0963135
+16 27 7 0 1 0.0963135
+16 27 8 0 1 0.0963745
+16 27 9 0 1 0.0963745
+16 27 10 0 1 0.0964355
+16 27 11 0 1 0.0965576
+16 27 12 0 1 0.0966797
+16 27 13 0 1 0.0969238
+16 27 14 0 1 0.0973511
+16 27 15 0 1 0.210083
+16 27 16 0 1 0.33252
+16 27 17 0 1 0.433105
+16 27 18 0 1 0.526367
+16 27 19 0 1 0.61377
+16 27 20 0 1 0.694336
+16 27 21 0 1 0.769043
+16 27 22 0 1 0.836426
+16 27 23 0 1 0.894043
+16 27 24 0 1 0.943359
+16 27 25 0 1 0.98877
+16 27 26 0 1 1
+16 27 27 0 1 1
+16 27 28 0 0.973145 1
+16 27 29 0 0.930176 1
+16 27 30 0 0.883789 1
+16 27 31 0 0.836914 1
+16 28 0 0 1 0.0825806
+16 28 1 0 1 0.0825806
+16 28 2 0 1 0.0825806
+16 28 3 0 1 0.0825806
+16 28 4 0 1 0.0825806
+16 28 5 0 1 0.0825806
+16 28 6 0 1 0.0825806
+16 28 7 0 1 0.0825806
+16 28 8 0 1 0.0826416
+16 28 9 0 1 0.0826416
+16 28 10 0 1 0.0827026
+16 28 11 0 1 0.0828247
+16 28 12 0 1 0.0830078
+16 28 13 0 1 0.083313
+16 28 14 0 1 0.0838013
+16 28 15 0 1 0.144653
+16 28 16 0 1 0.293457
+16 28 17 0 1 0.396729
+16 28 18 0 1 0.489502
+16 28 19 0 1 0.575684
+16 28 20 0 1 0.655273
+16 28 21 0 1 0.729492
+16 28 22 0 1 0.797363
+16 28 23 0 1 0.856445
+16 28 24 0 1 0.907715
+16 28 25 0 1 0.956055
+16 28 26 0 1 1
+16 28 27 0 1 1
+16 28 28 0 1 1
+16 28 29 0 0.978516 1
+16 28 30 0 0.93457 1
+16 28 31 0 0.887695 1
+16 29 0 0 1 0.0656738
+16 29 1 0 1 0.0656738
+16 29 2 0 1 0.0656738
+16 29 3 0 1 0.0656738
+16 29 4 0 1 0.0656738
+16 29 5 0 1 0.0656738
+16 29 6 0 1 0.0656738
+16 29 7 0 1 0.0657349
+16 29 8 0 1 0.0657349
+16 29 9 0 1 0.0657959
+16 29 10 0 1 0.0658569
+16 29 11 0 1 0.065979
+16 29 12 0 1 0.0662231
+16 29 13 0 1 0.0665894
+16 29 14 0 1 0.0671997
+16 29 15 0 1 0.0680542
+16 29 16 0 1 0.248657
+16 29 17 0 1 0.358154
+16 29 18 0 1 0.451172
+16 29 19 0 1 0.535645
+16 29 20 0 1 0.61377
+16 29 21 0 1 0.687012
+16 29 22 0 1 0.754395
+16 29 23 0 1 0.813965
+16 29 24 0 1 0.866699
+16 29 25 0 1 0.91748
+16 29 26 0 1 0.965332
+16 29 27 0 1 1
+16 29 28 0 1 1
+16 29 29 0 1 1
+16 29 30 0 0.98291 1
+16 29 31 0 0.937988 1
+16 30 0 0 1 0.039978
+16 30 1 0 1 0.039978
+16 30 2 0 1 0.039978
+16 30 3 0 1 0.0400085
+16 30 4 0 1 0.0400085
+16 30 5 0 1 0.0400085
+16 30 6 0 1 0.0400085
+16 30 7 0 1 0.0400391
+16 30 8 0 1 0.0400696
+16 30 9 0 1 0.0401611
+16 30 10 0 1 0.0403137
+16 30 11 0 1 0.0405579
+16 30 12 0 1 0.0410156
+16 30 13 0 1 0.0417175
+16 30 14 0 1 0.0427856
+16 30 15 0 1 0.044342
+16 30 16 0 1 0.193726
+16 30 17 0 1 0.31665
+16 30 18 0 1 0.410889
+16 30 19 0 1 0.494385
+16 30 20 0 1 0.570801
+16 30 21 0 1 0.642578
+16 30 22 0 1 0.708984
+16 30 23 0 1 0.768555
+16 30 24 0 1 0.821289
+16 30 25 0 1 0.873535
+16 30 26 0 1 0.923828
+16 30 27 0 1 0.971191
+16 30 28 0 1 1
+16 30 29 0 1 1
+16 30 30 0 1 1
+16 30 31 0 0.986328 1
+16 31 0 0 1 0
+16 31 1 0 1 0
+16 31 2 0 1 0
+16 31 3 0 1 0
+16 31 4 0 1 0
+16 31 5 0 1 0
+16 31 6 0 1 0
+16 31 7 0 1 0
+16 31 8 0 1 0
+16 31 9 0 1 0
+16 31 10 0 1 0
+16 31 11 0 1 0
+16 31 12 0 1 0
+16 31 13 0 1 0
+16 31 14 0 1 0
+16 31 15 0 1 0
+16 31 16 0 1 0.105469
+16 31 17 0 1 0.271484
+16 31 18 0 1 0.369141
+16 31 19 0 1 0.451904
+16 31 20 0 1 0.526367
+16 31 21 0 1 0.596191
+16 31 22 0 1 0.661133
+16 31 23 0 1 0.719727
+16 31 24 0 1 0.772949
+16 31 25 0 1 0.825684
+16 31 26 0 1 0.87793
+16 31 27 0 1 0.928711
+16 31 28 0 1 0.975586
+16 31 29 0 1 1
+16 31 30 0 1 1
+16 31 31 0 1 1
+17 0 0 0.802734 0 0.0457153
+17 0 1 0.802734 0 0.0457153
+17 0 2 0.802734 0 0.0457153
+17 0 3 0.802734 0 0.0456848
+17 0 4 0.802734 0 0.0456848
+17 0 5 0.802734 0 0.0456238
+17 0 6 0.802734 0 0.0455627
+17 0 7 0.802734 0 0.0453796
+17 0 8 0.802734 0 0.0450745
+17 0 9 0.802734 0 0.0444641
+17 0 10 0.803223 0 0.0433044
+17 0 11 0.807129 0 0.0426331
+17 0 12 0.814453 0 0.180908
+17 0 13 0.825195 0 0.296143
+17 0 14 0.833984 0 0.401367
+17 0 15 0.836426 0.115723 0.51123
+17 0 16 0.827148 0.231445 0.614746
+17 0 17 0.799805 0.252441 0.706543
+17 0 18 0.758301 0.261719 0.790527
+17 0 19 0.706543 0.27002 0.86377
+17 0 20 0.646973 0.2771 0.924316
+17 0 21 0.565918 0.275879 0.949707
+17 0 22 0.478027 0.271484 0.958008
+17 0 23 0.390381 0.268066 0.962891
+17 0 24 0.292969 0.265381 0.967285
+17 0 25 0.0927734 0.263428 0.97168
+17 0 26 0 0.262207 0.977539
+17 0 27 0 0.261475 0.984375
+17 0 28 0 0.261719 0.993164
+17 0 29 0 0.262695 1
+17 0 30 0 0.263916 1
+17 0 31 0 0.265625 1
+17 1 0 0.802734 0 0.0456848
+17 1 1 0.802734 0 0.0456848
+17 1 2 0.802734 0 0.0456543
+17 1 3 0.802734 0 0.0456543
+17 1 4 0.802734 0 0.0456238
+17 1 5 0.802734 0 0.0455933
+17 1 6 0.802734 0 0.0455017
+17 1 7 0.802734 0 0.0453491
+17 1 8 0.802734 0 0.0450439
+17 1 9 0.802734 0 0.0444031
+17 1 10 0.803223 0 0.0432434
+17 1 11 0.807129 0 0.0426025
+17 1 12 0.814453 0 0.180908
+17 1 13 0.825195 0 0.296143
+17 1 14 0.833984 0 0.401367
+17 1 15 0.836426 0.115906 0.51123
+17 1 16 0.827148 0.231567 0.614746
+17 1 17 0.799805 0.252441 0.706543
+17 1 18 0.758301 0.261719 0.790527
+17 1 19 0.706543 0.270264 0.86377
+17 1 20 0.646973 0.2771 0.924316
+17 1 21 0.565918 0.275879 0.949707
+17 1 22 0.478027 0.271729 0.958008
+17 1 23 0.390381 0.268066 0.962891
+17 1 24 0.292969 0.265381 0.967285
+17 1 25 0.0927124 0.263428 0.97168
+17 1 26 0 0.262207 0.977539
+17 1 27 0 0.261719 0.984375
+17 1 28 0 0.261719 0.993164
+17 1 29 0 0.262695 1
+17 1 30 0 0.263916 1
+17 1 31 0 0.265625 1
+17 2 0 0.802734 0 0.0455933
+17 2 1 0.802734 0 0.0455933
+17 2 2 0.802734 0 0.0455933
+17 2 3 0.802734 0 0.0455627
+17 2 4 0.802734 0 0.0455627
+17 2 5 0.802734 0 0.0455017
+17 2 6 0.802734 0 0.0454407
+17 2 7 0.802734 0 0.0452576
+17 2 8 0.802734 0 0.0449524
+17 2 9 0.802734 0 0.044342
+17 2 10 0.803223 0 0.0431824
+17 2 11 0.807129 0 0.042511
+17 2 12 0.814453 0 0.180908
+17 2 13 0.825195 0 0.296143
+17 2 14 0.833984 0 0.401367
+17 2 15 0.836426 0.116211 0.51123
+17 2 16 0.827148 0.231689 0.614746
+17 2 17 0.799805 0.252441 0.706543
+17 2 18 0.758301 0.261719 0.790527
+17 2 19 0.706543 0.270264 0.86377
+17 2 20 0.646973 0.2771 0.924316
+17 2 21 0.565918 0.275879 0.949707
+17 2 22 0.477783 0.271729 0.958008
+17 2 23 0.390381 0.268066 0.962891
+17 2 24 0.292969 0.265381 0.967285
+17 2 25 0.0926514 0.263428 0.97168
+17 2 26 0 0.262207 0.977539
+17 2 27 0 0.261719 0.984375
+17 2 28 0 0.261719 0.993164
+17 2 29 0 0.262695 1
+17 2 30 0 0.263916 1
+17 2 31 0 0.265625 1
+17 3 0 0.802734 0 0.0454407
+17 3 1 0.802734 0 0.0454407
+17 3 2 0.802734 0 0.0454407
+17 3 3 0.802734 0 0.0454407
+17 3 4 0.802734 0 0.0454102
+17 3 5 0.802734 0 0.0453491
+17 3 6 0.802734 0 0.0452881
+17 3 7 0.802734 0 0.045105
+17 3 8 0.802734 0 0.0447998
+17 3 9 0.802734 0 0.0441895
+17 3 10 0.803223 0 0.0429993
+17 3 11 0.807129 0 0.0423584
+17 3 12 0.814453 0 0.180908
+17 3 13 0.825195 0 0.296143
+17 3 14 0.833984 0 0.401367
+17 3 15 0.836426 0.11676 0.51123
+17 3 16 0.827148 0.231812 0.614746
+17 3 17 0.799805 0.252686 0.706543
+17 3 18 0.758301 0.261963 0.790527
+17 3 19 0.706543 0.270264 0.86377
+17 3 20 0.646973 0.277344 0.924316
+17 3 21 0.565918 0.276123 0.949707
+17 3 22 0.477783 0.271729 0.958008
+17 3 23 0.390381 0.268311 0.962891
+17 3 24 0.292969 0.265625 0.967285
+17 3 25 0.0925293 0.263672 0.97168
+17 3 26 0 0.262207 0.977539
+17 3 27 0 0.261719 0.984375
+17 3 28 0 0.261963 0.993164
+17 3 29 0 0.262695 1
+17 3 30 0 0.263916 1
+17 3 31 0 0.265625 1
+17 4 0 0.802734 0 0.045166
+17 4 1 0.802734 0 0.045166
+17 4 2 0.802734 0 0.045166
+17 4 3 0.802734 0 0.045166
+17 4 4 0.802734 0 0.0451355
+17 4 5 0.802734 0 0.0450745
+17 4 6 0.802734 0 0.0450134
+17 4 7 0.802734 0 0.0448303
+17 4 8 0.802734 0 0.0445251
+17 4 9 0.802734 0 0.0438843
+17 4 10 0.803223 0 0.0427246
+17 4 11 0.807129 0 0.0420227
+17 4 12 0.814453 0 0.180908
+17 4 13 0.825195 0 0.296143
+17 4 14 0.833984 0 0.401367
+17 4 15 0.836426 0.117859 0.51123
+17 4 16 0.827148 0.232178 0.614746
+17 4 17 0.799805 0.25293 0.706543
+17 4 18 0.758301 0.262207 0.790527
+17 4 19 0.706543 0.270508 0.86377
+17 4 20 0.646973 0.277588 0.924316
+17 4 21 0.565918 0.276123 0.949707
+17 4 22 0.477783 0.271973 0.958008
+17 4 23 0.390381 0.268311 0.962891
+17 4 24 0.292969 0.265625 0.967285
+17 4 25 0.0923462 0.263672 0.97168
+17 4 26 0 0.262451 0.977539
+17 4 27 0 0.261719 0.984375
+17 4 28 0 0.261963 0.993164
+17 4 29 0 0.262695 1
+17 4 30 0 0.26416 1
+17 4 31 0 0.265869 1
+17 5 0 0.802734 0 0.0446472
+17 5 1 0.802734 0 0.0446472
+17 5 2 0.802734 0 0.0446167
+17 5 3 0.802734 0 0.0446167
+17 5 4 0.802734 0 0.0445862
+17 5 5 0.802734 0 0.0445557
+17 5 6 0.802734 0 0.0444641
+17 5 7 0.802734 0 0.044281
+17 5 8 0.802734 0 0.0439758
+17 5 9 0.803223 0 0.043335
+17 5 10 0.803223 0 0.0421143
+17 5 11 0.807129 0 0.0414124
+17 5 12 0.814453 0 0.180908
+17 5 13 0.825195 0 0.296143
+17 5 14 0.833984 0 0.401367
+17 5 15 0.836426 0.119812 0.51123
+17 5 16 0.827148 0.23291 0.614746
+17 5 17 0.799805 0.253662 0.706543
+17 5 18 0.758301 0.262695 0.790527
+17 5 19 0.706543 0.270996 0.86377
+17 5 20 0.646973 0.277832 0.924316
+17 5 21 0.56543 0.276611 0.949707
+17 5 22 0.477783 0.272217 0.958008
+17 5 23 0.390381 0.268555 0.962891
+17 5 24 0.292969 0.265869 0.967285
+17 5 25 0.0918579 0.263916 0.97168
+17 5 26 0 0.262451 0.977539
+17 5 27 0 0.261963 0.984375
+17 5 28 0 0.261963 0.993164
+17 5 29 0 0.262939 1
+17 5 30 0 0.26416 1
+17 5 31 0 0.265869 1
+17 6 0 0.802734 0 0.0435791
+17 6 1 0.802734 0 0.0435791
+17 6 2 0.802734 0 0.0435791
+17 6 3 0.802734 0 0.0435486
+17 6 4 0.802734 0 0.0435181
+17 6 5 0.802734 0 0.0434875
+17 6 6 0.802734 0 0.043396
+17 6 7 0.803223 0 0.0432129
+17 6 8 0.803223 0 0.0428772
+17 6 9 0.803223 0 0.0422058
+17 6 10 0.803223 0 0.0409546
+17 6 11 0.807129 0 0.0402222
+17 6 12 0.814453 0 0.180786
+17 6 13 0.825195 0 0.295898
+17 6 14 0.833984 0 0.401367
+17 6 15 0.836426 0.123535 0.51123
+17 6 16 0.827148 0.234253 0.614746
+17 6 17 0.799805 0.254639 0.706543
+17 6 18 0.758301 0.263672 0.790527
+17 6 19 0.706543 0.271973 0.86377
+17 6 20 0.646973 0.278564 0.924316
+17 6 21 0.56543 0.2771 0.949707
+17 6 22 0.477783 0.272705 0.958008
+17 6 23 0.390137 0.269043 0.962891
+17 6 24 0.292725 0.266357 0.967285
+17 6 25 0.0910034 0.26416 0.97168
+17 6 26 0 0.262939 0.977539
+17 6 27 0 0.262207 0.984375
+17 6 28 0 0.262207 0.993164
+17 6 29 0 0.263184 1
+17 6 30 0 0.264404 1
+17 6 31 0 0.266113 1
+17 7 0 0.803223 0 0.0413818
+17 7 1 0.803223 0 0.0413818
+17 7 2 0.803223 0 0.0413818
+17 7 3 0.803223 0 0.0413513
+17 7 4 0.803223 0 0.0413208
+17 7 5 0.803223 0 0.0412903
+17 7 6 0.803223 0 0.0411682
+17 7 7 0.803223 0 0.0409851
+17 7 8 0.803223 0 0.0406189
+17 7 9 0.803223 0 0.0398865
+17 7 10 0.803711 0 0.0384827
+17 7 11 0.807129 0 0.0376892
+17 7 12 0.814453 0 0.180664
+17 7 13 0.825195 0 0.295898
+17 7 14 0.833984 0 0.401367
+17 7 15 0.836426 0.130249 0.51123
+17 7 16 0.827148 0.236816 0.614746
+17 7 17 0.799316 0.256836 0.706543
+17 7 18 0.757812 0.265625 0.790527
+17 7 19 0.706543 0.273682 0.86377
+17 7 20 0.646973 0.280273 0.924316
+17 7 21 0.56543 0.278564 0.949707
+17 7 22 0.477539 0.273926 0.958008
+17 7 23 0.389893 0.27002 0.962891
+17 7 24 0.29248 0.26709 0.967285
+17 7 25 0.0892944 0.264893 0.97168
+17 7 26 0 0.263428 0.977539
+17 7 27 0 0.262695 0.984375
+17 7 28 0 0.262695 0.993164
+17 7 29 0 0.263428 1
+17 7 30 0 0.264648 1
+17 7 31 0 0.266357 1
+17 8 0 0.803711 0 0.0364075
+17 8 1 0.803711 0 0.0364075
+17 8 2 0.803711 0 0.0364075
+17 8 3 0.803711 0 0.036377
+17 8 4 0.803711 0 0.0363464
+17 8 5 0.803711 0 0.0362854
+17 8 6 0.803711 0 0.0361633
+17 8 7 0.803711 0 0.0359497
+17 8 8 0.803711 0 0.0354614
+17 8 9 0.803711 0 0.0345459
+17 8 10 0.804199 0 0.0327759
+17 8 11 0.807617 0 0.0316772
+17 8 12 0.814941 0 0.180542
+17 8 13 0.825195 0 0.295654
+17 8 14 0.833984 0 0.401123
+17 8 15 0.835938 0.141846 0.51123
+17 8 16 0.82666 0.241577 0.614746
+17 8 17 0.799316 0.26123 0.706543
+17 8 18 0.757812 0.269531 0.790527
+17 8 19 0.706055 0.2771 0.86377
+17 8 20 0.646484 0.283203 0.924316
+17 8 21 0.564941 0.281006 0.950195
+17 8 22 0.477295 0.275879 0.958496
+17 8 23 0.389648 0.271729 0.963379
+17 8 24 0.291992 0.268799 0.967285
+17 8 25 0.0858154 0.266357 0.972168
+17 8 26 0 0.264648 0.977539
+17 8 27 0 0.263672 0.984375
+17 8 28 0 0.263672 0.993164
+17 8 29 0 0.264404 1
+17 8 30 0 0.265381 1
+17 8 31 0 0.266846 1
+17 9 0 0.804688 0 0.0210266
+17 9 1 0.804688 0 0.0210114
+17 9 2 0.804688 0 0.0209961
+17 9 3 0.804688 0 0.0209503
+17 9 4 0.804688 0 0.020874
+17 9 5 0.804688 0 0.0207214
+17 9 6 0.804688 0 0.0204163
+17 9 7 0.804688 0 0.0198212
+17 9 8 0.804688 0 0.0185547
+17 9 9 0.804688 0 0.0156403
+17 9 10 0.804688 0.00985718 0
+17 9 11 0.808594 0.0408325 0
+17 9 12 0.81543 0 0.180176
+17 9 13 0.825195 0 0.295166
+17 9 14 0.833984 0 0.400879
+17 9 15 0.835449 0.160889 0.510742
+17 9 16 0.826172 0.250488 0.614746
+17 9 17 0.798828 0.269043 0.706543
+17 9 18 0.757324 0.276611 0.790527
+17 9 19 0.705566 0.283203 0.86377
+17 9 20 0.645996 0.288574 0.924316
+17 9 21 0.564453 0.285645 0.950195
+17 9 22 0.476562 0.280029 0.958496
+17 9 23 0.388916 0.275391 0.963379
+17 9 24 0.290771 0.271729 0.967285
+17 9 25 0.0784302 0.269043 0.972168
+17 9 26 0 0.266846 0.978027
+17 9 27 0 0.265869 0.984863
+17 9 28 0 0.265381 0.993652
+17 9 29 0 0.265869 1
+17 9 30 0 0.266846 1
+17 9 31 0 0.268066 1
+17 10 0 0.806152 0.1203 0
+17 10 1 0.806152 0.1203 0
+17 10 2 0.806152 0.1203 0
+17 10 3 0.806152 0.120361 0
+17 10 4 0.806152 0.120483 0
+17 10 5 0.806152 0.120605 0
+17 10 6 0.806152 0.120972 0
+17 10 7 0.806152 0.121643 0
+17 10 8 0.806152 0.122925 0
+17 10 9 0.806152 0.125244 0
+17 10 10 0.806152 0.129517 0
+17 10 11 0.80957 0.13208 0
+17 10 12 0.815918 0.126953 0.180054
+17 10 13 0.825684 0.11969 0.294189
+17 10 14 0.833496 0.12085 0.400391
+17 10 15 0.834961 0.188354 0.510254
+17 10 16 0.825195 0.265381 0.614258
+17 10 17 0.797852 0.282227 0.706543
+17 10 18 0.756348 0.288574 0.790527
+17 10 19 0.70459 0.293945 0.86377
+17 10 20 0.64502 0.298096 0.924316
+17 10 21 0.563477 0.293945 0.950195
+17 10 22 0.475342 0.287109 0.958496
+17 10 23 0.387451 0.28125 0.963867
+17 10 24 0.288818 0.2771 0.967773
+17 10 25 0.0608521 0.273682 0.972656
+17 10 26 0 0.270996 0.978027
+17 10 27 0 0.269287 0.985352
+17 10 28 0 0.268555 0.994141
+17 10 29 0 0.268555 1
+17 10 30 0 0.269043 1
+17 10 31 0 0.27002 1
+17 11 0 0.808594 0.187256 0
+17 11 1 0.808594 0.187256 0
+17 11 2 0.808594 0.187256 0
+17 11 3 0.808594 0.187256 0
+17 11 4 0.808594 0.187256 0
+17 11 5 0.808594 0.187378 0
+17 11 6 0.808594 0.187622 0
+17 11 7 0.808594 0.187866 0
+17 11 8 0.808594 0.188599 0
+17 11 9 0.808594 0.189819 0
+17 11 10 0.809082 0.192017 0
+17 11 11 0.811523 0.193604 0
+17 11 12 0.817383 0.190796 0.18042
+17 11 13 0.825684 0.186646 0.293213
+17 11 14 0.833496 0.1875 0.399902
+17 11 15 0.833496 0.225464 0.509766
+17 11 16 0.823242 0.288818 0.614258
+17 11 17 0.795898 0.303467 0.706543
+17 11 18 0.754395 0.307861 0.790527
+17 11 19 0.702637 0.311523 0.864258
+17 11 20 0.643066 0.313721 0.924316
+17 11 21 0.561523 0.307617 0.950684
+17 11 22 0.473389 0.298828 0.958984
+17 11 23 0.38501 0.291504 0.964355
+17 11 24 0.285156 0.286133 0.968262
+17 11 25 0 0.281494 0.973145
+17 11 26 0 0.278076 0.979004
+17 11 27 0 0.275391 0.98584
+17 11 28 0 0.273926 0.994629
+17 11 29 0 0.273193 1
+17 11 30 0 0.273193 1
+17 11 31 0 0.273682 1
+17 12 0 0.8125 0.253662 0
+17 12 1 0.8125 0.253662 0
+17 12 2 0.8125 0.253662 0
+17 12 3 0.8125 0.253662 0
+17 12 4 0.8125 0.253662 0
+17 12 5 0.8125 0.253662 0
+17 12 6 0.8125 0.253906 0
+17 12 7 0.8125 0.253906 0
+17 12 8 0.8125 0.254395 0
+17 12 9 0.8125 0.255127 0
+17 12 10 0.8125 0.256592 0
+17 12 11 0.814941 0.257812 0
+17 12 12 0.819336 0.256104 0.183228
+17 12 13 0.826172 0.253174 0.292725
+17 12 14 0.83252 0.25415 0.398926
+17 12 15 0.831055 0.273193 0.507812
+17 12 16 0.819824 0.322754 0.613281
+17 12 17 0.792969 0.335205 0.706055
+17 12 18 0.751465 0.337158 0.790527
+17 12 19 0.699707 0.338135 0.864258
+17 12 20 0.639648 0.337891 0.924805
+17 12 21 0.558594 0.328857 0.95166
+17 12 22 0.469727 0.317383 0.959961
+17 12 23 0.380615 0.307861 0.964844
+17 12 24 0.278809 0.300537 0.969238
+17 12 25 0 0.294434 0.974121
+17 12 26 0 0.289551 0.97998
+17 12 27 0 0.285645 0.986816
+17 12 28 0 0.282715 0.995605
+17 12 29 0 0.281006 1
+17 12 30 0 0.280029 1
+17 12 31 0 0.279541 1
+17 13 0 0.817383 0.326172 0
+17 13 1 0.817383 0.326172 0
+17 13 2 0.817383 0.326172 0
+17 13 3 0.817383 0.326172 0
+17 13 4 0.817383 0.326172 0
+17 13 5 0.817383 0.326172 0
+17 13 6 0.817383 0.326416 0
+17 13 7 0.817383 0.326416 0
+17 13 8 0.817383 0.32666 0
+17 13 9 0.817871 0.327393 0
+17 13 10 0.817871 0.328369 0
+17 13 11 0.818848 0.329102 0
+17 13 12 0.821777 0.328125 0.193237
+17 13 13 0.825684 0.326416 0.294678
+17 13 14 0.830078 0.325439 0.397217
+17 13 15 0.82666 0.33252 0.504883
+17 13 16 0.814453 0.368164 0.611816
+17 13 17 0.787598 0.378418 0.705566
+17 13 18 0.746094 0.37793 0.790039
+17 13 19 0.694336 0.375977 0.864258
+17 13 20 0.634277 0.372559 0.925293
+17 13 21 0.553223 0.360107 0.953125
+17 13 22 0.463867 0.344727 0.960938
+17 13 23 0.373291 0.332275 0.966309
+17 13 24 0.268066 0.322266 0.970703
+17 13 25 0 0.313965 0.975586
+17 13 26 0 0.306885 0.981445
+17 13 27 0 0.301025 0.98877
+17 13 28 0 0.296631 0.997559
+17 13 29 0 0.293213 1
+17 13 30 0 0.290771 1
+17 13 31 0 0.289062 1
+17 14 0 0.823242 0.406982 0
+17 14 1 0.823242 0.406982 0
+17 14 2 0.823242 0.406982 0
+17 14 3 0.823242 0.406982 0
+17 14 4 0.823242 0.406982 0
+17 14 5 0.823242 0.406982 0
+17 14 6 0.823242 0.406982 0
+17 14 7 0.823242 0.407227 0
+17 14 8 0.823242 0.407227 0
+17 14 9 0.823242 0.407715 0
+17 14 10 0.823242 0.408447 0
+17 14 11 0.82373 0.408936 0.108215
+17 14 12 0.82373 0.408691 0.216431
+17 14 13 0.824219 0.407959 0.304199
+17 14 14 0.82373 0.405762 0.396973
+17 14 15 0.817871 0.405029 0.500488
+17 14 16 0.804688 0.425293 0.608887
+17 14 17 0.778809 0.434326 0.704102
+17 14 18 0.737305 0.430908 0.789551
+17 14 19 0.685547 0.425781 0.864258
+17 14 20 0.625488 0.418945 0.925293
+17 14 21 0.544434 0.402344 0.955078
+17 14 22 0.453857 0.382324 0.963379
+17 14 23 0.36084 0.366211 0.96875
+17 14 24 0.248779 0.353027 0.973145
+17 14 25 0 0.341797 0.978516
+17 14 26 0 0.332031 0.984375
+17 14 27 0 0.323486 0.991699
+17 14 28 0 0.31665 1
+17 14 29 0 0.311279 1
+17 14 30 0 0.306641 1
+17 14 31 0 0.302979 1
+17 15 0 0.827148 0.495361 0.161621
+17 15 1 0.827148 0.495361 0.161621
+17 15 2 0.827148 0.495361 0.161621
+17 15 3 0.827148 0.495361 0.161621
+17 15 4 0.827148 0.495361 0.161621
+17 15 5 0.827148 0.495361 0.161743
+17 15 6 0.827148 0.495361 0.161743
+17 15 7 0.827148 0.495361 0.161743
+17 15 8 0.827148 0.495605 0.161865
+17 15 9 0.827148 0.49585 0.162109
+17 15 10 0.827148 0.496338 0.162476
+17 15 11 0.827148 0.49707 0.179199
+17 15 12 0.825195 0.49707 0.251465
+17 15 13 0.821289 0.496582 0.325684
+17 15 14 0.814453 0.494629 0.406738
+17 15 15 0.803223 0.489502 0.496826
+17 15 16 0.787109 0.492432 0.602051
+17 15 17 0.76416 0.501465 0.70166
+17 15 18 0.723633 0.49585 0.788086
+17 15 19 0.671875 0.487305 0.863281
+17 15 20 0.61084 0.477051 0.925293
+17 15 21 0.530273 0.456543 0.957031
+17 15 22 0.4375 0.431152 0.96582
+17 15 23 0.340332 0.410645 0.972168
+17 15 24 0.213135 0.394043 0.977051
+17 15 25 0 0.37915 0.98291
+17 15 26 0 0.365967 0.989258
+17 15 27 0 0.354492 0.996582
+17 15 28 0 0.344727 1
+17 15 29 0 0.336426 1
+17 15 30 0 0.328857 1
+17 15 31 0 0.322266 1
+17 16 0 0.824707 0.591797 0.216064
+17 16 1 0.824707 0.591797 0.216064
+17 16 2 0.824707 0.591797 0.216064
+17 16 3 0.824707 0.591797 0.216064
+17 16 4 0.824707 0.591797 0.216064
+17 16 5 0.824707 0.591797 0.216064
+17 16 6 0.824707 0.591797 0.216064
+17 16 7 0.824707 0.591797 0.216064
+17 16 8 0.825195 0.591797 0.216064
+17 16 9 0.825195 0.592285 0.216187
+17 16 10 0.825195 0.592773 0.216309
+17 16 11 0.825195 0.593262 0.216431
+17 16 12 0.822266 0.593262 0.277344
+17 16 13 0.816895 0.592285 0.347656
+17 16 14 0.807129 0.590332 0.425049
+17 16 15 0.789551 0.585449 0.507324
+17 16 16 0.76123 0.57373 0.593262
+17 16 17 0.741211 0.579102 0.697266
+17 16 18 0.700684 0.571289 0.78418
+17 16 19 0.649414 0.560059 0.861328
+17 16 20 0.587891 0.546387 0.924805
+17 16 21 0.506836 0.521973 0.959961
+17 16 22 0.410889 0.491455 0.970215
+17 16 23 0.304688 0.466309 0.977539
+17 16 24 0.124329 0.445557 0.983887
+17 16 25 0 0.426758 0.989746
+17 16 26 0 0.409912 0.996582
+17 16 27 0 0.394287 1
+17 16 28 0 0.380371 1
+17 16 29 0 0.368164 1
+17 16 30 0 0.357422 1
+17 16 31 0 0.348145 1
+17 17 0 0.799805 0.687012 0.224609
+17 17 1 0.799805 0.687012 0.224609
+17 17 2 0.799805 0.687012 0.224609
+17 17 3 0.799805 0.687012 0.224609
+17 17 4 0.799805 0.687012 0.224609
+17 17 5 0.799805 0.687012 0.224609
+17 17 6 0.799805 0.687012 0.224609
+17 17 7 0.799805 0.687012 0.224609
+17 17 8 0.799805 0.687012 0.224609
+17 17 9 0.799805 0.687012 0.224609
+17 17 10 0.799805 0.6875 0.224731
+17 17 11 0.799805 0.687988 0.224731
+17 17 12 0.797852 0.687988 0.269531
+17 17 13 0.792969 0.687988 0.343994
+17 17 14 0.784668 0.686523 0.425049
+17 17 15 0.769531 0.683105 0.512207
+17 17 16 0.744141 0.674805 0.602539
+17 17 17 0.706055 0.661133 0.688477
+17 17 18 0.666504 0.652344 0.777832
+17 17 19 0.614746 0.63916 0.856445
+17 17 20 0.551758 0.622559 0.921875
+17 17 21 0.469238 0.595703 0.961426
+17 17 22 0.366699 0.560059 0.974609
+17 17 23 0.236572 0.530273 0.983398
+17 17 24 0 0.505371 0.989746
+17 17 25 0 0.481934 0.995605
+17 17 26 0 0.460205 1
+17 17 27 0 0.44043 1
+17 17 28 0 0.422852 1
+17 17 29 0 0.406982 1
+17 17 30 0 0.392822 1
+17 17 31 0 0.380127 1
+17 18 0 0.739258 0.762695 0.216919
+17 18 1 0.739258 0.762695 0.216919
+17 18 2 0.739258 0.762695 0.216919
+17 18 3 0.739258 0.762695 0.216919
+17 18 4 0.739258 0.762695 0.216919
+17 18 5 0.739258 0.762695 0.216919
+17 18 6 0.739258 0.762695 0.216919
+17 18 7 0.739258 0.762695 0.216919
+17 18 8 0.739258 0.762695 0.216919
+17 18 9 0.739258 0.763184 0.216919
+17 18 10 0.739258 0.763184 0.217041
+17 18 11 0.739258 0.763672 0.217041
+17 18 12 0.738281 0.763672 0.240601
+17 18 13 0.733398 0.763672 0.320557
+17 18 14 0.725098 0.762207 0.404053
+17 18 15 0.710938 0.758789 0.492188
+17 18 16 0.6875 0.751465 0.583496
+17 18 17 0.65625 0.742676 0.675781
+17 18 18 0.616699 0.733398 0.76709
+17 18 19 0.563965 0.719727 0.848145
+17 18 20 0.497803 0.70166 0.916016
+17 18 21 0.408936 0.672852 0.959961
+17 18 22 0.287354 0.634766 0.978516
+17 18 23 0 0.600586 0.989746
+17 18 24 0 0.571289 0.997559
+17 18 25 0 0.543457 1
+17 18 26 0 0.517578 1
+17 18 27 0 0.493408 1
+17 18 28 0 0.471436 1
+17 18 29 0 0.45166 1
+17 18 30 0 0.433594 1
+17 18 31 0 0.417236 1
+17 19 0 0.661133 0.82666 0.207153
+17 19 1 0.661133 0.82666 0.207153
+17 19 2 0.661133 0.82666 0.207153
+17 19 3 0.661133 0.82666 0.207153
+17 19 4 0.661133 0.82666 0.207153
+17 19 5 0.661133 0.82666 0.207153
+17 19 6 0.661133 0.82666 0.207153
+17 19 7 0.661133 0.82666 0.207153
+17 19 8 0.661133 0.82666 0.207153
+17 19 9 0.661133 0.82666 0.207153
+17 19 10 0.661133 0.82666 0.207153
+17 19 11 0.661621 0.827148 0.207153
+17 19 12 0.661621 0.827148 0.207275
+17 19 13 0.657227 0.827637 0.290771
+17 19 14 0.649902 0.827148 0.37793
+17 19 15 0.637207 0.826172 0.468018
+17 19 16 0.617188 0.822754 0.5625
+17 19 17 0.588379 0.817871 0.658691
+17 19 18 0.547363 0.810547 0.751953
+17 19 19 0.490967 0.796875 0.835449
+17 19 20 0.416016 0.778809 0.905762
+17 19 21 0.305664 0.750488 0.956543
+17 19 22 0 0.712891 0.983887
+17 19 23 0 0.67627 0.999512
+17 19 24 0 0.643066 1
+17 19 25 0 0.611328 1
+17 19 26 0 0.580566 1
+17 19 27 0 0.551758 1
+17 19 28 0 0.524902 1
+17 19 29 0 0.500488 1
+17 19 30 0 0.478516 1
+17 19 31 0 0.458252 1
+17 20 0 0.572266 0.883301 0.197632
+17 20 1 0.572266 0.883301 0.197632
+17 20 2 0.572266 0.883301 0.197632
+17 20 3 0.572266 0.883301 0.197632
+17 20 4 0.572266 0.883301 0.197632
+17 20 5 0.572266 0.883301 0.197632
+17 20 6 0.572266 0.883789 0.197632
+17 20 7 0.572266 0.883789 0.197632
+17 20 8 0.572266 0.883789 0.197632
+17 20 9 0.572266 0.883789 0.197632
+17 20 10 0.572266 0.883789 0.197754
+17 20 11 0.572266 0.883789 0.197754
+17 20 12 0.572754 0.884277 0.197876
+17 20 13 0.569824 0.884766 0.257812
+17 20 14 0.562012 0.885742 0.350586
+17 20 15 0.549316 0.886719 0.443359
+17 20 16 0.528809 0.88623 0.539551
+17 20 17 0.497803 0.884277 0.637207
+17 20 18 0.450928 0.87793 0.731934
+17 20 19 0.381836 0.866211 0.817871
+17 20 20 0.272705 0.848633 0.891113
+17 20 21 0 0.824219 0.949707
+17 20 22 0 0.790527 0.987793
+17 20 23 0 0.753418 1
+17 20 24 0 0.717773 1
+17 20 25 0 0.682129 1
+17 20 26 0 0.646973 1
+17 20 27 0 0.613281 1
+17 20 28 0 0.581543 1
+17 20 29 0 0.552734 1
+17 20 30 0 0.525879 1
+17 20 31 0 0.501953 1
+17 21 0 0.460449 0.93457 0.188354
+17 21 1 0.460449 0.93457 0.188354
+17 21 2 0.460449 0.93457 0.188354
+17 21 3 0.460449 0.93457 0.188354
+17 21 4 0.460449 0.93457 0.188354
+17 21 5 0.460449 0.93457 0.188354
+17 21 6 0.460449 0.93457 0.188354
+17 21 7 0.460449 0.93457 0.188354
+17 21 8 0.460449 0.93457 0.188354
+17 21 9 0.460693 0.935059 0.188354
+17 21 10 0.460693 0.935059 0.188354
+17 21 11 0.460938 0.935059 0.188477
+17 21 12 0.461426 0.935059 0.188477
+17 21 13 0.459961 0.936035 0.218628
+17 21 14 0.450195 0.9375 0.321045
+17 21 15 0.434082 0.939453 0.416748
+17 21 16 0.407715 0.940918 0.51416
+17 21 17 0.364502 0.940918 0.612793
+17 21 18 0.29126 0.937012 0.708008
+17 21 19 0.0966187 0.927246 0.795898
+17 21 20 0 0.912109 0.87207
+17 21 21 0 0.891113 0.936523
+17 21 22 0 0.863281 0.985352
+17 21 23 0 0.829102 1
+17 21 24 0 0.792969 1
+17 21 25 0 0.754883 1
+17 21 26 0 0.716309 1
+17 21 27 0 0.678223 1
+17 21 28 0 0.641602 1
+17 21 29 0 0.60791 1
+17 21 30 0 0.57666 1
+17 21 31 0 0.547852 1
+17 22 0 0.288818 0.978027 0.178955
+17 22 1 0.288818 0.978027 0.178955
+17 22 2 0.288818 0.978027 0.178955
+17 22 3 0.288818 0.978027 0.178955
+17 22 4 0.288818 0.978027 0.178955
+17 22 5 0.288818 0.978027 0.178955
+17 22 6 0.288818 0.978027 0.178955
+17 22 7 0.288818 0.978027 0.178955
+17 22 8 0.289062 0.978027 0.178955
+17 22 9 0.289062 0.978027 0.178955
+17 22 10 0.289307 0.978027 0.178955
+17 22 11 0.289795 0.978027 0.178955
+17 22 12 0.290771 0.978516 0.179077
+17 22 13 0.292236 0.978516 0.179199
+17 22 14 0.273682 0.980469 0.288818
+17 22 15 0.237915 0.983398 0.388672
+17 22 16 0.15686 0.986328 0.487061
+17 22 17 0 0.987793 0.585449
+17 22 18 0 0.98584 0.681641
+17 22 19 0 0.979004 0.770508
+17 22 20 0 0.966309 0.848633
+17 22 21 0 0.947754 0.916504
+17 22 22 0 0.924316 0.972168
+17 22 23 0 0.895996 1
+17 22 24 0 0.862793 1
+17 22 25 0 0.825195 1
+17 22 26 0 0.784668 1
+17 22 27 0 0.743164 1
+17 22 28 0 0.703125 1
+17 22 29 0 0.664551 1
+17 22 30 0 0.628906 1
+17 22 31 0 0.595703 1
+17 23 0 0 1 0.169678
+17 23 1 0 1 0.169678
+17 23 2 0 1 0.169678
+17 23 3 0 1 0.169678
+17 23 4 0 1 0.169678
+17 23 5 0 1 0.169678
+17 23 6 0 1 0.169678
+17 23 7 0 1 0.169678
+17 23 8 0 1 0.169678
+17 23 9 0 1 0.169678
+17 23 10 0 1 0.169678
+17 23 11 0 1 0.169678
+17 23 12 0 1 0.1698
+17 23 13 0 1 0.169922
+17 23 14 0 1 0.253906
+17 23 15 0 1 0.359863
+17 23 16 0 1 0.459717
+17 23 17 0 1 0.558105
+17 23 18 0 1 0.653809
+17 23 19 0 1 0.743652
+17 23 20 0 1 0.823242
+17 23 21 0 0.994629 0.893555
+17 23 22 0 0.974121 0.952637
+17 23 23 0 0.949707 0.999512
+17 23 24 0 0.921875 1
+17 23 25 0 0.886719 1
+17 23 26 0 0.847168 1
+17 23 27 0 0.804688 1
+17 23 28 0 0.761719 1
+17 23 29 0 0.719727 1
+17 23 30 0 0.679688 1
+17 23 31 0 0.642578 1
+17 24 0 0 1 0.160522
+17 24 1 0 1 0.160522
+17 24 2 0 1 0.160522
+17 24 3 0 1 0.160522
+17 24 4 0 1 0.160522
+17 24 5 0 1 0.160645
+17 24 6 0 1 0.160645
+17 24 7 0 1 0.160645
+17 24 8 0 1 0.160645
+17 24 9 0 1 0.160645
+17 24 10 0 1 0.160645
+17 24 11 0 1 0.160645
+17 24 12 0 1 0.160767
+17 24 13 0 1 0.160889
+17 24 14 0 1 0.215332
+17 24 15 0 1 0.330811
+17 24 16 0 1 0.432617
+17 24 17 0 1 0.530762
+17 24 18 0 1 0.625977
+17 24 19 0 1 0.71582
+17 24 20 0 1 0.796387
+17 24 21 0 1 0.868652
+17 24 22 0 1 0.930176
+17 24 23 0 0.993652 0.980469
+17 24 24 0 0.969727 1
+17 24 25 0 0.939453 1
+17 24 26 0 0.902344 1
+17 24 27 0 0.860352 1
+17 24 28 0 0.816406 1
+17 24 29 0 0.772461 1
+17 24 30 0 0.729492 1
+17 24 31 0 0.688477 1
+17 25 0 0 1 0.150879
+17 25 1 0 1 0.150879
+17 25 2 0 1 0.150879
+17 25 3 0 1 0.150879
+17 25 4 0 1 0.150879
+17 25 5 0 1 0.150879
+17 25 6 0 1 0.150879
+17 25 7 0 1 0.150879
+17 25 8 0 1 0.150879
+17 25 9 0 1 0.150879
+17 25 10 0 1 0.151001
+17 25 11 0 1 0.151001
+17 25 12 0 1 0.151123
+17 25 13 0 1 0.151245
+17 25 14 0 1 0.16333
+17 25 15 0 1 0.298096
+17 25 16 0 1 0.402832
+17 25 17 0 1 0.500977
+17 25 18 0 1 0.595703
+17 25 19 0 1 0.685059
+17 25 20 0 1 0.766113
+17 25 21 0 1 0.839355
+17 25 22 0 1 0.903809
+17 25 23 0 1 0.956543
+17 25 24 0 1 1
+17 25 25 0 0.986816 1
+17 25 26 0 0.954102 1
+17 25 27 0 0.915039 1
+17 25 28 0 0.871582 1
+17 25 29 0 0.826172 1
+17 25 30 0 0.780762 1
+17 25 31 0 0.736816 1
+17 26 0 0 1 0.140625
+17 26 1 0 1 0.140625
+17 26 2 0 1 0.140625
+17 26 3 0 1 0.140625
+17 26 4 0 1 0.140625
+17 26 5 0 1 0.140625
+17 26 6 0 1 0.140625
+17 26 7 0 1 0.140625
+17 26 8 0 1 0.140625
+17 26 9 0 1 0.140625
+17 26 10 0 1 0.140625
+17 26 11 0 1 0.140747
+17 26 12 0 1 0.140747
+17 26 13 0 1 0.140991
+17 26 14 0 1 0.141235
+17 26 15 0 1 0.260254
+17 26 16 0 1 0.370361
+17 26 17 0 1 0.468994
+17 26 18 0 1 0.5625
+17 26 19 0 1 0.650879
+17 26 20 0 1 0.732422
+17 26 21 0 1 0.806641
+17 26 22 0 1 0.872559
+17 26 23 0 1 0.928223
+17 26 24 0 1 0.975098
+17 26 25 0 1 1
+17 26 26 0 1 1
+17 26 27 0 0.966309 1
+17 26 28 0 0.924805 1
+17 26 29 0 0.879883 1
+17 26 30 0 0.833496 1
+17 26 31 0 0.787598 1
+17 27 0 0 1 0.129639
+17 27 1 0 1 0.129639
+17 27 2 0 1 0.129639
+17 27 3 0 1 0.129639
+17 27 4 0 1 0.129639
+17 27 5 0 1 0.129639
+17 27 6 0 1 0.129639
+17 27 7 0 1 0.129639
+17 27 8 0 1 0.129639
+17 27 9 0 1 0.129639
+17 27 10 0 1 0.129639
+17 27 11 0 1 0.129761
+17 27 12 0 1 0.129883
+17 27 13 0 1 0.130005
+17 27 14 0 1 0.130249
+17 27 15 0 1 0.214478
+17 27 16 0 1 0.334961
+17 27 17 0 1 0.435059
+17 27 18 0 1 0.527832
+17 27 19 0 1 0.615234
+17 27 20 0 1 0.695312
+17 27 21 0 1 0.77002
+17 27 22 0 1 0.837402
+17 27 23 0 1 0.89502
+17 27 24 0 1 0.944336
+17 27 25 0 1 0.989746
+17 27 26 0 1 1
+17 27 27 0 1 1
+17 27 28 0 0.975098 1
+17 27 29 0 0.931641 1
+17 27 30 0 0.885742 1
+17 27 31 0 0.838379 1
+17 28 0 0 1 0.117859
+17 28 1 0 1 0.117859
+17 28 2 0 1 0.117859
+17 28 3 0 1 0.117859
+17 28 4 0 1 0.117859
+17 28 5 0 1 0.117859
+17 28 6 0 1 0.117859
+17 28 7 0 1 0.117859
+17 28 8 0 1 0.11792
+17 28 9 0 1 0.11792
+17 28 10 0 1 0.11792
+17 28 11 0 1 0.117981
+17 28 12 0 1 0.118103
+17 28 13 0 1 0.118286
+17 28 14 0 1 0.11853
+17 28 15 0 1 0.151245
+17 28 16 0 1 0.296143
+17 28 17 0 1 0.398926
+17 28 18 0 1 0.491211
+17 28 19 0 1 0.577148
+17 28 20 0 1 0.65625
+17 28 21 0 1 0.730469
+17 28 22 0 1 0.79834
+17 28 23 0 1 0.857422
+17 28 24 0 1 0.908691
+17 28 25 0 1 0.957031
+17 28 26 0 1 1
+17 28 27 0 1 1
+17 28 28 0 1 1
+17 28 29 0 0.97998 1
+17 28 30 0 0.936035 1
+17 28 31 0 0.889648 1
+17 29 0 0 1 0.105103
+17 29 1 0 1 0.105103
+17 29 2 0 1 0.105103
+17 29 3 0 1 0.105103
+17 29 4 0 1 0.105103
+17 29 5 0 1 0.105103
+17 29 6 0 1 0.105103
+17 29 7 0 1 0.105164
+17 29 8 0 1 0.105164
+17 29 9 0 1 0.105164
+17 29 10 0 1 0.105225
+17 29 11 0 1 0.105286
+17 29 12 0 1 0.105347
+17 29 13 0 1 0.10553
+17 29 14 0 1 0.105835
+17 29 15 0 1 0.106201
+17 29 16 0 1 0.251709
+17 29 17 0 1 0.360352
+17 29 18 0 1 0.452881
+17 29 19 0 1 0.537598
+17 29 20 0 1 0.615234
+17 29 21 0 1 0.688477
+17 29 22 0 1 0.755859
+17 29 23 0 1 0.814941
+17 29 24 0 1 0.867676
+17 29 25 0 1 0.918457
+17 29 26 0 1 0.966309
+17 29 27 0 1 1
+17 29 28 0 1 1
+17 29 29 0 1 1
+17 29 30 0 0.984375 1
+17 29 31 0 0.939453 1
+17 30 0 0 1 0.0910034
+17 30 1 0 1 0.0910034
+17 30 2 0 1 0.0910034
+17 30 3 0 1 0.0910034
+17 30 4 0 1 0.0910034
+17 30 5 0 1 0.0910034
+17 30 6 0 1 0.0910034
+17 30 7 0 1 0.0910034
+17 30 8 0 1 0.0910034
+17 30 9 0 1 0.0910645
+17 30 10 0 1 0.0910645
+17 30 11 0 1 0.0911865
+17 30 12 0 1 0.0912476
+17 30 13 0 1 0.0914917
+17 30 14 0 1 0.0917358
+17 30 15 0 1 0.0922241
+17 30 16 0 1 0.197144
+17 30 17 0 1 0.318848
+17 30 18 0 1 0.412598
+17 30 19 0 1 0.496094
+17 30 20 0 1 0.572266
+17 30 21 0 1 0.643555
+17 30 22 0 1 0.709961
+17 30 23 0 1 0.769531
+17 30 24 0 1 0.822754
+17 30 25 0 1 0.874512
+17 30 26 0 1 0.924805
+17 30 27 0 1 0.972168
+17 30 28 0 1 1
+17 30 29 0 1 1
+17 30 30 0 1 1
+17 30 31 0 0.987793 1
+17 31 0 0 1 0.0747681
+17 31 1 0 1 0.0747681
+17 31 2 0 1 0.0747681
+17 31 3 0 1 0.0747681
+17 31 4 0 1 0.0747681
+17 31 5 0 1 0.0747681
+17 31 6 0 1 0.0747681
+17 31 7 0 1 0.0747681
+17 31 8 0 1 0.0747681
+17 31 9 0 1 0.0748291
+17 31 10 0 1 0.0748901
+17 31 11 0 1 0.0749512
+17 31 12 0 1 0.0750732
+17 31 13 0 1 0.0753174
+17 31 14 0 1 0.0756836
+17 31 15 0 1 0.0762329
+17 31 16 0 1 0.112183
+17 31 17 0 1 0.273438
+17 31 18 0 1 0.37085
+17 31 19 0 1 0.453613
+17 31 20 0 1 0.527832
+17 31 21 0 1 0.597656
+17 31 22 0 1 0.662598
+17 31 23 0 1 0.721191
+17 31 24 0 1 0.773926
+17 31 25 0 1 0.82666
+17 31 26 0 1 0.878906
+17 31 27 0 1 0.929688
+17 31 28 0 1 0.976562
+17 31 29 0 1 1
+17 31 30 0 1 1
+17 31 31 0 1 1
+18 0 0 0.861816 0 0.0478821
+18 0 1 0.861816 0 0.0478821
+18 0 2 0.861816 0 0.0478516
+18 0 3 0.861816 0 0.0478516
+18 0 4 0.861816 0 0.0478516
+18 0 5 0.862305 0 0.0477905
+18 0 6 0.862305 0 0.0477295
+18 0 7 0.862305 0 0.0476074
+18 0 8 0.862305 0 0.0473633
+18 0 9 0.862305 0 0.046875
+18 0 10 0.862305 0 0.04599
+18 0 11 0.863281 0 0.0447083
+18 0 12 0.867676 0 0.0582581
+18 0 13 0.875977 0 0.23938
+18 0 14 0.888184 0 0.351074
+18 0 15 0.900391 0 0.462158
+18 0 16 0.916504 0.177124 0.583008
+18 0 17 0.916504 0.263672 0.693848
+18 0 18 0.885254 0.279297 0.782227
+18 0 19 0.841309 0.286621 0.858887
+18 0 20 0.789062 0.29248 0.922363
+18 0 21 0.719238 0.29248 0.959473
+18 0 22 0.640625 0.28833 0.975098
+18 0 23 0.56543 0.283936 0.98291
+18 0 24 0.493896 0.279785 0.986816
+18 0 25 0.415039 0.276367 0.990723
+18 0 26 0.320312 0.273438 0.994141
+18 0 27 0.161621 0.27124 0.999023
+18 0 28 0 0.27002 1
+18 0 29 0 0.269775 1
+18 0 30 0 0.27002 1
+18 0 31 0 0.270752 1
+18 1 0 0.861816 0 0.0478516
+18 1 1 0.861816 0 0.047821
+18 1 2 0.861816 0 0.047821
+18 1 3 0.861816 0 0.047821
+18 1 4 0.861816 0 0.0477905
+18 1 5 0.862305 0 0.04776
+18 1 6 0.862305 0 0.047699
+18 1 7 0.862305 0 0.0475769
+18 1 8 0.862305 0 0.0473328
+18 1 9 0.862305 0 0.0468445
+18 1 10 0.862305 0 0.0459595
+18 1 11 0.863281 0 0.0446777
+18 1 12 0.867676 0 0.0582581
+18 1 13 0.875977 0 0.23938
+18 1 14 0.888184 0 0.351074
+18 1 15 0.900391 0 0.462158
+18 1 16 0.916016 0.177246 0.583008
+18 1 17 0.916504 0.263672 0.693848
+18 1 18 0.885254 0.279297 0.782227
+18 1 19 0.841309 0.286865 0.858887
+18 1 20 0.789062 0.29248 0.922363
+18 1 21 0.719238 0.29248 0.959473
+18 1 22 0.640625 0.28833 0.975098
+18 1 23 0.56543 0.283936 0.98291
+18 1 24 0.493896 0.279785 0.986816
+18 1 25 0.415039 0.276367 0.990723
+18 1 26 0.320312 0.273438 0.994141
+18 1 27 0.161621 0.27124 0.999023
+18 1 28 0 0.27002 1
+18 1 29 0 0.269775 1
+18 1 30 0 0.27002 1
+18 1 31 0 0.270752 1
+18 2 0 0.862305 0 0.0477905
+18 2 1 0.862305 0 0.04776
+18 2 2 0.862305 0 0.04776
+18 2 3 0.862305 0 0.04776
+18 2 4 0.862305 0 0.0477295
+18 2 5 0.862305 0 0.047699
+18 2 6 0.862305 0 0.0476379
+18 2 7 0.862305 0 0.0475159
+18 2 8 0.862305 0 0.0472717
+18 2 9 0.862305 0 0.0467834
+18 2 10 0.862305 0 0.0458984
+18 2 11 0.863281 0 0.0446167
+18 2 12 0.867676 0 0.0582581
+18 2 13 0.875977 0 0.23938
+18 2 14 0.888184 0 0.351074
+18 2 15 0.900391 0 0.462158
+18 2 16 0.916016 0.177368 0.583008
+18 2 17 0.916504 0.263916 0.693848
+18 2 18 0.885254 0.279541 0.782227
+18 2 19 0.841309 0.286865 0.858887
+18 2 20 0.789062 0.292725 0.922363
+18 2 21 0.719238 0.292725 0.959473
+18 2 22 0.640625 0.28833 0.975098
+18 2 23 0.56543 0.283936 0.98291
+18 2 24 0.493896 0.280029 0.986816
+18 2 25 0.415039 0.276367 0.990723
+18 2 26 0.320312 0.273438 0.994141
+18 2 27 0.161499 0.271484 0.999023
+18 2 28 0 0.270264 1
+18 2 29 0 0.269775 1
+18 2 30 0 0.27002 1
+18 2 31 0 0.270752 1
+18 3 0 0.862305 0 0.0476685
+18 3 1 0.862305 0 0.0476685
+18 3 2 0.862305 0 0.0476685
+18 3 3 0.862305 0 0.0476379
+18 3 4 0.862305 0 0.0476379
+18 3 5 0.862305 0 0.0476074
+18 3 6 0.862305 0 0.0475159
+18 3 7 0.862305 0 0.0473938
+18 3 8 0.862305 0 0.0471497
+18 3 9 0.862305 0 0.0466614
+18 3 10 0.862305 0 0.0457764
+18 3 11 0.863281 0 0.0444641
+18 3 12 0.867676 0 0.0582886
+18 3 13 0.875977 0 0.23938
+18 3 14 0.888184 0 0.351074
+18 3 15 0.900391 0 0.462158
+18 3 16 0.916016 0.177612 0.583008
+18 3 17 0.916504 0.263916 0.693359
+18 3 18 0.885254 0.279541 0.782227
+18 3 19 0.841309 0.286865 0.858887
+18 3 20 0.789062 0.292725 0.922363
+18 3 21 0.719238 0.292725 0.959473
+18 3 22 0.640625 0.288574 0.975098
+18 3 23 0.56543 0.283936 0.98291
+18 3 24 0.493896 0.280029 0.986816
+18 3 25 0.415039 0.276367 0.990723
+18 3 26 0.320312 0.273438 0.994141
+18 3 27 0.161499 0.271484 0.999023
+18 3 28 0 0.270264 1
+18 3 29 0 0.269775 1
+18 3 30 0 0.27002 1
+18 3 31 0 0.270752 1
+18 4 0 0.862305 0 0.0474548
+18 4 1 0.862305 0 0.0474548
+18 4 2 0.862305 0 0.0474243
+18 4 3 0.862305 0 0.0474243
+18 4 4 0.862305 0 0.0474243
+18 4 5 0.862305 0 0.0473633
+18 4 6 0.862305 0 0.0473022
+18 4 7 0.862305 0 0.0471802
+18 4 8 0.862305 0 0.046936
+18 4 9 0.862305 0 0.0464478
+18 4 10 0.862305 0 0.0455322
+18 4 11 0.863281 0 0.04422
+18 4 12 0.867676 0 0.0582886
+18 4 13 0.875977 0 0.23938
+18 4 14 0.888184 0 0.351074
+18 4 15 0.900391 0 0.462158
+18 4 16 0.916016 0.178101 0.583008
+18 4 17 0.916504 0.26416 0.693359
+18 4 18 0.885254 0.279785 0.782227
+18 4 19 0.841309 0.287109 0.858887
+18 4 20 0.789062 0.292969 0.922363
+18 4 21 0.719238 0.292969 0.959473
+18 4 22 0.640625 0.288574 0.975098
+18 4 23 0.56543 0.28418 0.98291
+18 4 24 0.493896 0.280029 0.986816
+18 4 25 0.415039 0.276611 0.990723
+18 4 26 0.320312 0.273682 0.994141
+18 4 27 0.161499 0.271484 0.999023
+18 4 28 0 0.270264 1
+18 4 29 0 0.269775 1
+18 4 30 0 0.27002 1
+18 4 31 0 0.270752 1
+18 5 0 0.862305 0 0.0470276
+18 5 1 0.862305 0 0.0470276
+18 5 2 0.862305 0 0.0470276
+18 5 3 0.862305 0 0.0469971
+18 5 4 0.862305 0 0.0469971
+18 5 5 0.862305 0 0.0469666
+18 5 6 0.862305 0 0.046875
+18 5 7 0.862305 0 0.0467529
+18 5 8 0.862305 0 0.0465088
+18 5 9 0.862305 0 0.0460205
+18 5 10 0.862793 0 0.0450745
+18 5 11 0.863281 0 0.0437622
+18 5 12 0.867676 0 0.0582886
+18 5 13 0.875977 0 0.23938
+18 5 14 0.888184 0 0.351074
+18 5 15 0.900391 0 0.462158
+18 5 16 0.916016 0.178955 0.583008
+18 5 17 0.916504 0.264648 0.693359
+18 5 18 0.885254 0.280273 0.782227
+18 5 19 0.841309 0.287598 0.858887
+18 5 20 0.789062 0.293213 0.922363
+18 5 21 0.719238 0.293213 0.959473
+18 5 22 0.640625 0.289062 0.975098
+18 5 23 0.56543 0.284424 0.98291
+18 5 24 0.493652 0.280273 0.986816
+18 5 25 0.415039 0.276611 0.990723
+18 5 26 0.320312 0.273682 0.994141
+18 5 27 0.161255 0.271729 0.999023
+18 5 28 0 0.270264 1
+18 5 29 0 0.27002 1
+18 5 30 0 0.27002 1
+18 5 31 0 0.270752 1
+18 6 0 0.862305 0 0.0462036
+18 6 1 0.862305 0 0.0462036
+18 6 2 0.862305 0 0.0462036
+18 6 3 0.862305 0 0.0461731
+18 6 4 0.862305 0 0.0461731
+18 6 5 0.862305 0 0.0461426
+18 6 6 0.862305 0 0.046051
+18 6 7 0.862305 0 0.045929
+18 6 8 0.862305 0 0.0456543
+18 6 9 0.862305 0 0.045166
+18 6 10 0.862793 0 0.04422
+18 6 11 0.86377 0 0.0428162
+18 6 12 0.868164 0 0.0583496
+18 6 13 0.875977 0 0.23938
+18 6 14 0.888184 0 0.351074
+18 6 15 0.900391 0 0.462158
+18 6 16 0.916016 0.180786 0.583008
+18 6 17 0.916016 0.265625 0.693359
+18 6 18 0.885254 0.28125 0.782227
+18 6 19 0.841309 0.28833 0.858887
+18 6 20 0.788574 0.293945 0.922363
+18 6 21 0.719238 0.293945 0.959473
+18 6 22 0.640625 0.289551 0.975098
+18 6 23 0.56543 0.284912 0.98291
+18 6 24 0.493652 0.280762 0.986816
+18 6 25 0.415039 0.2771 0.990723
+18 6 26 0.320068 0.27417 0.994141
+18 6 27 0.161011 0.271973 0.999023
+18 6 28 0 0.270508 1
+18 6 29 0 0.27002 1
+18 6 30 0 0.270264 1
+18 6 31 0 0.270996 1
+18 7 0 0.862305 0 0.0445251
+18 7 1 0.862305 0 0.0445251
+18 7 2 0.862305 0 0.0445251
+18 7 3 0.862305 0 0.0445251
+18 7 4 0.862305 0 0.0444946
+18 7 5 0.862305 0 0.0444641
+18 7 6 0.862305 0 0.0443726
+18 7 7 0.862793 0 0.0442505
+18 7 8 0.862793 0 0.0439758
+18 7 9 0.862793 0 0.0434265
+18 7 10 0.862793 0 0.0423889
+18 7 11 0.86377 0 0.0409241
+18 7 12 0.868164 0 0.0584412
+18 7 13 0.876465 0 0.239258
+18 7 14 0.888184 0 0.351074
+18 7 15 0.900391 0 0.462158
+18 7 16 0.916016 0.18396 0.583008
+18 7 17 0.916016 0.267578 0.693359
+18 7 18 0.885254 0.282959 0.782227
+18 7 19 0.84082 0.289795 0.858887
+18 7 20 0.788574 0.29541 0.922363
+18 7 21 0.71875 0.294922 0.959473
+18 7 22 0.640625 0.290527 0.975586
+18 7 23 0.56543 0.285645 0.98291
+18 7 24 0.493652 0.281494 0.987305
+18 7 25 0.414795 0.277832 0.990723
+18 7 26 0.319824 0.274658 0.994141
+18 7 27 0.160522 0.272461 0.999023
+18 7 28 0 0.270996 1
+18 7 29 0 0.270508 1
+18 7 30 0 0.270508 1
+18 7 31 0 0.27124 1
+18 8 0 0.862793 0 0.0409241
+18 8 1 0.862793 0 0.0409241
+18 8 2 0.862793 0 0.0408936
+18 8 3 0.862793 0 0.0408936
+18 8 4 0.862793 0 0.040863
+18 8 5 0.862793 0 0.0408325
+18 8 6 0.862793 0 0.040741
+18 8 7 0.862793 0 0.0405884
+18 8 8 0.863281 0 0.0402527
+18 8 9 0.863281 0 0.0396423
+18 8 10 0.863281 0 0.0384521
+18 8 11 0.864258 0 0.0366821
+18 8 12 0.868652 0 0.0587158
+18 8 13 0.876465 0 0.239136
+18 8 14 0.888184 0 0.351074
+18 8 15 0.900391 0 0.461914
+18 8 16 0.915527 0.190186 0.583008
+18 8 17 0.916016 0.271484 0.693359
+18 8 18 0.884766 0.286133 0.782227
+18 8 19 0.84082 0.292969 0.858887
+18 8 20 0.788574 0.298096 0.922363
+18 8 21 0.71875 0.297363 0.959473
+18 8 22 0.640137 0.29248 0.975586
+18 8 23 0.564941 0.287354 0.98291
+18 8 24 0.493408 0.282959 0.987305
+18 8 25 0.414551 0.279053 0.990723
+18 8 26 0.31958 0.275879 0.994629
+18 8 27 0.159546 0.273438 0.999023
+18 8 28 0 0.271973 1
+18 8 29 0 0.27124 1
+18 8 30 0 0.27124 1
+18 8 31 0 0.271973 1
+18 9 0 0.86377 0 0.0319519
+18 9 1 0.86377 0 0.0319519
+18 9 2 0.86377 0 0.0319214
+18 9 3 0.86377 0 0.0319214
+18 9 4 0.86377 0 0.0318909
+18 9 5 0.86377 0 0.0318298
+18 9 6 0.86377 0 0.0317078
+18 9 7 0.86377 0 0.0314331
+18 9 8 0.86377 0 0.0309601
+18 9 9 0.864258 0 0.0299835
+18 9 10 0.864258 0 0.0280609
+18 9 11 0.865234 0 0.0249176
+18 9 12 0.869141 0 0.0595093
+18 9 13 0.876953 0 0.239014
+18 9 14 0.888672 0 0.351074
+18 9 15 0.899902 0 0.46167
+18 9 16 0.915039 0.201172 0.58252
+18 9 17 0.915527 0.27832 0.693359
+18 9 18 0.884766 0.29248 0.782227
+18 9 19 0.840332 0.298584 0.858887
+18 9 20 0.788086 0.302979 0.922363
+18 9 21 0.718262 0.301758 0.959473
+18 9 22 0.639648 0.296387 0.975586
+18 9 23 0.564941 0.290771 0.98291
+18 9 24 0.49292 0.285889 0.987305
+18 9 25 0.414062 0.281738 0.990723
+18 9 26 0.318848 0.278076 0.994629
+18 9 27 0.157593 0.275391 0.999512
+18 9 28 0 0.273682 1
+18 9 29 0 0.272705 1
+18 9 30 0 0.272705 1
+18 9 31 0 0.272949 1
+18 10 0 0.865234 0.0848389 0
+18 10 1 0.865234 0.0848389 0
+18 10 2 0.865234 0.0848999 0
+18 10 3 0.865234 0.0849609 0
+18 10 4 0.865234 0.085083 0
+18 10 5 0.865234 0.0853271 0
+18 10 6 0.865234 0.0858154 0
+18 10 7 0.865234 0.086792 0
+18 10 8 0.865723 0.088623 0
+18 10 9 0.865723 0.09198 0
+18 10 10 0.865723 0.0975952 0
+18 10 11 0.866699 0.104919 0
+18 10 12 0.870117 0.107605 0.0618286
+18 10 13 0.877441 0.0918579 0.23877
+18 10 14 0.88916 0.0932007 0.351562
+18 10 15 0.899414 0.117615 0.461182
+18 10 16 0.914062 0.218994 0.582031
+18 10 17 0.914551 0.290039 0.693359
+18 10 18 0.883789 0.303223 0.782227
+18 10 19 0.839844 0.308105 0.858887
+18 10 20 0.787109 0.311768 0.922363
+18 10 21 0.717773 0.30957 0.959961
+18 10 22 0.63916 0.302979 0.975586
+18 10 23 0.563965 0.296631 0.98291
+18 10 24 0.491943 0.291016 0.987305
+18 10 25 0.413086 0.286133 0.990723
+18 10 26 0.317627 0.281982 0.994629
+18 10 27 0.153809 0.278809 0.999512
+18 10 28 0 0.276611 1
+18 10 29 0 0.275391 1
+18 10 30 0 0.274902 1
+18 10 31 0 0.274902 1
+18 11 0 0.868164 0.163452 0
+18 11 1 0.868164 0.163452 0
+18 11 2 0.868164 0.163452 0
+18 11 3 0.868164 0.163452 0
+18 11 4 0.868164 0.163574 0
+18 11 5 0.868164 0.163696 0
+18 11 6 0.868164 0.163818 0
+18 11 7 0.868164 0.164185 0
+18 11 8 0.868164 0.164795 0
+18 11 9 0.868164 0.166138 0
+18 11 10 0.868652 0.168457 0
+18 11 11 0.869141 0.171753 0
+18 11 12 0.872559 0.172607 0.0679932
+18 11 13 0.878418 0.165649 0.238892
+18 11 14 0.88916 0.165771 0.35083
+18 11 15 0.898926 0.176025 0.460205
+18 11 16 0.912109 0.245605 0.581055
+18 11 17 0.913086 0.309082 0.692871
+18 11 18 0.882324 0.320557 0.782227
+18 11 19 0.838379 0.324219 0.858887
+18 11 20 0.786133 0.326172 0.922363
+18 11 21 0.716309 0.322266 0.959961
+18 11 22 0.637695 0.314209 0.975586
+18 11 23 0.5625 0.306396 0.983398
+18 11 24 0.490479 0.299805 0.987793
+18 11 25 0.411377 0.293945 0.991211
+18 11 26 0.315186 0.288818 0.995117
+18 11 27 0.146973 0.284912 1
+18 11 28 0 0.281982 1
+18 11 29 0 0.280029 1
+18 11 30 0 0.279053 1
+18 11 31 0 0.278564 1
+18 12 0 0.872559 0.230225 0
+18 12 1 0.872559 0.230225 0
+18 12 2 0.872559 0.230225 0
+18 12 3 0.872559 0.230225 0
+18 12 4 0.872559 0.230347 0
+18 12 5 0.872559 0.230347 0
+18 12 6 0.872559 0.230469 0
+18 12 7 0.872559 0.230713 0
+18 12 8 0.872559 0.231079 0
+18 12 9 0.873047 0.231812 0
+18 12 10 0.873047 0.233276 0
+18 12 11 0.873535 0.235474 0
+18 12 12 0.875977 0.235474 0.0821533
+18 12 13 0.880859 0.231201 0.23999
+18 12 14 0.88916 0.229614 0.349365
+18 12 15 0.897461 0.235474 0.458984
+18 12 16 0.90918 0.282715 0.579102
+18 12 17 0.910645 0.337891 0.692383
+18 12 18 0.880371 0.347412 0.782227
+18 12 19 0.835938 0.348877 0.858887
+18 12 20 0.783691 0.348877 0.922363
+18 12 21 0.714355 0.342529 0.960449
+18 12 22 0.635254 0.332031 0.976074
+18 12 23 0.560059 0.322266 0.983887
+18 12 24 0.487793 0.313965 0.987793
+18 12 25 0.408203 0.306396 0.991699
+18 12 26 0.311035 0.300049 0.995605
+18 12 27 0.133789 0.294678 1
+18 12 28 0 0.290527 1
+18 12 29 0 0.287598 1
+18 12 30 0 0.285645 1
+18 12 31 0 0.284424 1
+18 13 0 0.879883 0.301025 0
+18 13 1 0.879883 0.301025 0
+18 13 2 0.879883 0.301025 0
+18 13 3 0.879883 0.301025 0
+18 13 4 0.879883 0.301025 0
+18 13 5 0.879883 0.301025 0
+18 13 6 0.879883 0.301025 0
+18 13 7 0.879883 0.30127 0
+18 13 8 0.879883 0.301514 0
+18 13 9 0.879883 0.302002 0
+18 13 10 0.880371 0.302979 0
+18 13 11 0.880371 0.304688 0
+18 13 12 0.882324 0.304199 0.108032
+18 13 13 0.884766 0.30127 0.244385
+18 13 14 0.889648 0.298584 0.349121
+18 13 15 0.895996 0.301758 0.457764
+18 13 16 0.903809 0.330566 0.576172
+18 13 17 0.905762 0.377686 0.691406
+18 13 18 0.876465 0.385254 0.781738
+18 13 19 0.832031 0.384277 0.858887
+18 13 20 0.779785 0.381592 0.922852
+18 13 21 0.710449 0.372314 0.960938
+18 13 22 0.631836 0.358398 0.976562
+18 13 23 0.556152 0.345703 0.984375
+18 13 24 0.483643 0.334961 0.98877
+18 13 25 0.40332 0.325439 0.992676
+18 13 26 0.304199 0.316895 0.996582
+18 13 27 0.105896 0.309814 1
+18 13 28 0 0.303955 1
+18 13 29 0 0.299561 1
+18 13 30 0 0.296143 1
+18 13 31 0 0.293701 1
+18 14 0 0.890137 0.380127 0
+18 14 1 0.890137 0.380127 0
+18 14 2 0.890137 0.380127 0
+18 14 3 0.890137 0.380127 0
+18 14 4 0.890137 0.380371 0
+18 14 5 0.890137 0.380371 0
+18 14 6 0.890625 0.380371 0
+18 14 7 0.890625 0.380371 0
+18 14 8 0.890625 0.380615 0
+18 14 9 0.890625 0.381104 0
+18 14 10 0.890625 0.381592 0
+18 14 11 0.891113 0.382812 0
+18 14 12 0.891113 0.38208 0.146973
+18 14 13 0.891113 0.380371 0.256592
+18 14 14 0.891113 0.377197 0.352783
+18 14 15 0.893066 0.376953 0.456787
+18 14 16 0.89502 0.390137 0.571289
+18 14 17 0.897949 0.429199 0.689453
+18 14 18 0.869629 0.435303 0.780762
+18 14 19 0.825684 0.431641 0.858398
+18 14 20 0.773926 0.426025 0.922852
+18 14 21 0.70459 0.413086 0.961914
+18 14 22 0.625488 0.39502 0.977539
+18 14 23 0.549316 0.378662 0.985352
+18 14 24 0.476562 0.36499 0.989746
+18 14 25 0.39502 0.352539 0.994141
+18 14 26 0.292725 0.341309 0.998535
+18 14 27 0 0.331787 1
+18 14 28 0 0.32373 1
+18 14 29 0 0.317139 1
+18 14 30 0 0.311768 1
+18 14 31 0 0.307617 1
+18 15 0 0.90332 0.468506 0.107422
+18 15 1 0.90332 0.468506 0.107422
+18 15 2 0.90332 0.468506 0.107422
+18 15 3 0.90332 0.468506 0.107422
+18 15 4 0.90332 0.468506 0.107422
+18 15 5 0.90332 0.468506 0.107483
+18 15 6 0.90332 0.468506 0.107544
+18 15 7 0.90332 0.46875 0.107666
+18 15 8 0.90332 0.46875 0.107849
+18 15 9 0.90332 0.468994 0.108276
+18 15 10 0.90332 0.469482 0.10907
+18 15 11 0.903809 0.470459 0.110352
+18 15 12 0.902832 0.470459 0.195435
+18 15 13 0.899902 0.469238 0.281494
+18 15 14 0.895508 0.466553 0.366455
+18 15 15 0.888672 0.461914 0.458008
+18 15 16 0.881836 0.462402 0.564453
+18 15 17 0.884766 0.490967 0.68457
+18 15 18 0.858887 0.497314 0.779297
+18 15 19 0.81543 0.490967 0.857422
+18 15 20 0.763672 0.482178 0.922363
+18 15 21 0.695312 0.465332 0.962891
+18 15 22 0.615234 0.442383 0.978516
+18 15 23 0.539062 0.421875 0.986328
+18 15 24 0.465332 0.404785 0.991699
+18 15 25 0.381836 0.388916 0.996582
+18 15 26 0.273193 0.374512 1
+18 15 27 0 0.362061 1
+18 15 28 0 0.351074 1
+18 15 29 0 0.341797 1
+18 15 30 0 0.333984 1
+18 15 31 0 0.327393 1
+18 16 0 0.914062 0.565918 0.201538
+18 16 1 0.914062 0.565918 0.201538
+18 16 2 0.914062 0.565918 0.201538
+18 16 3 0.914062 0.565918 0.201538
+18 16 4 0.914062 0.565918 0.201538
+18 16 5 0.914062 0.565918 0.201538
+18 16 6 0.914062 0.565918 0.20166
+18 16 7 0.914062 0.565918 0.20166
+18 16 8 0.914062 0.566406 0.20166
+18 16 9 0.914062 0.566406 0.201782
+18 16 10 0.914062 0.566895 0.202026
+18 16 11 0.914062 0.567383 0.202393
+18 16 12 0.913086 0.567871 0.241699
+18 16 13 0.90918 0.567383 0.313965
+18 16 14 0.901855 0.56543 0.391357
+18 16 15 0.88916 0.560547 0.473877
+18 16 16 0.868652 0.55127 0.5625
+18 16 17 0.860352 0.560059 0.673828
+18 16 18 0.841797 0.570312 0.775879
+18 16 19 0.799316 0.561523 0.85498
+18 16 20 0.747559 0.549316 0.920898
+18 16 21 0.679688 0.528809 0.962891
+18 16 22 0.600098 0.500488 0.979492
+18 16 23 0.522949 0.47583 0.98877
+18 16 24 0.447754 0.454834 0.995117
+18 16 25 0.360596 0.435303 1
+18 16 26 0.238892 0.417236 1
+18 16 27 0 0.401123 1
+18 16 28 0 0.386963 1
+18 16 29 0 0.374512 1
+18 16 30 0 0.363525 1
+18 16 31 0 0.354004 1
+18 17 0 0.911621 0.666016 0.243042
+18 17 1 0.911621 0.666016 0.243042
+18 17 2 0.911621 0.666016 0.243042
+18 17 3 0.911621 0.666016 0.243042
+18 17 4 0.911621 0.666016 0.243042
+18 17 5 0.911621 0.666016 0.243042
+18 17 6 0.911621 0.666016 0.243042
+18 17 7 0.911621 0.666504 0.243042
+18 17 8 0.911621 0.666504 0.243042
+18 17 9 0.911621 0.666504 0.243164
+18 17 10 0.912109 0.666992 0.243164
+18 17 11 0.912109 0.666992 0.243286
+18 17 12 0.911621 0.667969 0.262939
+18 17 13 0.907715 0.667969 0.333008
+18 17 14 0.901367 0.666992 0.4104
+18 17 15 0.88916 0.664551 0.494141
+18 17 16 0.867188 0.656738 0.580566
+18 17 17 0.831055 0.640625 0.663086
+18 17 18 0.816406 0.649414 0.77002
+18 17 19 0.774414 0.638672 0.850586
+18 17 20 0.723145 0.624023 0.917969
+18 17 21 0.65625 0.600098 0.961914
+18 17 22 0.57666 0.567383 0.980469
+18 17 23 0.499268 0.538574 0.992188
+18 17 24 0.421387 0.513672 1
+18 17 25 0.32666 0.490479 1
+18 17 26 0.168701 0.46875 1
+18 17 27 0 0.448975 1
+18 17 28 0 0.430908 1
+18 17 29 0 0.414062 1
+18 17 30 0 0.39917 1
+18 17 31 0 0.385742 1
+18 18 0 0.882324 0.757812 0.247803
+18 18 1 0.882324 0.757812 0.247803
+18 18 2 0.882324 0.757812 0.247803
+18 18 3 0.882324 0.757812 0.247803
+18 18 4 0.882324 0.757812 0.247803
+18 18 5 0.882324 0.757812 0.247803
+18 18 6 0.882324 0.757812 0.247803
+18 18 7 0.882324 0.757812 0.247803
+18 18 8 0.882324 0.757812 0.247803
+18 18 9 0.882324 0.757812 0.247803
+18 18 10 0.882324 0.758301 0.247803
+18 18 11 0.882324 0.758301 0.247803
+18 18 12 0.882324 0.758789 0.247925
+18 18 13 0.879395 0.759277 0.323486
+18 18 14 0.873535 0.759277 0.404541
+18 18 15 0.86377 0.757812 0.491943
+18 18 16 0.846191 0.753418 0.584473
+18 18 17 0.818848 0.744629 0.675781
+18 18 18 0.779297 0.729492 0.759766
+18 18 19 0.738281 0.717773 0.842285
+18 18 20 0.688477 0.702148 0.911621
+18 18 21 0.62207 0.675293 0.958496
+18 18 22 0.543457 0.639648 0.981934
+18 18 23 0.464111 0.607422 0.996094
+18 18 24 0.380127 0.578613 1
+18 18 25 0.267822 0.55127 1
+18 18 26 0 0.525391 1
+18 18 27 0 0.500977 1
+18 18 28 0 0.478271 1
+18 18 29 0 0.457764 1
+18 18 30 0 0.439209 1
+18 18 31 0 0.422363 1
+18 19 0 0.822266 0.828613 0.239746
+18 19 1 0.822266 0.828613 0.239746
+18 19 2 0.822266 0.828613 0.239746
+18 19 3 0.822266 0.828613 0.239746
+18 19 4 0.822266 0.828613 0.239746
+18 19 5 0.822266 0.828613 0.239746
+18 19 6 0.822266 0.828613 0.239746
+18 19 7 0.822266 0.828613 0.239746
+18 19 8 0.822266 0.828613 0.239746
+18 19 9 0.822266 0.828613 0.239746
+18 19 10 0.822266 0.828613 0.239746
+18 19 11 0.822266 0.829102 0.239746
+18 19 12 0.822266 0.82959 0.239868
+18 19 13 0.820312 0.830078 0.297363
+18 19 14 0.814941 0.830078 0.38208
+18 19 15 0.805176 0.828613 0.470947
+18 19 16 0.789062 0.824707 0.563965
+18 19 17 0.763184 0.816406 0.65625
+18 19 18 0.72998 0.805664 0.745605
+18 19 19 0.689941 0.793945 0.830078
+18 19 20 0.640137 0.777344 0.901855
+18 19 21 0.574707 0.75 0.953125
+18 19 22 0.496582 0.714355 0.982422
+18 19 23 0.411621 0.679199 1
+18 19 24 0.313477 0.647461 1
+18 19 25 0.123596 0.615723 1
+18 19 26 0 0.585938 1
+18 19 27 0 0.557129 1
+18 19 28 0 0.530273 1
+18 19 29 0 0.505859 1
+18 19 30 0 0.483398 1
+18 19 31 0 0.462646 1
+18 20 0 0.748535 0.885254 0.229614
+18 20 1 0.748535 0.885254 0.229614
+18 20 2 0.748535 0.885254 0.229614
+18 20 3 0.748535 0.885254 0.229614
+18 20 4 0.748535 0.885254 0.229614
+18 20 5 0.748535 0.885254 0.229614
+18 20 6 0.748535 0.885254 0.229614
+18 20 7 0.748535 0.885254 0.229614
+18 20 8 0.748535 0.885254 0.229614
+18 20 9 0.748535 0.885254 0.229614
+18 20 10 0.748535 0.885254 0.229614
+18 20 11 0.748535 0.885254 0.229614
+18 20 12 0.749023 0.885742 0.229736
+18 20 13 0.747559 0.88623 0.264893
+18 20 14 0.742676 0.886719 0.354492
+18 20 15 0.733887 0.886719 0.445068
+18 20 16 0.719727 0.884766 0.539551
+18 20 17 0.697266 0.880371 0.634277
+18 20 18 0.66748 0.873535 0.727051
+18 20 19 0.62793 0.862793 0.812988
+18 20 20 0.577148 0.847168 0.887207
+18 20 21 0.512695 0.82373 0.946777
+18 20 22 0.43042 0.790039 0.985352
+18 20 23 0.330322 0.753906 1
+18 20 24 0.172852 0.719238 1
+18 20 25 0 0.68457 1
+18 20 26 0 0.649902 1
+18 20 27 0 0.616699 1
+18 20 28 0 0.585449 1
+18 20 29 0 0.556641 1
+18 20 30 0 0.529785 1
+18 20 31 0 0.505371 1
+18 21 0 0.667969 0.937012 0.219849
+18 21 1 0.667969 0.937012 0.219849
+18 21 2 0.667969 0.937012 0.219849
+18 21 3 0.667969 0.937012 0.219849
+18 21 4 0.667969 0.937012 0.219849
+18 21 5 0.667969 0.937012 0.219849
+18 21 6 0.667969 0.937012 0.219849
+18 21 7 0.667969 0.937012 0.219849
+18 21 8 0.667969 0.937012 0.219849
+18 21 9 0.667969 0.937012 0.219971
+18 21 10 0.667969 0.937012 0.219971
+18 21 11 0.667969 0.937012 0.219971
+18 21 12 0.668457 0.9375 0.219971
+18 21 13 0.668457 0.9375 0.227417
+18 21 14 0.662598 0.938477 0.325439
+18 21 15 0.653809 0.938965 0.418701
+18 21 16 0.640137 0.938477 0.51416
+18 21 17 0.618652 0.937012 0.610352
+18 21 18 0.588867 0.932617 0.70459
+18 21 19 0.547363 0.924316 0.791992
+18 21 20 0.492676 0.910156 0.868652
+18 21 21 0.42041 0.890625 0.934082
+18 21 22 0.319336 0.863281 0.983887
+18 21 23 0.111267 0.82959 1
+18 21 24 0 0.793945 1
+18 21 25 0 0.755859 1
+18 21 26 0 0.717773 1
+18 21 27 0 0.680176 1
+18 21 28 0 0.644531 1
+18 21 29 0 0.61084 1
+18 21 30 0 0.57959 1
+18 21 31 0 0.550781 1
+18 22 0 0.574707 0.97998 0.209961
+18 22 1 0.574707 0.97998 0.209961
+18 22 2 0.574707 0.97998 0.209961
+18 22 3 0.574707 0.97998 0.209961
+18 22 4 0.574707 0.97998 0.209961
+18 22 5 0.574707 0.97998 0.209961
+18 22 6 0.574707 0.97998 0.209961
+18 22 7 0.574707 0.97998 0.209961
+18 22 8 0.574707 0.97998 0.209961
+18 22 9 0.575195 0.980469 0.210083
+18 22 10 0.575195 0.980469 0.210083
+18 22 11 0.575195 0.980469 0.210083
+18 22 12 0.575195 0.980469 0.210083
+18 22 13 0.575684 0.980957 0.210205
+18 22 14 0.571289 0.981934 0.293701
+18 22 15 0.561523 0.983398 0.391113
+18 22 16 0.545898 0.984863 0.487793
+18 22 17 0.522461 0.984863 0.584473
+18 22 18 0.488525 0.98291 0.679199
+18 22 19 0.439453 0.976562 0.768066
+18 22 20 0.370117 0.964355 0.846191
+18 22 21 0.259033 0.947266 0.914551
+18 22 22 0 0.924805 0.971191
+18 22 23 0 0.896973 1
+18 22 24 0 0.86377 1
+18 22 25 0 0.826172 1
+18 22 26 0 0.785645 1
+18 22 27 0 0.744629 1
+18 22 28 0 0.70459 1
+18 22 29 0 0.666504 1
+18 22 30 0 0.630859 1
+18 22 31 0 0.598145 1
+18 23 0 0.465088 1 0.200317
+18 23 1 0.465088 1 0.200317
+18 23 2 0.465088 1 0.200317
+18 23 3 0.465088 1 0.200317
+18 23 4 0.465088 1 0.200317
+18 23 5 0.465088 1 0.200317
+18 23 6 0.465088 1 0.200317
+18 23 7 0.465088 1 0.200317
+18 23 8 0.465088 1 0.200317
+18 23 9 0.465088 1 0.200317
+18 23 10 0.465332 1 0.200317
+18 23 11 0.465576 1 0.200317
+18 23 12 0.46582 1 0.200439
+18 23 13 0.466309 1 0.200439
+18 23 14 0.462646 1 0.259766
+18 23 15 0.450439 1 0.363037
+18 23 16 0.430664 1 0.461182
+18 23 17 0.399658 1 0.558105
+18 23 18 0.351074 1 0.652832
+18 23 19 0.27002 1 0.741699
+18 23 20 0 1 0.821777
+18 23 21 0 0.994141 0.89209
+18 23 22 0 0.974121 0.95166
+18 23 23 0 0.950684 0.999023
+18 23 24 0 0.922852 1
+18 23 25 0 0.888184 1
+18 23 26 0 0.848633 1
+18 23 27 0 0.806152 1
+18 23 28 0 0.763184 1
+18 23 29 0 0.721191 1
+18 23 30 0 0.681641 1
+18 23 31 0 0.644531 1
+18 24 0 0.312012 1 0.190796
+18 24 1 0.312012 1 0.190796
+18 24 2 0.312012 1 0.190796
+18 24 3 0.312012 1 0.190796
+18 24 4 0.312012 1 0.190796
+18 24 5 0.312012 1 0.190796
+18 24 6 0.312012 1 0.190796
+18 24 7 0.312012 1 0.190796
+18 24 8 0.312012 1 0.190796
+18 24 9 0.312256 1 0.190918
+18 24 10 0.3125 1 0.190918
+18 24 11 0.312744 1 0.190918
+18 24 12 0.313477 1 0.190918
+18 24 13 0.314453 1 0.19104
+18 24 14 0.312012 1 0.222412
+18 24 15 0.289551 1 0.334229
+18 24 16 0.249268 1 0.434326
+18 24 17 0.162231 1 0.531738
+18 24 18 0 1 0.625977
+18 24 19 0 1 0.714844
+18 24 20 0 1 0.79541
+18 24 21 0 1 0.867676
+18 24 22 0 1 0.929688
+18 24 23 0 0.994629 0.97998
+18 24 24 0 0.970703 1
+18 24 25 0 0.940918 1
+18 24 26 0 0.903809 1
+18 24 27 0 0.862305 1
+18 24 28 0 0.817871 1
+18 24 29 0 0.773926 1
+18 24 30 0 0.730957 1
+18 24 31 0 0.689941 1
+18 25 0 0 1 0.180786
+18 25 1 0 1 0.180786
+18 25 2 0 1 0.180786
+18 25 3 0 1 0.180786
+18 25 4 0 1 0.180786
+18 25 5 0 1 0.180786
+18 25 6 0 1 0.180786
+18 25 7 0 1 0.180786
+18 25 8 0 1 0.180786
+18 25 9 0 1 0.180908
+18 25 10 0 1 0.180908
+18 25 11 0 1 0.180908
+18 25 12 0 1 0.180908
+18 25 13 0 1 0.18103
+18 25 14 0 1 0.181152
+18 25 15 0 1 0.302002
+18 25 16 0 1 0.405029
+18 25 17 0 1 0.502441
+18 25 18 0 1 0.596191
+18 25 19 0 1 0.68457
+18 25 20 0 1 0.765625
+18 25 21 0 1 0.838867
+18 25 22 0 1 0.90332
+18 25 23 0 1 0.956543
+18 25 24 0 1 1
+18 25 25 0 0.988281 1
+18 25 26 0 0.956055 1
+18 25 27 0 0.916992 1
+18 25 28 0 0.873535 1
+18 25 29 0 0.828125 1
+18 25 30 0 0.782715 1
+18 25 31 0 0.73877 1
+18 26 0 0 1 0.170288
+18 26 1 0 1 0.170288
+18 26 2 0 1 0.170288
+18 26 3 0 1 0.170288
+18 26 4 0 1 0.170288
+18 26 5 0 1 0.170288
+18 26 6 0 1 0.170288
+18 26 7 0 1 0.170288
+18 26 8 0 1 0.170288
+18 26 9 0 1 0.170288
+18 26 10 0 1 0.170288
+18 26 11 0 1 0.17041
+18 26 12 0 1 0.17041
+18 26 13 0 1 0.170532
+18 26 14 0 1 0.170654
+18 26 15 0 1 0.264648
+18 26 16 0 1 0.373047
+18 26 17 0 1 0.470703
+18 26 18 0 1 0.563965
+18 26 19 0 1 0.651855
+18 26 20 0 1 0.732422
+18 26 21 0 1 0.806641
+18 26 22 0 1 0.872559
+18 26 23 0 1 0.928223
+18 26 24 0 1 0.975098
+18 26 25 0 1 1
+18 26 26 0 1 1
+18 26 27 0 0.968262 1
+18 26 28 0 0.926758 1
+18 26 29 0 0.881836 1
+18 26 30 0 0.835449 1
+18 26 31 0 0.789551 1
+18 27 0 0 1 0.15918
+18 27 1 0 1 0.15918
+18 27 2 0 1 0.15918
+18 27 3 0 1 0.15918
+18 27 4 0 1 0.15918
+18 27 5 0 1 0.15918
+18 27 6 0 1 0.15918
+18 27 7 0 1 0.15918
+18 27 8 0 1 0.15918
+18 27 9 0 1 0.159302
+18 27 10 0 1 0.159302
+18 27 11 0 1 0.159302
+18 27 12 0 1 0.159424
+18 27 13 0 1 0.159424
+18 27 14 0 1 0.159668
+18 27 15 0 1 0.219971
+18 27 16 0 1 0.338135
+18 27 17 0 1 0.437012
+18 27 18 0 1 0.529297
+18 27 19 0 1 0.616211
+18 27 20 0 1 0.696289
+18 27 21 0 1 0.770508
+18 27 22 0 1 0.837891
+18 27 23 0 1 0.895508
+18 27 24 0 1 0.944824
+18 27 25 0 1 0.990723
+18 27 26 0 1 1
+18 27 27 0 1 1
+18 27 28 0 0.977051 1
+18 27 29 0 0.934082 1
+18 27 30 0 0.887695 1
+18 27 31 0 0.840332 1
+18 28 0 0 1 0.147705
+18 28 1 0 1 0.147705
+18 28 2 0 1 0.147705
+18 28 3 0 1 0.147705
+18 28 4 0 1 0.147705
+18 28 5 0 1 0.147705
+18 28 6 0 1 0.147705
+18 28 7 0 1 0.147705
+18 28 8 0 1 0.147705
+18 28 9 0 1 0.147705
+18 28 10 0 1 0.147705
+18 28 11 0 1 0.147705
+18 28 12 0 1 0.147827
+18 28 13 0 1 0.147949
+18 28 14 0 1 0.148071
+18 28 15 0 1 0.159058
+18 28 16 0 1 0.299316
+18 28 17 0 1 0.401367
+18 28 18 0 1 0.493164
+18 28 19 0 1 0.578613
+18 28 20 0 1 0.657715
+18 28 21 0 1 0.731445
+18 28 22 0 1 0.798828
+18 28 23 0 1 0.85791
+18 28 24 0 1 0.90918
+18 28 25 0 1 0.95752
+18 28 26 0 1 1
+18 28 27 0 1 1
+18 28 28 0 1 1
+18 28 29 0 0.981934 1
+18 28 30 0 0.937988 1
+18 28 31 0 0.891113 1
+18 29 0 0 1 0.135376
+18 29 1 0 1 0.135376
+18 29 2 0 1 0.135376
+18 29 3 0 1 0.135376
+18 29 4 0 1 0.135376
+18 29 5 0 1 0.135376
+18 29 6 0 1 0.135376
+18 29 7 0 1 0.135376
+18 29 8 0 1 0.135498
+18 29 9 0 1 0.135498
+18 29 10 0 1 0.135498
+18 29 11 0 1 0.135498
+18 29 12 0 1 0.13562
+18 29 13 0 1 0.135742
+18 29 14 0 1 0.135864
+18 29 15 0 1 0.136108
+18 29 16 0 1 0.255127
+18 29 17 0 1 0.362793
+18 29 18 0 1 0.454834
+18 29 19 0 1 0.539062
+18 29 20 0 1 0.616699
+18 29 21 0 1 0.689453
+18 29 22 0 1 0.756836
+18 29 23 0 1 0.815918
+18 29 24 0 1 0.868652
+18 29 25 0 1 0.919434
+18 29 26 0 1 0.967285
+18 29 27 0 1 1
+18 29 28 0 1 1
+18 29 29 0 1 1
+18 29 30 0 0.986328 1
+18 29 31 0 0.941406 1
+18 30 0 0 1 0.122498
+18 30 1 0 1 0.122498
+18 30 2 0 1 0.122498
+18 30 3 0 1 0.122498
+18 30 4 0 1 0.122498
+18 30 5 0 1 0.122498
+18 30 6 0 1 0.122498
+18 30 7 0 1 0.122559
+18 30 8 0 1 0.122559
+18 30 9 0 1 0.122559
+18 30 10 0 1 0.122559
+18 30 11 0 1 0.12262
+18 30 12 0 1 0.122681
+18 30 13 0 1 0.122803
+18 30 14 0 1 0.122986
+18 30 15 0 1 0.12323
+18 30 16 0 1 0.201416
+18 30 17 0 1 0.321289
+18 30 18 0 1 0.414795
+18 30 19 0 1 0.497803
+18 30 20 0 1 0.57373
+18 30 21 0 1 0.64502
+18 30 22 0 1 0.711426
+18 30 23 0 1 0.770508
+18 30 24 0 1 0.82373
+18 30 25 0 1 0.875488
+18 30 26 0 1 0.925781
+18 30 27 0 1 0.973145
+18 30 28 0 1 1
+18 30 29 0 1 1
+18 30 30 0 1 1
+18 30 31 0 0.989258 1
+18 31 0 0 1 0.108948
+18 31 1 0 1 0.108948
+18 31 2 0 1 0.108948
+18 31 3 0 1 0.108948
+18 31 4 0 1 0.108948
+18 31 5 0 1 0.108948
+18 31 6 0 1 0.108948
+18 31 7 0 1 0.108948
+18 31 8 0 1 0.108948
+18 31 9 0 1 0.108948
+18 31 10 0 1 0.109009
+18 31 11 0 1 0.109009
+18 31 12 0 1 0.10907
+18 31 13 0 1 0.109192
+18 31 14 0 1 0.109375
+18 31 15 0 1 0.10968
+18 31 16 0 1 0.120117
+18 31 17 0 1 0.276123
+18 31 18 0 1 0.372803
+18 31 19 0 1 0.455322
+18 31 20 0 1 0.529785
+18 31 21 0 1 0.599121
+18 31 22 0 1 0.663574
+18 31 23 0 1 0.722168
+18 31 24 0 1 0.774902
+18 31 25 0 1 0.827637
+18 31 26 0 1 0.879883
+18 31 27 0 1 0.930176
+18 31 28 0 1 0.977539
+18 31 29 0 1 1
+18 31 30 0 1 1
+18 31 31 0 1 1
+19 0 0 0.921387 0 0.0501099
+19 0 1 0.921387 0 0.0501099
+19 0 2 0.921387 0 0.0501099
+19 0 3 0.921387 0 0.0500793
+19 0 4 0.921387 0 0.0500793
+19 0 5 0.921387 0 0.0500488
+19 0 6 0.921387 0 0.0499878
+19 0 7 0.921387 0 0.0498962
+19 0 8 0.921875 0 0.0496826
+19 0 9 0.921875 0 0.0493164
+19 0 10 0.921875 0 0.048584
+19 0 11 0.922363 0 0.0473022
+19 0 12 0.924316 0 0.0462341
+19 0 13 0.929199 0 0.175415
+19 0 14 0.939941 0 0.303223
+19 0 15 0.952148 0 0.413574
+19 0 16 0.972656 0 0.533691
+19 0 17 0.996582 0.227295 0.659668
+19 0 18 0.995117 0.291748 0.76709
+19 0 19 0.959961 0.302734 0.848145
+19 0 20 0.914062 0.308105 0.915039
+19 0 21 0.854492 0.309326 0.963379
+19 0 22 0.78418 0.306641 0.990234
+19 0 23 0.713379 0.301758 1
+19 0 24 0.645508 0.296875 1
+19 0 25 0.575195 0.291992 1
+19 0 26 0.500488 0.287598 1
+19 0 27 0.417969 0.283691 1
+19 0 28 0.317871 0.280762 1
+19 0 29 0.132812 0.278809 1
+19 0 30 0 0.277588 1
+19 0 31 0 0.2771 1
+19 1 0 0.921387 0 0.0500793
+19 1 1 0.921387 0 0.0500793
+19 1 2 0.921387 0 0.0500793
+19 1 3 0.921387 0 0.0500793
+19 1 4 0.921387 0 0.0500488
+19 1 5 0.921387 0 0.0500183
+19 1 6 0.921387 0 0.0499573
+19 1 7 0.921387 0 0.0498657
+19 1 8 0.921875 0 0.0496826
+19 1 9 0.921875 0 0.0492859
+19 1 10 0.921875 0 0.0485535
+19 1 11 0.922363 0 0.0472717
+19 1 12 0.924316 0 0.0462036
+19 1 13 0.929199 0 0.175415
+19 1 14 0.939941 0 0.303223
+19 1 15 0.952148 0 0.413574
+19 1 16 0.972168 0 0.533691
+19 1 17 0.996582 0.227295 0.659668
+19 1 18 0.995117 0.291992 0.76709
+19 1 19 0.959961 0.302979 0.848145
+19 1 20 0.914062 0.308105 0.915039
+19 1 21 0.854492 0.30957 0.963379
+19 1 22 0.78418 0.306641 0.990234
+19 1 23 0.713379 0.301758 1
+19 1 24 0.645508 0.296875 1
+19 1 25 0.575195 0.291992 1
+19 1 26 0.500488 0.287598 1
+19 1 27 0.417969 0.283691 1
+19 1 28 0.317871 0.280762 1
+19 1 29 0.132812 0.278809 1
+19 1 30 0 0.277588 1
+19 1 31 0 0.2771 1
+19 2 0 0.921387 0 0.0500183
+19 2 1 0.921387 0 0.0500183
+19 2 2 0.921387 0 0.0500183
+19 2 3 0.921387 0 0.0500183
+19 2 4 0.921387 0 0.0499878
+19 2 5 0.921387 0 0.0499878
+19 2 6 0.921387 0 0.0499268
+19 2 7 0.921387 0 0.0498047
+19 2 8 0.921875 0 0.0496216
+19 2 9 0.921875 0 0.0492249
+19 2 10 0.921875 0 0.0485229
+19 2 11 0.922363 0 0.0472107
+19 2 12 0.924316 0 0.0461426
+19 2 13 0.929199 0 0.175415
+19 2 14 0.939941 0 0.303223
+19 2 15 0.952148 0 0.413574
+19 2 16 0.972168 0 0.533691
+19 2 17 0.996582 0.227417 0.659668
+19 2 18 0.995117 0.291992 0.76709
+19 2 19 0.959961 0.302979 0.848145
+19 2 20 0.914062 0.308105 0.915039
+19 2 21 0.854492 0.30957 0.963379
+19 2 22 0.78418 0.306641 0.990234
+19 2 23 0.713379 0.302002 1
+19 2 24 0.645508 0.296875 1
+19 2 25 0.575195 0.291992 1
+19 2 26 0.500488 0.287598 1
+19 2 27 0.417969 0.283691 1
+19 2 28 0.317871 0.280762 1
+19 2 29 0.13269 0.278809 1
+19 2 30 0 0.277588 1
+19 2 31 0 0.2771 1
+19 3 0 0.921387 0 0.0499268
+19 3 1 0.921387 0 0.0499268
+19 3 2 0.921387 0 0.0499268
+19 3 3 0.921387 0 0.0499268
+19 3 4 0.921387 0 0.0498962
+19 3 5 0.921387 0 0.0498657
+19 3 6 0.921387 0 0.0498352
+19 3 7 0.921387 0 0.0497131
+19 3 8 0.921875 0 0.04953
+19 3 9 0.921875 0 0.0491333
+19 3 10 0.921875 0 0.0484009
+19 3 11 0.922363 0 0.0471191
+19 3 12 0.924316 0 0.046051
+19 3 13 0.929199 0 0.175415
+19 3 14 0.939941 0 0.303223
+19 3 15 0.952148 0 0.413574
+19 3 16 0.972168 0 0.533691
+19 3 17 0.996582 0.227539 0.659668
+19 3 18 0.995117 0.291992 0.76709
+19 3 19 0.959961 0.302979 0.848145
+19 3 20 0.914062 0.308105 0.915039
+19 3 21 0.854492 0.30957 0.963379
+19 3 22 0.78418 0.306641 0.990234
+19 3 23 0.713379 0.302002 1
+19 3 24 0.645508 0.297119 1
+19 3 25 0.575195 0.292236 1
+19 3 26 0.500488 0.287598 1
+19 3 27 0.417969 0.283691 1
+19 3 28 0.317871 0.280762 1
+19 3 29 0.13269 0.278809 1
+19 3 30 0 0.277588 1
+19 3 31 0 0.2771 1
+19 4 0 0.921387 0 0.0497742
+19 4 1 0.921387 0 0.0497742
+19 4 2 0.921387 0 0.0497437
+19 4 3 0.921387 0 0.0497437
+19 4 4 0.921387 0 0.0497437
+19 4 5 0.921387 0 0.0497131
+19 4 6 0.921387 0 0.0496521
+19 4 7 0.921875 0 0.0495605
+19 4 8 0.921875 0 0.0493469
+19 4 9 0.921875 0 0.0489502
+19 4 10 0.921875 0 0.0482178
+19 4 11 0.922363 0 0.0469055
+19 4 12 0.924316 0 0.0458374
+19 4 13 0.929199 0 0.175415
+19 4 14 0.939941 0 0.303223
+19 4 15 0.952148 0 0.413574
+19 4 16 0.972168 0 0.533691
+19 4 17 0.996582 0.227905 0.659668
+19 4 18 0.995117 0.292236 0.76709
+19 4 19 0.959961 0.303223 0.848145
+19 4 20 0.914062 0.30835 0.915039
+19 4 21 0.854492 0.309814 0.963379
+19 4 22 0.78418 0.306885 0.990234
+19 4 23 0.713379 0.302002 1
+19 4 24 0.645508 0.297119 1
+19 4 25 0.575195 0.292236 1
+19 4 26 0.500488 0.287598 1
+19 4 27 0.417969 0.283936 1
+19 4 28 0.317871 0.280762 1
+19 4 29 0.132568 0.278809 1
+19 4 30 0 0.277588 1
+19 4 31 0 0.2771 1
+19 5 0 0.921875 0 0.049408
+19 5 1 0.921875 0 0.049408
+19 5 2 0.921875 0 0.049408
+19 5 3 0.921875 0 0.049408
+19 5 4 0.921875 0 0.049408
+19 5 5 0.921875 0 0.0493774
+19 5 6 0.921875 0 0.0493164
+19 5 7 0.921875 0 0.0491943
+19 5 8 0.921875 0 0.0490112
+19 5 9 0.921875 0 0.0486145
+19 5 10 0.921875 0 0.0478821
+19 5 11 0.922363 0 0.0465393
+19 5 12 0.924316 0 0.0454407
+19 5 13 0.929688 0 0.175415
+19 5 14 0.939941 0 0.303223
+19 5 15 0.952148 0 0.413574
+19 5 16 0.972168 0 0.533691
+19 5 17 0.996582 0.228394 0.659668
+19 5 18 0.995117 0.292725 0.76709
+19 5 19 0.959961 0.303711 0.848145
+19 5 20 0.914062 0.308594 0.915039
+19 5 21 0.854492 0.310059 0.963379
+19 5 22 0.78418 0.307129 0.990234
+19 5 23 0.713379 0.302246 1
+19 5 24 0.645508 0.297363 1
+19 5 25 0.575195 0.29248 1
+19 5 26 0.500488 0.287842 1
+19 5 27 0.417969 0.283936 1
+19 5 28 0.317871 0.281006 1
+19 5 29 0.132446 0.279053 1
+19 5 30 0 0.277832 1
+19 5 31 0 0.2771 1
+19 6 0 0.921875 0 0.0487671
+19 6 1 0.921875 0 0.0487671
+19 6 2 0.921875 0 0.0487671
+19 6 3 0.921875 0 0.0487366
+19 6 4 0.921875 0 0.0487366
+19 6 5 0.921875 0 0.0487061
+19 6 6 0.921875 0 0.048645
+19 6 7 0.921875 0 0.0485535
+19 6 8 0.921875 0 0.0483398
+19 6 9 0.921875 0 0.0479126
+19 6 10 0.921875 0 0.0471802
+19 6 11 0.922363 0 0.0458069
+19 6 12 0.924316 0 0.0447083
+19 6 13 0.929688 0 0.175415
+19 6 14 0.939941 0 0.303223
+19 6 15 0.952148 0 0.413574
+19 6 16 0.972168 0.0241852 0.533691
+19 6 17 0.996582 0.229492 0.659668
+19 6 18 0.995117 0.293457 0.76709
+19 6 19 0.959961 0.304199 0.848145
+19 6 20 0.914062 0.309326 0.915039
+19 6 21 0.854492 0.310547 0.963379
+19 6 22 0.78418 0.307617 0.990234
+19 6 23 0.713379 0.302734 1
+19 6 24 0.645508 0.297852 1
+19 6 25 0.575195 0.292725 1
+19 6 26 0.500488 0.288086 1
+19 6 27 0.417969 0.28418 1
+19 6 28 0.317627 0.28125 1
+19 6 29 0.132202 0.279053 1
+19 6 30 0 0.277832 1
+19 6 31 0 0.277344 1
+19 7 0 0.921875 0 0.0474243
+19 7 1 0.921875 0 0.0474243
+19 7 2 0.921875 0 0.0474243
+19 7 3 0.921875 0 0.0474243
+19 7 4 0.921875 0 0.0473938
+19 7 5 0.921875 0 0.0473633
+19 7 6 0.921875 0 0.0473022
+19 7 7 0.921875 0 0.0472107
+19 7 8 0.921875 0 0.0469971
+19 7 9 0.922363 0 0.0465698
+19 7 10 0.922363 0 0.0457764
+19 7 11 0.922852 0 0.044342
+19 7 12 0.924316 0 0.0431519
+19 7 13 0.929688 0 0.175537
+19 7 14 0.939941 0 0.302979
+19 7 15 0.952148 0 0.413574
+19 7 16 0.972168 0.0560913 0.533203
+19 7 17 0.996094 0.231567 0.659668
+19 7 18 0.995117 0.294922 0.76709
+19 7 19 0.959961 0.305664 0.848145
+19 7 20 0.913574 0.310547 0.915039
+19 7 21 0.854492 0.311768 0.963379
+19 7 22 0.783691 0.308594 0.990234
+19 7 23 0.713379 0.303711 1
+19 7 24 0.645508 0.298584 1
+19 7 25 0.575195 0.293457 1
+19 7 26 0.500488 0.288818 1
+19 7 27 0.417725 0.284668 1
+19 7 28 0.317627 0.281738 1
+19 7 29 0.131592 0.279541 1
+19 7 30 0 0.27832 1
+19 7 31 0 0.277588 1
+19 8 0 0.922363 0 0.0446472
+19 8 1 0.922363 0 0.0446472
+19 8 2 0.922363 0 0.0446167
+19 8 3 0.922363 0 0.0446167
+19 8 4 0.922363 0 0.0446167
+19 8 5 0.922363 0 0.0445557
+19 8 6 0.922363 0 0.0444946
+19 8 7 0.922363 0 0.0443726
+19 8 8 0.922363 0 0.0441284
+19 8 9 0.922363 0 0.0436707
+19 8 10 0.922852 0 0.0427856
+19 8 11 0.922852 0 0.0411682
+19 8 12 0.924805 0 0.039856
+19 8 13 0.929688 0 0.175537
+19 8 14 0.939941 0 0.302979
+19 8 15 0.952148 0 0.413574
+19 8 16 0.972168 0.0826416 0.533203
+19 8 17 0.996094 0.235474 0.65918
+19 8 18 0.994629 0.297852 0.76709
+19 8 19 0.959473 0.30835 0.848145
+19 8 20 0.913574 0.312988 0.915039
+19 8 21 0.854492 0.313965 0.963379
+19 8 22 0.783691 0.310303 0.990234
+19 8 23 0.712891 0.305176 1
+19 8 24 0.645508 0.300049 1
+19 8 25 0.574707 0.294678 1
+19 8 26 0.5 0.289795 1
+19 8 27 0.41748 0.285645 1
+19 8 28 0.317383 0.282471 1
+19 8 29 0.130615 0.280273 1
+19 8 30 0 0.278809 1
+19 8 31 0 0.27832 1
+19 9 0 0.92334 0 0.038269
+19 9 1 0.92334 0 0.038269
+19 9 2 0.92334 0 0.038269
+19 9 3 0.92334 0 0.038269
+19 9 4 0.92334 0 0.0382385
+19 9 5 0.92334 0 0.0381775
+19 9 6 0.92334 0 0.0381165
+19 9 7 0.92334 0 0.0379639
+19 9 8 0.92334 0 0.0376282
+19 9 9 0.92334 0 0.0370178
+19 9 10 0.92334 0 0.0358582
+19 9 11 0.923828 0 0.0336609
+19 9 12 0.925781 0 0.0317993
+19 9 13 0.930664 0 0.175659
+19 9 14 0.94043 0 0.302734
+19 9 15 0.952637 0 0.413574
+19 9 16 0.97168 0.112244 0.533203
+19 9 17 0.995605 0.242798 0.65918
+19 9 18 0.994629 0.303223 0.76709
+19 9 19 0.959473 0.313232 0.848145
+19 9 20 0.913086 0.317383 0.915039
+19 9 21 0.854004 0.317871 0.963379
+19 9 22 0.783691 0.313965 0.990234
+19 9 23 0.712402 0.30835 1
+19 9 24 0.64502 0.302734 1
+19 9 25 0.574707 0.297119 1
+19 9 26 0.499756 0.291992 1
+19 9 27 0.417236 0.287598 1
+19 9 28 0.31665 0.28418 1
+19 9 29 0.128418 0.281738 1
+19 9 30 0 0.280273 1
+19 9 31 0 0.279297 1
+19 10 0 0.924805 0 0.0157928
+19 10 1 0.924805 0 0.0157776
+19 10 2 0.924805 0 0.0157471
+19 10 3 0.924805 0 0.0157013
+19 10 4 0.924805 0 0.0156021
+19 10 5 0.924805 0 0.0154266
+19 10 6 0.924805 0 0.0150681
+19 10 7 0.924805 0 0.014328
+19 10 8 0.924805 0 0.0126877
+19 10 9 0.924805 0 0.00782013
+19 10 10 0.924805 0.0398254 0
+19 10 11 0.925293 0.0626221 0
+19 10 12 0.926758 0.0737305 0
+19 10 13 0.931152 0.0632324 0.176025
+19 10 14 0.94043 0 0.30249
+19 10 15 0.952637 0.032959 0.413574
+19 10 16 0.970703 0.146606 0.532227
+19 10 17 0.994629 0.255127 0.658691
+19 10 18 0.993652 0.312744 0.76709
+19 10 19 0.958984 0.322021 0.848145
+19 10 20 0.912598 0.325439 0.915039
+19 10 21 0.853516 0.324951 0.963379
+19 10 22 0.782715 0.320312 0.990234
+19 10 23 0.711914 0.313965 1
+19 10 24 0.644531 0.307617 1
+19 10 25 0.57373 0.301514 1
+19 10 26 0.499023 0.295898 1
+19 10 27 0.416504 0.291016 1
+19 10 28 0.315674 0.287109 1
+19 10 29 0.124451 0.284424 1
+19 10 30 0 0.282471 1
+19 10 31 0 0.28125 1
+19 11 0 0.927246 0.139648 0
+19 11 1 0.927246 0.139648 0
+19 11 2 0.927246 0.139648 0
+19 11 3 0.927246 0.139771 0
+19 11 4 0.927246 0.139771 0
+19 11 5 0.927246 0.139893 0
+19 11 6 0.927246 0.140137 0
+19 11 7 0.927246 0.140503 0
+19 11 8 0.927246 0.141235 0
+19 11 9 0.927246 0.1427 0
+19 11 10 0.927246 0.145264 0
+19 11 11 0.927734 0.149536 0
+19 11 12 0.929199 0.152588 0
+19 11 13 0.933105 0.149048 0.177124
+19 11 14 0.941406 0.141602 0.302246
+19 11 15 0.953125 0.145142 0.413574
+19 11 16 0.969727 0.18689 0.53125
+19 11 17 0.992676 0.274658 0.657715
+19 11 18 0.992676 0.328369 0.76709
+19 11 19 0.958008 0.336426 0.848145
+19 11 20 0.911621 0.338623 0.915039
+19 11 21 0.852539 0.336914 0.963379
+19 11 22 0.781738 0.331055 0.990234
+19 11 23 0.710938 0.323486 1
+19 11 24 0.643555 0.316162 1
+19 11 25 0.572754 0.309082 1
+19 11 26 0.497803 0.30249 1
+19 11 27 0.415039 0.296875 1
+19 11 28 0.313965 0.292236 1
+19 11 29 0.116821 0.288818 1
+19 11 30 0 0.286377 1
+19 11 31 0 0.284668 1
+19 12 0 0.931641 0.209473 0
+19 12 1 0.931641 0.209473 0
+19 12 2 0.931641 0.209473 0
+19 12 3 0.931641 0.209473 0
+19 12 4 0.931641 0.209473 0
+19 12 5 0.931641 0.209473 0
+19 12 6 0.931641 0.209595 0
+19 12 7 0.931641 0.209839 0
+19 12 8 0.931641 0.210205 0
+19 12 9 0.931641 0.21106 0
+19 12 10 0.931641 0.212402 0
+19 12 11 0.932129 0.214844 0
+19 12 12 0.933105 0.216675 0
+19 12 13 0.936035 0.213989 0.17981
+19 12 14 0.942383 0.209106 0.302246
+19 12 15 0.954102 0.213013 0.414062
+19 12 16 0.967285 0.234741 0.529785
+19 12 17 0.989746 0.303711 0.65625
+19 12 18 0.990723 0.352783 0.766602
+19 12 19 0.956055 0.359131 0.848145
+19 12 20 0.910156 0.359619 0.915039
+19 12 21 0.850586 0.355957 0.963867
+19 12 22 0.780273 0.3479 0.990234
+19 12 23 0.708984 0.338623 1
+19 12 24 0.641602 0.329834 1
+19 12 25 0.570801 0.321045 1
+19 12 26 0.49585 0.313232 1
+19 12 27 0.412842 0.306396 1
+19 12 28 0.310791 0.300781 1
+19 12 29 0.101624 0.296143 1
+19 12 30 0 0.292969 1
+19 12 31 0 0.290527 1
+19 13 0 0.938477 0.279053 0
+19 13 1 0.938477 0.279053 0
+19 13 2 0.938477 0.279053 0
+19 13 3 0.938477 0.279053 0
+19 13 4 0.938477 0.279053 0
+19 13 5 0.938477 0.279053 0
+19 13 6 0.938477 0.279053 0
+19 13 7 0.938477 0.279297 0
+19 13 8 0.938477 0.279541 0
+19 13 9 0.938477 0.280029 0
+19 13 10 0.938965 0.281006 0
+19 13 11 0.938965 0.282471 0
+19 13 12 0.939941 0.283691 0
+19 13 13 0.941406 0.28125 0.186768
+19 13 14 0.945312 0.277344 0.303711
+19 13 15 0.954102 0.279297 0.413574
+19 13 16 0.964355 0.290771 0.527344
+19 13 17 0.984863 0.343018 0.653809
+19 13 18 0.987305 0.387451 0.766113
+19 13 19 0.953125 0.391846 0.848145
+19 13 20 0.907227 0.390137 0.915039
+19 13 21 0.848145 0.384033 0.963867
+19 13 22 0.777344 0.373291 0.990234
+19 13 23 0.706055 0.361328 1
+19 13 24 0.638672 0.350342 1
+19 13 25 0.567871 0.3396 1
+19 13 26 0.492676 0.329834 1
+19 13 27 0.408936 0.321045 1
+19 13 28 0.30542 0.313721 1
+19 13 29 0.0623169 0.307861 1
+19 13 30 0 0.303223 1
+19 13 31 0 0.299561 1
+19 14 0 0.949707 0.355469 0
+19 14 1 0.949707 0.355469 0
+19 14 2 0.949707 0.355469 0
+19 14 3 0.949707 0.355469 0
+19 14 4 0.949707 0.355469 0
+19 14 5 0.949707 0.355469 0
+19 14 6 0.949707 0.355469 0
+19 14 7 0.949707 0.355713 0
+19 14 8 0.949707 0.355713 0
+19 14 9 0.949707 0.356201 0
+19 14 10 0.949707 0.356934 0
+19 14 11 0.950195 0.35791 0
+19 14 12 0.950195 0.358887 0
+19 14 13 0.950195 0.356689 0.202271
+19 14 14 0.950684 0.353271 0.309326
+19 14 15 0.953613 0.351074 0.412842
+19 14 16 0.959961 0.357178 0.524902
+19 14 17 0.976562 0.393555 0.649414
+19 14 18 0.981445 0.433594 0.764648
+19 14 19 0.948242 0.436279 0.847656
+19 14 20 0.902344 0.432129 0.915039
+19 14 21 0.843262 0.423096 0.963867
+19 14 22 0.772461 0.408691 0.990234
+19 14 23 0.701172 0.393555 1
+19 14 24 0.633789 0.379395 1
+19 14 25 0.562988 0.365967 1
+19 14 26 0.487305 0.35376 1
+19 14 27 0.402832 0.342529 1
+19 14 28 0.296631 0.333008 1
+19 14 29 0 0.325195 1
+19 14 30 0 0.318604 1
+19 14 31 0 0.313232 1
+19 15 0 0.964844 0.441162 0
+19 15 1 0.964844 0.441162 0
+19 15 2 0.964844 0.441162 0
+19 15 3 0.964844 0.441162 0
+19 15 4 0.964844 0.441162 0
+19 15 5 0.964844 0.441162 0
+19 15 6 0.964844 0.441162 0
+19 15 7 0.964844 0.441162 0
+19 15 8 0.964844 0.441406 0
+19 15 9 0.964844 0.44165 0
+19 15 10 0.965332 0.442139 0
+19 15 11 0.965332 0.442871 0
+19 15 12 0.965332 0.443604 0.100159
+19 15 13 0.963379 0.442139 0.230225
+19 15 14 0.960449 0.439209 0.323975
+19 15 15 0.956543 0.435059 0.417969
+19 15 16 0.956543 0.435791 0.524414
+19 15 17 0.962891 0.454102 0.64209
+19 15 18 0.97168 0.491455 0.761719
+19 15 19 0.939941 0.492676 0.846191
+19 15 20 0.894531 0.48584 0.914551
+19 15 21 0.835449 0.473389 0.963867
+19 15 22 0.764648 0.45459 0.990234
+19 15 23 0.693359 0.435547 1
+19 15 24 0.625977 0.418213 1
+19 15 25 0.555176 0.401611 1
+19 15 26 0.479004 0.385986 1
+19 15 27 0.393066 0.37207 1
+19 15 28 0.282227 0.359863 1
+19 15 29 0 0.349365 1
+19 15 30 0 0.340332 1
+19 15 31 0 0.332764 1
+19 16 0 0.982422 0.536621 0.167236
+19 16 1 0.982422 0.536621 0.167236
+19 16 2 0.982422 0.536621 0.167236
+19 16 3 0.982422 0.536621 0.167236
+19 16 4 0.982422 0.536621 0.167236
+19 16 5 0.982422 0.536621 0.167236
+19 16 6 0.982422 0.536621 0.167236
+19 16 7 0.982422 0.536621 0.167358
+19 16 8 0.982422 0.537109 0.16748
+19 16 9 0.982422 0.537109 0.167603
+19 16 10 0.982422 0.537598 0.167969
+19 16 11 0.98291 0.538086 0.168457
+19 16 12 0.98291 0.539062 0.183716
+19 16 13 0.97998 0.538086 0.268799
+19 16 14 0.974609 0.536133 0.350342
+19 16 15 0.965332 0.531738 0.435059
+19 16 16 0.95166 0.524414 0.526367
+19 16 17 0.944336 0.526367 0.632324
+19 16 18 0.955078 0.558105 0.755859
+19 16 19 0.927246 0.560547 0.844238
+19 16 20 0.882324 0.550781 0.913086
+19 16 21 0.82373 0.534668 0.962891
+19 16 22 0.752441 0.51123 0.989258
+19 16 23 0.681641 0.488037 1
+19 16 24 0.614258 0.466797 1
+19 16 25 0.542969 0.446533 1
+19 16 26 0.466309 0.427734 1
+19 16 27 0.377686 0.4104 1
+19 16 28 0.258301 0.394775 1
+19 16 29 0 0.381104 1
+19 16 30 0 0.369385 1
+19 16 31 0 0.358887 1
+19 17 0 0.994141 0.637695 0.236084
+19 17 1 0.994141 0.637695 0.236084
+19 17 2 0.994141 0.637695 0.236084
+19 17 3 0.994141 0.637695 0.236084
+19 17 4 0.994141 0.637695 0.236084
+19 17 5 0.994141 0.637695 0.236084
+19 17 6 0.994141 0.637695 0.236084
+19 17 7 0.994141 0.637695 0.236084
+19 17 8 0.994141 0.637695 0.236084
+19 17 9 0.994141 0.637695 0.236206
+19 17 10 0.994141 0.638184 0.236328
+19 17 11 0.994629 0.638672 0.236572
+19 17 12 0.994629 0.63916 0.236938
+19 17 13 0.991699 0.63916 0.303711
+19 17 14 0.986816 0.638672 0.379639
+19 17 15 0.976562 0.635742 0.460938
+19 17 16 0.958496 0.628906 0.545898
+19 17 17 0.930664 0.615723 0.631348
+19 17 18 0.92627 0.627441 0.742676
+19 17 19 0.907227 0.635254 0.839355
+19 17 20 0.863281 0.623535 0.909668
+19 17 21 0.805176 0.603516 0.959961
+19 17 22 0.734375 0.575684 0.987305
+19 17 23 0.664551 0.54834 1
+19 17 24 0.597168 0.523438 1
+19 17 25 0.525879 0.499756 1
+19 17 26 0.44751 0.477295 1
+19 17 27 0.354492 0.456543 1
+19 17 28 0.216553 0.4375 1
+19 17 29 0 0.42041 1
+19 17 30 0 0.405273 1
+19 17 31 0 0.391602 1
+19 18 0 0.986816 0.734863 0.266357
+19 18 1 0.986816 0.734863 0.266357
+19 18 2 0.986816 0.734863 0.266357
+19 18 3 0.986816 0.734863 0.266357
+19 18 4 0.986816 0.734863 0.266357
+19 18 5 0.986816 0.734863 0.266357
+19 18 6 0.986816 0.734863 0.266357
+19 18 7 0.986816 0.734863 0.266357
+19 18 8 0.986816 0.734863 0.266357
+19 18 9 0.987305 0.734863 0.266357
+19 18 10 0.987305 0.735352 0.266357
+19 18 11 0.987305 0.735352 0.266602
+19 18 12 0.987305 0.736328 0.266602
+19 18 13 0.98584 0.736816 0.315674
+19 18 14 0.981934 0.737305 0.392578
+19 18 15 0.974121 0.736328 0.476074
+19 18 16 0.959473 0.73291 0.564941
+19 18 17 0.93457 0.724121 0.652344
+19 18 18 0.893555 0.70459 0.72998
+19 18 19 0.879395 0.712402 0.832031
+19 18 20 0.836426 0.699219 0.90332
+19 18 21 0.77832 0.675781 0.954102
+19 18 22 0.709473 0.644531 0.983398
+19 18 23 0.641113 0.614258 1
+19 18 24 0.574707 0.586426 1
+19 18 25 0.502441 0.55957 1
+19 18 26 0.420898 0.533691 1
+19 18 27 0.319092 0.509277 1
+19 18 28 0.120056 0.486816 1
+19 18 29 0 0.466064 1
+19 18 30 0 0.446533 1
+19 18 31 0 0.428955 1
+19 19 0 0.952637 0.818359 0.267578
+19 19 1 0.952637 0.818359 0.267578
+19 19 2 0.952637 0.818359 0.267578
+19 19 3 0.952637 0.818359 0.267578
+19 19 4 0.952637 0.818359 0.267578
+19 19 5 0.952637 0.818359 0.267578
+19 19 6 0.952637 0.818359 0.267578
+19 19 7 0.952637 0.818359 0.267578
+19 19 8 0.952637 0.818359 0.267578
+19 19 9 0.952637 0.818359 0.267578
+19 19 10 0.952637 0.818359 0.267578
+19 19 11 0.952637 0.818848 0.267578
+19 19 12 0.952637 0.819336 0.267578
+19 19 13 0.95166 0.819824 0.300293
+19 19 14 0.948242 0.820801 0.381348
+19 19 15 0.941895 0.820801 0.467773
+19 19 16 0.930176 0.819336 0.560059
+19 19 17 0.910645 0.813965 0.65332
+19 19 18 0.881348 0.803711 0.742188
+19 19 19 0.841309 0.787598 0.820312
+19 19 20 0.800781 0.773438 0.894043
+19 19 21 0.743652 0.747559 0.945801
+19 19 22 0.677734 0.715332 0.97998
+19 19 23 0.61084 0.683105 1
+19 19 24 0.544434 0.652832 1
+19 19 25 0.469971 0.623047 1
+19 19 26 0.381836 0.593262 1
+19 19 27 0.260498 0.564453 1
+19 19 28 0 0.537598 1
+19 19 29 0 0.512695 1
+19 19 30 0 0.489746 1
+19 19 31 0 0.468506 1
+19 20 0 0.895508 0.882812 0.259521
+19 20 1 0.895508 0.882812 0.259521
+19 20 2 0.895508 0.882812 0.259521
+19 20 3 0.895508 0.882812 0.259521
+19 20 4 0.895508 0.882812 0.259521
+19 20 5 0.895508 0.882812 0.259521
+19 20 6 0.895508 0.882812 0.259521
+19 20 7 0.895508 0.882812 0.259521
+19 20 8 0.895508 0.882812 0.259521
+19 20 9 0.895508 0.882812 0.259521
+19 20 10 0.895508 0.882812 0.259521
+19 20 11 0.895508 0.882812 0.259521
+19 20 12 0.895508 0.883301 0.259521
+19 20 13 0.89502 0.883789 0.271973
+19 20 14 0.891113 0.883789 0.357666
+19 20 15 0.884766 0.884277 0.446045
+19 20 16 0.874023 0.883301 0.539062
+19 20 17 0.855957 0.878418 0.632812
+19 20 18 0.828125 0.868652 0.722168
+19 20 19 0.793945 0.855957 0.805176
+19 20 20 0.754883 0.842285 0.880371
+19 20 21 0.703125 0.819336 0.939453
+19 20 22 0.639648 0.787109 0.978516
+19 20 23 0.573242 0.753418 1
+19 20 24 0.504395 0.720703 1
+19 20 25 0.424805 0.6875 1
+19 20 26 0.32373 0.654297 1
+19 20 27 0.128662 0.621582 1
+19 20 28 0 0.59082 1
+19 20 29 0 0.562012 1
+19 20 30 0 0.535156 1
+19 20 31 0 0.510254 1
+19 21 0 0.830078 0.938965 0.250732
+19 21 1 0.830078 0.938965 0.250732
+19 21 2 0.830078 0.938965 0.250732
+19 21 3 0.830078 0.938965 0.250732
+19 21 4 0.830078 0.938965 0.250732
+19 21 5 0.830078 0.938965 0.250732
+19 21 6 0.830078 0.938965 0.250732
+19 21 7 0.830078 0.938965 0.250732
+19 21 8 0.830078 0.938965 0.250732
+19 21 9 0.830078 0.938965 0.250732
+19 21 10 0.830078 0.938965 0.250732
+19 21 11 0.830078 0.938965 0.250732
+19 21 12 0.830078 0.939453 0.250732
+19 21 13 0.830078 0.939941 0.250732
+19 21 14 0.82666 0.939941 0.330811
+19 21 15 0.819336 0.939453 0.421631
+19 21 16 0.808105 0.937988 0.514648
+19 21 17 0.791016 0.934082 0.608398
+19 21 18 0.766602 0.926758 0.699707
+19 21 19 0.735352 0.91748 0.785645
+19 21 20 0.697754 0.905273 0.862305
+19 21 21 0.650391 0.887695 0.929199
+19 21 22 0.591797 0.86084 0.979004
+19 21 23 0.524414 0.827148 1
+19 21 24 0.450684 0.792969 1
+19 21 25 0.359131 0.756348 1
+19 21 26 0.217651 0.719238 1
+19 21 27 0 0.682617 1
+19 21 28 0 0.647461 1
+19 21 29 0 0.614746 1
+19 21 30 0 0.583496 1
+19 21 31 0 0.554688 1
+19 22 0 0.753906 0.982422 0.240112
+19 22 1 0.753906 0.982422 0.240112
+19 22 2 0.753906 0.982422 0.240112
+19 22 3 0.753906 0.982422 0.240112
+19 22 4 0.753906 0.982422 0.240112
+19 22 5 0.753906 0.982422 0.240112
+19 22 6 0.753906 0.982422 0.240112
+19 22 7 0.753906 0.982422 0.240112
+19 22 8 0.753906 0.982422 0.240112
+19 22 9 0.753906 0.982422 0.240112
+19 22 10 0.753906 0.982422 0.240112
+19 22 11 0.753906 0.982422 0.240112
+19 22 12 0.753906 0.982422 0.240234
+19 22 13 0.753906 0.98291 0.240234
+19 22 14 0.751465 0.983398 0.299805
+19 22 15 0.745117 0.983887 0.394287
+19 22 16 0.734375 0.983398 0.48877
+19 22 17 0.718262 0.981445 0.583008
+19 22 18 0.695312 0.977051 0.675293
+19 22 19 0.666016 0.970215 0.762695
+19 22 20 0.62793 0.959961 0.841309
+19 22 21 0.580566 0.943848 0.910156
+19 22 22 0.522461 0.92334 0.967773
+19 22 23 0.452881 0.895996 1
+19 22 24 0.368408 0.863281 1
+19 22 25 0.23877 0.825684 1
+19 22 26 0 0.786133 1
+19 22 27 0 0.746094 1
+19 22 28 0 0.706543 1
+19 22 29 0 0.668945 1
+19 22 30 0 0.633789 1
+19 22 31 0 0.601074 1
+19 23 0 0.672363 1 0.229614
+19 23 1 0.672363 1 0.229614
+19 23 2 0.672363 1 0.229614
+19 23 3 0.672363 1 0.229614
+19 23 4 0.672363 1 0.229614
+19 23 5 0.672363 1 0.229614
+19 23 6 0.672363 1 0.229614
+19 23 7 0.672363 1 0.229736
+19 23 8 0.672852 1 0.229736
+19 23 9 0.672852 1 0.229736
+19 23 10 0.672852 1 0.229736
+19 23 11 0.672852 1 0.229736
+19 23 12 0.672852 1 0.229736
+19 23 13 0.672852 1 0.229858
+19 23 14 0.671875 1 0.266602
+19 23 15 0.665527 1 0.366455
+19 23 16 0.654785 1 0.462402
+19 23 17 0.63916 1 0.557129
+19 23 18 0.616699 1 0.649902
+19 23 19 0.585938 1 0.737793
+19 23 20 0.546387 1 0.817871
+19 23 21 0.494385 0.990723 0.888672
+19 23 22 0.428467 0.972168 0.94873
+19 23 23 0.343506 0.950195 0.99707
+19 23 24 0.208862 0.922852 1
+19 23 25 0 0.888672 1
+19 23 26 0 0.848633 1
+19 23 27 0 0.806641 1
+19 23 28 0 0.764648 1
+19 23 29 0 0.723145 1
+19 23 30 0 0.683594 1
+19 23 31 0 0.646973 1
+19 24 0 0.584961 1 0.219604
+19 24 1 0.584961 1 0.219604
+19 24 2 0.584961 1 0.219604
+19 24 3 0.584961 1 0.219604
+19 24 4 0.584961 1 0.219604
+19 24 5 0.584961 1 0.219604
+19 24 6 0.584961 1 0.219604
+19 24 7 0.585449 1 0.219604
+19 24 8 0.585449 1 0.219604
+19 24 9 0.585449 1 0.219604
+19 24 10 0.585449 1 0.219604
+19 24 11 0.585449 1 0.219727
+19 24 12 0.585449 1 0.219727
+19 24 13 0.585938 1 0.219727
+19 24 14 0.585938 1 0.230225
+19 24 15 0.578613 1 0.338135
+19 24 16 0.567383 1 0.436035
+19 24 17 0.550293 1 0.53125
+19 24 18 0.525391 1 0.624023
+19 24 19 0.490967 1 0.712402
+19 24 20 0.44458 1 0.79248
+19 24 21 0.379883 1 0.864746
+19 24 22 0.283936 1 0.927246
+19 24 23 0 0.993652 0.978516
+19 24 24 0 0.971191 1
+19 24 25 0 0.941895 1
+19 24 26 0 0.904785 1
+19 24 27 0 0.863281 1
+19 24 28 0 0.819336 1
+19 24 29 0 0.775391 1
+19 24 30 0 0.732422 1
+19 24 31 0 0.691895 1
+19 25 0 0.474609 1 0.209106
+19 25 1 0.474609 1 0.209106
+19 25 2 0.474609 1 0.209106
+19 25 3 0.474609 1 0.209106
+19 25 4 0.474609 1 0.209106
+19 25 5 0.474609 1 0.209106
+19 25 6 0.474609 1 0.209106
+19 25 7 0.474609 1 0.209106
+19 25 8 0.474609 1 0.209106
+19 25 9 0.474609 1 0.209106
+19 25 10 0.474854 1 0.209106
+19 25 11 0.474854 1 0.209106
+19 25 12 0.475098 1 0.209106
+19 25 13 0.475586 1 0.209229
+19 25 14 0.476074 1 0.209351
+19 25 15 0.468506 1 0.306152
+19 25 16 0.454102 1 0.407227
+19 25 17 0.432129 1 0.50293
+19 25 18 0.398926 1 0.595215
+19 25 19 0.349609 1 0.683105
+19 25 20 0.271973 1 0.763672
+19 25 21 0 1 0.836914
+19 25 22 0 1 0.901367
+19 25 23 0 1 0.955078
+19 25 24 0 1 1
+19 25 25 0 0.989258 1
+19 25 26 0 0.957031 1
+19 25 27 0 0.917969 1
+19 25 28 0 0.875 1
+19 25 29 0 0.82959 1
+19 25 30 0 0.78418 1
+19 25 31 0 0.740234 1
+19 26 0 0.302246 1 0.19812
+19 26 1 0.302246 1 0.19812
+19 26 2 0.302246 1 0.19812
+19 26 3 0.302246 1 0.19812
+19 26 4 0.302246 1 0.19812
+19 26 5 0.302246 1 0.19812
+19 26 6 0.302246 1 0.19812
+19 26 7 0.302246 1 0.19812
+19 26 8 0.302246 1 0.19812
+19 26 9 0.302246 1 0.19812
+19 26 10 0.30249 1 0.19812
+19 26 11 0.302734 1 0.19812
+19 26 12 0.303467 1 0.19812
+19 26 13 0.304199 1 0.198242
+19 26 14 0.305664 1 0.198364
+19 26 15 0.295654 1 0.269775
+19 26 16 0.265625 1 0.375732
+19 26 17 0.210449 1 0.472168
+19 26 18 0 1 0.563965
+19 26 19 0 1 0.651367
+19 26 20 0 1 0.731445
+19 26 21 0 1 0.805664
+19 26 22 0 1 0.871582
+19 26 23 0 1 0.927246
+19 26 24 0 1 0.974609
+19 26 25 0 1 1
+19 26 26 0 1 1
+19 26 27 0 0.969727 1
+19 26 28 0 0.928711 1
+19 26 29 0 0.883789 1
+19 26 30 0 0.837402 1
+19 26 31 0 0.791016 1
+19 27 0 0 1 0.186523
+19 27 1 0 1 0.186523
+19 27 2 0 1 0.186523
+19 27 3 0 1 0.186523
+19 27 4 0 1 0.186523
+19 27 5 0 1 0.186523
+19 27 6 0 1 0.186523
+19 27 7 0 1 0.186523
+19 27 8 0 1 0.186523
+19 27 9 0 1 0.186646
+19 27 10 0 1 0.186646
+19 27 11 0 1 0.186646
+19 27 12 0 1 0.186646
+19 27 13 0 1 0.186768
+19 27 14 0 1 0.18689
+19 27 15 0 1 0.225952
+19 27 16 0 1 0.341064
+19 27 17 0 1 0.438965
+19 27 18 0 1 0.530273
+19 27 19 0 1 0.616699
+19 27 20 0 1 0.696289
+19 27 21 0 1 0.77002
+19 27 22 0 1 0.836914
+19 27 23 0 1 0.89502
+19 27 24 0 1 0.944336
+19 27 25 0 1 0.990234
+19 27 26 0 1 1
+19 27 27 0 1 1
+19 27 28 0 0.978516 1
+19 27 29 0 0.936035 1
+19 27 30 0 0.889648 1
+19 27 31 0 0.842285 1
+19 28 0 0 1 0.174683
+19 28 1 0 1 0.174683
+19 28 2 0 1 0.174683
+19 28 3 0 1 0.174683
+19 28 4 0 1 0.174683
+19 28 5 0 1 0.174683
+19 28 6 0 1 0.174683
+19 28 7 0 1 0.174683
+19 28 8 0 1 0.174683
+19 28 9 0 1 0.174683
+19 28 10 0 1 0.174683
+19 28 11 0 1 0.174683
+19 28 12 0 1 0.174683
+19 28 13 0 1 0.174805
+19 28 14 0 1 0.174927
+19 28 15 0 1 0.175049
+19 28 16 0 1 0.302979
+19 28 17 0 1 0.403564
+19 28 18 0 1 0.494629
+19 28 19 0 1 0.57959
+19 28 20 0 1 0.658203
+19 28 21 0 1 0.731445
+19 28 22 0 1 0.798828
+19 28 23 0 1 0.85791
+19 28 24 0 1 0.90918
+19 28 25 0 1 0.95752
+19 28 26 0 1 1
+19 28 27 0 1 1
+19 28 28 0 1 1
+19 28 29 0 0.983887 1
+19 28 30 0 0.939941 1
+19 28 31 0 0.893066 1
+19 29 0 0 1 0.162109
+19 29 1 0 1 0.162109
+19 29 2 0 1 0.162109
+19 29 3 0 1 0.162109
+19 29 4 0 1 0.162109
+19 29 5 0 1 0.162109
+19 29 6 0 1 0.162231
+19 29 7 0 1 0.162231
+19 29 8 0 1 0.162231
+19 29 9 0 1 0.162231
+19 29 10 0 1 0.162231
+19 29 11 0 1 0.162231
+19 29 12 0 1 0.162231
+19 29 13 0 1 0.162354
+19 29 14 0 1 0.162476
+19 29 15 0 1 0.162598
+19 29 16 0 1 0.259277
+19 29 17 0 1 0.365479
+19 29 18 0 1 0.456787
+19 29 19 0 1 0.540527
+19 29 20 0 1 0.617676
+19 29 21 0 1 0.69043
+19 29 22 0 1 0.757324
+19 29 23 0 1 0.816406
+19 29 24 0 1 0.868652
+19 29 25 0 1 0.919434
+19 29 26 0 1 0.967773
+19 29 27 0 1 1
+19 29 28 0 1 1
+19 29 29 0 1 1
+19 29 30 0 0.988281 1
+19 29 31 0 0.943359 1
+19 30 0 0 1 0.14917
+19 30 1 0 1 0.14917
+19 30 2 0 1 0.14917
+19 30 3 0 1 0.14917
+19 30 4 0 1 0.14917
+19 30 5 0 1 0.14917
+19 30 6 0 1 0.14917
+19 30 7 0 1 0.14917
+19 30 8 0 1 0.14917
+19 30 9 0 1 0.14917
+19 30 10 0 1 0.149292
+19 30 11 0 1 0.149292
+19 30 12 0 1 0.149292
+19 30 13 0 1 0.149414
+19 30 14 0 1 0.149536
+19 30 15 0 1 0.149658
+19 30 16 0 1 0.206421
+19 30 17 0 1 0.324219
+19 30 18 0 1 0.416748
+19 30 19 0 1 0.499512
+19 30 20 0 1 0.575195
+19 30 21 0 1 0.646484
+19 30 22 0 1 0.712402
+19 30 23 0 1 0.771484
+19 30 24 0 1 0.824219
+19 30 25 0 1 0.875977
+19 30 26 0 1 0.92627
+19 30 27 0 1 0.974121
+19 30 28 0 1 1
+19 30 29 0 1 1
+19 30 30 0 1 1
+19 30 31 0 0.991211 1
+19 31 0 0 1 0.135864
+19 31 1 0 1 0.135864
+19 31 2 0 1 0.135864
+19 31 3 0 1 0.135864
+19 31 4 0 1 0.135864
+19 31 5 0 1 0.135864
+19 31 6 0 1 0.135864
+19 31 7 0 1 0.135864
+19 31 8 0 1 0.135864
+19 31 9 0 1 0.135864
+19 31 10 0 1 0.135864
+19 31 11 0 1 0.135986
+19 31 12 0 1 0.135986
+19 31 13 0 1 0.136108
+19 31 14 0 1 0.13623
+19 31 15 0 1 0.136353
+19 31 16 0 1 0.136597
+19 31 17 0 1 0.279053
+19 31 18 0 1 0.375
+19 31 19 0 1 0.457031
+19 31 20 0 1 0.53125
+19 31 21 0 1 0.600586
+19 31 22 0 1 0.665039
+19 31 23 0 1 0.723145
+19 31 24 0 1 0.775879
+19 31 25 0 1 0.828613
+19 31 26 0 1 0.880859
+19 31 27 0 1 0.931152
+19 31 28 0 1 0.978516
+19 31 29 0 1 1
+19 31 30 0 1 1
+19 31 31 0 1 1
+20 0 0 0.993164 0 0.0539246
+20 0 1 0.993164 0 0.0539246
+20 0 2 0.993164 0 0.0539246
+20 0 3 0.993164 0 0.053894
+20 0 4 0.993652 0 0.053894
+20 0 5 0.993652 0 0.0538635
+20 0 6 0.993652 0 0.053833
+20 0 7 0.993652 0 0.0537415
+20 0 8 0.993652 0 0.0535889
+20 0 9 0.993652 0 0.0532532
+20 0 10 0.993652 0 0.0526733
+20 0 11 0.993652 0 0.0516357
+20 0 12 0.993652 0 0.0499878
+20 0 13 0.991211 0 0.0482788
+20 0 14 0.990723 0 0.254395
+20 0 15 1 0 0.373779
+20 0 16 1 0 0.48584
+20 0 17 1 0.151367 0.611328
+20 0 18 1 0.269531 0.734863
+20 0 19 1 0.314941 0.831543
+20 0 20 1 0.322021 0.902344
+20 0 21 0.97168 0.324951 0.959473
+20 0 22 0.911133 0.323975 0.998047
+20 0 23 0.845215 0.320068 1
+20 0 24 0.779785 0.314941 1
+20 0 25 0.710938 0.309326 1
+20 0 26 0.63916 0.303467 1
+20 0 27 0.563965 0.298096 1
+20 0 28 0.484863 0.293213 1
+20 0 29 0.395752 0.289551 1
+20 0 30 0.279785 0.286865 1
+20 0 31 0 0.284912 1
+20 1 0 0.993164 0 0.053894
+20 1 1 0.993164 0 0.053894
+20 1 2 0.993164 0 0.053894
+20 1 3 0.993652 0 0.053894
+20 1 4 0.993652 0 0.0538635
+20 1 5 0.993652 0 0.0538635
+20 1 6 0.993652 0 0.0538025
+20 1 7 0.993652 0 0.0537109
+20 1 8 0.993652 0 0.0535583
+20 1 9 0.993652 0 0.0532532
+20 1 10 0.993652 0 0.0526428
+20 1 11 0.993652 0 0.0516052
+20 1 12 0.993652 0 0.0499573
+20 1 13 0.991211 0 0.0482483
+20 1 14 0.990723 0 0.254395
+20 1 15 1 0 0.373779
+20 1 16 1 0 0.48584
+20 1 17 1 0.151489 0.611328
+20 1 18 1 0.269531 0.734863
+20 1 19 1 0.314941 0.831543
+20 1 20 1 0.322266 0.902344
+20 1 21 0.97168 0.324951 0.959473
+20 1 22 0.911133 0.323975 0.998047
+20 1 23 0.845215 0.320068 1
+20 1 24 0.779785 0.314941 1
+20 1 25 0.710938 0.309326 1
+20 1 26 0.63916 0.303467 1
+20 1 27 0.563965 0.298096 1
+20 1 28 0.484863 0.293457 1
+20 1 29 0.395752 0.289551 1
+20 1 30 0.279785 0.286865 1
+20 1 31 0 0.284912 1
+20 2 0 0.993652 0 0.0538635
+20 2 1 0.993652 0 0.0538635
+20 2 2 0.993652 0 0.0538635
+20 2 3 0.993652 0 0.053833
+20 2 4 0.993652 0 0.053833
+20 2 5 0.993652 0 0.0538025
+20 2 6 0.993652 0 0.053772
+20 2 7 0.993652 0 0.0536804
+20 2 8 0.993652 0 0.0535278
+20 2 9 0.993652 0 0.0531921
+20 2 10 0.993652 0 0.0526123
+20 2 11 0.993652 0 0.0515442
+20 2 12 0.993652 0 0.0499268
+20 2 13 0.991211 0 0.0482178
+20 2 14 0.990723 0 0.254395
+20 2 15 1 0 0.373779
+20 2 16 1 0 0.48584
+20 2 17 1 0.151611 0.611328
+20 2 18 1 0.269531 0.734863
+20 2 19 1 0.314941 0.831543
+20 2 20 1 0.322266 0.902344
+20 2 21 0.97168 0.324951 0.959473
+20 2 22 0.911133 0.323975 0.998047
+20 2 23 0.845215 0.320068 1
+20 2 24 0.779785 0.315186 1
+20 2 25 0.710938 0.309326 1
+20 2 26 0.63916 0.303467 1
+20 2 27 0.563965 0.298096 1
+20 2 28 0.484863 0.293457 1
+20 2 29 0.395752 0.289551 1
+20 2 30 0.279785 0.286865 1
+20 2 31 0 0.284912 1
+20 3 0 0.993652 0 0.053772
+20 3 1 0.993652 0 0.053772
+20 3 2 0.993652 0 0.053772
+20 3 3 0.993652 0 0.053772
+20 3 4 0.993652 0 0.0537415
+20 3 5 0.993652 0 0.0537415
+20 3 6 0.993652 0 0.0536804
+20 3 7 0.993652 0 0.0536194
+20 3 8 0.993652 0 0.0534363
+20 3 9 0.993652 0 0.0531311
+20 3 10 0.993652 0 0.0525208
+20 3 11 0.993652 0 0.0514832
+20 3 12 0.993652 0 0.0498352
+20 3 13 0.991211 0 0.0481262
+20 3 14 0.990723 0 0.254395
+20 3 15 1 0 0.373779
+20 3 16 1 0 0.48584
+20 3 17 1 0.151855 0.611328
+20 3 18 1 0.269775 0.734863
+20 3 19 1 0.315186 0.831543
+20 3 20 1 0.322266 0.902344
+20 3 21 0.97168 0.324951 0.959473
+20 3 22 0.911133 0.323975 0.998047
+20 3 23 0.845215 0.320312 1
+20 3 24 0.779785 0.315186 1
+20 3 25 0.710938 0.309326 1
+20 3 26 0.63916 0.303467 1
+20 3 27 0.563965 0.298096 1
+20 3 28 0.484863 0.293457 1
+20 3 29 0.395752 0.289551 1
+20 3 30 0.279785 0.286865 1
+20 3 31 0 0.284912 1
+20 4 0 0.993652 0 0.0536194
+20 4 1 0.993652 0 0.0536194
+20 4 2 0.993652 0 0.0536194
+20 4 3 0.993652 0 0.0536194
+20 4 4 0.993652 0 0.0536194
+20 4 5 0.993652 0 0.0535889
+20 4 6 0.993652 0 0.0535583
+20 4 7 0.993652 0 0.0534668
+20 4 8 0.993652 0 0.0532837
+20 4 9 0.993652 0 0.0529785
+20 4 10 0.993652 0 0.0523682
+20 4 11 0.993652 0 0.0513306
+20 4 12 0.993652 0 0.0496826
+20 4 13 0.991211 0 0.0479431
+20 4 14 0.990723 0 0.254395
+20 4 15 1 0 0.373779
+20 4 16 1 0 0.485596
+20 4 17 1 0.152344 0.611328
+20 4 18 1 0.27002 0.734863
+20 4 19 1 0.315186 0.831543
+20 4 20 1 0.32251 0.902344
+20 4 21 0.97168 0.325195 0.959473
+20 4 22 0.911133 0.324219 0.998047
+20 4 23 0.845215 0.320312 1
+20 4 24 0.779785 0.315186 1
+20 4 25 0.710938 0.30957 1
+20 4 26 0.63916 0.303711 1
+20 4 27 0.563965 0.298096 1
+20 4 28 0.484863 0.293457 1
+20 4 29 0.395752 0.289795 1
+20 4 30 0.279785 0.286865 1
+20 4 31 0 0.284912 1
+20 5 0 0.993652 0 0.0533447
+20 5 1 0.993652 0 0.0533447
+20 5 2 0.993652 0 0.0533447
+20 5 3 0.993652 0 0.0533447
+20 5 4 0.993652 0 0.0533142
+20 5 5 0.993652 0 0.0533142
+20 5 6 0.993652 0 0.0532532
+20 5 7 0.993652 0 0.0531921
+20 5 8 0.993652 0 0.053009
+20 5 9 0.993652 0 0.0526733
+20 5 10 0.993652 0 0.0520935
+20 5 11 0.993652 0 0.0510254
+20 5 12 0.993652 0 0.0493469
+20 5 13 0.991211 0 0.0476074
+20 5 14 0.990723 0 0.254395
+20 5 15 1 0 0.373779
+20 5 16 1 0 0.485596
+20 5 17 1 0.153198 0.611328
+20 5 18 1 0.270264 0.734375
+20 5 19 1 0.315674 0.831543
+20 5 20 1 0.322754 0.902344
+20 5 21 0.97168 0.325439 0.959473
+20 5 22 0.911133 0.324463 0.998047
+20 5 23 0.845215 0.320557 1
+20 5 24 0.779785 0.31543 1
+20 5 25 0.710938 0.30957 1
+20 5 26 0.63916 0.303711 1
+20 5 27 0.563965 0.29834 1
+20 5 28 0.484863 0.293457 1
+20 5 29 0.395752 0.289795 1
+20 5 30 0.279785 0.286865 1
+20 5 31 0 0.284912 1
+20 6 0 0.993652 0 0.0527954
+20 6 1 0.993652 0 0.0527954
+20 6 2 0.993652 0 0.0527954
+20 6 3 0.993652 0 0.0527954
+20 6 4 0.993652 0 0.0527954
+20 6 5 0.993652 0 0.0527649
+20 6 6 0.993652 0 0.0527039
+20 6 7 0.993652 0 0.0526428
+20 6 8 0.993652 0 0.0524597
+20 6 9 0.993652 0 0.052124
+20 6 10 0.993652 0 0.0515137
+20 6 11 0.994141 0 0.050415
+20 6 12 0.993652 0 0.0487366
+20 6 13 0.991211 0 0.0469666
+20 6 14 0.990723 0 0.254395
+20 6 15 1 0 0.374023
+20 6 16 1 0 0.485596
+20 6 17 1 0.155029 0.611328
+20 6 18 1 0.270996 0.734375
+20 6 19 1 0.316162 0.831543
+20 6 20 1 0.323242 0.902344
+20 6 21 0.97168 0.325928 0.959473
+20 6 22 0.911133 0.324951 0.998047
+20 6 23 0.845215 0.321045 1
+20 6 24 0.779785 0.315918 1
+20 6 25 0.710938 0.310059 1
+20 6 26 0.638672 0.304199 1
+20 6 27 0.563965 0.298584 1
+20 6 28 0.484863 0.293701 1
+20 6 29 0.395752 0.290039 1
+20 6 30 0.279785 0.287109 1
+20 6 31 0 0.285156 1
+20 7 0 0.993652 0 0.0517273
+20 7 1 0.993652 0 0.0517273
+20 7 2 0.993652 0 0.0517273
+20 7 3 0.993652 0 0.0517273
+20 7 4 0.993652 0 0.0516968
+20 7 5 0.993652 0 0.0516663
+20 7 6 0.993652 0 0.0516357
+20 7 7 0.993652 0 0.0515442
+20 7 8 0.993652 0 0.0513611
+20 7 9 0.993652 0 0.0510254
+20 7 10 0.993652 0 0.0503845
+20 7 11 0.994141 0 0.0492554
+20 7 12 0.993652 0 0.0474854
+20 7 13 0.991211 0 0.0456848
+20 7 14 0.990723 0 0.254395
+20 7 15 1 0 0.373779
+20 7 16 1 0 0.485596
+20 7 17 1 0.158325 0.611328
+20 7 18 1 0.272461 0.734375
+20 7 19 1 0.317383 0.831543
+20 7 20 1 0.324463 0.902344
+20 7 21 0.97168 0.326904 0.959473
+20 7 22 0.911133 0.325928 0.998047
+20 7 23 0.845215 0.321777 1
+20 7 24 0.779785 0.31665 1
+20 7 25 0.710938 0.310547 1
+20 7 26 0.638672 0.304688 1
+20 7 27 0.563965 0.299072 1
+20 7 28 0.484863 0.294189 1
+20 7 29 0.395508 0.290283 1
+20 7 30 0.279541 0.287354 1
+20 7 31 0 0.2854 1
+20 8 0 0.993652 0 0.0494995
+20 8 1 0.993652 0 0.0494995
+20 8 2 0.993652 0 0.0494995
+20 8 3 0.993652 0 0.049469
+20 8 4 0.993652 0 0.049469
+20 8 5 0.993652 0 0.0494385
+20 8 6 0.993652 0 0.0493774
+20 8 7 0.993652 0 0.0492859
+20 8 8 0.993652 0 0.0491028
+20 8 9 0.993652 0 0.0487366
+20 8 10 0.994141 0 0.0480652
+20 8 11 0.994141 0 0.046814
+20 8 12 0.994141 0 0.0448914
+20 8 13 0.991699 0 0.0429688
+20 8 14 0.991211 0 0.254395
+20 8 15 1 0 0.373779
+20 8 16 1 0 0.485596
+20 8 17 1 0.164429 0.611328
+20 8 18 1 0.275391 0.734375
+20 8 19 1 0.319824 0.831543
+20 8 20 1 0.32666 0.902344
+20 8 21 0.97168 0.328857 0.959473
+20 8 22 0.910645 0.327637 0.998047
+20 8 23 0.845215 0.323242 1
+20 8 24 0.779785 0.317871 1
+20 8 25 0.710449 0.311768 1
+20 8 26 0.638672 0.305664 1
+20 8 27 0.563965 0.300049 1
+20 8 28 0.484619 0.295166 1
+20 8 29 0.395508 0.291016 1
+20 8 30 0.279297 0.288086 1
+20 8 31 0 0.285889 1
+20 9 0 0.994141 0 0.0446777
+20 9 1 0.994141 0 0.0446777
+20 9 2 0.994141 0 0.0446777
+20 9 3 0.994141 0 0.0446472
+20 9 4 0.994141 0 0.0446472
+20 9 5 0.994141 0 0.0446167
+20 9 6 0.994141 0 0.0445557
+20 9 7 0.994141 0 0.0444336
+20 9 8 0.994141 0 0.04422
+20 9 9 0.994141 0 0.0437622
+20 9 10 0.994141 0 0.0429688
+20 9 11 0.994629 0 0.0414734
+20 9 12 0.994141 0 0.0391235
+20 9 13 0.991699 0 0.0368347
+20 9 14 0.991211 0 0.25415
+20 9 15 1 0 0.373535
+20 9 16 1 0 0.485352
+20 9 17 1 0.175293 0.61084
+20 9 18 1 0.280762 0.734375
+20 9 19 1 0.324219 0.831543
+20 9 20 1 0.330566 0.902344
+20 9 21 0.971191 0.332764 0.959473
+20 9 22 0.910645 0.330811 0.998047
+20 9 23 0.844727 0.326416 1
+20 9 24 0.779297 0.320557 1
+20 9 25 0.710449 0.314209 1
+20 9 26 0.638184 0.307861 1
+20 9 27 0.563477 0.301758 1
+20 9 28 0.484375 0.296631 1
+20 9 29 0.39502 0.29248 1
+20 9 30 0.278809 0.289307 1
+20 9 31 0 0.287109 1
+20 10 0 0.994629 0 0.0326843
+20 10 1 0.994629 0 0.0326843
+20 10 2 0.994629 0 0.0326538
+20 10 3 0.994629 0 0.0326538
+20 10 4 0.994629 0 0.0326233
+20 10 5 0.994629 0 0.0325623
+20 10 6 0.994629 0 0.0324707
+20 10 7 0.994629 0 0.0322876
+20 10 8 0.994629 0 0.0318909
+20 10 9 0.994629 0 0.0311584
+20 10 10 0.995117 0 0.0297241
+20 10 11 0.995117 0 0.026886
+20 10 12 0.995117 0 0.0215454
+20 10 13 0.992188 0 0.0150604
+20 10 14 0.991211 0 0.25415
+20 10 15 1 0 0.373047
+20 10 16 1 0.0318298 0.485107
+20 10 17 1 0.192749 0.610352
+20 10 18 1 0.290039 0.733887
+20 10 19 1 0.332031 0.831055
+20 10 20 1 0.337891 0.902344
+20 10 21 0.970703 0.339111 0.959473
+20 10 22 0.910156 0.336914 0.998047
+20 10 23 0.844238 0.331543 1
+20 10 24 0.778809 0.325439 1
+20 10 25 0.709961 0.318604 1
+20 10 26 0.637695 0.311523 1
+20 10 27 0.562988 0.305176 1
+20 10 28 0.483887 0.299561 1
+20 10 29 0.394531 0.295166 1
+20 10 30 0.277832 0.291504 1
+20 10 31 0 0.289062 1
+20 11 0 0.995605 0.110046 0
+20 11 1 0.995605 0.110046 0
+20 11 2 0.995605 0.110046 0
+20 11 3 0.995605 0.110107 0
+20 11 4 0.995605 0.110168 0
+20 11 5 0.995605 0.110291 0
+20 11 6 0.995605 0.110596 0
+20 11 7 0.995605 0.111084 0
+20 11 8 0.996094 0.112122 0
+20 11 9 0.996094 0.113953 0
+20 11 10 0.996094 0.11731 0
+20 11 11 0.996094 0.122742 0
+20 11 12 0.996094 0.130127 0
+20 11 13 0.993164 0.134033 0.0218048
+20 11 14 0.992188 0.122253 0.254395
+20 11 15 1 0.123718 0.372314
+20 11 16 1 0.136597 0.484619
+20 11 17 1 0.218262 0.609375
+20 11 18 1 0.305176 0.733398
+20 11 19 1 0.344971 0.831055
+20 11 20 1 0.349854 0.902344
+20 11 21 0.970215 0.350342 0.959473
+20 11 22 0.90918 0.346924 0.998047
+20 11 23 0.843262 0.340576 1
+20 11 24 0.777832 0.333496 1
+20 11 25 0.708984 0.325684 1
+20 11 26 0.637207 0.317871 1
+20 11 27 0.562012 0.310791 1
+20 11 28 0.48291 0.304443 1
+20 11 29 0.393311 0.299316 1
+20 11 30 0.276123 0.29541 1
+20 11 31 0 0.29248 1
+20 12 0 0.998047 0.190186 0
+20 12 1 0.998047 0.190186 0
+20 12 2 0.998047 0.190186 0
+20 12 3 0.998047 0.190186 0
+20 12 4 0.998047 0.190308 0
+20 12 5 0.998047 0.190308 0
+20 12 6 0.998047 0.19043 0
+20 12 7 0.998047 0.190674 0
+20 12 8 0.998047 0.19104 0
+20 12 9 0.998047 0.191895 0
+20 12 10 0.998047 0.193359 0
+20 12 11 0.998535 0.195923 0
+20 12 12 0.998535 0.199585 0
+20 12 13 0.995117 0.200195 0.0561829
+20 12 14 0.994141 0.193115 0.255371
+20 12 15 1 0.192261 0.371582
+20 12 16 1 0.200073 0.484131
+20 12 17 1 0.253418 0.60791
+20 12 18 1 0.328369 0.732422
+20 12 19 1 0.365479 0.831055
+20 12 20 1 0.368896 0.902344
+20 12 21 0.96875 0.36792 0.959473
+20 12 22 0.907715 0.363037 0.998047
+20 12 23 0.841797 0.355225 1
+20 12 24 0.776367 0.34668 1
+20 12 25 0.70752 0.337402 1
+20 12 26 0.635742 0.328369 1
+20 12 27 0.560547 0.320068 1
+20 12 28 0.481201 0.312744 1
+20 12 29 0.391357 0.306641 1
+20 12 30 0.272949 0.301758 1
+20 12 31 0 0.298096 1
+20 13 0 1 0.260742 0
+20 13 1 1 0.260742 0
+20 13 2 1 0.260742 0
+20 13 3 1 0.260742 0
+20 13 4 1 0.260742 0
+20 13 5 1 0.260742 0
+20 13 6 1 0.260986 0
+20 13 7 1 0.260986 0
+20 13 8 1 0.26123 0
+20 13 9 1 0.261719 0
+20 13 10 1 0.262695 0
+20 13 11 1 0.264404 0
+20 13 12 1 0.266846 0
+20 13 13 0.998535 0.265625 0.0863037
+20 13 14 0.998047 0.260498 0.258301
+20 13 15 1 0.258301 0.371094
+20 13 16 1 0.26416 0.483887
+20 13 17 1 0.29834 0.605469
+20 13 18 1 0.361328 0.730957
+20 13 19 1 0.395508 0.830566
+20 13 20 1 0.397217 0.902344
+20 13 21 0.966309 0.394287 0.959473
+20 13 22 0.905273 0.387207 0.998047
+20 13 23 0.839355 0.377197 1
+20 13 24 0.773926 0.366455 1
+20 13 25 0.705078 0.355469 1
+20 13 26 0.633301 0.344482 1
+20 13 27 0.558105 0.334473 1
+20 13 28 0.478516 0.325684 1
+20 13 29 0.388184 0.318115 1
+20 13 30 0.268066 0.311768 1
+20 13 31 0 0.306885 1
+20 14 0 1 0.334961 0
+20 14 1 1 0.334961 0
+20 14 2 1 0.334961 0
+20 14 3 1 0.335205 0
+20 14 4 1 0.335205 0
+20 14 5 1 0.335205 0
+20 14 6 1 0.335205 0
+20 14 7 1 0.335205 0
+20 14 8 1 0.335449 0
+20 14 9 1 0.335693 0
+20 14 10 1 0.336426 0
+20 14 11 1 0.337646 0
+20 14 12 1 0.339355 0
+20 14 13 1 0.337402 0.122375
+20 14 14 1 0.333496 0.265381
+20 14 15 1 0.330078 0.372559
+20 14 16 1 0.335205 0.484863
+20 14 17 1 0.353516 0.601562
+20 14 18 1 0.405273 0.728027
+20 14 19 1 0.436768 0.830078
+20 14 20 1 0.436768 0.901855
+20 14 21 0.962891 0.431396 0.959473
+20 14 22 0.901855 0.421143 0.998047
+20 14 23 0.835449 0.408447 1
+20 14 24 0.77002 0.39502 1
+20 14 25 0.701172 0.381348 1
+20 14 26 0.629395 0.36792 1
+20 14 27 0.554199 0.355469 1
+20 14 28 0.474365 0.344482 1
+20 14 29 0.383057 0.334961 1
+20 14 30 0.259521 0.326904 1
+20 14 31 0 0.320312 1
+20 15 0 1 0.416992 0
+20 15 1 1 0.416992 0
+20 15 2 1 0.416992 0
+20 15 3 1 0.416992 0
+20 15 4 1 0.416992 0
+20 15 5 1 0.416992 0
+20 15 6 1 0.416992 0
+20 15 7 1 0.417236 0
+20 15 8 1 0.417236 0
+20 15 9 1 0.41748 0
+20 15 10 1 0.417969 0
+20 15 11 1 0.418945 0
+20 15 12 1 0.42041 0
+20 15 13 1 0.418213 0.165527
+20 15 14 1 0.415527 0.280762
+20 15 15 1 0.411377 0.379395
+20 15 16 1 0.410156 0.483643
+20 15 17 1 0.419678 0.59668
+20 15 18 1 0.459229 0.722656
+20 15 19 1 0.489502 0.828613
+20 15 20 1 0.487549 0.901367
+20 15 21 0.956543 0.479492 0.958984
+20 15 22 0.895508 0.466064 0.997559
+20 15 23 0.829102 0.449707 1
+20 15 24 0.763672 0.433105 1
+20 15 25 0.694824 0.41626 1
+20 15 26 0.623047 0.399902 1
+20 15 27 0.547852 0.384521 1
+20 15 28 0.467529 0.370605 1
+20 15 29 0.374756 0.358643 1
+20 15 30 0.245605 0.348145 1
+20 15 31 0 0.339355 1
+20 16 0 1 0.508301 0.113892
+20 16 1 1 0.508301 0.113892
+20 16 2 1 0.508301 0.113892
+20 16 3 1 0.508301 0.113892
+20 16 4 1 0.508301 0.113892
+20 16 5 1 0.508301 0.113953
+20 16 6 1 0.508301 0.113953
+20 16 7 1 0.508301 0.114075
+20 16 8 1 0.508789 0.114197
+20 16 9 1 0.508789 0.114502
+20 16 10 1 0.509277 0.115051
+20 16 11 1 0.509766 0.115967
+20 16 12 1 0.510742 0.117554
+20 16 13 1 0.510254 0.214722
+20 16 14 1 0.508301 0.307617
+20 16 15 1 0.504395 0.39624
+20 16 16 1 0.498779 0.489258
+20 16 17 1 0.5 0.594727
+20 16 18 1 0.521973 0.712891
+20 16 19 1 0.552734 0.825195
+20 16 20 0.995605 0.549805 0.899902
+20 16 21 0.946777 0.538574 0.958008
+20 16 22 0.885742 0.521484 0.996094
+20 16 23 0.819336 0.500977 1
+20 16 24 0.753906 0.480957 1
+20 16 25 0.685547 0.460449 1
+20 16 26 0.61377 0.44043 1
+20 16 27 0.538574 0.421875 1
+20 16 28 0.45752 0.404785 1
+20 16 29 0.362061 0.389893 1
+20 16 30 0.22229 0.376709 1
+20 16 31 0 0.36499 1
+20 17 0 1 0.606934 0.21228
+20 17 1 1 0.606934 0.21228
+20 17 2 1 0.606934 0.21228
+20 17 3 1 0.606934 0.21228
+20 17 4 1 0.606934 0.21228
+20 17 5 1 0.606934 0.21228
+20 17 6 1 0.606934 0.21228
+20 17 7 1 0.606934 0.212402
+20 17 8 1 0.606934 0.212402
+20 17 9 1 0.606934 0.212524
+20 17 10 1 0.607422 0.212646
+20 17 11 1 0.60791 0.213013
+20 17 12 1 0.608887 0.213501
+20 17 13 1 0.608887 0.261719
+20 17 14 1 0.60791 0.341064
+20 17 15 1 0.605469 0.423096
+20 17 16 1 0.599609 0.508301
+20 17 17 1 0.589844 0.59668
+20 17 18 1 0.592285 0.700195
+20 17 19 1 0.62207 0.818359
+20 17 20 0.980469 0.619629 0.896484
+20 17 21 0.932129 0.605957 0.955566
+20 17 22 0.870605 0.584473 0.993652
+20 17 23 0.804688 0.560059 1
+20 17 24 0.740234 0.536133 1
+20 17 25 0.672363 0.512207 1
+20 17 26 0.601074 0.48877 1
+20 17 27 0.525391 0.466797 1
+20 17 28 0.442627 0.446533 1
+20 17 29 0.343262 0.428223 1
+20 17 30 0.18042 0.411621 1
+20 17 31 0 0.397217 1
+20 18 0 1 0.705078 0.26416
+20 18 1 1 0.705078 0.26416
+20 18 2 1 0.705078 0.26416
+20 18 3 1 0.705078 0.26416
+20 18 4 1 0.705078 0.26416
+20 18 5 1 0.705078 0.26416
+20 18 6 1 0.705078 0.26416
+20 18 7 1 0.705078 0.26416
+20 18 8 1 0.705078 0.26416
+20 18 9 1 0.705566 0.26416
+20 18 10 1 0.705566 0.264404
+20 18 11 1 0.706055 0.264404
+20 18 12 1 0.706543 0.264648
+20 18 13 1 0.707031 0.291992
+20 18 14 1 0.707031 0.367188
+20 18 15 1 0.706543 0.44751
+20 18 16 1 0.703125 0.532715
+20 18 17 1 0.694336 0.617676
+20 18 18 0.985352 0.679199 0.698242
+20 18 19 0.97998 0.689941 0.803711
+20 18 20 0.958496 0.693359 0.890625
+20 18 21 0.910645 0.676758 0.950195
+20 18 22 0.849121 0.651367 0.987793
+20 18 23 0.78418 0.623535 1
+20 18 24 0.721191 0.596191 1
+20 18 25 0.654297 0.569336 1
+20 18 26 0.583496 0.542969 1
+20 18 27 0.507324 0.517578 1
+20 18 28 0.422119 0.493896 1
+20 18 29 0.314941 0.472168 1
+20 18 30 0.0513916 0.452637 1
+20 18 31 0 0.43457 1
+20 19 0 1 0.796387 0.285889
+20 19 1 1 0.796387 0.285889
+20 19 2 1 0.796387 0.285889
+20 19 3 1 0.796387 0.285889
+20 19 4 1 0.796387 0.285889
+20 19 5 1 0.796387 0.285889
+20 19 6 1 0.796387 0.285889
+20 19 7 1 0.796387 0.285889
+20 19 8 1 0.796387 0.285889
+20 19 9 1 0.796387 0.285889
+20 19 10 1 0.796875 0.285889
+20 19 11 1 0.796875 0.285889
+20 19 12 1 0.797363 0.285889
+20 19 13 1 0.797852 0.296387
+20 19 14 1 0.797852 0.372559
+20 19 15 1 0.797363 0.454346
+20 19 16 1 0.796387 0.542969
+20 19 17 1 0.79248 0.633301
+20 19 18 0.987305 0.782227 0.718262
+20 19 19 0.945312 0.761719 0.790039
+20 19 20 0.928711 0.766602 0.881836
+20 19 21 0.880371 0.746582 0.94043
+20 19 22 0.820312 0.717773 0.979004
+20 19 23 0.758301 0.687988 1
+20 19 24 0.697266 0.65918 1
+20 19 25 0.632324 0.629883 1
+20 19 26 0.561523 0.600586 1
+20 19 27 0.484131 0.572754 1
+20 19 28 0.394287 0.545898 1
+20 19 29 0.272461 0.520508 1
+20 19 30 0 0.497559 1
+20 19 31 0 0.475586 1
+20 20 0 1 0.875488 0.286133
+20 20 1 1 0.875488 0.286133
+20 20 2 1 0.875488 0.286133
+20 20 3 1 0.875488 0.286133
+20 20 4 1 0.875488 0.286133
+20 20 5 1 0.875488 0.286133
+20 20 6 1 0.875488 0.286133
+20 20 7 1 0.875488 0.286133
+20 20 8 1 0.875488 0.286133
+20 20 9 1 0.875488 0.286133
+20 20 10 1 0.875488 0.286133
+20 20 11 1 0.875977 0.286377
+20 20 12 1 0.875977 0.286377
+20 20 13 1 0.876465 0.286377
+20 20 14 1 0.876953 0.359375
+20 20 15 1 0.876465 0.44458
+20 20 16 1 0.875 0.535156
+20 20 17 0.98584 0.871582 0.627441
+20 20 18 0.963867 0.864746 0.717773
+20 20 19 0.932617 0.853027 0.800293
+20 20 20 0.891602 0.834473 0.869141
+20 20 21 0.84375 0.812012 0.927734
+20 20 22 0.787598 0.783691 0.970703
+20 20 23 0.729004 0.753418 1
+20 20 24 0.669922 0.723633 1
+20 20 25 0.605469 0.691895 1
+20 20 26 0.533691 0.660156 1
+20 20 27 0.452881 0.628418 1
+20 20 28 0.354492 0.598145 1
+20 20 29 0.19812 0.568848 1
+20 20 30 0 0.541992 1
+20 20 31 0 0.516602 1
+20 21 0 0.96582 0.937012 0.278809
+20 21 1 0.96582 0.937012 0.278809
+20 21 2 0.96582 0.937012 0.278809
+20 21 3 0.96582 0.937012 0.278809
+20 21 4 0.96582 0.937012 0.278809
+20 21 5 0.96582 0.937012 0.278809
+20 21 6 0.96582 0.937012 0.278809
+20 21 7 0.96582 0.937012 0.278809
+20 21 8 0.96582 0.937012 0.278809
+20 21 9 0.96582 0.937012 0.278809
+20 21 10 0.96582 0.937012 0.278809
+20 21 11 0.96582 0.937012 0.278809
+20 21 12 0.96582 0.9375 0.278809
+20 21 13 0.96582 0.937988 0.278809
+20 21 14 0.963379 0.937988 0.335693
+20 21 15 0.958008 0.937988 0.424072
+20 21 16 0.949219 0.937012 0.515625
+20 21 17 0.93457 0.933105 0.608398
+20 21 18 0.912109 0.925781 0.698242
+20 21 19 0.881348 0.912109 0.779785
+20 21 20 0.845215 0.896484 0.852539
+20 21 21 0.806641 0.881348 0.92041
+20 21 22 0.754395 0.854492 0.969238
+20 21 23 0.696289 0.822266 1
+20 21 24 0.637207 0.790039 1
+20 21 25 0.571777 0.755859 1
+20 21 26 0.497314 0.721191 1
+20 21 27 0.410156 0.686035 1
+20 21 28 0.294922 0.651855 1
+20 21 29 0 0.619141 1
+20 21 30 0 0.588867 1
+20 21 31 0 0.560059 1
+20 22 0 0.898438 0.982422 0.268311
+20 22 1 0.898438 0.982422 0.268311
+20 22 2 0.898438 0.982422 0.268311
+20 22 3 0.898438 0.982422 0.268311
+20 22 4 0.898438 0.982422 0.268311
+20 22 5 0.898438 0.982422 0.268311
+20 22 6 0.898438 0.982422 0.268311
+20 22 7 0.898438 0.982422 0.268311
+20 22 8 0.898438 0.982422 0.268311
+20 22 9 0.898438 0.982422 0.268311
+20 22 10 0.898438 0.982422 0.268311
+20 22 11 0.898438 0.982422 0.268311
+20 22 12 0.898438 0.982422 0.268311
+20 22 13 0.898438 0.98291 0.268311
+20 22 14 0.896973 0.983398 0.305908
+20 22 15 0.89209 0.983398 0.397705
+20 22 16 0.883301 0.98291 0.490479
+20 22 17 0.869629 0.97998 0.583008
+20 22 18 0.849609 0.973633 0.672852
+20 22 19 0.822266 0.962891 0.756348
+20 22 20 0.791016 0.95166 0.833008
+20 22 21 0.753906 0.9375 0.902344
+20 22 22 0.709961 0.918945 0.961426
+20 22 23 0.657715 0.89209 1
+20 22 24 0.598633 0.859863 1
+20 22 25 0.530762 0.82373 1
+20 22 26 0.450684 0.785156 1
+20 22 27 0.350586 0.746582 1
+20 22 28 0.18335 0.708496 1
+20 22 29 0 0.671875 1
+20 22 30 0 0.637207 1
+20 22 31 0 0.60498 1
+20 23 0 0.82666 1 0.257324
+20 23 1 0.82666 1 0.257324
+20 23 2 0.82666 1 0.257324
+20 23 3 0.82666 1 0.257324
+20 23 4 0.82666 1 0.257324
+20 23 5 0.82666 1 0.257324
+20 23 6 0.82666 1 0.257324
+20 23 7 0.82666 1 0.257324
+20 23 8 0.82666 1 0.257324
+20 23 9 0.82666 1 0.257324
+20 23 10 0.82666 1 0.257324
+20 23 11 0.82666 1 0.257324
+20 23 12 0.82666 1 0.257324
+20 23 13 0.82666 1 0.257324
+20 23 14 0.826172 1 0.273682
+20 23 15 0.821777 1 0.370117
+20 23 16 0.813965 1 0.463867
+20 23 17 0.801758 1 0.557129
+20 23 18 0.783691 1 0.647461
+20 23 19 0.759277 1 0.732422
+20 23 20 0.730469 0.99707 0.811035
+20 23 21 0.694336 0.984863 0.881836
+20 23 22 0.650879 0.967773 0.942871
+20 23 23 0.602539 0.947266 0.992676
+20 23 24 0.546387 0.920898 1
+20 23 25 0.47583 0.886719 1
+20 23 26 0.385986 0.847656 1
+20 23 27 0.253662 0.806641 1
+20 23 28 0 0.765137 1
+20 23 29 0 0.724609 1
+20 23 30 0 0.686035 1
+20 23 31 0 0.649414 1
+20 24 0 0.753418 1 0.246582
+20 24 1 0.753418 1 0.246582
+20 24 2 0.753418 1 0.246582
+20 24 3 0.753418 1 0.246582
+20 24 4 0.753418 1 0.246582
+20 24 5 0.753418 1 0.246582
+20 24 6 0.753418 1 0.246582
+20 24 7 0.753418 1 0.246582
+20 24 8 0.753418 1 0.246582
+20 24 9 0.753418 1 0.246582
+20 24 10 0.753418 1 0.246582
+20 24 11 0.753418 1 0.246582
+20 24 12 0.753418 1 0.246582
+20 24 13 0.753418 1 0.246582
+20 24 14 0.753906 1 0.246704
+20 24 15 0.749512 1 0.342041
+20 24 16 0.742188 1 0.437744
+20 24 17 0.730957 1 0.53125
+20 24 18 0.713867 1 0.621582
+20 24 19 0.691406 1 0.708008
+20 24 20 0.663086 1 0.787109
+20 24 21 0.626953 1 0.859375
+20 24 22 0.583008 1 0.922363
+20 24 23 0.532715 0.990723 0.974121
+20 24 24 0.474365 0.969238 1
+20 24 25 0.396973 0.940918 1
+20 24 26 0.281006 0.904297 1
+20 24 27 0 0.862793 1
+20 24 28 0 0.819824 1
+20 24 29 0 0.776367 1
+20 24 30 0 0.734375 1
+20 24 31 0 0.694336 1
+20 25 0 0.669922 1 0.235352
+20 25 1 0.669922 1 0.235352
+20 25 2 0.669922 1 0.235352
+20 25 3 0.669922 1 0.235352
+20 25 4 0.669922 1 0.235352
+20 25 5 0.669922 1 0.235352
+20 25 6 0.669922 1 0.235352
+20 25 7 0.669922 1 0.235352
+20 25 8 0.669922 1 0.235352
+20 25 9 0.669922 1 0.235352
+20 25 10 0.669922 1 0.235352
+20 25 11 0.669922 1 0.235352
+20 25 12 0.669922 1 0.235474
+20 25 13 0.669922 1 0.235474
+20 25 14 0.67041 1 0.235474
+20 25 15 0.666992 1 0.310547
+20 25 16 0.659668 1 0.40918
+20 25 17 0.647949 1 0.50293
+20 25 18 0.631348 1 0.59375
+20 25 19 0.608398 1 0.680176
+20 25 20 0.578613 1 0.759766
+20 25 21 0.540527 1 0.833008
+20 25 22 0.49292 1 0.897461
+20 25 23 0.435303 1 0.95166
+20 25 24 0.363281 1 0.99707
+20 25 25 0.247803 0.988281 1
+20 25 26 0 0.957031 1
+20 25 27 0 0.918457 1
+20 25 28 0 0.875488 1
+20 25 29 0 0.830566 1
+20 25 30 0 0.785645 1
+20 25 31 0 0.742188 1
+20 26 0 0.569824 1 0.223755
+20 26 1 0.569824 1 0.223755
+20 26 2 0.569824 1 0.223755
+20 26 3 0.569824 1 0.223755
+20 26 4 0.569824 1 0.223755
+20 26 5 0.569824 1 0.223755
+20 26 6 0.569824 1 0.223755
+20 26 7 0.569824 1 0.223755
+20 26 8 0.569824 1 0.223755
+20 26 9 0.570312 1 0.223755
+20 26 10 0.570312 1 0.223755
+20 26 11 0.570312 1 0.223877
+20 26 12 0.570312 1 0.223877
+20 26 13 0.570801 1 0.223877
+20 26 14 0.570801 1 0.223999
+20 26 15 0.568359 1 0.274902
+20 26 16 0.560059 1 0.378174
+20 26 17 0.546875 1 0.4729
+20 26 18 0.527832 1 0.563477
+20 26 19 0.501465 1 0.649414
+20 26 20 0.466553 1 0.729004
+20 26 21 0.419678 1 0.802734
+20 26 22 0.355957 1 0.868652
+20 26 23 0.263428 1 0.924805
+20 26 24 0 1 0.972168
+20 26 25 0 1 1
+20 26 26 0 1 1
+20 26 27 0 0.970215 1
+20 26 28 0 0.929688 1
+20 26 29 0 0.885254 1
+20 26 30 0 0.838867 1
+20 26 31 0 0.792969 1
+20 27 0 0.439209 1 0.211792
+20 27 1 0.439209 1 0.211792
+20 27 2 0.439209 1 0.211792
+20 27 3 0.439209 1 0.211792
+20 27 4 0.439209 1 0.211792
+20 27 5 0.439209 1 0.211792
+20 27 6 0.439209 1 0.211792
+20 27 7 0.439453 1 0.211792
+20 27 8 0.439453 1 0.211792
+20 27 9 0.439453 1 0.211792
+20 27 10 0.439453 1 0.211792
+20 27 11 0.439697 1 0.211792
+20 27 12 0.439941 1 0.211792
+20 27 13 0.440186 1 0.211914
+20 27 14 0.440918 1 0.211914
+20 27 15 0.440186 1 0.232422
+20 27 16 0.427734 1 0.344238
+20 27 17 0.40918 1 0.44043
+20 27 18 0.381104 1 0.530762
+20 27 19 0.340332 1 0.615723
+20 27 20 0.27832 1 0.694824
+20 27 21 0.152466 1 0.768555
+20 27 22 0 1 0.834961
+20 27 23 0 1 0.893066
+20 27 24 0 1 0.942383
+20 27 25 0 1 0.989258
+20 27 26 0 1 1
+20 27 27 0 1 1
+20 27 28 0 0.97998 1
+20 27 29 0 0.9375 1
+20 27 30 0 0.891602 1
+20 27 31 0 0.844238 1
+20 28 0 0.183228 1 0.199341
+20 28 1 0.183228 1 0.199341
+20 28 2 0.183228 1 0.199341
+20 28 3 0.183228 1 0.199341
+20 28 4 0.183228 1 0.199341
+20 28 5 0.183228 1 0.199341
+20 28 6 0.18335 1 0.199341
+20 28 7 0.18335 1 0.199341
+20 28 8 0.183472 1 0.199341
+20 28 9 0.183594 1 0.199341
+20 28 10 0.18396 1 0.199341
+20 28 11 0.184448 1 0.199341
+20 28 12 0.185425 1 0.199341
+20 28 13 0.18689 1 0.199463
+20 28 14 0.189331 1 0.199463
+20 28 15 0.192871 1 0.199585
+20 28 16 0.146851 1 0.306396
+20 28 17 0 1 0.405518
+20 28 18 0 1 0.495605
+20 28 19 0 1 0.57959
+20 28 20 0 1 0.657715
+20 28 21 0 1 0.730957
+20 28 22 0 1 0.797852
+20 28 23 0 1 0.856445
+20 28 24 0 1 0.907715
+20 28 25 0 1 0.957031
+20 28 26 0 1 1
+20 28 27 0 1 1
+20 28 28 0 1 1
+20 28 29 0 0.985352 1
+20 28 30 0 0.941895 1
+20 28 31 0 0.89502 1
+20 29 0 0 1 0.186401
+20 29 1 0 1 0.186401
+20 29 2 0 1 0.186401
+20 29 3 0 1 0.186401
+20 29 4 0 1 0.186401
+20 29 5 0 1 0.186401
+20 29 6 0 1 0.186401
+20 29 7 0 1 0.186401
+20 29 8 0 1 0.186401
+20 29 9 0 1 0.186401
+20 29 10 0 1 0.186401
+20 29 11 0 1 0.186401
+20 29 12 0 1 0.186401
+20 29 13 0 1 0.186523
+20 29 14 0 1 0.186523
+20 29 15 0 1 0.186646
+20 29 16 0 1 0.263428
+20 29 17 0 1 0.36792
+20 29 18 0 1 0.458252
+20 29 19 0 1 0.541504
+20 29 20 0 1 0.618164
+20 29 21 0 1 0.69043
+20 29 22 0 1 0.756836
+20 29 23 0 1 0.815918
+20 29 24 0 1 0.868164
+20 29 25 0 1 0.918945
+20 29 26 0 1 0.967285
+20 29 27 0 1 1
+20 29 28 0 1 1
+20 29 29 0 1 1
+20 29 30 0 0.989746 1
+20 29 31 0 0.945312 1
+20 30 0 0 1 0.172974
+20 30 1 0 1 0.172974
+20 30 2 0 1 0.172974
+20 30 3 0 1 0.172974
+20 30 4 0 1 0.172974
+20 30 5 0 1 0.172974
+20 30 6 0 1 0.172974
+20 30 7 0 1 0.172974
+20 30 8 0 1 0.172974
+20 30 9 0 1 0.172974
+20 30 10 0 1 0.172974
+20 30 11 0 1 0.172974
+20 30 12 0 1 0.173096
+20 30 13 0 1 0.173096
+20 30 14 0 1 0.173218
+20 30 15 0 1 0.17334
+20 30 16 0 1 0.211792
+20 30 17 0 1 0.326904
+20 30 18 0 1 0.418701
+20 30 19 0 1 0.500977
+20 30 20 0 1 0.576172
+20 30 21 0 1 0.646973
+20 30 22 0 1 0.712402
+20 30 23 0 1 0.771484
+20 30 24 0 1 0.824219
+20 30 25 0 1 0.875977
+20 30 26 0 1 0.92627
+20 30 27 0 1 0.974121
+20 30 28 0 1 1
+20 30 29 0 1 1
+20 30 30 0 1 1
+20 30 31 0 0.992676 1
+20 31 0 0 1 0.159302
+20 31 1 0 1 0.159302
+20 31 2 0 1 0.159302
+20 31 3 0 1 0.159302
+20 31 4 0 1 0.159302
+20 31 5 0 1 0.159302
+20 31 6 0 1 0.159302
+20 31 7 0 1 0.159302
+20 31 8 0 1 0.159302
+20 31 9 0 1 0.159302
+20 31 10 0 1 0.159424
+20 31 11 0 1 0.159424
+20 31 12 0 1 0.159424
+20 31 13 0 1 0.159424
+20 31 14 0 1 0.159546
+20 31 15 0 1 0.159668
+20 31 16 0 1 0.159912
+20 31 17 0 1 0.282227
+20 31 18 0 1 0.377197
+20 31 19 0 1 0.45874
+20 31 20 0 1 0.532715
+20 31 21 0 1 0.601562
+20 31 22 0 1 0.666016
+20 31 23 0 1 0.723633
+20 31 24 0 1 0.776367
+20 31 25 0 1 0.829102
+20 31 26 0 1 0.880859
+20 31 27 0 1 0.931641
+20 31 28 0 1 0.979004
+20 31 29 0 1 1
+20 31 30 0 1 1
+20 31 31 0 1 1
+21 0 0 1 0 0.059021
+21 0 1 1 0 0.059021
+21 0 2 1 0 0.059021
+21 0 3 1 0 0.0589905
+21 0 4 1 0 0.0589905
+21 0 5 1 0 0.05896
+21 0 6 1 0 0.0589294
+21 0 7 1 0 0.0588684
+21 0 8 1 0 0.0587463
+21 0 9 1 0 0.0584717
+21 0 10 1 0 0.0579834
+21 0 11 1 0 0.0571289
+21 0 12 1 0 0.055603
+21 0 13 1 0 0.0541992
+21 0 14 1 0 0.19812
+21 0 15 1 0 0.336182
+21 0 16 1 0 0.451172
+21 0 17 1 0 0.567383
+21 0 18 1 0.211182 0.690918
+21 0 19 1 0.300781 0.801758
+21 0 20 1 0.333008 0.883789
+21 0 21 1 0.337891 0.946289
+21 0 22 1 0.338867 0.995117
+21 0 23 0.963379 0.336914 1
+21 0 24 0.902344 0.33252 1
+21 0 25 0.834961 0.326904 1
+21 0 26 0.763672 0.320312 1
+21 0 27 0.689941 0.313721 1
+21 0 28 0.61377 0.307617 1
+21 0 29 0.534668 0.302002 1
+21 0 30 0.449463 0.297607 1
+21 0 31 0.347656 0.294189 1
+21 1 0 1 0 0.0589905
+21 1 1 1 0 0.0589905
+21 1 2 1 0 0.0589905
+21 1 3 1 0 0.0589905
+21 1 4 1 0 0.05896
+21 1 5 1 0 0.05896
+21 1 6 1 0 0.0589294
+21 1 7 1 0 0.0588379
+21 1 8 1 0 0.0587158
+21 1 9 1 0 0.0584412
+21 1 10 1 0 0.0579834
+21 1 11 1 0 0.0570984
+21 1 12 1 0 0.055603
+21 1 13 1 0 0.0541687
+21 1 14 1 0 0.19812
+21 1 15 1 0 0.336182
+21 1 16 1 0 0.451172
+21 1 17 1 0 0.567383
+21 1 18 1 0.211182 0.690918
+21 1 19 1 0.300781 0.801758
+21 1 20 1 0.333252 0.883789
+21 1 21 1 0.337891 0.946289
+21 1 22 1 0.338867 0.995117
+21 1 23 0.963379 0.336914 1
+21 1 24 0.902344 0.33252 1
+21 1 25 0.834961 0.326904 1
+21 1 26 0.763672 0.320312 1
+21 1 27 0.689941 0.313721 1
+21 1 28 0.61377 0.307617 1
+21 1 29 0.534668 0.302002 1
+21 1 30 0.449463 0.297607 1
+21 1 31 0.347656 0.294189 1
+21 2 0 1 0 0.05896
+21 2 1 1 0 0.05896
+21 2 2 1 0 0.05896
+21 2 3 1 0 0.05896
+21 2 4 1 0 0.0589294
+21 2 5 1 0 0.0589294
+21 2 6 1 0 0.0588684
+21 2 7 1 0 0.0588074
+21 2 8 1 0 0.0586853
+21 2 9 1 0 0.0584106
+21 2 10 1 0 0.0579224
+21 2 11 1 0 0.0570679
+21 2 12 1 0 0.055542
+21 2 13 1 0 0.0541382
+21 2 14 1 0 0.19812
+21 2 15 1 0 0.336182
+21 2 16 1 0 0.451172
+21 2 17 1 0 0.567383
+21 2 18 1 0.211304 0.690918
+21 2 19 1 0.300781 0.801758
+21 2 20 1 0.333252 0.883789
+21 2 21 1 0.337891 0.946289
+21 2 22 1 0.339111 0.995117
+21 2 23 0.963379 0.336914 1
+21 2 24 0.902344 0.332764 1
+21 2 25 0.834961 0.326904 1
+21 2 26 0.763672 0.320312 1
+21 2 27 0.689941 0.313721 1
+21 2 28 0.61377 0.307617 1
+21 2 29 0.534668 0.302002 1
+21 2 30 0.449463 0.297607 1
+21 2 31 0.347656 0.294189 1
+21 3 0 1 0 0.0588989
+21 3 1 1 0 0.0588989
+21 3 2 1 0 0.0588989
+21 3 3 1 0 0.0588989
+21 3 4 1 0 0.0588684
+21 3 5 1 0 0.0588684
+21 3 6 1 0 0.0588074
+21 3 7 1 0 0.0587463
+21 3 8 1 0 0.0586243
+21 3 9 1 0 0.0583496
+21 3 10 1 0 0.0578613
+21 3 11 1 0 0.0570068
+21 3 12 1 0 0.055481
+21 3 13 1 0 0.0540466
+21 3 14 1 0 0.19812
+21 3 15 1 0 0.336182
+21 3 16 1 0 0.451172
+21 3 17 1 0 0.567383
+21 3 18 1 0.211426 0.690918
+21 3 19 1 0.301025 0.801758
+21 3 20 1 0.333252 0.883789
+21 3 21 1 0.338135 0.946289
+21 3 22 1 0.339111 0.995117
+21 3 23 0.963379 0.336914 1
+21 3 24 0.902344 0.332764 1
+21 3 25 0.834961 0.326904 1
+21 3 26 0.763672 0.320312 1
+21 3 27 0.689453 0.313721 1
+21 3 28 0.61377 0.307617 1
+21 3 29 0.534668 0.302246 1
+21 3 30 0.449463 0.297607 1
+21 3 31 0.347656 0.294189 1
+21 4 0 1 0 0.0587769
+21 4 1 1 0 0.0587769
+21 4 2 1 0 0.0587769
+21 4 3 1 0 0.0587769
+21 4 4 1 0 0.0587463
+21 4 5 1 0 0.0587463
+21 4 6 1 0 0.0587158
+21 4 7 1 0 0.0586243
+21 4 8 1 0 0.0585022
+21 4 9 1 0 0.0582275
+21 4 10 1 0 0.0577393
+21 4 11 1 0 0.0568848
+21 4 12 1 0 0.0553589
+21 4 13 1 0 0.0539246
+21 4 14 1 0 0.19812
+21 4 15 1 0 0.336182
+21 4 16 1 0 0.451172
+21 4 17 1 0 0.567383
+21 4 18 1 0.21167 0.690918
+21 4 19 1 0.301025 0.801758
+21 4 20 1 0.333496 0.883789
+21 4 21 1 0.338135 0.946289
+21 4 22 1 0.339111 0.995117
+21 4 23 0.963379 0.337158 1
+21 4 24 0.902344 0.332764 1
+21 4 25 0.834961 0.327148 1
+21 4 26 0.763672 0.320557 1
+21 4 27 0.689453 0.313965 1
+21 4 28 0.61377 0.307617 1
+21 4 29 0.534668 0.302246 1
+21 4 30 0.449463 0.297607 1
+21 4 31 0.347412 0.294189 1
+21 5 0 1 0 0.0585327
+21 5 1 1 0 0.0585327
+21 5 2 1 0 0.0585327
+21 5 3 1 0 0.0585327
+21 5 4 1 0 0.0585327
+21 5 5 1 0 0.0585022
+21 5 6 1 0 0.0584717
+21 5 7 1 0 0.0584106
+21 5 8 1 0 0.0582581
+21 5 9 1 0 0.0579834
+21 5 10 1 0 0.0574951
+21 5 11 1 0 0.0566406
+21 5 12 1 0 0.0550842
+21 5 13 1 0 0.0536499
+21 5 14 1 0 0.19812
+21 5 15 1 0 0.336182
+21 5 16 1 0 0.451172
+21 5 17 1 0 0.567383
+21 5 18 1 0.212158 0.690918
+21 5 19 1 0.301514 0.801758
+21 5 20 1 0.33374 0.883789
+21 5 21 1 0.338379 0.946289
+21 5 22 1 0.339355 0.995117
+21 5 23 0.963379 0.337402 1
+21 5 24 0.902344 0.333008 1
+21 5 25 0.834961 0.327148 1
+21 5 26 0.763672 0.320557 1
+21 5 27 0.689453 0.313965 1
+21 5 28 0.61377 0.307861 1
+21 5 29 0.534668 0.302246 1
+21 5 30 0.449463 0.297852 1
+21 5 31 0.347412 0.294189 1
+21 6 0 1 0 0.0581055
+21 6 1 1 0 0.0581055
+21 6 2 1 0 0.0581055
+21 6 3 1 0 0.058075
+21 6 4 1 0 0.058075
+21 6 5 1 0 0.0580444
+21 6 6 1 0 0.0580139
+21 6 7 1 0 0.0579529
+21 6 8 1 0 0.0578003
+21 6 9 1 0 0.0575562
+21 6 10 1 0 0.0570374
+21 6 11 1 0 0.0561523
+21 6 12 1 0 0.0545959
+21 6 13 1 0 0.0531616
+21 6 14 1 0 0.19812
+21 6 15 1 0 0.336182
+21 6 16 1 0 0.451172
+21 6 17 1 0 0.566895
+21 6 18 1 0.213135 0.690918
+21 6 19 1 0.302002 0.801758
+21 6 20 1 0.334229 0.883789
+21 6 21 1 0.338867 0.946289
+21 6 22 1 0.339844 0.995117
+21 6 23 0.963379 0.337646 1
+21 6 24 0.902344 0.333252 1
+21 6 25 0.834961 0.327637 1
+21 6 26 0.763672 0.321045 1
+21 6 27 0.689453 0.314209 1
+21 6 28 0.61377 0.307861 1
+21 6 29 0.534668 0.30249 1
+21 6 30 0.449463 0.297852 1
+21 6 31 0.347412 0.294434 1
+21 7 0 1 0 0.0572205
+21 7 1 1 0 0.0572205
+21 7 2 1 0 0.0572205
+21 7 3 1 0 0.0571899
+21 7 4 1 0 0.0571899
+21 7 5 1 0 0.0571899
+21 7 6 1 0 0.0571289
+21 7 7 1 0 0.0570679
+21 7 8 1 0 0.0569153
+21 7 9 1 0 0.0566406
+21 7 10 1 0 0.0561523
+21 7 11 1 0 0.0552368
+21 7 12 1 0 0.0536194
+21 7 13 1 0 0.052124
+21 7 14 1 0 0.198242
+21 7 15 1 0 0.336182
+21 7 16 1 0 0.451172
+21 7 17 1 0 0.566895
+21 7 18 1 0.214966 0.69043
+21 7 19 1 0.303223 0.801758
+21 7 20 1 0.335205 0.883789
+21 7 21 1 0.339844 0.946289
+21 7 22 1 0.340576 0.995117
+21 7 23 0.963379 0.338379 1
+21 7 24 0.901855 0.333984 1
+21 7 25 0.834961 0.328125 1
+21 7 26 0.763672 0.321533 1
+21 7 27 0.689453 0.314697 1
+21 7 28 0.61377 0.30835 1
+21 7 29 0.534668 0.302734 1
+21 7 30 0.449219 0.29834 1
+21 7 31 0.347412 0.294678 1
+21 8 0 1 0 0.0554199
+21 8 1 1 0 0.0554199
+21 8 2 1 0 0.0554199
+21 8 3 1 0 0.0554199
+21 8 4 1 0 0.0553894
+21 8 5 1 0 0.0553894
+21 8 6 1 0 0.0553284
+21 8 7 1 0 0.0552673
+21 8 8 1 0 0.0551147
+21 8 9 1 0 0.0548096
+21 8 10 1 0 0.0542908
+21 8 11 1 0 0.0533142
+21 8 12 1 0 0.0516052
+21 8 13 1 0 0.0500488
+21 8 14 1 0 0.198242
+21 8 15 1 0 0.336182
+21 8 16 1 0 0.451172
+21 8 17 1 0 0.566895
+21 8 18 1 0.218628 0.69043
+21 8 19 1 0.30542 0.801758
+21 8 20 1 0.337158 0.883789
+21 8 21 1 0.341553 0.946289
+21 8 22 1 0.342285 0.995117
+21 8 23 0.963379 0.339844 1
+21 8 24 0.901855 0.335449 1
+21 8 25 0.834473 0.329346 1
+21 8 26 0.763184 0.32251 1
+21 8 27 0.689453 0.315674 1
+21 8 28 0.61377 0.309326 1
+21 8 29 0.534668 0.303467 1
+21 8 30 0.449219 0.298828 1
+21 8 31 0.347168 0.295166 1
+21 9 0 1 0 0.0516663
+21 9 1 1 0 0.0516663
+21 9 2 1 0 0.0516663
+21 9 3 1 0 0.0516663
+21 9 4 1 0 0.0516663
+21 9 5 1 0 0.0516357
+21 9 6 1 0 0.0515747
+21 9 7 1 0 0.0515137
+21 9 8 1 0 0.0513306
+21 9 9 1 0 0.0509949
+21 9 10 1 0 0.050415
+21 9 11 1 0 0.0493164
+21 9 12 1 0 0.0473633
+21 9 13 1 0 0.0455933
+21 9 14 1 0 0.198242
+21 9 15 1 0 0.335938
+21 9 16 1 0 0.451172
+21 9 17 1 0 0.566895
+21 9 18 1 0.22522 0.69043
+21 9 19 1 0.30957 0.80127
+21 9 20 1 0.34082 0.883789
+21 9 21 1 0.344971 0.946289
+21 9 22 1 0.345459 0.995117
+21 9 23 0.962891 0.342773 1
+21 9 24 0.901855 0.337891 1
+21 9 25 0.834473 0.331543 1
+21 9 26 0.763184 0.324463 1
+21 9 27 0.689453 0.317383 1
+21 9 28 0.613281 0.310791 1
+21 9 29 0.53418 0.304932 1
+21 9 30 0.448975 0.300049 1
+21 9 31 0.346924 0.296387 1
+21 10 0 1 0 0.043457
+21 10 1 1 0 0.043457
+21 10 2 1 0 0.043457
+21 10 3 1 0 0.0434265
+21 10 4 1 0 0.0434265
+21 10 5 1 0 0.043396
+21 10 6 1 0 0.043335
+21 10 7 1 0 0.0432129
+21 10 8 1 0 0.0429993
+21 10 9 1 0 0.042572
+21 10 10 1 0 0.041748
+21 10 11 1 0 0.0402527
+21 10 12 1 0 0.0374756
+21 10 13 1 0 0.0349731
+21 10 14 1 0 0.198486
+21 10 15 1 0 0.335693
+21 10 16 1 0 0.451172
+21 10 17 1 0.10022 0.566406
+21 10 18 1 0.23645 0.689941
+21 10 19 1 0.316895 0.80127
+21 10 20 1 0.347168 0.883789
+21 10 21 1 0.35083 0.946289
+21 10 22 1 0.35083 0.995605
+21 10 23 0.962402 0.347656 1
+21 10 24 0.901367 0.342529 1
+21 10 25 0.833984 0.335693 1
+21 10 26 0.762695 0.328125 1
+21 10 27 0.688965 0.320557 1
+21 10 28 0.613281 0.313721 1
+21 10 29 0.53418 0.307373 1
+21 10 30 0.448486 0.302246 1
+21 10 31 0.346191 0.298096 1
+21 11 0 1 0.0167999 0
+21 11 1 1 0.0170288 0
+21 11 2 1 0.0174103 0
+21 11 3 1 0.0180969 0
+21 11 4 1 0.0192871 0
+21 11 5 1 0.0213013 0
+21 11 6 1 0.0244446 0
+21 11 7 1 0.0292206 0
+21 11 8 1 0.0360413 0
+21 11 9 1 0.0452271 0
+21 11 10 1 0.0568237 0
+21 11 11 1 0.0709839 0
+21 11 12 1 0.0880737 0
+21 11 13 1 0.0980225 0
+21 11 14 1 0.0917969 0.198975
+21 11 15 1 0.0726318 0.335205
+21 11 16 1 0.0905762 0.450928
+21 11 17 1 0.152344 0.56543
+21 11 18 1 0.254395 0.688965
+21 11 19 1 0.329346 0.800781
+21 11 20 1 0.35791 0.883789
+21 11 21 1 0.361084 0.946289
+21 11 22 1 0.360107 0.995605
+21 11 23 0.961914 0.356201 1
+21 11 24 0.900879 0.350098 1
+21 11 25 0.833496 0.342773 1
+21 11 26 0.762207 0.334473 1
+21 11 27 0.687988 0.326172 1
+21 11 28 0.612305 0.318359 1
+21 11 29 0.533203 0.311768 1
+21 11 30 0.44751 0.305908 1
+21 11 31 0.345215 0.301514 1
+21 12 0 1 0.167725 0
+21 12 1 1 0.167725 0
+21 12 2 1 0.167725 0
+21 12 3 1 0.167725 0
+21 12 4 1 0.167725 0
+21 12 5 1 0.167847 0
+21 12 6 1 0.167969 0
+21 12 7 1 0.168213 0
+21 12 8 1 0.168701 0
+21 12 9 1 0.169678 0
+21 12 10 1 0.171387 0
+21 12 11 1 0.174316 0
+21 12 12 1 0.179077 0
+21 12 13 1 0.182129 0
+21 12 14 1 0.178589 0.200317
+21 12 15 1 0.171265 0.334961
+21 12 16 1 0.178223 0.451172
+21 12 17 1 0.204102 0.563965
+21 12 18 1 0.281006 0.6875
+21 12 19 1 0.348633 0.800293
+21 12 20 1 0.375488 0.883789
+21 12 21 1 0.377197 0.946289
+21 12 22 1 0.375244 0.995605
+21 12 23 0.960938 0.370117 1
+21 12 24 0.899414 0.362793 1
+21 12 25 0.832031 0.354004 1
+21 12 26 0.760742 0.344727 1
+21 12 27 0.687012 0.335205 1
+21 12 28 0.611328 0.326416 1
+21 12 29 0.532227 0.318848 1
+21 12 30 0.446289 0.312256 1
+21 12 31 0.343262 0.306885 1
+21 13 0 1 0.244385 0
+21 13 1 1 0.244385 0
+21 13 2 1 0.244385 0
+21 13 3 1 0.244385 0
+21 13 4 1 0.244385 0
+21 13 5 1 0.244385 0
+21 13 6 1 0.244507 0
+21 13 7 1 0.244629 0
+21 13 8 1 0.244873 0
+21 13 9 1 0.245483 0
+21 13 10 1 0.24646 0
+21 13 11 1 0.248047 0
+21 13 12 1 0.250977 0
+21 13 13 1 0.252441 0
+21 13 14 1 0.248901 0.203735
+21 13 15 1 0.243164 0.334961
+21 13 16 1 0.248047 0.451416
+21 13 17 1 0.260254 0.5625
+21 13 18 1 0.317139 0.685547
+21 13 19 1 0.376953 0.799316
+21 13 20 1 0.401367 0.883301
+21 13 21 1 0.401855 0.946289
+21 13 22 1 0.398193 0.995605
+21 13 23 0.958984 0.391113 1
+21 13 24 0.897461 0.38208 1
+21 13 25 0.830078 0.371582 1
+21 13 26 0.758789 0.360352 1
+21 13 27 0.685059 0.349365 1
+21 13 28 0.609375 0.339111 1
+21 13 29 0.529785 0.329834 1
+21 13 30 0.443848 0.322266 1
+21 13 31 0.340332 0.315674 1
+21 14 0 1 0.319824 0
+21 14 1 1 0.319824 0
+21 14 2 1 0.319824 0
+21 14 3 1 0.320068 0
+21 14 4 1 0.320068 0
+21 14 5 1 0.320068 0
+21 14 6 1 0.320068 0
+21 14 7 1 0.320068 0
+21 14 8 1 0.320312 0
+21 14 9 1 0.320557 0
+21 14 10 1 0.321289 0
+21 14 11 1 0.32251 0
+21 14 12 1 0.324463 0
+21 14 13 1 0.325195 0
+21 14 14 1 0.321533 0.211792
+21 14 15 1 0.316162 0.336914
+21 14 16 1 0.315674 0.449219
+21 14 17 1 0.323242 0.560059
+21 14 18 1 0.36377 0.681641
+21 14 19 1 0.415771 0.797363
+21 14 20 1 0.437988 0.883301
+21 14 21 1 0.436523 0.946289
+21 14 22 1 0.430664 0.995605
+21 14 23 0.956055 0.421387 1
+21 14 24 0.894531 0.409912 1
+21 14 25 0.827148 0.396973 1
+21 14 26 0.755859 0.383301 1
+21 14 27 0.681641 0.369873 1
+21 14 28 0.605957 0.357666 1
+21 14 29 0.526855 0.346436 1
+21 14 30 0.440186 0.336914 1
+21 14 31 0.335449 0.328857 1
+21 15 0 1 0.400635 0
+21 15 1 1 0.400635 0
+21 15 2 1 0.400635 0
+21 15 3 1 0.400635 0
+21 15 4 1 0.400635 0
+21 15 5 1 0.400635 0
+21 15 6 1 0.400635 0
+21 15 7 1 0.400635 0
+21 15 8 1 0.400879 0
+21 15 9 1 0.401123 0
+21 15 10 1 0.401611 0
+21 15 11 1 0.402344 0
+21 15 12 1 0.403809 0
+21 15 13 1 0.404053 0
+21 15 14 1 0.400635 0.228516
+21 15 15 1 0.395508 0.343262
+21 15 16 1 0.391113 0.448975
+21 15 17 1 0.395264 0.558105
+21 15 18 1 0.419922 0.675781
+21 15 19 1 0.465088 0.794434
+21 15 20 1 0.48584 0.882324
+21 15 21 1 0.482178 0.945801
+21 15 22 1 0.473877 0.995117
+21 15 23 0.950684 0.461426 1
+21 15 24 0.88916 0.447266 1
+21 15 25 0.821777 0.431152 1
+21 15 26 0.750488 0.414551 1
+21 15 27 0.676758 0.398438 1
+21 15 28 0.601074 0.383301 1
+21 15 29 0.521484 0.369629 1
+21 15 30 0.43457 0.35791 1
+21 15 31 0.327637 0.347656 1
+21 16 0 1 0.48877 0
+21 16 1 1 0.48877 0
+21 16 2 1 0.48877 0
+21 16 3 1 0.48877 0
+21 16 4 1 0.48877 0
+21 16 5 1 0.48877 0
+21 16 6 1 0.48877 0
+21 16 7 1 0.48877 0
+21 16 8 1 0.489014 0
+21 16 9 1 0.489014 0
+21 16 10 1 0.489502 0
+21 16 11 1 0.48999 0
+21 16 12 1 0.490967 0
+21 16 13 1 0.491211 0.107178
+21 16 14 1 0.488525 0.257324
+21 16 15 1 0.484131 0.358398
+21 16 16 1 0.477539 0.455322
+21 16 17 1 0.475342 0.557617
+21 16 18 1 0.486572 0.667969
+21 16 19 1 0.523926 0.788086
+21 16 20 1 0.544434 0.880371
+21 16 21 1 0.539062 0.944824
+21 16 22 1 0.527832 0.994629
+21 16 23 0.942871 0.512207 1
+21 16 24 0.881348 0.494385 1
+21 16 25 0.813965 0.474854 1
+21 16 26 0.743164 0.454834 1
+21 16 27 0.669434 0.435303 1
+21 16 28 0.59375 0.416992 1
+21 16 29 0.51416 0.400391 1
+21 16 30 0.425781 0.385742 1
+21 16 31 0.31543 0.372803 1
+21 17 0 1 0.58252 0.16333
+21 17 1 1 0.58252 0.16333
+21 17 2 1 0.58252 0.16333
+21 17 3 1 0.58252 0.16333
+21 17 4 1 0.58252 0.16333
+21 17 5 1 0.58252 0.16333
+21 17 6 1 0.58252 0.16333
+21 17 7 1 0.58252 0.16333
+21 17 8 1 0.58252 0.163452
+21 17 9 1 0.583008 0.163574
+21 17 10 1 0.583008 0.16394
+21 17 11 1 0.583496 0.164429
+21 17 12 1 0.584473 0.165283
+21 17 13 1 0.584961 0.196411
+21 17 14 1 0.583496 0.294922
+21 17 15 1 0.580078 0.384033
+21 17 16 1 0.57373 0.472412
+21 17 17 1 0.564941 0.5625
+21 17 18 1 0.564941 0.663086
+21 17 19 1 0.587891 0.777344
+21 17 20 1 0.61084 0.876465
+21 17 21 1 0.604004 0.942871
+21 17 22 0.989258 0.589844 0.992676
+21 17 23 0.931152 0.570801 1
+21 17 24 0.869629 0.549316 1
+21 17 25 0.802734 0.525879 1
+21 17 26 0.731934 0.502441 1
+21 17 27 0.65918 0.479248 1
+21 17 28 0.583496 0.45752 1
+21 17 29 0.50293 0.437744 1
+21 17 30 0.413086 0.420166 1
+21 17 31 0.296875 0.404297 1
+21 18 0 1 0.678223 0.244019
+21 18 1 1 0.678223 0.244019
+21 18 2 1 0.678223 0.244019
+21 18 3 1 0.678223 0.244019
+21 18 4 1 0.678223 0.244019
+21 18 5 1 0.678223 0.244019
+21 18 6 1 0.678223 0.244019
+21 18 7 1 0.678223 0.244019
+21 18 8 1 0.678711 0.244019
+21 18 9 1 0.678711 0.244141
+21 18 10 1 0.678711 0.244263
+21 18 11 1 0.679199 0.244385
+21 18 12 1 0.679688 0.244751
+21 18 13 1 0.680664 0.250977
+21 18 14 1 0.680176 0.331055
+21 18 15 1 0.678223 0.412842
+21 18 16 1 0.673828 0.497314
+21 18 17 1 0.665527 0.582031
+21 18 18 1 0.65332 0.665527
+21 18 19 1 0.655762 0.763184
+21 18 20 1 0.679688 0.869141
+21 18 21 1 0.67334 0.938477
+21 18 22 0.972656 0.656738 0.98877
+21 18 23 0.914062 0.633789 1
+21 18 24 0.852539 0.608398 1
+21 18 25 0.786621 0.582031 1
+21 18 26 0.717285 0.554688 1
+21 18 27 0.64502 0.52832 1
+21 18 28 0.569824 0.503418 1
+21 18 29 0.488525 0.480713 1
+21 18 30 0.395508 0.459717 1
+21 18 31 0.269287 0.440918 1
+21 19 0 1 0.770508 0.287598
+21 19 1 1 0.770508 0.287598
+21 19 2 1 0.770508 0.287598
+21 19 3 1 0.770508 0.287598
+21 19 4 1 0.770508 0.287598
+21 19 5 1 0.770508 0.287598
+21 19 6 1 0.770508 0.287598
+21 19 7 1 0.770508 0.287598
+21 19 8 1 0.770508 0.287598
+21 19 9 1 0.770508 0.287598
+21 19 10 1 0.770508 0.287598
+21 19 11 1 0.770996 0.287842
+21 19 12 1 0.771484 0.287842
+21 19 13 1 0.771973 0.288086
+21 19 14 1 0.772461 0.353027
+21 19 15 1 0.771973 0.432617
+21 19 16 1 0.77002 0.517578
+21 19 17 1 0.764648 0.603516
+21 19 18 1 0.753906 0.685059
+21 19 19 1 0.737305 0.759766
+21 19 20 1 0.744629 0.85498
+21 19 21 0.998047 0.743164 0.931641
+21 19 22 0.949219 0.723633 0.981445
+21 19 23 0.890625 0.696777 1
+21 19 24 0.830566 0.668945 1
+21 19 25 0.766602 0.639648 1
+21 19 26 0.69873 0.609863 1
+21 19 27 0.627441 0.581055 1
+21 19 28 0.552246 0.553223 1
+21 19 29 0.469482 0.527344 1
+21 19 30 0.371826 0.503418 1
+21 19 31 0.226318 0.481201 1
+21 20 0 1 0.853027 0.303467
+21 20 1 1 0.853027 0.303467
+21 20 2 1 0.853027 0.303467
+21 20 3 1 0.853027 0.303467
+21 20 4 1 0.853027 0.303467
+21 20 5 1 0.853027 0.303467
+21 20 6 1 0.853027 0.303467
+21 20 7 1 0.853027 0.303467
+21 20 8 1 0.853027 0.303467
+21 20 9 1 0.853027 0.303467
+21 20 10 1 0.853027 0.303467
+21 20 11 1 0.853027 0.303467
+21 20 12 1 0.853516 0.303711
+21 20 13 1 0.854004 0.303711
+21 20 14 1 0.85498 0.35376
+21 20 15 1 0.85498 0.435059
+21 20 16 1 0.854492 0.521973
+21 20 17 1 0.851562 0.611328
+21 20 18 1 0.844727 0.698242
+21 20 19 1 0.831543 0.776367
+21 20 20 0.990723 0.810547 0.841309
+21 20 21 0.968262 0.80957 0.921387
+21 20 22 0.918457 0.786133 0.969727
+21 20 23 0.86084 0.756836 1
+21 20 24 0.804199 0.727539 1
+21 20 25 0.743164 0.697266 1
+21 20 26 0.677734 0.666504 1
+21 20 27 0.607422 0.635254 1
+21 20 28 0.53125 0.605469 1
+21 20 29 0.445801 0.57666 1
+21 20 30 0.340088 0.549316 1
+21 20 31 0.144897 0.523926 1
+21 21 0 1 0.922852 0.301758
+21 21 1 1 0.922852 0.301758
+21 21 2 1 0.922852 0.301758
+21 21 3 1 0.922852 0.301758
+21 21 4 1 0.922852 0.301758
+21 21 5 1 0.922852 0.301758
+21 21 6 1 0.922852 0.301758
+21 21 7 1 0.922852 0.301758
+21 21 8 1 0.922852 0.301758
+21 21 9 1 0.922852 0.301758
+21 21 10 1 0.922852 0.301758
+21 21 11 1 0.922852 0.301758
+21 21 12 1 0.92334 0.301758
+21 21 13 1 0.92334 0.301758
+21 21 14 1 0.924316 0.33667
+21 21 15 1 0.924805 0.421387
+21 21 16 1 0.924805 0.510742
+21 21 17 1 0.922852 0.602051
+21 21 18 1 0.917969 0.691895
+21 21 19 1 0.908203 0.774902
+21 21 20 0.974121 0.893066 0.847656
+21 21 21 0.931152 0.871582 0.908203
+21 21 22 0.881348 0.845703 0.956055
+21 21 23 0.82959 0.817383 0.992188
+21 21 24 0.776367 0.788574 1
+21 21 25 0.717285 0.757812 1
+21 21 26 0.652832 0.725098 1
+21 21 27 0.582031 0.691406 1
+21 21 28 0.503906 0.658203 1
+21 21 29 0.413086 0.625977 1
+21 21 30 0.292969 0.595215 1
+21 21 31 0 0.565918 1
+21 22 0 1 0.974609 0.293213
+21 22 1 1 0.974609 0.293213
+21 22 2 1 0.975098 0.293213
+21 22 3 1 0.975098 0.293213
+21 22 4 1 0.975098 0.293213
+21 22 5 1 0.975098 0.293213
+21 22 6 1 0.975098 0.293213
+21 22 7 1 0.975098 0.293213
+21 22 8 1 0.975098 0.293213
+21 22 9 1 0.975098 0.293213
+21 22 10 1 0.975098 0.293213
+21 22 11 1 0.975098 0.293213
+21 22 12 1 0.975098 0.293213
+21 22 13 1 0.975586 0.293213
+21 22 14 1 0.976074 0.310547
+21 22 15 1 0.977051 0.398926
+21 22 16 1 0.977539 0.489746
+21 22 17 0.998535 0.975586 0.581543
+21 22 18 0.981934 0.970703 0.670898
+21 22 19 0.957031 0.960938 0.753906
+21 22 20 0.924316 0.945312 0.826172
+21 22 21 0.887695 0.927734 0.891602
+21 22 22 0.849609 0.911133 0.95166
+21 22 23 0.80127 0.884766 0.992188
+21 22 24 0.747559 0.853516 1
+21 22 25 0.688477 0.819824 1
+21 22 26 0.623535 0.78418 1
+21 22 27 0.55127 0.748047 1
+21 22 28 0.469238 0.711426 1
+21 22 29 0.369873 0.67627 1
+21 22 30 0.216919 0.64209 1
+21 22 31 0 0.609375 1
+21 23 0 0.955566 1 0.282715
+21 23 1 0.955566 1 0.282715
+21 23 2 0.955566 1 0.282715
+21 23 3 0.955566 1 0.282715
+21 23 4 0.955566 1 0.282715
+21 23 5 0.955566 1 0.282715
+21 23 6 0.955566 1 0.282715
+21 23 7 0.955566 1 0.282715
+21 23 8 0.955566 1 0.282715
+21 23 9 0.955566 1 0.282715
+21 23 10 0.955566 1 0.282715
+21 23 11 0.955566 1 0.282715
+21 23 12 0.955566 1 0.282715
+21 23 13 0.955566 1 0.282715
+21 23 14 0.955566 1 0.282715
+21 23 15 0.952148 1 0.372803
+21 23 16 0.946289 1 0.4646
+21 23 17 0.936523 1 0.556152
+21 23 18 0.920898 1 0.645508
+21 23 19 0.898926 1 0.728516
+21 23 20 0.870605 0.98877 0.803223
+21 23 21 0.838867 0.975098 0.87207
+21 23 22 0.802734 0.959961 0.934082
+21 23 23 0.762695 0.941895 0.984863
+21 23 24 0.71582 0.916504 1
+21 23 25 0.657715 0.882812 1
+21 23 26 0.591309 0.844727 1
+21 23 27 0.515625 0.805176 1
+21 23 28 0.427002 0.765625 1
+21 23 29 0.311035 0.726562 1
+21 23 30 0 0.688965 1
+21 23 31 0 0.652832 1
+21 24 0 0.889648 1 0.271729
+21 24 1 0.889648 1 0.271729
+21 24 2 0.889648 1 0.271729
+21 24 3 0.889648 1 0.271729
+21 24 4 0.889648 1 0.271729
+21 24 5 0.889648 1 0.271729
+21 24 6 0.889648 1 0.271729
+21 24 7 0.889648 1 0.271729
+21 24 8 0.889648 1 0.271729
+21 24 9 0.889648 1 0.271729
+21 24 10 0.889648 1 0.271729
+21 24 11 0.889648 1 0.271729
+21 24 12 0.889648 1 0.271729
+21 24 13 0.889648 1 0.271729
+21 24 14 0.889648 1 0.271729
+21 24 15 0.886719 1 0.345703
+21 24 16 0.881348 1 0.438965
+21 24 17 0.87207 1 0.530762
+21 24 18 0.858398 1 0.619629
+21 24 19 0.838867 1 0.703613
+21 24 20 0.813965 1 0.779785
+21 24 21 0.785156 1 0.851074
+21 24 22 0.750977 1 0.914551
+21 24 23 0.712402 0.985352 0.967285
+21 24 24 0.669922 0.965332 1
+21 24 25 0.616211 0.937988 1
+21 24 26 0.549805 0.901855 1
+21 24 27 0.469971 0.861328 1
+21 24 28 0.370361 0.819336 1
+21 24 29 0.211792 0.776855 1
+21 24 30 0 0.73584 1
+21 24 31 0 0.696289 1
+21 25 0 0.81543 1 0.260254
+21 25 1 0.81543 1 0.260254
+21 25 2 0.81543 1 0.260254
+21 25 3 0.81543 1 0.260254
+21 25 4 0.81543 1 0.260254
+21 25 5 0.81543 1 0.260254
+21 25 6 0.81543 1 0.260254
+21 25 7 0.81543 1 0.260254
+21 25 8 0.81543 1 0.260254
+21 25 9 0.81543 1 0.260254
+21 25 10 0.81543 1 0.260254
+21 25 11 0.81543 1 0.260254
+21 25 12 0.81543 1 0.260254
+21 25 13 0.815918 1 0.260254
+21 25 14 0.815918 1 0.260254
+21 25 15 0.813965 1 0.315186
+21 25 16 0.808594 1 0.411133
+21 25 17 0.800293 1 0.50293
+21 25 18 0.787598 1 0.591797
+21 25 19 0.77002 1 0.67627
+21 25 20 0.747559 1 0.753906
+21 25 21 0.720215 1 0.826172
+21 25 22 0.687012 1 0.891113
+21 25 23 0.649414 1 0.945801
+21 25 24 0.606934 1 0.992188
+21 25 25 0.554688 0.98584 1
+21 25 26 0.487549 0.955566 1
+21 25 27 0.399658 0.91748 1
+21 25 28 0.270508 0.875 1
+21 25 29 0 0.831055 1
+21 25 30 0 0.786621 1
+21 25 31 0 0.743652 1
+21 26 0 0.732422 1 0.248047
+21 26 1 0.732422 1 0.248047
+21 26 2 0.732422 1 0.248047
+21 26 3 0.732422 1 0.248047
+21 26 4 0.732422 1 0.248047
+21 26 5 0.732422 1 0.248047
+21 26 6 0.732422 1 0.248047
+21 26 7 0.732422 1 0.248047
+21 26 8 0.732422 1 0.248047
+21 26 9 0.732422 1 0.248047
+21 26 10 0.732422 1 0.248047
+21 26 11 0.732422 1 0.248047
+21 26 12 0.732422 1 0.248047
+21 26 13 0.732422 1 0.248047
+21 26 14 0.73291 1 0.248047
+21 26 15 0.731934 1 0.280273
+21 26 16 0.726562 1 0.380615
+21 26 17 0.718262 1 0.473389
+21 26 18 0.706055 1 0.562012
+21 26 19 0.689453 1 0.646484
+21 26 20 0.667969 1 0.724609
+21 26 21 0.640625 1 0.797363
+21 26 22 0.607422 1 0.863281
+21 26 23 0.568359 1 0.919922
+21 26 24 0.523438 1 0.967773
+21 26 25 0.466309 1 1
+21 26 26 0.389404 1 1
+21 26 27 0.269531 0.969727 1
+21 26 28 0 0.929688 1
+21 26 29 0 0.885742 1
+21 26 30 0 0.839844 1
+21 26 31 0 0.794434 1
+21 27 0 0.63623 1 0.235474
+21 27 1 0.63623 1 0.235474
+21 27 2 0.63623 1 0.235474
+21 27 3 0.63623 1 0.235474
+21 27 4 0.63623 1 0.235474
+21 27 5 0.63623 1 0.235474
+21 27 6 0.63623 1 0.235474
+21 27 7 0.63623 1 0.235474
+21 27 8 0.63623 1 0.235474
+21 27 9 0.63623 1 0.235474
+21 27 10 0.63623 1 0.235474
+21 27 11 0.63623 1 0.235474
+21 27 12 0.63623 1 0.235474
+21 27 13 0.63623 1 0.235474
+21 27 14 0.636719 1 0.235596
+21 27 15 0.636719 1 0.239014
+21 27 16 0.630859 1 0.347168
+21 27 17 0.62207 1 0.441406
+21 27 18 0.609375 1 0.530273
+21 27 19 0.591797 1 0.614258
+21 27 20 0.568359 1 0.691895
+21 27 21 0.539062 1 0.764648
+21 27 22 0.501953 1 0.831543
+21 27 23 0.457031 1 0.88916
+21 27 24 0.402588 1 0.938965
+21 27 25 0.324463 1 0.986328
+21 27 26 0.172607 1 1
+21 27 27 0 1 1
+21 27 28 0 0.980469 1
+21 27 29 0 0.938477 1
+21 27 30 0 0.893066 1
+21 27 31 0 0.846191 1
+21 28 0 0.518066 1 0.222412
+21 28 1 0.518066 1 0.222412
+21 28 2 0.518555 1 0.222412
+21 28 3 0.518555 1 0.222412
+21 28 4 0.518555 1 0.222412
+21 28 5 0.518555 1 0.222412
+21 28 6 0.518555 1 0.222412
+21 28 7 0.518555 1 0.222412
+21 28 8 0.518555 1 0.222412
+21 28 9 0.518555 1 0.222412
+21 28 10 0.518555 1 0.222412
+21 28 11 0.518555 1 0.222412
+21 28 12 0.518555 1 0.222534
+21 28 13 0.519043 1 0.222534
+21 28 14 0.519043 1 0.222534
+21 28 15 0.519531 1 0.222656
+21 28 16 0.51416 1 0.310059
+21 28 17 0.50293 1 0.407227
+21 28 18 0.486572 1 0.496094
+21 28 19 0.464111 1 0.579102
+21 28 20 0.43457 1 0.65625
+21 28 21 0.394531 1 0.728516
+21 28 22 0.340088 1 0.79541
+21 28 23 0.261963 1 0.854004
+21 28 24 0.0395813 1 0.905273
+21 28 25 0 1 0.95459
+21 28 26 0 1 1
+21 28 27 0 1 1
+21 28 28 0 1 1
+21 28 29 0 0.986328 1
+21 28 30 0 0.943359 1
+21 28 31 0 0.896973 1
+21 29 0 0.346924 1 0.208984
+21 29 1 0.346924 1 0.208984
+21 29 2 0.346924 1 0.208984
+21 29 3 0.346924 1 0.208984
+21 29 4 0.346924 1 0.208984
+21 29 5 0.346924 1 0.208984
+21 29 6 0.346924 1 0.208984
+21 29 7 0.346924 1 0.208984
+21 29 8 0.347168 1 0.208984
+21 29 9 0.347168 1 0.208984
+21 29 10 0.347168 1 0.208984
+21 29 11 0.347412 1 0.208984
+21 29 12 0.347656 1 0.208984
+21 29 13 0.348145 1 0.208984
+21 29 14 0.348877 1 0.209106
+21 29 15 0.349854 1 0.209229
+21 29 16 0.34375 1 0.267822
+21 29 17 0.322754 1 0.370117
+21 29 18 0.290771 1 0.459229
+21 29 19 0.239502 1 0.541504
+21 29 20 0.133789 1 0.617676
+21 29 21 0 1 0.688965
+21 29 22 0 1 0.755371
+21 29 23 0 1 0.814453
+21 29 24 0 1 0.866699
+21 29 25 0 1 0.91748
+21 29 26 0 1 0.96582
+21 29 27 0 1 1
+21 29 28 0 1 1
+21 29 29 0 1 1
+21 29 30 0 0.991211 1
+21 29 31 0 0.946777 1
+21 30 0 0 1 0.195068
+21 30 1 0 1 0.195068
+21 30 2 0 1 0.195068
+21 30 3 0 1 0.195068
+21 30 4 0 1 0.195068
+21 30 5 0 1 0.195068
+21 30 6 0 1 0.195068
+21 30 7 0 1 0.195068
+21 30 8 0 1 0.195068
+21 30 9 0 1 0.195068
+21 30 10 0 1 0.195068
+21 30 11 0 1 0.195068
+21 30 12 0 1 0.195068
+21 30 13 0 1 0.195068
+21 30 14 0 1 0.19519
+21 30 15 0 1 0.195312
+21 30 16 0 1 0.217285
+21 30 17 0 1 0.329834
+21 30 18 0 1 0.42041
+21 30 19 0 1 0.501953
+21 30 20 0 1 0.57666
+21 30 21 0 1 0.646973
+21 30 22 0 1 0.711914
+21 30 23 0 1 0.770508
+21 30 24 0 1 0.823242
+21 30 25 0 1 0.875
+21 30 26 0 1 0.925781
+21 30 27 0 1 0.973145
+21 30 28 0 1 1
+21 30 29 0 1 1
+21 30 30 0 1 1
+21 30 31 0 0.994141 1
+21 31 0 0 1 0.180908
+21 31 1 0 1 0.180908
+21 31 2 0 1 0.180908
+21 31 3 0 1 0.180908
+21 31 4 0 1 0.180908
+21 31 5 0 1 0.180908
+21 31 6 0 1 0.180908
+21 31 7 0 1 0.180908
+21 31 8 0 1 0.180908
+21 31 9 0 1 0.180908
+21 31 10 0 1 0.180908
+21 31 11 0 1 0.180908
+21 31 12 0 1 0.18103
+21 31 13 0 1 0.18103
+21 31 14 0 1 0.18103
+21 31 15 0 1 0.181152
+21 31 16 0 1 0.181274
+21 31 17 0 1 0.2854
+21 31 18 0 1 0.379395
+21 31 19 0 1 0.460205
+21 31 20 0 1 0.533691
+21 31 21 0 1 0.602051
+21 31 22 0 1 0.666016
+21 31 23 0 1 0.723633
+21 31 24 0 1 0.776367
+21 31 25 0 1 0.828613
+21 31 26 0 1 0.880859
+21 31 27 0 1 0.931152
+21 31 28 0 1 0.979004
+21 31 29 0 1 1
+21 31 30 0 1 1
+21 31 31 0 1 1
+22 0 0 1 0 0.0630493
+22 0 1 1 0 0.0630493
+22 0 2 1 0 0.0630493
+22 0 3 1 0 0.0630493
+22 0 4 1 0 0.0630493
+22 0 5 1 0 0.0630493
+22 0 6 1 0 0.0629883
+22 0 7 1 0 0.0629272
+22 0 8 1 0 0.0628662
+22 0 9 1 0 0.0626221
+22 0 10 1 0 0.0622253
+22 0 11 1 0 0.0614929
+22 0 12 1 0 0.0602417
+22 0 13 1 0 0.0586548
+22 0 14 1 0 0.0765991
+22 0 15 1 0 0.293701
+22 0 16 1 0 0.421387
+22 0 17 1 0 0.533203
+22 0 18 1 0.0908813 0.650391
+22 0 19 1 0.253418 0.763672
+22 0 20 1 0.323975 0.856445
+22 0 21 1 0.347656 0.926758
+22 0 22 1 0.350342 0.981445
+22 0 23 1 0.350342 1
+22 0 24 1 0.347656 1
+22 0 25 0.946289 0.343018 1
+22 0 26 0.876953 0.33667 1
+22 0 27 0.803223 0.32959 1
+22 0 28 0.727539 0.322266 1
+22 0 29 0.650391 0.315674 1
+22 0 30 0.570801 0.30957 1
+22 0 31 0.485596 0.304443 1
+22 1 0 1 0 0.0630493
+22 1 1 1 0 0.0630493
+22 1 2 1 0 0.0630493
+22 1 3 1 0 0.0630493
+22 1 4 1 0 0.0630493
+22 1 5 1 0 0.0630493
+22 1 6 1 0 0.0629883
+22 1 7 1 0 0.0629272
+22 1 8 1 0 0.0628052
+22 1 9 1 0 0.0626221
+22 1 10 1 0 0.0621948
+22 1 11 1 0 0.0614929
+22 1 12 1 0 0.0602417
+22 1 13 1 0 0.0586243
+22 1 14 1 0 0.0765991
+22 1 15 1 0 0.293701
+22 1 16 1 0 0.421387
+22 1 17 1 0 0.533203
+22 1 18 1 0.0910034 0.650391
+22 1 19 1 0.253418 0.763672
+22 1 20 1 0.323975 0.856445
+22 1 21 1 0.347656 0.926758
+22 1 22 1 0.350342 0.981445
+22 1 23 1 0.350342 1
+22 1 24 1 0.347656 1
+22 1 25 0.946289 0.343018 1
+22 1 26 0.876953 0.33667 1
+22 1 27 0.803223 0.32959 1
+22 1 28 0.727539 0.322266 1
+22 1 29 0.650391 0.315674 1
+22 1 30 0.570801 0.30957 1
+22 1 31 0.485596 0.304443 1
+22 2 0 1 0 0.0630493
+22 2 1 1 0 0.0630493
+22 2 2 1 0 0.0630493
+22 2 3 1 0 0.0630493
+22 2 4 1 0 0.0629883
+22 2 5 1 0 0.0629883
+22 2 6 1 0 0.0629883
+22 2 7 1 0 0.0629272
+22 2 8 1 0 0.0628052
+22 2 9 1 0 0.062561
+22 2 10 1 0 0.0621643
+22 2 11 1 0 0.0614624
+22 2 12 1 0 0.0602112
+22 2 13 1 0 0.0585938
+22 2 14 1 0 0.0765991
+22 2 15 1 0 0.293701
+22 2 16 1 0 0.421387
+22 2 17 1 0 0.533203
+22 2 18 1 0.0913086 0.650391
+22 2 19 1 0.253418 0.763672
+22 2 20 1 0.323975 0.856445
+22 2 21 1 0.347656 0.926758
+22 2 22 1 0.350342 0.981445
+22 2 23 1 0.350342 1
+22 2 24 1 0.347656 1
+22 2 25 0.946289 0.343018 1
+22 2 26 0.876953 0.33667 1
+22 2 27 0.803223 0.32959 1
+22 2 28 0.727539 0.32251 1
+22 2 29 0.650391 0.315674 1
+22 2 30 0.570801 0.30957 1
+22 2 31 0.485596 0.304443 1
+22 3 0 1 0 0.0629883
+22 3 1 1 0 0.0629883
+22 3 2 1 0 0.0629883
+22 3 3 1 0 0.0629883
+22 3 4 1 0 0.0629883
+22 3 5 1 0 0.0629272
+22 3 6 1 0 0.0629272
+22 3 7 1 0 0.0628662
+22 3 8 1 0 0.0627441
+22 3 9 1 0 0.0625
+22 3 10 1 0 0.0621338
+22 3 11 1 0 0.0614014
+22 3 12 1 0 0.0601501
+22 3 13 1 0 0.0585327
+22 3 14 1 0 0.0766602
+22 3 15 1 0 0.293701
+22 3 16 1 0 0.421387
+22 3 17 1 0 0.533203
+22 3 18 1 0.0917969 0.650391
+22 3 19 1 0.253418 0.763672
+22 3 20 1 0.324219 0.856445
+22 3 21 1 0.347656 0.926758
+22 3 22 1 0.350586 0.981445
+22 3 23 1 0.350342 1
+22 3 24 1 0.3479 1
+22 3 25 0.946289 0.343018 1
+22 3 26 0.876953 0.33667 1
+22 3 27 0.803223 0.32959 1
+22 3 28 0.727539 0.32251 1
+22 3 29 0.650391 0.315674 1
+22 3 30 0.570801 0.30957 1
+22 3 31 0.485596 0.304443 1
+22 4 0 1 0 0.0628662
+22 4 1 1 0 0.0628662
+22 4 2 1 0 0.0628662
+22 4 3 1 0 0.0628662
+22 4 4 1 0 0.0628662
+22 4 5 1 0 0.0628662
+22 4 6 1 0 0.0628052
+22 4 7 1 0 0.0627441
+22 4 8 1 0 0.0626221
+22 4 9 1 0 0.0624084
+22 4 10 1 0 0.0620117
+22 4 11 1 0 0.0613098
+22 4 12 1 0 0.0600281
+22 4 13 1 0 0.0584106
+22 4 14 1 0 0.0766602
+22 4 15 1 0 0.293701
+22 4 16 1 0 0.421387
+22 4 17 1 0 0.533203
+22 4 18 1 0.0927124 0.650391
+22 4 19 1 0.253662 0.763672
+22 4 20 1 0.324219 0.856445
+22 4 21 1 0.3479 0.926758
+22 4 22 1 0.350586 0.981445
+22 4 23 1 0.350342 1
+22 4 24 1 0.3479 1
+22 4 25 0.946289 0.343262 1
+22 4 26 0.876953 0.336914 1
+22 4 27 0.803223 0.329834 1
+22 4 28 0.727539 0.32251 1
+22 4 29 0.650391 0.315674 1
+22 4 30 0.570801 0.30957 1
+22 4 31 0.485596 0.304443 1
+22 5 0 1 0 0.0626831
+22 5 1 1 0 0.0626831
+22 5 2 1 0 0.0626831
+22 5 3 1 0 0.0626831
+22 5 4 1 0 0.0626831
+22 5 5 1 0 0.0626221
+22 5 6 1 0 0.0626221
+22 5 7 1 0 0.062561
+22 5 8 1 0 0.062439
+22 5 9 1 0 0.0622253
+22 5 10 1 0 0.0618286
+22 5 11 1 0 0.0610962
+22 5 12 1 0 0.0598145
+22 5 13 1 0 0.058197
+22 5 14 1 0 0.0766602
+22 5 15 1 0 0.293701
+22 5 16 1 0 0.421387
+22 5 17 1 0 0.533203
+22 5 18 1 0.0944824 0.650391
+22 5 19 1 0.25415 0.763672
+22 5 20 1 0.324463 0.856445
+22 5 21 1 0.348145 0.926758
+22 5 22 1 0.35083 0.981445
+22 5 23 1 0.350586 1
+22 5 24 1 0.348145 1
+22 5 25 0.946289 0.343262 1
+22 5 26 0.876953 0.336914 1
+22 5 27 0.803223 0.329834 1
+22 5 28 0.727539 0.32251 1
+22 5 29 0.650391 0.315674 1
+22 5 30 0.570801 0.309814 1
+22 5 31 0.485596 0.304688 1
+22 6 0 1 0 0.0623169
+22 6 1 1 0 0.0623169
+22 6 2 1 0 0.0623169
+22 6 3 1 0 0.0623169
+22 6 4 1 0 0.0622864
+22 6 5 1 0 0.0622864
+22 6 6 1 0 0.0622559
+22 6 7 1 0 0.0621948
+22 6 8 1 0 0.0620728
+22 6 9 1 0 0.0618591
+22 6 10 1 0 0.0614319
+22 6 11 1 0 0.0606995
+22 6 12 1 0 0.0594177
+22 6 13 1 0 0.0577698
+22 6 14 1 0 0.0767212
+22 6 15 1 0 0.293701
+22 6 16 1 0 0.421387
+22 6 17 1 0 0.533203
+22 6 18 1 0.0977173 0.650391
+22 6 19 1 0.254639 0.763672
+22 6 20 1 0.324951 0.856445
+22 6 21 1 0.348389 0.926758
+22 6 22 1 0.351074 0.981445
+22 6 23 1 0.351074 1
+22 6 24 1 0.348389 1
+22 6 25 0.946289 0.343506 1
+22 6 26 0.876953 0.337158 1
+22 6 27 0.803223 0.330078 1
+22 6 28 0.727539 0.322754 1
+22 6 29 0.650391 0.315918 1
+22 6 30 0.570801 0.309814 1
+22 6 31 0.485596 0.304688 1
+22 7 0 1 0 0.0615845
+22 7 1 1 0 0.0615845
+22 7 2 1 0 0.0615845
+22 7 3 1 0 0.061554
+22 7 4 1 0 0.061554
+22 7 5 1 0 0.061554
+22 7 6 1 0 0.0615234
+22 7 7 1 0 0.0614624
+22 7 8 1 0 0.0613403
+22 7 9 1 0 0.0610962
+22 7 10 1 0 0.0606689
+22 7 11 1 0 0.0599365
+22 7 12 1 0 0.0586243
+22 7 13 1 0 0.0569458
+22 7 14 1 0 0.0768433
+22 7 15 1 0 0.293701
+22 7 16 1 0 0.421387
+22 7 17 1 0 0.533203
+22 7 18 1 0.103516 0.650391
+22 7 19 1 0.256104 0.763184
+22 7 20 1 0.325928 0.856445
+22 7 21 1 0.349365 0.926758
+22 7 22 1 0.352051 0.981445
+22 7 23 1 0.351807 1
+22 7 24 1 0.349121 1
+22 7 25 0.946289 0.344238 1
+22 7 26 0.876953 0.337891 1
+22 7 27 0.803223 0.330566 1
+22 7 28 0.727539 0.323242 1
+22 7 29 0.650391 0.316406 1
+22 7 30 0.570312 0.310303 1
+22 7 31 0.485596 0.304932 1
+22 8 0 1 0 0.0600891
+22 8 1 1 0 0.0600891
+22 8 2 1 0 0.0600891
+22 8 3 1 0 0.0600891
+22 8 4 1 0 0.0600891
+22 8 5 1 0 0.0600586
+22 8 6 1 0 0.0600281
+22 8 7 1 0 0.059967
+22 8 8 1 0 0.059845
+22 8 9 1 0 0.0596008
+22 8 10 1 0 0.0591736
+22 8 11 1 0 0.0583801
+22 8 12 1 0 0.0570068
+22 8 13 1 0 0.0552673
+22 8 14 1 0 0.0770874
+22 8 15 1 0 0.293701
+22 8 16 1 0 0.421143
+22 8 17 1 0 0.533203
+22 8 18 1 0.113586 0.650391
+22 8 19 1 0.258545 0.763184
+22 8 20 1 0.327637 0.856445
+22 8 21 1 0.35083 0.926758
+22 8 22 1 0.353516 0.981445
+22 8 23 1 0.353027 1
+22 8 24 1 0.350342 1
+22 8 25 0.945801 0.345459 1
+22 8 26 0.876465 0.338867 1
+22 8 27 0.803223 0.331543 1
+22 8 28 0.727539 0.323975 1
+22 8 29 0.649902 0.317139 1
+22 8 30 0.570312 0.310791 1
+22 8 31 0.485596 0.305664 1
+22 9 0 1 0 0.0570679
+22 9 1 1 0 0.0570679
+22 9 2 1 0 0.0570679
+22 9 3 1 0 0.0570679
+22 9 4 1 0 0.0570374
+22 9 5 1 0 0.0570374
+22 9 6 1 0 0.0570068
+22 9 7 1 0 0.0569153
+22 9 8 1 0 0.0567932
+22 9 9 1 0 0.0565186
+22 9 10 1 0 0.0560608
+22 9 11 1 0 0.0552063
+22 9 12 1 0 0.0537109
+22 9 13 1 0 0.0517578
+22 9 14 1 0 0.0775757
+22 9 15 1 0 0.293701
+22 9 16 1 0 0.420898
+22 9 17 1 0 0.533203
+22 9 18 1 0.129639 0.649902
+22 9 19 1 0.263428 0.763184
+22 9 20 1 0.331055 0.856445
+22 9 21 1 0.354004 0.926758
+22 9 22 1 0.356201 0.981445
+22 9 23 1 0.355713 1
+22 9 24 1 0.352783 1
+22 9 25 0.945801 0.347412 1
+22 9 26 0.876465 0.34082 1
+22 9 27 0.802734 0.333252 1
+22 9 28 0.727539 0.325439 1
+22 9 29 0.649902 0.318359 1
+22 9 30 0.570312 0.312012 1
+22 9 31 0.485352 0.306641 1
+22 10 0 1 0 0.0507812
+22 10 1 1 0 0.0507812
+22 10 2 1 0 0.0507812
+22 10 3 1 0 0.0507812
+22 10 4 1 0 0.0507507
+22 10 5 1 0 0.0507202
+22 10 6 1 0 0.0506897
+22 10 7 1 0 0.0505981
+22 10 8 1 0 0.0504456
+22 10 9 1 0 0.0501404
+22 10 10 1 0 0.0495605
+22 10 11 1 0 0.0484924
+22 10 12 1 0 0.0466309
+22 10 13 1 0 0.0441895
+22 10 14 1 0 0.0786743
+22 10 15 1 0 0.293457
+22 10 16 1 0 0.420654
+22 10 17 1 0 0.532715
+22 10 18 1 0.15271 0.649902
+22 10 19 1 0.271729 0.762695
+22 10 20 1 0.337158 0.856445
+22 10 21 1 0.359375 0.926758
+22 10 22 1 0.361328 0.981445
+22 10 23 1 0.360352 1
+22 10 24 1 0.356934 1
+22 10 25 0.945312 0.351318 1
+22 10 26 0.875977 0.344238 1
+22 10 27 0.802734 0.336426 1
+22 10 28 0.727051 0.328369 1
+22 10 29 0.649414 0.320801 1
+22 10 30 0.569824 0.314209 1
+22 10 31 0.484863 0.308594 1
+22 11 0 1 0 0.0348206
+22 11 1 1 0 0.0348206
+22 11 2 1 0 0.0348206
+22 11 3 1 0 0.0348206
+22 11 4 1 0 0.03479
+22 11 5 1 0 0.0347595
+22 11 6 1 0 0.034668
+22 11 7 1 0 0.0345154
+22 11 8 1 0 0.0342102
+22 11 9 1 0 0.0336304
+22 11 10 1 0 0.0325012
+22 11 11 1 0 0.0303497
+22 11 12 1 0 0.026001
+22 11 13 1 0 0.0184021
+22 11 14 1 0 0.0809937
+22 11 15 1 0 0.293457
+22 11 16 1 0 0.419922
+22 11 17 1 0 0.532715
+22 11 18 1 0.18335 0.648926
+22 11 19 1 0.2854 0.762695
+22 11 20 1 0.347412 0.856445
+22 11 21 1 0.368408 0.926758
+22 11 22 1 0.369873 0.981445
+22 11 23 1 0.368408 1
+22 11 24 1 0.364258 1
+22 11 25 0.944824 0.358154 1
+22 11 26 0.875488 0.350342 1
+22 11 27 0.802246 0.341553 1
+22 11 28 0.726562 0.333008 1
+22 11 29 0.648926 0.324951 1
+22 11 30 0.569336 0.317871 1
+22 11 31 0.484375 0.311768 1
+22 12 0 1 0.138184 0
+22 12 1 1 0.138184 0
+22 12 2 1 0.138184 0
+22 12 3 1 0.138184 0
+22 12 4 1 0.138306 0
+22 12 5 1 0.138306 0
+22 12 6 1 0.13855 0
+22 12 7 1 0.138794 0
+22 12 8 1 0.139404 0
+22 12 9 1 0.140625 0
+22 12 10 1 0.142822 0
+22 12 11 1 0.146362 0
+22 12 12 1 0.152222 0
+22 12 13 1 0.158813 0
+22 12 14 1 0.161499 0.0861206
+22 12 15 1 0.14917 0.293457
+22 12 16 1 0.148926 0.418945
+22 12 17 1 0.157837 0.531738
+22 12 18 1 0.222168 0.647949
+22 12 19 1 0.306641 0.761719
+22 12 20 1 0.36377 0.855957
+22 12 21 1 0.383301 0.926758
+22 12 22 1 0.383789 0.981445
+22 12 23 1 0.381348 1
+22 12 24 1 0.376465 1
+22 12 25 0.943848 0.369141 1
+22 12 26 0.874512 0.360107 1
+22 12 27 0.80127 0.350586 1
+22 12 28 0.725586 0.34082 1
+22 12 29 0.647949 0.332031 1
+22 12 30 0.568359 0.323975 1
+22 12 31 0.483154 0.317139 1
+22 13 0 1 0.224854 0
+22 13 1 1 0.224976 0
+22 13 2 1 0.224976 0
+22 13 3 1 0.224976 0
+22 13 4 1 0.224976 0
+22 13 5 1 0.224976 0
+22 13 6 1 0.225098 0
+22 13 7 1 0.22522 0
+22 13 8 1 0.225464 0
+22 13 9 1 0.226074 0
+22 13 10 1 0.227051 0
+22 13 11 1 0.228882 0
+22 13 12 1 0.231812 0
+22 13 13 1 0.235229 0
+22 13 14 1 0.235474 0.0964966
+22 13 15 1 0.228271 0.293945
+22 13 16 1 0.225952 0.417969
+22 13 17 1 0.231567 0.53125
+22 13 18 1 0.269043 0.645996
+22 13 19 1 0.33667 0.760254
+22 13 20 1 0.388428 0.855469
+22 13 21 1 0.406006 0.926758
+22 13 22 1 0.405029 0.981445
+22 13 23 1 0.401123 1
+22 13 24 1 0.394775 1
+22 13 25 0.942383 0.385986 1
+22 13 26 0.873047 0.375488 1
+22 13 27 0.799316 0.364258 1
+22 13 28 0.723633 0.353271 1
+22 13 29 0.646484 0.342773 1
+22 13 30 0.566895 0.33374 1
+22 13 31 0.481445 0.325684 1
+22 14 0 1 0.30249 0
+22 14 1 1 0.30249 0
+22 14 2 1 0.30249 0
+22 14 3 1 0.30249 0
+22 14 4 1 0.30249 0
+22 14 5 1 0.302734 0
+22 14 6 1 0.302734 0
+22 14 7 1 0.302734 0
+22 14 8 1 0.302979 0
+22 14 9 1 0.303223 0
+22 14 10 1 0.303955 0
+22 14 11 1 0.305176 0
+22 14 12 1 0.307129 0
+22 14 13 1 0.309326 0
+22 14 14 1 0.30835 0.11554
+22 14 15 1 0.302979 0.296143
+22 14 16 1 0.299316 0.416992
+22 14 17 1 0.303955 0.530762
+22 14 18 1 0.324707 0.643555
+22 14 19 1 0.377197 0.757812
+22 14 20 1 0.422852 0.854492
+22 14 21 1 0.438232 0.926758
+22 14 22 1 0.435547 0.981445
+22 14 23 1 0.429932 1
+22 14 24 1 0.421631 1
+22 14 25 0.939941 0.410645 1
+22 14 26 0.870117 0.397949 1
+22 14 27 0.796875 0.384521 1
+22 14 28 0.721191 0.371338 1
+22 14 29 0.644043 0.359131 1
+22 14 30 0.563965 0.348145 1
+22 14 31 0.478516 0.338623 1
+22 15 0 1 0.382568 0
+22 15 1 1 0.382568 0
+22 15 2 1 0.382568 0
+22 15 3 1 0.382568 0
+22 15 4 1 0.382568 0
+22 15 5 1 0.382568 0
+22 15 6 1 0.382568 0
+22 15 7 1 0.382812 0
+22 15 8 1 0.382812 0
+22 15 9 1 0.383057 0
+22 15 10 1 0.383545 0
+22 15 11 1 0.384277 0
+22 15 12 1 0.385742 0
+22 15 13 1 0.387451 0
+22 15 14 1 0.385742 0.145752
+22 15 15 1 0.381592 0.30249
+22 15 16 1 0.376953 0.417969
+22 15 17 1 0.379639 0.530762
+22 15 18 1 0.388916 0.639648
+22 15 19 1 0.427979 0.753906
+22 15 20 1 0.467773 0.853027
+22 15 21 1 0.480957 0.92627
+22 15 22 1 0.476562 0.981445
+22 15 23 1 0.46875 1
+22 15 24 0.998535 0.458008 1
+22 15 25 0.935547 0.444336 1
+22 15 26 0.866211 0.428711 1
+22 15 27 0.79248 0.412598 1
+22 15 28 0.717285 0.396729 1
+22 15 29 0.639648 0.38208 1
+22 15 30 0.560059 0.368652 1
+22 15 31 0.474121 0.356934 1
+22 16 0 1 0.468506 0
+22 16 1 1 0.468506 0
+22 16 2 1 0.468506 0
+22 16 3 1 0.468506 0
+22 16 4 1 0.468506 0
+22 16 5 1 0.468506 0
+22 16 6 1 0.468506 0
+22 16 7 1 0.468506 0
+22 16 8 1 0.46875 0
+22 16 9 1 0.46875 0
+22 16 10 1 0.469238 0
+22 16 11 1 0.469727 0
+22 16 12 1 0.470703 0
+22 16 13 1 0.472168 0
+22 16 14 1 0.470459 0.1875
+22 16 15 1 0.467041 0.316895
+22 16 16 1 0.462158 0.423584
+22 16 17 1 0.45874 0.528809
+22 16 18 1 0.463379 0.63623
+22 16 19 1 0.488037 0.747559
+22 16 20 1 0.522949 0.849609
+22 16 21 1 0.534668 0.924805
+22 16 22 1 0.52832 0.980469
+22 16 23 1 0.518066 1
+22 16 24 0.992676 0.504395 1
+22 16 25 0.929199 0.487549 1
+22 16 26 0.859863 0.468506 1
+22 16 27 0.786133 0.448975 1
+22 16 28 0.710938 0.429932 1
+22 16 29 0.633789 0.412354 1
+22 16 30 0.553711 0.39624 1
+22 16 31 0.467285 0.381836 1
+22 17 0 1 0.558594 0
+22 17 1 1 0.558594 0
+22 17 2 1 0.558594 0
+22 17 3 1 0.558594 0
+22 17 4 1 0.558594 0
+22 17 5 1 0.558594 0
+22 17 6 1 0.558594 0
+22 17 7 1 0.558594 0
+22 17 8 1 0.558594 0
+22 17 9 1 0.559082 0
+22 17 10 1 0.559082 0
+22 17 11 1 0.55957 0
+22 17 12 1 0.560059 0.0267487
+22 17 13 1 0.561523 0.0424805
+22 17 14 1 0.560547 0.236084
+22 17 15 1 0.558105 0.341309
+22 17 16 1 0.553711 0.437988
+22 17 17 1 0.547363 0.533691
+22 17 18 1 0.545898 0.634277
+22 17 19 1 0.555664 0.73877
+22 17 20 1 0.584473 0.843262
+22 17 21 1 0.59668 0.922852
+22 17 22 1 0.588379 0.979004
+22 17 23 1 0.575195 1
+22 17 24 0.98291 0.558594 1
+22 17 25 0.919922 0.538086 1
+22 17 26 0.850098 0.515625 1
+22 17 27 0.777344 0.492676 1
+22 17 28 0.702148 0.470215 1
+22 17 29 0.625488 0.449219 1
+22 17 30 0.54541 0.429932 1
+22 17 31 0.457764 0.412598 1
+22 18 0 1 0.650391 0.206665
+22 18 1 1 0.650391 0.206665
+22 18 2 1 0.650391 0.206665
+22 18 3 1 0.650391 0.206665
+22 18 4 1 0.650391 0.206665
+22 18 5 1 0.650391 0.206665
+22 18 6 1 0.650391 0.206665
+22 18 7 1 0.650391 0.206665
+22 18 8 1 0.650879 0.206665
+22 18 9 1 0.650879 0.206787
+22 18 10 1 0.650879 0.207031
+22 18 11 1 0.651367 0.207275
+22 18 12 1 0.651855 0.207764
+22 18 13 1 0.652832 0.208618
+22 18 14 1 0.652832 0.283447
+22 18 15 1 0.651367 0.372314
+22 18 16 1 0.648438 0.460693
+22 18 17 1 0.64209 0.548828
+22 18 18 1 0.633301 0.636719
+22 18 19 1 0.631836 0.731934
+22 18 20 1 0.648926 0.833008
+22 18 21 1 0.663086 0.917969
+22 18 22 1 0.65332 0.976074
+22 18 23 1 0.638184 1
+22 18 24 0.969238 0.618164 1
+22 18 25 0.90625 0.594238 1
+22 18 26 0.837402 0.567871 1
+22 18 27 0.765137 0.541016 1
+22 18 28 0.690918 0.515625 1
+22 18 29 0.614258 0.491211 1
+22 18 30 0.533691 0.46875 1
+22 18 31 0.444824 0.448486 1
+22 19 0 1 0.740234 0.271484
+22 19 1 1 0.740234 0.271484
+22 19 2 1 0.740234 0.271484
+22 19 3 1 0.740234 0.271484
+22 19 4 1 0.740234 0.271484
+22 19 5 1 0.740234 0.271484
+22 19 6 1 0.740234 0.271484
+22 19 7 1 0.740234 0.271484
+22 19 8 1 0.740234 0.271484
+22 19 9 1 0.740234 0.271484
+22 19 10 1 0.740234 0.271729
+22 19 11 1 0.740723 0.271729
+22 19 12 1 0.741211 0.271973
+22 19 13 1 0.741699 0.272461
+22 19 14 1 0.742188 0.319336
+22 19 15 1 0.742188 0.399902
+22 19 16 1 0.740723 0.484375
+22 19 17 1 0.736328 0.569336
+22 19 18 1 0.727051 0.651855
+22 19 19 1 0.714844 0.730957
+22 19 20 1 0.714355 0.818848
+22 19 21 1 0.729004 0.910645
+22 19 22 1 0.719727 0.970703
+22 19 23 1 0.702148 1
+22 19 24 0.950684 0.678711 1
+22 19 25 0.888184 0.651367 1
+22 19 26 0.820312 0.621582 1
+22 19 27 0.749512 0.592285 1
+22 19 28 0.67627 0.563477 1
+22 19 29 0.600098 0.536621 1
+22 19 30 0.519043 0.51123 1
+22 19 31 0.427979 0.488037 1
+22 20 0 1 0.822266 0.30542
+22 20 1 1 0.822266 0.30542
+22 20 2 1 0.822266 0.30542
+22 20 3 1 0.822266 0.30542
+22 20 4 1 0.822266 0.30542
+22 20 5 1 0.822266 0.30542
+22 20 6 1 0.822266 0.30542
+22 20 7 1 0.822266 0.30542
+22 20 8 1 0.822266 0.30542
+22 20 9 1 0.822266 0.30542
+22 20 10 1 0.822266 0.30542
+22 20 11 1 0.822754 0.30542
+22 20 12 1 0.823242 0.305664
+22 20 13 1 0.82373 0.305664
+22 20 14 1 0.824219 0.335693
+22 20 15 1 0.824707 0.414307
+22 20 16 1 0.824707 0.498291
+22 20 17 1 0.822266 0.584473
+22 20 18 1 0.815918 0.667969
+22 20 19 1 0.804199 0.744629
+22 20 20 1 0.787598 0.813477
+22 20 21 1 0.789551 0.896973
+22 20 22 1 0.783691 0.962891
+22 20 23 0.981934 0.763672 1
+22 20 24 0.926758 0.736816 1
+22 20 25 0.865723 0.706543 1
+22 20 26 0.799805 0.675293 1
+22 20 27 0.730957 0.643555 1
+22 20 28 0.65918 0.612793 1
+22 20 29 0.583496 0.583496 1
+22 20 30 0.501465 0.555664 1
+22 20 31 0.406738 0.529297 1
+22 21 0 1 0.895508 0.316162
+22 21 1 1 0.895508 0.316162
+22 21 2 1 0.895508 0.316162
+22 21 3 1 0.895508 0.316162
+22 21 4 1 0.895508 0.316162
+22 21 5 1 0.895508 0.316162
+22 21 6 1 0.895508 0.316162
+22 21 7 1 0.895508 0.316162
+22 21 8 1 0.895508 0.316162
+22 21 9 1 0.895508 0.316162
+22 21 10 1 0.895508 0.316162
+22 21 11 1 0.895996 0.316162
+22 21 12 1 0.895996 0.316162
+22 21 13 1 0.896484 0.316162
+22 21 14 1 0.896973 0.331299
+22 21 15 1 0.898438 0.411621
+22 21 16 1 0.898926 0.49707
+22 21 17 1 0.897949 0.585449
+22 21 18 1 0.894043 0.672363
+22 21 19 1 0.885742 0.753418
+22 21 20 1 0.871094 0.823242
+22 21 21 1 0.850098 0.882812
+22 21 22 0.998047 0.844727 0.952148
+22 21 23 0.950684 0.820801 0.992676
+22 21 24 0.896973 0.791992 1
+22 21 25 0.838867 0.76123 1
+22 21 26 0.776855 0.729492 1
+22 21 27 0.710449 0.696777 1
+22 21 28 0.640137 0.664551 1
+22 21 29 0.563965 0.632812 1
+22 21 30 0.47998 0.602051 1
+22 21 31 0.379395 0.573242 1
+22 22 0 1 0.956055 0.3125
+22 22 1 1 0.956055 0.3125
+22 22 2 1 0.956055 0.3125
+22 22 3 1 0.956055 0.3125
+22 22 4 1 0.956055 0.3125
+22 22 5 1 0.956055 0.3125
+22 22 6 1 0.956055 0.3125
+22 22 7 1 0.956055 0.3125
+22 22 8 1 0.956055 0.3125
+22 22 9 1 0.956055 0.3125
+22 22 10 1 0.956055 0.3125
+22 22 11 1 0.956055 0.3125
+22 22 12 1 0.956543 0.3125
+22 22 13 1 0.956543 0.3125
+22 22 14 1 0.957031 0.3125
+22 22 15 1 0.958496 0.395508
+22 22 16 1 0.959473 0.483154
+22 22 17 1 0.959473 0.572754
+22 22 18 1 0.957031 0.661133
+22 22 19 1 0.950195 0.744629
+22 22 20 1 0.938965 0.819336
+22 22 21 1 0.922363 0.884766
+22 22 22 0.962402 0.900391 0.938477
+22 22 23 0.915039 0.874512 0.978027
+22 22 24 0.866699 0.847168 1
+22 22 25 0.8125 0.817383 1
+22 22 26 0.75293 0.785156 1
+22 22 27 0.6875 0.750977 1
+22 22 28 0.617188 0.716309 1
+22 22 29 0.539551 0.681641 1
+22 22 30 0.45166 0.647949 1
+22 22 31 0.341553 0.615723 1
+22 23 0 1 1 0.304199
+22 23 1 1 1 0.304199
+22 23 2 1 1 0.304199
+22 23 3 1 1 0.304199
+22 23 4 1 1 0.304199
+22 23 5 1 1 0.304199
+22 23 6 1 1 0.304199
+22 23 7 1 1 0.304199
+22 23 8 1 1 0.304199
+22 23 9 1 1 0.304199
+22 23 10 1 1 0.304199
+22 23 11 1 1 0.304199
+22 23 12 1 1 0.304199
+22 23 13 1 1 0.304199
+22 23 14 1 1 0.304199
+22 23 15 1 1 0.373291
+22 23 16 1 1 0.462402
+22 23 17 1 1 0.552734
+22 23 18 1 1 0.641113
+22 23 19 1 0.995605 0.724121
+22 23 20 0.992188 0.984863 0.798828
+22 23 21 0.958496 0.967773 0.864258
+22 23 22 0.922363 0.949219 0.921875
+22 23 23 0.886719 0.933594 0.974609
+22 23 24 0.841797 0.907715 1
+22 23 25 0.787598 0.875488 1
+22 23 26 0.728027 0.840332 1
+22 23 27 0.662109 0.803711 1
+22 23 28 0.590332 0.766602 1
+22 23 29 0.510742 0.729004 1
+22 23 30 0.417236 0.692383 1
+22 23 31 0.291504 0.657227 1
+22 24 0 1 1 0.294189
+22 24 1 1 1 0.294189
+22 24 2 1 1 0.294189
+22 24 3 1 1 0.294189
+22 24 4 1 1 0.294189
+22 24 5 1 1 0.294189
+22 24 6 1 1 0.294189
+22 24 7 1 1 0.294189
+22 24 8 1 1 0.294189
+22 24 9 1 1 0.294189
+22 24 10 1 1 0.294189
+22 24 11 1 1 0.294189
+22 24 12 1 1 0.294189
+22 24 13 1 1 0.294189
+22 24 14 1 1 0.294189
+22 24 15 1 1 0.348145
+22 24 16 0.99707 1 0.438965
+22 24 17 0.990234 1 0.528809
+22 24 18 0.979004 1 0.617188
+22 24 19 0.961914 1 0.699707
+22 24 20 0.938477 1 0.774902
+22 24 21 0.909668 1 0.842285
+22 24 22 0.87793 0.991699 0.903809
+22 24 23 0.845215 0.977051 0.958008
+22 24 24 0.808105 0.958984 1
+22 24 25 0.760742 0.932617 1
+22 24 26 0.70166 0.896973 1
+22 24 27 0.635254 0.85791 1
+22 24 28 0.561035 0.817871 1
+22 24 29 0.477051 0.777344 1
+22 24 30 0.374512 0.737793 1
+22 24 31 0.213379 0.699219 1
+22 25 0 0.935547 1 0.282715
+22 25 1 0.935547 1 0.282715
+22 25 2 0.935547 1 0.282715
+22 25 3 0.935547 1 0.282715
+22 25 4 0.935547 1 0.282715
+22 25 5 0.935547 1 0.282715
+22 25 6 0.935547 1 0.282715
+22 25 7 0.935547 1 0.282715
+22 25 8 0.935547 1 0.282715
+22 25 9 0.935547 1 0.282715
+22 25 10 0.935547 1 0.282715
+22 25 11 0.935547 1 0.282715
+22 25 12 0.935547 1 0.282715
+22 25 13 0.935547 1 0.282715
+22 25 14 0.935059 1 0.282715
+22 25 15 0.93457 1 0.319092
+22 25 16 0.930664 1 0.412109
+22 25 17 0.924316 1 0.502441
+22 25 18 0.913574 1 0.589844
+22 25 19 0.898438 1 0.672852
+22 25 20 0.878418 1 0.748535
+22 25 21 0.853516 1 0.818359
+22 25 22 0.825195 1 0.882324
+22 25 23 0.793945 1 0.9375
+22 25 24 0.758789 1 0.984375
+22 25 25 0.716797 0.981445 1
+22 25 26 0.663086 0.952148 1
+22 25 27 0.597656 0.914551 1
+22 25 28 0.521484 0.873047 1
+22 25 29 0.430176 0.830078 1
+22 25 30 0.308838 0.787598 1
+22 25 31 0 0.745605 1
+22 26 0 0.859863 1 0.270264
+22 26 1 0.859863 1 0.270264
+22 26 2 0.859863 1 0.270264
+22 26 3 0.859863 1 0.270264
+22 26 4 0.859863 1 0.270264
+22 26 5 0.859863 1 0.270264
+22 26 6 0.859863 1 0.270264
+22 26 7 0.859863 1 0.270264
+22 26 8 0.859863 1 0.270264
+22 26 9 0.859863 1 0.270264
+22 26 10 0.859863 1 0.270264
+22 26 11 0.859863 1 0.270264
+22 26 12 0.859863 1 0.270264
+22 26 13 0.859863 1 0.270264
+22 26 14 0.859863 1 0.270264
+22 26 15 0.859375 1 0.2854
+22 26 16 0.855957 1 0.382324
+22 26 17 0.850098 1 0.473389
+22 26 18 0.84082 1 0.560547
+22 26 19 0.827148 1 0.643066
+22 26 20 0.80957 1 0.719727
+22 26 21 0.787109 1 0.791016
+22 26 22 0.760742 1 0.855957
+22 26 23 0.730957 1 0.912598
+22 26 24 0.697266 1 0.961426
+22 26 25 0.65625 1 1
+22 26 26 0.605469 0.999512 1
+22 26 27 0.541504 0.967773 1
+22 26 28 0.461182 0.928711 1
+22 26 29 0.355957 0.885254 1
+22 26 30 0.164551 0.840332 1
+22 26 31 0 0.79541 1
+22 27 0 0.775391 1 0.257324
+22 27 1 0.775391 1 0.257324
+22 27 2 0.775391 1 0.257324
+22 27 3 0.775391 1 0.257324
+22 27 4 0.775391 1 0.257324
+22 27 5 0.775391 1 0.257324
+22 27 6 0.775391 1 0.257324
+22 27 7 0.775391 1 0.257324
+22 27 8 0.775391 1 0.257324
+22 27 9 0.775391 1 0.257324
+22 27 10 0.775391 1 0.257324
+22 27 11 0.775391 1 0.257324
+22 27 12 0.775879 1 0.257324
+22 27 13 0.775879 1 0.257324
+22 27 14 0.775879 1 0.257324
+22 27 15 0.775879 1 0.257324
+22 27 16 0.772461 1 0.349609
+22 27 17 0.766602 1 0.441895
+22 27 18 0.757812 1 0.529297
+22 27 19 0.745605 1 0.611328
+22 27 20 0.729004 1 0.687988
+22 27 21 0.708008 1 0.759766
+22 27 22 0.682617 1 0.825684
+22 27 23 0.65332 1 0.883301
+22 27 24 0.619629 1 0.933594
+22 27 25 0.577637 1 0.981445
+22 27 26 0.524902 1 1
+22 27 27 0.456543 1 1
+22 27 28 0.363281 0.979492 1
+22 27 29 0.199585 0.938477 1
+22 27 30 0 0.893555 1
+22 27 31 0 0.847168 1
+22 28 0 0.680176 1 0.243774
+22 28 1 0.680176 1 0.243774
+22 28 2 0.680176 1 0.243774
+22 28 3 0.680176 1 0.243774
+22 28 4 0.680176 1 0.243774
+22 28 5 0.680176 1 0.243774
+22 28 6 0.680176 1 0.243774
+22 28 7 0.680176 1 0.243774
+22 28 8 0.680176 1 0.243774
+22 28 9 0.680176 1 0.243774
+22 28 10 0.680176 1 0.243774
+22 28 11 0.680176 1 0.243774
+22 28 12 0.680176 1 0.243896
+22 28 13 0.680176 1 0.243896
+22 28 14 0.680176 1 0.243896
+22 28 15 0.680664 1 0.243896
+22 28 16 0.677734 1 0.313477
+22 28 17 0.671875 1 0.408447
+22 28 18 0.662598 1 0.495605
+22 28 19 0.649902 1 0.577637
+22 28 20 0.632812 1 0.65332
+22 28 21 0.611816 1 0.725098
+22 28 22 0.585449 1 0.791016
+22 28 23 0.554199 1 0.849609
+22 28 24 0.518066 1 0.900879
+22 28 25 0.471191 1 0.950684
+22 28 26 0.408447 1 0.99707
+22 28 27 0.31665 1 1
+22 28 28 0.0883789 1 1
+22 28 29 0 0.986328 1
+22 28 30 0 0.943848 1
+22 28 31 0 0.897949 1
+22 29 0 0.565918 1 0.229858
+22 29 1 0.565918 1 0.229858
+22 29 2 0.565918 1 0.229858
+22 29 3 0.565918 1 0.229858
+22 29 4 0.565918 1 0.229858
+22 29 5 0.565918 1 0.229858
+22 29 6 0.565918 1 0.229858
+22 29 7 0.565918 1 0.229858
+22 29 8 0.565918 1 0.229858
+22 29 9 0.565918 1 0.229858
+22 29 10 0.565918 1 0.229858
+22 29 11 0.565918 1 0.229858
+22 29 12 0.566406 1 0.229858
+22 29 13 0.566406 1 0.229858
+22 29 14 0.566406 1 0.229858
+22 29 15 0.566895 1 0.22998
+22 29 16 0.56543 1 0.271973
+22 29 17 0.557617 1 0.371826
+22 29 18 0.546387 1 0.459717
+22 29 19 0.531738 1 0.541016
+22 29 20 0.511719 1 0.616211
+22 29 21 0.486328 1 0.687012
+22 29 22 0.454102 1 0.75293
+22 29 23 0.414551 1 0.811523
+22 29 24 0.365234 1 0.86377
+22 29 25 0.291992 1 0.914551
+22 29 26 0.129883 1 0.962891
+22 29 27 0 1 1
+22 29 28 0 1 1
+22 29 29 0 1 1
+22 29 30 0 0.991699 1
+22 29 31 0 0.947754 1
+22 30 0 0.414795 1 0.215332
+22 30 1 0.414795 1 0.215332
+22 30 2 0.414795 1 0.215332
+22 30 3 0.414795 1 0.215332
+22 30 4 0.414795 1 0.215332
+22 30 5 0.414795 1 0.215332
+22 30 6 0.414795 1 0.215332
+22 30 7 0.414795 1 0.215332
+22 30 8 0.414795 1 0.215332
+22 30 9 0.415039 1 0.215454
+22 30 10 0.415039 1 0.215454
+22 30 11 0.415039 1 0.215454
+22 30 12 0.415283 1 0.215454
+22 30 13 0.415527 1 0.215454
+22 30 14 0.416016 1 0.215454
+22 30 15 0.416504 1 0.215576
+22 30 16 0.416992 1 0.2229
+22 30 17 0.404785 1 0.332275
+22 30 18 0.387451 1 0.421631
+22 30 19 0.363037 1 0.501953
+22 30 20 0.32959 1 0.576172
+22 30 21 0.28125 1 0.645508
+22 30 22 0.202026 1 0.710449
+22 30 23 0 1 0.769043
+22 30 24 0 1 0.821289
+22 30 25 0 1 0.873047
+22 30 26 0 1 0.92334
+22 30 27 0 1 0.97168
+22 30 28 0 1 1
+22 30 29 0 1 1
+22 30 30 0 1 1
+22 30 31 0 0.995117 1
+22 31 0 0 1 0.200806
+22 31 1 0 1 0.200806
+22 31 2 0 1 0.200806
+22 31 3 0 1 0.200806
+22 31 4 0 1 0.200806
+22 31 5 0 1 0.200806
+22 31 6 0 1 0.200806
+22 31 7 0 1 0.200806
+22 31 8 0 1 0.200806
+22 31 9 0 1 0.200806
+22 31 10 0 1 0.200806
+22 31 11 0 1 0.200806
+22 31 12 0 1 0.200806
+22 31 13 0 1 0.200928
+22 31 14 0 1 0.200928
+22 31 15 0 1 0.20105
+22 31 16 0 1 0.20105
+22 31 17 0 1 0.288818
+22 31 18 0 1 0.381104
+22 31 19 0 1 0.461426
+22 31 20 0 1 0.533691
+22 31 21 0 1 0.602051
+22 31 22 0 1 0.665527
+22 31 23 0 1 0.723145
+22 31 24 0 1 0.775391
+22 31 25 0 1 0.827637
+22 31 26 0 1 0.879395
+22 31 27 0 1 0.930176
+22 31 28 0 1 0.978027
+22 31 29 0 1 1
+22 31 30 0 1 1
+22 31 31 0 1 1
+23 0 0 1 0 0.0662231
+23 0 1 1 0 0.0662231
+23 0 2 1 0 0.0662231
+23 0 3 1 0 0.0662231
+23 0 4 1 0 0.0662231
+23 0 5 1 0 0.0662231
+23 0 6 1 0 0.0662231
+23 0 7 1 0 0.0661621
+23 0 8 1 0 0.06604
+23 0 9 1 0 0.0658569
+23 0 10 1 0 0.0654907
+23 0 11 1 0 0.0648804
+23 0 12 1 0 0.0638428
+23 0 13 1 0 0.0620422
+23 0 14 1 0 0.060791
+23 0 15 1 0 0.243164
+23 0 16 1 0 0.384033
+23 0 17 1 0 0.501465
+23 0 18 1 0 0.614258
+23 0 19 1 0.177734 0.725098
+23 0 20 1 0.288574 0.823242
+23 0 21 1 0.343018 0.901855
+23 0 22 1 0.358643 0.961914
+23 0 23 1 0.359863 1
+23 0 24 1 0.359131 1
+23 0 25 1 0.356201 1
+23 0 26 0.975098 0.35083 1
+23 0 27 0.90332 0.343994 1
+23 0 28 0.828125 0.336426 1
+23 0 29 0.750977 0.328857 1
+23 0 30 0.671875 0.321777 1
+23 0 31 0.59082 0.315186 1
+23 1 0 1 0 0.0662231
+23 1 1 1 0 0.0662231
+23 1 2 1 0 0.0662231
+23 1 3 1 0 0.0662231
+23 1 4 1 0 0.0662231
+23 1 5 1 0 0.0662231
+23 1 6 1 0 0.0661621
+23 1 7 1 0 0.0661621
+23 1 8 1 0 0.06604
+23 1 9 1 0 0.0658569
+23 1 10 1 0 0.0654907
+23 1 11 1 0 0.0648804
+23 1 12 1 0 0.0638428
+23 1 13 1 0 0.0620117
+23 1 14 1 0 0.060791
+23 1 15 1 0 0.243164
+23 1 16 1 0 0.384033
+23 1 17 1 0 0.501465
+23 1 18 1 0 0.614258
+23 1 19 1 0.177734 0.725098
+23 1 20 1 0.288574 0.823242
+23 1 21 1 0.343018 0.901855
+23 1 22 1 0.358643 0.961914
+23 1 23 1 0.359863 1
+23 1 24 1 0.359131 1
+23 1 25 1 0.356201 1
+23 1 26 0.975098 0.35083 1
+23 1 27 0.90332 0.343994 1
+23 1 28 0.828125 0.336426 1
+23 1 29 0.750977 0.328857 1
+23 1 30 0.671875 0.321777 1
+23 1 31 0.59082 0.315186 1
+23 2 0 1 0 0.0662231
+23 2 1 1 0 0.0662231
+23 2 2 1 0 0.0662231
+23 2 3 1 0 0.0662231
+23 2 4 1 0 0.0662231
+23 2 5 1 0 0.0661621
+23 2 6 1 0 0.0661621
+23 2 7 1 0 0.0661011
+23 2 8 1 0 0.06604
+23 2 9 1 0 0.0657959
+23 2 10 1 0 0.0654907
+23 2 11 1 0 0.0648804
+23 2 12 1 0 0.0637817
+23 2 13 1 0 0.0619812
+23 2 14 1 0 0.0607605
+23 2 15 1 0 0.243164
+23 2 16 1 0 0.384033
+23 2 17 1 0 0.501465
+23 2 18 1 0 0.614258
+23 2 19 1 0.177856 0.725098
+23 2 20 1 0.288574 0.823242
+23 2 21 1 0.343018 0.901855
+23 2 22 1 0.358643 0.961914
+23 2 23 1 0.359863 1
+23 2 24 1 0.359131 1
+23 2 25 1 0.356201 1
+23 2 26 0.975098 0.35083 1
+23 2 27 0.90332 0.343994 1
+23 2 28 0.828125 0.336426 1
+23 2 29 0.750977 0.328857 1
+23 2 30 0.671875 0.321777 1
+23 2 31 0.59082 0.315186 1
+23 3 0 1 0 0.0661621
+23 3 1 1 0 0.0661621
+23 3 2 1 0 0.0661621
+23 3 3 1 0 0.0661621
+23 3 4 1 0 0.0661621
+23 3 5 1 0 0.0661621
+23 3 6 1 0 0.0661011
+23 3 7 1 0 0.06604
+23 3 8 1 0 0.065979
+23 3 9 1 0 0.0657959
+23 3 10 1 0 0.0654297
+23 3 11 1 0 0.0648193
+23 3 12 1 0 0.0637817
+23 3 13 1 0 0.0619507
+23 3 14 1 0 0.0606995
+23 3 15 1 0 0.243164
+23 3 16 1 0 0.384033
+23 3 17 1 0 0.501465
+23 3 18 1 0 0.614258
+23 3 19 1 0.177979 0.725098
+23 3 20 1 0.288574 0.823242
+23 3 21 1 0.343018 0.901855
+23 3 22 1 0.358643 0.961914
+23 3 23 1 0.359863 1
+23 3 24 1 0.359131 1
+23 3 25 1 0.356201 1
+23 3 26 0.975098 0.35083 1
+23 3 27 0.90332 0.343994 1
+23 3 28 0.828125 0.33667 1
+23 3 29 0.750977 0.328857 1
+23 3 30 0.671875 0.321777 1
+23 3 31 0.59082 0.315186 1
+23 4 0 1 0 0.0661011
+23 4 1 1 0 0.0661011
+23 4 2 1 0 0.0661011
+23 4 3 1 0 0.0661011
+23 4 4 1 0 0.06604
+23 4 5 1 0 0.06604
+23 4 6 1 0 0.06604
+23 4 7 1 0 0.065979
+23 4 8 1 0 0.0658569
+23 4 9 1 0 0.0656738
+23 4 10 1 0 0.0653687
+23 4 11 1 0 0.0647583
+23 4 12 1 0 0.0636597
+23 4 13 1 0 0.0618591
+23 4 14 1 0 0.0606079
+23 4 15 1 0 0.243164
+23 4 16 1 0 0.384033
+23 4 17 1 0 0.501465
+23 4 18 1 0 0.614258
+23 4 19 1 0.178345 0.725098
+23 4 20 1 0.288818 0.823242
+23 4 21 1 0.343018 0.901855
+23 4 22 1 0.358887 0.961914
+23 4 23 1 0.360107 1
+23 4 24 1 0.359375 1
+23 4 25 1 0.356201 1
+23 4 26 0.975098 0.351074 1
+23 4 27 0.90332 0.344238 1
+23 4 28 0.828125 0.33667 1
+23 4 29 0.750977 0.328857 1
+23 4 30 0.671875 0.321777 1
+23 4 31 0.59082 0.315186 1
+23 5 0 1 0 0.065918
+23 5 1 1 0 0.065918
+23 5 2 1 0 0.065918
+23 5 3 1 0 0.065918
+23 5 4 1 0 0.065918
+23 5 5 1 0 0.065918
+23 5 6 1 0 0.0658569
+23 5 7 1 0 0.0657959
+23 5 8 1 0 0.0657349
+23 5 9 1 0 0.0655518
+23 5 10 1 0 0.0651855
+23 5 11 1 0 0.0645752
+23 5 12 1 0 0.0634766
+23 5 13 1 0 0.061676
+23 5 14 1 0 0.0604248
+23 5 15 1 0 0.243164
+23 5 16 1 0 0.384033
+23 5 17 1 0 0.501465
+23 5 18 1 0 0.614258
+23 5 19 1 0.178833 0.725098
+23 5 20 1 0.289062 0.823242
+23 5 21 1 0.343262 0.901855
+23 5 22 1 0.358887 0.961914
+23 5 23 1 0.360107 1
+23 5 24 1 0.359375 1
+23 5 25 1 0.356445 1
+23 5 26 0.975098 0.351074 1
+23 5 27 0.90332 0.344238 1
+23 5 28 0.828125 0.33667 1
+23 5 29 0.750488 0.329102 1
+23 5 30 0.671875 0.321777 1
+23 5 31 0.59082 0.31543 1
+23 6 0 1 0 0.0656128
+23 6 1 1 0 0.0656128
+23 6 2 1 0 0.0656128
+23 6 3 1 0 0.0656128
+23 6 4 1 0 0.0656128
+23 6 5 1 0 0.0655518
+23 6 6 1 0 0.0655518
+23 6 7 1 0 0.0654907
+23 6 8 1 0 0.0653687
+23 6 9 1 0 0.0651855
+23 6 10 1 0 0.0648804
+23 6 11 1 0 0.064209
+23 6 12 1 0 0.0631714
+23 6 13 1 0 0.0613098
+23 6 14 1 0 0.0600586
+23 6 15 1 0 0.243164
+23 6 16 1 0 0.384033
+23 6 17 1 0 0.501465
+23 6 18 1 0 0.61377
+23 6 19 1 0.179932 0.725098
+23 6 20 1 0.289551 0.823242
+23 6 21 1 0.34375 0.901855
+23 6 22 1 0.359375 0.961914
+23 6 23 1 0.360596 1
+23 6 24 1 0.359863 1
+23 6 25 1 0.356689 1
+23 6 26 0.975098 0.351318 1
+23 6 27 0.90332 0.344482 1
+23 6 28 0.828125 0.336914 1
+23 6 29 0.750488 0.329346 1
+23 6 30 0.671875 0.322021 1
+23 6 31 0.59082 0.31543 1
+23 7 0 1 0 0.0650024
+23 7 1 1 0 0.0649414
+23 7 2 1 0 0.0649414
+23 7 3 1 0 0.0649414
+23 7 4 1 0 0.0649414
+23 7 5 1 0 0.0649414
+23 7 6 1 0 0.0649414
+23 7 7 1 0 0.0648804
+23 7 8 1 0 0.0647583
+23 7 9 1 0 0.0645752
+23 7 10 1 0 0.064209
+23 7 11 1 0 0.0635986
+23 7 12 1 0 0.0624695
+23 7 13 1 0 0.0606079
+23 7 14 1 0 0.0593262
+23 7 15 1 0 0.243164
+23 7 16 1 0 0.384033
+23 7 17 1 0 0.501465
+23 7 18 1 0 0.61377
+23 7 19 1 0.182007 0.725098
+23 7 20 1 0.290527 0.822754
+23 7 21 1 0.344482 0.901855
+23 7 22 1 0.360107 0.961914
+23 7 23 1 0.361084 1
+23 7 24 1 0.360352 1
+23 7 25 1 0.357178 1
+23 7 26 0.975098 0.351807 1
+23 7 27 0.90332 0.344971 1
+23 7 28 0.828125 0.337402 1
+23 7 29 0.750488 0.32959 1
+23 7 30 0.671875 0.322266 1
+23 7 31 0.59082 0.315674 1
+23 8 0 1 0 0.0637207
+23 8 1 1 0 0.0637207
+23 8 2 1 0 0.0637207
+23 8 3 1 0 0.0637207
+23 8 4 1 0 0.0637207
+23 8 5 1 0 0.0636597
+23 8 6 1 0 0.0636597
+23 8 7 1 0 0.0635986
+23 8 8 1 0 0.0634766
+23 8 9 1 0 0.0632935
+23 8 10 1 0 0.0629272
+23 8 11 1 0 0.0622864
+23 8 12 1 0 0.0611572
+23 8 13 1 0 0.0592041
+23 8 14 1 0 0.0578918
+23 8 15 1 0 0.243164
+23 8 16 1 0 0.384033
+23 8 17 1 0 0.501465
+23 8 18 1 0 0.61377
+23 8 19 1 0.186035 0.725098
+23 8 20 1 0.29248 0.822754
+23 8 21 1 0.345947 0.901855
+23 8 22 1 0.361328 0.961914
+23 8 23 1 0.362549 1
+23 8 24 1 0.361572 1
+23 8 25 1 0.358398 1
+23 8 26 0.974609 0.352783 1
+23 8 27 0.90332 0.345947 1
+23 8 28 0.828125 0.338135 1
+23 8 29 0.750488 0.330322 1
+23 8 30 0.671875 0.322998 1
+23 8 31 0.59082 0.316406 1
+23 9 0 1 0 0.0611877
+23 9 1 1 0 0.0611877
+23 9 2 1 0 0.0611877
+23 9 3 1 0 0.0611877
+23 9 4 1 0 0.0611877
+23 9 5 1 0 0.0611572
+23 9 6 1 0 0.0611267
+23 9 7 1 0 0.0610657
+23 9 8 1 0 0.0609741
+23 9 9 1 0 0.0607605
+23 9 10 1 0 0.0603638
+23 9 11 1 0 0.0596619
+23 9 12 1 0 0.0584412
+23 9 13 1 0 0.0563354
+23 9 14 1 0 0.0549316
+23 9 15 1 0 0.243042
+23 9 16 1 0 0.383789
+23 9 17 1 0 0.501465
+23 9 18 1 0 0.61377
+23 9 19 1 0.193237 0.724609
+23 9 20 1 0.296143 0.822754
+23 9 21 1 0.348877 0.901855
+23 9 22 1 0.364014 0.961914
+23 9 23 1 0.364746 1
+23 9 24 1 0.36377 1
+23 9 25 1 0.360352 1
+23 9 26 0.974609 0.354736 1
+23 9 27 0.90332 0.347656 1
+23 9 28 0.828125 0.3396 1
+23 9 29 0.750488 0.331543 1
+23 9 30 0.671875 0.323975 1
+23 9 31 0.59082 0.317383 1
+23 10 0 1 0 0.0560913
+23 10 1 1 0 0.0560913
+23 10 2 1 0 0.0560913
+23 10 3 1 0 0.0560913
+23 10 4 1 0 0.0560913
+23 10 5 1 0 0.0560608
+23 10 6 1 0 0.0560303
+23 10 7 1 0 0.0559692
+23 10 8 1 0 0.0558472
+23 10 9 1 0 0.055603
+23 10 10 1 0 0.0551453
+23 10 11 1 0 0.0543213
+23 10 12 1 0 0.052887
+23 10 13 1 0 0.0503845
+23 10 14 1 0 0.0487976
+23 10 15 1 0 0.243042
+23 10 16 1 0 0.383545
+23 10 17 1 0 0.501465
+23 10 18 1 0 0.613281
+23 10 19 1 0.205444 0.724609
+23 10 20 1 0.30249 0.822754
+23 10 21 1 0.35376 0.901855
+23 10 22 1 0.368652 0.961914
+23 10 23 1 0.369141 1
+23 10 24 1 0.36792 1
+23 10 25 1 0.364014 1
+23 10 26 0.974609 0.358154 1
+23 10 27 0.902832 0.350586 1
+23 10 28 0.827637 0.342285 1
+23 10 29 0.75 0.333984 1
+23 10 30 0.671387 0.326172 1
+23 10 31 0.590332 0.319092 1
+23 11 0 1 0 0.0447083
+23 11 1 1 0 0.0447083
+23 11 2 1 0 0.0447083
+23 11 3 1 0 0.0447083
+23 11 4 1 0 0.0446777
+23 11 5 1 0 0.0446472
+23 11 6 1 0 0.0446167
+23 11 7 1 0 0.0445251
+23 11 8 1 0 0.0443115
+23 11 9 1 0 0.0439758
+23 11 10 1 0 0.0433044
+23 11 11 1 0 0.0420837
+23 11 12 1 0 0.0398865
+23 11 13 1 0 0.0357361
+23 11 14 1 0 0.0331116
+23 11 15 1 0 0.243164
+23 11 16 1 0 0.383301
+23 11 17 1 0 0.500977
+23 11 18 1 0.0717163 0.613281
+23 11 19 1 0.224365 0.724121
+23 11 20 1 0.313232 0.822266
+23 11 21 1 0.362549 0.901855
+23 11 22 1 0.376465 0.961914
+23 11 23 1 0.376465 1
+23 11 24 1 0.374756 1
+23 11 25 1 0.370361 1
+23 11 26 0.974121 0.36377 1
+23 11 27 0.902344 0.355713 1
+23 11 28 0.827148 0.346924 1
+23 11 29 0.749512 0.338135 1
+23 11 30 0.670898 0.329834 1
+23 11 31 0.589844 0.322266 1
+23 12 0 1 0.0964355 0
+23 12 1 1 0.0964355 0
+23 12 2 1 0.0964966 0
+23 12 3 1 0.0964966 0
+23 12 4 1 0.0966187 0
+23 12 5 1 0.0967407 0
+23 12 6 1 0.0969849 0
+23 12 7 1 0.0975342 0
+23 12 8 1 0.0985718 0
+23 12 9 1 0.100464 0
+23 12 10 1 0.10376 0
+23 12 11 1 0.109253 0
+23 12 12 1 0.117676 0
+23 12 13 1 0.129639 0
+23 12 14 1 0.134766 0
+23 12 15 1 0.125366 0.243408
+23 12 16 1 0.111328 0.382568
+23 12 17 1 0.120728 0.500977
+23 12 18 1 0.160889 0.612305
+23 12 19 1 0.251953 0.723145
+23 12 20 1 0.330322 0.822266
+23 12 21 1 0.376465 0.901855
+23 12 22 1 0.38916 0.961914
+23 12 23 1 0.388672 1
+23 12 24 1 0.385986 1
+23 12 25 1 0.380859 1
+23 12 26 0.973145 0.373535 1
+23 12 27 0.901367 0.364258 1
+23 12 28 0.826172 0.354492 1
+23 12 29 0.749023 0.344971 1
+23 12 30 0.669922 0.335693 1
+23 12 31 0.588867 0.327637 1
+23 13 0 1 0.203613 0
+23 13 1 1 0.203735 0
+23 13 2 1 0.203735 0
+23 13 3 1 0.203735 0
+23 13 4 1 0.203735 0
+23 13 5 1 0.203735 0
+23 13 6 1 0.203857 0
+23 13 7 1 0.203979 0
+23 13 8 1 0.204346 0
+23 13 9 1 0.204956 0
+23 13 10 1 0.206055 0
+23 13 11 1 0.207886 0
+23 13 12 1 0.21106 0
+23 13 13 1 0.216187 0
+23 13 14 1 0.218018 0
+23 13 15 1 0.212769 0.244385
+23 13 16 1 0.206055 0.38208
+23 13 17 1 0.212036 0.501465
+23 13 18 1 0.227173 0.611328
+23 13 19 1 0.288818 0.72168
+23 13 20 1 0.355469 0.821289
+23 13 21 1 0.397705 0.901367
+23 13 22 1 0.408936 0.961914
+23 13 23 1 0.407227 1
+23 13 24 1 0.403564 1
+23 13 25 1 0.397217 1
+23 13 26 0.97168 0.388184 1
+23 13 27 0.900391 0.377686 1
+23 13 28 0.825195 0.366699 1
+23 13 29 0.747559 0.355469 1
+23 13 30 0.668945 0.345215 1
+23 13 31 0.587402 0.335938 1
+23 14 0 1 0.284424 0
+23 14 1 1 0.284424 0
+23 14 2 1 0.284424 0
+23 14 3 1 0.284424 0
+23 14 4 1 0.284424 0
+23 14 5 1 0.284424 0
+23 14 6 1 0.284424 0
+23 14 7 1 0.284668 0
+23 14 8 1 0.284912 0
+23 14 9 1 0.285156 0
+23 14 10 1 0.285889 0
+23 14 11 1 0.286865 0
+23 14 12 1 0.288818 0
+23 14 13 1 0.291992 0
+23 14 14 1 0.292725 0
+23 14 15 1 0.288818 0.247192
+23 14 16 1 0.283447 0.381836
+23 14 17 1 0.287109 0.500977
+23 14 18 1 0.294189 0.609863
+23 14 19 1 0.335449 0.719727
+23 14 20 1 0.390625 0.819824
+23 14 21 1 0.427979 0.901367
+23 14 22 1 0.4375 0.961914
+23 14 23 1 0.434326 1
+23 14 24 1 0.429199 1
+23 14 25 1 0.420898 1
+23 14 26 0.969727 0.410156 1
+23 14 27 0.897949 0.397705 1
+23 14 28 0.822754 0.384521 1
+23 14 29 0.745117 0.371582 1
+23 14 30 0.666504 0.359619 1
+23 14 31 0.585449 0.348877 1
+23 15 0 1 0.364258 0
+23 15 1 1 0.364258 0
+23 15 2 1 0.364258 0
+23 15 3 1 0.364258 0
+23 15 4 1 0.364258 0
+23 15 5 1 0.364258 0
+23 15 6 1 0.364258 0
+23 15 7 1 0.364502 0
+23 15 8 1 0.364502 0
+23 15 9 1 0.364746 0
+23 15 10 1 0.365234 0
+23 15 11 1 0.365967 0
+23 15 12 1 0.367432 0
+23 15 13 1 0.369629 0
+23 15 14 1 0.369873 0
+23 15 15 1 0.366211 0.25415
+23 15 16 1 0.361816 0.383301
+23 15 17 1 0.361084 0.498535
+23 15 18 1 0.365967 0.60791
+23 15 19 1 0.391602 0.716309
+23 15 20 1 0.435547 0.817383
+23 15 21 1 0.468506 0.900391
+23 15 22 1 0.476074 0.961426
+23 15 23 1 0.471191 1
+23 15 24 1 0.464111 1
+23 15 25 1 0.453613 1
+23 15 26 0.966309 0.44043 1
+23 15 27 0.894531 0.425293 1
+23 15 28 0.819336 0.409424 1
+23 15 29 0.742188 0.394287 1
+23 15 30 0.663086 0.379883 1
+23 15 31 0.582031 0.366943 1
+23 16 0 1 0.448486 0
+23 16 1 1 0.448486 0
+23 16 2 1 0.448486 0
+23 16 3 1 0.448486 0
+23 16 4 1 0.448486 0
+23 16 5 1 0.448486 0
+23 16 6 1 0.448486 0
+23 16 7 1 0.448486 0
+23 16 8 1 0.448486 0
+23 16 9 1 0.44873 0
+23 16 10 1 0.449219 0
+23 16 11 1 0.449707 0
+23 16 12 1 0.450684 0
+23 16 13 1 0.452148 0
+23 16 14 1 0.452148 0
+23 16 15 1 0.449463 0.269287
+23 16 16 1 0.445557 0.38916
+23 16 17 1 0.441895 0.498291
+23 16 18 1 0.445312 0.606934
+23 16 19 1 0.457031 0.711426
+23 16 20 1 0.490479 0.813477
+23 16 21 1 0.519043 0.898438
+23 16 22 1 0.524902 0.960938
+23 16 23 1 0.518066 1
+23 16 24 1 0.508789 1
+23 16 25 1 0.49585 1
+23 16 26 0.960938 0.479492 1
+23 16 27 0.88916 0.461182 1
+23 16 28 0.813965 0.442383 1
+23 16 29 0.736816 0.424072 1
+23 16 30 0.658203 0.406982 1
+23 16 31 0.577148 0.391357 1
+23 17 0 1 0.535645 0
+23 17 1 1 0.535645 0
+23 17 2 1 0.535645 0
+23 17 3 1 0.535645 0
+23 17 4 1 0.535645 0
+23 17 5 1 0.535645 0
+23 17 6 1 0.535645 0
+23 17 7 1 0.535645 0
+23 17 8 1 0.535645 0
+23 17 9 1 0.536133 0
+23 17 10 1 0.536133 0
+23 17 11 1 0.536621 0
+23 17 12 1 0.537598 0
+23 17 13 1 0.538574 0
+23 17 14 1 0.538574 0.150146
+23 17 15 1 0.537109 0.294678
+23 17 16 1 0.533691 0.4021
+23 17 17 1 0.528809 0.50293
+23 17 18 1 0.526367 0.604492
+23 17 19 1 0.530762 0.706055
+23 17 20 1 0.552246 0.807129
+23 17 21 1 0.577637 0.89502
+23 17 22 1 0.58252 0.959473
+23 17 23 1 0.57373 1
+23 17 24 1 0.562012 1
+23 17 25 1 0.546387 1
+23 17 26 0.953125 0.526367 1
+23 17 27 0.881836 0.504883 1
+23 17 28 0.806641 0.482422 1
+23 17 29 0.729492 0.460693 1
+23 17 30 0.651367 0.44043 1
+23 17 31 0.569824 0.421875 1
+23 18 0 1 0.624023 0.14978
+23 18 1 1 0.624023 0.14978
+23 18 2 1 0.624023 0.14978
+23 18 3 1 0.624023 0.149902
+23 18 4 1 0.624023 0.149902
+23 18 5 1 0.624023 0.149902
+23 18 6 1 0.624023 0.149902
+23 18 7 1 0.624023 0.149902
+23 18 8 1 0.624512 0.150024
+23 18 9 1 0.624512 0.150146
+23 18 10 1 0.624512 0.150391
+23 18 11 1 0.625 0.150879
+23 18 12 1 0.625488 0.151733
+23 18 13 1 0.626465 0.153076
+23 18 14 1 0.626953 0.222778
+23 18 15 1 0.625977 0.328125
+23 18 16 1 0.624023 0.42334
+23 18 17 1 0.619629 0.515625
+23 18 18 1 0.613281 0.607422
+23 18 19 1 0.611328 0.703125
+23 18 20 1 0.619141 0.797363
+23 18 21 1 0.640137 0.88916
+23 18 22 1 0.64502 0.956055
+23 18 23 1 0.634766 1
+23 18 24 1 0.621094 1
+23 18 25 1 0.601562 1
+23 18 26 0.942383 0.578613 1
+23 18 27 0.871094 0.553223 1
+23 18 28 0.796387 0.527344 1
+23 18 29 0.720215 0.502441 1
+23 18 30 0.64209 0.47876 1
+23 18 31 0.560547 0.457031 1
+23 19 0 1 0.710449 0.24292
+23 19 1 1 0.710449 0.24292
+23 19 2 1 0.710449 0.24292
+23 19 3 1 0.710449 0.24292
+23 19 4 1 0.710449 0.24292
+23 19 5 1 0.710449 0.24292
+23 19 6 1 0.710449 0.243042
+23 19 7 1 0.710449 0.243042
+23 19 8 1 0.710449 0.243042
+23 19 9 1 0.710449 0.243042
+23 19 10 1 0.710938 0.243164
+23 19 11 1 0.710938 0.243408
+23 19 12 1 0.711426 0.243652
+23 19 13 1 0.712402 0.244263
+23 19 14 1 0.712891 0.274658
+23 19 15 1 0.712891 0.361572
+23 19 16 1 0.712402 0.448242
+23 19 17 1 0.708984 0.534668
+23 19 18 1 0.702637 0.619629
+23 19 19 1 0.693359 0.702637
+23 19 20 1 0.69043 0.789062
+23 19 21 1 0.702148 0.878906
+23 19 22 1 0.708496 0.951172
+23 19 23 1 0.697266 1
+23 19 24 1 0.681641 1
+23 19 25 0.993164 0.65918 1
+23 19 26 0.927734 0.632324 1
+23 19 27 0.856934 0.603516 1
+23 19 28 0.783203 0.574707 1
+23 19 29 0.708008 0.546875 1
+23 19 30 0.630371 0.52002 1
+23 19 31 0.54834 0.495605 1
+23 20 0 1 0.790527 0.293213
+23 20 1 1 0.790527 0.293213
+23 20 2 1 0.790527 0.293213
+23 20 3 1 0.790527 0.293213
+23 20 4 1 0.790527 0.293213
+23 20 5 1 0.790527 0.293213
+23 20 6 1 0.791016 0.293213
+23 20 7 1 0.791016 0.293213
+23 20 8 1 0.791016 0.293457
+23 20 9 1 0.791016 0.293457
+23 20 10 1 0.791016 0.293457
+23 20 11 1 0.791016 0.293457
+23 20 12 1 0.791504 0.293701
+23 20 13 1 0.791992 0.293945
+23 20 14 1 0.792969 0.306396
+23 20 15 1 0.793457 0.385498
+23 20 16 1 0.793945 0.468262
+23 20 17 1 0.79248 0.552734
+23 20 18 1 0.787598 0.635742
+23 20 19 1 0.77832 0.712891
+23 20 20 1 0.765625 0.785645
+23 20 21 1 0.762207 0.865234
+23 20 22 1 0.77002 0.942871
+23 20 23 1 0.758789 0.994629
+23 20 24 1 0.741211 1
+23 20 25 0.973633 0.71582 1
+23 20 26 0.90918 0.685547 1
+23 20 27 0.839844 0.654297 1
+23 20 28 0.767578 0.622559 1
+23 20 29 0.693359 0.592285 1
+23 20 30 0.616211 0.562988 1
+23 20 31 0.53418 0.536133 1
+23 21 0 1 0.864258 0.318604
+23 21 1 1 0.864258 0.318604
+23 21 2 1 0.864258 0.318604
+23 21 3 1 0.864258 0.318604
+23 21 4 1 0.864258 0.318604
+23 21 5 1 0.864258 0.318604
+23 21 6 1 0.864258 0.318604
+23 21 7 1 0.864258 0.318604
+23 21 8 1 0.864258 0.318848
+23 21 9 1 0.864258 0.318848
+23 21 10 1 0.864746 0.318848
+23 21 11 1 0.864746 0.318848
+23 21 12 1 0.864746 0.318848
+23 21 13 1 0.865234 0.318848
+23 21 14 1 0.866211 0.319092
+23 21 15 1 0.867188 0.394287
+23 21 16 1 0.868164 0.476562
+23 21 17 1 0.867676 0.561523
+23 21 18 1 0.865234 0.645508
+23 21 19 1 0.85791 0.724121
+23 21 20 1 0.845703 0.793945
+23 21 21 1 0.829102 0.856934
+23 21 22 1 0.82666 0.930176
+23 21 23 1 0.817871 0.98584
+23 21 24 1 0.79834 1
+23 21 25 0.949219 0.769531 1
+23 21 26 0.88623 0.737793 1
+23 21 27 0.819336 0.70459 1
+23 21 28 0.749512 0.671387 1
+23 21 29 0.676758 0.638672 1
+23 21 30 0.600098 0.60791 1
+23 21 31 0.51709 0.578125 1
+23 22 0 1 0.928711 0.324951
+23 22 1 1 0.928711 0.324951
+23 22 2 1 0.928711 0.324951
+23 22 3 1 0.928711 0.324951
+23 22 4 1 0.928711 0.324951
+23 22 5 1 0.928711 0.324951
+23 22 6 1 0.928711 0.324951
+23 22 7 1 0.928711 0.324951
+23 22 8 1 0.928711 0.324951
+23 22 9 1 0.928711 0.324951
+23 22 10 1 0.928711 0.324951
+23 22 11 1 0.928711 0.324951
+23 22 12 1 0.929199 0.324951
+23 22 13 1 0.929199 0.324951
+23 22 14 1 0.929688 0.324951
+23 22 15 1 0.931152 0.387451
+23 22 16 1 0.932617 0.470947
+23 22 17 1 0.933105 0.557129
+23 22 18 1 0.931641 0.643066
+23 22 19 1 0.926758 0.724609
+23 22 20 1 0.91748 0.79834
+23 22 21 1 0.901855 0.861816
+23 22 22 1 0.881348 0.915527
+23 22 23 1 0.873535 0.974609
+23 22 24 0.974609 0.850098 1
+23 22 25 0.919922 0.819824 1
+23 22 26 0.86084 0.788086 1
+23 22 27 0.797363 0.754395 1
+23 22 28 0.72998 0.720703 1
+23 22 29 0.658203 0.687012 1
+23 22 30 0.581543 0.653809 1
+23 22 31 0.496826 0.621582 1
+23 23 0 1 0.97998 0.320312
+23 23 1 1 0.97998 0.320312
+23 23 2 1 0.97998 0.320312
+23 23 3 1 0.97998 0.320312
+23 23 4 1 0.97998 0.320312
+23 23 5 1 0.97998 0.320312
+23 23 6 1 0.97998 0.320312
+23 23 7 1 0.97998 0.320312
+23 23 8 1 0.97998 0.320312
+23 23 9 1 0.97998 0.320312
+23 23 10 1 0.97998 0.320312
+23 23 11 1 0.97998 0.320312
+23 23 12 1 0.97998 0.320312
+23 23 13 1 0.980469 0.320312
+23 23 14 1 0.980469 0.320312
+23 23 15 1 0.981934 0.370117
+23 23 16 1 0.983887 0.455811
+23 23 17 1 0.985352 0.543457
+23 23 18 1 0.984375 0.630371
+23 23 19 1 0.980469 0.712891
+23 23 20 1 0.973145 0.788574
+23 23 21 1 0.960449 0.856445
+23 23 22 1 0.943359 0.914551
+23 23 23 0.98584 0.922852 0.961426
+23 23 24 0.941406 0.897461 0.996094
+23 23 25 0.89209 0.869141 1
+23 23 26 0.836426 0.837891 1
+23 23 27 0.775391 0.804199 1
+23 23 28 0.709473 0.769043 1
+23 23 29 0.637695 0.733398 1
+23 23 30 0.55957 0.697266 1
+23 23 31 0.47168 0.662598 1
+23 24 0 1 1 0.312256
+23 24 1 1 1 0.312256
+23 24 2 1 1 0.312256
+23 24 3 1 1 0.312256
+23 24 4 1 1 0.312256
+23 24 5 1 1 0.312256
+23 24 6 1 1 0.312256
+23 24 7 1 1 0.312256
+23 24 8 1 1 0.312256
+23 24 9 1 1 0.312256
+23 24 10 1 1 0.312256
+23 24 11 1 1 0.312256
+23 24 12 1 1 0.312256
+23 24 13 1 1 0.312256
+23 24 14 1 1 0.312256
+23 24 15 1 1 0.348389
+23 24 16 1 1 0.436035
+23 24 17 1 1 0.523926
+23 24 18 1 1 0.61084
+23 24 19 1 1 0.693848
+23 24 20 1 1 0.769043
+23 24 21 1 1 0.836914
+23 24 22 0.983398 0.983887 0.895508
+23 24 23 0.94873 0.966309 0.945801
+23 24 24 0.916016 0.950684 0.992188
+23 24 25 0.869629 0.923828 1
+23 24 26 0.813965 0.890137 1
+23 24 27 0.75293 0.854004 1
+23 24 28 0.686523 0.816406 1
+23 24 29 0.614258 0.77832 1
+23 24 30 0.53418 0.740234 1
+23 24 31 0.441895 0.702637 1
+23 25 0 1 1 0.301758
+23 25 1 1 1 0.301758
+23 25 2 1 1 0.301758
+23 25 3 1 1 0.301758
+23 25 4 1 1 0.301758
+23 25 5 1 1 0.301758
+23 25 6 1 1 0.301758
+23 25 7 1 1 0.301758
+23 25 8 1 1 0.301758
+23 25 9 1 1 0.301758
+23 25 10 1 1 0.301758
+23 25 11 1 1 0.301758
+23 25 12 1 1 0.301758
+23 25 13 1 1 0.301758
+23 25 14 1 1 0.301758
+23 25 15 1 1 0.321533
+23 25 16 1 1 0.411621
+23 25 17 1 1 0.5
+23 25 18 1 1 0.586426
+23 25 19 1 1 0.668457
+23 25 20 0.98584 1 0.743652
+23 25 21 0.962402 1 0.812012
+23 25 22 0.933594 1 0.872559
+23 25 23 0.904297 1 0.926758
+23 25 24 0.873535 0.993652 0.974609
+23 25 25 0.835938 0.974609 1
+23 25 26 0.786621 0.946289 1
+23 25 27 0.726562 0.909668 1
+23 25 28 0.659668 0.870117 1
+23 25 29 0.585449 0.829102 1
+23 25 30 0.501953 0.787598 1
+23 25 31 0.402344 0.74707 1
+23 26 0 0.962891 1 0.289795
+23 26 1 0.962891 1 0.289795
+23 26 2 0.962891 1 0.289795
+23 26 3 0.962891 1 0.289795
+23 26 4 0.962891 1 0.289795
+23 26 5 0.962891 1 0.289795
+23 26 6 0.962891 1 0.289795
+23 26 7 0.962891 1 0.289795
+23 26 8 0.962891 1 0.289795
+23 26 9 0.962891 1 0.289795
+23 26 10 0.962891 1 0.289795
+23 26 11 0.962891 1 0.289795
+23 26 12 0.962891 1 0.289795
+23 26 13 0.962891 1 0.289551
+23 26 14 0.962891 1 0.289551
+23 26 15 0.962402 1 0.289551
+23 26 16 0.960449 1 0.383301
+23 26 17 0.956055 1 0.472168
+23 26 18 0.94873 1 0.558105
+23 26 19 0.937012 1 0.639648
+23 26 20 0.921387 1 0.714844
+23 26 21 0.900879 1 0.78418
+23 26 22 0.876465 1 0.847656
+23 26 23 0.850098 1 0.903809
+23 26 24 0.821289 1 0.952637
+23 26 25 0.785645 1 0.999023
+23 26 26 0.742188 0.994629 1
+23 26 27 0.687988 0.963867 1
+23 26 28 0.622559 0.925781 1
+23 26 29 0.546387 0.883301 1
+23 26 30 0.457275 0.839844 1
+23 26 31 0.343506 0.796387 1
+23 27 0 0.885254 1 0.276611
+23 27 1 0.885254 1 0.276611
+23 27 2 0.885254 1 0.276611
+23 27 3 0.885254 1 0.276611
+23 27 4 0.885254 1 0.276611
+23 27 5 0.885254 1 0.276611
+23 27 6 0.885254 1 0.276611
+23 27 7 0.885254 1 0.276611
+23 27 8 0.885254 1 0.276611
+23 27 9 0.885254 1 0.276611
+23 27 10 0.885254 1 0.276611
+23 27 11 0.885254 1 0.276611
+23 27 12 0.885254 1 0.276611
+23 27 13 0.885254 1 0.276611
+23 27 14 0.885254 1 0.276611
+23 27 15 0.885254 1 0.276611
+23 27 16 0.883301 1 0.351562
+23 27 17 0.878906 1 0.441895
+23 27 18 0.872559 1 0.527344
+23 27 19 0.862305 1 0.608398
+23 27 20 0.848633 1 0.683594
+23 27 21 0.830566 1 0.753906
+23 27 22 0.809082 1 0.818848
+23 27 23 0.785156 1 0.875977
+23 27 24 0.757812 1 0.92627
+23 27 25 0.723633 1 0.974609
+23 27 26 0.681641 1 1
+23 27 27 0.630371 1 1
+23 27 28 0.566406 0.977051 1
+23 27 29 0.488281 0.937012 1
+23 27 30 0.388916 0.893066 1
+23 27 31 0.235107 0.847656 1
+23 28 0 0.799316 1 0.262695
+23 28 1 0.799316 1 0.262695
+23 28 2 0.799316 1 0.262695
+23 28 3 0.799316 1 0.262695
+23 28 4 0.799316 1 0.262695
+23 28 5 0.799316 1 0.262695
+23 28 6 0.799316 1 0.262939
+23 28 7 0.799316 1 0.262939
+23 28 8 0.799316 1 0.262939
+23 28 9 0.799316 1 0.262939
+23 28 10 0.799316 1 0.262939
+23 28 11 0.799316 1 0.262939
+23 28 12 0.799316 1 0.262939
+23 28 13 0.799316 1 0.262939
+23 28 14 0.799316 1 0.262939
+23 28 15 0.799316 1 0.262939
+23 28 16 0.797852 1 0.316162
+23 28 17 0.793945 1 0.408936
+23 28 18 0.787598 1 0.494873
+23 28 19 0.77832 1 0.575195
+23 28 20 0.765625 1 0.649902
+23 28 21 0.749023 1 0.720703
+23 28 22 0.729004 1 0.785645
+23 28 23 0.706055 1 0.84375
+23 28 24 0.679199 1 0.895508
+23 28 25 0.645996 1 0.944824
+23 28 26 0.604492 1 0.991699
+23 28 27 0.551758 1 1
+23 28 28 0.485352 1 1
+23 28 29 0.397705 0.985352 1
+23 28 30 0.26416 0.943848 1
+23 28 31 0 0.898438 1
+23 29 0 0.70166 1 0.248413
+23 29 1 0.70166 1 0.248413
+23 29 2 0.70166 1 0.248413
+23 29 3 0.70166 1 0.248413
+23 29 4 0.70166 1 0.248413
+23 29 5 0.70166 1 0.248413
+23 29 6 0.70166 1 0.248413
+23 29 7 0.70166 1 0.248413
+23 29 8 0.70166 1 0.248413
+23 29 9 0.70166 1 0.248413
+23 29 10 0.70166 1 0.248413
+23 29 11 0.70166 1 0.248413
+23 29 12 0.70166 1 0.248413
+23 29 13 0.70166 1 0.248413
+23 29 14 0.70166 1 0.248413
+23 29 15 0.702148 1 0.248535
+23 29 16 0.701172 1 0.275879
+23 29 17 0.696777 1 0.373047
+23 29 18 0.69043 1 0.459717
+23 29 19 0.680664 1 0.539551
+23 29 20 0.668457 1 0.61377
+23 29 21 0.651855 1 0.683594
+23 29 22 0.631836 1 0.749023
+23 29 23 0.608398 1 0.807129
+23 29 24 0.580566 1 0.858887
+23 29 25 0.545898 1 0.910156
+23 29 26 0.500977 1 0.958984
+23 29 27 0.441406 1 1
+23 29 28 0.359131 1 1
+23 29 29 0.217285 1 1
+23 29 30 0 0.991699 1
+23 29 31 0 0.948242 1
+23 30 0 0.587891 1 0.233643
+23 30 1 0.587891 1 0.233643
+23 30 2 0.587891 1 0.233643
+23 30 3 0.587891 1 0.233643
+23 30 4 0.587891 1 0.233643
+23 30 5 0.587891 1 0.233643
+23 30 6 0.587891 1 0.233643
+23 30 7 0.587891 1 0.233643
+23 30 8 0.587891 1 0.233643
+23 30 9 0.587891 1 0.233643
+23 30 10 0.587891 1 0.233643
+23 30 11 0.587891 1 0.233643
+23 30 12 0.587891 1 0.233643
+23 30 13 0.588379 1 0.233643
+23 30 14 0.588379 1 0.233643
+23 30 15 0.588867 1 0.233765
+23 30 16 0.588867 1 0.233765
+23 30 17 0.583496 1 0.334229
+23 30 18 0.575684 1 0.422119
+23 30 19 0.564453 1 0.501465
+23 30 20 0.549805 1 0.574707
+23 30 21 0.53125 1 0.643555
+23 30 22 0.507812 1 0.708008
+23 30 23 0.480225 1 0.766113
+23 30 24 0.447266 1 0.818359
+23 30 25 0.403076 1 0.869629
+23 30 26 0.340332 1 0.92041
+23 30 27 0.236206 1 0.96875
+23 30 28 0 1 1
+23 30 29 0 1 1
+23 30 30 0 1 1
+23 30 31 0 0.995605 1
+23 31 0 0.442139 1 0.21875
+23 31 1 0.442139 1 0.21875
+23 31 2 0.442139 1 0.21875
+23 31 3 0.442139 1 0.21875
+23 31 4 0.442139 1 0.21875
+23 31 5 0.442139 1 0.21875
+23 31 6 0.442139 1 0.21875
+23 31 7 0.442139 1 0.21875
+23 31 8 0.442139 1 0.21875
+23 31 9 0.442139 1 0.21875
+23 31 10 0.442383 1 0.21875
+23 31 11 0.442383 1 0.21875
+23 31 12 0.442383 1 0.21875
+23 31 13 0.442627 1 0.21875
+23 31 14 0.442871 1 0.21875
+23 31 15 0.443359 1 0.218872
+23 31 16 0.444092 1 0.218872
+23 31 17 0.438477 1 0.291748
+23 31 18 0.426025 1 0.382568
+23 31 19 0.408936 1 0.461914
+23 31 20 0.386719 1 0.533691
+23 31 21 0.357178 1 0.601074
+23 31 22 0.317383 1 0.664551
+23 31 23 0.262939 1 0.72168
+23 31 24 0.171997 1 0.773438
+23 31 25 0 1 0.825684
+23 31 26 0 1 0.877441
+23 31 27 0 1 0.928223
+23 31 28 0 1 0.976074
+23 31 29 0 1 1
+23 31 30 0 1 1
+23 31 31 0 1 1
+24 0 0 1 0 0.0687866
+24 0 1 1 0 0.0687866
+24 0 2 1 0 0.0687866
+24 0 3 1 0 0.0687866
+24 0 4 1 0 0.0687866
+24 0 5 1 0 0.0687256
+24 0 6 1 0 0.0687256
+24 0 7 1 0 0.0686646
+24 0 8 1 0 0.0686035
+24 0 9 1 0 0.0684204
+24 0 10 1 0 0.0681152
+24 0 11 1 0 0.067627
+24 0 12 1 0 0.0667114
+24 0 13 1 0 0.0651245
+24 0 14 1 0 0.0637207
+24 0 15 1 0 0.175781
+24 0 16 1 0 0.344971
+24 0 17 1 0 0.470215
+24 0 18 1 0 0.580078
+24 0 19 1 0 0.687988
+24 0 20 1 0.2323 0.787598
+24 0 21 1 0.317139 0.87207
+24 0 22 1 0.357178 0.938477
+24 0 23 1 0.366943 0.989258
+24 0 24 1 0.367432 1
+24 0 25 1 0.365967 1
+24 0 26 1 0.362305 1
+24 0 27 0.991211 0.356445 1
+24 0 28 0.91748 0.349121 1
+24 0 29 0.840332 0.341309 1
+24 0 30 0.761719 0.333496 1
+24 0 31 0.681641 0.325928 1
+24 1 0 1 0 0.0687866
+24 1 1 1 0 0.0687866
+24 1 2 1 0 0.0687866
+24 1 3 1 0 0.0687866
+24 1 4 1 0 0.0687256
+24 1 5 1 0 0.0687256
+24 1 6 1 0 0.0687256
+24 1 7 1 0 0.0686646
+24 1 8 1 0 0.0686035
+24 1 9 1 0 0.0684204
+24 1 10 1 0 0.0681152
+24 1 11 1 0 0.067627
+24 1 12 1 0 0.0667114
+24 1 13 1 0 0.0651245
+24 1 14 1 0 0.0637207
+24 1 15 1 0 0.175781
+24 1 16 1 0 0.344971
+24 1 17 1 0 0.470215
+24 1 18 1 0 0.580078
+24 1 19 1 0 0.687988
+24 1 20 1 0.2323 0.787598
+24 1 21 1 0.317383 0.87207
+24 1 22 1 0.357178 0.938477
+24 1 23 1 0.366943 0.989258
+24 1 24 1 0.367432 1
+24 1 25 1 0.365967 1
+24 1 26 1 0.362305 1
+24 1 27 0.991211 0.356445 1
+24 1 28 0.91748 0.349121 1
+24 1 29 0.840332 0.341309 1
+24 1 30 0.761719 0.333496 1
+24 1 31 0.681641 0.325928 1
+24 2 0 1 0 0.0687256
+24 2 1 1 0 0.0687256
+24 2 2 1 0 0.0687256
+24 2 3 1 0 0.0687256
+24 2 4 1 0 0.0687256
+24 2 5 1 0 0.0687256
+24 2 6 1 0 0.0687256
+24 2 7 1 0 0.0686646
+24 2 8 1 0 0.0685425
+24 2 9 1 0 0.0684204
+24 2 10 1 0 0.0681152
+24 2 11 1 0 0.0675659
+24 2 12 1 0 0.0666504
+24 2 13 1 0 0.0651245
+24 2 14 1 0 0.0637207
+24 2 15 1 0 0.175781
+24 2 16 1 0 0.344971
+24 2 17 1 0 0.470215
+24 2 18 1 0 0.580078
+24 2 19 1 0 0.687988
+24 2 20 1 0.232422 0.787598
+24 2 21 1 0.317383 0.87207
+24 2 22 1 0.357178 0.938477
+24 2 23 1 0.366943 0.989258
+24 2 24 1 0.367432 1
+24 2 25 1 0.365967 1
+24 2 26 1 0.362305 1
+24 2 27 0.991211 0.356445 1
+24 2 28 0.91748 0.349121 1
+24 2 29 0.840332 0.341309 1
+24 2 30 0.761719 0.333496 1
+24 2 31 0.681641 0.325928 1
+24 3 0 1 0 0.0687256
+24 3 1 1 0 0.0687256
+24 3 2 1 0 0.0687256
+24 3 3 1 0 0.0687256
+24 3 4 1 0 0.0686646
+24 3 5 1 0 0.0686646
+24 3 6 1 0 0.0686646
+24 3 7 1 0 0.0686035
+24 3 8 1 0 0.0685425
+24 3 9 1 0 0.0683594
+24 3 10 1 0 0.0680542
+24 3 11 1 0 0.0675659
+24 3 12 1 0 0.0666504
+24 3 13 1 0 0.0650635
+24 3 14 1 0 0.0636597
+24 3 15 1 0 0.175781
+24 3 16 1 0 0.344971
+24 3 17 1 0 0.470215
+24 3 18 1 0 0.580078
+24 3 19 1 0 0.687988
+24 3 20 1 0.232544 0.787598
+24 3 21 1 0.317383 0.87207
+24 3 22 1 0.357178 0.938477
+24 3 23 1 0.367188 0.989258
+24 3 24 1 0.367432 1
+24 3 25 1 0.366211 1
+24 3 26 1 0.362305 1
+24 3 27 0.991211 0.356445 1
+24 3 28 0.91748 0.349365 1
+24 3 29 0.840332 0.341309 1
+24 3 30 0.761719 0.333496 1
+24 3 31 0.681641 0.325928 1
+24 4 0 1 0 0.0686035
+24 4 1 1 0 0.0686035
+24 4 2 1 0 0.0686035
+24 4 3 1 0 0.0686035
+24 4 4 1 0 0.0686035
+24 4 5 1 0 0.0686035
+24 4 6 1 0 0.0686035
+24 4 7 1 0 0.0685425
+24 4 8 1 0 0.0684814
+24 4 9 1 0 0.0682983
+24 4 10 1 0 0.0679932
+24 4 11 1 0 0.0674438
+24 4 12 1 0 0.0665283
+24 4 13 1 0 0.0650024
+24 4 14 1 0 0.0635986
+24 4 15 1 0 0.175781
+24 4 16 1 0 0.344971
+24 4 17 1 0 0.470215
+24 4 18 1 0 0.580078
+24 4 19 1 0 0.687988
+24 4 20 1 0.232666 0.787598
+24 4 21 1 0.317383 0.87207
+24 4 22 1 0.357422 0.938477
+24 4 23 1 0.367188 0.989258
+24 4 24 1 0.367432 1
+24 4 25 1 0.366211 1
+24 4 26 1 0.362549 1
+24 4 27 0.991211 0.356689 1
+24 4 28 0.91748 0.349365 1
+24 4 29 0.840332 0.341309 1
+24 4 30 0.761719 0.333496 1
+24 4 31 0.681641 0.325928 1
+24 5 0 1 0 0.0684814
+24 5 1 1 0 0.0684814
+24 5 2 1 0 0.0684814
+24 5 3 1 0 0.0684814
+24 5 4 1 0 0.0684814
+24 5 5 1 0 0.0684814
+24 5 6 1 0 0.0684204
+24 5 7 1 0 0.0684204
+24 5 8 1 0 0.0682983
+24 5 9 1 0 0.0681763
+24 5 10 1 0 0.0678711
+24 5 11 1 0 0.0673218
+24 5 12 1 0 0.0664062
+24 5 13 1 0 0.0648193
+24 5 14 1 0 0.0634155
+24 5 15 1 0 0.175781
+24 5 16 1 0 0.344971
+24 5 17 1 0 0.470215
+24 5 18 1 0 0.580078
+24 5 19 1 0 0.687988
+24 5 20 1 0.233032 0.787598
+24 5 21 1 0.317627 0.87207
+24 5 22 1 0.357422 0.938477
+24 5 23 1 0.367432 0.989258
+24 5 24 1 0.367676 1
+24 5 25 1 0.366211 1
+24 5 26 1 0.362549 1
+24 5 27 0.991211 0.356689 1
+24 5 28 0.91748 0.349365 1
+24 5 29 0.840332 0.341553 1
+24 5 30 0.761719 0.333496 1
+24 5 31 0.681641 0.326172 1
+24 6 0 1 0 0.0682373
+24 6 1 1 0 0.0682373
+24 6 2 1 0 0.0682373
+24 6 3 1 0 0.0681763
+24 6 4 1 0 0.0681763
+24 6 5 1 0 0.0681763
+24 6 6 1 0 0.0681763
+24 6 7 1 0 0.0681152
+24 6 8 1 0 0.0680542
+24 6 9 1 0 0.0678711
+24 6 10 1 0 0.0675659
+24 6 11 1 0 0.0670166
+24 6 12 1 0 0.0661011
+24 6 13 1 0 0.0645142
+24 6 14 1 0 0.0631104
+24 6 15 1 0 0.175781
+24 6 16 1 0 0.344971
+24 6 17 1 0 0.470215
+24 6 18 1 0 0.580078
+24 6 19 1 0 0.687988
+24 6 20 1 0.233643 0.787598
+24 6 21 1 0.318115 0.87207
+24 6 22 1 0.35791 0.938477
+24 6 23 1 0.367676 0.989258
+24 6 24 1 0.36792 1
+24 6 25 1 0.366699 1
+24 6 26 1 0.362793 1
+24 6 27 0.990723 0.356934 1
+24 6 28 0.91748 0.349609 1
+24 6 29 0.840332 0.341553 1
+24 6 30 0.761719 0.33374 1
+24 6 31 0.681641 0.326172 1
+24 7 0 1 0 0.067688
+24 7 1 1 0 0.067688
+24 7 2 1 0 0.067688
+24 7 3 1 0 0.067688
+24 7 4 1 0 0.067688
+24 7 5 1 0 0.067627
+24 7 6 1 0 0.067627
+24 7 7 1 0 0.0675659
+24 7 8 1 0 0.0675049
+24 7 9 1 0 0.0673218
+24 7 10 1 0 0.0670166
+24 7 11 1 0 0.0664673
+24 7 12 1 0 0.0655518
+24 7 13 1 0 0.0639038
+24 7 14 1 0 0.0625
+24 7 15 1 0 0.175781
+24 7 16 1 0 0.344971
+24 7 17 1 0 0.470215
+24 7 18 1 0 0.57959
+24 7 19 1 0 0.687988
+24 7 20 1 0.234863 0.787598
+24 7 21 1 0.318848 0.87207
+24 7 22 1 0.358643 0.938477
+24 7 23 1 0.368164 0.989258
+24 7 24 1 0.368652 1
+24 7 25 1 0.367188 1
+24 7 26 1 0.363281 1
+24 7 27 0.990723 0.357422 1
+24 7 28 0.91748 0.350098 1
+24 7 29 0.840332 0.342041 1
+24 7 30 0.761719 0.333984 1
+24 7 31 0.681152 0.326416 1
+24 8 0 1 0 0.0665894
+24 8 1 1 0 0.0665894
+24 8 2 1 0 0.0665894
+24 8 3 1 0 0.0665894
+24 8 4 1 0 0.0665894
+24 8 5 1 0 0.0665894
+24 8 6 1 0 0.0665283
+24 8 7 1 0 0.0664673
+24 8 8 1 0 0.0664062
+24 8 9 1 0 0.0662231
+24 8 10 1 0 0.065918
+24 8 11 1 0 0.0653687
+24 8 12 1 0 0.0643921
+24 8 13 1 0 0.0627441
+24 8 14 1 0 0.0612793
+24 8 15 1 0 0.175781
+24 8 16 1 0 0.344971
+24 8 17 1 0 0.470215
+24 8 18 1 0 0.57959
+24 8 19 1 0 0.687988
+24 8 20 1 0.237305 0.787598
+24 8 21 1 0.320312 0.87207
+24 8 22 1 0.359863 0.938477
+24 8 23 1 0.369385 0.989258
+24 8 24 1 0.369629 1
+24 8 25 1 0.368164 1
+24 8 26 1 0.364258 1
+24 8 27 0.990723 0.358154 1
+24 8 28 0.91748 0.35083 1
+24 8 29 0.840332 0.342773 1
+24 8 30 0.761719 0.334717 1
+24 8 31 0.681152 0.326904 1
+24 9 0 1 0 0.0644531
+24 9 1 1 0 0.0644531
+24 9 2 1 0 0.0644531
+24 9 3 1 0 0.0644531
+24 9 4 1 0 0.0643921
+24 9 5 1 0 0.0643921
+24 9 6 1 0 0.0643921
+24 9 7 1 0 0.0643311
+24 9 8 1 0 0.064209
+24 9 9 1 0 0.0640259
+24 9 10 1 0 0.0637207
+24 9 11 1 0 0.0631104
+24 9 12 1 0 0.0621033
+24 9 13 1 0 0.0603638
+24 9 14 1 0 0.0587769
+24 9 15 1 0 0.175781
+24 9 16 1 0 0.344727
+24 9 17 1 0 0.470215
+24 9 18 1 0 0.57959
+24 9 19 1 0.0390625 0.687988
+24 9 20 1 0.241943 0.787109
+24 9 21 1 0.323242 0.87207
+24 9 22 1 0.362061 0.938477
+24 9 23 1 0.371582 0.989258
+24 9 24 1 0.371826 1
+24 9 25 1 0.370117 1
+24 9 26 1 0.365967 1
+24 9 27 0.990723 0.359863 1
+24 9 28 0.91748 0.352295 1
+24 9 29 0.840332 0.343994 1
+24 9 30 0.761719 0.335693 1
+24 9 31 0.681152 0.328125 1
+24 10 0 1 0 0.0601807
+24 10 1 1 0 0.0601807
+24 10 2 1 0 0.0601807
+24 10 3 1 0 0.0601807
+24 10 4 1 0 0.0601501
+24 10 5 1 0 0.0601501
+24 10 6 1 0 0.0601196
+24 10 7 1 0 0.0600586
+24 10 8 1 0 0.059967
+24 10 9 1 0 0.0597534
+24 10 10 1 0 0.0593872
+24 10 11 1 0 0.0587158
+24 10 12 1 0 0.0575562
+24 10 13 1 0 0.0555725
+24 10 14 1 0 0.0538025
+24 10 15 1 0 0.175903
+24 10 16 1 0 0.344727
+24 10 17 1 0 0.470459
+24 10 18 1 0 0.57959
+24 10 19 1 0.0995483 0.6875
+24 10 20 1 0.249878 0.787109
+24 10 21 1 0.328369 0.87207
+24 10 22 1 0.366455 0.938477
+24 10 23 1 0.375488 0.989258
+24 10 24 1 0.375488 1
+24 10 25 1 0.373535 1
+24 10 26 1 0.369141 1
+24 10 27 0.990723 0.362793 1
+24 10 28 0.916992 0.354736 1
+24 10 29 0.839844 0.346191 1
+24 10 30 0.76123 0.337891 1
+24 10 31 0.681152 0.329834 1
+24 11 0 1 0 0.051239
+24 11 1 1 0 0.0512085
+24 11 2 1 0 0.0512085
+24 11 3 1 0 0.0512085
+24 11 4 1 0 0.0512085
+24 11 5 1 0 0.051178
+24 11 6 1 0 0.0511475
+24 11 7 1 0 0.0510864
+24 11 8 1 0 0.0509338
+24 11 9 1 0 0.0506897
+24 11 10 1 0 0.0502014
+24 11 11 1 0 0.0493164
+24 11 12 1 0 0.04776
+24 11 13 1 0 0.0450134
+24 11 14 1 0 0.042572
+24 11 15 1 0 0.176147
+24 11 16 1 0 0.344482
+24 11 17 1 0 0.470215
+24 11 18 1 0 0.579102
+24 11 19 1 0.143799 0.6875
+24 11 20 1 0.262939 0.786621
+24 11 21 1 0.337158 0.87207
+24 11 22 1 0.373779 0.938477
+24 11 23 1 0.382324 0.989258
+24 11 24 1 0.381836 1
+24 11 25 1 0.379639 1
+24 11 26 1 0.374756 1
+24 11 27 0.990234 0.367676 1
+24 11 28 0.916504 0.359375 1
+24 11 29 0.839844 0.350342 1
+24 11 30 0.760742 0.341309 1
+24 11 31 0.680664 0.333008 1
+24 12 0 1 0 0.0216827
+24 12 1 1 0 0.0216675
+24 12 2 1 0 0.0216522
+24 12 3 1 0 0.021637
+24 12 4 1 0 0.0215912
+24 12 5 1 0 0.0215302
+24 12 6 1 0 0.0213776
+24 12 7 1 0 0.0210876
+24 12 8 1 0 0.0205078
+24 12 9 1 0 0.0193176
+24 12 10 1 0 0.0167847
+24 12 11 1 0 0.00946045
+24 12 12 1 0.0542603 0
+24 12 13 1 0.0825806 0
+24 12 14 1 0.0970459 0
+24 12 15 1 0.0971069 0.176758
+24 12 16 1 0.0552979 0.344238
+24 12 17 1 0.0744629 0.469482
+24 12 18 1 0.0874023 0.579102
+24 12 19 1 0.189819 0.686523
+24 12 20 1 0.283203 0.786133
+24 12 21 1 0.351074 0.871582
+24 12 22 1 0.385742 0.938477
+24 12 23 1 0.393555 0.989258
+24 12 24 1 0.392334 1
+24 12 25 1 0.389404 1
+24 12 26 1 0.383789 1
+24 12 27 0.989258 0.375977 1
+24 12 28 0.916016 0.366699 1
+24 12 29 0.838867 0.356934 1
+24 12 30 0.760254 0.347168 1
+24 12 31 0.679688 0.338135 1
+24 13 0 1 0.18042 0
+24 13 1 1 0.18042 0
+24 13 2 1 0.18042 0
+24 13 3 1 0.180542 0
+24 13 4 1 0.180542 0
+24 13 5 1 0.180542 0
+24 13 6 1 0.180664 0
+24 13 7 1 0.180786 0
+24 13 8 1 0.181152 0
+24 13 9 1 0.181885 0
+24 13 10 1 0.183105 0
+24 13 11 1 0.185181 0
+24 13 12 1 0.188721 0
+24 13 13 1 0.194214 0
+24 13 14 1 0.19812 0
+24 13 15 1 0.197144 0.178345
+24 13 16 1 0.187012 0.343994
+24 13 17 1 0.188232 0.468262
+24 13 18 1 0.193115 0.578613
+24 13 19 1 0.240234 0.685547
+24 13 20 1 0.312012 0.785645
+24 13 21 1 0.372314 0.871094
+24 13 22 1 0.404297 0.938477
+24 13 23 1 0.410889 0.989258
+24 13 24 1 0.408936 1
+24 13 25 1 0.404785 1
+24 13 26 1 0.398193 1
+24 13 27 0.988281 0.388916 1
+24 13 28 0.915039 0.378418 1
+24 13 29 0.837891 0.367432 1
+24 13 30 0.759277 0.356689 1
+24 13 31 0.678711 0.346436 1
+24 14 0 1 0.265869 0
+24 14 1 1 0.265869 0
+24 14 2 1 0.265869 0
+24 14 3 1 0.265869 0
+24 14 4 1 0.265869 0
+24 14 5 1 0.265869 0
+24 14 6 1 0.265869 0
+24 14 7 1 0.265869 0
+24 14 8 1 0.266113 0
+24 14 9 1 0.266602 0
+24 14 10 1 0.26709 0
+24 14 11 1 0.268311 0
+24 14 12 1 0.270264 0
+24 14 13 1 0.273438 0
+24 14 14 1 0.275635 0
+24 14 15 1 0.27417 0.182617
+24 14 16 1 0.267822 0.344238
+24 14 17 1 0.266602 0.466797
+24 14 18 1 0.270752 0.577637
+24 14 19 1 0.296875 0.684082
+24 14 20 1 0.35083 0.78418
+24 14 21 1 0.402588 0.870605
+24 14 22 1 0.431152 0.938477
+24 14 23 1 0.436279 0.989258
+24 14 24 1 0.433105 1
+24 14 25 1 0.42749 1
+24 14 26 1 0.419189 1
+24 14 27 0.986816 0.408447 1
+24 14 28 0.913086 0.395996 1
+24 14 29 0.835938 0.383301 1
+24 14 30 0.757324 0.370605 1
+24 14 31 0.676758 0.358887 1
+24 15 0 1 0.345947 0
+24 15 1 1 0.345947 0
+24 15 2 1 0.345947 0
+24 15 3 1 0.345947 0
+24 15 4 1 0.345947 0
+24 15 5 1 0.345947 0
+24 15 6 1 0.345947 0
+24 15 7 1 0.346191 0
+24 15 8 1 0.346191 0
+24 15 9 1 0.346436 0
+24 15 10 1 0.346924 0
+24 15 11 1 0.347656 0
+24 15 12 1 0.349121 0
+24 15 13 1 0.351074 0
+24 15 14 1 0.352539 0
+24 15 15 1 0.35083 0.192139
+24 15 16 1 0.346191 0.346191
+24 15 17 1 0.343506 0.46582
+24 15 18 1 0.347656 0.577637
+24 15 19 1 0.360596 0.681641
+24 15 20 1 0.39917 0.781738
+24 15 21 1 0.442383 0.869141
+24 15 22 1 0.467529 0.937988
+24 15 23 1 0.470947 0.98877
+24 15 24 1 0.466309 1
+24 15 25 1 0.458984 1
+24 15 26 1 0.448486 1
+24 15 27 0.983887 0.435303 1
+24 15 28 0.910156 0.420654 1
+24 15 29 0.833008 0.405518 1
+24 15 30 0.754395 0.390625 1
+24 15 31 0.674316 0.376953 1
+24 16 0 1 0.428711 0
+24 16 1 1 0.428711 0
+24 16 2 1 0.428711 0
+24 16 3 1 0.428711 0
+24 16 4 1 0.428711 0
+24 16 5 1 0.428711 0
+24 16 6 1 0.428711 0
+24 16 7 1 0.428955 0
+24 16 8 1 0.428955 0
+24 16 9 1 0.429199 0
+24 16 10 1 0.429443 0
+24 16 11 1 0.429932 0
+24 16 12 1 0.430908 0
+24 16 13 1 0.432373 0
+24 16 14 1 0.433594 0
+24 16 15 1 0.431641 0.210815
+24 16 16 1 0.428223 0.351807
+24 16 17 1 0.424805 0.466309
+24 16 18 1 0.426514 0.576172
+24 16 19 1 0.431885 0.678223
+24 16 20 1 0.457275 0.777832
+24 16 21 1 0.492188 0.866699
+24 16 22 1 0.51416 0.937012
+24 16 23 1 0.515625 0.988281
+24 16 24 1 0.509277 1
+24 16 25 1 0.5 1
+24 16 26 1 0.487061 1
+24 16 27 0.979492 0.470947 1
+24 16 28 0.905762 0.453369 1
+24 16 29 0.828613 0.435059 1
+24 16 30 0.75 0.41748 1
+24 16 31 0.669922 0.401123 1
+24 17 0 1 0.513672 0
+24 17 1 1 0.513672 0
+24 17 2 1 0.513672 0
+24 17 3 1 0.513672 0
+24 17 4 1 0.513672 0
+24 17 5 1 0.513672 0
+24 17 6 1 0.513672 0
+24 17 7 1 0.513672 0
+24 17 8 1 0.51416 0
+24 17 9 1 0.51416 0
+24 17 10 1 0.51416 0
+24 17 11 1 0.514648 0
+24 17 12 1 0.515625 0
+24 17 13 1 0.516602 0
+24 17 14 1 0.517578 0
+24 17 15 1 0.516113 0.240723
+24 17 16 1 0.513672 0.364502
+24 17 17 1 0.510254 0.471191
+24 17 18 1 0.507324 0.574219
+24 17 19 1 0.510254 0.675781
+24 17 20 1 0.522461 0.771973
+24 17 21 1 0.549316 0.862793
+24 17 22 1 0.568359 0.93457
+24 17 23 1 0.568848 0.987305
+24 17 24 1 0.560547 1
+24 17 25 1 0.548828 1
+24 17 26 1 0.533203 1
+24 17 27 0.973145 0.513672 1
+24 17 28 0.899414 0.49292 1
+24 17 29 0.822754 0.471436 1
+24 17 30 0.744141 0.450684 1
+24 17 31 0.664062 0.431152 1
+24 18 0 1 0.599121 0
+24 18 1 1 0.599121 0
+24 18 2 1 0.599121 0
+24 18 3 1 0.599121 0
+24 18 4 1 0.599121 0
+24 18 5 1 0.599121 0
+24 18 6 1 0.599121 0
+24 18 7 1 0.599121 0
+24 18 8 1 0.599609 0
+24 18 9 1 0.599609 0
+24 18 10 1 0.599609 0
+24 18 11 1 0.600098 0
+24 18 12 1 0.600586 0
+24 18 13 1 0.601562 0
+24 18 14 1 0.602539 0.125366
+24 18 15 1 0.602051 0.279053
+24 18 16 1 0.600586 0.38501
+24 18 17 1 0.597656 0.482666
+24 18 18 1 0.592773 0.577637
+24 18 19 1 0.590332 0.672852
+24 18 20 1 0.59375 0.765137
+24 18 21 1 0.611328 0.855957
+24 18 22 1 0.62793 0.931152
+24 18 23 1 0.627441 0.985352
+24 18 24 1 0.617676 1
+24 18 25 1 0.603516 1
+24 18 26 1 0.584961 1
+24 18 27 0.963867 0.562012 1
+24 18 28 0.890625 0.537598 1
+24 18 29 0.813965 0.512695 1
+24 18 30 0.73584 0.48877 1
+24 18 31 0.65625 0.466064 1
+24 19 0 1 0.682617 0.203735
+24 19 1 1 0.682617 0.203735
+24 19 2 1 0.682617 0.203735
+24 19 3 1 0.682617 0.203735
+24 19 4 1 0.682617 0.203735
+24 19 5 1 0.682617 0.203735
+24 19 6 1 0.682617 0.203735
+24 19 7 1 0.682617 0.203735
+24 19 8 1 0.682617 0.203857
+24 19 9 1 0.682617 0.203857
+24 19 10 1 0.683105 0.204102
+24 19 11 1 0.683105 0.204346
+24 19 12 1 0.683594 0.204712
+24 19 13 1 0.684082 0.205444
+24 19 14 1 0.685547 0.216431
+24 19 15 1 0.685547 0.318359
+24 19 16 1 0.685547 0.410889
+24 19 17 1 0.683594 0.500488
+24 19 18 1 0.678711 0.587891
+24 19 19 1 0.672363 0.673828
+24 19 20 1 0.669922 0.760742
+24 19 21 1 0.674316 0.84668
+24 19 22 1 0.687988 0.924805
+24 19 23 1 0.687988 0.981445
+24 19 24 1 0.676758 1
+24 19 25 1 0.661133 1
+24 19 26 1 0.63916 1
+24 19 27 0.952148 0.612793 1
+24 19 28 0.878906 0.584961 1
+24 19 29 0.803223 0.556641 1
+24 19 30 0.725586 0.529785 1
+24 19 31 0.645996 0.504395 1
+24 20 0 1 0.760742 0.27124
+24 20 1 1 0.760742 0.27124
+24 20 2 1 0.760742 0.27124
+24 20 3 1 0.760742 0.27124
+24 20 4 1 0.760742 0.27124
+24 20 5 1 0.760742 0.27124
+24 20 6 1 0.760742 0.27124
+24 20 7 1 0.760742 0.27124
+24 20 8 1 0.760742 0.27124
+24 20 9 1 0.760742 0.271484
+24 20 10 1 0.760742 0.271484
+24 20 11 1 0.76123 0.271484
+24 20 12 1 0.76123 0.271729
+24 20 13 1 0.761719 0.272217
+24 20 14 1 0.762695 0.272705
+24 20 15 1 0.763672 0.350342
+24 20 16 1 0.76416 0.434814
+24 20 17 1 0.763672 0.519531
+24 20 18 1 0.760254 0.603027
+24 20 19 1 0.753418 0.682129
+24 20 20 1 0.744141 0.757812
+24 20 21 1 0.739258 0.836914
+24 20 22 1 0.746094 0.915527
+24 20 23 1 0.747559 0.975586
+24 20 24 1 0.735352 1
+24 20 25 1 0.717773 1
+24 20 26 1 0.692871 1
+24 20 27 0.937012 0.663574 1
+24 20 28 0.864746 0.632812 1
+24 20 29 0.790039 0.601562 1
+24 20 30 0.713379 0.571777 1
+24 20 31 0.634277 0.543457 1
+24 21 0 1 0.833496 0.310303
+24 21 1 1 0.833496 0.310303
+24 21 2 1 0.833496 0.310303
+24 21 3 1 0.833496 0.310303
+24 21 4 1 0.833496 0.310547
+24 21 5 1 0.833496 0.310547
+24 21 6 1 0.833496 0.310547
+24 21 7 1 0.833496 0.310547
+24 21 8 1 0.833496 0.310547
+24 21 9 1 0.833496 0.310547
+24 21 10 1 0.833496 0.310547
+24 21 11 1 0.833496 0.310547
+24 21 12 1 0.833984 0.310547
+24 21 13 1 0.834473 0.310791
+24 21 14 1 0.834961 0.311035
+24 21 15 1 0.835938 0.369873
+24 21 16 1 0.837402 0.450439
+24 21 17 1 0.837402 0.533203
+24 21 18 1 0.835449 0.615723
+24 21 19 1 0.830566 0.693359
+24 21 20 1 0.820801 0.76416
+24 21 21 1 0.808105 0.831055
+24 21 22 1 0.802246 0.901855
+24 21 23 1 0.804688 0.967285
+24 21 24 1 0.792969 1
+24 21 25 1 0.772949 1
+24 21 26 0.984375 0.745605 1
+24 21 27 0.917969 0.713379 1
+24 21 28 0.847656 0.680176 1
+24 21 29 0.774414 0.646973 1
+24 21 30 0.699219 0.615234 1
+24 21 31 0.620605 0.584473 1
+24 22 0 1 0.898438 0.328369
+24 22 1 1 0.898438 0.328369
+24 22 2 1 0.898438 0.328369
+24 22 3 1 0.898438 0.328369
+24 22 4 1 0.898438 0.328369
+24 22 5 1 0.898438 0.328369
+24 22 6 1 0.898438 0.328369
+24 22 7 1 0.898438 0.328369
+24 22 8 1 0.898438 0.328369
+24 22 9 1 0.898438 0.328369
+24 22 10 1 0.898438 0.328369
+24 22 11 1 0.898438 0.328613
+24 22 12 1 0.898926 0.328613
+24 22 13 1 0.898926 0.328613
+24 22 14 1 0.899414 0.328613
+24 22 15 1 0.900879 0.373535
+24 22 16 1 0.902832 0.453857
+24 22 17 1 0.903809 0.537109
+24 22 18 1 0.902832 0.620117
+24 22 19 1 0.898926 0.699219
+24 22 20 1 0.891113 0.770996
+24 22 21 1 0.878418 0.834961
+24 22 22 1 0.861816 0.89209
+24 22 23 1 0.856934 0.95459
+24 22 24 1 0.847168 1
+24 22 25 1 0.825195 1
+24 22 26 0.959961 0.794922 1
+24 22 27 0.895996 0.76123 1
+24 22 28 0.828125 0.726562 1
+24 22 29 0.757324 0.692383 1
+24 22 30 0.683105 0.658691 1
+24 22 31 0.60498 0.626465 1
+24 23 0 1 0.952637 0.331055
+24 23 1 1 0.952637 0.331055
+24 23 2 1 0.952637 0.331055
+24 23 3 1 0.952637 0.331055
+24 23 4 1 0.952637 0.331055
+24 23 5 1 0.953125 0.331055
+24 23 6 1 0.953125 0.331055
+24 23 7 1 0.953125 0.331055
+24 23 8 1 0.953125 0.331055
+24 23 9 1 0.953125 0.331055
+24 23 10 1 0.953125 0.331055
+24 23 11 1 0.953125 0.331055
+24 23 12 1 0.953125 0.331055
+24 23 13 1 0.953613 0.331055
+24 23 14 1 0.953613 0.331055
+24 23 15 1 0.955078 0.36377
+24 23 16 1 0.957031 0.445557
+24 23 17 1 0.958984 0.529785
+24 23 18 1 0.958984 0.61377
+24 23 19 1 0.956543 0.694824
+24 23 20 1 0.950684 0.769043
+24 23 21 1 0.939941 0.835938
+24 23 22 1 0.924316 0.893555
+24 23 23 1 0.905273 0.940918
+24 23 24 1 0.895996 0.992188
+24 23 25 0.989258 0.871094 1
+24 23 26 0.933105 0.839355 1
+24 23 27 0.872559 0.806152 1
+24 23 28 0.808105 0.771973 1
+24 23 29 0.739258 0.736816 1
+24 23 30 0.666504 0.702148 1
+24 23 31 0.587891 0.66748 1
+24 24 0 1 0.996582 0.325928
+24 24 1 1 0.996582 0.325928
+24 24 2 1 0.996582 0.325928
+24 24 3 1 0.996582 0.325928
+24 24 4 1 0.996582 0.325928
+24 24 5 1 0.996582 0.325928
+24 24 6 1 0.99707 0.325928
+24 24 7 1 0.99707 0.325928
+24 24 8 1 0.99707 0.325928
+24 24 9 1 0.99707 0.325928
+24 24 10 1 0.99707 0.325928
+24 24 11 1 0.99707 0.325928
+24 24 12 1 0.99707 0.325928
+24 24 13 1 0.99707 0.325928
+24 24 14 1 0.997559 0.325928
+24 24 15 1 0.998535 0.345947
+24 24 16 1 1 0.429932
+24 24 17 1 1 0.515137
+24 24 18 1 1 0.600098
+24 24 19 1 1 0.681641
+24 24 20 1 0.997559 0.756836
+24 24 21 1 0.98877 0.825684
+24 24 22 1 0.976074 0.886719
+24 24 23 1 0.959473 0.9375
+24 24 24 1 0.939941 0.979004
+24 24 25 0.958496 0.913574 1
+24 24 26 0.907227 0.884277 1
+24 24 27 0.850586 0.851562 1
+24 24 28 0.788086 0.816895 1
+24 24 29 0.720215 0.780762 1
+24 24 30 0.647461 0.743652 1
+24 24 31 0.567383 0.707031 1
+24 25 0 1 1 0.317139
+24 25 1 1 1 0.317139
+24 25 2 1 1 0.317139
+24 25 3 1 1 0.317139
+24 25 4 1 1 0.317139
+24 25 5 1 1 0.317139
+24 25 6 1 1 0.317139
+24 25 7 1 1 0.317139
+24 25 8 1 1 0.317139
+24 25 9 1 1 0.317139
+24 25 10 1 1 0.317139
+24 25 11 1 1 0.317139
+24 25 12 1 1 0.317139
+24 25 13 1 1 0.317139
+24 25 14 1 1 0.317139
+24 25 15 1 1 0.322021
+24 25 16 1 1 0.408447
+24 25 17 1 1 0.494629
+24 25 18 1 1 0.57959
+24 25 19 1 1 0.660645
+24 25 20 1 1 0.73584
+24 25 21 1 1 0.805176
+24 25 22 1 1 0.866699
+24 25 23 0.997559 0.999512 0.91748
+24 25 24 0.966309 0.98291 0.962891
+24 25 25 0.931641 0.96582 1
+24 25 26 0.883789 0.937988 1
+24 25 27 0.827148 0.90332 1
+24 25 28 0.764648 0.866211 1
+24 25 29 0.696777 0.827637 1
+24 25 30 0.623047 0.788574 1
+24 25 31 0.541992 0.749023 1
+24 26 0 1 1 0.305908
+24 26 1 1 1 0.305908
+24 26 2 1 1 0.305908
+24 26 3 1 1 0.305908
+24 26 4 1 1 0.305908
+24 26 5 1 1 0.305908
+24 26 6 1 1 0.305908
+24 26 7 1 1 0.305908
+24 26 8 1 1 0.305908
+24 26 9 1 1 0.305908
+24 26 10 1 1 0.305908
+24 26 11 1 1 0.305908
+24 26 12 1 1 0.305908
+24 26 13 1 1 0.305908
+24 26 14 1 1 0.305908
+24 26 15 1 1 0.305908
+24 26 16 1 1 0.382568
+24 26 17 1 1 0.469238
+24 26 18 1 1 0.553711
+24 26 19 1 1 0.634277
+24 26 20 1 1 0.708984
+24 26 21 0.996582 1 0.77832
+24 26 22 0.973145 1 0.840332
+24 26 23 0.946777 1 0.894043
+24 26 24 0.919922 1 0.942383
+24 26 25 0.887695 1 0.989258
+24 26 26 0.848145 0.987793 1
+24 26 27 0.797852 0.958496 1
+24 26 28 0.736816 0.921387 1
+24 26 29 0.668945 0.880859 1
+24 26 30 0.59375 0.838867 1
+24 26 31 0.508789 0.796875 1
+24 27 0 0.975098 1 0.293457
+24 27 1 0.975098 1 0.293457
+24 27 2 0.975098 1 0.293457
+24 27 3 0.975098 1 0.293457
+24 27 4 0.975098 1 0.293457
+24 27 5 0.975098 1 0.293457
+24 27 6 0.975098 1 0.293457
+24 27 7 0.975098 1 0.293457
+24 27 8 0.975098 1 0.293457
+24 27 9 0.975098 1 0.293457
+24 27 10 0.975098 1 0.293213
+24 27 11 0.975098 1 0.293213
+24 27 12 0.975098 1 0.293213
+24 27 13 0.975098 1 0.293213
+24 27 14 0.975098 1 0.293213
+24 27 15 0.975098 1 0.293213
+24 27 16 0.974121 1 0.352295
+24 27 17 0.971191 1 0.44043
+24 27 18 0.966309 1 0.524414
+24 27 19 0.958496 1 0.604492
+24 27 20 0.946777 1 0.678711
+24 27 21 0.930664 1 0.748047
+24 27 22 0.910645 1 0.811523
+24 27 23 0.888184 1 0.867188
+24 27 24 0.86377 1 0.91748
+24 27 25 0.833496 1 0.96582
+24 27 26 0.796387 1 1
+24 27 27 0.751465 1 1
+24 27 28 0.695801 0.973633 1
+24 27 29 0.629395 0.93457 1
+24 27 30 0.552734 0.89209 1
+24 27 31 0.462891 0.847656 1
+24 28 0 0.895508 1 0.279541
+24 28 1 0.895508 1 0.279541
+24 28 2 0.895508 1 0.279541
+24 28 3 0.895508 1 0.279541
+24 28 4 0.895508 1 0.279541
+24 28 5 0.895508 1 0.279541
+24 28 6 0.895508 1 0.279541
+24 28 7 0.895508 1 0.279541
+24 28 8 0.895508 1 0.279541
+24 28 9 0.895508 1 0.279541
+24 28 10 0.895508 1 0.279541
+24 28 11 0.895508 1 0.279541
+24 28 12 0.895508 1 0.279541
+24 28 13 0.895508 1 0.279541
+24 28 14 0.895508 1 0.279541
+24 28 15 0.895508 1 0.279541
+24 28 16 0.894531 1 0.318359
+24 28 17 0.89209 1 0.408691
+24 28 18 0.887207 1 0.49292
+24 28 19 0.879883 1 0.572266
+24 28 20 0.869629 1 0.645996
+24 28 21 0.855957 1 0.715332
+24 28 22 0.838379 1 0.779297
+24 28 23 0.818359 1 0.836426
+24 28 24 0.795898 1 0.887695
+24 28 25 0.768066 1 0.9375
+24 28 26 0.73291 1 0.985352
+24 28 27 0.689453 1 1
+24 28 28 0.63623 1 1
+24 28 29 0.571777 0.983398 1
+24 28 30 0.49292 0.942383 1
+24 28 31 0.393311 0.898438 1
+24 29 0 0.806152 1 0.265137
+24 29 1 0.806152 1 0.265137
+24 29 2 0.806152 1 0.265137
+24 29 3 0.806152 1 0.265137
+24 29 4 0.806152 1 0.265137
+24 29 5 0.806152 1 0.265137
+24 29 6 0.806152 1 0.265137
+24 29 7 0.806152 1 0.265137
+24 29 8 0.806152 1 0.265137
+24 29 9 0.806152 1 0.265137
+24 29 10 0.806152 1 0.265137
+24 29 11 0.806152 1 0.265137
+24 29 12 0.806152 1 0.265137
+24 29 13 0.806152 1 0.265137
+24 29 14 0.806152 1 0.265137
+24 29 15 0.806152 1 0.265137
+24 29 16 0.806152 1 0.279053
+24 29 17 0.803223 1 0.373779
+24 29 18 0.798828 1 0.458496
+24 29 19 0.791992 1 0.537598
+24 29 20 0.782715 1 0.610352
+24 29 21 0.77002 1 0.679688
+24 29 22 0.754395 1 0.743652
+24 29 23 0.73584 1 0.80127
+24 29 24 0.714355 1 0.853027
+24 29 25 0.6875 1 0.904297
+24 29 26 0.65332 1 0.953613
+24 29 27 0.610352 1 0.999512
+24 29 28 0.556641 1 1
+24 29 29 0.489746 1 1
+24 29 30 0.4021 0.990723 1
+24 29 31 0.268799 0.948242 1
+24 30 0 0.707031 1 0.25
+24 30 1 0.707031 1 0.25
+24 30 2 0.707031 1 0.25
+24 30 3 0.707031 1 0.25
+24 30 4 0.707031 1 0.25
+24 30 5 0.707031 1 0.25
+24 30 6 0.707031 1 0.25
+24 30 7 0.707031 1 0.25
+24 30 8 0.707031 1 0.25
+24 30 9 0.707031 1 0.25
+24 30 10 0.707031 1 0.25
+24 30 11 0.707031 1 0.25
+24 30 12 0.707031 1 0.25
+24 30 13 0.707031 1 0.25
+24 30 14 0.707031 1 0.25
+24 30 15 0.70752 1 0.25
+24 30 16 0.70752 1 0.250244
+24 30 17 0.70459 1 0.335938
+24 30 18 0.699707 1 0.422119
+24 30 19 0.692383 1 0.500488
+24 30 20 0.682617 1 0.572754
+24 30 21 0.67041 1 0.640625
+24 30 22 0.654297 1 0.70459
+24 30 23 0.635742 1 0.761719
+24 30 24 0.614258 1 0.813965
+24 30 25 0.586426 1 0.865234
+24 30 26 0.55127 1 0.916016
+24 30 27 0.505859 1 0.964844
+24 30 28 0.446045 1 1
+24 30 29 0.36377 1 1
+24 30 30 0.224243 1 1
+24 30 31 0 0.995605 1
+24 31 0 0.592285 1 0.234985
+24 31 1 0.592285 1 0.234985
+24 31 2 0.592285 1 0.234985
+24 31 3 0.592285 1 0.234985
+24 31 4 0.592285 1 0.234985
+24 31 5 0.592285 1 0.234985
+24 31 6 0.592285 1 0.234985
+24 31 7 0.592285 1 0.234985
+24 31 8 0.592285 1 0.234985
+24 31 9 0.592285 1 0.234985
+24 31 10 0.592285 1 0.234985
+24 31 11 0.592285 1 0.234985
+24 31 12 0.592285 1 0.234985
+24 31 13 0.592285 1 0.234985
+24 31 14 0.592285 1 0.234985
+24 31 15 0.592773 1 0.234985
+24 31 16 0.593262 1 0.235107
+24 31 17 0.590332 1 0.294434
+24 31 18 0.583984 1 0.383545
+24 31 19 0.575195 1 0.46167
+24 31 20 0.563965 1 0.532715
+24 31 21 0.549316 1 0.599609
+24 31 22 0.530762 1 0.662109
+24 31 23 0.509277 1 0.71875
+24 31 24 0.484375 1 0.770508
+24 31 25 0.451416 1 0.822754
+24 31 26 0.407227 1 0.874512
+24 31 27 0.344727 1 0.925293
+24 31 28 0.242188 1 0.973633
+24 31 29 0 1 1
+24 31 30 0 1 1
+24 31 31 0 1 1
+25 0 0 1 0 0.0709839
+25 0 1 1 0 0.0709839
+25 0 2 1 0 0.0709839
+25 0 3 1 0 0.0709839
+25 0 4 1 0 0.0709839
+25 0 5 1 0 0.0709839
+25 0 6 1 0 0.0709229
+25 0 7 1 0 0.0709229
+25 0 8 1 0 0.0708618
+25 0 9 1 0 0.0706787
+25 0 10 1 0 0.0704346
+25 0 11 1 0 0.0700073
+25 0 12 1 0 0.0692139
+25 0 13 1 0 0.0678711
+25 0 14 1 0 0.0662231
+25 0 15 1 0 0.0646973
+25 0 16 1 0 0.298584
+25 0 17 1 0 0.431641
+25 0 18 1 0 0.543945
+25 0 19 1 0 0.649414
+25 0 20 1 0.136597 0.748047
+25 0 21 1 0.269043 0.836426
+25 0 22 1 0.336426 0.908691
+25 0 23 1 0.366699 0.964844
+25 0 24 1 0.374268 1
+25 0 25 1 0.374023 1
+25 0 26 1 0.371826 1
+25 0 27 1 0.367432 1
+25 0 28 1 0.361084 1
+25 0 29 0.928711 0.353516 1
+25 0 30 0.850586 0.345459 1
+25 0 31 0.770508 0.337158 1
+25 1 0 1 0 0.0709839
+25 1 1 1 0 0.0709839
+25 1 2 1 0 0.0709839
+25 1 3 1 0 0.0709839
+25 1 4 1 0 0.0709839
+25 1 5 1 0 0.0709839
+25 1 6 1 0 0.0709229
+25 1 7 1 0 0.0709229
+25 1 8 1 0 0.0708008
+25 1 9 1 0 0.0706787
+25 1 10 1 0 0.0704346
+25 1 11 1 0 0.0699463
+25 1 12 1 0 0.0691528
+25 1 13 1 0 0.0678711
+25 1 14 1 0 0.0662231
+25 1 15 1 0 0.0646973
+25 1 16 1 0 0.298584
+25 1 17 1 0 0.431641
+25 1 18 1 0 0.543945
+25 1 19 1 0 0.649414
+25 1 20 1 0.136597 0.748047
+25 1 21 1 0.269043 0.836426
+25 1 22 1 0.336426 0.908691
+25 1 23 1 0.366699 0.964844
+25 1 24 1 0.374268 1
+25 1 25 1 0.374023 1
+25 1 26 1 0.371826 1
+25 1 27 1 0.367432 1
+25 1 28 1 0.361084 1
+25 1 29 0.928711 0.353516 1
+25 1 30 0.850586 0.345459 1
+25 1 31 0.770508 0.337158 1
+25 2 0 1 0 0.0709839
+25 2 1 1 0 0.0709839
+25 2 2 1 0 0.0709839
+25 2 3 1 0 0.0709839
+25 2 4 1 0 0.0709229
+25 2 5 1 0 0.0709229
+25 2 6 1 0 0.0709229
+25 2 7 1 0 0.0708618
+25 2 8 1 0 0.0708008
+25 2 9 1 0 0.0706787
+25 2 10 1 0 0.0704346
+25 2 11 1 0 0.0699463
+25 2 12 1 0 0.0691528
+25 2 13 1 0 0.0678101
+25 2 14 1 0 0.0662231
+25 2 15 1 0 0.0646973
+25 2 16 1 0 0.298584
+25 2 17 1 0 0.431641
+25 2 18 1 0 0.543945
+25 2 19 1 0 0.649414
+25 2 20 1 0.136719 0.748047
+25 2 21 1 0.269043 0.836426
+25 2 22 1 0.336426 0.908691
+25 2 23 1 0.366943 0.964844
+25 2 24 1 0.374268 1
+25 2 25 1 0.374023 1
+25 2 26 1 0.371826 1
+25 2 27 1 0.367432 1
+25 2 28 1 0.361084 1
+25 2 29 0.928711 0.353516 1
+25 2 30 0.850586 0.345459 1
+25 2 31 0.770508 0.337158 1
+25 3 0 1 0 0.0709229
+25 3 1 1 0 0.0709229
+25 3 2 1 0 0.0709229
+25 3 3 1 0 0.0709229
+25 3 4 1 0 0.0709229
+25 3 5 1 0 0.0709229
+25 3 6 1 0 0.0708618
+25 3 7 1 0 0.0708618
+25 3 8 1 0 0.0708008
+25 3 9 1 0 0.0706177
+25 3 10 1 0 0.0703735
+25 3 11 1 0 0.0699463
+25 3 12 1 0 0.0691528
+25 3 13 1 0 0.0678101
+25 3 14 1 0 0.0661621
+25 3 15 1 0 0.0646362
+25 3 16 1 0 0.298584
+25 3 17 1 0 0.431641
+25 3 18 1 0 0.543945
+25 3 19 1 0 0.649414
+25 3 20 1 0.136963 0.748047
+25 3 21 1 0.269043 0.836426
+25 3 22 1 0.336426 0.908691
+25 3 23 1 0.366943 0.964844
+25 3 24 1 0.374268 1
+25 3 25 1 0.374023 1
+25 3 26 1 0.371826 1
+25 3 27 1 0.367432 1
+25 3 28 1 0.361084 1
+25 3 29 0.928711 0.353516 1
+25 3 30 0.850586 0.345459 1
+25 3 31 0.770508 0.337158 1
+25 4 0 1 0 0.0708618
+25 4 1 1 0 0.0708618
+25 4 2 1 0 0.0708618
+25 4 3 1 0 0.0708618
+25 4 4 1 0 0.0708618
+25 4 5 1 0 0.0708618
+25 4 6 1 0 0.0708008
+25 4 7 1 0 0.0708008
+25 4 8 1 0 0.0707397
+25 4 9 1 0 0.0705566
+25 4 10 1 0 0.0703125
+25 4 11 1 0 0.0698242
+25 4 12 1 0 0.0690308
+25 4 13 1 0 0.067749
+25 4 14 1 0 0.0661011
+25 4 15 1 0 0.0645752
+25 4 16 1 0 0.298584
+25 4 17 1 0 0.431641
+25 4 18 1 0 0.543945
+25 4 19 1 0 0.649414
+25 4 20 1 0.137329 0.748047
+25 4 21 1 0.269287 0.836426
+25 4 22 1 0.33667 0.908691
+25 4 23 1 0.366943 0.964844
+25 4 24 1 0.374268 1
+25 4 25 1 0.374023 1
+25 4 26 1 0.37207 1
+25 4 27 1 0.367676 1
+25 4 28 1 0.361328 1
+25 4 29 0.928711 0.353516 1
+25 4 30 0.850586 0.345459 1
+25 4 31 0.770508 0.337402 1
+25 5 0 1 0 0.0707397
+25 5 1 1 0 0.0707397
+25 5 2 1 0 0.0707397
+25 5 3 1 0 0.0707397
+25 5 4 1 0 0.0707397
+25 5 5 1 0 0.0707397
+25 5 6 1 0 0.0706787
+25 5 7 1 0 0.0706787
+25 5 8 1 0 0.0705566
+25 5 9 1 0 0.0704346
+25 5 10 1 0 0.0701904
+25 5 11 1 0 0.0697021
+25 5 12 1 0 0.0689087
+25 5 13 1 0 0.0675659
+25 5 14 1 0 0.065979
+25 5 15 1 0 0.0643921
+25 5 16 1 0 0.298584
+25 5 17 1 0 0.431641
+25 5 18 1 0 0.543945
+25 5 19 1 0 0.649414
+25 5 20 1 0.138062 0.748047
+25 5 21 1 0.269531 0.836426
+25 5 22 1 0.336914 0.908691
+25 5 23 1 0.367188 0.964844
+25 5 24 1 0.374512 1
+25 5 25 1 0.374268 1
+25 5 26 1 0.37207 1
+25 5 27 1 0.367676 1
+25 5 28 1 0.361328 1
+25 5 29 0.928711 0.35376 1
+25 5 30 0.850586 0.345459 1
+25 5 31 0.770508 0.337402 1
+25 6 0 1 0 0.0704956
+25 6 1 1 0 0.0704956
+25 6 2 1 0 0.0704956
+25 6 3 1 0 0.0704956
+25 6 4 1 0 0.0704956
+25 6 5 1 0 0.0704956
+25 6 6 1 0 0.0704346
+25 6 7 1 0 0.0704346
+25 6 8 1 0 0.0703735
+25 6 9 1 0 0.0701904
+25 6 10 1 0 0.0699463
+25 6 11 1 0 0.069458
+25 6 12 1 0 0.0686646
+25 6 13 1 0 0.0673218
+25 6 14 1 0 0.0656738
+25 6 15 1 0 0.0641479
+25 6 16 1 0 0.298584
+25 6 17 1 0 0.431641
+25 6 18 1 0 0.543945
+25 6 19 1 0 0.649414
+25 6 20 1 0.139404 0.748047
+25 6 21 1 0.27002 0.835938
+25 6 22 1 0.337158 0.908691
+25 6 23 1 0.367432 0.964844
+25 6 24 1 0.374756 1
+25 6 25 1 0.374512 1
+25 6 26 1 0.372314 1
+25 6 27 1 0.36792 1
+25 6 28 1 0.361572 1
+25 6 29 0.928711 0.35376 1
+25 6 30 0.850586 0.345703 1
+25 6 31 0.770508 0.337402 1
+25 7 0 1 0 0.0700073
+25 7 1 1 0 0.0700073
+25 7 2 1 0 0.0700073
+25 7 3 1 0 0.0700073
+25 7 4 1 0 0.0700073
+25 7 5 1 0 0.0700073
+25 7 6 1 0 0.0700073
+25 7 7 1 0 0.0699463
+25 7 8 1 0 0.0698853
+25 7 9 1 0 0.0697021
+25 7 10 1 0 0.069458
+25 7 11 1 0 0.0690308
+25 7 12 1 0 0.0681763
+25 7 13 1 0 0.0668335
+25 7 14 1 0 0.0651855
+25 7 15 1 0 0.0635986
+25 7 16 1 0 0.298584
+25 7 17 1 0 0.431641
+25 7 18 1 0 0.543945
+25 7 19 1 0 0.649414
+25 7 20 1 0.14209 0.748047
+25 7 21 1 0.270996 0.835938
+25 7 22 1 0.337891 0.908691
+25 7 23 1 0.36792 0.964844
+25 7 24 1 0.375244 1
+25 7 25 1 0.375 1
+25 7 26 1 0.372803 1
+25 7 27 1 0.368408 1
+25 7 28 1 0.361816 1
+25 7 29 0.928711 0.354248 1
+25 7 30 0.850586 0.345947 1
+25 7 31 0.770508 0.337891 1
+25 8 0 1 0 0.0690918
+25 8 1 1 0 0.0690918
+25 8 2 1 0 0.0690918
+25 8 3 1 0 0.0690918
+25 8 4 1 0 0.0690918
+25 8 5 1 0 0.0690918
+25 8 6 1 0 0.0690308
+25 8 7 1 0 0.0690308
+25 8 8 1 0 0.0689697
+25 8 9 1 0 0.0687866
+25 8 10 1 0 0.0685425
+25 8 11 1 0 0.0680542
+25 8 12 1 0 0.0671997
+25 8 13 1 0 0.0657959
+25 8 14 1 0 0.0640869
+25 8 15 1 0 0.0625
+25 8 16 1 0 0.298584
+25 8 17 1 0 0.431641
+25 8 18 1 0 0.543945
+25 8 19 1 0 0.649414
+25 8 20 1 0.146973 0.748047
+25 8 21 1 0.272705 0.835938
+25 8 22 1 0.339111 0.908691
+25 8 23 1 0.369141 0.964844
+25 8 24 1 0.376221 1
+25 8 25 1 0.375977 1
+25 8 26 1 0.373779 1
+25 8 27 1 0.369141 1
+25 8 28 1 0.362549 1
+25 8 29 0.928711 0.354736 1
+25 8 30 0.850586 0.346436 1
+25 8 31 0.770508 0.338379 1
+25 9 0 1 0 0.0672607
+25 9 1 1 0 0.0672607
+25 9 2 1 0 0.0672607
+25 9 3 1 0 0.0672607
+25 9 4 1 0 0.0672607
+25 9 5 1 0 0.0672607
+25 9 6 1 0 0.0671997
+25 9 7 1 0 0.0671997
+25 9 8 1 0 0.0670776
+25 9 9 1 0 0.0669556
+25 9 10 1 0 0.0666504
+25 9 11 1 0 0.0661621
+25 9 12 1 0 0.0653076
+25 9 13 1 0 0.0638428
+25 9 14 1 0 0.0620117
+25 9 15 1 0 0.0603638
+25 9 16 1 0 0.298584
+25 9 17 1 0 0.431396
+25 9 18 1 0 0.543945
+25 9 19 1 0 0.649414
+25 9 20 1 0.155884 0.748047
+25 9 21 1 0.275879 0.835938
+25 9 22 1 0.341309 0.908691
+25 9 23 1 0.371094 0.964844
+25 9 24 1 0.378174 1
+25 9 25 1 0.377686 1
+25 9 26 1 0.375244 1
+25 9 27 1 0.370605 1
+25 9 28 1 0.364014 1
+25 9 29 0.928711 0.355957 1
+25 9 30 0.850586 0.347656 1
+25 9 31 0.770508 0.339355 1
+25 10 0 1 0 0.0636597
+25 10 1 1 0 0.0636597
+25 10 2 1 0 0.0636597
+25 10 3 1 0 0.0636597
+25 10 4 1 0 0.0636597
+25 10 5 1 0 0.0636597
+25 10 6 1 0 0.0635986
+25 10 7 1 0 0.0635986
+25 10 8 1 0 0.0634766
+25 10 9 1 0 0.0633545
+25 10 10 1 0 0.0629883
+25 10 11 1 0 0.0624695
+25 10 12 1 0 0.0615234
+25 10 13 1 0 0.059906
+25 10 14 1 0 0.0578918
+25 10 15 1 0 0.0561218
+25 10 16 1 0 0.29834
+25 10 17 1 0 0.431396
+25 10 18 1 0 0.543945
+25 10 19 1 0 0.648926
+25 10 20 1 0.170044 0.747559
+25 10 21 1 0.281982 0.835938
+25 10 22 1 0.345703 0.908691
+25 10 23 1 0.374756 0.964844
+25 10 24 1 0.381592 1
+25 10 25 1 0.380859 1
+25 10 26 1 0.378418 1
+25 10 27 1 0.373535 1
+25 10 28 1 0.366455 1
+25 10 29 0.928223 0.358398 1
+25 10 30 0.850098 0.349609 1
+25 10 31 0.77002 0.341064 1
+25 11 0 1 0 0.0564575
+25 11 1 1 0 0.0564575
+25 11 2 1 0 0.0564575
+25 11 3 1 0 0.056427
+25 11 4 1 0 0.056427
+25 11 5 1 0 0.056427
+25 11 6 1 0 0.0563965
+25 11 7 1 0 0.0563354
+25 11 8 1 0 0.0562439
+25 11 9 1 0 0.0560303
+25 11 10 1 0 0.0556335
+25 11 11 1 0 0.0549622
+25 11 12 1 0 0.0538025
+25 11 13 1 0 0.0517578
+25 11 14 1 0 0.0491943
+25 11 15 1 0 0.0470276
+25 11 16 1 0 0.29834
+25 11 17 1 0 0.430908
+25 11 18 1 0 0.543457
+25 11 19 1 0 0.648926
+25 11 20 1 0.191284 0.747559
+25 11 21 1 0.291748 0.835938
+25 11 22 1 0.352783 0.908691
+25 11 23 1 0.381104 0.964844
+25 11 24 1 0.387451 1
+25 11 25 1 0.386475 1
+25 11 26 1 0.383545 1
+25 11 27 1 0.378174 1
+25 11 28 1 0.37085 1
+25 11 29 0.928223 0.362061 1
+25 11 30 0.850098 0.353027 1
+25 11 31 0.769531 0.343994 1
+25 12 0 1 0 0.0384521
+25 12 1 1 0 0.0384521
+25 12 2 1 0 0.0384521
+25 12 3 1 0 0.0384521
+25 12 4 1 0 0.0384216
+25 12 5 1 0 0.0383911
+25 12 6 1 0 0.0383606
+25 12 7 1 0 0.0382385
+25 12 8 1 0 0.0380554
+25 12 9 1 0 0.0376587
+25 12 10 1 0 0.0369263
+25 12 11 1 0 0.035614
+25 12 12 1 0 0.0331421
+25 12 13 1 0 0.0283051
+25 12 14 1 0 0.02005
+25 12 15 1 0.015686 0
+25 12 16 1 0 0.29834
+25 12 17 1 0 0.43042
+25 12 18 1 0 0.543457
+25 12 19 1 0.0991821 0.648438
+25 12 20 1 0.220703 0.74707
+25 12 21 1 0.307617 0.835449
+25 12 22 1 0.364746 0.908691
+25 12 23 1 0.391602 0.964844
+25 12 24 1 0.397217 1
+25 12 25 1 0.395752 1
+25 12 26 1 0.39209 1
+25 12 27 1 0.38623 1
+25 12 28 1 0.37793 1
+25 12 29 0.927734 0.368652 1
+25 12 30 0.849121 0.358887 1
+25 12 31 0.769043 0.349121 1
+25 13 0 1 0.151367 0
+25 13 1 1 0.151367 0
+25 13 2 1 0.151367 0
+25 13 3 1 0.151367 0
+25 13 4 1 0.151489 0
+25 13 5 1 0.151489 0
+25 13 6 1 0.151611 0
+25 13 7 1 0.151855 0
+25 13 8 1 0.152222 0
+25 13 9 1 0.153076 0
+25 13 10 1 0.154541 0
+25 13 11 1 0.156982 0
+25 13 12 1 0.161133 0
+25 13 13 1 0.167603 0
+25 13 14 1 0.174561 0
+25 13 15 1 0.178345 0
+25 13 16 1 0.166138 0.29834
+25 13 17 1 0.158569 0.429688
+25 13 18 1 0.164062 0.543457
+25 13 19 1 0.189209 0.647461
+25 13 20 1 0.258789 0.746094
+25 13 21 1 0.330811 0.834961
+25 13 22 1 0.382812 0.908203
+25 13 23 1 0.407715 0.964844
+25 13 24 1 0.412598 1
+25 13 25 1 0.410156 1
+25 13 26 1 0.405762 1
+25 13 27 1 0.398682 1
+25 13 28 1 0.389404 1
+25 13 29 0.926758 0.378906 1
+25 13 30 0.848633 0.36792 1
+25 13 31 0.768066 0.357178 1
+25 14 0 1 0.244751 0
+25 14 1 1 0.244751 0
+25 14 2 1 0.244751 0
+25 14 3 1 0.244751 0
+25 14 4 1 0.244751 0
+25 14 5 1 0.244751 0
+25 14 6 1 0.244873 0
+25 14 7 1 0.244995 0
+25 14 8 1 0.245117 0
+25 14 9 1 0.245605 0
+25 14 10 1 0.246216 0
+25 14 11 1 0.247437 0
+25 14 12 1 0.249512 0
+25 14 13 1 0.252686 0
+25 14 14 1 0.256592 0
+25 14 15 1 0.257812 0
+25 14 16 1 0.250977 0.298828
+25 14 17 1 0.246094 0.428955
+25 14 18 1 0.251465 0.543945
+25 14 19 1 0.260986 0.646484
+25 14 20 1 0.30542 0.745117
+25 14 21 1 0.363281 0.833984
+25 14 22 1 0.40918 0.907715
+25 14 23 1 0.431396 0.964844
+25 14 24 1 0.435059 1
+25 14 25 1 0.431641 1
+25 14 26 1 0.425781 1
+25 14 27 1 0.417236 1
+25 14 28 1 0.406494 1
+25 14 29 0.925293 0.394287 1
+25 14 30 0.84668 0.381836 1
+25 14 31 0.766602 0.369629 1
+25 15 0 1 0.325928 0
+25 15 1 1 0.325928 0
+25 15 2 1 0.325928 0
+25 15 3 1 0.325928 0
+25 15 4 1 0.325928 0
+25 15 5 1 0.325928 0
+25 15 6 1 0.325928 0
+25 15 7 1 0.325928 0
+25 15 8 1 0.326172 0
+25 15 9 1 0.326416 0
+25 15 10 1 0.326904 0
+25 15 11 1 0.327637 0
+25 15 12 1 0.328857 0
+25 15 13 1 0.331055 0
+25 15 14 1 0.33374 0
+25 15 15 1 0.333496 0
+25 15 16 1 0.329102 0.30127
+25 15 17 1 0.325195 0.428711
+25 15 18 1 0.328369 0.542969
+25 15 19 1 0.332764 0.64502
+25 15 20 1 0.360596 0.742676
+25 15 21 1 0.405518 0.83252
+25 15 22 1 0.44458 0.907227
+25 15 23 1 0.464111 0.964355
+25 15 24 1 0.466309 1
+25 15 25 1 0.461426 1
+25 15 26 1 0.453857 1
+25 15 27 1 0.443359 1
+25 15 28 0.998047 0.43042 1
+25 15 29 0.922852 0.41626 1
+25 15 30 0.844727 0.401611 1
+25 15 31 0.76416 0.387207 1
+25 16 0 1 0.407471 0
+25 16 1 1 0.407471 0
+25 16 2 1 0.407471 0
+25 16 3 1 0.407471 0
+25 16 4 1 0.407471 0
+25 16 5 1 0.407471 0
+25 16 6 1 0.407471 0
+25 16 7 1 0.407715 0
+25 16 8 1 0.407715 0
+25 16 9 1 0.407959 0
+25 16 10 1 0.408203 0
+25 16 11 1 0.408691 0
+25 16 12 1 0.409668 0
+25 16 13 1 0.411133 0
+25 16 14 1 0.413086 0
+25 16 15 1 0.412354 0.0990601
+25 16 16 1 0.409424 0.307373
+25 16 17 1 0.406006 0.429688
+25 16 18 1 0.405518 0.540527
+25 16 19 1 0.40918 0.643555
+25 16 20 1 0.424316 0.739746
+25 16 21 1 0.457275 0.830078
+25 16 22 1 0.489746 0.905762
+25 16 23 1 0.506348 0.963867
+25 16 24 1 0.507324 1
+25 16 25 1 0.500488 1
+25 16 26 1 0.490967 1
+25 16 27 1 0.478027 1
+25 16 28 0.994629 0.462402 1
+25 16 29 0.918945 0.445312 1
+25 16 30 0.84082 0.427979 1
+25 16 31 0.760742 0.411133 1
+25 17 0 1 0.490479 0
+25 17 1 1 0.490479 0
+25 17 2 1 0.490479 0
+25 17 3 1 0.490479 0
+25 17 4 1 0.490479 0
+25 17 5 1 0.490479 0
+25 17 6 1 0.490479 0
+25 17 7 1 0.490479 0
+25 17 8 1 0.490479 0
+25 17 9 1 0.490723 0
+25 17 10 1 0.490967 0
+25 17 11 1 0.491455 0
+25 17 12 1 0.491943 0
+25 17 13 1 0.493164 0
+25 17 14 1 0.494873 0
+25 17 15 1 0.494141 0.158569
+25 17 16 1 0.492188 0.320068
+25 17 17 1 0.489258 0.434814
+25 17 18 1 0.486816 0.540039
+25 17 19 1 0.489746 0.643066
+25 17 20 1 0.494385 0.73584
+25 17 21 1 0.516113 0.825684
+25 17 22 1 0.54248 0.90332
+25 17 23 1 0.557129 0.962402
+25 17 24 1 0.556152 1
+25 17 25 1 0.547363 1
+25 17 26 1 0.535645 1
+25 17 27 1 0.52002 1
+25 17 28 0.989258 0.501465 1
+25 17 29 0.914062 0.481445 1
+25 17 30 0.835938 0.460938 1
+25 17 31 0.755859 0.441162 1
+25 18 0 1 0.573242 0
+25 18 1 1 0.573242 0
+25 18 2 1 0.573242 0
+25 18 3 1 0.573242 0
+25 18 4 1 0.573242 0
+25 18 5 1 0.573242 0
+25 18 6 1 0.573242 0
+25 18 7 1 0.573242 0
+25 18 8 1 0.573242 0
+25 18 9 1 0.573242 0
+25 18 10 1 0.57373 0
+25 18 11 1 0.57373 0
+25 18 12 1 0.574219 0
+25 18 13 1 0.575195 0
+25 18 14 1 0.57666 0
+25 18 15 1 0.57666 0.213379
+25 18 16 1 0.575684 0.341064
+25 18 17 1 0.57373 0.445557
+25 18 18 1 0.570312 0.543945
+25 18 19 1 0.567871 0.639648
+25 18 20 1 0.569824 0.731445
+25 18 21 1 0.580078 0.819824
+25 18 22 1 0.600098 0.898926
+25 18 23 1 0.612793 0.959961
+25 18 24 1 0.61084 1
+25 18 25 1 0.600586 1
+25 18 26 1 0.586426 1
+25 18 27 1 0.567871 1
+25 18 28 0.981934 0.545898 1
+25 18 29 0.906738 0.522461 1
+25 18 30 0.829102 0.498779 1
+25 18 31 0.749023 0.47583 1
+25 19 0 1 0.653809 0.140869
+25 19 1 1 0.653809 0.140869
+25 19 2 1 0.653809 0.140869
+25 19 3 1 0.653809 0.140869
+25 19 4 1 0.653809 0.140869
+25 19 5 1 0.653809 0.140869
+25 19 6 1 0.653809 0.140869
+25 19 7 1 0.653809 0.140991
+25 19 8 1 0.653809 0.140991
+25 19 9 1 0.653809 0.141235
+25 19 10 1 0.654297 0.141479
+25 19 11 1 0.654297 0.141846
+25 19 12 1 0.654785 0.1427
+25 19 13 1 0.655273 0.143921
+25 19 14 1 0.656738 0.145874
+25 19 15 1 0.657227 0.263916
+25 19 16 1 0.657227 0.36792
+25 19 17 1 0.65625 0.462402
+25 19 18 1 0.65332 0.553223
+25 19 19 1 0.648438 0.641113
+25 19 20 1 0.645508 0.728027
+25 19 21 1 0.646973 0.812012
+25 19 22 1 0.659668 0.89209
+25 19 23 1 0.67041 0.956055
+25 19 24 1 0.667969 1
+25 19 25 1 0.655762 1
+25 19 26 1 0.639648 1
+25 19 27 1 0.618652 1
+25 19 28 0.972168 0.593262 1
+25 19 29 0.897461 0.566406 1
+25 19 30 0.819824 0.539551 1
+25 19 31 0.740723 0.513672 1
+25 20 0 1 0.729492 0.238037
+25 20 1 1 0.729492 0.238037
+25 20 2 1 0.729492 0.238037
+25 20 3 1 0.729492 0.238037
+25 20 4 1 0.729492 0.238037
+25 20 5 1 0.729492 0.238037
+25 20 6 1 0.729492 0.238037
+25 20 7 1 0.729492 0.238037
+25 20 8 1 0.729492 0.238037
+25 20 9 1 0.729492 0.238037
+25 20 10 1 0.72998 0.238159
+25 20 11 1 0.72998 0.238403
+25 20 12 1 0.730469 0.238647
+25 20 13 1 0.730957 0.239136
+25 20 14 1 0.731934 0.239868
+25 20 15 1 0.73291 0.305664
+25 20 16 1 0.733398 0.395264
+25 20 17 1 0.733398 0.482178
+25 20 18 1 0.731445 0.566895
+25 20 19 1 0.727051 0.648438
+25 20 20 1 0.720215 0.726562
+25 20 21 1 0.716309 0.806641
+25 20 22 1 0.718262 0.882812
+25 20 23 1 0.726562 0.949219
+25 20 24 1 0.724609 0.999023
+25 20 25 1 0.711426 1
+25 20 26 1 0.693359 1
+25 20 27 1 0.669434 1
+25 20 28 0.959961 0.641113 1
+25 20 29 0.885742 0.611328 1
+25 20 30 0.809082 0.581543 1
+25 20 31 0.730469 0.552246 1
+25 21 0 1 0.800781 0.291504
+25 21 1 1 0.800781 0.291504
+25 21 2 1 0.800781 0.291504
+25 21 3 1 0.800781 0.291504
+25 21 4 1 0.800781 0.291504
+25 21 5 1 0.800781 0.291504
+25 21 6 1 0.800781 0.291504
+25 21 7 1 0.800781 0.291504
+25 21 8 1 0.800781 0.291748
+25 21 9 1 0.800781 0.291748
+25 21 10 1 0.800781 0.291748
+25 21 11 1 0.800781 0.291748
+25 21 12 1 0.80127 0.291992
+25 21 13 1 0.801758 0.292236
+25 21 14 1 0.802246 0.29248
+25 21 15 1 0.803711 0.335938
+25 21 16 1 0.804688 0.41748
+25 21 17 1 0.805664 0.5
+25 21 18 1 0.804688 0.581543
+25 21 19 1 0.80127 0.65918
+25 21 20 1 0.793945 0.731934
+25 21 21 1 0.784668 0.801758
+25 21 22 1 0.77832 0.872559
+25 21 23 1 0.780762 0.939453
+25 21 24 1 0.779785 0.992188
+25 21 25 1 0.766602 1
+25 21 26 1 0.746582 1
+25 21 27 1 0.719727 1
+25 21 28 0.944824 0.688965 1
+25 21 29 0.871582 0.65625 1
+25 21 30 0.795898 0.624023 1
+25 21 31 0.718262 0.592285 1
+25 22 0 1 0.865234 0.322266
+25 22 1 1 0.865234 0.322266
+25 22 2 1 0.865234 0.322266
+25 22 3 1 0.865234 0.322266
+25 22 4 1 0.865234 0.322266
+25 22 5 1 0.865234 0.322266
+25 22 6 1 0.865234 0.322266
+25 22 7 1 0.865234 0.322266
+25 22 8 1 0.865234 0.322266
+25 22 9 1 0.865234 0.322266
+25 22 10 1 0.865234 0.322266
+25 22 11 1 0.865723 0.322266
+25 22 12 1 0.865723 0.322266
+25 22 13 1 0.866211 0.32251
+25 22 14 1 0.866699 0.322754
+25 22 15 1 0.867676 0.351074
+25 22 16 1 0.869629 0.429443
+25 22 17 1 0.871094 0.510254
+25 22 18 1 0.871094 0.59082
+25 22 19 1 0.868652 0.667969
+25 22 20 1 0.862793 0.739258
+25 22 21 1 0.852539 0.804688
+25 22 22 1 0.839844 0.865723
+25 22 23 1 0.833008 0.926758
+25 22 24 1 0.832031 0.983398
+25 22 25 1 0.818848 1
+25 22 26 1 0.797363 1
+25 22 27 0.994141 0.768066 1
+25 22 28 0.926758 0.734863 1
+25 22 29 0.85498 0.700195 1
+25 22 30 0.78125 0.666016 1
+25 22 31 0.70459 0.632812 1
+25 23 0 1 0.920898 0.334961
+25 23 1 1 0.920898 0.334961
+25 23 2 1 0.920898 0.334961
+25 23 3 1 0.920898 0.334961
+25 23 4 1 0.920898 0.334961
+25 23 5 1 0.920898 0.334961
+25 23 6 1 0.920898 0.334961
+25 23 7 1 0.920898 0.334961
+25 23 8 1 0.920898 0.335205
+25 23 9 1 0.920898 0.335205
+25 23 10 1 0.920898 0.335205
+25 23 11 1 0.920898 0.335205
+25 23 12 1 0.921387 0.335205
+25 23 13 1 0.921387 0.335205
+25 23 14 1 0.921875 0.335205
+25 23 15 1 0.922852 0.351562
+25 23 16 1 0.924805 0.429688
+25 23 17 1 0.926758 0.510254
+25 23 18 1 0.927734 0.591309
+25 23 19 1 0.92627 0.669434
+25 23 20 1 0.921875 0.742188
+25 23 21 1 0.913574 0.808105
+25 23 22 1 0.900391 0.866211
+25 23 23 1 0.885254 0.916992
+25 23 24 1 0.878418 0.971191
+25 23 25 1 0.867188 1
+25 23 26 1 0.84375 1
+25 23 27 0.97168 0.812012 1
+25 23 28 0.90625 0.777344 1
+25 23 29 0.837402 0.742188 1
+25 23 30 0.765137 0.707031 1
+25 23 31 0.689941 0.671875 1
+25 24 0 1 0.967773 0.336182
+25 24 1 1 0.967773 0.336182
+25 24 2 1 0.967773 0.336182
+25 24 3 1 0.967773 0.336182
+25 24 4 1 0.967773 0.336182
+25 24 5 1 0.967773 0.336182
+25 24 6 1 0.967773 0.336182
+25 24 7 1 0.967773 0.336182
+25 24 8 1 0.967773 0.336182
+25 24 9 1 0.967773 0.336182
+25 24 10 1 0.967773 0.336182
+25 24 11 1 0.967773 0.336182
+25 24 12 1 0.967773 0.336182
+25 24 13 1 0.968262 0.336182
+25 24 14 1 0.968262 0.336182
+25 24 15 1 0.96875 0.340576
+25 24 16 1 0.97168 0.419922
+25 24 17 1 0.974121 0.501465
+25 24 18 1 0.975586 0.583496
+25 24 19 1 0.975098 0.662598
+25 24 20 1 0.972168 0.736328
+25 24 21 1 0.965332 0.804688
+25 24 22 1 0.95459 0.865234
+25 24 23 1 0.939453 0.915527
+25 24 24 1 0.922363 0.958496
+25 24 25 1 0.910645 1
+25 24 26 1 0.884766 1
+25 24 27 0.946777 0.852539 1
+25 24 28 0.884766 0.818359 1
+25 24 29 0.818848 0.782715 1
+25 24 30 0.749023 0.74707 1
+25 24 31 0.674316 0.710938 1
+25 25 0 1 1 0.330078
+25 25 1 1 1 0.330078
+25 25 2 1 1 0.330078
+25 25 3 1 1 0.330078
+25 25 4 1 1 0.330078
+25 25 5 1 1 0.330078
+25 25 6 1 1 0.330078
+25 25 7 1 1 0.330078
+25 25 8 1 1 0.330078
+25 25 9 1 1 0.330078
+25 25 10 1 1 0.330078
+25 25 11 1 1 0.330078
+25 25 12 1 1 0.330078
+25 25 13 1 1 0.330078
+25 25 14 1 1 0.330078
+25 25 15 1 1 0.330078
+25 25 16 1 1 0.402588
+25 25 17 1 1 0.485352
+25 25 18 1 1 0.567871
+25 25 19 1 1 0.647461
+25 25 20 1 1 0.72168
+25 25 21 1 1 0.791016
+25 25 22 1 1 0.853516
+25 25 23 1 0.989746 0.907227
+25 25 24 1 0.974121 0.952637
+25 25 25 1 0.954102 0.994141
+25 25 26 0.973145 0.927246 1
+25 25 27 0.92041 0.896973 1
+25 25 28 0.862305 0.86377 1
+25 25 29 0.79834 0.827637 1
+25 25 30 0.729492 0.790527 1
+25 25 31 0.654785 0.752441 1
+25 26 0 1 1 0.320557
+25 26 1 1 1 0.320557
+25 26 2 1 1 0.320557
+25 26 3 1 1 0.320557
+25 26 4 1 1 0.320557
+25 26 5 1 1 0.320557
+25 26 6 1 1 0.320557
+25 26 7 1 1 0.320557
+25 26 8 1 1 0.320557
+25 26 9 1 1 0.320557
+25 26 10 1 1 0.320557
+25 26 11 1 1 0.320557
+25 26 12 1 1 0.320557
+25 26 13 1 1 0.320557
+25 26 14 1 1 0.320557
+25 26 15 1 1 0.320312
+25 26 16 1 1 0.379395
+25 26 17 1 1 0.463379
+25 26 18 1 1 0.545898
+25 26 19 1 1 0.625
+25 26 20 1 1 0.699219
+25 26 21 1 1 0.768555
+25 26 22 1 1 0.831543
+25 26 23 1 1 0.885742
+25 26 24 1 1 0.931641
+25 26 25 0.97998 0.99707 0.976562
+25 26 26 0.943848 0.978516 1
+25 26 27 0.89502 0.949707 1
+25 26 28 0.837402 0.914551 1
+25 26 29 0.773926 0.876953 1
+25 26 30 0.705078 0.837402 1
+25 26 31 0.630371 0.797363 1
+25 27 0 1 1 0.308838
+25 27 1 1 1 0.308838
+25 27 2 1 1 0.308838
+25 27 3 1 1 0.308838
+25 27 4 1 1 0.308838
+25 27 5 1 1 0.308838
+25 27 6 1 1 0.308838
+25 27 7 1 1 0.308838
+25 27 8 1 1 0.308838
+25 27 9 1 1 0.308838
+25 27 10 1 1 0.308838
+25 27 11 1 1 0.308838
+25 27 12 1 1 0.308838
+25 27 13 1 1 0.308838
+25 27 14 1 1 0.308838
+25 27 15 1 1 0.308838
+25 27 16 1 1 0.351562
+25 27 17 1 1 0.437012
+25 27 18 1 1 0.519531
+25 27 19 1 1 0.598145
+25 27 20 1 1 0.671387
+25 27 21 1 1 0.740723
+25 27 22 1 1 0.803223
+25 27 23 0.983887 1 0.858398
+25 27 24 0.959473 1 0.906738
+25 27 25 0.931641 1 0.95459
+25 27 26 0.897949 1 1
+25 27 27 0.856934 0.998047 1
+25 27 28 0.805176 0.967773 1
+25 27 29 0.744141 0.930176 1
+25 27 30 0.675293 0.88916 1
+25 27 31 0.599121 0.84668 1
+25 28 0 0.98291 1 0.295654
+25 28 1 0.98291 1 0.295654
+25 28 2 0.98291 1 0.295654
+25 28 3 0.98291 1 0.295654
+25 28 4 0.98291 1 0.295654
+25 28 5 0.98291 1 0.295654
+25 28 6 0.98291 1 0.295654
+25 28 7 0.98291 1 0.295654
+25 28 8 0.98291 1 0.295654
+25 28 9 0.98291 1 0.295654
+25 28 10 0.98291 1 0.295654
+25 28 11 0.98291 1 0.295654
+25 28 12 0.98291 1 0.295654
+25 28 13 0.982422 1 0.295654
+25 28 14 0.982422 1 0.295654
+25 28 15 0.982422 1 0.29541
+25 28 16 0.981934 1 0.319336
+25 28 17 0.980957 1 0.406982
+25 28 18 0.978027 1 0.489502
+25 28 19 0.972656 1 0.567383
+25 28 20 0.964844 1 0.640137
+25 28 21 0.953125 1 0.708984
+25 28 22 0.9375 1 0.771973
+25 28 23 0.919434 1 0.828125
+25 28 24 0.898438 1 0.878418
+25 28 25 0.873535 1 0.927734
+25 28 26 0.842285 1 0.976074
+25 28 27 0.803711 1 1
+25 28 28 0.756836 1 1
+25 28 29 0.700195 0.979492 1
+25 28 30 0.633301 0.939941 1
+25 28 31 0.556152 0.897461 1
+25 29 0 0.900391 1 0.28125
+25 29 1 0.900391 1 0.28125
+25 29 2 0.900391 1 0.28125
+25 29 3 0.900391 1 0.28125
+25 29 4 0.900391 1 0.28125
+25 29 5 0.900391 1 0.28125
+25 29 6 0.900391 1 0.28125
+25 29 7 0.900391 1 0.28125
+25 29 8 0.900391 1 0.28125
+25 29 9 0.900391 1 0.28125
+25 29 10 0.900391 1 0.28125
+25 29 11 0.900391 1 0.28125
+25 29 12 0.900391 1 0.28125
+25 29 13 0.900391 1 0.28125
+25 29 14 0.900391 1 0.28125
+25 29 15 0.900391 1 0.28125
+25 29 16 0.900391 1 0.281982
+25 29 17 0.898926 1 0.373535
+25 29 18 0.895996 1 0.456543
+25 29 19 0.891113 1 0.533691
+25 29 20 0.883789 1 0.605957
+25 29 21 0.874023 1 0.673828
+25 29 22 0.860352 1 0.737305
+25 29 23 0.844727 1 0.793945
+25 29 24 0.826172 1 0.845215
+25 29 25 0.803223 1 0.895996
+25 29 26 0.774414 1 0.945801
+25 29 27 0.737793 1 0.992188
+25 29 28 0.693359 1 1
+25 29 29 0.639648 1 1
+25 29 30 0.574707 0.988281 1
+25 29 31 0.495117 0.947266 1
+25 30 0 0.810547 1 0.266357
+25 30 1 0.810547 1 0.266357
+25 30 2 0.810547 1 0.266357
+25 30 3 0.810547 1 0.266357
+25 30 4 0.810547 1 0.266357
+25 30 5 0.810547 1 0.266357
+25 30 6 0.810547 1 0.266357
+25 30 7 0.810547 1 0.266357
+25 30 8 0.810547 1 0.266357
+25 30 9 0.810547 1 0.266357
+25 30 10 0.810547 1 0.266357
+25 30 11 0.810547 1 0.266357
+25 30 12 0.810547 1 0.266357
+25 30 13 0.810547 1 0.266357
+25 30 14 0.810547 1 0.266357
+25 30 15 0.810547 1 0.266357
+25 30 16 0.810547 1 0.266357
+25 30 17 0.809082 1 0.337158
+25 30 18 0.806152 1 0.421387
+25 30 19 0.800781 1 0.498291
+25 30 20 0.793945 1 0.569336
+25 30 21 0.784668 1 0.636719
+25 30 22 0.772461 1 0.699707
+25 30 23 0.757812 1 0.756348
+25 30 24 0.740723 1 0.807617
+25 30 25 0.719238 1 0.859375
+25 30 26 0.691895 1 0.910156
+25 30 27 0.657227 1 0.958984
+25 30 28 0.61377 1 1
+25 30 29 0.55957 1 1
+25 30 30 0.492188 1 1
+25 30 31 0.403809 0.994629 1
+25 31 0 0.710449 1 0.251221
+25 31 1 0.710449 1 0.251221
+25 31 2 0.710449 1 0.251221
+25 31 3 0.710449 1 0.251221
+25 31 4 0.710449 1 0.251221
+25 31 5 0.710449 1 0.251221
+25 31 6 0.710449 1 0.251221
+25 31 7 0.710449 1 0.251221
+25 31 8 0.710449 1 0.251221
+25 31 9 0.710449 1 0.251221
+25 31 10 0.710449 1 0.251221
+25 31 11 0.710449 1 0.251221
+25 31 12 0.710449 1 0.251221
+25 31 13 0.710449 1 0.251221
+25 31 14 0.710449 1 0.251221
+25 31 15 0.710449 1 0.251221
+25 31 16 0.710938 1 0.251465
+25 31 17 0.709473 1 0.296875
+25 31 18 0.705566 1 0.384033
+25 31 19 0.700195 1 0.460938
+25 31 20 0.692871 1 0.53125
+25 31 21 0.683105 1 0.597168
+25 31 22 0.67041 1 0.65918
+25 31 23 0.65625 1 0.715332
+25 31 24 0.63916 1 0.766602
+25 31 25 0.617676 1 0.818359
+25 31 26 0.589844 1 0.870117
+25 31 27 0.554199 1 0.920898
+25 31 28 0.508301 1 0.969238
+25 31 29 0.447998 1 1
+25 31 30 0.365234 1 1
+25 31 31 0.224854 1 1
+26 0 0 1 0 0.072937
+26 0 1 1 0 0.072937
+26 0 2 1 0 0.072937
+26 0 3 1 0 0.072937
+26 0 4 1 0 0.072937
+26 0 5 1 0 0.072876
+26 0 6 1 0 0.072876
+26 0 7 1 0 0.072876
+26 0 8 1 0 0.0728149
+26 0 9 1 0 0.0726929
+26 0 10 1 0 0.0724487
+26 0 11 1 0 0.0720215
+26 0 12 1 0 0.0713501
+26 0 13 1 0 0.0702515
+26 0 14 1 0 0.0683594
+26 0 15 1 0 0.0672607
+26 0 16 1 0 0.239624
+26 0 17 1 0 0.387695
+26 0 18 1 0 0.505371
+26 0 19 1 0 0.608398
+26 0 20 1 0 0.705566
+26 0 21 1 0.191772 0.79541
+26 0 22 1 0.292725 0.872559
+26 0 23 1 0.347656 0.934082
+26 0 24 1 0.373291 0.982422
+26 0 25 1 0.380371 1
+26 0 26 1 0.379395 1
+26 0 27 1 0.376709 1
+26 0 28 1 0.371582 1
+26 0 29 1 0.364746 1
+26 0 30 0.937988 0.356934 1
+26 0 31 0.858398 0.348633 1
+26 1 0 1 0 0.072937
+26 1 1 1 0 0.072937
+26 1 2 1 0 0.072937
+26 1 3 1 0 0.072876
+26 1 4 1 0 0.072876
+26 1 5 1 0 0.072876
+26 1 6 1 0 0.072876
+26 1 7 1 0 0.0728149
+26 1 8 1 0 0.0727539
+26 1 9 1 0 0.0726318
+26 1 10 1 0 0.0724487
+26 1 11 1 0 0.0720215
+26 1 12 1 0 0.0713501
+26 1 13 1 0 0.0702515
+26 1 14 1 0 0.0683594
+26 1 15 1 0 0.0672607
+26 1 16 1 0 0.239624
+26 1 17 1 0 0.387695
+26 1 18 1 0 0.505371
+26 1 19 1 0 0.608398
+26 1 20 1 0 0.705566
+26 1 21 1 0.191772 0.79541
+26 1 22 1 0.292725 0.872559
+26 1 23 1 0.347656 0.934082
+26 1 24 1 0.373291 0.982422
+26 1 25 1 0.380371 1
+26 1 26 1 0.379395 1
+26 1 27 1 0.376709 1
+26 1 28 1 0.371582 1
+26 1 29 1 0.364746 1
+26 1 30 0.937988 0.356934 1
+26 1 31 0.858398 0.348633 1
+26 2 0 1 0 0.072876
+26 2 1 1 0 0.072876
+26 2 2 1 0 0.072876
+26 2 3 1 0 0.072876
+26 2 4 1 0 0.072876
+26 2 5 1 0 0.072876
+26 2 6 1 0 0.072876
+26 2 7 1 0 0.0728149
+26 2 8 1 0 0.0727539
+26 2 9 1 0 0.0726318
+26 2 10 1 0 0.0724487
+26 2 11 1 0 0.0720215
+26 2 12 1 0 0.0713501
+26 2 13 1 0 0.0701904
+26 2 14 1 0 0.0683594
+26 2 15 1 0 0.0671997
+26 2 16 1 0 0.239624
+26 2 17 1 0 0.387695
+26 2 18 1 0 0.505371
+26 2 19 1 0 0.608398
+26 2 20 1 0 0.705566
+26 2 21 1 0.191895 0.79541
+26 2 22 1 0.292969 0.872559
+26 2 23 1 0.347656 0.934082
+26 2 24 1 0.373535 0.982422
+26 2 25 1 0.380371 1
+26 2 26 1 0.379395 1
+26 2 27 1 0.376709 1
+26 2 28 1 0.371582 1
+26 2 29 1 0.364746 1
+26 2 30 0.937988 0.356934 1
+26 2 31 0.858398 0.348633 1
+26 3 0 1 0 0.072876
+26 3 1 1 0 0.072876
+26 3 2 1 0 0.072876
+26 3 3 1 0 0.072876
+26 3 4 1 0 0.072876
+26 3 5 1 0 0.072876
+26 3 6 1 0 0.0728149
+26 3 7 1 0 0.0728149
+26 3 8 1 0 0.0727539
+26 3 9 1 0 0.0726318
+26 3 10 1 0 0.0723877
+26 3 11 1 0 0.0720215
+26 3 12 1 0 0.0712891
+26 3 13 1 0 0.0701904
+26 3 14 1 0 0.0682983
+26 3 15 1 0 0.0671997
+26 3 16 1 0 0.239624
+26 3 17 1 0 0.387695
+26 3 18 1 0 0.505371
+26 3 19 1 0 0.608398
+26 3 20 1 0 0.705566
+26 3 21 1 0.192017 0.79541
+26 3 22 1 0.292969 0.872559
+26 3 23 1 0.347656 0.934082
+26 3 24 1 0.373535 0.982422
+26 3 25 1 0.380371 1
+26 3 26 1 0.379395 1
+26 3 27 1 0.376709 1
+26 3 28 1 0.371582 1
+26 3 29 1 0.364746 1
+26 3 30 0.937988 0.356934 1
+26 3 31 0.858398 0.348633 1
+26 4 0 1 0 0.0728149
+26 4 1 1 0 0.0728149
+26 4 2 1 0 0.0728149
+26 4 3 1 0 0.0728149
+26 4 4 1 0 0.0728149
+26 4 5 1 0 0.0728149
+26 4 6 1 0 0.0727539
+26 4 7 1 0 0.0727539
+26 4 8 1 0 0.0726929
+26 4 9 1 0 0.0725708
+26 4 10 1 0 0.0723267
+26 4 11 1 0 0.0719604
+26 4 12 1 0 0.0712891
+26 4 13 1 0 0.0701294
+26 4 14 1 0 0.0682373
+26 4 15 1 0 0.0671387
+26 4 16 1 0 0.239624
+26 4 17 1 0 0.387695
+26 4 18 1 0 0.505371
+26 4 19 1 0 0.608398
+26 4 20 1 0 0.705566
+26 4 21 1 0.192139 0.79541
+26 4 22 1 0.292969 0.872559
+26 4 23 1 0.3479 0.934082
+26 4 24 1 0.373535 0.982422
+26 4 25 1 0.380371 1
+26 4 26 1 0.379639 1
+26 4 27 1 0.376709 1
+26 4 28 1 0.371582 1
+26 4 29 1 0.364746 1
+26 4 30 0.937988 0.356934 1
+26 4 31 0.858398 0.348633 1
+26 5 0 1 0 0.0726929
+26 5 1 1 0 0.0726929
+26 5 2 1 0 0.0726929
+26 5 3 1 0 0.0726929
+26 5 4 1 0 0.0726929
+26 5 5 1 0 0.0726929
+26 5 6 1 0 0.0726929
+26 5 7 1 0 0.0726318
+26 5 8 1 0 0.0725708
+26 5 9 1 0 0.0724487
+26 5 10 1 0 0.0722046
+26 5 11 1 0 0.0718384
+26 5 12 1 0 0.071167
+26 5 13 1 0 0.0700073
+26 5 14 1 0 0.0681152
+26 5 15 1 0 0.0670166
+26 5 16 1 0 0.239624
+26 5 17 1 0 0.387695
+26 5 18 1 0 0.505371
+26 5 19 1 0 0.608398
+26 5 20 1 0 0.705566
+26 5 21 1 0.192627 0.79541
+26 5 22 1 0.293213 0.872559
+26 5 23 1 0.3479 0.934082
+26 5 24 1 0.373779 0.982422
+26 5 25 1 0.380615 1
+26 5 26 1 0.379639 1
+26 5 27 1 0.376709 1
+26 5 28 1 0.371826 1
+26 5 29 1 0.36499 1
+26 5 30 0.937988 0.356934 1
+26 5 31 0.858398 0.348633 1
+26 6 0 1 0 0.0725098
+26 6 1 1 0 0.0725098
+26 6 2 1 0 0.0725098
+26 6 3 1 0 0.0725098
+26 6 4 1 0 0.0725098
+26 6 5 1 0 0.0724487
+26 6 6 1 0 0.0724487
+26 6 7 1 0 0.0724487
+26 6 8 1 0 0.0723877
+26 6 9 1 0 0.0722656
+26 6 10 1 0 0.0720215
+26 6 11 1 0 0.0715942
+26 6 12 1 0 0.0709229
+26 6 13 1 0 0.0697632
+26 6 14 1 0 0.0678711
+26 6 15 1 0 0.0667725
+26 6 16 1 0 0.239624
+26 6 17 1 0 0.387695
+26 6 18 1 0 0.505371
+26 6 19 1 0 0.608398
+26 6 20 1 0 0.705566
+26 6 21 1 0.193359 0.79541
+26 6 22 1 0.293457 0.872559
+26 6 23 1 0.348145 0.934082
+26 6 24 1 0.374023 0.982422
+26 6 25 1 0.380859 1
+26 6 26 1 0.379883 1
+26 6 27 1 0.376953 1
+26 6 28 1 0.371826 1
+26 6 29 1 0.36499 1
+26 6 30 0.937988 0.357178 1
+26 6 31 0.858398 0.348877 1
+26 7 0 1 0 0.0720825
+26 7 1 1 0 0.0720825
+26 7 2 1 0 0.0720825
+26 7 3 1 0 0.0720825
+26 7 4 1 0 0.0720825
+26 7 5 1 0 0.0720825
+26 7 6 1 0 0.0720825
+26 7 7 1 0 0.0720215
+26 7 8 1 0 0.0719604
+26 7 9 1 0 0.0718384
+26 7 10 1 0 0.0715942
+26 7 11 1 0 0.071228
+26 7 12 1 0 0.0704956
+26 7 13 1 0 0.0693359
+26 7 14 1 0 0.0674438
+26 7 15 1 0 0.0662842
+26 7 16 1 0 0.239624
+26 7 17 1 0 0.387695
+26 7 18 1 0 0.505371
+26 7 19 1 0 0.608398
+26 7 20 1 0 0.705566
+26 7 21 1 0.194702 0.79541
+26 7 22 1 0.294189 0.872559
+26 7 23 1 0.348877 0.934082
+26 7 24 1 0.374268 0.982422
+26 7 25 1 0.381104 1
+26 7 26 1 0.380371 1
+26 7 27 1 0.377441 1
+26 7 28 1 0.372314 1
+26 7 29 1 0.365479 1
+26 7 30 0.9375 0.357422 1
+26 7 31 0.858398 0.349121 1
+26 8 0 1 0 0.0712891
+26 8 1 1 0 0.0712891
+26 8 2 1 0 0.0712891
+26 8 3 1 0 0.0712891
+26 8 4 1 0 0.0712891
+26 8 5 1 0 0.0712891
+26 8 6 1 0 0.071228
+26 8 7 1 0 0.071228
+26 8 8 1 0 0.071167
+26 8 9 1 0 0.0710449
+26 8 10 1 0 0.0708008
+26 8 11 1 0 0.0703735
+26 8 12 1 0 0.0697021
+26 8 13 1 0 0.0684814
+26 8 14 1 0 0.0665283
+26 8 15 1 0 0.0654297
+26 8 16 1 0 0.239624
+26 8 17 1 0 0.387695
+26 8 18 1 0 0.505371
+26 8 19 1 0 0.608398
+26 8 20 1 0 0.705566
+26 8 21 1 0.197388 0.794922
+26 8 22 1 0.295654 0.872559
+26 8 23 1 0.349854 0.934082
+26 8 24 1 0.375244 0.982422
+26 8 25 1 0.38208 1
+26 8 26 1 0.381104 1
+26 8 27 1 0.378174 1
+26 8 28 1 0.373047 1
+26 8 29 1 0.365967 1
+26 8 30 0.9375 0.35791 1
+26 8 31 0.858398 0.349609 1
+26 9 0 1 0 0.0697021
+26 9 1 1 0 0.0697021
+26 9 2 1 0 0.0697021
+26 9 3 1 0 0.0697021
+26 9 4 1 0 0.0697021
+26 9 5 1 0 0.0697021
+26 9 6 1 0 0.0697021
+26 9 7 1 0 0.0696411
+26 9 8 1 0 0.0695801
+26 9 9 1 0 0.069458
+26 9 10 1 0 0.0692139
+26 9 11 1 0 0.0687866
+26 9 12 1 0 0.0680542
+26 9 13 1 0 0.0668335
+26 9 14 1 0 0.0647583
+26 9 15 1 0 0.0635986
+26 9 16 1 0 0.239624
+26 9 17 1 0 0.387451
+26 9 18 1 0 0.505371
+26 9 19 1 0 0.60791
+26 9 20 1 0 0.705566
+26 9 21 1 0.202515 0.794922
+26 9 22 1 0.29834 0.872559
+26 9 23 1 0.351807 0.934082
+26 9 24 1 0.377197 0.982422
+26 9 25 1 0.383789 1
+26 9 26 1 0.382568 1
+26 9 27 1 0.379639 1
+26 9 28 1 0.374268 1
+26 9 29 1 0.367188 1
+26 9 30 0.9375 0.359131 1
+26 9 31 0.858398 0.350586 1
+26 10 0 1 0 0.0667114
+26 10 1 1 0 0.0667114
+26 10 2 1 0 0.0667114
+26 10 3 1 0 0.0667114
+26 10 4 1 0 0.0667114
+26 10 5 1 0 0.0666504
+26 10 6 1 0 0.0666504
+26 10 7 1 0 0.0665894
+26 10 8 1 0 0.0665283
+26 10 9 1 0 0.0664062
+26 10 10 1 0 0.0661621
+26 10 11 1 0 0.0656738
+26 10 12 1 0 0.0648804
+26 10 13 1 0 0.0635376
+26 10 14 1 0 0.0613403
+26 10 15 1 0 0.0600891
+26 10 16 1 0 0.239624
+26 10 17 1 0 0.387451
+26 10 18 1 0 0.505859
+26 10 19 1 0 0.60791
+26 10 20 1 0 0.705078
+26 10 21 1 0.211182 0.794922
+26 10 22 1 0.302979 0.87207
+26 10 23 1 0.355469 0.934082
+26 10 24 1 0.380371 0.982422
+26 10 25 1 0.386719 1
+26 10 26 1 0.385498 1
+26 10 27 1 0.38208 1
+26 10 28 1 0.376709 1
+26 10 29 1 0.369385 1
+26 10 30 0.9375 0.361084 1
+26 10 31 0.858398 0.352295 1
+26 11 0 1 0 0.060791
+26 11 1 1 0 0.0607605
+26 11 2 1 0 0.0607605
+26 11 3 1 0 0.0607605
+26 11 4 1 0 0.0607605
+26 11 5 1 0 0.0607605
+26 11 6 1 0 0.06073
+26 11 7 1 0 0.0606995
+26 11 8 1 0 0.0606079
+26 11 9 1 0 0.0604248
+26 11 10 1 0 0.0601501
+26 11 11 1 0 0.0596008
+26 11 12 1 0 0.0586853
+26 11 13 1 0 0.0570984
+26 11 14 1 0 0.0544434
+26 11 15 1 0 0.0529785
+26 11 16 1 0 0.239502
+26 11 17 1 0 0.387207
+26 11 18 1 0 0.505859
+26 11 19 1 0 0.60791
+26 11 20 1 0 0.705078
+26 11 21 1 0.225098 0.794922
+26 11 22 1 0.311035 0.87207
+26 11 23 1 0.361572 0.933594
+26 11 24 1 0.385742 0.982422
+26 11 25 1 0.391846 1
+26 11 26 1 0.390137 1
+26 11 27 1 0.386719 1
+26 11 28 1 0.380859 1
+26 11 29 1 0.373047 1
+26 11 30 0.937012 0.364258 1
+26 11 31 0.85791 0.355225 1
+26 12 0 1 0 0.0476379
+26 12 1 1 0 0.0476379
+26 12 2 1 0 0.0476379
+26 12 3 1 0 0.0476379
+26 12 4 1 0 0.0476379
+26 12 5 1 0 0.0476074
+26 12 6 1 0 0.0475769
+26 12 7 1 0 0.0475159
+26 12 8 1 0 0.0473938
+26 12 9 1 0 0.0471497
+26 12 10 1 0 0.0466919
+26 12 11 1 0 0.0458679
+26 12 12 1 0 0.0444336
+26 12 13 1 0 0.0419006
+26 12 14 1 0 0.0372925
+26 12 15 1 0 0.034729
+26 12 16 1 0 0.239624
+26 12 17 1 0 0.386963
+26 12 18 1 0 0.505859
+26 12 19 1 0 0.60791
+26 12 20 1 0.130981 0.70459
+26 12 21 1 0.246216 0.794434
+26 12 22 1 0.32373 0.87207
+26 12 23 1 0.371826 0.933594
+26 12 24 1 0.394775 0.982422
+26 12 25 1 0.400391 1
+26 12 26 1 0.398193 1
+26 12 27 1 0.394043 1
+26 12 28 1 0.387695 1
+26 12 29 1 0.37915 1
+26 12 30 0.936523 0.369873 1
+26 12 31 0.857422 0.360107 1
+26 13 0 1 0.110046 0
+26 13 1 1 0.110107 0
+26 13 2 1 0.110107 0
+26 13 3 1 0.110107 0
+26 13 4 1 0.110168 0
+26 13 5 1 0.110229 0
+26 13 6 1 0.110413 0
+26 13 7 1 0.110718 0
+26 13 8 1 0.111389 0
+26 13 9 1 0.112549 0
+26 13 10 1 0.114685 0
+26 13 11 1 0.118286 0
+26 13 12 1 0.124023 0
+26 13 13 1 0.132568 0
+26 13 14 1 0.144653 0
+26 13 15 1 0.149292 0
+26 13 16 1 0.142334 0.239868
+26 13 17 1 0.125 0.386475
+26 13 18 1 0.134155 0.505371
+26 13 19 1 0.13501 0.607422
+26 13 20 1 0.196289 0.704102
+26 13 21 1 0.275635 0.793945
+26 13 22 1 0.343262 0.871582
+26 13 23 1 0.387695 0.933594
+26 13 24 1 0.40918 0.982422
+26 13 25 1 0.413818 1
+26 13 26 1 0.410889 1
+26 13 27 1 0.406006 1
+26 13 28 1 0.398438 1
+26 13 29 1 0.38916 1
+26 13 30 0.936035 0.378662 1
+26 13 31 0.856445 0.368164 1
+26 14 0 1 0.220825 0
+26 14 1 1 0.220825 0
+26 14 2 1 0.220825 0
+26 14 3 1 0.220947 0
+26 14 4 1 0.220947 0
+26 14 5 1 0.220947 0
+26 14 6 1 0.220947 0
+26 14 7 1 0.221069 0
+26 14 8 1 0.221313 0
+26 14 9 1 0.22168 0
+26 14 10 1 0.222412 0
+26 14 11 1 0.223755 0
+26 14 12 1 0.22583 0
+26 14 13 1 0.22937 0
+26 14 14 1 0.234619 0
+26 14 15 1 0.23645 0
+26 14 16 1 0.232544 0.240967
+26 14 17 1 0.224976 0.385986
+26 14 18 1 0.226685 0.503906
+26 14 19 1 0.229248 0.606934
+26 14 20 1 0.258545 0.703125
+26 14 21 1 0.314453 0.792969
+26 14 22 1 0.371094 0.871094
+26 14 23 1 0.410645 0.933594
+26 14 24 1 0.430176 0.982422
+26 14 25 1 0.433594 1
+26 14 26 1 0.429688 1
+26 14 27 1 0.423584 1
+26 14 28 1 0.414795 1
+26 14 29 1 0.404053 1
+26 14 30 0.93457 0.392334 1
+26 14 31 0.855469 0.380127 1
+26 15 0 1 0.303955 0
+26 15 1 1 0.303955 0
+26 15 2 1 0.303955 0
+26 15 3 1 0.303955 0
+26 15 4 1 0.303955 0
+26 15 5 1 0.303955 0
+26 15 6 1 0.303955 0
+26 15 7 1 0.304199 0
+26 15 8 1 0.304199 0
+26 15 9 1 0.304443 0
+26 15 10 1 0.304932 0
+26 15 11 1 0.305664 0
+26 15 12 1 0.307129 0
+26 15 13 1 0.309082 0
+26 15 14 1 0.3125 0
+26 15 15 1 0.313477 0
+26 15 16 1 0.310547 0.244019
+26 15 17 1 0.30542 0.38623
+26 15 18 1 0.304932 0.502441
+26 15 19 1 0.30835 0.606445
+26 15 20 1 0.323242 0.701172
+26 15 21 1 0.362061 0.791504
+26 15 22 1 0.407959 0.870117
+26 15 23 1 0.442383 0.933105
+26 15 24 1 0.459473 0.982422
+26 15 25 1 0.46167 1
+26 15 26 1 0.456299 1
+26 15 27 1 0.448486 1
+26 15 28 1 0.437988 1
+26 15 29 1 0.425293 1
+26 15 30 0.933105 0.411621 1
+26 15 31 0.853516 0.397461 1
+26 16 0 1 0.384766 0
+26 16 1 1 0.384766 0
+26 16 2 1 0.384766 0
+26 16 3 1 0.384766 0
+26 16 4 1 0.384766 0
+26 16 5 1 0.384766 0
+26 16 6 1 0.384766 0
+26 16 7 1 0.38501 0
+26 16 8 1 0.38501 0
+26 16 9 1 0.385254 0
+26 16 10 1 0.385498 0
+26 16 11 1 0.385986 0
+26 16 12 1 0.386963 0
+26 16 13 1 0.388428 0
+26 16 14 1 0.390869 0
+26 16 15 1 0.391113 0
+26 16 16 1 0.388916 0.251221
+26 16 17 1 0.385254 0.387939
+26 16 18 1 0.383545 0.501465
+26 16 19 1 0.387939 0.606445
+26 16 20 1 0.393311 0.699219
+26 16 21 1 0.418701 0.789062
+26 16 22 1 0.454346 0.868164
+26 16 23 1 0.483398 0.932129
+26 16 24 1 0.498047 0.981934
+26 16 25 1 0.498535 1
+26 16 26 1 0.491455 1
+26 16 27 1 0.481689 1
+26 16 28 1 0.468994 1
+26 16 29 1 0.453857 1
+26 16 30 0.930176 0.4375 1
+26 16 31 0.850586 0.421143 1
+26 17 0 1 0.46582 0
+26 17 1 1 0.46582 0
+26 17 2 1 0.46582 0
+26 17 3 1 0.46582 0
+26 17 4 1 0.46582 0
+26 17 5 1 0.46582 0
+26 17 6 1 0.46582 0
+26 17 7 1 0.46582 0
+26 17 8 1 0.46582 0
+26 17 9 1 0.466064 0
+26 17 10 1 0.466309 0
+26 17 11 1 0.466553 0
+26 17 12 1 0.467285 0
+26 17 13 1 0.468506 0
+26 17 14 1 0.470215 0
+26 17 15 1 0.470459 0
+26 17 16 1 0.468994 0.265381
+26 17 17 1 0.466553 0.393066
+26 17 18 1 0.463867 0.501953
+26 17 19 1 0.464844 0.604004
+26 17 20 1 0.467773 0.696777
+26 17 21 1 0.481934 0.785156
+26 17 22 1 0.508301 0.865723
+26 17 23 1 0.532227 0.930176
+26 17 24 1 0.544434 0.980957
+26 17 25 1 0.543457 1
+26 17 26 1 0.534668 1
+26 17 27 1 0.522461 1
+26 17 28 1 0.507324 1
+26 17 29 1 0.489258 1
+26 17 30 0.925781 0.469971 1
+26 17 31 0.84668 0.450684 1
+26 18 0 1 0.546387 0
+26 18 1 1 0.546387 0
+26 18 2 1 0.546387 0
+26 18 3 1 0.546387 0
+26 18 4 1 0.546387 0
+26 18 5 1 0.546387 0
+26 18 6 1 0.546387 0
+26 18 7 1 0.546387 0
+26 18 8 1 0.546387 0
+26 18 9 1 0.546387 0
+26 18 10 1 0.546387 0
+26 18 11 1 0.546875 0
+26 18 12 1 0.547363 0
+26 18 13 1 0.54834 0
+26 18 14 1 0.549316 0
+26 18 15 1 0.549805 0.067749
+26 18 16 1 0.549316 0.288086
+26 18 17 1 0.547852 0.403564
+26 18 18 1 0.54541 0.505859
+26 18 19 1 0.543457 0.602539
+26 18 20 1 0.545898 0.695312
+26 18 21 1 0.549805 0.780762
+26 18 22 1 0.566895 0.86084
+26 18 23 1 0.585938 0.927246
+26 18 24 1 0.596191 0.979004
+26 18 25 1 0.59375 1
+26 18 26 1 0.583008 1
+26 18 27 1 0.568848 1
+26 18 28 1 0.550781 1
+26 18 29 0.996094 0.529785 1
+26 18 30 0.919922 0.507812 1
+26 18 31 0.84082 0.485107 1
+26 19 0 1 0.624023 0
+26 19 1 1 0.624023 0
+26 19 2 1 0.624023 0
+26 19 3 1 0.624023 0
+26 19 4 1 0.624023 0
+26 19 5 1 0.624023 0
+26 19 6 1 0.624023 0
+26 19 7 1 0.624023 0
+26 19 8 1 0.624023 0
+26 19 9 1 0.624023 0
+26 19 10 1 0.624512 0
+26 19 11 1 0.624512 0
+26 19 12 1 0.625 0
+26 19 13 1 0.625488 0
+26 19 14 1 0.626465 0
+26 19 15 1 0.627441 0.184692
+26 19 16 1 0.62793 0.317627
+26 19 17 1 0.627441 0.420166
+26 19 18 1 0.625488 0.514648
+26 19 19 1 0.62207 0.604492
+26 19 20 1 0.619629 0.691406
+26 19 21 1 0.620117 0.775879
+26 19 22 1 0.62793 0.85498
+26 19 23 1 0.64209 0.922852
+26 19 24 1 0.650391 0.976074
+26 19 25 1 0.646973 1
+26 19 26 1 0.634766 1
+26 19 27 1 0.618652 1
+26 19 28 1 0.597656 1
+26 19 29 0.98877 0.57373 1
+26 19 30 0.912598 0.54834 1
+26 19 31 0.833496 0.522461 1
+26 20 0 1 0.697754 0.188965
+26 20 1 1 0.697754 0.188965
+26 20 2 1 0.697754 0.188965
+26 20 3 1 0.697754 0.188965
+26 20 4 1 0.697754 0.188965
+26 20 5 1 0.697754 0.188965
+26 20 6 1 0.697754 0.188965
+26 20 7 1 0.697754 0.188965
+26 20 8 1 0.697754 0.188965
+26 20 9 1 0.697754 0.189087
+26 20 10 1 0.697754 0.189209
+26 20 11 1 0.697754 0.189453
+26 20 12 1 0.698242 0.189941
+26 20 13 1 0.69873 0.190552
+26 20 14 1 0.699707 0.19165
+26 20 15 1 0.700684 0.245972
+26 20 16 1 0.70166 0.348633
+26 20 17 1 0.702148 0.440674
+26 20 18 1 0.701172 0.527832
+26 20 19 1 0.698242 0.611328
+26 20 20 1 0.693359 0.691406
+26 20 21 1 0.689941 0.771484
+26 20 22 1 0.689453 0.847168
+26 20 23 1 0.697266 0.916016
+26 20 24 1 0.70459 0.97168
+26 20 25 1 0.700684 1
+26 20 26 1 0.687012 1
+26 20 27 1 0.668945 1
+26 20 28 1 0.645508 1
+26 20 29 0.979004 0.618164 1
+26 20 30 0.90332 0.589844 1
+26 20 31 0.824707 0.561523 1
+26 21 0 1 0.766602 0.261719
+26 21 1 1 0.766602 0.261719
+26 21 2 1 0.766602 0.261719
+26 21 3 1 0.766602 0.261719
+26 21 4 1 0.766602 0.261719
+26 21 5 1 0.766602 0.261719
+26 21 6 1 0.766602 0.261719
+26 21 7 1 0.766602 0.261719
+26 21 8 1 0.766602 0.261719
+26 21 9 1 0.766602 0.261719
+26 21 10 1 0.76709 0.261719
+26 21 11 1 0.76709 0.261963
+26 21 12 1 0.76709 0.262207
+26 21 13 1 0.767578 0.262451
+26 21 14 1 0.768555 0.262939
+26 21 15 1 0.769531 0.289795
+26 21 16 1 0.770996 0.376953
+26 21 17 1 0.771973 0.460938
+26 21 18 1 0.771973 0.543457
+26 21 19 1 0.77002 0.62207
+26 21 20 1 0.765137 0.696289
+26 21 21 1 0.758301 0.768555
+26 21 22 1 0.753418 0.84082
+26 21 23 1 0.752441 0.906738
+26 21 24 1 0.757324 0.964844
+26 21 25 1 0.753906 1
+26 21 26 1 0.739258 1
+26 21 27 1 0.719238 1
+26 21 28 1 0.693359 1
+26 21 29 0.966797 0.663574 1
+26 21 30 0.89209 0.632324 1
+26 21 31 0.813965 0.601074 1
+26 22 0 1 0.830078 0.305176
+26 22 1 1 0.830078 0.305176
+26 22 2 1 0.830078 0.305176
+26 22 3 1 0.830078 0.305176
+26 22 4 1 0.830078 0.305176
+26 22 5 1 0.830078 0.305176
+26 22 6 1 0.830078 0.305176
+26 22 7 1 0.830078 0.305176
+26 22 8 1 0.830078 0.305176
+26 22 9 1 0.830078 0.305176
+26 22 10 1 0.830078 0.30542
+26 22 11 1 0.830566 0.30542
+26 22 12 1 0.830566 0.30542
+26 22 13 1 0.831055 0.305664
+26 22 14 1 0.831543 0.305908
+26 22 15 1 0.83252 0.317627
+26 22 16 1 0.834473 0.396729
+26 22 17 1 0.835938 0.476807
+26 22 18 1 0.836914 0.556152
+26 22 19 1 0.835938 0.632812
+26 22 20 1 0.832031 0.704102
+26 22 21 1 0.824707 0.770996
+26 22 22 1 0.814941 0.834961
+26 22 23 1 0.808105 0.896484
+26 22 24 1 0.807129 0.955078
+26 22 25 1 0.804688 1
+26 22 26 1 0.789551 1
+26 22 27 1 0.768066 1
+26 22 28 1 0.739746 1
+26 22 29 0.952148 0.70752 1
+26 22 30 0.878418 0.673828 1
+26 22 31 0.801758 0.640625 1
+26 23 0 1 0.885742 0.329346
+26 23 1 1 0.885742 0.329346
+26 23 2 1 0.885742 0.329346
+26 23 3 1 0.885742 0.329346
+26 23 4 1 0.885742 0.329346
+26 23 5 1 0.885742 0.329346
+26 23 6 1 0.885742 0.329346
+26 23 7 1 0.885742 0.329346
+26 23 8 1 0.885742 0.329346
+26 23 9 1 0.885742 0.329346
+26 23 10 1 0.885742 0.329346
+26 23 11 1 0.885742 0.329346
+26 23 12 1 0.885742 0.32959
+26 23 13 1 0.88623 0.32959
+26 23 14 1 0.886719 0.329834
+26 23 15 1 0.887207 0.329834
+26 23 16 1 0.889648 0.406006
+26 23 17 1 0.891602 0.484131
+26 23 18 1 0.893066 0.5625
+26 23 19 1 0.893066 0.638672
+26 23 20 1 0.890137 0.709473
+26 23 21 1 0.883789 0.775391
+26 23 22 1 0.874023 0.834961
+26 23 23 1 0.862305 0.88916
+26 23 24 1 0.854004 0.942871
+26 23 25 1 0.851074 0.997559
+26 23 26 1 0.835938 1
+26 23 27 1 0.812988 1
+26 23 28 1 0.782715 1
+26 23 29 0.935547 0.749023 1
+26 23 30 0.863281 0.713379 1
+26 23 31 0.788086 0.678223 1
+26 24 0 1 0.933594 0.3396
+26 24 1 1 0.933594 0.3396
+26 24 2 1 0.933594 0.3396
+26 24 3 1 0.933594 0.3396
+26 24 4 1 0.933594 0.3396
+26 24 5 1 0.933594 0.3396
+26 24 6 1 0.933594 0.3396
+26 24 7 1 0.933594 0.3396
+26 24 8 1 0.933594 0.3396
+26 24 9 1 0.933594 0.3396
+26 24 10 1 0.933594 0.3396
+26 24 11 1 0.933594 0.3396
+26 24 12 1 0.933594 0.3396
+26 24 13 1 0.934082 0.3396
+26 24 14 1 0.934082 0.3396
+26 24 15 1 0.93457 0.3396
+26 24 16 1 0.937012 0.404541
+26 24 17 1 0.939453 0.482422
+26 24 18 1 0.941895 0.561035
+26 24 19 1 0.942383 0.637207
+26 24 20 1 0.94043 0.708984
+26 24 21 1 0.935547 0.775879
+26 24 22 1 0.927246 0.835938
+26 24 23 1 0.915039 0.887207
+26 24 24 1 0.901367 0.933594
+26 24 25 1 0.892578 0.986328
+26 24 26 1 0.878906 1
+26 24 27 1 0.854492 1
+26 24 28 0.983398 0.822754 1
+26 24 29 0.916992 0.787598 1
+26 24 30 0.847168 0.751465 1
+26 24 31 0.773926 0.715332 1
+26 25 0 1 0.977539 0.3396
+26 25 1 1 0.977539 0.3396
+26 25 2 1 0.977539 0.3396
+26 25 3 1 0.977539 0.3396
+26 25 4 1 0.977539 0.3396
+26 25 5 1 0.977539 0.3396
+26 25 6 1 0.977539 0.3396
+26 25 7 1 0.977539 0.3396
+26 25 8 1 0.977539 0.3396
+26 25 9 1 0.978027 0.3396
+26 25 10 1 0.978027 0.3396
+26 25 11 1 0.978027 0.3396
+26 25 12 1 0.978027 0.3396
+26 25 13 1 0.978027 0.3396
+26 25 14 1 0.978516 0.3396
+26 25 15 1 0.978516 0.3396
+26 25 16 1 0.980957 0.393311
+26 25 17 1 0.983887 0.472168
+26 25 18 1 0.986816 0.55127
+26 25 19 1 0.988281 0.62793
+26 25 20 1 0.987305 0.700684
+26 25 21 1 0.983887 0.768555
+26 25 22 1 0.977051 0.830566
+26 25 23 1 0.966797 0.884277
+26 25 24 1 0.953613 0.929688
+26 25 25 1 0.936035 0.972656
+26 25 26 1 0.922363 1
+26 25 27 1 0.895996 1
+26 25 28 0.958496 0.863281 1
+26 25 29 0.895996 0.828613 1
+26 25 30 0.828613 0.79248 1
+26 25 31 0.757324 0.755371 1
+26 26 0 1 1 0.332764
+26 26 1 1 1 0.332764
+26 26 2 1 1 0.332764
+26 26 3 1 1 0.332764
+26 26 4 1 1 0.332764
+26 26 5 1 1 0.332764
+26 26 6 1 1 0.332764
+26 26 7 1 1 0.332764
+26 26 8 1 1 0.332764
+26 26 9 1 1 0.332764
+26 26 10 1 1 0.332764
+26 26 11 1 1 0.332764
+26 26 12 1 1 0.33252
+26 26 13 1 1 0.33252
+26 26 14 1 1 0.33252
+26 26 15 1 1 0.33252
+26 26 16 1 1 0.374023
+26 26 17 1 1 0.454102
+26 26 18 1 1 0.533691
+26 26 19 1 1 0.61084
+26 26 20 1 1 0.683594
+26 26 21 1 1 0.751953
+26 26 22 1 1 0.81543
+26 26 23 1 1 0.870605
+26 26 24 1 1 0.918457
+26 26 25 1 0.98584 0.963867
+26 26 26 1 0.96582 1
+26 26 27 0.984863 0.938477 1
+26 26 28 0.931641 0.907715 1
+26 26 29 0.872559 0.873535 1
+26 26 30 0.807617 0.836914 1
+26 26 31 0.737305 0.798828 1
+26 27 0 1 1 0.32251
+26 27 1 1 1 0.32251
+26 27 2 1 1 0.32251
+26 27 3 1 1 0.32251
+26 27 4 1 1 0.32251
+26 27 5 1 1 0.32251
+26 27 6 1 1 0.32251
+26 27 7 1 1 0.32251
+26 27 8 1 1 0.32251
+26 27 9 1 1 0.32251
+26 27 10 1 1 0.32251
+26 27 11 1 1 0.32251
+26 27 12 1 1 0.32251
+26 27 13 1 1 0.32251
+26 27 14 1 1 0.32251
+26 27 15 1 1 0.32251
+26 27 16 1 1 0.349121
+26 27 17 1 1 0.430908
+26 27 18 1 1 0.510254
+26 27 19 1 1 0.587402
+26 27 20 1 1 0.659668
+26 27 21 1 1 0.728027
+26 27 22 1 1 0.791504
+26 27 23 1 1 0.847168
+26 27 24 1 1 0.895508
+26 27 25 1 1 0.941895
+26 27 26 0.990723 1 0.987305
+26 27 27 0.952637 0.987793 1
+26 27 28 0.90332 0.958496 1
+26 27 29 0.845703 0.92334 1
+26 27 30 0.781738 0.885254 1
+26 27 31 0.711914 0.845215 1
+26 28 0 1 1 0.310547
+26 28 1 1 1 0.310547
+26 28 2 1 1 0.310547
+26 28 3 1 1 0.310547
+26 28 4 1 1 0.310547
+26 28 5 1 1 0.310547
+26 28 6 1 1 0.310547
+26 28 7 1 1 0.310547
+26 28 8 1 1 0.310547
+26 28 9 1 1 0.310547
+26 28 10 1 1 0.310547
+26 28 11 1 1 0.310547
+26 28 12 1 1 0.310547
+26 28 13 1 1 0.310547
+26 28 14 1 1 0.310303
+26 28 15 1 1 0.310303
+26 28 16 1 1 0.319336
+26 28 17 1 1 0.40332
+26 28 18 1 1 0.483398
+26 28 19 1 1 0.55957
+26 28 20 1 1 0.631348
+26 28 21 1 1 0.699219
+26 28 22 1 1 0.761719
+26 28 23 1 1 0.817871
+26 28 24 0.993164 1 0.867188
+26 28 25 0.969238 1 0.916016
+26 28 26 0.94043 1 0.963867
+26 28 27 0.905273 1 1
+26 28 28 0.862793 1 1
+26 28 29 0.810059 0.973145 1
+26 28 30 0.749023 0.936035 1
+26 28 31 0.679688 0.89502 1
+26 29 0 0.987305 1 0.296875
+26 29 1 0.987305 1 0.296875
+26 29 2 0.987305 1 0.296875
+26 29 3 0.987305 1 0.296875
+26 29 4 0.987305 1 0.296875
+26 29 5 0.987305 1 0.296875
+26 29 6 0.987305 1 0.296875
+26 29 7 0.987305 1 0.296875
+26 29 8 0.987305 1 0.296875
+26 29 9 0.987305 1 0.296875
+26 29 10 0.987305 1 0.296875
+26 29 11 0.987305 1 0.296875
+26 29 12 0.987305 1 0.296875
+26 29 13 0.987305 1 0.296875
+26 29 14 0.987305 1 0.296875
+26 29 15 0.987305 1 0.296875
+26 29 16 0.986816 1 0.296875
+26 29 17 0.986328 1 0.372314
+26 29 18 0.984375 1 0.452881
+26 29 19 0.980957 1 0.52832
+26 29 20 0.975586 1 0.599121
+26 29 21 0.967773 1 0.666016
+26 29 22 0.956543 1 0.728516
+26 29 23 0.942871 1 0.784668
+26 29 24 0.926758 1 0.835449
+26 29 25 0.905762 1 0.885254
+26 29 26 0.879883 1 0.935059
+26 29 27 0.847656 1 0.982422
+26 29 28 0.808594 1 1
+26 29 29 0.760742 1 1
+26 29 30 0.703613 0.984375 1
+26 29 31 0.63623 0.944824 1
+26 30 0 0.905273 1 0.282715
+26 30 1 0.905273 1 0.282715
+26 30 2 0.905273 1 0.282715
+26 30 3 0.905273 1 0.282715
+26 30 4 0.905273 1 0.282715
+26 30 5 0.905273 1 0.282715
+26 30 6 0.905273 1 0.282715
+26 30 7 0.904785 1 0.282715
+26 30 8 0.904785 1 0.282715
+26 30 9 0.904785 1 0.282715
+26 30 10 0.904785 1 0.282715
+26 30 11 0.904785 1 0.282715
+26 30 12 0.904785 1 0.282715
+26 30 13 0.904785 1 0.282715
+26 30 14 0.904785 1 0.282715
+26 30 15 0.904785 1 0.282471
+26 30 16 0.904785 1 0.282471
+26 30 17 0.903809 1 0.337891
+26 30 18 0.901855 1 0.419678
+26 30 19 0.898438 1 0.495117
+26 30 20 0.893555 1 0.564941
+26 30 21 0.88623 1 0.630859
+26 30 22 0.876465 1 0.692871
+26 30 23 0.864258 1 0.748535
+26 30 24 0.850098 1 0.799805
+26 30 25 0.831543 1 0.850586
+26 30 26 0.808105 1 0.901367
+26 30 27 0.778809 1 0.951172
+26 30 28 0.742188 1 0.997559
+26 30 29 0.697266 1 1
+26 30 30 0.642578 1 1
+26 30 31 0.577148 0.992188 1
+26 31 0 0.814453 1 0.267578
+26 31 1 0.814453 1 0.267578
+26 31 2 0.814453 1 0.267578
+26 31 3 0.814453 1 0.267578
+26 31 4 0.814453 1 0.267578
+26 31 5 0.814453 1 0.267578
+26 31 6 0.814453 1 0.267578
+26 31 7 0.814453 1 0.267578
+26 31 8 0.814453 1 0.267578
+26 31 9 0.814453 1 0.267578
+26 31 10 0.814453 1 0.267578
+26 31 11 0.814453 1 0.267578
+26 31 12 0.814453 1 0.267578
+26 31 13 0.814453 1 0.267578
+26 31 14 0.814453 1 0.267578
+26 31 15 0.814453 1 0.267578
+26 31 16 0.814453 1 0.267578
+26 31 17 0.813965 1 0.299316
+26 31 18 0.811523 1 0.384033
+26 31 19 0.807617 1 0.459473
+26 31 20 0.802734 1 0.52832
+26 31 21 0.79541 1 0.593262
+26 31 22 0.786133 1 0.654297
+26 31 23 0.774902 1 0.709961
+26 31 24 0.761719 1 0.760742
+26 31 25 0.744629 1 0.812012
+26 31 26 0.723145 1 0.86377
+26 31 27 0.695312 1 0.914551
+26 31 28 0.660156 1 0.963379
+26 31 29 0.616211 1 1
+26 31 30 0.562012 1 1
+26 31 31 0.493896 1 1
+27 0 0 1 0 0.0750732
+27 0 1 1 0 0.0750732
+27 0 2 1 0 0.0750732
+27 0 3 1 0 0.0750732
+27 0 4 1 0 0.0750732
+27 0 5 1 0 0.0750732
+27 0 6 1 0 0.0750732
+27 0 7 1 0 0.0750122
+27 0 8 1 0 0.0749512
+27 0 9 1 0 0.0748901
+27 0 10 1 0 0.074707
+27 0 11 1 0 0.0743408
+27 0 12 1 0 0.0737915
+27 0 13 1 0 0.0728149
+27 0 14 1 0 0.071228
+27 0 15 1 0 0.0696411
+27 0 16 1 0 0.147217
+27 0 17 1 0 0.337891
+27 0 18 1 0 0.46167
+27 0 19 1 0 0.56543
+27 0 20 1 0 0.660645
+27 0 21 1 0 0.75
+27 0 22 1 0.222534 0.830078
+27 0 23 1 0.305176 0.895996
+27 0 24 1 0.353271 0.949707
+27 0 25 1 0.378906 0.99707
+27 0 26 1 0.385254 1
+27 0 27 1 0.383789 1
+27 0 28 1 0.380127 1
+27 0 29 1 0.374268 1
+27 0 30 1 0.367188 1
+27 0 31 0.943848 0.359131 1
+27 1 0 1 0 0.0750732
+27 1 1 1 0 0.0750732
+27 1 2 1 0 0.0750732
+27 1 3 1 0 0.0750732
+27 1 4 1 0 0.0750732
+27 1 5 1 0 0.0750732
+27 1 6 1 0 0.0750732
+27 1 7 1 0 0.0750122
+27 1 8 1 0 0.0749512
+27 1 9 1 0 0.0748901
+27 1 10 1 0 0.074646
+27 1 11 1 0 0.0743408
+27 1 12 1 0 0.0737305
+27 1 13 1 0 0.0728149
+27 1 14 1 0 0.071228
+27 1 15 1 0 0.0696411
+27 1 16 1 0 0.147217
+27 1 17 1 0 0.337891
+27 1 18 1 0 0.46167
+27 1 19 1 0 0.56543
+27 1 20 1 0 0.660645
+27 1 21 1 0 0.75
+27 1 22 1 0.222534 0.830078
+27 1 23 1 0.305176 0.895996
+27 1 24 1 0.353271 0.949707
+27 1 25 1 0.378906 0.99707
+27 1 26 1 0.385254 1
+27 1 27 1 0.383789 1
+27 1 28 1 0.380127 1
+27 1 29 1 0.374268 1
+27 1 30 1 0.367188 1
+27 1 31 0.943848 0.359131 1
+27 2 0 1 0 0.0750732
+27 2 1 1 0 0.0750732
+27 2 2 1 0 0.0750732
+27 2 3 1 0 0.0750732
+27 2 4 1 0 0.0750732
+27 2 5 1 0 0.0750732
+27 2 6 1 0 0.0750122
+27 2 7 1 0 0.0750122
+27 2 8 1 0 0.0749512
+27 2 9 1 0 0.0748291
+27 2 10 1 0 0.074646
+27 2 11 1 0 0.0743408
+27 2 12 1 0 0.0737305
+27 2 13 1 0 0.0727539
+27 2 14 1 0 0.071167
+27 2 15 1 0 0.0696411
+27 2 16 1 0 0.147217
+27 2 17 1 0 0.337891
+27 2 18 1 0 0.46167
+27 2 19 1 0 0.56543
+27 2 20 1 0 0.660645
+27 2 21 1 0 0.75
+27 2 22 1 0.222656 0.830078
+27 2 23 1 0.305176 0.895996
+27 2 24 1 0.353271 0.949707
+27 2 25 1 0.378906 0.99707
+27 2 26 1 0.385254 1
+27 2 27 1 0.383789 1
+27 2 28 1 0.380127 1
+27 2 29 1 0.374268 1
+27 2 30 1 0.367188 1
+27 2 31 0.943848 0.359131 1
+27 3 0 1 0 0.0750122
+27 3 1 1 0 0.0750122
+27 3 2 1 0 0.0750122
+27 3 3 1 0 0.0750122
+27 3 4 1 0 0.0750122
+27 3 5 1 0 0.0750122
+27 3 6 1 0 0.0750122
+27 3 7 1 0 0.0749512
+27 3 8 1 0 0.0749512
+27 3 9 1 0 0.0748291
+27 3 10 1 0 0.074646
+27 3 11 1 0 0.0742798
+27 3 12 1 0 0.0737305
+27 3 13 1 0 0.0727539
+27 3 14 1 0 0.071167
+27 3 15 1 0 0.0696411
+27 3 16 1 0 0.147217
+27 3 17 1 0 0.337891
+27 3 18 1 0 0.46167
+27 3 19 1 0 0.56543
+27 3 20 1 0 0.660645
+27 3 21 1 0 0.75
+27 3 22 1 0.222656 0.830078
+27 3 23 1 0.30542 0.895996
+27 3 24 1 0.353271 0.949707
+27 3 25 1 0.378906 0.99707
+27 3 26 1 0.385254 1
+27 3 27 1 0.383789 1
+27 3 28 1 0.380127 1
+27 3 29 1 0.374268 1
+27 3 30 1 0.367188 1
+27 3 31 0.943848 0.359131 1
+27 4 0 1 0 0.0750122
+27 4 1 1 0 0.0750122
+27 4 2 1 0 0.0750122
+27 4 3 1 0 0.0750122
+27 4 4 1 0 0.0750122
+27 4 5 1 0 0.0749512
+27 4 6 1 0 0.0749512
+27 4 7 1 0 0.0749512
+27 4 8 1 0 0.0748901
+27 4 9 1 0 0.0747681
+27 4 10 1 0 0.074585
+27 4 11 1 0 0.0742188
+27 4 12 1 0 0.0736694
+27 4 13 1 0 0.0726929
+27 4 14 1 0 0.071106
+27 4 15 1 0 0.0695801
+27 4 16 1 0 0.147217
+27 4 17 1 0 0.337891
+27 4 18 1 0 0.46167
+27 4 19 1 0 0.56543
+27 4 20 1 0 0.660645
+27 4 21 1 0 0.75
+27 4 22 1 0.222778 0.830078
+27 4 23 1 0.30542 0.895996
+27 4 24 1 0.353516 0.949707
+27 4 25 1 0.378906 0.99707
+27 4 26 1 0.385498 1
+27 4 27 1 0.383789 1
+27 4 28 1 0.380127 1
+27 4 29 1 0.374268 1
+27 4 30 1 0.367188 1
+27 4 31 0.943848 0.359131 1
+27 5 0 1 0 0.0748901
+27 5 1 1 0 0.0748901
+27 5 2 1 0 0.0748901
+27 5 3 1 0 0.0748901
+27 5 4 1 0 0.0748901
+27 5 5 1 0 0.0748901
+27 5 6 1 0 0.0748901
+27 5 7 1 0 0.0748291
+27 5 8 1 0 0.0747681
+27 5 9 1 0 0.074707
+27 5 10 1 0 0.0744629
+27 5 11 1 0 0.0741577
+27 5 12 1 0 0.0735474
+27 5 13 1 0 0.0725708
+27 5 14 1 0 0.0709839
+27 5 15 1 0 0.069458
+27 5 16 1 0 0.147217
+27 5 17 1 0 0.337891
+27 5 18 1 0 0.46167
+27 5 19 1 0 0.56543
+27 5 20 1 0 0.660645
+27 5 21 1 0 0.75
+27 5 22 1 0.223145 0.830078
+27 5 23 1 0.305664 0.895996
+27 5 24 1 0.353516 0.949707
+27 5 25 1 0.378906 0.99707
+27 5 26 1 0.385498 1
+27 5 27 1 0.383789 1
+27 5 28 1 0.380127 1
+27 5 29 1 0.374512 1
+27 5 30 1 0.367188 1
+27 5 31 0.943848 0.359131 1
+27 6 0 1 0 0.074707
+27 6 1 1 0 0.074707
+27 6 2 1 0 0.074707
+27 6 3 1 0 0.074707
+27 6 4 1 0 0.074707
+27 6 5 1 0 0.074707
+27 6 6 1 0 0.074707
+27 6 7 1 0 0.074646
+27 6 8 1 0 0.074585
+27 6 9 1 0 0.0745239
+27 6 10 1 0 0.0743408
+27 6 11 1 0 0.0739746
+27 6 12 1 0 0.0733643
+27 6 13 1 0 0.0723877
+27 6 14 1 0 0.0708008
+27 6 15 1 0 0.0692749
+27 6 16 1 0 0.147217
+27 6 17 1 0 0.337891
+27 6 18 1 0 0.46167
+27 6 19 1 0 0.56543
+27 6 20 1 0 0.660645
+27 6 21 1 0 0.75
+27 6 22 1 0.223633 0.830078
+27 6 23 1 0.305908 0.895996
+27 6 24 1 0.35376 0.949707
+27 6 25 1 0.37915 0.99707
+27 6 26 1 0.385742 1
+27 6 27 1 0.384033 1
+27 6 28 1 0.380371 1
+27 6 29 1 0.374512 1
+27 6 30 1 0.367432 1
+27 6 31 0.943848 0.359375 1
+27 7 0 1 0 0.0744019
+27 7 1 1 0 0.0744019
+27 7 2 1 0 0.0744019
+27 7 3 1 0 0.0744019
+27 7 4 1 0 0.0743408
+27 7 5 1 0 0.0743408
+27 7 6 1 0 0.0743408
+27 7 7 1 0 0.0743408
+27 7 8 1 0 0.0742798
+27 7 9 1 0 0.0741577
+27 7 10 1 0 0.0739746
+27 7 11 1 0 0.0736084
+27 7 12 1 0 0.0730591
+27 7 13 1 0 0.0720215
+27 7 14 1 0 0.0704346
+27 7 15 1 0 0.0688477
+27 7 16 1 0 0.147217
+27 7 17 1 0 0.337891
+27 7 18 1 0 0.46167
+27 7 19 1 0 0.56543
+27 7 20 1 0 0.660645
+27 7 21 1 0 0.75
+27 7 22 1 0.224609 0.830078
+27 7 23 1 0.306396 0.895996
+27 7 24 1 0.354248 0.949707
+27 7 25 1 0.379639 0.99707
+27 7 26 1 0.385986 1
+27 7 27 1 0.384521 1
+27 7 28 1 0.380615 1
+27 7 29 1 0.375 1
+27 7 30 1 0.367676 1
+27 7 31 0.943848 0.359619 1
+27 8 0 1 0 0.0736694
+27 8 1 1 0 0.0736694
+27 8 2 1 0 0.0736694
+27 8 3 1 0 0.0736694
+27 8 4 1 0 0.0736694
+27 8 5 1 0 0.0736694
+27 8 6 1 0 0.0736694
+27 8 7 1 0 0.0736084
+27 8 8 1 0 0.0735474
+27 8 9 1 0 0.0734863
+27 8 10 1 0 0.0732422
+27 8 11 1 0 0.072937
+27 8 12 1 0 0.0723267
+27 8 13 1 0 0.0713501
+27 8 14 1 0 0.0697021
+27 8 15 1 0 0.0681152
+27 8 16 1 0 0.147217
+27 8 17 1 0 0.337891
+27 8 18 1 0 0.46167
+27 8 19 1 0 0.56543
+27 8 20 1 0 0.660645
+27 8 21 1 0 0.75
+27 8 22 1 0.226562 0.830078
+27 8 23 1 0.307617 0.895996
+27 8 24 1 0.355225 0.949707
+27 8 25 1 0.380371 0.99707
+27 8 26 1 0.386719 1
+27 8 27 1 0.38501 1
+27 8 28 1 0.381348 1
+27 8 29 1 0.375488 1
+27 8 30 1 0.368164 1
+27 8 31 0.943848 0.360107 1
+27 9 0 1 0 0.0723267
+27 9 1 1 0 0.0723267
+27 9 2 1 0 0.0723267
+27 9 3 1 0 0.0723267
+27 9 4 1 0 0.0723267
+27 9 5 1 0 0.0723267
+27 9 6 1 0 0.0723267
+27 9 7 1 0 0.0722656
+27 9 8 1 0 0.0722046
+27 9 9 1 0 0.0721436
+27 9 10 1 0 0.0718994
+27 9 11 1 0 0.0715332
+27 9 12 1 0 0.0709229
+27 9 13 1 0 0.0698853
+27 9 14 1 0 0.0682373
+27 9 15 1 0 0.0665894
+27 9 16 1 0 0.147217
+27 9 17 1 0 0.337891
+27 9 18 1 0 0.46167
+27 9 19 1 0 0.56543
+27 9 20 1 0 0.660156
+27 9 21 1 0 0.75
+27 9 22 1 0.230103 0.830078
+27 9 23 1 0.309814 0.895996
+27 9 24 1 0.356934 0.949707
+27 9 25 1 0.38208 0.99707
+27 9 26 1 0.388184 1
+27 9 27 1 0.386475 1
+27 9 28 1 0.382568 1
+27 9 29 1 0.376709 1
+27 9 30 1 0.369141 1
+27 9 31 0.943359 0.361084 1
+27 10 0 1 0 0.0698242
+27 10 1 1 0 0.0698242
+27 10 2 1 0 0.0698242
+27 10 3 1 0 0.0698242
+27 10 4 1 0 0.0697632
+27 10 5 1 0 0.0697632
+27 10 6 1 0 0.0697632
+27 10 7 1 0 0.0697632
+27 10 8 1 0 0.0697021
+27 10 9 1 0 0.0695801
+27 10 10 1 0 0.0693359
+27 10 11 1 0 0.0689697
+27 10 12 1 0 0.0682983
+27 10 13 1 0 0.0671997
+27 10 14 1 0 0.0653687
+27 10 15 1 0 0.0636597
+27 10 16 1 0 0.147217
+27 10 17 1 0 0.337891
+27 10 18 1 0 0.461426
+27 10 19 1 0 0.56543
+27 10 20 1 0 0.660156
+27 10 21 1 0.0511475 0.75
+27 10 22 1 0.23645 0.830078
+27 10 23 1 0.313721 0.895996
+27 10 24 1 0.360107 0.949707
+27 10 25 1 0.384766 0.99707
+27 10 26 1 0.390869 1
+27 10 27 1 0.388916 1
+27 10 28 1 0.384766 1
+27 10 29 1 0.378662 1
+27 10 30 1 0.371094 1
+27 10 31 0.943359 0.362549 1
+27 11 0 1 0 0.0649414
+27 11 1 1 0 0.0649414
+27 11 2 1 0 0.0649414
+27 11 3 1 0 0.0649414
+27 11 4 1 0 0.0648804
+27 11 5 1 0 0.0648804
+27 11 6 1 0 0.0648804
+27 11 7 1 0 0.0648193
+27 11 8 1 0 0.0647583
+27 11 9 1 0 0.0646362
+27 11 10 1 0 0.0643921
+27 11 11 1 0 0.0639648
+27 11 12 1 0 0.0632324
+27 11 13 1 0 0.0619812
+27 11 14 1 0 0.059906
+27 11 15 1 0 0.0579224
+27 11 16 1 0 0.147339
+27 11 17 1 0 0.337646
+27 11 18 1 0 0.461182
+27 11 19 1 0 0.56543
+27 11 20 1 0 0.660156
+27 11 21 1 0.112122 0.75
+27 11 22 1 0.246948 0.830078
+27 11 23 1 0.320312 0.895996
+27 11 24 1 0.365479 0.949707
+27 11 25 1 0.389404 0.99707
+27 11 26 1 0.395264 1
+27 11 27 1 0.393066 1
+27 11 28 1 0.388672 1
+27 11 29 1 0.38208 1
+27 11 30 1 0.374268 1
+27 11 31 0.943359 0.365479 1
+27 12 0 1 0 0.0548401
+27 12 1 1 0 0.0548401
+27 12 2 1 0 0.0548401
+27 12 3 1 0 0.0548401
+27 12 4 1 0 0.0548096
+27 12 5 1 0 0.0548096
+27 12 6 1 0 0.0547791
+27 12 7 1 0 0.0547485
+27 12 8 1 0 0.054657
+27 12 9 1 0 0.0544739
+27 12 10 1 0 0.0541687
+27 12 11 1 0 0.0535889
+27 12 12 1 0 0.0525818
+27 12 13 1 0 0.0509033
+27 12 14 1 0 0.0479736
+27 12 15 1 0 0.0451965
+27 12 16 1 0 0.147583
+27 12 17 1 0 0.337402
+27 12 18 1 0 0.460693
+27 12 19 1 0 0.56543
+27 12 20 1 0 0.659668
+27 12 21 1 0.159302 0.749512
+27 12 22 1 0.263428 0.82959
+27 12 23 1 0.331299 0.895996
+27 12 24 1 0.374268 0.949707
+27 12 25 1 0.397461 0.99707
+27 12 26 1 0.402588 1
+27 12 27 1 0.399902 1
+27 12 28 1 0.39502 1
+27 12 29 1 0.388184 1
+27 12 30 1 0.379639 1
+27 12 31 0.942871 0.370361 1
+27 13 0 1 0 0.0218964
+27 13 1 1 0 0.0218964
+27 13 2 1 0 0.0218811
+27 13 3 1 0 0.0218658
+27 13 4 1 0 0.0218353
+27 13 5 1 0 0.0217896
+27 13 6 1 0 0.0216827
+27 13 7 1 0 0.0214691
+27 13 8 1 0 0.0210571
+27 13 9 1 0 0.0202332
+27 13 10 1 0 0.0185547
+27 13 11 1 0 0.0148468
+27 13 12 1 0.0306549 0
+27 13 13 1 0.0663452 0
+27 13 14 1 0.0925903 0
+27 13 15 1 0.107666 0
+27 13 16 1 0.113281 0.148438
+27 13 17 1 0.0778198 0.337402
+27 13 18 1 0.0553894 0.460205
+27 13 19 1 0.0662842 0.56543
+27 13 20 1 0.116882 0.659668
+27 13 21 1 0.207275 0.749023
+27 13 22 1 0.287354 0.829102
+27 13 23 1 0.348145 0.895508
+27 13 24 1 0.388184 0.949707
+27 13 25 1 0.409912 0.99707
+27 13 26 1 0.414307 1
+27 13 27 1 0.410889 1
+27 13 28 1 0.405273 1
+27 13 29 1 0.397461 1
+27 13 30 1 0.388184 1
+27 13 31 0.942383 0.37793 1
+27 14 0 1 0.192749 0
+27 14 1 1 0.192749 0
+27 14 2 1 0.192749 0
+27 14 3 1 0.192749 0
+27 14 4 1 0.192749 0
+27 14 5 1 0.192871 0
+27 14 6 1 0.192871 0
+27 14 7 1 0.192993 0
+27 14 8 1 0.193237 0
+27 14 9 1 0.193726 0
+27 14 10 1 0.194458 0
+27 14 11 1 0.195923 0
+27 14 12 1 0.198242 0
+27 14 13 1 0.202026 0
+27 14 14 1 0.207886 0
+27 14 15 1 0.21228 0
+27 14 16 1 0.213013 0.150757
+27 14 17 1 0.202881 0.337158
+27 14 18 1 0.197998 0.459473
+27 14 19 1 0.203125 0.56543
+27 14 20 1 0.213013 0.658691
+27 14 21 1 0.259521 0.748047
+27 14 22 1 0.320068 0.828613
+27 14 23 1 0.372559 0.895508
+27 14 24 1 0.408691 0.949219
+27 14 25 1 0.428467 0.99707
+27 14 26 1 0.431885 1
+27 14 27 1 0.42749 1
+27 14 28 1 0.420654 1
+27 14 29 1 0.411621 1
+27 14 30 1 0.401123 1
+27 14 31 0.941406 0.389648 1
+27 15 0 1 0.280273 0
+27 15 1 1 0.280273 0
+27 15 2 1 0.280273 0
+27 15 3 1 0.280273 0
+27 15 4 1 0.280273 0
+27 15 5 1 0.280273 0
+27 15 6 1 0.280273 0
+27 15 7 1 0.280518 0
+27 15 8 1 0.280518 0
+27 15 9 1 0.280762 0
+27 15 10 1 0.28125 0
+27 15 11 1 0.281982 0
+27 15 12 1 0.283447 0
+27 15 13 1 0.285645 0
+27 15 14 1 0.289062 0
+27 15 15 1 0.29126 0
+27 15 16 1 0.290771 0.156372
+27 15 17 1 0.285156 0.337891
+27 15 18 1 0.281494 0.458496
+27 15 19 1 0.287598 0.56543
+27 15 20 1 0.289795 0.657715
+27 15 21 1 0.317139 0.74707
+27 15 22 1 0.361816 0.827637
+27 15 23 1 0.405273 0.894531
+27 15 24 1 0.437256 0.949219
+27 15 25 1 0.45459 0.99707
+27 15 26 1 0.456543 1
+27 15 27 1 0.450928 1
+27 15 28 1 0.442627 1
+27 15 29 1 0.432129 1
+27 15 30 1 0.419678 1
+27 15 31 0.939941 0.406494 1
+27 16 0 1 0.36084 0
+27 16 1 1 0.36084 0
+27 16 2 1 0.36084 0
+27 16 3 1 0.36084 0
+27 16 4 1 0.36084 0
+27 16 5 1 0.36084 0
+27 16 6 1 0.36084 0
+27 16 7 1 0.36084 0
+27 16 8 1 0.361084 0
+27 16 9 1 0.361328 0
+27 16 10 1 0.361572 0
+27 16 11 1 0.362061 0
+27 16 12 1 0.363037 0
+27 16 13 1 0.364502 0
+27 16 14 1 0.366699 0
+27 16 15 1 0.368408 0
+27 16 16 1 0.367432 0.168091
+27 16 17 1 0.36377 0.340088
+27 16 18 1 0.360596 0.458252
+27 16 19 1 0.362793 0.563477
+27 16 20 1 0.365479 0.656738
+27 16 21 1 0.380615 0.745117
+27 16 22 1 0.412354 0.825684
+27 16 23 1 0.447266 0.893555
+27 16 24 1 0.474365 0.94873
+27 16 25 1 0.489258 0.996582
+27 16 26 1 0.489746 1
+27 16 27 1 0.482422 1
+27 16 28 1 0.472412 1
+27 16 29 1 0.459717 1
+27 16 30 1 0.445068 1
+27 16 31 0.9375 0.429688 1
+27 17 0 1 0.440186 0
+27 17 1 1 0.440186 0
+27 17 2 1 0.440186 0
+27 17 3 1 0.440186 0
+27 17 4 1 0.440186 0
+27 17 5 1 0.440186 0
+27 17 6 1 0.440186 0
+27 17 7 1 0.440186 0
+27 17 8 1 0.440186 0
+27 17 9 1 0.44043 0
+27 17 10 1 0.44043 0
+27 17 11 1 0.440918 0
+27 17 12 1 0.44165 0
+27 17 13 1 0.442627 0
+27 17 14 1 0.444336 0
+27 17 15 1 0.445557 0
+27 17 16 1 0.44458 0.188843
+27 17 17 1 0.442383 0.345459
+27 17 18 1 0.439941 0.459229
+27 17 19 1 0.439209 0.562012
+27 17 20 1 0.442871 0.65625
+27 17 21 1 0.448975 0.742188
+27 17 22 1 0.469727 0.823242
+27 17 23 1 0.496582 0.891602
+27 17 24 1 0.519043 0.947266
+27 17 25 1 0.531738 0.996094
+27 17 26 1 0.530273 1
+27 17 27 1 0.520996 1
+27 17 28 1 0.509277 1
+27 17 29 1 0.493896 1
+27 17 30 1 0.476807 1
+27 17 31 0.934082 0.45874 1
+27 18 0 1 0.518066 0
+27 18 1 1 0.518066 0
+27 18 2 1 0.518066 0
+27 18 3 1 0.518066 0
+27 18 4 1 0.518066 0
+27 18 5 1 0.518066 0
+27 18 6 1 0.518066 0
+27 18 7 1 0.518066 0
+27 18 8 1 0.518066 0
+27 18 9 1 0.518555 0
+27 18 10 1 0.518555 0
+27 18 11 1 0.519043 0
+27 18 12 1 0.519531 0
+27 18 13 1 0.52002 0
+27 18 14 1 0.521484 0
+27 18 15 1 0.522461 0
+27 18 16 1 0.521973 0.21875
+27 18 17 1 0.520996 0.356201
+27 18 18 1 0.519043 0.463623
+27 18 19 1 0.51709 0.561523
+27 18 20 1 0.518066 0.653809
+27 18 21 1 0.520508 0.739258
+27 18 22 1 0.531738 0.819336
+27 18 23 1 0.55127 0.888672
+27 18 24 1 0.569336 0.945312
+27 18 25 1 0.57959 0.994629
+27 18 26 1 0.57666 1
+27 18 27 1 0.565918 1
+27 18 28 1 0.55127 1
+27 18 29 1 0.533691 1
+27 18 30 1 0.513672 1
+27 18 31 0.929688 0.492676 1
+27 19 0 1 0.593262 0
+27 19 1 1 0.593262 0
+27 19 2 1 0.593262 0
+27 19 3 1 0.593262 0
+27 19 4 1 0.593262 0
+27 19 5 1 0.593262 0
+27 19 6 1 0.593262 0
+27 19 7 1 0.593262 0
+27 19 8 1 0.593262 0
+27 19 9 1 0.59375 0
+27 19 10 1 0.59375 0
+27 19 11 1 0.59375 0
+27 19 12 1 0.594238 0
+27 19 13 1 0.594727 0
+27 19 14 1 0.595703 0
+27 19 15 1 0.597168 0
+27 19 16 1 0.597656 0.254883
+27 19 17 1 0.597168 0.372803
+27 19 18 1 0.596191 0.472412
+27 19 19 1 0.594238 0.564453
+27 19 20 1 0.591797 0.651855
+27 19 21 1 0.593262 0.736816
+27 19 22 1 0.595703 0.813965
+27 19 23 1 0.60791 0.883789
+27 19 24 1 0.62207 0.941895
+27 19 25 1 0.629883 0.992676
+27 19 26 1 0.625977 1
+27 19 27 1 0.613281 1
+27 19 28 1 0.597168 1
+27 19 29 1 0.57666 1
+27 19 30 1 0.553711 1
+27 19 31 0.923828 0.529785 1
+27 20 0 1 0.664551 0.095459
+27 20 1 1 0.664551 0.095459
+27 20 2 1 0.664551 0.095459
+27 20 3 1 0.664551 0.095459
+27 20 4 1 0.664551 0.095459
+27 20 5 1 0.664551 0.095459
+27 20 6 1 0.664551 0.09552
+27 20 7 1 0.664551 0.0955811
+27 20 8 1 0.664551 0.0956421
+27 20 9 1 0.664551 0.0958862
+27 20 10 1 0.664551 0.0962524
+27 20 11 1 0.665039 0.0969238
+27 20 12 1 0.665039 0.0980835
+27 20 13 1 0.665527 0.0999146
+27 20 14 1 0.666504 0.102661
+27 20 15 1 0.66748 0.147949
+27 20 16 1 0.668945 0.292236
+27 20 17 1 0.669434 0.394043
+27 20 18 1 0.669434 0.485352
+27 20 19 1 0.66748 0.571289
+27 20 20 1 0.664062 0.652832
+27 20 21 1 0.661621 0.73291
+27 20 22 1 0.660645 0.809082
+27 20 23 1 0.665039 0.877441
+27 20 24 1 0.674316 0.937012
+27 20 25 1 0.681152 0.989258
+27 20 26 1 0.67627 1
+27 20 27 1 0.662109 1
+27 20 28 1 0.643555 1
+27 20 29 1 0.620605 1
+27 20 30 0.993164 0.595215 1
+27 20 31 0.916504 0.568359 1
+27 21 0 1 0.731934 0.218262
+27 21 1 1 0.731934 0.218262
+27 21 2 1 0.731934 0.218262
+27 21 3 1 0.731934 0.218262
+27 21 4 1 0.731934 0.218262
+27 21 5 1 0.731934 0.218262
+27 21 6 1 0.731934 0.218262
+27 21 7 1 0.731934 0.218262
+27 21 8 1 0.731934 0.218262
+27 21 9 1 0.731934 0.218384
+27 21 10 1 0.731934 0.218384
+27 21 11 1 0.731934 0.218628
+27 21 12 1 0.732422 0.218872
+27 21 13 1 0.73291 0.21936
+27 21 14 1 0.733398 0.220093
+27 21 15 1 0.734375 0.224365
+27 21 16 1 0.73584 0.327148
+27 21 17 1 0.737305 0.416748
+27 21 18 1 0.738281 0.500977
+27 21 19 1 0.737305 0.581543
+27 21 20 1 0.733887 0.657715
+27 21 21 1 0.729492 0.731445
+27 21 22 1 0.725098 0.803711
+27 21 23 1 0.723145 0.870117
+27 21 24 1 0.727051 0.930176
+27 21 25 1 0.731445 0.984375
+27 21 26 1 0.726562 1
+27 21 27 1 0.710938 1
+27 21 28 1 0.690918 1
+27 21 29 1 0.665527 1
+27 21 30 0.983398 0.637695 1
+27 21 31 0.907715 0.60791 1
+27 22 0 1 0.793457 0.2771
+27 22 1 1 0.793457 0.2771
+27 22 2 1 0.793457 0.2771
+27 22 3 1 0.793457 0.2771
+27 22 4 1 0.793457 0.2771
+27 22 5 1 0.793457 0.2771
+27 22 6 1 0.793457 0.2771
+27 22 7 1 0.793945 0.2771
+27 22 8 1 0.793945 0.2771
+27 22 9 1 0.793945 0.2771
+27 22 10 1 0.793945 0.2771
+27 22 11 1 0.793945 0.277344
+27 22 12 1 0.793945 0.277344
+27 22 13 1 0.794434 0.277588
+27 22 14 1 0.794922 0.278076
+27 22 15 1 0.795898 0.278564
+27 22 16 1 0.797852 0.35498
+27 22 17 1 0.799805 0.436768
+27 22 18 1 0.80127 0.516602
+27 22 19 1 0.80127 0.593262
+27 22 20 1 0.798828 0.665039
+27 22 21 1 0.793945 0.733887
+27 22 22 1 0.787109 0.799805
+27 22 23 1 0.781738 0.863281
+27 22 24 1 0.77832 0.920898
+27 22 25 1 0.780273 0.977539
+27 22 26 1 0.774902 1
+27 22 27 1 0.758789 1
+27 22 28 1 0.736816 1
+27 22 29 1 0.709961 1
+27 22 30 0.972168 0.679199 1
+27 22 31 0.896973 0.647461 1
+27 23 0 1 0.848145 0.312744
+27 23 1 1 0.848145 0.312744
+27 23 2 1 0.848145 0.312744
+27 23 3 1 0.848145 0.312744
+27 23 4 1 0.848145 0.312744
+27 23 5 1 0.848145 0.312744
+27 23 6 1 0.848145 0.312744
+27 23 7 1 0.848145 0.312744
+27 23 8 1 0.848145 0.312744
+27 23 9 1 0.848145 0.312744
+27 23 10 1 0.848145 0.312744
+27 23 11 1 0.848633 0.312988
+27 23 12 1 0.848633 0.312988
+27 23 13 1 0.848633 0.313232
+27 23 14 1 0.849121 0.313232
+27 23 15 1 0.850098 0.313721
+27 23 16 1 0.852051 0.373047
+27 23 17 1 0.854492 0.450439
+27 23 18 1 0.856445 0.527344
+27 23 19 1 0.856934 0.602051
+27 23 20 1 0.855957 0.672363
+27 23 21 1 0.852051 0.738281
+27 23 22 1 0.844727 0.800293
+27 23 23 1 0.835938 0.856934
+27 23 24 1 0.828613 0.912109
+27 23 25 1 0.825195 0.968262
+27 23 26 1 0.820312 1
+27 23 27 1 0.803711 1
+27 23 28 1 0.780273 1
+27 23 29 1 0.751465 1
+27 23 30 0.958984 0.71875 1
+27 23 31 0.884766 0.685059 1
+27 24 0 1 0.895996 0.333252
+27 24 1 1 0.895996 0.333252
+27 24 2 1 0.895996 0.333252
+27 24 3 1 0.895996 0.333252
+27 24 4 1 0.895996 0.333252
+27 24 5 1 0.895996 0.333252
+27 24 6 1 0.895996 0.333252
+27 24 7 1 0.895996 0.333252
+27 24 8 1 0.895996 0.333252
+27 24 9 1 0.895996 0.333252
+27 24 10 1 0.895996 0.333252
+27 24 11 1 0.895996 0.333252
+27 24 12 1 0.896484 0.333252
+27 24 13 1 0.896484 0.333252
+27 24 14 1 0.896973 0.333496
+27 24 15 1 0.897461 0.33374
+27 24 16 1 0.899414 0.380615
+27 24 17 1 0.902344 0.456055
+27 24 18 1 0.904785 0.531738
+27 24 19 1 0.90625 0.605957
+27 24 20 1 0.905762 0.675781
+27 24 21 1 0.902832 0.741211
+27 24 22 1 0.896484 0.801758
+27 24 23 1 0.887695 0.85498
+27 24 24 1 0.876953 0.904297
+27 24 25 1 0.867676 0.95752
+27 24 26 1 0.861816 1
+27 24 27 1 0.845215 1
+27 24 28 1 0.820801 1
+27 24 29 1 0.790527 1
+27 24 30 0.944336 0.756348 1
+27 24 31 0.871582 0.720703 1
+27 25 0 1 0.941406 0.342285
+27 25 1 1 0.941406 0.342285
+27 25 2 1 0.941406 0.342285
+27 25 3 1 0.941406 0.342285
+27 25 4 1 0.941406 0.342285
+27 25 5 1 0.941406 0.342285
+27 25 6 1 0.941406 0.342285
+27 25 7 1 0.941406 0.342285
+27 25 8 1 0.941406 0.342285
+27 25 9 1 0.941406 0.342285
+27 25 10 1 0.941406 0.342285
+27 25 11 1 0.941406 0.342285
+27 25 12 1 0.941895 0.342285
+27 25 13 1 0.941895 0.342285
+27 25 14 1 0.941895 0.342529
+27 25 15 1 0.942383 0.342529
+27 25 16 1 0.944336 0.378174
+27 25 17 1 0.947266 0.453369
+27 25 18 1 0.950684 0.528809
+27 25 19 1 0.952637 0.603027
+27 25 20 1 0.953125 0.672852
+27 25 21 1 0.951172 0.739258
+27 25 22 1 0.946289 0.800293
+27 25 23 1 0.938477 0.853516
+27 25 24 1 0.927734 0.900391
+27 25 25 1 0.914062 0.946777
+27 25 26 1 0.90332 0.998047
+27 25 27 1 0.887695 1
+27 25 28 1 0.862305 1
+27 25 29 0.992676 0.830566 1
+27 25 30 0.92627 0.79541 1
+27 25 31 0.855469 0.758789 1
+27 26 0 1 0.983887 0.341797
+27 26 1 1 0.983887 0.341797
+27 26 2 1 0.983887 0.341797
+27 26 3 1 0.983887 0.341797
+27 26 4 1 0.983887 0.341797
+27 26 5 1 0.983887 0.341797
+27 26 6 1 0.983887 0.341797
+27 26 7 1 0.983887 0.341797
+27 26 8 1 0.983887 0.341797
+27 26 9 1 0.983887 0.341797
+27 26 10 1 0.983887 0.341797
+27 26 11 1 0.983887 0.341797
+27 26 12 1 0.983887 0.341797
+27 26 13 1 0.984375 0.341797
+27 26 14 1 0.984375 0.341797
+27 26 15 1 0.984375 0.341553
+27 26 16 1 0.98584 0.365723
+27 26 17 1 0.989258 0.441406
+27 26 18 1 0.992676 0.51709
+27 26 19 1 0.995605 0.591309
+27 26 20 1 0.996582 0.661621
+27 26 21 1 0.996094 0.728516
+27 26 22 1 0.992188 0.791016
+27 26 23 1 0.986328 0.845703
+27 26 24 1 0.977051 0.894043
+27 26 25 1 0.963867 0.939941
+27 26 26 1 0.946777 0.983887
+27 26 27 1 0.930664 1
+27 26 28 1 0.904297 1
+27 26 29 0.968262 0.871582 1
+27 26 30 0.904785 0.836426 1
+27 26 31 0.836426 0.799805 1
+27 27 0 1 1 0.334229
+27 27 1 1 1 0.334229
+27 27 2 1 1 0.334229
+27 27 3 1 1 0.334229
+27 27 4 1 1 0.334229
+27 27 5 1 1 0.334229
+27 27 6 1 1 0.334229
+27 27 7 1 1 0.334229
+27 27 8 1 1 0.334229
+27 27 9 1 1 0.334229
+27 27 10 1 1 0.334229
+27 27 11 1 1 0.334229
+27 27 12 1 1 0.334229
+27 27 13 1 1 0.334229
+27 27 14 1 1 0.334229
+27 27 15 1 1 0.334229
+27 27 16 1 1 0.344727
+27 27 17 1 1 0.422119
+27 27 18 1 1 0.498535
+27 27 19 1 1 0.572266
+27 27 20 1 1 0.642578
+27 27 21 1 1 0.709961
+27 27 22 1 1 0.771973
+27 27 23 1 1 0.828125
+27 27 24 1 1 0.877441
+27 27 25 1 1 0.925781
+27 27 26 1 0.993652 0.97168
+27 27 27 1 0.973633 1
+27 27 28 0.993652 0.946777 1
+27 27 29 0.939941 0.916016 1
+27 27 30 0.880371 0.881348 1
+27 27 31 0.814453 0.844238 1
+27 28 0 1 1 0.323975
+27 28 1 1 1 0.323975
+27 28 2 1 1 0.323975
+27 28 3 1 1 0.323975
+27 28 4 1 1 0.323975
+27 28 5 1 1 0.323975
+27 28 6 1 1 0.323975
+27 28 7 1 1 0.323975
+27 28 8 1 1 0.323975
+27 28 9 1 1 0.323975
+27 28 10 1 1 0.323975
+27 28 11 1 1 0.323975
+27 28 12 1 1 0.323975
+27 28 13 1 1 0.323975
+27 28 14 1 1 0.323975
+27 28 15 1 1 0.32373
+27 28 16 1 1 0.32373
+27 28 17 1 1 0.398193
+27 28 18 1 1 0.474854
+27 28 19 1 1 0.548828
+27 28 20 1 1 0.618164
+27 28 21 1 1 0.685059
+27 28 22 1 1 0.74707
+27 28 23 1 1 0.802734
+27 28 24 1 1 0.852539
+27 28 25 1 1 0.901367
+27 28 26 1 1 0.94873
+27 28 27 0.997559 1 0.994141
+27 28 28 0.958496 0.993652 1
+27 28 29 0.90918 0.964355 1
+27 28 30 0.851074 0.929199 1
+27 28 31 0.786621 0.891113 1
+27 29 0 1 1 0.311768
+27 29 1 1 1 0.311768
+27 29 2 1 1 0.311768
+27 29 3 1 1 0.311768
+27 29 4 1 1 0.311768
+27 29 5 1 1 0.311768
+27 29 6 1 1 0.311768
+27 29 7 1 1 0.311768
+27 29 8 1 1 0.311768
+27 29 9 1 1 0.311768
+27 29 10 1 1 0.311768
+27 29 11 1 1 0.311768
+27 29 12 1 1 0.311768
+27 29 13 1 1 0.311768
+27 29 14 1 1 0.311768
+27 29 15 1 1 0.311768
+27 29 16 1 1 0.311523
+27 29 17 1 1 0.369873
+27 29 18 1 1 0.44751
+27 29 19 1 1 0.520996
+27 29 20 1 1 0.589844
+27 29 21 1 1 0.655762
+27 29 22 1 1 0.717285
+27 29 23 1 1 0.772461
+27 29 24 1 1 0.822754
+27 29 25 0.999512 1 0.872559
+27 29 26 0.975586 1 0.921387
+27 29 27 0.946289 1 0.969238
+27 29 28 0.910645 1 1
+27 29 29 0.867188 1 1
+27 29 30 0.814453 0.978027 1
+27 29 31 0.752441 0.94043 1
+27 30 0 0.991699 1 0.29834
+27 30 1 0.991699 1 0.29834
+27 30 2 0.991699 1 0.29834
+27 30 3 0.991699 1 0.29834
+27 30 4 0.991699 1 0.29834
+27 30 5 0.991699 1 0.29834
+27 30 6 0.991699 1 0.29834
+27 30 7 0.991699 1 0.29834
+27 30 8 0.991699 1 0.29834
+27 30 9 0.991699 1 0.29834
+27 30 10 0.991699 1 0.29834
+27 30 11 0.991699 1 0.29834
+27 30 12 0.991699 1 0.29834
+27 30 13 0.991699 1 0.298096
+27 30 14 0.991699 1 0.298096
+27 30 15 0.991211 1 0.298096
+27 30 16 0.991211 1 0.298096
+27 30 17 0.990723 1 0.337646
+27 30 18 0.989746 1 0.416992
+27 30 19 0.987793 1 0.490234
+27 30 20 0.983887 1 0.558594
+27 30 21 0.978516 1 0.623047
+27 30 22 0.970215 1 0.684082
+27 30 23 0.960449 1 0.739258
+27 30 24 0.947754 1 0.789551
+27 30 25 0.931641 1 0.839844
+27 30 26 0.911133 1 0.890137
+27 30 27 0.884766 1 0.939941
+27 30 28 0.852539 1 0.987305
+27 30 29 0.8125 1 1
+27 30 30 0.76416 1 1
+27 30 31 0.706543 0.988281 1
+27 31 0 0.908691 1 0.283691
+27 31 1 0.908691 1 0.283691
+27 31 2 0.908691 1 0.283691
+27 31 3 0.908691 1 0.283691
+27 31 4 0.908691 1 0.283691
+27 31 5 0.908691 1 0.283691
+27 31 6 0.908691 1 0.283691
+27 31 7 0.908691 1 0.283691
+27 31 8 0.908691 1 0.283691
+27 31 9 0.908691 1 0.283691
+27 31 10 0.908691 1 0.283691
+27 31 11 0.908691 1 0.283691
+27 31 12 0.908691 1 0.283691
+27 31 13 0.908691 1 0.283691
+27 31 14 0.908691 1 0.283691
+27 31 15 0.908691 1 0.283691
+27 31 16 0.908691 1 0.283691
+27 31 17 0.908203 1 0.30127
+27 31 18 0.906738 1 0.383301
+27 31 19 0.904785 1 0.456787
+27 31 20 0.900879 1 0.524414
+27 31 21 0.895508 1 0.588379
+27 31 22 0.888184 1 0.647949
+27 31 23 0.879395 1 0.702637
+27 31 24 0.868652 1 0.75293
+27 31 25 0.854492 1 0.803711
+27 31 26 0.835938 1 0.85498
+27 31 27 0.8125 1 0.905762
+27 31 28 0.782715 1 0.955078
+27 31 29 0.745605 1 1
+27 31 30 0.700195 1 1
+27 31 31 0.64502 1 1
+28 0 0 1 0 0.0777588
+28 0 1 1 0 0.0777588
+28 0 2 1 0 0.0777588
+28 0 3 1 0 0.0777588
+28 0 4 1 0 0.0777588
+28 0 5 1 0 0.0777588
+28 0 6 1 0 0.0776978
+28 0 7 1 0 0.0776978
+28 0 8 1 0 0.0776367
+28 0 9 1 0 0.0775757
+28 0 10 1 0 0.0773926
+28 0 11 1 0 0.0771484
+28 0 12 1 0 0.0766602
+28 0 13 1 0 0.0758057
+28 0 14 1 0 0.0745239
+28 0 15 1 0 0.072876
+28 0 16 1 0 0.0713501
+28 0 17 1 0 0.27832
+28 0 18 1 0 0.413086
+28 0 19 1 0 0.521973
+28 0 20 1 0 0.61377
+28 0 21 1 0 0.702148
+28 0 22 1 0.0714111 0.783203
+28 0 23 1 0.236694 0.852539
+28 0 24 1 0.30957 0.910156
+28 0 25 1 0.357666 0.962402
+28 0 26 1 0.382812 1
+28 0 27 1 0.388916 1
+28 0 28 1 0.386475 1
+28 0 29 1 0.382324 1
+28 0 30 1 0.376221 1
+28 0 31 1 0.368896 1
+28 1 0 1 0 0.0777588
+28 1 1 1 0 0.0777588
+28 1 2 1 0 0.0777588
+28 1 3 1 0 0.0777588
+28 1 4 1 0 0.0777588
+28 1 5 1 0 0.0776978
+28 1 6 1 0 0.0776978
+28 1 7 1 0 0.0776978
+28 1 8 1 0 0.0776367
+28 1 9 1 0 0.0775757
+28 1 10 1 0 0.0773926
+28 1 11 1 0 0.0770874
+28 1 12 1 0 0.0765991
+28 1 13 1 0 0.0758057
+28 1 14 1 0 0.0745239
+28 1 15 1 0 0.072876
+28 1 16 1 0 0.0712891
+28 1 17 1 0 0.27832
+28 1 18 1 0 0.413086
+28 1 19 1 0 0.521973
+28 1 20 1 0 0.61377
+28 1 21 1 0 0.702148
+28 1 22 1 0.0715332 0.783203
+28 1 23 1 0.236694 0.852539
+28 1 24 1 0.30957 0.910156
+28 1 25 1 0.357666 0.962402
+28 1 26 1 0.382812 1
+28 1 27 1 0.388916 1
+28 1 28 1 0.386475 1
+28 1 29 1 0.382324 1
+28 1 30 1 0.376221 1
+28 1 31 1 0.368896 1
+28 2 0 1 0 0.0777588
+28 2 1 1 0 0.0777588
+28 2 2 1 0 0.0776978
+28 2 3 1 0 0.0776978
+28 2 4 1 0 0.0776978
+28 2 5 1 0 0.0776978
+28 2 6 1 0 0.0776978
+28 2 7 1 0 0.0776978
+28 2 8 1 0 0.0776367
+28 2 9 1 0 0.0775757
+28 2 10 1 0 0.0773926
+28 2 11 1 0 0.0770874
+28 2 12 1 0 0.0765991
+28 2 13 1 0 0.0758057
+28 2 14 1 0 0.0744629
+28 2 15 1 0 0.0728149
+28 2 16 1 0 0.0712891
+28 2 17 1 0 0.27832
+28 2 18 1 0 0.413086
+28 2 19 1 0 0.521973
+28 2 20 1 0 0.61377
+28 2 21 1 0 0.702148
+28 2 22 1 0.0717773 0.783203
+28 2 23 1 0.236816 0.852539
+28 2 24 1 0.30957 0.910156
+28 2 25 1 0.357666 0.962402
+28 2 26 1 0.382812 1
+28 2 27 1 0.388916 1
+28 2 28 1 0.386475 1
+28 2 29 1 0.382324 1
+28 2 30 1 0.376221 1
+28 2 31 1 0.368896 1
+28 3 0 1 0 0.0776978
+28 3 1 1 0 0.0776978
+28 3 2 1 0 0.0776978
+28 3 3 1 0 0.0776978
+28 3 4 1 0 0.0776978
+28 3 5 1 0 0.0776978
+28 3 6 1 0 0.0776978
+28 3 7 1 0 0.0776367
+28 3 8 1 0 0.0776367
+28 3 9 1 0 0.0775146
+28 3 10 1 0 0.0773926
+28 3 11 1 0 0.0770874
+28 3 12 1 0 0.0765991
+28 3 13 1 0 0.0758057
+28 3 14 1 0 0.0744629
+28 3 15 1 0 0.0728149
+28 3 16 1 0 0.0712891
+28 3 17 1 0 0.27832
+28 3 18 1 0 0.413086
+28 3 19 1 0 0.521973
+28 3 20 1 0 0.61377
+28 3 21 1 0 0.702148
+28 3 22 1 0.0722046 0.783203
+28 3 23 1 0.236816 0.852539
+28 3 24 1 0.30957 0.910156
+28 3 25 1 0.357666 0.962402
+28 3 26 1 0.382812 1
+28 3 27 1 0.388916 1
+28 3 28 1 0.386475 1
+28 3 29 1 0.382324 1
+28 3 30 1 0.376221 1
+28 3 31 1 0.368896 1
+28 4 0 1 0 0.0776978
+28 4 1 1 0 0.0776367
+28 4 2 1 0 0.0776367
+28 4 3 1 0 0.0776367
+28 4 4 1 0 0.0776367
+28 4 5 1 0 0.0776367
+28 4 6 1 0 0.0776367
+28 4 7 1 0 0.0776367
+28 4 8 1 0 0.0775757
+28 4 9 1 0 0.0775146
+28 4 10 1 0 0.0773315
+28 4 11 1 0 0.0770264
+28 4 12 1 0 0.0765381
+28 4 13 1 0 0.0757446
+28 4 14 1 0 0.0744019
+28 4 15 1 0 0.0727539
+28 4 16 1 0 0.071228
+28 4 17 1 0 0.27832
+28 4 18 1 0 0.413086
+28 4 19 1 0 0.521973
+28 4 20 1 0 0.61377
+28 4 21 1 0 0.702148
+28 4 22 1 0.072937 0.783203
+28 4 23 1 0.236938 0.852539
+28 4 24 1 0.30957 0.910156
+28 4 25 1 0.357666 0.962402
+28 4 26 1 0.382812 1
+28 4 27 1 0.388916 1
+28 4 28 1 0.386475 1
+28 4 29 1 0.382324 1
+28 4 30 1 0.376221 1
+28 4 31 1 0.368896 1
+28 5 0 1 0 0.0775757
+28 5 1 1 0 0.0775757
+28 5 2 1 0 0.0775757
+28 5 3 1 0 0.0775757
+28 5 4 1 0 0.0775757
+28 5 5 1 0 0.0775757
+28 5 6 1 0 0.0775757
+28 5 7 1 0 0.0775146
+28 5 8 1 0 0.0775146
+28 5 9 1 0 0.0773926
+28 5 10 1 0 0.0772705
+28 5 11 1 0 0.0769653
+28 5 12 1 0 0.0764771
+28 5 13 1 0 0.0756836
+28 5 14 1 0 0.0743408
+28 5 15 1 0 0.0726929
+28 5 16 1 0 0.071167
+28 5 17 1 0 0.27832
+28 5 18 1 0 0.413086
+28 5 19 1 0 0.521973
+28 5 20 1 0 0.61377
+28 5 21 1 0 0.702148
+28 5 22 1 0.0744019 0.783203
+28 5 23 1 0.237183 0.852539
+28 5 24 1 0.309814 0.910156
+28 5 25 1 0.35791 0.962402
+28 5 26 1 0.383057 1
+28 5 27 1 0.38916 1
+28 5 28 1 0.386719 1
+28 5 29 1 0.382324 1
+28 5 30 1 0.376465 1
+28 5 31 1 0.369141 1
+28 6 0 1 0 0.0774536
+28 6 1 1 0 0.0774536
+28 6 2 1 0 0.0774536
+28 6 3 1 0 0.0774536
+28 6 4 1 0 0.0774536
+28 6 5 1 0 0.0774536
+28 6 6 1 0 0.0773926
+28 6 7 1 0 0.0773926
+28 6 8 1 0 0.0773315
+28 6 9 1 0 0.0772705
+28 6 10 1 0 0.0770874
+28 6 11 1 0 0.0767822
+28 6 12 1 0 0.0762939
+28 6 13 1 0 0.0755005
+28 6 14 1 0 0.0741577
+28 6 15 1 0 0.0725098
+28 6 16 1 0 0.0709839
+28 6 17 1 0 0.27832
+28 6 18 1 0 0.413086
+28 6 19 1 0 0.521973
+28 6 20 1 0 0.61377
+28 6 21 1 0 0.702148
+28 6 22 1 0.0770874 0.783203
+28 6 23 1 0.237549 0.852539
+28 6 24 1 0.310059 0.910156
+28 6 25 1 0.35791 0.962402
+28 6 26 1 0.383301 1
+28 6 27 1 0.38916 1
+28 6 28 1 0.386719 1
+28 6 29 1 0.382568 1
+28 6 30 1 0.376465 1
+28 6 31 1 0.369141 1
+28 7 0 1 0 0.0771484
+28 7 1 1 0 0.0771484
+28 7 2 1 0 0.0771484
+28 7 3 1 0 0.0771484
+28 7 4 1 0 0.0771484
+28 7 5 1 0 0.0771484
+28 7 6 1 0 0.0771484
+28 7 7 1 0 0.0770874
+28 7 8 1 0 0.0770264
+28 7 9 1 0 0.0769653
+28 7 10 1 0 0.0767822
+28 7 11 1 0 0.0765381
+28 7 12 1 0 0.0760498
+28 7 13 1 0 0.0751953
+28 7 14 1 0 0.0738525
+28 7 15 1 0 0.0722046
+28 7 16 1 0 0.0706177
+28 7 17 1 0 0.27832
+28 7 18 1 0 0.413086
+28 7 19 1 0 0.521973
+28 7 20 1 0 0.61377
+28 7 21 1 0 0.702148
+28 7 22 1 0.0818481 0.783203
+28 7 23 1 0.238403 0.852539
+28 7 24 1 0.310547 0.910156
+28 7 25 1 0.358398 0.962402
+28 7 26 1 0.383545 1
+28 7 27 1 0.389648 1
+28 7 28 1 0.387207 1
+28 7 29 1 0.382812 1
+28 7 30 1 0.376709 1
+28 7 31 1 0.369385 1
+28 8 0 1 0 0.0765991
+28 8 1 1 0 0.0765991
+28 8 2 1 0 0.0765991
+28 8 3 1 0 0.0765991
+28 8 4 1 0 0.0765381
+28 8 5 1 0 0.0765381
+28 8 6 1 0 0.0765381
+28 8 7 1 0 0.0765381
+28 8 8 1 0 0.0764771
+28 8 9 1 0 0.076416
+28 8 10 1 0 0.0762329
+28 8 11 1 0 0.0759277
+28 8 12 1 0 0.0754395
+28 8 13 1 0 0.074585
+28 8 14 1 0 0.0732422
+28 8 15 1 0 0.0715332
+28 8 16 1 0 0.0700073
+28 8 17 1 0 0.27832
+28 8 18 1 0 0.413086
+28 8 19 1 0 0.521973
+28 8 20 1 0 0.61377
+28 8 21 1 0 0.702148
+28 8 22 1 0.0900879 0.783203
+28 8 23 1 0.239868 0.852539
+28 8 24 1 0.311523 0.910156
+28 8 25 1 0.359131 0.962402
+28 8 26 1 0.384277 1
+28 8 27 1 0.390137 1
+28 8 28 1 0.387695 1
+28 8 29 1 0.383301 1
+28 8 30 1 0.377197 1
+28 8 31 1 0.369873 1
+28 9 0 1 0 0.0754395
+28 9 1 1 0 0.0754395
+28 9 2 1 0 0.0754395
+28 9 3 1 0 0.0754395
+28 9 4 1 0 0.0754395
+28 9 5 1 0 0.0754395
+28 9 6 1 0 0.0754395
+28 9 7 1 0 0.0753784
+28 9 8 1 0 0.0753784
+28 9 9 1 0 0.0752563
+28 9 10 1 0 0.0750732
+28 9 11 1 0 0.0747681
+28 9 12 1 0 0.0742798
+28 9 13 1 0 0.0734253
+28 9 14 1 0 0.0720215
+28 9 15 1 0 0.0703125
+28 9 16 1 0 0.0687256
+28 9 17 1 0 0.27832
+28 9 18 1 0 0.413086
+28 9 19 1 0 0.521973
+28 9 20 1 0 0.61377
+28 9 21 1 0 0.702148
+28 9 22 1 0.103149 0.783203
+28 9 23 1 0.242798 0.852539
+28 9 24 1 0.313477 0.910156
+28 9 25 1 0.360596 0.962402
+28 9 26 1 0.385498 1
+28 9 27 1 0.391357 1
+28 9 28 1 0.388916 1
+28 9 29 1 0.384277 1
+28 9 30 1 0.378174 1
+28 9 31 1 0.37085 1
+28 10 0 1 0 0.0733643
+28 10 1 1 0 0.0733643
+28 10 2 1 0 0.0733643
+28 10 3 1 0 0.0733643
+28 10 4 1 0 0.0733032
+28 10 5 1 0 0.0733032
+28 10 6 1 0 0.0733032
+28 10 7 1 0 0.0733032
+28 10 8 1 0 0.0732422
+28 10 9 1 0 0.0731201
+28 10 10 1 0 0.072937
+28 10 11 1 0 0.0726318
+28 10 12 1 0 0.0720825
+28 10 13 1 0 0.071228
+28 10 14 1 0 0.0697632
+28 10 15 1 0 0.0679321
+28 10 16 1 0 0.0662842
+28 10 17 1 0 0.27832
+28 10 18 1 0 0.413086
+28 10 19 1 0 0.521973
+28 10 20 1 0 0.61377
+28 10 21 1 0 0.702148
+28 10 22 1 0.121826 0.783203
+28 10 23 1 0.247925 0.852539
+28 10 24 1 0.316895 0.910156
+28 10 25 1 0.363281 0.962402
+28 10 26 1 0.387939 1
+28 10 27 1 0.393555 1
+28 10 28 1 0.390869 1
+28 10 29 1 0.38623 1
+28 10 30 1 0.379883 1
+28 10 31 1 0.372314 1
+28 11 0 1 0 0.069397
+28 11 1 1 0 0.069397
+28 11 2 1 0 0.069397
+28 11 3 1 0 0.069397
+28 11 4 1 0 0.0693359
+28 11 5 1 0 0.0693359
+28 11 6 1 0 0.0693359
+28 11 7 1 0 0.0693359
+28 11 8 1 0 0.0692749
+28 11 9 1 0 0.0691528
+28 11 10 1 0 0.0689697
+28 11 11 1 0 0.0686035
+28 11 12 1 0 0.0679932
+28 11 13 1 0 0.0670166
+28 11 14 1 0 0.0654297
+28 11 15 1 0 0.0633545
+28 11 16 1 0 0.0615845
+28 11 17 1 0 0.278076
+28 11 18 1 0 0.412842
+28 11 19 1 0 0.521973
+28 11 20 1 0 0.61377
+28 11 21 1 0 0.70166
+28 11 22 1 0.146484 0.782715
+28 11 23 1 0.256592 0.852539
+28 11 24 1 0.322754 0.910156
+28 11 25 1 0.36792 0.962402
+28 11 26 1 0.39209 1
+28 11 27 1 0.397461 1
+28 11 28 1 0.394531 1
+28 11 29 1 0.389648 1
+28 11 30 1 0.383057 1
+28 11 31 1 0.375 1
+28 12 0 1 0 0.0615845
+28 12 1 1 0 0.0615845
+28 12 2 1 0 0.0615845
+28 12 3 1 0 0.0615845
+28 12 4 1 0 0.061554
+28 12 5 1 0 0.061554
+28 12 6 1 0 0.061554
+28 12 7 1 0 0.0614929
+28 12 8 1 0 0.0614319
+28 12 9 1 0 0.0613098
+28 12 10 1 0 0.0610657
+28 12 11 1 0 0.0606689
+28 12 12 1 0 0.0599365
+28 12 13 1 0 0.0587158
+28 12 14 1 0 0.0566711
+28 12 15 1 0 0.0541077
+28 12 16 1 0 0.0519104
+28 12 17 1 0 0.278076
+28 12 18 1 0 0.412598
+28 12 19 1 0 0.521973
+28 12 20 1 0 0.613281
+28 12 21 1 0 0.70166
+28 12 22 1 0.177734 0.782715
+28 12 23 1 0.270508 0.852051
+28 12 24 1 0.332275 0.910156
+28 12 25 1 0.375732 0.962402
+28 12 26 1 0.398926 1
+28 12 27 1 0.403809 1
+28 12 28 1 0.400391 1
+28 12 29 1 0.39502 1
+28 12 30 1 0.388184 1
+28 12 31 1 0.379639 1
+28 13 0 1 0 0.043335
+28 13 1 1 0 0.043335
+28 13 2 1 0 0.043335
+28 13 3 1 0 0.043335
+28 13 4 1 0 0.043335
+28 13 5 1 0 0.0433044
+28 13 6 1 0 0.0432739
+28 13 7 1 0 0.0432129
+28 13 8 1 0 0.0430908
+28 13 9 1 0 0.0428772
+28 13 10 1 0 0.04245
+28 13 11 1 0 0.041687
+28 13 12 1 0 0.0403442
+28 13 13 1 0 0.0379639
+28 13 14 1 0 0.0335999
+28 13 15 1 0 0.0268097
+28 13 16 1 0 0.0193481
+28 13 17 1 0 0.277832
+28 13 18 1 0 0.412109
+28 13 19 1 0 0.521484
+28 13 20 1 0 0.613281
+28 13 21 1 0.110046 0.701172
+28 13 22 1 0.215454 0.782227
+28 13 23 1 0.291016 0.852051
+28 13 24 1 0.347168 0.910156
+28 13 25 1 0.387939 0.961914
+28 13 26 1 0.409668 1
+28 13 27 1 0.413818 1
+28 13 28 1 0.409912 1
+28 13 29 1 0.403809 1
+28 13 30 1 0.39624 1
+28 13 31 1 0.386963 1
+28 14 0 1 0.153442 0
+28 14 1 1 0.153442 0
+28 14 2 1 0.153442 0
+28 14 3 1 0.153442 0
+28 14 4 1 0.153442 0
+28 14 5 1 0.153564 0
+28 14 6 1 0.153564 0
+28 14 7 1 0.153687 0
+28 14 8 1 0.154053 0
+28 14 9 1 0.154663 0
+28 14 10 1 0.15564 0
+28 14 11 1 0.157471 0
+28 14 12 1 0.1604 0
+28 14 13 1 0.165161 0
+28 14 14 1 0.172241 0
+28 14 15 1 0.180054 0
+28 14 16 1 0.184448 0
+28 14 17 1 0.176392 0.278076
+28 14 18 1 0.166138 0.411621
+28 14 19 1 0.171875 0.520508
+28 14 20 1 0.171875 0.613281
+28 14 21 1 0.20166 0.700684
+28 14 22 1 0.26001 0.781738
+28 14 23 1 0.31958 0.851562
+28 14 24 1 0.368652 0.909668
+28 14 25 1 0.406006 0.961914
+28 14 26 1 0.426025 1
+28 14 27 1 0.429199 1
+28 14 28 1 0.424316 1
+28 14 29 1 0.417236 1
+28 14 30 1 0.408447 1
+28 14 31 1 0.398193 1
+28 15 0 1 0.252441 0
+28 15 1 1 0.252441 0
+28 15 2 1 0.252441 0
+28 15 3 1 0.252441 0
+28 15 4 1 0.252441 0
+28 15 5 1 0.252441 0
+28 15 6 1 0.252686 0
+28 15 7 1 0.252686 0
+28 15 8 1 0.252686 0
+28 15 9 1 0.253174 0
+28 15 10 1 0.253662 0
+28 15 11 1 0.254395 0
+28 15 12 1 0.255859 0
+28 15 13 1 0.258057 0
+28 15 14 1 0.261719 0
+28 15 15 1 0.265869 0
+28 15 16 1 0.267578 0
+28 15 17 1 0.262939 0.278809
+28 15 18 1 0.257324 0.411133
+28 15 19 1 0.258789 0.519043
+28 15 20 1 0.26123 0.612793
+28 15 21 1 0.274414 0.699707
+28 15 22 1 0.311035 0.780762
+28 15 23 1 0.356689 0.850586
+28 15 24 1 0.398438 0.90918
+28 15 25 1 0.431396 0.961914
+28 15 26 1 0.449219 1
+28 15 27 1 0.451172 1
+28 15 28 1 0.444824 1
+28 15 29 1 0.436523 1
+28 15 30 1 0.42627 1
+28 15 31 1 0.414551 1
+28 16 0 1 0.334961 0
+28 16 1 1 0.334961 0
+28 16 2 1 0.334961 0
+28 16 3 1 0.334961 0
+28 16 4 1 0.334961 0
+28 16 5 1 0.334961 0
+28 16 6 1 0.334961 0
+28 16 7 1 0.334961 0
+28 16 8 1 0.335205 0
+28 16 9 1 0.335205 0
+28 16 10 1 0.335693 0
+28 16 11 1 0.336182 0
+28 16 12 1 0.337158 0
+28 16 13 1 0.338623 0
+28 16 14 1 0.34082 0
+28 16 15 1 0.34375 0
+28 16 16 1 0.344238 0
+28 16 17 1 0.341064 0.28125
+28 16 18 1 0.337402 0.411133
+28 16 19 1 0.33667 0.517578
+28 16 20 1 0.34082 0.612793
+28 16 21 1 0.345947 0.698242
+28 16 22 1 0.368896 0.779297
+28 16 23 1 0.402588 0.849609
+28 16 24 1 0.436768 0.908691
+28 16 25 1 0.465088 0.961426
+28 16 26 1 0.480225 1
+28 16 27 1 0.480469 1
+28 16 28 1 0.4729 1
+28 16 29 1 0.462891 1
+28 16 30 1 0.450684 1
+28 16 31 1 0.436768 1
+28 17 0 1 0.41333 0
+28 17 1 1 0.41333 0
+28 17 2 1 0.41333 0
+28 17 3 1 0.41333 0
+28 17 4 1 0.41333 0
+28 17 5 1 0.413574 0
+28 17 6 1 0.413574 0
+28 17 7 1 0.413574 0
+28 17 8 1 0.413574 0
+28 17 9 1 0.413574 0
+28 17 10 1 0.413818 0
+28 17 11 1 0.414307 0
+28 17 12 1 0.415039 0
+28 17 13 1 0.416016 0
+28 17 14 1 0.417725 0
+28 17 15 1 0.419922 0
+28 17 16 1 0.419922 0
+28 17 17 1 0.417725 0.287354
+28 17 18 1 0.415039 0.412842
+28 17 19 1 0.41333 0.516602
+28 17 20 1 0.416504 0.611816
+28 17 21 1 0.418701 0.696777
+28 17 22 1 0.431396 0.776855
+28 17 23 1 0.455322 0.847656
+28 17 24 1 0.482178 0.907227
+28 17 25 1 0.505859 0.960938
+28 17 26 1 0.518555 1
+28 17 27 1 0.51709 1
+28 17 28 1 0.507812 1
+28 17 29 1 0.495605 1
+28 17 30 1 0.481201 1
+28 17 31 1 0.464844 1
+28 18 0 1 0.489746 0
+28 18 1 1 0.489746 0
+28 18 2 1 0.489746 0
+28 18 3 1 0.489746 0
+28 18 4 1 0.489746 0
+28 18 5 1 0.489746 0
+28 18 6 1 0.489746 0
+28 18 7 1 0.489746 0
+28 18 8 1 0.489746 0
+28 18 9 1 0.489746 0
+28 18 10 1 0.48999 0
+28 18 11 1 0.490234 0
+28 18 12 1 0.490723 0
+28 18 13 1 0.491699 0
+28 18 14 1 0.49292 0
+28 18 15 1 0.494629 0
+28 18 16 1 0.494385 0
+28 18 17 1 0.493408 0.298828
+28 18 18 1 0.491455 0.417236
+28 18 19 1 0.489502 0.517578
+28 18 20 1 0.489746 0.609375
+28 18 21 1 0.492432 0.695801
+28 18 22 1 0.497314 0.773926
+28 18 23 1 0.512695 0.844238
+28 18 24 1 0.532715 0.904785
+28 18 25 1 0.552246 0.959473
+28 18 26 1 0.5625 1
+28 18 27 1 0.559082 1
+28 18 28 1 0.547852 1
+28 18 29 1 0.533691 1
+28 18 30 1 0.51709 1
+28 18 31 1 0.498047 1
+28 19 0 1 0.5625 0
+28 19 1 1 0.5625 0
+28 19 2 1 0.5625 0
+28 19 3 1 0.5625 0
+28 19 4 1 0.5625 0
+28 19 5 1 0.5625 0
+28 19 6 1 0.5625 0
+28 19 7 1 0.5625 0
+28 19 8 1 0.5625 0
+28 19 9 1 0.562988 0
+28 19 10 1 0.562988 0
+28 19 11 1 0.562988 0
+28 19 12 1 0.563477 0
+28 19 13 1 0.563965 0
+28 19 14 1 0.564941 0
+28 19 15 1 0.566895 0
+28 19 16 1 0.566895 0.147583
+28 19 17 1 0.566895 0.31665
+28 19 18 1 0.565918 0.426025
+28 19 19 1 0.563965 0.520996
+28 19 20 1 0.5625 0.608398
+28 19 21 1 0.563477 0.693359
+28 19 22 1 0.564453 0.770508
+28 19 23 1 0.572266 0.840332
+28 19 24 1 0.585938 0.901367
+28 19 25 1 0.601074 0.957031
+28 19 26 1 0.609375 1
+28 19 27 1 0.604492 1
+28 19 28 1 0.591797 1
+28 19 29 1 0.575195 1
+28 19 30 1 0.556152 1
+28 19 31 1 0.534668 1
+28 20 0 1 0.630859 0
+28 20 1 1 0.630859 0
+28 20 2 1 0.630859 0
+28 20 3 1 0.630859 0
+28 20 4 1 0.630859 0
+28 20 5 1 0.630859 0
+28 20 6 1 0.630859 0
+28 20 7 1 0.630859 0
+28 20 8 1 0.630859 0
+28 20 9 1 0.631348 0
+28 20 10 1 0.631348 0
+28 20 11 1 0.631348 0
+28 20 12 1 0.631836 0
+28 20 13 1 0.632324 0
+28 20 14 1 0.632812 0
+28 20 15 1 0.634277 0
+28 20 16 1 0.635254 0.209839
+28 20 17 1 0.63623 0.339355
+28 20 18 1 0.635742 0.438965
+28 20 19 1 0.635254 0.527832
+28 20 20 1 0.632812 0.610352
+28 20 21 1 0.630859 0.69043
+28 20 22 1 0.631348 0.767578
+28 20 23 1 0.631836 0.835449
+28 20 24 1 0.639648 0.896484
+28 20 25 1 0.650879 0.953613
+28 20 26 1 0.656738 1
+28 20 27 1 0.651367 1
+28 20 28 1 0.636719 1
+28 20 29 1 0.618164 1
+28 20 30 1 0.59668 1
+28 20 31 1 0.572266 1
+28 21 0 1 0.696289 0.133179
+28 21 1 1 0.696289 0.133179
+28 21 2 1 0.696289 0.133179
+28 21 3 1 0.696289 0.133179
+28 21 4 1 0.696289 0.133179
+28 21 5 1 0.696289 0.133179
+28 21 6 1 0.696289 0.133179
+28 21 7 1 0.696289 0.133179
+28 21 8 1 0.696289 0.133301
+28 21 9 1 0.696289 0.133301
+28 21 10 1 0.696289 0.133545
+28 21 11 1 0.696289 0.133911
+28 21 12 1 0.696777 0.134399
+28 21 13 1 0.697266 0.135376
+28 21 14 1 0.697754 0.136841
+28 21 15 1 0.69873 0.139038
+28 21 16 1 0.700195 0.259033
+28 21 17 1 0.70166 0.364502
+28 21 18 1 0.702637 0.455322
+28 21 19 1 0.702637 0.538086
+28 21 20 1 0.700684 0.615234
+28 21 21 1 0.697754 0.69043
+28 21 22 1 0.694336 0.763184
+28 21 23 1 0.692871 0.830078
+28 21 24 1 0.693848 0.890625
+28 21 25 1 0.700684 0.94873
+28 21 26 1 0.70459 0.999512
+28 21 27 1 0.698242 1
+28 21 28 1 0.682129 1
+28 21 29 1 0.662109 1
+28 21 30 1 0.638184 1
+28 21 31 0.995605 0.611328 1
+28 22 0 1 0.756348 0.229248
+28 22 1 1 0.756348 0.229248
+28 22 2 1 0.756348 0.229248
+28 22 3 1 0.756348 0.229248
+28 22 4 1 0.756348 0.229248
+28 22 5 1 0.756348 0.229248
+28 22 6 1 0.756348 0.229248
+28 22 7 1 0.756348 0.229248
+28 22 8 1 0.756348 0.229248
+28 22 9 1 0.756348 0.229248
+28 22 10 1 0.756348 0.22937
+28 22 11 1 0.756348 0.229492
+28 22 12 1 0.756836 0.229736
+28 22 13 1 0.756836 0.230103
+28 22 14 1 0.757812 0.230591
+28 22 15 1 0.758301 0.231445
+28 22 16 1 0.760254 0.298096
+28 22 17 1 0.762207 0.388672
+28 22 18 1 0.763672 0.472168
+28 22 19 1 0.764648 0.549805
+28 22 20 1 0.763672 0.623047
+28 22 21 1 0.760742 0.693359
+28 22 22 1 0.756348 0.760742
+28 22 23 1 0.751465 0.824707
+28 22 24 1 0.748535 0.883301
+28 22 25 1 0.749023 0.941895
+28 22 26 1 0.751465 0.994629
+28 22 27 1 0.744141 1
+28 22 28 1 0.727051 1
+28 22 29 1 0.705566 1
+28 22 30 1 0.679688 1
+28 22 31 0.986328 0.650391 1
+28 23 0 1 0.80957 0.280273
+28 23 1 1 0.80957 0.280273
+28 23 2 1 0.80957 0.280273
+28 23 3 1 0.80957 0.280273
+28 23 4 1 0.80957 0.280273
+28 23 5 1 0.80957 0.280273
+28 23 6 1 0.80957 0.280273
+28 23 7 1 0.80957 0.280518
+28 23 8 1 0.80957 0.280518
+28 23 9 1 0.80957 0.280518
+28 23 10 1 0.80957 0.280518
+28 23 11 1 0.80957 0.280518
+28 23 12 1 0.810059 0.280762
+28 23 13 1 0.810059 0.280762
+28 23 14 1 0.810547 0.28125
+28 23 15 1 0.811035 0.281738
+28 23 16 1 0.812988 0.326172
+28 23 17 1 0.81543 0.407715
+28 23 18 1 0.817871 0.486084
+28 23 19 1 0.819336 0.561035
+28 23 20 1 0.819336 0.630859
+28 23 21 1 0.817383 0.698242
+28 23 22 1 0.8125 0.761719
+28 23 23 1 0.806152 0.820312
+28 23 24 1 0.800293 0.876465
+28 23 25 1 0.79541 0.933594
+28 23 26 1 0.794922 0.987793
+28 23 27 1 0.787598 1
+28 23 28 1 0.769531 1
+28 23 29 1 0.746582 1
+28 23 30 1 0.71875 1
+28 23 31 0.976074 0.687988 1
+28 24 0 1 0.856445 0.312744
+28 24 1 1 0.856445 0.312744
+28 24 2 1 0.856445 0.312744
+28 24 3 1 0.856445 0.312744
+28 24 4 1 0.856445 0.312744
+28 24 5 1 0.856445 0.312744
+28 24 6 1 0.856445 0.312744
+28 24 7 1 0.856445 0.312744
+28 24 8 1 0.856445 0.312744
+28 24 9 1 0.856445 0.312744
+28 24 10 1 0.856934 0.312744
+28 24 11 1 0.856934 0.312744
+28 24 12 1 0.856934 0.312988
+28 24 13 1 0.856934 0.312988
+28 24 14 1 0.857422 0.313232
+28 24 15 1 0.85791 0.313477
+28 24 16 1 0.859375 0.343994
+28 24 17 1 0.862305 0.42041
+28 24 18 1 0.865234 0.495605
+28 24 19 1 0.867676 0.568359
+28 24 20 1 0.868652 0.637207
+28 24 21 1 0.867188 0.702637
+28 24 22 1 0.863281 0.763672
+28 24 23 1 0.856934 0.818848
+28 24 24 1 0.849121 0.870605
+28 24 25 1 0.84082 0.924805
+28 24 26 1 0.835449 0.979492
+28 24 27 1 0.827637 1
+28 24 28 1 0.80957 1
+28 24 29 1 0.785156 1
+28 24 30 1 0.756348 1
+28 24 31 0.964355 0.723633 1
+28 25 0 1 0.902344 0.333496
+28 25 1 1 0.902344 0.333496
+28 25 2 1 0.902344 0.333496
+28 25 3 1 0.902344 0.333496
+28 25 4 1 0.902344 0.333496
+28 25 5 1 0.902344 0.333496
+28 25 6 1 0.902344 0.333496
+28 25 7 1 0.902344 0.333496
+28 25 8 1 0.902344 0.333496
+28 25 9 1 0.902344 0.333496
+28 25 10 1 0.902344 0.333496
+28 25 11 1 0.902344 0.33374
+28 25 12 1 0.902344 0.33374
+28 25 13 1 0.902344 0.33374
+28 25 14 1 0.902832 0.33374
+28 25 15 1 0.90332 0.333984
+28 25 16 1 0.904297 0.352783
+28 25 17 1 0.907715 0.426025
+28 25 18 1 0.911133 0.499268
+28 25 19 1 0.914062 0.570801
+28 25 20 1 0.915527 0.63916
+28 25 21 1 0.915039 0.704102
+28 25 22 1 0.912109 0.76416
+28 25 23 1 0.906738 0.818359
+28 25 24 1 0.899414 0.866699
+28 25 25 1 0.888672 0.916016
+28 25 26 1 0.87793 0.96875
+28 25 27 1 0.869141 1
+28 25 28 1 0.850586 1
+28 25 29 1 0.825684 1
+28 25 30 1 0.794922 1
+28 25 31 0.950195 0.76123 1
+28 26 0 1 0.946289 0.343506
+28 26 1 1 0.946289 0.343506
+28 26 2 1 0.946289 0.343506
+28 26 3 1 0.946289 0.343506
+28 26 4 1 0.946289 0.343506
+28 26 5 1 0.946289 0.343506
+28 26 6 1 0.946289 0.343506
+28 26 7 1 0.946289 0.343506
+28 26 8 1 0.946289 0.343506
+28 26 9 1 0.946289 0.343506
+28 26 10 1 0.946289 0.343506
+28 26 11 1 0.946289 0.343506
+28 26 12 1 0.946289 0.343506
+28 26 13 1 0.946289 0.343506
+28 26 14 1 0.946777 0.343506
+28 26 15 1 0.946777 0.343506
+28 26 16 1 0.947754 0.35083
+28 26 17 1 0.951172 0.423096
+28 26 18 1 0.95459 0.495361
+28 26 19 1 0.95752 0.566406
+28 26 20 1 0.959473 0.634277
+28 26 21 1 0.959961 0.699219
+28 26 22 1 0.958496 0.759766
+28 26 23 1 0.954102 0.813965
+28 26 24 1 0.947754 0.862305
+28 26 25 1 0.9375 0.909668
+28 26 26 1 0.924316 0.957031
+28 26 27 1 0.910645 1
+28 26 28 1 0.893066 1
+28 26 29 1 0.867676 1
+28 26 30 0.999023 0.835449 1
+28 26 31 0.932129 0.800293 1
+28 27 0 1 0.988281 0.343018
+28 27 1 1 0.988281 0.343018
+28 27 2 1 0.988281 0.343018
+28 27 3 1 0.988281 0.343018
+28 27 4 1 0.988281 0.343018
+28 27 5 1 0.988281 0.343018
+28 27 6 1 0.988281 0.343018
+28 27 7 1 0.988281 0.343018
+28 27 8 1 0.988281 0.343018
+28 27 9 1 0.988281 0.343018
+28 27 10 1 0.988281 0.343018
+28 27 11 1 0.988281 0.343018
+28 27 12 1 0.988281 0.343018
+28 27 13 1 0.988281 0.343018
+28 27 14 1 0.988281 0.343018
+28 27 15 1 0.98877 0.343018
+28 27 16 1 0.98877 0.343018
+28 27 17 1 0.992188 0.410889
+28 27 18 1 0.995605 0.483154
+28 27 19 1 0.999023 0.554199
+28 27 20 1 1 0.621582
+28 27 21 1 1 0.686523
+28 27 22 1 1 0.74707
+28 27 23 1 0.997559 0.802246
+28 27 24 1 0.992188 0.851562
+28 27 25 1 0.983398 0.899902
+28 27 26 1 0.971191 0.946777
+28 27 27 1 0.954102 0.991699
+28 27 28 1 0.936523 1
+28 27 29 1 0.909668 1
+28 27 30 0.974121 0.877441 1
+28 27 31 0.910645 0.842285 1
+28 28 0 1 1 0.335449
+28 28 1 1 1 0.335449
+28 28 2 1 1 0.335449
+28 28 3 1 1 0.335449
+28 28 4 1 1 0.335449
+28 28 5 1 1 0.335449
+28 28 6 1 1 0.335449
+28 28 7 1 1 0.335449
+28 28 8 1 1 0.335449
+28 28 9 1 1 0.335449
+28 28 10 1 1 0.335449
+28 28 11 1 1 0.335449
+28 28 12 1 1 0.335449
+28 28 13 1 1 0.335449
+28 28 14 1 1 0.335449
+28 28 15 1 1 0.335449
+28 28 16 1 1 0.335449
+28 28 17 1 1 0.390869
+28 28 18 1 1 0.464111
+28 28 19 1 1 0.534668
+28 28 20 1 1 0.602051
+28 28 21 1 1 0.666504
+28 28 22 1 1 0.727539
+28 28 23 1 1 0.782715
+28 28 24 1 1 0.83252
+28 28 25 1 1 0.881836
+28 28 26 1 1 0.930176
+28 28 27 1 0.999023 0.977051
+28 28 28 1 0.979004 1
+28 28 29 0.999023 0.952148 1
+28 28 30 0.945801 0.921387 1
+28 28 31 0.885254 0.886719 1
+28 29 0 1 1 0.324951
+28 29 1 1 1 0.324951
+28 29 2 1 1 0.324951
+28 29 3 1 1 0.324951
+28 29 4 1 1 0.324951
+28 29 5 1 1 0.324951
+28 29 6 1 1 0.324951
+28 29 7 1 1 0.324951
+28 29 8 1 1 0.324951
+28 29 9 1 1 0.324951
+28 29 10 1 1 0.324951
+28 29 11 1 1 0.324951
+28 29 12 1 1 0.324951
+28 29 13 1 1 0.324951
+28 29 14 1 1 0.324951
+28 29 15 1 1 0.324951
+28 29 16 1 1 0.324951
+28 29 17 1 1 0.365967
+28 29 18 1 1 0.440186
+28 29 19 1 1 0.51123
+28 29 20 1 1 0.577637
+28 29 21 1 1 0.641602
+28 29 22 1 1 0.702148
+28 29 23 1 1 0.756836
+28 29 24 1 1 0.806641
+28 29 25 1 1 0.856934
+28 29 26 1 1 0.90625
+28 29 27 1 1 0.953613
+28 29 28 1 1 0.999512
+28 29 29 0.962891 0.998535 1
+28 29 30 0.913574 0.969238 1
+28 29 31 0.855469 0.934082 1
+28 30 0 1 1 0.312744
+28 30 1 1 1 0.312744
+28 30 2 1 1 0.312744
+28 30 3 1 1 0.312744
+28 30 4 1 1 0.312744
+28 30 5 1 1 0.312744
+28 30 6 1 1 0.312744
+28 30 7 1 1 0.312744
+28 30 8 1 1 0.312744
+28 30 9 1 1 0.312744
+28 30 10 1 1 0.312744
+28 30 11 1 1 0.312744
+28 30 12 1 1 0.312744
+28 30 13 1 1 0.312744
+28 30 14 1 1 0.312744
+28 30 15 1 1 0.312744
+28 30 16 1 1 0.312744
+28 30 17 1 1 0.33667
+28 30 18 1 1 0.412598
+28 30 19 1 1 0.483398
+28 30 20 1 1 0.549805
+28 30 21 1 1 0.612793
+28 30 22 1 1 0.672852
+28 30 23 1 1 0.727051
+28 30 24 1 1 0.776855
+28 30 25 1 1 0.82666
+28 30 26 1 1 0.876953
+28 30 27 0.980469 1 0.92627
+28 30 28 0.950684 1 0.974121
+28 30 29 0.914551 1 1
+28 30 30 0.870605 1 1
+28 30 31 0.817383 0.981934 1
+28 31 0 0.994629 1 0.299072
+28 31 1 0.994629 1 0.299072
+28 31 2 0.994629 1 0.299072
+28 31 3 0.994629 1 0.299072
+28 31 4 0.994629 1 0.299072
+28 31 5 0.994629 1 0.299072
+28 31 6 0.994629 1 0.299072
+28 31 7 0.994629 1 0.299072
+28 31 8 0.994629 1 0.299072
+28 31 9 0.994629 1 0.299072
+28 31 10 0.994629 1 0.299072
+28 31 11 0.994629 1 0.299072
+28 31 12 0.994629 1 0.299072
+28 31 13 0.994629 1 0.299072
+28 31 14 0.994629 1 0.299072
+28 31 15 0.994629 1 0.299072
+28 31 16 0.994629 1 0.299072
+28 31 17 0.994141 1 0.30249
+28 31 18 0.993652 1 0.381348
+28 31 19 0.992188 1 0.452637
+28 31 20 0.990234 1 0.518555
+28 31 21 0.986328 1 0.581055
+28 31 22 0.980469 1 0.639648
+28 31 23 0.973145 1 0.693359
+28 31 24 0.964355 1 0.742676
+28 31 25 0.952148 1 0.792969
+28 31 26 0.936035 1 0.84375
+28 31 27 0.915039 1 0.894531
+28 31 28 0.888672 1 0.944336
+28 31 29 0.855957 1 0.991699
+28 31 30 0.81543 1 1
+28 31 31 0.766602 1 1
+29 0 0 1 0 0.0796509
+29 0 1 1 0 0.0796509
+29 0 2 1 0 0.0796509
+29 0 3 1 0 0.0796509
+29 0 4 1 0 0.0796509
+29 0 5 1 0 0.0796509
+29 0 6 1 0 0.0795898
+29 0 7 1 0 0.0795898
+29 0 8 1 0 0.0795288
+29 0 9 1 0 0.0794678
+29 0 10 1 0 0.0793457
+29 0 11 1 0 0.0791016
+29 0 12 1 0 0.0786743
+29 0 13 1 0 0.0780029
+29 0 14 1 0 0.0769043
+29 0 15 1 0 0.0751953
+29 0 16 1 0 0.0740356
+29 0 17 1 0 0.193604
+29 0 18 1 0 0.358154
+29 0 19 1 0 0.472412
+29 0 20 1 0 0.566895
+29 0 21 1 0 0.65332
+29 0 22 1 0 0.733887
+29 0 23 1 0.0751343 0.804199
+29 0 24 1 0.231812 0.865234
+29 0 25 1 0.308105 0.920898
+29 0 26 1 0.358398 0.97168
+29 0 27 1 0.38501 1
+29 0 28 1 0.391113 1
+29 0 29 1 0.388672 1
+29 0 30 1 0.384033 1
+29 0 31 1 0.37793 1
+29 1 0 1 0 0.0796509
+29 1 1 1 0 0.0796509
+29 1 2 1 0 0.0796509
+29 1 3 1 0 0.0796509
+29 1 4 1 0 0.0796509
+29 1 5 1 0 0.0796509
+29 1 6 1 0 0.0795898
+29 1 7 1 0 0.0795898
+29 1 8 1 0 0.0795288
+29 1 9 1 0 0.0794678
+29 1 10 1 0 0.0793457
+29 1 11 1 0 0.0791016
+29 1 12 1 0 0.0786743
+29 1 13 1 0 0.0780029
+29 1 14 1 0 0.0769043
+29 1 15 1 0 0.0751953
+29 1 16 1 0 0.0740356
+29 1 17 1 0 0.193604
+29 1 18 1 0 0.358154
+29 1 19 1 0 0.472412
+29 1 20 1 0 0.566895
+29 1 21 1 0 0.65332
+29 1 22 1 0 0.733887
+29 1 23 1 0.0751953 0.804199
+29 1 24 1 0.231812 0.865234
+29 1 25 1 0.308105 0.920898
+29 1 26 1 0.358398 0.97168
+29 1 27 1 0.38501 1
+29 1 28 1 0.391113 1
+29 1 29 1 0.388672 1
+29 1 30 1 0.384033 1
+29 1 31 1 0.37793 1
+29 2 0 1 0 0.0796509
+29 2 1 1 0 0.0796509
+29 2 2 1 0 0.0796509
+29 2 3 1 0 0.0796509
+29 2 4 1 0 0.0795898
+29 2 5 1 0 0.0795898
+29 2 6 1 0 0.0795898
+29 2 7 1 0 0.0795898
+29 2 8 1 0 0.0795288
+29 2 9 1 0 0.0794678
+29 2 10 1 0 0.0793457
+29 2 11 1 0 0.0791016
+29 2 12 1 0 0.0786743
+29 2 13 1 0 0.0780029
+29 2 14 1 0 0.0769043
+29 2 15 1 0 0.0751953
+29 2 16 1 0 0.0740356
+29 2 17 1 0 0.193604
+29 2 18 1 0 0.358154
+29 2 19 1 0 0.472412
+29 2 20 1 0 0.566895
+29 2 21 1 0 0.65332
+29 2 22 1 0 0.733887
+29 2 23 1 0.0753784 0.804199
+29 2 24 1 0.231934 0.865234
+29 2 25 1 0.308105 0.920898
+29 2 26 1 0.358398 0.97168
+29 2 27 1 0.38501 1
+29 2 28 1 0.391357 1
+29 2 29 1 0.388672 1
+29 2 30 1 0.384033 1
+29 2 31 1 0.37793 1
+29 3 0 1 0 0.0795898
+29 3 1 1 0 0.0795898
+29 3 2 1 0 0.0795898
+29 3 3 1 0 0.0795898
+29 3 4 1 0 0.0795898
+29 3 5 1 0 0.0795898
+29 3 6 1 0 0.0795898
+29 3 7 1 0 0.0795898
+29 3 8 1 0 0.0795288
+29 3 9 1 0 0.0794678
+29 3 10 1 0 0.0793457
+29 3 11 1 0 0.0791016
+29 3 12 1 0 0.0786743
+29 3 13 1 0 0.0780029
+29 3 14 1 0 0.0769043
+29 3 15 1 0 0.0751343
+29 3 16 1 0 0.0739746
+29 3 17 1 0 0.193481
+29 3 18 1 0 0.358154
+29 3 19 1 0 0.472412
+29 3 20 1 0 0.566895
+29 3 21 1 0 0.65332
+29 3 22 1 0 0.733887
+29 3 23 1 0.0757446 0.804199
+29 3 24 1 0.231934 0.865234
+29 3 25 1 0.308105 0.920898
+29 3 26 1 0.358398 0.97168
+29 3 27 1 0.385254 1
+29 3 28 1 0.391357 1
+29 3 29 1 0.388672 1
+29 3 30 1 0.384033 1
+29 3 31 1 0.37793 1
+29 4 0 1 0 0.0795898
+29 4 1 1 0 0.0795898
+29 4 2 1 0 0.0795898
+29 4 3 1 0 0.0795898
+29 4 4 1 0 0.0795898
+29 4 5 1 0 0.0795898
+29 4 6 1 0 0.0795288
+29 4 7 1 0 0.0795288
+29 4 8 1 0 0.0794678
+29 4 9 1 0 0.0794067
+29 4 10 1 0 0.0792847
+29 4 11 1 0 0.0790405
+29 4 12 1 0 0.0786133
+29 4 13 1 0 0.0779419
+29 4 14 1 0 0.0768433
+29 4 15 1 0 0.0751343
+29 4 16 1 0 0.0739746
+29 4 17 1 0 0.193481
+29 4 18 1 0 0.358154
+29 4 19 1 0 0.472412
+29 4 20 1 0 0.566895
+29 4 21 1 0 0.65332
+29 4 22 1 0 0.733887
+29 4 23 1 0.076355 0.804199
+29 4 24 1 0.232056 0.865234
+29 4 25 1 0.308105 0.920898
+29 4 26 1 0.358398 0.97168
+29 4 27 1 0.385254 1
+29 4 28 1 0.391357 1
+29 4 29 1 0.388672 1
+29 4 30 1 0.384033 1
+29 4 31 1 0.37793 1
+29 5 0 1 0 0.0795288
+29 5 1 1 0 0.0795288
+29 5 2 1 0 0.0795288
+29 5 3 1 0 0.0795288
+29 5 4 1 0 0.0795288
+29 5 5 1 0 0.0794678
+29 5 6 1 0 0.0794678
+29 5 7 1 0 0.0794678
+29 5 8 1 0 0.0794067
+29 5 9 1 0 0.0793457
+29 5 10 1 0 0.0792236
+29 5 11 1 0 0.0789795
+29 5 12 1 0 0.0785522
+29 5 13 1 0 0.0778809
+29 5 14 1 0 0.0767822
+29 5 15 1 0 0.0750122
+29 5 16 1 0 0.0739136
+29 5 17 1 0 0.193481
+29 5 18 1 0 0.358154
+29 5 19 1 0 0.472412
+29 5 20 1 0 0.566895
+29 5 21 1 0 0.65332
+29 5 22 1 0 0.733887
+29 5 23 1 0.0775757 0.804199
+29 5 24 1 0.232178 0.865234
+29 5 25 1 0.30835 0.920898
+29 5 26 1 0.358643 0.97168
+29 5 27 1 0.385254 1
+29 5 28 1 0.391357 1
+29 5 29 1 0.388672 1
+29 5 30 1 0.384277 1
+29 5 31 1 0.37793 1
+29 6 0 1 0 0.0794067
+29 6 1 1 0 0.0794067
+29 6 2 1 0 0.0794067
+29 6 3 1 0 0.0794067
+29 6 4 1 0 0.0793457
+29 6 5 1 0 0.0793457
+29 6 6 1 0 0.0793457
+29 6 7 1 0 0.0793457
+29 6 8 1 0 0.0792847
+29 6 9 1 0 0.0792236
+29 6 10 1 0 0.0791016
+29 6 11 1 0 0.0788574
+29 6 12 1 0 0.0784302
+29 6 13 1 0 0.0777588
+29 6 14 1 0 0.0766602
+29 6 15 1 0 0.0748901
+29 6 16 1 0 0.0737305
+29 6 17 1 0 0.193481
+29 6 18 1 0 0.358154
+29 6 19 1 0 0.472412
+29 6 20 1 0 0.566895
+29 6 21 1 0 0.65332
+29 6 22 1 0 0.733887
+29 6 23 1 0.0797729 0.804199
+29 6 24 1 0.232666 0.865234
+29 6 25 1 0.308594 0.920898
+29 6 26 1 0.358643 0.97168
+29 6 27 1 0.385498 1
+29 6 28 1 0.391602 1
+29 6 29 1 0.388916 1
+29 6 30 1 0.384277 1
+29 6 31 1 0.378174 1
+29 7 0 1 0 0.0791626
+29 7 1 1 0 0.0791626
+29 7 2 1 0 0.0791626
+29 7 3 1 0 0.0791626
+29 7 4 1 0 0.0791016
+29 7 5 1 0 0.0791016
+29 7 6 1 0 0.0791016
+29 7 7 1 0 0.0791016
+29 7 8 1 0 0.0790405
+29 7 9 1 0 0.0789795
+29 7 10 1 0 0.0788574
+29 7 11 1 0 0.0786133
+29 7 12 1 0 0.078186
+29 7 13 1 0 0.0775146
+29 7 14 1 0 0.076355
+29 7 15 1 0 0.074646
+29 7 16 1 0 0.0734863
+29 7 17 1 0 0.193481
+29 7 18 1 0 0.358154
+29 7 19 1 0 0.472412
+29 7 20 1 0 0.566895
+29 7 21 1 0 0.65332
+29 7 22 1 0 0.733887
+29 7 23 1 0.0838623 0.804199
+29 7 24 1 0.233276 0.865234
+29 7 25 1 0.309082 0.920898
+29 7 26 1 0.359131 0.97168
+29 7 27 1 0.385742 1
+29 7 28 1 0.391846 1
+29 7 29 1 0.38916 1
+29 7 30 1 0.384521 1
+29 7 31 1 0.378418 1
+29 8 0 1 0 0.0786743
+29 8 1 1 0 0.0786743
+29 8 2 1 0 0.0786743
+29 8 3 1 0 0.0786743
+29 8 4 1 0 0.0786743
+29 8 5 1 0 0.0786133
+29 8 6 1 0 0.0786133
+29 8 7 1 0 0.0786133
+29 8 8 1 0 0.0785522
+29 8 9 1 0 0.0784912
+29 8 10 1 0 0.0783691
+29 8 11 1 0 0.078125
+29 8 12 1 0 0.0776978
+29 8 13 1 0 0.0770264
+29 8 14 1 0 0.0758667
+29 8 15 1 0 0.0740967
+29 8 16 1 0 0.072937
+29 8 17 1 0 0.193481
+29 8 18 1 0 0.358154
+29 8 19 1 0 0.472412
+29 8 20 1 0 0.566895
+29 8 21 1 0 0.65332
+29 8 22 1 0 0.733398
+29 8 23 1 0.0909424 0.804199
+29 8 24 1 0.234741 0.865234
+29 8 25 1 0.309814 0.920898
+29 8 26 1 0.359863 0.97168
+29 8 27 1 0.38623 1
+29 8 28 1 0.392334 1
+29 8 29 1 0.389648 1
+29 8 30 1 0.38501 1
+29 8 31 1 0.378906 1
+29 9 0 1 0 0.0776978
+29 9 1 1 0 0.0776978
+29 9 2 1 0 0.0776978
+29 9 3 1 0 0.0776978
+29 9 4 1 0 0.0776978
+29 9 5 1 0 0.0776978
+29 9 6 1 0 0.0776978
+29 9 7 1 0 0.0776978
+29 9 8 1 0 0.0776367
+29 9 9 1 0 0.0775757
+29 9 10 1 0 0.0773926
+29 9 11 1 0 0.0771484
+29 9 12 1 0 0.0767212
+29 9 13 1 0 0.0760498
+29 9 14 1 0 0.0748901
+29 9 15 1 0 0.0730591
+29 9 16 1 0 0.0718994
+29 9 17 1 0 0.193481
+29 9 18 1 0 0.358154
+29 9 19 1 0 0.472412
+29 9 20 1 0 0.566895
+29 9 21 1 0 0.65332
+29 9 22 1 0 0.733398
+29 9 23 1 0.102539 0.804199
+29 9 24 1 0.237427 0.865234
+29 9 25 1 0.311523 0.920898
+29 9 26 1 0.361084 0.97168
+29 9 27 1 0.387451 1
+29 9 28 1 0.393311 1
+29 9 29 1 0.390625 1
+29 9 30 1 0.385986 1
+29 9 31 1 0.379639 1
+29 10 0 1 0 0.0759277
+29 10 1 1 0 0.0759277
+29 10 2 1 0 0.0759277
+29 10 3 1 0 0.0759277
+29 10 4 1 0 0.0759277
+29 10 5 1 0 0.0759277
+29 10 6 1 0 0.0759277
+29 10 7 1 0 0.0759277
+29 10 8 1 0 0.0758667
+29 10 9 1 0 0.0758057
+29 10 10 1 0 0.0756226
+29 10 11 1 0 0.0753784
+29 10 12 1 0 0.0749512
+29 10 13 1 0 0.0742188
+29 10 14 1 0 0.072998
+29 10 15 1 0 0.071106
+29 10 16 1 0 0.0698853
+29 10 17 1 0 0.193359
+29 10 18 1 0 0.358154
+29 10 19 1 0 0.472168
+29 10 20 1 0 0.566895
+29 10 21 1 0 0.65332
+29 10 22 1 0 0.733398
+29 10 23 1 0.119446 0.804199
+29 10 24 1 0.242188 0.864746
+29 10 25 1 0.314697 0.920898
+29 10 26 1 0.363525 0.97168
+29 10 27 1 0.389404 1
+29 10 28 1 0.395264 1
+29 10 29 1 0.392334 1
+29 10 30 1 0.387451 1
+29 10 31 1 0.381104 1
+29 11 0 1 0 0.0726929
+29 11 1 1 0 0.0726929
+29 11 2 1 0 0.0726929
+29 11 3 1 0 0.0726929
+29 11 4 1 0 0.0726929
+29 11 5 1 0 0.0726929
+29 11 6 1 0 0.0726929
+29 11 7 1 0 0.0726318
+29 11 8 1 0 0.0726318
+29 11 9 1 0 0.0725098
+29 11 10 1 0 0.0723877
+29 11 11 1 0 0.0720825
+29 11 12 1 0 0.0715942
+29 11 13 1 0 0.0708008
+29 11 14 1 0 0.069519
+29 11 15 1 0 0.0674438
+29 11 16 1 0 0.0661621
+29 11 17 1 0 0.193237
+29 11 18 1 0 0.35791
+29 11 19 1 0 0.471924
+29 11 20 1 0 0.566895
+29 11 21 1 0 0.65332
+29 11 22 1 0 0.733398
+29 11 23 1 0.142334 0.804199
+29 11 24 1 0.250244 0.864746
+29 11 25 1 0.319824 0.920898
+29 11 26 1 0.367432 0.97168
+29 11 27 1 0.393066 1
+29 11 28 1 0.398438 1
+29 11 29 1 0.395264 1
+29 11 30 1 0.390381 1
+29 11 31 1 0.383789 1
+29 12 0 1 0 0.0665283
+29 12 1 1 0 0.0665283
+29 12 2 1 0 0.0665283
+29 12 3 1 0 0.0665283
+29 12 4 1 0 0.0665283
+29 12 5 1 0 0.0665283
+29 12 6 1 0 0.0664673
+29 12 7 1 0 0.0664673
+29 12 8 1 0 0.0664062
+29 12 9 1 0 0.0662842
+29 12 10 1 0 0.0661011
+29 12 11 1 0 0.0657959
+29 12 12 1 0 0.0652466
+29 12 13 1 0 0.0643311
+29 12 14 1 0 0.0628052
+29 12 15 1 0 0.0603638
+29 12 16 1 0 0.0588379
+29 12 17 1 0 0.192993
+29 12 18 1 0 0.357666
+29 12 19 1 0 0.47168
+29 12 20 1 0 0.566895
+29 12 21 1 0 0.652832
+29 12 22 1 0 0.733398
+29 12 23 1 0.171509 0.803711
+29 12 24 1 0.262939 0.864746
+29 12 25 1 0.328369 0.920898
+29 12 26 1 0.374268 0.97168
+29 12 27 1 0.398926 1
+29 12 28 1 0.404053 1
+29 12 29 1 0.400391 1
+29 12 30 1 0.39502 1
+29 12 31 1 0.387939 1
+29 13 0 1 0 0.0536499
+29 13 1 1 0 0.0536499
+29 13 2 1 0 0.0536499
+29 13 3 1 0 0.0536499
+29 13 4 1 0 0.0536194
+29 13 5 1 0 0.0536194
+29 13 6 1 0 0.0535889
+29 13 7 1 0 0.0535583
+29 13 8 1 0 0.0534973
+29 13 9 1 0 0.0533447
+29 13 10 1 0 0.0531006
+29 13 11 1 0 0.0526428
+29 13 12 1 0 0.0518188
+29 13 13 1 0 0.0504761
+29 13 14 1 0 0.0481873
+29 13 15 1 0 0.0443115
+29 13 16 1 0 0.0418701
+29 13 17 1 0 0.192749
+29 13 18 1 0 0.357422
+29 13 19 1 0 0.471191
+29 13 20 1 0 0.566895
+29 13 21 1 0 0.652832
+29 13 22 1 0.0752563 0.73291
+29 13 23 1 0.207031 0.803711
+29 13 24 1 0.281982 0.864746
+29 13 25 1 0.341553 0.920898
+29 13 26 1 0.384766 0.97168
+29 13 27 1 0.408203 1
+29 13 28 1 0.412598 1
+29 13 29 1 0.408691 1
+29 13 30 1 0.402588 1
+29 13 31 1 0.39502 1
+29 14 0 1 0.0900269 0
+29 14 1 1 0.0900269 0
+29 14 2 1 0.0900269 0
+29 14 3 1 0.0900879 0
+29 14 4 1 0.0901489 0
+29 14 5 1 0.09021 0
+29 14 6 1 0.0903931 0
+29 14 7 1 0.0906982 0
+29 14 8 1 0.0913086 0
+29 14 9 1 0.0924683 0
+29 14 10 1 0.0944824 0
+29 14 11 1 0.0979004 0
+29 14 12 1 0.103333 0
+29 14 13 1 0.111389 0
+29 14 14 1 0.122498 0
+29 14 15 1 0.136963 0
+29 14 16 1 0.143433 0
+29 14 17 1 0.143555 0.192749
+29 14 18 1 0.123291 0.356934
+29 14 19 1 0.112366 0.470459
+29 14 20 1 0.122009 0.566895
+29 14 21 1 0.126221 0.652344
+29 14 22 1 0.182861 0.732422
+29 14 23 1 0.249146 0.803223
+29 14 24 1 0.308838 0.864258
+29 14 25 1 0.361328 0.920898
+29 14 26 1 0.400879 0.97168
+29 14 27 1 0.422363 1
+29 14 28 1 0.426025 1
+29 14 29 1 0.421143 1
+29 14 30 1 0.414307 1
+29 14 31 1 0.405518 1
+29 15 0 1 0.220581 0
+29 15 1 1 0.220581 0
+29 15 2 1 0.220581 0
+29 15 3 1 0.220581 0
+29 15 4 1 0.220581 0
+29 15 5 1 0.220581 0
+29 15 6 1 0.220581 0
+29 15 7 1 0.220703 0
+29 15 8 1 0.220825 0
+29 15 9 1 0.221191 0
+29 15 10 1 0.22168 0
+29 15 11 1 0.222534 0
+29 15 12 1 0.224121 0
+29 15 13 1 0.226562 0
+29 15 14 1 0.230347 0
+29 15 15 1 0.236084 0
+29 15 16 1 0.238525 0
+29 15 17 1 0.238037 0.193604
+29 15 18 1 0.230225 0.356689
+29 15 19 1 0.225952 0.469727
+29 15 20 1 0.233154 0.567383
+29 15 21 1 0.231689 0.651855
+29 15 22 1 0.255615 0.731445
+29 15 23 1 0.297607 0.802246
+29 15 24 1 0.34375 0.86377
+29 15 25 1 0.388428 0.92041
+29 15 26 1 0.423584 0.971191
+29 15 27 1 0.442871 1
+29 15 28 1 0.445068 1
+29 15 29 1 0.439209 1
+29 15 30 1 0.431152 1
+29 15 31 1 0.421143 1
+29 16 0 1 0.306152 0
+29 16 1 1 0.306152 0
+29 16 2 1 0.306152 0
+29 16 3 1 0.306152 0
+29 16 4 1 0.306396 0
+29 16 5 1 0.306396 0
+29 16 6 1 0.306396 0
+29 16 7 1 0.306396 0
+29 16 8 1 0.306396 0
+29 16 9 1 0.306641 0
+29 16 10 1 0.306885 0
+29 16 11 1 0.307373 0
+29 16 12 1 0.30835 0
+29 16 13 1 0.309814 0
+29 16 14 1 0.312256 0
+29 16 15 1 0.315674 0
+29 16 16 1 0.317139 0
+29 16 17 1 0.316406 0.196655
+29 16 18 1 0.312012 0.356934
+29 16 19 1 0.309082 0.46875
+29 16 20 1 0.312012 0.56543
+29 16 21 1 0.313232 0.651367
+29 16 22 1 0.325195 0.730469
+29 16 23 1 0.352295 0.80127
+29 16 24 1 0.386963 0.862793
+29 16 25 1 0.423584 0.919922
+29 16 26 1 0.453857 0.971191
+29 16 27 1 0.470459 1
+29 16 28 1 0.471191 1
+29 16 29 1 0.463623 1
+29 16 30 1 0.454102 1
+29 16 31 1 0.442383 1
+29 17 0 1 0.384277 0
+29 17 1 1 0.384277 0
+29 17 2 1 0.384277 0
+29 17 3 1 0.384277 0
+29 17 4 1 0.384277 0
+29 17 5 1 0.384277 0
+29 17 6 1 0.384277 0
+29 17 7 1 0.384277 0
+29 17 8 1 0.384521 0
+29 17 9 1 0.384521 0
+29 17 10 1 0.384766 0
+29 17 11 1 0.385254 0
+29 17 12 1 0.385742 0
+29 17 13 1 0.386719 0
+29 17 14 1 0.388428 0
+29 17 15 1 0.391113 0
+29 17 16 1 0.391846 0
+29 17 17 1 0.391113 0.203979
+29 17 18 1 0.388428 0.358643
+29 17 19 1 0.38623 0.468506
+29 17 20 1 0.386719 0.563965
+29 17 21 1 0.389893 0.650391
+29 17 22 1 0.394775 0.728516
+29 17 23 1 0.411621 0.799316
+29 17 24 1 0.436523 0.861328
+29 17 25 1 0.46582 0.918945
+29 17 26 1 0.491211 0.970703
+29 17 27 1 0.504883 1
+29 17 28 1 0.503906 1
+29 17 29 1 0.494873 1
+29 17 30 1 0.483154 1
+29 17 31 1 0.469482 1
+29 18 0 1 0.458984 0
+29 18 1 1 0.458984 0
+29 18 2 1 0.458984 0
+29 18 3 1 0.458984 0
+29 18 4 1 0.458984 0
+29 18 5 1 0.458984 0
+29 18 6 1 0.458984 0
+29 18 7 1 0.458984 0
+29 18 8 1 0.458984 0
+29 18 9 1 0.458984 0
+29 18 10 1 0.459229 0
+29 18 11 1 0.459473 0
+29 18 12 1 0.459961 0
+29 18 13 1 0.460693 0
+29 18 14 1 0.461914 0
+29 18 15 1 0.463867 0
+29 18 16 1 0.4646 0
+29 18 17 1 0.464111 0.217773
+29 18 18 1 0.462891 0.362793
+29 18 19 1 0.461182 0.469238
+29 18 20 1 0.460449 0.5625
+29 18 21 1 0.463379 0.649414
+29 18 22 1 0.4646 0.726562
+29 18 23 1 0.473633 0.796875
+29 18 24 1 0.490723 0.858887
+29 18 25 1 0.513184 0.91748
+29 18 26 1 0.533691 0.969727
+29 18 27 1 0.544434 1
+29 18 28 1 0.541992 1
+29 18 29 1 0.53125 1
+29 18 30 1 0.517578 1
+29 18 31 1 0.501465 1
+29 19 0 1 0.529785 0
+29 19 1 1 0.529785 0
+29 19 2 1 0.529785 0
+29 19 3 1 0.529785 0
+29 19 4 1 0.529785 0
+29 19 5 1 0.529785 0
+29 19 6 1 0.529785 0
+29 19 7 1 0.529785 0
+29 19 8 1 0.529785 0
+29 19 9 1 0.530273 0
+29 19 10 1 0.530273 0
+29 19 11 1 0.530273 0
+29 19 12 1 0.530762 0
+29 19 13 1 0.53125 0
+29 19 14 1 0.532227 0
+29 19 15 1 0.533691 0
+29 19 16 1 0.534668 0
+29 19 17 1 0.534668 0.238892
+29 19 18 1 0.534668 0.37085
+29 19 19 1 0.533691 0.472656
+29 19 20 1 0.532227 0.5625
+29 19 21 1 0.532227 0.646484
+29 19 22 1 0.53418 0.724609
+29 19 23 1 0.536621 0.793457
+29 19 24 1 0.546875 0.855957
+29 19 25 1 0.562988 0.915039
+29 19 26 1 0.579102 0.968262
+29 19 27 1 0.587891 1
+29 19 28 1 0.583496 1
+29 19 29 1 0.570801 1
+29 19 30 1 0.555176 1
+29 19 31 1 0.537109 1
+29 20 0 1 0.596191 0
+29 20 1 1 0.596191 0
+29 20 2 1 0.596191 0
+29 20 3 1 0.596191 0
+29 20 4 1 0.596191 0
+29 20 5 1 0.596191 0
+29 20 6 1 0.596191 0
+29 20 7 1 0.596191 0
+29 20 8 1 0.596191 0
+29 20 9 1 0.596191 0
+29 20 10 1 0.596191 0
+29 20 11 1 0.59668 0
+29 20 12 1 0.59668 0
+29 20 13 1 0.597168 0
+29 20 14 1 0.598145 0
+29 20 15 1 0.599121 0
+29 20 16 1 0.600098 0
+29 20 17 1 0.601562 0.265625
+29 20 18 1 0.602051 0.383301
+29 20 19 1 0.601562 0.479004
+29 20 20 1 0.600586 0.564453
+29 20 21 1 0.599121 0.64502
+29 20 22 1 0.599121 0.722168
+29 20 23 1 0.599121 0.790039
+29 20 24 1 0.603027 0.851562
+29 20 25 1 0.613281 0.911621
+29 20 26 1 0.625488 0.966309
+29 20 27 1 0.631836 1
+29 20 28 1 0.625977 1
+29 20 29 1 0.611816 1
+29 20 30 1 0.594238 1
+29 20 31 1 0.57373 1
+29 21 0 1 0.658691 0
+29 21 1 1 0.658691 0
+29 21 2 1 0.658691 0
+29 21 3 1 0.658691 0
+29 21 4 1 0.658691 0
+29 21 5 1 0.658691 0
+29 21 6 1 0.658691 0
+29 21 7 1 0.658691 0
+29 21 8 1 0.658691 0
+29 21 9 1 0.658691 0
+29 21 10 1 0.658691 0
+29 21 11 1 0.65918 0
+29 21 12 1 0.65918 0
+29 21 13 1 0.659668 0
+29 21 14 1 0.660156 0
+29 21 15 1 0.661133 0
+29 21 16 1 0.662598 0.128296
+29 21 17 1 0.664551 0.29541
+29 21 18 1 0.666016 0.399414
+29 21 19 1 0.666504 0.488525
+29 21 20 1 0.666016 0.569336
+29 21 21 1 0.664062 0.645996
+29 21 22 1 0.661621 0.71875
+29 21 23 1 0.661621 0.787109
+29 21 24 1 0.660156 0.84668
+29 21 25 1 0.664551 0.906738
+29 21 26 1 0.672363 0.962402
+29 21 27 1 0.676758 1
+29 21 28 1 0.669434 1
+29 21 29 1 0.654297 1
+29 21 30 1 0.634766 1
+29 21 31 1 0.612305 1
+29 22 0 1 0.717285 0.138428
+29 22 1 1 0.717285 0.138428
+29 22 2 1 0.717285 0.138428
+29 22 3 1 0.717285 0.138428
+29 22 4 1 0.717285 0.138428
+29 22 5 1 0.717285 0.138428
+29 22 6 1 0.717285 0.138428
+29 22 7 1 0.717285 0.138428
+29 22 8 1 0.717285 0.13855
+29 22 9 1 0.717285 0.13855
+29 22 10 1 0.717285 0.138794
+29 22 11 1 0.717285 0.139038
+29 22 12 1 0.717773 0.139526
+29 22 13 1 0.717773 0.140259
+29 22 14 1 0.718262 0.141479
+29 22 15 1 0.719238 0.143188
+29 22 16 1 0.720703 0.208496
+29 22 17 1 0.723145 0.325439
+29 22 18 1 0.725098 0.417725
+29 22 19 1 0.726562 0.500488
+29 22 20 1 0.727051 0.57666
+29 22 21 1 0.725586 0.648926
+29 22 22 1 0.722168 0.717773
+29 22 23 1 0.71875 0.782227
+29 22 24 1 0.716797 0.841797
+29 22 25 1 0.715332 0.900879
+29 22 26 1 0.71875 0.95752
+29 22 27 1 0.720703 1
+29 22 28 1 0.712891 1
+29 22 29 1 0.695801 1
+29 22 30 1 0.675293 1
+29 22 31 1 0.650391 1
+29 23 0 1 0.769043 0.22644
+29 23 1 1 0.769043 0.22644
+29 23 2 1 0.769043 0.22644
+29 23 3 1 0.769043 0.22644
+29 23 4 1 0.769043 0.22644
+29 23 5 1 0.769043 0.22644
+29 23 6 1 0.769043 0.22644
+29 23 7 1 0.769043 0.22644
+29 23 8 1 0.769043 0.226562
+29 23 9 1 0.769531 0.226562
+29 23 10 1 0.769531 0.226562
+29 23 11 1 0.769531 0.226685
+29 23 12 1 0.769531 0.226929
+29 23 13 1 0.77002 0.227173
+29 23 14 1 0.770508 0.227661
+29 23 15 1 0.770996 0.228394
+29 23 16 1 0.771973 0.256348
+29 23 17 1 0.774902 0.351318
+29 23 18 1 0.777832 0.435059
+29 23 19 1 0.779785 0.512695
+29 23 20 1 0.78125 0.584961
+29 23 21 1 0.780273 0.65332
+29 23 22 1 0.777344 0.71875
+29 23 23 1 0.773438 0.779297
+29 23 24 1 0.768555 0.836426
+29 23 25 1 0.76416 0.894531
+29 23 26 1 0.762695 0.951172
+29 23 27 1 0.762207 1
+29 23 28 1 0.753906 1
+29 23 29 1 0.73584 1
+29 23 30 1 0.713867 1
+29 23 31 1 0.687012 1
+29 24 0 1 0.81543 0.275391
+29 24 1 1 0.81543 0.275391
+29 24 2 1 0.81543 0.275391
+29 24 3 1 0.81543 0.275391
+29 24 4 1 0.81543 0.275391
+29 24 5 1 0.81543 0.275391
+29 24 6 1 0.81543 0.275391
+29 24 7 1 0.81543 0.275635
+29 24 8 1 0.81543 0.275635
+29 24 9 1 0.81543 0.275635
+29 24 10 1 0.815918 0.275635
+29 24 11 1 0.815918 0.275635
+29 24 12 1 0.815918 0.275879
+29 24 13 1 0.815918 0.275879
+29 24 14 1 0.816406 0.276123
+29 24 15 1 0.816895 0.276611
+29 24 16 1 0.817871 0.289062
+29 24 17 1 0.820801 0.371826
+29 24 18 1 0.824219 0.449463
+29 24 19 1 0.827148 0.522949
+29 24 20 1 0.829102 0.592285
+29 24 21 1 0.829102 0.658691
+29 24 22 1 0.827148 0.720703
+29 24 23 1 0.823242 0.77832
+29 24 24 1 0.817383 0.831543
+29 24 25 1 0.811035 0.887695
+29 24 26 1 0.804688 0.943848
+29 24 27 1 0.80127 0.995605
+29 24 28 1 0.79248 1
+29 24 29 1 0.773926 1
+29 24 30 1 0.750488 1
+29 24 31 1 0.722656 1
+29 25 0 1 0.861328 0.310303
+29 25 1 1 0.861328 0.310303
+29 25 2 1 0.861328 0.310303
+29 25 3 1 0.861328 0.310303
+29 25 4 1 0.861328 0.310303
+29 25 5 1 0.861328 0.310303
+29 25 6 1 0.861328 0.310303
+29 25 7 1 0.861328 0.310303
+29 25 8 1 0.861328 0.310303
+29 25 9 1 0.861328 0.310303
+29 25 10 1 0.861328 0.310303
+29 25 11 1 0.861328 0.310547
+29 25 12 1 0.861816 0.310547
+29 25 13 1 0.861816 0.310547
+29 25 14 1 0.862305 0.310791
+29 25 15 1 0.862305 0.311035
+29 25 16 1 0.863281 0.312012
+29 25 17 1 0.866211 0.387207
+29 25 18 1 0.869629 0.460449
+29 25 19 1 0.872559 0.53125
+29 25 20 1 0.875 0.598145
+29 25 21 1 0.875977 0.662598
+29 25 22 1 0.875488 0.723145
+29 25 23 1 0.87207 0.777832
+29 25 24 1 0.867188 0.828613
+29 25 25 1 0.859375 0.880371
+29 25 26 1 0.850098 0.935059
+29 25 27 1 0.841797 0.987793
+29 25 28 1 0.83252 1
+29 25 29 1 0.813477 1
+29 25 30 1 0.789062 1
+29 25 31 1 0.759766 1
+29 26 0 1 0.90625 0.333252
+29 26 1 1 0.90625 0.333252
+29 26 2 1 0.90625 0.333252
+29 26 3 1 0.90625 0.333252
+29 26 4 1 0.90625 0.333252
+29 26 5 1 0.90625 0.333252
+29 26 6 1 0.90625 0.333252
+29 26 7 1 0.90625 0.333252
+29 26 8 1 0.90625 0.333252
+29 26 9 1 0.90625 0.333252
+29 26 10 1 0.906738 0.333252
+29 26 11 1 0.906738 0.333252
+29 26 12 1 0.906738 0.333252
+29 26 13 1 0.906738 0.333252
+29 26 14 1 0.907227 0.333496
+29 26 15 1 0.907227 0.333496
+29 26 16 1 0.907715 0.33374
+29 26 17 1 0.910645 0.395264
+29 26 18 1 0.914062 0.465576
+29 26 19 1 0.91748 0.53418
+29 26 20 1 0.919922 0.599609
+29 26 21 1 0.921387 0.662598
+29 26 22 1 0.920898 0.722168
+29 26 23 1 0.918945 0.776367
+29 26 24 1 0.914551 0.825195
+29 26 25 1 0.907715 0.874512
+29 26 26 1 0.897461 0.924805
+29 26 27 1 0.884766 0.976562
+29 26 28 1 0.874023 1
+29 26 29 1 0.85498 1
+29 26 30 1 0.82959 1
+29 26 31 1 0.798828 1
+29 27 0 1 0.950195 0.344238
+29 27 1 1 0.950195 0.344238
+29 27 2 1 0.950195 0.344238
+29 27 3 1 0.950195 0.344238
+29 27 4 1 0.950195 0.344238
+29 27 5 1 0.950195 0.344238
+29 27 6 1 0.950195 0.344238
+29 27 7 1 0.950195 0.344238
+29 27 8 1 0.950195 0.344238
+29 27 9 1 0.950195 0.344238
+29 27 10 1 0.950195 0.344238
+29 27 11 1 0.950195 0.344238
+29 27 12 1 0.950195 0.344238
+29 27 13 1 0.950195 0.344238
+29 27 14 1 0.950684 0.344238
+29 27 15 1 0.950684 0.344238
+29 27 16 1 0.951172 0.344238
+29 27 17 1 0.953613 0.393555
+29 27 18 1 0.957031 0.462402
+29 27 19 1 0.960449 0.530273
+29 27 20 1 0.962891 0.594727
+29 27 21 1 0.964844 0.657227
+29 27 22 1 0.964844 0.716309
+29 27 23 1 0.962891 0.77002
+29 27 24 1 0.959473 0.818848
+29 27 25 1 0.953613 0.867188
+29 27 26 1 0.944336 0.915527
+29 27 27 1 0.930664 0.963867
+29 27 28 1 0.916016 1
+29 27 29 1 0.897949 1
+29 27 30 1 0.871582 1
+29 27 31 1 0.839844 1
+29 28 0 1 0.991699 0.344238
+29 28 1 1 0.991699 0.344238
+29 28 2 1 0.991699 0.344238
+29 28 3 1 0.991699 0.344238
+29 28 4 1 0.991699 0.344238
+29 28 5 1 0.991699 0.344238
+29 28 6 1 0.991699 0.344238
+29 28 7 1 0.991699 0.344238
+29 28 8 1 0.991699 0.344238
+29 28 9 1 0.991699 0.344238
+29 28 10 1 0.991699 0.344238
+29 28 11 1 0.991699 0.344238
+29 28 12 1 0.991699 0.344238
+29 28 13 1 0.991699 0.344238
+29 28 14 1 0.991699 0.344238
+29 28 15 1 0.992188 0.343994
+29 28 16 1 0.992188 0.343994
+29 28 17 1 0.994141 0.381104
+29 28 18 1 0.997559 0.450439
+29 28 19 1 1 0.517578
+29 28 20 1 1 0.582031
+29 28 21 1 1 0.644531
+29 28 22 1 1 0.703125
+29 28 23 1 1 0.756836
+29 28 24 1 1 0.806152
+29 28 25 1 0.996582 0.855469
+29 28 26 1 0.988281 0.904297
+29 28 27 1 0.976074 0.95166
+29 28 28 1 0.959473 0.99707
+29 28 29 1 0.940918 1
+29 28 30 1 0.914062 1
+29 28 31 0.979004 0.881836 1
+29 29 0 1 1 0.33667
+29 29 1 1 1 0.33667
+29 29 2 1 1 0.33667
+29 29 3 1 1 0.33667
+29 29 4 1 1 0.33667
+29 29 5 1 1 0.33667
+29 29 6 1 1 0.33667
+29 29 7 1 1 0.33667
+29 29 8 1 1 0.33667
+29 29 9 1 1 0.33667
+29 29 10 1 1 0.33667
+29 29 11 1 1 0.33667
+29 29 12 1 1 0.33667
+29 29 13 1 1 0.336426
+29 29 14 1 1 0.336426
+29 29 15 1 1 0.336426
+29 29 16 1 1 0.336426
+29 29 17 1 1 0.360352
+29 29 18 1 1 0.430664
+29 29 19 1 1 0.498291
+29 29 20 1 1 0.5625
+29 29 21 1 1 0.624512
+29 29 22 1 1 0.683105
+29 29 23 1 1 0.736816
+29 29 24 1 1 0.786133
+29 29 25 1 1 0.835938
+29 29 26 1 1 0.885742
+29 29 27 1 1 0.93457
+29 29 28 1 1 0.980957
+29 29 29 1 0.983398 1
+29 29 30 1 0.957031 1
+29 29 31 0.950195 0.925781 1
+29 30 0 1 1 0.325928
+29 30 1 1 1 0.325928
+29 30 2 1 1 0.325928
+29 30 3 1 1 0.325928
+29 30 4 1 1 0.325928
+29 30 5 1 1 0.325928
+29 30 6 1 1 0.325928
+29 30 7 1 1 0.325928
+29 30 8 1 1 0.325928
+29 30 9 1 1 0.325928
+29 30 10 1 1 0.325928
+29 30 11 1 1 0.325928
+29 30 12 1 1 0.325928
+29 30 13 1 1 0.325928
+29 30 14 1 1 0.325928
+29 30 15 1 1 0.325928
+29 30 16 1 1 0.325928
+29 30 17 1 1 0.334229
+29 30 18 1 1 0.40625
+29 30 19 1 1 0.474365
+29 30 20 1 1 0.538574
+29 30 21 1 1 0.599609
+29 30 22 1 1 0.657715
+29 30 23 1 1 0.711426
+29 30 24 1 1 0.760254
+29 30 25 1 1 0.810059
+29 30 26 1 1 0.860352
+29 30 27 1 1 0.909668
+29 30 28 1 1 0.958008
+29 30 29 1 1 1
+29 30 30 0.966797 1 1
+29 30 31 0.916992 0.972656 1
+29 31 0 1 1 0.313477
+29 31 1 1 1 0.313477
+29 31 2 1 1 0.313477
+29 31 3 1 1 0.313477
+29 31 4 1 1 0.313477
+29 31 5 1 1 0.313477
+29 31 6 1 1 0.313477
+29 31 7 1 1 0.313477
+29 31 8 1 1 0.313477
+29 31 9 1 1 0.313477
+29 31 10 1 1 0.313477
+29 31 11 1 1 0.313477
+29 31 12 1 1 0.313477
+29 31 13 1 1 0.313477
+29 31 14 1 1 0.313477
+29 31 15 1 1 0.313477
+29 31 16 1 1 0.313477
+29 31 17 1 1 0.313477
+29 31 18 1 1 0.37793
+29 31 19 1 1 0.446777
+29 31 20 1 1 0.510254
+29 31 21 1 1 0.571289
+29 31 22 1 1 0.628906
+29 31 23 1 1 0.681152
+29 31 24 1 1 0.72998
+29 31 25 1 1 0.779297
+29 31 26 1 1 0.830078
+29 31 27 1 1 0.880371
+29 31 28 0.984375 1 0.930176
+29 31 29 0.95459 1 0.978027
+29 31 30 0.917969 1 1
+29 31 31 0.873047 1 1
+30 0 0 1 0 0.0808716
+30 0 1 1 0 0.0808716
+30 0 2 1 0 0.0808716
+30 0 3 1 0 0.0808716
+30 0 4 1 0 0.0808716
+30 0 5 1 0 0.0808716
+30 0 6 1 0 0.0808105
+30 0 7 1 0 0.0808105
+30 0 8 1 0 0.0808105
+30 0 9 1 0 0.0807495
+30 0 10 1 0 0.0806274
+30 0 11 1 0 0.0803833
+30 0 12 1 0 0.0800781
+30 0 13 1 0 0.0794678
+30 0 14 1 0 0.0785522
+30 0 15 1 0 0.0771484
+30 0 16 1 0 0.0758057
+30 0 17 1 0 0.0743408
+30 0 18 1 0 0.292969
+30 0 19 1 0 0.41626
+30 0 20 1 0 0.516113
+30 0 21 1 0 0.601074
+30 0 22 1 0 0.680176
+30 0 23 1 0 0.750977
+30 0 24 1 0 0.813965
+30 0 25 1 0.222534 0.873047
+30 0 26 1 0.304932 0.928223
+30 0 27 1 0.358398 0.977539
+30 0 28 1 0.386719 1
+30 0 29 1 0.393066 1
+30 0 30 1 0.390381 1
+30 0 31 1 0.385498 1
+30 1 0 1 0 0.0808716
+30 1 1 1 0 0.0808716
+30 1 2 1 0 0.0808716
+30 1 3 1 0 0.0808716
+30 1 4 1 0 0.0808716
+30 1 5 1 0 0.0808105
+30 1 6 1 0 0.0808105
+30 1 7 1 0 0.0808105
+30 1 8 1 0 0.0807495
+30 1 9 1 0 0.0806885
+30 1 10 1 0 0.0806274
+30 1 11 1 0 0.0803833
+30 1 12 1 0 0.0800781
+30 1 13 1 0 0.0794678
+30 1 14 1 0 0.0785522
+30 1 15 1 0 0.0771484
+30 1 16 1 0 0.0758057
+30 1 17 1 0 0.0743408
+30 1 18 1 0 0.292969
+30 1 19 1 0 0.41626
+30 1 20 1 0 0.516113
+30 1 21 1 0 0.601074
+30 1 22 1 0 0.680176
+30 1 23 1 0 0.750977
+30 1 24 1 0 0.813965
+30 1 25 1 0.222534 0.873047
+30 1 26 1 0.304932 0.928223
+30 1 27 1 0.358398 0.977539
+30 1 28 1 0.386719 1
+30 1 29 1 0.393066 1
+30 1 30 1 0.390381 1
+30 1 31 1 0.385498 1
+30 2 0 1 0 0.0808105
+30 2 1 1 0 0.0808105
+30 2 2 1 0 0.0808105
+30 2 3 1 0 0.0808105
+30 2 4 1 0 0.0808105
+30 2 5 1 0 0.0808105
+30 2 6 1 0 0.0808105
+30 2 7 1 0 0.0808105
+30 2 8 1 0 0.0807495
+30 2 9 1 0 0.0806885
+30 2 10 1 0 0.0805664
+30 2 11 1 0 0.0803833
+30 2 12 1 0 0.0800781
+30 2 13 1 0 0.0794678
+30 2 14 1 0 0.0785522
+30 2 15 1 0 0.0770874
+30 2 16 1 0 0.0758057
+30 2 17 1 0 0.0743408
+30 2 18 1 0 0.292969
+30 2 19 1 0 0.41626
+30 2 20 1 0 0.516113
+30 2 21 1 0 0.601074
+30 2 22 1 0 0.680176
+30 2 23 1 0 0.750977
+30 2 24 1 0 0.813965
+30 2 25 1 0.222534 0.873047
+30 2 26 1 0.304932 0.928223
+30 2 27 1 0.358398 0.977539
+30 2 28 1 0.386719 1
+30 2 29 1 0.393066 1
+30 2 30 1 0.390381 1
+30 2 31 1 0.385498 1
+30 3 0 1 0 0.0808105
+30 3 1 1 0 0.0808105
+30 3 2 1 0 0.0808105
+30 3 3 1 0 0.0808105
+30 3 4 1 0 0.0808105
+30 3 5 1 0 0.0808105
+30 3 6 1 0 0.0808105
+30 3 7 1 0 0.0808105
+30 3 8 1 0 0.0807495
+30 3 9 1 0 0.0806885
+30 3 10 1 0 0.0805664
+30 3 11 1 0 0.0803833
+30 3 12 1 0 0.0800171
+30 3 13 1 0 0.0794678
+30 3 14 1 0 0.0785522
+30 3 15 1 0 0.0770874
+30 3 16 1 0 0.0757446
+30 3 17 1 0 0.0742798
+30 3 18 1 0 0.292969
+30 3 19 1 0 0.41626
+30 3 20 1 0 0.516113
+30 3 21 1 0 0.601074
+30 3 22 1 0 0.680176
+30 3 23 1 0 0.750977
+30 3 24 1 0 0.813965
+30 3 25 1 0.222656 0.873047
+30 3 26 1 0.304932 0.928223
+30 3 27 1 0.358398 0.977539
+30 3 28 1 0.386719 1
+30 3 29 1 0.393066 1
+30 3 30 1 0.390381 1
+30 3 31 1 0.385498 1
+30 4 0 1 0 0.0808105
+30 4 1 1 0 0.0808105
+30 4 2 1 0 0.0808105
+30 4 3 1 0 0.0808105
+30 4 4 1 0 0.0808105
+30 4 5 1 0 0.0808105
+30 4 6 1 0 0.0807495
+30 4 7 1 0 0.0807495
+30 4 8 1 0 0.0807495
+30 4 9 1 0 0.0806885
+30 4 10 1 0 0.0805664
+30 4 11 1 0 0.0803223
+30 4 12 1 0 0.0800171
+30 4 13 1 0 0.0794067
+30 4 14 1 0 0.0784912
+30 4 15 1 0 0.0770874
+30 4 16 1 0 0.0757446
+30 4 17 1 0 0.0742798
+30 4 18 1 0 0.292969
+30 4 19 1 0 0.41626
+30 4 20 1 0 0.516113
+30 4 21 1 0 0.601074
+30 4 22 1 0 0.680176
+30 4 23 1 0 0.750977
+30 4 24 1 0 0.813965
+30 4 25 1 0.222656 0.873047
+30 4 26 1 0.304932 0.928223
+30 4 27 1 0.358398 0.977539
+30 4 28 1 0.386719 1
+30 4 29 1 0.393311 1
+30 4 30 1 0.390381 1
+30 4 31 1 0.385498 1
+30 5 0 1 0 0.0807495
+30 5 1 1 0 0.0807495
+30 5 2 1 0 0.0807495
+30 5 3 1 0 0.0807495
+30 5 4 1 0 0.0807495
+30 5 5 1 0 0.0807495
+30 5 6 1 0 0.0807495
+30 5 7 1 0 0.0806885
+30 5 8 1 0 0.0806885
+30 5 9 1 0 0.0806274
+30 5 10 1 0 0.0805054
+30 5 11 1 0 0.0803223
+30 5 12 1 0 0.0799561
+30 5 13 1 0 0.0794067
+30 5 14 1 0 0.0784302
+30 5 15 1 0 0.0770264
+30 5 16 1 0 0.0756836
+30 5 17 1 0 0.0742188
+30 5 18 1 0 0.292969
+30 5 19 1 0 0.41626
+30 5 20 1 0 0.516113
+30 5 21 1 0 0.601074
+30 5 22 1 0 0.680176
+30 5 23 1 0 0.750977
+30 5 24 1 0 0.813965
+30 5 25 1 0.2229 0.873047
+30 5 26 1 0.305176 0.928223
+30 5 27 1 0.358643 0.977539
+30 5 28 1 0.386719 1
+30 5 29 1 0.393311 1
+30 5 30 1 0.390381 1
+30 5 31 1 0.385742 1
+30 6 0 1 0 0.0806274
+30 6 1 1 0 0.0806274
+30 6 2 1 0 0.0806274
+30 6 3 1 0 0.0806274
+30 6 4 1 0 0.0806274
+30 6 5 1 0 0.0806274
+30 6 6 1 0 0.0806274
+30 6 7 1 0 0.0806274
+30 6 8 1 0 0.0805664
+30 6 9 1 0 0.0805054
+30 6 10 1 0 0.0803833
+30 6 11 1 0 0.0802002
+30 6 12 1 0 0.079834
+30 6 13 1 0 0.0792847
+30 6 14 1 0 0.0783691
+30 6 15 1 0 0.0769043
+30 6 16 1 0 0.0755615
+30 6 17 1 0 0.0740967
+30 6 18 1 0 0.292969
+30 6 19 1 0 0.41626
+30 6 20 1 0 0.516113
+30 6 21 1 0 0.601074
+30 6 22 1 0 0.680176
+30 6 23 1 0 0.750977
+30 6 24 1 0 0.813965
+30 6 25 1 0.223267 0.873047
+30 6 26 1 0.30542 0.928223
+30 6 27 1 0.358643 0.977539
+30 6 28 1 0.386963 1
+30 6 29 1 0.393311 1
+30 6 30 1 0.390381 1
+30 6 31 1 0.385742 1
+30 7 0 1 0 0.0804443
+30 7 1 1 0 0.0804443
+30 7 2 1 0 0.0804443
+30 7 3 1 0 0.0804443
+30 7 4 1 0 0.0804443
+30 7 5 1 0 0.0804443
+30 7 6 1 0 0.0803833
+30 7 7 1 0 0.0803833
+30 7 8 1 0 0.0803833
+30 7 9 1 0 0.0803223
+30 7 10 1 0 0.0802002
+30 7 11 1 0 0.0799561
+30 7 12 1 0 0.0796509
+30 7 13 1 0 0.0790405
+30 7 14 1 0 0.078125
+30 7 15 1 0 0.0766602
+30 7 16 1 0 0.0753174
+30 7 17 1 0 0.0738525
+30 7 18 1 0 0.292969
+30 7 19 1 0 0.41626
+30 7 20 1 0 0.516113
+30 7 21 1 0 0.601074
+30 7 22 1 0 0.680176
+30 7 23 1 0 0.750977
+30 7 24 1 0 0.813965
+30 7 25 1 0.223877 0.873047
+30 7 26 1 0.305664 0.928223
+30 7 27 1 0.358887 0.977539
+30 7 28 1 0.387207 1
+30 7 29 1 0.393555 1
+30 7 30 1 0.390625 1
+30 7 31 1 0.385986 1
+30 8 0 1 0 0.0800171
+30 8 1 1 0 0.0800171
+30 8 2 1 0 0.0800171
+30 8 3 1 0 0.0800171
+30 8 4 1 0 0.0800171
+30 8 5 1 0 0.0800171
+30 8 6 1 0 0.0800171
+30 8 7 1 0 0.0800171
+30 8 8 1 0 0.0799561
+30 8 9 1 0 0.079895
+30 8 10 1 0 0.0797729
+30 8 11 1 0 0.0795898
+30 8 12 1 0 0.0792236
+30 8 13 1 0 0.0786133
+30 8 14 1 0 0.0776978
+30 8 15 1 0 0.0762329
+30 8 16 1 0 0.0748901
+30 8 17 1 0 0.0733643
+30 8 18 1 0 0.292969
+30 8 19 1 0 0.41626
+30 8 20 1 0 0.516113
+30 8 21 1 0 0.601074
+30 8 22 1 0 0.680176
+30 8 23 1 0 0.750977
+30 8 24 1 0 0.813965
+30 8 25 1 0.22522 0.873047
+30 8 26 1 0.306396 0.928223
+30 8 27 1 0.359619 0.977539
+30 8 28 1 0.387695 1
+30 8 29 1 0.394043 1
+30 8 30 1 0.391113 1
+30 8 31 1 0.38623 1
+30 9 0 1 0 0.0792236
+30 9 1 1 0 0.0792236
+30 9 2 1 0 0.0792236
+30 9 3 1 0 0.0792236
+30 9 4 1 0 0.0792236
+30 9 5 1 0 0.0792236
+30 9 6 1 0 0.0792236
+30 9 7 1 0 0.0792236
+30 9 8 1 0 0.0791626
+30 9 9 1 0 0.0791016
+30 9 10 1 0 0.0789795
+30 9 11 1 0 0.0787964
+30 9 12 1 0 0.0784302
+30 9 13 1 0 0.0778198
+30 9 14 1 0 0.0769043
+30 9 15 1 0 0.0753784
+30 9 16 1 0 0.0740356
+30 9 17 1 0 0.0725098
+30 9 18 1 0 0.292969
+30 9 19 1 0 0.41626
+30 9 20 1 0 0.516113
+30 9 21 1 0 0.601074
+30 9 22 1 0 0.680176
+30 9 23 1 0 0.750977
+30 9 24 1 0 0.813965
+30 9 25 1 0.227783 0.873047
+30 9 26 1 0.307861 0.928223
+30 9 27 1 0.360596 0.977539
+30 9 28 1 0.388672 1
+30 9 29 1 0.39502 1
+30 9 30 1 0.39209 1
+30 9 31 1 0.387207 1
+30 10 0 1 0 0.0777588
+30 10 1 1 0 0.0777588
+30 10 2 1 0 0.0777588
+30 10 3 1 0 0.0777588
+30 10 4 1 0 0.0777588
+30 10 5 1 0 0.0777588
+30 10 6 1 0 0.0777588
+30 10 7 1 0 0.0777588
+30 10 8 1 0 0.0776978
+30 10 9 1 0 0.0776367
+30 10 10 1 0 0.0775146
+30 10 11 1 0 0.0773315
+30 10 12 1 0 0.0769043
+30 10 13 1 0 0.076355
+30 10 14 1 0 0.0753174
+30 10 15 1 0 0.0737915
+30 10 16 1 0 0.0723877
+30 10 17 1 0 0.0708008
+30 10 18 1 0 0.292725
+30 10 19 1 0 0.41626
+30 10 20 1 0 0.515625
+30 10 21 1 0 0.601074
+30 10 22 1 0 0.680176
+30 10 23 1 0 0.750977
+30 10 24 1 0.0708618 0.813477
+30 10 25 1 0.232178 0.873047
+30 10 26 1 0.310547 0.928223
+30 10 27 1 0.362793 0.977539
+30 10 28 1 0.390381 1
+30 10 29 1 0.396484 1
+30 10 30 1 0.393555 1
+30 10 31 1 0.388428 1
+30 11 0 1 0 0.0750732
+30 11 1 1 0 0.0750732
+30 11 2 1 0 0.0750732
+30 11 3 1 0 0.0750732
+30 11 4 1 0 0.0750732
+30 11 5 1 0 0.0750732
+30 11 6 1 0 0.0750732
+30 11 7 1 0 0.0750732
+30 11 8 1 0 0.0750122
+30 11 9 1 0 0.0749512
+30 11 10 1 0 0.0748291
+30 11 11 1 0 0.074585
+30 11 12 1 0 0.0742188
+30 11 13 1 0 0.0735474
+30 11 14 1 0 0.0725098
+30 11 15 1 0 0.0708618
+30 11 16 1 0 0.0693359
+30 11 17 1 0 0.067749
+30 11 18 1 0 0.292725
+30 11 19 1 0 0.416016
+30 11 20 1 0 0.515625
+30 11 21 1 0 0.601074
+30 11 22 1 0 0.680176
+30 11 23 1 0 0.750977
+30 11 24 1 0.107483 0.813477
+30 11 25 1 0.239624 0.873047
+30 11 26 1 0.315186 0.928223
+30 11 27 1 0.366211 0.977539
+30 11 28 1 0.393311 1
+30 11 29 1 0.399414 1
+30 11 30 1 0.395996 1
+30 11 31 1 0.390869 1
+30 12 0 1 0 0.0701294
+30 12 1 1 0 0.0701294
+30 12 2 1 0 0.0701294
+30 12 3 1 0 0.0701294
+30 12 4 1 0 0.0701294
+30 12 5 1 0 0.0701294
+30 12 6 1 0 0.0700684
+30 12 7 1 0 0.0700684
+30 12 8 1 0 0.0700073
+30 12 9 1 0 0.0699463
+30 12 10 1 0 0.0698242
+30 12 11 1 0 0.0695801
+30 12 12 1 0 0.0690918
+30 12 13 1 0 0.0683594
+30 12 14 1 0 0.0671997
+30 12 15 1 0 0.0653076
+30 12 16 1 0 0.0635986
+30 12 17 1 0 0.0617981
+30 12 18 1 0 0.29248
+30 12 19 1 0 0.415771
+30 12 20 1 0 0.515625
+30 12 21 1 0 0.600586
+30 12 22 1 0 0.679688
+30 12 23 1 0 0.750977
+30 12 24 1 0.143799 0.813477
+30 12 25 1 0.251465 0.873047
+30 12 26 1 0.322754 0.928223
+30 12 27 1 0.37207 0.977539
+30 12 28 1 0.398438 1
+30 12 29 1 0.404053 1
+30 12 30 1 0.400391 1
+30 12 31 1 0.39502 1
+30 13 0 1 0 0.0603943
+30 13 1 1 0 0.0603943
+30 13 2 1 0 0.0603943
+30 13 3 1 0 0.0603943
+30 13 4 1 0 0.0603943
+30 13 5 1 0 0.0603638
+30 13 6 1 0 0.0603638
+30 13 7 1 0 0.0603333
+30 13 8 1 0 0.0602722
+30 13 9 1 0 0.0601807
+30 13 10 1 0 0.0599976
+30 13 11 1 0 0.0596619
+30 13 12 1 0 0.0591125
+30 13 13 1 0 0.0581665
+30 13 14 1 0 0.0566101
+30 13 15 1 0 0.0541077
+30 13 16 1 0 0.0517883
+30 13 17 1 0 0.0493774
+30 13 18 1 0 0.292236
+30 13 19 1 0 0.415527
+30 13 20 1 0 0.515137
+30 13 21 1 0 0.600586
+30 13 22 1 0 0.679688
+30 13 23 1 0 0.750488
+30 13 24 1 0.183105 0.813477
+30 13 25 1 0.269287 0.873047
+30 13 26 1 0.334717 0.928223
+30 13 27 1 0.381348 0.977539
+30 13 28 1 0.406494 1
+30 13 29 1 0.411621 1
+30 13 30 1 0.407471 1
+30 13 31 1 0.401367 1
+30 14 0 1 0 0.0349426
+30 14 1 1 0 0.0349426
+30 14 2 1 0 0.0349426
+30 14 3 1 0 0.0349426
+30 14 4 1 0 0.0349426
+30 14 5 1 0 0.0349121
+30 14 6 1 0 0.0348816
+30 14 7 1 0 0.0348206
+30 14 8 1 0 0.0346985
+30 14 9 1 0 0.0344543
+30 14 10 1 0 0.0339966
+30 14 11 1 0 0.0331726
+30 14 12 1 0 0.0316772
+30 14 13 1 0 0.0289764
+30 14 14 1 0 0.0235443
+30 14 15 1 0.0290833 0
+30 14 16 1 0.0740356 0
+30 14 17 1 0.0927734 0
+30 14 18 1 0.0432739 0.291748
+30 14 19 1 0 0.415039
+30 14 20 1 0 0.51416
+30 14 21 1 0 0.600586
+30 14 22 1 0 0.679199
+30 14 23 1 0.150269 0.75
+30 14 24 1 0.226807 0.812988
+30 14 25 1 0.294434 0.873047
+30 14 26 1 0.352295 0.928223
+30 14 27 1 0.395264 0.977539
+30 14 28 1 0.418945 1
+30 14 29 1 0.423096 1
+30 14 30 1 0.418213 1
+30 14 31 1 0.411377 1
+30 15 0 1 0.183105 0
+30 15 1 1 0.183105 0
+30 15 2 1 0.183105 0
+30 15 3 1 0.183105 0
+30 15 4 1 0.183105 0
+30 15 5 1 0.183105 0
+30 15 6 1 0.183105 0
+30 15 7 1 0.183228 0
+30 15 8 1 0.18335 0
+30 15 9 1 0.183716 0
+30 15 10 1 0.184326 0
+30 15 11 1 0.185425 0
+30 15 12 1 0.187134 0
+30 15 13 1 0.189941 0
+30 15 14 1 0.194336 0
+30 15 15 1 0.200684 0
+30 15 16 1 0.205811 0
+30 15 17 1 0.209473 0
+30 15 18 1 0.201172 0.291504
+30 15 19 1 0.192139 0.414307
+30 15 20 1 0.190796 0.513184
+30 15 21 1 0.192017 0.600586
+30 15 22 1 0.197876 0.678711
+30 15 23 1 0.229614 0.749512
+30 15 24 1 0.275146 0.8125
+30 15 25 1 0.327148 0.872559
+30 15 26 1 0.376709 0.927734
+30 15 27 1 0.415283 0.977539
+30 15 28 1 0.436768 1
+30 15 29 1 0.439697 1
+30 15 30 1 0.433838 1
+30 15 31 1 0.426025 1
+30 16 0 1 0.275146 0
+30 16 1 1 0.275146 0
+30 16 2 1 0.275146 0
+30 16 3 1 0.275146 0
+30 16 4 1 0.275146 0
+30 16 5 1 0.275146 0
+30 16 6 1 0.275146 0
+30 16 7 1 0.275146 0
+30 16 8 1 0.275146 0
+30 16 9 1 0.275391 0
+30 16 10 1 0.275635 0
+30 16 11 1 0.276367 0
+30 16 12 1 0.2771 0
+30 16 13 1 0.278809 0
+30 16 14 1 0.281006 0
+30 16 15 1 0.284668 0
+30 16 16 1 0.287598 0
+30 16 17 1 0.289307 0
+30 16 18 1 0.284912 0.291748
+30 16 19 1 0.280273 0.413818
+30 16 20 1 0.278809 0.512207
+30 16 21 1 0.282959 0.600586
+30 16 22 1 0.283447 0.678223
+30 16 23 1 0.299805 0.748535
+30 16 24 1 0.329102 0.811523
+30 16 25 1 0.36792 0.87207
+30 16 26 1 0.408691 0.927734
+30 16 27 1 0.442383 0.977539
+30 16 28 1 0.461182 1
+30 16 29 1 0.462646 1
+30 16 30 1 0.455566 1
+30 16 31 1 0.446289 1
+30 17 0 1 0.353027 0
+30 17 1 1 0.353027 0
+30 17 2 1 0.353271 0
+30 17 3 1 0.353271 0
+30 17 4 1 0.353271 0
+30 17 5 1 0.353271 0
+30 17 6 1 0.353271 0
+30 17 7 1 0.353271 0
+30 17 8 1 0.353271 0
+30 17 9 1 0.353271 0
+30 17 10 1 0.353516 0
+30 17 11 1 0.354004 0
+30 17 12 1 0.354492 0
+30 17 13 1 0.355713 0
+30 17 14 1 0.357178 0
+30 17 15 1 0.359863 0
+30 17 16 1 0.361816 0
+30 17 17 1 0.362549 0
+30 17 18 1 0.359863 0.293457
+30 17 19 1 0.357178 0.413818
+30 17 20 1 0.355957 0.51123
+30 17 21 1 0.359375 0.599609
+30 17 22 1 0.359863 0.677246
+30 17 23 1 0.36792 0.747559
+30 17 24 1 0.386475 0.810547
+30 17 25 1 0.415039 0.871094
+30 17 26 1 0.44751 0.927246
+30 17 27 1 0.476074 0.977051
+30 17 28 1 0.491699 1
+30 17 29 1 0.491699 1
+30 17 30 1 0.48291 1
+30 17 31 1 0.471924 1
+30 18 0 1 0.426025 0
+30 18 1 1 0.426025 0
+30 18 2 1 0.426025 0
+30 18 3 1 0.426025 0
+30 18 4 1 0.426025 0
+30 18 5 1 0.426025 0
+30 18 6 1 0.42627 0
+30 18 7 1 0.42627 0
+30 18 8 1 0.42627 0
+30 18 9 1 0.42627 0
+30 18 10 1 0.426514 0
+30 18 11 1 0.426758 0
+30 18 12 1 0.427246 0
+30 18 13 1 0.427979 0
+30 18 14 1 0.429199 0
+30 18 15 1 0.430908 0
+30 18 16 1 0.432617 0
+30 18 17 1 0.432861 0
+30 18 18 1 0.431641 0.297607
+30 18 19 1 0.430176 0.414795
+30 18 20 1 0.429199 0.510254
+30 18 21 1 0.430176 0.597656
+30 18 22 1 0.432617 0.676758
+30 18 23 1 0.435303 0.745605
+30 18 24 1 0.446289 0.808594
+30 18 25 1 0.466309 0.869629
+30 18 26 1 0.491455 0.92627
+30 18 27 1 0.514648 0.976562
+30 18 28 1 0.527344 1
+30 18 29 1 0.525879 1
+30 18 30 1 0.515625 1
+30 18 31 1 0.502441 1
+30 19 0 1 0.495117 0
+30 19 1 1 0.495117 0
+30 19 2 1 0.495117 0
+30 19 3 1 0.495117 0
+30 19 4 1 0.495117 0
+30 19 5 1 0.495117 0
+30 19 6 1 0.495117 0
+30 19 7 1 0.495117 0
+30 19 8 1 0.495117 0
+30 19 9 1 0.495117 0
+30 19 10 1 0.495361 0
+30 19 11 1 0.495605 0
+30 19 12 1 0.49585 0
+30 19 13 1 0.496582 0
+30 19 14 1 0.497314 0
+30 19 15 1 0.498779 0
+30 19 16 1 0.5 0
+30 19 17 1 0.500488 0.0808716
+30 19 18 1 0.500488 0.305664
+30 19 19 1 0.5 0.417969
+30 19 20 1 0.499268 0.510742
+30 19 21 1 0.498779 0.595703
+30 19 22 1 0.500977 0.675293
+30 19 23 1 0.501465 0.743652
+30 19 24 1 0.506836 0.806152
+30 19 25 1 0.519531 0.867188
+30 19 26 1 0.538086 0.924805
+30 19 27 1 0.556641 0.975586
+30 19 28 1 0.566895 1
+30 19 29 1 0.563477 1
+30 19 30 1 0.55127 1
+30 19 31 1 0.536621 1
+30 20 0 1 0.559082 0
+30 20 1 1 0.559082 0
+30 20 2 1 0.559082 0
+30 20 3 1 0.559082 0
+30 20 4 1 0.559082 0
+30 20 5 1 0.559082 0
+30 20 6 1 0.559082 0
+30 20 7 1 0.559082 0
+30 20 8 1 0.559082 0
+30 20 9 1 0.55957 0
+30 20 10 1 0.55957 0
+30 20 11 1 0.55957 0
+30 20 12 1 0.560059 0
+30 20 13 1 0.560547 0
+30 20 14 1 0.561035 0
+30 20 15 1 0.5625 0
+30 20 16 1 0.563477 0
+30 20 17 1 0.563965 0.14917
+30 20 18 1 0.564941 0.318115
+30 20 19 1 0.56543 0.424072
+30 20 20 1 0.56543 0.513184
+30 20 21 1 0.564453 0.595215
+30 20 22 1 0.564453 0.672363
+30 20 23 1 0.565918 0.741699
+30 20 24 1 0.566406 0.803223
+30 20 25 1 0.572754 0.864258
+30 20 26 1 0.585449 0.922363
+30 20 27 1 0.599609 0.974121
+30 20 28 1 0.607422 1
+30 20 29 1 0.602539 1
+30 20 30 1 0.588867 1
+30 20 31 1 0.572266 1
+30 21 0 1 0.619629 0
+30 21 1 1 0.619629 0
+30 21 2 1 0.619629 0
+30 21 3 1 0.619629 0
+30 21 4 1 0.619629 0
+30 21 5 1 0.619629 0
+30 21 6 1 0.619629 0
+30 21 7 1 0.619629 0
+30 21 8 1 0.619629 0
+30 21 9 1 0.620117 0
+30 21 10 1 0.620117 0
+30 21 11 1 0.620117 0
+30 21 12 1 0.620117 0
+30 21 13 1 0.620605 0
+30 21 14 1 0.621582 0
+30 21 15 1 0.62207 0
+30 21 16 1 0.623535 0
+30 21 17 1 0.625 0.199219
+30 21 18 1 0.626953 0.335205
+30 21 19 1 0.62793 0.433105
+30 21 20 1 0.628418 0.517578
+30 21 21 1 0.62793 0.596191
+30 21 22 1 0.626465 0.67041
+30 21 23 1 0.625977 0.738281
+30 21 24 1 0.625488 0.799805
+30 21 25 1 0.626465 0.860352
+30 21 26 1 0.633301 0.918945
+30 21 27 1 0.643555 0.97168
+30 21 28 1 0.648926 1
+30 21 29 1 0.642578 1
+30 21 30 1 0.627441 1
+30 21 31 1 0.609375 1
+30 22 0 1 0.67627 0
+30 22 1 1 0.67627 0
+30 22 2 1 0.67627 0
+30 22 3 1 0.67627 0
+30 22 4 1 0.67627 0
+30 22 5 1 0.67627 0
+30 22 6 1 0.67627 0
+30 22 7 1 0.67627 0
+30 22 8 1 0.67627 0
+30 22 9 1 0.676758 0
+30 22 10 1 0.676758 0
+30 22 11 1 0.676758 0
+30 22 12 1 0.676758 0
+30 22 13 1 0.677246 0
+30 22 14 1 0.677734 0
+30 22 15 1 0.678711 0
+30 22 16 1 0.679688 0
+30 22 17 1 0.681641 0.24231
+30 22 18 1 0.684082 0.35498
+30 22 19 1 0.686035 0.445068
+30 22 20 1 0.687012 0.524414
+30 22 21 1 0.687012 0.599121
+30 22 22 1 0.685547 0.669922
+30 22 23 1 0.683594 0.734863
+30 22 24 1 0.682129 0.795898
+30 22 25 1 0.679688 0.855469
+30 22 26 1 0.681152 0.914551
+30 22 27 1 0.687012 0.968262
+30 22 28 1 0.689941 1
+30 22 29 1 0.682617 1
+30 22 30 1 0.666504 1
+30 22 31 1 0.646484 1
+30 23 0 1 0.727539 0.130127
+30 23 1 1 0.727539 0.130127
+30 23 2 1 0.727539 0.130127
+30 23 3 1 0.727539 0.130127
+30 23 4 1 0.727539 0.130127
+30 23 5 1 0.727539 0.130127
+30 23 6 1 0.727539 0.130127
+30 23 7 1 0.727539 0.130127
+30 23 8 1 0.727539 0.130127
+30 23 9 1 0.727539 0.130249
+30 23 10 1 0.728027 0.130371
+30 23 11 1 0.728027 0.130737
+30 23 12 1 0.728027 0.131104
+30 23 13 1 0.728516 0.131836
+30 23 14 1 0.728516 0.132935
+30 23 15 1 0.729492 0.134644
+30 23 16 1 0.730469 0.137207
+30 23 17 1 0.73291 0.278809
+30 23 18 1 0.735352 0.375244
+30 23 19 1 0.738281 0.458252
+30 23 20 1 0.739746 0.533203
+30 23 21 1 0.740234 0.604004
+30 23 22 1 0.739258 0.670898
+30 23 23 1 0.736816 0.73291
+30 23 24 1 0.733887 0.791016
+30 23 25 1 0.730469 0.850586
+30 23 26 1 0.727051 0.908691
+30 23 27 1 0.728027 0.963867
+30 23 28 1 0.729004 1
+30 23 29 1 0.721191 1
+30 23 30 1 0.703613 1
+30 23 31 1 0.682129 1
+30 24 0 1 0.773926 0.217651
+30 24 1 1 0.773926 0.217651
+30 24 2 1 0.773926 0.217651
+30 24 3 1 0.773926 0.217651
+30 24 4 1 0.773926 0.217651
+30 24 5 1 0.773926 0.217651
+30 24 6 1 0.773926 0.217651
+30 24 7 1 0.773926 0.217651
+30 24 8 1 0.773926 0.217651
+30 24 9 1 0.773926 0.217651
+30 24 10 1 0.773926 0.217773
+30 24 11 1 0.773926 0.217896
+30 24 12 1 0.774414 0.218018
+30 24 13 1 0.774414 0.218384
+30 24 14 1 0.774902 0.21875
+30 24 15 1 0.775391 0.219482
+30 24 16 1 0.775879 0.220459
+30 24 17 1 0.778809 0.308838
+30 24 18 1 0.781738 0.394287
+30 24 19 1 0.784668 0.471191
+30 24 20 1 0.786621 0.541992
+30 24 21 1 0.788086 0.609375
+30 24 22 1 0.787598 0.67334
+30 24 23 1 0.785645 0.732422
+30 24 24 1 0.782227 0.787598
+30 24 25 1 0.777344 0.844727
+30 24 26 1 0.771484 0.902832
+30 24 27 1 0.768066 0.958496
+30 24 28 1 0.766113 1
+30 24 29 1 0.757812 1
+30 24 30 1 0.739746 1
+30 24 31 1 0.716797 1
+30 25 0 1 0.819824 0.270752
+30 25 1 1 0.819824 0.270752
+30 25 2 1 0.819824 0.270752
+30 25 3 1 0.819824 0.270752
+30 25 4 1 0.819824 0.270752
+30 25 5 1 0.819824 0.270752
+30 25 6 1 0.819824 0.270752
+30 25 7 1 0.819824 0.270752
+30 25 8 1 0.819824 0.270752
+30 25 9 1 0.819824 0.270752
+30 25 10 1 0.819824 0.270752
+30 25 11 1 0.819824 0.270752
+30 25 12 1 0.820312 0.270996
+30 25 13 1 0.820312 0.270996
+30 25 14 1 0.820801 0.27124
+30 25 15 1 0.820801 0.271729
+30 25 16 1 0.821777 0.272461
+30 25 17 1 0.824219 0.334717
+30 25 18 1 0.827148 0.411865
+30 25 19 1 0.830566 0.483643
+30 25 20 1 0.833008 0.550781
+30 25 21 1 0.834961 0.615234
+30 25 22 1 0.834961 0.676758
+30 25 23 1 0.833984 0.73291
+30 25 24 1 0.830566 0.785156
+30 25 25 1 0.825195 0.838867
+30 25 26 1 0.817871 0.895508
+30 25 27 1 0.810059 0.950684
+30 25 28 1 0.805176 1
+30 25 29 1 0.796387 1
+30 25 30 1 0.777344 1
+30 25 31 1 0.753418 1
+30 26 0 1 0.865723 0.30835
+30 26 1 1 0.865723 0.30835
+30 26 2 1 0.865723 0.30835
+30 26 3 1 0.865723 0.30835
+30 26 4 1 0.865723 0.30835
+30 26 5 1 0.865723 0.30835
+30 26 6 1 0.865723 0.30835
+30 26 7 1 0.865723 0.30835
+30 26 8 1 0.865723 0.30835
+30 26 9 1 0.865723 0.30835
+30 26 10 1 0.865723 0.30835
+30 26 11 1 0.865723 0.30835
+30 26 12 1 0.865723 0.30835
+30 26 13 1 0.865723 0.308594
+30 26 14 1 0.866211 0.308594
+30 26 15 1 0.866211 0.308838
+30 26 16 1 0.866699 0.309326
+30 26 17 1 0.869141 0.354492
+30 26 18 1 0.87207 0.425537
+30 26 19 1 0.875488 0.493652
+30 26 20 1 0.878418 0.558105
+30 26 21 1 0.880859 0.620117
+30 26 22 1 0.881348 0.679199
+30 26 23 1 0.880859 0.733398
+30 26 24 1 0.878418 0.783203
+30 26 25 1 0.873535 0.833984
+30 26 26 1 0.865723 0.887207
+30 26 27 1 0.855957 0.941406
+30 26 28 1 0.846191 0.993164
+30 26 29 1 0.836426 1
+30 26 30 1 0.817383 1
+30 26 31 1 0.79248 1
+30 27 0 1 0.910156 0.333008
+30 27 1 1 0.910156 0.333008
+30 27 2 1 0.910156 0.333008
+30 27 3 1 0.910156 0.333008
+30 27 4 1 0.910156 0.333008
+30 27 5 1 0.910156 0.333008
+30 27 6 1 0.910156 0.333008
+30 27 7 1 0.910156 0.333008
+30 27 8 1 0.910156 0.333008
+30 27 9 1 0.910156 0.333008
+30 27 10 1 0.910156 0.333008
+30 27 11 1 0.910156 0.333008
+30 27 12 1 0.910645 0.333008
+30 27 13 1 0.910645 0.333008
+30 27 14 1 0.910645 0.333008
+30 27 15 1 0.911133 0.333252
+30 27 16 1 0.911621 0.333496
+30 27 17 1 0.913086 0.365234
+30 27 18 1 0.916504 0.432861
+30 27 19 1 0.919922 0.498291
+30 27 20 1 0.922852 0.561035
+30 27 21 1 0.924805 0.621582
+30 27 22 1 0.92627 0.679199
+30 27 23 1 0.925781 0.731934
+30 27 24 1 0.924316 0.780273
+30 27 25 1 0.92041 0.82959
+30 27 26 1 0.913574 0.879395
+30 27 27 1 0.902832 0.930664
+30 27 28 1 0.890137 0.982422
+30 27 29 1 0.87793 1
+30 27 30 1 0.858887 1
+30 27 31 1 0.833008 1
+30 28 0 1 0.953613 0.344727
+30 28 1 1 0.953613 0.344727
+30 28 2 1 0.953613 0.344727
+30 28 3 1 0.953613 0.344727
+30 28 4 1 0.953613 0.344727
+30 28 5 1 0.953613 0.344727
+30 28 6 1 0.953613 0.344727
+30 28 7 1 0.953613 0.344727
+30 28 8 1 0.953613 0.344727
+30 28 9 1 0.953613 0.344727
+30 28 10 1 0.953613 0.344727
+30 28 11 1 0.953613 0.344727
+30 28 12 1 0.953613 0.344727
+30 28 13 1 0.953613 0.344727
+30 28 14 1 0.953613 0.344971
+30 28 15 1 0.954102 0.344971
+30 28 16 1 0.954102 0.344971
+30 28 17 1 0.955566 0.364746
+30 28 18 1 0.958496 0.430908
+30 28 19 1 0.961914 0.495117
+30 28 20 1 0.965332 0.556641
+30 28 21 1 0.967285 0.616699
+30 28 22 1 0.96875 0.67334
+30 28 23 1 0.96875 0.725586
+30 28 24 1 0.967285 0.773926
+30 28 25 1 0.964355 0.822266
+30 28 26 1 0.958496 0.871582
+30 28 27 1 0.949219 0.92041
+30 28 28 1 0.935547 0.969238
+30 28 29 1 0.92041 1
+30 28 30 1 0.901367 1
+30 28 31 1 0.875 1
+30 29 0 1 0.994141 0.344971
+30 29 1 1 0.994141 0.344971
+30 29 2 1 0.994141 0.344971
+30 29 3 1 0.994141 0.344971
+30 29 4 1 0.994141 0.344971
+30 29 5 1 0.994141 0.344971
+30 29 6 1 0.994141 0.344971
+30 29 7 1 0.994141 0.344971
+30 29 8 1 0.994141 0.344971
+30 29 9 1 0.994141 0.344971
+30 29 10 1 0.994141 0.344971
+30 29 11 1 0.994141 0.344971
+30 29 12 1 0.994141 0.344971
+30 29 13 1 0.994629 0.344971
+30 29 14 1 0.994629 0.344971
+30 29 15 1 0.994629 0.344971
+30 29 16 1 0.995117 0.344971
+30 29 17 1 0.995605 0.352295
+30 29 18 1 0.998535 0.418701
+30 29 19 1 1 0.48291
+30 29 20 1 1 0.543945
+30 29 21 1 1 0.603516
+30 29 22 1 1 0.660156
+30 29 23 1 1 0.711914
+30 29 24 1 1 0.760254
+30 29 25 1 1 0.809082
+30 29 26 1 1 0.858887
+30 29 27 1 0.992676 0.908203
+30 29 28 1 0.980469 0.956055
+30 29 29 1 0.963867 1
+30 29 30 1 0.944336 1
+30 29 31 1 0.91748 1
+30 30 0 1 1 0.337158
+30 30 1 1 1 0.337158
+30 30 2 1 1 0.337158
+30 30 3 1 1 0.337158
+30 30 4 1 1 0.337158
+30 30 5 1 1 0.337158
+30 30 6 1 1 0.337158
+30 30 7 1 1 0.337158
+30 30 8 1 1 0.337158
+30 30 9 1 1 0.337158
+30 30 10 1 1 0.337158
+30 30 11 1 1 0.337158
+30 30 12 1 1 0.337158
+30 30 13 1 1 0.337158
+30 30 14 1 1 0.337158
+30 30 15 1 1 0.337158
+30 30 16 1 1 0.337158
+30 30 17 1 1 0.337158
+30 30 18 1 1 0.398438
+30 30 19 1 1 0.463135
+30 30 20 1 1 0.524414
+30 30 21 1 1 0.583496
+30 30 22 1 1 0.639648
+30 30 23 1 1 0.691406
+30 30 24 1 1 0.739258
+30 30 25 1 1 0.788574
+30 30 26 1 1 0.838379
+30 30 27 1 1 0.888672
+30 30 28 1 1 0.9375
+30 30 29 1 1 0.984863
+30 30 30 1 0.986816 1
+30 30 31 1 0.960449 1
+30 31 0 1 1 0.326416
+30 31 1 1 1 0.326416
+30 31 2 1 1 0.326416
+30 31 3 1 1 0.326416
+30 31 4 1 1 0.326416
+30 31 5 1 1 0.326416
+30 31 6 1 1 0.326416
+30 31 7 1 1 0.326416
+30 31 8 1 1 0.326416
+30 31 9 1 1 0.326416
+30 31 10 1 1 0.326416
+30 31 11 1 1 0.326416
+30 31 12 1 1 0.326416
+30 31 13 1 1 0.326416
+30 31 14 1 1 0.326416
+30 31 15 1 1 0.326416
+30 31 16 1 1 0.326416
+30 31 17 1 1 0.326172
+30 31 18 1 1 0.373047
+30 31 19 1 1 0.438721
+30 31 20 1 1 0.5
+30 31 21 1 1 0.558594
+30 31 22 1 1 0.614258
+30 31 23 1 1 0.666016
+30 31 24 1 1 0.713379
+30 31 25 1 1 0.762207
+30 31 26 1 1 0.812012
+30 31 27 1 1 0.862793
+30 31 28 1 1 0.912598
+30 31 29 1 1 0.960938
+30 31 30 1 1 1
+30 31 31 0.969238 1 1
+31 0 0 1 0 0.0817871
+31 0 1 1 0 0.0817871
+31 0 2 1 0 0.0817871
+31 0 3 1 0 0.0817871
+31 0 4 1 0 0.0817871
+31 0 5 1 0 0.0817261
+31 0 6 1 0 0.0817261
+31 0 7 1 0 0.0817261
+31 0 8 1 0 0.0817261
+31 0 9 1 0 0.081665
+31 0 10 1 0 0.081543
+31 0 11 1 0 0.0813599
+31 0 12 1 0 0.0811157
+31 0 13 1 0 0.0806274
+31 0 14 1 0 0.079834
+31 0 15 1 0 0.0786743
+31 0 16 1 0 0.0770874
+31 0 17 1 0 0.0760498
+31 0 18 1 0 0.208008
+31 0 19 1 0 0.35498
+31 0 20 1 0 0.457764
+31 0 21 1 0 0.545898
+31 0 22 1 0 0.623047
+31 0 23 1 0 0.692871
+31 0 24 1 0 0.756348
+31 0 25 1 0 0.818848
+31 0 26 1 0.213501 0.878418
+31 0 27 1 0.301758 0.933105
+31 0 28 1 0.358154 0.982422
+31 0 29 1 0.387939 1
+31 0 30 1 0.394775 1
+31 0 31 1 0.391602 1
+31 1 0 1 0 0.0817871
+31 1 1 1 0 0.0817871
+31 1 2 1 0 0.0817871
+31 1 3 1 0 0.0817871
+31 1 4 1 0 0.0817261
+31 1 5 1 0 0.0817261
+31 1 6 1 0 0.0817261
+31 1 7 1 0 0.0817261
+31 1 8 1 0 0.0817261
+31 1 9 1 0 0.081665
+31 1 10 1 0 0.081543
+31 1 11 1 0 0.0813599
+31 1 12 1 0 0.0811157
+31 1 13 1 0 0.0806274
+31 1 14 1 0 0.079834
+31 1 15 1 0 0.0786743
+31 1 16 1 0 0.0770874
+31 1 17 1 0 0.0760498
+31 1 18 1 0 0.208008
+31 1 19 1 0 0.35498
+31 1 20 1 0 0.457764
+31 1 21 1 0 0.545898
+31 1 22 1 0 0.623047
+31 1 23 1 0 0.692871
+31 1 24 1 0 0.756348
+31 1 25 1 0 0.818848
+31 1 26 1 0.213501 0.878418
+31 1 27 1 0.301758 0.933105
+31 1 28 1 0.358154 0.982422
+31 1 29 1 0.387939 1
+31 1 30 1 0.394775 1
+31 1 31 1 0.391602 1
+31 2 0 1 0 0.0817261
+31 2 1 1 0 0.0817261
+31 2 2 1 0 0.0817261
+31 2 3 1 0 0.0817261
+31 2 4 1 0 0.0817261
+31 2 5 1 0 0.0817261
+31 2 6 1 0 0.0817261
+31 2 7 1 0 0.0817261
+31 2 8 1 0 0.0817261
+31 2 9 1 0 0.081665
+31 2 10 1 0 0.081543
+31 2 11 1 0 0.0813599
+31 2 12 1 0 0.0811157
+31 2 13 1 0 0.0806274
+31 2 14 1 0 0.079834
+31 2 15 1 0 0.0786133
+31 2 16 1 0 0.0770874
+31 2 17 1 0 0.0760498
+31 2 18 1 0 0.208008
+31 2 19 1 0 0.35498
+31 2 20 1 0 0.457764
+31 2 21 1 0 0.545898
+31 2 22 1 0 0.623047
+31 2 23 1 0 0.692871
+31 2 24 1 0 0.756348
+31 2 25 1 0 0.818848
+31 2 26 1 0.213623 0.878418
+31 2 27 1 0.301758 0.933105
+31 2 28 1 0.358154 0.982422
+31 2 29 1 0.387939 1
+31 2 30 1 0.394775 1
+31 2 31 1 0.391602 1
+31 3 0 1 0 0.0817261
+31 3 1 1 0 0.0817261
+31 3 2 1 0 0.0817261
+31 3 3 1 0 0.0817261
+31 3 4 1 0 0.0817261
+31 3 5 1 0 0.0817261
+31 3 6 1 0 0.0817261
+31 3 7 1 0 0.0817261
+31 3 8 1 0 0.081665
+31 3 9 1 0 0.081604
+31 3 10 1 0 0.081543
+31 3 11 1 0 0.0813599
+31 3 12 1 0 0.0810547
+31 3 13 1 0 0.0805664
+31 3 14 1 0 0.079834
+31 3 15 1 0 0.0786133
+31 3 16 1 0 0.0770874
+31 3 17 1 0 0.0760498
+31 3 18 1 0 0.208008
+31 3 19 1 0 0.35498
+31 3 20 1 0 0.457764
+31 3 21 1 0 0.545898
+31 3 22 1 0 0.623047
+31 3 23 1 0 0.692871
+31 3 24 1 0 0.756348
+31 3 25 1 0 0.818848
+31 3 26 1 0.213623 0.878418
+31 3 27 1 0.301758 0.933105
+31 3 28 1 0.358154 0.982422
+31 3 29 1 0.387939 1
+31 3 30 1 0.394775 1
+31 3 31 1 0.391602 1
+31 4 0 1 0 0.0817261
+31 4 1 1 0 0.0817261
+31 4 2 1 0 0.0817261
+31 4 3 1 0 0.0817261
+31 4 4 1 0 0.0817261
+31 4 5 1 0 0.0817261
+31 4 6 1 0 0.0817261
+31 4 7 1 0 0.081665
+31 4 8 1 0 0.081665
+31 4 9 1 0 0.081604
+31 4 10 1 0 0.0814819
+31 4 11 1 0 0.0813599
+31 4 12 1 0 0.0810547
+31 4 13 1 0 0.0805664
+31 4 14 1 0 0.0797729
+31 4 15 1 0 0.0786133
+31 4 16 1 0 0.0770264
+31 4 17 1 0 0.0759888
+31 4 18 1 0 0.208008
+31 4 19 1 0 0.35498
+31 4 20 1 0 0.457764
+31 4 21 1 0 0.545898
+31 4 22 1 0 0.623047
+31 4 23 1 0 0.692871
+31 4 24 1 0 0.756348
+31 4 25 1 0 0.818848
+31 4 26 1 0.213745 0.878418
+31 4 27 1 0.302002 0.933105
+31 4 28 1 0.358154 0.982422
+31 4 29 1 0.387939 1
+31 4 30 1 0.394775 1
+31 4 31 1 0.391602 1
+31 5 0 1 0 0.081665
+31 5 1 1 0 0.081665
+31 5 2 1 0 0.081665
+31 5 3 1 0 0.081665
+31 5 4 1 0 0.081665
+31 5 5 1 0 0.081665
+31 5 6 1 0 0.081665
+31 5 7 1 0 0.081665
+31 5 8 1 0 0.081604
+31 5 9 1 0 0.081543
+31 5 10 1 0 0.0814819
+31 5 11 1 0 0.0812988
+31 5 12 1 0 0.0809937
+31 5 13 1 0 0.0805054
+31 5 14 1 0 0.0797729
+31 5 15 1 0 0.0785522
+31 5 16 1 0 0.0770264
+31 5 17 1 0 0.0759277
+31 5 18 1 0 0.208008
+31 5 19 1 0 0.35498
+31 5 20 1 0 0.457764
+31 5 21 1 0 0.545898
+31 5 22 1 0 0.623047
+31 5 23 1 0 0.692871
+31 5 24 1 0 0.756348
+31 5 25 1 0 0.818848
+31 5 26 1 0.213867 0.878418
+31 5 27 1 0.302002 0.933105
+31 5 28 1 0.358398 0.982422
+31 5 29 1 0.388184 1
+31 5 30 1 0.394775 1
+31 5 31 1 0.391602 1
+31 6 0 1 0 0.081604
+31 6 1 1 0 0.081604
+31 6 2 1 0 0.081604
+31 6 3 1 0 0.081604
+31 6 4 1 0 0.081604
+31 6 5 1 0 0.081543
+31 6 6 1 0 0.081543
+31 6 7 1 0 0.081543
+31 6 8 1 0 0.081543
+31 6 9 1 0 0.0814819
+31 6 10 1 0 0.0813599
+31 6 11 1 0 0.0811768
+31 6 12 1 0 0.0809326
+31 6 13 1 0 0.0804443
+31 6 14 1 0 0.0796509
+31 6 15 1 0 0.0784302
+31 6 16 1 0 0.0769043
+31 6 17 1 0 0.0758667
+31 6 18 1 0 0.208008
+31 6 19 1 0 0.35498
+31 6 20 1 0 0.457764
+31 6 21 1 0 0.545898
+31 6 22 1 0 0.623047
+31 6 23 1 0 0.692871
+31 6 24 1 0 0.756348
+31 6 25 1 0 0.818848
+31 6 26 1 0.214233 0.878418
+31 6 27 1 0.302246 0.933105
+31 6 28 1 0.358398 0.982422
+31 6 29 1 0.388184 1
+31 6 30 1 0.394775 1
+31 6 31 1 0.391846 1
+31 7 0 1 0 0.0814209
+31 7 1 1 0 0.0814209
+31 7 2 1 0 0.0814209
+31 7 3 1 0 0.0814209
+31 7 4 1 0 0.0814209
+31 7 5 1 0 0.0814209
+31 7 6 1 0 0.0814209
+31 7 7 1 0 0.0813599
+31 7 8 1 0 0.0813599
+31 7 9 1 0 0.0812988
+31 7 10 1 0 0.0811768
+31 7 11 1 0 0.0810547
+31 7 12 1 0 0.0807495
+31 7 13 1 0 0.0802612
+31 7 14 1 0 0.0794678
+31 7 15 1 0 0.0782471
+31 7 16 1 0 0.0767212
+31 7 17 1 0 0.0756226
+31 7 18 1 0 0.208008
+31 7 19 1 0 0.35498
+31 7 20 1 0 0.457764
+31 7 21 1 0 0.545898
+31 7 22 1 0 0.623047
+31 7 23 1 0 0.692871
+31 7 24 1 0 0.756348
+31 7 25 1 0 0.818848
+31 7 26 1 0.214844 0.878418
+31 7 27 1 0.30249 0.933105
+31 7 28 1 0.358643 0.982422
+31 7 29 1 0.388428 1
+31 7 30 1 0.39502 1
+31 7 31 1 0.391846 1
+31 8 0 1 0 0.0810547
+31 8 1 1 0 0.0810547
+31 8 2 1 0 0.0810547
+31 8 3 1 0 0.0810547
+31 8 4 1 0 0.0810547
+31 8 5 1 0 0.0810547
+31 8 6 1 0 0.0810547
+31 8 7 1 0 0.0810547
+31 8 8 1 0 0.0809937
+31 8 9 1 0 0.0809326
+31 8 10 1 0 0.0808716
+31 8 11 1 0 0.0806885
+31 8 12 1 0 0.0803833
+31 8 13 1 0 0.079895
+31 8 14 1 0 0.0791016
+31 8 15 1 0 0.0778809
+31 8 16 1 0 0.076355
+31 8 17 1 0 0.0752563
+31 8 18 1 0 0.207886
+31 8 19 1 0 0.35498
+31 8 20 1 0 0.457764
+31 8 21 1 0 0.545898
+31 8 22 1 0 0.623047
+31 8 23 1 0 0.692871
+31 8 24 1 0 0.756348
+31 8 25 1 0 0.818848
+31 8 26 1 0.216064 0.878418
+31 8 27 1 0.303223 0.933105
+31 8 28 1 0.359131 0.982422
+31 8 29 1 0.388916 1
+31 8 30 1 0.395508 1
+31 8 31 1 0.392334 1
+31 9 0 1 0 0.0803833
+31 9 1 1 0 0.0803833
+31 9 2 1 0 0.0803833
+31 9 3 1 0 0.0803833
+31 9 4 1 0 0.0803833
+31 9 5 1 0 0.0803833
+31 9 6 1 0 0.0803833
+31 9 7 1 0 0.0803833
+31 9 8 1 0 0.0803223
+31 9 9 1 0 0.0803223
+31 9 10 1 0 0.0802002
+31 9 11 1 0 0.0800171
+31 9 12 1 0 0.0797119
+31 9 13 1 0 0.0792236
+31 9 14 1 0 0.0784302
+31 9 15 1 0 0.0772095
+31 9 16 1 0 0.0756226
+31 9 17 1 0 0.0745239
+31 9 18 1 0 0.207886
+31 9 19 1 0 0.35498
+31 9 20 1 0 0.457764
+31 9 21 1 0 0.545898
+31 9 22 1 0 0.623047
+31 9 23 1 0 0.692871
+31 9 24 1 0 0.756348
+31 9 25 1 0 0.818848
+31 9 26 1 0.218262 0.878418
+31 9 27 1 0.304443 0.933105
+31 9 28 1 0.360107 0.982422
+31 9 29 1 0.389648 1
+31 9 30 1 0.39624 1
+31 9 31 1 0.393066 1
+31 10 0 1 0 0.0791626
+31 10 1 1 0 0.0791626
+31 10 2 1 0 0.0791626
+31 10 3 1 0 0.0791626
+31 10 4 1 0 0.0791626
+31 10 5 1 0 0.0791626
+31 10 6 1 0 0.0791626
+31 10 7 1 0 0.0791626
+31 10 8 1 0 0.0791016
+31 10 9 1 0 0.0791016
+31 10 10 1 0 0.0789795
+31 10 11 1 0 0.0787964
+31 10 12 1 0 0.0784912
+31 10 13 1 0 0.0780029
+31 10 14 1 0 0.0771484
+31 10 15 1 0 0.0758667
+31 10 16 1 0 0.0742798
+31 10 17 1 0 0.0731812
+31 10 18 1 0 0.207764
+31 10 19 1 0 0.35498
+31 10 20 1 0 0.45752
+31 10 21 1 0 0.545898
+31 10 22 1 0 0.623047
+31 10 23 1 0 0.692871
+31 10 24 1 0 0.756348
+31 10 25 1 0 0.818848
+31 10 26 1 0.222412 0.878418
+31 10 27 1 0.306885 0.933105
+31 10 28 1 0.361816 0.982422
+31 10 29 1 0.391113 1
+31 10 30 1 0.397705 1
+31 10 31 1 0.394287 1
+31 11 0 1 0 0.0769653
+31 11 1 1 0 0.0769653
+31 11 2 1 0 0.0769653
+31 11 3 1 0 0.0769653
+31 11 4 1 0 0.0769653
+31 11 5 1 0 0.0769653
+31 11 6 1 0 0.0769653
+31 11 7 1 0 0.0769043
+31 11 8 1 0 0.0769043
+31 11 9 1 0 0.0768433
+31 11 10 1 0 0.0767212
+31 11 11 1 0 0.0765381
+31 11 12 1 0 0.0762329
+31 11 13 1 0 0.0756836
+31 11 14 1 0 0.0748291
+31 11 15 1 0 0.0734863
+31 11 16 1 0 0.0717773
+31 11 17 1 0 0.0706177
+31 11 18 1 0 0.20752
+31 11 19 1 0 0.354736
+31 11 20 1 0 0.45752
+31 11 21 1 0 0.545898
+31 11 22 1 0 0.623047
+31 11 23 1 0 0.692871
+31 11 24 1 0 0.756348
+31 11 25 1 0.0277557 0.818848
+31 11 26 1 0.229248 0.878418
+31 11 27 1 0.310791 0.933105
+31 11 28 1 0.36499 0.982422
+31 11 29 1 0.393799 1
+31 11 30 1 0.399902 1
+31 11 31 1 0.396484 1
+31 12 0 1 0 0.072937
+31 12 1 1 0 0.072937
+31 12 2 1 0 0.072937
+31 12 3 1 0 0.072876
+31 12 4 1 0 0.072876
+31 12 5 1 0 0.072876
+31 12 6 1 0 0.072876
+31 12 7 1 0 0.072876
+31 12 8 1 0 0.0728149
+31 12 9 1 0 0.0727539
+31 12 10 1 0 0.0726318
+31 12 11 1 0 0.0724487
+31 12 12 1 0 0.0720825
+31 12 13 1 0 0.0715332
+31 12 14 1 0 0.0705566
+31 12 15 1 0 0.0690918
+31 12 16 1 0 0.0671997
+31 12 17 1 0 0.065979
+31 12 18 1 0 0.207275
+31 12 19 1 0 0.354492
+31 12 20 1 0 0.457275
+31 12 21 1 0 0.545898
+31 12 22 1 0 0.622559
+31 12 23 1 0 0.692871
+31 12 24 1 0 0.756348
+31 12 25 1 0.107788 0.818848
+31 12 26 1 0.240234 0.878418
+31 12 27 1 0.317383 0.933105
+31 12 28 1 0.369873 0.982422
+31 12 29 1 0.397949 1
+31 12 30 1 0.404053 1
+31 12 31 1 0.400146 1
+31 13 0 1 0 0.0653076
+31 13 1 1 0 0.0653076
+31 13 2 1 0 0.0653076
+31 13 3 1 0 0.0653076
+31 13 4 1 0 0.0653076
+31 13 5 1 0 0.0653076
+31 13 6 1 0 0.0653076
+31 13 7 1 0 0.0652466
+31 13 8 1 0 0.0652466
+31 13 9 1 0 0.0651245
+31 13 10 1 0 0.0650024
+31 13 11 1 0 0.0647583
+31 13 12 1 0 0.0643311
+31 13 13 1 0 0.0636597
+31 13 14 1 0 0.0625
+31 13 15 1 0 0.0606995
+31 13 16 1 0 0.0582886
+31 13 17 1 0 0.0568237
+31 13 18 1 0 0.206909
+31 13 19 1 0 0.354248
+31 13 20 1 0 0.456787
+31 13 21 1 0 0.545898
+31 13 22 1 0 0.622559
+31 13 23 1 0 0.692871
+31 13 24 1 0 0.755859
+31 13 25 1 0.155518 0.818359
+31 13 26 1 0.256836 0.87793
+31 13 27 1 0.327881 0.933105
+31 13 28 1 0.37793 0.982422
+31 13 29 1 0.405029 1
+31 13 30 1 0.4104 1
+31 13 31 1 0.40625 1
+31 14 0 1 0 0.0488586
+31 14 1 1 0 0.0488586
+31 14 2 1 0 0.0488586
+31 14 3 1 0 0.0488586
+31 14 4 1 0 0.0488586
+31 14 5 1 0 0.0488586
+31 14 6 1 0 0.0488281
+31 14 7 1 0 0.0487976
+31 14 8 1 0 0.0487366
+31 14 9 1 0 0.0486145
+31 14 10 1 0 0.0484009
+31 14 11 1 0 0.0480042
+31 14 12 1 0 0.0473022
+31 14 13 1 0 0.0461426
+31 14 14 1 0 0.0441895
+31 14 15 1 0 0.0409241
+31 14 16 1 0 0.0360413
+31 14 17 1 0 0.0329895
+31 14 18 1 0 0.206299
+31 14 19 1 0 0.35376
+31 14 20 1 0 0.456299
+31 14 21 1 0 0.545898
+31 14 22 1 0 0.622559
+31 14 23 1 0 0.692383
+31 14 24 1 0.0894165 0.755859
+31 14 25 1 0.202271 0.818359
+31 14 26 1 0.280029 0.87793
+31 14 27 1 0.343506 0.933105
+31 14 28 1 0.390137 0.982422
+31 14 29 1 0.415771 1
+31 14 30 1 0.42041 1
+31 14 31 1 0.415527 1
+31 15 0 1 0.135254 0
+31 15 1 1 0.135254 0
+31 15 2 1 0.135254 0
+31 15 3 1 0.135254 0
+31 15 4 1 0.135254 0
+31 15 5 1 0.135376 0
+31 15 6 1 0.135376 0
+31 15 7 1 0.135498 0
+31 15 8 1 0.135742 0
+31 15 9 1 0.13623 0
+31 15 10 1 0.137085 0
+31 15 11 1 0.138428 0
+31 15 12 1 0.140869 0
+31 15 13 1 0.144653 0
+31 15 14 1 0.150391 0
+31 15 15 1 0.158447 0
+31 15 16 1 0.167847 0
+31 15 17 1 0.171875 0
+31 15 18 1 0.170166 0.205811
+31 15 19 1 0.155884 0.353271
+31 15 20 1 0.14502 0.455811
+31 15 21 1 0.149048 0.544922
+31 15 22 1 0.140259 0.622559
+31 15 23 1 0.154663 0.691895
+31 15 24 1 0.195923 0.755371
+31 15 25 1 0.251465 0.817871
+31 15 26 1 0.310791 0.87793
+31 15 27 1 0.365479 0.933105
+31 15 28 1 0.407715 0.982422
+31 15 29 1 0.431152 1
+31 15 30 1 0.434814 1
+31 15 31 1 0.428955 1
+31 16 0 1 0.241821 0
+31 16 1 1 0.241821 0
+31 16 2 1 0.241821 0
+31 16 3 1 0.241821 0
+31 16 4 1 0.241821 0
+31 16 5 1 0.241821 0
+31 16 6 1 0.241943 0
+31 16 7 1 0.241943 0
+31 16 8 1 0.242065 0
+31 16 9 1 0.242188 0
+31 16 10 1 0.242554 0
+31 16 11 1 0.243164 0
+31 16 12 1 0.244141 0
+31 16 13 1 0.245728 0
+31 16 14 1 0.248291 0
+31 16 15 1 0.251953 0
+31 16 16 1 0.256836 0
+31 16 17 1 0.258545 0
+31 16 18 1 0.257324 0.205933
+31 16 19 1 0.250977 0.352783
+31 16 20 1 0.246338 0.454834
+31 16 21 1 0.247192 0.543945
+31 16 22 1 0.24707 0.62207
+31 16 23 1 0.250732 0.691406
+31 16 24 1 0.269775 0.754883
+31 16 25 1 0.304443 0.817383
+31 16 26 1 0.348877 0.877441
+31 16 27 1 0.394531 0.933105
+31 16 28 1 0.431885 0.982422
+31 16 29 1 0.452637 1
+31 16 30 1 0.454834 1
+31 16 31 1 0.447998 1
+31 17 0 1 0.321289 0
+31 17 1 1 0.321289 0
+31 17 2 1 0.321289 0
+31 17 3 1 0.321289 0
+31 17 4 1 0.321289 0
+31 17 5 1 0.321289 0
+31 17 6 1 0.321289 0
+31 17 7 1 0.321289 0
+31 17 8 1 0.321289 0
+31 17 9 1 0.321533 0
+31 17 10 1 0.321777 0
+31 17 11 1 0.322021 0
+31 17 12 1 0.322754 0
+31 17 13 1 0.32373 0
+31 17 14 1 0.325439 0
+31 17 15 1 0.327881 0
+31 17 16 1 0.331055 0
+31 17 17 1 0.332031 0
+31 17 18 1 0.331055 0.207764
+31 17 19 1 0.327637 0.352783
+31 17 20 1 0.324707 0.454102
+31 17 21 1 0.324707 0.54248
+31 17 22 1 0.327637 0.62207
+31 17 23 1 0.327881 0.69043
+31 17 24 1 0.337891 0.753906
+31 17 25 1 0.360107 0.816406
+31 17 26 1 0.392822 0.876953
+31 17 27 1 0.429932 0.932617
+31 17 28 1 0.461914 0.982422
+31 17 29 1 0.479736 1
+31 17 30 1 0.480469 1
+31 17 31 1 0.472168 1
+31 18 0 1 0.393066 0
+31 18 1 1 0.393066 0
+31 18 2 1 0.393066 0
+31 18 3 1 0.393066 0
+31 18 4 1 0.393066 0
+31 18 5 1 0.393066 0
+31 18 6 1 0.393066 0
+31 18 7 1 0.393066 0
+31 18 8 1 0.393066 0
+31 18 9 1 0.393066 0
+31 18 10 1 0.393311 0
+31 18 11 1 0.393555 0
+31 18 12 1 0.394043 0
+31 18 13 1 0.394775 0
+31 18 14 1 0.395996 0
+31 18 15 1 0.397705 0
+31 18 16 1 0.400391 0
+31 18 17 1 0.400635 0
+31 18 18 1 0.400146 0.212646
+31 18 19 1 0.398193 0.354004
+31 18 20 1 0.396484 0.453857
+31 18 21 1 0.395996 0.541016
+31 18 22 1 0.398682 0.621094
+31 18 23 1 0.398926 0.689941
+31 18 24 1 0.403564 0.752441
+31 18 25 1 0.41748 0.814941
+31 18 26 1 0.440918 0.875488
+31 18 27 1 0.470215 0.932129
+31 18 28 1 0.496826 0.981934
+31 18 29 1 0.511719 1
+31 18 30 1 0.510742 1
+31 18 31 1 0.500977 1
+31 19 0 1 0.459961 0
+31 19 1 1 0.459961 0
+31 19 2 1 0.459961 0
+31 19 3 1 0.459961 0
+31 19 4 1 0.459961 0
+31 19 5 1 0.459961 0
+31 19 6 1 0.459961 0
+31 19 7 1 0.459961 0
+31 19 8 1 0.459961 0
+31 19 9 1 0.459961 0
+31 19 10 1 0.460205 0
+31 19 11 1 0.460449 0
+31 19 12 1 0.460693 0
+31 19 13 1 0.461182 0
+31 19 14 1 0.462158 0
+31 19 15 1 0.463623 0
+31 19 16 1 0.465576 0
+31 19 17 1 0.46582 0
+31 19 18 1 0.46582 0.222168
+31 19 19 1 0.465088 0.357178
+31 19 20 1 0.464111 0.45459
+31 19 21 1 0.463623 0.540527
+31 19 22 1 0.464355 0.619141
+31 19 23 1 0.466553 0.688965
+31 19 24 1 0.467529 0.750488
+31 19 25 1 0.475098 0.812988
+31 19 26 1 0.490967 0.874023
+31 19 27 1 0.513184 0.930664
+31 19 28 1 0.535156 0.981445
+31 19 29 1 0.547363 1
+31 19 30 1 0.544922 1
+31 19 31 1 0.533203 1
+31 20 0 1 0.521973 0
+31 20 1 1 0.521973 0
+31 20 2 1 0.521973 0
+31 20 3 1 0.521973 0
+31 20 4 1 0.521973 0
+31 20 5 1 0.521973 0
+31 20 6 1 0.521973 0
+31 20 7 1 0.521973 0
+31 20 8 1 0.521973 0
+31 20 9 1 0.521973 0
+31 20 10 1 0.522461 0
+31 20 11 1 0.522461 0
+31 20 12 1 0.522949 0
+31 20 13 1 0.523438 0
+31 20 14 1 0.523926 0
+31 20 15 1 0.524902 0
+31 20 16 1 0.526855 0
+31 20 17 1 0.526855 0
+31 20 18 1 0.527344 0.236938
+31 20 19 1 0.527832 0.363037
+31 20 20 1 0.527832 0.457031
+31 20 21 1 0.527344 0.540527
+31 20 22 1 0.526855 0.617188
+31 20 23 1 0.52832 0.687012
+31 20 24 1 0.528809 0.748535
+31 20 25 1 0.53125 0.810547
+31 20 26 1 0.541016 0.871582
+31 20 27 1 0.557129 0.929199
+31 20 28 1 0.574707 0.97998
+31 20 29 1 0.584473 1
+31 20 30 1 0.580078 1
+31 20 31 1 0.567383 1
+31 21 0 1 0.581055 0
+31 21 1 1 0.581055 0
+31 21 2 1 0.581055 0
+31 21 3 1 0.581055 0
+31 21 4 1 0.581055 0
+31 21 5 1 0.581055 0
+31 21 6 1 0.581055 0
+31 21 7 1 0.581055 0
+31 21 8 1 0.581055 0
+31 21 9 1 0.581055 0
+31 21 10 1 0.581055 0
+31 21 11 1 0.581055 0
+31 21 12 1 0.581543 0
+31 21 13 1 0.582031 0
+31 21 14 1 0.58252 0
+31 21 15 1 0.583496 0
+31 21 16 1 0.584961 0
+31 21 17 1 0.585449 0
+31 21 18 1 0.586914 0.256836
+31 21 19 1 0.587891 0.371826
+31 21 20 1 0.588379 0.46167
+31 21 21 1 0.588379 0.541992
+31 21 22 1 0.587402 0.616211
+31 21 23 1 0.587402 0.684082
+31 21 24 1 0.588379 0.74707
+31 21 25 1 0.587402 0.807617
+31 21 26 1 0.591797 0.868652
+31 21 27 1 0.602051 0.926758
+31 21 28 1 0.615234 0.978516
+31 21 29 1 0.622559 1
+31 21 30 1 0.617188 1
+31 21 31 1 0.602539 1
+31 22 0 1 0.635742 0
+31 22 1 1 0.635742 0
+31 22 2 1 0.635742 0
+31 22 3 1 0.635742 0
+31 22 4 1 0.635742 0
+31 22 5 1 0.635742 0
+31 22 6 1 0.635742 0
+31 22 7 1 0.635742 0
+31 22 8 1 0.635742 0
+31 22 9 1 0.635742 0
+31 22 10 1 0.635742 0
+31 22 11 1 0.63623 0
+31 22 12 1 0.63623 0
+31 22 13 1 0.636719 0
+31 22 14 1 0.637207 0
+31 22 15 1 0.637695 0
+31 22 16 1 0.638672 0
+31 22 17 1 0.640137 0.0351562
+31 22 18 1 0.64209 0.280273
+31 22 19 1 0.644043 0.384033
+31 22 20 1 0.64502 0.468506
+31 22 21 1 0.645508 0.54541
+31 22 22 1 0.64502 0.616699
+31 22 23 1 0.644043 0.682129
+31 22 24 1 0.643066 0.743164
+31 22 25 1 0.64209 0.804199
+31 22 26 1 0.641602 0.864746
+31 22 27 1 0.646973 0.92334
+31 22 28 1 0.655762 0.976074
+31 22 29 1 0.660645 1
+31 22 30 1 0.654297 1
+31 22 31 1 0.638672 1
+31 23 0 1 0.685547 0
+31 23 1 1 0.685547 0
+31 23 2 1 0.685547 0
+31 23 3 1 0.685547 0
+31 23 4 1 0.685547 0
+31 23 5 1 0.685547 0
+31 23 6 1 0.685547 0
+31 23 7 1 0.685547 0
+31 23 8 1 0.685547 0
+31 23 9 1 0.685547 0
+31 23 10 1 0.686035 0
+31 23 11 1 0.686035 0
+31 23 12 1 0.686035 0
+31 23 13 1 0.686523 0
+31 23 14 1 0.686523 0
+31 23 15 1 0.6875 0
+31 23 16 1 0.688477 0
+31 23 17 1 0.689941 0.166138
+31 23 18 1 0.692383 0.304688
+31 23 19 1 0.694824 0.398193
+31 23 20 1 0.696777 0.477295
+31 23 21 1 0.697754 0.550293
+31 23 22 1 0.697266 0.618652
+31 23 23 1 0.696289 0.681152
+31 23 24 1 0.694336 0.739746
+31 23 25 1 0.692383 0.800293
+31 23 26 1 0.689453 0.860352
+31 23 27 1 0.689941 0.919434
+31 23 28 1 0.694336 0.973145
+31 23 29 1 0.697266 1
+31 23 30 1 0.689941 1
+31 23 31 1 0.672852 1
+31 24 0 1 0.731445 0.105042
+31 24 1 1 0.731445 0.105042
+31 24 2 1 0.731445 0.105042
+31 24 3 1 0.731445 0.105042
+31 24 4 1 0.731445 0.105042
+31 24 5 1 0.731445 0.105042
+31 24 6 1 0.731445 0.105042
+31 24 7 1 0.731445 0.105103
+31 24 8 1 0.731445 0.105103
+31 24 9 1 0.731445 0.105225
+31 24 10 1 0.731445 0.105408
+31 24 11 1 0.731445 0.105713
+31 24 12 1 0.731934 0.106262
+31 24 13 1 0.731934 0.107117
+31 24 14 1 0.732422 0.108521
+31 24 15 1 0.73291 0.110535
+31 24 16 1 0.733887 0.113464
+31 24 17 1 0.735352 0.219971
+31 24 18 1 0.738281 0.328369
+31 24 19 1 0.740723 0.413086
+31 24 20 1 0.743164 0.487305
+31 24 21 1 0.744629 0.556641
+31 24 22 1 0.745117 0.621582
+31 24 23 1 0.744141 0.681641
+31 24 24 1 0.742188 0.737793
+31 24 25 1 0.73877 0.795898
+31 24 26 1 0.735352 0.855957
+31 24 27 1 0.731445 0.914551
+31 24 28 1 0.731934 0.96875
+31 24 29 1 0.732422 1
+31 24 30 1 0.724121 1
+31 24 31 1 0.706543 1
+31 25 0 1 0.777344 0.208862
+31 25 1 1 0.777344 0.208862
+31 25 2 1 0.777344 0.208862
+31 25 3 1 0.777344 0.208984
+31 25 4 1 0.777344 0.208984
+31 25 5 1 0.777344 0.208984
+31 25 6 1 0.777344 0.208984
+31 25 7 1 0.777344 0.208984
+31 25 8 1 0.777344 0.208984
+31 25 9 1 0.777344 0.208984
+31 25 10 1 0.777344 0.208984
+31 25 11 1 0.777344 0.209106
+31 25 12 1 0.777832 0.209351
+31 25 13 1 0.777832 0.209595
+31 25 14 1 0.777832 0.209961
+31 25 15 1 0.77832 0.210693
+31 25 16 1 0.779297 0.211548
+31 25 17 1 0.780762 0.262207
+31 25 18 1 0.783691 0.352051
+31 25 19 1 0.786621 0.428955
+31 25 20 1 0.789551 0.498535
+31 25 21 1 0.791504 0.563965
+31 25 22 1 0.79248 0.625977
+31 25 23 1 0.791992 0.683105
+31 25 24 1 0.790527 0.736328
+31 25 25 1 0.786621 0.791992
+31 25 26 1 0.781738 0.850098
+31 25 27 1 0.775391 0.908203
+31 25 28 1 0.771484 0.963379
+31 25 29 1 0.769531 1
+31 25 30 1 0.760742 1
+31 25 31 1 0.741699 1
+31 26 0 1 0.823242 0.266357
+31 26 1 1 0.823242 0.266357
+31 26 2 1 0.823242 0.266357
+31 26 3 1 0.823242 0.266357
+31 26 4 1 0.823242 0.266357
+31 26 5 1 0.823242 0.266357
+31 26 6 1 0.823242 0.266357
+31 26 7 1 0.823242 0.266357
+31 26 8 1 0.823242 0.266357
+31 26 9 1 0.823242 0.266357
+31 26 10 1 0.823242 0.266357
+31 26 11 1 0.823242 0.266357
+31 26 12 1 0.823242 0.266357
+31 26 13 1 0.82373 0.266602
+31 26 14 1 0.82373 0.266846
+31 26 15 1 0.824219 0.267334
+31 26 16 1 0.824707 0.267822
+31 26 17 1 0.826172 0.296387
+31 26 18 1 0.829102 0.374023
+31 26 19 1 0.83252 0.44458
+31 26 20 1 0.835449 0.509766
+31 26 21 1 0.837891 0.572266
+31 26 22 1 0.839355 0.631348
+31 26 23 1 0.839844 0.685547
+31 26 24 1 0.838379 0.736328
+31 26 25 1 0.835449 0.789062
+31 26 26 1 0.830078 0.84375
+31 26 27 1 0.822754 0.900391
+31 26 28 1 0.813965 0.956055
+31 26 29 1 0.808594 1
+31 26 30 1 0.799316 1
+31 26 31 1 0.779785 1
+31 27 0 1 0.868652 0.306396
+31 27 1 1 0.868652 0.306396
+31 27 2 1 0.868652 0.306396
+31 27 3 1 0.868652 0.306396
+31 27 4 1 0.868652 0.306396
+31 27 5 1 0.868652 0.306396
+31 27 6 1 0.868652 0.306396
+31 27 7 1 0.868652 0.306396
+31 27 8 1 0.868652 0.306396
+31 27 9 1 0.868652 0.306396
+31 27 10 1 0.868652 0.306396
+31 27 11 1 0.868652 0.306396
+31 27 12 1 0.869141 0.306396
+31 27 13 1 0.869141 0.306641
+31 27 14 1 0.869141 0.306641
+31 27 15 1 0.869629 0.306885
+31 27 16 1 0.870117 0.307129
+31 27 17 1 0.871094 0.321533
+31 27 18 1 0.874023 0.391357
+31 27 19 1 0.877441 0.457275
+31 27 20 1 0.880371 0.519043
+31 27 21 1 0.883301 0.578613
+31 27 22 1 0.885254 0.635742
+31 27 23 1 0.885742 0.687988
+31 27 24 1 0.885254 0.736328
+31 27 25 1 0.882812 0.786621
+31 27 26 1 0.878418 0.838379
+31 27 27 1 0.870605 0.891602
+31 27 28 1 0.860352 0.946289
+31 27 29 1 0.850098 0.998047
+31 27 30 1 0.839355 1
+31 27 31 1 0.819824 1
+31 28 0 1 0.913086 0.33252
+31 28 1 1 0.913086 0.33252
+31 28 2 1 0.913086 0.33252
+31 28 3 1 0.913086 0.33252
+31 28 4 1 0.913086 0.33252
+31 28 5 1 0.913086 0.33252
+31 28 6 1 0.913086 0.33252
+31 28 7 1 0.913086 0.33252
+31 28 8 1 0.913086 0.33252
+31 28 9 1 0.913086 0.33252
+31 28 10 1 0.913086 0.33252
+31 28 11 1 0.913086 0.33252
+31 28 12 1 0.913086 0.33252
+31 28 13 1 0.913086 0.33252
+31 28 14 1 0.913574 0.33252
+31 28 15 1 0.913574 0.332764
+31 28 16 1 0.914062 0.332764
+31 28 17 1 0.914551 0.335693
+31 28 18 1 0.91748 0.400879
+31 28 19 1 0.920898 0.463623
+31 28 20 1 0.924316 0.523438
+31 28 21 1 0.926758 0.581543
+31 28 22 1 0.928711 0.636719
+31 28 23 1 0.930176 0.6875
+31 28 24 1 0.929688 0.734863
+31 28 25 1 0.928223 0.783203
+31 28 26 1 0.924316 0.833008
+31 28 27 1 0.917969 0.883789
+31 28 28 1 0.907227 0.935059
+31 28 29 1 0.893555 0.986816
+31 28 30 1 0.880859 1
+31 28 31 1 0.861328 1
+31 29 0 1 0.955566 0.345215
+31 29 1 1 0.955566 0.345215
+31 29 2 1 0.955566 0.345215
+31 29 3 1 0.955566 0.345215
+31 29 4 1 0.955566 0.345215
+31 29 5 1 0.955566 0.345215
+31 29 6 1 0.955566 0.345215
+31 29 7 1 0.955566 0.345215
+31 29 8 1 0.955566 0.345215
+31 29 9 1 0.955566 0.345215
+31 29 10 1 0.955566 0.345215
+31 29 11 1 0.955566 0.345215
+31 29 12 1 0.955566 0.345215
+31 29 13 1 0.956055 0.345215
+31 29 14 1 0.956055 0.345215
+31 29 15 1 0.956055 0.345215
+31 29 16 1 0.956543 0.345215
+31 29 17 1 0.956543 0.345215
+31 29 18 1 0.959473 0.399902
+31 29 19 1 0.962891 0.461426
+31 29 20 1 0.96582 0.52002
+31 29 21 1 0.96875 0.57666
+31 29 22 1 0.970703 0.631348
+31 29 23 1 0.972168 0.681641
+31 29 24 1 0.972168 0.728516
+31 29 25 1 0.971191 0.776367
+31 29 26 1 0.967773 0.825195
+31 29 27 1 0.962402 0.875
+31 29 28 1 0.953125 0.924316
+31 29 29 1 0.939453 0.973145
+31 29 30 1 0.92334 1
+31 29 31 1 0.903809 1
+31 30 0 1 0.995605 0.345459
+31 30 1 1 0.995605 0.345459
+31 30 2 1 0.995605 0.345459
+31 30 3 1 0.995605 0.345459
+31 30 4 1 0.995605 0.345459
+31 30 5 1 0.995605 0.345459
+31 30 6 1 0.995605 0.345459
+31 30 7 1 0.995605 0.345459
+31 30 8 1 0.995605 0.345459
+31 30 9 1 0.995605 0.345459
+31 30 10 1 0.995605 0.345459
+31 30 11 1 0.995605 0.345459
+31 30 12 1 0.995605 0.345459
+31 30 13 1 0.995605 0.345459
+31 30 14 1 0.996094 0.345459
+31 30 15 1 0.996094 0.345459
+31 30 16 1 0.996094 0.345459
+31 30 17 1 0.996582 0.345459
+31 30 18 1 0.998535 0.387939
+31 30 19 1 1 0.449219
+31 30 20 1 1 0.507324
+31 30 21 1 1 0.563965
+31 30 22 1 1 0.617676
+31 30 23 1 1 0.667969
+31 30 24 1 1 0.714355
+31 30 25 1 1 0.762207
+31 30 26 1 1 0.811523
+31 30 27 1 1 0.861328
+31 30 28 1 0.995605 0.910645
+31 30 29 1 0.983398 0.958984
+31 30 30 1 0.966797 1
+31 30 31 1 0.946777 1
+31 31 0 1 1 0.337646
+31 31 1 1 1 0.337646
+31 31 2 1 1 0.337646
+31 31 3 1 1 0.337646
+31 31 4 1 1 0.337646
+31 31 5 1 1 0.337646
+31 31 6 1 1 0.337646
+31 31 7 1 1 0.337646
+31 31 8 1 1 0.337646
+31 31 9 1 1 0.337646
+31 31 10 1 1 0.337646
+31 31 11 1 1 0.337646
+31 31 12 1 1 0.337646
+31 31 13 1 1 0.337646
+31 31 14 1 1 0.337646
+31 31 15 1 1 0.337646
+31 31 16 1 1 0.337646
+31 31 17 1 1 0.337646
+31 31 18 1 1 0.366699
+31 31 19 1 1 0.428955
+31 31 20 1 1 0.487305
+31 31 21 1 1 0.543457
+31 31 22 1 1 0.597168
+31 31 23 1 1 0.646973
+31 31 24 1 1 0.692871
+31 31 25 1 1 0.740723
+31 31 26 1 1 0.790039
+31 31 27 1 1 0.839844
+31 31 28 1 1 0.890137
+31 31 29 1 1 0.939453
+31 31 30 1 1 0.986816
+31 31 31 1 0.98877 1
diff --git a/release/datafiles/colormanagement/luts/rrt_ut33_rec709.spi3d b/release/datafiles/colormanagement/luts/rrt_ut33_rec709.spi3d
new file mode 100644
index 00000000000..847e02fb0d1
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/rrt_ut33_rec709.spi3d
@@ -0,0 +1,32771 @@
+SPILUT 1.0
+3 3
+32 32 32
+0 0 0 0.000622749 0.000622749 0.000622749
+0 0 1 0.00362968 0.00396347 0.00484467
+0 0 2 0.00556183 0.00747681 0.0112228
+0 0 3 0 0.0107422 0.0197754
+0 0 4 0 0.0139084 0.0311584
+0 0 5 0 0.0163574 0.0436707
+0 0 6 0 0.0187836 0.0575867
+0 0 7 0 0.0220337 0.074707
+0 0 8 0 0.0267944 0.0968628
+0 0 9 0 0.0336304 0.126221
+0 0 10 0 0.0431824 0.165405
+0 0 11 0 0.0559998 0.216675
+0 0 12 0 0.0714722 0.27832
+0 0 13 0 0.0894775 0.349365
+0 0 14 0 0.10968 0.429199
+0 0 15 0 0.131592 0.515625
+0 0 16 0 0.154663 0.606445
+0 0 17 0 0.177246 0.694824
+0 0 18 0 0.19812 0.776855
+0 0 19 0 0.216675 0.849609
+0 0 20 0 0.226929 0.890137
+0 0 21 0 0.229004 0.897949
+0 0 22 0 0.231201 0.906738
+0 0 23 0 0.233276 0.915039
+0 0 24 0 0.235474 0.923828
+0 0 25 0 0.237915 0.933594
+0 0 26 0 0.240601 0.943848
+0 0 27 0 0.243652 0.955566
+0 0 28 0 0.24707 0.96875
+0 0 29 0 0.250732 0.98291
+0 0 30 0 0.254395 0.998047
+0 0 31 0 0.258301 1
+0 1 0 0.00254631 0.00376511 0.00303841
+0 1 1 0.00353813 0.00602341 0.00602722
+0 1 2 0.00333023 0.00925446 0.0115051
+0 1 3 0 0.0127106 0.0196686
+0 1 4 0 0.0161438 0.0309906
+0 1 5 0 0.0185852 0.0435791
+0 1 6 0 0.0207214 0.0575562
+0 1 7 0 0.0235748 0.074646
+0 1 8 0 0.0279541 0.0968628
+0 1 9 0 0.0344543 0.126099
+0 1 10 0 0.0437927 0.165283
+0 1 11 0 0.056427 0.216675
+0 1 12 0 0.0718384 0.27832
+0 1 13 0 0.0897217 0.349365
+0 1 14 0 0.109863 0.429199
+0 1 15 0 0.131714 0.515625
+0 1 16 0 0.154785 0.606445
+0 1 17 0 0.177246 0.694824
+0 1 18 0 0.198242 0.776855
+0 1 19 0 0.216675 0.849609
+0 1 20 0 0.227051 0.890137
+0 1 21 0 0.229004 0.897949
+0 1 22 0 0.231201 0.906738
+0 1 23 0 0.233398 0.915039
+0 1 24 0 0.235596 0.923828
+0 1 25 0 0.237915 0.933594
+0 1 26 0 0.240601 0.943848
+0 1 27 0 0.243652 0.955566
+0 1 28 0 0.24707 0.96875
+0 1 29 0 0.250732 0.98291
+0 1 30 0 0.254395 0.998047
+0 1 31 0 0.258301 1
+0 2 0 0 0.00912476 0.00569153
+0 2 1 0 0.0101547 0.00804138
+0 2 2 0 0.0123901 0.0123978
+0 2 3 0 0.0156403 0.0197601
+0 2 4 0 0.0193176 0.030777
+0 2 5 0 0.0218048 0.0434265
+0 2 6 0 0.0236511 0.0574951
+0 2 7 0 0.0260315 0.074585
+0 2 8 0 0.0298615 0.0968018
+0 2 9 0 0.0358887 0.126099
+0 2 10 0 0.0448303 0.165283
+0 2 11 0 0.0572205 0.216675
+0 2 12 0 0.0723877 0.27832
+0 2 13 0 0.0901489 0.349365
+0 2 14 0 0.110168 0.429199
+0 2 15 0 0.131958 0.515625
+0 2 16 0 0.155029 0.606445
+0 2 17 0 0.177368 0.694824
+0 2 18 0 0.198242 0.776855
+0 2 19 0 0.216797 0.849609
+0 2 20 0 0.227051 0.890137
+0 2 21 0 0.229126 0.897949
+0 2 22 0 0.231201 0.906738
+0 2 23 0 0.233398 0.915039
+0 2 24 0 0.235596 0.923828
+0 2 25 0 0.238037 0.933594
+0 2 26 0 0.240723 0.943848
+0 2 27 0 0.243652 0.955566
+0 2 28 0 0.24707 0.96875
+0 2 29 0 0.250732 0.98291
+0 2 30 0 0.254395 0.998047
+0 2 31 0 0.258301 1
+0 3 0 0 0.0169525 0.00757217
+0 3 1 0 0.0171509 0.0102463
+0 3 2 0 0.0181122 0.0140762
+0 3 3 0 0.020401 0.0204163
+0 3 4 0 0.02388 0.0306396
+0 3 5 0 0.0263977 0.0431824
+0 3 6 0 0.0279999 0.0573425
+0 3 7 0 0.0298309 0.0745239
+0 3 8 0 0.032959 0.0967407
+0 3 9 0 0.0382996 0.126099
+0 3 10 0 0.0466614 0.165283
+0 3 11 0 0.0585938 0.216675
+0 3 12 0 0.0734253 0.27832
+0 3 13 0 0.0908813 0.349365
+0 3 14 0 0.110718 0.428955
+0 3 15 0 0.132446 0.515625
+0 3 16 0 0.155273 0.606445
+0 3 17 0 0.177734 0.694824
+0 3 18 0 0.198486 0.776855
+0 3 19 0 0.216919 0.849609
+0 3 20 0 0.227173 0.890137
+0 3 21 0 0.229126 0.897949
+0 3 22 0 0.231323 0.906738
+0 3 23 0 0.233398 0.915039
+0 3 24 0 0.235596 0.923828
+0 3 25 0 0.238037 0.933594
+0 3 26 0 0.240723 0.943848
+0 3 27 0 0.243652 0.955566
+0 3 28 0 0.24707 0.969238
+0 3 29 0 0.250732 0.98291
+0 3 30 0 0.254395 0.998047
+0 3 31 0 0.258301 1
+0 4 0 0 0.027771 0.00690079
+0 4 1 0 0.0276489 0.011322
+0 4 2 0 0.0277863 0.0158997
+0 4 3 0 0.0287323 0.0219269
+0 4 4 0 0.030777 0.0307922
+0 4 5 0 0.0329285 0.0428162
+0 4 6 0 0.0343018 0.0570679
+0 4 7 0 0.0355835 0.0744019
+0 4 8 0 0.0379333 0.0966797
+0 4 9 0 0.0423279 0.125977
+0 4 10 0 0.0498657 0.165161
+0 4 11 0 0.0610962 0.216553
+0 4 12 0 0.0753174 0.27832
+0 4 13 0 0.0923462 0.349365
+0 4 14 0 0.111816 0.428955
+0 4 15 0 0.133179 0.515625
+0 4 16 0 0.155884 0.606445
+0 4 17 0 0.178101 0.694824
+0 4 18 0 0.198853 0.776855
+0 4 19 0 0.217285 0.849609
+0 4 20 0 0.227417 0.890137
+0 4 21 0 0.22937 0.897949
+0 4 22 0 0.231445 0.906738
+0 4 23 0 0.233643 0.915039
+0 4 24 0 0.235718 0.923828
+0 4 25 0 0.238159 0.933594
+0 4 26 0 0.240845 0.943848
+0 4 27 0 0.243774 0.955566
+0 4 28 0 0.247192 0.969238
+0 4 29 0 0.250732 0.98291
+0 4 30 0 0.254395 0.998047
+0 4 31 0 0.258301 1
+0 5 0 0 0.0406494 0
+0 5 1 0 0.0405884 0.00730515
+0 5 2 0 0.0405579 0.0151978
+0 5 3 0 0.0406189 0.0223236
+0 5 4 0 0.0411682 0.0309143
+0 5 5 0 0.0422668 0.0422974
+0 5 6 0 0.0432739 0.0565491
+0 5 7 0 0.0440369 0.0740356
+0 5 8 0 0.0455627 0.0964966
+0 5 9 0 0.0489197 0.125854
+0 5 10 0 0.0553589 0.165039
+0 5 11 0 0.0655518 0.216431
+0 5 12 0 0.0787964 0.278076
+0 5 13 0 0.0950317 0.349365
+0 5 14 0 0.113892 0.428955
+0 5 15 0 0.134766 0.515625
+0 5 16 0 0.157104 0.605957
+0 5 17 0 0.179077 0.694824
+0 5 18 0 0.199585 0.776855
+0 5 19 0 0.217773 0.849609
+0 5 20 0 0.227905 0.890137
+0 5 21 0 0.229736 0.898438
+0 5 22 0 0.231812 0.906738
+0 5 23 0 0.233887 0.915039
+0 5 24 0 0.235962 0.923828
+0 5 25 0 0.238281 0.933594
+0 5 26 0 0.240967 0.943848
+0 5 27 0 0.243896 0.955566
+0 5 28 0 0.247192 0.969238
+0 5 29 0 0.250732 0.98291
+0 5 30 0 0.254639 0.998047
+0 5 31 0 0.258301 1
+0 6 0 0 0.0545349 0
+0 6 1 0 0.0545349 0
+0 6 2 0 0.0545654 0.00471497
+0 6 3 0 0.0545959 0.0189972
+0 6 4 0 0.054718 0.0292664
+0 6 5 0 0.0550232 0.0410767
+0 6 6 0 0.0554199 0.0554199
+0 6 7 0 0.0557861 0.0733643
+0 6 8 0 0.0565491 0.0960693
+0 6 9 0 0.0588379 0.125488
+0 6 10 0 0.0640869 0.164795
+0 6 11 0 0.0730591 0.216187
+0 6 12 0 0.0849609 0.278076
+0 6 13 0 0.0998535 0.349121
+0 6 14 0 0.117615 0.428955
+0 6 15 0 0.137695 0.515625
+0 6 16 0 0.159302 0.605957
+0 6 17 0 0.180786 0.694824
+0 6 18 0 0.200928 0.776855
+0 6 19 0 0.218872 0.849609
+0 6 20 0 0.22876 0.890137
+0 6 21 0 0.230469 0.898438
+0 6 22 0 0.2323 0.906738
+0 6 23 0 0.234375 0.915527
+0 6 24 0 0.236328 0.923828
+0 6 25 0 0.238647 0.933594
+0 6 26 0 0.241211 0.943848
+0 6 27 0 0.244141 0.955566
+0 6 28 0 0.247437 0.969238
+0 6 29 0 0.250977 0.98291
+0 6 30 0 0.254639 0.998047
+0 6 31 0 0.258545 1
+0 7 0 0 0.0709229 0
+0 7 1 0 0.0709839 0
+0 7 2 0 0.0710449 0
+0 7 3 0 0.071106 0
+0 7 4 0 0.071228 0.0233307
+0 7 5 0 0.0714111 0.0375366
+0 7 6 0 0.0715942 0.0530396
+0 7 7 0 0.0717773 0.0717773
+0 7 8 0 0.0720215 0.0951538
+0 7 9 0 0.0733643 0.124939
+0 7 10 0 0.0775146 0.164185
+0 7 11 0 0.085144 0.21582
+0 7 12 0 0.0953369 0.277832
+0 7 13 0 0.108459 0.349121
+0 7 14 0 0.124512 0.428955
+0 7 15 0 0.143066 0.515137
+0 7 16 0 0.163574 0.605957
+0 7 17 0 0.184082 0.694824
+0 7 18 0 0.203491 0.776855
+0 7 19 0 0.220947 0.849609
+0 7 20 0 0.230469 0.890625
+0 7 21 0 0.231812 0.898438
+0 7 22 0 0.233398 0.906738
+0 7 23 0 0.235229 0.915527
+0 7 24 0 0.237183 0.923828
+0 7 25 0 0.23938 0.933594
+0 7 26 0 0.241821 0.944336
+0 7 27 0 0.244629 0.956055
+0 7 28 0 0.247925 0.969238
+0 7 29 0 0.251465 0.983398
+0 7 30 0 0.255127 0.998047
+0 7 31 0 0.258789 1
+0 8 0 0 0.092041 0
+0 8 1 0 0.092041 0
+0 8 2 0 0.092041 0
+0 8 3 0 0.0921021 0
+0 8 4 0 0.0922241 0
+0 8 5 0 0.0924072 0.0290375
+0 8 6 0 0.0926514 0.0479126
+0 8 7 0 0.0928955 0.0684204
+0 8 8 0 0.0930786 0.0930786
+0 8 9 0 0.093811 0.123718
+0 8 10 0 0.0970459 0.16333
+0 8 11 0 0.103577 0.215088
+0 8 12 0 0.112122 0.277344
+0 8 13 0 0.122986 0.348633
+0 8 14 0 0.136597 0.428711
+0 8 15 0 0.152832 0.515137
+0 8 16 0 0.171387 0.605957
+0 8 17 0 0.190308 0.694824
+0 8 18 0 0.208496 0.776855
+0 8 19 0 0.224976 0.849609
+0 8 20 0 0.233765 0.890625
+0 8 21 0 0.234375 0.898438
+0 8 22 0 0.235596 0.907227
+0 8 23 0 0.237061 0.915527
+0 8 24 0 0.238647 0.924316
+0 8 25 0 0.240723 0.933594
+0 8 26 0 0.243042 0.944336
+0 8 27 0 0.245605 0.956055
+0 8 28 0 0.248779 0.969238
+0 8 29 0 0.252197 0.983398
+0 8 30 0 0.255615 0.998047
+0 8 31 0 0.259277 1
+0 9 0 0 0.119324 0
+0 9 1 0 0.119324 0
+0 9 2 0 0.119385 0
+0 9 3 0 0.119385 0
+0 9 4 0 0.119446 0
+0 9 5 0 0.119568 0
+0 9 6 0 0.119751 0.0366516
+0 9 7 0 0.120056 0.0618286
+0 9 8 0 0.120483 0.0889282
+0 9 9 0 0.121338 0.121399
+0 9 10 0 0.123962 0.161743
+0 9 11 0 0.129761 0.213745
+0 9 12 0 0.136841 0.276367
+0 9 13 0 0.145508 0.348145
+0 9 14 0 0.156372 0.428467
+0 9 15 0 0.169556 0.515137
+0 9 16 0 0.185181 0.605957
+0 9 17 0 0.201538 0.694824
+0 9 18 0 0.217651 0.776855
+0 9 19 0 0.232422 0.849609
+0 9 20 0 0.23999 0.891113
+0 9 21 0 0.23938 0.898926
+0 9 22 0 0.239624 0.907227
+0 9 23 0 0.240479 0.916016
+0 9 24 0 0.241577 0.924316
+0 9 25 0 0.243164 0.934082
+0 9 26 0 0.245117 0.944336
+0 9 27 0 0.247559 0.956055
+0 9 28 0 0.250244 0.969238
+0 9 29 0 0.253418 0.983398
+0 9 30 0 0.256836 0.998047
+0 9 31 0 0.260254 1
+0 10 0 0 0.155273 0
+0 10 1 0 0.155273 0
+0 10 2 0 0.155273 0
+0 10 3 0 0.155273 0
+0 10 4 0 0.155396 0
+0 10 5 0 0.155396 0
+0 10 6 0 0.155396 0
+0 10 7 0 0.155518 0.0487061
+0 10 8 0 0.155884 0.0818481
+0 10 9 0 0.156738 0.11731
+0 10 10 0 0.15918 0.15918
+0 10 11 0 0.164307 0.21167
+0 10 12 0 0.17041 0.274658
+0 10 13 0 0.177246 0.346924
+0 10 14 0 0.185303 0.427734
+0 10 15 0 0.19519 0.514648
+0 10 16 0 0.207031 0.605957
+0 10 17 0 0.219849 0.694824
+0 10 18 0 0.23291 0.777344
+0 10 19 0 0.245239 0.850098
+0 10 20 0 0.250732 0.89209
+0 10 21 0 0.247925 0.899902
+0 10 22 0 0.246704 0.908203
+0 10 23 0 0.24646 0.916504
+0 10 24 0 0.246826 0.924805
+0 10 25 0 0.247681 0.93457
+0 10 26 0 0.249023 0.944824
+0 10 27 0 0.250732 0.956543
+0 10 28 0 0.253174 0.969727
+0 10 29 0 0.255859 0.983887
+0 10 30 0 0.259033 0.998535
+0 10 31 0 0.262207 1
+0 11 0 0 0.202759 0
+0 11 1 0 0.202759 0
+0 11 2 0 0.202759 0
+0 11 3 0 0.202881 0
+0 11 4 0 0.202881 0
+0 11 5 0 0.203003 0
+0 11 6 0 0.203003 0
+0 11 7 0 0.202881 0
+0 11 8 0 0.202881 0.0678101
+0 11 9 0 0.203247 0.110474
+0 11 10 0 0.204956 0.155518
+0 11 11 0 0.208618 0.208618
+0 11 12 0 0.213501 0.271973
+0 11 13 0 0.218994 0.344971
+0 11 14 0 0.224731 0.426514
+0 11 15 0 0.231201 0.51416
+0 11 16 0 0.239258 0.605957
+0 11 17 0 0.247803 0.694824
+0 11 18 0 0.256836 0.777344
+0 11 19 0 0.265625 0.850098
+0 11 20 0 0.268066 0.893555
+0 11 21 0 0.262207 0.900879
+0 11 22 0 0.258545 0.90918
+0 11 23 0 0.256592 0.91748
+0 11 24 0 0.255615 0.925781
+0 11 25 0 0.255371 0.935059
+0 11 26 0 0.255615 0.945312
+0 11 27 0 0.256592 0.957031
+0 11 28 0 0.258057 0.970215
+0 11 29 0 0.260254 0.984375
+0 11 30 0 0.262695 0.999023
+0 11 31 0 0.265381 1
+0 12 0 0 0.261475 0
+0 12 1 0 0.261475 0
+0 12 2 0 0.261475 0
+0 12 3 0 0.261719 0
+0 12 4 0 0.261719 0
+0 12 5 0 0.261719 0
+0 12 6 0 0.261719 0
+0 12 7 0 0.261963 0
+0 12 8 0 0.261963 0
+0 12 9 0 0.261963 0.0949097
+0 12 10 0 0.262695 0.147583
+0 12 11 0 0.264404 0.203491
+0 12 12 0 0.267822 0.267822
+0 12 13 0 0.271729 0.341797
+0 12 14 0 0.275635 0.424072
+0 12 15 0 0.279297 0.512695
+0 12 16 0 0.283447 0.60498
+0 12 17 0 0.287598 0.694824
+0 12 18 0 0.291992 0.777344
+0 12 19 0 0.296387 0.850586
+0 12 20 0 0.294922 0.895996
+0 12 21 0 0.284668 0.90332
+0 12 22 0 0.277588 0.911133
+0 12 23 0 0.272949 0.918945
+0 12 24 0 0.269775 0.927246
+0 12 25 0 0.267578 0.936523
+0 12 26 0 0.266357 0.946777
+0 12 27 0 0.265869 0.958008
+0 12 28 0 0.266357 0.971191
+0 12 29 0 0.267334 0.984863
+0 12 30 0 0.268799 0.999512
+0 12 31 0 0.270752 1
+0 13 0 0 0.329834 0
+0 13 1 0 0.329834 0
+0 13 2 0 0.329834 0
+0 13 3 0 0.329834 0
+0 13 4 0 0.329834 0
+0 13 5 0 0.329834 0
+0 13 6 0 0.329834 0
+0 13 7 0 0.330078 0
+0 13 8 0 0.330078 0
+0 13 9 0 0.330322 0.0458679
+0 13 10 0 0.330811 0.129395
+0 13 11 0 0.331543 0.192871
+0 13 12 0 0.333252 0.260498
+0 13 13 0 0.335938 0.335938
+0 13 14 0 0.338135 0.419922
+0 13 15 0 0.339355 0.509766
+0 13 16 0 0.340088 0.603516
+0 13 17 0 0.339844 0.694336
+0 13 18 0 0.339355 0.777832
+0 13 19 0 0.338867 0.851562
+0 13 20 0 0.333252 0.899902
+0 13 21 0 0.317139 0.906738
+0 13 22 0 0.30542 0.914062
+0 13 23 0 0.297119 0.921875
+0 13 24 0 0.29126 0.930176
+0 13 25 0 0.286621 0.938965
+0 13 26 0 0.282959 0.94873
+0 13 27 0 0.280518 0.959961
+0 13 28 0 0.279053 0.972656
+0 13 29 0 0.278564 0.986328
+0 13 30 0 0.278564 1
+0 13 31 0 0.279297 1
+0 14 0 0 0.406982 0
+0 14 1 0 0.406982 0
+0 14 2 0 0.406982 0
+0 14 3 0 0.406982 0
+0 14 4 0 0.406982 0
+0 14 5 0 0.406982 0
+0 14 6 0 0.406982 0
+0 14 7 0 0.406982 0
+0 14 8 0 0.407227 0
+0 14 9 0 0.407471 0
+0 14 10 0 0.408203 0.0844727
+0 14 11 0 0.408936 0.171509
+0 14 12 0 0.409912 0.246826
+0 14 13 0 0.411377 0.325928
+0 14 14 0 0.412109 0.412354
+0 14 15 0 0.411865 0.504395
+0 14 16 0 0.409668 0.600098
+0 14 17 0 0.405518 0.692871
+0 14 18 0 0.400146 0.777344
+0 14 19 0 0.394775 0.852051
+0 14 20 0 0.385254 0.904785
+0 14 21 0 0.362061 0.912109
+0 14 22 0 0.344482 0.919434
+0 14 23 0 0.331787 0.926758
+0 14 24 0 0.322021 0.934082
+0 14 25 0 0.313965 0.942871
+0 14 26 0 0.307373 0.952637
+0 14 27 0 0.302246 0.963379
+0 14 28 0 0.298096 0.975586
+0 14 29 0 0.29541 0.98877
+0 14 30 0 0.293457 1
+0 14 31 0 0.292236 1
+0 15 0 0 0.490967 0
+0 15 1 0 0.490967 0
+0 15 2 0 0.490967 0
+0 15 3 0 0.490967 0
+0 15 4 0 0.490967 0
+0 15 5 0 0.490967 0
+0 15 6 0 0.491211 0
+0 15 7 0 0.491211 0
+0 15 8 0 0.491211 0
+0 15 9 0 0.491699 0
+0 15 10 0 0.492188 0
+0 15 11 0 0.493164 0.127686
+0 15 12 0 0.494385 0.22229
+0 15 13 0 0.495605 0.308838
+0 15 14 0 0.496094 0.399414
+0 15 15 0 0.494873 0.494873
+0 15 16 0 0.490967 0.59375
+0 15 17 0 0.483643 0.688965
+0 15 18 0 0.474121 0.775391
+0 15 19 0 0.463623 0.851562
+0 15 20 0 0.450928 0.911133
+0 15 21 0 0.420166 0.919434
+0 15 22 0 0.39624 0.926758
+0 15 23 0 0.37793 0.934082
+0 15 24 0 0.36377 0.941406
+0 15 25 0 0.351562 0.949219
+0 15 26 0 0.341064 0.958008
+0 15 27 0 0.332031 0.968262
+0 15 28 0 0.324951 0.97998
+0 15 29 0 0.319092 0.992676
+0 15 30 0 0.314453 1
+0 15 31 0 0.310791 1
+0 16 0 0 0.580566 0
+0 16 1 0 0.580566 0
+0 16 2 0 0.580566 0
+0 16 3 0 0.580566 0
+0 16 4 0 0.580566 0
+0 16 5 0 0.580566 0
+0 16 6 0 0.580566 0
+0 16 7 0 0.581055 0
+0 16 8 0 0.581055 0
+0 16 9 0 0.581055 0
+0 16 10 0 0.581543 0
+0 16 11 0 0.583008 0
+0 16 12 0 0.584473 0.178345
+0 16 13 0 0.585938 0.280762
+0 16 14 0 0.586914 0.378418
+0 16 15 0 0.585938 0.47876
+0 16 16 0 0.581543 0.581543
+0 16 17 0 0.572266 0.680664
+0 16 18 0 0.55957 0.770508
+0 16 19 0 0.544922 0.849121
+0 16 20 0 0.529297 0.914062
+0 16 21 0 0.492432 0.928711
+0 16 22 0 0.461426 0.937988
+0 16 23 0 0.437012 0.944824
+0 16 24 0 0.417725 0.95166
+0 16 25 0 0.400391 0.958984
+0 16 26 0 0.385254 0.966797
+0 16 27 0 0.371826 0.976074
+0 16 28 0 0.360596 0.986816
+0 16 29 0 0.351074 0.998535
+0 16 30 0 0.343018 1
+0 16 31 0 0.336182 1
+0 17 0 0 0.669922 0
+0 17 1 0 0.669922 0
+0 17 2 0 0.669922 0
+0 17 3 0 0.669922 0
+0 17 4 0 0.669922 0
+0 17 5 0 0.67041 0
+0 17 6 0 0.67041 0
+0 17 7 0 0.67041 0
+0 17 8 0 0.67041 0
+0 17 9 0 0.67041 0
+0 17 10 0 0.670898 0
+0 17 11 0 0.671875 0
+0 17 12 0 0.673828 0.0739746
+0 17 13 0 0.67627 0.237305
+0 17 14 0 0.678223 0.347412
+0 17 15 0 0.678223 0.454102
+0 17 16 0 0.674316 0.562012
+0 17 17 0 0.665527 0.666016
+0 17 18 0 0.651367 0.760742
+0 17 19 0 0.633789 0.843262
+0 17 20 0 0.614258 0.910645
+0 17 21 0 0.576172 0.937988
+0 17 22 0 0.539062 0.951172
+0 17 23 0 0.508301 0.959961
+0 17 24 0 0.483154 0.966309
+0 17 25 0 0.460205 0.973145
+0 17 26 0 0.439697 0.97998
+0 17 27 0 0.421143 0.987793
+0 17 28 0 0.405273 0.99707
+0 17 29 0 0.391113 1
+0 17 30 0 0.378906 1
+0 17 31 0 0.368408 1
+0 18 0 0 0.754395 0
+0 18 1 0 0.754395 0
+0 18 2 0 0.754395 0
+0 18 3 0 0.754395 0
+0 18 4 0 0.754395 0
+0 18 5 0 0.754395 0
+0 18 6 0 0.754395 0
+0 18 7 0 0.754395 0
+0 18 8 0 0.754395 0
+0 18 9 0 0.754395 0
+0 18 10 0 0.754883 0
+0 18 11 0 0.755371 0
+0 18 12 0 0.757812 0
+0 18 13 0 0.760254 0.165771
+0 18 14 0 0.763672 0.304443
+0 18 15 0 0.765137 0.42041
+0 18 16 0 0.763672 0.53418
+0 18 17 0 0.756836 0.643555
+0 18 18 0 0.743652 0.743652
+0 18 19 0 0.725098 0.831055
+0 18 20 0 0.703125 0.90332
+0 18 21 0 0.666016 0.943848
+0 18 22 0 0.625488 0.965332
+0 18 23 0 0.589844 0.977051
+0 18 24 0 0.559082 0.984863
+0 18 25 0 0.529785 0.991699
+0 18 26 0 0.503418 0.997559
+0 18 27 0 0.479248 1
+0 18 28 0 0.457764 1
+0 18 29 0 0.438477 1
+0 18 30 0 0.421631 1
+0 18 31 0 0.406738 1
+0 19 0 0 0.830566 0
+0 19 1 0 0.830566 0
+0 19 2 0 0.830566 0
+0 19 3 0 0.830566 0
+0 19 4 0 0.830566 0
+0 19 5 0 0.830566 0
+0 19 6 0 0.830566 0
+0 19 7 0 0.830566 0
+0 19 8 0 0.830566 0
+0 19 9 0 0.831055 0
+0 19 10 0 0.831055 0
+0 19 11 0 0.831055 0
+0 19 12 0 0.833008 0
+0 19 13 0 0.835938 0
+0 19 14 0 0.839844 0.246582
+0 19 15 0 0.843262 0.378662
+0 19 16 0 0.844238 0.499268
+0 19 17 0 0.840332 0.61377
+0 19 18 0 0.82959 0.719727
+0 19 19 0 0.812012 0.8125
+0 19 20 0 0.789551 0.88916
+0 19 21 0 0.756348 0.943359
+0 19 22 0 0.716309 0.975586
+0 19 23 0 0.676758 0.994141
+0 19 24 0 0.641113 1
+0 19 25 0 0.606934 1
+0 19 26 0 0.574219 1
+0 19 27 0 0.543945 1
+0 19 28 0 0.516602 1
+0 19 29 0 0.491699 1
+0 19 30 0 0.469482 1
+0 19 31 0 0.449707 1
+0 20 0 0 0.896973 0
+0 20 1 0 0.896973 0
+0 20 2 0 0.896973 0
+0 20 3 0 0.896973 0
+0 20 4 0 0.896973 0
+0 20 5 0 0.896973 0
+0 20 6 0 0.896973 0
+0 20 7 0 0.896973 0
+0 20 8 0 0.896973 0
+0 20 9 0 0.896973 0
+0 20 10 0 0.896973 0
+0 20 11 0 0.897461 0
+0 20 12 0 0.897949 0
+0 20 13 0 0.901367 0
+0 20 14 0 0.905762 0.160645
+0 20 15 0 0.910645 0.329346
+0 20 16 0 0.913574 0.458984
+0 20 17 0 0.912598 0.579102
+0 20 18 0 0.905273 0.689453
+0 20 19 0 0.890137 0.787109
+0 20 20 0 0.869141 0.869141
+0 20 21 0 0.840332 0.93457
+0 20 22 0 0.803711 0.979004
+0 20 23 0 0.763672 1
+0 20 24 0 0.725586 1
+0 20 25 0 0.687012 1
+0 20 26 0 0.648926 1
+0 20 27 0 0.612793 1
+0 20 28 0 0.579102 1
+0 20 29 0 0.548828 1
+0 20 30 0 0.520996 1
+0 20 31 0 0.496338 1
+0 21 0 0 0.953613 0
+0 21 1 0 0.953613 0
+0 21 2 0 0.953613 0
+0 21 3 0 0.953613 0
+0 21 4 0 0.953613 0
+0 21 5 0 0.953613 0
+0 21 6 0 0.953613 0
+0 21 7 0 0.953613 0
+0 21 8 0 0.953613 0
+0 21 9 0 0.953613 0
+0 21 10 0 0.953613 0
+0 21 11 0 0.954102 0
+0 21 12 0 0.954102 0
+0 21 13 0 0.957031 0
+0 21 14 0 0.961914 0
+0 21 15 0 0.967285 0.268555
+0 21 16 0 0.972168 0.413574
+0 21 17 0 0.974121 0.539062
+0 21 18 0 0.970215 0.653809
+0 21 19 0 0.958984 0.755859
+0 21 20 0 0.94043 0.843262
+0 21 21 0 0.915527 0.916016
+0 21 22 0 0.883789 0.97168
+0 21 23 0 0.847168 1
+0 21 24 0 0.808594 1
+0 21 25 0 0.767578 1
+0 21 26 0 0.725586 1
+0 21 27 0 0.68457 1
+0 21 28 0 0.645508 1
+0 21 29 0 0.609375 1
+0 21 30 0 0.576172 1
+0 21 31 0 0.546387 1
+0 22 0 0 1 0
+0 22 1 0 1 0
+0 22 2 0 1 0
+0 22 3 0 1 0
+0 22 4 0 1 0
+0 22 5 0 1 0
+0 22 6 0 1 0
+0 22 7 0 1 0
+0 22 8 0 1 0
+0 22 9 0 1 0
+0 22 10 0 1 0
+0 22 11 0 1 0
+0 22 12 0 1 0
+0 22 13 0 1 0
+0 22 14 0 1 0
+0 22 15 0 1 0.187134
+0 22 16 0 1 0.363037
+0 22 17 0 1 0.49585
+0 22 18 0 1 0.614258
+0 22 19 0 1 0.720215
+0 22 20 0 1 0.811523
+0 22 21 0 0.97998 0.889648
+0 22 22 0 0.953125 0.953125
+0 22 23 0 0.920898 1
+0 22 24 0 0.885254 1
+0 22 25 0 0.844238 1
+0 22 26 0 0.800781 1
+0 22 27 0 0.756348 1
+0 22 28 0 0.712891 1
+0 22 29 0 0.671875 1
+0 22 30 0 0.633301 1
+0 22 31 0 0.598145 1
+0 23 0 0 1 0
+0 23 1 0 1 0
+0 23 2 0 1 0
+0 23 3 0 1 0
+0 23 4 0 1 0
+0 23 5 0 1 0
+0 23 6 0 1 0
+0 23 7 0 1 0
+0 23 8 0 1 0
+0 23 9 0 1 0
+0 23 10 0 1 0
+0 23 11 0 1 0
+0 23 12 0 1 0
+0 23 13 0 1 0
+0 23 14 0 1 0
+0 23 15 0 1 0
+0 23 16 0 1 0.30835
+0 23 17 0 1 0.451416
+0 23 18 0 1 0.57373
+0 23 19 0 1 0.682617
+0 23 20 0 1 0.777344
+0 23 21 0 1 0.859375
+0 23 22 0 1 0.927734
+0 23 23 0 0.981445 0.981934
+0 23 24 0 0.950195 1
+0 23 25 0 0.912109 1
+0 23 26 0 0.869141 1
+0 23 27 0 0.823242 1
+0 23 28 0 0.776855 1
+0 23 29 0 0.731934 1
+0 23 30 0 0.688965 1
+0 23 31 0 0.648926 1
+0 24 0 0 1 0
+0 24 1 0 1 0
+0 24 2 0 1 0
+0 24 3 0 1 0
+0 24 4 0 1 0
+0 24 5 0 1 0
+0 24 6 0 1 0
+0 24 7 0 1 0
+0 24 8 0 1 0
+0 24 9 0 1 0
+0 24 10 0 1 0
+0 24 11 0 1 0
+0 24 12 0 1 0
+0 24 13 0 1 0
+0 24 14 0 1 0
+0 24 15 0 1 0
+0 24 16 0 1 0.24585
+0 24 17 0 1 0.406006
+0 24 18 0 1 0.532715
+0 24 19 0 1 0.644531
+0 24 20 0 1 0.741699
+0 24 21 0 1 0.827148
+0 24 22 0 1 0.899414
+0 24 23 0 1 0.95752
+0 24 24 0 1 1
+0 24 25 0 0.970215 1
+0 24 26 0 0.929688 1
+0 24 27 0 0.884277 1
+0 24 28 0 0.836914 1
+0 24 29 0 0.789062 1
+0 24 30 0 0.742676 1
+0 24 31 0 0.69873 1
+0 25 0 0 1 0
+0 25 1 0 1 0
+0 25 2 0 1 0
+0 25 3 0 1 0
+0 25 4 0 1 0
+0 25 5 0 1 0
+0 25 6 0 1 0
+0 25 7 0 1 0
+0 25 8 0 1 0
+0 25 9 0 1 0
+0 25 10 0 1 0
+0 25 11 0 1 0
+0 25 12 0 1 0
+0 25 13 0 1 0
+0 25 14 0 1 0
+0 25 15 0 1 0
+0 25 16 0 1 0.151123
+0 25 17 0 1 0.354004
+0 25 18 0 1 0.487549
+0 25 19 0 1 0.601562
+0 25 20 0 1 0.701172
+0 25 21 0 1 0.789062
+0 25 22 0 1 0.865234
+0 25 23 0 1 0.927734
+0 25 24 0 1 0.979004
+0 25 25 0 1 1
+0 25 26 0 0.987305 1
+0 25 27 0 0.944336 1
+0 25 28 0 0.896973 1
+0 25 29 0 0.847656 1
+0 25 30 0 0.798828 1
+0 25 31 0 0.751465 1
+0 26 0 0 1 0
+0 26 1 0 1 0
+0 26 2 0 1 0
+0 26 3 0 1 0
+0 26 4 0 1 0
+0 26 5 0 1 0
+0 26 6 0 1 0
+0 26 7 0 1 0
+0 26 8 0 1 0
+0 26 9 0 1 0
+0 26 10 0 1 0
+0 26 11 0 1 0
+0 26 12 0 1 0
+0 26 13 0 1 0
+0 26 14 0 1 0
+0 26 15 0 1 0
+0 26 16 0 1 0
+0 26 17 0 1 0.291992
+0 26 18 0 1 0.437256
+0 26 19 0 1 0.554199
+0 26 20 0 1 0.655762
+0 26 21 0 1 0.746094
+0 26 22 0 1 0.825195
+0 26 23 0 1 0.891602
+0 26 24 0 1 0.946777
+0 26 25 0 1 0.99707
+0 26 26 0 1 1
+0 26 27 0 1 1
+0 26 28 0 0.956055 1
+0 26 29 0 0.906738 1
+0 26 30 0 0.856445 1
+0 26 31 0 0.806152 1
+0 27 0 0 1 0
+0 27 1 0 1 0
+0 27 2 0 1 0
+0 27 3 0 1 0
+0 27 4 0 1 0
+0 27 5 0 1 0
+0 27 6 0 1 0
+0 27 7 0 1 0
+0 27 8 0 1 0
+0 27 9 0 1 0
+0 27 10 0 1 0
+0 27 11 0 1 0
+0 27 12 0 1 0
+0 27 13 0 1 0
+0 27 14 0 1 0
+0 27 15 0 1 0
+0 27 16 0 1 0
+0 27 17 0 1 0.209595
+0 27 18 0 1 0.380859
+0 27 19 0 1 0.503418
+0 27 20 0 1 0.606445
+0 27 21 0 1 0.69873
+0 27 22 0 1 0.780273
+0 27 23 0 1 0.849609
+0 27 24 0 1 0.908203
+0 27 25 0 1 0.962891
+0 27 26 0 1 1
+0 27 27 0 1 1
+0 27 28 0 1 1
+0 27 29 0 0.964355 1
+0 27 30 0 0.913574 1
+0 27 31 0 0.862305 1
+0 28 0 0 1 0
+0 28 1 0 1 0
+0 28 2 0 1 0
+0 28 3 0 1 0
+0 28 4 0 1 0
+0 28 5 0 1 0
+0 28 6 0 1 0
+0 28 7 0 1 0
+0 28 8 0 1 0
+0 28 9 0 1 0
+0 28 10 0 1 0
+0 28 11 0 1 0
+0 28 12 0 1 0
+0 28 13 0 1 0
+0 28 14 0 1 0
+0 28 15 0 1 0
+0 28 16 0 1 0
+0 28 17 0 1 0
+0 28 18 0 1 0.315674
+0 28 19 0 1 0.44751
+0 28 20 0 1 0.553711
+0 28 21 0 1 0.647461
+0 28 22 0 1 0.730469
+0 28 23 0 1 0.802246
+0 28 24 0 1 0.86377
+0 28 25 0 1 0.921875
+0 28 26 0 1 0.975586
+0 28 27 0 1 1
+0 28 28 0 1 1
+0 28 29 0 1 1
+0 28 30 0 0.969727 1
+0 28 31 0 0.918457 1
+0 29 0 0 1 0
+0 29 1 0 1 0
+0 29 2 0 1 0
+0 29 3 0 1 0
+0 29 4 0 1 0
+0 29 5 0 1 0
+0 29 6 0 1 0
+0 29 7 0 1 0
+0 29 8 0 1 0
+0 29 9 0 1 0
+0 29 10 0 1 0
+0 29 11 0 1 0
+0 29 12 0 1 0
+0 29 13 0 1 0
+0 29 14 0 1 0
+0 29 15 0 1 0
+0 29 16 0 1 0
+0 29 17 0 1 0
+0 29 18 0 1 0.233276
+0 29 19 0 1 0.385742
+0 29 20 0 1 0.496338
+0 29 21 0 1 0.591797
+0 29 22 0 1 0.67627
+0 29 23 0 1 0.749023
+0 29 24 0 1 0.812988
+0 29 25 0 1 0.874023
+0 29 26 0 1 0.931641
+0 29 27 0 1 0.984375
+0 29 28 0 1 1
+0 29 29 0 1 1
+0 29 30 0 1 1
+0 29 31 0 0.974609 1
+0 30 0 0 1 0
+0 30 1 0 1 0
+0 30 2 0 1 0
+0 30 3 0 1 0
+0 30 4 0 1 0
+0 30 5 0 1 0
+0 30 6 0 1 0
+0 30 7 0 1 0
+0 30 8 0 1 0
+0 30 9 0 1 0
+0 30 10 0 1 0
+0 30 11 0 1 0
+0 30 12 0 1 0
+0 30 13 0 1 0
+0 30 14 0 1 0
+0 30 15 0 1 0
+0 30 16 0 1 0
+0 30 17 0 1 0
+0 30 18 0 1 0.0709839
+0 30 19 0 1 0.315186
+0 30 20 0 1 0.43457
+0 30 21 0 1 0.532227
+0 30 22 0 1 0.617676
+0 30 23 0 1 0.691895
+0 30 24 0 1 0.756836
+0 30 25 0 1 0.820312
+0 30 26 0 1 0.880859
+0 30 27 0 1 0.938477
+0 30 28 0 1 0.990234
+0 30 29 0 1 1
+0 30 30 0 1 1
+0 30 31 0 1 1
+0 31 0 0 1 0
+0 31 1 0 1 0
+0 31 2 0 1 0
+0 31 3 0 1 0
+0 31 4 0 1 0
+0 31 5 0 1 0
+0 31 6 0 1 0
+0 31 7 0 1 0
+0 31 8 0 1 0
+0 31 9 0 1 0
+0 31 10 0 1 0
+0 31 11 0 1 0
+0 31 12 0 1 0
+0 31 13 0 1 0
+0 31 14 0 1 0
+0 31 15 0 1 0
+0 31 16 0 1 0
+0 31 17 0 1 0
+0 31 18 0 1 0
+0 31 19 0 1 0.226685
+0 31 20 0 1 0.366699
+0 31 21 0 1 0.469238
+0 31 22 0 1 0.556152
+0 31 23 0 1 0.630859
+0 31 24 0 1 0.696777
+0 31 25 0 1 0.761719
+0 31 26 0 1 0.825195
+0 31 27 0 1 0.88623
+0 31 28 0 1 0.943359
+0 31 29 0 1 0.995117
+0 31 30 0 1 1
+0 31 31 0 1 1
+1 0 0 0.0083313 0.00596619 0.00593567
+1 0 1 0.00687408 0.00521088 0.00637817
+1 0 2 0.00937653 0.00776291 0.011673
+1 0 3 0.0105896 0.0106964 0.0197449
+1 0 4 0.00390244 0.0138168 0.0310211
+1 0 5 0 0.0162964 0.0436096
+1 0 6 0 0.0187531 0.0575867
+1 0 7 0 0.0220032 0.074707
+1 0 8 0 0.0267792 0.0968628
+1 0 9 0 0.0335999 0.126221
+1 0 10 0 0.0431824 0.165405
+1 0 11 0 0.0559692 0.216675
+1 0 12 0 0.0714722 0.27832
+1 0 13 0 0.0894775 0.349365
+1 0 14 0 0.10968 0.429199
+1 0 15 0 0.131592 0.515625
+1 0 16 0 0.154663 0.606445
+1 0 17 0 0.177246 0.694824
+1 0 18 0 0.19812 0.776855
+1 0 19 0 0.216675 0.849609
+1 0 20 0 0.226929 0.890137
+1 0 21 0 0.229004 0.897949
+1 0 22 0 0.231201 0.906738
+1 0 23 0 0.233276 0.915039
+1 0 24 0 0.235474 0.923828
+1 0 25 0 0.237915 0.933594
+1 0 26 0 0.240601 0.943848
+1 0 27 0 0.243652 0.955566
+1 0 28 0 0.24707 0.96875
+1 0 29 0 0.250732 0.98291
+1 0 30 0 0.254395 0.998047
+1 0 31 0 0.258301 1
+1 1 0 0.00611115 0.00581741 0.00468826
+1 1 1 0.007164 0.007164 0.007164
+1 1 2 0.00868225 0.00959778 0.01194
+1 1 3 0.00889587 0.0126953 0.0196686
+1 1 4 0 0.0160675 0.0308685
+1 1 5 0 0.0185242 0.0435181
+1 1 6 0 0.0206909 0.0575562
+1 1 7 0 0.0235596 0.074646
+1 1 8 0 0.0279388 0.0968628
+1 1 9 0 0.0344543 0.126099
+1 1 10 0 0.0437927 0.165283
+1 1 11 0 0.056427 0.216675
+1 1 12 0 0.0718384 0.27832
+1 1 13 0 0.0897217 0.349365
+1 1 14 0 0.109863 0.429199
+1 1 15 0 0.131714 0.515625
+1 1 16 0 0.154785 0.606445
+1 1 17 0 0.177246 0.694824
+1 1 18 0 0.198242 0.776855
+1 1 19 0 0.216675 0.849609
+1 1 20 0 0.227051 0.890137
+1 1 21 0 0.229004 0.897949
+1 1 22 0 0.231201 0.906738
+1 1 23 0 0.233398 0.915039
+1 1 24 0 0.235596 0.923828
+1 1 25 0 0.237915 0.933594
+1 1 26 0 0.240601 0.943848
+1 1 27 0 0.243652 0.955566
+1 1 28 0 0.24707 0.96875
+1 1 29 0 0.250732 0.98291
+1 1 30 0 0.254395 0.998047
+1 1 31 0 0.258301 1
+1 2 0 0.00705719 0.0101624 0.00631714
+1 2 1 0.00702286 0.01091 0.00862122
+1 2 2 0.00686264 0.0127258 0.0127258
+1 2 3 0.0028801 0.0156555 0.0197906
+1 2 4 0 0.0192413 0.0306854
+1 2 5 0 0.021759 0.0433655
+1 2 6 0 0.0236359 0.0574951
+1 2 7 0 0.0260162 0.074646
+1 2 8 0 0.0298462 0.0968018
+1 2 9 0 0.0358582 0.126099
+1 2 10 0 0.0448303 0.165283
+1 2 11 0 0.0571899 0.216675
+1 2 12 0 0.0723877 0.27832
+1 2 13 0 0.0901489 0.349365
+1 2 14 0 0.110168 0.429199
+1 2 15 0 0.131958 0.515625
+1 2 16 0 0.155029 0.606445
+1 2 17 0 0.177368 0.694824
+1 2 18 0 0.198242 0.776855
+1 2 19 0 0.216797 0.849609
+1 2 20 0 0.227051 0.890137
+1 2 21 0 0.229126 0.897949
+1 2 22 0 0.231201 0.906738
+1 2 23 0 0.233398 0.915039
+1 2 24 0 0.235596 0.923828
+1 2 25 0 0.238037 0.933594
+1 2 26 0 0.240723 0.943848
+1 2 27 0 0.243652 0.955566
+1 2 28 0 0.24707 0.969238
+1 2 29 0 0.250732 0.98291
+1 2 30 0 0.254395 0.998047
+1 2 31 0 0.258301 1
+1 3 0 0 0.0172729 0.00766754
+1 3 1 0 0.0174561 0.0103989
+1 3 2 0 0.0183105 0.0142212
+1 3 3 0 0.0204468 0.020462
+1 3 4 0 0.0238342 0.0305786
+1 3 5 0 0.0263519 0.0431519
+1 3 6 0 0.0279846 0.0573425
+1 3 7 0 0.0298157 0.0745239
+1 3 8 0 0.032959 0.0967407
+1 3 9 0 0.038269 0.126099
+1 3 10 0 0.0466614 0.165283
+1 3 11 0 0.0585938 0.216675
+1 3 12 0 0.0734253 0.27832
+1 3 13 0 0.0908813 0.349365
+1 3 14 0 0.110718 0.428955
+1 3 15 0 0.132446 0.515625
+1 3 16 0 0.155273 0.606445
+1 3 17 0 0.177734 0.694824
+1 3 18 0 0.198486 0.776855
+1 3 19 0 0.216919 0.849609
+1 3 20 0 0.227173 0.890137
+1 3 21 0 0.229126 0.897949
+1 3 22 0 0.231323 0.906738
+1 3 23 0 0.233398 0.915039
+1 3 24 0 0.235596 0.923828
+1 3 25 0 0.238037 0.933594
+1 3 26 0 0.240723 0.943848
+1 3 27 0 0.243652 0.955566
+1 3 28 0 0.24707 0.969238
+1 3 29 0 0.250732 0.98291
+1 3 30 0 0.254395 0.998047
+1 3 31 0 0.258301 1
+1 4 0 0 0.027771 0.00680161
+1 4 1 0 0.0276642 0.0112839
+1 4 2 0 0.0278168 0.0158997
+1 4 3 0 0.0287476 0.0219269
+1 4 4 0 0.0307465 0.0307617
+1 4 5 0 0.0328979 0.0427856
+1 4 6 0 0.0343018 0.0570679
+1 4 7 0 0.0355835 0.0744019
+1 4 8 0 0.0379333 0.0966797
+1 4 9 0 0.0423279 0.125977
+1 4 10 0 0.0498657 0.165161
+1 4 11 0 0.0610962 0.216553
+1 4 12 0 0.0753174 0.27832
+1 4 13 0 0.0923462 0.349365
+1 4 14 0 0.111816 0.428955
+1 4 15 0 0.133179 0.515625
+1 4 16 0 0.155884 0.606445
+1 4 17 0 0.178101 0.694824
+1 4 18 0 0.198853 0.776855
+1 4 19 0 0.217285 0.849609
+1 4 20 0 0.227417 0.890137
+1 4 21 0 0.22937 0.897949
+1 4 22 0 0.231445 0.906738
+1 4 23 0 0.233643 0.915039
+1 4 24 0 0.235718 0.923828
+1 4 25 0 0.238159 0.933594
+1 4 26 0 0.240845 0.943848
+1 4 27 0 0.243774 0.955566
+1 4 28 0 0.247192 0.969238
+1 4 29 0 0.250732 0.98291
+1 4 30 0 0.254395 0.998047
+1 4 31 0 0.258301 1
+1 5 0 0 0.0406189 0
+1 5 1 0 0.0405579 0.00717545
+1 5 2 0 0.0405273 0.015152
+1 5 3 0 0.0406189 0.0222931
+1 5 4 0 0.0411377 0.0308838
+1 5 5 0 0.0422668 0.0422668
+1 5 6 0 0.0432739 0.0565491
+1 5 7 0 0.0440369 0.0740356
+1 5 8 0 0.0455627 0.0964966
+1 5 9 0 0.0488892 0.125854
+1 5 10 0 0.0553589 0.165039
+1 5 11 0 0.0655518 0.216431
+1 5 12 0 0.0787964 0.278076
+1 5 13 0 0.0950317 0.349365
+1 5 14 0 0.113892 0.428955
+1 5 15 0 0.134766 0.515625
+1 5 16 0 0.157104 0.606445
+1 5 17 0 0.179077 0.694824
+1 5 18 0 0.199585 0.776855
+1 5 19 0 0.217773 0.849609
+1 5 20 0 0.227905 0.890137
+1 5 21 0 0.229736 0.898438
+1 5 22 0 0.231812 0.906738
+1 5 23 0 0.233887 0.915039
+1 5 24 0 0.235962 0.923828
+1 5 25 0 0.238281 0.933594
+1 5 26 0 0.240967 0.943848
+1 5 27 0 0.243896 0.955566
+1 5 28 0 0.247192 0.969238
+1 5 29 0 0.250732 0.98291
+1 5 30 0 0.254639 0.998047
+1 5 31 0 0.258301 1
+1 6 0 0 0.0545349 0
+1 6 1 0 0.0545349 0
+1 6 2 0 0.0545654 0.00445938
+1 6 3 0 0.0545959 0.0189667
+1 6 4 0 0.054718 0.0292511
+1 6 5 0 0.0550232 0.0410461
+1 6 6 0 0.0554199 0.0554199
+1 6 7 0 0.0557861 0.0733643
+1 6 8 0 0.0565491 0.0960693
+1 6 9 0 0.0588379 0.125488
+1 6 10 0 0.0640869 0.164795
+1 6 11 0 0.0730591 0.216187
+1 6 12 0 0.0849609 0.278076
+1 6 13 0 0.0998535 0.349121
+1 6 14 0 0.117615 0.428955
+1 6 15 0 0.137695 0.515625
+1 6 16 0 0.159302 0.605957
+1 6 17 0 0.180786 0.694824
+1 6 18 0 0.200928 0.776855
+1 6 19 0 0.218872 0.849609
+1 6 20 0 0.22876 0.890137
+1 6 21 0 0.230469 0.898438
+1 6 22 0 0.2323 0.906738
+1 6 23 0 0.234375 0.915527
+1 6 24 0 0.236328 0.923828
+1 6 25 0 0.238647 0.933594
+1 6 26 0 0.241211 0.943848
+1 6 27 0 0.244141 0.955566
+1 6 28 0 0.247437 0.969238
+1 6 29 0 0.250977 0.98291
+1 6 30 0 0.254639 0.998047
+1 6 31 0 0.258545 1
+1 7 0 0 0.0709229 0
+1 7 1 0 0.0709839 0
+1 7 2 0 0.0710449 0
+1 7 3 0 0.071106 0
+1 7 4 0 0.071228 0.0233154
+1 7 5 0 0.0714111 0.0375366
+1 7 6 0 0.0715942 0.053009
+1 7 7 0 0.0717773 0.0717773
+1 7 8 0 0.0720215 0.0951538
+1 7 9 0 0.0733643 0.124939
+1 7 10 0 0.0775146 0.164185
+1 7 11 0 0.085144 0.21582
+1 7 12 0 0.0953369 0.277832
+1 7 13 0 0.108459 0.349121
+1 7 14 0 0.124512 0.428955
+1 7 15 0 0.143066 0.515137
+1 7 16 0 0.163574 0.605957
+1 7 17 0 0.184082 0.694824
+1 7 18 0 0.203491 0.776855
+1 7 19 0 0.220947 0.849609
+1 7 20 0 0.230469 0.890625
+1 7 21 0 0.231812 0.898438
+1 7 22 0 0.233398 0.906738
+1 7 23 0 0.235229 0.915527
+1 7 24 0 0.237183 0.923828
+1 7 25 0 0.23938 0.933594
+1 7 26 0 0.241821 0.944336
+1 7 27 0 0.244629 0.956055
+1 7 28 0 0.247925 0.969238
+1 7 29 0 0.251465 0.983398
+1 7 30 0 0.255127 0.998047
+1 7 31 0 0.258789 1
+1 8 0 0 0.092041 0
+1 8 1 0 0.092041 0
+1 8 2 0 0.0921021 0
+1 8 3 0 0.0921021 0
+1 8 4 0 0.0922241 0
+1 8 5 0 0.0924072 0.0290222
+1 8 6 0 0.0926514 0.0479126
+1 8 7 0 0.0928955 0.0684204
+1 8 8 0 0.0930786 0.0930786
+1 8 9 0 0.093811 0.123718
+1 8 10 0 0.0970459 0.16333
+1 8 11 0 0.103577 0.215088
+1 8 12 0 0.112061 0.277344
+1 8 13 0 0.122986 0.348633
+1 8 14 0 0.136597 0.428711
+1 8 15 0 0.152832 0.515137
+1 8 16 0 0.171387 0.605957
+1 8 17 0 0.190308 0.694824
+1 8 18 0 0.208496 0.776855
+1 8 19 0 0.224976 0.849609
+1 8 20 0 0.233765 0.890625
+1 8 21 0 0.234375 0.898438
+1 8 22 0 0.235596 0.907227
+1 8 23 0 0.237061 0.915527
+1 8 24 0 0.238647 0.924316
+1 8 25 0 0.240723 0.933594
+1 8 26 0 0.243042 0.944336
+1 8 27 0 0.245605 0.956055
+1 8 28 0 0.248779 0.969238
+1 8 29 0 0.252197 0.983398
+1 8 30 0 0.255615 0.998047
+1 8 31 0 0.259277 1
+1 9 0 0 0.119324 0
+1 9 1 0 0.119324 0
+1 9 2 0 0.119385 0
+1 9 3 0 0.119385 0
+1 9 4 0 0.119446 0
+1 9 5 0 0.119568 0
+1 9 6 0 0.119751 0.0366516
+1 9 7 0 0.120056 0.0618286
+1 9 8 0 0.120483 0.0889282
+1 9 9 0 0.121338 0.121399
+1 9 10 0 0.123962 0.161743
+1 9 11 0 0.129761 0.213745
+1 9 12 0 0.136841 0.276367
+1 9 13 0 0.145508 0.348145
+1 9 14 0 0.156372 0.428467
+1 9 15 0 0.169556 0.515137
+1 9 16 0 0.185181 0.605957
+1 9 17 0 0.201538 0.694824
+1 9 18 0 0.217651 0.776855
+1 9 19 0 0.232422 0.849609
+1 9 20 0 0.23999 0.891113
+1 9 21 0 0.23938 0.898926
+1 9 22 0 0.239624 0.907227
+1 9 23 0 0.240479 0.916016
+1 9 24 0 0.241577 0.924316
+1 9 25 0 0.243164 0.934082
+1 9 26 0 0.245117 0.944336
+1 9 27 0 0.247559 0.956055
+1 9 28 0 0.250244 0.969238
+1 9 29 0 0.253418 0.983398
+1 9 30 0 0.256836 0.998047
+1 9 31 0 0.260254 1
+1 10 0 0 0.155273 0
+1 10 1 0 0.155273 0
+1 10 2 0 0.155273 0
+1 10 3 0 0.155273 0
+1 10 4 0 0.155396 0
+1 10 5 0 0.155396 0
+1 10 6 0 0.155396 0
+1 10 7 0 0.155518 0.0487061
+1 10 8 0 0.155884 0.0818481
+1 10 9 0 0.156738 0.117249
+1 10 10 0 0.15918 0.15918
+1 10 11 0 0.164307 0.21167
+1 10 12 0 0.17041 0.274658
+1 10 13 0 0.177246 0.346924
+1 10 14 0 0.185303 0.427734
+1 10 15 0 0.19519 0.514648
+1 10 16 0 0.207031 0.605957
+1 10 17 0 0.219849 0.694824
+1 10 18 0 0.23291 0.777344
+1 10 19 0 0.245239 0.850098
+1 10 20 0 0.250732 0.89209
+1 10 21 0 0.247925 0.899902
+1 10 22 0 0.246704 0.908203
+1 10 23 0 0.24646 0.916504
+1 10 24 0 0.246826 0.924805
+1 10 25 0 0.247681 0.93457
+1 10 26 0 0.249023 0.944824
+1 10 27 0 0.250732 0.956543
+1 10 28 0 0.253174 0.969727
+1 10 29 0 0.255859 0.983887
+1 10 30 0 0.259033 0.998535
+1 10 31 0 0.262207 1
+1 11 0 0 0.202759 0
+1 11 1 0 0.202759 0
+1 11 2 0 0.202759 0
+1 11 3 0 0.202881 0
+1 11 4 0 0.202881 0
+1 11 5 0 0.203003 0
+1 11 6 0 0.203003 0
+1 11 7 0 0.202881 0
+1 11 8 0 0.202881 0.0678101
+1 11 9 0 0.203247 0.110474
+1 11 10 0 0.204956 0.155518
+1 11 11 0 0.208618 0.208618
+1 11 12 0 0.213501 0.271973
+1 11 13 0 0.218994 0.344971
+1 11 14 0 0.224731 0.426514
+1 11 15 0 0.231201 0.51416
+1 11 16 0 0.239258 0.605957
+1 11 17 0 0.247803 0.694824
+1 11 18 0 0.256836 0.777344
+1 11 19 0 0.265625 0.850586
+1 11 20 0 0.268066 0.893555
+1 11 21 0 0.262207 0.900879
+1 11 22 0 0.258545 0.90918
+1 11 23 0 0.256592 0.91748
+1 11 24 0 0.255615 0.925781
+1 11 25 0 0.255371 0.935059
+1 11 26 0 0.255615 0.945312
+1 11 27 0 0.256592 0.957031
+1 11 28 0 0.258057 0.970215
+1 11 29 0 0.260254 0.984375
+1 11 30 0 0.262695 0.999023
+1 11 31 0 0.265381 1
+1 12 0 0 0.261475 0
+1 12 1 0 0.261475 0
+1 12 2 0 0.261475 0
+1 12 3 0 0.261719 0
+1 12 4 0 0.261719 0
+1 12 5 0 0.261719 0
+1 12 6 0 0.261719 0
+1 12 7 0 0.261963 0
+1 12 8 0 0.261963 0
+1 12 9 0 0.261963 0.0949097
+1 12 10 0 0.262695 0.147583
+1 12 11 0 0.264404 0.203491
+1 12 12 0 0.267822 0.267822
+1 12 13 0 0.271729 0.341797
+1 12 14 0 0.275635 0.424072
+1 12 15 0 0.279297 0.512695
+1 12 16 0 0.283447 0.60498
+1 12 17 0 0.287598 0.694824
+1 12 18 0 0.291992 0.777344
+1 12 19 0 0.296387 0.850586
+1 12 20 0 0.294922 0.895996
+1 12 21 0 0.284668 0.90332
+1 12 22 0 0.277588 0.911133
+1 12 23 0 0.272949 0.918945
+1 12 24 0 0.269775 0.927246
+1 12 25 0 0.267578 0.936523
+1 12 26 0 0.266357 0.946777
+1 12 27 0 0.265869 0.958008
+1 12 28 0 0.266357 0.971191
+1 12 29 0 0.267334 0.984863
+1 12 30 0 0.268799 0.999512
+1 12 31 0 0.270752 1
+1 13 0 0 0.329834 0
+1 13 1 0 0.329834 0
+1 13 2 0 0.329834 0
+1 13 3 0 0.329834 0
+1 13 4 0 0.329834 0
+1 13 5 0 0.329834 0
+1 13 6 0 0.329834 0
+1 13 7 0 0.330078 0
+1 13 8 0 0.330078 0
+1 13 9 0 0.330322 0.0458679
+1 13 10 0 0.330811 0.129395
+1 13 11 0 0.331543 0.192871
+1 13 12 0 0.333252 0.260498
+1 13 13 0 0.335938 0.335938
+1 13 14 0 0.338135 0.419922
+1 13 15 0 0.339355 0.509766
+1 13 16 0 0.340088 0.603516
+1 13 17 0 0.339844 0.694336
+1 13 18 0 0.339355 0.777832
+1 13 19 0 0.338867 0.851562
+1 13 20 0 0.333252 0.899902
+1 13 21 0 0.317139 0.906738
+1 13 22 0 0.30542 0.914062
+1 13 23 0 0.297119 0.921875
+1 13 24 0 0.29126 0.930176
+1 13 25 0 0.286621 0.938965
+1 13 26 0 0.282959 0.94873
+1 13 27 0 0.280518 0.959961
+1 13 28 0 0.279053 0.972656
+1 13 29 0 0.278564 0.986328
+1 13 30 0 0.278564 1
+1 13 31 0 0.279297 1
+1 14 0 0 0.406982 0
+1 14 1 0 0.406982 0
+1 14 2 0 0.406982 0
+1 14 3 0 0.406982 0
+1 14 4 0 0.406982 0
+1 14 5 0 0.406982 0
+1 14 6 0 0.406982 0
+1 14 7 0 0.406982 0
+1 14 8 0 0.407227 0
+1 14 9 0 0.407471 0
+1 14 10 0 0.408203 0.0844727
+1 14 11 0 0.408936 0.171509
+1 14 12 0 0.409912 0.246826
+1 14 13 0 0.411377 0.325928
+1 14 14 0 0.412109 0.412354
+1 14 15 0 0.411865 0.504395
+1 14 16 0 0.409668 0.600098
+1 14 17 0 0.405518 0.692871
+1 14 18 0 0.400146 0.777344
+1 14 19 0 0.394775 0.852051
+1 14 20 0 0.385254 0.904785
+1 14 21 0 0.362061 0.912109
+1 14 22 0 0.344482 0.919434
+1 14 23 0 0.331787 0.926758
+1 14 24 0 0.322021 0.934082
+1 14 25 0 0.313965 0.942871
+1 14 26 0 0.307373 0.952637
+1 14 27 0 0.302246 0.963379
+1 14 28 0 0.298096 0.975586
+1 14 29 0 0.29541 0.98877
+1 14 30 0 0.293457 1
+1 14 31 0 0.292236 1
+1 15 0 0 0.490967 0
+1 15 1 0 0.490967 0
+1 15 2 0 0.490967 0
+1 15 3 0 0.490967 0
+1 15 4 0 0.490967 0
+1 15 5 0 0.490967 0
+1 15 6 0 0.491211 0
+1 15 7 0 0.491211 0
+1 15 8 0 0.491211 0
+1 15 9 0 0.491699 0
+1 15 10 0 0.492188 0
+1 15 11 0 0.493164 0.127686
+1 15 12 0 0.494385 0.22229
+1 15 13 0 0.495605 0.308838
+1 15 14 0 0.496094 0.399414
+1 15 15 0 0.494873 0.494873
+1 15 16 0 0.490967 0.59375
+1 15 17 0 0.483643 0.688965
+1 15 18 0 0.474121 0.775391
+1 15 19 0 0.463623 0.851562
+1 15 20 0 0.450928 0.911133
+1 15 21 0 0.420166 0.919434
+1 15 22 0 0.39624 0.926758
+1 15 23 0 0.37793 0.934082
+1 15 24 0 0.36377 0.941406
+1 15 25 0 0.351562 0.949219
+1 15 26 0 0.341064 0.958008
+1 15 27 0 0.332031 0.968262
+1 15 28 0 0.324951 0.97998
+1 15 29 0 0.319092 0.992676
+1 15 30 0 0.314453 1
+1 15 31 0 0.310791 1
+1 16 0 0 0.580566 0
+1 16 1 0 0.580566 0
+1 16 2 0 0.580566 0
+1 16 3 0 0.580566 0
+1 16 4 0 0.580566 0
+1 16 5 0 0.580566 0
+1 16 6 0 0.580566 0
+1 16 7 0 0.581055 0
+1 16 8 0 0.581055 0
+1 16 9 0 0.581055 0
+1 16 10 0 0.581543 0
+1 16 11 0 0.583008 0
+1 16 12 0 0.584473 0.178345
+1 16 13 0 0.585938 0.280762
+1 16 14 0 0.586914 0.378418
+1 16 15 0 0.585938 0.47876
+1 16 16 0 0.581543 0.581543
+1 16 17 0 0.572266 0.680664
+1 16 18 0 0.55957 0.770508
+1 16 19 0 0.544922 0.849121
+1 16 20 0 0.529297 0.914062
+1 16 21 0 0.492432 0.928711
+1 16 22 0 0.461426 0.937988
+1 16 23 0 0.437012 0.944824
+1 16 24 0 0.417725 0.95166
+1 16 25 0 0.400391 0.958984
+1 16 26 0 0.385254 0.966797
+1 16 27 0 0.371826 0.976074
+1 16 28 0 0.360596 0.986816
+1 16 29 0 0.351074 0.998535
+1 16 30 0 0.343018 1
+1 16 31 0 0.336182 1
+1 17 0 0 0.669922 0
+1 17 1 0 0.669922 0
+1 17 2 0 0.669922 0
+1 17 3 0 0.669922 0
+1 17 4 0 0.669922 0
+1 17 5 0 0.67041 0
+1 17 6 0 0.67041 0
+1 17 7 0 0.67041 0
+1 17 8 0 0.67041 0
+1 17 9 0 0.67041 0
+1 17 10 0 0.670898 0
+1 17 11 0 0.671875 0
+1 17 12 0 0.673828 0.0739746
+1 17 13 0 0.67627 0.237183
+1 17 14 0 0.678223 0.347412
+1 17 15 0 0.678223 0.454102
+1 17 16 0 0.674316 0.562012
+1 17 17 0 0.665527 0.666016
+1 17 18 0 0.651367 0.760742
+1 17 19 0 0.633789 0.843262
+1 17 20 0 0.614258 0.910645
+1 17 21 0 0.576172 0.937988
+1 17 22 0 0.539062 0.951172
+1 17 23 0 0.508301 0.959961
+1 17 24 0 0.483154 0.966309
+1 17 25 0 0.460205 0.973145
+1 17 26 0 0.439697 0.97998
+1 17 27 0 0.421143 0.987793
+1 17 28 0 0.405273 0.99707
+1 17 29 0 0.391113 1
+1 17 30 0 0.378906 1
+1 17 31 0 0.368408 1
+1 18 0 0 0.754395 0
+1 18 1 0 0.754395 0
+1 18 2 0 0.754395 0
+1 18 3 0 0.754395 0
+1 18 4 0 0.754395 0
+1 18 5 0 0.754395 0
+1 18 6 0 0.754395 0
+1 18 7 0 0.754395 0
+1 18 8 0 0.754395 0
+1 18 9 0 0.754395 0
+1 18 10 0 0.754883 0
+1 18 11 0 0.755371 0
+1 18 12 0 0.757812 0
+1 18 13 0 0.760254 0.165771
+1 18 14 0 0.763672 0.304443
+1 18 15 0 0.765137 0.42041
+1 18 16 0 0.763672 0.53418
+1 18 17 0 0.756836 0.643555
+1 18 18 0 0.743652 0.743652
+1 18 19 0 0.725098 0.831055
+1 18 20 0 0.703125 0.90332
+1 18 21 0 0.666016 0.943848
+1 18 22 0 0.625488 0.965332
+1 18 23 0 0.589844 0.977051
+1 18 24 0 0.559082 0.984863
+1 18 25 0 0.529785 0.991699
+1 18 26 0 0.503418 0.997559
+1 18 27 0 0.479248 1
+1 18 28 0 0.457764 1
+1 18 29 0 0.438477 1
+1 18 30 0 0.421631 1
+1 18 31 0 0.406738 1
+1 19 0 0 0.830566 0
+1 19 1 0 0.830566 0
+1 19 2 0 0.830566 0
+1 19 3 0 0.830566 0
+1 19 4 0 0.830566 0
+1 19 5 0 0.830566 0
+1 19 6 0 0.830566 0
+1 19 7 0 0.830566 0
+1 19 8 0 0.830566 0
+1 19 9 0 0.831055 0
+1 19 10 0 0.831055 0
+1 19 11 0 0.831055 0
+1 19 12 0 0.833008 0
+1 19 13 0 0.835938 0
+1 19 14 0 0.839844 0.246582
+1 19 15 0 0.843262 0.378662
+1 19 16 0 0.844238 0.499268
+1 19 17 0 0.840332 0.61377
+1 19 18 0 0.82959 0.719727
+1 19 19 0 0.812012 0.8125
+1 19 20 0 0.789551 0.88916
+1 19 21 0 0.756348 0.943359
+1 19 22 0 0.716309 0.975586
+1 19 23 0 0.676758 0.994141
+1 19 24 0 0.641113 1
+1 19 25 0 0.606934 1
+1 19 26 0 0.574219 1
+1 19 27 0 0.543945 1
+1 19 28 0 0.516602 1
+1 19 29 0 0.491699 1
+1 19 30 0 0.469482 1
+1 19 31 0 0.449707 1
+1 20 0 0 0.896973 0
+1 20 1 0 0.896973 0
+1 20 2 0 0.896973 0
+1 20 3 0 0.896973 0
+1 20 4 0 0.896973 0
+1 20 5 0 0.896973 0
+1 20 6 0 0.896973 0
+1 20 7 0 0.896973 0
+1 20 8 0 0.896973 0
+1 20 9 0 0.896973 0
+1 20 10 0 0.896973 0
+1 20 11 0 0.897461 0
+1 20 12 0 0.897949 0
+1 20 13 0 0.901367 0
+1 20 14 0 0.905762 0.160645
+1 20 15 0 0.910645 0.329346
+1 20 16 0 0.913574 0.458984
+1 20 17 0 0.912598 0.579102
+1 20 18 0 0.905273 0.689453
+1 20 19 0 0.890137 0.787109
+1 20 20 0 0.869141 0.869141
+1 20 21 0 0.840332 0.93457
+1 20 22 0 0.803711 0.979004
+1 20 23 0 0.763672 1
+1 20 24 0 0.725586 1
+1 20 25 0 0.687012 1
+1 20 26 0 0.648926 1
+1 20 27 0 0.612793 1
+1 20 28 0 0.579102 1
+1 20 29 0 0.548828 1
+1 20 30 0 0.520996 1
+1 20 31 0 0.496338 1
+1 21 0 0 0.953613 0
+1 21 1 0 0.953613 0
+1 21 2 0 0.953613 0
+1 21 3 0 0.953613 0
+1 21 4 0 0.953613 0
+1 21 5 0 0.953613 0
+1 21 6 0 0.953613 0
+1 21 7 0 0.953613 0
+1 21 8 0 0.953613 0
+1 21 9 0 0.953613 0
+1 21 10 0 0.953613 0
+1 21 11 0 0.954102 0
+1 21 12 0 0.954102 0
+1 21 13 0 0.957031 0
+1 21 14 0 0.961914 0
+1 21 15 0 0.967285 0.268555
+1 21 16 0 0.972168 0.413574
+1 21 17 0 0.974121 0.539062
+1 21 18 0 0.970215 0.653809
+1 21 19 0 0.958984 0.755859
+1 21 20 0 0.94043 0.843262
+1 21 21 0 0.915527 0.916016
+1 21 22 0 0.883789 0.97168
+1 21 23 0 0.847168 1
+1 21 24 0 0.808594 1
+1 21 25 0 0.767578 1
+1 21 26 0 0.725586 1
+1 21 27 0 0.68457 1
+1 21 28 0 0.645508 1
+1 21 29 0 0.609375 1
+1 21 30 0 0.576172 1
+1 21 31 0 0.546387 1
+1 22 0 0 1 0
+1 22 1 0 1 0
+1 22 2 0 1 0
+1 22 3 0 1 0
+1 22 4 0 1 0
+1 22 5 0 1 0
+1 22 6 0 1 0
+1 22 7 0 1 0
+1 22 8 0 1 0
+1 22 9 0 1 0
+1 22 10 0 1 0
+1 22 11 0 1 0
+1 22 12 0 1 0
+1 22 13 0 1 0
+1 22 14 0 1 0
+1 22 15 0 1 0.187134
+1 22 16 0 1 0.363037
+1 22 17 0 1 0.49585
+1 22 18 0 1 0.614258
+1 22 19 0 1 0.720215
+1 22 20 0 1 0.811523
+1 22 21 0 0.97998 0.889648
+1 22 22 0 0.953125 0.953125
+1 22 23 0 0.920898 1
+1 22 24 0 0.885254 1
+1 22 25 0 0.844238 1
+1 22 26 0 0.800781 1
+1 22 27 0 0.756348 1
+1 22 28 0 0.712891 1
+1 22 29 0 0.671875 1
+1 22 30 0 0.633301 1
+1 22 31 0 0.598145 1
+1 23 0 0 1 0
+1 23 1 0 1 0
+1 23 2 0 1 0
+1 23 3 0 1 0
+1 23 4 0 1 0
+1 23 5 0 1 0
+1 23 6 0 1 0
+1 23 7 0 1 0
+1 23 8 0 1 0
+1 23 9 0 1 0
+1 23 10 0 1 0
+1 23 11 0 1 0
+1 23 12 0 1 0
+1 23 13 0 1 0
+1 23 14 0 1 0
+1 23 15 0 1 0
+1 23 16 0 1 0.30835
+1 23 17 0 1 0.451416
+1 23 18 0 1 0.57373
+1 23 19 0 1 0.682617
+1 23 20 0 1 0.777344
+1 23 21 0 1 0.859375
+1 23 22 0 1 0.927734
+1 23 23 0 0.981445 0.981934
+1 23 24 0 0.950195 1
+1 23 25 0 0.912109 1
+1 23 26 0 0.869141 1
+1 23 27 0 0.823242 1
+1 23 28 0 0.776855 1
+1 23 29 0 0.731934 1
+1 23 30 0 0.688965 1
+1 23 31 0 0.648926 1
+1 24 0 0 1 0
+1 24 1 0 1 0
+1 24 2 0 1 0
+1 24 3 0 1 0
+1 24 4 0 1 0
+1 24 5 0 1 0
+1 24 6 0 1 0
+1 24 7 0 1 0
+1 24 8 0 1 0
+1 24 9 0 1 0
+1 24 10 0 1 0
+1 24 11 0 1 0
+1 24 12 0 1 0
+1 24 13 0 1 0
+1 24 14 0 1 0
+1 24 15 0 1 0
+1 24 16 0 1 0.24585
+1 24 17 0 1 0.406006
+1 24 18 0 1 0.532715
+1 24 19 0 1 0.644531
+1 24 20 0 1 0.741699
+1 24 21 0 1 0.827148
+1 24 22 0 1 0.899414
+1 24 23 0 1 0.95752
+1 24 24 0 1 1
+1 24 25 0 0.970215 1
+1 24 26 0 0.929688 1
+1 24 27 0 0.884277 1
+1 24 28 0 0.836914 1
+1 24 29 0 0.789062 1
+1 24 30 0 0.742676 1
+1 24 31 0 0.69873 1
+1 25 0 0 1 0
+1 25 1 0 1 0
+1 25 2 0 1 0
+1 25 3 0 1 0
+1 25 4 0 1 0
+1 25 5 0 1 0
+1 25 6 0 1 0
+1 25 7 0 1 0
+1 25 8 0 1 0
+1 25 9 0 1 0
+1 25 10 0 1 0
+1 25 11 0 1 0
+1 25 12 0 1 0
+1 25 13 0 1 0
+1 25 14 0 1 0
+1 25 15 0 1 0
+1 25 16 0 1 0.151123
+1 25 17 0 1 0.354004
+1 25 18 0 1 0.487549
+1 25 19 0 1 0.601562
+1 25 20 0 1 0.701172
+1 25 21 0 1 0.789062
+1 25 22 0 1 0.865234
+1 25 23 0 1 0.927734
+1 25 24 0 1 0.979004
+1 25 25 0 1 1
+1 25 26 0 0.987305 1
+1 25 27 0 0.944336 1
+1 25 28 0 0.896973 1
+1 25 29 0 0.847656 1
+1 25 30 0 0.798828 1
+1 25 31 0 0.751465 1
+1 26 0 0 1 0
+1 26 1 0 1 0
+1 26 2 0 1 0
+1 26 3 0 1 0
+1 26 4 0 1 0
+1 26 5 0 1 0
+1 26 6 0 1 0
+1 26 7 0 1 0
+1 26 8 0 1 0
+1 26 9 0 1 0
+1 26 10 0 1 0
+1 26 11 0 1 0
+1 26 12 0 1 0
+1 26 13 0 1 0
+1 26 14 0 1 0
+1 26 15 0 1 0
+1 26 16 0 1 0
+1 26 17 0 1 0.291992
+1 26 18 0 1 0.437256
+1 26 19 0 1 0.554199
+1 26 20 0 1 0.655762
+1 26 21 0 1 0.746094
+1 26 22 0 1 0.825195
+1 26 23 0 1 0.891602
+1 26 24 0 1 0.946777
+1 26 25 0 1 0.99707
+1 26 26 0 1 1
+1 26 27 0 1 1
+1 26 28 0 0.956055 1
+1 26 29 0 0.906738 1
+1 26 30 0 0.856445 1
+1 26 31 0 0.806152 1
+1 27 0 0 1 0
+1 27 1 0 1 0
+1 27 2 0 1 0
+1 27 3 0 1 0
+1 27 4 0 1 0
+1 27 5 0 1 0
+1 27 6 0 1 0
+1 27 7 0 1 0
+1 27 8 0 1 0
+1 27 9 0 1 0
+1 27 10 0 1 0
+1 27 11 0 1 0
+1 27 12 0 1 0
+1 27 13 0 1 0
+1 27 14 0 1 0
+1 27 15 0 1 0
+1 27 16 0 1 0
+1 27 17 0 1 0.209595
+1 27 18 0 1 0.380859
+1 27 19 0 1 0.503418
+1 27 20 0 1 0.606445
+1 27 21 0 1 0.69873
+1 27 22 0 1 0.780273
+1 27 23 0 1 0.849609
+1 27 24 0 1 0.908203
+1 27 25 0 1 0.962891
+1 27 26 0 1 1
+1 27 27 0 1 1
+1 27 28 0 1 1
+1 27 29 0 0.964355 1
+1 27 30 0 0.913574 1
+1 27 31 0 0.862305 1
+1 28 0 0 1 0
+1 28 1 0 1 0
+1 28 2 0 1 0
+1 28 3 0 1 0
+1 28 4 0 1 0
+1 28 5 0 1 0
+1 28 6 0 1 0
+1 28 7 0 1 0
+1 28 8 0 1 0
+1 28 9 0 1 0
+1 28 10 0 1 0
+1 28 11 0 1 0
+1 28 12 0 1 0
+1 28 13 0 1 0
+1 28 14 0 1 0
+1 28 15 0 1 0
+1 28 16 0 1 0
+1 28 17 0 1 0
+1 28 18 0 1 0.315674
+1 28 19 0 1 0.44751
+1 28 20 0 1 0.553711
+1 28 21 0 1 0.647461
+1 28 22 0 1 0.730469
+1 28 23 0 1 0.802246
+1 28 24 0 1 0.86377
+1 28 25 0 1 0.921875
+1 28 26 0 1 0.975586
+1 28 27 0 1 1
+1 28 28 0 1 1
+1 28 29 0 1 1
+1 28 30 0 0.969727 1
+1 28 31 0 0.918457 1
+1 29 0 0 1 0
+1 29 1 0 1 0
+1 29 2 0 1 0
+1 29 3 0 1 0
+1 29 4 0 1 0
+1 29 5 0 1 0
+1 29 6 0 1 0
+1 29 7 0 1 0
+1 29 8 0 1 0
+1 29 9 0 1 0
+1 29 10 0 1 0
+1 29 11 0 1 0
+1 29 12 0 1 0
+1 29 13 0 1 0
+1 29 14 0 1 0
+1 29 15 0 1 0
+1 29 16 0 1 0
+1 29 17 0 1 0
+1 29 18 0 1 0.233276
+1 29 19 0 1 0.385742
+1 29 20 0 1 0.496338
+1 29 21 0 1 0.591797
+1 29 22 0 1 0.67627
+1 29 23 0 1 0.749023
+1 29 24 0 1 0.812988
+1 29 25 0 1 0.874023
+1 29 26 0 1 0.931641
+1 29 27 0 1 0.984375
+1 29 28 0 1 1
+1 29 29 0 1 1
+1 29 30 0 1 1
+1 29 31 0 0.974609 1
+1 30 0 0 1 0
+1 30 1 0 1 0
+1 30 2 0 1 0
+1 30 3 0 1 0
+1 30 4 0 1 0
+1 30 5 0 1 0
+1 30 6 0 1 0
+1 30 7 0 1 0
+1 30 8 0 1 0
+1 30 9 0 1 0
+1 30 10 0 1 0
+1 30 11 0 1 0
+1 30 12 0 1 0
+1 30 13 0 1 0
+1 30 14 0 1 0
+1 30 15 0 1 0
+1 30 16 0 1 0
+1 30 17 0 1 0
+1 30 18 0 1 0.0709839
+1 30 19 0 1 0.315186
+1 30 20 0 1 0.43457
+1 30 21 0 1 0.532227
+1 30 22 0 1 0.617676
+1 30 23 0 1 0.691895
+1 30 24 0 1 0.756836
+1 30 25 0 1 0.820312
+1 30 26 0 1 0.880859
+1 30 27 0 1 0.938477
+1 30 28 0 1 0.990234
+1 30 29 0 1 1
+1 30 30 0 1 1
+1 30 31 0 1 1
+1 31 0 0 1 0
+1 31 1 0 1 0
+1 31 2 0 1 0
+1 31 3 0 1 0
+1 31 4 0 1 0
+1 31 5 0 1 0
+1 31 6 0 1 0
+1 31 7 0 1 0
+1 31 8 0 1 0
+1 31 9 0 1 0
+1 31 10 0 1 0
+1 31 11 0 1 0
+1 31 12 0 1 0
+1 31 13 0 1 0
+1 31 14 0 1 0
+1 31 15 0 1 0
+1 31 16 0 1 0
+1 31 17 0 1 0
+1 31 18 0 1 0
+1 31 19 0 1 0.226685
+1 31 20 0 1 0.366699
+1 31 21 0 1 0.469238
+1 31 22 0 1 0.556152
+1 31 23 0 1 0.630859
+1 31 24 0 1 0.696777
+1 31 25 0 1 0.761719
+1 31 26 0 1 0.825195
+1 31 27 0 1 0.88623
+1 31 28 0 1 0.943359
+1 31 29 0 1 0.995117
+1 31 30 0 1 1
+1 31 31 0 1 1
+2 0 0 0.0185852 0.00967407 0.00946808
+2 0 1 0.0172729 0.00918579 0.0116882
+2 0 2 0.0145569 0.00858307 0.0129547
+2 0 3 0.0166016 0.0108109 0.0200348
+2 0 4 0.016861 0.0137024 0.0309296
+2 0 5 0.00436401 0.0162048 0.0435486
+2 0 6 0 0.018692 0.0575867
+2 0 7 0 0.0219727 0.074707
+2 0 8 0 0.0267487 0.0968628
+2 0 9 0 0.0335999 0.126221
+2 0 10 0 0.0431519 0.165283
+2 0 11 0 0.0559692 0.216675
+2 0 12 0 0.0714722 0.27832
+2 0 13 0 0.0894775 0.349365
+2 0 14 0 0.10968 0.429199
+2 0 15 0 0.131592 0.515625
+2 0 16 0 0.154663 0.606445
+2 0 17 0 0.177246 0.694824
+2 0 18 0 0.19812 0.776855
+2 0 19 0 0.216675 0.849609
+2 0 20 0 0.226929 0.890137
+2 0 21 0 0.229004 0.897949
+2 0 22 0 0.231201 0.906738
+2 0 23 0 0.233276 0.915039
+2 0 24 0 0.235474 0.923828
+2 0 25 0 0.237915 0.933594
+2 0 26 0 0.240601 0.943848
+2 0 27 0 0.243652 0.955566
+2 0 28 0 0.24707 0.969238
+2 0 29 0 0.250732 0.98291
+2 0 30 0 0.254395 0.998047
+2 0 31 0 0.258301 1
+2 1 0 0.0148621 0.0102005 0.00791168
+2 1 1 0.0167542 0.0116577 0.0115967
+2 1 2 0.0142059 0.0105286 0.0131149
+2 1 3 0.0157776 0.0128784 0.0200043
+2 1 4 0.0154724 0.015976 0.0307922
+2 1 5 0 0.0184479 0.043457
+2 1 6 0 0.0206451 0.0575562
+2 1 7 0 0.0235291 0.074646
+2 1 8 0 0.0279083 0.0968628
+2 1 9 0 0.0344238 0.126099
+2 1 10 0 0.0437622 0.165283
+2 1 11 0 0.0563965 0.216675
+2 1 12 0 0.0717773 0.27832
+2 1 13 0 0.0897217 0.349365
+2 1 14 0 0.109863 0.429199
+2 1 15 0 0.131714 0.515625
+2 1 16 0 0.154785 0.606445
+2 1 17 0 0.177246 0.694824
+2 1 18 0 0.198242 0.776855
+2 1 19 0 0.216675 0.849609
+2 1 20 0 0.227051 0.890137
+2 1 21 0 0.229004 0.897949
+2 1 22 0 0.231201 0.906738
+2 1 23 0 0.233398 0.915039
+2 1 24 0 0.235596 0.923828
+2 1 25 0 0.237915 0.933594
+2 1 26 0 0.240601 0.943848
+2 1 27 0 0.243652 0.955566
+2 1 28 0 0.24707 0.969238
+2 1 29 0 0.250732 0.98291
+2 1 30 0 0.254395 0.998047
+2 1 31 0 0.258301 1
+2 2 0 0.0131226 0.0121155 0.00748825
+2 2 1 0.0131607 0.0124893 0.00984955
+2 2 2 0.0136261 0.0136261 0.0136261
+2 2 3 0.0142441 0.0159149 0.0201416
+2 2 4 0.0125198 0.0191803 0.0306396
+2 2 5 0 0.0216827 0.0433044
+2 2 6 0 0.0235901 0.0574646
+2 2 7 0 0.0259857 0.074646
+2 2 8 0 0.0298157 0.0968018
+2 2 9 0 0.0358276 0.126099
+2 2 10 0 0.0447998 0.165283
+2 2 11 0 0.0571899 0.216675
+2 2 12 0 0.0723877 0.27832
+2 2 13 0 0.0901489 0.349365
+2 2 14 0 0.110168 0.429199
+2 2 15 0 0.131958 0.515625
+2 2 16 0 0.155029 0.606445
+2 2 17 0 0.177368 0.694824
+2 2 18 0 0.198242 0.776855
+2 2 19 0 0.216797 0.849609
+2 2 20 0 0.227051 0.890137
+2 2 21 0 0.229126 0.897949
+2 2 22 0 0.231201 0.906738
+2 2 23 0 0.233398 0.915039
+2 2 24 0 0.235596 0.923828
+2 2 25 0 0.238037 0.933594
+2 2 26 0 0.240723 0.943848
+2 2 27 0 0.243652 0.955566
+2 2 28 0 0.24707 0.969238
+2 2 29 0 0.250732 0.98291
+2 2 30 0 0.254395 0.998047
+2 2 31 0 0.258301 1
+2 3 0 0.0126495 0.018158 0.00798798
+2 3 1 0.012207 0.01828 0.010849
+2 3 2 0.0115967 0.0189362 0.014679
+2 3 3 0.0101852 0.0207367 0.0207367
+2 3 4 0 0.0238037 0.0305786
+2 3 5 0 0.0262909 0.0430908
+2 3 6 0 0.0279541 0.0573425
+2 3 7 0 0.0297852 0.0745239
+2 3 8 0 0.0329285 0.0968018
+2 3 9 0 0.0382385 0.126099
+2 3 10 0 0.0466309 0.165283
+2 3 11 0 0.0585632 0.216553
+2 3 12 0 0.0734253 0.27832
+2 3 13 0 0.0908813 0.349365
+2 3 14 0 0.110718 0.428955
+2 3 15 0 0.132446 0.515625
+2 3 16 0 0.155273 0.606445
+2 3 17 0 0.177734 0.694824
+2 3 18 0 0.198486 0.776855
+2 3 19 0 0.216919 0.849609
+2 3 20 0 0.227173 0.890137
+2 3 21 0 0.229126 0.897949
+2 3 22 0 0.231323 0.906738
+2 3 23 0 0.233398 0.915039
+2 3 24 0 0.235596 0.923828
+2 3 25 0 0.238037 0.933594
+2 3 26 0 0.240723 0.943848
+2 3 27 0 0.243652 0.955566
+2 3 28 0 0.24707 0.969238
+2 3 29 0 0.250732 0.98291
+2 3 30 0 0.254395 0.998047
+2 3 31 0 0.258301 1
+2 4 0 0 0.0280457 0.00668716
+2 4 1 0 0.0279388 0.0113144
+2 4 2 0 0.0280609 0.0159912
+2 4 3 0 0.0289001 0.0220184
+2 4 4 0 0.0307617 0.0307617
+2 4 5 0 0.0328674 0.0427551
+2 4 6 0 0.0342712 0.0570679
+2 4 7 0 0.035553 0.0744019
+2 4 8 0 0.0379028 0.0966797
+2 4 9 0 0.0422974 0.125977
+2 4 10 0 0.0498352 0.165161
+2 4 11 0 0.0610657 0.216553
+2 4 12 0 0.0753174 0.27832
+2 4 13 0 0.0923462 0.349365
+2 4 14 0 0.111816 0.428955
+2 4 15 0 0.133179 0.515625
+2 4 16 0 0.155884 0.606445
+2 4 17 0 0.178101 0.694824
+2 4 18 0 0.198853 0.776855
+2 4 19 0 0.217285 0.849609
+2 4 20 0 0.227417 0.890137
+2 4 21 0 0.22937 0.897949
+2 4 22 0 0.231445 0.906738
+2 4 23 0 0.233643 0.915039
+2 4 24 0 0.235718 0.923828
+2 4 25 0 0.238159 0.933594
+2 4 26 0 0.240845 0.943848
+2 4 27 0 0.243774 0.955566
+2 4 28 0 0.247192 0.969238
+2 4 29 0 0.250732 0.98291
+2 4 30 0 0.254395 0.998047
+2 4 31 0 0.258301 1
+2 5 0 0 0.0406189 0
+2 5 1 0 0.0405579 0.00694656
+2 5 2 0 0.0404968 0.0150681
+2 5 3 0 0.0406189 0.0222473
+2 5 4 0 0.0411377 0.0308685
+2 5 5 0 0.0422363 0.0422363
+2 5 6 0 0.0432434 0.0565186
+2 5 7 0 0.0440369 0.0740356
+2 5 8 0 0.0455322 0.0964966
+2 5 9 0 0.0488892 0.125854
+2 5 10 0 0.0553284 0.165039
+2 5 11 0 0.0655518 0.216431
+2 5 12 0 0.0787964 0.278076
+2 5 13 0 0.0950317 0.349365
+2 5 14 0 0.113831 0.428955
+2 5 15 0 0.134766 0.515625
+2 5 16 0 0.157104 0.606445
+2 5 17 0 0.179077 0.694824
+2 5 18 0 0.199585 0.776855
+2 5 19 0 0.217773 0.849609
+2 5 20 0 0.227905 0.890137
+2 5 21 0 0.229736 0.898438
+2 5 22 0 0.231812 0.906738
+2 5 23 0 0.233887 0.915039
+2 5 24 0 0.235962 0.923828
+2 5 25 0 0.238281 0.933594
+2 5 26 0 0.240967 0.943848
+2 5 27 0 0.243896 0.955566
+2 5 28 0 0.247314 0.969238
+2 5 29 0 0.250732 0.98291
+2 5 30 0 0.254639 0.998047
+2 5 31 0 0.258301 1
+2 6 0 0 0.0545044 0
+2 6 1 0 0.0545349 0
+2 6 2 0 0.0545349 0.0039444
+2 6 3 0 0.0545654 0.0188904
+2 6 4 0 0.0546875 0.0292206
+2 6 5 0 0.0549927 0.0410156
+2 6 6 0 0.0553894 0.0554199
+2 6 7 0 0.0557556 0.0733643
+2 6 8 0 0.0565491 0.0960693
+2 6 9 0 0.0588379 0.125488
+2 6 10 0 0.0640869 0.164795
+2 6 11 0 0.072998 0.216187
+2 6 12 0 0.0849609 0.278076
+2 6 13 0 0.0998535 0.349121
+2 6 14 0 0.117615 0.428955
+2 6 15 0 0.137695 0.515625
+2 6 16 0 0.159302 0.605957
+2 6 17 0 0.180786 0.694824
+2 6 18 0 0.200928 0.776855
+2 6 19 0 0.218872 0.849609
+2 6 20 0 0.22876 0.890137
+2 6 21 0 0.230469 0.898438
+2 6 22 0 0.2323 0.906738
+2 6 23 0 0.234375 0.915527
+2 6 24 0 0.236328 0.923828
+2 6 25 0 0.238647 0.933594
+2 6 26 0 0.241211 0.943848
+2 6 27 0 0.244141 0.955566
+2 6 28 0 0.247437 0.969238
+2 6 29 0 0.250977 0.983398
+2 6 30 0 0.254639 0.998047
+2 6 31 0 0.258545 1
+2 7 0 0 0.0709229 0
+2 7 1 0 0.0709839 0
+2 7 2 0 0.0710449 0
+2 7 3 0 0.071106 0
+2 7 4 0 0.071228 0.0232697
+2 7 5 0 0.0714111 0.0375061
+2 7 6 0 0.0715942 0.053009
+2 7 7 0 0.0717773 0.0717773
+2 7 8 0 0.0720215 0.0951538
+2 7 9 0 0.0733643 0.124939
+2 7 10 0 0.0774536 0.164185
+2 7 11 0 0.085144 0.21582
+2 7 12 0 0.0953369 0.277832
+2 7 13 0 0.108459 0.349121
+2 7 14 0 0.124512 0.428955
+2 7 15 0 0.143066 0.515137
+2 7 16 0 0.163574 0.605957
+2 7 17 0 0.184082 0.694824
+2 7 18 0 0.203491 0.776855
+2 7 19 0 0.220947 0.849609
+2 7 20 0 0.230469 0.890625
+2 7 21 0 0.231812 0.898438
+2 7 22 0 0.233398 0.906738
+2 7 23 0 0.235229 0.915527
+2 7 24 0 0.237183 0.923828
+2 7 25 0 0.23938 0.933594
+2 7 26 0 0.241821 0.944336
+2 7 27 0 0.244629 0.956055
+2 7 28 0 0.247925 0.969238
+2 7 29 0 0.251465 0.983398
+2 7 30 0 0.255127 0.998047
+2 7 31 0 0.258789 1
+2 8 0 0 0.092041 0
+2 8 1 0 0.092041 0
+2 8 2 0 0.0921021 0
+2 8 3 0 0.0921631 0
+2 8 4 0 0.0922241 0
+2 8 5 0 0.0924072 0.0289764
+2 8 6 0 0.0926514 0.0479126
+2 8 7 0 0.0928955 0.0684204
+2 8 8 0 0.0930176 0.0930786
+2 8 9 0 0.093811 0.123718
+2 8 10 0 0.0969849 0.16333
+2 8 11 0 0.103577 0.215088
+2 8 12 0 0.112061 0.277344
+2 8 13 0 0.122986 0.348633
+2 8 14 0 0.136597 0.428711
+2 8 15 0 0.152832 0.515137
+2 8 16 0 0.171387 0.605957
+2 8 17 0 0.190308 0.694824
+2 8 18 0 0.208496 0.776855
+2 8 19 0 0.224976 0.849609
+2 8 20 0 0.233765 0.890625
+2 8 21 0 0.234375 0.898438
+2 8 22 0 0.235596 0.907227
+2 8 23 0 0.237061 0.915527
+2 8 24 0 0.238647 0.924316
+2 8 25 0 0.240723 0.933594
+2 8 26 0 0.243042 0.944336
+2 8 27 0 0.245605 0.956055
+2 8 28 0 0.248779 0.969238
+2 8 29 0 0.252197 0.983398
+2 8 30 0 0.255615 0.998047
+2 8 31 0 0.259277 1
+2 9 0 0 0.119324 0
+2 9 1 0 0.119324 0
+2 9 2 0 0.119385 0
+2 9 3 0 0.119385 0
+2 9 4 0 0.119446 0
+2 9 5 0 0.119568 0
+2 9 6 0 0.119751 0.0366211
+2 9 7 0 0.120056 0.0617981
+2 9 8 0 0.120483 0.0889282
+2 9 9 0 0.121338 0.121338
+2 9 10 0 0.123962 0.161743
+2 9 11 0 0.129761 0.213745
+2 9 12 0 0.136841 0.276367
+2 9 13 0 0.145508 0.348145
+2 9 14 0 0.156372 0.428467
+2 9 15 0 0.169556 0.515137
+2 9 16 0 0.185181 0.605957
+2 9 17 0 0.201538 0.694824
+2 9 18 0 0.217651 0.776855
+2 9 19 0 0.232422 0.849609
+2 9 20 0 0.23999 0.891113
+2 9 21 0 0.23938 0.898926
+2 9 22 0 0.239624 0.907227
+2 9 23 0 0.240479 0.916016
+2 9 24 0 0.241577 0.924316
+2 9 25 0 0.243164 0.934082
+2 9 26 0 0.245117 0.944336
+2 9 27 0 0.247559 0.956055
+2 9 28 0 0.250244 0.969238
+2 9 29 0 0.253418 0.983398
+2 9 30 0 0.256836 0.998047
+2 9 31 0 0.260254 1
+2 10 0 0 0.155273 0
+2 10 1 0 0.155273 0
+2 10 2 0 0.155273 0
+2 10 3 0 0.155273 0
+2 10 4 0 0.155273 0
+2 10 5 0 0.155396 0
+2 10 6 0 0.155396 0
+2 10 7 0 0.155518 0.0487061
+2 10 8 0 0.155884 0.0817871
+2 10 9 0 0.156738 0.117249
+2 10 10 0 0.15918 0.15918
+2 10 11 0 0.164307 0.21167
+2 10 12 0 0.17041 0.274658
+2 10 13 0 0.177246 0.346924
+2 10 14 0 0.185303 0.427734
+2 10 15 0 0.19519 0.514648
+2 10 16 0 0.207031 0.605957
+2 10 17 0 0.219849 0.694824
+2 10 18 0 0.23291 0.777344
+2 10 19 0 0.245239 0.850098
+2 10 20 0 0.250732 0.89209
+2 10 21 0 0.247925 0.899902
+2 10 22 0 0.246704 0.908203
+2 10 23 0 0.24646 0.916504
+2 10 24 0 0.246826 0.924805
+2 10 25 0 0.247681 0.93457
+2 10 26 0 0.249023 0.944824
+2 10 27 0 0.250732 0.956543
+2 10 28 0 0.253174 0.969727
+2 10 29 0 0.255859 0.983887
+2 10 30 0 0.259033 0.998535
+2 10 31 0 0.262207 1
+2 11 0 0 0.202759 0
+2 11 1 0 0.202759 0
+2 11 2 0 0.202759 0
+2 11 3 0 0.202881 0
+2 11 4 0 0.202881 0
+2 11 5 0 0.202881 0
+2 11 6 0 0.203003 0
+2 11 7 0 0.202881 0
+2 11 8 0 0.202881 0.067749
+2 11 9 0 0.203247 0.110474
+2 11 10 0 0.204956 0.155518
+2 11 11 0 0.208618 0.208618
+2 11 12 0 0.213501 0.271973
+2 11 13 0 0.218994 0.344971
+2 11 14 0 0.224731 0.426514
+2 11 15 0 0.231201 0.51416
+2 11 16 0 0.239258 0.605957
+2 11 17 0 0.247803 0.694824
+2 11 18 0 0.256836 0.777344
+2 11 19 0 0.265625 0.850586
+2 11 20 0 0.268066 0.893555
+2 11 21 0 0.262207 0.900879
+2 11 22 0 0.258545 0.90918
+2 11 23 0 0.256592 0.91748
+2 11 24 0 0.255615 0.925781
+2 11 25 0 0.255371 0.935059
+2 11 26 0 0.255615 0.945801
+2 11 27 0 0.256592 0.957031
+2 11 28 0 0.258057 0.970215
+2 11 29 0 0.260254 0.984375
+2 11 30 0 0.262695 0.999023
+2 11 31 0 0.265381 1
+2 12 0 0 0.261475 0
+2 12 1 0 0.261475 0
+2 12 2 0 0.261475 0
+2 12 3 0 0.261719 0
+2 12 4 0 0.261719 0
+2 12 5 0 0.261719 0
+2 12 6 0 0.261719 0
+2 12 7 0 0.261963 0
+2 12 8 0 0.261963 0
+2 12 9 0 0.261963 0.0949097
+2 12 10 0 0.262695 0.147583
+2 12 11 0 0.264404 0.203369
+2 12 12 0 0.267822 0.267822
+2 12 13 0 0.271729 0.341797
+2 12 14 0 0.275635 0.424072
+2 12 15 0 0.279297 0.512695
+2 12 16 0 0.283447 0.60498
+2 12 17 0 0.287598 0.694824
+2 12 18 0 0.291992 0.777344
+2 12 19 0 0.296387 0.850586
+2 12 20 0 0.294922 0.895996
+2 12 21 0 0.284668 0.90332
+2 12 22 0 0.277588 0.911133
+2 12 23 0 0.272949 0.918945
+2 12 24 0 0.269775 0.927246
+2 12 25 0 0.267578 0.936523
+2 12 26 0 0.266357 0.946777
+2 12 27 0 0.265869 0.958008
+2 12 28 0 0.266357 0.971191
+2 12 29 0 0.267334 0.984863
+2 12 30 0 0.268799 0.999512
+2 12 31 0 0.270752 1
+2 13 0 0 0.329834 0
+2 13 1 0 0.329834 0
+2 13 2 0 0.329834 0
+2 13 3 0 0.329834 0
+2 13 4 0 0.329834 0
+2 13 5 0 0.329834 0
+2 13 6 0 0.329834 0
+2 13 7 0 0.330078 0
+2 13 8 0 0.330078 0
+2 13 9 0 0.330322 0.0458374
+2 13 10 0 0.330811 0.129395
+2 13 11 0 0.331543 0.192871
+2 13 12 0 0.333252 0.260498
+2 13 13 0 0.335938 0.335938
+2 13 14 0 0.338135 0.419922
+2 13 15 0 0.339355 0.509766
+2 13 16 0 0.340088 0.603516
+2 13 17 0 0.339844 0.694336
+2 13 18 0 0.339355 0.777832
+2 13 19 0 0.338867 0.851562
+2 13 20 0 0.333252 0.899902
+2 13 21 0 0.317139 0.906738
+2 13 22 0 0.30542 0.914062
+2 13 23 0 0.297119 0.921875
+2 13 24 0 0.29126 0.930176
+2 13 25 0 0.286621 0.938965
+2 13 26 0 0.282959 0.94873
+2 13 27 0 0.280518 0.959961
+2 13 28 0 0.279053 0.972656
+2 13 29 0 0.278564 0.986328
+2 13 30 0 0.278564 1
+2 13 31 0 0.279297 1
+2 14 0 0 0.406982 0
+2 14 1 0 0.406982 0
+2 14 2 0 0.406982 0
+2 14 3 0 0.406982 0
+2 14 4 0 0.406982 0
+2 14 5 0 0.406982 0
+2 14 6 0 0.406982 0
+2 14 7 0 0.406982 0
+2 14 8 0 0.407227 0
+2 14 9 0 0.407471 0
+2 14 10 0 0.408203 0.0844727
+2 14 11 0 0.408936 0.171509
+2 14 12 0 0.409912 0.246826
+2 14 13 0 0.411377 0.325928
+2 14 14 0 0.412109 0.412354
+2 14 15 0 0.411865 0.504395
+2 14 16 0 0.409668 0.600098
+2 14 17 0 0.405518 0.692871
+2 14 18 0 0.400146 0.777344
+2 14 19 0 0.394775 0.852051
+2 14 20 0 0.385254 0.904785
+2 14 21 0 0.362061 0.912109
+2 14 22 0 0.344482 0.919434
+2 14 23 0 0.331787 0.926758
+2 14 24 0 0.322021 0.93457
+2 14 25 0 0.313965 0.942871
+2 14 26 0 0.307373 0.952637
+2 14 27 0 0.302246 0.963379
+2 14 28 0 0.298096 0.975586
+2 14 29 0 0.29541 0.98877
+2 14 30 0 0.293457 1
+2 14 31 0 0.292236 1
+2 15 0 0 0.490967 0
+2 15 1 0 0.490967 0
+2 15 2 0 0.490967 0
+2 15 3 0 0.490967 0
+2 15 4 0 0.490967 0
+2 15 5 0 0.490967 0
+2 15 6 0 0.491211 0
+2 15 7 0 0.491211 0
+2 15 8 0 0.491211 0
+2 15 9 0 0.491699 0
+2 15 10 0 0.492188 0
+2 15 11 0 0.493164 0.127686
+2 15 12 0 0.494385 0.22229
+2 15 13 0 0.495605 0.308838
+2 15 14 0 0.496094 0.399414
+2 15 15 0 0.494873 0.494873
+2 15 16 0 0.490967 0.59375
+2 15 17 0 0.483643 0.688965
+2 15 18 0 0.474121 0.775391
+2 15 19 0 0.463623 0.851562
+2 15 20 0 0.450928 0.911133
+2 15 21 0 0.420166 0.919434
+2 15 22 0 0.39624 0.926758
+2 15 23 0 0.37793 0.934082
+2 15 24 0 0.36377 0.941406
+2 15 25 0 0.351562 0.949219
+2 15 26 0 0.341064 0.958008
+2 15 27 0 0.332031 0.968262
+2 15 28 0 0.324951 0.97998
+2 15 29 0 0.319092 0.992676
+2 15 30 0 0.314453 1
+2 15 31 0 0.310791 1
+2 16 0 0 0.580566 0
+2 16 1 0 0.580566 0
+2 16 2 0 0.580566 0
+2 16 3 0 0.580566 0
+2 16 4 0 0.580566 0
+2 16 5 0 0.580566 0
+2 16 6 0 0.580566 0
+2 16 7 0 0.581055 0
+2 16 8 0 0.581055 0
+2 16 9 0 0.581055 0
+2 16 10 0 0.581543 0
+2 16 11 0 0.583008 0
+2 16 12 0 0.584473 0.178345
+2 16 13 0 0.585938 0.280762
+2 16 14 0 0.586914 0.378418
+2 16 15 0 0.585938 0.47876
+2 16 16 0 0.581543 0.581543
+2 16 17 0 0.572266 0.680664
+2 16 18 0 0.55957 0.770508
+2 16 19 0 0.544922 0.849121
+2 16 20 0 0.529297 0.914062
+2 16 21 0 0.492432 0.928711
+2 16 22 0 0.461426 0.937988
+2 16 23 0 0.437012 0.944824
+2 16 24 0 0.417725 0.95166
+2 16 25 0 0.400391 0.958984
+2 16 26 0 0.385254 0.966797
+2 16 27 0 0.371826 0.976074
+2 16 28 0 0.360596 0.986816
+2 16 29 0 0.351074 0.998535
+2 16 30 0 0.343018 1
+2 16 31 0 0.336182 1
+2 17 0 0 0.669922 0
+2 17 1 0 0.669922 0
+2 17 2 0 0.669922 0
+2 17 3 0 0.669922 0
+2 17 4 0 0.669922 0
+2 17 5 0 0.67041 0
+2 17 6 0 0.67041 0
+2 17 7 0 0.67041 0
+2 17 8 0 0.67041 0
+2 17 9 0 0.67041 0
+2 17 10 0 0.670898 0
+2 17 11 0 0.671875 0
+2 17 12 0 0.673828 0.0739746
+2 17 13 0 0.67627 0.237183
+2 17 14 0 0.678223 0.347412
+2 17 15 0 0.678223 0.454102
+2 17 16 0 0.674316 0.562012
+2 17 17 0 0.665527 0.666016
+2 17 18 0 0.651367 0.760742
+2 17 19 0 0.633789 0.843262
+2 17 20 0 0.614258 0.910645
+2 17 21 0 0.576172 0.937988
+2 17 22 0 0.539062 0.951172
+2 17 23 0 0.508301 0.959961
+2 17 24 0 0.483154 0.966309
+2 17 25 0 0.460205 0.973145
+2 17 26 0 0.439697 0.97998
+2 17 27 0 0.421143 0.987793
+2 17 28 0 0.405273 0.99707
+2 17 29 0 0.391113 1
+2 17 30 0 0.378906 1
+2 17 31 0 0.368408 1
+2 18 0 0 0.754395 0
+2 18 1 0 0.754395 0
+2 18 2 0 0.754395 0
+2 18 3 0 0.754395 0
+2 18 4 0 0.754395 0
+2 18 5 0 0.754395 0
+2 18 6 0 0.754395 0
+2 18 7 0 0.754395 0
+2 18 8 0 0.754395 0
+2 18 9 0 0.754395 0
+2 18 10 0 0.754883 0
+2 18 11 0 0.755371 0
+2 18 12 0 0.757812 0
+2 18 13 0 0.760254 0.165771
+2 18 14 0 0.763672 0.304443
+2 18 15 0 0.765137 0.42041
+2 18 16 0 0.763672 0.53418
+2 18 17 0 0.756836 0.643555
+2 18 18 0 0.743652 0.743652
+2 18 19 0 0.725098 0.831055
+2 18 20 0 0.703125 0.90332
+2 18 21 0 0.666016 0.943848
+2 18 22 0 0.625488 0.965332
+2 18 23 0 0.589844 0.977051
+2 18 24 0 0.559082 0.984863
+2 18 25 0 0.529785 0.991699
+2 18 26 0 0.503418 0.997559
+2 18 27 0 0.479248 1
+2 18 28 0 0.457764 1
+2 18 29 0 0.438477 1
+2 18 30 0 0.421631 1
+2 18 31 0 0.406738 1
+2 19 0 0 0.830566 0
+2 19 1 0 0.830566 0
+2 19 2 0 0.830566 0
+2 19 3 0 0.830566 0
+2 19 4 0 0.830566 0
+2 19 5 0 0.830566 0
+2 19 6 0 0.830566 0
+2 19 7 0 0.830566 0
+2 19 8 0 0.830566 0
+2 19 9 0 0.831055 0
+2 19 10 0 0.831055 0
+2 19 11 0 0.831055 0
+2 19 12 0 0.833008 0
+2 19 13 0 0.835938 0
+2 19 14 0 0.839844 0.246582
+2 19 15 0 0.843262 0.378662
+2 19 16 0 0.844238 0.499268
+2 19 17 0 0.840332 0.61377
+2 19 18 0 0.82959 0.719727
+2 19 19 0 0.812012 0.8125
+2 19 20 0 0.789551 0.88916
+2 19 21 0 0.756348 0.943359
+2 19 22 0 0.716309 0.975586
+2 19 23 0 0.676758 0.994141
+2 19 24 0 0.641113 1
+2 19 25 0 0.606934 1
+2 19 26 0 0.574219 1
+2 19 27 0 0.543945 1
+2 19 28 0 0.516602 1
+2 19 29 0 0.491699 1
+2 19 30 0 0.469482 1
+2 19 31 0 0.449707 1
+2 20 0 0 0.896973 0
+2 20 1 0 0.896973 0
+2 20 2 0 0.896973 0
+2 20 3 0 0.896973 0
+2 20 4 0 0.896973 0
+2 20 5 0 0.896973 0
+2 20 6 0 0.896973 0
+2 20 7 0 0.896973 0
+2 20 8 0 0.896973 0
+2 20 9 0 0.896973 0
+2 20 10 0 0.896973 0
+2 20 11 0 0.897461 0
+2 20 12 0 0.897949 0
+2 20 13 0 0.901367 0
+2 20 14 0 0.905762 0.160645
+2 20 15 0 0.910645 0.329346
+2 20 16 0 0.913574 0.458984
+2 20 17 0 0.912598 0.579102
+2 20 18 0 0.905273 0.689453
+2 20 19 0 0.890137 0.787109
+2 20 20 0 0.869141 0.869141
+2 20 21 0 0.840332 0.93457
+2 20 22 0 0.803711 0.979004
+2 20 23 0 0.763672 1
+2 20 24 0 0.725586 1
+2 20 25 0 0.687012 1
+2 20 26 0 0.648926 1
+2 20 27 0 0.612793 1
+2 20 28 0 0.579102 1
+2 20 29 0 0.548828 1
+2 20 30 0 0.520996 1
+2 20 31 0 0.496338 1
+2 21 0 0 0.953613 0
+2 21 1 0 0.953613 0
+2 21 2 0 0.953613 0
+2 21 3 0 0.953613 0
+2 21 4 0 0.953613 0
+2 21 5 0 0.953613 0
+2 21 6 0 0.953613 0
+2 21 7 0 0.953613 0
+2 21 8 0 0.953613 0
+2 21 9 0 0.953613 0
+2 21 10 0 0.953613 0
+2 21 11 0 0.954102 0
+2 21 12 0 0.954102 0
+2 21 13 0 0.957031 0
+2 21 14 0 0.961914 0
+2 21 15 0 0.967285 0.268555
+2 21 16 0 0.972168 0.413574
+2 21 17 0 0.974121 0.539062
+2 21 18 0 0.970215 0.653809
+2 21 19 0 0.958984 0.755859
+2 21 20 0 0.94043 0.843262
+2 21 21 0 0.915527 0.916016
+2 21 22 0 0.883789 0.97168
+2 21 23 0 0.847168 1
+2 21 24 0 0.808594 1
+2 21 25 0 0.767578 1
+2 21 26 0 0.725586 1
+2 21 27 0 0.68457 1
+2 21 28 0 0.645508 1
+2 21 29 0 0.609375 1
+2 21 30 0 0.576172 1
+2 21 31 0 0.546387 1
+2 22 0 0 1 0
+2 22 1 0 1 0
+2 22 2 0 1 0
+2 22 3 0 1 0
+2 22 4 0 1 0
+2 22 5 0 1 0
+2 22 6 0 1 0
+2 22 7 0 1 0
+2 22 8 0 1 0
+2 22 9 0 1 0
+2 22 10 0 1 0
+2 22 11 0 1 0
+2 22 12 0 1 0
+2 22 13 0 1 0
+2 22 14 0 1 0
+2 22 15 0 1 0.187134
+2 22 16 0 1 0.363037
+2 22 17 0 1 0.49585
+2 22 18 0 1 0.614258
+2 22 19 0 1 0.720215
+2 22 20 0 1 0.811523
+2 22 21 0 0.97998 0.889648
+2 22 22 0 0.953125 0.953125
+2 22 23 0 0.920898 1
+2 22 24 0 0.885254 1
+2 22 25 0 0.844238 1
+2 22 26 0 0.800781 1
+2 22 27 0 0.756348 1
+2 22 28 0 0.712891 1
+2 22 29 0 0.671875 1
+2 22 30 0 0.633301 1
+2 22 31 0 0.598145 1
+2 23 0 0 1 0
+2 23 1 0 1 0
+2 23 2 0 1 0
+2 23 3 0 1 0
+2 23 4 0 1 0
+2 23 5 0 1 0
+2 23 6 0 1 0
+2 23 7 0 1 0
+2 23 8 0 1 0
+2 23 9 0 1 0
+2 23 10 0 1 0
+2 23 11 0 1 0
+2 23 12 0 1 0
+2 23 13 0 1 0
+2 23 14 0 1 0
+2 23 15 0 1 0
+2 23 16 0 1 0.30835
+2 23 17 0 1 0.451416
+2 23 18 0 1 0.57373
+2 23 19 0 1 0.682617
+2 23 20 0 1 0.777344
+2 23 21 0 1 0.859375
+2 23 22 0 1 0.927734
+2 23 23 0 0.981445 0.981934
+2 23 24 0 0.950195 1
+2 23 25 0 0.912109 1
+2 23 26 0 0.869141 1
+2 23 27 0 0.823242 1
+2 23 28 0 0.776855 1
+2 23 29 0 0.731934 1
+2 23 30 0 0.688965 1
+2 23 31 0 0.648926 1
+2 24 0 0 1 0
+2 24 1 0 1 0
+2 24 2 0 1 0
+2 24 3 0 1 0
+2 24 4 0 1 0
+2 24 5 0 1 0
+2 24 6 0 1 0
+2 24 7 0 1 0
+2 24 8 0 1 0
+2 24 9 0 1 0
+2 24 10 0 1 0
+2 24 11 0 1 0
+2 24 12 0 1 0
+2 24 13 0 1 0
+2 24 14 0 1 0
+2 24 15 0 1 0
+2 24 16 0 1 0.24585
+2 24 17 0 1 0.406006
+2 24 18 0 1 0.532715
+2 24 19 0 1 0.644531
+2 24 20 0 1 0.741699
+2 24 21 0 1 0.827148
+2 24 22 0 1 0.899414
+2 24 23 0 1 0.95752
+2 24 24 0 1 1
+2 24 25 0 0.970215 1
+2 24 26 0 0.929688 1
+2 24 27 0 0.884277 1
+2 24 28 0 0.836914 1
+2 24 29 0 0.789062 1
+2 24 30 0 0.742676 1
+2 24 31 0 0.69873 1
+2 25 0 0 1 0
+2 25 1 0 1 0
+2 25 2 0 1 0
+2 25 3 0 1 0
+2 25 4 0 1 0
+2 25 5 0 1 0
+2 25 6 0 1 0
+2 25 7 0 1 0
+2 25 8 0 1 0
+2 25 9 0 1 0
+2 25 10 0 1 0
+2 25 11 0 1 0
+2 25 12 0 1 0
+2 25 13 0 1 0
+2 25 14 0 1 0
+2 25 15 0 1 0
+2 25 16 0 1 0.151123
+2 25 17 0 1 0.354004
+2 25 18 0 1 0.487549
+2 25 19 0 1 0.601562
+2 25 20 0 1 0.701172
+2 25 21 0 1 0.789062
+2 25 22 0 1 0.865234
+2 25 23 0 1 0.927734
+2 25 24 0 1 0.979004
+2 25 25 0 1 1
+2 25 26 0 0.987305 1
+2 25 27 0 0.944336 1
+2 25 28 0 0.896973 1
+2 25 29 0 0.847656 1
+2 25 30 0 0.798828 1
+2 25 31 0 0.751465 1
+2 26 0 0 1 0
+2 26 1 0 1 0
+2 26 2 0 1 0
+2 26 3 0 1 0
+2 26 4 0 1 0
+2 26 5 0 1 0
+2 26 6 0 1 0
+2 26 7 0 1 0
+2 26 8 0 1 0
+2 26 9 0 1 0
+2 26 10 0 1 0
+2 26 11 0 1 0
+2 26 12 0 1 0
+2 26 13 0 1 0
+2 26 14 0 1 0
+2 26 15 0 1 0
+2 26 16 0 1 0
+2 26 17 0 1 0.291992
+2 26 18 0 1 0.437256
+2 26 19 0 1 0.554199
+2 26 20 0 1 0.655762
+2 26 21 0 1 0.746094
+2 26 22 0 1 0.825195
+2 26 23 0 1 0.891602
+2 26 24 0 1 0.946777
+2 26 25 0 1 0.99707
+2 26 26 0 1 1
+2 26 27 0 1 1
+2 26 28 0 0.956055 1
+2 26 29 0 0.906738 1
+2 26 30 0 0.856445 1
+2 26 31 0 0.806152 1
+2 27 0 0 1 0
+2 27 1 0 1 0
+2 27 2 0 1 0
+2 27 3 0 1 0
+2 27 4 0 1 0
+2 27 5 0 1 0
+2 27 6 0 1 0
+2 27 7 0 1 0
+2 27 8 0 1 0
+2 27 9 0 1 0
+2 27 10 0 1 0
+2 27 11 0 1 0
+2 27 12 0 1 0
+2 27 13 0 1 0
+2 27 14 0 1 0
+2 27 15 0 1 0
+2 27 16 0 1 0
+2 27 17 0 1 0.209595
+2 27 18 0 1 0.380859
+2 27 19 0 1 0.503418
+2 27 20 0 1 0.606445
+2 27 21 0 1 0.69873
+2 27 22 0 1 0.780273
+2 27 23 0 1 0.849609
+2 27 24 0 1 0.908203
+2 27 25 0 1 0.962891
+2 27 26 0 1 1
+2 27 27 0 1 1
+2 27 28 0 1 1
+2 27 29 0 0.964355 1
+2 27 30 0 0.913574 1
+2 27 31 0 0.862305 1
+2 28 0 0 1 0
+2 28 1 0 1 0
+2 28 2 0 1 0
+2 28 3 0 1 0
+2 28 4 0 1 0
+2 28 5 0 1 0
+2 28 6 0 1 0
+2 28 7 0 1 0
+2 28 8 0 1 0
+2 28 9 0 1 0
+2 28 10 0 1 0
+2 28 11 0 1 0
+2 28 12 0 1 0
+2 28 13 0 1 0
+2 28 14 0 1 0
+2 28 15 0 1 0
+2 28 16 0 1 0
+2 28 17 0 1 0
+2 28 18 0 1 0.315674
+2 28 19 0 1 0.44751
+2 28 20 0 1 0.553711
+2 28 21 0 1 0.647461
+2 28 22 0 1 0.730469
+2 28 23 0 1 0.802246
+2 28 24 0 1 0.86377
+2 28 25 0 1 0.921875
+2 28 26 0 1 0.975586
+2 28 27 0 1 1
+2 28 28 0 1 1
+2 28 29 0 1 1
+2 28 30 0 0.969727 1
+2 28 31 0 0.918457 1
+2 29 0 0 1 0
+2 29 1 0 1 0
+2 29 2 0 1 0
+2 29 3 0 1 0
+2 29 4 0 1 0
+2 29 5 0 1 0
+2 29 6 0 1 0
+2 29 7 0 1 0
+2 29 8 0 1 0
+2 29 9 0 1 0
+2 29 10 0 1 0
+2 29 11 0 1 0
+2 29 12 0 1 0
+2 29 13 0 1 0
+2 29 14 0 1 0
+2 29 15 0 1 0
+2 29 16 0 1 0
+2 29 17 0 1 0
+2 29 18 0 1 0.233276
+2 29 19 0 1 0.385742
+2 29 20 0 1 0.496338
+2 29 21 0 1 0.591797
+2 29 22 0 1 0.67627
+2 29 23 0 1 0.749023
+2 29 24 0 1 0.812988
+2 29 25 0 1 0.874023
+2 29 26 0 1 0.931641
+2 29 27 0 1 0.984375
+2 29 28 0 1 1
+2 29 29 0 1 1
+2 29 30 0 1 1
+2 29 31 0 0.974609 1
+2 30 0 0 1 0
+2 30 1 0 1 0
+2 30 2 0 1 0
+2 30 3 0 1 0
+2 30 4 0 1 0
+2 30 5 0 1 0
+2 30 6 0 1 0
+2 30 7 0 1 0
+2 30 8 0 1 0
+2 30 9 0 1 0
+2 30 10 0 1 0
+2 30 11 0 1 0
+2 30 12 0 1 0
+2 30 13 0 1 0
+2 30 14 0 1 0
+2 30 15 0 1 0
+2 30 16 0 1 0
+2 30 17 0 1 0
+2 30 18 0 1 0.0709839
+2 30 19 0 1 0.315186
+2 30 20 0 1 0.43457
+2 30 21 0 1 0.532227
+2 30 22 0 1 0.617676
+2 30 23 0 1 0.691895
+2 30 24 0 1 0.756836
+2 30 25 0 1 0.820312
+2 30 26 0 1 0.880859
+2 30 27 0 1 0.938477
+2 30 28 0 1 0.990234
+2 30 29 0 1 1
+2 30 30 0 1 1
+2 30 31 0 1 1
+2 31 0 0 1 0
+2 31 1 0 1 0
+2 31 2 0 1 0
+2 31 3 0 1 0
+2 31 4 0 1 0
+2 31 5 0 1 0
+2 31 6 0 1 0
+2 31 7 0 1 0
+2 31 8 0 1 0
+2 31 9 0 1 0
+2 31 10 0 1 0
+2 31 11 0 1 0
+2 31 12 0 1 0
+2 31 13 0 1 0
+2 31 14 0 1 0
+2 31 15 0 1 0
+2 31 16 0 1 0
+2 31 17 0 1 0
+2 31 18 0 1 0
+2 31 19 0 1 0.226685
+2 31 20 0 1 0.366699
+2 31 21 0 1 0.469238
+2 31 22 0 1 0.556152
+2 31 23 0 1 0.630859
+2 31 24 0 1 0.696777
+2 31 25 0 1 0.761719
+2 31 26 0 1 0.825195
+2 31 27 0 1 0.88623
+2 31 28 0 1 0.943359
+2 31 29 0 1 0.995117
+2 31 30 0 1 1
+2 31 31 0 1 1
+3 0 0 0.032959 0.0120926 0.0112686
+3 0 1 0.032074 0.0117035 0.0154724
+3 0 2 0.0275879 0.0108643 0.0180817
+3 0 3 0.0244141 0.0113525 0.021225
+3 0 4 0.0259552 0.013649 0.0310669
+3 0 5 0.0233765 0.0160675 0.043457
+3 0 6 0 0.0185852 0.0575867
+3 0 7 0 0.0218964 0.074707
+3 0 8 0 0.0266876 0.0968628
+3 0 9 0 0.0335388 0.126099
+3 0 10 0 0.0431213 0.165283
+3 0 11 0 0.0559387 0.216675
+3 0 12 0 0.0714722 0.27832
+3 0 13 0 0.0894165 0.349365
+3 0 14 0 0.10968 0.429199
+3 0 15 0 0.131592 0.515625
+3 0 16 0 0.154663 0.606445
+3 0 17 0 0.177246 0.694824
+3 0 18 0 0.19812 0.776855
+3 0 19 0 0.216675 0.849609
+3 0 20 0 0.226929 0.890137
+3 0 21 0 0.229004 0.897949
+3 0 22 0 0.231201 0.906738
+3 0 23 0 0.233276 0.915039
+3 0 24 0 0.235474 0.923828
+3 0 25 0 0.237915 0.933594
+3 0 26 0 0.240601 0.943848
+3 0 27 0 0.243652 0.955566
+3 0 28 0 0.24707 0.969238
+3 0 29 0 0.250732 0.98291
+3 0 30 0 0.254395 0.998047
+3 0 31 0 0.258301 1
+3 1 0 0.0297699 0.0147705 0.0102234
+3 1 1 0.0304565 0.0150604 0.0146713
+3 1 2 0.0284119 0.0143509 0.0187378
+3 1 3 0.0239105 0.0135727 0.0211945
+3 1 4 0.0252228 0.015976 0.0309601
+3 1 5 0.0223541 0.0183258 0.0433655
+3 1 6 0 0.0205536 0.0575256
+3 1 7 0 0.0234528 0.074707
+3 1 8 0 0.0278625 0.0968628
+3 1 9 0 0.0343933 0.126099
+3 1 10 0 0.0437317 0.165283
+3 1 11 0 0.0563965 0.216675
+3 1 12 0 0.0717773 0.27832
+3 1 13 0 0.0896606 0.349365
+3 1 14 0 0.109863 0.429199
+3 1 15 0 0.131714 0.515625
+3 1 16 0 0.154785 0.606445
+3 1 17 0 0.177246 0.694824
+3 1 18 0 0.19812 0.776855
+3 1 19 0 0.216675 0.849609
+3 1 20 0 0.227051 0.890137
+3 1 21 0 0.229004 0.897949
+3 1 22 0 0.231201 0.906738
+3 1 23 0 0.233398 0.915039
+3 1 24 0 0.235596 0.923828
+3 1 25 0 0.238037 0.933594
+3 1 26 0 0.240601 0.943848
+3 1 27 0 0.243652 0.955566
+3 1 28 0 0.24707 0.969238
+3 1 29 0 0.250732 0.98291
+3 1 30 0 0.254395 0.998047
+3 1 31 0 0.258301 1
+3 2 0 0.0245361 0.0162506 0.0091629
+3 2 1 0.0251465 0.0168304 0.0126724
+3 2 2 0.0272217 0.0184479 0.0183258
+3 2 3 0.0231018 0.0167542 0.0212402
+3 2 4 0.02388 0.0192566 0.0308533
+3 2 5 0.0203552 0.0215759 0.0432434
+3 2 6 0 0.0235138 0.0574646
+3 2 7 0 0.0259247 0.074646
+3 2 8 0 0.0297699 0.0968018
+3 2 9 0 0.0357971 0.126099
+3 2 10 0 0.0447693 0.165283
+3 2 11 0 0.0571594 0.216675
+3 2 12 0 0.0723877 0.27832
+3 2 13 0 0.0900879 0.349365
+3 2 14 0 0.110168 0.429199
+3 2 15 0 0.131958 0.515625
+3 2 16 0 0.155029 0.606445
+3 2 17 0 0.177368 0.694824
+3 2 18 0 0.198242 0.776855
+3 2 19 0 0.216797 0.849609
+3 2 20 0 0.227051 0.890137
+3 2 21 0 0.229126 0.897949
+3 2 22 0 0.231201 0.906738
+3 2 23 0 0.233398 0.915039
+3 2 24 0 0.235596 0.923828
+3 2 25 0 0.238037 0.933594
+3 2 26 0 0.240723 0.943848
+3 2 27 0 0.243652 0.955566
+3 2 28 0 0.24707 0.969238
+3 2 29 0 0.250732 0.98291
+3 2 30 0 0.254395 0.998047
+3 2 31 0 0.258301 1
+3 3 0 0.02211 0.0200348 0.00863647
+3 3 1 0.0218048 0.0200653 0.0118179
+3 3 2 0.0215759 0.0204163 0.0157776
+3 3 3 0.0216064 0.0216064 0.0216064
+3 3 4 0.0211792 0.023941 0.0307922
+3 3 5 0.0157623 0.0262146 0.0430298
+3 3 6 0 0.0278931 0.057312
+3 3 7 0 0.0297394 0.0745239
+3 3 8 0 0.0328979 0.0968018
+3 3 9 0 0.038208 0.126099
+3 3 10 0 0.0466003 0.165283
+3 3 11 0 0.0585327 0.216553
+3 3 12 0 0.0734253 0.27832
+3 3 13 0 0.0908813 0.349365
+3 3 14 0 0.110718 0.428955
+3 3 15 0 0.132446 0.515625
+3 3 16 0 0.155273 0.606445
+3 3 17 0 0.177612 0.694824
+3 3 18 0 0.198486 0.776855
+3 3 19 0 0.216919 0.849609
+3 3 20 0 0.227173 0.890137
+3 3 21 0 0.229126 0.897949
+3 3 22 0 0.231323 0.906738
+3 3 23 0 0.233521 0.915039
+3 3 24 0 0.235596 0.923828
+3 3 25 0 0.238037 0.933594
+3 3 26 0 0.240723 0.943848
+3 3 27 0 0.243652 0.955566
+3 3 28 0 0.24707 0.969238
+3 3 29 0 0.250732 0.98291
+3 3 30 0 0.254395 0.998047
+3 3 31 0 0.258301 1
+3 4 0 0.0200653 0.0292053 0.00659943
+3 4 1 0.0194702 0.0290222 0.0115967
+3 4 2 0.0185394 0.0289307 0.0164032
+3 4 3 0.0170746 0.0294037 0.0223694
+3 4 4 0.0135727 0.030899 0.030899
+3 4 5 0 0.0328064 0.0426941
+3 4 6 0 0.0342407 0.0570374
+3 4 7 0 0.0355225 0.0744019
+3 4 8 0 0.0378723 0.0966797
+3 4 9 0 0.0422668 0.125977
+3 4 10 0 0.0498047 0.165161
+3 4 11 0 0.0610352 0.216553
+3 4 12 0 0.0753174 0.27832
+3 4 13 0 0.0922852 0.349365
+3 4 14 0 0.111816 0.428955
+3 4 15 0 0.133179 0.515625
+3 4 16 0 0.155884 0.606445
+3 4 17 0 0.178101 0.694824
+3 4 18 0 0.198853 0.776855
+3 4 19 0 0.217285 0.849609
+3 4 20 0 0.227417 0.890137
+3 4 21 0 0.22937 0.898438
+3 4 22 0 0.231445 0.906738
+3 4 23 0 0.233643 0.915039
+3 4 24 0 0.235718 0.923828
+3 4 25 0 0.238159 0.933594
+3 4 26 0 0.240845 0.943848
+3 4 27 0 0.243774 0.955566
+3 4 28 0 0.247192 0.969238
+3 4 29 0 0.250732 0.98291
+3 4 30 0 0.254395 0.998047
+3 4 31 0 0.258301 1
+3 5 0 0 0.040863 0
+3 5 1 0 0.040741 0.00653076
+3 5 2 0 0.0406189 0.0149841
+3 5 3 0 0.0406799 0.0222321
+3 5 4 0 0.0411682 0.0308533
+3 5 5 0 0.0422058 0.0422058
+3 5 6 0 0.0432129 0.056488
+3 5 7 0 0.0440063 0.0740356
+3 5 8 0 0.0455322 0.0964966
+3 5 9 0 0.0488586 0.125854
+3 5 10 0 0.0552979 0.165039
+3 5 11 0 0.0654907 0.216431
+3 5 12 0 0.0787964 0.278076
+3 5 13 0 0.0949707 0.349365
+3 5 14 0 0.113831 0.428955
+3 5 15 0 0.134766 0.515625
+3 5 16 0 0.157104 0.606445
+3 5 17 0 0.179077 0.694824
+3 5 18 0 0.199585 0.776855
+3 5 19 0 0.217773 0.849609
+3 5 20 0 0.227905 0.890137
+3 5 21 0 0.229736 0.898438
+3 5 22 0 0.231812 0.906738
+3 5 23 0 0.233887 0.915527
+3 5 24 0 0.235962 0.923828
+3 5 25 0 0.238281 0.933594
+3 5 26 0 0.240967 0.943848
+3 5 27 0 0.243896 0.955566
+3 5 28 0 0.247314 0.969238
+3 5 29 0 0.250732 0.98291
+3 5 30 0 0.254639 0.998047
+3 5 31 0 0.258301 1
+3 6 0 0 0.0545349 0
+3 6 1 0 0.0545349 0
+3 6 2 0 0.0545349 0.00261879
+3 6 3 0 0.0545654 0.0187836
+3 6 4 0 0.0546875 0.0291595
+3 6 5 0 0.0549622 0.0409851
+3 6 6 0 0.0553589 0.0553894
+3 6 7 0 0.0557556 0.0733643
+3 6 8 0 0.0565491 0.0960693
+3 6 9 0 0.0588074 0.125488
+3 6 10 0 0.0640869 0.164673
+3 6 11 0 0.072998 0.216187
+3 6 12 0 0.0848999 0.278076
+3 6 13 0 0.0998535 0.349121
+3 6 14 0 0.117615 0.428955
+3 6 15 0 0.137695 0.515625
+3 6 16 0 0.159302 0.606445
+3 6 17 0 0.180786 0.694824
+3 6 18 0 0.200928 0.776855
+3 6 19 0 0.218872 0.849609
+3 6 20 0 0.22876 0.890137
+3 6 21 0 0.230469 0.898438
+3 6 22 0 0.2323 0.906738
+3 6 23 0 0.234375 0.915527
+3 6 24 0 0.236328 0.923828
+3 6 25 0 0.238647 0.933594
+3 6 26 0 0.241211 0.943848
+3 6 27 0 0.244141 0.955566
+3 6 28 0 0.247437 0.969238
+3 6 29 0 0.250977 0.983398
+3 6 30 0 0.254639 0.998047
+3 6 31 0 0.258545 1
+3 7 0 0 0.0709839 0
+3 7 1 0 0.0709839 0
+3 7 2 0 0.0710449 0
+3 7 3 0 0.071106 0
+3 7 4 0 0.071228 0.0231781
+3 7 5 0 0.0713501 0.0374756
+3 7 6 0 0.0715942 0.0529785
+3 7 7 0 0.0717163 0.0717773
+3 7 8 0 0.0720215 0.0951538
+3 7 9 0 0.0733643 0.124939
+3 7 10 0 0.0774536 0.164185
+3 7 11 0 0.085083 0.21582
+3 7 12 0 0.0953369 0.277832
+3 7 13 0 0.108459 0.349121
+3 7 14 0 0.124512 0.428955
+3 7 15 0 0.143066 0.515137
+3 7 16 0 0.163574 0.605957
+3 7 17 0 0.184082 0.694824
+3 7 18 0 0.203491 0.776855
+3 7 19 0 0.220947 0.849609
+3 7 20 0 0.230469 0.890625
+3 7 21 0 0.231812 0.898438
+3 7 22 0 0.233398 0.906738
+3 7 23 0 0.235229 0.915527
+3 7 24 0 0.237183 0.923828
+3 7 25 0 0.23938 0.933594
+3 7 26 0 0.241821 0.944336
+3 7 27 0 0.244629 0.956055
+3 7 28 0 0.247925 0.969238
+3 7 29 0 0.251465 0.983398
+3 7 30 0 0.255127 0.998047
+3 7 31 0 0.258789 1
+3 8 0 0 0.092041 0
+3 8 1 0 0.092041 0
+3 8 2 0 0.0921021 0
+3 8 3 0 0.0921631 0
+3 8 4 0 0.0922241 0
+3 8 5 0 0.0924072 0.0289307
+3 8 6 0 0.0926514 0.0478821
+3 8 7 0 0.0928955 0.0684204
+3 8 8 0 0.0930176 0.0930786
+3 8 9 0 0.093811 0.123718
+3 8 10 0 0.0969849 0.16333
+3 8 11 0 0.103516 0.215088
+3 8 12 0 0.112061 0.277344
+3 8 13 0 0.122986 0.348633
+3 8 14 0 0.136597 0.428711
+3 8 15 0 0.152832 0.515137
+3 8 16 0 0.171387 0.605957
+3 8 17 0 0.190308 0.694824
+3 8 18 0 0.208496 0.776855
+3 8 19 0 0.224976 0.849609
+3 8 20 0 0.233765 0.890625
+3 8 21 0 0.234375 0.898438
+3 8 22 0 0.235596 0.907227
+3 8 23 0 0.237061 0.915527
+3 8 24 0 0.238647 0.924316
+3 8 25 0 0.240723 0.933594
+3 8 26 0 0.243042 0.944336
+3 8 27 0 0.245605 0.956055
+3 8 28 0 0.248779 0.969238
+3 8 29 0 0.252197 0.983398
+3 8 30 0 0.255615 0.998047
+3 8 31 0 0.259277 1
+3 9 0 0 0.119324 0
+3 9 1 0 0.119324 0
+3 9 2 0 0.119385 0
+3 9 3 0 0.119385 0
+3 9 4 0 0.119446 0
+3 9 5 0 0.119568 0
+3 9 6 0 0.119751 0.0365906
+3 9 7 0 0.120056 0.0617981
+3 9 8 0 0.120483 0.0889282
+3 9 9 0 0.121338 0.121338
+3 9 10 0 0.123962 0.161621
+3 9 11 0 0.129761 0.213745
+3 9 12 0 0.136841 0.276367
+3 9 13 0 0.145508 0.348145
+3 9 14 0 0.156372 0.428467
+3 9 15 0 0.169556 0.515137
+3 9 16 0 0.185181 0.605957
+3 9 17 0 0.201538 0.694824
+3 9 18 0 0.217651 0.776855
+3 9 19 0 0.232422 0.849609
+3 9 20 0 0.23999 0.891113
+3 9 21 0 0.23938 0.898926
+3 9 22 0 0.239624 0.907227
+3 9 23 0 0.240479 0.916016
+3 9 24 0 0.241577 0.924316
+3 9 25 0 0.243164 0.934082
+3 9 26 0 0.245117 0.944336
+3 9 27 0 0.247559 0.956055
+3 9 28 0 0.250244 0.969238
+3 9 29 0 0.253418 0.983398
+3 9 30 0 0.256836 0.998047
+3 9 31 0 0.260254 1
+3 10 0 0 0.155273 0
+3 10 1 0 0.155273 0
+3 10 2 0 0.155273 0
+3 10 3 0 0.155273 0
+3 10 4 0 0.155273 0
+3 10 5 0 0.155396 0
+3 10 6 0 0.155396 0
+3 10 7 0 0.155518 0.0486755
+3 10 8 0 0.155884 0.0817871
+3 10 9 0 0.156738 0.117249
+3 10 10 0 0.15918 0.15918
+3 10 11 0 0.164307 0.21167
+3 10 12 0 0.17041 0.274658
+3 10 13 0 0.177246 0.346924
+3 10 14 0 0.185303 0.427734
+3 10 15 0 0.19519 0.514648
+3 10 16 0 0.207031 0.605957
+3 10 17 0 0.219849 0.694824
+3 10 18 0 0.23291 0.777344
+3 10 19 0 0.245239 0.850098
+3 10 20 0 0.250732 0.89209
+3 10 21 0 0.247925 0.899902
+3 10 22 0 0.246704 0.908203
+3 10 23 0 0.24646 0.916504
+3 10 24 0 0.246826 0.924805
+3 10 25 0 0.247681 0.93457
+3 10 26 0 0.249023 0.944824
+3 10 27 0 0.250732 0.956543
+3 10 28 0 0.253174 0.969727
+3 10 29 0 0.255859 0.983887
+3 10 30 0 0.259033 0.998535
+3 10 31 0 0.262207 1
+3 11 0 0 0.202759 0
+3 11 1 0 0.202759 0
+3 11 2 0 0.202759 0
+3 11 3 0 0.202759 0
+3 11 4 0 0.202881 0
+3 11 5 0 0.202881 0
+3 11 6 0 0.203003 0
+3 11 7 0 0.202881 0
+3 11 8 0 0.202881 0.067749
+3 11 9 0 0.203247 0.110413
+3 11 10 0 0.204956 0.155518
+3 11 11 0 0.208496 0.208618
+3 11 12 0 0.213501 0.271973
+3 11 13 0 0.218994 0.344971
+3 11 14 0 0.224731 0.426514
+3 11 15 0 0.231201 0.51416
+3 11 16 0 0.239258 0.605957
+3 11 17 0 0.247803 0.694824
+3 11 18 0 0.256836 0.777344
+3 11 19 0 0.265625 0.850586
+3 11 20 0 0.268066 0.893555
+3 11 21 0 0.262207 0.900879
+3 11 22 0 0.258545 0.90918
+3 11 23 0 0.256592 0.91748
+3 11 24 0 0.255615 0.925781
+3 11 25 0 0.255371 0.935059
+3 11 26 0 0.255615 0.945801
+3 11 27 0 0.256592 0.957031
+3 11 28 0 0.258057 0.970215
+3 11 29 0 0.260254 0.984375
+3 11 30 0 0.262695 0.999023
+3 11 31 0 0.265381 1
+3 12 0 0 0.261475 0
+3 12 1 0 0.261475 0
+3 12 2 0 0.261475 0
+3 12 3 0 0.261475 0
+3 12 4 0 0.261719 0
+3 12 5 0 0.261719 0
+3 12 6 0 0.261719 0
+3 12 7 0 0.261963 0
+3 12 8 0 0.261963 0
+3 12 9 0 0.261963 0.0949097
+3 12 10 0 0.262695 0.147583
+3 12 11 0 0.264404 0.203369
+3 12 12 0 0.267822 0.267822
+3 12 13 0 0.271729 0.341797
+3 12 14 0 0.275635 0.424072
+3 12 15 0 0.279297 0.512695
+3 12 16 0 0.283447 0.60498
+3 12 17 0 0.287598 0.694824
+3 12 18 0 0.291992 0.777344
+3 12 19 0 0.296387 0.850586
+3 12 20 0 0.294922 0.895996
+3 12 21 0 0.284668 0.90332
+3 12 22 0 0.277588 0.911133
+3 12 23 0 0.272949 0.918945
+3 12 24 0 0.269775 0.927246
+3 12 25 0 0.267578 0.936523
+3 12 26 0 0.266357 0.946777
+3 12 27 0 0.265869 0.958008
+3 12 28 0 0.266357 0.971191
+3 12 29 0 0.267334 0.984863
+3 12 30 0 0.268799 0.999512
+3 12 31 0 0.270752 1
+3 13 0 0 0.329834 0
+3 13 1 0 0.329834 0
+3 13 2 0 0.329834 0
+3 13 3 0 0.329834 0
+3 13 4 0 0.329834 0
+3 13 5 0 0.329834 0
+3 13 6 0 0.329834 0
+3 13 7 0 0.330078 0
+3 13 8 0 0.330078 0
+3 13 9 0 0.330322 0.0458069
+3 13 10 0 0.330811 0.129395
+3 13 11 0 0.331543 0.192871
+3 13 12 0 0.333252 0.260498
+3 13 13 0 0.335938 0.335938
+3 13 14 0 0.338135 0.419922
+3 13 15 0 0.339355 0.509766
+3 13 16 0 0.340088 0.603516
+3 13 17 0 0.339844 0.694336
+3 13 18 0 0.339355 0.777832
+3 13 19 0 0.338867 0.851562
+3 13 20 0 0.333252 0.899902
+3 13 21 0 0.317139 0.906738
+3 13 22 0 0.30542 0.914062
+3 13 23 0 0.297119 0.921875
+3 13 24 0 0.29126 0.930176
+3 13 25 0 0.286621 0.938965
+3 13 26 0 0.282959 0.94873
+3 13 27 0 0.280518 0.959961
+3 13 28 0 0.279053 0.972656
+3 13 29 0 0.278564 0.986328
+3 13 30 0 0.278564 1
+3 13 31 0 0.279297 1
+3 14 0 0 0.406982 0
+3 14 1 0 0.406982 0
+3 14 2 0 0.406982 0
+3 14 3 0 0.406982 0
+3 14 4 0 0.406982 0
+3 14 5 0 0.406982 0
+3 14 6 0 0.406982 0
+3 14 7 0 0.406982 0
+3 14 8 0 0.407227 0
+3 14 9 0 0.407471 0
+3 14 10 0 0.408203 0.0844727
+3 14 11 0 0.408936 0.171509
+3 14 12 0 0.409912 0.246826
+3 14 13 0 0.411377 0.325928
+3 14 14 0 0.412109 0.412354
+3 14 15 0 0.411865 0.504395
+3 14 16 0 0.409668 0.600098
+3 14 17 0 0.405518 0.692871
+3 14 18 0 0.400146 0.777344
+3 14 19 0 0.394775 0.852051
+3 14 20 0 0.385254 0.904785
+3 14 21 0 0.362061 0.912109
+3 14 22 0 0.344482 0.919434
+3 14 23 0 0.331787 0.926758
+3 14 24 0 0.322021 0.93457
+3 14 25 0 0.313965 0.942871
+3 14 26 0 0.307373 0.952637
+3 14 27 0 0.302246 0.963379
+3 14 28 0 0.298096 0.975586
+3 14 29 0 0.29541 0.98877
+3 14 30 0 0.293457 1
+3 14 31 0 0.292236 1
+3 15 0 0 0.490967 0
+3 15 1 0 0.490967 0
+3 15 2 0 0.490967 0
+3 15 3 0 0.490967 0
+3 15 4 0 0.490967 0
+3 15 5 0 0.490967 0
+3 15 6 0 0.491211 0
+3 15 7 0 0.491211 0
+3 15 8 0 0.491211 0
+3 15 9 0 0.491699 0
+3 15 10 0 0.492188 0
+3 15 11 0 0.493164 0.127686
+3 15 12 0 0.494385 0.22229
+3 15 13 0 0.495605 0.308838
+3 15 14 0 0.496094 0.399414
+3 15 15 0 0.494873 0.494873
+3 15 16 0 0.490967 0.59375
+3 15 17 0 0.483643 0.688965
+3 15 18 0 0.474121 0.775391
+3 15 19 0 0.463623 0.851562
+3 15 20 0 0.450928 0.911133
+3 15 21 0 0.420166 0.919434
+3 15 22 0 0.39624 0.927246
+3 15 23 0 0.37793 0.934082
+3 15 24 0 0.36377 0.941406
+3 15 25 0 0.351562 0.949219
+3 15 26 0 0.341064 0.958008
+3 15 27 0 0.332031 0.968262
+3 15 28 0 0.324951 0.97998
+3 15 29 0 0.319092 0.992676
+3 15 30 0 0.314453 1
+3 15 31 0 0.310791 1
+3 16 0 0 0.580566 0
+3 16 1 0 0.580566 0
+3 16 2 0 0.580566 0
+3 16 3 0 0.580566 0
+3 16 4 0 0.580566 0
+3 16 5 0 0.580566 0
+3 16 6 0 0.580566 0
+3 16 7 0 0.581055 0
+3 16 8 0 0.581055 0
+3 16 9 0 0.581055 0
+3 16 10 0 0.581543 0
+3 16 11 0 0.583008 0
+3 16 12 0 0.584473 0.178345
+3 16 13 0 0.585938 0.280762
+3 16 14 0 0.586914 0.378418
+3 16 15 0 0.585938 0.47876
+3 16 16 0 0.581543 0.581543
+3 16 17 0 0.572266 0.680664
+3 16 18 0 0.55957 0.770508
+3 16 19 0 0.544922 0.849121
+3 16 20 0 0.529297 0.914062
+3 16 21 0 0.492432 0.928711
+3 16 22 0 0.461426 0.937988
+3 16 23 0 0.437012 0.944824
+3 16 24 0 0.417725 0.95166
+3 16 25 0 0.400391 0.958984
+3 16 26 0 0.385254 0.966797
+3 16 27 0 0.371826 0.976074
+3 16 28 0 0.360596 0.986816
+3 16 29 0 0.351074 0.998535
+3 16 30 0 0.343018 1
+3 16 31 0 0.336182 1
+3 17 0 0 0.669922 0
+3 17 1 0 0.669922 0
+3 17 2 0 0.669922 0
+3 17 3 0 0.669922 0
+3 17 4 0 0.67041 0
+3 17 5 0 0.67041 0
+3 17 6 0 0.67041 0
+3 17 7 0 0.67041 0
+3 17 8 0 0.67041 0
+3 17 9 0 0.67041 0
+3 17 10 0 0.670898 0
+3 17 11 0 0.671875 0
+3 17 12 0 0.673828 0.0739136
+3 17 13 0 0.67627 0.237183
+3 17 14 0 0.678223 0.347412
+3 17 15 0 0.678223 0.454102
+3 17 16 0 0.674316 0.562012
+3 17 17 0 0.665527 0.666016
+3 17 18 0 0.651367 0.760742
+3 17 19 0 0.633789 0.843262
+3 17 20 0 0.614258 0.910645
+3 17 21 0 0.576172 0.937988
+3 17 22 0 0.539062 0.951172
+3 17 23 0 0.508301 0.959961
+3 17 24 0 0.483154 0.966309
+3 17 25 0 0.460205 0.973145
+3 17 26 0 0.439697 0.97998
+3 17 27 0 0.421143 0.987793
+3 17 28 0 0.405273 0.99707
+3 17 29 0 0.391113 1
+3 17 30 0 0.378906 1
+3 17 31 0 0.368408 1
+3 18 0 0 0.754395 0
+3 18 1 0 0.754395 0
+3 18 2 0 0.754395 0
+3 18 3 0 0.754395 0
+3 18 4 0 0.754395 0
+3 18 5 0 0.754395 0
+3 18 6 0 0.754395 0
+3 18 7 0 0.754395 0
+3 18 8 0 0.754395 0
+3 18 9 0 0.754395 0
+3 18 10 0 0.754883 0
+3 18 11 0 0.755371 0
+3 18 12 0 0.757812 0
+3 18 13 0 0.760254 0.165771
+3 18 14 0 0.763672 0.304443
+3 18 15 0 0.765137 0.42041
+3 18 16 0 0.763672 0.53418
+3 18 17 0 0.756836 0.643555
+3 18 18 0 0.743652 0.743652
+3 18 19 0 0.725098 0.831055
+3 18 20 0 0.703125 0.90332
+3 18 21 0 0.666016 0.943848
+3 18 22 0 0.625488 0.965332
+3 18 23 0 0.589844 0.977051
+3 18 24 0 0.559082 0.984863
+3 18 25 0 0.529785 0.991699
+3 18 26 0 0.503418 0.997559
+3 18 27 0 0.479248 1
+3 18 28 0 0.457764 1
+3 18 29 0 0.438477 1
+3 18 30 0 0.421631 1
+3 18 31 0 0.406738 1
+3 19 0 0 0.830566 0
+3 19 1 0 0.830566 0
+3 19 2 0 0.830566 0
+3 19 3 0 0.830566 0
+3 19 4 0 0.830566 0
+3 19 5 0 0.830566 0
+3 19 6 0 0.830566 0
+3 19 7 0 0.830566 0
+3 19 8 0 0.830566 0
+3 19 9 0 0.831055 0
+3 19 10 0 0.831055 0
+3 19 11 0 0.831055 0
+3 19 12 0 0.833008 0
+3 19 13 0 0.835938 0
+3 19 14 0 0.839844 0.246582
+3 19 15 0 0.843262 0.378662
+3 19 16 0 0.844238 0.499268
+3 19 17 0 0.840332 0.61377
+3 19 18 0 0.82959 0.719727
+3 19 19 0 0.812012 0.8125
+3 19 20 0 0.789551 0.88916
+3 19 21 0 0.756348 0.943359
+3 19 22 0 0.716309 0.975586
+3 19 23 0 0.676758 0.994141
+3 19 24 0 0.641113 1
+3 19 25 0 0.606934 1
+3 19 26 0 0.574219 1
+3 19 27 0 0.543945 1
+3 19 28 0 0.516602 1
+3 19 29 0 0.491699 1
+3 19 30 0 0.469482 1
+3 19 31 0 0.449707 1
+3 20 0 0 0.896973 0
+3 20 1 0 0.896973 0
+3 20 2 0 0.896973 0
+3 20 3 0 0.896973 0
+3 20 4 0 0.896973 0
+3 20 5 0 0.896973 0
+3 20 6 0 0.896973 0
+3 20 7 0 0.896973 0
+3 20 8 0 0.896973 0
+3 20 9 0 0.896973 0
+3 20 10 0 0.896973 0
+3 20 11 0 0.897461 0
+3 20 12 0 0.897949 0
+3 20 13 0 0.901367 0
+3 20 14 0 0.905762 0.160645
+3 20 15 0 0.910645 0.329346
+3 20 16 0 0.913574 0.458984
+3 20 17 0 0.912598 0.579102
+3 20 18 0 0.905273 0.689453
+3 20 19 0 0.890137 0.787109
+3 20 20 0 0.869141 0.869141
+3 20 21 0 0.840332 0.93457
+3 20 22 0 0.803711 0.979004
+3 20 23 0 0.763672 1
+3 20 24 0 0.725586 1
+3 20 25 0 0.687012 1
+3 20 26 0 0.648926 1
+3 20 27 0 0.612793 1
+3 20 28 0 0.579102 1
+3 20 29 0 0.548828 1
+3 20 30 0 0.520996 1
+3 20 31 0 0.496338 1
+3 21 0 0 0.953613 0
+3 21 1 0 0.953613 0
+3 21 2 0 0.953613 0
+3 21 3 0 0.953613 0
+3 21 4 0 0.953613 0
+3 21 5 0 0.953613 0
+3 21 6 0 0.953613 0
+3 21 7 0 0.953613 0
+3 21 8 0 0.953613 0
+3 21 9 0 0.953613 0
+3 21 10 0 0.953613 0
+3 21 11 0 0.954102 0
+3 21 12 0 0.954102 0
+3 21 13 0 0.957031 0
+3 21 14 0 0.961914 0
+3 21 15 0 0.967285 0.268555
+3 21 16 0 0.972168 0.413574
+3 21 17 0 0.974121 0.539062
+3 21 18 0 0.970215 0.653809
+3 21 19 0 0.958984 0.755859
+3 21 20 0 0.94043 0.843262
+3 21 21 0 0.915527 0.916016
+3 21 22 0 0.883789 0.97168
+3 21 23 0 0.847168 1
+3 21 24 0 0.808594 1
+3 21 25 0 0.767578 1
+3 21 26 0 0.725586 1
+3 21 27 0 0.68457 1
+3 21 28 0 0.645508 1
+3 21 29 0 0.609375 1
+3 21 30 0 0.576172 1
+3 21 31 0 0.546387 1
+3 22 0 0 1 0
+3 22 1 0 1 0
+3 22 2 0 1 0
+3 22 3 0 1 0
+3 22 4 0 1 0
+3 22 5 0 1 0
+3 22 6 0 1 0
+3 22 7 0 1 0
+3 22 8 0 1 0
+3 22 9 0 1 0
+3 22 10 0 1 0
+3 22 11 0 1 0
+3 22 12 0 1 0
+3 22 13 0 1 0
+3 22 14 0 1 0
+3 22 15 0 1 0.187134
+3 22 16 0 1 0.363037
+3 22 17 0 1 0.49585
+3 22 18 0 1 0.614258
+3 22 19 0 1 0.720215
+3 22 20 0 1 0.811523
+3 22 21 0 0.97998 0.889648
+3 22 22 0 0.953125 0.953125
+3 22 23 0 0.920898 1
+3 22 24 0 0.885254 1
+3 22 25 0 0.844238 1
+3 22 26 0 0.800781 1
+3 22 27 0 0.756348 1
+3 22 28 0 0.712891 1
+3 22 29 0 0.671875 1
+3 22 30 0 0.633301 1
+3 22 31 0 0.598145 1
+3 23 0 0 1 0
+3 23 1 0 1 0
+3 23 2 0 1 0
+3 23 3 0 1 0
+3 23 4 0 1 0
+3 23 5 0 1 0
+3 23 6 0 1 0
+3 23 7 0 1 0
+3 23 8 0 1 0
+3 23 9 0 1 0
+3 23 10 0 1 0
+3 23 11 0 1 0
+3 23 12 0 1 0
+3 23 13 0 1 0
+3 23 14 0 1 0
+3 23 15 0 1 0
+3 23 16 0 1 0.30835
+3 23 17 0 1 0.451416
+3 23 18 0 1 0.57373
+3 23 19 0 1 0.682617
+3 23 20 0 1 0.777344
+3 23 21 0 1 0.859375
+3 23 22 0 1 0.927734
+3 23 23 0 0.981445 0.981934
+3 23 24 0 0.950195 1
+3 23 25 0 0.912109 1
+3 23 26 0 0.869141 1
+3 23 27 0 0.823242 1
+3 23 28 0 0.776855 1
+3 23 29 0 0.731934 1
+3 23 30 0 0.688965 1
+3 23 31 0 0.648926 1
+3 24 0 0 1 0
+3 24 1 0 1 0
+3 24 2 0 1 0
+3 24 3 0 1 0
+3 24 4 0 1 0
+3 24 5 0 1 0
+3 24 6 0 1 0
+3 24 7 0 1 0
+3 24 8 0 1 0
+3 24 9 0 1 0
+3 24 10 0 1 0
+3 24 11 0 1 0
+3 24 12 0 1 0
+3 24 13 0 1 0
+3 24 14 0 1 0
+3 24 15 0 1 0
+3 24 16 0 1 0.24585
+3 24 17 0 1 0.406006
+3 24 18 0 1 0.532715
+3 24 19 0 1 0.644531
+3 24 20 0 1 0.741699
+3 24 21 0 1 0.827148
+3 24 22 0 1 0.899414
+3 24 23 0 1 0.95752
+3 24 24 0 1 1
+3 24 25 0 0.970215 1
+3 24 26 0 0.929688 1
+3 24 27 0 0.884277 1
+3 24 28 0 0.836914 1
+3 24 29 0 0.789062 1
+3 24 30 0 0.742676 1
+3 24 31 0 0.69873 1
+3 25 0 0 1 0
+3 25 1 0 1 0
+3 25 2 0 1 0
+3 25 3 0 1 0
+3 25 4 0 1 0
+3 25 5 0 1 0
+3 25 6 0 1 0
+3 25 7 0 1 0
+3 25 8 0 1 0
+3 25 9 0 1 0
+3 25 10 0 1 0
+3 25 11 0 1 0
+3 25 12 0 1 0
+3 25 13 0 1 0
+3 25 14 0 1 0
+3 25 15 0 1 0
+3 25 16 0 1 0.151123
+3 25 17 0 1 0.354004
+3 25 18 0 1 0.487549
+3 25 19 0 1 0.601562
+3 25 20 0 1 0.701172
+3 25 21 0 1 0.789062
+3 25 22 0 1 0.865234
+3 25 23 0 1 0.927734
+3 25 24 0 1 0.979004
+3 25 25 0 1 1
+3 25 26 0 0.987305 1
+3 25 27 0 0.944336 1
+3 25 28 0 0.896973 1
+3 25 29 0 0.847656 1
+3 25 30 0 0.798828 1
+3 25 31 0 0.751465 1
+3 26 0 0 1 0
+3 26 1 0 1 0
+3 26 2 0 1 0
+3 26 3 0 1 0
+3 26 4 0 1 0
+3 26 5 0 1 0
+3 26 6 0 1 0
+3 26 7 0 1 0
+3 26 8 0 1 0
+3 26 9 0 1 0
+3 26 10 0 1 0
+3 26 11 0 1 0
+3 26 12 0 1 0
+3 26 13 0 1 0
+3 26 14 0 1 0
+3 26 15 0 1 0
+3 26 16 0 1 0
+3 26 17 0 1 0.291992
+3 26 18 0 1 0.437256
+3 26 19 0 1 0.554199
+3 26 20 0 1 0.655762
+3 26 21 0 1 0.746094
+3 26 22 0 1 0.825195
+3 26 23 0 1 0.891602
+3 26 24 0 1 0.946777
+3 26 25 0 1 0.99707
+3 26 26 0 1 1
+3 26 27 0 1 1
+3 26 28 0 0.956055 1
+3 26 29 0 0.906738 1
+3 26 30 0 0.856445 1
+3 26 31 0 0.806152 1
+3 27 0 0 1 0
+3 27 1 0 1 0
+3 27 2 0 1 0
+3 27 3 0 1 0
+3 27 4 0 1 0
+3 27 5 0 1 0
+3 27 6 0 1 0
+3 27 7 0 1 0
+3 27 8 0 1 0
+3 27 9 0 1 0
+3 27 10 0 1 0
+3 27 11 0 1 0
+3 27 12 0 1 0
+3 27 13 0 1 0
+3 27 14 0 1 0
+3 27 15 0 1 0
+3 27 16 0 1 0
+3 27 17 0 1 0.209595
+3 27 18 0 1 0.380859
+3 27 19 0 1 0.503418
+3 27 20 0 1 0.606445
+3 27 21 0 1 0.69873
+3 27 22 0 1 0.780273
+3 27 23 0 1 0.849609
+3 27 24 0 1 0.908203
+3 27 25 0 1 0.962891
+3 27 26 0 1 1
+3 27 27 0 1 1
+3 27 28 0 1 1
+3 27 29 0 0.964355 1
+3 27 30 0 0.913574 1
+3 27 31 0 0.862305 1
+3 28 0 0 1 0
+3 28 1 0 1 0
+3 28 2 0 1 0
+3 28 3 0 1 0
+3 28 4 0 1 0
+3 28 5 0 1 0
+3 28 6 0 1 0
+3 28 7 0 1 0
+3 28 8 0 1 0
+3 28 9 0 1 0
+3 28 10 0 1 0
+3 28 11 0 1 0
+3 28 12 0 1 0
+3 28 13 0 1 0
+3 28 14 0 1 0
+3 28 15 0 1 0
+3 28 16 0 1 0
+3 28 17 0 1 0
+3 28 18 0 1 0.315674
+3 28 19 0 1 0.44751
+3 28 20 0 1 0.553711
+3 28 21 0 1 0.647461
+3 28 22 0 1 0.730469
+3 28 23 0 1 0.802246
+3 28 24 0 1 0.86377
+3 28 25 0 1 0.921875
+3 28 26 0 1 0.975586
+3 28 27 0 1 1
+3 28 28 0 1 1
+3 28 29 0 1 1
+3 28 30 0 0.969727 1
+3 28 31 0 0.918457 1
+3 29 0 0 1 0
+3 29 1 0 1 0
+3 29 2 0 1 0
+3 29 3 0 1 0
+3 29 4 0 1 0
+3 29 5 0 1 0
+3 29 6 0 1 0
+3 29 7 0 1 0
+3 29 8 0 1 0
+3 29 9 0 1 0
+3 29 10 0 1 0
+3 29 11 0 1 0
+3 29 12 0 1 0
+3 29 13 0 1 0
+3 29 14 0 1 0
+3 29 15 0 1 0
+3 29 16 0 1 0
+3 29 17 0 1 0
+3 29 18 0 1 0.233276
+3 29 19 0 1 0.385742
+3 29 20 0 1 0.496338
+3 29 21 0 1 0.591797
+3 29 22 0 1 0.67627
+3 29 23 0 1 0.749023
+3 29 24 0 1 0.812988
+3 29 25 0 1 0.874023
+3 29 26 0 1 0.931641
+3 29 27 0 1 0.984375
+3 29 28 0 1 1
+3 29 29 0 1 1
+3 29 30 0 1 1
+3 29 31 0 0.974609 1
+3 30 0 0 1 0
+3 30 1 0 1 0
+3 30 2 0 1 0
+3 30 3 0 1 0
+3 30 4 0 1 0
+3 30 5 0 1 0
+3 30 6 0 1 0
+3 30 7 0 1 0
+3 30 8 0 1 0
+3 30 9 0 1 0
+3 30 10 0 1 0
+3 30 11 0 1 0
+3 30 12 0 1 0
+3 30 13 0 1 0
+3 30 14 0 1 0
+3 30 15 0 1 0
+3 30 16 0 1 0
+3 30 17 0 1 0
+3 30 18 0 1 0.0709839
+3 30 19 0 1 0.315186
+3 30 20 0 1 0.43457
+3 30 21 0 1 0.532227
+3 30 22 0 1 0.617676
+3 30 23 0 1 0.691895
+3 30 24 0 1 0.756836
+3 30 25 0 1 0.820312
+3 30 26 0 1 0.880859
+3 30 27 0 1 0.938477
+3 30 28 0 1 0.990234
+3 30 29 0 1 1
+3 30 30 0 1 1
+3 30 31 0 1 1
+3 31 0 0 1 0
+3 31 1 0 1 0
+3 31 2 0 1 0
+3 31 3 0 1 0
+3 31 4 0 1 0
+3 31 5 0 1 0
+3 31 6 0 1 0
+3 31 7 0 1 0
+3 31 8 0 1 0
+3 31 9 0 1 0
+3 31 10 0 1 0
+3 31 11 0 1 0
+3 31 12 0 1 0
+3 31 13 0 1 0
+3 31 14 0 1 0
+3 31 15 0 1 0
+3 31 16 0 1 0
+3 31 17 0 1 0
+3 31 18 0 1 0
+3 31 19 0 1 0.226562
+3 31 20 0 1 0.366699
+3 31 21 0 1 0.469238
+3 31 22 0 1 0.556152
+3 31 23 0 1 0.630859
+3 31 24 0 1 0.696777
+3 31 25 0 1 0.761719
+3 31 26 0 1 0.825195
+3 31 27 0 1 0.88623
+3 31 28 0 1 0.943359
+3 31 29 0 1 0.995117
+3 31 30 0 1 1
+3 31 31 0 1 1
+4 0 0 0.0512085 0.0114975 0.00795746
+4 0 1 0.0507202 0.0109634 0.0158844
+4 0 2 0.0490417 0.0103073 0.022583
+4 0 3 0.0419617 0.0115051 0.0267792
+4 0 4 0.0371399 0.0137634 0.0318604
+4 0 5 0.0362549 0.0158234 0.043457
+4 0 6 0.0306091 0.0183716 0.0575562
+4 0 7 0 0.0217438 0.074707
+4 0 8 0 0.0265808 0.0968628
+4 0 9 0 0.0334473 0.126099
+4 0 10 0 0.0430603 0.165283
+4 0 11 0 0.0558777 0.216675
+4 0 12 0 0.0714111 0.27832
+4 0 13 0 0.0894165 0.349365
+4 0 14 0 0.109619 0.429199
+4 0 15 0 0.131592 0.515625
+4 0 16 0 0.154663 0.606445
+4 0 17 0 0.177246 0.694824
+4 0 18 0 0.19812 0.776855
+4 0 19 0 0.216675 0.849609
+4 0 20 0 0.226929 0.890137
+4 0 21 0 0.229004 0.898438
+4 0 22 0 0.231201 0.906738
+4 0 23 0 0.233276 0.915039
+4 0 24 0 0.235474 0.923828
+4 0 25 0 0.237915 0.933594
+4 0 26 0 0.240601 0.943848
+4 0 27 0 0.243652 0.955566
+4 0 28 0 0.24707 0.969238
+4 0 29 0 0.250732 0.98291
+4 0 30 0 0.254395 0.998047
+4 0 31 0 0.258301 1
+4 1 0 0.0490417 0.0167236 0.00676727
+4 1 1 0.0490112 0.0164948 0.0150223
+4 1 2 0.0479431 0.0159607 0.0219727
+4 1 3 0.0423279 0.0153122 0.0270996
+4 1 4 0.0366821 0.0162201 0.0317688
+4 1 5 0.0357056 0.0181427 0.0433655
+4 1 6 0.029892 0.0203705 0.0574951
+4 1 7 0 0.0233154 0.074707
+4 1 8 0 0.0277557 0.0968628
+4 1 9 0 0.0343018 0.126099
+4 1 10 0 0.0436707 0.165283
+4 1 11 0 0.0563354 0.216553
+4 1 12 0 0.0717773 0.27832
+4 1 13 0 0.0896606 0.349365
+4 1 14 0 0.109802 0.429199
+4 1 15 0 0.131714 0.515625
+4 1 16 0 0.154785 0.606445
+4 1 17 0 0.177246 0.694824
+4 1 18 0 0.19812 0.776855
+4 1 19 0 0.216675 0.849609
+4 1 20 0 0.227051 0.890137
+4 1 21 0 0.229004 0.898438
+4 1 22 0 0.231201 0.906738
+4 1 23 0 0.233398 0.915039
+4 1 24 0 0.235596 0.923828
+4 1 25 0 0.238037 0.933594
+4 1 26 0 0.240723 0.943848
+4 1 27 0 0.243652 0.955566
+4 1 28 0 0.24707 0.969238
+4 1 29 0 0.250732 0.98291
+4 1 30 0 0.254395 0.998047
+4 1 31 0 0.258301 1
+4 2 0 0.0448608 0.0212708 0.00614166
+4 2 1 0.0451965 0.0213776 0.0137939
+4 2 2 0.0457153 0.0215149 0.0208435
+4 2 3 0.0429077 0.0205841 0.0276031
+4 2 4 0.0358582 0.0196533 0.0316467
+4 2 5 0.0346985 0.0214539 0.0432434
+4 2 6 0.0285492 0.0233612 0.0574341
+4 2 7 0 0.0258026 0.074646
+4 2 8 0 0.0296783 0.0968628
+4 2 9 0 0.0357361 0.126099
+4 2 10 0 0.0447083 0.165283
+4 2 11 0 0.0570984 0.216553
+4 2 12 0 0.0723267 0.27832
+4 2 13 0 0.0900879 0.349365
+4 2 14 0 0.110168 0.429199
+4 2 15 0 0.131958 0.515625
+4 2 16 0 0.154907 0.606445
+4 2 17 0 0.177368 0.694824
+4 2 18 0 0.198242 0.776855
+4 2 19 0 0.216797 0.849609
+4 2 20 0 0.227051 0.890137
+4 2 21 0 0.229126 0.898438
+4 2 22 0 0.231201 0.906738
+4 2 23 0 0.233398 0.915039
+4 2 24 0 0.235596 0.923828
+4 2 25 0 0.238037 0.933594
+4 2 26 0 0.240723 0.943848
+4 2 27 0 0.243652 0.955566
+4 2 28 0 0.24707 0.969238
+4 2 29 0 0.250732 0.98291
+4 2 30 0 0.254395 0.998047
+4 2 31 0 0.258301 1
+4 3 0 0.0385437 0.0247803 0.00779343
+4 3 1 0.0384827 0.0249023 0.0129547
+4 3 2 0.0388794 0.0254059 0.0185547
+4 3 3 0.0406799 0.026886 0.0266876
+4 3 4 0.0343933 0.0244446 0.0314941
+4 3 5 0.0327759 0.0261536 0.0430603
+4 3 6 0.0258636 0.027771 0.0572815
+4 3 7 0 0.0296478 0.074585
+4 3 8 0 0.0328064 0.0968018
+4 3 9 0 0.038147 0.126099
+4 3 10 0 0.0465393 0.165161
+4 3 11 0 0.0585022 0.216553
+4 3 12 0 0.0733643 0.27832
+4 3 13 0 0.0908813 0.349365
+4 3 14 0 0.110718 0.429199
+4 3 15 0 0.132446 0.515625
+4 3 16 0 0.155273 0.606445
+4 3 17 0 0.177612 0.694824
+4 3 18 0 0.198486 0.776855
+4 3 19 0 0.216919 0.849609
+4 3 20 0 0.227173 0.890137
+4 3 21 0 0.229248 0.898438
+4 3 22 0 0.231323 0.906738
+4 3 23 0 0.233521 0.915039
+4 3 24 0 0.235596 0.923828
+4 3 25 0 0.238037 0.933594
+4 3 26 0 0.240723 0.943848
+4 3 27 0 0.243652 0.955566
+4 3 28 0 0.24707 0.969238
+4 3 29 0 0.250732 0.98291
+4 3 30 0 0.254395 0.998047
+4 3 31 0 0.258301 1
+4 4 0 0.0355225 0.0318298 0.00632858
+4 4 1 0.0350037 0.0316162 0.0123062
+4 4 2 0.0342407 0.0314026 0.0176392
+4 4 3 0.0331421 0.03125 0.0237122
+4 4 4 0.0313416 0.0313416 0.0313416
+4 4 5 0.0287018 0.0328064 0.0427246
+4 4 6 0.0192261 0.0341492 0.0570068
+4 4 7 0 0.0354614 0.0744019
+4 4 8 0 0.0378113 0.0966797
+4 4 9 0 0.0422058 0.125977
+4 4 10 0 0.0497437 0.165161
+4 4 11 0 0.0610046 0.216553
+4 4 12 0 0.0752563 0.27832
+4 4 13 0 0.0922852 0.349365
+4 4 14 0 0.111816 0.428955
+4 4 15 0 0.133179 0.515625
+4 4 16 0 0.155884 0.606445
+4 4 17 0 0.178101 0.694824
+4 4 18 0 0.198853 0.776855
+4 4 19 0 0.217285 0.849609
+4 4 20 0 0.227417 0.890137
+4 4 21 0 0.22937 0.898438
+4 4 22 0 0.231445 0.906738
+4 4 23 0 0.233643 0.915039
+4 4 24 0 0.235718 0.923828
+4 4 25 0 0.238159 0.933594
+4 4 26 0 0.240845 0.943848
+4 4 27 0 0.243774 0.955566
+4 4 28 0 0.247192 0.969238
+4 4 29 0 0.250732 0.98291
+4 4 30 0 0.254395 0.998047
+4 4 31 0 0.258301 1
+4 5 0 0.0284424 0.0422058 0
+4 5 1 0.0279388 0.0420227 0.00570679
+4 5 2 0.0270691 0.0417175 0.0151215
+4 5 3 0.025528 0.0413208 0.0224609
+4 5 4 0.0228729 0.0413513 0.0309448
+4 5 5 0.016449 0.0422058 0.0422058
+4 5 6 0 0.0431519 0.0564575
+4 5 7 0 0.0439453 0.0740356
+4 5 8 0 0.0454712 0.0964966
+4 5 9 0 0.0487976 0.125854
+4 5 10 0 0.0552673 0.164917
+4 5 11 0 0.0654907 0.216431
+4 5 12 0 0.0787354 0.278076
+4 5 13 0 0.0949707 0.349365
+4 5 14 0 0.113831 0.428955
+4 5 15 0 0.134766 0.515625
+4 5 16 0 0.157104 0.606445
+4 5 17 0 0.179077 0.694824
+4 5 18 0 0.199585 0.776855
+4 5 19 0 0.217773 0.849609
+4 5 20 0 0.227905 0.890137
+4 5 21 0 0.229736 0.898438
+4 5 22 0 0.231812 0.906738
+4 5 23 0 0.233887 0.915527
+4 5 24 0 0.235962 0.923828
+4 5 25 0 0.238281 0.933594
+4 5 26 0 0.240967 0.943848
+4 5 27 0 0.243896 0.955566
+4 5 28 0 0.247314 0.969238
+4 5 29 0 0.250732 0.98291
+4 5 30 0 0.254639 0.998047
+4 5 31 0 0.258301 1
+4 6 0 0 0.0548096 0
+4 6 1 0 0.0547791 0
+4 6 2 0 0.054718 0
+4 6 3 0 0.0546265 0.0186005
+4 6 4 0 0.054657 0.0290527
+4 6 5 0 0.0549316 0.0409241
+4 6 6 0 0.0553284 0.0553284
+4 6 7 0 0.0557251 0.0733032
+4 6 8 0 0.0565186 0.0960693
+4 6 9 0 0.0587769 0.125488
+4 6 10 0 0.0640259 0.164673
+4 6 11 0 0.072937 0.216187
+4 6 12 0 0.0848999 0.278076
+4 6 13 0 0.0998535 0.349121
+4 6 14 0 0.117615 0.428955
+4 6 15 0 0.137695 0.515625
+4 6 16 0 0.159302 0.606445
+4 6 17 0 0.180786 0.694824
+4 6 18 0 0.200928 0.776855
+4 6 19 0 0.218872 0.849609
+4 6 20 0 0.22876 0.890137
+4 6 21 0 0.230469 0.898438
+4 6 22 0 0.2323 0.906738
+4 6 23 0 0.234375 0.915527
+4 6 24 0 0.236328 0.923828
+4 6 25 0 0.238647 0.933594
+4 6 26 0 0.241211 0.943848
+4 6 27 0 0.244141 0.955566
+4 6 28 0 0.247437 0.969238
+4 6 29 0 0.250977 0.983398
+4 6 30 0 0.254639 0.998047
+4 6 31 0 0.258545 1
+4 7 0 0 0.0709839 0
+4 7 1 0 0.0710449 0
+4 7 2 0 0.0710449 0
+4 7 3 0 0.071106 0
+4 7 4 0 0.071167 0.0230255
+4 7 5 0 0.0713501 0.037384
+4 7 6 0 0.0715332 0.052948
+4 7 7 0 0.0717163 0.0717163
+4 7 8 0 0.0719604 0.0951538
+4 7 9 0 0.0733032 0.124939
+4 7 10 0 0.0774536 0.164185
+4 7 11 0 0.085083 0.21582
+4 7 12 0 0.0953369 0.277832
+4 7 13 0 0.108398 0.349121
+4 7 14 0 0.124451 0.428955
+4 7 15 0 0.143066 0.515137
+4 7 16 0 0.163574 0.605957
+4 7 17 0 0.184082 0.694824
+4 7 18 0 0.203491 0.776855
+4 7 19 0 0.220947 0.849609
+4 7 20 0 0.230469 0.890625
+4 7 21 0 0.231812 0.898438
+4 7 22 0 0.233398 0.906738
+4 7 23 0 0.235229 0.915527
+4 7 24 0 0.237183 0.923828
+4 7 25 0 0.23938 0.933594
+4 7 26 0 0.241821 0.944336
+4 7 27 0 0.244629 0.956055
+4 7 28 0 0.247925 0.969238
+4 7 29 0 0.251465 0.983398
+4 7 30 0 0.255127 0.998047
+4 7 31 0 0.258789 1
+4 8 0 0 0.092041 0
+4 8 1 0 0.0921021 0
+4 8 2 0 0.0921021 0
+4 8 3 0 0.0921631 0
+4 8 4 0 0.0922241 0
+4 8 5 0 0.0924072 0.0288239
+4 8 6 0 0.0926514 0.047821
+4 8 7 0 0.0928955 0.0683594
+4 8 8 0 0.0930176 0.0930786
+4 8 9 0 0.09375 0.123718
+4 8 10 0 0.0969849 0.163208
+4 8 11 0 0.103516 0.214966
+4 8 12 0 0.112061 0.277344
+4 8 13 0 0.122925 0.348633
+4 8 14 0 0.136597 0.428711
+4 8 15 0 0.152832 0.515137
+4 8 16 0 0.171387 0.605957
+4 8 17 0 0.190308 0.694824
+4 8 18 0 0.208496 0.776855
+4 8 19 0 0.224976 0.849609
+4 8 20 0 0.233765 0.890625
+4 8 21 0 0.234375 0.898438
+4 8 22 0 0.235596 0.907227
+4 8 23 0 0.237061 0.915527
+4 8 24 0 0.238647 0.924316
+4 8 25 0 0.240723 0.933594
+4 8 26 0 0.243042 0.944336
+4 8 27 0 0.245605 0.956055
+4 8 28 0 0.248779 0.969238
+4 8 29 0 0.252197 0.983398
+4 8 30 0 0.255615 0.998047
+4 8 31 0 0.259277 1
+4 9 0 0 0.119324 0
+4 9 1 0 0.119324 0
+4 9 2 0 0.119385 0
+4 9 3 0 0.119385 0
+4 9 4 0 0.119446 0
+4 9 5 0 0.119568 0
+4 9 6 0 0.119751 0.036499
+4 9 7 0 0.120056 0.0617676
+4 9 8 0 0.120483 0.0888672
+4 9 9 0 0.121277 0.121338
+4 9 10 0 0.123901 0.161621
+4 9 11 0 0.129761 0.213745
+4 9 12 0 0.136841 0.276367
+4 9 13 0 0.145508 0.348145
+4 9 14 0 0.156372 0.428467
+4 9 15 0 0.169556 0.515137
+4 9 16 0 0.185181 0.605957
+4 9 17 0 0.201538 0.694824
+4 9 18 0 0.217651 0.776855
+4 9 19 0 0.232422 0.850098
+4 9 20 0 0.23999 0.891113
+4 9 21 0 0.23938 0.898926
+4 9 22 0 0.239624 0.907227
+4 9 23 0 0.240479 0.916016
+4 9 24 0 0.241577 0.924316
+4 9 25 0 0.243164 0.934082
+4 9 26 0 0.245117 0.944336
+4 9 27 0 0.247559 0.956055
+4 9 28 0 0.250244 0.969238
+4 9 29 0 0.253418 0.983398
+4 9 30 0 0.256836 0.998047
+4 9 31 0 0.260254 1
+4 10 0 0 0.155151 0
+4 10 1 0 0.155151 0
+4 10 2 0 0.155273 0
+4 10 3 0 0.155273 0
+4 10 4 0 0.155273 0
+4 10 5 0 0.155396 0
+4 10 6 0 0.155396 0
+4 10 7 0 0.155518 0.0486145
+4 10 8 0 0.155884 0.0817871
+4 10 9 0 0.156738 0.117249
+4 10 10 0 0.15918 0.15918
+4 10 11 0 0.164307 0.21167
+4 10 12 0 0.17041 0.274658
+4 10 13 0 0.177246 0.346924
+4 10 14 0 0.185303 0.427734
+4 10 15 0 0.19519 0.514648
+4 10 16 0 0.207031 0.605957
+4 10 17 0 0.219849 0.694824
+4 10 18 0 0.23291 0.777344
+4 10 19 0 0.245239 0.850098
+4 10 20 0 0.250732 0.89209
+4 10 21 0 0.247925 0.899902
+4 10 22 0 0.246704 0.908203
+4 10 23 0 0.24646 0.916504
+4 10 24 0 0.246826 0.924805
+4 10 25 0 0.247681 0.93457
+4 10 26 0 0.249023 0.944824
+4 10 27 0 0.250732 0.956543
+4 10 28 0 0.253174 0.969727
+4 10 29 0 0.255859 0.983887
+4 10 30 0 0.259033 0.998535
+4 10 31 0 0.262207 1
+4 11 0 0 0.202759 0
+4 11 1 0 0.202759 0
+4 11 2 0 0.202759 0
+4 11 3 0 0.202759 0
+4 11 4 0 0.202759 0
+4 11 5 0 0.202881 0
+4 11 6 0 0.203003 0
+4 11 7 0 0.202881 0
+4 11 8 0 0.202881 0.067688
+4 11 9 0 0.203247 0.110413
+4 11 10 0 0.204956 0.155518
+4 11 11 0 0.208496 0.208618
+4 11 12 0 0.213501 0.271973
+4 11 13 0 0.218872 0.344971
+4 11 14 0 0.224731 0.426514
+4 11 15 0 0.231201 0.51416
+4 11 16 0 0.239258 0.605957
+4 11 17 0 0.247803 0.694824
+4 11 18 0 0.256836 0.777344
+4 11 19 0 0.265625 0.850586
+4 11 20 0 0.268066 0.893555
+4 11 21 0 0.262207 0.900879
+4 11 22 0 0.258545 0.90918
+4 11 23 0 0.256592 0.91748
+4 11 24 0 0.255615 0.925781
+4 11 25 0 0.255371 0.935059
+4 11 26 0 0.255615 0.945801
+4 11 27 0 0.256592 0.957031
+4 11 28 0 0.258057 0.970215
+4 11 29 0 0.260254 0.984375
+4 11 30 0 0.262695 0.999023
+4 11 31 0 0.265381 1
+4 12 0 0 0.261475 0
+4 12 1 0 0.261475 0
+4 12 2 0 0.261475 0
+4 12 3 0 0.261475 0
+4 12 4 0 0.261719 0
+4 12 5 0 0.261719 0
+4 12 6 0 0.261719 0
+4 12 7 0 0.261963 0
+4 12 8 0 0.261963 0
+4 12 9 0 0.261963 0.0948486
+4 12 10 0 0.262695 0.147583
+4 12 11 0 0.264404 0.203369
+4 12 12 0 0.267578 0.267822
+4 12 13 0 0.271729 0.341797
+4 12 14 0 0.275635 0.424072
+4 12 15 0 0.279297 0.512695
+4 12 16 0 0.283447 0.60498
+4 12 17 0 0.287598 0.694824
+4 12 18 0 0.291992 0.777344
+4 12 19 0 0.296387 0.850586
+4 12 20 0 0.294922 0.895996
+4 12 21 0 0.284668 0.90332
+4 12 22 0 0.277588 0.911133
+4 12 23 0 0.272949 0.919434
+4 12 24 0 0.269775 0.927246
+4 12 25 0 0.267578 0.936523
+4 12 26 0 0.266357 0.946777
+4 12 27 0 0.265869 0.958008
+4 12 28 0 0.266357 0.971191
+4 12 29 0 0.267334 0.984863
+4 12 30 0 0.268799 0.999512
+4 12 31 0 0.270752 1
+4 13 0 0 0.32959 0
+4 13 1 0 0.32959 0
+4 13 2 0 0.329834 0
+4 13 3 0 0.329834 0
+4 13 4 0 0.329834 0
+4 13 5 0 0.329834 0
+4 13 6 0 0.329834 0
+4 13 7 0 0.330078 0
+4 13 8 0 0.330078 0
+4 13 9 0 0.330322 0.0457458
+4 13 10 0 0.330811 0.129272
+4 13 11 0 0.331543 0.192871
+4 13 12 0 0.333252 0.260498
+4 13 13 0 0.335938 0.335938
+4 13 14 0 0.338135 0.419922
+4 13 15 0 0.339355 0.509766
+4 13 16 0 0.340088 0.603516
+4 13 17 0 0.339844 0.694336
+4 13 18 0 0.339355 0.777832
+4 13 19 0 0.338867 0.851562
+4 13 20 0 0.333252 0.899902
+4 13 21 0 0.317139 0.906738
+4 13 22 0 0.30542 0.914062
+4 13 23 0 0.297119 0.921875
+4 13 24 0 0.29126 0.930176
+4 13 25 0 0.286621 0.938965
+4 13 26 0 0.282959 0.94873
+4 13 27 0 0.280518 0.959961
+4 13 28 0 0.279053 0.972656
+4 13 29 0 0.278564 0.986328
+4 13 30 0 0.278564 1
+4 13 31 0 0.279297 1
+4 14 0 0 0.406982 0
+4 14 1 0 0.406982 0
+4 14 2 0 0.406982 0
+4 14 3 0 0.406982 0
+4 14 4 0 0.406982 0
+4 14 5 0 0.406982 0
+4 14 6 0 0.406982 0
+4 14 7 0 0.406982 0
+4 14 8 0 0.407227 0
+4 14 9 0 0.407471 0
+4 14 10 0 0.408203 0.0844116
+4 14 11 0 0.408936 0.171509
+4 14 12 0 0.409912 0.246826
+4 14 13 0 0.411133 0.325928
+4 14 14 0 0.412109 0.412354
+4 14 15 0 0.411865 0.504395
+4 14 16 0 0.409668 0.600098
+4 14 17 0 0.405518 0.692871
+4 14 18 0 0.400146 0.777344
+4 14 19 0 0.394775 0.852051
+4 14 20 0 0.385254 0.904785
+4 14 21 0 0.362061 0.912109
+4 14 22 0 0.344482 0.919434
+4 14 23 0 0.331787 0.926758
+4 14 24 0 0.322021 0.93457
+4 14 25 0 0.313965 0.942871
+4 14 26 0 0.307373 0.952637
+4 14 27 0 0.302246 0.963379
+4 14 28 0 0.29834 0.975586
+4 14 29 0 0.29541 0.98877
+4 14 30 0 0.293457 1
+4 14 31 0 0.292236 1
+4 15 0 0 0.490967 0
+4 15 1 0 0.490967 0
+4 15 2 0 0.490967 0
+4 15 3 0 0.490967 0
+4 15 4 0 0.490967 0
+4 15 5 0 0.490967 0
+4 15 6 0 0.491211 0
+4 15 7 0 0.491211 0
+4 15 8 0 0.491211 0
+4 15 9 0 0.491699 0
+4 15 10 0 0.492188 0
+4 15 11 0 0.493164 0.127686
+4 15 12 0 0.494385 0.22229
+4 15 13 0 0.495605 0.308838
+4 15 14 0 0.496094 0.399414
+4 15 15 0 0.494873 0.494873
+4 15 16 0 0.490967 0.59375
+4 15 17 0 0.483643 0.688965
+4 15 18 0 0.474121 0.775391
+4 15 19 0 0.463623 0.851562
+4 15 20 0 0.450928 0.911133
+4 15 21 0 0.420166 0.919434
+4 15 22 0 0.39624 0.927246
+4 15 23 0 0.37793 0.934082
+4 15 24 0 0.36377 0.941406
+4 15 25 0 0.351562 0.949219
+4 15 26 0 0.341064 0.958008
+4 15 27 0 0.332031 0.968262
+4 15 28 0 0.324951 0.97998
+4 15 29 0 0.319092 0.992676
+4 15 30 0 0.314453 1
+4 15 31 0 0.310791 1
+4 16 0 0 0.580566 0
+4 16 1 0 0.580566 0
+4 16 2 0 0.580566 0
+4 16 3 0 0.580566 0
+4 16 4 0 0.580566 0
+4 16 5 0 0.580566 0
+4 16 6 0 0.580566 0
+4 16 7 0 0.581055 0
+4 16 8 0 0.581055 0
+4 16 9 0 0.581055 0
+4 16 10 0 0.581543 0
+4 16 11 0 0.583008 0
+4 16 12 0 0.584473 0.178345
+4 16 13 0 0.585938 0.280762
+4 16 14 0 0.586914 0.378418
+4 16 15 0 0.585938 0.47876
+4 16 16 0 0.581543 0.581543
+4 16 17 0 0.572266 0.680664
+4 16 18 0 0.55957 0.770508
+4 16 19 0 0.544922 0.849121
+4 16 20 0 0.529297 0.914062
+4 16 21 0 0.492432 0.928711
+4 16 22 0 0.46167 0.937988
+4 16 23 0 0.437256 0.945312
+4 16 24 0 0.417725 0.95166
+4 16 25 0 0.400391 0.958984
+4 16 26 0 0.385254 0.966797
+4 16 27 0 0.371826 0.976074
+4 16 28 0 0.360596 0.986816
+4 16 29 0 0.351074 0.998535
+4 16 30 0 0.343018 1
+4 16 31 0 0.336182 1
+4 17 0 0 0.669922 0
+4 17 1 0 0.669922 0
+4 17 2 0 0.669922 0
+4 17 3 0 0.67041 0
+4 17 4 0 0.67041 0
+4 17 5 0 0.67041 0
+4 17 6 0 0.67041 0
+4 17 7 0 0.67041 0
+4 17 8 0 0.67041 0
+4 17 9 0 0.67041 0
+4 17 10 0 0.670898 0
+4 17 11 0 0.671875 0
+4 17 12 0 0.673828 0.0739136
+4 17 13 0 0.67627 0.237183
+4 17 14 0 0.678223 0.347412
+4 17 15 0 0.678223 0.454102
+4 17 16 0 0.674316 0.562012
+4 17 17 0 0.665527 0.666016
+4 17 18 0 0.651367 0.760742
+4 17 19 0 0.633789 0.843262
+4 17 20 0 0.614258 0.910645
+4 17 21 0 0.576172 0.937988
+4 17 22 0 0.539062 0.951172
+4 17 23 0 0.508301 0.959961
+4 17 24 0 0.483154 0.966309
+4 17 25 0 0.460205 0.973145
+4 17 26 0 0.439697 0.97998
+4 17 27 0 0.421143 0.987793
+4 17 28 0 0.405273 0.99707
+4 17 29 0 0.391113 1
+4 17 30 0 0.378906 1
+4 17 31 0 0.368408 1
+4 18 0 0 0.754395 0
+4 18 1 0 0.754395 0
+4 18 2 0 0.754395 0
+4 18 3 0 0.754395 0
+4 18 4 0 0.754395 0
+4 18 5 0 0.754395 0
+4 18 6 0 0.754395 0
+4 18 7 0 0.754395 0
+4 18 8 0 0.754395 0
+4 18 9 0 0.754883 0
+4 18 10 0 0.754883 0
+4 18 11 0 0.755371 0
+4 18 12 0 0.757812 0
+4 18 13 0 0.760254 0.165771
+4 18 14 0 0.763672 0.304443
+4 18 15 0 0.765137 0.42041
+4 18 16 0 0.763672 0.53418
+4 18 17 0 0.756836 0.643555
+4 18 18 0 0.743652 0.743652
+4 18 19 0 0.725098 0.831055
+4 18 20 0 0.703125 0.90332
+4 18 21 0 0.666016 0.943848
+4 18 22 0 0.625488 0.965332
+4 18 23 0 0.589844 0.977051
+4 18 24 0 0.559082 0.984863
+4 18 25 0 0.530273 0.991699
+4 18 26 0 0.503418 0.997559
+4 18 27 0 0.479248 1
+4 18 28 0 0.457764 1
+4 18 29 0 0.438477 1
+4 18 30 0 0.421631 1
+4 18 31 0 0.406738 1
+4 19 0 0 0.830566 0
+4 19 1 0 0.830566 0
+4 19 2 0 0.830566 0
+4 19 3 0 0.830566 0
+4 19 4 0 0.830566 0
+4 19 5 0 0.830566 0
+4 19 6 0 0.830566 0
+4 19 7 0 0.830566 0
+4 19 8 0 0.830566 0
+4 19 9 0 0.831055 0
+4 19 10 0 0.831055 0
+4 19 11 0 0.831055 0
+4 19 12 0 0.833008 0
+4 19 13 0 0.835938 0
+4 19 14 0 0.839844 0.246582
+4 19 15 0 0.843262 0.378662
+4 19 16 0 0.844238 0.499268
+4 19 17 0 0.840332 0.61377
+4 19 18 0 0.82959 0.719727
+4 19 19 0 0.8125 0.8125
+4 19 20 0 0.789551 0.88916
+4 19 21 0 0.756348 0.943359
+4 19 22 0 0.716309 0.975586
+4 19 23 0 0.676758 0.994141
+4 19 24 0 0.641113 1
+4 19 25 0 0.606934 1
+4 19 26 0 0.574219 1
+4 19 27 0 0.543945 1
+4 19 28 0 0.516602 1
+4 19 29 0 0.491699 1
+4 19 30 0 0.469482 1
+4 19 31 0 0.449707 1
+4 20 0 0 0.896973 0
+4 20 1 0 0.896973 0
+4 20 2 0 0.896973 0
+4 20 3 0 0.896973 0
+4 20 4 0 0.896973 0
+4 20 5 0 0.896973 0
+4 20 6 0 0.896973 0
+4 20 7 0 0.896973 0
+4 20 8 0 0.896973 0
+4 20 9 0 0.896973 0
+4 20 10 0 0.896973 0
+4 20 11 0 0.897461 0
+4 20 12 0 0.897949 0
+4 20 13 0 0.901367 0
+4 20 14 0 0.905762 0.160522
+4 20 15 0 0.910645 0.329346
+4 20 16 0 0.913574 0.458984
+4 20 17 0 0.912598 0.579102
+4 20 18 0 0.905273 0.689453
+4 20 19 0 0.890137 0.787109
+4 20 20 0 0.869141 0.869141
+4 20 21 0 0.840332 0.93457
+4 20 22 0 0.803711 0.979004
+4 20 23 0 0.763672 1
+4 20 24 0 0.725586 1
+4 20 25 0 0.687012 1
+4 20 26 0 0.648926 1
+4 20 27 0 0.612793 1
+4 20 28 0 0.579102 1
+4 20 29 0 0.548828 1
+4 20 30 0 0.520996 1
+4 20 31 0 0.496338 1
+4 21 0 0 0.953613 0
+4 21 1 0 0.953613 0
+4 21 2 0 0.953613 0
+4 21 3 0 0.953613 0
+4 21 4 0 0.953613 0
+4 21 5 0 0.953613 0
+4 21 6 0 0.953613 0
+4 21 7 0 0.953613 0
+4 21 8 0 0.953613 0
+4 21 9 0 0.953613 0
+4 21 10 0 0.953613 0
+4 21 11 0 0.954102 0
+4 21 12 0 0.954102 0
+4 21 13 0 0.957031 0
+4 21 14 0 0.961914 0
+4 21 15 0 0.967285 0.268555
+4 21 16 0 0.972168 0.413574
+4 21 17 0 0.974121 0.539062
+4 21 18 0 0.970215 0.653809
+4 21 19 0 0.958984 0.755859
+4 21 20 0 0.94043 0.843262
+4 21 21 0 0.915527 0.916016
+4 21 22 0 0.883789 0.97168
+4 21 23 0 0.847168 1
+4 21 24 0 0.808594 1
+4 21 25 0 0.767578 1
+4 21 26 0 0.725586 1
+4 21 27 0 0.68457 1
+4 21 28 0 0.645508 1
+4 21 29 0 0.609375 1
+4 21 30 0 0.576172 1
+4 21 31 0 0.546387 1
+4 22 0 0 1 0
+4 22 1 0 1 0
+4 22 2 0 1 0
+4 22 3 0 1 0
+4 22 4 0 1 0
+4 22 5 0 1 0
+4 22 6 0 1 0
+4 22 7 0 1 0
+4 22 8 0 1 0
+4 22 9 0 1 0
+4 22 10 0 1 0
+4 22 11 0 1 0
+4 22 12 0 1 0
+4 22 13 0 1 0
+4 22 14 0 1 0
+4 22 15 0 1 0.187134
+4 22 16 0 1 0.363037
+4 22 17 0 1 0.49585
+4 22 18 0 1 0.614258
+4 22 19 0 1 0.720215
+4 22 20 0 1 0.811523
+4 22 21 0 0.97998 0.889648
+4 22 22 0 0.953125 0.953125
+4 22 23 0 0.920898 1
+4 22 24 0 0.885254 1
+4 22 25 0 0.844238 1
+4 22 26 0 0.800781 1
+4 22 27 0 0.756348 1
+4 22 28 0 0.712891 1
+4 22 29 0 0.671875 1
+4 22 30 0 0.633301 1
+4 22 31 0 0.598145 1
+4 23 0 0 1 0
+4 23 1 0 1 0
+4 23 2 0 1 0
+4 23 3 0 1 0
+4 23 4 0 1 0
+4 23 5 0 1 0
+4 23 6 0 1 0
+4 23 7 0 1 0
+4 23 8 0 1 0
+4 23 9 0 1 0
+4 23 10 0 1 0
+4 23 11 0 1 0
+4 23 12 0 1 0
+4 23 13 0 1 0
+4 23 14 0 1 0
+4 23 15 0 1 0
+4 23 16 0 1 0.30835
+4 23 17 0 1 0.451416
+4 23 18 0 1 0.57373
+4 23 19 0 1 0.682617
+4 23 20 0 1 0.777344
+4 23 21 0 1 0.859375
+4 23 22 0 1 0.927734
+4 23 23 0 0.981445 0.981934
+4 23 24 0 0.950195 1
+4 23 25 0 0.912109 1
+4 23 26 0 0.869141 1
+4 23 27 0 0.823242 1
+4 23 28 0 0.776855 1
+4 23 29 0 0.731934 1
+4 23 30 0 0.688965 1
+4 23 31 0 0.648926 1
+4 24 0 0 1 0
+4 24 1 0 1 0
+4 24 2 0 1 0
+4 24 3 0 1 0
+4 24 4 0 1 0
+4 24 5 0 1 0
+4 24 6 0 1 0
+4 24 7 0 1 0
+4 24 8 0 1 0
+4 24 9 0 1 0
+4 24 10 0 1 0
+4 24 11 0 1 0
+4 24 12 0 1 0
+4 24 13 0 1 0
+4 24 14 0 1 0
+4 24 15 0 1 0
+4 24 16 0 1 0.24585
+4 24 17 0 1 0.406006
+4 24 18 0 1 0.532715
+4 24 19 0 1 0.644531
+4 24 20 0 1 0.741699
+4 24 21 0 1 0.827148
+4 24 22 0 1 0.899414
+4 24 23 0 1 0.95752
+4 24 24 0 1 1
+4 24 25 0 0.970215 1
+4 24 26 0 0.929688 1
+4 24 27 0 0.884277 1
+4 24 28 0 0.836914 1
+4 24 29 0 0.789062 1
+4 24 30 0 0.742676 1
+4 24 31 0 0.69873 1
+4 25 0 0 1 0
+4 25 1 0 1 0
+4 25 2 0 1 0
+4 25 3 0 1 0
+4 25 4 0 1 0
+4 25 5 0 1 0
+4 25 6 0 1 0
+4 25 7 0 1 0
+4 25 8 0 1 0
+4 25 9 0 1 0
+4 25 10 0 1 0
+4 25 11 0 1 0
+4 25 12 0 1 0
+4 25 13 0 1 0
+4 25 14 0 1 0
+4 25 15 0 1 0
+4 25 16 0 1 0.151001
+4 25 17 0 1 0.354004
+4 25 18 0 1 0.487549
+4 25 19 0 1 0.601562
+4 25 20 0 1 0.701172
+4 25 21 0 1 0.789062
+4 25 22 0 1 0.865234
+4 25 23 0 1 0.927734
+4 25 24 0 1 0.979004
+4 25 25 0 1 1
+4 25 26 0 0.987305 1
+4 25 27 0 0.944336 1
+4 25 28 0 0.896973 1
+4 25 29 0 0.847656 1
+4 25 30 0 0.798828 1
+4 25 31 0 0.751465 1
+4 26 0 0 1 0
+4 26 1 0 1 0
+4 26 2 0 1 0
+4 26 3 0 1 0
+4 26 4 0 1 0
+4 26 5 0 1 0
+4 26 6 0 1 0
+4 26 7 0 1 0
+4 26 8 0 1 0
+4 26 9 0 1 0
+4 26 10 0 1 0
+4 26 11 0 1 0
+4 26 12 0 1 0
+4 26 13 0 1 0
+4 26 14 0 1 0
+4 26 15 0 1 0
+4 26 16 0 1 0
+4 26 17 0 1 0.291992
+4 26 18 0 1 0.437256
+4 26 19 0 1 0.554199
+4 26 20 0 1 0.655762
+4 26 21 0 1 0.746094
+4 26 22 0 1 0.825195
+4 26 23 0 1 0.891602
+4 26 24 0 1 0.946777
+4 26 25 0 1 0.99707
+4 26 26 0 1 1
+4 26 27 0 1 1
+4 26 28 0 0.956055 1
+4 26 29 0 0.906738 1
+4 26 30 0 0.856445 1
+4 26 31 0 0.806152 1
+4 27 0 0 1 0
+4 27 1 0 1 0
+4 27 2 0 1 0
+4 27 3 0 1 0
+4 27 4 0 1 0
+4 27 5 0 1 0
+4 27 6 0 1 0
+4 27 7 0 1 0
+4 27 8 0 1 0
+4 27 9 0 1 0
+4 27 10 0 1 0
+4 27 11 0 1 0
+4 27 12 0 1 0
+4 27 13 0 1 0
+4 27 14 0 1 0
+4 27 15 0 1 0
+4 27 16 0 1 0
+4 27 17 0 1 0.209595
+4 27 18 0 1 0.380859
+4 27 19 0 1 0.503418
+4 27 20 0 1 0.606445
+4 27 21 0 1 0.69873
+4 27 22 0 1 0.780273
+4 27 23 0 1 0.849609
+4 27 24 0 1 0.908203
+4 27 25 0 1 0.962891
+4 27 26 0 1 1
+4 27 27 0 1 1
+4 27 28 0 1 1
+4 27 29 0 0.964355 1
+4 27 30 0 0.913574 1
+4 27 31 0 0.862305 1
+4 28 0 0 1 0
+4 28 1 0 1 0
+4 28 2 0 1 0
+4 28 3 0 1 0
+4 28 4 0 1 0
+4 28 5 0 1 0
+4 28 6 0 1 0
+4 28 7 0 1 0
+4 28 8 0 1 0
+4 28 9 0 1 0
+4 28 10 0 1 0
+4 28 11 0 1 0
+4 28 12 0 1 0
+4 28 13 0 1 0
+4 28 14 0 1 0
+4 28 15 0 1 0
+4 28 16 0 1 0
+4 28 17 0 1 0
+4 28 18 0 1 0.315674
+4 28 19 0 1 0.44751
+4 28 20 0 1 0.553711
+4 28 21 0 1 0.647461
+4 28 22 0 1 0.730469
+4 28 23 0 1 0.802246
+4 28 24 0 1 0.86377
+4 28 25 0 1 0.921875
+4 28 26 0 1 0.975586
+4 28 27 0 1 1
+4 28 28 0 1 1
+4 28 29 0 1 1
+4 28 30 0 0.969727 1
+4 28 31 0 0.918457 1
+4 29 0 0 1 0
+4 29 1 0 1 0
+4 29 2 0 1 0
+4 29 3 0 1 0
+4 29 4 0 1 0
+4 29 5 0 1 0
+4 29 6 0 1 0
+4 29 7 0 1 0
+4 29 8 0 1 0
+4 29 9 0 1 0
+4 29 10 0 1 0
+4 29 11 0 1 0
+4 29 12 0 1 0
+4 29 13 0 1 0
+4 29 14 0 1 0
+4 29 15 0 1 0
+4 29 16 0 1 0
+4 29 17 0 1 0
+4 29 18 0 1 0.233276
+4 29 19 0 1 0.385742
+4 29 20 0 1 0.496338
+4 29 21 0 1 0.591797
+4 29 22 0 1 0.67627
+4 29 23 0 1 0.749023
+4 29 24 0 1 0.812988
+4 29 25 0 1 0.874023
+4 29 26 0 1 0.931641
+4 29 27 0 1 0.984375
+4 29 28 0 1 1
+4 29 29 0 1 1
+4 29 30 0 1 1
+4 29 31 0 0.974609 1
+4 30 0 0 1 0
+4 30 1 0 1 0
+4 30 2 0 1 0
+4 30 3 0 1 0
+4 30 4 0 1 0
+4 30 5 0 1 0
+4 30 6 0 1 0
+4 30 7 0 1 0
+4 30 8 0 1 0
+4 30 9 0 1 0
+4 30 10 0 1 0
+4 30 11 0 1 0
+4 30 12 0 1 0
+4 30 13 0 1 0
+4 30 14 0 1 0
+4 30 15 0 1 0
+4 30 16 0 1 0
+4 30 17 0 1 0
+4 30 18 0 1 0.0709229
+4 30 19 0 1 0.315186
+4 30 20 0 1 0.43457
+4 30 21 0 1 0.532227
+4 30 22 0 1 0.617676
+4 30 23 0 1 0.691895
+4 30 24 0 1 0.756836
+4 30 25 0 1 0.820312
+4 30 26 0 1 0.880859
+4 30 27 0 1 0.938477
+4 30 28 0 1 0.990234
+4 30 29 0 1 1
+4 30 30 0 1 1
+4 30 31 0 1 1
+4 31 0 0 1 0
+4 31 1 0 1 0
+4 31 2 0 1 0
+4 31 3 0 1 0
+4 31 4 0 1 0
+4 31 5 0 1 0
+4 31 6 0 1 0
+4 31 7 0 1 0
+4 31 8 0 1 0
+4 31 9 0 1 0
+4 31 10 0 1 0
+4 31 11 0 1 0
+4 31 12 0 1 0
+4 31 13 0 1 0
+4 31 14 0 1 0
+4 31 15 0 1 0
+4 31 16 0 1 0
+4 31 17 0 1 0
+4 31 18 0 1 0
+4 31 19 0 1 0.226562
+4 31 20 0 1 0.366699
+4 31 21 0 1 0.469238
+4 31 22 0 1 0.556152
+4 31 23 0 1 0.630859
+4 31 24 0 1 0.696777
+4 31 25 0 1 0.761719
+4 31 26 0 1 0.825195
+4 31 27 0 1 0.88623
+4 31 28 0 1 0.943359
+4 31 29 0 1 0.995117
+4 31 30 0 1 1
+4 31 31 0 1 1
+5 0 0 0.071106 0 0
+5 0 1 0.0710449 0 0.00611115
+5 0 2 0.0704346 0 0.0202789
+5 0 3 0.0682983 0 0.0302124
+5 0 4 0.0586853 0.00855255 0.0366821
+5 0 5 0.0512695 0.0154495 0.0436707
+5 0 6 0.0480652 0.0179443 0.0574341
+5 0 7 0.0393372 0.0214233 0.074707
+5 0 8 0 0.0263672 0.0969238
+5 0 9 0 0.0332947 0.126099
+5 0 10 0 0.0429382 0.165161
+5 0 11 0 0.0557861 0.216553
+5 0 12 0 0.0713501 0.27832
+5 0 13 0 0.0893555 0.349365
+5 0 14 0 0.109619 0.429199
+5 0 15 0 0.131592 0.515625
+5 0 16 0 0.154663 0.606445
+5 0 17 0 0.177246 0.694824
+5 0 18 0 0.19812 0.776855
+5 0 19 0 0.216675 0.849609
+5 0 20 0 0.227051 0.890137
+5 0 21 0 0.229004 0.898438
+5 0 22 0 0.231201 0.906738
+5 0 23 0 0.233398 0.915527
+5 0 24 0 0.235596 0.923828
+5 0 25 0 0.237915 0.933594
+5 0 26 0 0.240601 0.943848
+5 0 27 0 0.243652 0.955566
+5 0 28 0 0.24707 0.969238
+5 0 29 0 0.250732 0.98291
+5 0 30 0 0.254395 0.998047
+5 0 31 0 0.258301 1
+5 1 0 0.0697632 0.0132065 0
+5 1 1 0.0698242 0.0127945 0.00244713
+5 1 2 0.0695801 0.0119247 0.0196075
+5 1 3 0.067749 0.0108566 0.0298157
+5 1 4 0.0588379 0.013855 0.0368652
+5 1 5 0.0509338 0.017868 0.0435791
+5 1 6 0.047699 0.0200043 0.0574036
+5 1 7 0.0388794 0.0230408 0.074646
+5 1 8 0 0.0275574 0.0969238
+5 1 9 0 0.0341492 0.126099
+5 1 10 0 0.0435181 0.165161
+5 1 11 0 0.0562439 0.216553
+5 1 12 0 0.0716553 0.27832
+5 1 13 0 0.0895996 0.349365
+5 1 14 0 0.109802 0.429199
+5 1 15 0 0.131714 0.515625
+5 1 16 0 0.154785 0.606445
+5 1 17 0 0.177246 0.694824
+5 1 18 0 0.19812 0.776855
+5 1 19 0 0.216675 0.849609
+5 1 20 0 0.227051 0.890137
+5 1 21 0 0.229004 0.898438
+5 1 22 0 0.231201 0.906738
+5 1 23 0 0.233398 0.915527
+5 1 24 0 0.235596 0.923828
+5 1 25 0 0.238037 0.933594
+5 1 26 0 0.240723 0.943848
+5 1 27 0 0.243652 0.955566
+5 1 28 0 0.24707 0.969238
+5 1 29 0 0.250732 0.98291
+5 1 30 0 0.254395 0.998047
+5 1 31 0 0.258301 1
+5 2 0 0.0671997 0.0213165 0
+5 2 1 0.0673828 0.0211792 0
+5 2 2 0.0675659 0.020874 0.0184479
+5 2 3 0.0664062 0.0201721 0.0290222
+5 2 4 0.0592041 0.0196686 0.0371704
+5 2 5 0.0503235 0.0213013 0.0434875
+5 2 6 0.0469971 0.0230713 0.057312
+5 2 7 0.0379944 0.0255737 0.074646
+5 2 8 0 0.0294952 0.0968628
+5 2 9 0 0.0355835 0.126099
+5 2 10 0 0.0445862 0.165161
+5 2 11 0 0.0570068 0.216553
+5 2 12 0 0.0722656 0.27832
+5 2 13 0 0.0900269 0.349365
+5 2 14 0 0.110107 0.429199
+5 2 15 0 0.131958 0.515625
+5 2 16 0 0.154907 0.606445
+5 2 17 0 0.177368 0.694824
+5 2 18 0 0.198242 0.776855
+5 2 19 0 0.216797 0.849609
+5 2 20 0 0.227051 0.890137
+5 2 21 0 0.229126 0.898438
+5 2 22 0 0.231201 0.906738
+5 2 23 0 0.233398 0.915527
+5 2 24 0 0.235596 0.923828
+5 2 25 0 0.238037 0.933594
+5 2 26 0 0.240723 0.943848
+5 2 27 0 0.243652 0.955566
+5 2 28 0 0.24707 0.969238
+5 2 29 0 0.250732 0.98291
+5 2 30 0 0.254395 0.998047
+5 2 31 0 0.258301 1
+5 3 0 0.0621338 0.0282593 0
+5 3 1 0.0623779 0.0283356 0
+5 3 2 0.0628662 0.0284576 0.0168762
+5 3 3 0.0634766 0.0285339 0.0274811
+5 3 4 0.0596008 0.0272675 0.0375671
+5 3 5 0.0491943 0.0261078 0.0432739
+5 3 6 0.0457153 0.0275269 0.0571899
+5 3 7 0.0362854 0.0294495 0.0745239
+5 3 8 0 0.0326538 0.0968018
+5 3 9 0 0.0379944 0.126099
+5 3 10 0 0.0464172 0.165161
+5 3 11 0 0.0584106 0.216553
+5 3 12 0 0.0733032 0.27832
+5 3 13 0 0.0908203 0.349365
+5 3 14 0 0.110657 0.429199
+5 3 15 0 0.132324 0.515625
+5 3 16 0 0.155273 0.606445
+5 3 17 0 0.177612 0.694824
+5 3 18 0 0.198486 0.776855
+5 3 19 0 0.216919 0.849609
+5 3 20 0 0.227173 0.890137
+5 3 21 0 0.229248 0.898438
+5 3 22 0 0.231323 0.906738
+5 3 23 0 0.233521 0.915527
+5 3 24 0 0.235596 0.923828
+5 3 25 0 0.238037 0.933594
+5 3 26 0 0.240723 0.943848
+5 3 27 0 0.243774 0.955566
+5 3 28 0 0.24707 0.969238
+5 3 29 0 0.250732 0.983398
+5 3 30 0 0.254395 0.998047
+5 3 31 0 0.258301 1
+5 4 0 0.0545654 0.0342712 0
+5 4 1 0.0544128 0.0343323 0.00727844
+5 4 2 0.0543213 0.0344543 0.0164337
+5 4 3 0.0545654 0.0349426 0.0247192
+5 4 4 0.0561829 0.0363464 0.0360413
+5 4 5 0.0469971 0.0328674 0.0429077
+5 4 6 0.0431519 0.0339661 0.0569153
+5 4 7 0.0327148 0.0353088 0.0743408
+5 4 8 0 0.0376892 0.0966797
+5 4 9 0 0.0420837 0.125977
+5 4 10 0 0.0496521 0.165039
+5 4 11 0 0.0609131 0.216431
+5 4 12 0 0.0751953 0.278076
+5 4 13 0 0.0922241 0.349365
+5 4 14 0 0.111755 0.428955
+5 4 15 0 0.133179 0.515625
+5 4 16 0 0.155884 0.606445
+5 4 17 0 0.178101 0.694824
+5 4 18 0 0.198853 0.776855
+5 4 19 0 0.217285 0.849609
+5 4 20 0 0.227417 0.890137
+5 4 21 0 0.22937 0.898438
+5 4 22 0 0.231445 0.906738
+5 4 23 0 0.233643 0.915527
+5 4 24 0 0.235718 0.923828
+5 4 25 0 0.238159 0.933594
+5 4 26 0 0.240845 0.943848
+5 4 27 0 0.243774 0.955566
+5 4 28 0 0.247192 0.969238
+5 4 29 0 0.250732 0.983398
+5 4 30 0 0.254395 0.998047
+5 4 31 0 0.258301 1
+5 5 0 0.0499878 0.0444946 0
+5 5 1 0.0496216 0.0443726 0.00169182
+5 5 2 0.0490112 0.0441589 0.0154343
+5 5 3 0.0478821 0.0437927 0.0235291
+5 5 4 0.045929 0.0432434 0.0322571
+5 5 5 0.0422363 0.0422363 0.0422363
+5 5 6 0.0374756 0.0429993 0.056366
+5 5 7 0.0235138 0.0438538 0.0740356
+5 5 8 0 0.0453796 0.0964966
+5 5 9 0 0.0487061 0.125854
+5 5 10 0 0.0551453 0.164917
+5 5 11 0 0.0653687 0.216309
+5 5 12 0 0.0787354 0.278076
+5 5 13 0 0.0949097 0.349365
+5 5 14 0 0.113831 0.428955
+5 5 15 0 0.134766 0.515625
+5 5 16 0 0.157104 0.606445
+5 5 17 0 0.179077 0.694824
+5 5 18 0 0.199585 0.776855
+5 5 19 0 0.217773 0.849609
+5 5 20 0 0.227905 0.890137
+5 5 21 0 0.229736 0.898438
+5 5 22 0 0.231812 0.906738
+5 5 23 0 0.233887 0.915527
+5 5 24 0 0.235962 0.923828
+5 5 25 0 0.238281 0.933594
+5 5 26 0 0.240967 0.943848
+5 5 27 0 0.243896 0.955566
+5 5 28 0 0.247314 0.969238
+5 5 29 0 0.250732 0.983398
+5 5 30 0 0.254639 0.998047
+5 5 31 0 0.258301 1
+5 6 0 0.0376282 0.056366 0
+5 6 1 0.0375366 0.056366 0
+5 6 2 0.0369263 0.0561523 0
+5 6 3 0.0357971 0.0557861 0.0185852
+5 6 4 0.0336609 0.0552063 0.0291595
+5 6 5 0.0297241 0.0548706 0.040802
+5 6 6 0.0203247 0.0552063 0.0552368
+5 6 7 0 0.0556335 0.0732422
+5 6 8 0 0.0564575 0.0960693
+5 6 9 0 0.0586853 0.125488
+5 6 10 0 0.0639648 0.164673
+5 6 11 0 0.072876 0.216187
+5 6 12 0 0.0848389 0.278076
+5 6 13 0 0.0997925 0.349121
+5 6 14 0 0.117554 0.428955
+5 6 15 0 0.137573 0.515625
+5 6 16 0 0.159302 0.606445
+5 6 17 0 0.180786 0.694824
+5 6 18 0 0.200928 0.776855
+5 6 19 0 0.218872 0.849609
+5 6 20 0 0.22876 0.890625
+5 6 21 0 0.230469 0.898438
+5 6 22 0 0.2323 0.906738
+5 6 23 0 0.234375 0.915527
+5 6 24 0 0.236328 0.923828
+5 6 25 0 0.238647 0.933594
+5 6 26 0 0.241333 0.944336
+5 6 27 0 0.244141 0.956055
+5 6 28 0 0.247437 0.969238
+5 6 29 0 0.250977 0.983398
+5 6 30 0 0.254639 0.998047
+5 6 31 0 0.258545 1
+5 7 0 0 0.0713501 0
+5 7 1 0 0.0713501 0
+5 7 2 0 0.0714111 0
+5 7 3 0 0.0712891 0
+5 7 4 0 0.071228 0.0227356
+5 7 5 0 0.0712891 0.0372009
+5 7 6 0 0.0714722 0.0528259
+5 7 7 0 0.0716553 0.0716553
+5 7 8 0 0.0719604 0.0950928
+5 7 9 0 0.0732422 0.124878
+5 7 10 0 0.0773315 0.164185
+5 7 11 0 0.085022 0.215698
+5 7 12 0 0.0952759 0.277832
+5 7 13 0 0.108398 0.349121
+5 7 14 0 0.124451 0.428955
+5 7 15 0 0.143066 0.515137
+5 7 16 0 0.163574 0.606445
+5 7 17 0 0.184082 0.694824
+5 7 18 0 0.203491 0.776855
+5 7 19 0 0.220947 0.849609
+5 7 20 0 0.230469 0.890625
+5 7 21 0 0.231812 0.898438
+5 7 22 0 0.233398 0.906738
+5 7 23 0 0.235229 0.915527
+5 7 24 0 0.237183 0.924316
+5 7 25 0 0.23938 0.933594
+5 7 26 0 0.241821 0.944336
+5 7 27 0 0.244629 0.956055
+5 7 28 0 0.247925 0.969238
+5 7 29 0 0.251465 0.983398
+5 7 30 0 0.255127 0.998047
+5 7 31 0 0.258789 1
+5 8 0 0 0.0921021 0
+5 8 1 0 0.0921631 0
+5 8 2 0 0.0921631 0
+5 8 3 0 0.0922241 0
+5 8 4 0 0.0922852 0
+5 8 5 0 0.0924072 0.028595
+5 8 6 0 0.0925903 0.0477295
+5 8 7 0 0.0928345 0.0682983
+5 8 8 0 0.0930176 0.0930176
+5 8 9 0 0.09375 0.123718
+5 8 10 0 0.0969238 0.163208
+5 8 11 0 0.103455 0.214966
+5 8 12 0 0.112 0.277344
+5 8 13 0 0.122925 0.348633
+5 8 14 0 0.136597 0.428711
+5 8 15 0 0.152832 0.515137
+5 8 16 0 0.171387 0.605957
+5 8 17 0 0.190308 0.694824
+5 8 18 0 0.208496 0.776855
+5 8 19 0 0.224976 0.849609
+5 8 20 0 0.233765 0.890625
+5 8 21 0 0.234375 0.898438
+5 8 22 0 0.235596 0.907227
+5 8 23 0 0.237061 0.915527
+5 8 24 0 0.23877 0.924316
+5 8 25 0 0.240723 0.933594
+5 8 26 0 0.243042 0.944336
+5 8 27 0 0.245605 0.956055
+5 8 28 0 0.248779 0.969238
+5 8 29 0 0.252197 0.983398
+5 8 30 0 0.255615 0.998047
+5 8 31 0 0.259277 1
+5 9 0 0 0.119324 0
+5 9 1 0 0.119324 0
+5 9 2 0 0.119385 0
+5 9 3 0 0.119385 0
+5 9 4 0 0.119446 0
+5 9 5 0 0.119568 0
+5 9 6 0 0.119751 0.036377
+5 9 7 0 0.120056 0.061676
+5 9 8 0 0.120422 0.0888062
+5 9 9 0 0.121277 0.121338
+5 9 10 0 0.123901 0.161621
+5 9 11 0 0.129639 0.213623
+5 9 12 0 0.136841 0.276367
+5 9 13 0 0.145508 0.348145
+5 9 14 0 0.156372 0.428467
+5 9 15 0 0.169556 0.515137
+5 9 16 0 0.185059 0.605957
+5 9 17 0 0.201538 0.694824
+5 9 18 0 0.217529 0.776855
+5 9 19 0 0.232422 0.850098
+5 9 20 0 0.23999 0.891113
+5 9 21 0 0.23938 0.898926
+5 9 22 0 0.239624 0.907227
+5 9 23 0 0.240479 0.916016
+5 9 24 0 0.241577 0.924316
+5 9 25 0 0.243164 0.934082
+5 9 26 0 0.245117 0.944336
+5 9 27 0 0.247559 0.956055
+5 9 28 0 0.250244 0.969238
+5 9 29 0 0.253418 0.983398
+5 9 30 0 0.256836 0.998047
+5 9 31 0 0.260254 1
+5 10 0 0 0.155151 0
+5 10 1 0 0.155151 0
+5 10 2 0 0.155151 0
+5 10 3 0 0.155151 0
+5 10 4 0 0.155273 0
+5 10 5 0 0.155273 0
+5 10 6 0 0.155396 0
+5 10 7 0 0.155518 0.0484924
+5 10 8 0 0.155762 0.0817261
+5 10 9 0 0.156738 0.117188
+5 10 10 0 0.159058 0.15918
+5 10 11 0 0.164185 0.21167
+5 10 12 0 0.17041 0.274658
+5 10 13 0 0.177246 0.346924
+5 10 14 0 0.185303 0.427734
+5 10 15 0 0.19519 0.514648
+5 10 16 0 0.207031 0.605957
+5 10 17 0 0.219849 0.694824
+5 10 18 0 0.23291 0.777344
+5 10 19 0 0.245239 0.850098
+5 10 20 0 0.250732 0.89209
+5 10 21 0 0.247925 0.899902
+5 10 22 0 0.246704 0.908203
+5 10 23 0 0.24646 0.916504
+5 10 24 0 0.246826 0.924805
+5 10 25 0 0.247681 0.93457
+5 10 26 0 0.249023 0.944824
+5 10 27 0 0.250732 0.956543
+5 10 28 0 0.253174 0.969727
+5 10 29 0 0.255859 0.983887
+5 10 30 0 0.259033 0.998535
+5 10 31 0 0.262207 1
+5 11 0 0 0.202637 0
+5 11 1 0 0.202637 0
+5 11 2 0 0.202759 0
+5 11 3 0 0.202759 0
+5 11 4 0 0.202759 0
+5 11 5 0 0.202881 0
+5 11 6 0 0.202881 0
+5 11 7 0 0.202759 0
+5 11 8 0 0.202759 0.067627
+5 11 9 0 0.203125 0.110352
+5 11 10 0 0.204834 0.155518
+5 11 11 0 0.208496 0.208618
+5 11 12 0 0.213501 0.271973
+5 11 13 0 0.218872 0.344971
+5 11 14 0 0.224609 0.426514
+5 11 15 0 0.231201 0.51416
+5 11 16 0 0.239258 0.605957
+5 11 17 0 0.247803 0.694824
+5 11 18 0 0.256836 0.777344
+5 11 19 0 0.265625 0.850586
+5 11 20 0 0.268066 0.893555
+5 11 21 0 0.262207 0.900879
+5 11 22 0 0.258545 0.90918
+5 11 23 0 0.256592 0.91748
+5 11 24 0 0.255615 0.925781
+5 11 25 0 0.255371 0.935059
+5 11 26 0 0.255615 0.945801
+5 11 27 0 0.256592 0.957031
+5 11 28 0 0.258057 0.970215
+5 11 29 0 0.260254 0.984375
+5 11 30 0 0.262695 0.999023
+5 11 31 0 0.265381 1
+5 12 0 0 0.261475 0
+5 12 1 0 0.261475 0
+5 12 2 0 0.261475 0
+5 12 3 0 0.261475 0
+5 12 4 0 0.261475 0
+5 12 5 0 0.261719 0
+5 12 6 0 0.261719 0
+5 12 7 0 0.261719 0
+5 12 8 0 0.261719 0
+5 12 9 0 0.261963 0.0947876
+5 12 10 0 0.262695 0.147583
+5 12 11 0 0.264404 0.203369
+5 12 12 0 0.267578 0.267822
+5 12 13 0 0.271729 0.341797
+5 12 14 0 0.275635 0.424072
+5 12 15 0 0.279297 0.512695
+5 12 16 0 0.283447 0.60498
+5 12 17 0 0.287598 0.694824
+5 12 18 0 0.291992 0.777832
+5 12 19 0 0.296387 0.851074
+5 12 20 0 0.294922 0.895996
+5 12 21 0 0.284668 0.90332
+5 12 22 0 0.277588 0.911133
+5 12 23 0 0.272949 0.919434
+5 12 24 0 0.269775 0.927246
+5 12 25 0 0.267578 0.936523
+5 12 26 0 0.266357 0.946777
+5 12 27 0 0.265869 0.958496
+5 12 28 0 0.266357 0.971191
+5 12 29 0 0.267334 0.984863
+5 12 30 0 0.268799 0.999512
+5 12 31 0 0.270752 1
+5 13 0 0 0.32959 0
+5 13 1 0 0.32959 0
+5 13 2 0 0.32959 0
+5 13 3 0 0.329834 0
+5 13 4 0 0.329834 0
+5 13 5 0 0.329834 0
+5 13 6 0 0.329834 0
+5 13 7 0 0.330078 0
+5 13 8 0 0.330078 0
+5 13 9 0 0.330322 0.0456238
+5 13 10 0 0.330811 0.129272
+5 13 11 0 0.331543 0.192871
+5 13 12 0 0.333252 0.260498
+5 13 13 0 0.335938 0.335938
+5 13 14 0 0.338135 0.419922
+5 13 15 0 0.339355 0.509766
+5 13 16 0 0.340088 0.603516
+5 13 17 0 0.339844 0.694336
+5 13 18 0 0.339355 0.777832
+5 13 19 0 0.338867 0.851562
+5 13 20 0 0.333252 0.899902
+5 13 21 0 0.317139 0.906738
+5 13 22 0 0.30542 0.914551
+5 13 23 0 0.297119 0.922363
+5 13 24 0 0.29126 0.930176
+5 13 25 0 0.286621 0.938965
+5 13 26 0 0.282959 0.94873
+5 13 27 0 0.280518 0.959961
+5 13 28 0 0.279053 0.972656
+5 13 29 0 0.278564 0.986328
+5 13 30 0 0.278564 1
+5 13 31 0 0.279297 1
+5 14 0 0 0.406982 0
+5 14 1 0 0.406982 0
+5 14 2 0 0.406982 0
+5 14 3 0 0.406982 0
+5 14 4 0 0.406982 0
+5 14 5 0 0.406982 0
+5 14 6 0 0.406982 0
+5 14 7 0 0.406982 0
+5 14 8 0 0.407227 0
+5 14 9 0 0.407471 0
+5 14 10 0 0.408203 0.0844116
+5 14 11 0 0.408936 0.171509
+5 14 12 0 0.409912 0.246826
+5 14 13 0 0.411133 0.325928
+5 14 14 0 0.412109 0.412354
+5 14 15 0 0.411865 0.504395
+5 14 16 0 0.409668 0.600586
+5 14 17 0 0.405518 0.692871
+5 14 18 0 0.400146 0.777344
+5 14 19 0 0.394775 0.852051
+5 14 20 0 0.385254 0.904785
+5 14 21 0 0.362061 0.912109
+5 14 22 0 0.344482 0.919434
+5 14 23 0 0.331787 0.926758
+5 14 24 0 0.322021 0.93457
+5 14 25 0 0.314209 0.942871
+5 14 26 0 0.307373 0.952637
+5 14 27 0 0.302246 0.963379
+5 14 28 0 0.29834 0.975586
+5 14 29 0 0.29541 0.98877
+5 14 30 0 0.293457 1
+5 14 31 0 0.292236 1
+5 15 0 0 0.490967 0
+5 15 1 0 0.490967 0
+5 15 2 0 0.490967 0
+5 15 3 0 0.490967 0
+5 15 4 0 0.490967 0
+5 15 5 0 0.490967 0
+5 15 6 0 0.491211 0
+5 15 7 0 0.491211 0
+5 15 8 0 0.491455 0
+5 15 9 0 0.491699 0
+5 15 10 0 0.492188 0
+5 15 11 0 0.493164 0.127686
+5 15 12 0 0.494385 0.22229
+5 15 13 0 0.495605 0.308838
+5 15 14 0 0.496094 0.399414
+5 15 15 0 0.494873 0.494873
+5 15 16 0 0.490967 0.59375
+5 15 17 0 0.483643 0.688965
+5 15 18 0 0.474121 0.775391
+5 15 19 0 0.463623 0.851562
+5 15 20 0 0.450928 0.911133
+5 15 21 0 0.420166 0.919434
+5 15 22 0 0.39624 0.927246
+5 15 23 0 0.37793 0.934082
+5 15 24 0 0.36377 0.941406
+5 15 25 0 0.351562 0.949219
+5 15 26 0 0.341064 0.958008
+5 15 27 0 0.332031 0.968262
+5 15 28 0 0.324951 0.97998
+5 15 29 0 0.319092 0.992676
+5 15 30 0 0.314453 1
+5 15 31 0 0.310791 1
+5 16 0 0 0.580566 0
+5 16 1 0 0.580566 0
+5 16 2 0 0.580566 0
+5 16 3 0 0.580566 0
+5 16 4 0 0.580566 0
+5 16 5 0 0.580566 0
+5 16 6 0 0.580566 0
+5 16 7 0 0.581055 0
+5 16 8 0 0.581055 0
+5 16 9 0 0.581055 0
+5 16 10 0 0.581543 0
+5 16 11 0 0.583008 0
+5 16 12 0 0.584473 0.178345
+5 16 13 0 0.585938 0.280762
+5 16 14 0 0.586914 0.378418
+5 16 15 0 0.585938 0.47876
+5 16 16 0 0.581543 0.581543
+5 16 17 0 0.572266 0.680664
+5 16 18 0 0.55957 0.770508
+5 16 19 0 0.544922 0.849121
+5 16 20 0 0.529297 0.914062
+5 16 21 0 0.492432 0.928711
+5 16 22 0 0.46167 0.937988
+5 16 23 0 0.437256 0.945312
+5 16 24 0 0.417725 0.95166
+5 16 25 0 0.400391 0.958984
+5 16 26 0 0.385254 0.966797
+5 16 27 0 0.371826 0.976074
+5 16 28 0 0.360596 0.986816
+5 16 29 0 0.351074 0.998535
+5 16 30 0 0.343018 1
+5 16 31 0 0.336182 1
+5 17 0 0 0.67041 0
+5 17 1 0 0.67041 0
+5 17 2 0 0.67041 0
+5 17 3 0 0.67041 0
+5 17 4 0 0.67041 0
+5 17 5 0 0.67041 0
+5 17 6 0 0.67041 0
+5 17 7 0 0.67041 0
+5 17 8 0 0.67041 0
+5 17 9 0 0.67041 0
+5 17 10 0 0.670898 0
+5 17 11 0 0.671875 0
+5 17 12 0 0.673828 0.0738525
+5 17 13 0 0.67627 0.237183
+5 17 14 0 0.678223 0.347412
+5 17 15 0 0.678223 0.454102
+5 17 16 0 0.674316 0.562012
+5 17 17 0 0.665527 0.666016
+5 17 18 0 0.651367 0.760742
+5 17 19 0 0.633789 0.843262
+5 17 20 0 0.614258 0.910645
+5 17 21 0 0.576172 0.937988
+5 17 22 0 0.539062 0.951172
+5 17 23 0 0.508301 0.959961
+5 17 24 0 0.483154 0.966309
+5 17 25 0 0.460205 0.973145
+5 17 26 0 0.439697 0.97998
+5 17 27 0 0.421143 0.987793
+5 17 28 0 0.405273 0.99707
+5 17 29 0 0.391113 1
+5 17 30 0 0.378906 1
+5 17 31 0 0.368408 1
+5 18 0 0 0.754395 0
+5 18 1 0 0.754395 0
+5 18 2 0 0.754395 0
+5 18 3 0 0.754395 0
+5 18 4 0 0.754395 0
+5 18 5 0 0.754395 0
+5 18 6 0 0.754395 0
+5 18 7 0 0.754395 0
+5 18 8 0 0.754395 0
+5 18 9 0 0.754883 0
+5 18 10 0 0.754883 0
+5 18 11 0 0.755371 0
+5 18 12 0 0.757812 0
+5 18 13 0 0.760254 0.165771
+5 18 14 0 0.763672 0.304443
+5 18 15 0 0.765137 0.42041
+5 18 16 0 0.763672 0.53418
+5 18 17 0 0.756836 0.643555
+5 18 18 0 0.743652 0.743652
+5 18 19 0 0.725098 0.831055
+5 18 20 0 0.703125 0.90332
+5 18 21 0 0.666016 0.943848
+5 18 22 0 0.625977 0.965332
+5 18 23 0 0.589844 0.977051
+5 18 24 0 0.559082 0.984863
+5 18 25 0 0.530273 0.991699
+5 18 26 0 0.503418 0.997559
+5 18 27 0 0.479248 1
+5 18 28 0 0.457764 1
+5 18 29 0 0.438477 1
+5 18 30 0 0.421631 1
+5 18 31 0 0.406738 1
+5 19 0 0 0.830566 0
+5 19 1 0 0.830566 0
+5 19 2 0 0.830566 0
+5 19 3 0 0.830566 0
+5 19 4 0 0.830566 0
+5 19 5 0 0.830566 0
+5 19 6 0 0.830566 0
+5 19 7 0 0.830566 0
+5 19 8 0 0.830566 0
+5 19 9 0 0.831055 0
+5 19 10 0 0.831055 0
+5 19 11 0 0.831055 0
+5 19 12 0 0.833008 0
+5 19 13 0 0.835938 0
+5 19 14 0 0.839844 0.246582
+5 19 15 0 0.843262 0.378662
+5 19 16 0 0.844238 0.499268
+5 19 17 0 0.840332 0.61377
+5 19 18 0 0.82959 0.719727
+5 19 19 0 0.8125 0.8125
+5 19 20 0 0.789551 0.889648
+5 19 21 0 0.756348 0.943359
+5 19 22 0 0.716309 0.975586
+5 19 23 0 0.676758 0.994141
+5 19 24 0 0.641113 1
+5 19 25 0 0.606934 1
+5 19 26 0 0.574219 1
+5 19 27 0 0.543945 1
+5 19 28 0 0.516602 1
+5 19 29 0 0.491699 1
+5 19 30 0 0.469482 1
+5 19 31 0 0.449707 1
+5 20 0 0 0.896973 0
+5 20 1 0 0.896973 0
+5 20 2 0 0.896973 0
+5 20 3 0 0.896973 0
+5 20 4 0 0.896973 0
+5 20 5 0 0.896973 0
+5 20 6 0 0.896973 0
+5 20 7 0 0.896973 0
+5 20 8 0 0.896973 0
+5 20 9 0 0.896973 0
+5 20 10 0 0.897461 0
+5 20 11 0 0.897461 0
+5 20 12 0 0.897949 0
+5 20 13 0 0.901367 0
+5 20 14 0 0.905762 0.160522
+5 20 15 0 0.910645 0.329346
+5 20 16 0 0.913574 0.458984
+5 20 17 0 0.912598 0.579102
+5 20 18 0 0.905273 0.689453
+5 20 19 0 0.890137 0.787598
+5 20 20 0 0.869141 0.869141
+5 20 21 0 0.840332 0.93457
+5 20 22 0 0.803711 0.979004
+5 20 23 0 0.763672 1
+5 20 24 0 0.725586 1
+5 20 25 0 0.687012 1
+5 20 26 0 0.648926 1
+5 20 27 0 0.612793 1
+5 20 28 0 0.579102 1
+5 20 29 0 0.548828 1
+5 20 30 0 0.520996 1
+5 20 31 0 0.496338 1
+5 21 0 0 0.953613 0
+5 21 1 0 0.953613 0
+5 21 2 0 0.953613 0
+5 21 3 0 0.953613 0
+5 21 4 0 0.953613 0
+5 21 5 0 0.953613 0
+5 21 6 0 0.953613 0
+5 21 7 0 0.953613 0
+5 21 8 0 0.953613 0
+5 21 9 0 0.953613 0
+5 21 10 0 0.953613 0
+5 21 11 0 0.954102 0
+5 21 12 0 0.954102 0
+5 21 13 0 0.957031 0
+5 21 14 0 0.961914 0
+5 21 15 0 0.967285 0.268555
+5 21 16 0 0.972168 0.413574
+5 21 17 0 0.974121 0.539062
+5 21 18 0 0.970215 0.653809
+5 21 19 0 0.958984 0.755859
+5 21 20 0 0.94043 0.843262
+5 21 21 0 0.915527 0.916016
+5 21 22 0 0.883789 0.97168
+5 21 23 0 0.847168 1
+5 21 24 0 0.808594 1
+5 21 25 0 0.767578 1
+5 21 26 0 0.725586 1
+5 21 27 0 0.68457 1
+5 21 28 0 0.645508 1
+5 21 29 0 0.609375 1
+5 21 30 0 0.576172 1
+5 21 31 0 0.546387 1
+5 22 0 0 1 0
+5 22 1 0 1 0
+5 22 2 0 1 0
+5 22 3 0 1 0
+5 22 4 0 1 0
+5 22 5 0 1 0
+5 22 6 0 1 0
+5 22 7 0 1 0
+5 22 8 0 1 0
+5 22 9 0 1 0
+5 22 10 0 1 0
+5 22 11 0 1 0
+5 22 12 0 1 0
+5 22 13 0 1 0
+5 22 14 0 1 0
+5 22 15 0 1 0.187134
+5 22 16 0 1 0.363037
+5 22 17 0 1 0.49585
+5 22 18 0 1 0.614258
+5 22 19 0 1 0.720215
+5 22 20 0 1 0.811523
+5 22 21 0 0.97998 0.889648
+5 22 22 0 0.953125 0.953125
+5 22 23 0 0.920898 1
+5 22 24 0 0.885254 1
+5 22 25 0 0.844238 1
+5 22 26 0 0.800781 1
+5 22 27 0 0.756348 1
+5 22 28 0 0.712891 1
+5 22 29 0 0.671875 1
+5 22 30 0 0.633301 1
+5 22 31 0 0.598145 1
+5 23 0 0 1 0
+5 23 1 0 1 0
+5 23 2 0 1 0
+5 23 3 0 1 0
+5 23 4 0 1 0
+5 23 5 0 1 0
+5 23 6 0 1 0
+5 23 7 0 1 0
+5 23 8 0 1 0
+5 23 9 0 1 0
+5 23 10 0 1 0
+5 23 11 0 1 0
+5 23 12 0 1 0
+5 23 13 0 1 0
+5 23 14 0 1 0
+5 23 15 0 1 0
+5 23 16 0 1 0.30835
+5 23 17 0 1 0.451416
+5 23 18 0 1 0.57373
+5 23 19 0 1 0.682617
+5 23 20 0 1 0.777344
+5 23 21 0 1 0.859375
+5 23 22 0 1 0.928223
+5 23 23 0 0.981445 0.981934
+5 23 24 0 0.950195 1
+5 23 25 0 0.912109 1
+5 23 26 0 0.869141 1
+5 23 27 0 0.823242 1
+5 23 28 0 0.776855 1
+5 23 29 0 0.731934 1
+5 23 30 0 0.688965 1
+5 23 31 0 0.648926 1
+5 24 0 0 1 0
+5 24 1 0 1 0
+5 24 2 0 1 0
+5 24 3 0 1 0
+5 24 4 0 1 0
+5 24 5 0 1 0
+5 24 6 0 1 0
+5 24 7 0 1 0
+5 24 8 0 1 0
+5 24 9 0 1 0
+5 24 10 0 1 0
+5 24 11 0 1 0
+5 24 12 0 1 0
+5 24 13 0 1 0
+5 24 14 0 1 0
+5 24 15 0 1 0
+5 24 16 0 1 0.24585
+5 24 17 0 1 0.406006
+5 24 18 0 1 0.532715
+5 24 19 0 1 0.644531
+5 24 20 0 1 0.741699
+5 24 21 0 1 0.827148
+5 24 22 0 1 0.899414
+5 24 23 0 1 0.95752
+5 24 24 0 1 1
+5 24 25 0 0.970215 1
+5 24 26 0 0.929688 1
+5 24 27 0 0.884277 1
+5 24 28 0 0.836914 1
+5 24 29 0 0.789062 1
+5 24 30 0 0.742676 1
+5 24 31 0 0.69873 1
+5 25 0 0 1 0
+5 25 1 0 1 0
+5 25 2 0 1 0
+5 25 3 0 1 0
+5 25 4 0 1 0
+5 25 5 0 1 0
+5 25 6 0 1 0
+5 25 7 0 1 0
+5 25 8 0 1 0
+5 25 9 0 1 0
+5 25 10 0 1 0
+5 25 11 0 1 0
+5 25 12 0 1 0
+5 25 13 0 1 0
+5 25 14 0 1 0
+5 25 15 0 1 0
+5 25 16 0 1 0.151001
+5 25 17 0 1 0.354004
+5 25 18 0 1 0.487549
+5 25 19 0 1 0.601562
+5 25 20 0 1 0.701172
+5 25 21 0 1 0.789062
+5 25 22 0 1 0.865234
+5 25 23 0 1 0.927734
+5 25 24 0 1 0.979004
+5 25 25 0 1 1
+5 25 26 0 0.987305 1
+5 25 27 0 0.944336 1
+5 25 28 0 0.896973 1
+5 25 29 0 0.847656 1
+5 25 30 0 0.798828 1
+5 25 31 0 0.751465 1
+5 26 0 0 1 0
+5 26 1 0 1 0
+5 26 2 0 1 0
+5 26 3 0 1 0
+5 26 4 0 1 0
+5 26 5 0 1 0
+5 26 6 0 1 0
+5 26 7 0 1 0
+5 26 8 0 1 0
+5 26 9 0 1 0
+5 26 10 0 1 0
+5 26 11 0 1 0
+5 26 12 0 1 0
+5 26 13 0 1 0
+5 26 14 0 1 0
+5 26 15 0 1 0
+5 26 16 0 1 0
+5 26 17 0 1 0.291992
+5 26 18 0 1 0.437256
+5 26 19 0 1 0.554199
+5 26 20 0 1 0.655762
+5 26 21 0 1 0.746094
+5 26 22 0 1 0.825195
+5 26 23 0 1 0.891602
+5 26 24 0 1 0.946777
+5 26 25 0 1 0.99707
+5 26 26 0 1 1
+5 26 27 0 1 1
+5 26 28 0 0.956055 1
+5 26 29 0 0.906738 1
+5 26 30 0 0.856445 1
+5 26 31 0 0.806152 1
+5 27 0 0 1 0
+5 27 1 0 1 0
+5 27 2 0 1 0
+5 27 3 0 1 0
+5 27 4 0 1 0
+5 27 5 0 1 0
+5 27 6 0 1 0
+5 27 7 0 1 0
+5 27 8 0 1 0
+5 27 9 0 1 0
+5 27 10 0 1 0
+5 27 11 0 1 0
+5 27 12 0 1 0
+5 27 13 0 1 0
+5 27 14 0 1 0
+5 27 15 0 1 0
+5 27 16 0 1 0
+5 27 17 0 1 0.209595
+5 27 18 0 1 0.380859
+5 27 19 0 1 0.503418
+5 27 20 0 1 0.606445
+5 27 21 0 1 0.69873
+5 27 22 0 1 0.780273
+5 27 23 0 1 0.849609
+5 27 24 0 1 0.908203
+5 27 25 0 1 0.962891
+5 27 26 0 1 1
+5 27 27 0 1 1
+5 27 28 0 1 1
+5 27 29 0 0.964355 1
+5 27 30 0 0.913574 1
+5 27 31 0 0.862305 1
+5 28 0 0 1 0
+5 28 1 0 1 0
+5 28 2 0 1 0
+5 28 3 0 1 0
+5 28 4 0 1 0
+5 28 5 0 1 0
+5 28 6 0 1 0
+5 28 7 0 1 0
+5 28 8 0 1 0
+5 28 9 0 1 0
+5 28 10 0 1 0
+5 28 11 0 1 0
+5 28 12 0 1 0
+5 28 13 0 1 0
+5 28 14 0 1 0
+5 28 15 0 1 0
+5 28 16 0 1 0
+5 28 17 0 1 0
+5 28 18 0 1 0.315674
+5 28 19 0 1 0.44751
+5 28 20 0 1 0.553711
+5 28 21 0 1 0.647461
+5 28 22 0 1 0.730469
+5 28 23 0 1 0.802246
+5 28 24 0 1 0.86377
+5 28 25 0 1 0.921875
+5 28 26 0 1 0.975586
+5 28 27 0 1 1
+5 28 28 0 1 1
+5 28 29 0 1 1
+5 28 30 0 0.969727 1
+5 28 31 0 0.918457 1
+5 29 0 0 1 0
+5 29 1 0 1 0
+5 29 2 0 1 0
+5 29 3 0 1 0
+5 29 4 0 1 0
+5 29 5 0 1 0
+5 29 6 0 1 0
+5 29 7 0 1 0
+5 29 8 0 1 0
+5 29 9 0 1 0
+5 29 10 0 1 0
+5 29 11 0 1 0
+5 29 12 0 1 0
+5 29 13 0 1 0
+5 29 14 0 1 0
+5 29 15 0 1 0
+5 29 16 0 1 0
+5 29 17 0 1 0
+5 29 18 0 1 0.233276
+5 29 19 0 1 0.385742
+5 29 20 0 1 0.496338
+5 29 21 0 1 0.591797
+5 29 22 0 1 0.67627
+5 29 23 0 1 0.749023
+5 29 24 0 1 0.812988
+5 29 25 0 1 0.874023
+5 29 26 0 1 0.931641
+5 29 27 0 1 0.984375
+5 29 28 0 1 1
+5 29 29 0 1 1
+5 29 30 0 1 1
+5 29 31 0 0.974609 1
+5 30 0 0 1 0
+5 30 1 0 1 0
+5 30 2 0 1 0
+5 30 3 0 1 0
+5 30 4 0 1 0
+5 30 5 0 1 0
+5 30 6 0 1 0
+5 30 7 0 1 0
+5 30 8 0 1 0
+5 30 9 0 1 0
+5 30 10 0 1 0
+5 30 11 0 1 0
+5 30 12 0 1 0
+5 30 13 0 1 0
+5 30 14 0 1 0
+5 30 15 0 1 0
+5 30 16 0 1 0
+5 30 17 0 1 0
+5 30 18 0 1 0.0709229
+5 30 19 0 1 0.315186
+5 30 20 0 1 0.43457
+5 30 21 0 1 0.532227
+5 30 22 0 1 0.617676
+5 30 23 0 1 0.691895
+5 30 24 0 1 0.756836
+5 30 25 0 1 0.820312
+5 30 26 0 1 0.880859
+5 30 27 0 1 0.938477
+5 30 28 0 1 0.990234
+5 30 29 0 1 1
+5 30 30 0 1 1
+5 30 31 0 1 1
+5 31 0 0 1 0
+5 31 1 0 1 0
+5 31 2 0 1 0
+5 31 3 0 1 0
+5 31 4 0 1 0
+5 31 5 0 1 0
+5 31 6 0 1 0
+5 31 7 0 1 0
+5 31 8 0 1 0
+5 31 9 0 1 0
+5 31 10 0 1 0
+5 31 11 0 1 0
+5 31 12 0 1 0
+5 31 13 0 1 0
+5 31 14 0 1 0
+5 31 15 0 1 0
+5 31 16 0 1 0
+5 31 17 0 1 0
+5 31 18 0 1 0
+5 31 19 0 1 0.226562
+5 31 20 0 1 0.366699
+5 31 21 0 1 0.469238
+5 31 22 0 1 0.556152
+5 31 23 0 1 0.630859
+5 31 24 0 1 0.696777
+5 31 25 0 1 0.761719
+5 31 26 0 1 0.825195
+5 31 27 0 1 0.88623
+5 31 28 0 1 0.943359
+5 31 29 0 1 0.995117
+5 31 30 0 1 1
+5 31 31 0 1 1
+6 0 0 0.0933838 0 0
+6 0 1 0.0935669 0 0
+6 0 2 0.0935669 0 0
+6 0 3 0.0927734 0 0.0249176
+6 0 4 0.0901489 0 0.0388489
+6 0 5 0.0774536 0 0.0480042
+6 0 6 0.0674438 0.0170898 0.0571899
+6 0 7 0.0621338 0.0207825 0.074585
+6 0 8 0.0502319 0.0259247 0.0969238
+6 0 9 0 0.0329895 0.126099
+6 0 10 0 0.0426636 0.165039
+6 0 11 0 0.055603 0.216431
+6 0 12 0 0.071228 0.27832
+6 0 13 0 0.0892944 0.349365
+6 0 14 0 0.109558 0.429199
+6 0 15 0 0.13147 0.515625
+6 0 16 0 0.154663 0.606445
+6 0 17 0 0.177124 0.694824
+6 0 18 0 0.19812 0.776855
+6 0 19 0 0.216675 0.849609
+6 0 20 0 0.227051 0.890625
+6 0 21 0 0.229004 0.898438
+6 0 22 0 0.231201 0.906738
+6 0 23 0 0.233398 0.915527
+6 0 24 0 0.235596 0.923828
+6 0 25 0 0.238037 0.933594
+6 0 26 0 0.240723 0.943848
+6 0 27 0 0.243652 0.956055
+6 0 28 0 0.24707 0.969238
+6 0 29 0 0.250732 0.983398
+6 0 30 0 0.254395 0.998047
+6 0 31 0 0.258301 1
+6 1 0 0.0925293 0 0
+6 1 1 0.0927124 0 0
+6 1 2 0.0928345 0 0
+6 1 3 0.0922852 0 0.0244141
+6 1 4 0.0898438 0 0.0385742
+6 1 5 0.0775146 0.00668335 0.0481262
+6 1 6 0.0671997 0.0192566 0.0571594
+6 1 7 0.0618896 0.0224609 0.0745239
+6 1 8 0.0498962 0.0271454 0.0968628
+6 1 9 0 0.033844 0.126099
+6 1 10 0 0.0432739 0.165039
+6 1 11 0 0.0560608 0.216431
+6 1 12 0 0.0715332 0.27832
+6 1 13 0 0.0895386 0.349365
+6 1 14 0 0.109741 0.429199
+6 1 15 0 0.131714 0.515625
+6 1 16 0 0.154785 0.606445
+6 1 17 0 0.177246 0.694824
+6 1 18 0 0.19812 0.776855
+6 1 19 0 0.216675 0.849609
+6 1 20 0 0.227051 0.890625
+6 1 21 0 0.229004 0.898438
+6 1 22 0 0.231201 0.906738
+6 1 23 0 0.233398 0.915527
+6 1 24 0 0.235596 0.923828
+6 1 25 0 0.238037 0.933594
+6 1 26 0 0.240723 0.943848
+6 1 27 0 0.243652 0.956055
+6 1 28 0 0.24707 0.969238
+6 1 29 0 0.250732 0.983398
+6 1 30 0 0.254395 0.998047
+6 1 31 0 0.258301 1
+6 2 0 0.0909424 0.0135345 0
+6 2 1 0.0911865 0.0136566 0
+6 2 2 0.0914307 0.0132523 0
+6 2 3 0.0912476 0.0116425 0.0235138
+6 2 4 0.0891724 0.00949097 0.0380859
+6 2 5 0.0776978 0.0160522 0.0482788
+6 2 6 0.0667725 0.0224457 0.0570679
+6 2 7 0.0614319 0.0250702 0.0744629
+6 2 8 0.0493164 0.029129 0.0968628
+6 2 9 0 0.0352783 0.126099
+6 2 10 0 0.044342 0.165039
+6 2 11 0 0.0568237 0.216431
+6 2 12 0 0.0721436 0.278076
+6 2 13 0 0.0899658 0.349365
+6 2 14 0 0.110046 0.429199
+6 2 15 0 0.131958 0.515625
+6 2 16 0 0.154907 0.606445
+6 2 17 0 0.177368 0.694824
+6 2 18 0 0.198242 0.776855
+6 2 19 0 0.216797 0.849609
+6 2 20 0 0.227173 0.890625
+6 2 21 0 0.229126 0.898438
+6 2 22 0 0.231201 0.906738
+6 2 23 0 0.233398 0.915527
+6 2 24 0 0.235596 0.923828
+6 2 25 0 0.238037 0.933594
+6 2 26 0 0.240723 0.944336
+6 2 27 0 0.243652 0.956055
+6 2 28 0 0.24707 0.969238
+6 2 29 0 0.250732 0.983398
+6 2 30 0 0.254395 0.998047
+6 2 31 0 0.258301 1
+6 3 0 0.0877686 0.0259857 0
+6 3 1 0.0880737 0.0261078 0
+6 3 2 0.0884399 0.0260315 0
+6 3 3 0.0887451 0.0256042 0.0219574
+6 3 4 0.0875244 0.0246582 0.0370789
+6 3 5 0.078064 0.024353 0.0486145
+6 3 6 0.06604 0.0270386 0.0569153
+6 3 7 0.0605774 0.0290375 0.0744019
+6 3 8 0.0481873 0.0323486 0.0968018
+6 3 9 0 0.0377502 0.125977
+6 3 10 0 0.0462036 0.165039
+6 3 11 0 0.0582275 0.216431
+6 3 12 0 0.0731812 0.278076
+6 3 13 0 0.0906982 0.349365
+6 3 14 0 0.110596 0.429199
+6 3 15 0 0.132324 0.515625
+6 3 16 0 0.155273 0.606445
+6 3 17 0 0.177612 0.694824
+6 3 18 0 0.198486 0.776855
+6 3 19 0 0.216919 0.849609
+6 3 20 0 0.227295 0.890625
+6 3 21 0 0.229248 0.898438
+6 3 22 0 0.231323 0.906738
+6 3 23 0 0.233521 0.915527
+6 3 24 0 0.235718 0.923828
+6 3 25 0 0.238037 0.933594
+6 3 26 0 0.240723 0.944336
+6 3 27 0 0.243774 0.956055
+6 3 28 0 0.24707 0.969238
+6 3 29 0 0.250732 0.983398
+6 3 30 0 0.254395 0.998047
+6 3 31 0 0.258301 1
+6 4 0 0.081665 0.0361023 0
+6 4 1 0.0818481 0.0362244 0
+6 4 2 0.0821533 0.0363159 0
+6 4 3 0.0828247 0.0364685 0.0198669
+6 4 4 0.0836792 0.0365295 0.0350342
+6 4 5 0.0784912 0.0348511 0.0490417
+6 4 6 0.0645142 0.0335693 0.0566406
+6 4 7 0.0589294 0.0349731 0.0742188
+6 4 8 0.0459595 0.0374451 0.0966797
+6 4 9 0 0.0418701 0.125977
+6 4 10 0 0.0494385 0.164917
+6 4 11 0 0.0607605 0.216309
+6 4 12 0 0.0750732 0.278076
+6 4 13 0 0.0921631 0.349365
+6 4 14 0 0.111694 0.429199
+6 4 15 0 0.133179 0.515625
+6 4 16 0 0.155884 0.606445
+6 4 17 0 0.178101 0.694824
+6 4 18 0 0.198853 0.776855
+6 4 19 0 0.217285 0.849609
+6 4 20 0 0.227539 0.890625
+6 4 21 0 0.22937 0.898438
+6 4 22 0 0.231445 0.906738
+6 4 23 0 0.233643 0.915527
+6 4 24 0 0.235718 0.923828
+6 4 25 0 0.238159 0.933594
+6 4 26 0 0.240845 0.944336
+6 4 27 0 0.243774 0.956055
+6 4 28 0 0.247192 0.969238
+6 4 29 0 0.250732 0.983398
+6 4 30 0 0.254395 0.998047
+6 4 31 0 0.258301 1
+6 5 0 0.0722656 0.0449829 0
+6 5 1 0.0722046 0.0450134 0
+6 5 2 0.0720825 0.0450745 0
+6 5 3 0.0718994 0.0452576 0.019928
+6 5 4 0.0720825 0.0457764 0.0316162
+6 5 5 0.0737915 0.0473328 0.0469055
+6 5 6 0.0614624 0.0426941 0.0560913
+6 5 7 0.0555115 0.0435791 0.0738525
+6 5 8 0.0411377 0.0451965 0.0964966
+6 5 9 0 0.0485229 0.125732
+6 5 10 0 0.0549622 0.164795
+6 5 11 0 0.0652466 0.216187
+6 5 12 0 0.0786133 0.278076
+6 5 13 0 0.0948486 0.349365
+6 5 14 0 0.11377 0.428955
+6 5 15 0 0.134644 0.515625
+6 5 16 0 0.157104 0.606445
+6 5 17 0 0.179077 0.694824
+6 5 18 0 0.199585 0.776855
+6 5 19 0 0.217773 0.849609
+6 5 20 0 0.227905 0.890625
+6 5 21 0 0.229736 0.898438
+6 5 22 0 0.231812 0.906738
+6 5 23 0 0.233887 0.915527
+6 5 24 0 0.235962 0.923828
+6 5 25 0 0.238403 0.933594
+6 5 26 0 0.240967 0.944336
+6 5 27 0 0.243896 0.956055
+6 5 28 0 0.247314 0.969238
+6 5 29 0 0.250732 0.983398
+6 5 30 0 0.254639 0.998047
+6 5 31 0 0.258301 1
+6 6 0 0.0657959 0.0585022 0
+6 6 1 0.0657959 0.0585632 0
+6 6 2 0.0654907 0.0584717 0
+6 6 3 0.0646973 0.0582275 0.0185089
+6 6 4 0.0632324 0.0577393 0.0301208
+6 6 5 0.0604248 0.0568237 0.0421143
+6 6 6 0.0549622 0.0549622 0.0549622
+6 6 7 0.0480347 0.0554199 0.0731201
+6 6 8 0.0286407 0.0563049 0.0960083
+6 6 9 0 0.0585632 0.125488
+6 6 10 0 0.0637817 0.164551
+6 6 11 0 0.0727539 0.216064
+6 6 12 0 0.0847168 0.277832
+6 6 13 0 0.0997314 0.349121
+6 6 14 0 0.117493 0.428955
+6 6 15 0 0.137573 0.515625
+6 6 16 0 0.159302 0.606445
+6 6 17 0 0.180786 0.694824
+6 6 18 0 0.200928 0.776855
+6 6 19 0 0.218872 0.849609
+6 6 20 0 0.228882 0.890625
+6 6 21 0 0.230469 0.898438
+6 6 22 0 0.2323 0.906738
+6 6 23 0 0.234375 0.915527
+6 6 24 0 0.23645 0.924316
+6 6 25 0 0.238647 0.933594
+6 6 26 0 0.241333 0.944336
+6 6 27 0 0.244141 0.956055
+6 6 28 0 0.247437 0.969238
+6 6 29 0 0.250977 0.983398
+6 6 30 0 0.254639 0.998047
+6 6 31 0 0.258545 1
+6 7 0 0.0480347 0.0733032 0
+6 7 1 0.0480652 0.0733643 0
+6 7 2 0.0480652 0.0734253 0
+6 7 3 0.0473022 0.0731812 0
+6 7 4 0.0458069 0.0726929 0.0225983
+6 7 5 0.0429382 0.0718384 0.037262
+6 7 6 0.0375977 0.071228 0.0525513
+6 7 7 0.0242157 0.0714722 0.0715332
+6 7 8 0 0.0718384 0.0950317
+6 7 9 0 0.0731812 0.124878
+6 7 10 0 0.0772095 0.164062
+6 7 11 0 0.0848999 0.215576
+6 7 12 0 0.0951538 0.277588
+6 7 13 0 0.108337 0.349121
+6 7 14 0 0.12439 0.428955
+6 7 15 0 0.142944 0.515625
+6 7 16 0 0.163452 0.606445
+6 7 17 0 0.184082 0.694824
+6 7 18 0 0.203491 0.776855
+6 7 19 0 0.220947 0.849609
+6 7 20 0 0.230591 0.890625
+6 7 21 0 0.231812 0.898438
+6 7 22 0 0.233398 0.907227
+6 7 23 0 0.235229 0.915527
+6 7 24 0 0.237183 0.924316
+6 7 25 0 0.23938 0.933594
+6 7 26 0 0.241821 0.944336
+6 7 27 0 0.244629 0.956055
+6 7 28 0 0.247925 0.969238
+6 7 29 0 0.251465 0.983398
+6 7 30 0 0.255127 0.998047
+6 7 31 0 0.258789 1
+6 8 0 0 0.0925293 0
+6 8 1 0 0.0925903 0
+6 8 2 0 0.0925903 0
+6 8 3 0 0.0926514 0
+6 8 4 0 0.0925293 0
+6 8 5 0 0.0924683 0.0281982
+6 8 6 0 0.0925293 0.0474854
+6 8 7 0 0.0927124 0.0681763
+6 8 8 0 0.0928955 0.0929565
+6 8 9 0 0.093689 0.123657
+6 8 10 0 0.0968018 0.163086
+6 8 11 0 0.103333 0.214844
+6 8 12 0 0.111938 0.2771
+6 8 13 0 0.122864 0.348633
+6 8 14 0 0.136475 0.428711
+6 8 15 0 0.152832 0.515137
+6 8 16 0 0.171265 0.606445
+6 8 17 0 0.190308 0.694824
+6 8 18 0 0.208496 0.776855
+6 8 19 0 0.224976 0.849609
+6 8 20 0 0.233887 0.891113
+6 8 21 0 0.234497 0.898926
+6 8 22 0 0.235596 0.907227
+6 8 23 0 0.237061 0.915527
+6 8 24 0 0.23877 0.924316
+6 8 25 0 0.240723 0.933594
+6 8 26 0 0.243042 0.944336
+6 8 27 0 0.245605 0.956055
+6 8 28 0 0.248779 0.969238
+6 8 29 0 0.252197 0.983398
+6 8 30 0 0.255615 0.998047
+6 8 31 0 0.259277 1
+6 9 0 0 0.119385 0
+6 9 1 0 0.119385 0
+6 9 2 0 0.119446 0
+6 9 3 0 0.119446 0
+6 9 4 0 0.119507 0
+6 9 5 0 0.119568 0
+6 9 6 0 0.11969 0.0360718
+6 9 7 0 0.119995 0.061554
+6 9 8 0 0.120422 0.0887451
+6 9 9 0 0.121216 0.121277
+6 9 10 0 0.12384 0.161499
+6 9 11 0 0.129639 0.213623
+6 9 12 0 0.136719 0.276367
+6 9 13 0 0.145508 0.348145
+6 9 14 0 0.15625 0.428467
+6 9 15 0 0.169556 0.515137
+6 9 16 0 0.185059 0.605957
+6 9 17 0 0.201416 0.694824
+6 9 18 0 0.217529 0.776855
+6 9 19 0 0.232422 0.850098
+6 9 20 0 0.23999 0.891602
+6 9 21 0 0.23938 0.899414
+6 9 22 0 0.239624 0.907715
+6 9 23 0 0.240479 0.916016
+6 9 24 0 0.241699 0.924805
+6 9 25 0 0.243164 0.934082
+6 9 26 0 0.245117 0.944336
+6 9 27 0 0.247559 0.956055
+6 9 28 0 0.250244 0.969238
+6 9 29 0 0.253418 0.983398
+6 9 30 0 0.256836 0.998047
+6 9 31 0 0.260254 1
+6 10 0 0 0.155151 0
+6 10 1 0 0.155151 0
+6 10 2 0 0.155151 0
+6 10 3 0 0.155151 0
+6 10 4 0 0.155151 0
+6 10 5 0 0.155273 0
+6 10 6 0 0.155273 0
+6 10 7 0 0.155396 0.0483093
+6 10 8 0 0.155762 0.081604
+6 10 9 0 0.156738 0.117126
+6 10 10 0 0.159058 0.159058
+6 10 11 0 0.164185 0.211548
+6 10 12 0 0.170288 0.274658
+6 10 13 0 0.177124 0.346924
+6 10 14 0 0.185303 0.427734
+6 10 15 0 0.195068 0.514648
+6 10 16 0 0.207031 0.605957
+6 10 17 0 0.219849 0.694824
+6 10 18 0 0.23291 0.777344
+6 10 19 0 0.245239 0.850098
+6 10 20 0 0.250732 0.89209
+6 10 21 0 0.247925 0.899902
+6 10 22 0 0.246704 0.908203
+6 10 23 0 0.24646 0.916504
+6 10 24 0 0.246826 0.925293
+6 10 25 0 0.247681 0.93457
+6 10 26 0 0.249023 0.944824
+6 10 27 0 0.250732 0.956543
+6 10 28 0 0.253174 0.969727
+6 10 29 0 0.255859 0.983887
+6 10 30 0 0.259033 0.998535
+6 10 31 0 0.262207 1
+6 11 0 0 0.202637 0
+6 11 1 0 0.202637 0
+6 11 2 0 0.202637 0
+6 11 3 0 0.202637 0
+6 11 4 0 0.202637 0
+6 11 5 0 0.202759 0
+6 11 6 0 0.202759 0
+6 11 7 0 0.202759 0
+6 11 8 0 0.202759 0.0675049
+6 11 9 0 0.203125 0.110291
+6 11 10 0 0.204834 0.155396
+6 11 11 0 0.208496 0.208496
+6 11 12 0 0.213501 0.271973
+6 11 13 0 0.218872 0.344971
+6 11 14 0 0.224609 0.426514
+6 11 15 0 0.231201 0.51416
+6 11 16 0 0.239136 0.605957
+6 11 17 0 0.247803 0.694824
+6 11 18 0 0.256836 0.777344
+6 11 19 0 0.265625 0.850586
+6 11 20 0 0.268066 0.893555
+6 11 21 0 0.262207 0.901367
+6 11 22 0 0.258545 0.90918
+6 11 23 0 0.256592 0.91748
+6 11 24 0 0.255615 0.925781
+6 11 25 0 0.255371 0.935547
+6 11 26 0 0.255615 0.945801
+6 11 27 0 0.256592 0.957031
+6 11 28 0 0.258057 0.970215
+6 11 29 0 0.260254 0.984375
+6 11 30 0 0.262695 0.999023
+6 11 31 0 0.265381 1
+6 12 0 0 0.261475 0
+6 12 1 0 0.261475 0
+6 12 2 0 0.261475 0
+6 12 3 0 0.261475 0
+6 12 4 0 0.261475 0
+6 12 5 0 0.261475 0
+6 12 6 0 0.261719 0
+6 12 7 0 0.261719 0
+6 12 8 0 0.261719 0
+6 12 9 0 0.261963 0.0947266
+6 12 10 0 0.262695 0.147583
+6 12 11 0 0.264404 0.203369
+6 12 12 0 0.267578 0.267822
+6 12 13 0 0.271729 0.341553
+6 12 14 0 0.275635 0.424072
+6 12 15 0 0.279297 0.512695
+6 12 16 0 0.283447 0.60498
+6 12 17 0 0.287598 0.694824
+6 12 18 0 0.291992 0.777832
+6 12 19 0 0.296387 0.851074
+6 12 20 0 0.294922 0.895996
+6 12 21 0 0.284668 0.90332
+6 12 22 0 0.277588 0.911133
+6 12 23 0 0.272949 0.919434
+6 12 24 0 0.269775 0.927734
+6 12 25 0 0.267578 0.936523
+6 12 26 0 0.266357 0.946777
+6 12 27 0 0.265869 0.958496
+6 12 28 0 0.266357 0.971191
+6 12 29 0 0.267334 0.985352
+6 12 30 0 0.268799 0.999512
+6 12 31 0 0.270752 1
+6 13 0 0 0.32959 0
+6 13 1 0 0.32959 0
+6 13 2 0 0.32959 0
+6 13 3 0 0.32959 0
+6 13 4 0 0.329834 0
+6 13 5 0 0.329834 0
+6 13 6 0 0.329834 0
+6 13 7 0 0.330078 0
+6 13 8 0 0.330078 0
+6 13 9 0 0.330322 0.0453796
+6 13 10 0 0.330811 0.129272
+6 13 11 0 0.331543 0.192749
+6 13 12 0 0.333252 0.260498
+6 13 13 0 0.335938 0.335938
+6 13 14 0 0.338135 0.419922
+6 13 15 0 0.339355 0.509766
+6 13 16 0 0.340088 0.603516
+6 13 17 0 0.339844 0.694336
+6 13 18 0 0.339355 0.777832
+6 13 19 0 0.338867 0.851562
+6 13 20 0 0.333496 0.899902
+6 13 21 0 0.317139 0.906738
+6 13 22 0 0.30542 0.914551
+6 13 23 0 0.297363 0.922363
+6 13 24 0 0.29126 0.930176
+6 13 25 0 0.286621 0.938965
+6 13 26 0 0.283203 0.949219
+6 13 27 0 0.280518 0.959961
+6 13 28 0 0.279053 0.973145
+6 13 29 0 0.278564 0.986328
+6 13 30 0 0.278564 1
+6 13 31 0 0.279297 1
+6 14 0 0 0.406982 0
+6 14 1 0 0.406982 0
+6 14 2 0 0.406982 0
+6 14 3 0 0.406982 0
+6 14 4 0 0.406982 0
+6 14 5 0 0.406982 0
+6 14 6 0 0.406982 0
+6 14 7 0 0.406982 0
+6 14 8 0 0.407227 0
+6 14 9 0 0.407471 0
+6 14 10 0 0.408203 0.0842896
+6 14 11 0 0.408936 0.171509
+6 14 12 0 0.409912 0.246826
+6 14 13 0 0.411133 0.325928
+6 14 14 0 0.412109 0.412354
+6 14 15 0 0.411865 0.504395
+6 14 16 0 0.409668 0.600586
+6 14 17 0 0.405518 0.692871
+6 14 18 0 0.400391 0.777344
+6 14 19 0 0.394775 0.852051
+6 14 20 0 0.385254 0.905273
+6 14 21 0 0.362061 0.912109
+6 14 22 0 0.344727 0.919434
+6 14 23 0 0.331787 0.926758
+6 14 24 0 0.322266 0.93457
+6 14 25 0 0.314209 0.942871
+6 14 26 0 0.307373 0.952637
+6 14 27 0 0.302246 0.963379
+6 14 28 0 0.29834 0.975586
+6 14 29 0 0.29541 0.98877
+6 14 30 0 0.293457 1
+6 14 31 0 0.292236 1
+6 15 0 0 0.490967 0
+6 15 1 0 0.490967 0
+6 15 2 0 0.490967 0
+6 15 3 0 0.490967 0
+6 15 4 0 0.490967 0
+6 15 5 0 0.491211 0
+6 15 6 0 0.491211 0
+6 15 7 0 0.491211 0
+6 15 8 0 0.491455 0
+6 15 9 0 0.491699 0
+6 15 10 0 0.492188 0
+6 15 11 0 0.493164 0.127563
+6 15 12 0 0.494385 0.222168
+6 15 13 0 0.495605 0.308838
+6 15 14 0 0.496094 0.399414
+6 15 15 0 0.494873 0.494873
+6 15 16 0 0.490967 0.59375
+6 15 17 0 0.483643 0.688965
+6 15 18 0 0.474121 0.775391
+6 15 19 0 0.463623 0.851562
+6 15 20 0 0.451172 0.911133
+6 15 21 0 0.420166 0.919434
+6 15 22 0 0.39624 0.927246
+6 15 23 0 0.37793 0.934082
+6 15 24 0 0.36377 0.941406
+6 15 25 0 0.351562 0.949219
+6 15 26 0 0.341064 0.958008
+6 15 27 0 0.332031 0.968262
+6 15 28 0 0.324951 0.97998
+6 15 29 0 0.319092 0.992676
+6 15 30 0 0.314453 1
+6 15 31 0 0.310791 1
+6 16 0 0 0.580566 0
+6 16 1 0 0.580566 0
+6 16 2 0 0.580566 0
+6 16 3 0 0.580566 0
+6 16 4 0 0.580566 0
+6 16 5 0 0.580566 0
+6 16 6 0 0.580566 0
+6 16 7 0 0.581055 0
+6 16 8 0 0.581055 0
+6 16 9 0 0.581055 0
+6 16 10 0 0.581543 0
+6 16 11 0 0.583008 0
+6 16 12 0 0.584473 0.178345
+6 16 13 0 0.585938 0.280762
+6 16 14 0 0.586914 0.378418
+6 16 15 0 0.585938 0.47876
+6 16 16 0 0.581543 0.581543
+6 16 17 0 0.572266 0.680664
+6 16 18 0 0.55957 0.770508
+6 16 19 0 0.544922 0.849121
+6 16 20 0 0.529297 0.914062
+6 16 21 0 0.492676 0.929199
+6 16 22 0 0.46167 0.937988
+6 16 23 0 0.437256 0.945312
+6 16 24 0 0.417725 0.95166
+6 16 25 0 0.400391 0.958984
+6 16 26 0 0.385254 0.967285
+6 16 27 0 0.371826 0.976074
+6 16 28 0 0.360596 0.986816
+6 16 29 0 0.351074 0.998535
+6 16 30 0 0.343018 1
+6 16 31 0 0.336182 1
+6 17 0 0 0.67041 0
+6 17 1 0 0.67041 0
+6 17 2 0 0.67041 0
+6 17 3 0 0.67041 0
+6 17 4 0 0.67041 0
+6 17 5 0 0.67041 0
+6 17 6 0 0.67041 0
+6 17 7 0 0.67041 0
+6 17 8 0 0.67041 0
+6 17 9 0 0.67041 0
+6 17 10 0 0.670898 0
+6 17 11 0 0.671875 0
+6 17 12 0 0.673828 0.0737305
+6 17 13 0 0.67627 0.237183
+6 17 14 0 0.678223 0.347412
+6 17 15 0 0.678223 0.454102
+6 17 16 0 0.674316 0.562012
+6 17 17 0 0.665527 0.666016
+6 17 18 0 0.651367 0.760742
+6 17 19 0 0.633789 0.843262
+6 17 20 0 0.614258 0.910645
+6 17 21 0 0.576172 0.937988
+6 17 22 0 0.539062 0.951172
+6 17 23 0 0.508301 0.959961
+6 17 24 0 0.483154 0.966797
+6 17 25 0 0.460449 0.973145
+6 17 26 0 0.439697 0.97998
+6 17 27 0 0.421143 0.987793
+6 17 28 0 0.405273 0.99707
+6 17 29 0 0.391113 1
+6 17 30 0 0.378906 1
+6 17 31 0 0.368408 1
+6 18 0 0 0.754395 0
+6 18 1 0 0.754395 0
+6 18 2 0 0.754395 0
+6 18 3 0 0.754395 0
+6 18 4 0 0.754395 0
+6 18 5 0 0.754395 0
+6 18 6 0 0.754395 0
+6 18 7 0 0.754395 0
+6 18 8 0 0.754395 0
+6 18 9 0 0.754883 0
+6 18 10 0 0.754883 0
+6 18 11 0 0.755371 0
+6 18 12 0 0.757812 0
+6 18 13 0 0.760254 0.165771
+6 18 14 0 0.763672 0.304443
+6 18 15 0 0.765137 0.42041
+6 18 16 0 0.763672 0.53418
+6 18 17 0 0.756836 0.643555
+6 18 18 0 0.743652 0.743652
+6 18 19 0 0.725098 0.831055
+6 18 20 0 0.703125 0.90332
+6 18 21 0 0.666016 0.944336
+6 18 22 0 0.625977 0.965332
+6 18 23 0 0.589844 0.977051
+6 18 24 0 0.559082 0.984863
+6 18 25 0 0.530273 0.991699
+6 18 26 0 0.503418 0.997559
+6 18 27 0 0.479248 1
+6 18 28 0 0.457764 1
+6 18 29 0 0.438477 1
+6 18 30 0 0.421631 1
+6 18 31 0 0.406738 1
+6 19 0 0 0.830566 0
+6 19 1 0 0.830566 0
+6 19 2 0 0.830566 0
+6 19 3 0 0.830566 0
+6 19 4 0 0.830566 0
+6 19 5 0 0.830566 0
+6 19 6 0 0.830566 0
+6 19 7 0 0.830566 0
+6 19 8 0 0.830566 0
+6 19 9 0 0.831055 0
+6 19 10 0 0.831055 0
+6 19 11 0 0.831055 0
+6 19 12 0 0.833008 0
+6 19 13 0 0.835938 0
+6 19 14 0 0.839844 0.246582
+6 19 15 0 0.843262 0.378662
+6 19 16 0 0.844238 0.499268
+6 19 17 0 0.840332 0.61377
+6 19 18 0 0.82959 0.719727
+6 19 19 0 0.8125 0.8125
+6 19 20 0 0.789551 0.889648
+6 19 21 0 0.756348 0.943359
+6 19 22 0 0.716309 0.975586
+6 19 23 0 0.676758 0.994141
+6 19 24 0 0.641113 1
+6 19 25 0 0.606934 1
+6 19 26 0 0.574219 1
+6 19 27 0 0.543945 1
+6 19 28 0 0.516602 1
+6 19 29 0 0.491699 1
+6 19 30 0 0.469482 1
+6 19 31 0 0.449707 1
+6 20 0 0 0.896973 0
+6 20 1 0 0.896973 0
+6 20 2 0 0.896973 0
+6 20 3 0 0.896973 0
+6 20 4 0 0.896973 0
+6 20 5 0 0.896973 0
+6 20 6 0 0.896973 0
+6 20 7 0 0.896973 0
+6 20 8 0 0.896973 0
+6 20 9 0 0.896973 0
+6 20 10 0 0.897461 0
+6 20 11 0 0.897461 0
+6 20 12 0 0.898438 0
+6 20 13 0 0.901367 0
+6 20 14 0 0.905762 0.160522
+6 20 15 0 0.910645 0.329346
+6 20 16 0 0.913574 0.458984
+6 20 17 0 0.912598 0.579102
+6 20 18 0 0.905273 0.689453
+6 20 19 0 0.890137 0.787598
+6 20 20 0 0.869141 0.869629
+6 20 21 0 0.840332 0.93457
+6 20 22 0 0.803711 0.979004
+6 20 23 0 0.763672 1
+6 20 24 0 0.725586 1
+6 20 25 0 0.687012 1
+6 20 26 0 0.648926 1
+6 20 27 0 0.612793 1
+6 20 28 0 0.579102 1
+6 20 29 0 0.548828 1
+6 20 30 0 0.520996 1
+6 20 31 0 0.496338 1
+6 21 0 0 0.953613 0
+6 21 1 0 0.953613 0
+6 21 2 0 0.953613 0
+6 21 3 0 0.953613 0
+6 21 4 0 0.953613 0
+6 21 5 0 0.953613 0
+6 21 6 0 0.953613 0
+6 21 7 0 0.953613 0
+6 21 8 0 0.953613 0
+6 21 9 0 0.953613 0
+6 21 10 0 0.953613 0
+6 21 11 0 0.954102 0
+6 21 12 0 0.954102 0
+6 21 13 0 0.957031 0
+6 21 14 0 0.961914 0
+6 21 15 0 0.967285 0.268555
+6 21 16 0 0.972168 0.413574
+6 21 17 0 0.974121 0.539062
+6 21 18 0 0.970215 0.653809
+6 21 19 0 0.958984 0.755859
+6 21 20 0 0.94043 0.843262
+6 21 21 0 0.915527 0.916016
+6 21 22 0 0.884277 0.97168
+6 21 23 0 0.847168 1
+6 21 24 0 0.808594 1
+6 21 25 0 0.767578 1
+6 21 26 0 0.725586 1
+6 21 27 0 0.68457 1
+6 21 28 0 0.645508 1
+6 21 29 0 0.609375 1
+6 21 30 0 0.576172 1
+6 21 31 0 0.546387 1
+6 22 0 0 1 0
+6 22 1 0 1 0
+6 22 2 0 1 0
+6 22 3 0 1 0
+6 22 4 0 1 0
+6 22 5 0 1 0
+6 22 6 0 1 0
+6 22 7 0 1 0
+6 22 8 0 1 0
+6 22 9 0 1 0
+6 22 10 0 1 0
+6 22 11 0 1 0
+6 22 12 0 1 0
+6 22 13 0 1 0
+6 22 14 0 1 0
+6 22 15 0 1 0.187134
+6 22 16 0 1 0.363037
+6 22 17 0 1 0.49585
+6 22 18 0 1 0.614258
+6 22 19 0 1 0.720215
+6 22 20 0 1 0.811523
+6 22 21 0 0.97998 0.889648
+6 22 22 0 0.953125 0.953125
+6 22 23 0 0.920898 1
+6 22 24 0 0.885254 1
+6 22 25 0 0.844238 1
+6 22 26 0 0.800781 1
+6 22 27 0 0.756348 1
+6 22 28 0 0.712891 1
+6 22 29 0 0.671875 1
+6 22 30 0 0.633301 1
+6 22 31 0 0.598145 1
+6 23 0 0 1 0
+6 23 1 0 1 0
+6 23 2 0 1 0
+6 23 3 0 1 0
+6 23 4 0 1 0
+6 23 5 0 1 0
+6 23 6 0 1 0
+6 23 7 0 1 0
+6 23 8 0 1 0
+6 23 9 0 1 0
+6 23 10 0 1 0
+6 23 11 0 1 0
+6 23 12 0 1 0
+6 23 13 0 1 0
+6 23 14 0 1 0
+6 23 15 0 1 0
+6 23 16 0 1 0.30835
+6 23 17 0 1 0.451416
+6 23 18 0 1 0.57373
+6 23 19 0 1 0.682617
+6 23 20 0 1 0.777344
+6 23 21 0 1 0.859375
+6 23 22 0 1 0.928223
+6 23 23 0 0.981445 0.981934
+6 23 24 0 0.950195 1
+6 23 25 0 0.912109 1
+6 23 26 0 0.869141 1
+6 23 27 0 0.823242 1
+6 23 28 0 0.776855 1
+6 23 29 0 0.731934 1
+6 23 30 0 0.688965 1
+6 23 31 0 0.648926 1
+6 24 0 0 1 0
+6 24 1 0 1 0
+6 24 2 0 1 0
+6 24 3 0 1 0
+6 24 4 0 1 0
+6 24 5 0 1 0
+6 24 6 0 1 0
+6 24 7 0 1 0
+6 24 8 0 1 0
+6 24 9 0 1 0
+6 24 10 0 1 0
+6 24 11 0 1 0
+6 24 12 0 1 0
+6 24 13 0 1 0
+6 24 14 0 1 0
+6 24 15 0 1 0
+6 24 16 0 1 0.24585
+6 24 17 0 1 0.406006
+6 24 18 0 1 0.532715
+6 24 19 0 1 0.644531
+6 24 20 0 1 0.741699
+6 24 21 0 1 0.827148
+6 24 22 0 1 0.899414
+6 24 23 0 1 0.95752
+6 24 24 0 1 1
+6 24 25 0 0.970215 1
+6 24 26 0 0.929688 1
+6 24 27 0 0.884277 1
+6 24 28 0 0.836914 1
+6 24 29 0 0.789062 1
+6 24 30 0 0.742676 1
+6 24 31 0 0.69873 1
+6 25 0 0 1 0
+6 25 1 0 1 0
+6 25 2 0 1 0
+6 25 3 0 1 0
+6 25 4 0 1 0
+6 25 5 0 1 0
+6 25 6 0 1 0
+6 25 7 0 1 0
+6 25 8 0 1 0
+6 25 9 0 1 0
+6 25 10 0 1 0
+6 25 11 0 1 0
+6 25 12 0 1 0
+6 25 13 0 1 0
+6 25 14 0 1 0
+6 25 15 0 1 0
+6 25 16 0 1 0.151001
+6 25 17 0 1 0.354004
+6 25 18 0 1 0.487549
+6 25 19 0 1 0.601562
+6 25 20 0 1 0.701172
+6 25 21 0 1 0.789062
+6 25 22 0 1 0.865234
+6 25 23 0 1 0.927734
+6 25 24 0 1 0.979004
+6 25 25 0 1 1
+6 25 26 0 0.987305 1
+6 25 27 0 0.944336 1
+6 25 28 0 0.896973 1
+6 25 29 0 0.847656 1
+6 25 30 0 0.798828 1
+6 25 31 0 0.751465 1
+6 26 0 0 1 0
+6 26 1 0 1 0
+6 26 2 0 1 0
+6 26 3 0 1 0
+6 26 4 0 1 0
+6 26 5 0 1 0
+6 26 6 0 1 0
+6 26 7 0 1 0
+6 26 8 0 1 0
+6 26 9 0 1 0
+6 26 10 0 1 0
+6 26 11 0 1 0
+6 26 12 0 1 0
+6 26 13 0 1 0
+6 26 14 0 1 0
+6 26 15 0 1 0
+6 26 16 0 1 0
+6 26 17 0 1 0.291992
+6 26 18 0 1 0.437256
+6 26 19 0 1 0.554199
+6 26 20 0 1 0.655762
+6 26 21 0 1 0.746094
+6 26 22 0 1 0.825195
+6 26 23 0 1 0.891602
+6 26 24 0 1 0.946777
+6 26 25 0 1 0.99707
+6 26 26 0 1 1
+6 26 27 0 1 1
+6 26 28 0 0.956055 1
+6 26 29 0 0.906738 1
+6 26 30 0 0.856445 1
+6 26 31 0 0.806152 1
+6 27 0 0 1 0
+6 27 1 0 1 0
+6 27 2 0 1 0
+6 27 3 0 1 0
+6 27 4 0 1 0
+6 27 5 0 1 0
+6 27 6 0 1 0
+6 27 7 0 1 0
+6 27 8 0 1 0
+6 27 9 0 1 0
+6 27 10 0 1 0
+6 27 11 0 1 0
+6 27 12 0 1 0
+6 27 13 0 1 0
+6 27 14 0 1 0
+6 27 15 0 1 0
+6 27 16 0 1 0
+6 27 17 0 1 0.209595
+6 27 18 0 1 0.380859
+6 27 19 0 1 0.503418
+6 27 20 0 1 0.606445
+6 27 21 0 1 0.69873
+6 27 22 0 1 0.780273
+6 27 23 0 1 0.849609
+6 27 24 0 1 0.908203
+6 27 25 0 1 0.962891
+6 27 26 0 1 1
+6 27 27 0 1 1
+6 27 28 0 1 1
+6 27 29 0 0.964355 1
+6 27 30 0 0.913574 1
+6 27 31 0 0.862305 1
+6 28 0 0 1 0
+6 28 1 0 1 0
+6 28 2 0 1 0
+6 28 3 0 1 0
+6 28 4 0 1 0
+6 28 5 0 1 0
+6 28 6 0 1 0
+6 28 7 0 1 0
+6 28 8 0 1 0
+6 28 9 0 1 0
+6 28 10 0 1 0
+6 28 11 0 1 0
+6 28 12 0 1 0
+6 28 13 0 1 0
+6 28 14 0 1 0
+6 28 15 0 1 0
+6 28 16 0 1 0
+6 28 17 0 1 0
+6 28 18 0 1 0.315674
+6 28 19 0 1 0.44751
+6 28 20 0 1 0.553711
+6 28 21 0 1 0.647461
+6 28 22 0 1 0.730469
+6 28 23 0 1 0.802246
+6 28 24 0 1 0.86377
+6 28 25 0 1 0.921875
+6 28 26 0 1 0.975586
+6 28 27 0 1 1
+6 28 28 0 1 1
+6 28 29 0 1 1
+6 28 30 0 0.969727 1
+6 28 31 0 0.918457 1
+6 29 0 0 1 0
+6 29 1 0 1 0
+6 29 2 0 1 0
+6 29 3 0 1 0
+6 29 4 0 1 0
+6 29 5 0 1 0
+6 29 6 0 1 0
+6 29 7 0 1 0
+6 29 8 0 1 0
+6 29 9 0 1 0
+6 29 10 0 1 0
+6 29 11 0 1 0
+6 29 12 0 1 0
+6 29 13 0 1 0
+6 29 14 0 1 0
+6 29 15 0 1 0
+6 29 16 0 1 0
+6 29 17 0 1 0
+6 29 18 0 1 0.233276
+6 29 19 0 1 0.385742
+6 29 20 0 1 0.496338
+6 29 21 0 1 0.591797
+6 29 22 0 1 0.67627
+6 29 23 0 1 0.749023
+6 29 24 0 1 0.812988
+6 29 25 0 1 0.874023
+6 29 26 0 1 0.931641
+6 29 27 0 1 0.984375
+6 29 28 0 1 1
+6 29 29 0 1 1
+6 29 30 0 1 1
+6 29 31 0 0.974609 1
+6 30 0 0 1 0
+6 30 1 0 1 0
+6 30 2 0 1 0
+6 30 3 0 1 0
+6 30 4 0 1 0
+6 30 5 0 1 0
+6 30 6 0 1 0
+6 30 7 0 1 0
+6 30 8 0 1 0
+6 30 9 0 1 0
+6 30 10 0 1 0
+6 30 11 0 1 0
+6 30 12 0 1 0
+6 30 13 0 1 0
+6 30 14 0 1 0
+6 30 15 0 1 0
+6 30 16 0 1 0
+6 30 17 0 1 0
+6 30 18 0 1 0.0709229
+6 30 19 0 1 0.315186
+6 30 20 0 1 0.43457
+6 30 21 0 1 0.532227
+6 30 22 0 1 0.617676
+6 30 23 0 1 0.691895
+6 30 24 0 1 0.756836
+6 30 25 0 1 0.820312
+6 30 26 0 1 0.880859
+6 30 27 0 1 0.938477
+6 30 28 0 1 0.990234
+6 30 29 0 1 1
+6 30 30 0 1 1
+6 30 31 0 1 1
+6 31 0 0 1 0
+6 31 1 0 1 0
+6 31 2 0 1 0
+6 31 3 0 1 0
+6 31 4 0 1 0
+6 31 5 0 1 0
+6 31 6 0 1 0
+6 31 7 0 1 0
+6 31 8 0 1 0
+6 31 9 0 1 0
+6 31 10 0 1 0
+6 31 11 0 1 0
+6 31 12 0 1 0
+6 31 13 0 1 0
+6 31 14 0 1 0
+6 31 15 0 1 0
+6 31 16 0 1 0
+6 31 17 0 1 0
+6 31 18 0 1 0
+6 31 19 0 1 0.226562
+6 31 20 0 1 0.366699
+6 31 21 0 1 0.469238
+6 31 22 0 1 0.556152
+6 31 23 0 1 0.630859
+6 31 24 0 1 0.696777
+6 31 25 0 1 0.761719
+6 31 26 0 1 0.825195
+6 31 27 0 1 0.88623
+6 31 28 0 1 0.943359
+6 31 29 0 1 0.995117
+6 31 30 0 1 1
+6 31 31 0 1 1
+7 0 0 0.121887 0 0
+7 0 1 0.121887 0 0
+7 0 2 0.122009 0 0
+7 0 3 0.12207 0 0
+7 0 4 0.121033 0 0.0307159
+7 0 5 0.117615 0 0.0498352
+7 0 6 0.101013 0 0.0620728
+7 0 7 0.0875854 0.0194092 0.0740967
+7 0 8 0.0803223 0.0250092 0.0967407
+7 0 9 0.0651855 0.0323486 0.125977
+7 0 10 0 0.0422058 0.164917
+7 0 11 0 0.0552368 0.216309
+7 0 12 0 0.0709839 0.278076
+7 0 13 0 0.0891113 0.349365
+7 0 14 0 0.109436 0.429199
+7 0 15 0 0.13147 0.515625
+7 0 16 0 0.154541 0.606445
+7 0 17 0 0.177124 0.694824
+7 0 18 0 0.19812 0.776855
+7 0 19 0 0.216675 0.849609
+7 0 20 0 0.227051 0.890625
+7 0 21 0 0.229004 0.898438
+7 0 22 0 0.231201 0.906738
+7 0 23 0 0.233398 0.915527
+7 0 24 0 0.235596 0.924316
+7 0 25 0 0.238037 0.933594
+7 0 26 0 0.240723 0.944336
+7 0 27 0 0.243652 0.956055
+7 0 28 0 0.24707 0.969238
+7 0 29 0 0.250732 0.983398
+7 0 30 0 0.254395 0.998047
+7 0 31 0 0.258301 1
+7 1 0 0.121399 0 0
+7 1 1 0.121338 0 0
+7 1 2 0.12146 0 0
+7 1 3 0.121582 0 0
+7 1 4 0.120728 0 0.0303497
+7 1 5 0.117432 0 0.0496521
+7 1 6 0.101074 0 0.0621338
+7 1 7 0.0874023 0.021225 0.0740967
+7 1 8 0.0801392 0.0262756 0.0967407
+7 1 9 0.0649414 0.0332336 0.125977
+7 1 10 0 0.0428162 0.164917
+7 1 11 0 0.0556946 0.216309
+7 1 12 0 0.0712891 0.278076
+7 1 13 0 0.0893555 0.349365
+7 1 14 0 0.109619 0.429199
+7 1 15 0 0.131592 0.515625
+7 1 16 0 0.154663 0.606445
+7 1 17 0 0.177246 0.694824
+7 1 18 0 0.19812 0.776855
+7 1 19 0 0.216675 0.849609
+7 1 20 0 0.227051 0.890625
+7 1 21 0 0.229126 0.898438
+7 1 22 0 0.231201 0.906738
+7 1 23 0 0.233398 0.915527
+7 1 24 0 0.235596 0.924316
+7 1 25 0 0.238037 0.933594
+7 1 26 0 0.240723 0.944336
+7 1 27 0 0.243652 0.956055
+7 1 28 0 0.24707 0.969238
+7 1 29 0 0.250732 0.983398
+7 1 30 0 0.254395 0.998047
+7 1 31 0 0.258301 1
+7 2 0 0.120361 0 0
+7 2 1 0.120361 0 0
+7 2 2 0.120483 0 0
+7 2 3 0.120728 0 0
+7 2 4 0.120117 0 0.0296783
+7 2 5 0.117065 0 0.0493469
+7 2 6 0.101196 0 0.0622559
+7 2 7 0.0870972 0.0239868 0.0740356
+7 2 8 0.079834 0.0283508 0.0966797
+7 2 9 0.0645752 0.034729 0.125977
+7 2 10 0 0.0438843 0.164917
+7 2 11 0 0.056488 0.216309
+7 2 12 0 0.0718994 0.278076
+7 2 13 0 0.0897827 0.349365
+7 2 14 0 0.109924 0.429199
+7 2 15 0 0.131836 0.515625
+7 2 16 0 0.154907 0.606445
+7 2 17 0 0.177368 0.694824
+7 2 18 0 0.198242 0.776855
+7 2 19 0 0.216797 0.849609
+7 2 20 0 0.227173 0.890625
+7 2 21 0 0.229126 0.898438
+7 2 22 0 0.231323 0.906738
+7 2 23 0 0.233398 0.915527
+7 2 24 0 0.235596 0.924316
+7 2 25 0 0.238037 0.933594
+7 2 26 0 0.240723 0.944336
+7 2 27 0 0.243652 0.956055
+7 2 28 0 0.24707 0.969238
+7 2 29 0 0.250732 0.983398
+7 2 30 0 0.254395 0.998047
+7 2 31 0 0.258301 1
+7 3 0 0.118408 0.0117416 0
+7 3 1 0.118408 0.0123825 0
+7 3 2 0.118591 0.0128479 0
+7 3 3 0.118958 0.0125046 0
+7 3 4 0.118835 0.00871277 0.0284882
+7 3 5 0.116211 0 0.0487366
+7 3 6 0.10144 0.0182037 0.0624695
+7 3 7 0.0866089 0.0281525 0.0739136
+7 3 8 0.0792847 0.0316772 0.0966187
+7 3 9 0.0638428 0.0372314 0.125854
+7 3 10 0 0.0457764 0.164795
+7 3 11 0 0.0578918 0.216187
+7 3 12 0 0.072937 0.278076
+7 3 13 0 0.0905762 0.349365
+7 3 14 0 0.110535 0.429199
+7 3 15 0 0.132202 0.515625
+7 3 16 0 0.155151 0.606445
+7 3 17 0 0.177612 0.694824
+7 3 18 0 0.198486 0.776855
+7 3 19 0 0.216919 0.849609
+7 3 20 0 0.227295 0.890625
+7 3 21 0 0.229248 0.898438
+7 3 22 0 0.231323 0.906738
+7 3 23 0 0.233521 0.915527
+7 3 24 0 0.235718 0.924316
+7 3 25 0 0.238037 0.933594
+7 3 26 0 0.240723 0.944336
+7 3 27 0 0.243774 0.956055
+7 3 28 0 0.24707 0.969238
+7 3 29 0 0.250732 0.983398
+7 3 30 0 0.254395 0.998047
+7 3 31 0 0.258301 1
+7 4 0 0.114441 0.0319214 0
+7 4 1 0.114441 0.0320435 0
+7 4 2 0.114624 0.0322571 0
+7 4 3 0.115173 0.0322571 0
+7 4 4 0.115662 0.0316162 0.0263367
+7 4 5 0.114075 0.0303192 0.0473938
+7 4 6 0.101929 0.0301819 0.0628662
+7 4 7 0.0856323 0.0342407 0.0737305
+7 4 8 0.078186 0.0368958 0.0964966
+7 4 9 0.0623779 0.0414124 0.125854
+7 4 10 0 0.0490417 0.164795
+7 4 11 0 0.0604248 0.216187
+7 4 12 0 0.0748291 0.278076
+7 4 13 0 0.09198 0.349365
+7 4 14 0 0.111572 0.429199
+7 4 15 0 0.133057 0.515625
+7 4 16 0 0.155762 0.606445
+7 4 17 0 0.178101 0.694824
+7 4 18 0 0.198853 0.776855
+7 4 19 0 0.217163 0.849609
+7 4 20 0 0.227539 0.890625
+7 4 21 0 0.22937 0.898438
+7 4 22 0 0.231445 0.907227
+7 4 23 0 0.233643 0.915527
+7 4 24 0 0.23584 0.924316
+7 4 25 0 0.238159 0.933594
+7 4 26 0 0.240845 0.944336
+7 4 27 0 0.243774 0.956055
+7 4 28 0 0.247192 0.969238
+7 4 29 0 0.250732 0.983398
+7 4 30 0 0.254395 0.998047
+7 4 31 0 0.258301 1
+7 5 0 0.106445 0.0461121 0
+7 5 1 0.106445 0.0462036 0
+7 5 2 0.106506 0.0463257 0
+7 5 3 0.106995 0.0465088 0
+7 5 4 0.10791 0.0466614 0.0234985
+7 5 5 0.109009 0.0466919 0.0446777
+7 5 6 0.102417 0.0445557 0.0633545
+7 5 7 0.0836792 0.0429993 0.0733643
+7 5 8 0.0760498 0.0447693 0.0962524
+7 5 9 0.0594482 0.0481873 0.125732
+7 5 10 0 0.0546265 0.164673
+7 5 11 0 0.0649414 0.216064
+7 5 12 0 0.0783691 0.278076
+7 5 13 0 0.0947266 0.349365
+7 5 14 0 0.113647 0.429199
+7 5 15 0 0.134644 0.515625
+7 5 16 0 0.156982 0.606445
+7 5 17 0 0.178955 0.694824
+7 5 18 0 0.199585 0.776855
+7 5 19 0 0.217773 0.849609
+7 5 20 0 0.228027 0.890625
+7 5 21 0 0.229736 0.898438
+7 5 22 0 0.231812 0.907227
+7 5 23 0 0.233887 0.915527
+7 5 24 0 0.235962 0.924316
+7 5 25 0 0.238403 0.933594
+7 5 26 0 0.240967 0.944336
+7 5 27 0 0.243896 0.956055
+7 5 28 0 0.247314 0.969238
+7 5 29 0 0.250732 0.983398
+7 5 30 0 0.254639 0.998047
+7 5 31 0 0.258301 1
+7 6 0 0.0941772 0.0581055 0
+7 6 1 0.0941772 0.058136 0
+7 6 2 0.0941772 0.058197 0
+7 6 3 0.0939941 0.0582581 0
+7 6 4 0.093811 0.0584717 0.0241394
+7 6 5 0.0940552 0.0591431 0.0403442
+7 6 6 0.0961304 0.0610657 0.0604553
+7 6 7 0.0797119 0.0549316 0.0726318
+7 6 8 0.0716553 0.0559692 0.0958252
+7 6 9 0.0531921 0.0582886 0.125366
+7 6 10 0 0.0634766 0.164307
+7 6 11 0 0.0725098 0.21582
+7 6 12 0 0.0845337 0.277832
+7 6 13 0 0.0995483 0.349121
+7 6 14 0 0.117432 0.428955
+7 6 15 0 0.137573 0.515625
+7 6 16 0 0.15918 0.606445
+7 6 17 0 0.180664 0.694824
+7 6 18 0 0.200928 0.776855
+7 6 19 0 0.218872 0.849609
+7 6 20 0 0.228882 0.890625
+7 6 21 0 0.230469 0.898438
+7 6 22 0 0.232422 0.907227
+7 6 23 0 0.234375 0.915527
+7 6 24 0 0.23645 0.924316
+7 6 25 0 0.23877 0.933594
+7 6 26 0 0.241333 0.944336
+7 6 27 0 0.244263 0.956055
+7 6 28 0 0.247559 0.969238
+7 6 29 0 0.250977 0.983398
+7 6 30 0 0.254639 0.998047
+7 6 31 0 0.258545 1
+7 7 0 0.0856323 0.0761108 0
+7 7 1 0.0856323 0.0761108 0
+7 7 2 0.0856323 0.0761719 0
+7 7 3 0.0853882 0.0761108 0
+7 7 4 0.0843506 0.0758057 0.0222626
+7 7 5 0.0823975 0.0751953 0.0384827
+7 7 6 0.0786133 0.0738525 0.0542908
+7 7 7 0.0710449 0.0710449 0.0710449
+7 7 8 0.0617676 0.0715942 0.0948486
+7 7 9 0.0365295 0.072937 0.124756
+7 7 10 0 0.0770264 0.163818
+7 7 11 0 0.0846558 0.215454
+7 7 12 0 0.0950317 0.277588
+7 7 13 0 0.108215 0.349121
+7 7 14 0 0.124329 0.428955
+7 7 15 0 0.142944 0.515625
+7 7 16 0 0.163452 0.606445
+7 7 17 0 0.18396 0.694824
+7 7 18 0 0.203491 0.776855
+7 7 19 0 0.220947 0.849609
+7 7 20 0 0.230591 0.891113
+7 7 21 0 0.231812 0.898926
+7 7 22 0 0.233521 0.907227
+7 7 23 0 0.235229 0.915527
+7 7 24 0 0.237183 0.924316
+7 7 25 0 0.23938 0.933594
+7 7 26 0 0.241943 0.944336
+7 7 27 0 0.244751 0.956055
+7 7 28 0 0.247925 0.969238
+7 7 29 0 0.251465 0.983398
+7 7 30 0 0.255127 0.998047
+7 7 31 0 0.258789 1
+7 8 0 0.0615234 0.0952148 0
+7 8 1 0.0615234 0.0952148 0
+7 8 2 0.0615234 0.0952759 0
+7 8 3 0.061554 0.0952759 0
+7 8 4 0.06073 0.0950317 0
+7 8 5 0.0587463 0.0943604 0.0279541
+7 8 6 0.0549622 0.0932617 0.0475464
+7 8 7 0.0478516 0.0924072 0.0678101
+7 8 8 0.0292969 0.0927124 0.0927124
+7 8 9 0 0.0935059 0.123535
+7 8 10 0 0.0966187 0.162964
+7 8 11 0 0.103149 0.214722
+7 8 12 0 0.111816 0.2771
+7 8 13 0 0.122742 0.348633
+7 8 14 0 0.136475 0.428711
+7 8 15 0 0.15271 0.515137
+7 8 16 0 0.171265 0.606445
+7 8 17 0 0.190186 0.694824
+7 8 18 0 0.208496 0.776855
+7 8 19 0 0.224976 0.850098
+7 8 20 0 0.233887 0.891113
+7 8 21 0 0.234497 0.898926
+7 8 22 0 0.235596 0.907227
+7 8 23 0 0.237061 0.916016
+7 8 24 0 0.23877 0.924316
+7 8 25 0 0.240723 0.934082
+7 8 26 0 0.243042 0.944336
+7 8 27 0 0.245728 0.956055
+7 8 28 0 0.248779 0.969238
+7 8 29 0 0.252197 0.983398
+7 8 30 0 0.255615 0.998047
+7 8 31 0 0.259277 1
+7 9 0 0 0.119995 0
+7 9 1 0 0.119995 0
+7 9 2 0 0.120056 0
+7 9 3 0 0.120056 0
+7 9 4 0 0.120117 0
+7 9 5 0 0.119995 0
+7 9 6 0 0.119812 0.035553
+7 9 7 0 0.119873 0.0612488
+7 9 8 0 0.1203 0.088562
+7 9 9 0 0.121094 0.121155
+7 9 10 0 0.123657 0.161377
+7 9 11 0 0.129395 0.213501
+7 9 12 0 0.136597 0.276123
+7 9 13 0 0.145386 0.348145
+7 9 14 0 0.15625 0.428467
+7 9 15 0 0.169434 0.515137
+7 9 16 0 0.185059 0.606445
+7 9 17 0 0.201416 0.694824
+7 9 18 0 0.217529 0.777344
+7 9 19 0 0.232422 0.850098
+7 9 20 0 0.23999 0.891602
+7 9 21 0 0.23938 0.899414
+7 9 22 0 0.239624 0.907715
+7 9 23 0 0.240479 0.916016
+7 9 24 0 0.241699 0.924805
+7 9 25 0 0.243286 0.934082
+7 9 26 0 0.245239 0.944824
+7 9 27 0 0.247559 0.956543
+7 9 28 0 0.250488 0.969727
+7 9 29 0 0.253418 0.983398
+7 9 30 0 0.256836 0.998047
+7 9 31 0 0.260498 1
+7 10 0 0 0.155151 0
+7 10 1 0 0.155151 0
+7 10 2 0 0.155151 0
+7 10 3 0 0.155151 0
+7 10 4 0 0.155273 0
+7 10 5 0 0.155273 0
+7 10 6 0 0.155273 0
+7 10 7 0 0.155396 0.0479126
+7 10 8 0 0.15564 0.0814209
+7 10 9 0 0.156616 0.117004
+7 10 10 0 0.158936 0.159058
+7 10 11 0 0.164062 0.211426
+7 10 12 0 0.170166 0.274658
+7 10 13 0 0.177124 0.346924
+7 10 14 0 0.185181 0.427734
+7 10 15 0 0.195068 0.514648
+7 10 16 0 0.207031 0.605957
+7 10 17 0 0.219849 0.694824
+7 10 18 0 0.23291 0.777344
+7 10 19 0 0.245239 0.850098
+7 10 20 0 0.250732 0.892578
+7 10 21 0 0.248047 0.899902
+7 10 22 0 0.246826 0.908203
+7 10 23 0 0.24646 0.916504
+7 10 24 0 0.246826 0.925293
+7 10 25 0 0.247681 0.93457
+7 10 26 0 0.249023 0.944824
+7 10 27 0 0.250977 0.956543
+7 10 28 0 0.253174 0.969727
+7 10 29 0 0.256104 0.983887
+7 10 30 0 0.259033 0.998535
+7 10 31 0 0.262207 1
+7 11 0 0 0.202515 0
+7 11 1 0 0.202515 0
+7 11 2 0 0.202515 0
+7 11 3 0 0.202515 0
+7 11 4 0 0.202515 0
+7 11 5 0 0.202637 0
+7 11 6 0 0.202637 0
+7 11 7 0 0.202637 0
+7 11 8 0 0.202637 0.0671997
+7 11 9 0 0.203003 0.110168
+7 11 10 0 0.204712 0.155396
+7 11 11 0 0.208374 0.208496
+7 11 12 0 0.213379 0.271973
+7 11 13 0 0.218872 0.344971
+7 11 14 0 0.224609 0.426514
+7 11 15 0 0.231201 0.51416
+7 11 16 0 0.239136 0.605957
+7 11 17 0 0.247803 0.694824
+7 11 18 0 0.256836 0.777344
+7 11 19 0 0.265625 0.850586
+7 11 20 0 0.268066 0.894043
+7 11 21 0 0.262207 0.901367
+7 11 22 0 0.258789 0.909668
+7 11 23 0 0.256592 0.91748
+7 11 24 0 0.255615 0.92627
+7 11 25 0 0.255371 0.935547
+7 11 26 0 0.255615 0.945801
+7 11 27 0 0.256592 0.95752
+7 11 28 0 0.258301 0.970215
+7 11 29 0 0.260254 0.984375
+7 11 30 0 0.262695 0.999023
+7 11 31 0 0.265381 1
+7 12 0 0 0.261475 0
+7 12 1 0 0.261475 0
+7 12 2 0 0.261475 0
+7 12 3 0 0.261475 0
+7 12 4 0 0.261475 0
+7 12 5 0 0.261475 0
+7 12 6 0 0.261475 0
+7 12 7 0 0.261719 0
+7 12 8 0 0.261719 0
+7 12 9 0 0.261963 0.0945435
+7 12 10 0 0.262451 0.147461
+7 12 11 0 0.264404 0.203247
+7 12 12 0 0.267578 0.267822
+7 12 13 0 0.271729 0.341553
+7 12 14 0 0.275635 0.424072
+7 12 15 0 0.279297 0.512695
+7 12 16 0 0.283447 0.60498
+7 12 17 0 0.287598 0.694824
+7 12 18 0 0.291992 0.777832
+7 12 19 0 0.296387 0.851074
+7 12 20 0 0.294922 0.896484
+7 12 21 0 0.284668 0.90332
+7 12 22 0 0.277588 0.911621
+7 12 23 0 0.272949 0.919434
+7 12 24 0 0.269775 0.927734
+7 12 25 0 0.267822 0.937012
+7 12 26 0 0.266357 0.946777
+7 12 27 0 0.265869 0.958496
+7 12 28 0 0.266357 0.971191
+7 12 29 0 0.267334 0.985352
+7 12 30 0 0.268799 0.999512
+7 12 31 0 0.270752 1
+7 13 0 0 0.32959 0
+7 13 1 0 0.32959 0
+7 13 2 0 0.32959 0
+7 13 3 0 0.32959 0
+7 13 4 0 0.32959 0
+7 13 5 0 0.329834 0
+7 13 6 0 0.329834 0
+7 13 7 0 0.329834 0
+7 13 8 0 0.330078 0
+7 13 9 0 0.330322 0.0448914
+7 13 10 0 0.330566 0.12915
+7 13 11 0 0.331543 0.192749
+7 13 12 0 0.333252 0.260498
+7 13 13 0 0.335693 0.335938
+7 13 14 0 0.338135 0.419922
+7 13 15 0 0.339355 0.509766
+7 13 16 0 0.340088 0.603516
+7 13 17 0 0.339844 0.694336
+7 13 18 0 0.339355 0.777832
+7 13 19 0 0.338867 0.851562
+7 13 20 0 0.333496 0.899902
+7 13 21 0 0.317139 0.907227
+7 13 22 0 0.30542 0.914551
+7 13 23 0 0.297363 0.922363
+7 13 24 0 0.29126 0.930176
+7 13 25 0 0.286621 0.938965
+7 13 26 0 0.283203 0.949219
+7 13 27 0 0.280518 0.960449
+7 13 28 0 0.279297 0.973145
+7 13 29 0 0.278564 0.986816
+7 13 30 0 0.278564 1
+7 13 31 0 0.279297 1
+7 14 0 0 0.406982 0
+7 14 1 0 0.406982 0
+7 14 2 0 0.406982 0
+7 14 3 0 0.406982 0
+7 14 4 0 0.406982 0
+7 14 5 0 0.406982 0
+7 14 6 0 0.406982 0
+7 14 7 0 0.406982 0
+7 14 8 0 0.407227 0
+7 14 9 0 0.407471 0
+7 14 10 0 0.408203 0.0841064
+7 14 11 0 0.408936 0.171387
+7 14 12 0 0.409912 0.246826
+7 14 13 0 0.411133 0.325928
+7 14 14 0 0.412109 0.412354
+7 14 15 0 0.411865 0.504395
+7 14 16 0 0.409912 0.600586
+7 14 17 0 0.405518 0.692871
+7 14 18 0 0.400391 0.777344
+7 14 19 0 0.394775 0.852051
+7 14 20 0 0.385254 0.905273
+7 14 21 0 0.362061 0.912109
+7 14 22 0 0.344727 0.919434
+7 14 23 0 0.331787 0.926758
+7 14 24 0 0.322266 0.93457
+7 14 25 0 0.314209 0.942871
+7 14 26 0 0.307373 0.952637
+7 14 27 0 0.302246 0.963379
+7 14 28 0 0.29834 0.975586
+7 14 29 0 0.29541 0.98877
+7 14 30 0 0.293457 1
+7 14 31 0 0.292236 1
+7 15 0 0 0.490967 0
+7 15 1 0 0.490967 0
+7 15 2 0 0.490967 0
+7 15 3 0 0.491211 0
+7 15 4 0 0.491211 0
+7 15 5 0 0.491211 0
+7 15 6 0 0.491211 0
+7 15 7 0 0.491211 0
+7 15 8 0 0.491455 0
+7 15 9 0 0.491699 0
+7 15 10 0 0.492188 0
+7 15 11 0 0.493164 0.127563
+7 15 12 0 0.494385 0.222168
+7 15 13 0 0.495605 0.308838
+7 15 14 0 0.496094 0.399414
+7 15 15 0 0.494873 0.494873
+7 15 16 0 0.490967 0.59375
+7 15 17 0 0.483643 0.688965
+7 15 18 0 0.474121 0.775391
+7 15 19 0 0.463623 0.851562
+7 15 20 0 0.451172 0.911133
+7 15 21 0 0.42041 0.919922
+7 15 22 0 0.39624 0.927246
+7 15 23 0 0.37793 0.934082
+7 15 24 0 0.36377 0.941406
+7 15 25 0 0.351562 0.949219
+7 15 26 0 0.341064 0.958008
+7 15 27 0 0.332031 0.968262
+7 15 28 0 0.324951 0.97998
+7 15 29 0 0.319092 0.992676
+7 15 30 0 0.314453 1
+7 15 31 0 0.310791 1
+7 16 0 0 0.580566 0
+7 16 1 0 0.580566 0
+7 16 2 0 0.580566 0
+7 16 3 0 0.580566 0
+7 16 4 0 0.580566 0
+7 16 5 0 0.580566 0
+7 16 6 0 0.581055 0
+7 16 7 0 0.581055 0
+7 16 8 0 0.581055 0
+7 16 9 0 0.581055 0
+7 16 10 0 0.581543 0
+7 16 11 0 0.583008 0
+7 16 12 0 0.584473 0.178223
+7 16 13 0 0.585938 0.280762
+7 16 14 0 0.586914 0.378418
+7 16 15 0 0.585938 0.47876
+7 16 16 0 0.581543 0.581543
+7 16 17 0 0.572266 0.680664
+7 16 18 0 0.55957 0.770996
+7 16 19 0 0.544922 0.849121
+7 16 20 0 0.529297 0.914062
+7 16 21 0 0.492676 0.929199
+7 16 22 0 0.46167 0.937988
+7 16 23 0 0.437256 0.945312
+7 16 24 0 0.417725 0.95166
+7 16 25 0 0.400391 0.958984
+7 16 26 0 0.385254 0.967285
+7 16 27 0 0.371826 0.976074
+7 16 28 0 0.360596 0.986816
+7 16 29 0 0.351074 0.998535
+7 16 30 0 0.343018 1
+7 16 31 0 0.336182 1
+7 17 0 0 0.67041 0
+7 17 1 0 0.67041 0
+7 17 2 0 0.67041 0
+7 17 3 0 0.67041 0
+7 17 4 0 0.67041 0
+7 17 5 0 0.67041 0
+7 17 6 0 0.67041 0
+7 17 7 0 0.67041 0
+7 17 8 0 0.67041 0
+7 17 9 0 0.67041 0
+7 17 10 0 0.670898 0
+7 17 11 0 0.671875 0
+7 17 12 0 0.673828 0.0735474
+7 17 13 0 0.67627 0.237183
+7 17 14 0 0.678223 0.347412
+7 17 15 0 0.678223 0.454102
+7 17 16 0 0.674805 0.562012
+7 17 17 0 0.665527 0.666016
+7 17 18 0 0.651367 0.760742
+7 17 19 0 0.633789 0.843262
+7 17 20 0 0.614258 0.911133
+7 17 21 0 0.576172 0.938477
+7 17 22 0 0.539062 0.95166
+7 17 23 0 0.508301 0.959961
+7 17 24 0 0.483154 0.966797
+7 17 25 0 0.460449 0.973145
+7 17 26 0 0.439697 0.97998
+7 17 27 0 0.421143 0.987793
+7 17 28 0 0.405273 0.99707
+7 17 29 0 0.391113 1
+7 17 30 0 0.378906 1
+7 17 31 0 0.368408 1
+7 18 0 0 0.754395 0
+7 18 1 0 0.754395 0
+7 18 2 0 0.754395 0
+7 18 3 0 0.754395 0
+7 18 4 0 0.754395 0
+7 18 5 0 0.754395 0
+7 18 6 0 0.754395 0
+7 18 7 0 0.754395 0
+7 18 8 0 0.754395 0
+7 18 9 0 0.754883 0
+7 18 10 0 0.754883 0
+7 18 11 0 0.755371 0
+7 18 12 0 0.757812 0
+7 18 13 0 0.760254 0.165649
+7 18 14 0 0.763672 0.304443
+7 18 15 0 0.765137 0.42041
+7 18 16 0 0.763672 0.53418
+7 18 17 0 0.756836 0.643555
+7 18 18 0 0.743652 0.743652
+7 18 19 0 0.725098 0.831055
+7 18 20 0 0.703125 0.90332
+7 18 21 0 0.666016 0.944336
+7 18 22 0 0.625977 0.965332
+7 18 23 0 0.589844 0.977539
+7 18 24 0 0.559082 0.985352
+7 18 25 0 0.530273 0.991699
+7 18 26 0 0.503418 0.997559
+7 18 27 0 0.479248 1
+7 18 28 0 0.457764 1
+7 18 29 0 0.438477 1
+7 18 30 0 0.421631 1
+7 18 31 0 0.406738 1
+7 19 0 0 0.830566 0
+7 19 1 0 0.830566 0
+7 19 2 0 0.830566 0
+7 19 3 0 0.830566 0
+7 19 4 0 0.830566 0
+7 19 5 0 0.830566 0
+7 19 6 0 0.830566 0
+7 19 7 0 0.830566 0
+7 19 8 0 0.831055 0
+7 19 9 0 0.831055 0
+7 19 10 0 0.831055 0
+7 19 11 0 0.831543 0
+7 19 12 0 0.833008 0
+7 19 13 0 0.835938 0
+7 19 14 0 0.839844 0.246582
+7 19 15 0 0.843262 0.378662
+7 19 16 0 0.844238 0.499268
+7 19 17 0 0.840332 0.61377
+7 19 18 0 0.82959 0.719727
+7 19 19 0 0.8125 0.8125
+7 19 20 0 0.789551 0.889648
+7 19 21 0 0.756348 0.943359
+7 19 22 0 0.716309 0.975586
+7 19 23 0 0.676758 0.994141
+7 19 24 0 0.641113 1
+7 19 25 0 0.606934 1
+7 19 26 0 0.574219 1
+7 19 27 0 0.543945 1
+7 19 28 0 0.516602 1
+7 19 29 0 0.491699 1
+7 19 30 0 0.469482 1
+7 19 31 0 0.449951 1
+7 20 0 0 0.896973 0
+7 20 1 0 0.896973 0
+7 20 2 0 0.896973 0
+7 20 3 0 0.896973 0
+7 20 4 0 0.896973 0
+7 20 5 0 0.896973 0
+7 20 6 0 0.896973 0
+7 20 7 0 0.896973 0
+7 20 8 0 0.896973 0
+7 20 9 0 0.896973 0
+7 20 10 0 0.897461 0
+7 20 11 0 0.897461 0
+7 20 12 0 0.898438 0
+7 20 13 0 0.901367 0
+7 20 14 0 0.905762 0.160522
+7 20 15 0 0.910645 0.329346
+7 20 16 0 0.913574 0.458984
+7 20 17 0 0.912598 0.579102
+7 20 18 0 0.905273 0.689453
+7 20 19 0 0.890137 0.787598
+7 20 20 0 0.869141 0.869629
+7 20 21 0 0.840332 0.93457
+7 20 22 0 0.803711 0.979004
+7 20 23 0 0.76416 1
+7 20 24 0 0.725586 1
+7 20 25 0 0.687012 1
+7 20 26 0 0.648926 1
+7 20 27 0 0.612793 1
+7 20 28 0 0.579102 1
+7 20 29 0 0.548828 1
+7 20 30 0 0.520996 1
+7 20 31 0 0.496338 1
+7 21 0 0 0.953613 0
+7 21 1 0 0.953613 0
+7 21 2 0 0.953613 0
+7 21 3 0 0.953613 0
+7 21 4 0 0.953613 0
+7 21 5 0 0.953613 0
+7 21 6 0 0.953613 0
+7 21 7 0 0.953613 0
+7 21 8 0 0.953613 0
+7 21 9 0 0.953613 0
+7 21 10 0 0.954102 0
+7 21 11 0 0.954102 0
+7 21 12 0 0.954102 0
+7 21 13 0 0.957031 0
+7 21 14 0 0.961914 0
+7 21 15 0 0.967285 0.268555
+7 21 16 0 0.972168 0.413574
+7 21 17 0 0.974121 0.539062
+7 21 18 0 0.970215 0.653809
+7 21 19 0 0.958984 0.755859
+7 21 20 0 0.94043 0.843262
+7 21 21 0 0.915527 0.916016
+7 21 22 0 0.884277 0.97168
+7 21 23 0 0.847168 1
+7 21 24 0 0.808594 1
+7 21 25 0 0.767578 1
+7 21 26 0 0.725586 1
+7 21 27 0 0.68457 1
+7 21 28 0 0.645508 1
+7 21 29 0 0.609375 1
+7 21 30 0 0.576172 1
+7 21 31 0 0.546387 1
+7 22 0 0 1 0
+7 22 1 0 1 0
+7 22 2 0 1 0
+7 22 3 0 1 0
+7 22 4 0 1 0
+7 22 5 0 1 0
+7 22 6 0 1 0
+7 22 7 0 1 0
+7 22 8 0 1 0
+7 22 9 0 1 0
+7 22 10 0 1 0
+7 22 11 0 1 0
+7 22 12 0 1 0
+7 22 13 0 1 0
+7 22 14 0 1 0
+7 22 15 0 1 0.187134
+7 22 16 0 1 0.363037
+7 22 17 0 1 0.49585
+7 22 18 0 1 0.614258
+7 22 19 0 1 0.720215
+7 22 20 0 1 0.811523
+7 22 21 0 0.97998 0.889648
+7 22 22 0 0.953125 0.953613
+7 22 23 0 0.920898 1
+7 22 24 0 0.885254 1
+7 22 25 0 0.844238 1
+7 22 26 0 0.800781 1
+7 22 27 0 0.756348 1
+7 22 28 0 0.712891 1
+7 22 29 0 0.671875 1
+7 22 30 0 0.633301 1
+7 22 31 0 0.598145 1
+7 23 0 0 1 0
+7 23 1 0 1 0
+7 23 2 0 1 0
+7 23 3 0 1 0
+7 23 4 0 1 0
+7 23 5 0 1 0
+7 23 6 0 1 0
+7 23 7 0 1 0
+7 23 8 0 1 0
+7 23 9 0 1 0
+7 23 10 0 1 0
+7 23 11 0 1 0
+7 23 12 0 1 0
+7 23 13 0 1 0
+7 23 14 0 1 0
+7 23 15 0 1 0
+7 23 16 0 1 0.30835
+7 23 17 0 1 0.451416
+7 23 18 0 1 0.57373
+7 23 19 0 1 0.682617
+7 23 20 0 1 0.777344
+7 23 21 0 1 0.859375
+7 23 22 0 1 0.928223
+7 23 23 0 0.981445 0.981934
+7 23 24 0 0.950195 1
+7 23 25 0 0.912109 1
+7 23 26 0 0.869141 1
+7 23 27 0 0.823242 1
+7 23 28 0 0.776855 1
+7 23 29 0 0.731934 1
+7 23 30 0 0.688965 1
+7 23 31 0 0.648926 1
+7 24 0 0 1 0
+7 24 1 0 1 0
+7 24 2 0 1 0
+7 24 3 0 1 0
+7 24 4 0 1 0
+7 24 5 0 1 0
+7 24 6 0 1 0
+7 24 7 0 1 0
+7 24 8 0 1 0
+7 24 9 0 1 0
+7 24 10 0 1 0
+7 24 11 0 1 0
+7 24 12 0 1 0
+7 24 13 0 1 0
+7 24 14 0 1 0
+7 24 15 0 1 0
+7 24 16 0 1 0.245728
+7 24 17 0 1 0.406006
+7 24 18 0 1 0.533203
+7 24 19 0 1 0.644531
+7 24 20 0 1 0.741699
+7 24 21 0 1 0.827148
+7 24 22 0 1 0.899414
+7 24 23 0 1 0.95752
+7 24 24 0 1 1
+7 24 25 0 0.970215 1
+7 24 26 0 0.929688 1
+7 24 27 0 0.884277 1
+7 24 28 0 0.836914 1
+7 24 29 0 0.789062 1
+7 24 30 0 0.742676 1
+7 24 31 0 0.69873 1
+7 25 0 0 1 0
+7 25 1 0 1 0
+7 25 2 0 1 0
+7 25 3 0 1 0
+7 25 4 0 1 0
+7 25 5 0 1 0
+7 25 6 0 1 0
+7 25 7 0 1 0
+7 25 8 0 1 0
+7 25 9 0 1 0
+7 25 10 0 1 0
+7 25 11 0 1 0
+7 25 12 0 1 0
+7 25 13 0 1 0
+7 25 14 0 1 0
+7 25 15 0 1 0
+7 25 16 0 1 0.151001
+7 25 17 0 1 0.354004
+7 25 18 0 1 0.487549
+7 25 19 0 1 0.601562
+7 25 20 0 1 0.701172
+7 25 21 0 1 0.789062
+7 25 22 0 1 0.865234
+7 25 23 0 1 0.927734
+7 25 24 0 1 0.979004
+7 25 25 0 1 1
+7 25 26 0 0.987305 1
+7 25 27 0 0.944336 1
+7 25 28 0 0.896973 1
+7 25 29 0 0.847656 1
+7 25 30 0 0.798828 1
+7 25 31 0 0.751465 1
+7 26 0 0 1 0
+7 26 1 0 1 0
+7 26 2 0 1 0
+7 26 3 0 1 0
+7 26 4 0 1 0
+7 26 5 0 1 0
+7 26 6 0 1 0
+7 26 7 0 1 0
+7 26 8 0 1 0
+7 26 9 0 1 0
+7 26 10 0 1 0
+7 26 11 0 1 0
+7 26 12 0 1 0
+7 26 13 0 1 0
+7 26 14 0 1 0
+7 26 15 0 1 0
+7 26 16 0 1 0
+7 26 17 0 1 0.291992
+7 26 18 0 1 0.437256
+7 26 19 0 1 0.554199
+7 26 20 0 1 0.655762
+7 26 21 0 1 0.746094
+7 26 22 0 1 0.825195
+7 26 23 0 1 0.891602
+7 26 24 0 1 0.946777
+7 26 25 0 1 0.99707
+7 26 26 0 1 1
+7 26 27 0 1 1
+7 26 28 0 0.956055 1
+7 26 29 0 0.906738 1
+7 26 30 0 0.856445 1
+7 26 31 0 0.806152 1
+7 27 0 0 1 0
+7 27 1 0 1 0
+7 27 2 0 1 0
+7 27 3 0 1 0
+7 27 4 0 1 0
+7 27 5 0 1 0
+7 27 6 0 1 0
+7 27 7 0 1 0
+7 27 8 0 1 0
+7 27 9 0 1 0
+7 27 10 0 1 0
+7 27 11 0 1 0
+7 27 12 0 1 0
+7 27 13 0 1 0
+7 27 14 0 1 0
+7 27 15 0 1 0
+7 27 16 0 1 0
+7 27 17 0 1 0.209595
+7 27 18 0 1 0.380859
+7 27 19 0 1 0.503418
+7 27 20 0 1 0.606934
+7 27 21 0 1 0.69873
+7 27 22 0 1 0.780273
+7 27 23 0 1 0.849609
+7 27 24 0 1 0.908203
+7 27 25 0 1 0.962891
+7 27 26 0 1 1
+7 27 27 0 1 1
+7 27 28 0 1 1
+7 27 29 0 0.964355 1
+7 27 30 0 0.913574 1
+7 27 31 0 0.862305 1
+7 28 0 0 1 0
+7 28 1 0 1 0
+7 28 2 0 1 0
+7 28 3 0 1 0
+7 28 4 0 1 0
+7 28 5 0 1 0
+7 28 6 0 1 0
+7 28 7 0 1 0
+7 28 8 0 1 0
+7 28 9 0 1 0
+7 28 10 0 1 0
+7 28 11 0 1 0
+7 28 12 0 1 0
+7 28 13 0 1 0
+7 28 14 0 1 0
+7 28 15 0 1 0
+7 28 16 0 1 0
+7 28 17 0 1 0
+7 28 18 0 1 0.315674
+7 28 19 0 1 0.44751
+7 28 20 0 1 0.553711
+7 28 21 0 1 0.647461
+7 28 22 0 1 0.730469
+7 28 23 0 1 0.802246
+7 28 24 0 1 0.86377
+7 28 25 0 1 0.921875
+7 28 26 0 1 0.975586
+7 28 27 0 1 1
+7 28 28 0 1 1
+7 28 29 0 1 1
+7 28 30 0 0.969727 1
+7 28 31 0 0.918457 1
+7 29 0 0 1 0
+7 29 1 0 1 0
+7 29 2 0 1 0
+7 29 3 0 1 0
+7 29 4 0 1 0
+7 29 5 0 1 0
+7 29 6 0 1 0
+7 29 7 0 1 0
+7 29 8 0 1 0
+7 29 9 0 1 0
+7 29 10 0 1 0
+7 29 11 0 1 0
+7 29 12 0 1 0
+7 29 13 0 1 0
+7 29 14 0 1 0
+7 29 15 0 1 0
+7 29 16 0 1 0
+7 29 17 0 1 0
+7 29 18 0 1 0.233276
+7 29 19 0 1 0.385742
+7 29 20 0 1 0.496338
+7 29 21 0 1 0.591797
+7 29 22 0 1 0.67627
+7 29 23 0 1 0.749023
+7 29 24 0 1 0.812988
+7 29 25 0 1 0.874023
+7 29 26 0 1 0.931641
+7 29 27 0 1 0.984375
+7 29 28 0 1 1
+7 29 29 0 1 1
+7 29 30 0 1 1
+7 29 31 0 0.974609 1
+7 30 0 0 1 0
+7 30 1 0 1 0
+7 30 2 0 1 0
+7 30 3 0 1 0
+7 30 4 0 1 0
+7 30 5 0 1 0
+7 30 6 0 1 0
+7 30 7 0 1 0
+7 30 8 0 1 0
+7 30 9 0 1 0
+7 30 10 0 1 0
+7 30 11 0 1 0
+7 30 12 0 1 0
+7 30 13 0 1 0
+7 30 14 0 1 0
+7 30 15 0 1 0
+7 30 16 0 1 0
+7 30 17 0 1 0
+7 30 18 0 1 0.0708618
+7 30 19 0 1 0.315186
+7 30 20 0 1 0.43457
+7 30 21 0 1 0.532227
+7 30 22 0 1 0.617676
+7 30 23 0 1 0.691895
+7 30 24 0 1 0.756836
+7 30 25 0 1 0.820312
+7 30 26 0 1 0.880859
+7 30 27 0 1 0.938477
+7 30 28 0 1 0.990234
+7 30 29 0 1 1
+7 30 30 0 1 1
+7 30 31 0 1 1
+7 31 0 0 1 0
+7 31 1 0 1 0
+7 31 2 0 1 0
+7 31 3 0 1 0
+7 31 4 0 1 0
+7 31 5 0 1 0
+7 31 6 0 1 0
+7 31 7 0 1 0
+7 31 8 0 1 0
+7 31 9 0 1 0
+7 31 10 0 1 0
+7 31 11 0 1 0
+7 31 12 0 1 0
+7 31 13 0 1 0
+7 31 14 0 1 0
+7 31 15 0 1 0
+7 31 16 0 1 0
+7 31 17 0 1 0
+7 31 18 0 1 0
+7 31 19 0 1 0.226562
+7 31 20 0 1 0.366699
+7 31 21 0 1 0.469238
+7 31 22 0 1 0.556152
+7 31 23 0 1 0.630859
+7 31 24 0 1 0.696777
+7 31 25 0 1 0.761719
+7 31 26 0 1 0.825195
+7 31 27 0 1 0.88623
+7 31 28 0 1 0.943359
+7 31 29 0 1 0.995605
+7 31 30 0 1 1
+7 31 31 0 1 1
+8 0 0 0.159546 0 0
+8 0 1 0.159546 0 0
+8 0 2 0.159546 0 0
+8 0 3 0.159546 0 0
+8 0 4 0.159668 0 0
+8 0 5 0.158203 0 0.0385742
+8 0 6 0.153564 0 0.0640259
+8 0 7 0.131592 0 0.0803833
+8 0 8 0.113708 0.022995 0.0961304
+8 0 9 0.104858 0.0310669 0.125732
+8 0 10 0.0879517 0.0412903 0.164673
+8 0 11 0.0237122 0.0545654 0.215942
+8 0 12 0 0.0704956 0.278076
+8 0 13 0 0.0888062 0.349365
+8 0 14 0 0.109192 0.429199
+8 0 15 0 0.131348 0.515625
+8 0 16 0 0.154541 0.606445
+8 0 17 0 0.177124 0.694824
+8 0 18 0 0.197998 0.777344
+8 0 19 0 0.216553 0.850098
+8 0 20 0 0.227051 0.891113
+8 0 21 0 0.229126 0.898926
+8 0 22 0 0.231201 0.907227
+8 0 23 0 0.233398 0.916016
+8 0 24 0 0.235596 0.924316
+8 0 25 0 0.238037 0.934082
+8 0 26 0 0.240723 0.944336
+8 0 27 0 0.243652 0.956055
+8 0 28 0 0.24707 0.969238
+8 0 29 0 0.250732 0.983398
+8 0 30 0 0.254395 0.998047
+8 0 31 0 0.258301 1
+8 1 0 0.15918 0 0
+8 1 1 0.15918 0 0
+8 1 2 0.159058 0 0
+8 1 3 0.15918 0 0
+8 1 4 0.159424 0 0
+8 1 5 0.157959 0 0.0382996
+8 1 6 0.153442 0 0.0639038
+8 1 7 0.131714 0 0.0803833
+8 1 8 0.113586 0.0243988 0.0960693
+8 1 9 0.104736 0.0319824 0.125732
+8 1 10 0.0878296 0.0419312 0.164673
+8 1 11 0.0226898 0.0550232 0.215942
+8 1 12 0 0.0708008 0.278076
+8 1 13 0 0.0889893 0.349365
+8 1 14 0 0.109375 0.429199
+8 1 15 0 0.13147 0.515625
+8 1 16 0 0.154541 0.606445
+8 1 17 0 0.177124 0.694824
+8 1 18 0 0.19812 0.777344
+8 1 19 0 0.216675 0.850098
+8 1 20 0 0.227173 0.891113
+8 1 21 0 0.229126 0.898926
+8 1 22 0 0.231323 0.907227
+8 1 23 0 0.233398 0.916016
+8 1 24 0 0.235596 0.924316
+8 1 25 0 0.238037 0.934082
+8 1 26 0 0.240723 0.944336
+8 1 27 0 0.243774 0.956055
+8 1 28 0 0.24707 0.969238
+8 1 29 0 0.250732 0.983398
+8 1 30 0 0.254395 0.998047
+8 1 31 0 0.258301 1
+8 2 0 0.158447 0 0
+8 2 1 0.158447 0 0
+8 2 2 0.158447 0 0
+8 2 3 0.158569 0 0
+8 2 4 0.158813 0 0
+8 2 5 0.157593 0 0.0378113
+8 2 6 0.15332 0 0.0637207
+8 2 7 0.131714 0 0.0805054
+8 2 8 0.113403 0.0266571 0.0960693
+8 2 9 0.104492 0.0335693 0.125732
+8 2 10 0.0875244 0.0430298 0.164551
+8 2 11 0.0206909 0.0558167 0.215942
+8 2 12 0 0.0714111 0.277832
+8 2 13 0 0.0894775 0.349365
+8 2 14 0 0.10968 0.429199
+8 2 15 0 0.131714 0.515625
+8 2 16 0 0.154785 0.606445
+8 2 17 0 0.177246 0.694824
+8 2 18 0 0.198242 0.777344
+8 2 19 0 0.216675 0.850098
+8 2 20 0 0.227173 0.891113
+8 2 21 0 0.229126 0.898926
+8 2 22 0 0.231323 0.907227
+8 2 23 0 0.233521 0.916016
+8 2 24 0 0.235718 0.924316
+8 2 25 0 0.238037 0.934082
+8 2 26 0 0.240723 0.944336
+8 2 27 0 0.243774 0.956055
+8 2 28 0 0.24707 0.969238
+8 2 29 0 0.250732 0.983398
+8 2 30 0 0.254395 0.998047
+8 2 31 0 0.258301 1
+8 3 0 0.157227 0 0
+8 3 1 0.157227 0 0
+8 3 2 0.157104 0 0
+8 3 3 0.157227 0 0
+8 3 4 0.157715 0 0
+8 3 5 0.15686 0 0.0369568
+8 3 6 0.152832 0 0.0632935
+8 3 7 0.131958 0 0.0806274
+8 3 8 0.113037 0.0301971 0.0960083
+8 3 9 0.104126 0.0361938 0.125732
+8 3 10 0.0870361 0.0449524 0.164551
+8 3 11 0.0161133 0.057251 0.215942
+8 3 12 0 0.0724487 0.277832
+8 3 13 0 0.09021 0.349365
+8 3 14 0 0.110291 0.429199
+8 3 15 0 0.13208 0.515625
+8 3 16 0 0.155151 0.606445
+8 3 17 0 0.17749 0.694824
+8 3 18 0 0.198364 0.777344
+8 3 19 0 0.216919 0.850098
+8 3 20 0 0.227295 0.891113
+8 3 21 0 0.229248 0.898926
+8 3 22 0 0.231445 0.907227
+8 3 23 0 0.233521 0.916016
+8 3 24 0 0.235718 0.924316
+8 3 25 0 0.238159 0.934082
+8 3 26 0 0.240845 0.944336
+8 3 27 0 0.243774 0.956055
+8 3 28 0 0.247192 0.969238
+8 3 29 0 0.250732 0.983398
+8 3 30 0 0.254395 0.998047
+8 3 31 0 0.258301 1
+8 4 0 0.154663 0 0
+8 4 1 0.154663 0.00206947 0
+8 4 2 0.154663 0.00662994 0
+8 4 3 0.154785 0.00898743 0
+8 4 4 0.155396 0.00894165 0
+8 4 5 0.155029 0 0.0353394
+8 4 6 0.151611 0 0.0624695
+8 4 7 0.132202 0.020874 0.0808716
+8 4 8 0.112427 0.035675 0.0958862
+8 4 9 0.103455 0.0405273 0.12561
+8 4 10 0.0860596 0.0482788 0.164551
+8 4 11 0 0.0598145 0.21582
+8 4 12 0 0.0744019 0.277832
+8 4 13 0 0.0916748 0.349365
+8 4 14 0 0.111389 0.429199
+8 4 15 0 0.132935 0.515625
+8 4 16 0 0.155762 0.606445
+8 4 17 0 0.177979 0.694824
+8 4 18 0 0.19873 0.777344
+8 4 19 0 0.217163 0.850098
+8 4 20 0 0.227539 0.891113
+8 4 21 0 0.229492 0.898926
+8 4 22 0 0.231567 0.907227
+8 4 23 0 0.233643 0.916016
+8 4 24 0 0.23584 0.924316
+8 4 25 0 0.238281 0.934082
+8 4 26 0 0.240845 0.944336
+8 4 27 0 0.243896 0.956055
+8 4 28 0 0.247192 0.969238
+8 4 29 0 0.250732 0.983398
+8 4 30 0 0.254395 0.998047
+8 4 31 0 0.258301 1
+8 5 0 0.149414 0.039978 0
+8 5 1 0.149414 0.0401001 0
+8 5 2 0.149292 0.0402832 0
+8 5 3 0.149414 0.0405579 0
+8 5 4 0.150269 0.0406799 0
+8 5 5 0.150879 0.0397949 0.0323486
+8 5 6 0.148926 0.0379944 0.0606995
+8 5 7 0.132935 0.0379639 0.0814209
+8 5 8 0.111145 0.0437927 0.0956421
+8 5 9 0.10199 0.0474548 0.125488
+8 5 10 0.0842285 0.0539856 0.164307
+8 5 11 0 0.0643921 0.215698
+8 5 12 0 0.0779419 0.277832
+8 5 13 0 0.0943604 0.349121
+8 5 14 0 0.113403 0.429199
+8 5 15 0 0.134521 0.515625
+8 5 16 0 0.15686 0.606445
+8 5 17 0 0.178955 0.694824
+8 5 18 0 0.199463 0.777344
+8 5 19 0 0.217773 0.850098
+8 5 20 0 0.228027 0.891113
+8 5 21 0 0.229858 0.898926
+8 5 22 0 0.231812 0.907227
+8 5 23 0 0.233887 0.916016
+8 5 24 0 0.236084 0.924316
+8 5 25 0 0.238403 0.934082
+8 5 26 0 0.241089 0.944336
+8 5 27 0 0.244019 0.956055
+8 5 28 0 0.247314 0.969238
+8 5 29 0 0.250977 0.983398
+8 5 30 0 0.254639 0.998047
+8 5 31 0 0.258545 1
+8 6 0 0.138916 0.0591125 0
+8 6 1 0.138916 0.0591736 0
+8 6 2 0.138916 0.0592346 0
+8 6 3 0.138916 0.0593872 0
+8 6 4 0.139648 0.0596619 0
+8 6 5 0.140747 0.0598755 0.0284882
+8 6 6 0.142334 0.0598755 0.0571289
+8 6 7 0.133545 0.0570679 0.0820312
+8 6 8 0.108643 0.0551758 0.0951538
+8 6 9 0.0992432 0.0577393 0.125122
+8 6 10 0.0805054 0.0629272 0.164062
+8 6 11 0 0.0720215 0.215576
+8 6 12 0 0.0841675 0.277588
+8 6 13 0 0.0993042 0.349121
+8 6 14 0 0.117188 0.428955
+8 6 15 0 0.137329 0.515625
+8 6 16 0 0.15918 0.606445
+8 6 17 0 0.180664 0.694824
+8 6 18 0 0.200806 0.777344
+8 6 19 0 0.218872 0.850098
+8 6 20 0 0.228882 0.891113
+8 6 21 0 0.230591 0.898926
+8 6 22 0 0.232422 0.907227
+8 6 23 0 0.234375 0.916016
+8 6 24 0 0.23645 0.924316
+8 6 25 0 0.23877 0.934082
+8 6 26 0 0.241333 0.944336
+8 6 27 0 0.244263 0.956055
+8 6 28 0 0.247559 0.969238
+8 6 29 0 0.250977 0.983398
+8 6 30 0 0.254639 0.998047
+8 6 31 0 0.258545 1
+8 7 0 0.122681 0.0751343 0
+8 7 1 0.122681 0.0751953 0
+8 7 2 0.122681 0.0751953 0
+8 7 3 0.12262 0.0753174 0
+8 7 4 0.122437 0.0753784 0
+8 7 5 0.122192 0.0756836 0.0298004
+8 7 6 0.122498 0.0765381 0.0514832
+8 7 7 0.125244 0.0789795 0.078186
+8 7 8 0.103516 0.0708618 0.0941772
+8 7 9 0.0935059 0.0725708 0.124573
+8 7 10 0.0724487 0.0765991 0.163696
+8 7 11 0 0.0842285 0.21521
+8 7 12 0 0.0946655 0.277344
+8 7 13 0 0.10791 0.348877
+8 7 14 0 0.124084 0.428955
+8 7 15 0 0.142822 0.515625
+8 7 16 0 0.16333 0.606445
+8 7 17 0 0.18396 0.694824
+8 7 18 0 0.203491 0.777344
+8 7 19 0 0.220947 0.850098
+8 7 20 0 0.230591 0.891113
+8 7 21 0 0.231934 0.898926
+8 7 22 0 0.233521 0.907715
+8 7 23 0 0.235352 0.916016
+8 7 24 0 0.237305 0.924316
+8 7 25 0 0.239502 0.934082
+8 7 26 0 0.241943 0.944336
+8 7 27 0 0.244751 0.956055
+8 7 28 0 0.247925 0.969238
+8 7 29 0 0.251465 0.983398
+8 7 30 0 0.255127 0.998047
+8 7 31 0 0.258789 1
+8 8 0 0.11145 0.0990601 0
+8 8 1 0.11145 0.0990601 0
+8 8 2 0.11145 0.0990601 0
+8 8 3 0.11145 0.0991821 0
+8 8 4 0.111267 0.0991211 0
+8 8 5 0.109924 0.0986938 0.027359
+8 8 6 0.107361 0.0978394 0.0491638
+8 8 7 0.102295 0.0960083 0.0701294
+8 8 8 0.0921631 0.0921631 0.0921631
+8 8 9 0.0805664 0.0932617 0.123291
+8 8 10 0.0513611 0.0963135 0.162842
+8 8 11 0 0.102844 0.214478
+8 8 12 0 0.111511 0.276855
+8 8 13 0 0.122559 0.348633
+8 8 14 0 0.13623 0.428711
+8 8 15 0 0.152588 0.515625
+8 8 16 0 0.171143 0.606445
+8 8 17 0 0.190186 0.694824
+8 8 18 0 0.208374 0.777344
+8 8 19 0 0.224976 0.850098
+8 8 20 0 0.233887 0.891602
+8 8 21 0 0.234497 0.899414
+8 8 22 0 0.235718 0.907715
+8 8 23 0 0.237183 0.916016
+8 8 24 0 0.23877 0.924805
+8 8 25 0 0.240723 0.934082
+8 8 26 0 0.243042 0.944824
+8 8 27 0 0.245728 0.956543
+8 8 28 0 0.248779 0.969727
+8 8 29 0 0.252197 0.983398
+8 8 30 0 0.255615 0.998047
+8 8 31 0 0.259277 1
+8 9 0 0.0804443 0.123901 0
+8 9 1 0.0804443 0.123901 0
+8 9 2 0.0804443 0.123901 0
+8 9 3 0.0805054 0.123962 0
+8 9 4 0.0805054 0.124023 0
+8 9 5 0.0795288 0.123718 0
+8 9 6 0.0769043 0.122742 0.0352478
+8 9 7 0.0718994 0.121094 0.0614319
+8 9 8 0.062561 0.119995 0.0881958
+8 9 9 0.0392151 0.120911 0.120972
+8 9 10 0 0.123474 0.161255
+8 9 11 0 0.12915 0.213257
+8 9 12 0 0.136475 0.276123
+8 9 13 0 0.145142 0.348145
+8 9 14 0 0.156128 0.428467
+8 9 15 0 0.169434 0.515137
+8 9 16 0 0.184937 0.606445
+8 9 17 0 0.201416 0.694824
+8 9 18 0 0.217529 0.777344
+8 9 19 0 0.232422 0.850098
+8 9 20 0 0.240112 0.89209
+8 9 21 0 0.239502 0.899902
+8 9 22 0 0.239746 0.908203
+8 9 23 0 0.240479 0.916504
+8 9 24 0 0.241699 0.924805
+8 9 25 0 0.243286 0.93457
+8 9 26 0 0.245239 0.944824
+8 9 27 0 0.247559 0.956543
+8 9 28 0 0.250488 0.969727
+8 9 29 0 0.253418 0.983887
+8 9 30 0 0.256836 0.998535
+8 9 31 0 0.260498 1
+8 10 0 0 0.156128 0
+8 10 1 0 0.156128 0
+8 10 2 0 0.156128 0
+8 10 3 0 0.156128 0
+8 10 4 0 0.15625 0
+8 10 5 0 0.156372 0
+8 10 6 0 0.156006 0
+8 10 7 0 0.15564 0.0472412
+8 10 8 0 0.15564 0.0811157
+8 10 9 0 0.156494 0.116821
+8 10 10 0 0.158813 0.158813
+8 10 11 0 0.163818 0.211304
+8 10 12 0 0.170044 0.274414
+8 10 13 0 0.177002 0.346924
+8 10 14 0 0.185059 0.427734
+8 10 15 0 0.195068 0.514648
+8 10 16 0 0.206909 0.606445
+8 10 17 0 0.219849 0.695312
+8 10 18 0 0.23291 0.777344
+8 10 19 0 0.245239 0.850098
+8 10 20 0 0.250732 0.893066
+8 10 21 0 0.248047 0.900391
+8 10 22 0 0.246826 0.908691
+8 10 23 0 0.246582 0.916992
+8 10 24 0 0.246948 0.925293
+8 10 25 0 0.247803 0.935059
+8 10 26 0 0.249023 0.945312
+8 10 27 0 0.250977 0.957031
+8 10 28 0 0.253174 0.970215
+8 10 29 0 0.256104 0.983887
+8 10 30 0 0.259033 0.998535
+8 10 31 0 0.262207 1
+8 11 0 0 0.202515 0
+8 11 1 0 0.202515 0
+8 11 2 0 0.202515 0
+8 11 3 0 0.202515 0
+8 11 4 0 0.202637 0
+8 11 5 0 0.202637 0
+8 11 6 0 0.202759 0
+8 11 7 0 0.202515 0
+8 11 8 0 0.202515 0.0667114
+8 11 9 0 0.202881 0.109863
+8 11 10 0 0.20459 0.155151
+8 11 11 0 0.208252 0.208374
+8 11 12 0 0.213257 0.271729
+8 11 13 0 0.21875 0.344971
+8 11 14 0 0.224609 0.426514
+8 11 15 0 0.231201 0.51416
+8 11 16 0 0.239136 0.605957
+8 11 17 0 0.247803 0.695312
+8 11 18 0 0.256836 0.777832
+8 11 19 0 0.265625 0.850586
+8 11 20 0 0.268311 0.894531
+8 11 21 0 0.262451 0.901855
+8 11 22 0 0.258789 0.909668
+8 11 23 0 0.256592 0.917969
+8 11 24 0 0.255615 0.92627
+8 11 25 0 0.255371 0.935547
+8 11 26 0 0.255615 0.945801
+8 11 27 0 0.256592 0.95752
+8 11 28 0 0.258301 0.970703
+8 11 29 0 0.260254 0.984375
+8 11 30 0 0.262695 0.999023
+8 11 31 0 0.265381 1
+8 12 0 0 0.26123 0
+8 12 1 0 0.26123 0
+8 12 2 0 0.26123 0
+8 12 3 0 0.26123 0
+8 12 4 0 0.26123 0
+8 12 5 0 0.261475 0
+8 12 6 0 0.261475 0
+8 12 7 0 0.261475 0
+8 12 8 0 0.261475 0
+8 12 9 0 0.261719 0.0941772
+8 12 10 0 0.262451 0.147217
+8 12 11 0 0.26416 0.203125
+8 12 12 0 0.267578 0.267578
+8 12 13 0 0.271484 0.341553
+8 12 14 0 0.275635 0.424072
+8 12 15 0 0.279297 0.512695
+8 12 16 0 0.283447 0.605469
+8 12 17 0 0.287598 0.694824
+8 12 18 0 0.291992 0.777832
+8 12 19 0 0.296387 0.851074
+8 12 20 0 0.295166 0.896973
+8 12 21 0 0.284668 0.903809
+8 12 22 0 0.277588 0.911621
+8 12 23 0 0.272949 0.919922
+8 12 24 0 0.269775 0.927734
+8 12 25 0 0.267822 0.937012
+8 12 26 0 0.266602 0.947266
+8 12 27 0 0.266113 0.958496
+8 12 28 0 0.266357 0.97168
+8 12 29 0 0.267334 0.985352
+8 12 30 0 0.268799 1
+8 12 31 0 0.270752 1
+8 13 0 0 0.32959 0
+8 13 1 0 0.32959 0
+8 13 2 0 0.32959 0
+8 13 3 0 0.32959 0
+8 13 4 0 0.32959 0
+8 13 5 0 0.32959 0
+8 13 6 0 0.329834 0
+8 13 7 0 0.329834 0
+8 13 8 0 0.330078 0
+8 13 9 0 0.330322 0.0439453
+8 13 10 0 0.330566 0.128906
+8 13 11 0 0.331543 0.192627
+8 13 12 0 0.333252 0.260254
+8 13 13 0 0.335693 0.335938
+8 13 14 0 0.338135 0.419922
+8 13 15 0 0.339355 0.509766
+8 13 16 0 0.340088 0.603516
+8 13 17 0 0.339844 0.694336
+8 13 18 0 0.339355 0.777832
+8 13 19 0 0.338867 0.851562
+8 13 20 0 0.333496 0.900391
+8 13 21 0 0.317383 0.907227
+8 13 22 0 0.305664 0.915039
+8 13 23 0 0.297363 0.922363
+8 13 24 0 0.291504 0.930664
+8 13 25 0 0.286621 0.939453
+8 13 26 0 0.283203 0.949219
+8 13 27 0 0.280518 0.960449
+8 13 28 0 0.279297 0.973145
+8 13 29 0 0.278564 0.986816
+8 13 30 0 0.278564 1
+8 13 31 0 0.279297 1
+8 14 0 0 0.406738 0
+8 14 1 0 0.406738 0
+8 14 2 0 0.406982 0
+8 14 3 0 0.406982 0
+8 14 4 0 0.406982 0
+8 14 5 0 0.406982 0
+8 14 6 0 0.406982 0
+8 14 7 0 0.406982 0
+8 14 8 0 0.407227 0
+8 14 9 0 0.407471 0
+8 14 10 0 0.407959 0.0836792
+8 14 11 0 0.408936 0.171265
+8 14 12 0 0.409912 0.246704
+8 14 13 0 0.411133 0.325928
+8 14 14 0 0.412109 0.412354
+8 14 15 0 0.411865 0.504395
+8 14 16 0 0.409912 0.600586
+8 14 17 0 0.405518 0.692871
+8 14 18 0 0.400391 0.777344
+8 14 19 0 0.394775 0.852051
+8 14 20 0 0.385498 0.905762
+8 14 21 0 0.362305 0.912598
+8 14 22 0 0.344727 0.919922
+8 14 23 0 0.331787 0.927246
+8 14 24 0 0.322266 0.93457
+8 14 25 0 0.314209 0.943359
+8 14 26 0 0.307617 0.952637
+8 14 27 0 0.302246 0.963379
+8 14 28 0 0.29834 0.976074
+8 14 29 0 0.29541 0.989258
+8 14 30 0 0.293457 1
+8 14 31 0 0.292236 1
+8 15 0 0 0.491211 0
+8 15 1 0 0.491211 0
+8 15 2 0 0.491211 0
+8 15 3 0 0.491211 0
+8 15 4 0 0.491211 0
+8 15 5 0 0.491211 0
+8 15 6 0 0.491211 0
+8 15 7 0 0.491211 0
+8 15 8 0 0.491455 0
+8 15 9 0 0.491699 0
+8 15 10 0 0.492432 0
+8 15 11 0 0.493164 0.127319
+8 15 12 0 0.494385 0.222046
+8 15 13 0 0.495605 0.308838
+8 15 14 0 0.496094 0.399414
+8 15 15 0 0.494873 0.494873
+8 15 16 0 0.490967 0.59375
+8 15 17 0 0.483643 0.688965
+8 15 18 0 0.474121 0.775879
+8 15 19 0 0.463623 0.851562
+8 15 20 0 0.451172 0.911621
+8 15 21 0 0.42041 0.919922
+8 15 22 0 0.39624 0.927246
+8 15 23 0 0.378174 0.93457
+8 15 24 0 0.36377 0.941406
+8 15 25 0 0.351562 0.949707
+8 15 26 0 0.341064 0.958496
+8 15 27 0 0.332275 0.968262
+8 15 28 0 0.324951 0.97998
+8 15 29 0 0.319092 0.992676
+8 15 30 0 0.314453 1
+8 15 31 0 0.310791 1
+8 16 0 0 0.581055 0
+8 16 1 0 0.581055 0
+8 16 2 0 0.581055 0
+8 16 3 0 0.581055 0
+8 16 4 0 0.581055 0
+8 16 5 0 0.581055 0
+8 16 6 0 0.581055 0
+8 16 7 0 0.581055 0
+8 16 8 0 0.581055 0
+8 16 9 0 0.581055 0
+8 16 10 0 0.582031 0
+8 16 11 0 0.583008 0
+8 16 12 0 0.584473 0.178223
+8 16 13 0 0.585938 0.280762
+8 16 14 0 0.586914 0.378418
+8 16 15 0 0.585938 0.47876
+8 16 16 0 0.581543 0.581543
+8 16 17 0 0.572266 0.680664
+8 16 18 0 0.55957 0.770996
+8 16 19 0 0.544922 0.849609
+8 16 20 0 0.529297 0.914062
+8 16 21 0 0.492676 0.929199
+8 16 22 0 0.46167 0.937988
+8 16 23 0 0.437256 0.945312
+8 16 24 0 0.417725 0.952148
+8 16 25 0 0.400391 0.958984
+8 16 26 0 0.385254 0.967285
+8 16 27 0 0.37207 0.976074
+8 16 28 0 0.36084 0.987305
+8 16 29 0 0.351074 0.999023
+8 16 30 0 0.343018 1
+8 16 31 0 0.336182 1
+8 17 0 0 0.67041 0
+8 17 1 0 0.67041 0
+8 17 2 0 0.67041 0
+8 17 3 0 0.67041 0
+8 17 4 0 0.67041 0
+8 17 5 0 0.67041 0
+8 17 6 0 0.67041 0
+8 17 7 0 0.67041 0
+8 17 8 0 0.67041 0
+8 17 9 0 0.67041 0
+8 17 10 0 0.670898 0
+8 17 11 0 0.671875 0
+8 17 12 0 0.673828 0.0731201
+8 17 13 0 0.67627 0.237183
+8 17 14 0 0.678223 0.347412
+8 17 15 0 0.678223 0.454102
+8 17 16 0 0.674805 0.562012
+8 17 17 0 0.665527 0.666016
+8 17 18 0 0.651367 0.760742
+8 17 19 0 0.634277 0.843262
+8 17 20 0 0.614258 0.911133
+8 17 21 0 0.576172 0.938477
+8 17 22 0 0.539062 0.95166
+8 17 23 0 0.508789 0.959961
+8 17 24 0 0.483398 0.966797
+8 17 25 0 0.460449 0.973145
+8 17 26 0 0.439697 0.980469
+8 17 27 0 0.421387 0.988281
+8 17 28 0 0.405273 0.997559
+8 17 29 0 0.391113 1
+8 17 30 0 0.378906 1
+8 17 31 0 0.368408 1
+8 18 0 0 0.754395 0
+8 18 1 0 0.754395 0
+8 18 2 0 0.754395 0
+8 18 3 0 0.754395 0
+8 18 4 0 0.754395 0
+8 18 5 0 0.754395 0
+8 18 6 0 0.754883 0
+8 18 7 0 0.754883 0
+8 18 8 0 0.754883 0
+8 18 9 0 0.754883 0
+8 18 10 0 0.754883 0
+8 18 11 0 0.755859 0
+8 18 12 0 0.757812 0
+8 18 13 0 0.760742 0.165527
+8 18 14 0 0.763672 0.304199
+8 18 15 0 0.765137 0.42041
+8 18 16 0 0.763672 0.53418
+8 18 17 0 0.756836 0.643555
+8 18 18 0 0.743652 0.743652
+8 18 19 0 0.725098 0.831543
+8 18 20 0 0.703125 0.90332
+8 18 21 0 0.666016 0.944336
+8 18 22 0 0.625977 0.965332
+8 18 23 0 0.589844 0.977539
+8 18 24 0 0.559082 0.985352
+8 18 25 0 0.530273 0.991699
+8 18 26 0 0.503418 0.997559
+8 18 27 0 0.479248 1
+8 18 28 0 0.457764 1
+8 18 29 0 0.438477 1
+8 18 30 0 0.421631 1
+8 18 31 0 0.406738 1
+8 19 0 0 0.831055 0
+8 19 1 0 0.831055 0
+8 19 2 0 0.831055 0
+8 19 3 0 0.831055 0
+8 19 4 0 0.831055 0
+8 19 5 0 0.831055 0
+8 19 6 0 0.831055 0
+8 19 7 0 0.831055 0
+8 19 8 0 0.831055 0
+8 19 9 0 0.831055 0
+8 19 10 0 0.831055 0
+8 19 11 0 0.831543 0
+8 19 12 0 0.833008 0
+8 19 13 0 0.836426 0
+8 19 14 0 0.839844 0.246582
+8 19 15 0 0.843262 0.378662
+8 19 16 0 0.844238 0.499268
+8 19 17 0 0.840332 0.61377
+8 19 18 0 0.82959 0.719727
+8 19 19 0 0.8125 0.8125
+8 19 20 0 0.789551 0.889648
+8 19 21 0 0.756348 0.943848
+8 19 22 0 0.716309 0.976074
+8 19 23 0 0.676758 0.994141
+8 19 24 0 0.641602 1
+8 19 25 0 0.606934 1
+8 19 26 0 0.574219 1
+8 19 27 0 0.543945 1
+8 19 28 0 0.516602 1
+8 19 29 0 0.491699 1
+8 19 30 0 0.469727 1
+8 19 31 0 0.449951 1
+8 20 0 0 0.896973 0
+8 20 1 0 0.896973 0
+8 20 2 0 0.896973 0
+8 20 3 0 0.896973 0
+8 20 4 0 0.896973 0
+8 20 5 0 0.896973 0
+8 20 6 0 0.896973 0
+8 20 7 0 0.896973 0
+8 20 8 0 0.897461 0
+8 20 9 0 0.897461 0
+8 20 10 0 0.897461 0
+8 20 11 0 0.897461 0
+8 20 12 0 0.898438 0
+8 20 13 0 0.901855 0
+8 20 14 0 0.905762 0.1604
+8 20 15 0 0.910645 0.329346
+8 20 16 0 0.913574 0.458984
+8 20 17 0 0.912598 0.579102
+8 20 18 0 0.905273 0.689453
+8 20 19 0 0.890137 0.787598
+8 20 20 0 0.869141 0.869629
+8 20 21 0 0.840332 0.93457
+8 20 22 0 0.803711 0.979004
+8 20 23 0 0.76416 1
+8 20 24 0 0.725586 1
+8 20 25 0 0.687012 1
+8 20 26 0 0.648926 1
+8 20 27 0 0.612793 1
+8 20 28 0 0.579102 1
+8 20 29 0 0.548828 1
+8 20 30 0 0.520996 1
+8 20 31 0 0.496338 1
+8 21 0 0 0.953613 0
+8 21 1 0 0.953613 0
+8 21 2 0 0.953613 0
+8 21 3 0 0.953613 0
+8 21 4 0 0.953613 0
+8 21 5 0 0.953613 0
+8 21 6 0 0.953613 0
+8 21 7 0 0.954102 0
+8 21 8 0 0.954102 0
+8 21 9 0 0.954102 0
+8 21 10 0 0.954102 0
+8 21 11 0 0.954102 0
+8 21 12 0 0.95459 0
+8 21 13 0 0.957031 0
+8 21 14 0 0.961914 0
+8 21 15 0 0.967285 0.268555
+8 21 16 0 0.972168 0.413574
+8 21 17 0 0.974121 0.539062
+8 21 18 0 0.970215 0.653809
+8 21 19 0 0.958984 0.756348
+8 21 20 0 0.94043 0.843262
+8 21 21 0 0.916016 0.916016
+8 21 22 0 0.884277 0.97168
+8 21 23 0 0.847168 1
+8 21 24 0 0.808594 1
+8 21 25 0 0.767578 1
+8 21 26 0 0.725586 1
+8 21 27 0 0.68457 1
+8 21 28 0 0.645508 1
+8 21 29 0 0.609375 1
+8 21 30 0 0.576172 1
+8 21 31 0 0.546387 1
+8 22 0 0 1 0
+8 22 1 0 1 0
+8 22 2 0 1 0
+8 22 3 0 1 0
+8 22 4 0 1 0
+8 22 5 0 1 0
+8 22 6 0 1 0
+8 22 7 0 1 0
+8 22 8 0 1 0
+8 22 9 0 1 0
+8 22 10 0 1 0
+8 22 11 0 1 0
+8 22 12 0 1 0
+8 22 13 0 1 0
+8 22 14 0 1 0
+8 22 15 0 1 0.187012
+8 22 16 0 1 0.363037
+8 22 17 0 1 0.49585
+8 22 18 0 1 0.614258
+8 22 19 0 1 0.720215
+8 22 20 0 1 0.811523
+8 22 21 0 0.97998 0.889648
+8 22 22 0 0.953125 0.953613
+8 22 23 0 0.920898 1
+8 22 24 0 0.885254 1
+8 22 25 0 0.844238 1
+8 22 26 0 0.800781 1
+8 22 27 0 0.756348 1
+8 22 28 0 0.712891 1
+8 22 29 0 0.671875 1
+8 22 30 0 0.633301 1
+8 22 31 0 0.598145 1
+8 23 0 0 1 0
+8 23 1 0 1 0
+8 23 2 0 1 0
+8 23 3 0 1 0
+8 23 4 0 1 0
+8 23 5 0 1 0
+8 23 6 0 1 0
+8 23 7 0 1 0
+8 23 8 0 1 0
+8 23 9 0 1 0
+8 23 10 0 1 0
+8 23 11 0 1 0
+8 23 12 0 1 0
+8 23 13 0 1 0
+8 23 14 0 1 0
+8 23 15 0 1 0
+8 23 16 0 1 0.30835
+8 23 17 0 1 0.451416
+8 23 18 0 1 0.57373
+8 23 19 0 1 0.682617
+8 23 20 0 1 0.777344
+8 23 21 0 1 0.859375
+8 23 22 0 1 0.928223
+8 23 23 0 0.981445 0.981934
+8 23 24 0 0.950195 1
+8 23 25 0 0.912109 1
+8 23 26 0 0.869141 1
+8 23 27 0 0.823242 1
+8 23 28 0 0.776855 1
+8 23 29 0 0.731934 1
+8 23 30 0 0.688965 1
+8 23 31 0 0.648926 1
+8 24 0 0 1 0
+8 24 1 0 1 0
+8 24 2 0 1 0
+8 24 3 0 1 0
+8 24 4 0 1 0
+8 24 5 0 1 0
+8 24 6 0 1 0
+8 24 7 0 1 0
+8 24 8 0 1 0
+8 24 9 0 1 0
+8 24 10 0 1 0
+8 24 11 0 1 0
+8 24 12 0 1 0
+8 24 13 0 1 0
+8 24 14 0 1 0
+8 24 15 0 1 0
+8 24 16 0 1 0.245728
+8 24 17 0 1 0.406006
+8 24 18 0 1 0.533203
+8 24 19 0 1 0.644531
+8 24 20 0 1 0.741699
+8 24 21 0 1 0.827148
+8 24 22 0 1 0.899414
+8 24 23 0 1 0.95752
+8 24 24 0 1 1
+8 24 25 0 0.970215 1
+8 24 26 0 0.929688 1
+8 24 27 0 0.884277 1
+8 24 28 0 0.836914 1
+8 24 29 0 0.789062 1
+8 24 30 0 0.742676 1
+8 24 31 0 0.69873 1
+8 25 0 0 1 0
+8 25 1 0 1 0
+8 25 2 0 1 0
+8 25 3 0 1 0
+8 25 4 0 1 0
+8 25 5 0 1 0
+8 25 6 0 1 0
+8 25 7 0 1 0
+8 25 8 0 1 0
+8 25 9 0 1 0
+8 25 10 0 1 0
+8 25 11 0 1 0
+8 25 12 0 1 0
+8 25 13 0 1 0
+8 25 14 0 1 0
+8 25 15 0 1 0
+8 25 16 0 1 0.151001
+8 25 17 0 1 0.354004
+8 25 18 0 1 0.487549
+8 25 19 0 1 0.601562
+8 25 20 0 1 0.701172
+8 25 21 0 1 0.789062
+8 25 22 0 1 0.865234
+8 25 23 0 1 0.927734
+8 25 24 0 1 0.979004
+8 25 25 0 1 1
+8 25 26 0 0.987793 1
+8 25 27 0 0.944336 1
+8 25 28 0 0.896973 1
+8 25 29 0 0.847656 1
+8 25 30 0 0.798828 1
+8 25 31 0 0.751465 1
+8 26 0 0 1 0
+8 26 1 0 1 0
+8 26 2 0 1 0
+8 26 3 0 1 0
+8 26 4 0 1 0
+8 26 5 0 1 0
+8 26 6 0 1 0
+8 26 7 0 1 0
+8 26 8 0 1 0
+8 26 9 0 1 0
+8 26 10 0 1 0
+8 26 11 0 1 0
+8 26 12 0 1 0
+8 26 13 0 1 0
+8 26 14 0 1 0
+8 26 15 0 1 0
+8 26 16 0 1 0
+8 26 17 0 1 0.291992
+8 26 18 0 1 0.437256
+8 26 19 0 1 0.554199
+8 26 20 0 1 0.655762
+8 26 21 0 1 0.746582
+8 26 22 0 1 0.825684
+8 26 23 0 1 0.891602
+8 26 24 0 1 0.946777
+8 26 25 0 1 0.99707
+8 26 26 0 1 1
+8 26 27 0 1 1
+8 26 28 0 0.956055 1
+8 26 29 0 0.906738 1
+8 26 30 0 0.856445 1
+8 26 31 0 0.806152 1
+8 27 0 0 1 0
+8 27 1 0 1 0
+8 27 2 0 1 0
+8 27 3 0 1 0
+8 27 4 0 1 0
+8 27 5 0 1 0
+8 27 6 0 1 0
+8 27 7 0 1 0
+8 27 8 0 1 0
+8 27 9 0 1 0
+8 27 10 0 1 0
+8 27 11 0 1 0
+8 27 12 0 1 0
+8 27 13 0 1 0
+8 27 14 0 1 0
+8 27 15 0 1 0
+8 27 16 0 1 0
+8 27 17 0 1 0.209595
+8 27 18 0 1 0.380859
+8 27 19 0 1 0.503418
+8 27 20 0 1 0.606934
+8 27 21 0 1 0.69873
+8 27 22 0 1 0.780273
+8 27 23 0 1 0.849609
+8 27 24 0 1 0.908203
+8 27 25 0 1 0.962891
+8 27 26 0 1 1
+8 27 27 0 1 1
+8 27 28 0 1 1
+8 27 29 0 0.964355 1
+8 27 30 0 0.913574 1
+8 27 31 0 0.862305 1
+8 28 0 0 1 0
+8 28 1 0 1 0
+8 28 2 0 1 0
+8 28 3 0 1 0
+8 28 4 0 1 0
+8 28 5 0 1 0
+8 28 6 0 1 0
+8 28 7 0 1 0
+8 28 8 0 1 0
+8 28 9 0 1 0
+8 28 10 0 1 0
+8 28 11 0 1 0
+8 28 12 0 1 0
+8 28 13 0 1 0
+8 28 14 0 1 0
+8 28 15 0 1 0
+8 28 16 0 1 0
+8 28 17 0 1 0
+8 28 18 0 1 0.315674
+8 28 19 0 1 0.44751
+8 28 20 0 1 0.553711
+8 28 21 0 1 0.647461
+8 28 22 0 1 0.730469
+8 28 23 0 1 0.802246
+8 28 24 0 1 0.86377
+8 28 25 0 1 0.921875
+8 28 26 0 1 0.975586
+8 28 27 0 1 1
+8 28 28 0 1 1
+8 28 29 0 1 1
+8 28 30 0 0.969727 1
+8 28 31 0 0.918457 1
+8 29 0 0 1 0
+8 29 1 0 1 0
+8 29 2 0 1 0
+8 29 3 0 1 0
+8 29 4 0 1 0
+8 29 5 0 1 0
+8 29 6 0 1 0
+8 29 7 0 1 0
+8 29 8 0 1 0
+8 29 9 0 1 0
+8 29 10 0 1 0
+8 29 11 0 1 0
+8 29 12 0 1 0
+8 29 13 0 1 0
+8 29 14 0 1 0
+8 29 15 0 1 0
+8 29 16 0 1 0
+8 29 17 0 1 0
+8 29 18 0 1 0.233276
+8 29 19 0 1 0.385742
+8 29 20 0 1 0.496582
+8 29 21 0 1 0.591797
+8 29 22 0 1 0.67627
+8 29 23 0 1 0.749023
+8 29 24 0 1 0.812988
+8 29 25 0 1 0.874023
+8 29 26 0 1 0.931641
+8 29 27 0 1 0.984375
+8 29 28 0 1 1
+8 29 29 0 1 1
+8 29 30 0 1 1
+8 29 31 0 0.974609 1
+8 30 0 0 1 0
+8 30 1 0 1 0
+8 30 2 0 1 0
+8 30 3 0 1 0
+8 30 4 0 1 0
+8 30 5 0 1 0
+8 30 6 0 1 0
+8 30 7 0 1 0
+8 30 8 0 1 0
+8 30 9 0 1 0
+8 30 10 0 1 0
+8 30 11 0 1 0
+8 30 12 0 1 0
+8 30 13 0 1 0
+8 30 14 0 1 0
+8 30 15 0 1 0
+8 30 16 0 1 0
+8 30 17 0 1 0
+8 30 18 0 1 0.0707397
+8 30 19 0 1 0.315186
+8 30 20 0 1 0.43457
+8 30 21 0 1 0.532227
+8 30 22 0 1 0.617676
+8 30 23 0 1 0.691895
+8 30 24 0 1 0.756836
+8 30 25 0 1 0.820312
+8 30 26 0 1 0.881348
+8 30 27 0 1 0.938477
+8 30 28 0 1 0.990234
+8 30 29 0 1 1
+8 30 30 0 1 1
+8 30 31 0 1 1
+8 31 0 0 1 0
+8 31 1 0 1 0
+8 31 2 0 1 0
+8 31 3 0 1 0
+8 31 4 0 1 0
+8 31 5 0 1 0
+8 31 6 0 1 0
+8 31 7 0 1 0
+8 31 8 0 1 0
+8 31 9 0 1 0
+8 31 10 0 1 0
+8 31 11 0 1 0
+8 31 12 0 1 0
+8 31 13 0 1 0
+8 31 14 0 1 0
+8 31 15 0 1 0
+8 31 16 0 1 0
+8 31 17 0 1 0
+8 31 18 0 1 0
+8 31 19 0 1 0.226562
+8 31 20 0 1 0.366699
+8 31 21 0 1 0.469238
+8 31 22 0 1 0.556152
+8 31 23 0 1 0.630859
+8 31 24 0 1 0.696777
+8 31 25 0 1 0.761719
+8 31 26 0 1 0.825195
+8 31 27 0 1 0.88623
+8 31 28 0 1 0.943359
+8 31 29 0 1 0.995605
+8 31 30 0 1 1
+8 31 31 0 1 1
+9 0 0 0.211426 0 0
+9 0 1 0.211426 0 0
+9 0 2 0.211426 0 0
+9 0 3 0.211304 0 0
+9 0 4 0.211426 0 0
+9 0 5 0.21167 0 0
+9 0 6 0.209106 0 0.0497437
+9 0 7 0.202271 0 0.0839844
+9 0 8 0.171387 0 0.104858
+9 0 9 0.148438 0.0283661 0.125366
+9 0 10 0.139404 0.0395203 0.164429
+9 0 11 0.121277 0.0532532 0.215576
+9 0 12 0.0634766 0.0695801 0.277588
+9 0 13 0 0.0881348 0.349121
+9 0 14 0 0.108765 0.429199
+9 0 15 0 0.130981 0.515625
+9 0 16 0 0.154297 0.606445
+9 0 17 0 0.17688 0.695312
+9 0 18 0 0.197998 0.777344
+9 0 19 0 0.216553 0.850098
+9 0 20 0 0.227173 0.891602
+9 0 21 0 0.229248 0.899414
+9 0 22 0 0.231323 0.907715
+9 0 23 0 0.233521 0.916504
+9 0 24 0 0.235718 0.924805
+9 0 25 0 0.238159 0.93457
+9 0 26 0 0.240845 0.944824
+9 0 27 0 0.243774 0.956543
+9 0 28 0 0.247192 0.969727
+9 0 29 0 0.250732 0.983887
+9 0 30 0 0.254395 0.998535
+9 0 31 0 0.258301 1
+9 1 0 0.211182 0 0
+9 1 1 0.211182 0 0
+9 1 2 0.211182 0 0
+9 1 3 0.21106 0 0
+9 1 4 0.211182 0 0
+9 1 5 0.211426 0 0
+9 1 6 0.208984 0 0.0495605
+9 1 7 0.202271 0 0.0838623
+9 1 8 0.171387 0 0.104858
+9 1 9 0.148315 0.0294189 0.125366
+9 1 10 0.139282 0.0401917 0.164429
+9 1 11 0.121216 0.0537415 0.215576
+9 1 12 0.0631714 0.0698853 0.277588
+9 1 13 0 0.0883789 0.349121
+9 1 14 0 0.108948 0.429199
+9 1 15 0 0.131104 0.515625
+9 1 16 0 0.154419 0.606445
+9 1 17 0 0.177002 0.695312
+9 1 18 0 0.197998 0.777344
+9 1 19 0 0.216553 0.850098
+9 1 20 0 0.227173 0.891602
+9 1 21 0 0.229248 0.899414
+9 1 22 0 0.231323 0.907715
+9 1 23 0 0.233521 0.916504
+9 1 24 0 0.235718 0.924805
+9 1 25 0 0.238159 0.93457
+9 1 26 0 0.240845 0.944824
+9 1 27 0 0.243774 0.956543
+9 1 28 0 0.247192 0.969727
+9 1 29 0 0.250732 0.983887
+9 1 30 0 0.254395 0.998535
+9 1 31 0 0.258301 1
+9 2 0 0.210693 0 0
+9 2 1 0.210693 0 0
+9 2 2 0.210693 0 0
+9 2 3 0.210571 0 0
+9 2 4 0.210693 0 0
+9 2 5 0.210938 0 0
+9 2 6 0.20874 0 0.0492249
+9 2 7 0.202026 0 0.0837402
+9 2 8 0.171509 0 0.104919
+9 2 9 0.148193 0.0311584 0.125366
+9 2 10 0.13916 0.0413513 0.164429
+9 2 11 0.121033 0.0545654 0.215576
+9 2 12 0.0627441 0.0704956 0.277588
+9 2 13 0 0.0888062 0.349121
+9 2 14 0 0.109253 0.429199
+9 2 15 0 0.131348 0.515625
+9 2 16 0 0.154541 0.606445
+9 2 17 0 0.177124 0.695312
+9 2 18 0 0.19812 0.777344
+9 2 19 0 0.216675 0.850098
+9 2 20 0 0.227295 0.891602
+9 2 21 0 0.229248 0.899414
+9 2 22 0 0.231445 0.907715
+9 2 23 0 0.233521 0.916504
+9 2 24 0 0.235718 0.924805
+9 2 25 0 0.238159 0.93457
+9 2 26 0 0.240845 0.944824
+9 2 27 0 0.243774 0.956543
+9 2 28 0 0.247192 0.969727
+9 2 29 0 0.250732 0.983887
+9 2 30 0 0.254395 0.998535
+9 2 31 0 0.258301 1
+9 3 0 0.209717 0 0
+9 3 1 0.209717 0 0
+9 3 2 0.209717 0 0
+9 3 3 0.209717 0 0
+9 3 4 0.209717 0 0
+9 3 5 0.210205 0 0
+9 3 6 0.20813 0 0.048584
+9 3 7 0.201782 0 0.0834961
+9 3 8 0.171631 0 0.105042
+9 3 9 0.147949 0.0340576 0.125366
+9 3 10 0.138916 0.043396 0.164307
+9 3 11 0.120667 0.0560303 0.215576
+9 3 12 0.0618896 0.0715942 0.277588
+9 3 13 0 0.0895996 0.349121
+9 3 14 0 0.109863 0.429199
+9 3 15 0 0.131836 0.515625
+9 3 16 0 0.154907 0.606445
+9 3 17 0 0.177368 0.695312
+9 3 18 0 0.198364 0.777344
+9 3 19 0 0.216797 0.850098
+9 3 20 0 0.227417 0.891602
+9 3 21 0 0.22937 0.899414
+9 3 22 0 0.231445 0.907715
+9 3 23 0 0.233643 0.916504
+9 3 24 0 0.23584 0.924805
+9 3 25 0 0.238159 0.93457
+9 3 26 0 0.240845 0.944824
+9 3 27 0 0.243896 0.956543
+9 3 28 0 0.247192 0.969727
+9 3 29 0 0.250732 0.983887
+9 3 30 0 0.254395 0.998535
+9 3 31 0 0.258301 1
+9 4 0 0.208008 0 0
+9 4 1 0.208008 0 0
+9 4 2 0.207886 0 0
+9 4 3 0.207886 0 0
+9 4 4 0.208008 0 0
+9 4 5 0.208618 0 0
+9 4 6 0.207031 0 0.0474243
+9 4 7 0.201172 0 0.0829468
+9 4 8 0.171875 0 0.105225
+9 4 9 0.147583 0.0387268 0.125244
+9 4 10 0.138428 0.046875 0.164307
+9 4 11 0.120056 0.0586548 0.215454
+9 4 12 0.0602112 0.0735474 0.277588
+9 4 13 0 0.0910645 0.349121
+9 4 14 0 0.110962 0.429199
+9 4 15 0 0.132568 0.515625
+9 4 16 0 0.155518 0.606445
+9 4 17 0 0.177856 0.695312
+9 4 18 0 0.19873 0.777344
+9 4 19 0 0.217163 0.850098
+9 4 20 0 0.227661 0.891602
+9 4 21 0 0.229614 0.899414
+9 4 22 0 0.231689 0.907715
+9 4 23 0 0.233765 0.916504
+9 4 24 0 0.235962 0.924805
+9 4 25 0 0.238281 0.93457
+9 4 26 0 0.240967 0.944824
+9 4 27 0 0.243896 0.956543
+9 4 28 0 0.247314 0.969727
+9 4 29 0 0.250732 0.983887
+9 4 30 0 0.254639 0.998535
+9 4 31 0 0.258301 1
+9 5 0 0.204346 0 0
+9 5 1 0.204346 0 0
+9 5 2 0.204346 0 0
+9 5 3 0.204346 0 0
+9 5 4 0.204346 0 0
+9 5 5 0.205322 0 0
+9 5 6 0.20459 0 0.045166
+9 5 7 0.199585 0 0.0817871
+9 5 8 0.172363 0.0260315 0.105652
+9 5 9 0.146729 0.0460205 0.125122
+9 5 10 0.137451 0.0527954 0.164185
+9 5 11 0.118835 0.0632935 0.215332
+9 5 12 0.0567627 0.0771484 0.277588
+9 5 13 0 0.093811 0.349121
+9 5 14 0 0.112976 0.429199
+9 5 15 0 0.134155 0.515625
+9 5 16 0 0.156738 0.606445
+9 5 17 0 0.178833 0.695312
+9 5 18 0 0.199463 0.777344
+9 5 19 0 0.217773 0.850098
+9 5 20 0 0.228149 0.89209
+9 5 21 0 0.22998 0.899414
+9 5 22 0 0.231934 0.907715
+9 5 23 0 0.234009 0.916504
+9 5 24 0 0.236084 0.924805
+9 5 25 0 0.238525 0.93457
+9 5 26 0 0.241089 0.944824
+9 5 27 0 0.244019 0.956543
+9 5 28 0 0.247437 0.969727
+9 5 29 0 0.250977 0.983887
+9 5 30 0 0.254639 0.998535
+9 5 31 0 0.258545 1
+9 6 0 0.197144 0.0514832 0
+9 6 1 0.197144 0.0515442 0
+9 6 2 0.197021 0.0516968 0
+9 6 3 0.197021 0.0519104 0
+9 6 4 0.197021 0.0523376 0
+9 6 5 0.198242 0.0525818 0
+9 6 6 0.198853 0.0513 0.0410767
+9 6 7 0.195801 0.0487671 0.0794678
+9 6 8 0.17334 0.0488281 0.106445
+9 6 9 0.14502 0.0566406 0.124756
+9 6 10 0.13562 0.0620117 0.16394
+9 6 11 0.116394 0.071106 0.21521
+9 6 12 0.0492554 0.0834351 0.277344
+9 6 13 0 0.0986938 0.349121
+9 6 14 0 0.116821 0.429199
+9 6 15 0 0.137085 0.515625
+9 6 16 0 0.158936 0.606445
+9 6 17 0 0.180542 0.695312
+9 6 18 0 0.200806 0.777344
+9 6 19 0 0.21875 0.850098
+9 6 20 0 0.229004 0.89209
+9 6 21 0 0.230591 0.899902
+9 6 22 0 0.232544 0.908203
+9 6 23 0 0.234497 0.916504
+9 6 24 0 0.236572 0.924805
+9 6 25 0 0.238892 0.93457
+9 6 26 0 0.241455 0.944824
+9 6 27 0 0.244263 0.956543
+9 6 28 0 0.247559 0.969727
+9 6 29 0 0.251221 0.983887
+9 6 30 0 0.254883 0.998535
+9 6 31 0 0.258545 1
+9 7 0 0.182495 0.0772705 0
+9 7 1 0.182495 0.0772705 0
+9 7 2 0.182495 0.0773315 0
+9 7 3 0.182495 0.0774536 0
+9 7 4 0.182373 0.0776367 0
+9 7 5 0.18335 0.0780029 0
+9 7 6 0.184814 0.0782471 0.0357056
+9 7 7 0.186768 0.0782471 0.074585
+9 7 8 0.174561 0.0743408 0.107544
+9 7 9 0.141724 0.0717773 0.124146
+9 7 10 0.131958 0.0758667 0.163452
+9 7 11 0.111572 0.0834961 0.214844
+9 7 12 0.0257111 0.0940552 0.2771
+9 7 13 0 0.107422 0.348877
+9 7 14 0 0.123718 0.428955
+9 7 15 0 0.142578 0.515625
+9 7 16 0 0.163208 0.606445
+9 7 17 0 0.183838 0.695312
+9 7 18 0 0.203369 0.777344
+9 7 19 0 0.220947 0.850098
+9 7 20 0 0.230713 0.89209
+9 7 21 0 0.232056 0.899902
+9 7 22 0 0.233643 0.908203
+9 7 23 0 0.235474 0.916504
+9 7 24 0 0.237305 0.925293
+9 7 25 0 0.239502 0.93457
+9 7 26 0 0.241943 0.944824
+9 7 27 0 0.244751 0.956543
+9 7 28 0 0.248047 0.969727
+9 7 29 0 0.251465 0.983887
+9 7 30 0 0.255127 0.998535
+9 7 31 0 0.258789 1
+9 8 0 0.160156 0.0983276 0
+9 8 1 0.160156 0.0983276 0
+9 8 2 0.160156 0.0983887 0
+9 8 3 0.160156 0.0984497 0
+9 8 4 0.160156 0.0985107 0
+9 8 5 0.159912 0.0986328 0
+9 8 6 0.159424 0.098938 0.0378418
+9 8 7 0.159668 0.0999756 0.0668335
+9 8 8 0.16394 0.103577 0.1026
+9 8 9 0.13501 0.0927124 0.122925
+9 8 10 0.124268 0.0958862 0.162598
+9 8 11 0.101135 0.102234 0.214111
+9 8 12 0 0.111023 0.276611
+9 8 13 0 0.122131 0.348633
+9 8 14 0 0.135986 0.428955
+9 8 15 0 0.152466 0.515625
+9 8 16 0 0.171021 0.606445
+9 8 17 0 0.190063 0.695312
+9 8 18 0 0.208374 0.777344
+9 8 19 0 0.224976 0.850098
+9 8 20 0 0.234009 0.89209
+9 8 21 0 0.234619 0.899902
+9 8 22 0 0.235718 0.908203
+9 8 23 0 0.237183 0.916504
+9 8 24 0 0.238892 0.925293
+9 8 25 0 0.240845 0.93457
+9 8 26 0 0.243164 0.945312
+9 8 27 0 0.245728 0.956543
+9 8 28 0 0.248901 0.969727
+9 8 29 0 0.252197 0.983887
+9 8 30 0 0.255859 0.998535
+9 8 31 0 0.259521 1
+9 9 0 0.146484 0.130127 0
+9 9 1 0.146484 0.130127 0
+9 9 2 0.146484 0.130249 0
+9 9 3 0.146484 0.130249 0
+9 9 4 0.146484 0.130371 0
+9 9 5 0.14624 0.130371 0
+9 9 6 0.144409 0.129639 0.0346375
+9 9 7 0.140869 0.128296 0.0641479
+9 9 8 0.133911 0.125732 0.092041
+9 9 9 0.120667 0.120667 0.120667
+9 9 10 0.107483 0.12323 0.161133
+9 9 11 0.0753174 0.128784 0.212891
+9 9 12 0 0.135986 0.275879
+9 9 13 0 0.144897 0.3479
+9 9 14 0 0.155884 0.428467
+9 9 15 0 0.169189 0.515137
+9 9 16 0 0.184814 0.606445
+9 9 17 0 0.201294 0.695312
+9 9 18 0 0.217529 0.777344
+9 9 19 0 0.232422 0.850586
+9 9 20 0 0.240234 0.892578
+9 9 21 0 0.239502 0.900391
+9 9 22 0 0.239746 0.908691
+9 9 23 0 0.240601 0.916992
+9 9 24 0 0.241821 0.925293
+9 9 25 0 0.243408 0.935059
+9 9 26 0 0.245239 0.945312
+9 9 27 0 0.247681 0.957031
+9 9 28 0 0.250488 0.970215
+9 9 29 0 0.253662 0.983887
+9 9 30 0 0.256836 0.998535
+9 9 31 0 0.260498 1
+9 10 0 0.109009 0.162354 0
+9 10 1 0.109009 0.162354 0
+9 10 2 0.109009 0.162476 0
+9 10 3 0.109009 0.162476 0
+9 10 4 0.109009 0.162476 0
+9 10 5 0.10907 0.162598 0
+9 10 6 0.107788 0.162109 0
+9 10 7 0.104126 0.160522 0.0472412
+9 10 8 0.09729 0.157959 0.0817871
+9 10 9 0.0853882 0.156494 0.116577
+9 10 10 0.0595398 0.158691 0.158813
+9 10 11 0 0.163574 0.21106
+9 10 12 0 0.169678 0.27417
+9 10 13 0 0.176758 0.346924
+9 10 14 0 0.184937 0.427734
+9 10 15 0 0.194824 0.515137
+9 10 16 0 0.206909 0.606445
+9 10 17 0 0.219727 0.695312
+9 10 18 0 0.232788 0.777832
+9 10 19 0 0.245239 0.850586
+9 10 20 0 0.250977 0.893555
+9 10 21 0 0.248169 0.900879
+9 10 22 0 0.246948 0.90918
+9 10 23 0 0.246704 0.91748
+9 10 24 0 0.246948 0.925781
+9 10 25 0 0.247803 0.935547
+9 10 26 0 0.249146 0.945801
+9 10 27 0 0.250977 0.957031
+9 10 28 0 0.253418 0.970215
+9 10 29 0 0.256104 0.984375
+9 10 30 0 0.259033 0.999023
+9 10 31 0 0.262207 1
+9 11 0 0 0.204224 0
+9 11 1 0 0.204224 0
+9 11 2 0 0.204224 0
+9 11 3 0 0.204224 0
+9 11 4 0 0.204346 0
+9 11 5 0 0.204346 0
+9 11 6 0 0.204468 0
+9 11 7 0 0.203857 0
+9 11 8 0 0.203003 0.065979
+9 11 9 0 0.203003 0.109558
+9 11 10 0 0.20459 0.155029
+9 11 11 0 0.20813 0.20813
+9 11 12 0 0.213013 0.271729
+9 11 13 0 0.218506 0.344971
+9 11 14 0 0.224487 0.426514
+9 11 15 0 0.231079 0.51416
+9 11 16 0 0.239136 0.605957
+9 11 17 0 0.247803 0.695312
+9 11 18 0 0.256836 0.777832
+9 11 19 0 0.265625 0.851074
+9 11 20 0 0.268311 0.89502
+9 11 21 0 0.262451 0.902344
+9 11 22 0 0.258789 0.910156
+9 11 23 0 0.256836 0.918457
+9 11 24 0 0.255859 0.926758
+9 11 25 0 0.255371 0.936035
+9 11 26 0 0.255859 0.946289
+9 11 27 0 0.256592 0.958008
+9 11 28 0 0.258301 0.970703
+9 11 29 0 0.260254 0.984863
+9 11 30 0 0.262695 0.999512
+9 11 31 0 0.265381 1
+9 12 0 0 0.261475 0
+9 12 1 0 0.261475 0
+9 12 2 0 0.261475 0
+9 12 3 0 0.261475 0
+9 12 4 0 0.261475 0
+9 12 5 0 0.261475 0
+9 12 6 0 0.261719 0
+9 12 7 0 0.261719 0
+9 12 8 0 0.261475 0
+9 12 9 0 0.261719 0.0935669
+9 12 10 0 0.262207 0.146851
+9 12 11 0 0.26416 0.203003
+9 12 12 0 0.267334 0.267334
+9 12 13 0 0.271484 0.341553
+9 12 14 0 0.275391 0.424072
+9 12 15 0 0.279297 0.512695
+9 12 16 0 0.283447 0.605469
+9 12 17 0 0.287598 0.695312
+9 12 18 0 0.291992 0.777832
+9 12 19 0 0.296387 0.851562
+9 12 20 0 0.295166 0.897461
+9 12 21 0 0.284912 0.904297
+9 12 22 0 0.277832 0.912109
+9 12 23 0 0.272949 0.92041
+9 12 24 0 0.27002 0.928223
+9 12 25 0 0.267822 0.9375
+9 12 26 0 0.266602 0.947754
+9 12 27 0 0.266113 0.958984
+9 12 28 0 0.266602 0.97168
+9 12 29 0 0.267578 0.98584
+9 12 30 0 0.269043 1
+9 12 31 0 0.270752 1
+9 13 0 0 0.32959 0
+9 13 1 0 0.32959 0
+9 13 2 0 0.32959 0
+9 13 3 0 0.32959 0
+9 13 4 0 0.32959 0
+9 13 5 0 0.32959 0
+9 13 6 0 0.32959 0
+9 13 7 0 0.329834 0
+9 13 8 0 0.329834 0
+9 13 9 0 0.330078 0.0420532
+9 13 10 0 0.330566 0.12854
+9 13 11 0 0.331299 0.192383
+9 13 12 0 0.333252 0.260254
+9 13 13 0 0.335693 0.335693
+9 13 14 0 0.337891 0.419922
+9 13 15 0 0.339355 0.509766
+9 13 16 0 0.340088 0.604004
+9 13 17 0 0.340088 0.694824
+9 13 18 0 0.339355 0.77832
+9 13 19 0 0.339111 0.852051
+9 13 20 0 0.33374 0.901367
+9 13 21 0 0.317383 0.907715
+9 13 22 0 0.305664 0.915527
+9 13 23 0 0.297363 0.922852
+9 13 24 0 0.291504 0.931152
+9 13 25 0 0.286865 0.939941
+9 13 26 0 0.283203 0.949707
+9 13 27 0 0.280762 0.960938
+9 13 28 0 0.279297 0.973633
+9 13 29 0 0.278564 0.986816
+9 13 30 0 0.278809 1
+9 13 31 0 0.279297 1
+9 14 0 0 0.406738 0
+9 14 1 0 0.406738 0
+9 14 2 0 0.406738 0
+9 14 3 0 0.406982 0
+9 14 4 0 0.406982 0
+9 14 5 0 0.406982 0
+9 14 6 0 0.406982 0
+9 14 7 0 0.406982 0
+9 14 8 0 0.407227 0
+9 14 9 0 0.407471 0
+9 14 10 0 0.407959 0.0829468
+9 14 11 0 0.408691 0.171021
+9 14 12 0 0.409912 0.246582
+9 14 13 0 0.411133 0.325928
+9 14 14 0 0.412109 0.412354
+9 14 15 0 0.411865 0.504395
+9 14 16 0 0.409912 0.600586
+9 14 17 0 0.405762 0.692871
+9 14 18 0 0.400391 0.777832
+9 14 19 0 0.394775 0.852051
+9 14 20 0 0.385742 0.90625
+9 14 21 0 0.362305 0.913086
+9 14 22 0 0.344971 0.92041
+9 14 23 0 0.332031 0.927734
+9 14 24 0 0.322266 0.935059
+9 14 25 0 0.314209 0.943848
+9 14 26 0 0.307617 0.953125
+9 14 27 0 0.302246 0.963867
+9 14 28 0 0.29834 0.976074
+9 14 29 0 0.29541 0.989258
+9 14 30 0 0.293457 1
+9 14 31 0 0.292236 1
+9 15 0 0 0.491211 0
+9 15 1 0 0.491211 0
+9 15 2 0 0.491211 0
+9 15 3 0 0.491211 0
+9 15 4 0 0.491211 0
+9 15 5 0 0.491211 0
+9 15 6 0 0.491211 0
+9 15 7 0 0.491455 0
+9 15 8 0 0.491455 0
+9 15 9 0 0.491699 0
+9 15 10 0 0.492432 0
+9 15 11 0 0.493408 0.126953
+9 15 12 0 0.494385 0.221924
+9 15 13 0 0.495605 0.308594
+9 15 14 0 0.496094 0.399414
+9 15 15 0 0.494873 0.494873
+9 15 16 0 0.490967 0.59375
+9 15 17 0 0.483643 0.688965
+9 15 18 0 0.474121 0.775879
+9 15 19 0 0.463867 0.852051
+9 15 20 0 0.451416 0.912109
+9 15 21 0 0.420654 0.92041
+9 15 22 0 0.396484 0.927734
+9 15 23 0 0.378174 0.935059
+9 15 24 0 0.364014 0.941895
+9 15 25 0 0.351807 0.949707
+9 15 26 0 0.341309 0.958496
+9 15 27 0 0.332275 0.96875
+9 15 28 0 0.325195 0.980469
+9 15 29 0 0.319336 0.993164
+9 15 30 0 0.314453 1
+9 15 31 0 0.310791 1
+9 16 0 0 0.581055 0
+9 16 1 0 0.581055 0
+9 16 2 0 0.581055 0
+9 16 3 0 0.581055 0
+9 16 4 0 0.581055 0
+9 16 5 0 0.581055 0
+9 16 6 0 0.581055 0
+9 16 7 0 0.581055 0
+9 16 8 0 0.581055 0
+9 16 9 0 0.581543 0
+9 16 10 0 0.582031 0
+9 16 11 0 0.583008 0
+9 16 12 0 0.584473 0.177979
+9 16 13 0 0.585938 0.280518
+9 16 14 0 0.586914 0.378418
+9 16 15 0 0.585938 0.47876
+9 16 16 0 0.581543 0.581543
+9 16 17 0 0.572266 0.680664
+9 16 18 0 0.55957 0.770996
+9 16 19 0 0.544922 0.849609
+9 16 20 0 0.529297 0.914062
+9 16 21 0 0.49292 0.929688
+9 16 22 0 0.461914 0.938477
+9 16 23 0 0.4375 0.945801
+9 16 24 0 0.417969 0.952148
+9 16 25 0 0.400635 0.959473
+9 16 26 0 0.385254 0.967285
+9 16 27 0 0.37207 0.976562
+9 16 28 0 0.36084 0.987305
+9 16 29 0 0.351074 0.999023
+9 16 30 0 0.343018 1
+9 16 31 0 0.336182 1
+9 17 0 0 0.67041 0
+9 17 1 0 0.67041 0
+9 17 2 0 0.67041 0
+9 17 3 0 0.67041 0
+9 17 4 0 0.67041 0
+9 17 5 0 0.67041 0
+9 17 6 0 0.67041 0
+9 17 7 0 0.67041 0
+9 17 8 0 0.670898 0
+9 17 9 0 0.670898 0
+9 17 10 0 0.670898 0
+9 17 11 0 0.672363 0
+9 17 12 0 0.673828 0.0723267
+9 17 13 0 0.67627 0.237061
+9 17 14 0 0.678223 0.347412
+9 17 15 0 0.678223 0.454102
+9 17 16 0 0.674805 0.562012
+9 17 17 0 0.665527 0.666016
+9 17 18 0 0.651367 0.760742
+9 17 19 0 0.634277 0.843262
+9 17 20 0 0.614258 0.911133
+9 17 21 0 0.576172 0.938965
+9 17 22 0 0.539551 0.95166
+9 17 23 0 0.508789 0.960449
+9 17 24 0 0.483398 0.966797
+9 17 25 0 0.460449 0.973633
+9 17 26 0 0.439697 0.980469
+9 17 27 0 0.421387 0.988281
+9 17 28 0 0.405273 0.997559
+9 17 29 0 0.391357 1
+9 17 30 0 0.37915 1
+9 17 31 0 0.368408 1
+9 18 0 0 0.754883 0
+9 18 1 0 0.754883 0
+9 18 2 0 0.754883 0
+9 18 3 0 0.754883 0
+9 18 4 0 0.754883 0
+9 18 5 0 0.754883 0
+9 18 6 0 0.754883 0
+9 18 7 0 0.754883 0
+9 18 8 0 0.754883 0
+9 18 9 0 0.754883 0
+9 18 10 0 0.755371 0
+9 18 11 0 0.755859 0
+9 18 12 0 0.757812 0
+9 18 13 0 0.760742 0.165405
+9 18 14 0 0.763672 0.304199
+9 18 15 0 0.765625 0.42041
+9 18 16 0 0.763672 0.53418
+9 18 17 0 0.756836 0.643555
+9 18 18 0 0.743652 0.744141
+9 18 19 0 0.725098 0.831543
+9 18 20 0 0.703125 0.90332
+9 18 21 0 0.666504 0.944336
+9 18 22 0 0.625977 0.965332
+9 18 23 0 0.589844 0.977539
+9 18 24 0 0.559082 0.985352
+9 18 25 0 0.530273 0.991699
+9 18 26 0 0.503418 0.998047
+9 18 27 0 0.479248 1
+9 18 28 0 0.457764 1
+9 18 29 0 0.438721 1
+9 18 30 0 0.421631 1
+9 18 31 0 0.406738 1
+9 19 0 0 0.831055 0
+9 19 1 0 0.831055 0
+9 19 2 0 0.831055 0
+9 19 3 0 0.831055 0
+9 19 4 0 0.831055 0
+9 19 5 0 0.831055 0
+9 19 6 0 0.831055 0
+9 19 7 0 0.831055 0
+9 19 8 0 0.831055 0
+9 19 9 0 0.831055 0
+9 19 10 0 0.831543 0
+9 19 11 0 0.831543 0
+9 19 12 0 0.833496 0
+9 19 13 0 0.836426 0
+9 19 14 0 0.840332 0.24646
+9 19 15 0 0.843262 0.378662
+9 19 16 0 0.844238 0.499268
+9 19 17 0 0.840332 0.61377
+9 19 18 0 0.82959 0.719727
+9 19 19 0 0.8125 0.8125
+9 19 20 0 0.789551 0.889648
+9 19 21 0 0.756348 0.943848
+9 19 22 0 0.716309 0.976074
+9 19 23 0 0.677246 0.994141
+9 19 24 0 0.641602 1
+9 19 25 0 0.606934 1
+9 19 26 0 0.574219 1
+9 19 27 0 0.543945 1
+9 19 28 0 0.516602 1
+9 19 29 0 0.491699 1
+9 19 30 0 0.469727 1
+9 19 31 0 0.449951 1
+9 20 0 0 0.897461 0
+9 20 1 0 0.897461 0
+9 20 2 0 0.897461 0
+9 20 3 0 0.897461 0
+9 20 4 0 0.897461 0
+9 20 5 0 0.897461 0
+9 20 6 0 0.897461 0
+9 20 7 0 0.897461 0
+9 20 8 0 0.897461 0
+9 20 9 0 0.897461 0
+9 20 10 0 0.897461 0
+9 20 11 0 0.897949 0
+9 20 12 0 0.898438 0
+9 20 13 0 0.901855 0
+9 20 14 0 0.90625 0.160278
+9 20 15 0 0.910645 0.329102
+9 20 16 0 0.913574 0.458984
+9 20 17 0 0.912598 0.579102
+9 20 18 0 0.905273 0.689453
+9 20 19 0 0.890625 0.787598
+9 20 20 0 0.869141 0.869629
+9 20 21 0 0.840332 0.93457
+9 20 22 0 0.803711 0.979004
+9 20 23 0 0.76416 1
+9 20 24 0 0.725586 1
+9 20 25 0 0.687012 1
+9 20 26 0 0.648926 1
+9 20 27 0 0.612793 1
+9 20 28 0 0.57959 1
+9 20 29 0 0.548828 1
+9 20 30 0 0.520996 1
+9 20 31 0 0.496338 1
+9 21 0 0 0.954102 0
+9 21 1 0 0.954102 0
+9 21 2 0 0.954102 0
+9 21 3 0 0.954102 0
+9 21 4 0 0.954102 0
+9 21 5 0 0.954102 0
+9 21 6 0 0.954102 0
+9 21 7 0 0.954102 0
+9 21 8 0 0.954102 0
+9 21 9 0 0.954102 0
+9 21 10 0 0.954102 0
+9 21 11 0 0.95459 0
+9 21 12 0 0.95459 0
+9 21 13 0 0.95752 0
+9 21 14 0 0.961914 0
+9 21 15 0 0.967285 0.268555
+9 21 16 0 0.972168 0.413574
+9 21 17 0 0.974121 0.539062
+9 21 18 0 0.970215 0.653809
+9 21 19 0 0.958984 0.756348
+9 21 20 0 0.94043 0.843262
+9 21 21 0 0.916016 0.916016
+9 21 22 0 0.884277 0.97168
+9 21 23 0 0.847168 1
+9 21 24 0 0.808594 1
+9 21 25 0 0.767578 1
+9 21 26 0 0.725586 1
+9 21 27 0 0.68457 1
+9 21 28 0 0.645508 1
+9 21 29 0 0.609375 1
+9 21 30 0 0.576172 1
+9 21 31 0 0.546387 1
+9 22 0 0 1 0
+9 22 1 0 1 0
+9 22 2 0 1 0
+9 22 3 0 1 0
+9 22 4 0 1 0
+9 22 5 0 1 0
+9 22 6 0 1 0
+9 22 7 0 1 0
+9 22 8 0 1 0
+9 22 9 0 1 0
+9 22 10 0 1 0
+9 22 11 0 1 0
+9 22 12 0 1 0
+9 22 13 0 1 0
+9 22 14 0 1 0
+9 22 15 0 1 0.18689
+9 22 16 0 1 0.363037
+9 22 17 0 1 0.49585
+9 22 18 0 1 0.614258
+9 22 19 0 1 0.720215
+9 22 20 0 1 0.812012
+9 22 21 0 0.97998 0.889648
+9 22 22 0 0.953125 0.953613
+9 22 23 0 0.920898 1
+9 22 24 0 0.885254 1
+9 22 25 0 0.844238 1
+9 22 26 0 0.800781 1
+9 22 27 0 0.756348 1
+9 22 28 0 0.712891 1
+9 22 29 0 0.671875 1
+9 22 30 0 0.633301 1
+9 22 31 0 0.598145 1
+9 23 0 0 1 0
+9 23 1 0 1 0
+9 23 2 0 1 0
+9 23 3 0 1 0
+9 23 4 0 1 0
+9 23 5 0 1 0
+9 23 6 0 1 0
+9 23 7 0 1 0
+9 23 8 0 1 0
+9 23 9 0 1 0
+9 23 10 0 1 0
+9 23 11 0 1 0
+9 23 12 0 1 0
+9 23 13 0 1 0
+9 23 14 0 1 0
+9 23 15 0 1 0
+9 23 16 0 1 0.30835
+9 23 17 0 1 0.451416
+9 23 18 0 1 0.57373
+9 23 19 0 1 0.682617
+9 23 20 0 1 0.777344
+9 23 21 0 1 0.859863
+9 23 22 0 1 0.928223
+9 23 23 0 0.981445 0.981934
+9 23 24 0 0.950195 1
+9 23 25 0 0.912109 1
+9 23 26 0 0.869141 1
+9 23 27 0 0.823242 1
+9 23 28 0 0.776855 1
+9 23 29 0 0.731934 1
+9 23 30 0 0.688965 1
+9 23 31 0 0.648926 1
+9 24 0 0 1 0
+9 24 1 0 1 0
+9 24 2 0 1 0
+9 24 3 0 1 0
+9 24 4 0 1 0
+9 24 5 0 1 0
+9 24 6 0 1 0
+9 24 7 0 1 0
+9 24 8 0 1 0
+9 24 9 0 1 0
+9 24 10 0 1 0
+9 24 11 0 1 0
+9 24 12 0 1 0
+9 24 13 0 1 0
+9 24 14 0 1 0
+9 24 15 0 1 0
+9 24 16 0 1 0.245728
+9 24 17 0 1 0.406006
+9 24 18 0 1 0.533203
+9 24 19 0 1 0.644531
+9 24 20 0 1 0.741699
+9 24 21 0 1 0.827148
+9 24 22 0 1 0.899414
+9 24 23 0 1 0.958008
+9 24 24 0 1 1
+9 24 25 0 0.970703 1
+9 24 26 0 0.929688 1
+9 24 27 0 0.884766 1
+9 24 28 0 0.836914 1
+9 24 29 0 0.789062 1
+9 24 30 0 0.742676 1
+9 24 31 0 0.69873 1
+9 25 0 0 1 0
+9 25 1 0 1 0
+9 25 2 0 1 0
+9 25 3 0 1 0
+9 25 4 0 1 0
+9 25 5 0 1 0
+9 25 6 0 1 0
+9 25 7 0 1 0
+9 25 8 0 1 0
+9 25 9 0 1 0
+9 25 10 0 1 0
+9 25 11 0 1 0
+9 25 12 0 1 0
+9 25 13 0 1 0
+9 25 14 0 1 0
+9 25 15 0 1 0
+9 25 16 0 1 0.150879
+9 25 17 0 1 0.354004
+9 25 18 0 1 0.487549
+9 25 19 0 1 0.601562
+9 25 20 0 1 0.701172
+9 25 21 0 1 0.789062
+9 25 22 0 1 0.865234
+9 25 23 0 1 0.927734
+9 25 24 0 1 0.979004
+9 25 25 0 1 1
+9 25 26 0 0.987793 1
+9 25 27 0 0.944336 1
+9 25 28 0 0.896973 1
+9 25 29 0 0.847656 1
+9 25 30 0 0.798828 1
+9 25 31 0 0.751465 1
+9 26 0 0 1 0
+9 26 1 0 1 0
+9 26 2 0 1 0
+9 26 3 0 1 0
+9 26 4 0 1 0
+9 26 5 0 1 0
+9 26 6 0 1 0
+9 26 7 0 1 0
+9 26 8 0 1 0
+9 26 9 0 1 0
+9 26 10 0 1 0
+9 26 11 0 1 0
+9 26 12 0 1 0
+9 26 13 0 1 0
+9 26 14 0 1 0
+9 26 15 0 1 0
+9 26 16 0 1 0
+9 26 17 0 1 0.291748
+9 26 18 0 1 0.437256
+9 26 19 0 1 0.554688
+9 26 20 0 1 0.655762
+9 26 21 0 1 0.746582
+9 26 22 0 1 0.825684
+9 26 23 0 1 0.891602
+9 26 24 0 1 0.946777
+9 26 25 0 1 0.99707
+9 26 26 0 1 1
+9 26 27 0 1 1
+9 26 28 0 0.956055 1
+9 26 29 0 0.906738 1
+9 26 30 0 0.856445 1
+9 26 31 0 0.806152 1
+9 27 0 0 1 0
+9 27 1 0 1 0
+9 27 2 0 1 0
+9 27 3 0 1 0
+9 27 4 0 1 0
+9 27 5 0 1 0
+9 27 6 0 1 0
+9 27 7 0 1 0
+9 27 8 0 1 0
+9 27 9 0 1 0
+9 27 10 0 1 0
+9 27 11 0 1 0
+9 27 12 0 1 0
+9 27 13 0 1 0
+9 27 14 0 1 0
+9 27 15 0 1 0
+9 27 16 0 1 0
+9 27 17 0 1 0.209473
+9 27 18 0 1 0.380859
+9 27 19 0 1 0.503418
+9 27 20 0 1 0.606934
+9 27 21 0 1 0.699219
+9 27 22 0 1 0.780273
+9 27 23 0 1 0.849609
+9 27 24 0 1 0.908203
+9 27 25 0 1 0.962891
+9 27 26 0 1 1
+9 27 27 0 1 1
+9 27 28 0 1 1
+9 27 29 0 0.964355 1
+9 27 30 0 0.913574 1
+9 27 31 0 0.862305 1
+9 28 0 0 1 0
+9 28 1 0 1 0
+9 28 2 0 1 0
+9 28 3 0 1 0
+9 28 4 0 1 0
+9 28 5 0 1 0
+9 28 6 0 1 0
+9 28 7 0 1 0
+9 28 8 0 1 0
+9 28 9 0 1 0
+9 28 10 0 1 0
+9 28 11 0 1 0
+9 28 12 0 1 0
+9 28 13 0 1 0
+9 28 14 0 1 0
+9 28 15 0 1 0
+9 28 16 0 1 0
+9 28 17 0 1 0
+9 28 18 0 1 0.315674
+9 28 19 0 1 0.44751
+9 28 20 0 1 0.553711
+9 28 21 0 1 0.647461
+9 28 22 0 1 0.730469
+9 28 23 0 1 0.802246
+9 28 24 0 1 0.86377
+9 28 25 0 1 0.921875
+9 28 26 0 1 0.975586
+9 28 27 0 1 1
+9 28 28 0 1 1
+9 28 29 0 1 1
+9 28 30 0 0.969727 1
+9 28 31 0 0.918457 1
+9 29 0 0 1 0
+9 29 1 0 1 0
+9 29 2 0 1 0
+9 29 3 0 1 0
+9 29 4 0 1 0
+9 29 5 0 1 0
+9 29 6 0 1 0
+9 29 7 0 1 0
+9 29 8 0 1 0
+9 29 9 0 1 0
+9 29 10 0 1 0
+9 29 11 0 1 0
+9 29 12 0 1 0
+9 29 13 0 1 0
+9 29 14 0 1 0
+9 29 15 0 1 0
+9 29 16 0 1 0
+9 29 17 0 1 0
+9 29 18 0 1 0.233154
+9 29 19 0 1 0.385742
+9 29 20 0 1 0.496582
+9 29 21 0 1 0.591797
+9 29 22 0 1 0.67627
+9 29 23 0 1 0.749023
+9 29 24 0 1 0.812988
+9 29 25 0 1 0.874023
+9 29 26 0 1 0.931641
+9 29 27 0 1 0.984375
+9 29 28 0 1 1
+9 29 29 0 1 1
+9 29 30 0 1 1
+9 29 31 0 0.974609 1
+9 30 0 0 1 0
+9 30 1 0 1 0
+9 30 2 0 1 0
+9 30 3 0 1 0
+9 30 4 0 1 0
+9 30 5 0 1 0
+9 30 6 0 1 0
+9 30 7 0 1 0
+9 30 8 0 1 0
+9 30 9 0 1 0
+9 30 10 0 1 0
+9 30 11 0 1 0
+9 30 12 0 1 0
+9 30 13 0 1 0
+9 30 14 0 1 0
+9 30 15 0 1 0
+9 30 16 0 1 0
+9 30 17 0 1 0
+9 30 18 0 1 0.0705566
+9 30 19 0 1 0.315186
+9 30 20 0 1 0.43457
+9 30 21 0 1 0.532227
+9 30 22 0 1 0.617676
+9 30 23 0 1 0.691895
+9 30 24 0 1 0.756836
+9 30 25 0 1 0.820312
+9 30 26 0 1 0.881348
+9 30 27 0 1 0.938477
+9 30 28 0 1 0.990234
+9 30 29 0 1 1
+9 30 30 0 1 1
+9 30 31 0 1 1
+9 31 0 0 1 0
+9 31 1 0 1 0
+9 31 2 0 1 0
+9 31 3 0 1 0
+9 31 4 0 1 0
+9 31 5 0 1 0
+9 31 6 0 1 0
+9 31 7 0 1 0
+9 31 8 0 1 0
+9 31 9 0 1 0
+9 31 10 0 1 0
+9 31 11 0 1 0
+9 31 12 0 1 0
+9 31 13 0 1 0
+9 31 14 0 1 0
+9 31 15 0 1 0
+9 31 16 0 1 0
+9 31 17 0 1 0
+9 31 18 0 1 0
+9 31 19 0 1 0.226562
+9 31 20 0 1 0.366699
+9 31 21 0 1 0.469238
+9 31 22 0 1 0.556152
+9 31 23 0 1 0.630859
+9 31 24 0 1 0.696777
+9 31 25 0 1 0.761719
+9 31 26 0 1 0.825195
+9 31 27 0 1 0.88623
+9 31 28 0 1 0.943359
+9 31 29 0 1 0.995605
+9 31 30 0 1 1
+9 31 31 0 1 1
+10 0 0 0.281006 0 0
+10 0 1 0.281006 0 0
+10 0 2 0.281006 0 0
+10 0 3 0.281006 0 0
+10 0 4 0.281006 0 0
+10 0 5 0.281006 0 0
+10 0 6 0.28125 0 0
+10 0 7 0.277344 0 0.0678101
+10 0 8 0.266846 0 0.113159
+10 0 9 0.22229 0 0.137939
+10 0 10 0.194946 0.0361023 0.164673
+10 0 11 0.185791 0.0509033 0.215332
+10 0 12 0.163696 0.0678711 0.277344
+10 0 13 0.105225 0.0869141 0.349121
+10 0 14 0 0.10791 0.429199
+10 0 15 0 0.130371 0.516113
+10 0 16 0 0.153931 0.606934
+10 0 17 0 0.176636 0.695801
+10 0 18 0 0.197754 0.777832
+10 0 19 0 0.216431 0.850586
+10 0 20 0 0.227295 0.893066
+10 0 21 0 0.22937 0.900879
+10 0 22 0 0.231445 0.90918
+10 0 23 0 0.233643 0.91748
+10 0 24 0 0.23584 0.925781
+10 0 25 0 0.238281 0.935059
+10 0 26 0 0.240967 0.945801
+10 0 27 0 0.243896 0.957031
+10 0 28 0 0.247314 0.970215
+10 0 29 0 0.250732 0.984375
+10 0 30 0 0.254639 0.999023
+10 0 31 0 0.258301 1
+10 1 0 0.280762 0 0
+10 1 1 0.280762 0 0
+10 1 2 0.280762 0 0
+10 1 3 0.280762 0 0
+10 1 4 0.280762 0 0
+10 1 5 0.280762 0 0
+10 1 6 0.281006 0 0
+10 1 7 0.2771 0 0.067688
+10 1 8 0.266846 0 0.113098
+10 1 9 0.222412 0 0.138062
+10 1 10 0.194824 0.0368652 0.164673
+10 1 11 0.185791 0.0513916 0.215332
+10 1 12 0.163696 0.0682373 0.277344
+10 1 13 0.105103 0.0871582 0.349121
+10 1 14 0 0.108093 0.429199
+10 1 15 0 0.130493 0.516113
+10 1 16 0 0.154053 0.606934
+10 1 17 0 0.176758 0.695801
+10 1 18 0 0.197876 0.777832
+10 1 19 0 0.216553 0.850586
+10 1 20 0 0.227417 0.893066
+10 1 21 0 0.22937 0.900879
+10 1 22 0 0.231567 0.90918
+10 1 23 0 0.233643 0.91748
+10 1 24 0 0.23584 0.925781
+10 1 25 0 0.238281 0.935059
+10 1 26 0 0.240967 0.945801
+10 1 27 0 0.243896 0.957031
+10 1 28 0 0.247314 0.970215
+10 1 29 0 0.250732 0.984375
+10 1 30 0 0.254639 0.999023
+10 1 31 0 0.258301 1
+10 2 0 0.280518 0 0
+10 2 1 0.280518 0 0
+10 2 2 0.280518 0 0
+10 2 3 0.280518 0 0
+10 2 4 0.280273 0 0
+10 2 5 0.280518 0 0
+10 2 6 0.280762 0 0
+10 2 7 0.2771 0 0.0674438
+10 2 8 0.266846 0 0.113037
+10 2 9 0.222412 0 0.138062
+10 2 10 0.194824 0.038208 0.164551
+10 2 11 0.185669 0.0522766 0.215332
+10 2 12 0.163574 0.0688477 0.277344
+10 2 13 0.104858 0.0875854 0.349121
+10 2 14 0 0.108459 0.429199
+10 2 15 0 0.130737 0.516113
+10 2 16 0 0.154175 0.606934
+10 2 17 0 0.17688 0.695801
+10 2 18 0 0.197998 0.777832
+10 2 19 0 0.216553 0.850586
+10 2 20 0 0.227417 0.893066
+10 2 21 0 0.229492 0.900879
+10 2 22 0 0.231567 0.90918
+10 2 23 0 0.233765 0.91748
+10 2 24 0 0.235962 0.925781
+10 2 25 0 0.238281 0.935059
+10 2 26 0 0.240967 0.945801
+10 2 27 0 0.243896 0.957031
+10 2 28 0 0.247314 0.970215
+10 2 29 0 0.250732 0.984375
+10 2 30 0 0.254639 0.999023
+10 2 31 0 0.258545 1
+10 3 0 0.279785 0 0
+10 3 1 0.279785 0 0
+10 3 2 0.279785 0 0
+10 3 3 0.279785 0 0
+10 3 4 0.279785 0 0
+10 3 5 0.279785 0 0
+10 3 6 0.280273 0 0
+10 3 7 0.276611 0 0.0670166
+10 3 8 0.266602 0 0.112854
+10 3 9 0.222534 0 0.138184
+10 3 10 0.19458 0.0404663 0.164551
+10 3 11 0.185425 0.053833 0.215332
+10 3 12 0.16333 0.0699463 0.277344
+10 3 13 0.104431 0.0884399 0.348877
+10 3 14 0 0.109009 0.429199
+10 3 15 0 0.131226 0.516113
+10 3 16 0 0.154541 0.606934
+10 3 17 0 0.177124 0.695801
+10 3 18 0 0.19812 0.777832
+10 3 19 0 0.216797 0.850586
+10 3 20 0 0.227539 0.893066
+10 3 21 0 0.229492 0.900879
+10 3 22 0 0.231689 0.90918
+10 3 23 0 0.233765 0.91748
+10 3 24 0 0.235962 0.925781
+10 3 25 0 0.238403 0.935059
+10 3 26 0 0.240967 0.945801
+10 3 27 0 0.244019 0.957031
+10 3 28 0 0.247314 0.970215
+10 3 29 0 0.250977 0.984375
+10 3 30 0 0.254639 0.999023
+10 3 31 0 0.258545 1
+10 4 0 0.278564 0 0
+10 4 1 0.278564 0 0
+10 4 2 0.278564 0 0
+10 4 3 0.278564 0 0
+10 4 4 0.278564 0 0
+10 4 5 0.278564 0 0
+10 4 6 0.279053 0 0
+10 4 7 0.276123 0 0.0662231
+10 4 8 0.266357 0 0.112488
+10 4 9 0.222656 0 0.138306
+10 4 10 0.194336 0.044342 0.164551
+10 4 11 0.185181 0.0566101 0.21521
+10 4 12 0.162842 0.0719604 0.277344
+10 4 13 0.103638 0.0899048 0.348877
+10 4 14 0 0.110107 0.429199
+10 4 15 0 0.13208 0.516113
+10 4 16 0 0.155151 0.606934
+10 4 17 0 0.177612 0.695801
+10 4 18 0 0.198486 0.777832
+10 4 19 0 0.217041 0.850586
+10 4 20 0 0.227783 0.893066
+10 4 21 0 0.229736 0.900879
+10 4 22 0 0.231812 0.90918
+10 4 23 0 0.233887 0.91748
+10 4 24 0 0.236084 0.925781
+10 4 25 0 0.238403 0.935059
+10 4 26 0 0.241089 0.945801
+10 4 27 0 0.244019 0.957031
+10 4 28 0 0.247437 0.970215
+10 4 29 0 0.250977 0.984375
+10 4 30 0 0.254639 0.999023
+10 4 31 0 0.258545 1
+10 5 0 0.276123 0 0
+10 5 1 0.276123 0 0
+10 5 2 0.276123 0 0
+10 5 3 0.276123 0 0
+10 5 4 0.275879 0 0
+10 5 5 0.276123 0 0
+10 5 6 0.276855 0 0
+10 5 7 0.274414 0 0.0646362
+10 5 8 0.265381 0 0.111816
+10 5 9 0.223022 0 0.13855
+10 5 10 0.193726 0.0507202 0.164429
+10 5 11 0.184448 0.0614929 0.215088
+10 5 12 0.161987 0.0756836 0.2771
+10 5 13 0.102051 0.0927124 0.348877
+10 5 14 0 0.112244 0.429199
+10 5 15 0 0.133667 0.516113
+10 5 16 0 0.156372 0.606934
+10 5 17 0 0.178589 0.695801
+10 5 18 0 0.199219 0.777832
+10 5 19 0 0.217651 0.850586
+10 5 20 0 0.228271 0.893066
+10 5 21 0 0.230103 0.900879
+10 5 22 0 0.232056 0.90918
+10 5 23 0 0.234131 0.91748
+10 5 24 0 0.236328 0.925781
+10 5 25 0 0.238647 0.935059
+10 5 26 0 0.241211 0.945801
+10 5 27 0 0.244141 0.957031
+10 5 28 0 0.247437 0.970215
+10 5 29 0 0.250977 0.984375
+10 5 30 0 0.254639 0.999023
+10 5 31 0 0.258545 1
+10 6 0 0.27124 0 0
+10 6 1 0.270996 0 0
+10 6 2 0.270996 0 0
+10 6 3 0.270996 0 0
+10 6 4 0.270996 0 0
+10 6 5 0.270996 0 0
+10 6 6 0.272217 0 0
+10 6 7 0.27124 0 0.0616455
+10 6 8 0.263428 0 0.110352
+10 6 9 0.223633 0.0369568 0.13916
+10 6 10 0.192505 0.0604553 0.164185
+10 6 11 0.183105 0.0695801 0.214966
+10 6 12 0.1604 0.0820923 0.2771
+10 6 13 0.098938 0.0977173 0.348877
+10 6 14 0 0.116028 0.429199
+10 6 15 0 0.136597 0.516113
+10 6 16 0 0.158569 0.606934
+10 6 17 0 0.180298 0.695801
+10 6 18 0 0.200562 0.777832
+10 6 19 0 0.21875 0.850586
+10 6 20 0 0.229126 0.893066
+10 6 21 0 0.230835 0.900879
+10 6 22 0 0.232666 0.90918
+10 6 23 0 0.234619 0.91748
+10 6 24 0 0.236694 0.925781
+10 6 25 0 0.239014 0.935059
+10 6 26 0 0.241577 0.945801
+10 6 27 0 0.244385 0.957031
+10 6 28 0 0.247681 0.970215
+10 6 29 0 0.251221 0.984375
+10 6 30 0 0.254883 0.999023
+10 6 31 0 0.258789 1
+10 7 0 0.260742 0.0693359 0
+10 7 1 0.260742 0.069397 0
+10 7 2 0.260742 0.069458 0
+10 7 3 0.260742 0.0696411 0
+10 7 4 0.260498 0.0699463 0
+10 7 5 0.260742 0.0704956 0
+10 7 6 0.262207 0.0708618 0
+10 7 7 0.262939 0.0691528 0.0560913
+10 7 8 0.258057 0.0656128 0.107056
+10 7 9 0.22522 0.0655518 0.140503
+10 7 10 0.190308 0.0748901 0.163696
+10 7 11 0.180664 0.0823364 0.2146
+10 7 12 0.157349 0.0928955 0.276855
+10 7 13 0.0924683 0.106506 0.348633
+10 7 14 0 0.123047 0.429199
+10 7 15 0 0.14209 0.516113
+10 7 16 0 0.162842 0.606934
+10 7 17 0 0.183594 0.695801
+10 7 18 0 0.203247 0.777832
+10 7 19 0 0.220825 0.850586
+10 7 20 0 0.230957 0.893555
+10 7 21 0 0.232178 0.900879
+10 7 22 0 0.233765 0.90918
+10 7 23 0 0.235596 0.91748
+10 7 24 0 0.237549 0.925781
+10 7 25 0 0.239624 0.935547
+10 7 26 0 0.242188 0.945801
+10 7 27 0 0.244995 0.95752
+10 7 28 0 0.248169 0.970215
+10 7 29 0 0.251709 0.984375
+10 7 30 0 0.255127 0.999023
+10 7 31 0 0.259033 1
+10 8 0 0.239868 0.103455 0
+10 8 1 0.239868 0.103516 0
+10 8 2 0.239868 0.103516 0
+10 8 3 0.239746 0.103577 0
+10 8 4 0.239746 0.103699 0
+10 8 5 0.239624 0.103943 0
+10 8 6 0.240845 0.104431 0
+10 8 7 0.242676 0.104797 0.0488281
+10 8 8 0.245605 0.10498 0.100403
+10 8 9 0.227783 0.0992432 0.1427
+10 8 10 0.185791 0.0953369 0.162964
+10 8 11 0.175537 0.10144 0.213989
+10 8 12 0.150879 0.110107 0.276367
+10 8 13 0.0775757 0.121338 0.348389
+10 8 14 0 0.135376 0.428955
+10 8 15 0 0.151978 0.515625
+10 8 16 0 0.170776 0.606934
+10 8 17 0 0.189819 0.695801
+10 8 18 0 0.208252 0.777832
+10 8 19 0 0.224854 0.850586
+10 8 20 0 0.234253 0.893555
+10 8 21 0 0.234741 0.901367
+10 8 22 0 0.235962 0.90918
+10 8 23 0 0.237427 0.91748
+10 8 24 0 0.239014 0.92627
+10 8 25 0 0.240967 0.935547
+10 8 26 0 0.243286 0.945801
+10 8 27 0 0.245972 0.95752
+10 8 28 0 0.249023 0.970703
+10 8 29 0 0.252197 0.984375
+10 8 30 0 0.255859 0.999023
+10 8 31 0 0.259521 1
+10 9 0 0.209473 0.130493 0
+10 9 1 0.209473 0.130493 0
+10 9 2 0.209473 0.130493 0
+10 9 3 0.209473 0.130493 0
+10 9 4 0.209473 0.130615 0
+10 9 5 0.209473 0.130737 0
+10 9 6 0.208984 0.130859 0
+10 9 7 0.208008 0.130981 0.0513611
+10 9 8 0.208008 0.132324 0.0893555
+10 9 9 0.214355 0.137939 0.136597
+10 9 10 0.17688 0.123108 0.161377
+10 9 11 0.165161 0.128296 0.212891
+10 9 12 0.137329 0.135376 0.275391
+10 9 13 0 0.144287 0.347656
+10 9 14 0 0.155396 0.428467
+10 9 15 0 0.168823 0.515625
+10 9 16 0 0.18457 0.606934
+10 9 17 0 0.201172 0.695801
+10 9 18 0 0.217407 0.777832
+10 9 19 0 0.2323 0.851074
+10 9 20 0 0.240356 0.894043
+10 9 21 0 0.239746 0.901367
+10 9 22 0 0.23999 0.909668
+10 9 23 0 0.240845 0.917969
+10 9 24 0 0.241943 0.92627
+10 9 25 0 0.24353 0.935547
+10 9 26 0 0.245483 0.946289
+10 9 27 0 0.247803 0.95752
+10 9 28 0 0.250488 0.970703
+10 9 29 0 0.253662 0.984375
+10 9 30 0 0.25708 0.999023
+10 9 31 0 0.260498 1
+10 10 0 0.193726 0.172119 0
+10 10 1 0.193726 0.172119 0
+10 10 2 0.193726 0.172119 0
+10 10 3 0.193726 0.172119 0
+10 10 4 0.193726 0.172241 0
+10 10 5 0.193848 0.172363 0
+10 10 6 0.193481 0.172363 0
+10 10 7 0.190674 0.171265 0.0472412
+10 10 8 0.185425 0.169189 0.0863647
+10 10 9 0.175903 0.165405 0.122803
+10 10 10 0.159058 0.159058 0.159058
+10 10 11 0.143921 0.16333 0.21106
+10 10 12 0.106384 0.169189 0.273926
+10 10 13 0 0.17627 0.34668
+10 10 14 0 0.18457 0.427734
+10 10 15 0 0.19458 0.515137
+10 10 16 0 0.206665 0.606934
+10 10 17 0 0.219604 0.695801
+10 10 18 0 0.232788 0.77832
+10 10 19 0 0.245117 0.851074
+10 10 20 0 0.251221 0.89502
+10 10 21 0 0.248413 0.902344
+10 10 22 0 0.24707 0.910156
+10 10 23 0 0.246826 0.918457
+10 10 24 0 0.247192 0.926758
+10 10 25 0 0.247925 0.936035
+10 10 26 0 0.249268 0.946289
+10 10 27 0 0.251221 0.958008
+10 10 28 0 0.253418 0.971191
+10 10 29 0 0.256104 0.984863
+10 10 30 0 0.259277 0.999512
+10 10 31 0 0.262451 1
+10 11 0 0.148193 0.213501 0
+10 11 1 0.148193 0.213501 0
+10 11 2 0.148193 0.213501 0
+10 11 3 0.148193 0.213501 0
+10 11 4 0.148315 0.213501 0
+10 11 5 0.148315 0.213623 0
+10 11 6 0.148315 0.213745 0
+10 11 7 0.146362 0.212891 0
+10 11 8 0.141357 0.210571 0.0667114
+10 11 9 0.131836 0.206909 0.110962
+10 11 10 0.117004 0.204834 0.154907
+10 11 11 0.0878296 0.208008 0.208008
+10 11 12 0 0.212646 0.271484
+10 11 13 0 0.218262 0.344727
+10 11 14 0 0.224121 0.426514
+10 11 15 0 0.230957 0.514648
+10 11 16 0 0.239014 0.606445
+10 11 17 0 0.247681 0.695801
+10 11 18 0 0.256836 0.77832
+10 11 19 0 0.265625 0.851562
+10 11 20 0 0.268555 0.896484
+10 11 21 0 0.262695 0.90332
+10 11 22 0 0.259033 0.911621
+10 11 23 0 0.25708 0.919434
+10 11 24 0 0.255859 0.927734
+10 11 25 0 0.255615 0.937012
+10 11 26 0 0.255859 0.947266
+10 11 27 0 0.256836 0.958496
+10 11 28 0 0.258301 0.97168
+10 11 29 0 0.260498 0.985352
+10 11 30 0 0.262939 1
+10 11 31 0 0.265625 1
+10 12 0 0 0.263916 0
+10 12 1 0 0.263916 0
+10 12 2 0 0.263916 0
+10 12 3 0 0.263916 0
+10 12 4 0 0.263916 0
+10 12 5 0 0.26416 0
+10 12 6 0 0.26416 0
+10 12 7 0 0.264404 0
+10 12 8 0 0.263428 0
+10 12 9 0 0.262207 0.0927734
+10 12 10 0 0.262207 0.146362
+10 12 11 0 0.263916 0.202637
+10 12 12 0 0.26709 0.26709
+10 12 13 0 0.27124 0.341309
+10 12 14 0 0.275146 0.424072
+10 12 15 0 0.279053 0.512695
+10 12 16 0 0.283203 0.605469
+10 12 17 0 0.287598 0.695801
+10 12 18 0 0.291992 0.77832
+10 12 19 0 0.296387 0.852051
+10 12 20 0 0.295654 0.898926
+10 12 21 0 0.285156 0.905762
+10 12 22 0 0.278076 0.913086
+10 12 23 0 0.273193 0.921387
+10 12 24 0 0.270264 0.929199
+10 12 25 0 0.268066 0.938477
+10 12 26 0 0.266602 0.948242
+10 12 27 0 0.266113 0.959473
+10 12 28 0 0.266602 0.972656
+10 12 29 0 0.267578 0.986328
+10 12 30 0 0.269043 1
+10 12 31 0 0.270996 1
+10 13 0 0 0.329834 0
+10 13 1 0 0.329834 0
+10 13 2 0 0.329834 0
+10 13 3 0 0.329834 0
+10 13 4 0 0.329834 0
+10 13 5 0 0.329834 0
+10 13 6 0 0.330078 0
+10 13 7 0 0.330078 0
+10 13 8 0 0.330322 0
+10 13 9 0 0.330078 0.0382996
+10 13 10 0 0.330322 0.127686
+10 13 11 0 0.331299 0.191895
+10 13 12 0 0.333008 0.259766
+10 13 13 0 0.335449 0.335693
+10 13 14 0 0.337891 0.419678
+10 13 15 0 0.339355 0.510254
+10 13 16 0 0.340088 0.604004
+10 13 17 0 0.340088 0.694824
+10 13 18 0 0.3396 0.77832
+10 13 19 0 0.339111 0.852539
+10 13 20 0 0.334229 0.902344
+10 13 21 0 0.317871 0.90918
+10 13 22 0 0.305908 0.916504
+10 13 23 0 0.297607 0.923828
+10 13 24 0 0.291748 0.931641
+10 13 25 0 0.287109 0.94043
+10 13 26 0 0.283447 0.950195
+10 13 27 0 0.280762 0.961426
+10 13 28 0 0.279541 0.974121
+10 13 29 0 0.278809 0.987305
+10 13 30 0 0.278809 1
+10 13 31 0 0.279541 1
+10 14 0 0 0.406982 0
+10 14 1 0 0.406982 0
+10 14 2 0 0.406982 0
+10 14 3 0 0.406982 0
+10 14 4 0 0.406982 0
+10 14 5 0 0.406982 0
+10 14 6 0 0.406982 0
+10 14 7 0 0.406982 0
+10 14 8 0 0.407227 0
+10 14 9 0 0.407471 0
+10 14 10 0 0.407959 0.081604
+10 14 11 0 0.408691 0.170532
+10 14 12 0 0.409668 0.246216
+10 14 13 0 0.411133 0.325684
+10 14 14 0 0.412109 0.412109
+10 14 15 0 0.411865 0.504395
+10 14 16 0 0.409912 0.600586
+10 14 17 0 0.405762 0.693359
+10 14 18 0 0.400391 0.77832
+10 14 19 0 0.39502 0.852539
+10 14 20 0 0.385986 0.907227
+10 14 21 0 0.362793 0.914062
+10 14 22 0 0.345215 0.921387
+10 14 23 0 0.332275 0.928223
+10 14 24 0 0.32251 0.936035
+10 14 25 0 0.314453 0.944336
+10 14 26 0 0.307861 0.953613
+10 14 27 0 0.30249 0.964355
+10 14 28 0 0.298584 0.976562
+10 14 29 0 0.295654 0.989746
+10 14 30 0 0.293701 1
+10 14 31 0 0.29248 1
+10 15 0 0 0.491211 0
+10 15 1 0 0.491211 0
+10 15 2 0 0.491211 0
+10 15 3 0 0.491211 0
+10 15 4 0 0.491211 0
+10 15 5 0 0.491211 0
+10 15 6 0 0.491455 0
+10 15 7 0 0.491455 0
+10 15 8 0 0.491455 0
+10 15 9 0 0.491943 0
+10 15 10 0 0.492432 0
+10 15 11 0 0.493408 0.126221
+10 15 12 0 0.494385 0.22168
+10 15 13 0 0.495605 0.308594
+10 15 14 0 0.49585 0.39917
+10 15 15 0 0.494873 0.494873
+10 15 16 0 0.490967 0.59375
+10 15 17 0 0.483887 0.689453
+10 15 18 0 0.474365 0.776367
+10 15 19 0 0.463867 0.852051
+10 15 20 0 0.451904 0.913086
+10 15 21 0 0.420898 0.921387
+10 15 22 0 0.396729 0.928711
+10 15 23 0 0.378418 0.935547
+10 15 24 0 0.364258 0.942383
+10 15 25 0 0.351807 0.950195
+10 15 26 0 0.341309 0.959473
+10 15 27 0 0.33252 0.969238
+10 15 28 0 0.325195 0.980957
+10 15 29 0 0.319336 0.993652
+10 15 30 0 0.314697 1
+10 15 31 0 0.311035 1
+10 16 0 0 0.581055 0
+10 16 1 0 0.581055 0
+10 16 2 0 0.581055 0
+10 16 3 0 0.581055 0
+10 16 4 0 0.581055 0
+10 16 5 0 0.581055 0
+10 16 6 0 0.581055 0
+10 16 7 0 0.581055 0
+10 16 8 0 0.581543 0
+10 16 9 0 0.581543 0
+10 16 10 0 0.582031 0
+10 16 11 0 0.583008 0
+10 16 12 0 0.584473 0.177612
+10 16 13 0 0.585938 0.280518
+10 16 14 0 0.586914 0.378174
+10 16 15 0 0.585938 0.47876
+10 16 16 0 0.581543 0.581543
+10 16 17 0 0.572266 0.680664
+10 16 18 0 0.55957 0.770996
+10 16 19 0 0.54541 0.849609
+10 16 20 0 0.529297 0.914551
+10 16 21 0 0.493164 0.930176
+10 16 22 0 0.462158 0.938965
+10 16 23 0 0.4375 0.946289
+10 16 24 0 0.417969 0.952637
+10 16 25 0 0.400879 0.959961
+10 16 26 0 0.385498 0.967773
+10 16 27 0 0.37207 0.977051
+10 16 28 0 0.36084 0.987793
+10 16 29 0 0.351318 0.999512
+10 16 30 0 0.343262 1
+10 16 31 0 0.336426 1
+10 17 0 0 0.670898 0
+10 17 1 0 0.670898 0
+10 17 2 0 0.670898 0
+10 17 3 0 0.670898 0
+10 17 4 0 0.670898 0
+10 17 5 0 0.670898 0
+10 17 6 0 0.670898 0
+10 17 7 0 0.670898 0
+10 17 8 0 0.670898 0
+10 17 9 0 0.670898 0
+10 17 10 0 0.671387 0
+10 17 11 0 0.672363 0
+10 17 12 0 0.674316 0.0708618
+10 17 13 0 0.67627 0.236816
+10 17 14 0 0.678223 0.347168
+10 17 15 0 0.678223 0.454102
+10 17 16 0 0.674805 0.562012
+10 17 17 0 0.665527 0.666016
+10 17 18 0 0.651855 0.76123
+10 17 19 0 0.634277 0.84375
+10 17 20 0 0.614746 0.911621
+10 17 21 0 0.57666 0.939453
+10 17 22 0 0.539551 0.952148
+10 17 23 0 0.508789 0.960938
+10 17 24 0 0.483643 0.967285
+10 17 25 0 0.460693 0.973633
+10 17 26 0 0.439941 0.980957
+10 17 27 0 0.421387 0.98877
+10 17 28 0 0.405518 0.998047
+10 17 29 0 0.391357 1
+10 17 30 0 0.37915 1
+10 17 31 0 0.368408 1
+10 18 0 0 0.755371 0
+10 18 1 0 0.755371 0
+10 18 2 0 0.755371 0
+10 18 3 0 0.755371 0
+10 18 4 0 0.755371 0
+10 18 5 0 0.755371 0
+10 18 6 0 0.755371 0
+10 18 7 0 0.755371 0
+10 18 8 0 0.755371 0
+10 18 9 0 0.755371 0
+10 18 10 0 0.755371 0
+10 18 11 0 0.756348 0
+10 18 12 0 0.758301 0
+10 18 13 0 0.760742 0.165039
+10 18 14 0 0.763672 0.304199
+10 18 15 0 0.765625 0.42041
+10 18 16 0 0.76416 0.53418
+10 18 17 0 0.756836 0.643555
+10 18 18 0 0.743652 0.744141
+10 18 19 0 0.725586 0.831543
+10 18 20 0 0.703125 0.90332
+10 18 21 0 0.666504 0.944824
+10 18 22 0 0.625977 0.96582
+10 18 23 0 0.589844 0.978027
+10 18 24 0 0.559082 0.98584
+10 18 25 0 0.530273 0.992188
+10 18 26 0 0.503418 0.998047
+10 18 27 0 0.479492 1
+10 18 28 0 0.457764 1
+10 18 29 0 0.438721 1
+10 18 30 0 0.421875 1
+10 18 31 0 0.406738 1
+10 19 0 0 0.831543 0
+10 19 1 0 0.831543 0
+10 19 2 0 0.831543 0
+10 19 3 0 0.831543 0
+10 19 4 0 0.831543 0
+10 19 5 0 0.831543 0
+10 19 6 0 0.831543 0
+10 19 7 0 0.831543 0
+10 19 8 0 0.831543 0
+10 19 9 0 0.831543 0
+10 19 10 0 0.831543 0
+10 19 11 0 0.832031 0
+10 19 12 0 0.833496 0
+10 19 13 0 0.836426 0
+10 19 14 0 0.840332 0.246338
+10 19 15 0 0.84375 0.378662
+10 19 16 0 0.844727 0.499268
+10 19 17 0 0.840332 0.61377
+10 19 18 0 0.830078 0.719727
+10 19 19 0 0.8125 0.812988
+10 19 20 0 0.790039 0.889648
+10 19 21 0 0.756836 0.943848
+10 19 22 0 0.716309 0.976074
+10 19 23 0 0.677246 0.994141
+10 19 24 0 0.641602 1
+10 19 25 0 0.606934 1
+10 19 26 0 0.574219 1
+10 19 27 0 0.543945 1
+10 19 28 0 0.516602 1
+10 19 29 0 0.491943 1
+10 19 30 0 0.469727 1
+10 19 31 0 0.449951 1
+10 20 0 0 0.897949 0
+10 20 1 0 0.897949 0
+10 20 2 0 0.897949 0
+10 20 3 0 0.897949 0
+10 20 4 0 0.897949 0
+10 20 5 0 0.897949 0
+10 20 6 0 0.897949 0
+10 20 7 0 0.897949 0
+10 20 8 0 0.897949 0
+10 20 9 0 0.897949 0
+10 20 10 0 0.897949 0
+10 20 11 0 0.897949 0
+10 20 12 0 0.898926 0
+10 20 13 0 0.902344 0
+10 20 14 0 0.90625 0.159912
+10 20 15 0 0.910645 0.329102
+10 20 16 0 0.914062 0.458984
+10 20 17 0 0.913086 0.579102
+10 20 18 0 0.905273 0.689941
+10 20 19 0 0.890625 0.787598
+10 20 20 0 0.869141 0.869629
+10 20 21 0 0.84082 0.935059
+10 20 22 0 0.803711 0.979492
+10 20 23 0 0.76416 1
+10 20 24 0 0.725586 1
+10 20 25 0 0.687012 1
+10 20 26 0 0.648926 1
+10 20 27 0 0.612793 1
+10 20 28 0 0.57959 1
+10 20 29 0 0.548828 1
+10 20 30 0 0.521484 1
+10 20 31 0 0.496338 1
+10 21 0 0 0.95459 0
+10 21 1 0 0.95459 0
+10 21 2 0 0.95459 0
+10 21 3 0 0.95459 0
+10 21 4 0 0.95459 0
+10 21 5 0 0.95459 0
+10 21 6 0 0.95459 0
+10 21 7 0 0.95459 0
+10 21 8 0 0.95459 0
+10 21 9 0 0.95459 0
+10 21 10 0 0.95459 0
+10 21 11 0 0.95459 0
+10 21 12 0 0.955078 0
+10 21 13 0 0.95752 0
+10 21 14 0 0.962402 0
+10 21 15 0 0.967773 0.268555
+10 21 16 0 0.972656 0.413574
+10 21 17 0 0.974121 0.539062
+10 21 18 0 0.970215 0.653809
+10 21 19 0 0.958984 0.756348
+10 21 20 0 0.94043 0.843262
+10 21 21 0 0.916016 0.916504
+10 21 22 0 0.884277 0.972168
+10 21 23 0 0.847168 1
+10 21 24 0 0.808594 1
+10 21 25 0 0.767578 1
+10 21 26 0 0.725586 1
+10 21 27 0 0.68457 1
+10 21 28 0 0.645508 1
+10 21 29 0 0.609375 1
+10 21 30 0 0.576172 1
+10 21 31 0 0.546387 1
+10 22 0 0 1 0
+10 22 1 0 1 0
+10 22 2 0 1 0
+10 22 3 0 1 0
+10 22 4 0 1 0
+10 22 5 0 1 0
+10 22 6 0 1 0
+10 22 7 0 1 0
+10 22 8 0 1 0
+10 22 9 0 1 0
+10 22 10 0 1 0
+10 22 11 0 1 0
+10 22 12 0 1 0
+10 22 13 0 1 0
+10 22 14 0 1 0
+10 22 15 0 1 0.186768
+10 22 16 0 1 0.363037
+10 22 17 0 1 0.49585
+10 22 18 0 1 0.614258
+10 22 19 0 1 0.720215
+10 22 20 0 1 0.812012
+10 22 21 0 0.980469 0.889648
+10 22 22 0 0.953125 0.953613
+10 22 23 0 0.921387 1
+10 22 24 0 0.885254 1
+10 22 25 0 0.844727 1
+10 22 26 0 0.800781 1
+10 22 27 0 0.756348 1
+10 22 28 0 0.712891 1
+10 22 29 0 0.671875 1
+10 22 30 0 0.633301 1
+10 22 31 0 0.598145 1
+10 23 0 0 1 0
+10 23 1 0 1 0
+10 23 2 0 1 0
+10 23 3 0 1 0
+10 23 4 0 1 0
+10 23 5 0 1 0
+10 23 6 0 1 0
+10 23 7 0 1 0
+10 23 8 0 1 0
+10 23 9 0 1 0
+10 23 10 0 1 0
+10 23 11 0 1 0
+10 23 12 0 1 0
+10 23 13 0 1 0
+10 23 14 0 1 0
+10 23 15 0 1 0
+10 23 16 0 1 0.308105
+10 23 17 0 1 0.451416
+10 23 18 0 1 0.57373
+10 23 19 0 1 0.683105
+10 23 20 0 1 0.777832
+10 23 21 0 1 0.859863
+10 23 22 0 1 0.928223
+10 23 23 0 0.981934 0.981934
+10 23 24 0 0.950195 1
+10 23 25 0 0.912598 1
+10 23 26 0 0.869141 1
+10 23 27 0 0.823242 1
+10 23 28 0 0.777344 1
+10 23 29 0 0.731934 1
+10 23 30 0 0.688965 1
+10 23 31 0 0.648926 1
+10 24 0 0 1 0
+10 24 1 0 1 0
+10 24 2 0 1 0
+10 24 3 0 1 0
+10 24 4 0 1 0
+10 24 5 0 1 0
+10 24 6 0 1 0
+10 24 7 0 1 0
+10 24 8 0 1 0
+10 24 9 0 1 0
+10 24 10 0 1 0
+10 24 11 0 1 0
+10 24 12 0 1 0
+10 24 13 0 1 0
+10 24 14 0 1 0
+10 24 15 0 1 0
+10 24 16 0 1 0.245605
+10 24 17 0 1 0.406006
+10 24 18 0 1 0.533203
+10 24 19 0 1 0.644531
+10 24 20 0 1 0.741699
+10 24 21 0 1 0.827148
+10 24 22 0 1 0.899414
+10 24 23 0 1 0.958008
+10 24 24 0 1 1
+10 24 25 0 0.970703 1
+10 24 26 0 0.930176 1
+10 24 27 0 0.884766 1
+10 24 28 0 0.836914 1
+10 24 29 0 0.789062 1
+10 24 30 0 0.742676 1
+10 24 31 0 0.69873 1
+10 25 0 0 1 0
+10 25 1 0 1 0
+10 25 2 0 1 0
+10 25 3 0 1 0
+10 25 4 0 1 0
+10 25 5 0 1 0
+10 25 6 0 1 0
+10 25 7 0 1 0
+10 25 8 0 1 0
+10 25 9 0 1 0
+10 25 10 0 1 0
+10 25 11 0 1 0
+10 25 12 0 1 0
+10 25 13 0 1 0
+10 25 14 0 1 0
+10 25 15 0 1 0
+10 25 16 0 1 0.150635
+10 25 17 0 1 0.354004
+10 25 18 0 1 0.487549
+10 25 19 0 1 0.601562
+10 25 20 0 1 0.701172
+10 25 21 0 1 0.789062
+10 25 22 0 1 0.865234
+10 25 23 0 1 0.927734
+10 25 24 0 1 0.979004
+10 25 25 0 1 1
+10 25 26 0 0.987793 1
+10 25 27 0 0.944824 1
+10 25 28 0 0.897461 1
+10 25 29 0 0.848145 1
+10 25 30 0 0.798828 1
+10 25 31 0 0.751465 1
+10 26 0 0 1 0
+10 26 1 0 1 0
+10 26 2 0 1 0
+10 26 3 0 1 0
+10 26 4 0 1 0
+10 26 5 0 1 0
+10 26 6 0 1 0
+10 26 7 0 1 0
+10 26 8 0 1 0
+10 26 9 0 1 0
+10 26 10 0 1 0
+10 26 11 0 1 0
+10 26 12 0 1 0
+10 26 13 0 1 0
+10 26 14 0 1 0
+10 26 15 0 1 0
+10 26 16 0 1 0
+10 26 17 0 1 0.291748
+10 26 18 0 1 0.437256
+10 26 19 0 1 0.554688
+10 26 20 0 1 0.655762
+10 26 21 0 1 0.746582
+10 26 22 0 1 0.825684
+10 26 23 0 1 0.891602
+10 26 24 0 1 0.946777
+10 26 25 0 1 0.99707
+10 26 26 0 1 1
+10 26 27 0 1 1
+10 26 28 0 0.956543 1
+10 26 29 0 0.907227 1
+10 26 30 0 0.856445 1
+10 26 31 0 0.806641 1
+10 27 0 0 1 0
+10 27 1 0 1 0
+10 27 2 0 1 0
+10 27 3 0 1 0
+10 27 4 0 1 0
+10 27 5 0 1 0
+10 27 6 0 1 0
+10 27 7 0 1 0
+10 27 8 0 1 0
+10 27 9 0 1 0
+10 27 10 0 1 0
+10 27 11 0 1 0
+10 27 12 0 1 0
+10 27 13 0 1 0
+10 27 14 0 1 0
+10 27 15 0 1 0
+10 27 16 0 1 0
+10 27 17 0 1 0.209473
+10 27 18 0 1 0.380859
+10 27 19 0 1 0.503418
+10 27 20 0 1 0.606934
+10 27 21 0 1 0.699219
+10 27 22 0 1 0.780273
+10 27 23 0 1 0.849609
+10 27 24 0 1 0.908691
+10 27 25 0 1 0.962891
+10 27 26 0 1 1
+10 27 27 0 1 1
+10 27 28 0 1 1
+10 27 29 0 0.964355 1
+10 27 30 0 0.913574 1
+10 27 31 0 0.862305 1
+10 28 0 0 1 0
+10 28 1 0 1 0
+10 28 2 0 1 0
+10 28 3 0 1 0
+10 28 4 0 1 0
+10 28 5 0 1 0
+10 28 6 0 1 0
+10 28 7 0 1 0
+10 28 8 0 1 0
+10 28 9 0 1 0
+10 28 10 0 1 0
+10 28 11 0 1 0
+10 28 12 0 1 0
+10 28 13 0 1 0
+10 28 14 0 1 0
+10 28 15 0 1 0
+10 28 16 0 1 0
+10 28 17 0 1 0
+10 28 18 0 1 0.315674
+10 28 19 0 1 0.44751
+10 28 20 0 1 0.553711
+10 28 21 0 1 0.647461
+10 28 22 0 1 0.730469
+10 28 23 0 1 0.802246
+10 28 24 0 1 0.86377
+10 28 25 0 1 0.921875
+10 28 26 0 1 0.975586
+10 28 27 0 1 1
+10 28 28 0 1 1
+10 28 29 0 1 1
+10 28 30 0 0.970215 1
+10 28 31 0 0.918457 1
+10 29 0 0 1 0
+10 29 1 0 1 0
+10 29 2 0 1 0
+10 29 3 0 1 0
+10 29 4 0 1 0
+10 29 5 0 1 0
+10 29 6 0 1 0
+10 29 7 0 1 0
+10 29 8 0 1 0
+10 29 9 0 1 0
+10 29 10 0 1 0
+10 29 11 0 1 0
+10 29 12 0 1 0
+10 29 13 0 1 0
+10 29 14 0 1 0
+10 29 15 0 1 0
+10 29 16 0 1 0
+10 29 17 0 1 0
+10 29 18 0 1 0.233154
+10 29 19 0 1 0.385742
+10 29 20 0 1 0.496582
+10 29 21 0 1 0.591797
+10 29 22 0 1 0.67627
+10 29 23 0 1 0.749512
+10 29 24 0 1 0.812988
+10 29 25 0 1 0.874023
+10 29 26 0 1 0.931641
+10 29 27 0 1 0.984375
+10 29 28 0 1 1
+10 29 29 0 1 1
+10 29 30 0 1 1
+10 29 31 0 0.974609 1
+10 30 0 0 1 0
+10 30 1 0 1 0
+10 30 2 0 1 0
+10 30 3 0 1 0
+10 30 4 0 1 0
+10 30 5 0 1 0
+10 30 6 0 1 0
+10 30 7 0 1 0
+10 30 8 0 1 0
+10 30 9 0 1 0
+10 30 10 0 1 0
+10 30 11 0 1 0
+10 30 12 0 1 0
+10 30 13 0 1 0
+10 30 14 0 1 0
+10 30 15 0 1 0
+10 30 16 0 1 0
+10 30 17 0 1 0
+10 30 18 0 1 0.0701294
+10 30 19 0 1 0.315186
+10 30 20 0 1 0.43457
+10 30 21 0 1 0.532227
+10 30 22 0 1 0.617676
+10 30 23 0 1 0.691895
+10 30 24 0 1 0.756836
+10 30 25 0 1 0.820312
+10 30 26 0 1 0.881348
+10 30 27 0 1 0.938477
+10 30 28 0 1 0.990234
+10 30 29 0 1 1
+10 30 30 0 1 1
+10 30 31 0 1 1
+10 31 0 0 1 0
+10 31 1 0 1 0
+10 31 2 0 1 0
+10 31 3 0 1 0
+10 31 4 0 1 0
+10 31 5 0 1 0
+10 31 6 0 1 0
+10 31 7 0 1 0
+10 31 8 0 1 0
+10 31 9 0 1 0
+10 31 10 0 1 0
+10 31 11 0 1 0
+10 31 12 0 1 0
+10 31 13 0 1 0
+10 31 14 0 1 0
+10 31 15 0 1 0
+10 31 16 0 1 0
+10 31 17 0 1 0
+10 31 18 0 1 0
+10 31 19 0 1 0.226562
+10 31 20 0 1 0.366699
+10 31 21 0 1 0.469238
+10 31 22 0 1 0.556152
+10 31 23 0 1 0.630859
+10 31 24 0 1 0.696777
+10 31 25 0 1 0.761719
+10 31 26 0 1 0.825195
+10 31 27 0 1 0.88623
+10 31 28 0 1 0.943359
+10 31 29 0 1 0.995605
+10 31 30 0 1 1
+10 31 31 0 1 1
+11 0 0 0.365723 0 0
+11 0 1 0.365723 0 0
+11 0 2 0.365723 0 0
+11 0 3 0.365723 0 0
+11 0 4 0.365479 0 0
+11 0 5 0.365479 0 0
+11 0 6 0.365723 0 0
+11 0 7 0.365723 0 0
+11 0 8 0.360352 0 0.0946655
+11 0 9 0.345703 0 0.152222
+11 0 10 0.287842 0 0.181396
+11 0 11 0.255371 0.0465088 0.215698
+11 0 12 0.242798 0.0648193 0.276855
+11 0 13 0.215698 0.0847168 0.348633
+11 0 14 0.154541 0.106384 0.429199
+11 0 15 0 0.129395 0.516113
+11 0 16 0 0.153198 0.607422
+11 0 17 0 0.17627 0.696289
+11 0 18 0 0.19751 0.778809
+11 0 19 0 0.216309 0.851562
+11 0 20 0 0.227661 0.895508
+11 0 21 0 0.229614 0.902832
+11 0 22 0 0.231812 0.911133
+11 0 23 0 0.234009 0.918945
+11 0 24 0 0.236084 0.927246
+11 0 25 0 0.238525 0.936523
+11 0 26 0 0.241211 0.946777
+11 0 27 0 0.244141 0.958496
+11 0 28 0 0.247437 0.971191
+11 0 29 0 0.250977 0.985352
+11 0 30 0 0.254639 0.999512
+11 0 31 0 0.258545 1
+11 1 0 0.365479 0 0
+11 1 1 0.365479 0 0
+11 1 2 0.365479 0 0
+11 1 3 0.365479 0 0
+11 1 4 0.365479 0 0
+11 1 5 0.365479 0 0
+11 1 6 0.365479 0 0
+11 1 7 0.365723 0 0
+11 1 8 0.360352 0 0.0946045
+11 1 9 0.345703 0 0.1521
+11 1 10 0.287842 0 0.181396
+11 1 11 0.255371 0.0470886 0.215698
+11 1 12 0.242798 0.0651855 0.276855
+11 1 13 0.215698 0.085022 0.348633
+11 1 14 0.154419 0.106567 0.429199
+11 1 15 0 0.129517 0.516113
+11 1 16 0 0.15332 0.607422
+11 1 17 0 0.17627 0.696289
+11 1 18 0 0.19751 0.778809
+11 1 19 0 0.216309 0.851562
+11 1 20 0 0.227661 0.895508
+11 1 21 0 0.229736 0.902832
+11 1 22 0 0.231812 0.911133
+11 1 23 0 0.234009 0.918945
+11 1 24 0 0.236084 0.927246
+11 1 25 0 0.238525 0.936523
+11 1 26 0 0.241211 0.946777
+11 1 27 0 0.244141 0.958496
+11 1 28 0 0.247437 0.971191
+11 1 29 0 0.250977 0.985352
+11 1 30 0 0.254639 0.999512
+11 1 31 0 0.258545 1
+11 2 0 0.365234 0 0
+11 2 1 0.365234 0 0
+11 2 2 0.365234 0 0
+11 2 3 0.365234 0 0
+11 2 4 0.365234 0 0
+11 2 5 0.365234 0 0
+11 2 6 0.365234 0 0
+11 2 7 0.365479 0 0
+11 2 8 0.360107 0 0.0944214
+11 2 9 0.345703 0 0.1521
+11 2 10 0.287842 0 0.181396
+11 2 11 0.255371 0.0480652 0.215698
+11 2 12 0.242676 0.0657959 0.276855
+11 2 13 0.215576 0.0854492 0.348633
+11 2 14 0.154297 0.106934 0.429199
+11 2 15 0 0.129761 0.516113
+11 2 16 0 0.153442 0.607422
+11 2 17 0 0.176514 0.696289
+11 2 18 0 0.197632 0.778809
+11 2 19 0 0.216431 0.851562
+11 2 20 0 0.227783 0.895508
+11 2 21 0 0.229736 0.902832
+11 2 22 0 0.231812 0.911133
+11 2 23 0 0.234009 0.918945
+11 2 24 0 0.236206 0.927246
+11 2 25 0 0.238525 0.936523
+11 2 26 0 0.241211 0.946777
+11 2 27 0 0.244141 0.958496
+11 2 28 0 0.247437 0.971191
+11 2 29 0 0.250977 0.985352
+11 2 30 0 0.254639 0.999512
+11 2 31 0 0.258545 1
+11 3 0 0.364746 0 0
+11 3 1 0.364746 0 0
+11 3 2 0.364746 0 0
+11 3 3 0.364746 0 0
+11 3 4 0.364746 0 0
+11 3 5 0.364746 0 0
+11 3 6 0.364746 0 0
+11 3 7 0.36499 0 0
+11 3 8 0.359863 0 0.0941772
+11 3 9 0.345703 0 0.151978
+11 3 10 0.287842 0 0.181396
+11 3 11 0.255127 0.0498352 0.215698
+11 3 12 0.242554 0.0670166 0.276855
+11 3 13 0.215454 0.0863037 0.348633
+11 3 14 0.154053 0.107544 0.429199
+11 3 15 0 0.130249 0.516113
+11 3 16 0 0.153809 0.607422
+11 3 17 0 0.176758 0.696289
+11 3 18 0 0.197876 0.778809
+11 3 19 0 0.216553 0.851562
+11 3 20 0 0.227905 0.895508
+11 3 21 0 0.229858 0.902832
+11 3 22 0 0.231934 0.911133
+11 3 23 0 0.234131 0.918945
+11 3 24 0 0.236206 0.927246
+11 3 25 0 0.238647 0.936523
+11 3 26 0 0.241211 0.946777
+11 3 27 0 0.244141 0.958496
+11 3 28 0 0.247559 0.971191
+11 3 29 0 0.250977 0.985352
+11 3 30 0 0.254883 0.999512
+11 3 31 0 0.258545 1
+11 4 0 0.364014 0 0
+11 4 1 0.364014 0 0
+11 4 2 0.364014 0 0
+11 4 3 0.364014 0 0
+11 4 4 0.364014 0 0
+11 4 5 0.36377 0 0
+11 4 6 0.364014 0 0
+11 4 7 0.364258 0 0
+11 4 8 0.359619 0 0.0936279
+11 4 9 0.345459 0 0.151855
+11 4 10 0.287842 0 0.181519
+11 4 11 0.255127 0.052948 0.215576
+11 4 12 0.24231 0.0691528 0.276855
+11 4 13 0.215088 0.0878296 0.348633
+11 4 14 0.153687 0.108643 0.429199
+11 4 15 0 0.130981 0.516113
+11 4 16 0 0.154419 0.607422
+11 4 17 0 0.177246 0.696289
+11 4 18 0 0.198242 0.778809
+11 4 19 0 0.216919 0.851562
+11 4 20 0 0.228149 0.895508
+11 4 21 0 0.22998 0.902832
+11 4 22 0 0.232056 0.911133
+11 4 23 0 0.234253 0.918945
+11 4 24 0 0.236328 0.927246
+11 4 25 0 0.238647 0.936523
+11 4 26 0 0.241333 0.946777
+11 4 27 0 0.244263 0.958496
+11 4 28 0 0.247559 0.971191
+11 4 29 0 0.251221 0.985352
+11 4 30 0 0.254883 0.999512
+11 4 31 0 0.258545 1
+11 5 0 0.362305 0 0
+11 5 1 0.362305 0 0
+11 5 2 0.362305 0 0
+11 5 3 0.362305 0 0
+11 5 4 0.362305 0 0
+11 5 5 0.362305 0 0
+11 5 6 0.362305 0 0
+11 5 7 0.363037 0 0
+11 5 8 0.358643 0 0.0925903
+11 5 9 0.345215 0 0.151367
+11 5 10 0.288086 0 0.181763
+11 5 11 0.254639 0.0583191 0.215576
+11 5 12 0.241821 0.0730591 0.276855
+11 5 13 0.2146 0.0906982 0.348633
+11 5 14 0.15271 0.110779 0.429199
+11 5 15 0 0.132568 0.516113
+11 5 16 0 0.15564 0.607422
+11 5 17 0 0.178101 0.696289
+11 5 18 0 0.198975 0.778809
+11 5 19 0 0.217407 0.851562
+11 5 20 0 0.228638 0.895508
+11 5 21 0 0.230347 0.902832
+11 5 22 0 0.232422 0.911133
+11 5 23 0 0.234497 0.918945
+11 5 24 0 0.236572 0.927246
+11 5 25 0 0.238892 0.936523
+11 5 26 0 0.241455 0.946777
+11 5 27 0 0.244385 0.958496
+11 5 28 0 0.247681 0.971191
+11 5 29 0 0.251221 0.985352
+11 5 30 0 0.254883 0.999512
+11 5 31 0 0.258789 1
+11 6 0 0.359131 0 0
+11 6 1 0.359131 0 0
+11 6 2 0.359131 0 0
+11 6 3 0.359131 0 0
+11 6 4 0.359131 0 0
+11 6 5 0.358887 0 0
+11 6 6 0.359131 0 0
+11 6 7 0.360107 0 0
+11 6 8 0.356934 0 0.0906372
+11 6 9 0.344238 0 0.150635
+11 6 10 0.288574 0 0.182129
+11 6 11 0.253662 0.0670166 0.215332
+11 6 12 0.240967 0.0797729 0.276611
+11 6 13 0.213501 0.0958252 0.348633
+11 6 14 0.151001 0.114685 0.429199
+11 6 15 0 0.13562 0.516113
+11 6 16 0 0.157959 0.607422
+11 6 17 0 0.17981 0.696289
+11 6 18 0 0.200317 0.778809
+11 6 19 0 0.218506 0.851562
+11 6 20 0 0.229492 0.895508
+11 6 21 0 0.231079 0.902832
+11 6 22 0 0.233032 0.911133
+11 6 23 0 0.234985 0.919434
+11 6 24 0 0.236938 0.927734
+11 6 25 0 0.239258 0.936523
+11 6 26 0 0.241821 0.946777
+11 6 27 0 0.244629 0.958496
+11 6 28 0 0.247925 0.971191
+11 6 29 0 0.251465 0.985352
+11 6 30 0 0.255127 1
+11 6 31 0 0.258789 1
+11 7 0 0.352539 0.0108109 0
+11 7 1 0.352295 0.0115814 0
+11 7 2 0.352295 0.0128021 0
+11 7 3 0.352295 0.0146866 0
+11 7 4 0.352295 0.0175323 0
+11 7 5 0.352295 0.0217133 0
+11 7 6 0.352539 0.0261383 0
+11 7 7 0.354004 0.0258026 0
+11 7 8 0.352539 0 0.086792
+11 7 9 0.342041 0 0.148804
+11 7 10 0.289307 0.0544739 0.182983
+11 7 11 0.252197 0.0804443 0.215088
+11 7 12 0.239136 0.0910034 0.276367
+11 7 13 0.211426 0.104919 0.348389
+11 7 14 0.147583 0.121826 0.429199
+11 7 15 0 0.141113 0.516113
+11 7 16 0 0.162231 0.607422
+11 7 17 0 0.183228 0.696289
+11 7 18 0 0.203003 0.778809
+11 7 19 0 0.220703 0.851562
+11 7 20 0 0.231201 0.895996
+11 7 21 0 0.232422 0.90332
+11 7 22 0 0.234131 0.911133
+11 7 23 0 0.23584 0.919434
+11 7 24 0 0.237793 0.927734
+11 7 25 0 0.239868 0.937012
+11 7 26 0 0.242432 0.947266
+11 7 27 0 0.245117 0.958496
+11 7 28 0 0.248291 0.97168
+11 7 29 0 0.251709 0.985352
+11 7 30 0 0.255371 1
+11 7 31 0 0.259033 1
+11 8 0 0.338379 0.0950928 0
+11 8 1 0.338379 0.0951538 0
+11 8 2 0.338379 0.0952148 0
+11 8 3 0.338135 0.0952759 0
+11 8 4 0.338135 0.09552 0
+11 8 5 0.338135 0.0958862 0
+11 8 6 0.338135 0.0965576 0
+11 8 7 0.340332 0.0969238 0
+11 8 8 0.341553 0.0948486 0.0796509
+11 8 9 0.334717 0.0904541 0.144531
+11 8 10 0.29126 0.0900269 0.184814
+11 8 11 0.248901 0.100281 0.214478
+11 8 12 0.235718 0.108643 0.276123
+11 8 13 0.207153 0.119995 0.348145
+11 8 14 0.140503 0.134277 0.428955
+11 8 15 0 0.151123 0.516113
+11 8 16 0 0.170166 0.607422
+11 8 17 0 0.189453 0.696289
+11 8 18 0 0.208008 0.778809
+11 8 19 0 0.224731 0.851562
+11 8 20 0 0.234497 0.895996
+11 8 21 0 0.235107 0.90332
+11 8 22 0 0.236206 0.911133
+11 8 23 0 0.237671 0.919434
+11 8 24 0 0.239258 0.927734
+11 8 25 0 0.241211 0.937012
+11 8 26 0 0.24353 0.947266
+11 8 27 0 0.246094 0.958496
+11 8 28 0 0.249146 0.97168
+11 8 29 0 0.252441 0.985352
+11 8 30 0 0.256104 1
+11 8 31 0 0.259766 1
+11 9 0 0.310547 0.138672 0
+11 9 1 0.310547 0.138672 0
+11 9 2 0.310547 0.138672 0
+11 9 3 0.310547 0.138794 0
+11 9 4 0.310303 0.138794 0
+11 9 5 0.310303 0.139038 0
+11 9 6 0.310059 0.139282 0
+11 9 7 0.311768 0.139893 0
+11 9 8 0.314453 0.140625 0.0704956
+11 9 9 0.318604 0.141235 0.135742
+11 9 10 0.294922 0.133545 0.18811
+11 9 11 0.242676 0.127686 0.213257
+11 9 12 0.22876 0.134277 0.275146
+11 9 13 0.19873 0.143188 0.347412
+11 9 14 0.125366 0.154541 0.428467
+11 9 15 0 0.168213 0.515625
+11 9 16 0 0.184082 0.607422
+11 9 17 0 0.200806 0.696289
+11 9 18 0 0.217163 0.778809
+11 9 19 0 0.232178 0.851562
+11 9 20 0 0.240723 0.896484
+11 9 21 0 0.240112 0.903809
+11 9 22 0 0.240234 0.911621
+11 9 23 0 0.241089 0.919922
+11 9 24 0 0.242188 0.927734
+11 9 25 0 0.243774 0.937012
+11 9 26 0 0.245728 0.947266
+11 9 27 0 0.248047 0.958984
+11 9 28 0 0.250732 0.97168
+11 9 29 0 0.253906 0.985352
+11 9 30 0 0.25708 1
+11 9 31 0 0.260742 1
+11 10 0 0.272949 0.172729 0
+11 10 1 0.272949 0.172729 0
+11 10 2 0.272949 0.172729 0
+11 10 3 0.272949 0.172729 0
+11 10 4 0.272949 0.172852 0
+11 10 5 0.272949 0.172852 0
+11 10 6 0.272949 0.173096 0
+11 10 7 0.272217 0.173096 0
+11 10 8 0.270508 0.17334 0.0726318
+11 10 9 0.270264 0.175049 0.121155
+11 10 10 0.278076 0.182251 0.180786
+11 10 11 0.230957 0.163208 0.211426
+11 10 12 0.215332 0.168579 0.273682
+11 10 13 0.181885 0.175415 0.346191
+11 10 14 0.0881348 0.18396 0.427734
+11 10 15 0 0.194092 0.515625
+11 10 16 0 0.206299 0.607422
+11 10 17 0 0.21936 0.696289
+11 10 18 0 0.232544 0.778809
+11 10 19 0 0.244995 0.852051
+11 10 20 0 0.251465 0.897461
+11 10 21 0 0.248779 0.904297
+11 10 22 0 0.247437 0.912109
+11 10 23 0 0.24707 0.92041
+11 10 24 0 0.247437 0.928223
+11 10 25 0 0.248291 0.9375
+11 10 26 0 0.249512 0.947754
+11 10 27 0 0.251221 0.958984
+11 10 28 0 0.253662 0.972168
+11 10 29 0 0.256348 0.98584
+11 10 30 0 0.259277 1
+11 10 31 0 0.262451 1
+11 11 0 0.253418 0.225098 0
+11 11 1 0.253418 0.225098 0
+11 11 2 0.253418 0.225098 0
+11 11 3 0.253418 0.225098 0
+11 11 4 0.253418 0.225098 0
+11 11 5 0.253418 0.22522 0
+11 11 6 0.253418 0.225342 0
+11 11 7 0.252686 0.225342 0
+11 11 8 0.249023 0.223877 0.0673218
+11 11 9 0.241943 0.221191 0.117249
+11 11 10 0.229492 0.216431 0.163086
+11 11 11 0.20813 0.20813 0.20813
+11 11 12 0.188599 0.21228 0.27124
+11 11 13 0.145386 0.217651 0.344238
+11 11 14 0 0.223633 0.426514
+11 11 15 0 0.230591 0.514648
+11 11 16 0 0.23877 0.606934
+11 11 17 0 0.247559 0.696289
+11 11 18 0 0.256592 0.779297
+11 11 19 0 0.265625 0.852051
+11 11 20 0 0.269043 0.898926
+11 11 21 0 0.263184 0.905762
+11 11 22 0 0.259521 0.913086
+11 11 23 0 0.257324 0.921387
+11 11 24 0 0.256348 0.929199
+11 11 25 0 0.255859 0.938477
+11 11 26 0 0.256104 0.948242
+11 11 27 0 0.25708 0.959473
+11 11 28 0 0.258545 0.972656
+11 11 29 0 0.260742 0.986328
+11 11 30 0 0.262939 1
+11 11 31 0 0.265625 1
+11 12 0 0.197021 0.275391 0
+11 12 1 0.197021 0.275391 0
+11 12 2 0.197021 0.275391 0
+11 12 3 0.197021 0.275391 0
+11 12 4 0.197021 0.275391 0
+11 12 5 0.197021 0.275391 0
+11 12 6 0.197021 0.275635 0
+11 12 7 0.197144 0.275879 0
+11 12 8 0.194092 0.274414 0
+11 12 9 0.187256 0.271484 0.0940552
+11 12 10 0.175171 0.266846 0.148071
+11 12 11 0.156616 0.263916 0.202271
+11 12 12 0.122986 0.266846 0.266846
+11 12 13 0 0.270752 0.341064
+11 12 14 0 0.274902 0.423828
+11 12 15 0 0.278809 0.513184
+11 12 16 0 0.283203 0.605957
+11 12 17 0 0.287354 0.696289
+11 12 18 0 0.291992 0.779297
+11 12 19 0 0.296387 0.852539
+11 12 20 0 0.296143 0.900879
+11 12 21 0 0.285645 0.907715
+11 12 22 0 0.27832 0.915039
+11 12 23 0 0.273682 0.922852
+11 12 24 0 0.270508 0.930664
+11 12 25 0 0.268311 0.939453
+11 12 26 0 0.26709 0.949707
+11 12 27 0 0.266357 0.960938
+11 12 28 0 0.266846 0.973633
+11 12 29 0 0.267822 0.987305
+11 12 30 0 0.269287 1
+11 12 31 0 0.270996 1
+11 13 0 0 0.332764 0
+11 13 1 0 0.332764 0
+11 13 2 0 0.332764 0
+11 13 3 0 0.332764 0
+11 13 4 0 0.332764 0
+11 13 5 0 0.332764 0
+11 13 6 0 0.332764 0
+11 13 7 0 0.333008 0
+11 13 8 0 0.333008 0
+11 13 9 0 0.332031 0.0301514
+11 13 10 0 0.331055 0.126831
+11 13 11 0 0.331055 0.191284
+11 13 12 0 0.332764 0.259521
+11 13 13 0 0.335205 0.335205
+11 13 14 0 0.337646 0.419678
+11 13 15 0 0.339111 0.510254
+11 13 16 0 0.340088 0.604492
+11 13 17 0 0.340088 0.695312
+11 13 18 0 0.3396 0.779297
+11 13 19 0 0.339111 0.853027
+11 13 20 0 0.334717 0.904297
+11 13 21 0 0.318359 0.910645
+11 13 22 0 0.306396 0.917969
+11 13 23 0 0.298096 0.925293
+11 13 24 0 0.291992 0.933105
+11 13 25 0 0.287354 0.941895
+11 13 26 0 0.283691 0.95166
+11 13 27 0 0.281006 0.962402
+11 13 28 0 0.279541 0.975098
+11 13 29 0 0.279053 0.988281
+11 13 30 0 0.279053 1
+11 13 31 0 0.279541 1
+11 14 0 0 0.407227 0
+11 14 1 0 0.407471 0
+11 14 2 0 0.407471 0
+11 14 3 0 0.407471 0
+11 14 4 0 0.407471 0
+11 14 5 0 0.407471 0
+11 14 6 0 0.407471 0
+11 14 7 0 0.407471 0
+11 14 8 0 0.407715 0
+11 14 9 0 0.407959 0
+11 14 10 0 0.407959 0.0791016
+11 14 11 0 0.408447 0.169678
+11 14 12 0 0.409424 0.245728
+11 14 13 0 0.410889 0.325195
+11 14 14 0 0.411865 0.411865
+11 14 15 0 0.411621 0.504395
+11 14 16 0 0.409912 0.601074
+11 14 17 0 0.405762 0.693848
+11 14 18 0 0.400635 0.778809
+11 14 19 0 0.39502 0.853516
+11 14 20 0 0.386719 0.90918
+11 14 21 0 0.363281 0.916016
+11 14 22 0 0.345703 0.922852
+11 14 23 0 0.332764 0.929688
+11 14 24 0 0.322998 0.937012
+11 14 25 0 0.314697 0.945312
+11 14 26 0 0.308105 0.955078
+11 14 27 0 0.302734 0.965332
+11 14 28 0 0.298828 0.977539
+11 14 29 0 0.295898 0.990723
+11 14 30 0 0.293701 1
+11 14 31 0 0.29248 1
+11 15 0 0 0.491455 0
+11 15 1 0 0.491455 0
+11 15 2 0 0.491455 0
+11 15 3 0 0.491455 0
+11 15 4 0 0.491455 0
+11 15 5 0 0.491455 0
+11 15 6 0 0.491455 0
+11 15 7 0 0.491699 0
+11 15 8 0 0.491699 0
+11 15 9 0 0.491943 0
+11 15 10 0 0.492432 0
+11 15 11 0 0.493164 0.124939
+11 15 12 0 0.494385 0.221069
+11 15 13 0 0.495361 0.308105
+11 15 14 0 0.49585 0.398926
+11 15 15 0 0.494629 0.494873
+11 15 16 0 0.490967 0.594238
+11 15 17 0 0.483887 0.689453
+11 15 18 0 0.474365 0.776855
+11 15 19 0 0.464111 0.853027
+11 15 20 0 0.452637 0.915039
+11 15 21 0 0.421631 0.922852
+11 15 22 0 0.397217 0.930176
+11 15 23 0 0.378906 0.937012
+11 15 24 0 0.364502 0.943848
+11 15 25 0 0.352295 0.95166
+11 15 26 0 0.341553 0.960449
+11 15 27 0 0.332764 0.970215
+11 15 28 0 0.325439 0.981934
+11 15 29 0 0.31958 0.994141
+11 15 30 0 0.314941 1
+11 15 31 0 0.311035 1
+11 16 0 0 0.581543 0
+11 16 1 0 0.581543 0
+11 16 2 0 0.581543 0
+11 16 3 0 0.581543 0
+11 16 4 0 0.581543 0
+11 16 5 0 0.581543 0
+11 16 6 0 0.581543 0
+11 16 7 0 0.581543 0
+11 16 8 0 0.581543 0
+11 16 9 0 0.582031 0
+11 16 10 0 0.582031 0
+11 16 11 0 0.583008 0
+11 16 12 0 0.584473 0.17688
+11 16 13 0 0.585938 0.280029
+11 16 14 0 0.586914 0.378174
+11 16 15 0 0.585938 0.47876
+11 16 16 0 0.581543 0.581543
+11 16 17 0 0.572754 0.681152
+11 16 18 0 0.560059 0.771484
+11 16 19 0 0.54541 0.850098
+11 16 20 0 0.529785 0.915039
+11 16 21 0 0.493896 0.931641
+11 16 22 0 0.462646 0.94043
+11 16 23 0 0.437988 0.947266
+11 16 24 0 0.418457 0.953613
+11 16 25 0 0.401123 0.960938
+11 16 26 0 0.385742 0.96875
+11 16 27 0 0.372314 0.978027
+11 16 28 0 0.361084 0.988281
+11 16 29 0 0.351562 1
+11 16 30 0 0.343262 1
+11 16 31 0 0.336426 1
+11 17 0 0 0.671387 0
+11 17 1 0 0.671387 0
+11 17 2 0 0.671387 0
+11 17 3 0 0.671387 0
+11 17 4 0 0.671387 0
+11 17 5 0 0.671387 0
+11 17 6 0 0.671387 0
+11 17 7 0 0.671387 0
+11 17 8 0 0.671387 0
+11 17 9 0 0.671387 0
+11 17 10 0 0.671875 0
+11 17 11 0 0.672852 0
+11 17 12 0 0.674316 0.0681763
+11 17 13 0 0.676758 0.23645
+11 17 14 0 0.678223 0.347168
+11 17 15 0 0.678223 0.454102
+11 17 16 0 0.674805 0.562012
+11 17 17 0 0.666016 0.666016
+11 17 18 0 0.651855 0.76123
+11 17 19 0 0.634277 0.84375
+11 17 20 0 0.614746 0.911621
+11 17 21 0 0.577148 0.939941
+11 17 22 0 0.540039 0.953125
+11 17 23 0 0.509277 0.961426
+11 17 24 0 0.483887 0.967773
+11 17 25 0 0.460938 0.974609
+11 17 26 0 0.440186 0.981445
+11 17 27 0 0.421631 0.989258
+11 17 28 0 0.405518 0.998535
+11 17 29 0 0.391602 1
+11 17 30 0 0.379395 1
+11 17 31 0 0.368652 1
+11 18 0 0 0.755859 0
+11 18 1 0 0.755859 0
+11 18 2 0 0.755859 0
+11 18 3 0 0.755859 0
+11 18 4 0 0.755859 0
+11 18 5 0 0.755859 0
+11 18 6 0 0.755859 0
+11 18 7 0 0.755859 0
+11 18 8 0 0.755859 0
+11 18 9 0 0.755859 0
+11 18 10 0 0.755859 0
+11 18 11 0 0.756348 0
+11 18 12 0 0.758789 0
+11 18 13 0 0.76123 0.164307
+11 18 14 0 0.76416 0.303955
+11 18 15 0 0.765625 0.42041
+11 18 16 0 0.76416 0.53418
+11 18 17 0 0.757324 0.643555
+11 18 18 0 0.744141 0.744141
+11 18 19 0 0.725586 0.832031
+11 18 20 0 0.703613 0.903809
+11 18 21 0 0.666992 0.945312
+11 18 22 0 0.626465 0.966309
+11 18 23 0 0.590332 0.978516
+11 18 24 0 0.55957 0.98584
+11 18 25 0 0.530273 0.992676
+11 18 26 0 0.503906 0.998535
+11 18 27 0 0.479492 1
+11 18 28 0 0.458008 1
+11 18 29 0 0.438965 1
+11 18 30 0 0.421875 1
+11 18 31 0 0.406982 1
+11 19 0 0 0.832031 0
+11 19 1 0 0.832031 0
+11 19 2 0 0.832031 0
+11 19 3 0 0.832031 0
+11 19 4 0 0.832031 0
+11 19 5 0 0.832031 0
+11 19 6 0 0.832031 0
+11 19 7 0 0.832031 0
+11 19 8 0 0.832031 0
+11 19 9 0 0.832031 0
+11 19 10 0 0.83252 0
+11 19 11 0 0.83252 0
+11 19 12 0 0.833984 0
+11 19 13 0 0.836914 0
+11 19 14 0 0.84082 0.245972
+11 19 15 0 0.84375 0.378418
+11 19 16 0 0.844727 0.499268
+11 19 17 0 0.84082 0.61377
+11 19 18 0 0.830078 0.720215
+11 19 19 0 0.8125 0.812988
+11 19 20 0 0.790039 0.890137
+11 19 21 0 0.756836 0.944336
+11 19 22 0 0.716797 0.976562
+11 19 23 0 0.677246 0.994629
+11 19 24 0 0.641602 1
+11 19 25 0 0.607422 1
+11 19 26 0 0.574707 1
+11 19 27 0 0.544434 1
+11 19 28 0 0.516602 1
+11 19 29 0 0.491943 1
+11 19 30 0 0.469727 1
+11 19 31 0 0.450195 1
+11 20 0 0 0.898438 0
+11 20 1 0 0.898438 0
+11 20 2 0 0.898438 0
+11 20 3 0 0.898438 0
+11 20 4 0 0.898438 0
+11 20 5 0 0.898438 0
+11 20 6 0 0.898438 0
+11 20 7 0 0.898438 0
+11 20 8 0 0.898438 0
+11 20 9 0 0.898438 0
+11 20 10 0 0.898438 0
+11 20 11 0 0.898926 0
+11 20 12 0 0.899414 0
+11 20 13 0 0.902832 0
+11 20 14 0 0.906738 0.159302
+11 20 15 0 0.911133 0.329102
+11 20 16 0 0.914062 0.458984
+11 20 17 0 0.913086 0.579102
+11 20 18 0 0.905762 0.689941
+11 20 19 0 0.890625 0.787598
+11 20 20 0 0.869629 0.869629
+11 20 21 0 0.84082 0.935059
+11 20 22 0 0.804199 0.979492
+11 20 23 0 0.76416 1
+11 20 24 0 0.726074 1
+11 20 25 0 0.687012 1
+11 20 26 0 0.648926 1
+11 20 27 0 0.612793 1
+11 20 28 0 0.57959 1
+11 20 29 0 0.548828 1
+11 20 30 0 0.521484 1
+11 20 31 0 0.496582 1
+11 21 0 0 0.955078 0
+11 21 1 0 0.955078 0
+11 21 2 0 0.955078 0
+11 21 3 0 0.955078 0
+11 21 4 0 0.955078 0
+11 21 5 0 0.955078 0
+11 21 6 0 0.955078 0
+11 21 7 0 0.955078 0
+11 21 8 0 0.955078 0
+11 21 9 0 0.955078 0
+11 21 10 0 0.955078 0
+11 21 11 0 0.955566 0
+11 21 12 0 0.955566 0
+11 21 13 0 0.958008 0
+11 21 14 0 0.962891 0
+11 21 15 0 0.968262 0.268311
+11 21 16 0 0.972656 0.413574
+11 21 17 0 0.974609 0.539062
+11 21 18 0 0.970703 0.653809
+11 21 19 0 0.958984 0.756348
+11 21 20 0 0.940918 0.843262
+11 21 21 0 0.916016 0.916504
+11 21 22 0 0.884277 0.972168
+11 21 23 0 0.847656 1
+11 21 24 0 0.809082 1
+11 21 25 0 0.767578 1
+11 21 26 0 0.725586 1
+11 21 27 0 0.68457 1
+11 21 28 0 0.645996 1
+11 21 29 0 0.609375 1
+11 21 30 0 0.57666 1
+11 21 31 0 0.546387 1
+11 22 0 0 1 0
+11 22 1 0 1 0
+11 22 2 0 1 0
+11 22 3 0 1 0
+11 22 4 0 1 0
+11 22 5 0 1 0
+11 22 6 0 1 0
+11 22 7 0 1 0
+11 22 8 0 1 0
+11 22 9 0 1 0
+11 22 10 0 1 0
+11 22 11 0 1 0
+11 22 12 0 1 0
+11 22 13 0 1 0
+11 22 14 0 1 0
+11 22 15 0 1 0.186401
+11 22 16 0 1 0.362793
+11 22 17 0 1 0.49585
+11 22 18 0 1 0.614746
+11 22 19 0 1 0.720703
+11 22 20 0 1 0.812012
+11 22 21 0 0.980469 0.890137
+11 22 22 0 0.953613 0.953613
+11 22 23 0 0.921387 1
+11 22 24 0 0.885254 1
+11 22 25 0 0.844727 1
+11 22 26 0 0.800781 1
+11 22 27 0 0.756348 1
+11 22 28 0 0.712891 1
+11 22 29 0 0.671875 1
+11 22 30 0 0.633301 1
+11 22 31 0 0.598145 1
+11 23 0 0 1 0
+11 23 1 0 1 0
+11 23 2 0 1 0
+11 23 3 0 1 0
+11 23 4 0 1 0
+11 23 5 0 1 0
+11 23 6 0 1 0
+11 23 7 0 1 0
+11 23 8 0 1 0
+11 23 9 0 1 0
+11 23 10 0 1 0
+11 23 11 0 1 0
+11 23 12 0 1 0
+11 23 13 0 1 0
+11 23 14 0 1 0
+11 23 15 0 1 0
+11 23 16 0 1 0.308105
+11 23 17 0 1 0.451416
+11 23 18 0 1 0.574219
+11 23 19 0 1 0.683105
+11 23 20 0 1 0.777832
+11 23 21 0 1 0.859863
+11 23 22 0 1 0.928223
+11 23 23 0 0.981934 0.982422
+11 23 24 0 0.950684 1
+11 23 25 0 0.912598 1
+11 23 26 0 0.869629 1
+11 23 27 0 0.82373 1
+11 23 28 0 0.777344 1
+11 23 29 0 0.731934 1
+11 23 30 0 0.688965 1
+11 23 31 0 0.648926 1
+11 24 0 0 1 0
+11 24 1 0 1 0
+11 24 2 0 1 0
+11 24 3 0 1 0
+11 24 4 0 1 0
+11 24 5 0 1 0
+11 24 6 0 1 0
+11 24 7 0 1 0
+11 24 8 0 1 0
+11 24 9 0 1 0
+11 24 10 0 1 0
+11 24 11 0 1 0
+11 24 12 0 1 0
+11 24 13 0 1 0
+11 24 14 0 1 0
+11 24 15 0 1 0
+11 24 16 0 1 0.245483
+11 24 17 0 1 0.406006
+11 24 18 0 1 0.533203
+11 24 19 0 1 0.644531
+11 24 20 0 1 0.741699
+11 24 21 0 1 0.827148
+11 24 22 0 1 0.899414
+11 24 23 0 1 0.958008
+11 24 24 0 1 1
+11 24 25 0 0.970703 1
+11 24 26 0 0.930176 1
+11 24 27 0 0.884766 1
+11 24 28 0 0.836914 1
+11 24 29 0 0.789062 1
+11 24 30 0 0.742676 1
+11 24 31 0 0.69873 1
+11 25 0 0 1 0
+11 25 1 0 1 0
+11 25 2 0 1 0
+11 25 3 0 1 0
+11 25 4 0 1 0
+11 25 5 0 1 0
+11 25 6 0 1 0
+11 25 7 0 1 0
+11 25 8 0 1 0
+11 25 9 0 1 0
+11 25 10 0 1 0
+11 25 11 0 1 0
+11 25 12 0 1 0
+11 25 13 0 1 0
+11 25 14 0 1 0
+11 25 15 0 1 0
+11 25 16 0 1 0.150269
+11 25 17 0 1 0.354004
+11 25 18 0 1 0.487549
+11 25 19 0 1 0.601562
+11 25 20 0 1 0.701172
+11 25 21 0 1 0.789551
+11 25 22 0 1 0.865234
+11 25 23 0 1 0.927734
+11 25 24 0 1 0.979492
+11 25 25 0 1 1
+11 25 26 0 0.987793 1
+11 25 27 0 0.944824 1
+11 25 28 0 0.897461 1
+11 25 29 0 0.848145 1
+11 25 30 0 0.798828 1
+11 25 31 0 0.751465 1
+11 26 0 0 1 0
+11 26 1 0 1 0
+11 26 2 0 1 0
+11 26 3 0 1 0
+11 26 4 0 1 0
+11 26 5 0 1 0
+11 26 6 0 1 0
+11 26 7 0 1 0
+11 26 8 0 1 0
+11 26 9 0 1 0
+11 26 10 0 1 0
+11 26 11 0 1 0
+11 26 12 0 1 0
+11 26 13 0 1 0
+11 26 14 0 1 0
+11 26 15 0 1 0
+11 26 16 0 1 0
+11 26 17 0 1 0.291748
+11 26 18 0 1 0.437256
+11 26 19 0 1 0.554688
+11 26 20 0 1 0.65625
+11 26 21 0 1 0.746582
+11 26 22 0 1 0.825684
+11 26 23 0 1 0.89209
+11 26 24 0 1 0.947266
+11 26 25 0 1 0.997559
+11 26 26 0 1 1
+11 26 27 0 1 1
+11 26 28 0 0.956543 1
+11 26 29 0 0.907227 1
+11 26 30 0 0.856445 1
+11 26 31 0 0.806641 1
+11 27 0 0 1 0
+11 27 1 0 1 0
+11 27 2 0 1 0
+11 27 3 0 1 0
+11 27 4 0 1 0
+11 27 5 0 1 0
+11 27 6 0 1 0
+11 27 7 0 1 0
+11 27 8 0 1 0
+11 27 9 0 1 0
+11 27 10 0 1 0
+11 27 11 0 1 0
+11 27 12 0 1 0
+11 27 13 0 1 0
+11 27 14 0 1 0
+11 27 15 0 1 0
+11 27 16 0 1 0
+11 27 17 0 1 0.209229
+11 27 18 0 1 0.380859
+11 27 19 0 1 0.503418
+11 27 20 0 1 0.606934
+11 27 21 0 1 0.699219
+11 27 22 0 1 0.780762
+11 27 23 0 1 0.849609
+11 27 24 0 1 0.908691
+11 27 25 0 1 0.962891
+11 27 26 0 1 1
+11 27 27 0 1 1
+11 27 28 0 1 1
+11 27 29 0 0.964355 1
+11 27 30 0 0.914062 1
+11 27 31 0 0.862305 1
+11 28 0 0 1 0
+11 28 1 0 1 0
+11 28 2 0 1 0
+11 28 3 0 1 0
+11 28 4 0 1 0
+11 28 5 0 1 0
+11 28 6 0 1 0
+11 28 7 0 1 0
+11 28 8 0 1 0
+11 28 9 0 1 0
+11 28 10 0 1 0
+11 28 11 0 1 0
+11 28 12 0 1 0
+11 28 13 0 1 0
+11 28 14 0 1 0
+11 28 15 0 1 0
+11 28 16 0 1 0
+11 28 17 0 1 0
+11 28 18 0 1 0.315674
+11 28 19 0 1 0.44751
+11 28 20 0 1 0.553711
+11 28 21 0 1 0.647461
+11 28 22 0 1 0.730957
+11 28 23 0 1 0.802246
+11 28 24 0 1 0.86377
+11 28 25 0 1 0.921875
+11 28 26 0 1 0.975586
+11 28 27 0 1 1
+11 28 28 0 1 1
+11 28 29 0 1 1
+11 28 30 0 0.970215 1
+11 28 31 0 0.918945 1
+11 29 0 0 1 0
+11 29 1 0 1 0
+11 29 2 0 1 0
+11 29 3 0 1 0
+11 29 4 0 1 0
+11 29 5 0 1 0
+11 29 6 0 1 0
+11 29 7 0 1 0
+11 29 8 0 1 0
+11 29 9 0 1 0
+11 29 10 0 1 0
+11 29 11 0 1 0
+11 29 12 0 1 0
+11 29 13 0 1 0
+11 29 14 0 1 0
+11 29 15 0 1 0
+11 29 16 0 1 0
+11 29 17 0 1 0
+11 29 18 0 1 0.233032
+11 29 19 0 1 0.385742
+11 29 20 0 1 0.496582
+11 29 21 0 1 0.591797
+11 29 22 0 1 0.67627
+11 29 23 0 1 0.749512
+11 29 24 0 1 0.812988
+11 29 25 0 1 0.874512
+11 29 26 0 1 0.932129
+11 29 27 0 1 0.984863
+11 29 28 0 1 1
+11 29 29 0 1 1
+11 29 30 0 1 1
+11 29 31 0 0.975098 1
+11 30 0 0 1 0
+11 30 1 0 1 0
+11 30 2 0 1 0
+11 30 3 0 1 0
+11 30 4 0 1 0
+11 30 5 0 1 0
+11 30 6 0 1 0
+11 30 7 0 1 0
+11 30 8 0 1 0
+11 30 9 0 1 0
+11 30 10 0 1 0
+11 30 11 0 1 0
+11 30 12 0 1 0
+11 30 13 0 1 0
+11 30 14 0 1 0
+11 30 15 0 1 0
+11 30 16 0 1 0
+11 30 17 0 1 0
+11 30 18 0 1 0.069458
+11 30 19 0 1 0.315186
+11 30 20 0 1 0.43457
+11 30 21 0 1 0.532715
+11 30 22 0 1 0.618164
+11 30 23 0 1 0.691895
+11 30 24 0 1 0.757324
+11 30 25 0 1 0.820312
+11 30 26 0 1 0.881348
+11 30 27 0 1 0.938477
+11 30 28 0 1 0.990723
+11 30 29 0 1 1
+11 30 30 0 1 1
+11 30 31 0 1 1
+11 31 0 0 1 0
+11 31 1 0 1 0
+11 31 2 0 1 0
+11 31 3 0 1 0
+11 31 4 0 1 0
+11 31 5 0 1 0
+11 31 6 0 1 0
+11 31 7 0 1 0
+11 31 8 0 1 0
+11 31 9 0 1 0
+11 31 10 0 1 0
+11 31 11 0 1 0
+11 31 12 0 1 0
+11 31 13 0 1 0
+11 31 14 0 1 0
+11 31 15 0 1 0
+11 31 16 0 1 0
+11 31 17 0 1 0
+11 31 18 0 1 0
+11 31 19 0 1 0.22644
+11 31 20 0 1 0.366699
+11 31 21 0 1 0.469238
+11 31 22 0 1 0.556152
+11 31 23 0 1 0.630859
+11 31 24 0 1 0.696777
+11 31 25 0 1 0.761719
+11 31 26 0 1 0.825195
+11 31 27 0 1 0.88623
+11 31 28 0 1 0.943359
+11 31 29 0 1 0.995605
+11 31 30 0 1 1
+11 31 31 0 1 1
+12 0 0 0.449707 0 0
+12 0 1 0.449707 0 0
+12 0 2 0.449707 0 0
+12 0 3 0.449707 0 0
+12 0 4 0.449707 0 0
+12 0 5 0.449707 0 0
+12 0 6 0.449707 0 0
+12 0 7 0.451904 0 0
+12 0 8 0.457764 0 0
+12 0 9 0.45752 0 0.131226
+12 0 10 0.437988 0 0.199829
+12 0 11 0.365479 0 0.233521
+12 0 12 0.327881 0.0591125 0.276855
+12 0 13 0.310791 0.0808105 0.348145
+12 0 14 0.278076 0.103699 0.428955
+12 0 15 0.214111 0.127441 0.516602
+12 0 16 0 0.151978 0.608398
+12 0 17 0 0.175415 0.697754
+12 0 18 0 0.196899 0.779785
+12 0 19 0 0.215942 0.853027
+12 0 20 0 0.228027 0.899414
+12 0 21 0 0.230103 0.90625
+12 0 22 0 0.2323 0.914062
+12 0 23 0 0.234375 0.922363
+12 0 24 0 0.236572 0.930176
+12 0 25 0 0.238892 0.939453
+12 0 26 0 0.241577 0.949219
+12 0 27 0 0.244507 0.960449
+12 0 28 0 0.247803 0.973145
+12 0 29 0 0.251221 0.986816
+12 0 30 0 0.254883 1
+12 0 31 0 0.258789 1
+12 1 0 0.449707 0 0
+12 1 1 0.449707 0 0
+12 1 2 0.449707 0 0
+12 1 3 0.449707 0 0
+12 1 4 0.449707 0 0
+12 1 5 0.449707 0 0
+12 1 6 0.449707 0 0
+12 1 7 0.45166 0 0
+12 1 8 0.457764 0 0
+12 1 9 0.457275 0 0.131104
+12 1 10 0.437988 0 0.199829
+12 1 11 0.365479 0 0.233521
+12 1 12 0.327881 0.0595398 0.276855
+12 1 13 0.310791 0.0811157 0.348145
+12 1 14 0.278076 0.103882 0.428955
+12 1 15 0.213989 0.127563 0.516602
+12 1 16 0 0.151978 0.608398
+12 1 17 0 0.175537 0.697754
+12 1 18 0 0.197021 0.779785
+12 1 19 0 0.215942 0.853027
+12 1 20 0 0.228149 0.899414
+12 1 21 0 0.230225 0.90625
+12 1 22 0 0.2323 0.914062
+12 1 23 0 0.234497 0.922363
+12 1 24 0 0.236572 0.930176
+12 1 25 0 0.239014 0.939453
+12 1 26 0 0.241577 0.949219
+12 1 27 0 0.244507 0.960449
+12 1 28 0 0.247803 0.973145
+12 1 29 0 0.251221 0.986816
+12 1 30 0 0.254883 1
+12 1 31 0 0.258789 1
+12 2 0 0.449707 0 0
+12 2 1 0.449707 0 0
+12 2 2 0.449707 0 0
+12 2 3 0.449707 0 0
+12 2 4 0.449707 0 0
+12 2 5 0.449707 0 0
+12 2 6 0.449463 0 0
+12 2 7 0.45166 0 0
+12 2 8 0.45752 0 0
+12 2 9 0.457275 0 0.131104
+12 2 10 0.437988 0 0.199829
+12 2 11 0.365479 0 0.233521
+12 2 12 0.327637 0.0602722 0.276855
+12 2 13 0.310791 0.081604 0.348145
+12 2 14 0.278076 0.104187 0.428955
+12 2 15 0.213989 0.127808 0.516602
+12 2 16 0 0.152222 0.608398
+12 2 17 0 0.175659 0.697754
+12 2 18 0 0.197144 0.779785
+12 2 19 0 0.216064 0.853027
+12 2 20 0 0.228149 0.899414
+12 2 21 0 0.230225 0.90625
+12 2 22 0 0.2323 0.914062
+12 2 23 0 0.234497 0.922363
+12 2 24 0 0.236572 0.930176
+12 2 25 0 0.239014 0.939453
+12 2 26 0 0.241577 0.949219
+12 2 27 0 0.244507 0.960449
+12 2 28 0 0.247803 0.973145
+12 2 29 0 0.251221 0.986816
+12 2 30 0 0.255127 1
+12 2 31 0 0.258789 1
+12 3 0 0.449463 0 0
+12 3 1 0.449463 0 0
+12 3 2 0.449463 0 0
+12 3 3 0.449463 0 0
+12 3 4 0.449463 0 0
+12 3 5 0.449463 0 0
+12 3 6 0.449463 0 0
+12 3 7 0.451416 0 0
+12 3 8 0.45752 0 0
+12 3 9 0.457275 0 0.130859
+12 3 10 0.437744 0 0.199707
+12 3 11 0.365479 0 0.233643
+12 3 12 0.327637 0.061615 0.276855
+12 3 13 0.310791 0.0824585 0.348145
+12 3 14 0.277832 0.104858 0.428955
+12 3 15 0.213745 0.128296 0.516602
+12 3 16 0 0.152588 0.608398
+12 3 17 0 0.175903 0.697754
+12 3 18 0 0.197388 0.779785
+12 3 19 0 0.216187 0.853027
+12 3 20 0 0.228271 0.899414
+12 3 21 0 0.230347 0.90625
+12 3 22 0 0.232422 0.914062
+12 3 23 0 0.234497 0.922363
+12 3 24 0 0.236694 0.930176
+12 3 25 0 0.239014 0.939453
+12 3 26 0 0.241699 0.949219
+12 3 27 0 0.244507 0.960449
+12 3 28 0 0.247803 0.973145
+12 3 29 0 0.251465 0.986816
+12 3 30 0 0.255127 1
+12 3 31 0 0.258789 1
+12 4 0 0.449219 0 0
+12 4 1 0.449219 0 0
+12 4 2 0.449219 0 0
+12 4 3 0.449219 0 0
+12 4 4 0.449219 0 0
+12 4 5 0.449219 0 0
+12 4 6 0.448975 0 0
+12 4 7 0.451172 0 0
+12 4 8 0.457275 0 0
+12 4 9 0.457031 0 0.130493
+12 4 10 0.437744 0 0.199585
+12 4 11 0.365479 0 0.233643
+12 4 12 0.327393 0.0640259 0.276611
+12 4 13 0.310547 0.0841064 0.348145
+12 4 14 0.277588 0.106018 0.428955
+12 4 15 0.213501 0.12915 0.516602
+12 4 16 0 0.153198 0.608398
+12 4 17 0 0.176392 0.697754
+12 4 18 0 0.197754 0.779785
+12 4 19 0 0.216553 0.853027
+12 4 20 0 0.228516 0.899414
+12 4 21 0 0.230469 0.906738
+12 4 22 0 0.232544 0.914062
+12 4 23 0 0.234741 0.922363
+12 4 24 0 0.236816 0.930176
+12 4 25 0 0.239136 0.939453
+12 4 26 0 0.241699 0.949219
+12 4 27 0 0.244629 0.960449
+12 4 28 0 0.247925 0.973145
+12 4 29 0 0.251465 0.986816
+12 4 30 0 0.255127 1
+12 4 31 0 0.258789 1
+12 5 0 0.448486 0 0
+12 5 1 0.448486 0 0
+12 5 2 0.448486 0 0
+12 5 3 0.448486 0 0
+12 5 4 0.448486 0 0
+12 5 5 0.448486 0 0
+12 5 6 0.448486 0 0
+12 5 7 0.450684 0 0
+12 5 8 0.456787 0 0
+12 5 9 0.456543 0 0.129883
+12 5 10 0.437744 0 0.199341
+12 5 11 0.365479 0 0.233765
+12 5 12 0.327148 0.0683594 0.276611
+12 5 13 0.310059 0.0871582 0.348145
+12 5 14 0.277344 0.108215 0.428955
+12 5 15 0.213013 0.130859 0.516602
+12 5 16 0 0.154419 0.608398
+12 5 17 0 0.177368 0.697754
+12 5 18 0 0.198486 0.779785
+12 5 19 0 0.217163 0.853027
+12 5 20 0 0.229004 0.899414
+12 5 21 0 0.230835 0.906738
+12 5 22 0 0.23291 0.914062
+12 5 23 0 0.234985 0.922363
+12 5 24 0 0.237061 0.930176
+12 5 25 0 0.23938 0.939453
+12 5 26 0 0.241943 0.949219
+12 5 27 0 0.244751 0.960449
+12 5 28 0 0.248047 0.973145
+12 5 29 0 0.251465 0.986816
+12 5 30 0 0.255127 1
+12 5 31 0 0.259033 1
+12 6 0 0.447266 0 0
+12 6 1 0.447266 0 0
+12 6 2 0.447266 0 0
+12 6 3 0.447266 0 0
+12 6 4 0.447266 0 0
+12 6 5 0.447266 0 0
+12 6 6 0.447266 0 0
+12 6 7 0.449219 0 0
+12 6 8 0.455566 0 0
+12 6 9 0.455566 0 0.128662
+12 6 10 0.437256 0 0.198975
+12 6 11 0.365723 0 0.234131
+12 6 12 0.32666 0.0757446 0.276611
+12 6 13 0.30957 0.0925903 0.3479
+12 6 14 0.276611 0.112244 0.428955
+12 6 15 0.211914 0.133789 0.516602
+12 6 16 0 0.156738 0.608398
+12 6 17 0 0.179077 0.697754
+12 6 18 0 0.199829 0.779785
+12 6 19 0 0.218262 0.853027
+12 6 20 0 0.22998 0.899414
+12 6 21 0 0.231567 0.906738
+12 6 22 0 0.233521 0.914062
+12 6 23 0 0.235474 0.922363
+12 6 24 0 0.237427 0.930176
+12 6 25 0 0.239624 0.939453
+12 6 26 0 0.242188 0.949219
+12 6 27 0 0.244995 0.960449
+12 6 28 0 0.248291 0.973145
+12 6 29 0 0.251709 0.986816
+12 6 30 0 0.255371 1
+12 6 31 0 0.259033 1
+12 7 0 0.44458 0 0
+12 7 1 0.44458 0 0
+12 7 2 0.44458 0 0
+12 7 3 0.44458 0 0
+12 7 4 0.44458 0 0
+12 7 5 0.44458 0 0
+12 7 6 0.44458 0 0
+12 7 7 0.446533 0 0
+12 7 8 0.453125 0 0
+12 7 9 0.453369 0 0.126221
+12 7 10 0.436523 0 0.19812
+12 7 11 0.366211 0.0306854 0.234619
+12 7 12 0.325439 0.0877075 0.276367
+12 7 13 0.30835 0.102051 0.3479
+12 7 14 0.275146 0.119568 0.428711
+12 7 15 0.209839 0.139526 0.516602
+12 7 16 0 0.161011 0.608398
+12 7 17 0 0.182495 0.697266
+12 7 18 0 0.202515 0.779785
+12 7 19 0 0.220337 0.853027
+12 7 20 0 0.231689 0.899414
+12 7 21 0 0.23291 0.906738
+12 7 22 0 0.234619 0.914551
+12 7 23 0 0.236328 0.922363
+12 7 24 0 0.238159 0.930176
+12 7 25 0 0.240356 0.939453
+12 7 26 0 0.242798 0.949219
+12 7 27 0 0.245483 0.960449
+12 7 28 0 0.248657 0.973145
+12 7 29 0 0.252197 0.986816
+12 7 30 0 0.255615 1
+12 7 31 0 0.259277 1
+12 8 0 0.438232 0.0483093 0
+12 8 1 0.438232 0.0484009 0
+12 8 2 0.438232 0.0485535 0
+12 8 3 0.438232 0.0488586 0
+12 8 4 0.438232 0.0494385 0
+12 8 5 0.438232 0.0505066 0
+12 8 6 0.438232 0.0524902 0
+12 8 7 0.439941 0.0548706 0
+12 8 8 0.447021 0.0536804 0
+12 8 9 0.447998 0.0404358 0.121399
+12 8 10 0.434082 0.0208282 0.195923
+12 8 11 0.367188 0.0788574 0.235718
+12 8 12 0.323242 0.10614 0.275879
+12 8 13 0.305908 0.117676 0.347412
+12 8 14 0.272217 0.132324 0.428711
+12 8 15 0.205811 0.149658 0.516113
+12 8 16 0 0.169067 0.608398
+12 8 17 0 0.188843 0.697266
+12 8 18 0 0.20752 0.779785
+12 8 19 0 0.224365 0.853027
+12 8 20 0 0.234985 0.899902
+12 8 21 0 0.235596 0.906738
+12 8 22 0 0.236694 0.914551
+12 8 23 0 0.238159 0.922363
+12 8 24 0 0.239746 0.930664
+12 8 25 0 0.241699 0.939453
+12 8 26 0 0.243896 0.949707
+12 8 27 0 0.24646 0.960449
+12 8 28 0 0.249512 0.973633
+12 8 29 0 0.252686 0.986816
+12 8 30 0 0.256348 1
+12 8 31 0 0.259766 1
+12 9 0 0.423096 0.12793 0
+12 9 1 0.423096 0.128052 0
+12 9 2 0.423096 0.128052 0
+12 9 3 0.423096 0.128052 0
+12 9 4 0.423096 0.128296 0
+12 9 5 0.423096 0.12854 0
+12 9 6 0.422852 0.128906 0
+12 9 7 0.424072 0.130005 0
+12 9 8 0.431152 0.13147 0
+12 9 9 0.43335 0.12915 0.112427
+12 9 10 0.425049 0.123962 0.19043
+12 9 11 0.369629 0.122192 0.238159
+12 9 12 0.318604 0.132568 0.275146
+12 9 13 0.301025 0.141357 0.346924
+12 9 14 0.266602 0.152954 0.428223
+12 9 15 0.197632 0.166992 0.516113
+12 9 16 0 0.183228 0.60791
+12 9 17 0 0.200195 0.697266
+12 9 18 0 0.216797 0.780273
+12 9 19 0 0.231934 0.853027
+12 9 20 0 0.241211 0.900391
+12 9 21 0 0.240601 0.907227
+12 9 22 0 0.240845 0.915039
+12 9 23 0 0.241577 0.922852
+12 9 24 0 0.242676 0.930664
+12 9 25 0 0.244263 0.939453
+12 9 26 0 0.246094 0.949707
+12 9 27 0 0.248413 0.960938
+12 9 28 0 0.251221 0.973633
+12 9 29 0 0.25415 0.987305
+12 9 30 0 0.257568 1
+12 9 31 0 0.260986 1
+12 10 0 0.390869 0.180664 0
+12 10 1 0.390869 0.180664 0
+12 10 2 0.390869 0.180664 0
+12 10 3 0.390869 0.180786 0
+12 10 4 0.390869 0.180786 0
+12 10 5 0.390869 0.180908 0
+12 10 6 0.390625 0.181152 0
+12 10 7 0.390625 0.181641 0
+12 10 8 0.394775 0.18335 0
+12 10 9 0.398438 0.18457 0.101135
+12 10 10 0.403809 0.185669 0.179321
+12 10 11 0.373779 0.175781 0.242432
+12 10 12 0.310547 0.16748 0.273438
+12 10 13 0.291992 0.174072 0.345703
+12 10 14 0.255859 0.182617 0.42749
+12 10 15 0.181396 0.193115 0.515625
+12 10 16 0 0.205566 0.60791
+12 10 17 0 0.218872 0.697266
+12 10 18 0 0.2323 0.780273
+12 10 19 0 0.244873 0.853027
+12 10 20 0 0.251953 0.900879
+12 10 21 0 0.249268 0.907715
+12 10 22 0 0.248047 0.915527
+12 10 23 0 0.247681 0.92334
+12 10 24 0 0.247925 0.931152
+12 10 25 0 0.248657 0.939941
+12 10 26 0 0.25 0.950195
+12 10 27 0 0.251709 0.960938
+12 10 28 0 0.253906 0.973633
+12 10 29 0 0.256592 0.987305
+12 10 30 0 0.259521 1
+12 10 31 0 0.262695 1
+12 11 0 0.346924 0.222656 0
+12 11 1 0.346924 0.222656 0
+12 11 2 0.346924 0.222656 0
+12 11 3 0.346924 0.222778 0
+12 11 4 0.346924 0.222778 0
+12 11 5 0.346924 0.222778 0
+12 11 6 0.346924 0.2229 0
+12 11 7 0.346924 0.223145 0
+12 11 8 0.346191 0.223633 0
+12 11 9 0.344727 0.224487 0.101807
+12 11 10 0.343994 0.226562 0.160645
+12 11 11 0.352783 0.235352 0.233521
+12 11 12 0.295166 0.21167 0.270996
+12 11 13 0.275146 0.216675 0.34375
+12 11 14 0.235474 0.222778 0.426025
+12 11 15 0.146606 0.229858 0.514648
+12 11 16 0 0.238281 0.607422
+12 11 17 0 0.247192 0.697266
+12 11 18 0 0.256592 0.780273
+12 11 19 0 0.265381 0.853516
+12 11 20 0 0.269775 0.902344
+12 11 21 0 0.263672 0.90918
+12 11 22 0 0.26001 0.916504
+12 11 23 0 0.257812 0.923828
+12 11 24 0 0.256836 0.932129
+12 11 25 0 0.256348 0.940918
+12 11 26 0 0.256592 0.950684
+12 11 27 0 0.257324 0.961914
+12 11 28 0 0.259033 0.974121
+12 11 29 0 0.260986 0.987793
+12 11 30 0 0.263428 1
+12 11 31 0 0.265869 1
+12 12 0 0.321533 0.285645 0
+12 12 1 0.321533 0.285645 0
+12 12 2 0.321533 0.285645 0
+12 12 3 0.321533 0.285645 0
+12 12 4 0.321533 0.285645 0
+12 12 5 0.321533 0.285645 0
+12 12 6 0.321533 0.285889 0
+12 12 7 0.321533 0.286133 0
+12 12 8 0.320557 0.285889 0
+12 12 9 0.316162 0.284668 0.0948486
+12 12 10 0.307617 0.281738 0.154907
+12 12 11 0.29248 0.276123 0.21106
+12 12 12 0.266357 0.266357 0.266357
+12 12 13 0.242188 0.27002 0.340332
+12 12 14 0.193237 0.27417 0.423584
+12 12 15 0 0.27832 0.513184
+12 12 16 0 0.282959 0.606445
+12 12 17 0 0.287354 0.697266
+12 12 18 0 0.291748 0.780273
+12 12 19 0 0.296387 0.854004
+12 12 20 0 0.296875 0.904785
+12 12 21 0 0.286377 0.911133
+12 12 22 0 0.279053 0.917969
+12 12 23 0 0.27417 0.925781
+12 12 24 0 0.270996 0.933105
+12 12 25 0 0.268799 0.941895
+12 12 26 0 0.267334 0.95166
+12 12 27 0 0.266846 0.962891
+12 12 28 0 0.26709 0.975098
+12 12 29 0 0.268066 0.98877
+12 12 30 0 0.269531 1
+12 12 31 0 0.27124 1
+12 13 0 0.25415 0.34375 0
+12 13 1 0.25415 0.34375 0
+12 13 2 0.25415 0.34375 0
+12 13 3 0.25415 0.34375 0
+12 13 4 0.25415 0.34375 0
+12 13 5 0.25415 0.34375 0
+12 13 6 0.25415 0.34375 0
+12 13 7 0.25415 0.343994 0
+12 13 8 0.254395 0.344238 0
+12 13 9 0.25 0.342773 0
+12 13 10 0.241943 0.339844 0.128052
+12 13 11 0.227661 0.335205 0.192749
+12 13 12 0.205688 0.332275 0.258545
+12 13 13 0.167969 0.334473 0.334717
+12 13 14 0.0193024 0.336914 0.419189
+12 13 15 0 0.338867 0.509766
+12 13 16 0 0.339844 0.604492
+12 13 17 0 0.340088 0.696289
+12 13 18 0 0.3396 0.780273
+12 13 19 0 0.339355 0.854004
+12 13 20 0 0.335693 0.908203
+12 13 21 0 0.319092 0.914062
+12 13 22 0 0.307129 0.920898
+12 13 23 0 0.298584 0.928223
+12 13 24 0 0.292725 0.935547
+12 13 25 0 0.287842 0.944336
+12 13 26 0 0.28418 0.953613
+12 13 27 0 0.281494 0.964355
+12 13 28 0 0.280029 0.976562
+12 13 29 0 0.279297 0.989746
+12 13 30 0 0.279297 1
+12 13 31 0 0.279785 1
+12 14 0 0.0776367 0.4104 0
+12 14 1 0.0776367 0.4104 0
+12 14 2 0.0776978 0.4104 0
+12 14 3 0.0776978 0.4104 0
+12 14 4 0.0776978 0.4104 0
+12 14 5 0.0777588 0.4104 0
+12 14 6 0.0778809 0.410645 0
+12 14 7 0.078064 0.410645 0
+12 14 8 0.0784302 0.410889 0
+12 14 9 0.0708618 0.410889 0
+12 14 10 0 0.409912 0.0749512
+12 14 11 0 0.408936 0.168457
+12 14 12 0 0.408936 0.244751
+12 14 13 0 0.410156 0.324463
+12 14 14 0 0.411377 0.411377
+12 14 15 0 0.411377 0.504395
+12 14 16 0 0.409668 0.601074
+12 14 17 0 0.406006 0.694336
+12 14 18 0 0.400879 0.779297
+12 14 19 0 0.395264 0.854492
+12 14 20 0 0.387939 0.912598
+12 14 21 0 0.364258 0.918945
+12 14 22 0 0.346436 0.925293
+12 14 23 0 0.333252 0.932129
+12 14 24 0 0.323486 0.939453
+12 14 25 0 0.31543 0.947754
+12 14 26 0 0.308594 0.957031
+12 14 27 0 0.303223 0.967285
+12 14 28 0 0.299072 0.979004
+12 14 29 0 0.296143 0.992188
+12 14 30 0 0.294189 1
+12 14 31 0 0.292725 1
+12 15 0 0 0.492188 0
+12 15 1 0 0.492188 0
+12 15 2 0 0.492188 0
+12 15 3 0 0.492188 0
+12 15 4 0 0.492188 0
+12 15 5 0 0.492188 0
+12 15 6 0 0.492188 0
+12 15 7 0 0.492188 0
+12 15 8 0 0.492432 0
+12 15 9 0 0.492676 0
+12 15 10 0 0.49292 0
+12 15 11 0 0.493164 0.122681
+12 15 12 0 0.493896 0.219971
+12 15 13 0 0.494873 0.307373
+12 15 14 0 0.495361 0.398438
+12 15 15 0 0.494385 0.494629
+12 15 16 0 0.490967 0.594238
+12 15 17 0 0.484131 0.689941
+12 15 18 0 0.474609 0.777344
+12 15 19 0 0.464355 0.853516
+12 15 20 0 0.453369 0.916992
+12 15 21 0 0.422607 0.925293
+12 15 22 0 0.397949 0.932129
+12 15 23 0 0.379639 0.938965
+12 15 24 0 0.365234 0.945801
+12 15 25 0 0.352783 0.953125
+12 15 26 0 0.342041 0.961914
+12 15 27 0 0.333008 0.97168
+12 15 28 0 0.325928 0.983398
+12 15 29 0 0.319824 0.995605
+12 15 30 0 0.315186 1
+12 15 31 0 0.311279 1
+12 16 0 0 0.581543 0
+12 16 1 0 0.581543 0
+12 16 2 0 0.581543 0
+12 16 3 0 0.581543 0
+12 16 4 0 0.581543 0
+12 16 5 0 0.581543 0
+12 16 6 0 0.582031 0
+12 16 7 0 0.582031 0
+12 16 8 0 0.582031 0
+12 16 9 0 0.582031 0
+12 16 10 0 0.58252 0
+12 16 11 0 0.583496 0
+12 16 12 0 0.584473 0.175537
+12 16 13 0 0.585938 0.279297
+12 16 14 0 0.586426 0.377686
+12 16 15 0 0.585938 0.478516
+12 16 16 0 0.581543 0.581543
+12 16 17 0 0.572754 0.681152
+12 16 18 0 0.560059 0.771973
+12 16 19 0 0.545898 0.851074
+12 16 20 0 0.529785 0.916016
+12 16 21 0 0.494629 0.933594
+12 16 22 0 0.463379 0.941895
+12 16 23 0 0.438721 0.94873
+12 16 24 0 0.418945 0.955078
+12 16 25 0 0.401611 0.962402
+12 16 26 0 0.38623 0.970215
+12 16 27 0 0.372803 0.979004
+12 16 28 0 0.361572 0.989746
+12 16 29 0 0.351807 1
+12 16 30 0 0.34375 1
+12 16 31 0 0.33667 1
+12 17 0 0 0.671875 0
+12 17 1 0 0.671875 0
+12 17 2 0 0.671875 0
+12 17 3 0 0.671875 0
+12 17 4 0 0.671875 0
+12 17 5 0 0.671875 0
+12 17 6 0 0.671875 0
+12 17 7 0 0.671875 0
+12 17 8 0 0.671875 0
+12 17 9 0 0.671875 0
+12 17 10 0 0.672363 0
+12 17 11 0 0.67334 0
+12 17 12 0 0.674805 0.0631104
+12 17 13 0 0.676758 0.235596
+12 17 14 0 0.678223 0.34668
+12 17 15 0 0.678223 0.453857
+12 17 16 0 0.674805 0.562012
+12 17 17 0 0.666016 0.666016
+12 17 18 0 0.651855 0.761719
+12 17 19 0 0.634766 0.844238
+12 17 20 0 0.615234 0.912598
+12 17 21 0 0.578125 0.941406
+12 17 22 0 0.540527 0.954102
+12 17 23 0 0.509766 0.962402
+12 17 24 0 0.484375 0.969238
+12 17 25 0 0.461426 0.975586
+12 17 26 0 0.440674 0.982422
+12 17 27 0 0.422119 0.990234
+12 17 28 0 0.406006 0.999512
+12 17 29 0 0.391846 1
+12 17 30 0 0.379639 1
+12 17 31 0 0.368896 1
+12 18 0 0 0.756348 0
+12 18 1 0 0.756348 0
+12 18 2 0 0.756348 0
+12 18 3 0 0.756348 0
+12 18 4 0 0.756348 0
+12 18 5 0 0.756348 0
+12 18 6 0 0.756348 0
+12 18 7 0 0.756348 0
+12 18 8 0 0.756348 0
+12 18 9 0 0.756348 0
+12 18 10 0 0.756836 0
+12 18 11 0 0.757324 0
+12 18 12 0 0.759277 0
+12 18 13 0 0.761719 0.163086
+12 18 14 0 0.76416 0.303467
+12 18 15 0 0.765625 0.420166
+12 18 16 0 0.76416 0.53418
+12 18 17 0 0.757324 0.643555
+12 18 18 0 0.744141 0.744141
+12 18 19 0 0.726074 0.832031
+12 18 20 0 0.704102 0.904297
+12 18 21 0 0.66748 0.946289
+12 18 22 0 0.626953 0.967285
+12 18 23 0 0.59082 0.979004
+12 18 24 0 0.55957 0.986816
+12 18 25 0 0.530762 0.993164
+12 18 26 0 0.503906 0.999512
+12 18 27 0 0.47998 1
+12 18 28 0 0.458252 1
+12 18 29 0 0.439209 1
+12 18 30 0 0.422119 1
+12 18 31 0 0.407227 1
+12 19 0 0 0.833008 0
+12 19 1 0 0.833008 0
+12 19 2 0 0.833008 0
+12 19 3 0 0.833008 0
+12 19 4 0 0.833008 0
+12 19 5 0 0.833008 0
+12 19 6 0 0.833008 0
+12 19 7 0 0.833008 0
+12 19 8 0 0.833008 0
+12 19 9 0 0.833008 0
+12 19 10 0 0.833008 0
+12 19 11 0 0.833496 0
+12 19 12 0 0.834961 0
+12 19 13 0 0.837891 0
+12 19 14 0 0.841309 0.245483
+12 19 15 0 0.844238 0.378174
+12 19 16 0 0.844727 0.499023
+12 19 17 0 0.84082 0.61377
+12 19 18 0 0.830078 0.720215
+12 19 19 0 0.812988 0.812988
+12 19 20 0 0.790527 0.890625
+12 19 21 0 0.757324 0.944824
+12 19 22 0 0.716797 0.977051
+12 19 23 0 0.677734 0.995117
+12 19 24 0 0.64209 1
+12 19 25 0 0.607422 1
+12 19 26 0 0.574707 1
+12 19 27 0 0.544434 1
+12 19 28 0 0.51709 1
+12 19 29 0 0.492188 1
+12 19 30 0 0.469971 1
+12 19 31 0 0.450195 1
+12 20 0 0 0.899414 0
+12 20 1 0 0.899414 0
+12 20 2 0 0.899414 0
+12 20 3 0 0.899414 0
+12 20 4 0 0.899414 0
+12 20 5 0 0.899414 0
+12 20 6 0 0.899414 0
+12 20 7 0 0.899414 0
+12 20 8 0 0.899414 0
+12 20 9 0 0.899414 0
+12 20 10 0 0.899414 0
+12 20 11 0 0.899902 0
+12 20 12 0 0.900391 0
+12 20 13 0 0.90332 0
+12 20 14 0 0.907227 0.158203
+12 20 15 0 0.911621 0.328857
+12 20 16 0 0.914551 0.458984
+12 20 17 0 0.913086 0.579102
+12 20 18 0 0.905762 0.689941
+12 20 19 0 0.891113 0.788086
+12 20 20 0 0.869629 0.870117
+12 20 21 0 0.841309 0.935547
+12 20 22 0 0.804199 0.97998
+12 20 23 0 0.764648 1
+12 20 24 0 0.726074 1
+12 20 25 0 0.687012 1
+12 20 26 0 0.649414 1
+12 20 27 0 0.613281 1
+12 20 28 0 0.57959 1
+12 20 29 0 0.549316 1
+12 20 30 0 0.521484 1
+12 20 31 0 0.496582 1
+12 21 0 0 0.956055 0
+12 21 1 0 0.956055 0
+12 21 2 0 0.956055 0
+12 21 3 0 0.956055 0
+12 21 4 0 0.956055 0
+12 21 5 0 0.956055 0
+12 21 6 0 0.956055 0
+12 21 7 0 0.956055 0
+12 21 8 0 0.956055 0
+12 21 9 0 0.956055 0
+12 21 10 0 0.956055 0
+12 21 11 0 0.956543 0
+12 21 12 0 0.956543 0
+12 21 13 0 0.958984 0
+12 21 14 0 0.963379 0
+12 21 15 0 0.96875 0.268066
+12 21 16 0 0.973145 0.41333
+12 21 17 0 0.975098 0.539062
+12 21 18 0 0.970703 0.654297
+12 21 19 0 0.959473 0.756348
+12 21 20 0 0.940918 0.84375
+12 21 21 0 0.916504 0.916992
+12 21 22 0 0.884766 0.972656
+12 21 23 0 0.847656 1
+12 21 24 0 0.809082 1
+12 21 25 0 0.768066 1
+12 21 26 0 0.726074 1
+12 21 27 0 0.685059 1
+12 21 28 0 0.645996 1
+12 21 29 0 0.609863 1
+12 21 30 0 0.57666 1
+12 21 31 0 0.546387 1
+12 22 0 0 1 0
+12 22 1 0 1 0
+12 22 2 0 1 0
+12 22 3 0 1 0
+12 22 4 0 1 0
+12 22 5 0 1 0
+12 22 6 0 1 0
+12 22 7 0 1 0
+12 22 8 0 1 0
+12 22 9 0 1 0
+12 22 10 0 1 0
+12 22 11 0 1 0
+12 22 12 0 1 0
+12 22 13 0 1 0
+12 22 14 0 1 0
+12 22 15 0 1 0.185791
+12 22 16 0 1 0.362793
+12 22 17 0 1 0.49585
+12 22 18 0 1 0.614746
+12 22 19 0 1 0.720703
+12 22 20 0 1 0.812012
+12 22 21 0 0.980957 0.890137
+12 22 22 0 0.953613 0.954102
+12 22 23 0 0.921875 1
+12 22 24 0 0.885742 1
+12 22 25 0 0.844727 1
+12 22 26 0 0.80127 1
+12 22 27 0 0.756836 1
+12 22 28 0 0.713379 1
+12 22 29 0 0.671875 1
+12 22 30 0 0.633301 1
+12 22 31 0 0.598145 1
+12 23 0 0 1 0
+12 23 1 0 1 0
+12 23 2 0 1 0
+12 23 3 0 1 0
+12 23 4 0 1 0
+12 23 5 0 1 0
+12 23 6 0 1 0
+12 23 7 0 1 0
+12 23 8 0 1 0
+12 23 9 0 1 0
+12 23 10 0 1 0
+12 23 11 0 1 0
+12 23 12 0 1 0
+12 23 13 0 1 0
+12 23 14 0 1 0
+12 23 15 0 1 0
+12 23 16 0 1 0.308105
+12 23 17 0 1 0.451416
+12 23 18 0 1 0.574219
+12 23 19 0 1 0.683105
+12 23 20 0 1 0.777832
+12 23 21 0 1 0.859863
+12 23 22 0 1 0.928711
+12 23 23 0 0.982422 0.982422
+12 23 24 0 0.950684 1
+12 23 25 0 0.912598 1
+12 23 26 0 0.869629 1
+12 23 27 0 0.82373 1
+12 23 28 0 0.777344 1
+12 23 29 0 0.731934 1
+12 23 30 0 0.688965 1
+12 23 31 0 0.648926 1
+12 24 0 0 1 0
+12 24 1 0 1 0
+12 24 2 0 1 0
+12 24 3 0 1 0
+12 24 4 0 1 0
+12 24 5 0 1 0
+12 24 6 0 1 0
+12 24 7 0 1 0
+12 24 8 0 1 0
+12 24 9 0 1 0
+12 24 10 0 1 0
+12 24 11 0 1 0
+12 24 12 0 1 0
+12 24 13 0 1 0
+12 24 14 0 1 0
+12 24 15 0 1 0
+12 24 16 0 1 0.245239
+12 24 17 0 1 0.406006
+12 24 18 0 1 0.533203
+12 24 19 0 1 0.644531
+12 24 20 0 1 0.742188
+12 24 21 0 1 0.827148
+12 24 22 0 1 0.899902
+12 24 23 0 1 0.958496
+12 24 24 0 1 1
+12 24 25 0 0.971191 1
+12 24 26 0 0.930664 1
+12 24 27 0 0.884766 1
+12 24 28 0 0.837402 1
+12 24 29 0 0.789551 1
+12 24 30 0 0.743164 1
+12 24 31 0 0.69873 1
+12 25 0 0 1 0
+12 25 1 0 1 0
+12 25 2 0 1 0
+12 25 3 0 1 0
+12 25 4 0 1 0
+12 25 5 0 1 0
+12 25 6 0 1 0
+12 25 7 0 1 0
+12 25 8 0 1 0
+12 25 9 0 1 0
+12 25 10 0 1 0
+12 25 11 0 1 0
+12 25 12 0 1 0
+12 25 13 0 1 0
+12 25 14 0 1 0
+12 25 15 0 1 0
+12 25 16 0 1 0.149536
+12 25 17 0 1 0.354004
+12 25 18 0 1 0.487793
+12 25 19 0 1 0.601562
+12 25 20 0 1 0.701172
+12 25 21 0 1 0.789551
+12 25 22 0 1 0.865723
+12 25 23 0 1 0.928223
+12 25 24 0 1 0.979492
+12 25 25 0 1 1
+12 25 26 0 0.988281 1
+12 25 27 0 0.944824 1
+12 25 28 0 0.897461 1
+12 25 29 0 0.848145 1
+12 25 30 0 0.799316 1
+12 25 31 0 0.751465 1
+12 26 0 0 1 0
+12 26 1 0 1 0
+12 26 2 0 1 0
+12 26 3 0 1 0
+12 26 4 0 1 0
+12 26 5 0 1 0
+12 26 6 0 1 0
+12 26 7 0 1 0
+12 26 8 0 1 0
+12 26 9 0 1 0
+12 26 10 0 1 0
+12 26 11 0 1 0
+12 26 12 0 1 0
+12 26 13 0 1 0
+12 26 14 0 1 0
+12 26 15 0 1 0
+12 26 16 0 1 0
+12 26 17 0 1 0.291748
+12 26 18 0 1 0.437256
+12 26 19 0 1 0.554688
+12 26 20 0 1 0.65625
+12 26 21 0 1 0.746582
+12 26 22 0 1 0.825684
+12 26 23 0 1 0.89209
+12 26 24 0 1 0.947266
+12 26 25 0 1 0.997559
+12 26 26 0 1 1
+12 26 27 0 1 1
+12 26 28 0 0.956543 1
+12 26 29 0 0.907227 1
+12 26 30 0 0.856934 1
+12 26 31 0 0.806641 1
+12 27 0 0 1 0
+12 27 1 0 1 0
+12 27 2 0 1 0
+12 27 3 0 1 0
+12 27 4 0 1 0
+12 27 5 0 1 0
+12 27 6 0 1 0
+12 27 7 0 1 0
+12 27 8 0 1 0
+12 27 9 0 1 0
+12 27 10 0 1 0
+12 27 11 0 1 0
+12 27 12 0 1 0
+12 27 13 0 1 0
+12 27 14 0 1 0
+12 27 15 0 1 0
+12 27 16 0 1 0
+12 27 17 0 1 0.208984
+12 27 18 0 1 0.380859
+12 27 19 0 1 0.503418
+12 27 20 0 1 0.606934
+12 27 21 0 1 0.699219
+12 27 22 0 1 0.780762
+12 27 23 0 1 0.850098
+12 27 24 0 1 0.908691
+12 27 25 0 1 0.963379
+12 27 26 0 1 1
+12 27 27 0 1 1
+12 27 28 0 1 1
+12 27 29 0 0.964844 1
+12 27 30 0 0.914062 1
+12 27 31 0 0.862305 1
+12 28 0 0 1 0
+12 28 1 0 1 0
+12 28 2 0 1 0
+12 28 3 0 1 0
+12 28 4 0 1 0
+12 28 5 0 1 0
+12 28 6 0 1 0
+12 28 7 0 1 0
+12 28 8 0 1 0
+12 28 9 0 1 0
+12 28 10 0 1 0
+12 28 11 0 1 0
+12 28 12 0 1 0
+12 28 13 0 1 0
+12 28 14 0 1 0
+12 28 15 0 1 0
+12 28 16 0 1 0
+12 28 17 0 1 0
+12 28 18 0 1 0.315674
+12 28 19 0 1 0.447754
+12 28 20 0 1 0.553711
+12 28 21 0 1 0.647461
+12 28 22 0 1 0.730957
+12 28 23 0 1 0.802246
+12 28 24 0 1 0.864258
+12 28 25 0 1 0.922363
+12 28 26 0 1 0.976074
+12 28 27 0 1 1
+12 28 28 0 1 1
+12 28 29 0 1 1
+12 28 30 0 0.970215 1
+12 28 31 0 0.918945 1
+12 29 0 0 1 0
+12 29 1 0 1 0
+12 29 2 0 1 0
+12 29 3 0 1 0
+12 29 4 0 1 0
+12 29 5 0 1 0
+12 29 6 0 1 0
+12 29 7 0 1 0
+12 29 8 0 1 0
+12 29 9 0 1 0
+12 29 10 0 1 0
+12 29 11 0 1 0
+12 29 12 0 1 0
+12 29 13 0 1 0
+12 29 14 0 1 0
+12 29 15 0 1 0
+12 29 16 0 1 0
+12 29 17 0 1 0
+12 29 18 0 1 0.23291
+12 29 19 0 1 0.385742
+12 29 20 0 1 0.496582
+12 29 21 0 1 0.592285
+12 29 22 0 1 0.67627
+12 29 23 0 1 0.749512
+12 29 24 0 1 0.813477
+12 29 25 0 1 0.874512
+12 29 26 0 1 0.932129
+12 29 27 0 1 0.984863
+12 29 28 0 1 1
+12 29 29 0 1 1
+12 29 30 0 1 1
+12 29 31 0 0.975098 1
+12 30 0 0 1 0
+12 30 1 0 1 0
+12 30 2 0 1 0
+12 30 3 0 1 0
+12 30 4 0 1 0
+12 30 5 0 1 0
+12 30 6 0 1 0
+12 30 7 0 1 0
+12 30 8 0 1 0
+12 30 9 0 1 0
+12 30 10 0 1 0
+12 30 11 0 1 0
+12 30 12 0 1 0
+12 30 13 0 1 0
+12 30 14 0 1 0
+12 30 15 0 1 0
+12 30 16 0 1 0
+12 30 17 0 1 0
+12 30 18 0 1 0.0682983
+12 30 19 0 1 0.315186
+12 30 20 0 1 0.434814
+12 30 21 0 1 0.532715
+12 30 22 0 1 0.618164
+12 30 23 0 1 0.691895
+12 30 24 0 1 0.757324
+12 30 25 0 1 0.820312
+12 30 26 0 1 0.881348
+12 30 27 0 1 0.938477
+12 30 28 0 1 0.990723
+12 30 29 0 1 1
+12 30 30 0 1 1
+12 30 31 0 1 1
+12 31 0 0 1 0
+12 31 1 0 1 0
+12 31 2 0 1 0
+12 31 3 0 1 0
+12 31 4 0 1 0
+12 31 5 0 1 0
+12 31 6 0 1 0
+12 31 7 0 1 0
+12 31 8 0 1 0
+12 31 9 0 1 0
+12 31 10 0 1 0
+12 31 11 0 1 0
+12 31 12 0 1 0
+12 31 13 0 1 0
+12 31 14 0 1 0
+12 31 15 0 1 0
+12 31 16 0 1 0
+12 31 17 0 1 0
+12 31 18 0 1 0
+12 31 19 0 1 0.226318
+12 31 20 0 1 0.366699
+12 31 21 0 1 0.469238
+12 31 22 0 1 0.556152
+12 31 23 0 1 0.630859
+12 31 24 0 1 0.696777
+12 31 25 0 1 0.761719
+12 31 26 0 1 0.825195
+12 31 27 0 1 0.88623
+12 31 28 0 1 0.943359
+12 31 29 0 1 0.995605
+12 31 30 0 1 1
+12 31 31 0 1 1
+13 0 0 0.508789 0 0
+13 0 1 0.508789 0 0
+13 0 2 0.508789 0 0
+13 0 3 0.508789 0 0
+13 0 4 0.508789 0 0
+13 0 5 0.508789 0 0
+13 0 6 0.508789 0 0
+13 0 7 0.508789 0 0
+13 0 8 0.51123 0 0
+13 0 9 0.516113 0 0.0480347
+13 0 10 0.517578 0 0.161743
+13 0 11 0.503906 0 0.239136
+13 0 12 0.441406 0 0.286865
+13 0 13 0.411133 0.0737305 0.347168
+13 0 14 0.388916 0.0988159 0.428223
+13 0 15 0.349854 0.124146 0.516113
+13 0 16 0.282715 0.149658 0.608887
+13 0 17 0.135498 0.17395 0.69873
+13 0 18 0 0.195923 0.781738
+13 0 19 0 0.215332 0.85498
+13 0 20 0 0.228638 0.905273
+13 0 21 0 0.230835 0.911621
+13 0 22 0 0.233032 0.919434
+13 0 23 0 0.235229 0.927246
+13 0 24 0 0.237305 0.93457
+13 0 25 0 0.239624 0.943359
+13 0 26 0 0.24231 0.953125
+13 0 27 0 0.245117 0.963867
+13 0 28 0 0.248413 0.976074
+13 0 29 0 0.251709 0.989746
+13 0 30 0 0.255371 1
+13 0 31 0 0.259277 1
+13 1 0 0.508789 0 0
+13 1 1 0.508789 0 0
+13 1 2 0.508789 0 0
+13 1 3 0.508789 0 0
+13 1 4 0.508789 0 0
+13 1 5 0.508789 0 0
+13 1 6 0.508789 0 0
+13 1 7 0.508789 0 0
+13 1 8 0.51123 0 0
+13 1 9 0.516113 0 0.0479126
+13 1 10 0.517578 0 0.161743
+13 1 11 0.503906 0 0.239136
+13 1 12 0.441406 0 0.286865
+13 1 13 0.411133 0.0740356 0.347168
+13 1 14 0.388916 0.0990601 0.428223
+13 1 15 0.349854 0.124268 0.516113
+13 1 16 0.282715 0.14978 0.608887
+13 1 17 0.135376 0.17395 0.69873
+13 1 18 0 0.196045 0.781738
+13 1 19 0 0.215332 0.85498
+13 1 20 0 0.228638 0.905273
+13 1 21 0 0.230835 0.911621
+13 1 22 0 0.233032 0.919434
+13 1 23 0 0.235229 0.927246
+13 1 24 0 0.237305 0.93457
+13 1 25 0 0.239624 0.943359
+13 1 26 0 0.24231 0.953125
+13 1 27 0 0.245117 0.963867
+13 1 28 0 0.248413 0.976074
+13 1 29 0 0.251709 0.989746
+13 1 30 0 0.255371 1
+13 1 31 0 0.259277 1
+13 2 0 0.508789 0 0
+13 2 1 0.508789 0 0
+13 2 2 0.508789 0 0
+13 2 3 0.508789 0 0
+13 2 4 0.508789 0 0
+13 2 5 0.508789 0 0
+13 2 6 0.508789 0 0
+13 2 7 0.508789 0 0
+13 2 8 0.51123 0 0
+13 2 9 0.516113 0 0.0476685
+13 2 10 0.517578 0 0.161743
+13 2 11 0.503906 0 0.239136
+13 2 12 0.441406 0 0.286865
+13 2 13 0.411133 0.074646 0.347168
+13 2 14 0.388672 0.0994263 0.428223
+13 2 15 0.349854 0.124512 0.516113
+13 2 16 0.282471 0.149902 0.608887
+13 2 17 0.135254 0.174072 0.69873
+13 2 18 0 0.196167 0.781738
+13 2 19 0 0.215454 0.85498
+13 2 20 0 0.22876 0.905273
+13 2 21 0 0.230835 0.911621
+13 2 22 0 0.233154 0.919434
+13 2 23 0 0.235229 0.927246
+13 2 24 0 0.237427 0.93457
+13 2 25 0 0.239746 0.943359
+13 2 26 0 0.24231 0.953125
+13 2 27 0 0.245117 0.963867
+13 2 28 0 0.248413 0.976074
+13 2 29 0 0.251953 0.989746
+13 2 30 0 0.255371 1
+13 2 31 0 0.259277 1
+13 3 0 0.508789 0 0
+13 3 1 0.508789 0 0
+13 3 2 0.508789 0 0
+13 3 3 0.508789 0 0
+13 3 4 0.508789 0 0
+13 3 5 0.508789 0 0
+13 3 6 0.508301 0 0
+13 3 7 0.508301 0 0
+13 3 8 0.51123 0 0
+13 3 9 0.516113 0 0.0472107
+13 3 10 0.517578 0 0.161621
+13 3 11 0.503906 0 0.239136
+13 3 12 0.441406 0 0.286865
+13 3 13 0.410889 0.0756226 0.347168
+13 3 14 0.388672 0.100098 0.428223
+13 3 15 0.349854 0.125 0.516113
+13 3 16 0.282471 0.150269 0.608887
+13 3 17 0.13501 0.174438 0.69873
+13 3 18 0 0.196289 0.781738
+13 3 19 0 0.215576 0.85498
+13 3 20 0 0.228882 0.905273
+13 3 21 0 0.230957 0.912109
+13 3 22 0 0.233154 0.919434
+13 3 23 0 0.235352 0.927246
+13 3 24 0 0.237427 0.93457
+13 3 25 0 0.239746 0.943359
+13 3 26 0 0.24231 0.953125
+13 3 27 0 0.245117 0.963867
+13 3 28 0 0.248413 0.976562
+13 3 29 0 0.251953 0.989746
+13 3 30 0 0.255371 1
+13 3 31 0 0.259277 1
+13 4 0 0.508301 0 0
+13 4 1 0.508301 0 0
+13 4 2 0.508301 0 0
+13 4 3 0.508301 0 0
+13 4 4 0.508301 0 0
+13 4 5 0.508301 0 0
+13 4 6 0.508301 0 0
+13 4 7 0.508301 0 0
+13 4 8 0.51123 0 0
+13 4 9 0.515625 0 0.0463867
+13 4 10 0.51709 0 0.161499
+13 4 11 0.503906 0 0.239136
+13 4 12 0.441406 0 0.286865
+13 4 13 0.410889 0.0774536 0.347168
+13 4 14 0.388672 0.101318 0.428223
+13 4 15 0.349609 0.125854 0.516113
+13 4 16 0.282227 0.150879 0.608887
+13 4 17 0.134521 0.174927 0.69873
+13 4 18 0 0.196777 0.781738
+13 4 19 0 0.215942 0.85498
+13 4 20 0 0.229126 0.905273
+13 4 21 0 0.231201 0.912109
+13 4 22 0 0.233398 0.919434
+13 4 23 0 0.235474 0.927246
+13 4 24 0 0.237549 0.93457
+13 4 25 0 0.239868 0.943359
+13 4 26 0 0.242432 0.953125
+13 4 27 0 0.245239 0.963867
+13 4 28 0 0.248535 0.976562
+13 4 29 0 0.251953 0.989746
+13 4 30 0 0.255615 1
+13 4 31 0 0.259277 1
+13 5 0 0.508301 0 0
+13 5 1 0.508301 0 0
+13 5 2 0.508301 0 0
+13 5 3 0.508301 0 0
+13 5 4 0.508301 0 0
+13 5 5 0.508301 0 0
+13 5 6 0.508301 0 0
+13 5 7 0.507812 0 0
+13 5 8 0.510742 0 0
+13 5 9 0.515625 0 0.0447083
+13 5 10 0.51709 0 0.161133
+13 5 11 0.503906 0 0.239014
+13 5 12 0.441406 0 0.287109
+13 5 13 0.410645 0.0808716 0.346924
+13 5 14 0.388428 0.103638 0.427979
+13 5 15 0.349365 0.127563 0.516113
+13 5 16 0.281982 0.152222 0.608887
+13 5 17 0.133545 0.175781 0.69873
+13 5 18 0 0.19751 0.781738
+13 5 19 0 0.216553 0.85498
+13 5 20 0 0.229614 0.905273
+13 5 21 0 0.231567 0.912109
+13 5 22 0 0.233643 0.919434
+13 5 23 0 0.235718 0.927246
+13 5 24 0 0.237793 0.93457
+13 5 25 0 0.23999 0.943359
+13 5 26 0 0.242554 0.953125
+13 5 27 0 0.245361 0.963867
+13 5 28 0 0.248535 0.976562
+13 5 29 0 0.251953 0.989746
+13 5 30 0 0.255615 1
+13 5 31 0 0.259277 1
+13 6 0 0.507324 0 0
+13 6 1 0.507324 0 0
+13 6 2 0.507324 0 0
+13 6 3 0.507324 0 0
+13 6 4 0.507324 0 0
+13 6 5 0.507324 0 0
+13 6 6 0.507324 0 0
+13 6 7 0.507324 0 0
+13 6 8 0.510254 0 0
+13 6 9 0.515137 0 0.0412903
+13 6 10 0.516113 0 0.160645
+13 6 11 0.503906 0 0.238892
+13 6 12 0.441162 0 0.287109
+13 6 13 0.410156 0.086853 0.346924
+13 6 14 0.387939 0.10791 0.427979
+13 6 15 0.348877 0.130737 0.516113
+13 6 16 0.28125 0.154541 0.608887
+13 6 17 0.131836 0.177612 0.69873
+13 6 18 0 0.198853 0.781738
+13 6 19 0 0.217651 0.85498
+13 6 20 0 0.230469 0.905273
+13 6 21 0 0.2323 0.912109
+13 6 22 0 0.234253 0.919434
+13 6 23 0 0.236206 0.927246
+13 6 24 0 0.238159 0.93457
+13 6 25 0 0.240356 0.943359
+13 6 26 0 0.24292 0.953125
+13 6 27 0 0.245605 0.963867
+13 6 28 0 0.248779 0.976562
+13 6 29 0 0.252197 0.989746
+13 6 30 0 0.255859 1
+13 6 31 0 0.259521 1
+13 7 0 0.506348 0 0
+13 7 1 0.506348 0 0
+13 7 2 0.506348 0 0
+13 7 3 0.506348 0 0
+13 7 4 0.506348 0 0
+13 7 5 0.506348 0 0
+13 7 6 0.506348 0 0
+13 7 7 0.505859 0 0
+13 7 8 0.508789 0 0
+13 7 9 0.513672 0 0.0335693
+13 7 10 0.515625 0 0.159424
+13 7 11 0.503906 0 0.238647
+13 7 12 0.441162 0 0.287354
+13 7 13 0.409424 0.0970459 0.34668
+13 7 14 0.386963 0.115601 0.427979
+13 7 15 0.3479 0.136597 0.516113
+13 7 16 0.280029 0.158936 0.608887
+13 7 17 0.128296 0.18103 0.69873
+13 7 18 0 0.201538 0.781738
+13 7 19 0 0.219727 0.85498
+13 7 20 0 0.2323 0.905273
+13 7 21 0 0.233643 0.912109
+13 7 22 0 0.235352 0.919434
+13 7 23 0 0.237183 0.927246
+13 7 24 0 0.239014 0.935059
+13 7 25 0 0.241089 0.943359
+13 7 26 0 0.243408 0.953125
+13 7 27 0 0.246094 0.963867
+13 7 28 0 0.249268 0.976562
+13 7 29 0 0.252686 0.989746
+13 7 30 0 0.256104 1
+13 7 31 0 0.259766 1
+13 8 0 0.503418 0 0
+13 8 1 0.503418 0 0
+13 8 2 0.503418 0 0
+13 8 3 0.503418 0 0
+13 8 4 0.503418 0 0
+13 8 5 0.503418 0 0
+13 8 6 0.503418 0 0
+13 8 7 0.503418 0 0
+13 8 8 0.505859 0 0
+13 8 9 0.51123 0 0
+13 8 10 0.51416 0 0.156982
+13 8 11 0.503906 0 0.237915
+13 8 12 0.441162 0.0714722 0.287598
+13 8 13 0.407715 0.113586 0.346436
+13 8 14 0.385254 0.128906 0.427734
+13 8 15 0.345947 0.147095 0.516113
+13 8 16 0.277344 0.167236 0.608887
+13 8 17 0.120789 0.1875 0.69873
+13 8 18 0 0.206665 0.781738
+13 8 19 0 0.223877 0.85498
+13 8 20 0 0.235596 0.905762
+13 8 21 0 0.236328 0.912109
+13 8 22 0 0.237549 0.919922
+13 8 23 0 0.238892 0.927246
+13 8 24 0 0.240479 0.935059
+13 8 25 0 0.242432 0.943848
+13 8 26 0 0.244629 0.953125
+13 8 27 0 0.24707 0.963867
+13 8 28 0 0.25 0.976562
+13 8 29 0 0.253418 0.989746
+13 8 30 0 0.256836 1
+13 8 31 0 0.260254 1
+13 9 0 0.49707 0.0812988 0
+13 9 1 0.49707 0.0812988 0
+13 9 2 0.49707 0.0813599 0
+13 9 3 0.49707 0.0814819 0
+13 9 4 0.49707 0.0817261 0
+13 9 5 0.49707 0.0821533 0
+13 9 6 0.49707 0.0829468 0
+13 9 7 0.496826 0.0844727 0
+13 9 8 0.499268 0.0861206 0
+13 9 9 0.504883 0.0839233 0
+13 9 10 0.510254 0.0760498 0.152344
+13 9 11 0.502441 0.0706177 0.236084
+13 9 12 0.440918 0.112732 0.288574
+13 9 13 0.404541 0.138306 0.345947
+13 9 14 0.381836 0.150146 0.427246
+13 9 15 0.342041 0.164673 0.515625
+13 9 16 0.272461 0.181519 0.608398
+13 9 17 0.104431 0.199097 0.69873
+13 9 18 0 0.215942 0.781738
+13 9 19 0 0.231445 0.85498
+13 9 20 0 0.241943 0.90625
+13 9 21 0 0.241455 0.912598
+13 9 22 0 0.241699 0.919922
+13 9 23 0 0.242432 0.927734
+13 9 24 0 0.24353 0.935059
+13 9 25 0 0.244995 0.943848
+13 9 26 0 0.246826 0.953613
+13 9 27 0 0.249023 0.964355
+13 9 28 0 0.251709 0.976562
+13 9 29 0 0.254639 0.989746
+13 9 30 0 0.257812 1
+13 9 31 0 0.26123 1
+13 10 0 0.483154 0.158081 0
+13 10 1 0.483154 0.158081 0
+13 10 2 0.483154 0.158203 0
+13 10 3 0.483154 0.158203 0
+13 10 4 0.483154 0.158325 0
+13 10 5 0.483154 0.158447 0
+13 10 6 0.48291 0.158691 0
+13 10 7 0.48291 0.159302 0
+13 10 8 0.484619 0.1604 0
+13 10 9 0.48999 0.160889 0
+13 10 10 0.497559 0.160156 0.144287
+13 10 11 0.494873 0.156982 0.231079
+13 10 12 0.441406 0.159058 0.290283
+13 10 13 0.398682 0.171753 0.344727
+13 10 14 0.375488 0.18042 0.426514
+13 10 15 0.334961 0.191284 0.515137
+13 10 16 0.262939 0.204224 0.608398
+13 10 17 0.0575256 0.218018 0.69873
+13 10 18 0 0.231689 0.781738
+13 10 19 0 0.244507 0.85498
+13 10 20 0 0.25293 0.906738
+13 10 21 0 0.250244 0.913574
+13 10 22 0 0.248901 0.92041
+13 10 23 0 0.248535 0.927734
+13 10 24 0 0.248779 0.935547
+13 10 25 0 0.249512 0.944336
+13 10 26 0 0.250732 0.953613
+13 10 27 0 0.252441 0.964355
+13 10 28 0 0.254639 0.977051
+13 10 29 0 0.25708 0.990234
+13 10 30 0 0.26001 1
+13 10 31 0 0.263184 1
+13 11 0 0.456299 0.21875 0
+13 11 1 0.456299 0.21875 0
+13 11 2 0.456299 0.218872 0
+13 11 3 0.456299 0.218872 0
+13 11 4 0.456299 0.218872 0
+13 11 5 0.456299 0.218994 0
+13 11 6 0.456055 0.219116 0
+13 11 7 0.456055 0.21936 0
+13 11 8 0.456299 0.219971 0
+13 11 9 0.459229 0.221436 0
+13 11 10 0.465088 0.223877 0.135376
+13 11 11 0.472656 0.226318 0.219849
+13 11 12 0.442139 0.217651 0.292969
+13 11 13 0.387939 0.214844 0.342773
+13 11 14 0.364014 0.220947 0.425049
+13 11 15 0.321777 0.228394 0.51416
+13 11 16 0.244995 0.237183 0.60791
+13 11 17 0 0.246582 0.698242
+13 11 18 0 0.256104 0.781738
+13 11 19 0 0.265137 0.855469
+13 11 20 0 0.270752 0.908203
+13 11 21 0 0.264648 0.914551
+13 11 22 0 0.260986 0.921387
+13 11 23 0 0.258789 0.928711
+13 11 24 0 0.257568 0.936523
+13 11 25 0 0.25708 0.944824
+13 11 26 0 0.257324 0.95459
+13 11 27 0 0.258057 0.964844
+13 11 28 0 0.259521 0.977539
+13 11 29 0 0.261475 0.990723
+13 11 30 0 0.263672 1
+13 11 31 0 0.266357 1
+13 12 0 0.422852 0.275879 0
+13 12 1 0.422852 0.275879 0
+13 12 2 0.422852 0.275879 0
+13 12 3 0.422852 0.275879 0
+13 12 4 0.422852 0.275879 0
+13 12 5 0.422852 0.275879 0
+13 12 6 0.422852 0.276123 0
+13 12 7 0.422852 0.276367 0
+13 12 8 0.422852 0.276611 0
+13 12 9 0.420898 0.276855 0.0583801
+13 12 10 0.417969 0.2771 0.137695
+13 12 11 0.414795 0.278809 0.203613
+13 12 12 0.416992 0.284668 0.282959
+13 12 13 0.368652 0.268555 0.339355
+13 12 14 0.343018 0.272705 0.422363
+13 12 15 0.297363 0.2771 0.512695
+13 12 16 0.208984 0.282227 0.606934
+13 12 17 0 0.286865 0.698242
+13 12 18 0 0.291504 0.781738
+13 12 19 0 0.296387 0.855469
+13 12 20 0 0.298096 0.910156
+13 12 21 0 0.287354 0.916016
+13 12 22 0 0.280029 0.922852
+13 12 23 0 0.275146 0.930176
+13 12 24 0 0.271973 0.9375
+13 12 25 0 0.269531 0.945801
+13 12 26 0 0.268311 0.955566
+13 12 27 0 0.267578 0.96582
+13 12 28 0 0.267822 0.978027
+13 12 29 0 0.268555 0.991211
+13 12 30 0 0.27002 1
+13 12 31 0 0.271729 1
+13 13 0 0.395996 0.351807 0
+13 13 1 0.395996 0.351807 0
+13 13 2 0.395996 0.351807 0
+13 13 3 0.395996 0.351807 0
+13 13 4 0.395996 0.351807 0
+13 13 5 0.395996 0.351807 0
+13 13 6 0.395996 0.352051 0
+13 13 7 0.395996 0.352051 0
+13 13 8 0.395996 0.352295 0
+13 13 9 0.394287 0.352051 0
+13 13 10 0.388916 0.35083 0.128296
+13 13 11 0.37915 0.3479 0.198364
+13 13 12 0.361816 0.342529 0.266113
+13 13 13 0.333252 0.333252 0.333252
+13 13 14 0.303711 0.335693 0.417969
+13 13 15 0.249268 0.337891 0.509277
+13 13 16 0.114563 0.339355 0.60498
+13 13 17 0 0.339844 0.697266
+13 13 18 0 0.3396 0.781738
+13 13 19 0 0.339355 0.855957
+13 13 20 0 0.337158 0.913086
+13 13 21 0 0.320312 0.918945
+13 13 22 0 0.30835 0.925293
+13 13 23 0 0.299805 0.932617
+13 13 24 0 0.293701 0.939453
+13 13 25 0 0.288818 0.947754
+13 13 26 0 0.284912 0.957031
+13 13 27 0 0.282227 0.967285
+13 13 28 0 0.280762 0.979492
+13 13 29 0 0.279785 0.992676
+13 13 30 0 0.279785 1
+13 13 31 0 0.280273 1
+13 14 0 0.320801 0.420898 0
+13 14 1 0.320801 0.420898 0
+13 14 2 0.320801 0.420898 0
+13 14 3 0.320801 0.420898 0
+13 14 4 0.320801 0.420898 0
+13 14 5 0.320801 0.420898 0
+13 14 6 0.320801 0.421143 0
+13 14 7 0.320801 0.421143 0
+13 14 8 0.320801 0.421387 0
+13 14 9 0.320312 0.421387 0
+13 14 10 0.314941 0.419922 0.0681152
+13 14 11 0.305176 0.416992 0.169556
+13 14 12 0.28833 0.412354 0.245605
+13 14 13 0.262939 0.408936 0.323242
+13 14 14 0.220703 0.410156 0.4104
+13 14 15 0.117554 0.410645 0.503906
+13 14 16 0 0.409424 0.601074
+13 14 17 0 0.405762 0.694824
+13 14 18 0 0.400879 0.780762
+13 14 19 0 0.395508 0.855957
+13 14 20 0 0.389648 0.91748
+13 14 21 0 0.365479 0.92334
+13 14 22 0 0.347656 0.929688
+13 14 23 0 0.334473 0.936035
+13 14 24 0 0.324463 0.943359
+13 14 25 0 0.316162 0.951172
+13 14 26 0 0.309326 0.959961
+13 14 27 0 0.303955 0.970215
+13 14 28 0 0.299805 0.981934
+13 14 29 0 0.296631 0.994629
+13 14 30 0 0.294678 1
+13 14 31 0 0.293213 1
+13 15 0 0.157593 0.495605 0
+13 15 1 0.157593 0.495605 0
+13 15 2 0.157593 0.495605 0
+13 15 3 0.157593 0.495605 0
+13 15 4 0.157593 0.495605 0
+13 15 5 0.157593 0.495605 0
+13 15 6 0.157715 0.495605 0
+13 15 7 0.157715 0.495605 0
+13 15 8 0.157837 0.49585 0
+13 15 9 0.158203 0.496094 0
+13 15 10 0.150757 0.49585 0
+13 15 11 0.130493 0.494873 0.119324
+13 15 12 0.0794678 0.493896 0.218506
+13 15 13 0 0.493896 0.305908
+13 15 14 0 0.494385 0.397461
+13 15 15 0 0.493652 0.493896
+13 15 16 0 0.490723 0.59375
+13 15 17 0 0.484131 0.69043
+13 15 18 0 0.474854 0.77832
+13 15 19 0 0.464844 0.85498
+13 15 20 0 0.453857 0.918457
+13 15 21 0 0.424072 0.929199
+13 15 22 0 0.399414 0.936035
+13 15 23 0 0.380615 0.942383
+13 15 24 0 0.366211 0.94873
+13 15 25 0 0.35376 0.956543
+13 15 26 0 0.343018 0.964844
+13 15 27 0 0.333984 0.974609
+13 15 28 0 0.326416 0.98584
+13 15 29 0 0.320557 0.998047
+13 15 30 0 0.315674 1
+13 15 31 0 0.311768 1
+13 16 0 0 0.58252 0
+13 16 1 0 0.58252 0
+13 16 2 0 0.58252 0
+13 16 3 0 0.58252 0
+13 16 4 0 0.58252 0
+13 16 5 0 0.58252 0
+13 16 6 0 0.58252 0
+13 16 7 0 0.58252 0
+13 16 8 0 0.583008 0
+13 16 9 0 0.583008 0
+13 16 10 0 0.583496 0
+13 16 11 0 0.583496 0
+13 16 12 0 0.583984 0.17334
+13 16 13 0 0.584961 0.278076
+13 16 14 0 0.585938 0.376709
+13 16 15 0 0.584961 0.477783
+13 16 16 0 0.581055 0.581055
+13 16 17 0 0.572754 0.681152
+13 16 18 0 0.560547 0.772461
+13 16 19 0 0.546387 0.852051
+13 16 20 0 0.530762 0.91748
+13 16 21 0 0.496094 0.936523
+13 16 22 0 0.4646 0.944824
+13 16 23 0 0.439697 0.95166
+13 16 24 0 0.419922 0.958008
+13 16 25 0 0.402588 0.964844
+13 16 26 0 0.386963 0.972656
+13 16 27 0 0.373535 0.981445
+13 16 28 0 0.362305 0.991699
+13 16 29 0 0.352539 1
+13 16 30 0 0.344238 1
+13 16 31 0 0.337158 1
+13 17 0 0 0.672363 0
+13 17 1 0 0.672363 0
+13 17 2 0 0.672363 0
+13 17 3 0 0.672363 0
+13 17 4 0 0.672363 0
+13 17 5 0 0.672363 0
+13 17 6 0 0.672363 0
+13 17 7 0 0.672363 0
+13 17 8 0 0.672363 0
+13 17 9 0 0.672852 0
+13 17 10 0 0.672852 0
+13 17 11 0 0.67334 0
+13 17 12 0 0.674805 0.0532532
+13 17 13 0 0.676758 0.234253
+13 17 14 0 0.678223 0.345947
+13 17 15 0 0.678223 0.453125
+13 17 16 0 0.674316 0.561523
+13 17 17 0 0.666016 0.666016
+13 17 18 0 0.652344 0.761719
+13 17 19 0 0.635254 0.845215
+13 17 20 0 0.615723 0.913574
+13 17 21 0 0.579102 0.943848
+13 17 22 0 0.541504 0.956543
+13 17 23 0 0.510742 0.964355
+13 17 24 0 0.485107 0.971191
+13 17 25 0 0.462158 0.977539
+13 17 26 0 0.441406 0.984375
+13 17 27 0 0.422607 0.992188
+13 17 28 0 0.406494 1
+13 17 29 0 0.392334 1
+13 17 30 0 0.380127 1
+13 17 31 0 0.369385 1
+13 18 0 0 0.757324 0
+13 18 1 0 0.757324 0
+13 18 2 0 0.757324 0
+13 18 3 0 0.757324 0
+13 18 4 0 0.757324 0
+13 18 5 0 0.757324 0
+13 18 6 0 0.757324 0
+13 18 7 0 0.757324 0
+13 18 8 0 0.757324 0
+13 18 9 0 0.757324 0
+13 18 10 0 0.757812 0
+13 18 11 0 0.757812 0
+13 18 12 0 0.759766 0
+13 18 13 0 0.761719 0.161011
+13 18 14 0 0.76416 0.302734
+13 18 15 0 0.765625 0.419678
+13 18 16 0 0.76416 0.533691
+13 18 17 0 0.757324 0.643555
+13 18 18 0 0.744141 0.744629
+13 18 19 0 0.726074 0.83252
+13 18 20 0 0.70459 0.905273
+13 18 21 0 0.668457 0.947754
+13 18 22 0 0.627441 0.96875
+13 18 23 0 0.591309 0.980469
+13 18 24 0 0.560059 0.987793
+13 18 25 0 0.53125 0.994629
+13 18 26 0 0.504883 1
+13 18 27 0 0.480469 1
+13 18 28 0 0.45874 1
+13 18 29 0 0.439697 1
+13 18 30 0 0.422607 1
+13 18 31 0 0.407471 1
+13 19 0 0 0.833984 0
+13 19 1 0 0.833984 0
+13 19 2 0 0.833984 0
+13 19 3 0 0.833984 0
+13 19 4 0 0.833984 0
+13 19 5 0 0.833984 0
+13 19 6 0 0.833984 0
+13 19 7 0 0.833984 0
+13 19 8 0 0.833984 0
+13 19 9 0 0.833984 0
+13 19 10 0 0.833984 0
+13 19 11 0 0.834473 0
+13 19 12 0 0.835938 0
+13 19 13 0 0.838379 0
+13 19 14 0 0.841797 0.244507
+13 19 15 0 0.844238 0.37793
+13 19 16 0 0.845215 0.498779
+13 19 17 0 0.84082 0.61377
+13 19 18 0 0.830566 0.720215
+13 19 19 0 0.813477 0.813477
+13 19 20 0 0.791016 0.891113
+13 19 21 0 0.758301 0.945801
+13 19 22 0 0.717773 0.978027
+13 19 23 0 0.678223 0.996094
+13 19 24 0 0.64209 1
+13 19 25 0 0.60791 1
+13 19 26 0 0.575195 1
+13 19 27 0 0.544922 1
+13 19 28 0 0.517578 1
+13 19 29 0 0.492676 1
+13 19 30 0 0.470459 1
+13 19 31 0 0.450684 1
+13 20 0 0 0.900391 0
+13 20 1 0 0.900391 0
+13 20 2 0 0.900391 0
+13 20 3 0 0.900391 0
+13 20 4 0 0.900391 0
+13 20 5 0 0.900391 0
+13 20 6 0 0.900391 0
+13 20 7 0 0.900391 0
+13 20 8 0 0.900391 0
+13 20 9 0 0.900879 0
+13 20 10 0 0.900879 0
+13 20 11 0 0.900879 0
+13 20 12 0 0.901367 0
+13 20 13 0 0.904297 0
+13 20 14 0 0.908203 0.156494
+13 20 15 0 0.912109 0.328369
+13 20 16 0 0.915039 0.458984
+13 20 17 0 0.913574 0.579102
+13 20 18 0 0.90625 0.689941
+13 20 19 0 0.891113 0.788086
+13 20 20 0 0.870117 0.870605
+13 20 21 0 0.841797 0.936035
+13 20 22 0 0.804688 0.980469
+13 20 23 0 0.765137 1
+13 20 24 0 0.726562 1
+13 20 25 0 0.6875 1
+13 20 26 0 0.649414 1
+13 20 27 0 0.613281 1
+13 20 28 0 0.580078 1
+13 20 29 0 0.549316 1
+13 20 30 0 0.521973 1
+13 20 31 0 0.49707 1
+13 21 0 0 0.95752 0
+13 21 1 0 0.95752 0
+13 21 2 0 0.95752 0
+13 21 3 0 0.95752 0
+13 21 4 0 0.95752 0
+13 21 5 0 0.95752 0
+13 21 6 0 0.95752 0
+13 21 7 0 0.95752 0
+13 21 8 0 0.95752 0
+13 21 9 0 0.95752 0
+13 21 10 0 0.95752 0
+13 21 11 0 0.95752 0
+13 21 12 0 0.958008 0
+13 21 13 0 0.960449 0
+13 21 14 0 0.964355 0
+13 21 15 0 0.969727 0.267334
+13 21 16 0 0.974121 0.41333
+13 21 17 0 0.975098 0.539062
+13 21 18 0 0.971191 0.654297
+13 21 19 0 0.959961 0.756836
+13 21 20 0 0.941406 0.844238
+13 21 21 0 0.916992 0.91748
+13 21 22 0 0.885254 0.973145
+13 21 23 0 0.848145 1
+13 21 24 0 0.80957 1
+13 21 25 0 0.768066 1
+13 21 26 0 0.726074 1
+13 21 27 0 0.685059 1
+13 21 28 0 0.645996 1
+13 21 29 0 0.609863 1
+13 21 30 0 0.57666 1
+13 21 31 0 0.546875 1
+13 22 0 0 1 0
+13 22 1 0 1 0
+13 22 2 0 1 0
+13 22 3 0 1 0
+13 22 4 0 1 0
+13 22 5 0 1 0
+13 22 6 0 1 0
+13 22 7 0 1 0
+13 22 8 0 1 0
+13 22 9 0 1 0
+13 22 10 0 1 0
+13 22 11 0 1 0
+13 22 12 0 1 0
+13 22 13 0 1 0
+13 22 14 0 1 0
+13 22 15 0 1 0.184692
+13 22 16 0 1 0.362549
+13 22 17 0 1 0.49585
+13 22 18 0 1 0.614746
+13 22 19 0 1 0.720703
+13 22 20 0 1 0.8125
+13 22 21 0 0.980957 0.890625
+13 22 22 0 0.954102 0.95459
+13 22 23 0 0.922363 1
+13 22 24 0 0.88623 1
+13 22 25 0 0.845215 1
+13 22 26 0 0.80127 1
+13 22 27 0 0.756836 1
+13 22 28 0 0.713379 1
+13 22 29 0 0.671875 1
+13 22 30 0 0.633789 1
+13 22 31 0 0.598145 1
+13 23 0 0 1 0
+13 23 1 0 1 0
+13 23 2 0 1 0
+13 23 3 0 1 0
+13 23 4 0 1 0
+13 23 5 0 1 0
+13 23 6 0 1 0
+13 23 7 0 1 0
+13 23 8 0 1 0
+13 23 9 0 1 0
+13 23 10 0 1 0
+13 23 11 0 1 0
+13 23 12 0 1 0
+13 23 13 0 1 0
+13 23 14 0 1 0
+13 23 15 0 1 0
+13 23 16 0 1 0.307617
+13 23 17 0 1 0.45166
+13 23 18 0 1 0.574219
+13 23 19 0 1 0.683105
+13 23 20 0 1 0.77832
+13 23 21 0 1 0.860352
+13 23 22 0 1 0.929199
+13 23 23 0 0.98291 0.98291
+13 23 24 0 0.951172 1
+13 23 25 0 0.913086 1
+13 23 26 0 0.870117 1
+13 23 27 0 0.824219 1
+13 23 28 0 0.777344 1
+13 23 29 0 0.732422 1
+13 23 30 0 0.689453 1
+13 23 31 0 0.649414 1
+13 24 0 0 1 0
+13 24 1 0 1 0
+13 24 2 0 1 0
+13 24 3 0 1 0
+13 24 4 0 1 0
+13 24 5 0 1 0
+13 24 6 0 1 0
+13 24 7 0 1 0
+13 24 8 0 1 0
+13 24 9 0 1 0
+13 24 10 0 1 0
+13 24 11 0 1 0
+13 24 12 0 1 0
+13 24 13 0 1 0
+13 24 14 0 1 0
+13 24 15 0 1 0
+13 24 16 0 1 0.244751
+13 24 17 0 1 0.406006
+13 24 18 0 1 0.533203
+13 24 19 0 1 0.64502
+13 24 20 0 1 0.742188
+13 24 21 0 1 0.827637
+13 24 22 0 1 0.899902
+13 24 23 0 1 0.958496
+13 24 24 0 1 1
+13 24 25 0 0.97168 1
+13 24 26 0 0.930664 1
+13 24 27 0 0.885254 1
+13 24 28 0 0.837402 1
+13 24 29 0 0.789551 1
+13 24 30 0 0.743164 1
+13 24 31 0 0.699219 1
+13 25 0 0 1 0
+13 25 1 0 1 0
+13 25 2 0 1 0
+13 25 3 0 1 0
+13 25 4 0 1 0
+13 25 5 0 1 0
+13 25 6 0 1 0
+13 25 7 0 1 0
+13 25 8 0 1 0
+13 25 9 0 1 0
+13 25 10 0 1 0
+13 25 11 0 1 0
+13 25 12 0 1 0
+13 25 13 0 1 0
+13 25 14 0 1 0
+13 25 15 0 1 0
+13 25 16 0 1 0.148438
+13 25 17 0 1 0.35376
+13 25 18 0 1 0.487793
+13 25 19 0 1 0.602051
+13 25 20 0 1 0.70166
+13 25 21 0 1 0.789551
+13 25 22 0 1 0.865723
+13 25 23 0 1 0.928711
+13 25 24 0 1 0.97998
+13 25 25 0 1 1
+13 25 26 0 0.98877 1
+13 25 27 0 0.945312 1
+13 25 28 0 0.897949 1
+13 25 29 0 0.848633 1
+13 25 30 0 0.799316 1
+13 25 31 0 0.751953 1
+13 26 0 0 1 0
+13 26 1 0 1 0
+13 26 2 0 1 0
+13 26 3 0 1 0
+13 26 4 0 1 0
+13 26 5 0 1 0
+13 26 6 0 1 0
+13 26 7 0 1 0
+13 26 8 0 1 0
+13 26 9 0 1 0
+13 26 10 0 1 0
+13 26 11 0 1 0
+13 26 12 0 1 0
+13 26 13 0 1 0
+13 26 14 0 1 0
+13 26 15 0 1 0
+13 26 16 0 1 0
+13 26 17 0 1 0.291504
+13 26 18 0 1 0.437256
+13 26 19 0 1 0.554688
+13 26 20 0 1 0.65625
+13 26 21 0 1 0.74707
+13 26 22 0 1 0.826172
+13 26 23 0 1 0.89209
+13 26 24 0 1 0.947754
+13 26 25 0 1 0.998047
+13 26 26 0 1 1
+13 26 27 0 1 1
+13 26 28 0 0.957031 1
+13 26 29 0 0.907715 1
+13 26 30 0 0.856934 1
+13 26 31 0 0.807129 1
+13 27 0 0 1 0
+13 27 1 0 1 0
+13 27 2 0 1 0
+13 27 3 0 1 0
+13 27 4 0 1 0
+13 27 5 0 1 0
+13 27 6 0 1 0
+13 27 7 0 1 0
+13 27 8 0 1 0
+13 27 9 0 1 0
+13 27 10 0 1 0
+13 27 11 0 1 0
+13 27 12 0 1 0
+13 27 13 0 1 0
+13 27 14 0 1 0
+13 27 15 0 1 0
+13 27 16 0 1 0
+13 27 17 0 1 0.208496
+13 27 18 0 1 0.380859
+13 27 19 0 1 0.503418
+13 27 20 0 1 0.606934
+13 27 21 0 1 0.699219
+13 27 22 0 1 0.780762
+13 27 23 0 1 0.850098
+13 27 24 0 1 0.90918
+13 27 25 0 1 0.963379
+13 27 26 0 1 1
+13 27 27 0 1 1
+13 27 28 0 1 1
+13 27 29 0 0.965332 1
+13 27 30 0 0.914551 1
+13 27 31 0 0.862793 1
+13 28 0 0 1 0
+13 28 1 0 1 0
+13 28 2 0 1 0
+13 28 3 0 1 0
+13 28 4 0 1 0
+13 28 5 0 1 0
+13 28 6 0 1 0
+13 28 7 0 1 0
+13 28 8 0 1 0
+13 28 9 0 1 0
+13 28 10 0 1 0
+13 28 11 0 1 0
+13 28 12 0 1 0
+13 28 13 0 1 0
+13 28 14 0 1 0
+13 28 15 0 1 0
+13 28 16 0 1 0
+13 28 17 0 1 0
+13 28 18 0 1 0.31543
+13 28 19 0 1 0.447754
+13 28 20 0 1 0.554199
+13 28 21 0 1 0.647949
+13 28 22 0 1 0.730957
+13 28 23 0 1 0.802734
+13 28 24 0 1 0.864258
+13 28 25 0 1 0.922363
+13 28 26 0 1 0.976074
+13 28 27 0 1 1
+13 28 28 0 1 1
+13 28 29 0 1 1
+13 28 30 0 0.970703 1
+13 28 31 0 0.919434 1
+13 29 0 0 1 0
+13 29 1 0 1 0
+13 29 2 0 1 0
+13 29 3 0 1 0
+13 29 4 0 1 0
+13 29 5 0 1 0
+13 29 6 0 1 0
+13 29 7 0 1 0
+13 29 8 0 1 0
+13 29 9 0 1 0
+13 29 10 0 1 0
+13 29 11 0 1 0
+13 29 12 0 1 0
+13 29 13 0 1 0
+13 29 14 0 1 0
+13 29 15 0 1 0
+13 29 16 0 1 0
+13 29 17 0 1 0
+13 29 18 0 1 0.232666
+13 29 19 0 1 0.385742
+13 29 20 0 1 0.496826
+13 29 21 0 1 0.592285
+13 29 22 0 1 0.676758
+13 29 23 0 1 0.749512
+13 29 24 0 1 0.813477
+13 29 25 0 1 0.874512
+13 29 26 0 1 0.932617
+13 29 27 0 1 0.984863
+13 29 28 0 1 1
+13 29 29 0 1 1
+13 29 30 0 1 1
+13 29 31 0 0.975098 1
+13 30 0 0 1 0
+13 30 1 0 1 0
+13 30 2 0 1 0
+13 30 3 0 1 0
+13 30 4 0 1 0
+13 30 5 0 1 0
+13 30 6 0 1 0
+13 30 7 0 1 0
+13 30 8 0 1 0
+13 30 9 0 1 0
+13 30 10 0 1 0
+13 30 11 0 1 0
+13 30 12 0 1 0
+13 30 13 0 1 0
+13 30 14 0 1 0
+13 30 15 0 1 0
+13 30 16 0 1 0
+13 30 17 0 1 0
+13 30 18 0 1 0.0662842
+13 30 19 0 1 0.314941
+13 30 20 0 1 0.434814
+13 30 21 0 1 0.532715
+13 30 22 0 1 0.618164
+13 30 23 0 1 0.692383
+13 30 24 0 1 0.757324
+13 30 25 0 1 0.820801
+13 30 26 0 1 0.881836
+13 30 27 0 1 0.938965
+13 30 28 0 1 0.990723
+13 30 29 0 1 1
+13 30 30 0 1 1
+13 30 31 0 1 1
+13 31 0 0 1 0
+13 31 1 0 1 0
+13 31 2 0 1 0
+13 31 3 0 1 0
+13 31 4 0 1 0
+13 31 5 0 1 0
+13 31 6 0 1 0
+13 31 7 0 1 0
+13 31 8 0 1 0
+13 31 9 0 1 0
+13 31 10 0 1 0
+13 31 11 0 1 0
+13 31 12 0 1 0
+13 31 13 0 1 0
+13 31 14 0 1 0
+13 31 15 0 1 0
+13 31 16 0 1 0
+13 31 17 0 1 0
+13 31 18 0 1 0
+13 31 19 0 1 0.226196
+13 31 20 0 1 0.366699
+13 31 21 0 1 0.469482
+13 31 22 0 1 0.556152
+13 31 23 0 1 0.630859
+13 31 24 0 1 0.697266
+13 31 25 0 1 0.762207
+13 31 26 0 1 0.825684
+13 31 27 0 1 0.886719
+13 31 28 0 1 0.943848
+13 31 29 0 1 0.996094
+13 31 30 0 1 1
+13 31 31 0 1 1
+14 0 0 0.583496 0 0
+14 0 1 0.583496 0 0
+14 0 2 0.583496 0 0
+14 0 3 0.583496 0 0
+14 0 4 0.583496 0 0
+14 0 5 0.583496 0 0
+14 0 6 0.583496 0 0
+14 0 7 0.583496 0 0
+14 0 8 0.583496 0 0
+14 0 9 0.586914 0 0
+14 0 10 0.590332 0 0.0945435
+14 0 11 0.591309 0 0.199707
+14 0 12 0.577148 0 0.285156
+14 0 13 0.530762 0 0.350342
+14 0 14 0.504395 0.09021 0.425781
+14 0 15 0.476074 0.118225 0.514648
+14 0 16 0.430908 0.14563 0.608887
+14 0 17 0.361328 0.171143 0.699707
+14 0 18 0.249512 0.194092 0.783691
+14 0 19 0 0.214111 0.857422
+14 0 20 0 0.229248 0.913086
+14 0 21 0 0.231445 0.918945
+14 0 22 0 0.233643 0.925781
+14 0 23 0 0.236084 0.933594
+14 0 24 0 0.238403 0.941406
+14 0 25 0 0.240845 0.950195
+14 0 26 0 0.243286 0.958984
+14 0 27 0 0.246094 0.969238
+14 0 28 0 0.249268 0.981445
+14 0 29 0 0.252686 0.994141
+14 0 30 0 0.256104 1
+14 0 31 0 0.259766 1
+14 1 0 0.583496 0 0
+14 1 1 0.583496 0 0
+14 1 2 0.583496 0 0
+14 1 3 0.583496 0 0
+14 1 4 0.583496 0 0
+14 1 5 0.583496 0 0
+14 1 6 0.583496 0 0
+14 1 7 0.583496 0 0
+14 1 8 0.583496 0 0
+14 1 9 0.586914 0 0
+14 1 10 0.590332 0 0.0944824
+14 1 11 0.591309 0 0.199707
+14 1 12 0.577148 0 0.285156
+14 1 13 0.530762 0 0.350342
+14 1 14 0.504395 0.0904541 0.425781
+14 1 15 0.476074 0.118408 0.514648
+14 1 16 0.430908 0.14563 0.608887
+14 1 17 0.361328 0.171265 0.699707
+14 1 18 0.249512 0.194214 0.783691
+14 1 19 0 0.214111 0.857422
+14 1 20 0 0.229248 0.913086
+14 1 21 0 0.231445 0.918945
+14 1 22 0 0.233765 0.925781
+14 1 23 0 0.236084 0.933594
+14 1 24 0 0.238403 0.941406
+14 1 25 0 0.240845 0.950195
+14 1 26 0 0.243286 0.958984
+14 1 27 0 0.246094 0.969238
+14 1 28 0 0.249268 0.981445
+14 1 29 0 0.252686 0.994141
+14 1 30 0 0.256104 1
+14 1 31 0 0.259766 1
+14 2 0 0.583496 0 0
+14 2 1 0.583496 0 0
+14 2 2 0.583496 0 0
+14 2 3 0.583496 0 0
+14 2 4 0.583496 0 0
+14 2 5 0.583496 0 0
+14 2 6 0.583496 0 0
+14 2 7 0.583496 0 0
+14 2 8 0.583496 0 0
+14 2 9 0.586914 0 0
+14 2 10 0.590332 0 0.0944214
+14 2 11 0.591309 0 0.199707
+14 2 12 0.577148 0 0.285156
+14 2 13 0.530762 0 0.350342
+14 2 14 0.504395 0.0908813 0.425781
+14 2 15 0.476074 0.118652 0.514648
+14 2 16 0.430908 0.145874 0.608887
+14 2 17 0.361328 0.171387 0.699707
+14 2 18 0.24939 0.194336 0.783691
+14 2 19 0 0.214233 0.857422
+14 2 20 0 0.22937 0.913086
+14 2 21 0 0.231567 0.918945
+14 2 22 0 0.233765 0.925781
+14 2 23 0 0.236084 0.933594
+14 2 24 0 0.238403 0.941406
+14 2 25 0 0.240845 0.950195
+14 2 26 0 0.243408 0.958984
+14 2 27 0 0.246094 0.969238
+14 2 28 0 0.249268 0.981445
+14 2 29 0 0.252686 0.994141
+14 2 30 0 0.256104 1
+14 2 31 0 0.259766 1
+14 3 0 0.583496 0 0
+14 3 1 0.583496 0 0
+14 3 2 0.583496 0 0
+14 3 3 0.583496 0 0
+14 3 4 0.583496 0 0
+14 3 5 0.583496 0 0
+14 3 6 0.583496 0 0
+14 3 7 0.583496 0 0
+14 3 8 0.583496 0 0
+14 3 9 0.586914 0 0
+14 3 10 0.590332 0 0.0942993
+14 3 11 0.591309 0 0.199585
+14 3 12 0.577148 0 0.285156
+14 3 13 0.530762 0 0.350342
+14 3 14 0.504395 0.0916138 0.425781
+14 3 15 0.476074 0.119141 0.514648
+14 3 16 0.430908 0.14624 0.608887
+14 3 17 0.361328 0.171631 0.699707
+14 3 18 0.249268 0.19458 0.783691
+14 3 19 0 0.214478 0.857422
+14 3 20 0 0.229492 0.913086
+14 3 21 0 0.231567 0.918945
+14 3 22 0 0.233887 0.925781
+14 3 23 0 0.236206 0.933594
+14 3 24 0 0.238525 0.941406
+14 3 25 0 0.240845 0.950195
+14 3 26 0 0.243408 0.958984
+14 3 27 0 0.246216 0.969238
+14 3 28 0 0.249268 0.981445
+14 3 29 0 0.252686 0.994141
+14 3 30 0 0.256104 1
+14 3 31 0 0.259766 1
+14 4 0 0.583496 0 0
+14 4 1 0.583496 0 0
+14 4 2 0.583496 0 0
+14 4 3 0.583496 0 0
+14 4 4 0.583496 0 0
+14 4 5 0.583496 0 0
+14 4 6 0.583496 0 0
+14 4 7 0.583496 0 0
+14 4 8 0.583496 0 0
+14 4 9 0.586426 0 0
+14 4 10 0.590332 0 0.0939941
+14 4 11 0.591309 0 0.199463
+14 4 12 0.577148 0 0.285156
+14 4 13 0.530762 0 0.350342
+14 4 14 0.504395 0.0930176 0.425781
+14 4 15 0.476074 0.120117 0.514648
+14 4 16 0.430664 0.146973 0.608887
+14 4 17 0.361084 0.172119 0.699707
+14 4 18 0.249146 0.194946 0.783691
+14 4 19 0 0.214722 0.857422
+14 4 20 0 0.229736 0.913086
+14 4 21 0 0.231812 0.918945
+14 4 22 0 0.234009 0.925781
+14 4 23 0 0.236328 0.933594
+14 4 24 0 0.238647 0.941406
+14 4 25 0 0.240967 0.950195
+14 4 26 0 0.24353 0.958984
+14 4 27 0 0.246216 0.969238
+14 4 28 0 0.24939 0.981445
+14 4 29 0 0.252686 0.994141
+14 4 30 0 0.256348 1
+14 4 31 0 0.259766 1
+14 5 0 0.583496 0 0
+14 5 1 0.583496 0 0
+14 5 2 0.583496 0 0
+14 5 3 0.583496 0 0
+14 5 4 0.583496 0 0
+14 5 5 0.583496 0 0
+14 5 6 0.583496 0 0
+14 5 7 0.583496 0 0
+14 5 8 0.583496 0 0
+14 5 9 0.586426 0 0
+14 5 10 0.589844 0 0.0935059
+14 5 11 0.59082 0 0.199341
+14 5 12 0.577148 0 0.284912
+14 5 13 0.530273 0 0.350342
+14 5 14 0.503906 0.0955811 0.425781
+14 5 15 0.47583 0.121887 0.514648
+14 5 16 0.430664 0.148193 0.608887
+14 5 17 0.36084 0.173096 0.699707
+14 5 18 0.248779 0.195679 0.783691
+14 5 19 0 0.215332 0.857422
+14 5 20 0 0.230225 0.913086
+14 5 21 0 0.232178 0.918945
+14 5 22 0 0.234375 0.925781
+14 5 23 0 0.236572 0.933594
+14 5 24 0 0.238892 0.941406
+14 5 25 0 0.241211 0.950195
+14 5 26 0 0.243652 0.959473
+14 5 27 0 0.246338 0.969238
+14 5 28 0 0.249512 0.981445
+14 5 29 0 0.25293 0.994141
+14 5 30 0 0.256348 1
+14 5 31 0 0.26001 1
+14 6 0 0.583008 0 0
+14 6 1 0.583008 0 0
+14 6 2 0.583008 0 0
+14 6 3 0.583008 0 0
+14 6 4 0.583008 0 0
+14 6 5 0.583008 0 0
+14 6 6 0.583008 0 0
+14 6 7 0.583008 0 0
+14 6 8 0.583008 0 0
+14 6 9 0.585938 0 0
+14 6 10 0.589844 0 0.0925293
+14 6 11 0.59082 0 0.198975
+14 6 12 0.577148 0 0.284912
+14 6 13 0.530273 0 0.350342
+14 6 14 0.503906 0.100342 0.425781
+14 6 15 0.475586 0.125244 0.514648
+14 6 16 0.430176 0.150635 0.608398
+14 6 17 0.360596 0.174927 0.699707
+14 6 18 0.248169 0.197144 0.783691
+14 6 19 0 0.216431 0.857422
+14 6 20 0 0.231079 0.913086
+14 6 21 0 0.23291 0.918945
+14 6 22 0 0.234863 0.925781
+14 6 23 0 0.237061 0.933594
+14 6 24 0 0.239258 0.941895
+14 6 25 0 0.241577 0.950195
+14 6 26 0 0.243896 0.959473
+14 6 27 0 0.246582 0.969238
+14 6 28 0 0.249756 0.981445
+14 6 29 0 0.25293 0.994141
+14 6 30 0 0.256592 1
+14 6 31 0 0.26001 1
+14 7 0 0.58252 0 0
+14 7 1 0.58252 0 0
+14 7 2 0.58252 0 0
+14 7 3 0.58252 0 0
+14 7 4 0.58252 0 0
+14 7 5 0.58252 0 0
+14 7 6 0.58252 0 0
+14 7 7 0.58252 0 0
+14 7 8 0.58252 0 0
+14 7 9 0.585449 0 0
+14 7 10 0.589355 0 0.0906372
+14 7 11 0.589844 0 0.198364
+14 7 12 0.57666 0 0.284668
+14 7 13 0.529785 0.0059166 0.350342
+14 7 14 0.50293 0.108765 0.425537
+14 7 15 0.474854 0.131348 0.514648
+14 7 16 0.429443 0.155273 0.608398
+14 7 17 0.359619 0.178467 0.699707
+14 7 18 0.246826 0.199829 0.783691
+14 7 19 0 0.218628 0.857422
+14 7 20 0 0.23291 0.913574
+14 7 21 0 0.234375 0.918945
+14 7 22 0 0.236084 0.925781
+14 7 23 0 0.238037 0.933594
+14 7 24 0 0.240112 0.941895
+14 7 25 0 0.242188 0.950195
+14 7 26 0 0.244507 0.959473
+14 7 27 0 0.247192 0.969727
+14 7 28 0 0.250244 0.981445
+14 7 29 0 0.253418 0.994141
+14 7 30 0 0.256836 1
+14 7 31 0 0.260254 1
+14 8 0 0.581055 0 0
+14 8 1 0.581055 0 0
+14 8 2 0.581055 0 0
+14 8 3 0.581055 0 0
+14 8 4 0.581055 0 0
+14 8 5 0.581055 0 0
+14 8 6 0.581055 0 0
+14 8 7 0.581055 0 0
+14 8 8 0.581055 0 0
+14 8 9 0.583984 0 0
+14 8 10 0.587891 0 0.0870361
+14 8 11 0.588379 0 0.197021
+14 8 12 0.57666 0 0.28418
+14 8 13 0.529297 0.0698853 0.350098
+14 8 14 0.501953 0.122986 0.425293
+14 8 15 0.473633 0.142334 0.514648
+14 8 16 0.428223 0.163818 0.608398
+14 8 17 0.35791 0.185059 0.699707
+14 8 18 0.244141 0.205078 0.783691
+14 8 19 0 0.222778 0.857422
+14 8 20 0 0.236328 0.913574
+14 8 21 0 0.237061 0.919434
+14 8 22 0 0.238281 0.92627
+14 8 23 0 0.239868 0.933594
+14 8 24 0 0.241699 0.941895
+14 8 25 0 0.24353 0.950195
+14 8 26 0 0.245728 0.959473
+14 8 27 0 0.248169 0.969727
+14 8 28 0 0.250977 0.981445
+14 8 29 0 0.25415 0.994141
+14 8 30 0 0.257324 1
+14 8 31 0 0.260986 1
+14 9 0 0.578125 0 0
+14 9 1 0.578125 0 0
+14 9 2 0.578125 0 0
+14 9 3 0.578125 0 0
+14 9 4 0.578125 0 0
+14 9 5 0.578125 0 0
+14 9 6 0.578125 0 0
+14 9 7 0.578125 0 0
+14 9 8 0.578125 0 0
+14 9 9 0.581055 0 0
+14 9 10 0.584961 0 0.0802002
+14 9 11 0.586426 0 0.194336
+14 9 12 0.575684 0 0.282959
+14 9 13 0.527832 0.109253 0.350098
+14 9 14 0.499512 0.145142 0.425049
+14 9 15 0.471191 0.160645 0.51416
+14 9 16 0.425537 0.178467 0.608398
+14 9 17 0.354736 0.196899 0.699707
+14 9 18 0.239014 0.214478 0.783691
+14 9 19 0 0.230469 0.857422
+14 9 20 0 0.242676 0.914062
+14 9 21 0 0.242188 0.919922
+14 9 22 0 0.242432 0.926758
+14 9 23 0 0.243408 0.934082
+14 9 24 0 0.244751 0.942383
+14 9 25 0 0.246094 0.950684
+14 9 26 0 0.247925 0.959473
+14 9 27 0 0.25 0.969727
+14 9 28 0 0.252686 0.981445
+14 9 29 0 0.255615 0.994141
+14 9 30 0 0.258545 1
+14 9 31 0 0.261963 1
+14 10 0 0.571777 0.116272 0
+14 10 1 0.571777 0.116333 0
+14 10 2 0.571777 0.116333 0
+14 10 3 0.571777 0.116394 0
+14 10 4 0.571777 0.116516 0
+14 10 5 0.571777 0.11676 0
+14 10 6 0.571777 0.117188 0
+14 10 7 0.571777 0.117981 0
+14 10 8 0.571777 0.119568 0
+14 10 9 0.574219 0.120789 0
+14 10 10 0.578613 0.117371 0.0690308
+14 10 11 0.581543 0.111206 0.189331
+14 10 12 0.573242 0.110291 0.280762
+14 10 13 0.525879 0.1521 0.350098
+14 10 14 0.495361 0.176514 0.424072
+14 10 15 0.466553 0.187988 0.513672
+14 10 16 0.42041 0.20166 0.60791
+14 10 17 0.348877 0.216187 0.699707
+14 10 18 0.229248 0.230347 0.783691
+14 10 19 0 0.243652 0.857422
+14 10 20 0 0.253906 0.914551
+14 10 21 0 0.250977 0.92041
+14 10 22 0 0.249878 0.927246
+14 10 23 0 0.249634 0.935059
+14 10 24 0 0.25 0.942871
+14 10 25 0 0.250732 0.950684
+14 10 26 0 0.251709 0.959961
+14 10 27 0 0.253418 0.969727
+14 10 28 0 0.255615 0.981934
+14 10 29 0 0.258057 0.994629
+14 10 30 0 0.260742 1
+14 10 31 0 0.263672 1
+14 11 0 0.55957 0.196411 0
+14 11 1 0.55957 0.196411 0
+14 11 2 0.55957 0.196533 0
+14 11 3 0.55957 0.196533 0
+14 11 4 0.55957 0.196533 0
+14 11 5 0.55957 0.196655 0
+14 11 6 0.559082 0.196899 0
+14 11 7 0.559082 0.197266 0
+14 11 8 0.559082 0.197998 0
+14 11 9 0.561035 0.198975 0
+14 11 10 0.564453 0.198486 0.0581055
+14 11 11 0.568848 0.196899 0.181763
+14 11 12 0.564941 0.194092 0.275391
+14 11 13 0.522461 0.202759 0.349854
+14 11 14 0.487549 0.217773 0.422607
+14 11 15 0.458496 0.225586 0.512695
+14 11 16 0.411621 0.235107 0.607422
+14 11 17 0.337891 0.245117 0.699219
+14 11 18 0.210571 0.255127 0.783691
+14 11 19 0 0.264648 0.85791
+14 11 20 0 0.271973 0.916016
+14 11 21 0 0.265869 0.921387
+14 11 22 0 0.262207 0.928711
+14 11 23 0 0.260254 0.936035
+14 11 24 0 0.259033 0.943359
+14 11 25 0 0.258301 0.951172
+14 11 26 0 0.258545 0.960449
+14 11 27 0 0.259033 0.970215
+14 11 28 0 0.260498 0.981934
+14 11 29 0 0.262207 0.994629
+14 11 30 0 0.264404 1
+14 11 31 0 0.26709 1
+14 12 0 0.537109 0.26709 0
+14 12 1 0.537109 0.26709 0
+14 12 2 0.537109 0.26709 0
+14 12 3 0.537109 0.26709 0
+14 12 4 0.537109 0.26709 0
+14 12 5 0.537109 0.26709 0
+14 12 6 0.537109 0.267334 0
+14 12 7 0.537109 0.267578 0
+14 12 8 0.537109 0.267822 0
+14 12 9 0.537109 0.268555 0
+14 12 10 0.538086 0.269287 0.0723877
+14 12 11 0.540039 0.270508 0.175903
+14 12 12 0.54248 0.270996 0.264648
+14 12 13 0.516602 0.266113 0.349365
+14 12 14 0.473877 0.27002 0.420166
+14 12 15 0.444092 0.274902 0.510742
+14 12 16 0.395508 0.280518 0.606445
+14 12 17 0.318115 0.285889 0.69873
+14 12 18 0.171509 0.291016 0.783203
+14 12 19 0 0.295898 0.85791
+14 12 20 0 0.299561 0.917969
+14 12 21 0 0.288818 0.923828
+14 12 22 0 0.281738 0.930664
+14 12 23 0 0.276611 0.9375
+14 12 24 0 0.273438 0.944336
+14 12 25 0 0.270996 0.952148
+14 12 26 0 0.269287 0.961426
+14 12 27 0 0.268555 0.971191
+14 12 28 0 0.268799 0.98291
+14 12 29 0 0.269531 0.995605
+14 12 30 0 0.270752 1
+14 12 31 0 0.272461 1
+14 13 0 0.51123 0.338623 0
+14 13 1 0.51123 0.338623 0
+14 13 2 0.51123 0.338867 0
+14 13 3 0.51123 0.338867 0
+14 13 4 0.51123 0.338867 0
+14 13 5 0.51123 0.338867 0
+14 13 6 0.51123 0.338867 0
+14 13 7 0.51123 0.339111 0
+14 13 8 0.51123 0.339355 0
+14 13 9 0.510742 0.339844 0
+14 13 10 0.507812 0.3396 0.0991821
+14 13 11 0.502441 0.339111 0.18042
+14 13 12 0.495117 0.339111 0.254639
+14 13 13 0.489014 0.34082 0.339111
+14 13 14 0.450195 0.333252 0.415527
+14 13 15 0.418701 0.335938 0.507812
+14 13 16 0.366943 0.338135 0.604004
+14 13 17 0.280762 0.339111 0.697266
+14 13 18 0 0.339355 0.782715
+14 13 19 0 0.339355 0.85791
+14 13 20 0 0.338867 0.919922
+14 13 21 0 0.322266 0.92627
+14 13 22 0 0.310059 0.932617
+14 13 23 0 0.301514 0.939453
+14 13 24 0 0.295166 0.946289
+14 13 25 0 0.290039 0.954102
+14 13 26 0 0.286133 0.962891
+14 13 27 0 0.283447 0.972656
+14 13 28 0 0.281738 0.983887
+14 13 29 0 0.280762 0.996582
+14 13 30 0 0.280518 1
+14 13 31 0 0.281006 1
+14 14 0 0.480469 0.426758 0
+14 14 1 0.480469 0.426758 0
+14 14 2 0.480469 0.426758 0
+14 14 3 0.480469 0.426758 0
+14 14 4 0.480469 0.426758 0
+14 14 5 0.480469 0.426758 0
+14 14 6 0.480469 0.426758 0
+14 14 7 0.480469 0.427002 0
+14 14 8 0.480469 0.427246 0
+14 14 9 0.480469 0.42749 0
+14 14 10 0.477539 0.427002 0.0503845
+14 14 11 0.471191 0.425781 0.169189
+14 14 12 0.459717 0.422852 0.250244
+14 14 13 0.439941 0.41748 0.329102
+14 14 14 0.407959 0.407959 0.407959
+14 14 15 0.373047 0.408691 0.501953
+14 14 16 0.313232 0.408203 0.600098
+14 14 17 0.199341 0.405273 0.694824
+14 14 18 0 0.400879 0.781738
+14 14 19 0 0.395752 0.857422
+14 14 20 0 0.390137 0.92041
+14 14 21 0 0.367676 0.930176
+14 14 22 0 0.349609 0.936035
+14 14 23 0 0.336182 0.942383
+14 14 24 0 0.326172 0.949219
+14 14 25 0 0.317627 0.956543
+14 14 26 0 0.310791 0.965332
+14 14 27 0 0.304932 0.975098
+14 14 28 0 0.300781 0.986328
+14 14 29 0 0.297607 0.998535
+14 14 30 0 0.29541 1
+14 14 31 0 0.293945 1
+14 15 0 0.397217 0.505371 0
+14 15 1 0.397217 0.505371 0
+14 15 2 0.397217 0.505371 0
+14 15 3 0.397217 0.505371 0
+14 15 4 0.397217 0.505371 0
+14 15 5 0.397217 0.505371 0
+14 15 6 0.397217 0.505371 0
+14 15 7 0.397217 0.505371 0
+14 15 8 0.397217 0.505859 0
+14 15 9 0.397217 0.505859 0
+14 15 10 0.395508 0.505859 0
+14 15 11 0.38916 0.504395 0.11499
+14 15 12 0.377441 0.501465 0.21936
+14 15 13 0.35791 0.496094 0.306152
+14 15 14 0.328857 0.492188 0.39502
+14 15 15 0.282715 0.491943 0.491943
+14 15 16 0.188721 0.489502 0.592773
+14 15 17 0 0.483643 0.689941
+14 15 18 0 0.474854 0.778809
+14 15 19 0 0.465088 0.856445
+14 15 20 0 0.454346 0.92041
+14 15 21 0 0.42627 0.935059
+14 15 22 0 0.401367 0.941406
+14 15 23 0 0.382568 0.947754
+14 15 24 0 0.36792 0.954102
+14 15 25 0 0.355225 0.961426
+14 15 26 0 0.344238 0.969727
+14 15 27 0 0.335205 0.978516
+14 15 28 0 0.327637 0.989746
+14 15 29 0 0.321533 1
+14 15 30 0 0.316406 1
+14 15 31 0 0.3125 1
+14 16 0 0.236694 0.586426 0
+14 16 1 0.236694 0.586426 0
+14 16 2 0.236694 0.586426 0
+14 16 3 0.236694 0.586426 0
+14 16 4 0.236694 0.586426 0
+14 16 5 0.236694 0.586426 0
+14 16 6 0.236816 0.586426 0
+14 16 7 0.236816 0.586426 0
+14 16 8 0.236816 0.586426 0
+14 16 9 0.237061 0.586426 0
+14 16 10 0.237305 0.586914 0
+14 16 11 0.228027 0.586426 0
+14 16 12 0.209839 0.585449 0.170288
+14 16 13 0.174805 0.584473 0.276123
+14 16 14 0.0783081 0.583984 0.374756
+14 16 15 0 0.583496 0.476074
+14 16 16 0 0.580078 0.580078
+14 16 17 0 0.572266 0.680664
+14 16 18 0 0.560547 0.772949
+14 16 19 0 0.546387 0.853027
+14 16 20 0 0.53125 0.918945
+14 16 21 0 0.498291 0.941406
+14 16 22 0 0.466309 0.949219
+14 16 23 0 0.441406 0.956055
+14 16 24 0 0.421387 0.961914
+14 16 25 0 0.403809 0.96875
+14 16 26 0 0.388428 0.976562
+14 16 27 0 0.374756 0.985352
+14 16 28 0 0.363281 0.995117
+14 16 29 0 0.353271 1
+14 16 30 0 0.344971 1
+14 16 31 0 0.337891 1
+14 17 0 0 0.67334 0
+14 17 1 0 0.67334 0
+14 17 2 0 0.67334 0
+14 17 3 0 0.67334 0
+14 17 4 0 0.67334 0
+14 17 5 0 0.67334 0
+14 17 6 0 0.67334 0
+14 17 7 0 0.67334 0
+14 17 8 0 0.67334 0
+14 17 9 0 0.673828 0
+14 17 10 0 0.673828 0
+14 17 11 0 0.674316 0
+14 17 12 0 0.674805 0.0270538
+14 17 13 0 0.675781 0.231934
+14 17 14 0 0.676758 0.344238
+14 17 15 0 0.676758 0.451904
+14 17 16 0 0.67334 0.560547
+14 17 17 0 0.665527 0.665527
+14 17 18 0 0.652344 0.761719
+14 17 19 0 0.635742 0.845703
+14 17 20 0 0.616211 0.915039
+14 17 21 0 0.581055 0.947266
+14 17 22 0 0.542969 0.959473
+14 17 23 0 0.511719 0.967773
+14 17 24 0 0.486328 0.974121
+14 17 25 0 0.463379 0.980469
+14 17 26 0 0.442383 0.987305
+14 17 27 0 0.423828 0.995117
+14 17 28 0 0.407471 1
+14 17 29 0 0.393311 1
+14 17 30 0 0.380859 1
+14 17 31 0 0.370117 1
+14 18 0 0 0.757812 0
+14 18 1 0 0.757812 0
+14 18 2 0 0.757812 0
+14 18 3 0 0.757812 0
+14 18 4 0 0.757812 0
+14 18 5 0 0.757812 0
+14 18 6 0 0.757812 0
+14 18 7 0 0.757812 0
+14 18 8 0 0.758301 0
+14 18 9 0 0.758301 0
+14 18 10 0 0.758301 0
+14 18 11 0 0.758789 0
+14 18 12 0 0.759766 0
+14 18 13 0 0.761719 0.157471
+14 18 14 0 0.763672 0.30127
+14 18 15 0 0.765137 0.418701
+14 18 16 0 0.763672 0.532715
+14 18 17 0 0.756836 0.643066
+14 18 18 0 0.744141 0.744629
+14 18 19 0 0.726562 0.833008
+14 18 20 0 0.705078 0.90625
+14 18 21 0 0.669922 0.950195
+14 18 22 0 0.628906 0.970703
+14 18 23 0 0.592285 0.981934
+14 18 24 0 0.561035 0.989746
+14 18 25 0 0.532227 0.996582
+14 18 26 0 0.505371 1
+14 18 27 0 0.481201 1
+14 18 28 0 0.459717 1
+14 18 29 0 0.44043 1
+14 18 30 0 0.42334 1
+14 18 31 0 0.408203 1
+14 19 0 0 0.834961 0
+14 19 1 0 0.834961 0
+14 19 2 0 0.834961 0
+14 19 3 0 0.834961 0
+14 19 4 0 0.834961 0
+14 19 5 0 0.834961 0
+14 19 6 0 0.834961 0
+14 19 7 0 0.834961 0
+14 19 8 0 0.834961 0
+14 19 9 0 0.834961 0
+14 19 10 0 0.835449 0
+14 19 11 0 0.835449 0
+14 19 12 0 0.836426 0
+14 19 13 0 0.838867 0
+14 19 14 0 0.841797 0.24292
+14 19 15 0 0.844238 0.376953
+14 19 16 0 0.844727 0.498291
+14 19 17 0 0.84082 0.613281
+14 19 18 0 0.830566 0.720215
+14 19 19 0 0.813477 0.813965
+14 19 20 0 0.791504 0.891602
+14 19 21 0 0.758789 0.947266
+14 19 22 0 0.718262 0.979004
+14 19 23 0 0.678711 0.99707
+14 19 24 0 0.643066 1
+14 19 25 0 0.608398 1
+14 19 26 0 0.575684 1
+14 19 27 0 0.54541 1
+14 19 28 0 0.518066 1
+14 19 29 0 0.493164 1
+14 19 30 0 0.470947 1
+14 19 31 0 0.451172 1
+14 20 0 0 0.901855 0
+14 20 1 0 0.901855 0
+14 20 2 0 0.901855 0
+14 20 3 0 0.901855 0
+14 20 4 0 0.901855 0
+14 20 5 0 0.901855 0
+14 20 6 0 0.901855 0
+14 20 7 0 0.901855 0
+14 20 8 0 0.901855 0
+14 20 9 0 0.902344 0
+14 20 10 0 0.902344 0
+14 20 11 0 0.902344 0
+14 20 12 0 0.902832 0
+14 20 13 0 0.905273 0
+14 20 14 0 0.90918 0.153564
+14 20 15 0 0.912598 0.327637
+14 20 16 0 0.915039 0.458496
+14 20 17 0 0.913574 0.578613
+14 20 18 0 0.90625 0.689941
+14 20 19 0 0.891602 0.788086
+14 20 20 0 0.870605 0.871094
+14 20 21 0 0.842285 0.937012
+14 20 22 0 0.805664 0.981445
+14 20 23 0 0.765625 1
+14 20 24 0 0.727051 1
+14 20 25 0 0.687988 1
+14 20 26 0 0.649902 1
+14 20 27 0 0.61377 1
+14 20 28 0 0.580566 1
+14 20 29 0 0.549805 1
+14 20 30 0 0.522461 1
+14 20 31 0 0.497314 1
+14 21 0 0 0.958984 0
+14 21 1 0 0.958984 0
+14 21 2 0 0.958984 0
+14 21 3 0 0.958984 0
+14 21 4 0 0.958984 0
+14 21 5 0 0.958984 0
+14 21 6 0 0.958984 0
+14 21 7 0 0.958984 0
+14 21 8 0 0.959473 0
+14 21 9 0 0.959473 0
+14 21 10 0 0.959473 0
+14 21 11 0 0.959473 0
+14 21 12 0 0.959961 0
+14 21 13 0 0.961914 0
+14 21 14 0 0.96582 0
+14 21 15 0 0.970215 0.266357
+14 21 16 0 0.974609 0.412842
+14 21 17 0 0.975586 0.539062
+14 21 18 0 0.971191 0.654297
+14 21 19 0 0.959961 0.756836
+14 21 20 0 0.941895 0.844238
+14 21 21 0 0.91748 0.917969
+14 21 22 0 0.88623 0.974121
+14 21 23 0 0.849121 1
+14 21 24 0 0.810059 1
+14 21 25 0 0.768555 1
+14 21 26 0 0.726562 1
+14 21 27 0 0.685547 1
+14 21 28 0 0.646484 1
+14 21 29 0 0.610352 1
+14 21 30 0 0.577148 1
+14 21 31 0 0.546875 1
+14 22 0 0 1 0
+14 22 1 0 1 0
+14 22 2 0 1 0
+14 22 3 0 1 0
+14 22 4 0 1 0
+14 22 5 0 1 0
+14 22 6 0 1 0
+14 22 7 0 1 0
+14 22 8 0 1 0
+14 22 9 0 1 0
+14 22 10 0 1 0
+14 22 11 0 1 0
+14 22 12 0 1 0
+14 22 13 0 1 0
+14 22 14 0 1 0
+14 22 15 0 1 0.182861
+14 22 16 0 1 0.362305
+14 22 17 0 1 0.49585
+14 22 18 0 1 0.614746
+14 22 19 0 1 0.721191
+14 22 20 0 1 0.8125
+14 22 21 0 0.981934 0.891113
+14 22 22 0 0.955078 0.955078
+14 22 23 0 0.922852 1
+14 22 24 0 0.886719 1
+14 22 25 0 0.845703 1
+14 22 26 0 0.801758 1
+14 22 27 0 0.757324 1
+14 22 28 0 0.713867 1
+14 22 29 0 0.672363 1
+14 22 30 0 0.633789 1
+14 22 31 0 0.598633 1
+14 23 0 0 1 0
+14 23 1 0 1 0
+14 23 2 0 1 0
+14 23 3 0 1 0
+14 23 4 0 1 0
+14 23 5 0 1 0
+14 23 6 0 1 0
+14 23 7 0 1 0
+14 23 8 0 1 0
+14 23 9 0 1 0
+14 23 10 0 1 0
+14 23 11 0 1 0
+14 23 12 0 1 0
+14 23 13 0 1 0
+14 23 14 0 1 0
+14 23 15 0 1 0
+14 23 16 0 1 0.307129
+14 23 17 0 1 0.451416
+14 23 18 0 1 0.574219
+14 23 19 0 1 0.683594
+14 23 20 0 1 0.77832
+14 23 21 0 1 0.86084
+14 23 22 0 1 0.929688
+14 23 23 0 0.983398 0.983887
+14 23 24 0 0.952148 1
+14 23 25 0 0.914062 1
+14 23 26 0 0.870605 1
+14 23 27 0 0.824219 1
+14 23 28 0 0.777832 1
+14 23 29 0 0.732422 1
+14 23 30 0 0.689453 1
+14 23 31 0 0.649414 1
+14 24 0 0 1 0
+14 24 1 0 1 0
+14 24 2 0 1 0
+14 24 3 0 1 0
+14 24 4 0 1 0
+14 24 5 0 1 0
+14 24 6 0 1 0
+14 24 7 0 1 0
+14 24 8 0 1 0
+14 24 9 0 1 0
+14 24 10 0 1 0
+14 24 11 0 1 0
+14 24 12 0 1 0
+14 24 13 0 1 0
+14 24 14 0 1 0
+14 24 15 0 1 0
+14 24 16 0 1 0.243896
+14 24 17 0 1 0.406006
+14 24 18 0 1 0.533203
+14 24 19 0 1 0.64502
+14 24 20 0 1 0.742676
+14 24 21 0 1 0.828125
+14 24 22 0 1 0.900391
+14 24 23 0 1 0.958984
+14 24 24 0 1 1
+14 24 25 0 0.972168 1
+14 24 26 0 0.931641 1
+14 24 27 0 0.885742 1
+14 24 28 0 0.837891 1
+14 24 29 0 0.790039 1
+14 24 30 0 0.743652 1
+14 24 31 0 0.699219 1
+14 25 0 0 1 0
+14 25 1 0 1 0
+14 25 2 0 1 0
+14 25 3 0 1 0
+14 25 4 0 1 0
+14 25 5 0 1 0
+14 25 6 0 1 0
+14 25 7 0 1 0
+14 25 8 0 1 0
+14 25 9 0 1 0
+14 25 10 0 1 0
+14 25 11 0 1 0
+14 25 12 0 1 0
+14 25 13 0 1 0
+14 25 14 0 1 0
+14 25 15 0 1 0
+14 25 16 0 1 0.146606
+14 25 17 0 1 0.35376
+14 25 18 0 1 0.488037
+14 25 19 0 1 0.602051
+14 25 20 0 1 0.70166
+14 25 21 0 1 0.790039
+14 25 22 0 1 0.866211
+14 25 23 0 1 0.928711
+14 25 24 0 1 0.980469
+14 25 25 0 1 1
+14 25 26 0 0.989258 1
+14 25 27 0 0.945801 1
+14 25 28 0 0.898438 1
+14 25 29 0 0.849121 1
+14 25 30 0 0.799805 1
+14 25 31 0 0.751953 1
+14 26 0 0 1 0
+14 26 1 0 1 0
+14 26 2 0 1 0
+14 26 3 0 1 0
+14 26 4 0 1 0
+14 26 5 0 1 0
+14 26 6 0 1 0
+14 26 7 0 1 0
+14 26 8 0 1 0
+14 26 9 0 1 0
+14 26 10 0 1 0
+14 26 11 0 1 0
+14 26 12 0 1 0
+14 26 13 0 1 0
+14 26 14 0 1 0
+14 26 15 0 1 0
+14 26 16 0 1 0
+14 26 17 0 1 0.291016
+14 26 18 0 1 0.4375
+14 26 19 0 1 0.555176
+14 26 20 0 1 0.656738
+14 26 21 0 1 0.74707
+14 26 22 0 1 0.826172
+14 26 23 0 1 0.892578
+14 26 24 0 1 0.948242
+14 26 25 0 1 0.998535
+14 26 26 0 1 1
+14 26 27 0 1 1
+14 26 28 0 0.95752 1
+14 26 29 0 0.908203 1
+14 26 30 0 0.857422 1
+14 26 31 0 0.807129 1
+14 27 0 0 1 0
+14 27 1 0 1 0
+14 27 2 0 1 0
+14 27 3 0 1 0
+14 27 4 0 1 0
+14 27 5 0 1 0
+14 27 6 0 1 0
+14 27 7 0 1 0
+14 27 8 0 1 0
+14 27 9 0 1 0
+14 27 10 0 1 0
+14 27 11 0 1 0
+14 27 12 0 1 0
+14 27 13 0 1 0
+14 27 14 0 1 0
+14 27 15 0 1 0
+14 27 16 0 1 0
+14 27 17 0 1 0.207764
+14 27 18 0 1 0.380859
+14 27 19 0 1 0.503906
+14 27 20 0 1 0.607422
+14 27 21 0 1 0.699707
+14 27 22 0 1 0.78125
+14 27 23 0 1 0.850586
+14 27 24 0 1 0.90918
+14 27 25 0 1 0.963867
+14 27 26 0 1 1
+14 27 27 0 1 1
+14 27 28 0 1 1
+14 27 29 0 0.96582 1
+14 27 30 0 0.915039 1
+14 27 31 0 0.863281 1
+14 28 0 0 1 0
+14 28 1 0 1 0
+14 28 2 0 1 0
+14 28 3 0 1 0
+14 28 4 0 1 0
+14 28 5 0 1 0
+14 28 6 0 1 0
+14 28 7 0 1 0
+14 28 8 0 1 0
+14 28 9 0 1 0
+14 28 10 0 1 0
+14 28 11 0 1 0
+14 28 12 0 1 0
+14 28 13 0 1 0
+14 28 14 0 1 0
+14 28 15 0 1 0
+14 28 16 0 1 0
+14 28 17 0 1 0
+14 28 18 0 1 0.31543
+14 28 19 0 1 0.447754
+14 28 20 0 1 0.554199
+14 28 21 0 1 0.647949
+14 28 22 0 1 0.731445
+14 28 23 0 1 0.802734
+14 28 24 0 1 0.864746
+14 28 25 0 1 0.922852
+14 28 26 0 1 0.976562
+14 28 27 0 1 1
+14 28 28 0 1 1
+14 28 29 0 1 1
+14 28 30 0 0.971191 1
+14 28 31 0 0.919434 1
+14 29 0 0 1 0
+14 29 1 0 1 0
+14 29 2 0 1 0
+14 29 3 0 1 0
+14 29 4 0 1 0
+14 29 5 0 1 0
+14 29 6 0 1 0
+14 29 7 0 1 0
+14 29 8 0 1 0
+14 29 9 0 1 0
+14 29 10 0 1 0
+14 29 11 0 1 0
+14 29 12 0 1 0
+14 29 13 0 1 0
+14 29 14 0 1 0
+14 29 15 0 1 0
+14 29 16 0 1 0
+14 29 17 0 1 0
+14 29 18 0 1 0.232178
+14 29 19 0 1 0.385986
+14 29 20 0 1 0.496826
+14 29 21 0 1 0.592285
+14 29 22 0 1 0.676758
+14 29 23 0 1 0.75
+14 29 24 0 1 0.813965
+14 29 25 0 1 0.875
+14 29 26 0 1 0.932617
+14 29 27 0 1 0.985352
+14 29 28 0 1 1
+14 29 29 0 1 1
+14 29 30 0 1 1
+14 29 31 0 0.975586 1
+14 30 0 0 1 0
+14 30 1 0 1 0
+14 30 2 0 1 0
+14 30 3 0 1 0
+14 30 4 0 1 0
+14 30 5 0 1 0
+14 30 6 0 1 0
+14 30 7 0 1 0
+14 30 8 0 1 0
+14 30 9 0 1 0
+14 30 10 0 1 0
+14 30 11 0 1 0
+14 30 12 0 1 0
+14 30 13 0 1 0
+14 30 14 0 1 0
+14 30 15 0 1 0
+14 30 16 0 1 0
+14 30 17 0 1 0
+14 30 18 0 1 0.0629272
+14 30 19 0 1 0.314941
+14 30 20 0 1 0.434814
+14 30 21 0 1 0.532715
+14 30 22 0 1 0.618652
+14 30 23 0 1 0.692383
+14 30 24 0 1 0.757812
+14 30 25 0 1 0.820801
+14 30 26 0 1 0.881836
+14 30 27 0 1 0.938965
+14 30 28 0 1 0.991211
+14 30 29 0 1 1
+14 30 30 0 1 1
+14 30 31 0 1 1
+14 31 0 0 1 0
+14 31 1 0 1 0
+14 31 2 0 1 0
+14 31 3 0 1 0
+14 31 4 0 1 0
+14 31 5 0 1 0
+14 31 6 0 1 0
+14 31 7 0 1 0
+14 31 8 0 1 0
+14 31 9 0 1 0
+14 31 10 0 1 0
+14 31 11 0 1 0
+14 31 12 0 1 0
+14 31 13 0 1 0
+14 31 14 0 1 0
+14 31 15 0 1 0
+14 31 16 0 1 0
+14 31 17 0 1 0
+14 31 18 0 1 0
+14 31 19 0 1 0.22583
+14 31 20 0 1 0.366699
+14 31 21 0 1 0.469482
+14 31 22 0 1 0.556641
+14 31 23 0 1 0.631348
+14 31 24 0 1 0.697266
+14 31 25 0 1 0.762207
+14 31 26 0 1 0.825684
+14 31 27 0 1 0.886719
+14 31 28 0 1 0.944336
+14 31 29 0 1 0.996094
+14 31 30 0 1 1
+14 31 31 0 1 1
+15 0 0 0.672852 0 0
+15 0 1 0.672852 0 0
+15 0 2 0.672852 0 0
+15 0 3 0.672852 0 0
+15 0 4 0.672852 0 0
+15 0 5 0.672852 0 0
+15 0 6 0.672852 0 0
+15 0 7 0.672852 0 0
+15 0 8 0.672852 0 0
+15 0 9 0.672852 0 0
+15 0 10 0.67627 0 0
+15 0 11 0.678711 0 0.139893
+15 0 12 0.679199 0 0.24707
+15 0 13 0.665527 0 0.341797
+15 0 14 0.631348 0 0.423584
+15 0 15 0.60498 0.108032 0.510742
+15 0 16 0.570312 0.13855 0.606445
+15 0 17 0.519043 0.16626 0.699219
+15 0 18 0.448975 0.190796 0.784668
+15 0 19 0.355713 0.211914 0.859863
+15 0 20 0.210449 0.229126 0.921875
+15 0 21 0 0.232178 0.928711
+15 0 22 0 0.234497 0.93457
+15 0 23 0 0.236816 0.941406
+15 0 24 0 0.239136 0.948242
+15 0 25 0 0.241577 0.956543
+15 0 26 0 0.244385 0.966309
+15 0 27 0 0.247559 0.977539
+15 0 28 0 0.250732 0.98877
+15 0 29 0 0.253906 1
+15 0 30 0 0.257324 1
+15 0 31 0 0.260742 1
+15 1 0 0.672852 0 0
+15 1 1 0.672852 0 0
+15 1 2 0.672852 0 0
+15 1 3 0.672852 0 0
+15 1 4 0.672852 0 0
+15 1 5 0.672852 0 0
+15 1 6 0.672852 0 0
+15 1 7 0.672852 0 0
+15 1 8 0.672852 0 0
+15 1 9 0.672852 0 0
+15 1 10 0.67627 0 0
+15 1 11 0.678711 0 0.139771
+15 1 12 0.679199 0 0.24707
+15 1 13 0.665527 0 0.341797
+15 1 14 0.631348 0 0.423584
+15 1 15 0.60498 0.108215 0.510742
+15 1 16 0.570312 0.138672 0.606445
+15 1 17 0.519043 0.166382 0.699219
+15 1 18 0.448975 0.190918 0.784668
+15 1 19 0.355713 0.211914 0.859863
+15 1 20 0.210449 0.229126 0.921875
+15 1 21 0 0.232178 0.928711
+15 1 22 0 0.234619 0.93457
+15 1 23 0 0.236816 0.941406
+15 1 24 0 0.239136 0.948242
+15 1 25 0 0.241577 0.956543
+15 1 26 0 0.244385 0.966309
+15 1 27 0 0.247559 0.977539
+15 1 28 0 0.250732 0.98877
+15 1 29 0 0.253906 1
+15 1 30 0 0.257324 1
+15 1 31 0 0.260742 1
+15 2 0 0.672852 0 0
+15 2 1 0.672852 0 0
+15 2 2 0.672852 0 0
+15 2 3 0.672852 0 0
+15 2 4 0.672852 0 0
+15 2 5 0.672852 0 0
+15 2 6 0.672852 0 0
+15 2 7 0.672852 0 0
+15 2 8 0.672852 0 0
+15 2 9 0.672852 0 0
+15 2 10 0.67627 0 0
+15 2 11 0.678711 0 0.139771
+15 2 12 0.679199 0 0.24707
+15 2 13 0.665527 0 0.341797
+15 2 14 0.631348 0 0.423584
+15 2 15 0.60498 0.108521 0.510742
+15 2 16 0.570312 0.138916 0.606445
+15 2 17 0.519043 0.166504 0.699219
+15 2 18 0.448975 0.19104 0.784668
+15 2 19 0.355713 0.212036 0.859863
+15 2 20 0.210449 0.229248 0.921875
+15 2 21 0 0.232178 0.928711
+15 2 22 0 0.234619 0.93457
+15 2 23 0 0.236816 0.941406
+15 2 24 0 0.239136 0.948242
+15 2 25 0 0.241699 0.956543
+15 2 26 0 0.244507 0.966309
+15 2 27 0 0.247559 0.977539
+15 2 28 0 0.250732 0.98877
+15 2 29 0 0.253906 1
+15 2 30 0 0.257324 1
+15 2 31 0 0.260742 1
+15 3 0 0.672852 0 0
+15 3 1 0.672852 0 0
+15 3 2 0.672852 0 0
+15 3 3 0.672852 0 0
+15 3 4 0.672852 0 0
+15 3 5 0.672852 0 0
+15 3 6 0.672852 0 0
+15 3 7 0.672852 0 0
+15 3 8 0.672852 0 0
+15 3 9 0.672852 0 0
+15 3 10 0.67627 0 0
+15 3 11 0.678711 0 0.139771
+15 3 12 0.679199 0 0.246948
+15 3 13 0.665527 0 0.341797
+15 3 14 0.631348 0 0.423584
+15 3 15 0.60498 0.109131 0.510742
+15 3 16 0.570312 0.139282 0.606445
+15 3 17 0.519043 0.16687 0.699219
+15 3 18 0.448975 0.191284 0.784668
+15 3 19 0.355469 0.212158 0.859863
+15 3 20 0.210327 0.22937 0.921875
+15 3 21 0 0.2323 0.928711
+15 3 22 0 0.234741 0.93457
+15 3 23 0 0.236938 0.941406
+15 3 24 0 0.239258 0.948242
+15 3 25 0 0.241699 0.956543
+15 3 26 0 0.244507 0.966309
+15 3 27 0 0.247559 0.977539
+15 3 28 0 0.250732 0.98877
+15 3 29 0 0.253906 1
+15 3 30 0 0.257324 1
+15 3 31 0 0.260742 1
+15 4 0 0.672363 0 0
+15 4 1 0.672363 0 0
+15 4 2 0.672363 0 0
+15 4 3 0.672363 0 0
+15 4 4 0.672363 0 0
+15 4 5 0.672363 0 0
+15 4 6 0.672363 0 0
+15 4 7 0.672363 0 0
+15 4 8 0.672852 0 0
+15 4 9 0.672852 0 0
+15 4 10 0.67627 0 0
+15 4 11 0.678711 0 0.139526
+15 4 12 0.679199 0 0.246948
+15 4 13 0.665527 0 0.341797
+15 4 14 0.631348 0 0.423584
+15 4 15 0.60498 0.110168 0.510742
+15 4 16 0.570312 0.140015 0.606445
+15 4 17 0.519043 0.167358 0.699219
+15 4 18 0.448975 0.19165 0.784668
+15 4 19 0.355469 0.212524 0.859863
+15 4 20 0.210083 0.229614 0.921875
+15 4 21 0 0.232544 0.928711
+15 4 22 0 0.234863 0.93457
+15 4 23 0 0.237061 0.941406
+15 4 24 0 0.239258 0.948242
+15 4 25 0 0.241821 0.956543
+15 4 26 0 0.244629 0.966309
+15 4 27 0 0.247681 0.977539
+15 4 28 0 0.250732 0.98877
+15 4 29 0 0.253906 1
+15 4 30 0 0.257324 1
+15 4 31 0 0.260742 1
+15 5 0 0.672363 0 0
+15 5 1 0.672363 0 0
+15 5 2 0.672363 0 0
+15 5 3 0.672363 0 0
+15 5 4 0.672363 0 0
+15 5 5 0.672363 0 0
+15 5 6 0.672363 0 0
+15 5 7 0.672363 0 0
+15 5 8 0.672363 0 0
+15 5 9 0.672852 0 0
+15 5 10 0.675781 0 0
+15 5 11 0.678711 0 0.139282
+15 5 12 0.678711 0 0.246826
+15 5 13 0.665527 0 0.341797
+15 5 14 0.630859 0 0.423584
+15 5 15 0.60498 0.112183 0.510742
+15 5 16 0.570312 0.141357 0.606445
+15 5 17 0.518555 0.168335 0.699219
+15 5 18 0.44873 0.192383 0.784668
+15 5 19 0.355225 0.213135 0.859863
+15 5 20 0.209717 0.230103 0.921875
+15 5 21 0 0.23291 0.928711
+15 5 22 0 0.235229 0.93457
+15 5 23 0 0.237305 0.941406
+15 5 24 0 0.239502 0.948242
+15 5 25 0 0.241943 0.956543
+15 5 26 0 0.244751 0.966309
+15 5 27 0 0.247803 0.977539
+15 5 28 0 0.250977 0.98877
+15 5 29 0 0.25415 1
+15 5 30 0 0.257324 1
+15 5 31 0 0.260986 1
+15 6 0 0.672363 0 0
+15 6 1 0.672363 0 0
+15 6 2 0.672363 0 0
+15 6 3 0.672363 0 0
+15 6 4 0.672363 0 0
+15 6 5 0.672363 0 0
+15 6 6 0.672363 0 0
+15 6 7 0.672363 0 0
+15 6 8 0.672363 0 0
+15 6 9 0.672852 0 0
+15 6 10 0.675781 0 0
+15 6 11 0.678223 0 0.138794
+15 6 12 0.678711 0 0.246582
+15 6 13 0.665527 0 0.341797
+15 6 14 0.630859 0 0.42334
+15 6 15 0.604492 0.115845 0.510742
+15 6 16 0.569824 0.144043 0.606445
+15 6 17 0.518555 0.170288 0.699219
+15 6 18 0.448486 0.193848 0.784668
+15 6 19 0.35498 0.214233 0.859863
+15 6 20 0.209106 0.231079 0.921875
+15 6 21 0 0.233643 0.928711
+15 6 22 0 0.235718 0.935059
+15 6 23 0 0.237793 0.941406
+15 6 24 0 0.23999 0.948242
+15 6 25 0 0.24231 0.956543
+15 6 26 0 0.245117 0.966309
+15 6 27 0 0.248047 0.977539
+15 6 28 0 0.251221 0.98877
+15 6 29 0 0.254395 1
+15 6 30 0 0.257568 1
+15 6 31 0 0.260986 1
+15 7 0 0.671875 0 0
+15 7 1 0.671875 0 0
+15 7 2 0.671875 0 0
+15 7 3 0.671875 0 0
+15 7 4 0.671875 0 0
+15 7 5 0.671875 0 0
+15 7 6 0.671875 0 0
+15 7 7 0.671875 0 0
+15 7 8 0.671875 0 0
+15 7 9 0.672363 0 0
+15 7 10 0.675293 0 0
+15 7 11 0.677734 0 0.137817
+15 7 12 0.678223 0 0.246216
+15 7 13 0.665527 0 0.341553
+15 7 14 0.630371 0.0361938 0.42334
+15 7 15 0.604004 0.122559 0.510742
+15 7 16 0.569336 0.148804 0.606445
+15 7 17 0.518066 0.17395 0.699219
+15 7 18 0.447754 0.196655 0.784668
+15 7 19 0.354248 0.216553 0.859863
+15 7 20 0.207642 0.232788 0.921875
+15 7 21 0 0.235107 0.929199
+15 7 22 0 0.236938 0.935059
+15 7 23 0 0.23877 0.941406
+15 7 24 0 0.240845 0.94873
+15 7 25 0 0.243042 0.957031
+15 7 26 0 0.245728 0.966797
+15 7 27 0 0.248657 0.977539
+15 7 28 0 0.251465 0.98877
+15 7 29 0 0.254639 1
+15 7 30 0 0.257812 1
+15 7 31 0 0.26123 1
+15 8 0 0.671387 0 0
+15 8 1 0.671387 0 0
+15 8 2 0.671387 0 0
+15 8 3 0.671387 0 0
+15 8 4 0.671387 0 0
+15 8 5 0.671387 0 0
+15 8 6 0.671387 0 0
+15 8 7 0.671387 0 0
+15 8 8 0.671387 0 0
+15 8 9 0.671387 0 0
+15 8 10 0.674805 0 0
+15 8 11 0.677246 0 0.135986
+15 8 12 0.677246 0 0.245361
+15 8 13 0.665039 0 0.341064
+15 8 14 0.629883 0.0742798 0.423096
+15 8 15 0.603516 0.134399 0.510742
+15 8 16 0.568848 0.157715 0.605957
+15 8 17 0.51709 0.180786 0.699219
+15 8 18 0.446777 0.202026 0.784668
+15 8 19 0.352783 0.220703 0.859863
+15 8 20 0.204956 0.236328 0.921875
+15 8 21 0 0.237915 0.929199
+15 8 22 0 0.239136 0.935059
+15 8 23 0 0.240723 0.941406
+15 8 24 0 0.242432 0.94873
+15 8 25 0 0.244507 0.957031
+15 8 26 0 0.246826 0.966797
+15 8 27 0 0.249634 0.978027
+15 8 28 0 0.252441 0.989258
+15 8 29 0 0.255371 1
+15 8 30 0 0.258545 1
+15 8 31 0 0.261963 1
+15 9 0 0.669434 0 0
+15 9 1 0.669434 0 0
+15 9 2 0.669434 0 0
+15 9 3 0.669434 0 0
+15 9 4 0.669434 0 0
+15 9 5 0.669434 0 0
+15 9 6 0.669434 0 0
+15 9 7 0.669434 0 0
+15 9 8 0.669434 0 0
+15 9 9 0.669922 0 0
+15 9 10 0.672852 0 0
+15 9 11 0.675781 0 0.13269
+15 9 12 0.675781 0 0.243774
+15 9 13 0.664062 0 0.340332
+15 9 14 0.628418 0.110168 0.422852
+15 9 15 0.601562 0.153809 0.510254
+15 9 16 0.566895 0.173096 0.605957
+15 9 17 0.515137 0.192993 0.699219
+15 9 18 0.44458 0.21167 0.784668
+15 9 19 0.350098 0.228638 0.859863
+15 9 20 0.199585 0.242798 0.921875
+15 9 21 0 0.243042 0.929688
+15 9 22 0 0.243408 0.935547
+15 9 23 0 0.244263 0.941895
+15 9 24 0 0.245483 0.949219
+15 9 25 0 0.24707 0.95752
+15 9 26 0 0.249146 0.967285
+15 9 27 0 0.251465 0.978027
+15 9 28 0 0.25415 0.989258
+15 9 29 0 0.256836 1
+15 9 30 0 0.259766 1
+15 9 31 0 0.262939 1
+15 10 0 0.666504 0 0
+15 10 1 0.666504 0 0
+15 10 2 0.666504 0 0
+15 10 3 0.666504 0 0
+15 10 4 0.666504 0 0
+15 10 5 0.666504 0 0
+15 10 6 0.666504 0 0
+15 10 7 0.666504 0 0
+15 10 8 0.666504 0 0
+15 10 9 0.666504 0 0
+15 10 10 0.669434 0 0
+15 10 11 0.672363 0 0.127075
+15 10 12 0.672363 0 0.241089
+15 10 13 0.662109 0 0.338623
+15 10 14 0.625977 0.150513 0.422363
+15 10 15 0.598633 0.182129 0.509766
+15 10 16 0.563477 0.197021 0.605469
+15 10 17 0.511719 0.212646 0.69873
+15 10 18 0.440674 0.227905 0.784668
+15 10 19 0.344971 0.242065 0.859863
+15 10 20 0.189087 0.253906 0.922363
+15 10 21 0 0.252197 0.930176
+15 10 22 0 0.250977 0.936035
+15 10 23 0 0.250488 0.942383
+15 10 24 0 0.250977 0.949707
+15 10 25 0 0.251709 0.958008
+15 10 26 0 0.253174 0.967773
+15 10 27 0 0.254883 0.978516
+15 10 28 0 0.25708 0.989258
+15 10 29 0 0.259277 1
+15 10 30 0 0.261963 1
+15 10 31 0 0.264648 1
+15 11 0 0.660645 0.157227 0
+15 11 1 0.660645 0.157227 0
+15 11 2 0.660645 0.157227 0
+15 11 3 0.660645 0.157227 0
+15 11 4 0.660645 0.157349 0
+15 11 5 0.660645 0.157471 0
+15 11 6 0.660645 0.157715 0
+15 11 7 0.660645 0.158203 0
+15 11 8 0.660645 0.159058 0
+15 11 9 0.660645 0.160889 0
+15 11 10 0.663086 0.161011 0
+15 11 11 0.665527 0.15686 0.119385
+15 11 12 0.666992 0.151489 0.235474
+15 11 13 0.658203 0.153931 0.335449
+15 11 14 0.621582 0.197876 0.421387
+15 11 15 0.592773 0.220703 0.508789
+15 11 16 0.557617 0.231201 0.60498
+15 11 17 0.505371 0.242188 0.69873
+15 11 18 0.433594 0.253174 0.784668
+15 11 19 0.335938 0.263184 0.859863
+15 11 20 0.168701 0.271973 0.922363
+15 11 21 0 0.26709 0.931152
+15 11 22 0 0.263428 0.937012
+15 11 23 0 0.26123 0.943359
+15 11 24 0 0.26001 0.950684
+15 11 25 0 0.259766 0.958984
+15 11 26 0 0.26001 0.96875
+15 11 27 0 0.260742 0.978516
+15 11 28 0 0.261963 0.989746
+15 11 29 0 0.263672 1
+15 11 30 0 0.265625 1
+15 11 31 0 0.268066 1
+15 12 0 0.649414 0.243896 0
+15 12 1 0.649414 0.243896 0
+15 12 2 0.649414 0.243896 0
+15 12 3 0.649414 0.244019 0
+15 12 4 0.649414 0.244019 0
+15 12 5 0.649414 0.244019 0
+15 12 6 0.649414 0.244141 0
+15 12 7 0.649414 0.244385 0
+15 12 8 0.649414 0.244873 0
+15 12 9 0.649414 0.24585 0
+15 12 10 0.650391 0.245972 0
+15 12 11 0.651855 0.244995 0.114563
+15 12 12 0.653809 0.242554 0.228149
+15 12 13 0.647949 0.240234 0.329346
+15 12 14 0.614258 0.254883 0.419678
+15 12 15 0.583008 0.270508 0.506836
+15 12 16 0.547363 0.2771 0.603516
+15 12 17 0.494629 0.283447 0.697754
+15 12 18 0.421143 0.289307 0.78418
+15 12 19 0.319336 0.294922 0.859863
+15 12 20 0.121643 0.299561 0.922363
+15 12 21 0 0.290527 0.932617
+15 12 22 0 0.282959 0.938477
+15 12 23 0 0.278076 0.945312
+15 12 24 0 0.274902 0.952637
+15 12 25 0 0.272705 0.960938
+15 12 26 0 0.27124 0.970215
+15 12 27 0 0.270264 0.979492
+15 12 28 0 0.270264 0.990234
+15 12 29 0 0.270752 1
+15 12 30 0 0.271973 1
+15 12 31 0 0.273438 1
+15 13 0 0.630371 0.324707 0
+15 13 1 0.630371 0.324707 0
+15 13 2 0.630371 0.324707 0
+15 13 3 0.630371 0.324707 0
+15 13 4 0.630371 0.324707 0
+15 13 5 0.630371 0.324707 0
+15 13 6 0.630859 0.324951 0
+15 13 7 0.630859 0.324951 0
+15 13 8 0.630859 0.325195 0
+15 13 9 0.630859 0.325928 0
+15 13 10 0.629883 0.326172 0
+15 13 11 0.628906 0.326416 0.12561
+15 13 12 0.627441 0.326416 0.224609
+15 13 13 0.625 0.325195 0.319092
+15 13 14 0.602051 0.32373 0.416016
+15 13 15 0.565918 0.331787 0.503418
+15 13 16 0.529785 0.334961 0.601074
+15 13 17 0.475586 0.336914 0.696289
+15 13 18 0.39917 0.338135 0.783691
+15 13 19 0.288818 0.338623 0.859863
+15 13 20 0 0.338623 0.922852
+15 13 21 0 0.324219 0.935059
+15 13 22 0 0.312012 0.941406
+15 13 23 0 0.303467 0.948242
+15 13 24 0 0.297363 0.955566
+15 13 25 0 0.292236 0.963379
+15 13 26 0 0.28833 0.971191
+15 13 27 0 0.285156 0.980469
+15 13 28 0 0.283203 0.991211
+15 13 29 0 0.282227 1
+15 13 30 0 0.281738 1
+15 13 31 0 0.281982 1
+15 14 0 0.608398 0.410156 0
+15 14 1 0.608398 0.410156 0
+15 14 2 0.608398 0.410156 0
+15 14 3 0.608398 0.410156 0
+15 14 4 0.608398 0.410156 0
+15 14 5 0.608398 0.4104 0
+15 14 6 0.608398 0.4104 0
+15 14 7 0.608398 0.4104 0
+15 14 8 0.608398 0.410645 0
+15 14 9 0.608398 0.411133 0
+15 14 10 0.607422 0.411377 0
+15 14 11 0.603027 0.410889 0.142944
+15 14 12 0.596191 0.410156 0.230957
+15 14 13 0.584473 0.408447 0.313965
+15 14 14 0.570801 0.406738 0.405029
+15 14 15 0.537109 0.404785 0.497803
+15 14 16 0.499756 0.405273 0.597168
+15 14 17 0.442871 0.40332 0.693848
+15 14 18 0.360107 0.399902 0.782227
+15 14 19 0.227905 0.395508 0.859375
+15 14 20 0 0.390381 0.922852
+15 14 21 0 0.370361 0.938965
+15 14 22 0 0.352539 0.945801
+15 14 23 0 0.338867 0.952148
+15 14 24 0 0.328613 0.958496
+15 14 25 0 0.320068 0.965332
+15 14 26 0 0.312744 0.973145
+15 14 27 0 0.306885 0.982422
+15 14 28 0 0.30249 0.993164
+15 14 29 0 0.299072 1
+15 14 30 0 0.296631 1
+15 14 31 0 0.294922 1
+15 15 0 0.572266 0.508301 0
+15 15 1 0.572266 0.508301 0
+15 15 2 0.572266 0.508301 0
+15 15 3 0.572266 0.508301 0
+15 15 4 0.572266 0.508301 0
+15 15 5 0.572266 0.508301 0
+15 15 6 0.572266 0.508301 0
+15 15 7 0.572266 0.508789 0
+15 15 8 0.572266 0.508789 0
+15 15 9 0.572266 0.509277 0
+15 15 10 0.572266 0.509277 0
+15 15 11 0.567871 0.508789 0.104553
+15 15 12 0.560547 0.507324 0.218262
+15 15 13 0.546875 0.504395 0.30957
+15 15 14 0.524414 0.498779 0.399414
+15 15 15 0.488281 0.488281 0.488281
+15 15 16 0.447754 0.486572 0.589844
+15 15 17 0.384277 0.481689 0.688477
+15 15 18 0.28418 0.474121 0.778809
+15 15 19 0 0.465088 0.857422
+15 15 20 0 0.454834 0.922852
+15 15 21 0 0.429199 0.943359
+15 15 22 0 0.404297 0.949707
+15 15 23 0 0.385254 0.956055
+15 15 24 0 0.370361 0.961914
+15 15 25 0 0.357666 0.96875
+15 15 26 0 0.346436 0.976562
+15 15 27 0 0.336914 0.985352
+15 15 28 0 0.329346 0.995605
+15 15 29 0 0.322998 1
+15 15 30 0 0.317627 1
+15 15 31 0 0.313721 1
+15 16 0 0.480957 0.594727 0
+15 16 1 0.480957 0.594727 0
+15 16 2 0.480957 0.594727 0
+15 16 3 0.480957 0.594727 0
+15 16 4 0.480957 0.594727 0
+15 16 5 0.480957 0.594727 0
+15 16 6 0.480957 0.594727 0
+15 16 7 0.480957 0.594727 0
+15 16 8 0.480957 0.594727 0
+15 16 9 0.481201 0.595215 0
+15 16 10 0.481201 0.595215 0
+15 16 11 0.478027 0.595215 0
+15 16 12 0.469971 0.59375 0.16687
+15 16 13 0.456543 0.59082 0.276611
+15 16 14 0.433838 0.584961 0.374023
+15 16 15 0.400879 0.580078 0.472412
+15 16 16 0.35083 0.577148 0.577148
+15 16 17 0.263428 0.570312 0.679199
+15 16 18 0 0.55957 0.772461
+15 16 19 0 0.546387 0.854004
+15 16 20 0 0.531738 0.920898
+15 16 21 0 0.500977 0.947754
+15 16 22 0 0.468994 0.955566
+15 16 23 0 0.443848 0.962402
+15 16 24 0 0.423828 0.96875
+15 16 25 0 0.40625 0.975098
+15 16 26 0 0.390381 0.982422
+15 16 27 0 0.376709 0.990723
+15 16 28 0 0.36499 1
+15 16 29 0 0.354736 1
+15 16 30 0 0.346191 1
+15 16 31 0 0.339111 1
+15 17 0 0.325684 0.67627 0
+15 17 1 0.325684 0.67627 0
+15 17 2 0.325684 0.67627 0
+15 17 3 0.325684 0.67627 0
+15 17 4 0.325684 0.67627 0
+15 17 5 0.325684 0.67627 0
+15 17 6 0.325684 0.676758 0
+15 17 7 0.325684 0.676758 0
+15 17 8 0.325684 0.676758 0
+15 17 9 0.325928 0.676758 0
+15 17 10 0.325928 0.677246 0
+15 17 11 0.324707 0.677246 0
+15 17 12 0.314453 0.676758 0
+15 17 13 0.296631 0.67627 0.22876
+15 17 14 0.265137 0.674805 0.341553
+15 17 15 0.205566 0.67334 0.44873
+15 17 16 0 0.670898 0.558105
+15 17 17 0 0.663574 0.663574
+15 17 18 0 0.651367 0.76123
+15 17 19 0 0.635254 0.846191
+15 17 20 0 0.616699 0.916016
+15 17 21 0 0.583496 0.95166
+15 17 22 0 0.54541 0.963867
+15 17 23 0 0.51416 0.972168
+15 17 24 0 0.488281 0.978516
+15 17 25 0 0.465088 0.984863
+15 17 26 0 0.444092 0.992188
+15 17 27 0 0.425537 0.999512
+15 17 28 0 0.408936 1
+15 17 29 0 0.394531 1
+15 17 30 0 0.38208 1
+15 17 31 0 0.371094 1
+15 18 0 0 0.758789 0
+15 18 1 0 0.758789 0
+15 18 2 0 0.758789 0
+15 18 3 0 0.758789 0
+15 18 4 0 0.758789 0
+15 18 5 0 0.758789 0
+15 18 6 0 0.758789 0
+15 18 7 0 0.758789 0
+15 18 8 0 0.758789 0
+15 18 9 0 0.759277 0
+15 18 10 0 0.759277 0
+15 18 11 0 0.759766 0
+15 18 12 0 0.760254 0
+15 18 13 0 0.76123 0.151733
+15 18 14 0 0.762207 0.298584
+15 18 15 0 0.762695 0.41626
+15 18 16 0 0.76123 0.530762
+15 18 17 0 0.755371 0.641113
+15 18 18 0 0.743164 0.743652
+15 18 19 0 0.726562 0.833008
+15 18 20 0 0.705566 0.906738
+15 18 21 0 0.671387 0.952637
+15 18 22 0 0.629883 0.973145
+15 18 23 0 0.59375 0.984863
+15 18 24 0 0.5625 0.992676
+15 18 25 0 0.533691 0.999512
+15 18 26 0 0.506836 1
+15 18 27 0 0.482422 1
+15 18 28 0 0.460938 1
+15 18 29 0 0.44165 1
+15 18 30 0 0.424316 1
+15 18 31 0 0.40918 1
+15 19 0 0 0.835449 0
+15 19 1 0 0.835449 0
+15 19 2 0 0.835449 0
+15 19 3 0 0.835449 0
+15 19 4 0 0.835449 0
+15 19 5 0 0.835449 0
+15 19 6 0 0.835938 0
+15 19 7 0 0.835938 0
+15 19 8 0 0.835938 0
+15 19 9 0 0.835938 0
+15 19 10 0 0.835938 0
+15 19 11 0 0.836426 0
+15 19 12 0 0.836914 0
+15 19 13 0 0.838867 0
+15 19 14 0 0.84082 0.23999
+15 19 15 0 0.843262 0.375
+15 19 16 0 0.843262 0.496826
+15 19 17 0 0.839355 0.612305
+15 19 18 0 0.82959 0.719238
+15 19 19 0 0.813477 0.813477
+15 19 20 0 0.791504 0.89209
+15 19 21 0 0.759766 0.948242
+15 19 22 0 0.719238 0.980469
+15 19 23 0 0.679199 0.998535
+15 19 24 0 0.643555 1
+15 19 25 0 0.608887 1
+15 19 26 0 0.57666 1
+15 19 27 0 0.546387 1
+15 19 28 0 0.519043 1
+15 19 29 0 0.494141 1
+15 19 30 0 0.471924 1
+15 19 31 0 0.451904 1
+15 20 0 0 0.90332 0
+15 20 1 0 0.90332 0
+15 20 2 0 0.90332 0
+15 20 3 0 0.90332 0
+15 20 4 0 0.90332 0
+15 20 5 0 0.90332 0
+15 20 6 0 0.90332 0
+15 20 7 0 0.90332 0
+15 20 8 0 0.90332 0
+15 20 9 0 0.90332 0
+15 20 10 0 0.90332 0
+15 20 11 0 0.90332 0
+15 20 12 0 0.903809 0
+15 20 13 0 0.90625 0
+15 20 14 0 0.90918 0.14856
+15 20 15 0 0.912598 0.325928
+15 20 16 0 0.914551 0.457275
+15 20 17 0 0.913086 0.577637
+15 20 18 0 0.905762 0.688965
+15 20 19 0 0.891113 0.788086
+15 20 20 0 0.871094 0.871094
+15 20 21 0 0.843262 0.9375
+15 20 22 0 0.806152 0.982422
+15 20 23 0 0.766113 1
+15 20 24 0 0.727539 1
+15 20 25 0 0.688477 1
+15 20 26 0 0.650391 1
+15 20 27 0 0.614258 1
+15 20 28 0 0.581055 1
+15 20 29 0 0.550293 1
+15 20 30 0 0.522949 1
+15 20 31 0 0.498047 1
+15 21 0 0 0.960938 0
+15 21 1 0 0.960938 0
+15 21 2 0 0.960938 0
+15 21 3 0 0.960938 0
+15 21 4 0 0.960938 0
+15 21 5 0 0.960938 0
+15 21 6 0 0.960938 0
+15 21 7 0 0.960938 0
+15 21 8 0 0.960938 0
+15 21 9 0 0.960938 0
+15 21 10 0 0.960938 0
+15 21 11 0 0.961426 0
+15 21 12 0 0.961426 0
+15 21 13 0 0.963379 0
+15 21 14 0 0.966797 0
+15 21 15 0 0.971191 0.264404
+15 21 16 0 0.974609 0.411865
+15 21 17 0 0.975586 0.538086
+15 21 18 0 0.971191 0.653809
+15 21 19 0 0.959961 0.756348
+15 21 20 0 0.941895 0.844238
+15 21 21 0 0.917969 0.918457
+15 21 22 0 0.886719 0.974609
+15 21 23 0 0.849609 1
+15 21 24 0 0.810547 1
+15 21 25 0 0.769043 1
+15 21 26 0 0.727051 1
+15 21 27 0 0.685547 1
+15 21 28 0 0.646973 1
+15 21 29 0 0.61084 1
+15 21 30 0 0.577637 1
+15 21 31 0 0.547363 1
+15 22 0 0 1 0
+15 22 1 0 1 0
+15 22 2 0 1 0
+15 22 3 0 1 0
+15 22 4 0 1 0
+15 22 5 0 1 0
+15 22 6 0 1 0
+15 22 7 0 1 0
+15 22 8 0 1 0
+15 22 9 0 1 0
+15 22 10 0 1 0
+15 22 11 0 1 0
+15 22 12 0 1 0
+15 22 13 0 1 0
+15 22 14 0 1 0
+15 22 15 0 1 0.179932
+15 22 16 0 1 0.361328
+15 22 17 0 1 0.495361
+15 22 18 0 1 0.614258
+15 22 19 0 1 0.720703
+15 22 20 0 1 0.812988
+15 22 21 0 0.982422 0.891602
+15 22 22 0 0.955566 0.956055
+15 22 23 0 0.923828 1
+15 22 24 0 0.887695 1
+15 22 25 0 0.846191 1
+15 22 26 0 0.802246 1
+15 22 27 0 0.757324 1
+15 22 28 0 0.713867 1
+15 22 29 0 0.672852 1
+15 22 30 0 0.634277 1
+15 22 31 0 0.599121 1
+15 23 0 0 1 0
+15 23 1 0 1 0
+15 23 2 0 1 0
+15 23 3 0 1 0
+15 23 4 0 1 0
+15 23 5 0 1 0
+15 23 6 0 1 0
+15 23 7 0 1 0
+15 23 8 0 1 0
+15 23 9 0 1 0
+15 23 10 0 1 0
+15 23 11 0 1 0
+15 23 12 0 1 0
+15 23 13 0 1 0
+15 23 14 0 1 0
+15 23 15 0 1 0
+15 23 16 0 1 0.306152
+15 23 17 0 1 0.451172
+15 23 18 0 1 0.574219
+15 23 19 0 1 0.683594
+15 23 20 0 1 0.77832
+15 23 21 0 1 0.86084
+15 23 22 0 1 0.930176
+15 23 23 0 0.984375 0.984375
+15 23 24 0 0.952637 1
+15 23 25 0 0.914551 1
+15 23 26 0 0.871094 1
+15 23 27 0 0.824707 1
+15 23 28 0 0.77832 1
+15 23 29 0 0.73291 1
+15 23 30 0 0.689941 1
+15 23 31 0 0.649902 1
+15 24 0 0 1 0
+15 24 1 0 1 0
+15 24 2 0 1 0
+15 24 3 0 1 0
+15 24 4 0 1 0
+15 24 5 0 1 0
+15 24 6 0 1 0
+15 24 7 0 1 0
+15 24 8 0 1 0
+15 24 9 0 1 0
+15 24 10 0 1 0
+15 24 11 0 1 0
+15 24 12 0 1 0
+15 24 13 0 1 0
+15 24 14 0 1 0
+15 24 15 0 1 0
+15 24 16 0 1 0.242554
+15 24 17 0 1 0.405518
+15 24 18 0 1 0.533203
+15 24 19 0 1 0.64502
+15 24 20 0 1 0.742676
+15 24 21 0 1 0.828125
+15 24 22 0 1 0.900879
+15 24 23 0 1 0.959961
+15 24 24 0 1 1
+15 24 25 0 0.973145 1
+15 24 26 0 0.932129 1
+15 24 27 0 0.88623 1
+15 24 28 0 0.838379 1
+15 24 29 0 0.790527 1
+15 24 30 0 0.743652 1
+15 24 31 0 0.699707 1
+15 25 0 0 1 0
+15 25 1 0 1 0
+15 25 2 0 1 0
+15 25 3 0 1 0
+15 25 4 0 1 0
+15 25 5 0 1 0
+15 25 6 0 1 0
+15 25 7 0 1 0
+15 25 8 0 1 0
+15 25 9 0 1 0
+15 25 10 0 1 0
+15 25 11 0 1 0
+15 25 12 0 1 0
+15 25 13 0 1 0
+15 25 14 0 1 0
+15 25 15 0 1 0
+15 25 16 0 1 0.143555
+15 25 17 0 1 0.353271
+15 25 18 0 1 0.487793
+15 25 19 0 1 0.602051
+15 25 20 0 1 0.702148
+15 25 21 0 1 0.790527
+15 25 22 0 1 0.866699
+15 25 23 0 1 0.929199
+15 25 24 0 1 0.980957
+15 25 25 0 1 1
+15 25 26 0 0.990234 1
+15 25 27 0 0.946777 1
+15 25 28 0 0.898926 1
+15 25 29 0 0.849609 1
+15 25 30 0 0.800293 1
+15 25 31 0 0.752441 1
+15 26 0 0 1 0
+15 26 1 0 1 0
+15 26 2 0 1 0
+15 26 3 0 1 0
+15 26 4 0 1 0
+15 26 5 0 1 0
+15 26 6 0 1 0
+15 26 7 0 1 0
+15 26 8 0 1 0
+15 26 9 0 1 0
+15 26 10 0 1 0
+15 26 11 0 1 0
+15 26 12 0 1 0
+15 26 13 0 1 0
+15 26 14 0 1 0
+15 26 15 0 1 0
+15 26 16 0 1 0
+15 26 17 0 1 0.290527
+15 26 18 0 1 0.437256
+15 26 19 0 1 0.555176
+15 26 20 0 1 0.656738
+15 26 21 0 1 0.747559
+15 26 22 0 1 0.82666
+15 26 23 0 1 0.893066
+15 26 24 0 1 0.94873
+15 26 25 0 1 0.999023
+15 26 26 0 1 1
+15 26 27 0 1 1
+15 26 28 0 0.958496 1
+15 26 29 0 0.908691 1
+15 26 30 0 0.858398 1
+15 26 31 0 0.807617 1
+15 27 0 0 1 0
+15 27 1 0 1 0
+15 27 2 0 1 0
+15 27 3 0 1 0
+15 27 4 0 1 0
+15 27 5 0 1 0
+15 27 6 0 1 0
+15 27 7 0 1 0
+15 27 8 0 1 0
+15 27 9 0 1 0
+15 27 10 0 1 0
+15 27 11 0 1 0
+15 27 12 0 1 0
+15 27 13 0 1 0
+15 27 14 0 1 0
+15 27 15 0 1 0
+15 27 16 0 1 0
+15 27 17 0 1 0.206543
+15 27 18 0 1 0.380615
+15 27 19 0 1 0.503906
+15 27 20 0 1 0.607422
+15 27 21 0 1 0.700195
+15 27 22 0 1 0.781738
+15 27 23 0 1 0.851074
+15 27 24 0 1 0.909668
+15 27 25 0 1 0.964355
+15 27 26 0 1 1
+15 27 27 0 1 1
+15 27 28 0 1 1
+15 27 29 0 0.966309 1
+15 27 30 0 0.915527 1
+15 27 31 0 0.86377 1
+15 28 0 0 1 0
+15 28 1 0 1 0
+15 28 2 0 1 0
+15 28 3 0 1 0
+15 28 4 0 1 0
+15 28 5 0 1 0
+15 28 6 0 1 0
+15 28 7 0 1 0
+15 28 8 0 1 0
+15 28 9 0 1 0
+15 28 10 0 1 0
+15 28 11 0 1 0
+15 28 12 0 1 0
+15 28 13 0 1 0
+15 28 14 0 1 0
+15 28 15 0 1 0
+15 28 16 0 1 0
+15 28 17 0 1 0
+15 28 18 0 1 0.314941
+15 28 19 0 1 0.447998
+15 28 20 0 1 0.554688
+15 28 21 0 1 0.648438
+15 28 22 0 1 0.731934
+15 28 23 0 1 0.803223
+15 28 24 0 1 0.865234
+15 28 25 0 1 0.92334
+15 28 26 0 1 0.977051
+15 28 27 0 1 1
+15 28 28 0 1 1
+15 28 29 0 1 1
+15 28 30 0 0.97168 1
+15 28 31 0 0.92041 1
+15 29 0 0 1 0
+15 29 1 0 1 0
+15 29 2 0 1 0
+15 29 3 0 1 0
+15 29 4 0 1 0
+15 29 5 0 1 0
+15 29 6 0 1 0
+15 29 7 0 1 0
+15 29 8 0 1 0
+15 29 9 0 1 0
+15 29 10 0 1 0
+15 29 11 0 1 0
+15 29 12 0 1 0
+15 29 13 0 1 0
+15 29 14 0 1 0
+15 29 15 0 1 0
+15 29 16 0 1 0
+15 29 17 0 1 0
+15 29 18 0 1 0.231567
+15 29 19 0 1 0.385742
+15 29 20 0 1 0.49707
+15 29 21 0 1 0.592773
+15 29 22 0 1 0.677246
+15 29 23 0 1 0.750488
+15 29 24 0 1 0.813965
+15 29 25 0 1 0.875488
+15 29 26 0 1 0.933105
+15 29 27 0 1 0.98584
+15 29 28 0 1 1
+15 29 29 0 1 1
+15 29 30 0 1 1
+15 29 31 0 0.976562 1
+15 30 0 0 1 0
+15 30 1 0 1 0
+15 30 2 0 1 0
+15 30 3 0 1 0
+15 30 4 0 1 0
+15 30 5 0 1 0
+15 30 6 0 1 0
+15 30 7 0 1 0
+15 30 8 0 1 0
+15 30 9 0 1 0
+15 30 10 0 1 0
+15 30 11 0 1 0
+15 30 12 0 1 0
+15 30 13 0 1 0
+15 30 14 0 1 0
+15 30 15 0 1 0
+15 30 16 0 1 0
+15 30 17 0 1 0
+15 30 18 0 1 0.0571594
+15 30 19 0 1 0.314697
+15 30 20 0 1 0.435059
+15 30 21 0 1 0.533203
+15 30 22 0 1 0.618652
+15 30 23 0 1 0.692871
+15 30 24 0 1 0.758301
+15 30 25 0 1 0.821289
+15 30 26 0 1 0.882324
+15 30 27 0 1 0.939453
+15 30 28 0 1 0.991699
+15 30 29 0 1 1
+15 30 30 0 1 1
+15 30 31 0 1 1
+15 31 0 0 1 0
+15 31 1 0 1 0
+15 31 2 0 1 0
+15 31 3 0 1 0
+15 31 4 0 1 0
+15 31 5 0 1 0
+15 31 6 0 1 0
+15 31 7 0 1 0
+15 31 8 0 1 0
+15 31 9 0 1 0
+15 31 10 0 1 0
+15 31 11 0 1 0
+15 31 12 0 1 0
+15 31 13 0 1 0
+15 31 14 0 1 0
+15 31 15 0 1 0
+15 31 16 0 1 0
+15 31 17 0 1 0
+15 31 18 0 1 0
+15 31 19 0 1 0.225342
+15 31 20 0 1 0.366699
+15 31 21 0 1 0.469727
+15 31 22 0 1 0.556641
+15 31 23 0 1 0.631348
+15 31 24 0 1 0.697754
+15 31 25 0 1 0.762695
+15 31 26 0 1 0.826172
+15 31 27 0 1 0.887207
+15 31 28 0 1 0.944336
+15 31 29 0 1 0.996582
+15 31 30 0 1 1
+15 31 31 0 1 1
+16 0 0 0.760742 0 0
+16 0 1 0.760742 0 0
+16 0 2 0.760742 0 0
+16 0 3 0.760742 0 0
+16 0 4 0.760742 0 0
+16 0 5 0.760742 0 0
+16 0 6 0.760742 0 0
+16 0 7 0.760742 0 0
+16 0 8 0.760742 0 0
+16 0 9 0.760742 0 0
+16 0 10 0.763672 0 0
+16 0 11 0.771973 0 0
+16 0 12 0.778809 0 0.191406
+16 0 13 0.778809 0 0.303467
+16 0 14 0.766602 0 0.408936
+16 0 15 0.739746 0 0.503906
+16 0 16 0.710449 0.126831 0.600098
+16 0 17 0.668945 0.158081 0.695801
+16 0 18 0.613281 0.185059 0.783691
+16 0 19 0.544922 0.207886 0.86084
+16 0 20 0.463379 0.226318 0.924805
+16 0 21 0.349365 0.232544 0.941406
+16 0 22 0.199585 0.235596 0.947754
+16 0 23 0 0.238037 0.953125
+16 0 24 0 0.240234 0.958984
+16 0 25 0 0.242676 0.96582
+16 0 26 0 0.245239 0.974121
+16 0 27 0 0.248291 0.983887
+16 0 28 0 0.251709 0.995605
+16 0 29 0 0.255127 1
+16 0 30 0 0.259033 1
+16 0 31 0 0.262207 1
+16 1 0 0.760742 0 0
+16 1 1 0.760742 0 0
+16 1 2 0.760742 0 0
+16 1 3 0.760742 0 0
+16 1 4 0.760742 0 0
+16 1 5 0.760742 0 0
+16 1 6 0.760742 0 0
+16 1 7 0.760742 0 0
+16 1 8 0.760742 0 0
+16 1 9 0.760742 0 0
+16 1 10 0.763672 0 0
+16 1 11 0.771973 0 0
+16 1 12 0.778809 0 0.191406
+16 1 13 0.778809 0 0.303223
+16 1 14 0.766602 0 0.408936
+16 1 15 0.739746 0 0.503906
+16 1 16 0.710449 0.126953 0.600098
+16 1 17 0.668945 0.158081 0.695801
+16 1 18 0.613281 0.185181 0.783691
+16 1 19 0.544922 0.207886 0.86084
+16 1 20 0.463379 0.22644 0.924805
+16 1 21 0.349365 0.232544 0.941406
+16 1 22 0.199585 0.235596 0.947754
+16 1 23 0 0.238037 0.953125
+16 1 24 0 0.240234 0.958984
+16 1 25 0 0.242676 0.96582
+16 1 26 0 0.245361 0.974121
+16 1 27 0 0.248291 0.983887
+16 1 28 0 0.251709 0.995605
+16 1 29 0 0.255127 1
+16 1 30 0 0.259033 1
+16 1 31 0 0.262207 1
+16 2 0 0.760742 0 0
+16 2 1 0.760742 0 0
+16 2 2 0.760742 0 0
+16 2 3 0.760742 0 0
+16 2 4 0.760742 0 0
+16 2 5 0.760742 0 0
+16 2 6 0.760742 0 0
+16 2 7 0.760742 0 0
+16 2 8 0.760742 0 0
+16 2 9 0.760742 0 0
+16 2 10 0.763672 0 0
+16 2 11 0.771973 0 0
+16 2 12 0.778809 0 0.191406
+16 2 13 0.778809 0 0.303223
+16 2 14 0.766602 0 0.408936
+16 2 15 0.739746 0 0.503906
+16 2 16 0.710449 0.127197 0.600098
+16 2 17 0.668945 0.158325 0.695801
+16 2 18 0.613281 0.185303 0.783691
+16 2 19 0.544922 0.208008 0.86084
+16 2 20 0.463379 0.22644 0.924805
+16 2 21 0.349365 0.232666 0.941406
+16 2 22 0.199585 0.235718 0.947754
+16 2 23 0 0.238037 0.953125
+16 2 24 0 0.240356 0.958984
+16 2 25 0 0.242676 0.96582
+16 2 26 0 0.245361 0.974121
+16 2 27 0 0.248291 0.983887
+16 2 28 0 0.251709 0.995605
+16 2 29 0 0.255127 1
+16 2 30 0 0.259033 1
+16 2 31 0 0.262207 1
+16 3 0 0.760742 0 0
+16 3 1 0.760742 0 0
+16 3 2 0.760742 0 0
+16 3 3 0.760742 0 0
+16 3 4 0.760742 0 0
+16 3 5 0.760742 0 0
+16 3 6 0.760742 0 0
+16 3 7 0.760742 0 0
+16 3 8 0.760742 0 0
+16 3 9 0.760742 0 0
+16 3 10 0.763672 0 0
+16 3 11 0.771973 0 0
+16 3 12 0.778809 0 0.191406
+16 3 13 0.778809 0 0.303223
+16 3 14 0.766602 0 0.408936
+16 3 15 0.739746 0 0.503906
+16 3 16 0.710449 0.127563 0.600098
+16 3 17 0.668945 0.158569 0.695801
+16 3 18 0.613281 0.185425 0.783691
+16 3 19 0.544922 0.208252 0.86084
+16 3 20 0.463379 0.226685 0.924805
+16 3 21 0.349365 0.232788 0.941406
+16 3 22 0.199463 0.235718 0.947754
+16 3 23 0 0.238159 0.953125
+16 3 24 0 0.240356 0.958984
+16 3 25 0 0.242798 0.96582
+16 3 26 0 0.245361 0.974121
+16 3 27 0 0.248291 0.983887
+16 3 28 0 0.251709 0.995605
+16 3 29 0 0.255371 1
+16 3 30 0 0.259033 1
+16 3 31 0 0.262207 1
+16 4 0 0.760742 0 0
+16 4 1 0.760742 0 0
+16 4 2 0.760742 0 0
+16 4 3 0.760742 0 0
+16 4 4 0.760742 0 0
+16 4 5 0.760742 0 0
+16 4 6 0.760742 0 0
+16 4 7 0.760742 0 0
+16 4 8 0.760742 0 0
+16 4 9 0.760742 0 0
+16 4 10 0.763672 0 0
+16 4 11 0.771973 0 0
+16 4 12 0.778809 0 0.191284
+16 4 13 0.77832 0 0.303223
+16 4 14 0.766602 0 0.408936
+16 4 15 0.739746 0 0.503906
+16 4 16 0.710449 0.128418 0.600098
+16 4 17 0.668945 0.15918 0.695801
+16 4 18 0.613281 0.185913 0.783691
+16 4 19 0.544434 0.208496 0.86084
+16 4 20 0.463379 0.226929 0.924805
+16 4 21 0.349365 0.233032 0.941406
+16 4 22 0.199341 0.235962 0.947754
+16 4 23 0 0.238281 0.953125
+16 4 24 0 0.240479 0.958984
+16 4 25 0 0.242798 0.96582
+16 4 26 0 0.245483 0.974121
+16 4 27 0 0.248413 0.983887
+16 4 28 0 0.251709 0.995605
+16 4 29 0 0.255371 1
+16 4 30 0 0.259033 1
+16 4 31 0 0.262207 1
+16 5 0 0.760742 0 0
+16 5 1 0.760742 0 0
+16 5 2 0.760742 0 0
+16 5 3 0.760742 0 0
+16 5 4 0.760742 0 0
+16 5 5 0.760742 0 0
+16 5 6 0.760742 0 0
+16 5 7 0.760742 0 0
+16 5 8 0.760742 0 0
+16 5 9 0.760742 0 0
+16 5 10 0.763672 0 0
+16 5 11 0.771973 0 0
+16 5 12 0.77832 0 0.191162
+16 5 13 0.77832 0 0.303223
+16 5 14 0.766602 0 0.408691
+16 5 15 0.739746 0 0.503906
+16 5 16 0.710449 0.129883 0.600098
+16 5 17 0.668945 0.160278 0.695801
+16 5 18 0.613281 0.186646 0.783691
+16 5 19 0.544434 0.209106 0.86084
+16 5 20 0.463135 0.227417 0.924805
+16 5 21 0.349121 0.233398 0.941406
+16 5 22 0.199097 0.236206 0.947754
+16 5 23 0 0.238525 0.953125
+16 5 24 0 0.240723 0.958984
+16 5 25 0 0.243042 0.96582
+16 5 26 0 0.245605 0.974121
+16 5 27 0 0.248535 0.983887
+16 5 28 0 0.251953 0.995605
+16 5 29 0 0.255371 1
+16 5 30 0 0.259033 1
+16 5 31 0 0.262451 1
+16 6 0 0.760742 0 0
+16 6 1 0.760742 0 0
+16 6 2 0.760742 0 0
+16 6 3 0.760742 0 0
+16 6 4 0.760742 0 0
+16 6 5 0.760742 0 0
+16 6 6 0.760742 0 0
+16 6 7 0.760742 0 0
+16 6 8 0.760742 0 0
+16 6 9 0.760742 0 0
+16 6 10 0.763672 0 0
+16 6 11 0.771973 0 0
+16 6 12 0.77832 0 0.190796
+16 6 13 0.77832 0 0.302979
+16 6 14 0.766602 0 0.408691
+16 6 15 0.739746 0.0343323 0.503906
+16 6 16 0.710449 0.13269 0.600098
+16 6 17 0.668945 0.162231 0.695312
+16 6 18 0.612793 0.188232 0.783691
+16 6 19 0.544434 0.210327 0.86084
+16 6 20 0.463135 0.228394 0.924805
+16 6 21 0.348877 0.234131 0.941406
+16 6 22 0.198486 0.236816 0.947754
+16 6 23 0 0.239014 0.953125
+16 6 24 0 0.241089 0.958984
+16 6 25 0 0.243408 0.96582
+16 6 26 0 0.245972 0.974609
+16 6 27 0 0.248779 0.983887
+16 6 28 0 0.251953 0.995605
+16 6 29 0 0.255615 1
+16 6 30 0 0.259277 1
+16 6 31 0 0.262451 1
+16 7 0 0.760742 0 0
+16 7 1 0.760742 0 0
+16 7 2 0.760742 0 0
+16 7 3 0.760742 0 0
+16 7 4 0.760742 0 0
+16 7 5 0.760742 0 0
+16 7 6 0.760742 0 0
+16 7 7 0.760742 0 0
+16 7 8 0.760742 0 0
+16 7 9 0.760742 0 0
+16 7 10 0.763672 0 0
+16 7 11 0.771973 0 0
+16 7 12 0.77832 0 0.190308
+16 7 13 0.777832 0 0.302734
+16 7 14 0.766113 0 0.408447
+16 7 15 0.739258 0.058136 0.503906
+16 7 16 0.709961 0.138062 0.600098
+16 7 17 0.668457 0.166138 0.695312
+16 7 18 0.612305 0.191162 0.783691
+16 7 19 0.543945 0.212646 0.86084
+16 7 20 0.462646 0.230225 0.924805
+16 7 21 0.348389 0.235596 0.941406
+16 7 22 0.19751 0.238037 0.947754
+16 7 23 0 0.240112 0.953125
+16 7 24 0 0.241943 0.958984
+16 7 25 0 0.244141 0.966309
+16 7 26 0 0.246582 0.974609
+16 7 27 0 0.249268 0.984375
+16 7 28 0 0.252441 0.996094
+16 7 29 0 0.256104 1
+16 7 30 0 0.259521 1
+16 7 31 0 0.262695 1
+16 8 0 0.760742 0 0
+16 8 1 0.760742 0 0
+16 8 2 0.760742 0 0
+16 8 3 0.760742 0 0
+16 8 4 0.760742 0 0
+16 8 5 0.760742 0 0
+16 8 6 0.760742 0 0
+16 8 7 0.760742 0 0
+16 8 8 0.760742 0 0
+16 8 9 0.760742 0 0
+16 8 10 0.763672 0 0
+16 8 11 0.771973 0 0
+16 8 12 0.777832 0 0.189209
+16 8 13 0.777344 0 0.302246
+16 8 14 0.765625 0 0.408203
+16 8 15 0.73877 0.0838013 0.503906
+16 8 16 0.709473 0.147705 0.599609
+16 8 17 0.66748 0.17334 0.695312
+16 8 18 0.611816 0.196655 0.783691
+16 8 19 0.542969 0.217041 0.86084
+16 8 20 0.46167 0.233765 0.924805
+16 8 21 0.347412 0.238403 0.941895
+16 8 22 0.195557 0.240356 0.947754
+16 8 23 0 0.241943 0.953613
+16 8 24 0 0.243652 0.959473
+16 8 25 0 0.245483 0.966309
+16 8 26 0 0.247803 0.974609
+16 8 27 0 0.250244 0.984375
+16 8 28 0 0.253418 0.996094
+16 8 29 0 0.256836 1
+16 8 30 0 0.260254 1
+16 8 31 0 0.263184 1
+16 9 0 0.760742 0 0
+16 9 1 0.760742 0 0
+16 9 2 0.760742 0 0
+16 9 3 0.760742 0 0
+16 9 4 0.760742 0 0
+16 9 5 0.760742 0 0
+16 9 6 0.760742 0 0
+16 9 7 0.76123 0 0
+16 9 8 0.76123 0 0
+16 9 9 0.76123 0 0
+16 9 10 0.763672 0 0
+16 9 11 0.771484 0 0
+16 9 12 0.776367 0 0.187134
+16 9 13 0.776367 0 0.301025
+16 9 14 0.765137 0 0.407471
+16 9 15 0.737305 0.114563 0.503418
+16 9 16 0.708008 0.164062 0.599609
+16 9 17 0.666504 0.186035 0.695312
+16 9 18 0.610352 0.206665 0.783691
+16 9 19 0.541504 0.225098 0.86084
+16 9 20 0.459961 0.240356 0.924805
+16 9 21 0.345215 0.243774 0.941895
+16 9 22 0.191772 0.244629 0.948242
+16 9 23 0 0.245605 0.953613
+16 9 24 0 0.246704 0.959473
+16 9 25 0 0.248169 0.966309
+16 9 26 0 0.25 0.974609
+16 9 27 0 0.252197 0.984375
+16 9 28 0 0.255127 0.996094
+16 9 29 0 0.258301 1
+16 9 30 0 0.261475 1
+16 9 31 0 0.264404 1
+16 10 0 0.760742 0 0
+16 10 1 0.760742 0 0
+16 10 2 0.760742 0 0
+16 10 3 0.760742 0 0
+16 10 4 0.760742 0 0
+16 10 5 0.760742 0 0
+16 10 6 0.76123 0 0
+16 10 7 0.76123 0 0
+16 10 8 0.76123 0 0
+16 10 9 0.76123 0 0
+16 10 10 0.763184 0 0
+16 10 11 0.770996 0 0
+16 10 12 0.774414 0 0.183472
+16 10 13 0.774414 0 0.299072
+16 10 14 0.763184 0 0.40625
+16 10 15 0.735352 0.151611 0.50293
+16 10 16 0.705566 0.189087 0.599121
+16 10 17 0.664062 0.206421 0.694824
+16 10 18 0.60791 0.223389 0.783691
+16 10 19 0.539062 0.23877 0.86084
+16 10 20 0.457031 0.251709 0.924805
+16 10 21 0.341553 0.253174 0.942383
+16 10 22 0.184448 0.252197 0.94873
+16 10 23 0 0.251953 0.954102
+16 10 24 0 0.252197 0.959961
+16 10 25 0 0.25293 0.966797
+16 10 26 0 0.25415 0.975098
+16 10 27 0 0.255859 0.984863
+16 10 28 0 0.258057 0.996582
+16 10 29 0 0.260742 1
+16 10 30 0 0.263672 1
+16 10 31 0 0.266113 1
+16 11 0 0.760254 0.0750122 0
+16 11 1 0.760254 0.0750122 0
+16 11 2 0.760254 0.0750732 0
+16 11 3 0.760254 0.0751953 0
+16 11 4 0.760254 0.0753174 0
+16 11 5 0.760254 0.0756836 0
+16 11 6 0.760254 0.0762939 0
+16 11 7 0.760254 0.0774536 0
+16 11 8 0.760254 0.0797119 0
+16 11 9 0.760254 0.0838013 0
+16 11 10 0.762207 0.0879517 0
+16 11 11 0.769043 0.0838623 0
+16 11 12 0.770996 0.0645142 0.178101
+16 11 13 0.770508 0.0537415 0.296143
+16 11 14 0.760254 0.101746 0.404053
+16 11 15 0.731445 0.196411 0.501953
+16 11 16 0.70166 0.224243 0.598633
+16 11 17 0.659668 0.236694 0.694336
+16 11 18 0.603516 0.249023 0.783203
+16 11 19 0.53418 0.260498 0.86084
+16 11 20 0.45166 0.270264 0.924805
+16 11 21 0.334961 0.268311 0.942871
+16 11 22 0.170654 0.264893 0.949219
+16 11 23 0 0.262695 0.955078
+16 11 24 0 0.261475 0.960938
+16 11 25 0 0.260986 0.967773
+16 11 26 0 0.260986 0.976074
+16 11 27 0 0.261719 0.98584
+16 11 28 0 0.263428 0.997559
+16 11 29 0 0.265381 1
+16 11 30 0 0.267334 1
+16 11 31 0 0.269531 1
+16 12 0 0.757324 0.205078 0
+16 12 1 0.757324 0.205078 0
+16 12 2 0.757324 0.205078 0
+16 12 3 0.757324 0.205078 0
+16 12 4 0.757324 0.2052 0
+16 12 5 0.757324 0.2052 0
+16 12 6 0.757324 0.205444 0
+16 12 7 0.757324 0.205688 0
+16 12 8 0.757324 0.206299 0
+16 12 9 0.757324 0.207397 0
+16 12 10 0.758789 0.208984 0
+16 12 11 0.762207 0.20813 0
+16 12 12 0.763672 0.203857 0.171387
+16 12 13 0.763184 0.199219 0.289795
+16 12 14 0.753906 0.204468 0.399658
+16 12 15 0.725098 0.250244 0.5
+16 12 16 0.694336 0.270752 0.597168
+16 12 17 0.652344 0.278564 0.693848
+16 12 18 0.595703 0.285889 0.782715
+16 12 19 0.525879 0.292725 0.86084
+16 12 20 0.441895 0.298096 0.925293
+16 12 21 0.322998 0.291992 0.944336
+16 12 22 0.142212 0.284912 0.950195
+16 12 23 0 0.279785 0.956055
+16 12 24 0 0.276367 0.961914
+16 12 25 0 0.273926 0.969238
+16 12 26 0 0.272461 0.977539
+16 12 27 0 0.271729 0.987305
+16 12 28 0 0.271973 0.999023
+16 12 29 0 0.272705 1
+16 12 30 0 0.273682 1
+16 12 31 0 0.274902 1
+16 13 0 0.749512 0.299561 0
+16 13 1 0.749512 0.299561 0
+16 13 2 0.749512 0.299561 0
+16 13 3 0.749512 0.299561 0
+16 13 4 0.749512 0.299561 0
+16 13 5 0.749512 0.299561 0
+16 13 6 0.749512 0.299805 0
+16 13 7 0.749512 0.299805 0
+16 13 8 0.749512 0.300293 0
+16 13 9 0.749512 0.300781 0
+16 13 10 0.75 0.302002 0
+16 13 11 0.75 0.30127 0
+16 13 12 0.75 0.299805 0.168823
+16 13 13 0.749023 0.296631 0.282471
+16 13 14 0.741699 0.294678 0.392578
+16 13 15 0.713867 0.313965 0.49707
+16 13 16 0.682129 0.329102 0.594727
+16 13 17 0.640137 0.332764 0.691895
+16 13 18 0.583008 0.335205 0.781738
+16 13 19 0.511719 0.336914 0.860352
+16 13 20 0.425537 0.337646 0.925293
+16 13 21 0.302002 0.326172 0.945801
+16 13 22 0.0520325 0.314209 0.952148
+16 13 23 0 0.30542 0.958496
+16 13 24 0 0.299072 0.964355
+16 13 25 0 0.293945 0.97168
+16 13 26 0 0.290039 0.97998
+16 13 27 0 0.287109 0.989746
+16 13 28 0 0.2854 1
+16 13 29 0 0.28418 1
+16 13 30 0 0.283447 1
+16 13 31 0 0.283447 1
+16 14 0 0.73291 0.390869 0
+16 14 1 0.73291 0.390869 0
+16 14 2 0.73291 0.390869 0
+16 14 3 0.73291 0.390869 0
+16 14 4 0.73291 0.390869 0
+16 14 5 0.73291 0.390869 0
+16 14 6 0.73291 0.390869 0
+16 14 7 0.73291 0.391113 0
+16 14 8 0.73291 0.391357 0
+16 14 9 0.73291 0.391602 0
+16 14 10 0.733398 0.392334 0
+16 14 11 0.731934 0.392578 0
+16 14 12 0.728516 0.392334 0.179932
+16 14 13 0.724121 0.391357 0.28125
+16 14 14 0.716797 0.388428 0.382568
+16 14 15 0.695312 0.389404 0.490479
+16 14 16 0.661133 0.399414 0.590332
+16 14 17 0.619141 0.39917 0.688965
+16 14 18 0.561035 0.397217 0.779785
+16 14 19 0.487793 0.394043 0.859375
+16 14 20 0.396973 0.389648 0.924805
+16 14 21 0.262451 0.372803 0.94873
+16 14 22 0 0.354736 0.955566
+16 14 23 0 0.341309 0.961914
+16 14 24 0 0.331055 0.968262
+16 14 25 0 0.32251 0.975586
+16 14 26 0 0.31543 0.983887
+16 14 27 0 0.309814 0.993652
+16 14 28 0 0.304932 1
+16 14 29 0 0.30127 1
+16 14 30 0 0.298584 1
+16 14 31 0 0.296631 1
+16 15 0 0.710938 0.487549 0
+16 15 1 0.710938 0.487549 0
+16 15 2 0.710938 0.487549 0
+16 15 3 0.710938 0.487549 0
+16 15 4 0.710938 0.487549 0
+16 15 5 0.710938 0.487549 0
+16 15 6 0.710938 0.487793 0
+16 15 7 0.710938 0.487793 0
+16 15 8 0.710938 0.487793 0
+16 15 9 0.710938 0.488281 0
+16 15 10 0.711426 0.48877 0
+16 15 11 0.709473 0.489014 0
+16 15 12 0.704102 0.48877 0.192993
+16 15 13 0.695312 0.487549 0.288574
+16 15 14 0.679688 0.484619 0.380859
+16 15 15 0.65918 0.479736 0.478271
+16 15 16 0.627441 0.480713 0.583496
+16 15 17 0.583984 0.477539 0.683594
+16 15 18 0.524414 0.47168 0.776367
+16 15 19 0.447021 0.463623 0.857422
+16 15 20 0.346436 0.454346 0.924316
+16 15 21 0.17395 0.432129 0.952148
+16 15 22 0 0.407715 0.959961
+16 15 23 0 0.388916 0.967285
+16 15 24 0 0.374268 0.974121
+16 15 25 0 0.361328 0.980957
+16 15 26 0 0.349854 0.987793
+16 15 27 0 0.339844 0.996094
+16 15 28 0 0.331787 1
+16 15 29 0 0.325195 1
+16 15 30 0 0.31958 1
+16 15 31 0 0.315186 1
+16 16 0 0.667969 0.593262 0
+16 16 1 0.667969 0.593262 0
+16 16 2 0.667969 0.593262 0
+16 16 3 0.667969 0.593262 0
+16 16 4 0.667969 0.593262 0
+16 16 5 0.667969 0.593262 0
+16 16 6 0.667969 0.59375 0
+16 16 7 0.667969 0.59375 0
+16 16 8 0.667969 0.59375 0
+16 16 9 0.667969 0.59375 0
+16 16 10 0.667969 0.594238 0
+16 16 11 0.666992 0.594727 0
+16 16 12 0.662109 0.594238 0.158081
+16 16 13 0.652832 0.593262 0.273926
+16 16 14 0.637695 0.589844 0.375244
+16 16 15 0.611816 0.583496 0.474609
+16 16 16 0.571289 0.571289 0.571289
+16 16 17 0.525879 0.565918 0.674316
+16 16 18 0.461914 0.557129 0.769531
+16 16 19 0.374023 0.54541 0.853027
+16 16 20 0.241577 0.53125 0.921875
+16 16 21 0 0.504395 0.955078
+16 16 22 0 0.472656 0.964844
+16 16 23 0 0.447754 0.972168
+16 16 24 0 0.42749 0.978516
+16 16 25 0 0.409668 0.984863
+16 16 26 0 0.393555 0.992188
+16 16 27 0 0.379639 1
+16 16 28 0 0.367432 1
+16 16 29 0 0.357178 1
+16 16 30 0 0.348145 1
+16 16 31 0 0.340576 1
+16 17 0 0.571777 0.682129 0
+16 17 1 0.571777 0.682129 0
+16 17 2 0.571777 0.682129 0
+16 17 3 0.571777 0.682129 0
+16 17 4 0.571777 0.682129 0
+16 17 5 0.571777 0.682129 0
+16 17 6 0.571777 0.682129 0
+16 17 7 0.571777 0.682129 0
+16 17 8 0.571777 0.682617 0
+16 17 9 0.571777 0.682617 0
+16 17 10 0.571777 0.682617 0
+16 17 11 0.571777 0.683105 0
+16 17 12 0.566895 0.682617 0
+16 17 13 0.557617 0.681641 0.225586
+16 17 14 0.541992 0.678711 0.34082
+16 17 15 0.516602 0.671875 0.446533
+16 17 16 0.479736 0.665039 0.552734
+16 17 17 0.427979 0.65918 0.65918
+16 17 18 0.348877 0.648438 0.758301
+16 17 19 0.213501 0.634277 0.844727
+16 17 20 0 0.616699 0.916504
+16 17 21 0 0.585449 0.956543
+16 17 22 0 0.547852 0.969727
+16 17 23 0 0.516602 0.978516
+16 17 24 0 0.491211 0.985352
+16 17 25 0 0.468018 0.992188
+16 17 26 0 0.447021 0.999023
+16 17 27 0 0.427979 1
+16 17 28 0 0.411377 1
+16 17 29 0 0.396729 1
+16 17 30 0 0.384033 1
+16 17 31 0 0.372803 1
+16 18 0 0.426025 0.76123 0
+16 18 1 0.426025 0.76123 0
+16 18 2 0.426025 0.76123 0
+16 18 3 0.426025 0.76123 0
+16 18 4 0.426025 0.76123 0
+16 18 5 0.426025 0.76123 0
+16 18 6 0.426025 0.76123 0
+16 18 7 0.426025 0.76123 0
+16 18 8 0.426025 0.76123 0
+16 18 9 0.426025 0.76123 0
+16 18 10 0.42627 0.761719 0
+16 18 11 0.42627 0.761719 0
+16 18 12 0.422607 0.762207 0
+16 18 13 0.411865 0.762207 0.143066
+16 18 14 0.393799 0.76123 0.295166
+16 18 15 0.36377 0.758789 0.412598
+16 18 16 0.313477 0.756348 0.526367
+16 18 17 0.219604 0.750977 0.637695
+16 18 18 0 0.740723 0.740723
+16 18 19 0 0.724609 0.831543
+16 18 20 0 0.705078 0.906738
+16 18 21 0 0.672852 0.95459
+16 18 22 0 0.631348 0.975586
+16 18 23 0 0.595215 0.988281
+16 18 24 0 0.564453 0.996582
+16 18 25 0 0.535645 1
+16 18 26 0 0.508789 1
+16 18 27 0 0.484619 1
+16 18 28 0 0.462891 1
+16 18 29 0 0.443359 1
+16 18 30 0 0.426025 1
+16 18 31 0 0.410645 1
+16 19 0 0 0.835938 0
+16 19 1 0 0.835938 0
+16 19 2 0 0.835938 0
+16 19 3 0 0.835938 0
+16 19 4 0 0.835938 0
+16 19 5 0 0.835938 0
+16 19 6 0 0.835938 0
+16 19 7 0 0.835938 0
+16 19 8 0 0.836426 0
+16 19 9 0 0.836426 0
+16 19 10 0 0.836426 0
+16 19 11 0 0.836426 0
+16 19 12 0 0.836914 0
+16 19 13 0 0.837891 0
+16 19 14 0 0.839355 0.235352
+16 19 15 0 0.839844 0.371826
+16 19 16 0 0.839844 0.493408
+16 19 17 0 0.836426 0.609375
+16 19 18 0 0.827148 0.716797
+16 19 19 0 0.811523 0.812012
+16 19 20 0 0.791016 0.891602
+16 19 21 0 0.760254 0.949219
+16 19 22 0 0.719727 0.981445
+16 19 23 0 0.680176 0.999512
+16 19 24 0 0.644531 1
+16 19 25 0 0.610352 1
+16 19 26 0 0.577637 1
+16 19 27 0 0.547852 1
+16 19 28 0 0.52002 1
+16 19 29 0 0.495605 1
+16 19 30 0 0.473389 1
+16 19 31 0 0.453369 1
+16 20 0 0 0.90332 0
+16 20 1 0 0.90332 0
+16 20 2 0 0.90332 0
+16 20 3 0 0.90332 0
+16 20 4 0 0.90332 0
+16 20 5 0 0.90332 0
+16 20 6 0 0.90332 0
+16 20 7 0 0.90332 0
+16 20 8 0 0.90332 0
+16 20 9 0 0.90332 0
+16 20 10 0 0.903809 0
+16 20 11 0 0.903809 0
+16 20 12 0 0.904297 0
+16 20 13 0 0.905762 0
+16 20 14 0 0.907715 0.140625
+16 20 15 0 0.910156 0.322754
+16 20 16 0 0.912109 0.45459
+16 20 17 0 0.910645 0.575684
+16 20 18 0 0.90332 0.687012
+16 20 19 0 0.890137 0.786621
+16 20 20 0 0.870117 0.870605
+16 20 21 0 0.843262 0.937988
+16 20 22 0 0.806152 0.98291
+16 20 23 0 0.766113 1
+16 20 24 0 0.727539 1
+16 20 25 0 0.688965 1
+16 20 26 0 0.650879 1
+16 20 27 0 0.615234 1
+16 20 28 0 0.582031 1
+16 20 29 0 0.55127 1
+16 20 30 0 0.523926 1
+16 20 31 0 0.499268 1
+16 21 0 0 0.961914 0
+16 21 1 0 0.961914 0
+16 21 2 0 0.961914 0
+16 21 3 0 0.961914 0
+16 21 4 0 0.961914 0
+16 21 5 0 0.961914 0
+16 21 6 0 0.961914 0
+16 21 7 0 0.961914 0
+16 21 8 0 0.961914 0
+16 21 9 0 0.961914 0
+16 21 10 0 0.962402 0
+16 21 11 0 0.962402 0
+16 21 12 0 0.962402 0
+16 21 13 0 0.963867 0
+16 21 14 0 0.966797 0
+16 21 15 0 0.970215 0.26123
+16 21 16 0 0.973145 0.409912
+16 21 17 0 0.974121 0.536621
+16 21 18 0 0.969727 0.651855
+16 21 19 0 0.958984 0.755371
+16 21 20 0 0.941406 0.84375
+16 21 21 0 0.917969 0.918457
+16 21 22 0 0.887207 0.975098
+16 21 23 0 0.850098 1
+16 21 24 0 0.811035 1
+16 21 25 0 0.769531 1
+16 21 26 0 0.727051 1
+16 21 27 0 0.686035 1
+16 21 28 0 0.647461 1
+16 21 29 0 0.611328 1
+16 21 30 0 0.578125 1
+16 21 31 0 0.54834 1
+16 22 0 0 1 0
+16 22 1 0 1 0
+16 22 2 0 1 0
+16 22 3 0 1 0
+16 22 4 0 1 0
+16 22 5 0 1 0
+16 22 6 0 1 0
+16 22 7 0 1 0
+16 22 8 0 1 0
+16 22 9 0 1 0
+16 22 10 0 1 0
+16 22 11 0 1 0
+16 22 12 0 1 0
+16 22 13 0 1 0
+16 22 14 0 1 0
+16 22 15 0 1 0.175171
+16 22 16 0 1 0.359619
+16 22 17 0 1 0.494141
+16 22 18 0 1 0.613281
+16 22 19 0 1 0.719727
+16 22 20 0 1 0.812012
+16 22 21 0 0.981934 0.891113
+16 22 22 0 0.956055 0.956543
+16 22 23 0 0.924316 1
+16 22 24 0 0.888184 1
+16 22 25 0 0.84668 1
+16 22 26 0 0.802734 1
+16 22 27 0 0.757812 1
+16 22 28 0 0.714355 1
+16 22 29 0 0.67334 1
+16 22 30 0 0.634766 1
+16 22 31 0 0.599609 1
+16 23 0 0 1 0
+16 23 1 0 1 0
+16 23 2 0 1 0
+16 23 3 0 1 0
+16 23 4 0 1 0
+16 23 5 0 1 0
+16 23 6 0 1 0
+16 23 7 0 1 0
+16 23 8 0 1 0
+16 23 9 0 1 0
+16 23 10 0 1 0
+16 23 11 0 1 0
+16 23 12 0 1 0
+16 23 13 0 1 0
+16 23 14 0 1 0
+16 23 15 0 1 0
+16 23 16 0 1 0.304443
+16 23 17 0 1 0.450195
+16 23 18 0 1 0.573242
+16 23 19 0 1 0.682617
+16 23 20 0 1 0.777832
+16 23 21 0 1 0.86084
+16 23 22 0 1 0.930176
+16 23 23 0 0.984863 0.985352
+16 23 24 0 0.953613 1
+16 23 25 0 0.915527 1
+16 23 26 0 0.871582 1
+16 23 27 0 0.825195 1
+16 23 28 0 0.778809 1
+16 23 29 0 0.733398 1
+16 23 30 0 0.69043 1
+16 23 31 0 0.650391 1
+16 24 0 0 1 0
+16 24 1 0 1 0
+16 24 2 0 1 0
+16 24 3 0 1 0
+16 24 4 0 1 0
+16 24 5 0 1 0
+16 24 6 0 1 0
+16 24 7 0 1 0
+16 24 8 0 1 0
+16 24 9 0 1 0
+16 24 10 0 1 0
+16 24 11 0 1 0
+16 24 12 0 1 0
+16 24 13 0 1 0
+16 24 14 0 1 0
+16 24 15 0 1 0
+16 24 16 0 1 0.240356
+16 24 17 0 1 0.404785
+16 24 18 0 1 0.532715
+16 24 19 0 1 0.644531
+16 24 20 0 1 0.742188
+16 24 21 0 1 0.828125
+16 24 22 0 1 0.901367
+16 24 23 0 1 0.960449
+16 24 24 0 1 1
+16 24 25 0 0.974121 1
+16 24 26 0 0.933105 1
+16 24 27 0 0.887207 1
+16 24 28 0 0.838867 1
+16 24 29 0 0.791016 1
+16 24 30 0 0.744141 1
+16 24 31 0 0.700195 1
+16 25 0 0 1 0
+16 25 1 0 1 0
+16 25 2 0 1 0
+16 25 3 0 1 0
+16 25 4 0 1 0
+16 25 5 0 1 0
+16 25 6 0 1 0
+16 25 7 0 1 0
+16 25 8 0 1 0
+16 25 9 0 1 0
+16 25 10 0 1 0
+16 25 11 0 1 0
+16 25 12 0 1 0
+16 25 13 0 1 0
+16 25 14 0 1 0
+16 25 15 0 1 0
+16 25 16 0 1 0.138916
+16 25 17 0 1 0.352295
+16 25 18 0 1 0.487549
+16 25 19 0 1 0.602051
+16 25 20 0 1 0.70166
+16 25 21 0 1 0.790527
+16 25 22 0 1 0.866699
+16 25 23 0 1 0.929688
+16 25 24 0 1 0.981934
+16 25 25 0 1 1
+16 25 26 0 0.991211 1
+16 25 27 0 0.947754 1
+16 25 28 0 0.899902 1
+16 25 29 0 0.850098 1
+16 25 30 0 0.800781 1
+16 25 31 0 0.75293 1
+16 26 0 0 1 0
+16 26 1 0 1 0
+16 26 2 0 1 0
+16 26 3 0 1 0
+16 26 4 0 1 0
+16 26 5 0 1 0
+16 26 6 0 1 0
+16 26 7 0 1 0
+16 26 8 0 1 0
+16 26 9 0 1 0
+16 26 10 0 1 0
+16 26 11 0 1 0
+16 26 12 0 1 0
+16 26 13 0 1 0
+16 26 14 0 1 0
+16 26 15 0 1 0
+16 26 16 0 1 0
+16 26 17 0 1 0.289307
+16 26 18 0 1 0.437012
+16 26 19 0 1 0.555176
+16 26 20 0 1 0.656738
+16 26 21 0 1 0.747559
+16 26 22 0 1 0.827148
+16 26 23 0 1 0.893555
+16 26 24 0 1 0.949219
+16 26 25 0 1 1
+16 26 26 0 1 1
+16 26 27 0 1 1
+16 26 28 0 0.959473 1
+16 26 29 0 0.909668 1
+16 26 30 0 0.858887 1
+16 26 31 0 0.808594 1
+16 27 0 0 1 0
+16 27 1 0 1 0
+16 27 2 0 1 0
+16 27 3 0 1 0
+16 27 4 0 1 0
+16 27 5 0 1 0
+16 27 6 0 1 0
+16 27 7 0 1 0
+16 27 8 0 1 0
+16 27 9 0 1 0
+16 27 10 0 1 0
+16 27 11 0 1 0
+16 27 12 0 1 0
+16 27 13 0 1 0
+16 27 14 0 1 0
+16 27 15 0 1 0
+16 27 16 0 1 0
+16 27 17 0 1 0.20459
+16 27 18 0 1 0.380371
+16 27 19 0 1 0.503906
+16 27 20 0 1 0.60791
+16 27 21 0 1 0.700195
+16 27 22 0 1 0.781738
+16 27 23 0 1 0.851074
+16 27 24 0 1 0.910156
+16 27 25 0 1 0.965332
+16 27 26 0 1 1
+16 27 27 0 1 1
+16 27 28 0 1 1
+16 27 29 0 0.967285 1
+16 27 30 0 0.916504 1
+16 27 31 0 0.864746 1
+16 28 0 0 1 0
+16 28 1 0 1 0
+16 28 2 0 1 0
+16 28 3 0 1 0
+16 28 4 0 1 0
+16 28 5 0 1 0
+16 28 6 0 1 0
+16 28 7 0 1 0
+16 28 8 0 1 0
+16 28 9 0 1 0
+16 28 10 0 1 0
+16 28 11 0 1 0
+16 28 12 0 1 0
+16 28 13 0 1 0
+16 28 14 0 1 0
+16 28 15 0 1 0
+16 28 16 0 1 0
+16 28 17 0 1 0
+16 28 18 0 1 0.314453
+16 28 19 0 1 0.447998
+16 28 20 0 1 0.554688
+16 28 21 0 1 0.648926
+16 28 22 0 1 0.731934
+16 28 23 0 1 0.803711
+16 28 24 0 1 0.865723
+16 28 25 0 1 0.923828
+16 28 26 0 1 0.978027
+16 28 27 0 1 1
+16 28 28 0 1 1
+16 28 29 0 1 1
+16 28 30 0 0.972656 1
+16 28 31 0 0.921387 1
+16 29 0 0 1 0
+16 29 1 0 1 0
+16 29 2 0 1 0
+16 29 3 0 1 0
+16 29 4 0 1 0
+16 29 5 0 1 0
+16 29 6 0 1 0
+16 29 7 0 1 0
+16 29 8 0 1 0
+16 29 9 0 1 0
+16 29 10 0 1 0
+16 29 11 0 1 0
+16 29 12 0 1 0
+16 29 13 0 1 0
+16 29 14 0 1 0
+16 29 15 0 1 0
+16 29 16 0 1 0
+16 29 17 0 1 0
+16 29 18 0 1 0.230469
+16 29 19 0 1 0.385742
+16 29 20 0 1 0.497314
+16 29 21 0 1 0.592773
+16 29 22 0 1 0.677734
+16 29 23 0 1 0.750977
+16 29 24 0 1 0.814453
+16 29 25 0 1 0.875977
+16 29 26 0 1 0.933594
+16 29 27 0 1 0.986816
+16 29 28 0 1 1
+16 29 29 0 1 1
+16 29 30 0 1 1
+16 29 31 0 0.977051 1
+16 30 0 0 1 0
+16 30 1 0 1 0
+16 30 2 0 1 0
+16 30 3 0 1 0
+16 30 4 0 1 0
+16 30 5 0 1 0
+16 30 6 0 1 0
+16 30 7 0 1 0
+16 30 8 0 1 0
+16 30 9 0 1 0
+16 30 10 0 1 0
+16 30 11 0 1 0
+16 30 12 0 1 0
+16 30 13 0 1 0
+16 30 14 0 1 0
+16 30 15 0 1 0
+16 30 16 0 1 0
+16 30 17 0 1 0
+16 30 18 0 1 0.0466309
+16 30 19 0 1 0.314453
+16 30 20 0 1 0.435059
+16 30 21 0 1 0.533691
+16 30 22 0 1 0.619141
+16 30 23 0 1 0.693359
+16 30 24 0 1 0.758301
+16 30 25 0 1 0.821777
+16 30 26 0 1 0.882812
+16 30 27 0 1 0.94043
+16 30 28 0 1 0.992676
+16 30 29 0 1 1
+16 30 30 0 1 1
+16 30 31 0 1 1
+16 31 0 0 1 0
+16 31 1 0 1 0
+16 31 2 0 1 0
+16 31 3 0 1 0
+16 31 4 0 1 0
+16 31 5 0 1 0
+16 31 6 0 1 0
+16 31 7 0 1 0
+16 31 8 0 1 0
+16 31 9 0 1 0
+16 31 10 0 1 0
+16 31 11 0 1 0
+16 31 12 0 1 0
+16 31 13 0 1 0
+16 31 14 0 1 0
+16 31 15 0 1 0
+16 31 16 0 1 0
+16 31 17 0 1 0
+16 31 18 0 1 0
+16 31 19 0 1 0.224487
+16 31 20 0 1 0.366699
+16 31 21 0 1 0.469971
+16 31 22 0 1 0.557129
+16 31 23 0 1 0.631836
+16 31 24 0 1 0.698242
+16 31 25 0 1 0.763184
+16 31 26 0 1 0.82666
+16 31 27 0 1 0.887695
+16 31 28 0 1 0.944824
+16 31 29 0 1 0.99707
+16 31 30 0 1 1
+16 31 31 0 1 1
+17 0 0 0.821777 0 0
+17 0 1 0.821777 0 0
+17 0 2 0.821777 0 0
+17 0 3 0.821777 0 0
+17 0 4 0.821777 0 0
+17 0 5 0.821777 0 0
+17 0 6 0.821777 0 0
+17 0 7 0.821777 0 0
+17 0 8 0.821777 0 0
+17 0 9 0.821777 0 0
+17 0 10 0.822266 0 0
+17 0 11 0.826172 0 0
+17 0 12 0.834473 0 0.0801392
+17 0 13 0.84668 0 0.242676
+17 0 14 0.855957 0 0.359131
+17 0 15 0.857422 0 0.476562
+17 0 16 0.844727 0.0699463 0.586914
+17 0 17 0.812988 0.144897 0.686523
+17 0 18 0.766113 0.175659 0.77832
+17 0 19 0.708496 0.201172 0.858887
+17 0 20 0.641602 0.221558 0.925293
+17 0 21 0.551758 0.231812 0.954102
+17 0 22 0.454834 0.23645 0.963867
+17 0 23 0.358398 0.239624 0.969727
+17 0 24 0.247803 0.242065 0.974609
+17 0 25 0 0.244385 0.97998
+17 0 26 0 0.246826 0.986816
+17 0 27 0 0.249512 0.994629
+17 0 28 0 0.252686 1
+17 0 29 0 0.256104 1
+17 0 30 0 0.259521 1
+17 0 31 0 0.263184 1
+17 1 0 0.821777 0 0
+17 1 1 0.821777 0 0
+17 1 2 0.821777 0 0
+17 1 3 0.821777 0 0
+17 1 4 0.821777 0 0
+17 1 5 0.821777 0 0
+17 1 6 0.821777 0 0
+17 1 7 0.821777 0 0
+17 1 8 0.821777 0 0
+17 1 9 0.821777 0 0
+17 1 10 0.822266 0 0
+17 1 11 0.826172 0 0
+17 1 12 0.834473 0 0.0801392
+17 1 13 0.84668 0 0.242676
+17 1 14 0.855957 0 0.359131
+17 1 15 0.857422 0 0.476562
+17 1 16 0.844727 0.0702515 0.586914
+17 1 17 0.812988 0.14502 0.686523
+17 1 18 0.766113 0.175781 0.77832
+17 1 19 0.708496 0.201172 0.858887
+17 1 20 0.641602 0.221558 0.925293
+17 1 21 0.551758 0.231812 0.954102
+17 1 22 0.454834 0.236572 0.963867
+17 1 23 0.358398 0.239624 0.969727
+17 1 24 0.247803 0.242065 0.974609
+17 1 25 0 0.244385 0.97998
+17 1 26 0 0.246826 0.986816
+17 1 27 0 0.249512 0.994629
+17 1 28 0 0.252686 1
+17 1 29 0 0.256104 1
+17 1 30 0 0.259521 1
+17 1 31 0 0.263184 1
+17 2 0 0.821777 0 0
+17 2 1 0.821777 0 0
+17 2 2 0.821777 0 0
+17 2 3 0.821777 0 0
+17 2 4 0.821777 0 0
+17 2 5 0.821777 0 0
+17 2 6 0.821777 0 0
+17 2 7 0.821777 0 0
+17 2 8 0.821777 0 0
+17 2 9 0.821777 0 0
+17 2 10 0.822266 0 0
+17 2 11 0.826172 0 0
+17 2 12 0.834473 0 0.0800781
+17 2 13 0.84668 0 0.242676
+17 2 14 0.855957 0 0.359131
+17 2 15 0.857422 0 0.476562
+17 2 16 0.844727 0.0707397 0.586914
+17 2 17 0.812988 0.145264 0.686523
+17 2 18 0.766113 0.175903 0.77832
+17 2 19 0.708496 0.201294 0.858887
+17 2 20 0.641602 0.22168 0.925293
+17 2 21 0.55127 0.231934 0.954102
+17 2 22 0.454834 0.236572 0.963867
+17 2 23 0.358398 0.239624 0.969727
+17 2 24 0.247803 0.242065 0.974609
+17 2 25 0 0.244385 0.97998
+17 2 26 0 0.246826 0.986816
+17 2 27 0 0.249512 0.994629
+17 2 28 0 0.252686 1
+17 2 29 0 0.256104 1
+17 2 30 0 0.259521 1
+17 2 31 0 0.263184 1
+17 3 0 0.821777 0 0
+17 3 1 0.821777 0 0
+17 3 2 0.821777 0 0
+17 3 3 0.821777 0 0
+17 3 4 0.821777 0 0
+17 3 5 0.821777 0 0
+17 3 6 0.821777 0 0
+17 3 7 0.821777 0 0
+17 3 8 0.821777 0 0
+17 3 9 0.821777 0 0
+17 3 10 0.822266 0 0
+17 3 11 0.826172 0 0
+17 3 12 0.834473 0 0.0800171
+17 3 13 0.84668 0 0.242676
+17 3 14 0.855957 0 0.359131
+17 3 15 0.857422 0 0.476562
+17 3 16 0.844727 0.0715942 0.586914
+17 3 17 0.812988 0.145508 0.686523
+17 3 18 0.766113 0.176147 0.77832
+17 3 19 0.708496 0.201538 0.858887
+17 3 20 0.641602 0.221802 0.925293
+17 3 21 0.55127 0.232056 0.954102
+17 3 22 0.454834 0.236694 0.963867
+17 3 23 0.358398 0.239746 0.969727
+17 3 24 0.247681 0.242065 0.974609
+17 3 25 0 0.244507 0.97998
+17 3 26 0 0.246948 0.986816
+17 3 27 0 0.249634 0.994629
+17 3 28 0 0.252686 1
+17 3 29 0 0.256104 1
+17 3 30 0 0.259521 1
+17 3 31 0 0.263184 1
+17 4 0 0.821777 0 0
+17 4 1 0.821777 0 0
+17 4 2 0.821777 0 0
+17 4 3 0.821777 0 0
+17 4 4 0.821777 0 0
+17 4 5 0.821777 0 0
+17 4 6 0.821777 0 0
+17 4 7 0.821777 0 0
+17 4 8 0.821777 0 0
+17 4 9 0.821777 0 0
+17 4 10 0.822266 0 0
+17 4 11 0.826172 0 0
+17 4 12 0.834473 0 0.079834
+17 4 13 0.84668 0 0.242676
+17 4 14 0.855957 0 0.359131
+17 4 15 0.857422 0 0.476562
+17 4 16 0.844727 0.0733032 0.586914
+17 4 17 0.812988 0.146118 0.686523
+17 4 18 0.766113 0.176514 0.77832
+17 4 19 0.708008 0.201782 0.858887
+17 4 20 0.641602 0.222046 0.925293
+17 4 21 0.55127 0.232178 0.954102
+17 4 22 0.454834 0.236816 0.963867
+17 4 23 0.358398 0.239868 0.969727
+17 4 24 0.247681 0.242188 0.974609
+17 4 25 0 0.244507 0.97998
+17 4 26 0 0.246948 0.986816
+17 4 27 0 0.249634 0.994629
+17 4 28 0 0.252686 1
+17 4 29 0 0.256104 1
+17 4 30 0 0.259766 1
+17 4 31 0 0.263428 1
+17 5 0 0.821777 0 0
+17 5 1 0.821777 0 0
+17 5 2 0.821777 0 0
+17 5 3 0.821777 0 0
+17 5 4 0.821777 0 0
+17 5 5 0.821777 0 0
+17 5 6 0.821777 0 0
+17 5 7 0.821777 0 0
+17 5 8 0.821777 0 0
+17 5 9 0.821777 0 0
+17 5 10 0.822266 0 0
+17 5 11 0.826172 0 0
+17 5 12 0.834473 0 0.0795288
+17 5 13 0.84668 0 0.242554
+17 5 14 0.855957 0 0.358887
+17 5 15 0.857422 0 0.476562
+17 5 16 0.844727 0.076355 0.586914
+17 5 17 0.812988 0.147339 0.686523
+17 5 18 0.766113 0.177368 0.77832
+17 5 19 0.708008 0.202515 0.858887
+17 5 20 0.641602 0.222656 0.925293
+17 5 21 0.55127 0.232666 0.954102
+17 5 22 0.454834 0.237183 0.963867
+17 5 23 0.358154 0.240112 0.969727
+17 5 24 0.247437 0.242432 0.974609
+17 5 25 0 0.244751 0.97998
+17 5 26 0 0.247192 0.986816
+17 5 27 0 0.249756 0.994629
+17 5 28 0 0.25293 1
+17 5 29 0 0.256104 1
+17 5 30 0 0.259766 1
+17 5 31 0 0.263428 1
+17 6 0 0.821777 0 0
+17 6 1 0.821777 0 0
+17 6 2 0.821777 0 0
+17 6 3 0.821777 0 0
+17 6 4 0.821777 0 0
+17 6 5 0.821777 0 0
+17 6 6 0.821777 0 0
+17 6 7 0.821777 0 0
+17 6 8 0.821777 0 0
+17 6 9 0.822266 0 0
+17 6 10 0.822266 0 0
+17 6 11 0.82666 0 0
+17 6 12 0.834473 0 0.0789795
+17 6 13 0.84668 0 0.242432
+17 6 14 0.855957 0 0.358887
+17 6 15 0.857422 0 0.476318
+17 6 16 0.844238 0.0817871 0.586914
+17 6 17 0.812988 0.149536 0.686523
+17 6 18 0.766113 0.179077 0.77832
+17 6 19 0.708008 0.203735 0.858887
+17 6 20 0.641113 0.223633 0.925293
+17 6 21 0.55127 0.233398 0.954102
+17 6 22 0.45459 0.237793 0.963867
+17 6 23 0.35791 0.240723 0.969727
+17 6 24 0.247192 0.24292 0.974609
+17 6 25 0 0.245117 0.97998
+17 6 26 0 0.247437 0.986816
+17 6 27 0 0.25 0.994629
+17 6 28 0 0.253174 1
+17 6 29 0 0.256348 1
+17 6 30 0 0.26001 1
+17 6 31 0 0.263672 1
+17 7 0 0.822266 0 0
+17 7 1 0.822266 0 0
+17 7 2 0.822266 0 0
+17 7 3 0.822266 0 0
+17 7 4 0.822266 0 0
+17 7 5 0.822266 0 0
+17 7 6 0.822266 0 0
+17 7 7 0.822266 0 0
+17 7 8 0.822266 0 0
+17 7 9 0.822266 0 0
+17 7 10 0.822266 0 0
+17 7 11 0.82666 0 0
+17 7 12 0.834473 0 0.0778198
+17 7 13 0.84668 0 0.242065
+17 7 14 0.855957 0 0.358643
+17 7 15 0.856934 0 0.476318
+17 7 16 0.844238 0.0910645 0.586914
+17 7 17 0.8125 0.153809 0.686523
+17 7 18 0.765625 0.182129 0.77832
+17 7 19 0.70752 0.206055 0.858887
+17 7 20 0.641113 0.225464 0.925293
+17 7 21 0.550781 0.234985 0.954102
+17 7 22 0.454346 0.239014 0.963867
+17 7 23 0.357666 0.241699 0.969727
+17 7 24 0.246704 0.243774 0.974609
+17 7 25 0 0.24585 0.980469
+17 7 26 0 0.248169 0.986816
+17 7 27 0 0.250732 0.994629
+17 7 28 0 0.253662 1
+17 7 29 0 0.256836 1
+17 7 30 0 0.260254 1
+17 7 31 0 0.263916 1
+17 8 0 0.822266 0 0
+17 8 1 0.822266 0 0
+17 8 2 0.822266 0 0
+17 8 3 0.822266 0 0
+17 8 4 0.822266 0 0
+17 8 5 0.822266 0 0
+17 8 6 0.822266 0 0
+17 8 7 0.822266 0 0
+17 8 8 0.822266 0 0
+17 8 9 0.822754 0 0
+17 8 10 0.822754 0 0
+17 8 11 0.82666 0 0
+17 8 12 0.834961 0 0.0756226
+17 8 13 0.846191 0 0.241455
+17 8 14 0.855957 0 0.358398
+17 8 15 0.856934 0 0.476074
+17 8 16 0.84375 0.10614 0.586426
+17 8 17 0.812012 0.161499 0.686523
+17 8 18 0.765137 0.187988 0.777832
+17 8 19 0.707031 0.210693 0.858887
+17 8 20 0.640625 0.229126 0.925293
+17 8 21 0.550293 0.237915 0.954102
+17 8 22 0.453613 0.241455 0.963867
+17 8 23 0.356934 0.243652 0.970215
+17 8 24 0.245605 0.245483 0.975098
+17 8 25 0 0.247314 0.980469
+17 8 26 0 0.249268 0.986816
+17 8 27 0 0.251709 0.994629
+17 8 28 0 0.254395 1
+17 8 29 0 0.257568 1
+17 8 30 0 0.260986 1
+17 8 31 0 0.264404 1
+17 9 0 0.822754 0 0
+17 9 1 0.822754 0 0
+17 9 2 0.822754 0 0
+17 9 3 0.822754 0 0
+17 9 4 0.822754 0 0
+17 9 5 0.822754 0 0
+17 9 6 0.822754 0 0
+17 9 7 0.822754 0 0
+17 9 8 0.822754 0 0
+17 9 9 0.823242 0 0
+17 9 10 0.823242 0 0
+17 9 11 0.827148 0 0
+17 9 12 0.834961 0 0.0712891
+17 9 13 0.846191 0 0.240234
+17 9 14 0.855469 0 0.357666
+17 9 15 0.855957 0 0.475586
+17 9 16 0.842773 0.128784 0.586426
+17 9 17 0.811035 0.175049 0.686035
+17 9 18 0.76416 0.198486 0.777832
+17 9 19 0.706055 0.218994 0.858887
+17 9 20 0.639648 0.235962 0.925293
+17 9 21 0.549316 0.243408 0.95459
+17 9 22 0.452637 0.24585 0.964355
+17 9 23 0.355469 0.247314 0.970215
+17 9 24 0.24353 0.248535 0.975098
+17 9 25 0 0.25 0.980469
+17 9 26 0 0.251709 0.986816
+17 9 27 0 0.253662 0.995117
+17 9 28 0 0.256104 1
+17 9 29 0 0.259033 1
+17 9 30 0 0.262207 1
+17 9 31 0 0.265381 1
+17 10 0 0.82373 0 0
+17 10 1 0.82373 0 0
+17 10 2 0.82373 0 0
+17 10 3 0.82373 0 0
+17 10 4 0.82373 0 0
+17 10 5 0.82373 0 0
+17 10 6 0.82373 0 0
+17 10 7 0.82373 0 0
+17 10 8 0.82373 0 0
+17 10 9 0.824219 0 0
+17 10 10 0.824219 0 0
+17 10 11 0.827637 0 0
+17 10 12 0.834961 0 0.0631104
+17 10 13 0.845703 0 0.238159
+17 10 14 0.854492 0 0.356689
+17 10 15 0.854492 0 0.474609
+17 10 16 0.84082 0.159668 0.585938
+17 10 17 0.80957 0.196533 0.686035
+17 10 18 0.762695 0.21582 0.777832
+17 10 19 0.70459 0.233154 0.858398
+17 10 20 0.637695 0.247681 0.925293
+17 10 21 0.547363 0.25293 0.95459
+17 10 22 0.450439 0.253662 0.964355
+17 10 23 0.353027 0.253906 0.970215
+17 10 24 0.239746 0.25415 0.975098
+17 10 25 0 0.254883 0.980957
+17 10 26 0 0.255615 0.987305
+17 10 27 0 0.25708 0.995117
+17 10 28 0 0.259277 1
+17 10 29 0 0.261719 1
+17 10 30 0 0.264404 1
+17 10 31 0 0.267334 1
+17 11 0 0.825195 0 0
+17 11 1 0.825195 0 0
+17 11 2 0.825195 0 0
+17 11 3 0.825195 0 0
+17 11 4 0.825195 0 0
+17 11 5 0.825195 0 0
+17 11 6 0.825195 0 0
+17 11 7 0.825195 0 0
+17 11 8 0.825684 0 0
+17 11 9 0.825684 0 0
+17 11 10 0.825684 0 0
+17 11 11 0.828613 0 0
+17 11 12 0.835449 0 0.0473328
+17 11 13 0.844727 0 0.234741
+17 11 14 0.853027 0 0.354736
+17 11 15 0.852051 0 0.473145
+17 11 16 0.837891 0.199463 0.584961
+17 11 17 0.806152 0.227783 0.685547
+17 11 18 0.759277 0.242188 0.777344
+17 11 19 0.701172 0.255371 0.858398
+17 11 20 0.634277 0.266602 0.925293
+17 11 21 0.544434 0.268555 0.955078
+17 11 22 0.446777 0.266602 0.964844
+17 11 23 0.348389 0.264893 0.970703
+17 11 24 0.23291 0.263672 0.975586
+17 11 25 0 0.262939 0.981445
+17 11 26 0 0.262695 0.987793
+17 11 27 0 0.263184 0.996094
+17 11 28 0 0.264404 1
+17 11 29 0 0.266113 1
+17 11 30 0 0.268311 1
+17 11 31 0 0.270752 1
+17 12 0 0.827637 0.141846 0
+17 12 1 0.827637 0.141968 0
+17 12 2 0.827637 0.141968 0
+17 12 3 0.827637 0.141968 0
+17 12 4 0.827637 0.141968 0
+17 12 5 0.827637 0.14209 0
+17 12 6 0.827637 0.142334 0
+17 12 7 0.827637 0.1427 0
+17 12 8 0.827637 0.143555 0
+17 12 9 0.827637 0.145142 0
+17 12 10 0.827637 0.147827 0
+17 12 11 0.830078 0.149414 0
+17 12 12 0.835449 0.143921 0
+17 12 13 0.842773 0.134766 0.230225
+17 12 14 0.850098 0.133545 0.351807
+17 12 15 0.847168 0.171509 0.470215
+17 12 16 0.83252 0.249023 0.583496
+17 12 17 0.800781 0.270508 0.68457
+17 12 18 0.753906 0.279785 0.776855
+17 12 19 0.695801 0.288086 0.85791
+17 12 20 0.628418 0.294922 0.925293
+17 12 21 0.538574 0.292969 0.955566
+17 12 22 0.440186 0.287109 0.965332
+17 12 23 0.340576 0.282227 0.97168
+17 12 24 0.220337 0.278809 0.976562
+17 12 25 0 0.276123 0.982422
+17 12 26 0 0.27417 0.98877
+17 12 27 0 0.273193 0.99707
+17 12 28 0 0.272949 1
+17 12 29 0 0.273682 1
+17 12 30 0 0.274902 1
+17 12 31 0 0.276367 1
+17 13 0 0.82959 0.25415 0
+17 13 1 0.82959 0.25415 0
+17 13 2 0.82959 0.25415 0
+17 13 3 0.82959 0.25415 0
+17 13 4 0.82959 0.25415 0
+17 13 5 0.82959 0.25415 0
+17 13 6 0.82959 0.254395 0
+17 13 7 0.82959 0.254395 0
+17 13 8 0.82959 0.254883 0
+17 13 9 0.82959 0.255615 0
+17 13 10 0.830078 0.256836 0
+17 13 11 0.831055 0.257812 0
+17 13 12 0.834473 0.255859 0
+17 13 13 0.838867 0.252686 0.225952
+17 13 14 0.843262 0.250732 0.346436
+17 13 15 0.839355 0.260742 0.465088
+17 13 16 0.822754 0.308594 0.580566
+17 13 17 0.791504 0.324951 0.682617
+17 13 18 0.744629 0.32959 0.775879
+17 13 19 0.686523 0.332764 0.857422
+17 13 20 0.618652 0.334961 0.924805
+17 13 21 0.528809 0.327637 0.956543
+17 13 22 0.429199 0.316895 0.966309
+17 13 23 0.326904 0.308105 0.972656
+17 13 24 0.197144 0.301514 0.978027
+17 13 25 0 0.296143 0.983887
+17 13 26 0 0.291748 0.990723
+17 13 27 0 0.288574 0.999023
+17 13 28 0 0.286621 1
+17 13 29 0 0.2854 1
+17 13 30 0 0.285156 1
+17 13 31 0 0.2854 1
+17 14 0 0.830078 0.354492 0
+17 14 1 0.830078 0.354492 0
+17 14 2 0.830078 0.354492 0
+17 14 3 0.830078 0.354492 0
+17 14 4 0.830078 0.354492 0
+17 14 5 0.830078 0.354492 0
+17 14 6 0.830078 0.354736 0
+17 14 7 0.830078 0.354736 0
+17 14 8 0.830078 0.35498 0
+17 14 9 0.830078 0.355469 0
+17 14 10 0.830078 0.356201 0
+17 14 11 0.830566 0.356934 0
+17 14 12 0.830566 0.356689 0.0610962
+17 14 13 0.831055 0.355469 0.227539
+17 14 14 0.830566 0.353027 0.340332
+17 14 15 0.824219 0.352783 0.457031
+17 14 16 0.806641 0.378418 0.575195
+17 14 17 0.776367 0.391602 0.679688
+17 14 18 0.729492 0.391846 0.773438
+17 14 19 0.670898 0.390381 0.856445
+17 14 20 0.602539 0.387451 0.924316
+17 14 21 0.512207 0.374512 0.958008
+17 14 22 0.410645 0.35791 0.968262
+17 14 23 0.302979 0.344482 0.974609
+17 14 24 0.148682 0.333984 0.980469
+17 14 25 0 0.324951 0.986328
+17 14 26 0 0.317383 0.993652
+17 14 27 0 0.311279 1
+17 14 28 0 0.306641 1
+17 14 29 0 0.303223 1
+17 14 30 0 0.300781 1
+17 14 31 0 0.298828 1
+17 15 0 0.825684 0.457275 0
+17 15 1 0.825684 0.457275 0
+17 15 2 0.825684 0.457275 0
+17 15 3 0.825684 0.457275 0
+17 15 4 0.825684 0.457275 0
+17 15 5 0.825684 0.45752 0
+17 15 6 0.825684 0.45752 0
+17 15 7 0.825684 0.45752 0
+17 15 8 0.825684 0.457764 0
+17 15 9 0.825684 0.458008 0
+17 15 10 0.825684 0.458496 0
+17 15 11 0.825195 0.459229 0
+17 15 12 0.822754 0.459473 0.113342
+17 15 13 0.818359 0.459229 0.240845
+17 15 14 0.811035 0.45752 0.342773
+17 15 15 0.79834 0.452637 0.44751
+17 15 16 0.779297 0.45752 0.564453
+17 15 17 0.751953 0.469727 0.674316
+17 15 18 0.705078 0.466064 0.77002
+17 15 19 0.645996 0.460205 0.854004
+17 15 20 0.576172 0.452393 0.92334
+17 15 21 0.484863 0.434082 0.959473
+17 15 22 0.378906 0.410645 0.970215
+17 15 23 0.259521 0.391846 0.977539
+17 15 24 0 0.376953 0.983887
+17 15 25 0 0.36377 0.990723
+17 15 26 0 0.352539 0.998047
+17 15 27 0 0.342773 1
+17 15 28 0 0.334717 1
+17 15 29 0 0.328369 1
+17 15 30 0 0.32251 1
+17 15 31 0 0.317627 1
+17 16 0 0.80957 0.567383 0
+17 16 1 0.80957 0.567383 0
+17 16 2 0.80957 0.567383 0
+17 16 3 0.80957 0.567383 0
+17 16 4 0.80957 0.567383 0
+17 16 5 0.80957 0.567383 0
+17 16 6 0.80957 0.567383 0
+17 16 7 0.80957 0.567383 0
+17 16 8 0.80957 0.567383 0
+17 16 9 0.80957 0.567871 0
+17 16 10 0.80957 0.567871 0
+17 16 11 0.80957 0.568848 0
+17 16 12 0.806152 0.568848 0.12146
+17 16 13 0.799805 0.568359 0.25
+17 16 14 0.788086 0.566895 0.352295
+17 16 15 0.768555 0.562012 0.450928
+17 16 16 0.736816 0.550781 0.549805
+17 16 17 0.711914 0.558105 0.665527
+17 16 18 0.665039 0.55127 0.763184
+17 16 19 0.60498 0.541504 0.849121
+17 16 20 0.533203 0.529297 0.92041
+17 16 21 0.438721 0.505859 0.960449
+17 16 22 0.322754 0.476074 0.973633
+17 16 23 0.160767 0.45166 0.98291
+17 16 24 0 0.431885 0.990234
+17 16 25 0 0.414062 0.997559
+17 16 26 0 0.398193 1
+17 16 27 0 0.383789 1
+17 16 28 0 0.371094 1
+17 16 29 0 0.360352 1
+17 16 30 0 0.351074 1
+17 16 31 0 0.343018 1
+17 17 0 0.760742 0.675781 0
+17 17 1 0.760742 0.675781 0
+17 17 2 0.760742 0.675781 0
+17 17 3 0.760742 0.675781 0
+17 17 4 0.760742 0.675781 0
+17 17 5 0.760742 0.675781 0
+17 17 6 0.760742 0.675781 0
+17 17 7 0.760742 0.675781 0
+17 17 8 0.760742 0.675781 0
+17 17 9 0.760742 0.675781 0
+17 17 10 0.760742 0.67627 0
+17 17 11 0.760742 0.676758 0
+17 17 12 0.758301 0.677246 0
+17 17 13 0.752441 0.676758 0.216797
+17 17 14 0.742188 0.675781 0.336182
+17 17 15 0.724121 0.672363 0.445068
+17 17 16 0.694824 0.665039 0.55127
+17 17 17 0.650879 0.650879 0.650879
+17 17 18 0.603027 0.642578 0.751953
+17 17 19 0.540527 0.630371 0.84082
+17 17 20 0.462891 0.614258 0.914551
+17 17 21 0.357422 0.586914 0.959961
+17 17 22 0.202026 0.55127 0.976562
+17 17 23 0 0.520996 0.987305
+17 17 24 0 0.495605 0.995605
+17 17 25 0 0.472412 1
+17 17 26 0 0.451172 1
+17 17 27 0 0.431885 1
+17 17 28 0 0.415039 1
+17 17 29 0 0.399902 1
+17 17 30 0 0.386719 1
+17 17 31 0 0.375 1
+17 18 0 0.663574 0.763184 0
+17 18 1 0.663574 0.763184 0
+17 18 2 0.663574 0.763184 0
+17 18 3 0.663574 0.763184 0
+17 18 4 0.663574 0.763184 0
+17 18 5 0.663574 0.763184 0
+17 18 6 0.663574 0.763184 0
+17 18 7 0.663574 0.763184 0
+17 18 8 0.663574 0.763184 0
+17 18 9 0.663574 0.763184 0
+17 18 10 0.663574 0.763672 0
+17 18 11 0.663574 0.763672 0
+17 18 12 0.662109 0.76416 0
+17 18 13 0.65625 0.76416 0.129517
+17 18 14 0.645508 0.763184 0.291504
+17 18 15 0.62793 0.759766 0.410645
+17 18 16 0.599121 0.752441 0.522461
+17 18 17 0.559082 0.743164 0.630371
+17 18 18 0.507812 0.734863 0.734863
+17 18 19 0.436523 0.720703 0.827148
+17 18 20 0.339111 0.702637 0.904297
+17 18 21 0.164673 0.672363 0.955078
+17 18 22 0 0.632324 0.978027
+17 18 23 0 0.597168 0.992188
+17 18 24 0 0.566895 1
+17 18 25 0 0.538574 1
+17 18 26 0 0.511719 1
+17 18 27 0 0.487549 1
+17 18 28 0 0.46582 1
+17 18 29 0 0.446045 1
+17 18 30 0 0.428467 1
+17 18 31 0 0.412842 1
+17 19 0 0.529785 0.836914 0
+17 19 1 0.529785 0.836914 0
+17 19 2 0.529785 0.836914 0
+17 19 3 0.529785 0.836914 0
+17 19 4 0.529785 0.836914 0
+17 19 5 0.529785 0.836914 0
+17 19 6 0.529785 0.836914 0
+17 19 7 0.529785 0.836914 0
+17 19 8 0.529785 0.836914 0
+17 19 9 0.529785 0.836914 0
+17 19 10 0.529785 0.836914 0
+17 19 11 0.529785 0.837402 0
+17 19 12 0.529785 0.837891 0
+17 19 13 0.523438 0.837891 0
+17 19 14 0.511719 0.837891 0.229248
+17 19 15 0.49292 0.836914 0.367676
+17 19 16 0.462402 0.833496 0.488281
+17 19 17 0.416748 0.829102 0.603027
+17 19 18 0.346436 0.821289 0.711426
+17 19 19 0.225342 0.807617 0.807617
+17 19 20 0 0.788574 0.888672
+17 19 21 0 0.758789 0.947754
+17 19 22 0 0.71875 0.980957
+17 19 23 0 0.680176 1
+17 19 24 0 0.64502 1
+17 19 25 0 0.611328 1
+17 19 26 0 0.57959 1
+17 19 27 0 0.549805 1
+17 19 28 0 0.522461 1
+17 19 29 0 0.497559 1
+17 19 30 0 0.475342 1
+17 19 31 0 0.455322 1
+17 20 0 0.32959 0.902832 0
+17 20 1 0.32959 0.902832 0
+17 20 2 0.32959 0.902832 0
+17 20 3 0.32959 0.902832 0
+17 20 4 0.32959 0.902832 0
+17 20 5 0.32959 0.902832 0
+17 20 6 0.32959 0.902832 0
+17 20 7 0.32959 0.902832 0
+17 20 8 0.32959 0.902832 0
+17 20 9 0.32959 0.902832 0
+17 20 10 0.32959 0.902832 0
+17 20 11 0.329834 0.902832 0
+17 20 12 0.330078 0.90332 0
+17 20 13 0.322754 0.904297 0
+17 20 14 0.30249 0.905762 0.128418
+17 20 15 0.266846 0.906738 0.318115
+17 20 16 0.196533 0.906738 0.450195
+17 20 17 0 0.904785 0.570801
+17 20 18 0 0.898438 0.682617
+17 20 19 0 0.88623 0.782715
+17 20 20 0 0.867676 0.867676
+17 20 21 0 0.841309 0.936035
+17 20 22 0 0.805176 0.981445
+17 20 23 0 0.765137 1
+17 20 24 0 0.727051 1
+17 20 25 0 0.688965 1
+17 20 26 0 0.651367 1
+17 20 27 0 0.616211 1
+17 20 28 0 0.583008 1
+17 20 29 0 0.552734 1
+17 20 30 0 0.525391 1
+17 20 31 0 0.500977 1
+17 21 0 0 0.961914 0
+17 21 1 0 0.961914 0
+17 21 2 0 0.961914 0
+17 21 3 0 0.961914 0
+17 21 4 0 0.961914 0
+17 21 5 0 0.961914 0
+17 21 6 0 0.961914 0
+17 21 7 0 0.961914 0
+17 21 8 0 0.961914 0
+17 21 9 0 0.961914 0
+17 21 10 0 0.961914 0
+17 21 11 0 0.961914 0
+17 21 12 0 0.962402 0
+17 21 13 0 0.962891 0
+17 21 14 0 0.964844 0
+17 21 15 0 0.967285 0.256348
+17 21 16 0 0.969238 0.40625
+17 21 17 0 0.969727 0.532715
+17 21 18 0 0.96582 0.648438
+17 21 19 0 0.955566 0.752441
+17 21 20 0 0.938965 0.841309
+17 21 21 0 0.916504 0.916992
+17 21 22 0 0.88623 0.974609
+17 21 23 0 0.849121 1
+17 21 24 0 0.810547 1
+17 21 25 0 0.769043 1
+17 21 26 0 0.727051 1
+17 21 27 0 0.686523 1
+17 21 28 0 0.647949 1
+17 21 29 0 0.612305 1
+17 21 30 0 0.57959 1
+17 21 31 0 0.549316 1
+17 22 0 0 1 0
+17 22 1 0 1 0
+17 22 2 0 1 0
+17 22 3 0 1 0
+17 22 4 0 1 0
+17 22 5 0 1 0
+17 22 6 0 1 0
+17 22 7 0 1 0
+17 22 8 0 1 0
+17 22 9 0 1 0
+17 22 10 0 1 0
+17 22 11 0 1 0
+17 22 12 0 1 0
+17 22 13 0 1 0
+17 22 14 0 1 0
+17 22 15 0 1 0.167969
+17 22 16 0 1 0.356445
+17 22 17 0 1 0.491211
+17 22 18 0 1 0.61084
+17 22 19 0 1 0.717285
+17 22 20 0 1 0.810059
+17 22 21 0 0.980957 0.890137
+17 22 22 0 0.955566 0.955566
+17 22 23 0 0.924316 1
+17 22 24 0 0.888184 1
+17 22 25 0 0.84668 1
+17 22 26 0 0.802734 1
+17 22 27 0 0.757812 1
+17 22 28 0 0.714844 1
+17 22 29 0 0.673828 1
+17 22 30 0 0.635254 1
+17 22 31 0 0.600586 1
+17 23 0 0 1 0
+17 23 1 0 1 0
+17 23 2 0 1 0
+17 23 3 0 1 0
+17 23 4 0 1 0
+17 23 5 0 1 0
+17 23 6 0 1 0
+17 23 7 0 1 0
+17 23 8 0 1 0
+17 23 9 0 1 0
+17 23 10 0 1 0
+17 23 11 0 1 0
+17 23 12 0 1 0
+17 23 13 0 1 0
+17 23 14 0 1 0
+17 23 15 0 1 0
+17 23 16 0 1 0.30127
+17 23 17 0 1 0.447998
+17 23 18 0 1 0.571289
+17 23 19 0 1 0.681152
+17 23 20 0 1 0.776367
+17 23 21 0 1 0.859863
+17 23 22 0 1 0.929688
+17 23 23 0 0.984863 0.985352
+17 23 24 0 0.954102 1
+17 23 25 0 0.916016 1
+17 23 26 0 0.87207 1
+17 23 27 0 0.825684 1
+17 23 28 0 0.778809 1
+17 23 29 0 0.733887 1
+17 23 30 0 0.690918 1
+17 23 31 0 0.650879 1
+17 24 0 0 1 0
+17 24 1 0 1 0
+17 24 2 0 1 0
+17 24 3 0 1 0
+17 24 4 0 1 0
+17 24 5 0 1 0
+17 24 6 0 1 0
+17 24 7 0 1 0
+17 24 8 0 1 0
+17 24 9 0 1 0
+17 24 10 0 1 0
+17 24 11 0 1 0
+17 24 12 0 1 0
+17 24 13 0 1 0
+17 24 14 0 1 0
+17 24 15 0 1 0
+17 24 16 0 1 0.236694
+17 24 17 0 1 0.402832
+17 24 18 0 1 0.53125
+17 24 19 0 1 0.643066
+17 24 20 0 1 0.741211
+17 24 21 0 1 0.827148
+17 24 22 0 1 0.900391
+17 24 23 0 1 0.960449
+17 24 24 0 1 1
+17 24 25 0 0.974609 1
+17 24 26 0 0.933594 1
+17 24 27 0 0.887695 1
+17 24 28 0 0.839844 1
+17 24 29 0 0.791504 1
+17 24 30 0 0.744629 1
+17 24 31 0 0.700684 1
+17 25 0 0 1 0
+17 25 1 0 1 0
+17 25 2 0 1 0
+17 25 3 0 1 0
+17 25 4 0 1 0
+17 25 5 0 1 0
+17 25 6 0 1 0
+17 25 7 0 1 0
+17 25 8 0 1 0
+17 25 9 0 1 0
+17 25 10 0 1 0
+17 25 11 0 1 0
+17 25 12 0 1 0
+17 25 13 0 1 0
+17 25 14 0 1 0
+17 25 15 0 1 0
+17 25 16 0 1 0.131592
+17 25 17 0 1 0.350586
+17 25 18 0 1 0.486328
+17 25 19 0 1 0.601074
+17 25 20 0 1 0.701172
+17 25 21 0 1 0.789551
+17 25 22 0 1 0.866211
+17 25 23 0 1 0.929688
+17 25 24 0 1 0.981934
+17 25 25 0 1 1
+17 25 26 0 0.992188 1
+17 25 27 0 0.94873 1
+17 25 28 0 0.900879 1
+17 25 29 0 0.851074 1
+17 25 30 0 0.801758 1
+17 25 31 0 0.753906 1
+17 26 0 0 1 0
+17 26 1 0 1 0
+17 26 2 0 1 0
+17 26 3 0 1 0
+17 26 4 0 1 0
+17 26 5 0 1 0
+17 26 6 0 1 0
+17 26 7 0 1 0
+17 26 8 0 1 0
+17 26 9 0 1 0
+17 26 10 0 1 0
+17 26 11 0 1 0
+17 26 12 0 1 0
+17 26 13 0 1 0
+17 26 14 0 1 0
+17 26 15 0 1 0
+17 26 16 0 1 0
+17 26 17 0 1 0.287354
+17 26 18 0 1 0.436035
+17 26 19 0 1 0.554688
+17 26 20 0 1 0.65625
+17 26 21 0 1 0.74707
+17 26 22 0 1 0.82666
+17 26 23 0 1 0.893555
+17 26 24 0 1 0.949219
+17 26 25 0 1 1
+17 26 26 0 1 1
+17 26 27 0 1 1
+17 26 28 0 0.960449 1
+17 26 29 0 0.910645 1
+17 26 30 0 0.859863 1
+17 26 31 0 0.80957 1
+17 27 0 0 1 0
+17 27 1 0 1 0
+17 27 2 0 1 0
+17 27 3 0 1 0
+17 27 4 0 1 0
+17 27 5 0 1 0
+17 27 6 0 1 0
+17 27 7 0 1 0
+17 27 8 0 1 0
+17 27 9 0 1 0
+17 27 10 0 1 0
+17 27 11 0 1 0
+17 27 12 0 1 0
+17 27 13 0 1 0
+17 27 14 0 1 0
+17 27 15 0 1 0
+17 27 16 0 1 0
+17 27 17 0 1 0.20166
+17 27 18 0 1 0.379395
+17 27 19 0 1 0.503418
+17 27 20 0 1 0.607422
+17 27 21 0 1 0.700195
+17 27 22 0 1 0.781738
+17 27 23 0 1 0.851562
+17 27 24 0 1 0.910645
+17 27 25 0 1 0.965332
+17 27 26 0 1 1
+17 27 27 0 1 1
+17 27 28 0 1 1
+17 27 29 0 0.96875 1
+17 27 30 0 0.91748 1
+17 27 31 0 0.865723 1
+17 28 0 0 1 0
+17 28 1 0 1 0
+17 28 2 0 1 0
+17 28 3 0 1 0
+17 28 4 0 1 0
+17 28 5 0 1 0
+17 28 6 0 1 0
+17 28 7 0 1 0
+17 28 8 0 1 0
+17 28 9 0 1 0
+17 28 10 0 1 0
+17 28 11 0 1 0
+17 28 12 0 1 0
+17 28 13 0 1 0
+17 28 14 0 1 0
+17 28 15 0 1 0
+17 28 16 0 1 0
+17 28 17 0 1 0
+17 28 18 0 1 0.313477
+17 28 19 0 1 0.44751
+17 28 20 0 1 0.554688
+17 28 21 0 1 0.648926
+17 28 22 0 1 0.731934
+17 28 23 0 1 0.803711
+17 28 24 0 1 0.865723
+17 28 25 0 1 0.924316
+17 28 26 0 1 0.978516
+17 28 27 0 1 1
+17 28 28 0 1 1
+17 28 29 0 1 1
+17 28 30 0 0.974121 1
+17 28 31 0 0.922363 1
+17 29 0 0 1 0
+17 29 1 0 1 0
+17 29 2 0 1 0
+17 29 3 0 1 0
+17 29 4 0 1 0
+17 29 5 0 1 0
+17 29 6 0 1 0
+17 29 7 0 1 0
+17 29 8 0 1 0
+17 29 9 0 1 0
+17 29 10 0 1 0
+17 29 11 0 1 0
+17 29 12 0 1 0
+17 29 13 0 1 0
+17 29 14 0 1 0
+17 29 15 0 1 0
+17 29 16 0 1 0
+17 29 17 0 1 0
+17 29 18 0 1 0.22876
+17 29 19 0 1 0.385254
+17 29 20 0 1 0.497314
+17 29 21 0 1 0.593262
+17 29 22 0 1 0.677734
+17 29 23 0 1 0.750977
+17 29 24 0 1 0.814941
+17 29 25 0 1 0.876465
+17 29 26 0 1 0.934082
+17 29 27 0 1 0.987305
+17 29 28 0 1 1
+17 29 29 0 1 1
+17 29 30 0 1 1
+17 29 31 0 0.978516 1
+17 30 0 0 1 0
+17 30 1 0 1 0
+17 30 2 0 1 0
+17 30 3 0 1 0
+17 30 4 0 1 0
+17 30 5 0 1 0
+17 30 6 0 1 0
+17 30 7 0 1 0
+17 30 8 0 1 0
+17 30 9 0 1 0
+17 30 10 0 1 0
+17 30 11 0 1 0
+17 30 12 0 1 0
+17 30 13 0 1 0
+17 30 14 0 1 0
+17 30 15 0 1 0
+17 30 16 0 1 0
+17 30 17 0 1 0
+17 30 18 0 1 0.0190887
+17 30 19 0 1 0.313965
+17 30 20 0 1 0.435059
+17 30 21 0 1 0.533691
+17 30 22 0 1 0.619629
+17 30 23 0 1 0.693359
+17 30 24 0 1 0.758789
+17 30 25 0 1 0.822266
+17 30 26 0 1 0.883301
+17 30 27 0 1 0.940918
+17 30 28 0 1 0.993164
+17 30 29 0 1 1
+17 30 30 0 1 1
+17 30 31 0 1 1
+17 31 0 0 1 0
+17 31 1 0 1 0
+17 31 2 0 1 0
+17 31 3 0 1 0
+17 31 4 0 1 0
+17 31 5 0 1 0
+17 31 6 0 1 0
+17 31 7 0 1 0
+17 31 8 0 1 0
+17 31 9 0 1 0
+17 31 10 0 1 0
+17 31 11 0 1 0
+17 31 12 0 1 0
+17 31 13 0 1 0
+17 31 14 0 1 0
+17 31 15 0 1 0
+17 31 16 0 1 0
+17 31 17 0 1 0
+17 31 18 0 1 0
+17 31 19 0 1 0.223267
+17 31 20 0 1 0.366455
+17 31 21 0 1 0.469971
+17 31 22 0 1 0.557129
+17 31 23 0 1 0.632324
+17 31 24 0 1 0.698242
+17 31 25 0 1 0.763672
+17 31 26 0 1 0.827148
+17 31 27 0 1 0.888184
+17 31 28 0 1 0.945801
+17 31 29 0 1 0.998047
+17 31 30 0 1 1
+17 31 31 0 1 1
+18 0 0 0.887695 0 0
+18 0 1 0.887695 0 0
+18 0 2 0.887695 0 0
+18 0 3 0.887695 0 0
+18 0 4 0.887695 0 0
+18 0 5 0.887695 0 0
+18 0 6 0.887695 0 0
+18 0 7 0.887695 0 0
+18 0 8 0.887695 0 0
+18 0 9 0.887695 0 0
+18 0 10 0.888184 0 0
+18 0 11 0.88916 0 0
+18 0 12 0.894043 0 0
+18 0 13 0.90332 0 0.164917
+18 0 14 0.916504 0 0.299561
+18 0 15 0.930176 0 0.421143
+18 0 16 0.945801 0 0.550293
+18 0 17 0.943359 0.106079 0.668945
+18 0 18 0.907715 0.161743 0.766602
+18 0 19 0.85791 0.190918 0.851074
+18 0 20 0.79834 0.213867 0.921387
+18 0 21 0.720703 0.228638 0.963379
+18 0 22 0.633301 0.236572 0.981445
+18 0 23 0.550293 0.241089 0.990234
+18 0 24 0.471436 0.244263 0.995605
+18 0 25 0.384521 0.246704 1
+18 0 26 0.277588 0.249146 1
+18 0 27 0 0.251709 1
+18 0 28 0 0.254395 1
+18 0 29 0 0.257324 1
+18 0 30 0 0.260498 1
+18 0 31 0 0.26416 1
+18 1 0 0.887695 0 0
+18 1 1 0.887695 0 0
+18 1 2 0.887695 0 0
+18 1 3 0.887695 0 0
+18 1 4 0.887695 0 0
+18 1 5 0.887695 0 0
+18 1 6 0.887695 0 0
+18 1 7 0.887695 0 0
+18 1 8 0.887695 0 0
+18 1 9 0.887695 0 0
+18 1 10 0.888184 0 0
+18 1 11 0.88916 0 0
+18 1 12 0.894043 0 0
+18 1 13 0.90332 0 0.164917
+18 1 14 0.916504 0 0.299561
+18 1 15 0.930176 0 0.421143
+18 1 16 0.945801 0 0.550293
+18 1 17 0.943359 0.106201 0.668945
+18 1 18 0.907715 0.161865 0.766602
+18 1 19 0.85791 0.190918 0.851074
+18 1 20 0.79834 0.213989 0.921387
+18 1 21 0.720703 0.22876 0.963379
+18 1 22 0.633301 0.236572 0.981445
+18 1 23 0.550293 0.241211 0.990234
+18 1 24 0.471436 0.244263 0.995605
+18 1 25 0.384521 0.246826 1
+18 1 26 0.277588 0.249146 1
+18 1 27 0 0.251709 1
+18 1 28 0 0.254395 1
+18 1 29 0 0.257324 1
+18 1 30 0 0.260742 1
+18 1 31 0 0.26416 1
+18 2 0 0.887695 0 0
+18 2 1 0.887695 0 0
+18 2 2 0.887695 0 0
+18 2 3 0.887695 0 0
+18 2 4 0.887695 0 0
+18 2 5 0.887695 0 0
+18 2 6 0.887695 0 0
+18 2 7 0.887695 0 0
+18 2 8 0.887695 0 0
+18 2 9 0.887695 0 0
+18 2 10 0.888184 0 0
+18 2 11 0.88916 0 0
+18 2 12 0.894043 0 0
+18 2 13 0.90332 0 0.164917
+18 2 14 0.916504 0 0.299561
+18 2 15 0.930176 0 0.421143
+18 2 16 0.945801 0 0.550293
+18 2 17 0.943359 0.106506 0.668945
+18 2 18 0.907715 0.161987 0.766602
+18 2 19 0.85791 0.19104 0.851074
+18 2 20 0.79834 0.213989 0.921387
+18 2 21 0.720703 0.22876 0.963379
+18 2 22 0.633301 0.236572 0.981445
+18 2 23 0.550293 0.241211 0.990234
+18 2 24 0.471436 0.244263 0.995605
+18 2 25 0.384521 0.246826 1
+18 2 26 0.277588 0.249146 1
+18 2 27 0 0.251709 1
+18 2 28 0 0.254395 1
+18 2 29 0 0.257324 1
+18 2 30 0 0.260742 1
+18 2 31 0 0.26416 1
+18 3 0 0.887695 0 0
+18 3 1 0.887695 0 0
+18 3 2 0.887695 0 0
+18 3 3 0.887695 0 0
+18 3 4 0.887695 0 0
+18 3 5 0.887695 0 0
+18 3 6 0.887695 0 0
+18 3 7 0.887695 0 0
+18 3 8 0.887695 0 0
+18 3 9 0.887695 0 0
+18 3 10 0.888184 0 0
+18 3 11 0.88916 0 0
+18 3 12 0.894043 0 0
+18 3 13 0.90332 0 0.164917
+18 3 14 0.916504 0 0.299561
+18 3 15 0.930176 0 0.421143
+18 3 16 0.945801 0 0.550293
+18 3 17 0.943359 0.106934 0.668945
+18 3 18 0.907715 0.162231 0.766602
+18 3 19 0.85791 0.191162 0.851074
+18 3 20 0.79834 0.214233 0.921387
+18 3 21 0.720703 0.228882 0.963379
+18 3 22 0.633301 0.236694 0.981445
+18 3 23 0.550293 0.241333 0.990234
+18 3 24 0.471436 0.244385 0.995605
+18 3 25 0.384521 0.246826 1
+18 3 26 0.277588 0.249268 1
+18 3 27 0 0.251709 1
+18 3 28 0 0.254395 1
+18 3 29 0 0.257324 1
+18 3 30 0 0.260742 1
+18 3 31 0 0.26416 1
+18 4 0 0.887695 0 0
+18 4 1 0.887695 0 0
+18 4 2 0.887695 0 0
+18 4 3 0.887695 0 0
+18 4 4 0.887695 0 0
+18 4 5 0.887695 0 0
+18 4 6 0.887695 0 0
+18 4 7 0.887695 0 0
+18 4 8 0.887695 0 0
+18 4 9 0.887695 0 0
+18 4 10 0.888184 0 0
+18 4 11 0.88916 0 0
+18 4 12 0.894043 0 0
+18 4 13 0.90332 0 0.164795
+18 4 14 0.916504 0 0.299561
+18 4 15 0.930176 0 0.421143
+18 4 16 0.945801 0 0.550293
+18 4 17 0.943359 0.107849 0.668945
+18 4 18 0.907715 0.16272 0.766602
+18 4 19 0.857422 0.191528 0.851074
+18 4 20 0.79834 0.214478 0.921387
+18 4 21 0.720215 0.229126 0.963379
+18 4 22 0.633301 0.236816 0.981445
+18 4 23 0.550293 0.241455 0.990234
+18 4 24 0.471436 0.244507 0.995605
+18 4 25 0.384521 0.246948 1
+18 4 26 0.277344 0.24939 1
+18 4 27 0 0.251709 1
+18 4 28 0 0.254395 1
+18 4 29 0 0.257568 1
+18 4 30 0 0.260742 1
+18 4 31 0 0.26416 1
+18 5 0 0.887695 0 0
+18 5 1 0.887695 0 0
+18 5 2 0.887695 0 0
+18 5 3 0.887695 0 0
+18 5 4 0.887695 0 0
+18 5 5 0.887695 0 0
+18 5 6 0.887695 0 0
+18 5 7 0.887695 0 0
+18 5 8 0.887695 0 0
+18 5 9 0.888184 0 0
+18 5 10 0.888184 0 0
+18 5 11 0.88916 0 0
+18 5 12 0.894043 0 0
+18 5 13 0.90332 0 0.164795
+18 5 14 0.916504 0 0.299561
+18 5 15 0.930176 0 0.421143
+18 5 16 0.945801 0 0.550293
+18 5 17 0.943359 0.109497 0.668945
+18 5 18 0.907715 0.163696 0.766602
+18 5 19 0.857422 0.192261 0.851074
+18 5 20 0.79834 0.214966 0.921387
+18 5 21 0.720215 0.229614 0.963379
+18 5 22 0.633301 0.237183 0.981445
+18 5 23 0.550293 0.241699 0.990234
+18 5 24 0.471436 0.244751 0.995605
+18 5 25 0.384521 0.247192 1
+18 5 26 0.277344 0.249512 1
+18 5 27 0 0.251953 1
+18 5 28 0 0.254639 1
+18 5 29 0 0.257568 1
+18 5 30 0 0.260742 1
+18 5 31 0 0.26416 1
+18 6 0 0.887695 0 0
+18 6 1 0.887695 0 0
+18 6 2 0.887695 0 0
+18 6 3 0.887695 0 0
+18 6 4 0.887695 0 0
+18 6 5 0.887695 0 0
+18 6 6 0.887695 0 0
+18 6 7 0.887695 0 0
+18 6 8 0.888184 0 0
+18 6 9 0.888184 0 0
+18 6 10 0.888184 0 0
+18 6 11 0.88916 0 0
+18 6 12 0.894043 0 0
+18 6 13 0.90332 0 0.164551
+18 6 14 0.916504 0 0.299561
+18 6 15 0.930176 0 0.421143
+18 6 16 0.945801 0 0.550293
+18 6 17 0.943359 0.11261 0.668945
+18 6 18 0.907715 0.165405 0.766602
+18 6 19 0.857422 0.193604 0.851074
+18 6 20 0.79834 0.216064 0.921387
+18 6 21 0.720215 0.230347 0.963379
+18 6 22 0.633301 0.237915 0.981445
+18 6 23 0.550293 0.24231 0.990234
+18 6 24 0.471191 0.245117 0.995605
+18 6 25 0.384277 0.247559 1
+18 6 26 0.2771 0.249878 1
+18 6 27 0 0.252197 1
+18 6 28 0 0.254883 1
+18 6 29 0 0.257812 1
+18 6 30 0 0.260986 1
+18 6 31 0 0.264404 1
+18 7 0 0.888184 0 0
+18 7 1 0.888184 0 0
+18 7 2 0.888184 0 0
+18 7 3 0.888184 0 0
+18 7 4 0.888184 0 0
+18 7 5 0.888184 0 0
+18 7 6 0.888184 0 0
+18 7 7 0.888184 0 0
+18 7 8 0.888184 0 0
+18 7 9 0.888184 0 0
+18 7 10 0.888184 0 0
+18 7 11 0.88916 0 0
+18 7 12 0.894043 0 0
+18 7 13 0.90332 0 0.164185
+18 7 14 0.916504 0 0.299561
+18 7 15 0.929688 0 0.420898
+18 7 16 0.945312 0 0.550293
+18 7 17 0.942871 0.118347 0.668945
+18 7 18 0.907227 0.168701 0.766602
+18 7 19 0.857422 0.196045 0.851074
+18 7 20 0.79834 0.218018 0.921387
+18 7 21 0.720215 0.231934 0.963379
+18 7 22 0.632812 0.239136 0.981445
+18 7 23 0.550293 0.243286 0.990234
+18 7 24 0.470947 0.246094 0.995605
+18 7 25 0.384033 0.248291 1
+18 7 26 0.276855 0.250488 1
+18 7 27 0 0.252686 1
+18 7 28 0 0.255371 1
+18 7 29 0 0.258057 1
+18 7 30 0 0.26123 1
+18 7 31 0 0.264648 1
+18 8 0 0.888184 0 0
+18 8 1 0.888184 0 0
+18 8 2 0.888184 0 0
+18 8 3 0.888184 0 0
+18 8 4 0.888184 0 0
+18 8 5 0.888184 0 0
+18 8 6 0.888672 0 0
+18 8 7 0.888672 0 0
+18 8 8 0.888672 0 0
+18 8 9 0.888672 0 0
+18 8 10 0.888672 0 0
+18 8 11 0.889648 0 0
+18 8 12 0.894531 0 0
+18 8 13 0.90332 0 0.163574
+18 8 14 0.916504 0 0.299316
+18 8 15 0.929688 0 0.420654
+18 8 16 0.944824 0 0.549805
+18 8 17 0.942383 0.12854 0.668945
+18 8 18 0.907227 0.175049 0.766113
+18 8 19 0.856934 0.200806 0.851074
+18 8 20 0.797852 0.221802 0.921387
+18 8 21 0.719727 0.234985 0.963379
+18 8 22 0.632812 0.241577 0.981445
+18 8 23 0.549805 0.245361 0.990234
+18 8 24 0.470459 0.247803 0.995605
+18 8 25 0.383545 0.249756 1
+18 8 26 0.276123 0.251709 1
+18 8 27 0 0.253662 1
+18 8 28 0 0.256104 1
+18 8 29 0 0.259033 1
+18 8 30 0 0.261963 1
+18 8 31 0 0.265137 1
+18 9 0 0.88916 0 0
+18 9 1 0.88916 0 0
+18 9 2 0.88916 0 0
+18 9 3 0.88916 0 0
+18 9 4 0.88916 0 0
+18 9 5 0.88916 0 0
+18 9 6 0.88916 0 0
+18 9 7 0.88916 0 0
+18 9 8 0.88916 0 0
+18 9 9 0.88916 0 0
+18 9 10 0.889648 0 0
+18 9 11 0.890137 0 0
+18 9 12 0.89502 0 0
+18 9 13 0.90332 0 0.162354
+18 9 14 0.916504 0 0.299072
+18 9 15 0.929199 0 0.420166
+18 9 16 0.943848 0 0.549316
+18 9 17 0.941895 0.145386 0.668945
+18 9 18 0.90625 0.186157 0.766113
+18 9 19 0.855957 0.209595 0.851074
+18 9 20 0.796875 0.228882 0.921387
+18 9 21 0.719238 0.240723 0.963379
+18 9 22 0.631836 0.246216 0.981445
+18 9 23 0.548828 0.249146 0.990234
+18 9 24 0.469727 0.250977 0.995605
+18 9 25 0.382568 0.252441 1
+18 9 26 0.274902 0.25415 1
+18 9 27 0 0.255859 1
+18 9 28 0 0.257812 1
+18 9 29 0 0.260498 1
+18 9 30 0 0.263184 1
+18 9 31 0 0.266357 1
+18 10 0 0.890137 0 0
+18 10 1 0.890137 0 0
+18 10 2 0.890137 0 0
+18 10 3 0.890137 0 0
+18 10 4 0.890137 0 0
+18 10 5 0.890137 0 0
+18 10 6 0.890137 0 0
+18 10 7 0.890137 0 0
+18 10 8 0.890137 0 0
+18 10 9 0.890625 0 0
+18 10 10 0.890625 0 0
+18 10 11 0.891602 0 0
+18 10 12 0.895508 0 0
+18 10 13 0.903809 0 0.160278
+18 10 14 0.916504 0 0.298584
+18 10 15 0.928223 0 0.419189
+18 10 16 0.942383 0 0.548828
+18 10 17 0.94043 0.170532 0.668457
+18 10 18 0.904785 0.204346 0.766113
+18 10 19 0.85498 0.224243 0.850586
+18 10 20 0.795898 0.240967 0.920898
+18 10 21 0.717773 0.250488 0.963379
+18 10 22 0.630371 0.254395 0.981445
+18 10 23 0.547363 0.255859 0.990723
+18 10 24 0.468262 0.256836 0.995605
+18 10 25 0.380859 0.257324 1
+18 10 26 0.272461 0.258301 1
+18 10 27 0 0.259277 1
+18 10 28 0 0.260986 1
+18 10 29 0 0.262939 1
+18 10 30 0 0.265381 1
+18 10 31 0 0.268311 1
+18 11 0 0.892578 0 0
+18 11 1 0.892578 0 0
+18 11 2 0.892578 0 0
+18 11 3 0.892578 0 0
+18 11 4 0.892578 0 0
+18 11 5 0.892578 0 0
+18 11 6 0.892578 0 0
+18 11 7 0.892578 0 0
+18 11 8 0.892578 0 0
+18 11 9 0.892578 0 0
+18 11 10 0.892578 0 0
+18 11 11 0.893555 0 0
+18 11 12 0.896973 0 0
+18 11 13 0.904297 0 0.156982
+18 11 14 0.916016 0 0.296387
+18 11 15 0.92627 0 0.41748
+18 11 16 0.939453 0 0.547363
+18 11 17 0.937988 0.205078 0.667969
+18 11 18 0.902344 0.231812 0.765625
+18 11 19 0.852539 0.247192 0.850586
+18 11 20 0.793457 0.260254 0.920898
+18 11 21 0.715332 0.266846 0.963379
+18 11 22 0.62793 0.267822 0.981445
+18 11 23 0.544922 0.267334 0.990723
+18 11 24 0.465576 0.266357 0.996094
+18 11 25 0.377686 0.265869 1
+18 11 26 0.268066 0.265381 1
+18 11 27 0 0.265381 1
+18 11 28 0 0.266357 1
+18 11 29 0 0.267578 1
+18 11 30 0 0.269531 1
+18 11 31 0 0.271729 1
+18 12 0 0.895996 0 0
+18 12 1 0.895996 0 0
+18 12 2 0.895996 0 0
+18 12 3 0.895996 0 0
+18 12 4 0.895996 0 0
+18 12 5 0.895996 0 0
+18 12 6 0.895996 0 0
+18 12 7 0.895996 0 0
+18 12 8 0.895996 0 0
+18 12 9 0.895996 0 0
+18 12 10 0.895996 0 0
+18 12 11 0.896484 0 0
+18 12 12 0.899414 0 0
+18 12 13 0.904785 0 0.152588
+18 12 14 0.914062 0 0.292725
+18 12 15 0.92334 0 0.414795
+18 12 16 0.93457 0.157959 0.544434
+18 12 17 0.933594 0.25 0.666504
+18 12 18 0.898438 0.270264 0.765137
+18 12 19 0.848145 0.280762 0.850098
+18 12 20 0.789062 0.289307 0.920898
+18 12 21 0.711426 0.291504 0.963379
+18 12 22 0.624023 0.288818 0.981934
+18 12 23 0.540527 0.285156 0.990723
+18 12 24 0.460938 0.281982 0.996094
+18 12 25 0.372314 0.279297 1
+18 12 26 0.260254 0.2771 1
+18 12 27 0 0.275635 1
+18 12 28 0 0.274902 1
+18 12 29 0 0.275146 1
+18 12 30 0 0.275879 1
+18 12 31 0 0.277344 1
+18 13 0 0.901367 0.202026 0
+18 13 1 0.901367 0.202026 0
+18 13 2 0.901367 0.202026 0
+18 13 3 0.901367 0.202026 0
+18 13 4 0.901367 0.202026 0
+18 13 5 0.901367 0.202148 0
+18 13 6 0.901367 0.202271 0
+18 13 7 0.901367 0.202393 0
+18 13 8 0.901367 0.202881 0
+18 13 9 0.901367 0.203735 0
+18 13 10 0.901367 0.2052 0
+18 13 11 0.901855 0.207642 0
+18 13 12 0.90332 0.206421 0
+18 13 13 0.906738 0.200928 0.148926
+18 13 14 0.912109 0.19519 0.28833
+18 13 15 0.918945 0.198486 0.411133
+18 13 16 0.92627 0.241089 0.540039
+18 13 17 0.925781 0.30542 0.664551
+18 13 18 0.891602 0.320312 0.763672
+18 13 19 0.841309 0.325928 0.849121
+18 13 20 0.782227 0.329834 0.92041
+18 13 21 0.70459 0.326904 0.963867
+18 13 22 0.617188 0.319092 0.981934
+18 13 23 0.533203 0.311768 0.991211
+18 13 24 0.452881 0.305176 0.996582
+18 13 25 0.363037 0.299561 1
+18 13 26 0.246704 0.294922 1
+18 13 27 0 0.29126 1
+18 13 28 0 0.288574 1
+18 13 29 0 0.287109 1
+18 13 30 0 0.286377 1
+18 13 31 0 0.286377 1
+18 14 0 0.908203 0.311523 0
+18 14 1 0.908203 0.311523 0
+18 14 2 0.908203 0.311523 0
+18 14 3 0.908203 0.311523 0
+18 14 4 0.908203 0.311523 0
+18 14 5 0.908203 0.311768 0
+18 14 6 0.908691 0.311768 0
+18 14 7 0.908691 0.311768 0
+18 14 8 0.908691 0.312012 0
+18 14 9 0.908691 0.3125 0
+18 14 10 0.908691 0.313477 0
+18 14 11 0.90918 0.314941 0
+18 14 12 0.90918 0.313965 0
+18 14 13 0.90918 0.311523 0.151978
+18 14 14 0.909668 0.307617 0.285889
+18 14 15 0.911621 0.307129 0.40625
+18 14 16 0.912598 0.323486 0.532227
+18 14 17 0.913086 0.371582 0.660156
+18 14 18 0.879883 0.382812 0.761719
+18 14 19 0.830078 0.383545 0.847656
+18 14 20 0.770996 0.382568 0.919434
+18 14 21 0.693848 0.374512 0.963867
+18 14 22 0.605469 0.36084 0.982422
+18 14 23 0.521484 0.348389 0.991699
+18 14 24 0.440186 0.337891 0.997559
+18 14 25 0.347656 0.328613 1
+18 14 26 0.222656 0.320801 1
+18 14 27 0 0.313965 1
+18 14 28 0 0.308838 1
+18 14 29 0 0.304932 1
+18 14 30 0 0.302002 1
+18 14 31 0 0.300049 1
+18 15 0 0.916016 0.418457 0
+18 15 1 0.916016 0.418457 0
+18 15 2 0.916016 0.418457 0
+18 15 3 0.916016 0.418457 0
+18 15 4 0.916016 0.418457 0
+18 15 5 0.916016 0.418457 0
+18 15 6 0.916016 0.418457 0
+18 15 7 0.916016 0.418457 0
+18 15 8 0.916016 0.418701 0
+18 15 9 0.916016 0.418945 0
+18 15 10 0.916016 0.419678 0
+18 15 11 0.916016 0.420654 0
+18 15 12 0.915039 0.420654 0
+18 15 13 0.912109 0.419434 0.169312
+18 15 14 0.907227 0.416992 0.291748
+18 15 15 0.899414 0.412354 0.401611
+18 15 16 0.891602 0.413818 0.521484
+18 15 17 0.89209 0.447021 0.652832
+18 15 18 0.861328 0.456787 0.757812
+18 15 19 0.812012 0.453613 0.845215
+18 15 20 0.75293 0.447754 0.917969
+18 15 21 0.675781 0.434082 0.963867
+18 15 22 0.587402 0.414062 0.982422
+18 15 23 0.502441 0.39624 0.992676
+18 15 24 0.419189 0.381104 0.999023
+18 15 25 0.321777 0.367676 1
+18 15 26 0.175903 0.355713 1
+18 15 27 0 0.345459 1
+18 15 28 0 0.336914 1
+18 15 29 0 0.329834 1
+18 15 30 0 0.324219 1
+18 15 31 0 0.31958 1
+18 16 0 0.91748 0.53125 0
+18 16 1 0.91748 0.53125 0
+18 16 2 0.91748 0.53125 0
+18 16 3 0.91748 0.53125 0
+18 16 4 0.91748 0.53125 0
+18 16 5 0.91748 0.53125 0
+18 16 6 0.91748 0.53125 0
+18 16 7 0.91748 0.53125 0
+18 16 8 0.91748 0.53125 0
+18 16 9 0.91748 0.531738 0
+18 16 10 0.91748 0.532227 0
+18 16 11 0.917969 0.532715 0
+18 16 12 0.916504 0.533203 0
+18 16 13 0.911621 0.533203 0.193481
+18 16 14 0.90332 0.531738 0.307373
+18 16 15 0.88916 0.527344 0.409912
+18 16 16 0.866211 0.518066 0.513672
+18 16 17 0.85498 0.528809 0.637695
+18 16 18 0.832031 0.541504 0.750977
+18 16 19 0.783203 0.534668 0.840332
+18 16 20 0.724121 0.524414 0.914551
+18 16 21 0.647461 0.505371 0.962402
+18 16 22 0.558594 0.47876 0.981934
+18 16 23 0.471924 0.455322 0.993652
+18 16 24 0.384766 0.435547 1
+18 16 25 0.276611 0.41748 1
+18 16 26 0 0.401123 1
+18 16 27 0 0.386719 1
+18 16 28 0 0.374023 1
+18 16 29 0 0.363281 1
+18 16 30 0 0.354004 1
+18 16 31 0 0.346191 1
+18 17 0 0.899902 0.645996 0
+18 17 1 0.899902 0.645996 0
+18 17 2 0.899902 0.645996 0
+18 17 3 0.899902 0.645996 0
+18 17 4 0.899902 0.645996 0
+18 17 5 0.899902 0.645996 0
+18 17 6 0.899902 0.645996 0
+18 17 7 0.899902 0.645996 0
+18 17 8 0.899902 0.645996 0
+18 17 9 0.899902 0.646484 0
+18 17 10 0.899902 0.646484 0
+18 17 11 0.899902 0.646973 0
+18 17 12 0.899414 0.647949 0
+18 17 13 0.89502 0.647949 0.189819
+18 17 14 0.887207 0.647461 0.312744
+18 17 15 0.873047 0.645508 0.420654
+18 17 16 0.848145 0.638184 0.524902
+18 17 17 0.807617 0.62207 0.621094
+18 17 18 0.788086 0.632324 0.740234
+18 17 19 0.739258 0.622559 0.831543
+18 17 20 0.680176 0.609375 0.908203
+18 17 21 0.604004 0.585449 0.958984
+18 17 22 0.513672 0.552734 0.981445
+18 17 23 0.423584 0.524414 0.995605
+18 17 24 0.327148 0.499756 1
+18 17 25 0.18396 0.477051 1
+18 17 26 0 0.456055 1
+18 17 27 0 0.437012 1
+18 17 28 0 0.419922 1
+18 17 29 0 0.404297 1
+18 17 30 0 0.390381 1
+18 17 31 0 0.378418 1
+18 18 0 0.845703 0.751465 0
+18 18 1 0.845703 0.751465 0
+18 18 2 0.845703 0.751465 0
+18 18 3 0.845703 0.751465 0
+18 18 4 0.845703 0.751465 0
+18 18 5 0.845703 0.751465 0
+18 18 6 0.845703 0.751465 0
+18 18 7 0.845703 0.751465 0
+18 18 8 0.845703 0.751465 0
+18 18 9 0.845703 0.751465 0
+18 18 10 0.845703 0.751953 0
+18 18 11 0.845703 0.751953 0
+18 18 12 0.845703 0.75293 0
+18 18 13 0.841797 0.753418 0.105713
+18 18 14 0.834961 0.753418 0.281982
+18 18 15 0.822754 0.752441 0.403564
+18 18 16 0.802246 0.748535 0.518066
+18 18 17 0.77002 0.739258 0.626465
+18 18 18 0.724121 0.724121 0.724121
+18 18 19 0.675293 0.712891 0.818359
+18 18 20 0.615723 0.697266 0.897949
+18 18 21 0.537598 0.669922 0.952148
+18 18 22 0.444092 0.633301 0.980469
+18 18 23 0.343018 0.600098 0.998047
+18 18 24 0.212524 0.570801 1
+18 18 25 0 0.542969 1
+18 18 26 0 0.516602 1
+18 18 27 0 0.492188 1
+18 18 28 0 0.469971 1
+18 18 29 0 0.449951 1
+18 18 30 0 0.432129 1
+18 18 31 0 0.416016 1
+18 19 0 0.750977 0.833984 0
+18 19 1 0.750977 0.833984 0
+18 19 2 0.750977 0.833984 0
+18 19 3 0.750977 0.833984 0
+18 19 4 0.750977 0.833984 0
+18 19 5 0.750977 0.833984 0
+18 19 6 0.750977 0.833984 0
+18 19 7 0.750977 0.833984 0
+18 19 8 0.750977 0.833984 0
+18 19 9 0.750977 0.833984 0
+18 19 10 0.750977 0.834473 0
+18 19 11 0.750977 0.834473 0
+18 19 12 0.750977 0.834961 0
+18 19 13 0.748047 0.835449 0
+18 19 14 0.740723 0.835938 0.220703
+18 19 15 0.729004 0.834961 0.363037
+18 19 16 0.708496 0.831055 0.484863
+18 19 17 0.676758 0.822266 0.597168
+18 19 18 0.635742 0.811035 0.702148
+18 19 19 0.584961 0.799805 0.799805
+18 19 20 0.520996 0.782715 0.882812
+18 19 21 0.436035 0.753906 0.942383
+18 19 22 0.32666 0.716309 0.978027
+18 19 23 0.161377 0.679199 1
+18 19 24 0 0.645996 1
+18 19 25 0 0.613281 1
+18 19 26 0 0.582031 1
+18 19 27 0 0.552734 1
+18 19 28 0 0.525391 1
+18 19 29 0 0.500977 1
+18 19 30 0 0.478271 1
+18 19 31 0 0.458008 1
+18 20 0 0.629883 0.899902 0
+18 20 1 0.629883 0.899902 0
+18 20 2 0.629883 0.899902 0
+18 20 3 0.629883 0.899902 0
+18 20 4 0.629883 0.899902 0
+18 20 5 0.629883 0.899902 0
+18 20 6 0.629883 0.899902 0
+18 20 7 0.629883 0.900391 0
+18 20 8 0.629883 0.900391 0
+18 20 9 0.629883 0.900391 0
+18 20 10 0.629883 0.900391 0
+18 20 11 0.629883 0.900391 0
+18 20 12 0.629883 0.900879 0
+18 20 13 0.62793 0.901367 0
+18 20 14 0.620605 0.902344 0.10968
+18 20 15 0.60791 0.902344 0.312256
+18 20 16 0.587402 0.900879 0.444824
+18 20 17 0.556152 0.895996 0.563965
+18 20 18 0.513184 0.88916 0.674805
+18 20 19 0.453857 0.878418 0.775391
+18 20 20 0.373047 0.861816 0.861816
+18 20 21 0.247681 0.836914 0.931641
+18 20 22 0 0.80127 0.977539
+18 20 23 0 0.762695 1
+18 20 24 0 0.725586 1
+18 20 25 0 0.688477 1
+18 20 26 0 0.652344 1
+18 20 27 0 0.617188 1
+18 20 28 0 0.584961 1
+18 20 29 0 0.555176 1
+18 20 30 0 0.527832 1
+18 20 31 0 0.50293 1
+18 21 0 0.473877 0.960449 0
+18 21 1 0.473877 0.960449 0
+18 21 2 0.473877 0.960449 0
+18 21 3 0.473877 0.960449 0
+18 21 4 0.473877 0.960449 0
+18 21 5 0.473877 0.960449 0
+18 21 6 0.473877 0.960449 0
+18 21 7 0.473877 0.960449 0
+18 21 8 0.473877 0.960449 0
+18 21 9 0.474121 0.960449 0
+18 21 10 0.474121 0.960449 0
+18 21 11 0.474121 0.960938 0
+18 21 12 0.474365 0.960938 0
+18 21 13 0.473877 0.961426 0
+18 21 14 0.463623 0.962402 0
+18 21 15 0.446777 0.962891 0.249512
+18 21 16 0.419678 0.963379 0.400879
+18 21 17 0.377441 0.961914 0.526855
+18 21 18 0.310059 0.95752 0.64209
+18 21 19 0.182739 0.94873 0.746094
+18 21 20 0 0.933594 0.835938
+18 21 21 0 0.912598 0.913086
+18 21 22 0 0.883301 0.971191
+18 21 23 0 0.84668 1
+18 21 24 0 0.808105 1
+18 21 25 0 0.767578 1
+18 21 26 0 0.726562 1
+18 21 27 0 0.686523 1
+18 21 28 0 0.648438 1
+18 21 29 0 0.613281 1
+18 21 30 0 0.581055 1
+18 21 31 0 0.55127 1
+18 22 0 0.171631 1 0
+18 22 1 0.171631 1 0
+18 22 2 0.171631 1 0
+18 22 3 0.171631 1 0
+18 22 4 0.171631 1 0
+18 22 5 0.171631 1 0
+18 22 6 0.171631 1 0
+18 22 7 0.171753 1 0
+18 22 8 0.171753 1 0
+18 22 9 0.171875 1 0
+18 22 10 0.172119 1 0
+18 22 11 0.172607 1 0
+18 22 12 0.17334 1 0
+18 22 13 0.174438 1 0
+18 22 14 0.139282 1 0
+18 22 15 0 1 0.157715
+18 22 16 0 1 0.351807
+18 22 17 0 1 0.486572
+18 22 18 0 1 0.605469
+18 22 19 0 1 0.712402
+18 22 20 0 0.996094 0.805664
+18 22 21 0 0.977051 0.88623
+18 22 22 0 0.953125 0.953125
+18 22 23 0 0.922852 1
+18 22 24 0 0.886719 1
+18 22 25 0 0.845703 1
+18 22 26 0 0.801758 1
+18 22 27 0 0.757324 1
+18 22 28 0 0.714844 1
+18 22 29 0 0.673828 1
+18 22 30 0 0.63623 1
+18 22 31 0 0.601562 1
+18 23 0 0 1 0
+18 23 1 0 1 0
+18 23 2 0 1 0
+18 23 3 0 1 0
+18 23 4 0 1 0
+18 23 5 0 1 0
+18 23 6 0 1 0
+18 23 7 0 1 0
+18 23 8 0 1 0
+18 23 9 0 1 0
+18 23 10 0 1 0
+18 23 11 0 1 0
+18 23 12 0 1 0
+18 23 13 0 1 0
+18 23 14 0 1 0
+18 23 15 0 1 0
+18 23 16 0 1 0.296631
+18 23 17 0 1 0.444092
+18 23 18 0 1 0.567383
+18 23 19 0 1 0.677246
+18 23 20 0 1 0.772949
+18 23 21 0 1 0.856445
+18 23 22 0 1 0.927246
+18 23 23 0 0.983398 0.983887
+18 23 24 0 0.953125 1
+18 23 25 0 0.915039 1
+18 23 26 0 0.871582 1
+18 23 27 0 0.825195 1
+18 23 28 0 0.778809 1
+18 23 29 0 0.733887 1
+18 23 30 0 0.691406 1
+18 23 31 0 0.651855 1
+18 24 0 0 1 0
+18 24 1 0 1 0
+18 24 2 0 1 0
+18 24 3 0 1 0
+18 24 4 0 1 0
+18 24 5 0 1 0
+18 24 6 0 1 0
+18 24 7 0 1 0
+18 24 8 0 1 0
+18 24 9 0 1 0
+18 24 10 0 1 0
+18 24 11 0 1 0
+18 24 12 0 1 0
+18 24 13 0 1 0
+18 24 14 0 1 0
+18 24 15 0 1 0
+18 24 16 0 1 0.231445
+18 24 17 0 1 0.399658
+18 24 18 0 1 0.52832
+18 24 19 0 1 0.640137
+18 24 20 0 1 0.738281
+18 24 21 0 1 0.824707
+18 24 22 0 1 0.898438
+18 24 23 0 1 0.958984
+18 24 24 0 1 1
+18 24 25 0 0.974609 1
+18 24 26 0 0.933594 1
+18 24 27 0 0.887695 1
+18 24 28 0 0.839844 1
+18 24 29 0 0.791504 1
+18 24 30 0 0.745117 1
+18 24 31 0 0.701172 1
+18 25 0 0 1 0
+18 25 1 0 1 0
+18 25 2 0 1 0
+18 25 3 0 1 0
+18 25 4 0 1 0
+18 25 5 0 1 0
+18 25 6 0 1 0
+18 25 7 0 1 0
+18 25 8 0 1 0
+18 25 9 0 1 0
+18 25 10 0 1 0
+18 25 11 0 1 0
+18 25 12 0 1 0
+18 25 13 0 1 0
+18 25 14 0 1 0
+18 25 15 0 1 0
+18 25 16 0 1 0.121033
+18 25 17 0 1 0.347656
+18 25 18 0 1 0.483887
+18 25 19 0 1 0.598633
+18 25 20 0 1 0.69873
+18 25 21 0 1 0.787598
+18 25 22 0 1 0.864746
+18 25 23 0 1 0.928711
+18 25 24 0 1 0.981445
+18 25 25 0 1 1
+18 25 26 0 0.992188 1
+18 25 27 0 0.949219 1
+18 25 28 0 0.901367 1
+18 25 29 0 0.851562 1
+18 25 30 0 0.802246 1
+18 25 31 0 0.754395 1
+18 26 0 0 1 0
+18 26 1 0 1 0
+18 26 2 0 1 0
+18 26 3 0 1 0
+18 26 4 0 1 0
+18 26 5 0 1 0
+18 26 6 0 1 0
+18 26 7 0 1 0
+18 26 8 0 1 0
+18 26 9 0 1 0
+18 26 10 0 1 0
+18 26 11 0 1 0
+18 26 12 0 1 0
+18 26 13 0 1 0
+18 26 14 0 1 0
+18 26 15 0 1 0
+18 26 16 0 1 0
+18 26 17 0 1 0.284424
+18 26 18 0 1 0.434326
+18 26 19 0 1 0.552734
+18 26 20 0 1 0.654785
+18 26 21 0 1 0.745605
+18 26 22 0 1 0.825684
+18 26 23 0 1 0.892578
+18 26 24 0 1 0.94873
+18 26 25 0 1 1
+18 26 26 0 1 1
+18 26 27 0 1 1
+18 26 28 0 0.961426 1
+18 26 29 0 0.911621 1
+18 26 30 0 0.86084 1
+18 26 31 0 0.810059 1
+18 27 0 0 1 0
+18 27 1 0 1 0
+18 27 2 0 1 0
+18 27 3 0 1 0
+18 27 4 0 1 0
+18 27 5 0 1 0
+18 27 6 0 1 0
+18 27 7 0 1 0
+18 27 8 0 1 0
+18 27 9 0 1 0
+18 27 10 0 1 0
+18 27 11 0 1 0
+18 27 12 0 1 0
+18 27 13 0 1 0
+18 27 14 0 1 0
+18 27 15 0 1 0
+18 27 16 0 1 0
+18 27 17 0 1 0.197388
+18 27 18 0 1 0.377686
+18 27 19 0 1 0.502441
+18 27 20 0 1 0.606445
+18 27 21 0 1 0.699219
+18 27 22 0 1 0.780762
+18 27 23 0 1 0.850586
+18 27 24 0 1 0.910156
+18 27 25 0 1 0.965332
+18 27 26 0 1 1
+18 27 27 0 1 1
+18 27 28 0 1 1
+18 27 29 0 0.969727 1
+18 27 30 0 0.918945 1
+18 27 31 0 0.866699 1
+18 28 0 0 1 0
+18 28 1 0 1 0
+18 28 2 0 1 0
+18 28 3 0 1 0
+18 28 4 0 1 0
+18 28 5 0 1 0
+18 28 6 0 1 0
+18 28 7 0 1 0
+18 28 8 0 1 0
+18 28 9 0 1 0
+18 28 10 0 1 0
+18 28 11 0 1 0
+18 28 12 0 1 0
+18 28 13 0 1 0
+18 28 14 0 1 0
+18 28 15 0 1 0
+18 28 16 0 1 0
+18 28 17 0 1 0
+18 28 18 0 1 0.311768
+18 28 19 0 1 0.446533
+18 28 20 0 1 0.553711
+18 28 21 0 1 0.647949
+18 28 22 0 1 0.731445
+18 28 23 0 1 0.803223
+18 28 24 0 1 0.865234
+18 28 25 0 1 0.924316
+18 28 26 0 1 0.978516
+18 28 27 0 1 1
+18 28 28 0 1 1
+18 28 29 0 1 1
+18 28 30 0 0.975098 1
+18 28 31 0 0.92334 1
+18 29 0 0 1 0
+18 29 1 0 1 0
+18 29 2 0 1 0
+18 29 3 0 1 0
+18 29 4 0 1 0
+18 29 5 0 1 0
+18 29 6 0 1 0
+18 29 7 0 1 0
+18 29 8 0 1 0
+18 29 9 0 1 0
+18 29 10 0 1 0
+18 29 11 0 1 0
+18 29 12 0 1 0
+18 29 13 0 1 0
+18 29 14 0 1 0
+18 29 15 0 1 0
+18 29 16 0 1 0
+18 29 17 0 1 0
+18 29 18 0 1 0.226318
+18 29 19 0 1 0.384521
+18 29 20 0 1 0.496826
+18 29 21 0 1 0.592773
+18 29 22 0 1 0.677734
+18 29 23 0 1 0.750977
+18 29 24 0 1 0.814941
+18 29 25 0 1 0.876465
+18 29 26 0 1 0.93457
+18 29 27 0 1 0.987793
+18 29 28 0 1 1
+18 29 29 0 1 1
+18 29 30 0 1 1
+18 29 31 0 0.979492 1
+18 30 0 0 1 0
+18 30 1 0 1 0
+18 30 2 0 1 0
+18 30 3 0 1 0
+18 30 4 0 1 0
+18 30 5 0 1 0
+18 30 6 0 1 0
+18 30 7 0 1 0
+18 30 8 0 1 0
+18 30 9 0 1 0
+18 30 10 0 1 0
+18 30 11 0 1 0
+18 30 12 0 1 0
+18 30 13 0 1 0
+18 30 14 0 1 0
+18 30 15 0 1 0
+18 30 16 0 1 0
+18 30 17 0 1 0
+18 30 18 0 1 0
+18 30 19 0 1 0.312744
+18 30 20 0 1 0.434814
+18 30 21 0 1 0.533691
+18 30 22 0 1 0.619141
+18 30 23 0 1 0.693848
+18 30 24 0 1 0.758789
+18 30 25 0 1 0.822266
+18 30 26 0 1 0.883789
+18 30 27 0 1 0.941406
+18 30 28 0 1 0.993652
+18 30 29 0 1 1
+18 30 30 0 1 1
+18 30 31 0 1 1
+18 31 0 0 1 0
+18 31 1 0 1 0
+18 31 2 0 1 0
+18 31 3 0 1 0
+18 31 4 0 1 0
+18 31 5 0 1 0
+18 31 6 0 1 0
+18 31 7 0 1 0
+18 31 8 0 1 0
+18 31 9 0 1 0
+18 31 10 0 1 0
+18 31 11 0 1 0
+18 31 12 0 1 0
+18 31 13 0 1 0
+18 31 14 0 1 0
+18 31 15 0 1 0
+18 31 16 0 1 0
+18 31 17 0 1 0
+18 31 18 0 1 0
+18 31 19 0 1 0.221558
+18 31 20 0 1 0.366211
+18 31 21 0 1 0.469971
+18 31 22 0 1 0.557617
+18 31 23 0 1 0.632324
+18 31 24 0 1 0.69873
+18 31 25 0 1 0.763672
+18 31 26 0 1 0.827637
+18 31 27 0 1 0.888672
+18 31 28 0 1 0.946289
+18 31 29 0 1 0.998535
+18 31 30 0 1 1
+18 31 31 0 1 1
+19 0 0 0.954102 0 0
+19 0 1 0.954102 0 0
+19 0 2 0.954102 0 0
+19 0 3 0.954102 0 0
+19 0 4 0.954102 0 0
+19 0 5 0.954102 0 0
+19 0 6 0.954102 0 0
+19 0 7 0.954102 0 0
+19 0 8 0.954102 0 0
+19 0 9 0.95459 0 0
+19 0 10 0.95459 0 0
+19 0 11 0.95459 0 0
+19 0 12 0.957031 0 0
+19 0 13 0.962891 0 0
+19 0 14 0.974609 0 0.238403
+19 0 15 0.988281 0 0.36499
+19 0 16 1 0 0.495117
+19 0 17 1 0 0.629883
+19 0 18 1 0.132568 0.74707
+19 0 19 0.991211 0.176514 0.836914
+19 0 20 0.938477 0.203003 0.911133
+19 0 21 0.871094 0.222412 0.965332
+19 0 22 0.791992 0.234497 0.996094
+19 0 23 0.713379 0.241699 1
+19 0 24 0.638184 0.246216 1
+19 0 25 0.560547 0.249512 1
+19 0 26 0.477783 0.252197 1
+19 0 27 0.386475 0.254395 1
+19 0 28 0.272705 0.256836 1
+19 0 29 0 0.259521 1
+19 0 30 0 0.262207 1
+19 0 31 0 0.265381 1
+19 1 0 0.954102 0 0
+19 1 1 0.954102 0 0
+19 1 2 0.954102 0 0
+19 1 3 0.954102 0 0
+19 1 4 0.954102 0 0
+19 1 5 0.954102 0 0
+19 1 6 0.954102 0 0
+19 1 7 0.954102 0 0
+19 1 8 0.954102 0 0
+19 1 9 0.95459 0 0
+19 1 10 0.95459 0 0
+19 1 11 0.95459 0 0
+19 1 12 0.957031 0 0
+19 1 13 0.962891 0 0
+19 1 14 0.974609 0 0.238403
+19 1 15 0.988281 0 0.36499
+19 1 16 1 0 0.495117
+19 1 17 1 0 0.629883
+19 1 18 1 0.13269 0.74707
+19 1 19 0.991211 0.176636 0.836914
+19 1 20 0.938477 0.203003 0.911133
+19 1 21 0.871094 0.222412 0.965332
+19 1 22 0.791992 0.234497 0.996094
+19 1 23 0.713379 0.241699 1
+19 1 24 0.638184 0.246216 1
+19 1 25 0.560547 0.249512 1
+19 1 26 0.477783 0.252197 1
+19 1 27 0.386475 0.254395 1
+19 1 28 0.272705 0.256836 1
+19 1 29 0 0.259521 1
+19 1 30 0 0.262207 1
+19 1 31 0 0.265381 1
+19 2 0 0.954102 0 0
+19 2 1 0.954102 0 0
+19 2 2 0.954102 0 0
+19 2 3 0.954102 0 0
+19 2 4 0.954102 0 0
+19 2 5 0.954102 0 0
+19 2 6 0.954102 0 0
+19 2 7 0.954102 0 0
+19 2 8 0.954102 0 0
+19 2 9 0.95459 0 0
+19 2 10 0.95459 0 0
+19 2 11 0.95459 0 0
+19 2 12 0.957031 0 0
+19 2 13 0.962891 0 0
+19 2 14 0.974609 0 0.238403
+19 2 15 0.988281 0 0.36499
+19 2 16 1 0 0.495117
+19 2 17 1 0 0.629883
+19 2 18 1 0.132812 0.74707
+19 2 19 0.991211 0.176758 0.836914
+19 2 20 0.938477 0.203125 0.911133
+19 2 21 0.871094 0.222534 0.965332
+19 2 22 0.791992 0.234619 0.996094
+19 2 23 0.713379 0.241821 1
+19 2 24 0.638184 0.246216 1
+19 2 25 0.560547 0.249512 1
+19 2 26 0.477783 0.252197 1
+19 2 27 0.386475 0.254395 1
+19 2 28 0.272705 0.256836 1
+19 2 29 0 0.259521 1
+19 2 30 0 0.262207 1
+19 2 31 0 0.265381 1
+19 3 0 0.954102 0 0
+19 3 1 0.954102 0 0
+19 3 2 0.954102 0 0
+19 3 3 0.954102 0 0
+19 3 4 0.954102 0 0
+19 3 5 0.954102 0 0
+19 3 6 0.954102 0 0
+19 3 7 0.954102 0 0
+19 3 8 0.954102 0 0
+19 3 9 0.95459 0 0
+19 3 10 0.95459 0 0
+19 3 11 0.95459 0 0
+19 3 12 0.957031 0 0
+19 3 13 0.962891 0 0
+19 3 14 0.974609 0 0.238403
+19 3 15 0.988281 0 0.36499
+19 3 16 1 0 0.494873
+19 3 17 1 0 0.629883
+19 3 18 1 0.133179 0.74707
+19 3 19 0.990723 0.177002 0.836914
+19 3 20 0.938477 0.203247 0.911133
+19 3 21 0.871094 0.222656 0.965332
+19 3 22 0.791992 0.234741 0.996094
+19 3 23 0.713379 0.241821 1
+19 3 24 0.638184 0.246338 1
+19 3 25 0.560059 0.249634 1
+19 3 26 0.477783 0.252197 1
+19 3 27 0.386475 0.254639 1
+19 3 28 0.272705 0.256836 1
+19 3 29 0 0.259521 1
+19 3 30 0 0.262207 1
+19 3 31 0 0.265381 1
+19 4 0 0.954102 0 0
+19 4 1 0.954102 0 0
+19 4 2 0.954102 0 0
+19 4 3 0.954102 0 0
+19 4 4 0.954102 0 0
+19 4 5 0.954102 0 0
+19 4 6 0.954102 0 0
+19 4 7 0.954102 0 0
+19 4 8 0.954102 0 0
+19 4 9 0.95459 0 0
+19 4 10 0.95459 0 0
+19 4 11 0.95459 0 0
+19 4 12 0.957031 0 0
+19 4 13 0.962891 0 0
+19 4 14 0.974609 0 0.238403
+19 4 15 0.988281 0 0.36499
+19 4 16 1 0 0.494873
+19 4 17 1 0 0.629883
+19 4 18 1 0.133789 0.74707
+19 4 19 0.990723 0.177368 0.836914
+19 4 20 0.938477 0.203613 0.911133
+19 4 21 0.871094 0.222778 0.965332
+19 4 22 0.791992 0.234863 0.996094
+19 4 23 0.713379 0.242065 1
+19 4 24 0.638184 0.24646 1
+19 4 25 0.560059 0.249634 1
+19 4 26 0.477783 0.252197 1
+19 4 27 0.386475 0.254639 1
+19 4 28 0.272705 0.25708 1
+19 4 29 0 0.259521 1
+19 4 30 0 0.262451 1
+19 4 31 0 0.265381 1
+19 5 0 0.954102 0 0
+19 5 1 0.954102 0 0
+19 5 2 0.954102 0 0
+19 5 3 0.954102 0 0
+19 5 4 0.954102 0 0
+19 5 5 0.954102 0 0
+19 5 6 0.954102 0 0
+19 5 7 0.954102 0 0
+19 5 8 0.95459 0 0
+19 5 9 0.95459 0 0
+19 5 10 0.95459 0 0
+19 5 11 0.955078 0 0
+19 5 12 0.957031 0 0
+19 5 13 0.962891 0 0
+19 5 14 0.974609 0 0.238281
+19 5 15 0.988281 0 0.36499
+19 5 16 1 0 0.494873
+19 5 17 1 0 0.629883
+19 5 18 1 0.134888 0.74707
+19 5 19 0.990723 0.178101 0.836914
+19 5 20 0.938477 0.204102 0.911133
+19 5 21 0.871094 0.223267 0.965332
+19 5 22 0.791992 0.235229 0.996094
+19 5 23 0.713379 0.24231 1
+19 5 24 0.638184 0.246704 1
+19 5 25 0.560059 0.249878 1
+19 5 26 0.477783 0.252441 1
+19 5 27 0.386475 0.254639 1
+19 5 28 0.272461 0.25708 1
+19 5 29 0 0.259766 1
+19 5 30 0 0.262451 1
+19 5 31 0 0.265381 1
+19 6 0 0.95459 0 0
+19 6 1 0.95459 0 0
+19 6 2 0.95459 0 0
+19 6 3 0.95459 0 0
+19 6 4 0.95459 0 0
+19 6 5 0.95459 0 0
+19 6 6 0.95459 0 0
+19 6 7 0.95459 0 0
+19 6 8 0.95459 0 0
+19 6 9 0.95459 0 0
+19 6 10 0.95459 0 0
+19 6 11 0.955078 0 0
+19 6 12 0.957031 0 0
+19 6 13 0.962891 0 0
+19 6 14 0.974609 0 0.238159
+19 6 15 0.988281 0 0.364746
+19 6 16 1 0 0.494873
+19 6 17 1 0 0.629883
+19 6 18 1 0.136963 0.74707
+19 6 19 0.990723 0.179443 0.836914
+19 6 20 0.938477 0.2052 0.911133
+19 6 21 0.871094 0.224121 0.965332
+19 6 22 0.791992 0.235962 0.996094
+19 6 23 0.712891 0.24292 1
+19 6 24 0.638184 0.247192 1
+19 6 25 0.560059 0.250244 1
+19 6 26 0.477783 0.252686 1
+19 6 27 0.38623 0.255127 1
+19 6 28 0.272461 0.257324 1
+19 6 29 0 0.259766 1
+19 6 30 0 0.262695 1
+19 6 31 0 0.265625 1
+19 7 0 0.95459 0 0
+19 7 1 0.95459 0 0
+19 7 2 0.95459 0 0
+19 7 3 0.95459 0 0
+19 7 4 0.95459 0 0
+19 7 5 0.95459 0 0
+19 7 6 0.95459 0 0
+19 7 7 0.95459 0 0
+19 7 8 0.95459 0 0
+19 7 9 0.95459 0 0
+19 7 10 0.955078 0 0
+19 7 11 0.955078 0 0
+19 7 12 0.957031 0 0
+19 7 13 0.962891 0 0
+19 7 14 0.974609 0 0.238037
+19 7 15 0.988281 0 0.364746
+19 7 16 1 0 0.494629
+19 7 17 1 0 0.629883
+19 7 18 1 0.140991 0.74707
+19 7 19 0.990723 0.182129 0.836426
+19 7 20 0.937988 0.207275 0.911133
+19 7 21 0.871094 0.22583 0.965332
+19 7 22 0.791992 0.237305 0.996094
+19 7 23 0.712891 0.244019 1
+19 7 24 0.637695 0.248047 1
+19 7 25 0.560059 0.250977 1
+19 7 26 0.477539 0.253418 1
+19 7 27 0.385986 0.255615 1
+19 7 28 0.272217 0.257812 1
+19 7 29 0 0.260254 1
+19 7 30 0 0.262939 1
+19 7 31 0 0.265869 1
+19 8 0 0.955078 0 0
+19 8 1 0.955078 0 0
+19 8 2 0.955078 0 0
+19 8 3 0.955078 0 0
+19 8 4 0.955078 0 0
+19 8 5 0.955078 0 0
+19 8 6 0.955078 0 0
+19 8 7 0.955078 0 0
+19 8 8 0.955078 0 0
+19 8 9 0.955078 0 0
+19 8 10 0.955078 0 0
+19 8 11 0.955566 0 0
+19 8 12 0.95752 0 0
+19 8 13 0.963379 0 0
+19 8 14 0.974609 0 0.237671
+19 8 15 0.988281 0 0.364502
+19 8 16 1 0 0.494385
+19 8 17 1 0 0.629883
+19 8 18 1 0.148438 0.74707
+19 8 19 0.990234 0.187256 0.836426
+19 8 20 0.937988 0.211304 0.911133
+19 8 21 0.870605 0.229004 0.965332
+19 8 22 0.791504 0.239868 0.996094
+19 8 23 0.712402 0.246094 1
+19 8 24 0.637695 0.249878 1
+19 8 25 0.55957 0.252686 1
+19 8 26 0.477051 0.254639 1
+19 8 27 0.385742 0.256592 1
+19 8 28 0.271729 0.258789 1
+19 8 29 0 0.260986 1
+19 8 30 0 0.263672 1
+19 8 31 0 0.266602 1
+19 9 0 0.955566 0 0
+19 9 1 0.955566 0 0
+19 9 2 0.955566 0 0
+19 9 3 0.955566 0 0
+19 9 4 0.955566 0 0
+19 9 5 0.955566 0 0
+19 9 6 0.955566 0 0
+19 9 7 0.955566 0 0
+19 9 8 0.955566 0 0
+19 9 9 0.955566 0 0
+19 9 10 0.956055 0 0
+19 9 11 0.956055 0 0
+19 9 12 0.958008 0 0
+19 9 13 0.963379 0 0
+19 9 14 0.974609 0 0.236938
+19 9 15 0.988281 0 0.364258
+19 9 16 1 0 0.493896
+19 9 17 1 0 0.629395
+19 9 18 1 0.161499 0.746582
+19 9 19 0.989746 0.196533 0.836426
+19 9 20 0.9375 0.218628 0.911133
+19 9 21 0.870117 0.234863 0.965332
+19 9 22 0.791016 0.244629 0.996094
+19 9 23 0.711914 0.25 1
+19 9 24 0.637207 0.253174 1
+19 9 25 0.559082 0.255371 1
+19 9 26 0.476562 0.25708 1
+19 9 27 0.38501 0.258789 1
+19 9 28 0.270508 0.260498 1
+19 9 29 0 0.262451 1
+19 9 30 0 0.264893 1
+19 9 31 0 0.267578 1
+19 10 0 0.956543 0 0
+19 10 1 0.956543 0 0
+19 10 2 0.956543 0 0
+19 10 3 0.956543 0 0
+19 10 4 0.956543 0 0
+19 10 5 0.956543 0 0
+19 10 6 0.956543 0 0
+19 10 7 0.956543 0 0
+19 10 8 0.957031 0 0
+19 10 9 0.957031 0 0
+19 10 10 0.957031 0 0
+19 10 11 0.95752 0 0
+19 10 12 0.958984 0 0
+19 10 13 0.964355 0 0
+19 10 14 0.974609 0 0.235718
+19 10 15 0.988281 0 0.36377
+19 10 16 1 0 0.493164
+19 10 17 1 0 0.628906
+19 10 18 1 0.181885 0.746582
+19 10 19 0.98877 0.211914 0.836426
+19 10 20 0.936523 0.231079 0.910645
+19 10 21 0.869141 0.245117 0.965332
+19 10 22 0.790039 0.253174 0.995605
+19 10 23 0.710938 0.25708 1
+19 10 24 0.635742 0.259277 1
+19 10 25 0.558105 0.260498 1
+19 10 26 0.475342 0.261475 1
+19 10 27 0.383545 0.262451 1
+19 10 28 0.268555 0.263672 1
+19 10 29 0 0.265137 1
+19 10 30 0 0.26709 1
+19 10 31 0 0.269531 1
+19 11 0 0.958984 0 0
+19 11 1 0.958984 0 0
+19 11 2 0.958984 0 0
+19 11 3 0.958984 0 0
+19 11 4 0.958984 0 0
+19 11 5 0.958984 0 0
+19 11 6 0.958984 0 0
+19 11 7 0.958984 0 0
+19 11 8 0.958984 0 0
+19 11 9 0.958984 0 0
+19 11 10 0.958984 0 0
+19 11 11 0.959473 0 0
+19 11 12 0.960938 0 0
+19 11 13 0.965332 0 0
+19 11 14 0.974609 0 0.233643
+19 11 15 0.987793 0 0.363037
+19 11 16 1 0 0.491699
+19 11 17 1 0.0681152 0.627441
+19 11 18 1 0.211426 0.746094
+19 11 19 0.986816 0.235596 0.835938
+19 11 20 0.93457 0.250977 0.910645
+19 11 21 0.867188 0.261719 0.965332
+19 11 22 0.788086 0.26709 0.995605
+19 11 23 0.708984 0.268799 1
+19 11 24 0.634277 0.269287 1
+19 11 25 0.556152 0.269043 1
+19 11 26 0.473389 0.268799 1
+19 11 27 0.381348 0.268555 1
+19 11 28 0.265137 0.269043 1
+19 11 29 0 0.269775 1
+19 11 30 0 0.27124 1
+19 11 31 0 0.272949 1
+19 12 0 0.962402 0 0
+19 12 1 0.962402 0 0
+19 12 2 0.962402 0 0
+19 12 3 0.962402 0 0
+19 12 4 0.962402 0 0
+19 12 5 0.962402 0 0
+19 12 6 0.962402 0 0
+19 12 7 0.962402 0 0
+19 12 8 0.962402 0 0
+19 12 9 0.962402 0 0
+19 12 10 0.962891 0 0
+19 12 11 0.962891 0 0
+19 12 12 0.963867 0 0
+19 12 13 0.967773 0 0
+19 12 14 0.974609 0 0.230713
+19 12 15 0.987793 0 0.361816
+19 12 16 1 0 0.489014
+19 12 17 1 0.164551 0.625488
+19 12 18 1 0.251709 0.745117
+19 12 19 0.983887 0.27002 0.835449
+19 12 20 0.931152 0.280762 0.910645
+19 12 21 0.864258 0.287354 0.964844
+19 12 22 0.785156 0.288818 0.995605
+19 12 23 0.706055 0.287598 1
+19 12 24 0.630859 0.2854 1
+19 12 25 0.552734 0.282959 1
+19 12 26 0.469727 0.280762 1
+19 12 27 0.377197 0.279053 1
+19 12 28 0.259033 0.277832 1
+19 12 29 0 0.277588 1
+19 12 30 0 0.277832 1
+19 12 31 0 0.278564 1
+19 13 0 0.968262 0.134033 0
+19 13 1 0.968262 0.134033 0
+19 13 2 0.968262 0.134033 0
+19 13 3 0.968262 0.134155 0
+19 13 4 0.968262 0.134155 0
+19 13 5 0.968262 0.134277 0
+19 13 6 0.968262 0.134399 0
+19 13 7 0.968262 0.134766 0
+19 13 8 0.968262 0.135376 0
+19 13 9 0.968262 0.136597 0
+19 13 10 0.96875 0.138916 0
+19 13 11 0.96875 0.1427 0
+19 13 12 0.969238 0.145142 0
+19 13 13 0.971191 0.138306 0
+19 13 14 0.976074 0.125854 0.227661
+19 13 15 0.98584 0.124817 0.358887
+19 13 16 0.996582 0.148682 0.485107
+19 13 17 1 0.238281 0.62207
+19 13 18 1 0.302734 0.743652
+19 13 19 0.978516 0.315674 0.834961
+19 13 20 0.925781 0.321533 0.909668
+19 13 21 0.858887 0.323486 0.964844
+19 13 22 0.779785 0.320068 0.995117
+19 13 23 0.700684 0.314697 1
+19 13 24 0.625488 0.309326 1
+19 13 25 0.547363 0.303955 1
+19 13 26 0.463867 0.299072 1
+19 13 27 0.370117 0.294922 1
+19 13 28 0.248779 0.291504 1
+19 13 29 0 0.289551 1
+19 13 30 0 0.288086 1
+19 13 31 0 0.287598 1
+19 14 0 0.977051 0.266113 0
+19 14 1 0.977051 0.266113 0
+19 14 2 0.977051 0.266113 0
+19 14 3 0.977051 0.266113 0
+19 14 4 0.977051 0.266113 0
+19 14 5 0.977051 0.266113 0
+19 14 6 0.977051 0.266357 0
+19 14 7 0.977051 0.266357 0
+19 14 8 0.977051 0.266602 0
+19 14 9 0.977051 0.26709 0
+19 14 10 0.977539 0.268066 0
+19 14 11 0.977539 0.269775 0
+19 14 12 0.977539 0.270996 0
+19 14 13 0.978027 0.267578 0
+19 14 14 0.978516 0.262695 0.226562
+19 14 15 0.981934 0.259033 0.354004
+19 14 16 0.98877 0.266357 0.479736
+19 14 17 1 0.313232 0.615723
+19 14 18 1 0.36499 0.740723
+19 14 19 0.969238 0.373535 0.833008
+19 14 20 0.91748 0.374756 0.908691
+19 14 21 0.850586 0.371338 0.964355
+19 14 22 0.770996 0.362549 0.994629
+19 14 23 0.691895 0.352295 1
+19 14 24 0.616699 0.342773 1
+19 14 25 0.538086 0.333496 1
+19 14 26 0.454102 0.325195 1
+19 14 27 0.358643 0.317871 1
+19 14 28 0.230835 0.312012 1
+19 14 29 0 0.307373 1
+19 14 30 0 0.303955 1
+19 14 31 0 0.301514 1
+19 15 0 0.98877 0.376953 0
+19 15 1 0.98877 0.376953 0
+19 15 2 0.98877 0.376953 0
+19 15 3 0.98877 0.376953 0
+19 15 4 0.98877 0.376953 0
+19 15 5 0.98877 0.376953 0
+19 15 6 0.98877 0.376953 0
+19 15 7 0.98877 0.376953 0
+19 15 8 0.98877 0.377197 0
+19 15 9 0.989258 0.377441 0
+19 15 10 0.989258 0.378174 0
+19 15 11 0.989258 0.37915 0
+19 15 12 0.989258 0.379883 0
+19 15 13 0.987305 0.378174 0
+19 15 14 0.984375 0.375244 0.232788
+19 15 15 0.97998 0.370361 0.353027
+19 15 16 0.979492 0.371582 0.475098
+19 15 17 0.985352 0.393311 0.605469
+19 15 18 0.992188 0.4375 0.73584
+19 15 19 0.955078 0.443115 0.830566
+19 15 20 0.90332 0.439941 0.906738
+19 15 21 0.836914 0.431396 0.962891
+19 15 22 0.757324 0.416504 0.993652
+19 15 23 0.678223 0.400879 1
+19 15 24 0.603027 0.386719 1
+19 15 25 0.523926 0.373047 1
+19 15 26 0.438721 0.360596 1
+19 15 27 0.340088 0.349609 1
+19 15 28 0.198486 0.340088 1
+19 15 29 0 0.332275 1
+19 15 30 0 0.326172 1
+19 15 31 0 0.321045 1
+19 16 0 1 0.490479 0
+19 16 1 1 0.490479 0
+19 16 2 1 0.490479 0
+19 16 3 1 0.490479 0
+19 16 4 1 0.490479 0
+19 16 5 1 0.490479 0
+19 16 6 1 0.490479 0
+19 16 7 1 0.490723 0
+19 16 8 1 0.490723 0
+19 16 9 1 0.490967 0
+19 16 10 1 0.491455 0
+19 16 11 1 0.492188 0
+19 16 12 1 0.493164 0
+19 16 13 0.997559 0.492432 0.0739136
+19 16 14 0.991699 0.490723 0.249878
+19 16 15 0.981445 0.486572 0.362061
+19 16 16 0.966309 0.479492 0.470947
+19 16 17 0.957031 0.482422 0.59082
+19 16 18 0.96582 0.518555 0.727051
+19 16 19 0.932617 0.523438 0.825195
+19 16 20 0.881836 0.516602 0.90332
+19 16 21 0.81543 0.502441 0.959961
+19 16 22 0.73584 0.481445 0.991211
+19 16 23 0.656738 0.460205 1
+19 16 24 0.581543 0.441162 1
+19 16 25 0.501953 0.422852 1
+19 16 26 0.414551 0.405762 1
+19 16 27 0.309326 0.390625 1
+19 16 28 0.127686 0.377197 1
+19 16 29 0 0.365723 1
+19 16 30 0 0.355957 1
+19 16 31 0 0.347656 1
+19 17 0 1 0.607422 0
+19 17 1 1 0.607422 0
+19 17 2 1 0.607422 0
+19 17 3 1 0.607422 0
+19 17 4 1 0.607422 0
+19 17 5 1 0.607422 0
+19 17 6 1 0.607422 0
+19 17 7 1 0.607422 0
+19 17 8 1 0.607422 0
+19 17 9 1 0.607422 0
+19 17 10 1 0.60791 0
+19 17 11 1 0.608398 0
+19 17 12 1 0.609375 0
+19 17 13 0.999023 0.609375 0.113037
+19 17 14 0.993164 0.608887 0.267578
+19 17 15 0.981445 0.606934 0.378662
+19 17 16 0.960938 0.600098 0.483154
+19 17 17 0.930176 0.587402 0.583984
+19 17 18 0.922852 0.601074 0.708496
+19 17 19 0.899414 0.61084 0.817383
+19 17 20 0.849121 0.600586 0.896973
+19 17 21 0.782715 0.581543 0.95459
+19 17 22 0.703613 0.554688 0.986816
+19 17 23 0.625488 0.527832 1
+19 17 24 0.550293 0.503906 1
+19 17 25 0.468994 0.481201 1
+19 17 26 0.376709 0.459961 1
+19 17 27 0.256592 0.440186 1
+19 17 28 0 0.422607 1
+19 17 29 0 0.406982 1
+19 17 30 0 0.393311 1
+19 17 31 0 0.381348 1
+19 18 0 0.978516 0.719727 0
+19 18 1 0.978516 0.719727 0
+19 18 2 0.978516 0.719727 0
+19 18 3 0.978516 0.719727 0
+19 18 4 0.978516 0.719727 0
+19 18 5 0.978516 0.719727 0
+19 18 6 0.978516 0.719727 0
+19 18 7 0.978516 0.719727 0
+19 18 8 0.978516 0.719727 0
+19 18 9 0.978516 0.719727 0
+19 18 10 0.978516 0.720215 0
+19 18 11 0.978516 0.720215 0
+19 18 12 0.978516 0.721191 0
+19 18 13 0.976562 0.72168 0
+19 18 14 0.97168 0.722656 0.259033
+19 18 15 0.962402 0.722168 0.380615
+19 18 16 0.945312 0.719238 0.493164
+19 18 17 0.916504 0.710449 0.598145
+19 18 18 0.870605 0.690918 0.689941
+19 18 19 0.851562 0.700684 0.804688
+19 18 20 0.802246 0.6875 0.886719
+19 18 21 0.73584 0.664062 0.945312
+19 18 22 0.658203 0.632324 0.980469
+19 18 23 0.581055 0.601562 1
+19 18 24 0.504883 0.57373 1
+19 18 25 0.419922 0.546875 1
+19 18 26 0.316406 0.521484 1
+19 18 27 0.14209 0.497314 1
+19 18 28 0 0.475098 1
+19 18 29 0 0.455322 1
+19 18 30 0 0.436768 1
+19 18 31 0 0.419922 1
+19 19 0 0.919434 0.816406 0
+19 19 1 0.919434 0.816406 0
+19 19 2 0.919434 0.816406 0
+19 19 3 0.919434 0.816406 0
+19 19 4 0.919434 0.816895 0
+19 19 5 0.919434 0.816895 0
+19 19 6 0.919434 0.816895 0
+19 19 7 0.919434 0.816895 0
+19 19 8 0.919434 0.816895 0
+19 19 9 0.919434 0.816895 0
+19 19 10 0.919434 0.816895 0
+19 19 11 0.919434 0.817383 0
+19 19 12 0.918945 0.817871 0
+19 19 13 0.917969 0.818359 0
+19 19 14 0.913574 0.819336 0.206177
+19 19 15 0.905273 0.820312 0.352295
+19 19 16 0.891113 0.818848 0.475098
+19 19 17 0.867676 0.813965 0.589844
+19 19 18 0.833008 0.803711 0.694824
+19 19 19 0.787109 0.787109 0.787109
+19 19 20 0.73877 0.772949 0.871582
+19 19 21 0.672852 0.746094 0.932617
+19 19 22 0.597168 0.712402 0.973633
+19 19 23 0.519531 0.679199 1
+19 19 24 0.439209 0.647949 1
+19 19 25 0.342773 0.616699 1
+19 19 26 0.200317 0.586426 1
+19 19 27 0 0.557129 1
+19 19 28 0 0.530273 1
+19 19 29 0 0.505371 1
+19 19 30 0 0.482422 1
+19 19 31 0 0.46167 1
+19 20 0 0.830078 0.89209 0
+19 20 1 0.830078 0.89209 0
+19 20 2 0.830078 0.89209 0
+19 20 3 0.830078 0.89209 0
+19 20 4 0.830078 0.89209 0
+19 20 5 0.830078 0.89209 0
+19 20 6 0.830078 0.89209 0
+19 20 7 0.830078 0.89209 0
+19 20 8 0.830078 0.892578 0
+19 20 9 0.830078 0.892578 0
+19 20 10 0.830078 0.892578 0
+19 20 11 0.830078 0.892578 0
+19 20 12 0.830078 0.893066 0
+19 20 13 0.829102 0.893555 0
+19 20 14 0.82373 0.894043 0.0776367
+19 20 15 0.815918 0.894531 0.304199
+19 20 16 0.801758 0.893555 0.438477
+19 20 17 0.778809 0.88916 0.557617
+19 20 18 0.745605 0.878906 0.666016
+19 20 19 0.703613 0.866211 0.76416
+19 20 20 0.655273 0.852051 0.852051
+19 20 21 0.592285 0.827637 0.921387
+19 20 22 0.515137 0.793457 0.968262
+19 20 23 0.430908 0.757812 0.999512
+19 20 24 0.335938 0.723145 1
+19 20 25 0.19043 0.687988 1
+19 20 26 0 0.65332 1
+19 20 27 0 0.619629 1
+19 20 28 0 0.587891 1
+19 20 29 0 0.558105 1
+19 20 30 0 0.530762 1
+19 20 31 0 0.505859 1
+19 21 0 0.722656 0.958496 0
+19 21 1 0.722656 0.958496 0
+19 21 2 0.722656 0.958496 0
+19 21 3 0.722656 0.958496 0
+19 21 4 0.722656 0.958496 0
+19 21 5 0.722656 0.958496 0
+19 21 6 0.722656 0.958496 0
+19 21 7 0.722656 0.958496 0
+19 21 8 0.722656 0.958496 0
+19 21 9 0.722656 0.958496 0
+19 21 10 0.722656 0.958496 0
+19 21 11 0.722656 0.958984 0
+19 21 12 0.722656 0.958984 0
+19 21 13 0.722656 0.959473 0
+19 21 14 0.717285 0.959961 0
+19 21 15 0.70752 0.959473 0.241455
+19 21 16 0.691895 0.958008 0.395508
+19 21 17 0.668945 0.954102 0.520996
+19 21 18 0.63623 0.946777 0.633789
+19 21 19 0.594238 0.937012 0.736328
+19 21 20 0.54248 0.923828 0.827148
+19 21 21 0.475586 0.905273 0.905762
+19 21 22 0.388916 0.876953 0.964355
+19 21 23 0.273926 0.84082 1
+19 21 24 0 0.803711 1
+19 21 25 0 0.764648 1
+19 21 26 0 0.725098 1
+19 21 27 0 0.686523 1
+19 21 28 0 0.649414 1
+19 21 29 0 0.614746 1
+19 21 30 0 0.583008 1
+19 21 31 0 0.553223 1
+19 22 0 0.588867 1 0
+19 22 1 0.588867 1 0
+19 22 2 0.588867 1 0
+19 22 3 0.588867 1 0
+19 22 4 0.588867 1 0
+19 22 5 0.588867 1 0
+19 22 6 0.588867 1 0
+19 22 7 0.588867 1 0
+19 22 8 0.588867 1 0
+19 22 9 0.588867 1 0
+19 22 10 0.588867 1 0
+19 22 11 0.588867 1 0
+19 22 12 0.588867 1 0
+19 22 13 0.588867 1 0
+19 22 14 0.584473 1 0
+19 22 15 0.57373 1 0.143799
+19 22 16 0.556152 1 0.346191
+19 22 17 0.530273 1 0.480713
+19 22 18 0.493408 1 0.598145
+19 22 19 0.442627 0.998535 0.70459
+19 22 20 0.373535 0.987305 0.79834
+19 22 21 0.268311 0.970215 0.879883
+19 22 22 0 0.947754 0.948242
+19 22 23 0 0.918457 0.997559
+19 22 24 0 0.882812 1
+19 22 25 0 0.842285 1
+19 22 26 0 0.799316 1
+19 22 27 0 0.756348 1
+19 22 28 0 0.714355 1
+19 22 29 0 0.674316 1
+19 22 30 0 0.637207 1
+19 22 31 0 0.603027 1
+19 23 0 0.416504 1 0
+19 23 1 0.416504 1 0
+19 23 2 0.416504 1 0
+19 23 3 0.416504 1 0
+19 23 4 0.416504 1 0
+19 23 5 0.416504 1 0
+19 23 6 0.416504 1 0
+19 23 7 0.416504 1 0
+19 23 8 0.416504 1 0
+19 23 9 0.416504 1 0
+19 23 10 0.416504 1 0
+19 23 11 0.416748 1 0
+19 23 12 0.416748 1 0
+19 23 13 0.416992 1 0
+19 23 14 0.41333 1 0
+19 23 15 0.397705 1 0
+19 23 16 0.371826 1 0.290771
+19 23 17 0.330811 1 0.438721
+19 23 18 0.263184 1 0.561523
+19 23 19 0.106018 1 0.67041
+19 23 20 0 1 0.766602
+19 23 21 0 1 0.851074
+19 23 22 0 1 0.922363
+19 23 23 0 0.97998 0.97998
+19 23 24 0 0.950684 1
+19 23 25 0 0.913086 1
+19 23 26 0 0.869629 1
+19 23 27 0 0.82373 1
+19 23 28 0 0.77832 1
+19 23 29 0 0.733887 1
+19 23 30 0 0.691895 1
+19 23 31 0 0.652832 1
+19 24 0 0 1 0
+19 24 1 0 1 0
+19 24 2 0 1 0
+19 24 3 0 1 0
+19 24 4 0 1 0
+19 24 5 0 1 0
+19 24 6 0 1 0
+19 24 7 0 1 0
+19 24 8 0 1 0
+19 24 9 0 1 0
+19 24 10 0 1 0
+19 24 11 0 1 0
+19 24 12 0 1 0
+19 24 13 0 1 0
+19 24 14 0 1 0
+19 24 15 0 1 0
+19 24 16 0 1 0.224487
+19 24 17 0 1 0.39502
+19 24 18 0 1 0.523438
+19 24 19 0 1 0.634766
+19 24 20 0 1 0.73291
+19 24 21 0 1 0.819824
+19 24 22 0 1 0.894531
+19 24 23 0 1 0.955566
+19 24 24 0 1 1
+19 24 25 0 0.973145 1
+19 24 26 0 0.932617 1
+19 24 27 0 0.886719 1
+19 24 28 0 0.838867 1
+19 24 29 0 0.791504 1
+19 24 30 0 0.745605 1
+19 24 31 0 0.70166 1
+19 25 0 0 1 0
+19 25 1 0 1 0
+19 25 2 0 1 0
+19 25 3 0 1 0
+19 25 4 0 1 0
+19 25 5 0 1 0
+19 25 6 0 1 0
+19 25 7 0 1 0
+19 25 8 0 1 0
+19 25 9 0 1 0
+19 25 10 0 1 0
+19 25 11 0 1 0
+19 25 12 0 1 0
+19 25 13 0 1 0
+19 25 14 0 1 0
+19 25 15 0 1 0
+19 25 16 0 1 0.105713
+19 25 17 0 1 0.343506
+19 25 18 0 1 0.47998
+19 25 19 0 1 0.594727
+19 25 20 0 1 0.694824
+19 25 21 0 1 0.783691
+19 25 22 0 1 0.861328
+19 25 23 0 1 0.925781
+19 25 24 0 1 0.979004
+19 25 25 0 1 1
+19 25 26 0 0.991699 1
+19 25 27 0 0.94873 1
+19 25 28 0 0.900879 1
+19 25 29 0 0.851562 1
+19 25 30 0 0.802246 1
+19 25 31 0 0.754883 1
+19 26 0 0 1 0
+19 26 1 0 1 0
+19 26 2 0 1 0
+19 26 3 0 1 0
+19 26 4 0 1 0
+19 26 5 0 1 0
+19 26 6 0 1 0
+19 26 7 0 1 0
+19 26 8 0 1 0
+19 26 9 0 1 0
+19 26 10 0 1 0
+19 26 11 0 1 0
+19 26 12 0 1 0
+19 26 13 0 1 0
+19 26 14 0 1 0
+19 26 15 0 1 0
+19 26 16 0 1 0
+19 26 17 0 1 0.280029
+19 26 18 0 1 0.431152
+19 26 19 0 1 0.549805
+19 26 20 0 1 0.651855
+19 26 21 0 1 0.742676
+19 26 22 0 1 0.822754
+19 26 23 0 1 0.890137
+19 26 24 0 1 0.946777
+19 26 25 0 1 0.999023
+19 26 26 0 1 1
+19 26 27 0 1 1
+19 26 28 0 0.961426 1
+19 26 29 0 0.912109 1
+19 26 30 0 0.861328 1
+19 26 31 0 0.811035 1
+19 27 0 0 1 0
+19 27 1 0 1 0
+19 27 2 0 1 0
+19 27 3 0 1 0
+19 27 4 0 1 0
+19 27 5 0 1 0
+19 27 6 0 1 0
+19 27 7 0 1 0
+19 27 8 0 1 0
+19 27 9 0 1 0
+19 27 10 0 1 0
+19 27 11 0 1 0
+19 27 12 0 1 0
+19 27 13 0 1 0
+19 27 14 0 1 0
+19 27 15 0 1 0
+19 27 16 0 1 0
+19 27 17 0 1 0.19165
+19 27 18 0 1 0.375
+19 27 19 0 1 0.5
+19 27 20 0 1 0.604004
+19 27 21 0 1 0.696777
+19 27 22 0 1 0.778809
+19 27 23 0 1 0.848633
+19 27 24 0 1 0.908691
+19 27 25 0 1 0.964355
+19 27 26 0 1 1
+19 27 27 0 1 1
+19 27 28 0 1 1
+19 27 29 0 0.970703 1
+19 27 30 0 0.919922 1
+19 27 31 0 0.867676 1
+19 28 0 0 1 0
+19 28 1 0 1 0
+19 28 2 0 1 0
+19 28 3 0 1 0
+19 28 4 0 1 0
+19 28 5 0 1 0
+19 28 6 0 1 0
+19 28 7 0 1 0
+19 28 8 0 1 0
+19 28 9 0 1 0
+19 28 10 0 1 0
+19 28 11 0 1 0
+19 28 12 0 1 0
+19 28 13 0 1 0
+19 28 14 0 1 0
+19 28 15 0 1 0
+19 28 16 0 1 0
+19 28 17 0 1 0
+19 28 18 0 1 0.309082
+19 28 19 0 1 0.444824
+19 28 20 0 1 0.552246
+19 28 21 0 1 0.646484
+19 28 22 0 1 0.72998
+19 28 23 0 1 0.802246
+19 28 24 0 1 0.864258
+19 28 25 0 1 0.92334
+19 28 26 0 1 0.978027
+19 28 27 0 1 1
+19 28 28 0 1 1
+19 28 29 0 1 1
+19 28 30 0 0.976074 1
+19 28 31 0 0.924316 1
+19 29 0 0 1 0
+19 29 1 0 1 0
+19 29 2 0 1 0
+19 29 3 0 1 0
+19 29 4 0 1 0
+19 29 5 0 1 0
+19 29 6 0 1 0
+19 29 7 0 1 0
+19 29 8 0 1 0
+19 29 9 0 1 0
+19 29 10 0 1 0
+19 29 11 0 1 0
+19 29 12 0 1 0
+19 29 13 0 1 0
+19 29 14 0 1 0
+19 29 15 0 1 0
+19 29 16 0 1 0
+19 29 17 0 1 0
+19 29 18 0 1 0.2229
+19 29 19 0 1 0.383057
+19 29 20 0 1 0.495605
+19 29 21 0 1 0.591797
+19 29 22 0 1 0.676758
+19 29 23 0 1 0.75
+19 29 24 0 1 0.813965
+19 29 25 0 1 0.875488
+19 29 26 0 1 0.934082
+19 29 27 0 1 0.987793
+19 29 28 0 1 1
+19 29 29 0 1 1
+19 29 30 0 1 1
+19 29 31 0 0.980469 1
+19 30 0 0 1 0
+19 30 1 0 1 0
+19 30 2 0 1 0
+19 30 3 0 1 0
+19 30 4 0 1 0
+19 30 5 0 1 0
+19 30 6 0 1 0
+19 30 7 0 1 0
+19 30 8 0 1 0
+19 30 9 0 1 0
+19 30 10 0 1 0
+19 30 11 0 1 0
+19 30 12 0 1 0
+19 30 13 0 1 0
+19 30 14 0 1 0
+19 30 15 0 1 0
+19 30 16 0 1 0
+19 30 17 0 1 0
+19 30 18 0 1 0
+19 30 19 0 1 0.311279
+19 30 20 0 1 0.433838
+19 30 21 0 1 0.532715
+19 30 22 0 1 0.618652
+19 30 23 0 1 0.693359
+19 30 24 0 1 0.758789
+19 30 25 0 1 0.822266
+19 30 26 0 1 0.883301
+19 30 27 0 1 0.941406
+19 30 28 0 1 0.994141
+19 30 29 0 1 1
+19 30 30 0 1 1
+19 30 31 0 1 1
+19 31 0 0 1 0
+19 31 1 0 1 0
+19 31 2 0 1 0
+19 31 3 0 1 0
+19 31 4 0 1 0
+19 31 5 0 1 0
+19 31 6 0 1 0
+19 31 7 0 1 0
+19 31 8 0 1 0
+19 31 9 0 1 0
+19 31 10 0 1 0
+19 31 11 0 1 0
+19 31 12 0 1 0
+19 31 13 0 1 0
+19 31 14 0 1 0
+19 31 15 0 1 0
+19 31 16 0 1 0
+19 31 17 0 1 0
+19 31 18 0 1 0
+19 31 19 0 1 0.219238
+19 31 20 0 1 0.365234
+19 31 21 0 1 0.469482
+19 31 22 0 1 0.557129
+19 31 23 0 1 0.632324
+19 31 24 0 1 0.69873
+19 31 25 0 1 0.763672
+19 31 26 0 1 0.827148
+19 31 27 0 1 0.888672
+19 31 28 0 1 0.946289
+19 31 29 0 1 0.999023
+19 31 30 0 1 1
+19 31 31 0 1 1
+20 0 0 1 0 0
+20 0 1 1 0 0
+20 0 2 1 0 0
+20 0 3 1 0 0
+20 0 4 1 0 0
+20 0 5 1 0 0
+20 0 6 1 0 0
+20 0 7 1 0 0
+20 0 8 1 0 0
+20 0 9 1 0 0
+20 0 10 1 0 0
+20 0 11 1 0 0
+20 0 12 1 0 0
+20 0 13 1 0 0
+20 0 14 1 0 0.163452
+20 0 15 1 0 0.31543
+20 0 16 1 0 0.44043
+20 0 17 1 0 0.576172
+20 0 18 1 0 0.709473
+20 0 19 1 0.153198 0.81543
+20 0 20 1 0.188721 0.894531
+20 0 21 1 0.212524 0.958984
+20 0 22 0.934082 0.22937 1
+20 0 23 0.860352 0.23999 1
+20 0 24 0.786621 0.246704 1
+20 0 25 0.709961 0.251465 1
+20 0 26 0.629883 0.254883 1
+20 0 27 0.547363 0.257568 1
+20 0 28 0.459717 0.259766 1
+20 0 29 0.360352 0.262207 1
+20 0 30 0.224609 0.264404 1
+20 0 31 0 0.26709 1
+20 1 0 1 0 0
+20 1 1 1 0 0
+20 1 2 1 0 0
+20 1 3 1 0 0
+20 1 4 1 0 0
+20 1 5 1 0 0
+20 1 6 1 0 0
+20 1 7 1 0 0
+20 1 8 1 0 0
+20 1 9 1 0 0
+20 1 10 1 0 0
+20 1 11 1 0 0
+20 1 12 1 0 0
+20 1 13 1 0 0
+20 1 14 1 0 0.163452
+20 1 15 1 0 0.31543
+20 1 16 1 0 0.44043
+20 1 17 1 0 0.576172
+20 1 18 1 0 0.709473
+20 1 19 1 0.15332 0.81543
+20 1 20 1 0.188843 0.894531
+20 1 21 1 0.212646 0.958984
+20 1 22 0.934082 0.22937 1
+20 1 23 0.860352 0.23999 1
+20 1 24 0.786621 0.246826 1
+20 1 25 0.709961 0.251465 1
+20 1 26 0.629883 0.254883 1
+20 1 27 0.547363 0.257568 1
+20 1 28 0.459717 0.259766 1
+20 1 29 0.360352 0.262207 1
+20 1 30 0.224609 0.264404 1
+20 1 31 0 0.26709 1
+20 2 0 1 0 0
+20 2 1 1 0 0
+20 2 2 1 0 0
+20 2 3 1 0 0
+20 2 4 1 0 0
+20 2 5 1 0 0
+20 2 6 1 0 0
+20 2 7 1 0 0
+20 2 8 1 0 0
+20 2 9 1 0 0
+20 2 10 1 0 0
+20 2 11 1 0 0
+20 2 12 1 0 0
+20 2 13 1 0 0
+20 2 14 1 0 0.163452
+20 2 15 1 0 0.31543
+20 2 16 1 0 0.44043
+20 2 17 1 0 0.576172
+20 2 18 1 0 0.708984
+20 2 19 1 0.153442 0.81543
+20 2 20 1 0.188843 0.894531
+20 2 21 1 0.212646 0.958984
+20 2 22 0.934082 0.229492 1
+20 2 23 0.860352 0.240112 1
+20 2 24 0.786621 0.246826 1
+20 2 25 0.709961 0.251465 1
+20 2 26 0.629883 0.254883 1
+20 2 27 0.547363 0.257568 1
+20 2 28 0.459717 0.259766 1
+20 2 29 0.360352 0.262207 1
+20 2 30 0.224487 0.264404 1
+20 2 31 0 0.26709 1
+20 3 0 1 0 0
+20 3 1 1 0 0
+20 3 2 1 0 0
+20 3 3 1 0 0
+20 3 4 1 0 0
+20 3 5 1 0 0
+20 3 6 1 0 0
+20 3 7 1 0 0
+20 3 8 1 0 0
+20 3 9 1 0 0
+20 3 10 1 0 0
+20 3 11 1 0 0
+20 3 12 1 0 0
+20 3 13 1 0 0
+20 3 14 1 0 0.163452
+20 3 15 1 0 0.31543
+20 3 16 1 0 0.44043
+20 3 17 1 0 0.576172
+20 3 18 1 0 0.708984
+20 3 19 1 0.153564 0.81543
+20 3 20 1 0.189087 0.894531
+20 3 21 1 0.212769 0.958984
+20 3 22 0.934082 0.229614 1
+20 3 23 0.860352 0.240234 1
+20 3 24 0.786621 0.246948 1
+20 3 25 0.709961 0.251709 1
+20 3 26 0.629883 0.255127 1
+20 3 27 0.547363 0.257568 1
+20 3 28 0.459717 0.26001 1
+20 3 29 0.360352 0.262207 1
+20 3 30 0.224487 0.264648 1
+20 3 31 0 0.26709 1
+20 4 0 1 0 0
+20 4 1 1 0 0
+20 4 2 1 0 0
+20 4 3 1 0 0
+20 4 4 1 0 0
+20 4 5 1 0 0
+20 4 6 1 0 0
+20 4 7 1 0 0
+20 4 8 1 0 0
+20 4 9 1 0 0
+20 4 10 1 0 0
+20 4 11 1 0 0
+20 4 12 1 0 0
+20 4 13 1 0 0
+20 4 14 1 0 0.163452
+20 4 15 1 0 0.31543
+20 4 16 1 0 0.44043
+20 4 17 1 0 0.576172
+20 4 18 1 0 0.708984
+20 4 19 1 0.154053 0.81543
+20 4 20 1 0.189331 0.894531
+20 4 21 1 0.213013 0.958984
+20 4 22 0.934082 0.229736 1
+20 4 23 0.860352 0.240356 1
+20 4 24 0.786621 0.24707 1
+20 4 25 0.709961 0.251709 1
+20 4 26 0.629883 0.255127 1
+20 4 27 0.547363 0.257812 1
+20 4 28 0.459717 0.26001 1
+20 4 29 0.360352 0.262207 1
+20 4 30 0.224487 0.264648 1
+20 4 31 0 0.26709 1
+20 5 0 1 0 0
+20 5 1 1 0 0
+20 5 2 1 0 0
+20 5 3 1 0 0
+20 5 4 1 0 0
+20 5 5 1 0 0
+20 5 6 1 0 0
+20 5 7 1 0 0
+20 5 8 1 0 0
+20 5 9 1 0 0
+20 5 10 1 0 0
+20 5 11 1 0 0
+20 5 12 1 0 0
+20 5 13 1 0 0
+20 5 14 1 0 0.16333
+20 5 15 1 0 0.31543
+20 5 16 1 0 0.44043
+20 5 17 1 0 0.576172
+20 5 18 1 0 0.708984
+20 5 19 1 0.154907 0.81543
+20 5 20 1 0.189941 0.894531
+20 5 21 1 0.213501 0.958984
+20 5 22 0.934082 0.230103 1
+20 5 23 0.859863 0.240601 1
+20 5 24 0.786621 0.247314 1
+20 5 25 0.709961 0.251953 1
+20 5 26 0.629883 0.255371 1
+20 5 27 0.547363 0.257812 1
+20 5 28 0.459717 0.26001 1
+20 5 29 0.360352 0.262451 1
+20 5 30 0.224365 0.264648 1
+20 5 31 0 0.267334 1
+20 6 0 1 0 0
+20 6 1 1 0 0
+20 6 2 1 0 0
+20 6 3 1 0 0
+20 6 4 1 0 0
+20 6 5 1 0 0
+20 6 6 1 0 0
+20 6 7 1 0 0
+20 6 8 1 0 0
+20 6 9 1 0 0
+20 6 10 1 0 0
+20 6 11 1 0 0
+20 6 12 1 0 0
+20 6 13 1 0 0
+20 6 14 1 0 0.163208
+20 6 15 1 0 0.31543
+20 6 16 1 0 0.44043
+20 6 17 1 0 0.576172
+20 6 18 1 0 0.708984
+20 6 19 1 0.156494 0.81543
+20 6 20 1 0.191162 0.894531
+20 6 21 1 0.214355 0.958984
+20 6 22 0.934082 0.230835 1
+20 6 23 0.859863 0.241211 1
+20 6 24 0.786621 0.247803 1
+20 6 25 0.709961 0.252441 1
+20 6 26 0.629883 0.255615 1
+20 6 27 0.547363 0.258057 1
+20 6 28 0.459717 0.260254 1
+20 6 29 0.360107 0.262451 1
+20 6 30 0.224243 0.264893 1
+20 6 31 0 0.267334 1
+20 7 0 1 0 0
+20 7 1 1 0 0
+20 7 2 1 0 0
+20 7 3 1 0 0
+20 7 4 1 0 0
+20 7 5 1 0 0
+20 7 6 1 0 0
+20 7 7 1 0 0
+20 7 8 1 0 0
+20 7 9 1 0 0
+20 7 10 1 0 0
+20 7 11 1 0 0
+20 7 12 1 0 0
+20 7 13 1 0 0
+20 7 14 1 0 0.162964
+20 7 15 1 0 0.31543
+20 7 16 1 0 0.44043
+20 7 17 1 0 0.576172
+20 7 18 1 0 0.708984
+20 7 19 1 0.159546 0.81543
+20 7 20 1 0.193359 0.894531
+20 7 21 1 0.216187 0.958984
+20 7 22 0.934082 0.2323 1
+20 7 23 0.859863 0.242432 1
+20 7 24 0.786621 0.248779 1
+20 7 25 0.709473 0.253174 1
+20 7 26 0.629883 0.256348 1
+20 7 27 0.546875 0.258789 1
+20 7 28 0.459473 0.260742 1
+20 7 29 0.360107 0.262939 1
+20 7 30 0.223999 0.265137 1
+20 7 31 0 0.267822 1
+20 8 0 1 0 0
+20 8 1 1 0 0
+20 8 2 1 0 0
+20 8 3 1 0 0
+20 8 4 1 0 0
+20 8 5 1 0 0
+20 8 6 1 0 0
+20 8 7 1 0 0
+20 8 8 1 0 0
+20 8 9 1 0 0
+20 8 10 1 0 0
+20 8 11 1 0 0
+20 8 12 1 0 0
+20 8 13 1 0 0
+20 8 14 1 0 0.162598
+20 8 15 1 0 0.314941
+20 8 16 1 0 0.440186
+20 8 17 1 0 0.575684
+20 8 18 1 0 0.708984
+20 8 19 1 0.165283 0.81543
+20 8 20 1 0.19751 0.894531
+20 8 21 1 0.219482 0.958984
+20 8 22 0.933594 0.234985 1
+20 8 23 0.859863 0.244629 1
+20 8 24 0.786133 0.250732 1
+20 8 25 0.709473 0.254639 1
+20 8 26 0.629395 0.257568 1
+20 8 27 0.546875 0.259766 1
+20 8 28 0.459229 0.261719 1
+20 8 29 0.359619 0.263672 1
+20 8 30 0.223389 0.265869 1
+20 8 31 0 0.268311 1
+20 9 0 1 0 0
+20 9 1 1 0 0
+20 9 2 1 0 0
+20 9 3 1 0 0
+20 9 4 1 0 0
+20 9 5 1 0 0
+20 9 6 1 0 0
+20 9 7 1 0 0
+20 9 8 1 0 0
+20 9 9 1 0 0
+20 9 10 1 0 0
+20 9 11 1 0 0
+20 9 12 1 0 0
+20 9 13 1 0 0
+20 9 14 1 0 0.161865
+20 9 15 1 0 0.314453
+20 9 16 1 0 0.439697
+20 9 17 1 0 0.575195
+20 9 18 1 0 0.708496
+20 9 19 1 0.175537 0.81543
+20 9 20 1 0.2052 0.894531
+20 9 21 1 0.225708 0.958496
+20 9 22 0.933105 0.23999 1
+20 9 23 0.859375 0.248779 1
+20 9 24 0.785645 0.25415 1
+20 9 25 0.708984 0.257812 1
+20 9 26 0.628906 0.260254 1
+20 9 27 0.546387 0.261963 1
+20 9 28 0.45874 0.263672 1
+20 9 29 0.359131 0.265381 1
+20 9 30 0.22229 0.26709 1
+20 9 31 0 0.269287 1
+20 10 0 1 0 0
+20 10 1 1 0 0
+20 10 2 1 0 0
+20 10 3 1 0 0
+20 10 4 1 0 0
+20 10 5 1 0 0
+20 10 6 1 0 0
+20 10 7 1 0 0
+20 10 8 1 0 0
+20 10 9 1 0 0
+20 10 10 1 0 0
+20 10 11 1 0 0
+20 10 12 1 0 0
+20 10 13 1 0 0
+20 10 14 1 0 0.160522
+20 10 15 1 0 0.313477
+20 10 16 1 0 0.439209
+20 10 17 1 0 0.574707
+20 10 18 1 0 0.708496
+20 10 19 1 0.192261 0.814941
+20 10 20 1 0.218262 0.894531
+20 10 21 1 0.236328 0.958496
+20 10 22 0.932617 0.248779 1
+20 10 23 0.858398 0.256104 1
+20 10 24 0.785156 0.260498 1
+20 10 25 0.708008 0.262939 1
+20 10 26 0.628418 0.264648 1
+20 10 27 0.54541 0.265869 1
+20 10 28 0.457764 0.266846 1
+20 10 29 0.35791 0.268066 1
+20 10 30 0.220337 0.269531 1
+20 10 31 0 0.271484 1
+20 11 0 1 0 0
+20 11 1 1 0 0
+20 11 2 1 0 0
+20 11 3 1 0 0
+20 11 4 1 0 0
+20 11 5 1 0 0
+20 11 6 1 0 0
+20 11 7 1 0 0
+20 11 8 1 0 0
+20 11 9 1 0 0
+20 11 10 1 0 0
+20 11 11 1 0 0
+20 11 12 1 0 0
+20 11 13 1 0 0
+20 11 14 1 0 0.158325
+20 11 15 1 0 0.311768
+20 11 16 1 0 0.438232
+20 11 17 1 0 0.573242
+20 11 18 1 0.118652 0.70752
+20 11 19 1 0.217529 0.814941
+20 11 20 1 0.238892 0.894043
+20 11 21 1 0.253662 0.958496
+20 11 22 0.931152 0.263184 1
+20 11 23 0.856934 0.268555 1
+20 11 24 0.783691 0.270996 1
+20 11 25 0.706543 0.271973 1
+20 11 26 0.626953 0.272217 1
+20 11 27 0.543945 0.272217 1
+20 11 28 0.456055 0.272217 1
+20 11 29 0.355957 0.272705 1
+20 11 30 0.216919 0.273438 1
+20 11 31 0 0.274902 1
+20 12 0 1 0 0
+20 12 1 1 0 0
+20 12 2 1 0 0
+20 12 3 1 0 0
+20 12 4 1 0 0
+20 12 5 1 0 0
+20 12 6 1 0 0
+20 12 7 1 0 0
+20 12 8 1 0 0
+20 12 9 1 0 0
+20 12 10 1 0 0
+20 12 11 1 0 0
+20 12 12 1 0 0
+20 12 13 1 0 0
+20 12 14 1 0 0.155273
+20 12 15 1 0 0.309326
+20 12 16 1 0 0.436768
+20 12 17 1 0 0.571289
+20 12 18 1 0.181885 0.706055
+20 12 19 1 0.253174 0.813965
+20 12 20 1 0.269287 0.894043
+20 12 21 0.997559 0.279785 0.958496
+20 12 22 0.928223 0.285645 1
+20 12 23 0.854004 0.287842 1
+20 12 24 0.780762 0.287598 1
+20 12 25 0.704102 0.286377 1
+20 12 26 0.624023 0.284668 1
+20 12 27 0.541504 0.282715 1
+20 12 28 0.453125 0.28125 1
+20 12 29 0.352295 0.280518 1
+20 12 30 0.210693 0.280273 1
+20 12 31 0 0.280518 1
+20 13 0 1 0 0
+20 13 1 1 0 0
+20 13 2 1 0 0
+20 13 3 1 0 0
+20 13 4 1 0 0
+20 13 5 1 0 0
+20 13 6 1 0 0
+20 13 7 1 0 0
+20 13 8 1 0 0
+20 13 9 1 0 0
+20 13 10 1 0 0
+20 13 11 1 0 0
+20 13 12 1 0 0
+20 13 13 1 0 0
+20 13 14 1 0 0.151855
+20 13 15 1 0 0.305908
+20 13 16 1 0 0.43457
+20 13 17 1 0.121643 0.567383
+20 13 18 1 0.245117 0.703613
+20 13 19 1 0.299561 0.812988
+20 13 20 1 0.310547 0.893066
+20 13 21 0.993164 0.316406 0.958008
+20 13 22 0.924316 0.318115 1
+20 13 23 0.850098 0.315918 1
+20 13 24 0.776367 0.3125 1
+20 13 25 0.699707 0.308105 1
+20 13 26 0.620117 0.303467 1
+20 13 27 0.537109 0.299072 1
+20 13 28 0.448486 0.29541 1
+20 13 29 0.346436 0.292725 1
+20 13 30 0.199829 0.290771 1
+20 13 31 0 0.289795 1
+20 14 0 1 0.217407 0
+20 14 1 1 0.217407 0
+20 14 2 1 0.217529 0
+20 14 3 1 0.217529 0
+20 14 4 1 0.217529 0
+20 14 5 1 0.217529 0
+20 14 6 1 0.217651 0
+20 14 7 1 0.217773 0
+20 14 8 1 0.21814 0
+20 14 9 1 0.21875 0
+20 14 10 1 0.219727 0
+20 14 11 1 0.22168 0
+20 14 12 1 0.224731 0
+20 14 13 1 0.222534 0
+20 14 14 1 0.216064 0.150757
+20 14 15 1 0.209106 0.302979
+20 14 16 1 0.2146 0.432861
+20 14 17 1 0.241577 0.561523
+20 14 18 1 0.313477 0.699219
+20 14 19 1 0.357422 0.811035
+20 14 20 1 0.364014 0.89209
+20 14 21 0.986328 0.36499 0.957031
+20 14 22 0.916992 0.361572 1
+20 14 23 0.842773 0.354736 1
+20 14 24 0.769531 0.346924 1
+20 14 25 0.692871 0.338623 1
+20 14 26 0.612793 0.330322 1
+20 14 27 0.529785 0.322754 1
+20 14 28 0.440674 0.316162 1
+20 14 29 0.336914 0.310791 1
+20 14 30 0.180664 0.306641 1
+20 14 31 0 0.303467 1
+20 15 0 1 0.336426 0
+20 15 1 1 0.336426 0
+20 15 2 1 0.336426 0
+20 15 3 1 0.336426 0
+20 15 4 1 0.336426 0
+20 15 5 1 0.33667 0
+20 15 6 1 0.33667 0
+20 15 7 1 0.33667 0
+20 15 8 1 0.336914 0
+20 15 9 1 0.337158 0
+20 15 10 1 0.337891 0
+20 15 11 1 0.338867 0
+20 15 12 1 0.34082 0
+20 15 13 1 0.338623 0
+20 15 14 1 0.335205 0.157715
+20 15 15 1 0.330322 0.303223
+20 15 16 1 0.328369 0.427246
+20 15 17 1 0.3396 0.553711
+20 15 18 1 0.387695 0.691406
+20 15 19 1 0.426025 0.808105
+20 15 20 1 0.428711 0.890137
+20 15 21 0.975586 0.425293 0.955566
+20 15 22 0.90625 0.41626 0.999512
+20 15 23 0.832031 0.404297 1
+20 15 24 0.758789 0.391846 1
+20 15 25 0.682129 0.378906 1
+20 15 26 0.602051 0.366455 1
+20 15 27 0.518555 0.354736 1
+20 15 28 0.428467 0.344482 1
+20 15 29 0.321289 0.335938 1
+20 15 30 0.143799 0.328857 1
+20 15 31 0 0.323242 1
+20 16 0 1 0.449951 0
+20 16 1 1 0.449951 0
+20 16 2 1 0.449951 0
+20 16 3 1 0.449951 0
+20 16 4 1 0.449951 0
+20 16 5 1 0.449951 0
+20 16 6 1 0.449951 0
+20 16 7 1 0.450195 0
+20 16 8 1 0.450195 0
+20 16 9 1 0.450439 0
+20 16 10 1 0.450928 0
+20 16 11 1 0.45166 0
+20 16 12 1 0.452881 0
+20 16 13 1 0.452393 0
+20 16 14 1 0.450439 0.177856
+20 16 15 1 0.446533 0.312012
+20 16 16 1 0.440674 0.426758
+20 16 17 1 0.442627 0.547363
+20 16 18 1 0.468262 0.678711
+20 16 19 1 0.504395 0.802246
+20 16 20 1 0.504395 0.88623
+20 16 21 0.958008 0.496582 0.952637
+20 16 22 0.888672 0.482178 0.99707
+20 16 23 0.814941 0.464844 1
+20 16 24 0.741699 0.447021 1
+20 16 25 0.665527 0.429199 1
+20 16 26 0.585938 0.412109 1
+20 16 27 0.501465 0.395996 1
+20 16 28 0.40918 0.381836 1
+20 16 29 0.295898 0.369385 1
+20 16 30 0 0.358887 1
+20 16 31 0 0.349854 1
+20 17 0 1 0.565918 0
+20 17 1 1 0.565918 0
+20 17 2 1 0.565918 0
+20 17 3 1 0.565918 0
+20 17 4 1 0.565918 0
+20 17 5 1 0.565918 0
+20 17 6 1 0.565918 0
+20 17 7 1 0.565918 0
+20 17 8 1 0.565918 0
+20 17 9 1 0.566406 0
+20 17 10 1 0.566406 0
+20 17 11 1 0.567383 0
+20 17 12 1 0.567871 0
+20 17 13 1 0.568359 0
+20 17 14 1 0.567871 0.203613
+20 17 15 1 0.56543 0.329346
+20 17 16 1 0.55957 0.438477
+20 17 17 1 0.550293 0.543457
+20 17 18 1 0.554199 0.661133
+20 17 19 1 0.587891 0.791992
+20 17 20 0.987305 0.587891 0.879883
+20 17 21 0.932617 0.575684 0.947754
+20 17 22 0.863281 0.555664 0.991699
+20 17 23 0.789551 0.532715 1
+20 17 24 0.717285 0.510254 1
+20 17 25 0.641602 0.487549 1
+20 17 26 0.562012 0.46582 1
+20 17 27 0.476318 0.445312 1
+20 17 28 0.380371 0.426758 1
+20 17 29 0.253906 0.4104 1
+20 17 30 0 0.395996 1
+20 17 31 0 0.383301 1
+20 18 0 1 0.680176 0
+20 18 1 1 0.680176 0
+20 18 2 1 0.680176 0
+20 18 3 1 0.680176 0
+20 18 4 1 0.680176 0
+20 18 5 1 0.680176 0
+20 18 6 1 0.680176 0
+20 18 7 1 0.680176 0
+20 18 8 1 0.680176 0
+20 18 9 1 0.680176 0
+20 18 10 1 0.680664 0
+20 18 11 1 0.681152 0
+20 18 12 1 0.681641 0
+20 18 13 1 0.682617 0
+20 18 14 1 0.682617 0.213379
+20 18 15 1 0.682617 0.342041
+20 18 16 1 0.679688 0.453857
+20 18 17 1 0.670898 0.557129
+20 18 18 0.984863 0.655762 0.65332
+20 18 19 0.976562 0.668945 0.771973
+20 18 20 0.950195 0.674316 0.870117
+20 18 21 0.895996 0.658203 0.938477
+20 18 22 0.82666 0.632812 0.983398
+20 18 23 0.753906 0.60498 1
+20 18 24 0.683105 0.578613 1
+20 18 25 0.608398 0.551758 1
+20 18 26 0.52832 0.525879 1
+20 18 27 0.44043 0.500977 1
+20 18 28 0.336426 0.478271 1
+20 18 29 0.175293 0.457764 1
+20 18 30 0 0.439209 1
+20 18 31 0 0.422852 1
+20 19 0 1 0.786133 0
+20 19 1 1 0.786133 0
+20 19 2 1 0.786133 0
+20 19 3 1 0.786133 0
+20 19 4 1 0.786133 0
+20 19 5 1 0.786133 0
+20 19 6 1 0.786133 0
+20 19 7 1 0.786133 0
+20 19 8 1 0.786133 0
+20 19 9 1 0.786621 0
+20 19 10 1 0.786621 0
+20 19 11 1 0.786621 0
+20 19 12 1 0.787598 0
+20 19 13 1 0.788086 0
+20 19 14 1 0.788086 0.180664
+20 19 15 1 0.788086 0.330811
+20 19 16 1 0.787598 0.452148
+20 19 17 1 0.783691 0.564453
+20 19 18 0.969727 0.773926 0.666504
+20 19 19 0.922363 0.752441 0.751953
+20 19 20 0.900879 0.758789 0.856445
+20 19 21 0.845703 0.73877 0.924805
+20 19 22 0.777832 0.709473 0.970703
+20 19 23 0.708008 0.678711 1
+20 19 24 0.63916 0.649414 1
+20 19 25 0.564941 0.619629 1
+20 19 26 0.483398 0.589844 1
+20 19 27 0.38916 0.561523 1
+20 19 28 0.266357 0.534668 1
+20 19 29 0 0.510254 1
+20 19 30 0 0.487305 1
+20 19 31 0 0.466309 1
+20 20 0 0.98877 0.878418 0
+20 20 1 0.98877 0.878418 0
+20 20 2 0.98877 0.878418 0
+20 20 3 0.98877 0.878418 0
+20 20 4 0.98877 0.878418 0
+20 20 5 0.98877 0.878418 0
+20 20 6 0.98877 0.878418 0
+20 20 7 0.98877 0.878418 0
+20 20 8 0.98877 0.878418 0
+20 20 9 0.98877 0.878906 0
+20 20 10 0.98877 0.878906 0
+20 20 11 0.98877 0.878906 0
+20 20 12 0.98877 0.879395 0
+20 20 13 0.98877 0.879883 0
+20 20 14 0.984863 0.880371 0
+20 20 15 0.977539 0.880371 0.292969
+20 20 16 0.966309 0.879395 0.427979
+20 20 17 0.948242 0.875977 0.547363
+20 20 18 0.921387 0.869141 0.657715
+20 20 19 0.885254 0.856934 0.755859
+20 20 20 0.837891 0.837891 0.837891
+20 20 21 0.782715 0.814453 0.906738
+20 20 22 0.71875 0.784668 0.958008
+20 20 23 0.651855 0.75293 0.994141
+20 20 24 0.583984 0.72168 1
+20 20 25 0.507812 0.688965 1
+20 20 26 0.42041 0.655762 1
+20 20 27 0.310547 0.623535 1
+20 20 28 0.0958862 0.591797 1
+20 20 29 0 0.5625 1
+20 20 30 0 0.535156 1
+20 20 31 0 0.509766 1
+20 21 0 0.905273 0.951172 0
+20 21 1 0.905273 0.951172 0
+20 21 2 0.905273 0.951172 0
+20 21 3 0.905273 0.951172 0
+20 21 4 0.905273 0.951172 0
+20 21 5 0.905273 0.951172 0
+20 21 6 0.905273 0.951172 0
+20 21 7 0.905273 0.951172 0
+20 21 8 0.905273 0.951172 0
+20 21 9 0.905273 0.95166 0
+20 21 10 0.905273 0.95166 0
+20 21 11 0.905273 0.95166 0
+20 21 12 0.904785 0.952148 0
+20 21 13 0.904785 0.952148 0
+20 21 14 0.901855 0.952637 0
+20 21 15 0.89502 0.953125 0.230957
+20 21 16 0.883301 0.952148 0.388916
+20 21 17 0.865234 0.94873 0.515625
+20 21 18 0.838379 0.94043 0.628418
+20 21 19 0.801758 0.926758 0.727539
+20 21 20 0.758301 0.910156 0.814453
+20 21 21 0.710938 0.894043 0.894043
+20 21 22 0.649902 0.865723 0.952637
+20 21 23 0.581543 0.831055 0.991211
+20 21 24 0.509766 0.796875 1
+20 21 25 0.426758 0.760742 1
+20 21 26 0.321777 0.723633 1
+20 21 27 0.137451 0.687012 1
+20 21 28 0 0.651367 1
+20 21 29 0 0.617188 1
+20 21 30 0 0.585938 1
+20 21 31 0 0.556152 1
+20 22 0 0.800293 1 0
+20 22 1 0.800293 1 0
+20 22 2 0.800293 1 0
+20 22 3 0.800293 1 0
+20 22 4 0.800293 1 0
+20 22 5 0.800293 1 0
+20 22 6 0.800293 1 0
+20 22 7 0.800293 1 0
+20 22 8 0.800293 1 0
+20 22 9 0.800293 1 0
+20 22 10 0.800293 1 0
+20 22 11 0.800293 1 0
+20 22 12 0.800293 1 0
+20 22 13 0.800293 1 0
+20 22 14 0.797852 1 0
+20 22 15 0.791016 1 0.125
+20 22 16 0.779297 1 0.339844
+20 22 17 0.761719 1 0.475342
+20 22 18 0.735352 0.99707 0.591797
+20 22 19 0.700684 0.986328 0.694824
+20 22 20 0.660645 0.974121 0.787109
+20 22 21 0.611816 0.958984 0.869629
+20 22 22 0.553223 0.938965 0.939453
+20 22 23 0.483887 0.910645 0.989258
+20 22 24 0.402588 0.875488 1
+20 22 25 0.293701 0.836426 1
+20 22 26 0 0.79541 1
+20 22 27 0 0.754395 1
+20 22 28 0 0.713867 1
+20 22 29 0 0.675293 1
+20 22 30 0 0.638672 1
+20 22 31 0 0.60498 1
+20 23 0 0.683594 1 0
+20 23 1 0.683594 1 0
+20 23 2 0.683594 1 0
+20 23 3 0.683594 1 0
+20 23 4 0.683594 1 0
+20 23 5 0.683594 1 0
+20 23 6 0.683594 1 0
+20 23 7 0.683594 1 0
+20 23 8 0.683594 1 0
+20 23 9 0.683594 1 0
+20 23 10 0.683594 1 0
+20 23 11 0.683594 1 0
+20 23 12 0.683594 1 0
+20 23 13 0.683105 1 0
+20 23 14 0.682617 1 0
+20 23 15 0.674805 1 0
+20 23 16 0.663086 1 0.283936
+20 23 17 0.644531 1 0.433105
+20 23 18 0.618164 1 0.554688
+20 23 19 0.583008 1 0.661621
+20 23 20 0.539551 1 0.756836
+20 23 21 0.484619 1 0.841797
+20 23 22 0.414551 0.995605 0.914551
+20 23 23 0.324707 0.973633 0.973633
+20 23 24 0.181641 0.945312 1
+20 23 25 0 0.908203 1
+20 23 26 0 0.865723 1
+20 23 27 0 0.820801 1
+20 23 28 0 0.776367 1
+20 23 29 0 0.733398 1
+20 23 30 0 0.692383 1
+20 23 31 0 0.653809 1
+20 24 0 0.549805 1 0
+20 24 1 0.549805 1 0
+20 24 2 0.549805 1 0
+20 24 3 0.549805 1 0
+20 24 4 0.549805 1 0
+20 24 5 0.549805 1 0
+20 24 6 0.549805 1 0
+20 24 7 0.549805 1 0
+20 24 8 0.549805 1 0
+20 24 9 0.549805 1 0
+20 24 10 0.549805 1 0
+20 24 11 0.549805 1 0
+20 24 12 0.549805 1 0
+20 24 13 0.549805 1 0
+20 24 14 0.549805 1 0
+20 24 15 0.541504 1 0
+20 24 16 0.527344 1 0.215942
+20 24 17 0.505371 1 0.389404
+20 24 18 0.474121 1 0.51709
+20 24 19 0.430908 1 0.627441
+20 24 20 0.37207 1 0.725098
+20 24 21 0.285156 1 0.812012
+20 24 22 0.0904541 1 0.887207
+20 24 23 0 1 0.949707
+20 24 24 0 1 1
+20 24 25 0 0.969238 1
+20 24 26 0 0.929199 1
+20 24 27 0 0.884277 1
+20 24 28 0 0.837402 1
+20 24 29 0 0.790527 1
+20 24 30 0 0.745117 1
+20 24 31 0 0.702148 1
+20 25 0 0.350342 1 0
+20 25 1 0.350342 1 0
+20 25 2 0.350342 1 0
+20 25 3 0.350342 1 0
+20 25 4 0.350342 1 0
+20 25 5 0.350342 1 0
+20 25 6 0.350342 1 0
+20 25 7 0.350342 1 0
+20 25 8 0.350342 1 0
+20 25 9 0.350342 1 0
+20 25 10 0.350342 1 0
+20 25 11 0.350586 1 0
+20 25 12 0.350586 1 0
+20 25 13 0.35083 1 0
+20 25 14 0.351318 1 0
+20 25 15 0.339844 1 0
+20 25 16 0.313965 1 0.0826416
+20 25 17 0.27124 1 0.338135
+20 25 18 0.193604 1 0.474609
+20 25 19 0 1 0.588379
+20 25 20 0 1 0.687988
+20 25 21 0 1 0.777344
+20 25 22 0 1 0.855469
+20 25 23 0 1 0.92041
+20 25 24 0 1 0.974609
+20 25 25 0 1 1
+20 25 26 0 0.989258 1
+20 25 27 0 0.946777 1
+20 25 28 0 0.899902 1
+20 25 29 0 0.850586 1
+20 25 30 0 0.802246 1
+20 25 31 0 0.755371 1
+20 26 0 0 1 0
+20 26 1 0 1 0
+20 26 2 0 1 0
+20 26 3 0 1 0
+20 26 4 0 1 0
+20 26 5 0 1 0
+20 26 6 0 1 0
+20 26 7 0 1 0
+20 26 8 0 1 0
+20 26 9 0 1 0
+20 26 10 0 1 0
+20 26 11 0 1 0
+20 26 12 0 1 0
+20 26 13 0 1 0
+20 26 14 0 1 0
+20 26 15 0 1 0
+20 26 16 0 1 0
+20 26 17 0 1 0.274658
+20 26 18 0 1 0.426514
+20 26 19 0 1 0.544922
+20 26 20 0 1 0.646484
+20 26 21 0 1 0.737793
+20 26 22 0 1 0.817871
+20 26 23 0 1 0.885742
+20 26 24 0 1 0.942871
+20 26 25 0 1 0.996094
+20 26 26 0 1 1
+20 26 27 0 1 1
+20 26 28 0 0.960938 1
+20 26 29 0 0.911621 1
+20 26 30 0 0.861328 1
+20 26 31 0 0.811523 1
+20 27 0 0 1 0
+20 27 1 0 1 0
+20 27 2 0 1 0
+20 27 3 0 1 0
+20 27 4 0 1 0
+20 27 5 0 1 0
+20 27 6 0 1 0
+20 27 7 0 1 0
+20 27 8 0 1 0
+20 27 9 0 1 0
+20 27 10 0 1 0
+20 27 11 0 1 0
+20 27 12 0 1 0
+20 27 13 0 1 0
+20 27 14 0 1 0
+20 27 15 0 1 0
+20 27 16 0 1 0
+20 27 17 0 1 0.184326
+20 27 18 0 1 0.371338
+20 27 19 0 1 0.496338
+20 27 20 0 1 0.600586
+20 27 21 0 1 0.692871
+20 27 22 0 1 0.774902
+20 27 23 0 1 0.845215
+20 27 24 0 1 0.905273
+20 27 25 0 1 0.961426
+20 27 26 0 1 1
+20 27 27 0 1 1
+20 27 28 0 1 1
+20 27 29 0 0.970703 1
+20 27 30 0 0.92041 1
+20 27 31 0 0.868652 1
+20 28 0 0 1 0
+20 28 1 0 1 0
+20 28 2 0 1 0
+20 28 3 0 1 0
+20 28 4 0 1 0
+20 28 5 0 1 0
+20 28 6 0 1 0
+20 28 7 0 1 0
+20 28 8 0 1 0
+20 28 9 0 1 0
+20 28 10 0 1 0
+20 28 11 0 1 0
+20 28 12 0 1 0
+20 28 13 0 1 0
+20 28 14 0 1 0
+20 28 15 0 1 0
+20 28 16 0 1 0
+20 28 17 0 1 0
+20 28 18 0 1 0.30542
+20 28 19 0 1 0.442139
+20 28 20 0 1 0.549805
+20 28 21 0 1 0.644043
+20 28 22 0 1 0.727539
+20 28 23 0 1 0.799316
+20 28 24 0 1 0.861816
+20 28 25 0 1 0.920898
+20 28 26 0 1 0.976562
+20 28 27 0 1 1
+20 28 28 0 1 1
+20 28 29 0 1 1
+20 28 30 0 0.976562 1
+20 28 31 0 0.925293 1
+20 29 0 0 1 0
+20 29 1 0 1 0
+20 29 2 0 1 0
+20 29 3 0 1 0
+20 29 4 0 1 0
+20 29 5 0 1 0
+20 29 6 0 1 0
+20 29 7 0 1 0
+20 29 8 0 1 0
+20 29 9 0 1 0
+20 29 10 0 1 0
+20 29 11 0 1 0
+20 29 12 0 1 0
+20 29 13 0 1 0
+20 29 14 0 1 0
+20 29 15 0 1 0
+20 29 16 0 1 0
+20 29 17 0 1 0
+20 29 18 0 1 0.218628
+20 29 19 0 1 0.380615
+20 29 20 0 1 0.493652
+20 29 21 0 1 0.589844
+20 29 22 0 1 0.674805
+20 29 23 0 1 0.748047
+20 29 24 0 1 0.812012
+20 29 25 0 1 0.874023
+20 29 26 0 1 0.932617
+20 29 27 0 1 0.986816
+20 29 28 0 1 1
+20 29 29 0 1 1
+20 29 30 0 1 1
+20 29 31 0 0.981445 1
+20 30 0 0 1 0
+20 30 1 0 1 0
+20 30 2 0 1 0
+20 30 3 0 1 0
+20 30 4 0 1 0
+20 30 5 0 1 0
+20 30 6 0 1 0
+20 30 7 0 1 0
+20 30 8 0 1 0
+20 30 9 0 1 0
+20 30 10 0 1 0
+20 30 11 0 1 0
+20 30 12 0 1 0
+20 30 13 0 1 0
+20 30 14 0 1 0
+20 30 15 0 1 0
+20 30 16 0 1 0
+20 30 17 0 1 0
+20 30 18 0 1 0
+20 30 19 0 1 0.309082
+20 30 20 0 1 0.432373
+20 30 21 0 1 0.531738
+20 30 22 0 1 0.617676
+20 30 23 0 1 0.691895
+20 30 24 0 1 0.757324
+20 30 25 0 1 0.820801
+20 30 26 0 1 0.882324
+20 30 27 0 1 0.94043
+20 30 28 0 1 0.993652
+20 30 29 0 1 1
+20 30 30 0 1 1
+20 30 31 0 1 1
+20 31 0 0 1 0
+20 31 1 0 1 0
+20 31 2 0 1 0
+20 31 3 0 1 0
+20 31 4 0 1 0
+20 31 5 0 1 0
+20 31 6 0 1 0
+20 31 7 0 1 0
+20 31 8 0 1 0
+20 31 9 0 1 0
+20 31 10 0 1 0
+20 31 11 0 1 0
+20 31 12 0 1 0
+20 31 13 0 1 0
+20 31 14 0 1 0
+20 31 15 0 1 0
+20 31 16 0 1 0
+20 31 17 0 1 0
+20 31 18 0 1 0
+20 31 19 0 1 0.216187
+20 31 20 0 1 0.364014
+20 31 21 0 1 0.46875
+20 31 22 0 1 0.556152
+20 31 23 0 1 0.631348
+20 31 24 0 1 0.697754
+20 31 25 0 1 0.762695
+20 31 26 0 1 0.82666
+20 31 27 0 1 0.888184
+20 31 28 0 1 0.946289
+20 31 29 0 1 0.999023
+20 31 30 0 1 1
+20 31 31 0 1 1
+21 0 0 1 0 0
+21 0 1 1 0 0
+21 0 2 1 0 0
+21 0 3 1 0 0
+21 0 4 1 0 0
+21 0 5 1 0 0
+21 0 6 1 0 0
+21 0 7 1 0 0
+21 0 8 1 0 0
+21 0 9 1 0 0
+21 0 10 1 0 0
+21 0 11 1 0 0
+21 0 12 1 0 0
+21 0 13 1 0 0
+21 0 14 1 0 0
+21 0 15 1 0 0.262451
+21 0 16 1 0 0.397705
+21 0 17 1 0 0.525879
+21 0 18 1 0 0.659668
+21 0 19 1 0 0.780762
+21 0 20 1 0.167847 0.871582
+21 0 21 1 0.19873 0.941895
+21 0 22 1 0.220093 0.997559
+21 0 23 0.993164 0.234741 1
+21 0 24 0.923828 0.244629 1
+21 0 25 0.848145 0.251709 1
+21 0 26 0.768066 0.256592 1
+21 0 27 0.685547 0.260254 1
+21 0 28 0.601562 0.262939 1
+21 0 29 0.51416 0.265137 1
+21 0 30 0.419434 0.26709 1
+21 0 31 0.303955 0.269531 1
+21 1 0 1 0 0
+21 1 1 1 0 0
+21 1 2 1 0 0
+21 1 3 1 0 0
+21 1 4 1 0 0
+21 1 5 1 0 0
+21 1 6 1 0 0
+21 1 7 1 0 0
+21 1 8 1 0 0
+21 1 9 1 0 0
+21 1 10 1 0 0
+21 1 11 1 0 0
+21 1 12 1 0 0
+21 1 13 1 0 0
+21 1 14 1 0 0
+21 1 15 1 0 0.262451
+21 1 16 1 0 0.397705
+21 1 17 1 0 0.525879
+21 1 18 1 0 0.659668
+21 1 19 1 0 0.780762
+21 1 20 1 0.167847 0.871582
+21 1 21 1 0.198853 0.941895
+21 1 22 1 0.220093 0.997559
+21 1 23 0.993164 0.234863 1
+21 1 24 0.923828 0.244629 1
+21 1 25 0.848145 0.251709 1
+21 1 26 0.768066 0.256592 1
+21 1 27 0.685547 0.260254 1
+21 1 28 0.601562 0.262939 1
+21 1 29 0.51416 0.265137 1
+21 1 30 0.419434 0.267334 1
+21 1 31 0.303955 0.269531 1
+21 2 0 1 0 0
+21 2 1 1 0 0
+21 2 2 1 0 0
+21 2 3 1 0 0
+21 2 4 1 0 0
+21 2 5 1 0 0
+21 2 6 1 0 0
+21 2 7 1 0 0
+21 2 8 1 0 0
+21 2 9 1 0 0
+21 2 10 1 0 0
+21 2 11 1 0 0
+21 2 12 1 0 0
+21 2 13 1 0 0
+21 2 14 1 0 0
+21 2 15 1 0 0.262451
+21 2 16 1 0 0.397705
+21 2 17 1 0 0.525879
+21 2 18 1 0 0.659668
+21 2 19 1 0 0.780762
+21 2 20 1 0.167969 0.871582
+21 2 21 1 0.198853 0.941895
+21 2 22 1 0.220215 0.997559
+21 2 23 0.992676 0.234863 1
+21 2 24 0.923828 0.244629 1
+21 2 25 0.848145 0.251709 1
+21 2 26 0.768066 0.256592 1
+21 2 27 0.685547 0.260254 1
+21 2 28 0.601562 0.262939 1
+21 2 29 0.51416 0.265137 1
+21 2 30 0.419434 0.267334 1
+21 2 31 0.303955 0.269531 1
+21 3 0 1 0 0
+21 3 1 1 0 0
+21 3 2 1 0 0
+21 3 3 1 0 0
+21 3 4 1 0 0
+21 3 5 1 0 0
+21 3 6 1 0 0
+21 3 7 1 0 0
+21 3 8 1 0 0
+21 3 9 1 0 0
+21 3 10 1 0 0
+21 3 11 1 0 0
+21 3 12 1 0 0
+21 3 13 1 0 0
+21 3 14 1 0 0
+21 3 15 1 0 0.262451
+21 3 16 1 0 0.397705
+21 3 17 1 0 0.525879
+21 3 18 1 0 0.659668
+21 3 19 1 0 0.780762
+21 3 20 1 0.168213 0.871582
+21 3 21 1 0.198975 0.941895
+21 3 22 1 0.220215 0.997559
+21 3 23 0.992676 0.234985 1
+21 3 24 0.923828 0.244751 1
+21 3 25 0.848145 0.251709 1
+21 3 26 0.768066 0.256836 1
+21 3 27 0.685547 0.260254 1
+21 3 28 0.601562 0.262939 1
+21 3 29 0.51416 0.265137 1
+21 3 30 0.419434 0.267334 1
+21 3 31 0.303955 0.269531 1
+21 4 0 1 0 0
+21 4 1 1 0 0
+21 4 2 1 0 0
+21 4 3 1 0 0
+21 4 4 1 0 0
+21 4 5 1 0 0
+21 4 6 1 0 0
+21 4 7 1 0 0
+21 4 8 1 0 0
+21 4 9 1 0 0
+21 4 10 1 0 0
+21 4 11 1 0 0
+21 4 12 1 0 0
+21 4 13 1 0 0
+21 4 14 1 0 0
+21 4 15 1 0 0.262451
+21 4 16 1 0 0.397705
+21 4 17 1 0 0.525879
+21 4 18 1 0 0.659668
+21 4 19 1 0 0.780762
+21 4 20 1 0.168457 0.871582
+21 4 21 1 0.199219 0.941895
+21 4 22 1 0.220459 0.997559
+21 4 23 0.992676 0.235107 1
+21 4 24 0.923828 0.244873 1
+21 4 25 0.848145 0.251953 1
+21 4 26 0.768066 0.256836 1
+21 4 27 0.685547 0.260254 1
+21 4 28 0.601562 0.262939 1
+21 4 29 0.51416 0.265137 1
+21 4 30 0.419189 0.267334 1
+21 4 31 0.303955 0.269531 1
+21 5 0 1 0 0
+21 5 1 1 0 0
+21 5 2 1 0 0
+21 5 3 1 0 0
+21 5 4 1 0 0
+21 5 5 1 0 0
+21 5 6 1 0 0
+21 5 7 1 0 0
+21 5 8 1 0 0
+21 5 9 1 0 0
+21 5 10 1 0 0
+21 5 11 1 0 0
+21 5 12 1 0 0
+21 5 13 1 0 0
+21 5 14 1 0 0
+21 5 15 1 0 0.262451
+21 5 16 1 0 0.397705
+21 5 17 1 0 0.525879
+21 5 18 1 0 0.659668
+21 5 19 1 0 0.780762
+21 5 20 1 0.169189 0.871582
+21 5 21 1 0.199829 0.941895
+21 5 22 1 0.220825 0.997559
+21 5 23 0.992676 0.235474 1
+21 5 24 0.923828 0.245117 1
+21 5 25 0.847656 0.252197 1
+21 5 26 0.768066 0.25708 1
+21 5 27 0.685547 0.260498 1
+21 5 28 0.601562 0.263184 1
+21 5 29 0.51416 0.265381 1
+21 5 30 0.419189 0.267334 1
+21 5 31 0.303711 0.269531 1
+21 6 0 1 0 0
+21 6 1 1 0 0
+21 6 2 1 0 0
+21 6 3 1 0 0
+21 6 4 1 0 0
+21 6 5 1 0 0
+21 6 6 1 0 0
+21 6 7 1 0 0
+21 6 8 1 0 0
+21 6 9 1 0 0
+21 6 10 1 0 0
+21 6 11 1 0 0
+21 6 12 1 0 0
+21 6 13 1 0 0
+21 6 14 1 0 0
+21 6 15 1 0 0.262207
+21 6 16 1 0 0.397705
+21 6 17 1 0 0.525879
+21 6 18 1 0 0.659668
+21 6 19 1 0 0.780762
+21 6 20 1 0.17041 0.871582
+21 6 21 1 0.200684 0.941895
+21 6 22 1 0.22168 0.997559
+21 6 23 0.992676 0.236084 1
+21 6 24 0.92334 0.245728 1
+21 6 25 0.847656 0.252441 1
+21 6 26 0.768066 0.257324 1
+21 6 27 0.685547 0.260742 1
+21 6 28 0.601562 0.263428 1
+21 6 29 0.51416 0.265625 1
+21 6 30 0.419189 0.267578 1
+21 6 31 0.303711 0.269775 1
+21 7 0 1 0 0
+21 7 1 1 0 0
+21 7 2 1 0 0
+21 7 3 1 0 0
+21 7 4 1 0 0
+21 7 5 1 0 0
+21 7 6 1 0 0
+21 7 7 1 0 0
+21 7 8 1 0 0
+21 7 9 1 0 0
+21 7 10 1 0 0
+21 7 11 1 0 0
+21 7 12 1 0 0
+21 7 13 1 0 0
+21 7 14 1 0 0
+21 7 15 1 0 0.262207
+21 7 16 1 0 0.397705
+21 7 17 1 0 0.525879
+21 7 18 1 0 0.659668
+21 7 19 1 0 0.780762
+21 7 20 1 0.172852 0.871582
+21 7 21 1 0.202515 0.941895
+21 7 22 1 0.223145 0.997559
+21 7 23 0.992676 0.237305 1
+21 7 24 0.92334 0.246704 1
+21 7 25 0.847656 0.253418 1
+21 7 26 0.768066 0.258057 1
+21 7 27 0.685547 0.261475 1
+21 7 28 0.601562 0.263916 1
+21 7 29 0.51416 0.265869 1
+21 7 30 0.419189 0.267822 1
+21 7 31 0.303467 0.27002 1
+21 8 0 1 0 0
+21 8 1 1 0 0
+21 8 2 1 0 0
+21 8 3 1 0 0
+21 8 4 1 0 0
+21 8 5 1 0 0
+21 8 6 1 0 0
+21 8 7 1 0 0
+21 8 8 1 0 0
+21 8 9 1 0 0
+21 8 10 1 0 0
+21 8 11 1 0 0
+21 8 12 1 0 0
+21 8 13 1 0 0
+21 8 14 1 0 0
+21 8 15 1 0 0.261719
+21 8 16 1 0 0.397461
+21 8 17 1 0 0.525391
+21 8 18 1 0 0.659668
+21 8 19 1 0 0.780273
+21 8 20 1 0.17749 0.871582
+21 8 21 1 0.206055 0.941895
+21 8 22 1 0.225952 0.997559
+21 8 23 0.992676 0.239624 1
+21 8 24 0.92334 0.248657 1
+21 8 25 0.847656 0.255127 1
+21 8 26 0.767578 0.259521 1
+21 8 27 0.685547 0.262695 1
+21 8 28 0.601074 0.264893 1
+21 8 29 0.513672 0.266846 1
+21 8 30 0.418945 0.268555 1
+21 8 31 0.303223 0.270508 1
+21 9 0 1 0 0
+21 9 1 1 0 0
+21 9 2 1 0 0
+21 9 3 1 0 0
+21 9 4 1 0 0
+21 9 5 1 0 0
+21 9 6 1 0 0
+21 9 7 1 0 0
+21 9 8 1 0 0
+21 9 9 1 0 0
+21 9 10 1 0 0
+21 9 11 1 0 0
+21 9 12 1 0 0
+21 9 13 1 0 0
+21 9 14 1 0 0
+21 9 15 1 0 0.26123
+21 9 16 1 0 0.397461
+21 9 17 1 0 0.525391
+21 9 18 1 0 0.65918
+21 9 19 1 0.0468445 0.780273
+21 9 20 1 0.185791 0.871582
+21 9 21 1 0.212524 0.941895
+21 9 22 1 0.231201 0.997559
+21 9 23 0.992188 0.244019 1
+21 9 24 0.922852 0.252441 1
+21 9 25 0.847168 0.258057 1
+21 9 26 0.76709 0.262207 1
+21 9 27 0.685059 0.264893 1
+21 9 28 0.601074 0.266602 1
+21 9 29 0.513184 0.268311 1
+21 9 30 0.418457 0.27002 1
+21 9 31 0.302734 0.271729 1
+21 10 0 1 0 0
+21 10 1 1 0 0
+21 10 2 1 0 0
+21 10 3 1 0 0
+21 10 4 1 0 0
+21 10 5 1 0 0
+21 10 6 1 0 0
+21 10 7 1 0 0
+21 10 8 1 0 0
+21 10 9 1 0 0
+21 10 10 1 0 0
+21 10 11 1 0 0
+21 10 12 1 0 0
+21 10 13 1 0 0
+21 10 14 1 0 0
+21 10 15 1 0 0.260254
+21 10 16 1 0 0.396973
+21 10 17 1 0 0.524414
+21 10 18 1 0 0.658691
+21 10 19 1 0.0999146 0.779785
+21 10 20 1 0.199829 0.871582
+21 10 21 1 0.223633 0.941895
+21 10 22 1 0.240356 0.99707
+21 10 23 0.991699 0.251709 1
+21 10 24 0.922363 0.258789 1
+21 10 25 0.84668 0.263672 1
+21 10 26 0.766602 0.266846 1
+21 10 27 0.684082 0.268799 1
+21 10 28 0.600098 0.27002 1
+21 10 29 0.512695 0.27124 1
+21 10 30 0.41748 0.272217 1
+21 10 31 0.301514 0.273682 1
+21 11 0 1 0 0
+21 11 1 1 0 0
+21 11 2 1 0 0
+21 11 3 1 0 0
+21 11 4 1 0 0
+21 11 5 1 0 0
+21 11 6 1 0 0
+21 11 7 1 0 0
+21 11 8 1 0 0
+21 11 9 1 0 0
+21 11 10 1 0 0
+21 11 11 1 0 0
+21 11 12 1 0 0
+21 11 13 1 0 0
+21 11 14 1 0 0
+21 11 15 1 0 0.258789
+21 11 16 1 0 0.39624
+21 11 17 1 0 0.523438
+21 11 18 1 0 0.657227
+21 11 19 1 0.14563 0.779297
+21 11 20 1 0.221558 0.871094
+21 11 21 1 0.241455 0.941895
+21 11 22 1 0.255371 0.99707
+21 11 23 0.990234 0.264404 1
+21 11 24 0.920898 0.269775 1
+21 11 25 0.845215 0.272949 1
+21 11 26 0.765625 0.274658 1
+21 11 27 0.683105 0.275391 1
+21 11 28 0.599121 0.275635 1
+21 11 29 0.51123 0.275879 1
+21 11 30 0.416016 0.276367 1
+21 11 31 0.299561 0.277344 1
+21 12 0 1 0 0
+21 12 1 1 0 0
+21 12 2 1 0 0
+21 12 3 1 0 0
+21 12 4 1 0 0
+21 12 5 1 0 0
+21 12 6 1 0 0
+21 12 7 1 0 0
+21 12 8 1 0 0
+21 12 9 1 0 0
+21 12 10 1 0 0
+21 12 11 1 0 0
+21 12 12 1 0 0
+21 12 13 1 0 0
+21 12 14 1 0 0
+21 12 15 1 0 0.256348
+21 12 16 1 0 0.395508
+21 12 17 1 0 0.521484
+21 12 18 1 0 0.655762
+21 12 19 1 0.194946 0.77832
+21 12 20 1 0.25293 0.870605
+21 12 21 1 0.268311 0.941406
+21 12 22 1 0.278564 0.99707
+21 12 23 0.988281 0.284424 1
+21 12 24 0.918945 0.287354 1
+21 12 25 0.843262 0.288086 1
+21 12 26 0.763184 0.287598 1
+21 12 27 0.681152 0.286377 1
+21 12 28 0.59668 0.284912 1
+21 12 29 0.509277 0.283936 1
+21 12 30 0.413574 0.283203 1
+21 12 31 0.296143 0.283203 1
+21 13 0 1 0 0
+21 13 1 1 0 0
+21 13 2 1 0 0
+21 13 3 1 0 0
+21 13 4 1 0 0
+21 13 5 1 0 0
+21 13 6 1 0 0
+21 13 7 1 0 0
+21 13 8 1 0 0
+21 13 9 1 0 0
+21 13 10 1 0 0
+21 13 11 1 0 0
+21 13 12 1 0 0
+21 13 13 1 0 0
+21 13 14 1 0 0
+21 13 15 1 0 0.25293
+21 13 16 1 0 0.393799
+21 13 17 1 0 0.518066
+21 13 18 1 0.122803 0.652344
+21 13 19 1 0.250244 0.776855
+21 13 20 1 0.294922 0.870117
+21 13 21 1 0.30542 0.940918
+21 13 22 1 0.311523 0.996582
+21 13 23 0.984863 0.313721 1
+21 13 24 0.915527 0.312988 1
+21 13 25 0.839844 0.310547 1
+21 13 26 0.759766 0.307129 1
+21 13 27 0.677734 0.303223 1
+21 13 28 0.593262 0.299561 1
+21 13 29 0.505371 0.296387 1
+21 13 30 0.409424 0.293945 1
+21 13 31 0.290283 0.292236 1
+21 14 0 1 0.151001 0
+21 14 1 1 0.151001 0
+21 14 2 1 0.151001 0
+21 14 3 1 0.151001 0
+21 14 4 1 0.151123 0
+21 14 5 1 0.151123 0
+21 14 6 1 0.151245 0
+21 14 7 1 0.151489 0
+21 14 8 1 0.151978 0
+21 14 9 1 0.152954 0
+21 14 10 1 0.154541 0
+21 14 11 1 0.157349 0
+21 14 12 1 0.161987 0
+21 14 13 1 0.164795 0
+21 14 14 1 0.157471 0
+21 14 15 1 0.144775 0.249756
+21 14 16 1 0.142456 0.388672
+21 14 17 1 0.1604 0.51416
+21 14 18 1 0.234619 0.646973
+21 14 19 1 0.313232 0.773926
+21 14 20 1 0.348389 0.868652
+21 14 21 1 0.354248 0.94043
+21 14 22 1 0.355713 0.996094
+21 14 23 0.979004 0.353271 1
+21 14 24 0.909668 0.348633 1
+21 14 25 0.833984 0.342041 1
+21 14 26 0.754395 0.334717 1
+21 14 27 0.671875 0.327393 1
+21 14 28 0.587891 0.320801 1
+21 14 29 0.499756 0.314697 1
+21 14 30 0.402832 0.310059 1
+21 14 31 0.280762 0.306152 1
+21 15 0 1 0.297852 0
+21 15 1 1 0.297852 0
+21 15 2 1 0.297852 0
+21 15 3 1 0.297852 0
+21 15 4 1 0.297852 0
+21 15 5 1 0.297852 0
+21 15 6 1 0.297852 0
+21 15 7 1 0.298096 0
+21 15 8 1 0.29834 0
+21 15 9 1 0.298584 0
+21 15 10 1 0.299316 0
+21 15 11 1 0.300537 0
+21 15 12 1 0.30249 0
+21 15 13 1 0.303467 0
+21 15 14 1 0.299072 0
+21 15 15 1 0.292725 0.249146
+21 15 16 1 0.287109 0.384033
+21 15 17 1 0.292969 0.509277
+21 15 18 1 0.325684 0.63916
+21 15 19 1 0.383545 0.768555
+21 15 20 1 0.412842 0.866699
+21 15 21 1 0.414307 0.938477
+21 15 22 1 0.411377 0.995117
+21 15 23 0.970215 0.404053 1
+21 15 24 0.900879 0.394775 1
+21 15 25 0.825195 0.383545 1
+21 15 26 0.745605 0.371826 1
+21 15 27 0.663574 0.360352 1
+21 15 28 0.579102 0.349854 1
+21 15 29 0.490479 0.340332 1
+21 15 30 0.39209 0.33252 1
+21 15 31 0.265137 0.326172 1
+21 16 0 1 0.416016 0
+21 16 1 1 0.416016 0
+21 16 2 1 0.416016 0
+21 16 3 1 0.416016 0
+21 16 4 1 0.416016 0
+21 16 5 1 0.416016 0
+21 16 6 1 0.416016 0
+21 16 7 1 0.41626 0
+21 16 8 1 0.41626 0
+21 16 9 1 0.416504 0
+21 16 10 1 0.416992 0
+21 16 11 1 0.417725 0
+21 16 12 1 0.418945 0
+21 16 13 1 0.419434 0
+21 16 14 1 0.416748 0
+21 16 15 1 0.411865 0.256104
+21 16 16 1 0.405029 0.384033
+21 16 17 1 0.403076 0.503906
+21 16 18 1 0.416748 0.62793
+21 16 19 1 0.460938 0.759766
+21 16 20 1 0.487305 0.862793
+21 16 21 1 0.485352 0.936035
+21 16 22 1 0.477783 0.992676
+21 16 23 0.956543 0.46582 1
+21 16 24 0.886719 0.451416 1
+21 16 25 0.811523 0.435059 1
+21 16 26 0.732422 0.418457 1
+21 16 27 0.650391 0.402344 1
+21 16 28 0.565918 0.387451 1
+21 16 29 0.476562 0.374268 1
+21 16 30 0.375732 0.362549 1
+21 16 31 0.23938 0.352783 1
+21 17 0 1 0.530273 0
+21 17 1 1 0.530273 0
+21 17 2 1 0.530273 0
+21 17 3 1 0.530273 0
+21 17 4 1 0.530273 0
+21 17 5 1 0.530273 0
+21 17 6 1 0.530273 0
+21 17 7 1 0.530762 0
+21 17 8 1 0.530762 0
+21 17 9 1 0.530762 0
+21 17 10 1 0.53125 0
+21 17 11 1 0.531738 0
+21 17 12 1 0.532715 0
+21 17 13 1 0.533203 0
+21 17 14 1 0.531738 0.0600891
+21 17 15 1 0.528809 0.272705
+21 17 16 1 0.522461 0.393311
+21 17 17 1 0.513672 0.50293
+21 17 18 1 0.515137 0.618164
+21 17 19 1 0.541016 0.745605
+21 17 20 1 0.568359 0.855957
+21 17 21 1 0.563965 0.931152
+21 17 22 1 0.552246 0.98877
+21 17 23 0.936035 0.535156 1
+21 17 24 0.866699 0.515625 1
+21 17 25 0.791504 0.494385 1
+21 17 26 0.712891 0.4729 1
+21 17 27 0.631836 0.451904 1
+21 17 28 0.546875 0.432617 1
+21 17 29 0.456055 0.415039 1
+21 17 30 0.35083 0.399658 1
+21 17 31 0.194702 0.38623 1
+21 18 0 1 0.643555 0
+21 18 1 1 0.643555 0
+21 18 2 1 0.643555 0
+21 18 3 1 0.643555 0
+21 18 4 1 0.643555 0
+21 18 5 1 0.643555 0
+21 18 6 1 0.643555 0
+21 18 7 1 0.643555 0
+21 18 8 1 0.643555 0
+21 18 9 1 0.644043 0
+21 18 10 1 0.644043 0
+21 18 11 1 0.644531 0
+21 18 12 1 0.64502 0
+21 18 13 1 0.645996 0
+21 18 14 1 0.645508 0.120972
+21 18 15 1 0.644043 0.29126
+21 18 16 1 0.640137 0.409424
+21 18 17 1 0.631836 0.515137
+21 18 18 1 0.620117 0.614746
+21 18 19 1 0.624023 0.726074
+21 18 20 1 0.651367 0.844727
+21 18 21 1 0.646484 0.923828
+21 18 22 0.973145 0.630859 0.981934
+21 18 23 0.906738 0.608887 1
+21 18 24 0.838379 0.584473 1
+21 18 25 0.764648 0.558594 1
+21 18 26 0.687012 0.532227 1
+21 18 27 0.605957 0.507324 1
+21 18 28 0.520996 0.483643 1
+21 18 29 0.427246 0.462158 1
+21 18 30 0.313721 0.442627 1
+21 18 31 0.0877075 0.425293 1
+21 19 0 1 0.750977 0
+21 19 1 1 0.750977 0
+21 19 2 1 0.750977 0
+21 19 3 1 0.750977 0
+21 19 4 1 0.750977 0
+21 19 5 1 0.750977 0
+21 19 6 1 0.750977 0
+21 19 7 1 0.750977 0
+21 19 8 1 0.751465 0
+21 19 9 1 0.751465 0
+21 19 10 1 0.751465 0
+21 19 11 1 0.751953 0
+21 19 12 1 0.752441 0
+21 19 13 1 0.75293 0
+21 19 14 1 0.753418 0.115295
+21 19 15 1 0.753418 0.295898
+21 19 16 1 0.751953 0.418701
+21 19 17 1 0.74707 0.528809
+21 19 18 1 0.736328 0.62793
+21 19 19 1 0.719238 0.717285
+21 19 20 1 0.728516 0.825195
+21 19 21 0.989746 0.728516 0.912598
+21 19 22 0.934082 0.708984 0.971191
+21 19 23 0.867676 0.682129 1
+21 19 24 0.800781 0.653809 1
+21 19 25 0.729004 0.624512 1
+21 19 26 0.65332 0.594727 1
+21 19 27 0.572754 0.565918 1
+21 19 28 0.486084 0.538574 1
+21 19 29 0.387207 0.513184 1
+21 19 30 0.255859 0.489746 1
+21 19 31 0 0.46875 1
+21 20 0 1 0.847656 0
+21 20 1 1 0.847656 0
+21 20 2 1 0.847656 0
+21 20 3 1 0.847656 0
+21 20 4 1 0.847656 0
+21 20 5 1 0.847656 0
+21 20 6 1 0.847656 0
+21 20 7 1 0.847656 0
+21 20 8 1 0.847656 0
+21 20 9 1 0.847656 0
+21 20 10 1 0.848145 0
+21 20 11 1 0.848145 0
+21 20 12 1 0.848633 0
+21 20 13 1 0.849121 0
+21 20 14 1 0.850098 0
+21 20 15 1 0.850586 0.272949
+21 20 16 1 0.850098 0.408447
+21 20 17 1 0.847656 0.526367
+21 20 18 1 0.841309 0.633789
+21 20 19 1 0.827637 0.728027
+21 20 20 0.967285 0.805664 0.805176
+21 20 21 0.939941 0.806152 0.897949
+21 20 22 0.883301 0.781738 0.955078
+21 20 23 0.818848 0.751465 0.992676
+21 20 24 0.754883 0.721191 1
+21 20 25 0.686035 0.689941 1
+21 20 26 0.611816 0.658203 1
+21 20 27 0.53125 0.626465 1
+21 20 28 0.440674 0.595703 1
+21 20 29 0.330566 0.566895 1
+21 20 30 0.1427 0.540039 1
+21 20 31 0 0.514648 1
+21 21 0 1 0.930176 0
+21 21 1 1 0.930176 0
+21 21 2 1 0.930176 0
+21 21 3 1 0.930176 0
+21 21 4 1 0.930176 0
+21 21 5 1 0.930176 0
+21 21 6 1 0.930176 0
+21 21 7 1 0.930176 0
+21 21 8 1 0.930176 0
+21 21 9 1 0.930176 0
+21 21 10 1 0.930176 0
+21 21 11 1 0.930664 0
+21 21 12 1 0.930664 0
+21 21 13 1 0.931152 0
+21 21 14 1 0.932129 0
+21 21 15 1 0.933105 0.215576
+21 21 16 1 0.933105 0.376709
+21 21 17 1 0.931641 0.503418
+21 21 18 0.99707 0.926758 0.617188
+21 21 19 0.966797 0.916504 0.71875
+21 21 20 0.927734 0.900879 0.805664
+21 21 21 0.878418 0.878418 0.878418
+21 21 22 0.821777 0.850586 0.936035
+21 21 23 0.762695 0.821289 0.979492
+21 21 24 0.702148 0.791016 1
+21 21 25 0.634766 0.758301 1
+21 21 26 0.560059 0.724121 1
+21 21 27 0.475342 0.688965 1
+21 21 28 0.375732 0.654785 1
+21 21 29 0.23584 0.621094 1
+21 21 30 0 0.589844 1
+21 21 31 0 0.560059 1
+21 22 0 0.963379 0.992676 0
+21 22 1 0.963379 0.992676 0
+21 22 2 0.963379 0.992676 0
+21 22 3 0.963379 0.992676 0
+21 22 4 0.963379 0.992676 0
+21 22 5 0.963379 0.992676 0
+21 22 6 0.963379 0.992676 0
+21 22 7 0.963379 0.992676 0
+21 22 8 0.963379 0.992676 0
+21 22 9 0.963379 0.992676 0
+21 22 10 0.963379 0.992676 0
+21 22 11 0.963379 0.992676 0
+21 22 12 0.963379 0.993164 0
+21 22 13 0.963379 0.993164 0
+21 22 14 0.962402 0.993652 0
+21 22 15 0.95752 0.995117 0.0964966
+21 22 16 0.949707 0.995605 0.330811
+21 22 17 0.936035 0.994629 0.468018
+21 22 18 0.915527 0.989746 0.585449
+21 22 19 0.88623 0.979004 0.688965
+21 22 20 0.848145 0.962402 0.776855
+21 22 21 0.804199 0.943848 0.855469
+21 22 22 0.758789 0.926758 0.926758
+21 22 23 0.702637 0.897949 0.975586
+21 22 24 0.640625 0.864258 1
+21 22 25 0.571289 0.828613 1
+21 22 26 0.491699 0.790527 1
+21 22 27 0.397949 0.751953 1
+21 22 28 0.272949 0.713867 1
+21 22 29 0 0.676758 1
+21 22 30 0 0.641113 1
+21 22 31 0 0.607422 1
+21 23 0 0.867676 1 0
+21 23 1 0.867676 1 0
+21 23 2 0.867676 1 0
+21 23 3 0.867676 1 0
+21 23 4 0.867676 1 0
+21 23 5 0.867676 1 0
+21 23 6 0.867676 1 0
+21 23 7 0.867676 1 0
+21 23 8 0.867676 1 0
+21 23 9 0.867676 1 0
+21 23 10 0.867676 1 0
+21 23 11 0.867676 1 0
+21 23 12 0.867676 1 0
+21 23 13 0.867188 1 0
+21 23 14 0.867188 1 0
+21 23 15 0.862305 1 0
+21 23 16 0.854004 1 0.275146
+21 23 17 0.84082 1 0.426758
+21 23 18 0.821289 1 0.54834
+21 23 19 0.793457 1 0.654297
+21 23 20 0.758301 1 0.746094
+21 23 21 0.71875 0.999512 0.829102
+21 23 22 0.67334 0.983398 0.902832
+21 23 23 0.622559 0.963379 0.963867
+21 23 24 0.563965 0.936523 1
+21 23 25 0.490234 0.899902 1
+21 23 26 0.399902 0.858887 1
+21 23 27 0.277588 0.816406 1
+21 23 28 0 0.773926 1
+21 23 29 0 0.732422 1
+21 23 30 0 0.692871 1
+21 23 31 0 0.655273 1
+21 24 0 0.76416 1 0
+21 24 1 0.76416 1 0
+21 24 2 0.76416 1 0
+21 24 3 0.76416 1 0
+21 24 4 0.76416 1 0
+21 24 5 0.76416 1 0
+21 24 6 0.76416 1 0
+21 24 7 0.76416 1 0
+21 24 8 0.76416 1 0
+21 24 9 0.76416 1 0
+21 24 10 0.76416 1 0
+21 24 11 0.76416 1 0
+21 24 12 0.76416 1 0
+21 24 13 0.76416 1 0
+21 24 14 0.76416 1 0
+21 24 15 0.759766 1 0
+21 24 16 0.751465 1 0.205322
+21 24 17 0.737793 1 0.382812
+21 24 18 0.718262 1 0.510742
+21 24 19 0.691406 1 0.619629
+21 24 20 0.658203 1 0.714844
+21 24 21 0.618652 1 0.800781
+21 24 22 0.570801 1 0.876953
+21 24 23 0.516113 1 0.94043
+21 24 24 0.452881 0.992676 0.993164
+21 24 25 0.36792 0.962891 1
+21 24 26 0.236572 0.923828 1
+21 24 27 0 0.879883 1
+21 24 28 0 0.833984 1
+21 24 29 0 0.788574 1
+21 24 30 0 0.744629 1
+21 24 31 0 0.702637 1
+21 25 0 0.639648 1 0
+21 25 1 0.639648 1 0
+21 25 2 0.639648 1 0
+21 25 3 0.639648 1 0
+21 25 4 0.639648 1 0
+21 25 5 0.639648 1 0
+21 25 6 0.639648 1 0
+21 25 7 0.639648 1 0
+21 25 8 0.639648 1 0
+21 25 9 0.639648 1 0
+21 25 10 0.639648 1 0
+21 25 11 0.639648 1 0
+21 25 12 0.639648 1 0
+21 25 13 0.639648 1 0
+21 25 14 0.639648 1 0
+21 25 15 0.63623 1 0
+21 25 16 0.626465 1 0.0302277
+21 25 17 0.611816 1 0.331543
+21 25 18 0.59082 1 0.468506
+21 25 19 0.562012 1 0.581543
+21 25 20 0.525391 1 0.679688
+21 25 21 0.479492 1 0.768066
+21 25 22 0.420898 1 0.84668
+21 25 23 0.346924 1 0.912598
+21 25 24 0.241821 1 0.967773
+21 25 25 0 1 1
+21 25 26 0 0.984863 1
+21 25 27 0 0.943359 1
+21 25 28 0 0.896973 1
+21 25 29 0 0.848633 1
+21 25 30 0 0.80127 1
+21 25 31 0 0.754883 1
+21 26 0 0.473877 1 0
+21 26 1 0.473877 1 0
+21 26 2 0.473877 1 0
+21 26 3 0.473877 1 0
+21 26 4 0.473877 1 0
+21 26 5 0.473877 1 0
+21 26 6 0.473877 1 0
+21 26 7 0.473877 1 0
+21 26 8 0.473877 1 0
+21 26 9 0.473877 1 0
+21 26 10 0.473877 1 0
+21 26 11 0.473877 1 0
+21 26 12 0.473877 1 0
+21 26 13 0.474121 1 0
+21 26 14 0.474121 1 0
+21 26 15 0.471436 1 0
+21 26 16 0.458008 1 0
+21 26 17 0.437744 1 0.267822
+21 26 18 0.407959 1 0.421143
+21 26 19 0.365723 1 0.539062
+21 26 20 0.305664 1 0.639648
+21 26 21 0.206177 1 0.730469
+21 26 22 0 1 0.810547
+21 26 23 0 1 0.878906
+21 26 24 0 1 0.937012
+21 26 25 0 1 0.990723
+21 26 26 0 1 1
+21 26 27 0 1 1
+21 26 28 0 0.958984 1
+21 26 29 0 0.910156 1
+21 26 30 0 0.860352 1
+21 26 31 0 0.811035 1
+21 27 0 0.0326233 1 0
+21 27 1 0.0326233 1 0
+21 27 2 0.0326233 1 0
+21 27 3 0.0326233 1 0
+21 27 4 0.0326538 1 0
+21 27 5 0.0327454 1 0
+21 27 6 0.0328369 1 0
+21 27 7 0.0330811 1 0
+21 27 8 0.0334778 1 0
+21 27 9 0.0342712 1 0
+21 27 10 0.0356445 1 0
+21 27 11 0.0378723 1 0
+21 27 12 0.0413208 1 0
+21 27 13 0.0462036 1 0
+21 27 14 0.0527649 1 0
+21 27 15 0.0554199 1 0
+21 27 16 0 1 0
+21 27 17 0 1 0.175049
+21 27 18 0 1 0.366455
+21 27 19 0 1 0.491211
+21 27 20 0 1 0.594727
+21 27 21 0 1 0.6875
+21 27 22 0 1 0.769531
+21 27 23 0 1 0.839844
+21 27 24 0 1 0.900391
+21 27 25 0 1 0.957031
+21 27 26 0 1 1
+21 27 27 0 1 1
+21 27 28 0 1 1
+21 27 29 0 0.969727 1
+21 27 30 0 0.919922 1
+21 27 31 0 0.868652 1
+21 28 0 0 1 0
+21 28 1 0 1 0
+21 28 2 0 1 0
+21 28 3 0 1 0
+21 28 4 0 1 0
+21 28 5 0 1 0
+21 28 6 0 1 0
+21 28 7 0 1 0
+21 28 8 0 1 0
+21 28 9 0 1 0
+21 28 10 0 1 0
+21 28 11 0 1 0
+21 28 12 0 1 0
+21 28 13 0 1 0
+21 28 14 0 1 0
+21 28 15 0 1 0
+21 28 16 0 1 0
+21 28 17 0 1 0
+21 28 18 0 1 0.300781
+21 28 19 0 1 0.437988
+21 28 20 0 1 0.54541
+21 28 21 0 1 0.639648
+21 28 22 0 1 0.723145
+21 28 23 0 1 0.794922
+21 28 24 0 1 0.857422
+21 28 25 0 1 0.91748
+21 28 26 0 1 0.973145
+21 28 27 0 1 1
+21 28 28 0 1 1
+21 28 29 0 1 1
+21 28 30 0 0.976562 1
+21 28 31 0 0.925781 1
+21 29 0 0 1 0
+21 29 1 0 1 0
+21 29 2 0 1 0
+21 29 3 0 1 0
+21 29 4 0 1 0
+21 29 5 0 1 0
+21 29 6 0 1 0
+21 29 7 0 1 0
+21 29 8 0 1 0
+21 29 9 0 1 0
+21 29 10 0 1 0
+21 29 11 0 1 0
+21 29 12 0 1 0
+21 29 13 0 1 0
+21 29 14 0 1 0
+21 29 15 0 1 0
+21 29 16 0 1 0
+21 29 17 0 1 0
+21 29 18 0 1 0.213013
+21 29 19 0 1 0.377197
+21 29 20 0 1 0.490479
+21 29 21 0 1 0.586914
+21 29 22 0 1 0.671387
+21 29 23 0 1 0.744629
+21 29 24 0 1 0.809082
+21 29 25 0 1 0.871094
+21 29 26 0 1 0.930176
+21 29 27 0 1 0.984863
+21 29 28 0 1 1
+21 29 29 0 1 1
+21 29 30 0 1 1
+21 29 31 0 0.981934 1
+21 30 0 0 1 0
+21 30 1 0 1 0
+21 30 2 0 1 0
+21 30 3 0 1 0
+21 30 4 0 1 0
+21 30 5 0 1 0
+21 30 6 0 1 0
+21 30 7 0 1 0
+21 30 8 0 1 0
+21 30 9 0 1 0
+21 30 10 0 1 0
+21 30 11 0 1 0
+21 30 12 0 1 0
+21 30 13 0 1 0
+21 30 14 0 1 0
+21 30 15 0 1 0
+21 30 16 0 1 0
+21 30 17 0 1 0
+21 30 18 0 1 0
+21 30 19 0 1 0.305908
+21 30 20 0 1 0.429932
+21 30 21 0 1 0.529297
+21 30 22 0 1 0.615234
+21 30 23 0 1 0.689453
+21 30 24 0 1 0.754883
+21 30 25 0 1 0.818848
+21 30 26 0 1 0.880371
+21 30 27 0 1 0.938965
+21 30 28 0 1 0.992188
+21 30 29 0 1 1
+21 30 30 0 1 1
+21 30 31 0 1 1
+21 31 0 0 1 0
+21 31 1 0 1 0
+21 31 2 0 1 0
+21 31 3 0 1 0
+21 31 4 0 1 0
+21 31 5 0 1 0
+21 31 6 0 1 0
+21 31 7 0 1 0
+21 31 8 0 1 0
+21 31 9 0 1 0
+21 31 10 0 1 0
+21 31 11 0 1 0
+21 31 12 0 1 0
+21 31 13 0 1 0
+21 31 14 0 1 0
+21 31 15 0 1 0
+21 31 16 0 1 0
+21 31 17 0 1 0
+21 31 18 0 1 0
+21 31 19 0 1 0.212402
+21 31 20 0 1 0.362061
+21 31 21 0 1 0.467041
+21 31 22 0 1 0.554688
+21 31 23 0 1 0.629883
+21 31 24 0 1 0.696289
+21 31 25 0 1 0.76123
+21 31 26 0 1 0.825195
+21 31 27 0 1 0.887207
+21 31 28 0 1 0.945312
+21 31 29 0 1 0.998535
+21 31 30 0 1 1
+21 31 31 0 1 1
+22 0 0 1 0 0
+22 0 1 1 0 0
+22 0 2 1 0 0
+22 0 3 1 0 0
+22 0 4 1 0 0
+22 0 5 1 0 0
+22 0 6 1 0 0
+22 0 7 1 0 0
+22 0 8 1 0 0
+22 0 9 1 0 0
+22 0 10 1 0 0
+22 0 11 1 0 0
+22 0 12 1 0 0
+22 0 13 1 0 0
+22 0 14 1 0 0
+22 0 15 1 0 0.192017
+22 0 16 1 0 0.357666
+22 0 17 1 0 0.485352
+22 0 18 1 0 0.614258
+22 0 19 1 0 0.737305
+22 0 20 1 0.0597229 0.839844
+22 0 21 1 0.180054 0.918457
+22 0 22 1 0.206665 0.97998
+22 0 23 1 0.225342 1
+22 0 24 1 0.23877 1
+22 0 25 0.973145 0.248901 1
+22 0 26 0.894531 0.256348 1
+22 0 27 0.812012 0.261475 1
+22 0 28 0.727539 0.265137 1
+22 0 29 0.641602 0.267822 1
+22 0 30 0.553223 0.27002 1
+22 0 31 0.458984 0.271973 1
+22 1 0 1 0 0
+22 1 1 1 0 0
+22 1 2 1 0 0
+22 1 3 1 0 0
+22 1 4 1 0 0
+22 1 5 1 0 0
+22 1 6 1 0 0
+22 1 7 1 0 0
+22 1 8 1 0 0
+22 1 9 1 0 0
+22 1 10 1 0 0
+22 1 11 1 0 0
+22 1 12 1 0 0
+22 1 13 1 0 0
+22 1 14 1 0 0
+22 1 15 1 0 0.192017
+22 1 16 1 0 0.357666
+22 1 17 1 0 0.485352
+22 1 18 1 0 0.614258
+22 1 19 1 0 0.737305
+22 1 20 1 0.0599365 0.839844
+22 1 21 1 0.180054 0.918457
+22 1 22 1 0.206787 0.97998
+22 1 23 1 0.225342 1
+22 1 24 1 0.23877 1
+22 1 25 0.973145 0.248901 1
+22 1 26 0.894531 0.256348 1
+22 1 27 0.812012 0.261475 1
+22 1 28 0.727539 0.265137 1
+22 1 29 0.641602 0.267822 1
+22 1 30 0.553223 0.27002 1
+22 1 31 0.458984 0.271973 1
+22 2 0 1 0 0
+22 2 1 1 0 0
+22 2 2 1 0 0
+22 2 3 1 0 0
+22 2 4 1 0 0
+22 2 5 1 0 0
+22 2 6 1 0 0
+22 2 7 1 0 0
+22 2 8 1 0 0
+22 2 9 1 0 0
+22 2 10 1 0 0
+22 2 11 1 0 0
+22 2 12 1 0 0
+22 2 13 1 0 0
+22 2 14 1 0 0
+22 2 15 1 0 0.192017
+22 2 16 1 0 0.357666
+22 2 17 1 0 0.485352
+22 2 18 1 0 0.614258
+22 2 19 1 0 0.737305
+22 2 20 1 0.0603027 0.839844
+22 2 21 1 0.180176 0.918457
+22 2 22 1 0.206787 0.97998
+22 2 23 1 0.225464 1
+22 2 24 1 0.23877 1
+22 2 25 0.973145 0.248901 1
+22 2 26 0.894531 0.256348 1
+22 2 27 0.812012 0.261475 1
+22 2 28 0.727539 0.265137 1
+22 2 29 0.641602 0.267822 1
+22 2 30 0.553223 0.27002 1
+22 2 31 0.458984 0.271973 1
+22 3 0 1 0 0
+22 3 1 1 0 0
+22 3 2 1 0 0
+22 3 3 1 0 0
+22 3 4 1 0 0
+22 3 5 1 0 0
+22 3 6 1 0 0
+22 3 7 1 0 0
+22 3 8 1 0 0
+22 3 9 1 0 0
+22 3 10 1 0 0
+22 3 11 1 0 0
+22 3 12 1 0 0
+22 3 13 1 0 0
+22 3 14 1 0 0
+22 3 15 1 0 0.192017
+22 3 16 1 0 0.357666
+22 3 17 1 0 0.485352
+22 3 18 1 0 0.614258
+22 3 19 1 0 0.737305
+22 3 20 1 0.0610046 0.839844
+22 3 21 1 0.180298 0.918457
+22 3 22 1 0.206909 0.97998
+22 3 23 1 0.225586 1
+22 3 24 1 0.238892 1
+22 3 25 0.973145 0.249023 1
+22 3 26 0.894531 0.256348 1
+22 3 27 0.812012 0.261475 1
+22 3 28 0.727539 0.265137 1
+22 3 29 0.641602 0.267822 1
+22 3 30 0.553223 0.27002 1
+22 3 31 0.458984 0.271973 1
+22 4 0 1 0 0
+22 4 1 1 0 0
+22 4 2 1 0 0
+22 4 3 1 0 0
+22 4 4 1 0 0
+22 4 5 1 0 0
+22 4 6 1 0 0
+22 4 7 1 0 0
+22 4 8 1 0 0
+22 4 9 1 0 0
+22 4 10 1 0 0
+22 4 11 1 0 0
+22 4 12 1 0 0
+22 4 13 1 0 0
+22 4 14 1 0 0
+22 4 15 1 0 0.192017
+22 4 16 1 0 0.357666
+22 4 17 1 0 0.485352
+22 4 18 1 0 0.614258
+22 4 19 1 0 0.737305
+22 4 20 1 0.0622864 0.839844
+22 4 21 1 0.180542 0.918457
+22 4 22 1 0.207153 0.97998
+22 4 23 1 0.225708 1
+22 4 24 1 0.239014 1
+22 4 25 0.972656 0.249146 1
+22 4 26 0.894531 0.256592 1
+22 4 27 0.812012 0.261719 1
+22 4 28 0.727539 0.265381 1
+22 4 29 0.641602 0.267822 1
+22 4 30 0.553223 0.27002 1
+22 4 31 0.458984 0.271973 1
+22 5 0 1 0 0
+22 5 1 1 0 0
+22 5 2 1 0 0
+22 5 3 1 0 0
+22 5 4 1 0 0
+22 5 5 1 0 0
+22 5 6 1 0 0
+22 5 7 1 0 0
+22 5 8 1 0 0
+22 5 9 1 0 0
+22 5 10 1 0 0
+22 5 11 1 0 0
+22 5 12 1 0 0
+22 5 13 1 0 0
+22 5 14 1 0 0
+22 5 15 1 0 0.191895
+22 5 16 1 0 0.357666
+22 5 17 1 0 0.485352
+22 5 18 1 0 0.614258
+22 5 19 1 0 0.737305
+22 5 20 1 0.0646362 0.839844
+22 5 21 1 0.181152 0.918457
+22 5 22 1 0.20752 0.97998
+22 5 23 1 0.226074 1
+22 5 24 1 0.23938 1
+22 5 25 0.972656 0.24939 1
+22 5 26 0.894531 0.256592 1
+22 5 27 0.812012 0.261719 1
+22 5 28 0.727539 0.265381 1
+22 5 29 0.641602 0.268066 1
+22 5 30 0.553223 0.270264 1
+22 5 31 0.45874 0.272217 1
+22 6 0 1 0 0
+22 6 1 1 0 0
+22 6 2 1 0 0
+22 6 3 1 0 0
+22 6 4 1 0 0
+22 6 5 1 0 0
+22 6 6 1 0 0
+22 6 7 1 0 0
+22 6 8 1 0 0
+22 6 9 1 0 0
+22 6 10 1 0 0
+22 6 11 1 0 0
+22 6 12 1 0 0
+22 6 13 1 0 0
+22 6 14 1 0 0
+22 6 15 1 0 0.191895
+22 6 16 1 0 0.357666
+22 6 17 1 0 0.485352
+22 6 18 1 0 0.614258
+22 6 19 1 0 0.737305
+22 6 20 1 0.0688477 0.839355
+22 6 21 1 0.182129 0.918457
+22 6 22 1 0.208374 0.97998
+22 6 23 1 0.226685 1
+22 6 24 1 0.239868 1
+22 6 25 0.972656 0.249878 1
+22 6 26 0.894531 0.25708 1
+22 6 27 0.812012 0.262207 1
+22 6 28 0.727539 0.265625 1
+22 6 29 0.641602 0.268311 1
+22 6 30 0.553223 0.270264 1
+22 6 31 0.45874 0.272217 1
+22 7 0 1 0 0
+22 7 1 1 0 0
+22 7 2 1 0 0
+22 7 3 1 0 0
+22 7 4 1 0 0
+22 7 5 1 0 0
+22 7 6 1 0 0
+22 7 7 1 0 0
+22 7 8 1 0 0
+22 7 9 1 0 0
+22 7 10 1 0 0
+22 7 11 1 0 0
+22 7 12 1 0 0
+22 7 13 1 0 0
+22 7 14 1 0 0
+22 7 15 1 0 0.19165
+22 7 16 1 0 0.357422
+22 7 17 1 0 0.485107
+22 7 18 1 0 0.61377
+22 7 19 1 0 0.737305
+22 7 20 1 0.0761108 0.839355
+22 7 21 1 0.184082 0.918457
+22 7 22 1 0.209839 0.97998
+22 7 23 1 0.227905 1
+22 7 24 1 0.240967 1
+22 7 25 0.972656 0.250732 1
+22 7 26 0.894531 0.257812 1
+22 7 27 0.812012 0.262695 1
+22 7 28 0.727539 0.266113 1
+22 7 29 0.641113 0.268799 1
+22 7 30 0.553223 0.270752 1
+22 7 31 0.45874 0.272705 1
+22 8 0 1 0 0
+22 8 1 1 0 0
+22 8 2 1 0 0
+22 8 3 1 0 0
+22 8 4 1 0 0
+22 8 5 1 0 0
+22 8 6 1 0 0
+22 8 7 1 0 0
+22 8 8 1 0 0
+22 8 9 1 0 0
+22 8 10 1 0 0
+22 8 11 1 0 0
+22 8 12 1 0 0
+22 8 13 1 0 0
+22 8 14 1 0 0
+22 8 15 1 0 0.191284
+22 8 16 1 0 0.357178
+22 8 17 1 0 0.485107
+22 8 18 1 0 0.61377
+22 8 19 1 0 0.736816
+22 8 20 1 0.0880737 0.839355
+22 8 21 1 0.187866 0.918457
+22 8 22 1 0.212891 0.97998
+22 8 23 1 0.230347 1
+22 8 24 1 0.24292 1
+22 8 25 0.972656 0.252441 1
+22 8 26 0.894531 0.259277 1
+22 8 27 0.811523 0.263916 1
+22 8 28 0.727051 0.26709 1
+22 8 29 0.641113 0.269531 1
+22 8 30 0.552734 0.271484 1
+22 8 31 0.458496 0.273193 1
+22 9 0 1 0 0
+22 9 1 1 0 0
+22 9 2 1 0 0
+22 9 3 1 0 0
+22 9 4 1 0 0
+22 9 5 1 0 0
+22 9 6 1 0 0
+22 9 7 1 0 0
+22 9 8 1 0 0
+22 9 9 1 0 0
+22 9 10 1 0 0
+22 9 11 1 0 0
+22 9 12 1 0 0
+22 9 13 1 0 0
+22 9 14 1 0 0
+22 9 15 1 0 0.190674
+22 9 16 1 0 0.356689
+22 9 17 1 0 0.484863
+22 9 18 1 0 0.613281
+22 9 19 1 0 0.736816
+22 9 20 1 0.106201 0.839355
+22 9 21 1 0.194824 0.918457
+22 9 22 1 0.218384 0.97998
+22 9 23 1 0.234985 1
+22 9 24 1 0.246826 1
+22 9 25 0.972168 0.255615 1
+22 9 26 0.894043 0.261963 1
+22 9 27 0.811523 0.266357 1
+22 9 28 0.727051 0.269043 1
+22 9 29 0.640625 0.27124 1
+22 9 30 0.552734 0.272705 1
+22 9 31 0.458252 0.274414 1
+22 10 0 1 0 0
+22 10 1 1 0 0
+22 10 2 1 0 0
+22 10 3 1 0 0
+22 10 4 1 0 0
+22 10 5 1 0 0
+22 10 6 1 0 0
+22 10 7 1 0 0
+22 10 8 1 0 0
+22 10 9 1 0 0
+22 10 10 1 0 0
+22 10 11 1 0 0
+22 10 12 1 0 0
+22 10 13 1 0 0
+22 10 14 1 0 0
+22 10 15 1 0 0.189575
+22 10 16 1 0 0.355957
+22 10 17 1 0 0.484375
+22 10 18 1 0 0.612793
+22 10 19 1 0 0.736328
+22 10 20 1 0.131104 0.839355
+22 10 21 1 0.206543 0.917969
+22 10 22 1 0.227905 0.97998
+22 10 23 1 0.24292 1
+22 10 24 1 0.253662 1
+22 10 25 0.97168 0.261475 1
+22 10 26 0.893555 0.266846 1
+22 10 27 0.811035 0.270264 1
+22 10 28 0.726562 0.272461 1
+22 10 29 0.640137 0.27417 1
+22 10 30 0.551758 0.275146 1
+22 10 31 0.45752 0.276367 1
+22 11 0 1 0 0
+22 11 1 1 0 0
+22 11 2 1 0 0
+22 11 3 1 0 0
+22 11 4 1 0 0
+22 11 5 1 0 0
+22 11 6 1 0 0
+22 11 7 1 0 0
+22 11 8 1 0 0
+22 11 9 1 0 0
+22 11 10 1 0 0
+22 11 11 1 0 0
+22 11 12 1 0 0
+22 11 13 1 0 0
+22 11 14 1 0 0
+22 11 15 1 0 0.187622
+22 11 16 1 0 0.354736
+22 11 17 1 0 0.483398
+22 11 18 1 0 0.611816
+22 11 19 1 0 0.73584
+22 11 20 1 0.16333 0.838867
+22 11 21 1 0.22522 0.917969
+22 11 22 1 0.243408 0.979492
+22 11 23 1 0.256104 1
+22 11 24 1 0.264893 1
+22 11 25 0.970703 0.27124 1
+22 11 26 0.892578 0.275146 1
+22 11 27 0.810059 0.277344 1
+22 11 28 0.725586 0.27832 1
+22 11 29 0.63916 0.279053 1
+22 11 30 0.550781 0.279541 1
+22 11 31 0.456299 0.280029 1
+22 12 0 1 0 0
+22 12 1 1 0 0
+22 12 2 1 0 0
+22 12 3 1 0 0
+22 12 4 1 0 0
+22 12 5 1 0 0
+22 12 6 1 0 0
+22 12 7 1 0 0
+22 12 8 1 0 0
+22 12 9 1 0 0
+22 12 10 1 0 0
+22 12 11 1 0 0
+22 12 12 1 0 0
+22 12 13 1 0 0
+22 12 14 1 0 0
+22 12 15 1 0 0.18457
+22 12 16 1 0 0.352539
+22 12 17 1 0 0.482178
+22 12 18 1 0 0.610352
+22 12 19 1 0 0.734375
+22 12 20 1 0.203735 0.838379
+22 12 21 1 0.252686 0.91748
+22 12 22 1 0.26709 0.979492
+22 12 23 1 0.276855 1
+22 12 24 1 0.282959 1
+22 12 25 0.96875 0.286621 1
+22 12 26 0.890625 0.28833 1
+22 12 27 0.808105 0.288574 1
+22 12 28 0.723633 0.288086 1
+22 12 29 0.637695 0.287354 1
+22 12 30 0.549316 0.286377 1
+22 12 31 0.454346 0.285889 1
+22 13 0 1 0 0
+22 13 1 1 0 0
+22 13 2 1 0 0
+22 13 3 1 0 0
+22 13 4 1 0 0
+22 13 5 1 0 0
+22 13 6 1 0 0
+22 13 7 1 0 0
+22 13 8 1 0 0
+22 13 9 1 0 0
+22 13 10 1 0 0
+22 13 11 1 0 0
+22 13 12 1 0 0
+22 13 13 1 0 0
+22 13 14 1 0 0
+22 13 15 1 0 0.180298
+22 13 16 1 0 0.349121
+22 13 17 1 0 0.480225
+22 13 18 1 0 0.60791
+22 13 19 1 0.131836 0.732422
+22 13 20 1 0.252441 0.837402
+22 13 21 1 0.290527 0.916992
+22 13 22 1 0.300537 0.979004
+22 13 23 1 0.306641 1
+22 13 24 1 0.309326 1
+22 13 25 0.966309 0.309814 1
+22 13 26 0.887695 0.308594 1
+22 13 27 0.805176 0.306152 1
+22 13 28 0.720703 0.302979 1
+22 13 29 0.634766 0.300049 1
+22 13 30 0.546387 0.297363 1
+22 13 31 0.451172 0.29541 1
+22 14 0 1 0 0
+22 14 1 1 0 0
+22 14 2 1 0 0
+22 14 3 1 0 0
+22 14 4 1 0 0
+22 14 5 1 0 0
+22 14 6 1 0 0
+22 14 7 1 0 0
+22 14 8 1 0 0
+22 14 9 1 0 0
+22 14 10 1 0 0
+22 14 11 1 0 0
+22 14 12 1 0 0
+22 14 13 1 0 0
+22 14 14 1 0 0
+22 14 15 1 0 0.175537
+22 14 16 1 0 0.344971
+22 14 17 1 0 0.477783
+22 14 18 1 0.102905 0.603516
+22 14 19 1 0.233276 0.729004
+22 14 20 1 0.310059 0.835449
+22 14 21 1 0.3396 0.916016
+22 14 22 1 0.344971 0.978516
+22 14 23 1 0.346924 1
+22 14 24 1 0.345947 1
+22 14 25 0.961426 0.342529 1
+22 14 26 0.883301 0.337402 1
+22 14 27 0.800781 0.331055 1
+22 14 28 0.716309 0.324951 1
+22 14 29 0.630371 0.318848 1
+22 14 30 0.541504 0.313721 1
+22 14 31 0.446045 0.30957 1
+22 15 0 1 0.251221 0
+22 15 1 1 0.251221 0
+22 15 2 1 0.251221 0
+22 15 3 1 0.251221 0
+22 15 4 1 0.251221 0
+22 15 5 1 0.251465 0
+22 15 6 1 0.251465 0
+22 15 7 1 0.251465 0
+22 15 8 1 0.251709 0
+22 15 9 1 0.252197 0
+22 15 10 1 0.25293 0
+22 15 11 1 0.254395 0
+22 15 12 1 0.256592 0
+22 15 13 1 0.259521 0
+22 15 14 1 0.257324 0
+22 15 15 1 0.250244 0.172852
+22 15 16 1 0.242676 0.34082
+22 15 17 1 0.246338 0.474365
+22 15 18 1 0.261719 0.597656
+22 15 19 1 0.319824 0.723145
+22 15 20 1 0.376465 0.83252
+22 15 21 1 0.39917 0.914551
+22 15 22 1 0.400635 0.977539
+22 15 23 1 0.398438 1
+22 15 24 1 0.393066 1
+22 15 25 0.954102 0.385254 1
+22 15 26 0.875977 0.375488 1
+22 15 27 0.793457 0.36499 1
+22 15 28 0.708984 0.354736 1
+22 15 29 0.623047 0.345215 1
+22 15 30 0.53418 0.33667 1
+22 15 31 0.437988 0.32959 1
+22 16 0 1 0.379395 0
+22 16 1 1 0.379395 0
+22 16 2 1 0.379395 0
+22 16 3 1 0.379395 0
+22 16 4 1 0.379395 0
+22 16 5 1 0.379395 0
+22 16 6 1 0.379395 0
+22 16 7 1 0.379395 0
+22 16 8 1 0.379639 0
+22 16 9 1 0.379883 0
+22 16 10 1 0.380371 0
+22 16 11 1 0.381104 0
+22 16 12 1 0.382324 0
+22 16 13 1 0.384277 0
+22 16 14 1 0.382324 0
+22 16 15 1 0.378174 0.178467
+22 16 16 1 0.372314 0.339844
+22 16 17 1 0.368408 0.467773
+22 16 18 1 0.374756 0.590332
+22 16 19 1 0.40625 0.714355
+22 16 20 1 0.450684 0.827148
+22 16 21 1 0.469482 0.911621
+22 16 22 1 0.466797 0.975098
+22 16 23 1 0.460449 1
+22 16 24 1 0.450928 1
+22 16 25 0.942871 0.437988 1
+22 16 26 0.864746 0.42334 1
+22 16 27 0.782715 0.407959 1
+22 16 28 0.69873 0.393066 1
+22 16 29 0.612305 0.379395 1
+22 16 30 0.523438 0.367188 1
+22 16 31 0.425537 0.356689 1
+22 17 0 1 0.494385 0
+22 17 1 1 0.494385 0
+22 17 2 1 0.494385 0
+22 17 3 1 0.494385 0
+22 17 4 1 0.494385 0
+22 17 5 1 0.494629 0
+22 17 6 1 0.494629 0
+22 17 7 1 0.494629 0
+22 17 8 1 0.494629 0
+22 17 9 1 0.494873 0
+22 17 10 1 0.495117 0
+22 17 11 1 0.495605 0
+22 17 12 1 0.496582 0
+22 17 13 1 0.498047 0
+22 17 14 1 0.49707 0
+22 17 15 1 0.494629 0.197021
+22 17 16 1 0.490234 0.346191
+22 17 17 1 0.483643 0.466309
+22 17 18 1 0.482422 0.583984
+22 17 19 1 0.494873 0.70166
+22 17 20 1 0.529785 0.817871
+22 17 21 1 0.546387 0.907227
+22 17 22 1 0.541016 0.97168
+22 17 23 1 0.530762 1
+22 17 24 0.998047 0.516602 1
+22 17 25 0.92627 0.498779 1
+22 17 26 0.848633 0.47876 1
+22 17 27 0.76709 0.458496 1
+22 17 28 0.683105 0.438965 1
+22 17 29 0.597168 0.420898 1
+22 17 30 0.507324 0.404541 1
+22 17 31 0.407471 0.390137 1
+22 18 0 1 0.605469 0
+22 18 1 1 0.605469 0
+22 18 2 1 0.605469 0
+22 18 3 1 0.605469 0
+22 18 4 1 0.605469 0
+22 18 5 1 0.605469 0
+22 18 6 1 0.605469 0
+22 18 7 1 0.605469 0
+22 18 8 1 0.605469 0
+22 18 9 1 0.605957 0
+22 18 10 1 0.605957 0
+22 18 11 1 0.606445 0
+22 18 12 1 0.606934 0
+22 18 13 1 0.608398 0
+22 18 14 1 0.608398 0
+22 18 15 1 0.607422 0.223022
+22 18 16 1 0.604492 0.360596
+22 18 17 1 0.598145 0.474121
+22 18 18 1 0.589355 0.580078
+22 18 19 1 0.588867 0.689941
+22 18 20 1 0.609375 0.803711
+22 18 21 1 0.626953 0.899414
+22 18 22 1 0.619141 0.96582
+22 18 23 1 0.605469 1
+22 18 24 0.974609 0.586914 1
+22 18 25 0.90332 0.563965 1
+22 18 26 0.826172 0.539062 1
+22 18 27 0.745605 0.51416 1
+22 18 28 0.662598 0.490234 1
+22 18 29 0.57666 0.467773 1
+22 18 30 0.485596 0.447266 1
+22 18 31 0.381836 0.428955 1
+22 19 0 1 0.711426 0
+22 19 1 1 0.711426 0
+22 19 2 1 0.711426 0
+22 19 3 1 0.711426 0
+22 19 4 1 0.711426 0
+22 19 5 1 0.711426 0
+22 19 6 1 0.711426 0
+22 19 7 1 0.711426 0
+22 19 8 1 0.711426 0
+22 19 9 1 0.711426 0
+22 19 10 1 0.711914 0
+22 19 11 1 0.711914 0
+22 19 12 1 0.712402 0
+22 19 13 1 0.713379 0
+22 19 14 1 0.713867 0
+22 19 15 1 0.714355 0.241089
+22 19 16 1 0.712891 0.374512
+22 19 17 1 0.708984 0.487061
+22 19 18 1 0.700195 0.588867
+22 19 19 1 0.687988 0.683105
+22 19 20 1 0.687988 0.78418
+22 19 21 1 0.706055 0.887695
+22 19 22 1 0.697754 0.957031
+22 19 23 1 0.680664 1
+22 19 24 0.943848 0.657715 1
+22 19 25 0.873047 0.630371 1
+22 19 26 0.797363 0.601562 1
+22 19 27 0.718262 0.572266 1
+22 19 28 0.63623 0.544434 1
+22 19 29 0.549805 0.518066 1
+22 19 30 0.456787 0.493896 1
+22 19 31 0.346436 0.471924 1
+22 20 0 1 0.808105 0
+22 20 1 1 0.808105 0
+22 20 2 1 0.808105 0
+22 20 3 1 0.808105 0
+22 20 4 1 0.808105 0
+22 20 5 1 0.808105 0
+22 20 6 1 0.808105 0
+22 20 7 1 0.808105 0
+22 20 8 1 0.808105 0
+22 20 9 1 0.808105 0
+22 20 10 1 0.808105 0
+22 20 11 1 0.808594 0
+22 20 12 1 0.809082 0
+22 20 13 1 0.80957 0
+22 20 14 1 0.810547 0
+22 20 15 1 0.811523 0.235596
+22 20 16 1 0.811523 0.375977
+22 20 17 1 0.80957 0.492676
+22 20 18 1 0.803711 0.597656
+22 20 19 1 0.791504 0.690918
+22 20 20 1 0.774902 0.772949
+22 20 21 1 0.777832 0.869141
+22 20 22 1 0.772949 0.945312
+22 20 23 0.96582 0.752441 0.995117
+22 20 24 0.904297 0.725586 1
+22 20 25 0.835449 0.694824 1
+22 20 26 0.762207 0.662598 1
+22 20 27 0.685059 0.630859 1
+22 20 28 0.603516 0.599609 1
+22 20 29 0.516602 0.569824 1
+22 20 30 0.419434 0.54248 1
+22 20 31 0.296143 0.51709 1
+22 21 0 1 0.894531 0
+22 21 1 1 0.894531 0
+22 21 2 1 0.894531 0
+22 21 3 1 0.894531 0
+22 21 4 1 0.894531 0
+22 21 5 1 0.894531 0
+22 21 6 1 0.894531 0
+22 21 7 1 0.894531 0
+22 21 8 1 0.894531 0
+22 21 9 1 0.894531 0
+22 21 10 1 0.894531 0
+22 21 11 1 0.89502 0
+22 21 12 1 0.89502 0
+22 21 13 1 0.895508 0
+22 21 14 1 0.896484 0
+22 21 15 1 0.897949 0.191895
+22 21 16 1 0.898926 0.356445
+22 21 17 1 0.898438 0.481689
+22 21 18 1 0.89502 0.593262
+22 21 19 1 0.886719 0.692871
+22 21 20 1 0.871582 0.777832
+22 21 21 1 0.849609 0.849121
+22 21 22 0.969238 0.844727 0.929688
+22 21 23 0.915039 0.819824 0.978027
+22 21 24 0.85498 0.789551 1
+22 21 25 0.790039 0.757812 1
+22 21 26 0.720215 0.724609 1
+22 21 27 0.64502 0.690918 1
+22 21 28 0.563965 0.657227 1
+22 21 29 0.474365 0.625 1
+22 21 30 0.368652 0.59375 1
+22 21 31 0.214355 0.564453 1
+22 22 0 1 0.966797 0
+22 22 1 1 0.966797 0
+22 22 2 1 0.966797 0
+22 22 3 1 0.966797 0
+22 22 4 1 0.966797 0
+22 22 5 1 0.966797 0
+22 22 6 1 0.966797 0
+22 22 7 1 0.966797 0
+22 22 8 1 0.966797 0
+22 22 9 1 0.966797 0
+22 22 10 1 0.966797 0
+22 22 11 1 0.966797 0
+22 22 12 1 0.966797 0
+22 22 13 1 0.967285 0
+22 22 14 1 0.967773 0
+22 22 15 1 0.969727 0.0344849
+22 22 16 1 0.971191 0.31665
+22 22 17 1 0.971191 0.453857
+22 22 18 1 0.96875 0.571289
+22 22 19 1 0.962402 0.675781
+22 22 20 0.998535 0.950684 0.766602
+22 22 21 0.958008 0.933105 0.845215
+22 22 22 0.910156 0.910156 0.910156
+22 22 23 0.856445 0.882324 0.958984
+22 22 24 0.801758 0.853516 0.99707
+22 22 25 0.740723 0.821777 1
+22 22 26 0.672852 0.787598 1
+22 22 27 0.597656 0.751953 1
+22 22 28 0.51416 0.715332 1
+22 22 29 0.41748 0.679199 1
+22 22 30 0.293457 0.644531 1
+22 22 31 0 0.611328 1
+22 23 0 1 1 0
+22 23 1 1 1 0
+22 23 2 1 1 0
+22 23 3 1 1 0
+22 23 4 1 1 0
+22 23 5 1 1 0
+22 23 6 1 1 0
+22 23 7 1 1 0
+22 23 8 1 1 0
+22 23 9 1 1 0
+22 23 10 1 1 0
+22 23 11 1 1 0
+22 23 12 1 1 0
+22 23 13 1 1 0
+22 23 14 1 1 0
+22 23 15 1 1 0
+22 23 16 1 1 0.263184
+22 23 17 0.992676 1 0.416748
+22 23 18 0.977539 1 0.539551
+22 23 19 0.955078 1 0.645996
+22 23 20 0.924805 1 0.738281
+22 23 21 0.885742 0.986816 0.818359
+22 23 22 0.843262 0.967285 0.888184
+22 23 23 0.80127 0.950195 0.950195
+22 23 24 0.749512 0.922852 0.993652
+22 23 25 0.6875 0.888184 1
+22 23 26 0.617676 0.850586 1
+22 23 27 0.540039 0.811523 1
+22 23 28 0.450439 0.771973 1
+22 23 29 0.3396 0.732422 1
+22 23 30 0.151245 0.693848 1
+22 23 31 0 0.657227 1
+22 24 0 0.923828 1 0
+22 24 1 0.923828 1 0
+22 24 2 0.923828 1 0
+22 24 3 0.923828 1 0
+22 24 4 0.923828 1 0
+22 24 5 0.923828 1 0
+22 24 6 0.923828 1 0
+22 24 7 0.923828 1 0
+22 24 8 0.923828 1 0
+22 24 9 0.923828 1 0
+22 24 10 0.923828 1 0
+22 24 11 0.923828 1 0
+22 24 12 0.923828 1 0
+22 24 13 0.923828 1 0
+22 24 14 0.92334 1 0
+22 24 15 0.921387 1 0
+22 24 16 0.915527 1 0.192261
+22 24 17 0.905762 1 0.374756
+22 24 18 0.891113 1 0.503418
+22 24 19 0.869629 1 0.612305
+22 24 20 0.841309 1 0.706055
+22 24 21 0.806152 1 0.789062
+22 24 22 0.767578 1 0.86377
+22 24 23 0.727051 1 0.928223
+22 24 24 0.681641 0.981934 0.982422
+22 24 25 0.623535 0.953125 1
+22 24 26 0.552246 0.915039 1
+22 24 27 0.467773 0.873047 1
+22 24 28 0.364502 0.82959 1
+22 24 29 0.207642 0.786133 1
+22 24 30 0 0.744141 1
+22 24 31 0 0.703125 1
+22 25 0 0.821289 1 0
+22 25 1 0.821289 1 0
+22 25 2 0.821289 1 0
+22 25 3 0.821289 1 0
+22 25 4 0.821289 1 0
+22 25 5 0.821289 1 0
+22 25 6 0.821289 1 0
+22 25 7 0.821289 1 0
+22 25 8 0.821289 1 0
+22 25 9 0.821289 1 0
+22 25 10 0.821289 1 0
+22 25 11 0.821289 1 0
+22 25 12 0.821289 1 0
+22 25 13 0.821289 1 0
+22 25 14 0.821289 1 0
+22 25 15 0.819336 1 0
+22 25 16 0.813477 1 0
+22 25 17 0.803711 1 0.323975
+22 25 18 0.789062 1 0.461914
+22 25 19 0.768555 1 0.574219
+22 25 20 0.741699 1 0.670898
+22 25 21 0.709473 1 0.757324
+22 25 22 0.671875 1 0.834961
+22 25 23 0.630371 1 0.901367
+22 25 24 0.583496 1 0.958008
+22 25 25 0.525879 1 1
+22 25 26 0.450684 0.978027 1
+22 25 27 0.349854 0.937012 1
+22 25 28 0.183594 0.89209 1
+22 25 29 0 0.845703 1
+22 25 30 0 0.799316 1
+22 25 31 0 0.754395 1
+22 26 0 0.699219 1 0
+22 26 1 0.699219 1 0
+22 26 2 0.699219 1 0
+22 26 3 0.699219 1 0
+22 26 4 0.699219 1 0
+22 26 5 0.699219 1 0
+22 26 6 0.699219 1 0
+22 26 7 0.699219 1 0
+22 26 8 0.699219 1 0
+22 26 9 0.699219 1 0
+22 26 10 0.699219 1 0
+22 26 11 0.699219 1 0
+22 26 12 0.699219 1 0
+22 26 13 0.699219 1 0
+22 26 14 0.699219 1 0
+22 26 15 0.698242 1 0
+22 26 16 0.691406 1 0
+22 26 17 0.680664 1 0.26001
+22 26 18 0.665527 1 0.414795
+22 26 19 0.644531 1 0.532227
+22 26 20 0.617188 1 0.631836
+22 26 21 0.583496 1 0.720703
+22 26 22 0.543457 1 0.800781
+22 26 23 0.496338 1 0.869629
+22 26 24 0.440918 1 0.928223
+22 26 25 0.366699 1 0.98291
+22 26 26 0.252197 1 1
+22 26 27 0 0.997559 1
+22 26 28 0 0.95459 1
+22 26 29 0 0.907227 1
+22 26 30 0 0.858887 1
+22 26 31 0 0.810059 1
+22 27 0 0.543945 1 0
+22 27 1 0.543945 1 0
+22 27 2 0.543945 1 0
+22 27 3 0.543945 1 0
+22 27 4 0.543945 1 0
+22 27 5 0.543945 1 0
+22 27 6 0.543945 1 0
+22 27 7 0.543945 1 0
+22 27 8 0.543945 1 0
+22 27 9 0.543945 1 0
+22 27 10 0.543945 1 0
+22 27 11 0.543945 1 0
+22 27 12 0.543945 1 0
+22 27 13 0.543945 1 0
+22 27 14 0.544434 1 0
+22 27 15 0.544434 1 0
+22 27 16 0.536133 1 0
+22 27 17 0.522461 1 0.16394
+22 27 18 0.503418 1 0.360352
+22 27 19 0.476562 1 0.485352
+22 27 20 0.441895 1 0.588379
+22 27 21 0.39624 1 0.679688
+22 27 22 0.335205 1 0.76123
+22 27 23 0.248901 1 0.832031
+22 27 24 0 1 0.893066
+22 27 25 0 1 0.950195
+22 27 26 0 1 1
+22 27 27 0 1 1
+22 27 28 0 1 1
+22 27 29 0 0.967773 1
+22 27 30 0 0.918457 1
+22 27 31 0 0.868164 1
+22 28 0 0.293701 1 0
+22 28 1 0.293701 1 0
+22 28 2 0.293701 1 0
+22 28 3 0.293701 1 0
+22 28 4 0.293701 1 0
+22 28 5 0.293701 1 0
+22 28 6 0.293701 1 0
+22 28 7 0.293701 1 0
+22 28 8 0.293701 1 0
+22 28 9 0.293701 1 0
+22 28 10 0.293945 1 0
+22 28 11 0.293945 1 0
+22 28 12 0.294189 1 0
+22 28 13 0.294434 1 0
+22 28 14 0.294678 1 0
+22 28 15 0.29541 1 0
+22 28 16 0.281494 1 0
+22 28 17 0.247803 1 0
+22 28 18 0.189453 1 0.295166
+22 28 19 0 1 0.432861
+22 28 20 0 1 0.540039
+22 28 21 0 1 0.633301
+22 28 22 0 1 0.716797
+22 28 23 0 1 0.788574
+22 28 24 0 1 0.851562
+22 28 25 0 1 0.911621
+22 28 26 0 1 0.968262
+22 28 27 0 1 1
+22 28 28 0 1 1
+22 28 29 0 1 1
+22 28 30 0 0.975586 1
+22 28 31 0 0.925293 1
+22 29 0 0 1 0
+22 29 1 0 1 0
+22 29 2 0 1 0
+22 29 3 0 1 0
+22 29 4 0 1 0
+22 29 5 0 1 0
+22 29 6 0 1 0
+22 29 7 0 1 0
+22 29 8 0 1 0
+22 29 9 0 1 0
+22 29 10 0 1 0
+22 29 11 0 1 0
+22 29 12 0 1 0
+22 29 13 0 1 0
+22 29 14 0 1 0
+22 29 15 0 1 0
+22 29 16 0 1 0
+22 29 17 0 1 0
+22 29 18 0 1 0.206299
+22 29 19 0 1 0.373047
+22 29 20 0 1 0.486328
+22 29 21 0 1 0.582031
+22 29 22 0 1 0.666504
+22 29 23 0 1 0.739746
+22 29 24 0 1 0.804199
+22 29 25 0 1 0.866699
+22 29 26 0 1 0.925781
+22 29 27 0 1 0.980957
+22 29 28 0 1 1
+22 29 29 0 1 1
+22 29 30 0 1 1
+22 29 31 0 0.981445 1
+22 30 0 0 1 0
+22 30 1 0 1 0
+22 30 2 0 1 0
+22 30 3 0 1 0
+22 30 4 0 1 0
+22 30 5 0 1 0
+22 30 6 0 1 0
+22 30 7 0 1 0
+22 30 8 0 1 0
+22 30 9 0 1 0
+22 30 10 0 1 0
+22 30 11 0 1 0
+22 30 12 0 1 0
+22 30 13 0 1 0
+22 30 14 0 1 0
+22 30 15 0 1 0
+22 30 16 0 1 0
+22 30 17 0 1 0
+22 30 18 0 1 0
+22 30 19 0 1 0.302002
+22 30 20 0 1 0.426514
+22 30 21 0 1 0.525879
+22 30 22 0 1 0.611816
+22 30 23 0 1 0.686035
+22 30 24 0 1 0.751465
+22 30 25 0 1 0.81543
+22 30 26 0 1 0.876953
+22 30 27 0 1 0.936035
+22 30 28 0 1 0.989746
+22 30 29 0 1 1
+22 30 30 0 1 1
+22 30 31 0 1 1
+22 31 0 0 1 0
+22 31 1 0 1 0
+22 31 2 0 1 0
+22 31 3 0 1 0
+22 31 4 0 1 0
+22 31 5 0 1 0
+22 31 6 0 1 0
+22 31 7 0 1 0
+22 31 8 0 1 0
+22 31 9 0 1 0
+22 31 10 0 1 0
+22 31 11 0 1 0
+22 31 12 0 1 0
+22 31 13 0 1 0
+22 31 14 0 1 0
+22 31 15 0 1 0
+22 31 16 0 1 0
+22 31 17 0 1 0
+22 31 18 0 1 0
+22 31 19 0 1 0.207642
+22 31 20 0 1 0.359131
+22 31 21 0 1 0.4646
+22 31 22 0 1 0.552246
+22 31 23 0 1 0.627441
+22 31 24 0 1 0.693848
+22 31 25 0 1 0.758789
+22 31 26 0 1 0.822754
+22 31 27 0 1 0.884766
+22 31 28 0 1 0.943359
+22 31 29 0 1 0.99707
+22 31 30 0 1 1
+22 31 31 0 1 1
+23 0 0 1 0 0
+23 0 1 1 0 0
+23 0 2 1 0 0
+23 0 3 1 0 0
+23 0 4 1 0 0
+23 0 5 1 0 0
+23 0 6 1 0 0
+23 0 7 1 0 0
+23 0 8 1 0 0
+23 0 9 1 0 0
+23 0 10 1 0 0
+23 0 11 1 0 0
+23 0 12 1 0 0
+23 0 13 1 0 0
+23 0 14 1 0 0
+23 0 15 1 0 0
+23 0 16 1 0 0.307129
+23 0 17 1 0 0.445801
+23 0 18 1 0 0.571777
+23 0 19 1 0 0.693848
+23 0 20 1 0 0.80127
+23 0 21 1 0.118958 0.888672
+23 0 22 1 0.190308 0.956543
+23 0 23 1 0.212769 1
+23 0 24 1 0.229492 1
+23 0 25 1 0.24292 1
+23 0 26 1 0.253174 1
+23 0 27 0.924316 0.260742 1
+23 0 28 0.839844 0.265869 1
+23 0 29 0.75293 0.269531 1
+23 0 30 0.665039 0.272217 1
+23 0 31 0.575195 0.274414 1
+23 1 0 1 0 0
+23 1 1 1 0 0
+23 1 2 1 0 0
+23 1 3 1 0 0
+23 1 4 1 0 0
+23 1 5 1 0 0
+23 1 6 1 0 0
+23 1 7 1 0 0
+23 1 8 1 0 0
+23 1 9 1 0 0
+23 1 10 1 0 0
+23 1 11 1 0 0
+23 1 12 1 0 0
+23 1 13 1 0 0
+23 1 14 1 0 0
+23 1 15 1 0 0
+23 1 16 1 0 0.307129
+23 1 17 1 0 0.445801
+23 1 18 1 0 0.571777
+23 1 19 1 0 0.693848
+23 1 20 1 0 0.80127
+23 1 21 1 0.119019 0.888672
+23 1 22 1 0.190308 0.956543
+23 1 23 1 0.212769 1
+23 1 24 1 0.229492 1
+23 1 25 1 0.24292 1
+23 1 26 1 0.253174 1
+23 1 27 0.924316 0.260742 1
+23 1 28 0.839844 0.265869 1
+23 1 29 0.75293 0.269531 1
+23 1 30 0.665039 0.272217 1
+23 1 31 0.575195 0.274414 1
+23 2 0 1 0 0
+23 2 1 1 0 0
+23 2 2 1 0 0
+23 2 3 1 0 0
+23 2 4 1 0 0
+23 2 5 1 0 0
+23 2 6 1 0 0
+23 2 7 1 0 0
+23 2 8 1 0 0
+23 2 9 1 0 0
+23 2 10 1 0 0
+23 2 11 1 0 0
+23 2 12 1 0 0
+23 2 13 1 0 0
+23 2 14 1 0 0
+23 2 15 1 0 0
+23 2 16 1 0 0.307129
+23 2 17 1 0 0.445801
+23 2 18 1 0 0.571777
+23 2 19 1 0 0.693848
+23 2 20 1 0 0.80127
+23 2 21 1 0.119202 0.888672
+23 2 22 1 0.19043 0.956543
+23 2 23 1 0.212891 1
+23 2 24 1 0.229492 1
+23 2 25 1 0.243042 1
+23 2 26 1 0.253174 1
+23 2 27 0.924316 0.260742 1
+23 2 28 0.839844 0.265869 1
+23 2 29 0.75293 0.269531 1
+23 2 30 0.665039 0.272217 1
+23 2 31 0.575195 0.274414 1
+23 3 0 1 0 0
+23 3 1 1 0 0
+23 3 2 1 0 0
+23 3 3 1 0 0
+23 3 4 1 0 0
+23 3 5 1 0 0
+23 3 6 1 0 0
+23 3 7 1 0 0
+23 3 8 1 0 0
+23 3 9 1 0 0
+23 3 10 1 0 0
+23 3 11 1 0 0
+23 3 12 1 0 0
+23 3 13 1 0 0
+23 3 14 1 0 0
+23 3 15 1 0 0
+23 3 16 1 0 0.307129
+23 3 17 1 0 0.445801
+23 3 18 1 0 0.571777
+23 3 19 1 0 0.693848
+23 3 20 1 0 0.80127
+23 3 21 1 0.119385 0.888672
+23 3 22 1 0.190552 0.956543
+23 3 23 1 0.213013 1
+23 3 24 1 0.229614 1
+23 3 25 1 0.243042 1
+23 3 26 1 0.253418 1
+23 3 27 0.924316 0.260742 1
+23 3 28 0.839844 0.266113 1
+23 3 29 0.75293 0.269775 1
+23 3 30 0.665039 0.272217 1
+23 3 31 0.575195 0.274414 1
+23 4 0 1 0 0
+23 4 1 1 0 0
+23 4 2 1 0 0
+23 4 3 1 0 0
+23 4 4 1 0 0
+23 4 5 1 0 0
+23 4 6 1 0 0
+23 4 7 1 0 0
+23 4 8 1 0 0
+23 4 9 1 0 0
+23 4 10 1 0 0
+23 4 11 1 0 0
+23 4 12 1 0 0
+23 4 13 1 0 0
+23 4 14 1 0 0
+23 4 15 1 0 0
+23 4 16 1 0 0.306885
+23 4 17 1 0 0.445801
+23 4 18 1 0 0.571777
+23 4 19 1 0 0.693848
+23 4 20 1 0 0.80127
+23 4 21 1 0.119873 0.888672
+23 4 22 1 0.190796 0.956055
+23 4 23 1 0.213135 1
+23 4 24 1 0.229736 1
+23 4 25 1 0.243164 1
+23 4 26 1 0.253418 1
+23 4 27 0.924316 0.260742 1
+23 4 28 0.839844 0.266113 1
+23 4 29 0.75293 0.269775 1
+23 4 30 0.665039 0.272461 1
+23 4 31 0.575195 0.274414 1
+23 5 0 1 0 0
+23 5 1 1 0 0
+23 5 2 1 0 0
+23 5 3 1 0 0
+23 5 4 1 0 0
+23 5 5 1 0 0
+23 5 6 1 0 0
+23 5 7 1 0 0
+23 5 8 1 0 0
+23 5 9 1 0 0
+23 5 10 1 0 0
+23 5 11 1 0 0
+23 5 12 1 0 0
+23 5 13 1 0 0
+23 5 14 1 0 0
+23 5 15 1 0 0
+23 5 16 1 0 0.306885
+23 5 17 1 0 0.445801
+23 5 18 1 0 0.571777
+23 5 19 1 0 0.693848
+23 5 20 1 0 0.80127
+23 5 21 1 0.120728 0.888672
+23 5 22 1 0.191162 0.956055
+23 5 23 1 0.213501 1
+23 5 24 1 0.230103 1
+23 5 25 1 0.243408 1
+23 5 26 1 0.253662 1
+23 5 27 0.924316 0.260986 1
+23 5 28 0.839355 0.266113 1
+23 5 29 0.75293 0.269775 1
+23 5 30 0.665039 0.272461 1
+23 5 31 0.575195 0.274414 1
+23 6 0 1 0 0
+23 6 1 1 0 0
+23 6 2 1 0 0
+23 6 3 1 0 0
+23 6 4 1 0 0
+23 6 5 1 0 0
+23 6 6 1 0 0
+23 6 7 1 0 0
+23 6 8 1 0 0
+23 6 9 1 0 0
+23 6 10 1 0 0
+23 6 11 1 0 0
+23 6 12 1 0 0
+23 6 13 1 0 0
+23 6 14 1 0 0
+23 6 15 1 0 0
+23 6 16 1 0 0.306885
+23 6 17 1 0 0.445557
+23 6 18 1 0 0.571777
+23 6 19 1 0 0.693848
+23 6 20 1 0 0.80127
+23 6 21 1 0.122375 0.888672
+23 6 22 1 0.192017 0.956055
+23 6 23 1 0.214233 1
+23 6 24 1 0.230591 1
+23 6 25 1 0.243896 1
+23 6 26 1 0.25415 1
+23 6 27 0.924316 0.261475 1
+23 6 28 0.839355 0.266602 1
+23 6 29 0.75293 0.27002 1
+23 6 30 0.665039 0.272705 1
+23 6 31 0.575195 0.274658 1
+23 7 0 1 0 0
+23 7 1 1 0 0
+23 7 2 1 0 0
+23 7 3 1 0 0
+23 7 4 1 0 0
+23 7 5 1 0 0
+23 7 6 1 0 0
+23 7 7 1 0 0
+23 7 8 1 0 0
+23 7 9 1 0 0
+23 7 10 1 0 0
+23 7 11 1 0 0
+23 7 12 1 0 0
+23 7 13 1 0 0
+23 7 14 1 0 0
+23 7 15 1 0 0
+23 7 16 1 0 0.306885
+23 7 17 1 0 0.445557
+23 7 18 1 0 0.571777
+23 7 19 1 0 0.693359
+23 7 20 1 0 0.80127
+23 7 21 1 0.125488 0.888672
+23 7 22 1 0.193604 0.956055
+23 7 23 1 0.215454 1
+23 7 24 1 0.231689 1
+23 7 25 1 0.244873 1
+23 7 26 1 0.254883 1
+23 7 27 0.924316 0.261963 1
+23 7 28 0.839355 0.26709 1
+23 7 29 0.75293 0.270508 1
+23 7 30 0.665039 0.272949 1
+23 7 31 0.575195 0.274902 1
+23 8 0 1 0 0
+23 8 1 1 0 0
+23 8 2 1 0 0
+23 8 3 1 0 0
+23 8 4 1 0 0
+23 8 5 1 0 0
+23 8 6 1 0 0
+23 8 7 1 0 0
+23 8 8 1 0 0
+23 8 9 1 0 0
+23 8 10 1 0 0
+23 8 11 1 0 0
+23 8 12 1 0 0
+23 8 13 1 0 0
+23 8 14 1 0 0
+23 8 15 1 0 0
+23 8 16 1 0 0.306641
+23 8 17 1 0 0.445557
+23 8 18 1 0 0.571777
+23 8 19 1 0 0.693359
+23 8 20 1 0 0.80127
+23 8 21 1 0.131226 0.888672
+23 8 22 1 0.196777 0.956055
+23 8 23 1 0.218018 1
+23 8 24 1 0.233887 1
+23 8 25 1 0.246582 1
+23 8 26 1 0.256348 1
+23 8 27 0.923828 0.263184 1
+23 8 28 0.839355 0.268066 1
+23 8 29 0.752441 0.271484 1
+23 8 30 0.665039 0.273682 1
+23 8 31 0.574707 0.275635 1
+23 9 0 1 0 0
+23 9 1 1 0 0
+23 9 2 1 0 0
+23 9 3 1 0 0
+23 9 4 1 0 0
+23 9 5 1 0 0
+23 9 6 1 0 0
+23 9 7 1 0 0
+23 9 8 1 0 0
+23 9 9 1 0 0
+23 9 10 1 0 0
+23 9 11 1 0 0
+23 9 12 1 0 0
+23 9 13 1 0 0
+23 9 14 1 0 0
+23 9 15 1 0 0
+23 9 16 1 0 0.306152
+23 9 17 1 0 0.445312
+23 9 18 1 0 0.571289
+23 9 19 1 0 0.693359
+23 9 20 1 0 0.800781
+23 9 21 1 0.141357 0.888672
+23 9 22 1 0.202515 0.956055
+23 9 23 1 0.222778 1
+23 9 24 1 0.237915 1
+23 9 25 1 0.25 1
+23 9 26 1 0.259033 1
+23 9 27 0.923828 0.265625 1
+23 9 28 0.838867 0.27002 1
+23 9 29 0.752441 0.272949 1
+23 9 30 0.664551 0.275146 1
+23 9 31 0.574707 0.276855 1
+23 10 0 1 0 0
+23 10 1 1 0 0
+23 10 2 1 0 0
+23 10 3 1 0 0
+23 10 4 1 0 0
+23 10 5 1 0 0
+23 10 6 1 0 0
+23 10 7 1 0 0
+23 10 8 1 0 0
+23 10 9 1 0 0
+23 10 10 1 0 0
+23 10 11 1 0 0
+23 10 12 1 0 0
+23 10 13 1 0 0
+23 10 14 1 0 0
+23 10 15 1 0 0
+23 10 16 1 0 0.30542
+23 10 17 1 0 0.445068
+23 10 18 1 0 0.570801
+23 10 19 1 0 0.692871
+23 10 20 1 0 0.800781
+23 10 21 1 0.157593 0.888672
+23 10 22 1 0.212524 0.956055
+23 10 23 1 0.230957 1
+23 10 24 1 0.244873 1
+23 10 25 1 0.255859 1
+23 10 26 1 0.26416 1
+23 10 27 0.92334 0.269775 1
+23 10 28 0.838379 0.273682 1
+23 10 29 0.751953 0.276123 1
+23 10 30 0.664062 0.277588 1
+23 10 31 0.574219 0.278809 1
+23 11 0 1 0 0
+23 11 1 1 0 0
+23 11 2 1 0 0
+23 11 3 1 0 0
+23 11 4 1 0 0
+23 11 5 1 0 0
+23 11 6 1 0 0
+23 11 7 1 0 0
+23 11 8 1 0 0
+23 11 9 1 0 0
+23 11 10 1 0 0
+23 11 11 1 0 0
+23 11 12 1 0 0
+23 11 13 1 0 0
+23 11 14 1 0 0
+23 11 15 1 0 0
+23 11 16 1 0 0.304199
+23 11 17 1 0 0.44458
+23 11 18 1 0 0.570312
+23 11 19 1 0 0.692383
+23 11 20 1 0 0.800293
+23 11 21 1 0.181519 0.888184
+23 11 22 1 0.228516 0.956055
+23 11 23 1 0.244629 1
+23 11 24 1 0.256592 1
+23 11 25 1 0.266113 1
+23 11 26 1 0.272705 1
+23 11 27 0.922363 0.2771 1
+23 11 28 0.837891 0.279785 1
+23 11 29 0.750977 0.28125 1
+23 11 30 0.663086 0.281982 1
+23 11 31 0.573242 0.282471 1
+23 12 0 1 0 0
+23 12 1 1 0 0
+23 12 2 1 0 0
+23 12 3 1 0 0
+23 12 4 1 0 0
+23 12 5 1 0 0
+23 12 6 1 0 0
+23 12 7 1 0 0
+23 12 8 1 0 0
+23 12 9 1 0 0
+23 12 10 1 0 0
+23 12 11 1 0 0
+23 12 12 1 0 0
+23 12 13 1 0 0
+23 12 14 1 0 0
+23 12 15 1 0 0
+23 12 16 1 0 0.302246
+23 12 17 1 0 0.443604
+23 12 18 1 0 0.568848
+23 12 19 1 0 0.690918
+23 12 20 1 0 0.799316
+23 12 21 1 0.214355 0.888184
+23 12 22 1 0.25293 0.956055
+23 12 23 1 0.265625 1
+23 12 24 1 0.274902 1
+23 12 25 1 0.281982 1
+23 12 26 1 0.286377 1
+23 12 27 0.920898 0.288818 1
+23 12 28 0.836426 0.289795 1
+23 12 29 0.749512 0.289551 1
+23 12 30 0.661621 0.289062 1
+23 12 31 0.571777 0.288574 1
+23 13 0 1 0 0
+23 13 1 1 0 0
+23 13 2 1 0 0
+23 13 3 1 0 0
+23 13 4 1 0 0
+23 13 5 1 0 0
+23 13 6 1 0 0
+23 13 7 1 0 0
+23 13 8 1 0 0
+23 13 9 1 0 0
+23 13 10 1 0 0
+23 13 11 1 0 0
+23 13 12 1 0 0
+23 13 13 1 0 0
+23 13 14 1 0 0
+23 13 15 1 0 0
+23 13 16 1 0 0.299072
+23 13 17 1 0 0.442383
+23 13 18 1 0 0.566895
+23 13 19 1 0 0.688965
+23 13 20 1 0.154663 0.79834
+23 13 21 1 0.256592 0.887207
+23 13 22 1 0.286865 0.955566
+23 13 23 1 0.295654 1
+23 13 24 1 0.302002 1
+23 13 25 1 0.305908 1
+23 13 26 0.999512 0.307373 1
+23 13 27 0.918457 0.306885 1
+23 13 28 0.833984 0.305176 1
+23 13 29 0.74707 0.302734 1
+23 13 30 0.659668 0.300293 1
+23 13 31 0.569336 0.298096 1
+23 14 0 1 0 0
+23 14 1 1 0 0
+23 14 2 1 0 0
+23 14 3 1 0 0
+23 14 4 1 0 0
+23 14 5 1 0 0
+23 14 6 1 0 0
+23 14 7 1 0 0
+23 14 8 1 0 0
+23 14 9 1 0 0
+23 14 10 1 0 0
+23 14 11 1 0 0
+23 14 12 1 0 0
+23 14 13 1 0 0
+23 14 14 1 0 0
+23 14 15 1 0 0
+23 14 16 1 0 0.295166
+23 14 17 1 0 0.439697
+23 14 18 1 0 0.563477
+23 14 19 1 0.0736084 0.685547
+23 14 20 1 0.239014 0.795898
+23 14 21 1 0.30835 0.88623
+23 14 22 1 0.331299 0.95459
+23 14 23 1 0.336426 1
+23 14 24 1 0.339111 1
+23 14 25 1 0.339111 1
+23 14 26 0.995605 0.33667 1
+23 14 27 0.914551 0.332764 1
+23 14 28 0.830078 0.327637 1
+23 14 29 0.743652 0.322266 1
+23 14 30 0.655762 0.317139 1
+23 14 31 0.56543 0.312744 1
+23 15 0 1 0.194214 0
+23 15 1 1 0.194214 0
+23 15 2 1 0.194214 0
+23 15 3 1 0.194214 0
+23 15 4 1 0.194214 0
+23 15 5 1 0.194336 0
+23 15 6 1 0.194336 0
+23 15 7 1 0.19458 0
+23 15 8 1 0.194824 0
+23 15 9 1 0.195435 0
+23 15 10 1 0.196411 0
+23 15 11 1 0.19812 0
+23 15 12 1 0.20105 0
+23 15 13 1 0.205811 0
+23 15 14 1 0.207031 0
+23 15 15 1 0.19873 0
+23 15 16 1 0.187378 0.291016
+23 15 17 1 0.183594 0.434082
+23 15 18 1 0.19397 0.55957
+23 15 19 1 0.244995 0.680664
+23 15 20 1 0.318115 0.791992
+23 15 21 1 0.369629 0.884277
+23 15 22 1 0.386719 0.953613
+23 15 23 1 0.387695 1
+23 15 24 1 0.386475 1
+23 15 25 1 0.382568 1
+23 15 26 0.989746 0.375732 1
+23 15 27 0.908691 0.367432 1
+23 15 28 0.824219 0.358154 1
+23 15 29 0.737305 0.349121 1
+23 15 30 0.649902 0.340576 1
+23 15 31 0.55957 0.333008 1
+23 16 0 1 0.34082 0
+23 16 1 1 0.34082 0
+23 16 2 1 0.34082 0
+23 16 3 1 0.34082 0
+23 16 4 1 0.34082 0
+23 16 5 1 0.34082 0
+23 16 6 1 0.34082 0
+23 16 7 1 0.34082 0
+23 16 8 1 0.341064 0
+23 16 9 1 0.341309 0
+23 16 10 1 0.341797 0
+23 16 11 1 0.342529 0
+23 16 12 1 0.343994 0
+23 16 13 1 0.346191 0
+23 16 14 1 0.346191 0
+23 16 15 1 0.342529 0
+23 16 16 1 0.33667 0.289307
+23 16 17 1 0.331787 0.428711
+23 16 18 1 0.336426 0.555176
+23 16 19 1 0.353516 0.672852
+23 16 20 1 0.399414 0.786133
+23 16 21 1 0.439697 0.880859
+23 16 22 1 0.452148 0.951172
+23 16 23 1 0.449707 1
+23 16 24 1 0.44458 1
+23 16 25 1 0.436279 1
+23 16 26 0.97998 0.424805 1
+23 16 27 0.899414 0.411377 1
+23 16 28 0.814941 0.397705 1
+23 16 29 0.728516 0.384033 1
+23 16 30 0.641113 0.371582 1
+23 16 31 0.550293 0.360352 1
+23 17 0 1 0.458984 0
+23 17 1 1 0.458984 0
+23 17 2 1 0.459229 0
+23 17 3 1 0.459229 0
+23 17 4 1 0.459229 0
+23 17 5 1 0.459229 0
+23 17 6 1 0.459229 0
+23 17 7 1 0.459229 0
+23 17 8 1 0.459229 0
+23 17 9 1 0.459473 0
+23 17 10 1 0.459717 0
+23 17 11 1 0.460205 0
+23 17 12 1 0.461182 0
+23 17 13 1 0.462646 0
+23 17 14 1 0.462891 0
+23 17 15 1 0.460938 0
+23 17 16 1 0.457275 0.293945
+23 17 17 1 0.451904 0.426758
+23 17 18 1 0.449219 0.547852
+23 17 19 1 0.455322 0.663574
+23 17 20 1 0.48291 0.776367
+23 17 21 1 0.515625 0.875
+23 17 22 1 0.524902 0.947754
+23 17 23 1 0.519531 1
+23 17 24 1 0.510742 1
+23 17 25 1 0.498047 1
+23 17 26 0.966797 0.481445 1
+23 17 27 0.88623 0.463135 1
+23 17 28 0.801758 0.444336 1
+23 17 29 0.71582 0.42627 1
+23 17 30 0.628418 0.409424 1
+23 17 31 0.537598 0.394287 1
+23 18 0 1 0.568848 0
+23 18 1 1 0.568848 0
+23 18 2 1 0.568848 0
+23 18 3 1 0.568848 0
+23 18 4 1 0.568848 0
+23 18 5 1 0.568848 0
+23 18 6 1 0.568848 0
+23 18 7 1 0.568848 0
+23 18 8 1 0.569336 0
+23 18 9 1 0.569336 0
+23 18 10 1 0.569336 0
+23 18 11 1 0.569824 0
+23 18 12 1 0.570312 0
+23 18 13 1 0.571777 0
+23 18 14 1 0.572266 0
+23 18 15 1 0.571777 0.110107
+23 18 16 1 0.569824 0.307129
+23 18 17 1 0.56543 0.432373
+23 18 18 1 0.558594 0.544434
+23 18 19 1 0.557617 0.655762
+23 18 20 1 0.567383 0.763184
+23 18 21 1 0.593262 0.865723
+23 18 22 1 0.602051 0.941895
+23 18 23 1 0.59375 0.998047
+23 18 24 1 0.581543 1
+23 18 25 1 0.564453 1
+23 18 26 0.947754 0.543457 1
+23 18 27 0.867676 0.52002 1
+23 18 28 0.78418 0.496338 1
+23 18 29 0.69873 0.473633 1
+23 18 30 0.611328 0.452393 1
+23 18 31 0.52002 0.43335 1
+23 19 0 1 0.672852 0
+23 19 1 1 0.672852 0
+23 19 2 1 0.672852 0
+23 19 3 1 0.672852 0
+23 19 4 1 0.672852 0
+23 19 5 1 0.672852 0
+23 19 6 1 0.672852 0
+23 19 7 1 0.672852 0
+23 19 8 1 0.672852 0
+23 19 9 1 0.672852 0
+23 19 10 1 0.672852 0
+23 19 11 1 0.67334 0
+23 19 12 1 0.673828 0
+23 19 13 1 0.674805 0
+23 19 14 1 0.675781 0
+23 19 15 1 0.675781 0.157349
+23 19 16 1 0.675293 0.324219
+23 19 17 1 0.672363 0.443848
+23 19 18 1 0.666016 0.550293
+23 19 19 1 0.657227 0.649414
+23 19 20 1 0.654785 0.749512
+23 19 21 1 0.669434 0.851562
+23 19 22 1 0.678711 0.933594
+23 19 23 1 0.668945 0.990723
+23 19 24 1 0.653809 1
+23 19 25 0.996582 0.632324 1
+23 19 26 0.92334 0.606445 1
+23 19 27 0.84375 0.578613 1
+23 19 28 0.761719 0.550781 1
+23 19 29 0.677246 0.523926 1
+23 19 30 0.589844 0.498779 1
+23 19 31 0.496826 0.47583 1
+23 20 0 1 0.767578 0
+23 20 1 1 0.767578 0
+23 20 2 1 0.767578 0
+23 20 3 1 0.767578 0
+23 20 4 1 0.767578 0
+23 20 5 1 0.767578 0
+23 20 6 1 0.767578 0
+23 20 7 1 0.768066 0
+23 20 8 1 0.768066 0
+23 20 9 1 0.768066 0
+23 20 10 1 0.768066 0
+23 20 11 1 0.768066 0
+23 20 12 1 0.768555 0
+23 20 13 1 0.769531 0
+23 20 14 1 0.770508 0
+23 20 15 1 0.771484 0.17334
+23 20 16 1 0.771973 0.333984
+23 20 17 1 0.770996 0.453613
+23 20 18 1 0.766113 0.559082
+23 20 19 1 0.756836 0.653809
+23 20 20 1 0.744629 0.740723
+23 20 21 1 0.742188 0.833008
+23 20 22 1 0.751953 0.921387
+23 20 23 1 0.741211 0.981445
+23 20 24 1 0.724121 1
+23 20 25 0.964844 0.698242 1
+23 20 26 0.89209 0.668457 1
+23 20 27 0.814453 0.636719 1
+23 20 28 0.733887 0.605469 1
+23 20 29 0.650391 0.575195 1
+23 20 30 0.562988 0.546387 1
+23 20 31 0.468262 0.52002 1
+23 21 0 1 0.85498 0
+23 21 1 1 0.85498 0
+23 21 2 1 0.85498 0
+23 21 3 1 0.85498 0
+23 21 4 1 0.85498 0
+23 21 5 1 0.85498 0
+23 21 6 1 0.85498 0
+23 21 7 1 0.85498 0
+23 21 8 1 0.85498 0
+23 21 9 1 0.85498 0
+23 21 10 1 0.85498 0
+23 21 11 1 0.855469 0
+23 21 12 1 0.855469 0
+23 21 13 1 0.855957 0
+23 21 14 1 0.856934 0
+23 21 15 1 0.858398 0.146973
+23 21 16 1 0.859863 0.326904
+23 21 17 1 0.859863 0.45166
+23 21 18 1 0.857422 0.561035
+23 21 19 1 0.850586 0.658691
+23 21 20 1 0.837891 0.743164
+23 21 21 1 0.820801 0.819336
+23 21 22 1 0.819336 0.903809
+23 21 23 1 0.811035 0.96875
+23 21 24 0.987793 0.791016 1
+23 21 25 0.924805 0.761719 1
+23 21 26 0.854492 0.728516 1
+23 21 27 0.779297 0.694336 1
+23 21 28 0.701172 0.660645 1
+23 21 29 0.618652 0.627441 1
+23 21 30 0.530273 0.596191 1
+23 21 31 0.431396 0.566895 1
+23 22 0 1 0.931152 0
+23 22 1 1 0.931152 0
+23 22 2 1 0.931152 0
+23 22 3 1 0.931152 0
+23 22 4 1 0.931152 0
+23 22 5 1 0.931152 0
+23 22 6 1 0.931152 0
+23 22 7 1 0.931152 0
+23 22 8 1 0.931152 0
+23 22 9 1 0.931152 0
+23 22 10 1 0.931641 0
+23 22 11 1 0.931641 0
+23 22 12 1 0.931641 0
+23 22 13 1 0.932129 0
+23 22 14 1 0.932617 0
+23 22 15 1 0.93457 0
+23 22 16 1 0.936523 0.297607
+23 22 17 1 0.9375 0.433594
+23 22 18 1 0.936035 0.548828
+23 22 19 1 0.931152 0.651855
+23 22 20 1 0.921387 0.741699
+23 22 21 1 0.905762 0.818848
+23 22 22 1 0.884277 0.883789
+23 22 23 0.98877 0.876465 0.952637
+23 22 24 0.938477 0.852051 0.995605
+23 22 25 0.876953 0.820312 1
+23 22 26 0.810547 0.786621 1
+23 22 27 0.739258 0.751953 1
+23 22 28 0.663086 0.716309 1
+23 22 29 0.580566 0.681641 1
+23 22 30 0.490234 0.647461 1
+23 22 31 0.383789 0.614746 1
+23 23 0 1 0.992676 0
+23 23 1 1 0.992676 0
+23 23 2 1 0.992676 0
+23 23 3 1 0.992676 0
+23 23 4 1 0.992676 0
+23 23 5 1 0.992676 0
+23 23 6 1 0.992676 0
+23 23 7 1 0.992676 0
+23 23 8 1 0.992676 0
+23 23 9 1 0.992676 0
+23 23 10 1 0.992676 0
+23 23 11 1 0.992676 0
+23 23 12 1 0.993164 0
+23 23 13 1 0.993164 0
+23 23 14 1 0.993652 0
+23 23 15 1 0.995117 0
+23 23 16 1 0.997559 0.248169
+23 23 17 1 0.999023 0.402344
+23 23 18 1 0.999023 0.524414
+23 23 19 1 0.995117 0.630859
+23 23 20 1 0.987305 0.724609
+23 23 21 1 0.974609 0.807129
+23 23 22 0.979004 0.956543 0.877441
+23 23 23 0.934082 0.934082 0.934082
+23 23 24 0.884277 0.907227 0.977051
+23 23 25 0.828125 0.877441 1
+23 23 26 0.765625 0.844238 1
+23 23 27 0.696289 0.808594 1
+23 23 28 0.620117 0.771484 1
+23 23 29 0.535645 0.733398 1
+23 23 30 0.439453 0.696289 1
+23 23 31 0.318604 0.660156 1
+23 24 0 1 1 0
+23 24 1 1 1 0
+23 24 2 1 1 0
+23 24 3 1 1 0
+23 24 4 1 1 0
+23 24 5 1 1 0
+23 24 6 1 1 0
+23 24 7 1 1 0
+23 24 8 1 1 0
+23 24 9 1 1 0
+23 24 10 1 1 0
+23 24 11 1 1 0
+23 24 12 1 1 0
+23 24 13 1 1 0
+23 24 14 1 1 0
+23 24 15 1 1 0
+23 24 16 1 1 0.176392
+23 24 17 1 1 0.36377
+23 24 18 1 1 0.492676
+23 24 19 1 1 0.602051
+23 24 20 0.982422 1 0.697266
+23 24 21 0.951172 1 0.78125
+23 24 22 0.913086 1 0.852539
+23 24 23 0.873535 0.985352 0.913574
+23 24 24 0.834473 0.96875 0.96875
+23 24 25 0.78125 0.939941 1
+23 24 26 0.717773 0.90332 1
+23 24 27 0.647461 0.864746 1
+23 24 28 0.568848 0.824707 1
+23 24 29 0.480225 0.78418 1
+23 24 30 0.373779 0.744141 1
+23 24 31 0.215942 0.70459 1
+23 25 0 0.95752 1 0
+23 25 1 0.95752 1 0
+23 25 2 0.95752 1 0
+23 25 3 0.95752 1 0
+23 25 4 0.95752 1 0
+23 25 5 0.95752 1 0
+23 25 6 0.95752 1 0
+23 25 7 0.95752 1 0
+23 25 8 0.95752 1 0
+23 25 9 0.95752 1 0
+23 25 10 0.95752 1 0
+23 25 11 0.95752 1 0
+23 25 12 0.95752 1 0
+23 25 13 0.95752 1 0
+23 25 14 0.957031 1 0
+23 25 15 0.956543 1 0
+23 25 16 0.952637 1 0
+23 25 17 0.945801 1 0.314697
+23 25 18 0.935059 1 0.453369
+23 25 19 0.918457 1 0.565918
+23 25 20 0.896484 1 0.662598
+23 25 21 0.867676 1 0.748047
+23 25 22 0.833496 1 0.822754
+23 25 23 0.797852 1 0.888184
+23 25 24 0.760254 1 0.945801
+23 25 25 0.714355 0.999023 0.999023
+23 25 26 0.655762 0.968262 1
+23 25 27 0.583984 0.928711 1
+23 25 28 0.500488 0.885742 1
+23 25 29 0.401123 0.841309 1
+23 25 30 0.264404 0.797363 1
+23 25 31 0 0.753906 1
+23 26 0 0.853516 1 0
+23 26 1 0.853516 1 0
+23 26 2 0.853516 1 0
+23 26 3 0.853516 1 0
+23 26 4 0.853516 1 0
+23 26 5 0.853516 1 0
+23 26 6 0.853516 1 0
+23 26 7 0.853516 1 0
+23 26 8 0.853516 1 0
+23 26 9 0.853516 1 0
+23 26 10 0.853516 1 0
+23 26 11 0.853516 1 0
+23 26 12 0.853516 1 0
+23 26 13 0.853516 1 0
+23 26 14 0.853027 1 0
+23 26 15 0.853027 1 0
+23 26 16 0.848633 1 0
+23 26 17 0.841797 1 0.250732
+23 26 18 0.830566 1 0.407471
+23 26 19 0.814941 1 0.524902
+23 26 20 0.793945 1 0.624023
+23 26 21 0.767578 1 0.711914
+23 26 22 0.736328 1 0.789551
+23 26 23 0.702148 1 0.85791
+23 26 24 0.664551 1 0.91748
+23 26 25 0.618164 1 0.973145
+23 26 26 0.560547 1 1
+23 26 27 0.487061 0.990723 1
+23 26 28 0.392334 0.949219 1
+23 26 29 0.255127 0.90332 1
+23 26 30 0 0.855957 1
+23 26 31 0 0.809082 1
+23 27 0 0.730469 1 0
+23 27 1 0.730469 1 0
+23 27 2 0.730469 1 0
+23 27 3 0.730469 1 0
+23 27 4 0.730469 1 0
+23 27 5 0.730469 1 0
+23 27 6 0.730469 1 0
+23 27 7 0.730469 1 0
+23 27 8 0.730469 1 0
+23 27 9 0.730469 1 0
+23 27 10 0.730469 1 0
+23 27 11 0.72998 1 0
+23 27 12 0.72998 1 0
+23 27 13 0.72998 1 0
+23 27 14 0.72998 1 0
+23 27 15 0.72998 1 0
+23 27 16 0.726074 1 0
+23 27 17 0.718262 1 0.150879
+23 27 18 0.706543 1 0.35376
+23 27 19 0.69043 1 0.47876
+23 27 20 0.669434 1 0.581055
+23 27 21 0.643066 1 0.671387
+23 27 22 0.611328 1 0.751953
+23 27 23 0.575195 1 0.822266
+23 27 24 0.533691 1 0.883301
+23 27 25 0.481445 1 0.941895
+23 27 26 0.412354 1 0.996094
+23 27 27 0.314453 1 1
+23 27 28 0.102844 1 1
+23 27 29 0 0.963867 1
+23 27 30 0 0.916016 1
+23 27 31 0 0.866699 1
+23 28 0 0.577148 1 0
+23 28 1 0.577148 1 0
+23 28 2 0.577148 1 0
+23 28 3 0.577148 1 0
+23 28 4 0.577148 1 0
+23 28 5 0.577148 1 0
+23 28 6 0.577148 1 0
+23 28 7 0.577148 1 0
+23 28 8 0.577148 1 0
+23 28 9 0.577148 1 0
+23 28 10 0.577637 1 0
+23 28 11 0.577637 1 0
+23 28 12 0.577637 1 0
+23 28 13 0.577637 1 0
+23 28 14 0.577637 1 0
+23 28 15 0.577637 1 0
+23 28 16 0.57373 1 0
+23 28 17 0.563965 1 0
+23 28 18 0.549316 1 0.288574
+23 28 19 0.529785 1 0.427002
+23 28 20 0.504395 1 0.533691
+23 28 21 0.471924 1 0.626465
+23 28 22 0.430908 1 0.708984
+23 28 23 0.381104 1 0.780762
+23 28 24 0.317383 1 0.84375
+23 28 25 0.213135 1 0.904297
+23 28 26 0 1 0.961426
+23 28 27 0 1 1
+23 28 28 0 1 1
+23 28 29 0 1 1
+23 28 30 0 0.973633 1
+23 28 31 0 0.923828 1
+23 29 0 0.346924 1 0
+23 29 1 0.346924 1 0
+23 29 2 0.346924 1 0
+23 29 3 0.346924 1 0
+23 29 4 0.346924 1 0
+23 29 5 0.346924 1 0
+23 29 6 0.346924 1 0
+23 29 7 0.346924 1 0
+23 29 8 0.346924 1 0
+23 29 9 0.346924 1 0
+23 29 10 0.346924 1 0
+23 29 11 0.347168 1 0
+23 29 12 0.347168 1 0
+23 29 13 0.347412 1 0
+23 29 14 0.347656 1 0
+23 29 15 0.3479 1 0
+23 29 16 0.344482 1 0
+23 29 17 0.324219 1 0
+23 29 18 0.293701 1 0.198608
+23 29 19 0.247559 1 0.36792
+23 29 20 0.168823 1 0.481201
+23 29 21 0 1 0.57666
+23 29 22 0 1 0.660645
+23 29 23 0 1 0.733887
+23 29 24 0 1 0.797852
+23 29 25 0 1 0.860352
+23 29 26 0 1 0.92041
+23 29 27 0 1 0.976074
+23 29 28 0 1 1
+23 29 29 0 1 1
+23 29 30 0 1 1
+23 29 31 0 0.980469 1
+23 30 0 0 1 0
+23 30 1 0 1 0
+23 30 2 0 1 0
+23 30 3 0 1 0
+23 30 4 0 1 0
+23 30 5 0 1 0
+23 30 6 0 1 0
+23 30 7 0 1 0
+23 30 8 0 1 0
+23 30 9 0 1 0
+23 30 10 0 1 0
+23 30 11 0 1 0
+23 30 12 0 1 0
+23 30 13 0 1 0
+23 30 14 0 1 0
+23 30 15 0 1 0
+23 30 16 0 1 0
+23 30 17 0 1 0
+23 30 18 0 1 0
+23 30 19 0 1 0.297119
+23 30 20 0 1 0.422363
+23 30 21 0 1 0.521484
+23 30 22 0 1 0.607422
+23 30 23 0 1 0.681152
+23 30 24 0 1 0.746582
+23 30 25 0 1 0.810547
+23 30 26 0 1 0.872559
+23 30 27 0 1 0.931641
+23 30 28 0 1 0.986328
+23 30 29 0 1 1
+23 30 30 0 1 1
+23 30 31 0 1 1
+23 31 0 0 1 0
+23 31 1 0 1 0
+23 31 2 0 1 0
+23 31 3 0 1 0
+23 31 4 0 1 0
+23 31 5 0 1 0
+23 31 6 0 1 0
+23 31 7 0 1 0
+23 31 8 0 1 0
+23 31 9 0 1 0
+23 31 10 0 1 0
+23 31 11 0 1 0
+23 31 12 0 1 0
+23 31 13 0 1 0
+23 31 14 0 1 0
+23 31 15 0 1 0
+23 31 16 0 1 0
+23 31 17 0 1 0
+23 31 18 0 1 0
+23 31 19 0 1 0.202148
+23 31 20 0 1 0.355713
+23 31 21 0 1 0.461426
+23 31 22 0 1 0.549316
+23 31 23 0 1 0.624023
+23 31 24 0 1 0.69043
+23 31 25 0 1 0.755371
+23 31 26 0 1 0.819824
+23 31 27 0 1 0.881836
+23 31 28 0 1 0.94043
+23 31 29 0 1 0.994629
+23 31 30 0 1 1
+23 31 31 0 1 1
+24 0 0 1 0 0
+24 0 1 1 0 0
+24 0 2 1 0 0
+24 0 3 1 0 0
+24 0 4 1 0 0
+24 0 5 1 0 0
+24 0 6 1 0 0
+24 0 7 1 0 0
+24 0 8 1 0 0
+24 0 9 1 0 0
+24 0 10 1 0 0
+24 0 11 1 0 0
+24 0 12 1 0 0
+24 0 13 1 0 0
+24 0 14 1 0 0
+24 0 15 1 0 0
+24 0 16 1 0 0.249146
+24 0 17 1 0 0.406006
+24 0 18 1 0 0.531738
+24 0 19 1 0 0.651855
+24 0 20 1 0 0.760742
+24 0 21 1 0 0.854492
+24 0 22 1 0.149658 0.928711
+24 0 23 1 0.197998 0.98584
+24 0 24 1 0.217651 1
+24 0 25 1 0.234131 1
+24 0 26 1 0.247437 1
+24 0 27 1 0.257568 1
+24 0 28 0.939941 0.264893 1
+24 0 29 0.853027 0.27002 1
+24 0 30 0.765137 0.273438 1
+24 0 31 0.675293 0.276123 1
+24 1 0 1 0 0
+24 1 1 1 0 0
+24 1 2 1 0 0
+24 1 3 1 0 0
+24 1 4 1 0 0
+24 1 5 1 0 0
+24 1 6 1 0 0
+24 1 7 1 0 0
+24 1 8 1 0 0
+24 1 9 1 0 0
+24 1 10 1 0 0
+24 1 11 1 0 0
+24 1 12 1 0 0
+24 1 13 1 0 0
+24 1 14 1 0 0
+24 1 15 1 0 0
+24 1 16 1 0 0.249146
+24 1 17 1 0 0.406006
+24 1 18 1 0 0.531738
+24 1 19 1 0 0.651855
+24 1 20 1 0 0.760742
+24 1 21 1 0 0.854492
+24 1 22 1 0.14978 0.928711
+24 1 23 1 0.197998 0.98584
+24 1 24 1 0.217651 1
+24 1 25 1 0.234131 1
+24 1 26 1 0.247437 1
+24 1 27 1 0.257568 1
+24 1 28 0.939941 0.264893 1
+24 1 29 0.853027 0.27002 1
+24 1 30 0.765137 0.273438 1
+24 1 31 0.675293 0.276123 1
+24 2 0 1 0 0
+24 2 1 1 0 0
+24 2 2 1 0 0
+24 2 3 1 0 0
+24 2 4 1 0 0
+24 2 5 1 0 0
+24 2 6 1 0 0
+24 2 7 1 0 0
+24 2 8 1 0 0
+24 2 9 1 0 0
+24 2 10 1 0 0
+24 2 11 1 0 0
+24 2 12 1 0 0
+24 2 13 1 0 0
+24 2 14 1 0 0
+24 2 15 1 0 0
+24 2 16 1 0 0.249146
+24 2 17 1 0 0.406006
+24 2 18 1 0 0.53125
+24 2 19 1 0 0.651855
+24 2 20 1 0 0.760742
+24 2 21 1 0 0.854492
+24 2 22 1 0.14978 0.928711
+24 2 23 1 0.19812 0.98584
+24 2 24 1 0.217651 1
+24 2 25 1 0.234131 1
+24 2 26 1 0.247437 1
+24 2 27 1 0.257568 1
+24 2 28 0.939941 0.264893 1
+24 2 29 0.853027 0.27002 1
+24 2 30 0.765137 0.273438 1
+24 2 31 0.675293 0.276123 1
+24 3 0 1 0 0
+24 3 1 1 0 0
+24 3 2 1 0 0
+24 3 3 1 0 0
+24 3 4 1 0 0
+24 3 5 1 0 0
+24 3 6 1 0 0
+24 3 7 1 0 0
+24 3 8 1 0 0
+24 3 9 1 0 0
+24 3 10 1 0 0
+24 3 11 1 0 0
+24 3 12 1 0 0
+24 3 13 1 0 0
+24 3 14 1 0 0
+24 3 15 1 0 0
+24 3 16 1 0 0.249146
+24 3 17 1 0 0.406006
+24 3 18 1 0 0.53125
+24 3 19 1 0 0.651855
+24 3 20 1 0 0.760742
+24 3 21 1 0 0.854492
+24 3 22 1 0.150024 0.928711
+24 3 23 1 0.198242 0.98584
+24 3 24 1 0.217773 1
+24 3 25 1 0.234253 1
+24 3 26 1 0.247559 1
+24 3 27 1 0.257568 1
+24 3 28 0.939941 0.264893 1
+24 3 29 0.853027 0.27002 1
+24 3 30 0.765137 0.273682 1
+24 3 31 0.675293 0.276123 1
+24 4 0 1 0 0
+24 4 1 1 0 0
+24 4 2 1 0 0
+24 4 3 1 0 0
+24 4 4 1 0 0
+24 4 5 1 0 0
+24 4 6 1 0 0
+24 4 7 1 0 0
+24 4 8 1 0 0
+24 4 9 1 0 0
+24 4 10 1 0 0
+24 4 11 1 0 0
+24 4 12 1 0 0
+24 4 13 1 0 0
+24 4 14 1 0 0
+24 4 15 1 0 0
+24 4 16 1 0 0.249146
+24 4 17 1 0 0.406006
+24 4 18 1 0 0.53125
+24 4 19 1 0 0.651855
+24 4 20 1 0 0.760742
+24 4 21 1 0 0.854492
+24 4 22 1 0.150269 0.928711
+24 4 23 1 0.198364 0.98584
+24 4 24 1 0.217896 1
+24 4 25 1 0.234375 1
+24 4 26 1 0.247559 1
+24 4 27 1 0.257568 1
+24 4 28 0.939941 0.264893 1
+24 4 29 0.853027 0.27002 1
+24 4 30 0.765137 0.273682 1
+24 4 31 0.675293 0.276123 1
+24 5 0 1 0 0
+24 5 1 1 0 0
+24 5 2 1 0 0
+24 5 3 1 0 0
+24 5 4 1 0 0
+24 5 5 1 0 0
+24 5 6 1 0 0
+24 5 7 1 0 0
+24 5 8 1 0 0
+24 5 9 1 0 0
+24 5 10 1 0 0
+24 5 11 1 0 0
+24 5 12 1 0 0
+24 5 13 1 0 0
+24 5 14 1 0 0
+24 5 15 1 0 0
+24 5 16 1 0 0.249146
+24 5 17 1 0 0.406006
+24 5 18 1 0 0.53125
+24 5 19 1 0 0.651855
+24 5 20 1 0 0.760742
+24 5 21 1 0 0.854492
+24 5 22 1 0.150879 0.928711
+24 5 23 1 0.19873 0.98584
+24 5 24 1 0.218262 1
+24 5 25 1 0.234619 1
+24 5 26 1 0.247803 1
+24 5 27 1 0.257812 1
+24 5 28 0.939941 0.265137 1
+24 5 29 0.853027 0.270264 1
+24 5 30 0.765137 0.273682 1
+24 5 31 0.675293 0.276367 1
+24 6 0 1 0 0
+24 6 1 1 0 0
+24 6 2 1 0 0
+24 6 3 1 0 0
+24 6 4 1 0 0
+24 6 5 1 0 0
+24 6 6 1 0 0
+24 6 7 1 0 0
+24 6 8 1 0 0
+24 6 9 1 0 0
+24 6 10 1 0 0
+24 6 11 1 0 0
+24 6 12 1 0 0
+24 6 13 1 0 0
+24 6 14 1 0 0
+24 6 15 1 0 0
+24 6 16 1 0 0.249023
+24 6 17 1 0 0.406006
+24 6 18 1 0 0.53125
+24 6 19 1 0 0.651855
+24 6 20 1 0 0.760742
+24 6 21 1 0 0.854492
+24 6 22 1 0.151978 0.928711
+24 6 23 1 0.199463 0.98584
+24 6 24 1 0.218872 1
+24 6 25 1 0.235107 1
+24 6 26 1 0.248291 1
+24 6 27 1 0.258301 1
+24 6 28 0.939941 0.265381 1
+24 6 29 0.853027 0.270508 1
+24 6 30 0.764648 0.273926 1
+24 6 31 0.675293 0.276367 1
+24 7 0 1 0 0
+24 7 1 1 0 0
+24 7 2 1 0 0
+24 7 3 1 0 0
+24 7 4 1 0 0
+24 7 5 1 0 0
+24 7 6 1 0 0
+24 7 7 1 0 0
+24 7 8 1 0 0
+24 7 9 1 0 0
+24 7 10 1 0 0
+24 7 11 1 0 0
+24 7 12 1 0 0
+24 7 13 1 0 0
+24 7 14 1 0 0
+24 7 15 1 0 0
+24 7 16 1 0 0.249023
+24 7 17 1 0 0.406006
+24 7 18 1 0 0.53125
+24 7 19 1 0 0.651367
+24 7 20 1 0 0.760742
+24 7 21 1 0 0.854492
+24 7 22 1 0.154053 0.928711
+24 7 23 1 0.200806 0.98584
+24 7 24 1 0.219971 1
+24 7 25 1 0.236084 1
+24 7 26 1 0.249023 1
+24 7 27 1 0.258789 1
+24 7 28 0.939941 0.265869 1
+24 7 29 0.853027 0.270996 1
+24 7 30 0.764648 0.274414 1
+24 7 31 0.675293 0.276855 1
+24 8 0 1 0 0
+24 8 1 1 0 0
+24 8 2 1 0 0
+24 8 3 1 0 0
+24 8 4 1 0 0
+24 8 5 1 0 0
+24 8 6 1 0 0
+24 8 7 1 0 0
+24 8 8 1 0 0
+24 8 9 1 0 0
+24 8 10 1 0 0
+24 8 11 1 0 0
+24 8 12 1 0 0
+24 8 13 1 0 0
+24 8 14 1 0 0
+24 8 15 1 0 0
+24 8 16 1 0 0.248779
+24 8 17 1 0 0.405762
+24 8 18 1 0 0.53125
+24 8 19 1 0 0.651367
+24 8 20 1 0 0.760742
+24 8 21 1 0 0.854492
+24 8 22 1 0.157959 0.928711
+24 8 23 1 0.203491 0.98584
+24 8 24 1 0.222168 1
+24 8 25 1 0.237915 1
+24 8 26 1 0.250488 1
+24 8 27 1 0.260254 1
+24 8 28 0.939941 0.26709 1
+24 8 29 0.853027 0.271729 1
+24 8 30 0.764648 0.275146 1
+24 8 31 0.675293 0.277344 1
+24 9 0 1 0 0
+24 9 1 1 0 0
+24 9 2 1 0 0
+24 9 3 1 0 0
+24 9 4 1 0 0
+24 9 5 1 0 0
+24 9 6 1 0 0
+24 9 7 1 0 0
+24 9 8 1 0 0
+24 9 9 1 0 0
+24 9 10 1 0 0
+24 9 11 1 0 0
+24 9 12 1 0 0
+24 9 13 1 0 0
+24 9 14 1 0 0
+24 9 15 1 0 0
+24 9 16 1 0 0.248291
+24 9 17 1 0 0.405762
+24 9 18 1 0 0.53125
+24 9 19 1 0 0.651367
+24 9 20 1 0 0.760742
+24 9 21 1 0 0.854492
+24 9 22 1 0.165161 0.928711
+24 9 23 1 0.208374 0.98584
+24 9 24 1 0.226318 1
+24 9 25 1 0.241333 1
+24 9 26 1 0.253418 1
+24 9 27 1 0.262695 1
+24 9 28 0.939453 0.269043 1
+24 9 29 0.852539 0.273438 1
+24 9 30 0.764648 0.276611 1
+24 9 31 0.674805 0.278564 1
+24 10 0 1 0 0
+24 10 1 1 0 0
+24 10 2 1 0 0
+24 10 3 1 0 0
+24 10 4 1 0 0
+24 10 5 1 0 0
+24 10 6 1 0 0
+24 10 7 1 0 0
+24 10 8 1 0 0
+24 10 9 1 0 0
+24 10 10 1 0 0
+24 10 11 1 0 0
+24 10 12 1 0 0
+24 10 13 1 0 0
+24 10 14 1 0 0
+24 10 15 1 0 0
+24 10 16 1 0 0.247559
+24 10 17 1 0 0.405518
+24 10 18 1 0 0.530762
+24 10 19 1 0 0.650879
+24 10 20 1 0 0.760254
+24 10 21 1 0 0.854004
+24 10 22 1 0.177246 0.928711
+24 10 23 1 0.217041 0.98584
+24 10 24 1 0.233521 1
+24 10 25 1 0.247559 1
+24 10 26 1 0.258789 1
+24 10 27 1 0.26709 1
+24 10 28 0.938965 0.272705 1
+24 10 29 0.852539 0.276611 1
+24 10 30 0.76416 0.279053 1
+24 10 31 0.674316 0.280762 1
+24 11 0 1 0 0
+24 11 1 1 0 0
+24 11 2 1 0 0
+24 11 3 1 0 0
+24 11 4 1 0 0
+24 11 5 1 0 0
+24 11 6 1 0 0
+24 11 7 1 0 0
+24 11 8 1 0 0
+24 11 9 1 0 0
+24 11 10 1 0 0
+24 11 11 1 0 0
+24 11 12 1 0 0
+24 11 13 1 0 0
+24 11 14 1 0 0
+24 11 15 1 0 0
+24 11 16 1 0 0.246216
+24 11 17 1 0 0.404785
+24 11 18 1 0 0.530273
+24 11 19 1 0 0.650391
+24 11 20 1 0 0.759766
+24 11 21 1 0 0.854004
+24 11 22 1 0.195923 0.928711
+24 11 23 1 0.230957 0.98584
+24 11 24 1 0.245483 1
+24 11 25 1 0.257812 1
+24 11 26 1 0.267578 1
+24 11 27 1 0.274414 1
+24 11 28 0.938477 0.279053 1
+24 11 29 0.851562 0.281982 1
+24 11 30 0.763184 0.283447 1
+24 11 31 0.673828 0.284424 1
+24 12 0 1 0 0
+24 12 1 1 0 0
+24 12 2 1 0 0
+24 12 3 1 0 0
+24 12 4 1 0 0
+24 12 5 1 0 0
+24 12 6 1 0 0
+24 12 7 1 0 0
+24 12 8 1 0 0
+24 12 9 1 0 0
+24 12 10 1 0 0
+24 12 11 1 0 0
+24 12 12 1 0 0
+24 12 13 1 0 0
+24 12 14 1 0 0
+24 12 15 1 0 0
+24 12 16 1 0 0.244019
+24 12 17 1 0 0.403076
+24 12 18 1 0 0.529297
+24 12 19 1 0 0.649414
+24 12 20 1 0 0.758789
+24 12 21 1 0.103577 0.853516
+24 12 22 1 0.223145 0.928223
+24 12 23 1 0.252441 0.985352
+24 12 24 1 0.264404 1
+24 12 25 1 0.27417 1
+24 12 26 1 0.281738 1
+24 12 27 1 0.286621 1
+24 12 28 0.937012 0.289307 1
+24 12 29 0.850586 0.290527 1
+24 12 30 0.762207 0.290771 1
+24 12 31 0.672363 0.290771 1
+24 13 0 1 0 0
+24 13 1 1 0 0
+24 13 2 1 0 0
+24 13 3 1 0 0
+24 13 4 1 0 0
+24 13 5 1 0 0
+24 13 6 1 0 0
+24 13 7 1 0 0
+24 13 8 1 0 0
+24 13 9 1 0 0
+24 13 10 1 0 0
+24 13 11 1 0 0
+24 13 12 1 0 0
+24 13 13 1 0 0
+24 13 14 1 0 0
+24 13 15 1 0 0
+24 13 16 1 0 0.240845
+24 13 17 1 0 0.400391
+24 13 18 1 0 0.527832
+24 13 19 1 0 0.647461
+24 13 20 1 0 0.757812
+24 13 21 1 0.180176 0.852539
+24 13 22 1 0.259766 0.927734
+24 13 23 1 0.282959 0.985352
+24 13 24 1 0.291504 1
+24 13 25 1 0.29834 1
+24 13 26 1 0.302979 1
+24 13 27 1 0.304932 1
+24 13 28 0.935059 0.305176 1
+24 13 29 0.848145 0.304199 1
+24 13 30 0.760254 0.30249 1
+24 13 31 0.67041 0.300537 1
+24 14 0 1 0 0
+24 14 1 1 0 0
+24 14 2 1 0 0
+24 14 3 1 0 0
+24 14 4 1 0 0
+24 14 5 1 0 0
+24 14 6 1 0 0
+24 14 7 1 0 0
+24 14 8 1 0 0
+24 14 9 1 0 0
+24 14 10 1 0 0
+24 14 11 1 0 0
+24 14 12 1 0 0
+24 14 13 1 0 0
+24 14 14 1 0 0
+24 14 15 1 0 0
+24 14 16 1 0 0.236328
+24 14 17 1 0 0.396729
+24 14 18 1 0 0.525391
+24 14 19 1 0 0.644531
+24 14 20 1 0.0983276 0.755371
+24 14 21 1 0.248779 0.851074
+24 14 22 1 0.306396 0.926758
+24 14 23 1 0.32373 0.984863
+24 14 24 1 0.328857 1
+24 14 25 1 0.332031 1
+24 14 26 1 0.333008 1
+24 14 27 1 0.331299 1
+24 14 28 0.931641 0.328125 1
+24 14 29 0.845215 0.323975 1
+24 14 30 0.756836 0.31958 1
+24 14 31 0.66748 0.315186 1
+24 15 0 1 0.105225 0
+24 15 1 1 0.105225 0
+24 15 2 1 0.105225 0
+24 15 3 1 0.105225 0
+24 15 4 1 0.105286 0
+24 15 5 1 0.105408 0
+24 15 6 1 0.10553 0
+24 15 7 1 0.105896 0
+24 15 8 1 0.106506 0
+24 15 9 1 0.107666 0
+24 15 10 1 0.109802 0
+24 15 11 1 0.113342 0
+24 15 12 1 0.119141 0
+24 15 13 1 0.127808 0
+24 15 14 1 0.133667 0
+24 15 15 1 0.125854 0
+24 15 16 1 0.100647 0.231445
+24 15 17 1 0.0756226 0.391846
+24 15 18 1 0.0952759 0.522461
+24 15 19 1 0.147827 0.640137
+24 15 20 1 0.241577 0.751465
+24 15 21 1 0.319336 0.848633
+24 15 22 1 0.362549 0.925781
+24 15 23 1 0.375 0.983887
+24 15 24 1 0.376465 1
+24 15 25 1 0.375977 1
+24 15 26 1 0.372559 1
+24 15 27 1 0.366943 1
+24 15 28 0.926758 0.359619 1
+24 15 29 0.839844 0.351562 1
+24 15 30 0.751953 0.343506 1
+24 15 31 0.662598 0.336182 1
+24 16 0 1 0.299805 0
+24 16 1 1 0.299805 0
+24 16 2 1 0.299805 0
+24 16 3 1 0.299805 0
+24 16 4 1 0.299805 0
+24 16 5 1 0.299805 0
+24 16 6 1 0.299805 0
+24 16 7 1 0.300049 0
+24 16 8 1 0.300049 0
+24 16 9 1 0.300537 0
+24 16 10 1 0.301025 0
+24 16 11 1 0.301758 0
+24 16 12 1 0.303467 0
+24 16 13 1 0.305908 0
+24 16 14 1 0.307617 0
+24 16 15 1 0.304443 0
+24 16 16 1 0.29834 0.228516
+24 16 17 1 0.291992 0.386963
+24 16 18 1 0.293945 0.518066
+24 16 19 1 0.302979 0.634277
+24 16 20 1 0.342529 0.745605
+24 16 21 1 0.394531 0.844727
+24 16 22 1 0.427979 0.92334
+24 16 23 1 0.436279 0.981934
+24 16 24 1 0.434326 1
+24 16 25 1 0.429932 1
+24 16 26 1 0.422363 1
+24 16 27 1 0.411865 1
+24 16 28 0.918945 0.399902 1
+24 16 29 0.83252 0.387451 1
+24 16 30 0.744629 0.375244 1
+24 16 31 0.654785 0.364014 1
+24 17 0 1 0.423828 0
+24 17 1 1 0.423828 0
+24 17 2 1 0.423828 0
+24 17 3 1 0.423828 0
+24 17 4 1 0.423828 0
+24 17 5 1 0.423828 0
+24 17 6 1 0.423828 0
+24 17 7 1 0.423828 0
+24 17 8 1 0.424072 0
+24 17 9 1 0.424072 0
+24 17 10 1 0.424561 0
+24 17 11 1 0.425049 0
+24 17 12 1 0.426025 0
+24 17 13 1 0.42749 0
+24 17 14 1 0.428711 0
+24 17 15 1 0.427002 0
+24 17 16 1 0.423584 0.232178
+24 17 17 1 0.418945 0.38501
+24 17 18 1 0.415527 0.510742
+24 17 19 1 0.419434 0.62793
+24 17 20 1 0.436768 0.736816
+24 17 21 1 0.4729 0.838379
+24 17 22 1 0.5 0.919434
+24 17 23 1 0.504883 0.979492
+24 17 24 1 0.5 1
+24 17 25 1 0.491699 1
+24 17 26 1 0.479736 1
+24 17 27 0.990723 0.4646 1
+24 17 28 0.907715 0.447754 1
+24 17 29 0.821289 0.43042 1
+24 17 30 0.733887 0.413818 1
+24 17 31 0.644531 0.398193 1
+24 18 0 1 0.533691 0
+24 18 1 1 0.533691 0
+24 18 2 1 0.533691 0
+24 18 3 1 0.533691 0
+24 18 4 1 0.533691 0
+24 18 5 1 0.533691 0
+24 18 6 1 0.533691 0
+24 18 7 1 0.533691 0
+24 18 8 1 0.533691 0
+24 18 9 1 0.53418 0
+24 18 10 1 0.53418 0
+24 18 11 1 0.534668 0
+24 18 12 1 0.535156 0
+24 18 13 1 0.536621 0
+24 18 14 1 0.537598 0
+24 18 15 1 0.537109 0
+24 18 16 1 0.535645 0.245728
+24 18 17 1 0.532227 0.388916
+24 18 18 1 0.527344 0.507812
+24 18 19 1 0.525391 0.620117
+24 18 20 1 0.530273 0.726074
+24 18 21 1 0.552734 0.828125
+24 18 22 1 0.574707 0.913086
+24 18 23 1 0.578125 0.975098
+24 18 24 1 0.570312 1
+24 18 25 1 0.558594 1
+24 18 26 1 0.54248 1
+24 18 27 0.975098 0.522461 1
+24 18 28 0.892578 0.500488 1
+24 18 29 0.806641 0.478516 1
+24 18 30 0.719238 0.457275 1
+24 18 31 0.629883 0.437744 1
+24 19 0 1 0.635742 0
+24 19 1 1 0.635742 0
+24 19 2 1 0.635742 0
+24 19 3 1 0.635742 0
+24 19 4 1 0.635742 0
+24 19 5 1 0.635742 0
+24 19 6 1 0.635742 0
+24 19 7 1 0.635742 0
+24 19 8 1 0.635742 0
+24 19 9 1 0.635742 0
+24 19 10 1 0.63623 0
+24 19 11 1 0.63623 0
+24 19 12 1 0.636719 0
+24 19 13 1 0.637695 0
+24 19 14 1 0.63916 0
+24 19 15 1 0.639648 0
+24 19 16 1 0.639648 0.266113
+24 19 17 1 0.637695 0.399414
+24 19 18 1 0.633301 0.511719
+24 19 19 1 0.626465 0.615234
+24 19 20 1 0.624512 0.716797
+24 19 21 1 0.631348 0.814453
+24 19 22 1 0.649414 0.90332
+24 19 23 1 0.651855 0.968262
+24 19 24 1 0.64209 1
+24 19 25 1 0.627441 1
+24 19 26 1 0.606934 1
+24 19 27 0.95459 0.582031 1
+24 19 28 0.873047 0.555664 1
+24 19 29 0.787598 0.529297 1
+24 19 30 0.701172 0.503906 1
+24 19 31 0.611816 0.480225 1
+24 20 0 1 0.729004 0
+24 20 1 1 0.729004 0
+24 20 2 1 0.729004 0
+24 20 3 1 0.729004 0
+24 20 4 1 0.729492 0
+24 20 5 1 0.729492 0
+24 20 6 1 0.729492 0
+24 20 7 1 0.729492 0
+24 20 8 1 0.729492 0
+24 20 9 1 0.729492 0
+24 20 10 1 0.729492 0
+24 20 11 1 0.72998 0
+24 20 12 1 0.72998 0
+24 20 13 1 0.730957 0
+24 20 14 1 0.731934 0
+24 20 15 1 0.73291 0
+24 20 16 1 0.733887 0.283447
+24 20 17 1 0.733398 0.411133
+24 20 18 1 0.730469 0.52002
+24 20 19 1 0.724121 0.617676
+24 20 20 1 0.714355 0.708008
+24 20 21 1 0.710449 0.799805
+24 20 22 1 0.719727 0.889648
+24 20 23 1 0.723145 0.958984
+24 20 24 1 0.711914 1
+24 20 25 1 0.694824 1
+24 20 26 1 0.67041 1
+24 20 27 0.929199 0.641113 1
+24 20 28 0.848633 0.61084 1
+24 20 29 0.764648 0.580566 1
+24 20 30 0.678711 0.551758 1
+24 20 31 0.589844 0.524414 1
+24 21 0 1 0.815918 0
+24 21 1 1 0.815918 0
+24 21 2 1 0.815918 0
+24 21 3 1 0.815918 0
+24 21 4 1 0.815918 0
+24 21 5 1 0.815918 0
+24 21 6 1 0.815918 0
+24 21 7 1 0.815918 0
+24 21 8 1 0.815918 0
+24 21 9 1 0.815918 0
+24 21 10 1 0.815918 0
+24 21 11 1 0.815918 0
+24 21 12 1 0.816406 0
+24 21 13 1 0.816895 0
+24 21 14 1 0.817871 0
+24 21 15 1 0.819336 0
+24 21 16 1 0.820801 0.287598
+24 21 17 1 0.821289 0.416016
+24 21 18 1 0.819824 0.525391
+24 21 19 1 0.814941 0.623047
+24 21 20 1 0.805176 0.708984
+24 21 21 1 0.791992 0.789062
+24 21 22 1 0.787109 0.871582
+24 21 23 1 0.791504 0.946289
+24 21 24 1 0.779785 0.999512
+24 21 25 1 0.760254 1
+24 21 26 0.972168 0.731934 1
+24 21 27 0.897949 0.699219 1
+24 21 28 0.818848 0.665527 1
+24 21 29 0.736816 0.632324 1
+24 21 30 0.652344 0.600098 1
+24 21 31 0.562988 0.569824 1
+24 22 0 1 0.893066 0
+24 22 1 1 0.893066 0
+24 22 2 1 0.893066 0
+24 22 3 1 0.893066 0
+24 22 4 1 0.893066 0
+24 22 5 1 0.893066 0
+24 22 6 1 0.893066 0
+24 22 7 1 0.893066 0
+24 22 8 1 0.893066 0
+24 22 9 1 0.893066 0
+24 22 10 1 0.893555 0
+24 22 11 1 0.893555 0
+24 22 12 1 0.893555 0
+24 22 13 1 0.894043 0
+24 22 14 1 0.894531 0
+24 22 15 1 0.895996 0
+24 22 16 1 0.898438 0.270508
+24 22 17 1 0.899902 0.407227
+24 22 18 1 0.899414 0.520996
+24 22 19 1 0.895996 0.621582
+24 22 20 1 0.888184 0.709961
+24 22 21 1 0.875 0.787598
+24 22 22 1 0.85791 0.856445
+24 22 23 1 0.853516 0.929199
+24 22 24 1 0.84375 0.986328
+24 22 25 0.998047 0.821289 1
+24 22 26 0.932617 0.789551 1
+24 22 27 0.86084 0.754883 1
+24 22 28 0.784668 0.719238 1
+24 22 29 0.705078 0.683594 1
+24 22 30 0.621094 0.649414 1
+24 22 31 0.530762 0.616211 1
+24 23 0 1 0.958496 0
+24 23 1 1 0.958496 0
+24 23 2 1 0.958496 0
+24 23 3 1 0.958496 0
+24 23 4 1 0.958496 0
+24 23 5 1 0.958496 0
+24 23 6 1 0.958496 0
+24 23 7 1 0.958496 0
+24 23 8 1 0.958496 0
+24 23 9 1 0.958496 0
+24 23 10 1 0.958496 0
+24 23 11 1 0.958496 0
+24 23 12 1 0.958984 0
+24 23 13 1 0.958984 0
+24 23 14 1 0.959473 0
+24 23 15 1 0.960938 0
+24 23 16 1 0.963379 0.229492
+24 23 17 1 0.965332 0.384033
+24 23 18 1 0.966309 0.503906
+24 23 19 1 0.963867 0.608887
+24 23 20 1 0.958008 0.70166
+24 23 21 1 0.947266 0.783203
+24 23 22 1 0.931152 0.853027
+24 23 23 1 0.910645 0.910645
+24 23 24 1 0.901367 0.970703
+24 23 25 0.95166 0.875488 1
+24 23 26 0.888672 0.841797 1
+24 23 27 0.820801 0.806641 1
+24 23 28 0.748047 0.770996 1
+24 23 29 0.669922 0.734375 1
+24 23 30 0.585938 0.698242 1
+24 23 31 0.493164 0.662598 1
+24 24 0 1 1 0
+24 24 1 1 1 0
+24 24 2 1 1 0
+24 24 3 1 1 0
+24 24 4 1 1 0
+24 24 5 1 1 0
+24 24 6 1 1 0
+24 24 7 1 1 0
+24 24 8 1 1 0
+24 24 9 1 1 0
+24 24 10 1 1 0
+24 24 11 1 1 0
+24 24 12 1 1 0
+24 24 13 1 1 0
+24 24 14 1 1 0
+24 24 15 1 1 0
+24 24 16 1 1 0.157471
+24 24 17 1 1 0.349854
+24 24 18 1 1 0.477539
+24 24 19 1 1 0.586426
+24 24 20 1 1 0.681641
+24 24 21 1 1 0.766602
+24 24 22 1 0.991211 0.84082
+24 24 23 0.994629 0.974121 0.902832
+24 24 24 0.953125 0.953125 0.953125
+24 24 25 0.901855 0.925293 0.995605
+24 24 26 0.84375 0.893555 1
+24 24 27 0.779297 0.858887 1
+24 24 28 0.708496 0.822266 1
+24 24 29 0.630371 0.783691 1
+24 24 30 0.544434 0.745117 1
+24 24 31 0.446533 0.706543 1
+24 25 0 1 1 0
+24 25 1 1 1 0
+24 25 2 1 1 0
+24 25 3 1 1 0
+24 25 4 1 1 0
+24 25 5 1 1 0
+24 25 6 1 1 0
+24 25 7 1 1 0
+24 25 8 1 1 0
+24 25 9 1 1 0
+24 25 10 1 1 0
+24 25 11 1 1 0
+24 25 12 1 1 0
+24 25 13 1 1 0
+24 25 14 1 1 0
+24 25 15 1 1 0
+24 25 16 1 1 0
+24 25 17 1 1 0.303223
+24 25 18 1 1 0.442139
+24 25 19 1 1 0.554688
+24 25 20 1 1 0.651855
+24 25 21 0.993652 1 0.73877
+24 25 22 0.962891 1 0.813965
+24 25 23 0.927246 1 0.876465
+24 25 24 0.890625 1 0.931152
+24 25 25 0.850586 0.98584 0.98584
+24 25 26 0.79541 0.955566 1
+24 25 27 0.730469 0.917969 1
+24 25 28 0.658691 0.878418 1
+24 25 29 0.579102 0.837402 1
+24 25 30 0.48877 0.79541 1
+24 25 31 0.380615 0.753906 1
+24 26 0 0.973145 1 0
+24 26 1 0.973145 1 0
+24 26 2 0.973145 1 0
+24 26 3 0.973145 1 0
+24 26 4 0.973145 1 0
+24 26 5 0.973145 1 0
+24 26 6 0.973145 1 0
+24 26 7 0.973145 1 0
+24 26 8 0.973145 1 0
+24 26 9 0.973145 1 0
+24 26 10 0.973145 1 0
+24 26 11 0.972656 1 0
+24 26 12 0.972656 1 0
+24 26 13 0.972656 1 0
+24 26 14 0.972656 1 0
+24 26 15 0.972168 1 0
+24 26 16 0.969727 1 0
+24 26 17 0.965332 1 0.240112
+24 26 18 0.95752 1 0.398438
+24 26 19 0.945312 1 0.516113
+24 26 20 0.928223 1 0.615234
+24 26 21 0.905762 1 0.702637
+24 26 22 0.877441 1 0.779785
+24 26 23 0.845703 1 0.845703
+24 26 24 0.812988 1 0.904297
+24 26 25 0.773926 1 0.961426
+24 26 26 0.726562 1 1
+24 26 27 0.666016 0.981445 1
+24 26 28 0.593262 0.941406 1
+24 26 29 0.508789 0.897461 1
+24 26 30 0.408447 0.852051 1
+24 26 31 0.270508 0.807129 1
+24 27 0 0.865723 1 0
+24 27 1 0.865723 1 0
+24 27 2 0.865723 1 0
+24 27 3 0.865723 1 0
+24 27 4 0.865723 1 0
+24 27 5 0.865723 1 0
+24 27 6 0.865723 1 0
+24 27 7 0.865723 1 0
+24 27 8 0.865723 1 0
+24 27 9 0.865723 1 0
+24 27 10 0.865723 1 0
+24 27 11 0.865723 1 0
+24 27 12 0.865723 1 0
+24 27 13 0.865723 1 0
+24 27 14 0.865723 1 0
+24 27 15 0.865234 1 0
+24 27 16 0.863281 1 0
+24 27 17 0.85791 1 0.135376
+24 27 18 0.850098 1 0.345947
+24 27 19 0.838379 1 0.471191
+24 27 20 0.822266 1 0.573242
+24 27 21 0.800781 1 0.663086
+24 27 22 0.774902 1 0.742188
+24 27 23 0.746094 1 0.811035
+24 27 24 0.714355 1 0.87207
+24 27 25 0.675781 1 0.931152
+24 27 26 0.62793 1 0.986328
+24 27 27 0.568848 1 1
+24 27 28 0.494141 1 1
+24 27 29 0.398438 0.958496 1
+24 27 30 0.261719 0.912109 1
+24 27 31 0 0.864258 1
+24 28 0 0.740234 1 0
+24 28 1 0.740234 1 0
+24 28 2 0.740234 1 0
+24 28 3 0.740234 1 0
+24 28 4 0.740234 1 0
+24 28 5 0.740234 1 0
+24 28 6 0.740234 1 0
+24 28 7 0.740234 1 0
+24 28 8 0.740234 1 0
+24 28 9 0.740234 1 0
+24 28 10 0.740234 1 0
+24 28 11 0.740234 1 0
+24 28 12 0.740234 1 0
+24 28 13 0.739746 1 0
+24 28 14 0.739746 1 0
+24 28 15 0.739746 1 0
+24 28 16 0.737793 1 0
+24 28 17 0.731934 1 0
+24 28 18 0.723145 1 0.281006
+24 28 19 0.710938 1 0.42041
+24 28 20 0.694336 1 0.526855
+24 28 21 0.67334 1 0.618652
+24 28 22 0.647461 1 0.700684
+24 28 23 0.618164 1 0.771484
+24 28 24 0.584961 1 0.834473
+24 28 25 0.542969 1 0.89502
+24 28 26 0.489746 1 0.953125
+24 28 27 0.419434 1 1
+24 28 28 0.321045 1 1
+24 28 29 0.118958 1 1
+24 28 30 0 0.970215 1
+24 28 31 0 0.921875 1
+24 29 0 0.583984 1 0
+24 29 1 0.583984 1 0
+24 29 2 0.583984 1 0
+24 29 3 0.583984 1 0
+24 29 4 0.583984 1 0
+24 29 5 0.583984 1 0
+24 29 6 0.583984 1 0
+24 29 7 0.583984 1 0
+24 29 8 0.583984 1 0
+24 29 9 0.583984 1 0
+24 29 10 0.583984 1 0
+24 29 11 0.583984 1 0
+24 29 12 0.583984 1 0
+24 29 13 0.583984 1 0
+24 29 14 0.583984 1 0
+24 29 15 0.583984 1 0
+24 29 16 0.583008 1 0
+24 29 17 0.575195 1 0
+24 29 18 0.563965 1 0.189819
+24 29 19 0.548828 1 0.361816
+24 29 20 0.528809 1 0.475098
+24 29 21 0.50293 1 0.570312
+24 29 22 0.471436 1 0.653809
+24 29 23 0.43335 1 0.726074
+24 29 24 0.387939 1 0.790527
+24 29 25 0.324463 1 0.853027
+24 29 26 0.221313 1 0.913086
+24 29 27 0 1 0.969238
+24 29 28 0 1 1
+24 29 29 0 1 1
+24 29 30 0 1 1
+24 29 31 0 0.978516 1
+24 30 0 0.352783 1 0
+24 30 1 0.352783 1 0
+24 30 2 0.352783 1 0
+24 30 3 0.352783 1 0
+24 30 4 0.352783 1 0
+24 30 5 0.352783 1 0
+24 30 6 0.352783 1 0
+24 30 7 0.352783 1 0
+24 30 8 0.352783 1 0
+24 30 9 0.352783 1 0
+24 30 10 0.352783 1 0
+24 30 11 0.353027 1 0
+24 30 12 0.353027 1 0
+24 30 13 0.353027 1 0
+24 30 14 0.353271 1 0
+24 30 15 0.353516 1 0
+24 30 16 0.354004 1 0
+24 30 17 0.339844 1 0
+24 30 18 0.316406 1 0
+24 30 19 0.282227 1 0.291748
+24 30 20 0.232178 1 0.417236
+24 30 21 0.140381 1 0.516602
+24 30 22 0 1 0.601562
+24 30 23 0 1 0.675293
+24 30 24 0 1 0.740723
+24 30 25 0 1 0.804199
+24 30 26 0 1 0.866699
+24 30 27 0 1 0.92627
+24 30 28 0 1 0.981934
+24 30 29 0 1 1
+24 30 30 0 1 1
+24 30 31 0 1 1
+24 31 0 0 1 0
+24 31 1 0 1 0
+24 31 2 0 1 0
+24 31 3 0 1 0
+24 31 4 0 1 0
+24 31 5 0 1 0
+24 31 6 0 1 0
+24 31 7 0 1 0
+24 31 8 0 1 0
+24 31 9 0 1 0
+24 31 10 0 1 0
+24 31 11 0 1 0
+24 31 12 0 1 0
+24 31 13 0 1 0
+24 31 14 0 1 0
+24 31 15 0 1 0
+24 31 16 0 1 0
+24 31 17 0 1 0
+24 31 18 0 1 0
+24 31 19 0 1 0.196045
+24 31 20 0 1 0.351807
+24 31 21 0 1 0.45752
+24 31 22 0 1 0.544922
+24 31 23 0 1 0.620117
+24 31 24 0 1 0.686035
+24 31 25 0 1 0.750977
+24 31 26 0 1 0.814941
+24 31 27 0 1 0.877441
+24 31 28 0 1 0.936523
+24 31 29 0 1 0.991211
+24 31 30 0 1 1
+24 31 31 0 1 1
+25 0 0 1 0 0
+25 0 1 1 0 0
+25 0 2 1 0 0
+25 0 3 1 0 0
+25 0 4 1 0 0
+25 0 5 1 0 0
+25 0 6 1 0 0
+25 0 7 1 0 0
+25 0 8 1 0 0
+25 0 9 1 0 0
+25 0 10 1 0 0
+25 0 11 1 0 0
+25 0 12 1 0 0
+25 0 13 1 0 0
+25 0 14 1 0 0
+25 0 15 1 0 0
+25 0 16 1 0 0.164917
+25 0 17 1 0 0.356445
+25 0 18 1 0 0.488281
+25 0 19 1 0 0.606934
+25 0 20 1 0 0.716309
+25 0 21 1 0 0.813477
+25 0 22 1 0 0.894531
+25 0 23 1 0.162598 0.957031
+25 0 24 1 0.202393 1
+25 0 25 1 0.221802 1
+25 0 26 1 0.238159 1
+25 0 27 1 0.251221 1
+25 0 28 1 0.260986 1
+25 0 29 0.952637 0.268311 1
+25 0 30 0.864258 0.273438 1
+25 0 31 0.774414 0.276855 1
+25 1 0 1 0 0
+25 1 1 1 0 0
+25 1 2 1 0 0
+25 1 3 1 0 0
+25 1 4 1 0 0
+25 1 5 1 0 0
+25 1 6 1 0 0
+25 1 7 1 0 0
+25 1 8 1 0 0
+25 1 9 1 0 0
+25 1 10 1 0 0
+25 1 11 1 0 0
+25 1 12 1 0 0
+25 1 13 1 0 0
+25 1 14 1 0 0
+25 1 15 1 0 0
+25 1 16 1 0 0.164917
+25 1 17 1 0 0.356445
+25 1 18 1 0 0.488281
+25 1 19 1 0 0.606934
+25 1 20 1 0 0.716309
+25 1 21 1 0 0.813477
+25 1 22 1 0 0.894531
+25 1 23 1 0.162598 0.957031
+25 1 24 1 0.202393 1
+25 1 25 1 0.221802 1
+25 1 26 1 0.238159 1
+25 1 27 1 0.251221 1
+25 1 28 1 0.26123 1
+25 1 29 0.952637 0.268311 1
+25 1 30 0.864258 0.273438 1
+25 1 31 0.774414 0.276855 1
+25 2 0 1 0 0
+25 2 1 1 0 0
+25 2 2 1 0 0
+25 2 3 1 0 0
+25 2 4 1 0 0
+25 2 5 1 0 0
+25 2 6 1 0 0
+25 2 7 1 0 0
+25 2 8 1 0 0
+25 2 9 1 0 0
+25 2 10 1 0 0
+25 2 11 1 0 0
+25 2 12 1 0 0
+25 2 13 1 0 0
+25 2 14 1 0 0
+25 2 15 1 0 0
+25 2 16 1 0 0.164917
+25 2 17 1 0 0.356445
+25 2 18 1 0 0.488281
+25 2 19 1 0 0.606934
+25 2 20 1 0 0.716309
+25 2 21 1 0 0.813477
+25 2 22 1 0 0.894531
+25 2 23 1 0.16272 0.957031
+25 2 24 1 0.202393 1
+25 2 25 1 0.221924 1
+25 2 26 1 0.238159 1
+25 2 27 1 0.251221 1
+25 2 28 1 0.26123 1
+25 2 29 0.952637 0.268311 1
+25 2 30 0.864258 0.273438 1
+25 2 31 0.774414 0.276855 1
+25 3 0 1 0 0
+25 3 1 1 0 0
+25 3 2 1 0 0
+25 3 3 1 0 0
+25 3 4 1 0 0
+25 3 5 1 0 0
+25 3 6 1 0 0
+25 3 7 1 0 0
+25 3 8 1 0 0
+25 3 9 1 0 0
+25 3 10 1 0 0
+25 3 11 1 0 0
+25 3 12 1 0 0
+25 3 13 1 0 0
+25 3 14 1 0 0
+25 3 15 1 0 0
+25 3 16 1 0 0.164917
+25 3 17 1 0 0.356445
+25 3 18 1 0 0.488281
+25 3 19 1 0 0.606934
+25 3 20 1 0 0.716309
+25 3 21 1 0 0.813477
+25 3 22 1 0 0.894531
+25 3 23 1 0.162842 0.957031
+25 3 24 1 0.202515 1
+25 3 25 1 0.221924 1
+25 3 26 1 0.238281 1
+25 3 27 1 0.251221 1
+25 3 28 1 0.26123 1
+25 3 29 0.952637 0.268311 1
+25 3 30 0.864258 0.273438 1
+25 3 31 0.774414 0.276855 1
+25 4 0 1 0 0
+25 4 1 1 0 0
+25 4 2 1 0 0
+25 4 3 1 0 0
+25 4 4 1 0 0
+25 4 5 1 0 0
+25 4 6 1 0 0
+25 4 7 1 0 0
+25 4 8 1 0 0
+25 4 9 1 0 0
+25 4 10 1 0 0
+25 4 11 1 0 0
+25 4 12 1 0 0
+25 4 13 1 0 0
+25 4 14 1 0 0
+25 4 15 1 0 0
+25 4 16 1 0 0.164917
+25 4 17 1 0 0.356201
+25 4 18 1 0 0.488281
+25 4 19 1 0 0.606934
+25 4 20 1 0 0.716309
+25 4 21 1 0 0.813477
+25 4 22 1 0 0.894531
+25 4 23 1 0.163086 0.957031
+25 4 24 1 0.202637 1
+25 4 25 1 0.222046 1
+25 4 26 1 0.238403 1
+25 4 27 1 0.251465 1
+25 4 28 1 0.26123 1
+25 4 29 0.952637 0.268555 1
+25 4 30 0.864258 0.273438 1
+25 4 31 0.774414 0.2771 1
+25 5 0 1 0 0
+25 5 1 1 0 0
+25 5 2 1 0 0
+25 5 3 1 0 0
+25 5 4 1 0 0
+25 5 5 1 0 0
+25 5 6 1 0 0
+25 5 7 1 0 0
+25 5 8 1 0 0
+25 5 9 1 0 0
+25 5 10 1 0 0
+25 5 11 1 0 0
+25 5 12 1 0 0
+25 5 13 1 0 0
+25 5 14 1 0 0
+25 5 15 1 0 0
+25 5 16 1 0 0.164795
+25 5 17 1 0 0.356201
+25 5 18 1 0 0.488281
+25 5 19 1 0 0.606934
+25 5 20 1 0 0.716309
+25 5 21 1 0 0.813477
+25 5 22 1 0 0.894531
+25 5 23 1 0.163452 0.957031
+25 5 24 1 0.203003 1
+25 5 25 1 0.22229 1
+25 5 26 1 0.238647 1
+25 5 27 1 0.251709 1
+25 5 28 1 0.261475 1
+25 5 29 0.952637 0.268555 1
+25 5 30 0.864258 0.273682 1
+25 5 31 0.774414 0.2771 1
+25 6 0 1 0 0
+25 6 1 1 0 0
+25 6 2 1 0 0
+25 6 3 1 0 0
+25 6 4 1 0 0
+25 6 5 1 0 0
+25 6 6 1 0 0
+25 6 7 1 0 0
+25 6 8 1 0 0
+25 6 9 1 0 0
+25 6 10 1 0 0
+25 6 11 1 0 0
+25 6 12 1 0 0
+25 6 13 1 0 0
+25 6 14 1 0 0
+25 6 15 1 0 0
+25 6 16 1 0 0.164795
+25 6 17 1 0 0.356201
+25 6 18 1 0 0.488037
+25 6 19 1 0 0.606934
+25 6 20 1 0 0.716309
+25 6 21 1 0 0.813477
+25 6 22 1 0 0.894043
+25 6 23 1 0.164307 0.957031
+25 6 24 1 0.203613 1
+25 6 25 1 0.2229 1
+25 6 26 1 0.239014 1
+25 6 27 1 0.251953 1
+25 6 28 1 0.261719 1
+25 6 29 0.952637 0.268799 1
+25 6 30 0.864258 0.273926 1
+25 6 31 0.774414 0.277344 1
+25 7 0 1 0 0
+25 7 1 1 0 0
+25 7 2 1 0 0
+25 7 3 1 0 0
+25 7 4 1 0 0
+25 7 5 1 0 0
+25 7 6 1 0 0
+25 7 7 1 0 0
+25 7 8 1 0 0
+25 7 9 1 0 0
+25 7 10 1 0 0
+25 7 11 1 0 0
+25 7 12 1 0 0
+25 7 13 1 0 0
+25 7 14 1 0 0
+25 7 15 1 0 0
+25 7 16 1 0 0.164551
+25 7 17 1 0 0.356201
+25 7 18 1 0 0.488037
+25 7 19 1 0 0.606934
+25 7 20 1 0 0.716309
+25 7 21 1 0 0.813477
+25 7 22 1 0 0.894043
+25 7 23 1 0.166016 0.957031
+25 7 24 1 0.204834 1
+25 7 25 1 0.223877 1
+25 7 26 1 0.239868 1
+25 7 27 1 0.252686 1
+25 7 28 1 0.262207 1
+25 7 29 0.952148 0.269287 1
+25 7 30 0.864258 0.27417 1
+25 7 31 0.774414 0.277588 1
+25 8 0 1 0 0
+25 8 1 1 0 0
+25 8 2 1 0 0
+25 8 3 1 0 0
+25 8 4 1 0 0
+25 8 5 1 0 0
+25 8 6 1 0 0
+25 8 7 1 0 0
+25 8 8 1 0 0
+25 8 9 1 0 0
+25 8 10 1 0 0
+25 8 11 1 0 0
+25 8 12 1 0 0
+25 8 13 1 0 0
+25 8 14 1 0 0
+25 8 15 1 0 0
+25 8 16 1 0 0.164307
+25 8 17 1 0 0.355957
+25 8 18 1 0 0.488037
+25 8 19 1 0 0.606934
+25 8 20 1 0 0.716309
+25 8 21 1 0 0.813477
+25 8 22 1 0 0.894043
+25 8 23 1 0.169189 0.957031
+25 8 24 1 0.207153 1
+25 8 25 1 0.225708 1
+25 8 26 1 0.241455 1
+25 8 27 1 0.253906 1
+25 8 28 1 0.263428 1
+25 8 29 0.952148 0.270264 1
+25 8 30 0.864258 0.274902 1
+25 8 31 0.774414 0.27832 1
+25 9 0 1 0 0
+25 9 1 1 0 0
+25 9 2 1 0 0
+25 9 3 1 0 0
+25 9 4 1 0 0
+25 9 5 1 0 0
+25 9 6 1 0 0
+25 9 7 1 0 0
+25 9 8 1 0 0
+25 9 9 1 0 0
+25 9 10 1 0 0
+25 9 11 1 0 0
+25 9 12 1 0 0
+25 9 13 1 0 0
+25 9 14 1 0 0
+25 9 15 1 0 0
+25 9 16 1 0 0.163574
+25 9 17 1 0 0.355713
+25 9 18 1 0 0.487793
+25 9 19 1 0 0.606445
+25 9 20 1 0 0.716309
+25 9 21 1 0 0.813477
+25 9 22 1 0 0.894043
+25 9 23 1 0.175049 0.957031
+25 9 24 1 0.211426 1
+25 9 25 1 0.22937 1
+25 9 26 1 0.244385 1
+25 9 27 1 0.256592 1
+25 9 28 1 0.265625 1
+25 9 29 0.952148 0.271973 1
+25 9 30 0.86377 0.276367 1
+25 9 31 0.773926 0.279541 1
+25 10 0 1 0 0
+25 10 1 1 0 0
+25 10 2 1 0 0
+25 10 3 1 0 0
+25 10 4 1 0 0
+25 10 5 1 0 0
+25 10 6 1 0 0
+25 10 7 1 0 0
+25 10 8 1 0 0
+25 10 9 1 0 0
+25 10 10 1 0 0
+25 10 11 1 0 0
+25 10 12 1 0 0
+25 10 13 1 0 0
+25 10 14 1 0 0
+25 10 15 1 0 0
+25 10 16 1 0 0.162476
+25 10 17 1 0 0.355225
+25 10 18 1 0 0.487549
+25 10 19 1 0 0.606445
+25 10 20 1 0 0.71582
+25 10 21 1 0 0.812988
+25 10 22 1 0 0.894043
+25 10 23 1 0.185059 0.957031
+25 10 24 1 0.218872 1
+25 10 25 1 0.235596 1
+25 10 26 1 0.249756 1
+25 10 27 1 0.260986 1
+25 10 28 1 0.269287 1
+25 10 29 0.95166 0.275146 1
+25 10 30 0.86377 0.279053 1
+25 10 31 0.773926 0.281738 1
+25 11 0 1 0 0
+25 11 1 1 0 0
+25 11 2 1 0 0
+25 11 3 1 0 0
+25 11 4 1 0 0
+25 11 5 1 0 0
+25 11 6 1 0 0
+25 11 7 1 0 0
+25 11 8 1 0 0
+25 11 9 1 0 0
+25 11 10 1 0 0
+25 11 11 1 0 0
+25 11 12 1 0 0
+25 11 13 1 0 0
+25 11 14 1 0 0
+25 11 15 1 0 0
+25 11 16 1 0 0.160522
+25 11 17 1 0 0.354248
+25 11 18 1 0 0.487305
+25 11 19 1 0 0.605957
+25 11 20 1 0 0.715332
+25 11 21 1 0 0.812988
+25 11 22 1 0.0686035 0.894043
+25 11 23 1 0.20105 0.957031
+25 11 24 1 0.231323 1
+25 11 25 1 0.246216 1
+25 11 26 1 0.258789 1
+25 11 27 1 0.268555 1
+25 11 28 1 0.275635 1
+25 11 29 0.951172 0.280518 1
+25 11 30 0.862793 0.283691 1
+25 11 31 0.772949 0.285645 1
+25 12 0 1 0 0
+25 12 1 1 0 0
+25 12 2 1 0 0
+25 12 3 1 0 0
+25 12 4 1 0 0
+25 12 5 1 0 0
+25 12 6 1 0 0
+25 12 7 1 0 0
+25 12 8 1 0 0
+25 12 9 1 0 0
+25 12 10 1 0 0
+25 12 11 1 0 0
+25 12 12 1 0 0
+25 12 13 1 0 0
+25 12 14 1 0 0
+25 12 15 1 0 0
+25 12 16 1 0 0.157349
+25 12 17 1 0 0.352783
+25 12 18 1 0 0.486572
+25 12 19 1 0 0.60498
+25 12 20 1 0 0.714355
+25 12 21 1 0 0.8125
+25 12 22 1 0.135254 0.893555
+25 12 23 1 0.224731 0.956543
+25 12 24 1 0.250488 1
+25 12 25 1 0.262939 1
+25 12 26 1 0.273193 1
+25 12 27 1 0.281006 1
+25 12 28 1 0.286377 1
+25 12 29 0.950195 0.289551 1
+25 12 30 0.861816 0.29126 1
+25 12 31 0.771973 0.291992 1
+25 13 0 1 0 0
+25 13 1 1 0 0
+25 13 2 1 0 0
+25 13 3 1 0 0
+25 13 4 1 0 0
+25 13 5 1 0 0
+25 13 6 1 0 0
+25 13 7 1 0 0
+25 13 8 1 0 0
+25 13 9 1 0 0
+25 13 10 1 0 0
+25 13 11 1 0 0
+25 13 12 1 0 0
+25 13 13 1 0 0
+25 13 14 1 0 0
+25 13 15 1 0 0
+25 13 16 1 0 0.152222
+25 13 17 1 0 0.350342
+25 13 18 1 0 0.485352
+25 13 19 1 0 0.603516
+25 13 20 1 0 0.712891
+25 13 21 1 0 0.811523
+25 13 22 1 0.191895 0.893066
+25 13 23 1 0.257568 0.956543
+25 13 24 1 0.278076 1
+25 13 25 1 0.287354 1
+25 13 26 1 0.294922 1
+25 13 27 1 0.299805 1
+25 13 28 1 0.30249 1
+25 13 29 0.948242 0.303467 1
+25 13 30 0.860352 0.303223 1
+25 13 31 0.770508 0.302002 1
+25 14 0 1 0 0
+25 14 1 1 0 0
+25 14 2 1 0 0
+25 14 3 1 0 0
+25 14 4 1 0 0
+25 14 5 1 0 0
+25 14 6 1 0 0
+25 14 7 1 0 0
+25 14 8 1 0 0
+25 14 9 1 0 0
+25 14 10 1 0 0
+25 14 11 1 0 0
+25 14 12 1 0 0
+25 14 13 1 0 0
+25 14 14 1 0 0
+25 14 15 1 0 0
+25 14 16 1 0 0.14502
+25 14 17 1 0 0.34668
+25 14 18 1 0 0.483887
+25 14 19 1 0 0.601074
+25 14 20 1 0 0.710938
+25 14 21 1 0.118042 0.80957
+25 14 22 1 0.250977 0.89209
+25 14 23 1 0.299805 0.955566
+25 14 24 1 0.315674 1
+25 14 25 1 0.321289 1
+25 14 26 1 0.325195 1
+25 14 27 1 0.326904 1
+25 14 28 1 0.326172 1
+25 14 29 0.945801 0.323975 1
+25 14 30 0.857422 0.320801 1
+25 14 31 0.767578 0.317139 1
+25 15 0 1 0 0
+25 15 1 1 0 0
+25 15 2 1 0 0
+25 15 3 1 0 0
+25 15 4 1 0 0
+25 15 5 1 0 0
+25 15 6 1 0 0
+25 15 7 1 0 0
+25 15 8 1 0 0
+25 15 9 1 0 0
+25 15 10 1 0 0
+25 15 11 1 0 0
+25 15 12 1 0 0
+25 15 13 1 0 0
+25 15 14 1 0 0
+25 15 15 1 0 0
+25 15 16 1 0 0.136108
+25 15 17 1 0 0.342285
+25 15 18 1 0 0.480713
+25 15 19 1 0 0.597656
+25 15 20 1 0.104797 0.70752
+25 15 21 1 0.239136 0.807129
+25 15 22 1 0.314941 0.890137
+25 15 23 1 0.352051 0.95459
+25 15 24 1 0.363037 1
+25 15 25 1 0.365234 1
+25 15 26 1 0.365234 1
+25 15 27 1 0.362793 1
+25 15 28 1 0.358154 1
+25 15 29 0.941406 0.352051 1
+25 15 30 0.853516 0.345215 1
+25 15 31 0.763672 0.338379 1
+25 16 0 1 0.25 0
+25 16 1 1 0.25 0
+25 16 2 1 0.25 0
+25 16 3 1 0.25 0
+25 16 4 1 0.25 0
+25 16 5 1 0.25 0
+25 16 6 1 0.250244 0
+25 16 7 1 0.250244 0
+25 16 8 1 0.250488 0
+25 16 9 1 0.250732 0
+25 16 10 1 0.251221 0
+25 16 11 1 0.252441 0
+25 16 12 1 0.25415 0
+25 16 13 1 0.25708 0
+25 16 14 1 0.260742 0
+25 16 15 1 0.259277 0
+25 16 16 1 0.251953 0.129272
+25 16 17 1 0.243408 0.337646
+25 16 18 1 0.240479 0.474609
+25 16 19 1 0.24707 0.59375
+25 16 20 1 0.276123 0.702148
+25 16 21 1 0.332764 0.802734
+25 16 22 1 0.384766 0.887695
+25 16 23 1 0.41333 0.953125
+25 16 24 1 0.42041 1
+25 16 25 1 0.418945 1
+25 16 26 1 0.415283 1
+25 16 27 1 0.408447 1
+25 16 28 1 0.39917 1
+25 16 29 0.935059 0.388672 1
+25 16 30 0.847168 0.377686 1
+25 16 31 0.757324 0.366943 1
+25 17 0 1 0.384521 0
+25 17 1 1 0.384521 0
+25 17 2 1 0.384521 0
+25 17 3 1 0.384521 0
+25 17 4 1 0.384521 0
+25 17 5 1 0.384521 0
+25 17 6 1 0.384521 0
+25 17 7 1 0.384521 0
+25 17 8 1 0.384521 0
+25 17 9 1 0.384766 0
+25 17 10 1 0.385254 0
+25 17 11 1 0.385742 0
+25 17 12 1 0.386719 0
+25 17 13 1 0.388184 0
+25 17 14 1 0.390625 0
+25 17 15 1 0.389404 0
+25 17 16 1 0.38623 0.13269
+25 17 17 1 0.381592 0.335205
+25 17 18 1 0.377441 0.46875
+25 17 19 1 0.381592 0.589355
+25 17 20 1 0.389404 0.694824
+25 17 21 1 0.420898 0.796387
+25 17 22 1 0.45874 0.883301
+25 17 23 1 0.481201 0.950195
+25 17 24 1 0.485107 1
+25 17 25 1 0.480469 1
+25 17 26 1 0.4729 1
+25 17 27 1 0.46167 1
+25 17 28 1 0.447754 1
+25 17 29 0.925781 0.432617 1
+25 17 30 0.837891 0.416992 1
+25 17 31 0.748047 0.401855 1
+25 18 0 1 0.496094 0
+25 18 1 1 0.496094 0
+25 18 2 1 0.496094 0
+25 18 3 1 0.496094 0
+25 18 4 1 0.496094 0
+25 18 5 1 0.496094 0
+25 18 6 1 0.496094 0
+25 18 7 1 0.496094 0
+25 18 8 1 0.496338 0
+25 18 9 1 0.496338 0
+25 18 10 1 0.496582 0
+25 18 11 1 0.49707 0
+25 18 12 1 0.497559 0
+25 18 13 1 0.498779 0
+25 18 14 1 0.500488 0
+25 18 15 1 0.5 0
+25 18 16 1 0.499023 0.15271
+25 18 17 1 0.496338 0.338379
+25 18 18 1 0.492432 0.466064
+25 18 19 1 0.489746 0.580566
+25 18 20 1 0.492676 0.687012
+25 18 21 1 0.507324 0.787109
+25 18 22 1 0.534668 0.875977
+25 18 23 1 0.552734 0.945312
+25 18 24 1 0.554199 0.998535
+25 18 25 1 0.546875 1
+25 18 26 1 0.535645 1
+25 18 27 1 0.52002 1
+25 18 28 0.998047 0.501465 1
+25 18 29 0.913086 0.481445 1
+25 18 30 0.825684 0.461182 1
+25 18 31 0.736328 0.441895 1
+25 19 0 1 0.597168 0
+25 19 1 1 0.597168 0
+25 19 2 1 0.597168 0
+25 19 3 1 0.597168 0
+25 19 4 1 0.597168 0
+25 19 5 1 0.597168 0
+25 19 6 1 0.597168 0
+25 19 7 1 0.597168 0
+25 19 8 1 0.597168 0
+25 19 9 1 0.597168 0
+25 19 10 1 0.597656 0
+25 19 11 1 0.597656 0
+25 19 12 1 0.598145 0
+25 19 13 1 0.599121 0
+25 19 14 1 0.600586 0
+25 19 15 1 0.601074 0
+25 19 16 1 0.601074 0.18335
+25 19 17 1 0.600098 0.3479
+25 19 18 1 0.597168 0.468506
+25 19 19 1 0.592285 0.576172
+25 19 20 1 0.589844 0.678223
+25 19 21 1 0.592773 0.775391
+25 19 22 1 0.609375 0.866211
+25 19 23 1 0.624512 0.938477
+25 19 24 1 0.624512 0.993164
+25 19 25 1 0.614746 1
+25 19 26 1 0.600586 1
+25 19 27 1 0.581055 1
+25 19 28 0.980957 0.558105 1
+25 19 29 0.896973 0.533203 1
+25 19 30 0.810059 0.508789 1
+25 19 31 0.721191 0.484863 1
+25 20 0 1 0.688965 0
+25 20 1 1 0.688965 0
+25 20 2 1 0.688965 0
+25 20 3 1 0.689453 0
+25 20 4 1 0.689453 0
+25 20 5 1 0.689453 0
+25 20 6 1 0.689453 0
+25 20 7 1 0.689453 0
+25 20 8 1 0.689453 0
+25 20 9 1 0.689453 0
+25 20 10 1 0.689453 0
+25 20 11 1 0.689941 0
+25 20 12 1 0.689941 0
+25 20 13 1 0.690918 0
+25 20 14 1 0.691895 0
+25 20 15 1 0.692871 0
+25 20 16 1 0.693848 0.212402
+25 20 17 1 0.694336 0.361328
+25 20 18 1 0.692383 0.476074
+25 20 19 1 0.687988 0.577637
+25 20 20 1 0.681152 0.671875
+25 20 21 1 0.678223 0.765137
+25 20 22 1 0.681641 0.852539
+25 20 23 1 0.693359 0.928711
+25 20 24 1 0.693359 0.98584
+25 20 25 1 0.681641 1
+25 20 26 1 0.664551 1
+25 20 27 1 0.641113 1
+25 20 28 0.959961 0.614258 1
+25 20 29 0.876953 0.584961 1
+25 20 30 0.790527 0.556641 1
+25 20 31 0.702637 0.528809 1
+25 21 0 1 0.774414 0
+25 21 1 1 0.774414 0
+25 21 2 1 0.774414 0
+25 21 3 1 0.774414 0
+25 21 4 1 0.774414 0
+25 21 5 1 0.774414 0
+25 21 6 1 0.774414 0
+25 21 7 1 0.774414 0
+25 21 8 1 0.774414 0
+25 21 9 1 0.774414 0
+25 21 10 1 0.774902 0
+25 21 11 1 0.774902 0
+25 21 12 1 0.775391 0
+25 21 13 1 0.775879 0
+25 21 14 1 0.776367 0
+25 21 15 1 0.777832 0
+25 21 16 1 0.779785 0.229858
+25 21 17 1 0.780762 0.371582
+25 21 18 1 0.780273 0.483887
+25 21 19 1 0.776855 0.583008
+25 21 20 1 0.77002 0.671387
+25 21 21 1 0.760254 0.754883
+25 21 22 1 0.754395 0.837891
+25 21 23 1 0.759277 0.915039
+25 21 24 1 0.759766 0.975586
+25 21 25 1 0.74707 1
+25 21 26 1 0.727539 1
+25 21 27 1 0.700684 1
+25 21 28 0.93457 0.669434 1
+25 21 29 0.852539 0.637207 1
+25 21 30 0.767578 0.60498 1
+25 21 31 0.680176 0.574219 1
+25 22 0 1 0.851562 0
+25 22 1 1 0.851562 0
+25 22 2 1 0.851562 0
+25 22 3 1 0.851562 0
+25 22 4 1 0.851562 0
+25 22 5 1 0.851562 0
+25 22 6 1 0.851562 0
+25 22 7 1 0.851562 0
+25 22 8 1 0.851562 0
+25 22 9 1 0.851562 0
+25 22 10 1 0.852051 0
+25 22 11 1 0.852051 0
+25 22 12 1 0.852051 0
+25 22 13 1 0.852539 0
+25 22 14 1 0.853027 0
+25 22 15 1 0.854492 0
+25 22 16 1 0.856934 0.227295
+25 22 17 1 0.858398 0.371826
+25 22 18 1 0.858887 0.485596
+25 22 19 1 0.856934 0.585449
+25 22 20 1 0.851074 0.67334
+25 22 21 1 0.841309 0.752441
+25 22 22 1 0.828125 0.825684
+25 22 23 1 0.821289 0.897461
+25 22 24 1 0.822266 0.962891
+25 22 25 1 0.809082 1
+25 22 26 1 0.787598 1
+25 22 27 0.979492 0.757324 1
+25 22 28 0.903809 0.723145 1
+25 22 29 0.82373 0.687988 1
+25 22 30 0.740723 0.65332 1
+25 22 31 0.654297 0.619629 1
+25 23 0 1 0.917969 0
+25 23 1 1 0.917969 0
+25 23 2 1 0.917969 0
+25 23 3 1 0.917969 0
+25 23 4 1 0.917969 0
+25 23 5 1 0.917969 0
+25 23 6 1 0.917969 0
+25 23 7 1 0.917969 0
+25 23 8 1 0.917969 0
+25 23 9 1 0.918457 0
+25 23 10 1 0.918457 0
+25 23 11 1 0.918457 0
+25 23 12 1 0.918457 0
+25 23 13 1 0.918945 0
+25 23 14 1 0.919434 0
+25 23 15 1 0.92041 0
+25 23 16 1 0.922852 0.19873
+25 23 17 1 0.925293 0.358154
+25 23 18 1 0.926758 0.476562
+25 23 19 1 0.925781 0.57959
+25 23 20 1 0.921387 0.669922
+25 23 21 1 0.913086 0.750977
+25 23 22 1 0.899902 0.821289
+25 23 23 1 0.883789 0.882812
+25 23 24 1 0.877441 0.946289
+25 23 25 1 0.866211 1
+25 23 26 1 0.841797 1
+25 23 27 0.942871 0.808594 1
+25 23 28 0.869629 0.772461 1
+25 23 29 0.79248 0.73584 1
+25 23 30 0.711426 0.699707 1
+25 23 31 0.625488 0.664062 1
+25 24 0 1 0.974609 0
+25 24 1 1 0.974609 0
+25 24 2 1 0.974609 0
+25 24 3 1 0.974609 0
+25 24 4 1 0.974609 0
+25 24 5 1 0.974609 0
+25 24 6 1 0.974609 0
+25 24 7 1 0.974609 0
+25 24 8 1 0.974609 0
+25 24 9 1 0.974609 0
+25 24 10 1 0.974609 0
+25 24 11 1 0.974609 0
+25 24 12 1 0.974609 0
+25 24 13 1 0.975098 0
+25 24 14 1 0.975098 0
+25 24 15 1 0.976074 0
+25 24 16 1 0.979004 0.130005
+25 24 17 1 0.981934 0.331055
+25 24 18 1 0.984375 0.457031
+25 24 19 1 0.984375 0.563965
+25 24 20 1 0.981445 0.657715
+25 24 21 1 0.974609 0.741699
+25 24 22 1 0.963379 0.815918
+25 24 23 1 0.947754 0.876953
+25 24 24 1 0.929199 0.928711
+25 24 25 1 0.91748 0.987793
+25 24 26 0.967285 0.890137 1
+25 24 27 0.902344 0.855957 1
+25 24 28 0.833008 0.819824 1
+25 24 29 0.758789 0.782715 1
+25 24 30 0.679199 0.745117 1
+25 24 31 0.59375 0.70752 1
+25 25 0 1 1 0
+25 25 1 1 1 0
+25 25 2 1 1 0
+25 25 3 1 1 0
+25 25 4 1 1 0
+25 25 5 1 1 0
+25 25 6 1 1 0
+25 25 7 1 1 0
+25 25 8 1 1 0
+25 25 9 1 1 0
+25 25 10 1 1 0
+25 25 11 1 1 0
+25 25 12 1 1 0
+25 25 13 1 1 0
+25 25 14 1 1 0
+25 25 15 1 1 0
+25 25 16 1 1 0
+25 25 17 1 1 0.288086
+25 25 18 1 1 0.42627
+25 25 19 1 1 0.537598
+25 25 20 1 1 0.634277
+25 25 21 1 1 0.721191
+25 25 22 1 1 0.797852
+25 25 23 1 1 0.863281
+25 25 24 1 0.990234 0.918457
+25 25 25 0.96875 0.96875 0.96875
+25 25 26 0.916504 0.94043 1
+25 25 27 0.856934 0.907715 1
+25 25 28 0.791016 0.87207 1
+25 25 29 0.718262 0.833984 1
+25 25 30 0.63916 0.794434 1
+25 25 31 0.551758 0.754395 1
+25 26 0 1 1 0
+25 26 1 1 1 0
+25 26 2 1 1 0
+25 26 3 1 1 0
+25 26 4 1 1 0
+25 26 5 1 1 0
+25 26 6 1 1 0
+25 26 7 1 1 0
+25 26 8 1 1 0
+25 26 9 1 1 0
+25 26 10 1 1 0
+25 26 11 1 1 0
+25 26 12 1 1 0
+25 26 13 1 1 0
+25 26 14 1 1 0
+25 26 15 1 1 0
+25 26 16 1 1 0
+25 26 17 1 1 0.226196
+25 26 18 1 1 0.385986
+25 26 19 1 1 0.50293
+25 26 20 1 1 0.602051
+25 26 21 1 1 0.689941
+25 26 22 1 1 0.768066
+25 26 23 0.974609 1 0.834473
+25 26 24 0.941895 1 0.891113
+25 26 25 0.904785 1 0.945801
+25 26 26 0.862305 0.999512 1
+25 26 27 0.806641 0.96875 1
+25 26 28 0.740723 0.930664 1
+25 26 29 0.66748 0.890137 1
+25 26 30 0.586426 0.848145 1
+25 26 31 0.494629 0.805176 1
+25 27 0 0.982422 1 0
+25 27 1 0.982422 1 0
+25 27 2 0.982422 1 0
+25 27 3 0.982422 1 0
+25 27 4 0.982422 1 0
+25 27 5 0.982422 1 0
+25 27 6 0.982422 1 0
+25 27 7 0.982422 1 0
+25 27 8 0.982422 1 0
+25 27 9 0.982422 1 0
+25 27 10 0.982422 1 0
+25 27 11 0.982422 1 0
+25 27 12 0.982422 1 0
+25 27 13 0.982422 1 0
+25 27 14 0.981934 1 0
+25 27 15 0.981934 1 0
+25 27 16 0.980957 1 0
+25 27 17 0.978027 1 0.114075
+25 27 18 0.972656 1 0.335449
+25 27 19 0.964355 1 0.460693
+25 27 20 0.952148 1 0.5625
+25 27 21 0.935059 1 0.652344
+25 27 22 0.912598 1 0.731445
+25 27 23 0.886719 1 0.799805
+25 27 24 0.85791 1 0.858887
+25 27 25 0.824219 1 0.91748
+25 27 26 0.78418 1 0.973633
+25 27 27 0.734375 1 1
+25 27 28 0.672852 0.991699 1
+25 27 29 0.599609 0.951172 1
+25 27 30 0.51416 0.906738 1
+25 27 31 0.412354 0.86084 1
+25 28 0 0.873047 1 0
+25 28 1 0.873047 1 0
+25 28 2 0.873047 1 0
+25 28 3 0.873047 1 0
+25 28 4 0.873047 1 0
+25 28 5 0.873047 1 0
+25 28 6 0.873047 1 0
+25 28 7 0.873047 1 0
+25 28 8 0.873047 1 0
+25 28 9 0.873047 1 0
+25 28 10 0.873047 1 0
+25 28 11 0.873047 1 0
+25 28 12 0.873047 1 0
+25 28 13 0.873047 1 0
+25 28 14 0.872559 1 0
+25 28 15 0.872559 1 0
+25 28 16 0.871582 1 0
+25 28 17 0.868652 1 0
+25 28 18 0.862793 1 0.271729
+25 28 19 0.854492 1 0.411621
+25 28 20 0.842285 1 0.517578
+25 28 21 0.826172 1 0.609375
+25 28 22 0.806152 1 0.69043
+25 28 23 0.782227 1 0.760742
+25 28 24 0.755859 1 0.822266
+25 28 25 0.723633 1 0.883301
+25 28 26 0.683594 1 0.941406
+25 28 27 0.634277 1 0.996094
+25 28 28 0.573242 1 1
+25 28 29 0.497559 1 1
+25 28 30 0.401611 0.964844 1
+25 28 31 0.263672 0.918457 1
+25 29 0 0.744629 1 0
+25 29 1 0.744629 1 0
+25 29 2 0.744629 1 0
+25 29 3 0.744629 1 0
+25 29 4 0.744629 1 0
+25 29 5 0.744629 1 0
+25 29 6 0.744629 1 0
+25 29 7 0.744629 1 0
+25 29 8 0.744629 1 0
+25 29 9 0.744629 1 0
+25 29 10 0.744629 1 0
+25 29 11 0.744629 1 0
+25 29 12 0.744629 1 0
+25 29 13 0.744629 1 0
+25 29 14 0.744629 1 0
+25 29 15 0.744629 1 0
+25 29 16 0.744141 1 0
+25 29 17 0.739746 1 0
+25 29 18 0.733398 1 0.178833
+25 29 19 0.724121 1 0.354248
+25 29 20 0.711426 1 0.467285
+25 29 21 0.695312 1 0.562012
+25 29 22 0.674805 1 0.644531
+25 29 23 0.651367 1 0.716797
+25 29 24 0.624512 1 0.780273
+25 29 25 0.59082 1 0.842773
+25 29 26 0.547852 1 0.90332
+25 29 27 0.493408 1 0.960449
+25 29 28 0.422363 1 1
+25 29 29 0.322754 1 1
+25 29 30 0.120178 1 1
+25 29 31 0 0.975098 1
+25 30 0 0.587402 1 0
+25 30 1 0.587402 1 0
+25 30 2 0.587402 1 0
+25 30 3 0.587402 1 0
+25 30 4 0.587402 1 0
+25 30 5 0.587402 1 0
+25 30 6 0.587402 1 0
+25 30 7 0.587402 1 0
+25 30 8 0.587402 1 0
+25 30 9 0.587402 1 0
+25 30 10 0.587402 1 0
+25 30 11 0.587402 1 0
+25 30 12 0.587402 1 0
+25 30 13 0.587402 1 0
+25 30 14 0.587402 1 0
+25 30 15 0.587402 1 0
+25 30 16 0.587402 1 0
+25 30 17 0.58252 1 0
+25 30 18 0.57373 1 0
+25 30 19 0.561523 1 0.284912
+25 30 20 0.545898 1 0.410889
+25 30 21 0.525879 1 0.509766
+25 30 22 0.500977 1 0.594238
+25 30 23 0.471436 1 0.66748
+25 30 24 0.437012 1 0.732422
+25 30 25 0.391357 1 0.796387
+25 30 26 0.327393 1 0.858887
+25 30 27 0.223511 1 0.918945
+25 30 28 0 1 0.975098
+25 30 29 0 1 1
+25 30 30 0 1 1
+25 30 31 0 1 1
+25 31 0 0.354492 1 0
+25 31 1 0.354492 1 0
+25 31 2 0.354492 1 0
+25 31 3 0.354492 1 0
+25 31 4 0.354492 1 0
+25 31 5 0.354492 1 0
+25 31 6 0.354492 1 0
+25 31 7 0.354492 1 0
+25 31 8 0.354492 1 0
+25 31 9 0.354492 1 0
+25 31 10 0.354492 1 0
+25 31 11 0.354492 1 0
+25 31 12 0.354736 1 0
+25 31 13 0.354736 1 0
+25 31 14 0.35498 1 0
+25 31 15 0.355225 1 0
+25 31 16 0.355469 1 0
+25 31 17 0.349365 1 0
+25 31 18 0.330322 1 0
+25 31 19 0.303711 1 0.188354
+25 31 20 0.26709 1 0.34668
+25 31 21 0.211914 1 0.452393
+25 31 22 0.0987549 1 0.539551
+25 31 23 0 1 0.614258
+25 31 24 0 1 0.680176
+25 31 25 0 1 0.745117
+25 31 26 0 1 0.809082
+25 31 27 0 1 0.871582
+25 31 28 0 1 0.931152
+25 31 29 0 1 0.986816
+25 31 30 0 1 1
+25 31 31 0 1 1
+26 0 0 1 0 0
+26 0 1 1 0 0
+26 0 2 1 0 0
+26 0 3 1 0 0
+26 0 4 1 0 0
+26 0 5 1 0 0
+26 0 6 1 0 0
+26 0 7 1 0 0
+26 0 8 1 0 0
+26 0 9 1 0 0
+26 0 10 1 0 0
+26 0 11 1 0 0
+26 0 12 1 0 0
+26 0 13 1 0 0
+26 0 14 1 0 0
+26 0 15 1 0 0
+26 0 16 1 0 0
+26 0 17 1 0 0.296143
+26 0 18 1 0 0.441162
+26 0 19 1 0 0.559082
+26 0 20 1 0 0.667969
+26 0 21 1 0 0.76709
+26 0 22 1 0 0.853027
+26 0 23 1 0 0.921387
+26 0 24 1 0.166016 0.976074
+26 0 25 1 0.205933 1
+26 0 26 1 0.225342 1
+26 0 27 1 0.241455 1
+26 0 28 1 0.25415 1
+26 0 29 1 0.263916 1
+26 0 30 0.962402 0.270996 1
+26 0 31 0.873047 0.276123 1
+26 1 0 1 0 0
+26 1 1 1 0 0
+26 1 2 1 0 0
+26 1 3 1 0 0
+26 1 4 1 0 0
+26 1 5 1 0 0
+26 1 6 1 0 0
+26 1 7 1 0 0
+26 1 8 1 0 0
+26 1 9 1 0 0
+26 1 10 1 0 0
+26 1 11 1 0 0
+26 1 12 1 0 0
+26 1 13 1 0 0
+26 1 14 1 0 0
+26 1 15 1 0 0
+26 1 16 1 0 0
+26 1 17 1 0 0.296143
+26 1 18 1 0 0.441162
+26 1 19 1 0 0.559082
+26 1 20 1 0 0.667969
+26 1 21 1 0 0.76709
+26 1 22 1 0 0.853027
+26 1 23 1 0 0.921387
+26 1 24 1 0.166016 0.976074
+26 1 25 1 0.205933 1
+26 1 26 1 0.225342 1
+26 1 27 1 0.241455 1
+26 1 28 1 0.25415 1
+26 1 29 1 0.263916 1
+26 1 30 0.962402 0.270996 1
+26 1 31 0.873047 0.276123 1
+26 2 0 1 0 0
+26 2 1 1 0 0
+26 2 2 1 0 0
+26 2 3 1 0 0
+26 2 4 1 0 0
+26 2 5 1 0 0
+26 2 6 1 0 0
+26 2 7 1 0 0
+26 2 8 1 0 0
+26 2 9 1 0 0
+26 2 10 1 0 0
+26 2 11 1 0 0
+26 2 12 1 0 0
+26 2 13 1 0 0
+26 2 14 1 0 0
+26 2 15 1 0 0
+26 2 16 1 0 0
+26 2 17 1 0 0.296143
+26 2 18 1 0 0.441162
+26 2 19 1 0 0.559082
+26 2 20 1 0 0.667969
+26 2 21 1 0 0.76709
+26 2 22 1 0 0.853027
+26 2 23 1 0 0.921387
+26 2 24 1 0.166138 0.976074
+26 2 25 1 0.206055 1
+26 2 26 1 0.225342 1
+26 2 27 1 0.241455 1
+26 2 28 1 0.25415 1
+26 2 29 1 0.263916 1
+26 2 30 0.962402 0.270996 1
+26 2 31 0.873047 0.276123 1
+26 3 0 1 0 0
+26 3 1 1 0 0
+26 3 2 1 0 0
+26 3 3 1 0 0
+26 3 4 1 0 0
+26 3 5 1 0 0
+26 3 6 1 0 0
+26 3 7 1 0 0
+26 3 8 1 0 0
+26 3 9 1 0 0
+26 3 10 1 0 0
+26 3 11 1 0 0
+26 3 12 1 0 0
+26 3 13 1 0 0
+26 3 14 1 0 0
+26 3 15 1 0 0
+26 3 16 1 0 0
+26 3 17 1 0 0.296143
+26 3 18 1 0 0.441162
+26 3 19 1 0 0.559082
+26 3 20 1 0 0.667969
+26 3 21 1 0 0.76709
+26 3 22 1 0 0.853027
+26 3 23 1 0 0.921387
+26 3 24 1 0.16626 0.976074
+26 3 25 1 0.206055 1
+26 3 26 1 0.225464 1
+26 3 27 1 0.241577 1
+26 3 28 1 0.254395 1
+26 3 29 1 0.263916 1
+26 3 30 0.962402 0.270996 1
+26 3 31 0.873047 0.276123 1
+26 4 0 1 0 0
+26 4 1 1 0 0
+26 4 2 1 0 0
+26 4 3 1 0 0
+26 4 4 1 0 0
+26 4 5 1 0 0
+26 4 6 1 0 0
+26 4 7 1 0 0
+26 4 8 1 0 0
+26 4 9 1 0 0
+26 4 10 1 0 0
+26 4 11 1 0 0
+26 4 12 1 0 0
+26 4 13 1 0 0
+26 4 14 1 0 0
+26 4 15 1 0 0
+26 4 16 1 0 0
+26 4 17 1 0 0.296143
+26 4 18 1 0 0.441162
+26 4 19 1 0 0.559082
+26 4 20 1 0 0.667969
+26 4 21 1 0 0.76709
+26 4 22 1 0 0.853027
+26 4 23 1 0 0.921387
+26 4 24 1 0.166382 0.976074
+26 4 25 1 0.206177 1
+26 4 26 1 0.225586 1
+26 4 27 1 0.241577 1
+26 4 28 1 0.254395 1
+26 4 29 1 0.26416 1
+26 4 30 0.962402 0.27124 1
+26 4 31 0.873047 0.276123 1
+26 5 0 1 0 0
+26 5 1 1 0 0
+26 5 2 1 0 0
+26 5 3 1 0 0
+26 5 4 1 0 0
+26 5 5 1 0 0
+26 5 6 1 0 0
+26 5 7 1 0 0
+26 5 8 1 0 0
+26 5 9 1 0 0
+26 5 10 1 0 0
+26 5 11 1 0 0
+26 5 12 1 0 0
+26 5 13 1 0 0
+26 5 14 1 0 0
+26 5 15 1 0 0
+26 5 16 1 0 0
+26 5 17 1 0 0.296143
+26 5 18 1 0 0.441162
+26 5 19 1 0 0.559082
+26 5 20 1 0 0.667969
+26 5 21 1 0 0.76709
+26 5 22 1 0 0.853027
+26 5 23 1 0 0.921387
+26 5 24 1 0.16687 0.976074
+26 5 25 1 0.206543 1
+26 5 26 1 0.22583 1
+26 5 27 1 0.241821 1
+26 5 28 1 0.254639 1
+26 5 29 1 0.26416 1
+26 5 30 0.962402 0.27124 1
+26 5 31 0.873047 0.276367 1
+26 6 0 1 0 0
+26 6 1 1 0 0
+26 6 2 1 0 0
+26 6 3 1 0 0
+26 6 4 1 0 0
+26 6 5 1 0 0
+26 6 6 1 0 0
+26 6 7 1 0 0
+26 6 8 1 0 0
+26 6 9 1 0 0
+26 6 10 1 0 0
+26 6 11 1 0 0
+26 6 12 1 0 0
+26 6 13 1 0 0
+26 6 14 1 0 0
+26 6 15 1 0 0
+26 6 16 1 0 0
+26 6 17 1 0 0.296143
+26 6 18 1 0 0.441162
+26 6 19 1 0 0.559082
+26 6 20 1 0 0.667969
+26 6 21 1 0 0.76709
+26 6 22 1 0 0.853027
+26 6 23 1 0 0.921387
+26 6 24 1 0.167603 0.976074
+26 6 25 1 0.207031 1
+26 6 26 1 0.226196 1
+26 6 27 1 0.242188 1
+26 6 28 1 0.254883 1
+26 6 29 1 0.264404 1
+26 6 30 0.962402 0.271484 1
+26 6 31 0.873047 0.276367 1
+26 7 0 1 0 0
+26 7 1 1 0 0
+26 7 2 1 0 0
+26 7 3 1 0 0
+26 7 4 1 0 0
+26 7 5 1 0 0
+26 7 6 1 0 0
+26 7 7 1 0 0
+26 7 8 1 0 0
+26 7 9 1 0 0
+26 7 10 1 0 0
+26 7 11 1 0 0
+26 7 12 1 0 0
+26 7 13 1 0 0
+26 7 14 1 0 0
+26 7 15 1 0 0
+26 7 16 1 0 0
+26 7 17 1 0 0.295898
+26 7 18 1 0 0.440918
+26 7 19 1 0 0.559082
+26 7 20 1 0 0.667969
+26 7 21 1 0 0.76709
+26 7 22 1 0 0.853027
+26 7 23 1 0 0.921387
+26 7 24 1 0.168945 0.976074
+26 7 25 1 0.208008 1
+26 7 26 1 0.227051 1
+26 7 27 1 0.24292 1
+26 7 28 1 0.255371 1
+26 7 29 1 0.264893 1
+26 7 30 0.962402 0.271973 1
+26 7 31 0.873047 0.276855 1
+26 8 0 1 0 0
+26 8 1 1 0 0
+26 8 2 1 0 0
+26 8 3 1 0 0
+26 8 4 1 0 0
+26 8 5 1 0 0
+26 8 6 1 0 0
+26 8 7 1 0 0
+26 8 8 1 0 0
+26 8 9 1 0 0
+26 8 10 1 0 0
+26 8 11 1 0 0
+26 8 12 1 0 0
+26 8 13 1 0 0
+26 8 14 1 0 0
+26 8 15 1 0 0
+26 8 16 1 0 0
+26 8 17 1 0 0.295898
+26 8 18 1 0 0.440918
+26 8 19 1 0 0.559082
+26 8 20 1 0 0.66748
+26 8 21 1 0 0.76709
+26 8 22 1 0 0.852539
+26 8 23 1 0 0.921387
+26 8 24 1 0.171753 0.976074
+26 8 25 1 0.210083 1
+26 8 26 1 0.22876 1
+26 8 27 1 0.244263 1
+26 8 28 1 0.256592 1
+26 8 29 1 0.265869 1
+26 8 30 0.962402 0.272705 1
+26 8 31 0.872559 0.277588 1
+26 9 0 1 0 0
+26 9 1 1 0 0
+26 9 2 1 0 0
+26 9 3 1 0 0
+26 9 4 1 0 0
+26 9 5 1 0 0
+26 9 6 1 0 0
+26 9 7 1 0 0
+26 9 8 1 0 0
+26 9 9 1 0 0
+26 9 10 1 0 0
+26 9 11 1 0 0
+26 9 12 1 0 0
+26 9 13 1 0 0
+26 9 14 1 0 0
+26 9 15 1 0 0
+26 9 16 1 0 0
+26 9 17 1 0 0.29541
+26 9 18 1 0 0.440918
+26 9 19 1 0 0.558594
+26 9 20 1 0 0.66748
+26 9 21 1 0 0.76709
+26 9 22 1 0 0.852539
+26 9 23 1 0 0.921387
+26 9 24 1 0.17688 0.976074
+26 9 25 1 0.213745 1
+26 9 26 1 0.231812 1
+26 9 27 1 0.246826 1
+26 9 28 1 0.258789 1
+26 9 29 1 0.267822 1
+26 9 30 0.961914 0.27417 1
+26 9 31 0.872559 0.278809 1
+26 10 0 1 0 0
+26 10 1 1 0 0
+26 10 2 1 0 0
+26 10 3 1 0 0
+26 10 4 1 0 0
+26 10 5 1 0 0
+26 10 6 1 0 0
+26 10 7 1 0 0
+26 10 8 1 0 0
+26 10 9 1 0 0
+26 10 10 1 0 0
+26 10 11 1 0 0
+26 10 12 1 0 0
+26 10 13 1 0 0
+26 10 14 1 0 0
+26 10 15 1 0 0
+26 10 16 1 0 0
+26 10 17 1 0 0.294922
+26 10 18 1 0 0.440674
+26 10 19 1 0 0.558594
+26 10 20 1 0 0.66748
+26 10 21 1 0 0.76709
+26 10 22 1 0 0.852539
+26 10 23 1 0 0.921387
+26 10 24 1 0.185669 0.976074
+26 10 25 1 0.220337 1
+26 10 26 1 0.237305 1
+26 10 27 1 0.251465 1
+26 10 28 1 0.262695 1
+26 10 29 1 0.270996 1
+26 10 30 0.961914 0.276855 1
+26 10 31 0.872559 0.281006 1
+26 11 0 1 0 0
+26 11 1 1 0 0
+26 11 2 1 0 0
+26 11 3 1 0 0
+26 11 4 1 0 0
+26 11 5 1 0 0
+26 11 6 1 0 0
+26 11 7 1 0 0
+26 11 8 1 0 0
+26 11 9 1 0 0
+26 11 10 1 0 0
+26 11 11 1 0 0
+26 11 12 1 0 0
+26 11 13 1 0 0
+26 11 14 1 0 0
+26 11 15 1 0 0
+26 11 16 1 0 0
+26 11 17 1 0 0.293945
+26 11 18 1 0 0.44043
+26 11 19 1 0 0.558105
+26 11 20 1 0 0.666992
+26 11 21 1 0 0.766602
+26 11 22 1 0 0.852539
+26 11 23 1 0.0897217 0.920898
+26 11 24 1 0.199829 0.976074
+26 11 25 1 0.231201 1
+26 11 26 1 0.246582 1
+26 11 27 1 0.259277 1
+26 11 28 1 0.269287 1
+26 11 29 1 0.276611 1
+26 11 30 0.961426 0.281494 1
+26 11 31 0.87207 0.284912 1
+26 12 0 1 0 0
+26 12 1 1 0 0
+26 12 2 1 0 0
+26 12 3 1 0 0
+26 12 4 1 0 0
+26 12 5 1 0 0
+26 12 6 1 0 0
+26 12 7 1 0 0
+26 12 8 1 0 0
+26 12 9 1 0 0
+26 12 10 1 0 0
+26 12 11 1 0 0
+26 12 12 1 0 0
+26 12 13 1 0 0
+26 12 14 1 0 0
+26 12 15 1 0 0
+26 12 16 1 0 0
+26 12 17 1 0 0.29248
+26 12 18 1 0 0.439941
+26 12 19 1 0 0.557129
+26 12 20 1 0 0.666016
+26 12 21 1 0 0.766113
+26 12 22 1 0 0.852051
+26 12 23 1 0.140137 0.920898
+26 12 24 1 0.221191 0.976074
+26 12 25 1 0.248291 1
+26 12 26 1 0.26123 1
+26 12 27 1 0.271973 1
+26 12 28 1 0.280029 1
+26 12 29 1 0.285645 1
+26 12 30 0.960449 0.289307 1
+26 12 31 0.871094 0.291504 1
+26 13 0 1 0 0
+26 13 1 1 0 0
+26 13 2 1 0 0
+26 13 3 1 0 0
+26 13 4 1 0 0
+26 13 5 1 0 0
+26 13 6 1 0 0
+26 13 7 1 0 0
+26 13 8 1 0 0
+26 13 9 1 0 0
+26 13 10 1 0 0
+26 13 11 1 0 0
+26 13 12 1 0 0
+26 13 13 1 0 0
+26 13 14 1 0 0
+26 13 15 1 0 0
+26 13 16 1 0 0
+26 13 17 1 0 0.290039
+26 13 18 1 0 0.437988
+26 13 19 1 0 0.556152
+26 13 20 1 0 0.665039
+26 13 21 1 0 0.764648
+26 13 22 1 0 0.851074
+26 13 23 1 0.190063 0.92041
+26 13 24 1 0.250977 0.975586
+26 13 25 1 0.273193 1
+26 13 26 1 0.283203 1
+26 13 27 1 0.291016 1
+26 13 28 1 0.296631 1
+26 13 29 1 0.300049 1
+26 13 30 0.958984 0.301514 1
+26 13 31 0.869629 0.301758 1
+26 14 0 1 0 0
+26 14 1 1 0 0
+26 14 2 1 0 0
+26 14 3 1 0 0
+26 14 4 1 0 0
+26 14 5 1 0 0
+26 14 6 1 0 0
+26 14 7 1 0 0
+26 14 8 1 0 0
+26 14 9 1 0 0
+26 14 10 1 0 0
+26 14 11 1 0 0
+26 14 12 1 0 0
+26 14 13 1 0 0
+26 14 14 1 0 0
+26 14 15 1 0 0
+26 14 16 1 0 0
+26 14 17 1 0 0.286621
+26 14 18 1 0 0.435059
+26 14 19 1 0 0.554688
+26 14 20 1 0 0.663086
+26 14 21 1 0 0.763184
+26 14 22 1 0.121094 0.850098
+26 14 23 1 0.244141 0.919922
+26 14 24 1 0.290283 0.975098
+26 14 25 1 0.307373 1
+26 14 26 1 0.313965 1
+26 14 27 1 0.318359 1
+26 14 28 1 0.320557 1
+26 14 29 1 0.320801 1
+26 14 30 0.956543 0.31958 1
+26 14 31 0.867188 0.317383 1
+26 15 0 1 0 0
+26 15 1 1 0 0
+26 15 2 1 0 0
+26 15 3 1 0 0
+26 15 4 1 0 0
+26 15 5 1 0 0
+26 15 6 1 0 0
+26 15 7 1 0 0
+26 15 8 1 0 0
+26 15 9 1 0 0
+26 15 10 1 0 0
+26 15 11 1 0 0
+26 15 12 1 0 0
+26 15 13 1 0 0
+26 15 14 1 0 0
+26 15 15 1 0 0
+26 15 16 1 0 0
+26 15 17 1 0 0.281982
+26 15 18 1 0 0.430664
+26 15 19 1 0 0.552246
+26 15 20 1 0 0.660156
+26 15 21 1 0.0360413 0.760742
+26 15 22 1 0.231567 0.848145
+26 15 23 1 0.303711 0.918457
+26 15 24 1 0.338867 0.974121
+26 15 25 1 0.351074 1
+26 15 26 1 0.354004 1
+26 15 27 1 0.354736 1
+26 15 28 1 0.353271 1
+26 15 29 1 0.349609 1
+26 15 30 0.953125 0.344727 1
+26 15 31 0.86377 0.339111 1
+26 16 0 1 0.182739 0
+26 16 1 1 0.182739 0
+26 16 2 1 0.182739 0
+26 16 3 1 0.182739 0
+26 16 4 1 0.182739 0
+26 16 5 1 0.182861 0
+26 16 6 1 0.182861 0
+26 16 7 1 0.182983 0
+26 16 8 1 0.183228 0
+26 16 9 1 0.183716 0
+26 16 10 1 0.18457 0
+26 16 11 1 0.186035 0
+26 16 12 1 0.188477 0
+26 16 13 1 0.192261 0
+26 16 14 1 0.198242 0
+26 16 15 1 0.199829 0
+26 16 16 1 0.191406 0
+26 16 17 1 0.177734 0.276855
+26 16 18 1 0.167603 0.425537
+26 16 19 1 0.177124 0.549316
+26 16 20 1 0.192505 0.655762
+26 16 21 1 0.251953 0.756348
+26 16 22 1 0.31958 0.845215
+26 16 23 1 0.369629 0.916504
+26 16 24 1 0.396484 0.973145
+26 16 25 1 0.404297 1
+26 16 26 1 0.403564 1
+26 16 27 1 0.400391 1
+26 16 28 1 0.394531 1
+26 16 29 1 0.386719 1
+26 16 30 0.947754 0.377686 1
+26 16 31 0.858398 0.368164 1
+26 17 0 1 0.340088 0
+26 17 1 1 0.340088 0
+26 17 2 1 0.340088 0
+26 17 3 1 0.340088 0
+26 17 4 1 0.340088 0
+26 17 5 1 0.340088 0
+26 17 6 1 0.340088 0
+26 17 7 1 0.340088 0
+26 17 8 1 0.340088 0
+26 17 9 1 0.340332 0
+26 17 10 1 0.34082 0
+26 17 11 1 0.341309 0
+26 17 12 1 0.342285 0
+26 17 13 1 0.343994 0
+26 17 14 1 0.34668 0
+26 17 15 1 0.347412 0
+26 17 16 1 0.343994 0
+26 17 17 1 0.338867 0.273926
+26 17 18 1 0.33374 0.42041
+26 17 19 1 0.334229 0.542969
+26 17 20 1 0.339355 0.650391
+26 17 21 1 0.362305 0.750488
+26 17 22 1 0.403076 0.840332
+26 17 23 1 0.439697 0.913086
+26 17 24 1 0.460693 0.970703
+26 17 25 1 0.465088 1
+26 17 26 1 0.460693 1
+26 17 27 1 0.453857 1
+26 17 28 1 0.443604 1
+26 17 29 1 0.431152 1
+26 17 30 0.94043 0.417725 1
+26 17 31 0.851074 0.403809 1
+26 18 0 1 0.455566 0
+26 18 1 1 0.455566 0
+26 18 2 1 0.455566 0
+26 18 3 1 0.455566 0
+26 18 4 1 0.455566 0
+26 18 5 1 0.455566 0
+26 18 6 1 0.455566 0
+26 18 7 1 0.455566 0
+26 18 8 1 0.455566 0
+26 18 9 1 0.455811 0
+26 18 10 1 0.456055 0
+26 18 11 1 0.456299 0
+26 18 12 1 0.457031 0
+26 18 13 1 0.458252 0
+26 18 14 1 0.459961 0
+26 18 15 1 0.460449 0
+26 18 16 1 0.459229 0
+26 18 17 1 0.456787 0.276123
+26 18 18 1 0.453125 0.417969
+26 18 19 1 0.450195 0.536133
+26 18 20 1 0.453613 0.644531
+26 18 21 1 0.460205 0.742676
+26 18 22 1 0.484619 0.833496
+26 18 23 1 0.512207 0.908203
+26 18 24 1 0.52832 0.967285
+26 18 25 1 0.530273 1
+26 18 26 1 0.522949 1
+26 18 27 1 0.512207 1
+26 18 28 1 0.498047 1
+26 18 29 1 0.480957 1
+26 18 30 0.930176 0.462891 1
+26 18 31 0.84082 0.444336 1
+26 19 0 1 0.556641 0
+26 19 1 1 0.556641 0
+26 19 2 1 0.556641 0
+26 19 3 1 0.556641 0
+26 19 4 1 0.556641 0
+26 19 5 1 0.556641 0
+26 19 6 1 0.556641 0
+26 19 7 1 0.556641 0
+26 19 8 1 0.556641 0
+26 19 9 1 0.556641 0
+26 19 10 1 0.556641 0
+26 19 11 1 0.557129 0
+26 19 12 1 0.557617 0
+26 19 13 1 0.558594 0
+26 19 14 1 0.55957 0
+26 19 15 1 0.560547 0
+26 19 16 1 0.561035 0
+26 19 17 1 0.560059 0.285889
+26 19 18 1 0.558105 0.419922
+26 19 19 1 0.554199 0.532715
+26 19 20 1 0.551758 0.635742
+26 19 21 1 0.553223 0.733398
+26 19 22 1 0.564453 0.82373
+26 19 23 1 0.583984 0.900879
+26 19 24 1 0.597168 0.961914
+26 19 25 1 0.597168 1
+26 19 26 1 0.586914 1
+26 19 27 1 0.573242 1
+26 19 28 1 0.554688 1
+26 19 29 1 0.533691 1
+26 19 30 0.916992 0.510742 1
+26 19 31 0.828125 0.488037 1
+26 20 0 1 0.647461 0
+26 20 1 1 0.647461 0
+26 20 2 1 0.647461 0
+26 20 3 1 0.647461 0
+26 20 4 1 0.647461 0
+26 20 5 1 0.647461 0
+26 20 6 1 0.647461 0
+26 20 7 1 0.647461 0
+26 20 8 1 0.647461 0
+26 20 9 1 0.647461 0
+26 20 10 1 0.647461 0
+26 20 11 1 0.647949 0
+26 20 12 1 0.648438 0
+26 20 13 1 0.648926 0
+26 20 14 1 0.649902 0
+26 20 15 1 0.651367 0
+26 20 16 1 0.652344 0.0374146
+26 20 17 1 0.652832 0.300781
+26 20 18 1 0.651855 0.426758
+26 20 19 1 0.648926 0.533691
+26 20 20 1 0.644043 0.630371
+26 20 21 1 0.641113 0.724609
+26 20 22 1 0.64209 0.812012
+26 20 23 1 0.65332 0.890625
+26 20 24 1 0.663574 0.954102
+26 20 25 1 0.662598 1
+26 20 26 1 0.650391 1
+26 20 27 1 0.633789 1
+26 20 28 1 0.611816 1
+26 20 29 0.985352 0.586426 1
+26 20 30 0.900391 0.55957 1
+26 20 31 0.8125 0.532715 1
+26 21 0 1 0.731445 0
+26 21 1 1 0.731445 0
+26 21 2 1 0.731445 0
+26 21 3 1 0.731445 0
+26 21 4 1 0.731445 0
+26 21 5 1 0.731445 0
+26 21 6 1 0.731445 0
+26 21 7 1 0.731445 0
+26 21 8 1 0.731445 0
+26 21 9 1 0.731445 0
+26 21 10 1 0.731445 0
+26 21 11 1 0.731934 0
+26 21 12 1 0.731934 0
+26 21 13 1 0.732422 0
+26 21 14 1 0.733398 0
+26 21 15 1 0.734863 0
+26 21 16 1 0.736328 0.126587
+26 21 17 1 0.737793 0.316162
+26 21 18 1 0.738281 0.436035
+26 21 19 1 0.736328 0.538574
+26 21 20 1 0.731934 0.629883
+26 21 21 1 0.724609 0.716309
+26 21 22 1 0.720703 0.800781
+26 21 23 1 0.720703 0.877441
+26 21 24 1 0.728027 0.943848
+26 21 25 1 0.726562 1
+26 21 26 1 0.712891 1
+26 21 27 1 0.693359 1
+26 21 28 1 0.668457 1
+26 21 29 0.964844 0.63916 1
+26 21 30 0.880371 0.608887 1
+26 21 31 0.793457 0.578125 1
+26 22 0 1 0.807617 0
+26 22 1 1 0.807617 0
+26 22 2 1 0.807617 0
+26 22 3 1 0.807617 0
+26 22 4 1 0.807617 0
+26 22 5 1 0.807617 0
+26 22 6 1 0.807617 0
+26 22 7 1 0.807617 0
+26 22 8 1 0.807617 0
+26 22 9 1 0.807617 0
+26 22 10 1 0.808105 0
+26 22 11 1 0.808105 0
+26 22 12 1 0.808105 0
+26 22 13 1 0.808594 0
+26 22 14 1 0.809082 0
+26 22 15 1 0.810547 0
+26 22 16 1 0.8125 0.149658
+26 22 17 1 0.814941 0.324707
+26 22 18 1 0.815918 0.442383
+26 22 19 1 0.81543 0.542969
+26 22 20 1 0.811523 0.632324
+26 22 21 1 0.804688 0.713867
+26 22 22 1 0.794922 0.790039
+26 22 23 1 0.788086 0.862793
+26 22 24 1 0.789062 0.930176
+26 22 25 1 0.787598 0.989746
+26 22 26 1 0.772949 1
+26 22 27 1 0.751465 1
+26 22 28 1 0.723145 1
+26 22 29 0.939941 0.69043 1
+26 22 30 0.857422 0.656738 1
+26 22 31 0.771484 0.623535 1
+26 23 0 1 0.874023 0
+26 23 1 1 0.874023 0
+26 23 2 1 0.874023 0
+26 23 3 1 0.874023 0
+26 23 4 1 0.874023 0
+26 23 5 1 0.874023 0
+26 23 6 1 0.874023 0
+26 23 7 1 0.874023 0
+26 23 8 1 0.874023 0
+26 23 9 1 0.874023 0
+26 23 10 1 0.874512 0
+26 23 11 1 0.874512 0
+26 23 12 1 0.874512 0
+26 23 13 1 0.875 0
+26 23 14 1 0.875488 0
+26 23 15 1 0.875977 0
+26 23 16 1 0.878906 0.136963
+26 23 17 1 0.881348 0.321045
+26 23 18 1 0.883301 0.440674
+26 23 19 1 0.883789 0.54248
+26 23 20 1 0.881348 0.632324
+26 23 21 1 0.875 0.713379
+26 23 22 1 0.865234 0.785645
+26 23 23 1 0.853027 0.850586
+26 23 24 1 0.845215 0.914062
+26 23 25 1 0.842773 0.977539
+26 23 26 1 0.828125 1
+26 23 27 1 0.804688 1
+26 23 28 0.98877 0.773438 1
+26 23 29 0.912109 0.738281 1
+26 23 30 0.831055 0.702637 1
+26 23 31 0.746582 0.666504 1
+26 24 0 1 0.931641 0
+26 24 1 1 0.931641 0
+26 24 2 1 0.931641 0
+26 24 3 1 0.931641 0
+26 24 4 1 0.931641 0
+26 24 5 1 0.931641 0
+26 24 6 1 0.931641 0
+26 24 7 1 0.931641 0
+26 24 8 1 0.931641 0
+26 24 9 1 0.931641 0
+26 24 10 1 0.931641 0
+26 24 11 1 0.932129 0
+26 24 12 1 0.932129 0
+26 24 13 1 0.932129 0
+26 24 14 1 0.932617 0
+26 24 15 1 0.933105 0
+26 24 16 1 0.936035 0.0527649
+26 24 17 1 0.938965 0.303711
+26 24 18 1 0.941895 0.429199
+26 24 19 1 0.942871 0.533691
+26 24 20 1 0.941406 0.625488
+26 24 21 1 0.936523 0.708496
+26 24 22 1 0.927734 0.781738
+26 24 23 1 0.915527 0.844238
+26 24 24 1 0.901367 0.899902
+26 24 25 1 0.892578 0.962402
+26 24 26 1 0.878906 1
+26 24 27 1 0.853516 1
+26 24 28 0.955566 0.820312 1
+26 24 29 0.881348 0.783203 1
+26 24 30 0.802734 0.746094 1
+26 24 31 0.719727 0.708496 1
+26 25 0 1 0.985352 0
+26 25 1 1 0.985352 0
+26 25 2 1 0.985352 0
+26 25 3 1 0.985352 0
+26 25 4 1 0.985352 0
+26 25 5 1 0.985352 0
+26 25 6 1 0.985352 0
+26 25 7 1 0.985352 0
+26 25 8 1 0.985352 0
+26 25 9 1 0.985352 0
+26 25 10 1 0.98584 0
+26 25 11 1 0.98584 0
+26 25 12 1 0.98584 0
+26 25 13 1 0.98584 0
+26 25 14 1 0.986328 0
+26 25 15 1 0.986816 0
+26 25 16 1 0.989258 0
+26 25 17 1 0.992676 0.268311
+26 25 18 1 0.996094 0.405518
+26 25 19 1 0.998047 0.514648
+26 25 20 1 0.998047 0.609375
+26 25 21 1 0.994629 0.694824
+26 25 22 1 0.987305 0.770996
+26 25 23 1 0.976562 0.836426
+26 25 24 1 0.962891 0.891602
+26 25 25 1 0.944336 0.943848
+26 25 26 1 0.930176 1
+26 25 27 0.97998 0.902344 1
+26 25 28 0.915039 0.867676 1
+26 25 29 0.844238 0.830566 1
+26 25 30 0.768555 0.792969 1
+26 25 31 0.6875 0.754395 1
+26 26 0 1 1 0
+26 26 1 1 1 0
+26 26 2 1 1 0
+26 26 3 1 1 0
+26 26 4 1 1 0
+26 26 5 1 1 0
+26 26 6 1 1 0
+26 26 7 1 1 0
+26 26 8 1 1 0
+26 26 9 1 1 0
+26 26 10 1 1 0
+26 26 11 1 1 0
+26 26 12 1 1 0
+26 26 13 1 1 0
+26 26 14 1 1 0
+26 26 15 1 1 0
+26 26 16 1 1 0
+26 26 17 1 1 0.208496
+26 26 18 1 1 0.369141
+26 26 19 1 1 0.484619
+26 26 20 1 1 0.58252
+26 26 21 1 1 0.669922
+26 26 22 1 1 0.748535
+26 26 23 1 1 0.816406
+26 26 24 1 1 0.875
+26 26 25 1 1 0.930176
+26 26 26 0.981445 0.981445 0.981445
+26 26 27 0.928223 0.952637 1
+26 26 28 0.868164 0.919434 1
+26 26 29 0.80127 0.883301 1
+26 26 30 0.727539 0.844238 1
+26 26 31 0.646484 0.803711 1
+26 27 0 1 1 0
+26 27 1 1 1 0
+26 27 2 1 1 0
+26 27 3 1 1 0
+26 27 4 1 1 0
+26 27 5 1 1 0
+26 27 6 1 1 0
+26 27 7 1 1 0
+26 27 8 1 1 0
+26 27 9 1 1 0
+26 27 10 1 1 0
+26 27 11 1 1 0
+26 27 12 1 1 0
+26 27 13 1 1 0
+26 27 14 1 1 0
+26 27 15 1 1 0
+26 27 16 1 1 0
+26 27 17 1 1 0.0814209
+26 27 18 1 1 0.321533
+26 27 19 1 1 0.446045
+26 27 20 1 1 0.546875
+26 27 21 1 1 0.636719
+26 27 22 1 1 0.716309
+26 27 23 1 1 0.785156
+26 27 24 0.98584 1 0.845215
+26 27 25 0.953125 1 0.901855
+26 27 26 0.915039 1 0.957031
+26 27 27 0.871094 1 1
+26 27 28 0.814453 0.978516 1
+26 27 29 0.748535 0.94043 1
+26 27 30 0.674316 0.899414 1
+26 27 31 0.592285 0.856445 1
+26 28 0 0.988281 1 0
+26 28 1 0.988281 1 0
+26 28 2 0.988281 1 0
+26 28 3 0.988281 1 0
+26 28 4 0.988281 1 0
+26 28 5 0.988281 1 0
+26 28 6 0.988281 1 0
+26 28 7 0.988281 1 0
+26 28 8 0.988281 1 0
+26 28 9 0.988281 1 0
+26 28 10 0.988281 1 0
+26 28 11 0.988281 1 0
+26 28 12 0.988281 1 0
+26 28 13 0.987793 1 0
+26 28 14 0.987793 1 0
+26 28 15 0.987793 1 0
+26 28 16 0.987305 1 0
+26 28 17 0.985352 1 0
+26 28 18 0.981934 1 0.259277
+26 28 19 0.976562 1 0.399658
+26 28 20 0.967773 1 0.505371
+26 28 21 0.955566 1 0.59668
+26 28 22 0.939453 1 0.677246
+26 28 23 0.919434 1 0.747559
+26 28 24 0.896484 1 0.808594
+26 28 25 0.867676 1 0.868164
+26 28 26 0.833008 1 0.926758
+26 28 27 0.791016 1 0.981934
+26 28 28 0.739746 1 1
+26 28 29 0.677734 0.998047 1
+26 28 30 0.604004 0.95752 1
+26 28 31 0.518066 0.913086 1
+26 29 0 0.877441 1 0
+26 29 1 0.877441 1 0
+26 29 2 0.877441 1 0
+26 29 3 0.877441 1 0
+26 29 4 0.877441 1 0
+26 29 5 0.877441 1 0
+26 29 6 0.877441 1 0
+26 29 7 0.877441 1 0
+26 29 8 0.877441 1 0
+26 29 9 0.877441 1 0
+26 29 10 0.877441 1 0
+26 29 11 0.877441 1 0
+26 29 12 0.877441 1 0
+26 29 13 0.877441 1 0
+26 29 14 0.877441 1 0
+26 29 15 0.876953 1 0
+26 29 16 0.876953 1 0
+26 29 17 0.874512 1 0
+26 29 18 0.870605 1 0.164917
+26 29 19 0.864258 1 0.344482
+26 29 20 0.855957 1 0.457031
+26 29 21 0.84375 1 0.55127
+26 29 22 0.828613 1 0.633301
+26 29 23 0.810059 1 0.70459
+26 29 24 0.789062 1 0.767578
+26 29 25 0.762207 1 0.82959
+26 29 26 0.729492 1 0.890137
+26 29 27 0.688477 1 0.948242
+26 29 28 0.638184 1 1
+26 29 29 0.57666 1 1
+26 29 30 0.500488 1 1
+26 29 31 0.403564 0.970215 1
+26 30 0 0.748535 1 0
+26 30 1 0.748535 1 0
+26 30 2 0.748535 1 0
+26 30 3 0.748535 1 0
+26 30 4 0.748535 1 0
+26 30 5 0.748535 1 0
+26 30 6 0.748535 1 0
+26 30 7 0.748535 1 0
+26 30 8 0.748535 1 0
+26 30 9 0.748535 1 0
+26 30 10 0.748535 1 0
+26 30 11 0.748535 1 0
+26 30 12 0.748535 1 0
+26 30 13 0.748535 1 0
+26 30 14 0.748535 1 0
+26 30 15 0.748535 1 0
+26 30 16 0.748535 1 0
+26 30 17 0.746094 1 0
+26 30 18 0.740723 1 0
+26 30 19 0.733887 1 0.276367
+26 30 20 0.724121 1 0.402832
+26 30 21 0.711426 1 0.500977
+26 30 22 0.695801 1 0.584961
+26 30 23 0.677246 1 0.657715
+26 30 24 0.655762 1 0.722168
+26 30 25 0.628906 1 0.785645
+26 30 26 0.594727 1 0.848145
+26 30 27 0.551758 1 0.908691
+26 30 28 0.496582 1 0.96582
+26 30 29 0.424805 1 1
+26 30 30 0.325195 1 1
+26 30 31 0.12207 1 1
+26 31 0 0.590332 1 0
+26 31 1 0.590332 1 0
+26 31 2 0.590332 1 0
+26 31 3 0.590332 1 0
+26 31 4 0.590332 1 0
+26 31 5 0.590332 1 0
+26 31 6 0.590332 1 0
+26 31 7 0.590332 1 0
+26 31 8 0.590332 1 0
+26 31 9 0.590332 1 0
+26 31 10 0.590332 1 0
+26 31 11 0.590332 1 0
+26 31 12 0.590332 1 0
+26 31 13 0.590332 1 0
+26 31 14 0.590332 1 0
+26 31 15 0.590332 1 0
+26 31 16 0.590332 1 0
+26 31 17 0.588379 1 0
+26 31 18 0.581055 1 0
+26 31 19 0.571289 1 0.178589
+26 31 20 0.558594 1 0.339844
+26 31 21 0.542969 1 0.445557
+26 31 22 0.523438 1 0.532715
+26 31 23 0.500488 1 0.606445
+26 31 24 0.473877 1 0.671875
+26 31 25 0.439209 1 0.736816
+26 31 26 0.393311 1 0.800781
+26 31 27 0.328857 1 0.863281
+26 31 28 0.224731 1 0.92334
+26 31 29 0 1 0.97998
+26 31 30 0 1 1
+26 31 31 0 1 1
+27 0 0 1 0 0
+27 0 1 1 0 0
+27 0 2 1 0 0
+27 0 3 1 0 0
+27 0 4 1 0 0
+27 0 5 1 0 0
+27 0 6 1 0 0
+27 0 7 1 0 0
+27 0 8 1 0 0
+27 0 9 1 0 0
+27 0 10 1 0 0
+27 0 11 1 0 0
+27 0 12 1 0 0
+27 0 13 1 0 0
+27 0 14 1 0 0
+27 0 15 1 0 0
+27 0 16 1 0 0
+27 0 17 1 0 0.218506
+27 0 18 1 0 0.385986
+27 0 19 1 0 0.508301
+27 0 20 1 0 0.616211
+27 0 21 1 0 0.716309
+27 0 22 1 0 0.805176
+27 0 23 1 0 0.878418
+27 0 24 1 0 0.938477
+27 0 25 1 0.168335 0.991699
+27 0 26 1 0.208862 1
+27 0 27 1 0.228027 1
+27 0 28 1 0.243774 1
+27 0 29 1 0.256348 1
+27 0 30 1 0.265869 1
+27 0 31 0.96875 0.272949 1
+27 1 0 1 0 0
+27 1 1 1 0 0
+27 1 2 1 0 0
+27 1 3 1 0 0
+27 1 4 1 0 0
+27 1 5 1 0 0
+27 1 6 1 0 0
+27 1 7 1 0 0
+27 1 8 1 0 0
+27 1 9 1 0 0
+27 1 10 1 0 0
+27 1 11 1 0 0
+27 1 12 1 0 0
+27 1 13 1 0 0
+27 1 14 1 0 0
+27 1 15 1 0 0
+27 1 16 1 0 0
+27 1 17 1 0 0.218506
+27 1 18 1 0 0.385986
+27 1 19 1 0 0.508301
+27 1 20 1 0 0.616211
+27 1 21 1 0 0.716309
+27 1 22 1 0 0.805176
+27 1 23 1 0 0.878418
+27 1 24 1 0 0.938477
+27 1 25 1 0.168335 0.991699
+27 1 26 1 0.208862 1
+27 1 27 1 0.228027 1
+27 1 28 1 0.243774 1
+27 1 29 1 0.256348 1
+27 1 30 1 0.265869 1
+27 1 31 0.96875 0.272949 1
+27 2 0 1 0 0
+27 2 1 1 0 0
+27 2 2 1 0 0
+27 2 3 1 0 0
+27 2 4 1 0 0
+27 2 5 1 0 0
+27 2 6 1 0 0
+27 2 7 1 0 0
+27 2 8 1 0 0
+27 2 9 1 0 0
+27 2 10 1 0 0
+27 2 11 1 0 0
+27 2 12 1 0 0
+27 2 13 1 0 0
+27 2 14 1 0 0
+27 2 15 1 0 0
+27 2 16 1 0 0
+27 2 17 1 0 0.218384
+27 2 18 1 0 0.385986
+27 2 19 1 0 0.508301
+27 2 20 1 0 0.616211
+27 2 21 1 0 0.716309
+27 2 22 1 0 0.805176
+27 2 23 1 0 0.878418
+27 2 24 1 0 0.938477
+27 2 25 1 0.168457 0.991699
+27 2 26 1 0.208862 1
+27 2 27 1 0.228149 1
+27 2 28 1 0.243774 1
+27 2 29 1 0.256348 1
+27 2 30 1 0.265869 1
+27 2 31 0.96875 0.272949 1
+27 3 0 1 0 0
+27 3 1 1 0 0
+27 3 2 1 0 0
+27 3 3 1 0 0
+27 3 4 1 0 0
+27 3 5 1 0 0
+27 3 6 1 0 0
+27 3 7 1 0 0
+27 3 8 1 0 0
+27 3 9 1 0 0
+27 3 10 1 0 0
+27 3 11 1 0 0
+27 3 12 1 0 0
+27 3 13 1 0 0
+27 3 14 1 0 0
+27 3 15 1 0 0
+27 3 16 1 0 0
+27 3 17 1 0 0.218384
+27 3 18 1 0 0.385986
+27 3 19 1 0 0.508301
+27 3 20 1 0 0.616211
+27 3 21 1 0 0.716309
+27 3 22 1 0 0.805176
+27 3 23 1 0 0.878418
+27 3 24 1 0 0.938477
+27 3 25 1 0.168457 0.991699
+27 3 26 1 0.208984 1
+27 3 27 1 0.228149 1
+27 3 28 1 0.243896 1
+27 3 29 1 0.256348 1
+27 3 30 1 0.265869 1
+27 3 31 0.96875 0.272949 1
+27 4 0 1 0 0
+27 4 1 1 0 0
+27 4 2 1 0 0
+27 4 3 1 0 0
+27 4 4 1 0 0
+27 4 5 1 0 0
+27 4 6 1 0 0
+27 4 7 1 0 0
+27 4 8 1 0 0
+27 4 9 1 0 0
+27 4 10 1 0 0
+27 4 11 1 0 0
+27 4 12 1 0 0
+27 4 13 1 0 0
+27 4 14 1 0 0
+27 4 15 1 0 0
+27 4 16 1 0 0
+27 4 17 1 0 0.218384
+27 4 18 1 0 0.385986
+27 4 19 1 0 0.508301
+27 4 20 1 0 0.616211
+27 4 21 1 0 0.716309
+27 4 22 1 0 0.805176
+27 4 23 1 0 0.878418
+27 4 24 1 0 0.938477
+27 4 25 1 0.168701 0.991699
+27 4 26 1 0.209106 1
+27 4 27 1 0.228271 1
+27 4 28 1 0.243896 1
+27 4 29 1 0.256348 1
+27 4 30 1 0.265869 1
+27 4 31 0.96875 0.272949 1
+27 5 0 1 0 0
+27 5 1 1 0 0
+27 5 2 1 0 0
+27 5 3 1 0 0
+27 5 4 1 0 0
+27 5 5 1 0 0
+27 5 6 1 0 0
+27 5 7 1 0 0
+27 5 8 1 0 0
+27 5 9 1 0 0
+27 5 10 1 0 0
+27 5 11 1 0 0
+27 5 12 1 0 0
+27 5 13 1 0 0
+27 5 14 1 0 0
+27 5 15 1 0 0
+27 5 16 1 0 0
+27 5 17 1 0 0.218384
+27 5 18 1 0 0.385986
+27 5 19 1 0 0.508301
+27 5 20 1 0 0.616211
+27 5 21 1 0 0.716309
+27 5 22 1 0 0.805176
+27 5 23 1 0 0.878418
+27 5 24 1 0 0.938477
+27 5 25 1 0.169067 0.991699
+27 5 26 1 0.209351 1
+27 5 27 1 0.228516 1
+27 5 28 1 0.244141 1
+27 5 29 1 0.256592 1
+27 5 30 1 0.266113 1
+27 5 31 0.96875 0.272949 1
+27 6 0 1 0 0
+27 6 1 1 0 0
+27 6 2 1 0 0
+27 6 3 1 0 0
+27 6 4 1 0 0
+27 6 5 1 0 0
+27 6 6 1 0 0
+27 6 7 1 0 0
+27 6 8 1 0 0
+27 6 9 1 0 0
+27 6 10 1 0 0
+27 6 11 1 0 0
+27 6 12 1 0 0
+27 6 13 1 0 0
+27 6 14 1 0 0
+27 6 15 1 0 0
+27 6 16 1 0 0
+27 6 17 1 0 0.218384
+27 6 18 1 0 0.385986
+27 6 19 1 0 0.508301
+27 6 20 1 0 0.616211
+27 6 21 1 0 0.716309
+27 6 22 1 0 0.805176
+27 6 23 1 0 0.878418
+27 6 24 1 0 0.938477
+27 6 25 1 0.169678 0.991699
+27 6 26 1 0.209839 1
+27 6 27 1 0.228882 1
+27 6 28 1 0.244385 1
+27 6 29 1 0.256836 1
+27 6 30 1 0.266113 1
+27 6 31 0.96875 0.273193 1
+27 7 0 1 0 0
+27 7 1 1 0 0
+27 7 2 1 0 0
+27 7 3 1 0 0
+27 7 4 1 0 0
+27 7 5 1 0 0
+27 7 6 1 0 0
+27 7 7 1 0 0
+27 7 8 1 0 0
+27 7 9 1 0 0
+27 7 10 1 0 0
+27 7 11 1 0 0
+27 7 12 1 0 0
+27 7 13 1 0 0
+27 7 14 1 0 0
+27 7 15 1 0 0
+27 7 16 1 0 0
+27 7 17 1 0 0.218262
+27 7 18 1 0 0.385986
+27 7 19 1 0 0.508301
+27 7 20 1 0 0.616211
+27 7 21 1 0 0.716309
+27 7 22 1 0 0.805176
+27 7 23 1 0 0.878418
+27 7 24 1 0 0.938477
+27 7 25 1 0.170898 0.991699
+27 7 26 1 0.210693 1
+27 7 27 1 0.229614 1
+27 7 28 1 0.244995 1
+27 7 29 1 0.257324 1
+27 7 30 1 0.266602 1
+27 7 31 0.96875 0.273682 1
+27 8 0 1 0 0
+27 8 1 1 0 0
+27 8 2 1 0 0
+27 8 3 1 0 0
+27 8 4 1 0 0
+27 8 5 1 0 0
+27 8 6 1 0 0
+27 8 7 1 0 0
+27 8 8 1 0 0
+27 8 9 1 0 0
+27 8 10 1 0 0
+27 8 11 1 0 0
+27 8 12 1 0 0
+27 8 13 1 0 0
+27 8 14 1 0 0
+27 8 15 1 0 0
+27 8 16 1 0 0
+27 8 17 1 0 0.218018
+27 8 18 1 0 0.385742
+27 8 19 1 0 0.508301
+27 8 20 1 0 0.615723
+27 8 21 1 0 0.716309
+27 8 22 1 0 0.805176
+27 8 23 1 0 0.878418
+27 8 24 1 0 0.938477
+27 8 25 1 0.17334 0.991699
+27 8 26 1 0.212402 1
+27 8 27 1 0.230957 1
+27 8 28 1 0.246216 1
+27 8 29 1 0.258301 1
+27 8 30 1 0.267334 1
+27 8 31 0.96875 0.27417 1
+27 9 0 1 0 0
+27 9 1 1 0 0
+27 9 2 1 0 0
+27 9 3 1 0 0
+27 9 4 1 0 0
+27 9 5 1 0 0
+27 9 6 1 0 0
+27 9 7 1 0 0
+27 9 8 1 0 0
+27 9 9 1 0 0
+27 9 10 1 0 0
+27 9 11 1 0 0
+27 9 12 1 0 0
+27 9 13 1 0 0
+27 9 14 1 0 0
+27 9 15 1 0 0
+27 9 16 1 0 0
+27 9 17 1 0 0.217651
+27 9 18 1 0 0.385742
+27 9 19 1 0 0.507812
+27 9 20 1 0 0.615723
+27 9 21 1 0 0.71582
+27 9 22 1 0 0.804688
+27 9 23 1 0 0.878418
+27 9 24 1 0 0.938477
+27 9 25 1 0.177734 0.991699
+27 9 26 1 0.215576 1
+27 9 27 1 0.233643 1
+27 9 28 1 0.248413 1
+27 9 29 1 0.26001 1
+27 9 30 1 0.269043 1
+27 9 31 0.96875 0.275635 1
+27 10 0 1 0 0
+27 10 1 1 0 0
+27 10 2 1 0 0
+27 10 3 1 0 0
+27 10 4 1 0 0
+27 10 5 1 0 0
+27 10 6 1 0 0
+27 10 7 1 0 0
+27 10 8 1 0 0
+27 10 9 1 0 0
+27 10 10 1 0 0
+27 10 11 1 0 0
+27 10 12 1 0 0
+27 10 13 1 0 0
+27 10 14 1 0 0
+27 10 15 1 0 0
+27 10 16 1 0 0
+27 10 17 1 0 0.217041
+27 10 18 1 0 0.385254
+27 10 19 1 0 0.507812
+27 10 20 1 0 0.615723
+27 10 21 1 0 0.71582
+27 10 22 1 0 0.804688
+27 10 23 1 0 0.878418
+27 10 24 1 0 0.938477
+27 10 25 1 0.185425 0.991699
+27 10 26 1 0.221313 1
+27 10 27 1 0.238403 1
+27 10 28 1 0.252441 1
+27 10 29 1 0.263428 1
+27 10 30 1 0.271729 1
+27 10 31 0.968262 0.277832 1
+27 11 0 1 0 0
+27 11 1 1 0 0
+27 11 2 1 0 0
+27 11 3 1 0 0
+27 11 4 1 0 0
+27 11 5 1 0 0
+27 11 6 1 0 0
+27 11 7 1 0 0
+27 11 8 1 0 0
+27 11 9 1 0 0
+27 11 10 1 0 0
+27 11 11 1 0 0
+27 11 12 1 0 0
+27 11 13 1 0 0
+27 11 14 1 0 0
+27 11 15 1 0 0
+27 11 16 1 0 0
+27 11 17 1 0 0.215942
+27 11 18 1 0 0.384521
+27 11 19 1 0 0.507324
+27 11 20 1 0 0.615234
+27 11 21 1 0 0.715332
+27 11 22 1 0 0.804688
+27 11 23 1 0 0.87793
+27 11 24 1 0.0739746 0.937988
+27 11 25 1 0.197998 0.991699
+27 11 26 1 0.230835 1
+27 11 27 1 0.24646 1
+27 11 28 1 0.259277 1
+27 11 29 1 0.269043 1
+27 11 30 1 0.276611 1
+27 11 31 0.968262 0.281982 1
+27 12 0 1 0 0
+27 12 1 1 0 0
+27 12 2 1 0 0
+27 12 3 1 0 0
+27 12 4 1 0 0
+27 12 5 1 0 0
+27 12 6 1 0 0
+27 12 7 1 0 0
+27 12 8 1 0 0
+27 12 9 1 0 0
+27 12 10 1 0 0
+27 12 11 1 0 0
+27 12 12 1 0 0
+27 12 13 1 0 0
+27 12 14 1 0 0
+27 12 15 1 0 0
+27 12 16 1 0 0
+27 12 17 1 0 0.213989
+27 12 18 1 0 0.383301
+27 12 19 1 0 0.506836
+27 12 20 1 0 0.614746
+27 12 21 1 0 0.714844
+27 12 22 1 0 0.804199
+27 12 23 1 0 0.87793
+27 12 24 1 0.127441 0.937988
+27 12 25 1 0.217163 0.991699
+27 12 26 1 0.24585 1
+27 12 27 1 0.259277 1
+27 12 28 1 0.270264 1
+27 12 29 1 0.278564 1
+27 12 30 1 0.284668 1
+27 12 31 0.967285 0.288574 1
+27 13 0 1 0 0
+27 13 1 1 0 0
+27 13 2 1 0 0
+27 13 3 1 0 0
+27 13 4 1 0 0
+27 13 5 1 0 0
+27 13 6 1 0 0
+27 13 7 1 0 0
+27 13 8 1 0 0
+27 13 9 1 0 0
+27 13 10 1 0 0
+27 13 11 1 0 0
+27 13 12 1 0 0
+27 13 13 1 0 0
+27 13 14 1 0 0
+27 13 15 1 0 0
+27 13 16 1 0 0
+27 13 17 1 0 0.210938
+27 13 18 1 0 0.381592
+27 13 19 1 0 0.506348
+27 13 20 1 0 0.61377
+27 13 21 1 0 0.713867
+27 13 22 1 0 0.803223
+27 13 23 1 0 0.877441
+27 13 24 1 0.176758 0.9375
+27 13 25 1 0.244385 0.991211
+27 13 26 1 0.268311 1
+27 13 27 1 0.278809 1
+27 13 28 1 0.287109 1
+27 13 29 1 0.292969 1
+27 13 30 1 0.296875 1
+27 13 31 0.966309 0.299316 1
+27 14 0 1 0 0
+27 14 1 1 0 0
+27 14 2 1 0 0
+27 14 3 1 0 0
+27 14 4 1 0 0
+27 14 5 1 0 0
+27 14 6 1 0 0
+27 14 7 1 0 0
+27 14 8 1 0 0
+27 14 9 1 0 0
+27 14 10 1 0 0
+27 14 11 1 0 0
+27 14 12 1 0 0
+27 14 13 1 0 0
+27 14 14 1 0 0
+27 14 15 1 0 0
+27 14 16 1 0 0
+27 14 17 1 0 0.206543
+27 14 18 1 0 0.378662
+27 14 19 1 0 0.504883
+27 14 20 1 0 0.611816
+27 14 21 1 0 0.712402
+27 14 22 1 0 0.802246
+27 14 23 1 0.0950928 0.876465
+27 14 24 1 0.229248 0.937012
+27 14 25 1 0.280273 0.990723
+27 14 26 1 0.299072 1
+27 14 27 1 0.306152 1
+27 14 28 1 0.311279 1
+27 14 29 1 0.314209 1
+27 14 30 1 0.31543 1
+27 14 31 0.964355 0.314941 1
+27 15 0 1 0 0
+27 15 1 1 0 0
+27 15 2 1 0 0
+27 15 3 1 0 0
+27 15 4 1 0 0
+27 15 5 1 0 0
+27 15 6 1 0 0
+27 15 7 1 0 0
+27 15 8 1 0 0
+27 15 9 1 0 0
+27 15 10 1 0 0
+27 15 11 1 0 0
+27 15 12 1 0 0
+27 15 13 1 0 0
+27 15 14 1 0 0
+27 15 15 1 0 0
+27 15 16 1 0 0
+27 15 17 1 0 0.200439
+27 15 18 1 0 0.374756
+27 15 19 1 0 0.503418
+27 15 20 1 0 0.609375
+27 15 21 1 0 0.709961
+27 15 22 1 0 0.800293
+27 15 23 1 0.212891 0.875
+27 15 24 1 0.286621 0.936035
+27 15 25 1 0.325439 0.990234
+27 15 26 1 0.339111 1
+27 15 27 1 0.342529 1
+27 15 28 1 0.343994 1
+27 15 29 1 0.343262 1
+27 15 30 1 0.34082 1
+27 15 31 0.961426 0.337158 1
+27 16 0 1 0 0
+27 16 1 1 0 0
+27 16 2 1 0 0
+27 16 3 1 0 0
+27 16 4 1 0 0
+27 16 5 1 0 0
+27 16 6 1 0 0
+27 16 7 1 0 0
+27 16 8 1 0 0
+27 16 9 1 0 0
+27 16 10 1 0 0
+27 16 11 1 0 0
+27 16 12 1 0.0192566 0
+27 16 13 1 0.0536804 0
+27 16 14 1 0.078064 0
+27 16 15 1 0.0903931 0
+27 16 16 1 0.079895 0
+27 16 17 1 0 0.193726
+27 16 18 1 0 0.370117
+27 16 19 1 0 0.498291
+27 16 20 1 0 0.606445
+27 16 21 1 0.122681 0.706055
+27 16 22 1 0.224731 0.796875
+27 16 23 1 0.299316 0.872559
+27 16 24 1 0.349854 0.93457
+27 16 25 1 0.37915 0.989258
+27 16 26 1 0.388428 1
+27 16 27 1 0.388184 1
+27 16 28 1 0.385742 1
+27 16 29 1 0.380859 1
+27 16 30 1 0.374268 1
+27 16 31 0.957031 0.366699 1
+27 17 0 1 0.288574 0
+27 17 1 1 0.288574 0
+27 17 2 1 0.288574 0
+27 17 3 1 0.288574 0
+27 17 4 1 0.288574 0
+27 17 5 1 0.288574 0
+27 17 6 1 0.288574 0
+27 17 7 1 0.288574 0
+27 17 8 1 0.288574 0
+27 17 9 1 0.288818 0
+27 17 10 1 0.289307 0
+27 17 11 1 0.290039 0
+27 17 12 1 0.29126 0
+27 17 13 1 0.292969 0
+27 17 14 1 0.296143 0
+27 17 15 1 0.29834 0
+27 17 16 1 0.295898 0
+27 17 17 1 0.289795 0.188721
+27 17 18 1 0.282715 0.365479
+27 17 19 1 0.279785 0.492432
+27 17 20 1 0.2854 0.602539
+27 17 21 1 0.297363 0.701172
+27 17 22 1 0.334961 0.791992
+27 17 23 1 0.380127 0.869141
+27 17 24 1 0.416992 0.932129
+27 17 25 1 0.439453 0.987305
+27 17 26 1 0.444824 1
+27 17 27 1 0.441162 1
+27 17 28 1 0.43457 1
+27 17 29 1 0.425537 1
+27 17 30 1 0.414795 1
+27 17 31 0.951172 0.402832 1
+27 18 0 1 0.411377 0
+27 18 1 1 0.411377 0
+27 18 2 1 0.411377 0
+27 18 3 1 0.411377 0
+27 18 4 1 0.411377 0
+27 18 5 1 0.411377 0
+27 18 6 1 0.411377 0
+27 18 7 1 0.411377 0
+27 18 8 1 0.411621 0
+27 18 9 1 0.411621 0
+27 18 10 1 0.411865 0
+27 18 11 1 0.412354 0
+27 18 12 1 0.413086 0
+27 18 13 1 0.414062 0
+27 18 14 1 0.416016 0
+27 18 15 1 0.417725 0
+27 18 16 1 0.41626 0
+27 18 17 1 0.413574 0.190308
+27 18 18 1 0.409912 0.362793
+27 18 19 1 0.406494 0.486816
+27 18 20 1 0.407959 0.596191
+27 18 21 1 0.411865 0.694824
+27 18 22 1 0.429443 0.785645
+27 18 23 1 0.458496 0.86377
+27 18 24 1 0.486328 0.928223
+27 18 25 1 0.503906 0.984863
+27 18 26 1 0.505859 1
+27 18 27 1 0.499023 1
+27 18 28 1 0.48877 1
+27 18 29 1 0.475586 1
+27 18 30 1 0.460449 1
+27 18 31 0.942383 0.444092 1
+27 19 0 1 0.513672 0
+27 19 1 1 0.513672 0
+27 19 2 1 0.513672 0
+27 19 3 1 0.513672 0
+27 19 4 1 0.513672 0
+27 19 5 1 0.513672 0
+27 19 6 1 0.513672 0
+27 19 7 1 0.513672 0
+27 19 8 1 0.513672 0
+27 19 9 1 0.513672 0
+27 19 10 1 0.513672 0
+27 19 11 1 0.51416 0
+27 19 12 1 0.514648 0
+27 19 13 1 0.515625 0
+27 19 14 1 0.516602 0
+27 19 15 1 0.518066 0
+27 19 16 1 0.518066 0
+27 19 17 1 0.517578 0.20166
+27 19 18 1 0.515625 0.364258
+27 19 19 1 0.512695 0.483643
+27 19 20 1 0.510254 0.588867
+27 19 21 1 0.512695 0.688477
+27 19 22 1 0.517578 0.777344
+27 19 23 1 0.534668 0.856445
+27 19 24 1 0.555176 0.922852
+27 19 25 1 0.568848 0.980469
+27 19 26 1 0.568848 1
+27 19 27 1 0.559082 1
+27 19 28 1 0.54541 1
+27 19 29 1 0.52832 1
+27 19 30 1 0.508789 1
+27 19 31 0.932129 0.488525 1
+27 20 0 1 0.603516 0
+27 20 1 1 0.603516 0
+27 20 2 1 0.603516 0
+27 20 3 1 0.603516 0
+27 20 4 1 0.603516 0
+27 20 5 1 0.603516 0
+27 20 6 1 0.603516 0
+27 20 7 1 0.603516 0
+27 20 8 1 0.604004 0
+27 20 9 1 0.604004 0
+27 20 10 1 0.604004 0
+27 20 11 1 0.604004 0
+27 20 12 1 0.604492 0
+27 20 13 1 0.605469 0
+27 20 14 1 0.606445 0
+27 20 15 1 0.60791 0
+27 20 16 1 0.608887 0
+27 20 17 1 0.609375 0.221191
+27 20 18 1 0.608887 0.37085
+27 20 19 1 0.606934 0.484619
+27 20 20 1 0.603516 0.584473
+27 20 21 1 0.600586 0.679688
+27 20 22 1 0.601074 0.768066
+27 20 23 1 0.60791 0.84668
+27 20 24 1 0.62207 0.915039
+27 20 25 1 0.632812 0.974609
+27 20 26 1 0.630859 1
+27 20 27 1 0.618652 1
+27 20 28 1 0.602051 1
+27 20 29 1 0.581543 1
+27 20 30 1 0.558105 1
+27 20 31 0.918945 0.533691 1
+27 21 0 1 0.686523 0
+27 21 1 1 0.686523 0
+27 21 2 1 0.686523 0
+27 21 3 1 0.686523 0
+27 21 4 1 0.686523 0
+27 21 5 1 0.686523 0
+27 21 6 1 0.686523 0
+27 21 7 1 0.686523 0
+27 21 8 1 0.686523 0
+27 21 9 1 0.686523 0
+27 21 10 1 0.687012 0
+27 21 11 1 0.687012 0
+27 21 12 1 0.6875 0
+27 21 13 1 0.687988 0
+27 21 14 1 0.688477 0
+27 21 15 1 0.689941 0
+27 21 16 1 0.691406 0
+27 21 17 1 0.693359 0.243408
+27 21 18 1 0.693848 0.381104
+27 21 19 1 0.693359 0.489258
+27 21 20 1 0.69043 0.583984
+27 21 21 1 0.685547 0.67334
+27 21 22 1 0.681641 0.758301
+27 21 23 1 0.680664 0.835449
+27 21 24 1 0.687012 0.904297
+27 21 25 1 0.694824 0.966797
+27 21 26 1 0.691895 1
+27 21 27 1 0.677734 1
+27 21 28 1 0.658691 1
+27 21 29 1 0.634766 1
+27 21 30 0.988281 0.60791 1
+27 21 31 0.902832 0.580078 1
+27 22 0 1 0.761719 0
+27 22 1 1 0.761719 0
+27 22 2 1 0.761719 0
+27 22 3 1 0.761719 0
+27 22 4 1 0.761719 0
+27 22 5 1 0.761719 0
+27 22 6 1 0.761719 0
+27 22 7 1 0.761719 0
+27 22 8 1 0.761719 0
+27 22 9 1 0.761719 0
+27 22 10 1 0.762207 0
+27 22 11 1 0.762207 0
+27 22 12 1 0.762207 0
+27 22 13 1 0.762695 0
+27 22 14 1 0.763672 0
+27 22 15 1 0.76416 0
+27 22 16 1 0.766602 0
+27 22 17 1 0.769043 0.260986
+27 22 18 1 0.770996 0.390869
+27 22 19 1 0.770996 0.495117
+27 22 20 1 0.769043 0.586426
+27 22 21 1 0.76416 0.670898
+27 22 22 1 0.757324 0.749512
+27 22 23 1 0.752441 0.824219
+27 22 24 1 0.75 0.891602
+27 22 25 1 0.754395 0.956543
+27 22 26 1 0.750977 1
+27 22 27 1 0.735352 1
+27 22 28 1 0.713867 1
+27 22 29 1 0.687012 1
+27 22 30 0.96875 0.657227 1
+27 22 31 0.883789 0.625488 1
+27 23 0 1 0.827637 0
+27 23 1 1 0.827637 0
+27 23 2 1 0.827637 0
+27 23 3 1 0.827637 0
+27 23 4 1 0.827637 0
+27 23 5 1 0.827637 0
+27 23 6 1 0.827637 0
+27 23 7 1 0.827637 0
+27 23 8 1 0.827637 0
+27 23 9 1 0.827637 0
+27 23 10 1 0.828125 0
+27 23 11 1 0.828125 0
+27 23 12 1 0.828125 0
+27 23 13 1 0.828613 0
+27 23 14 1 0.829102 0
+27 23 15 1 0.82959 0
+27 23 16 1 0.832031 0
+27 23 17 1 0.834961 0.268311
+27 23 18 1 0.837402 0.395508
+27 23 19 1 0.838867 0.498535
+27 23 20 1 0.837891 0.588379
+27 23 21 1 0.833984 0.67041
+27 23 22 1 0.827148 0.745605
+27 23 23 1 0.818359 0.813477
+27 23 24 1 0.811035 0.878418
+27 23 25 1 0.808594 0.943848
+27 23 26 1 0.804688 1
+27 23 27 1 0.788574 1
+27 23 28 1 0.765137 1
+27 23 29 1 0.73584 1
+27 23 30 0.946289 0.703125 1
+27 23 31 0.862793 0.668945 1
+27 24 0 1 0.885254 0
+27 24 1 1 0.885254 0
+27 24 2 1 0.885254 0
+27 24 3 1 0.885254 0
+27 24 4 1 0.885254 0
+27 24 5 1 0.885254 0
+27 24 6 1 0.885742 0
+27 24 7 1 0.885742 0
+27 24 8 1 0.885742 0
+27 24 9 1 0.885742 0
+27 24 10 1 0.885742 0
+27 24 11 1 0.885742 0
+27 24 12 1 0.885742 0
+27 24 13 1 0.88623 0
+27 24 14 1 0.88623 0
+27 24 15 1 0.887207 0
+27 24 16 1 0.88916 0
+27 24 17 1 0.892578 0.262207
+27 24 18 1 0.895508 0.39209
+27 24 19 1 0.897461 0.496094
+27 24 20 1 0.897461 0.586914
+27 24 21 1 0.89502 0.668945
+27 24 22 1 0.88916 0.742676
+27 24 23 1 0.879883 0.807129
+27 24 24 1 0.869141 0.866211
+27 24 25 1 0.859375 0.929199
+27 24 26 1 0.854492 0.990234
+27 24 27 1 0.837891 1
+27 24 28 1 0.812988 1
+27 24 29 0.998535 0.781738 1
+27 24 30 0.921387 0.746582 1
+27 24 31 0.839355 0.709961 1
+27 25 0 1 0.94043 0
+27 25 1 1 0.94043 0
+27 25 2 1 0.94043 0
+27 25 3 1 0.94043 0
+27 25 4 1 0.94043 0
+27 25 5 1 0.94043 0
+27 25 6 1 0.94043 0
+27 25 7 1 0.94043 0
+27 25 8 1 0.94043 0
+27 25 9 1 0.94043 0
+27 25 10 1 0.94043 0
+27 25 11 1 0.940918 0
+27 25 12 1 0.940918 0
+27 25 13 1 0.940918 0
+27 25 14 1 0.941406 0
+27 25 15 1 0.941895 0
+27 25 16 1 0.943848 0
+27 25 17 1 0.947266 0.238159
+27 25 18 1 0.951172 0.377197
+27 25 19 1 0.953613 0.484619
+27 25 20 1 0.95459 0.577148
+27 25 21 1 0.953125 0.661133
+27 25 22 1 0.948242 0.736328
+27 25 23 1 0.94043 0.80127
+27 25 24 1 0.929688 0.85791
+27 25 25 1 0.915039 0.914062
+27 25 26 1 0.904297 0.974609
+27 25 27 1 0.888184 1
+27 25 28 1 0.861816 1
+27 25 29 0.965332 0.828613 1
+27 25 30 0.890625 0.791992 1
+27 25 31 0.811035 0.753906 1
+27 26 0 1 0.992188 0
+27 26 1 1 0.992188 0
+27 26 2 1 0.992188 0
+27 26 3 1 0.992188 0
+27 26 4 1 0.992188 0
+27 26 5 1 0.992188 0
+27 26 6 1 0.992188 0
+27 26 7 1 0.992188 0
+27 26 8 1 0.992188 0
+27 26 9 1 0.992188 0
+27 26 10 1 0.992188 0
+27 26 11 1 0.992188 0
+27 26 12 1 0.992188 0
+27 26 13 1 0.992676 0
+27 26 14 1 0.992676 0
+27 26 15 1 0.993164 0
+27 26 16 1 0.994629 0
+27 26 17 1 0.998535 0.185425
+27 26 18 1 1 0.348145
+27 26 19 1 1 0.461426
+27 26 20 1 1 0.557129
+27 26 21 1 1 0.643066
+27 26 22 1 1 0.720215
+27 26 23 1 0.997559 0.787598
+27 26 24 1 0.988281 0.84668
+27 26 25 1 0.974609 0.902344
+27 26 26 1 0.956055 0.955566
+27 26 27 1 0.939453 1
+27 26 28 0.990234 0.911133 1
+27 26 29 0.924805 0.876953 1
+27 26 30 0.853516 0.839844 1
+27 26 31 0.776367 0.800781 1
+27 27 0 1 1 0
+27 27 1 1 1 0
+27 27 2 1 1 0
+27 27 3 1 1 0
+27 27 4 1 1 0
+27 27 5 1 1 0
+27 27 6 1 1 0
+27 27 7 1 1 0
+27 27 8 1 1 0
+27 27 9 1 1 0
+27 27 10 1 1 0
+27 27 11 1 1 0
+27 27 12 1 1 0
+27 27 13 1 1 0
+27 27 14 1 1 0
+27 27 15 1 1 0
+27 27 16 1 1 0
+27 27 17 1 1 0
+27 27 18 1 1 0.304443
+27 27 19 1 1 0.42749
+27 27 20 1 1 0.526855
+27 27 21 1 1 0.614746
+27 27 22 1 1 0.693848
+27 27 23 1 1 0.762695
+27 27 24 1 1 0.82373
+27 27 25 1 1 0.882324
+27 27 26 1 1 0.937988
+27 27 27 0.990234 0.990234 0.990234
+27 27 28 0.9375 0.961914 1
+27 27 29 0.876953 0.928711 1
+27 27 30 0.809082 0.891602 1
+27 27 31 0.733887 0.852051 1
+27 28 0 1 1 0
+27 28 1 1 1 0
+27 28 2 1 1 0
+27 28 3 1 1 0
+27 28 4 1 1 0
+27 28 5 1 1 0
+27 28 6 1 1 0
+27 28 7 1 1 0
+27 28 8 1 1 0
+27 28 9 1 1 0
+27 28 10 1 1 0
+27 28 11 1 1 0
+27 28 12 1 1 0
+27 28 13 1 1 0
+27 28 14 1 1 0
+27 28 15 1 1 0
+27 28 16 1 1 0
+27 28 17 1 1 0
+27 28 18 1 1 0.244263
+27 28 19 1 1 0.384766
+27 28 20 1 1 0.489014
+27 28 21 1 1 0.579102
+27 28 22 1 1 0.65918
+27 28 23 1 1 0.729492
+27 28 24 1 1 0.791016
+27 28 25 0.992676 1 0.851074
+27 28 26 0.960938 1 0.908691
+27 28 27 0.922363 1 0.964355
+27 28 28 0.876953 1 1
+27 28 29 0.820312 0.984863 1
+27 28 30 0.753906 0.946777 1
+27 28 31 0.679688 0.905762 1
+27 29 0 0.992676 1 0
+27 29 1 0.992676 1 0
+27 29 2 0.992676 1 0
+27 29 3 0.992676 1 0
+27 29 4 0.992676 1 0
+27 29 5 0.992676 1 0
+27 29 6 0.992676 1 0
+27 29 7 0.992676 1 0
+27 29 8 0.992676 1 0
+27 29 9 0.992676 1 0
+27 29 10 0.992676 1 0
+27 29 11 0.992676 1 0
+27 29 12 0.992676 1 0
+27 29 13 0.992676 1 0
+27 29 14 0.992188 1 0
+27 29 15 0.992188 1 0
+27 29 16 0.991699 1 0
+27 29 17 0.990723 1 0
+27 29 18 0.98877 1 0.147095
+27 29 19 0.984375 1 0.332275
+27 29 20 0.978516 1 0.444336
+27 29 21 0.969727 1 0.537109
+27 29 22 0.95752 1 0.618652
+27 29 23 0.942871 1 0.689941
+27 29 24 0.924805 1 0.752441
+27 29 25 0.902344 1 0.813965
+27 29 26 0.873535 1 0.874023
+27 29 27 0.838379 1 0.932617
+27 29 28 0.795898 1 0.987793
+27 29 29 0.744141 1 1
+27 29 30 0.681641 1 1
+27 29 31 0.606934 0.962402 1
+27 30 0 0.881836 1 0
+27 30 1 0.881836 1 0
+27 30 2 0.881836 1 0
+27 30 3 0.881836 1 0
+27 30 4 0.881836 1 0
+27 30 5 0.881836 1 0
+27 30 6 0.881836 1 0
+27 30 7 0.881836 1 0
+27 30 8 0.881836 1 0
+27 30 9 0.881836 1 0
+27 30 10 0.881836 1 0
+27 30 11 0.881836 1 0
+27 30 12 0.881836 1 0
+27 30 13 0.881836 1 0
+27 30 14 0.881348 1 0
+27 30 15 0.881348 1 0
+27 30 16 0.881348 1 0
+27 30 17 0.879883 1 0
+27 30 18 0.876953 1 0
+27 30 19 0.872559 1 0.265869
+27 30 20 0.866211 1 0.392578
+27 30 21 0.857422 1 0.48999
+27 30 22 0.845703 1 0.57373
+27 30 23 0.831543 1 0.645508
+27 30 24 0.814941 1 0.709473
+27 30 25 0.793945 1 0.772461
+27 30 26 0.76709 1 0.834473
+27 30 27 0.733887 1 0.895508
+27 30 28 0.692871 1 0.953613
+27 30 29 0.64209 1 1
+27 30 30 0.57959 1 1
+27 30 31 0.50293 1 1
+27 31 0 0.751953 1 0
+27 31 1 0.751953 1 0
+27 31 2 0.751953 1 0
+27 31 3 0.751953 1 0
+27 31 4 0.751953 1 0
+27 31 5 0.751953 1 0
+27 31 6 0.751953 1 0
+27 31 7 0.751953 1 0
+27 31 8 0.751953 1 0
+27 31 9 0.751953 1 0
+27 31 10 0.751953 1 0
+27 31 11 0.751953 1 0
+27 31 12 0.751953 1 0
+27 31 13 0.751953 1 0
+27 31 14 0.751953 1 0
+27 31 15 0.751953 1 0
+27 31 16 0.751465 1 0
+27 31 17 0.750977 1 0
+27 31 18 0.74707 1 0
+27 31 19 0.741211 1 0.166382
+27 31 20 0.733887 1 0.331543
+27 31 21 0.724121 1 0.437012
+27 31 22 0.711914 1 0.523438
+27 31 23 0.697266 1 0.597168
+27 31 24 0.680664 1 0.661621
+27 31 25 0.659668 1 0.726074
+27 31 26 0.632324 1 0.790039
+27 31 27 0.598145 1 0.852539
+27 31 28 0.554688 1 0.913086
+27 31 29 0.499023 1 0.970215
+27 31 30 0.427002 1 1
+27 31 31 0.326416 1 1
+28 0 0 1 0 0
+28 0 1 1 0 0
+28 0 2 1 0 0
+28 0 3 1 0 0
+28 0 4 1 0 0
+28 0 5 1 0 0
+28 0 6 1 0 0
+28 0 7 1 0 0
+28 0 8 1 0 0
+28 0 9 1 0 0
+28 0 10 1 0 0
+28 0 11 1 0 0
+28 0 12 1 0 0
+28 0 13 1 0 0
+28 0 14 1 0 0
+28 0 15 1 0 0
+28 0 16 1 0 0
+28 0 17 1 0 0
+28 0 18 1 0 0.321533
+28 0 19 1 0 0.455078
+28 0 20 1 0 0.561523
+28 0 21 1 0 0.661621
+28 0 22 1 0 0.751953
+28 0 23 1 0 0.829102
+28 0 24 1 0 0.893555
+28 0 25 1 0 0.95166
+28 0 26 1 0.169678 1
+28 0 27 1 0.21106 1
+28 0 28 1 0.229858 1
+28 0 29 1 0.245361 1
+28 0 30 1 0.257568 1
+28 0 31 1 0.267334 1
+28 1 0 1 0 0
+28 1 1 1 0 0
+28 1 2 1 0 0
+28 1 3 1 0 0
+28 1 4 1 0 0
+28 1 5 1 0 0
+28 1 6 1 0 0
+28 1 7 1 0 0
+28 1 8 1 0 0
+28 1 9 1 0 0
+28 1 10 1 0 0
+28 1 11 1 0 0
+28 1 12 1 0 0
+28 1 13 1 0 0
+28 1 14 1 0 0
+28 1 15 1 0 0
+28 1 16 1 0 0
+28 1 17 1 0 0
+28 1 18 1 0 0.321533
+28 1 19 1 0 0.455078
+28 1 20 1 0 0.561523
+28 1 21 1 0 0.661621
+28 1 22 1 0 0.751953
+28 1 23 1 0 0.829102
+28 1 24 1 0 0.893555
+28 1 25 1 0 0.95166
+28 1 26 1 0.169678 1
+28 1 27 1 0.21106 1
+28 1 28 1 0.229858 1
+28 1 29 1 0.245361 1
+28 1 30 1 0.257812 1
+28 1 31 1 0.267334 1
+28 2 0 1 0 0
+28 2 1 1 0 0
+28 2 2 1 0 0
+28 2 3 1 0 0
+28 2 4 1 0 0
+28 2 5 1 0 0
+28 2 6 1 0 0
+28 2 7 1 0 0
+28 2 8 1 0 0
+28 2 9 1 0 0
+28 2 10 1 0 0
+28 2 11 1 0 0
+28 2 12 1 0 0
+28 2 13 1 0 0
+28 2 14 1 0 0
+28 2 15 1 0 0
+28 2 16 1 0 0
+28 2 17 1 0 0
+28 2 18 1 0 0.321533
+28 2 19 1 0 0.455078
+28 2 20 1 0 0.561523
+28 2 21 1 0 0.661621
+28 2 22 1 0 0.751953
+28 2 23 1 0 0.829102
+28 2 24 1 0 0.893555
+28 2 25 1 0 0.95166
+28 2 26 1 0.169678 1
+28 2 27 1 0.21106 1
+28 2 28 1 0.22998 1
+28 2 29 1 0.245361 1
+28 2 30 1 0.257812 1
+28 2 31 1 0.267334 1
+28 3 0 1 0 0
+28 3 1 1 0 0
+28 3 2 1 0 0
+28 3 3 1 0 0
+28 3 4 1 0 0
+28 3 5 1 0 0
+28 3 6 1 0 0
+28 3 7 1 0 0
+28 3 8 1 0 0
+28 3 9 1 0 0
+28 3 10 1 0 0
+28 3 11 1 0 0
+28 3 12 1 0 0
+28 3 13 1 0 0
+28 3 14 1 0 0
+28 3 15 1 0 0
+28 3 16 1 0 0
+28 3 17 1 0 0
+28 3 18 1 0 0.321533
+28 3 19 1 0 0.455078
+28 3 20 1 0 0.561523
+28 3 21 1 0 0.661621
+28 3 22 1 0 0.751953
+28 3 23 1 0 0.829102
+28 3 24 1 0 0.893555
+28 3 25 1 0 0.95166
+28 3 26 1 0.1698 1
+28 3 27 1 0.21106 1
+28 3 28 1 0.22998 1
+28 3 29 1 0.245361 1
+28 3 30 1 0.257812 1
+28 3 31 1 0.267334 1
+28 4 0 1 0 0
+28 4 1 1 0 0
+28 4 2 1 0 0
+28 4 3 1 0 0
+28 4 4 1 0 0
+28 4 5 1 0 0
+28 4 6 1 0 0
+28 4 7 1 0 0
+28 4 8 1 0 0
+28 4 9 1 0 0
+28 4 10 1 0 0
+28 4 11 1 0 0
+28 4 12 1 0 0
+28 4 13 1 0 0
+28 4 14 1 0 0
+28 4 15 1 0 0
+28 4 16 1 0 0
+28 4 17 1 0 0
+28 4 18 1 0 0.321533
+28 4 19 1 0 0.455078
+28 4 20 1 0 0.561523
+28 4 21 1 0 0.661621
+28 4 22 1 0 0.751953
+28 4 23 1 0 0.829102
+28 4 24 1 0 0.893555
+28 4 25 1 0 0.95166
+28 4 26 1 0.169922 1
+28 4 27 1 0.211182 1
+28 4 28 1 0.230103 1
+28 4 29 1 0.245483 1
+28 4 30 1 0.257812 1
+28 4 31 1 0.267334 1
+28 5 0 1 0 0
+28 5 1 1 0 0
+28 5 2 1 0 0
+28 5 3 1 0 0
+28 5 4 1 0 0
+28 5 5 1 0 0
+28 5 6 1 0 0
+28 5 7 1 0 0
+28 5 8 1 0 0
+28 5 9 1 0 0
+28 5 10 1 0 0
+28 5 11 1 0 0
+28 5 12 1 0 0
+28 5 13 1 0 0
+28 5 14 1 0 0
+28 5 15 1 0 0
+28 5 16 1 0 0
+28 5 17 1 0 0
+28 5 18 1 0 0.321533
+28 5 19 1 0 0.455078
+28 5 20 1 0 0.561523
+28 5 21 1 0 0.661621
+28 5 22 1 0 0.751953
+28 5 23 1 0 0.829102
+28 5 24 1 0 0.893555
+28 5 25 1 0 0.95166
+28 5 26 1 0.170288 1
+28 5 27 1 0.211426 1
+28 5 28 1 0.230225 1
+28 5 29 1 0.245605 1
+28 5 30 1 0.257812 1
+28 5 31 1 0.267334 1
+28 6 0 1 0 0
+28 6 1 1 0 0
+28 6 2 1 0 0
+28 6 3 1 0 0
+28 6 4 1 0 0
+28 6 5 1 0 0
+28 6 6 1 0 0
+28 6 7 1 0 0
+28 6 8 1 0 0
+28 6 9 1 0 0
+28 6 10 1 0 0
+28 6 11 1 0 0
+28 6 12 1 0 0
+28 6 13 1 0 0
+28 6 14 1 0 0
+28 6 15 1 0 0
+28 6 16 1 0 0
+28 6 17 1 0 0
+28 6 18 1 0 0.321289
+28 6 19 1 0 0.455078
+28 6 20 1 0 0.561523
+28 6 21 1 0 0.661621
+28 6 22 1 0 0.751953
+28 6 23 1 0 0.829102
+28 6 24 1 0 0.893555
+28 6 25 1 0 0.95166
+28 6 26 1 0.170776 1
+28 6 27 1 0.211792 1
+28 6 28 1 0.230591 1
+28 6 29 1 0.24585 1
+28 6 30 1 0.258057 1
+28 6 31 1 0.267578 1
+28 7 0 1 0 0
+28 7 1 1 0 0
+28 7 2 1 0 0
+28 7 3 1 0 0
+28 7 4 1 0 0
+28 7 5 1 0 0
+28 7 6 1 0 0
+28 7 7 1 0 0
+28 7 8 1 0 0
+28 7 9 1 0 0
+28 7 10 1 0 0
+28 7 11 1 0 0
+28 7 12 1 0 0
+28 7 13 1 0 0
+28 7 14 1 0 0
+28 7 15 1 0 0
+28 7 16 1 0 0
+28 7 17 1 0 0
+28 7 18 1 0 0.321289
+28 7 19 1 0 0.455078
+28 7 20 1 0 0.561523
+28 7 21 1 0 0.661133
+28 7 22 1 0 0.751953
+28 7 23 1 0 0.829102
+28 7 24 1 0 0.893555
+28 7 25 1 0 0.95166
+28 7 26 1 0.171875 1
+28 7 27 1 0.212524 1
+28 7 28 1 0.231201 1
+28 7 29 1 0.246338 1
+28 7 30 1 0.258545 1
+28 7 31 1 0.268066 1
+28 8 0 1 0 0
+28 8 1 1 0 0
+28 8 2 1 0 0
+28 8 3 1 0 0
+28 8 4 1 0 0
+28 8 5 1 0 0
+28 8 6 1 0 0
+28 8 7 1 0 0
+28 8 8 1 0 0
+28 8 9 1 0 0
+28 8 10 1 0 0
+28 8 11 1 0 0
+28 8 12 1 0 0
+28 8 13 1 0 0
+28 8 14 1 0 0
+28 8 15 1 0 0
+28 8 16 1 0 0
+28 8 17 1 0 0
+28 8 18 1 0 0.321289
+28 8 19 1 0 0.455078
+28 8 20 1 0 0.561523
+28 8 21 1 0 0.661133
+28 8 22 1 0 0.751953
+28 8 23 1 0 0.829102
+28 8 24 1 0 0.893555
+28 8 25 1 0 0.95166
+28 8 26 1 0.17395 1
+28 8 27 1 0.213989 1
+28 8 28 1 0.232422 1
+28 8 29 1 0.247437 1
+28 8 30 1 0.259521 1
+28 8 31 1 0.268555 1
+28 9 0 1 0 0
+28 9 1 1 0 0
+28 9 2 1 0 0
+28 9 3 1 0 0
+28 9 4 1 0 0
+28 9 5 1 0 0
+28 9 6 1 0 0
+28 9 7 1 0 0
+28 9 8 1 0 0
+28 9 9 1 0 0
+28 9 10 1 0 0
+28 9 11 1 0 0
+28 9 12 1 0 0
+28 9 13 1 0 0
+28 9 14 1 0 0
+28 9 15 1 0 0
+28 9 16 1 0 0
+28 9 17 1 0 0
+28 9 18 1 0 0.321045
+28 9 19 1 0 0.455078
+28 9 20 1 0 0.561523
+28 9 21 1 0 0.661133
+28 9 22 1 0 0.751953
+28 9 23 1 0 0.829102
+28 9 24 1 0 0.893555
+28 9 25 1 0 0.95166
+28 9 26 1 0.177856 1
+28 9 27 1 0.216797 1
+28 9 28 1 0.234619 1
+28 9 29 1 0.249268 1
+28 9 30 1 0.260986 1
+28 9 31 1 0.27002 1
+28 10 0 1 0 0
+28 10 1 1 0 0
+28 10 2 1 0 0
+28 10 3 1 0 0
+28 10 4 1 0 0
+28 10 5 1 0 0
+28 10 6 1 0 0
+28 10 7 1 0 0
+28 10 8 1 0 0
+28 10 9 1 0 0
+28 10 10 1 0 0
+28 10 11 1 0 0
+28 10 12 1 0 0
+28 10 13 1 0 0
+28 10 14 1 0 0
+28 10 15 1 0 0
+28 10 16 1 0 0
+28 10 17 1 0 0
+28 10 18 1 0 0.320557
+28 10 19 1 0 0.454834
+28 10 20 1 0 0.561523
+28 10 21 1 0 0.661133
+28 10 22 1 0 0.751465
+28 10 23 1 0 0.828613
+28 10 24 1 0 0.893066
+28 10 25 1 0 0.95166
+28 10 26 1 0.18457 1
+28 10 27 1 0.22168 1
+28 10 28 1 0.23877 1
+28 10 29 1 0.252686 1
+28 10 30 1 0.263916 1
+28 10 31 1 0.272461 1
+28 11 0 1 0 0
+28 11 1 1 0 0
+28 11 2 1 0 0
+28 11 3 1 0 0
+28 11 4 1 0 0
+28 11 5 1 0 0
+28 11 6 1 0 0
+28 11 7 1 0 0
+28 11 8 1 0 0
+28 11 9 1 0 0
+28 11 10 1 0 0
+28 11 11 1 0 0
+28 11 12 1 0 0
+28 11 13 1 0 0
+28 11 14 1 0 0
+28 11 15 1 0 0
+28 11 16 1 0 0
+28 11 17 1 0 0
+28 11 18 1 0 0.319824
+28 11 19 1 0 0.45459
+28 11 20 1 0 0.561035
+28 11 21 1 0 0.660645
+28 11 22 1 0 0.751465
+28 11 23 1 0 0.828613
+28 11 24 1 0 0.893066
+28 11 25 1 0.0501709 0.95166
+28 11 26 1 0.195679 1
+28 11 27 1 0.22998 1
+28 11 28 1 0.245728 1
+28 11 29 1 0.258545 1
+28 11 30 1 0.268799 1
+28 11 31 1 0.276611 1
+28 12 0 1 0 0
+28 12 1 1 0 0
+28 12 2 1 0 0
+28 12 3 1 0 0
+28 12 4 1 0 0
+28 12 5 1 0 0
+28 12 6 1 0 0
+28 12 7 1 0 0
+28 12 8 1 0 0
+28 12 9 1 0 0
+28 12 10 1 0 0
+28 12 11 1 0 0
+28 12 12 1 0 0
+28 12 13 1 0 0
+28 12 14 1 0 0
+28 12 15 1 0 0
+28 12 16 1 0 0
+28 12 17 1 0 0
+28 12 18 1 0 0.318604
+28 12 19 1 0 0.454102
+28 12 20 1 0 0.560547
+28 12 21 1 0 0.660156
+28 12 22 1 0 0.750977
+28 12 23 1 0 0.828125
+28 12 24 1 0 0.893066
+28 12 25 1 0.112732 0.95166
+28 12 26 1 0.212769 1
+28 12 27 1 0.243286 1
+28 12 28 1 0.256836 1
+28 12 29 1 0.268066 1
+28 12 30 1 0.276855 1
+28 12 31 1 0.283447 1
+28 13 0 1 0 0
+28 13 1 1 0 0
+28 13 2 1 0 0
+28 13 3 1 0 0
+28 13 4 1 0 0
+28 13 5 1 0 0
+28 13 6 1 0 0
+28 13 7 1 0 0
+28 13 8 1 0 0
+28 13 9 1 0 0
+28 13 10 1 0 0
+28 13 11 1 0 0
+28 13 12 1 0 0
+28 13 13 1 0 0
+28 13 14 1 0 0
+28 13 15 1 0 0
+28 13 16 1 0 0
+28 13 17 1 0 0
+28 13 18 1 0 0.316895
+28 13 19 1 0 0.452881
+28 13 20 1 0 0.55957
+28 13 21 1 0 0.65918
+28 13 22 1 0 0.75
+28 13 23 1 0 0.827637
+28 13 24 1 0 0.892578
+28 13 25 1 0.162476 0.951172
+28 13 26 1 0.237305 1
+28 13 27 1 0.262939 1
+28 13 28 1 0.273926 1
+28 13 29 1 0.282715 1
+28 13 30 1 0.289551 1
+28 13 31 1 0.294189 1
+28 14 0 1 0 0
+28 14 1 1 0 0
+28 14 2 1 0 0
+28 14 3 1 0 0
+28 14 4 1 0 0
+28 14 5 1 0 0
+28 14 6 1 0 0
+28 14 7 1 0 0
+28 14 8 1 0 0
+28 14 9 1 0 0
+28 14 10 1 0 0
+28 14 11 1 0 0
+28 14 12 1 0 0
+28 14 13 1 0 0
+28 14 14 1 0 0
+28 14 15 1 0 0
+28 14 16 1 0 0
+28 14 17 1 0 0
+28 14 18 1 0 0.313965
+28 14 19 1 0 0.450439
+28 14 20 1 0 0.558594
+28 14 21 1 0 0.658203
+28 14 22 1 0 0.749023
+28 14 23 1 0 0.82666
+28 14 24 1 0 0.89209
+28 14 25 1 0.213623 0.950684
+28 14 26 1 0.270264 1
+28 14 27 1 0.290771 1
+28 14 28 1 0.298584 1
+28 14 29 1 0.304199 1
+28 14 30 1 0.308105 1
+28 14 31 1 0.310059 1
+28 15 0 1 0 0
+28 15 1 1 0 0
+28 15 2 1 0 0
+28 15 3 1 0 0
+28 15 4 1 0 0
+28 15 5 1 0 0
+28 15 6 1 0 0
+28 15 7 1 0 0
+28 15 8 1 0 0
+28 15 9 1 0 0
+28 15 10 1 0 0
+28 15 11 1 0 0
+28 15 12 1 0 0
+28 15 13 1 0 0
+28 15 14 1 0 0
+28 15 15 1 0 0
+28 15 16 1 0 0
+28 15 17 1 0 0
+28 15 18 1 0 0.310059
+28 15 19 1 0 0.447021
+28 15 20 1 0 0.556641
+28 15 21 1 0 0.655762
+28 15 22 1 0 0.74707
+28 15 23 1 0 0.825195
+28 15 24 1 0.180786 0.890625
+28 15 25 1 0.268799 0.950195
+28 15 26 1 0.311768 1
+28 15 27 1 0.327148 1
+28 15 28 1 0.331299 1
+28 15 29 1 0.333496 1
+28 15 30 1 0.333984 1
+28 15 31 1 0.332764 1
+28 16 0 1 0 0
+28 16 1 1 0 0
+28 16 2 1 0 0
+28 16 3 1 0 0
+28 16 4 1 0 0
+28 16 5 1 0 0
+28 16 6 1 0 0
+28 16 7 1 0 0
+28 16 8 1 0 0
+28 16 9 1 0 0
+28 16 10 1 0 0
+28 16 11 1 0 0
+28 16 12 1 0 0
+28 16 13 1 0 0
+28 16 14 1 0 0
+28 16 15 1 0 0
+28 16 16 1 0 0
+28 16 17 1 0 0
+28 16 18 1 0 0.305176
+28 16 19 1 0 0.442383
+28 16 20 1 0 0.554199
+28 16 21 1 0 0.652832
+28 16 22 1 0 0.744141
+28 16 23 1 0.185303 0.822754
+28 16 24 1 0.27124 0.88916
+28 16 25 1 0.329346 0.94873
+28 16 26 1 0.361816 1
+28 16 27 1 0.372314 1
+28 16 28 1 0.372803 1
+28 16 29 1 0.371094 1
+28 16 30 1 0.367676 1
+28 16 31 1 0.362549 1
+28 17 0 1 0.221436 0
+28 17 1 1 0.221436 0
+28 17 2 1 0.221436 0
+28 17 3 1 0.221436 0
+28 17 4 1 0.221558 0
+28 17 5 1 0.221558 0
+28 17 6 1 0.221558 0
+28 17 7 1 0.22168 0
+28 17 8 1 0.221802 0
+28 17 9 1 0.222046 0
+28 17 10 1 0.222534 0
+28 17 11 1 0.223511 0
+28 17 12 1 0.224976 0
+28 17 13 1 0.227417 0
+28 17 14 1 0.231201 0
+28 17 15 1 0.236084 0
+28 17 16 1 0.236938 0
+28 17 17 1 0.229126 0
+28 17 18 1 0.219604 0.300293
+28 17 19 1 0.212646 0.437256
+28 17 20 1 0.217529 0.550293
+28 17 21 1 0.22229 0.648926
+28 17 22 1 0.25293 0.739746
+28 17 23 1 0.30249 0.819336
+28 17 24 1 0.351807 0.88623
+28 17 25 1 0.393311 0.946777
+28 17 26 1 0.418213 1
+28 17 27 1 0.424561 1
+28 17 28 1 0.421143 1
+28 17 29 1 0.415771 1
+28 17 30 1 0.408203 1
+28 17 31 1 0.398926 1
+28 18 0 1 0.362305 0
+28 18 1 1 0.362305 0
+28 18 2 1 0.362305 0
+28 18 3 1 0.362305 0
+28 18 4 1 0.362305 0
+28 18 5 1 0.362305 0
+28 18 6 1 0.362305 0
+28 18 7 1 0.362305 0
+28 18 8 1 0.362305 0
+28 18 9 1 0.362549 0
+28 18 10 1 0.362793 0
+28 18 11 1 0.363281 0
+28 18 12 1 0.364014 0
+28 18 13 1 0.365234 0
+28 18 14 1 0.367188 0
+28 18 15 1 0.370117 0
+28 18 16 1 0.369629 0
+28 18 17 1 0.366699 0
+28 18 18 1 0.362549 0.297119
+28 18 19 1 0.358398 0.432373
+28 18 20 1 0.357422 0.543945
+28 18 21 1 0.361816 0.644043
+28 18 22 1 0.37085 0.733887
+28 18 23 1 0.39624 0.813965
+28 18 24 1 0.428467 0.882324
+28 18 25 1 0.459473 0.944336
+28 18 26 1 0.47876 0.998535
+28 18 27 1 0.481201 1
+28 18 28 1 0.474609 1
+28 18 29 1 0.465576 1
+28 18 30 1 0.453857 1
+28 18 31 1 0.44043 1
+28 19 0 1 0.468018 0
+28 19 1 1 0.468018 0
+28 19 2 1 0.468018 0
+28 19 3 1 0.468018 0
+28 19 4 1 0.468018 0
+28 19 5 1 0.468018 0
+28 19 6 1 0.468018 0
+28 19 7 1 0.468018 0
+28 19 8 1 0.468262 0
+28 19 9 1 0.468262 0
+28 19 10 1 0.468506 0
+28 19 11 1 0.46875 0
+28 19 12 1 0.469238 0
+28 19 13 1 0.470215 0
+28 19 14 1 0.471436 0
+28 19 15 1 0.473389 0
+28 19 16 1 0.473389 0
+28 19 17 1 0.472656 0
+28 19 18 1 0.470703 0.298584
+28 19 19 1 0.467773 0.429688
+28 19 20 1 0.465332 0.538086
+28 19 21 1 0.466797 0.638184
+28 19 22 1 0.469238 0.727539
+28 19 23 1 0.481201 0.807129
+28 19 24 1 0.502441 0.876465
+28 19 25 1 0.525391 0.939941
+28 19 26 1 0.540527 0.995117
+28 19 27 1 0.540039 1
+28 19 28 1 0.530762 1
+28 19 29 1 0.518066 1
+28 19 30 1 0.502441 1
+28 19 31 1 0.485107 1
+28 20 0 1 0.558594 0
+28 20 1 1 0.558594 0
+28 20 2 1 0.558594 0
+28 20 3 1 0.558594 0
+28 20 4 1 0.558594 0
+28 20 5 1 0.558594 0
+28 20 6 1 0.558594 0
+28 20 7 1 0.558594 0
+28 20 8 1 0.558594 0
+28 20 9 1 0.558594 0
+28 20 10 1 0.558594 0
+28 20 11 1 0.559082 0
+28 20 12 1 0.559082 0
+28 20 13 1 0.560059 0
+28 20 14 1 0.561035 0
+28 20 15 1 0.5625 0
+28 20 16 1 0.563477 0
+28 20 17 1 0.563965 0
+28 20 18 1 0.563477 0.305176
+28 20 19 1 0.562012 0.43042
+28 20 20 1 0.55957 0.53418
+28 20 21 1 0.557129 0.630371
+28 20 22 1 0.558594 0.720703
+28 20 23 1 0.561035 0.798828
+28 20 24 1 0.572754 0.869141
+28 20 25 1 0.589355 0.934082
+28 20 26 1 0.601074 0.990723
+28 20 27 1 0.598633 1
+28 20 28 1 0.586426 1
+28 20 29 1 0.570801 1
+28 20 30 1 0.551758 1
+28 20 31 1 0.530762 1
+28 21 0 1 0.640137 0
+28 21 1 1 0.640137 0
+28 21 2 1 0.640137 0
+28 21 3 1 0.640137 0
+28 21 4 1 0.640137 0
+28 21 5 1 0.640137 0
+28 21 6 1 0.640625 0
+28 21 7 1 0.640625 0
+28 21 8 1 0.640625 0
+28 21 9 1 0.640625 0
+28 21 10 1 0.640625 0
+28 21 11 1 0.640625 0
+28 21 12 1 0.641113 0
+28 21 13 1 0.641602 0
+28 21 14 1 0.642578 0
+28 21 15 1 0.643555 0
+28 21 16 1 0.64502 0
+28 21 17 1 0.646973 0.11084
+28 21 18 1 0.647461 0.316406
+28 21 19 1 0.647461 0.434814
+28 21 20 1 0.645508 0.53418
+28 21 21 1 0.64209 0.625488
+28 21 22 1 0.63916 0.711426
+28 21 23 1 0.638672 0.789551
+28 21 24 1 0.641602 0.859375
+28 21 25 1 0.651855 0.92627
+28 21 26 1 0.660156 0.984863
+28 21 27 1 0.65625 1
+28 21 28 1 0.64209 1
+28 21 29 1 0.623535 1
+28 21 30 1 0.601562 1
+28 21 31 1 0.577148 1
+28 22 0 1 0.714355 0
+28 22 1 1 0.714355 0
+28 22 2 1 0.714355 0
+28 22 3 1 0.714355 0
+28 22 4 1 0.714355 0
+28 22 5 1 0.714355 0
+28 22 6 1 0.714355 0
+28 22 7 1 0.714355 0
+28 22 8 1 0.714355 0
+28 22 9 1 0.714844 0
+28 22 10 1 0.714844 0
+28 22 11 1 0.714844 0
+28 22 12 1 0.715332 0
+28 22 13 1 0.715332 0
+28 22 14 1 0.716309 0
+28 22 15 1 0.717285 0
+28 22 16 1 0.71875 0
+28 22 17 1 0.721191 0.15686
+28 22 18 1 0.723145 0.329102
+28 22 19 1 0.724121 0.44165
+28 22 20 1 0.723633 0.536621
+28 22 21 1 0.720703 0.623535
+28 22 22 1 0.71582 0.70459
+28 22 23 1 0.711914 0.779785
+28 22 24 1 0.708984 0.848145
+28 22 25 1 0.712402 0.916016
+28 22 26 1 0.717773 0.977051
+28 22 27 1 0.712402 1
+28 22 28 1 0.696289 1
+28 22 29 1 0.675781 1
+28 22 30 1 0.650879 1
+28 22 31 0.990234 0.623047 1
+28 23 0 1 0.779297 0
+28 23 1 1 0.779297 0
+28 23 2 1 0.779297 0
+28 23 3 1 0.779297 0
+28 23 4 1 0.779297 0
+28 23 5 1 0.779297 0
+28 23 6 1 0.779297 0
+28 23 7 1 0.779297 0
+28 23 8 1 0.779785 0
+28 23 9 1 0.779785 0
+28 23 10 1 0.779785 0
+28 23 11 1 0.779785 0
+28 23 12 1 0.779785 0
+28 23 13 1 0.780273 0
+28 23 14 1 0.780762 0
+28 23 15 1 0.781738 0
+28 23 16 1 0.783691 0
+28 23 17 1 0.786621 0.182495
+28 23 18 1 0.789062 0.338623
+28 23 19 1 0.791016 0.447754
+28 23 20 1 0.791504 0.540039
+28 23 21 1 0.789551 0.623535
+28 23 22 1 0.785156 0.700684
+28 23 23 1 0.778809 0.770996
+28 23 24 1 0.772949 0.837402
+28 23 25 1 0.769043 0.904297
+28 23 26 1 0.770508 0.967285
+28 23 27 1 0.764648 1
+28 23 28 1 0.74707 1
+28 23 29 1 0.724609 1
+28 23 30 1 0.697266 1
+28 23 31 0.972168 0.666504 1
+28 24 0 1 0.836914 0
+28 24 1 1 0.836914 0
+28 24 2 1 0.836914 0
+28 24 3 1 0.836914 0
+28 24 4 1 0.836914 0
+28 24 5 1 0.836914 0
+28 24 6 1 0.836914 0
+28 24 7 1 0.836914 0
+28 24 8 1 0.836914 0
+28 24 9 1 0.836914 0
+28 24 10 1 0.836914 0
+28 24 11 1 0.836914 0
+28 24 12 1 0.836914 0
+28 24 13 1 0.837402 0
+28 24 14 1 0.837891 0
+28 24 15 1 0.838379 0
+28 24 16 1 0.839844 0
+28 24 17 1 0.84375 0.192017
+28 24 18 1 0.847168 0.342285
+28 24 19 1 0.849609 0.450195
+28 24 20 1 0.851074 0.541016
+28 24 21 1 0.850098 0.623535
+28 24 22 1 0.846191 0.69873
+28 24 23 1 0.840332 0.765625
+28 24 24 1 0.832031 0.827148
+28 24 25 1 0.824219 0.891602
+28 24 26 1 0.819336 0.956055
+28 24 27 1 0.812988 1
+28 24 28 1 0.794922 1
+28 24 29 1 0.770508 1
+28 24 30 1 0.741211 1
+28 24 31 0.952148 0.708008 1
+28 25 0 1 0.89209 0
+28 25 1 1 0.89209 0
+28 25 2 1 0.89209 0
+28 25 3 1 0.89209 0
+28 25 4 1 0.89209 0
+28 25 5 1 0.89209 0
+28 25 6 1 0.89209 0
+28 25 7 1 0.89209 0
+28 25 8 1 0.89209 0
+28 25 9 1 0.89209 0
+28 25 10 1 0.89209 0
+28 25 11 1 0.89209 0
+28 25 12 1 0.89209 0
+28 25 13 1 0.892578 0
+28 25 14 1 0.892578 0
+28 25 15 1 0.893066 0
+28 25 16 1 0.894531 0
+28 25 17 1 0.898438 0.182861
+28 25 18 1 0.902344 0.336914
+28 25 19 1 0.905762 0.445557
+28 25 20 1 0.907715 0.537598
+28 25 21 1 0.907715 0.620117
+28 25 22 1 0.905273 0.694824
+28 25 23 1 0.900391 0.760742
+28 25 24 1 0.89209 0.819336
+28 25 25 1 0.881348 0.878418
+28 25 26 1 0.870605 0.940918
+28 25 27 1 0.862305 0.999512
+28 25 28 1 0.84375 1
+28 25 29 1 0.818359 1
+28 25 30 1 0.786621 1
+28 25 31 0.927246 0.751465 1
+28 26 0 1 0.945801 0
+28 26 1 1 0.945801 0
+28 26 2 1 0.945801 0
+28 26 3 1 0.945801 0
+28 26 4 1 0.945801 0
+28 26 5 1 0.945801 0
+28 26 6 1 0.945801 0
+28 26 7 1 0.945801 0
+28 26 8 1 0.945801 0
+28 26 9 1 0.945801 0
+28 26 10 1 0.945801 0
+28 26 11 1 0.945801 0
+28 26 12 1 0.945801 0
+28 26 13 1 0.945801 0
+28 26 14 1 0.946289 0
+28 26 15 1 0.946777 0
+28 26 16 1 0.947266 0
+28 26 17 1 0.951172 0.141724
+28 26 18 1 0.955078 0.318604
+28 26 19 1 0.958984 0.431152
+28 26 20 1 0.961426 0.524902
+28 26 21 1 0.962402 0.608887
+28 26 22 1 0.960938 0.68457
+28 26 23 1 0.957031 0.751465
+28 26 24 1 0.950195 0.810059
+28 26 25 1 0.939941 0.867676
+28 26 26 1 0.925781 0.924805
+28 26 27 1 0.912598 0.983887
+28 26 28 1 0.894531 1
+28 26 29 1 0.867676 1
+28 26 30 0.97168 0.833984 1
+28 26 31 0.896973 0.797363 1
+28 27 0 1 0.996582 0
+28 27 1 1 0.996582 0
+28 27 2 1 0.996582 0
+28 27 3 1 0.996582 0
+28 27 4 1 0.996582 0
+28 27 5 1 0.996582 0
+28 27 6 1 0.996582 0
+28 27 7 1 0.996582 0
+28 27 8 1 0.996582 0
+28 27 9 1 0.99707 0
+28 27 10 1 0.99707 0
+28 27 11 1 0.99707 0
+28 27 12 1 0.99707 0
+28 27 13 1 0.99707 0
+28 27 14 1 0.99707 0
+28 27 15 1 0.997559 0
+28 27 16 1 0.998047 0
+28 27 17 1 1 0
+28 27 18 1 1 0.283447
+28 27 19 1 1 0.404785
+28 27 20 1 1 0.501953
+28 27 21 1 1 0.587891
+28 27 22 1 1 0.665039
+28 27 23 1 1 0.73291
+28 27 24 1 1 0.793457
+28 27 25 1 0.995117 0.852539
+28 27 26 1 0.981934 0.90918
+28 27 27 1 0.964355 0.963867
+28 27 28 1 0.945312 1
+28 27 29 0.996094 0.916992 1
+28 27 30 0.931152 0.882812 1
+28 27 31 0.859375 0.845703 1
+28 28 0 1 1 0
+28 28 1 1 1 0
+28 28 2 1 1 0
+28 28 3 1 1 0
+28 28 4 1 1 0
+28 28 5 1 1 0
+28 28 6 1 1 0
+28 28 7 1 1 0
+28 28 8 1 1 0
+28 28 9 1 1 0
+28 28 10 1 1 0
+28 28 11 1 1 0
+28 28 12 1 1 0
+28 28 13 1 1 0
+28 28 14 1 1 0
+28 28 15 1 1 0
+28 28 16 1 1 0
+28 28 17 1 1 0
+28 28 18 1 1 0.22644
+28 28 19 1 1 0.366699
+28 28 20 1 1 0.468994
+28 28 21 1 1 0.557617
+28 28 22 1 1 0.63623
+28 28 23 1 1 0.705566
+28 28 24 1 1 0.76709
+28 28 25 1 1 0.828125
+28 28 26 1 1 0.887207
+28 28 27 1 1 0.943848
+28 28 28 0.996094 0.996094 0.996094
+28 28 29 0.943359 0.967773 1
+28 28 30 0.882324 0.93457 1
+28 28 31 0.813965 0.897461 1
+28 29 0 1 1 0
+28 29 1 1 1 0
+28 29 2 1 1 0
+28 29 3 1 1 0
+28 29 4 1 1 0
+28 29 5 1 1 0
+28 29 6 1 1 0
+28 29 7 1 1 0
+28 29 8 1 1 0
+28 29 9 1 1 0
+28 29 10 1 1 0
+28 29 11 1 1 0
+28 29 12 1 1 0
+28 29 13 1 1 0
+28 29 14 1 1 0
+28 29 15 1 1 0
+28 29 16 1 1 0
+28 29 17 1 1 0
+28 29 18 1 1 0.123779
+28 29 19 1 1 0.317383
+28 29 20 1 1 0.428467
+28 29 21 1 1 0.52002
+28 29 22 1 1 0.600586
+28 29 23 1 1 0.670898
+28 29 24 1 1 0.733398
+28 29 25 1 1 0.794922
+28 29 26 0.998047 1 0.855469
+28 29 27 0.96582 1 0.914062
+28 29 28 0.927246 1 0.969727
+28 29 29 0.881348 1 1
+28 29 30 0.824219 0.990234 1
+28 29 31 0.757812 0.952148 1
+28 30 0 0.996582 1 0
+28 30 1 0.996582 1 0
+28 30 2 0.996582 1 0
+28 30 3 0.996582 1 0
+28 30 4 0.996582 1 0
+28 30 5 0.996582 1 0
+28 30 6 0.996582 1 0
+28 30 7 0.996582 1 0
+28 30 8 0.996582 1 0
+28 30 9 0.996582 1 0
+28 30 10 0.996582 1 0
+28 30 11 0.996582 1 0
+28 30 12 0.996094 1 0
+28 30 13 0.996094 1 0
+28 30 14 0.996094 1 0
+28 30 15 0.996094 1 0
+28 30 16 0.995605 1 0
+28 30 17 0.995117 1 0
+28 30 18 0.993652 1 0
+28 30 19 0.990723 1 0.25293
+28 30 20 0.986816 1 0.379883
+28 30 21 0.980469 1 0.476562
+28 30 22 0.97168 1 0.559082
+28 30 23 0.960449 1 0.630371
+28 30 24 0.947266 1 0.693848
+28 30 25 0.929688 1 0.756348
+28 30 26 0.906738 1 0.818359
+28 30 27 0.87793 1 0.878906
+28 30 28 0.842773 1 0.9375
+28 30 29 0.799805 1 0.992676
+28 30 30 0.747559 1 1
+28 30 31 0.684082 1 1
+28 31 0 0.884766 1 0
+28 31 1 0.884766 1 0
+28 31 2 0.884766 1 0
+28 31 3 0.884766 1 0
+28 31 4 0.884766 1 0
+28 31 5 0.884766 1 0
+28 31 6 0.884766 1 0
+28 31 7 0.884766 1 0
+28 31 8 0.884766 1 0
+28 31 9 0.884766 1 0
+28 31 10 0.884766 1 0
+28 31 11 0.884766 1 0
+28 31 12 0.884766 1 0
+28 31 13 0.884766 1 0
+28 31 14 0.884277 1 0
+28 31 15 0.884277 1 0
+28 31 16 0.884277 1 0
+28 31 17 0.883789 1 0
+28 31 18 0.881836 1 0
+28 31 19 0.878418 1 0.150879
+28 31 20 0.873535 1 0.321289
+28 31 21 0.867188 1 0.42627
+28 31 22 0.858398 1 0.512207
+28 31 23 0.847656 1 0.584961
+28 31 24 0.834961 1 0.649414
+28 31 25 0.818359 1 0.712891
+28 31 26 0.797363 1 0.776367
+28 31 27 0.770508 1 0.838867
+28 31 28 0.737305 1 0.899902
+28 31 29 0.695312 1 0.958008
+28 31 30 0.644043 1 1
+28 31 31 0.581543 1 1
+29 0 0 1 0 0
+29 0 1 1 0 0
+29 0 2 1 0 0
+29 0 3 1 0 0
+29 0 4 1 0 0
+29 0 5 1 0 0
+29 0 6 1 0 0
+29 0 7 1 0 0
+29 0 8 1 0 0
+29 0 9 1 0 0
+29 0 10 1 0 0
+29 0 11 1 0 0
+29 0 12 1 0 0
+29 0 13 1 0 0
+29 0 14 1 0 0
+29 0 15 1 0 0
+29 0 16 1 0 0
+29 0 17 1 0 0
+29 0 18 1 0 0.238892
+29 0 19 1 0 0.393311
+29 0 20 1 0 0.505859
+29 0 21 1 0 0.60498
+29 0 22 1 0 0.695312
+29 0 23 1 0 0.774414
+29 0 24 1 0 0.842285
+29 0 25 1 0 0.905273
+29 0 26 1 0 0.961914
+29 0 27 1 0.169312 1
+29 0 28 1 0.21228 1
+29 0 29 1 0.231201 1
+29 0 30 1 0.246582 1
+29 0 31 1 0.259033 1
+29 1 0 1 0 0
+29 1 1 1 0 0
+29 1 2 1 0 0
+29 1 3 1 0 0
+29 1 4 1 0 0
+29 1 5 1 0 0
+29 1 6 1 0 0
+29 1 7 1 0 0
+29 1 8 1 0 0
+29 1 9 1 0 0
+29 1 10 1 0 0
+29 1 11 1 0 0
+29 1 12 1 0 0
+29 1 13 1 0 0
+29 1 14 1 0 0
+29 1 15 1 0 0
+29 1 16 1 0 0
+29 1 17 1 0 0
+29 1 18 1 0 0.238892
+29 1 19 1 0 0.393311
+29 1 20 1 0 0.505859
+29 1 21 1 0 0.60498
+29 1 22 1 0 0.695312
+29 1 23 1 0 0.774414
+29 1 24 1 0 0.842285
+29 1 25 1 0 0.905273
+29 1 26 1 0 0.961914
+29 1 27 1 0.169312 1
+29 1 28 1 0.21228 1
+29 1 29 1 0.231201 1
+29 1 30 1 0.246582 1
+29 1 31 1 0.259033 1
+29 2 0 1 0 0
+29 2 1 1 0 0
+29 2 2 1 0 0
+29 2 3 1 0 0
+29 2 4 1 0 0
+29 2 5 1 0 0
+29 2 6 1 0 0
+29 2 7 1 0 0
+29 2 8 1 0 0
+29 2 9 1 0 0
+29 2 10 1 0 0
+29 2 11 1 0 0
+29 2 12 1 0 0
+29 2 13 1 0 0
+29 2 14 1 0 0
+29 2 15 1 0 0
+29 2 16 1 0 0
+29 2 17 1 0 0
+29 2 18 1 0 0.238892
+29 2 19 1 0 0.393311
+29 2 20 1 0 0.505859
+29 2 21 1 0 0.60498
+29 2 22 1 0 0.695312
+29 2 23 1 0 0.774414
+29 2 24 1 0 0.842285
+29 2 25 1 0 0.905273
+29 2 26 1 0 0.961914
+29 2 27 1 0.169312 1
+29 2 28 1 0.212402 1
+29 2 29 1 0.231201 1
+29 2 30 1 0.246582 1
+29 2 31 1 0.259033 1
+29 3 0 1 0 0
+29 3 1 1 0 0
+29 3 2 1 0 0
+29 3 3 1 0 0
+29 3 4 1 0 0
+29 3 5 1 0 0
+29 3 6 1 0 0
+29 3 7 1 0 0
+29 3 8 1 0 0
+29 3 9 1 0 0
+29 3 10 1 0 0
+29 3 11 1 0 0
+29 3 12 1 0 0
+29 3 13 1 0 0
+29 3 14 1 0 0
+29 3 15 1 0 0
+29 3 16 1 0 0
+29 3 17 1 0 0
+29 3 18 1 0 0.238892
+29 3 19 1 0 0.393311
+29 3 20 1 0 0.505859
+29 3 21 1 0 0.60498
+29 3 22 1 0 0.695312
+29 3 23 1 0 0.774414
+29 3 24 1 0 0.842285
+29 3 25 1 0 0.905273
+29 3 26 1 0 0.961914
+29 3 27 1 0.169434 1
+29 3 28 1 0.212402 1
+29 3 29 1 0.231323 1
+29 3 30 1 0.246582 1
+29 3 31 1 0.259033 1
+29 4 0 1 0 0
+29 4 1 1 0 0
+29 4 2 1 0 0
+29 4 3 1 0 0
+29 4 4 1 0 0
+29 4 5 1 0 0
+29 4 6 1 0 0
+29 4 7 1 0 0
+29 4 8 1 0 0
+29 4 9 1 0 0
+29 4 10 1 0 0
+29 4 11 1 0 0
+29 4 12 1 0 0
+29 4 13 1 0 0
+29 4 14 1 0 0
+29 4 15 1 0 0
+29 4 16 1 0 0
+29 4 17 1 0 0
+29 4 18 1 0 0.238892
+29 4 19 1 0 0.393311
+29 4 20 1 0 0.505859
+29 4 21 1 0 0.60498
+29 4 22 1 0 0.695312
+29 4 23 1 0 0.774414
+29 4 24 1 0 0.842285
+29 4 25 1 0 0.905273
+29 4 26 1 0 0.961914
+29 4 27 1 0.169556 1
+29 4 28 1 0.212524 1
+29 4 29 1 0.231323 1
+29 4 30 1 0.246704 1
+29 4 31 1 0.259033 1
+29 5 0 1 0 0
+29 5 1 1 0 0
+29 5 2 1 0 0
+29 5 3 1 0 0
+29 5 4 1 0 0
+29 5 5 1 0 0
+29 5 6 1 0 0
+29 5 7 1 0 0
+29 5 8 1 0 0
+29 5 9 1 0 0
+29 5 10 1 0 0
+29 5 11 1 0 0
+29 5 12 1 0 0
+29 5 13 1 0 0
+29 5 14 1 0 0
+29 5 15 1 0 0
+29 5 16 1 0 0
+29 5 17 1 0 0
+29 5 18 1 0 0.238892
+29 5 19 1 0 0.393311
+29 5 20 1 0 0.505859
+29 5 21 1 0 0.60498
+29 5 22 1 0 0.695312
+29 5 23 1 0 0.774414
+29 5 24 1 0 0.842285
+29 5 25 1 0 0.905273
+29 5 26 1 0 0.961914
+29 5 27 1 0.1698 1
+29 5 28 1 0.212646 1
+29 5 29 1 0.231445 1
+29 5 30 1 0.246826 1
+29 5 31 1 0.259033 1
+29 6 0 1 0 0
+29 6 1 1 0 0
+29 6 2 1 0 0
+29 6 3 1 0 0
+29 6 4 1 0 0
+29 6 5 1 0 0
+29 6 6 1 0 0
+29 6 7 1 0 0
+29 6 8 1 0 0
+29 6 9 1 0 0
+29 6 10 1 0 0
+29 6 11 1 0 0
+29 6 12 1 0 0
+29 6 13 1 0 0
+29 6 14 1 0 0
+29 6 15 1 0 0
+29 6 16 1 0 0
+29 6 17 1 0 0
+29 6 18 1 0 0.23877
+29 6 19 1 0 0.393311
+29 6 20 1 0 0.505859
+29 6 21 1 0 0.60498
+29 6 22 1 0 0.695312
+29 6 23 1 0 0.774414
+29 6 24 1 0 0.842285
+29 6 25 1 0 0.905273
+29 6 26 1 0 0.961914
+29 6 27 1 0.170288 1
+29 6 28 1 0.213013 1
+29 6 29 1 0.231812 1
+29 6 30 1 0.24707 1
+29 6 31 1 0.259277 1
+29 7 0 1 0 0
+29 7 1 1 0 0
+29 7 2 1 0 0
+29 7 3 1 0 0
+29 7 4 1 0 0
+29 7 5 1 0 0
+29 7 6 1 0 0
+29 7 7 1 0 0
+29 7 8 1 0 0
+29 7 9 1 0 0
+29 7 10 1 0 0
+29 7 11 1 0 0
+29 7 12 1 0 0
+29 7 13 1 0 0
+29 7 14 1 0 0
+29 7 15 1 0 0
+29 7 16 1 0 0
+29 7 17 1 0 0
+29 7 18 1 0 0.23877
+29 7 19 1 0 0.393311
+29 7 20 1 0 0.505859
+29 7 21 1 0 0.60498
+29 7 22 1 0 0.695312
+29 7 23 1 0 0.774414
+29 7 24 1 0 0.842285
+29 7 25 1 0 0.905273
+29 7 26 1 0 0.961914
+29 7 27 1 0.171265 1
+29 7 28 1 0.213623 1
+29 7 29 1 0.2323 1
+29 7 30 1 0.247437 1
+29 7 31 1 0.259766 1
+29 8 0 1 0 0
+29 8 1 1 0 0
+29 8 2 1 0 0
+29 8 3 1 0 0
+29 8 4 1 0 0
+29 8 5 1 0 0
+29 8 6 1 0 0
+29 8 7 1 0 0
+29 8 8 1 0 0
+29 8 9 1 0 0
+29 8 10 1 0 0
+29 8 11 1 0 0
+29 8 12 1 0 0
+29 8 13 1 0 0
+29 8 14 1 0 0
+29 8 15 1 0 0
+29 8 16 1 0 0
+29 8 17 1 0 0
+29 8 18 1 0 0.238647
+29 8 19 1 0 0.393311
+29 8 20 1 0 0.505859
+29 8 21 1 0 0.60498
+29 8 22 1 0 0.695312
+29 8 23 1 0 0.774414
+29 8 24 1 0 0.842285
+29 8 25 1 0 0.905273
+29 8 26 1 0 0.961914
+29 8 27 1 0.172974 1
+29 8 28 1 0.214844 1
+29 8 29 1 0.233276 1
+29 8 30 1 0.248291 1
+29 8 31 1 0.260498 1
+29 9 0 1 0 0
+29 9 1 1 0 0
+29 9 2 1 0 0
+29 9 3 1 0 0
+29 9 4 1 0 0
+29 9 5 1 0 0
+29 9 6 1 0 0
+29 9 7 1 0 0
+29 9 8 1 0 0
+29 9 9 1 0 0
+29 9 10 1 0 0
+29 9 11 1 0 0
+29 9 12 1 0 0
+29 9 13 1 0 0
+29 9 14 1 0 0
+29 9 15 1 0 0
+29 9 16 1 0 0
+29 9 17 1 0 0
+29 9 18 1 0 0.238281
+29 9 19 1 0 0.393066
+29 9 20 1 0 0.505859
+29 9 21 1 0 0.60498
+29 9 22 1 0 0.695312
+29 9 23 1 0 0.774414
+29 9 24 1 0 0.842285
+29 9 25 1 0 0.905273
+29 9 26 1 0 0.961914
+29 9 27 1 0.176392 1
+29 9 28 1 0.217285 1
+29 9 29 1 0.235229 1
+29 9 30 1 0.25 1
+29 9 31 1 0.261719 1
+29 10 0 1 0 0
+29 10 1 1 0 0
+29 10 2 1 0 0
+29 10 3 1 0 0
+29 10 4 1 0 0
+29 10 5 1 0 0
+29 10 6 1 0 0
+29 10 7 1 0 0
+29 10 8 1 0 0
+29 10 9 1 0 0
+29 10 10 1 0 0
+29 10 11 1 0 0
+29 10 12 1 0 0
+29 10 13 1 0 0
+29 10 14 1 0 0
+29 10 15 1 0 0
+29 10 16 1 0 0
+29 10 17 1 0 0
+29 10 18 1 0 0.237793
+29 10 19 1 0 0.392822
+29 10 20 1 0 0.505859
+29 10 21 1 0 0.604492
+29 10 22 1 0 0.695312
+29 10 23 1 0 0.774414
+29 10 24 1 0 0.842285
+29 10 25 1 0 0.904785
+29 10 26 1 0 0.961914
+29 10 27 1 0.182251 1
+29 10 28 1 0.221436 1
+29 10 29 1 0.23877 1
+29 10 30 1 0.25293 1
+29 10 31 1 0.26416 1
+29 11 0 1 0 0
+29 11 1 1 0 0
+29 11 2 1 0 0
+29 11 3 1 0 0
+29 11 4 1 0 0
+29 11 5 1 0 0
+29 11 6 1 0 0
+29 11 7 1 0 0
+29 11 8 1 0 0
+29 11 9 1 0 0
+29 11 10 1 0 0
+29 11 11 1 0 0
+29 11 12 1 0 0
+29 11 13 1 0 0
+29 11 14 1 0 0
+29 11 15 1 0 0
+29 11 16 1 0 0
+29 11 17 1 0 0
+29 11 18 1 0 0.236938
+29 11 19 1 0 0.39209
+29 11 20 1 0 0.505371
+29 11 21 1 0 0.604492
+29 11 22 1 0 0.694824
+29 11 23 1 0 0.773926
+29 11 24 1 0 0.841797
+29 11 25 1 0 0.904785
+29 11 26 1 0 0.961426
+29 11 27 1 0.192139 1
+29 11 28 1 0.228638 1
+29 11 29 1 0.244751 1
+29 11 30 1 0.257812 1
+29 11 31 1 0.268311 1
+29 12 0 1 0 0
+29 12 1 1 0 0
+29 12 2 1 0 0
+29 12 3 1 0 0
+29 12 4 1 0 0
+29 12 5 1 0 0
+29 12 6 1 0 0
+29 12 7 1 0 0
+29 12 8 1 0 0
+29 12 9 1 0 0
+29 12 10 1 0 0
+29 12 11 1 0 0
+29 12 12 1 0 0
+29 12 13 1 0 0
+29 12 14 1 0 0
+29 12 15 1 0 0
+29 12 16 1 0 0
+29 12 17 1 0 0
+29 12 18 1 0 0.235474
+29 12 19 1 0 0.391357
+29 12 20 1 0 0.504883
+29 12 21 1 0 0.604004
+29 12 22 1 0 0.694336
+29 12 23 1 0 0.773926
+29 12 24 1 0 0.841797
+29 12 25 1 0 0.904785
+29 12 26 1 0.079834 0.961426
+29 12 27 1 0.207275 1
+29 12 28 1 0.240234 1
+29 12 29 1 0.254395 1
+29 12 30 1 0.266113 1
+29 12 31 1 0.275391 1
+29 13 0 1 0 0
+29 13 1 1 0 0
+29 13 2 1 0 0
+29 13 3 1 0 0
+29 13 4 1 0 0
+29 13 5 1 0 0
+29 13 6 1 0 0
+29 13 7 1 0 0
+29 13 8 1 0 0
+29 13 9 1 0 0
+29 13 10 1 0 0
+29 13 11 1 0 0
+29 13 12 1 0 0
+29 13 13 1 0 0
+29 13 14 1 0 0
+29 13 15 1 0 0
+29 13 16 1 0 0
+29 13 17 1 0 0
+29 13 18 1 0 0.233154
+29 13 19 1 0 0.389893
+29 13 20 1 0 0.504395
+29 13 21 1 0 0.603027
+29 13 22 1 0 0.693848
+29 13 23 1 0 0.772949
+29 13 24 1 0 0.841309
+29 13 25 1 0 0.904297
+29 13 26 1 0.13916 0.961426
+29 13 27 1 0.22937 1
+29 13 28 1 0.257568 1
+29 13 29 1 0.269531 1
+29 13 30 1 0.279053 1
+29 13 31 1 0.286377 1
+29 14 0 1 0 0
+29 14 1 1 0 0
+29 14 2 1 0 0
+29 14 3 1 0 0
+29 14 4 1 0 0
+29 14 5 1 0 0
+29 14 6 1 0 0
+29 14 7 1 0 0
+29 14 8 1 0 0
+29 14 9 1 0 0
+29 14 10 1 0 0
+29 14 11 1 0 0
+29 14 12 1 0 0
+29 14 13 1 0 0
+29 14 14 1 0 0
+29 14 15 1 0 0
+29 14 16 1 0 0
+29 14 17 1 0 0
+29 14 18 1 0 0.229492
+29 14 19 1 0 0.387695
+29 14 20 1 0 0.503418
+29 14 21 1 0 0.602051
+29 14 22 1 0 0.692871
+29 14 23 1 0 0.771973
+29 14 24 1 0 0.840332
+29 14 25 1 0 0.903809
+29 14 26 1 0.192261 0.960938
+29 14 27 1 0.259277 1
+29 14 28 1 0.282227 1
+29 14 29 1 0.291016 1
+29 14 30 1 0.297852 1
+29 14 31 1 0.30249 1
+29 15 0 1 0 0
+29 15 1 1 0 0
+29 15 2 1 0 0
+29 15 3 1 0 0
+29 15 4 1 0 0
+29 15 5 1 0 0
+29 15 6 1 0 0
+29 15 7 1 0 0
+29 15 8 1 0 0
+29 15 9 1 0 0
+29 15 10 1 0 0
+29 15 11 1 0 0
+29 15 12 1 0 0
+29 15 13 1 0 0
+29 15 14 1 0 0
+29 15 15 1 0 0
+29 15 16 1 0 0
+29 15 17 1 0 0
+29 15 18 1 0 0.224365
+29 15 19 1 0 0.384277
+29 15 20 1 0 0.501953
+29 15 21 1 0 0.600098
+29 15 22 1 0 0.690918
+29 15 23 1 0 0.770508
+29 15 24 1 0 0.839355
+29 15 25 1 0.128296 0.90332
+29 15 26 1 0.24707 0.960449
+29 15 27 1 0.297607 1
+29 15 28 1 0.315186 1
+29 15 29 1 0.320312 1
+29 15 30 1 0.32373 1
+29 15 31 1 0.325439 1
+29 16 0 1 0 0
+29 16 1 1 0 0
+29 16 2 1 0 0
+29 16 3 1 0 0
+29 16 4 1 0 0
+29 16 5 1 0 0
+29 16 6 1 0 0
+29 16 7 1 0 0
+29 16 8 1 0 0
+29 16 9 1 0 0
+29 16 10 1 0 0
+29 16 11 1 0 0
+29 16 12 1 0 0
+29 16 13 1 0 0
+29 16 14 1 0 0
+29 16 15 1 0 0
+29 16 16 1 0 0
+29 16 17 1 0 0
+29 16 18 1 0 0.217407
+29 16 19 1 0 0.379883
+29 16 20 1 0 0.498047
+29 16 21 1 0 0.597656
+29 16 22 1 0 0.687988
+29 16 23 1 0 0.768066
+29 16 24 1 0.098877 0.837402
+29 16 25 1 0.235596 0.901855
+29 16 26 1 0.305664 0.959473
+29 16 27 1 0.34375 1
+29 16 28 1 0.356201 1
+29 16 29 1 0.35791 1
+29 16 30 1 0.357666 1
+29 16 31 1 0.355469 1
+29 17 0 1 0.105835 0
+29 17 1 1 0.105835 0
+29 17 2 1 0.105835 0
+29 17 3 1 0.105896 0
+29 17 4 1 0.105896 0
+29 17 5 1 0.105957 0
+29 17 6 1 0.106079 0
+29 17 7 1 0.106262 0
+29 17 8 1 0.106567 0
+29 17 9 1 0.1073 0
+29 17 10 1 0.108521 0
+29 17 11 1 0.110657 0
+29 17 12 1 0.114136 0
+29 17 13 1 0.119568 0
+29 17 14 1 0.127563 0
+29 17 15 1 0.138428 0
+29 17 16 1 0.1427 0
+29 17 17 1 0.135742 0
+29 17 18 1 0.112671 0.209839
+29 17 19 1 0.0838013 0.374756
+29 17 20 1 0.0736084 0.49292
+29 17 21 1 0.093689 0.594727
+29 17 22 1 0.124084 0.68457
+29 17 23 1 0.190796 0.764648
+29 17 24 1 0.257324 0.834473
+29 17 25 1 0.318848 0.899902
+29 17 26 1 0.367432 0.958008
+29 17 27 1 0.39624 1
+29 17 28 1 0.404297 1
+29 17 29 1 0.4021 1
+29 17 30 1 0.398193 1
+29 17 31 1 0.39209 1
+29 18 0 1 0.304688 0
+29 18 1 1 0.304688 0
+29 18 2 1 0.304688 0
+29 18 3 1 0.304688 0
+29 18 4 1 0.304688 0
+29 18 5 1 0.304688 0
+29 18 6 1 0.304688 0
+29 18 7 1 0.304688 0
+29 18 8 1 0.304688 0
+29 18 9 1 0.304932 0
+29 18 10 1 0.305176 0
+29 18 11 1 0.305664 0
+29 18 12 1 0.306641 0
+29 18 13 1 0.307861 0
+29 18 14 1 0.310059 0
+29 18 15 1 0.313477 0
+29 18 16 1 0.314941 0
+29 18 17 1 0.3125 0
+29 18 18 1 0.307617 0.203857
+29 18 19 1 0.302246 0.369873
+29 18 20 1 0.299072 0.487061
+29 18 21 1 0.303467 0.590332
+29 18 22 1 0.306641 0.679688
+29 18 23 1 0.324707 0.759766
+29 18 24 1 0.356201 0.830566
+29 18 25 1 0.395264 0.896484
+29 18 26 1 0.430664 0.956055
+29 18 27 1 0.452637 1
+29 18 28 1 0.456787 1
+29 18 29 1 0.451416 1
+29 18 30 1 0.443604 1
+29 18 31 1 0.433594 1
+29 19 0 1 0.417725 0
+29 19 1 1 0.417725 0
+29 19 2 1 0.417725 0
+29 19 3 1 0.417725 0
+29 19 4 1 0.417725 0
+29 19 5 1 0.417725 0
+29 19 6 1 0.417725 0
+29 19 7 1 0.417725 0
+29 19 8 1 0.417725 0
+29 19 9 1 0.417969 0
+29 19 10 1 0.418213 0
+29 19 11 1 0.418457 0
+29 19 12 1 0.418945 0
+29 19 13 1 0.419922 0
+29 19 14 1 0.421143 0
+29 19 15 1 0.42334 0
+29 19 16 1 0.424561 0
+29 19 17 1 0.423584 0
+29 19 18 1 0.421875 0.202637
+29 19 19 1 0.419189 0.366455
+29 19 20 1 0.41626 0.481934
+29 19 21 1 0.416016 0.583496
+29 19 22 1 0.419189 0.674805
+29 19 23 1 0.424805 0.753906
+29 19 24 1 0.44165 0.825195
+29 19 25 1 0.467529 0.892578
+29 19 26 1 0.493896 0.953125
+29 19 27 1 0.510742 1
+29 19 28 1 0.51123 1
+29 19 29 1 0.50293 1
+29 19 30 1 0.491943 1
+29 19 31 1 0.478271 1
+29 20 0 1 0.509766 0
+29 20 1 1 0.509766 0
+29 20 2 1 0.509766 0
+29 20 3 1 0.509766 0
+29 20 4 1 0.509766 0
+29 20 5 1 0.509766 0
+29 20 6 1 0.509766 0
+29 20 7 1 0.509766 0
+29 20 8 1 0.509766 0
+29 20 9 1 0.509766 0
+29 20 10 1 0.509766 0
+29 20 11 1 0.510254 0
+29 20 12 1 0.510742 0
+29 20 13 1 0.51123 0
+29 20 14 1 0.512207 0
+29 20 15 1 0.513672 0
+29 20 16 1 0.515137 0
+29 20 17 1 0.515625 0
+29 20 18 1 0.515625 0.208862
+29 20 19 1 0.514648 0.366211
+29 20 20 1 0.512207 0.478516
+29 20 21 1 0.510254 0.577148
+29 20 22 1 0.51123 0.667969
+29 20 23 1 0.512207 0.74707
+29 20 24 1 0.519531 0.817871
+29 20 25 1 0.535645 0.886719
+29 20 26 1 0.555176 0.94873
+29 20 27 1 0.567383 1
+29 20 28 1 0.565918 1
+29 20 29 1 0.555176 1
+29 20 30 1 0.540527 1
+29 20 31 1 0.523926 1
+29 21 0 1 0.591309 0
+29 21 1 1 0.591309 0
+29 21 2 1 0.591309 0
+29 21 3 1 0.591309 0
+29 21 4 1 0.591309 0
+29 21 5 1 0.591309 0
+29 21 6 1 0.591309 0
+29 21 7 1 0.591309 0
+29 21 8 1 0.591309 0
+29 21 9 1 0.591309 0
+29 21 10 1 0.591309 0
+29 21 11 1 0.591797 0
+29 21 12 1 0.591797 0
+29 21 13 1 0.592285 0
+29 21 14 1 0.593262 0
+29 21 15 1 0.594238 0
+29 21 16 1 0.596191 0
+29 21 17 1 0.597656 0
+29 21 18 1 0.599121 0.222534
+29 21 19 1 0.599121 0.369873
+29 21 20 1 0.598145 0.477783
+29 21 21 1 0.596191 0.572754
+29 21 22 1 0.59375 0.660156
+29 21 23 1 0.594238 0.740234
+29 21 24 1 0.594238 0.80957
+29 21 25 1 0.602051 0.878906
+29 21 26 1 0.615234 0.942871
+29 21 27 1 0.624023 0.997559
+29 21 28 1 0.620605 1
+29 21 29 1 0.606934 1
+29 21 30 1 0.590332 1
+29 21 31 1 0.569824 1
+29 22 0 1 0.664551 0
+29 22 1 1 0.664551 0
+29 22 2 1 0.664551 0
+29 22 3 1 0.664551 0
+29 22 4 1 0.664551 0
+29 22 5 1 0.664551 0
+29 22 6 1 0.664551 0
+29 22 7 1 0.664551 0
+29 22 8 1 0.665039 0
+29 22 9 1 0.665039 0
+29 22 10 1 0.665039 0
+29 22 11 1 0.665039 0
+29 22 12 1 0.665527 0
+29 22 13 1 0.665527 0
+29 22 14 1 0.666504 0
+29 22 15 1 0.66748 0
+29 22 16 1 0.668945 0
+29 22 17 1 0.671387 0
+29 22 18 1 0.673828 0.240479
+29 22 19 1 0.675293 0.376953
+29 22 20 1 0.675293 0.47998
+29 22 21 1 0.673828 0.570801
+29 22 22 1 0.67041 0.654297
+29 22 23 1 0.66748 0.730957
+29 22 24 1 0.666016 0.800781
+29 22 25 1 0.666016 0.869629
+29 22 26 1 0.672852 0.935059
+29 22 27 1 0.678711 0.991699
+29 22 28 1 0.67334 1
+29 22 29 1 0.658203 1
+29 22 30 1 0.638672 1
+29 22 31 1 0.615723 1
+29 23 0 1 0.729004 0
+29 23 1 1 0.729004 0
+29 23 2 1 0.729004 0
+29 23 3 1 0.729004 0
+29 23 4 1 0.729004 0
+29 23 5 1 0.729004 0
+29 23 6 1 0.729004 0
+29 23 7 1 0.729004 0
+29 23 8 1 0.729004 0
+29 23 9 1 0.729004 0
+29 23 10 1 0.729004 0
+29 23 11 1 0.729492 0
+29 23 12 1 0.729492 0
+29 23 13 1 0.72998 0
+29 23 14 1 0.730469 0
+29 23 15 1 0.730957 0
+29 23 16 1 0.732422 0
+29 23 17 1 0.73584 0
+29 23 18 1 0.73877 0.257812
+29 23 19 1 0.741211 0.384766
+29 23 20 1 0.742676 0.483643
+29 23 21 1 0.741699 0.571289
+29 23 22 1 0.739258 0.650879
+29 23 23 1 0.734863 0.723633
+29 23 24 1 0.730469 0.791016
+29 23 25 1 0.726562 0.859375
+29 23 26 1 0.727051 0.925781
+29 23 27 1 0.729492 0.984375
+29 23 28 1 0.723145 1
+29 23 29 1 0.706543 1
+29 23 30 1 0.685059 1
+29 23 31 1 0.659668 1
+29 24 0 1 0.786133 0
+29 24 1 1 0.786133 0
+29 24 2 1 0.786133 0
+29 24 3 1 0.786133 0
+29 24 4 1 0.786133 0
+29 24 5 1 0.786133 0
+29 24 6 1 0.786133 0
+29 24 7 1 0.786133 0
+29 24 8 1 0.786133 0
+29 24 9 1 0.786133 0
+29 24 10 1 0.786133 0
+29 24 11 1 0.786133 0
+29 24 12 1 0.786133 0
+29 24 13 1 0.786621 0
+29 24 14 1 0.787109 0
+29 24 15 1 0.787598 0
+29 24 16 1 0.788574 0
+29 24 17 1 0.791992 0
+29 24 18 1 0.795898 0.270752
+29 24 19 1 0.798828 0.391357
+29 24 20 1 0.80127 0.487061
+29 24 21 1 0.801758 0.571777
+29 24 22 1 0.799805 0.649414
+29 24 23 1 0.795898 0.71875
+29 24 24 1 0.790527 0.782715
+29 24 25 1 0.78418 0.849121
+29 24 26 1 0.778809 0.915039
+29 24 27 1 0.776855 0.976074
+29 24 28 1 0.77002 1
+29 24 29 1 0.751953 1
+29 24 30 1 0.729004 1
+29 24 31 1 0.701172 1
+29 25 0 1 0.841797 0
+29 25 1 1 0.841797 0
+29 25 2 1 0.841797 0
+29 25 3 1 0.841797 0
+29 25 4 1 0.841797 0
+29 25 5 1 0.841797 0
+29 25 6 1 0.841797 0
+29 25 7 1 0.841797 0
+29 25 8 1 0.841797 0
+29 25 9 1 0.841797 0
+29 25 10 1 0.841797 0
+29 25 11 1 0.841797 0
+29 25 12 1 0.842285 0
+29 25 13 1 0.842285 0
+29 25 14 1 0.842773 0
+29 25 15 1 0.843262 0
+29 25 16 1 0.84375 0
+29 25 17 1 0.847168 0
+29 25 18 1 0.851074 0.277588
+29 25 19 1 0.85498 0.394287
+29 25 20 1 0.85791 0.488037
+29 25 21 1 0.859375 0.571289
+29 25 22 1 0.858887 0.646973
+29 25 23 1 0.855957 0.714355
+29 25 24 1 0.850586 0.775391
+29 25 25 1 0.842773 0.837402
+29 25 26 1 0.833496 0.902344
+29 25 27 1 0.826172 0.964355
+29 25 28 1 0.817871 1
+29 25 29 1 0.799316 1
+29 25 30 1 0.774902 1
+29 25 31 1 0.744629 1
+29 26 0 1 0.896484 0
+29 26 1 1 0.896484 0
+29 26 2 1 0.896484 0
+29 26 3 1 0.896484 0
+29 26 4 1 0.896484 0
+29 26 5 1 0.896484 0
+29 26 6 1 0.896484 0
+29 26 7 1 0.896484 0
+29 26 8 1 0.896484 0
+29 26 9 1 0.896484 0
+29 26 10 1 0.896484 0
+29 26 11 1 0.896973 0
+29 26 12 1 0.896973 0
+29 26 13 1 0.896973 0
+29 26 14 1 0.897461 0
+29 26 15 1 0.897949 0
+29 26 16 1 0.898438 0
+29 26 17 1 0.901367 0
+29 26 18 1 0.905273 0.272949
+29 26 19 1 0.90918 0.389893
+29 26 20 1 0.912109 0.483398
+29 26 21 1 0.914062 0.566406
+29 26 22 1 0.914551 0.641602
+29 26 23 1 0.912598 0.708008
+29 26 24 1 0.908691 0.767578
+29 26 25 1 0.901367 0.827148
+29 26 26 1 0.890625 0.887695
+29 26 27 1 0.87793 0.949219
+29 26 28 1 0.867676 1
+29 26 29 1 0.848633 1
+29 26 30 1 0.822754 1
+29 26 31 1 0.791016 1
+29 27 0 1 0.950195 0
+29 27 1 1 0.950195 0
+29 27 2 1 0.950195 0
+29 27 3 1 0.950195 0
+29 27 4 1 0.950195 0
+29 27 5 1 0.950195 0
+29 27 6 1 0.950195 0
+29 27 7 1 0.950195 0
+29 27 8 1 0.950195 0
+29 27 9 1 0.950195 0
+29 27 10 1 0.950195 0
+29 27 11 1 0.950195 0
+29 27 12 1 0.950195 0
+29 27 13 1 0.950195 0
+29 27 14 1 0.950684 0
+29 27 15 1 0.950684 0
+29 27 16 1 0.951172 0
+29 27 17 1 0.954102 0
+29 27 18 1 0.958008 0.251221
+29 27 19 1 0.961914 0.374512
+29 27 20 1 0.964844 0.469971
+29 27 21 1 0.967285 0.553711
+29 27 22 1 0.967773 0.629395
+29 27 23 1 0.966309 0.696289
+29 27 24 1 0.962891 0.756348
+29 27 25 1 0.957031 0.81543
+29 27 26 1 0.947266 0.873535
+29 27 27 1 0.933105 0.931641
+29 27 28 1 0.917969 0.989746
+29 27 29 1 0.899414 1
+29 27 30 1 0.87207 1
+29 27 31 0.977051 0.838379 1
+29 28 0 1 1 0
+29 28 1 1 1 0
+29 28 2 1 1 0
+29 28 3 1 1 0
+29 28 4 1 1 0
+29 28 5 1 1 0
+29 28 6 1 1 0
+29 28 7 1 1 0
+29 28 8 1 1 0
+29 28 9 1 1 0
+29 28 10 1 1 0
+29 28 11 1 1 0
+29 28 12 1 1 0
+29 28 13 1 1 0
+29 28 14 1 1 0
+29 28 15 1 1 0
+29 28 16 1 1 0
+29 28 17 1 1 0
+29 28 18 1 1 0.203369
+29 28 19 1 1 0.344971
+29 28 20 1 1 0.445312
+29 28 21 1 1 0.531738
+29 28 22 1 1 0.608398
+29 28 23 1 1 0.67627
+29 28 24 1 1 0.737305
+29 28 25 1 1 0.797363
+29 28 26 1 1 0.856934
+29 28 27 1 0.987305 0.914551
+29 28 28 1 0.970215 0.969727
+29 28 29 1 0.950195 1
+29 28 30 1 0.921875 1
+29 28 31 0.936035 0.887695 1
+29 29 0 1 1 0
+29 29 1 1 1 0
+29 29 2 1 1 0
+29 29 3 1 1 0
+29 29 4 1 1 0
+29 29 5 1 1 0
+29 29 6 1 1 0
+29 29 7 1 1 0
+29 29 8 1 1 0
+29 29 9 1 1 0
+29 29 10 1 1 0
+29 29 11 1 1 0
+29 29 12 1 1 0
+29 29 13 1 1 0
+29 29 14 1 1 0
+29 29 15 1 1 0
+29 29 16 1 1 0
+29 29 17 1 1 0
+29 29 18 1 1 0.09021
+29 29 19 1 1 0.299805
+29 29 20 1 1 0.409424
+29 29 21 1 1 0.499268
+29 29 22 1 1 0.578125
+29 29 23 1 1 0.647461
+29 29 24 1 1 0.708984
+29 29 25 1 1 0.770508
+29 29 26 1 1 0.831543
+29 29 27 1 1 0.891113
+29 29 28 1 1 0.948242
+29 29 29 1 1 1
+29 29 30 0.948242 0.972656 1
+29 29 31 0.887207 0.939453 1
+29 30 0 1 1 0
+29 30 1 1 1 0
+29 30 2 1 1 0
+29 30 3 1 1 0
+29 30 4 1 1 0
+29 30 5 1 1 0
+29 30 6 1 1 0
+29 30 7 1 1 0
+29 30 8 1 1 0
+29 30 9 1 1 0
+29 30 10 1 1 0
+29 30 11 1 1 0
+29 30 12 1 1 0
+29 30 13 1 1 0
+29 30 14 1 1 0
+29 30 15 1 1 0
+29 30 16 1 1 0
+29 30 17 1 1 0
+29 30 18 1 1 0
+29 30 19 1 1 0.237183
+29 30 20 1 1 0.364502
+29 30 21 1 1 0.459961
+29 30 22 1 1 0.541016
+29 30 23 1 1 0.611328
+29 30 24 1 1 0.674316
+29 30 25 1 1 0.736328
+29 30 26 1 1 0.79834
+29 30 27 1 1 0.859375
+29 30 28 0.970703 1 0.918457
+29 30 29 0.931641 1 0.974121
+29 30 30 0.885254 1 1
+29 30 31 0.828125 0.994141 1
+29 31 0 0.999023 1 0
+29 31 1 0.999023 1 0
+29 31 2 0.999023 1 0
+29 31 3 0.999023 1 0
+29 31 4 0.999023 1 0
+29 31 5 0.999023 1 0
+29 31 6 0.999023 1 0
+29 31 7 0.999023 1 0
+29 31 8 0.999023 1 0
+29 31 9 0.999023 1 0
+29 31 10 0.999023 1 0
+29 31 11 0.999023 1 0
+29 31 12 0.999023 1 0
+29 31 13 0.999023 1 0
+29 31 14 0.998535 1 0
+29 31 15 0.998535 1 0
+29 31 16 0.998535 1 0
+29 31 17 0.998047 1 0
+29 31 18 0.99707 1 0
+29 31 19 0.995605 1 0.130615
+29 31 20 0.992676 1 0.30835
+29 31 21 0.988281 1 0.413086
+29 31 22 0.981934 1 0.497803
+29 31 23 0.974121 1 0.569824
+29 31 24 0.963867 1 0.633301
+29 31 25 0.950684 1 0.696289
+29 31 26 0.933594 1 0.759766
+29 31 27 0.910645 1 0.821777
+29 31 28 0.881836 1 0.882812
+29 31 29 0.846191 1 0.941406
+29 31 30 0.802734 1 0.996582
+29 31 31 0.75 1 1
+30 0 0 1 0 0
+30 0 1 1 0 0
+30 0 2 1 0 0
+30 0 3 1 0 0
+30 0 4 1 0 0
+30 0 5 1 0 0
+30 0 6 1 0 0
+30 0 7 1 0 0
+30 0 8 1 0 0
+30 0 9 1 0 0
+30 0 10 1 0 0
+30 0 11 1 0 0
+30 0 12 1 0 0
+30 0 13 1 0 0
+30 0 14 1 0 0
+30 0 15 1 0 0
+30 0 16 1 0 0
+30 0 17 1 0 0
+30 0 18 1 0 0.0835571
+30 0 19 1 0 0.320068
+30 0 20 1 0 0.444336
+30 0 21 1 0 0.543945
+30 0 22 1 0 0.634277
+30 0 23 1 0 0.714355
+30 0 24 1 0 0.784668
+30 0 25 1 0 0.851074
+30 0 26 1 0 0.912598
+30 0 27 1 0 0.968262
+30 0 28 1 0.168823 1
+30 0 29 1 0.213501 1
+30 0 30 1 0.2323 1
+30 0 31 1 0.247559 1
+30 1 0 1 0 0
+30 1 1 1 0 0
+30 1 2 1 0 0
+30 1 3 1 0 0
+30 1 4 1 0 0
+30 1 5 1 0 0
+30 1 6 1 0 0
+30 1 7 1 0 0
+30 1 8 1 0 0
+30 1 9 1 0 0
+30 1 10 1 0 0
+30 1 11 1 0 0
+30 1 12 1 0 0
+30 1 13 1 0 0
+30 1 14 1 0 0
+30 1 15 1 0 0
+30 1 16 1 0 0
+30 1 17 1 0 0
+30 1 18 1 0 0.0835571
+30 1 19 1 0 0.320068
+30 1 20 1 0 0.444336
+30 1 21 1 0 0.543945
+30 1 22 1 0 0.634277
+30 1 23 1 0 0.714355
+30 1 24 1 0 0.784668
+30 1 25 1 0 0.851074
+30 1 26 1 0 0.912598
+30 1 27 1 0 0.968262
+30 1 28 1 0.168823 1
+30 1 29 1 0.213501 1
+30 1 30 1 0.2323 1
+30 1 31 1 0.247681 1
+30 2 0 1 0 0
+30 2 1 1 0 0
+30 2 2 1 0 0
+30 2 3 1 0 0
+30 2 4 1 0 0
+30 2 5 1 0 0
+30 2 6 1 0 0
+30 2 7 1 0 0
+30 2 8 1 0 0
+30 2 9 1 0 0
+30 2 10 1 0 0
+30 2 11 1 0 0
+30 2 12 1 0 0
+30 2 13 1 0 0
+30 2 14 1 0 0
+30 2 15 1 0 0
+30 2 16 1 0 0
+30 2 17 1 0 0
+30 2 18 1 0 0.0835571
+30 2 19 1 0 0.320068
+30 2 20 1 0 0.444336
+30 2 21 1 0 0.543945
+30 2 22 1 0 0.634277
+30 2 23 1 0 0.714355
+30 2 24 1 0 0.784668
+30 2 25 1 0 0.851074
+30 2 26 1 0 0.912598
+30 2 27 1 0 0.968262
+30 2 28 1 0.168823 1
+30 2 29 1 0.213501 1
+30 2 30 1 0.2323 1
+30 2 31 1 0.247681 1
+30 3 0 1 0 0
+30 3 1 1 0 0
+30 3 2 1 0 0
+30 3 3 1 0 0
+30 3 4 1 0 0
+30 3 5 1 0 0
+30 3 6 1 0 0
+30 3 7 1 0 0
+30 3 8 1 0 0
+30 3 9 1 0 0
+30 3 10 1 0 0
+30 3 11 1 0 0
+30 3 12 1 0 0
+30 3 13 1 0 0
+30 3 14 1 0 0
+30 3 15 1 0 0
+30 3 16 1 0 0
+30 3 17 1 0 0
+30 3 18 1 0 0.0835571
+30 3 19 1 0 0.320068
+30 3 20 1 0 0.444336
+30 3 21 1 0 0.543945
+30 3 22 1 0 0.634277
+30 3 23 1 0 0.714355
+30 3 24 1 0 0.784668
+30 3 25 1 0 0.851074
+30 3 26 1 0 0.912598
+30 3 27 1 0 0.968262
+30 3 28 1 0.168945 1
+30 3 29 1 0.213501 1
+30 3 30 1 0.232422 1
+30 3 31 1 0.247681 1
+30 4 0 1 0 0
+30 4 1 1 0 0
+30 4 2 1 0 0
+30 4 3 1 0 0
+30 4 4 1 0 0
+30 4 5 1 0 0
+30 4 6 1 0 0
+30 4 7 1 0 0
+30 4 8 1 0 0
+30 4 9 1 0 0
+30 4 10 1 0 0
+30 4 11 1 0 0
+30 4 12 1 0 0
+30 4 13 1 0 0
+30 4 14 1 0 0
+30 4 15 1 0 0
+30 4 16 1 0 0
+30 4 17 1 0 0
+30 4 18 1 0 0.0834961
+30 4 19 1 0 0.320068
+30 4 20 1 0 0.444336
+30 4 21 1 0 0.543945
+30 4 22 1 0 0.634277
+30 4 23 1 0 0.714355
+30 4 24 1 0 0.784668
+30 4 25 1 0 0.851074
+30 4 26 1 0 0.912598
+30 4 27 1 0 0.968262
+30 4 28 1 0.169067 1
+30 4 29 1 0.213623 1
+30 4 30 1 0.232422 1
+30 4 31 1 0.247681 1
+30 5 0 1 0 0
+30 5 1 1 0 0
+30 5 2 1 0 0
+30 5 3 1 0 0
+30 5 4 1 0 0
+30 5 5 1 0 0
+30 5 6 1 0 0
+30 5 7 1 0 0
+30 5 8 1 0 0
+30 5 9 1 0 0
+30 5 10 1 0 0
+30 5 11 1 0 0
+30 5 12 1 0 0
+30 5 13 1 0 0
+30 5 14 1 0 0
+30 5 15 1 0 0
+30 5 16 1 0 0
+30 5 17 1 0 0
+30 5 18 1 0 0.0834351
+30 5 19 1 0 0.320068
+30 5 20 1 0 0.444336
+30 5 21 1 0 0.543945
+30 5 22 1 0 0.634277
+30 5 23 1 0 0.714355
+30 5 24 1 0 0.784668
+30 5 25 1 0 0.851074
+30 5 26 1 0 0.912598
+30 5 27 1 0 0.968262
+30 5 28 1 0.169189 1
+30 5 29 1 0.213745 1
+30 5 30 1 0.232544 1
+30 5 31 1 0.247803 1
+30 6 0 1 0 0
+30 6 1 1 0 0
+30 6 2 1 0 0
+30 6 3 1 0 0
+30 6 4 1 0 0
+30 6 5 1 0 0
+30 6 6 1 0 0
+30 6 7 1 0 0
+30 6 8 1 0 0
+30 6 9 1 0 0
+30 6 10 1 0 0
+30 6 11 1 0 0
+30 6 12 1 0 0
+30 6 13 1 0 0
+30 6 14 1 0 0
+30 6 15 1 0 0
+30 6 16 1 0 0
+30 6 17 1 0 0
+30 6 18 1 0 0.083313
+30 6 19 1 0 0.319824
+30 6 20 1 0 0.444336
+30 6 21 1 0 0.543945
+30 6 22 1 0 0.634277
+30 6 23 1 0 0.714355
+30 6 24 1 0 0.784668
+30 6 25 1 0 0.851074
+30 6 26 1 0 0.912598
+30 6 27 1 0 0.968262
+30 6 28 1 0.169678 1
+30 6 29 1 0.213989 1
+30 6 30 1 0.232788 1
+30 6 31 1 0.248047 1
+30 7 0 1 0 0
+30 7 1 1 0 0
+30 7 2 1 0 0
+30 7 3 1 0 0
+30 7 4 1 0 0
+30 7 5 1 0 0
+30 7 6 1 0 0
+30 7 7 1 0 0
+30 7 8 1 0 0
+30 7 9 1 0 0
+30 7 10 1 0 0
+30 7 11 1 0 0
+30 7 12 1 0 0
+30 7 13 1 0 0
+30 7 14 1 0 0
+30 7 15 1 0 0
+30 7 16 1 0 0
+30 7 17 1 0 0
+30 7 18 1 0 0.0830078
+30 7 19 1 0 0.319824
+30 7 20 1 0 0.444336
+30 7 21 1 0 0.543945
+30 7 22 1 0 0.634277
+30 7 23 1 0 0.714355
+30 7 24 1 0 0.784668
+30 7 25 1 0 0.851074
+30 7 26 1 0 0.912598
+30 7 27 1 0 0.968262
+30 7 28 1 0.17041 1
+30 7 29 1 0.2146 1
+30 7 30 1 0.233276 1
+30 7 31 1 0.248413 1
+30 8 0 1 0 0
+30 8 1 1 0 0
+30 8 2 1 0 0
+30 8 3 1 0 0
+30 8 4 1 0 0
+30 8 5 1 0 0
+30 8 6 1 0 0
+30 8 7 1 0 0
+30 8 8 1 0 0
+30 8 9 1 0 0
+30 8 10 1 0 0
+30 8 11 1 0 0
+30 8 12 1 0 0
+30 8 13 1 0 0
+30 8 14 1 0 0
+30 8 15 1 0 0
+30 8 16 1 0 0
+30 8 17 1 0 0
+30 8 18 1 0 0.0825195
+30 8 19 1 0 0.319824
+30 8 20 1 0 0.444336
+30 8 21 1 0 0.543945
+30 8 22 1 0 0.634277
+30 8 23 1 0 0.714355
+30 8 24 1 0 0.784668
+30 8 25 1 0 0.851074
+30 8 26 1 0 0.912598
+30 8 27 1 0 0.968262
+30 8 28 1 0.171997 1
+30 8 29 1 0.215698 1
+30 8 30 1 0.234131 1
+30 8 31 1 0.249146 1
+30 9 0 1 0 0
+30 9 1 1 0 0
+30 9 2 1 0 0
+30 9 3 1 0 0
+30 9 4 1 0 0
+30 9 5 1 0 0
+30 9 6 1 0 0
+30 9 7 1 0 0
+30 9 8 1 0 0
+30 9 9 1 0 0
+30 9 10 1 0 0
+30 9 11 1 0 0
+30 9 12 1 0 0
+30 9 13 1 0 0
+30 9 14 1 0 0
+30 9 15 1 0 0
+30 9 16 1 0 0
+30 9 17 1 0 0
+30 9 18 1 0 0.0814819
+30 9 19 1 0 0.31958
+30 9 20 1 0 0.444092
+30 9 21 1 0 0.543945
+30 9 22 1 0 0.634277
+30 9 23 1 0 0.714355
+30 9 24 1 0 0.784668
+30 9 25 1 0 0.851074
+30 9 26 1 0 0.912598
+30 9 27 1 0 0.968262
+30 9 28 1 0.174927 1
+30 9 29 1 0.217651 1
+30 9 30 1 0.23584 1
+30 9 31 1 0.250488 1
+30 10 0 1 0 0
+30 10 1 1 0 0
+30 10 2 1 0 0
+30 10 3 1 0 0
+30 10 4 1 0 0
+30 10 5 1 0 0
+30 10 6 1 0 0
+30 10 7 1 0 0
+30 10 8 1 0 0
+30 10 9 1 0 0
+30 10 10 1 0 0
+30 10 11 1 0 0
+30 10 12 1 0 0
+30 10 13 1 0 0
+30 10 14 1 0 0
+30 10 15 1 0 0
+30 10 16 1 0 0
+30 10 17 1 0 0
+30 10 18 1 0 0.0795898
+30 10 19 1 0 0.319336
+30 10 20 1 0 0.443848
+30 10 21 1 0 0.543457
+30 10 22 1 0 0.634277
+30 10 23 1 0 0.713867
+30 10 24 1 0 0.78418
+30 10 25 1 0 0.851074
+30 10 26 1 0 0.912598
+30 10 27 1 0 0.968262
+30 10 28 1 0.180054 1
+30 10 29 1 0.221313 1
+30 10 30 1 0.23877 1
+30 10 31 1 0.25293 1
+30 11 0 1 0 0
+30 11 1 1 0 0
+30 11 2 1 0 0
+30 11 3 1 0 0
+30 11 4 1 0 0
+30 11 5 1 0 0
+30 11 6 1 0 0
+30 11 7 1 0 0
+30 11 8 1 0 0
+30 11 9 1 0 0
+30 11 10 1 0 0
+30 11 11 1 0 0
+30 11 12 1 0 0
+30 11 13 1 0 0
+30 11 14 1 0 0
+30 11 15 1 0 0
+30 11 16 1 0 0
+30 11 17 1 0 0
+30 11 18 1 0 0.0761108
+30 11 19 1 0 0.318848
+30 11 20 1 0 0.443604
+30 11 21 1 0 0.543457
+30 11 22 1 0 0.633789
+30 11 23 1 0 0.713867
+30 11 24 1 0 0.78418
+30 11 25 1 0 0.851074
+30 11 26 1 0 0.912598
+30 11 27 1 0 0.968262
+30 11 28 1 0.188599 1
+30 11 29 1 0.227417 1
+30 11 30 1 0.243896 1
+30 11 31 1 0.257324 1
+30 12 0 1 0 0
+30 12 1 1 0 0
+30 12 2 1 0 0
+30 12 3 1 0 0
+30 12 4 1 0 0
+30 12 5 1 0 0
+30 12 6 1 0 0
+30 12 7 1 0 0
+30 12 8 1 0 0
+30 12 9 1 0 0
+30 12 10 1 0 0
+30 12 11 1 0 0
+30 12 12 1 0 0
+30 12 13 1 0 0
+30 12 14 1 0 0
+30 12 15 1 0 0
+30 12 16 1 0 0
+30 12 17 1 0 0
+30 12 18 1 0 0.0697632
+30 12 19 1 0 0.317871
+30 12 20 1 0 0.442871
+30 12 21 1 0 0.542969
+30 12 22 1 0 0.633301
+30 12 23 1 0 0.713379
+30 12 24 1 0 0.783691
+30 12 25 1 0 0.850586
+30 12 26 1 0 0.912109
+30 12 27 1 0 0.968262
+30 12 28 1 0.202148 1
+30 12 29 1 0.237427 1
+30 12 30 1 0.252441 1
+30 12 31 1 0.264404 1
+30 13 0 1 0 0
+30 13 1 1 0 0
+30 13 2 1 0 0
+30 13 3 1 0 0
+30 13 4 1 0 0
+30 13 5 1 0 0
+30 13 6 1 0 0
+30 13 7 1 0 0
+30 13 8 1 0 0
+30 13 9 1 0 0
+30 13 10 1 0 0
+30 13 11 1 0 0
+30 13 12 1 0 0
+30 13 13 1 0 0
+30 13 14 1 0 0
+30 13 15 1 0 0
+30 13 16 1 0 0
+30 13 17 1 0 0
+30 13 18 1 0 0.0574341
+30 13 19 1 0 0.316162
+30 13 20 1 0 0.44165
+30 13 21 1 0 0.54248
+30 13 22 1 0 0.632812
+30 13 23 1 0 0.712891
+30 13 24 1 0 0.783691
+30 13 25 1 0 0.850586
+30 13 26 1 0 0.912109
+30 13 27 1 0.112732 0.967773
+30 13 28 1 0.221924 1
+30 13 29 1 0.252686 1
+30 13 30 1 0.265381 1
+30 13 31 1 0.275635 1
+30 14 0 1 0 0
+30 14 1 1 0 0
+30 14 2 1 0 0
+30 14 3 1 0 0
+30 14 4 1 0 0
+30 14 5 1 0 0
+30 14 6 1 0 0
+30 14 7 1 0 0
+30 14 8 1 0 0
+30 14 9 1 0 0
+30 14 10 1 0 0
+30 14 11 1 0 0
+30 14 12 1 0 0
+30 14 13 1 0 0
+30 14 14 1 0 0
+30 14 15 1 0 0
+30 14 16 1 0 0
+30 14 17 1 0 0
+30 14 18 1 0 0.0215454
+30 14 19 1 0 0.313965
+30 14 20 1 0 0.439941
+30 14 21 1 0 0.541504
+30 14 22 1 0 0.631836
+30 14 23 1 0 0.711914
+30 14 24 1 0 0.782715
+30 14 25 1 0 0.849609
+30 14 26 1 0 0.911621
+30 14 27 1 0.169678 0.967773
+30 14 28 1 0.249023 1
+30 14 29 1 0.274658 1
+30 14 30 1 0.284424 1
+30 14 31 1 0.291992 1
+30 15 0 1 0 0
+30 15 1 1 0 0
+30 15 2 1 0 0
+30 15 3 1 0 0
+30 15 4 1 0 0
+30 15 5 1 0 0
+30 15 6 1 0 0
+30 15 7 1 0 0
+30 15 8 1 0 0
+30 15 9 1 0 0
+30 15 10 1 0 0
+30 15 11 1 0 0
+30 15 12 1 0 0
+30 15 13 1 0 0
+30 15 14 1 0 0
+30 15 15 1 0 0
+30 15 16 1 0 0
+30 15 17 1 0 0
+30 15 18 1 0 0
+30 15 19 1 0 0.310547
+30 15 20 1 0 0.437256
+30 15 21 1 0 0.540527
+30 15 22 1 0 0.630371
+30 15 23 1 0 0.710449
+30 15 24 1 0 0.781738
+30 15 25 1 0 0.849121
+30 15 26 1 0 0.911133
+30 15 27 1 0.224365 0.967285
+30 15 28 1 0.283936 1
+30 15 29 1 0.303955 1
+30 15 30 1 0.310547 1
+30 15 31 1 0.314941 1
+30 16 0 1 0 0
+30 16 1 1 0 0
+30 16 2 1 0 0
+30 16 3 1 0 0
+30 16 4 1 0 0
+30 16 5 1 0 0
+30 16 6 1 0 0
+30 16 7 1 0 0
+30 16 8 1 0 0
+30 16 9 1 0 0
+30 16 10 1 0 0
+30 16 11 1 0 0
+30 16 12 1 0 0
+30 16 13 1 0 0
+30 16 14 1 0 0
+30 16 15 1 0 0
+30 16 16 1 0 0
+30 16 17 1 0 0
+30 16 18 1 0 0
+30 16 19 1 0 0.305664
+30 16 20 1 0 0.43335
+30 16 21 1 0 0.538574
+30 16 22 1 0 0.628418
+30 16 23 1 0 0.708496
+30 16 24 1 0 0.779785
+30 16 25 1 0 0.847656
+30 16 26 1 0.191162 0.910156
+30 16 27 1 0.281494 0.966797
+30 16 28 1 0.326416 1
+30 16 29 1 0.341309 1
+30 16 30 1 0.344238 1
+30 16 31 1 0.345215 1
+30 17 0 1 0 0
+30 17 1 1 0 0
+30 17 2 1 0 0
+30 17 3 1 0 0
+30 17 4 1 0 0
+30 17 5 1 0 0
+30 17 6 1 0 0
+30 17 7 1 0 0
+30 17 8 1 0 0
+30 17 9 1 0 0
+30 17 10 1 0 0
+30 17 11 1 0 0
+30 17 12 1 0 0
+30 17 13 1 0 0
+30 17 14 1 0 0
+30 17 15 1 0 0
+30 17 16 1 0 0
+30 17 17 1 0 0
+30 17 18 1 0 0
+30 17 19 1 0 0.300049
+30 17 20 1 0 0.428711
+30 17 21 1 0 0.535156
+30 17 22 1 0 0.625488
+30 17 23 1 0 0.705566
+30 17 24 1 0 0.776855
+30 17 25 1 0.196045 0.845703
+30 17 26 1 0.281006 0.908691
+30 17 27 1 0.34082 0.96582
+30 17 28 1 0.375 1
+30 17 29 1 0.385254 1
+30 17 30 1 0.384521 1
+30 17 31 1 0.381836 1
+30 18 0 1 0.233521 0
+30 18 1 1 0.233521 0
+30 18 2 1 0.233521 0
+30 18 3 1 0.233521 0
+30 18 4 1 0.233521 0
+30 18 5 1 0.233521 0
+30 18 6 1 0.233521 0
+30 18 7 1 0.233643 0
+30 18 8 1 0.233765 0
+30 18 9 1 0.233887 0
+30 18 10 1 0.234253 0
+30 18 11 1 0.234863 0
+30 18 12 1 0.235962 0
+30 18 13 1 0.237671 0
+30 18 14 1 0.240479 0
+30 18 15 1 0.244507 0
+30 18 16 1 0.248169 0
+30 18 17 1 0.248291 0
+30 18 18 1 0.241333 0
+30 18 19 1 0.233154 0.294189
+30 18 20 1 0.225952 0.42334
+30 18 21 1 0.224976 0.529297
+30 18 22 1 0.229736 0.62207
+30 18 23 1 0.237671 0.70166
+30 18 24 1 0.265381 0.773438
+30 18 25 1 0.308838 0.842285
+30 18 26 1 0.358154 0.906738
+30 18 27 1 0.401123 0.963867
+30 18 28 1 0.42749 1
+30 18 29 1 0.433594 1
+30 18 30 1 0.429443 1
+30 18 31 1 0.423096 1
+30 19 0 1 0.361572 0
+30 19 1 1 0.361572 0
+30 19 2 1 0.361572 0
+30 19 3 1 0.361572 0
+30 19 4 1 0.361572 0
+30 19 5 1 0.361572 0
+30 19 6 1 0.361572 0
+30 19 7 1 0.361816 0
+30 19 8 1 0.361816 0
+30 19 9 1 0.361816 0
+30 19 10 1 0.362061 0
+30 19 11 1 0.362305 0
+30 19 12 1 0.363037 0
+30 19 13 1 0.364014 0
+30 19 14 1 0.365479 0
+30 19 15 1 0.367676 0
+30 19 16 1 0.369873 0
+30 19 17 1 0.369629 0
+30 19 18 1 0.367432 0
+30 19 19 1 0.364258 0.289551
+30 19 20 1 0.36084 0.418213
+30 19 21 1 0.358887 0.523438
+30 19 22 1 0.362305 0.617188
+30 19 23 1 0.36377 0.696777
+30 19 24 1 0.374023 0.768555
+30 19 25 1 0.396973 0.838379
+30 19 26 1 0.429443 0.90332
+30 19 27 1 0.461182 0.961426
+30 19 28 1 0.481445 1
+30 19 29 1 0.484131 1
+30 19 30 1 0.477051 1
+30 19 31 1 0.467529 1
+30 20 0 1 0.457031 0
+30 20 1 1 0.457031 0
+30 20 2 1 0.457031 0
+30 20 3 1 0.457031 0
+30 20 4 1 0.457031 0
+30 20 5 1 0.457275 0
+30 20 6 1 0.457275 0
+30 20 7 1 0.457275 0
+30 20 8 1 0.457275 0
+30 20 9 1 0.457275 0
+30 20 10 1 0.45752 0
+30 20 11 1 0.457764 0
+30 20 12 1 0.458008 0
+30 20 13 1 0.45874 0
+30 20 14 1 0.459717 0
+30 20 15 1 0.461426 0
+30 20 16 1 0.463135 0
+30 20 17 1 0.463379 0
+30 20 18 1 0.463135 0
+30 20 19 1 0.462402 0.288086
+30 20 20 1 0.460693 0.414795
+30 20 21 1 0.45874 0.518066
+30 20 22 1 0.458252 0.610352
+30 20 23 1 0.460938 0.691406
+30 20 24 1 0.462891 0.762207
+30 20 25 1 0.474854 0.833008
+30 20 26 1 0.49585 0.898926
+30 20 27 1 0.519531 0.958496
+30 20 28 1 0.535156 1
+30 20 29 1 0.535156 1
+30 20 30 1 0.525391 1
+30 20 31 1 0.512695 1
+30 21 0 1 0.539551 0
+30 21 1 1 0.539551 0
+30 21 2 1 0.539551 0
+30 21 3 1 0.539551 0
+30 21 4 1 0.539551 0
+30 21 5 1 0.539551 0
+30 21 6 1 0.539551 0
+30 21 7 1 0.539551 0
+30 21 8 1 0.539551 0
+30 21 9 1 0.539551 0
+30 21 10 1 0.539551 0
+30 21 11 1 0.539551 0
+30 21 12 1 0.540039 0
+30 21 13 1 0.540527 0
+30 21 14 1 0.541504 0
+30 21 15 1 0.54248 0
+30 21 16 1 0.543945 0
+30 21 17 1 0.54541 0
+30 21 18 1 0.546387 0
+30 21 19 1 0.547363 0.290771
+30 21 20 1 0.546875 0.413574
+30 21 21 1 0.54541 0.51416
+30 21 22 1 0.543945 0.604004
+30 21 23 1 0.543945 0.68457
+30 21 24 1 0.543945 0.755859
+30 21 25 1 0.547852 0.826172
+30 21 26 1 0.560059 0.893555
+30 21 27 1 0.57666 0.954102
+30 21 28 1 0.588379 1
+30 21 29 1 0.585938 1
+30 21 30 1 0.57373 1
+30 21 31 1 0.558105 1
+30 22 0 1 0.612305 0
+30 22 1 1 0.612305 0
+30 22 2 1 0.612305 0
+30 22 3 1 0.612305 0
+30 22 4 1 0.612305 0
+30 22 5 1 0.612305 0
+30 22 6 1 0.612305 0
+30 22 7 1 0.612305 0
+30 22 8 1 0.612305 0
+30 22 9 1 0.612793 0
+30 22 10 1 0.612793 0
+30 22 11 1 0.612793 0
+30 22 12 1 0.612793 0
+30 22 13 1 0.613281 0
+30 22 14 1 0.614258 0
+30 22 15 1 0.615234 0
+30 22 16 1 0.616699 0
+30 22 17 1 0.618652 0
+30 22 18 1 0.620605 0
+30 22 19 1 0.622559 0.297852
+30 22 20 1 0.623535 0.415039
+30 22 21 1 0.623047 0.512207
+30 22 22 1 0.621094 0.598633
+30 22 23 1 0.619141 0.676758
+30 22 24 1 0.618164 0.748047
+30 22 25 1 0.617188 0.817871
+30 22 26 1 0.621582 0.88623
+30 22 27 1 0.631836 0.94873
+30 22 28 1 0.640137 1
+30 22 29 1 0.635742 1
+30 22 30 1 0.621582 1
+30 22 31 1 0.603516 1
+30 23 0 1 0.676758 0
+30 23 1 1 0.676758 0
+30 23 2 1 0.676758 0
+30 23 3 1 0.676758 0
+30 23 4 1 0.676758 0
+30 23 5 1 0.676758 0
+30 23 6 1 0.676758 0
+30 23 7 1 0.676758 0
+30 23 8 1 0.676758 0
+30 23 9 1 0.676758 0
+30 23 10 1 0.676758 0
+30 23 11 1 0.677246 0
+30 23 12 1 0.677246 0
+30 23 13 1 0.677734 0
+30 23 14 1 0.678223 0
+30 23 15 1 0.678711 0
+30 23 16 1 0.680176 0
+30 23 17 1 0.682617 0
+30 23 18 1 0.685547 0.110474
+30 23 19 1 0.687988 0.307861
+30 23 20 1 0.689941 0.418945
+30 23 21 1 0.69043 0.512207
+30 23 22 1 0.689453 0.595703
+30 23 23 1 0.686523 0.67041
+30 23 24 1 0.683594 0.739746
+30 23 25 1 0.681152 0.80957
+30 23 26 1 0.679199 0.877441
+30 23 27 1 0.683594 0.941406
+30 23 28 1 0.688477 0.99707
+30 23 29 1 0.683105 1
+30 23 30 1 0.666992 1
+30 23 31 1 0.646973 1
+30 24 0 1 0.733887 0
+30 24 1 1 0.733887 0
+30 24 2 1 0.733887 0
+30 24 3 1 0.733887 0
+30 24 4 1 0.733887 0
+30 24 5 1 0.733887 0
+30 24 6 1 0.733887 0
+30 24 7 1 0.733887 0
+30 24 8 1 0.733887 0
+30 24 9 1 0.733887 0
+30 24 10 1 0.733887 0
+30 24 11 1 0.734375 0
+30 24 12 1 0.734375 0
+30 24 13 1 0.734375 0
+30 24 14 1 0.734863 0
+30 24 15 1 0.73584 0
+30 24 16 1 0.736816 0
+30 24 17 1 0.739258 0
+30 24 18 1 0.742676 0.151978
+30 24 19 1 0.746094 0.318359
+30 24 20 1 0.748535 0.424072
+30 24 21 1 0.75 0.513672
+30 24 22 1 0.749512 0.59375
+30 24 23 1 0.747559 0.666016
+30 24 24 1 0.743652 0.731934
+30 24 25 1 0.739258 0.799805
+30 24 26 1 0.733887 0.868164
+30 24 27 1 0.732422 0.933105
+30 24 28 1 0.733887 0.990723
+30 24 29 1 0.727539 1
+30 24 30 1 0.710449 1
+30 24 31 1 0.688477 1
+30 25 0 1 0.790527 0
+30 25 1 1 0.790527 0
+30 25 2 1 0.790527 0
+30 25 3 1 0.790527 0
+30 25 4 1 0.790527 0
+30 25 5 1 0.790527 0
+30 25 6 1 0.790527 0
+30 25 7 1 0.790527 0
+30 25 8 1 0.790527 0
+30 25 9 1 0.790527 0
+30 25 10 1 0.790527 0
+30 25 11 1 0.790527 0
+30 25 12 1 0.790527 0
+30 25 13 1 0.791016 0
+30 25 14 1 0.791016 0
+30 25 15 1 0.791992 0
+30 25 16 1 0.79248 0
+30 25 17 1 0.79541 0
+30 25 18 1 0.798828 0.180542
+30 25 19 1 0.802246 0.328369
+30 25 20 1 0.805664 0.429199
+30 25 21 1 0.807617 0.515625
+30 25 22 1 0.808105 0.592773
+30 25 23 1 0.807129 0.662109
+30 25 24 1 0.803711 0.725098
+30 25 25 1 0.79834 0.790039
+30 25 26 1 0.791504 0.856934
+30 25 27 1 0.78418 0.922363
+30 25 28 1 0.78125 0.981934
+30 25 29 1 0.773926 1
+30 25 30 1 0.755371 1
+30 25 31 1 0.731934 1
+30 26 0 1 0.846191 0
+30 26 1 1 0.846191 0
+30 26 2 1 0.846191 0
+30 26 3 1 0.846191 0
+30 26 4 1 0.846191 0
+30 26 5 1 0.846191 0
+30 26 6 1 0.846191 0
+30 26 7 1 0.846191 0
+30 26 8 1 0.846191 0
+30 26 9 1 0.846191 0
+30 26 10 1 0.846191 0
+30 26 11 1 0.846191 0
+30 26 12 1 0.846191 0
+30 26 13 1 0.84668 0
+30 26 14 1 0.84668 0
+30 26 15 1 0.847168 0
+30 26 16 1 0.847656 0
+30 26 17 1 0.850098 0
+30 26 18 1 0.854004 0.195801
+30 26 19 1 0.85791 0.333984
+30 26 20 1 0.861328 0.431641
+30 26 21 1 0.86377 0.515625
+30 26 22 1 0.864746 0.591309
+30 26 23 1 0.864746 0.658203
+30 26 24 1 0.862305 0.719238
+30 26 25 1 0.857422 0.780762
+30 26 26 1 0.849609 0.844238
+30 26 27 1 0.839844 0.90918
+30 26 28 1 0.831055 0.970215
+30 26 29 1 0.822266 1
+30 26 30 1 0.803223 1
+30 26 31 1 0.777832 1
+30 27 0 1 0.900879 0
+30 27 1 1 0.900879 0
+30 27 2 1 0.900879 0
+30 27 3 1 0.900879 0
+30 27 4 1 0.900879 0
+30 27 5 1 0.900879 0
+30 27 6 1 0.900879 0
+30 27 7 1 0.900879 0
+30 27 8 1 0.900879 0
+30 27 9 1 0.900879 0
+30 27 10 1 0.900879 0
+30 27 11 1 0.900879 0
+30 27 12 1 0.900879 0
+30 27 13 1 0.900879 0
+30 27 14 1 0.901367 0
+30 27 15 1 0.901855 0
+30 27 16 1 0.902344 0
+30 27 17 1 0.904297 0
+30 27 18 1 0.907715 0.192871
+30 27 19 1 0.911621 0.330811
+30 27 20 1 0.915039 0.427979
+30 27 21 1 0.917969 0.51123
+30 27 22 1 0.919434 0.585938
+30 27 23 1 0.919922 0.652344
+30 27 24 1 0.917969 0.711914
+30 27 25 1 0.914551 0.771973
+30 27 26 1 0.907715 0.832031
+30 27 27 1 0.896484 0.893555
+30 27 28 1 0.883301 0.955078
+30 27 29 1 0.87207 1
+30 27 30 1 0.852539 1
+30 27 31 1 0.826172 1
+30 28 0 1 0.953613 0
+30 28 1 1 0.953613 0
+30 28 2 1 0.953613 0
+30 28 3 1 0.953613 0
+30 28 4 1 0.953613 0
+30 28 5 1 0.953613 0
+30 28 6 1 0.953613 0
+30 28 7 1 0.953613 0
+30 28 8 1 0.953613 0
+30 28 9 1 0.953613 0
+30 28 10 1 0.953613 0
+30 28 11 1 0.953613 0
+30 28 12 1 0.953613 0
+30 28 13 1 0.953613 0
+30 28 14 1 0.954102 0
+30 28 15 1 0.954102 0
+30 28 16 1 0.95459 0
+30 28 17 1 0.956055 0
+30 28 18 1 0.959473 0.1604
+30 28 19 1 0.963379 0.313965
+30 28 20 1 0.967285 0.414062
+30 28 21 1 0.969727 0.498535
+30 28 22 1 0.97168 0.57373
+30 28 23 1 0.972168 0.640137
+30 28 24 1 0.971191 0.700195
+30 28 25 1 0.967773 0.759766
+30 28 26 1 0.961914 0.819336
+30 28 27 1 0.952637 0.878418
+30 28 28 1 0.938477 0.937012
+30 28 29 1 0.922363 0.995117
+30 28 30 1 0.90332 1
+30 28 31 1 0.875488 1
+30 29 0 1 1 0
+30 29 1 1 1 0
+30 29 2 1 1 0
+30 29 3 1 1 0
+30 29 4 1 1 0
+30 29 5 1 1 0
+30 29 6 1 1 0
+30 29 7 1 1 0
+30 29 8 1 1 0
+30 29 9 1 1 0
+30 29 10 1 1 0
+30 29 11 1 1 0
+30 29 12 1 1 0
+30 29 13 1 1 0
+30 29 14 1 1 0
+30 29 15 1 1 0
+30 29 16 1 1 0
+30 29 17 1 1 0
+30 29 18 1 1 0
+30 29 19 1 1 0.27832
+30 29 20 1 1 0.386719
+30 29 21 1 1 0.474609
+30 29 22 1 1 0.551758
+30 29 23 1 1 0.619141
+30 29 24 1 1 0.679688
+30 29 25 1 1 0.740234
+30 29 26 1 1 0.800781
+30 29 27 1 1 0.86084
+30 29 28 1 0.992188 0.918945
+30 29 29 1 0.974609 0.974609
+30 29 30 1 0.95459 1
+30 29 31 1 0.925781 1
+30 30 0 1 1 0
+30 30 1 1 1 0
+30 30 2 1 1 0
+30 30 3 1 1 0
+30 30 4 1 1 0
+30 30 5 1 1 0
+30 30 6 1 1 0
+30 30 7 1 1 0
+30 30 8 1 1 0
+30 30 9 1 1 0
+30 30 10 1 1 0
+30 30 11 1 1 0
+30 30 12 1 1 0
+30 30 13 1 1 0
+30 30 14 1 1 0
+30 30 15 1 1 0
+30 30 16 1 1 0
+30 30 17 1 1 0
+30 30 18 1 1 0
+30 30 19 1 1 0.218628
+30 30 20 1 1 0.346191
+30 30 21 1 1 0.439941
+30 30 22 1 1 0.519531
+30 30 23 1 1 0.588379
+30 30 24 1 1 0.649902
+30 30 25 1 1 0.711426
+30 30 26 1 1 0.773438
+30 30 27 1 1 0.834961
+30 30 28 1 1 0.894531
+30 30 29 1 1 0.95166
+30 30 30 1 1 1
+30 30 31 0.952148 0.976562 1
+30 31 0 1 1 0
+30 31 1 1 1 0
+30 31 2 1 1 0
+30 31 3 1 1 0
+30 31 4 1 1 0
+30 31 5 1 1 0
+30 31 6 1 1 0
+30 31 7 1 1 0
+30 31 8 1 1 0
+30 31 9 1 1 0
+30 31 10 1 1 0
+30 31 11 1 1 0
+30 31 12 1 1 0
+30 31 13 1 1 0
+30 31 14 1 1 0
+30 31 15 1 1 0
+30 31 16 1 1 0
+30 31 17 1 1 0
+30 31 18 1 1 0
+30 31 19 1 1 0.102783
+30 31 20 1 1 0.292969
+30 31 21 1 1 0.396729
+30 31 22 1 1 0.480225
+30 31 23 1 1 0.550781
+30 31 24 1 1 0.61377
+30 31 25 1 1 0.67627
+30 31 26 1 1 0.73877
+30 31 27 1 1 0.80127
+30 31 28 1 1 0.862305
+30 31 29 0.974121 1 0.921387
+30 31 30 0.935059 1 0.977539
+30 31 31 0.887695 1 1
+31 0 0 1 0 0
+31 0 1 1 0 0
+31 0 2 1 0 0
+31 0 3 1 0 0
+31 0 4 1 0 0
+31 0 5 1 0 0
+31 0 6 1 0 0
+31 0 7 1 0 0
+31 0 8 1 0 0
+31 0 9 1 0 0
+31 0 10 1 0 0
+31 0 11 1 0 0
+31 0 12 1 0 0
+31 0 13 1 0 0
+31 0 14 1 0 0
+31 0 15 1 0 0
+31 0 16 1 0 0
+31 0 17 1 0 0
+31 0 18 1 0 0
+31 0 19 1 0 0.22876
+31 0 20 1 0 0.372314
+31 0 21 1 0 0.479004
+31 0 22 1 0 0.568359
+31 0 23 1 0 0.648438
+31 0 24 1 0 0.719727
+31 0 25 1 0 0.790039
+31 0 26 1 0 0.856445
+31 0 27 1 0 0.917969
+31 0 28 1 0 0.973145
+31 0 29 1 0.168335 1
+31 0 30 1 0.214233 1
+31 0 31 1 0.233154 1
+31 1 0 1 0 0
+31 1 1 1 0 0
+31 1 2 1 0 0
+31 1 3 1 0 0
+31 1 4 1 0 0
+31 1 5 1 0 0
+31 1 6 1 0 0
+31 1 7 1 0 0
+31 1 8 1 0 0
+31 1 9 1 0 0
+31 1 10 1 0 0
+31 1 11 1 0 0
+31 1 12 1 0 0
+31 1 13 1 0 0
+31 1 14 1 0 0
+31 1 15 1 0 0
+31 1 16 1 0 0
+31 1 17 1 0 0
+31 1 18 1 0 0
+31 1 19 1 0 0.22876
+31 1 20 1 0 0.372314
+31 1 21 1 0 0.479004
+31 1 22 1 0 0.568359
+31 1 23 1 0 0.648438
+31 1 24 1 0 0.719727
+31 1 25 1 0 0.790039
+31 1 26 1 0 0.856445
+31 1 27 1 0 0.917969
+31 1 28 1 0 0.973145
+31 1 29 1 0.168335 1
+31 1 30 1 0.214233 1
+31 1 31 1 0.233154 1
+31 2 0 1 0 0
+31 2 1 1 0 0
+31 2 2 1 0 0
+31 2 3 1 0 0
+31 2 4 1 0 0
+31 2 5 1 0 0
+31 2 6 1 0 0
+31 2 7 1 0 0
+31 2 8 1 0 0
+31 2 9 1 0 0
+31 2 10 1 0 0
+31 2 11 1 0 0
+31 2 12 1 0 0
+31 2 13 1 0 0
+31 2 14 1 0 0
+31 2 15 1 0 0
+31 2 16 1 0 0
+31 2 17 1 0 0
+31 2 18 1 0 0
+31 2 19 1 0 0.22876
+31 2 20 1 0 0.372314
+31 2 21 1 0 0.479004
+31 2 22 1 0 0.568359
+31 2 23 1 0 0.648438
+31 2 24 1 0 0.719727
+31 2 25 1 0 0.790039
+31 2 26 1 0 0.856445
+31 2 27 1 0 0.917969
+31 2 28 1 0 0.973145
+31 2 29 1 0.168335 1
+31 2 30 1 0.214355 1
+31 2 31 1 0.233154 1
+31 3 0 1 0 0
+31 3 1 1 0 0
+31 3 2 1 0 0
+31 3 3 1 0 0
+31 3 4 1 0 0
+31 3 5 1 0 0
+31 3 6 1 0 0
+31 3 7 1 0 0
+31 3 8 1 0 0
+31 3 9 1 0 0
+31 3 10 1 0 0
+31 3 11 1 0 0
+31 3 12 1 0 0
+31 3 13 1 0 0
+31 3 14 1 0 0
+31 3 15 1 0 0
+31 3 16 1 0 0
+31 3 17 1 0 0
+31 3 18 1 0 0
+31 3 19 1 0 0.22876
+31 3 20 1 0 0.372314
+31 3 21 1 0 0.479004
+31 3 22 1 0 0.568359
+31 3 23 1 0 0.648438
+31 3 24 1 0 0.719727
+31 3 25 1 0 0.790039
+31 3 26 1 0 0.856445
+31 3 27 1 0 0.917969
+31 3 28 1 0 0.973145
+31 3 29 1 0.168457 1
+31 3 30 1 0.214355 1
+31 3 31 1 0.233154 1
+31 4 0 1 0 0
+31 4 1 1 0 0
+31 4 2 1 0 0
+31 4 3 1 0 0
+31 4 4 1 0 0
+31 4 5 1 0 0
+31 4 6 1 0 0
+31 4 7 1 0 0
+31 4 8 1 0 0
+31 4 9 1 0 0
+31 4 10 1 0 0
+31 4 11 1 0 0
+31 4 12 1 0 0
+31 4 13 1 0 0
+31 4 14 1 0 0
+31 4 15 1 0 0
+31 4 16 1 0 0
+31 4 17 1 0 0
+31 4 18 1 0 0
+31 4 19 1 0 0.22876
+31 4 20 1 0 0.372314
+31 4 21 1 0 0.479004
+31 4 22 1 0 0.568359
+31 4 23 1 0 0.648438
+31 4 24 1 0 0.719727
+31 4 25 1 0 0.790039
+31 4 26 1 0 0.856445
+31 4 27 1 0 0.917969
+31 4 28 1 0 0.973145
+31 4 29 1 0.168457 1
+31 4 30 1 0.214355 1
+31 4 31 1 0.233276 1
+31 5 0 1 0 0
+31 5 1 1 0 0
+31 5 2 1 0 0
+31 5 3 1 0 0
+31 5 4 1 0 0
+31 5 5 1 0 0
+31 5 6 1 0 0
+31 5 7 1 0 0
+31 5 8 1 0 0
+31 5 9 1 0 0
+31 5 10 1 0 0
+31 5 11 1 0 0
+31 5 12 1 0 0
+31 5 13 1 0 0
+31 5 14 1 0 0
+31 5 15 1 0 0
+31 5 16 1 0 0
+31 5 17 1 0 0
+31 5 18 1 0 0
+31 5 19 1 0 0.228638
+31 5 20 1 0 0.372314
+31 5 21 1 0 0.479004
+31 5 22 1 0 0.568359
+31 5 23 1 0 0.648438
+31 5 24 1 0 0.719727
+31 5 25 1 0 0.790039
+31 5 26 1 0 0.856445
+31 5 27 1 0 0.917969
+31 5 28 1 0 0.973145
+31 5 29 1 0.168701 1
+31 5 30 1 0.214478 1
+31 5 31 1 0.233276 1
+31 6 0 1 0 0
+31 6 1 1 0 0
+31 6 2 1 0 0
+31 6 3 1 0 0
+31 6 4 1 0 0
+31 6 5 1 0 0
+31 6 6 1 0 0
+31 6 7 1 0 0
+31 6 8 1 0 0
+31 6 9 1 0 0
+31 6 10 1 0 0
+31 6 11 1 0 0
+31 6 12 1 0 0
+31 6 13 1 0 0
+31 6 14 1 0 0
+31 6 15 1 0 0
+31 6 16 1 0 0
+31 6 17 1 0 0
+31 6 18 1 0 0
+31 6 19 1 0 0.228638
+31 6 20 1 0 0.372314
+31 6 21 1 0 0.479004
+31 6 22 1 0 0.568359
+31 6 23 1 0 0.648438
+31 6 24 1 0 0.719727
+31 6 25 1 0 0.790039
+31 6 26 1 0 0.856445
+31 6 27 1 0 0.917969
+31 6 28 1 0 0.973145
+31 6 29 1 0.169067 1
+31 6 30 1 0.214722 1
+31 6 31 1 0.233521 1
+31 7 0 1 0 0
+31 7 1 1 0 0
+31 7 2 1 0 0
+31 7 3 1 0 0
+31 7 4 1 0 0
+31 7 5 1 0 0
+31 7 6 1 0 0
+31 7 7 1 0 0
+31 7 8 1 0 0
+31 7 9 1 0 0
+31 7 10 1 0 0
+31 7 11 1 0 0
+31 7 12 1 0 0
+31 7 13 1 0 0
+31 7 14 1 0 0
+31 7 15 1 0 0
+31 7 16 1 0 0
+31 7 17 1 0 0
+31 7 18 1 0 0
+31 7 19 1 0 0.228638
+31 7 20 1 0 0.372314
+31 7 21 1 0 0.479004
+31 7 22 1 0 0.568359
+31 7 23 1 0 0.648438
+31 7 24 1 0 0.719727
+31 7 25 1 0 0.790039
+31 7 26 1 0 0.856445
+31 7 27 1 0 0.917969
+31 7 28 1 0 0.973145
+31 7 29 1 0.169678 1
+31 7 30 1 0.21521 1
+31 7 31 1 0.233887 1
+31 8 0 1 0 0
+31 8 1 1 0 0
+31 8 2 1 0 0
+31 8 3 1 0 0
+31 8 4 1 0 0
+31 8 5 1 0 0
+31 8 6 1 0 0
+31 8 7 1 0 0
+31 8 8 1 0 0
+31 8 9 1 0 0
+31 8 10 1 0 0
+31 8 11 1 0 0
+31 8 12 1 0 0
+31 8 13 1 0 0
+31 8 14 1 0 0
+31 8 15 1 0 0
+31 8 16 1 0 0
+31 8 17 1 0 0
+31 8 18 1 0 0
+31 8 19 1 0 0.228516
+31 8 20 1 0 0.372314
+31 8 21 1 0 0.479004
+31 8 22 1 0 0.568359
+31 8 23 1 0 0.648438
+31 8 24 1 0 0.719727
+31 8 25 1 0 0.789551
+31 8 26 1 0 0.856445
+31 8 27 1 0 0.917969
+31 8 28 1 0 0.973145
+31 8 29 1 0.171021 1
+31 8 30 1 0.216187 1
+31 8 31 1 0.234619 1
+31 9 0 1 0 0
+31 9 1 1 0 0
+31 9 2 1 0 0
+31 9 3 1 0 0
+31 9 4 1 0 0
+31 9 5 1 0 0
+31 9 6 1 0 0
+31 9 7 1 0 0
+31 9 8 1 0 0
+31 9 9 1 0 0
+31 9 10 1 0 0
+31 9 11 1 0 0
+31 9 12 1 0 0
+31 9 13 1 0 0
+31 9 14 1 0 0
+31 9 15 1 0 0
+31 9 16 1 0 0
+31 9 17 1 0 0
+31 9 18 1 0 0
+31 9 19 1 0 0.228271
+31 9 20 1 0 0.37207
+31 9 21 1 0 0.47876
+31 9 22 1 0 0.568359
+31 9 23 1 0 0.648438
+31 9 24 1 0 0.719727
+31 9 25 1 0 0.789551
+31 9 26 1 0 0.856445
+31 9 27 1 0 0.917969
+31 9 28 1 0 0.973145
+31 9 29 1 0.173584 1
+31 9 30 1 0.217896 1
+31 9 31 1 0.236084 1
+31 10 0 1 0 0
+31 10 1 1 0 0
+31 10 2 1 0 0
+31 10 3 1 0 0
+31 10 4 1 0 0
+31 10 5 1 0 0
+31 10 6 1 0 0
+31 10 7 1 0 0
+31 10 8 1 0 0
+31 10 9 1 0 0
+31 10 10 1 0 0
+31 10 11 1 0 0
+31 10 12 1 0 0
+31 10 13 1 0 0
+31 10 14 1 0 0
+31 10 15 1 0 0
+31 10 16 1 0 0
+31 10 17 1 0 0
+31 10 18 1 0 0
+31 10 19 1 0 0.227783
+31 10 20 1 0 0.371826
+31 10 21 1 0 0.47876
+31 10 22 1 0 0.568359
+31 10 23 1 0 0.647949
+31 10 24 1 0 0.719727
+31 10 25 1 0 0.789551
+31 10 26 1 0 0.856445
+31 10 27 1 0 0.917969
+31 10 28 1 0 0.973145
+31 10 29 1 0.178101 1
+31 10 30 1 0.220947 1
+31 10 31 1 0.238647 1
+31 11 0 1 0 0
+31 11 1 1 0 0
+31 11 2 1 0 0
+31 11 3 1 0 0
+31 11 4 1 0 0
+31 11 5 1 0 0
+31 11 6 1 0 0
+31 11 7 1 0 0
+31 11 8 1 0 0
+31 11 9 1 0 0
+31 11 10 1 0 0
+31 11 11 1 0 0
+31 11 12 1 0 0
+31 11 13 1 0 0
+31 11 14 1 0 0
+31 11 15 1 0 0
+31 11 16 1 0 0
+31 11 17 1 0 0
+31 11 18 1 0 0
+31 11 19 1 0 0.227051
+31 11 20 1 0 0.371338
+31 11 21 1 0 0.478516
+31 11 22 1 0 0.568359
+31 11 23 1 0 0.647949
+31 11 24 1 0 0.719727
+31 11 25 1 0 0.789551
+31 11 26 1 0 0.856445
+31 11 27 1 0 0.917969
+31 11 28 1 0 0.973145
+31 11 29 1 0.185547 1
+31 11 30 1 0.226318 1
+31 11 31 1 0.243042 1
+31 12 0 1 0 0
+31 12 1 1 0 0
+31 12 2 1 0 0
+31 12 3 1 0 0
+31 12 4 1 0 0
+31 12 5 1 0 0
+31 12 6 1 0 0
+31 12 7 1 0 0
+31 12 8 1 0 0
+31 12 9 1 0 0
+31 12 10 1 0 0
+31 12 11 1 0 0
+31 12 12 1 0 0
+31 12 13 1 0 0
+31 12 14 1 0 0
+31 12 15 1 0 0
+31 12 16 1 0 0
+31 12 17 1 0 0
+31 12 18 1 0 0
+31 12 19 1 0 0.22583
+31 12 20 1 0 0.37085
+31 12 21 1 0 0.478271
+31 12 22 1 0 0.567871
+31 12 23 1 0 0.647461
+31 12 24 1 0 0.719238
+31 12 25 1 0 0.789551
+31 12 26 1 0 0.855957
+31 12 27 1 0 0.917969
+31 12 28 1 0 0.973145
+31 12 29 1 0.197388 1
+31 12 30 1 0.234985 1
+31 12 31 1 0.250244 1
+31 13 0 1 0 0
+31 13 1 1 0 0
+31 13 2 1 0 0
+31 13 3 1 0 0
+31 13 4 1 0 0
+31 13 5 1 0 0
+31 13 6 1 0 0
+31 13 7 1 0 0
+31 13 8 1 0 0
+31 13 9 1 0 0
+31 13 10 1 0 0
+31 13 11 1 0 0
+31 13 12 1 0 0
+31 13 13 1 0 0
+31 13 14 1 0 0
+31 13 15 1 0 0
+31 13 16 1 0 0
+31 13 17 1 0 0
+31 13 18 1 0 0
+31 13 19 1 0 0.223877
+31 13 20 1 0 0.369629
+31 13 21 1 0 0.477783
+31 13 22 1 0 0.567383
+31 13 23 1 0 0.646973
+31 13 24 1 0 0.71875
+31 13 25 1 0 0.789062
+31 13 26 1 0 0.855957
+31 13 27 1 0 0.91748
+31 13 28 1 0.0773926 0.973145
+31 13 29 1 0.214966 1
+31 13 30 1 0.248291 1
+31 13 31 1 0.261719 1
+31 14 0 1 0 0
+31 14 1 1 0 0
+31 14 2 1 0 0
+31 14 3 1 0 0
+31 14 4 1 0 0
+31 14 5 1 0 0
+31 14 6 1 0 0
+31 14 7 1 0 0
+31 14 8 1 0 0
+31 14 9 1 0 0
+31 14 10 1 0 0
+31 14 11 1 0 0
+31 14 12 1 0 0
+31 14 13 1 0 0
+31 14 14 1 0 0
+31 14 15 1 0 0
+31 14 16 1 0 0
+31 14 17 1 0 0
+31 14 18 1 0 0
+31 14 19 1 0 0.220703
+31 14 20 1 0 0.367676
+31 14 21 1 0 0.477051
+31 14 22 1 0 0.566406
+31 14 23 1 0 0.646484
+31 14 24 1 0 0.718262
+31 14 25 1 0 0.788574
+31 14 26 1 0 0.855469
+31 14 27 1 0 0.91748
+31 14 28 1 0.145142 0.973145
+31 14 29 1 0.23938 1
+31 14 30 1 0.267578 1
+31 14 31 1 0.27832 1
+31 15 0 1 0 0
+31 15 1 1 0 0
+31 15 2 1 0 0
+31 15 3 1 0 0
+31 15 4 1 0 0
+31 15 5 1 0 0
+31 15 6 1 0 0
+31 15 7 1 0 0
+31 15 8 1 0 0
+31 15 9 1 0 0
+31 15 10 1 0 0
+31 15 11 1 0 0
+31 15 12 1 0 0
+31 15 13 1 0 0
+31 15 14 1 0 0
+31 15 15 1 0 0
+31 15 16 1 0 0
+31 15 17 1 0 0
+31 15 18 1 0 0
+31 15 19 1 0 0.216064
+31 15 20 1 0 0.36499
+31 15 21 1 0 0.474854
+31 15 22 1 0 0.56543
+31 15 23 1 0 0.64502
+31 15 24 1 0 0.716797
+31 15 25 1 0 0.787598
+31 15 26 1 0 0.85498
+31 15 27 1 0 0.916992
+31 15 28 1 0.201294 0.972656
+31 15 29 1 0.270996 1
+31 15 30 1 0.293945 1
+31 15 31 1 0.301514 1
+31 16 0 1 0 0
+31 16 1 1 0 0
+31 16 2 1 0 0
+31 16 3 1 0 0
+31 16 4 1 0 0
+31 16 5 1 0 0
+31 16 6 1 0 0
+31 16 7 1 0 0
+31 16 8 1 0 0
+31 16 9 1 0 0
+31 16 10 1 0 0
+31 16 11 1 0 0
+31 16 12 1 0 0
+31 16 13 1 0 0
+31 16 14 1 0 0
+31 16 15 1 0 0
+31 16 16 1 0 0
+31 16 17 1 0 0
+31 16 18 1 0 0
+31 16 19 1 0 0.209473
+31 16 20 1 0 0.361328
+31 16 21 1 0 0.47168
+31 16 22 1 0 0.563477
+31 16 23 1 0 0.643555
+31 16 24 1 0 0.715332
+31 16 25 1 0 0.786133
+31 16 26 1 0 0.853516
+31 16 27 1 0.134277 0.916016
+31 16 28 1 0.257324 0.972168
+31 16 29 1 0.310059 1
+31 16 30 1 0.327637 1
+31 16 31 1 0.331543 1
+31 17 0 1 0 0
+31 17 1 1 0 0
+31 17 2 1 0 0
+31 17 3 1 0 0
+31 17 4 1 0 0
+31 17 5 1 0 0
+31 17 6 1 0 0
+31 17 7 1 0 0
+31 17 8 1 0 0
+31 17 9 1 0 0
+31 17 10 1 0 0
+31 17 11 1 0 0
+31 17 12 1 0 0
+31 17 13 1 0 0
+31 17 14 1 0 0
+31 17 15 1 0 0
+31 17 16 1 0 0
+31 17 17 1 0 0
+31 17 18 1 0 0
+31 17 19 1 0 0.20105
+31 17 20 1 0 0.356445
+31 17 21 1 0 0.467529
+31 17 22 1 0 0.561523
+31 17 23 1 0 0.640625
+31 17 24 1 0 0.712891
+31 17 25 1 0 0.783691
+31 17 26 1 0.0964966 0.852051
+31 17 27 1 0.240356 0.915039
+31 17 28 1 0.314453 0.971191
+31 17 29 1 0.35498 1
+31 17 30 1 0.367432 1
+31 17 31 1 0.36792 1
+31 18 0 1 0.123535 0
+31 18 1 1 0.123535 0
+31 18 2 1 0.123535 0
+31 18 3 1 0.123535 0
+31 18 4 1 0.123535 0
+31 18 5 1 0.123596 0
+31 18 6 1 0.123657 0
+31 18 7 1 0.123779 0
+31 18 8 1 0.123962 0
+31 18 9 1 0.12439 0
+31 18 10 1 0.125122 0
+31 18 11 1 0.126465 0
+31 18 12 1 0.12854 0
+31 18 13 1 0.13208 0
+31 18 14 1 0.137329 0
+31 18 15 1 0.144775 0
+31 18 16 1 0.154663 0
+31 18 17 1 0.156128 0
+31 18 18 1 0.148926 0
+31 18 19 1 0.130493 0.191772
+31 18 20 1 0.108459 0.351074
+31 18 21 1 0.0900879 0.462402
+31 18 22 1 0.0997314 0.557617
+31 18 23 1 0.0982666 0.637695
+31 18 24 1 0.128418 0.709473
+31 18 25 1 0.187378 0.780762
+31 18 26 1 0.254883 0.849609
+31 18 27 1 0.319824 0.913574
+31 18 28 1 0.37207 0.970215
+31 18 29 1 0.403564 1
+31 18 30 1 0.411865 1
+31 18 31 1 0.408936 1
+31 19 0 1 0.298828 0
+31 19 1 1 0.298828 0
+31 19 2 1 0.298828 0
+31 19 3 1 0.298828 0
+31 19 4 1 0.298828 0
+31 19 5 1 0.298828 0
+31 19 6 1 0.298828 0
+31 19 7 1 0.298828 0
+31 19 8 1 0.299072 0
+31 19 9 1 0.299072 0
+31 19 10 1 0.299316 0
+31 19 11 1 0.299805 0
+31 19 12 1 0.300293 0
+31 19 13 1 0.301514 0
+31 19 14 1 0.303223 0
+31 19 15 1 0.305664 0
+31 19 16 1 0.309326 0
+31 19 17 1 0.309814 0
+31 19 18 1 0.307617 0
+31 19 19 1 0.302979 0.18335
+31 19 20 1 0.298096 0.345703
+31 19 21 1 0.293945 0.457031
+31 19 22 1 0.293701 0.552246
+31 19 23 1 0.297363 0.634277
+31 19 24 1 0.300049 0.705566
+31 19 25 1 0.31665 0.776855
+31 19 26 1 0.349121 0.84668
+31 19 27 1 0.390381 0.911133
+31 19 28 1 0.429199 0.968262
+31 19 29 1 0.453857 1
+31 19 30 1 0.458496 1
+31 19 31 1 0.452637 1
+31 20 0 1 0.401367 0
+31 20 1 1 0.401367 0
+31 20 2 1 0.401367 0
+31 20 3 1 0.401367 0
+31 20 4 1 0.401367 0
+31 20 5 1 0.401367 0
+31 20 6 1 0.401367 0
+31 20 7 1 0.401367 0
+31 20 8 1 0.401367 0
+31 20 9 1 0.401611 0
+31 20 10 1 0.401611 0
+31 20 11 1 0.401855 0
+31 20 12 1 0.402344 0
+31 20 13 1 0.403076 0
+31 20 14 1 0.404053 0
+31 20 15 1 0.405762 0
+31 20 16 1 0.408203 0
+31 20 17 1 0.408691 0
+31 20 18 1 0.407959 0
+31 20 19 1 0.406494 0.178589
+31 20 20 1 0.404053 0.341797
+31 20 21 1 0.401855 0.452393
+31 20 22 1 0.400391 0.546387
+31 20 23 1 0.402344 0.628906
+31 20 24 1 0.40332 0.700684
+31 20 25 1 0.409424 0.771973
+31 20 26 1 0.427246 0.842285
+31 20 27 1 0.455322 0.907715
+31 20 28 1 0.484619 0.96582
+31 20 29 1 0.503906 1
+31 20 30 1 0.505859 1
+31 20 31 1 0.49707 1
+31 21 0 1 0.485596 0
+31 21 1 1 0.485596 0
+31 21 2 1 0.485596 0
+31 21 3 1 0.485596 0
+31 21 4 1 0.485596 0
+31 21 5 1 0.485596 0
+31 21 6 1 0.485596 0
+31 21 7 1 0.485596 0
+31 21 8 1 0.485596 0
+31 21 9 1 0.48584 0
+31 21 10 1 0.48584 0
+31 21 11 1 0.486084 0
+31 21 12 1 0.486328 0
+31 21 13 1 0.486816 0
+31 21 14 1 0.487793 0
+31 21 15 1 0.489014 0
+31 21 16 1 0.490723 0
+31 21 17 1 0.491455 0
+31 21 18 1 0.492188 0
+31 21 19 1 0.492188 0.180054
+31 21 20 1 0.491455 0.339844
+31 21 21 1 0.490234 0.448486
+31 21 22 1 0.48877 0.541016
+31 21 23 1 0.488281 0.62207
+31 21 24 1 0.490723 0.695801
+31 21 25 1 0.490479 0.766113
+31 21 26 1 0.499023 0.836914
+31 21 27 1 0.51709 0.90332
+31 21 28 1 0.539062 0.962402
+31 21 29 1 0.553711 1
+31 21 30 1 0.553223 1
+31 21 31 1 0.541992 1
+31 22 0 1 0.559082 0
+31 22 1 1 0.559082 0
+31 22 2 1 0.559082 0
+31 22 3 1 0.559082 0
+31 22 4 1 0.559082 0
+31 22 5 1 0.559082 0
+31 22 6 1 0.559082 0
+31 22 7 1 0.559082 0
+31 22 8 1 0.559082 0
+31 22 9 1 0.559082 0
+31 22 10 1 0.559082 0
+31 22 11 1 0.55957 0
+31 22 12 1 0.55957 0
+31 22 13 1 0.560059 0
+31 22 14 1 0.560547 0
+31 22 15 1 0.561523 0
+31 22 16 1 0.562988 0
+31 22 17 1 0.564453 0
+31 22 18 1 0.565918 0
+31 22 19 1 0.567383 0.188721
+31 22 20 1 0.567871 0.34082
+31 22 21 1 0.567871 0.446533
+31 22 22 1 0.566406 0.536621
+31 22 23 1 0.564941 0.615723
+31 22 24 1 0.564453 0.687988
+31 22 25 1 0.564453 0.759766
+31 22 26 1 0.565918 0.830078
+31 22 27 1 0.576172 0.897949
+31 22 28 1 0.591309 0.958496
+31 22 29 1 0.602539 1
+31 22 30 1 0.599609 1
+31 22 31 1 0.586914 1
+31 23 0 1 0.623047 0
+31 23 1 1 0.623047 0
+31 23 2 1 0.623047 0
+31 23 3 1 0.623047 0
+31 23 4 1 0.623047 0
+31 23 5 1 0.623047 0
+31 23 6 1 0.623047 0
+31 23 7 1 0.623047 0
+31 23 8 1 0.623047 0
+31 23 9 1 0.623047 0
+31 23 10 1 0.623047 0
+31 23 11 1 0.623535 0
+31 23 12 1 0.623535 0
+31 23 13 1 0.624023 0
+31 23 14 1 0.624512 0
+31 23 15 1 0.625488 0
+31 23 16 1 0.626465 0
+31 23 17 1 0.628418 0
+31 23 18 1 0.630859 0
+31 23 19 1 0.632812 0.203003
+31 23 20 1 0.634277 0.344971
+31 23 21 1 0.635254 0.446777
+31 23 22 1 0.634766 0.53418
+31 23 23 1 0.633301 0.61084
+31 23 24 1 0.631348 0.681152
+31 23 25 1 0.629883 0.752441
+31 23 26 1 0.62793 0.822754
+31 23 27 1 0.630859 0.891113
+31 23 28 1 0.640625 0.953125
+31 23 29 1 0.648438 1
+31 23 30 1 0.644043 1
+31 23 31 1 0.629395 1
+31 24 0 1 0.680664 0
+31 24 1 1 0.680664 0
+31 24 2 1 0.680664 0
+31 24 3 1 0.680664 0
+31 24 4 1 0.680664 0
+31 24 5 1 0.680664 0
+31 24 6 1 0.680664 0
+31 24 7 1 0.680664 0
+31 24 8 1 0.680664 0
+31 24 9 1 0.680664 0
+31 24 10 1 0.680664 0
+31 24 11 1 0.680664 0
+31 24 12 1 0.681152 0
+31 24 13 1 0.681152 0
+31 24 14 1 0.681641 0
+31 24 15 1 0.682129 0
+31 24 16 1 0.683105 0
+31 24 17 1 0.685059 0
+31 24 18 1 0.687988 0
+31 24 19 1 0.690918 0.219971
+31 24 20 1 0.693359 0.351318
+31 24 21 1 0.694824 0.448975
+31 24 22 1 0.695312 0.533203
+31 24 23 1 0.693848 0.607422
+31 24 24 1 0.691895 0.674805
+31 24 25 1 0.688477 0.744141
+31 24 26 1 0.685547 0.814941
+31 24 27 1 0.683105 0.883301
+31 24 28 1 0.687012 0.946777
+31 24 29 1 0.691895 1
+31 24 30 1 0.686035 1
+31 24 31 1 0.669922 1
+31 25 0 1 0.737305 0
+31 25 1 1 0.737305 0
+31 25 2 1 0.737305 0
+31 25 3 1 0.737305 0
+31 25 4 1 0.737305 0
+31 25 5 1 0.737305 0
+31 25 6 1 0.737305 0
+31 25 7 1 0.737305 0
+31 25 8 1 0.737305 0
+31 25 9 1 0.737305 0
+31 25 10 1 0.737305 0
+31 25 11 1 0.737793 0
+31 25 12 1 0.737793 0
+31 25 13 1 0.737793 0
+31 25 14 1 0.738281 0
+31 25 15 1 0.73877 0
+31 25 16 1 0.739746 0
+31 25 17 1 0.741699 0
+31 25 18 1 0.744629 0
+31 25 19 1 0.748047 0.238403
+31 25 20 1 0.750977 0.359619
+31 25 21 1 0.753418 0.452637
+31 25 22 1 0.754395 0.533203
+31 25 23 1 0.753906 0.604492
+31 25 24 1 0.752441 0.669922
+31 25 25 1 0.748535 0.736328
+31 25 26 1 0.743652 0.805176
+31 25 27 1 0.738281 0.873535
+31 25 28 1 0.73584 0.938477
+31 25 29 1 0.737305 0.995605
+31 25 30 1 0.730469 1
+31 25 31 1 0.712891 1
+31 26 0 1 0.793945 0
+31 26 1 1 0.793945 0
+31 26 2 1 0.793945 0
+31 26 3 1 0.793945 0
+31 26 4 1 0.793945 0
+31 26 5 1 0.793945 0
+31 26 6 1 0.793945 0
+31 26 7 1 0.793945 0
+31 26 8 1 0.793945 0
+31 26 9 1 0.793945 0
+31 26 10 1 0.793945 0
+31 26 11 1 0.793945 0
+31 26 12 1 0.793945 0
+31 26 13 1 0.794434 0
+31 26 14 1 0.794434 0
+31 26 15 1 0.794922 0
+31 26 16 1 0.795898 0
+31 26 17 1 0.797363 0
+31 26 18 1 0.800781 0
+31 26 19 1 0.804199 0.255127
+31 26 20 1 0.807617 0.367676
+31 26 21 1 0.810547 0.456787
+31 26 22 1 0.8125 0.534668
+31 26 23 1 0.812988 0.603027
+31 26 24 1 0.812012 0.665527
+31 26 25 1 0.808594 0.729004
+31 26 26 1 0.803223 0.794922
+31 26 27 1 0.795898 0.862305
+31 26 28 1 0.788086 0.927734
+31 26 29 1 0.784668 0.986816
+31 26 30 1 0.776855 1
+31 26 31 1 0.757812 1
+31 27 0 1 0.849609 0
+31 27 1 1 0.849609 0
+31 27 2 1 0.849609 0
+31 27 3 1 0.849609 0
+31 27 4 1 0.849609 0
+31 27 5 1 0.849609 0
+31 27 6 1 0.849609 0
+31 27 7 1 0.849609 0
+31 27 8 1 0.849609 0
+31 27 9 1 0.849609 0
+31 27 10 1 0.849609 0
+31 27 11 1 0.849609 0
+31 27 12 1 0.849609 0
+31 27 13 1 0.850098 0
+31 27 14 1 0.850098 0
+31 27 15 1 0.850586 0
+31 27 16 1 0.851074 0
+31 27 17 1 0.852051 0
+31 27 18 1 0.855957 0
+31 27 19 1 0.859375 0.265625
+31 27 20 1 0.863281 0.372803
+31 27 21 1 0.866211 0.458984
+31 27 22 1 0.868652 0.534668
+31 27 23 1 0.869629 0.601074
+31 27 24 1 0.869141 0.661621
+31 27 25 1 0.867188 0.722656
+31 27 26 1 0.862793 0.784668
+31 27 27 1 0.854492 0.849121
+31 27 28 1 0.844238 0.914062
+31 27 29 1 0.834961 0.975098
+31 27 30 1 0.825684 1
+31 27 31 1 0.805664 1
+31 28 0 1 0.903809 0
+31 28 1 1 0.903809 0
+31 28 2 1 0.903809 0
+31 28 3 1 0.903809 0
+31 28 4 1 0.903809 0
+31 28 5 1 0.903809 0
+31 28 6 1 0.903809 0
+31 28 7 1 0.903809 0
+31 28 8 1 0.903809 0
+31 28 9 1 0.903809 0
+31 28 10 1 0.903809 0
+31 28 11 1 0.903809 0
+31 28 12 1 0.903809 0
+31 28 13 1 0.903809 0
+31 28 14 1 0.904297 0
+31 28 15 1 0.904297 0
+31 28 16 1 0.904785 0
+31 28 17 1 0.905762 0
+31 28 18 1 0.90918 0
+31 28 19 1 0.912598 0.26416
+31 28 20 1 0.916504 0.370117
+31 28 21 1 0.919922 0.455566
+31 28 22 1 0.922363 0.530273
+31 28 23 1 0.923828 0.595703
+31 28 24 1 0.923828 0.655273
+31 28 25 1 0.922852 0.714844
+31 28 26 1 0.918945 0.775391
+31 28 27 1 0.912109 0.836426
+31 28 28 1 0.901367 0.897949
+31 28 29 1 0.887695 0.959961
+31 28 30 1 0.875488 1
+31 28 31 1 0.85498 1
+31 29 0 1 0.956055 0
+31 29 1 1 0.956055 0
+31 29 2 1 0.956055 0
+31 29 3 1 0.956055 0
+31 29 4 1 0.956055 0
+31 29 5 1 0.956055 0
+31 29 6 1 0.956055 0
+31 29 7 1 0.956055 0
+31 29 8 1 0.956055 0
+31 29 9 1 0.956055 0
+31 29 10 1 0.956055 0
+31 29 11 1 0.956055 0
+31 29 12 1 0.956055 0
+31 29 13 1 0.956055 0
+31 29 14 1 0.956055 0
+31 29 15 1 0.956543 0
+31 29 16 1 0.957031 0
+31 29 17 1 0.957031 0
+31 29 18 1 0.960449 0
+31 29 19 1 0.964355 0.243896
+31 29 20 1 0.967773 0.355225
+31 29 21 1 0.971191 0.442139
+31 29 22 1 0.973633 0.517578
+31 29 23 1 0.975586 0.583496
+31 29 24 1 0.975586 0.643066
+31 29 25 1 0.975098 0.702637
+31 29 26 1 0.972168 0.762695
+31 29 27 1 0.966309 0.822754
+31 29 28 1 0.957031 0.882324
+31 29 29 1 0.942871 0.941406
+31 29 30 1 0.92627 0.998535
+31 29 31 1 0.905762 1
+31 30 0 1 1 0
+31 30 1 1 1 0
+31 30 2 1 1 0
+31 30 3 1 1 0
+31 30 4 1 1 0
+31 30 5 1 1 0
+31 30 6 1 1 0
+31 30 7 1 1 0
+31 30 8 1 1 0
+31 30 9 1 1 0
+31 30 10 1 1 0
+31 30 11 1 1 0
+31 30 12 1 1 0
+31 30 13 1 1 0
+31 30 14 1 1 0
+31 30 15 1 1 0
+31 30 16 1 1 0
+31 30 17 1 1 0
+31 30 18 1 1 0
+31 30 19 1 1 0.194458
+31 30 20 1 1 0.323975
+31 30 21 1 1 0.41626
+31 30 22 1 1 0.493896
+31 30 23 1 1 0.561035
+31 30 24 1 1 0.621094
+31 30 25 1 1 0.681641
+31 30 26 1 1 0.742676
+31 30 27 1 1 0.803711
+31 30 28 1 1 0.86377
+31 30 29 1 0.995605 0.921875
+31 30 30 1 0.978027 0.977539
+31 30 31 1 0.956543 1
+31 31 0 1 1 0
+31 31 1 1 1 0
+31 31 2 1 1 0
+31 31 3 1 1 0
+31 31 4 1 1 0
+31 31 5 1 1 0
+31 31 6 1 1 0
+31 31 7 1 1 0
+31 31 8 1 1 0
+31 31 9 1 1 0
+31 31 10 1 1 0
+31 31 11 1 1 0
+31 31 12 1 1 0
+31 31 13 1 1 0
+31 31 14 1 1 0
+31 31 15 1 1 0
+31 31 16 1 1 0
+31 31 17 1 1 0
+31 31 18 1 1 0
+31 31 19 1 1 0.0531921
+31 31 20 1 1 0.274902
+31 31 21 1 1 0.377686
+31 31 22 1 1 0.459473
+31 31 23 1 1 0.528809
+31 31 24 1 1 0.589844
+31 31 25 1 1 0.651367
+31 31 26 1 1 0.712891
+31 31 27 1 1 0.774902
+31 31 28 1 1 0.836426
+31 31 29 1 1 0.896484
+31 31 30 1 1 0.954102
+31 31 31 1 1 1
diff --git a/release/datafiles/colormanagement/luts/rrt_ut33_sRGB.spi3d b/release/datafiles/colormanagement/luts/rrt_ut33_sRGB.spi3d
new file mode 100644
index 00000000000..5352818938e
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/rrt_ut33_sRGB.spi3d
@@ -0,0 +1,32771 @@
+SPILUT 1.0
+3 3
+32 32 32
+0 0 0 2.38419e-07 2.38419e-07 2.38419e-07
+0 0 1 1.80006e-05 2.22325e-05 3.59416e-05
+0 0 2 5.01275e-05 0.000101984 0.00026989
+0 0 3 0 0.000243306 0.00105286
+0 0 4 0 0.000452042 0.00313377
+0 0 5 0 0.000667572 0.00704575
+0 0 6 0 0.000929356 0.0136871
+0 0 7 0 0.00136375 0.025528
+0 0 8 0 0.00218201 0.0471802
+0 0 9 0 0.00376129 0.078125
+0 0 10 0 0.00685883 0.119446
+0 0 11 0 0.0127869 0.173584
+0 0 12 0 0.022995 0.238647
+0 0 13 0 0.0393982 0.313721
+0 0 14 0 0.0606995 0.397705
+0 0 15 0 0.0838623 0.48877
+0 0 16 0 0.108215 0.584473
+0 0 17 0 0.131958 0.677734
+0 0 18 0 0.154053 0.764648
+0 0 19 0 0.173584 0.841309
+0 0 20 0 0.184448 0.884277
+0 0 21 0 0.186646 0.892578
+0 0 22 0 0.188843 0.901367
+0 0 23 0 0.191162 0.910645
+0 0 24 0 0.193481 0.919434
+0 0 25 0 0.196045 0.929688
+0 0 26 0 0.198853 0.940918
+0 0 27 0 0.202026 0.953125
+0 0 28 0 0.205566 0.967285
+0 0 29 0 0.209351 0.982422
+0 0 30 0 0.213379 0.997559
+0 0 31 0 0.217407 1
+0 1 0 7.689e-06 1.96099e-05 1.17421e-05
+0 1 1 1.69277e-05 6.07371e-05 6.07371e-05
+0 1 2 1.46627e-05 0.000169992 0.000286579
+0 1 3 0 0.000364542 0.00103855
+0 1 4 0 0.000647068 0.00309181
+0 1 5 0 0.000905991 0.0070076
+0 1 6 0 0.00117683 0.0136642
+0 1 7 0 0.00160503 0.0255127
+0 1 8 0 0.0024147 0.0471497
+0 1 9 0 0.00399017 0.078125
+0 1 10 0 0.00709152 0.119446
+0 1 11 0 0.013031 0.173584
+0 1 12 0 0.0232391 0.238647
+0 1 13 0 0.0396423 0.313477
+0 1 14 0 0.0608826 0.397705
+0 1 15 0 0.0839844 0.48877
+0 1 16 0 0.108337 0.584473
+0 1 17 0 0.13208 0.677734
+0 1 18 0 0.154053 0.764648
+0 1 19 0 0.173584 0.841309
+0 1 20 0 0.184448 0.884277
+0 1 21 0 0.186646 0.892578
+0 1 22 0 0.188843 0.901367
+0 1 23 0 0.191162 0.910645
+0 1 24 0 0.193481 0.919434
+0 1 25 0 0.196045 0.929688
+0 1 26 0 0.198853 0.940918
+0 1 27 0 0.202026 0.953125
+0 1 28 0 0.205566 0.967285
+0 1 29 0 0.209351 0.982422
+0 1 30 0 0.213379 0.997559
+0 1 31 0 0.217407 1
+0 2 0 0 0.00016427 5.29289e-05
+0 2 1 0 0.00021255 0.000121236
+0 2 2 0 0.000342846 0.000342846
+0 2 3 0 0.000599384 0.00105
+0 2 4 0 0.000994682 0.00304222
+0 2 5 0 0.00132942 0.00695038
+0 2 6 0 0.00161743 0.0136261
+0 2 7 0 0.00203514 0.0254822
+0 2 8 0 0.0028286 0.0471497
+0 2 9 0 0.00439453 0.078064
+0 2 10 0 0.00750351 0.119385
+0 2 11 0 0.0134659 0.173584
+0 2 12 0 0.0236969 0.238647
+0 2 13 0 0.0401001 0.313477
+0 2 14 0 0.0612183 0.397705
+0 2 15 0 0.0842285 0.48877
+0 2 16 0 0.108521 0.584473
+0 2 17 0 0.132202 0.677734
+0 2 18 0 0.154175 0.764648
+0 2 19 0 0.173706 0.841309
+0 2 20 0 0.18457 0.884277
+0 2 21 0 0.186646 0.892578
+0 2 22 0 0.188965 0.901367
+0 2 23 0 0.191284 0.910645
+0 2 24 0 0.193481 0.919922
+0 2 25 0 0.196045 0.929688
+0 2 26 0 0.198975 0.940918
+0 2 27 0 0.202026 0.953125
+0 2 28 0 0.205688 0.967285
+0 2 29 0 0.209473 0.982422
+0 2 30 0 0.213379 0.997559
+0 2 31 0 0.217407 1
+0 3 0 0 0.000727177 0.000105023
+0 3 1 0 0.000748158 0.000217199
+0 3 2 0 0.000852585 0.000465155
+0 3 3 0 0.00113487 0.00113487
+0 3 4 0 0.00165367 0.00300789
+0 3 5 0 0.00210381 0.00685501
+0 3 6 0 0.00242424 0.0135498
+0 3 7 0 0.00282097 0.0254059
+0 3 8 0 0.00358772 0.0470886
+0 3 9 0 0.00513458 0.0780029
+0 3 10 0 0.00826263 0.119385
+0 3 11 0 0.0142593 0.173584
+0 3 12 0 0.0245209 0.238525
+0 3 13 0 0.0408936 0.313477
+0 3 14 0 0.0618286 0.397705
+0 3 15 0 0.0847168 0.48877
+0 3 16 0 0.108826 0.584473
+0 3 17 0 0.132446 0.677734
+0 3 18 0 0.154419 0.764648
+0 3 19 0 0.173828 0.841309
+0 3 20 0 0.184692 0.884277
+0 3 21 0 0.186768 0.892578
+0 3 22 0 0.188965 0.901367
+0 3 23 0 0.191284 0.910645
+0 3 24 0 0.193604 0.919922
+0 3 25 0 0.196167 0.929688
+0 3 26 0 0.198975 0.940918
+0 3 27 0 0.202148 0.953125
+0 3 28 0 0.205688 0.967285
+0 3 29 0 0.209473 0.982422
+0 3 30 0 0.213379 0.997559
+0 3 31 0 0.217529 1
+0 4 0 0 0.00237656 8.40425e-05
+0 4 1 0 0.00234985 0.00027585
+0 4 2 0 0.00237846 0.000622749
+0 4 3 0 0.00257874 0.00134659
+0 4 4 0 0.00304222 0.00304413
+0 4 5 0 0.00357819 0.00671768
+0 4 6 0 0.00394821 0.0133972
+0 4 7 0 0.00431061 0.0252838
+0 4 8 0 0.00502014 0.0469971
+0 4 9 0 0.00653839 0.0779419
+0 4 10 0 0.00968933 0.119263
+0 4 11 0 0.0157623 0.173462
+0 4 12 0 0.026062 0.238525
+0 4 13 0 0.0424194 0.313477
+0 4 14 0 0.0629883 0.397705
+0 4 15 0 0.0855713 0.48877
+0 4 16 0 0.109497 0.584473
+0 4 17 0 0.132935 0.677734
+0 4 18 0 0.154785 0.764648
+0 4 19 0 0.174194 0.841309
+0 4 20 0 0.184937 0.884277
+0 4 21 0 0.187012 0.892578
+0 4 22 0 0.189209 0.901367
+0 4 23 0 0.191406 0.910645
+0 4 24 0 0.193726 0.919922
+0 4 25 0 0.196289 0.929688
+0 4 26 0 0.199097 0.940918
+0 4 27 0 0.202148 0.953125
+0 4 28 0 0.205688 0.967285
+0 4 29 0 0.209473 0.982422
+0 4 30 0 0.213501 0.997559
+0 4 31 0 0.217529 1
+0 5 0 0 0.00593567 0
+0 5 1 0 0.00591278 9.63807e-05
+0 5 2 0 0.00589752 0.00055933
+0 5 3 0 0.00592422 0.00140762
+0 5 4 0 0.00611115 0.00307274
+0 5 5 0 0.0065155 0.00652313
+0 5 6 0 0.00688934 0.013092
+0 5 7 0 0.00718689 0.0250244
+0 5 8 0 0.00779724 0.0467834
+0 5 9 0 0.00924683 0.0777588
+0 5 10 0 0.0124435 0.119141
+0 5 11 0 0.0186615 0.17334
+0 5 12 0 0.029068 0.238403
+0 5 13 0 0.0452576 0.313477
+0 5 14 0 0.0651245 0.397705
+0 5 15 0 0.0872192 0.48877
+0 5 16 0 0.110718 0.584473
+0 5 17 0 0.133911 0.677734
+0 5 18 0 0.155518 0.764648
+0 5 19 0 0.174805 0.841309
+0 5 20 0 0.185425 0.884277
+0 5 21 0 0.187378 0.892578
+0 5 22 0 0.189453 0.901367
+0 5 23 0 0.19165 0.910645
+0 5 24 0 0.19397 0.919922
+0 5 25 0 0.196411 0.929688
+0 5 26 0 0.199219 0.940918
+0 5 27 0 0.202271 0.953125
+0 5 28 0 0.205811 0.967285
+0 5 29 0 0.209595 0.982422
+0 5 30 0 0.213501 0.997559
+0 5 31 0 0.217651 1
+0 6 0 0 0.012001 0
+0 6 1 0 0.0120087 0
+0 6 2 0 0.0120239 3.37362e-05
+0 6 3 0 0.0120468 0.000955582
+0 6 4 0 0.0121078 0.00269699
+0 6 5 0 0.0122604 0.00607681
+0 6 6 0 0.0124741 0.0124817
+0 6 7 0 0.0126724 0.0244598
+0 6 8 0 0.0130997 0.0463562
+0 6 9 0 0.0144119 0.0774536
+0 6 10 0 0.0177002 0.118835
+0 6 11 0 0.0242004 0.173096
+0 6 12 0 0.03479 0.238281
+0 6 13 0 0.050354 0.313477
+0 6 14 0 0.0690918 0.397705
+0 6 15 0 0.090271 0.48877
+0 6 16 0 0.113098 0.584473
+0 6 17 0 0.135742 0.677734
+0 6 18 0 0.156982 0.764648
+0 6 19 0 0.175903 0.841309
+0 6 20 0 0.186401 0.884277
+0 6 21 0 0.18811 0.892578
+0 6 22 0 0.190063 0.901367
+0 6 23 0 0.192261 0.910645
+0 6 24 0 0.194336 0.919922
+0 6 25 0 0.196777 0.929688
+0 6 26 0 0.199585 0.940918
+0 6 27 0 0.202637 0.953125
+0 6 28 0 0.206055 0.967285
+0 6 29 0 0.209839 0.982422
+0 6 30 0 0.213745 0.997559
+0 6 31 0 0.217773 1
+0 7 0 0 0.0225677 0
+0 7 1 0 0.0225983 0
+0 7 2 0 0.0226288 0
+0 7 3 0 0.0226898 0
+0 7 4 0 0.0227814 0.00156498
+0 7 5 0 0.0229187 0.00490189
+0 7 6 0 0.0230865 0.0112228
+0 7 7 0 0.0232086 0.0232239
+0 7 8 0 0.023407 0.0453796
+0 7 9 0 0.0244598 0.0767822
+0 7 10 0 0.0279083 0.118286
+0 7 11 0 0.0349731 0.172729
+0 7 12 0 0.0456238 0.238037
+0 7 13 0 0.0594177 0.313232
+0 7 14 0 0.076355 0.397461
+0 7 15 0 0.0959473 0.48877
+0 7 16 0 0.117554 0.584473
+0 7 17 0 0.13916 0.677734
+0 7 18 0 0.15979 0.764648
+0 7 19 0 0.178101 0.841309
+0 7 20 0 0.188232 0.884277
+0 7 21 0 0.189575 0.892578
+0 7 22 0 0.191284 0.901855
+0 7 23 0 0.193237 0.910645
+0 7 24 0 0.19519 0.919922
+0 7 25 0 0.19751 0.929688
+0 7 26 0 0.200195 0.940918
+0 7 27 0 0.203125 0.953613
+0 7 28 0 0.206543 0.967285
+0 7 29 0 0.210205 0.982422
+0 7 30 0 0.214111 0.998047
+0 7 31 0 0.218018 1
+0 8 0 0 0.0420837 0
+0 8 1 0 0.0421143 0
+0 8 2 0 0.0421448 0
+0 8 3 0 0.0422058 0
+0 8 4 0 0.0423279 0
+0 8 5 0 0.042511 0.00264359
+0 8 6 0 0.0427856 0.00880432
+0 8 7 0 0.0430298 0.0206909
+0 8 8 0 0.0431824 0.0432129
+0 8 9 0 0.0439758 0.0755615
+0 8 10 0 0.0473633 0.11731
+0 8 11 0 0.0542603 0.171875
+0 8 12 0 0.0632324 0.237549
+0 8 13 0 0.074707 0.312988
+0 8 14 0 0.0891113 0.397217
+0 8 15 0 0.106323 0.488525
+0 8 16 0 0.125854 0.584473
+0 8 17 0 0.145752 0.677734
+0 8 18 0 0.164917 0.764648
+0 8 19 0 0.182373 0.841309
+0 8 20 0 0.19165 0.884766
+0 8 21 0 0.192261 0.893066
+0 8 22 0 0.193481 0.901855
+0 8 23 0 0.195068 0.911133
+0 8 24 0 0.196777 0.919922
+0 8 25 0 0.198975 0.930176
+0 8 26 0 0.201294 0.940918
+0 8 27 0 0.204102 0.953613
+0 8 28 0 0.207397 0.967285
+0 8 29 0 0.210938 0.982422
+0 8 30 0 0.214722 0.998047
+0 8 31 0 0.218628 1
+0 9 0 0 0.0709229 0
+0 9 1 0 0.0709229 0
+0 9 2 0 0.0709229 0
+0 9 3 0 0.0709839 0
+0 9 4 0 0.0710449 0
+0 9 5 0 0.071167 0
+0 9 6 0 0.0713501 0.00463104
+0 9 7 0 0.0716553 0.0162201
+0 9 8 0 0.0721436 0.0388184
+0 9 9 0 0.072998 0.0730591
+0 9 10 0 0.0758057 0.115601
+0 9 11 0 0.0819092 0.170532
+0 9 12 0 0.0894165 0.236572
+0 9 13 0 0.0985718 0.312256
+0 9 14 0 0.109924 0.396973
+0 9 15 0 0.123901 0.488281
+0 9 16 0 0.140259 0.584473
+0 9 17 0 0.157593 0.677734
+0 9 18 0 0.174561 0.764648
+0 9 19 0 0.190308 0.841797
+0 9 20 0 0.19812 0.885254
+0 9 21 0 0.19751 0.893555
+0 9 22 0 0.197754 0.902344
+0 9 23 0 0.198608 0.911133
+0 9 24 0 0.199951 0.92041
+0 9 25 0 0.201538 0.930176
+0 9 26 0 0.203613 0.941406
+0 9 27 0 0.206055 0.953613
+0 9 28 0 0.209106 0.967773
+0 9 29 0 0.212402 0.982422
+0 9 30 0 0.215942 0.998047
+0 9 31 0 0.219727 1
+0 10 0 0 0.108765 0
+0 10 1 0 0.108765 0
+0 10 2 0 0.108826 0
+0 10 3 0 0.108826 0
+0 10 4 0 0.108887 0
+0 10 5 0 0.108948 0
+0 10 6 0 0.109009 0
+0 10 7 0 0.10907 0.00915527
+0 10 8 0 0.109436 0.0317993
+0 10 9 0 0.110413 0.0687256
+0 10 10 0 0.112915 0.112976
+0 10 11 0 0.118347 0.168335
+0 10 12 0 0.124756 0.234863
+0 10 13 0 0.131958 0.311035
+0 10 14 0 0.140503 0.39624
+0 10 15 0 0.150879 0.488037
+0 10 16 0 0.163452 0.584473
+0 10 17 0 0.177002 0.678223
+0 10 18 0 0.190674 0.764648
+0 10 19 0 0.203735 0.841797
+0 10 20 0 0.209351 0.88623
+0 10 21 0 0.206543 0.894043
+0 10 22 0 0.205322 0.902832
+0 10 23 0 0.204956 0.911621
+0 10 24 0 0.205322 0.920898
+0 10 25 0 0.206299 0.930664
+0 10 26 0 0.207642 0.941895
+0 10 27 0 0.209595 0.954102
+0 10 28 0 0.212158 0.967773
+0 10 29 0 0.215088 0.98291
+0 10 30 0 0.218262 0.998047
+0 10 31 0 0.22168 1
+0 11 0 0 0.158936 0
+0 11 1 0 0.158936 0
+0 11 2 0 0.158936 0
+0 11 3 0 0.158936 0
+0 11 4 0 0.159058 0
+0 11 5 0 0.159058 0
+0 11 6 0 0.15918 0
+0 11 7 0 0.159058 0
+0 11 8 0 0.159058 0.0202332
+0 11 9 0 0.159424 0.061554
+0 11 10 0 0.161255 0.109131
+0 11 11 0 0.165039 0.165161
+0 11 12 0 0.170288 0.232056
+0 11 13 0 0.176025 0.309082
+0 11 14 0 0.182007 0.39502
+0 11 15 0 0.188965 0.487305
+0 11 16 0 0.197388 0.583984
+0 11 17 0 0.206421 0.678223
+0 11 18 0 0.215942 0.765137
+0 11 19 0 0.22522 0.842285
+0 11 20 0 0.227783 0.887695
+0 11 21 0 0.22168 0.895508
+0 11 22 0 0.217896 0.904297
+0 11 23 0 0.215698 0.913086
+0 11 24 0 0.2146 0.921875
+0 11 25 0 0.214355 0.931641
+0 11 26 0 0.2146 0.942383
+0 11 27 0 0.215698 0.95459
+0 11 28 0 0.217407 0.96875
+0 11 29 0 0.219604 0.983398
+0 11 30 0 0.222168 0.998535
+0 11 31 0 0.224976 1
+0 12 0 0 0.220947 0
+0 12 1 0 0.220947 0
+0 12 2 0 0.220947 0
+0 12 3 0 0.220947 0
+0 12 4 0 0.221069 0
+0 12 5 0 0.221069 0
+0 12 6 0 0.221191 0
+0 12 7 0 0.221313 0
+0 12 8 0 0.221313 0
+0 12 9 0 0.221436 0.0451355
+0 12 10 0 0.222046 0.100769
+0 12 11 0 0.223999 0.159668
+0 12 12 0 0.227417 0.227539
+0 12 13 0 0.231689 0.30542
+0 12 14 0 0.235718 0.392578
+0 12 15 0 0.239624 0.48584
+0 12 16 0 0.244019 0.583496
+0 12 17 0 0.248291 0.677734
+0 12 18 0 0.25293 0.765137
+0 12 19 0 0.257568 0.842773
+0 12 20 0 0.256104 0.890137
+0 12 21 0 0.245239 0.897949
+0 12 22 0 0.237793 0.90625
+0 12 23 0 0.232788 0.914551
+0 12 24 0 0.229614 0.92334
+0 12 25 0 0.227417 0.933105
+0 12 26 0 0.226074 0.943848
+0 12 27 0 0.225586 0.956055
+0 12 28 0 0.225952 0.969727
+0 12 29 0 0.227051 0.984375
+0 12 30 0 0.228638 0.999512
+0 12 31 0 0.230591 1
+0 13 0 0 0.292969 0
+0 13 1 0 0.292969 0
+0 13 2 0 0.292969 0
+0 13 3 0 0.292969 0
+0 13 4 0 0.292969 0
+0 13 5 0 0.292969 0
+0 13 6 0 0.292969 0
+0 13 7 0 0.293213 0
+0 13 8 0 0.293213 0
+0 13 9 0 0.293457 0.00792694
+0 13 10 0 0.293945 0.0814819
+0 13 11 0 0.294922 0.148438
+0 13 12 0 0.296631 0.219849
+0 13 13 0 0.299316 0.299561
+0 13 14 0 0.301758 0.387939
+0 13 15 0 0.303223 0.48291
+0 13 16 0 0.303955 0.581543
+0 13 17 0 0.303711 0.677246
+0 13 18 0 0.302979 0.765625
+0 13 19 0 0.30249 0.843262
+0 13 20 0 0.296631 0.894043
+0 13 21 0 0.279541 0.901367
+0 13 22 0 0.267334 0.909668
+0 13 23 0 0.258545 0.917969
+0 13 24 0 0.252197 0.92627
+0 13 25 0 0.247437 0.935547
+0 13 26 0 0.243652 0.946289
+0 13 27 0 0.240967 0.958008
+0 13 28 0 0.239502 0.971191
+0 13 29 0 0.238892 0.98584
+0 13 30 0 0.238892 1
+0 13 31 0 0.239624 1
+0 14 0 0 0.374268 0
+0 14 1 0 0.374268 0
+0 14 2 0 0.374268 0
+0 14 3 0 0.374268 0
+0 14 4 0 0.374268 0
+0 14 5 0 0.374268 0
+0 14 6 0 0.374268 0
+0 14 7 0 0.374512 0
+0 14 8 0 0.374756 0
+0 14 9 0 0.375 0
+0 14 10 0 0.375488 0.0343323
+0 14 11 0 0.376465 0.125977
+0 14 12 0 0.377441 0.205444
+0 14 13 0 0.378906 0.289062
+0 14 14 0 0.379883 0.380127
+0 14 15 0 0.379395 0.477295
+0 14 16 0 0.377197 0.578125
+0 14 17 0 0.372803 0.675781
+0 14 18 0 0.367188 0.765137
+0 14 19 0 0.361572 0.84375
+0 14 20 0 0.351318 0.899902
+0 14 21 0 0.326904 0.907227
+0 14 22 0 0.308594 0.915039
+0 14 23 0 0.294922 0.922852
+0 14 24 0 0.284912 0.930664
+0 14 25 0 0.276367 0.939941
+0 14 26 0 0.269287 0.949707
+0 14 27 0 0.263672 0.960938
+0 14 28 0 0.259521 0.974121
+0 14 29 0 0.256592 0.988281
+0 14 30 0 0.254639 1
+0 14 31 0 0.253174 1
+0 15 0 0 0.463135 0
+0 15 1 0 0.463135 0
+0 15 2 0 0.463135 0
+0 15 3 0 0.463135 0
+0 15 4 0 0.463135 0
+0 15 5 0 0.463135 0
+0 15 6 0 0.463135 0
+0 15 7 0 0.463135 0
+0 15 8 0 0.463379 0
+0 15 9 0 0.463623 0
+0 15 10 0 0.464355 0
+0 15 11 0 0.465332 0.0797729
+0 15 12 0 0.466553 0.179443
+0 15 13 0 0.467773 0.270752
+0 15 14 0 0.468262 0.366455
+0 15 15 0 0.467041 0.467285
+0 15 16 0 0.462891 0.571289
+0 15 17 0 0.455322 0.671875
+0 15 18 0 0.445068 0.763184
+0 15 19 0 0.434082 0.843262
+0 15 20 0 0.420898 0.90625
+0 15 21 0 0.388428 0.915039
+0 15 22 0 0.363037 0.922852
+0 15 23 0 0.34375 0.930664
+0 15 24 0 0.328857 0.937988
+0 15 25 0 0.315918 0.946289
+0 15 26 0 0.304688 0.955566
+0 15 27 0 0.29541 0.966309
+0 15 28 0 0.287842 0.979004
+0 15 29 0 0.281738 0.992188
+0 15 30 0 0.276611 1
+0 15 31 0 0.272949 1
+0 16 0 0 0.557617 0
+0 16 1 0 0.557617 0
+0 16 2 0 0.557617 0
+0 16 3 0 0.557617 0
+0 16 4 0 0.557617 0
+0 16 5 0 0.557617 0
+0 16 6 0 0.557617 0
+0 16 7 0 0.557617 0
+0 16 8 0 0.558105 0
+0 16 9 0 0.558105 0
+0 16 10 0 0.558594 0
+0 16 11 0 0.560059 0
+0 16 12 0 0.561523 0.133179
+0 16 13 0 0.562988 0.241211
+0 16 14 0 0.563965 0.344238
+0 16 15 0 0.562988 0.450195
+0 16 16 0 0.558594 0.558594
+0 16 17 0 0.548828 0.663086
+0 16 18 0 0.535156 0.758301
+0 16 19 0 0.52002 0.84082
+0 16 20 0 0.50293 0.90918
+0 16 21 0 0.4646 0.924805
+0 16 22 0 0.431885 0.93457
+0 16 23 0 0.40625 0.941895
+0 16 24 0 0.385498 0.949219
+0 16 25 0 0.367432 0.956543
+0 16 26 0 0.351318 0.965332
+0 16 27 0 0.337402 0.974609
+0 16 28 0 0.325439 0.986328
+0 16 29 0 0.31543 0.998535
+0 16 30 0 0.306885 1
+0 16 31 0 0.299561 1
+0 17 0 0 0.651855 0
+0 17 1 0 0.651855 0
+0 17 2 0 0.651855 0
+0 17 3 0 0.651855 0
+0 17 4 0 0.651855 0
+0 17 5 0 0.651855 0
+0 17 6 0 0.651855 0
+0 17 7 0 0.651855 0
+0 17 8 0 0.652344 0
+0 17 9 0 0.652344 0
+0 17 10 0 0.652832 0
+0 17 11 0 0.653809 0
+0 17 12 0 0.655762 0.0249481
+0 17 13 0 0.658203 0.195312
+0 17 14 0 0.660156 0.311523
+0 17 15 0 0.660645 0.424072
+0 17 16 0 0.656738 0.537598
+0 17 17 0 0.646973 0.647461
+0 17 18 0 0.632324 0.747559
+0 17 19 0 0.61377 0.834473
+0 17 20 0 0.592773 0.905762
+0 17 21 0 0.552734 0.93457
+0 17 22 0 0.513672 0.94873
+0 17 23 0 0.481445 0.95752
+0 17 24 0 0.454834 0.964844
+0 17 25 0 0.430664 0.97168
+0 17 26 0 0.408936 0.979004
+0 17 27 0 0.389404 0.987305
+0 17 28 0 0.372559 0.99707
+0 17 29 0 0.357666 1
+0 17 30 0 0.344727 1
+0 17 31 0 0.333496 1
+0 18 0 0 0.740723 0
+0 18 1 0 0.740723 0
+0 18 2 0 0.740723 0
+0 18 3 0 0.740723 0
+0 18 4 0 0.740723 0
+0 18 5 0 0.740723 0
+0 18 6 0 0.740723 0
+0 18 7 0 0.740723 0
+0 18 8 0 0.741211 0
+0 18 9 0 0.741211 0
+0 18 10 0 0.741211 0
+0 18 11 0 0.742188 0
+0 18 12 0 0.744141 0
+0 18 13 0 0.74707 0.119873
+0 18 14 0 0.750488 0.266113
+0 18 15 0 0.752441 0.388672
+0 18 16 0 0.750977 0.508301
+0 18 17 0 0.743164 0.623535
+0 18 18 0 0.729492 0.729492
+0 18 19 0 0.709961 0.821777
+0 18 20 0 0.686523 0.897949
+0 18 21 0 0.647949 0.940918
+0 18 22 0 0.60498 0.963379
+0 18 23 0 0.567383 0.976074
+0 18 24 0 0.534668 0.984375
+0 18 25 0 0.504395 0.991211
+0 18 26 0 0.476074 0.997559
+0 18 27 0 0.450439 1
+0 18 28 0 0.427734 1
+0 18 29 0 0.407715 1
+0 18 30 0 0.389893 1
+0 18 31 0 0.374023 1
+0 19 0 0 0.821289 0
+0 19 1 0 0.821289 0
+0 19 2 0 0.821289 0
+0 19 3 0 0.821289 0
+0 19 4 0 0.821289 0
+0 19 5 0 0.821289 0
+0 19 6 0 0.821289 0
+0 19 7 0 0.821289 0
+0 19 8 0 0.821289 0
+0 19 9 0 0.821289 0
+0 19 10 0 0.821777 0
+0 19 11 0 0.821777 0
+0 19 12 0 0.82373 0
+0 19 13 0 0.827148 0
+0 19 14 0 0.831055 0.2052
+0 19 15 0 0.834473 0.344482
+0 19 16 0 0.835449 0.47168
+0 19 17 0 0.831543 0.592773
+0 19 18 0 0.820312 0.70459
+0 19 19 0 0.801758 0.802246
+0 19 20 0 0.777832 0.883301
+0 19 21 0 0.742676 0.94043
+0 19 22 0 0.700684 0.974609
+0 19 23 0 0.65918 0.993652
+0 19 24 0 0.621582 1
+0 19 25 0 0.585449 1
+0 19 26 0 0.550781 1
+0 19 27 0 0.519043 1
+0 19 28 0 0.48999 1
+0 19 29 0 0.463867 1
+0 19 30 0 0.44043 1
+0 19 31 0 0.419678 1
+0 20 0 0 0.891113 0
+0 20 1 0 0.891113 0
+0 20 2 0 0.891113 0
+0 20 3 0 0.891113 0
+0 20 4 0 0.891113 0
+0 20 5 0 0.891113 0
+0 20 6 0 0.891113 0
+0 20 7 0 0.891113 0
+0 20 8 0 0.891113 0
+0 20 9 0 0.891602 0
+0 20 10 0 0.891602 0
+0 20 11 0 0.891602 0
+0 20 12 0 0.892578 0
+0 20 13 0 0.895996 0
+0 20 14 0 0.900391 0.114441
+0 20 15 0 0.905273 0.29248
+0 20 16 0 0.908691 0.429443
+0 20 17 0 0.907715 0.555664
+0 20 18 0 0.899902 0.672363
+0 20 19 0 0.884277 0.775879
+0 20 20 0 0.861816 0.862305
+0 20 21 0 0.831543 0.931152
+0 20 22 0 0.79248 0.977539
+0 20 23 0 0.750977 1
+0 20 24 0 0.710449 1
+0 20 25 0 0.669434 1
+0 20 26 0 0.629395 1
+0 20 27 0 0.591309 1
+0 20 28 0 0.556152 1
+0 20 29 0 0.523926 1
+0 20 30 0 0.494873 1
+0 20 31 0 0.468506 1
+0 21 0 0 0.951172 0
+0 21 1 0 0.951172 0
+0 21 2 0 0.951172 0
+0 21 3 0 0.951172 0
+0 21 4 0 0.951172 0
+0 21 5 0 0.951172 0
+0 21 6 0 0.951172 0
+0 21 7 0 0.951172 0
+0 21 8 0 0.951172 0
+0 21 9 0 0.951172 0
+0 21 10 0 0.951172 0
+0 21 11 0 0.95166 0
+0 21 12 0 0.95166 0
+0 21 13 0 0.95459 0
+0 21 14 0 0.959473 0
+0 21 15 0 0.965332 0.228394
+0 21 16 0 0.970703 0.381348
+0 21 17 0 0.972656 0.513672
+0 21 18 0 0.968262 0.634766
+0 21 19 0 0.956543 0.742676
+0 21 20 0 0.937012 0.834473
+0 21 21 0 0.911133 0.911621
+0 21 22 0 0.877441 0.970215
+0 21 23 0 0.838867 1
+0 21 24 0 0.797852 1
+0 21 25 0 0.754883 1
+0 21 26 0 0.710449 1
+0 21 27 0 0.666992 1
+0 21 28 0 0.625977 1
+0 21 29 0 0.587891 1
+0 21 30 0 0.552734 1
+0 21 31 0 0.520996 1
+0 22 0 0 1 0
+0 22 1 0 1 0
+0 22 2 0 1 0
+0 22 3 0 1 0
+0 22 4 0 1 0
+0 22 5 0 1 0
+0 22 6 0 1 0
+0 22 7 0 1 0
+0 22 8 0 1 0
+0 22 9 0 1 0
+0 22 10 0 1 0
+0 22 11 0 1 0
+0 22 12 0 1 0
+0 22 13 0 1 0
+0 22 14 0 1 0
+0 22 15 0 1 0.142456
+0 22 16 0 1 0.327881
+0 22 17 0 1 0.468018
+0 22 18 0 1 0.593262
+0 22 19 0 1 0.705078
+0 22 20 0 1 0.80127
+0 22 21 0 0.979004 0.883789
+0 22 22 0 0.950195 0.950684
+0 22 23 0 0.916504 1
+0 22 24 0 0.878906 1
+0 22 25 0 0.835938 1
+0 22 26 0 0.789551 1
+0 22 27 0 0.742676 1
+0 22 28 0 0.697266 1
+0 22 29 0 0.653809 1
+0 22 30 0 0.613281 1
+0 22 31 0 0.575684 1
+0 23 0 0 1 0
+0 23 1 0 1 0
+0 23 2 0 1 0
+0 23 3 0 1 0
+0 23 4 0 1 0
+0 23 5 0 1 0
+0 23 6 0 1 0
+0 23 7 0 1 0
+0 23 8 0 1 0
+0 23 9 0 1 0
+0 23 10 0 1 0
+0 23 11 0 1 0
+0 23 12 0 1 0
+0 23 13 0 1 0
+0 23 14 0 1 0
+0 23 15 0 1 0
+0 23 16 0 1 0.270264
+0 23 17 0 1 0.421143
+0 23 18 0 1 0.550293
+0 23 19 0 1 0.665527
+0 23 20 0 1 0.765137
+0 23 21 0 1 0.852051
+0 23 22 0 1 0.923828
+0 23 23 0 0.980469 0.980957
+0 23 24 0 0.947266 1
+0 23 25 0 0.907227 1
+0 23 26 0 0.861816 1
+0 23 27 0 0.813477 1
+0 23 28 0 0.764648 1
+0 23 29 0 0.717285 1
+0 23 30 0 0.671875 1
+0 23 31 0 0.629395 1
+0 24 0 0 1 0
+0 24 1 0 1 0
+0 24 2 0 1 0
+0 24 3 0 1 0
+0 24 4 0 1 0
+0 24 5 0 1 0
+0 24 6 0 1 0
+0 24 7 0 1 0
+0 24 8 0 1 0
+0 24 9 0 1 0
+0 24 10 0 1 0
+0 24 11 0 1 0
+0 24 12 0 1 0
+0 24 13 0 1 0
+0 24 14 0 1 0
+0 24 15 0 1 0
+0 24 16 0 1 0.204346
+0 24 17 0 1 0.373291
+0 24 18 0 1 0.507324
+0 24 19 0 1 0.624512
+0 24 20 0 1 0.727539
+0 24 21 0 1 0.817383
+0 24 22 0 1 0.893555
+0 24 23 0 1 0.955566
+0 24 24 0 1 1
+0 24 25 0 0.96875 1
+0 24 26 0 0.925781 1
+0 24 27 0 0.87793 1
+0 24 28 0 0.828125 1
+0 24 29 0 0.777344 1
+0 24 30 0 0.728516 1
+0 24 31 0 0.682129 1
+0 25 0 0 1 0
+0 25 1 0 1 0
+0 25 2 0 1 0
+0 25 3 0 1 0
+0 25 4 0 1 0
+0 25 5 0 1 0
+0 25 6 0 1 0
+0 25 7 0 1 0
+0 25 8 0 1 0
+0 25 9 0 1 0
+0 25 10 0 1 0
+0 25 11 0 1 0
+0 25 12 0 1 0
+0 25 13 0 1 0
+0 25 14 0 1 0
+0 25 15 0 1 0
+0 25 16 0 1 0.10437
+0 25 17 0 1 0.318359
+0 25 18 0 1 0.459229
+0 25 19 0 1 0.57959
+0 25 20 0 1 0.68457
+0 25 21 0 1 0.777344
+0 25 22 0 1 0.85791
+0 25 23 0 1 0.923828
+0 25 24 0 1 0.977539
+0 25 25 0 1 1
+0 25 26 0 0.986816 1
+0 25 27 0 0.941406 1
+0 25 28 0 0.891602 1
+0 25 29 0 0.839355 1
+0 25 30 0 0.787598 1
+0 25 31 0 0.737793 1
+0 26 0 0 1 0
+0 26 1 0 1 0
+0 26 2 0 1 0
+0 26 3 0 1 0
+0 26 4 0 1 0
+0 26 5 0 1 0
+0 26 6 0 1 0
+0 26 7 0 1 0
+0 26 8 0 1 0
+0 26 9 0 1 0
+0 26 10 0 1 0
+0 26 11 0 1 0
+0 26 12 0 1 0
+0 26 13 0 1 0
+0 26 14 0 1 0
+0 26 15 0 1 0
+0 26 16 0 1 0
+0 26 17 0 1 0.25293
+0 26 18 0 1 0.40625
+0 26 19 0 1 0.529785
+0 26 20 0 1 0.636719
+0 26 21 0 1 0.732422
+0 26 22 0 1 0.815918
+0 26 23 0 1 0.885742
+0 26 24 0 1 0.943848
+0 26 25 0 1 0.99707
+0 26 26 0 1 1
+0 26 27 0 1 1
+0 26 28 0 0.953613 1
+0 26 29 0 0.901855 1
+0 26 30 0 0.848633 1
+0 26 31 0 0.795898 1
+0 27 0 0 1 0
+0 27 1 0 1 0
+0 27 2 0 1 0
+0 27 3 0 1 0
+0 27 4 0 1 0
+0 27 5 0 1 0
+0 27 6 0 1 0
+0 27 7 0 1 0
+0 27 8 0 1 0
+0 27 9 0 1 0
+0 27 10 0 1 0
+0 27 11 0 1 0
+0 27 12 0 1 0
+0 27 13 0 1 0
+0 27 14 0 1 0
+0 27 15 0 1 0
+0 27 16 0 1 0
+0 27 17 0 1 0.166138
+0 27 18 0 1 0.34668
+0 27 19 0 1 0.47583
+0 27 20 0 1 0.584961
+0 27 21 0 1 0.682129
+0 27 22 0 1 0.768066
+0 27 23 0 1 0.841309
+0 27 24 0 1 0.90332
+0 27 25 0 1 0.960938
+0 27 26 0 1 1
+0 27 27 0 1 1
+0 27 28 0 1 1
+0 27 29 0 0.962402 1
+0 27 30 0 0.908691 1
+0 27 31 0 0.854492 1
+0 28 0 0 1 0
+0 28 1 0 1 0
+0 28 2 0 1 0
+0 28 3 0 1 0
+0 28 4 0 1 0
+0 28 5 0 1 0
+0 28 6 0 1 0
+0 28 7 0 1 0
+0 28 8 0 1 0
+0 28 9 0 1 0
+0 28 10 0 1 0
+0 28 11 0 1 0
+0 28 12 0 1 0
+0 28 13 0 1 0
+0 28 14 0 1 0
+0 28 15 0 1 0
+0 28 16 0 1 0
+0 28 17 0 1 0
+0 28 18 0 1 0.278076
+0 28 19 0 1 0.417236
+0 28 20 0 1 0.529297
+0 28 21 0 1 0.62793
+0 28 22 0 1 0.71582
+0 28 23 0 1 0.791016
+0 28 24 0 1 0.855957
+0 28 25 0 1 0.91748
+0 28 26 0 1 0.974121
+0 28 27 0 1 1
+0 28 28 0 1 1
+0 28 29 0 1 1
+0 28 30 0 0.968262 1
+0 28 31 0 0.914062 1
+0 29 0 0 1 0
+0 29 1 0 1 0
+0 29 2 0 1 0
+0 29 3 0 1 0
+0 29 4 0 1 0
+0 29 5 0 1 0
+0 29 6 0 1 0
+0 29 7 0 1 0
+0 29 8 0 1 0
+0 29 9 0 1 0
+0 29 10 0 1 0
+0 29 11 0 1 0
+0 29 12 0 1 0
+0 29 13 0 1 0
+0 29 14 0 1 0
+0 29 15 0 1 0
+0 29 16 0 1 0
+0 29 17 0 1 0
+0 29 18 0 1 0.19104
+0 29 19 0 1 0.352051
+0 29 20 0 1 0.46875
+0 29 21 0 1 0.569336
+0 29 22 0 1 0.658203
+0 29 23 0 1 0.735352
+0 29 24 0 1 0.802734
+0 29 25 0 1 0.867188
+0 29 26 0 1 0.928223
+0 29 27 0 1 0.983398
+0 29 28 0 1 1
+0 29 29 0 1 1
+0 29 30 0 1 1
+0 29 31 0 0.973145 1
+0 30 0 0 1 0
+0 30 1 0 1 0
+0 30 2 0 1 0
+0 30 3 0 1 0
+0 30 4 0 1 0
+0 30 5 0 1 0
+0 30 6 0 1 0
+0 30 7 0 1 0
+0 30 8 0 1 0
+0 30 9 0 1 0
+0 30 10 0 1 0
+0 30 11 0 1 0
+0 30 12 0 1 0
+0 30 13 0 1 0
+0 30 14 0 1 0
+0 30 15 0 1 0
+0 30 16 0 1 0
+0 30 17 0 1 0
+0 30 18 0 1 0.022583
+0 30 19 0 1 0.277588
+0 30 20 0 1 0.403564
+0 30 21 0 1 0.506836
+0 30 22 0 1 0.59668
+0 30 23 0 1 0.674805
+0 30 24 0 1 0.743652
+0 30 25 0 1 0.810547
+0 30 26 0 1 0.874512
+0 30 27 0 1 0.935059
+0 30 28 0 1 0.989746
+0 30 29 0 1 1
+0 30 30 0 1 1
+0 30 31 0 1 1
+0 31 0 0 1 0
+0 31 1 0 1 0
+0 31 2 0 1 0
+0 31 3 0 1 0
+0 31 4 0 1 0
+0 31 5 0 1 0
+0 31 6 0 1 0
+0 31 7 0 1 0
+0 31 8 0 1 0
+0 31 9 0 1 0
+0 31 10 0 1 0
+0 31 11 0 1 0
+0 31 12 0 1 0
+0 31 13 0 1 0
+0 31 14 0 1 0
+0 31 15 0 1 0
+0 31 16 0 1 0
+0 31 17 0 1 0
+0 31 18 0 1 0
+0 31 19 0 1 0.184082
+0 31 20 0 1 0.331787
+0 31 21 0 1 0.439941
+0 31 22 0 1 0.531738
+0 31 23 0 1 0.610352
+0 31 24 0 1 0.680176
+0 31 25 0 1 0.748535
+0 31 26 0 1 0.81543
+0 31 27 0 1 0.879883
+0 31 28 0 1 0.94043
+0 31 29 0 1 0.995117
+0 31 30 0 1 1
+0 31 31 0 1 1
+1 0 0 0.000132322 5.9247e-05 5.85914e-05
+1 0 1 8.33273e-05 4.28557e-05 6.95586e-05
+1 0 2 0.000175714 0.000111461 0.000296593
+1 0 3 0.000234962 0.000240564 0.00104713
+1 0 4 2.13981e-05 0.000444651 0.00310135
+1 0 5 0 0.00066185 0.00702667
+1 0 6 0 0.000925541 0.0136871
+1 0 7 0 0.00136089 0.025528
+1 0 8 0 0.00217819 0.0471802
+1 0 9 0 0.00375938 0.078125
+1 0 10 0 0.00685501 0.119446
+1 0 11 0 0.0127869 0.173584
+1 0 12 0 0.022995 0.238647
+1 0 13 0 0.0393677 0.313721
+1 0 14 0 0.0606995 0.397705
+1 0 15 0 0.0838623 0.48877
+1 0 16 0 0.108215 0.584473
+1 0 17 0 0.131958 0.677734
+1 0 18 0 0.154053 0.764648
+1 0 19 0 0.173584 0.841309
+1 0 20 0 0.184448 0.884277
+1 0 21 0 0.186646 0.892578
+1 0 22 0 0.188843 0.901367
+1 0 23 0 0.191162 0.910645
+1 0 24 0 0.193481 0.919434
+1 0 25 0 0.196045 0.929688
+1 0 26 0 0.198853 0.940918
+1 0 27 0 0.202026 0.953125
+1 0 28 0 0.205566 0.967285
+1 0 29 0 0.209351 0.982422
+1 0 30 0 0.213379 0.997559
+1 0 31 0 0.217407 1
+1 1 0 6.28233e-05 5.58496e-05 3.31998e-05
+1 1 1 9.20296e-05 9.20296e-05 9.20296e-05
+1 1 2 0.000145912 0.00018549 0.000313282
+1 1 3 0.000154614 0.00036335 0.00103951
+1 1 4 0 0.000638962 0.00306511
+1 1 5 0 0.000900269 0.00698853
+1 1 6 0 0.00117302 0.0136642
+1 1 7 0 0.00160217 0.0255127
+1 1 8 0 0.00241089 0.0471802
+1 1 9 0 0.00398636 0.078125
+1 1 10 0 0.00708771 0.119446
+1 1 11 0 0.013031 0.173584
+1 1 12 0 0.0232391 0.238647
+1 1 13 0 0.0396423 0.313477
+1 1 14 0 0.0608826 0.397705
+1 1 15 0 0.0839844 0.48877
+1 1 16 0 0.108337 0.584473
+1 1 17 0 0.13208 0.677734
+1 1 18 0 0.154053 0.764648
+1 1 19 0 0.173584 0.841309
+1 1 20 0 0.184448 0.884277
+1 1 21 0 0.186646 0.892578
+1 1 22 0 0.188843 0.901367
+1 1 23 0 0.191162 0.910645
+1 1 24 0 0.193481 0.919922
+1 1 25 0 0.196045 0.929688
+1 1 26 0 0.198853 0.940918
+1 1 27 0 0.202026 0.953125
+1 1 28 0 0.205566 0.967285
+1 1 29 0 0.209351 0.982422
+1 1 30 0 0.213379 0.997559
+1 1 31 0 0.217407 1
+1 2 0 8.86917e-05 0.000212789 6.80089e-05
+1 2 1 8.76784e-05 0.000252485 0.000143528
+1 2 2 8.29697e-05 0.000365257 0.000365257
+1 2 3 1.03116e-05 0.000601292 0.00105476
+1 2 4 0 0.000986099 0.00302124
+1 2 5 0 0.00132275 0.0069313
+1 2 6 0 0.00161362 0.0136261
+1 2 7 0 0.00203133 0.0254822
+1 2 8 0 0.00282478 0.0471497
+1 2 9 0 0.00439072 0.078064
+1 2 10 0 0.00749969 0.119385
+1 2 11 0 0.0134659 0.173584
+1 2 12 0 0.0236969 0.238647
+1 2 13 0 0.0400696 0.313477
+1 2 14 0 0.0612183 0.397705
+1 2 15 0 0.0842285 0.48877
+1 2 16 0 0.108521 0.584473
+1 2 17 0 0.132202 0.677734
+1 2 18 0 0.154175 0.764648
+1 2 19 0 0.173706 0.841309
+1 2 20 0 0.18457 0.884277
+1 2 21 0 0.186646 0.892578
+1 2 22 0 0.188965 0.901367
+1 2 23 0 0.191284 0.910645
+1 2 24 0 0.193481 0.919922
+1 2 25 0 0.196045 0.929688
+1 2 26 0 0.198975 0.940918
+1 2 27 0 0.202026 0.953125
+1 2 28 0 0.205688 0.967285
+1 2 29 0 0.209473 0.982422
+1 2 30 0 0.213379 0.997559
+1 2 31 0 0.217407 1
+1 3 0 0 0.000759602 0.000108302
+1 3 1 0 0.000779152 0.000224948
+1 3 2 0 0.000874996 0.000476837
+1 3 3 0 0.00114059 0.00114155
+1 3 4 0 0.00164604 0.00299454
+1 3 5 0 0.00209618 0.00683975
+1 3 6 0 0.00242043 0.0135422
+1 3 7 0 0.00281906 0.0254211
+1 3 8 0 0.00358391 0.0470886
+1 3 9 0 0.00513077 0.0780029
+1 3 10 0 0.008255 0.119385
+1 3 11 0 0.0142593 0.173584
+1 3 12 0 0.0245056 0.238525
+1 3 13 0 0.0408936 0.313477
+1 3 14 0 0.0618286 0.397705
+1 3 15 0 0.0847168 0.48877
+1 3 16 0 0.108826 0.584473
+1 3 17 0 0.132446 0.677734
+1 3 18 0 0.154419 0.764648
+1 3 19 0 0.173828 0.841309
+1 3 20 0 0.184692 0.884277
+1 3 21 0 0.186768 0.892578
+1 3 22 0 0.188965 0.901367
+1 3 23 0 0.191284 0.910645
+1 3 24 0 0.193604 0.919922
+1 3 25 0 0.196167 0.929688
+1 3 26 0 0.198975 0.940918
+1 3 27 0 0.202148 0.953125
+1 3 28 0 0.205688 0.967285
+1 3 29 0 0.209473 0.982422
+1 3 30 0 0.213379 0.997559
+1 3 31 0 0.217529 1
+1 4 0 0 0.00237656 8.12411e-05
+1 4 1 0 0.00235558 0.000273705
+1 4 2 0 0.00238609 0.000622749
+1 4 3 0 0.00258255 0.00134754
+1 4 4 0 0.0030365 0.00303841
+1 4 5 0 0.00357056 0.00670624
+1 4 6 0 0.0039444 0.0133896
+1 4 7 0 0.00430679 0.0252838
+1 4 8 0 0.00502014 0.0469971
+1 4 9 0 0.00653458 0.0779419
+1 4 10 0 0.0096817 0.119263
+1 4 11 0 0.0157623 0.173462
+1 4 12 0 0.026062 0.238525
+1 4 13 0 0.0424194 0.313477
+1 4 14 0 0.0629883 0.397705
+1 4 15 0 0.0855713 0.48877
+1 4 16 0 0.109497 0.584473
+1 4 17 0 0.132935 0.677734
+1 4 18 0 0.154785 0.764648
+1 4 19 0 0.174194 0.841309
+1 4 20 0 0.184937 0.884277
+1 4 21 0 0.187012 0.892578
+1 4 22 0 0.189209 0.901367
+1 4 23 0 0.191406 0.910645
+1 4 24 0 0.193726 0.919922
+1 4 25 0 0.196289 0.929688
+1 4 26 0 0.199097 0.940918
+1 4 27 0 0.202148 0.953125
+1 4 28 0 0.205688 0.967285
+1 4 29 0 0.209473 0.982422
+1 4 30 0 0.213501 0.997559
+1 4 31 0 0.217529 1
+1 5 0 0 0.00592041 0
+1 5 1 0 0.00590134 9.23276e-05
+1 5 2 0 0.00588608 0.000555038
+1 5 3 0 0.0059166 0.0014019
+1 5 4 0 0.00610352 0.00306702
+1 5 5 0 0.00650787 0.0065155
+1 5 6 0 0.00688553 0.013092
+1 5 7 0 0.00718689 0.0250244
+1 5 8 0 0.00779343 0.0467834
+1 5 9 0 0.0092392 0.0777588
+1 5 10 0 0.0124435 0.119141
+1 5 11 0 0.0186615 0.17334
+1 5 12 0 0.029068 0.238403
+1 5 13 0 0.0452576 0.313477
+1 5 14 0 0.0651245 0.397705
+1 5 15 0 0.0871582 0.48877
+1 5 16 0 0.110718 0.584473
+1 5 17 0 0.133911 0.677734
+1 5 18 0 0.155518 0.764648
+1 5 19 0 0.174805 0.841309
+1 5 20 0 0.185425 0.884277
+1 5 21 0 0.187378 0.892578
+1 5 22 0 0.189453 0.901367
+1 5 23 0 0.19165 0.910645
+1 5 24 0 0.19397 0.919922
+1 5 25 0 0.196411 0.929688
+1 5 26 0 0.199219 0.940918
+1 5 27 0 0.202271 0.953125
+1 5 28 0 0.205811 0.967285
+1 5 29 0 0.209595 0.982422
+1 5 30 0 0.213501 0.997559
+1 5 31 0 0.217651 1
+1 6 0 0 0.012001 0
+1 6 1 0 0.012001 0
+1 6 2 0 0.0120163 2.95043e-05
+1 6 3 0 0.0120392 0.00095129
+1 6 4 0 0.0121002 0.00269318
+1 6 5 0 0.0122604 0.006073
+1 6 6 0 0.0124741 0.0124817
+1 6 7 0 0.0126724 0.0244598
+1 6 8 0 0.0130997 0.0463562
+1 6 9 0 0.0144043 0.0774536
+1 6 10 0 0.0177002 0.118835
+1 6 11 0 0.0242004 0.173096
+1 6 12 0 0.03479 0.238281
+1 6 13 0 0.050354 0.313477
+1 6 14 0 0.0690918 0.397705
+1 6 15 0 0.090271 0.48877
+1 6 16 0 0.113098 0.584473
+1 6 17 0 0.135742 0.677734
+1 6 18 0 0.156982 0.764648
+1 6 19 0 0.175903 0.841309
+1 6 20 0 0.186401 0.884277
+1 6 21 0 0.18811 0.892578
+1 6 22 0 0.190063 0.901367
+1 6 23 0 0.192261 0.910645
+1 6 24 0 0.194336 0.919922
+1 6 25 0 0.196777 0.929688
+1 6 26 0 0.199585 0.940918
+1 6 27 0 0.202637 0.953125
+1 6 28 0 0.206055 0.967285
+1 6 29 0 0.209839 0.982422
+1 6 30 0 0.213745 0.997559
+1 6 31 0 0.217773 1
+1 7 0 0 0.0225677 0
+1 7 1 0 0.0225983 0
+1 7 2 0 0.0226288 0
+1 7 3 0 0.0226898 0
+1 7 4 0 0.0227814 0.00156116
+1 7 5 0 0.0229187 0.00489807
+1 7 6 0 0.0230713 0.0112228
+1 7 7 0 0.0231934 0.0232239
+1 7 8 0 0.023407 0.0453796
+1 7 9 0 0.0244598 0.0767822
+1 7 10 0 0.0278931 0.118286
+1 7 11 0 0.0349426 0.172729
+1 7 12 0 0.0455933 0.238037
+1 7 13 0 0.0594177 0.313232
+1 7 14 0 0.076355 0.397461
+1 7 15 0 0.0959473 0.48877
+1 7 16 0 0.117554 0.584473
+1 7 17 0 0.13916 0.677734
+1 7 18 0 0.15979 0.764648
+1 7 19 0 0.178101 0.841309
+1 7 20 0 0.188232 0.884277
+1 7 21 0 0.189575 0.892578
+1 7 22 0 0.191284 0.901855
+1 7 23 0 0.193237 0.910645
+1 7 24 0 0.19519 0.919922
+1 7 25 0 0.19751 0.929688
+1 7 26 0 0.200195 0.940918
+1 7 27 0 0.203125 0.953613
+1 7 28 0 0.206543 0.967285
+1 7 29 0 0.210205 0.982422
+1 7 30 0 0.214111 0.998047
+1 7 31 0 0.218018 1
+1 8 0 0 0.0420837 0
+1 8 1 0 0.0421143 0
+1 8 2 0 0.0421448 0
+1 8 3 0 0.0422058 0
+1 8 4 0 0.0423279 0
+1 8 5 0 0.042511 0.00263977
+1 8 6 0 0.0427551 0.00880432
+1 8 7 0 0.0430298 0.0206909
+1 8 8 0 0.0431824 0.0432129
+1 8 9 0 0.0439758 0.0755615
+1 8 10 0 0.0473633 0.117249
+1 8 11 0 0.0542603 0.171875
+1 8 12 0 0.0632324 0.237549
+1 8 13 0 0.074707 0.312988
+1 8 14 0 0.0891113 0.397217
+1 8 15 0 0.106323 0.488525
+1 8 16 0 0.125732 0.584473
+1 8 17 0 0.145752 0.677734
+1 8 18 0 0.164917 0.764648
+1 8 19 0 0.182373 0.841309
+1 8 20 0 0.19165 0.884766
+1 8 21 0 0.192261 0.893066
+1 8 22 0 0.193481 0.901855
+1 8 23 0 0.195068 0.911133
+1 8 24 0 0.196777 0.919922
+1 8 25 0 0.198975 0.930176
+1 8 26 0 0.201294 0.940918
+1 8 27 0 0.204102 0.953613
+1 8 28 0 0.207397 0.967285
+1 8 29 0 0.210938 0.982422
+1 8 30 0 0.214722 0.998047
+1 8 31 0 0.218628 1
+1 9 0 0 0.0709229 0
+1 9 1 0 0.0709229 0
+1 9 2 0 0.0709229 0
+1 9 3 0 0.0709839 0
+1 9 4 0 0.0710449 0
+1 9 5 0 0.071167 0
+1 9 6 0 0.0713501 0.00462723
+1 9 7 0 0.0716553 0.0162201
+1 9 8 0 0.0721436 0.0388184
+1 9 9 0 0.072998 0.0730591
+1 9 10 0 0.0758057 0.115601
+1 9 11 0 0.0819092 0.170532
+1 9 12 0 0.0894165 0.236572
+1 9 13 0 0.0985718 0.312256
+1 9 14 0 0.109924 0.396973
+1 9 15 0 0.123901 0.488281
+1 9 16 0 0.140259 0.584473
+1 9 17 0 0.157593 0.677734
+1 9 18 0 0.174561 0.764648
+1 9 19 0 0.190308 0.841797
+1 9 20 0 0.19812 0.885254
+1 9 21 0 0.19751 0.893555
+1 9 22 0 0.197754 0.902344
+1 9 23 0 0.198608 0.911133
+1 9 24 0 0.199951 0.92041
+1 9 25 0 0.201538 0.930176
+1 9 26 0 0.203613 0.941406
+1 9 27 0 0.206055 0.953613
+1 9 28 0 0.209106 0.967773
+1 9 29 0 0.212402 0.982422
+1 9 30 0 0.215942 0.998047
+1 9 31 0 0.219727 1
+1 10 0 0 0.108765 0
+1 10 1 0 0.108765 0
+1 10 2 0 0.108826 0
+1 10 3 0 0.108826 0
+1 10 4 0 0.108887 0
+1 10 5 0 0.108948 0
+1 10 6 0 0.108948 0
+1 10 7 0 0.10907 0.00915527
+1 10 8 0 0.109436 0.0317993
+1 10 9 0 0.110413 0.0687256
+1 10 10 0 0.112915 0.112976
+1 10 11 0 0.118347 0.168335
+1 10 12 0 0.124756 0.234863
+1 10 13 0 0.131958 0.311035
+1 10 14 0 0.140503 0.39624
+1 10 15 0 0.150879 0.488037
+1 10 16 0 0.163452 0.584473
+1 10 17 0 0.177002 0.678223
+1 10 18 0 0.190674 0.764648
+1 10 19 0 0.203735 0.841797
+1 10 20 0 0.209351 0.88623
+1 10 21 0 0.206543 0.894043
+1 10 22 0 0.205322 0.902832
+1 10 23 0 0.204956 0.911621
+1 10 24 0 0.205322 0.920898
+1 10 25 0 0.206299 0.930664
+1 10 26 0 0.207642 0.941895
+1 10 27 0 0.209595 0.954102
+1 10 28 0 0.212158 0.967773
+1 10 29 0 0.215088 0.98291
+1 10 30 0 0.218262 0.998047
+1 10 31 0 0.22168 1
+1 11 0 0 0.158936 0
+1 11 1 0 0.158936 0
+1 11 2 0 0.158936 0
+1 11 3 0 0.158936 0
+1 11 4 0 0.159058 0
+1 11 5 0 0.159058 0
+1 11 6 0 0.15918 0
+1 11 7 0 0.159058 0
+1 11 8 0 0.159058 0.0202332
+1 11 9 0 0.159424 0.0615234
+1 11 10 0 0.161255 0.109131
+1 11 11 0 0.165039 0.165161
+1 11 12 0 0.170288 0.232056
+1 11 13 0 0.176025 0.309082
+1 11 14 0 0.182007 0.39502
+1 11 15 0 0.188965 0.487305
+1 11 16 0 0.197388 0.583984
+1 11 17 0 0.206421 0.678223
+1 11 18 0 0.215942 0.765137
+1 11 19 0 0.22522 0.842285
+1 11 20 0 0.227783 0.887695
+1 11 21 0 0.22168 0.895508
+1 11 22 0 0.217896 0.904297
+1 11 23 0 0.215698 0.913086
+1 11 24 0 0.2146 0.921875
+1 11 25 0 0.214355 0.931641
+1 11 26 0 0.2146 0.942383
+1 11 27 0 0.215698 0.95459
+1 11 28 0 0.217407 0.96875
+1 11 29 0 0.219604 0.983398
+1 11 30 0 0.222168 0.998535
+1 11 31 0 0.224976 1
+1 12 0 0 0.220947 0
+1 12 1 0 0.220947 0
+1 12 2 0 0.220947 0
+1 12 3 0 0.220947 0
+1 12 4 0 0.221069 0
+1 12 5 0 0.221069 0
+1 12 6 0 0.221191 0
+1 12 7 0 0.221313 0
+1 12 8 0 0.221313 0
+1 12 9 0 0.221436 0.0451355
+1 12 10 0 0.222046 0.100769
+1 12 11 0 0.223999 0.159668
+1 12 12 0 0.227417 0.227539
+1 12 13 0 0.231689 0.30542
+1 12 14 0 0.235718 0.392578
+1 12 15 0 0.239624 0.48584
+1 12 16 0 0.244019 0.583496
+1 12 17 0 0.248291 0.677734
+1 12 18 0 0.25293 0.765137
+1 12 19 0 0.257568 0.842773
+1 12 20 0 0.256104 0.890137
+1 12 21 0 0.245239 0.897949
+1 12 22 0 0.237793 0.90625
+1 12 23 0 0.232788 0.914551
+1 12 24 0 0.229614 0.92334
+1 12 25 0 0.227417 0.933105
+1 12 26 0 0.226074 0.943848
+1 12 27 0 0.225586 0.956055
+1 12 28 0 0.225952 0.969727
+1 12 29 0 0.227051 0.984375
+1 12 30 0 0.228638 0.999512
+1 12 31 0 0.230591 1
+1 13 0 0 0.292969 0
+1 13 1 0 0.292969 0
+1 13 2 0 0.292969 0
+1 13 3 0 0.292969 0
+1 13 4 0 0.292969 0
+1 13 5 0 0.292969 0
+1 13 6 0 0.292969 0
+1 13 7 0 0.293213 0
+1 13 8 0 0.293213 0
+1 13 9 0 0.293457 0.00791931
+1 13 10 0 0.293945 0.0814819
+1 13 11 0 0.294922 0.148438
+1 13 12 0 0.296631 0.219849
+1 13 13 0 0.299316 0.299561
+1 13 14 0 0.301758 0.387939
+1 13 15 0 0.303223 0.48291
+1 13 16 0 0.303955 0.581543
+1 13 17 0 0.303711 0.677246
+1 13 18 0 0.302979 0.765625
+1 13 19 0 0.30249 0.843262
+1 13 20 0 0.296631 0.894043
+1 13 21 0 0.279541 0.901367
+1 13 22 0 0.267334 0.909668
+1 13 23 0 0.258545 0.917969
+1 13 24 0 0.252197 0.92627
+1 13 25 0 0.247437 0.935547
+1 13 26 0 0.243652 0.946289
+1 13 27 0 0.240967 0.958008
+1 13 28 0 0.239502 0.971191
+1 13 29 0 0.238892 0.98584
+1 13 30 0 0.238892 1
+1 13 31 0 0.239624 1
+1 14 0 0 0.374268 0
+1 14 1 0 0.374268 0
+1 14 2 0 0.374268 0
+1 14 3 0 0.374268 0
+1 14 4 0 0.374268 0
+1 14 5 0 0.374268 0
+1 14 6 0 0.374268 0
+1 14 7 0 0.374512 0
+1 14 8 0 0.374756 0
+1 14 9 0 0.375 0
+1 14 10 0 0.375488 0.0343323
+1 14 11 0 0.376465 0.125977
+1 14 12 0 0.377441 0.205444
+1 14 13 0 0.378906 0.289062
+1 14 14 0 0.379883 0.380127
+1 14 15 0 0.379395 0.477295
+1 14 16 0 0.377197 0.578125
+1 14 17 0 0.372803 0.675781
+1 14 18 0 0.367188 0.765137
+1 14 19 0 0.361572 0.84375
+1 14 20 0 0.351318 0.899902
+1 14 21 0 0.326904 0.907227
+1 14 22 0 0.308594 0.915039
+1 14 23 0 0.294922 0.922852
+1 14 24 0 0.284912 0.930664
+1 14 25 0 0.276367 0.939941
+1 14 26 0 0.269287 0.949707
+1 14 27 0 0.263672 0.960938
+1 14 28 0 0.259521 0.974121
+1 14 29 0 0.256592 0.988281
+1 14 30 0 0.254639 1
+1 14 31 0 0.253174 1
+1 15 0 0 0.463135 0
+1 15 1 0 0.463135 0
+1 15 2 0 0.463135 0
+1 15 3 0 0.463135 0
+1 15 4 0 0.463135 0
+1 15 5 0 0.463135 0
+1 15 6 0 0.463135 0
+1 15 7 0 0.463135 0
+1 15 8 0 0.463379 0
+1 15 9 0 0.463623 0
+1 15 10 0 0.464355 0
+1 15 11 0 0.465332 0.0797729
+1 15 12 0 0.466553 0.179443
+1 15 13 0 0.467773 0.270752
+1 15 14 0 0.468262 0.366455
+1 15 15 0 0.467041 0.467285
+1 15 16 0 0.462891 0.571289
+1 15 17 0 0.455322 0.671875
+1 15 18 0 0.445068 0.763184
+1 15 19 0 0.434082 0.843262
+1 15 20 0 0.420898 0.90625
+1 15 21 0 0.388428 0.915039
+1 15 22 0 0.363037 0.922852
+1 15 23 0 0.34375 0.930664
+1 15 24 0 0.328857 0.937988
+1 15 25 0 0.315918 0.946289
+1 15 26 0 0.304688 0.955566
+1 15 27 0 0.29541 0.966309
+1 15 28 0 0.287842 0.979004
+1 15 29 0 0.281738 0.992188
+1 15 30 0 0.276611 1
+1 15 31 0 0.272949 1
+1 16 0 0 0.557617 0
+1 16 1 0 0.557617 0
+1 16 2 0 0.557617 0
+1 16 3 0 0.557617 0
+1 16 4 0 0.557617 0
+1 16 5 0 0.557617 0
+1 16 6 0 0.557617 0
+1 16 7 0 0.557617 0
+1 16 8 0 0.558105 0
+1 16 9 0 0.558105 0
+1 16 10 0 0.558594 0
+1 16 11 0 0.560059 0
+1 16 12 0 0.561523 0.133179
+1 16 13 0 0.562988 0.241211
+1 16 14 0 0.563965 0.344238
+1 16 15 0 0.562988 0.450195
+1 16 16 0 0.558594 0.558594
+1 16 17 0 0.548828 0.663086
+1 16 18 0 0.535156 0.758301
+1 16 19 0 0.52002 0.84082
+1 16 20 0 0.50293 0.90918
+1 16 21 0 0.4646 0.924805
+1 16 22 0 0.431885 0.93457
+1 16 23 0 0.40625 0.941895
+1 16 24 0 0.385498 0.949219
+1 16 25 0 0.367432 0.956543
+1 16 26 0 0.351318 0.965332
+1 16 27 0 0.337402 0.974609
+1 16 28 0 0.325439 0.986328
+1 16 29 0 0.31543 0.998535
+1 16 30 0 0.306885 1
+1 16 31 0 0.299561 1
+1 17 0 0 0.651855 0
+1 17 1 0 0.651855 0
+1 17 2 0 0.651855 0
+1 17 3 0 0.651855 0
+1 17 4 0 0.651855 0
+1 17 5 0 0.651855 0
+1 17 6 0 0.651855 0
+1 17 7 0 0.651855 0
+1 17 8 0 0.652344 0
+1 17 9 0 0.652344 0
+1 17 10 0 0.652832 0
+1 17 11 0 0.653809 0
+1 17 12 0 0.655762 0.0249481
+1 17 13 0 0.658203 0.195312
+1 17 14 0 0.660156 0.311523
+1 17 15 0 0.660645 0.424072
+1 17 16 0 0.656738 0.537598
+1 17 17 0 0.646973 0.647461
+1 17 18 0 0.632324 0.747559
+1 17 19 0 0.61377 0.834473
+1 17 20 0 0.592773 0.905762
+1 17 21 0 0.552734 0.93457
+1 17 22 0 0.513672 0.94873
+1 17 23 0 0.481445 0.95752
+1 17 24 0 0.454834 0.964844
+1 17 25 0 0.430664 0.97168
+1 17 26 0 0.408936 0.979004
+1 17 27 0 0.389404 0.987305
+1 17 28 0 0.372559 0.99707
+1 17 29 0 0.357666 1
+1 17 30 0 0.344727 1
+1 17 31 0 0.333496 1
+1 18 0 0 0.740723 0
+1 18 1 0 0.740723 0
+1 18 2 0 0.740723 0
+1 18 3 0 0.740723 0
+1 18 4 0 0.740723 0
+1 18 5 0 0.740723 0
+1 18 6 0 0.740723 0
+1 18 7 0 0.740723 0
+1 18 8 0 0.741211 0
+1 18 9 0 0.741211 0
+1 18 10 0 0.741211 0
+1 18 11 0 0.742188 0
+1 18 12 0 0.744141 0
+1 18 13 0 0.74707 0.119873
+1 18 14 0 0.750488 0.266113
+1 18 15 0 0.752441 0.388672
+1 18 16 0 0.750977 0.508301
+1 18 17 0 0.743164 0.623535
+1 18 18 0 0.729492 0.729492
+1 18 19 0 0.709961 0.821777
+1 18 20 0 0.686523 0.897949
+1 18 21 0 0.647949 0.940918
+1 18 22 0 0.60498 0.963379
+1 18 23 0 0.567383 0.976074
+1 18 24 0 0.534668 0.984375
+1 18 25 0 0.504395 0.991211
+1 18 26 0 0.476074 0.997559
+1 18 27 0 0.450439 1
+1 18 28 0 0.427734 1
+1 18 29 0 0.407715 1
+1 18 30 0 0.389893 1
+1 18 31 0 0.374023 1
+1 19 0 0 0.821289 0
+1 19 1 0 0.821289 0
+1 19 2 0 0.821289 0
+1 19 3 0 0.821289 0
+1 19 4 0 0.821289 0
+1 19 5 0 0.821289 0
+1 19 6 0 0.821289 0
+1 19 7 0 0.821289 0
+1 19 8 0 0.821289 0
+1 19 9 0 0.821289 0
+1 19 10 0 0.821777 0
+1 19 11 0 0.821777 0
+1 19 12 0 0.82373 0
+1 19 13 0 0.827148 0
+1 19 14 0 0.831055 0.2052
+1 19 15 0 0.834473 0.344482
+1 19 16 0 0.835449 0.47168
+1 19 17 0 0.831543 0.592773
+1 19 18 0 0.820312 0.70459
+1 19 19 0 0.801758 0.802246
+1 19 20 0 0.777832 0.883301
+1 19 21 0 0.742676 0.94043
+1 19 22 0 0.700684 0.974609
+1 19 23 0 0.65918 0.993652
+1 19 24 0 0.621582 1
+1 19 25 0 0.585449 1
+1 19 26 0 0.550781 1
+1 19 27 0 0.519043 1
+1 19 28 0 0.48999 1
+1 19 29 0 0.463867 1
+1 19 30 0 0.44043 1
+1 19 31 0 0.419678 1
+1 20 0 0 0.891113 0
+1 20 1 0 0.891113 0
+1 20 2 0 0.891113 0
+1 20 3 0 0.891113 0
+1 20 4 0 0.891113 0
+1 20 5 0 0.891113 0
+1 20 6 0 0.891113 0
+1 20 7 0 0.891113 0
+1 20 8 0 0.891113 0
+1 20 9 0 0.891602 0
+1 20 10 0 0.891602 0
+1 20 11 0 0.891602 0
+1 20 12 0 0.892578 0
+1 20 13 0 0.895996 0
+1 20 14 0 0.900391 0.114441
+1 20 15 0 0.905273 0.29248
+1 20 16 0 0.908691 0.429443
+1 20 17 0 0.907715 0.555664
+1 20 18 0 0.899902 0.672363
+1 20 19 0 0.884277 0.775879
+1 20 20 0 0.861816 0.862305
+1 20 21 0 0.831543 0.931152
+1 20 22 0 0.79248 0.977539
+1 20 23 0 0.750977 1
+1 20 24 0 0.710449 1
+1 20 25 0 0.669434 1
+1 20 26 0 0.629395 1
+1 20 27 0 0.591309 1
+1 20 28 0 0.556152 1
+1 20 29 0 0.523926 1
+1 20 30 0 0.494873 1
+1 20 31 0 0.468506 1
+1 21 0 0 0.951172 0
+1 21 1 0 0.951172 0
+1 21 2 0 0.951172 0
+1 21 3 0 0.951172 0
+1 21 4 0 0.951172 0
+1 21 5 0 0.951172 0
+1 21 6 0 0.951172 0
+1 21 7 0 0.951172 0
+1 21 8 0 0.951172 0
+1 21 9 0 0.951172 0
+1 21 10 0 0.951172 0
+1 21 11 0 0.95166 0
+1 21 12 0 0.95166 0
+1 21 13 0 0.95459 0
+1 21 14 0 0.959473 0
+1 21 15 0 0.965332 0.228394
+1 21 16 0 0.970703 0.381348
+1 21 17 0 0.972656 0.513672
+1 21 18 0 0.968262 0.634766
+1 21 19 0 0.956543 0.742676
+1 21 20 0 0.937012 0.834473
+1 21 21 0 0.911133 0.911621
+1 21 22 0 0.877441 0.970215
+1 21 23 0 0.838867 1
+1 21 24 0 0.797852 1
+1 21 25 0 0.754883 1
+1 21 26 0 0.710449 1
+1 21 27 0 0.666992 1
+1 21 28 0 0.625977 1
+1 21 29 0 0.587891 1
+1 21 30 0 0.552734 1
+1 21 31 0 0.520996 1
+1 22 0 0 1 0
+1 22 1 0 1 0
+1 22 2 0 1 0
+1 22 3 0 1 0
+1 22 4 0 1 0
+1 22 5 0 1 0
+1 22 6 0 1 0
+1 22 7 0 1 0
+1 22 8 0 1 0
+1 22 9 0 1 0
+1 22 10 0 1 0
+1 22 11 0 1 0
+1 22 12 0 1 0
+1 22 13 0 1 0
+1 22 14 0 1 0
+1 22 15 0 1 0.142456
+1 22 16 0 1 0.327881
+1 22 17 0 1 0.468018
+1 22 18 0 1 0.593262
+1 22 19 0 1 0.705078
+1 22 20 0 1 0.80127
+1 22 21 0 0.979004 0.883789
+1 22 22 0 0.950195 0.950684
+1 22 23 0 0.916504 1
+1 22 24 0 0.878906 1
+1 22 25 0 0.835938 1
+1 22 26 0 0.789551 1
+1 22 27 0 0.742676 1
+1 22 28 0 0.697266 1
+1 22 29 0 0.653809 1
+1 22 30 0 0.613281 1
+1 22 31 0 0.575684 1
+1 23 0 0 1 0
+1 23 1 0 1 0
+1 23 2 0 1 0
+1 23 3 0 1 0
+1 23 4 0 1 0
+1 23 5 0 1 0
+1 23 6 0 1 0
+1 23 7 0 1 0
+1 23 8 0 1 0
+1 23 9 0 1 0
+1 23 10 0 1 0
+1 23 11 0 1 0
+1 23 12 0 1 0
+1 23 13 0 1 0
+1 23 14 0 1 0
+1 23 15 0 1 0
+1 23 16 0 1 0.270264
+1 23 17 0 1 0.421143
+1 23 18 0 1 0.550293
+1 23 19 0 1 0.665527
+1 23 20 0 1 0.765137
+1 23 21 0 1 0.852051
+1 23 22 0 1 0.923828
+1 23 23 0 0.980469 0.980957
+1 23 24 0 0.947266 1
+1 23 25 0 0.907227 1
+1 23 26 0 0.861816 1
+1 23 27 0 0.813477 1
+1 23 28 0 0.764648 1
+1 23 29 0 0.717285 1
+1 23 30 0 0.671875 1
+1 23 31 0 0.629395 1
+1 24 0 0 1 0
+1 24 1 0 1 0
+1 24 2 0 1 0
+1 24 3 0 1 0
+1 24 4 0 1 0
+1 24 5 0 1 0
+1 24 6 0 1 0
+1 24 7 0 1 0
+1 24 8 0 1 0
+1 24 9 0 1 0
+1 24 10 0 1 0
+1 24 11 0 1 0
+1 24 12 0 1 0
+1 24 13 0 1 0
+1 24 14 0 1 0
+1 24 15 0 1 0
+1 24 16 0 1 0.204346
+1 24 17 0 1 0.373291
+1 24 18 0 1 0.507324
+1 24 19 0 1 0.624512
+1 24 20 0 1 0.727539
+1 24 21 0 1 0.817383
+1 24 22 0 1 0.893555
+1 24 23 0 1 0.955566
+1 24 24 0 1 1
+1 24 25 0 0.96875 1
+1 24 26 0 0.925781 1
+1 24 27 0 0.87793 1
+1 24 28 0 0.828125 1
+1 24 29 0 0.777344 1
+1 24 30 0 0.728516 1
+1 24 31 0 0.682129 1
+1 25 0 0 1 0
+1 25 1 0 1 0
+1 25 2 0 1 0
+1 25 3 0 1 0
+1 25 4 0 1 0
+1 25 5 0 1 0
+1 25 6 0 1 0
+1 25 7 0 1 0
+1 25 8 0 1 0
+1 25 9 0 1 0
+1 25 10 0 1 0
+1 25 11 0 1 0
+1 25 12 0 1 0
+1 25 13 0 1 0
+1 25 14 0 1 0
+1 25 15 0 1 0
+1 25 16 0 1 0.10437
+1 25 17 0 1 0.318359
+1 25 18 0 1 0.459229
+1 25 19 0 1 0.57959
+1 25 20 0 1 0.68457
+1 25 21 0 1 0.777344
+1 25 22 0 1 0.85791
+1 25 23 0 1 0.923828
+1 25 24 0 1 0.977539
+1 25 25 0 1 1
+1 25 26 0 0.986816 1
+1 25 27 0 0.941406 1
+1 25 28 0 0.891602 1
+1 25 29 0 0.839355 1
+1 25 30 0 0.787598 1
+1 25 31 0 0.737793 1
+1 26 0 0 1 0
+1 26 1 0 1 0
+1 26 2 0 1 0
+1 26 3 0 1 0
+1 26 4 0 1 0
+1 26 5 0 1 0
+1 26 6 0 1 0
+1 26 7 0 1 0
+1 26 8 0 1 0
+1 26 9 0 1 0
+1 26 10 0 1 0
+1 26 11 0 1 0
+1 26 12 0 1 0
+1 26 13 0 1 0
+1 26 14 0 1 0
+1 26 15 0 1 0
+1 26 16 0 1 0
+1 26 17 0 1 0.25293
+1 26 18 0 1 0.40625
+1 26 19 0 1 0.529785
+1 26 20 0 1 0.636719
+1 26 21 0 1 0.732422
+1 26 22 0 1 0.815918
+1 26 23 0 1 0.885742
+1 26 24 0 1 0.943848
+1 26 25 0 1 0.99707
+1 26 26 0 1 1
+1 26 27 0 1 1
+1 26 28 0 0.953613 1
+1 26 29 0 0.901855 1
+1 26 30 0 0.848633 1
+1 26 31 0 0.795898 1
+1 27 0 0 1 0
+1 27 1 0 1 0
+1 27 2 0 1 0
+1 27 3 0 1 0
+1 27 4 0 1 0
+1 27 5 0 1 0
+1 27 6 0 1 0
+1 27 7 0 1 0
+1 27 8 0 1 0
+1 27 9 0 1 0
+1 27 10 0 1 0
+1 27 11 0 1 0
+1 27 12 0 1 0
+1 27 13 0 1 0
+1 27 14 0 1 0
+1 27 15 0 1 0
+1 27 16 0 1 0
+1 27 17 0 1 0.166138
+1 27 18 0 1 0.34668
+1 27 19 0 1 0.47583
+1 27 20 0 1 0.584961
+1 27 21 0 1 0.682129
+1 27 22 0 1 0.768066
+1 27 23 0 1 0.841309
+1 27 24 0 1 0.90332
+1 27 25 0 1 0.960938
+1 27 26 0 1 1
+1 27 27 0 1 1
+1 27 28 0 1 1
+1 27 29 0 0.962402 1
+1 27 30 0 0.908691 1
+1 27 31 0 0.854492 1
+1 28 0 0 1 0
+1 28 1 0 1 0
+1 28 2 0 1 0
+1 28 3 0 1 0
+1 28 4 0 1 0
+1 28 5 0 1 0
+1 28 6 0 1 0
+1 28 7 0 1 0
+1 28 8 0 1 0
+1 28 9 0 1 0
+1 28 10 0 1 0
+1 28 11 0 1 0
+1 28 12 0 1 0
+1 28 13 0 1 0
+1 28 14 0 1 0
+1 28 15 0 1 0
+1 28 16 0 1 0
+1 28 17 0 1 0
+1 28 18 0 1 0.278076
+1 28 19 0 1 0.417236
+1 28 20 0 1 0.529297
+1 28 21 0 1 0.62793
+1 28 22 0 1 0.71582
+1 28 23 0 1 0.791016
+1 28 24 0 1 0.855957
+1 28 25 0 1 0.91748
+1 28 26 0 1 0.974121
+1 28 27 0 1 1
+1 28 28 0 1 1
+1 28 29 0 1 1
+1 28 30 0 0.968262 1
+1 28 31 0 0.914062 1
+1 29 0 0 1 0
+1 29 1 0 1 0
+1 29 2 0 1 0
+1 29 3 0 1 0
+1 29 4 0 1 0
+1 29 5 0 1 0
+1 29 6 0 1 0
+1 29 7 0 1 0
+1 29 8 0 1 0
+1 29 9 0 1 0
+1 29 10 0 1 0
+1 29 11 0 1 0
+1 29 12 0 1 0
+1 29 13 0 1 0
+1 29 14 0 1 0
+1 29 15 0 1 0
+1 29 16 0 1 0
+1 29 17 0 1 0
+1 29 18 0 1 0.19104
+1 29 19 0 1 0.352051
+1 29 20 0 1 0.46875
+1 29 21 0 1 0.569336
+1 29 22 0 1 0.658203
+1 29 23 0 1 0.735352
+1 29 24 0 1 0.802734
+1 29 25 0 1 0.867188
+1 29 26 0 1 0.928223
+1 29 27 0 1 0.983398
+1 29 28 0 1 1
+1 29 29 0 1 1
+1 29 30 0 1 1
+1 29 31 0 0.973145 1
+1 30 0 0 1 0
+1 30 1 0 1 0
+1 30 2 0 1 0
+1 30 3 0 1 0
+1 30 4 0 1 0
+1 30 5 0 1 0
+1 30 6 0 1 0
+1 30 7 0 1 0
+1 30 8 0 1 0
+1 30 9 0 1 0
+1 30 10 0 1 0
+1 30 11 0 1 0
+1 30 12 0 1 0
+1 30 13 0 1 0
+1 30 14 0 1 0
+1 30 15 0 1 0
+1 30 16 0 1 0
+1 30 17 0 1 0
+1 30 18 0 1 0.022583
+1 30 19 0 1 0.277588
+1 30 20 0 1 0.403564
+1 30 21 0 1 0.506836
+1 30 22 0 1 0.59668
+1 30 23 0 1 0.674805
+1 30 24 0 1 0.743652
+1 30 25 0 1 0.810547
+1 30 26 0 1 0.874512
+1 30 27 0 1 0.935059
+1 30 28 0 1 0.989746
+1 30 29 0 1 1
+1 30 30 0 1 1
+1 30 31 0 1 1
+1 31 0 0 1 0
+1 31 1 0 1 0
+1 31 2 0 1 0
+1 31 3 0 1 0
+1 31 4 0 1 0
+1 31 5 0 1 0
+1 31 6 0 1 0
+1 31 7 0 1 0
+1 31 8 0 1 0
+1 31 9 0 1 0
+1 31 10 0 1 0
+1 31 11 0 1 0
+1 31 12 0 1 0
+1 31 13 0 1 0
+1 31 14 0 1 0
+1 31 15 0 1 0
+1 31 16 0 1 0
+1 31 17 0 1 0
+1 31 18 0 1 0
+1 31 19 0 1 0.184082
+1 31 20 0 1 0.331787
+1 31 21 0 1 0.439941
+1 31 22 0 1 0.531738
+1 31 23 0 1 0.610352
+1 31 24 0 1 0.680176
+1 31 25 0 1 0.748535
+1 31 26 0 1 0.81543
+1 31 27 0 1 0.879883
+1 31 28 0 1 0.94043
+1 31 29 0 1 0.995117
+1 31 30 0 1 1
+1 31 31 0 1 1
+2 0 0 0.000906944 0.000189304 0.000179648
+2 0 1 0.000760078 0.000167131 0.000297546
+2 0 2 0.000504017 0.000141978 0.00038147
+2 0 3 0.000691891 0.000246763 0.00108624
+2 0 4 0.000717163 0.000436306 0.00307655
+2 0 5 2.80142e-05 0.000653267 0.00699615
+2 0 6 0 0.000918865 0.0136871
+2 0 7 0 0.00135422 0.0255432
+2 0 8 0 0.00217247 0.0471802
+2 0 9 0 0.00375175 0.078125
+2 0 10 0 0.00684738 0.119446
+2 0 11 0 0.0127792 0.173584
+2 0 12 0 0.0229797 0.238647
+2 0 13 0 0.0393677 0.313721
+2 0 14 0 0.0606995 0.397705
+2 0 15 0 0.0838623 0.48877
+2 0 16 0 0.108215 0.584473
+2 0 17 0 0.131958 0.677734
+2 0 18 0 0.154053 0.764648
+2 0 19 0 0.173584 0.841309
+2 0 20 0 0.184448 0.884277
+2 0 21 0 0.186646 0.892578
+2 0 22 0 0.188843 0.901367
+2 0 23 0 0.191162 0.910645
+2 0 24 0 0.193481 0.919922
+2 0 25 0 0.196045 0.929688
+2 0 26 0 0.198853 0.940918
+2 0 27 0 0.202026 0.953125
+2 0 28 0 0.205566 0.967285
+2 0 29 0 0.209351 0.982422
+2 0 30 0 0.213379 0.997559
+2 0 31 0 0.217407 1
+2 1 0 0.000530243 0.000214815 0.000116825
+2 1 1 0.00070715 0.000296116 0.000292063
+2 1 2 0.000475645 0.000231624 0.000392914
+2 1 3 0.000612259 0.000375986 0.00108242
+2 1 4 0.000584126 0.000630379 0.00304604
+2 1 5 0 0.000890732 0.00696182
+2 1 6 0 0.00116634 0.0136642
+2 1 7 0 0.0015955 0.025528
+2 1 8 0 0.00240517 0.0471802
+2 1 9 0 0.00397873 0.078064
+2 1 10 0 0.00708008 0.119385
+2 1 11 0 0.0130234 0.173584
+2 1 12 0 0.0232391 0.238647
+2 1 13 0 0.0396423 0.313477
+2 1 14 0 0.0608826 0.397705
+2 1 15 0 0.0839844 0.48877
+2 1 16 0 0.108276 0.584473
+2 1 17 0 0.13208 0.677734
+2 1 18 0 0.154053 0.764648
+2 1 19 0 0.173584 0.841309
+2 1 20 0 0.184448 0.884277
+2 1 21 0 0.186646 0.892578
+2 1 22 0 0.188843 0.901367
+2 1 23 0 0.191162 0.910645
+2 1 24 0 0.193481 0.919922
+2 1 25 0 0.196045 0.929688
+2 1 26 0 0.198853 0.940918
+2 1 27 0 0.202026 0.953125
+2 1 28 0 0.205566 0.967285
+2 1 29 0 0.209351 0.982422
+2 1 30 0 0.213379 0.997559
+2 1 31 0 0.217407 1
+2 2 0 0.000393391 0.000324726 0.000102282
+2 2 1 0.000395775 0.000349045 0.000197411
+2 2 2 0.000430346 0.000430346 0.000430346
+2 2 3 0.000478745 0.000625134 0.00109959
+2 2 4 0.000351429 0.00097847 0.0030098
+2 2 5 0 0.00131226 0.00690842
+2 2 6 0 0.00160694 0.0136185
+2 2 7 0 0.0020256 0.0254822
+2 2 8 0 0.00281906 0.0471497
+2 2 9 0 0.00438309 0.078064
+2 2 10 0 0.00749207 0.119385
+2 2 11 0 0.0134583 0.173584
+2 2 12 0 0.0236816 0.238647
+2 2 13 0 0.0400696 0.313477
+2 2 14 0 0.0612183 0.397705
+2 2 15 0 0.0842285 0.48877
+2 2 16 0 0.108521 0.584473
+2 2 17 0 0.132202 0.677734
+2 2 18 0 0.154175 0.764648
+2 2 19 0 0.173706 0.841309
+2 2 20 0 0.18457 0.884277
+2 2 21 0 0.186646 0.892578
+2 2 22 0 0.188965 0.901367
+2 2 23 0 0.191284 0.910645
+2 2 24 0 0.193481 0.919922
+2 2 25 0 0.196045 0.929688
+2 2 26 0 0.198975 0.940918
+2 2 27 0 0.202026 0.953125
+2 2 28 0 0.205688 0.967285
+2 2 29 0 0.209473 0.982422
+2 2 30 0 0.213379 0.997559
+2 2 31 0 0.217407 1
+2 3 0 0.000360012 0.000857353 0.000119328
+2 3 1 0.000330687 0.000871658 0.000249147
+2 3 2 0.000292301 0.000948429 0.000514984
+2 3 3 0.000213981 0.00117779 0.00117874
+2 3 4 0 0.00164223 0.00299454
+2 3 5 0 0.00208473 0.00681686
+2 3 6 0 0.0024128 0.0135422
+2 3 7 0 0.00281334 0.0254211
+2 3 8 0 0.00357819 0.0470886
+2 3 9 0 0.00512695 0.0780029
+2 3 10 0 0.00824738 0.119324
+2 3 11 0 0.0142517 0.173462
+2 3 12 0 0.0245056 0.238525
+2 3 13 0 0.0408936 0.313477
+2 3 14 0 0.0618286 0.397705
+2 3 15 0 0.0847168 0.48877
+2 3 16 0 0.108826 0.584473
+2 3 17 0 0.132446 0.677734
+2 3 18 0 0.154419 0.764648
+2 3 19 0 0.173828 0.841309
+2 3 20 0 0.184692 0.884277
+2 3 21 0 0.186768 0.892578
+2 3 22 0 0.188965 0.901367
+2 3 23 0 0.191284 0.910645
+2 3 24 0 0.193604 0.919922
+2 3 25 0 0.196167 0.929688
+2 3 26 0 0.198975 0.940918
+2 3 27 0 0.202148 0.953125
+2 3 28 0 0.205688 0.967285
+2 3 29 0 0.209473 0.982422
+2 3 30 0 0.213379 0.997559
+2 3 31 0 0.217529 1
+2 4 0 0 0.00243187 7.80225e-05
+2 4 1 0 0.00240898 0.000275373
+2 4 2 0 0.00243759 0.000631809
+2 4 3 0 0.00261497 0.00136089
+2 4 4 0 0.0030365 0.00303841
+2 4 5 0 0.00355911 0.00669098
+2 4 6 0 0.00393677 0.0133896
+2 4 7 0 0.00430298 0.0252991
+2 4 8 0 0.00501251 0.0469971
+2 4 9 0 0.00652695 0.0779419
+2 4 10 0 0.00967407 0.119263
+2 4 11 0 0.0157471 0.173462
+2 4 12 0 0.026062 0.238525
+2 4 13 0 0.0423889 0.313477
+2 4 14 0 0.0629883 0.397705
+2 4 15 0 0.0855713 0.48877
+2 4 16 0 0.109497 0.584473
+2 4 17 0 0.132935 0.677734
+2 4 18 0 0.154785 0.764648
+2 4 19 0 0.174194 0.841309
+2 4 20 0 0.184937 0.884277
+2 4 21 0 0.187012 0.892578
+2 4 22 0 0.189209 0.901367
+2 4 23 0 0.191406 0.910645
+2 4 24 0 0.193726 0.919922
+2 4 25 0 0.196289 0.929688
+2 4 26 0 0.199097 0.940918
+2 4 27 0 0.202148 0.953125
+2 4 28 0 0.205688 0.967285
+2 4 29 0 0.209473 0.982422
+2 4 30 0 0.213501 0.997559
+2 4 31 0 0.217529 1
+2 5 0 0 0.00592041 0
+2 5 1 0 0.00589371 8.54135e-05
+2 5 2 0 0.00588226 0.000548363
+2 5 3 0 0.0059166 0.00139618
+2 5 4 0 0.0060997 0.00306129
+2 5 5 0 0.00650024 0.00650406
+2 5 6 0 0.00688171 0.0130844
+2 5 7 0 0.00718307 0.0250244
+2 5 8 0 0.00778961 0.0467834
+2 5 9 0 0.00923157 0.0777588
+2 5 10 0 0.0124283 0.11908
+2 5 11 0 0.0186615 0.17334
+2 5 12 0 0.0290527 0.238403
+2 5 13 0 0.0452271 0.313477
+2 5 14 0 0.0651245 0.397705
+2 5 15 0 0.0871582 0.48877
+2 5 16 0 0.110718 0.584473
+2 5 17 0 0.133911 0.677734
+2 5 18 0 0.155518 0.764648
+2 5 19 0 0.174805 0.841309
+2 5 20 0 0.185425 0.884277
+2 5 21 0 0.187378 0.892578
+2 5 22 0 0.189453 0.901367
+2 5 23 0 0.19165 0.910645
+2 5 24 0 0.19397 0.919922
+2 5 25 0 0.196411 0.929688
+2 5 26 0 0.199219 0.940918
+2 5 27 0 0.202271 0.953125
+2 5 28 0 0.205811 0.967285
+2 5 29 0 0.209595 0.982422
+2 5 30 0 0.213501 0.997559
+2 5 31 0 0.217651 1
+2 6 0 0 0.0119934 0
+2 6 1 0 0.012001 0
+2 6 2 0 0.0120087 2.19941e-05
+2 6 3 0 0.0120316 0.000943184
+2 6 4 0 0.0120926 0.00268555
+2 6 5 0 0.0122528 0.00606537
+2 6 6 0 0.0124664 0.0124741
+2 6 7 0 0.0126648 0.0244598
+2 6 8 0 0.0130997 0.0463562
+2 6 9 0 0.0144043 0.0774536
+2 6 10 0 0.0176849 0.118835
+2 6 11 0 0.0241852 0.173096
+2 6 12 0 0.0347595 0.238281
+2 6 13 0 0.050354 0.313477
+2 6 14 0 0.0690918 0.397705
+2 6 15 0 0.09021 0.48877
+2 6 16 0 0.113098 0.584473
+2 6 17 0 0.135742 0.677734
+2 6 18 0 0.156982 0.764648
+2 6 19 0 0.175903 0.841309
+2 6 20 0 0.186401 0.884277
+2 6 21 0 0.18811 0.892578
+2 6 22 0 0.190063 0.901367
+2 6 23 0 0.192261 0.910645
+2 6 24 0 0.194336 0.919922
+2 6 25 0 0.196777 0.929688
+2 6 26 0 0.199585 0.940918
+2 6 27 0 0.202637 0.953125
+2 6 28 0 0.206055 0.967285
+2 6 29 0 0.209839 0.982422
+2 6 30 0 0.213745 0.997559
+2 6 31 0 0.217773 1
+2 7 0 0 0.022583 0
+2 7 1 0 0.0225983 0
+2 7 2 0 0.0226288 0
+2 7 3 0 0.0226898 0
+2 7 4 0 0.0227814 0.00155449
+2 7 5 0 0.0229187 0.00489044
+2 7 6 0 0.0230713 0.0112152
+2 7 7 0 0.0231934 0.0232086
+2 7 8 0 0.0233917 0.0453796
+2 7 9 0 0.0244598 0.0767822
+2 7 10 0 0.0278931 0.118286
+2 7 11 0 0.0349426 0.172729
+2 7 12 0 0.0455933 0.238037
+2 7 13 0 0.0594177 0.313232
+2 7 14 0 0.076355 0.397461
+2 7 15 0 0.0959473 0.48877
+2 7 16 0 0.117554 0.584473
+2 7 17 0 0.13916 0.677734
+2 7 18 0 0.15979 0.764648
+2 7 19 0 0.178101 0.841309
+2 7 20 0 0.188232 0.884277
+2 7 21 0 0.189575 0.892578
+2 7 22 0 0.191284 0.901855
+2 7 23 0 0.193237 0.910645
+2 7 24 0 0.19519 0.919922
+2 7 25 0 0.19751 0.929688
+2 7 26 0 0.200195 0.940918
+2 7 27 0 0.203125 0.953613
+2 7 28 0 0.206543 0.967285
+2 7 29 0 0.210205 0.982422
+2 7 30 0 0.214111 0.998047
+2 7 31 0 0.218018 1
+2 8 0 0 0.0420837 0
+2 8 1 0 0.0421143 0
+2 8 2 0 0.0421448 0
+2 8 3 0 0.0422058 0
+2 8 4 0 0.0423279 0
+2 8 5 0 0.042511 0.00263405
+2 8 6 0 0.0427551 0.00879669
+2 8 7 0 0.0430298 0.0206909
+2 8 8 0 0.0431519 0.0432129
+2 8 9 0 0.0439758 0.0755615
+2 8 10 0 0.0473328 0.117249
+2 8 11 0 0.0542297 0.171875
+2 8 12 0 0.0632324 0.237549
+2 8 13 0 0.074707 0.312988
+2 8 14 0 0.0891113 0.397217
+2 8 15 0 0.106262 0.488525
+2 8 16 0 0.125732 0.584473
+2 8 17 0 0.145752 0.677734
+2 8 18 0 0.164917 0.764648
+2 8 19 0 0.182373 0.841309
+2 8 20 0 0.19165 0.884766
+2 8 21 0 0.192261 0.893066
+2 8 22 0 0.193481 0.901855
+2 8 23 0 0.195068 0.911133
+2 8 24 0 0.196777 0.919922
+2 8 25 0 0.198975 0.930176
+2 8 26 0 0.201294 0.940918
+2 8 27 0 0.204102 0.953613
+2 8 28 0 0.207397 0.967285
+2 8 29 0 0.210938 0.982422
+2 8 30 0 0.214722 0.998047
+2 8 31 0 0.218628 1
+2 9 0 0 0.0709229 0
+2 9 1 0 0.0709229 0
+2 9 2 0 0.0709229 0
+2 9 3 0 0.0709839 0
+2 9 4 0 0.0710449 0
+2 9 5 0 0.071167 0
+2 9 6 0 0.0713501 0.0046196
+2 9 7 0 0.0716553 0.0162201
+2 9 8 0 0.0721436 0.0387878
+2 9 9 0 0.072998 0.0730591
+2 9 10 0 0.0758057 0.115601
+2 9 11 0 0.0818481 0.170532
+2 9 12 0 0.0894165 0.236572
+2 9 13 0 0.0985718 0.312256
+2 9 14 0 0.109924 0.396973
+2 9 15 0 0.123901 0.488525
+2 9 16 0 0.140259 0.584473
+2 9 17 0 0.157593 0.677734
+2 9 18 0 0.174561 0.764648
+2 9 19 0 0.190308 0.841797
+2 9 20 0 0.19812 0.885254
+2 9 21 0 0.19751 0.893555
+2 9 22 0 0.197754 0.902344
+2 9 23 0 0.198608 0.911133
+2 9 24 0 0.199951 0.92041
+2 9 25 0 0.201538 0.930176
+2 9 26 0 0.203613 0.941406
+2 9 27 0 0.206055 0.953613
+2 9 28 0 0.209106 0.967773
+2 9 29 0 0.212402 0.982422
+2 9 30 0 0.215942 0.998047
+2 9 31 0 0.219727 1
+2 10 0 0 0.108765 0
+2 10 1 0 0.108765 0
+2 10 2 0 0.108765 0
+2 10 3 0 0.108826 0
+2 10 4 0 0.108887 0
+2 10 5 0 0.108948 0
+2 10 6 0 0.108948 0
+2 10 7 0 0.10907 0.00914764
+2 10 8 0 0.109436 0.0317688
+2 10 9 0 0.110413 0.0687256
+2 10 10 0 0.112915 0.112976
+2 10 11 0 0.118347 0.168335
+2 10 12 0 0.124756 0.234863
+2 10 13 0 0.131958 0.311035
+2 10 14 0 0.140503 0.39624
+2 10 15 0 0.150879 0.488037
+2 10 16 0 0.163452 0.584473
+2 10 17 0 0.177002 0.678223
+2 10 18 0 0.190674 0.764648
+2 10 19 0 0.203735 0.841797
+2 10 20 0 0.209351 0.88623
+2 10 21 0 0.206543 0.894043
+2 10 22 0 0.205322 0.902832
+2 10 23 0 0.204956 0.911621
+2 10 24 0 0.205322 0.920898
+2 10 25 0 0.206299 0.930664
+2 10 26 0 0.207642 0.941895
+2 10 27 0 0.209595 0.954102
+2 10 28 0 0.212158 0.967773
+2 10 29 0 0.215088 0.98291
+2 10 30 0 0.218262 0.998047
+2 10 31 0 0.22168 1
+2 11 0 0 0.158936 0
+2 11 1 0 0.158936 0
+2 11 2 0 0.158936 0
+2 11 3 0 0.158936 0
+2 11 4 0 0.159058 0
+2 11 5 0 0.159058 0
+2 11 6 0 0.15918 0
+2 11 7 0 0.159058 0
+2 11 8 0 0.159058 0.0202332
+2 11 9 0 0.159424 0.0615234
+2 11 10 0 0.161255 0.109131
+2 11 11 0 0.165039 0.165161
+2 11 12 0 0.170288 0.232056
+2 11 13 0 0.176025 0.309082
+2 11 14 0 0.182007 0.39502
+2 11 15 0 0.188965 0.487305
+2 11 16 0 0.197388 0.583984
+2 11 17 0 0.206421 0.678223
+2 11 18 0 0.215942 0.765137
+2 11 19 0 0.22522 0.842285
+2 11 20 0 0.227783 0.887695
+2 11 21 0 0.22168 0.895508
+2 11 22 0 0.217896 0.904297
+2 11 23 0 0.215698 0.913086
+2 11 24 0 0.2146 0.921875
+2 11 25 0 0.214355 0.931641
+2 11 26 0 0.2146 0.942383
+2 11 27 0 0.215698 0.95459
+2 11 28 0 0.217407 0.96875
+2 11 29 0 0.219604 0.983398
+2 11 30 0 0.222168 0.998535
+2 11 31 0 0.224976 1
+2 12 0 0 0.220947 0
+2 12 1 0 0.220947 0
+2 12 2 0 0.220947 0
+2 12 3 0 0.220947 0
+2 12 4 0 0.221069 0
+2 12 5 0 0.221069 0
+2 12 6 0 0.221191 0
+2 12 7 0 0.221313 0
+2 12 8 0 0.221313 0
+2 12 9 0 0.221436 0.0451355
+2 12 10 0 0.222046 0.100769
+2 12 11 0 0.223999 0.159668
+2 12 12 0 0.227417 0.227539
+2 12 13 0 0.231689 0.30542
+2 12 14 0 0.235718 0.392578
+2 12 15 0 0.239624 0.48584
+2 12 16 0 0.244019 0.583496
+2 12 17 0 0.248291 0.677734
+2 12 18 0 0.25293 0.765137
+2 12 19 0 0.257568 0.842773
+2 12 20 0 0.256104 0.890137
+2 12 21 0 0.245239 0.897949
+2 12 22 0 0.237793 0.90625
+2 12 23 0 0.232788 0.914551
+2 12 24 0 0.229614 0.92334
+2 12 25 0 0.227417 0.933105
+2 12 26 0 0.226074 0.943848
+2 12 27 0 0.225586 0.956055
+2 12 28 0 0.225952 0.969727
+2 12 29 0 0.227051 0.984375
+2 12 30 0 0.228638 0.999512
+2 12 31 0 0.230591 1
+2 13 0 0 0.292969 0
+2 13 1 0 0.292969 0
+2 13 2 0 0.292969 0
+2 13 3 0 0.292969 0
+2 13 4 0 0.292969 0
+2 13 5 0 0.292969 0
+2 13 6 0 0.292969 0
+2 13 7 0 0.293213 0
+2 13 8 0 0.293213 0
+2 13 9 0 0.293457 0.00791168
+2 13 10 0 0.293945 0.0814819
+2 13 11 0 0.294922 0.148438
+2 13 12 0 0.296631 0.219849
+2 13 13 0 0.299316 0.299561
+2 13 14 0 0.301758 0.387939
+2 13 15 0 0.303223 0.48291
+2 13 16 0 0.303955 0.581543
+2 13 17 0 0.303711 0.677246
+2 13 18 0 0.302979 0.765625
+2 13 19 0 0.30249 0.843262
+2 13 20 0 0.296631 0.894043
+2 13 21 0 0.279541 0.901367
+2 13 22 0 0.267334 0.909668
+2 13 23 0 0.258545 0.917969
+2 13 24 0 0.252197 0.92627
+2 13 25 0 0.247437 0.935547
+2 13 26 0 0.243652 0.946289
+2 13 27 0 0.240967 0.958008
+2 13 28 0 0.239502 0.971191
+2 13 29 0 0.238892 0.98584
+2 13 30 0 0.238892 1
+2 13 31 0 0.239624 1
+2 14 0 0 0.374268 0
+2 14 1 0 0.374268 0
+2 14 2 0 0.374268 0
+2 14 3 0 0.374268 0
+2 14 4 0 0.374268 0
+2 14 5 0 0.374268 0
+2 14 6 0 0.374268 0
+2 14 7 0 0.374512 0
+2 14 8 0 0.374756 0
+2 14 9 0 0.375 0
+2 14 10 0 0.375488 0.0343323
+2 14 11 0 0.376465 0.125977
+2 14 12 0 0.377441 0.205444
+2 14 13 0 0.378906 0.289062
+2 14 14 0 0.379883 0.380127
+2 14 15 0 0.379395 0.477295
+2 14 16 0 0.377197 0.578125
+2 14 17 0 0.372803 0.675781
+2 14 18 0 0.367188 0.765137
+2 14 19 0 0.361572 0.84375
+2 14 20 0 0.351318 0.899902
+2 14 21 0 0.326904 0.907227
+2 14 22 0 0.308594 0.915039
+2 14 23 0 0.294922 0.922852
+2 14 24 0 0.284912 0.930664
+2 14 25 0 0.276367 0.939941
+2 14 26 0 0.269287 0.949707
+2 14 27 0 0.263672 0.960938
+2 14 28 0 0.259521 0.974121
+2 14 29 0 0.256592 0.988281
+2 14 30 0 0.254639 1
+2 14 31 0 0.253174 1
+2 15 0 0 0.463135 0
+2 15 1 0 0.463135 0
+2 15 2 0 0.463135 0
+2 15 3 0 0.463135 0
+2 15 4 0 0.463135 0
+2 15 5 0 0.463135 0
+2 15 6 0 0.463135 0
+2 15 7 0 0.463135 0
+2 15 8 0 0.463379 0
+2 15 9 0 0.463623 0
+2 15 10 0 0.464355 0
+2 15 11 0 0.465332 0.0797119
+2 15 12 0 0.466553 0.179443
+2 15 13 0 0.467773 0.270752
+2 15 14 0 0.468262 0.366455
+2 15 15 0 0.467041 0.467285
+2 15 16 0 0.462891 0.571289
+2 15 17 0 0.455322 0.671875
+2 15 18 0 0.445068 0.763184
+2 15 19 0 0.434082 0.843262
+2 15 20 0 0.420898 0.90625
+2 15 21 0 0.388428 0.915039
+2 15 22 0 0.363037 0.922852
+2 15 23 0 0.34375 0.930664
+2 15 24 0 0.328857 0.937988
+2 15 25 0 0.315918 0.946289
+2 15 26 0 0.304688 0.955566
+2 15 27 0 0.29541 0.966309
+2 15 28 0 0.287842 0.979004
+2 15 29 0 0.281738 0.992188
+2 15 30 0 0.276611 1
+2 15 31 0 0.272949 1
+2 16 0 0 0.557617 0
+2 16 1 0 0.557617 0
+2 16 2 0 0.557617 0
+2 16 3 0 0.557617 0
+2 16 4 0 0.557617 0
+2 16 5 0 0.557617 0
+2 16 6 0 0.557617 0
+2 16 7 0 0.557617 0
+2 16 8 0 0.558105 0
+2 16 9 0 0.558105 0
+2 16 10 0 0.558594 0
+2 16 11 0 0.560059 0
+2 16 12 0 0.561523 0.133179
+2 16 13 0 0.562988 0.241211
+2 16 14 0 0.563965 0.344238
+2 16 15 0 0.562988 0.450195
+2 16 16 0 0.558594 0.558594
+2 16 17 0 0.548828 0.663086
+2 16 18 0 0.535156 0.758301
+2 16 19 0 0.52002 0.84082
+2 16 20 0 0.50293 0.90918
+2 16 21 0 0.4646 0.924805
+2 16 22 0 0.431885 0.93457
+2 16 23 0 0.40625 0.941895
+2 16 24 0 0.385742 0.949219
+2 16 25 0 0.367432 0.956543
+2 16 26 0 0.351318 0.965332
+2 16 27 0 0.337402 0.974609
+2 16 28 0 0.325439 0.986328
+2 16 29 0 0.31543 0.998535
+2 16 30 0 0.306885 1
+2 16 31 0 0.299561 1
+2 17 0 0 0.651855 0
+2 17 1 0 0.651855 0
+2 17 2 0 0.651855 0
+2 17 3 0 0.651855 0
+2 17 4 0 0.651855 0
+2 17 5 0 0.651855 0
+2 17 6 0 0.651855 0
+2 17 7 0 0.651855 0
+2 17 8 0 0.652344 0
+2 17 9 0 0.652344 0
+2 17 10 0 0.652832 0
+2 17 11 0 0.653809 0
+2 17 12 0 0.655762 0.0249329
+2 17 13 0 0.658203 0.195312
+2 17 14 0 0.660156 0.311523
+2 17 15 0 0.660645 0.424072
+2 17 16 0 0.656738 0.537598
+2 17 17 0 0.646973 0.647461
+2 17 18 0 0.632324 0.747559
+2 17 19 0 0.61377 0.834473
+2 17 20 0 0.592773 0.905762
+2 17 21 0 0.552734 0.93457
+2 17 22 0 0.513672 0.94873
+2 17 23 0 0.481445 0.95752
+2 17 24 0 0.454834 0.964844
+2 17 25 0 0.430664 0.97168
+2 17 26 0 0.408936 0.979004
+2 17 27 0 0.389404 0.987305
+2 17 28 0 0.372559 0.99707
+2 17 29 0 0.357666 1
+2 17 30 0 0.344727 1
+2 17 31 0 0.333496 1
+2 18 0 0 0.740723 0
+2 18 1 0 0.740723 0
+2 18 2 0 0.740723 0
+2 18 3 0 0.740723 0
+2 18 4 0 0.740723 0
+2 18 5 0 0.740723 0
+2 18 6 0 0.740723 0
+2 18 7 0 0.740723 0
+2 18 8 0 0.741211 0
+2 18 9 0 0.741211 0
+2 18 10 0 0.741211 0
+2 18 11 0 0.742188 0
+2 18 12 0 0.744141 0
+2 18 13 0 0.74707 0.119873
+2 18 14 0 0.750488 0.266113
+2 18 15 0 0.752441 0.388672
+2 18 16 0 0.750977 0.508301
+2 18 17 0 0.743164 0.623535
+2 18 18 0 0.729492 0.729492
+2 18 19 0 0.709961 0.821777
+2 18 20 0 0.686523 0.897949
+2 18 21 0 0.647949 0.940918
+2 18 22 0 0.60498 0.963379
+2 18 23 0 0.567383 0.976074
+2 18 24 0 0.534668 0.984375
+2 18 25 0 0.504395 0.991211
+2 18 26 0 0.476074 0.997559
+2 18 27 0 0.450439 1
+2 18 28 0 0.427734 1
+2 18 29 0 0.407715 1
+2 18 30 0 0.389893 1
+2 18 31 0 0.374023 1
+2 19 0 0 0.821289 0
+2 19 1 0 0.821289 0
+2 19 2 0 0.821289 0
+2 19 3 0 0.821289 0
+2 19 4 0 0.821289 0
+2 19 5 0 0.821289 0
+2 19 6 0 0.821289 0
+2 19 7 0 0.821289 0
+2 19 8 0 0.821289 0
+2 19 9 0 0.821289 0
+2 19 10 0 0.821777 0
+2 19 11 0 0.821777 0
+2 19 12 0 0.82373 0
+2 19 13 0 0.827148 0
+2 19 14 0 0.831055 0.2052
+2 19 15 0 0.834473 0.344482
+2 19 16 0 0.835449 0.47168
+2 19 17 0 0.831543 0.592773
+2 19 18 0 0.820312 0.70459
+2 19 19 0 0.801758 0.802246
+2 19 20 0 0.777832 0.883301
+2 19 21 0 0.742676 0.94043
+2 19 22 0 0.700684 0.974609
+2 19 23 0 0.65918 0.993652
+2 19 24 0 0.621582 1
+2 19 25 0 0.585449 1
+2 19 26 0 0.550781 1
+2 19 27 0 0.519043 1
+2 19 28 0 0.48999 1
+2 19 29 0 0.463867 1
+2 19 30 0 0.44043 1
+2 19 31 0 0.419678 1
+2 20 0 0 0.891113 0
+2 20 1 0 0.891113 0
+2 20 2 0 0.891113 0
+2 20 3 0 0.891113 0
+2 20 4 0 0.891113 0
+2 20 5 0 0.891113 0
+2 20 6 0 0.891113 0
+2 20 7 0 0.891113 0
+2 20 8 0 0.891113 0
+2 20 9 0 0.891602 0
+2 20 10 0 0.891602 0
+2 20 11 0 0.891602 0
+2 20 12 0 0.892578 0
+2 20 13 0 0.895996 0
+2 20 14 0 0.900391 0.114441
+2 20 15 0 0.905273 0.29248
+2 20 16 0 0.908691 0.429443
+2 20 17 0 0.907715 0.555664
+2 20 18 0 0.899902 0.672363
+2 20 19 0 0.884277 0.775879
+2 20 20 0 0.861816 0.862305
+2 20 21 0 0.831543 0.931152
+2 20 22 0 0.79248 0.977539
+2 20 23 0 0.750977 1
+2 20 24 0 0.710449 1
+2 20 25 0 0.669434 1
+2 20 26 0 0.629395 1
+2 20 27 0 0.591309 1
+2 20 28 0 0.556152 1
+2 20 29 0 0.523926 1
+2 20 30 0 0.494873 1
+2 20 31 0 0.468506 1
+2 21 0 0 0.951172 0
+2 21 1 0 0.951172 0
+2 21 2 0 0.951172 0
+2 21 3 0 0.951172 0
+2 21 4 0 0.951172 0
+2 21 5 0 0.951172 0
+2 21 6 0 0.951172 0
+2 21 7 0 0.951172 0
+2 21 8 0 0.951172 0
+2 21 9 0 0.951172 0
+2 21 10 0 0.951172 0
+2 21 11 0 0.95166 0
+2 21 12 0 0.95166 0
+2 21 13 0 0.95459 0
+2 21 14 0 0.959473 0
+2 21 15 0 0.965332 0.228394
+2 21 16 0 0.970703 0.381348
+2 21 17 0 0.972656 0.513672
+2 21 18 0 0.968262 0.634766
+2 21 19 0 0.956543 0.742676
+2 21 20 0 0.937012 0.834473
+2 21 21 0 0.911133 0.911621
+2 21 22 0 0.877441 0.970215
+2 21 23 0 0.838867 1
+2 21 24 0 0.797852 1
+2 21 25 0 0.754883 1
+2 21 26 0 0.710449 1
+2 21 27 0 0.666992 1
+2 21 28 0 0.625977 1
+2 21 29 0 0.587891 1
+2 21 30 0 0.552734 1
+2 21 31 0 0.520996 1
+2 22 0 0 1 0
+2 22 1 0 1 0
+2 22 2 0 1 0
+2 22 3 0 1 0
+2 22 4 0 1 0
+2 22 5 0 1 0
+2 22 6 0 1 0
+2 22 7 0 1 0
+2 22 8 0 1 0
+2 22 9 0 1 0
+2 22 10 0 1 0
+2 22 11 0 1 0
+2 22 12 0 1 0
+2 22 13 0 1 0
+2 22 14 0 1 0
+2 22 15 0 1 0.142456
+2 22 16 0 1 0.327881
+2 22 17 0 1 0.468018
+2 22 18 0 1 0.593262
+2 22 19 0 1 0.705078
+2 22 20 0 1 0.80127
+2 22 21 0 0.979004 0.883789
+2 22 22 0 0.950195 0.950684
+2 22 23 0 0.916504 1
+2 22 24 0 0.878906 1
+2 22 25 0 0.835938 1
+2 22 26 0 0.789551 1
+2 22 27 0 0.742676 1
+2 22 28 0 0.697266 1
+2 22 29 0 0.653809 1
+2 22 30 0 0.613281 1
+2 22 31 0 0.575684 1
+2 23 0 0 1 0
+2 23 1 0 1 0
+2 23 2 0 1 0
+2 23 3 0 1 0
+2 23 4 0 1 0
+2 23 5 0 1 0
+2 23 6 0 1 0
+2 23 7 0 1 0
+2 23 8 0 1 0
+2 23 9 0 1 0
+2 23 10 0 1 0
+2 23 11 0 1 0
+2 23 12 0 1 0
+2 23 13 0 1 0
+2 23 14 0 1 0
+2 23 15 0 1 0
+2 23 16 0 1 0.270264
+2 23 17 0 1 0.421143
+2 23 18 0 1 0.550293
+2 23 19 0 1 0.665527
+2 23 20 0 1 0.765137
+2 23 21 0 1 0.852051
+2 23 22 0 1 0.923828
+2 23 23 0 0.980469 0.980957
+2 23 24 0 0.947266 1
+2 23 25 0 0.907227 1
+2 23 26 0 0.861816 1
+2 23 27 0 0.813477 1
+2 23 28 0 0.764648 1
+2 23 29 0 0.717285 1
+2 23 30 0 0.671875 1
+2 23 31 0 0.629395 1
+2 24 0 0 1 0
+2 24 1 0 1 0
+2 24 2 0 1 0
+2 24 3 0 1 0
+2 24 4 0 1 0
+2 24 5 0 1 0
+2 24 6 0 1 0
+2 24 7 0 1 0
+2 24 8 0 1 0
+2 24 9 0 1 0
+2 24 10 0 1 0
+2 24 11 0 1 0
+2 24 12 0 1 0
+2 24 13 0 1 0
+2 24 14 0 1 0
+2 24 15 0 1 0
+2 24 16 0 1 0.204346
+2 24 17 0 1 0.373291
+2 24 18 0 1 0.507324
+2 24 19 0 1 0.624512
+2 24 20 0 1 0.727539
+2 24 21 0 1 0.817383
+2 24 22 0 1 0.893555
+2 24 23 0 1 0.955566
+2 24 24 0 1 1
+2 24 25 0 0.96875 1
+2 24 26 0 0.925781 1
+2 24 27 0 0.87793 1
+2 24 28 0 0.828125 1
+2 24 29 0 0.777344 1
+2 24 30 0 0.728516 1
+2 24 31 0 0.682129 1
+2 25 0 0 1 0
+2 25 1 0 1 0
+2 25 2 0 1 0
+2 25 3 0 1 0
+2 25 4 0 1 0
+2 25 5 0 1 0
+2 25 6 0 1 0
+2 25 7 0 1 0
+2 25 8 0 1 0
+2 25 9 0 1 0
+2 25 10 0 1 0
+2 25 11 0 1 0
+2 25 12 0 1 0
+2 25 13 0 1 0
+2 25 14 0 1 0
+2 25 15 0 1 0
+2 25 16 0 1 0.10437
+2 25 17 0 1 0.318359
+2 25 18 0 1 0.459229
+2 25 19 0 1 0.57959
+2 25 20 0 1 0.68457
+2 25 21 0 1 0.777344
+2 25 22 0 1 0.85791
+2 25 23 0 1 0.923828
+2 25 24 0 1 0.977539
+2 25 25 0 1 1
+2 25 26 0 0.986816 1
+2 25 27 0 0.941406 1
+2 25 28 0 0.891602 1
+2 25 29 0 0.839355 1
+2 25 30 0 0.787598 1
+2 25 31 0 0.737793 1
+2 26 0 0 1 0
+2 26 1 0 1 0
+2 26 2 0 1 0
+2 26 3 0 1 0
+2 26 4 0 1 0
+2 26 5 0 1 0
+2 26 6 0 1 0
+2 26 7 0 1 0
+2 26 8 0 1 0
+2 26 9 0 1 0
+2 26 10 0 1 0
+2 26 11 0 1 0
+2 26 12 0 1 0
+2 26 13 0 1 0
+2 26 14 0 1 0
+2 26 15 0 1 0
+2 26 16 0 1 0
+2 26 17 0 1 0.25293
+2 26 18 0 1 0.40625
+2 26 19 0 1 0.529785
+2 26 20 0 1 0.636719
+2 26 21 0 1 0.732422
+2 26 22 0 1 0.815918
+2 26 23 0 1 0.885742
+2 26 24 0 1 0.943848
+2 26 25 0 1 0.99707
+2 26 26 0 1 1
+2 26 27 0 1 1
+2 26 28 0 0.953613 1
+2 26 29 0 0.901855 1
+2 26 30 0 0.848633 1
+2 26 31 0 0.795898 1
+2 27 0 0 1 0
+2 27 1 0 1 0
+2 27 2 0 1 0
+2 27 3 0 1 0
+2 27 4 0 1 0
+2 27 5 0 1 0
+2 27 6 0 1 0
+2 27 7 0 1 0
+2 27 8 0 1 0
+2 27 9 0 1 0
+2 27 10 0 1 0
+2 27 11 0 1 0
+2 27 12 0 1 0
+2 27 13 0 1 0
+2 27 14 0 1 0
+2 27 15 0 1 0
+2 27 16 0 1 0
+2 27 17 0 1 0.166138
+2 27 18 0 1 0.34668
+2 27 19 0 1 0.47583
+2 27 20 0 1 0.584961
+2 27 21 0 1 0.682129
+2 27 22 0 1 0.768066
+2 27 23 0 1 0.841309
+2 27 24 0 1 0.90332
+2 27 25 0 1 0.960938
+2 27 26 0 1 1
+2 27 27 0 1 1
+2 27 28 0 1 1
+2 27 29 0 0.962402 1
+2 27 30 0 0.908691 1
+2 27 31 0 0.854492 1
+2 28 0 0 1 0
+2 28 1 0 1 0
+2 28 2 0 1 0
+2 28 3 0 1 0
+2 28 4 0 1 0
+2 28 5 0 1 0
+2 28 6 0 1 0
+2 28 7 0 1 0
+2 28 8 0 1 0
+2 28 9 0 1 0
+2 28 10 0 1 0
+2 28 11 0 1 0
+2 28 12 0 1 0
+2 28 13 0 1 0
+2 28 14 0 1 0
+2 28 15 0 1 0
+2 28 16 0 1 0
+2 28 17 0 1 0
+2 28 18 0 1 0.278076
+2 28 19 0 1 0.417236
+2 28 20 0 1 0.529297
+2 28 21 0 1 0.62793
+2 28 22 0 1 0.71582
+2 28 23 0 1 0.791016
+2 28 24 0 1 0.855957
+2 28 25 0 1 0.91748
+2 28 26 0 1 0.974121
+2 28 27 0 1 1
+2 28 28 0 1 1
+2 28 29 0 1 1
+2 28 30 0 0.968262 1
+2 28 31 0 0.914062 1
+2 29 0 0 1 0
+2 29 1 0 1 0
+2 29 2 0 1 0
+2 29 3 0 1 0
+2 29 4 0 1 0
+2 29 5 0 1 0
+2 29 6 0 1 0
+2 29 7 0 1 0
+2 29 8 0 1 0
+2 29 9 0 1 0
+2 29 10 0 1 0
+2 29 11 0 1 0
+2 29 12 0 1 0
+2 29 13 0 1 0
+2 29 14 0 1 0
+2 29 15 0 1 0
+2 29 16 0 1 0
+2 29 17 0 1 0
+2 29 18 0 1 0.19104
+2 29 19 0 1 0.352051
+2 29 20 0 1 0.46875
+2 29 21 0 1 0.569336
+2 29 22 0 1 0.658203
+2 29 23 0 1 0.735352
+2 29 24 0 1 0.802734
+2 29 25 0 1 0.867188
+2 29 26 0 1 0.928223
+2 29 27 0 1 0.983398
+2 29 28 0 1 1
+2 29 29 0 1 1
+2 29 30 0 1 1
+2 29 31 0 0.973145 1
+2 30 0 0 1 0
+2 30 1 0 1 0
+2 30 2 0 1 0
+2 30 3 0 1 0
+2 30 4 0 1 0
+2 30 5 0 1 0
+2 30 6 0 1 0
+2 30 7 0 1 0
+2 30 8 0 1 0
+2 30 9 0 1 0
+2 30 10 0 1 0
+2 30 11 0 1 0
+2 30 12 0 1 0
+2 30 13 0 1 0
+2 30 14 0 1 0
+2 30 15 0 1 0
+2 30 16 0 1 0
+2 30 17 0 1 0
+2 30 18 0 1 0.022583
+2 30 19 0 1 0.277588
+2 30 20 0 1 0.403564
+2 30 21 0 1 0.506836
+2 30 22 0 1 0.59668
+2 30 23 0 1 0.674805
+2 30 24 0 1 0.743652
+2 30 25 0 1 0.810547
+2 30 26 0 1 0.874512
+2 30 27 0 1 0.935059
+2 30 28 0 1 0.989746
+2 30 29 0 1 1
+2 30 30 0 1 1
+2 30 31 0 1 1
+2 31 0 0 1 0
+2 31 1 0 1 0
+2 31 2 0 1 0
+2 31 3 0 1 0
+2 31 4 0 1 0
+2 31 5 0 1 0
+2 31 6 0 1 0
+2 31 7 0 1 0
+2 31 8 0 1 0
+2 31 9 0 1 0
+2 31 10 0 1 0
+2 31 11 0 1 0
+2 31 12 0 1 0
+2 31 13 0 1 0
+2 31 14 0 1 0
+2 31 15 0 1 0
+2 31 16 0 1 0
+2 31 17 0 1 0
+2 31 18 0 1 0
+2 31 19 0 1 0.184082
+2 31 20 0 1 0.331787
+2 31 21 0 1 0.439941
+2 31 22 0 1 0.531738
+2 31 23 0 1 0.610352
+2 31 24 0 1 0.680176
+2 31 25 0 1 0.748535
+2 31 26 0 1 0.81543
+2 31 27 0 1 0.879883
+2 31 28 0 1 0.94043
+2 31 29 0 1 0.995117
+2 31 30 0 1 1
+2 31 31 0 1 1
+3 0 0 0.00358391 0.000323296 0.000272751
+3 0 1 0.00335884 0.000298738 0.000584126
+3 0 2 0.00234032 0.000250101 0.00084877
+3 0 3 0.00174427 0.000277519 0.00124741
+3 0 4 0.00201988 0.000432253 0.00311089
+3 0 5 0.00157261 0.000638485 0.00696182
+3 0 6 0 0.000905991 0.0136795
+3 0 7 0 0.00134277 0.0255432
+3 0 8 0 0.00216103 0.0472107
+3 0 9 0 0.00374031 0.078125
+3 0 10 0 0.00683212 0.119385
+3 0 11 0 0.012764 0.173584
+3 0 12 0 0.0229645 0.238647
+3 0 13 0 0.0393677 0.313477
+3 0 14 0 0.0606995 0.397705
+3 0 15 0 0.0838623 0.48877
+3 0 16 0 0.108215 0.584473
+3 0 17 0 0.131958 0.677734
+3 0 18 0 0.154053 0.764648
+3 0 19 0 0.173584 0.841309
+3 0 20 0 0.184448 0.884277
+3 0 21 0 0.186646 0.892578
+3 0 22 0 0.188843 0.901367
+3 0 23 0 0.191162 0.910645
+3 0 24 0 0.193481 0.919922
+3 0 25 0 0.196045 0.929688
+3 0 26 0 0.198853 0.940918
+3 0 27 0 0.202026 0.953125
+3 0 28 0 0.205566 0.967285
+3 0 29 0 0.209351 0.982422
+3 0 30 0 0.213379 0.997559
+3 0 31 0 0.217407 1
+3 1 0 0.00280762 0.000522137 0.000215888
+3 1 1 0.00296783 0.000547409 0.00051403
+3 1 2 0.00251198 0.000487328 0.000925541
+3 1 3 0.00166035 0.000426531 0.00124168
+3 1 4 0.00188541 0.000630856 0.003088
+3 1 5 0.00141239 0.00087595 0.0069313
+3 1 6 0 0.00115395 0.0136566
+3 1 7 0 0.00158405 0.025528
+3 1 8 0 0.00239372 0.0471802
+3 1 9 0 0.00396729 0.078064
+3 1 10 0 0.00706482 0.119385
+3 1 11 0 0.0130081 0.173584
+3 1 12 0 0.0232239 0.238647
+3 1 13 0 0.0396118 0.313477
+3 1 14 0 0.0608826 0.397705
+3 1 15 0 0.0839844 0.48877
+3 1 16 0 0.108276 0.584473
+3 1 17 0 0.13208 0.677734
+3 1 18 0 0.154053 0.764648
+3 1 19 0 0.173584 0.841309
+3 1 20 0 0.184448 0.884277
+3 1 21 0 0.186646 0.892578
+3 1 22 0 0.188843 0.901367
+3 1 23 0 0.191162 0.910645
+3 1 24 0 0.193481 0.919922
+3 1 25 0 0.196045 0.929688
+3 1 26 0 0.198853 0.940918
+3 1 27 0 0.202026 0.953125
+3 1 28 0 0.205566 0.967285
+3 1 29 0 0.209351 0.982422
+3 1 30 0 0.213379 0.997559
+3 1 31 0 0.217407 1
+3 2 0 0.0017662 0.000657082 0.000166178
+3 2 1 0.00187302 0.000714779 0.000361443
+3 2 2 0.00226402 0.000890732 0.000876904
+3 2 3 0.00152779 0.000707626 0.00124931
+3 2 4 0.00165367 0.000988007 0.00305939
+3 2 5 0.0011282 0.00129795 0.0068779
+3 2 6 0 0.00159454 0.0136108
+3 2 7 0 0.00201416 0.0254974
+3 2 8 0 0.00280952 0.0471497
+3 2 9 0 0.00437164 0.078064
+3 2 10 0 0.00748062 0.119385
+3 2 11 0 0.013443 0.173584
+3 2 12 0 0.0236664 0.238525
+3 2 13 0 0.0400696 0.313477
+3 2 14 0 0.0612183 0.397705
+3 2 15 0 0.0842285 0.48877
+3 2 16 0 0.108521 0.584473
+3 2 17 0 0.132202 0.677734
+3 2 18 0 0.154175 0.764648
+3 2 19 0 0.173706 0.841309
+3 2 20 0 0.18457 0.884277
+3 2 21 0 0.186646 0.892578
+3 2 22 0 0.188965 0.901367
+3 2 23 0 0.191284 0.910645
+3 2 24 0 0.193481 0.919922
+3 2 25 0 0.196045 0.929688
+3 2 26 0 0.198975 0.940918
+3 2 27 0 0.202026 0.953125
+3 2 28 0 0.205688 0.967285
+3 2 29 0 0.209473 0.982422
+3 2 30 0 0.213379 0.997559
+3 2 31 0 0.217407 1
+3 3 0 0.00137615 0.00108528 0.000144243
+3 3 1 0.00133133 0.0010891 0.000305653
+3 3 2 0.00129604 0.00113487 0.000612259
+3 3 3 0.00130081 0.00130081 0.00130081
+3 3 4 0.00123978 0.00166512 0.00304413
+3 3 5 0.000610828 0.00206947 0.00679779
+3 3 6 0 0.00240135 0.0135269
+3 3 7 0 0.0028019 0.0254211
+3 3 8 0 0.00356865 0.0471191
+3 3 9 0 0.00511551 0.0780029
+3 3 10 0 0.00823212 0.119324
+3 3 11 0 0.0142365 0.173462
+3 3 12 0 0.0244904 0.238525
+3 3 13 0 0.040863 0.313477
+3 3 14 0 0.0618286 0.397705
+3 3 15 0 0.0846558 0.48877
+3 3 16 0 0.108826 0.584473
+3 3 17 0 0.132446 0.677734
+3 3 18 0 0.154419 0.764648
+3 3 19 0 0.173828 0.841309
+3 3 20 0 0.184692 0.884277
+3 3 21 0 0.186768 0.892578
+3 3 22 0 0.188965 0.901367
+3 3 23 0 0.191284 0.910645
+3 3 24 0 0.193604 0.919922
+3 3 25 0 0.196167 0.929688
+3 3 26 0 0.198975 0.940918
+3 3 27 0 0.202148 0.953125
+3 3 28 0 0.205688 0.967285
+3 3 29 0 0.209473 0.982422
+3 3 30 0 0.213379 0.997559
+3 3 31 0 0.217529 1
+3 4 0 0.00109005 0.00268364 7.55787e-05
+3 4 1 0.0010128 0.00263977 0.000292301
+3 4 2 0.000901222 0.0026226 0.00067234
+3 4 3 0.000740051 0.00272751 0.0014143
+3 4 4 0.000426292 0.00306892 0.00307083
+3 4 5 0 0.00354767 0.00667572
+3 4 6 0 0.00392532 0.0133743
+3 4 7 0 0.00429153 0.0252991
+3 4 8 0 0.00500488 0.0469971
+3 4 9 0 0.0065155 0.0779419
+3 4 10 0 0.00965881 0.119263
+3 4 11 0 0.0157318 0.173462
+3 4 12 0 0.0260468 0.238525
+3 4 13 0 0.0423889 0.313477
+3 4 14 0 0.0629883 0.397705
+3 4 15 0 0.0855713 0.48877
+3 4 16 0 0.109497 0.584473
+3 4 17 0 0.132935 0.677734
+3 4 18 0 0.154785 0.764648
+3 4 19 0 0.174194 0.841309
+3 4 20 0 0.184937 0.884277
+3 4 21 0 0.187012 0.892578
+3 4 22 0 0.189209 0.901367
+3 4 23 0 0.191406 0.910645
+3 4 24 0 0.193726 0.919922
+3 4 25 0 0.196289 0.929688
+3 4 26 0 0.199097 0.940918
+3 4 27 0 0.202148 0.953125
+3 4 28 0 0.205688 0.967285
+3 4 29 0 0.209473 0.982422
+3 4 30 0 0.213501 0.997559
+3 4 31 0 0.217529 1
+3 5 0 0 0.00600052 0
+3 5 1 0 0.00596237 7.36713e-05
+3 5 2 0 0.00592422 0.000540733
+3 5 3 0 0.00593948 0.00139236
+3 5 4 0 0.00611115 0.00306129
+3 5 5 0 0.0064888 0.00649261
+3 5 6 0 0.00686646 0.0130692
+3 5 7 0 0.00717163 0.0250244
+3 5 8 0 0.00778198 0.0467834
+3 5 9 0 0.00922394 0.0777588
+3 5 10 0 0.0124207 0.11908
+3 5 11 0 0.0186462 0.17334
+3 5 12 0 0.0290375 0.238403
+3 5 13 0 0.0452271 0.313477
+3 5 14 0 0.0651245 0.397705
+3 5 15 0 0.0871582 0.48877
+3 5 16 0 0.110718 0.584473
+3 5 17 0 0.133911 0.677734
+3 5 18 0 0.155518 0.764648
+3 5 19 0 0.174805 0.841309
+3 5 20 0 0.185425 0.884277
+3 5 21 0 0.187378 0.892578
+3 5 22 0 0.189453 0.901367
+3 5 23 0 0.19165 0.910645
+3 5 24 0 0.19397 0.919922
+3 5 25 0 0.196411 0.929688
+3 5 26 0 0.199219 0.940918
+3 5 27 0 0.202271 0.953125
+3 5 28 0 0.205811 0.967285
+3 5 29 0 0.209595 0.982422
+3 5 30 0 0.213501 0.997559
+3 5 31 0 0.217651 1
+3 6 0 0 0.0120087 0
+3 6 1 0 0.012001 0
+3 6 2 0 0.012001 8.22544e-06
+3 6 3 0 0.0120163 0.000929832
+3 6 4 0 0.0120773 0.00267029
+3 6 5 0 0.0122375 0.00605011
+3 6 6 0 0.0124512 0.0124588
+3 6 7 0 0.0126572 0.0244446
+3 6 8 0 0.013092 0.0463562
+3 6 9 0 0.014389 0.0774536
+3 6 10 0 0.0176697 0.118774
+3 6 11 0 0.0241699 0.173096
+3 6 12 0 0.0347595 0.238281
+3 6 13 0 0.050354 0.313477
+3 6 14 0 0.0690918 0.397705
+3 6 15 0 0.09021 0.48877
+3 6 16 0 0.113098 0.584473
+3 6 17 0 0.135742 0.677734
+3 6 18 0 0.156982 0.764648
+3 6 19 0 0.175903 0.841309
+3 6 20 0 0.186401 0.884277
+3 6 21 0 0.18811 0.892578
+3 6 22 0 0.190063 0.901855
+3 6 23 0 0.192261 0.910645
+3 6 24 0 0.194336 0.919922
+3 6 25 0 0.196777 0.929688
+3 6 26 0 0.199585 0.940918
+3 6 27 0 0.202637 0.953125
+3 6 28 0 0.206055 0.967285
+3 6 29 0 0.209839 0.982422
+3 6 30 0 0.213745 0.997559
+3 6 31 0 0.217773 1
+3 7 0 0 0.022583 0
+3 7 1 0 0.0225983 0
+3 7 2 0 0.0226288 0
+3 7 3 0 0.0226746 0
+3 7 4 0 0.0227661 0.00154114
+3 7 5 0 0.0229034 0.00487518
+3 7 6 0 0.023056 0.0112076
+3 7 7 0 0.0231934 0.0232086
+3 7 8 0 0.0233917 0.0453796
+3 7 9 0 0.0244446 0.0767822
+3 7 10 0 0.0278778 0.118225
+3 7 11 0 0.0349121 0.172729
+3 7 12 0 0.0455933 0.238037
+3 7 13 0 0.0594177 0.313232
+3 7 14 0 0.076355 0.397461
+3 7 15 0 0.0959473 0.48877
+3 7 16 0 0.117554 0.584473
+3 7 17 0 0.13916 0.677734
+3 7 18 0 0.159668 0.764648
+3 7 19 0 0.178101 0.841309
+3 7 20 0 0.188232 0.884277
+3 7 21 0 0.189575 0.892578
+3 7 22 0 0.191284 0.901855
+3 7 23 0 0.193237 0.910645
+3 7 24 0 0.19519 0.919922
+3 7 25 0 0.19751 0.929688
+3 7 26 0 0.200195 0.940918
+3 7 27 0 0.203125 0.953613
+3 7 28 0 0.206543 0.967285
+3 7 29 0 0.210205 0.982422
+3 7 30 0 0.214111 0.998047
+3 7 31 0 0.218018 1
+3 8 0 0 0.0421143 0
+3 8 1 0 0.0421143 0
+3 8 2 0 0.0421448 0
+3 8 3 0 0.0422058 0
+3 8 4 0 0.0423279 0
+3 8 5 0 0.042511 0.0026207
+3 8 6 0 0.0427551 0.00878143
+3 8 7 0 0.0429993 0.0206757
+3 8 8 0 0.0431519 0.0431824
+3 8 9 0 0.0439453 0.0755005
+3 8 10 0 0.0473328 0.117249
+3 8 11 0 0.0542297 0.171875
+3 8 12 0 0.0632324 0.237549
+3 8 13 0 0.074707 0.312988
+3 8 14 0 0.0891113 0.397217
+3 8 15 0 0.106262 0.488525
+3 8 16 0 0.125732 0.584473
+3 8 17 0 0.145752 0.677734
+3 8 18 0 0.164917 0.764648
+3 8 19 0 0.182373 0.841309
+3 8 20 0 0.19165 0.884766
+3 8 21 0 0.192261 0.893066
+3 8 22 0 0.193481 0.901855
+3 8 23 0 0.195068 0.911133
+3 8 24 0 0.196777 0.919922
+3 8 25 0 0.198975 0.930176
+3 8 26 0 0.201294 0.940918
+3 8 27 0 0.204102 0.953613
+3 8 28 0 0.207397 0.967285
+3 8 29 0 0.210938 0.982422
+3 8 30 0 0.214722 0.998047
+3 8 31 0 0.218628 1
+3 9 0 0 0.0709229 0
+3 9 1 0 0.0709229 0
+3 9 2 0 0.0709229 0
+3 9 3 0 0.0709839 0
+3 9 4 0 0.0710449 0
+3 9 5 0 0.071167 0
+3 9 6 0 0.0713501 0.00460815
+3 9 7 0 0.0716553 0.0162048
+3 9 8 0 0.0720825 0.0387878
+3 9 9 0 0.072998 0.0730591
+3 9 10 0 0.0757446 0.115601
+3 9 11 0 0.0818481 0.170532
+3 9 12 0 0.0894165 0.236572
+3 9 13 0 0.0985718 0.312256
+3 9 14 0 0.109924 0.396973
+3 9 15 0 0.123901 0.488525
+3 9 16 0 0.140259 0.584473
+3 9 17 0 0.157593 0.677734
+3 9 18 0 0.174561 0.764648
+3 9 19 0 0.190308 0.841797
+3 9 20 0 0.19812 0.885254
+3 9 21 0 0.19751 0.893555
+3 9 22 0 0.197754 0.902344
+3 9 23 0 0.198608 0.911133
+3 9 24 0 0.199951 0.92041
+3 9 25 0 0.201538 0.930176
+3 9 26 0 0.203613 0.941406
+3 9 27 0 0.206055 0.953613
+3 9 28 0 0.209106 0.967773
+3 9 29 0 0.212402 0.982422
+3 9 30 0 0.215942 0.998047
+3 9 31 0 0.219727 1
+3 10 0 0 0.108765 0
+3 10 1 0 0.108765 0
+3 10 2 0 0.108765 0
+3 10 3 0 0.108826 0
+3 10 4 0 0.108887 0
+3 10 5 0 0.108948 0
+3 10 6 0 0.108948 0
+3 10 7 0 0.10907 0.00913239
+3 10 8 0 0.109436 0.0317688
+3 10 9 0 0.110413 0.0687256
+3 10 10 0 0.112915 0.112976
+3 10 11 0 0.118286 0.168335
+3 10 12 0 0.124756 0.234863
+3 10 13 0 0.131958 0.311035
+3 10 14 0 0.140503 0.39624
+3 10 15 0 0.150879 0.488037
+3 10 16 0 0.163452 0.584473
+3 10 17 0 0.177002 0.678223
+3 10 18 0 0.190674 0.764648
+3 10 19 0 0.203735 0.841797
+3 10 20 0 0.209351 0.88623
+3 10 21 0 0.206543 0.894043
+3 10 22 0 0.205322 0.902832
+3 10 23 0 0.204956 0.911621
+3 10 24 0 0.205322 0.920898
+3 10 25 0 0.206299 0.930664
+3 10 26 0 0.207642 0.941895
+3 10 27 0 0.209595 0.954102
+3 10 28 0 0.212158 0.967773
+3 10 29 0 0.215088 0.98291
+3 10 30 0 0.218262 0.998047
+3 10 31 0 0.22168 1
+3 11 0 0 0.158936 0
+3 11 1 0 0.158936 0
+3 11 2 0 0.158936 0
+3 11 3 0 0.158936 0
+3 11 4 0 0.159058 0
+3 11 5 0 0.159058 0
+3 11 6 0 0.15918 0
+3 11 7 0 0.159058 0
+3 11 8 0 0.159058 0.0202179
+3 11 9 0 0.159424 0.0615234
+3 11 10 0 0.161133 0.109131
+3 11 11 0 0.165039 0.165161
+3 11 12 0 0.170288 0.232056
+3 11 13 0 0.176025 0.309082
+3 11 14 0 0.182007 0.39502
+3 11 15 0 0.188965 0.487305
+3 11 16 0 0.197388 0.583984
+3 11 17 0 0.206421 0.678223
+3 11 18 0 0.215942 0.765137
+3 11 19 0 0.22522 0.842285
+3 11 20 0 0.227783 0.887695
+3 11 21 0 0.22168 0.895508
+3 11 22 0 0.217896 0.904297
+3 11 23 0 0.215698 0.913086
+3 11 24 0 0.2146 0.921875
+3 11 25 0 0.214355 0.931641
+3 11 26 0 0.2146 0.942383
+3 11 27 0 0.215698 0.95459
+3 11 28 0 0.217407 0.96875
+3 11 29 0 0.219604 0.983398
+3 11 30 0 0.222168 0.998535
+3 11 31 0 0.224976 1
+3 12 0 0 0.220947 0
+3 12 1 0 0.220947 0
+3 12 2 0 0.220947 0
+3 12 3 0 0.220947 0
+3 12 4 0 0.221069 0
+3 12 5 0 0.221069 0
+3 12 6 0 0.221191 0
+3 12 7 0 0.221313 0
+3 12 8 0 0.221313 0
+3 12 9 0 0.221436 0.045105
+3 12 10 0 0.222046 0.100769
+3 12 11 0 0.223999 0.159668
+3 12 12 0 0.227417 0.227539
+3 12 13 0 0.231689 0.30542
+3 12 14 0 0.235718 0.392578
+3 12 15 0 0.239624 0.48584
+3 12 16 0 0.244019 0.583496
+3 12 17 0 0.248291 0.677734
+3 12 18 0 0.25293 0.765137
+3 12 19 0 0.257568 0.842773
+3 12 20 0 0.256104 0.890137
+3 12 21 0 0.245239 0.897949
+3 12 22 0 0.237793 0.90625
+3 12 23 0 0.23291 0.914551
+3 12 24 0 0.229614 0.92334
+3 12 25 0 0.227417 0.933105
+3 12 26 0 0.226074 0.943848
+3 12 27 0 0.225586 0.956055
+3 12 28 0 0.225952 0.969727
+3 12 29 0 0.227051 0.984375
+3 12 30 0 0.228638 0.999512
+3 12 31 0 0.230591 1
+3 13 0 0 0.292969 0
+3 13 1 0 0.292969 0
+3 13 2 0 0.292969 0
+3 13 3 0 0.292969 0
+3 13 4 0 0.292969 0
+3 13 5 0 0.292969 0
+3 13 6 0 0.292969 0
+3 13 7 0 0.293213 0
+3 13 8 0 0.293213 0
+3 13 9 0 0.293457 0.00789642
+3 13 10 0 0.293945 0.0814209
+3 13 11 0 0.294922 0.148438
+3 13 12 0 0.296631 0.219849
+3 13 13 0 0.299316 0.299561
+3 13 14 0 0.301758 0.387939
+3 13 15 0 0.303223 0.48291
+3 13 16 0 0.303955 0.582031
+3 13 17 0 0.303711 0.677246
+3 13 18 0 0.302979 0.765625
+3 13 19 0 0.30249 0.843262
+3 13 20 0 0.296631 0.894043
+3 13 21 0 0.279541 0.901367
+3 13 22 0 0.267334 0.909668
+3 13 23 0 0.258545 0.917969
+3 13 24 0 0.252197 0.92627
+3 13 25 0 0.247437 0.935547
+3 13 26 0 0.243652 0.946289
+3 13 27 0 0.240967 0.958008
+3 13 28 0 0.239502 0.971191
+3 13 29 0 0.238892 0.98584
+3 13 30 0 0.238892 1
+3 13 31 0 0.239624 1
+3 14 0 0 0.374268 0
+3 14 1 0 0.374268 0
+3 14 2 0 0.374268 0
+3 14 3 0 0.374268 0
+3 14 4 0 0.374268 0
+3 14 5 0 0.374268 0
+3 14 6 0 0.374268 0
+3 14 7 0 0.374512 0
+3 14 8 0 0.374756 0
+3 14 9 0 0.375 0
+3 14 10 0 0.375488 0.0343018
+3 14 11 0 0.376465 0.125977
+3 14 12 0 0.377441 0.205444
+3 14 13 0 0.378906 0.289062
+3 14 14 0 0.379883 0.380127
+3 14 15 0 0.379395 0.477295
+3 14 16 0 0.377197 0.578125
+3 14 17 0 0.372803 0.675781
+3 14 18 0 0.367188 0.765137
+3 14 19 0 0.361572 0.84375
+3 14 20 0 0.351318 0.899902
+3 14 21 0 0.326904 0.907227
+3 14 22 0 0.308594 0.915039
+3 14 23 0 0.294922 0.922852
+3 14 24 0 0.284912 0.930664
+3 14 25 0 0.276367 0.939941
+3 14 26 0 0.269287 0.949707
+3 14 27 0 0.263672 0.960938
+3 14 28 0 0.259521 0.974121
+3 14 29 0 0.256592 0.988281
+3 14 30 0 0.254639 1
+3 14 31 0 0.253174 1
+3 15 0 0 0.463135 0
+3 15 1 0 0.463135 0
+3 15 2 0 0.463135 0
+3 15 3 0 0.463135 0
+3 15 4 0 0.463135 0
+3 15 5 0 0.463135 0
+3 15 6 0 0.463135 0
+3 15 7 0 0.463135 0
+3 15 8 0 0.463379 0
+3 15 9 0 0.463623 0
+3 15 10 0 0.464355 0
+3 15 11 0 0.465332 0.0797119
+3 15 12 0 0.466553 0.179443
+3 15 13 0 0.467773 0.270752
+3 15 14 0 0.468262 0.366455
+3 15 15 0 0.467041 0.467285
+3 15 16 0 0.462891 0.571289
+3 15 17 0 0.455322 0.671875
+3 15 18 0 0.445068 0.763184
+3 15 19 0 0.434082 0.843262
+3 15 20 0 0.420898 0.90625
+3 15 21 0 0.388428 0.915039
+3 15 22 0 0.363037 0.922852
+3 15 23 0 0.34375 0.930664
+3 15 24 0 0.328857 0.937988
+3 15 25 0 0.315918 0.946289
+3 15 26 0 0.304688 0.955566
+3 15 27 0 0.29541 0.966309
+3 15 28 0 0.287842 0.979004
+3 15 29 0 0.281738 0.992188
+3 15 30 0 0.276611 1
+3 15 31 0 0.272949 1
+3 16 0 0 0.557617 0
+3 16 1 0 0.557617 0
+3 16 2 0 0.557617 0
+3 16 3 0 0.557617 0
+3 16 4 0 0.557617 0
+3 16 5 0 0.557617 0
+3 16 6 0 0.557617 0
+3 16 7 0 0.557617 0
+3 16 8 0 0.558105 0
+3 16 9 0 0.558105 0
+3 16 10 0 0.558594 0
+3 16 11 0 0.560059 0
+3 16 12 0 0.561523 0.133179
+3 16 13 0 0.562988 0.241211
+3 16 14 0 0.563965 0.344238
+3 16 15 0 0.562988 0.450195
+3 16 16 0 0.558594 0.558594
+3 16 17 0 0.548828 0.663086
+3 16 18 0 0.535156 0.758301
+3 16 19 0 0.52002 0.84082
+3 16 20 0 0.50293 0.90918
+3 16 21 0 0.4646 0.924805
+3 16 22 0 0.431885 0.93457
+3 16 23 0 0.40625 0.941895
+3 16 24 0 0.385742 0.949219
+3 16 25 0 0.367432 0.956543
+3 16 26 0 0.351318 0.965332
+3 16 27 0 0.337402 0.974609
+3 16 28 0 0.325439 0.986328
+3 16 29 0 0.31543 0.998535
+3 16 30 0 0.306885 1
+3 16 31 0 0.299561 1
+3 17 0 0 0.651855 0
+3 17 1 0 0.651855 0
+3 17 2 0 0.651855 0
+3 17 3 0 0.651855 0
+3 17 4 0 0.651855 0
+3 17 5 0 0.651855 0
+3 17 6 0 0.651855 0
+3 17 7 0 0.652344 0
+3 17 8 0 0.652344 0
+3 17 9 0 0.652344 0
+3 17 10 0 0.652832 0
+3 17 11 0 0.653809 0
+3 17 12 0 0.655762 0.0249176
+3 17 13 0 0.658203 0.195312
+3 17 14 0 0.660156 0.311523
+3 17 15 0 0.660645 0.424072
+3 17 16 0 0.656738 0.537598
+3 17 17 0 0.646973 0.647461
+3 17 18 0 0.632324 0.747559
+3 17 19 0 0.61377 0.834473
+3 17 20 0 0.592773 0.905762
+3 17 21 0 0.552734 0.93457
+3 17 22 0 0.513672 0.94873
+3 17 23 0 0.481445 0.95752
+3 17 24 0 0.454834 0.964844
+3 17 25 0 0.430664 0.97168
+3 17 26 0 0.408936 0.979004
+3 17 27 0 0.389404 0.987305
+3 17 28 0 0.372559 0.99707
+3 17 29 0 0.357666 1
+3 17 30 0 0.344727 1
+3 17 31 0 0.333496 1
+3 18 0 0 0.740723 0
+3 18 1 0 0.740723 0
+3 18 2 0 0.740723 0
+3 18 3 0 0.740723 0
+3 18 4 0 0.740723 0
+3 18 5 0 0.740723 0
+3 18 6 0 0.740723 0
+3 18 7 0 0.740723 0
+3 18 8 0 0.741211 0
+3 18 9 0 0.741211 0
+3 18 10 0 0.741211 0
+3 18 11 0 0.742188 0
+3 18 12 0 0.744141 0
+3 18 13 0 0.74707 0.119873
+3 18 14 0 0.750488 0.266113
+3 18 15 0 0.752441 0.388672
+3 18 16 0 0.750977 0.508301
+3 18 17 0 0.743164 0.623535
+3 18 18 0 0.729492 0.729492
+3 18 19 0 0.709961 0.821777
+3 18 20 0 0.686523 0.897949
+3 18 21 0 0.647949 0.940918
+3 18 22 0 0.60498 0.963379
+3 18 23 0 0.567383 0.976074
+3 18 24 0 0.534668 0.984375
+3 18 25 0 0.504395 0.991211
+3 18 26 0 0.476074 0.997559
+3 18 27 0 0.450439 1
+3 18 28 0 0.427734 1
+3 18 29 0 0.407715 1
+3 18 30 0 0.389893 1
+3 18 31 0 0.374023 1
+3 19 0 0 0.821289 0
+3 19 1 0 0.821289 0
+3 19 2 0 0.821289 0
+3 19 3 0 0.821289 0
+3 19 4 0 0.821289 0
+3 19 5 0 0.821289 0
+3 19 6 0 0.821289 0
+3 19 7 0 0.821289 0
+3 19 8 0 0.821289 0
+3 19 9 0 0.821289 0
+3 19 10 0 0.821777 0
+3 19 11 0 0.821777 0
+3 19 12 0 0.82373 0
+3 19 13 0 0.827148 0
+3 19 14 0 0.831055 0.2052
+3 19 15 0 0.834473 0.344482
+3 19 16 0 0.835449 0.47168
+3 19 17 0 0.831543 0.592773
+3 19 18 0 0.820312 0.70459
+3 19 19 0 0.801758 0.802246
+3 19 20 0 0.777832 0.883301
+3 19 21 0 0.742676 0.94043
+3 19 22 0 0.700684 0.974609
+3 19 23 0 0.65918 0.993652
+3 19 24 0 0.621582 1
+3 19 25 0 0.585449 1
+3 19 26 0 0.550781 1
+3 19 27 0 0.519043 1
+3 19 28 0 0.48999 1
+3 19 29 0 0.463867 1
+3 19 30 0 0.44043 1
+3 19 31 0 0.419678 1
+3 20 0 0 0.891113 0
+3 20 1 0 0.891113 0
+3 20 2 0 0.891113 0
+3 20 3 0 0.891113 0
+3 20 4 0 0.891113 0
+3 20 5 0 0.891113 0
+3 20 6 0 0.891113 0
+3 20 7 0 0.891113 0
+3 20 8 0 0.891113 0
+3 20 9 0 0.891602 0
+3 20 10 0 0.891602 0
+3 20 11 0 0.891602 0
+3 20 12 0 0.892578 0
+3 20 13 0 0.895996 0
+3 20 14 0 0.900879 0.114441
+3 20 15 0 0.905273 0.29248
+3 20 16 0 0.908691 0.429443
+3 20 17 0 0.907715 0.555664
+3 20 18 0 0.899902 0.672363
+3 20 19 0 0.884277 0.775879
+3 20 20 0 0.861816 0.862305
+3 20 21 0 0.831543 0.931152
+3 20 22 0 0.79248 0.977539
+3 20 23 0 0.750977 1
+3 20 24 0 0.710449 1
+3 20 25 0 0.669434 1
+3 20 26 0 0.629395 1
+3 20 27 0 0.591309 1
+3 20 28 0 0.556152 1
+3 20 29 0 0.523926 1
+3 20 30 0 0.494873 1
+3 20 31 0 0.468506 1
+3 21 0 0 0.951172 0
+3 21 1 0 0.951172 0
+3 21 2 0 0.951172 0
+3 21 3 0 0.951172 0
+3 21 4 0 0.951172 0
+3 21 5 0 0.951172 0
+3 21 6 0 0.951172 0
+3 21 7 0 0.951172 0
+3 21 8 0 0.951172 0
+3 21 9 0 0.951172 0
+3 21 10 0 0.951172 0
+3 21 11 0 0.95166 0
+3 21 12 0 0.95166 0
+3 21 13 0 0.95459 0
+3 21 14 0 0.959473 0
+3 21 15 0 0.965332 0.228394
+3 21 16 0 0.970703 0.381348
+3 21 17 0 0.972656 0.513672
+3 21 18 0 0.968262 0.634766
+3 21 19 0 0.956543 0.742676
+3 21 20 0 0.937012 0.834473
+3 21 21 0 0.911133 0.911621
+3 21 22 0 0.877441 0.970215
+3 21 23 0 0.838867 1
+3 21 24 0 0.797852 1
+3 21 25 0 0.754883 1
+3 21 26 0 0.710449 1
+3 21 27 0 0.666992 1
+3 21 28 0 0.625977 1
+3 21 29 0 0.587891 1
+3 21 30 0 0.552734 1
+3 21 31 0 0.520996 1
+3 22 0 0 1 0
+3 22 1 0 1 0
+3 22 2 0 1 0
+3 22 3 0 1 0
+3 22 4 0 1 0
+3 22 5 0 1 0
+3 22 6 0 1 0
+3 22 7 0 1 0
+3 22 8 0 1 0
+3 22 9 0 1 0
+3 22 10 0 1 0
+3 22 11 0 1 0
+3 22 12 0 1 0
+3 22 13 0 1 0
+3 22 14 0 1 0
+3 22 15 0 1 0.142456
+3 22 16 0 1 0.327881
+3 22 17 0 1 0.468018
+3 22 18 0 1 0.593262
+3 22 19 0 1 0.705078
+3 22 20 0 1 0.80127
+3 22 21 0 0.979004 0.883789
+3 22 22 0 0.950195 0.950684
+3 22 23 0 0.916504 1
+3 22 24 0 0.878906 1
+3 22 25 0 0.835938 1
+3 22 26 0 0.789551 1
+3 22 27 0 0.742676 1
+3 22 28 0 0.697266 1
+3 22 29 0 0.653809 1
+3 22 30 0 0.613281 1
+3 22 31 0 0.575684 1
+3 23 0 0 1 0
+3 23 1 0 1 0
+3 23 2 0 1 0
+3 23 3 0 1 0
+3 23 4 0 1 0
+3 23 5 0 1 0
+3 23 6 0 1 0
+3 23 7 0 1 0
+3 23 8 0 1 0
+3 23 9 0 1 0
+3 23 10 0 1 0
+3 23 11 0 1 0
+3 23 12 0 1 0
+3 23 13 0 1 0
+3 23 14 0 1 0
+3 23 15 0 1 0
+3 23 16 0 1 0.270264
+3 23 17 0 1 0.421143
+3 23 18 0 1 0.550293
+3 23 19 0 1 0.665527
+3 23 20 0 1 0.765137
+3 23 21 0 1 0.852051
+3 23 22 0 1 0.923828
+3 23 23 0 0.980469 0.980957
+3 23 24 0 0.947266 1
+3 23 25 0 0.907227 1
+3 23 26 0 0.861816 1
+3 23 27 0 0.813477 1
+3 23 28 0 0.764648 1
+3 23 29 0 0.717285 1
+3 23 30 0 0.671875 1
+3 23 31 0 0.629395 1
+3 24 0 0 1 0
+3 24 1 0 1 0
+3 24 2 0 1 0
+3 24 3 0 1 0
+3 24 4 0 1 0
+3 24 5 0 1 0
+3 24 6 0 1 0
+3 24 7 0 1 0
+3 24 8 0 1 0
+3 24 9 0 1 0
+3 24 10 0 1 0
+3 24 11 0 1 0
+3 24 12 0 1 0
+3 24 13 0 1 0
+3 24 14 0 1 0
+3 24 15 0 1 0
+3 24 16 0 1 0.204346
+3 24 17 0 1 0.373291
+3 24 18 0 1 0.507324
+3 24 19 0 1 0.624512
+3 24 20 0 1 0.727539
+3 24 21 0 1 0.817383
+3 24 22 0 1 0.893555
+3 24 23 0 1 0.955566
+3 24 24 0 1 1
+3 24 25 0 0.96875 1
+3 24 26 0 0.925781 1
+3 24 27 0 0.87793 1
+3 24 28 0 0.828125 1
+3 24 29 0 0.777344 1
+3 24 30 0 0.728516 1
+3 24 31 0 0.682129 1
+3 25 0 0 1 0
+3 25 1 0 1 0
+3 25 2 0 1 0
+3 25 3 0 1 0
+3 25 4 0 1 0
+3 25 5 0 1 0
+3 25 6 0 1 0
+3 25 7 0 1 0
+3 25 8 0 1 0
+3 25 9 0 1 0
+3 25 10 0 1 0
+3 25 11 0 1 0
+3 25 12 0 1 0
+3 25 13 0 1 0
+3 25 14 0 1 0
+3 25 15 0 1 0
+3 25 16 0 1 0.10437
+3 25 17 0 1 0.318359
+3 25 18 0 1 0.459229
+3 25 19 0 1 0.57959
+3 25 20 0 1 0.68457
+3 25 21 0 1 0.777344
+3 25 22 0 1 0.85791
+3 25 23 0 1 0.923828
+3 25 24 0 1 0.977539
+3 25 25 0 1 1
+3 25 26 0 0.986816 1
+3 25 27 0 0.941406 1
+3 25 28 0 0.891602 1
+3 25 29 0 0.839355 1
+3 25 30 0 0.787598 1
+3 25 31 0 0.737793 1
+3 26 0 0 1 0
+3 26 1 0 1 0
+3 26 2 0 1 0
+3 26 3 0 1 0
+3 26 4 0 1 0
+3 26 5 0 1 0
+3 26 6 0 1 0
+3 26 7 0 1 0
+3 26 8 0 1 0
+3 26 9 0 1 0
+3 26 10 0 1 0
+3 26 11 0 1 0
+3 26 12 0 1 0
+3 26 13 0 1 0
+3 26 14 0 1 0
+3 26 15 0 1 0
+3 26 16 0 1 0
+3 26 17 0 1 0.25293
+3 26 18 0 1 0.40625
+3 26 19 0 1 0.529785
+3 26 20 0 1 0.636719
+3 26 21 0 1 0.732422
+3 26 22 0 1 0.815918
+3 26 23 0 1 0.885742
+3 26 24 0 1 0.943848
+3 26 25 0 1 0.99707
+3 26 26 0 1 1
+3 26 27 0 1 1
+3 26 28 0 0.953613 1
+3 26 29 0 0.901855 1
+3 26 30 0 0.848633 1
+3 26 31 0 0.795898 1
+3 27 0 0 1 0
+3 27 1 0 1 0
+3 27 2 0 1 0
+3 27 3 0 1 0
+3 27 4 0 1 0
+3 27 5 0 1 0
+3 27 6 0 1 0
+3 27 7 0 1 0
+3 27 8 0 1 0
+3 27 9 0 1 0
+3 27 10 0 1 0
+3 27 11 0 1 0
+3 27 12 0 1 0
+3 27 13 0 1 0
+3 27 14 0 1 0
+3 27 15 0 1 0
+3 27 16 0 1 0
+3 27 17 0 1 0.166138
+3 27 18 0 1 0.34668
+3 27 19 0 1 0.47583
+3 27 20 0 1 0.584961
+3 27 21 0 1 0.682129
+3 27 22 0 1 0.768066
+3 27 23 0 1 0.841309
+3 27 24 0 1 0.90332
+3 27 25 0 1 0.960938
+3 27 26 0 1 1
+3 27 27 0 1 1
+3 27 28 0 1 1
+3 27 29 0 0.962402 1
+3 27 30 0 0.908691 1
+3 27 31 0 0.854492 1
+3 28 0 0 1 0
+3 28 1 0 1 0
+3 28 2 0 1 0
+3 28 3 0 1 0
+3 28 4 0 1 0
+3 28 5 0 1 0
+3 28 6 0 1 0
+3 28 7 0 1 0
+3 28 8 0 1 0
+3 28 9 0 1 0
+3 28 10 0 1 0
+3 28 11 0 1 0
+3 28 12 0 1 0
+3 28 13 0 1 0
+3 28 14 0 1 0
+3 28 15 0 1 0
+3 28 16 0 1 0
+3 28 17 0 1 0
+3 28 18 0 1 0.278076
+3 28 19 0 1 0.417236
+3 28 20 0 1 0.529297
+3 28 21 0 1 0.62793
+3 28 22 0 1 0.71582
+3 28 23 0 1 0.791016
+3 28 24 0 1 0.855957
+3 28 25 0 1 0.91748
+3 28 26 0 1 0.974121
+3 28 27 0 1 1
+3 28 28 0 1 1
+3 28 29 0 1 1
+3 28 30 0 0.968262 1
+3 28 31 0 0.914062 1
+3 29 0 0 1 0
+3 29 1 0 1 0
+3 29 2 0 1 0
+3 29 3 0 1 0
+3 29 4 0 1 0
+3 29 5 0 1 0
+3 29 6 0 1 0
+3 29 7 0 1 0
+3 29 8 0 1 0
+3 29 9 0 1 0
+3 29 10 0 1 0
+3 29 11 0 1 0
+3 29 12 0 1 0
+3 29 13 0 1 0
+3 29 14 0 1 0
+3 29 15 0 1 0
+3 29 16 0 1 0
+3 29 17 0 1 0
+3 29 18 0 1 0.19104
+3 29 19 0 1 0.352051
+3 29 20 0 1 0.46875
+3 29 21 0 1 0.569336
+3 29 22 0 1 0.658203
+3 29 23 0 1 0.735352
+3 29 24 0 1 0.802734
+3 29 25 0 1 0.867188
+3 29 26 0 1 0.928223
+3 29 27 0 1 0.983398
+3 29 28 0 1 1
+3 29 29 0 1 1
+3 29 30 0 1 1
+3 29 31 0 0.973145 1
+3 30 0 0 1 0
+3 30 1 0 1 0
+3 30 2 0 1 0
+3 30 3 0 1 0
+3 30 4 0 1 0
+3 30 5 0 1 0
+3 30 6 0 1 0
+3 30 7 0 1 0
+3 30 8 0 1 0
+3 30 9 0 1 0
+3 30 10 0 1 0
+3 30 11 0 1 0
+3 30 12 0 1 0
+3 30 13 0 1 0
+3 30 14 0 1 0
+3 30 15 0 1 0
+3 30 16 0 1 0
+3 30 17 0 1 0
+3 30 18 0 1 0.022583
+3 30 19 0 1 0.277588
+3 30 20 0 1 0.403564
+3 30 21 0 1 0.506836
+3 30 22 0 1 0.59668
+3 30 23 0 1 0.674805
+3 30 24 0 1 0.743652
+3 30 25 0 1 0.810547
+3 30 26 0 1 0.874512
+3 30 27 0 1 0.935059
+3 30 28 0 1 0.989746
+3 30 29 0 1 1
+3 30 30 0 1 1
+3 30 31 0 1 1
+3 31 0 0 1 0
+3 31 1 0 1 0
+3 31 2 0 1 0
+3 31 3 0 1 0
+3 31 4 0 1 0
+3 31 5 0 1 0
+3 31 6 0 1 0
+3 31 7 0 1 0
+3 31 8 0 1 0
+3 31 9 0 1 0
+3 31 10 0 1 0
+3 31 11 0 1 0
+3 31 12 0 1 0
+3 31 13 0 1 0
+3 31 14 0 1 0
+3 31 15 0 1 0
+3 31 16 0 1 0
+3 31 17 0 1 0
+3 31 18 0 1 0
+3 31 19 0 1 0.184082
+3 31 20 0 1 0.331787
+3 31 21 0 1 0.439941
+3 31 22 0 1 0.531738
+3 31 23 0 1 0.610352
+3 31 24 0 1 0.680176
+3 31 25 0 1 0.748535
+3 31 26 0 1 0.81543
+3 31 27 0 1 0.879883
+3 31 28 0 1 0.94043
+3 31 29 0 1 0.995117
+3 31 30 0 1 1
+3 31 31 0 1 1
+4 0 0 0.0103226 0.000286102 0.000118256
+4 0 1 0.0100861 0.000255346 0.000621796
+4 0 2 0.00930023 0.000220299 0.00144768
+4 0 3 0.00640106 0.000286818 0.00217819
+4 0 4 0.00477219 0.000441074 0.00330353
+4 0 5 0.00450516 0.000617027 0.00695801
+4 0 6 0.00300026 0.000881672 0.0136566
+4 0 7 0 0.00132084 0.0255585
+4 0 8 0 0.00214005 0.0472107
+4 0 9 0 0.00371742 0.078064
+4 0 10 0 0.00680923 0.119385
+4 0 11 0 0.0127335 0.173584
+4 0 12 0 0.022934 0.238647
+4 0 13 0 0.0393372 0.313477
+4 0 14 0 0.0606689 0.397705
+4 0 15 0 0.0838013 0.48877
+4 0 16 0 0.108215 0.584473
+4 0 17 0 0.131958 0.677734
+4 0 18 0 0.154053 0.764648
+4 0 19 0 0.173584 0.841309
+4 0 20 0 0.184448 0.884277
+4 0 21 0 0.186646 0.892578
+4 0 22 0 0.188843 0.901367
+4 0 23 0 0.191162 0.910645
+4 0 24 0 0.193481 0.919922
+4 0 25 0 0.196045 0.929688
+4 0 26 0 0.198853 0.940918
+4 0 27 0 0.202026 0.953125
+4 0 28 0 0.205566 0.967285
+4 0 29 0 0.209351 0.982422
+4 0 30 0 0.213379 0.997559
+4 0 31 0 0.217407 1
+4 1 0 0.00931549 0.000704288 8.02279e-05
+4 1 1 0.00930023 0.000680923 0.000544071
+4 1 2 0.00880432 0.000628471 0.00135422
+4 1 3 0.00653458 0.000569344 0.00224113
+4 1 4 0.00463104 0.000654221 0.00328255
+4 1 5 0.00434494 0.000855446 0.0069313
+4 1 6 0.00283623 0.00112915 0.0136337
+4 1 7 0 0.00156212 0.0255432
+4 1 8 0 0.00237274 0.0472107
+4 1 9 0 0.0039444 0.078064
+4 1 10 0 0.00703812 0.119324
+4 1 11 0 0.0129776 0.173584
+4 1 12 0 0.0231934 0.238525
+4 1 13 0 0.0395813 0.313477
+4 1 14 0 0.0608521 0.397705
+4 1 15 0 0.0839844 0.48877
+4 1 16 0 0.108276 0.584473
+4 1 17 0 0.13208 0.677734
+4 1 18 0 0.154053 0.764648
+4 1 19 0 0.173584 0.841309
+4 1 20 0 0.18457 0.884277
+4 1 21 0 0.186646 0.892578
+4 1 22 0 0.188843 0.901367
+4 1 23 0 0.191162 0.910645
+4 1 24 0 0.193481 0.919922
+4 1 25 0 0.196045 0.929688
+4 1 26 0 0.198853 0.940918
+4 1 27 0 0.202026 0.953125
+4 1 28 0 0.205566 0.967285
+4 1 29 0 0.209351 0.982422
+4 1 30 0 0.213379 0.997559
+4 1 31 0 0.217407 1
+4 2 0 0.00751495 0.00125313 6.35386e-05
+4 2 1 0.00764465 0.00126839 0.000442982
+4 2 2 0.00785828 0.00128746 0.001194
+4 2 3 0.0067482 0.00115871 0.00234222
+4 2 4 0.00439072 0.00103569 0.00325203
+4 2 5 0.00405884 0.00127888 0.00688553
+4 2 6 0.00254059 0.00156975 0.013588
+4 2 7 0 0.00199318 0.0254974
+4 2 8 0 0.00278854 0.0471802
+4 2 9 0 0.00434875 0.078064
+4 2 10 0 0.00745392 0.119324
+4 2 11 0 0.0134125 0.173462
+4 2 12 0 0.0236359 0.238525
+4 2 13 0 0.0400391 0.313477
+4 2 14 0 0.0611877 0.397705
+4 2 15 0 0.0842285 0.48877
+4 2 16 0 0.108459 0.584473
+4 2 17 0 0.132202 0.677734
+4 2 18 0 0.154175 0.764648
+4 2 19 0 0.173706 0.841309
+4 2 20 0 0.18457 0.884277
+4 2 21 0 0.186646 0.892578
+4 2 22 0 0.188965 0.901367
+4 2 23 0 0.191284 0.910645
+4 2 24 0 0.193481 0.919922
+4 2 25 0 0.196045 0.929688
+4 2 26 0 0.198975 0.940918
+4 2 27 0 0.202026 0.953125
+4 2 28 0 0.205688 0.967285
+4 2 29 0 0.209473 0.982422
+4 2 30 0 0.213379 0.997559
+4 2 31 0 0.217407 1
+4 3 0 0.00521851 0.00180817 0.000112534
+4 3 1 0.00519943 0.00182915 0.00038147
+4 3 2 0.00532913 0.0019207 0.000902176
+4 3 3 0.00593948 0.00219917 0.00216103
+4 3 4 0.00396729 0.00174999 0.00321579
+4 3 5 0.00354195 0.00205612 0.00680923
+4 3 6 0.00200272 0.00237656 0.013504
+4 3 7 0 0.00278091 0.0254364
+4 3 8 0 0.00354767 0.0471191
+4 3 9 0 0.00509262 0.0780029
+4 3 10 0 0.00820923 0.119263
+4 3 11 0 0.0142059 0.173462
+4 3 12 0 0.0244598 0.238525
+4 3 13 0 0.040863 0.313477
+4 3 14 0 0.0617981 0.397705
+4 3 15 0 0.0846558 0.48877
+4 3 16 0 0.108826 0.584473
+4 3 17 0 0.132446 0.677734
+4 3 18 0 0.154419 0.764648
+4 3 19 0 0.173828 0.841309
+4 3 20 0 0.184692 0.884277
+4 3 21 0 0.186768 0.892578
+4 3 22 0 0.189087 0.901367
+4 3 23 0 0.191284 0.910645
+4 3 24 0 0.193604 0.919922
+4 3 25 0 0.196167 0.929688
+4 3 26 0 0.198975 0.940918
+4 3 27 0 0.202148 0.953125
+4 3 28 0 0.205688 0.967285
+4 3 29 0 0.209473 0.982422
+4 3 30 0 0.213379 0.997559
+4 3 31 0 0.217529 1
+4 4 0 0.00429153 0.0032959 6.82473e-05
+4 4 1 0.00414276 0.00324631 0.000337124
+4 4 2 0.00392532 0.00318909 0.000798702
+4 4 3 0.00363159 0.00315857 0.00162506
+4 4 4 0.00317764 0.00317764 0.00317764
+4 4 5 0.00257111 0.00354195 0.00668716
+4 4 6 0.000984192 0.00390053 0.0133514
+4 4 7 0 0.00427246 0.0252991
+4 4 8 0 0.00498581 0.0470276
+4 4 9 0 0.00649261 0.0779419
+4 4 10 0 0.00963593 0.119202
+4 4 11 0 0.0157166 0.173462
+4 4 12 0 0.0260162 0.238525
+4 4 13 0 0.0423584 0.313477
+4 4 14 0 0.0629272 0.397705
+4 4 15 0 0.0855103 0.48877
+4 4 16 0 0.109497 0.584473
+4 4 17 0 0.132935 0.677734
+4 4 18 0 0.154785 0.764648
+4 4 19 0 0.174194 0.841309
+4 4 20 0 0.184937 0.884277
+4 4 21 0 0.187012 0.892578
+4 4 22 0 0.189209 0.901367
+4 4 23 0 0.191406 0.910645
+4 4 24 0 0.193726 0.919922
+4 4 25 0 0.196289 0.929688
+4 4 26 0 0.199097 0.940918
+4 4 27 0 0.202148 0.953125
+4 4 28 0 0.205688 0.967285
+4 4 29 0 0.209473 0.982422
+4 4 30 0 0.213501 0.997559
+4 4 31 0 0.217529 1
+4 5 0 0.0025177 0.00649261 0
+4 5 1 0.0024128 0.00642014 5.33462e-05
+4 5 2 0.00223351 0.00630951 0.000552177
+4 5 3 0.00194263 0.00617218 0.00142765
+4 5 4 0.00149155 0.00617599 0.00308037
+4 5 5 0.000676155 0.0064888 0.00649261
+4 5 6 0 0.00684357 0.0130463
+4 5 7 0 0.00715256 0.0250244
+4 5 8 0 0.00776291 0.046814
+4 5 9 0 0.00920105 0.0777588
+4 5 10 0 0.0123901 0.119019
+4 5 11 0 0.0186157 0.17334
+4 5 12 0 0.029007 0.238403
+4 5 13 0 0.0451965 0.313477
+4 5 14 0 0.0651245 0.397705
+4 5 15 0 0.0871582 0.48877
+4 5 16 0 0.110718 0.584473
+4 5 17 0 0.133911 0.677734
+4 5 18 0 0.155518 0.764648
+4 5 19 0 0.174805 0.841309
+4 5 20 0 0.185425 0.884277
+4 5 21 0 0.187378 0.892578
+4 5 22 0 0.189453 0.901367
+4 5 23 0 0.19165 0.910645
+4 5 24 0 0.19397 0.919922
+4 5 25 0 0.196411 0.929688
+4 5 26 0 0.199219 0.940918
+4 5 27 0 0.202393 0.953125
+4 5 28 0 0.205811 0.967285
+4 5 29 0 0.209595 0.982422
+4 5 30 0 0.213501 0.997559
+4 5 31 0 0.217651 1
+4 6 0 0 0.0121536 0
+4 6 1 0 0.0121384 0
+4 6 2 0 0.0120926 0
+4 6 3 0 0.0120468 0.000907898
+4 6 4 0 0.0120621 0.0026474
+4 6 5 0 0.0122147 0.00602722
+4 6 6 0 0.0124283 0.0124359
+4 6 7 0 0.0126419 0.0244293
+4 6 8 0 0.0130768 0.0463562
+4 6 9 0 0.0143661 0.0773926
+4 6 10 0 0.0176392 0.118774
+4 6 11 0 0.0241394 0.173096
+4 6 12 0 0.034729 0.238281
+4 6 13 0 0.0503235 0.313477
+4 6 14 0 0.0690918 0.397705
+4 6 15 0 0.09021 0.48877
+4 6 16 0 0.113098 0.584473
+4 6 17 0 0.135742 0.677734
+4 6 18 0 0.156982 0.764648
+4 6 19 0 0.175903 0.841309
+4 6 20 0 0.186401 0.884277
+4 6 21 0 0.18811 0.892578
+4 6 22 0 0.190063 0.901855
+4 6 23 0 0.192261 0.910645
+4 6 24 0 0.194336 0.919922
+4 6 25 0 0.196777 0.929688
+4 6 26 0 0.199585 0.940918
+4 6 27 0 0.202637 0.953613
+4 6 28 0 0.206055 0.967285
+4 6 29 0 0.209839 0.982422
+4 6 30 0 0.213745 0.997559
+4 6 31 0 0.217773 1
+4 7 0 0 0.0226135 0
+4 7 1 0 0.022644 0
+4 7 2 0 0.0226593 0
+4 7 3 0 0.0226898 0
+4 7 4 0 0.0227509 0.00151539
+4 7 5 0 0.0228882 0.00485229
+4 7 6 0 0.0230408 0.0111771
+4 7 7 0 0.0231628 0.0231934
+4 7 8 0 0.0233765 0.0453796
+4 7 9 0 0.0244293 0.0767822
+4 7 10 0 0.0278473 0.118225
+4 7 11 0 0.0348816 0.172607
+4 7 12 0 0.0455627 0.238037
+4 7 13 0 0.0593872 0.313232
+4 7 14 0 0.0762939 0.397461
+4 7 15 0 0.0959473 0.48877
+4 7 16 0 0.117493 0.584473
+4 7 17 0 0.13916 0.677734
+4 7 18 0 0.159668 0.764648
+4 7 19 0 0.178101 0.841309
+4 7 20 0 0.188232 0.884277
+4 7 21 0 0.189575 0.893066
+4 7 22 0 0.191284 0.901855
+4 7 23 0 0.193237 0.910645
+4 7 24 0 0.19519 0.919922
+4 7 25 0 0.19751 0.929688
+4 7 26 0 0.200195 0.940918
+4 7 27 0 0.203125 0.953613
+4 7 28 0 0.206543 0.967285
+4 7 29 0 0.210205 0.982422
+4 7 30 0 0.214111 0.998047
+4 7 31 0 0.218018 1
+4 8 0 0 0.0421143 0
+4 8 1 0 0.0421448 0
+4 8 2 0 0.0421753 0
+4 8 3 0 0.0422363 0
+4 8 4 0 0.0423279 0
+4 8 5 0 0.042511 0.00259781
+4 8 6 0 0.0427551 0.00875854
+4 8 7 0 0.0429993 0.0206604
+4 8 8 0 0.0431519 0.0431824
+4 8 9 0 0.0439453 0.0755005
+4 8 10 0 0.0473022 0.117249
+4 8 11 0 0.0541992 0.171875
+4 8 12 0 0.0632324 0.237549
+4 8 13 0 0.074707 0.312988
+4 8 14 0 0.0891113 0.397217
+4 8 15 0 0.106262 0.488525
+4 8 16 0 0.125732 0.584473
+4 8 17 0 0.145752 0.677734
+4 8 18 0 0.164917 0.764648
+4 8 19 0 0.182373 0.841309
+4 8 20 0 0.19165 0.884766
+4 8 21 0 0.192261 0.893066
+4 8 22 0 0.193481 0.901855
+4 8 23 0 0.195068 0.911133
+4 8 24 0 0.196777 0.919922
+4 8 25 0 0.198975 0.930176
+4 8 26 0 0.201294 0.941406
+4 8 27 0 0.204102 0.953613
+4 8 28 0 0.207397 0.967285
+4 8 29 0 0.210938 0.982422
+4 8 30 0 0.214722 0.998047
+4 8 31 0 0.218628 1
+4 9 0 0 0.0708618 0
+4 9 1 0 0.0709229 0
+4 9 2 0 0.0709229 0
+4 9 3 0 0.0709839 0
+4 9 4 0 0.0710449 0
+4 9 5 0 0.071167 0
+4 9 6 0 0.0713501 0.00458527
+4 9 7 0 0.0716553 0.0161743
+4 9 8 0 0.0720825 0.0387573
+4 9 9 0 0.072998 0.072998
+4 9 10 0 0.0757446 0.11554
+4 9 11 0 0.0818481 0.17041
+4 9 12 0 0.0893555 0.236572
+4 9 13 0 0.0985107 0.312256
+4 9 14 0 0.109924 0.396973
+4 9 15 0 0.123901 0.488525
+4 9 16 0 0.140259 0.584473
+4 9 17 0 0.157593 0.678223
+4 9 18 0 0.174561 0.764648
+4 9 19 0 0.190308 0.841797
+4 9 20 0 0.19812 0.885254
+4 9 21 0 0.19751 0.893555
+4 9 22 0 0.197754 0.902344
+4 9 23 0 0.198608 0.911133
+4 9 24 0 0.199951 0.92041
+4 9 25 0 0.201538 0.930176
+4 9 26 0 0.203613 0.941406
+4 9 27 0 0.206177 0.953613
+4 9 28 0 0.209106 0.967773
+4 9 29 0 0.212402 0.982422
+4 9 30 0 0.215942 0.998047
+4 9 31 0 0.219727 1
+4 10 0 0 0.108704 0
+4 10 1 0 0.108765 0
+4 10 2 0 0.108765 0
+4 10 3 0 0.108765 0
+4 10 4 0 0.108826 0
+4 10 5 0 0.108887 0
+4 10 6 0 0.108948 0
+4 10 7 0 0.10907 0.0091095
+4 10 8 0 0.109436 0.0317383
+4 10 9 0 0.110352 0.0686646
+4 10 10 0 0.112915 0.112976
+4 10 11 0 0.118286 0.168335
+4 10 12 0 0.124756 0.234741
+4 10 13 0 0.131958 0.311035
+4 10 14 0 0.140503 0.39624
+4 10 15 0 0.150879 0.488037
+4 10 16 0 0.163452 0.584473
+4 10 17 0 0.177002 0.678223
+4 10 18 0 0.190674 0.765137
+4 10 19 0 0.203735 0.841797
+4 10 20 0 0.209351 0.88623
+4 10 21 0 0.206543 0.894043
+4 10 22 0 0.205322 0.902832
+4 10 23 0 0.204956 0.912109
+4 10 24 0 0.205322 0.920898
+4 10 25 0 0.206299 0.930664
+4 10 26 0 0.207642 0.941895
+4 10 27 0 0.209595 0.954102
+4 10 28 0 0.212158 0.967773
+4 10 29 0 0.215088 0.98291
+4 10 30 0 0.218262 0.998535
+4 10 31 0 0.22168 1
+4 11 0 0 0.158936 0
+4 11 1 0 0.158936 0
+4 11 2 0 0.158936 0
+4 11 3 0 0.158936 0
+4 11 4 0 0.158936 0
+4 11 5 0 0.159058 0
+4 11 6 0 0.159058 0
+4 11 7 0 0.159058 0
+4 11 8 0 0.158936 0.0201874
+4 11 9 0 0.159424 0.0614929
+4 11 10 0 0.161133 0.10907
+4 11 11 0 0.165039 0.165039
+4 11 12 0 0.170288 0.232056
+4 11 13 0 0.176025 0.309082
+4 11 14 0 0.182007 0.39502
+4 11 15 0 0.188965 0.487305
+4 11 16 0 0.197388 0.583984
+4 11 17 0 0.206421 0.678223
+4 11 18 0 0.215942 0.765137
+4 11 19 0 0.22522 0.842285
+4 11 20 0 0.227783 0.887695
+4 11 21 0 0.22168 0.895508
+4 11 22 0 0.217896 0.904297
+4 11 23 0 0.215698 0.913086
+4 11 24 0 0.2146 0.921875
+4 11 25 0 0.214355 0.931641
+4 11 26 0 0.2146 0.942383
+4 11 27 0 0.215698 0.95459
+4 11 28 0 0.217407 0.96875
+4 11 29 0 0.219604 0.983398
+4 11 30 0 0.222168 0.998535
+4 11 31 0 0.224976 1
+4 12 0 0 0.220947 0
+4 12 1 0 0.220947 0
+4 12 2 0 0.220947 0
+4 12 3 0 0.220947 0
+4 12 4 0 0.220947 0
+4 12 5 0 0.221069 0
+4 12 6 0 0.221191 0
+4 12 7 0 0.221191 0
+4 12 8 0 0.221313 0
+4 12 9 0 0.221436 0.0450745
+4 12 10 0 0.222046 0.100708
+4 12 11 0 0.223999 0.159546
+4 12 12 0 0.227417 0.227539
+4 12 13 0 0.231689 0.30542
+4 12 14 0 0.235718 0.392578
+4 12 15 0 0.239624 0.48584
+4 12 16 0 0.244019 0.583496
+4 12 17 0 0.248291 0.677734
+4 12 18 0 0.25293 0.765137
+4 12 19 0 0.257568 0.842773
+4 12 20 0 0.256104 0.890137
+4 12 21 0 0.245239 0.897949
+4 12 22 0 0.237793 0.90625
+4 12 23 0 0.23291 0.914551
+4 12 24 0 0.229614 0.92334
+4 12 25 0 0.227417 0.933105
+4 12 26 0 0.226074 0.943848
+4 12 27 0 0.225586 0.956055
+4 12 28 0 0.225952 0.969727
+4 12 29 0 0.227051 0.984375
+4 12 30 0 0.228638 0.999512
+4 12 31 0 0.230591 1
+4 13 0 0 0.292725 0
+4 13 1 0 0.292725 0
+4 13 2 0 0.292969 0
+4 13 3 0 0.292969 0
+4 13 4 0 0.292969 0
+4 13 5 0 0.292969 0
+4 13 6 0 0.292969 0
+4 13 7 0 0.293213 0
+4 13 8 0 0.293213 0
+4 13 9 0 0.293457 0.00787354
+4 13 10 0 0.293945 0.0814209
+4 13 11 0 0.294922 0.148438
+4 13 12 0 0.296631 0.219727
+4 13 13 0 0.299316 0.299561
+4 13 14 0 0.301758 0.387939
+4 13 15 0 0.303223 0.48291
+4 13 16 0 0.303955 0.582031
+4 13 17 0 0.303711 0.677246
+4 13 18 0 0.302979 0.765625
+4 13 19 0 0.30249 0.843262
+4 13 20 0 0.296631 0.894043
+4 13 21 0 0.279541 0.901855
+4 13 22 0 0.267334 0.909668
+4 13 23 0 0.258545 0.917969
+4 13 24 0 0.252441 0.92627
+4 13 25 0 0.247437 0.935547
+4 13 26 0 0.243652 0.946289
+4 13 27 0 0.240967 0.958008
+4 13 28 0 0.239502 0.971191
+4 13 29 0 0.238892 0.98584
+4 13 30 0 0.239014 1
+4 13 31 0 0.239624 1
+4 14 0 0 0.374268 0
+4 14 1 0 0.374268 0
+4 14 2 0 0.374268 0
+4 14 3 0 0.374268 0
+4 14 4 0 0.374268 0
+4 14 5 0 0.374268 0
+4 14 6 0 0.374268 0
+4 14 7 0 0.374512 0
+4 14 8 0 0.374756 0
+4 14 9 0 0.375 0
+4 14 10 0 0.375488 0.0342712
+4 14 11 0 0.376465 0.125977
+4 14 12 0 0.377441 0.205444
+4 14 13 0 0.378906 0.289062
+4 14 14 0 0.379883 0.380127
+4 14 15 0 0.379395 0.477295
+4 14 16 0 0.377197 0.578125
+4 14 17 0 0.372803 0.675781
+4 14 18 0 0.367188 0.765137
+4 14 19 0 0.361572 0.84375
+4 14 20 0 0.351318 0.899902
+4 14 21 0 0.326904 0.907227
+4 14 22 0 0.308594 0.915039
+4 14 23 0 0.294922 0.922852
+4 14 24 0 0.284912 0.930664
+4 14 25 0 0.276367 0.939941
+4 14 26 0 0.269287 0.949707
+4 14 27 0 0.263672 0.960938
+4 14 28 0 0.259521 0.974121
+4 14 29 0 0.256592 0.988281
+4 14 30 0 0.254639 1
+4 14 31 0 0.253174 1
+4 15 0 0 0.463135 0
+4 15 1 0 0.463135 0
+4 15 2 0 0.463135 0
+4 15 3 0 0.463135 0
+4 15 4 0 0.463135 0
+4 15 5 0 0.463135 0
+4 15 6 0 0.463135 0
+4 15 7 0 0.463135 0
+4 15 8 0 0.463379 0
+4 15 9 0 0.463623 0
+4 15 10 0 0.464355 0
+4 15 11 0 0.465332 0.0797119
+4 15 12 0 0.466553 0.179443
+4 15 13 0 0.467773 0.270752
+4 15 14 0 0.468262 0.366455
+4 15 15 0 0.467041 0.467285
+4 15 16 0 0.462891 0.571289
+4 15 17 0 0.455322 0.671875
+4 15 18 0 0.445068 0.763184
+4 15 19 0 0.434082 0.843262
+4 15 20 0 0.420898 0.90625
+4 15 21 0 0.388428 0.915039
+4 15 22 0 0.363037 0.922852
+4 15 23 0 0.34375 0.930664
+4 15 24 0 0.328857 0.937988
+4 15 25 0 0.315918 0.946289
+4 15 26 0 0.304688 0.955566
+4 15 27 0 0.29541 0.966309
+4 15 28 0 0.287842 0.979004
+4 15 29 0 0.281738 0.992188
+4 15 30 0 0.276611 1
+4 15 31 0 0.272949 1
+4 16 0 0 0.557617 0
+4 16 1 0 0.557617 0
+4 16 2 0 0.557617 0
+4 16 3 0 0.557617 0
+4 16 4 0 0.557617 0
+4 16 5 0 0.557617 0
+4 16 6 0 0.557617 0
+4 16 7 0 0.557617 0
+4 16 8 0 0.558105 0
+4 16 9 0 0.558105 0
+4 16 10 0 0.558594 0
+4 16 11 0 0.560059 0
+4 16 12 0 0.561523 0.133179
+4 16 13 0 0.562988 0.241211
+4 16 14 0 0.563965 0.344238
+4 16 15 0 0.562988 0.450195
+4 16 16 0 0.558594 0.558594
+4 16 17 0 0.548828 0.663086
+4 16 18 0 0.535156 0.758301
+4 16 19 0 0.52002 0.84082
+4 16 20 0 0.50293 0.90918
+4 16 21 0 0.4646 0.924805
+4 16 22 0 0.431885 0.93457
+4 16 23 0 0.40625 0.941895
+4 16 24 0 0.385742 0.949219
+4 16 25 0 0.367432 0.956543
+4 16 26 0 0.351318 0.965332
+4 16 27 0 0.337402 0.974609
+4 16 28 0 0.325439 0.986328
+4 16 29 0 0.31543 0.998535
+4 16 30 0 0.306885 1
+4 16 31 0 0.299561 1
+4 17 0 0 0.651855 0
+4 17 1 0 0.651855 0
+4 17 2 0 0.651855 0
+4 17 3 0 0.651855 0
+4 17 4 0 0.651855 0
+4 17 5 0 0.651855 0
+4 17 6 0 0.651855 0
+4 17 7 0 0.652344 0
+4 17 8 0 0.652344 0
+4 17 9 0 0.652344 0
+4 17 10 0 0.652832 0
+4 17 11 0 0.653809 0
+4 17 12 0 0.655762 0.0249023
+4 17 13 0 0.658203 0.195312
+4 17 14 0 0.660156 0.311523
+4 17 15 0 0.660645 0.424072
+4 17 16 0 0.656738 0.537598
+4 17 17 0 0.646973 0.647461
+4 17 18 0 0.632324 0.747559
+4 17 19 0 0.61377 0.834473
+4 17 20 0 0.592773 0.905762
+4 17 21 0 0.552734 0.93457
+4 17 22 0 0.513672 0.94873
+4 17 23 0 0.481445 0.95752
+4 17 24 0 0.454834 0.964844
+4 17 25 0 0.430664 0.97168
+4 17 26 0 0.408936 0.979004
+4 17 27 0 0.389404 0.987305
+4 17 28 0 0.372559 0.99707
+4 17 29 0 0.357666 1
+4 17 30 0 0.344727 1
+4 17 31 0 0.333496 1
+4 18 0 0 0.740723 0
+4 18 1 0 0.740723 0
+4 18 2 0 0.740723 0
+4 18 3 0 0.740723 0
+4 18 4 0 0.740723 0
+4 18 5 0 0.740723 0
+4 18 6 0 0.740723 0
+4 18 7 0 0.741211 0
+4 18 8 0 0.741211 0
+4 18 9 0 0.741211 0
+4 18 10 0 0.741211 0
+4 18 11 0 0.742188 0
+4 18 12 0 0.744141 0
+4 18 13 0 0.74707 0.119873
+4 18 14 0 0.750488 0.266113
+4 18 15 0 0.752441 0.388672
+4 18 16 0 0.750977 0.508301
+4 18 17 0 0.743164 0.623535
+4 18 18 0 0.729492 0.729492
+4 18 19 0 0.709961 0.821777
+4 18 20 0 0.686523 0.897949
+4 18 21 0 0.647949 0.940918
+4 18 22 0 0.60498 0.963379
+4 18 23 0 0.567383 0.976074
+4 18 24 0 0.534668 0.984375
+4 18 25 0 0.504395 0.991211
+4 18 26 0 0.476074 0.997559
+4 18 27 0 0.450439 1
+4 18 28 0 0.427734 1
+4 18 29 0 0.407715 1
+4 18 30 0 0.389893 1
+4 18 31 0 0.374023 1
+4 19 0 0 0.821289 0
+4 19 1 0 0.821289 0
+4 19 2 0 0.821289 0
+4 19 3 0 0.821289 0
+4 19 4 0 0.821289 0
+4 19 5 0 0.821289 0
+4 19 6 0 0.821289 0
+4 19 7 0 0.821289 0
+4 19 8 0 0.821289 0
+4 19 9 0 0.821289 0
+4 19 10 0 0.821777 0
+4 19 11 0 0.821777 0
+4 19 12 0 0.82373 0
+4 19 13 0 0.827148 0
+4 19 14 0 0.831055 0.2052
+4 19 15 0 0.834473 0.344482
+4 19 16 0 0.835449 0.47168
+4 19 17 0 0.831543 0.592773
+4 19 18 0 0.820312 0.70459
+4 19 19 0 0.801758 0.802246
+4 19 20 0 0.777832 0.883301
+4 19 21 0 0.742676 0.94043
+4 19 22 0 0.700684 0.974609
+4 19 23 0 0.65918 0.993652
+4 19 24 0 0.621582 1
+4 19 25 0 0.585449 1
+4 19 26 0 0.550781 1
+4 19 27 0 0.519043 1
+4 19 28 0 0.48999 1
+4 19 29 0 0.463867 1
+4 19 30 0 0.44043 1
+4 19 31 0 0.419678 1
+4 20 0 0 0.891113 0
+4 20 1 0 0.891113 0
+4 20 2 0 0.891113 0
+4 20 3 0 0.891113 0
+4 20 4 0 0.891113 0
+4 20 5 0 0.891113 0
+4 20 6 0 0.891113 0
+4 20 7 0 0.891113 0
+4 20 8 0 0.891602 0
+4 20 9 0 0.891602 0
+4 20 10 0 0.891602 0
+4 20 11 0 0.891602 0
+4 20 12 0 0.892578 0
+4 20 13 0 0.895996 0
+4 20 14 0 0.900879 0.114441
+4 20 15 0 0.905273 0.29248
+4 20 16 0 0.908691 0.429443
+4 20 17 0 0.907715 0.555664
+4 20 18 0 0.899902 0.672363
+4 20 19 0 0.884277 0.775879
+4 20 20 0 0.861816 0.862305
+4 20 21 0 0.831543 0.931152
+4 20 22 0 0.79248 0.977539
+4 20 23 0 0.750977 1
+4 20 24 0 0.710449 1
+4 20 25 0 0.669434 1
+4 20 26 0 0.629395 1
+4 20 27 0 0.591309 1
+4 20 28 0 0.556152 1
+4 20 29 0 0.523926 1
+4 20 30 0 0.494873 1
+4 20 31 0 0.468506 1
+4 21 0 0 0.951172 0
+4 21 1 0 0.951172 0
+4 21 2 0 0.951172 0
+4 21 3 0 0.951172 0
+4 21 4 0 0.951172 0
+4 21 5 0 0.951172 0
+4 21 6 0 0.951172 0
+4 21 7 0 0.951172 0
+4 21 8 0 0.951172 0
+4 21 9 0 0.951172 0
+4 21 10 0 0.951172 0
+4 21 11 0 0.95166 0
+4 21 12 0 0.95166 0
+4 21 13 0 0.95459 0
+4 21 14 0 0.959473 0
+4 21 15 0 0.965332 0.228394
+4 21 16 0 0.970703 0.381348
+4 21 17 0 0.972656 0.513672
+4 21 18 0 0.968262 0.634766
+4 21 19 0 0.956543 0.742676
+4 21 20 0 0.937012 0.834473
+4 21 21 0 0.911133 0.911621
+4 21 22 0 0.877441 0.970215
+4 21 23 0 0.838867 1
+4 21 24 0 0.797852 1
+4 21 25 0 0.754883 1
+4 21 26 0 0.710449 1
+4 21 27 0 0.666992 1
+4 21 28 0 0.625977 1
+4 21 29 0 0.587891 1
+4 21 30 0 0.552734 1
+4 21 31 0 0.520996 1
+4 22 0 0 1 0
+4 22 1 0 1 0
+4 22 2 0 1 0
+4 22 3 0 1 0
+4 22 4 0 1 0
+4 22 5 0 1 0
+4 22 6 0 1 0
+4 22 7 0 1 0
+4 22 8 0 1 0
+4 22 9 0 1 0
+4 22 10 0 1 0
+4 22 11 0 1 0
+4 22 12 0 1 0
+4 22 13 0 1 0
+4 22 14 0 1 0
+4 22 15 0 1 0.142456
+4 22 16 0 1 0.327881
+4 22 17 0 1 0.468018
+4 22 18 0 1 0.593262
+4 22 19 0 1 0.705078
+4 22 20 0 1 0.80127
+4 22 21 0 0.979004 0.883789
+4 22 22 0 0.950195 0.950684
+4 22 23 0 0.916504 1
+4 22 24 0 0.878906 1
+4 22 25 0 0.835938 1
+4 22 26 0 0.789551 1
+4 22 27 0 0.742676 1
+4 22 28 0 0.697266 1
+4 22 29 0 0.653809 1
+4 22 30 0 0.613281 1
+4 22 31 0 0.575684 1
+4 23 0 0 1 0
+4 23 1 0 1 0
+4 23 2 0 1 0
+4 23 3 0 1 0
+4 23 4 0 1 0
+4 23 5 0 1 0
+4 23 6 0 1 0
+4 23 7 0 1 0
+4 23 8 0 1 0
+4 23 9 0 1 0
+4 23 10 0 1 0
+4 23 11 0 1 0
+4 23 12 0 1 0
+4 23 13 0 1 0
+4 23 14 0 1 0
+4 23 15 0 1 0
+4 23 16 0 1 0.270264
+4 23 17 0 1 0.421143
+4 23 18 0 1 0.550293
+4 23 19 0 1 0.665527
+4 23 20 0 1 0.765137
+4 23 21 0 1 0.852051
+4 23 22 0 1 0.923828
+4 23 23 0 0.980469 0.980957
+4 23 24 0 0.947266 1
+4 23 25 0 0.907227 1
+4 23 26 0 0.861816 1
+4 23 27 0 0.813477 1
+4 23 28 0 0.764648 1
+4 23 29 0 0.717285 1
+4 23 30 0 0.671875 1
+4 23 31 0 0.629395 1
+4 24 0 0 1 0
+4 24 1 0 1 0
+4 24 2 0 1 0
+4 24 3 0 1 0
+4 24 4 0 1 0
+4 24 5 0 1 0
+4 24 6 0 1 0
+4 24 7 0 1 0
+4 24 8 0 1 0
+4 24 9 0 1 0
+4 24 10 0 1 0
+4 24 11 0 1 0
+4 24 12 0 1 0
+4 24 13 0 1 0
+4 24 14 0 1 0
+4 24 15 0 1 0
+4 24 16 0 1 0.204346
+4 24 17 0 1 0.373291
+4 24 18 0 1 0.507324
+4 24 19 0 1 0.624512
+4 24 20 0 1 0.727539
+4 24 21 0 1 0.817383
+4 24 22 0 1 0.893555
+4 24 23 0 1 0.955566
+4 24 24 0 1 1
+4 24 25 0 0.96875 1
+4 24 26 0 0.925781 1
+4 24 27 0 0.87793 1
+4 24 28 0 0.828125 1
+4 24 29 0 0.777344 1
+4 24 30 0 0.728516 1
+4 24 31 0 0.682129 1
+4 25 0 0 1 0
+4 25 1 0 1 0
+4 25 2 0 1 0
+4 25 3 0 1 0
+4 25 4 0 1 0
+4 25 5 0 1 0
+4 25 6 0 1 0
+4 25 7 0 1 0
+4 25 8 0 1 0
+4 25 9 0 1 0
+4 25 10 0 1 0
+4 25 11 0 1 0
+4 25 12 0 1 0
+4 25 13 0 1 0
+4 25 14 0 1 0
+4 25 15 0 1 0
+4 25 16 0 1 0.10437
+4 25 17 0 1 0.318359
+4 25 18 0 1 0.459229
+4 25 19 0 1 0.57959
+4 25 20 0 1 0.68457
+4 25 21 0 1 0.777344
+4 25 22 0 1 0.85791
+4 25 23 0 1 0.923828
+4 25 24 0 1 0.977539
+4 25 25 0 1 1
+4 25 26 0 0.986816 1
+4 25 27 0 0.941406 1
+4 25 28 0 0.891602 1
+4 25 29 0 0.839355 1
+4 25 30 0 0.787598 1
+4 25 31 0 0.737793 1
+4 26 0 0 1 0
+4 26 1 0 1 0
+4 26 2 0 1 0
+4 26 3 0 1 0
+4 26 4 0 1 0
+4 26 5 0 1 0
+4 26 6 0 1 0
+4 26 7 0 1 0
+4 26 8 0 1 0
+4 26 9 0 1 0
+4 26 10 0 1 0
+4 26 11 0 1 0
+4 26 12 0 1 0
+4 26 13 0 1 0
+4 26 14 0 1 0
+4 26 15 0 1 0
+4 26 16 0 1 0
+4 26 17 0 1 0.25293
+4 26 18 0 1 0.40625
+4 26 19 0 1 0.529785
+4 26 20 0 1 0.636719
+4 26 21 0 1 0.732422
+4 26 22 0 1 0.815918
+4 26 23 0 1 0.885742
+4 26 24 0 1 0.943848
+4 26 25 0 1 0.99707
+4 26 26 0 1 1
+4 26 27 0 1 1
+4 26 28 0 0.953613 1
+4 26 29 0 0.901855 1
+4 26 30 0 0.848633 1
+4 26 31 0 0.795898 1
+4 27 0 0 1 0
+4 27 1 0 1 0
+4 27 2 0 1 0
+4 27 3 0 1 0
+4 27 4 0 1 0
+4 27 5 0 1 0
+4 27 6 0 1 0
+4 27 7 0 1 0
+4 27 8 0 1 0
+4 27 9 0 1 0
+4 27 10 0 1 0
+4 27 11 0 1 0
+4 27 12 0 1 0
+4 27 13 0 1 0
+4 27 14 0 1 0
+4 27 15 0 1 0
+4 27 16 0 1 0
+4 27 17 0 1 0.166138
+4 27 18 0 1 0.34668
+4 27 19 0 1 0.47583
+4 27 20 0 1 0.584961
+4 27 21 0 1 0.682129
+4 27 22 0 1 0.768066
+4 27 23 0 1 0.841309
+4 27 24 0 1 0.90332
+4 27 25 0 1 0.960938
+4 27 26 0 1 1
+4 27 27 0 1 1
+4 27 28 0 1 1
+4 27 29 0 0.962402 1
+4 27 30 0 0.908691 1
+4 27 31 0 0.854492 1
+4 28 0 0 1 0
+4 28 1 0 1 0
+4 28 2 0 1 0
+4 28 3 0 1 0
+4 28 4 0 1 0
+4 28 5 0 1 0
+4 28 6 0 1 0
+4 28 7 0 1 0
+4 28 8 0 1 0
+4 28 9 0 1 0
+4 28 10 0 1 0
+4 28 11 0 1 0
+4 28 12 0 1 0
+4 28 13 0 1 0
+4 28 14 0 1 0
+4 28 15 0 1 0
+4 28 16 0 1 0
+4 28 17 0 1 0
+4 28 18 0 1 0.278076
+4 28 19 0 1 0.417236
+4 28 20 0 1 0.529297
+4 28 21 0 1 0.62793
+4 28 22 0 1 0.71582
+4 28 23 0 1 0.791016
+4 28 24 0 1 0.855957
+4 28 25 0 1 0.91748
+4 28 26 0 1 0.974121
+4 28 27 0 1 1
+4 28 28 0 1 1
+4 28 29 0 1 1
+4 28 30 0 0.968262 1
+4 28 31 0 0.914062 1
+4 29 0 0 1 0
+4 29 1 0 1 0
+4 29 2 0 1 0
+4 29 3 0 1 0
+4 29 4 0 1 0
+4 29 5 0 1 0
+4 29 6 0 1 0
+4 29 7 0 1 0
+4 29 8 0 1 0
+4 29 9 0 1 0
+4 29 10 0 1 0
+4 29 11 0 1 0
+4 29 12 0 1 0
+4 29 13 0 1 0
+4 29 14 0 1 0
+4 29 15 0 1 0
+4 29 16 0 1 0
+4 29 17 0 1 0
+4 29 18 0 1 0.19104
+4 29 19 0 1 0.352051
+4 29 20 0 1 0.46875
+4 29 21 0 1 0.569336
+4 29 22 0 1 0.658203
+4 29 23 0 1 0.735352
+4 29 24 0 1 0.802734
+4 29 25 0 1 0.867188
+4 29 26 0 1 0.928223
+4 29 27 0 1 0.983398
+4 29 28 0 1 1
+4 29 29 0 1 1
+4 29 30 0 1 1
+4 29 31 0 0.973145 1
+4 30 0 0 1 0
+4 30 1 0 1 0
+4 30 2 0 1 0
+4 30 3 0 1 0
+4 30 4 0 1 0
+4 30 5 0 1 0
+4 30 6 0 1 0
+4 30 7 0 1 0
+4 30 8 0 1 0
+4 30 9 0 1 0
+4 30 10 0 1 0
+4 30 11 0 1 0
+4 30 12 0 1 0
+4 30 13 0 1 0
+4 30 14 0 1 0
+4 30 15 0 1 0
+4 30 16 0 1 0
+4 30 17 0 1 0
+4 30 18 0 1 0.022583
+4 30 19 0 1 0.277588
+4 30 20 0 1 0.403564
+4 30 21 0 1 0.506836
+4 30 22 0 1 0.59668
+4 30 23 0 1 0.674805
+4 30 24 0 1 0.743652
+4 30 25 0 1 0.810547
+4 30 26 0 1 0.874512
+4 30 27 0 1 0.935059
+4 30 28 0 1 0.989746
+4 30 29 0 1 1
+4 30 30 0 1 1
+4 30 31 0 1 1
+4 31 0 0 1 0
+4 31 1 0 1 0
+4 31 2 0 1 0
+4 31 3 0 1 0
+4 31 4 0 1 0
+4 31 5 0 1 0
+4 31 6 0 1 0
+4 31 7 0 1 0
+4 31 8 0 1 0
+4 31 9 0 1 0
+4 31 10 0 1 0
+4 31 11 0 1 0
+4 31 12 0 1 0
+4 31 13 0 1 0
+4 31 14 0 1 0
+4 31 15 0 1 0
+4 31 16 0 1 0
+4 31 17 0 1 0
+4 31 18 0 1 0
+4 31 19 0 1 0.184082
+4 31 20 0 1 0.331787
+4 31 21 0 1 0.439941
+4 31 22 0 1 0.531738
+4 31 23 0 1 0.610352
+4 31 24 0 1 0.680176
+4 31 25 0 1 0.748535
+4 31 26 0 1 0.81543
+4 31 27 0 1 0.879883
+4 31 28 0 1 0.94043
+4 31 29 0 1 0.995117
+4 31 30 0 1 1
+4 31 31 0 1 1
+5 0 0 0.0226898 0 0
+5 0 1 0.022644 0 6.28233e-05
+5 0 2 0.0221863 0 0.00111675
+5 0 3 0.0206146 0 0.00290871
+5 0 4 0.0143127 0.000140786 0.00463867
+5 0 5 0.0103531 0.000581741 0.00703812
+5 0 6 0.00886536 0.000833988 0.0136032
+5 0 7 0.00548553 0.00127602 0.0255432
+5 0 8 0 0.00209808 0.0472412
+5 0 9 0 0.00367355 0.078064
+5 0 10 0 0.00675964 0.119324
+5 0 11 0 0.0126801 0.173462
+5 0 12 0 0.0228882 0.238525
+5 0 13 0 0.0392761 0.313477
+5 0 14 0 0.0606384 0.397705
+5 0 15 0 0.0838013 0.48877
+5 0 16 0 0.108154 0.584473
+5 0 17 0 0.131958 0.677734
+5 0 18 0 0.154053 0.764648
+5 0 19 0 0.173584 0.841309
+5 0 20 0 0.184448 0.884277
+5 0 21 0 0.186646 0.892578
+5 0 22 0 0.188843 0.901367
+5 0 23 0 0.191162 0.910645
+5 0 24 0 0.193481 0.919922
+5 0 25 0 0.196045 0.929688
+5 0 26 0 0.198853 0.940918
+5 0 27 0 0.202026 0.953125
+5 0 28 0 0.205566 0.967285
+5 0 29 0 0.209351 0.982422
+5 0 30 0 0.213379 0.997559
+5 0 31 0 0.217407 1
+5 1 0 0.0216827 0.000399351 0
+5 1 1 0.0217438 0.000370026 6.97374e-06
+5 1 2 0.0215302 0.000312328 0.00102997
+5 1 3 0.0202332 0.000249386 0.00281906
+5 1 4 0.0144119 0.000447989 0.00468826
+5 1 5 0.0101929 0.000824928 0.00701523
+5 1 6 0.00869751 0.00108147 0.0135803
+5 1 7 0.00532532 0.00151825 0.025528
+5 1 8 0 0.00233269 0.0472107
+5 1 9 0 0.00390244 0.078064
+5 1 10 0 0.00698853 0.119263
+5 1 11 0 0.0129242 0.173462
+5 1 12 0 0.0231476 0.238525
+5 1 13 0 0.0395508 0.313477
+5 1 14 0 0.0608215 0.397705
+5 1 15 0 0.0839233 0.48877
+5 1 16 0 0.108276 0.584473
+5 1 17 0 0.131958 0.677734
+5 1 18 0 0.154053 0.764648
+5 1 19 0 0.173584 0.841309
+5 1 20 0 0.18457 0.884277
+5 1 21 0 0.186646 0.892578
+5 1 22 0 0.188843 0.901367
+5 1 23 0 0.191162 0.910645
+5 1 24 0 0.193481 0.919922
+5 1 25 0 0.196045 0.929688
+5 1 26 0 0.198853 0.940918
+5 1 27 0 0.202026 0.953125
+5 1 28 0 0.205566 0.967285
+5 1 29 0 0.209473 0.982422
+5 1 30 0 0.213379 0.997559
+5 1 31 0 0.217407 1
+5 2 0 0.0198059 0.0012598 0
+5 2 1 0.0199432 0.00124073 0
+5 2 2 0.02005 0.00119686 0.000891209
+5 2 3 0.0192719 0.0011034 0.00264168
+5 2 4 0.0146179 0.0010376 0.00477982
+5 2 5 0.00990295 0.0012579 0.00696945
+5 2 6 0.00840759 0.00152206 0.0135345
+5 2 7 0.00503922 0.00194931 0.0254822
+5 2 8 0 0.00274658 0.0471802
+5 2 9 0 0.00430679 0.0780029
+5 2 10 0 0.00740433 0.119263
+5 2 11 0 0.0133591 0.173462
+5 2 12 0 0.0235901 0.238525
+5 2 13 0 0.039978 0.313477
+5 2 14 0 0.0611572 0.397705
+5 2 15 0 0.0841675 0.48877
+5 2 16 0 0.108459 0.584473
+5 2 17 0 0.132202 0.677734
+5 2 18 0 0.154175 0.764648
+5 2 19 0 0.173706 0.841309
+5 2 20 0 0.18457 0.884277
+5 2 21 0 0.186646 0.892578
+5 2 22 0 0.188965 0.901367
+5 2 23 0 0.191284 0.910645
+5 2 24 0 0.193604 0.919922
+5 2 25 0 0.196045 0.929688
+5 2 26 0 0.198975 0.940918
+5 2 27 0 0.202026 0.953125
+5 2 28 0 0.205688 0.967285
+5 2 29 0 0.209473 0.982422
+5 2 30 0 0.213379 0.997559
+5 2 31 0 0.217529 1
+5 3 0 0.0164185 0.00247765 0
+5 3 1 0.016571 0.00249481 0
+5 3 2 0.016861 0.00251961 0.000720024
+5 3 3 0.0172729 0.00253487 0.00231934
+5 3 4 0.0148697 0.00227547 0.00490952
+5 3 5 0.00937653 0.0020504 0.00689316
+5 3 6 0.00786591 0.00232887 0.0134506
+5 3 7 0.00451279 0.00273705 0.0254059
+5 3 8 0 0.00350761 0.0471497
+5 3 9 0 0.00504684 0.0780029
+5 3 10 0 0.00815582 0.119202
+5 3 11 0 0.0141525 0.173462
+5 3 12 0 0.0244141 0.238525
+5 3 13 0 0.040802 0.313477
+5 3 14 0 0.0617676 0.397705
+5 3 15 0 0.0846558 0.48877
+5 3 16 0 0.108826 0.584473
+5 3 17 0 0.132446 0.677734
+5 3 18 0 0.154419 0.764648
+5 3 19 0 0.173828 0.841309
+5 3 20 0 0.184692 0.884277
+5 3 21 0 0.186768 0.892578
+5 3 22 0 0.189087 0.901367
+5 3 23 0 0.191284 0.910645
+5 3 24 0 0.193604 0.919922
+5 3 25 0 0.196167 0.929688
+5 3 26 0 0.198975 0.940918
+5 3 27 0 0.202148 0.953125
+5 3 28 0 0.205688 0.967285
+5 3 29 0 0.209473 0.982422
+5 3 30 0 0.213379 0.997559
+5 3 31 0 0.217529 1
+5 4 0 0.0120163 0.00394058 0
+5 4 1 0.0119476 0.00395203 9.55462e-05
+5 4 2 0.0118866 0.00399017 0.000674248
+5 4 3 0.0120163 0.00412369 0.00179768
+5 4 4 0.012886 0.00453568 0.00444031
+5 4 5 0.00839996 0.00355721 0.00675583
+5 4 6 0.00684738 0.00385284 0.013298
+5 4 7 0.00351906 0.0042305 0.0252686
+5 4 8 0 0.00494766 0.0470276
+5 4 9 0 0.00645065 0.0778809
+5 4 10 0 0.00958252 0.119141
+5 4 11 0 0.0156555 0.17334
+5 4 12 0 0.0259705 0.238525
+5 4 13 0 0.0423279 0.313477
+5 4 14 0 0.0629272 0.397705
+5 4 15 0 0.0855103 0.48877
+5 4 16 0 0.109497 0.584473
+5 4 17 0 0.132935 0.677734
+5 4 18 0 0.154785 0.764648
+5 4 19 0 0.174194 0.841309
+5 4 20 0 0.184937 0.884277
+5 4 21 0 0.187012 0.892578
+5 4 22 0 0.189209 0.901855
+5 4 23 0 0.191406 0.910645
+5 4 24 0 0.193726 0.919922
+5 4 25 0 0.196289 0.929688
+5 4 26 0 0.199097 0.940918
+5 4 27 0 0.202148 0.953125
+5 4 28 0 0.205688 0.967285
+5 4 29 0 0.209473 0.982422
+5 4 30 0 0.213501 0.997559
+5 4 31 0 0.217529 1
+5 5 0 0.00975037 0.00737 0
+5 5 1 0.00957489 0.00731659 2.86102e-06
+5 5 2 0.00928497 0.00723267 0.000580311
+5 5 3 0.00878906 0.00709152 0.00159645
+5 5 4 0.00794983 0.0068779 0.00340271
+5 5 5 0.00650787 0.00650787 0.00650787
+5 5 6 0.004879 0.00679016 0.0129852
+5 5 7 0.0015955 0.0071106 0.0249786
+5 5 8 0 0.00772858 0.046814
+5 5 9 0 0.00915527 0.0776978
+5 5 10 0 0.0123367 0.118958
+5 5 11 0 0.0185547 0.173218
+5 5 12 0 0.0289612 0.238403
+5 5 13 0 0.045166 0.313477
+5 5 14 0 0.0650635 0.397705
+5 5 15 0 0.0871582 0.48877
+5 5 16 0 0.110718 0.584473
+5 5 17 0 0.133911 0.677734
+5 5 18 0 0.155518 0.764648
+5 5 19 0 0.174805 0.841309
+5 5 20 0 0.185425 0.884277
+5 5 21 0 0.187378 0.892578
+5 5 22 0 0.189453 0.901855
+5 5 23 0 0.191772 0.910645
+5 5 24 0 0.19397 0.919922
+5 5 25 0 0.196411 0.929688
+5 5 26 0 0.199219 0.940918
+5 5 27 0 0.202393 0.953613
+5 5 28 0 0.205811 0.967285
+5 5 29 0 0.209595 0.982422
+5 5 30 0 0.213501 0.997559
+5 5 31 0 0.217651 1
+5 6 0 0.00492859 0.0130005 0
+5 6 1 0.00490189 0.0130005 0
+5 6 2 0.00471115 0.012886 0
+5 6 3 0.00436783 0.0126801 0.000905991
+5 6 4 0.00376892 0.0123596 0.00267029
+5 6 5 0.00279999 0.0121765 0.00598145
+5 6 6 0.00112247 0.0123672 0.0123749
+5 6 7 0 0.0125961 0.0243835
+5 6 8 0 0.0130386 0.0463562
+5 6 9 0 0.014328 0.0773926
+5 6 10 0 0.0175934 0.118713
+5 6 11 0 0.0240936 0.172974
+5 6 12 0 0.034668 0.238281
+5 6 13 0 0.050293 0.313477
+5 6 14 0 0.0690308 0.397705
+5 6 15 0 0.09021 0.48877
+5 6 16 0 0.113037 0.584473
+5 6 17 0 0.135742 0.677734
+5 6 18 0 0.156982 0.764648
+5 6 19 0 0.175903 0.841309
+5 6 20 0 0.186401 0.884277
+5 6 21 0 0.18811 0.892578
+5 6 22 0 0.190063 0.901855
+5 6 23 0 0.192261 0.910645
+5 6 24 0 0.194336 0.919922
+5 6 25 0 0.196777 0.929688
+5 6 26 0 0.199585 0.940918
+5 6 27 0 0.202637 0.953613
+5 6 28 0 0.206055 0.967285
+5 6 29 0 0.209839 0.982422
+5 6 30 0 0.213745 0.998047
+5 6 31 0 0.217773 1
+5 7 0 0 0.0228882 0
+5 7 1 0 0.0229034 0
+5 7 2 0 0.0229187 0
+5 7 3 0 0.0228577 0
+5 7 4 0 0.0227814 0.00147057
+5 7 5 0 0.0228119 0.00479889
+5 7 6 0 0.0229797 0.0111237
+5 7 7 0 0.0231171 0.0231323
+5 7 8 0 0.0233459 0.0453491
+5 7 9 0 0.0243835 0.0767822
+5 7 10 0 0.0277863 0.118164
+5 7 11 0 0.0348206 0.172607
+5 7 12 0 0.0455017 0.238037
+5 7 13 0 0.0593567 0.313232
+5 7 14 0 0.0762939 0.397461
+5 7 15 0 0.0958862 0.48877
+5 7 16 0 0.117493 0.584473
+5 7 17 0 0.13916 0.677734
+5 7 18 0 0.159668 0.764648
+5 7 19 0 0.178101 0.841309
+5 7 20 0 0.188232 0.884766
+5 7 21 0 0.189575 0.893066
+5 7 22 0 0.191284 0.901855
+5 7 23 0 0.193237 0.910645
+5 7 24 0 0.19519 0.919922
+5 7 25 0 0.19751 0.930176
+5 7 26 0 0.200195 0.940918
+5 7 27 0 0.203125 0.953613
+5 7 28 0 0.206543 0.967285
+5 7 29 0 0.210205 0.982422
+5 7 30 0 0.214111 0.998047
+5 7 31 0 0.218018 1
+5 8 0 0 0.0421753 0
+5 8 1 0 0.0422058 0
+5 8 2 0 0.0422363 0
+5 8 3 0 0.0422974 0
+5 8 4 0 0.0423279 0
+5 8 5 0 0.0424805 0.00255013
+5 8 6 0 0.0427246 0.00871277
+5 8 7 0 0.0429688 0.0206146
+5 8 8 0 0.0431213 0.0431519
+5 8 9 0 0.0438843 0.0755005
+5 8 10 0 0.0472412 0.117188
+5 8 11 0 0.0541382 0.171753
+5 8 12 0 0.0631714 0.237427
+5 8 13 0 0.074646 0.312988
+5 8 14 0 0.0890503 0.397217
+5 8 15 0 0.106262 0.488525
+5 8 16 0 0.125732 0.584473
+5 8 17 0 0.145752 0.677734
+5 8 18 0 0.164917 0.764648
+5 8 19 0 0.182373 0.841309
+5 8 20 0 0.19165 0.884766
+5 8 21 0 0.192261 0.893066
+5 8 22 0 0.193481 0.901855
+5 8 23 0 0.195068 0.911133
+5 8 24 0 0.196899 0.919922
+5 8 25 0 0.198975 0.930176
+5 8 26 0 0.201416 0.941406
+5 8 27 0 0.204224 0.953613
+5 8 28 0 0.207397 0.967285
+5 8 29 0 0.210938 0.982422
+5 8 30 0 0.214722 0.998047
+5 8 31 0 0.218628 1
+5 9 0 0 0.0709229 0
+5 9 1 0 0.0709229 0
+5 9 2 0 0.0709229 0
+5 9 3 0 0.0709839 0
+5 9 4 0 0.0710449 0
+5 9 5 0 0.071106 0
+5 9 6 0 0.0713501 0.00453949
+5 9 7 0 0.0716553 0.0161438
+5 9 8 0 0.0720825 0.0387268
+5 9 9 0 0.072937 0.072998
+5 9 10 0 0.0756836 0.115479
+5 9 11 0 0.0817871 0.17041
+5 9 12 0 0.0893555 0.23645
+5 9 13 0 0.0985107 0.312256
+5 9 14 0 0.109924 0.396973
+5 9 15 0 0.123901 0.488525
+5 9 16 0 0.140259 0.584473
+5 9 17 0 0.157593 0.678223
+5 9 18 0 0.174561 0.764648
+5 9 19 0 0.190308 0.841797
+5 9 20 0 0.19812 0.885254
+5 9 21 0 0.19751 0.893555
+5 9 22 0 0.197754 0.902344
+5 9 23 0 0.19873 0.911133
+5 9 24 0 0.199951 0.92041
+5 9 25 0 0.201538 0.930176
+5 9 26 0 0.203613 0.941406
+5 9 27 0 0.206177 0.953613
+5 9 28 0 0.209106 0.967773
+5 9 29 0 0.212402 0.982422
+5 9 30 0 0.215942 0.998047
+5 9 31 0 0.219727 1
+5 10 0 0 0.108704 0
+5 10 1 0 0.108704 0
+5 10 2 0 0.108704 0
+5 10 3 0 0.108765 0
+5 10 4 0 0.108826 0
+5 10 5 0 0.108887 0
+5 10 6 0 0.108887 0
+5 10 7 0 0.109009 0.00906372
+5 10 8 0 0.109375 0.0316772
+5 10 9 0 0.110352 0.0686646
+5 10 10 0 0.112854 0.112915
+5 10 11 0 0.118225 0.168213
+5 10 12 0 0.124695 0.234741
+5 10 13 0 0.131958 0.311035
+5 10 14 0 0.140503 0.39624
+5 10 15 0 0.150879 0.488037
+5 10 16 0 0.163452 0.584473
+5 10 17 0 0.177002 0.678223
+5 10 18 0 0.190674 0.765137
+5 10 19 0 0.203735 0.841797
+5 10 20 0 0.209473 0.88623
+5 10 21 0 0.206665 0.894531
+5 10 22 0 0.205322 0.902832
+5 10 23 0 0.205078 0.912109
+5 10 24 0 0.205444 0.920898
+5 10 25 0 0.206299 0.930664
+5 10 26 0 0.207764 0.941895
+5 10 27 0 0.209595 0.954102
+5 10 28 0 0.212158 0.968262
+5 10 29 0 0.215088 0.98291
+5 10 30 0 0.218262 0.998535
+5 10 31 0 0.22168 1
+5 11 0 0 0.158813 0
+5 11 1 0 0.158813 0
+5 11 2 0 0.158813 0
+5 11 3 0 0.158813 0
+5 11 4 0 0.158936 0
+5 11 5 0 0.158936 0
+5 11 6 0 0.159058 0
+5 11 7 0 0.158936 0
+5 11 8 0 0.158936 0.0201263
+5 11 9 0 0.159302 0.0614319
+5 11 10 0 0.161133 0.10907
+5 11 11 0 0.165039 0.165039
+5 11 12 0 0.170288 0.231934
+5 11 13 0 0.175903 0.309082
+5 11 14 0 0.182007 0.39502
+5 11 15 0 0.188965 0.487305
+5 11 16 0 0.197388 0.583984
+5 11 17 0 0.206421 0.678223
+5 11 18 0 0.215942 0.765137
+5 11 19 0 0.22522 0.842285
+5 11 20 0 0.227783 0.887695
+5 11 21 0 0.22168 0.895508
+5 11 22 0 0.217896 0.904297
+5 11 23 0 0.215698 0.913086
+5 11 24 0 0.2146 0.921875
+5 11 25 0 0.214355 0.931641
+5 11 26 0 0.214722 0.942383
+5 11 27 0 0.215698 0.95459
+5 11 28 0 0.217407 0.96875
+5 11 29 0 0.219604 0.983398
+5 11 30 0 0.222168 0.998535
+5 11 31 0 0.224976 1
+5 12 0 0 0.220947 0
+5 12 1 0 0.220947 0
+5 12 2 0 0.220947 0
+5 12 3 0 0.220947 0
+5 12 4 0 0.220947 0
+5 12 5 0 0.221069 0
+5 12 6 0 0.221069 0
+5 12 7 0 0.221191 0
+5 12 8 0 0.221191 0
+5 12 9 0 0.221436 0.0450439
+5 12 10 0 0.222046 0.100708
+5 12 11 0 0.223999 0.159546
+5 12 12 0 0.227417 0.227539
+5 12 13 0 0.231689 0.30542
+5 12 14 0 0.235718 0.392578
+5 12 15 0 0.239624 0.48584
+5 12 16 0 0.244019 0.583496
+5 12 17 0 0.248291 0.677734
+5 12 18 0 0.25293 0.765137
+5 12 19 0 0.257568 0.842773
+5 12 20 0 0.256104 0.890625
+5 12 21 0 0.245239 0.897949
+5 12 22 0 0.237793 0.90625
+5 12 23 0 0.23291 0.915039
+5 12 24 0 0.229614 0.92334
+5 12 25 0 0.227417 0.933105
+5 12 26 0 0.226074 0.943848
+5 12 27 0 0.225586 0.956055
+5 12 28 0 0.225952 0.969727
+5 12 29 0 0.227051 0.984375
+5 12 30 0 0.228638 0.999512
+5 12 31 0 0.230713 1
+5 13 0 0 0.292725 0
+5 13 1 0 0.292725 0
+5 13 2 0 0.292725 0
+5 13 3 0 0.292969 0
+5 13 4 0 0.292969 0
+5 13 5 0 0.292969 0
+5 13 6 0 0.292969 0
+5 13 7 0 0.293213 0
+5 13 8 0 0.293213 0
+5 13 9 0 0.293457 0.00782013
+5 13 10 0 0.293945 0.0814209
+5 13 11 0 0.294922 0.148438
+5 13 12 0 0.296631 0.219727
+5 13 13 0 0.299316 0.299561
+5 13 14 0 0.301758 0.387939
+5 13 15 0 0.303223 0.48291
+5 13 16 0 0.303955 0.582031
+5 13 17 0 0.303711 0.677246
+5 13 18 0 0.302979 0.765625
+5 13 19 0 0.30249 0.843262
+5 13 20 0 0.296631 0.894531
+5 13 21 0 0.279541 0.901855
+5 13 22 0 0.267334 0.909668
+5 13 23 0 0.258545 0.917969
+5 13 24 0 0.252441 0.92627
+5 13 25 0 0.247437 0.935547
+5 13 26 0 0.243652 0.946289
+5 13 27 0 0.240967 0.958008
+5 13 28 0 0.239502 0.971191
+5 13 29 0 0.238892 0.98584
+5 13 30 0 0.239014 1
+5 13 31 0 0.239624 1
+5 14 0 0 0.374268 0
+5 14 1 0 0.374268 0
+5 14 2 0 0.374268 0
+5 14 3 0 0.374268 0
+5 14 4 0 0.374268 0
+5 14 5 0 0.374268 0
+5 14 6 0 0.374268 0
+5 14 7 0 0.374512 0
+5 14 8 0 0.374756 0
+5 14 9 0 0.375 0
+5 14 10 0 0.375488 0.0342407
+5 14 11 0 0.376465 0.125977
+5 14 12 0 0.377441 0.205444
+5 14 13 0 0.378906 0.289062
+5 14 14 0 0.379883 0.380127
+5 14 15 0 0.379395 0.477295
+5 14 16 0 0.377197 0.578125
+5 14 17 0 0.372803 0.675781
+5 14 18 0 0.367188 0.765137
+5 14 19 0 0.361572 0.84375
+5 14 20 0 0.351318 0.899902
+5 14 21 0 0.326904 0.907227
+5 14 22 0 0.308594 0.915039
+5 14 23 0 0.294922 0.922852
+5 14 24 0 0.284912 0.930664
+5 14 25 0 0.276367 0.939941
+5 14 26 0 0.269287 0.949707
+5 14 27 0 0.263672 0.960938
+5 14 28 0 0.259521 0.974121
+5 14 29 0 0.256592 0.988281
+5 14 30 0 0.254639 1
+5 14 31 0 0.253174 1
+5 15 0 0 0.463135 0
+5 15 1 0 0.463135 0
+5 15 2 0 0.463135 0
+5 15 3 0 0.463135 0
+5 15 4 0 0.463135 0
+5 15 5 0 0.463135 0
+5 15 6 0 0.463135 0
+5 15 7 0 0.463135 0
+5 15 8 0 0.463379 0
+5 15 9 0 0.463623 0
+5 15 10 0 0.464355 0
+5 15 11 0 0.465332 0.0797119
+5 15 12 0 0.466553 0.179443
+5 15 13 0 0.467773 0.270752
+5 15 14 0 0.468262 0.366455
+5 15 15 0 0.467041 0.467285
+5 15 16 0 0.462891 0.571289
+5 15 17 0 0.455322 0.671875
+5 15 18 0 0.445068 0.763184
+5 15 19 0 0.434082 0.843262
+5 15 20 0 0.420898 0.90625
+5 15 21 0 0.388428 0.915039
+5 15 22 0 0.363037 0.922852
+5 15 23 0 0.34375 0.930664
+5 15 24 0 0.328857 0.937988
+5 15 25 0 0.315918 0.946289
+5 15 26 0 0.304688 0.955566
+5 15 27 0 0.29541 0.966309
+5 15 28 0 0.287842 0.979004
+5 15 29 0 0.281738 0.992188
+5 15 30 0 0.276611 1
+5 15 31 0 0.272949 1
+5 16 0 0 0.557617 0
+5 16 1 0 0.557617 0
+5 16 2 0 0.557617 0
+5 16 3 0 0.557617 0
+5 16 4 0 0.557617 0
+5 16 5 0 0.557617 0
+5 16 6 0 0.557617 0
+5 16 7 0 0.557617 0
+5 16 8 0 0.558105 0
+5 16 9 0 0.558105 0
+5 16 10 0 0.558594 0
+5 16 11 0 0.560059 0
+5 16 12 0 0.561523 0.133179
+5 16 13 0 0.562988 0.241211
+5 16 14 0 0.563965 0.344238
+5 16 15 0 0.562988 0.450195
+5 16 16 0 0.558594 0.558594
+5 16 17 0 0.548828 0.663086
+5 16 18 0 0.535156 0.758301
+5 16 19 0 0.52002 0.84082
+5 16 20 0 0.50293 0.90918
+5 16 21 0 0.4646 0.924805
+5 16 22 0 0.431885 0.93457
+5 16 23 0 0.40625 0.941895
+5 16 24 0 0.385742 0.949219
+5 16 25 0 0.367432 0.956543
+5 16 26 0 0.351318 0.965332
+5 16 27 0 0.337402 0.974609
+5 16 28 0 0.325439 0.986328
+5 16 29 0 0.31543 0.998535
+5 16 30 0 0.306885 1
+5 16 31 0 0.299561 1
+5 17 0 0 0.651855 0
+5 17 1 0 0.651855 0
+5 17 2 0 0.651855 0
+5 17 3 0 0.651855 0
+5 17 4 0 0.651855 0
+5 17 5 0 0.651855 0
+5 17 6 0 0.651855 0
+5 17 7 0 0.652344 0
+5 17 8 0 0.652344 0
+5 17 9 0 0.652344 0
+5 17 10 0 0.652832 0
+5 17 11 0 0.653809 0
+5 17 12 0 0.655762 0.0248566
+5 17 13 0 0.658203 0.195312
+5 17 14 0 0.660156 0.311523
+5 17 15 0 0.660645 0.424072
+5 17 16 0 0.656738 0.537598
+5 17 17 0 0.646973 0.647461
+5 17 18 0 0.632324 0.747559
+5 17 19 0 0.61377 0.834473
+5 17 20 0 0.592773 0.905762
+5 17 21 0 0.552734 0.93457
+5 17 22 0 0.513672 0.94873
+5 17 23 0 0.481445 0.95752
+5 17 24 0 0.454834 0.964844
+5 17 25 0 0.430664 0.97168
+5 17 26 0 0.408936 0.979004
+5 17 27 0 0.389404 0.987305
+5 17 28 0 0.372559 0.99707
+5 17 29 0 0.357666 1
+5 17 30 0 0.344727 1
+5 17 31 0 0.333496 1
+5 18 0 0 0.740723 0
+5 18 1 0 0.740723 0
+5 18 2 0 0.740723 0
+5 18 3 0 0.740723 0
+5 18 4 0 0.740723 0
+5 18 5 0 0.740723 0
+5 18 6 0 0.740723 0
+5 18 7 0 0.741211 0
+5 18 8 0 0.741211 0
+5 18 9 0 0.741211 0
+5 18 10 0 0.741211 0
+5 18 11 0 0.742188 0
+5 18 12 0 0.744141 0
+5 18 13 0 0.74707 0.119873
+5 18 14 0 0.750488 0.266113
+5 18 15 0 0.752441 0.388672
+5 18 16 0 0.750977 0.508301
+5 18 17 0 0.743652 0.623535
+5 18 18 0 0.729492 0.729492
+5 18 19 0 0.709961 0.821777
+5 18 20 0 0.686523 0.897949
+5 18 21 0 0.647949 0.940918
+5 18 22 0 0.60498 0.963379
+5 18 23 0 0.567383 0.976074
+5 18 24 0 0.534668 0.984375
+5 18 25 0 0.504395 0.991211
+5 18 26 0 0.476074 0.997559
+5 18 27 0 0.450439 1
+5 18 28 0 0.427734 1
+5 18 29 0 0.407715 1
+5 18 30 0 0.389893 1
+5 18 31 0 0.374023 1
+5 19 0 0 0.821289 0
+5 19 1 0 0.821289 0
+5 19 2 0 0.821289 0
+5 19 3 0 0.821289 0
+5 19 4 0 0.821289 0
+5 19 5 0 0.821289 0
+5 19 6 0 0.821289 0
+5 19 7 0 0.821289 0
+5 19 8 0 0.821289 0
+5 19 9 0 0.821777 0
+5 19 10 0 0.821777 0
+5 19 11 0 0.821777 0
+5 19 12 0 0.82373 0
+5 19 13 0 0.827148 0
+5 19 14 0 0.831055 0.2052
+5 19 15 0 0.834473 0.344482
+5 19 16 0 0.835449 0.47168
+5 19 17 0 0.831543 0.592773
+5 19 18 0 0.820312 0.70459
+5 19 19 0 0.801758 0.802246
+5 19 20 0 0.77832 0.883301
+5 19 21 0 0.742676 0.94043
+5 19 22 0 0.700684 0.974609
+5 19 23 0 0.65918 0.993652
+5 19 24 0 0.621582 1
+5 19 25 0 0.585449 1
+5 19 26 0 0.550781 1
+5 19 27 0 0.519043 1
+5 19 28 0 0.48999 1
+5 19 29 0 0.463867 1
+5 19 30 0 0.44043 1
+5 19 31 0 0.419678 1
+5 20 0 0 0.891113 0
+5 20 1 0 0.891113 0
+5 20 2 0 0.891113 0
+5 20 3 0 0.891113 0
+5 20 4 0 0.891113 0
+5 20 5 0 0.891113 0
+5 20 6 0 0.891113 0
+5 20 7 0 0.891113 0
+5 20 8 0 0.891602 0
+5 20 9 0 0.891602 0
+5 20 10 0 0.891602 0
+5 20 11 0 0.891602 0
+5 20 12 0 0.892578 0
+5 20 13 0 0.895996 0
+5 20 14 0 0.900879 0.11438
+5 20 15 0 0.905273 0.29248
+5 20 16 0 0.908691 0.429443
+5 20 17 0 0.907715 0.555664
+5 20 18 0 0.899902 0.672363
+5 20 19 0 0.884277 0.775879
+5 20 20 0 0.861816 0.862305
+5 20 21 0 0.831543 0.931152
+5 20 22 0 0.79248 0.978027
+5 20 23 0 0.750977 1
+5 20 24 0 0.710449 1
+5 20 25 0 0.669434 1
+5 20 26 0 0.629395 1
+5 20 27 0 0.591309 1
+5 20 28 0 0.556152 1
+5 20 29 0 0.523926 1
+5 20 30 0 0.494873 1
+5 20 31 0 0.468506 1
+5 21 0 0 0.951172 0
+5 21 1 0 0.951172 0
+5 21 2 0 0.951172 0
+5 21 3 0 0.951172 0
+5 21 4 0 0.951172 0
+5 21 5 0 0.951172 0
+5 21 6 0 0.951172 0
+5 21 7 0 0.951172 0
+5 21 8 0 0.951172 0
+5 21 9 0 0.951172 0
+5 21 10 0 0.951172 0
+5 21 11 0 0.95166 0
+5 21 12 0 0.95166 0
+5 21 13 0 0.95459 0
+5 21 14 0 0.959473 0
+5 21 15 0 0.965332 0.228394
+5 21 16 0 0.970703 0.381348
+5 21 17 0 0.972656 0.513672
+5 21 18 0 0.968262 0.634766
+5 21 19 0 0.956543 0.742676
+5 21 20 0 0.937012 0.834473
+5 21 21 0 0.911133 0.911621
+5 21 22 0 0.877441 0.970215
+5 21 23 0 0.838867 1
+5 21 24 0 0.797852 1
+5 21 25 0 0.754883 1
+5 21 26 0 0.710449 1
+5 21 27 0 0.666992 1
+5 21 28 0 0.625977 1
+5 21 29 0 0.587891 1
+5 21 30 0 0.552734 1
+5 21 31 0 0.520996 1
+5 22 0 0 1 0
+5 22 1 0 1 0
+5 22 2 0 1 0
+5 22 3 0 1 0
+5 22 4 0 1 0
+5 22 5 0 1 0
+5 22 6 0 1 0
+5 22 7 0 1 0
+5 22 8 0 1 0
+5 22 9 0 1 0
+5 22 10 0 1 0
+5 22 11 0 1 0
+5 22 12 0 1 0
+5 22 13 0 1 0
+5 22 14 0 1 0
+5 22 15 0 1 0.142456
+5 22 16 0 1 0.327881
+5 22 17 0 1 0.468018
+5 22 18 0 1 0.593262
+5 22 19 0 1 0.705078
+5 22 20 0 1 0.80127
+5 22 21 0 0.979004 0.883789
+5 22 22 0 0.950195 0.950684
+5 22 23 0 0.916504 1
+5 22 24 0 0.878906 1
+5 22 25 0 0.835938 1
+5 22 26 0 0.789551 1
+5 22 27 0 0.742676 1
+5 22 28 0 0.697266 1
+5 22 29 0 0.653809 1
+5 22 30 0 0.613281 1
+5 22 31 0 0.575684 1
+5 23 0 0 1 0
+5 23 1 0 1 0
+5 23 2 0 1 0
+5 23 3 0 1 0
+5 23 4 0 1 0
+5 23 5 0 1 0
+5 23 6 0 1 0
+5 23 7 0 1 0
+5 23 8 0 1 0
+5 23 9 0 1 0
+5 23 10 0 1 0
+5 23 11 0 1 0
+5 23 12 0 1 0
+5 23 13 0 1 0
+5 23 14 0 1 0
+5 23 15 0 1 0
+5 23 16 0 1 0.270264
+5 23 17 0 1 0.421143
+5 23 18 0 1 0.550293
+5 23 19 0 1 0.665527
+5 23 20 0 1 0.765137
+5 23 21 0 1 0.852051
+5 23 22 0 1 0.923828
+5 23 23 0 0.980469 0.980957
+5 23 24 0 0.947266 1
+5 23 25 0 0.907227 1
+5 23 26 0 0.861816 1
+5 23 27 0 0.813477 1
+5 23 28 0 0.764648 1
+5 23 29 0 0.717285 1
+5 23 30 0 0.671875 1
+5 23 31 0 0.629395 1
+5 24 0 0 1 0
+5 24 1 0 1 0
+5 24 2 0 1 0
+5 24 3 0 1 0
+5 24 4 0 1 0
+5 24 5 0 1 0
+5 24 6 0 1 0
+5 24 7 0 1 0
+5 24 8 0 1 0
+5 24 9 0 1 0
+5 24 10 0 1 0
+5 24 11 0 1 0
+5 24 12 0 1 0
+5 24 13 0 1 0
+5 24 14 0 1 0
+5 24 15 0 1 0
+5 24 16 0 1 0.204346
+5 24 17 0 1 0.373291
+5 24 18 0 1 0.507324
+5 24 19 0 1 0.624512
+5 24 20 0 1 0.727539
+5 24 21 0 1 0.817383
+5 24 22 0 1 0.893555
+5 24 23 0 1 0.955566
+5 24 24 0 1 1
+5 24 25 0 0.96875 1
+5 24 26 0 0.925781 1
+5 24 27 0 0.87793 1
+5 24 28 0 0.828125 1
+5 24 29 0 0.777344 1
+5 24 30 0 0.728516 1
+5 24 31 0 0.682129 1
+5 25 0 0 1 0
+5 25 1 0 1 0
+5 25 2 0 1 0
+5 25 3 0 1 0
+5 25 4 0 1 0
+5 25 5 0 1 0
+5 25 6 0 1 0
+5 25 7 0 1 0
+5 25 8 0 1 0
+5 25 9 0 1 0
+5 25 10 0 1 0
+5 25 11 0 1 0
+5 25 12 0 1 0
+5 25 13 0 1 0
+5 25 14 0 1 0
+5 25 15 0 1 0
+5 25 16 0 1 0.10437
+5 25 17 0 1 0.318359
+5 25 18 0 1 0.459229
+5 25 19 0 1 0.57959
+5 25 20 0 1 0.68457
+5 25 21 0 1 0.777344
+5 25 22 0 1 0.85791
+5 25 23 0 1 0.923828
+5 25 24 0 1 0.977539
+5 25 25 0 1 1
+5 25 26 0 0.986816 1
+5 25 27 0 0.941406 1
+5 25 28 0 0.891602 1
+5 25 29 0 0.839355 1
+5 25 30 0 0.787598 1
+5 25 31 0 0.737793 1
+5 26 0 0 1 0
+5 26 1 0 1 0
+5 26 2 0 1 0
+5 26 3 0 1 0
+5 26 4 0 1 0
+5 26 5 0 1 0
+5 26 6 0 1 0
+5 26 7 0 1 0
+5 26 8 0 1 0
+5 26 9 0 1 0
+5 26 10 0 1 0
+5 26 11 0 1 0
+5 26 12 0 1 0
+5 26 13 0 1 0
+5 26 14 0 1 0
+5 26 15 0 1 0
+5 26 16 0 1 0
+5 26 17 0 1 0.25293
+5 26 18 0 1 0.40625
+5 26 19 0 1 0.529785
+5 26 20 0 1 0.636719
+5 26 21 0 1 0.732422
+5 26 22 0 1 0.815918
+5 26 23 0 1 0.885742
+5 26 24 0 1 0.943848
+5 26 25 0 1 0.99707
+5 26 26 0 1 1
+5 26 27 0 1 1
+5 26 28 0 0.953613 1
+5 26 29 0 0.901855 1
+5 26 30 0 0.848633 1
+5 26 31 0 0.795898 1
+5 27 0 0 1 0
+5 27 1 0 1 0
+5 27 2 0 1 0
+5 27 3 0 1 0
+5 27 4 0 1 0
+5 27 5 0 1 0
+5 27 6 0 1 0
+5 27 7 0 1 0
+5 27 8 0 1 0
+5 27 9 0 1 0
+5 27 10 0 1 0
+5 27 11 0 1 0
+5 27 12 0 1 0
+5 27 13 0 1 0
+5 27 14 0 1 0
+5 27 15 0 1 0
+5 27 16 0 1 0
+5 27 17 0 1 0.166138
+5 27 18 0 1 0.34668
+5 27 19 0 1 0.47583
+5 27 20 0 1 0.584961
+5 27 21 0 1 0.682129
+5 27 22 0 1 0.768066
+5 27 23 0 1 0.841309
+5 27 24 0 1 0.90332
+5 27 25 0 1 0.960938
+5 27 26 0 1 1
+5 27 27 0 1 1
+5 27 28 0 1 1
+5 27 29 0 0.962402 1
+5 27 30 0 0.908691 1
+5 27 31 0 0.854492 1
+5 28 0 0 1 0
+5 28 1 0 1 0
+5 28 2 0 1 0
+5 28 3 0 1 0
+5 28 4 0 1 0
+5 28 5 0 1 0
+5 28 6 0 1 0
+5 28 7 0 1 0
+5 28 8 0 1 0
+5 28 9 0 1 0
+5 28 10 0 1 0
+5 28 11 0 1 0
+5 28 12 0 1 0
+5 28 13 0 1 0
+5 28 14 0 1 0
+5 28 15 0 1 0
+5 28 16 0 1 0
+5 28 17 0 1 0
+5 28 18 0 1 0.278076
+5 28 19 0 1 0.417236
+5 28 20 0 1 0.529297
+5 28 21 0 1 0.62793
+5 28 22 0 1 0.71582
+5 28 23 0 1 0.791016
+5 28 24 0 1 0.855957
+5 28 25 0 1 0.91748
+5 28 26 0 1 0.974121
+5 28 27 0 1 1
+5 28 28 0 1 1
+5 28 29 0 1 1
+5 28 30 0 0.968262 1
+5 28 31 0 0.914062 1
+5 29 0 0 1 0
+5 29 1 0 1 0
+5 29 2 0 1 0
+5 29 3 0 1 0
+5 29 4 0 1 0
+5 29 5 0 1 0
+5 29 6 0 1 0
+5 29 7 0 1 0
+5 29 8 0 1 0
+5 29 9 0 1 0
+5 29 10 0 1 0
+5 29 11 0 1 0
+5 29 12 0 1 0
+5 29 13 0 1 0
+5 29 14 0 1 0
+5 29 15 0 1 0
+5 29 16 0 1 0
+5 29 17 0 1 0
+5 29 18 0 1 0.19104
+5 29 19 0 1 0.352051
+5 29 20 0 1 0.46875
+5 29 21 0 1 0.569336
+5 29 22 0 1 0.658203
+5 29 23 0 1 0.735352
+5 29 24 0 1 0.802734
+5 29 25 0 1 0.867188
+5 29 26 0 1 0.928223
+5 29 27 0 1 0.983398
+5 29 28 0 1 1
+5 29 29 0 1 1
+5 29 30 0 1 1
+5 29 31 0 0.973145 1
+5 30 0 0 1 0
+5 30 1 0 1 0
+5 30 2 0 1 0
+5 30 3 0 1 0
+5 30 4 0 1 0
+5 30 5 0 1 0
+5 30 6 0 1 0
+5 30 7 0 1 0
+5 30 8 0 1 0
+5 30 9 0 1 0
+5 30 10 0 1 0
+5 30 11 0 1 0
+5 30 12 0 1 0
+5 30 13 0 1 0
+5 30 14 0 1 0
+5 30 15 0 1 0
+5 30 16 0 1 0
+5 30 17 0 1 0
+5 30 18 0 1 0.0225677
+5 30 19 0 1 0.277588
+5 30 20 0 1 0.403564
+5 30 21 0 1 0.506836
+5 30 22 0 1 0.59668
+5 30 23 0 1 0.674805
+5 30 24 0 1 0.743652
+5 30 25 0 1 0.810547
+5 30 26 0 1 0.874512
+5 30 27 0 1 0.935059
+5 30 28 0 1 0.989746
+5 30 29 0 1 1
+5 30 30 0 1 1
+5 30 31 0 1 1
+5 31 0 0 1 0
+5 31 1 0 1 0
+5 31 2 0 1 0
+5 31 3 0 1 0
+5 31 4 0 1 0
+5 31 5 0 1 0
+5 31 6 0 1 0
+5 31 7 0 1 0
+5 31 8 0 1 0
+5 31 9 0 1 0
+5 31 10 0 1 0
+5 31 11 0 1 0
+5 31 12 0 1 0
+5 31 13 0 1 0
+5 31 14 0 1 0
+5 31 15 0 1 0
+5 31 16 0 1 0
+5 31 17 0 1 0
+5 31 18 0 1 0
+5 31 19 0 1 0.184082
+5 31 20 0 1 0.331787
+5 31 21 0 1 0.439941
+5 31 22 0 1 0.531738
+5 31 23 0 1 0.610352
+5 31 24 0 1 0.680176
+5 31 25 0 1 0.748535
+5 31 26 0 1 0.81543
+5 31 27 0 1 0.879883
+5 31 28 0 1 0.94043
+5 31 29 0 1 0.995117
+5 31 30 0 1 1
+5 31 31 0 1 1
+6 0 0 0.0435486 0 0
+6 0 1 0.0437012 0 0
+6 0 2 0.0437012 0 0
+6 0 3 0.0428772 0 0.00183201
+6 0 4 0.0401001 0 0.00531769
+6 0 5 0.0278473 0 0.00884247
+6 0 6 0.019989 0.000740528 0.0134583
+6 0 7 0.0164185 0.00118637 0.0254364
+6 0 8 0.00985718 0.00201607 0.0472412
+6 0 9 0 0.00359154 0.0780029
+6 0 10 0 0.00666428 0.119141
+6 0 11 0 0.0125809 0.17334
+6 0 12 0 0.0227966 0.238525
+6 0 13 0 0.0391846 0.313477
+6 0 14 0 0.0605774 0.397705
+6 0 15 0 0.0837402 0.48877
+6 0 16 0 0.108154 0.584473
+6 0 17 0 0.131958 0.677734
+6 0 18 0 0.154053 0.764648
+6 0 19 0 0.173584 0.841309
+6 0 20 0 0.184448 0.884277
+6 0 21 0 0.186646 0.892578
+6 0 22 0 0.188843 0.901855
+6 0 23 0 0.191162 0.910645
+6 0 24 0 0.193481 0.919922
+6 0 25 0 0.196045 0.929688
+6 0 26 0 0.198853 0.940918
+6 0 27 0 0.202026 0.953613
+6 0 28 0 0.205566 0.967285
+6 0 29 0 0.209473 0.982422
+6 0 30 0 0.213379 0.998047
+6 0 31 0 0.217407 1
+6 1 0 0.0426331 0 0
+6 1 1 0.0428467 0 0
+6 1 2 0.0429382 0 0
+6 1 3 0.0423584 0 0.00174332
+6 1 4 0.0397949 0 0.00523376
+6 1 5 0.0279388 7.79033e-05 0.00888824
+6 1 6 0.0198212 0.000987053 0.0134354
+6 1 7 0.0162659 0.0014286 0.0254059
+6 1 8 0.00970459 0.00225067 0.0472107
+6 1 9 0 0.00381851 0.0780029
+6 1 10 0 0.00689697 0.119141
+6 1 11 0 0.012825 0.17334
+6 1 12 0 0.0230408 0.238525
+6 1 13 0 0.0394592 0.313477
+6 1 14 0 0.0607605 0.397705
+6 1 15 0 0.0839233 0.48877
+6 1 16 0 0.108276 0.584473
+6 1 17 0 0.131958 0.677734
+6 1 18 0 0.154053 0.764648
+6 1 19 0 0.173584 0.841309
+6 1 20 0 0.18457 0.884277
+6 1 21 0 0.186646 0.892578
+6 1 22 0 0.188965 0.901855
+6 1 23 0 0.191162 0.910645
+6 1 24 0 0.193481 0.919922
+6 1 25 0 0.196045 0.929688
+6 1 26 0 0.198975 0.940918
+6 1 27 0 0.202026 0.953613
+6 1 28 0 0.205688 0.967285
+6 1 29 0 0.209473 0.982422
+6 1 30 0 0.213379 0.998047
+6 1 31 0 0.217407 1
+6 2 0 0.0409241 0.000423431 0
+6 2 1 0.0411987 0.00043273 0
+6 2 2 0.0414429 0.000402451 0
+6 2 3 0.0412598 0.000294924 0.00159359
+6 2 4 0.039093 0.000180483 0.00507355
+6 2 5 0.0280914 0.000637054 0.00897217
+6 2 6 0.0195312 0.0014267 0.0133896
+6 2 7 0.015976 0.00185871 0.0253754
+6 2 8 0.0094223 0.00266647 0.0471802
+6 2 9 0 0.00422287 0.0780029
+6 2 10 0 0.00730896 0.119141
+6 2 11 0 0.0132599 0.17334
+6 2 12 0 0.0234985 0.238525
+6 2 13 0 0.0398865 0.313477
+6 2 14 0 0.0610962 0.397705
+6 2 15 0 0.0841675 0.48877
+6 2 16 0 0.108459 0.584473
+6 2 17 0 0.132202 0.677734
+6 2 18 0 0.154175 0.764648
+6 2 19 0 0.173706 0.841309
+6 2 20 0 0.18457 0.884277
+6 2 21 0 0.186768 0.892578
+6 2 22 0 0.188965 0.901855
+6 2 23 0 0.191284 0.910645
+6 2 24 0 0.193604 0.919922
+6 2 25 0 0.196167 0.929688
+6 2 26 0 0.198975 0.940918
+6 2 27 0 0.202148 0.953613
+6 2 28 0 0.205688 0.967285
+6 2 29 0 0.209473 0.982422
+6 2 30 0 0.213379 0.998047
+6 2 31 0 0.217529 1
+6 3 0 0.0376282 0.00202751 0
+6 3 1 0.0379028 0.0020504 0
+6 3 2 0.0382996 0.00203705 0
+6 3 3 0.0386353 0.00195503 0.00135231
+6 3 4 0.0373535 0.00178623 0.00475311
+6 3 5 0.0284119 0.00173569 0.00911713
+6 3 6 0.0189972 0.00222969 0.0133057
+6 3 7 0.0154495 0.0026474 0.0252991
+6 3 8 0.00891876 0.00342751 0.0471191
+6 3 9 0 0.00496674 0.0779419
+6 3 10 0 0.00806427 0.11908
+6 3 11 0 0.0140533 0.17334
+6 3 12 0 0.0243073 0.238525
+6 3 13 0 0.0407104 0.313477
+6 3 14 0 0.0617065 0.397705
+6 3 15 0 0.0845947 0.48877
+6 3 16 0 0.108765 0.584473
+6 3 17 0 0.132446 0.677734
+6 3 18 0 0.154419 0.764648
+6 3 19 0 0.173828 0.841309
+6 3 20 0 0.184692 0.884277
+6 3 21 0 0.186768 0.892578
+6 3 22 0 0.189087 0.901855
+6 3 23 0 0.191284 0.910645
+6 3 24 0 0.193604 0.919922
+6 3 25 0 0.196167 0.929688
+6 3 26 0 0.198975 0.940918
+6 3 27 0 0.202148 0.953613
+6 3 28 0 0.205688 0.967285
+6 3 29 0 0.209473 0.982422
+6 3 30 0 0.213379 0.998047
+6 3 31 0 0.217529 1
+6 4 0 0.0316162 0.00445938 0
+6 4 1 0.0317993 0.00450134 0
+6 4 2 0.0321045 0.00452805 0
+6 4 3 0.0327454 0.00457001 0.0010643
+6 4 4 0.0335388 0.00458527 0.00415421
+6 4 5 0.0287628 0.0041008 0.00930786
+6 4 6 0.0179749 0.00374794 0.0131531
+6 4 7 0.0144577 0.00413513 0.0251465
+6 4 8 0.00795746 0.00486755 0.0469971
+6 4 9 0 0.00636673 0.0778198
+6 4 10 0 0.00949097 0.119019
+6 4 11 0 0.0155563 0.173218
+6 4 12 0 0.0258636 0.238403
+6 4 13 0 0.0422363 0.313477
+6 4 14 0 0.0628662 0.397705
+6 4 15 0 0.0854492 0.48877
+6 4 16 0 0.109436 0.584473
+6 4 17 0 0.132935 0.678223
+6 4 18 0 0.154785 0.764648
+6 4 19 0 0.174194 0.841309
+6 4 20 0 0.184937 0.884277
+6 4 21 0 0.187012 0.892578
+6 4 22 0 0.189209 0.901855
+6 4 23 0 0.191406 0.910645
+6 4 24 0 0.193726 0.919922
+6 4 25 0 0.196289 0.929688
+6 4 26 0 0.199097 0.940918
+6 4 27 0 0.202148 0.953613
+6 4 28 0 0.205688 0.967285
+6 4 29 0 0.209473 0.982422
+6 4 30 0 0.213501 0.998047
+6 4 31 0 0.217529 1
+6 5 0 0.0235748 0.00756073 0
+6 5 1 0.0235443 0.0075798 0
+6 5 2 0.0234375 0.00760269 0
+6 5 3 0.0233154 0.00767136 0.00107193
+6 5 4 0.0234528 0.00788879 0.0032444
+6 5 5 0.0247955 0.00854492 0.00836182
+6 5 6 0.0160065 0.00667572 0.0128403
+6 5 7 0.0125351 0.00701141 0.0248566
+6 5 8 0.00610733 0.00765228 0.0467834
+6 5 9 0 0.00907135 0.0776978
+6 5 10 0 0.0122375 0.118835
+6 5 11 0 0.0184479 0.173096
+6 5 12 0 0.0288544 0.238403
+6 5 13 0 0.0450745 0.313477
+6 5 14 0 0.0650024 0.397705
+6 5 15 0 0.0870972 0.48877
+6 5 16 0 0.110718 0.584473
+6 5 17 0 0.133911 0.678223
+6 5 18 0 0.155518 0.764648
+6 5 19 0 0.174805 0.841309
+6 5 20 0 0.185425 0.884277
+6 5 21 0 0.187378 0.892578
+6 5 22 0 0.189575 0.901855
+6 5 23 0 0.191772 0.910645
+6 5 24 0 0.19397 0.919922
+6 5 25 0 0.196411 0.929688
+6 5 26 0 0.199219 0.940918
+6 5 27 0 0.202393 0.953613
+6 5 28 0 0.205811 0.967285
+6 5 29 0 0.209595 0.982422
+6 5 30 0 0.213501 0.998047
+6 5 31 0 0.217651 1
+6 6 0 0.0188446 0.0142136 0
+6 6 1 0.0188446 0.0142365 0
+6 6 2 0.018631 0.0141907 0
+6 6 3 0.0181122 0.0140457 0.000897884
+6 6 4 0.0171356 0.0137787 0.00288963
+6 6 5 0.015358 0.0132599 0.00645447
+6 6 6 0.0122223 0.0122223 0.0122223
+6 6 7 0.0088501 0.0124817 0.0242462
+6 6 8 0.00255966 0.0129623 0.0462952
+6 6 9 0 0.0142441 0.0773315
+6 6 10 0 0.0174866 0.118591
+6 6 11 0 0.0239716 0.172852
+6 6 12 0 0.0345764 0.238281
+6 6 13 0 0.0502014 0.313477
+6 6 14 0 0.0689697 0.397705
+6 6 15 0 0.0901489 0.48877
+6 6 16 0 0.113037 0.584473
+6 6 17 0 0.135742 0.678223
+6 6 18 0 0.156982 0.764648
+6 6 19 0 0.175903 0.841309
+6 6 20 0 0.186401 0.884766
+6 6 21 0 0.18811 0.893066
+6 6 22 0 0.190186 0.901855
+6 6 23 0 0.192261 0.910645
+6 6 24 0 0.194336 0.919922
+6 6 25 0 0.196777 0.930176
+6 6 26 0 0.199585 0.940918
+6 6 27 0 0.202637 0.953613
+6 6 28 0 0.206055 0.967285
+6 6 29 0 0.209839 0.982422
+6 6 30 0 0.213745 0.998047
+6 6 31 0 0.217773 1
+6 7 0 0.00885773 0.0244446 0
+6 7 1 0.00885773 0.0244598 0
+6 7 2 0.00886536 0.0244904 0
+6 7 3 0.00853729 0.024292 0
+6 7 4 0.00790405 0.0239105 0.00144958
+6 7 5 0.00675964 0.0232544 0.00481415
+6 7 6 0.00492096 0.0228119 0.0109863
+6 7 7 0.00171185 0.022995 0.0230103
+6 7 8 0 0.0232697 0.0452881
+6 7 9 0 0.0243073 0.0767212
+6 7 10 0 0.0276794 0.118042
+6 7 11 0 0.034729 0.172485
+6 7 12 0 0.0454102 0.237915
+6 7 13 0 0.0592957 0.313232
+6 7 14 0 0.0762329 0.397461
+6 7 15 0 0.0958862 0.48877
+6 7 16 0 0.117493 0.584473
+6 7 17 0 0.13916 0.678223
+6 7 18 0 0.159668 0.764648
+6 7 19 0 0.178101 0.841309
+6 7 20 0 0.188232 0.884766
+6 7 21 0 0.189575 0.893066
+6 7 22 0 0.191284 0.901855
+6 7 23 0 0.193237 0.911133
+6 7 24 0 0.19519 0.919922
+6 7 25 0 0.19751 0.930176
+6 7 26 0 0.200195 0.940918
+6 7 27 0 0.203125 0.953613
+6 7 28 0 0.206543 0.967285
+6 7 29 0 0.210205 0.982422
+6 7 30 0 0.214111 0.998047
+6 7 31 0 0.218018 1
+6 8 0 0 0.0426331 0
+6 8 1 0 0.0426636 0
+6 8 2 0 0.0426941 0
+6 8 3 0 0.0427551 0
+6 8 4 0 0.0426331 0
+6 8 5 0 0.0425415 0.0024662
+6 8 6 0 0.0426025 0.00861359
+6 8 7 0 0.0428467 0.0205078
+6 8 8 0 0.0430298 0.0430603
+6 8 9 0 0.0438232 0.0754395
+6 8 10 0 0.0471497 0.117065
+6 8 11 0 0.0540466 0.171753
+6 8 12 0 0.0631104 0.237427
+6 8 13 0 0.074585 0.312988
+6 8 14 0 0.0889893 0.397217
+6 8 15 0 0.106201 0.488525
+6 8 16 0 0.125732 0.584473
+6 8 17 0 0.145752 0.678223
+6 8 18 0 0.164917 0.764648
+6 8 19 0 0.182373 0.841797
+6 8 20 0 0.19165 0.884766
+6 8 21 0 0.192383 0.893066
+6 8 22 0 0.193604 0.901855
+6 8 23 0 0.195068 0.911133
+6 8 24 0 0.196899 0.919922
+6 8 25 0 0.198975 0.930176
+6 8 26 0 0.201416 0.941406
+6 8 27 0 0.204224 0.953613
+6 8 28 0 0.207397 0.967773
+6 8 29 0 0.210938 0.982422
+6 8 30 0 0.214722 0.998047
+6 8 31 0 0.218628 1
+6 9 0 0 0.0709839 0
+6 9 1 0 0.0709839 0
+6 9 2 0 0.0709839 0
+6 9 3 0 0.0710449 0
+6 9 4 0 0.071106 0
+6 9 5 0 0.071167 0
+6 9 6 0 0.0712891 0.00445175
+6 9 7 0 0.0715942 0.0160522
+6 9 8 0 0.0720215 0.0386353
+6 9 9 0 0.072876 0.072937
+6 9 10 0 0.0756226 0.115417
+6 9 11 0 0.0817261 0.170288
+6 9 12 0 0.0892944 0.23645
+6 9 13 0 0.0984497 0.312256
+6 9 14 0 0.109863 0.396973
+6 9 15 0 0.12384 0.488525
+6 9 16 0 0.140259 0.584473
+6 9 17 0 0.157593 0.678223
+6 9 18 0 0.174561 0.764648
+6 9 19 0 0.190308 0.841797
+6 9 20 0 0.19812 0.885254
+6 9 21 0 0.19751 0.893555
+6 9 22 0 0.197754 0.902344
+6 9 23 0 0.19873 0.911621
+6 9 24 0 0.199951 0.92041
+6 9 25 0 0.201538 0.930664
+6 9 26 0 0.203613 0.941406
+6 9 27 0 0.206177 0.953613
+6 9 28 0 0.209106 0.967773
+6 9 29 0 0.212402 0.982422
+6 9 30 0 0.215942 0.998047
+6 9 31 0 0.219727 1
+6 10 0 0 0.108643 0
+6 10 1 0 0.108643 0
+6 10 2 0 0.108643 0
+6 10 3 0 0.108704 0
+6 10 4 0 0.108765 0
+6 10 5 0 0.108826 0
+6 10 6 0 0.108826 0
+6 10 7 0 0.108948 0.00897217
+6 10 8 0 0.109314 0.0315857
+6 10 9 0 0.110291 0.0686035
+6 10 10 0 0.112793 0.112854
+6 10 11 0 0.118164 0.168213
+6 10 12 0 0.124695 0.234741
+6 10 13 0 0.131958 0.311035
+6 10 14 0 0.140503 0.39624
+6 10 15 0 0.150879 0.488037
+6 10 16 0 0.163452 0.584473
+6 10 17 0 0.177002 0.678223
+6 10 18 0 0.190674 0.765137
+6 10 19 0 0.203735 0.841797
+6 10 20 0 0.209473 0.88623
+6 10 21 0 0.206665 0.894531
+6 10 22 0 0.205322 0.90332
+6 10 23 0 0.205078 0.912109
+6 10 24 0 0.205444 0.920898
+6 10 25 0 0.206299 0.930664
+6 10 26 0 0.207764 0.941895
+6 10 27 0 0.209595 0.954102
+6 10 28 0 0.212158 0.968262
+6 10 29 0 0.215088 0.98291
+6 10 30 0 0.218262 0.998535
+6 10 31 0 0.22168 1
+6 11 0 0 0.158691 0
+6 11 1 0 0.158691 0
+6 11 2 0 0.158813 0
+6 11 3 0 0.158813 0
+6 11 4 0 0.158813 0
+6 11 5 0 0.158936 0
+6 11 6 0 0.158936 0
+6 11 7 0 0.158813 0
+6 11 8 0 0.158813 0.0200195
+6 11 9 0 0.159302 0.0613708
+6 11 10 0 0.161133 0.109009
+6 11 11 0 0.164917 0.165039
+6 11 12 0 0.170166 0.231934
+6 11 13 0 0.175903 0.309082
+6 11 14 0 0.182007 0.39502
+6 11 15 0 0.188965 0.487305
+6 11 16 0 0.197388 0.583984
+6 11 17 0 0.206421 0.678223
+6 11 18 0 0.215942 0.765137
+6 11 19 0 0.22522 0.842285
+6 11 20 0 0.227783 0.887695
+6 11 21 0 0.22168 0.895996
+6 11 22 0 0.217896 0.904297
+6 11 23 0 0.215698 0.913086
+6 11 24 0 0.214722 0.921875
+6 11 25 0 0.214355 0.931641
+6 11 26 0 0.214722 0.942871
+6 11 27 0 0.215698 0.955078
+6 11 28 0 0.217407 0.96875
+6 11 29 0 0.219604 0.983398
+6 11 30 0 0.222168 0.999023
+6 11 31 0 0.224976 1
+6 12 0 0 0.220825 0
+6 12 1 0 0.220825 0
+6 12 2 0 0.220825 0
+6 12 3 0 0.220825 0
+6 12 4 0 0.220947 0
+6 12 5 0 0.220947 0
+6 12 6 0 0.221069 0
+6 12 7 0 0.221191 0
+6 12 8 0 0.221191 0
+6 12 9 0 0.221313 0.0449219
+6 12 10 0 0.222046 0.100647
+6 12 11 0 0.223877 0.159546
+6 12 12 0 0.227417 0.227417
+6 12 13 0 0.231689 0.30542
+6 12 14 0 0.235718 0.392578
+6 12 15 0 0.239624 0.48584
+6 12 16 0 0.244019 0.583496
+6 12 17 0 0.248291 0.678223
+6 12 18 0 0.25293 0.765625
+6 12 19 0 0.257568 0.842773
+6 12 20 0 0.256104 0.890625
+6 12 21 0 0.245239 0.897949
+6 12 22 0 0.237793 0.90625
+6 12 23 0 0.23291 0.915039
+6 12 24 0 0.229614 0.92334
+6 12 25 0 0.227417 0.933105
+6 12 26 0 0.226074 0.943848
+6 12 27 0 0.225586 0.956055
+6 12 28 0 0.225952 0.969727
+6 12 29 0 0.227051 0.984375
+6 12 30 0 0.228638 0.999512
+6 12 31 0 0.230713 1
+6 13 0 0 0.292725 0
+6 13 1 0 0.292725 0
+6 13 2 0 0.292725 0
+6 13 3 0 0.292725 0
+6 13 4 0 0.292969 0
+6 13 5 0 0.292969 0
+6 13 6 0 0.292969 0
+6 13 7 0 0.293213 0
+6 13 8 0 0.293213 0
+6 13 9 0 0.293457 0.00772095
+6 13 10 0 0.293945 0.0813599
+6 13 11 0 0.294922 0.148438
+6 13 12 0 0.296631 0.219727
+6 13 13 0 0.299316 0.299316
+6 13 14 0 0.301758 0.387939
+6 13 15 0 0.303223 0.48291
+6 13 16 0 0.303955 0.582031
+6 13 17 0 0.303711 0.677246
+6 13 18 0 0.302979 0.765625
+6 13 19 0 0.30249 0.843262
+6 13 20 0 0.296631 0.894531
+6 13 21 0 0.279541 0.901855
+6 13 22 0 0.267334 0.909668
+6 13 23 0 0.258545 0.917969
+6 13 24 0 0.252441 0.92627
+6 13 25 0 0.247437 0.935547
+6 13 26 0 0.243652 0.946289
+6 13 27 0 0.240967 0.958008
+6 13 28 0 0.239502 0.971191
+6 13 29 0 0.238892 0.98584
+6 13 30 0 0.239014 1
+6 13 31 0 0.239624 1
+6 14 0 0 0.374268 0
+6 14 1 0 0.374268 0
+6 14 2 0 0.374268 0
+6 14 3 0 0.374268 0
+6 14 4 0 0.374268 0
+6 14 5 0 0.374268 0
+6 14 6 0 0.374268 0
+6 14 7 0 0.374512 0
+6 14 8 0 0.374756 0
+6 14 9 0 0.375 0
+6 14 10 0 0.375488 0.0341187
+6 14 11 0 0.376465 0.125854
+6 14 12 0 0.377441 0.205444
+6 14 13 0 0.378906 0.288818
+6 14 14 0 0.379883 0.379883
+6 14 15 0 0.379395 0.477295
+6 14 16 0 0.377441 0.578613
+6 14 17 0 0.372803 0.675781
+6 14 18 0 0.367188 0.765137
+6 14 19 0 0.361572 0.84375
+6 14 20 0 0.351562 0.899902
+6 14 21 0 0.326904 0.907227
+6 14 22 0 0.308594 0.915039
+6 14 23 0 0.295166 0.922852
+6 14 24 0 0.284912 0.930664
+6 14 25 0 0.276367 0.939941
+6 14 26 0 0.269287 0.949707
+6 14 27 0 0.263672 0.961426
+6 14 28 0 0.259521 0.974121
+6 14 29 0 0.256592 0.988281
+6 14 30 0 0.254639 1
+6 14 31 0 0.253174 1
+6 15 0 0 0.463135 0
+6 15 1 0 0.463135 0
+6 15 2 0 0.463135 0
+6 15 3 0 0.463135 0
+6 15 4 0 0.463135 0
+6 15 5 0 0.463135 0
+6 15 6 0 0.463135 0
+6 15 7 0 0.463135 0
+6 15 8 0 0.463379 0
+6 15 9 0 0.463623 0
+6 15 10 0 0.464355 0
+6 15 11 0 0.465332 0.0796509
+6 15 12 0 0.466553 0.179443
+6 15 13 0 0.467773 0.270752
+6 15 14 0 0.468262 0.366455
+6 15 15 0 0.467041 0.467285
+6 15 16 0 0.462891 0.571289
+6 15 17 0 0.455322 0.671875
+6 15 18 0 0.445068 0.763184
+6 15 19 0 0.434082 0.843262
+6 15 20 0 0.420898 0.90625
+6 15 21 0 0.388428 0.915039
+6 15 22 0 0.363037 0.92334
+6 15 23 0 0.34375 0.930664
+6 15 24 0 0.328857 0.937988
+6 15 25 0 0.315918 0.946289
+6 15 26 0 0.304688 0.956055
+6 15 27 0 0.29541 0.966309
+6 15 28 0 0.287842 0.979004
+6 15 29 0 0.281738 0.992188
+6 15 30 0 0.276855 1
+6 15 31 0 0.272949 1
+6 16 0 0 0.557617 0
+6 16 1 0 0.557617 0
+6 16 2 0 0.557617 0
+6 16 3 0 0.557617 0
+6 16 4 0 0.557617 0
+6 16 5 0 0.557617 0
+6 16 6 0 0.557617 0
+6 16 7 0 0.557617 0
+6 16 8 0 0.558105 0
+6 16 9 0 0.558105 0
+6 16 10 0 0.558594 0
+6 16 11 0 0.560059 0
+6 16 12 0 0.561523 0.133179
+6 16 13 0 0.562988 0.241211
+6 16 14 0 0.563965 0.344238
+6 16 15 0 0.562988 0.450195
+6 16 16 0 0.558594 0.558594
+6 16 17 0 0.548828 0.663086
+6 16 18 0 0.535156 0.758301
+6 16 19 0 0.52002 0.84082
+6 16 20 0 0.503418 0.90918
+6 16 21 0 0.4646 0.925293
+6 16 22 0 0.431885 0.93457
+6 16 23 0 0.40625 0.941895
+6 16 24 0 0.385742 0.949219
+6 16 25 0 0.367432 0.956543
+6 16 26 0 0.351318 0.965332
+6 16 27 0 0.337402 0.974609
+6 16 28 0 0.325439 0.986328
+6 16 29 0 0.31543 0.998535
+6 16 30 0 0.306885 1
+6 16 31 0 0.299561 1
+6 17 0 0 0.651855 0
+6 17 1 0 0.651855 0
+6 17 2 0 0.651855 0
+6 17 3 0 0.651855 0
+6 17 4 0 0.651855 0
+6 17 5 0 0.651855 0
+6 17 6 0 0.652344 0
+6 17 7 0 0.652344 0
+6 17 8 0 0.652344 0
+6 17 9 0 0.652344 0
+6 17 10 0 0.652832 0
+6 17 11 0 0.653809 0
+6 17 12 0 0.655762 0.024765
+6 17 13 0 0.658203 0.195312
+6 17 14 0 0.660156 0.311523
+6 17 15 0 0.660645 0.424072
+6 17 16 0 0.656738 0.537598
+6 17 17 0 0.646973 0.647461
+6 17 18 0 0.632324 0.747559
+6 17 19 0 0.61377 0.834473
+6 17 20 0 0.592773 0.905762
+6 17 21 0 0.552734 0.935059
+6 17 22 0 0.513672 0.94873
+6 17 23 0 0.481445 0.95752
+6 17 24 0 0.454834 0.964844
+6 17 25 0 0.430664 0.97168
+6 17 26 0 0.408936 0.979004
+6 17 27 0 0.389404 0.987305
+6 17 28 0 0.372559 0.99707
+6 17 29 0 0.357666 1
+6 17 30 0 0.344727 1
+6 17 31 0 0.333496 1
+6 18 0 0 0.740723 0
+6 18 1 0 0.740723 0
+6 18 2 0 0.740723 0
+6 18 3 0 0.740723 0
+6 18 4 0 0.740723 0
+6 18 5 0 0.741211 0
+6 18 6 0 0.741211 0
+6 18 7 0 0.741211 0
+6 18 8 0 0.741211 0
+6 18 9 0 0.741211 0
+6 18 10 0 0.741211 0
+6 18 11 0 0.742188 0
+6 18 12 0 0.744141 0
+6 18 13 0 0.74707 0.119812
+6 18 14 0 0.750488 0.266113
+6 18 15 0 0.752441 0.388672
+6 18 16 0 0.750977 0.508301
+6 18 17 0 0.743652 0.623535
+6 18 18 0 0.729492 0.729492
+6 18 19 0 0.709961 0.821777
+6 18 20 0 0.686523 0.897949
+6 18 21 0 0.647949 0.940918
+6 18 22 0 0.60498 0.963379
+6 18 23 0 0.567383 0.976074
+6 18 24 0 0.534668 0.984375
+6 18 25 0 0.504395 0.991211
+6 18 26 0 0.476074 0.997559
+6 18 27 0 0.450439 1
+6 18 28 0 0.427734 1
+6 18 29 0 0.407715 1
+6 18 30 0 0.389893 1
+6 18 31 0 0.374023 1
+6 19 0 0 0.821289 0
+6 19 1 0 0.821289 0
+6 19 2 0 0.821289 0
+6 19 3 0 0.821289 0
+6 19 4 0 0.821289 0
+6 19 5 0 0.821289 0
+6 19 6 0 0.821289 0
+6 19 7 0 0.821289 0
+6 19 8 0 0.821289 0
+6 19 9 0 0.821777 0
+6 19 10 0 0.821777 0
+6 19 11 0 0.821777 0
+6 19 12 0 0.82373 0
+6 19 13 0 0.827148 0
+6 19 14 0 0.831055 0.2052
+6 19 15 0 0.834473 0.344482
+6 19 16 0 0.835938 0.47168
+6 19 17 0 0.831543 0.592773
+6 19 18 0 0.820312 0.70459
+6 19 19 0 0.801758 0.802246
+6 19 20 0 0.77832 0.883301
+6 19 21 0 0.742676 0.94043
+6 19 22 0 0.700684 0.974609
+6 19 23 0 0.65918 0.993652
+6 19 24 0 0.621582 1
+6 19 25 0 0.585449 1
+6 19 26 0 0.550781 1
+6 19 27 0 0.519043 1
+6 19 28 0 0.48999 1
+6 19 29 0 0.463867 1
+6 19 30 0 0.44043 1
+6 19 31 0 0.419678 1
+6 20 0 0 0.891113 0
+6 20 1 0 0.891113 0
+6 20 2 0 0.891113 0
+6 20 3 0 0.891113 0
+6 20 4 0 0.891113 0
+6 20 5 0 0.891113 0
+6 20 6 0 0.891113 0
+6 20 7 0 0.891602 0
+6 20 8 0 0.891602 0
+6 20 9 0 0.891602 0
+6 20 10 0 0.891602 0
+6 20 11 0 0.891602 0
+6 20 12 0 0.892578 0
+6 20 13 0 0.895996 0
+6 20 14 0 0.900879 0.11438
+6 20 15 0 0.905273 0.29248
+6 20 16 0 0.908691 0.429443
+6 20 17 0 0.907715 0.555664
+6 20 18 0 0.899902 0.672363
+6 20 19 0 0.884277 0.775879
+6 20 20 0 0.861816 0.862305
+6 20 21 0 0.831543 0.931152
+6 20 22 0 0.79248 0.978027
+6 20 23 0 0.750977 1
+6 20 24 0 0.710449 1
+6 20 25 0 0.669434 1
+6 20 26 0 0.629395 1
+6 20 27 0 0.591309 1
+6 20 28 0 0.556152 1
+6 20 29 0 0.523926 1
+6 20 30 0 0.494873 1
+6 20 31 0 0.468506 1
+6 21 0 0 0.951172 0
+6 21 1 0 0.951172 0
+6 21 2 0 0.951172 0
+6 21 3 0 0.951172 0
+6 21 4 0 0.951172 0
+6 21 5 0 0.951172 0
+6 21 6 0 0.951172 0
+6 21 7 0 0.951172 0
+6 21 8 0 0.951172 0
+6 21 9 0 0.951172 0
+6 21 10 0 0.951172 0
+6 21 11 0 0.95166 0
+6 21 12 0 0.95166 0
+6 21 13 0 0.95459 0
+6 21 14 0 0.959473 0
+6 21 15 0 0.965332 0.228394
+6 21 16 0 0.970703 0.381348
+6 21 17 0 0.972656 0.513672
+6 21 18 0 0.968262 0.634766
+6 21 19 0 0.956543 0.742676
+6 21 20 0 0.937012 0.834473
+6 21 21 0 0.911133 0.911621
+6 21 22 0 0.877441 0.970215
+6 21 23 0 0.838867 1
+6 21 24 0 0.797852 1
+6 21 25 0 0.754883 1
+6 21 26 0 0.710449 1
+6 21 27 0 0.666992 1
+6 21 28 0 0.625977 1
+6 21 29 0 0.587891 1
+6 21 30 0 0.552734 1
+6 21 31 0 0.520996 1
+6 22 0 0 1 0
+6 22 1 0 1 0
+6 22 2 0 1 0
+6 22 3 0 1 0
+6 22 4 0 1 0
+6 22 5 0 1 0
+6 22 6 0 1 0
+6 22 7 0 1 0
+6 22 8 0 1 0
+6 22 9 0 1 0
+6 22 10 0 1 0
+6 22 11 0 1 0
+6 22 12 0 1 0
+6 22 13 0 1 0
+6 22 14 0 1 0
+6 22 15 0 1 0.142456
+6 22 16 0 1 0.327881
+6 22 17 0 1 0.468018
+6 22 18 0 1 0.593262
+6 22 19 0 1 0.705078
+6 22 20 0 1 0.80127
+6 22 21 0 0.979004 0.883789
+6 22 22 0 0.950195 0.950684
+6 22 23 0 0.916504 1
+6 22 24 0 0.878906 1
+6 22 25 0 0.835938 1
+6 22 26 0 0.789551 1
+6 22 27 0 0.742676 1
+6 22 28 0 0.697266 1
+6 22 29 0 0.653809 1
+6 22 30 0 0.613281 1
+6 22 31 0 0.575684 1
+6 23 0 0 1 0
+6 23 1 0 1 0
+6 23 2 0 1 0
+6 23 3 0 1 0
+6 23 4 0 1 0
+6 23 5 0 1 0
+6 23 6 0 1 0
+6 23 7 0 1 0
+6 23 8 0 1 0
+6 23 9 0 1 0
+6 23 10 0 1 0
+6 23 11 0 1 0
+6 23 12 0 1 0
+6 23 13 0 1 0
+6 23 14 0 1 0
+6 23 15 0 1 0
+6 23 16 0 1 0.270264
+6 23 17 0 1 0.421143
+6 23 18 0 1 0.550293
+6 23 19 0 1 0.665527
+6 23 20 0 1 0.765137
+6 23 21 0 1 0.852051
+6 23 22 0 1 0.923828
+6 23 23 0 0.980469 0.980957
+6 23 24 0 0.947266 1
+6 23 25 0 0.907227 1
+6 23 26 0 0.861816 1
+6 23 27 0 0.813477 1
+6 23 28 0 0.764648 1
+6 23 29 0 0.717285 1
+6 23 30 0 0.671875 1
+6 23 31 0 0.629395 1
+6 24 0 0 1 0
+6 24 1 0 1 0
+6 24 2 0 1 0
+6 24 3 0 1 0
+6 24 4 0 1 0
+6 24 5 0 1 0
+6 24 6 0 1 0
+6 24 7 0 1 0
+6 24 8 0 1 0
+6 24 9 0 1 0
+6 24 10 0 1 0
+6 24 11 0 1 0
+6 24 12 0 1 0
+6 24 13 0 1 0
+6 24 14 0 1 0
+6 24 15 0 1 0
+6 24 16 0 1 0.204346
+6 24 17 0 1 0.373291
+6 24 18 0 1 0.507324
+6 24 19 0 1 0.624512
+6 24 20 0 1 0.727539
+6 24 21 0 1 0.817383
+6 24 22 0 1 0.893555
+6 24 23 0 1 0.955566
+6 24 24 0 1 1
+6 24 25 0 0.96875 1
+6 24 26 0 0.925781 1
+6 24 27 0 0.87793 1
+6 24 28 0 0.828125 1
+6 24 29 0 0.777344 1
+6 24 30 0 0.728516 1
+6 24 31 0 0.682129 1
+6 25 0 0 1 0
+6 25 1 0 1 0
+6 25 2 0 1 0
+6 25 3 0 1 0
+6 25 4 0 1 0
+6 25 5 0 1 0
+6 25 6 0 1 0
+6 25 7 0 1 0
+6 25 8 0 1 0
+6 25 9 0 1 0
+6 25 10 0 1 0
+6 25 11 0 1 0
+6 25 12 0 1 0
+6 25 13 0 1 0
+6 25 14 0 1 0
+6 25 15 0 1 0
+6 25 16 0 1 0.10437
+6 25 17 0 1 0.318359
+6 25 18 0 1 0.459229
+6 25 19 0 1 0.57959
+6 25 20 0 1 0.68457
+6 25 21 0 1 0.777344
+6 25 22 0 1 0.85791
+6 25 23 0 1 0.923828
+6 25 24 0 1 0.978027
+6 25 25 0 1 1
+6 25 26 0 0.986816 1
+6 25 27 0 0.941406 1
+6 25 28 0 0.891602 1
+6 25 29 0 0.839355 1
+6 25 30 0 0.787598 1
+6 25 31 0 0.737793 1
+6 26 0 0 1 0
+6 26 1 0 1 0
+6 26 2 0 1 0
+6 26 3 0 1 0
+6 26 4 0 1 0
+6 26 5 0 1 0
+6 26 6 0 1 0
+6 26 7 0 1 0
+6 26 8 0 1 0
+6 26 9 0 1 0
+6 26 10 0 1 0
+6 26 11 0 1 0
+6 26 12 0 1 0
+6 26 13 0 1 0
+6 26 14 0 1 0
+6 26 15 0 1 0
+6 26 16 0 1 0
+6 26 17 0 1 0.25293
+6 26 18 0 1 0.40625
+6 26 19 0 1 0.529785
+6 26 20 0 1 0.636719
+6 26 21 0 1 0.732422
+6 26 22 0 1 0.815918
+6 26 23 0 1 0.885742
+6 26 24 0 1 0.943848
+6 26 25 0 1 0.99707
+6 26 26 0 1 1
+6 26 27 0 1 1
+6 26 28 0 0.953613 1
+6 26 29 0 0.901855 1
+6 26 30 0 0.848633 1
+6 26 31 0 0.795898 1
+6 27 0 0 1 0
+6 27 1 0 1 0
+6 27 2 0 1 0
+6 27 3 0 1 0
+6 27 4 0 1 0
+6 27 5 0 1 0
+6 27 6 0 1 0
+6 27 7 0 1 0
+6 27 8 0 1 0
+6 27 9 0 1 0
+6 27 10 0 1 0
+6 27 11 0 1 0
+6 27 12 0 1 0
+6 27 13 0 1 0
+6 27 14 0 1 0
+6 27 15 0 1 0
+6 27 16 0 1 0
+6 27 17 0 1 0.166138
+6 27 18 0 1 0.34668
+6 27 19 0 1 0.47583
+6 27 20 0 1 0.584961
+6 27 21 0 1 0.682129
+6 27 22 0 1 0.768555
+6 27 23 0 1 0.841309
+6 27 24 0 1 0.90332
+6 27 25 0 1 0.960938
+6 27 26 0 1 1
+6 27 27 0 1 1
+6 27 28 0 1 1
+6 27 29 0 0.962402 1
+6 27 30 0 0.908691 1
+6 27 31 0 0.854492 1
+6 28 0 0 1 0
+6 28 1 0 1 0
+6 28 2 0 1 0
+6 28 3 0 1 0
+6 28 4 0 1 0
+6 28 5 0 1 0
+6 28 6 0 1 0
+6 28 7 0 1 0
+6 28 8 0 1 0
+6 28 9 0 1 0
+6 28 10 0 1 0
+6 28 11 0 1 0
+6 28 12 0 1 0
+6 28 13 0 1 0
+6 28 14 0 1 0
+6 28 15 0 1 0
+6 28 16 0 1 0
+6 28 17 0 1 0
+6 28 18 0 1 0.278076
+6 28 19 0 1 0.417236
+6 28 20 0 1 0.529297
+6 28 21 0 1 0.62793
+6 28 22 0 1 0.71582
+6 28 23 0 1 0.791016
+6 28 24 0 1 0.855957
+6 28 25 0 1 0.91748
+6 28 26 0 1 0.974121
+6 28 27 0 1 1
+6 28 28 0 1 1
+6 28 29 0 1 1
+6 28 30 0 0.968262 1
+6 28 31 0 0.914062 1
+6 29 0 0 1 0
+6 29 1 0 1 0
+6 29 2 0 1 0
+6 29 3 0 1 0
+6 29 4 0 1 0
+6 29 5 0 1 0
+6 29 6 0 1 0
+6 29 7 0 1 0
+6 29 8 0 1 0
+6 29 9 0 1 0
+6 29 10 0 1 0
+6 29 11 0 1 0
+6 29 12 0 1 0
+6 29 13 0 1 0
+6 29 14 0 1 0
+6 29 15 0 1 0
+6 29 16 0 1 0
+6 29 17 0 1 0
+6 29 18 0 1 0.19104
+6 29 19 0 1 0.352051
+6 29 20 0 1 0.46875
+6 29 21 0 1 0.569336
+6 29 22 0 1 0.658203
+6 29 23 0 1 0.735352
+6 29 24 0 1 0.802734
+6 29 25 0 1 0.867188
+6 29 26 0 1 0.928223
+6 29 27 0 1 0.983398
+6 29 28 0 1 1
+6 29 29 0 1 1
+6 29 30 0 1 1
+6 29 31 0 0.973145 1
+6 30 0 0 1 0
+6 30 1 0 1 0
+6 30 2 0 1 0
+6 30 3 0 1 0
+6 30 4 0 1 0
+6 30 5 0 1 0
+6 30 6 0 1 0
+6 30 7 0 1 0
+6 30 8 0 1 0
+6 30 9 0 1 0
+6 30 10 0 1 0
+6 30 11 0 1 0
+6 30 12 0 1 0
+6 30 13 0 1 0
+6 30 14 0 1 0
+6 30 15 0 1 0
+6 30 16 0 1 0
+6 30 17 0 1 0
+6 30 18 0 1 0.0225372
+6 30 19 0 1 0.277588
+6 30 20 0 1 0.403564
+6 30 21 0 1 0.506836
+6 30 22 0 1 0.59668
+6 30 23 0 1 0.674805
+6 30 24 0 1 0.743652
+6 30 25 0 1 0.810547
+6 30 26 0 1 0.874512
+6 30 27 0 1 0.935059
+6 30 28 0 1 0.989746
+6 30 29 0 1 1
+6 30 30 0 1 1
+6 30 31 0 1 1
+6 31 0 0 1 0
+6 31 1 0 1 0
+6 31 2 0 1 0
+6 31 3 0 1 0
+6 31 4 0 1 0
+6 31 5 0 1 0
+6 31 6 0 1 0
+6 31 7 0 1 0
+6 31 8 0 1 0
+6 31 9 0 1 0
+6 31 10 0 1 0
+6 31 11 0 1 0
+6 31 12 0 1 0
+6 31 13 0 1 0
+6 31 14 0 1 0
+6 31 15 0 1 0
+6 31 16 0 1 0
+6 31 17 0 1 0
+6 31 18 0 1 0
+6 31 19 0 1 0.184082
+6 31 20 0 1 0.331787
+6 31 21 0 1 0.439941
+6 31 22 0 1 0.531738
+6 31 23 0 1 0.610352
+6 31 24 0 1 0.680176
+6 31 25 0 1 0.748535
+6 31 26 0 1 0.81543
+6 31 27 0 1 0.879883
+6 31 28 0 1 0.94043
+6 31 29 0 1 0.995117
+6 31 30 0 1 1
+6 31 31 0 1 1
+7 0 0 0.0736084 0 0
+7 0 1 0.0736084 0 0
+7 0 2 0.0737305 0 0
+7 0 3 0.0737915 0 0
+7 0 4 0.0726929 0 0.00302696
+7 0 5 0.0690918 0 0.00966644
+7 0 6 0.0515442 0 0.0163727
+7 0 7 0.0374146 0.00100613 0.0250549
+7 0 8 0.0303955 0.00184822 0.0470581
+7 0 9 0.0184326 0.00342941 0.0779419
+7 0 10 0 0.0064888 0.118958
+7 0 11 0 0.0123901 0.173218
+7 0 12 0 0.0225983 0.238403
+7 0 13 0 0.0390015 0.313477
+7 0 14 0 0.0604553 0.397705
+7 0 15 0 0.0836792 0.48877
+7 0 16 0 0.108093 0.584473
+7 0 17 0 0.131836 0.678223
+7 0 18 0 0.153931 0.764648
+7 0 19 0 0.173584 0.841309
+7 0 20 0 0.18457 0.884766
+7 0 21 0 0.186646 0.893066
+7 0 22 0 0.188965 0.901855
+7 0 23 0 0.191162 0.910645
+7 0 24 0 0.193481 0.919922
+7 0 25 0 0.196045 0.930176
+7 0 26 0 0.198975 0.940918
+7 0 27 0 0.202026 0.953613
+7 0 28 0 0.205688 0.967285
+7 0 29 0 0.209473 0.982422
+7 0 30 0 0.213379 0.998047
+7 0 31 0 0.217529 1
+7 1 0 0.0730591 0 0
+7 1 1 0.072998 0 0
+7 1 2 0.0731812 0 0
+7 1 3 0.0733032 0 0
+7 1 4 0.0723877 0 0.00294113
+7 1 5 0.0689087 0 0.00959015
+7 1 6 0.0516357 0 0.0164185
+7 1 7 0.0372314 0.0012455 0.0250244
+7 1 8 0.0302429 0.00208282 0.0470276
+7 1 9 0.01828 0.00365639 0.0778809
+7 1 10 0 0.00671768 0.118958
+7 1 11 0 0.0126343 0.173218
+7 1 12 0 0.0228577 0.238403
+7 1 13 0 0.0392761 0.313477
+7 1 14 0 0.0606384 0.397705
+7 1 15 0 0.0838013 0.48877
+7 1 16 0 0.108215 0.584473
+7 1 17 0 0.131958 0.678223
+7 1 18 0 0.154053 0.764648
+7 1 19 0 0.173584 0.841309
+7 1 20 0 0.18457 0.884766
+7 1 21 0 0.186646 0.893066
+7 1 22 0 0.188965 0.901855
+7 1 23 0 0.191284 0.910645
+7 1 24 0 0.193604 0.919922
+7 1 25 0 0.196167 0.930176
+7 1 26 0 0.198975 0.940918
+7 1 27 0 0.202148 0.953613
+7 1 28 0 0.205688 0.967285
+7 1 29 0 0.209473 0.982422
+7 1 30 0 0.213379 0.998047
+7 1 31 0 0.217529 1
+7 2 0 0.0719604 0 0
+7 2 1 0.0719604 0 0
+7 2 2 0.0721436 0 0
+7 2 3 0.0723877 0 0
+7 2 4 0.0717163 0 0.00278854
+7 2 5 0.0684814 0 0.00945282
+7 2 6 0.0517578 0 0.0164948
+7 2 7 0.0369568 0.00167274 0.0249939
+7 2 8 0.0299683 0.00249863 0.0469971
+7 2 9 0.0180054 0.00406265 0.0778809
+7 2 10 0 0.00712967 0.118958
+7 2 11 0 0.0130615 0.173096
+7 2 12 0 0.0233002 0.238403
+7 2 13 0 0.0397339 0.313477
+7 2 14 0 0.0609741 0.397705
+7 2 15 0 0.0840454 0.48877
+7 2 16 0 0.108398 0.584473
+7 2 17 0 0.13208 0.678223
+7 2 18 0 0.154175 0.764648
+7 2 19 0 0.173706 0.841309
+7 2 20 0 0.184692 0.884766
+7 2 21 0 0.186768 0.893066
+7 2 22 0 0.188965 0.901855
+7 2 23 0 0.191284 0.910645
+7 2 24 0 0.193604 0.919922
+7 2 25 0 0.196167 0.930176
+7 2 26 0 0.198975 0.940918
+7 2 27 0 0.202148 0.953613
+7 2 28 0 0.205688 0.967285
+7 2 29 0 0.209473 0.982422
+7 2 30 0 0.213379 0.998047
+7 2 31 0 0.217529 1
+7 3 0 0.0699463 0.000300884 0
+7 3 1 0.0698853 0.000341892 0
+7 3 2 0.0701294 0.00037384 0
+7 3 3 0.0704956 0.000350475 0
+7 3 4 0.0703125 0.000146985 0.00252533
+7 3 5 0.067627 0 0.0091629
+7 3 6 0.0520325 0.000862598 0.0166321
+7 3 7 0.036438 0.00245476 0.0249176
+7 3 8 0.0294647 0.00325775 0.046936
+7 3 9 0.0175171 0.0048027 0.0778198
+7 3 10 0 0.00788116 0.118896
+7 3 11 0 0.013855 0.173096
+7 3 12 0 0.0241241 0.238403
+7 3 13 0 0.0405273 0.313477
+7 3 14 0 0.0615845 0.397705
+7 3 15 0 0.0845337 0.48877
+7 3 16 0 0.108704 0.584473
+7 3 17 0 0.132324 0.678223
+7 3 18 0 0.154297 0.764648
+7 3 19 0 0.173828 0.841309
+7 3 20 0 0.184814 0.884766
+7 3 21 0 0.18689 0.893066
+7 3 22 0 0.189087 0.901855
+7 3 23 0 0.191406 0.910645
+7 3 24 0 0.193604 0.919922
+7 3 25 0 0.196167 0.930176
+7 3 26 0 0.198975 0.940918
+7 3 27 0 0.202148 0.953613
+7 3 28 0 0.205688 0.967285
+7 3 29 0 0.209473 0.982422
+7 3 30 0 0.213379 0.998047
+7 3 31 0 0.217529 1
+7 4 0 0.0657349 0.00331879 0
+7 4 1 0.0657349 0.00335503 0
+7 4 2 0.065918 0.0034008 0
+7 4 3 0.0665283 0.00340462 0
+7 4 4 0.0670166 0.00324631 0.00209236
+7 4 5 0.0653687 0.0029335 0.00857544
+7 4 6 0.0525208 0.00290298 0.0168915
+7 4 7 0.0354614 0.00393295 0.024765
+7 4 8 0.0285034 0.00469589 0.046814
+7 4 9 0.016571 0.00620651 0.0777588
+7 4 10 0 0.00930786 0.118835
+7 4 11 0 0.015358 0.173096
+7 4 12 0 0.0256805 0.238403
+7 4 13 0 0.0420532 0.313477
+7 4 14 0 0.0627441 0.397705
+7 4 15 0 0.0853882 0.48877
+7 4 16 0 0.109375 0.584473
+7 4 17 0 0.132935 0.678223
+7 4 18 0 0.154785 0.764648
+7 4 19 0 0.174194 0.841309
+7 4 20 0 0.185059 0.884766
+7 4 21 0 0.187012 0.893066
+7 4 22 0 0.189209 0.901855
+7 4 23 0 0.191528 0.911133
+7 4 24 0 0.193726 0.919922
+7 4 25 0 0.196289 0.930176
+7 4 26 0 0.199097 0.940918
+7 4 27 0 0.202271 0.953613
+7 4 28 0 0.205811 0.967285
+7 4 29 0 0.209595 0.982422
+7 4 30 0 0.213501 0.998047
+7 4 31 0 0.217529 1
+7 5 0 0.057312 0.00803375 0
+7 5 1 0.0572815 0.00805664 0
+7 5 2 0.057373 0.00811768 0
+7 5 3 0.0579224 0.00818634 0
+7 5 4 0.0588379 0.00826263 0.00159073
+7 5 5 0.0600281 0.00827789 0.00744629
+7 5 6 0.0530396 0.0073967 0.0172119
+7 5 7 0.0335388 0.00678253 0.0244598
+7 5 8 0.0266571 0.00747681 0.0465698
+7 5 9 0.0147629 0.00891113 0.0775757
+7 5 10 0 0.0120544 0.118652
+7 5 11 0 0.0182495 0.172974
+7 5 12 0 0.0286713 0.238281
+7 5 13 0 0.0448914 0.313477
+7 5 14 0 0.0648804 0.397705
+7 5 15 0 0.0870361 0.48877
+7 5 16 0 0.110657 0.584473
+7 5 17 0 0.133789 0.678223
+7 5 18 0 0.155518 0.764648
+7 5 19 0 0.174805 0.841309
+7 5 20 0 0.185547 0.884766
+7 5 21 0 0.187378 0.893066
+7 5 22 0 0.189575 0.901855
+7 5 23 0 0.191772 0.911133
+7 5 24 0 0.19397 0.919922
+7 5 25 0 0.196533 0.930176
+7 5 26 0 0.199219 0.941406
+7 5 27 0 0.202393 0.953613
+7 5 28 0 0.205933 0.967285
+7 5 29 0 0.209595 0.982422
+7 5 30 0 0.213623 0.998047
+7 5 31 0 0.217651 1
+7 6 0 0.0443726 0.0139771 0
+7 6 1 0.0443726 0.0139923 0
+7 6 2 0.044342 0.0140305 0
+7 6 3 0.0441895 0.0140762 0
+7 6 4 0.0439758 0.0141983 0.00169754
+7 6 5 0.0441895 0.0145874 0.00582123
+7 6 6 0.0464172 0.0157471 0.0153809
+7 6 7 0.0298615 0.012207 0.0238647
+7 6 8 0.0231171 0.0127792 0.0460815
+7 6 9 0.0113144 0.0140839 0.0772705
+7 6 10 0 0.0172882 0.118408
+7 6 11 0 0.0237732 0.172729
+7 6 12 0 0.0343933 0.238159
+7 6 13 0 0.0500488 0.313477
+7 6 14 0 0.0688477 0.397705
+7 6 15 0 0.0900879 0.48877
+7 6 16 0 0.112976 0.584473
+7 6 17 0 0.13562 0.678223
+7 6 18 0 0.156982 0.764648
+7 6 19 0 0.175903 0.841309
+7 6 20 0 0.186401 0.884766
+7 6 21 0 0.18811 0.893066
+7 6 22 0 0.190186 0.901855
+7 6 23 0 0.192261 0.911133
+7 6 24 0 0.194458 0.919922
+7 6 25 0 0.196899 0.930176
+7 6 26 0 0.199585 0.941406
+7 6 27 0 0.202637 0.953613
+7 6 28 0 0.206177 0.967773
+7 6 29 0 0.209839 0.982422
+7 6 30 0 0.213745 0.998047
+7 6 31 0 0.217773 1
+7 7 0 0.0354309 0.0267029 0
+7 7 1 0.0354309 0.0267334 0
+7 7 2 0.0354614 0.0267639 0
+7 7 3 0.0351868 0.0267334 0
+7 7 4 0.0342102 0.026474 0.00139904
+7 7 5 0.0323181 0.0259247 0.00519562
+7 7 6 0.0288849 0.0248718 0.0118713
+7 7 7 0.0226593 0.0226593 0.0226593
+7 7 8 0.0161896 0.023056 0.0450439
+7 7 9 0.0045929 0.0241394 0.0765991
+7 7 10 0 0.0274658 0.117859
+7 7 11 0 0.0344849 0.172363
+7 7 12 0 0.0452271 0.237915
+7 7 13 0 0.0591431 0.313232
+7 7 14 0 0.0761108 0.397461
+7 7 15 0 0.0957642 0.48877
+7 7 16 0 0.117432 0.584473
+7 7 17 0 0.13916 0.678223
+7 7 18 0 0.159668 0.764648
+7 7 19 0 0.178101 0.841797
+7 7 20 0 0.188232 0.884766
+7 7 21 0 0.189575 0.893066
+7 7 22 0 0.191284 0.901855
+7 7 23 0 0.193237 0.911133
+7 7 24 0 0.195312 0.919922
+7 7 25 0 0.19751 0.930176
+7 7 26 0 0.200195 0.941406
+7 7 27 0 0.203125 0.953613
+7 7 28 0 0.206543 0.967773
+7 7 29 0 0.210205 0.982422
+7 7 30 0 0.214111 0.998047
+7 7 31 0 0.218018 1
+7 8 0 0.016037 0.0454407 0
+7 8 1 0.016037 0.0454407 0
+7 8 2 0.016037 0.0454712 0
+7 8 3 0.0160522 0.0455322 0
+7 8 4 0.0155411 0.0452576 0
+7 8 5 0.0143585 0.0445862 0.0024147
+7 8 6 0.0122375 0.043396 0.00863647
+7 8 7 0.00876617 0.042511 0.0202332
+7 8 8 0.00270462 0.0428162 0.0428162
+7 8 9 0 0.0436707 0.0753174
+7 8 10 0 0.046936 0.116943
+7 8 11 0 0.053833 0.171509
+7 8 12 0 0.0629272 0.237305
+7 8 13 0 0.0745239 0.312988
+7 8 14 0 0.0889282 0.397461
+7 8 15 0 0.10614 0.48877
+7 8 16 0 0.125732 0.584473
+7 8 17 0 0.145752 0.678223
+7 8 18 0 0.164917 0.764648
+7 8 19 0 0.182373 0.841797
+7 8 20 0 0.191772 0.885254
+7 8 21 0 0.192383 0.893555
+7 8 22 0 0.193604 0.902344
+7 8 23 0 0.195068 0.911133
+7 8 24 0 0.196899 0.92041
+7 8 25 0 0.198975 0.930176
+7 8 26 0 0.201416 0.941406
+7 8 27 0 0.204224 0.953613
+7 8 28 0 0.20752 0.967773
+7 8 29 0 0.210938 0.982422
+7 8 30 0 0.214722 0.998047
+7 8 31 0 0.218628 1
+7 9 0 0 0.0715942 0
+7 9 1 0 0.0715942 0
+7 9 2 0 0.0716553 0
+7 9 3 0 0.0716553 0
+7 9 4 0 0.0717773 0
+7 9 5 0 0.0715942 0
+7 9 6 0 0.0714111 0.00429535
+7 9 7 0 0.0714722 0.0158691
+7 9 8 0 0.0718994 0.0384521
+7 9 9 0 0.0727539 0.0728149
+7 9 10 0 0.0755005 0.115295
+7 9 11 0 0.081543 0.170166
+7 9 12 0 0.0891724 0.236328
+7 9 13 0 0.0983887 0.312256
+7 9 14 0 0.109802 0.396973
+7 9 15 0 0.123779 0.488525
+7 9 16 0 0.140259 0.584473
+7 9 17 0 0.157471 0.678223
+7 9 18 0 0.174561 0.765137
+7 9 19 0 0.190186 0.841797
+7 9 20 0 0.198242 0.885742
+7 9 21 0 0.19751 0.894043
+7 9 22 0 0.197876 0.902832
+7 9 23 0 0.19873 0.911621
+7 9 24 0 0.199951 0.92041
+7 9 25 0 0.20166 0.930664
+7 9 26 0 0.203613 0.941406
+7 9 27 0 0.206177 0.954102
+7 9 28 0 0.209106 0.967773
+7 9 29 0 0.212402 0.98291
+7 9 30 0 0.215942 0.998047
+7 9 31 0 0.219727 1
+7 10 0 0 0.108704 0
+7 10 1 0 0.108704 0
+7 10 2 0 0.108704 0
+7 10 3 0 0.108765 0
+7 10 4 0 0.108765 0
+7 10 5 0 0.108887 0
+7 10 6 0 0.108826 0
+7 10 7 0 0.108887 0.00879669
+7 10 8 0 0.109253 0.0314331
+7 10 9 0 0.110229 0.0684814
+7 10 10 0 0.112671 0.112732
+7 10 11 0 0.118042 0.168091
+7 10 12 0 0.124573 0.234619
+7 10 13 0 0.131836 0.311035
+7 10 14 0 0.140381 0.39624
+7 10 15 0 0.150757 0.488037
+7 10 16 0 0.16333 0.584473
+7 10 17 0 0.17688 0.678223
+7 10 18 0 0.190674 0.765137
+7 10 19 0 0.203735 0.841797
+7 10 20 0 0.209473 0.886719
+7 10 21 0 0.206665 0.894531
+7 10 22 0 0.205322 0.90332
+7 10 23 0 0.205078 0.912109
+7 10 24 0 0.205444 0.920898
+7 10 25 0 0.206299 0.931152
+7 10 26 0 0.207764 0.941895
+7 10 27 0 0.209717 0.954102
+7 10 28 0 0.212158 0.968262
+7 10 29 0 0.215088 0.98291
+7 10 30 0 0.218262 0.998535
+7 10 31 0 0.22168 1
+7 11 0 0 0.158569 0
+7 11 1 0 0.158569 0
+7 11 2 0 0.158569 0
+7 11 3 0 0.158691 0
+7 11 4 0 0.158691 0
+7 11 5 0 0.158813 0
+7 11 6 0 0.158813 0
+7 11 7 0 0.158691 0
+7 11 8 0 0.158691 0.0198364
+7 11 9 0 0.15918 0.0611877
+7 11 10 0 0.161011 0.108887
+7 11 11 0 0.164917 0.164917
+7 11 12 0 0.170166 0.231934
+7 11 13 0 0.175903 0.309082
+7 11 14 0 0.182007 0.39502
+7 11 15 0 0.188965 0.487305
+7 11 16 0 0.197388 0.583984
+7 11 17 0 0.206421 0.678223
+7 11 18 0 0.215942 0.765137
+7 11 19 0 0.22522 0.842285
+7 11 20 0 0.227905 0.888184
+7 11 21 0 0.22168 0.895996
+7 11 22 0 0.217896 0.904297
+7 11 23 0 0.21582 0.913086
+7 11 24 0 0.214722 0.921875
+7 11 25 0 0.214355 0.931641
+7 11 26 0 0.214722 0.942871
+7 11 27 0 0.215698 0.955078
+7 11 28 0 0.217407 0.96875
+7 11 29 0 0.219604 0.983398
+7 11 30 0 0.222168 0.999023
+7 11 31 0 0.224976 1
+7 12 0 0 0.220703 0
+7 12 1 0 0.220825 0
+7 12 2 0 0.220825 0
+7 12 3 0 0.220825 0
+7 12 4 0 0.220825 0
+7 12 5 0 0.220825 0
+7 12 6 0 0.220947 0
+7 12 7 0 0.221069 0
+7 12 8 0 0.221069 0
+7 12 9 0 0.221313 0.0447388
+7 12 10 0 0.221924 0.100525
+7 12 11 0 0.223877 0.159424
+7 12 12 0 0.227295 0.227417
+7 12 13 0 0.231567 0.30542
+7 12 14 0 0.235718 0.392578
+7 12 15 0 0.239624 0.48584
+7 12 16 0 0.244019 0.583496
+7 12 17 0 0.248291 0.678223
+7 12 18 0 0.25293 0.765625
+7 12 19 0 0.257568 0.842773
+7 12 20 0 0.256348 0.890625
+7 12 21 0 0.245239 0.898438
+7 12 22 0 0.237793 0.906738
+7 12 23 0 0.23291 0.915039
+7 12 24 0 0.229736 0.923828
+7 12 25 0 0.227417 0.933105
+7 12 26 0 0.226074 0.944336
+7 12 27 0 0.225586 0.956055
+7 12 28 0 0.226074 0.969727
+7 12 29 0 0.227051 0.984375
+7 12 30 0 0.228638 0.999512
+7 12 31 0 0.230713 1
+7 13 0 0 0.292725 0
+7 13 1 0 0.292725 0
+7 13 2 0 0.292725 0
+7 13 3 0 0.292725 0
+7 13 4 0 0.292725 0
+7 13 5 0 0.292725 0
+7 13 6 0 0.292969 0
+7 13 7 0 0.292969 0
+7 13 8 0 0.293213 0
+7 13 9 0 0.293457 0.00753021
+7 13 10 0 0.293945 0.0812378
+7 13 11 0 0.294922 0.148315
+7 13 12 0 0.296631 0.219727
+7 13 13 0 0.299316 0.299316
+7 13 14 0 0.301758 0.387939
+7 13 15 0 0.303223 0.48291
+7 13 16 0 0.303955 0.582031
+7 13 17 0 0.303711 0.677734
+7 13 18 0 0.302979 0.765625
+7 13 19 0 0.30249 0.843262
+7 13 20 0 0.296875 0.894531
+7 13 21 0 0.279785 0.901855
+7 13 22 0 0.267334 0.909668
+7 13 23 0 0.258545 0.917969
+7 13 24 0 0.252441 0.92627
+7 13 25 0 0.247437 0.936035
+7 13 26 0 0.243652 0.946289
+7 13 27 0 0.241089 0.958008
+7 13 28 0 0.239502 0.97168
+7 13 29 0 0.238892 0.98584
+7 13 30 0 0.239014 1
+7 13 31 0 0.239624 1
+7 14 0 0 0.374268 0
+7 14 1 0 0.374268 0
+7 14 2 0 0.374268 0
+7 14 3 0 0.374268 0
+7 14 4 0 0.374268 0
+7 14 5 0 0.374268 0
+7 14 6 0 0.374268 0
+7 14 7 0 0.374512 0
+7 14 8 0 0.374756 0
+7 14 9 0 0.375 0
+7 14 10 0 0.375488 0.0339355
+7 14 11 0 0.376221 0.125854
+7 14 12 0 0.377441 0.205322
+7 14 13 0 0.378906 0.288818
+7 14 14 0 0.379883 0.379883
+7 14 15 0 0.379395 0.477295
+7 14 16 0 0.377441 0.578613
+7 14 17 0 0.372803 0.675781
+7 14 18 0 0.367188 0.765137
+7 14 19 0 0.361572 0.84375
+7 14 20 0 0.351562 0.899902
+7 14 21 0 0.326904 0.907715
+7 14 22 0 0.308594 0.915039
+7 14 23 0 0.295166 0.922852
+7 14 24 0 0.284912 0.931152
+7 14 25 0 0.276367 0.939941
+7 14 26 0 0.269287 0.950195
+7 14 27 0 0.263672 0.961426
+7 14 28 0 0.259766 0.974121
+7 14 29 0 0.256592 0.988281
+7 14 30 0 0.254639 1
+7 14 31 0 0.253418 1
+7 15 0 0 0.463135 0
+7 15 1 0 0.463135 0
+7 15 2 0 0.463135 0
+7 15 3 0 0.463135 0
+7 15 4 0 0.463135 0
+7 15 5 0 0.463135 0
+7 15 6 0 0.463135 0
+7 15 7 0 0.463135 0
+7 15 8 0 0.463379 0
+7 15 9 0 0.463623 0
+7 15 10 0 0.464355 0
+7 15 11 0 0.465332 0.0795288
+7 15 12 0 0.466553 0.179443
+7 15 13 0 0.467773 0.270752
+7 15 14 0 0.468262 0.366455
+7 15 15 0 0.467041 0.467285
+7 15 16 0 0.462891 0.571289
+7 15 17 0 0.455322 0.671875
+7 15 18 0 0.445068 0.763184
+7 15 19 0 0.434082 0.843262
+7 15 20 0 0.420898 0.90625
+7 15 21 0 0.388428 0.915527
+7 15 22 0 0.363037 0.92334
+7 15 23 0 0.34375 0.930664
+7 15 24 0 0.328857 0.937988
+7 15 25 0 0.315918 0.946289
+7 15 26 0 0.304932 0.956055
+7 15 27 0 0.29541 0.966309
+7 15 28 0 0.287842 0.979004
+7 15 29 0 0.281738 0.992188
+7 15 30 0 0.276855 1
+7 15 31 0 0.272949 1
+7 16 0 0 0.557617 0
+7 16 1 0 0.557617 0
+7 16 2 0 0.557617 0
+7 16 3 0 0.557617 0
+7 16 4 0 0.557617 0
+7 16 5 0 0.557617 0
+7 16 6 0 0.557617 0
+7 16 7 0 0.557617 0
+7 16 8 0 0.558105 0
+7 16 9 0 0.558105 0
+7 16 10 0 0.558594 0
+7 16 11 0 0.560059 0
+7 16 12 0 0.561523 0.133057
+7 16 13 0 0.562988 0.241211
+7 16 14 0 0.563965 0.344238
+7 16 15 0 0.562988 0.450195
+7 16 16 0 0.558594 0.558594
+7 16 17 0 0.548828 0.663086
+7 16 18 0 0.535156 0.758301
+7 16 19 0 0.52002 0.84082
+7 16 20 0 0.503418 0.90918
+7 16 21 0 0.4646 0.925293
+7 16 22 0 0.431885 0.93457
+7 16 23 0 0.40625 0.942383
+7 16 24 0 0.385742 0.949219
+7 16 25 0 0.367432 0.957031
+7 16 26 0 0.351318 0.965332
+7 16 27 0 0.337402 0.975098
+7 16 28 0 0.325439 0.986328
+7 16 29 0 0.31543 0.998535
+7 16 30 0 0.306885 1
+7 16 31 0 0.299561 1
+7 17 0 0 0.652344 0
+7 17 1 0 0.652344 0
+7 17 2 0 0.652344 0
+7 17 3 0 0.652344 0
+7 17 4 0 0.652344 0
+7 17 5 0 0.652344 0
+7 17 6 0 0.652344 0
+7 17 7 0 0.652344 0
+7 17 8 0 0.652344 0
+7 17 9 0 0.652344 0
+7 17 10 0 0.652832 0
+7 17 11 0 0.653809 0
+7 17 12 0 0.655762 0.0245972
+7 17 13 0 0.658203 0.19519
+7 17 14 0 0.660156 0.311523
+7 17 15 0 0.660645 0.424072
+7 17 16 0 0.656738 0.538086
+7 17 17 0 0.646973 0.647461
+7 17 18 0 0.632324 0.747559
+7 17 19 0 0.61377 0.834473
+7 17 20 0 0.593262 0.905762
+7 17 21 0 0.552734 0.935059
+7 17 22 0 0.513672 0.94873
+7 17 23 0 0.481445 0.958008
+7 17 24 0 0.454834 0.964844
+7 17 25 0 0.430664 0.97168
+7 17 26 0 0.408936 0.979004
+7 17 27 0 0.389404 0.987305
+7 17 28 0 0.372559 0.99707
+7 17 29 0 0.357666 1
+7 17 30 0 0.344727 1
+7 17 31 0 0.33374 1
+7 18 0 0 0.741211 0
+7 18 1 0 0.741211 0
+7 18 2 0 0.741211 0
+7 18 3 0 0.741211 0
+7 18 4 0 0.741211 0
+7 18 5 0 0.741211 0
+7 18 6 0 0.741211 0
+7 18 7 0 0.741211 0
+7 18 8 0 0.741211 0
+7 18 9 0 0.741211 0
+7 18 10 0 0.741699 0
+7 18 11 0 0.742188 0
+7 18 12 0 0.744141 0
+7 18 13 0 0.74707 0.119751
+7 18 14 0 0.750488 0.266113
+7 18 15 0 0.752441 0.388672
+7 18 16 0 0.750977 0.508301
+7 18 17 0 0.743652 0.624023
+7 18 18 0 0.729492 0.72998
+7 18 19 0 0.709961 0.821777
+7 18 20 0 0.686523 0.897949
+7 18 21 0 0.647949 0.940918
+7 18 22 0 0.60498 0.963379
+7 18 23 0 0.567383 0.976074
+7 18 24 0 0.534668 0.984375
+7 18 25 0 0.504395 0.991211
+7 18 26 0 0.476074 0.997559
+7 18 27 0 0.450684 1
+7 18 28 0 0.427979 1
+7 18 29 0 0.407715 1
+7 18 30 0 0.389893 1
+7 18 31 0 0.374023 1
+7 19 0 0 0.821289 0
+7 19 1 0 0.821289 0
+7 19 2 0 0.821289 0
+7 19 3 0 0.821289 0
+7 19 4 0 0.821289 0
+7 19 5 0 0.821289 0
+7 19 6 0 0.821289 0
+7 19 7 0 0.821289 0
+7 19 8 0 0.821777 0
+7 19 9 0 0.821777 0
+7 19 10 0 0.821777 0
+7 19 11 0 0.822266 0
+7 19 12 0 0.82373 0
+7 19 13 0 0.827148 0
+7 19 14 0 0.831055 0.2052
+7 19 15 0 0.834473 0.344482
+7 19 16 0 0.835938 0.47168
+7 19 17 0 0.831543 0.592773
+7 19 18 0 0.820312 0.70459
+7 19 19 0 0.801758 0.802246
+7 19 20 0 0.77832 0.883301
+7 19 21 0 0.743164 0.94043
+7 19 22 0 0.700684 0.974609
+7 19 23 0 0.65918 0.993652
+7 19 24 0 0.621582 1
+7 19 25 0 0.585449 1
+7 19 26 0 0.550781 1
+7 19 27 0 0.519043 1
+7 19 28 0 0.48999 1
+7 19 29 0 0.463867 1
+7 19 30 0 0.44043 1
+7 19 31 0 0.419678 1
+7 20 0 0 0.891602 0
+7 20 1 0 0.891602 0
+7 20 2 0 0.891602 0
+7 20 3 0 0.891602 0
+7 20 4 0 0.891602 0
+7 20 5 0 0.891602 0
+7 20 6 0 0.891602 0
+7 20 7 0 0.891602 0
+7 20 8 0 0.891602 0
+7 20 9 0 0.891602 0
+7 20 10 0 0.891602 0
+7 20 11 0 0.89209 0
+7 20 12 0 0.892578 0
+7 20 13 0 0.895996 0
+7 20 14 0 0.900879 0.114319
+7 20 15 0 0.905762 0.292236
+7 20 16 0 0.908691 0.429443
+7 20 17 0 0.907715 0.555664
+7 20 18 0 0.899902 0.672363
+7 20 19 0 0.884277 0.775879
+7 20 20 0 0.861816 0.862305
+7 20 21 0 0.831543 0.931152
+7 20 22 0 0.79248 0.978027
+7 20 23 0 0.750977 1
+7 20 24 0 0.710449 1
+7 20 25 0 0.669434 1
+7 20 26 0 0.629395 1
+7 20 27 0 0.591309 1
+7 20 28 0 0.556152 1
+7 20 29 0 0.523926 1
+7 20 30 0 0.494873 1
+7 20 31 0 0.46875 1
+7 21 0 0 0.951172 0
+7 21 1 0 0.951172 0
+7 21 2 0 0.951172 0
+7 21 3 0 0.951172 0
+7 21 4 0 0.951172 0
+7 21 5 0 0.951172 0
+7 21 6 0 0.951172 0
+7 21 7 0 0.951172 0
+7 21 8 0 0.951172 0
+7 21 9 0 0.951172 0
+7 21 10 0 0.951172 0
+7 21 11 0 0.95166 0
+7 21 12 0 0.95166 0
+7 21 13 0 0.95459 0
+7 21 14 0 0.959473 0
+7 21 15 0 0.965332 0.228394
+7 21 16 0 0.970703 0.381348
+7 21 17 0 0.972656 0.513672
+7 21 18 0 0.968262 0.634766
+7 21 19 0 0.956543 0.742676
+7 21 20 0 0.937012 0.834473
+7 21 21 0 0.911133 0.911621
+7 21 22 0 0.877441 0.970215
+7 21 23 0 0.838867 1
+7 21 24 0 0.797852 1
+7 21 25 0 0.754883 1
+7 21 26 0 0.710449 1
+7 21 27 0 0.666992 1
+7 21 28 0 0.625977 1
+7 21 29 0 0.587891 1
+7 21 30 0 0.553223 1
+7 21 31 0 0.520996 1
+7 22 0 0 1 0
+7 22 1 0 1 0
+7 22 2 0 1 0
+7 22 3 0 1 0
+7 22 4 0 1 0
+7 22 5 0 1 0
+7 22 6 0 1 0
+7 22 7 0 1 0
+7 22 8 0 1 0
+7 22 9 0 1 0
+7 22 10 0 1 0
+7 22 11 0 1 0
+7 22 12 0 1 0
+7 22 13 0 1 0
+7 22 14 0 1 0
+7 22 15 0 1 0.142334
+7 22 16 0 1 0.327881
+7 22 17 0 1 0.468018
+7 22 18 0 1 0.593262
+7 22 19 0 1 0.705078
+7 22 20 0 1 0.80127
+7 22 21 0 0.979004 0.883789
+7 22 22 0 0.950684 0.950684
+7 22 23 0 0.916504 1
+7 22 24 0 0.878906 1
+7 22 25 0 0.835938 1
+7 22 26 0 0.789551 1
+7 22 27 0 0.742676 1
+7 22 28 0 0.697266 1
+7 22 29 0 0.653809 1
+7 22 30 0 0.613281 1
+7 22 31 0 0.575684 1
+7 23 0 0 1 0
+7 23 1 0 1 0
+7 23 2 0 1 0
+7 23 3 0 1 0
+7 23 4 0 1 0
+7 23 5 0 1 0
+7 23 6 0 1 0
+7 23 7 0 1 0
+7 23 8 0 1 0
+7 23 9 0 1 0
+7 23 10 0 1 0
+7 23 11 0 1 0
+7 23 12 0 1 0
+7 23 13 0 1 0
+7 23 14 0 1 0
+7 23 15 0 1 0
+7 23 16 0 1 0.270264
+7 23 17 0 1 0.421143
+7 23 18 0 1 0.550293
+7 23 19 0 1 0.665527
+7 23 20 0 1 0.765137
+7 23 21 0 1 0.852051
+7 23 22 0 1 0.923828
+7 23 23 0 0.980469 0.980957
+7 23 24 0 0.947266 1
+7 23 25 0 0.907227 1
+7 23 26 0 0.861816 1
+7 23 27 0 0.813477 1
+7 23 28 0 0.764648 1
+7 23 29 0 0.717285 1
+7 23 30 0 0.671875 1
+7 23 31 0 0.629395 1
+7 24 0 0 1 0
+7 24 1 0 1 0
+7 24 2 0 1 0
+7 24 3 0 1 0
+7 24 4 0 1 0
+7 24 5 0 1 0
+7 24 6 0 1 0
+7 24 7 0 1 0
+7 24 8 0 1 0
+7 24 9 0 1 0
+7 24 10 0 1 0
+7 24 11 0 1 0
+7 24 12 0 1 0
+7 24 13 0 1 0
+7 24 14 0 1 0
+7 24 15 0 1 0
+7 24 16 0 1 0.204346
+7 24 17 0 1 0.373291
+7 24 18 0 1 0.507324
+7 24 19 0 1 0.624512
+7 24 20 0 1 0.727539
+7 24 21 0 1 0.817383
+7 24 22 0 1 0.893555
+7 24 23 0 1 0.955566
+7 24 24 0 1 1
+7 24 25 0 0.96875 1
+7 24 26 0 0.925781 1
+7 24 27 0 0.87793 1
+7 24 28 0 0.828125 1
+7 24 29 0 0.777344 1
+7 24 30 0 0.728516 1
+7 24 31 0 0.682129 1
+7 25 0 0 1 0
+7 25 1 0 1 0
+7 25 2 0 1 0
+7 25 3 0 1 0
+7 25 4 0 1 0
+7 25 5 0 1 0
+7 25 6 0 1 0
+7 25 7 0 1 0
+7 25 8 0 1 0
+7 25 9 0 1 0
+7 25 10 0 1 0
+7 25 11 0 1 0
+7 25 12 0 1 0
+7 25 13 0 1 0
+7 25 14 0 1 0
+7 25 15 0 1 0
+7 25 16 0 1 0.104309
+7 25 17 0 1 0.318359
+7 25 18 0 1 0.459473
+7 25 19 0 1 0.57959
+7 25 20 0 1 0.68457
+7 25 21 0 1 0.777344
+7 25 22 0 1 0.85791
+7 25 23 0 1 0.923828
+7 25 24 0 1 0.978027
+7 25 25 0 1 1
+7 25 26 0 0.986816 1
+7 25 27 0 0.941406 1
+7 25 28 0 0.891602 1
+7 25 29 0 0.839355 1
+7 25 30 0 0.787598 1
+7 25 31 0 0.737793 1
+7 26 0 0 1 0
+7 26 1 0 1 0
+7 26 2 0 1 0
+7 26 3 0 1 0
+7 26 4 0 1 0
+7 26 5 0 1 0
+7 26 6 0 1 0
+7 26 7 0 1 0
+7 26 8 0 1 0
+7 26 9 0 1 0
+7 26 10 0 1 0
+7 26 11 0 1 0
+7 26 12 0 1 0
+7 26 13 0 1 0
+7 26 14 0 1 0
+7 26 15 0 1 0
+7 26 16 0 1 0
+7 26 17 0 1 0.25293
+7 26 18 0 1 0.40625
+7 26 19 0 1 0.529785
+7 26 20 0 1 0.636719
+7 26 21 0 1 0.732422
+7 26 22 0 1 0.815918
+7 26 23 0 1 0.885742
+7 26 24 0 1 0.943848
+7 26 25 0 1 0.99707
+7 26 26 0 1 1
+7 26 27 0 1 1
+7 26 28 0 0.953613 1
+7 26 29 0 0.901855 1
+7 26 30 0 0.848633 1
+7 26 31 0 0.795898 1
+7 27 0 0 1 0
+7 27 1 0 1 0
+7 27 2 0 1 0
+7 27 3 0 1 0
+7 27 4 0 1 0
+7 27 5 0 1 0
+7 27 6 0 1 0
+7 27 7 0 1 0
+7 27 8 0 1 0
+7 27 9 0 1 0
+7 27 10 0 1 0
+7 27 11 0 1 0
+7 27 12 0 1 0
+7 27 13 0 1 0
+7 27 14 0 1 0
+7 27 15 0 1 0
+7 27 16 0 1 0
+7 27 17 0 1 0.166138
+7 27 18 0 1 0.34668
+7 27 19 0 1 0.47583
+7 27 20 0 1 0.584961
+7 27 21 0 1 0.682617
+7 27 22 0 1 0.768555
+7 27 23 0 1 0.841309
+7 27 24 0 1 0.90332
+7 27 25 0 1 0.960938
+7 27 26 0 1 1
+7 27 27 0 1 1
+7 27 28 0 1 1
+7 27 29 0 0.962402 1
+7 27 30 0 0.908691 1
+7 27 31 0 0.854492 1
+7 28 0 0 1 0
+7 28 1 0 1 0
+7 28 2 0 1 0
+7 28 3 0 1 0
+7 28 4 0 1 0
+7 28 5 0 1 0
+7 28 6 0 1 0
+7 28 7 0 1 0
+7 28 8 0 1 0
+7 28 9 0 1 0
+7 28 10 0 1 0
+7 28 11 0 1 0
+7 28 12 0 1 0
+7 28 13 0 1 0
+7 28 14 0 1 0
+7 28 15 0 1 0
+7 28 16 0 1 0
+7 28 17 0 1 0
+7 28 18 0 1 0.278076
+7 28 19 0 1 0.417236
+7 28 20 0 1 0.529297
+7 28 21 0 1 0.62793
+7 28 22 0 1 0.71582
+7 28 23 0 1 0.791016
+7 28 24 0 1 0.855957
+7 28 25 0 1 0.91748
+7 28 26 0 1 0.974121
+7 28 27 0 1 1
+7 28 28 0 1 1
+7 28 29 0 1 1
+7 28 30 0 0.968262 1
+7 28 31 0 0.914062 1
+7 29 0 0 1 0
+7 29 1 0 1 0
+7 29 2 0 1 0
+7 29 3 0 1 0
+7 29 4 0 1 0
+7 29 5 0 1 0
+7 29 6 0 1 0
+7 29 7 0 1 0
+7 29 8 0 1 0
+7 29 9 0 1 0
+7 29 10 0 1 0
+7 29 11 0 1 0
+7 29 12 0 1 0
+7 29 13 0 1 0
+7 29 14 0 1 0
+7 29 15 0 1 0
+7 29 16 0 1 0
+7 29 17 0 1 0
+7 29 18 0 1 0.19104
+7 29 19 0 1 0.352051
+7 29 20 0 1 0.46875
+7 29 21 0 1 0.569336
+7 29 22 0 1 0.658203
+7 29 23 0 1 0.735352
+7 29 24 0 1 0.802734
+7 29 25 0 1 0.867188
+7 29 26 0 1 0.928223
+7 29 27 0 1 0.983398
+7 29 28 0 1 1
+7 29 29 0 1 1
+7 29 30 0 1 1
+7 29 31 0 0.973145 1
+7 30 0 0 1 0
+7 30 1 0 1 0
+7 30 2 0 1 0
+7 30 3 0 1 0
+7 30 4 0 1 0
+7 30 5 0 1 0
+7 30 6 0 1 0
+7 30 7 0 1 0
+7 30 8 0 1 0
+7 30 9 0 1 0
+7 30 10 0 1 0
+7 30 11 0 1 0
+7 30 12 0 1 0
+7 30 13 0 1 0
+7 30 14 0 1 0
+7 30 15 0 1 0
+7 30 16 0 1 0
+7 30 17 0 1 0
+7 30 18 0 1 0.0225067
+7 30 19 0 1 0.277588
+7 30 20 0 1 0.403564
+7 30 21 0 1 0.506836
+7 30 22 0 1 0.59668
+7 30 23 0 1 0.674805
+7 30 24 0 1 0.743652
+7 30 25 0 1 0.810547
+7 30 26 0 1 0.874512
+7 30 27 0 1 0.935059
+7 30 28 0 1 0.989746
+7 30 29 0 1 1
+7 30 30 0 1 1
+7 30 31 0 1 1
+7 31 0 0 1 0
+7 31 1 0 1 0
+7 31 2 0 1 0
+7 31 3 0 1 0
+7 31 4 0 1 0
+7 31 5 0 1 0
+7 31 6 0 1 0
+7 31 7 0 1 0
+7 31 8 0 1 0
+7 31 9 0 1 0
+7 31 10 0 1 0
+7 31 11 0 1 0
+7 31 12 0 1 0
+7 31 13 0 1 0
+7 31 14 0 1 0
+7 31 15 0 1 0
+7 31 16 0 1 0
+7 31 17 0 1 0
+7 31 18 0 1 0
+7 31 19 0 1 0.184082
+7 31 20 0 1 0.331787
+7 31 21 0 1 0.439941
+7 31 22 0 1 0.531738
+7 31 23 0 1 0.610352
+7 31 24 0 1 0.680176
+7 31 25 0 1 0.748535
+7 31 26 0 1 0.81543
+7 31 27 0 1 0.879883
+7 31 28 0 1 0.94043
+7 31 29 0 1 0.995117
+7 31 30 0 1 1
+7 31 31 0 1 1
+8 0 0 0.113281 0 0
+8 0 1 0.113281 0 0
+8 0 2 0.113281 0 0
+8 0 3 0.113342 0 0
+8 0 4 0.113525 0 0
+8 0 5 0.111877 0 0.00522614
+8 0 6 0.107056 0 0.0176392
+8 0 7 0.0838623 0 0.0304413
+8 0 8 0.0649414 0.00150967 0.0463867
+8 0 9 0.055603 0.00311089 0.0776978
+8 0 10 0.0378113 0.00615311 0.118713
+8 0 11 0.00162601 0.0120163 0.172852
+8 0 12 0 0.0222321 0.238281
+8 0 13 0 0.0386658 0.313477
+8 0 14 0 0.0602112 0.397705
+8 0 15 0 0.0834961 0.489014
+8 0 16 0 0.107971 0.584961
+8 0 17 0 0.131836 0.678223
+8 0 18 0 0.153931 0.764648
+8 0 19 0 0.173462 0.841797
+8 0 20 0 0.18457 0.885254
+8 0 21 0 0.186646 0.893555
+8 0 22 0 0.188965 0.902344
+8 0 23 0 0.191284 0.911133
+8 0 24 0 0.193604 0.92041
+8 0 25 0 0.196167 0.930176
+8 0 26 0 0.198975 0.941406
+8 0 27 0 0.202148 0.953613
+8 0 28 0 0.205688 0.967773
+8 0 29 0 0.209473 0.982422
+8 0 30 0 0.213379 0.998047
+8 0 31 0 0.217529 1
+8 1 0 0.112915 0 0
+8 1 1 0.112915 0 0
+8 1 2 0.112854 0 0
+8 1 3 0.112976 0 0
+8 1 4 0.113159 0 0
+8 1 5 0.111633 0 0.0051384
+8 1 6 0.106934 0 0.0175629
+8 1 7 0.0839233 0 0.0304718
+8 1 8 0.0648193 0.00174141 0.0463867
+8 1 9 0.055481 0.00333977 0.0776978
+8 1 10 0.0376587 0.0063858 0.118652
+8 1 11 0.00146294 0.0122604 0.172852
+8 1 12 0 0.0224915 0.238281
+8 1 13 0 0.0389099 0.313477
+8 1 14 0 0.0603943 0.397705
+8 1 15 0 0.0836792 0.489014
+8 1 16 0 0.108093 0.584961
+8 1 17 0 0.131836 0.678223
+8 1 18 0 0.153931 0.764648
+8 1 19 0 0.173584 0.841797
+8 1 20 0 0.18457 0.885254
+8 1 21 0 0.186768 0.893555
+8 1 22 0 0.188965 0.902344
+8 1 23 0 0.191284 0.911133
+8 1 24 0 0.193604 0.92041
+8 1 25 0 0.196167 0.930176
+8 1 26 0 0.198975 0.941406
+8 1 27 0 0.202148 0.953613
+8 1 28 0 0.205688 0.967773
+8 1 29 0 0.209473 0.982422
+8 1 30 0 0.213379 0.998047
+8 1 31 0 0.217529 1
+8 2 0 0.112183 0 0
+8 2 1 0.112183 0 0
+8 2 2 0.112122 0 0
+8 2 3 0.112244 0 0
+8 2 4 0.112549 0 0
+8 2 5 0.111267 0 0.00498962
+8 2 6 0.106689 0 0.0174255
+8 2 7 0.0839844 0 0.0305481
+8 2 8 0.0646362 0.0021534 0.0463257
+8 2 9 0.0552673 0.00374413 0.0776978
+8 2 10 0.037384 0.00679398 0.118652
+8 2 11 0.00117302 0.0126953 0.172852
+8 2 12 0 0.022934 0.238281
+8 2 13 0 0.0393677 0.313477
+8 2 14 0 0.06073 0.397705
+8 2 15 0 0.0839233 0.489014
+8 2 16 0 0.108276 0.584961
+8 2 17 0 0.13208 0.678223
+8 2 18 0 0.154053 0.764648
+8 2 19 0 0.173706 0.841797
+8 2 20 0 0.184692 0.885254
+8 2 21 0 0.186768 0.893555
+8 2 22 0 0.189087 0.902344
+8 2 23 0 0.191284 0.911133
+8 2 24 0 0.193604 0.92041
+8 2 25 0 0.196167 0.930176
+8 2 26 0 0.198975 0.941406
+8 2 27 0 0.202148 0.953613
+8 2 28 0 0.205688 0.967773
+8 2 29 0 0.209473 0.982422
+8 2 30 0 0.213379 0.998047
+8 2 31 0 0.217529 1
+8 3 0 0.11084 0 0
+8 3 1 0.11084 0 0
+8 3 2 0.110779 0 0
+8 3 3 0.110962 0 0
+8 3 4 0.111328 0 0
+8 3 5 0.110474 0 0.00471878
+8 3 6 0.106201 0 0.0171661
+8 3 7 0.0841675 0 0.0306854
+8 3 8 0.06427 0.0029068 0.0462646
+8 3 9 0.0548706 0.00448608 0.0776367
+8 3 10 0.0368652 0.00754547 0.118591
+8 3 11 0.00064373 0.0134888 0.172852
+8 3 12 0 0.0237579 0.238159
+8 3 13 0 0.0401917 0.313477
+8 3 14 0 0.0613403 0.397705
+8 3 15 0 0.0843506 0.489014
+8 3 16 0 0.108643 0.584961
+8 3 17 0 0.132324 0.678223
+8 3 18 0 0.154297 0.764648
+8 3 19 0 0.173828 0.841797
+8 3 20 0 0.184814 0.885254
+8 3 21 0 0.18689 0.893555
+8 3 22 0 0.189087 0.902344
+8 3 23 0 0.191406 0.911133
+8 3 24 0 0.193726 0.92041
+8 3 25 0 0.196289 0.930176
+8 3 26 0 0.199097 0.941406
+8 3 27 0 0.202148 0.953613
+8 3 28 0 0.205688 0.967773
+8 3 29 0 0.209473 0.982422
+8 3 30 0 0.213501 0.998047
+8 3 31 0 0.217529 1
+8 4 0 0.108154 0 0
+8 4 1 0.108154 4.64916e-06 0
+8 4 2 0.108093 7.64132e-05 0
+8 4 3 0.108276 0.000158429 0
+8 4 4 0.108887 0.000156522 0
+8 4 5 0.108643 0 0.00423431
+8 4 6 0.10498 0 0.0166321
+8 4 7 0.0845337 0.00119781 0.0309296
+8 4 8 0.0635986 0.0043335 0.0461426
+8 4 9 0.0541077 0.00588608 0.0775146
+8 4 10 0.0359192 0.00896454 0.11853
+8 4 11 0 0.0149841 0.172729
+8 4 12 0 0.0252991 0.238159
+8 4 13 0 0.0417175 0.313477
+8 4 14 0 0.0625 0.397705
+8 4 15 0 0.0852051 0.489014
+8 4 16 0 0.109253 0.584961
+8 4 17 0 0.132812 0.678223
+8 4 18 0 0.154663 0.764648
+8 4 19 0 0.174194 0.841797
+8 4 20 0 0.185059 0.885254
+8 4 21 0 0.187134 0.893555
+8 4 22 0 0.189331 0.902344
+8 4 23 0 0.191528 0.911133
+8 4 24 0 0.193848 0.92041
+8 4 25 0 0.196289 0.930176
+8 4 26 0 0.199097 0.941406
+8 4 27 0 0.202271 0.953613
+8 4 28 0 0.205811 0.967773
+8 4 29 0 0.209595 0.982422
+8 4 30 0 0.213501 0.998047
+8 4 31 0 0.217529 1
+8 5 0 0.1026 0.00570297 0
+8 5 1 0.1026 0.0057373 0
+8 5 2 0.102539 0.00580215 0
+8 5 3 0.102661 0.00589752 0
+8 5 4 0.103516 0.00593948 0
+8 5 5 0.104187 0.00563431 0.00342941
+8 5 6 0.102112 0.00504303 0.0155182
+8 5 7 0.0852051 0.0050354 0.0314026
+8 5 8 0.0622559 0.00708771 0.0458984
+8 5 9 0.0526123 0.00859833 0.0773926
+8 5 10 0.0340576 0.0117111 0.118408
+8 5 11 0 0.017868 0.172607
+8 5 12 0 0.0282898 0.238159
+8 5 13 0 0.0445862 0.313477
+8 5 14 0 0.0646362 0.397705
+8 5 15 0 0.086853 0.489014
+8 5 16 0 0.110535 0.584961
+8 5 17 0 0.133789 0.678223
+8 5 18 0 0.155518 0.765137
+8 5 19 0 0.174683 0.841797
+8 5 20 0 0.185547 0.885254
+8 5 21 0 0.1875 0.893555
+8 5 22 0 0.189575 0.902344
+8 5 23 0 0.191772 0.911133
+8 5 24 0 0.194092 0.92041
+8 5 25 0 0.196533 0.930176
+8 5 26 0 0.199341 0.941406
+8 5 27 0 0.202393 0.953613
+8 5 28 0 0.205933 0.967773
+8 5 29 0 0.209717 0.982422
+8 5 30 0 0.213623 0.998047
+8 5 31 0 0.217651 1
+8 6 0 0.0916138 0.0145721 0
+8 6 1 0.0915527 0.014595 0
+8 6 2 0.0915527 0.0146484 0
+8 6 3 0.0914917 0.01474 0
+8 6 4 0.0922852 0.0148926 0
+8 6 5 0.0935059 0.0150146 0.00252724
+8 6 6 0.0950928 0.0150146 0.0134201
+8 6 7 0.0858765 0.013382 0.0320129
+8 6 8 0.0596313 0.0123444 0.0453796
+8 6 9 0.0497131 0.0137634 0.0770264
+8 6 10 0.0305481 0.0169373 0.118164
+8 6 11 0 0.0233765 0.172363
+8 6 12 0 0.0339966 0.237915
+8 6 13 0 0.0497437 0.313232
+8 6 14 0 0.0686646 0.397705
+8 6 15 0 0.0899048 0.489014
+8 6 16 0 0.112854 0.584961
+8 6 17 0 0.13562 0.678223
+8 6 18 0 0.15686 0.765137
+8 6 19 0 0.175903 0.841797
+8 6 20 0 0.186523 0.885254
+8 6 21 0 0.188232 0.893555
+8 6 22 0 0.190186 0.902344
+8 6 23 0 0.192261 0.911133
+8 6 24 0 0.194458 0.92041
+8 6 25 0 0.196899 0.930176
+8 6 26 0 0.199585 0.941406
+8 6 27 0 0.202637 0.953613
+8 6 28 0 0.206177 0.967773
+8 6 29 0 0.209839 0.982422
+8 6 30 0 0.213745 0.998047
+8 6 31 0 0.217773 1
+8 7 0 0.0744019 0.0259247 0
+8 7 1 0.0744019 0.0259399 0
+8 7 2 0.0744019 0.0259705 0
+8 7 3 0.0744019 0.0260315 0
+8 7 4 0.0742188 0.0261383 0
+8 7 5 0.0739136 0.0263519 0.00281334
+8 7 6 0.0742188 0.0270691 0.0104523
+8 7 7 0.0772095 0.0292206 0.0285187
+8 7 8 0.0541687 0.0225372 0.0443726
+8 7 9 0.0436707 0.023819 0.076416
+8 7 10 0.0237274 0.0271149 0.117676
+8 7 11 0 0.0340881 0.171997
+8 7 12 0 0.0448914 0.237671
+8 7 13 0 0.0588684 0.313232
+8 7 14 0 0.0759277 0.397461
+8 7 15 0 0.0956421 0.48877
+8 7 16 0 0.11731 0.584961
+8 7 17 0 0.139038 0.678223
+8 7 18 0 0.159668 0.765137
+8 7 19 0 0.178101 0.841797
+8 7 20 0 0.188354 0.885254
+8 7 21 0 0.189697 0.893555
+8 7 22 0 0.191406 0.902344
+8 7 23 0 0.193237 0.911133
+8 7 24 0 0.195312 0.92041
+8 7 25 0 0.197632 0.930176
+8 7 26 0 0.200195 0.941406
+8 7 27 0 0.203247 0.953613
+8 7 28 0 0.206665 0.967773
+8 7 29 0 0.210205 0.982422
+8 7 30 0 0.214111 0.998047
+8 7 31 0 0.21814 1
+8 8 0 0.062561 0.049469 0
+8 8 1 0.062561 0.0494995 0
+8 8 2 0.0626221 0.04953 0
+8 8 3 0.0626221 0.0495911 0
+8 8 4 0.0623474 0.0495911 0
+8 8 5 0.0609436 0.0491333 0.00229263
+8 8 6 0.0582275 0.0482178 0.00936127
+8 8 7 0.052887 0.0462952 0.0219727
+8 8 8 0.0422058 0.0422363 0.0422058
+8 8 9 0.0306396 0.0433655 0.0750732
+8 8 10 0.0103989 0.0466309 0.11676
+8 8 11 0 0.0534668 0.171265
+8 8 12 0 0.0626831 0.237183
+8 8 13 0 0.0742798 0.312744
+8 8 14 0 0.0887451 0.397461
+8 8 15 0 0.106018 0.48877
+8 8 16 0 0.12561 0.584961
+8 8 17 0 0.14563 0.678223
+8 8 18 0 0.164917 0.765137
+8 8 19 0 0.182373 0.841797
+8 8 20 0 0.191772 0.885742
+8 8 21 0 0.192383 0.893555
+8 8 22 0 0.193604 0.902344
+8 8 23 0 0.19519 0.911621
+8 8 24 0 0.196899 0.92041
+8 8 25 0 0.198975 0.930664
+8 8 26 0 0.201416 0.941406
+8 8 27 0 0.204224 0.954102
+8 8 28 0 0.20752 0.967773
+8 8 29 0 0.21106 0.98291
+8 8 30 0 0.214722 0.998047
+8 8 31 0 0.218628 1
+8 9 0 0.0305328 0.0756836 0
+8 9 1 0.0305328 0.0757446 0
+8 9 2 0.0305481 0.0757446 0
+8 9 3 0.0305634 0.0758057 0
+8 9 4 0.0305786 0.0758667 0
+8 9 5 0.0296936 0.0755005 0
+8 9 6 0.0274048 0.0745239 0.00421143
+8 9 7 0.0233002 0.0728149 0.0159912
+8 9 8 0.0166779 0.0715942 0.0380554
+8 9 9 0.00543976 0.0725708 0.0726318
+8 9 10 0 0.0752563 0.115173
+8 9 11 0 0.0812378 0.169922
+8 9 12 0 0.0889282 0.236206
+8 9 13 0 0.0982056 0.312256
+8 9 14 0 0.10968 0.396973
+8 9 15 0 0.123718 0.488525
+8 9 16 0 0.140137 0.584473
+8 9 17 0 0.157471 0.678223
+8 9 18 0 0.174561 0.765137
+8 9 19 0 0.190186 0.841797
+8 9 20 0 0.198242 0.88623
+8 9 21 0 0.197632 0.894043
+8 9 22 0 0.197876 0.902832
+8 9 23 0 0.19873 0.911621
+8 9 24 0 0.199951 0.920898
+8 9 25 0 0.20166 0.930664
+8 9 26 0 0.203735 0.941895
+8 9 27 0 0.206177 0.954102
+8 9 28 0 0.209229 0.968262
+8 9 29 0 0.212524 0.98291
+8 9 30 0 0.216064 0.998535
+8 9 31 0 0.219727 1
+8 10 0 0 0.109741 0
+8 10 1 0 0.109741 0
+8 10 2 0 0.109741 0
+8 10 3 0 0.109802 0
+8 10 4 0 0.109802 0
+8 10 5 0 0.109924 0
+8 10 6 0 0.109619 0
+8 10 7 0 0.109192 0.0085144
+8 10 8 0 0.109192 0.0311127
+8 10 9 0 0.110107 0.0682373
+8 10 10 0 0.112549 0.11261
+8 10 11 0 0.117859 0.167847
+8 10 12 0 0.12439 0.234497
+8 10 13 0 0.131714 0.311035
+8 10 14 0 0.140259 0.39624
+8 10 15 0 0.150757 0.488281
+8 10 16 0 0.16333 0.584473
+8 10 17 0 0.17688 0.678223
+8 10 18 0 0.190674 0.765137
+8 10 19 0 0.203735 0.842285
+8 10 20 0 0.209595 0.887207
+8 10 21 0 0.206665 0.89502
+8 10 22 0 0.205444 0.903809
+8 10 23 0 0.205078 0.912598
+8 10 24 0 0.205444 0.921387
+8 10 25 0 0.206421 0.931152
+8 10 26 0 0.207764 0.942383
+8 10 27 0 0.209717 0.95459
+8 10 28 0 0.212158 0.968262
+8 10 29 0 0.215088 0.98291
+8 10 30 0 0.218262 0.998535
+8 10 31 0 0.22168 1
+8 11 0 0 0.158691 0
+8 11 1 0 0.158691 0
+8 11 2 0 0.158691 0
+8 11 3 0 0.158691 0
+8 11 4 0 0.158691 0
+8 11 5 0 0.158813 0
+8 11 6 0 0.158936 0
+8 11 7 0 0.158691 0
+8 11 8 0 0.158569 0.0194702
+8 11 9 0 0.159058 0.0609436
+8 11 10 0 0.160889 0.108704
+8 11 11 0 0.164673 0.164795
+8 11 12 0 0.170044 0.231812
+8 11 13 0 0.175781 0.308838
+8 11 14 0 0.181885 0.39502
+8 11 15 0 0.188843 0.487549
+8 11 16 0 0.197266 0.584473
+8 11 17 0 0.206421 0.678223
+8 11 18 0 0.215942 0.765137
+8 11 19 0 0.22522 0.842285
+8 11 20 0 0.227905 0.888672
+8 11 21 0 0.221802 0.896484
+8 11 22 0 0.218018 0.904785
+8 11 23 0 0.21582 0.913574
+8 11 24 0 0.214722 0.922363
+8 11 25 0 0.214355 0.932129
+8 11 26 0 0.214722 0.942871
+8 11 27 0 0.215698 0.955078
+8 11 28 0 0.217407 0.96875
+8 11 29 0 0.219604 0.983887
+8 11 30 0 0.222168 0.999023
+8 11 31 0 0.225098 1
+8 12 0 0 0.220703 0
+8 12 1 0 0.220703 0
+8 12 2 0 0.220703 0
+8 12 3 0 0.220703 0
+8 12 4 0 0.220703 0
+8 12 5 0 0.220825 0
+8 12 6 0 0.220825 0
+8 12 7 0 0.220947 0
+8 12 8 0 0.220947 0
+8 12 9 0 0.221191 0.0444031
+8 12 10 0 0.221802 0.100342
+8 12 11 0 0.223755 0.159302
+8 12 12 0 0.227173 0.227295
+8 12 13 0 0.231567 0.30542
+8 12 14 0 0.235718 0.392578
+8 12 15 0 0.239624 0.48584
+8 12 16 0 0.244019 0.583496
+8 12 17 0 0.248291 0.678223
+8 12 18 0 0.25293 0.765625
+8 12 19 0 0.257568 0.842773
+8 12 20 0 0.256348 0.891113
+8 12 21 0 0.245361 0.898438
+8 12 22 0 0.237915 0.906738
+8 12 23 0 0.23291 0.915527
+8 12 24 0 0.229736 0.923828
+8 12 25 0 0.227539 0.933594
+8 12 26 0 0.226196 0.944336
+8 12 27 0 0.225708 0.956543
+8 12 28 0 0.226074 0.969727
+8 12 29 0 0.227173 0.984375
+8 12 30 0 0.228638 1
+8 12 31 0 0.230713 1
+8 13 0 0 0.292725 0
+8 13 1 0 0.292725 0
+8 13 2 0 0.292725 0
+8 13 3 0 0.292725 0
+8 13 4 0 0.292725 0
+8 13 5 0 0.292725 0
+8 13 6 0 0.292969 0
+8 13 7 0 0.292969 0
+8 13 8 0 0.293213 0
+8 13 9 0 0.293457 0.00715256
+8 13 10 0 0.293701 0.0809937
+8 13 11 0 0.294678 0.148193
+8 13 12 0 0.296631 0.219604
+8 13 13 0 0.299316 0.299316
+8 13 14 0 0.301758 0.387939
+8 13 15 0 0.303223 0.48291
+8 13 16 0 0.303955 0.582031
+8 13 17 0 0.303711 0.677734
+8 13 18 0 0.302979 0.765625
+8 13 19 0 0.302734 0.843262
+8 13 20 0 0.296875 0.89502
+8 13 21 0 0.279785 0.902344
+8 13 22 0 0.267334 0.910156
+8 13 23 0 0.258789 0.918457
+8 13 24 0 0.252441 0.926758
+8 13 25 0 0.247559 0.936035
+8 13 26 0 0.243774 0.946289
+8 13 27 0 0.241089 0.958496
+8 13 28 0 0.239624 0.97168
+8 13 29 0 0.238892 0.98584
+8 13 30 0 0.239014 1
+8 13 31 0 0.239624 1
+8 14 0 0 0.374268 0
+8 14 1 0 0.374268 0
+8 14 2 0 0.374268 0
+8 14 3 0 0.374268 0
+8 14 4 0 0.374268 0
+8 14 5 0 0.374268 0
+8 14 6 0 0.374268 0
+8 14 7 0 0.374512 0
+8 14 8 0 0.374756 0
+8 14 9 0 0.375 0
+8 14 10 0 0.375488 0.0335693
+8 14 11 0 0.376221 0.125732
+8 14 12 0 0.377441 0.205322
+8 14 13 0 0.378906 0.288818
+8 14 14 0 0.379883 0.379883
+8 14 15 0 0.379395 0.477295
+8 14 16 0 0.377441 0.578613
+8 14 17 0 0.373047 0.675781
+8 14 18 0 0.367432 0.765137
+8 14 19 0 0.361572 0.84375
+8 14 20 0 0.351562 0.900391
+8 14 21 0 0.327148 0.907715
+8 14 22 0 0.308594 0.915527
+8 14 23 0 0.295166 0.92334
+8 14 24 0 0.284912 0.931152
+8 14 25 0 0.276367 0.939941
+8 14 26 0 0.269531 0.950195
+8 14 27 0 0.263916 0.961426
+8 14 28 0 0.259766 0.974609
+8 14 29 0 0.256592 0.988281
+8 14 30 0 0.254639 1
+8 14 31 0 0.253418 1
+8 15 0 0 0.463135 0
+8 15 1 0 0.463135 0
+8 15 2 0 0.463135 0
+8 15 3 0 0.463135 0
+8 15 4 0 0.463135 0
+8 15 5 0 0.463135 0
+8 15 6 0 0.463135 0
+8 15 7 0 0.463379 0
+8 15 8 0 0.463379 0
+8 15 9 0 0.463867 0
+8 15 10 0 0.464355 0
+8 15 11 0 0.465332 0.0792847
+8 15 12 0 0.466553 0.179321
+8 15 13 0 0.467773 0.270752
+8 15 14 0 0.468262 0.366211
+8 15 15 0 0.467041 0.467285
+8 15 16 0 0.462891 0.571289
+8 15 17 0 0.455322 0.671875
+8 15 18 0 0.445312 0.763184
+8 15 19 0 0.434326 0.84375
+8 15 20 0 0.421143 0.906738
+8 15 21 0 0.388428 0.915527
+8 15 22 0 0.363037 0.92334
+8 15 23 0 0.34375 0.930664
+8 15 24 0 0.328857 0.938477
+8 15 25 0 0.315918 0.946777
+8 15 26 0 0.304932 0.956055
+8 15 27 0 0.29541 0.966797
+8 15 28 0 0.287842 0.979004
+8 15 29 0 0.281738 0.992676
+8 15 30 0 0.276855 1
+8 15 31 0 0.272949 1
+8 16 0 0 0.557617 0
+8 16 1 0 0.557617 0
+8 16 2 0 0.557617 0
+8 16 3 0 0.557617 0
+8 16 4 0 0.557617 0
+8 16 5 0 0.557617 0
+8 16 6 0 0.557617 0
+8 16 7 0 0.558105 0
+8 16 8 0 0.558105 0
+8 16 9 0 0.558105 0
+8 16 10 0 0.558594 0
+8 16 11 0 0.560059 0
+8 16 12 0 0.561523 0.132935
+8 16 13 0 0.562988 0.241089
+8 16 14 0 0.563965 0.344238
+8 16 15 0 0.562988 0.450195
+8 16 16 0 0.558594 0.558594
+8 16 17 0 0.548828 0.663086
+8 16 18 0 0.535156 0.758301
+8 16 19 0 0.52002 0.841309
+8 16 20 0 0.503418 0.90918
+8 16 21 0 0.464844 0.925293
+8 16 22 0 0.432129 0.93457
+8 16 23 0 0.40625 0.942383
+8 16 24 0 0.385742 0.949219
+8 16 25 0 0.367432 0.957031
+8 16 26 0 0.351562 0.965332
+8 16 27 0 0.337402 0.975098
+8 16 28 0 0.325684 0.986328
+8 16 29 0 0.31543 0.999023
+8 16 30 0 0.306885 1
+8 16 31 0 0.299805 1
+8 17 0 0 0.652344 0
+8 17 1 0 0.652344 0
+8 17 2 0 0.652344 0
+8 17 3 0 0.652344 0
+8 17 4 0 0.652344 0
+8 17 5 0 0.652344 0
+8 17 6 0 0.652344 0
+8 17 7 0 0.652344 0
+8 17 8 0 0.652344 0
+8 17 9 0 0.652344 0
+8 17 10 0 0.652832 0
+8 17 11 0 0.653809 0
+8 17 12 0 0.65625 0.0242767
+8 17 13 0 0.658203 0.19519
+8 17 14 0 0.660645 0.311523
+8 17 15 0 0.660645 0.424072
+8 17 16 0 0.656738 0.538086
+8 17 17 0 0.647461 0.647461
+8 17 18 0 0.632324 0.747559
+8 17 19 0 0.61377 0.834473
+8 17 20 0 0.593262 0.90625
+8 17 21 0 0.552734 0.935059
+8 17 22 0 0.513672 0.94873
+8 17 23 0 0.481445 0.958008
+8 17 24 0 0.454834 0.964844
+8 17 25 0 0.430664 0.97168
+8 17 26 0 0.408936 0.979004
+8 17 27 0 0.389404 0.987305
+8 17 28 0 0.372559 0.99707
+8 17 29 0 0.357666 1
+8 17 30 0 0.344727 1
+8 17 31 0 0.33374 1
+8 18 0 0 0.741211 0
+8 18 1 0 0.741211 0
+8 18 2 0 0.741211 0
+8 18 3 0 0.741211 0
+8 18 4 0 0.741211 0
+8 18 5 0 0.741211 0
+8 18 6 0 0.741211 0
+8 18 7 0 0.741211 0
+8 18 8 0 0.741211 0
+8 18 9 0 0.741211 0
+8 18 10 0 0.741699 0
+8 18 11 0 0.742188 0
+8 18 12 0 0.744629 0
+8 18 13 0 0.747559 0.11969
+8 18 14 0 0.750488 0.266113
+8 18 15 0 0.752441 0.388672
+8 18 16 0 0.750977 0.508301
+8 18 17 0 0.743652 0.624023
+8 18 18 0 0.729492 0.72998
+8 18 19 0 0.709961 0.822266
+8 18 20 0 0.686523 0.897949
+8 18 21 0 0.647949 0.941406
+8 18 22 0 0.605469 0.963379
+8 18 23 0 0.567383 0.976074
+8 18 24 0 0.534668 0.984375
+8 18 25 0 0.504395 0.991211
+8 18 26 0 0.476074 0.997559
+8 18 27 0 0.450684 1
+8 18 28 0 0.427979 1
+8 18 29 0 0.407715 1
+8 18 30 0 0.389893 1
+8 18 31 0 0.374023 1
+8 19 0 0 0.821777 0
+8 19 1 0 0.821777 0
+8 19 2 0 0.821777 0
+8 19 3 0 0.821777 0
+8 19 4 0 0.821777 0
+8 19 5 0 0.821777 0
+8 19 6 0 0.821777 0
+8 19 7 0 0.821777 0
+8 19 8 0 0.821777 0
+8 19 9 0 0.821777 0
+8 19 10 0 0.821777 0
+8 19 11 0 0.822266 0
+8 19 12 0 0.82373 0
+8 19 13 0 0.827148 0
+8 19 14 0 0.831055 0.205078
+8 19 15 0 0.834961 0.344482
+8 19 16 0 0.835938 0.47168
+8 19 17 0 0.831543 0.592773
+8 19 18 0 0.820312 0.70459
+8 19 19 0 0.801758 0.802246
+8 19 20 0 0.77832 0.883301
+8 19 21 0 0.743164 0.94043
+8 19 22 0 0.700684 0.974609
+8 19 23 0 0.65918 0.993652
+8 19 24 0 0.621582 1
+8 19 25 0 0.585449 1
+8 19 26 0 0.550781 1
+8 19 27 0 0.519043 1
+8 19 28 0 0.48999 1
+8 19 29 0 0.463867 1
+8 19 30 0 0.44043 1
+8 19 31 0 0.419678 1
+8 20 0 0 0.891602 0
+8 20 1 0 0.891602 0
+8 20 2 0 0.891602 0
+8 20 3 0 0.891602 0
+8 20 4 0 0.891602 0
+8 20 5 0 0.891602 0
+8 20 6 0 0.891602 0
+8 20 7 0 0.891602 0
+8 20 8 0 0.891602 0
+8 20 9 0 0.891602 0
+8 20 10 0 0.891602 0
+8 20 11 0 0.89209 0
+8 20 12 0 0.892578 0
+8 20 13 0 0.896484 0
+8 20 14 0 0.900879 0.114197
+8 20 15 0 0.905762 0.292236
+8 20 16 0 0.908691 0.429443
+8 20 17 0 0.907715 0.555664
+8 20 18 0 0.899902 0.672363
+8 20 19 0 0.884277 0.775879
+8 20 20 0 0.861816 0.862305
+8 20 21 0 0.831543 0.931152
+8 20 22 0 0.792969 0.978027
+8 20 23 0 0.750977 1
+8 20 24 0 0.710449 1
+8 20 25 0 0.669434 1
+8 20 26 0 0.629395 1
+8 20 27 0 0.591309 1
+8 20 28 0 0.556152 1
+8 20 29 0 0.523926 1
+8 20 30 0 0.494873 1
+8 20 31 0 0.46875 1
+8 21 0 0 0.951172 0
+8 21 1 0 0.951172 0
+8 21 2 0 0.951172 0
+8 21 3 0 0.951172 0
+8 21 4 0 0.951172 0
+8 21 5 0 0.951172 0
+8 21 6 0 0.951172 0
+8 21 7 0 0.951172 0
+8 21 8 0 0.951172 0
+8 21 9 0 0.951172 0
+8 21 10 0 0.95166 0
+8 21 11 0 0.95166 0
+8 21 12 0 0.952148 0
+8 21 13 0 0.955078 0
+8 21 14 0 0.959961 0
+8 21 15 0 0.965332 0.228394
+8 21 16 0 0.970703 0.381348
+8 21 17 0 0.972656 0.513672
+8 21 18 0 0.968262 0.634766
+8 21 19 0 0.956543 0.742676
+8 21 20 0 0.937012 0.834473
+8 21 21 0 0.911133 0.911621
+8 21 22 0 0.87793 0.970215
+8 21 23 0 0.838867 1
+8 21 24 0 0.797852 1
+8 21 25 0 0.754883 1
+8 21 26 0 0.710449 1
+8 21 27 0 0.666992 1
+8 21 28 0 0.625977 1
+8 21 29 0 0.587891 1
+8 21 30 0 0.553223 1
+8 21 31 0 0.520996 1
+8 22 0 0 1 0
+8 22 1 0 1 0
+8 22 2 0 1 0
+8 22 3 0 1 0
+8 22 4 0 1 0
+8 22 5 0 1 0
+8 22 6 0 1 0
+8 22 7 0 1 0
+8 22 8 0 1 0
+8 22 9 0 1 0
+8 22 10 0 1 0
+8 22 11 0 1 0
+8 22 12 0 1 0
+8 22 13 0 1 0
+8 22 14 0 1 0
+8 22 15 0 1 0.142334
+8 22 16 0 1 0.327881
+8 22 17 0 1 0.468018
+8 22 18 0 1 0.593262
+8 22 19 0 1 0.705078
+8 22 20 0 1 0.80127
+8 22 21 0 0.979004 0.883789
+8 22 22 0 0.950684 0.950684
+8 22 23 0 0.916504 1
+8 22 24 0 0.878906 1
+8 22 25 0 0.835938 1
+8 22 26 0 0.789551 1
+8 22 27 0 0.742676 1
+8 22 28 0 0.697266 1
+8 22 29 0 0.653809 1
+8 22 30 0 0.613281 1
+8 22 31 0 0.575684 1
+8 23 0 0 1 0
+8 23 1 0 1 0
+8 23 2 0 1 0
+8 23 3 0 1 0
+8 23 4 0 1 0
+8 23 5 0 1 0
+8 23 6 0 1 0
+8 23 7 0 1 0
+8 23 8 0 1 0
+8 23 9 0 1 0
+8 23 10 0 1 0
+8 23 11 0 1 0
+8 23 12 0 1 0
+8 23 13 0 1 0
+8 23 14 0 1 0
+8 23 15 0 1 0
+8 23 16 0 1 0.270264
+8 23 17 0 1 0.421143
+8 23 18 0 1 0.550293
+8 23 19 0 1 0.665527
+8 23 20 0 1 0.765137
+8 23 21 0 1 0.852051
+8 23 22 0 1 0.924316
+8 23 23 0 0.980469 0.980957
+8 23 24 0 0.947266 1
+8 23 25 0 0.907227 1
+8 23 26 0 0.861816 1
+8 23 27 0 0.813477 1
+8 23 28 0 0.764648 1
+8 23 29 0 0.717285 1
+8 23 30 0 0.671875 1
+8 23 31 0 0.629395 1
+8 24 0 0 1 0
+8 24 1 0 1 0
+8 24 2 0 1 0
+8 24 3 0 1 0
+8 24 4 0 1 0
+8 24 5 0 1 0
+8 24 6 0 1 0
+8 24 7 0 1 0
+8 24 8 0 1 0
+8 24 9 0 1 0
+8 24 10 0 1 0
+8 24 11 0 1 0
+8 24 12 0 1 0
+8 24 13 0 1 0
+8 24 14 0 1 0
+8 24 15 0 1 0
+8 24 16 0 1 0.204224
+8 24 17 0 1 0.373291
+8 24 18 0 1 0.507324
+8 24 19 0 1 0.625
+8 24 20 0 1 0.727539
+8 24 21 0 1 0.817383
+8 24 22 0 1 0.893555
+8 24 23 0 1 0.955566
+8 24 24 0 1 1
+8 24 25 0 0.96875 1
+8 24 26 0 0.925781 1
+8 24 27 0 0.87793 1
+8 24 28 0 0.828125 1
+8 24 29 0 0.777344 1
+8 24 30 0 0.728516 1
+8 24 31 0 0.682129 1
+8 25 0 0 1 0
+8 25 1 0 1 0
+8 25 2 0 1 0
+8 25 3 0 1 0
+8 25 4 0 1 0
+8 25 5 0 1 0
+8 25 6 0 1 0
+8 25 7 0 1 0
+8 25 8 0 1 0
+8 25 9 0 1 0
+8 25 10 0 1 0
+8 25 11 0 1 0
+8 25 12 0 1 0
+8 25 13 0 1 0
+8 25 14 0 1 0
+8 25 15 0 1 0
+8 25 16 0 1 0.104248
+8 25 17 0 1 0.318359
+8 25 18 0 1 0.459473
+8 25 19 0 1 0.57959
+8 25 20 0 1 0.68457
+8 25 21 0 1 0.777344
+8 25 22 0 1 0.85791
+8 25 23 0 1 0.923828
+8 25 24 0 1 0.978027
+8 25 25 0 1 1
+8 25 26 0 0.986816 1
+8 25 27 0 0.941406 1
+8 25 28 0 0.891602 1
+8 25 29 0 0.839355 1
+8 25 30 0 0.787598 1
+8 25 31 0 0.737793 1
+8 26 0 0 1 0
+8 26 1 0 1 0
+8 26 2 0 1 0
+8 26 3 0 1 0
+8 26 4 0 1 0
+8 26 5 0 1 0
+8 26 6 0 1 0
+8 26 7 0 1 0
+8 26 8 0 1 0
+8 26 9 0 1 0
+8 26 10 0 1 0
+8 26 11 0 1 0
+8 26 12 0 1 0
+8 26 13 0 1 0
+8 26 14 0 1 0
+8 26 15 0 1 0
+8 26 16 0 1 0
+8 26 17 0 1 0.25293
+8 26 18 0 1 0.40625
+8 26 19 0 1 0.529785
+8 26 20 0 1 0.636719
+8 26 21 0 1 0.732422
+8 26 22 0 1 0.815918
+8 26 23 0 1 0.885742
+8 26 24 0 1 0.943848
+8 26 25 0 1 0.99707
+8 26 26 0 1 1
+8 26 27 0 1 1
+8 26 28 0 0.953613 1
+8 26 29 0 0.901855 1
+8 26 30 0 0.848633 1
+8 26 31 0 0.795898 1
+8 27 0 0 1 0
+8 27 1 0 1 0
+8 27 2 0 1 0
+8 27 3 0 1 0
+8 27 4 0 1 0
+8 27 5 0 1 0
+8 27 6 0 1 0
+8 27 7 0 1 0
+8 27 8 0 1 0
+8 27 9 0 1 0
+8 27 10 0 1 0
+8 27 11 0 1 0
+8 27 12 0 1 0
+8 27 13 0 1 0
+8 27 14 0 1 0
+8 27 15 0 1 0
+8 27 16 0 1 0
+8 27 17 0 1 0.166138
+8 27 18 0 1 0.34668
+8 27 19 0 1 0.47583
+8 27 20 0 1 0.584961
+8 27 21 0 1 0.682617
+8 27 22 0 1 0.768555
+8 27 23 0 1 0.841309
+8 27 24 0 1 0.90332
+8 27 25 0 1 0.960938
+8 27 26 0 1 1
+8 27 27 0 1 1
+8 27 28 0 1 1
+8 27 29 0 0.962402 1
+8 27 30 0 0.908691 1
+8 27 31 0 0.854492 1
+8 28 0 0 1 0
+8 28 1 0 1 0
+8 28 2 0 1 0
+8 28 3 0 1 0
+8 28 4 0 1 0
+8 28 5 0 1 0
+8 28 6 0 1 0
+8 28 7 0 1 0
+8 28 8 0 1 0
+8 28 9 0 1 0
+8 28 10 0 1 0
+8 28 11 0 1 0
+8 28 12 0 1 0
+8 28 13 0 1 0
+8 28 14 0 1 0
+8 28 15 0 1 0
+8 28 16 0 1 0
+8 28 17 0 1 0
+8 28 18 0 1 0.278076
+8 28 19 0 1 0.417236
+8 28 20 0 1 0.529297
+8 28 21 0 1 0.62793
+8 28 22 0 1 0.71582
+8 28 23 0 1 0.791016
+8 28 24 0 1 0.856445
+8 28 25 0 1 0.91748
+8 28 26 0 1 0.974121
+8 28 27 0 1 1
+8 28 28 0 1 1
+8 28 29 0 1 1
+8 28 30 0 0.968262 1
+8 28 31 0 0.914062 1
+8 29 0 0 1 0
+8 29 1 0 1 0
+8 29 2 0 1 0
+8 29 3 0 1 0
+8 29 4 0 1 0
+8 29 5 0 1 0
+8 29 6 0 1 0
+8 29 7 0 1 0
+8 29 8 0 1 0
+8 29 9 0 1 0
+8 29 10 0 1 0
+8 29 11 0 1 0
+8 29 12 0 1 0
+8 29 13 0 1 0
+8 29 14 0 1 0
+8 29 15 0 1 0
+8 29 16 0 1 0
+8 29 17 0 1 0
+8 29 18 0 1 0.19104
+8 29 19 0 1 0.352051
+8 29 20 0 1 0.46875
+8 29 21 0 1 0.569336
+8 29 22 0 1 0.658203
+8 29 23 0 1 0.735352
+8 29 24 0 1 0.802734
+8 29 25 0 1 0.867188
+8 29 26 0 1 0.928223
+8 29 27 0 1 0.983398
+8 29 28 0 1 1
+8 29 29 0 1 1
+8 29 30 0 1 1
+8 29 31 0 0.973145 1
+8 30 0 0 1 0
+8 30 1 0 1 0
+8 30 2 0 1 0
+8 30 3 0 1 0
+8 30 4 0 1 0
+8 30 5 0 1 0
+8 30 6 0 1 0
+8 30 7 0 1 0
+8 30 8 0 1 0
+8 30 9 0 1 0
+8 30 10 0 1 0
+8 30 11 0 1 0
+8 30 12 0 1 0
+8 30 13 0 1 0
+8 30 14 0 1 0
+8 30 15 0 1 0
+8 30 16 0 1 0
+8 30 17 0 1 0
+8 30 18 0 1 0.0224152
+8 30 19 0 1 0.277588
+8 30 20 0 1 0.403564
+8 30 21 0 1 0.506836
+8 30 22 0 1 0.59668
+8 30 23 0 1 0.674805
+8 30 24 0 1 0.743652
+8 30 25 0 1 0.810547
+8 30 26 0 1 0.874512
+8 30 27 0 1 0.935059
+8 30 28 0 1 0.989746
+8 30 29 0 1 1
+8 30 30 0 1 1
+8 30 31 0 1 1
+8 31 0 0 1 0
+8 31 1 0 1 0
+8 31 2 0 1 0
+8 31 3 0 1 0
+8 31 4 0 1 0
+8 31 5 0 1 0
+8 31 6 0 1 0
+8 31 7 0 1 0
+8 31 8 0 1 0
+8 31 9 0 1 0
+8 31 10 0 1 0
+8 31 11 0 1 0
+8 31 12 0 1 0
+8 31 13 0 1 0
+8 31 14 0 1 0
+8 31 15 0 1 0
+8 31 16 0 1 0
+8 31 17 0 1 0
+8 31 18 0 1 0
+8 31 19 0 1 0.184082
+8 31 20 0 1 0.331787
+8 31 21 0 1 0.439941
+8 31 22 0 1 0.531738
+8 31 23 0 1 0.610352
+8 31 24 0 1 0.680176
+8 31 25 0 1 0.748535
+8 31 26 0 1 0.81543
+8 31 27 0 1 0.879883
+8 31 28 0 1 0.94043
+8 31 29 0 1 0.995117
+8 31 30 0 1 1
+8 31 31 0 1 1
+9 0 0 0.168091 0 0
+9 0 1 0.168091 0 0
+9 0 2 0.167969 0 0
+9 0 3 0.167969 0 0
+9 0 4 0.168091 0 0
+9 0 5 0.168335 0 0
+9 0 6 0.165649 0 0.0096283
+9 0 7 0.158447 0 0.0338135
+9 0 8 0.125732 0 0.055603
+9 0 9 0.101624 0.00250053 0.0772705
+9 0 10 0.092041 0.00553894 0.118469
+9 0 11 0.072937 0.0113373 0.172485
+9 0 12 0.0172729 0.0215302 0.237915
+9 0 13 0 0.0379944 0.313477
+9 0 14 0 0.0597534 0.397949
+9 0 15 0 0.0831909 0.489014
+9 0 16 0 0.107788 0.584961
+9 0 17 0 0.131714 0.678711
+9 0 18 0 0.153809 0.765137
+9 0 19 0 0.173462 0.841797
+9 0 20 0 0.184692 0.885742
+9 0 21 0 0.186768 0.894043
+9 0 22 0 0.189087 0.902832
+9 0 23 0 0.191406 0.911621
+9 0 24 0 0.193604 0.920898
+9 0 25 0 0.196167 0.930664
+9 0 26 0 0.199097 0.941895
+9 0 27 0 0.202148 0.954102
+9 0 28 0 0.205688 0.968262
+9 0 29 0 0.209473 0.98291
+9 0 30 0 0.213501 0.998535
+9 0 31 0 0.217529 1
+9 1 0 0.167725 0 0
+9 1 1 0.167725 0 0
+9 1 2 0.167725 0 0
+9 1 3 0.167725 0 0
+9 1 4 0.167725 0 0
+9 1 5 0.167969 0 0
+9 1 6 0.165405 0 0.00953674
+9 1 7 0.158325 0 0.0337524
+9 1 8 0.125854 0 0.0556335
+9 1 9 0.101501 0.00272942 0.0772705
+9 1 10 0.09198 0.00576782 0.118469
+9 1 11 0.072876 0.0115814 0.172363
+9 1 12 0.0171051 0.0217896 0.237915
+9 1 13 0 0.0382385 0.313477
+9 1 14 0 0.0599365 0.397949
+9 1 15 0 0.083313 0.489014
+9 1 16 0 0.107849 0.584961
+9 1 17 0 0.131714 0.678711
+9 1 18 0 0.153931 0.765137
+9 1 19 0 0.173462 0.841797
+9 1 20 0 0.184692 0.885742
+9 1 21 0 0.18689 0.894043
+9 1 22 0 0.189087 0.902832
+9 1 23 0 0.191406 0.911621
+9 1 24 0 0.193726 0.920898
+9 1 25 0 0.196289 0.930664
+9 1 26 0 0.199097 0.941895
+9 1 27 0 0.202148 0.954102
+9 1 28 0 0.205688 0.968262
+9 1 29 0 0.209473 0.98291
+9 1 30 0 0.213501 0.998535
+9 1 31 0 0.217529 1
+9 2 0 0.167236 0 0
+9 2 1 0.167236 0 0
+9 2 2 0.167236 0 0
+9 2 3 0.167236 0 0
+9 2 4 0.167236 0 0
+9 2 5 0.167603 0 0
+9 2 6 0.165161 0 0.00938416
+9 2 7 0.158203 0 0.0335999
+9 2 8 0.125854 0 0.0556946
+9 2 9 0.101379 0.00313377 0.0772705
+9 2 10 0.0917969 0.00617981 0.118408
+9 2 11 0.0726318 0.0120163 0.172363
+9 2 12 0.0167999 0.0222321 0.237915
+9 2 13 0 0.0386963 0.313477
+9 2 14 0 0.0602722 0.397949
+9 2 15 0 0.0835571 0.489014
+9 2 16 0 0.108032 0.584961
+9 2 17 0 0.131958 0.678711
+9 2 18 0 0.154053 0.765137
+9 2 19 0 0.173584 0.841797
+9 2 20 0 0.184814 0.885742
+9 2 21 0 0.18689 0.894043
+9 2 22 0 0.189087 0.902832
+9 2 23 0 0.191406 0.911621
+9 2 24 0 0.193726 0.920898
+9 2 25 0 0.196289 0.930664
+9 2 26 0 0.199097 0.941895
+9 2 27 0 0.202271 0.954102
+9 2 28 0 0.205811 0.968262
+9 2 29 0 0.209595 0.98291
+9 2 30 0 0.213501 0.998535
+9 2 31 0 0.217529 1
+9 3 0 0.16626 0 0
+9 3 1 0.16626 0 0
+9 3 2 0.16626 0 0
+9 3 3 0.16626 0 0
+9 3 4 0.16626 0 0
+9 3 5 0.166748 0 0
+9 3 6 0.164673 0 0.00910187
+9 3 7 0.157837 0 0.0333557
+9 3 8 0.125977 0 0.0558167
+9 3 9 0.101135 0.00387573 0.0772095
+9 3 10 0.0915527 0.0069313 0.118408
+9 3 11 0.0723267 0.0128021 0.172363
+9 3 12 0.0162506 0.023056 0.237915
+9 3 13 0 0.0395203 0.313477
+9 3 14 0 0.0608826 0.397705
+9 3 15 0 0.0840454 0.489014
+9 3 16 0 0.108398 0.584961
+9 3 17 0 0.132202 0.678711
+9 3 18 0 0.154175 0.765137
+9 3 19 0 0.173828 0.841797
+9 3 20 0 0.184937 0.885742
+9 3 21 0 0.187012 0.894043
+9 3 22 0 0.189209 0.902832
+9 3 23 0 0.191528 0.911621
+9 3 24 0 0.193726 0.920898
+9 3 25 0 0.196289 0.930664
+9 3 26 0 0.199097 0.941895
+9 3 27 0 0.202271 0.954102
+9 3 28 0 0.205811 0.968262
+9 3 29 0 0.209595 0.98291
+9 3 30 0 0.213501 0.998535
+9 3 31 0 0.217529 1
+9 4 0 0.164429 0 0
+9 4 1 0.164429 0 0
+9 4 2 0.164429 0 0
+9 4 3 0.164307 0 0
+9 4 4 0.164429 0 0
+9 4 5 0.165039 0 0
+9 4 6 0.163452 0 0.00858307
+9 4 7 0.157227 0 0.0328369
+9 4 8 0.126221 0 0.0560303
+9 4 9 0.100708 0.00527573 0.0771484
+9 4 10 0.0910034 0.00835419 0.118347
+9 4 11 0.0716553 0.0142975 0.172363
+9 4 12 0.0152206 0.0245972 0.237915
+9 4 13 0 0.0410767 0.313477
+9 4 14 0 0.0620422 0.397705
+9 4 15 0 0.0848999 0.489014
+9 4 16 0 0.10907 0.584961
+9 4 17 0 0.13269 0.678711
+9 4 18 0 0.154663 0.765137
+9 4 19 0 0.174072 0.841797
+9 4 20 0 0.185181 0.885742
+9 4 21 0 0.187256 0.894043
+9 4 22 0 0.189331 0.902832
+9 4 23 0 0.19165 0.911621
+9 4 24 0 0.193848 0.920898
+9 4 25 0 0.196411 0.930664
+9 4 26 0 0.199219 0.941895
+9 4 27 0 0.202393 0.954102
+9 4 28 0 0.205811 0.968262
+9 4 29 0 0.209595 0.98291
+9 4 30 0 0.213501 0.998535
+9 4 31 0 0.217651 1
+9 5 0 0.160645 0 0
+9 5 1 0.160645 0 0
+9 5 2 0.160645 0 0
+9 5 3 0.160522 0 0
+9 5 4 0.160645 0 0
+9 5 5 0.161621 0 0
+9 5 6 0.160889 0 0.00762939
+9 5 7 0.155518 0 0.0317688
+9 5 8 0.126831 0.00203514 0.0564575
+9 5 9 0.0997925 0.00798035 0.0769653
+9 5 10 0.0900269 0.0111008 0.118164
+9 5 11 0.0703735 0.0171814 0.172241
+9 5 12 0.0132217 0.0275879 0.237793
+9 5 13 0 0.0439453 0.313232
+9 5 14 0 0.064209 0.397705
+9 5 15 0 0.0865479 0.489014
+9 5 16 0 0.110291 0.584961
+9 5 17 0 0.133667 0.678711
+9 5 18 0 0.155396 0.765137
+9 5 19 0 0.174683 0.841797
+9 5 20 0 0.185669 0.885742
+9 5 21 0 0.187622 0.894043
+9 5 22 0 0.189697 0.902832
+9 5 23 0 0.191895 0.911621
+9 5 24 0 0.194092 0.920898
+9 5 25 0 0.196655 0.930664
+9 5 26 0 0.199341 0.941895
+9 5 27 0 0.202515 0.954102
+9 5 28 0 0.205933 0.968262
+9 5 29 0 0.209717 0.98291
+9 5 30 0 0.213623 0.998535
+9 5 31 0 0.217651 1
+9 6 0 0.152954 0.0104523 0
+9 6 1 0.152954 0.0104904 0
+9 6 2 0.152954 0.0105591 0
+9 6 3 0.152832 0.0106735 0
+9 6 4 0.152832 0.0108719 0
+9 6 5 0.154175 0.0110016 0
+9 6 6 0.154785 0.0103683 0.00608063
+9 6 7 0.151611 0.00917816 0.0296173
+9 6 8 0.127808 0.00920105 0.0572815
+9 6 9 0.0980225 0.0131454 0.0765991
+9 6 10 0.0880737 0.0163422 0.11792
+9 6 11 0.0678101 0.0226746 0.171997
+9 6 12 0.00939941 0.0332947 0.237671
+9 6 13 0 0.0491638 0.313232
+9 6 14 0 0.0682373 0.397705
+9 6 15 0 0.0896606 0.489014
+9 6 16 0 0.112671 0.584961
+9 6 17 0 0.135498 0.678711
+9 6 18 0 0.15686 0.765137
+9 6 19 0 0.175781 0.841797
+9 6 20 0 0.186646 0.885742
+9 6 21 0 0.188354 0.894043
+9 6 22 0 0.190308 0.902832
+9 6 23 0 0.192383 0.911621
+9 6 24 0 0.19458 0.920898
+9 6 25 0 0.197021 0.930664
+9 6 26 0 0.199707 0.941895
+9 6 27 0 0.202759 0.954102
+9 6 28 0 0.206177 0.968262
+9 6 29 0 0.209961 0.98291
+9 6 30 0 0.213867 0.998535
+9 6 31 0 0.217896 1
+9 7 0 0.137573 0.0276947 0
+9 7 1 0.137573 0.0277252 0
+9 7 2 0.137573 0.027771 0
+9 7 3 0.137451 0.0278473 0
+9 7 4 0.137329 0.0280151 0
+9 7 5 0.138428 0.0283356 0
+9 7 6 0.139893 0.0285492 0.00434494
+9 7 7 0.14209 0.0285339 0.0254669
+9 7 8 0.12915 0.0252228 0.0584412
+9 7 9 0.0946045 0.0232086 0.0759888
+9 7 10 0.0841675 0.026535 0.117493
+9 7 11 0.0626831 0.0333862 0.171631
+9 7 12 0.00197601 0.04422 0.237427
+9 7 13 0 0.0583496 0.312988
+9 7 14 0 0.0755615 0.397705
+9 7 15 0 0.0953979 0.489014
+9 7 16 0 0.117126 0.584961
+9 7 17 0 0.138916 0.678711
+9 7 18 0 0.159546 0.765137
+9 7 19 0 0.178101 0.841797
+9 7 20 0 0.188354 0.88623
+9 7 21 0 0.189697 0.894043
+9 7 22 0 0.191528 0.902832
+9 7 23 0 0.193359 0.912109
+9 7 24 0 0.195435 0.920898
+9 7 25 0 0.197754 0.930664
+9 7 26 0 0.200317 0.941895
+9 7 27 0 0.203247 0.954102
+9 7 28 0 0.206665 0.968262
+9 7 29 0 0.210327 0.98291
+9 7 30 0 0.214111 0.998535
+9 7 31 0 0.21814 1
+9 8 0 0.114014 0.0487366 0
+9 8 1 0.114014 0.0487671 0
+9 8 2 0.114014 0.0487671 0
+9 8 3 0.114014 0.0488281 0
+9 8 4 0.113953 0.0489502 0
+9 8 5 0.113647 0.0490723 0
+9 8 6 0.11322 0.0493469 0.00498962
+9 8 7 0.113464 0.0504761 0.0195618
+9 8 8 0.11792 0.0542908 0.0532227
+9 8 9 0.0874634 0.0427856 0.074707
+9 8 10 0.0761108 0.0461426 0.116577
+9 8 11 0.0516968 0.052887 0.170898
+9 8 12 0 0.0621033 0.236938
+9 8 13 0 0.0738525 0.312744
+9 8 14 0 0.0884399 0.397461
+9 8 15 0 0.105774 0.489014
+9 8 16 0 0.125488 0.584961
+9 8 17 0 0.145508 0.678711
+9 8 18 0 0.164795 0.765137
+9 8 19 0 0.182251 0.842285
+9 8 20 0 0.191895 0.88623
+9 8 21 0 0.192505 0.894531
+9 8 22 0 0.193726 0.90332
+9 8 23 0 0.195312 0.912109
+9 8 24 0 0.197021 0.920898
+9 8 25 0 0.199097 0.931152
+9 8 26 0 0.201538 0.941895
+9 8 27 0 0.204346 0.954102
+9 8 28 0 0.20752 0.968262
+9 8 29 0 0.21106 0.98291
+9 8 30 0 0.214844 0.998535
+9 8 31 0 0.21875 1
+9 9 0 0.0995483 0.0823364 0
+9 9 1 0.0995483 0.0823364 0
+9 9 2 0.0995483 0.0823364 0
+9 9 3 0.0995483 0.0823975 0
+9 9 4 0.0996094 0.0824585 0
+9 9 5 0.0993042 0.0825195 0
+9 9 6 0.0973511 0.0817871 0.00404358
+9 9 7 0.0935669 0.0803833 0.0177307
+9 9 8 0.0862427 0.0776367 0.0421143
+9 9 9 0.0722656 0.0722656 0.0722656
+9 9 10 0.0584106 0.0750122 0.115051
+9 9 11 0.0260315 0.0808105 0.169678
+9 9 12 0 0.088501 0.235962
+9 9 13 0 0.0978394 0.312012
+9 9 14 0 0.109436 0.396973
+9 9 15 0 0.123535 0.48877
+9 9 16 0 0.140015 0.584961
+9 9 17 0 0.157349 0.678711
+9 9 18 0 0.174438 0.765137
+9 9 19 0 0.190186 0.842285
+9 9 20 0 0.198364 0.886719
+9 9 21 0 0.197754 0.89502
+9 9 22 0 0.197998 0.903809
+9 9 23 0 0.198853 0.912598
+9 9 24 0 0.200073 0.921387
+9 9 25 0 0.201782 0.931152
+9 9 26 0 0.203735 0.942383
+9 9 27 0 0.206299 0.95459
+9 9 28 0 0.209229 0.968262
+9 9 29 0 0.212524 0.983398
+9 9 30 0 0.216064 0.998535
+9 9 31 0 0.219727 1
+9 10 0 0.0599976 0.116333 0
+9 10 1 0.0599976 0.116333 0
+9 10 2 0.0599976 0.116333 0
+9 10 3 0.0599976 0.116394 0
+9 10 4 0.0600281 0.116455 0
+9 10 5 0.0600586 0.116577 0
+9 10 6 0.0586853 0.115967 0
+9 10 7 0.0548706 0.11438 0.00850677
+9 10 8 0.0476379 0.111694 0.0317383
+9 10 9 0.0351868 0.110107 0.0679932
+9 10 10 0.0148163 0.112488 0.112488
+9 10 11 0 0.117554 0.167725
+9 10 12 0 0.124084 0.234253
+9 10 13 0 0.13147 0.310791
+9 10 14 0 0.140137 0.39624
+9 10 15 0 0.150635 0.488281
+9 10 16 0 0.163208 0.584961
+9 10 17 0 0.17688 0.678711
+9 10 18 0 0.190674 0.765625
+9 10 19 0 0.203613 0.842285
+9 10 20 0 0.209717 0.887695
+9 10 21 0 0.206787 0.895508
+9 10 22 0 0.205566 0.904297
+9 10 23 0 0.2052 0.913086
+9 10 24 0 0.205566 0.921875
+9 10 25 0 0.206421 0.931641
+9 10 26 0 0.207886 0.942871
+9 10 27 0 0.209717 0.955078
+9 10 28 0 0.21228 0.96875
+9 10 29 0 0.21521 0.983398
+9 10 30 0 0.218384 0.999023
+9 10 31 0 0.22168 1
+9 11 0 0 0.1604 0
+9 11 1 0 0.1604 0
+9 11 2 0 0.1604 0
+9 11 3 0 0.160522 0
+9 11 4 0 0.160522 0
+9 11 5 0 0.160645 0
+9 11 6 0 0.160767 0
+9 11 7 0 0.160156 0
+9 11 8 0 0.15918 0.0189667
+9 11 9 0 0.15918 0.0605469
+9 11 10 0 0.160889 0.108521
+9 11 11 0 0.164551 0.164551
+9 11 12 0 0.1698 0.231567
+9 11 13 0 0.175537 0.308838
+9 11 14 0 0.181763 0.39502
+9 11 15 0 0.188843 0.487549
+9 11 16 0 0.197266 0.584473
+9 11 17 0 0.206421 0.678711
+9 11 18 0 0.215942 0.765625
+9 11 19 0 0.22522 0.842773
+9 11 20 0 0.228149 0.88916
+9 11 21 0 0.221924 0.896973
+9 11 22 0 0.21814 0.905273
+9 11 23 0 0.215942 0.914062
+9 11 24 0 0.214844 0.922852
+9 11 25 0 0.214478 0.932617
+9 11 26 0 0.214844 0.943359
+9 11 27 0 0.21582 0.955566
+9 11 28 0 0.217529 0.969238
+9 11 29 0 0.219727 0.983887
+9 11 30 0 0.22229 0.999512
+9 11 31 0 0.225098 1
+9 12 0 0 0.220825 0
+9 12 1 0 0.220825 0
+9 12 2 0 0.220825 0
+9 12 3 0 0.220825 0
+9 12 4 0 0.220947 0
+9 12 5 0 0.220947 0
+9 12 6 0 0.221069 0
+9 12 7 0 0.221191 0
+9 12 8 0 0.220947 0
+9 12 9 0 0.220947 0.0437317
+9 12 10 0 0.22168 0.0999756
+9 12 11 0 0.223633 0.159058
+9 12 12 0 0.227051 0.227173
+9 12 13 0 0.231445 0.305176
+9 12 14 0 0.235596 0.392578
+9 12 15 0 0.239502 0.486084
+9 12 16 0 0.243896 0.583496
+9 12 17 0 0.248291 0.678223
+9 12 18 0 0.25293 0.765625
+9 12 19 0 0.257568 0.843262
+9 12 20 0 0.256592 0.89209
+9 12 21 0 0.245483 0.899414
+9 12 22 0 0.238037 0.907227
+9 12 23 0 0.233032 0.916016
+9 12 24 0 0.229858 0.924316
+9 12 25 0 0.227539 0.934082
+9 12 26 0 0.226196 0.944824
+9 12 27 0 0.225708 0.956543
+9 12 28 0 0.226196 0.970215
+9 12 29 0 0.227173 0.984863
+9 12 30 0 0.22876 1
+9 12 31 0 0.230713 1
+9 13 0 0 0.292725 0
+9 13 1 0 0.292725 0
+9 13 2 0 0.292725 0
+9 13 3 0 0.292725 0
+9 13 4 0 0.292725 0
+9 13 5 0 0.292725 0
+9 13 6 0 0.292725 0
+9 13 7 0 0.292969 0
+9 13 8 0 0.292969 0
+9 13 9 0 0.293213 0.00643539
+9 13 10 0 0.293701 0.0805664
+9 13 11 0 0.294678 0.147949
+9 13 12 0 0.296387 0.219482
+9 13 13 0 0.299072 0.299316
+9 13 14 0 0.301514 0.387939
+9 13 15 0 0.302979 0.483154
+9 13 16 0 0.303955 0.582031
+9 13 17 0 0.303711 0.677734
+9 13 18 0 0.303223 0.766113
+9 13 19 0 0.302734 0.84375
+9 13 20 0 0.297119 0.895508
+9 13 21 0 0.280029 0.902832
+9 13 22 0 0.267578 0.910645
+9 13 23 0 0.258789 0.918945
+9 13 24 0 0.252441 0.927246
+9 13 25 0 0.247559 0.936523
+9 13 26 0 0.243774 0.946777
+9 13 27 0 0.241211 0.958496
+9 13 28 0 0.239624 0.972168
+9 13 29 0 0.239014 0.986328
+9 13 30 0 0.239014 1
+9 13 31 0 0.239746 1
+9 14 0 0 0.374268 0
+9 14 1 0 0.374268 0
+9 14 2 0 0.374268 0
+9 14 3 0 0.374268 0
+9 14 4 0 0.374268 0
+9 14 5 0 0.374268 0
+9 14 6 0 0.374268 0
+9 14 7 0 0.374512 0
+9 14 8 0 0.374756 0
+9 14 9 0 0.375 0
+9 14 10 0 0.375488 0.0328674
+9 14 11 0 0.376221 0.125366
+9 14 12 0 0.377441 0.205078
+9 14 13 0 0.378662 0.288818
+9 14 14 0 0.379883 0.379883
+9 14 15 0 0.379395 0.477295
+9 14 16 0 0.377441 0.578613
+9 14 17 0 0.373047 0.67627
+9 14 18 0 0.367432 0.765625
+9 14 19 0 0.361572 0.844238
+9 14 20 0 0.351807 0.900879
+9 14 21 0 0.327393 0.908203
+9 14 22 0 0.308838 0.916016
+9 14 23 0 0.295166 0.923828
+9 14 24 0 0.285156 0.931641
+9 14 25 0 0.276611 0.94043
+9 14 26 0 0.269531 0.950684
+9 14 27 0 0.263916 0.961914
+9 14 28 0 0.259766 0.974609
+9 14 29 0 0.256836 0.98877
+9 14 30 0 0.254639 1
+9 14 31 0 0.253418 1
+9 15 0 0 0.463135 0
+9 15 1 0 0.463135 0
+9 15 2 0 0.463135 0
+9 15 3 0 0.463135 0
+9 15 4 0 0.463135 0
+9 15 5 0 0.463135 0
+9 15 6 0 0.463379 0
+9 15 7 0 0.463379 0
+9 15 8 0 0.463623 0
+9 15 9 0 0.463867 0
+9 15 10 0 0.464355 0
+9 15 11 0 0.465332 0.0789185
+9 15 12 0 0.466553 0.179077
+9 15 13 0 0.467773 0.270752
+9 15 14 0 0.468262 0.366211
+9 15 15 0 0.467041 0.467285
+9 15 16 0 0.462891 0.571289
+9 15 17 0 0.455322 0.671875
+9 15 18 0 0.445312 0.763672
+9 15 19 0 0.434326 0.84375
+9 15 20 0 0.421387 0.907227
+9 15 21 0 0.388672 0.916016
+9 15 22 0 0.363281 0.923828
+9 15 23 0 0.343994 0.931152
+9 15 24 0 0.329102 0.938477
+9 15 25 0 0.316162 0.947266
+9 15 26 0 0.304932 0.956543
+9 15 27 0 0.295654 0.966797
+9 15 28 0 0.288086 0.979492
+9 15 29 0 0.281738 0.992676
+9 15 30 0 0.276855 1
+9 15 31 0 0.272949 1
+9 16 0 0 0.558105 0
+9 16 1 0 0.558105 0
+9 16 2 0 0.558105 0
+9 16 3 0 0.558105 0
+9 16 4 0 0.558105 0
+9 16 5 0 0.558105 0
+9 16 6 0 0.558105 0
+9 16 7 0 0.558105 0
+9 16 8 0 0.558105 0
+9 16 9 0 0.558105 0
+9 16 10 0 0.559082 0
+9 16 11 0 0.560059 0
+9 16 12 0 0.561523 0.13269
+9 16 13 0 0.562988 0.240967
+9 16 14 0 0.563965 0.344238
+9 16 15 0 0.562988 0.450195
+9 16 16 0 0.558594 0.558594
+9 16 17 0 0.548828 0.663086
+9 16 18 0 0.535645 0.758301
+9 16 19 0 0.52002 0.841309
+9 16 20 0 0.503418 0.909668
+9 16 21 0 0.465088 0.925781
+9 16 22 0 0.432129 0.935059
+9 16 23 0 0.406494 0.942871
+9 16 24 0 0.385742 0.949707
+9 16 25 0 0.367676 0.957031
+9 16 26 0 0.351562 0.96582
+9 16 27 0 0.337402 0.975098
+9 16 28 0 0.325684 0.986816
+9 16 29 0 0.31543 0.999023
+9 16 30 0 0.306885 1
+9 16 31 0 0.299805 1
+9 17 0 0 0.652344 0
+9 17 1 0 0.652344 0
+9 17 2 0 0.652344 0
+9 17 3 0 0.652344 0
+9 17 4 0 0.652344 0
+9 17 5 0 0.652344 0
+9 17 6 0 0.652344 0
+9 17 7 0 0.652344 0
+9 17 8 0 0.652344 0
+9 17 9 0 0.652832 0
+9 17 10 0 0.652832 0
+9 17 11 0 0.654297 0
+9 17 12 0 0.65625 0.0236511
+9 17 13 0 0.658691 0.195068
+9 17 14 0 0.660645 0.311523
+9 17 15 0 0.660645 0.424072
+9 17 16 0 0.656738 0.538086
+9 17 17 0 0.647461 0.647461
+9 17 18 0 0.632324 0.747559
+9 17 19 0 0.61377 0.834961
+9 17 20 0 0.593262 0.90625
+9 17 21 0 0.553223 0.935547
+9 17 22 0 0.51416 0.949219
+9 17 23 0 0.481689 0.958008
+9 17 24 0 0.455078 0.965332
+9 17 25 0 0.430908 0.972168
+9 17 26 0 0.408936 0.979492
+9 17 27 0 0.389404 0.987793
+9 17 28 0 0.372559 0.997559
+9 17 29 0 0.357666 1
+9 17 30 0 0.344971 1
+9 17 31 0 0.33374 1
+9 18 0 0 0.741211 0
+9 18 1 0 0.741211 0
+9 18 2 0 0.741211 0
+9 18 3 0 0.741211 0
+9 18 4 0 0.741211 0
+9 18 5 0 0.741211 0
+9 18 6 0 0.741211 0
+9 18 7 0 0.741211 0
+9 18 8 0 0.741211 0
+9 18 9 0 0.741699 0
+9 18 10 0 0.741699 0
+9 18 11 0 0.742188 0
+9 18 12 0 0.744629 0
+9 18 13 0 0.747559 0.119446
+9 18 14 0 0.750488 0.266113
+9 18 15 0 0.752441 0.388672
+9 18 16 0 0.750977 0.508301
+9 18 17 0 0.743652 0.624023
+9 18 18 0 0.729492 0.72998
+9 18 19 0 0.709961 0.822266
+9 18 20 0 0.687012 0.897949
+9 18 21 0 0.647949 0.941406
+9 18 22 0 0.605469 0.963867
+9 18 23 0 0.567383 0.976074
+9 18 24 0 0.534668 0.984375
+9 18 25 0 0.504395 0.991211
+9 18 26 0 0.476318 0.997559
+9 18 27 0 0.450684 1
+9 18 28 0 0.427979 1
+9 18 29 0 0.407715 1
+9 18 30 0 0.389893 1
+9 18 31 0 0.374023 1
+9 19 0 0 0.821777 0
+9 19 1 0 0.821777 0
+9 19 2 0 0.821777 0
+9 19 3 0 0.821777 0
+9 19 4 0 0.821777 0
+9 19 5 0 0.821777 0
+9 19 6 0 0.821777 0
+9 19 7 0 0.821777 0
+9 19 8 0 0.821777 0
+9 19 9 0 0.821777 0
+9 19 10 0 0.822266 0
+9 19 11 0 0.822266 0
+9 19 12 0 0.824219 0
+9 19 13 0 0.827148 0
+9 19 14 0 0.831055 0.204956
+9 19 15 0 0.834961 0.344482
+9 19 16 0 0.835938 0.47168
+9 19 17 0 0.831543 0.592773
+9 19 18 0 0.820312 0.70459
+9 19 19 0 0.802246 0.802246
+9 19 20 0 0.77832 0.883301
+9 19 21 0 0.743164 0.94043
+9 19 22 0 0.700684 0.974609
+9 19 23 0 0.65918 0.993652
+9 19 24 0 0.621582 1
+9 19 25 0 0.585449 1
+9 19 26 0 0.550781 1
+9 19 27 0 0.519043 1
+9 19 28 0 0.48999 1
+9 19 29 0 0.463867 1
+9 19 30 0 0.44043 1
+9 19 31 0 0.419678 1
+9 20 0 0 0.891602 0
+9 20 1 0 0.891602 0
+9 20 2 0 0.891602 0
+9 20 3 0 0.891602 0
+9 20 4 0 0.891602 0
+9 20 5 0 0.891602 0
+9 20 6 0 0.891602 0
+9 20 7 0 0.891602 0
+9 20 8 0 0.891602 0
+9 20 9 0 0.89209 0
+9 20 10 0 0.89209 0
+9 20 11 0 0.89209 0
+9 20 12 0 0.893066 0
+9 20 13 0 0.896484 0
+9 20 14 0 0.900879 0.114014
+9 20 15 0 0.905762 0.292236
+9 20 16 0 0.90918 0.429443
+9 20 17 0 0.908203 0.555664
+9 20 18 0 0.899902 0.672363
+9 20 19 0 0.884277 0.775879
+9 20 20 0 0.861816 0.862305
+9 20 21 0 0.832031 0.931152
+9 20 22 0 0.792969 0.978027
+9 20 23 0 0.750977 1
+9 20 24 0 0.710449 1
+9 20 25 0 0.669434 1
+9 20 26 0 0.629395 1
+9 20 27 0 0.591309 1
+9 20 28 0 0.556152 1
+9 20 29 0 0.523926 1
+9 20 30 0 0.494873 1
+9 20 31 0 0.46875 1
+9 21 0 0 0.95166 0
+9 21 1 0 0.95166 0
+9 21 2 0 0.95166 0
+9 21 3 0 0.95166 0
+9 21 4 0 0.95166 0
+9 21 5 0 0.95166 0
+9 21 6 0 0.95166 0
+9 21 7 0 0.95166 0
+9 21 8 0 0.95166 0
+9 21 9 0 0.95166 0
+9 21 10 0 0.95166 0
+9 21 11 0 0.95166 0
+9 21 12 0 0.952148 0
+9 21 13 0 0.955078 0
+9 21 14 0 0.959961 0
+9 21 15 0 0.96582 0.228271
+9 21 16 0 0.970703 0.381348
+9 21 17 0 0.972656 0.513672
+9 21 18 0 0.96875 0.634766
+9 21 19 0 0.956543 0.742676
+9 21 20 0 0.9375 0.834473
+9 21 21 0 0.911133 0.911621
+9 21 22 0 0.87793 0.970215
+9 21 23 0 0.838867 1
+9 21 24 0 0.79834 1
+9 21 25 0 0.754883 1
+9 21 26 0 0.710449 1
+9 21 27 0 0.66748 1
+9 21 28 0 0.625977 1
+9 21 29 0 0.587891 1
+9 21 30 0 0.553223 1
+9 21 31 0 0.520996 1
+9 22 0 0 1 0
+9 22 1 0 1 0
+9 22 2 0 1 0
+9 22 3 0 1 0
+9 22 4 0 1 0
+9 22 5 0 1 0
+9 22 6 0 1 0
+9 22 7 0 1 0
+9 22 8 0 1 0
+9 22 9 0 1 0
+9 22 10 0 1 0
+9 22 11 0 1 0
+9 22 12 0 1 0
+9 22 13 0 1 0
+9 22 14 0 1 0
+9 22 15 0 1 0.142212
+9 22 16 0 1 0.327881
+9 22 17 0 1 0.468018
+9 22 18 0 1 0.593262
+9 22 19 0 1 0.705078
+9 22 20 0 1 0.80127
+9 22 21 0 0.979004 0.883789
+9 22 22 0 0.950684 0.950684
+9 22 23 0 0.916504 1
+9 22 24 0 0.878906 1
+9 22 25 0 0.835938 1
+9 22 26 0 0.790039 1
+9 22 27 0 0.743164 1
+9 22 28 0 0.697266 1
+9 22 29 0 0.653809 1
+9 22 30 0 0.613281 1
+9 22 31 0 0.575684 1
+9 23 0 0 1 0
+9 23 1 0 1 0
+9 23 2 0 1 0
+9 23 3 0 1 0
+9 23 4 0 1 0
+9 23 5 0 1 0
+9 23 6 0 1 0
+9 23 7 0 1 0
+9 23 8 0 1 0
+9 23 9 0 1 0
+9 23 10 0 1 0
+9 23 11 0 1 0
+9 23 12 0 1 0
+9 23 13 0 1 0
+9 23 14 0 1 0
+9 23 15 0 1 0
+9 23 16 0 1 0.270264
+9 23 17 0 1 0.421387
+9 23 18 0 1 0.550293
+9 23 19 0 1 0.665527
+9 23 20 0 1 0.765137
+9 23 21 0 1 0.852051
+9 23 22 0 1 0.924316
+9 23 23 0 0.980469 0.980957
+9 23 24 0 0.947266 1
+9 23 25 0 0.907227 1
+9 23 26 0 0.861816 1
+9 23 27 0 0.813477 1
+9 23 28 0 0.764648 1
+9 23 29 0 0.717285 1
+9 23 30 0 0.671875 1
+9 23 31 0 0.629883 1
+9 24 0 0 1 0
+9 24 1 0 1 0
+9 24 2 0 1 0
+9 24 3 0 1 0
+9 24 4 0 1 0
+9 24 5 0 1 0
+9 24 6 0 1 0
+9 24 7 0 1 0
+9 24 8 0 1 0
+9 24 9 0 1 0
+9 24 10 0 1 0
+9 24 11 0 1 0
+9 24 12 0 1 0
+9 24 13 0 1 0
+9 24 14 0 1 0
+9 24 15 0 1 0
+9 24 16 0 1 0.204224
+9 24 17 0 1 0.373291
+9 24 18 0 1 0.507324
+9 24 19 0 1 0.625
+9 24 20 0 1 0.727539
+9 24 21 0 1 0.817383
+9 24 22 0 1 0.893555
+9 24 23 0 1 0.955566
+9 24 24 0 1 1
+9 24 25 0 0.96875 1
+9 24 26 0 0.92627 1
+9 24 27 0 0.878418 1
+9 24 28 0 0.828125 1
+9 24 29 0 0.777344 1
+9 24 30 0 0.728516 1
+9 24 31 0 0.682129 1
+9 25 0 0 1 0
+9 25 1 0 1 0
+9 25 2 0 1 0
+9 25 3 0 1 0
+9 25 4 0 1 0
+9 25 5 0 1 0
+9 25 6 0 1 0
+9 25 7 0 1 0
+9 25 8 0 1 0
+9 25 9 0 1 0
+9 25 10 0 1 0
+9 25 11 0 1 0
+9 25 12 0 1 0
+9 25 13 0 1 0
+9 25 14 0 1 0
+9 25 15 0 1 0
+9 25 16 0 1 0.104126
+9 25 17 0 1 0.318359
+9 25 18 0 1 0.459473
+9 25 19 0 1 0.57959
+9 25 20 0 1 0.68457
+9 25 21 0 1 0.777344
+9 25 22 0 1 0.85791
+9 25 23 0 1 0.923828
+9 25 24 0 1 0.978027
+9 25 25 0 1 1
+9 25 26 0 0.986816 1
+9 25 27 0 0.941406 1
+9 25 28 0 0.891602 1
+9 25 29 0 0.839355 1
+9 25 30 0 0.788086 1
+9 25 31 0 0.737793 1
+9 26 0 0 1 0
+9 26 1 0 1 0
+9 26 2 0 1 0
+9 26 3 0 1 0
+9 26 4 0 1 0
+9 26 5 0 1 0
+9 26 6 0 1 0
+9 26 7 0 1 0
+9 26 8 0 1 0
+9 26 9 0 1 0
+9 26 10 0 1 0
+9 26 11 0 1 0
+9 26 12 0 1 0
+9 26 13 0 1 0
+9 26 14 0 1 0
+9 26 15 0 1 0
+9 26 16 0 1 0
+9 26 17 0 1 0.25293
+9 26 18 0 1 0.40625
+9 26 19 0 1 0.529785
+9 26 20 0 1 0.637207
+9 26 21 0 1 0.732422
+9 26 22 0 1 0.815918
+9 26 23 0 1 0.885742
+9 26 24 0 1 0.943848
+9 26 25 0 1 0.99707
+9 26 26 0 1 1
+9 26 27 0 1 1
+9 26 28 0 0.953613 1
+9 26 29 0 0.901855 1
+9 26 30 0 0.848633 1
+9 26 31 0 0.795898 1
+9 27 0 0 1 0
+9 27 1 0 1 0
+9 27 2 0 1 0
+9 27 3 0 1 0
+9 27 4 0 1 0
+9 27 5 0 1 0
+9 27 6 0 1 0
+9 27 7 0 1 0
+9 27 8 0 1 0
+9 27 9 0 1 0
+9 27 10 0 1 0
+9 27 11 0 1 0
+9 27 12 0 1 0
+9 27 13 0 1 0
+9 27 14 0 1 0
+9 27 15 0 1 0
+9 27 16 0 1 0
+9 27 17 0 1 0.166016
+9 27 18 0 1 0.34668
+9 27 19 0 1 0.47583
+9 27 20 0 1 0.584961
+9 27 21 0 1 0.682617
+9 27 22 0 1 0.768555
+9 27 23 0 1 0.841309
+9 27 24 0 1 0.90332
+9 27 25 0 1 0.960938
+9 27 26 0 1 1
+9 27 27 0 1 1
+9 27 28 0 1 1
+9 27 29 0 0.962402 1
+9 27 30 0 0.908691 1
+9 27 31 0 0.854492 1
+9 28 0 0 1 0
+9 28 1 0 1 0
+9 28 2 0 1 0
+9 28 3 0 1 0
+9 28 4 0 1 0
+9 28 5 0 1 0
+9 28 6 0 1 0
+9 28 7 0 1 0
+9 28 8 0 1 0
+9 28 9 0 1 0
+9 28 10 0 1 0
+9 28 11 0 1 0
+9 28 12 0 1 0
+9 28 13 0 1 0
+9 28 14 0 1 0
+9 28 15 0 1 0
+9 28 16 0 1 0
+9 28 17 0 1 0
+9 28 18 0 1 0.278076
+9 28 19 0 1 0.417236
+9 28 20 0 1 0.529297
+9 28 21 0 1 0.62793
+9 28 22 0 1 0.71582
+9 28 23 0 1 0.791016
+9 28 24 0 1 0.856445
+9 28 25 0 1 0.91748
+9 28 26 0 1 0.974121
+9 28 27 0 1 1
+9 28 28 0 1 1
+9 28 29 0 1 1
+9 28 30 0 0.968262 1
+9 28 31 0 0.914062 1
+9 29 0 0 1 0
+9 29 1 0 1 0
+9 29 2 0 1 0
+9 29 3 0 1 0
+9 29 4 0 1 0
+9 29 5 0 1 0
+9 29 6 0 1 0
+9 29 7 0 1 0
+9 29 8 0 1 0
+9 29 9 0 1 0
+9 29 10 0 1 0
+9 29 11 0 1 0
+9 29 12 0 1 0
+9 29 13 0 1 0
+9 29 14 0 1 0
+9 29 15 0 1 0
+9 29 16 0 1 0
+9 29 17 0 1 0
+9 29 18 0 1 0.19104
+9 29 19 0 1 0.352051
+9 29 20 0 1 0.46875
+9 29 21 0 1 0.569336
+9 29 22 0 1 0.658203
+9 29 23 0 1 0.735352
+9 29 24 0 1 0.802734
+9 29 25 0 1 0.867188
+9 29 26 0 1 0.928223
+9 29 27 0 1 0.983398
+9 29 28 0 1 1
+9 29 29 0 1 1
+9 29 30 0 1 1
+9 29 31 0 0.973145 1
+9 30 0 0 1 0
+9 30 1 0 1 0
+9 30 2 0 1 0
+9 30 3 0 1 0
+9 30 4 0 1 0
+9 30 5 0 1 0
+9 30 6 0 1 0
+9 30 7 0 1 0
+9 30 8 0 1 0
+9 30 9 0 1 0
+9 30 10 0 1 0
+9 30 11 0 1 0
+9 30 12 0 1 0
+9 30 13 0 1 0
+9 30 14 0 1 0
+9 30 15 0 1 0
+9 30 16 0 1 0
+9 30 17 0 1 0
+9 30 18 0 1 0.0222626
+9 30 19 0 1 0.277588
+9 30 20 0 1 0.403564
+9 30 21 0 1 0.506836
+9 30 22 0 1 0.59668
+9 30 23 0 1 0.674805
+9 30 24 0 1 0.743652
+9 30 25 0 1 0.810547
+9 30 26 0 1 0.874512
+9 30 27 0 1 0.935059
+9 30 28 0 1 0.989746
+9 30 29 0 1 1
+9 30 30 0 1 1
+9 30 31 0 1 1
+9 31 0 0 1 0
+9 31 1 0 1 0
+9 31 2 0 1 0
+9 31 3 0 1 0
+9 31 4 0 1 0
+9 31 5 0 1 0
+9 31 6 0 1 0
+9 31 7 0 1 0
+9 31 8 0 1 0
+9 31 9 0 1 0
+9 31 10 0 1 0
+9 31 11 0 1 0
+9 31 12 0 1 0
+9 31 13 0 1 0
+9 31 14 0 1 0
+9 31 15 0 1 0
+9 31 16 0 1 0
+9 31 17 0 1 0
+9 31 18 0 1 0
+9 31 19 0 1 0.184082
+9 31 20 0 1 0.331787
+9 31 21 0 1 0.439941
+9 31 22 0 1 0.531738
+9 31 23 0 1 0.610352
+9 31 24 0 1 0.680176
+9 31 25 0 1 0.748535
+9 31 26 0 1 0.81543
+9 31 27 0 1 0.879883
+9 31 28 0 1 0.94043
+9 31 29 0 1 0.995117
+9 31 30 0 1 1
+9 31 31 0 1 1
+10 0 0 0.241455 0 0
+10 0 1 0.241455 0 0
+10 0 2 0.241455 0 0
+10 0 3 0.241455 0 0
+10 0 4 0.241333 0 0
+10 0 5 0.241455 0 0
+10 0 6 0.241699 0 0
+10 0 7 0.237549 0 0.0202484
+10 0 8 0.226562 0 0.0643921
+10 0 9 0.179565 0 0.0905762
+10 0 10 0.150635 0.00445938 0.118713
+10 0 11 0.140991 0.01017 0.172241
+10 0 12 0.117737 0.0202942 0.237549
+10 0 13 0.0559998 0.0367432 0.313232
+10 0 14 0 0.0588684 0.397949
+10 0 15 0 0.0825806 0.489258
+10 0 16 0 0.107361 0.585449
+10 0 17 0 0.13147 0.679199
+10 0 18 0 0.153687 0.765625
+10 0 19 0 0.17334 0.842285
+10 0 20 0 0.184814 0.887207
+10 0 21 0 0.187012 0.895508
+10 0 22 0 0.189209 0.903809
+10 0 23 0 0.191528 0.912598
+10 0 24 0 0.193848 0.921875
+10 0 25 0 0.196411 0.931641
+10 0 26 0 0.199219 0.942383
+10 0 27 0 0.202271 0.955078
+10 0 28 0 0.205811 0.96875
+10 0 29 0 0.209595 0.983398
+10 0 30 0 0.213623 0.999023
+10 0 31 0 0.217651 1
+10 1 0 0.241211 0 0
+10 1 1 0.241211 0 0
+10 1 2 0.241211 0 0
+10 1 3 0.241211 0 0
+10 1 4 0.241089 0 0
+10 1 5 0.241211 0 0
+10 1 6 0.241455 0 0
+10 1 7 0.237427 0 0.0201569
+10 1 8 0.226562 0 0.0643311
+10 1 9 0.179565 0 0.0905762
+10 1 10 0.150635 0.00469208 0.118652
+10 1 11 0.140991 0.0104141 0.172119
+10 1 12 0.117615 0.0205383 0.237549
+10 1 13 0.0558777 0.0369873 0.313232
+10 1 14 0 0.0590515 0.397949
+10 1 15 0 0.0827026 0.489258
+10 1 16 0 0.107483 0.585449
+10 1 17 0 0.13147 0.679199
+10 1 18 0 0.153687 0.765625
+10 1 19 0 0.173462 0.842285
+10 1 20 0 0.184937 0.887207
+10 1 21 0 0.187012 0.895508
+10 1 22 0 0.189209 0.903809
+10 1 23 0 0.191528 0.912598
+10 1 24 0 0.193848 0.921875
+10 1 25 0 0.196411 0.931641
+10 1 26 0 0.199219 0.942383
+10 1 27 0 0.202271 0.955078
+10 1 28 0 0.205811 0.96875
+10 1 29 0 0.209595 0.983398
+10 1 30 0 0.213623 0.999023
+10 1 31 0 0.217651 1
+10 2 0 0.240845 0 0
+10 2 1 0.240845 0 0
+10 2 2 0.240845 0 0
+10 2 3 0.240845 0 0
+10 2 4 0.240723 0 0
+10 2 5 0.240845 0 0
+10 2 6 0.241211 0 0
+10 2 7 0.237305 0 0.019989
+10 2 8 0.22644 0 0.064209
+10 2 9 0.179688 0 0.0906372
+10 2 10 0.150513 0.00510788 0.118652
+10 2 11 0.140869 0.010849 0.172119
+10 2 12 0.117493 0.0209808 0.237549
+10 2 13 0.0556335 0.0374451 0.313232
+10 2 14 0 0.0593872 0.397949
+10 2 15 0 0.0830078 0.489258
+10 2 16 0 0.107666 0.585449
+10 2 17 0 0.131592 0.679199
+10 2 18 0 0.153809 0.765625
+10 2 19 0 0.173462 0.842285
+10 2 20 0 0.184937 0.887207
+10 2 21 0 0.187012 0.895508
+10 2 22 0 0.189331 0.903809
+10 2 23 0 0.191528 0.912598
+10 2 24 0 0.193848 0.921875
+10 2 25 0 0.196411 0.931641
+10 2 26 0 0.199219 0.942383
+10 2 27 0 0.202393 0.955078
+10 2 28 0 0.205933 0.96875
+10 2 29 0 0.209595 0.983398
+10 2 30 0 0.213623 0.999023
+10 2 31 0 0.217651 1
+10 3 0 0.240234 0 0
+10 3 1 0.240234 0 0
+10 3 2 0.240234 0 0
+10 3 3 0.240112 0 0
+10 3 4 0.240112 0 0
+10 3 5 0.240234 0 0
+10 3 6 0.240601 0 0
+10 3 7 0.236938 0 0.0196838
+10 3 8 0.226196 0 0.0640259
+10 3 9 0.179688 0 0.0906982
+10 3 10 0.150269 0.00587082 0.118652
+10 3 11 0.140625 0.0116425 0.172119
+10 3 12 0.117249 0.0218048 0.237549
+10 3 13 0.0551758 0.038269 0.313232
+10 3 14 0 0.0600281 0.397949
+10 3 15 0 0.0834351 0.489258
+10 3 16 0 0.108032 0.585449
+10 3 17 0 0.131958 0.679199
+10 3 18 0 0.154053 0.765625
+10 3 19 0 0.173706 0.842285
+10 3 20 0 0.185059 0.887207
+10 3 21 0 0.187134 0.895508
+10 3 22 0 0.189453 0.903809
+10 3 23 0 0.19165 0.912598
+10 3 24 0 0.19397 0.921875
+10 3 25 0 0.196411 0.931641
+10 3 26 0 0.199219 0.942383
+10 3 27 0 0.202393 0.955078
+10 3 28 0 0.205933 0.96875
+10 3 29 0 0.209717 0.983398
+10 3 30 0 0.213623 0.999023
+10 3 31 0 0.217651 1
+10 4 0 0.238892 0 0
+10 4 1 0.238892 0 0
+10 4 2 0.238892 0 0
+10 4 3 0.238892 0 0
+10 4 4 0.23877 0 0
+10 4 5 0.238892 0 0
+10 4 6 0.239502 0 0
+10 4 7 0.236206 0 0.0191193
+10 4 8 0.225952 0 0.0637207
+10 4 9 0.179932 0 0.0908813
+10 4 10 0.150024 0.00730515 0.11853
+10 4 11 0.140259 0.0131378 0.172119
+10 4 12 0.116821 0.0233459 0.237549
+10 4 13 0.0543213 0.039856 0.313232
+10 4 14 0 0.0611877 0.397949
+10 4 15 0 0.0842896 0.489258
+10 4 16 0 0.108643 0.585449
+10 4 17 0 0.132446 0.679199
+10 4 18 0 0.154419 0.765625
+10 4 19 0 0.17395 0.842285
+10 4 20 0 0.185303 0.887207
+10 4 21 0 0.187378 0.895508
+10 4 22 0 0.189575 0.903809
+10 4 23 0 0.191772 0.913086
+10 4 24 0 0.194092 0.921875
+10 4 25 0 0.196533 0.931641
+10 4 26 0 0.199341 0.942871
+10 4 27 0 0.202515 0.955078
+10 4 28 0 0.205933 0.96875
+10 4 29 0 0.209717 0.983398
+10 4 30 0 0.213623 0.999023
+10 4 31 0 0.217651 1
+10 5 0 0.236328 0 0
+10 5 1 0.236328 0 0
+10 5 2 0.236206 0 0
+10 5 3 0.236206 0 0
+10 5 4 0.236206 0 0
+10 5 5 0.236328 0 0
+10 5 6 0.237061 0 0
+10 5 7 0.234619 0 0.0180511
+10 5 8 0.225098 0 0.0629883
+10 5 9 0.180298 0 0.0911865
+10 5 10 0.149414 0.0100861 0.118408
+10 5 11 0.139648 0.0160217 0.171997
+10 5 12 0.115967 0.0263367 0.237427
+10 5 13 0.0526733 0.0427856 0.313232
+10 5 14 0 0.0634155 0.397949
+10 5 15 0 0.0859985 0.489258
+10 5 16 0 0.109924 0.585449
+10 5 17 0 0.133423 0.679199
+10 5 18 0 0.155151 0.765625
+10 5 19 0 0.174561 0.842285
+10 5 20 0 0.185913 0.887207
+10 5 21 0 0.187744 0.895508
+10 5 22 0 0.189819 0.903809
+10 5 23 0 0.192017 0.913086
+10 5 24 0 0.194336 0.921875
+10 5 25 0 0.196777 0.931641
+10 5 26 0 0.199463 0.942871
+10 5 27 0 0.202637 0.955078
+10 5 28 0 0.206055 0.96875
+10 5 29 0 0.209839 0.983398
+10 5 30 0 0.213745 0.999023
+10 5 31 0 0.217773 1
+10 6 0 0.231079 0 0
+10 6 1 0.231079 0 0
+10 6 2 0.230957 0 0
+10 6 3 0.230957 0 0
+10 6 4 0.230835 0 0
+10 6 5 0.230957 0 0
+10 6 6 0.2323 0 0
+10 6 7 0.231079 0 0.016098
+10 6 8 0.223022 0 0.0614319
+10 6 9 0.18103 0.00471497 0.0918579
+10 6 10 0.148193 0.0153809 0.118164
+10 6 11 0.138184 0.0215302 0.171753
+10 6 12 0.114258 0.0320435 0.237305
+10 6 13 0.049408 0.0480652 0.312988
+10 6 14 0 0.0674438 0.397705
+10 6 15 0 0.0890503 0.489258
+10 6 16 0 0.112305 0.585449
+10 6 17 0 0.135254 0.679199
+10 6 18 0 0.156616 0.765625
+10 6 19 0 0.175781 0.842773
+10 6 20 0 0.186768 0.887207
+10 6 21 0 0.188477 0.895508
+10 6 22 0 0.19043 0.904297
+10 6 23 0 0.192505 0.913086
+10 6 24 0 0.194702 0.921875
+10 6 25 0 0.197144 0.931641
+10 6 26 0 0.199829 0.942871
+10 6 27 0 0.202881 0.955078
+10 6 28 0 0.206299 0.96875
+10 6 29 0 0.210083 0.983398
+10 6 30 0 0.213867 0.999023
+10 6 31 0 0.217896 1
+10 7 0 0.220093 0.0213776 0
+10 7 1 0.220093 0.0214081 0
+10 7 2 0.220093 0.0214691 0
+10 7 3 0.219971 0.0215912 0
+10 7 4 0.219971 0.0218201 0
+10 7 5 0.219971 0.0222473 0
+10 7 6 0.22168 0.0225067 0
+10 7 7 0.222412 0.0212097 0.0128555
+10 7 8 0.217285 0.0187225 0.0579529
+10 7 9 0.182617 0.0186615 0.0932007
+10 7 10 0.145752 0.0256958 0.117737
+10 7 11 0.135498 0.0322571 0.171387
+10 7 12 0.110962 0.0430298 0.237061
+10 7 13 0.042572 0.057373 0.312744
+10 7 14 0 0.0748291 0.397705
+10 7 15 0 0.0948486 0.489258
+10 7 16 0 0.11676 0.585449
+10 7 17 0 0.138672 0.679199
+10 7 18 0 0.159424 0.765625
+10 7 19 0 0.177979 0.842773
+10 7 20 0 0.188599 0.887695
+10 7 21 0 0.189941 0.895508
+10 7 22 0 0.19165 0.904297
+10 7 23 0 0.193604 0.913086
+10 7 24 0 0.195557 0.921875
+10 7 25 0 0.197876 0.931641
+10 7 26 0 0.200439 0.942871
+10 7 27 0 0.203369 0.955078
+10 7 28 0 0.206787 0.96875
+10 7 29 0 0.210449 0.983398
+10 7 30 0 0.214233 0.999023
+10 7 31 0 0.218262 1
+10 8 0 0.197998 0.0541687 0
+10 8 1 0.197998 0.0541687 0
+10 8 2 0.197998 0.0542297 0
+10 8 3 0.197998 0.0542908 0
+10 8 4 0.197876 0.0544128 0
+10 8 5 0.197754 0.0546875 0
+10 8 6 0.199097 0.0552063 0
+10 8 7 0.20105 0.0555725 0.00921631
+10 8 8 0.204102 0.0557251 0.0509338
+10 8 9 0.185303 0.0497131 0.095459
+10 8 10 0.140991 0.0455933 0.116882
+10 8 11 0.130127 0.052002 0.170776
+10 8 12 0.104187 0.0611572 0.236572
+10 8 13 0.0279694 0.072998 0.3125
+10 8 14 0 0.0878296 0.397461
+10 8 15 0 0.105347 0.489258
+10 8 16 0 0.125122 0.585449
+10 8 17 0 0.145264 0.679199
+10 8 18 0 0.164673 0.765625
+10 8 19 0 0.182251 0.842773
+10 8 20 0 0.192139 0.887695
+10 8 21 0 0.192749 0.895996
+10 8 22 0 0.19397 0.904297
+10 8 23 0 0.195435 0.913086
+10 8 24 0 0.197144 0.921875
+10 8 25 0 0.199219 0.932129
+10 8 26 0 0.20166 0.942871
+10 8 27 0 0.204468 0.955078
+10 8 28 0 0.207642 0.96875
+10 8 29 0 0.211182 0.983398
+10 8 30 0 0.214966 0.999023
+10 8 31 0 0.21875 1
+10 9 0 0.166016 0.0826416 0
+10 9 1 0.166016 0.0826416 0
+10 9 2 0.166016 0.0827026 0
+10 9 3 0.166016 0.0827026 0
+10 9 4 0.166016 0.0827637 0
+10 9 5 0.166016 0.0829468 0
+10 9 6 0.165527 0.0830078 0
+10 9 7 0.164429 0.083252 0.0103989
+10 9 8 0.164429 0.0846558 0.0393066
+10 9 9 0.171143 0.0904541 0.0891724
+10 9 10 0.131592 0.0748901 0.115295
+10 9 11 0.119324 0.0802612 0.169556
+10 9 12 0.0899048 0.0877686 0.235596
+10 9 13 0 0.097229 0.311768
+10 9 14 0 0.108948 0.397217
+10 9 15 0 0.123108 0.489014
+10 9 16 0 0.139771 0.585449
+10 9 17 0 0.157227 0.679199
+10 9 18 0 0.174316 0.765625
+10 9 19 0 0.190063 0.842773
+10 9 20 0 0.198608 0.888184
+10 9 21 0 0.197876 0.895996
+10 9 22 0 0.198242 0.904785
+10 9 23 0 0.199097 0.913574
+10 9 24 0 0.200317 0.922363
+10 9 25 0 0.201904 0.932129
+10 9 26 0 0.203979 0.942871
+10 9 27 0 0.206421 0.955078
+10 9 28 0 0.209351 0.969238
+10 9 29 0 0.212646 0.983887
+10 9 30 0 0.216187 0.999023
+10 9 31 0 0.219849 1
+10 10 0 0.149414 0.126587 0
+10 10 1 0.149414 0.126587 0
+10 10 2 0.149414 0.126587 0
+10 10 3 0.149414 0.126587 0
+10 10 4 0.149414 0.126709 0
+10 10 5 0.149414 0.126831 0
+10 10 6 0.149048 0.126831 0
+10 10 7 0.146118 0.12561 0.00850677
+10 10 8 0.140625 0.123474 0.0361938
+10 10 9 0.130493 0.119568 0.074585
+10 10 10 0.112732 0.112732 0.112732
+10 10 11 0.0968018 0.11731 0.167603
+10 10 12 0.057251 0.123535 0.234009
+10 10 13 0 0.130981 0.310791
+10 10 14 0 0.139771 0.39624
+10 10 15 0 0.150269 0.488525
+10 10 16 0 0.163086 0.584961
+10 10 17 0 0.176758 0.679199
+10 10 18 0 0.190552 0.766113
+10 10 19 0 0.203613 0.842773
+10 10 20 0 0.209961 0.88916
+10 10 21 0 0.207031 0.896973
+10 10 22 0 0.205688 0.905273
+10 10 23 0 0.205444 0.914062
+10 10 24 0 0.205688 0.922852
+10 10 25 0 0.206665 0.932617
+10 10 26 0 0.208008 0.943359
+10 10 27 0 0.209961 0.955566
+10 10 28 0 0.212402 0.969238
+10 10 29 0 0.21521 0.983887
+10 10 30 0 0.218384 0.999512
+10 10 31 0 0.221802 1
+10 11 0 0.101379 0.170166 0
+10 11 1 0.101379 0.170166 0
+10 11 2 0.101379 0.170166 0
+10 11 3 0.101379 0.170288 0
+10 11 4 0.10144 0.170288 0
+10 11 5 0.10144 0.17041 0
+10 11 6 0.101501 0.170532 0
+10 11 7 0.0994263 0.169678 0
+10 11 8 0.0940552 0.167236 0.019455
+10 11 9 0.0841675 0.163208 0.0620422
+10 11 10 0.0684204 0.161133 0.108459
+10 11 11 0.0376892 0.164429 0.164429
+10 11 12 0 0.169434 0.231323
+10 11 13 0 0.175171 0.308594
+10 11 14 0 0.181519 0.39502
+10 11 15 0 0.188599 0.487793
+10 11 16 0 0.197144 0.584961
+10 11 17 0 0.206299 0.679199
+10 11 18 0 0.215942 0.766113
+10 11 19 0 0.22522 0.843262
+10 11 20 0 0.228394 0.890625
+10 11 21 0 0.222168 0.898438
+10 11 22 0 0.218262 0.906738
+10 11 23 0 0.216064 0.915039
+10 11 24 0 0.214966 0.923828
+10 11 25 0 0.214722 0.933594
+10 11 26 0 0.214966 0.944336
+10 11 27 0 0.215942 0.956055
+10 11 28 0 0.217651 0.969727
+10 11 29 0 0.219727 0.984375
+10 11 30 0 0.22229 1
+10 11 31 0 0.22522 1
+10 12 0 0 0.223511 0
+10 12 1 0 0.223511 0
+10 12 2 0 0.223511 0
+10 12 3 0 0.223511 0
+10 12 4 0 0.223511 0
+10 12 5 0 0.223633 0
+10 12 6 0 0.223633 0
+10 12 7 0 0.223877 0
+10 12 8 0 0.2229 0
+10 12 9 0 0.221802 0.0428772
+10 12 10 0 0.22168 0.0994873
+10 12 11 0 0.223511 0.158813
+10 12 12 0 0.226807 0.226929
+10 12 13 0 0.231079 0.305176
+10 12 14 0 0.235352 0.392334
+10 12 15 0 0.23938 0.486084
+10 12 16 0 0.243896 0.583984
+10 12 17 0 0.248291 0.678711
+10 12 18 0 0.25293 0.766113
+10 12 19 0 0.257568 0.84375
+10 12 20 0 0.256836 0.893066
+10 12 21 0 0.245728 0.900391
+10 12 22 0 0.238281 0.908691
+10 12 23 0 0.233276 0.916992
+10 12 24 0 0.22998 0.925293
+10 12 25 0 0.227783 0.935059
+10 12 26 0 0.22644 0.945312
+10 12 27 0 0.22583 0.95752
+10 12 28 0 0.226318 0.970703
+10 12 29 0 0.227295 0.985352
+10 12 30 0 0.228882 1
+10 12 31 0 0.230835 1
+10 13 0 0 0.292969 0
+10 13 1 0 0.292969 0
+10 13 2 0 0.292969 0
+10 13 3 0 0.292969 0
+10 13 4 0 0.292969 0
+10 13 5 0 0.292969 0
+10 13 6 0 0.293213 0
+10 13 7 0 0.293213 0
+10 13 8 0 0.293457 0
+10 13 9 0 0.293213 0.0051384
+10 13 10 0 0.293457 0.0797729
+10 13 11 0 0.294434 0.147461
+10 13 12 0 0.296143 0.219116
+10 13 13 0 0.298828 0.299072
+10 13 14 0 0.301514 0.387939
+10 13 15 0 0.302979 0.483154
+10 13 16 0 0.303955 0.58252
+10 13 17 0 0.303711 0.678223
+10 13 18 0 0.303223 0.766602
+10 13 19 0 0.302734 0.844238
+10 13 20 0 0.297607 0.896973
+10 13 21 0 0.280273 0.903809
+10 13 22 0 0.267822 0.911621
+10 13 23 0 0.259033 0.919922
+10 13 24 0 0.252686 0.928223
+10 13 25 0 0.247803 0.9375
+10 13 26 0 0.244019 0.947754
+10 13 27 0 0.241333 0.959473
+10 13 28 0 0.239746 0.972656
+10 13 29 0 0.239136 0.986816
+10 13 30 0 0.239136 1
+10 13 31 0 0.239868 1
+10 14 0 0 0.374268 0
+10 14 1 0 0.374268 0
+10 14 2 0 0.374268 0
+10 14 3 0 0.374268 0
+10 14 4 0 0.374268 0
+10 14 5 0 0.374268 0
+10 14 6 0 0.374268 0
+10 14 7 0 0.374512 0
+10 14 8 0 0.374756 0
+10 14 9 0 0.375 0
+10 14 10 0 0.375244 0.0315552
+10 14 11 0 0.376221 0.124878
+10 14 12 0 0.377197 0.204834
+10 14 13 0 0.378662 0.288574
+10 14 14 0 0.379639 0.379883
+10 14 15 0 0.379395 0.477295
+10 14 16 0 0.377441 0.578613
+10 14 17 0 0.373047 0.67627
+10 14 18 0 0.367432 0.766113
+10 14 19 0 0.361572 0.844727
+10 14 20 0 0.352295 0.902344
+10 14 21 0 0.327637 0.909668
+10 14 22 0 0.309082 0.916992
+10 14 23 0 0.29541 0.924316
+10 14 24 0 0.2854 0.932617
+10 14 25 0 0.276855 0.941406
+10 14 26 0 0.269775 0.951172
+10 14 27 0 0.26416 0.962402
+10 14 28 0 0.26001 0.975586
+10 14 29 0 0.256836 0.989258
+10 14 30 0 0.254639 1
+10 14 31 0 0.253418 1
+10 15 0 0 0.463379 0
+10 15 1 0 0.463379 0
+10 15 2 0 0.463379 0
+10 15 3 0 0.463379 0
+10 15 4 0 0.463379 0
+10 15 5 0 0.463379 0
+10 15 6 0 0.463379 0
+10 15 7 0 0.463379 0
+10 15 8 0 0.463623 0
+10 15 9 0 0.463867 0
+10 15 10 0 0.4646 0
+10 15 11 0 0.465332 0.078125
+10 15 12 0 0.466553 0.178833
+10 15 13 0 0.467773 0.270508
+10 15 14 0 0.468262 0.366211
+10 15 15 0 0.467041 0.467285
+10 15 16 0 0.463135 0.571777
+10 15 17 0 0.455566 0.672363
+10 15 18 0 0.445312 0.763672
+10 15 19 0 0.434326 0.844238
+10 15 20 0 0.421875 0.908203
+10 15 21 0 0.38916 0.916992
+10 15 22 0 0.363525 0.924805
+10 15 23 0 0.344238 0.932129
+10 15 24 0 0.329346 0.939453
+10 15 25 0 0.316162 0.947754
+10 15 26 0 0.305176 0.957031
+10 15 27 0 0.295654 0.967773
+10 15 28 0 0.288086 0.97998
+10 15 29 0 0.281982 0.993164
+10 15 30 0 0.276855 1
+10 15 31 0 0.272949 1
+10 16 0 0 0.558105 0
+10 16 1 0 0.558105 0
+10 16 2 0 0.558105 0
+10 16 3 0 0.558105 0
+10 16 4 0 0.558105 0
+10 16 5 0 0.558105 0
+10 16 6 0 0.558105 0
+10 16 7 0 0.558105 0
+10 16 8 0 0.558105 0
+10 16 9 0 0.558594 0
+10 16 10 0 0.559082 0
+10 16 11 0 0.560059 0
+10 16 12 0 0.561523 0.132324
+10 16 13 0 0.563477 0.240845
+10 16 14 0 0.563965 0.343994
+10 16 15 0 0.562988 0.450195
+10 16 16 0 0.558594 0.558594
+10 16 17 0 0.548828 0.663086
+10 16 18 0 0.535645 0.758789
+10 16 19 0 0.52002 0.841797
+10 16 20 0 0.503418 0.910156
+10 16 21 0 0.465332 0.926758
+10 16 22 0 0.432617 0.936035
+10 16 23 0 0.406738 0.943359
+10 16 24 0 0.385986 0.950195
+10 16 25 0 0.36792 0.958008
+10 16 26 0 0.351807 0.966309
+10 16 27 0 0.337646 0.975586
+10 16 28 0 0.325684 0.986816
+10 16 29 0 0.315674 0.999512
+10 16 30 0 0.307129 1
+10 16 31 0 0.299805 1
+10 17 0 0 0.652832 0
+10 17 1 0 0.652832 0
+10 17 2 0 0.652832 0
+10 17 3 0 0.652832 0
+10 17 4 0 0.652832 0
+10 17 5 0 0.652832 0
+10 17 6 0 0.652832 0
+10 17 7 0 0.652832 0
+10 17 8 0 0.652832 0
+10 17 9 0 0.652832 0
+10 17 10 0 0.65332 0
+10 17 11 0 0.654297 0
+10 17 12 0 0.65625 0.0225067
+10 17 13 0 0.658691 0.194824
+10 17 14 0 0.660645 0.311279
+10 17 15 0 0.660645 0.424072
+10 17 16 0 0.656738 0.538086
+10 17 17 0 0.647461 0.647461
+10 17 18 0 0.632324 0.748047
+10 17 19 0 0.614258 0.834961
+10 17 20 0 0.593262 0.906738
+10 17 21 0 0.553223 0.936035
+10 17 22 0 0.51416 0.949707
+10 17 23 0 0.481934 0.958496
+10 17 24 0 0.455078 0.965332
+10 17 25 0 0.430908 0.972656
+10 17 26 0 0.40918 0.97998
+10 17 27 0 0.389648 0.987793
+10 17 28 0 0.372803 0.997559
+10 17 29 0 0.35791 1
+10 17 30 0 0.344971 1
+10 17 31 0 0.33374 1
+10 18 0 0 0.741699 0
+10 18 1 0 0.741699 0
+10 18 2 0 0.741699 0
+10 18 3 0 0.741699 0
+10 18 4 0 0.741699 0
+10 18 5 0 0.741699 0
+10 18 6 0 0.741699 0
+10 18 7 0 0.741699 0
+10 18 8 0 0.741699 0
+10 18 9 0 0.741699 0
+10 18 10 0 0.742188 0
+10 18 11 0 0.742676 0
+10 18 12 0 0.744629 0
+10 18 13 0 0.747559 0.11908
+10 18 14 0 0.750977 0.265869
+10 18 15 0 0.752441 0.388428
+10 18 16 0 0.750977 0.508301
+10 18 17 0 0.743652 0.624023
+10 18 18 0 0.729492 0.72998
+10 18 19 0 0.710449 0.822266
+10 18 20 0 0.687012 0.898438
+10 18 21 0 0.648438 0.941895
+10 18 22 0 0.605469 0.963867
+10 18 23 0 0.567383 0.976562
+10 18 24 0 0.534668 0.984863
+10 18 25 0 0.504395 0.991699
+10 18 26 0 0.476318 0.998047
+10 18 27 0 0.450684 1
+10 18 28 0 0.427979 1
+10 18 29 0 0.407959 1
+10 18 30 0 0.389893 1
+10 18 31 0 0.374268 1
+10 19 0 0 0.822266 0
+10 19 1 0 0.822266 0
+10 19 2 0 0.822266 0
+10 19 3 0 0.822266 0
+10 19 4 0 0.822266 0
+10 19 5 0 0.822266 0
+10 19 6 0 0.822266 0
+10 19 7 0 0.822266 0
+10 19 8 0 0.822266 0
+10 19 9 0 0.822266 0
+10 19 10 0 0.822266 0
+10 19 11 0 0.822754 0
+10 19 12 0 0.824219 0
+10 19 13 0 0.827637 0
+10 19 14 0 0.831543 0.204834
+10 19 15 0 0.834961 0.344482
+10 19 16 0 0.835938 0.47168
+10 19 17 0 0.831543 0.592773
+10 19 18 0 0.820312 0.70459
+10 19 19 0 0.802246 0.802734
+10 19 20 0 0.77832 0.883789
+10 19 21 0 0.743164 0.940918
+10 19 22 0 0.700684 0.975098
+10 19 23 0 0.65918 0.994141
+10 19 24 0 0.621582 1
+10 19 25 0 0.585449 1
+10 19 26 0 0.55127 1
+10 19 27 0 0.519043 1
+10 19 28 0 0.48999 1
+10 19 29 0 0.463867 1
+10 19 30 0 0.44043 1
+10 19 31 0 0.419678 1
+10 20 0 0 0.89209 0
+10 20 1 0 0.89209 0
+10 20 2 0 0.89209 0
+10 20 3 0 0.89209 0
+10 20 4 0 0.89209 0
+10 20 5 0 0.89209 0
+10 20 6 0 0.89209 0
+10 20 7 0 0.89209 0
+10 20 8 0 0.89209 0
+10 20 9 0 0.89209 0
+10 20 10 0 0.892578 0
+10 20 11 0 0.892578 0
+10 20 12 0 0.893555 0
+10 20 13 0 0.896973 0
+10 20 14 0 0.901367 0.113708
+10 20 15 0 0.905762 0.292236
+10 20 16 0 0.90918 0.429443
+10 20 17 0 0.908203 0.555664
+10 20 18 0 0.900391 0.672852
+10 20 19 0 0.884766 0.775879
+10 20 20 0 0.862305 0.862305
+10 20 21 0 0.832031 0.931152
+10 20 22 0 0.792969 0.978027
+10 20 23 0 0.750977 1
+10 20 24 0 0.710449 1
+10 20 25 0 0.669922 1
+10 20 26 0 0.629883 1
+10 20 27 0 0.591797 1
+10 20 28 0 0.556152 1
+10 20 29 0 0.523926 1
+10 20 30 0 0.494873 1
+10 20 31 0 0.46875 1
+10 21 0 0 0.95166 0
+10 21 1 0 0.95166 0
+10 21 2 0 0.952148 0
+10 21 3 0 0.952148 0
+10 21 4 0 0.952148 0
+10 21 5 0 0.952148 0
+10 21 6 0 0.952148 0
+10 21 7 0 0.952148 0
+10 21 8 0 0.952148 0
+10 21 9 0 0.952148 0
+10 21 10 0 0.952148 0
+10 21 11 0 0.952148 0
+10 21 12 0 0.952637 0
+10 21 13 0 0.955566 0
+10 21 14 0 0.960449 0
+10 21 15 0 0.96582 0.228149
+10 21 16 0 0.971191 0.381348
+10 21 17 0 0.972656 0.513672
+10 21 18 0 0.96875 0.634766
+10 21 19 0 0.956543 0.742676
+10 21 20 0 0.9375 0.834473
+10 21 21 0 0.911133 0.911621
+10 21 22 0 0.87793 0.970215
+10 21 23 0 0.838867 1
+10 21 24 0 0.79834 1
+10 21 25 0 0.754883 1
+10 21 26 0 0.710449 1
+10 21 27 0 0.66748 1
+10 21 28 0 0.626465 1
+10 21 29 0 0.587891 1
+10 21 30 0 0.553223 1
+10 21 31 0 0.521484 1
+10 22 0 0 1 0
+10 22 1 0 1 0
+10 22 2 0 1 0
+10 22 3 0 1 0
+10 22 4 0 1 0
+10 22 5 0 1 0
+10 22 6 0 1 0
+10 22 7 0 1 0
+10 22 8 0 1 0
+10 22 9 0 1 0
+10 22 10 0 1 0
+10 22 11 0 1 0
+10 22 12 0 1 0
+10 22 13 0 1 0
+10 22 14 0 1 0
+10 22 15 0 1 0.141968
+10 22 16 0 1 0.327881
+10 22 17 0 1 0.468018
+10 22 18 0 1 0.593262
+10 22 19 0 1 0.705078
+10 22 20 0 1 0.80127
+10 22 21 0 0.979004 0.883789
+10 22 22 0 0.950684 0.951172
+10 22 23 0 0.916992 1
+10 22 24 0 0.878906 1
+10 22 25 0 0.835938 1
+10 22 26 0 0.790039 1
+10 22 27 0 0.743164 1
+10 22 28 0 0.697266 1
+10 22 29 0 0.653809 1
+10 22 30 0 0.613281 1
+10 22 31 0 0.575684 1
+10 23 0 0 1 0
+10 23 1 0 1 0
+10 23 2 0 1 0
+10 23 3 0 1 0
+10 23 4 0 1 0
+10 23 5 0 1 0
+10 23 6 0 1 0
+10 23 7 0 1 0
+10 23 8 0 1 0
+10 23 9 0 1 0
+10 23 10 0 1 0
+10 23 11 0 1 0
+10 23 12 0 1 0
+10 23 13 0 1 0
+10 23 14 0 1 0
+10 23 15 0 1 0
+10 23 16 0 1 0.270264
+10 23 17 0 1 0.421387
+10 23 18 0 1 0.550293
+10 23 19 0 1 0.665527
+10 23 20 0 1 0.765625
+10 23 21 0 1 0.852051
+10 23 22 0 1 0.924316
+10 23 23 0 0.980957 0.980957
+10 23 24 0 0.947754 1
+10 23 25 0 0.907715 1
+10 23 26 0 0.862305 1
+10 23 27 0 0.813477 1
+10 23 28 0 0.764648 1
+10 23 29 0 0.717285 1
+10 23 30 0 0.671875 1
+10 23 31 0 0.629883 1
+10 24 0 0 1 0
+10 24 1 0 1 0
+10 24 2 0 1 0
+10 24 3 0 1 0
+10 24 4 0 1 0
+10 24 5 0 1 0
+10 24 6 0 1 0
+10 24 7 0 1 0
+10 24 8 0 1 0
+10 24 9 0 1 0
+10 24 10 0 1 0
+10 24 11 0 1 0
+10 24 12 0 1 0
+10 24 13 0 1 0
+10 24 14 0 1 0
+10 24 15 0 1 0
+10 24 16 0 1 0.204102
+10 24 17 0 1 0.373291
+10 24 18 0 1 0.507324
+10 24 19 0 1 0.625
+10 24 20 0 1 0.727539
+10 24 21 0 1 0.817383
+10 24 22 0 1 0.894043
+10 24 23 0 1 0.955566
+10 24 24 0 1 1
+10 24 25 0 0.96875 1
+10 24 26 0 0.92627 1
+10 24 27 0 0.878418 1
+10 24 28 0 0.828125 1
+10 24 29 0 0.777344 1
+10 24 30 0 0.728516 1
+10 24 31 0 0.682129 1
+10 25 0 0 1 0
+10 25 1 0 1 0
+10 25 2 0 1 0
+10 25 3 0 1 0
+10 25 4 0 1 0
+10 25 5 0 1 0
+10 25 6 0 1 0
+10 25 7 0 1 0
+10 25 8 0 1 0
+10 25 9 0 1 0
+10 25 10 0 1 0
+10 25 11 0 1 0
+10 25 12 0 1 0
+10 25 13 0 1 0
+10 25 14 0 1 0
+10 25 15 0 1 0
+10 25 16 0 1 0.103882
+10 25 17 0 1 0.318359
+10 25 18 0 1 0.459473
+10 25 19 0 1 0.57959
+10 25 20 0 1 0.68457
+10 25 21 0 1 0.777832
+10 25 22 0 1 0.85791
+10 25 23 0 1 0.923828
+10 25 24 0 1 0.978027
+10 25 25 0 1 1
+10 25 26 0 0.986816 1
+10 25 27 0 0.941406 1
+10 25 28 0 0.891602 1
+10 25 29 0 0.839355 1
+10 25 30 0 0.788086 1
+10 25 31 0 0.737793 1
+10 26 0 0 1 0
+10 26 1 0 1 0
+10 26 2 0 1 0
+10 26 3 0 1 0
+10 26 4 0 1 0
+10 26 5 0 1 0
+10 26 6 0 1 0
+10 26 7 0 1 0
+10 26 8 0 1 0
+10 26 9 0 1 0
+10 26 10 0 1 0
+10 26 11 0 1 0
+10 26 12 0 1 0
+10 26 13 0 1 0
+10 26 14 0 1 0
+10 26 15 0 1 0
+10 26 16 0 1 0
+10 26 17 0 1 0.25293
+10 26 18 0 1 0.40625
+10 26 19 0 1 0.529785
+10 26 20 0 1 0.637207
+10 26 21 0 1 0.732422
+10 26 22 0 1 0.815918
+10 26 23 0 1 0.885742
+10 26 24 0 1 0.943848
+10 26 25 0 1 0.99707
+10 26 26 0 1 1
+10 26 27 0 1 1
+10 26 28 0 0.954102 1
+10 26 29 0 0.901855 1
+10 26 30 0 0.848633 1
+10 26 31 0 0.795898 1
+10 27 0 0 1 0
+10 27 1 0 1 0
+10 27 2 0 1 0
+10 27 3 0 1 0
+10 27 4 0 1 0
+10 27 5 0 1 0
+10 27 6 0 1 0
+10 27 7 0 1 0
+10 27 8 0 1 0
+10 27 9 0 1 0
+10 27 10 0 1 0
+10 27 11 0 1 0
+10 27 12 0 1 0
+10 27 13 0 1 0
+10 27 14 0 1 0
+10 27 15 0 1 0
+10 27 16 0 1 0
+10 27 17 0 1 0.165894
+10 27 18 0 1 0.34668
+10 27 19 0 1 0.476074
+10 27 20 0 1 0.584961
+10 27 21 0 1 0.682617
+10 27 22 0 1 0.768555
+10 27 23 0 1 0.841309
+10 27 24 0 1 0.90332
+10 27 25 0 1 0.960938
+10 27 26 0 1 1
+10 27 27 0 1 1
+10 27 28 0 1 1
+10 27 29 0 0.962402 1
+10 27 30 0 0.90918 1
+10 27 31 0 0.854492 1
+10 28 0 0 1 0
+10 28 1 0 1 0
+10 28 2 0 1 0
+10 28 3 0 1 0
+10 28 4 0 1 0
+10 28 5 0 1 0
+10 28 6 0 1 0
+10 28 7 0 1 0
+10 28 8 0 1 0
+10 28 9 0 1 0
+10 28 10 0 1 0
+10 28 11 0 1 0
+10 28 12 0 1 0
+10 28 13 0 1 0
+10 28 14 0 1 0
+10 28 15 0 1 0
+10 28 16 0 1 0
+10 28 17 0 1 0
+10 28 18 0 1 0.278076
+10 28 19 0 1 0.417236
+10 28 20 0 1 0.529297
+10 28 21 0 1 0.62793
+10 28 22 0 1 0.71582
+10 28 23 0 1 0.791016
+10 28 24 0 1 0.856445
+10 28 25 0 1 0.91748
+10 28 26 0 1 0.974121
+10 28 27 0 1 1
+10 28 28 0 1 1
+10 28 29 0 1 1
+10 28 30 0 0.968262 1
+10 28 31 0 0.914062 1
+10 29 0 0 1 0
+10 29 1 0 1 0
+10 29 2 0 1 0
+10 29 3 0 1 0
+10 29 4 0 1 0
+10 29 5 0 1 0
+10 29 6 0 1 0
+10 29 7 0 1 0
+10 29 8 0 1 0
+10 29 9 0 1 0
+10 29 10 0 1 0
+10 29 11 0 1 0
+10 29 12 0 1 0
+10 29 13 0 1 0
+10 29 14 0 1 0
+10 29 15 0 1 0
+10 29 16 0 1 0
+10 29 17 0 1 0
+10 29 18 0 1 0.190918
+10 29 19 0 1 0.352051
+10 29 20 0 1 0.46875
+10 29 21 0 1 0.569336
+10 29 22 0 1 0.658203
+10 29 23 0 1 0.735352
+10 29 24 0 1 0.802734
+10 29 25 0 1 0.867188
+10 29 26 0 1 0.928223
+10 29 27 0 1 0.983887
+10 29 28 0 1 1
+10 29 29 0 1 1
+10 29 30 0 1 1
+10 29 31 0 0.973145 1
+10 30 0 0 1 0
+10 30 1 0 1 0
+10 30 2 0 1 0
+10 30 3 0 1 0
+10 30 4 0 1 0
+10 30 5 0 1 0
+10 30 6 0 1 0
+10 30 7 0 1 0
+10 30 8 0 1 0
+10 30 9 0 1 0
+10 30 10 0 1 0
+10 30 11 0 1 0
+10 30 12 0 1 0
+10 30 13 0 1 0
+10 30 14 0 1 0
+10 30 15 0 1 0
+10 30 16 0 1 0
+10 30 17 0 1 0
+10 30 18 0 1 0.0219727
+10 30 19 0 1 0.277588
+10 30 20 0 1 0.403564
+10 30 21 0 1 0.506836
+10 30 22 0 1 0.59668
+10 30 23 0 1 0.674805
+10 30 24 0 1 0.743652
+10 30 25 0 1 0.810547
+10 30 26 0 1 0.874512
+10 30 27 0 1 0.935059
+10 30 28 0 1 0.989746
+10 30 29 0 1 1
+10 30 30 0 1 1
+10 30 31 0 1 1
+10 31 0 0 1 0
+10 31 1 0 1 0
+10 31 2 0 1 0
+10 31 3 0 1 0
+10 31 4 0 1 0
+10 31 5 0 1 0
+10 31 6 0 1 0
+10 31 7 0 1 0
+10 31 8 0 1 0
+10 31 9 0 1 0
+10 31 10 0 1 0
+10 31 11 0 1 0
+10 31 12 0 1 0
+10 31 13 0 1 0
+10 31 14 0 1 0
+10 31 15 0 1 0
+10 31 16 0 1 0
+10 31 17 0 1 0
+10 31 18 0 1 0
+10 31 19 0 1 0.18396
+10 31 20 0 1 0.332031
+10 31 21 0 1 0.439941
+10 31 22 0 1 0.531738
+10 31 23 0 1 0.610352
+10 31 24 0 1 0.680176
+10 31 25 0 1 0.748535
+10 31 26 0 1 0.81543
+10 31 27 0 1 0.879883
+10 31 28 0 1 0.94043
+10 31 29 0 1 0.995117
+10 31 30 0 1 1
+10 31 31 0 1 1
+11 0 0 0.330811 0 0
+11 0 1 0.330811 0 0
+11 0 2 0.330811 0 0
+11 0 3 0.330811 0 0
+11 0 4 0.330566 0 0
+11 0 5 0.330566 0 0
+11 0 6 0.330811 0 0
+11 0 7 0.330811 0 0
+11 0 8 0.325195 0 0.0448608
+11 0 9 0.309814 0 0.10553
+11 0 10 0.248535 0 0.136353
+11 0 11 0.214478 0.00818634 0.172607
+11 0 12 0.201172 0.018158 0.237183
+11 0 13 0.172607 0.0345764 0.312988
+11 0 14 0.108032 0.057251 0.397949
+11 0 15 0 0.0814819 0.489746
+11 0 16 0 0.106628 0.585938
+11 0 17 0 0.130981 0.679688
+11 0 18 0 0.15332 0.766602
+11 0 19 0 0.173218 0.843262
+11 0 20 0 0.185181 0.889648
+11 0 21 0 0.187256 0.897461
+11 0 22 0 0.189575 0.90625
+11 0 23 0 0.191772 0.914551
+11 0 24 0 0.194092 0.92334
+11 0 25 0 0.196655 0.933105
+11 0 26 0 0.199463 0.943848
+11 0 27 0 0.202515 0.956055
+11 0 28 0 0.206055 0.969727
+11 0 29 0 0.209839 0.984375
+11 0 30 0 0.213745 0.999512
+11 0 31 0 0.217773 1
+11 1 0 0.330566 0 0
+11 1 1 0.330566 0 0
+11 1 2 0.330566 0 0
+11 1 3 0.330566 0 0
+11 1 4 0.330566 0 0
+11 1 5 0.330566 0 0
+11 1 6 0.330566 0 0
+11 1 7 0.330811 0 0
+11 1 8 0.325195 0 0.0447693
+11 1 9 0.309814 0 0.10553
+11 1 10 0.248535 0 0.136353
+11 1 11 0.214478 0.00843811 0.172607
+11 1 12 0.201172 0.0184021 0.237183
+11 1 13 0.172485 0.0348206 0.312744
+11 1 14 0.107971 0.0574646 0.397949
+11 1 15 0 0.081604 0.489746
+11 1 16 0 0.10675 0.585938
+11 1 17 0 0.130981 0.679688
+11 1 18 0 0.153442 0.766602
+11 1 19 0 0.173218 0.843262
+11 1 20 0 0.185181 0.889648
+11 1 21 0 0.187378 0.897461
+11 1 22 0 0.189575 0.90625
+11 1 23 0 0.191895 0.914551
+11 1 24 0 0.194092 0.92334
+11 1 25 0 0.196655 0.933105
+11 1 26 0 0.199463 0.943848
+11 1 27 0 0.202515 0.956055
+11 1 28 0 0.206055 0.969727
+11 1 29 0 0.209839 0.984375
+11 1 30 0 0.213745 0.999512
+11 1 31 0 0.217773 1
+11 2 0 0.330322 0 0
+11 2 1 0.330322 0 0
+11 2 2 0.330322 0 0
+11 2 3 0.330322 0 0
+11 2 4 0.330322 0 0
+11 2 5 0.330322 0 0
+11 2 6 0.330322 0 0
+11 2 7 0.330566 0 0
+11 2 8 0.324951 0 0.0446167
+11 2 9 0.309814 0 0.105469
+11 2 10 0.248535 0 0.136353
+11 2 11 0.214355 0.00887299 0.172607
+11 2 12 0.20105 0.0188599 0.237183
+11 2 13 0.172485 0.0352783 0.312744
+11 2 14 0.107849 0.0578003 0.397949
+11 2 15 0 0.0819092 0.489746
+11 2 16 0 0.106934 0.585938
+11 2 17 0 0.131104 0.679688
+11 2 18 0 0.153564 0.766602
+11 2 19 0 0.17334 0.843262
+11 2 20 0 0.185303 0.889648
+11 2 21 0 0.187378 0.897461
+11 2 22 0 0.189575 0.90625
+11 2 23 0 0.191895 0.914551
+11 2 24 0 0.194214 0.92334
+11 2 25 0 0.196655 0.933105
+11 2 26 0 0.199463 0.943848
+11 2 27 0 0.202637 0.956055
+11 2 28 0 0.206055 0.969727
+11 2 29 0 0.209839 0.984375
+11 2 30 0 0.213745 0.999512
+11 2 31 0 0.217773 1
+11 3 0 0.329834 0 0
+11 3 1 0.329834 0 0
+11 3 2 0.329834 0 0
+11 3 3 0.329834 0 0
+11 3 4 0.329834 0 0
+11 3 5 0.329834 0 0
+11 3 6 0.329834 0 0
+11 3 7 0.330078 0 0
+11 3 8 0.324707 0 0.044342
+11 3 9 0.30957 0 0.105347
+11 3 10 0.248657 0 0.136475
+11 3 11 0.214233 0.00967407 0.172485
+11 3 12 0.200928 0.0196838 0.237183
+11 3 13 0.172241 0.0361023 0.312744
+11 3 14 0.107544 0.0584412 0.397949
+11 3 15 0 0.0823364 0.489746
+11 3 16 0 0.1073 0.585938
+11 3 17 0 0.13147 0.679688
+11 3 18 0 0.153809 0.766602
+11 3 19 0 0.173462 0.843262
+11 3 20 0 0.185425 0.889648
+11 3 21 0 0.1875 0.897461
+11 3 22 0 0.189697 0.90625
+11 3 23 0 0.191895 0.914551
+11 3 24 0 0.194214 0.92334
+11 3 25 0 0.196777 0.933105
+11 3 26 0 0.199463 0.943848
+11 3 27 0 0.202637 0.956055
+11 3 28 0 0.206177 0.969727
+11 3 29 0 0.209839 0.984375
+11 3 30 0 0.213745 0.999512
+11 3 31 0 0.217773 1
+11 4 0 0.329102 0 0
+11 4 1 0.329102 0 0
+11 4 2 0.329102 0 0
+11 4 3 0.329102 0 0
+11 4 4 0.328857 0 0
+11 4 5 0.328857 0 0
+11 4 6 0.329102 0 0
+11 4 7 0.329346 0 0
+11 4 8 0.324219 0 0.0437927
+11 4 9 0.30957 0 0.105164
+11 4 10 0.248779 0 0.136597
+11 4 11 0.213989 0.0111847 0.172485
+11 4 12 0.200684 0.021225 0.237183
+11 4 13 0.171997 0.0376892 0.312744
+11 4 14 0.107056 0.0596313 0.397949
+11 4 15 0 0.083252 0.489746
+11 4 16 0 0.107971 0.585938
+11 4 17 0 0.131958 0.679688
+11 4 18 0 0.154175 0.766602
+11 4 19 0 0.173828 0.843262
+11 4 20 0 0.185669 0.889648
+11 4 21 0 0.187744 0.897461
+11 4 22 0 0.189819 0.90625
+11 4 23 0 0.192139 0.914551
+11 4 24 0 0.194336 0.92334
+11 4 25 0 0.196777 0.933105
+11 4 26 0 0.199585 0.943848
+11 4 27 0 0.202637 0.956055
+11 4 28 0 0.206177 0.969727
+11 4 29 0 0.209961 0.984375
+11 4 30 0 0.213867 0.999512
+11 4 31 0 0.217896 1
+11 5 0 0.327393 0 0
+11 5 1 0.327393 0 0
+11 5 2 0.327393 0 0
+11 5 3 0.327148 0 0
+11 5 4 0.327148 0 0
+11 5 5 0.327148 0 0
+11 5 6 0.327393 0 0
+11 5 7 0.327881 0 0
+11 5 8 0.323486 0 0.0426941
+11 5 9 0.309082 0 0.104736
+11 5 10 0.248901 0 0.136719
+11 5 11 0.213623 0.0141068 0.172363
+11 5 12 0.200195 0.0242157 0.237061
+11 5 13 0.171387 0.0406799 0.312744
+11 5 14 0.10614 0.0618896 0.397949
+11 5 15 0 0.0848999 0.489746
+11 5 16 0 0.109192 0.585938
+11 5 17 0 0.132935 0.679688
+11 5 18 0 0.154907 0.766602
+11 5 19 0 0.174438 0.843262
+11 5 20 0 0.186157 0.889648
+11 5 21 0 0.18811 0.897461
+11 5 22 0 0.190186 0.90625
+11 5 23 0 0.192383 0.914551
+11 5 24 0 0.19458 0.92334
+11 5 25 0 0.197021 0.933105
+11 5 26 0 0.199829 0.943848
+11 5 27 0 0.202881 0.956055
+11 5 28 0 0.206299 0.969727
+11 5 29 0 0.210083 0.984375
+11 5 30 0 0.213867 0.999512
+11 5 31 0 0.217896 1
+11 6 0 0.323975 0 0
+11 6 1 0.323975 0 0
+11 6 2 0.32373 0 0
+11 6 3 0.32373 0 0
+11 6 4 0.32373 0 0
+11 6 5 0.32373 0 0
+11 6 6 0.323975 0 0
+11 6 7 0.324951 0 0
+11 6 8 0.321533 0 0.0406494
+11 6 9 0.30835 0 0.103882
+11 6 10 0.24939 0 0.137207
+11 6 11 0.212646 0.0196838 0.172241
+11 6 12 0.199219 0.0299225 0.236938
+11 6 13 0.170288 0.0461121 0.312744
+11 6 14 0.104309 0.065979 0.397705
+11 6 15 0 0.0880737 0.489746
+11 6 16 0 0.111633 0.585938
+11 6 17 0 0.134766 0.679688
+11 6 18 0 0.156372 0.766602
+11 6 19 0 0.175537 0.843262
+11 6 20 0 0.187134 0.890137
+11 6 21 0 0.188843 0.897461
+11 6 22 0 0.190796 0.90625
+11 6 23 0 0.192871 0.914551
+11 6 24 0 0.194946 0.92334
+11 6 25 0 0.197388 0.933105
+11 6 26 0 0.200073 0.944336
+11 6 27 0 0.203125 0.956055
+11 6 28 0 0.206543 0.969727
+11 6 29 0 0.210205 0.984375
+11 6 30 0 0.214111 0.999512
+11 6 31 0 0.218018 1
+11 7 0 0.316895 0.000246763 0
+11 7 1 0.316895 0.000291348 0
+11 7 2 0.316895 0.000370264 0
+11 7 3 0.31665 0.000514984 0
+11 7 4 0.31665 0.000788212 0
+11 7 5 0.31665 0.00131607 0
+11 7 6 0.316895 0.00205421 0
+11 7 7 0.318359 0.00199127 0
+11 7 8 0.316895 0 0.0366516
+11 7 9 0.305908 0 0.102051
+11 7 10 0.250244 0.0119781 0.138062
+11 7 11 0.21106 0.0305328 0.171875
+11 7 12 0.197388 0.0410156 0.236694
+11 7 13 0.167969 0.0556641 0.3125
+11 7 14 0.100708 0.0735474 0.397705
+11 7 15 0 0.0938721 0.489502
+11 7 16 0 0.11615 0.585938
+11 7 17 0 0.138306 0.679688
+11 7 18 0 0.15918 0.766602
+11 7 19 0 0.177734 0.843262
+11 7 20 0 0.188965 0.890137
+11 7 21 0 0.190308 0.897949
+11 7 22 0 0.192017 0.90625
+11 7 23 0 0.193848 0.915039
+11 7 24 0 0.195801 0.923828
+11 7 25 0 0.19812 0.933105
+11 7 26 0 0.200684 0.944336
+11 7 27 0 0.203613 0.956055
+11 7 28 0 0.207031 0.969727
+11 7 29 0 0.210571 0.984375
+11 7 30 0 0.214478 1
+11 7 31 0 0.218384 1
+11 8 0 0.302002 0.0453186 0
+11 8 1 0.302002 0.0453491 0
+11 8 2 0.301758 0.0454102 0
+11 8 3 0.301758 0.0455322 0
+11 8 4 0.301758 0.0457458 0
+11 8 5 0.301758 0.0461731 0
+11 8 6 0.301758 0.046875 0
+11 8 7 0.303955 0.0472412 0
+11 8 8 0.30542 0.0450745 0.0298309
+11 8 9 0.29834 0.0404358 0.0974121
+11 8 10 0.252441 0.039978 0.140015
+11 8 11 0.207642 0.0507812 0.171265
+11 8 12 0.193604 0.0596008 0.236206
+11 8 13 0.163574 0.0715942 0.312256
+11 8 14 0.0932617 0.0866699 0.397461
+11 8 15 0 0.104492 0.489502
+11 8 16 0 0.124512 0.585938
+11 8 17 0 0.144897 0.679688
+11 8 18 0 0.164429 0.766602
+11 8 19 0 0.182007 0.84375
+11 8 20 0 0.192383 0.890137
+11 8 21 0 0.192993 0.897949
+11 8 22 0 0.194214 0.90625
+11 8 23 0 0.195801 0.915039
+11 8 24 0 0.19751 0.923828
+11 8 25 0 0.199463 0.933594
+11 8 26 0 0.201904 0.944336
+11 8 27 0 0.204712 0.956543
+11 8 28 0 0.207886 0.970215
+11 8 29 0 0.211426 0.984375
+11 8 30 0 0.215088 1
+11 8 31 0 0.218872 1
+11 9 0 0.272461 0.0913086 0
+11 9 1 0.272461 0.0913086 0
+11 9 2 0.272461 0.0913086 0
+11 9 3 0.272461 0.0913696 0
+11 9 4 0.272461 0.0914917 0
+11 9 5 0.272461 0.0916138 0
+11 9 6 0.272217 0.09198 0
+11 9 7 0.273682 0.0926514 0
+11 9 8 0.276611 0.0933838 0.0222321
+11 9 9 0.281006 0.0939331 0.0881958
+11 9 10 0.256104 0.0859375 0.143433
+11 9 11 0.20105 0.0797119 0.170044
+11 9 12 0.186279 0.0866699 0.235352
+11 9 13 0.154663 0.0960693 0.311523
+11 9 14 0.0773315 0.108032 0.396973
+11 9 15 0 0.122437 0.489258
+11 9 16 0 0.139282 0.585938
+11 9 17 0 0.15686 0.679688
+11 9 18 0 0.174072 0.766602
+11 9 19 0 0.189941 0.84375
+11 9 20 0 0.198975 0.890625
+11 9 21 0 0.198242 0.898438
+11 9 22 0 0.198486 0.906738
+11 9 23 0 0.199341 0.915527
+11 9 24 0 0.200562 0.923828
+11 9 25 0 0.202148 0.933594
+11 9 26 0 0.204224 0.944336
+11 9 27 0 0.206665 0.956543
+11 9 28 0 0.209595 0.970215
+11 9 29 0 0.212891 0.984863
+11 9 30 0 0.216309 1
+11 9 31 0 0.219971 1
+11 10 0 0.233032 0.127197 0
+11 10 1 0.233032 0.127197 0
+11 10 2 0.233032 0.127197 0
+11 10 3 0.233032 0.127197 0
+11 10 4 0.233032 0.127319 0
+11 10 5 0.233032 0.127441 0
+11 10 6 0.23291 0.127563 0
+11 10 7 0.232056 0.127686 0
+11 10 8 0.230469 0.12793 0.02388
+11 10 9 0.230103 0.129639 0.0728149
+11 10 10 0.238281 0.137207 0.13562
+11 10 11 0.188721 0.117249 0.167969
+11 10 12 0.172119 0.122803 0.233765
+11 10 13 0.136841 0.130127 0.310303
+11 10 14 0.0379639 0.139038 0.39624
+11 10 15 0 0.14978 0.48877
+11 10 16 0 0.162598 0.585449
+11 10 17 0 0.176392 0.679688
+11 10 18 0 0.190308 0.766602
+11 10 19 0 0.203491 0.84375
+11 10 20 0 0.210327 0.891602
+11 10 21 0 0.207397 0.898926
+11 10 22 0 0.206055 0.907227
+11 10 23 0 0.205688 0.916016
+11 10 24 0 0.206055 0.924316
+11 10 25 0 0.206909 0.934082
+11 10 26 0 0.208252 0.944824
+11 10 27 0 0.210205 0.957031
+11 10 28 0 0.212646 0.970703
+11 10 29 0 0.215454 0.984863
+11 10 30 0 0.218628 1
+11 10 31 0 0.221924 1
+11 11 0 0.21228 0.182373 0
+11 11 1 0.21228 0.182495 0
+11 11 2 0.21228 0.182495 0
+11 11 3 0.21228 0.182495 0
+11 11 4 0.21228 0.182495 0
+11 11 5 0.21228 0.182617 0
+11 11 6 0.212402 0.182739 0
+11 11 7 0.21167 0.182739 0
+11 11 8 0.207764 0.181152 0.019928
+11 11 9 0.200317 0.178345 0.0687256
+11 11 10 0.187134 0.17334 0.117065
+11 11 11 0.164551 0.164551 0.164551
+11 11 12 0.143921 0.168945 0.231079
+11 11 13 0.0984497 0.174561 0.30835
+11 11 14 0 0.18103 0.394775
+11 11 15 0 0.188232 0.488037
+11 11 16 0 0.196899 0.585449
+11 11 17 0 0.206177 0.679688
+11 11 18 0 0.21582 0.76709
+11 11 19 0 0.22522 0.844238
+11 11 20 0 0.228882 0.893066
+11 11 21 0 0.222534 0.900391
+11 11 22 0 0.218628 0.908691
+11 11 23 0 0.216431 0.916992
+11 11 24 0 0.215332 0.925293
+11 11 25 0 0.214966 0.935059
+11 11 26 0 0.21521 0.945801
+11 11 27 0 0.216187 0.95752
+11 11 28 0 0.217896 0.971191
+11 11 29 0 0.219971 0.985352
+11 11 30 0 0.222534 1
+11 11 31 0 0.225342 1
+11 12 0 0.152832 0.235596 0
+11 12 1 0.152832 0.235596 0
+11 12 2 0.152832 0.235596 0
+11 12 3 0.152832 0.235596 0
+11 12 4 0.152832 0.235596 0
+11 12 5 0.152832 0.235718 0
+11 12 6 0.152954 0.235718 0
+11 12 7 0.152954 0.235962 0
+11 12 8 0.14978 0.234619 0
+11 12 9 0.142578 0.231445 0.0442505
+11 12 10 0.129761 0.22644 0.101257
+11 12 11 0.110291 0.223511 0.158447
+11 12 12 0.0747681 0.22644 0.226562
+11 12 13 0 0.230713 0.304688
+11 12 14 0 0.234985 0.392334
+11 12 15 0 0.239136 0.486328
+11 12 16 0 0.243774 0.584473
+11 12 17 0 0.248291 0.679688
+11 12 18 0 0.25293 0.76709
+11 12 19 0 0.257812 0.844238
+11 12 20 0 0.257324 0.895508
+11 12 21 0 0.246216 0.902344
+11 12 22 0 0.238647 0.910156
+11 12 23 0 0.233643 0.918457
+11 12 24 0 0.230347 0.926758
+11 12 25 0 0.228027 0.936523
+11 12 26 0 0.226685 0.946777
+11 12 27 0 0.226074 0.958496
+11 12 28 0 0.22644 0.972168
+11 12 29 0 0.227539 0.986328
+11 12 30 0 0.229004 1
+11 12 31 0 0.230957 1
+11 13 0 0 0.295898 0
+11 13 1 0 0.295898 0
+11 13 2 0 0.295898 0
+11 13 3 0 0.295898 0
+11 13 4 0 0.295898 0
+11 13 5 0 0.296143 0
+11 13 6 0 0.296143 0
+11 13 7 0 0.296143 0
+11 13 8 0 0.296387 0
+11 13 9 0 0.29541 0.00289345
+11 13 10 0 0.294189 0.0787964
+11 13 11 0 0.294189 0.146729
+11 13 12 0 0.295898 0.218628
+11 13 13 0 0.298584 0.298584
+11 13 14 0 0.30127 0.387695
+11 13 15 0 0.302734 0.483154
+11 13 16 0 0.303955 0.58252
+11 13 17 0 0.303711 0.678711
+11 13 18 0 0.303223 0.76709
+11 13 19 0 0.302734 0.844727
+11 13 20 0 0.298096 0.899414
+11 13 21 0 0.280762 0.905762
+11 13 22 0 0.268311 0.913574
+11 13 23 0 0.259521 0.921387
+11 13 24 0 0.253174 0.929688
+11 13 25 0 0.248169 0.938477
+11 13 26 0 0.244263 0.94873
+11 13 27 0 0.241577 0.960449
+11 13 28 0 0.23999 0.973633
+11 13 29 0 0.23938 0.987793
+11 13 30 0 0.23938 1
+11 13 31 0 0.23999 1
+11 14 0 0 0.374756 0
+11 14 1 0 0.374756 0
+11 14 2 0 0.374756 0
+11 14 3 0 0.374756 0
+11 14 4 0 0.374756 0
+11 14 5 0 0.374756 0
+11 14 6 0 0.374756 0
+11 14 7 0 0.375 0
+11 14 8 0 0.375244 0
+11 14 9 0 0.375244 0
+11 14 10 0 0.375244 0.0293121
+11 14 11 0 0.375977 0.123962
+11 14 12 0 0.376953 0.204224
+11 14 13 0 0.378418 0.288086
+11 14 14 0 0.379395 0.379639
+11 14 15 0 0.379395 0.477295
+11 14 16 0 0.377441 0.579102
+11 14 17 0 0.373291 0.676758
+11 14 18 0 0.367676 0.766602
+11 14 19 0 0.361816 0.845215
+11 14 20 0 0.353027 0.904297
+11 14 21 0 0.328125 0.911133
+11 14 22 0 0.30957 0.918457
+11 14 23 0 0.295898 0.925781
+11 14 24 0 0.285645 0.933594
+11 14 25 0 0.2771 0.942383
+11 14 26 0 0.27002 0.952637
+11 14 27 0 0.264404 0.963379
+11 14 28 0 0.260254 0.976562
+11 14 29 0 0.25708 0.990234
+11 14 30 0 0.254883 1
+11 14 31 0 0.253662 1
+11 15 0 0 0.463379 0
+11 15 1 0 0.463379 0
+11 15 2 0 0.463379 0
+11 15 3 0 0.463379 0
+11 15 4 0 0.463623 0
+11 15 5 0 0.463623 0
+11 15 6 0 0.463623 0
+11 15 7 0 0.463623 0
+11 15 8 0 0.463867 0
+11 15 9 0 0.464111 0
+11 15 10 0 0.4646 0
+11 15 11 0 0.465332 0.0767822
+11 15 12 0 0.466553 0.178223
+11 15 13 0 0.467529 0.27002
+11 15 14 0 0.468018 0.365967
+11 15 15 0 0.466797 0.467041
+11 15 16 0 0.463135 0.571777
+11 15 17 0 0.455566 0.672363
+11 15 18 0 0.445557 0.76416
+11 15 19 0 0.43457 0.844727
+11 15 20 0 0.422607 0.910156
+11 15 21 0 0.389648 0.918457
+11 15 22 0 0.364014 0.92627
+11 15 23 0 0.344727 0.933105
+11 15 24 0 0.32959 0.94043
+11 15 25 0 0.31665 0.94873
+11 15 26 0 0.30542 0.958008
+11 15 27 0 0.295898 0.96875
+11 15 28 0 0.28833 0.980957
+11 15 29 0 0.282227 0.994141
+11 15 30 0 0.2771 1
+11 15 31 0 0.273193 1
+11 16 0 0 0.558594 0
+11 16 1 0 0.558594 0
+11 16 2 0 0.558594 0
+11 16 3 0 0.558594 0
+11 16 4 0 0.558594 0
+11 16 5 0 0.558594 0
+11 16 6 0 0.558594 0
+11 16 7 0 0.558594 0
+11 16 8 0 0.558594 0
+11 16 9 0 0.558594 0
+11 16 10 0 0.559082 0
+11 16 11 0 0.560059 0
+11 16 12 0 0.561523 0.131592
+11 16 13 0 0.562988 0.240479
+11 16 14 0 0.563965 0.343994
+11 16 15 0 0.562988 0.449951
+11 16 16 0 0.558594 0.558594
+11 16 17 0 0.549316 0.663574
+11 16 18 0 0.535645 0.758789
+11 16 19 0 0.520508 0.842285
+11 16 20 0 0.503906 0.910645
+11 16 21 0 0.466064 0.927734
+11 16 22 0 0.433105 0.937012
+11 16 23 0 0.406982 0.944336
+11 16 24 0 0.386475 0.951172
+11 16 25 0 0.368164 0.958496
+11 16 26 0 0.352051 0.967285
+11 16 27 0 0.337891 0.976562
+11 16 28 0 0.325928 0.987793
+11 16 29 0 0.315918 1
+11 16 30 0 0.307129 1
+11 16 31 0 0.300049 1
+11 17 0 0 0.65332 0
+11 17 1 0 0.65332 0
+11 17 2 0 0.65332 0
+11 17 3 0 0.65332 0
+11 17 4 0 0.65332 0
+11 17 5 0 0.65332 0
+11 17 6 0 0.65332 0
+11 17 7 0 0.65332 0
+11 17 8 0 0.65332 0
+11 17 9 0 0.65332 0
+11 17 10 0 0.653809 0
+11 17 11 0 0.654785 0
+11 17 12 0 0.656738 0.0205078
+11 17 13 0 0.658691 0.194458
+11 17 14 0 0.660645 0.311279
+11 17 15 0 0.660645 0.424072
+11 17 16 0 0.656738 0.538086
+11 17 17 0 0.647461 0.647949
+11 17 18 0 0.632812 0.748047
+11 17 19 0 0.614258 0.835449
+11 17 20 0 0.59375 0.906738
+11 17 21 0 0.553711 0.937012
+11 17 22 0 0.514648 0.950684
+11 17 23 0 0.482178 0.959473
+11 17 24 0 0.455566 0.966309
+11 17 25 0 0.431152 0.973145
+11 17 26 0 0.409424 0.980469
+11 17 27 0 0.389893 0.98877
+11 17 28 0 0.373047 0.998535
+11 17 29 0 0.358154 1
+11 17 30 0 0.345215 1
+11 17 31 0 0.333984 1
+11 18 0 0 0.742188 0
+11 18 1 0 0.742188 0
+11 18 2 0 0.742188 0
+11 18 3 0 0.742188 0
+11 18 4 0 0.742188 0
+11 18 5 0 0.742188 0
+11 18 6 0 0.742188 0
+11 18 7 0 0.742188 0
+11 18 8 0 0.742188 0
+11 18 9 0 0.742676 0
+11 18 10 0 0.742676 0
+11 18 11 0 0.743164 0
+11 18 12 0 0.745117 0
+11 18 13 0 0.748047 0.118347
+11 18 14 0 0.750977 0.265625
+11 18 15 0 0.75293 0.388428
+11 18 16 0 0.750977 0.508301
+11 18 17 0 0.743652 0.624023
+11 18 18 0 0.72998 0.72998
+11 18 19 0 0.710449 0.822754
+11 18 20 0 0.687012 0.898438
+11 18 21 0 0.648438 0.942383
+11 18 22 0 0.605957 0.964355
+11 18 23 0 0.567871 0.977051
+11 18 24 0 0.535156 0.985352
+11 18 25 0 0.504395 0.992188
+11 18 26 0 0.476562 0.998535
+11 18 27 0 0.450928 1
+11 18 28 0 0.428223 1
+11 18 29 0 0.407959 1
+11 18 30 0 0.390137 1
+11 18 31 0 0.374268 1
+11 19 0 0 0.822754 0
+11 19 1 0 0.822754 0
+11 19 2 0 0.822754 0
+11 19 3 0 0.822754 0
+11 19 4 0 0.822754 0
+11 19 5 0 0.822754 0
+11 19 6 0 0.822754 0
+11 19 7 0 0.822754 0
+11 19 8 0 0.822754 0
+11 19 9 0 0.822754 0
+11 19 10 0 0.823242 0
+11 19 11 0 0.823242 0
+11 19 12 0 0.825195 0
+11 19 13 0 0.828125 0
+11 19 14 0 0.832031 0.20459
+11 19 15 0 0.835449 0.344238
+11 19 16 0 0.835938 0.47168
+11 19 17 0 0.832031 0.592773
+11 19 18 0 0.820801 0.70459
+11 19 19 0 0.802246 0.802734
+11 19 20 0 0.778809 0.883789
+11 19 21 0 0.743652 0.941406
+11 19 22 0 0.701172 0.975098
+11 19 23 0 0.659668 0.994141
+11 19 24 0 0.62207 1
+11 19 25 0 0.585449 1
+11 19 26 0 0.55127 1
+11 19 27 0 0.519043 1
+11 19 28 0 0.490234 1
+11 19 29 0 0.464111 1
+11 19 30 0 0.440674 1
+11 19 31 0 0.419922 1
+11 20 0 0 0.892578 0
+11 20 1 0 0.892578 0
+11 20 2 0 0.892578 0
+11 20 3 0 0.892578 0
+11 20 4 0 0.892578 0
+11 20 5 0 0.892578 0
+11 20 6 0 0.892578 0
+11 20 7 0 0.892578 0
+11 20 8 0 0.892578 0
+11 20 9 0 0.893066 0
+11 20 10 0 0.893066 0
+11 20 11 0 0.893066 0
+11 20 12 0 0.894043 0
+11 20 13 0 0.897461 0
+11 20 14 0 0.901855 0.113037
+11 20 15 0 0.90625 0.292236
+11 20 16 0 0.90918 0.429443
+11 20 17 0 0.908203 0.555664
+11 20 18 0 0.900391 0.672852
+11 20 19 0 0.884766 0.775879
+11 20 20 0 0.862305 0.862793
+11 20 21 0 0.832031 0.931641
+11 20 22 0 0.792969 0.978516
+11 20 23 0 0.751465 1
+11 20 24 0 0.710938 1
+11 20 25 0 0.669922 1
+11 20 26 0 0.629883 1
+11 20 27 0 0.591797 1
+11 20 28 0 0.556152 1
+11 20 29 0 0.523926 1
+11 20 30 0 0.495117 1
+11 20 31 0 0.46875 1
+11 21 0 0 0.952637 0
+11 21 1 0 0.952637 0
+11 21 2 0 0.952637 0
+11 21 3 0 0.952637 0
+11 21 4 0 0.952637 0
+11 21 5 0 0.952637 0
+11 21 6 0 0.952637 0
+11 21 7 0 0.952637 0
+11 21 8 0 0.952637 0
+11 21 9 0 0.952637 0
+11 21 10 0 0.952637 0
+11 21 11 0 0.953125 0
+11 21 12 0 0.953125 0
+11 21 13 0 0.956055 0
+11 21 14 0 0.960938 0
+11 21 15 0 0.966309 0.228027
+11 21 16 0 0.971191 0.381104
+11 21 17 0 0.973145 0.513672
+11 21 18 0 0.96875 0.634766
+11 21 19 0 0.957031 0.742676
+11 21 20 0 0.9375 0.834961
+11 21 21 0 0.911621 0.912109
+11 21 22 0 0.87793 0.970703
+11 21 23 0 0.839355 1
+11 21 24 0 0.79834 1
+11 21 25 0 0.754883 1
+11 21 26 0 0.710938 1
+11 21 27 0 0.66748 1
+11 21 28 0 0.626465 1
+11 21 29 0 0.587891 1
+11 21 30 0 0.553223 1
+11 21 31 0 0.521484 1
+11 22 0 0 1 0
+11 22 1 0 1 0
+11 22 2 0 1 0
+11 22 3 0 1 0
+11 22 4 0 1 0
+11 22 5 0 1 0
+11 22 6 0 1 0
+11 22 7 0 1 0
+11 22 8 0 1 0
+11 22 9 0 1 0
+11 22 10 0 1 0
+11 22 11 0 1 0
+11 22 12 0 1 0
+11 22 13 0 1 0
+11 22 14 0 1 0
+11 22 15 0 1 0.141602
+11 22 16 0 1 0.327881
+11 22 17 0 1 0.468018
+11 22 18 0 1 0.593262
+11 22 19 0 1 0.705078
+11 22 20 0 1 0.801758
+11 22 21 0 0.979492 0.883789
+11 22 22 0 0.950684 0.951172
+11 22 23 0 0.916992 1
+11 22 24 0 0.878906 1
+11 22 25 0 0.835938 1
+11 22 26 0 0.790039 1
+11 22 27 0 0.743164 1
+11 22 28 0 0.697266 1
+11 22 29 0 0.653809 1
+11 22 30 0 0.613281 1
+11 22 31 0 0.576172 1
+11 23 0 0 1 0
+11 23 1 0 1 0
+11 23 2 0 1 0
+11 23 3 0 1 0
+11 23 4 0 1 0
+11 23 5 0 1 0
+11 23 6 0 1 0
+11 23 7 0 1 0
+11 23 8 0 1 0
+11 23 9 0 1 0
+11 23 10 0 1 0
+11 23 11 0 1 0
+11 23 12 0 1 0
+11 23 13 0 1 0
+11 23 14 0 1 0
+11 23 15 0 1 0
+11 23 16 0 1 0.27002
+11 23 17 0 1 0.421387
+11 23 18 0 1 0.550781
+11 23 19 0 1 0.665527
+11 23 20 0 1 0.765625
+11 23 21 0 1 0.852051
+11 23 22 0 1 0.924316
+11 23 23 0 0.980957 0.981445
+11 23 24 0 0.947754 1
+11 23 25 0 0.907715 1
+11 23 26 0 0.862305 1
+11 23 27 0 0.813965 1
+11 23 28 0 0.765137 1
+11 23 29 0 0.717285 1
+11 23 30 0 0.671875 1
+11 23 31 0 0.629883 1
+11 24 0 0 1 0
+11 24 1 0 1 0
+11 24 2 0 1 0
+11 24 3 0 1 0
+11 24 4 0 1 0
+11 24 5 0 1 0
+11 24 6 0 1 0
+11 24 7 0 1 0
+11 24 8 0 1 0
+11 24 9 0 1 0
+11 24 10 0 1 0
+11 24 11 0 1 0
+11 24 12 0 1 0
+11 24 13 0 1 0
+11 24 14 0 1 0
+11 24 15 0 1 0
+11 24 16 0 1 0.203979
+11 24 17 0 1 0.373291
+11 24 18 0 1 0.507324
+11 24 19 0 1 0.625
+11 24 20 0 1 0.727539
+11 24 21 0 1 0.817871
+11 24 22 0 1 0.894043
+11 24 23 0 1 0.955566
+11 24 24 0 1 1
+11 24 25 0 0.969238 1
+11 24 26 0 0.92627 1
+11 24 27 0 0.878418 1
+11 24 28 0 0.828125 1
+11 24 29 0 0.777832 1
+11 24 30 0 0.728516 1
+11 24 31 0 0.682129 1
+11 25 0 0 1 0
+11 25 1 0 1 0
+11 25 2 0 1 0
+11 25 3 0 1 0
+11 25 4 0 1 0
+11 25 5 0 1 0
+11 25 6 0 1 0
+11 25 7 0 1 0
+11 25 8 0 1 0
+11 25 9 0 1 0
+11 25 10 0 1 0
+11 25 11 0 1 0
+11 25 12 0 1 0
+11 25 13 0 1 0
+11 25 14 0 1 0
+11 25 15 0 1 0
+11 25 16 0 1 0.103455
+11 25 17 0 1 0.318359
+11 25 18 0 1 0.459473
+11 25 19 0 1 0.57959
+11 25 20 0 1 0.68457
+11 25 21 0 1 0.777832
+11 25 22 0 1 0.85791
+11 25 23 0 1 0.923828
+11 25 24 0 1 0.978027
+11 25 25 0 1 1
+11 25 26 0 0.987305 1
+11 25 27 0 0.941895 1
+11 25 28 0 0.891602 1
+11 25 29 0 0.839844 1
+11 25 30 0 0.788086 1
+11 25 31 0 0.737793 1
+11 26 0 0 1 0
+11 26 1 0 1 0
+11 26 2 0 1 0
+11 26 3 0 1 0
+11 26 4 0 1 0
+11 26 5 0 1 0
+11 26 6 0 1 0
+11 26 7 0 1 0
+11 26 8 0 1 0
+11 26 9 0 1 0
+11 26 10 0 1 0
+11 26 11 0 1 0
+11 26 12 0 1 0
+11 26 13 0 1 0
+11 26 14 0 1 0
+11 26 15 0 1 0
+11 26 16 0 1 0
+11 26 17 0 1 0.25293
+11 26 18 0 1 0.40625
+11 26 19 0 1 0.530273
+11 26 20 0 1 0.637207
+11 26 21 0 1 0.732422
+11 26 22 0 1 0.815918
+11 26 23 0 1 0.885742
+11 26 24 0 1 0.944336
+11 26 25 0 1 0.99707
+11 26 26 0 1 1
+11 26 27 0 1 1
+11 26 28 0 0.954102 1
+11 26 29 0 0.901855 1
+11 26 30 0 0.848633 1
+11 26 31 0 0.795898 1
+11 27 0 0 1 0
+11 27 1 0 1 0
+11 27 2 0 1 0
+11 27 3 0 1 0
+11 27 4 0 1 0
+11 27 5 0 1 0
+11 27 6 0 1 0
+11 27 7 0 1 0
+11 27 8 0 1 0
+11 27 9 0 1 0
+11 27 10 0 1 0
+11 27 11 0 1 0
+11 27 12 0 1 0
+11 27 13 0 1 0
+11 27 14 0 1 0
+11 27 15 0 1 0
+11 27 16 0 1 0
+11 27 17 0 1 0.165771
+11 27 18 0 1 0.34668
+11 27 19 0 1 0.476074
+11 27 20 0 1 0.585449
+11 27 21 0 1 0.682617
+11 27 22 0 1 0.768555
+11 27 23 0 1 0.841309
+11 27 24 0 1 0.903809
+11 27 25 0 1 0.960938
+11 27 26 0 1 1
+11 27 27 0 1 1
+11 27 28 0 1 1
+11 27 29 0 0.962402 1
+11 27 30 0 0.90918 1
+11 27 31 0 0.854492 1
+11 28 0 0 1 0
+11 28 1 0 1 0
+11 28 2 0 1 0
+11 28 3 0 1 0
+11 28 4 0 1 0
+11 28 5 0 1 0
+11 28 6 0 1 0
+11 28 7 0 1 0
+11 28 8 0 1 0
+11 28 9 0 1 0
+11 28 10 0 1 0
+11 28 11 0 1 0
+11 28 12 0 1 0
+11 28 13 0 1 0
+11 28 14 0 1 0
+11 28 15 0 1 0
+11 28 16 0 1 0
+11 28 17 0 1 0
+11 28 18 0 1 0.278076
+11 28 19 0 1 0.417236
+11 28 20 0 1 0.529297
+11 28 21 0 1 0.628418
+11 28 22 0 1 0.71582
+11 28 23 0 1 0.791504
+11 28 24 0 1 0.856445
+11 28 25 0 1 0.917969
+11 28 26 0 1 0.974609
+11 28 27 0 1 1
+11 28 28 0 1 1
+11 28 29 0 1 1
+11 28 30 0 0.968262 1
+11 28 31 0 0.914062 1
+11 29 0 0 1 0
+11 29 1 0 1 0
+11 29 2 0 1 0
+11 29 3 0 1 0
+11 29 4 0 1 0
+11 29 5 0 1 0
+11 29 6 0 1 0
+11 29 7 0 1 0
+11 29 8 0 1 0
+11 29 9 0 1 0
+11 29 10 0 1 0
+11 29 11 0 1 0
+11 29 12 0 1 0
+11 29 13 0 1 0
+11 29 14 0 1 0
+11 29 15 0 1 0
+11 29 16 0 1 0
+11 29 17 0 1 0
+11 29 18 0 1 0.190918
+11 29 19 0 1 0.352051
+11 29 20 0 1 0.46875
+11 29 21 0 1 0.569336
+11 29 22 0 1 0.658691
+11 29 23 0 1 0.735352
+11 29 24 0 1 0.802734
+11 29 25 0 1 0.867188
+11 29 26 0 1 0.928223
+11 29 27 0 1 0.983887
+11 29 28 0 1 1
+11 29 29 0 1 1
+11 29 30 0 1 1
+11 29 31 0 0.973633 1
+11 30 0 0 1 0
+11 30 1 0 1 0
+11 30 2 0 1 0
+11 30 3 0 1 0
+11 30 4 0 1 0
+11 30 5 0 1 0
+11 30 6 0 1 0
+11 30 7 0 1 0
+11 30 8 0 1 0
+11 30 9 0 1 0
+11 30 10 0 1 0
+11 30 11 0 1 0
+11 30 12 0 1 0
+11 30 13 0 1 0
+11 30 14 0 1 0
+11 30 15 0 1 0
+11 30 16 0 1 0
+11 30 17 0 1 0
+11 30 18 0 1 0.0214691
+11 30 19 0 1 0.277344
+11 30 20 0 1 0.403564
+11 30 21 0 1 0.506836
+11 30 22 0 1 0.59668
+11 30 23 0 1 0.674805
+11 30 24 0 1 0.743652
+11 30 25 0 1 0.810547
+11 30 26 0 1 0.874512
+11 30 27 0 1 0.935059
+11 30 28 0 1 0.990234
+11 30 29 0 1 1
+11 30 30 0 1 1
+11 30 31 0 1 1
+11 31 0 0 1 0
+11 31 1 0 1 0
+11 31 2 0 1 0
+11 31 3 0 1 0
+11 31 4 0 1 0
+11 31 5 0 1 0
+11 31 6 0 1 0
+11 31 7 0 1 0
+11 31 8 0 1 0
+11 31 9 0 1 0
+11 31 10 0 1 0
+11 31 11 0 1 0
+11 31 12 0 1 0
+11 31 13 0 1 0
+11 31 14 0 1 0
+11 31 15 0 1 0
+11 31 16 0 1 0
+11 31 17 0 1 0
+11 31 18 0 1 0
+11 31 19 0 1 0.18396
+11 31 20 0 1 0.332031
+11 31 21 0 1 0.440186
+11 31 22 0 1 0.531738
+11 31 23 0 1 0.610352
+11 31 24 0 1 0.680176
+11 31 25 0 1 0.748535
+11 31 26 0 1 0.81543
+11 31 27 0 1 0.879883
+11 31 28 0 1 0.94043
+11 31 29 0 1 0.995117
+11 31 30 0 1 1
+11 31 31 0 1 1
+12 0 0 0.419434 0 0
+12 0 1 0.419434 0 0
+12 0 2 0.419434 0 0
+12 0 3 0.419434 0 0
+12 0 4 0.419434 0 0
+12 0 5 0.419434 0 0
+12 0 6 0.419434 0 0
+12 0 7 0.421631 0 0
+12 0 8 0.427979 0 0
+12 0 9 0.427734 0 0.0834351
+12 0 10 0.406982 0 0.155762
+12 0 11 0.330566 0 0.191406
+12 0 12 0.290771 0.0145645 0.237061
+12 0 13 0.272949 0.0308685 0.312256
+12 0 14 0.238403 0.0543823 0.397705
+12 0 15 0.170776 0.0794678 0.48999
+12 0 16 0 0.105286 0.586914
+12 0 17 0 0.130005 0.680664
+12 0 18 0 0.152832 0.768066
+12 0 19 0 0.172852 0.844727
+12 0 20 0 0.185669 0.894043
+12 0 21 0 0.187744 0.901367
+12 0 22 0 0.190063 0.909668
+12 0 23 0 0.192261 0.917969
+12 0 24 0 0.19458 0.92627
+12 0 25 0 0.197144 0.936035
+12 0 26 0 0.199829 0.946289
+12 0 27 0 0.202881 0.958496
+12 0 28 0 0.206421 0.97168
+12 0 29 0 0.210083 0.986328
+12 0 30 0 0.213989 1
+12 0 31 0 0.218018 1
+12 1 0 0.419434 0 0
+12 1 1 0.419434 0 0
+12 1 2 0.419434 0 0
+12 1 3 0.419434 0 0
+12 1 4 0.419434 0 0
+12 1 5 0.419434 0 0
+12 1 6 0.419434 0 0
+12 1 7 0.421631 0 0
+12 1 8 0.427734 0 0
+12 1 9 0.42749 0 0.083374
+12 1 10 0.406982 0 0.155762
+12 1 11 0.330566 0 0.191406
+12 1 12 0.290771 0.0148163 0.237061
+12 1 13 0.272949 0.0311279 0.312256
+12 1 14 0.238281 0.0545654 0.397705
+12 1 15 0.170776 0.0796509 0.48999
+12 1 16 0 0.105408 0.586914
+12 1 17 0 0.130127 0.680664
+12 1 18 0 0.152832 0.768066
+12 1 19 0 0.172852 0.844727
+12 1 20 0 0.185669 0.894043
+12 1 21 0 0.187866 0.901367
+12 1 22 0 0.190063 0.909668
+12 1 23 0 0.192383 0.917969
+12 1 24 0 0.19458 0.92627
+12 1 25 0 0.197144 0.936035
+12 1 26 0 0.199829 0.946289
+12 1 27 0 0.203003 0.958496
+12 1 28 0 0.206421 0.97168
+12 1 29 0 0.210205 0.986328
+12 1 30 0 0.213989 1
+12 1 31 0 0.218018 1
+12 2 0 0.419434 0 0
+12 2 1 0.419434 0 0
+12 2 2 0.419434 0 0
+12 2 3 0.419434 0 0
+12 2 4 0.419434 0 0
+12 2 5 0.419434 0 0
+12 2 6 0.419189 0 0
+12 2 7 0.421631 0 0
+12 2 8 0.427734 0 0
+12 2 9 0.42749 0 0.083252
+12 2 10 0.406982 0 0.155762
+12 2 11 0.330566 0 0.191406
+12 2 12 0.290771 0.0152664 0.236938
+12 2 13 0.272949 0.0315857 0.312256
+12 2 14 0.238281 0.0549316 0.397705
+12 2 15 0.170654 0.079895 0.48999
+12 2 16 0 0.105591 0.586914
+12 2 17 0 0.130249 0.680664
+12 2 18 0 0.152954 0.768066
+12 2 19 0 0.172974 0.844727
+12 2 20 0 0.185791 0.894043
+12 2 21 0 0.187866 0.901367
+12 2 22 0 0.190063 0.909668
+12 2 23 0 0.192383 0.917969
+12 2 24 0 0.19458 0.92627
+12 2 25 0 0.197144 0.936035
+12 2 26 0 0.199951 0.946289
+12 2 27 0 0.203003 0.958496
+12 2 28 0 0.206421 0.97168
+12 2 29 0 0.210205 0.986328
+12 2 30 0 0.213989 1
+12 2 31 0 0.218018 1
+12 3 0 0.419189 0 0
+12 3 1 0.419189 0 0
+12 3 2 0.419189 0 0
+12 3 3 0.419189 0 0
+12 3 4 0.419189 0 0
+12 3 5 0.419189 0 0
+12 3 6 0.419189 0 0
+12 3 7 0.421387 0 0
+12 3 8 0.427734 0 0
+12 3 9 0.427246 0 0.0830688
+12 3 10 0.406982 0 0.155762
+12 3 11 0.330566 0 0.191406
+12 3 12 0.290771 0.016098 0.236938
+12 3 13 0.272705 0.0324097 0.312256
+12 3 14 0.238159 0.055603 0.397705
+12 3 15 0.170532 0.0803833 0.48999
+12 3 16 0 0.105957 0.586914
+12 3 17 0 0.130615 0.680664
+12 3 18 0 0.153198 0.768066
+12 3 19 0 0.173096 0.844727
+12 3 20 0 0.185913 0.894043
+12 3 21 0 0.187988 0.901367
+12 3 22 0 0.190186 0.909668
+12 3 23 0 0.192505 0.917969
+12 3 24 0 0.194702 0.92627
+12 3 25 0 0.197144 0.936035
+12 3 26 0 0.199951 0.946289
+12 3 27 0 0.203003 0.958496
+12 3 28 0 0.206543 0.97168
+12 3 29 0 0.210205 0.986328
+12 3 30 0 0.214111 1
+12 3 31 0 0.218018 1
+12 4 0 0.418945 0 0
+12 4 1 0.418945 0 0
+12 4 2 0.418945 0 0
+12 4 3 0.418945 0 0
+12 4 4 0.418945 0 0
+12 4 5 0.418945 0 0
+12 4 6 0.418701 0 0
+12 4 7 0.421143 0 0
+12 4 8 0.427246 0 0
+12 4 9 0.427002 0 0.0827637
+12 4 10 0.406738 0 0.15564
+12 4 11 0.330566 0 0.191528
+12 4 12 0.290527 0.0176544 0.236938
+12 4 13 0.272705 0.0339661 0.312256
+12 4 14 0.237915 0.0568237 0.397705
+12 4 15 0.170288 0.0812988 0.48999
+12 4 16 0 0.106628 0.586914
+12 4 17 0 0.131104 0.680664
+12 4 18 0 0.153564 0.768066
+12 4 19 0 0.173462 0.844727
+12 4 20 0 0.186157 0.894043
+12 4 21 0 0.188232 0.901367
+12 4 22 0 0.19043 0.909668
+12 4 23 0 0.192627 0.917969
+12 4 24 0 0.194824 0.92627
+12 4 25 0 0.197266 0.936035
+12 4 26 0 0.200073 0.946289
+12 4 27 0 0.203125 0.958496
+12 4 28 0 0.206543 0.97168
+12 4 29 0 0.210205 0.986328
+12 4 30 0 0.214111 1
+12 4 31 0 0.21814 1
+12 5 0 0.418213 0 0
+12 5 1 0.418213 0 0
+12 5 2 0.418213 0 0
+12 5 3 0.418213 0 0
+12 5 4 0.418213 0 0
+12 5 5 0.418213 0 0
+12 5 6 0.418213 0 0
+12 5 7 0.42041 0 0
+12 5 8 0.426758 0 0
+12 5 9 0.426758 0 0.0820312
+12 5 10 0.406738 0 0.155396
+12 5 11 0.330566 0 0.19165
+12 5 12 0.290283 0.0206604 0.236938
+12 5 13 0.272217 0.0369873 0.312256
+12 5 14 0.237549 0.0591431 0.397461
+12 5 15 0.169678 0.0830078 0.48999
+12 5 16 0 0.10791 0.586914
+12 5 17 0 0.13208 0.680664
+12 5 18 0 0.154297 0.768066
+12 5 19 0 0.174072 0.844727
+12 5 20 0 0.186646 0.894043
+12 5 21 0 0.188599 0.901367
+12 5 22 0 0.190674 0.909668
+12 5 23 0 0.192871 0.917969
+12 5 24 0 0.195068 0.92627
+12 5 25 0 0.19751 0.936035
+12 5 26 0 0.200195 0.946289
+12 5 27 0 0.203247 0.958496
+12 5 28 0 0.206665 0.97168
+12 5 29 0 0.210327 0.986328
+12 5 30 0 0.214233 1
+12 5 31 0 0.21814 1
+12 6 0 0.416992 0 0
+12 6 1 0.416992 0 0
+12 6 2 0.416992 0 0
+12 6 3 0.416992 0 0
+12 6 4 0.416992 0 0
+12 6 5 0.416992 0 0
+12 6 6 0.416748 0 0
+12 6 7 0.418945 0 0
+12 6 8 0.425781 0 0
+12 6 9 0.425537 0 0.0807495
+12 6 10 0.406494 0 0.154907
+12 6 11 0.330811 0 0.192017
+12 6 12 0.289551 0.0263977 0.236816
+12 6 13 0.271484 0.0426941 0.312012
+12 6 14 0.236694 0.0634155 0.397461
+12 6 15 0.168579 0.0861816 0.48999
+12 6 16 0 0.110352 0.586914
+12 6 17 0 0.133911 0.680664
+12 6 18 0 0.155762 0.768066
+12 6 19 0 0.175171 0.844727
+12 6 20 0 0.187622 0.894043
+12 6 21 0 0.189331 0.901367
+12 6 22 0 0.191284 0.909668
+12 6 23 0 0.193359 0.917969
+12 6 24 0 0.195435 0.92627
+12 6 25 0 0.197876 0.936035
+12 6 26 0 0.200562 0.946289
+12 6 27 0 0.203491 0.958496
+12 6 28 0 0.206909 0.97168
+12 6 29 0 0.210571 0.986328
+12 6 30 0 0.214355 1
+12 6 31 0 0.218384 1
+12 7 0 0.414062 0 0
+12 7 1 0.414062 0 0
+12 7 2 0.414062 0 0
+12 7 3 0.414062 0 0
+12 7 4 0.414062 0 0
+12 7 5 0.414062 0 0
+12 7 6 0.413818 0 0
+12 7 7 0.416016 0 0
+12 7 8 0.423096 0 0
+12 7 9 0.42334 0 0.078186
+12 7 10 0.405518 0 0.153931
+12 7 11 0.331299 0.00302124 0.192505
+12 7 12 0.28833 0.0375671 0.236572
+12 7 13 0.270264 0.0526428 0.312012
+12 7 14 0.235229 0.071167 0.397461
+12 7 15 0.166382 0.0921631 0.489746
+12 7 16 0 0.114929 0.586914
+12 7 17 0 0.137451 0.680664
+12 7 18 0 0.158569 0.768066
+12 7 19 0 0.17749 0.844727
+12 7 20 0 0.189453 0.894043
+12 7 21 0 0.190796 0.901367
+12 7 22 0 0.192505 0.909668
+12 7 23 0 0.194336 0.917969
+12 7 24 0 0.196289 0.92627
+12 7 25 0 0.198608 0.936035
+12 7 26 0 0.201172 0.946777
+12 7 27 0 0.203979 0.958496
+12 7 28 0 0.207397 0.97168
+12 7 29 0 0.210938 0.986328
+12 7 30 0 0.214722 1
+12 7 31 0 0.218628 1
+12 8 0 0.407471 0.00897217 0
+12 8 1 0.407471 0.00901031 0
+12 8 2 0.407471 0.00908661 0
+12 8 3 0.407471 0.00922394 0
+12 8 4 0.407471 0.00948334 0
+12 8 5 0.407227 0.00998688 0
+12 8 6 0.407227 0.0109482 0
+12 8 7 0.40918 0.0121765 0
+12 8 8 0.416748 0.0115662 0
+12 8 9 0.41748 0.00585938 0.0730591
+12 8 10 0.403076 0.00119209 0.151733
+12 8 11 0.332275 0.0290985 0.193726
+12 8 12 0.285889 0.0570068 0.236084
+12 8 13 0.267578 0.0690918 0.311523
+12 8 14 0.232178 0.0846558 0.397217
+12 8 15 0.162109 0.102905 0.489746
+12 8 16 0 0.123413 0.586426
+12 8 17 0 0.144165 0.680664
+12 8 18 0 0.16394 0.768066
+12 8 19 0 0.181763 0.844727
+12 8 20 0 0.192993 0.894531
+12 8 21 0 0.193604 0.901855
+12 8 22 0 0.194702 0.909668
+12 8 23 0 0.196289 0.917969
+12 8 24 0 0.197998 0.926758
+12 8 25 0 0.199951 0.936035
+12 8 26 0 0.202393 0.946777
+12 8 27 0 0.205078 0.958496
+12 8 28 0 0.208252 0.972168
+12 8 29 0 0.21167 0.986328
+12 8 30 0 0.215332 1
+12 8 31 0 0.219238 1
+12 9 0 0.391357 0.0800171 0
+12 9 1 0.391357 0.0800171 0
+12 9 2 0.391357 0.0800781 0
+12 9 3 0.391357 0.0801392 0
+12 9 4 0.391357 0.0802612 0
+12 9 5 0.391357 0.0805664 0
+12 9 6 0.391113 0.0810547 0
+12 9 7 0.392334 0.0821533 0
+12 9 8 0.399902 0.0836792 0
+12 9 9 0.4021 0.0812378 0.0635986
+12 9 10 0.393555 0.0757446 0.145874
+12 9 11 0.334961 0.0739136 0.196289
+12 9 12 0.28125 0.0848999 0.235107
+12 9 13 0.262451 0.0941772 0.311035
+12 9 14 0.226318 0.106323 0.396729
+12 9 15 0.153564 0.121155 0.489502
+12 9 16 0 0.138306 0.586426
+12 9 17 0 0.15625 0.680664
+12 9 18 0 0.173706 0.768066
+12 9 19 0 0.189697 0.845215
+12 9 20 0 0.199463 0.89502
+12 9 21 0 0.198853 0.902344
+12 9 22 0 0.199097 0.910156
+12 9 23 0 0.199829 0.918457
+12 9 24 0 0.20105 0.926758
+12 9 25 0 0.202637 0.936523
+12 9 26 0 0.20459 0.946777
+12 9 27 0 0.207031 0.958496
+12 9 28 0 0.209961 0.972168
+12 9 29 0 0.213135 0.986328
+12 9 30 0 0.216675 1
+12 9 31 0 0.220215 1
+12 10 0 0.357422 0.13562 0
+12 10 1 0.357422 0.13562 0
+12 10 2 0.357422 0.13562 0
+12 10 3 0.357422 0.13562 0
+12 10 4 0.357422 0.135742 0
+12 10 5 0.357178 0.135864 0
+12 10 6 0.357178 0.136108 0
+12 10 7 0.357178 0.136597 0
+12 10 8 0.361328 0.138428 0
+12 10 9 0.365234 0.139648 0.0516663
+12 10 10 0.371094 0.140869 0.134155
+12 10 11 0.339355 0.130493 0.200806
+12 10 12 0.272461 0.121704 0.233521
+12 10 13 0.25293 0.128662 0.309814
+12 10 14 0.215088 0.137695 0.395996
+12 10 15 0.136475 0.148804 0.489014
+12 10 16 0 0.161865 0.586426
+12 10 17 0 0.175903 0.680664
+12 10 18 0 0.190063 0.768066
+12 10 19 0 0.203369 0.845215
+12 10 20 0 0.210938 0.895508
+12 10 21 0 0.208008 0.902832
+12 10 22 0 0.206665 0.910645
+12 10 23 0 0.206299 0.918945
+12 10 24 0 0.206543 0.927246
+12 10 25 0 0.207397 0.937012
+12 10 26 0 0.20874 0.947266
+12 10 27 0 0.210571 0.958984
+12 10 28 0 0.213013 0.972656
+12 10 29 0 0.21582 0.986816
+12 10 30 0 0.218872 1
+12 10 31 0 0.222168 1
+12 11 0 0.311035 0.179932 0
+12 11 1 0.311035 0.179932 0
+12 11 2 0.311035 0.179932 0
+12 11 3 0.311035 0.179932 0
+12 11 4 0.311035 0.180054 0
+12 11 5 0.311035 0.180054 0
+12 11 6 0.311035 0.180176 0
+12 11 7 0.311035 0.18042 0
+12 11 8 0.310303 0.180908 0
+12 11 9 0.308838 0.181763 0.0523987
+12 11 10 0.307861 0.18396 0.114502
+12 11 11 0.317139 0.193237 0.191406
+12 11 12 0.256592 0.168335 0.230835
+12 11 13 0.235229 0.173584 0.307617
+12 11 14 0.193481 0.179932 0.394531
+12 11 15 0.0996704 0.1875 0.488037
+12 11 16 0 0.196289 0.585938
+12 11 17 0 0.205811 0.680664
+12 11 18 0 0.215576 0.768066
+12 11 19 0 0.225098 0.845215
+12 11 20 0 0.229614 0.896973
+12 11 21 0 0.223267 0.903809
+12 11 22 0 0.219238 0.911621
+12 11 23 0 0.217041 0.919922
+12 11 24 0 0.215942 0.928223
+12 11 25 0 0.215454 0.9375
+12 11 26 0 0.215698 0.947754
+12 11 27 0 0.216553 0.959473
+12 11 28 0 0.218262 0.973145
+12 11 29 0 0.220337 0.987305
+12 11 30 0 0.222778 1
+12 11 31 0 0.225586 1
+12 12 0 0.28418 0.246338 0
+12 12 1 0.28418 0.246338 0
+12 12 2 0.28418 0.246338 0
+12 12 3 0.28418 0.246338 0
+12 12 4 0.28418 0.24646 0
+12 12 5 0.28418 0.24646 0
+12 12 6 0.28418 0.246582 0
+12 12 7 0.284424 0.246826 0
+12 12 8 0.283203 0.246704 0
+12 12 9 0.278564 0.245239 0.0450745
+12 12 10 0.269531 0.242188 0.108398
+12 12 11 0.253418 0.236328 0.167603
+12 12 12 0.226074 0.226074 0.226074
+12 12 13 0.200562 0.229858 0.304199
+12 12 14 0.148926 0.234253 0.391846
+12 12 15 0 0.238647 0.486328
+12 12 16 0 0.243408 0.584961
+12 12 17 0 0.248169 0.680176
+12 12 18 0 0.25293 0.768066
+12 12 19 0 0.257812 0.845703
+12 12 20 0 0.258301 0.899414
+12 12 21 0 0.24707 0.90625
+12 12 22 0 0.23938 0.913574
+12 12 23 0 0.234253 0.921387
+12 12 24 0 0.230957 0.929688
+12 12 25 0 0.228638 0.938965
+12 12 26 0 0.227173 0.949219
+12 12 27 0 0.226562 0.960449
+12 12 28 0 0.226929 0.974121
+12 12 29 0 0.227783 0.987793
+12 12 30 0 0.22937 1
+12 12 31 0 0.231201 1
+12 13 0 0.213135 0.307617 0
+12 13 1 0.213135 0.307617 0
+12 13 2 0.213135 0.307617 0
+12 13 3 0.213135 0.307617 0
+12 13 4 0.213135 0.307617 0
+12 13 5 0.213135 0.307617 0
+12 13 6 0.213135 0.307861 0
+12 13 7 0.213257 0.307861 0
+12 13 8 0.213257 0.308105 0
+12 13 9 0.20874 0.306641 0
+12 13 10 0.200195 0.303711 0.0801392
+12 13 11 0.185181 0.298584 0.148315
+12 13 12 0.162109 0.29541 0.217896
+12 13 13 0.122253 0.297852 0.298096
+12 13 14 0.000992775 0.300537 0.387207
+12 13 15 0 0.30249 0.483154
+12 13 16 0 0.303711 0.583008
+12 13 17 0 0.303711 0.679688
+12 13 18 0 0.303223 0.768066
+12 13 19 0 0.302979 0.846191
+12 13 20 0 0.299072 0.902832
+12 13 21 0 0.281738 0.90918
+12 13 22 0 0.269043 0.916504
+12 13 23 0 0.26001 0.924316
+12 13 24 0 0.253662 0.932129
+12 13 25 0 0.248657 0.940918
+12 13 26 0 0.244751 0.951172
+12 13 27 0 0.242065 0.962402
+12 13 28 0 0.240479 0.975586
+12 13 29 0 0.239624 0.989258
+12 13 30 0 0.239624 1
+12 13 31 0 0.240234 1
+12 14 0 0.0280457 0.37793 0
+12 14 1 0.0280457 0.37793 0
+12 14 2 0.0280457 0.37793 0
+12 14 3 0.0280609 0.37793 0
+12 14 4 0.0280914 0.378174 0
+12 14 5 0.0281372 0.378174 0
+12 14 6 0.0282288 0.378174 0
+12 14 7 0.0283966 0.378174 0
+12 14 8 0.0287323 0.378418 0
+12 14 9 0.0225067 0.378418 0
+12 14 10 0 0.377441 0.0257568
+12 14 11 0 0.376221 0.122742
+12 14 12 0 0.376465 0.203247
+12 14 13 0 0.377686 0.287354
+12 14 14 0 0.378906 0.37915
+12 14 15 0 0.378906 0.477051
+12 14 16 0 0.377197 0.579102
+12 14 17 0 0.373291 0.677246
+12 14 18 0 0.36792 0.767578
+12 14 19 0 0.362061 0.846191
+12 14 20 0 0.354248 0.907715
+12 14 21 0 0.329102 0.914062
+12 14 22 0 0.310547 0.921387
+12 14 23 0 0.296631 0.928711
+12 14 24 0 0.286377 0.936035
+12 14 25 0 0.277588 0.944824
+12 14 26 0 0.270508 0.95459
+12 14 27 0 0.264893 0.965332
+12 14 28 0 0.260498 0.978027
+12 14 29 0 0.257324 0.991699
+12 14 30 0 0.255371 1
+12 14 31 0 0.253906 1
+12 15 0 0 0.464111 0
+12 15 1 0 0.464111 0
+12 15 2 0 0.464111 0
+12 15 3 0 0.464111 0
+12 15 4 0 0.464111 0
+12 15 5 0 0.464111 0
+12 15 6 0 0.464355 0
+12 15 7 0 0.464355 0
+12 15 8 0 0.4646 0
+12 15 9 0 0.464844 0
+12 15 10 0 0.464844 0
+12 15 11 0 0.465332 0.0744019
+12 15 12 0 0.466064 0.177124
+12 15 13 0 0.467041 0.269287
+12 15 14 0 0.467773 0.365479
+12 15 15 0 0.466553 0.466797
+12 15 16 0 0.462891 0.571777
+12 15 17 0 0.455811 0.672852
+12 15 18 0 0.445801 0.765137
+12 15 19 0 0.435059 0.845703
+12 15 20 0 0.42334 0.912109
+12 15 21 0 0.390625 0.921387
+12 15 22 0 0.36499 0.928223
+12 15 23 0 0.345459 0.935547
+12 15 24 0 0.330322 0.942871
+12 15 25 0 0.317139 0.950684
+12 15 26 0 0.305908 0.959961
+12 15 27 0 0.296387 0.970215
+12 15 28 0 0.288818 0.982422
+12 15 29 0 0.282471 0.995605
+12 15 30 0 0.277344 1
+12 15 31 0 0.273438 1
+12 16 0 0 0.558594 0
+12 16 1 0 0.558594 0
+12 16 2 0 0.558594 0
+12 16 3 0 0.558594 0
+12 16 4 0 0.558594 0
+12 16 5 0 0.558594 0
+12 16 6 0 0.558594 0
+12 16 7 0 0.559082 0
+12 16 8 0 0.559082 0
+12 16 9 0 0.559082 0
+12 16 10 0 0.55957 0
+12 16 11 0 0.560547 0
+12 16 12 0 0.561523 0.130127
+12 16 13 0 0.562988 0.239746
+12 16 14 0 0.563965 0.343506
+12 16 15 0 0.562988 0.449707
+12 16 16 0 0.558594 0.558594
+12 16 17 0 0.549316 0.663574
+12 16 18 0 0.536133 0.759277
+12 16 19 0 0.520508 0.842773
+12 16 20 0 0.503906 0.911621
+12 16 21 0 0.467041 0.930176
+12 16 22 0 0.433838 0.938965
+12 16 23 0 0.407715 0.946289
+12 16 24 0 0.386963 0.952637
+12 16 25 0 0.368652 0.960449
+12 16 26 0 0.352539 0.96875
+12 16 27 0 0.338379 0.978027
+12 16 28 0 0.326416 0.989258
+12 16 29 0 0.316162 1
+12 16 30 0 0.307617 1
+12 16 31 0 0.300293 1
+12 17 0 0 0.653809 0
+12 17 1 0 0.653809 0
+12 17 2 0 0.653809 0
+12 17 3 0 0.653809 0
+12 17 4 0 0.653809 0
+12 17 5 0 0.653809 0
+12 17 6 0 0.653809 0
+12 17 7 0 0.653809 0
+12 17 8 0 0.653809 0
+12 17 9 0 0.653809 0
+12 17 10 0 0.654297 0
+12 17 11 0 0.655273 0
+12 17 12 0 0.656738 0.0170441
+12 17 13 0 0.65918 0.193604
+12 17 14 0 0.660645 0.310791
+12 17 15 0 0.660645 0.423828
+12 17 16 0 0.656738 0.537598
+12 17 17 0 0.647461 0.647949
+12 17 18 0 0.632812 0.748535
+12 17 19 0 0.614746 0.835938
+12 17 20 0 0.594238 0.907715
+12 17 21 0 0.554688 0.938477
+12 17 22 0 0.515137 0.95166
+12 17 23 0 0.482666 0.960449
+12 17 24 0 0.456055 0.967285
+12 17 25 0 0.431641 0.974121
+12 17 26 0 0.409912 0.981445
+12 17 27 0 0.390381 0.989746
+12 17 28 0 0.373291 0.999512
+12 17 29 0 0.358398 1
+12 17 30 0 0.345459 1
+12 17 31 0 0.334229 1
+12 18 0 0 0.743164 0
+12 18 1 0 0.743164 0
+12 18 2 0 0.743164 0
+12 18 3 0 0.743164 0
+12 18 4 0 0.743164 0
+12 18 5 0 0.743164 0
+12 18 6 0 0.743164 0
+12 18 7 0 0.743164 0
+12 18 8 0 0.743164 0
+12 18 9 0 0.743164 0
+12 18 10 0 0.743164 0
+12 18 11 0 0.743652 0
+12 18 12 0 0.746094 0
+12 18 13 0 0.748535 0.117065
+12 18 14 0 0.751465 0.265137
+12 18 15 0 0.75293 0.388184
+12 18 16 0 0.751465 0.508301
+12 18 17 0 0.743652 0.624023
+12 18 18 0 0.72998 0.730469
+12 18 19 0 0.710938 0.822754
+12 18 20 0 0.6875 0.899414
+12 18 21 0 0.649414 0.943359
+12 18 22 0 0.606445 0.965332
+12 18 23 0 0.568359 0.978027
+12 18 24 0 0.535645 0.98584
+12 18 25 0 0.504883 0.992676
+12 18 26 0 0.476807 0.999023
+12 18 27 0 0.451172 1
+12 18 28 0 0.428467 1
+12 18 29 0 0.408203 1
+12 18 30 0 0.390381 1
+12 18 31 0 0.374512 1
+12 19 0 0 0.82373 0
+12 19 1 0 0.82373 0
+12 19 2 0 0.82373 0
+12 19 3 0 0.82373 0
+12 19 4 0 0.82373 0
+12 19 5 0 0.82373 0
+12 19 6 0 0.82373 0
+12 19 7 0 0.82373 0
+12 19 8 0 0.82373 0
+12 19 9 0 0.82373 0
+12 19 10 0 0.82373 0
+12 19 11 0 0.824219 0
+12 19 12 0 0.825684 0
+12 19 13 0 0.828613 0
+12 19 14 0 0.83252 0.203979
+12 19 15 0 0.835449 0.343994
+12 19 16 0 0.836426 0.471436
+12 19 17 0 0.832031 0.592773
+12 19 18 0 0.820801 0.70459
+12 19 19 0 0.802734 0.802734
+12 19 20 0 0.778809 0.884277
+12 19 21 0 0.744141 0.941895
+12 19 22 0 0.70166 0.976074
+12 19 23 0 0.659668 0.995117
+12 19 24 0 0.62207 1
+12 19 25 0 0.585938 1
+12 19 26 0 0.55127 1
+12 19 27 0 0.519531 1
+12 19 28 0 0.490479 1
+12 19 29 0 0.464355 1
+12 19 30 0 0.440918 1
+12 19 31 0 0.420166 1
+12 20 0 0 0.893555 0
+12 20 1 0 0.893555 0
+12 20 2 0 0.893555 0
+12 20 3 0 0.893555 0
+12 20 4 0 0.893555 0
+12 20 5 0 0.893555 0
+12 20 6 0 0.893555 0
+12 20 7 0 0.893555 0
+12 20 8 0 0.893555 0
+12 20 9 0 0.894043 0
+12 20 10 0 0.894043 0
+12 20 11 0 0.894043 0
+12 20 12 0 0.89502 0
+12 20 13 0 0.897949 0
+12 20 14 0 0.902344 0.111938
+12 20 15 0 0.906738 0.291992
+12 20 16 0 0.909668 0.429199
+12 20 17 0 0.908691 0.556152
+12 20 18 0 0.900391 0.672852
+12 20 19 0 0.884766 0.776367
+12 20 20 0 0.862793 0.862793
+12 20 21 0 0.83252 0.932129
+12 20 22 0 0.793457 0.979004
+12 20 23 0 0.751465 1
+12 20 24 0 0.710938 1
+12 20 25 0 0.669922 1
+12 20 26 0 0.629883 1
+12 20 27 0 0.591797 1
+12 20 28 0 0.556641 1
+12 20 29 0 0.524414 1
+12 20 30 0 0.495117 1
+12 20 31 0 0.468994 1
+12 21 0 0 0.953613 0
+12 21 1 0 0.953613 0
+12 21 2 0 0.953613 0
+12 21 3 0 0.953613 0
+12 21 4 0 0.953613 0
+12 21 5 0 0.953613 0
+12 21 6 0 0.953613 0
+12 21 7 0 0.953613 0
+12 21 8 0 0.953613 0
+12 21 9 0 0.953613 0
+12 21 10 0 0.953613 0
+12 21 11 0 0.954102 0
+12 21 12 0 0.954102 0
+12 21 13 0 0.957031 0
+12 21 14 0 0.961426 0
+12 21 15 0 0.966797 0.227661
+12 21 16 0 0.97168 0.381104
+12 21 17 0 0.973633 0.513672
+12 21 18 0 0.969238 0.635254
+12 21 19 0 0.957031 0.743164
+12 21 20 0 0.937988 0.834961
+12 21 21 0 0.912109 0.912109
+12 21 22 0 0.878418 0.971191
+12 21 23 0 0.839355 1
+12 21 24 0 0.798828 1
+12 21 25 0 0.755371 1
+12 21 26 0 0.710938 1
+12 21 27 0 0.66748 1
+12 21 28 0 0.626465 1
+12 21 29 0 0.588379 1
+12 21 30 0 0.553223 1
+12 21 31 0 0.521484 1
+12 22 0 0 1 0
+12 22 1 0 1 0
+12 22 2 0 1 0
+12 22 3 0 1 0
+12 22 4 0 1 0
+12 22 5 0 1 0
+12 22 6 0 1 0
+12 22 7 0 1 0
+12 22 8 0 1 0
+12 22 9 0 1 0
+12 22 10 0 1 0
+12 22 11 0 1 0
+12 22 12 0 1 0
+12 22 13 0 1 0
+12 22 14 0 1 0
+12 22 15 0 1 0.140991
+12 22 16 0 1 0.327881
+12 22 17 0 1 0.468262
+12 22 18 0 1 0.593262
+12 22 19 0 1 0.705566
+12 22 20 0 1 0.801758
+12 22 21 0 0.979492 0.884277
+12 22 22 0 0.951172 0.95166
+12 22 23 0 0.91748 1
+12 22 24 0 0.879395 1
+12 22 25 0 0.836426 1
+12 22 26 0 0.790039 1
+12 22 27 0 0.743164 1
+12 22 28 0 0.697266 1
+12 22 29 0 0.653809 1
+12 22 30 0 0.613281 1
+12 22 31 0 0.576172 1
+12 23 0 0 1 0
+12 23 1 0 1 0
+12 23 2 0 1 0
+12 23 3 0 1 0
+12 23 4 0 1 0
+12 23 5 0 1 0
+12 23 6 0 1 0
+12 23 7 0 1 0
+12 23 8 0 1 0
+12 23 9 0 1 0
+12 23 10 0 1 0
+12 23 11 0 1 0
+12 23 12 0 1 0
+12 23 13 0 1 0
+12 23 14 0 1 0
+12 23 15 0 1 0
+12 23 16 0 1 0.27002
+12 23 17 0 1 0.421387
+12 23 18 0 1 0.550781
+12 23 19 0 1 0.665527
+12 23 20 0 1 0.765625
+12 23 21 0 1 0.852539
+12 23 22 0 1 0.924805
+12 23 23 0 0.981445 0.981445
+12 23 24 0 0.948242 1
+12 23 25 0 0.908203 1
+12 23 26 0 0.862305 1
+12 23 27 0 0.813965 1
+12 23 28 0 0.765137 1
+12 23 29 0 0.717285 1
+12 23 30 0 0.671875 1
+12 23 31 0 0.629883 1
+12 24 0 0 1 0
+12 24 1 0 1 0
+12 24 2 0 1 0
+12 24 3 0 1 0
+12 24 4 0 1 0
+12 24 5 0 1 0
+12 24 6 0 1 0
+12 24 7 0 1 0
+12 24 8 0 1 0
+12 24 9 0 1 0
+12 24 10 0 1 0
+12 24 11 0 1 0
+12 24 12 0 1 0
+12 24 13 0 1 0
+12 24 14 0 1 0
+12 24 15 0 1 0
+12 24 16 0 1 0.203735
+12 24 17 0 1 0.373535
+12 24 18 0 1 0.507324
+12 24 19 0 1 0.625
+12 24 20 0 1 0.728027
+12 24 21 0 1 0.817871
+12 24 22 0 1 0.894043
+12 24 23 0 1 0.956055
+12 24 24 0 1 1
+12 24 25 0 0.969238 1
+12 24 26 0 0.926758 1
+12 24 27 0 0.878418 1
+12 24 28 0 0.828125 1
+12 24 29 0 0.777832 1
+12 24 30 0 0.729004 1
+12 24 31 0 0.682129 1
+12 25 0 0 1 0
+12 25 1 0 1 0
+12 25 2 0 1 0
+12 25 3 0 1 0
+12 25 4 0 1 0
+12 25 5 0 1 0
+12 25 6 0 1 0
+12 25 7 0 1 0
+12 25 8 0 1 0
+12 25 9 0 1 0
+12 25 10 0 1 0
+12 25 11 0 1 0
+12 25 12 0 1 0
+12 25 13 0 1 0
+12 25 14 0 1 0
+12 25 15 0 1 0
+12 25 16 0 1 0.102783
+12 25 17 0 1 0.318359
+12 25 18 0 1 0.459473
+12 25 19 0 1 0.580078
+12 25 20 0 1 0.685059
+12 25 21 0 1 0.777832
+12 25 22 0 1 0.858398
+12 25 23 0 1 0.924316
+12 25 24 0 1 0.978516
+12 25 25 0 1 1
+12 25 26 0 0.987305 1
+12 25 27 0 0.941895 1
+12 25 28 0 0.89209 1
+12 25 29 0 0.839844 1
+12 25 30 0 0.788086 1
+12 25 31 0 0.737793 1
+12 26 0 0 1 0
+12 26 1 0 1 0
+12 26 2 0 1 0
+12 26 3 0 1 0
+12 26 4 0 1 0
+12 26 5 0 1 0
+12 26 6 0 1 0
+12 26 7 0 1 0
+12 26 8 0 1 0
+12 26 9 0 1 0
+12 26 10 0 1 0
+12 26 11 0 1 0
+12 26 12 0 1 0
+12 26 13 0 1 0
+12 26 14 0 1 0
+12 26 15 0 1 0
+12 26 16 0 1 0
+12 26 17 0 1 0.252686
+12 26 18 0 1 0.40625
+12 26 19 0 1 0.530273
+12 26 20 0 1 0.637207
+12 26 21 0 1 0.73291
+12 26 22 0 1 0.816406
+12 26 23 0 1 0.88623
+12 26 24 0 1 0.944336
+12 26 25 0 1 0.997559
+12 26 26 0 1 1
+12 26 27 0 1 1
+12 26 28 0 0.954102 1
+12 26 29 0 0.902344 1
+12 26 30 0 0.849121 1
+12 26 31 0 0.795898 1
+12 27 0 0 1 0
+12 27 1 0 1 0
+12 27 2 0 1 0
+12 27 3 0 1 0
+12 27 4 0 1 0
+12 27 5 0 1 0
+12 27 6 0 1 0
+12 27 7 0 1 0
+12 27 8 0 1 0
+12 27 9 0 1 0
+12 27 10 0 1 0
+12 27 11 0 1 0
+12 27 12 0 1 0
+12 27 13 0 1 0
+12 27 14 0 1 0
+12 27 15 0 1 0
+12 27 16 0 1 0
+12 27 17 0 1 0.165527
+12 27 18 0 1 0.34668
+12 27 19 0 1 0.476074
+12 27 20 0 1 0.585449
+12 27 21 0 1 0.682617
+12 27 22 0 1 0.768555
+12 27 23 0 1 0.841797
+12 27 24 0 1 0.903809
+12 27 25 0 1 0.961426
+12 27 26 0 1 1
+12 27 27 0 1 1
+12 27 28 0 1 1
+12 27 29 0 0.962891 1
+12 27 30 0 0.90918 1
+12 27 31 0 0.85498 1
+12 28 0 0 1 0
+12 28 1 0 1 0
+12 28 2 0 1 0
+12 28 3 0 1 0
+12 28 4 0 1 0
+12 28 5 0 1 0
+12 28 6 0 1 0
+12 28 7 0 1 0
+12 28 8 0 1 0
+12 28 9 0 1 0
+12 28 10 0 1 0
+12 28 11 0 1 0
+12 28 12 0 1 0
+12 28 13 0 1 0
+12 28 14 0 1 0
+12 28 15 0 1 0
+12 28 16 0 1 0
+12 28 17 0 1 0
+12 28 18 0 1 0.277832
+12 28 19 0 1 0.417236
+12 28 20 0 1 0.529297
+12 28 21 0 1 0.628418
+12 28 22 0 1 0.716309
+12 28 23 0 1 0.791504
+12 28 24 0 1 0.856445
+12 28 25 0 1 0.917969
+12 28 26 0 1 0.974609
+12 28 27 0 1 1
+12 28 28 0 1 1
+12 28 29 0 1 1
+12 28 30 0 0.96875 1
+12 28 31 0 0.914551 1
+12 29 0 0 1 0
+12 29 1 0 1 0
+12 29 2 0 1 0
+12 29 3 0 1 0
+12 29 4 0 1 0
+12 29 5 0 1 0
+12 29 6 0 1 0
+12 29 7 0 1 0
+12 29 8 0 1 0
+12 29 9 0 1 0
+12 29 10 0 1 0
+12 29 11 0 1 0
+12 29 12 0 1 0
+12 29 13 0 1 0
+12 29 14 0 1 0
+12 29 15 0 1 0
+12 29 16 0 1 0
+12 29 17 0 1 0
+12 29 18 0 1 0.190674
+12 29 19 0 1 0.352051
+12 29 20 0 1 0.468994
+12 29 21 0 1 0.569824
+12 29 22 0 1 0.658691
+12 29 23 0 1 0.73584
+12 29 24 0 1 0.803223
+12 29 25 0 1 0.867676
+12 29 26 0 1 0.928223
+12 29 27 0 1 0.983887
+12 29 28 0 1 1
+12 29 29 0 1 1
+12 29 30 0 1 1
+12 29 31 0 0.973633 1
+12 30 0 0 1 0
+12 30 1 0 1 0
+12 30 2 0 1 0
+12 30 3 0 1 0
+12 30 4 0 1 0
+12 30 5 0 1 0
+12 30 6 0 1 0
+12 30 7 0 1 0
+12 30 8 0 1 0
+12 30 9 0 1 0
+12 30 10 0 1 0
+12 30 11 0 1 0
+12 30 12 0 1 0
+12 30 13 0 1 0
+12 30 14 0 1 0
+12 30 15 0 1 0
+12 30 16 0 1 0
+12 30 17 0 1 0
+12 30 18 0 1 0.0206146
+12 30 19 0 1 0.277344
+12 30 20 0 1 0.403564
+12 30 21 0 1 0.506836
+12 30 22 0 1 0.597168
+12 30 23 0 1 0.675293
+12 30 24 0 1 0.743652
+12 30 25 0 1 0.810547
+12 30 26 0 1 0.875
+12 30 27 0 1 0.935059
+12 30 28 0 1 0.990234
+12 30 29 0 1 1
+12 30 30 0 1 1
+12 30 31 0 1 1
+12 31 0 0 1 0
+12 31 1 0 1 0
+12 31 2 0 1 0
+12 31 3 0 1 0
+12 31 4 0 1 0
+12 31 5 0 1 0
+12 31 6 0 1 0
+12 31 7 0 1 0
+12 31 8 0 1 0
+12 31 9 0 1 0
+12 31 10 0 1 0
+12 31 11 0 1 0
+12 31 12 0 1 0
+12 31 13 0 1 0
+12 31 14 0 1 0
+12 31 15 0 1 0
+12 31 16 0 1 0
+12 31 17 0 1 0
+12 31 18 0 1 0
+12 31 19 0 1 0.183838
+12 31 20 0 1 0.332031
+12 31 21 0 1 0.440186
+12 31 22 0 1 0.531738
+12 31 23 0 1 0.610352
+12 31 24 0 1 0.680176
+12 31 25 0 1 0.748535
+12 31 26 0 1 0.815918
+12 31 27 0 1 0.880371
+12 31 28 0 1 0.94043
+12 31 29 0 1 0.995605
+12 31 30 0 1 1
+12 31 31 0 1 1
+13 0 0 0.481689 0 0
+13 0 1 0.481689 0 0
+13 0 2 0.481689 0 0
+13 0 3 0.481689 0 0
+13 0 4 0.481689 0 0
+13 0 5 0.481689 0 0
+13 0 6 0.481689 0 0
+13 0 7 0.481689 0 0
+13 0 8 0.484375 0 0
+13 0 9 0.489502 0 0.0088501
+13 0 10 0.490967 0 0.115662
+13 0 11 0.476562 0 0.197266
+13 0 12 0.410645 0 0.247681
+13 0 13 0.378662 0.0247803 0.311279
+13 0 14 0.355225 0.0492554 0.396729
+13 0 15 0.314209 0.0759277 0.489746
+13 0 16 0.243164 0.102844 0.587402
+13 0 17 0.0878906 0.128418 0.682129
+13 0 18 0 0.151733 0.769531
+13 0 19 0 0.172119 0.84668
+13 0 20 0 0.186157 0.899902
+13 0 21 0 0.188477 0.907227
+13 0 22 0 0.190918 0.915039
+13 0 23 0 0.193115 0.922852
+13 0 24 0 0.195435 0.931152
+13 0 25 0 0.197876 0.94043
+13 0 26 0 0.200562 0.950684
+13 0 27 0 0.203613 0.961914
+13 0 28 0 0.207031 0.975098
+13 0 29 0 0.210693 0.989258
+13 0 30 0 0.214478 1
+13 0 31 0 0.218384 1
+13 1 0 0.481689 0 0
+13 1 1 0.481689 0 0
+13 1 2 0.481689 0 0
+13 1 3 0.481689 0 0
+13 1 4 0.481689 0 0
+13 1 5 0.481689 0 0
+13 1 6 0.481689 0 0
+13 1 7 0.481689 0 0
+13 1 8 0.484375 0 0
+13 1 9 0.489502 0 0.00879669
+13 1 10 0.490967 0 0.115662
+13 1 11 0.476562 0 0.197266
+13 1 12 0.410645 0 0.247681
+13 1 13 0.378662 0.0250244 0.311279
+13 1 14 0.355225 0.049469 0.396729
+13 1 15 0.314209 0.0761108 0.489746
+13 1 16 0.243164 0.102966 0.587402
+13 1 17 0.0878296 0.12854 0.682129
+13 1 18 0 0.151855 0.769531
+13 1 19 0 0.172241 0.84668
+13 1 20 0 0.186279 0.899902
+13 1 21 0 0.188477 0.907227
+13 1 22 0 0.190918 0.915039
+13 1 23 0 0.193115 0.922852
+13 1 24 0 0.195435 0.931152
+13 1 25 0 0.197876 0.94043
+13 1 26 0 0.200562 0.950684
+13 1 27 0 0.203613 0.961914
+13 1 28 0 0.207031 0.975098
+13 1 29 0 0.210693 0.989258
+13 1 30 0 0.214478 1
+13 1 31 0 0.218384 1
+13 2 0 0.481689 0 0
+13 2 1 0.481689 0 0
+13 2 2 0.481689 0 0
+13 2 3 0.481689 0 0
+13 2 4 0.481689 0 0
+13 2 5 0.481689 0 0
+13 2 6 0.481689 0 0
+13 2 7 0.481445 0 0
+13 2 8 0.484375 0 0
+13 2 9 0.489502 0 0.00868988
+13 2 10 0.490967 0 0.115601
+13 2 11 0.476562 0 0.197266
+13 2 12 0.410645 0 0.247681
+13 2 13 0.378662 0.0254822 0.311279
+13 2 14 0.355225 0.0498657 0.396729
+13 2 15 0.314209 0.076355 0.489746
+13 2 16 0.243042 0.10321 0.587402
+13 2 17 0.0876465 0.128662 0.682129
+13 2 18 0 0.151978 0.769531
+13 2 19 0 0.172241 0.84668
+13 2 20 0 0.186279 0.899902
+13 2 21 0 0.188599 0.907227
+13 2 22 0 0.190918 0.915039
+13 2 23 0 0.193237 0.922852
+13 2 24 0 0.195435 0.931152
+13 2 25 0 0.197876 0.94043
+13 2 26 0 0.200562 0.950684
+13 2 27 0 0.203613 0.961914
+13 2 28 0 0.207031 0.975098
+13 2 29 0 0.210693 0.989258
+13 2 30 0 0.214478 1
+13 2 31 0 0.218506 1
+13 3 0 0.481445 0 0
+13 3 1 0.481445 0 0
+13 3 2 0.481445 0 0
+13 3 3 0.481445 0 0
+13 3 4 0.481445 0 0
+13 3 5 0.481445 0 0
+13 3 6 0.481445 0 0
+13 3 7 0.481445 0 0
+13 3 8 0.484375 0 0
+13 3 9 0.489258 0 0.00849915
+13 3 10 0.490967 0 0.11554
+13 3 11 0.476562 0 0.197266
+13 3 12 0.410645 0 0.247803
+13 3 13 0.378662 0.0263062 0.311279
+13 3 14 0.35498 0.0505676 0.396729
+13 3 15 0.313965 0.0768433 0.489746
+13 3 16 0.243042 0.103577 0.587402
+13 3 17 0.0874023 0.129028 0.682129
+13 3 18 0 0.1521 0.769531
+13 3 19 0 0.172485 0.84668
+13 3 20 0 0.186401 0.899902
+13 3 21 0 0.188721 0.907227
+13 3 22 0 0.19104 0.915039
+13 3 23 0 0.193237 0.922852
+13 3 24 0 0.195435 0.931152
+13 3 25 0 0.197998 0.94043
+13 3 26 0 0.200684 0.950684
+13 3 27 0 0.203613 0.961914
+13 3 28 0 0.207031 0.975098
+13 3 29 0 0.210693 0.989258
+13 3 30 0 0.214478 1
+13 3 31 0 0.218506 1
+13 4 0 0.481445 0 0
+13 4 1 0.481445 0 0
+13 4 2 0.481445 0 0
+13 4 3 0.481445 0 0
+13 4 4 0.481445 0 0
+13 4 5 0.481445 0 0
+13 4 6 0.481445 0 0
+13 4 7 0.481201 0 0
+13 4 8 0.484131 0 0
+13 4 9 0.489258 0 0.00814056
+13 4 10 0.490723 0 0.115356
+13 4 11 0.476562 0 0.197266
+13 4 12 0.410645 0 0.247803
+13 4 13 0.378418 0.0278778 0.311279
+13 4 14 0.35498 0.0518799 0.396729
+13 4 15 0.313965 0.0778198 0.489746
+13 4 16 0.242798 0.104248 0.587402
+13 4 17 0.0869141 0.129517 0.682129
+13 4 18 0 0.152588 0.769531
+13 4 19 0 0.172729 0.84668
+13 4 20 0 0.186768 0.899902
+13 4 21 0 0.188843 0.907227
+13 4 22 0 0.191162 0.915039
+13 4 23 0 0.193359 0.922852
+13 4 24 0 0.195557 0.931152
+13 4 25 0 0.197998 0.94043
+13 4 26 0 0.200806 0.950684
+13 4 27 0 0.203735 0.961914
+13 4 28 0 0.207153 0.975098
+13 4 29 0 0.210815 0.989258
+13 4 30 0 0.2146 1
+13 4 31 0 0.218506 1
+13 5 0 0.480957 0 0
+13 5 1 0.480957 0 0
+13 5 2 0.480957 0 0
+13 5 3 0.480957 0 0
+13 5 4 0.480957 0 0
+13 5 5 0.480957 0 0
+13 5 6 0.480957 0 0
+13 5 7 0.480957 0 0
+13 5 8 0.483887 0 0
+13 5 9 0.489014 0 0.0074501
+13 5 10 0.490479 0 0.115051
+13 5 11 0.476562 0 0.197144
+13 5 12 0.410645 0 0.247803
+13 5 13 0.378174 0.030899 0.311035
+13 5 14 0.354736 0.0543518 0.396729
+13 5 15 0.313721 0.0795898 0.489746
+13 5 16 0.242432 0.105591 0.587402
+13 5 17 0.0859375 0.130493 0.682129
+13 5 18 0 0.15332 0.769531
+13 5 19 0 0.173462 0.847168
+13 5 20 0 0.187256 0.899902
+13 5 21 0 0.189331 0.907227
+13 5 22 0 0.191528 0.915039
+13 5 23 0 0.193726 0.922852
+13 5 24 0 0.195801 0.931152
+13 5 25 0 0.198242 0.94043
+13 5 26 0 0.200928 0.950684
+13 5 27 0 0.203857 0.961914
+13 5 28 0 0.207275 0.975098
+13 5 29 0 0.210938 0.989258
+13 5 30 0 0.214722 1
+13 5 31 0 0.218628 1
+13 6 0 0.480469 0 0
+13 6 1 0.480469 0 0
+13 6 2 0.480469 0 0
+13 6 3 0.480469 0 0
+13 6 4 0.480469 0 0
+13 6 5 0.480469 0 0
+13 6 6 0.480469 0 0
+13 6 7 0.480225 0 0
+13 6 8 0.483154 0 0
+13 6 9 0.488281 0 0.00616074
+13 6 10 0.489746 0 0.114441
+13 6 11 0.476807 0 0.197021
+13 6 12 0.410645 0 0.247925
+13 6 13 0.377686 0.0366821 0.311035
+13 6 14 0.354248 0.0588684 0.396484
+13 6 15 0.312988 0.0828857 0.489746
+13 6 16 0.241699 0.108032 0.587402
+13 6 17 0.0840454 0.132446 0.682129
+13 6 18 0 0.154785 0.769531
+13 6 19 0 0.174561 0.847168
+13 6 20 0 0.188232 0.899902
+13 6 21 0 0.190063 0.907227
+13 6 22 0 0.192139 0.915039
+13 6 23 0 0.194214 0.922852
+13 6 24 0 0.196289 0.931152
+13 6 25 0 0.198608 0.94043
+13 6 26 0 0.201172 0.950684
+13 6 27 0 0.204102 0.961914
+13 6 28 0 0.20752 0.975098
+13 6 29 0 0.21106 0.989258
+13 6 30 0 0.214844 1
+13 6 31 0 0.21875 1
+13 7 0 0.479004 0 0
+13 7 1 0.479004 0 0
+13 7 2 0.479004 0 0
+13 7 3 0.479004 0 0
+13 7 4 0.479004 0 0
+13 7 5 0.479004 0 0
+13 7 6 0.479004 0 0
+13 7 7 0.479004 0 0
+13 7 8 0.481689 0 0
+13 7 9 0.487061 0 0.00374603
+13 7 10 0.48877 0 0.11322
+13 7 11 0.476807 0 0.196777
+13 7 12 0.4104 0 0.248047
+13 7 13 0.376953 0.0473938 0.310791
+13 7 14 0.353271 0.0670166 0.396484
+13 7 15 0.312012 0.0890503 0.489502
+13 7 16 0.240356 0.112732 0.587402
+13 7 17 0.0802612 0.135986 0.682129
+13 7 18 0 0.157593 0.769531
+13 7 19 0 0.17688 0.847168
+13 7 20 0 0.190063 0.900391
+13 7 21 0 0.191528 0.907227
+13 7 22 0 0.193359 0.915039
+13 7 23 0 0.19519 0.92334
+13 7 24 0 0.197144 0.931152
+13 7 25 0 0.199341 0.94043
+13 7 26 0 0.201904 0.950684
+13 7 27 0 0.204712 0.961914
+13 7 28 0 0.208008 0.975098
+13 7 29 0 0.211426 0.989258
+13 7 30 0 0.21521 1
+13 7 31 0 0.218994 1
+13 8 0 0.476074 0 0
+13 8 1 0.476074 0 0
+13 8 2 0.476074 0 0
+13 8 3 0.476074 0 0
+13 8 4 0.476074 0 0
+13 8 5 0.476074 0 0
+13 8 6 0.476074 0 0
+13 8 7 0.47583 0 0
+13 8 8 0.478516 0 0
+13 8 9 0.484375 0 0
+13 8 10 0.487549 0 0.110657
+13 8 11 0.476807 0 0.196045
+13 8 12 0.4104 0.0229797 0.248535
+13 8 13 0.375244 0.0648193 0.310547
+13 8 14 0.351318 0.0809937 0.39624
+13 8 15 0.310059 0.100159 0.489502
+13 8 16 0.237671 0.121399 0.587402
+13 8 17 0.0724487 0.142822 0.682129
+13 8 18 0 0.162964 0.769531
+13 8 19 0 0.181152 0.847168
+13 8 20 0 0.193604 0.900391
+13 8 21 0 0.194336 0.907715
+13 8 22 0 0.195557 0.915527
+13 8 23 0 0.197144 0.92334
+13 8 24 0 0.19873 0.931641
+13 8 25 0 0.200806 0.94043
+13 8 26 0 0.203003 0.950684
+13 8 27 0 0.205688 0.961914
+13 8 28 0 0.208862 0.975098
+13 8 29 0 0.21228 0.989258
+13 8 30 0 0.21582 1
+13 8 31 0 0.219604 1
+13 9 0 0.469482 0.0312805 0
+13 9 1 0.469482 0.031311 0
+13 9 2 0.469482 0.0313721 0
+13 9 3 0.469482 0.0314941 0
+13 9 4 0.469238 0.0316772 0
+13 9 5 0.469238 0.032074 0
+13 9 6 0.469238 0.0328674 0
+13 9 7 0.469238 0.0343323 0
+13 9 8 0.47168 0.0359497 0
+13 9 9 0.477783 0.033783 0
+13 9 10 0.483154 0.0266724 0.105713
+13 9 11 0.475342 0.0223083 0.194092
+13 9 12 0.410156 0.0639648 0.24939
+13 9 13 0.371826 0.0908813 0.309814
+13 9 14 0.3479 0.103333 0.395752
+13 9 15 0.305908 0.118774 0.489258
+13 9 16 0.232422 0.136597 0.586914
+13 9 17 0.0551758 0.155029 0.682129
+13 9 18 0 0.172852 0.769531
+13 9 19 0 0.189209 0.847168
+13 9 20 0 0.200195 0.900879
+13 9 21 0 0.199707 0.907715
+13 9 22 0 0.199951 0.915527
+13 9 23 0 0.200684 0.92334
+13 9 24 0 0.201904 0.931641
+13 9 25 0 0.203369 0.940918
+13 9 26 0 0.205322 0.950684
+13 9 27 0 0.207642 0.962402
+13 9 28 0 0.210571 0.975098
+13 9 29 0 0.213745 0.989258
+13 9 30 0 0.217041 1
+13 9 31 0 0.220703 1
+13 10 0 0.45459 0.111816 0
+13 10 1 0.45459 0.111816 0
+13 10 2 0.45459 0.111877 0
+13 10 3 0.45459 0.111877 0
+13 10 4 0.45459 0.112 0
+13 10 5 0.45459 0.112122 0
+13 10 6 0.45459 0.112427 0
+13 10 7 0.454346 0.113037 0
+13 10 8 0.456299 0.114258 0
+13 10 9 0.462158 0.114807 0
+13 10 10 0.469727 0.113953 0.097168
+13 10 11 0.467285 0.110657 0.188843
+13 10 12 0.410645 0.112854 0.251221
+13 10 13 0.365479 0.126221 0.308594
+13 10 14 0.341064 0.135376 0.39502
+13 10 15 0.29834 0.146851 0.488525
+13 10 16 0.222412 0.160522 0.586914
+13 10 17 0.0136414 0.174927 0.682129
+13 10 18 0 0.189331 0.769531
+13 10 19 0 0.202881 0.847168
+13 10 20 0 0.211792 0.901855
+13 10 21 0 0.208984 0.908691
+13 10 22 0 0.20752 0.916016
+13 10 23 0 0.207153 0.923828
+13 10 24 0 0.207397 0.932129
+13 10 25 0 0.20813 0.940918
+13 10 26 0 0.209473 0.951172
+13 10 27 0 0.211182 0.962402
+13 10 28 0 0.213623 0.975586
+13 10 29 0 0.216309 0.989746
+13 10 30 0 0.21936 1
+13 10 31 0 0.222656 1
+13 11 0 0.42627 0.175781 0
+13 11 1 0.42627 0.175903 0
+13 11 2 0.42627 0.175903 0
+13 11 3 0.42627 0.175903 0
+13 11 4 0.42627 0.175903 0
+13 11 5 0.42627 0.176025 0
+13 11 6 0.42627 0.176147 0
+13 11 7 0.42627 0.176514 0
+13 11 8 0.426514 0.177124 0
+13 11 9 0.429443 0.178589 0
+13 11 10 0.435547 0.181152 0.0878296
+13 11 11 0.443848 0.183716 0.177002
+13 11 12 0.411377 0.174683 0.25415
+13 11 13 0.354248 0.171753 0.306641
+13 11 14 0.329102 0.178101 0.393311
+13 11 15 0.284424 0.185913 0.487549
+13 11 16 0.203491 0.19519 0.586426
+13 11 17 0 0.205078 0.681641
+13 11 18 0 0.215088 0.77002
+13 11 19 0 0.224854 0.847168
+13 11 20 0 0.230591 0.902832
+13 11 21 0 0.224243 0.909668
+13 11 22 0 0.220337 0.916992
+13 11 23 0 0.218018 0.924805
+13 11 24 0 0.216797 0.932617
+13 11 25 0 0.216309 0.941895
+13 11 26 0 0.216431 0.95166
+13 11 27 0 0.217285 0.962891
+13 11 28 0 0.218872 0.976074
+13 11 29 0 0.220825 0.990234
+13 11 30 0 0.223267 1
+13 11 31 0 0.225952 1
+13 12 0 0.391113 0.236084 0
+13 12 1 0.391113 0.236084 0
+13 12 2 0.391113 0.236084 0
+13 12 3 0.391113 0.236084 0
+13 12 4 0.391113 0.236084 0
+13 12 5 0.391113 0.236206 0
+13 12 6 0.391113 0.236206 0
+13 12 7 0.391113 0.23645 0
+13 12 8 0.391113 0.236816 0
+13 12 9 0.38916 0.236938 0.0141373
+13 12 10 0.385986 0.237305 0.090271
+13 12 11 0.382568 0.239136 0.15979
+13 12 12 0.38501 0.245239 0.243408
+13 12 13 0.333984 0.228394 0.302979
+13 12 14 0.306885 0.232788 0.390625
+13 12 15 0.258545 0.237427 0.48584
+13 12 16 0.165527 0.242676 0.584961
+13 12 17 0 0.247681 0.681641
+13 12 18 0 0.252686 0.769531
+13 12 19 0 0.257568 0.847656
+13 12 20 0 0.259521 0.905273
+13 12 21 0 0.248169 0.911621
+13 12 22 0 0.240479 0.918945
+13 12 23 0 0.235352 0.92627
+13 12 24 0 0.231934 0.934082
+13 12 25 0 0.229492 0.942871
+13 12 26 0 0.227905 0.953125
+13 12 27 0 0.227295 0.963867
+13 12 28 0 0.227539 0.977051
+13 12 29 0 0.228394 0.990723
+13 12 30 0 0.229858 1
+13 12 31 0 0.231689 1
+13 13 0 0.362793 0.316162 0
+13 13 1 0.362793 0.316162 0
+13 13 2 0.362793 0.316162 0
+13 13 3 0.362793 0.316162 0
+13 13 4 0.362793 0.316162 0
+13 13 5 0.362793 0.316162 0
+13 13 6 0.362793 0.316406 0
+13 13 7 0.362793 0.316406 0
+13 13 8 0.362793 0.31665 0
+13 13 9 0.36084 0.316406 0
+13 13 10 0.355225 0.314941 0.0803833
+13 13 11 0.344971 0.312012 0.154297
+13 13 12 0.32666 0.306396 0.225708
+13 13 13 0.296631 0.296631 0.296631
+13 13 14 0.265625 0.299316 0.385986
+13 13 15 0.208008 0.301514 0.482422
+13 13 16 0.0658569 0.302979 0.583008
+13 13 17 0 0.303467 0.680176
+13 13 18 0 0.303223 0.769531
+13 13 19 0 0.302979 0.848145
+13 13 20 0 0.300781 0.908691
+13 13 21 0 0.282959 0.914551
+13 13 22 0 0.270264 0.921387
+13 13 23 0 0.26123 0.928711
+13 13 24 0 0.254639 0.936523
+13 13 25 0 0.249634 0.944824
+13 13 26 0 0.245605 0.95459
+13 13 27 0 0.242798 0.96582
+13 13 28 0 0.241089 0.978516
+13 13 29 0 0.240234 0.992188
+13 13 30 0 0.240112 1
+13 13 31 0 0.240723 1
+13 14 0 0.283447 0.38916 0
+13 14 1 0.283447 0.38916 0
+13 14 2 0.283447 0.38916 0
+13 14 3 0.283447 0.38916 0
+13 14 4 0.283447 0.38916 0
+13 14 5 0.283447 0.38916 0
+13 14 6 0.283447 0.38916 0
+13 14 7 0.283447 0.389404 0
+13 14 8 0.283447 0.389404 0
+13 14 9 0.282959 0.389648 0
+13 14 10 0.2771 0.387939 0.0204773
+13 14 11 0.266846 0.38501 0.123901
+13 14 12 0.249268 0.379883 0.204102
+13 14 13 0.222412 0.376465 0.285889
+13 14 14 0.177856 0.377686 0.37793
+13 14 15 0.0690308 0.378174 0.476318
+13 14 16 0 0.376953 0.579102
+13 14 17 0 0.373291 0.678223
+13 14 18 0 0.36792 0.768555
+13 14 19 0 0.362305 0.848145
+13 14 20 0 0.355957 0.913086
+13 14 21 0 0.330811 0.918945
+13 14 22 0 0.311768 0.925781
+13 14 23 0 0.297852 0.932617
+13 14 24 0 0.287354 0.939941
+13 14 25 0 0.278564 0.948242
+13 14 26 0 0.271484 0.958008
+13 14 27 0 0.265625 0.968262
+13 14 28 0 0.26123 0.980957
+13 14 29 0 0.258057 0.994141
+13 14 30 0 0.255859 1
+13 14 31 0 0.254395 1
+13 15 0 0.111267 0.467773 0
+13 15 1 0.111267 0.467773 0
+13 15 2 0.111267 0.467773 0
+13 15 3 0.111267 0.467773 0
+13 15 4 0.111267 0.467773 0
+13 15 5 0.111328 0.467773 0
+13 15 6 0.111328 0.467773 0
+13 15 7 0.11145 0.468018 0
+13 15 8 0.111572 0.468018 0
+13 15 9 0.111877 0.468262 0
+13 15 10 0.104126 0.468018 0
+13 15 11 0.0827026 0.467041 0.0708618
+13 15 12 0.0296478 0.466064 0.175537
+13 15 13 0 0.466064 0.267822
+13 15 14 0 0.466553 0.364258
+13 15 15 0 0.46582 0.466064
+13 15 16 0 0.462646 0.571289
+13 15 17 0 0.455566 0.67334
+13 15 18 0 0.446045 0.766113
+13 15 19 0 0.435303 0.847168
+13 15 20 0 0.423828 0.914062
+13 15 21 0 0.392334 0.925293
+13 15 22 0 0.366211 0.932129
+13 15 23 0 0.34668 0.938965
+13 15 24 0 0.331299 0.946289
+13 15 25 0 0.318115 0.954102
+13 15 26 0 0.306885 0.962891
+13 15 27 0 0.297119 0.973145
+13 15 28 0 0.289551 0.984863
+13 15 29 0 0.283203 0.998047
+13 15 30 0 0.278076 1
+13 15 31 0 0.273926 1
+13 16 0 0 0.55957 0
+13 16 1 0 0.55957 0
+13 16 2 0 0.55957 0
+13 16 3 0 0.55957 0
+13 16 4 0 0.55957 0
+13 16 5 0 0.55957 0
+13 16 6 0 0.55957 0
+13 16 7 0 0.55957 0
+13 16 8 0 0.560059 0
+13 16 9 0 0.560059 0
+13 16 10 0 0.560547 0
+13 16 11 0 0.560547 0
+13 16 12 0 0.561523 0.127808
+13 16 13 0 0.5625 0.238403
+13 16 14 0 0.562988 0.342285
+13 16 15 0 0.5625 0.448975
+13 16 16 0 0.558105 0.558105
+13 16 17 0 0.549316 0.663574
+13 16 18 0 0.536133 0.760254
+13 16 19 0 0.520996 0.84375
+13 16 20 0 0.504883 0.912598
+13 16 21 0 0.468506 0.933105
+13 16 22 0 0.435059 0.941895
+13 16 23 0 0.408936 0.94873
+13 16 24 0 0.387939 0.955566
+13 16 25 0 0.369629 0.962891
+13 16 26 0 0.353271 0.971191
+13 16 27 0 0.339111 0.980469
+13 16 28 0 0.327148 0.991211
+13 16 29 0 0.316895 1
+13 16 30 0 0.308105 1
+13 16 31 0 0.300781 1
+13 17 0 0 0.654297 0
+13 17 1 0 0.654297 0
+13 17 2 0 0.654297 0
+13 17 3 0 0.654297 0
+13 17 4 0 0.654297 0
+13 17 5 0 0.654297 0
+13 17 6 0 0.654297 0
+13 17 7 0 0.654297 0
+13 17 8 0 0.654297 0
+13 17 9 0 0.654785 0
+13 17 10 0 0.654785 0
+13 17 11 0 0.655762 0
+13 17 12 0 0.656738 0.0113373
+13 17 13 0 0.658691 0.192139
+13 17 14 0 0.660156 0.309814
+13 17 15 0 0.660156 0.423096
+13 17 16 0 0.656738 0.537598
+13 17 17 0 0.647461 0.647949
+13 17 18 0 0.633301 0.748535
+13 17 19 0 0.615234 0.836426
+13 17 20 0 0.594727 0.908691
+13 17 21 0 0.556152 0.940918
+13 17 22 0 0.516602 0.954102
+13 17 23 0 0.483643 0.962402
+13 17 24 0 0.456787 0.969238
+13 17 25 0 0.432373 0.976074
+13 17 26 0 0.410645 0.983398
+13 17 27 0 0.390869 0.991699
+13 17 28 0 0.374023 1
+13 17 29 0 0.358887 1
+13 17 30 0 0.345947 1
+13 17 31 0 0.334717 1
+13 18 0 0 0.743652 0
+13 18 1 0 0.743652 0
+13 18 2 0 0.743652 0
+13 18 3 0 0.743652 0
+13 18 4 0 0.743652 0
+13 18 5 0 0.743652 0
+13 18 6 0 0.743652 0
+13 18 7 0 0.744141 0
+13 18 8 0 0.744141 0
+13 18 9 0 0.744141 0
+13 18 10 0 0.744141 0
+13 18 11 0 0.744629 0
+13 18 12 0 0.746582 0
+13 18 13 0 0.749023 0.114868
+13 18 14 0 0.751465 0.264404
+13 18 15 0 0.75293 0.387695
+13 18 16 0 0.750977 0.508301
+13 18 17 0 0.743652 0.624023
+13 18 18 0 0.72998 0.730469
+13 18 19 0 0.711426 0.823242
+13 18 20 0 0.687988 0.899902
+13 18 21 0 0.650391 0.944824
+13 18 22 0 0.606934 0.966797
+13 18 23 0 0.568848 0.979004
+13 18 24 0 0.536133 0.987305
+13 18 25 0 0.505371 0.994141
+13 18 26 0 0.477295 1
+13 18 27 0 0.451904 1
+13 18 28 0 0.428955 1
+13 18 29 0 0.408691 1
+13 18 30 0 0.390869 1
+13 18 31 0 0.375 1
+13 19 0 0 0.824707 0
+13 19 1 0 0.824707 0
+13 19 2 0 0.824707 0
+13 19 3 0 0.824707 0
+13 19 4 0 0.824707 0
+13 19 5 0 0.824707 0
+13 19 6 0 0.824707 0
+13 19 7 0 0.824707 0
+13 19 8 0 0.824707 0
+13 19 9 0 0.824707 0
+13 19 10 0 0.825195 0
+13 19 11 0 0.825195 0
+13 19 12 0 0.82666 0
+13 19 13 0 0.82959 0
+13 19 14 0 0.833008 0.203003
+13 19 15 0 0.835938 0.34375
+13 19 16 0 0.836426 0.471436
+13 19 17 0 0.832031 0.592773
+13 19 18 0 0.821289 0.705078
+13 19 19 0 0.803223 0.803223
+13 19 20 0 0.779297 0.884766
+13 19 21 0 0.744629 0.942871
+13 19 22 0 0.702148 0.976562
+13 19 23 0 0.660156 0.995605
+13 19 24 0 0.622559 1
+13 19 25 0 0.586426 1
+13 19 26 0 0.551758 1
+13 19 27 0 0.52002 1
+13 19 28 0 0.490723 1
+13 19 29 0 0.4646 1
+13 19 30 0 0.441162 1
+13 19 31 0 0.42041 1
+13 20 0 0 0.89502 0
+13 20 1 0 0.89502 0
+13 20 2 0 0.89502 0
+13 20 3 0 0.89502 0
+13 20 4 0 0.89502 0
+13 20 5 0 0.89502 0
+13 20 6 0 0.89502 0
+13 20 7 0 0.89502 0
+13 20 8 0 0.89502 0
+13 20 9 0 0.89502 0
+13 20 10 0 0.895508 0
+13 20 11 0 0.895508 0
+13 20 12 0 0.895996 0
+13 20 13 0 0.898926 0
+13 20 14 0 0.90332 0.110107
+13 20 15 0 0.907227 0.291504
+13 20 16 0 0.910156 0.429199
+13 20 17 0 0.908691 0.555664
+13 20 18 0 0.900879 0.672852
+13 20 19 0 0.885254 0.776367
+13 20 20 0 0.863281 0.863281
+13 20 21 0 0.833008 0.932617
+13 20 22 0 0.793945 0.979492
+13 20 23 0 0.751953 1
+13 20 24 0 0.711426 1
+13 20 25 0 0.67041 1
+13 20 26 0 0.630371 1
+13 20 27 0 0.592285 1
+13 20 28 0 0.556641 1
+13 20 29 0 0.524414 1
+13 20 30 0 0.495605 1
+13 20 31 0 0.469238 1
+13 21 0 0 0.955078 0
+13 21 1 0 0.955078 0
+13 21 2 0 0.955078 0
+13 21 3 0 0.955078 0
+13 21 4 0 0.955078 0
+13 21 5 0 0.955078 0
+13 21 6 0 0.955078 0
+13 21 7 0 0.955078 0
+13 21 8 0 0.955078 0
+13 21 9 0 0.955078 0
+13 21 10 0 0.955078 0
+13 21 11 0 0.955566 0
+13 21 12 0 0.955566 0
+13 21 13 0 0.958008 0
+13 21 14 0 0.962402 0
+13 21 15 0 0.967773 0.227051
+13 21 16 0 0.972656 0.381104
+13 21 17 0 0.974121 0.513672
+13 21 18 0 0.969727 0.635254
+13 21 19 0 0.95752 0.743164
+13 21 20 0 0.938477 0.835449
+13 21 21 0 0.912598 0.912598
+13 21 22 0 0.878906 0.97168
+13 21 23 0 0.839844 1
+13 21 24 0 0.798828 1
+13 21 25 0 0.755371 1
+13 21 26 0 0.710938 1
+13 21 27 0 0.66748 1
+13 21 28 0 0.626465 1
+13 21 29 0 0.588379 1
+13 21 30 0 0.553711 1
+13 21 31 0 0.521973 1
+13 22 0 0 1 0
+13 22 1 0 1 0
+13 22 2 0 1 0
+13 22 3 0 1 0
+13 22 4 0 1 0
+13 22 5 0 1 0
+13 22 6 0 1 0
+13 22 7 0 1 0
+13 22 8 0 1 0
+13 22 9 0 1 0
+13 22 10 0 1 0
+13 22 11 0 1 0
+13 22 12 0 1 0
+13 22 13 0 1 0
+13 22 14 0 1 0
+13 22 15 0 1 0.139771
+13 22 16 0 1 0.327637
+13 22 17 0 1 0.468262
+13 22 18 0 1 0.59375
+13 22 19 0 1 0.705566
+13 22 20 0 1 0.802246
+13 22 21 0 0.97998 0.884766
+13 22 22 0 0.95166 0.952148
+13 22 23 0 0.917969 1
+13 22 24 0 0.879883 1
+13 22 25 0 0.836914 1
+13 22 26 0 0.790527 1
+13 22 27 0 0.743652 1
+13 22 28 0 0.697754 1
+13 22 29 0 0.653809 1
+13 22 30 0 0.613281 1
+13 22 31 0 0.576172 1
+13 23 0 0 1 0
+13 23 1 0 1 0
+13 23 2 0 1 0
+13 23 3 0 1 0
+13 23 4 0 1 0
+13 23 5 0 1 0
+13 23 6 0 1 0
+13 23 7 0 1 0
+13 23 8 0 1 0
+13 23 9 0 1 0
+13 23 10 0 1 0
+13 23 11 0 1 0
+13 23 12 0 1 0
+13 23 13 0 1 0
+13 23 14 0 1 0
+13 23 15 0 1 0
+13 23 16 0 1 0.269531
+13 23 17 0 1 0.421387
+13 23 18 0 1 0.550781
+13 23 19 0 1 0.666016
+13 23 20 0 1 0.766113
+13 23 21 0 1 0.852539
+13 23 22 0 1 0.925293
+13 23 23 0 0.981934 0.981934
+13 23 24 0 0.94873 1
+13 23 25 0 0.908691 1
+13 23 26 0 0.862793 1
+13 23 27 0 0.814453 1
+13 23 28 0 0.765137 1
+13 23 29 0 0.717773 1
+13 23 30 0 0.672363 1
+13 23 31 0 0.629883 1
+13 24 0 0 1 0
+13 24 1 0 1 0
+13 24 2 0 1 0
+13 24 3 0 1 0
+13 24 4 0 1 0
+13 24 5 0 1 0
+13 24 6 0 1 0
+13 24 7 0 1 0
+13 24 8 0 1 0
+13 24 9 0 1 0
+13 24 10 0 1 0
+13 24 11 0 1 0
+13 24 12 0 1 0
+13 24 13 0 1 0
+13 24 14 0 1 0
+13 24 15 0 1 0
+13 24 16 0 1 0.203247
+13 24 17 0 1 0.373291
+13 24 18 0 1 0.507812
+13 24 19 0 1 0.625488
+13 24 20 0 1 0.728027
+13 24 21 0 1 0.818359
+13 24 22 0 1 0.894531
+13 24 23 0 1 0.956543
+13 24 24 0 1 1
+13 24 25 0 0.969727 1
+13 24 26 0 0.927246 1
+13 24 27 0 0.878906 1
+13 24 28 0 0.828613 1
+13 24 29 0 0.777832 1
+13 24 30 0 0.729004 1
+13 24 31 0 0.682617 1
+13 25 0 0 1 0
+13 25 1 0 1 0
+13 25 2 0 1 0
+13 25 3 0 1 0
+13 25 4 0 1 0
+13 25 5 0 1 0
+13 25 6 0 1 0
+13 25 7 0 1 0
+13 25 8 0 1 0
+13 25 9 0 1 0
+13 25 10 0 1 0
+13 25 11 0 1 0
+13 25 12 0 1 0
+13 25 13 0 1 0
+13 25 14 0 1 0
+13 25 15 0 1 0
+13 25 16 0 1 0.101562
+13 25 17 0 1 0.318359
+13 25 18 0 1 0.459717
+13 25 19 0 1 0.580078
+13 25 20 0 1 0.685059
+13 25 21 0 1 0.77832
+13 25 22 0 1 0.858398
+13 25 23 0 1 0.924316
+13 25 24 0 1 0.979004
+13 25 25 0 1 1
+13 25 26 0 0.987793 1
+13 25 27 0 0.942383 1
+13 25 28 0 0.89209 1
+13 25 29 0 0.840332 1
+13 25 30 0 0.788574 1
+13 25 31 0 0.738281 1
+13 26 0 0 1 0
+13 26 1 0 1 0
+13 26 2 0 1 0
+13 26 3 0 1 0
+13 26 4 0 1 0
+13 26 5 0 1 0
+13 26 6 0 1 0
+13 26 7 0 1 0
+13 26 8 0 1 0
+13 26 9 0 1 0
+13 26 10 0 1 0
+13 26 11 0 1 0
+13 26 12 0 1 0
+13 26 13 0 1 0
+13 26 14 0 1 0
+13 26 15 0 1 0
+13 26 16 0 1 0
+13 26 17 0 1 0.252441
+13 26 18 0 1 0.406494
+13 26 19 0 1 0.530273
+13 26 20 0 1 0.637695
+13 26 21 0 1 0.73291
+13 26 22 0 1 0.816406
+13 26 23 0 1 0.88623
+13 26 24 0 1 0.944824
+13 26 25 0 1 0.998047
+13 26 26 0 1 1
+13 26 27 0 1 1
+13 26 28 0 0.95459 1
+13 26 29 0 0.902832 1
+13 26 30 0 0.849121 1
+13 26 31 0 0.796387 1
+13 27 0 0 1 0
+13 27 1 0 1 0
+13 27 2 0 1 0
+13 27 3 0 1 0
+13 27 4 0 1 0
+13 27 5 0 1 0
+13 27 6 0 1 0
+13 27 7 0 1 0
+13 27 8 0 1 0
+13 27 9 0 1 0
+13 27 10 0 1 0
+13 27 11 0 1 0
+13 27 12 0 1 0
+13 27 13 0 1 0
+13 27 14 0 1 0
+13 27 15 0 1 0
+13 27 16 0 1 0
+13 27 17 0 1 0.165039
+13 27 18 0 1 0.34668
+13 27 19 0 1 0.476318
+13 27 20 0 1 0.585449
+13 27 21 0 1 0.683105
+13 27 22 0 1 0.769043
+13 27 23 0 1 0.841797
+13 27 24 0 1 0.903809
+13 27 25 0 1 0.961426
+13 27 26 0 1 1
+13 27 27 0 1 1
+13 27 28 0 1 1
+13 27 29 0 0.963379 1
+13 27 30 0 0.909668 1
+13 27 31 0 0.85498 1
+13 28 0 0 1 0
+13 28 1 0 1 0
+13 28 2 0 1 0
+13 28 3 0 1 0
+13 28 4 0 1 0
+13 28 5 0 1 0
+13 28 6 0 1 0
+13 28 7 0 1 0
+13 28 8 0 1 0
+13 28 9 0 1 0
+13 28 10 0 1 0
+13 28 11 0 1 0
+13 28 12 0 1 0
+13 28 13 0 1 0
+13 28 14 0 1 0
+13 28 15 0 1 0
+13 28 16 0 1 0
+13 28 17 0 1 0
+13 28 18 0 1 0.277832
+13 28 19 0 1 0.41748
+13 28 20 0 1 0.529785
+13 28 21 0 1 0.628418
+13 28 22 0 1 0.716309
+13 28 23 0 1 0.791504
+13 28 24 0 1 0.856934
+13 28 25 0 1 0.917969
+13 28 26 0 1 0.975098
+13 28 27 0 1 1
+13 28 28 0 1 1
+13 28 29 0 1 1
+13 28 30 0 0.969238 1
+13 28 31 0 0.914551 1
+13 29 0 0 1 0
+13 29 1 0 1 0
+13 29 2 0 1 0
+13 29 3 0 1 0
+13 29 4 0 1 0
+13 29 5 0 1 0
+13 29 6 0 1 0
+13 29 7 0 1 0
+13 29 8 0 1 0
+13 29 9 0 1 0
+13 29 10 0 1 0
+13 29 11 0 1 0
+13 29 12 0 1 0
+13 29 13 0 1 0
+13 29 14 0 1 0
+13 29 15 0 1 0
+13 29 16 0 1 0
+13 29 17 0 1 0
+13 29 18 0 1 0.19043
+13 29 19 0 1 0.352051
+13 29 20 0 1 0.468994
+13 29 21 0 1 0.569824
+13 29 22 0 1 0.658691
+13 29 23 0 1 0.73584
+13 29 24 0 1 0.803223
+13 29 25 0 1 0.867676
+13 29 26 0 1 0.928711
+13 29 27 0 1 0.984375
+13 29 28 0 1 1
+13 29 29 0 1 1
+13 29 30 0 1 1
+13 29 31 0 0.974121 1
+13 30 0 0 1 0
+13 30 1 0 1 0
+13 30 2 0 1 0
+13 30 3 0 1 0
+13 30 4 0 1 0
+13 30 5 0 1 0
+13 30 6 0 1 0
+13 30 7 0 1 0
+13 30 8 0 1 0
+13 30 9 0 1 0
+13 30 10 0 1 0
+13 30 11 0 1 0
+13 30 12 0 1 0
+13 30 13 0 1 0
+13 30 14 0 1 0
+13 30 15 0 1 0
+13 30 16 0 1 0
+13 30 17 0 1 0
+13 30 18 0 1 0.0191956
+13 30 19 0 1 0.277344
+13 30 20 0 1 0.403809
+13 30 21 0 1 0.506836
+13 30 22 0 1 0.597168
+13 30 23 0 1 0.675293
+13 30 24 0 1 0.744141
+13 30 25 0 1 0.811035
+13 30 26 0 1 0.875
+13 30 27 0 1 0.935547
+13 30 28 0 1 0.990234
+13 30 29 0 1 1
+13 30 30 0 1 1
+13 30 31 0 1 1
+13 31 0 0 1 0
+13 31 1 0 1 0
+13 31 2 0 1 0
+13 31 3 0 1 0
+13 31 4 0 1 0
+13 31 5 0 1 0
+13 31 6 0 1 0
+13 31 7 0 1 0
+13 31 8 0 1 0
+13 31 9 0 1 0
+13 31 10 0 1 0
+13 31 11 0 1 0
+13 31 12 0 1 0
+13 31 13 0 1 0
+13 31 14 0 1 0
+13 31 15 0 1 0
+13 31 16 0 1 0
+13 31 17 0 1 0
+13 31 18 0 1 0
+13 31 19 0 1 0.183594
+13 31 20 0 1 0.332031
+13 31 21 0 1 0.440186
+13 31 22 0 1 0.531738
+13 31 23 0 1 0.61084
+13 31 24 0 1 0.680664
+13 31 25 0 1 0.749023
+13 31 26 0 1 0.815918
+13 31 27 0 1 0.880371
+13 31 28 0 1 0.940918
+13 31 29 0 1 0.995605
+13 31 30 0 1 1
+13 31 31 0 1 1
+14 0 0 0.561035 0 0
+14 0 1 0.561035 0 0
+14 0 2 0.561035 0 0
+14 0 3 0.561035 0 0
+14 0 4 0.561035 0 0
+14 0 5 0.561035 0 0
+14 0 6 0.561035 0 0
+14 0 7 0.561035 0 0
+14 0 8 0.561035 0 0
+14 0 9 0.563965 0 0
+14 0 10 0.567871 0 0.0447388
+14 0 11 0.568848 0 0.15564
+14 0 12 0.553711 0 0.24585
+14 0 13 0.504883 0 0.314697
+14 0 14 0.477051 0.0401611 0.394287
+14 0 15 0.447266 0.0697021 0.488281
+14 0 16 0.399658 0.0985718 0.587402
+14 0 17 0.326416 0.12561 0.683105
+14 0 18 0.208252 0.14978 0.771484
+14 0 19 0 0.170898 0.849609
+14 0 20 0 0.186768 0.908203
+14 0 21 0 0.189087 0.914551
+14 0 22 0 0.191528 0.921875
+14 0 23 0 0.19397 0.929688
+14 0 24 0 0.196533 0.938477
+14 0 25 0 0.199097 0.947266
+14 0 26 0 0.20166 0.957031
+14 0 27 0 0.20459 0.967773
+14 0 28 0 0.208008 0.97998
+14 0 29 0 0.211548 0.993652
+14 0 30 0 0.21521 1
+14 0 31 0 0.219116 1
+14 1 0 0.561035 0 0
+14 1 1 0.561035 0 0
+14 1 2 0.561035 0 0
+14 1 3 0.561035 0 0
+14 1 4 0.561035 0 0
+14 1 5 0.561035 0 0
+14 1 6 0.561035 0 0
+14 1 7 0.561035 0 0
+14 1 8 0.560547 0 0
+14 1 9 0.563965 0 0
+14 1 10 0.567871 0 0.0446777
+14 1 11 0.568848 0 0.15564
+14 1 12 0.553711 0 0.24585
+14 1 13 0.504883 0 0.314697
+14 1 14 0.477051 0.0404053 0.394287
+14 1 15 0.447266 0.0698853 0.488281
+14 1 16 0.399658 0.0986938 0.587402
+14 1 17 0.326172 0.12561 0.683105
+14 1 18 0.208252 0.149902 0.771484
+14 1 19 0 0.170898 0.849609
+14 1 20 0 0.18689 0.908203
+14 1 21 0 0.189209 0.914551
+14 1 22 0 0.191528 0.921875
+14 1 23 0 0.194092 0.929688
+14 1 24 0 0.196533 0.938477
+14 1 25 0 0.199097 0.947266
+14 1 26 0 0.201782 0.957031
+14 1 27 0 0.20459 0.967773
+14 1 28 0 0.208008 0.97998
+14 1 29 0 0.211548 0.993652
+14 1 30 0 0.21521 1
+14 1 31 0 0.219116 1
+14 2 0 0.560547 0 0
+14 2 1 0.560547 0 0
+14 2 2 0.560547 0 0
+14 2 3 0.560547 0 0
+14 2 4 0.560547 0 0
+14 2 5 0.560547 0 0
+14 2 6 0.560547 0 0
+14 2 7 0.560547 0 0
+14 2 8 0.560547 0 0
+14 2 9 0.563965 0 0
+14 2 10 0.567871 0 0.0446167
+14 2 11 0.568848 0 0.15564
+14 2 12 0.553711 0 0.24585
+14 2 13 0.504883 0 0.314697
+14 2 14 0.477051 0.040863 0.394287
+14 2 15 0.447266 0.0701904 0.488281
+14 2 16 0.399658 0.098938 0.587402
+14 2 17 0.326172 0.125854 0.683105
+14 2 18 0.20813 0.150024 0.771484
+14 2 19 0 0.171021 0.849609
+14 2 20 0 0.18689 0.908203
+14 2 21 0 0.189209 0.914551
+14 2 22 0 0.19165 0.921875
+14 2 23 0 0.194092 0.929688
+14 2 24 0 0.196533 0.938477
+14 2 25 0 0.199097 0.947266
+14 2 26 0 0.201782 0.957031
+14 2 27 0 0.204712 0.967773
+14 2 28 0 0.208008 0.97998
+14 2 29 0 0.211548 0.993652
+14 2 30 0 0.21521 1
+14 2 31 0 0.219116 1
+14 3 0 0.560547 0 0
+14 3 1 0.560547 0 0
+14 3 2 0.560547 0 0
+14 3 3 0.560547 0 0
+14 3 4 0.560547 0 0
+14 3 5 0.560547 0 0
+14 3 6 0.560547 0 0
+14 3 7 0.560547 0 0
+14 3 8 0.560547 0 0
+14 3 9 0.563965 0 0
+14 3 10 0.567871 0 0.0444641
+14 3 11 0.568848 0 0.155518
+14 3 12 0.553711 0 0.24585
+14 3 13 0.504883 0 0.314697
+14 3 14 0.477051 0.0416565 0.394287
+14 3 15 0.447266 0.0707397 0.488281
+14 3 16 0.399658 0.0993042 0.586914
+14 3 17 0.326172 0.126099 0.683105
+14 3 18 0.208008 0.150269 0.771484
+14 3 19 0 0.171265 0.849609
+14 3 20 0 0.187012 0.908691
+14 3 21 0 0.189331 0.914551
+14 3 22 0 0.191772 0.921875
+14 3 23 0 0.194092 0.929688
+14 3 24 0 0.196655 0.938477
+14 3 25 0 0.199097 0.947266
+14 3 26 0 0.201782 0.957031
+14 3 27 0 0.204712 0.967773
+14 3 28 0 0.208008 0.980469
+14 3 29 0 0.211548 0.993652
+14 3 30 0 0.215332 1
+14 3 31 0 0.219116 1
+14 4 0 0.560547 0 0
+14 4 1 0.560547 0 0
+14 4 2 0.560547 0 0
+14 4 3 0.560547 0 0
+14 4 4 0.560547 0 0
+14 4 5 0.560547 0 0
+14 4 6 0.560547 0 0
+14 4 7 0.560547 0 0
+14 4 8 0.560547 0 0
+14 4 9 0.563965 0 0
+14 4 10 0.567383 0 0.0441895
+14 4 11 0.568359 0 0.155518
+14 4 12 0.553711 0 0.245728
+14 4 13 0.504883 0 0.314697
+14 4 14 0.476807 0.0431213 0.394287
+14 4 15 0.447266 0.0717163 0.488281
+14 4 16 0.399414 0.100037 0.586914
+14 4 17 0.326172 0.126587 0.683105
+14 4 18 0.207886 0.150635 0.771484
+14 4 19 0 0.171509 0.849609
+14 4 20 0 0.187378 0.908691
+14 4 21 0 0.189575 0.914551
+14 4 22 0 0.191895 0.921875
+14 4 23 0 0.194336 0.929688
+14 4 24 0 0.196777 0.938477
+14 4 25 0 0.199219 0.947266
+14 4 26 0 0.201904 0.957031
+14 4 27 0 0.204834 0.967773
+14 4 28 0 0.20813 0.980469
+14 4 29 0 0.21167 0.993652
+14 4 30 0 0.215332 1
+14 4 31 0 0.219116 1
+14 5 0 0.560547 0 0
+14 5 1 0.560547 0 0
+14 5 2 0.560547 0 0
+14 5 3 0.560547 0 0
+14 5 4 0.560547 0 0
+14 5 5 0.560547 0 0
+14 5 6 0.560547 0 0
+14 5 7 0.560547 0 0
+14 5 8 0.560547 0 0
+14 5 9 0.563965 0 0
+14 5 10 0.567383 0 0.0436401
+14 5 11 0.568359 0 0.155273
+14 5 12 0.553711 0 0.245728
+14 5 13 0.504395 0 0.314697
+14 5 14 0.476807 0.0458679 0.394287
+14 5 15 0.447021 0.0736084 0.488037
+14 5 16 0.39917 0.101379 0.586914
+14 5 17 0.325928 0.127686 0.683105
+14 5 18 0.20752 0.151367 0.771484
+14 5 19 0 0.172119 0.849609
+14 5 20 0 0.187866 0.908691
+14 5 21 0 0.189941 0.914551
+14 5 22 0 0.192261 0.921875
+14 5 23 0 0.19458 0.929688
+14 5 24 0 0.197021 0.938477
+14 5 25 0 0.199463 0.947266
+14 5 26 0 0.202026 0.957031
+14 5 27 0 0.204956 0.967773
+14 5 28 0 0.208252 0.980469
+14 5 29 0 0.211792 0.993652
+14 5 30 0 0.215454 1
+14 5 31 0 0.219238 1
+14 6 0 0.560059 0 0
+14 6 1 0.560059 0 0
+14 6 2 0.560059 0 0
+14 6 3 0.560059 0 0
+14 6 4 0.560059 0 0
+14 6 5 0.560059 0 0
+14 6 6 0.560059 0 0
+14 6 7 0.560059 0 0
+14 6 8 0.560059 0 0
+14 6 9 0.563477 0 0
+14 6 10 0.567383 0 0.0426331
+14 6 11 0.567871 0 0.154907
+14 6 12 0.553711 0 0.245605
+14 6 13 0.504395 0 0.314453
+14 6 14 0.476318 0.0508423 0.394043
+14 6 15 0.446533 0.0771484 0.488037
+14 6 16 0.398926 0.103943 0.586914
+14 6 17 0.325439 0.129639 0.683105
+14 6 18 0.206787 0.152954 0.771484
+14 6 19 0 0.17334 0.849609
+14 6 20 0 0.188843 0.908691
+14 6 21 0 0.190674 0.914551
+14 6 22 0 0.192871 0.921875
+14 6 23 0 0.195068 0.929688
+14 6 24 0 0.197388 0.938477
+14 6 25 0 0.199829 0.947266
+14 6 26 0 0.202393 0.957031
+14 6 27 0 0.2052 0.967773
+14 6 28 0 0.208496 0.980469
+14 6 29 0 0.211914 0.993652
+14 6 30 0 0.215576 1
+14 6 31 0 0.21936 1
+14 7 0 0.55957 0 0
+14 7 1 0.55957 0 0
+14 7 2 0.55957 0 0
+14 7 3 0.55957 0 0
+14 7 4 0.55957 0 0
+14 7 5 0.55957 0 0
+14 7 6 0.55957 0 0
+14 7 7 0.55957 0 0
+14 7 8 0.55957 0 0
+14 7 9 0.5625 0 0
+14 7 10 0.566406 0 0.0406494
+14 7 11 0.567383 0 0.154297
+14 7 12 0.553711 0 0.245361
+14 7 13 0.503906 5.81145e-05 0.314453
+14 7 14 0.47583 0.0597229 0.394043
+14 7 15 0.446045 0.0836182 0.488037
+14 7 16 0.398193 0.108826 0.586914
+14 7 17 0.324463 0.133301 0.683105
+14 7 18 0.205322 0.155762 0.771484
+14 7 19 0 0.175659 0.849609
+14 7 20 0 0.190674 0.908691
+14 7 21 0 0.192261 0.914551
+14 7 22 0 0.194092 0.921875
+14 7 23 0 0.196045 0.930176
+14 7 24 0 0.198242 0.938477
+14 7 25 0 0.200562 0.947266
+14 7 26 0 0.203003 0.957031
+14 7 27 0 0.205688 0.967773
+14 7 28 0 0.208862 0.980469
+14 7 29 0 0.21228 0.993652
+14 7 30 0 0.215942 1
+14 7 31 0 0.219727 1
+14 8 0 0.558105 0 0
+14 8 1 0.558105 0 0
+14 8 2 0.558105 0 0
+14 8 3 0.558105 0 0
+14 8 4 0.558105 0 0
+14 8 5 0.558105 0 0
+14 8 6 0.558105 0 0
+14 8 7 0.558105 0 0
+14 8 8 0.558105 0 0
+14 8 9 0.561035 0 0
+14 8 10 0.564941 0 0.0368347
+14 8 11 0.565918 0 0.152954
+14 8 12 0.553223 0 0.244751
+14 8 13 0.503418 0.021759 0.314453
+14 8 14 0.474365 0.074707 0.393799
+14 8 15 0.44458 0.0952148 0.487793
+14 8 16 0.396729 0.117798 0.586914
+14 8 17 0.322754 0.140259 0.683105
+14 8 18 0.202637 0.161255 0.771484
+14 8 19 0 0.180054 0.849609
+14 8 20 0 0.194336 0.908691
+14 8 21 0 0.195068 0.915039
+14 8 22 0 0.196411 0.921875
+14 8 23 0 0.19812 0.930176
+14 8 24 0 0.199951 0.938965
+14 8 25 0 0.202026 0.947754
+14 8 26 0 0.204224 0.957031
+14 8 27 0 0.206787 0.967773
+14 8 28 0 0.209839 0.980469
+14 8 29 0 0.213135 0.993652
+14 8 30 0 0.216553 1
+14 8 31 0 0.220215 1
+14 9 0 0.554688 0 0
+14 9 1 0.554688 0 0
+14 9 2 0.554688 0 0
+14 9 3 0.554688 0 0
+14 9 4 0.554688 0 0
+14 9 5 0.554688 0 0
+14 9 6 0.554688 0 0
+14 9 7 0.554688 0 0
+14 9 8 0.554688 0 0
+14 9 9 0.558105 0 0
+14 9 10 0.562012 0 0.0302887
+14 9 11 0.563477 0 0.150024
+14 9 12 0.552246 0 0.243652
+14 9 13 0.501953 0.0602722 0.314453
+14 9 14 0.471924 0.0982056 0.393311
+14 9 15 0.442139 0.114502 0.487549
+14 9 16 0.393799 0.133301 0.586914
+14 9 17 0.319336 0.15271 0.683105
+14 9 18 0.197144 0.171265 0.771484
+14 9 19 0 0.188232 0.849609
+14 9 20 0 0.20105 0.90918
+14 9 21 0 0.200439 0.915039
+14 9 22 0 0.200806 0.922363
+14 9 23 0 0.201782 0.930664
+14 9 24 0 0.203125 0.938965
+14 9 25 0 0.204712 0.947754
+14 9 26 0 0.206543 0.95752
+14 9 27 0 0.20874 0.968262
+14 9 28 0 0.211548 0.980469
+14 9 29 0 0.2146 0.994141
+14 9 30 0 0.217896 1
+14 9 31 0 0.221313 1
+14 10 0 0.54834 0.067688 0
+14 10 1 0.54834 0.067688 0
+14 10 2 0.54834 0.067749 0
+14 10 3 0.54834 0.0678101 0
+14 10 4 0.54834 0.0679321 0
+14 10 5 0.54834 0.0681763 0
+14 10 6 0.54834 0.0686035 0
+14 10 7 0.54834 0.069458 0
+14 10 8 0.54834 0.071106 0
+14 10 9 0.55127 0.0724487 0
+14 10 10 0.555176 0.0688477 0.0211334
+14 10 11 0.558594 0.0623169 0.144775
+14 10 12 0.549805 0.0613708 0.241089
+14 10 13 0.499756 0.105469 0.314209
+14 10 14 0.467529 0.131226 0.392578
+14 10 15 0.437256 0.143311 0.487061
+14 10 16 0.388672 0.157715 0.586426
+14 10 17 0.312988 0.172974 0.683105
+14 10 18 0.18689 0.18811 0.771484
+14 10 19 0 0.202026 0.849609
+14 10 20 0 0.212769 0.910156
+14 10 21 0 0.209961 0.916016
+14 10 22 0 0.208618 0.92334
+14 10 23 0 0.208374 0.931152
+14 10 24 0 0.20874 0.939453
+14 10 25 0 0.209473 0.948242
+14 10 26 0 0.210693 0.95752
+14 10 27 0 0.21228 0.968262
+14 10 28 0 0.2146 0.980957
+14 10 29 0 0.217163 0.994141
+14 10 30 0 0.220093 1
+14 10 31 0 0.223267 1
+14 11 0 0.535156 0.152222 0
+14 11 1 0.535156 0.152222 0
+14 11 2 0.535156 0.152344 0
+14 11 3 0.535156 0.152344 0
+14 11 4 0.535156 0.152344 0
+14 11 5 0.535156 0.152466 0
+14 11 6 0.535156 0.15271 0
+14 11 7 0.535156 0.153076 0
+14 11 8 0.535156 0.153809 0
+14 11 9 0.537109 0.154907 0
+14 11 10 0.540527 0.154297 0.0139847
+14 11 11 0.54541 0.15271 0.136719
+14 11 12 0.541016 0.14978 0.235474
+14 11 13 0.496094 0.158936 0.314209
+14 11 14 0.459473 0.174683 0.390869
+14 11 15 0.428711 0.183105 0.48584
+14 11 16 0.37915 0.192993 0.585938
+14 11 17 0.301514 0.203613 0.682617
+14 11 18 0.167114 0.214111 0.771484
+14 11 19 0 0.224243 0.849609
+14 11 20 0 0.231812 0.911133
+14 11 21 0 0.225464 0.91748
+14 11 22 0 0.221558 0.924316
+14 11 23 0 0.219482 0.932617
+14 11 24 0 0.21814 0.94043
+14 11 25 0 0.217651 0.94873
+14 11 26 0 0.217651 0.958008
+14 11 27 0 0.218384 0.96875
+14 11 28 0 0.219849 0.980957
+14 11 29 0 0.221802 0.994629
+14 11 30 0 0.224121 1
+14 11 31 0 0.226685 1
+14 12 0 0.511719 0.226685 0
+14 12 1 0.511719 0.226685 0
+14 12 2 0.511719 0.226685 0
+14 12 3 0.511719 0.226807 0
+14 12 4 0.511719 0.226807 0
+14 12 5 0.511719 0.226807 0
+14 12 6 0.511719 0.226929 0
+14 12 7 0.511719 0.227173 0
+14 12 8 0.511719 0.227661 0
+14 12 9 0.511719 0.228271 0
+14 12 10 0.512695 0.229004 0.0236816
+14 12 11 0.514648 0.230347 0.130493
+14 12 12 0.517578 0.230835 0.224365
+14 12 13 0.489746 0.22583 0.313477
+14 12 14 0.445068 0.229858 0.388184
+14 12 15 0.413574 0.234985 0.483887
+14 12 16 0.362305 0.240845 0.584473
+14 12 17 0.280518 0.246582 0.682129
+14 12 18 0.125854 0.251953 0.771484
+14 12 19 0 0.257324 0.850098
+14 12 20 0 0.260986 0.913086
+14 12 21 0 0.249756 0.919434
+14 12 22 0 0.242188 0.926758
+14 12 23 0 0.236938 0.934082
+14 12 24 0 0.233398 0.941406
+14 12 25 0 0.230835 0.949707
+14 12 26 0 0.229248 0.958984
+14 12 27 0 0.228394 0.969727
+14 12 28 0 0.228516 0.981934
+14 12 29 0 0.22937 0.995117
+14 12 30 0 0.230591 1
+14 12 31 0 0.2323 1
+14 13 0 0.484131 0.30249 0
+14 13 1 0.484131 0.30249 0
+14 13 2 0.484131 0.30249 0
+14 13 3 0.484131 0.30249 0
+14 13 4 0.484131 0.30249 0
+14 13 5 0.484131 0.30249 0
+14 13 6 0.484131 0.30249 0
+14 13 7 0.484131 0.302734 0
+14 13 8 0.484375 0.302979 0
+14 13 9 0.483887 0.303467 0
+14 13 10 0.480713 0.303223 0.0496521
+14 13 11 0.475342 0.302734 0.135376
+14 13 12 0.467285 0.302734 0.213745
+14 13 13 0.460938 0.304443 0.302734
+14 13 14 0.419922 0.296631 0.383545
+14 13 15 0.386719 0.299316 0.480469
+14 13 16 0.332275 0.301514 0.582031
+14 13 17 0.241089 0.302734 0.680664
+14 13 18 0 0.302979 0.770996
+14 13 19 0 0.302979 0.850098
+14 13 20 0 0.30249 0.915527
+14 13 21 0 0.284912 0.922363
+14 13 22 0 0.272217 0.929199
+14 13 23 0 0.262939 0.936035
+14 13 24 0 0.256348 0.943359
+14 13 25 0 0.250977 0.951172
+14 13 26 0 0.246948 0.960449
+14 13 27 0 0.243896 0.971191
+14 13 28 0 0.242188 0.983398
+14 13 29 0 0.241211 0.996582
+14 13 30 0 0.240967 1
+14 13 31 0 0.241333 1
+14 14 0 0.451904 0.395264 0
+14 14 1 0.451904 0.395264 0
+14 14 2 0.451904 0.395264 0
+14 14 3 0.451904 0.395264 0
+14 14 4 0.451904 0.395264 0
+14 14 5 0.451904 0.395264 0
+14 14 6 0.451904 0.395264 0
+14 14 7 0.451904 0.395508 0
+14 14 8 0.451904 0.395752 0
+14 14 9 0.451904 0.395996 0
+14 14 10 0.44873 0.395508 0.00992584
+14 14 11 0.441895 0.394287 0.123474
+14 14 12 0.429932 0.391113 0.208984
+14 14 13 0.40918 0.385498 0.292236
+14 14 14 0.375244 0.375244 0.375244
+14 14 15 0.338623 0.376221 0.474365
+14 14 16 0.275635 0.375488 0.578125
+14 14 17 0.155396 0.372559 0.678223
+14 14 18 0 0.36792 0.769531
+14 14 19 0 0.362549 0.849609
+14 14 20 0 0.356689 0.916016
+14 14 21 0 0.333008 0.92627
+14 14 22 0 0.313721 0.932617
+14 14 23 0 0.299805 0.939453
+14 14 24 0 0.289062 0.946289
+14 14 25 0 0.280273 0.954102
+14 14 26 0 0.272949 0.963379
+14 14 27 0 0.266846 0.973633
+14 14 28 0 0.262451 0.985352
+14 14 29 0 0.259033 0.998535
+14 14 30 0 0.256592 1
+14 14 31 0 0.255127 1
+14 15 0 0.364014 0.478027 0
+14 15 1 0.364014 0.478027 0
+14 15 2 0.364014 0.478027 0
+14 15 3 0.364014 0.478271 0
+14 15 4 0.364014 0.478271 0
+14 15 5 0.364014 0.478271 0
+14 15 6 0.364014 0.478271 0
+14 15 7 0.364014 0.478271 0
+14 15 8 0.364014 0.478516 0
+14 15 9 0.364258 0.47876 0
+14 15 10 0.362305 0.478516 0
+14 15 11 0.355469 0.477051 0.0662842
+14 15 12 0.343262 0.473877 0.176392
+14 15 13 0.322754 0.468506 0.268066
+14 15 14 0.291748 0.464355 0.361816
+14 15 15 0.243286 0.464111 0.464111
+14 15 16 0.144043 0.461426 0.570312
+14 15 17 0 0.455078 0.672852
+14 15 18 0 0.446045 0.766602
+14 15 19 0 0.435791 0.848633
+14 15 20 0 0.424561 0.916016
+14 15 21 0 0.394775 0.931641
+14 15 22 0 0.368408 0.937988
+14 15 23 0 0.348633 0.944824
+14 15 24 0 0.333008 0.95166
+14 15 25 0 0.319824 0.958984
+14 15 26 0 0.30835 0.967773
+14 15 27 0 0.298584 0.977539
+14 15 28 0 0.290527 0.989258
+14 15 29 0 0.28418 1
+14 15 30 0 0.278809 1
+14 15 31 0 0.274658 1
+14 16 0 0.194702 0.563477 0
+14 16 1 0.194702 0.563477 0
+14 16 2 0.194702 0.563477 0
+14 16 3 0.194702 0.563477 0
+14 16 4 0.194702 0.563477 0
+14 16 5 0.194824 0.563477 0
+14 16 6 0.194824 0.563477 0
+14 16 7 0.194824 0.563477 0
+14 16 8 0.194946 0.563477 0
+14 16 9 0.195068 0.563965 0
+14 16 10 0.195312 0.564453 0
+14 16 11 0.185547 0.563965 0
+14 16 12 0.166382 0.562988 0.124573
+14 16 13 0.129395 0.561523 0.236328
+14 16 14 0.0286255 0.561035 0.340332
+14 16 15 0 0.560547 0.447266
+14 16 16 0 0.557129 0.557129
+14 16 17 0 0.548828 0.663574
+14 16 18 0 0.536133 0.760254
+14 16 19 0 0.521484 0.845215
+14 16 20 0 0.505371 0.914551
+14 16 21 0 0.470703 0.937988
+14 16 22 0 0.437012 0.946289
+14 16 23 0 0.410645 0.953613
+14 16 24 0 0.389648 0.959961
+14 16 25 0 0.371094 0.967285
+14 16 26 0 0.354736 0.975098
+14 16 27 0 0.340332 0.984375
+14 16 28 0 0.328125 0.995117
+14 16 29 0 0.317871 1
+14 16 30 0 0.309082 1
+14 16 31 0 0.301514 1
+14 17 0 0 0.655273 0
+14 17 1 0 0.655273 0
+14 17 2 0 0.655273 0
+14 17 3 0 0.655273 0
+14 17 4 0 0.655273 0
+14 17 5 0 0.655273 0
+14 17 6 0 0.655273 0
+14 17 7 0 0.655273 0
+14 17 8 0 0.655273 0
+14 17 9 0 0.655762 0
+14 17 10 0 0.655762 0
+14 17 11 0 0.65625 0
+14 17 12 0 0.657227 0.00223351
+14 17 13 0 0.657715 0.189697
+14 17 14 0 0.65918 0.308105
+14 17 15 0 0.65918 0.421631
+14 17 16 0 0.655762 0.536133
+14 17 17 0 0.646973 0.646973
+14 17 18 0 0.633301 0.749023
+14 17 19 0 0.615723 0.837402
+14 17 20 0 0.595215 0.910156
+14 17 21 0 0.558105 0.944336
+14 17 22 0 0.518066 0.957031
+14 17 23 0 0.485107 0.96582
+14 17 24 0 0.458252 0.972656
+14 17 25 0 0.433838 0.979492
+14 17 26 0 0.411621 0.986816
+14 17 27 0 0.39209 0.994629
+14 17 28 0 0.375 1
+14 17 29 0 0.359863 1
+14 17 30 0 0.346924 1
+14 17 31 0 0.335449 1
+14 18 0 0 0.744629 0
+14 18 1 0 0.744629 0
+14 18 2 0 0.744629 0
+14 18 3 0 0.744629 0
+14 18 4 0 0.744629 0
+14 18 5 0 0.744629 0
+14 18 6 0 0.744629 0
+14 18 7 0 0.744629 0
+14 18 8 0 0.744629 0
+14 18 9 0 0.745117 0
+14 18 10 0 0.745117 0
+14 18 11 0 0.745605 0
+14 18 12 0 0.746582 0
+14 18 13 0 0.748535 0.111145
+14 18 14 0 0.750977 0.262695
+14 18 15 0 0.752441 0.386719
+14 18 16 0 0.750488 0.507324
+14 18 17 0 0.743652 0.623535
+14 18 18 0 0.72998 0.730469
+14 18 19 0 0.711426 0.82373
+14 18 20 0 0.688965 0.900879
+14 18 21 0 0.651855 0.947266
+14 18 22 0 0.608398 0.96875
+14 18 23 0 0.569824 0.980957
+14 18 24 0 0.537109 0.989258
+14 18 25 0 0.506348 0.996094
+14 18 26 0 0.478271 1
+14 18 27 0 0.452637 1
+14 18 28 0 0.429932 1
+14 18 29 0 0.409668 1
+14 18 30 0 0.391602 1
+14 18 31 0 0.375732 1
+14 19 0 0 0.825684 0
+14 19 1 0 0.825684 0
+14 19 2 0 0.825684 0
+14 19 3 0 0.825684 0
+14 19 4 0 0.825684 0
+14 19 5 0 0.825684 0
+14 19 6 0 0.825684 0
+14 19 7 0 0.825684 0
+14 19 8 0 0.826172 0
+14 19 9 0 0.826172 0
+14 19 10 0 0.826172 0
+14 19 11 0 0.82666 0
+14 19 12 0 0.827637 0
+14 19 13 0 0.830078 0
+14 19 14 0 0.833008 0.201172
+14 19 15 0 0.835938 0.342773
+14 19 16 0 0.836426 0.470703
+14 19 17 0 0.832031 0.592285
+14 19 18 0 0.820801 0.70459
+14 19 19 0 0.803223 0.803711
+14 19 20 0 0.779785 0.885742
+14 19 21 0 0.745605 0.944336
+14 19 22 0 0.702637 0.978027
+14 19 23 0 0.661133 0.99707
+14 19 24 0 0.623047 1
+14 19 25 0 0.586914 1
+14 19 26 0 0.552246 1
+14 19 27 0 0.520508 1
+14 19 28 0 0.491455 1
+14 19 29 0 0.465332 1
+14 19 30 0 0.441895 1
+14 19 31 0 0.420898 1
+14 20 0 0 0.896484 0
+14 20 1 0 0.896484 0
+14 20 2 0 0.896484 0
+14 20 3 0 0.896484 0
+14 20 4 0 0.896484 0
+14 20 5 0 0.896484 0
+14 20 6 0 0.896484 0
+14 20 7 0 0.896484 0
+14 20 8 0 0.896484 0
+14 20 9 0 0.896484 0
+14 20 10 0 0.896973 0
+14 20 11 0 0.896973 0
+14 20 12 0 0.897461 0
+14 20 13 0 0.900391 0
+14 20 14 0 0.903809 0.106934
+14 20 15 0 0.907715 0.290527
+14 20 16 0 0.910645 0.428711
+14 20 17 0 0.908691 0.555664
+14 20 18 0 0.900879 0.672852
+14 20 19 0 0.885742 0.776367
+14 20 20 0 0.86377 0.86377
+14 20 21 0 0.833984 0.933594
+14 20 22 0 0.794922 0.980469
+14 20 23 0 0.752441 1
+14 20 24 0 0.711914 1
+14 20 25 0 0.670898 1
+14 20 26 0 0.630371 1
+14 20 27 0 0.592285 1
+14 20 28 0 0.557129 1
+14 20 29 0 0.524902 1
+14 20 30 0 0.49585 1
+14 20 31 0 0.469727 1
+14 21 0 0 0.957031 0
+14 21 1 0 0.957031 0
+14 21 2 0 0.957031 0
+14 21 3 0 0.957031 0
+14 21 4 0 0.957031 0
+14 21 5 0 0.957031 0
+14 21 6 0 0.957031 0
+14 21 7 0 0.957031 0
+14 21 8 0 0.957031 0
+14 21 9 0 0.957031 0
+14 21 10 0 0.957031 0
+14 21 11 0 0.95752 0
+14 21 12 0 0.95752 0
+14 21 13 0 0.959473 0
+14 21 14 0 0.963867 0
+14 21 15 0 0.96875 0.225952
+14 21 16 0 0.973145 0.380615
+14 21 17 0 0.974609 0.513672
+14 21 18 0 0.969727 0.635254
+14 21 19 0 0.958008 0.743164
+14 21 20 0 0.938965 0.835938
+14 21 21 0 0.913086 0.913574
+14 21 22 0 0.879883 0.972656
+14 21 23 0 0.840332 1
+14 21 24 0 0.799805 1
+14 21 25 0 0.755859 1
+14 21 26 0 0.711426 1
+14 21 27 0 0.667969 1
+14 21 28 0 0.626953 1
+14 21 29 0 0.588867 1
+14 21 30 0 0.553711 1
+14 21 31 0 0.521973 1
+14 22 0 0 1 0
+14 22 1 0 1 0
+14 22 2 0 1 0
+14 22 3 0 1 0
+14 22 4 0 1 0
+14 22 5 0 1 0
+14 22 6 0 1 0
+14 22 7 0 1 0
+14 22 8 0 1 0
+14 22 9 0 1 0
+14 22 10 0 1 0
+14 22 11 0 1 0
+14 22 12 0 1 0
+14 22 13 0 1 0
+14 22 14 0 1 0
+14 22 15 0 1 0.137939
+14 22 16 0 1 0.327148
+14 22 17 0 1 0.468018
+14 22 18 0 1 0.59375
+14 22 19 0 1 0.705566
+14 22 20 0 1 0.802246
+14 22 21 0 0.980957 0.885254
+14 22 22 0 0.952637 0.952637
+14 22 23 0 0.918457 1
+14 22 24 0 0.880371 1
+14 22 25 0 0.837402 1
+14 22 26 0 0.791016 1
+14 22 27 0 0.743652 1
+14 22 28 0 0.697754 1
+14 22 29 0 0.654297 1
+14 22 30 0 0.61377 1
+14 22 31 0 0.57666 1
+14 23 0 0 1 0
+14 23 1 0 1 0
+14 23 2 0 1 0
+14 23 3 0 1 0
+14 23 4 0 1 0
+14 23 5 0 1 0
+14 23 6 0 1 0
+14 23 7 0 1 0
+14 23 8 0 1 0
+14 23 9 0 1 0
+14 23 10 0 1 0
+14 23 11 0 1 0
+14 23 12 0 1 0
+14 23 13 0 1 0
+14 23 14 0 1 0
+14 23 15 0 1 0
+14 23 16 0 1 0.269043
+14 23 17 0 1 0.421387
+14 23 18 0 1 0.550781
+14 23 19 0 1 0.666016
+14 23 20 0 1 0.766113
+14 23 21 0 1 0.853027
+14 23 22 0 1 0.925781
+14 23 23 0 0.982422 0.98291
+14 23 24 0 0.949219 1
+14 23 25 0 0.90918 1
+14 23 26 0 0.863281 1
+14 23 27 0 0.814941 1
+14 23 28 0 0.765625 1
+14 23 29 0 0.717773 1
+14 23 30 0 0.672363 1
+14 23 31 0 0.630371 1
+14 24 0 0 1 0
+14 24 1 0 1 0
+14 24 2 0 1 0
+14 24 3 0 1 0
+14 24 4 0 1 0
+14 24 5 0 1 0
+14 24 6 0 1 0
+14 24 7 0 1 0
+14 24 8 0 1 0
+14 24 9 0 1 0
+14 24 10 0 1 0
+14 24 11 0 1 0
+14 24 12 0 1 0
+14 24 13 0 1 0
+14 24 14 0 1 0
+14 24 15 0 1 0
+14 24 16 0 1 0.202393
+14 24 17 0 1 0.373291
+14 24 18 0 1 0.507812
+14 24 19 0 1 0.625488
+14 24 20 0 1 0.728516
+14 24 21 0 1 0.818359
+14 24 22 0 1 0.89502
+14 24 23 0 1 0.957031
+14 24 24 0 1 1
+14 24 25 0 0.970703 1
+14 24 26 0 0.927734 1
+14 24 27 0 0.879395 1
+14 24 28 0 0.829102 1
+14 24 29 0 0.77832 1
+14 24 30 0 0.729492 1
+14 24 31 0 0.682617 1
+14 25 0 0 1 0
+14 25 1 0 1 0
+14 25 2 0 1 0
+14 25 3 0 1 0
+14 25 4 0 1 0
+14 25 5 0 1 0
+14 25 6 0 1 0
+14 25 7 0 1 0
+14 25 8 0 1 0
+14 25 9 0 1 0
+14 25 10 0 1 0
+14 25 11 0 1 0
+14 25 12 0 1 0
+14 25 13 0 1 0
+14 25 14 0 1 0
+14 25 15 0 1 0
+14 25 16 0 1 0.0996094
+14 25 17 0 1 0.318115
+14 25 18 0 1 0.459717
+14 25 19 0 1 0.580078
+14 25 20 0 1 0.685547
+14 25 21 0 1 0.77832
+14 25 22 0 1 0.858887
+14 25 23 0 1 0.924805
+14 25 24 0 1 0.979492
+14 25 25 0 1 1
+14 25 26 0 0.98877 1
+14 25 27 0 0.942871 1
+14 25 28 0 0.893066 1
+14 25 29 0 0.84082 1
+14 25 30 0 0.788574 1
+14 25 31 0 0.73877 1
+14 26 0 0 1 0
+14 26 1 0 1 0
+14 26 2 0 1 0
+14 26 3 0 1 0
+14 26 4 0 1 0
+14 26 5 0 1 0
+14 26 6 0 1 0
+14 26 7 0 1 0
+14 26 8 0 1 0
+14 26 9 0 1 0
+14 26 10 0 1 0
+14 26 11 0 1 0
+14 26 12 0 1 0
+14 26 13 0 1 0
+14 26 14 0 1 0
+14 26 15 0 1 0
+14 26 16 0 1 0
+14 26 17 0 1 0.252197
+14 26 18 0 1 0.406494
+14 26 19 0 1 0.530762
+14 26 20 0 1 0.637695
+14 26 21 0 1 0.733398
+14 26 22 0 1 0.816895
+14 26 23 0 1 0.886719
+14 26 24 0 1 0.945312
+14 26 25 0 1 0.998535
+14 26 26 0 1 1
+14 26 27 0 1 1
+14 26 28 0 0.955078 1
+14 26 29 0 0.90332 1
+14 26 30 0 0.849609 1
+14 26 31 0 0.796875 1
+14 27 0 0 1 0
+14 27 1 0 1 0
+14 27 2 0 1 0
+14 27 3 0 1 0
+14 27 4 0 1 0
+14 27 5 0 1 0
+14 27 6 0 1 0
+14 27 7 0 1 0
+14 27 8 0 1 0
+14 27 9 0 1 0
+14 27 10 0 1 0
+14 27 11 0 1 0
+14 27 12 0 1 0
+14 27 13 0 1 0
+14 27 14 0 1 0
+14 27 15 0 1 0
+14 27 16 0 1 0
+14 27 17 0 1 0.164185
+14 27 18 0 1 0.34668
+14 27 19 0 1 0.476318
+14 27 20 0 1 0.585938
+14 27 21 0 1 0.683105
+14 27 22 0 1 0.769043
+14 27 23 0 1 0.842285
+14 27 24 0 1 0.904297
+14 27 25 0 1 0.961914
+14 27 26 0 1 1
+14 27 27 0 1 1
+14 27 28 0 1 1
+14 27 29 0 0.963867 1
+14 27 30 0 0.910156 1
+14 27 31 0 0.855469 1
+14 28 0 0 1 0
+14 28 1 0 1 0
+14 28 2 0 1 0
+14 28 3 0 1 0
+14 28 4 0 1 0
+14 28 5 0 1 0
+14 28 6 0 1 0
+14 28 7 0 1 0
+14 28 8 0 1 0
+14 28 9 0 1 0
+14 28 10 0 1 0
+14 28 11 0 1 0
+14 28 12 0 1 0
+14 28 13 0 1 0
+14 28 14 0 1 0
+14 28 15 0 1 0
+14 28 16 0 1 0
+14 28 17 0 1 0
+14 28 18 0 1 0.277588
+14 28 19 0 1 0.41748
+14 28 20 0 1 0.529785
+14 28 21 0 1 0.628906
+14 28 22 0 1 0.716797
+14 28 23 0 1 0.791992
+14 28 24 0 1 0.856934
+14 28 25 0 1 0.918457
+14 28 26 0 1 0.975586
+14 28 27 0 1 1
+14 28 28 0 1 1
+14 28 29 0 1 1
+14 28 30 0 0.969727 1
+14 28 31 0 0.915039 1
+14 29 0 0 1 0
+14 29 1 0 1 0
+14 29 2 0 1 0
+14 29 3 0 1 0
+14 29 4 0 1 0
+14 29 5 0 1 0
+14 29 6 0 1 0
+14 29 7 0 1 0
+14 29 8 0 1 0
+14 29 9 0 1 0
+14 29 10 0 1 0
+14 29 11 0 1 0
+14 29 12 0 1 0
+14 29 13 0 1 0
+14 29 14 0 1 0
+14 29 15 0 1 0
+14 29 16 0 1 0
+14 29 17 0 1 0
+14 29 18 0 1 0.190063
+14 29 19 0 1 0.352051
+14 29 20 0 1 0.469238
+14 29 21 0 1 0.569824
+14 29 22 0 1 0.65918
+14 29 23 0 1 0.736328
+14 29 24 0 1 0.803711
+14 29 25 0 1 0.868164
+14 29 26 0 1 0.929199
+14 29 27 0 1 0.984863
+14 29 28 0 1 1
+14 29 29 0 1 1
+14 29 30 0 1 1
+14 29 31 0 0.974609 1
+14 30 0 0 1 0
+14 30 1 0 1 0
+14 30 2 0 1 0
+14 30 3 0 1 0
+14 30 4 0 1 0
+14 30 5 0 1 0
+14 30 6 0 1 0
+14 30 7 0 1 0
+14 30 8 0 1 0
+14 30 9 0 1 0
+14 30 10 0 1 0
+14 30 11 0 1 0
+14 30 12 0 1 0
+14 30 13 0 1 0
+14 30 14 0 1 0
+14 30 15 0 1 0
+14 30 16 0 1 0
+14 30 17 0 1 0
+14 30 18 0 1 0.016922
+14 30 19 0 1 0.277344
+14 30 20 0 1 0.403809
+14 30 21 0 1 0.507324
+14 30 22 0 1 0.597656
+14 30 23 0 1 0.675781
+14 30 24 0 1 0.744141
+14 30 25 0 1 0.811035
+14 30 26 0 1 0.875488
+14 30 27 0 1 0.936035
+14 30 28 0 1 0.990723
+14 30 29 0 1 1
+14 30 30 0 1 1
+14 30 31 0 1 1
+14 31 0 0 1 0
+14 31 1 0 1 0
+14 31 2 0 1 0
+14 31 3 0 1 0
+14 31 4 0 1 0
+14 31 5 0 1 0
+14 31 6 0 1 0
+14 31 7 0 1 0
+14 31 8 0 1 0
+14 31 9 0 1 0
+14 31 10 0 1 0
+14 31 11 0 1 0
+14 31 12 0 1 0
+14 31 13 0 1 0
+14 31 14 0 1 0
+14 31 15 0 1 0
+14 31 16 0 1 0
+14 31 17 0 1 0
+14 31 18 0 1 0
+14 31 19 0 1 0.183228
+14 31 20 0 1 0.332031
+14 31 21 0 1 0.44043
+14 31 22 0 1 0.532227
+14 31 23 0 1 0.61084
+14 31 24 0 1 0.680664
+14 31 25 0 1 0.749023
+14 31 26 0 1 0.816406
+14 31 27 0 1 0.880859
+14 31 28 0 1 0.940918
+14 31 29 0 1 0.996094
+14 31 30 0 1 1
+14 31 31 0 1 1
+15 0 0 0.654785 0 0
+15 0 1 0.654785 0 0
+15 0 2 0.654785 0 0
+15 0 3 0.654785 0 0
+15 0 4 0.654785 0 0
+15 0 5 0.654785 0 0
+15 0 6 0.654785 0 0
+15 0 7 0.654785 0 0
+15 0 8 0.654785 0 0
+15 0 9 0.655273 0 0
+15 0 10 0.658203 0 0
+15 0 11 0.661133 0 0.0925293
+15 0 12 0.661621 0 0.205688
+15 0 13 0.647461 0 0.305664
+15 0 14 0.61084 0 0.391846
+15 0 15 0.583496 0.0589905 0.484131
+15 0 16 0.546875 0.0911865 0.584473
+15 0 17 0.492676 0.120483 0.682617
+15 0 18 0.418701 0.146362 0.772949
+15 0 19 0.320312 0.168579 0.852051
+15 0 20 0.167114 0.186768 0.91748
+15 0 21 0 0.189941 0.924805
+15 0 22 0 0.192383 0.931152
+15 0 23 0 0.194824 0.937988
+15 0 24 0 0.197266 0.945312
+15 0 25 0 0.199951 0.954102
+15 0 26 0 0.202881 0.964355
+15 0 27 0 0.206177 0.976074
+15 0 28 0 0.209473 0.988281
+15 0 29 0 0.212891 1
+15 0 30 0 0.216431 1
+15 0 31 0 0.220093 1
+15 1 0 0.654785 0 0
+15 1 1 0.654785 0 0
+15 1 2 0.654785 0 0
+15 1 3 0.654785 0 0
+15 1 4 0.654785 0 0
+15 1 5 0.654785 0 0
+15 1 6 0.654785 0 0
+15 1 7 0.654785 0 0
+15 1 8 0.654785 0 0
+15 1 9 0.655273 0 0
+15 1 10 0.658203 0 0
+15 1 11 0.661133 0 0.0925293
+15 1 12 0.661621 0 0.205688
+15 1 13 0.647461 0 0.305664
+15 1 14 0.61084 0 0.391846
+15 1 15 0.583496 0.0592041 0.484131
+15 1 16 0.546875 0.0913086 0.584473
+15 1 17 0.492676 0.120544 0.682617
+15 1 18 0.418701 0.146362 0.772949
+15 1 19 0.320312 0.168579 0.852051
+15 1 20 0.166992 0.186768 0.91748
+15 1 21 0 0.189941 0.924805
+15 1 22 0 0.192505 0.931152
+15 1 23 0 0.194824 0.937988
+15 1 24 0 0.197266 0.945312
+15 1 25 0 0.199951 0.954102
+15 1 26 0 0.202881 0.964355
+15 1 27 0 0.206177 0.976074
+15 1 28 0 0.209473 0.988281
+15 1 29 0 0.212891 1
+15 1 30 0 0.216431 1
+15 1 31 0 0.220093 1
+15 2 0 0.654785 0 0
+15 2 1 0.654785 0 0
+15 2 2 0.654785 0 0
+15 2 3 0.654785 0 0
+15 2 4 0.654785 0 0
+15 2 5 0.654785 0 0
+15 2 6 0.654785 0 0
+15 2 7 0.654785 0 0
+15 2 8 0.654785 0 0
+15 2 9 0.655273 0 0
+15 2 10 0.658203 0 0
+15 2 11 0.661133 0 0.0924683
+15 2 12 0.661621 0 0.205566
+15 2 13 0.647461 0 0.305664
+15 2 14 0.61084 0 0.391846
+15 2 15 0.583496 0.0595093 0.484131
+15 2 16 0.546875 0.0915527 0.584473
+15 2 17 0.492676 0.120728 0.682617
+15 2 18 0.418701 0.146484 0.772949
+15 2 19 0.320068 0.168701 0.852051
+15 2 20 0.166992 0.18689 0.91748
+15 2 21 0 0.190063 0.924805
+15 2 22 0 0.192505 0.931152
+15 2 23 0 0.194946 0.937988
+15 2 24 0 0.197266 0.945312
+15 2 25 0 0.199951 0.954102
+15 2 26 0 0.202881 0.964355
+15 2 27 0 0.206177 0.976074
+15 2 28 0 0.209473 0.988281
+15 2 29 0 0.212891 1
+15 2 30 0 0.216431 1
+15 2 31 0 0.220093 1
+15 3 0 0.654785 0 0
+15 3 1 0.654785 0 0
+15 3 2 0.654785 0 0
+15 3 3 0.654785 0 0
+15 3 4 0.654785 0 0
+15 3 5 0.654785 0 0
+15 3 6 0.654785 0 0
+15 3 7 0.654785 0 0
+15 3 8 0.654785 0 0
+15 3 9 0.655273 0 0
+15 3 10 0.658203 0 0
+15 3 11 0.661133 0 0.0924072
+15 3 12 0.661133 0 0.205566
+15 3 13 0.647461 0 0.305664
+15 3 14 0.61084 0 0.391846
+15 3 15 0.583496 0.0601196 0.484131
+15 3 16 0.546875 0.0919189 0.584473
+15 3 17 0.492432 0.121033 0.682617
+15 3 18 0.418701 0.146729 0.772949
+15 3 19 0.320068 0.168823 0.852051
+15 3 20 0.16687 0.187012 0.91748
+15 3 21 0 0.190063 0.924805
+15 3 22 0 0.192627 0.931152
+15 3 23 0 0.194946 0.937988
+15 3 24 0 0.197388 0.945312
+15 3 25 0 0.199951 0.954102
+15 3 26 0 0.203003 0.964355
+15 3 27 0 0.206177 0.976074
+15 3 28 0 0.209473 0.988281
+15 3 29 0 0.212891 1
+15 3 30 0 0.216431 1
+15 3 31 0 0.220093 1
+15 4 0 0.654785 0 0
+15 4 1 0.654785 0 0
+15 4 2 0.654785 0 0
+15 4 3 0.654785 0 0
+15 4 4 0.654785 0 0
+15 4 5 0.654785 0 0
+15 4 6 0.654785 0 0
+15 4 7 0.654785 0 0
+15 4 8 0.654785 0 0
+15 4 9 0.654785 0 0
+15 4 10 0.658203 0 0
+15 4 11 0.661133 0 0.0922241
+15 4 12 0.661133 0 0.205566
+15 4 13 0.647461 0 0.305664
+15 4 14 0.61084 0 0.391846
+15 4 15 0.583496 0.0612183 0.484131
+15 4 16 0.546875 0.0927124 0.584473
+15 4 17 0.492432 0.121582 0.682617
+15 4 18 0.418457 0.147217 0.772949
+15 4 19 0.320068 0.169189 0.852051
+15 4 20 0.166626 0.187256 0.91748
+15 4 21 0 0.190308 0.924805
+15 4 22 0 0.192749 0.931152
+15 4 23 0 0.195068 0.937988
+15 4 24 0 0.19751 0.945312
+15 4 25 0 0.200073 0.954102
+15 4 26 0 0.203003 0.964844
+15 4 27 0 0.206299 0.976074
+15 4 28 0 0.209595 0.988281
+15 4 29 0 0.213013 1
+15 4 30 0 0.216553 1
+15 4 31 0 0.220215 1
+15 5 0 0.654297 0 0
+15 5 1 0.654297 0 0
+15 5 2 0.654297 0 0
+15 5 3 0.654297 0 0
+15 5 4 0.654297 0 0
+15 5 5 0.654297 0 0
+15 5 6 0.654297 0 0
+15 5 7 0.654297 0 0
+15 5 8 0.654297 0 0
+15 5 9 0.654785 0 0
+15 5 10 0.658203 0 0
+15 5 11 0.660645 0 0.09198
+15 5 12 0.661133 0 0.205444
+15 5 13 0.647461 0 0.305664
+15 5 14 0.61084 0 0.391846
+15 5 15 0.583008 0.0633545 0.484131
+15 5 16 0.546875 0.0941772 0.584473
+15 5 17 0.492432 0.12262 0.682617
+15 5 18 0.418457 0.147949 0.772949
+15 5 19 0.319824 0.1698 0.852051
+15 5 20 0.16626 0.187744 0.91748
+15 5 21 0 0.190796 0.924805
+15 5 22 0 0.193115 0.931152
+15 5 23 0 0.195435 0.937988
+15 5 24 0 0.197754 0.945312
+15 5 25 0 0.200317 0.95459
+15 5 26 0 0.203247 0.964844
+15 5 27 0 0.206421 0.976562
+15 5 28 0 0.209717 0.988281
+15 5 29 0 0.213013 1
+15 5 30 0 0.216553 1
+15 5 31 0 0.220215 1
+15 6 0 0.654297 0 0
+15 6 1 0.654297 0 0
+15 6 2 0.654297 0 0
+15 6 3 0.654297 0 0
+15 6 4 0.654297 0 0
+15 6 5 0.654297 0 0
+15 6 6 0.654297 0 0
+15 6 7 0.654297 0 0
+15 6 8 0.654297 0 0
+15 6 9 0.654785 0 0
+15 6 10 0.657715 0 0
+15 6 11 0.660645 0 0.0914307
+15 6 12 0.661133 0 0.2052
+15 6 13 0.646973 0 0.30542
+15 6 14 0.610352 0 0.391602
+15 6 15 0.583008 0.0671997 0.483887
+15 6 16 0.546387 0.0969238 0.584473
+15 6 17 0.491943 0.124634 0.682617
+15 6 18 0.418213 0.149536 0.772949
+15 6 19 0.319336 0.171021 0.852051
+15 6 20 0.165527 0.188721 0.91748
+15 6 21 0 0.191528 0.924805
+15 6 22 0 0.193726 0.931152
+15 6 23 0 0.195923 0.937988
+15 6 24 0 0.19812 0.945801
+15 6 25 0 0.200684 0.95459
+15 6 26 0 0.203491 0.964844
+15 6 27 0 0.206665 0.976562
+15 6 28 0 0.209961 0.988281
+15 6 29 0 0.213257 1
+15 6 30 0 0.216797 1
+15 6 31 0 0.220459 1
+15 7 0 0.653809 0 0
+15 7 1 0.653809 0 0
+15 7 2 0.653809 0 0
+15 7 3 0.653809 0 0
+15 7 4 0.653809 0 0
+15 7 5 0.653809 0 0
+15 7 6 0.653809 0 0
+15 7 7 0.653809 0 0
+15 7 8 0.653809 0 0
+15 7 9 0.654297 0 0
+15 7 10 0.657715 0 0
+15 7 11 0.660156 0 0.0904541
+15 7 12 0.660645 0 0.204712
+15 7 13 0.646973 0 0.305176
+15 7 14 0.610352 0.00448608 0.391602
+15 7 15 0.58252 0.0743408 0.483887
+15 7 16 0.545898 0.102051 0.584473
+15 7 17 0.491455 0.12854 0.682617
+15 7 18 0.41748 0.152466 0.772949
+15 7 19 0.318604 0.173462 0.852051
+15 7 20 0.164062 0.190674 0.91748
+15 7 21 0 0.192993 0.925293
+15 7 22 0 0.194946 0.931152
+15 7 23 0 0.196899 0.937988
+15 7 24 0 0.199097 0.945801
+15 7 25 0 0.201416 0.95459
+15 7 26 0 0.204224 0.964844
+15 7 27 0 0.207275 0.976562
+15 7 28 0 0.210449 0.988281
+15 7 29 0 0.213623 1
+15 7 30 0 0.217163 1
+15 7 31 0 0.220703 1
+15 8 0 0.65332 0 0
+15 8 1 0.65332 0 0
+15 8 2 0.65332 0 0
+15 8 3 0.65332 0 0
+15 8 4 0.65332 0 0
+15 8 5 0.65332 0 0
+15 8 6 0.65332 0 0
+15 8 7 0.65332 0 0
+15 8 8 0.65332 0 0
+15 8 9 0.65332 0 0
+15 8 10 0.656738 0 0
+15 8 11 0.65918 0 0.088501
+15 8 12 0.659668 0 0.203857
+15 8 13 0.646484 0 0.304932
+15 8 14 0.609375 0.025177 0.391357
+15 8 15 0.581543 0.086853 0.483643
+15 8 16 0.544922 0.11145 0.584473
+15 8 17 0.490479 0.135742 0.682617
+15 8 18 0.41626 0.158081 0.772949
+15 8 19 0.317139 0.177856 0.852051
+15 8 20 0.161255 0.194336 0.91748
+15 8 21 0 0.195923 0.925293
+15 8 22 0 0.197388 0.931641
+15 8 23 0 0.198975 0.938477
+15 8 24 0 0.200684 0.945801
+15 8 25 0 0.202881 0.95459
+15 8 26 0 0.205444 0.964844
+15 8 27 0 0.208374 0.976562
+15 8 28 0 0.211304 0.988281
+15 8 29 0 0.214478 1
+15 8 30 0 0.217773 1
+15 8 31 0 0.221313 1
+15 9 0 0.651367 0 0
+15 9 1 0.651367 0 0
+15 9 2 0.651367 0 0
+15 9 3 0.651367 0 0
+15 9 4 0.651367 0 0
+15 9 5 0.651367 0 0
+15 9 6 0.651367 0 0
+15 9 7 0.651367 0 0
+15 9 8 0.651367 0 0
+15 9 9 0.651855 0 0
+15 9 10 0.654785 0 0
+15 9 11 0.657715 0 0.0849609
+15 9 12 0.658203 0 0.202271
+15 9 13 0.645508 0 0.303955
+15 9 14 0.60791 0.0612183 0.391113
+15 9 15 0.57959 0.107239 0.483398
+15 9 16 0.542969 0.127686 0.584473
+15 9 17 0.488525 0.14856 0.682617
+15 9 18 0.414062 0.168335 0.772949
+15 9 19 0.314209 0.186157 0.852051
+15 9 20 0.155518 0.201172 0.917969
+15 9 21 0 0.201416 0.925781
+15 9 22 0 0.201782 0.931641
+15 9 23 0 0.202637 0.938477
+15 9 24 0 0.203979 0.946289
+15 9 25 0 0.205688 0.955078
+15 9 26 0 0.207764 0.965332
+15 9 27 0 0.210449 0.977051
+15 9 28 0 0.213013 0.988281
+15 9 29 0 0.215942 1
+15 9 30 0 0.218994 1
+15 9 31 0 0.222412 1
+15 10 0 0.648438 0 0
+15 10 1 0.648438 0 0
+15 10 2 0.648438 0 0
+15 10 3 0.648438 0 0
+15 10 4 0.648438 0 0
+15 10 5 0.648438 0 0
+15 10 6 0.648438 0 0
+15 10 7 0.648438 0 0
+15 10 8 0.648438 0 0
+15 10 9 0.648438 0 0
+15 10 10 0.651367 0 0
+15 10 11 0.654297 0 0.0790405
+15 10 12 0.654297 0 0.199341
+15 10 13 0.643555 0 0.302246
+15 10 14 0.605469 0.10376 0.390625
+15 10 15 0.576172 0.137207 0.482666
+15 10 16 0.539551 0.152832 0.583984
+15 10 17 0.484863 0.169312 0.682617
+15 10 18 0.409912 0.185425 0.772949
+15 10 19 0.308838 0.200317 0.852051
+15 10 20 0.144531 0.212891 0.917969
+15 10 21 0 0.21106 0.92627
+15 10 22 0 0.209717 0.932617
+15 10 23 0 0.209351 0.939453
+15 10 24 0 0.209717 0.946777
+15 10 25 0 0.210571 0.955566
+15 10 26 0 0.212036 0.96582
+15 10 27 0 0.213989 0.977051
+15 10 28 0 0.216064 0.98877
+15 10 29 0 0.218506 1
+15 10 30 0 0.221313 1
+15 10 31 0 0.224365 1
+15 11 0 0.64209 0.11084 0
+15 11 1 0.64209 0.11084 0
+15 11 2 0.64209 0.11084 0
+15 11 3 0.64209 0.110901 0
+15 11 4 0.64209 0.110962 0
+15 11 5 0.64209 0.111084 0
+15 11 6 0.64209 0.111389 0
+15 11 7 0.64209 0.111877 0
+15 11 8 0.64209 0.112854 0
+15 11 9 0.64209 0.114746 0
+15 11 10 0.644531 0.114868 0
+15 11 11 0.647461 0.110474 0.0709229
+15 11 12 0.648438 0.104858 0.193359
+15 11 13 0.63916 0.107361 0.298828
+15 11 14 0.601074 0.153809 0.389648
+15 11 15 0.570312 0.177856 0.481689
+15 11 16 0.533691 0.188843 0.583008
+15 11 17 0.478271 0.200439 0.682129
+15 11 18 0.402588 0.212036 0.772461
+15 11 19 0.299316 0.222778 0.852051
+15 11 20 0.122925 0.232056 0.917969
+15 11 21 0 0.226807 0.927246
+15 11 22 0 0.222778 0.933594
+15 11 23 0 0.220459 0.94043
+15 11 24 0 0.21936 0.947754
+15 11 25 0 0.218994 0.956543
+15 11 26 0 0.21936 0.966797
+15 11 27 0 0.220093 0.977539
+15 11 28 0 0.221436 0.989258
+15 11 29 0 0.223145 1
+15 11 30 0 0.22522 1
+15 11 31 0 0.227661 1
+15 12 0 0.629883 0.202393 0
+15 12 1 0.629883 0.202393 0
+15 12 2 0.629883 0.202393 0
+15 12 3 0.629883 0.202393 0
+15 12 4 0.629883 0.202393 0
+15 12 5 0.629883 0.202515 0
+15 12 6 0.629883 0.202637 0
+15 12 7 0.629883 0.202881 0
+15 12 8 0.629883 0.203369 0
+15 12 9 0.629883 0.204346 0
+15 12 10 0.631348 0.20459 0
+15 12 11 0.632812 0.203491 0.0658569
+15 12 12 0.634766 0.200928 0.185669
+15 12 13 0.628418 0.198364 0.29248
+15 12 14 0.593262 0.213867 0.387695
+15 12 15 0.560059 0.230469 0.479736
+15 12 16 0.522461 0.237305 0.581543
+15 12 17 0.466797 0.244019 0.681152
+15 12 18 0.389404 0.250244 0.772461
+15 12 19 0.281738 0.256348 0.852051
+15 12 20 0.0733643 0.26123 0.918457
+15 12 21 0 0.251465 0.928711
+15 12 22 0 0.24353 0.935547
+15 12 23 0 0.238403 0.942383
+15 12 24 0 0.234985 0.949707
+15 12 25 0 0.232666 0.958496
+15 12 26 0 0.231201 0.96875
+15 12 27 0 0.230225 0.978027
+15 12 28 0 0.230103 0.989746
+15 12 29 0 0.230713 1
+15 12 30 0 0.231812 1
+15 12 31 0 0.233398 1
+15 13 0 0.610352 0.287598 0
+15 13 1 0.610352 0.287598 0
+15 13 2 0.610352 0.287598 0
+15 13 3 0.610352 0.287598 0
+15 13 4 0.610352 0.287598 0
+15 13 5 0.610352 0.287598 0
+15 13 6 0.610352 0.287842 0
+15 13 7 0.610352 0.287842 0
+15 13 8 0.610352 0.28833 0
+15 13 9 0.610352 0.288818 0
+15 13 10 0.609863 0.289307 0
+15 13 11 0.608398 0.289551 0.0775757
+15 13 12 0.606934 0.289551 0.182007
+15 13 13 0.604492 0.288086 0.281738
+15 13 14 0.580078 0.286621 0.384033
+15 13 15 0.541992 0.295166 0.476318
+15 13 16 0.503906 0.29834 0.579102
+15 13 17 0.446777 0.300537 0.679688
+15 13 18 0.366211 0.301758 0.771484
+15 13 19 0.249756 0.302246 0.852051
+15 13 20 0 0.302246 0.918457
+15 13 21 0 0.287109 0.931641
+15 13 22 0 0.27417 0.938477
+15 13 23 0 0.265137 0.945312
+15 13 24 0 0.258545 0.953125
+15 13 25 0 0.253418 0.961426
+15 13 26 0 0.249023 0.969727
+15 13 27 0 0.24585 0.979492
+15 13 28 0 0.243774 0.990723
+15 13 29 0 0.242676 1
+15 13 30 0 0.24231 1
+15 13 31 0 0.242432 1
+15 14 0 0.586914 0.377686 0
+15 14 1 0.586914 0.377686 0
+15 14 2 0.586914 0.377686 0
+15 14 3 0.586914 0.37793 0
+15 14 4 0.586914 0.37793 0
+15 14 5 0.586914 0.37793 0
+15 14 6 0.586914 0.37793 0
+15 14 7 0.586914 0.37793 0
+15 14 8 0.586914 0.378174 0
+15 14 9 0.586914 0.378662 0
+15 14 10 0.585938 0.378906 0
+15 14 11 0.581543 0.378662 0.0958252
+15 14 12 0.57373 0.377686 0.188721
+15 14 13 0.561523 0.375977 0.276367
+15 14 14 0.546875 0.374023 0.372314
+15 14 15 0.511719 0.37207 0.470215
+15 14 16 0.472412 0.372559 0.574707
+15 14 17 0.412109 0.370605 0.676758
+15 14 18 0.324951 0.366943 0.77002
+15 14 19 0.185425 0.362305 0.851562
+15 14 20 0 0.356689 0.918945
+15 14 21 0 0.335693 0.935547
+15 14 22 0 0.316895 0.942871
+15 14 23 0 0.30249 0.949219
+15 14 24 0 0.291748 0.956055
+15 14 25 0 0.282715 0.963379
+15 14 26 0 0.275146 0.97168
+15 14 27 0 0.268799 0.981445
+15 14 28 0 0.26416 0.992676
+15 14 29 0 0.260498 1
+15 14 30 0 0.257812 1
+15 14 31 0 0.256104 1
+15 15 0 0.548828 0.481445 0
+15 15 1 0.548828 0.481445 0
+15 15 2 0.548828 0.481445 0
+15 15 3 0.548828 0.481445 0
+15 15 4 0.548828 0.481445 0
+15 15 5 0.548828 0.481445 0
+15 15 6 0.548828 0.481445 0
+15 15 7 0.548828 0.481689 0
+15 15 8 0.548828 0.481689 0
+15 15 9 0.548828 0.481934 0
+15 15 10 0.548828 0.482422 0
+15 15 11 0.544434 0.481934 0.0553284
+15 15 12 0.536133 0.480469 0.175293
+15 15 13 0.521973 0.477295 0.271729
+15 15 14 0.498047 0.471191 0.366455
+15 15 15 0.459961 0.459961 0.459961
+15 15 16 0.417236 0.458252 0.566895
+15 15 17 0.350586 0.453369 0.671387
+15 15 18 0.244873 0.445312 0.766602
+15 15 19 0 0.435547 0.849609
+15 15 20 0 0.424805 0.918457
+15 15 21 0 0.397705 0.939941
+15 15 22 0 0.371582 0.946777
+15 15 23 0 0.351318 0.953613
+15 15 24 0 0.335693 0.959961
+15 15 25 0 0.322266 0.967285
+15 15 26 0 0.310547 0.975586
+15 15 27 0 0.300537 0.984863
+15 15 28 0 0.29248 0.995605
+15 15 29 0 0.285645 1
+15 15 30 0 0.280273 1
+15 15 31 0 0.275879 1
+15 16 0 0.452393 0.572266 0
+15 16 1 0.452393 0.572266 0
+15 16 2 0.452393 0.572266 0
+15 16 3 0.452393 0.572266 0
+15 16 4 0.452393 0.572266 0
+15 16 5 0.452393 0.572266 0
+15 16 6 0.452393 0.572266 0
+15 16 7 0.452393 0.572754 0
+15 16 8 0.452637 0.572754 0
+15 16 9 0.452637 0.572754 0
+15 16 10 0.452637 0.573242 0
+15 16 11 0.449219 0.572754 0
+15 16 12 0.440918 0.571289 0.121094
+15 16 13 0.426514 0.568359 0.236816
+15 16 14 0.402832 0.562012 0.3396
+15 16 15 0.36792 0.556641 0.443604
+15 16 16 0.315186 0.553711 0.554199
+15 16 17 0.223022 0.546875 0.661621
+15 16 18 0 0.535645 0.759766
+15 16 19 0 0.521484 0.845703
+15 16 20 0 0.505859 0.916504
+15 16 21 0 0.473633 0.944824
+15 16 22 0 0.439941 0.953125
+15 16 23 0 0.41333 0.960449
+15 16 24 0 0.39209 0.966797
+15 16 25 0 0.373535 0.973633
+15 16 26 0 0.356934 0.981445
+15 16 27 0 0.342285 0.990234
+15 16 28 0 0.330078 1
+15 16 29 0 0.319336 1
+15 16 30 0 0.310303 1
+15 16 31 0 0.302734 1
+15 17 0 0.288574 0.658691 0
+15 17 1 0.288574 0.658691 0
+15 17 2 0.288574 0.658691 0
+15 17 3 0.288574 0.658691 0
+15 17 4 0.288574 0.658691 0
+15 17 5 0.288574 0.658691 0
+15 17 6 0.288574 0.658691 0
+15 17 7 0.288574 0.658691 0
+15 17 8 0.288574 0.658691 0
+15 17 9 0.288818 0.65918 0
+15 17 10 0.288818 0.65918 0
+15 17 11 0.287354 0.659668 0
+15 17 12 0.276611 0.65918 0
+15 17 13 0.257812 0.658203 0.186401
+15 17 14 0.224731 0.656738 0.305176
+15 17 15 0.161865 0.655762 0.418457
+15 17 16 0 0.652832 0.533691
+15 17 17 0 0.64502 0.64502
+15 17 18 0 0.632324 0.748047
+15 17 19 0 0.615234 0.837891
+15 17 20 0 0.595703 0.911621
+15 17 21 0 0.560547 0.94873
+15 17 22 0 0.52002 0.961914
+15 17 23 0 0.487305 0.970703
+15 17 24 0 0.460205 0.977539
+15 17 25 0 0.435791 0.984375
+15 17 26 0 0.413574 0.991699
+15 17 27 0 0.393799 0.999512
+15 17 28 0 0.376465 1
+15 17 29 0 0.361328 1
+15 17 30 0 0.348145 1
+15 17 31 0 0.336426 1
+15 18 0 0 0.745605 0
+15 18 1 0 0.745605 0
+15 18 2 0 0.745605 0
+15 18 3 0 0.745605 0
+15 18 4 0 0.745605 0
+15 18 5 0 0.745605 0
+15 18 6 0 0.745605 0
+15 18 7 0 0.745605 0
+15 18 8 0 0.745605 0
+15 18 9 0 0.745605 0
+15 18 10 0 0.746094 0
+15 18 11 0 0.746582 0
+15 18 12 0 0.74707 0
+15 18 13 0 0.748047 0.105103
+15 18 14 0 0.749023 0.26001
+15 18 15 0 0.75 0.384033
+15 18 16 0 0.748047 0.504883
+15 18 17 0 0.741699 0.621582
+15 18 18 0 0.729004 0.729492
+15 18 19 0 0.711426 0.82373
+15 18 20 0 0.688965 0.901855
+15 18 21 0 0.65332 0.949707
+15 18 22 0 0.609863 0.97168
+15 18 23 0 0.571289 0.983887
+15 18 24 0 0.538574 0.992188
+15 18 25 0 0.507812 0.999023
+15 18 26 0 0.479736 1
+15 18 27 0 0.454102 1
+15 18 28 0 0.431152 1
+15 18 29 0 0.410889 1
+15 18 30 0 0.392822 1
+15 18 31 0 0.376709 1
+15 19 0 0 0.82666 0
+15 19 1 0 0.82666 0
+15 19 2 0 0.82666 0
+15 19 3 0 0.82666 0
+15 19 4 0 0.82666 0
+15 19 5 0 0.82666 0
+15 19 6 0 0.82666 0
+15 19 7 0 0.82666 0
+15 19 8 0 0.82666 0
+15 19 9 0 0.82666 0
+15 19 10 0 0.827148 0
+15 19 11 0 0.827148 0
+15 19 12 0 0.828125 0
+15 19 13 0 0.830078 0
+15 19 14 0 0.832031 0.19812
+15 19 15 0 0.834473 0.34082
+15 19 16 0 0.834961 0.468994
+15 19 17 0 0.830566 0.59082
+15 19 18 0 0.820312 0.703613
+15 19 19 0 0.803223 0.803223
+15 19 20 0 0.780273 0.88623
+15 19 21 0 0.746582 0.945312
+15 19 22 0 0.703613 0.979492
+15 19 23 0 0.661621 0.998535
+15 19 24 0 0.624023 1
+15 19 25 0 0.587402 1
+15 19 26 0 0.553223 1
+15 19 27 0 0.521484 1
+15 19 28 0 0.492432 1
+15 19 29 0 0.466309 1
+15 19 30 0 0.442871 1
+15 19 31 0 0.421875 1
+15 20 0 0 0.897949 0
+15 20 1 0 0.897949 0
+15 20 2 0 0.897949 0
+15 20 3 0 0.897949 0
+15 20 4 0 0.897949 0
+15 20 5 0 0.897949 0
+15 20 6 0 0.897949 0
+15 20 7 0 0.897949 0
+15 20 8 0 0.897949 0
+15 20 9 0 0.897949 0
+15 20 10 0 0.897949 0
+15 20 11 0 0.898438 0
+15 20 12 0 0.898438 0
+15 20 13 0 0.900879 0
+15 20 14 0 0.904297 0.101807
+15 20 15 0 0.907715 0.288818
+15 20 16 0 0.909668 0.42749
+15 20 17 0 0.908203 0.554688
+15 20 18 0 0.900391 0.671875
+15 20 19 0 0.885254 0.776367
+15 20 20 0 0.86377 0.864258
+15 20 21 0 0.834473 0.934082
+15 20 22 0 0.79541 0.981445
+15 20 23 0 0.75293 1
+15 20 24 0 0.712402 1
+15 20 25 0 0.671387 1
+15 20 26 0 0.631348 1
+15 20 27 0 0.593262 1
+15 20 28 0 0.558105 1
+15 20 29 0 0.525879 1
+15 20 30 0 0.496582 1
+15 20 31 0 0.470459 1
+15 21 0 0 0.958984 0
+15 21 1 0 0.958984 0
+15 21 2 0 0.958984 0
+15 21 3 0 0.958984 0
+15 21 4 0 0.958984 0
+15 21 5 0 0.958984 0
+15 21 6 0 0.958984 0
+15 21 7 0 0.958984 0
+15 21 8 0 0.958984 0
+15 21 9 0 0.958984 0
+15 21 10 0 0.958984 0
+15 21 11 0 0.958984 0
+15 21 12 0 0.959473 0
+15 21 13 0 0.960938 0
+15 21 14 0 0.964844 0
+15 21 15 0 0.969238 0.223999
+15 21 16 0 0.973145 0.379639
+15 21 17 0 0.974121 0.512695
+15 21 18 0 0.969727 0.634766
+15 21 19 0 0.958008 0.743164
+15 21 20 0 0.938965 0.835938
+15 21 21 0 0.913574 0.914062
+15 21 22 0 0.880371 0.973145
+15 21 23 0 0.841309 1
+15 21 24 0 0.800293 1
+15 21 25 0 0.756348 1
+15 21 26 0 0.711914 1
+15 21 27 0 0.668457 1
+15 21 28 0 0.627441 1
+15 21 29 0 0.589355 1
+15 21 30 0 0.554199 1
+15 21 31 0 0.522461 1
+15 22 0 0 1 0
+15 22 1 0 1 0
+15 22 2 0 1 0
+15 22 3 0 1 0
+15 22 4 0 1 0
+15 22 5 0 1 0
+15 22 6 0 1 0
+15 22 7 0 1 0
+15 22 8 0 1 0
+15 22 9 0 1 0
+15 22 10 0 1 0
+15 22 11 0 1 0
+15 22 12 0 1 0
+15 22 13 0 1 0
+15 22 14 0 1 0
+15 22 15 0 1 0.134766
+15 22 16 0 1 0.326172
+15 22 17 0 1 0.467529
+15 22 18 0 1 0.593262
+15 22 19 0 1 0.705566
+15 22 20 0 1 0.802246
+15 22 21 0 0.981445 0.885254
+15 22 22 0 0.953125 0.953613
+15 22 23 0 0.919434 1
+15 22 24 0 0.881348 1
+15 22 25 0 0.837891 1
+15 22 26 0 0.791504 1
+15 22 27 0 0.744141 1
+15 22 28 0 0.698242 1
+15 22 29 0 0.654785 1
+15 22 30 0 0.614258 1
+15 22 31 0 0.577148 1
+15 23 0 0 1 0
+15 23 1 0 1 0
+15 23 2 0 1 0
+15 23 3 0 1 0
+15 23 4 0 1 0
+15 23 5 0 1 0
+15 23 6 0 1 0
+15 23 7 0 1 0
+15 23 8 0 1 0
+15 23 9 0 1 0
+15 23 10 0 1 0
+15 23 11 0 1 0
+15 23 12 0 1 0
+15 23 13 0 1 0
+15 23 14 0 1 0
+15 23 15 0 1 0
+15 23 16 0 1 0.268066
+15 23 17 0 1 0.420898
+15 23 18 0 1 0.550781
+15 23 19 0 1 0.666016
+15 23 20 0 1 0.766113
+15 23 21 0 1 0.853516
+15 23 22 0 1 0.92627
+15 23 23 0 0.983398 0.983887
+15 23 24 0 0.950195 1
+15 23 25 0 0.910156 1
+15 23 26 0 0.864258 1
+15 23 27 0 0.81543 1
+15 23 28 0 0.766113 1
+15 23 29 0 0.718262 1
+15 23 30 0 0.672852 1
+15 23 31 0 0.630859 1
+15 24 0 0 1 0
+15 24 1 0 1 0
+15 24 2 0 1 0
+15 24 3 0 1 0
+15 24 4 0 1 0
+15 24 5 0 1 0
+15 24 6 0 1 0
+15 24 7 0 1 0
+15 24 8 0 1 0
+15 24 9 0 1 0
+15 24 10 0 1 0
+15 24 11 0 1 0
+15 24 12 0 1 0
+15 24 13 0 1 0
+15 24 14 0 1 0
+15 24 15 0 1 0
+15 24 16 0 1 0.200928
+15 24 17 0 1 0.373047
+15 24 18 0 1 0.507812
+15 24 19 0 1 0.625488
+15 24 20 0 1 0.728516
+15 24 21 0 1 0.818848
+15 24 22 0 1 0.895508
+15 24 23 0 1 0.95752
+15 24 24 0 1 1
+15 24 25 0 0.97168 1
+15 24 26 0 0.928711 1
+15 24 27 0 0.880371 1
+15 24 28 0 0.82959 1
+15 24 29 0 0.778809 1
+15 24 30 0 0.729492 1
+15 24 31 0 0.683105 1
+15 25 0 0 1 0
+15 25 1 0 1 0
+15 25 2 0 1 0
+15 25 3 0 1 0
+15 25 4 0 1 0
+15 25 5 0 1 0
+15 25 6 0 1 0
+15 25 7 0 1 0
+15 25 8 0 1 0
+15 25 9 0 1 0
+15 25 10 0 1 0
+15 25 11 0 1 0
+15 25 12 0 1 0
+15 25 13 0 1 0
+15 25 14 0 1 0
+15 25 15 0 1 0
+15 25 16 0 1 0.0964966
+15 25 17 0 1 0.317627
+15 25 18 0 1 0.459717
+15 25 19 0 1 0.580566
+15 25 20 0 1 0.685547
+15 25 21 0 1 0.778809
+15 25 22 0 1 0.859375
+15 25 23 0 1 0.925781
+15 25 24 0 1 0.97998
+15 25 25 0 1 1
+15 25 26 0 0.989746 1
+15 25 27 0 0.943848 1
+15 25 28 0 0.893555 1
+15 25 29 0 0.841309 1
+15 25 30 0 0.789062 1
+15 25 31 0 0.73877 1
+15 26 0 0 1 0
+15 26 1 0 1 0
+15 26 2 0 1 0
+15 26 3 0 1 0
+15 26 4 0 1 0
+15 26 5 0 1 0
+15 26 6 0 1 0
+15 26 7 0 1 0
+15 26 8 0 1 0
+15 26 9 0 1 0
+15 26 10 0 1 0
+15 26 11 0 1 0
+15 26 12 0 1 0
+15 26 13 0 1 0
+15 26 14 0 1 0
+15 26 15 0 1 0
+15 26 16 0 1 0
+15 26 17 0 1 0.251465
+15 26 18 0 1 0.406494
+15 26 19 0 1 0.530762
+15 26 20 0 1 0.638184
+15 26 21 0 1 0.733398
+15 26 22 0 1 0.817383
+15 26 23 0 1 0.887207
+15 26 24 0 1 0.945801
+15 26 25 0 1 0.999023
+15 26 26 0 1 1
+15 26 27 0 1 1
+15 26 28 0 0.956055 1
+15 26 29 0 0.903809 1
+15 26 30 0 0.850586 1
+15 26 31 0 0.797363 1
+15 27 0 0 1 0
+15 27 1 0 1 0
+15 27 2 0 1 0
+15 27 3 0 1 0
+15 27 4 0 1 0
+15 27 5 0 1 0
+15 27 6 0 1 0
+15 27 7 0 1 0
+15 27 8 0 1 0
+15 27 9 0 1 0
+15 27 10 0 1 0
+15 27 11 0 1 0
+15 27 12 0 1 0
+15 27 13 0 1 0
+15 27 14 0 1 0
+15 27 15 0 1 0
+15 27 16 0 1 0
+15 27 17 0 1 0.162964
+15 27 18 0 1 0.34668
+15 27 19 0 1 0.476562
+15 27 20 0 1 0.585938
+15 27 21 0 1 0.683594
+15 27 22 0 1 0.769531
+15 27 23 0 1 0.842773
+15 27 24 0 1 0.904785
+15 27 25 0 1 0.962402
+15 27 26 0 1 1
+15 27 27 0 1 1
+15 27 28 0 1 1
+15 27 29 0 0.964844 1
+15 27 30 0 0.911133 1
+15 27 31 0 0.856445 1
+15 28 0 0 1 0
+15 28 1 0 1 0
+15 28 2 0 1 0
+15 28 3 0 1 0
+15 28 4 0 1 0
+15 28 5 0 1 0
+15 28 6 0 1 0
+15 28 7 0 1 0
+15 28 8 0 1 0
+15 28 9 0 1 0
+15 28 10 0 1 0
+15 28 11 0 1 0
+15 28 12 0 1 0
+15 28 13 0 1 0
+15 28 14 0 1 0
+15 28 15 0 1 0
+15 28 16 0 1 0
+15 28 17 0 1 0
+15 28 18 0 1 0.277344
+15 28 19 0 1 0.41748
+15 28 20 0 1 0.529785
+15 28 21 0 1 0.628906
+15 28 22 0 1 0.716797
+15 28 23 0 1 0.79248
+15 28 24 0 1 0.857422
+15 28 25 0 1 0.918945
+15 28 26 0 1 0.976074
+15 28 27 0 1 1
+15 28 28 0 1 1
+15 28 29 0 1 1
+15 28 30 0 0.970215 1
+15 28 31 0 0.916016 1
+15 29 0 0 1 0
+15 29 1 0 1 0
+15 29 2 0 1 0
+15 29 3 0 1 0
+15 29 4 0 1 0
+15 29 5 0 1 0
+15 29 6 0 1 0
+15 29 7 0 1 0
+15 29 8 0 1 0
+15 29 9 0 1 0
+15 29 10 0 1 0
+15 29 11 0 1 0
+15 29 12 0 1 0
+15 29 13 0 1 0
+15 29 14 0 1 0
+15 29 15 0 1 0
+15 29 16 0 1 0
+15 29 17 0 1 0
+15 29 18 0 1 0.189331
+15 29 19 0 1 0.352051
+15 29 20 0 1 0.469482
+15 29 21 0 1 0.570312
+15 29 22 0 1 0.659668
+15 29 23 0 1 0.736816
+15 29 24 0 1 0.804199
+15 29 25 0 1 0.868652
+15 29 26 0 1 0.929688
+15 29 27 0 1 0.985352
+15 29 28 0 1 1
+15 29 29 0 1 1
+15 29 30 0 1 1
+15 29 31 0 0.975098 1
+15 30 0 0 1 0
+15 30 1 0 1 0
+15 30 2 0 1 0
+15 30 3 0 1 0
+15 30 4 0 1 0
+15 30 5 0 1 0
+15 30 6 0 1 0
+15 30 7 0 1 0
+15 30 8 0 1 0
+15 30 9 0 1 0
+15 30 10 0 1 0
+15 30 11 0 1 0
+15 30 12 0 1 0
+15 30 13 0 1 0
+15 30 14 0 1 0
+15 30 15 0 1 0
+15 30 16 0 1 0
+15 30 17 0 1 0
+15 30 18 0 1 0.013443
+15 30 19 0 1 0.2771
+15 30 20 0 1 0.404053
+15 30 21 0 1 0.507324
+15 30 22 0 1 0.597656
+15 30 23 0 1 0.675781
+15 30 24 0 1 0.744629
+15 30 25 0 1 0.811523
+15 30 26 0 1 0.875977
+15 30 27 0 1 0.936523
+15 30 28 0 1 0.991211
+15 30 29 0 1 1
+15 30 30 0 1 1
+15 30 31 0 1 1
+15 31 0 0 1 0
+15 31 1 0 1 0
+15 31 2 0 1 0
+15 31 3 0 1 0
+15 31 4 0 1 0
+15 31 5 0 1 0
+15 31 6 0 1 0
+15 31 7 0 1 0
+15 31 8 0 1 0
+15 31 9 0 1 0
+15 31 10 0 1 0
+15 31 11 0 1 0
+15 31 12 0 1 0
+15 31 13 0 1 0
+15 31 14 0 1 0
+15 31 15 0 1 0
+15 31 16 0 1 0
+15 31 17 0 1 0
+15 31 18 0 1 0
+15 31 19 0 1 0.182739
+15 31 20 0 1 0.332031
+15 31 21 0 1 0.440674
+15 31 22 0 1 0.532227
+15 31 23 0 1 0.611328
+15 31 24 0 1 0.681152
+15 31 25 0 1 0.749512
+15 31 26 0 1 0.816406
+15 31 27 0 1 0.881348
+15 31 28 0 1 0.941406
+15 31 29 0 1 0.996582
+15 31 30 0 1 1
+15 31 31 0 1 1
+16 0 0 0.747559 0 0
+16 0 1 0.747559 0 0
+16 0 2 0.747559 0 0
+16 0 3 0.747559 0 0
+16 0 4 0.747559 0 0
+16 0 5 0.747559 0 0
+16 0 6 0.747559 0 0
+16 0 7 0.747559 0 0
+16 0 8 0.747559 0 0
+16 0 9 0.747559 0 0
+16 0 10 0.750488 0 0
+16 0 11 0.759277 0 0
+16 0 12 0.766602 0 0.146973
+16 0 13 0.766602 0 0.265137
+16 0 14 0.753906 0 0.376465
+16 0 15 0.725586 0 0.476807
+16 0 16 0.694824 0.0787354 0.578125
+16 0 17 0.650879 0.111755 0.678711
+16 0 18 0.591797 0.140259 0.771973
+16 0 19 0.519531 0.164307 0.853516
+16 0 20 0.434082 0.183838 0.92041
+16 0 21 0.313721 0.190308 0.937988
+16 0 22 0.155518 0.193604 0.944824
+16 0 23 0 0.196167 0.950684
+16 0 24 0 0.198486 0.956543
+16 0 25 0 0.20105 0.963867
+16 0 26 0 0.203735 0.972656
+16 0 27 0 0.206909 0.983398
+16 0 28 0 0.210449 0.995605
+16 0 29 0 0.214233 1
+16 0 30 0 0.21814 1
+16 0 31 0 0.221558 1
+16 1 0 0.747559 0 0
+16 1 1 0.747559 0 0
+16 1 2 0.747559 0 0
+16 1 3 0.747559 0 0
+16 1 4 0.747559 0 0
+16 1 5 0.747559 0 0
+16 1 6 0.747559 0 0
+16 1 7 0.747559 0 0
+16 1 8 0.747559 0 0
+16 1 9 0.747559 0 0
+16 1 10 0.750488 0 0
+16 1 11 0.759277 0 0
+16 1 12 0.766602 0 0.146973
+16 1 13 0.766602 0 0.265137
+16 1 14 0.753906 0 0.376465
+16 1 15 0.725586 0 0.476807
+16 1 16 0.694824 0.0788574 0.578125
+16 1 17 0.650879 0.111816 0.678711
+16 1 18 0.591797 0.140259 0.771973
+16 1 19 0.519531 0.164307 0.853516
+16 1 20 0.434082 0.183838 0.92041
+16 1 21 0.313721 0.19043 0.937988
+16 1 22 0.155518 0.193604 0.944824
+16 1 23 0 0.196167 0.950684
+16 1 24 0 0.198486 0.956543
+16 1 25 0 0.20105 0.963867
+16 1 26 0 0.203857 0.972656
+16 1 27 0 0.206909 0.983398
+16 1 28 0 0.210449 0.995605
+16 1 29 0 0.214233 1
+16 1 30 0 0.21814 1
+16 1 31 0 0.221558 1
+16 2 0 0.747559 0 0
+16 2 1 0.747559 0 0
+16 2 2 0.747559 0 0
+16 2 3 0.747559 0 0
+16 2 4 0.747559 0 0
+16 2 5 0.747559 0 0
+16 2 6 0.747559 0 0
+16 2 7 0.747559 0 0
+16 2 8 0.747559 0 0
+16 2 9 0.747559 0 0
+16 2 10 0.750488 0 0
+16 2 11 0.759277 0 0
+16 2 12 0.766602 0 0.146973
+16 2 13 0.766602 0 0.265137
+16 2 14 0.753906 0 0.376465
+16 2 15 0.725586 0 0.476807
+16 2 16 0.694824 0.0791626 0.578125
+16 2 17 0.650879 0.112 0.678711
+16 2 18 0.591797 0.140381 0.771973
+16 2 19 0.519531 0.164429 0.853516
+16 2 20 0.433838 0.18396 0.92041
+16 2 21 0.313721 0.19043 0.937988
+16 2 22 0.155518 0.193604 0.944824
+16 2 23 0 0.196167 0.950684
+16 2 24 0 0.198486 0.956543
+16 2 25 0 0.20105 0.963867
+16 2 26 0 0.203857 0.972656
+16 2 27 0 0.206909 0.983398
+16 2 28 0 0.210449 0.995605
+16 2 29 0 0.214233 1
+16 2 30 0 0.21814 1
+16 2 31 0 0.221558 1
+16 3 0 0.747559 0 0
+16 3 1 0.747559 0 0
+16 3 2 0.747559 0 0
+16 3 3 0.747559 0 0
+16 3 4 0.747559 0 0
+16 3 5 0.747559 0 0
+16 3 6 0.747559 0 0
+16 3 7 0.747559 0 0
+16 3 8 0.747559 0 0
+16 3 9 0.747559 0 0
+16 3 10 0.750488 0 0
+16 3 11 0.759277 0 0
+16 3 12 0.766602 0 0.146851
+16 3 13 0.766602 0 0.264893
+16 3 14 0.753906 0 0.376221
+16 3 15 0.725586 0 0.476807
+16 3 16 0.694824 0.0795898 0.578125
+16 3 17 0.650879 0.112305 0.678711
+16 3 18 0.591797 0.140625 0.771973
+16 3 19 0.519531 0.164673 0.853516
+16 3 20 0.433838 0.184082 0.92041
+16 3 21 0.313477 0.190552 0.937988
+16 3 22 0.155396 0.193726 0.944824
+16 3 23 0 0.196289 0.950684
+16 3 24 0 0.198608 0.956543
+16 3 25 0 0.20105 0.964355
+16 3 26 0 0.203857 0.972656
+16 3 27 0 0.206909 0.983398
+16 3 28 0 0.210449 0.995605
+16 3 29 0 0.214233 1
+16 3 30 0 0.218262 1
+16 3 31 0 0.22168 1
+16 4 0 0.747559 0 0
+16 4 1 0.747559 0 0
+16 4 2 0.747559 0 0
+16 4 3 0.747559 0 0
+16 4 4 0.747559 0 0
+16 4 5 0.747559 0 0
+16 4 6 0.747559 0 0
+16 4 7 0.747559 0 0
+16 4 8 0.747559 0 0
+16 4 9 0.747559 0 0
+16 4 10 0.750488 0 0
+16 4 11 0.759277 0 0
+16 4 12 0.766602 0 0.146851
+16 4 13 0.766113 0 0.264893
+16 4 14 0.753906 0 0.376221
+16 4 15 0.725586 0 0.476807
+16 4 16 0.694824 0.0804443 0.578125
+16 4 17 0.650879 0.112915 0.678711
+16 4 18 0.591797 0.141113 0.771973
+16 4 19 0.519531 0.165039 0.853516
+16 4 20 0.433838 0.184326 0.92041
+16 4 21 0.313477 0.190796 0.938477
+16 4 22 0.155273 0.193848 0.944824
+16 4 23 0 0.196411 0.950684
+16 4 24 0 0.19873 0.956543
+16 4 25 0 0.201172 0.964355
+16 4 26 0 0.203979 0.973145
+16 4 27 0 0.207031 0.983398
+16 4 28 0 0.210571 0.995605
+16 4 29 0 0.214355 1
+16 4 30 0 0.218262 1
+16 4 31 0 0.22168 1
+16 5 0 0.747559 0 0
+16 5 1 0.747559 0 0
+16 5 2 0.747559 0 0
+16 5 3 0.747559 0 0
+16 5 4 0.747559 0 0
+16 5 5 0.747559 0 0
+16 5 6 0.747559 0 0
+16 5 7 0.747559 0 0
+16 5 8 0.747559 0 0
+16 5 9 0.747559 0 0
+16 5 10 0.750488 0 0
+16 5 11 0.759277 0 0
+16 5 12 0.766113 0 0.146606
+16 5 13 0.766113 0 0.264893
+16 5 14 0.753906 0 0.376221
+16 5 15 0.725586 0 0.476807
+16 5 16 0.694336 0.0820312 0.578125
+16 5 17 0.650879 0.114075 0.678711
+16 5 18 0.591797 0.141968 0.771973
+16 5 19 0.519531 0.165649 0.853516
+16 5 20 0.433838 0.184937 0.920898
+16 5 21 0.313232 0.191162 0.938477
+16 5 22 0.155029 0.194214 0.944824
+16 5 23 0 0.196655 0.950684
+16 5 24 0 0.198975 0.957031
+16 5 25 0 0.201416 0.964355
+16 5 26 0 0.204102 0.973145
+16 5 27 0 0.207153 0.983398
+16 5 28 0 0.210693 0.995605
+16 5 29 0 0.214478 1
+16 5 30 0 0.218384 1
+16 5 31 0 0.221802 1
+16 6 0 0.747559 0 0
+16 6 1 0.747559 0 0
+16 6 2 0.747559 0 0
+16 6 3 0.747559 0 0
+16 6 4 0.747559 0 0
+16 6 5 0.747559 0 0
+16 6 6 0.747559 0 0
+16 6 7 0.747559 0 0
+16 6 8 0.747559 0 0
+16 6 9 0.747559 0 0
+16 6 10 0.750488 0 0
+16 6 11 0.759277 0 0
+16 6 12 0.766113 0 0.146362
+16 6 13 0.766113 0 0.264648
+16 6 14 0.753906 0 0.376221
+16 6 15 0.725098 0.00395203 0.476807
+16 6 16 0.694336 0.085022 0.578125
+16 6 17 0.650391 0.116211 0.678711
+16 6 18 0.591797 0.143555 0.771973
+16 6 19 0.519043 0.16687 0.853516
+16 6 20 0.433594 0.185913 0.920898
+16 6 21 0.312988 0.192017 0.938477
+16 6 22 0.154419 0.194824 0.944824
+16 6 23 0 0.197266 0.950684
+16 6 24 0 0.199463 0.957031
+16 6 25 0 0.201782 0.964355
+16 6 26 0 0.204468 0.973145
+16 6 27 0 0.20752 0.983398
+16 6 28 0 0.210938 0.995605
+16 6 29 0 0.214722 1
+16 6 30 0 0.218506 1
+16 6 31 0 0.221924 1
+16 7 0 0.747559 0 0
+16 7 1 0.747559 0 0
+16 7 2 0.747559 0 0
+16 7 3 0.747559 0 0
+16 7 4 0.747559 0 0
+16 7 5 0.747559 0 0
+16 7 6 0.747559 0 0
+16 7 7 0.747559 0 0
+16 7 8 0.747559 0 0
+16 7 9 0.747559 0 0
+16 7 10 0.750488 0 0
+16 7 11 0.759277 0 0
+16 7 12 0.766113 0 0.145752
+16 7 13 0.765625 0 0.264404
+16 7 14 0.753418 0 0.375977
+16 7 15 0.725098 0.0139999 0.476562
+16 7 16 0.693848 0.0906372 0.578125
+16 7 17 0.650391 0.120239 0.678711
+16 7 18 0.591309 0.146606 0.771973
+16 7 19 0.519043 0.169312 0.853516
+16 7 20 0.433105 0.187866 0.920898
+16 7 21 0.3125 0.193604 0.938477
+16 7 22 0.153442 0.196167 0.944824
+16 7 23 0 0.198242 0.950684
+16 7 24 0 0.200317 0.957031
+16 7 25 0 0.202515 0.964355
+16 7 26 0 0.205078 0.973145
+16 7 27 0 0.208008 0.983398
+16 7 28 0 0.211426 0.995605
+16 7 29 0 0.215088 1
+16 7 30 0 0.218872 1
+16 7 31 0 0.222168 1
+16 8 0 0.747559 0 0
+16 8 1 0.747559 0 0
+16 8 2 0.747559 0 0
+16 8 3 0.747559 0 0
+16 8 4 0.747559 0 0
+16 8 5 0.747559 0 0
+16 8 6 0.747559 0 0
+16 8 7 0.747559 0 0
+16 8 8 0.747559 0 0
+16 8 9 0.748047 0 0
+16 8 10 0.750488 0 0
+16 8 11 0.759277 0 0
+16 8 12 0.765137 0 0.144531
+16 8 13 0.765137 0 0.263672
+16 8 14 0.75293 0 0.375732
+16 8 15 0.724121 0.0336609 0.476562
+16 8 16 0.693359 0.10083 0.577637
+16 8 17 0.649414 0.127808 0.678711
+16 8 18 0.590332 0.152466 0.771973
+16 8 19 0.518066 0.17395 0.853516
+16 8 20 0.432129 0.19165 0.920898
+16 8 21 0.311523 0.196533 0.938477
+16 8 22 0.151367 0.198608 0.944824
+16 8 23 0 0.200317 0.950684
+16 8 24 0 0.202026 0.957031
+16 8 25 0 0.203979 0.964355
+16 8 26 0 0.206421 0.973145
+16 8 27 0 0.209106 0.983398
+16 8 28 0 0.212402 0.995605
+16 8 29 0 0.215942 1
+16 8 30 0 0.219482 1
+16 8 31 0 0.222778 1
+16 9 0 0.748047 0 0
+16 9 1 0.748047 0 0
+16 9 2 0.748047 0 0
+16 9 3 0.748047 0 0
+16 9 4 0.748047 0 0
+16 9 5 0.748047 0 0
+16 9 6 0.748047 0 0
+16 9 7 0.748047 0 0
+16 9 8 0.748047 0 0
+16 9 9 0.748047 0 0
+16 9 10 0.750488 0 0
+16 9 11 0.759277 0 0
+16 9 12 0.76416 0 0.142334
+16 9 13 0.76416 0 0.262695
+16 9 14 0.751953 0 0.375
+16 9 15 0.723145 0.065918 0.476074
+16 9 16 0.691895 0.118103 0.577637
+16 9 17 0.647949 0.141235 0.678711
+16 9 18 0.588867 0.163086 0.771484
+16 9 19 0.516602 0.182495 0.853516
+16 9 20 0.43042 0.198608 0.920898
+16 9 21 0.309326 0.202148 0.938477
+16 9 22 0.147339 0.203125 0.945312
+16 9 23 0 0.204102 0.951172
+16 9 24 0 0.205322 0.95752
+16 9 25 0 0.206787 0.964844
+16 9 26 0 0.20874 0.973633
+16 9 27 0 0.211182 0.983887
+16 9 28 0 0.214111 0.996094
+16 9 29 0 0.217407 1
+16 9 30 0 0.220825 1
+16 9 31 0 0.223877 1
+16 10 0 0.748047 0 0
+16 10 1 0.748047 0 0
+16 10 2 0.748047 0 0
+16 10 3 0.748047 0 0
+16 10 4 0.748047 0 0
+16 10 5 0.748047 0 0
+16 10 6 0.748047 0 0
+16 10 7 0.748047 0 0
+16 10 8 0.748047 0 0
+16 10 9 0.748047 0 0
+16 10 10 0.750488 0 0
+16 10 11 0.758301 0 0
+16 10 12 0.762207 0 0.138672
+16 10 13 0.762207 0 0.260498
+16 10 14 0.75 0 0.373535
+16 10 15 0.720703 0.10498 0.475586
+16 10 16 0.689453 0.144409 0.577148
+16 10 17 0.645508 0.162842 0.678223
+16 10 18 0.586426 0.180664 0.771484
+16 10 19 0.513672 0.196899 0.853516
+16 10 20 0.427246 0.210571 0.920898
+16 10 21 0.30542 0.211914 0.938965
+16 10 22 0.139648 0.211182 0.945801
+16 10 23 0 0.210815 0.95166
+16 10 24 0 0.21106 0.958008
+16 10 25 0 0.211792 0.965332
+16 10 26 0 0.213135 0.974121
+16 10 27 0 0.214844 0.984375
+16 10 28 0 0.217285 0.996582
+16 10 29 0 0.220215 1
+16 10 30 0 0.223145 1
+16 10 31 0 0.22583 1
+16 11 0 0.74707 0.0258026 0
+16 11 1 0.74707 0.0258179 0
+16 11 2 0.74707 0.0258636 0
+16 11 3 0.74707 0.0259399 0
+16 11 4 0.74707 0.0260773 0
+16 11 5 0.74707 0.0263519 0
+16 11 6 0.74707 0.0268707 0
+16 11 7 0.74707 0.0278778 0
+16 11 8 0.74707 0.0298615 0
+16 11 9 0.74707 0.0336609 0
+16 11 10 0.749023 0.0378418 0
+16 11 11 0.756348 0.0336914 0
+16 11 12 0.758301 0.0179901 0.132812
+16 11 13 0.757812 0.0115967 0.257324
+16 11 14 0.746582 0.0523071 0.371094
+16 11 15 0.716797 0.1521 0.474609
+16 11 16 0.685059 0.181519 0.576172
+16 11 17 0.641113 0.194702 0.677734
+16 11 18 0.581543 0.207764 0.771484
+16 11 19 0.508789 0.219849 0.853027
+16 11 20 0.421387 0.22998 0.920898
+16 11 21 0.29834 0.228149 0.939941
+16 11 22 0.125 0.224487 0.946289
+16 11 23 0 0.222168 0.952148
+16 11 24 0 0.220825 0.958496
+16 11 25 0 0.220215 0.96582
+16 11 26 0 0.220459 0.974609
+16 11 27 0 0.221191 0.985352
+16 11 28 0 0.222778 0.997559
+16 11 29 0 0.224976 1
+16 11 30 0 0.227051 1
+16 11 31 0 0.229248 1
+16 12 0 0.744141 0.161377 0
+16 12 1 0.744141 0.161377 0
+16 12 2 0.744141 0.161377 0
+16 12 3 0.744141 0.161377 0
+16 12 4 0.744141 0.161499 0
+16 12 5 0.744141 0.161499 0
+16 12 6 0.744141 0.161743 0
+16 12 7 0.744141 0.161987 0
+16 12 8 0.744141 0.162598 0
+16 12 9 0.744141 0.163818 0
+16 12 10 0.745605 0.165527 0
+16 12 11 0.749023 0.164673 0
+16 12 12 0.750488 0.160034 0.125854
+16 12 13 0.75 0.155151 0.250732
+16 12 14 0.740234 0.160645 0.366699
+16 12 15 0.709961 0.208984 0.472656
+16 12 16 0.677734 0.230713 0.574707
+16 12 17 0.633301 0.238892 0.676758
+16 12 18 0.57373 0.246704 0.770996
+16 12 19 0.5 0.253906 0.853027
+16 12 20 0.411377 0.259521 0.920898
+16 12 21 0.285889 0.253174 0.940918
+16 12 22 0.0949707 0.245605 0.947754
+16 12 23 0 0.240234 0.953613
+16 12 24 0 0.236572 0.959961
+16 12 25 0 0.234009 0.967773
+16 12 26 0 0.232422 0.976562
+16 12 27 0 0.231689 0.986816
+16 12 28 0 0.231934 0.999023
+16 12 29 0 0.232788 1
+16 12 30 0 0.233643 1
+16 12 31 0 0.234985 1
+16 13 0 0.73584 0.260986 0
+16 13 1 0.73584 0.260986 0
+16 13 2 0.73584 0.260986 0
+16 13 3 0.73584 0.260986 0
+16 13 4 0.73584 0.260986 0
+16 13 5 0.73584 0.26123 0
+16 13 6 0.73584 0.26123 0
+16 13 7 0.73584 0.261475 0
+16 13 8 0.73584 0.261719 0
+16 13 9 0.73584 0.262451 0
+16 13 10 0.736328 0.263672 0
+16 13 11 0.736328 0.262939 0
+16 13 12 0.736328 0.26123 0.123169
+16 13 13 0.735352 0.257812 0.243042
+16 13 14 0.727051 0.255859 0.359131
+16 13 15 0.698242 0.276367 0.469238
+16 13 16 0.664551 0.292236 0.572266
+16 13 17 0.620117 0.295898 0.675293
+16 13 18 0.560059 0.298584 0.77002
+16 13 19 0.485107 0.300293 0.852539
+16 13 20 0.394043 0.301025 0.920898
+16 13 21 0.263428 0.289307 0.942871
+16 13 22 0.0107346 0.276611 0.949707
+16 13 23 0 0.26709 0.956055
+16 13 24 0 0.260498 0.962402
+16 13 25 0 0.254883 0.970215
+16 13 26 0 0.250977 0.979004
+16 13 27 0 0.247925 0.989258
+16 13 28 0 0.246094 1
+16 13 29 0 0.244873 1
+16 13 30 0 0.244141 1
+16 13 31 0 0.244141 1
+16 14 0 0.718262 0.357422 0
+16 14 1 0.718262 0.357422 0
+16 14 2 0.718262 0.357422 0
+16 14 3 0.718262 0.357422 0
+16 14 4 0.718262 0.357422 0
+16 14 5 0.718262 0.357422 0
+16 14 6 0.718262 0.357422 0
+16 14 7 0.718262 0.357666 0
+16 14 8 0.718262 0.357666 0
+16 14 9 0.718262 0.358154 0
+16 14 10 0.718262 0.358887 0
+16 14 11 0.716797 0.359131 0
+16 14 12 0.713867 0.358887 0.134888
+16 14 13 0.708984 0.35791 0.241577
+16 14 14 0.701172 0.354736 0.348633
+16 14 15 0.678711 0.355957 0.462646
+16 14 16 0.642578 0.366455 0.567871
+16 14 17 0.598145 0.366211 0.671875
+16 14 18 0.536621 0.364014 0.768066
+16 14 19 0.459717 0.360596 0.851562
+16 14 20 0.364014 0.355957 0.920898
+16 14 21 0.221802 0.338379 0.945801
+16 14 22 0 0.319336 0.953125
+16 14 23 0 0.305176 0.959473
+16 14 24 0 0.294434 0.966309
+16 14 25 0 0.2854 0.974121
+16 14 26 0 0.277832 0.98291
+16 14 27 0 0.271729 0.993164
+16 14 28 0 0.266846 1
+16 14 29 0 0.262695 1
+16 14 30 0 0.26001 1
+16 14 31 0 0.257812 1
+16 15 0 0.695312 0.459473 0
+16 15 1 0.695312 0.459473 0
+16 15 2 0.695312 0.459473 0
+16 15 3 0.695312 0.459473 0
+16 15 4 0.695312 0.459473 0
+16 15 5 0.695312 0.459473 0
+16 15 6 0.695312 0.459473 0
+16 15 7 0.695312 0.459473 0
+16 15 8 0.695312 0.459717 0
+16 15 9 0.695312 0.459961 0
+16 15 10 0.695312 0.460693 0
+16 15 11 0.693359 0.460938 0
+16 15 12 0.687988 0.460693 0.14856
+16 15 13 0.678223 0.459473 0.24939
+16 15 14 0.662109 0.456299 0.34668
+16 15 15 0.640625 0.451172 0.449463
+16 15 16 0.606934 0.452148 0.560547
+16 15 17 0.561035 0.44873 0.666504
+16 15 18 0.498291 0.442627 0.76416
+16 15 19 0.416748 0.434326 0.849609
+16 15 20 0.310547 0.424316 0.919922
+16 15 21 0.12854 0.400879 0.949219
+16 15 22 0 0.375 0.958008
+16 15 23 0 0.355225 0.965332
+16 15 24 0 0.339844 0.972656
+16 15 25 0 0.326172 0.979492
+16 15 26 0 0.313965 0.987305
+16 15 27 0 0.303711 0.995605
+16 15 28 0 0.295166 1
+16 15 29 0 0.288086 1
+16 15 30 0 0.282227 1
+16 15 31 0 0.277588 1
+16 16 0 0.649902 0.571289 0
+16 16 1 0.649902 0.571289 0
+16 16 2 0.649902 0.571289 0
+16 16 3 0.649902 0.571289 0
+16 16 4 0.649902 0.571289 0
+16 16 5 0.649902 0.571289 0
+16 16 6 0.649902 0.571289 0
+16 16 7 0.649902 0.571289 0
+16 16 8 0.649902 0.571289 0
+16 16 9 0.649902 0.571289 0
+16 16 10 0.649902 0.571777 0
+16 16 11 0.648926 0.572266 0
+16 16 12 0.643555 0.571777 0.111755
+16 16 13 0.633789 0.570801 0.234009
+16 16 14 0.617676 0.567383 0.34082
+16 16 15 0.590332 0.560547 0.445557
+16 16 16 0.547363 0.547363 0.547363
+16 16 17 0.5 0.541992 0.656738
+16 16 18 0.432373 0.532715 0.756836
+16 16 19 0.3396 0.52002 0.844727
+16 16 20 0.199951 0.505371 0.91748
+16 16 21 0 0.477051 0.952637
+16 16 22 0 0.443604 0.962891
+16 16 23 0 0.417236 0.970215
+16 16 24 0 0.395996 0.977051
+16 16 25 0 0.377197 0.983887
+16 16 26 0 0.360352 0.991699
+16 16 27 0 0.345459 1
+16 16 28 0 0.332764 1
+16 16 29 0 0.321777 1
+16 16 30 0 0.312256 1
+16 16 31 0 0.304443 1
+16 17 0 0.54834 0.665039 0
+16 17 1 0.54834 0.665039 0
+16 17 2 0.54834 0.665039 0
+16 17 3 0.54834 0.665039 0
+16 17 4 0.54834 0.665039 0
+16 17 5 0.54834 0.665039 0
+16 17 6 0.54834 0.665039 0
+16 17 7 0.54834 0.665039 0
+16 17 8 0.54834 0.665039 0
+16 17 9 0.54834 0.665039 0
+16 17 10 0.54834 0.665527 0
+16 17 11 0.54834 0.666016 0
+16 17 12 0.542969 0.665527 0
+16 17 13 0.533203 0.664062 0.182983
+16 17 14 0.51709 0.660645 0.304688
+16 17 15 0.48999 0.654297 0.416016
+16 17 16 0.450928 0.646973 0.527832
+16 17 17 0.396484 0.640625 0.640625
+16 17 18 0.312988 0.629395 0.745117
+16 17 19 0.170288 0.61377 0.836426
+16 17 20 0 0.595215 0.911621
+16 17 21 0 0.562988 0.954102
+16 17 22 0 0.522949 0.967773
+16 17 23 0 0.490234 0.977051
+16 17 24 0 0.463379 0.984863
+16 17 25 0 0.438721 0.991699
+16 17 26 0 0.416504 0.999023
+16 17 27 0 0.396484 1
+16 17 28 0 0.378906 1
+16 17 29 0 0.363525 1
+16 17 30 0 0.350098 1
+16 17 31 0 0.338135 1
+16 18 0 0.394531 0.748047 0
+16 18 1 0.394531 0.748047 0
+16 18 2 0.394531 0.748047 0
+16 18 3 0.394531 0.748047 0
+16 18 4 0.394531 0.748047 0
+16 18 5 0.394531 0.748047 0
+16 18 6 0.394531 0.748047 0
+16 18 7 0.394531 0.748047 0
+16 18 8 0.394531 0.748047 0
+16 18 9 0.394531 0.748047 0
+16 18 10 0.394531 0.748535 0
+16 18 11 0.394775 0.748535 0
+16 18 12 0.390869 0.749023 0
+16 18 13 0.379395 0.749023 0.0958862
+16 18 14 0.360352 0.748047 0.256348
+16 18 15 0.328857 0.745605 0.380127
+16 18 16 0.275879 0.743164 0.500488
+16 18 17 0.176636 0.737305 0.617676
+16 18 18 0 0.726562 0.726562
+16 18 19 0 0.709961 0.822266
+16 18 20 0 0.688477 0.901367
+16 18 21 0 0.654785 0.952148
+16 18 22 0 0.611328 0.974609
+16 18 23 0 0.572754 0.987305
+16 18 24 0 0.540527 0.996582
+16 18 25 0 0.509766 1
+16 18 26 0 0.481934 1
+16 18 27 0 0.456299 1
+16 18 28 0 0.43335 1
+16 18 29 0 0.412842 1
+16 18 30 0 0.394531 1
+16 18 31 0 0.378418 1
+16 19 0 0 0.827148 0
+16 19 1 0 0.827148 0
+16 19 2 0 0.827148 0
+16 19 3 0 0.827148 0
+16 19 4 0 0.827148 0
+16 19 5 0 0.827148 0
+16 19 6 0 0.827148 0
+16 19 7 0 0.827148 0
+16 19 8 0 0.827148 0
+16 19 9 0 0.827148 0
+16 19 10 0 0.827637 0
+16 19 11 0 0.827637 0
+16 19 12 0 0.828125 0
+16 19 13 0 0.829102 0
+16 19 14 0 0.830078 0.193359
+16 19 15 0 0.831055 0.337158
+16 19 16 0 0.831055 0.465576
+16 19 17 0 0.827148 0.587891
+16 19 18 0 0.817383 0.701172
+16 19 19 0 0.80127 0.801758
+16 19 20 0 0.779785 0.885254
+16 19 21 0 0.74707 0.946289
+16 19 22 0 0.704102 0.980469
+16 19 23 0 0.662598 0.999512
+16 19 24 0 0.625 1
+16 19 25 0 0.588867 1
+16 19 26 0 0.554688 1
+16 19 27 0 0.522949 1
+16 19 28 0 0.493896 1
+16 19 29 0 0.467773 1
+16 19 30 0 0.444336 1
+16 19 31 0 0.42334 1
+16 20 0 0 0.897949 0
+16 20 1 0 0.897949 0
+16 20 2 0 0.897949 0
+16 20 3 0 0.897949 0
+16 20 4 0 0.897949 0
+16 20 5 0 0.897949 0
+16 20 6 0 0.897949 0
+16 20 7 0 0.897949 0
+16 20 8 0 0.897949 0
+16 20 9 0 0.898438 0
+16 20 10 0 0.898438 0
+16 20 11 0 0.898438 0
+16 20 12 0 0.898926 0
+16 20 13 0 0.900391 0
+16 20 14 0 0.902832 0.0933838
+16 20 15 0 0.905273 0.285645
+16 20 16 0 0.907227 0.424805
+16 20 17 0 0.905762 0.552246
+16 20 18 0 0.898438 0.669922
+16 20 19 0 0.883789 0.774902
+16 20 20 0 0.863281 0.863281
+16 20 21 0 0.834473 0.93457
+16 20 22 0 0.79541 0.981934
+16 20 23 0 0.753418 1
+16 20 24 0 0.712402 1
+16 20 25 0 0.671875 1
+16 20 26 0 0.631836 1
+16 20 27 0 0.59375 1
+16 20 28 0 0.558594 1
+16 20 29 0 0.526855 1
+16 20 30 0 0.497803 1
+16 20 31 0 0.47168 1
+16 21 0 0 0.959961 0
+16 21 1 0 0.959961 0
+16 21 2 0 0.959961 0
+16 21 3 0 0.959961 0
+16 21 4 0 0.959961 0
+16 21 5 0 0.959961 0
+16 21 6 0 0.959961 0
+16 21 7 0 0.959961 0
+16 21 8 0 0.959961 0
+16 21 9 0 0.959961 0
+16 21 10 0 0.959961 0
+16 21 11 0 0.960449 0
+16 21 12 0 0.960449 0
+16 21 13 0 0.961914 0
+16 21 14 0 0.964844 0
+16 21 15 0 0.96875 0.220703
+16 21 16 0 0.97168 0.377441
+16 21 17 0 0.972656 0.51123
+16 21 18 0 0.968262 0.632812
+16 21 19 0 0.956543 0.741699
+16 21 20 0 0.938477 0.834961
+16 21 21 0 0.913574 0.913574
+16 21 22 0 0.880859 0.974121
+16 21 23 0 0.841797 1
+16 21 24 0 0.800293 1
+16 21 25 0 0.756836 1
+16 21 26 0 0.712402 1
+16 21 27 0 0.668945 1
+16 21 28 0 0.62793 1
+16 21 29 0 0.589844 1
+16 21 30 0 0.555176 1
+16 21 31 0 0.523438 1
+16 22 0 0 1 0
+16 22 1 0 1 0
+16 22 2 0 1 0
+16 22 3 0 1 0
+16 22 4 0 1 0
+16 22 5 0 1 0
+16 22 6 0 1 0
+16 22 7 0 1 0
+16 22 8 0 1 0
+16 22 9 0 1 0
+16 22 10 0 1 0
+16 22 11 0 1 0
+16 22 12 0 1 0
+16 22 13 0 1 0
+16 22 14 0 1 0
+16 22 15 0 1 0.129761
+16 22 16 0 1 0.324463
+16 22 17 0 1 0.466309
+16 22 18 0 1 0.592285
+16 22 19 0 1 0.70459
+16 22 20 0 1 0.801758
+16 22 21 0 0.980957 0.885254
+16 22 22 0 0.953613 0.954102
+16 22 23 0 0.92041 1
+16 22 24 0 0.881836 1
+16 22 25 0 0.838379 1
+16 22 26 0 0.791992 1
+16 22 27 0 0.744629 1
+16 22 28 0 0.69873 1
+16 22 29 0 0.655273 1
+16 22 30 0 0.614746 1
+16 22 31 0 0.577637 1
+16 23 0 0 1 0
+16 23 1 0 1 0
+16 23 2 0 1 0
+16 23 3 0 1 0
+16 23 4 0 1 0
+16 23 5 0 1 0
+16 23 6 0 1 0
+16 23 7 0 1 0
+16 23 8 0 1 0
+16 23 9 0 1 0
+16 23 10 0 1 0
+16 23 11 0 1 0
+16 23 12 0 1 0
+16 23 13 0 1 0
+16 23 14 0 1 0
+16 23 15 0 1 0
+16 23 16 0 1 0.266113
+16 23 17 0 1 0.419922
+16 23 18 0 1 0.549805
+16 23 19 0 1 0.665527
+16 23 20 0 1 0.765625
+16 23 21 0 1 0.853027
+16 23 22 0 1 0.92627
+16 23 23 0 0.983887 0.984375
+16 23 24 0 0.951172 1
+16 23 25 0 0.910645 1
+16 23 26 0 0.864746 1
+16 23 27 0 0.815918 1
+16 23 28 0 0.766602 1
+16 23 29 0 0.71875 1
+16 23 30 0 0.67334 1
+16 23 31 0 0.631348 1
+16 24 0 0 1 0
+16 24 1 0 1 0
+16 24 2 0 1 0
+16 24 3 0 1 0
+16 24 4 0 1 0
+16 24 5 0 1 0
+16 24 6 0 1 0
+16 24 7 0 1 0
+16 24 8 0 1 0
+16 24 9 0 1 0
+16 24 10 0 1 0
+16 24 11 0 1 0
+16 24 12 0 1 0
+16 24 13 0 1 0
+16 24 14 0 1 0
+16 24 15 0 1 0
+16 24 16 0 1 0.198486
+16 24 17 0 1 0.37207
+16 24 18 0 1 0.507324
+16 24 19 0 1 0.625
+16 24 20 0 1 0.728027
+16 24 21 0 1 0.818848
+16 24 22 0 1 0.895508
+16 24 23 0 1 0.958008
+16 24 24 0 1 1
+16 24 25 0 0.972656 1
+16 24 26 0 0.929199 1
+16 24 27 0 0.880859 1
+16 24 28 0 0.830078 1
+16 24 29 0 0.779297 1
+16 24 30 0 0.730469 1
+16 24 31 0 0.683594 1
+16 25 0 0 1 0
+16 25 1 0 1 0
+16 25 2 0 1 0
+16 25 3 0 1 0
+16 25 4 0 1 0
+16 25 5 0 1 0
+16 25 6 0 1 0
+16 25 7 0 1 0
+16 25 8 0 1 0
+16 25 9 0 1 0
+16 25 10 0 1 0
+16 25 11 0 1 0
+16 25 12 0 1 0
+16 25 13 0 1 0
+16 25 14 0 1 0
+16 25 15 0 1 0
+16 25 16 0 1 0.0914917
+16 25 17 0 1 0.31665
+16 25 18 0 1 0.459229
+16 25 19 0 1 0.580078
+16 25 20 0 1 0.685547
+16 25 21 0 1 0.778809
+16 25 22 0 1 0.859375
+16 25 23 0 1 0.925781
+16 25 24 0 1 0.980957
+16 25 25 0 1 1
+16 25 26 0 0.990723 1
+16 25 27 0 0.944824 1
+16 25 28 0 0.894531 1
+16 25 29 0 0.841797 1
+16 25 30 0 0.790039 1
+16 25 31 0 0.739746 1
+16 26 0 0 1 0
+16 26 1 0 1 0
+16 26 2 0 1 0
+16 26 3 0 1 0
+16 26 4 0 1 0
+16 26 5 0 1 0
+16 26 6 0 1 0
+16 26 7 0 1 0
+16 26 8 0 1 0
+16 26 9 0 1 0
+16 26 10 0 1 0
+16 26 11 0 1 0
+16 26 12 0 1 0
+16 26 13 0 1 0
+16 26 14 0 1 0
+16 26 15 0 1 0
+16 26 16 0 1 0
+16 26 17 0 1 0.250244
+16 26 18 0 1 0.406006
+16 26 19 0 1 0.530762
+16 26 20 0 1 0.638184
+16 26 21 0 1 0.733887
+16 26 22 0 1 0.817383
+16 26 23 0 1 0.887695
+16 26 24 0 1 0.946289
+16 26 25 0 1 1
+16 26 26 0 1 1
+16 26 27 0 1 1
+16 26 28 0 0.957031 1
+16 26 29 0 0.904785 1
+16 26 30 0 0.851074 1
+16 26 31 0 0.797852 1
+16 27 0 0 1 0
+16 27 1 0 1 0
+16 27 2 0 1 0
+16 27 3 0 1 0
+16 27 4 0 1 0
+16 27 5 0 1 0
+16 27 6 0 1 0
+16 27 7 0 1 0
+16 27 8 0 1 0
+16 27 9 0 1 0
+16 27 10 0 1 0
+16 27 11 0 1 0
+16 27 12 0 1 0
+16 27 13 0 1 0
+16 27 14 0 1 0
+16 27 15 0 1 0
+16 27 16 0 1 0
+16 27 17 0 1 0.160889
+16 27 18 0 1 0.346191
+16 27 19 0 1 0.476562
+16 27 20 0 1 0.585938
+16 27 21 0 1 0.683594
+16 27 22 0 1 0.77002
+16 27 23 0 1 0.843262
+16 27 24 0 1 0.905273
+16 27 25 0 1 0.963379
+16 27 26 0 1 1
+16 27 27 0 1 1
+16 27 28 0 1 1
+16 27 29 0 0.96582 1
+16 27 30 0 0.912109 1
+16 27 31 0 0.857422 1
+16 28 0 0 1 0
+16 28 1 0 1 0
+16 28 2 0 1 0
+16 28 3 0 1 0
+16 28 4 0 1 0
+16 28 5 0 1 0
+16 28 6 0 1 0
+16 28 7 0 1 0
+16 28 8 0 1 0
+16 28 9 0 1 0
+16 28 10 0 1 0
+16 28 11 0 1 0
+16 28 12 0 1 0
+16 28 13 0 1 0
+16 28 14 0 1 0
+16 28 15 0 1 0
+16 28 16 0 1 0
+16 28 17 0 1 0
+16 28 18 0 1 0.276611
+16 28 19 0 1 0.41748
+16 28 20 0 1 0.530273
+16 28 21 0 1 0.629395
+16 28 22 0 1 0.717285
+16 28 23 0 1 0.792969
+16 28 24 0 1 0.85791
+16 28 25 0 1 0.919434
+16 28 26 0 1 0.976562
+16 28 27 0 1 1
+16 28 28 0 1 1
+16 28 29 0 1 1
+16 28 30 0 0.971191 1
+16 28 31 0 0.916992 1
+16 29 0 0 1 0
+16 29 1 0 1 0
+16 29 2 0 1 0
+16 29 3 0 1 0
+16 29 4 0 1 0
+16 29 5 0 1 0
+16 29 6 0 1 0
+16 29 7 0 1 0
+16 29 8 0 1 0
+16 29 9 0 1 0
+16 29 10 0 1 0
+16 29 11 0 1 0
+16 29 12 0 1 0
+16 29 13 0 1 0
+16 29 14 0 1 0
+16 29 15 0 1 0
+16 29 16 0 1 0
+16 29 17 0 1 0
+16 29 18 0 1 0.18811
+16 29 19 0 1 0.352051
+16 29 20 0 1 0.469727
+16 29 21 0 1 0.570801
+16 29 22 0 1 0.659668
+16 29 23 0 1 0.736816
+16 29 24 0 1 0.804199
+16 29 25 0 1 0.869141
+16 29 26 0 1 0.930176
+16 29 27 0 1 0.98584
+16 29 28 0 1 1
+16 29 29 0 1 1
+16 29 30 0 1 1
+16 29 31 0 0.976074 1
+16 30 0 0 1 0
+16 30 1 0 1 0
+16 30 2 0 1 0
+16 30 3 0 1 0
+16 30 4 0 1 0
+16 30 5 0 1 0
+16 30 6 0 1 0
+16 30 7 0 1 0
+16 30 8 0 1 0
+16 30 9 0 1 0
+16 30 10 0 1 0
+16 30 11 0 1 0
+16 30 12 0 1 0
+16 30 13 0 1 0
+16 30 14 0 1 0
+16 30 15 0 1 0
+16 30 16 0 1 0
+16 30 17 0 1 0
+16 30 18 0 1 0.00824738
+16 30 19 0 1 0.276855
+16 30 20 0 1 0.404053
+16 30 21 0 1 0.507812
+16 30 22 0 1 0.598145
+16 30 23 0 1 0.67627
+16 30 24 0 1 0.745117
+16 30 25 0 1 0.812012
+16 30 26 0 1 0.876465
+16 30 27 0 1 0.937012
+16 30 28 0 1 0.992188
+16 30 29 0 1 1
+16 30 30 0 1 1
+16 30 31 0 1 1
+16 31 0 0 1 0
+16 31 1 0 1 0
+16 31 2 0 1 0
+16 31 3 0 1 0
+16 31 4 0 1 0
+16 31 5 0 1 0
+16 31 6 0 1 0
+16 31 7 0 1 0
+16 31 8 0 1 0
+16 31 9 0 1 0
+16 31 10 0 1 0
+16 31 11 0 1 0
+16 31 12 0 1 0
+16 31 13 0 1 0
+16 31 14 0 1 0
+16 31 15 0 1 0
+16 31 16 0 1 0
+16 31 17 0 1 0
+16 31 18 0 1 0
+16 31 19 0 1 0.181885
+16 31 20 0 1 0.332031
+16 31 21 0 1 0.440918
+16 31 22 0 1 0.532715
+16 31 23 0 1 0.611816
+16 31 24 0 1 0.681641
+16 31 25 0 1 0.75
+16 31 26 0 1 0.816895
+16 31 27 0 1 0.881836
+16 31 28 0 1 0.941895
+16 31 29 0 1 0.99707
+16 31 30 0 1 1
+16 31 31 0 1 1
+17 0 0 0.812012 0 0
+17 0 1 0.812012 0 0
+17 0 2 0.812012 0 0
+17 0 3 0.812012 0 0
+17 0 4 0.812012 0 0
+17 0 5 0.812012 0 0
+17 0 6 0.812012 0 0
+17 0 7 0.812012 0 0
+17 0 8 0.812012 0 0
+17 0 9 0.812012 0 0
+17 0 10 0.8125 0 0
+17 0 11 0.816895 0 0
+17 0 12 0.825684 0 0.0302429
+17 0 13 0.838379 0 0.20105
+17 0 14 0.848145 0 0.32373
+17 0 15 0.849609 0 0.447754
+17 0 16 0.835938 0.0218201 0.563965
+17 0 17 0.802734 0.0979004 0.669434
+17 0 18 0.753418 0.130371 0.766113
+17 0 19 0.692383 0.157227 0.851074
+17 0 20 0.62207 0.178711 0.921387
+17 0 21 0.526855 0.189575 0.95166
+17 0 22 0.425049 0.194458 0.961914
+17 0 23 0.322998 0.197754 0.968262
+17 0 24 0.206421 0.200317 0.973145
+17 0 25 0 0.202759 0.979004
+17 0 26 0 0.205444 0.98584
+17 0 27 0 0.208252 0.994141
+17 0 28 0 0.211548 1
+17 0 29 0 0.215088 1
+17 0 30 0 0.218872 1
+17 0 31 0 0.222778 1
+17 1 0 0.812012 0 0
+17 1 1 0.812012 0 0
+17 1 2 0.812012 0 0
+17 1 3 0.812012 0 0
+17 1 4 0.812012 0 0
+17 1 5 0.812012 0 0
+17 1 6 0.812012 0 0
+17 1 7 0.812012 0 0
+17 1 8 0.812012 0 0
+17 1 9 0.812012 0 0
+17 1 10 0.8125 0 0
+17 1 11 0.816895 0 0
+17 1 12 0.825684 0 0.0302277
+17 1 13 0.838379 0 0.20105
+17 1 14 0.848145 0 0.32373
+17 1 15 0.849609 0 0.447754
+17 1 16 0.835938 0.0220184 0.563965
+17 1 17 0.802734 0.0980225 0.669434
+17 1 18 0.753418 0.130371 0.766113
+17 1 19 0.692383 0.157227 0.851074
+17 1 20 0.62207 0.178833 0.921387
+17 1 21 0.526855 0.189575 0.95166
+17 1 22 0.425049 0.19458 0.961914
+17 1 23 0.322998 0.197754 0.968262
+17 1 24 0.206421 0.200317 0.973145
+17 1 25 0 0.202759 0.979004
+17 1 26 0 0.205444 0.98584
+17 1 27 0 0.208252 0.994141
+17 1 28 0 0.211548 1
+17 1 29 0 0.215088 1
+17 1 30 0 0.218872 1
+17 1 31 0 0.222778 1
+17 2 0 0.812012 0 0
+17 2 1 0.812012 0 0
+17 2 2 0.812012 0 0
+17 2 3 0.812012 0 0
+17 2 4 0.812012 0 0
+17 2 5 0.812012 0 0
+17 2 6 0.812012 0 0
+17 2 7 0.812012 0 0
+17 2 8 0.812012 0 0
+17 2 9 0.812012 0 0
+17 2 10 0.8125 0 0
+17 2 11 0.816895 0 0
+17 2 12 0.825684 0 0.0301819
+17 2 13 0.838379 0 0.20105
+17 2 14 0.848145 0 0.32373
+17 2 15 0.849609 0 0.447754
+17 2 16 0.835938 0.0223999 0.563965
+17 2 17 0.802734 0.0982056 0.669434
+17 2 18 0.753418 0.130615 0.766113
+17 2 19 0.692383 0.157349 0.851074
+17 2 20 0.62207 0.178833 0.921387
+17 2 21 0.526855 0.189697 0.95166
+17 2 22 0.425049 0.19458 0.961914
+17 2 23 0.322998 0.197876 0.968262
+17 2 24 0.206421 0.200317 0.973145
+17 2 25 0 0.202881 0.979004
+17 2 26 0 0.205444 0.98584
+17 2 27 0 0.208252 0.994141
+17 2 28 0 0.211548 1
+17 2 29 0 0.215088 1
+17 2 30 0 0.218872 1
+17 2 31 0 0.222778 1
+17 3 0 0.812012 0 0
+17 3 1 0.812012 0 0
+17 3 2 0.812012 0 0
+17 3 3 0.812012 0 0
+17 3 4 0.812012 0 0
+17 3 5 0.812012 0 0
+17 3 6 0.812012 0 0
+17 3 7 0.812012 0 0
+17 3 8 0.812012 0 0
+17 3 9 0.812012 0 0
+17 3 10 0.8125 0 0
+17 3 11 0.816895 0 0
+17 3 12 0.825684 0 0.0301056
+17 3 13 0.838379 0 0.20105
+17 3 14 0.848145 0 0.32373
+17 3 15 0.849609 0 0.447754
+17 3 16 0.835938 0.0230865 0.563965
+17 3 17 0.802734 0.0985718 0.669434
+17 3 18 0.753418 0.130859 0.766113
+17 3 19 0.692383 0.157593 0.851074
+17 3 20 0.621582 0.179077 0.921387
+17 3 21 0.526855 0.189819 0.95166
+17 3 22 0.424805 0.194702 0.961914
+17 3 23 0.322998 0.197876 0.968262
+17 3 24 0.206299 0.200439 0.973145
+17 3 25 0 0.202881 0.979004
+17 3 26 0 0.205444 0.98584
+17 3 27 0 0.208374 0.994141
+17 3 28 0 0.211548 1
+17 3 29 0 0.215088 1
+17 3 30 0 0.218872 1
+17 3 31 0 0.222778 1
+17 4 0 0.812012 0 0
+17 4 1 0.812012 0 0
+17 4 2 0.812012 0 0
+17 4 3 0.812012 0 0
+17 4 4 0.812012 0 0
+17 4 5 0.812012 0 0
+17 4 6 0.812012 0 0
+17 4 7 0.812012 0 0
+17 4 8 0.812012 0 0
+17 4 9 0.812012 0 0
+17 4 10 0.8125 0 0
+17 4 11 0.816895 0 0
+17 4 12 0.825684 0 0.0299683
+17 4 13 0.838379 0 0.20105
+17 4 14 0.848145 0 0.32373
+17 4 15 0.849609 0 0.447754
+17 4 16 0.835938 0.0243988 0.563965
+17 4 17 0.802734 0.0992432 0.669434
+17 4 18 0.753418 0.131226 0.766113
+17 4 19 0.692383 0.157959 0.851074
+17 4 20 0.621582 0.179321 0.921387
+17 4 21 0.526855 0.190063 0.95166
+17 4 22 0.424805 0.194824 0.961914
+17 4 23 0.322998 0.19812 0.968262
+17 4 24 0.206299 0.200562 0.973145
+17 4 25 0 0.203003 0.979004
+17 4 26 0 0.205566 0.98584
+17 4 27 0 0.208374 0.994141
+17 4 28 0 0.21167 1
+17 4 29 0 0.21521 1
+17 4 30 0 0.218872 1
+17 4 31 0 0.222778 1
+17 5 0 0.812012 0 0
+17 5 1 0.812012 0 0
+17 5 2 0.812012 0 0
+17 5 3 0.812012 0 0
+17 5 4 0.812012 0 0
+17 5 5 0.812012 0 0
+17 5 6 0.812012 0 0
+17 5 7 0.812012 0 0
+17 5 8 0.812012 0 0
+17 5 9 0.812012 0 0
+17 5 10 0.8125 0 0
+17 5 11 0.816895 0 0
+17 5 12 0.825684 0 0.0296936
+17 5 13 0.838379 0 0.200928
+17 5 14 0.848145 0 0.32373
+17 5 15 0.849609 0 0.447754
+17 5 16 0.835938 0.0269165 0.563965
+17 5 17 0.802734 0.100464 0.669434
+17 5 18 0.753418 0.132202 0.766113
+17 5 19 0.691895 0.158569 0.851074
+17 5 20 0.621582 0.17981 0.921387
+17 5 21 0.526855 0.19043 0.95166
+17 5 22 0.424805 0.19519 0.961914
+17 5 23 0.322998 0.198364 0.968262
+17 5 24 0.206055 0.200806 0.973145
+17 5 25 0 0.203247 0.979004
+17 5 26 0 0.205811 0.98584
+17 5 27 0 0.208496 0.994141
+17 5 28 0 0.211792 1
+17 5 29 0 0.215332 1
+17 5 30 0 0.218994 1
+17 5 31 0 0.2229 1
+17 6 0 0.812012 0 0
+17 6 1 0.812012 0 0
+17 6 2 0.812012 0 0
+17 6 3 0.812012 0 0
+17 6 4 0.812012 0 0
+17 6 5 0.812012 0 0
+17 6 6 0.812012 0 0
+17 6 7 0.812012 0 0
+17 6 8 0.812012 0 0
+17 6 9 0.8125 0 0
+17 6 10 0.8125 0 0
+17 6 11 0.816895 0 0
+17 6 12 0.825684 0 0.0291901
+17 6 13 0.837891 0 0.200684
+17 6 14 0.848145 0 0.32373
+17 6 15 0.849609 0 0.447754
+17 6 16 0.835938 0.0317383 0.563965
+17 6 17 0.802734 0.102783 0.669434
+17 6 18 0.75293 0.133911 0.766113
+17 6 19 0.691895 0.159912 0.851074
+17 6 20 0.621582 0.180908 0.921387
+17 6 21 0.526367 0.191284 0.95166
+17 6 22 0.424561 0.195923 0.961914
+17 6 23 0.322754 0.198853 0.968262
+17 6 24 0.205811 0.201294 0.973633
+17 6 25 0 0.203613 0.979004
+17 6 26 0 0.206055 0.98584
+17 6 27 0 0.208862 0.994141
+17 6 28 0 0.212036 1
+17 6 29 0 0.215454 1
+17 6 30 0 0.219238 1
+17 6 31 0 0.223022 1
+17 7 0 0.812012 0 0
+17 7 1 0.812012 0 0
+17 7 2 0.812012 0 0
+17 7 3 0.812012 0 0
+17 7 4 0.812012 0 0
+17 7 5 0.812012 0 0
+17 7 6 0.8125 0 0
+17 7 7 0.8125 0 0
+17 7 8 0.8125 0 0
+17 7 9 0.8125 0 0
+17 7 10 0.8125 0 0
+17 7 11 0.816895 0 0
+17 7 12 0.825684 0 0.0281982
+17 7 13 0.837891 0 0.200317
+17 7 14 0.848145 0 0.323486
+17 7 15 0.849121 0 0.44751
+17 7 16 0.835449 0.0410767 0.563965
+17 7 17 0.802246 0.107239 0.668945
+17 7 18 0.75293 0.137085 0.766113
+17 7 19 0.691895 0.162476 0.851074
+17 7 20 0.621094 0.182861 0.921387
+17 7 21 0.526367 0.192871 0.95166
+17 7 22 0.424316 0.197144 0.961914
+17 7 23 0.322266 0.199951 0.968262
+17 7 24 0.2052 0.202148 0.973633
+17 7 25 0 0.204346 0.979004
+17 7 26 0 0.206787 0.98584
+17 7 27 0 0.209351 0.994141
+17 7 28 0 0.212524 1
+17 7 29 0 0.215942 1
+17 7 30 0 0.219604 1
+17 7 31 0 0.223389 1
+17 8 0 0.8125 0 0
+17 8 1 0.8125 0 0
+17 8 2 0.8125 0 0
+17 8 3 0.8125 0 0
+17 8 4 0.8125 0 0
+17 8 5 0.8125 0 0
+17 8 6 0.8125 0 0
+17 8 7 0.8125 0 0
+17 8 8 0.8125 0 0
+17 8 9 0.812988 0 0
+17 8 10 0.812988 0 0
+17 8 11 0.817383 0 0
+17 8 12 0.825684 0 0.0263062
+17 8 13 0.837891 0 0.199707
+17 8 14 0.847656 0 0.322998
+17 8 15 0.849121 0 0.447266
+17 8 16 0.834961 0.0570068 0.563965
+17 8 17 0.801758 0.115417 0.668945
+17 8 18 0.752441 0.143311 0.765625
+17 8 19 0.690918 0.167236 0.851074
+17 8 20 0.620605 0.186768 0.921387
+17 8 21 0.525879 0.195923 0.95166
+17 8 22 0.423584 0.199707 0.961914
+17 8 23 0.321533 0.202026 0.968262
+17 8 24 0.204102 0.203979 0.973633
+17 8 25 0 0.205933 0.979004
+17 8 26 0 0.208008 0.98584
+17 8 27 0 0.210449 0.994629
+17 8 28 0 0.213379 1
+17 8 29 0 0.216675 1
+17 8 30 0 0.220215 1
+17 8 31 0 0.223999 1
+17 9 0 0.812988 0 0
+17 9 1 0.812988 0 0
+17 9 2 0.812988 0 0
+17 9 3 0.812988 0 0
+17 9 4 0.812988 0 0
+17 9 5 0.812988 0 0
+17 9 6 0.812988 0 0
+17 9 7 0.812988 0 0
+17 9 8 0.813477 0 0
+17 9 9 0.813477 0 0
+17 9 10 0.813477 0 0
+17 9 11 0.817871 0 0
+17 9 12 0.825684 0 0.0228271
+17 9 13 0.837402 0 0.198364
+17 9 14 0.847168 0 0.32251
+17 9 15 0.848145 0 0.446777
+17 9 16 0.833984 0.0809326 0.563477
+17 9 17 0.800781 0.129761 0.668945
+17 9 18 0.751465 0.154419 0.765625
+17 9 19 0.689941 0.176025 0.851074
+17 9 20 0.619629 0.19397 0.921387
+17 9 21 0.524414 0.201782 0.952148
+17 9 22 0.422363 0.204346 0.962402
+17 9 23 0.320068 0.205933 0.96875
+17 9 24 0.201904 0.207275 0.973633
+17 9 25 0 0.20874 0.979492
+17 9 26 0 0.210449 0.986328
+17 9 27 0 0.212524 0.994629
+17 9 28 0 0.21521 1
+17 9 29 0 0.218262 1
+17 9 30 0 0.221558 1
+17 9 31 0 0.225098 1
+17 10 0 0.813965 0 0
+17 10 1 0.813965 0 0
+17 10 2 0.813965 0 0
+17 10 3 0.813965 0 0
+17 10 4 0.813965 0 0
+17 10 5 0.813965 0 0
+17 10 6 0.813965 0 0
+17 10 7 0.814453 0 0
+17 10 8 0.814453 0 0
+17 10 9 0.814453 0 0
+17 10 10 0.814453 0 0
+17 10 11 0.818359 0 0
+17 10 12 0.826172 0 0.0170441
+17 10 13 0.836914 0 0.196167
+17 10 14 0.84668 0 0.321289
+17 10 15 0.84668 0 0.445801
+17 10 16 0.832031 0.113464 0.562988
+17 10 17 0.798828 0.152344 0.668457
+17 10 18 0.749512 0.172607 0.765625
+17 10 19 0.687988 0.190918 0.850586
+17 10 20 0.617676 0.206299 0.921387
+17 10 21 0.522461 0.211792 0.952148
+17 10 22 0.420166 0.212646 0.962402
+17 10 23 0.317383 0.212891 0.96875
+17 10 24 0.197998 0.213135 0.974121
+17 10 25 0 0.213745 0.979492
+17 10 26 0 0.214844 0.986816
+17 10 27 0 0.216309 0.995117
+17 10 28 0 0.218384 1
+17 10 29 0 0.221069 1
+17 10 30 0 0.223999 1
+17 10 31 0 0.227173 1
+17 11 0 0.815918 0 0
+17 11 1 0.815918 0 0
+17 11 2 0.815918 0 0
+17 11 3 0.815918 0 0
+17 11 4 0.815918 0 0
+17 11 5 0.815918 0 0
+17 11 6 0.815918 0 0
+17 11 7 0.815918 0 0
+17 11 8 0.815918 0 0
+17 11 9 0.815918 0 0
+17 11 10 0.815918 0 0
+17 11 11 0.819336 0 0
+17 11 12 0.826172 0 0.00854492
+17 11 13 0.835938 0 0.192749
+17 11 14 0.844727 0 0.319092
+17 11 15 0.84375 0 0.444092
+17 11 16 0.829102 0.155396 0.562012
+17 11 17 0.79541 0.185425 0.667969
+17 11 18 0.746094 0.200562 0.765137
+17 11 19 0.685059 0.214478 0.850586
+17 11 20 0.614258 0.226196 0.921387
+17 11 21 0.519043 0.228394 0.952637
+17 11 22 0.41626 0.226318 0.962891
+17 11 23 0.312744 0.224487 0.969238
+17 11 24 0.190674 0.223145 0.974609
+17 11 25 0 0.222412 0.980469
+17 11 26 0 0.222168 0.987305
+17 11 27 0 0.222656 0.995605
+17 11 28 0 0.223999 1
+17 11 29 0 0.22583 1
+17 11 30 0 0.228027 1
+17 11 31 0 0.230713 1
+17 12 0 0.817871 0.0947266 0
+17 12 1 0.817871 0.0947266 0
+17 12 2 0.817871 0.0947266 0
+17 12 3 0.817871 0.0947876 0
+17 12 4 0.817871 0.0948486 0
+17 12 5 0.817871 0.0949707 0
+17 12 6 0.817871 0.0951538 0
+17 12 7 0.817871 0.0955811 0
+17 12 8 0.817871 0.0964355 0
+17 12 9 0.818359 0.0980835 0
+17 12 10 0.818359 0.100952 0
+17 12 11 0.820801 0.1026 0
+17 12 12 0.826172 0.0968628 0
+17 12 13 0.833984 0.0872192 0.187866
+17 12 14 0.841797 0.0859375 0.316162
+17 12 15 0.838867 0.125977 0.441162
+17 12 16 0.823242 0.207764 0.560547
+17 12 17 0.790039 0.230347 0.666992
+17 12 18 0.740234 0.240234 0.764648
+17 12 19 0.679199 0.249023 0.850098
+17 12 20 0.60791 0.256104 0.920898
+17 12 21 0.513184 0.253906 0.953125
+17 12 22 0.409424 0.247803 0.963379
+17 12 23 0.304199 0.242798 0.970215
+17 12 24 0.17749 0.239136 0.975586
+17 12 25 0 0.236328 0.981445
+17 12 26 0 0.234253 0.988281
+17 12 27 0 0.233154 0.996582
+17 12 28 0 0.233032 1
+17 12 29 0 0.233765 1
+17 12 30 0 0.234985 1
+17 12 31 0 0.236694 1
+17 13 0 0.820312 0.213013 0
+17 13 1 0.820312 0.213013 0
+17 13 2 0.820312 0.213013 0
+17 13 3 0.820312 0.213135 0
+17 13 4 0.820312 0.213135 0
+17 13 5 0.820312 0.213135 0
+17 13 6 0.820312 0.213257 0
+17 13 7 0.820312 0.213501 0
+17 13 8 0.820312 0.213867 0
+17 13 9 0.820312 0.2146 0
+17 13 10 0.820312 0.215942 0
+17 13 11 0.821777 0.217041 0
+17 13 12 0.825195 0.214966 0
+17 13 13 0.830078 0.211548 0.18335
+17 13 14 0.834961 0.209351 0.310547
+17 13 15 0.830078 0.220093 0.435791
+17 13 16 0.812988 0.270752 0.557617
+17 13 17 0.780273 0.287842 0.665039
+17 13 18 0.730957 0.29248 0.763184
+17 13 19 0.668945 0.296143 0.849609
+17 13 20 0.597656 0.29834 0.920898
+17 13 21 0.50293 0.290771 0.954102
+17 13 22 0.397705 0.279297 0.964844
+17 13 23 0.289795 0.270264 0.971191
+17 13 24 0.152954 0.263184 0.977051
+17 13 25 0 0.257324 0.98291
+17 13 26 0 0.25293 0.990234
+17 13 27 0 0.249512 0.998535
+17 13 28 0 0.247314 1
+17 13 29 0 0.246216 1
+17 13 30 0 0.24585 1
+17 13 31 0 0.246094 1
+17 14 0 0.820801 0.319092 0
+17 14 1 0.820801 0.319092 0
+17 14 2 0.820801 0.319092 0
+17 14 3 0.820801 0.319092 0
+17 14 4 0.820801 0.319092 0
+17 14 5 0.820801 0.319092 0
+17 14 6 0.820801 0.319092 0
+17 14 7 0.820801 0.319336 0
+17 14 8 0.820801 0.31958 0
+17 14 9 0.820801 0.320068 0
+17 14 10 0.820801 0.320801 0
+17 14 11 0.821289 0.321533 0
+17 14 12 0.821289 0.321289 0.0157776
+17 14 13 0.821777 0.320068 0.185059
+17 14 14 0.821289 0.317383 0.304199
+17 14 15 0.814453 0.317139 0.427002
+17 14 16 0.796387 0.344238 0.551758
+17 14 17 0.76416 0.358154 0.662109
+17 14 18 0.714844 0.358398 0.76123
+17 14 19 0.652832 0.356934 0.848145
+17 14 20 0.580566 0.35376 0.92041
+17 14 21 0.485352 0.340088 0.955566
+17 14 22 0.378174 0.32251 0.966309
+17 14 23 0.264648 0.30835 0.973145
+17 14 24 0.101807 0.297363 0.979492
+17 14 25 0 0.287842 0.98584
+17 14 26 0 0.280029 0.993164
+17 14 27 0 0.273438 1
+17 14 28 0 0.268555 1
+17 14 29 0 0.264893 1
+17 14 30 0 0.262207 1
+17 14 31 0 0.260254 1
+17 15 0 0.815918 0.42749 0
+17 15 1 0.815918 0.42749 0
+17 15 2 0.815918 0.42749 0
+17 15 3 0.815918 0.42749 0
+17 15 4 0.815918 0.42749 0
+17 15 5 0.815918 0.42749 0
+17 15 6 0.815918 0.42749 0
+17 15 7 0.815918 0.427734 0
+17 15 8 0.815918 0.427734 0
+17 15 9 0.815918 0.428223 0
+17 15 10 0.815918 0.428711 0
+17 15 11 0.815918 0.429443 0
+17 15 12 0.812988 0.429688 0.0645752
+17 15 13 0.808594 0.429443 0.199097
+17 15 14 0.800781 0.427734 0.306641
+17 15 15 0.787109 0.422607 0.416992
+17 15 16 0.76709 0.42749 0.540527
+17 15 17 0.738281 0.440674 0.65625
+17 15 18 0.688477 0.436768 0.757324
+17 15 19 0.626465 0.43042 0.845703
+17 15 20 0.553223 0.422363 0.918945
+17 15 21 0.456543 0.402832 0.957031
+17 15 22 0.344971 0.378174 0.96875
+17 15 23 0.21875 0.358398 0.976562
+17 15 24 0 0.342773 0.983398
+17 15 25 0 0.328857 0.990234
+17 15 26 0 0.316895 0.998047
+17 15 27 0 0.306641 1
+17 15 28 0 0.298096 1
+17 15 29 0 0.29126 1
+17 15 30 0 0.285156 1
+17 15 31 0 0.280029 1
+17 16 0 0.798828 0.543457 0
+17 16 1 0.798828 0.543457 0
+17 16 2 0.798828 0.543457 0
+17 16 3 0.798828 0.543457 0
+17 16 4 0.798828 0.543457 0
+17 16 5 0.798828 0.543457 0
+17 16 6 0.798828 0.543457 0
+17 16 7 0.798828 0.543457 0
+17 16 8 0.798828 0.543457 0
+17 16 9 0.798828 0.543945 0
+17 16 10 0.798828 0.544434 0
+17 16 11 0.798828 0.544922 0
+17 16 12 0.79541 0.544922 0.0731201
+17 16 13 0.788574 0.544922 0.20874
+17 16 14 0.776855 0.542969 0.31665
+17 16 15 0.755371 0.538086 0.420898
+17 16 16 0.722168 0.526367 0.524902
+17 16 17 0.696289 0.533691 0.646973
+17 16 18 0.646484 0.526855 0.75
+17 16 19 0.583496 0.516602 0.84082
+17 16 20 0.507812 0.503418 0.916016
+17 16 21 0.407959 0.47876 0.958496
+17 16 22 0.2854 0.447266 0.972168
+17 16 23 0.114624 0.421387 0.981934
+17 16 24 0 0.400635 0.989746
+17 16 25 0 0.381836 0.997559
+17 16 26 0 0.365234 1
+17 16 27 0 0.349854 1
+17 16 28 0 0.33667 1
+17 16 29 0 0.325195 1
+17 16 30 0 0.31543 1
+17 16 31 0 0.306885 1
+17 17 0 0.747559 0.657715 0
+17 17 1 0.747559 0.657715 0
+17 17 2 0.747559 0.657715 0
+17 17 3 0.747559 0.657715 0
+17 17 4 0.747559 0.657715 0
+17 17 5 0.747559 0.657715 0
+17 17 6 0.747559 0.657715 0
+17 17 7 0.747559 0.657715 0
+17 17 8 0.747559 0.658203 0
+17 17 9 0.747559 0.658203 0
+17 17 10 0.747559 0.658203 0
+17 17 11 0.747559 0.658691 0
+17 17 12 0.745117 0.65918 0
+17 17 13 0.73877 0.65918 0.173706
+17 17 14 0.728027 0.658203 0.299561
+17 17 15 0.708984 0.654785 0.414551
+17 17 16 0.678223 0.646484 0.526855
+17 17 17 0.631836 0.631836 0.631836
+17 17 18 0.581543 0.623047 0.738281
+17 17 19 0.515625 0.609863 0.832031
+17 17 20 0.43335 0.593262 0.909668
+17 17 21 0.322021 0.564453 0.95752
+17 17 22 0.158081 0.526367 0.975098
+17 17 23 0 0.494385 0.986816
+17 17 24 0 0.467773 0.995117
+17 17 25 0 0.443359 1
+17 17 26 0 0.420898 1
+17 17 27 0 0.400635 1
+17 17 28 0 0.382812 1
+17 17 29 0 0.366943 1
+17 17 30 0 0.353027 1
+17 17 31 0 0.34082 1
+17 18 0 0.64502 0.75 0
+17 18 1 0.64502 0.75 0
+17 18 2 0.64502 0.75 0
+17 18 3 0.64502 0.75 0
+17 18 4 0.64502 0.75 0
+17 18 5 0.64502 0.75 0
+17 18 6 0.64502 0.75 0
+17 18 7 0.64502 0.75 0
+17 18 8 0.64502 0.750488 0
+17 18 9 0.64502 0.750488 0
+17 18 10 0.64502 0.750488 0
+17 18 11 0.64502 0.750977 0
+17 18 12 0.643555 0.751465 0
+17 18 13 0.637207 0.750977 0.081665
+17 18 14 0.625977 0.75 0.252441
+17 18 15 0.607422 0.746582 0.378174
+17 18 16 0.57666 0.73877 0.496094
+17 18 17 0.535156 0.729004 0.609863
+17 18 18 0.480469 0.720215 0.720215
+17 18 19 0.405518 0.705566 0.817871
+17 18 20 0.302734 0.686035 0.898926
+17 18 21 0.118652 0.654297 0.952637
+17 18 22 0 0.612305 0.977051
+17 18 23 0 0.575195 0.992188
+17 18 24 0 0.542969 1
+17 18 25 0 0.513184 1
+17 18 26 0 0.485107 1
+17 18 27 0 0.459473 1
+17 18 28 0 0.436279 1
+17 18 29 0 0.415771 1
+17 18 30 0 0.397217 1
+17 18 31 0 0.380615 1
+17 19 0 0.503906 0.827637 0
+17 19 1 0.503906 0.827637 0
+17 19 2 0.503906 0.827637 0
+17 19 3 0.503906 0.827637 0
+17 19 4 0.503906 0.827637 0
+17 19 5 0.503906 0.827637 0
+17 19 6 0.503906 0.827637 0
+17 19 7 0.503906 0.827637 0
+17 19 8 0.503906 0.828125 0
+17 19 9 0.503906 0.828125 0
+17 19 10 0.503906 0.828125 0
+17 19 11 0.503906 0.828613 0
+17 19 12 0.503906 0.828613 0
+17 19 13 0.49707 0.829102 0
+17 19 14 0.484863 0.829102 0.18689
+17 19 15 0.464844 0.828125 0.332764
+17 19 16 0.432861 0.824707 0.460205
+17 19 17 0.384766 0.819824 0.581543
+17 19 18 0.310547 0.811523 0.695801
+17 19 19 0.182739 0.796875 0.797363
+17 19 20 0 0.776855 0.882812
+17 19 21 0 0.745605 0.944824
+17 19 22 0 0.703125 0.97998
+17 19 23 0 0.662598 1
+17 19 24 0 0.625488 1
+17 19 25 0 0.589844 1
+17 19 26 0 0.556152 1
+17 19 27 0 0.524902 1
+17 19 28 0 0.496094 1
+17 19 29 0 0.469971 1
+17 19 30 0 0.446533 1
+17 19 31 0 0.425293 1
+17 20 0 0.29248 0.897461 0
+17 20 1 0.29248 0.897461 0
+17 20 2 0.29248 0.897461 0
+17 20 3 0.29248 0.897461 0
+17 20 4 0.29248 0.897461 0
+17 20 5 0.292725 0.897461 0
+17 20 6 0.292725 0.897461 0
+17 20 7 0.292725 0.897461 0
+17 20 8 0.292725 0.897461 0
+17 20 9 0.292725 0.897461 0
+17 20 10 0.292725 0.897461 0
+17 20 11 0.292969 0.897461 0
+17 20 12 0.293213 0.897949 0
+17 20 13 0.2854 0.898926 0
+17 20 14 0.26416 0.900391 0.0805054
+17 20 15 0.22644 0.901367 0.280762
+17 20 16 0.152344 0.901367 0.419922
+17 20 17 0 0.899414 0.546875
+17 20 18 0 0.893066 0.665039
+17 20 19 0 0.879883 0.770996
+17 20 20 0 0.860352 0.860352
+17 20 21 0 0.833008 0.932617
+17 20 22 0 0.794434 0.980469
+17 20 23 0 0.752441 1
+17 20 24 0 0.712402 1
+17 20 25 0 0.671875 1
+17 20 26 0 0.632324 1
+17 20 27 0 0.594727 1
+17 20 28 0 0.560059 1
+17 20 29 0 0.52832 1
+17 20 30 0 0.499512 1
+17 20 31 0 0.473389 1
+17 21 0 0 0.959473 0
+17 21 1 0 0.959473 0
+17 21 2 0 0.959473 0
+17 21 3 0 0.959473 0
+17 21 4 0 0.959473 0
+17 21 5 0 0.959473 0
+17 21 6 0 0.959473 0
+17 21 7 0 0.959473 0
+17 21 8 0 0.959473 0
+17 21 9 0 0.959473 0
+17 21 10 0 0.959961 0
+17 21 11 0 0.959961 0
+17 21 12 0 0.959961 0
+17 21 13 0 0.960938 0
+17 21 14 0 0.962891 0
+17 21 15 0 0.965332 0.215332
+17 21 16 0 0.967773 0.373535
+17 21 17 0 0.967773 0.507324
+17 21 18 0 0.963867 0.629395
+17 21 19 0 0.953125 0.73877
+17 21 20 0 0.935547 0.83252
+17 21 21 0 0.912109 0.912109
+17 21 22 0 0.879883 0.973145
+17 21 23 0 0.84082 1
+17 21 24 0 0.799805 1
+17 21 25 0 0.756348 1
+17 21 26 0 0.712402 1
+17 21 27 0 0.669434 1
+17 21 28 0 0.628418 1
+17 21 29 0 0.59082 1
+17 21 30 0 0.556152 1
+17 21 31 0 0.524902 1
+17 22 0 0 1 0
+17 22 1 0 1 0
+17 22 2 0 1 0
+17 22 3 0 1 0
+17 22 4 0 1 0
+17 22 5 0 1 0
+17 22 6 0 1 0
+17 22 7 0 1 0
+17 22 8 0 1 0
+17 22 9 0 1 0
+17 22 10 0 1 0
+17 22 11 0 1 0
+17 22 12 0 1 0
+17 22 13 0 1 0
+17 22 14 0 1 0
+17 22 15 0 1 0.122192
+17 22 16 0 1 0.321045
+17 22 17 0 1 0.463379
+17 22 18 0 1 0.589355
+17 22 19 0 1 0.702148
+17 22 20 0 1 0.799805
+17 22 21 0 0.97998 0.883789
+17 22 22 0 0.953125 0.953125
+17 22 23 0 0.919922 1
+17 22 24 0 0.881836 1
+17 22 25 0 0.838379 1
+17 22 26 0 0.791992 1
+17 22 27 0 0.744629 1
+17 22 28 0 0.69873 1
+17 22 29 0 0.655762 1
+17 22 30 0 0.615234 1
+17 22 31 0 0.578613 1
+17 23 0 0 1 0
+17 23 1 0 1 0
+17 23 2 0 1 0
+17 23 3 0 1 0
+17 23 4 0 1 0
+17 23 5 0 1 0
+17 23 6 0 1 0
+17 23 7 0 1 0
+17 23 8 0 1 0
+17 23 9 0 1 0
+17 23 10 0 1 0
+17 23 11 0 1 0
+17 23 12 0 1 0
+17 23 13 0 1 0
+17 23 14 0 1 0
+17 23 15 0 1 0
+17 23 16 0 1 0.262939
+17 23 17 0 1 0.41748
+17 23 18 0 1 0.547852
+17 23 19 0 1 0.663574
+17 23 20 0 1 0.76416
+17 23 21 0 1 0.852051
+17 23 22 0 1 0.925781
+17 23 23 0 0.983887 0.984375
+17 23 24 0 0.95166 1
+17 23 25 0 0.911133 1
+17 23 26 0 0.865234 1
+17 23 27 0 0.815918 1
+17 23 28 0 0.76709 1
+17 23 29 0 0.719238 1
+17 23 30 0 0.673828 1
+17 23 31 0 0.631836 1
+17 24 0 0 1 0
+17 24 1 0 1 0
+17 24 2 0 1 0
+17 24 3 0 1 0
+17 24 4 0 1 0
+17 24 5 0 1 0
+17 24 6 0 1 0
+17 24 7 0 1 0
+17 24 8 0 1 0
+17 24 9 0 1 0
+17 24 10 0 1 0
+17 24 11 0 1 0
+17 24 12 0 1 0
+17 24 13 0 1 0
+17 24 14 0 1 0
+17 24 15 0 1 0
+17 24 16 0 1 0.194702
+17 24 17 0 1 0.370117
+17 24 18 0 1 0.505371
+17 24 19 0 1 0.623535
+17 24 20 0 1 0.727051
+17 24 21 0 1 0.817871
+17 24 22 0 1 0.89502
+17 24 23 0 1 0.958008
+17 24 24 0 1 1
+17 24 25 0 0.973145 1
+17 24 26 0 0.930176 1
+17 24 27 0 0.881836 1
+17 24 28 0 0.830566 1
+17 24 29 0 0.779785 1
+17 24 30 0 0.730957 1
+17 24 31 0 0.684082 1
+17 25 0 0 1 0
+17 25 1 0 1 0
+17 25 2 0 1 0
+17 25 3 0 1 0
+17 25 4 0 1 0
+17 25 5 0 1 0
+17 25 6 0 1 0
+17 25 7 0 1 0
+17 25 8 0 1 0
+17 25 9 0 1 0
+17 25 10 0 1 0
+17 25 11 0 1 0
+17 25 12 0 1 0
+17 25 13 0 1 0
+17 25 14 0 1 0
+17 25 15 0 1 0
+17 25 16 0 1 0.0839233
+17 25 17 0 1 0.314941
+17 25 18 0 1 0.458252
+17 25 19 0 1 0.579102
+17 25 20 0 1 0.68457
+17 25 21 0 1 0.77832
+17 25 22 0 1 0.858887
+17 25 23 0 1 0.925781
+17 25 24 0 1 0.980957
+17 25 25 0 1 1
+17 25 26 0 0.991699 1
+17 25 27 0 0.945801 1
+17 25 28 0 0.895508 1
+17 25 29 0 0.842773 1
+17 25 30 0 0.790527 1
+17 25 31 0 0.740234 1
+17 26 0 0 1 0
+17 26 1 0 1 0
+17 26 2 0 1 0
+17 26 3 0 1 0
+17 26 4 0 1 0
+17 26 5 0 1 0
+17 26 6 0 1 0
+17 26 7 0 1 0
+17 26 8 0 1 0
+17 26 9 0 1 0
+17 26 10 0 1 0
+17 26 11 0 1 0
+17 26 12 0 1 0
+17 26 13 0 1 0
+17 26 14 0 1 0
+17 26 15 0 1 0
+17 26 16 0 1 0
+17 26 17 0 1 0.248169
+17 26 18 0 1 0.405029
+17 26 19 0 1 0.529785
+17 26 20 0 1 0.637695
+17 26 21 0 1 0.733398
+17 26 22 0 1 0.817383
+17 26 23 0 1 0.887695
+17 26 24 0 1 0.946777
+17 26 25 0 1 1
+17 26 26 0 1 1
+17 26 27 0 1 1
+17 26 28 0 0.958496 1
+17 26 29 0 0.905762 1
+17 26 30 0 0.852051 1
+17 26 31 0 0.798828 1
+17 27 0 0 1 0
+17 27 1 0 1 0
+17 27 2 0 1 0
+17 27 3 0 1 0
+17 27 4 0 1 0
+17 27 5 0 1 0
+17 27 6 0 1 0
+17 27 7 0 1 0
+17 27 8 0 1 0
+17 27 9 0 1 0
+17 27 10 0 1 0
+17 27 11 0 1 0
+17 27 12 0 1 0
+17 27 13 0 1 0
+17 27 14 0 1 0
+17 27 15 0 1 0
+17 27 16 0 1 0
+17 27 17 0 1 0.157715
+17 27 18 0 1 0.345215
+17 27 19 0 1 0.476074
+17 27 20 0 1 0.585938
+17 27 21 0 1 0.683594
+17 27 22 0 1 0.77002
+17 27 23 0 1 0.843262
+17 27 24 0 1 0.905762
+17 27 25 0 1 0.963867
+17 27 26 0 1 1
+17 27 27 0 1 1
+17 27 28 0 1 1
+17 27 29 0 0.966797 1
+17 27 30 0 0.913086 1
+17 27 31 0 0.858398 1
+17 28 0 0 1 0
+17 28 1 0 1 0
+17 28 2 0 1 0
+17 28 3 0 1 0
+17 28 4 0 1 0
+17 28 5 0 1 0
+17 28 6 0 1 0
+17 28 7 0 1 0
+17 28 8 0 1 0
+17 28 9 0 1 0
+17 28 10 0 1 0
+17 28 11 0 1 0
+17 28 12 0 1 0
+17 28 13 0 1 0
+17 28 14 0 1 0
+17 28 15 0 1 0
+17 28 16 0 1 0
+17 28 17 0 1 0
+17 28 18 0 1 0.275635
+17 28 19 0 1 0.417236
+17 28 20 0 1 0.530273
+17 28 21 0 1 0.629395
+17 28 22 0 1 0.717285
+17 28 23 0 1 0.792969
+17 28 24 0 1 0.858398
+17 28 25 0 1 0.919922
+17 28 26 0 1 0.977051
+17 28 27 0 1 1
+17 28 28 0 1 1
+17 28 29 0 1 1
+17 28 30 0 0.972656 1
+17 28 31 0 0.917969 1
+17 29 0 0 1 0
+17 29 1 0 1 0
+17 29 2 0 1 0
+17 29 3 0 1 0
+17 29 4 0 1 0
+17 29 5 0 1 0
+17 29 6 0 1 0
+17 29 7 0 1 0
+17 29 8 0 1 0
+17 29 9 0 1 0
+17 29 10 0 1 0
+17 29 11 0 1 0
+17 29 12 0 1 0
+17 29 13 0 1 0
+17 29 14 0 1 0
+17 29 15 0 1 0
+17 29 16 0 1 0
+17 29 17 0 1 0
+17 29 18 0 1 0.186401
+17 29 19 0 1 0.351562
+17 29 20 0 1 0.469482
+17 29 21 0 1 0.570801
+17 29 22 0 1 0.660156
+17 29 23 0 1 0.737305
+17 29 24 0 1 0.804688
+17 29 25 0 1 0.869629
+17 29 26 0 1 0.930664
+17 29 27 0 1 0.986816
+17 29 28 0 1 1
+17 29 29 0 1 1
+17 29 30 0 1 1
+17 29 31 0 0.977051 1
+17 30 0 0 1 0
+17 30 1 0 1 0
+17 30 2 0 1 0
+17 30 3 0 1 0
+17 30 4 0 1 0
+17 30 5 0 1 0
+17 30 6 0 1 0
+17 30 7 0 1 0
+17 30 8 0 1 0
+17 30 9 0 1 0
+17 30 10 0 1 0
+17 30 11 0 1 0
+17 30 12 0 1 0
+17 30 13 0 1 0
+17 30 14 0 1 0
+17 30 15 0 1 0
+17 30 16 0 1 0
+17 30 17 0 1 0
+17 30 18 0 1 0.000965595
+17 30 19 0 1 0.276123
+17 30 20 0 1 0.404053
+17 30 21 0 1 0.507812
+17 30 22 0 1 0.598633
+17 30 23 0 1 0.676758
+17 30 24 0 1 0.745605
+17 30 25 0 1 0.8125
+17 30 26 0 1 0.876953
+17 30 27 0 1 0.9375
+17 30 28 0 1 0.992676
+17 30 29 0 1 1
+17 30 30 0 1 1
+17 30 31 0 1 1
+17 31 0 0 1 0
+17 31 1 0 1 0
+17 31 2 0 1 0
+17 31 3 0 1 0
+17 31 4 0 1 0
+17 31 5 0 1 0
+17 31 6 0 1 0
+17 31 7 0 1 0
+17 31 8 0 1 0
+17 31 9 0 1 0
+17 31 10 0 1 0
+17 31 11 0 1 0
+17 31 12 0 1 0
+17 31 13 0 1 0
+17 31 14 0 1 0
+17 31 15 0 1 0
+17 31 16 0 1 0
+17 31 17 0 1 0
+17 31 18 0 1 0
+17 31 19 0 1 0.180664
+17 31 20 0 1 0.331787
+17 31 21 0 1 0.440918
+17 31 22 0 1 0.533203
+17 31 23 0 1 0.612305
+17 31 24 0 1 0.682129
+17 31 25 0 1 0.750488
+17 31 26 0 1 0.817383
+17 31 27 0 1 0.882324
+17 31 28 0 1 0.942871
+17 31 29 0 1 0.998047
+17 31 30 0 1 1
+17 31 31 0 1 1
+18 0 0 0.881348 0 0
+18 0 1 0.881348 0 0
+18 0 2 0.881348 0 0
+18 0 3 0.881348 0 0
+18 0 4 0.881348 0 0
+18 0 5 0.881348 0 0
+18 0 6 0.881348 0 0
+18 0 7 0.881348 0 0
+18 0 8 0.881836 0 0
+18 0 9 0.881836 0 0
+18 0 10 0.881836 0 0
+18 0 11 0.882812 0 0
+18 0 12 0.888184 0 0
+18 0 13 0.897949 0 0.119019
+18 0 14 0.912109 0 0.26123
+18 0 15 0.92627 0 0.389404
+18 0 16 0.942871 0 0.525391
+18 0 17 0.94043 0.0569153 0.650879
+18 0 18 0.902832 0.115662 0.753418
+18 0 19 0.850098 0.146362 0.842773
+18 0 20 0.787598 0.170654 0.916992
+18 0 21 0.705078 0.186279 0.960938
+18 0 22 0.613281 0.19458 0.980469
+18 0 23 0.525879 0.199341 0.989746
+18 0 24 0.442383 0.202637 0.995117
+18 0 25 0.35083 0.205322 1
+18 0 26 0.237793 0.207886 1
+18 0 27 0 0.210449 1
+18 0 28 0 0.213379 1
+18 0 29 0 0.216553 1
+18 0 30 0 0.219971 1
+18 0 31 0 0.223511 1
+18 1 0 0.881348 0 0
+18 1 1 0.881348 0 0
+18 1 2 0.881348 0 0
+18 1 3 0.881348 0 0
+18 1 4 0.881348 0 0
+18 1 5 0.881348 0 0
+18 1 6 0.881348 0 0
+18 1 7 0.881348 0 0
+18 1 8 0.881836 0 0
+18 1 9 0.881836 0 0
+18 1 10 0.881836 0 0
+18 1 11 0.882812 0 0
+18 1 12 0.888184 0 0
+18 1 13 0.897949 0 0.118958
+18 1 14 0.912109 0 0.26123
+18 1 15 0.92627 0 0.389404
+18 1 16 0.942871 0 0.525391
+18 1 17 0.94043 0.0570679 0.650879
+18 1 18 0.902832 0.115784 0.753418
+18 1 19 0.850098 0.146484 0.842773
+18 1 20 0.787598 0.170776 0.916992
+18 1 21 0.705078 0.186279 0.960938
+18 1 22 0.613281 0.19458 0.980469
+18 1 23 0.525879 0.199463 0.989746
+18 1 24 0.442383 0.202637 0.995117
+18 1 25 0.35083 0.205322 1
+18 1 26 0.237793 0.207886 1
+18 1 27 0 0.210449 1
+18 1 28 0 0.213379 1
+18 1 29 0 0.216553 1
+18 1 30 0 0.219971 1
+18 1 31 0 0.223511 1
+18 2 0 0.881348 0 0
+18 2 1 0.881348 0 0
+18 2 2 0.881348 0 0
+18 2 3 0.881348 0 0
+18 2 4 0.881348 0 0
+18 2 5 0.881348 0 0
+18 2 6 0.881348 0 0
+18 2 7 0.881348 0 0
+18 2 8 0.881836 0 0
+18 2 9 0.881836 0 0
+18 2 10 0.881836 0 0
+18 2 11 0.882812 0 0
+18 2 12 0.888184 0 0
+18 2 13 0.897949 0 0.118958
+18 2 14 0.912109 0 0.26123
+18 2 15 0.92627 0 0.389404
+18 2 16 0.942871 0 0.525391
+18 2 17 0.94043 0.0573425 0.650879
+18 2 18 0.902832 0.115906 0.753418
+18 2 19 0.850098 0.146484 0.842773
+18 2 20 0.787598 0.170776 0.916992
+18 2 21 0.705078 0.186401 0.960938
+18 2 22 0.613281 0.19458 0.980469
+18 2 23 0.525879 0.199463 0.989746
+18 2 24 0.442383 0.202637 0.995117
+18 2 25 0.350586 0.205444 1
+18 2 26 0.237793 0.207886 1
+18 2 27 0 0.210449 1
+18 2 28 0 0.213379 1
+18 2 29 0 0.216553 1
+18 2 30 0 0.219971 1
+18 2 31 0 0.223633 1
+18 3 0 0.881348 0 0
+18 3 1 0.881348 0 0
+18 3 2 0.881348 0 0
+18 3 3 0.881348 0 0
+18 3 4 0.881348 0 0
+18 3 5 0.881348 0 0
+18 3 6 0.881348 0 0
+18 3 7 0.881836 0 0
+18 3 8 0.881836 0 0
+18 3 9 0.881836 0 0
+18 3 10 0.881836 0 0
+18 3 11 0.882812 0 0
+18 3 12 0.888184 0 0
+18 3 13 0.897949 0 0.118958
+18 3 14 0.912109 0 0.26123
+18 3 15 0.92627 0 0.389404
+18 3 16 0.942871 0 0.525391
+18 3 17 0.94043 0.0578308 0.650879
+18 3 18 0.902832 0.116211 0.753418
+18 3 19 0.849609 0.146729 0.842773
+18 3 20 0.787598 0.171021 0.916992
+18 3 21 0.705078 0.186523 0.960938
+18 3 22 0.613281 0.194702 0.980469
+18 3 23 0.525879 0.199585 0.989746
+18 3 24 0.442383 0.202759 0.995117
+18 3 25 0.350586 0.205444 1
+18 3 26 0.237793 0.208008 1
+18 3 27 0 0.210571 1
+18 3 28 0 0.213379 1
+18 3 29 0 0.216553 1
+18 3 30 0 0.219971 1
+18 3 31 0 0.223633 1
+18 4 0 0.881348 0 0
+18 4 1 0.881348 0 0
+18 4 2 0.881348 0 0
+18 4 3 0.881348 0 0
+18 4 4 0.881348 0 0
+18 4 5 0.881348 0 0
+18 4 6 0.881836 0 0
+18 4 7 0.881836 0 0
+18 4 8 0.881836 0 0
+18 4 9 0.881836 0 0
+18 4 10 0.881836 0 0
+18 4 11 0.882812 0 0
+18 4 12 0.888184 0 0
+18 4 13 0.897949 0 0.118896
+18 4 14 0.912109 0 0.26123
+18 4 15 0.92627 0 0.389404
+18 4 16 0.942871 0 0.525391
+18 4 17 0.94043 0.0587769 0.650879
+18 4 18 0.902832 0.116699 0.753418
+18 4 19 0.849609 0.147095 0.842773
+18 4 20 0.787598 0.171265 0.916992
+18 4 21 0.705078 0.186768 0.960938
+18 4 22 0.613281 0.194946 0.980469
+18 4 23 0.525879 0.199707 0.989746
+18 4 24 0.442383 0.202881 0.995117
+18 4 25 0.350586 0.205566 1
+18 4 26 0.237671 0.208008 1
+18 4 27 0 0.210571 1
+18 4 28 0 0.213501 1
+18 4 29 0 0.216675 1
+18 4 30 0 0.220093 1
+18 4 31 0 0.223633 1
+18 5 0 0.881836 0 0
+18 5 1 0.881836 0 0
+18 5 2 0.881836 0 0
+18 5 3 0.881836 0 0
+18 5 4 0.881836 0 0
+18 5 5 0.881836 0 0
+18 5 6 0.881836 0 0
+18 5 7 0.881836 0 0
+18 5 8 0.881836 0 0
+18 5 9 0.881836 0 0
+18 5 10 0.881836 0 0
+18 5 11 0.882812 0 0
+18 5 12 0.888184 0 0
+18 5 13 0.897949 0 0.118774
+18 5 14 0.912109 0 0.26123
+18 5 15 0.92627 0 0.38916
+18 5 16 0.942871 0 0.525391
+18 5 17 0.94043 0.0605469 0.650879
+18 5 18 0.902832 0.117676 0.753418
+18 5 19 0.849609 0.147827 0.842773
+18 5 20 0.787598 0.171875 0.916992
+18 5 21 0.705078 0.187134 0.960938
+18 5 22 0.613281 0.195312 0.980469
+18 5 23 0.525879 0.199951 0.989746
+18 5 24 0.442139 0.203125 0.995117
+18 5 25 0.350586 0.205811 1
+18 5 26 0.237671 0.208252 1
+18 5 27 0 0.210693 1
+18 5 28 0 0.213623 1
+18 5 29 0 0.216797 1
+18 5 30 0 0.220093 1
+18 5 31 0 0.223755 1
+18 6 0 0.881836 0 0
+18 6 1 0.881836 0 0
+18 6 2 0.881836 0 0
+18 6 3 0.881836 0 0
+18 6 4 0.881836 0 0
+18 6 5 0.881836 0 0
+18 6 6 0.881836 0 0
+18 6 7 0.881836 0 0
+18 6 8 0.881836 0 0
+18 6 9 0.881836 0 0
+18 6 10 0.882324 0 0
+18 6 11 0.882812 0 0
+18 6 12 0.888184 0 0
+18 6 13 0.897949 0 0.118591
+18 6 14 0.912109 0 0.260986
+18 6 15 0.92627 0 0.38916
+18 6 16 0.942383 0 0.525391
+18 6 17 0.939941 0.0638428 0.650879
+18 6 18 0.902344 0.119507 0.753418
+18 6 19 0.849609 0.14917 0.842773
+18 6 20 0.787109 0.172974 0.916992
+18 6 21 0.705078 0.187988 0.960938
+18 6 22 0.612793 0.195923 0.980469
+18 6 23 0.525391 0.200562 0.989746
+18 6 24 0.442139 0.203613 0.995117
+18 6 25 0.350342 0.206177 1
+18 6 26 0.237427 0.208618 1
+18 6 27 0 0.21106 1
+18 6 28 0 0.213867 1
+18 6 29 0 0.216919 1
+18 6 30 0 0.220337 1
+18 6 31 0 0.223877 1
+18 7 0 0.881836 0 0
+18 7 1 0.881836 0 0
+18 7 2 0.881836 0 0
+18 7 3 0.881836 0 0
+18 7 4 0.881836 0 0
+18 7 5 0.881836 0 0
+18 7 6 0.881836 0 0
+18 7 7 0.881836 0 0
+18 7 8 0.881836 0 0
+18 7 9 0.882324 0 0
+18 7 10 0.882324 0 0
+18 7 11 0.883301 0 0
+18 7 12 0.888184 0 0
+18 7 13 0.897949 0 0.118225
+18 7 14 0.912109 0 0.260986
+18 7 15 0.92627 0 0.38916
+18 7 16 0.942383 0 0.525391
+18 7 17 0.939941 0.0698242 0.650879
+18 7 18 0.902344 0.122986 0.753418
+18 7 19 0.849609 0.151855 0.842773
+18 7 20 0.787109 0.175049 0.916992
+18 7 21 0.70459 0.189697 0.961426
+18 7 22 0.612793 0.197266 0.980469
+18 7 23 0.525391 0.20166 0.989746
+18 7 24 0.441895 0.20459 0.995117
+18 7 25 0.350098 0.206909 1
+18 7 26 0.237061 0.209229 1
+18 7 27 0 0.21167 1
+18 7 28 0 0.214355 1
+18 7 29 0 0.217407 1
+18 7 30 0 0.220703 1
+18 7 31 0 0.224243 1
+18 8 0 0.882324 0 0
+18 8 1 0.882324 0 0
+18 8 2 0.882324 0 0
+18 8 3 0.882324 0 0
+18 8 4 0.882324 0 0
+18 8 5 0.882324 0 0
+18 8 6 0.882324 0 0
+18 8 7 0.882324 0 0
+18 8 8 0.882324 0 0
+18 8 9 0.882324 0 0
+18 8 10 0.882812 0 0
+18 8 11 0.883789 0 0
+18 8 12 0.888672 0 0
+18 8 13 0.897949 0 0.117554
+18 8 14 0.912109 0 0.260742
+18 8 15 0.925781 0 0.388672
+18 8 16 0.941895 0 0.524902
+18 8 17 0.939453 0.0806274 0.650879
+18 8 18 0.901855 0.129639 0.753418
+18 8 19 0.849121 0.15686 0.842773
+18 8 20 0.786621 0.179077 0.916992
+18 8 21 0.704102 0.192871 0.961426
+18 8 22 0.612305 0.199951 0.980469
+18 8 23 0.524902 0.203857 0.989746
+18 8 24 0.441406 0.206421 0.995605
+18 8 25 0.349609 0.208496 1
+18 8 26 0.236328 0.210571 1
+18 8 27 0 0.212769 1
+18 8 28 0 0.215332 1
+18 8 29 0 0.21814 1
+18 8 30 0 0.221436 1
+18 8 31 0 0.224731 1
+18 9 0 0.882812 0 0
+18 9 1 0.882812 0 0
+18 9 2 0.882812 0 0
+18 9 3 0.882812 0 0
+18 9 4 0.882812 0 0
+18 9 5 0.882812 0 0
+18 9 6 0.882812 0 0
+18 9 7 0.882812 0 0
+18 9 8 0.883301 0 0
+18 9 9 0.883301 0 0
+18 9 10 0.883301 0 0
+18 9 11 0.884277 0 0
+18 9 12 0.88916 0 0
+18 9 13 0.897949 0 0.116272
+18 9 14 0.912109 0 0.260498
+18 9 15 0.925293 0 0.388184
+18 9 16 0.940918 0 0.524414
+18 9 17 0.938477 0.0983887 0.650391
+18 9 18 0.901367 0.141357 0.753418
+18 9 19 0.848145 0.166138 0.842773
+18 9 20 0.786133 0.186401 0.916992
+18 9 21 0.703613 0.198975 0.961426
+18 9 22 0.611816 0.204712 0.980469
+18 9 23 0.523926 0.207886 0.989746
+18 9 24 0.440674 0.209839 0.995605
+18 9 25 0.348633 0.211426 1
+18 9 26 0.234863 0.213013 1
+18 9 27 0 0.214844 1
+18 9 28 0 0.217041 1
+18 9 29 0 0.219727 1
+18 9 30 0 0.222656 1
+18 9 31 0 0.225952 1
+18 10 0 0.884277 0 0
+18 10 1 0.884277 0 0
+18 10 2 0.884277 0 0
+18 10 3 0.884277 0 0
+18 10 4 0.884277 0 0
+18 10 5 0.884277 0 0
+18 10 6 0.884277 0 0
+18 10 7 0.884277 0 0
+18 10 8 0.884277 0 0
+18 10 9 0.884277 0 0
+18 10 10 0.884766 0 0
+18 10 11 0.885254 0 0
+18 10 12 0.890137 0 0
+18 10 13 0.898438 0 0.114075
+18 10 14 0.912109 0 0.26001
+18 10 15 0.924316 0 0.387207
+18 10 16 0.939453 0 0.523926
+18 10 17 0.937012 0.124878 0.650391
+18 10 18 0.899902 0.160645 0.75293
+18 10 19 0.84668 0.181641 0.842285
+18 10 20 0.784668 0.199219 0.916992
+18 10 21 0.702148 0.209351 0.961426
+18 10 22 0.610352 0.213257 0.980469
+18 10 23 0.522461 0.214966 0.990234
+18 10 24 0.438965 0.215942 0.995605
+18 10 25 0.34668 0.216553 1
+18 10 26 0.2323 0.217407 1
+18 10 27 0 0.218628 1
+18 10 28 0 0.220337 1
+18 10 29 0 0.222534 1
+18 10 30 0 0.225098 1
+18 10 31 0 0.228027 1
+18 11 0 0.88623 0 0
+18 11 1 0.88623 0 0
+18 11 2 0.88623 0 0
+18 11 3 0.88623 0 0
+18 11 4 0.88623 0 0
+18 11 5 0.88623 0 0
+18 11 6 0.886719 0 0
+18 11 7 0.886719 0 0
+18 11 8 0.886719 0 0
+18 11 9 0.886719 0 0
+18 11 10 0.886719 0 0
+18 11 11 0.887695 0 0
+18 11 12 0.891602 0 0
+18 11 13 0.898926 0 0.110596
+18 11 14 0.911133 0 0.257812
+18 11 15 0.922363 0 0.385498
+18 11 16 0.936523 0 0.522461
+18 11 17 0.93457 0.161255 0.649414
+18 11 18 0.896973 0.189453 0.75293
+18 11 19 0.844238 0.205811 0.842285
+18 11 20 0.781738 0.219604 0.916504
+18 11 21 0.699707 0.22644 0.961426
+18 11 22 0.607422 0.227417 0.980469
+18 11 23 0.52002 0.226929 0.990234
+18 11 24 0.436035 0.226074 0.995605
+18 11 25 0.343506 0.225342 1
+18 11 26 0.227661 0.224976 1
+18 11 27 0 0.225098 1
+18 11 28 0 0.225952 1
+18 11 29 0 0.227295 1
+18 11 30 0 0.229248 1
+18 11 31 0 0.231567 1
+18 12 0 0.890137 0 0
+18 12 1 0.890137 0 0
+18 12 2 0.890137 0 0
+18 12 3 0.890137 0 0
+18 12 4 0.890137 0 0
+18 12 5 0.890137 0 0
+18 12 6 0.890137 0 0
+18 12 7 0.890137 0 0
+18 12 8 0.890137 0 0
+18 12 9 0.890137 0 0
+18 12 10 0.890625 0 0
+18 12 11 0.891113 0 0
+18 12 12 0.894043 0 0
+18 12 13 0.899902 0 0.105957
+18 12 14 0.909668 0 0.253906
+18 12 15 0.919434 0 0.382568
+18 12 16 0.931152 0.111633 0.519531
+18 12 17 0.929688 0.20874 0.647949
+18 12 18 0.893066 0.230103 0.751953
+18 12 19 0.839844 0.241089 0.841797
+18 12 20 0.777832 0.250244 0.916504
+18 12 21 0.695801 0.252686 0.961426
+18 12 22 0.603027 0.249634 0.980957
+18 12 23 0.515625 0.24585 0.990234
+18 12 24 0.431152 0.242554 0.996094
+18 12 25 0.337646 0.239624 1
+18 12 26 0.219604 0.237305 1
+18 12 27 0 0.235718 1
+18 12 28 0 0.235107 1
+18 12 29 0 0.235352 1
+18 12 30 0 0.236206 1
+18 12 31 0 0.237549 1
+18 13 0 0.895508 0.158081 0
+18 13 1 0.895508 0.158081 0
+18 13 2 0.895508 0.158081 0
+18 13 3 0.895508 0.158081 0
+18 13 4 0.895508 0.158203 0
+18 13 5 0.895996 0.158203 0
+18 13 6 0.895996 0.158325 0
+18 13 7 0.895996 0.158569 0
+18 13 8 0.895996 0.159058 0
+18 13 9 0.895996 0.159912 0
+18 13 10 0.895996 0.161499 0
+18 13 11 0.896484 0.164062 0
+18 13 12 0.898438 0.16272 0
+18 13 13 0.901367 0.156982 0.102112
+18 13 14 0.907227 0.150879 0.249146
+18 13 15 0.914551 0.154419 0.378662
+18 13 16 0.922363 0.199341 0.514648
+18 13 17 0.921875 0.267334 0.645996
+18 13 18 0.885742 0.282959 0.750977
+18 13 19 0.833008 0.288818 0.84082
+18 13 20 0.770508 0.292969 0.916016
+18 13 21 0.688477 0.290039 0.961914
+18 13 22 0.596191 0.281738 0.980957
+18 13 23 0.507812 0.273926 0.990723
+18 13 24 0.422852 0.26709 0.996582
+18 13 25 0.328125 0.260986 1
+18 13 26 0.205322 0.256104 1
+18 13 27 0 0.252197 1
+18 13 28 0 0.249512 1
+18 13 29 0 0.247803 1
+18 13 30 0 0.24707 1
+18 13 31 0 0.24707 1
+18 14 0 0.90332 0.273682 0
+18 14 1 0.90332 0.273682 0
+18 14 2 0.90332 0.273682 0
+18 14 3 0.90332 0.273682 0
+18 14 4 0.90332 0.273682 0
+18 14 5 0.90332 0.273926 0
+18 14 6 0.90332 0.273926 0
+18 14 7 0.90332 0.273926 0
+18 14 8 0.90332 0.27417 0
+18 14 9 0.903809 0.274658 0
+18 14 10 0.903809 0.275635 0
+18 14 11 0.903809 0.277344 0
+18 14 12 0.904297 0.276123 0
+18 14 13 0.904297 0.273682 0.105347
+18 14 14 0.904785 0.269531 0.246704
+18 14 15 0.906738 0.269043 0.373535
+18 14 16 0.907715 0.286133 0.506836
+18 14 17 0.908691 0.337158 0.641602
+18 14 18 0.873535 0.348877 0.748535
+18 14 19 0.820801 0.349854 0.839355
+18 14 20 0.758301 0.348633 0.915039
+18 14 21 0.676758 0.340088 0.961914
+18 14 22 0.583984 0.325684 0.981445
+18 14 23 0.495117 0.3125 0.991211
+18 14 24 0.40918 0.301514 0.997559
+18 14 25 0.311768 0.291748 1
+18 14 26 0.179932 0.283447 1
+18 14 27 0 0.276367 1
+18 14 28 0 0.270752 1
+18 14 29 0 0.266602 1
+18 14 30 0 0.263428 1
+18 14 31 0 0.261475 1
+18 15 0 0.911133 0.386475 0
+18 15 1 0.911133 0.386475 0
+18 15 2 0.911133 0.386475 0
+18 15 3 0.911133 0.386475 0
+18 15 4 0.911133 0.386475 0
+18 15 5 0.911133 0.386475 0
+18 15 6 0.911133 0.386475 0
+18 15 7 0.911133 0.386475 0
+18 15 8 0.911133 0.386719 0
+18 15 9 0.911133 0.387207 0
+18 15 10 0.911621 0.387695 0
+18 15 11 0.911621 0.388672 0
+18 15 12 0.910156 0.388672 0
+18 15 13 0.907227 0.387695 0.123596
+18 15 14 0.902344 0.38501 0.252686
+18 15 15 0.894043 0.379883 0.368896
+18 15 16 0.885742 0.381348 0.495361
+18 15 17 0.885742 0.416504 0.633789
+18 15 18 0.854004 0.427002 0.744629
+18 15 19 0.801758 0.42334 0.836426
+18 15 20 0.739258 0.41748 0.913574
+18 15 21 0.658203 0.402832 0.961914
+18 15 22 0.564453 0.381836 0.981445
+18 15 23 0.475098 0.363037 0.992188
+18 15 24 0.387207 0.347168 0.999023
+18 15 25 0.284668 0.333008 1
+18 15 26 0.130615 0.320312 1
+18 15 27 0 0.309326 1
+18 15 28 0 0.300293 1
+18 15 29 0 0.292969 1
+18 15 30 0 0.286865 1
+18 15 31 0 0.282227 1
+18 16 0 0.913086 0.505371 0
+18 16 1 0.913086 0.505371 0
+18 16 2 0.913086 0.505371 0
+18 16 3 0.913086 0.505371 0
+18 16 4 0.913086 0.505371 0
+18 16 5 0.913086 0.505371 0
+18 16 6 0.913086 0.505371 0
+18 16 7 0.913086 0.505371 0
+18 16 8 0.913086 0.505859 0
+18 16 9 0.913086 0.505859 0
+18 16 10 0.913086 0.506348 0
+18 16 11 0.913086 0.507324 0
+18 16 12 0.911621 0.507812 0
+18 16 13 0.906738 0.507324 0.14917
+18 16 14 0.898438 0.505859 0.269287
+18 16 15 0.882812 0.501465 0.377441
+18 16 16 0.858887 0.491699 0.487061
+18 16 17 0.847168 0.502441 0.617676
+18 16 18 0.823242 0.516113 0.737305
+18 16 19 0.770996 0.508789 0.831543
+18 16 20 0.708984 0.498535 0.909668
+18 16 21 0.628418 0.478271 0.960449
+18 16 22 0.53418 0.450195 0.980957
+18 16 23 0.442871 0.425293 0.993164
+18 16 24 0.35083 0.404541 1
+18 16 25 0.236816 0.385498 1
+18 16 26 0 0.368164 1
+18 16 27 0 0.352783 1
+18 16 28 0 0.3396 1
+18 16 29 0 0.328369 1
+18 16 30 0 0.318604 1
+18 16 31 0 0.310303 1
+18 17 0 0.894531 0.626465 0
+18 17 1 0.894531 0.626465 0
+18 17 2 0.894531 0.626465 0
+18 17 3 0.894531 0.626465 0
+18 17 4 0.894531 0.626465 0
+18 17 5 0.894531 0.626465 0
+18 17 6 0.894531 0.626465 0
+18 17 7 0.894531 0.626465 0
+18 17 8 0.894531 0.626465 0
+18 17 9 0.894531 0.626953 0
+18 17 10 0.894531 0.626953 0
+18 17 11 0.894531 0.62793 0
+18 17 12 0.893555 0.628418 0
+18 17 13 0.88916 0.628418 0.145264
+18 17 14 0.880859 0.628418 0.274902
+18 17 15 0.866211 0.625977 0.388916
+18 17 16 0.839355 0.618164 0.498535
+18 17 17 0.796875 0.601074 0.600098
+18 17 18 0.776367 0.612305 0.726074
+18 17 19 0.725098 0.602051 0.822266
+18 17 20 0.662598 0.587891 0.90332
+18 17 21 0.582031 0.5625 0.956543
+18 17 22 0.486816 0.52832 0.980469
+18 17 23 0.391846 0.498047 0.995605
+18 17 24 0.290039 0.472168 1
+18 17 25 0.13916 0.448242 1
+18 17 26 0 0.426025 1
+18 17 27 0 0.406006 1
+18 17 28 0 0.387939 1
+18 17 29 0 0.371582 1
+18 17 30 0 0.356934 1
+18 17 31 0 0.344238 1
+18 18 0 0.837402 0.737793 0
+18 18 1 0.837402 0.737793 0
+18 18 2 0.837402 0.737793 0
+18 18 3 0.837402 0.737793 0
+18 18 4 0.837402 0.737793 0
+18 18 5 0.837402 0.737793 0
+18 18 6 0.837402 0.737793 0
+18 18 7 0.837402 0.737793 0
+18 18 8 0.837402 0.737793 0
+18 18 9 0.837402 0.737793 0
+18 18 10 0.837402 0.738281 0
+18 18 11 0.837402 0.73877 0
+18 18 12 0.837402 0.739258 0
+18 18 13 0.833008 0.739746 0.0565491
+18 18 14 0.826172 0.739746 0.242554
+18 18 15 0.812988 0.73877 0.37085
+18 18 16 0.791504 0.734375 0.491455
+18 18 17 0.757324 0.725098 0.605957
+18 18 18 0.708984 0.708984 0.708984
+18 18 19 0.657715 0.697266 0.808594
+18 18 20 0.594238 0.680664 0.89209
+18 18 21 0.512207 0.651367 0.949707
+18 18 22 0.413574 0.612793 0.979492
+18 18 23 0.306885 0.578125 0.998047
+18 18 24 0.169189 0.547363 1
+18 18 25 0 0.517578 1
+18 18 26 0 0.48999 1
+18 18 27 0 0.464355 1
+18 18 28 0 0.440918 1
+18 18 29 0 0.419922 1
+18 18 30 0 0.400879 1
+18 18 31 0 0.383789 1
+18 19 0 0.737305 0.824707 0
+18 19 1 0.737305 0.824707 0
+18 19 2 0.737305 0.824707 0
+18 19 3 0.737305 0.824707 0
+18 19 4 0.737305 0.824707 0
+18 19 5 0.737305 0.824707 0
+18 19 6 0.737305 0.824707 0
+18 19 7 0.737305 0.824707 0
+18 19 8 0.737305 0.825195 0
+18 19 9 0.737305 0.825195 0
+18 19 10 0.737305 0.825195 0
+18 19 11 0.737305 0.825195 0
+18 19 12 0.737305 0.825684 0
+18 19 13 0.734375 0.82666 0
+18 19 14 0.726562 0.82666 0.177856
+18 19 15 0.713867 0.825684 0.328125
+18 19 16 0.692383 0.821777 0.456299
+18 19 17 0.65918 0.8125 0.574707
+18 19 18 0.615723 0.800781 0.686035
+18 19 19 0.5625 0.788574 0.788574
+18 19 20 0.494629 0.770996 0.875977
+18 19 21 0.405029 0.740723 0.939453
+18 19 22 0.289551 0.700684 0.976562
+18 19 23 0.115234 0.661621 1
+18 19 24 0 0.626465 1
+18 19 25 0 0.592285 1
+18 19 26 0 0.559082 1
+18 19 27 0 0.52832 1
+18 19 28 0 0.499512 1
+18 19 29 0 0.473389 1
+18 19 30 0 0.449707 1
+18 19 31 0 0.428223 1
+18 20 0 0.609863 0.894531 0
+18 20 1 0.609863 0.894531 0
+18 20 2 0.609863 0.894531 0
+18 20 3 0.609863 0.894531 0
+18 20 4 0.609863 0.894531 0
+18 20 5 0.609863 0.894531 0
+18 20 6 0.609863 0.894531 0
+18 20 7 0.609863 0.894531 0
+18 20 8 0.609863 0.894531 0
+18 20 9 0.609863 0.894531 0
+18 20 10 0.609863 0.89502 0
+18 20 11 0.609863 0.89502 0
+18 20 12 0.609863 0.895508 0
+18 20 13 0.60791 0.895996 0
+18 20 14 0.599609 0.896973 0.06073
+18 20 15 0.586426 0.896973 0.274414
+18 20 16 0.564453 0.89502 0.414307
+18 20 17 0.531738 0.890137 0.540039
+18 20 18 0.486328 0.882812 0.656738
+18 20 19 0.423828 0.871582 0.763184
+18 20 20 0.338623 0.854492 0.854492
+18 20 21 0.206299 0.828125 0.927734
+18 20 22 0 0.790039 0.976074
+18 20 23 0 0.749512 1
+18 20 24 0 0.710449 1
+18 20 25 0 0.671387 1
+18 20 26 0 0.632812 1
+18 20 27 0 0.596191 1
+18 20 28 0 0.562012 1
+18 20 29 0 0.530762 1
+18 20 30 0 0.501953 1
+18 20 31 0 0.475586 1
+18 21 0 0.445068 0.958496 0
+18 21 1 0.445068 0.958496 0
+18 21 2 0.445068 0.958496 0
+18 21 3 0.445068 0.958496 0
+18 21 4 0.445068 0.958496 0
+18 21 5 0.445068 0.958496 0
+18 21 6 0.445068 0.958496 0
+18 21 7 0.445068 0.958496 0
+18 21 8 0.445068 0.958496 0
+18 21 9 0.445068 0.958496 0
+18 21 10 0.445068 0.958496 0
+18 21 11 0.445312 0.958496 0
+18 21 12 0.445312 0.958984 0
+18 21 13 0.445068 0.959473 0
+18 21 14 0.434082 0.960449 0
+18 21 15 0.41626 0.960938 0.208252
+18 21 16 0.387695 0.960938 0.36792
+18 21 17 0.343018 0.959473 0.500977
+18 21 18 0.271973 0.955078 0.622559
+18 21 19 0.137817 0.945801 0.732422
+18 21 20 0 0.930176 0.827148
+18 21 21 0 0.908203 0.908203
+18 21 22 0 0.876953 0.969727
+18 21 23 0 0.838379 1
+18 21 24 0 0.797852 1
+18 21 25 0 0.754883 1
+18 21 26 0 0.711426 1
+18 21 27 0 0.669434 1
+18 21 28 0 0.629395 1
+18 21 29 0 0.592285 1
+18 21 30 0 0.557617 1
+18 21 31 0 0.526367 1
+18 22 0 0.126099 1 0
+18 22 1 0.126099 1 0
+18 22 2 0.126099 1 0
+18 22 3 0.126099 1 0
+18 22 4 0.126099 1 0
+18 22 5 0.126099 1 0
+18 22 6 0.126099 1 0
+18 22 7 0.126099 1 0
+18 22 8 0.126221 1 0
+18 22 9 0.126343 1 0
+18 22 10 0.126587 1 0
+18 22 11 0.127075 1 0
+18 22 12 0.127808 1 0
+18 22 13 0.129028 1 0
+18 22 14 0.0919189 1 0
+18 22 15 0 1 0.111389
+18 22 16 0 1 0.316162
+18 22 17 0 1 0.458252
+18 22 18 0 1 0.583984
+18 22 19 0 1 0.696777
+18 22 20 0 0.995605 0.794922
+18 22 21 0 0.976074 0.879883
+18 22 22 0 0.950684 0.950684
+18 22 23 0 0.918457 1
+18 22 24 0 0.880371 1
+18 22 25 0 0.836914 1
+18 22 26 0 0.791016 1
+18 22 27 0 0.744141 1
+18 22 28 0 0.69873 1
+18 22 29 0 0.65625 1
+18 22 30 0 0.616211 1
+18 22 31 0 0.57959 1
+18 23 0 0 1 0
+18 23 1 0 1 0
+18 23 2 0 1 0
+18 23 3 0 1 0
+18 23 4 0 1 0
+18 23 5 0 1 0
+18 23 6 0 1 0
+18 23 7 0 1 0
+18 23 8 0 1 0
+18 23 9 0 1 0
+18 23 10 0 1 0
+18 23 11 0 1 0
+18 23 12 0 1 0
+18 23 13 0 1 0
+18 23 14 0 1 0
+18 23 15 0 1 0
+18 23 16 0 1 0.258057
+18 23 17 0 1 0.41333
+18 23 18 0 1 0.543457
+18 23 19 0 1 0.65918
+18 23 20 0 1 0.760254
+18 23 21 0 1 0.848633
+18 23 22 0 1 0.92334
+18 23 23 0 0.982422 0.98291
+18 23 24 0 0.950684 1
+18 23 25 0 0.910645 1
+18 23 26 0 0.864746 1
+18 23 27 0 0.815918 1
+18 23 28 0 0.766602 1
+18 23 29 0 0.719238 1
+18 23 30 0 0.674316 1
+18 23 31 0 0.632812 1
+18 24 0 0 1 0
+18 24 1 0 1 0
+18 24 2 0 1 0
+18 24 3 0 1 0
+18 24 4 0 1 0
+18 24 5 0 1 0
+18 24 6 0 1 0
+18 24 7 0 1 0
+18 24 8 0 1 0
+18 24 9 0 1 0
+18 24 10 0 1 0
+18 24 11 0 1 0
+18 24 12 0 1 0
+18 24 13 0 1 0
+18 24 14 0 1 0
+18 24 15 0 1 0
+18 24 16 0 1 0.189209
+18 24 17 0 1 0.366699
+18 24 18 0 1 0.502441
+18 24 19 0 1 0.620605
+18 24 20 0 1 0.723633
+18 24 21 0 1 0.814941
+18 24 22 0 1 0.893066
+18 24 23 0 1 0.956543
+18 24 24 0 1 1
+18 24 25 0 0.973145 1
+18 24 26 0 0.930176 1
+18 24 27 0 0.881836 1
+18 24 28 0 0.831055 1
+18 24 29 0 0.780273 1
+18 24 30 0 0.731445 1
+18 24 31 0 0.685059 1
+18 25 0 0 1 0
+18 25 1 0 1 0
+18 25 2 0 1 0
+18 25 3 0 1 0
+18 25 4 0 1 0
+18 25 5 0 1 0
+18 25 6 0 1 0
+18 25 7 0 1 0
+18 25 8 0 1 0
+18 25 9 0 1 0
+18 25 10 0 1 0
+18 25 11 0 1 0
+18 25 12 0 1 0
+18 25 13 0 1 0
+18 25 14 0 1 0
+18 25 15 0 1 0
+18 25 16 0 1 0.0726929
+18 25 17 0 1 0.311768
+18 25 18 0 1 0.455566
+18 25 19 0 1 0.57666
+18 25 20 0 1 0.682129
+18 25 21 0 1 0.775879
+18 25 22 0 1 0.857422
+18 25 23 0 1 0.924805
+18 25 24 0 1 0.980469
+18 25 25 0 1 1
+18 25 26 0 0.991699 1
+18 25 27 0 0.946289 1
+18 25 28 0 0.895996 1
+18 25 29 0 0.843262 1
+18 25 30 0 0.791504 1
+18 25 31 0 0.740723 1
+18 26 0 0 1 0
+18 26 1 0 1 0
+18 26 2 0 1 0
+18 26 3 0 1 0
+18 26 4 0 1 0
+18 26 5 0 1 0
+18 26 6 0 1 0
+18 26 7 0 1 0
+18 26 8 0 1 0
+18 26 9 0 1 0
+18 26 10 0 1 0
+18 26 11 0 1 0
+18 26 12 0 1 0
+18 26 13 0 1 0
+18 26 14 0 1 0
+18 26 15 0 1 0
+18 26 16 0 1 0
+18 26 17 0 1 0.244995
+18 26 18 0 1 0.403076
+18 26 19 0 1 0.52832
+18 26 20 0 1 0.635742
+18 26 21 0 1 0.731934
+18 26 22 0 1 0.815918
+18 26 23 0 1 0.886719
+18 26 24 0 1 0.945801
+18 26 25 0 1 1
+18 26 26 0 1 1
+18 26 27 0 1 1
+18 26 28 0 0.958984 1
+18 26 29 0 0.906738 1
+18 26 30 0 0.853027 1
+18 26 31 0 0.799805 1
+18 27 0 0 1 0
+18 27 1 0 1 0
+18 27 2 0 1 0
+18 27 3 0 1 0
+18 27 4 0 1 0
+18 27 5 0 1 0
+18 27 6 0 1 0
+18 27 7 0 1 0
+18 27 8 0 1 0
+18 27 9 0 1 0
+18 27 10 0 1 0
+18 27 11 0 1 0
+18 27 12 0 1 0
+18 27 13 0 1 0
+18 27 14 0 1 0
+18 27 15 0 1 0
+18 27 16 0 1 0
+18 27 17 0 1 0.15332
+18 27 18 0 1 0.343506
+18 27 19 0 1 0.474854
+18 27 20 0 1 0.584961
+18 27 21 0 1 0.682617
+18 27 22 0 1 0.769043
+18 27 23 0 1 0.842285
+18 27 24 0 1 0.905273
+18 27 25 0 1 0.963379
+18 27 26 0 1 1
+18 27 27 0 1 1
+18 27 28 0 1 1
+18 27 29 0 0.968262 1
+18 27 30 0 0.914551 1
+18 27 31 0 0.859375 1
+18 28 0 0 1 0
+18 28 1 0 1 0
+18 28 2 0 1 0
+18 28 3 0 1 0
+18 28 4 0 1 0
+18 28 5 0 1 0
+18 28 6 0 1 0
+18 28 7 0 1 0
+18 28 8 0 1 0
+18 28 9 0 1 0
+18 28 10 0 1 0
+18 28 11 0 1 0
+18 28 12 0 1 0
+18 28 13 0 1 0
+18 28 14 0 1 0
+18 28 15 0 1 0
+18 28 16 0 1 0
+18 28 17 0 1 0
+18 28 18 0 1 0.273682
+18 28 19 0 1 0.41626
+18 28 20 0 1 0.529297
+18 28 21 0 1 0.628906
+18 28 22 0 1 0.716797
+18 28 23 0 1 0.79248
+18 28 24 0 1 0.85791
+18 28 25 0 1 0.919922
+18 28 26 0 1 0.977539
+18 28 27 0 1 1
+18 28 28 0 1 1
+18 28 29 0 1 1
+18 28 30 0 0.973633 1
+18 28 31 0 0.918945 1
+18 29 0 0 1 0
+18 29 1 0 1 0
+18 29 2 0 1 0
+18 29 3 0 1 0
+18 29 4 0 1 0
+18 29 5 0 1 0
+18 29 6 0 1 0
+18 29 7 0 1 0
+18 29 8 0 1 0
+18 29 9 0 1 0
+18 29 10 0 1 0
+18 29 11 0 1 0
+18 29 12 0 1 0
+18 29 13 0 1 0
+18 29 14 0 1 0
+18 29 15 0 1 0
+18 29 16 0 1 0
+18 29 17 0 1 0
+18 29 18 0 1 0.183716
+18 29 19 0 1 0.350586
+18 29 20 0 1 0.469238
+18 29 21 0 1 0.570312
+18 29 22 0 1 0.659668
+18 29 23 0 1 0.737305
+18 29 24 0 1 0.804688
+18 29 25 0 1 0.869629
+18 29 26 0 1 0.931152
+18 29 27 0 1 0.987305
+18 29 28 0 1 1
+18 29 29 0 1 1
+18 29 30 0 1 1
+18 29 31 0 0.978516 1
+18 30 0 0 1 0
+18 30 1 0 1 0
+18 30 2 0 1 0
+18 30 3 0 1 0
+18 30 4 0 1 0
+18 30 5 0 1 0
+18 30 6 0 1 0
+18 30 7 0 1 0
+18 30 8 0 1 0
+18 30 9 0 1 0
+18 30 10 0 1 0
+18 30 11 0 1 0
+18 30 12 0 1 0
+18 30 13 0 1 0
+18 30 14 0 1 0
+18 30 15 0 1 0
+18 30 16 0 1 0
+18 30 17 0 1 0
+18 30 18 0 1 0
+18 30 19 0 1 0.275146
+18 30 20 0 1 0.403564
+18 30 21 0 1 0.507812
+18 30 22 0 1 0.598633
+18 30 23 0 1 0.676758
+18 30 24 0 1 0.745605
+18 30 25 0 1 0.8125
+18 30 26 0 1 0.877441
+18 30 27 0 1 0.937988
+18 30 28 0 1 0.993652
+18 30 29 0 1 1
+18 30 30 0 1 1
+18 30 31 0 1 1
+18 31 0 0 1 0
+18 31 1 0 1 0
+18 31 2 0 1 0
+18 31 3 0 1 0
+18 31 4 0 1 0
+18 31 5 0 1 0
+18 31 6 0 1 0
+18 31 7 0 1 0
+18 31 8 0 1 0
+18 31 9 0 1 0
+18 31 10 0 1 0
+18 31 11 0 1 0
+18 31 12 0 1 0
+18 31 13 0 1 0
+18 31 14 0 1 0
+18 31 15 0 1 0
+18 31 16 0 1 0
+18 31 17 0 1 0
+18 31 18 0 1 0
+18 31 19 0 1 0.178833
+18 31 20 0 1 0.331299
+18 31 21 0 1 0.440918
+18 31 22 0 1 0.533203
+18 31 23 0 1 0.612305
+18 31 24 0 1 0.682129
+18 31 25 0 1 0.750488
+18 31 26 0 1 0.817871
+18 31 27 0 1 0.882812
+18 31 28 0 1 0.943359
+18 31 29 0 1 0.998535
+18 31 30 0 1 1
+18 31 31 0 1 1
+19 0 0 0.95166 0 0
+19 0 1 0.95166 0 0
+19 0 2 0.95166 0 0
+19 0 3 0.95166 0 0
+19 0 4 0.95166 0 0
+19 0 5 0.95166 0 0
+19 0 6 0.95166 0 0
+19 0 7 0.95166 0 0
+19 0 8 0.95166 0 0
+19 0 9 0.95166 0 0
+19 0 10 0.952148 0 0
+19 0 11 0.952148 0 0
+19 0 12 0.95459 0 0
+19 0 13 0.960938 0 0
+19 0 14 0.973145 0 0.196533
+19 0 15 0.987793 0 0.330078
+19 0 16 1 0 0.467285
+19 0 17 1 0 0.609863
+19 0 18 1 0.0848389 0.73291
+19 0 19 0.990723 0.131226 0.827637
+19 0 20 0.935059 0.15918 0.90625
+19 0 21 0.864258 0.179565 0.963379
+19 0 22 0.780762 0.192383 0.995605
+19 0 23 0.697266 0.199951 1
+19 0 24 0.618164 0.204712 1
+19 0 25 0.536133 0.208252 1
+19 0 26 0.449219 0.210938 1
+19 0 27 0.352783 0.213379 1
+19 0 28 0.232788 0.215942 1
+19 0 29 0 0.21875 1
+19 0 30 0 0.22168 1
+19 0 31 0 0.224854 1
+19 1 0 0.95166 0 0
+19 1 1 0.95166 0 0
+19 1 2 0.95166 0 0
+19 1 3 0.95166 0 0
+19 1 4 0.95166 0 0
+19 1 5 0.95166 0 0
+19 1 6 0.95166 0 0
+19 1 7 0.95166 0 0
+19 1 8 0.95166 0 0
+19 1 9 0.95166 0 0
+19 1 10 0.952148 0 0
+19 1 11 0.952148 0 0
+19 1 12 0.95459 0 0
+19 1 13 0.960938 0 0
+19 1 14 0.973145 0 0.196533
+19 1 15 0.987793 0 0.330078
+19 1 16 1 0 0.467285
+19 1 17 1 0 0.609863
+19 1 18 1 0.0849609 0.73291
+19 1 19 0.990723 0.131348 0.827637
+19 1 20 0.935059 0.15918 0.90625
+19 1 21 0.864258 0.179688 0.963379
+19 1 22 0.780762 0.192383 0.995605
+19 1 23 0.697266 0.200073 1
+19 1 24 0.618164 0.204712 1
+19 1 25 0.536133 0.208252 1
+19 1 26 0.449219 0.210938 1
+19 1 27 0.352783 0.213501 1
+19 1 28 0.232666 0.215942 1
+19 1 29 0 0.21875 1
+19 1 30 0 0.22168 1
+19 1 31 0 0.224976 1
+19 2 0 0.95166 0 0
+19 2 1 0.95166 0 0
+19 2 2 0.95166 0 0
+19 2 3 0.95166 0 0
+19 2 4 0.95166 0 0
+19 2 5 0.95166 0 0
+19 2 6 0.95166 0 0
+19 2 7 0.95166 0 0
+19 2 8 0.95166 0 0
+19 2 9 0.95166 0 0
+19 2 10 0.952148 0 0
+19 2 11 0.952148 0 0
+19 2 12 0.95459 0 0
+19 2 13 0.960938 0 0
+19 2 14 0.973145 0 0.196533
+19 2 15 0.987793 0 0.330078
+19 2 16 1 0 0.467285
+19 2 17 1 0 0.609863
+19 2 18 1 0.085144 0.73291
+19 2 19 0.990234 0.13147 0.827637
+19 2 20 0.935059 0.159302 0.90625
+19 2 21 0.864258 0.179688 0.963379
+19 2 22 0.780762 0.192505 0.995605
+19 2 23 0.697266 0.200073 1
+19 2 24 0.618164 0.204834 1
+19 2 25 0.536133 0.208252 1
+19 2 26 0.449219 0.21106 1
+19 2 27 0.352783 0.213501 1
+19 2 28 0.232666 0.215942 1
+19 2 29 0 0.21875 1
+19 2 30 0 0.22168 1
+19 2 31 0 0.224976 1
+19 3 0 0.95166 0 0
+19 3 1 0.95166 0 0
+19 3 2 0.95166 0 0
+19 3 3 0.95166 0 0
+19 3 4 0.95166 0 0
+19 3 5 0.95166 0 0
+19 3 6 0.95166 0 0
+19 3 7 0.95166 0 0
+19 3 8 0.95166 0 0
+19 3 9 0.95166 0 0
+19 3 10 0.952148 0 0
+19 3 11 0.952148 0 0
+19 3 12 0.95459 0 0
+19 3 13 0.960938 0 0
+19 3 14 0.973145 0 0.196533
+19 3 15 0.987793 0 0.330078
+19 3 16 1 0 0.467285
+19 3 17 1 0 0.609863
+19 3 18 1 0.0854492 0.73291
+19 3 19 0.990234 0.131714 0.827637
+19 3 20 0.935059 0.159424 0.90625
+19 3 21 0.864258 0.17981 0.963379
+19 3 22 0.780762 0.192627 0.995605
+19 3 23 0.697266 0.200195 1
+19 3 24 0.618164 0.204834 1
+19 3 25 0.536133 0.208252 1
+19 3 26 0.449219 0.21106 1
+19 3 27 0.352783 0.213501 1
+19 3 28 0.232666 0.216064 1
+19 3 29 0 0.21875 1
+19 3 30 0 0.221802 1
+19 3 31 0 0.224976 1
+19 4 0 0.95166 0 0
+19 4 1 0.95166 0 0
+19 4 2 0.95166 0 0
+19 4 3 0.95166 0 0
+19 4 4 0.95166 0 0
+19 4 5 0.95166 0 0
+19 4 6 0.95166 0 0
+19 4 7 0.95166 0 0
+19 4 8 0.95166 0 0
+19 4 9 0.952148 0 0
+19 4 10 0.952148 0 0
+19 4 11 0.952148 0 0
+19 4 12 0.95459 0 0
+19 4 13 0.960938 0 0
+19 4 14 0.973145 0 0.196533
+19 4 15 0.987793 0 0.330078
+19 4 16 1 0 0.467285
+19 4 17 1 0 0.609863
+19 4 18 1 0.0860596 0.73291
+19 4 19 0.990234 0.13208 0.827637
+19 4 20 0.935059 0.15979 0.90625
+19 4 21 0.864258 0.180054 0.963379
+19 4 22 0.780762 0.192749 0.995605
+19 4 23 0.697266 0.200317 1
+19 4 24 0.618164 0.204956 1
+19 4 25 0.536133 0.208374 1
+19 4 26 0.448975 0.211182 1
+19 4 27 0.352783 0.213623 1
+19 4 28 0.232666 0.216064 1
+19 4 29 0 0.218872 1
+19 4 30 0 0.221802 1
+19 4 31 0 0.224976 1
+19 5 0 0.95166 0 0
+19 5 1 0.95166 0 0
+19 5 2 0.95166 0 0
+19 5 3 0.95166 0 0
+19 5 4 0.95166 0 0
+19 5 5 0.95166 0 0
+19 5 6 0.95166 0 0
+19 5 7 0.95166 0 0
+19 5 8 0.95166 0 0
+19 5 9 0.952148 0 0
+19 5 10 0.952148 0 0
+19 5 11 0.952637 0 0
+19 5 12 0.95459 0 0
+19 5 13 0.960938 0 0
+19 5 14 0.973145 0 0.196411
+19 5 15 0.987793 0 0.330078
+19 5 16 1 0 0.467041
+19 5 17 1 0 0.609863
+19 5 18 1 0.0872803 0.73291
+19 5 19 0.990234 0.132812 0.827637
+19 5 20 0.935059 0.1604 0.90625
+19 5 21 0.864258 0.180542 0.963379
+19 5 22 0.780762 0.193237 0.995605
+19 5 23 0.697266 0.200684 1
+19 5 24 0.618164 0.2052 1
+19 5 25 0.536133 0.208618 1
+19 5 26 0.448975 0.211304 1
+19 5 27 0.352539 0.213745 1
+19 5 28 0.232544 0.216187 1
+19 5 29 0 0.218994 1
+19 5 30 0 0.221924 1
+19 5 31 0 0.225098 1
+19 6 0 0.95166 0 0
+19 6 1 0.95166 0 0
+19 6 2 0.95166 0 0
+19 6 3 0.95166 0 0
+19 6 4 0.95166 0 0
+19 6 5 0.95166 0 0
+19 6 6 0.95166 0 0
+19 6 7 0.952148 0 0
+19 6 8 0.952148 0 0
+19 6 9 0.952148 0 0
+19 6 10 0.952148 0 0
+19 6 11 0.952637 0 0
+19 6 12 0.95459 0 0
+19 6 13 0.960938 0 0
+19 6 14 0.973145 0 0.196289
+19 6 15 0.987793 0 0.329834
+19 6 16 1 0 0.467041
+19 6 17 1 0 0.609375
+19 6 18 1 0.0895386 0.73291
+19 6 19 0.990234 0.134399 0.827637
+19 6 20 0.935059 0.161499 0.90625
+19 6 21 0.864258 0.181519 0.963379
+19 6 22 0.780762 0.193848 0.995605
+19 6 23 0.697266 0.201172 1
+19 6 24 0.618164 0.205811 1
+19 6 25 0.536133 0.209106 1
+19 6 26 0.448975 0.21167 1
+19 6 27 0.352539 0.214111 1
+19 6 28 0.232422 0.216431 1
+19 6 29 0 0.219116 1
+19 6 30 0 0.222046 1
+19 6 31 0 0.22522 1
+19 7 0 0.952148 0 0
+19 7 1 0.952148 0 0
+19 7 2 0.952148 0 0
+19 7 3 0.952148 0 0
+19 7 4 0.952148 0 0
+19 7 5 0.952148 0 0
+19 7 6 0.952148 0 0
+19 7 7 0.952148 0 0
+19 7 8 0.952148 0 0
+19 7 9 0.952148 0 0
+19 7 10 0.952637 0 0
+19 7 11 0.952637 0 0
+19 7 12 0.955078 0 0
+19 7 13 0.960938 0 0
+19 7 14 0.973145 0 0.196167
+19 7 15 0.987793 0 0.329834
+19 7 16 1 0 0.467041
+19 7 17 1 0 0.609375
+19 7 18 1 0.093811 0.73291
+19 7 19 0.990234 0.137207 0.827637
+19 7 20 0.93457 0.163696 0.90625
+19 7 21 0.86377 0.183228 0.963379
+19 7 22 0.780273 0.195312 0.995605
+19 7 23 0.697266 0.202393 1
+19 7 24 0.618164 0.206787 1
+19 7 25 0.535645 0.209839 1
+19 7 26 0.44873 0.212402 1
+19 7 27 0.352295 0.2146 1
+19 7 28 0.232178 0.217041 1
+19 7 29 0 0.219604 1
+19 7 30 0 0.222412 1
+19 7 31 0 0.225586 1
+19 8 0 0.952637 0 0
+19 8 1 0.952637 0 0
+19 8 2 0.952637 0 0
+19 8 3 0.952637 0 0
+19 8 4 0.952637 0 0
+19 8 5 0.952637 0 0
+19 8 6 0.952637 0 0
+19 8 7 0.952637 0 0
+19 8 8 0.952637 0 0
+19 8 9 0.952637 0 0
+19 8 10 0.952637 0 0
+19 8 11 0.953125 0 0
+19 8 12 0.955078 0 0
+19 8 13 0.960938 0 0
+19 8 14 0.973145 0 0.195679
+19 8 15 0.987793 0 0.32959
+19 8 16 1 0 0.466797
+19 8 17 1 0 0.609375
+19 8 18 1 0.101685 0.73291
+19 8 19 0.989746 0.142578 0.827637
+19 8 20 0.93457 0.167847 0.90625
+19 8 21 0.86377 0.186523 0.963379
+19 8 22 0.780273 0.197998 0.995605
+19 8 23 0.696777 0.20459 1
+19 8 24 0.617676 0.208618 1
+19 8 25 0.535645 0.211426 1
+19 8 26 0.448486 0.213745 1
+19 8 27 0.351807 0.21582 1
+19 8 28 0.231567 0.217896 1
+19 8 29 0 0.220459 1
+19 8 30 0 0.223145 1
+19 8 31 0 0.226196 1
+19 9 0 0.953125 0 0
+19 9 1 0.953125 0 0
+19 9 2 0.953125 0 0
+19 9 3 0.953125 0 0
+19 9 4 0.953125 0 0
+19 9 5 0.953125 0 0
+19 9 6 0.953125 0 0
+19 9 7 0.953125 0 0
+19 9 8 0.953125 0 0
+19 9 9 0.953125 0 0
+19 9 10 0.953613 0 0
+19 9 11 0.953613 0 0
+19 9 12 0.955566 0 0
+19 9 13 0.961426 0 0
+19 9 14 0.973145 0 0.194946
+19 9 15 0.987793 0 0.329346
+19 9 16 1 0 0.466064
+19 9 17 1 0 0.608887
+19 9 18 1 0.115356 0.73291
+19 9 19 0.989258 0.152344 0.827637
+19 9 20 0.934082 0.175659 0.90625
+19 9 21 0.863281 0.192749 0.963379
+19 9 22 0.779297 0.203125 0.995605
+19 9 23 0.696289 0.208862 1
+19 9 24 0.617188 0.212158 1
+19 9 25 0.534668 0.214478 1
+19 9 26 0.447754 0.216309 1
+19 9 27 0.351074 0.217896 1
+19 9 28 0.230469 0.219849 1
+19 9 29 0 0.221924 1
+19 9 30 0 0.224487 1
+19 9 31 0 0.227295 1
+19 10 0 0.954102 0 0
+19 10 1 0.954102 0 0
+19 10 2 0.954102 0 0
+19 10 3 0.954102 0 0
+19 10 4 0.95459 0 0
+19 10 5 0.95459 0 0
+19 10 6 0.95459 0 0
+19 10 7 0.95459 0 0
+19 10 8 0.95459 0 0
+19 10 9 0.95459 0 0
+19 10 10 0.95459 0 0
+19 10 11 0.955078 0 0
+19 10 12 0.957031 0 0
+19 10 13 0.962402 0 0
+19 10 14 0.973145 0 0.193604
+19 10 15 0.987305 0 0.328857
+19 10 16 1 0 0.465332
+19 10 17 1 0 0.608398
+19 10 18 1 0.136841 0.732422
+19 10 19 0.988281 0.168579 0.827148
+19 10 20 0.932617 0.188843 0.905762
+19 10 21 0.861816 0.203613 0.963379
+19 10 22 0.77832 0.212036 0.995605
+19 10 23 0.695312 0.216309 1
+19 10 24 0.615723 0.218506 1
+19 10 25 0.533691 0.219849 1
+19 10 26 0.446533 0.220825 1
+19 10 27 0.349609 0.221802 1
+19 10 28 0.228394 0.223145 1
+19 10 29 0 0.224854 1
+19 10 30 0 0.226929 1
+19 10 31 0 0.22937 1
+19 11 0 0.956543 0 0
+19 11 1 0.956543 0 0
+19 11 2 0.956543 0 0
+19 11 3 0.956543 0 0
+19 11 4 0.956543 0 0
+19 11 5 0.956543 0 0
+19 11 6 0.956543 0 0
+19 11 7 0.956543 0 0
+19 11 8 0.956543 0 0
+19 11 9 0.956543 0 0
+19 11 10 0.957031 0 0
+19 11 11 0.957031 0 0
+19 11 12 0.958984 0 0
+19 11 13 0.963379 0 0
+19 11 14 0.973145 0 0.191528
+19 11 15 0.987305 0 0.327881
+19 11 16 1 0 0.463623
+19 11 17 1 0.0204773 0.606934
+19 11 18 1 0.168091 0.731934
+19 11 19 0.986328 0.193604 0.827148
+19 11 20 0.930664 0.209839 0.905762
+19 11 21 0.859863 0.221191 0.963379
+19 11 22 0.776367 0.226685 0.995605
+19 11 23 0.692871 0.22876 1
+19 11 24 0.61377 0.229126 1
+19 11 25 0.531738 0.228882 1
+19 11 26 0.444336 0.228638 1
+19 11 27 0.347168 0.228394 1
+19 11 28 0.224731 0.22876 1
+19 11 29 0 0.229614 1
+19 11 30 0 0.231079 1
+19 11 31 0 0.23291 1
+19 12 0 0.960449 0 0
+19 12 1 0.960449 0 0
+19 12 2 0.960449 0 0
+19 12 3 0.960449 0 0
+19 12 4 0.960449 0 0
+19 12 5 0.960449 0 0
+19 12 6 0.960449 0 0
+19 12 7 0.960449 0 0
+19 12 8 0.960449 0 0
+19 12 9 0.960449 0 0
+19 12 10 0.960449 0 0
+19 12 11 0.960938 0 0
+19 12 12 0.961914 0 0
+19 12 13 0.96582 0 0
+19 12 14 0.973633 0 0.188477
+19 12 15 0.986816 0 0.32666
+19 12 16 1 0 0.460938
+19 12 17 1 0.118591 0.60498
+19 12 18 1 0.210449 0.730957
+19 12 19 0.98291 0.229736 0.82666
+19 12 20 0.927734 0.241211 0.905273
+19 12 21 0.856934 0.248169 0.962891
+19 12 22 0.772949 0.249634 0.995605
+19 12 23 0.689941 0.248291 1
+19 12 24 0.610352 0.246094 1
+19 12 25 0.52832 0.24353 1
+19 12 26 0.440674 0.241211 1
+19 12 27 0.342773 0.239258 1
+19 12 28 0.218384 0.238159 1
+19 12 29 0 0.237793 1
+19 12 30 0 0.238037 1
+19 12 31 0 0.239014 1
+19 13 0 0.966309 0.0864258 0
+19 13 1 0.966309 0.0864258 0
+19 13 2 0.966309 0.0864868 0
+19 13 3 0.966309 0.0864868 0
+19 13 4 0.966309 0.0865479 0
+19 13 5 0.966309 0.0866089 0
+19 13 6 0.966309 0.086792 0
+19 13 7 0.966309 0.0871582 0
+19 13 8 0.966797 0.0878296 0
+19 13 9 0.966797 0.0891724 0
+19 13 10 0.966797 0.0914917 0
+19 13 11 0.967285 0.09552 0
+19 13 12 0.967773 0.0981445 0
+19 13 13 0.969727 0.0909424 0
+19 13 14 0.974609 0.0777588 0.185181
+19 13 15 0.985352 0.0767212 0.32373
+19 13 16 0.996582 0.101868 0.456787
+19 13 17 1 0.196411 0.601074
+19 13 18 1 0.264404 0.729492
+19 13 19 0.977051 0.278076 0.825684
+19 13 20 0.921875 0.284424 0.904785
+19 13 21 0.851074 0.286133 0.962891
+19 13 22 0.767578 0.282715 0.995117
+19 13 23 0.684082 0.2771 1
+19 13 24 0.60498 0.27124 1
+19 13 25 0.522461 0.265625 1
+19 13 26 0.434326 0.260498 1
+19 13 27 0.335449 0.256104 1
+19 13 28 0.207397 0.252686 1
+19 13 29 0 0.250488 1
+19 13 30 0 0.249023 1
+19 13 31 0 0.248535 1
+19 14 0 0.975586 0.22583 0
+19 14 1 0.975586 0.22583 0
+19 14 2 0.975586 0.22583 0
+19 14 3 0.975586 0.22583 0
+19 14 4 0.976074 0.22583 0
+19 14 5 0.976074 0.22583 0
+19 14 6 0.976074 0.225952 0
+19 14 7 0.976074 0.226074 0
+19 14 8 0.976074 0.226318 0
+19 14 9 0.976074 0.226929 0
+19 14 10 0.976074 0.227905 0
+19 14 11 0.976562 0.229492 0
+19 14 12 0.976562 0.230957 0
+19 14 13 0.976562 0.227417 0
+19 14 14 0.977539 0.222168 0.184082
+19 14 15 0.980957 0.21814 0.318359
+19 14 16 0.988281 0.225952 0.451172
+19 14 17 1 0.275391 0.594238
+19 14 18 1 0.330078 0.726562
+19 14 19 0.967773 0.339111 0.824219
+19 14 20 0.912598 0.340332 0.903809
+19 14 21 0.842285 0.336914 0.962402
+19 14 22 0.758301 0.327393 0.994629
+19 14 23 0.674805 0.316895 1
+19 14 24 0.595703 0.306641 1
+19 14 25 0.512695 0.296875 1
+19 14 26 0.424072 0.288086 1
+19 14 27 0.323486 0.280518 1
+19 14 28 0.188477 0.27417 1
+19 14 29 0 0.269287 1
+19 14 30 0 0.265625 1
+19 14 31 0 0.262939 1
+19 15 0 0.988281 0.342529 0
+19 15 1 0.988281 0.342529 0
+19 15 2 0.988281 0.342529 0
+19 15 3 0.988281 0.342529 0
+19 15 4 0.988281 0.342529 0
+19 15 5 0.988281 0.342773 0
+19 15 6 0.988281 0.342773 0
+19 15 7 0.988281 0.342773 0
+19 15 8 0.988281 0.343018 0
+19 15 9 0.988281 0.343262 0
+19 15 10 0.98877 0.343994 0
+19 15 11 0.98877 0.344971 0
+19 15 12 0.98877 0.345703 0
+19 15 13 0.986816 0.343994 0
+19 15 14 0.983398 0.34082 0.190552
+19 15 15 0.978516 0.335938 0.317383
+19 15 16 0.978516 0.337158 0.446289
+19 15 17 0.984863 0.359863 0.583496
+19 15 18 0.991699 0.406738 0.72168
+19 15 19 0.952637 0.412354 0.820801
+19 15 20 0.897949 0.40918 0.901855
+19 15 21 0.827637 0.399902 0.960938
+19 15 22 0.743652 0.384277 0.993164
+19 15 23 0.660156 0.36792 1
+19 15 24 0.581055 0.352783 1
+19 15 25 0.497803 0.338623 1
+19 15 26 0.407959 0.325439 1
+19 15 27 0.303711 0.313721 1
+19 15 28 0.154419 0.303955 1
+19 15 29 0 0.295654 1
+19 15 30 0 0.289062 1
+19 15 31 0 0.283691 1
+19 16 0 1 0.462402 0
+19 16 1 1 0.462402 0
+19 16 2 1 0.462402 0
+19 16 3 1 0.462402 0
+19 16 4 1 0.462402 0
+19 16 5 1 0.462402 0
+19 16 6 1 0.462646 0
+19 16 7 1 0.462646 0
+19 16 8 1 0.462646 0
+19 16 9 1 0.462891 0
+19 16 10 1 0.463379 0
+19 16 11 1 0.464111 0
+19 16 12 1 0.465332 0
+19 16 13 0.997559 0.4646 0.0249329
+19 16 14 0.991211 0.462646 0.208618
+19 16 15 0.980469 0.458252 0.327148
+19 16 16 0.964355 0.450928 0.441895
+19 16 17 0.95459 0.453857 0.568359
+19 16 18 0.964355 0.492188 0.711914
+19 16 19 0.929199 0.497314 0.815918
+19 16 20 0.875 0.489746 0.897949
+19 16 21 0.805176 0.475342 0.958008
+19 16 22 0.721191 0.453125 0.990723
+19 16 23 0.637695 0.430664 1
+19 16 24 0.558594 0.4104 1
+19 16 25 0.474609 0.391113 1
+19 16 26 0.382324 0.373047 1
+19 16 27 0.27124 0.356934 1
+19 16 28 0.0796509 0.343018 1
+19 16 29 0 0.330811 1
+19 16 30 0 0.320557 1
+19 16 31 0 0.311768 1
+19 17 0 1 0.585449 0
+19 17 1 1 0.585449 0
+19 17 2 1 0.585449 0
+19 17 3 1 0.585449 0
+19 17 4 1 0.585449 0
+19 17 5 1 0.585449 0
+19 17 6 1 0.585449 0
+19 17 7 1 0.585938 0
+19 17 8 1 0.585938 0
+19 17 9 1 0.585938 0
+19 17 10 1 0.586426 0
+19 17 11 1 0.586914 0
+19 17 12 1 0.587891 0
+19 17 13 0.999023 0.587891 0.064209
+19 17 14 0.992676 0.587402 0.227173
+19 17 15 0.980469 0.584961 0.344482
+19 17 16 0.958496 0.578125 0.45459
+19 17 17 0.92627 0.564453 0.561035
+19 17 18 0.918457 0.579102 0.692871
+19 17 19 0.893555 0.589355 0.807129
+19 17 20 0.84082 0.578613 0.891113
+19 17 21 0.770996 0.558594 0.952148
+19 17 22 0.6875 0.530273 0.986328
+19 17 23 0.60498 0.501953 1
+19 17 24 0.525391 0.476807 1
+19 17 25 0.439697 0.452637 1
+19 17 26 0.342529 0.430176 1
+19 17 27 0.21582 0.409424 1
+19 17 28 0 0.390869 1
+19 17 29 0 0.374512 1
+19 17 30 0 0.359863 1
+19 17 31 0 0.347412 1
+19 18 0 0.977051 0.704102 0
+19 18 1 0.977051 0.704102 0
+19 18 2 0.977051 0.704102 0
+19 18 3 0.977051 0.704102 0
+19 18 4 0.977051 0.704102 0
+19 18 5 0.977051 0.704102 0
+19 18 6 0.977051 0.704102 0
+19 18 7 0.977051 0.704102 0
+19 18 8 0.977051 0.704102 0
+19 18 9 0.977051 0.70459 0
+19 18 10 0.977051 0.70459 0
+19 18 11 0.977051 0.705078 0
+19 18 12 0.977051 0.705566 0
+19 18 13 0.975098 0.706543 0
+19 18 14 0.969727 0.707031 0.218262
+19 18 15 0.960449 0.707031 0.34668
+19 18 16 0.942383 0.703613 0.465332
+19 18 17 0.911621 0.694336 0.576172
+19 18 18 0.86377 0.673828 0.672852
+19 18 19 0.843262 0.684082 0.793945
+19 18 20 0.791504 0.67041 0.880371
+19 18 21 0.72168 0.645508 0.942383
+19 18 22 0.639648 0.612305 0.979492
+19 18 23 0.558105 0.57959 1
+19 18 24 0.477539 0.550293 1
+19 18 25 0.387939 0.521973 1
+19 18 26 0.278809 0.494873 1
+19 18 27 0.0949097 0.469482 1
+19 18 28 0 0.446289 1
+19 18 29 0 0.425293 1
+19 18 30 0 0.405762 1
+19 18 31 0 0.388184 1
+19 19 0 0.915039 0.806641 0
+19 19 1 0.915039 0.806641 0
+19 19 2 0.915039 0.806641 0
+19 19 3 0.915039 0.806641 0
+19 19 4 0.915039 0.806641 0
+19 19 5 0.915039 0.806641 0
+19 19 6 0.915039 0.806641 0
+19 19 7 0.915039 0.806641 0
+19 19 8 0.915039 0.806641 0
+19 19 9 0.915039 0.806641 0
+19 19 10 0.915039 0.806641 0
+19 19 11 0.914551 0.807129 0
+19 19 12 0.914551 0.807617 0
+19 19 13 0.913574 0.808594 0
+19 19 14 0.908691 0.80957 0.162476
+19 19 15 0.900391 0.810059 0.31665
+19 19 16 0.885254 0.809082 0.446289
+19 19 17 0.860352 0.803711 0.566895
+19 19 18 0.824219 0.792969 0.678223
+19 19 19 0.775391 0.775391 0.775391
+19 19 20 0.724121 0.760742 0.864746
+19 19 21 0.654785 0.731934 0.929199
+19 19 22 0.575195 0.696777 0.972168
+19 19 23 0.49292 0.661133 1
+19 19 24 0.408447 0.628418 1
+19 19 25 0.306641 0.595703 1
+19 19 26 0.15625 0.563477 1
+19 19 27 0 0.533203 1
+19 19 28 0 0.504395 1
+19 19 29 0 0.478027 1
+19 19 30 0 0.453857 1
+19 19 31 0 0.432129 1
+19 20 0 0.820801 0.88623 0
+19 20 1 0.820801 0.88623 0
+19 20 2 0.820801 0.88623 0
+19 20 3 0.820801 0.88623 0
+19 20 4 0.820801 0.88623 0
+19 20 5 0.820801 0.88623 0
+19 20 6 0.820801 0.88623 0
+19 20 7 0.820801 0.88623 0
+19 20 8 0.820801 0.88623 0
+19 20 9 0.820801 0.886719 0
+19 20 10 0.820801 0.886719 0
+19 20 11 0.820801 0.886719 0
+19 20 12 0.820801 0.887207 0
+19 20 13 0.819824 0.887695 0
+19 20 14 0.813965 0.888184 0.0280457
+19 20 15 0.805664 0.888672 0.265869
+19 20 16 0.790527 0.887695 0.407715
+19 20 17 0.76709 0.883301 0.533691
+19 20 18 0.731445 0.872559 0.647949
+19 20 19 0.6875 0.858398 0.751465
+19 20 20 0.63623 0.84375 0.84375
+19 20 21 0.569824 0.818359 0.916992
+19 20 22 0.488525 0.782227 0.966797
+19 20 23 0.399658 0.744141 0.999512
+19 20 24 0.299316 0.708008 1
+19 20 25 0.145874 0.670898 1
+19 20 26 0 0.634277 1
+19 20 27 0 0.598633 1
+19 20 28 0 0.564941 1
+19 20 29 0 0.533691 1
+19 20 30 0 0.504883 1
+19 20 31 0 0.47876 1
+19 21 0 0.707031 0.956055 0
+19 21 1 0.707031 0.956055 0
+19 21 2 0.707031 0.956055 0
+19 21 3 0.707031 0.956055 0
+19 21 4 0.707031 0.956055 0
+19 21 5 0.707031 0.956055 0
+19 21 6 0.707031 0.956055 0
+19 21 7 0.707031 0.956055 0
+19 21 8 0.707031 0.956055 0
+19 21 9 0.707031 0.956543 0
+19 21 10 0.707031 0.956543 0
+19 21 11 0.707031 0.956543 0
+19 21 12 0.707031 0.957031 0
+19 21 13 0.707031 0.957031 0
+19 21 14 0.70166 0.95752 0
+19 21 15 0.691406 0.95752 0.199707
+19 21 16 0.675293 0.955566 0.362305
+19 21 17 0.650391 0.95166 0.494385
+19 21 18 0.616211 0.943848 0.613281
+19 21 19 0.572266 0.933594 0.72168
+19 21 20 0.51709 0.919922 0.817871
+19 21 21 0.446777 0.900391 0.900391
+19 21 22 0.355225 0.870117 0.962402
+19 21 23 0.234009 0.832031 1
+19 21 24 0 0.792969 1
+19 21 25 0 0.751953 1
+19 21 26 0 0.709961 1
+19 21 27 0 0.669434 1
+19 21 28 0 0.630371 1
+19 21 29 0 0.59375 1
+19 21 30 0 0.560059 1
+19 21 31 0 0.528809 1
+19 22 0 0.565918 1 0
+19 22 1 0.565918 1 0
+19 22 2 0.565918 1 0
+19 22 3 0.565918 1 0
+19 22 4 0.565918 1 0
+19 22 5 0.565918 1 0
+19 22 6 0.565918 1 0
+19 22 7 0.565918 1 0
+19 22 8 0.565918 1 0
+19 22 9 0.565918 1 0
+19 22 10 0.565918 1 0
+19 22 11 0.565918 1 0
+19 22 12 0.565918 1 0
+19 22 13 0.566406 1 0
+19 22 14 0.561523 1 0
+19 22 15 0.550293 1 0.0967407
+19 22 16 0.532227 1 0.310059
+19 22 17 0.504395 1 0.452148
+19 22 18 0.465576 1 0.576172
+19 22 19 0.412109 0.998047 0.687988
+19 22 20 0.339111 0.986328 0.787109
+19 22 21 0.228149 0.968262 0.873047
+19 22 22 0 0.944824 0.945312
+19 22 23 0 0.914062 0.997559
+19 22 24 0 0.876465 1
+19 22 25 0 0.833496 1
+19 22 26 0 0.788574 1
+19 22 27 0 0.742676 1
+19 22 28 0 0.69873 1
+19 22 29 0 0.656738 1
+19 22 30 0 0.617676 1
+19 22 31 0 0.581055 1
+19 23 0 0.384277 1 0
+19 23 1 0.384277 1 0
+19 23 2 0.384277 1 0
+19 23 3 0.384277 1 0
+19 23 4 0.384277 1 0
+19 23 5 0.384277 1 0
+19 23 6 0.384277 1 0
+19 23 7 0.384277 1 0
+19 23 8 0.384521 1 0
+19 23 9 0.384521 1 0
+19 23 10 0.384521 1 0
+19 23 11 0.384521 1 0
+19 23 12 0.384766 1 0
+19 23 13 0.38501 1 0
+19 23 14 0.381104 1 0
+19 23 15 0.364502 1 0
+19 23 16 0.337402 1 0.251709
+19 23 17 0.294189 1 0.407959
+19 23 18 0.222656 1 0.537109
+19 23 19 0.0568542 1 0.652344
+19 23 20 0 1 0.753418
+19 23 21 0 1 0.842773
+19 23 22 0 1 0.918457
+19 23 23 0 0.979004 0.979004
+19 23 24 0 0.947754 1
+19 23 25 0 0.908203 1
+19 23 26 0 0.862305 1
+19 23 27 0 0.813965 1
+19 23 28 0 0.766113 1
+19 23 29 0 0.719238 1
+19 23 30 0 0.674805 1
+19 23 31 0 0.633301 1
+19 24 0 0 1 0
+19 24 1 0 1 0
+19 24 2 0 1 0
+19 24 3 0 1 0
+19 24 4 0 1 0
+19 24 5 0 1 0
+19 24 6 0 1 0
+19 24 7 0 1 0
+19 24 8 0 1 0
+19 24 9 0 1 0
+19 24 10 0 1 0
+19 24 11 0 1 0
+19 24 12 0 1 0
+19 24 13 0 1 0
+19 24 14 0 1 0
+19 24 15 0 1 0
+19 24 16 0 1 0.181763
+19 24 17 0 1 0.361572
+19 24 18 0 1 0.49707
+19 24 19 0 1 0.614746
+19 24 20 0 1 0.718262
+19 24 21 0 1 0.810059
+19 24 22 0 1 0.888672
+19 24 23 0 1 0.953125
+19 24 24 0 1 1
+19 24 25 0 0.97168 1
+19 24 26 0 0.928711 1
+19 24 27 0 0.880859 1
+19 24 28 0 0.830078 1
+19 24 29 0 0.779785 1
+19 24 30 0 0.731445 1
+19 24 31 0 0.685547 1
+19 25 0 0 1 0
+19 25 1 0 1 0
+19 25 2 0 1 0
+19 25 3 0 1 0
+19 25 4 0 1 0
+19 25 5 0 1 0
+19 25 6 0 1 0
+19 25 7 0 1 0
+19 25 8 0 1 0
+19 25 9 0 1 0
+19 25 10 0 1 0
+19 25 11 0 1 0
+19 25 12 0 1 0
+19 25 13 0 1 0
+19 25 14 0 1 0
+19 25 15 0 1 0
+19 25 16 0 1 0.056488
+19 25 17 0 1 0.307373
+19 25 18 0 1 0.451416
+19 25 19 0 1 0.572266
+19 25 20 0 1 0.677734
+19 25 21 0 1 0.771973
+19 25 22 0 1 0.853516
+19 25 23 0 1 0.921387
+19 25 24 0 1 0.978027
+19 25 25 0 1 1
+19 25 26 0 0.991211 1
+19 25 27 0 0.945801 1
+19 25 28 0 0.895508 1
+19 25 29 0 0.843262 1
+19 25 30 0 0.791504 1
+19 25 31 0 0.741699 1
+19 26 0 0 1 0
+19 26 1 0 1 0
+19 26 2 0 1 0
+19 26 3 0 1 0
+19 26 4 0 1 0
+19 26 5 0 1 0
+19 26 6 0 1 0
+19 26 7 0 1 0
+19 26 8 0 1 0
+19 26 9 0 1 0
+19 26 10 0 1 0
+19 26 11 0 1 0
+19 26 12 0 1 0
+19 26 13 0 1 0
+19 26 14 0 1 0
+19 26 15 0 1 0
+19 26 16 0 1 0
+19 26 17 0 1 0.240479
+19 26 18 0 1 0.399658
+19 26 19 0 1 0.524902
+19 26 20 0 1 0.632324
+19 26 21 0 1 0.728516
+19 26 22 0 1 0.812988
+19 26 23 0 1 0.883789
+19 26 24 0 1 0.943848
+19 26 25 0 1 0.999023
+19 26 26 0 1 1
+19 26 27 0 1 1
+19 26 28 0 0.959473 1
+19 26 29 0 0.907227 1
+19 26 30 0 0.853516 1
+19 26 31 0 0.800781 1
+19 27 0 0 1 0
+19 27 1 0 1 0
+19 27 2 0 1 0
+19 27 3 0 1 0
+19 27 4 0 1 0
+19 27 5 0 1 0
+19 27 6 0 1 0
+19 27 7 0 1 0
+19 27 8 0 1 0
+19 27 9 0 1 0
+19 27 10 0 1 0
+19 27 11 0 1 0
+19 27 12 0 1 0
+19 27 13 0 1 0
+19 27 14 0 1 0
+19 27 15 0 1 0
+19 27 16 0 1 0
+19 27 17 0 1 0.147217
+19 27 18 0 1 0.34082
+19 27 19 0 1 0.472412
+19 27 20 0 1 0.58252
+19 27 21 0 1 0.680176
+19 27 22 0 1 0.766602
+19 27 23 0 1 0.840332
+19 27 24 0 1 0.90332
+19 27 25 0 1 0.962402
+19 27 26 0 1 1
+19 27 27 0 1 1
+19 27 28 0 1 1
+19 27 29 0 0.969238 1
+19 27 30 0 0.915527 1
+19 27 31 0 0.86084 1
+19 28 0 0 1 0
+19 28 1 0 1 0
+19 28 2 0 1 0
+19 28 3 0 1 0
+19 28 4 0 1 0
+19 28 5 0 1 0
+19 28 6 0 1 0
+19 28 7 0 1 0
+19 28 8 0 1 0
+19 28 9 0 1 0
+19 28 10 0 1 0
+19 28 11 0 1 0
+19 28 12 0 1 0
+19 28 13 0 1 0
+19 28 14 0 1 0
+19 28 15 0 1 0
+19 28 16 0 1 0
+19 28 17 0 1 0
+19 28 18 0 1 0.270996
+19 28 19 0 1 0.414307
+19 28 20 0 1 0.527832
+19 28 21 0 1 0.626953
+19 28 22 0 1 0.715332
+19 28 23 0 1 0.791016
+19 28 24 0 1 0.856934
+19 28 25 0 1 0.918945
+19 28 26 0 1 0.977051
+19 28 27 0 1 1
+19 28 28 0 1 1
+19 28 29 0 1 1
+19 28 30 0 0.974609 1
+19 28 31 0 0.92041 1
+19 29 0 0 1 0
+19 29 1 0 1 0
+19 29 2 0 1 0
+19 29 3 0 1 0
+19 29 4 0 1 0
+19 29 5 0 1 0
+19 29 6 0 1 0
+19 29 7 0 1 0
+19 29 8 0 1 0
+19 29 9 0 1 0
+19 29 10 0 1 0
+19 29 11 0 1 0
+19 29 12 0 1 0
+19 29 13 0 1 0
+19 29 14 0 1 0
+19 29 15 0 1 0
+19 29 16 0 1 0
+19 29 17 0 1 0
+19 29 18 0 1 0.180176
+19 29 19 0 1 0.349121
+19 29 20 0 1 0.468018
+19 29 21 0 1 0.569336
+19 29 22 0 1 0.658691
+19 29 23 0 1 0.736328
+19 29 24 0 1 0.803711
+19 29 25 0 1 0.868652
+19 29 26 0 1 0.930664
+19 29 27 0 1 0.987305
+19 29 28 0 1 1
+19 29 29 0 1 1
+19 29 30 0 1 1
+19 29 31 0 0.979492 1
+19 30 0 0 1 0
+19 30 1 0 1 0
+19 30 2 0 1 0
+19 30 3 0 1 0
+19 30 4 0 1 0
+19 30 5 0 1 0
+19 30 6 0 1 0
+19 30 7 0 1 0
+19 30 8 0 1 0
+19 30 9 0 1 0
+19 30 10 0 1 0
+19 30 11 0 1 0
+19 30 12 0 1 0
+19 30 13 0 1 0
+19 30 14 0 1 0
+19 30 15 0 1 0
+19 30 16 0 1 0
+19 30 17 0 1 0
+19 30 18 0 1 0
+19 30 19 0 1 0.273438
+19 30 20 0 1 0.402832
+19 30 21 0 1 0.507324
+19 30 22 0 1 0.597656
+19 30 23 0 1 0.67627
+19 30 24 0 1 0.745117
+19 30 25 0 1 0.8125
+19 30 26 0 1 0.876953
+19 30 27 0 1 0.937988
+19 30 28 0 1 0.993652
+19 30 29 0 1 1
+19 30 30 0 1 1
+19 30 31 0 1 1
+19 31 0 0 1 0
+19 31 1 0 1 0
+19 31 2 0 1 0
+19 31 3 0 1 0
+19 31 4 0 1 0
+19 31 5 0 1 0
+19 31 6 0 1 0
+19 31 7 0 1 0
+19 31 8 0 1 0
+19 31 9 0 1 0
+19 31 10 0 1 0
+19 31 11 0 1 0
+19 31 12 0 1 0
+19 31 13 0 1 0
+19 31 14 0 1 0
+19 31 15 0 1 0
+19 31 16 0 1 0
+19 31 17 0 1 0
+19 31 18 0 1 0
+19 31 19 0 1 0.17627
+19 31 20 0 1 0.330322
+19 31 21 0 1 0.44043
+19 31 22 0 1 0.532715
+19 31 23 0 1 0.611816
+19 31 24 0 1 0.682129
+19 31 25 0 1 0.750488
+19 31 26 0 1 0.817871
+19 31 27 0 1 0.882812
+19 31 28 0 1 0.943359
+19 31 29 0 1 0.999023
+19 31 30 0 1 1
+19 31 31 0 1 1
+20 0 0 1 0 0
+20 0 1 1 0 0
+20 0 2 1 0 0
+20 0 3 1 0 0
+20 0 4 1 0 0
+20 0 5 1 0 0
+20 0 6 1 0 0
+20 0 7 1 0 0
+20 0 8 1 0 0
+20 0 9 1 0 0
+20 0 10 1 0 0
+20 0 11 1 0 0
+20 0 12 1 0 0
+20 0 13 1 0 0
+20 0 14 1 0 0.117432
+20 0 15 1 0 0.277832
+20 0 16 1 0 0.409668
+20 0 17 1 0 0.552734
+20 0 18 1 0 0.693359
+20 0 19 1 0.106628 0.805176
+20 0 20 1 0.144165 0.888672
+20 0 21 1 0.169189 0.956543
+20 0 22 0.930664 0.187012 1
+20 0 23 0.852539 0.198242 1
+20 0 24 0.774902 0.205322 1
+20 0 25 0.693848 0.210327 1
+20 0 26 0.609863 0.213989 1
+20 0 27 0.522461 0.216675 1
+20 0 28 0.430176 0.219116 1
+20 0 29 0.325195 0.221558 1
+20 0 30 0.181885 0.223999 1
+20 0 31 0 0.226807 1
+20 1 0 1 0 0
+20 1 1 1 0 0
+20 1 2 1 0 0
+20 1 3 1 0 0
+20 1 4 1 0 0
+20 1 5 1 0 0
+20 1 6 1 0 0
+20 1 7 1 0 0
+20 1 8 1 0 0
+20 1 9 1 0 0
+20 1 10 1 0 0
+20 1 11 1 0 0
+20 1 12 1 0 0
+20 1 13 1 0 0
+20 1 14 1 0 0.117432
+20 1 15 1 0 0.277832
+20 1 16 1 0 0.409668
+20 1 17 1 0 0.552734
+20 1 18 1 0 0.693359
+20 1 19 1 0.106689 0.805176
+20 1 20 1 0.144165 0.888672
+20 1 21 1 0.169312 0.956543
+20 1 22 0.930664 0.187012 1
+20 1 23 0.852539 0.198242 1
+20 1 24 0.774902 0.205322 1
+20 1 25 0.693848 0.210327 1
+20 1 26 0.609863 0.213989 1
+20 1 27 0.522461 0.216797 1
+20 1 28 0.429932 0.219116 1
+20 1 29 0.325195 0.221558 1
+20 1 30 0.181885 0.223999 1
+20 1 31 0 0.226807 1
+20 2 0 1 0 0
+20 2 1 1 0 0
+20 2 2 1 0 0
+20 2 3 1 0 0
+20 2 4 1 0 0
+20 2 5 1 0 0
+20 2 6 1 0 0
+20 2 7 1 0 0
+20 2 8 1 0 0
+20 2 9 1 0 0
+20 2 10 1 0 0
+20 2 11 1 0 0
+20 2 12 1 0 0
+20 2 13 1 0 0
+20 2 14 1 0 0.117432
+20 2 15 1 0 0.277832
+20 2 16 1 0 0.409668
+20 2 17 1 0 0.552734
+20 2 18 1 0 0.693359
+20 2 19 1 0.106812 0.805176
+20 2 20 1 0.144287 0.888672
+20 2 21 1 0.169312 0.956543
+20 2 22 0.930664 0.187134 1
+20 2 23 0.852539 0.198242 1
+20 2 24 0.774902 0.205444 1
+20 2 25 0.693848 0.210449 1
+20 2 26 0.609863 0.213989 1
+20 2 27 0.522461 0.216797 1
+20 2 28 0.429932 0.219116 1
+20 2 29 0.325195 0.221558 1
+20 2 30 0.181885 0.224121 1
+20 2 31 0 0.226807 1
+20 3 0 1 0 0
+20 3 1 1 0 0
+20 3 2 1 0 0
+20 3 3 1 0 0
+20 3 4 1 0 0
+20 3 5 1 0 0
+20 3 6 1 0 0
+20 3 7 1 0 0
+20 3 8 1 0 0
+20 3 9 1 0 0
+20 3 10 1 0 0
+20 3 11 1 0 0
+20 3 12 1 0 0
+20 3 13 1 0 0
+20 3 14 1 0 0.117432
+20 3 15 1 0 0.277832
+20 3 16 1 0 0.409668
+20 3 17 1 0 0.552734
+20 3 18 1 0 0.693359
+20 3 19 1 0.107056 0.805176
+20 3 20 1 0.144409 0.888672
+20 3 21 1 0.169556 0.956543
+20 3 22 0.930664 0.187134 1
+20 3 23 0.852539 0.198364 1
+20 3 24 0.774902 0.205444 1
+20 3 25 0.693848 0.210449 1
+20 3 26 0.609863 0.214111 1
+20 3 27 0.522461 0.216797 1
+20 3 28 0.429932 0.219238 1
+20 3 29 0.325195 0.221558 1
+20 3 30 0.181885 0.224121 1
+20 3 31 0 0.226807 1
+20 4 0 1 0 0
+20 4 1 1 0 0
+20 4 2 1 0 0
+20 4 3 1 0 0
+20 4 4 1 0 0
+20 4 5 1 0 0
+20 4 6 1 0 0
+20 4 7 1 0 0
+20 4 8 1 0 0
+20 4 9 1 0 0
+20 4 10 1 0 0
+20 4 11 1 0 0
+20 4 12 1 0 0
+20 4 13 1 0 0
+20 4 14 1 0 0.117371
+20 4 15 1 0 0.277832
+20 4 16 1 0 0.409668
+20 4 17 1 0 0.552734
+20 4 18 1 0 0.693359
+20 4 19 1 0.107544 0.805176
+20 4 20 1 0.144775 0.888672
+20 4 21 1 0.1698 0.956543
+20 4 22 0.930664 0.187378 1
+20 4 23 0.852539 0.198608 1
+20 4 24 0.774902 0.205566 1
+20 4 25 0.693848 0.210571 1
+20 4 26 0.609863 0.214111 1
+20 4 27 0.522461 0.216919 1
+20 4 28 0.429932 0.219238 1
+20 4 29 0.325195 0.22168 1
+20 4 30 0.181885 0.224121 1
+20 4 31 0 0.226929 1
+20 5 0 1 0 0
+20 5 1 1 0 0
+20 5 2 1 0 0
+20 5 3 1 0 0
+20 5 4 1 0 0
+20 5 5 1 0 0
+20 5 6 1 0 0
+20 5 7 1 0 0
+20 5 8 1 0 0
+20 5 9 1 0 0
+20 5 10 1 0 0
+20 5 11 1 0 0
+20 5 12 1 0 0
+20 5 13 1 0 0
+20 5 14 1 0 0.11731
+20 5 15 1 0 0.277832
+20 5 16 1 0 0.409668
+20 5 17 1 0 0.552734
+20 5 18 1 0 0.693359
+20 5 19 1 0.108459 0.805176
+20 5 20 1 0.145386 0.888672
+20 5 21 1 0.170288 0.956543
+20 5 22 0.930664 0.187744 1
+20 5 23 0.852539 0.198853 1
+20 5 24 0.774902 0.205933 1
+20 5 25 0.693848 0.210815 1
+20 5 26 0.609863 0.214355 1
+20 5 27 0.522461 0.217041 1
+20 5 28 0.429932 0.21936 1
+20 5 29 0.325195 0.221802 1
+20 5 30 0.181763 0.224243 1
+20 5 31 0 0.226929 1
+20 6 0 1 0 0
+20 6 1 1 0 0
+20 6 2 1 0 0
+20 6 3 1 0 0
+20 6 4 1 0 0
+20 6 5 1 0 0
+20 6 6 1 0 0
+20 6 7 1 0 0
+20 6 8 1 0 0
+20 6 9 1 0 0
+20 6 10 1 0 0
+20 6 11 1 0 0
+20 6 12 1 0 0
+20 6 13 1 0 0
+20 6 14 1 0 0.117188
+20 6 15 1 0 0.277832
+20 6 16 1 0 0.409668
+20 6 17 1 0 0.552734
+20 6 18 1 0 0.693359
+20 6 19 1 0.110107 0.805176
+20 6 20 1 0.146606 0.888672
+20 6 21 1 0.171143 0.956543
+20 6 22 0.930664 0.188599 1
+20 6 23 0.852539 0.199463 1
+20 6 24 0.774902 0.206421 1
+20 6 25 0.693848 0.211304 1
+20 6 26 0.609375 0.214722 1
+20 6 27 0.522461 0.217407 1
+20 6 28 0.429932 0.219727 1
+20 6 29 0.324951 0.222046 1
+20 6 30 0.181641 0.224487 1
+20 6 31 0 0.227173 1
+20 7 0 1 0 0
+20 7 1 1 0 0
+20 7 2 1 0 0
+20 7 3 1 0 0
+20 7 4 1 0 0
+20 7 5 1 0 0
+20 7 6 1 0 0
+20 7 7 1 0 0
+20 7 8 1 0 0
+20 7 9 1 0 0
+20 7 10 1 0 0
+20 7 11 1 0 0
+20 7 12 1 0 0
+20 7 13 1 0 0
+20 7 14 1 0 0.117004
+20 7 15 1 0 0.277588
+20 7 16 1 0 0.409424
+20 7 17 1 0 0.552734
+20 7 18 1 0 0.692871
+20 7 19 1 0.113342 0.805176
+20 7 20 1 0.148926 0.888672
+20 7 21 1 0.172974 0.956543
+20 7 22 0.930176 0.190063 1
+20 7 23 0.852051 0.200684 1
+20 7 24 0.774902 0.207397 1
+20 7 25 0.693848 0.212158 1
+20 7 26 0.609375 0.215454 1
+20 7 27 0.521973 0.218018 1
+20 7 28 0.429688 0.220215 1
+20 7 29 0.324707 0.222412 1
+20 7 30 0.181274 0.224854 1
+20 7 31 0 0.227417 1
+20 8 0 1 0 0
+20 8 1 1 0 0
+20 8 2 1 0 0
+20 8 3 1 0 0
+20 8 4 1 0 0
+20 8 5 1 0 0
+20 8 6 1 0 0
+20 8 7 1 0 0
+20 8 8 1 0 0
+20 8 9 1 0 0
+20 8 10 1 0 0
+20 8 11 1 0 0
+20 8 12 1 0 0
+20 8 13 1 0 0
+20 8 14 1 0 0.116516
+20 8 15 1 0 0.277344
+20 8 16 1 0 0.409424
+20 8 17 1 0 0.552734
+20 8 18 1 0 0.692871
+20 8 19 1 0.119385 0.805176
+20 8 20 1 0.15332 0.888672
+20 8 21 1 0.176514 0.956543
+20 8 22 0.930176 0.192871 1
+20 8 23 0.852051 0.203125 1
+20 8 24 0.774414 0.209351 1
+20 8 25 0.693359 0.213745 1
+20 8 26 0.609375 0.216797 1
+20 8 27 0.521973 0.219116 1
+20 8 28 0.429443 0.221191 1
+20 8 29 0.324463 0.223267 1
+20 8 30 0.180664 0.225464 1
+20 8 31 0 0.228027 1
+20 9 0 1 0 0
+20 9 1 1 0 0
+20 9 2 1 0 0
+20 9 3 1 0 0
+20 9 4 1 0 0
+20 9 5 1 0 0
+20 9 6 1 0 0
+20 9 7 1 0 0
+20 9 8 1 0 0
+20 9 9 1 0 0
+20 9 10 1 0 0
+20 9 11 1 0 0
+20 9 12 1 0 0
+20 9 13 1 0 0
+20 9 14 1 0 0.115723
+20 9 15 1 0 0.276855
+20 9 16 1 0 0.408936
+20 9 17 1 0 0.552246
+20 9 18 1 0 0.692871
+20 9 19 1 0.130249 0.805176
+20 9 20 1 0.161499 0.888672
+20 9 21 1 0.183105 0.956543
+20 9 22 0.929688 0.198242 1
+20 9 23 0.851562 0.20752 1
+20 9 24 0.773926 0.213135 1
+20 9 25 0.692871 0.216919 1
+20 9 26 0.608887 0.219482 1
+20 9 27 0.521484 0.221436 1
+20 9 28 0.428955 0.223022 1
+20 9 29 0.32373 0.224854 1
+20 9 30 0.179565 0.226929 1
+20 9 31 0 0.229248 1
+20 10 0 1 0 0
+20 10 1 1 0 0
+20 10 2 1 0 0
+20 10 3 1 0 0
+20 10 4 1 0 0
+20 10 5 1 0 0
+20 10 6 1 0 0
+20 10 7 1 0 0
+20 10 8 1 0 0
+20 10 9 1 0 0
+20 10 10 1 0 0
+20 10 11 1 0 0
+20 10 12 1 0 0
+20 10 13 1 0 0
+20 10 14 1 0 0.114319
+20 10 15 1 0 0.275635
+20 10 16 1 0 0.408447
+20 10 17 1 0 0.55127
+20 10 18 1 0 0.692383
+20 10 19 1 0.147827 0.804688
+20 10 20 1 0.175293 0.888672
+20 10 21 1 0.194336 0.956543
+20 10 22 0.928711 0.20752 1
+20 10 23 0.850586 0.215332 1
+20 10 24 0.772949 0.219727 1
+20 10 25 0.691895 0.222534 1
+20 10 26 0.60791 0.224243 1
+20 10 27 0.520508 0.225342 1
+20 10 28 0.427979 0.22644 1
+20 10 29 0.32251 0.227783 1
+20 10 30 0.17749 0.22937 1
+20 10 31 0 0.231323 1
+20 11 0 1 0 0
+20 11 1 1 0 0
+20 11 2 1 0 0
+20 11 3 1 0 0
+20 11 4 1 0 0
+20 11 5 1 0 0
+20 11 6 1 0 0
+20 11 7 1 0 0
+20 11 8 1 0 0
+20 11 9 1 0 0
+20 11 10 1 0 0
+20 11 11 1 0 0
+20 11 12 1 0 0
+20 11 13 1 0 0
+20 11 14 1 0 0.112061
+20 11 15 1 0 0.273926
+20 11 16 1 0 0.407227
+20 11 17 1 0 0.549805
+20 11 18 1 0.0701294 0.691406
+20 11 19 1 0.174438 0.804688
+20 11 20 1 0.197021 0.888184
+20 11 21 1 0.212524 0.956055
+20 11 22 0.927246 0.222778 1
+20 11 23 0.849121 0.228271 1
+20 11 24 0.771484 0.230835 1
+20 11 25 0.69043 0.231934 1
+20 11 26 0.606445 0.232178 1
+20 11 27 0.519043 0.232178 1
+20 11 28 0.42627 0.2323 1
+20 11 29 0.320557 0.232666 1
+20 11 30 0.173828 0.233521 1
+20 11 31 0 0.234985 1
+20 12 0 1 0 0
+20 12 1 1 0 0
+20 12 2 1 0 0
+20 12 3 1 0 0
+20 12 4 1 0 0
+20 12 5 1 0 0
+20 12 6 1 0 0
+20 12 7 1 0 0
+20 12 8 1 0 0
+20 12 9 1 0 0
+20 12 10 1 0 0
+20 12 11 1 0 0
+20 12 12 1 0 0
+20 12 13 1 0 0
+20 12 14 1 0 0.108765
+20 12 15 1 0 0.27124
+20 12 16 1 0 0.405762
+20 12 17 1 0 0.547363
+20 12 18 1 0.136841 0.689941
+20 12 19 1 0.212036 0.803711
+20 12 20 1 0.229004 0.888184
+20 12 21 0.997559 0.240112 0.956055
+20 12 22 0.924316 0.24646 1
+20 12 23 0.846191 0.248657 1
+20 12 24 0.769043 0.248413 1
+20 12 25 0.6875 0.24707 1
+20 12 26 0.603516 0.245239 1
+20 12 27 0.516113 0.243408 1
+20 12 28 0.423096 0.241821 1
+20 12 29 0.31665 0.240967 1
+20 12 30 0.167236 0.240601 1
+20 12 31 0 0.240967 1
+20 13 0 1 0 0
+20 13 1 1 0 0
+20 13 2 1 0 0
+20 13 3 1 0 0
+20 13 4 1 0 0
+20 13 5 1 0 0
+20 13 6 1 0 0
+20 13 7 1 0 0
+20 13 8 1 0 0
+20 13 9 1 0 0
+20 13 10 1 0 0
+20 13 11 1 0 0
+20 13 12 1 0 0
+20 13 13 1 0 0
+20 13 14 1 0 0.105164
+20 13 15 1 0 0.267822
+20 13 16 1 0 0.403564
+20 13 17 1 0.0733032 0.543457
+20 13 18 1 0.203613 0.687012
+20 13 19 1 0.260986 0.802734
+20 13 20 1 0.272705 0.887207
+20 13 21 0.992676 0.278809 0.955566
+20 13 22 0.919922 0.280518 1
+20 13 23 0.841797 0.27832 1
+20 13 24 0.76416 0.274658 1
+20 13 25 0.683105 0.27002 1
+20 13 26 0.599121 0.265137 1
+20 13 27 0.51123 0.260498 1
+20 13 28 0.417969 0.256592 1
+20 13 29 0.310547 0.253662 1
+20 13 30 0.155884 0.251709 1
+20 13 31 0 0.250732 1
+20 14 0 1 0.174438 0
+20 14 1 1 0.174438 0
+20 14 2 1 0.174438 0
+20 14 3 1 0.174438 0
+20 14 4 1 0.174438 0
+20 14 5 1 0.174561 0
+20 14 6 1 0.174561 0
+20 14 7 1 0.174805 0
+20 14 8 1 0.175049 0
+20 14 9 1 0.175781 0
+20 14 10 1 0.17688 0
+20 14 11 1 0.178833 0
+20 14 12 1 0.182129 0
+20 14 13 1 0.17981 0
+20 14 14 1 0.172974 0.104004
+20 14 15 1 0.165649 0.264648
+20 14 16 1 0.171387 0.401611
+20 14 17 1 0.199951 0.537598
+20 14 18 1 0.275635 0.682617
+20 14 19 1 0.322021 0.800781
+20 14 20 1 0.328857 0.88623
+20 14 21 0.98584 0.330078 0.95459
+20 14 22 0.912598 0.326416 1
+20 14 23 0.834473 0.319336 1
+20 14 24 0.756836 0.311035 1
+20 14 25 0.675781 0.302246 1
+20 14 26 0.591797 0.293457 1
+20 14 27 0.503906 0.2854 1
+20 14 28 0.409912 0.278564 1
+20 14 29 0.300293 0.272949 1
+20 14 30 0.13562 0.268311 1
+20 14 31 0 0.265137 1
+20 15 0 1 0.300049 0
+20 15 1 1 0.300049 0
+20 15 2 1 0.300049 0
+20 15 3 1 0.300049 0
+20 15 4 1 0.300049 0
+20 15 5 1 0.300049 0
+20 15 6 1 0.300049 0
+20 15 7 1 0.300293 0
+20 15 8 1 0.300293 0
+20 15 9 1 0.300781 0
+20 15 10 1 0.301514 0
+20 15 11 1 0.30249 0
+20 15 12 1 0.304443 0
+20 15 13 1 0.302246 0
+20 15 14 1 0.298584 0.111389
+20 15 15 1 0.293457 0.264893
+20 15 16 1 0.29126 0.395752
+20 15 17 1 0.303467 0.529297
+20 15 18 1 0.354004 0.674316
+20 15 19 1 0.394531 0.797363
+20 15 20 1 0.397461 0.883789
+20 15 21 0.974121 0.393555 0.953125
+20 15 22 0.900879 0.384277 0.999512
+20 15 23 0.822754 0.371582 1
+20 15 24 0.745605 0.358398 1
+20 15 25 0.664551 0.344727 1
+20 15 26 0.580078 0.331543 1
+20 15 27 0.492188 0.319336 1
+20 15 28 0.396973 0.308594 1
+20 15 29 0.283936 0.299561 1
+20 15 30 0.0966797 0.291992 1
+20 15 31 0 0.285889 1
+20 16 0 1 0.419678 0
+20 16 1 1 0.419678 0
+20 16 2 1 0.419678 0
+20 16 3 1 0.419678 0
+20 16 4 1 0.419678 0
+20 16 5 1 0.419678 0
+20 16 6 1 0.419922 0
+20 16 7 1 0.419922 0
+20 16 8 1 0.419922 0
+20 16 9 1 0.420166 0
+20 16 10 1 0.420654 0
+20 16 11 1 0.421387 0
+20 16 12 1 0.422852 0
+20 16 13 1 0.422363 0
+20 16 14 1 0.420166 0.132568
+20 16 15 1 0.416016 0.27417
+20 16 16 1 0.409912 0.395264
+20 16 17 1 0.412109 0.522461
+20 16 18 1 0.438965 0.660645
+20 16 19 1 0.477295 0.791504
+20 16 20 1 0.477295 0.879883
+20 16 21 0.956055 0.468994 0.950195
+20 16 22 0.882812 0.453857 0.996582
+20 16 23 0.804688 0.435303 1
+20 16 24 0.727539 0.416748 1
+20 16 25 0.646973 0.397949 1
+20 16 26 0.562988 0.379639 1
+20 16 27 0.474121 0.362793 1
+20 16 28 0.376709 0.3479 1
+20 16 29 0.25708 0.334717 1
+20 16 30 0 0.323486 1
+20 16 31 0 0.314209 1
+20 17 0 1 0.541992 0
+20 17 1 1 0.541992 0
+20 17 2 1 0.541992 0
+20 17 3 1 0.541992 0
+20 17 4 1 0.541992 0
+20 17 5 1 0.541992 0
+20 17 6 1 0.541992 0
+20 17 7 1 0.541992 0
+20 17 8 1 0.54248 0
+20 17 9 1 0.54248 0
+20 17 10 1 0.542969 0
+20 17 11 1 0.543457 0
+20 17 12 1 0.544434 0
+20 17 13 1 0.544922 0
+20 17 14 1 0.543945 0.15979
+20 17 15 1 0.541504 0.29248
+20 17 16 1 0.535645 0.407471
+20 17 17 1 0.525879 0.518555
+20 17 18 1 0.529785 0.64209
+20 17 19 1 0.56543 0.780273
+20 17 20 0.986816 0.56543 0.873535
+20 17 21 0.928711 0.552246 0.944824
+20 17 22 0.855469 0.53125 0.991211
+20 17 23 0.777832 0.507324 1
+20 17 24 0.70166 0.483398 1
+20 17 25 0.621582 0.459473 1
+20 17 26 0.537598 0.436523 1
+20 17 27 0.44751 0.414795 1
+20 17 28 0.346191 0.395264 1
+20 17 29 0.212891 0.37793 1
+20 17 30 0 0.362793 1
+20 17 31 0 0.349365 1
+20 18 0 1 0.662598 0
+20 18 1 1 0.662598 0
+20 18 2 1 0.662598 0
+20 18 3 1 0.662598 0
+20 18 4 1 0.662598 0
+20 18 5 1 0.662598 0
+20 18 6 1 0.662598 0
+20 18 7 1 0.662598 0
+20 18 8 1 0.662598 0
+20 18 9 1 0.662598 0
+20 18 10 1 0.663086 0
+20 18 11 1 0.663574 0
+20 18 12 1 0.664062 0
+20 18 13 1 0.665039 0
+20 18 14 1 0.665527 0.170166
+20 18 15 1 0.665039 0.305908
+20 18 16 1 0.662109 0.423828
+20 18 17 1 0.652832 0.533203
+20 18 18 0.984375 0.636719 0.633789
+20 18 19 0.975586 0.650391 0.759766
+20 18 20 0.947754 0.65625 0.863281
+20 18 21 0.890137 0.639648 0.935547
+20 18 22 0.816895 0.612793 0.982422
+20 18 23 0.740723 0.583496 1
+20 18 24 0.666016 0.555176 1
+20 18 25 0.586914 0.526855 1
+20 18 26 0.502441 0.499512 1
+20 18 27 0.409668 0.473633 1
+20 18 28 0.300049 0.449707 1
+20 18 29 0.129883 0.427979 1
+20 18 30 0 0.408447 1
+20 18 31 0 0.391113 1
+20 19 0 1 0.774414 0
+20 19 1 1 0.774414 0
+20 19 2 1 0.774414 0
+20 19 3 1 0.774414 0
+20 19 4 1 0.774414 0
+20 19 5 1 0.774414 0
+20 19 6 1 0.774414 0
+20 19 7 1 0.774414 0
+20 19 8 1 0.774414 0
+20 19 9 1 0.774414 0
+20 19 10 1 0.774902 0
+20 19 11 1 0.774902 0
+20 19 12 1 0.775879 0
+20 19 13 1 0.776367 0
+20 19 14 1 0.776367 0.13562
+20 19 15 1 0.776367 0.293945
+20 19 16 1 0.775879 0.422119
+20 19 17 1 0.771973 0.540527
+20 19 18 0.968262 0.76123 0.647949
+20 19 19 0.917969 0.73877 0.738281
+20 19 20 0.89502 0.745605 0.848145
+20 19 21 0.837402 0.724609 0.92041
+20 19 22 0.765137 0.693359 0.96875
+20 19 23 0.691895 0.660645 1
+20 19 24 0.619141 0.629883 1
+20 19 25 0.541016 0.598633 1
+20 19 26 0.454834 0.567383 1
+20 19 27 0.355713 0.537598 1
+20 19 28 0.226074 0.509277 1
+20 19 29 0 0.483154 1
+20 19 30 0 0.459229 1
+20 19 31 0 0.436768 1
+20 20 0 0.988281 0.87207 0
+20 20 1 0.988281 0.87207 0
+20 20 2 0.988281 0.87207 0
+20 20 3 0.988281 0.87207 0
+20 20 4 0.988281 0.87207 0
+20 20 5 0.988281 0.87207 0
+20 20 6 0.988281 0.87207 0
+20 20 7 0.988281 0.87207 0
+20 20 8 0.988281 0.87207 0
+20 20 9 0.988281 0.87207 0
+20 20 10 0.988281 0.87207 0
+20 20 11 0.988281 0.872559 0
+20 20 12 0.988281 0.872559 0
+20 20 13 0.988281 0.873535 0
+20 20 14 0.983887 0.873535 0
+20 20 15 0.976562 0.873535 0.253906
+20 20 16 0.964355 0.872559 0.396484
+20 20 17 0.945312 0.869141 0.522461
+20 20 18 0.91748 0.862305 0.638672
+20 20 19 0.878906 0.849121 0.742188
+20 20 20 0.828613 0.828613 0.828613
+20 20 21 0.770508 0.804199 0.901367
+20 20 22 0.703125 0.772949 0.955566
+20 20 23 0.632812 0.739258 0.993652
+20 20 24 0.561035 0.706543 1
+20 20 25 0.480957 0.671875 1
+20 20 26 0.388428 0.637207 1
+20 20 27 0.272705 0.602539 1
+20 20 28 0.0461731 0.569336 1
+20 20 29 0 0.538574 1
+20 20 30 0 0.509766 1
+20 20 31 0 0.48291 1
+20 21 0 0.899902 0.94873 0
+20 21 1 0.899902 0.94873 0
+20 21 2 0.899902 0.94873 0
+20 21 3 0.899902 0.94873 0
+20 21 4 0.899902 0.94873 0
+20 21 5 0.899902 0.94873 0
+20 21 6 0.899902 0.94873 0
+20 21 7 0.899902 0.94873 0
+20 21 8 0.899902 0.94873 0
+20 21 9 0.899902 0.94873 0
+20 21 10 0.899902 0.94873 0
+20 21 11 0.899902 0.949219 0
+20 21 12 0.899902 0.949219 0
+20 21 13 0.899414 0.949707 0
+20 21 14 0.896484 0.950195 0
+20 21 15 0.88916 0.950684 0.188721
+20 21 16 0.876953 0.949219 0.355469
+20 21 17 0.85791 0.945801 0.48877
+20 21 18 0.82959 0.9375 0.60791
+20 21 19 0.790527 0.922363 0.712402
+20 21 20 0.745117 0.905273 0.804199
+20 21 21 0.695312 0.888184 0.888184
+20 21 22 0.630371 0.858398 0.949707
+20 21 23 0.558105 0.821777 0.990723
+20 21 24 0.48291 0.785645 1
+20 21 25 0.395264 0.747559 1
+20 21 26 0.284668 0.708496 1
+20 21 27 0.0900879 0.669922 1
+20 21 28 0 0.631836 1
+20 21 29 0 0.596191 1
+20 21 30 0 0.562988 1
+20 21 31 0 0.531738 1
+20 22 0 0.789062 1 0
+20 22 1 0.789062 1 0
+20 22 2 0.789062 1 0
+20 22 3 0.789062 1 0
+20 22 4 0.789062 1 0
+20 22 5 0.789062 1 0
+20 22 6 0.789062 1 0
+20 22 7 0.789062 1 0
+20 22 8 0.789062 1 0
+20 22 9 0.789062 1 0
+20 22 10 0.789062 1 0
+20 22 11 0.789062 1 0
+20 22 12 0.789062 1 0
+20 22 13 0.789062 1 0
+20 22 14 0.787109 1 0
+20 22 15 0.779297 1 0.0769043
+20 22 16 0.76709 1 0.303711
+20 22 17 0.748535 1 0.446533
+20 22 18 0.720703 0.99707 0.569336
+20 22 19 0.68457 0.985352 0.678223
+20 22 20 0.641602 0.972656 0.775391
+20 22 21 0.590332 0.957031 0.862305
+20 22 22 0.528809 0.936035 0.936035
+20 22 23 0.455566 0.905762 0.98877
+20 22 24 0.369873 0.868652 1
+20 22 25 0.254883 0.827637 1
+20 22 26 0 0.78418 1
+20 22 27 0 0.740723 1
+20 22 28 0 0.698242 1
+20 22 29 0 0.657227 1
+20 22 30 0 0.619141 1
+20 22 31 0 0.583008 1
+20 23 0 0.666016 1 0
+20 23 1 0.666016 1 0
+20 23 2 0.666016 1 0
+20 23 3 0.666016 1 0
+20 23 4 0.666016 1 0
+20 23 5 0.666016 1 0
+20 23 6 0.666016 1 0
+20 23 7 0.666016 1 0
+20 23 8 0.666016 1 0
+20 23 9 0.666016 1 0
+20 23 10 0.666016 1 0
+20 23 11 0.666016 1 0
+20 23 12 0.666016 1 0
+20 23 13 0.666016 1 0
+20 23 14 0.665039 1 0
+20 23 15 0.657227 1 0
+20 23 16 0.644531 1 0.244507
+20 23 17 0.625 1 0.4021
+20 23 18 0.597168 1 0.530273
+20 23 19 0.560059 1 0.643066
+20 23 20 0.514648 1 0.743652
+20 23 21 0.456299 1 0.833008
+20 23 22 0.382324 0.995605 0.909668
+20 23 23 0.287598 0.972168 0.972168
+20 23 24 0.136597 0.942383 1
+20 23 25 0 0.902832 1
+20 23 26 0 0.85791 1
+20 23 27 0 0.811035 1
+20 23 28 0 0.76416 1
+20 23 29 0 0.71875 1
+20 23 30 0 0.675293 1
+20 23 31 0 0.634766 1
+20 24 0 0.524902 1 0
+20 24 1 0.524902 1 0
+20 24 2 0.524902 1 0
+20 24 3 0.524902 1 0
+20 24 4 0.524902 1 0
+20 24 5 0.524902 1 0
+20 24 6 0.524902 1 0
+20 24 7 0.524902 1 0
+20 24 8 0.524902 1 0
+20 24 9 0.524902 1 0
+20 24 10 0.524902 1 0
+20 24 11 0.524902 1 0
+20 24 12 0.524902 1 0
+20 24 13 0.524902 1 0
+20 24 14 0.524902 1 0
+20 24 15 0.516113 1 0
+20 24 16 0.500977 1 0.172729
+20 24 17 0.478271 1 0.355713
+20 24 18 0.445312 1 0.490479
+20 24 19 0.399414 1 0.606934
+20 24 20 0.337402 1 0.709961
+20 24 21 0.245972 1 0.801758
+20 24 22 0.0404053 1 0.881348
+20 24 23 0 1 0.946777
+20 24 24 0 1 1
+20 24 25 0 0.967773 1
+20 24 26 0 0.925293 1
+20 24 27 0 0.87793 1
+20 24 28 0 0.828125 1
+20 24 29 0 0.778809 1
+20 24 30 0 0.731445 1
+20 24 31 0 0.686035 1
+20 25 0 0.314697 1 0
+20 25 1 0.314697 1 0
+20 25 2 0.314697 1 0
+20 25 3 0.314697 1 0
+20 25 4 0.314697 1 0
+20 25 5 0.314697 1 0
+20 25 6 0.314697 1 0
+20 25 7 0.314697 1 0
+20 25 8 0.314697 1 0
+20 25 9 0.314697 1 0
+20 25 10 0.314697 1 0
+20 25 11 0.314697 1 0
+20 25 12 0.314941 1 0
+20 25 13 0.315186 1 0
+20 25 14 0.315674 1 0
+20 25 15 0.303711 1 0
+20 25 16 0.276123 1 0.0325623
+20 25 17 0.231201 1 0.301514
+20 25 18 0.149292 1 0.445801
+20 25 19 0 1 0.565918
+20 25 20 0 1 0.670898
+20 25 21 0 1 0.765137
+20 25 22 0 1 0.847168
+20 25 23 0 1 0.916016
+20 25 24 0 1 0.973145
+20 25 25 0 1 1
+20 25 26 0 0.98877 1
+20 25 27 0 0.943848 1
+20 25 28 0 0.894043 1
+20 25 29 0 0.842285 1
+20 25 30 0 0.791016 1
+20 25 31 0 0.741699 1
+20 26 0 0 1 0
+20 26 1 0 1 0
+20 26 2 0 1 0
+20 26 3 0 1 0
+20 26 4 0 1 0
+20 26 5 0 1 0
+20 26 6 0 1 0
+20 26 7 0 1 0
+20 26 8 0 1 0
+20 26 9 0 1 0
+20 26 10 0 1 0
+20 26 11 0 1 0
+20 26 12 0 1 0
+20 26 13 0 1 0
+20 26 14 0 1 0
+20 26 15 0 1 0
+20 26 16 0 1 0
+20 26 17 0 1 0.234741
+20 26 18 0 1 0.39502
+20 26 19 0 1 0.52002
+20 26 20 0 1 0.627441
+20 26 21 0 1 0.723145
+20 26 22 0 1 0.807617
+20 26 23 0 1 0.879395
+20 26 24 0 1 0.939941
+20 26 25 0 1 0.995605
+20 26 26 0 1 1
+20 26 27 0 1 1
+20 26 28 0 0.958496 1
+20 26 29 0 0.907227 1
+20 26 30 0 0.853516 1
+20 26 31 0 0.800781 1
+20 27 0 0 1 0
+20 27 1 0 1 0
+20 27 2 0 1 0
+20 27 3 0 1 0
+20 27 4 0 1 0
+20 27 5 0 1 0
+20 27 6 0 1 0
+20 27 7 0 1 0
+20 27 8 0 1 0
+20 27 9 0 1 0
+20 27 10 0 1 0
+20 27 11 0 1 0
+20 27 12 0 1 0
+20 27 13 0 1 0
+20 27 14 0 1 0
+20 27 15 0 1 0
+20 27 16 0 1 0
+20 27 17 0 1 0.139404
+20 27 18 0 1 0.33667
+20 27 19 0 1 0.468506
+20 27 20 0 1 0.578613
+20 27 21 0 1 0.67627
+20 27 22 0 1 0.762695
+20 27 23 0 1 0.836914
+20 27 24 0 1 0.899902
+20 27 25 0 1 0.959473
+20 27 26 0 1 1
+20 27 27 0 1 1
+20 27 28 0 1 1
+20 27 29 0 0.969238 1
+20 27 30 0 0.916016 1
+20 27 31 0 0.861328 1
+20 28 0 0 1 0
+20 28 1 0 1 0
+20 28 2 0 1 0
+20 28 3 0 1 0
+20 28 4 0 1 0
+20 28 5 0 1 0
+20 28 6 0 1 0
+20 28 7 0 1 0
+20 28 8 0 1 0
+20 28 9 0 1 0
+20 28 10 0 1 0
+20 28 11 0 1 0
+20 28 12 0 1 0
+20 28 13 0 1 0
+20 28 14 0 1 0
+20 28 15 0 1 0
+20 28 16 0 1 0
+20 28 17 0 1 0
+20 28 18 0 1 0.267334
+20 28 19 0 1 0.411377
+20 28 20 0 1 0.524902
+20 28 21 0 1 0.624023
+20 28 22 0 1 0.712402
+20 28 23 0 1 0.788086
+20 28 24 0 1 0.854004
+20 28 25 0 1 0.916504
+20 28 26 0 1 0.975098
+20 28 27 0 1 1
+20 28 28 0 1 1
+20 28 29 0 1 1
+20 28 30 0 0.975586 1
+20 28 31 0 0.921387 1
+20 29 0 0 1 0
+20 29 1 0 1 0
+20 29 2 0 1 0
+20 29 3 0 1 0
+20 29 4 0 1 0
+20 29 5 0 1 0
+20 29 6 0 1 0
+20 29 7 0 1 0
+20 29 8 0 1 0
+20 29 9 0 1 0
+20 29 10 0 1 0
+20 29 11 0 1 0
+20 29 12 0 1 0
+20 29 13 0 1 0
+20 29 14 0 1 0
+20 29 15 0 1 0
+20 29 16 0 1 0
+20 29 17 0 1 0
+20 29 18 0 1 0.175537
+20 29 19 0 1 0.34668
+20 29 20 0 1 0.46582
+20 29 21 0 1 0.567383
+20 29 22 0 1 0.656738
+20 29 23 0 1 0.734375
+20 29 24 0 1 0.801758
+20 29 25 0 1 0.867188
+20 29 26 0 1 0.929199
+20 29 27 0 1 0.986328
+20 29 28 0 1 1
+20 29 29 0 1 1
+20 29 30 0 1 1
+20 29 31 0 0.980469 1
+20 30 0 0 1 0
+20 30 1 0 1 0
+20 30 2 0 1 0
+20 30 3 0 1 0
+20 30 4 0 1 0
+20 30 5 0 1 0
+20 30 6 0 1 0
+20 30 7 0 1 0
+20 30 8 0 1 0
+20 30 9 0 1 0
+20 30 10 0 1 0
+20 30 11 0 1 0
+20 30 12 0 1 0
+20 30 13 0 1 0
+20 30 14 0 1 0
+20 30 15 0 1 0
+20 30 16 0 1 0
+20 30 17 0 1 0
+20 30 18 0 1 0
+20 30 19 0 1 0.270996
+20 30 20 0 1 0.401123
+20 30 21 0 1 0.505859
+20 30 22 0 1 0.59668
+20 30 23 0 1 0.674805
+20 30 24 0 1 0.744141
+20 30 25 0 1 0.811035
+20 30 26 0 1 0.875977
+20 30 27 0 1 0.937012
+20 30 28 0 1 0.993164
+20 30 29 0 1 1
+20 30 30 0 1 1
+20 30 31 0 1 1
+20 31 0 0 1 0
+20 31 1 0 1 0
+20 31 2 0 1 0
+20 31 3 0 1 0
+20 31 4 0 1 0
+20 31 5 0 1 0
+20 31 6 0 1 0
+20 31 7 0 1 0
+20 31 8 0 1 0
+20 31 9 0 1 0
+20 31 10 0 1 0
+20 31 11 0 1 0
+20 31 12 0 1 0
+20 31 13 0 1 0
+20 31 14 0 1 0
+20 31 15 0 1 0
+20 31 16 0 1 0
+20 31 17 0 1 0
+20 31 18 0 1 0
+20 31 19 0 1 0.173096
+20 31 20 0 1 0.328857
+20 31 21 0 1 0.439453
+20 31 22 0 1 0.532227
+20 31 23 0 1 0.611328
+20 31 24 0 1 0.681152
+20 31 25 0 1 0.75
+20 31 26 0 1 0.817383
+20 31 27 0 1 0.882324
+20 31 28 0 1 0.943359
+20 31 29 0 1 0.999023
+20 31 30 0 1 1
+20 31 31 0 1 1
+21 0 0 1 0 0
+21 0 1 1 0 0
+21 0 2 1 0 0
+21 0 3 1 0 0
+21 0 4 1 0 0
+21 0 5 1 0 0
+21 0 6 1 0 0
+21 0 7 1 0 0
+21 0 8 1 0 0
+21 0 9 1 0 0
+21 0 10 1 0 0
+21 0 11 1 0 0
+21 0 12 1 0 0
+21 0 13 1 0 0
+21 0 14 1 0 0
+21 0 15 1 0 0.221802
+21 0 16 1 0 0.364746
+21 0 17 1 0 0.5
+21 0 18 1 0 0.641113
+21 0 19 1 0 0.768555
+21 0 20 1 0.12207 0.864746
+21 0 21 1 0.154663 0.938965
+21 0 22 1 0.177124 0.99707
+21 0 23 0.992676 0.192749 1
+21 0 24 0.919434 0.203003 1
+21 0 25 0.839355 0.210449 1
+21 0 26 0.755371 0.21582 1
+21 0 27 0.668457 0.219482 1
+21 0 28 0.57959 0.22229 1
+21 0 29 0.487549 0.224731 1
+21 0 30 0.387451 0.226929 1
+21 0 31 0.265625 0.229248 1
+21 1 0 1 0 0
+21 1 1 1 0 0
+21 1 2 1 0 0
+21 1 3 1 0 0
+21 1 4 1 0 0
+21 1 5 1 0 0
+21 1 6 1 0 0
+21 1 7 1 0 0
+21 1 8 1 0 0
+21 1 9 1 0 0
+21 1 10 1 0 0
+21 1 11 1 0 0
+21 1 12 1 0 0
+21 1 13 1 0 0
+21 1 14 1 0 0
+21 1 15 1 0 0.221802
+21 1 16 1 0 0.364746
+21 1 17 1 0 0.5
+21 1 18 1 0 0.641113
+21 1 19 1 0 0.768555
+21 1 20 1 0.122131 0.864746
+21 1 21 1 0.154785 0.938965
+21 1 22 1 0.177246 0.99707
+21 1 23 0.992676 0.192749 1
+21 1 24 0.919434 0.203125 1
+21 1 25 0.839355 0.210571 1
+21 1 26 0.755371 0.21582 1
+21 1 27 0.668457 0.219482 1
+21 1 28 0.57959 0.22229 1
+21 1 29 0.487549 0.224731 1
+21 1 30 0.387451 0.226929 1
+21 1 31 0.265625 0.229248 1
+21 2 0 1 0 0
+21 2 1 1 0 0
+21 2 2 1 0 0
+21 2 3 1 0 0
+21 2 4 1 0 0
+21 2 5 1 0 0
+21 2 6 1 0 0
+21 2 7 1 0 0
+21 2 8 1 0 0
+21 2 9 1 0 0
+21 2 10 1 0 0
+21 2 11 1 0 0
+21 2 12 1 0 0
+21 2 13 1 0 0
+21 2 14 1 0 0
+21 2 15 1 0 0.221802
+21 2 16 1 0 0.364746
+21 2 17 1 0 0.5
+21 2 18 1 0 0.641113
+21 2 19 1 0 0.768555
+21 2 20 1 0.122253 0.864746
+21 2 21 1 0.154785 0.938965
+21 2 22 1 0.177246 0.99707
+21 2 23 0.992676 0.192749 1
+21 2 24 0.919434 0.203125 1
+21 2 25 0.839355 0.210571 1
+21 2 26 0.755371 0.21582 1
+21 2 27 0.668457 0.219604 1
+21 2 28 0.57959 0.22229 1
+21 2 29 0.487549 0.224731 1
+21 2 30 0.387451 0.226929 1
+21 2 31 0.265625 0.229248 1
+21 3 0 1 0 0
+21 3 1 1 0 0
+21 3 2 1 0 0
+21 3 3 1 0 0
+21 3 4 1 0 0
+21 3 5 1 0 0
+21 3 6 1 0 0
+21 3 7 1 0 0
+21 3 8 1 0 0
+21 3 9 1 0 0
+21 3 10 1 0 0
+21 3 11 1 0 0
+21 3 12 1 0 0
+21 3 13 1 0 0
+21 3 14 1 0 0
+21 3 15 1 0 0.221802
+21 3 16 1 0 0.364746
+21 3 17 1 0 0.5
+21 3 18 1 0 0.641113
+21 3 19 1 0 0.768555
+21 3 20 1 0.122437 0.864746
+21 3 21 1 0.154907 0.938965
+21 3 22 1 0.177368 0.99707
+21 3 23 0.992676 0.192871 1
+21 3 24 0.919434 0.203247 1
+21 3 25 0.839355 0.210571 1
+21 3 26 0.755371 0.21582 1
+21 3 27 0.668457 0.219604 1
+21 3 28 0.57959 0.222412 1
+21 3 29 0.487549 0.224731 1
+21 3 30 0.387451 0.226929 1
+21 3 31 0.265625 0.229248 1
+21 4 0 1 0 0
+21 4 1 1 0 0
+21 4 2 1 0 0
+21 4 3 1 0 0
+21 4 4 1 0 0
+21 4 5 1 0 0
+21 4 6 1 0 0
+21 4 7 1 0 0
+21 4 8 1 0 0
+21 4 9 1 0 0
+21 4 10 1 0 0
+21 4 11 1 0 0
+21 4 12 1 0 0
+21 4 13 1 0 0
+21 4 14 1 0 0
+21 4 15 1 0 0.221802
+21 4 16 1 0 0.364746
+21 4 17 1 0 0.5
+21 4 18 1 0 0.641113
+21 4 19 1 0 0.768555
+21 4 20 1 0.122803 0.864746
+21 4 21 1 0.155273 0.938965
+21 4 22 1 0.177612 0.99707
+21 4 23 0.992676 0.193115 1
+21 4 24 0.919434 0.203369 1
+21 4 25 0.839355 0.210693 1
+21 4 26 0.755371 0.215942 1
+21 4 27 0.668457 0.219727 1
+21 4 28 0.57959 0.222412 1
+21 4 29 0.487549 0.224854 1
+21 4 30 0.387451 0.227051 1
+21 4 31 0.265625 0.22937 1
+21 5 0 1 0 0
+21 5 1 1 0 0
+21 5 2 1 0 0
+21 5 3 1 0 0
+21 5 4 1 0 0
+21 5 5 1 0 0
+21 5 6 1 0 0
+21 5 7 1 0 0
+21 5 8 1 0 0
+21 5 9 1 0 0
+21 5 10 1 0 0
+21 5 11 1 0 0
+21 5 12 1 0 0
+21 5 13 1 0 0
+21 5 14 1 0 0
+21 5 15 1 0 0.221802
+21 5 16 1 0 0.364746
+21 5 17 1 0 0.5
+21 5 18 1 0 0.641113
+21 5 19 1 0 0.768555
+21 5 20 1 0.123474 0.864746
+21 5 21 1 0.155762 0.938965
+21 5 22 1 0.177979 0.99707
+21 5 23 0.992676 0.193359 1
+21 5 24 0.919434 0.203613 1
+21 5 25 0.839355 0.210938 1
+21 5 26 0.755371 0.216187 1
+21 5 27 0.668457 0.219849 1
+21 5 28 0.57959 0.222534 1
+21 5 29 0.487549 0.224854 1
+21 5 30 0.387451 0.227051 1
+21 5 31 0.265625 0.22937 1
+21 6 0 1 0 0
+21 6 1 1 0 0
+21 6 2 1 0 0
+21 6 3 1 0 0
+21 6 4 1 0 0
+21 6 5 1 0 0
+21 6 6 1 0 0
+21 6 7 1 0 0
+21 6 8 1 0 0
+21 6 9 1 0 0
+21 6 10 1 0 0
+21 6 11 1 0 0
+21 6 12 1 0 0
+21 6 13 1 0 0
+21 6 14 1 0 0
+21 6 15 1 0 0.22168
+21 6 16 1 0 0.364746
+21 6 17 1 0 0.499756
+21 6 18 1 0 0.641113
+21 6 19 1 0 0.768555
+21 6 20 1 0.124817 0.864746
+21 6 21 1 0.156738 0.938965
+21 6 22 1 0.178833 0.99707
+21 6 23 0.992188 0.194092 1
+21 6 24 0.919434 0.204224 1
+21 6 25 0.839355 0.211426 1
+21 6 26 0.755371 0.216553 1
+21 6 27 0.668457 0.220215 1
+21 6 28 0.57959 0.2229 1
+21 6 29 0.487305 0.225098 1
+21 6 30 0.387207 0.227295 1
+21 6 31 0.265381 0.229614 1
+21 7 0 1 0 0
+21 7 1 1 0 0
+21 7 2 1 0 0
+21 7 3 1 0 0
+21 7 4 1 0 0
+21 7 5 1 0 0
+21 7 6 1 0 0
+21 7 7 1 0 0
+21 7 8 1 0 0
+21 7 9 1 0 0
+21 7 10 1 0 0
+21 7 11 1 0 0
+21 7 12 1 0 0
+21 7 13 1 0 0
+21 7 14 1 0 0
+21 7 15 1 0 0.221558
+21 7 16 1 0 0.364502
+21 7 17 1 0 0.499756
+21 7 18 1 0 0.641113
+21 7 19 1 0 0.768555
+21 7 20 1 0.127319 0.864746
+21 7 21 1 0.158691 0.938965
+21 7 22 1 0.18042 0.99707
+21 7 23 0.992188 0.195312 1
+21 7 24 0.919434 0.2052 1
+21 7 25 0.839355 0.21228 1
+21 7 26 0.755371 0.217285 1
+21 7 27 0.668457 0.220825 1
+21 7 28 0.57959 0.223389 1
+21 7 29 0.487305 0.225586 1
+21 7 30 0.387207 0.227661 1
+21 7 31 0.265381 0.229858 1
+21 8 0 1 0 0
+21 8 1 1 0 0
+21 8 2 1 0 0
+21 8 3 1 0 0
+21 8 4 1 0 0
+21 8 5 1 0 0
+21 8 6 1 0 0
+21 8 7 1 0 0
+21 8 8 1 0 0
+21 8 9 1 0 0
+21 8 10 1 0 0
+21 8 11 1 0 0
+21 8 12 1 0 0
+21 8 13 1 0 0
+21 8 14 1 0 0
+21 8 15 1 0 0.221191
+21 8 16 1 0 0.364502
+21 8 17 1 0 0.499512
+21 8 18 1 0 0.640625
+21 8 19 1 0 0.768555
+21 8 20 1 0.132202 0.864746
+21 8 21 1 0.162354 0.938965
+21 8 22 1 0.18335 0.99707
+21 8 23 0.992188 0.197754 1
+21 8 24 0.918945 0.207275 1
+21 8 25 0.839355 0.214111 1
+21 8 26 0.754883 0.21875 1
+21 8 27 0.667969 0.222046 1
+21 8 28 0.57959 0.224365 1
+21 8 29 0.487061 0.22644 1
+21 8 30 0.386963 0.228394 1
+21 8 31 0.264893 0.230469 1
+21 9 0 1 0 0
+21 9 1 1 0 0
+21 9 2 1 0 0
+21 9 3 1 0 0
+21 9 4 1 0 0
+21 9 5 1 0 0
+21 9 6 1 0 0
+21 9 7 1 0 0
+21 9 8 1 0 0
+21 9 9 1 0 0
+21 9 10 1 0 0
+21 9 11 1 0 0
+21 9 12 1 0 0
+21 9 13 1 0 0
+21 9 14 1 0 0
+21 9 15 1 0 0.220703
+21 9 16 1 0 0.364258
+21 9 17 1 0 0.499023
+21 9 18 1 0 0.640625
+21 9 19 1 0.0083313 0.768066
+21 9 20 1 0.141113 0.864746
+21 9 21 1 0.169189 0.938965
+21 9 22 1 0.188965 0.99707
+21 9 23 0.991699 0.202393 1
+21 9 24 0.918457 0.211182 1
+21 9 25 0.838867 0.217407 1
+21 9 26 0.754395 0.221558 1
+21 9 27 0.66748 0.224365 1
+21 9 28 0.579102 0.226318 1
+21 9 29 0.486572 0.228149 1
+21 9 30 0.386475 0.229736 1
+21 9 31 0.26416 0.231689 1
+21 10 0 1 0 0
+21 10 1 1 0 0
+21 10 2 1 0 0
+21 10 3 1 0 0
+21 10 4 1 0 0
+21 10 5 1 0 0
+21 10 6 1 0 0
+21 10 7 1 0 0
+21 10 8 1 0 0
+21 10 9 1 0 0
+21 10 10 1 0 0
+21 10 11 1 0 0
+21 10 12 1 0 0
+21 10 13 1 0 0
+21 10 14 1 0 0
+21 10 15 1 0 0.219604
+21 10 16 1 0 0.36377
+21 10 17 1 0 0.498291
+21 10 18 1 0 0.639648
+21 10 19 1 0.050415 0.768066
+21 10 20 1 0.155884 0.864258
+21 10 21 1 0.180908 0.938965
+21 10 22 1 0.198608 0.99707
+21 10 23 0.991211 0.210571 1
+21 10 24 0.917969 0.21814 1
+21 10 25 0.837891 0.223267 1
+21 10 26 0.753906 0.22644 1
+21 10 27 0.666992 0.228516 1
+21 10 28 0.578125 0.229858 1
+21 10 29 0.48584 0.231079 1
+21 10 30 0.385498 0.2323 1
+21 10 31 0.263184 0.233765 1
+21 11 0 1 0 0
+21 11 1 1 0 0
+21 11 2 1 0 0
+21 11 3 1 0 0
+21 11 4 1 0 0
+21 11 5 1 0 0
+21 11 6 1 0 0
+21 11 7 1 0 0
+21 11 8 1 0 0
+21 11 9 1 0 0
+21 11 10 1 0 0
+21 11 11 1 0 0
+21 11 12 1 0 0
+21 11 13 1 0 0
+21 11 14 1 0 0
+21 11 15 1 0 0.218018
+21 11 16 1 0 0.363037
+21 11 17 1 0 0.49707
+21 11 18 1 0 0.638672
+21 11 19 1 0.0986328 0.76709
+21 11 20 1 0.178711 0.864258
+21 11 21 1 0.199707 0.938477
+21 11 22 1 0.214478 0.99707
+21 11 23 0.989746 0.223999 1
+21 11 24 0.916504 0.229736 1
+21 11 25 0.836914 0.233032 1
+21 11 26 0.752441 0.234863 1
+21 11 27 0.665527 0.235596 1
+21 11 28 0.577148 0.23584 1
+21 11 29 0.484619 0.236084 1
+21 11 30 0.384033 0.236572 1
+21 11 31 0.260986 0.237549 1
+21 12 0 1 0 0
+21 12 1 1 0 0
+21 12 2 1 0 0
+21 12 3 1 0 0
+21 12 4 1 0 0
+21 12 5 1 0 0
+21 12 6 1 0 0
+21 12 7 1 0 0
+21 12 8 1 0 0
+21 12 9 1 0 0
+21 12 10 1 0 0
+21 12 11 1 0 0
+21 12 12 1 0 0
+21 12 13 1 0 0
+21 12 14 1 0 0
+21 12 15 1 0 0.215332
+21 12 16 1 0 0.362061
+21 12 17 1 0 0.495117
+21 12 18 1 0 0.636719
+21 12 19 1 0.150635 0.766113
+21 12 20 1 0.211914 0.86377
+21 12 21 1 0.228027 0.938477
+21 12 22 1 0.238892 0.99707
+21 12 23 0.987305 0.245117 1
+21 12 24 0.914551 0.248047 1
+21 12 25 0.834473 0.248901 1
+21 12 26 0.750488 0.248413 1
+21 12 27 0.663574 0.247192 1
+21 12 28 0.574707 0.245728 1
+21 12 29 0.482178 0.244507 1
+21 12 30 0.381348 0.243774 1
+21 12 31 0.257324 0.243652 1
+21 13 0 1 0 0
+21 13 1 1 0 0
+21 13 2 1 0 0
+21 13 3 1 0 0
+21 13 4 1 0 0
+21 13 5 1 0 0
+21 13 6 1 0 0
+21 13 7 1 0 0
+21 13 8 1 0 0
+21 13 9 1 0 0
+21 13 10 1 0 0
+21 13 11 1 0 0
+21 13 12 1 0 0
+21 13 13 1 0 0
+21 13 14 1 0 0
+21 13 15 1 0 0.211914
+21 13 16 1 0 0.360596
+21 13 17 1 0 0.491699
+21 13 18 1 0.0745239 0.633301
+21 13 19 1 0.209106 0.764648
+21 13 20 1 0.256348 0.862793
+21 13 21 1 0.267334 0.937988
+21 13 22 1 0.273682 0.996582
+21 13 23 0.983887 0.275879 1
+21 13 24 0.910645 0.275146 1
+21 13 25 0.830566 0.272461 1
+21 13 26 0.746582 0.268799 1
+21 13 27 0.659668 0.264893 1
+21 13 28 0.570801 0.260986 1
+21 13 29 0.478271 0.257568 1
+21 13 30 0.376953 0.255127 1
+21 13 31 0.251221 0.253418 1
+21 14 0 1 0.104309 0
+21 14 1 1 0.104309 0
+21 14 2 1 0.104309 0
+21 14 3 1 0.10437 0
+21 14 4 1 0.10437 0
+21 14 5 1 0.104431 0
+21 14 6 1 0.104553 0
+21 14 7 1 0.104858 0
+21 14 8 1 0.105347 0
+21 14 9 1 0.106323 0
+21 14 10 1 0.108032 0
+21 14 11 1 0.111023 0
+21 14 12 1 0.115967 0
+21 14 13 1 0.118835 0
+21 14 14 1 0.111145 0
+21 14 15 1 0.0977173 0.208496
+21 14 16 1 0.0952148 0.35498
+21 14 17 1 0.114197 0.487305
+21 14 18 1 0.192505 0.62793
+21 14 19 1 0.275391 0.76123
+21 14 20 1 0.3125 0.861816
+21 14 21 1 0.318848 0.937012
+21 14 22 1 0.320312 0.996094
+21 14 23 0.978027 0.317871 1
+21 14 24 0.904785 0.312744 1
+21 14 25 0.824707 0.305908 1
+21 14 26 0.740723 0.298096 1
+21 14 27 0.653809 0.290527 1
+21 14 28 0.564941 0.283203 1
+21 14 29 0.472168 0.2771 1
+21 14 30 0.369873 0.271973 1
+21 14 31 0.241211 0.268066 1
+21 15 0 1 0.259277 0
+21 15 1 1 0.259277 0
+21 15 2 1 0.259277 0
+21 15 3 1 0.259277 0
+21 15 4 1 0.259277 0
+21 15 5 1 0.259277 0
+21 15 6 1 0.259277 0
+21 15 7 1 0.259521 0
+21 15 8 1 0.259766 0
+21 15 9 1 0.26001 0
+21 15 10 1 0.260742 0
+21 15 11 1 0.261963 0
+21 15 12 1 0.26416 0
+21 15 13 1 0.265137 0
+21 15 14 1 0.260498 0
+21 15 15 1 0.253906 0.207886
+21 15 16 1 0.247925 0.350098
+21 15 17 1 0.25415 0.482422
+21 15 18 1 0.288574 0.619141
+21 15 19 1 0.349609 0.755859
+21 15 20 1 0.380371 0.859375
+21 15 21 1 0.382324 0.935547
+21 15 22 1 0.378906 0.994629
+21 15 23 0.96875 0.371338 1
+21 15 24 0.89502 0.361328 1
+21 15 25 0.81543 0.349609 1
+21 15 26 0.731445 0.337402 1
+21 15 27 0.64502 0.325195 1
+21 15 28 0.556152 0.313965 1
+21 15 29 0.462402 0.304199 1
+21 15 30 0.358643 0.295898 1
+21 15 31 0.224854 0.289062 1
+21 16 0 1 0.384033 0
+21 16 1 1 0.384033 0
+21 16 2 1 0.384033 0
+21 16 3 1 0.384033 0
+21 16 4 1 0.384033 0
+21 16 5 1 0.384033 0
+21 16 6 1 0.384033 0
+21 16 7 1 0.384033 0
+21 16 8 1 0.384277 0
+21 16 9 1 0.384521 0
+21 16 10 1 0.384766 0
+21 16 11 1 0.385742 0
+21 16 12 1 0.386963 0
+21 16 13 1 0.387451 0
+21 16 14 1 0.384521 0
+21 16 15 1 0.379639 0.215088
+21 16 16 1 0.372314 0.350098
+21 16 17 1 0.370361 0.476562
+21 16 18 1 0.384766 0.607422
+21 16 19 1 0.431152 0.746582
+21 16 20 1 0.459229 0.85498
+21 16 21 1 0.457275 0.932617
+21 16 22 1 0.449219 0.992188
+21 16 23 0.954102 0.436279 1
+21 16 24 0.880859 0.421143 1
+21 16 25 0.80127 0.404053 1
+21 16 26 0.717285 0.386475 1
+21 16 27 0.631348 0.369385 1
+21 16 28 0.541992 0.35376 1
+21 16 29 0.447754 0.339844 1
+21 16 30 0.341309 0.327637 1
+21 16 31 0.19751 0.317383 1
+21 17 0 1 0.504395 0
+21 17 1 1 0.504395 0
+21 17 2 1 0.504395 0
+21 17 3 1 0.504395 0
+21 17 4 1 0.504395 0
+21 17 5 1 0.504883 0
+21 17 6 1 0.504883 0
+21 17 7 1 0.504883 0
+21 17 8 1 0.504883 0
+21 17 9 1 0.504883 0
+21 17 10 1 0.505371 0
+21 17 11 1 0.505859 0
+21 17 12 1 0.506836 0
+21 17 13 1 0.507812 0
+21 17 14 1 0.506348 0.0151596
+21 17 15 1 0.50293 0.232666
+21 17 16 1 0.496338 0.360107
+21 17 17 1 0.487061 0.475586
+21 17 18 1 0.488281 0.597168
+21 17 19 1 0.516113 0.731445
+21 17 20 1 0.544922 0.848145
+21 17 21 1 0.540039 0.927246
+21 17 22 1 0.527832 0.988281
+21 17 23 0.932129 0.509766 1
+21 17 24 0.859375 0.489014 1
+21 17 25 0.780273 0.466797 1
+21 17 26 0.697266 0.443848 1
+21 17 27 0.611328 0.421875 1
+21 17 28 0.521973 0.401367 1
+21 17 29 0.42627 0.383057 1
+21 17 30 0.315186 0.366699 1
+21 17 31 0.150391 0.352539 1
+21 18 0 1 0.624023 0
+21 18 1 1 0.624023 0
+21 18 2 1 0.624023 0
+21 18 3 1 0.624023 0
+21 18 4 1 0.624023 0
+21 18 5 1 0.624023 0
+21 18 6 1 0.624023 0
+21 18 7 1 0.624023 0
+21 18 8 1 0.624023 0
+21 18 9 1 0.624023 0
+21 18 10 1 0.624512 0
+21 18 11 1 0.625 0
+21 18 12 1 0.625488 0
+21 18 13 1 0.626953 0
+21 18 14 1 0.626465 0.0726318
+21 18 15 1 0.624512 0.252441
+21 18 16 1 0.620605 0.376953
+21 18 17 1 0.611816 0.488281
+21 18 18 1 0.599121 0.59375
+21 18 19 1 0.603027 0.710938
+21 18 20 1 0.631836 0.835938
+21 18 21 1 0.627441 0.919434
+21 18 22 0.97168 0.61084 0.980957
+21 18 23 0.901855 0.587402 1
+21 18 24 0.829102 0.561523 1
+21 18 25 0.751465 0.53418 1
+21 18 26 0.669922 0.506836 1
+21 18 27 0.584473 0.47998 1
+21 18 28 0.494385 0.455078 1
+21 18 29 0.395752 0.432373 1
+21 18 30 0.275879 0.412109 1
+21 18 31 0.0375366 0.393799 1
+21 19 0 1 0.737305 0
+21 19 1 1 0.737305 0
+21 19 2 1 0.737305 0
+21 19 3 1 0.737305 0
+21 19 4 1 0.737305 0
+21 19 5 1 0.737305 0
+21 19 6 1 0.737305 0
+21 19 7 1 0.737305 0
+21 19 8 1 0.737793 0
+21 19 9 1 0.737793 0
+21 19 10 1 0.737793 0
+21 19 11 1 0.738281 0
+21 19 12 1 0.73877 0
+21 19 13 1 0.739746 0
+21 19 14 1 0.740234 0.0666504
+21 19 15 1 0.739746 0.257324
+21 19 16 1 0.738281 0.386719
+21 19 17 1 0.73291 0.502441
+21 19 18 1 0.72168 0.607422
+21 19 19 1 0.704102 0.70166
+21 19 20 1 0.713379 0.81543
+21 19 21 0.98877 0.713867 0.907715
+21 19 22 0.930176 0.692871 0.969727
+21 19 23 0.86084 0.664551 1
+21 19 24 0.790039 0.634766 1
+21 19 25 0.714355 0.603516 1
+21 19 26 0.634277 0.572266 1
+21 19 27 0.549316 0.541992 1
+21 19 28 0.457764 0.513184 1
+21 19 29 0.353516 0.486328 1
+21 19 30 0.215088 0.461914 1
+21 19 31 0 0.439453 1
+21 20 0 1 0.839355 0
+21 20 1 1 0.839355 0
+21 20 2 1 0.839355 0
+21 20 3 1 0.839355 0
+21 20 4 1 0.839355 0
+21 20 5 1 0.839355 0
+21 20 6 1 0.839355 0
+21 20 7 1 0.839355 0
+21 20 8 1 0.839355 0
+21 20 9 1 0.839355 0
+21 20 10 1 0.839355 0
+21 20 11 1 0.839844 0
+21 20 12 1 0.840332 0
+21 20 13 1 0.84082 0
+21 20 14 1 0.841797 0
+21 20 15 1 0.842285 0.23291
+21 20 16 1 0.841797 0.375732
+21 20 17 1 0.839355 0.5
+21 20 18 1 0.83252 0.613281
+21 20 19 1 0.818359 0.712891
+21 20 20 0.96582 0.79541 0.794434
+21 20 21 0.937012 0.79541 0.89209
+21 20 22 0.876953 0.769531 0.952637
+21 20 23 0.809082 0.737305 0.992188
+21 20 24 0.741699 0.706055 1
+21 20 25 0.668945 0.672852 1
+21 20 26 0.59082 0.63916 1
+21 20 27 0.505371 0.605957 1
+21 20 28 0.409912 0.57373 1
+21 20 29 0.293701 0.542969 1
+21 20 30 0.0955811 0.514648 1
+21 20 31 0 0.488037 1
+21 21 0 1 0.92627 0
+21 21 1 1 0.92627 0
+21 21 2 1 0.92627 0
+21 21 3 1 0.92627 0
+21 21 4 1 0.92627 0
+21 21 5 1 0.92627 0
+21 21 6 1 0.92627 0
+21 21 7 1 0.92627 0
+21 21 8 1 0.92627 0
+21 21 9 1 0.92627 0
+21 21 10 1 0.92627 0
+21 21 11 1 0.926758 0
+21 21 12 1 0.926758 0
+21 21 13 1 0.927246 0
+21 21 14 1 0.928223 0
+21 21 15 1 0.929199 0.172363
+21 21 16 1 0.929688 0.342529
+21 21 17 1 0.927734 0.476318
+21 21 18 0.99707 0.922363 0.596191
+21 21 19 0.965332 0.912109 0.703125
+21 21 20 0.923828 0.895508 0.794922
+21 21 21 0.871582 0.871582 0.871582
+21 21 22 0.812012 0.842773 0.932617
+21 21 23 0.749512 0.811523 0.978516
+21 21 24 0.685547 0.779297 1
+21 21 25 0.614746 0.745117 1
+21 21 26 0.535645 0.708984 1
+21 21 27 0.446533 0.671875 1
+21 21 28 0.341309 0.635742 1
+21 21 29 0.193848 0.600586 1
+21 21 30 0 0.567383 1
+21 21 31 0 0.536133 1
+21 22 0 0.961426 0.992188 0
+21 22 1 0.961426 0.992188 0
+21 22 2 0.961426 0.992188 0
+21 22 3 0.961426 0.992188 0
+21 22 4 0.961426 0.992188 0
+21 22 5 0.961426 0.992188 0
+21 22 6 0.961426 0.992188 0
+21 22 7 0.961426 0.992188 0
+21 22 8 0.961426 0.992188 0
+21 22 9 0.961426 0.992188 0
+21 22 10 0.961426 0.992188 0
+21 22 11 0.961426 0.992188 0
+21 22 12 0.961426 0.992676 0
+21 22 13 0.960938 0.992676 0
+21 22 14 0.960449 0.993652 0
+21 22 15 0.955566 0.994629 0.0467834
+21 22 16 0.946777 0.995605 0.293945
+21 22 17 0.932617 0.994141 0.438721
+21 22 18 0.911133 0.98877 0.5625
+21 22 19 0.879883 0.978027 0.671875
+21 22 20 0.839355 0.960449 0.764648
+21 22 21 0.793457 0.940918 0.847168
+21 22 22 0.745605 0.922363 0.922363
+21 22 23 0.686035 0.892578 0.974609
+21 22 24 0.620605 0.856934 1
+21 22 25 0.547363 0.818848 1
+21 22 26 0.463867 0.779297 1
+21 22 27 0.364746 0.738281 1
+21 22 28 0.23291 0.698242 1
+21 22 29 0 0.658691 1
+21 22 30 0 0.621094 1
+21 22 31 0 0.585938 1
+21 23 0 0.860352 1 0
+21 23 1 0.860352 1 0
+21 23 2 0.860352 1 0
+21 23 3 0.860352 1 0
+21 23 4 0.860352 1 0
+21 23 5 0.860352 1 0
+21 23 6 0.860352 1 0
+21 23 7 0.860352 1 0
+21 23 8 0.860352 1 0
+21 23 9 0.860352 1 0
+21 23 10 0.860352 1 0
+21 23 11 0.860352 1 0
+21 23 12 0.860352 1 0
+21 23 13 0.859863 1 0
+21 23 14 0.859863 1 0
+21 23 15 0.85498 1 0
+21 23 16 0.846191 1 0.235229
+21 23 17 0.83252 1 0.39502
+21 23 18 0.811035 1 0.523438
+21 23 19 0.781738 1 0.635254
+21 23 20 0.745117 1 0.731934
+21 23 21 0.703125 0.999512 0.819824
+21 23 22 0.655762 0.982422 0.897461
+21 23 23 0.602051 0.961426 0.961914
+21 23 24 0.539551 0.932617 1
+21 23 25 0.462158 0.894043 1
+21 23 26 0.366943 0.851074 1
+21 23 27 0.237915 0.806641 1
+21 23 28 0 0.761719 1
+21 23 29 0 0.717773 1
+21 23 30 0 0.675781 1
+21 23 31 0 0.63623 1
+21 24 0 0.751465 1 0
+21 24 1 0.751465 1 0
+21 24 2 0.751465 1 0
+21 24 3 0.751465 1 0
+21 24 4 0.751465 1 0
+21 24 5 0.751465 1 0
+21 24 6 0.751465 1 0
+21 24 7 0.751465 1 0
+21 24 8 0.751465 1 0
+21 24 9 0.751465 1 0
+21 24 10 0.751465 1 0
+21 24 11 0.751465 1 0
+21 24 12 0.750977 1 0
+21 24 13 0.750977 1 0
+21 24 14 0.750977 1 0
+21 24 15 0.746582 1 0
+21 24 16 0.737793 1 0.161621
+21 24 17 0.723633 1 0.348877
+21 24 18 0.702637 1 0.483643
+21 24 19 0.674805 1 0.598633
+21 24 20 0.639648 1 0.699219
+21 24 21 0.597656 1 0.790039
+21 24 22 0.547363 1 0.870605
+21 24 23 0.489502 1 0.9375
+21 24 24 0.422852 0.992676 0.992676
+21 24 25 0.333008 0.960938 1
+21 24 26 0.19458 0.919434 1
+21 24 27 0 0.873047 1
+21 24 28 0 0.825195 1
+21 24 29 0 0.776855 1
+21 24 30 0 0.730469 1
+21 24 31 0 0.686523 1
+21 25 0 0.619629 1 0
+21 25 1 0.619629 1 0
+21 25 2 0.619629 1 0
+21 25 3 0.619629 1 0
+21 25 4 0.619629 1 0
+21 25 5 0.619629 1 0
+21 25 6 0.619629 1 0
+21 25 7 0.619629 1 0
+21 25 8 0.619629 1 0
+21 25 9 0.619629 1 0
+21 25 10 0.619629 1 0
+21 25 11 0.619629 1 0
+21 25 12 0.619629 1 0
+21 25 13 0.619629 1 0
+21 25 14 0.619629 1 0
+21 25 15 0.616211 1 0
+21 25 16 0.605957 1 0.00291443
+21 25 17 0.590332 1 0.294922
+21 25 18 0.567871 1 0.439453
+21 25 19 0.538086 1 0.558594
+21 25 20 0.499512 1 0.662109
+21 25 21 0.450684 1 0.755371
+21 25 22 0.388916 1 0.837891
+21 25 23 0.311035 1 0.907715
+21 25 24 0.200195 1 0.96582
+21 25 25 0 1 1
+21 25 26 0 0.983887 1
+21 25 27 0 0.939941 1
+21 25 28 0 0.891113 1
+21 25 29 0 0.840332 1
+21 25 30 0 0.790039 1
+21 25 31 0 0.741699 1
+21 26 0 0.444824 1 0
+21 26 1 0.444824 1 0
+21 26 2 0.444824 1 0
+21 26 3 0.444824 1 0
+21 26 4 0.444824 1 0
+21 26 5 0.444824 1 0
+21 26 6 0.444824 1 0
+21 26 7 0.444824 1 0
+21 26 8 0.444824 1 0
+21 26 9 0.444824 1 0
+21 26 10 0.444824 1 0
+21 26 11 0.444824 1 0
+21 26 12 0.445068 1 0
+21 26 13 0.445068 1 0
+21 26 14 0.445312 1 0
+21 26 15 0.442383 1 0
+21 26 16 0.428223 1 0
+21 26 17 0.406738 1 0.227661
+21 26 18 0.375244 1 0.38916
+21 26 19 0.330811 1 0.513672
+21 26 20 0.267334 1 0.619629
+21 26 21 0.162476 1 0.715332
+21 26 22 0 1 0.800293
+21 26 23 0 1 0.87207
+21 26 24 0 1 0.933594
+21 26 25 0 1 0.990234
+21 26 26 0 1 1
+21 26 27 0 1 1
+21 26 28 0 0.956543 1
+21 26 29 0 0.905273 1
+21 26 30 0 0.853027 1
+21 26 31 0 0.800781 1
+21 27 0 0.00349808 1 0
+21 27 1 0.00349808 1 0
+21 27 2 0.00349808 1 0
+21 27 3 0.00349998 1 0
+21 27 4 0.00350952 1 0
+21 27 5 0.0035305 1 0
+21 27 6 0.0035553 1 0
+21 27 7 0.00361633 1 0
+21 27 8 0.00372505 1 0
+21 27 9 0.00394058 1 0
+21 27 10 0.00432587 1 0
+21 27 11 0.00500488 1 0
+21 27 12 0.00616837 1 0
+21 27 13 0.0080719 1 0
+21 27 14 0.0111008 1 0
+21 27 15 0.0124741 1 0
+21 27 16 0 1 0
+21 27 17 0 1 0.129761
+21 27 18 0 1 0.331543
+21 27 19 0 1 0.463379
+21 27 20 0 1 0.572754
+21 27 21 0 1 0.669922
+21 27 22 0 1 0.756836
+21 27 23 0 1 0.831055
+21 27 24 0 1 0.894531
+21 27 25 0 1 0.95459
+21 27 26 0 1 1
+21 27 27 0 1 1
+21 27 28 0 1 1
+21 27 29 0 0.968262 1
+21 27 30 0 0.915527 1
+21 27 31 0 0.861328 1
+21 28 0 0 1 0
+21 28 1 0 1 0
+21 28 2 0 1 0
+21 28 3 0 1 0
+21 28 4 0 1 0
+21 28 5 0 1 0
+21 28 6 0 1 0
+21 28 7 0 1 0
+21 28 8 0 1 0
+21 28 9 0 1 0
+21 28 10 0 1 0
+21 28 11 0 1 0
+21 28 12 0 1 0
+21 28 13 0 1 0
+21 28 14 0 1 0
+21 28 15 0 1 0
+21 28 16 0 1 0
+21 28 17 0 1 0
+21 28 18 0 1 0.262207
+21 28 19 0 1 0.407227
+21 28 20 0 1 0.520508
+21 28 21 0 1 0.619629
+21 28 22 0 1 0.70752
+21 28 23 0 1 0.783691
+21 28 24 0 1 0.849609
+21 28 25 0 1 0.912598
+21 28 26 0 1 0.97168
+21 28 27 0 1 1
+21 28 28 0 1 1
+21 28 29 0 1 1
+21 28 30 0 0.975098 1
+21 28 31 0 0.921387 1
+21 29 0 0 1 0
+21 29 1 0 1 0
+21 29 2 0 1 0
+21 29 3 0 1 0
+21 29 4 0 1 0
+21 29 5 0 1 0
+21 29 6 0 1 0
+21 29 7 0 1 0
+21 29 8 0 1 0
+21 29 9 0 1 0
+21 29 10 0 1 0
+21 29 11 0 1 0
+21 29 12 0 1 0
+21 29 13 0 1 0
+21 29 14 0 1 0
+21 29 15 0 1 0
+21 29 16 0 1 0
+21 29 17 0 1 0
+21 29 18 0 1 0.169678
+21 29 19 0 1 0.343018
+21 29 20 0 1 0.462646
+21 29 21 0 1 0.563965
+21 29 22 0 1 0.65332
+21 29 23 0 1 0.730957
+21 29 24 0 1 0.79834
+21 29 25 0 1 0.86377
+21 29 26 0 1 0.92627
+21 29 27 0 1 0.983887
+21 29 28 0 1 1
+21 29 29 0 1 1
+21 29 30 0 1 1
+21 29 31 0 0.980957 1
+21 30 0 0 1 0
+21 30 1 0 1 0
+21 30 2 0 1 0
+21 30 3 0 1 0
+21 30 4 0 1 0
+21 30 5 0 1 0
+21 30 6 0 1 0
+21 30 7 0 1 0
+21 30 8 0 1 0
+21 30 9 0 1 0
+21 30 10 0 1 0
+21 30 11 0 1 0
+21 30 12 0 1 0
+21 30 13 0 1 0
+21 30 14 0 1 0
+21 30 15 0 1 0
+21 30 16 0 1 0
+21 30 17 0 1 0
+21 30 18 0 1 0
+21 30 19 0 1 0.267822
+21 30 20 0 1 0.398682
+21 30 21 0 1 0.503418
+21 30 22 0 1 0.594238
+21 30 23 0 1 0.672363
+21 30 24 0 1 0.741699
+21 30 25 0 1 0.808594
+21 30 26 0 1 0.874023
+21 30 27 0 1 0.935547
+21 30 28 0 1 0.991699
+21 30 29 0 1 1
+21 30 30 0 1 1
+21 30 31 0 1 1
+21 31 0 0 1 0
+21 31 1 0 1 0
+21 31 2 0 1 0
+21 31 3 0 1 0
+21 31 4 0 1 0
+21 31 5 0 1 0
+21 31 6 0 1 0
+21 31 7 0 1 0
+21 31 8 0 1 0
+21 31 9 0 1 0
+21 31 10 0 1 0
+21 31 11 0 1 0
+21 31 12 0 1 0
+21 31 13 0 1 0
+21 31 14 0 1 0
+21 31 15 0 1 0
+21 31 16 0 1 0
+21 31 17 0 1 0
+21 31 18 0 1 0
+21 31 19 0 1 0.169067
+21 31 20 0 1 0.326904
+21 31 21 0 1 0.437744
+21 31 22 0 1 0.530273
+21 31 23 0 1 0.609863
+21 31 24 0 1 0.679688
+21 31 25 0 1 0.748535
+21 31 26 0 1 0.815918
+21 31 27 0 1 0.880859
+21 31 28 0 1 0.941895
+21 31 29 0 1 0.998535
+21 31 30 0 1 1
+21 31 31 0 1 1
+22 0 0 1 0 0
+22 0 1 1 0 0
+22 0 2 1 0 0
+22 0 3 1 0 0
+22 0 4 1 0 0
+22 0 5 1 0 0
+22 0 6 1 0 0
+22 0 7 1 0 0
+22 0 8 1 0 0
+22 0 9 1 0 0
+22 0 10 1 0 0
+22 0 11 1 0 0
+22 0 12 1 0 0
+22 0 13 1 0 0
+22 0 14 1 0 0
+22 0 15 1 0 0.147583
+22 0 16 1 0 0.322266
+22 0 17 1 0 0.457031
+22 0 18 1 0 0.592773
+22 0 19 1 0 0.722656
+22 0 20 1 0.0149307 0.830566
+22 0 21 1 0.134888 0.914062
+22 0 22 1 0.163086 0.979004
+22 0 23 1 0.182739 1
+22 0 24 1 0.196899 1
+22 0 25 0.971191 0.20752 1
+22 0 26 0.888672 0.215332 1
+22 0 27 0.801758 0.220825 1
+22 0 28 0.712402 0.224731 1
+22 0 29 0.621582 0.227539 1
+22 0 30 0.528809 0.229858 1
+22 0 31 0.429199 0.231934 1
+22 1 0 1 0 0
+22 1 1 1 0 0
+22 1 2 1 0 0
+22 1 3 1 0 0
+22 1 4 1 0 0
+22 1 5 1 0 0
+22 1 6 1 0 0
+22 1 7 1 0 0
+22 1 8 1 0 0
+22 1 9 1 0 0
+22 1 10 1 0 0
+22 1 11 1 0 0
+22 1 12 1 0 0
+22 1 13 1 0 0
+22 1 14 1 0 0
+22 1 15 1 0 0.147583
+22 1 16 1 0 0.322266
+22 1 17 1 0 0.457031
+22 1 18 1 0 0.592773
+22 1 19 1 0 0.722656
+22 1 20 1 0.0150604 0.830566
+22 1 21 1 0.13501 0.914062
+22 1 22 1 0.163086 0.979004
+22 1 23 1 0.182739 1
+22 1 24 1 0.196899 1
+22 1 25 0.971191 0.207642 1
+22 1 26 0.888672 0.215332 1
+22 1 27 0.801758 0.220947 1
+22 1 28 0.712402 0.224731 1
+22 1 29 0.621582 0.227539 1
+22 1 30 0.528809 0.229858 1
+22 1 31 0.429199 0.231934 1
+22 2 0 1 0 0
+22 2 1 1 0 0
+22 2 2 1 0 0
+22 2 3 1 0 0
+22 2 4 1 0 0
+22 2 5 1 0 0
+22 2 6 1 0 0
+22 2 7 1 0 0
+22 2 8 1 0 0
+22 2 9 1 0 0
+22 2 10 1 0 0
+22 2 11 1 0 0
+22 2 12 1 0 0
+22 2 13 1 0 0
+22 2 14 1 0 0
+22 2 15 1 0 0.147583
+22 2 16 1 0 0.322266
+22 2 17 1 0 0.457031
+22 2 18 1 0 0.592773
+22 2 19 1 0 0.722656
+22 2 20 1 0.0152893 0.830566
+22 2 21 1 0.13501 0.914062
+22 2 22 1 0.163208 0.979004
+22 2 23 1 0.182861 1
+22 2 24 1 0.196899 1
+22 2 25 0.971191 0.207642 1
+22 2 26 0.888672 0.215454 1
+22 2 27 0.801758 0.220947 1
+22 2 28 0.712402 0.224731 1
+22 2 29 0.621582 0.227539 1
+22 2 30 0.528809 0.229858 1
+22 2 31 0.429199 0.231934 1
+22 3 0 1 0 0
+22 3 1 1 0 0
+22 3 2 1 0 0
+22 3 3 1 0 0
+22 3 4 1 0 0
+22 3 5 1 0 0
+22 3 6 1 0 0
+22 3 7 1 0 0
+22 3 8 1 0 0
+22 3 9 1 0 0
+22 3 10 1 0 0
+22 3 11 1 0 0
+22 3 12 1 0 0
+22 3 13 1 0 0
+22 3 14 1 0 0
+22 3 15 1 0 0.147583
+22 3 16 1 0 0.322266
+22 3 17 1 0 0.457031
+22 3 18 1 0 0.592773
+22 3 19 1 0 0.722656
+22 3 20 1 0.0157166 0.830566
+22 3 21 1 0.135254 0.914062
+22 3 22 1 0.16333 0.979004
+22 3 23 1 0.182983 1
+22 3 24 1 0.197021 1
+22 3 25 0.971191 0.207764 1
+22 3 26 0.888672 0.215454 1
+22 3 27 0.801758 0.220947 1
+22 3 28 0.712402 0.224731 1
+22 3 29 0.621582 0.227661 1
+22 3 30 0.528809 0.229858 1
+22 3 31 0.429199 0.231934 1
+22 4 0 1 0 0
+22 4 1 1 0 0
+22 4 2 1 0 0
+22 4 3 1 0 0
+22 4 4 1 0 0
+22 4 5 1 0 0
+22 4 6 1 0 0
+22 4 7 1 0 0
+22 4 8 1 0 0
+22 4 9 1 0 0
+22 4 10 1 0 0
+22 4 11 1 0 0
+22 4 12 1 0 0
+22 4 13 1 0 0
+22 4 14 1 0 0
+22 4 15 1 0 0.147583
+22 4 16 1 0 0.322266
+22 4 17 1 0 0.457031
+22 4 18 1 0 0.592773
+22 4 19 1 0 0.722656
+22 4 20 1 0.01651 0.830566
+22 4 21 1 0.135498 0.914062
+22 4 22 1 0.163574 0.979004
+22 4 23 1 0.183105 1
+22 4 24 1 0.197144 1
+22 4 25 0.971191 0.207886 1
+22 4 26 0.888672 0.215576 1
+22 4 27 0.801758 0.221069 1
+22 4 28 0.712402 0.224854 1
+22 4 29 0.621582 0.227661 1
+22 4 30 0.528809 0.22998 1
+22 4 31 0.429199 0.232056 1
+22 5 0 1 0 0
+22 5 1 1 0 0
+22 5 2 1 0 0
+22 5 3 1 0 0
+22 5 4 1 0 0
+22 5 5 1 0 0
+22 5 6 1 0 0
+22 5 7 1 0 0
+22 5 8 1 0 0
+22 5 9 1 0 0
+22 5 10 1 0 0
+22 5 11 1 0 0
+22 5 12 1 0 0
+22 5 13 1 0 0
+22 5 14 1 0 0
+22 5 15 1 0 0.147461
+22 5 16 1 0 0.322266
+22 5 17 1 0 0.457031
+22 5 18 1 0 0.592773
+22 5 19 1 0 0.722656
+22 5 20 1 0.0180511 0.830566
+22 5 21 1 0.136108 0.914062
+22 5 22 1 0.16394 0.979004
+22 5 23 1 0.183472 1
+22 5 24 1 0.19751 1
+22 5 25 0.971191 0.20813 1
+22 5 26 0.888672 0.21582 1
+22 5 27 0.801758 0.221191 1
+22 5 28 0.712402 0.224976 1
+22 5 29 0.621582 0.227783 1
+22 5 30 0.52832 0.230103 1
+22 5 31 0.429199 0.232056 1
+22 6 0 1 0 0
+22 6 1 1 0 0
+22 6 2 1 0 0
+22 6 3 1 0 0
+22 6 4 1 0 0
+22 6 5 1 0 0
+22 6 6 1 0 0
+22 6 7 1 0 0
+22 6 8 1 0 0
+22 6 9 1 0 0
+22 6 10 1 0 0
+22 6 11 1 0 0
+22 6 12 1 0 0
+22 6 13 1 0 0
+22 6 14 1 0 0
+22 6 15 1 0 0.147339
+22 6 16 1 0 0.322266
+22 6 17 1 0 0.457031
+22 6 18 1 0 0.592773
+22 6 19 1 0 0.722656
+22 6 20 1 0.0209961 0.830566
+22 6 21 1 0.137207 0.914062
+22 6 22 1 0.164795 0.979004
+22 6 23 1 0.184204 1
+22 6 24 1 0.19812 1
+22 6 25 0.971191 0.208618 1
+22 6 26 0.888672 0.216187 1
+22 6 27 0.801758 0.221558 1
+22 6 28 0.712402 0.225342 1
+22 6 29 0.621582 0.228027 1
+22 6 30 0.52832 0.230225 1
+22 6 31 0.428955 0.2323 1
+22 7 0 1 0 0
+22 7 1 1 0 0
+22 7 2 1 0 0
+22 7 3 1 0 0
+22 7 4 1 0 0
+22 7 5 1 0 0
+22 7 6 1 0 0
+22 7 7 1 0 0
+22 7 8 1 0 0
+22 7 9 1 0 0
+22 7 10 1 0 0
+22 7 11 1 0 0
+22 7 12 1 0 0
+22 7 13 1 0 0
+22 7 14 1 0 0
+22 7 15 1 0 0.147217
+22 7 16 1 0 0.322021
+22 7 17 1 0 0.456787
+22 7 18 1 0 0.592773
+22 7 19 1 0 0.722656
+22 7 20 1 0.0267334 0.830566
+22 7 21 1 0.13916 0.913574
+22 7 22 1 0.166382 0.979004
+22 7 23 1 0.185547 1
+22 7 24 1 0.199219 1
+22 7 25 0.971191 0.209473 1
+22 7 26 0.888672 0.217041 1
+22 7 27 0.801758 0.222168 1
+22 7 28 0.712402 0.22583 1
+22 7 29 0.621582 0.228516 1
+22 7 30 0.52832 0.230591 1
+22 7 31 0.428955 0.232544 1
+22 8 0 1 0 0
+22 8 1 1 0 0
+22 8 2 1 0 0
+22 8 3 1 0 0
+22 8 4 1 0 0
+22 8 5 1 0 0
+22 8 6 1 0 0
+22 8 7 1 0 0
+22 8 8 1 0 0
+22 8 9 1 0 0
+22 8 10 1 0 0
+22 8 11 1 0 0
+22 8 12 1 0 0
+22 8 13 1 0 0
+22 8 14 1 0 0
+22 8 15 1 0 0.146851
+22 8 16 1 0 0.321777
+22 8 17 1 0 0.456787
+22 8 18 1 0 0.592773
+22 8 19 1 0 0.722656
+22 8 20 1 0.0379639 0.830566
+22 8 21 1 0.143188 0.913574
+22 8 22 1 0.169556 0.978516
+22 8 23 1 0.18811 1
+22 8 24 1 0.201294 1
+22 8 25 0.971191 0.211304 1
+22 8 26 0.888672 0.218506 1
+22 8 27 0.80127 0.223511 1
+22 8 28 0.712402 0.226929 1
+22 8 29 0.621582 0.22937 1
+22 8 30 0.52832 0.231323 1
+22 8 31 0.428711 0.233276 1
+22 9 0 1 0 0
+22 9 1 1 0 0
+22 9 2 1 0 0
+22 9 3 1 0 0
+22 9 4 1 0 0
+22 9 5 1 0 0
+22 9 6 1 0 0
+22 9 7 1 0 0
+22 9 8 1 0 0
+22 9 9 1 0 0
+22 9 10 1 0 0
+22 9 11 1 0 0
+22 9 12 1 0 0
+22 9 13 1 0 0
+22 9 14 1 0 0
+22 9 15 1 0 0.14624
+22 9 16 1 0 0.321289
+22 9 17 1 0 0.456543
+22 9 18 1 0 0.592285
+22 9 19 1 0 0.722168
+22 9 20 1 0.0570679 0.830566
+22 9 21 1 0.150513 0.913574
+22 9 22 1 0.175293 0.978516
+22 9 23 1 0.192871 1
+22 9 24 1 0.205444 1
+22 9 25 0.970703 0.214722 1
+22 9 26 0.888184 0.221436 1
+22 9 27 0.80127 0.225952 1
+22 9 28 0.711914 0.228882 1
+22 9 29 0.621094 0.231079 1
+22 9 30 0.527832 0.232788 1
+22 9 31 0.428467 0.234497 1
+22 10 0 1 0 0
+22 10 1 1 0 0
+22 10 2 1 0 0
+22 10 3 1 0 0
+22 10 4 1 0 0
+22 10 5 1 0 0
+22 10 6 1 0 0
+22 10 7 1 0 0
+22 10 8 1 0 0
+22 10 9 1 0 0
+22 10 10 1 0 0
+22 10 11 1 0 0
+22 10 12 1 0 0
+22 10 13 1 0 0
+22 10 14 1 0 0
+22 10 15 1 0 0.14502
+22 10 16 1 0 0.320557
+22 10 17 1 0 0.456055
+22 10 18 1 0 0.591797
+22 10 19 1 0 0.72168
+22 10 20 1 0.083313 0.830566
+22 10 21 1 0.162842 0.913574
+22 10 22 1 0.185425 0.978516
+22 10 23 1 0.201294 1
+22 10 24 1 0.212646 1
+22 10 25 0.970215 0.220825 1
+22 10 26 0.887695 0.226562 1
+22 10 27 0.800293 0.230225 1
+22 10 28 0.711426 0.232544 1
+22 10 29 0.620605 0.234131 1
+22 10 30 0.527344 0.235352 1
+22 10 31 0.427734 0.236572 1
+22 11 0 1 0 0
+22 11 1 1 0 0
+22 11 2 1 0 0
+22 11 3 1 0 0
+22 11 4 1 0 0
+22 11 5 1 0 0
+22 11 6 1 0 0
+22 11 7 1 0 0
+22 11 8 1 0 0
+22 11 9 1 0 0
+22 11 10 1 0 0
+22 11 11 1 0 0
+22 11 12 1 0 0
+22 11 13 1 0 0
+22 11 14 1 0 0
+22 11 15 1 0 0.142944
+22 11 16 1 0 0.319092
+22 11 17 1 0 0.455078
+22 11 18 1 0 0.59082
+22 11 19 1 0 0.721191
+22 11 20 1 0.11731 0.830078
+22 11 21 1 0.182617 0.913574
+22 11 22 1 0.201782 0.978516
+22 11 23 1 0.21521 1
+22 11 24 1 0.224609 1
+22 11 25 0.969238 0.231079 1
+22 11 26 0.88623 0.235229 1
+22 11 27 0.799316 0.237549 1
+22 11 28 0.710449 0.23877 1
+22 11 29 0.619629 0.23938 1
+22 11 30 0.526367 0.239746 1
+22 11 31 0.426514 0.240356 1
+22 12 0 1 0 0
+22 12 1 1 0 0
+22 12 2 1 0 0
+22 12 3 1 0 0
+22 12 4 1 0 0
+22 12 5 1 0 0
+22 12 6 1 0 0
+22 12 7 1 0 0
+22 12 8 1 0 0
+22 12 9 1 0 0
+22 12 10 1 0 0
+22 12 11 1 0 0
+22 12 12 1 0 0
+22 12 13 1 0 0
+22 12 14 1 0 0
+22 12 15 1 0 0.139771
+22 12 16 1 0 0.316895
+22 12 17 1 0 0.453613
+22 12 18 1 0 0.588867
+22 12 19 1 0 0.719727
+22 12 20 1 0.159912 0.82959
+22 12 21 1 0.21167 0.913086
+22 12 22 1 0.226685 0.978516
+22 12 23 1 0.236938 1
+22 12 24 1 0.24353 1
+22 12 25 0.967285 0.247437 1
+22 12 26 0.884766 0.249268 1
+22 12 27 0.797363 0.249512 1
+22 12 28 0.708496 0.248901 1
+22 12 29 0.617676 0.248047 1
+22 12 30 0.524414 0.247192 1
+22 12 31 0.424561 0.246582 1
+22 13 0 1 0 0
+22 13 1 1 0 0
+22 13 2 1 0 0
+22 13 3 1 0 0
+22 13 4 1 0 0
+22 13 5 1 0 0
+22 13 6 1 0 0
+22 13 7 1 0 0
+22 13 8 1 0 0
+22 13 9 1 0 0
+22 13 10 1 0 0
+22 13 11 1 0 0
+22 13 12 1 0 0
+22 13 13 1 0 0
+22 13 14 1 0 0
+22 13 15 1 0 0.135254
+22 13 16 1 0 0.313477
+22 13 17 1 0 0.45166
+22 13 18 1 0 0.585938
+22 13 19 1 0.0840454 0.717773
+22 13 20 1 0.211426 0.828125
+22 13 21 1 0.251709 0.912598
+22 13 22 1 0.261963 0.978027
+22 13 23 1 0.268311 1
+22 13 24 1 0.271484 1
+22 13 25 0.964355 0.271973 1
+22 13 26 0.881348 0.270508 1
+22 13 27 0.794434 0.267822 1
+22 13 28 0.705566 0.264648 1
+22 13 29 0.614746 0.261475 1
+22 13 30 0.520996 0.258789 1
+22 13 31 0.421143 0.256592 1
+22 14 0 1 0 0
+22 14 1 1 0 0
+22 14 2 1 0 0
+22 14 3 1 0 0
+22 14 4 1 0 0
+22 14 5 1 0 0
+22 14 6 1 0 0
+22 14 7 1 0 0
+22 14 8 1 0 0
+22 14 9 1 0 0
+22 14 10 1 0 0
+22 14 11 1 0 0
+22 14 12 1 0 0
+22 14 13 1 0 0
+22 14 14 1 0 0
+22 14 15 1 0 0.130127
+22 14 16 1 0 0.308838
+22 14 17 1 0 0.449219
+22 14 18 1 0.0535889 0.581543
+22 14 19 1 0.191162 0.713867
+22 14 20 1 0.272217 0.826172
+22 14 21 1 0.303223 0.911621
+22 14 22 1 0.309082 0.977539
+22 14 23 1 0.311035 1
+22 14 24 1 0.310059 1
+22 14 25 0.959473 0.306396 1
+22 14 26 0.876465 0.300781 1
+22 14 27 0.789551 0.294434 1
+22 14 28 0.700684 0.287842 1
+22 14 29 0.609863 0.281494 1
+22 14 30 0.516113 0.276123 1
+22 14 31 0.415527 0.271484 1
+22 15 0 1 0.210083 0
+22 15 1 1 0.210083 0
+22 15 2 1 0.210083 0
+22 15 3 1 0.210205 0
+22 15 4 1 0.210205 0
+22 15 5 1 0.210205 0
+22 15 6 1 0.210205 0
+22 15 7 1 0.210327 0
+22 15 8 1 0.210571 0
+22 15 9 1 0.21106 0
+22 15 10 1 0.211914 0
+22 15 11 1 0.213257 0
+22 15 12 1 0.215698 0
+22 15 13 1 0.218872 0
+22 15 14 1 0.216431 0
+22 15 15 1 0.209106 0.127441
+22 15 16 1 0.20105 0.304688
+22 15 17 1 0.204834 0.445557
+22 15 18 1 0.221191 0.575195
+22 15 19 1 0.282471 0.708008
+22 15 20 1 0.342041 0.823242
+22 15 21 1 0.366211 0.909668
+22 15 22 1 0.367676 0.976074
+22 15 23 1 0.365234 1
+22 15 24 1 0.359619 1
+22 15 25 0.95166 0.351318 1
+22 15 26 0.869141 0.341064 1
+22 15 27 0.782227 0.330078 1
+22 15 28 0.693359 0.319092 1
+22 15 29 0.602539 0.309082 1
+22 15 30 0.508789 0.300293 1
+22 15 31 0.406982 0.292725 1
+22 16 0 1 0.345215 0
+22 16 1 1 0.345215 0
+22 16 2 1 0.345215 0
+22 16 3 1 0.345215 0
+22 16 4 1 0.345215 0
+22 16 5 1 0.345215 0
+22 16 6 1 0.345215 0
+22 16 7 1 0.345215 0
+22 16 8 1 0.345459 0
+22 16 9 1 0.345703 0
+22 16 10 1 0.346191 0
+22 16 11 1 0.346924 0
+22 16 12 1 0.348389 0
+22 16 13 1 0.350586 0
+22 16 14 1 0.348145 0
+22 16 15 1 0.343994 0.133301
+22 16 16 1 0.337891 0.303467
+22 16 17 1 0.33374 0.438477
+22 16 18 1 0.340332 0.567871
+22 16 19 1 0.373779 0.69873
+22 16 20 1 0.42041 0.817383
+22 16 21 1 0.440186 0.906738
+22 16 22 1 0.4375 0.974121
+22 16 23 1 0.430908 1
+22 16 24 1 0.420654 1
+22 16 25 0.939941 0.406982 1
+22 16 26 0.857422 0.391602 1
+22 16 27 0.770508 0.375488 1
+22 16 28 0.682129 0.359863 1
+22 16 29 0.591309 0.345215 1
+22 16 30 0.49707 0.332275 1
+22 16 31 0.394043 0.321289 1
+22 17 0 1 0.466797 0
+22 17 1 1 0.466797 0
+22 17 2 1 0.466797 0
+22 17 3 1 0.466797 0
+22 17 4 1 0.466797 0
+22 17 5 1 0.466797 0
+22 17 6 1 0.466797 0
+22 17 7 1 0.466797 0
+22 17 8 1 0.466797 0
+22 17 9 1 0.467041 0
+22 17 10 1 0.467285 0
+22 17 11 1 0.468018 0
+22 17 12 1 0.468994 0
+22 17 13 1 0.470459 0
+22 17 14 1 0.469482 0
+22 17 15 1 0.467041 0.152832
+22 17 16 1 0.462158 0.310303
+22 17 17 1 0.455078 0.436768
+22 17 18 1 0.454102 0.561035
+22 17 19 1 0.467285 0.685547
+22 17 20 1 0.503906 0.808105
+22 17 21 1 0.521484 0.901855
+22 17 22 1 0.515625 0.970215
+22 17 23 1 0.504883 1
+22 17 24 0.997559 0.48999 1
+22 17 25 0.922363 0.471191 1
+22 17 26 0.840332 0.450195 1
+22 17 27 0.753906 0.428711 1
+22 17 28 0.666016 0.408203 1
+22 17 29 0.575195 0.388916 1
+22 17 30 0.480225 0.371826 1
+22 17 31 0.375 0.356689 1
+22 18 0 1 0.583984 0
+22 18 1 1 0.583984 0
+22 18 2 1 0.583984 0
+22 18 3 1 0.583984 0
+22 18 4 1 0.583984 0
+22 18 5 1 0.583984 0
+22 18 6 1 0.583984 0
+22 18 7 1 0.583984 0
+22 18 8 1 0.583984 0
+22 18 9 1 0.583984 0
+22 18 10 1 0.584473 0
+22 18 11 1 0.584961 0
+22 18 12 1 0.585449 0
+22 18 13 1 0.586914 0
+22 18 14 1 0.586914 0
+22 18 15 1 0.585449 0.180298
+22 18 16 1 0.58252 0.325439
+22 18 17 1 0.576172 0.445068
+22 18 18 1 0.566895 0.557129
+22 18 19 1 0.566406 0.672852
+22 18 20 1 0.587891 0.792969
+22 18 21 1 0.606445 0.893555
+22 18 22 1 0.598145 0.963867
+22 18 23 1 0.583496 1
+22 18 24 0.973145 0.563965 1
+22 18 25 0.898438 0.540039 1
+22 18 26 0.816895 0.51416 1
+22 18 27 0.731445 0.487549 1
+22 18 28 0.644043 0.462158 1
+22 18 29 0.553223 0.438477 1
+22 18 30 0.457275 0.416992 1
+22 18 31 0.3479 0.397705 1
+22 19 0 1 0.695312 0
+22 19 1 1 0.695312 0
+22 19 2 1 0.695312 0
+22 19 3 1 0.695312 0
+22 19 4 1 0.695312 0
+22 19 5 1 0.695312 0
+22 19 6 1 0.695312 0
+22 19 7 1 0.695312 0
+22 19 8 1 0.695312 0
+22 19 9 1 0.695801 0
+22 19 10 1 0.695801 0
+22 19 11 1 0.696289 0
+22 19 12 1 0.696777 0
+22 19 13 1 0.697754 0
+22 19 14 1 0.698242 0
+22 19 15 1 0.698242 0.199341
+22 19 16 1 0.697266 0.340332
+22 19 17 1 0.692871 0.45874
+22 19 18 1 0.683594 0.565918
+22 19 19 1 0.670898 0.666016
+22 19 20 1 0.670898 0.772461
+22 19 21 1 0.689941 0.881348
+22 19 22 1 0.681152 0.95459
+22 19 23 1 0.663086 1
+22 19 24 0.94043 0.638672 1
+22 19 25 0.866211 0.609863 1
+22 19 26 0.786133 0.57959 1
+22 19 27 0.702637 0.548828 1
+22 19 28 0.616211 0.519043 1
+22 19 29 0.525391 0.491455 1
+22 19 30 0.426758 0.466064 1
+22 19 31 0.310303 0.442871 1
+22 20 0 1 0.797363 0
+22 20 1 1 0.797363 0
+22 20 2 1 0.797363 0
+22 20 3 1 0.797363 0
+22 20 4 1 0.797363 0
+22 20 5 1 0.797363 0
+22 20 6 1 0.797363 0
+22 20 7 1 0.797363 0
+22 20 8 1 0.797363 0
+22 20 9 1 0.797852 0
+22 20 10 1 0.797852 0
+22 20 11 1 0.797852 0
+22 20 12 1 0.79834 0
+22 20 13 1 0.799316 0
+22 20 14 1 0.800293 0
+22 20 15 1 0.800781 0.193604
+22 20 16 1 0.80127 0.341797
+22 20 17 1 0.798828 0.464844
+22 20 18 1 0.792969 0.575684
+22 20 19 1 0.780273 0.673828
+22 20 20 1 0.762207 0.760254
+22 20 21 1 0.765625 0.861816
+22 20 22 1 0.760742 0.942383
+22 20 23 0.963867 0.739258 0.995117
+22 20 24 0.898926 0.710449 1
+22 20 25 0.82666 0.677734 1
+22 20 26 0.749023 0.644043 1
+22 20 27 0.66748 0.610352 1
+22 20 28 0.582031 0.577637 1
+22 20 29 0.490234 0.546387 1
+22 20 30 0.387451 0.51709 1
+22 20 31 0.257568 0.490234 1
+22 21 0 1 0.888672 0
+22 21 1 1 0.888672 0
+22 21 2 1 0.888672 0
+22 21 3 1 0.888672 0
+22 21 4 1 0.888672 0
+22 21 5 1 0.888672 0
+22 21 6 1 0.888672 0
+22 21 7 1 0.888672 0
+22 21 8 1 0.888672 0
+22 21 9 1 0.888672 0
+22 21 10 1 0.88916 0
+22 21 11 1 0.88916 0
+22 21 12 1 0.88916 0
+22 21 13 1 0.889648 0
+22 21 14 1 0.890625 0
+22 21 15 1 0.89209 0.147461
+22 21 16 1 0.893555 0.321045
+22 21 17 1 0.893066 0.453125
+22 21 18 1 0.88916 0.570801
+22 21 19 1 0.880371 0.675781
+22 21 20 1 0.864258 0.765137
+22 21 21 1 0.841309 0.84082
+22 21 22 0.967285 0.835938 0.925781
+22 21 23 0.910645 0.80957 0.977051
+22 21 24 0.847168 0.777832 1
+22 21 25 0.778809 0.744141 1
+22 21 26 0.705078 0.709473 1
+22 21 27 0.625488 0.673828 1
+22 21 28 0.540039 0.638184 1
+22 21 29 0.445557 0.604004 1
+22 21 30 0.333984 0.571289 1
+22 21 31 0.171143 0.540527 1
+22 22 0 1 0.964844 0
+22 22 1 1 0.964844 0
+22 22 2 1 0.964844 0
+22 22 3 1 0.964844 0
+22 22 4 1 0.964844 0
+22 22 5 1 0.964844 0
+22 22 6 1 0.964844 0
+22 22 7 1 0.964844 0
+22 22 8 1 0.964844 0
+22 22 9 1 0.964844 0
+22 22 10 1 0.964844 0
+22 22 11 1 0.964844 0
+22 22 12 1 0.965332 0
+22 22 13 1 0.965332 0
+22 22 14 1 0.966309 0
+22 22 15 1 0.967773 0.00399399
+22 22 16 1 0.969727 0.279053
+22 22 17 1 0.969727 0.423828
+22 22 18 1 0.967285 0.547852
+22 22 19 1 0.960449 0.657715
+22 22 20 0.998047 0.948242 0.753906
+22 22 21 0.956055 0.929688 0.836914
+22 22 22 0.905273 0.905273 0.905273
+22 22 23 0.848633 0.875488 0.956543
+22 22 24 0.791016 0.845215 0.996582
+22 22 25 0.726074 0.812012 1
+22 22 26 0.654785 0.775879 1
+22 22 27 0.575195 0.738281 1
+22 22 28 0.487305 0.699707 1
+22 22 29 0.385498 0.661621 1
+22 22 30 0.254395 0.625 1
+22 22 31 0 0.589844 1
+22 23 0 1 1 0
+22 23 1 1 1 0
+22 23 2 1 1 0
+22 23 3 1 1 0
+22 23 4 1 1 0
+22 23 5 1 1 0
+22 23 6 1 1 0
+22 23 7 1 1 0
+22 23 8 1 1 0
+22 23 9 1 1 0
+22 23 10 1 1 0
+22 23 11 1 1 0
+22 23 12 1 1 0
+22 23 13 1 1 0
+22 23 14 1 1 0
+22 23 15 1 1 0
+22 23 16 1 1 0.222778
+22 23 17 0.992188 1 0.384766
+22 23 18 0.976074 1 0.51416
+22 23 19 0.952148 1 0.626465
+22 23 20 0.92041 1 0.724121
+22 23 21 0.879395 0.986328 0.808105
+22 23 22 0.834473 0.965332 0.881836
+22 23 23 0.790527 0.947754 0.947754
+22 23 24 0.73584 0.918457 0.993652
+22 23 25 0.67041 0.881836 1
+22 23 26 0.59668 0.842285 1
+22 23 27 0.514648 0.80127 1
+22 23 28 0.420166 0.759277 1
+22 23 29 0.303223 0.717773 1
+22 23 30 0.104614 0.677246 1
+22 23 31 0 0.638184 1
+22 24 0 0.919922 1 0
+22 24 1 0.919922 1 0
+22 24 2 0.919922 1 0
+22 24 3 0.919922 1 0
+22 24 4 0.919922 1 0
+22 24 5 0.919922 1 0
+22 24 6 0.919922 1 0
+22 24 7 0.919922 1 0
+22 24 8 0.919922 1 0
+22 24 9 0.919922 1 0
+22 24 10 0.919922 1 0
+22 24 11 0.919922 1 0
+22 24 12 0.919434 1 0
+22 24 13 0.919434 1 0
+22 24 14 0.919434 1 0
+22 24 15 0.916992 1 0
+22 24 16 0.910645 1 0.147949
+22 24 17 0.900879 1 0.340332
+22 24 18 0.885254 1 0.47583
+22 24 19 0.862305 1 0.59082
+22 24 20 0.83252 1 0.689941
+22 24 21 0.79541 1 0.777832
+22 24 22 0.754883 1 0.856445
+22 24 23 0.711914 1 0.924316
+22 24 24 0.664062 0.980957 0.981445
+22 24 25 0.603027 0.950684 1
+22 24 26 0.527832 0.910156 1
+22 24 27 0.438721 0.865723 1
+22 24 28 0.32959 0.820312 1
+22 24 29 0.164062 0.774414 1
+22 24 30 0 0.72998 1
+22 24 31 0 0.687012 1
+22 25 0 0.811523 1 0
+22 25 1 0.811523 1 0
+22 25 2 0.811523 1 0
+22 25 3 0.811523 1 0
+22 25 4 0.811523 1 0
+22 25 5 0.811523 1 0
+22 25 6 0.811523 1 0
+22 25 7 0.811523 1 0
+22 25 8 0.811523 1 0
+22 25 9 0.811523 1 0
+22 25 10 0.811523 1 0
+22 25 11 0.811523 1 0
+22 25 12 0.811523 1 0
+22 25 13 0.811523 1 0
+22 25 14 0.811035 1 0
+22 25 15 0.80957 1 0
+22 25 16 0.803223 1 0
+22 25 17 0.792969 1 0.286865
+22 25 18 0.777344 1 0.432129
+22 25 19 0.755859 1 0.550781
+22 25 20 0.727539 1 0.652832
+22 25 21 0.693359 1 0.744141
+22 25 22 0.653809 1 0.825684
+22 25 23 0.610352 1 0.895996
+22 25 24 0.561035 1 0.955566
+22 25 25 0.499756 1 1
+22 25 26 0.42041 0.976562 1
+22 25 27 0.313965 0.933594 1
+22 25 28 0.138672 0.88623 1
+22 25 29 0 0.836914 1
+22 25 30 0 0.788574 1
+22 25 31 0 0.741211 1
+22 26 0 0.682617 1 0
+22 26 1 0.682617 1 0
+22 26 2 0.682617 1 0
+22 26 3 0.682617 1 0
+22 26 4 0.682617 1 0
+22 26 5 0.682617 1 0
+22 26 6 0.682617 1 0
+22 26 7 0.682617 1 0
+22 26 8 0.682617 1 0
+22 26 9 0.682617 1 0
+22 26 10 0.682617 1 0
+22 26 11 0.682617 1 0
+22 26 12 0.682617 1 0
+22 26 13 0.682617 1 0
+22 26 14 0.682617 1 0
+22 26 15 0.681641 1 0
+22 26 16 0.674316 1 0
+22 26 17 0.663086 1 0.219238
+22 26 18 0.646973 1 0.382568
+22 26 19 0.625 1 0.506348
+22 26 20 0.596191 1 0.611328
+22 26 21 0.560547 1 0.705566
+22 26 22 0.518066 1 0.790039
+22 26 23 0.468506 1 0.862305
+22 26 24 0.410156 1 0.924316
+22 26 25 0.331787 1 0.981934
+22 26 26 0.21106 1 1
+22 26 27 0 0.997559 1
+22 26 28 0 0.952148 1
+22 26 29 0 0.902344 1
+22 26 30 0 0.851074 1
+22 26 31 0 0.799805 1
+22 27 0 0.519043 1 0
+22 27 1 0.519043 1 0
+22 27 2 0.519043 1 0
+22 27 3 0.519043 1 0
+22 27 4 0.519043 1 0
+22 27 5 0.519043 1 0
+22 27 6 0.519043 1 0
+22 27 7 0.519043 1 0
+22 27 8 0.519043 1 0
+22 27 9 0.519043 1 0
+22 27 10 0.519043 1 0
+22 27 11 0.519043 1 0
+22 27 12 0.519043 1 0
+22 27 13 0.519043 1 0
+22 27 14 0.519043 1 0
+22 27 15 0.519043 1 0
+22 27 16 0.510742 1 0
+22 27 17 0.496338 1 0.117981
+22 27 18 0.47583 1 0.325195
+22 27 19 0.447998 1 0.457031
+22 27 20 0.411377 1 0.56543
+22 27 21 0.363037 1 0.662109
+22 27 22 0.298584 1 0.748047
+22 27 23 0.20752 1 0.822754
+22 27 24 0 1 0.886719
+22 27 25 0 1 0.947754
+22 27 26 0 1 1
+22 27 27 0 1 1
+22 27 28 0 1 1
+22 27 29 0 0.96582 1
+22 27 30 0 0.914062 1
+22 27 31 0 0.86084 1
+22 28 0 0.254883 1 0
+22 28 1 0.254883 1 0
+22 28 2 0.254883 1 0
+22 28 3 0.254883 1 0
+22 28 4 0.254883 1 0
+22 28 5 0.254883 1 0
+22 28 6 0.254883 1 0
+22 28 7 0.254883 1 0
+22 28 8 0.254883 1 0
+22 28 9 0.254883 1 0
+22 28 10 0.255127 1 0
+22 28 11 0.255127 1 0
+22 28 12 0.255371 1 0
+22 28 13 0.255615 1 0
+22 28 14 0.255859 1 0
+22 28 15 0.256592 1 0
+22 28 16 0.241821 1 0
+22 28 17 0.206421 1 0
+22 28 18 0.144897 1 0.256348
+22 28 19 0 1 0.401855
+22 28 20 0 1 0.514648
+22 28 21 0 1 0.613281
+22 28 22 0 1 0.701172
+22 28 23 0 1 0.777344
+22 28 24 0 1 0.843262
+22 28 25 0 1 0.906738
+22 28 26 0 1 0.966309
+22 28 27 0 1 1
+22 28 28 0 1 1
+22 28 29 0 1 1
+22 28 30 0 0.974121 1
+22 28 31 0 0.920898 1
+22 29 0 0 1 0
+22 29 1 0 1 0
+22 29 2 0 1 0
+22 29 3 0 1 0
+22 29 4 0 1 0
+22 29 5 0 1 0
+22 29 6 0 1 0
+22 29 7 0 1 0
+22 29 8 0 1 0
+22 29 9 0 1 0
+22 29 10 0 1 0
+22 29 11 0 1 0
+22 29 12 0 1 0
+22 29 13 0 1 0
+22 29 14 0 1 0
+22 29 15 0 1 0
+22 29 16 0 1 0
+22 29 17 0 1 0
+22 29 18 0 1 0.162598
+22 29 19 0 1 0.338623
+22 29 20 0 1 0.458008
+22 29 21 0 1 0.559082
+22 29 22 0 1 0.648438
+22 29 23 0 1 0.725586
+22 29 24 0 1 0.793457
+22 29 25 0 1 0.859375
+22 29 26 0 1 0.921875
+22 29 27 0 1 0.97998
+22 29 28 0 1 1
+22 29 29 0 1 1
+22 29 30 0 1 1
+22 29 31 0 0.980469 1
+22 30 0 0 1 0
+22 30 1 0 1 0
+22 30 2 0 1 0
+22 30 3 0 1 0
+22 30 4 0 1 0
+22 30 5 0 1 0
+22 30 6 0 1 0
+22 30 7 0 1 0
+22 30 8 0 1 0
+22 30 9 0 1 0
+22 30 10 0 1 0
+22 30 11 0 1 0
+22 30 12 0 1 0
+22 30 13 0 1 0
+22 30 14 0 1 0
+22 30 15 0 1 0
+22 30 16 0 1 0
+22 30 17 0 1 0
+22 30 18 0 1 0
+22 30 19 0 1 0.263672
+22 30 20 0 1 0.39502
+22 30 21 0 1 0.5
+22 30 22 0 1 0.590332
+22 30 23 0 1 0.668945
+22 30 24 0 1 0.737793
+22 30 25 0 1 0.805176
+22 30 26 0 1 0.870117
+22 30 27 0 1 0.932129
+22 30 28 0 1 0.989258
+22 30 29 0 1 1
+22 30 30 0 1 1
+22 30 31 0 1 1
+22 31 0 0 1 0
+22 31 1 0 1 0
+22 31 2 0 1 0
+22 31 3 0 1 0
+22 31 4 0 1 0
+22 31 5 0 1 0
+22 31 6 0 1 0
+22 31 7 0 1 0
+22 31 8 0 1 0
+22 31 9 0 1 0
+22 31 10 0 1 0
+22 31 11 0 1 0
+22 31 12 0 1 0
+22 31 13 0 1 0
+22 31 14 0 1 0
+22 31 15 0 1 0
+22 31 16 0 1 0
+22 31 17 0 1 0
+22 31 18 0 1 0
+22 31 19 0 1 0.164062
+22 31 20 0 1 0.323975
+22 31 21 0 1 0.435059
+22 31 22 0 1 0.527832
+22 31 23 0 1 0.606934
+22 31 24 0 1 0.676758
+22 31 25 0 1 0.745605
+22 31 26 0 1 0.812988
+22 31 27 0 1 0.878418
+22 31 28 0 1 0.939941
+22 31 29 0 1 0.996582
+22 31 30 0 1 1
+22 31 31 0 1 1
+23 0 0 1 0 0
+23 0 1 1 0 0
+23 0 2 1 0 0
+23 0 3 1 0 0
+23 0 4 1 0 0
+23 0 5 1 0 0
+23 0 6 1 0 0
+23 0 7 1 0 0
+23 0 8 1 0 0
+23 0 9 1 0 0
+23 0 10 1 0 0
+23 0 11 1 0 0
+23 0 12 1 0 0
+23 0 13 1 0 0
+23 0 14 1 0 0
+23 0 15 1 0 0
+23 0 16 1 0 0.268799
+23 0 17 1 0 0.415283
+23 0 18 1 0 0.54834
+23 0 19 1 0 0.676758
+23 0 20 1 0 0.790527
+23 0 21 1 0.0704956 0.882812
+23 0 22 1 0.145752 0.954102
+23 0 23 1 0.169434 1
+23 0 24 1 0.187134 1
+23 0 25 1 0.201294 1
+23 0 26 1 0.212158 1
+23 0 27 0.919922 0.219971 1
+23 0 28 0.831055 0.225586 1
+23 0 29 0.739258 0.22937 1
+23 0 30 0.646484 0.232178 1
+23 0 31 0.551758 0.234375 1
+23 1 0 1 0 0
+23 1 1 1 0 0
+23 1 2 1 0 0
+23 1 3 1 0 0
+23 1 4 1 0 0
+23 1 5 1 0 0
+23 1 6 1 0 0
+23 1 7 1 0 0
+23 1 8 1 0 0
+23 1 9 1 0 0
+23 1 10 1 0 0
+23 1 11 1 0 0
+23 1 12 1 0 0
+23 1 13 1 0 0
+23 1 14 1 0 0
+23 1 15 1 0 0
+23 1 16 1 0 0.268799
+23 1 17 1 0 0.415283
+23 1 18 1 0 0.54834
+23 1 19 1 0 0.676758
+23 1 20 1 0 0.790527
+23 1 21 1 0.0705566 0.882812
+23 1 22 1 0.145752 0.954102
+23 1 23 1 0.169556 1
+23 1 24 1 0.187134 1
+23 1 25 1 0.201294 1
+23 1 26 1 0.212158 1
+23 1 27 0.919922 0.220093 1
+23 1 28 0.830566 0.225586 1
+23 1 29 0.739258 0.229492 1
+23 1 30 0.646484 0.232178 1
+23 1 31 0.551758 0.234375 1
+23 2 0 1 0 0
+23 2 1 1 0 0
+23 2 2 1 0 0
+23 2 3 1 0 0
+23 2 4 1 0 0
+23 2 5 1 0 0
+23 2 6 1 0 0
+23 2 7 1 0 0
+23 2 8 1 0 0
+23 2 9 1 0 0
+23 2 10 1 0 0
+23 2 11 1 0 0
+23 2 12 1 0 0
+23 2 13 1 0 0
+23 2 14 1 0 0
+23 2 15 1 0 0
+23 2 16 1 0 0.268799
+23 2 17 1 0 0.415283
+23 2 18 1 0 0.54834
+23 2 19 1 0 0.676758
+23 2 20 1 0 0.790527
+23 2 21 1 0.0707397 0.882812
+23 2 22 1 0.145874 0.954102
+23 2 23 1 0.169556 1
+23 2 24 1 0.187134 1
+23 2 25 1 0.201416 1
+23 2 26 1 0.212158 1
+23 2 27 0.919922 0.220093 1
+23 2 28 0.830566 0.225586 1
+23 2 29 0.739258 0.229492 1
+23 2 30 0.646484 0.232178 1
+23 2 31 0.551758 0.234375 1
+23 3 0 1 0 0
+23 3 1 1 0 0
+23 3 2 1 0 0
+23 3 3 1 0 0
+23 3 4 1 0 0
+23 3 5 1 0 0
+23 3 6 1 0 0
+23 3 7 1 0 0
+23 3 8 1 0 0
+23 3 9 1 0 0
+23 3 10 1 0 0
+23 3 11 1 0 0
+23 3 12 1 0 0
+23 3 13 1 0 0
+23 3 14 1 0 0
+23 3 15 1 0 0
+23 3 16 1 0 0.268799
+23 3 17 1 0 0.415283
+23 3 18 1 0 0.54834
+23 3 19 1 0 0.676758
+23 3 20 1 0 0.790527
+23 3 21 1 0.0709839 0.882812
+23 3 22 1 0.145996 0.954102
+23 3 23 1 0.169678 1
+23 3 24 1 0.187256 1
+23 3 25 1 0.201416 1
+23 3 26 1 0.21228 1
+23 3 27 0.919922 0.220093 1
+23 3 28 0.830566 0.225586 1
+23 3 29 0.739258 0.229492 1
+23 3 30 0.646484 0.2323 1
+23 3 31 0.551758 0.234497 1
+23 4 0 1 0 0
+23 4 1 1 0 0
+23 4 2 1 0 0
+23 4 3 1 0 0
+23 4 4 1 0 0
+23 4 5 1 0 0
+23 4 6 1 0 0
+23 4 7 1 0 0
+23 4 8 1 0 0
+23 4 9 1 0 0
+23 4 10 1 0 0
+23 4 11 1 0 0
+23 4 12 1 0 0
+23 4 13 1 0 0
+23 4 14 1 0 0
+23 4 15 1 0 0
+23 4 16 1 0 0.268799
+23 4 17 1 0 0.415283
+23 4 18 1 0 0.54834
+23 4 19 1 0 0.676758
+23 4 20 1 0 0.790527
+23 4 21 1 0.0714722 0.882812
+23 4 22 1 0.14624 0.954102
+23 4 23 1 0.169922 1
+23 4 24 1 0.187378 1
+23 4 25 1 0.201538 1
+23 4 26 1 0.212402 1
+23 4 27 0.919922 0.220215 1
+23 4 28 0.830566 0.225708 1
+23 4 29 0.739258 0.229614 1
+23 4 30 0.646484 0.2323 1
+23 4 31 0.551758 0.234497 1
+23 5 0 1 0 0
+23 5 1 1 0 0
+23 5 2 1 0 0
+23 5 3 1 0 0
+23 5 4 1 0 0
+23 5 5 1 0 0
+23 5 6 1 0 0
+23 5 7 1 0 0
+23 5 8 1 0 0
+23 5 9 1 0 0
+23 5 10 1 0 0
+23 5 11 1 0 0
+23 5 12 1 0 0
+23 5 13 1 0 0
+23 5 14 1 0 0
+23 5 15 1 0 0
+23 5 16 1 0 0.268799
+23 5 17 1 0 0.415283
+23 5 18 1 0 0.54834
+23 5 19 1 0 0.676758
+23 5 20 1 0 0.790527
+23 5 21 1 0.0723877 0.882812
+23 5 22 1 0.146729 0.954102
+23 5 23 1 0.170288 1
+23 5 24 1 0.187744 1
+23 5 25 1 0.201782 1
+23 5 26 1 0.212646 1
+23 5 27 0.919922 0.220337 1
+23 5 28 0.830566 0.22583 1
+23 5 29 0.739258 0.229736 1
+23 5 30 0.646484 0.232422 1
+23 5 31 0.551758 0.234619 1
+23 6 0 1 0 0
+23 6 1 1 0 0
+23 6 2 1 0 0
+23 6 3 1 0 0
+23 6 4 1 0 0
+23 6 5 1 0 0
+23 6 6 1 0 0
+23 6 7 1 0 0
+23 6 8 1 0 0
+23 6 9 1 0 0
+23 6 10 1 0 0
+23 6 11 1 0 0
+23 6 12 1 0 0
+23 6 13 1 0 0
+23 6 14 1 0 0
+23 6 15 1 0 0
+23 6 16 1 0 0.268799
+23 6 17 1 0 0.415283
+23 6 18 1 0 0.54834
+23 6 19 1 0 0.676758
+23 6 20 1 0 0.790039
+23 6 21 1 0.0740967 0.882812
+23 6 22 1 0.147583 0.954102
+23 6 23 1 0.171021 1
+23 6 24 1 0.188354 1
+23 6 25 1 0.202393 1
+23 6 26 1 0.213013 1
+23 6 27 0.919922 0.220703 1
+23 6 28 0.830566 0.226196 1
+23 6 29 0.739258 0.22998 1
+23 6 30 0.646484 0.232666 1
+23 6 31 0.551758 0.234741 1
+23 7 0 1 0 0
+23 7 1 1 0 0
+23 7 2 1 0 0
+23 7 3 1 0 0
+23 7 4 1 0 0
+23 7 5 1 0 0
+23 7 6 1 0 0
+23 7 7 1 0 0
+23 7 8 1 0 0
+23 7 9 1 0 0
+23 7 10 1 0 0
+23 7 11 1 0 0
+23 7 12 1 0 0
+23 7 13 1 0 0
+23 7 14 1 0 0
+23 7 15 1 0 0
+23 7 16 1 0 0.268555
+23 7 17 1 0 0.415039
+23 7 18 1 0 0.54834
+23 7 19 1 0 0.676758
+23 7 20 1 0 0.790039
+23 7 21 1 0.0773926 0.882812
+23 7 22 1 0.149292 0.954102
+23 7 23 1 0.172363 1
+23 7 24 1 0.189453 1
+23 7 25 1 0.203369 1
+23 7 26 1 0.213867 1
+23 7 27 0.919922 0.221436 1
+23 7 28 0.830566 0.226685 1
+23 7 29 0.739258 0.230347 1
+23 7 30 0.646484 0.233032 1
+23 7 31 0.551758 0.235107 1
+23 8 0 1 0 0
+23 8 1 1 0 0
+23 8 2 1 0 0
+23 8 3 1 0 0
+23 8 4 1 0 0
+23 8 5 1 0 0
+23 8 6 1 0 0
+23 8 7 1 0 0
+23 8 8 1 0 0
+23 8 9 1 0 0
+23 8 10 1 0 0
+23 8 11 1 0 0
+23 8 12 1 0 0
+23 8 13 1 0 0
+23 8 14 1 0 0
+23 8 15 1 0 0
+23 8 16 1 0 0.268555
+23 8 17 1 0 0.415039
+23 8 18 1 0 0.547852
+23 8 19 1 0 0.676758
+23 8 20 1 0 0.790039
+23 8 21 1 0.0834351 0.882812
+23 8 22 1 0.152588 0.953613
+23 8 23 1 0.175049 1
+23 8 24 1 0.191772 1
+23 8 25 1 0.2052 1
+23 8 26 1 0.215454 1
+23 8 27 0.919922 0.222778 1
+23 8 28 0.830566 0.227783 1
+23 8 29 0.739258 0.231323 1
+23 8 30 0.646484 0.233765 1
+23 8 31 0.55127 0.235718 1
+23 9 0 1 0 0
+23 9 1 1 0 0
+23 9 2 1 0 0
+23 9 3 1 0 0
+23 9 4 1 0 0
+23 9 5 1 0 0
+23 9 6 1 0 0
+23 9 7 1 0 0
+23 9 8 1 0 0
+23 9 9 1 0 0
+23 9 10 1 0 0
+23 9 11 1 0 0
+23 9 12 1 0 0
+23 9 13 1 0 0
+23 9 14 1 0 0
+23 9 15 1 0 0
+23 9 16 1 0 0.268066
+23 9 17 1 0 0.414795
+23 9 18 1 0 0.547852
+23 9 19 1 0 0.67627
+23 9 20 1 0 0.790039
+23 9 21 1 0.0941772 0.882812
+23 9 22 1 0.158691 0.953613
+23 9 23 1 0.180054 1
+23 9 24 1 0.195923 1
+23 9 25 1 0.20874 1
+23 9 26 1 0.218384 1
+23 9 27 0.919434 0.22522 1
+23 9 28 0.830078 0.229858 1
+23 9 29 0.73877 0.233032 1
+23 9 30 0.645996 0.235229 1
+23 9 31 0.55127 0.236938 1
+23 10 0 1 0 0
+23 10 1 1 0 0
+23 10 2 1 0 0
+23 10 3 1 0 0
+23 10 4 1 0 0
+23 10 5 1 0 0
+23 10 6 1 0 0
+23 10 7 1 0 0
+23 10 8 1 0 0
+23 10 9 1 0 0
+23 10 10 1 0 0
+23 10 11 1 0 0
+23 10 12 1 0 0
+23 10 13 1 0 0
+23 10 14 1 0 0
+23 10 15 1 0 0
+23 10 16 1 0 0.267334
+23 10 17 1 0 0.414551
+23 10 18 1 0 0.547363
+23 10 19 1 0 0.675781
+23 10 20 1 0 0.789551
+23 10 21 1 0.111328 0.882324
+23 10 22 1 0.169189 0.953613
+23 10 23 1 0.188721 1
+23 10 24 1 0.203369 1
+23 10 25 1 0.215088 1
+23 10 26 1 0.223755 1
+23 10 27 0.918945 0.229736 1
+23 10 28 0.82959 0.233643 1
+23 10 29 0.738281 0.236206 1
+23 10 30 0.645508 0.237915 1
+23 10 31 0.550781 0.239136 1
+23 11 0 1 0 0
+23 11 1 1 0 0
+23 11 2 1 0 0
+23 11 3 1 0 0
+23 11 4 1 0 0
+23 11 5 1 0 0
+23 11 6 1 0 0
+23 11 7 1 0 0
+23 11 8 1 0 0
+23 11 9 1 0 0
+23 11 10 1 0 0
+23 11 11 1 0 0
+23 11 12 1 0 0
+23 11 13 1 0 0
+23 11 14 1 0 0
+23 11 15 1 0 0
+23 11 16 1 0 0.265869
+23 11 17 1 0 0.414062
+23 11 18 1 0 0.546387
+23 11 19 1 0 0.675293
+23 11 20 1 0 0.789062
+23 11 21 1 0.136475 0.882324
+23 11 22 1 0.186157 0.953613
+23 11 23 1 0.203003 1
+23 11 24 1 0.215698 1
+23 11 25 1 0.225586 1
+23 11 26 1 0.232666 1
+23 11 27 0.917969 0.237305 1
+23 11 28 0.828613 0.240112 1
+23 11 29 0.737305 0.241577 1
+23 11 30 0.644531 0.242432 1
+23 11 31 0.549805 0.243042 1
+23 12 0 1 0 0
+23 12 1 1 0 0
+23 12 2 1 0 0
+23 12 3 1 0 0
+23 12 4 1 0 0
+23 12 5 1 0 0
+23 12 6 1 0 0
+23 12 7 1 0 0
+23 12 8 1 0 0
+23 12 9 1 0 0
+23 12 10 1 0 0
+23 12 11 1 0 0
+23 12 12 1 0 0
+23 12 13 1 0 0
+23 12 14 1 0 0
+23 12 15 1 0 0
+23 12 16 1 0 0.263916
+23 12 17 1 0 0.413086
+23 12 18 1 0 0.544922
+23 12 19 1 0 0.673828
+23 12 20 1 0 0.788574
+23 12 21 1 0.171143 0.881836
+23 12 22 1 0.211792 0.953613
+23 12 23 1 0.22522 1
+23 12 24 1 0.235107 1
+23 12 25 1 0.242554 1
+23 12 26 1 0.247192 1
+23 12 27 0.916504 0.249756 1
+23 12 28 0.827148 0.250732 1
+23 12 29 0.73584 0.250488 1
+23 12 30 0.643066 0.25 1
+23 12 31 0.54834 0.249512 1
+23 13 0 1 0 0
+23 13 1 1 0 0
+23 13 2 1 0 0
+23 13 3 1 0 0
+23 13 4 1 0 0
+23 13 5 1 0 0
+23 13 6 1 0 0
+23 13 7 1 0 0
+23 13 8 1 0 0
+23 13 9 1 0 0
+23 13 10 1 0 0
+23 13 11 1 0 0
+23 13 12 1 0 0
+23 13 13 1 0 0
+23 13 14 1 0 0
+23 13 15 1 0 0
+23 13 16 1 0 0.260742
+23 13 17 1 0 0.411865
+23 13 18 1 0 0.542969
+23 13 19 1 0 0.671875
+23 13 20 1 0.108215 0.787109
+23 13 21 1 0.215576 0.881348
+23 13 22 1 0.247559 0.953125
+23 13 23 1 0.25708 1
+23 13 24 1 0.263672 1
+23 13 25 1 0.267578 1
+23 13 26 0.999512 0.269287 1
+23 13 27 0.914062 0.268799 1
+23 13 28 0.824707 0.266846 1
+23 13 29 0.733398 0.264404 1
+23 13 30 0.640625 0.261963 1
+23 13 31 0.545898 0.259521 1
+23 14 0 1 0 0
+23 14 1 1 0 0
+23 14 2 1 0 0
+23 14 3 1 0 0
+23 14 4 1 0 0
+23 14 5 1 0 0
+23 14 6 1 0 0
+23 14 7 1 0 0
+23 14 8 1 0 0
+23 14 9 1 0 0
+23 14 10 1 0 0
+23 14 11 1 0 0
+23 14 12 1 0 0
+23 14 13 1 0 0
+23 14 14 1 0 0
+23 14 15 1 0 0
+23 14 16 1 0 0.256348
+23 14 17 1 0 0.408936
+23 14 18 1 0 0.539551
+23 14 19 1 0.0246735 0.668457
+23 14 20 1 0.197266 0.784668
+23 14 21 1 0.270264 0.879883
+23 14 22 1 0.294678 0.952148
+23 14 23 1 0.300049 1
+23 14 24 1 0.302734 1
+23 14 25 1 0.302734 1
+23 14 26 0.995605 0.300293 1
+23 14 27 0.910156 0.295898 1
+23 14 28 0.820801 0.290527 1
+23 14 29 0.729492 0.284912 1
+23 14 30 0.636719 0.279541 1
+23 14 31 0.541504 0.274902 1
+23 15 0 1 0.149902 0
+23 15 1 1 0.149902 0
+23 15 2 1 0.149902 0
+23 15 3 1 0.149902 0
+23 15 4 1 0.149902 0
+23 15 5 1 0.150024 0
+23 15 6 1 0.150024 0
+23 15 7 1 0.150269 0
+23 15 8 1 0.150513 0
+23 15 9 1 0.151123 0
+23 15 10 1 0.152222 0
+23 15 11 1 0.154053 0
+23 15 12 1 0.157104 0
+23 15 13 1 0.162109 0
+23 15 14 1 0.163452 0
+23 15 15 1 0.154663 0
+23 15 16 1 0.1427 0.251953
+23 15 17 1 0.138672 0.403076
+23 15 18 1 0.149658 0.535156
+23 15 19 1 0.203491 0.663086
+23 15 20 1 0.280518 0.780762
+23 15 21 1 0.334961 0.87793
+23 15 22 1 0.353027 0.951172
+23 15 23 1 0.354248 1
+23 15 24 1 0.352783 1
+23 15 25 1 0.348633 1
+23 15 26 0.98877 0.341553 1
+23 15 27 0.90332 0.33252 1
+23 15 28 0.814453 0.322998 1
+23 15 29 0.723145 0.313232 1
+23 15 30 0.630371 0.304443 1
+23 15 31 0.535156 0.296387 1
+23 16 0 1 0.304443 0
+23 16 1 1 0.304443 0
+23 16 2 1 0.304443 0
+23 16 3 1 0.304443 0
+23 16 4 1 0.304443 0
+23 16 5 1 0.304443 0
+23 16 6 1 0.304688 0
+23 16 7 1 0.304688 0
+23 16 8 1 0.304688 0
+23 16 9 1 0.305176 0
+23 16 10 1 0.305664 0
+23 16 11 1 0.306396 0
+23 16 12 1 0.307861 0
+23 16 13 1 0.310303 0
+23 16 14 1 0.310303 0
+23 16 15 1 0.306152 0
+23 16 16 1 0.300293 0.25
+23 16 17 1 0.294922 0.397217
+23 16 18 1 0.299805 0.530762
+23 16 19 1 0.317871 0.654785
+23 16 20 1 0.366455 0.774414
+23 16 21 1 0.408936 0.874023
+23 16 22 1 0.422119 0.94873
+23 16 23 1 0.419434 1
+23 16 24 1 0.414062 1
+23 16 25 1 0.405273 1
+23 16 26 0.979004 0.393066 1
+23 16 27 0.894043 0.37915 1
+23 16 28 0.804688 0.364502 1
+23 16 29 0.713867 0.350342 1
+23 16 30 0.621094 0.337158 1
+23 16 31 0.525391 0.325195 1
+23 17 0 1 0.429443 0
+23 17 1 1 0.429443 0
+23 17 2 1 0.429443 0
+23 17 3 1 0.429443 0
+23 17 4 1 0.429443 0
+23 17 5 1 0.429443 0
+23 17 6 1 0.429443 0
+23 17 7 1 0.429443 0
+23 17 8 1 0.429443 0
+23 17 9 1 0.429688 0
+23 17 10 1 0.429932 0
+23 17 11 1 0.430664 0
+23 17 12 1 0.431641 0
+23 17 13 1 0.433105 0
+23 17 14 1 0.43335 0
+23 17 15 1 0.431152 0
+23 17 16 1 0.427246 0.255127
+23 17 17 1 0.421631 0.395264
+23 17 18 1 0.418945 0.522949
+23 17 19 1 0.425293 0.64502
+23 17 20 1 0.454346 0.76416
+23 17 21 1 0.48877 0.868164
+23 17 22 1 0.499023 0.944824
+23 17 23 1 0.49292 1
+23 17 24 1 0.483887 1
+23 17 25 1 0.470215 1
+23 17 26 0.964844 0.453125 1
+23 17 27 0.879883 0.433594 1
+23 17 28 0.791016 0.413818 1
+23 17 29 0.700195 0.394775 1
+23 17 30 0.60791 0.376953 1
+23 17 31 0.511719 0.361084 1
+23 18 0 1 0.54541 0
+23 18 1 1 0.54541 0
+23 18 2 1 0.54541 0
+23 18 3 1 0.54541 0
+23 18 4 1 0.54541 0
+23 18 5 1 0.54541 0
+23 18 6 1 0.54541 0
+23 18 7 1 0.54541 0
+23 18 8 1 0.54541 0
+23 18 9 1 0.54541 0
+23 18 10 1 0.545898 0
+23 18 11 1 0.546387 0
+23 18 12 1 0.546875 0
+23 18 13 1 0.54834 0
+23 18 14 1 0.548828 0
+23 18 15 1 0.54834 0.0611877
+23 18 16 1 0.545898 0.269043
+23 18 17 1 0.541504 0.401123
+23 18 18 1 0.53418 0.519531
+23 18 19 1 0.533203 0.636719
+23 18 20 1 0.543457 0.75
+23 18 21 1 0.570801 0.858398
+23 18 22 1 0.580078 0.938965
+23 18 23 1 0.571289 0.997559
+23 18 24 1 0.558594 1
+23 18 25 1 0.540527 1
+23 18 26 0.944824 0.518066 1
+23 18 27 0.860352 0.493408 1
+23 18 28 0.772461 0.468506 1
+23 18 29 0.682129 0.44458 1
+23 18 30 0.590332 0.422363 1
+23 18 31 0.493408 0.4021 1
+23 19 0 1 0.654785 0
+23 19 1 1 0.654785 0
+23 19 2 1 0.654785 0
+23 19 3 1 0.654785 0
+23 19 4 1 0.654785 0
+23 19 5 1 0.654785 0
+23 19 6 1 0.654785 0
+23 19 7 1 0.654785 0
+23 19 8 1 0.654785 0
+23 19 9 1 0.654785 0
+23 19 10 1 0.654785 0
+23 19 11 1 0.655273 0
+23 19 12 1 0.655762 0
+23 19 13 1 0.656738 0
+23 19 14 1 0.657715 0
+23 19 15 1 0.658203 0.111023
+23 19 16 1 0.657715 0.287109
+23 19 17 1 0.654297 0.41333
+23 19 18 1 0.647949 0.525391
+23 19 19 1 0.638184 0.630371
+23 19 20 1 0.63623 0.73584
+23 19 21 1 0.651367 0.843262
+23 19 22 1 0.661133 0.930176
+23 19 23 1 0.650391 0.990234
+23 19 24 1 0.634766 1
+23 19 25 0.996582 0.612305 1
+23 19 26 0.918945 0.584961 1
+23 19 27 0.835449 0.555664 1
+23 19 28 0.748535 0.525879 1
+23 19 29 0.65918 0.497559 1
+23 19 30 0.567383 0.471191 1
+23 19 31 0.469238 0.447021 1
+23 20 0 1 0.754883 0
+23 20 1 1 0.754883 0
+23 20 2 1 0.754883 0
+23 20 3 1 0.754883 0
+23 20 4 1 0.754883 0
+23 20 5 1 0.754883 0
+23 20 6 1 0.754883 0
+23 20 7 1 0.754883 0
+23 20 8 1 0.754883 0
+23 20 9 1 0.755371 0
+23 20 10 1 0.755371 0
+23 20 11 1 0.755371 0
+23 20 12 1 0.755859 0
+23 20 13 1 0.756836 0
+23 20 14 1 0.757812 0
+23 20 15 1 0.758789 0.12793
+23 20 16 1 0.759277 0.297363
+23 20 17 1 0.758301 0.423584
+23 20 18 1 0.753418 0.535156
+23 20 19 1 0.743652 0.634766
+23 20 20 1 0.730469 0.726562
+23 20 21 1 0.728027 0.82373
+23 20 22 1 0.738281 0.916992
+23 20 23 1 0.727051 0.980469
+23 20 24 1 0.708496 1
+23 20 25 0.962891 0.681641 1
+23 20 26 0.88623 0.650391 1
+23 20 27 0.804199 0.616699 1
+23 20 28 0.719238 0.583496 1
+23 20 29 0.631348 0.551758 1
+23 20 30 0.539062 0.521484 1
+23 20 31 0.438965 0.493896 1
+23 21 0 1 0.84668 0
+23 21 1 1 0.84668 0
+23 21 2 1 0.84668 0
+23 21 3 1 0.84668 0
+23 21 4 1 0.84668 0
+23 21 5 1 0.847168 0
+23 21 6 1 0.847168 0
+23 21 7 1 0.847168 0
+23 21 8 1 0.847168 0
+23 21 9 1 0.847168 0
+23 21 10 1 0.847168 0
+23 21 11 1 0.847168 0
+23 21 12 1 0.847656 0
+23 21 13 1 0.848145 0
+23 21 14 1 0.849121 0
+23 21 15 1 0.850586 0.100037
+23 21 16 1 0.852051 0.289795
+23 21 17 1 0.852051 0.421631
+23 21 18 1 0.849609 0.537109
+23 21 19 1 0.842285 0.640137
+23 21 20 1 0.829102 0.729004
+23 21 21 1 0.811035 0.80957
+23 21 22 1 0.809082 0.898438
+23 21 23 1 0.800781 0.966797
+23 21 24 0.987305 0.779297 1
+23 21 25 0.92041 0.748535 1
+23 21 26 0.846191 0.713379 1
+23 21 27 0.76709 0.677734 1
+23 21 28 0.68457 0.64209 1
+23 21 29 0.597656 0.606934 1
+23 21 30 0.504395 0.574219 1
+23 21 31 0.400146 0.542969 1
+23 22 0 1 0.927246 0
+23 22 1 1 0.927246 0
+23 22 2 1 0.927246 0
+23 22 3 1 0.927246 0
+23 22 4 1 0.927246 0
+23 22 5 1 0.927246 0
+23 22 6 1 0.927734 0
+23 22 7 1 0.927734 0
+23 22 8 1 0.927734 0
+23 22 9 1 0.927734 0
+23 22 10 1 0.927734 0
+23 22 11 1 0.927734 0
+23 22 12 1 0.928223 0
+23 22 13 1 0.928223 0
+23 22 14 1 0.929199 0
+23 22 15 1 0.930664 0
+23 22 16 1 0.932617 0.259033
+23 22 17 1 0.934082 0.402344
+23 22 18 1 0.932617 0.523926
+23 22 19 1 0.927734 0.632324
+23 22 20 1 0.91748 0.727051
+23 22 21 1 0.900391 0.809082
+23 22 22 1 0.87793 0.877441
+23 22 23 0.988281 0.869629 0.950195
+23 22 24 0.935059 0.84375 0.995605
+23 22 25 0.870117 0.810059 1
+23 22 26 0.800293 0.774902 1
+23 22 27 0.725098 0.738281 1
+23 22 28 0.644531 0.701172 1
+23 22 29 0.557617 0.664062 1
+23 22 30 0.462158 0.62793 1
+23 22 31 0.349854 0.59375 1
+23 23 0 1 0.992188 0
+23 23 1 1 0.992188 0
+23 23 2 1 0.992188 0
+23 23 3 1 0.992188 0
+23 23 4 1 0.992188 0
+23 23 5 1 0.992188 0
+23 23 6 1 0.992188 0
+23 23 7 1 0.992188 0
+23 23 8 1 0.992188 0
+23 23 9 1 0.992188 0
+23 23 10 1 0.992676 0
+23 23 11 1 0.992676 0
+23 23 12 1 0.992676 0
+23 23 13 1 0.993164 0
+23 23 14 1 0.993164 0
+23 23 15 1 0.995117 0
+23 23 16 1 0.997559 0.206909
+23 23 17 1 0.999023 0.369629
+23 23 18 1 0.999023 0.498047
+23 23 19 1 0.995117 0.61084
+23 23 20 1 0.986816 0.709473
+23 23 21 1 0.973145 0.796387
+23 23 22 0.977539 0.954102 0.871094
+23 23 23 0.930664 0.930664 0.930664
+23 23 24 0.87793 0.902344 0.976074
+23 23 25 0.818848 0.870605 1
+23 23 26 0.752441 0.835449 1
+23 23 27 0.679199 0.797852 1
+23 23 28 0.599121 0.758789 1
+23 23 29 0.510254 0.71875 1
+23 23 30 0.408691 0.679688 1
+23 23 31 0.28125 0.641113 1
+23 24 0 1 1 0
+23 24 1 1 1 0
+23 24 2 1 1 0
+23 24 3 1 1 0
+23 24 4 1 1 0
+23 24 5 1 1 0
+23 24 6 1 1 0
+23 24 7 1 1 0
+23 24 8 1 1 0
+23 24 9 1 1 0
+23 24 10 1 1 0
+23 24 11 1 1 0
+23 24 12 1 1 0
+23 24 13 1 1 0
+23 24 14 1 1 0
+23 24 15 1 1 0
+23 24 16 1 1 0.131104
+23 24 17 1 1 0.328857
+23 24 18 1 1 0.4646
+23 24 19 1 1 0.580078
+23 24 20 0.981445 1 0.680664
+23 24 21 0.94873 1 0.769043
+23 24 22 0.908203 1 0.844238
+23 24 23 0.866211 0.984863 0.908691
+23 24 24 0.825195 0.967285 0.967285
+23 24 25 0.769043 0.936523 1
+23 24 26 0.702148 0.898438 1
+23 24 27 0.62793 0.857422 1
+23 24 28 0.54541 0.81543 1
+23 24 29 0.45166 0.772461 1
+23 24 30 0.339355 0.72998 1
+23 24 31 0.172852 0.687988 1
+23 25 0 0.955566 1 0
+23 25 1 0.955566 1 0
+23 25 2 0.955566 1 0
+23 25 3 0.955566 1 0
+23 25 4 0.955566 1 0
+23 25 5 0.955566 1 0
+23 25 6 0.955566 1 0
+23 25 7 0.955566 1 0
+23 25 8 0.955566 1 0
+23 25 9 0.955566 1 0
+23 25 10 0.955566 1 0
+23 25 11 0.955078 1 0
+23 25 12 0.955078 1 0
+23 25 13 0.955078 1 0
+23 25 14 0.955078 1 0
+23 25 15 0.954102 1 0
+23 25 16 0.949707 1 0
+23 25 17 0.942871 1 0.2771
+23 25 18 0.931152 1 0.42334
+23 25 19 0.914062 1 0.541992
+23 25 20 0.890625 1 0.644043
+23 25 21 0.860352 1 0.734375
+23 25 22 0.824219 1 0.812988
+23 25 23 0.786621 1 0.882324
+23 25 24 0.74707 1 0.942871
+23 25 25 0.69873 0.999023 0.999023
+23 25 26 0.636719 0.966309 1
+23 25 27 0.561035 0.924805 1
+23 25 28 0.473145 0.879395 1
+23 25 29 0.368164 0.83252 1
+23 25 30 0.223877 0.786133 1
+23 25 31 0 0.740723 1
+23 26 0 0.845703 1 0
+23 26 1 0.845703 1 0
+23 26 2 0.845703 1 0
+23 26 3 0.845703 1 0
+23 26 4 0.845703 1 0
+23 26 5 0.845703 1 0
+23 26 6 0.845703 1 0
+23 26 7 0.845703 1 0
+23 26 8 0.845703 1 0
+23 26 9 0.845703 1 0
+23 26 10 0.845215 1 0
+23 26 11 0.845215 1 0
+23 26 12 0.845215 1 0
+23 26 13 0.845215 1 0
+23 26 14 0.845215 1 0
+23 26 15 0.844727 1 0
+23 26 16 0.840332 1 0
+23 26 17 0.833008 1 0.209595
+23 26 18 0.821289 1 0.375
+23 26 19 0.804688 1 0.498779
+23 26 20 0.782715 1 0.603027
+23 26 21 0.754883 1 0.695801
+23 26 22 0.72168 1 0.77832
+23 26 23 0.685547 1 0.850098
+23 26 24 0.645996 1 0.913086
+23 26 25 0.597168 1 0.97168
+23 26 26 0.536133 1 1
+23 26 27 0.45874 0.990234 1
+23 26 28 0.358887 0.946289 1
+23 26 29 0.214111 0.897949 1
+23 26 30 0 0.848145 1
+23 26 31 0 0.79834 1
+23 27 0 0.715332 1 0
+23 27 1 0.715332 1 0
+23 27 2 0.715332 1 0
+23 27 3 0.715332 1 0
+23 27 4 0.715332 1 0
+23 27 5 0.715332 1 0
+23 27 6 0.715332 1 0
+23 27 7 0.715332 1 0
+23 27 8 0.715332 1 0
+23 27 9 0.715332 1 0
+23 27 10 0.715332 1 0
+23 27 11 0.715332 1 0
+23 27 12 0.715332 1 0
+23 27 13 0.715332 1 0
+23 27 14 0.715332 1 0
+23 27 15 0.715332 1 0
+23 27 16 0.710938 1 0
+23 27 17 0.702637 1 0.104248
+23 27 18 0.69043 1 0.318115
+23 27 19 0.67334 1 0.449951
+23 27 20 0.651367 1 0.558105
+23 27 21 0.623535 1 0.65332
+23 27 22 0.589844 1 0.738281
+23 27 23 0.551758 1 0.8125
+23 27 24 0.508301 1 0.876953
+23 27 25 0.452881 1 0.938477
+23 27 26 0.380127 1 0.995605
+23 27 27 0.276611 1 1
+23 27 28 0.0534973 1 1
+23 27 29 0 0.961914 1
+23 27 30 0 0.911621 1
+23 27 31 0 0.859375 1
+23 28 0 0.554199 1 0
+23 28 1 0.554199 1 0
+23 28 2 0.554199 1 0
+23 28 3 0.554199 1 0
+23 28 4 0.554199 1 0
+23 28 5 0.554199 1 0
+23 28 6 0.554199 1 0
+23 28 7 0.554199 1 0
+23 28 8 0.554199 1 0
+23 28 9 0.554199 1 0
+23 28 10 0.554199 1 0
+23 28 11 0.554199 1 0
+23 28 12 0.554199 1 0
+23 28 13 0.554199 1 0
+23 28 14 0.554199 1 0
+23 28 15 0.554199 1 0
+23 28 16 0.550293 1 0
+23 28 17 0.539551 1 0
+23 28 18 0.524414 1 0.24939
+23 28 19 0.503906 1 0.395508
+23 28 20 0.477295 1 0.508301
+23 28 21 0.442871 1 0.605957
+23 28 22 0.399658 1 0.692871
+23 28 23 0.346924 1 0.768555
+23 28 24 0.279785 1 0.834961
+23 28 25 0.1698 1 0.898926
+23 28 26 0 1 0.959473
+23 28 27 0 1 1
+23 28 28 0 1 1
+23 28 29 0 1 1
+23 28 30 0 0.972168 1
+23 28 31 0 0.919922 1
+23 29 0 0.311035 1 0
+23 29 1 0.311035 1 0
+23 29 2 0.311035 1 0
+23 29 3 0.311035 1 0
+23 29 4 0.311035 1 0
+23 29 5 0.311035 1 0
+23 29 6 0.311035 1 0
+23 29 7 0.311035 1 0
+23 29 8 0.311035 1 0
+23 29 9 0.311035 1 0
+23 29 10 0.311035 1 0
+23 29 11 0.311035 1 0
+23 29 12 0.311279 1 0
+23 29 13 0.311279 1 0
+23 29 14 0.311768 1 0
+23 29 15 0.312012 1 0
+23 29 16 0.30835 1 0
+23 29 17 0.287109 1 0
+23 29 18 0.254883 1 0.154541
+23 29 19 0.206177 1 0.333008
+23 29 20 0.123047 1 0.452637
+23 29 21 0 1 0.553223
+23 29 22 0 1 0.64209
+23 29 23 0 1 0.719238
+23 29 24 0 1 0.787109
+23 29 25 0 1 0.852539
+23 29 26 0 1 0.916016
+23 29 27 0 1 0.974609
+23 29 28 0 1 1
+23 29 29 0 1 1
+23 29 30 0 1 1
+23 29 31 0 0.979492 1
+23 30 0 0 1 0
+23 30 1 0 1 0
+23 30 2 0 1 0
+23 30 3 0 1 0
+23 30 4 0 1 0
+23 30 5 0 1 0
+23 30 6 0 1 0
+23 30 7 0 1 0
+23 30 8 0 1 0
+23 30 9 0 1 0
+23 30 10 0 1 0
+23 30 11 0 1 0
+23 30 12 0 1 0
+23 30 13 0 1 0
+23 30 14 0 1 0
+23 30 15 0 1 0
+23 30 16 0 1 0
+23 30 17 0 1 0
+23 30 18 0 1 0
+23 30 19 0 1 0.258545
+23 30 20 0 1 0.390625
+23 30 21 0 1 0.495361
+23 30 22 0 1 0.585449
+23 30 23 0 1 0.663574
+23 30 24 0 1 0.73291
+23 30 25 0 1 0.800293
+23 30 26 0 1 0.865723
+23 30 27 0 1 0.927734
+23 30 28 0 1 0.98584
+23 30 29 0 1 1
+23 30 30 0 1 1
+23 30 31 0 1 1
+23 31 0 0 1 0
+23 31 1 0 1 0
+23 31 2 0 1 0
+23 31 3 0 1 0
+23 31 4 0 1 0
+23 31 5 0 1 0
+23 31 6 0 1 0
+23 31 7 0 1 0
+23 31 8 0 1 0
+23 31 9 0 1 0
+23 31 10 0 1 0
+23 31 11 0 1 0
+23 31 12 0 1 0
+23 31 13 0 1 0
+23 31 14 0 1 0
+23 31 15 0 1 0
+23 31 16 0 1 0
+23 31 17 0 1 0
+23 31 18 0 1 0
+23 31 19 0 1 0.158325
+23 31 20 0 1 0.320312
+23 31 21 0 1 0.431885
+23 31 22 0 1 0.524414
+23 31 23 0 1 0.603516
+23 31 24 0 1 0.67334
+23 31 25 0 1 0.742188
+23 31 26 0 1 0.80957
+23 31 27 0 1 0.875
+23 31 28 0 1 0.937012
+23 31 29 0 1 0.994141
+23 31 30 0 1 1
+23 31 31 0 1 1
+24 0 0 1 0 0
+24 0 1 1 0 0
+24 0 2 1 0 0
+24 0 3 1 0 0
+24 0 4 1 0 0
+24 0 5 1 0 0
+24 0 6 1 0 0
+24 0 7 1 0 0
+24 0 8 1 0 0
+24 0 9 1 0 0
+24 0 10 1 0 0
+24 0 11 1 0 0
+24 0 12 1 0 0
+24 0 13 1 0 0
+24 0 14 1 0 0
+24 0 15 1 0 0
+24 0 16 1 0 0.207886
+24 0 17 1 0 0.373291
+24 0 18 1 0 0.505859
+24 0 19 1 0 0.632324
+24 0 20 1 0 0.747559
+24 0 21 1 0 0.84668
+24 0 22 1 0.102905 0.924805
+24 0 23 1 0.153931 0.984863
+24 0 24 1 0.174561 1
+24 0 25 1 0.192017 1
+24 0 26 1 0.206055 1
+24 0 27 1 0.216675 1
+24 0 28 0.936523 0.224365 1
+24 0 29 0.845215 0.229736 1
+24 0 30 0.751953 0.233521 1
+24 0 31 0.657715 0.236206 1
+24 1 0 1 0 0
+24 1 1 1 0 0
+24 1 2 1 0 0
+24 1 3 1 0 0
+24 1 4 1 0 0
+24 1 5 1 0 0
+24 1 6 1 0 0
+24 1 7 1 0 0
+24 1 8 1 0 0
+24 1 9 1 0 0
+24 1 10 1 0 0
+24 1 11 1 0 0
+24 1 12 1 0 0
+24 1 13 1 0 0
+24 1 14 1 0 0
+24 1 15 1 0 0
+24 1 16 1 0 0.207886
+24 1 17 1 0 0.373291
+24 1 18 1 0 0.505859
+24 1 19 1 0 0.632324
+24 1 20 1 0 0.747559
+24 1 21 1 0 0.84668
+24 1 22 1 0.102966 0.924805
+24 1 23 1 0.153931 0.984863
+24 1 24 1 0.174561 1
+24 1 25 1 0.192017 1
+24 1 26 1 0.206055 1
+24 1 27 1 0.216675 1
+24 1 28 0.936523 0.224365 1
+24 1 29 0.845215 0.229736 1
+24 1 30 0.751953 0.233521 1
+24 1 31 0.657715 0.236328 1
+24 2 0 1 0 0
+24 2 1 1 0 0
+24 2 2 1 0 0
+24 2 3 1 0 0
+24 2 4 1 0 0
+24 2 5 1 0 0
+24 2 6 1 0 0
+24 2 7 1 0 0
+24 2 8 1 0 0
+24 2 9 1 0 0
+24 2 10 1 0 0
+24 2 11 1 0 0
+24 2 12 1 0 0
+24 2 13 1 0 0
+24 2 14 1 0 0
+24 2 15 1 0 0
+24 2 16 1 0 0.207886
+24 2 17 1 0 0.373291
+24 2 18 1 0 0.505859
+24 2 19 1 0 0.632324
+24 2 20 1 0 0.747559
+24 2 21 1 0 0.84668
+24 2 22 1 0.103088 0.924805
+24 2 23 1 0.153931 0.984863
+24 2 24 1 0.174683 1
+24 2 25 1 0.192017 1
+24 2 26 1 0.206055 1
+24 2 27 1 0.216675 1
+24 2 28 0.936523 0.224365 1
+24 2 29 0.845215 0.229858 1
+24 2 30 0.751953 0.233643 1
+24 2 31 0.657715 0.236328 1
+24 3 0 1 0 0
+24 3 1 1 0 0
+24 3 2 1 0 0
+24 3 3 1 0 0
+24 3 4 1 0 0
+24 3 5 1 0 0
+24 3 6 1 0 0
+24 3 7 1 0 0
+24 3 8 1 0 0
+24 3 9 1 0 0
+24 3 10 1 0 0
+24 3 11 1 0 0
+24 3 12 1 0 0
+24 3 13 1 0 0
+24 3 14 1 0 0
+24 3 15 1 0 0
+24 3 16 1 0 0.207886
+24 3 17 1 0 0.373291
+24 3 18 1 0 0.505859
+24 3 19 1 0 0.632324
+24 3 20 1 0 0.747559
+24 3 21 1 0 0.84668
+24 3 22 1 0.10321 0.924805
+24 3 23 1 0.154053 0.984863
+24 3 24 1 0.174683 1
+24 3 25 1 0.192139 1
+24 3 26 1 0.206177 1
+24 3 27 1 0.216797 1
+24 3 28 0.936523 0.224365 1
+24 3 29 0.845215 0.229858 1
+24 3 30 0.751953 0.233643 1
+24 3 31 0.657715 0.236328 1
+24 4 0 1 0 0
+24 4 1 1 0 0
+24 4 2 1 0 0
+24 4 3 1 0 0
+24 4 4 1 0 0
+24 4 5 1 0 0
+24 4 6 1 0 0
+24 4 7 1 0 0
+24 4 8 1 0 0
+24 4 9 1 0 0
+24 4 10 1 0 0
+24 4 11 1 0 0
+24 4 12 1 0 0
+24 4 13 1 0 0
+24 4 14 1 0 0
+24 4 15 1 0 0
+24 4 16 1 0 0.207886
+24 4 17 1 0 0.373291
+24 4 18 1 0 0.505859
+24 4 19 1 0 0.632324
+24 4 20 1 0 0.747559
+24 4 21 1 0 0.84668
+24 4 22 1 0.103577 0.924805
+24 4 23 1 0.154297 0.984863
+24 4 24 1 0.174927 1
+24 4 25 1 0.192261 1
+24 4 26 1 0.206177 1
+24 4 27 1 0.216797 1
+24 4 28 0.936523 0.224487 1
+24 4 29 0.845215 0.229858 1
+24 4 30 0.751953 0.233643 1
+24 4 31 0.657715 0.236328 1
+24 5 0 1 0 0
+24 5 1 1 0 0
+24 5 2 1 0 0
+24 5 3 1 0 0
+24 5 4 1 0 0
+24 5 5 1 0 0
+24 5 6 1 0 0
+24 5 7 1 0 0
+24 5 8 1 0 0
+24 5 9 1 0 0
+24 5 10 1 0 0
+24 5 11 1 0 0
+24 5 12 1 0 0
+24 5 13 1 0 0
+24 5 14 1 0 0
+24 5 15 1 0 0
+24 5 16 1 0 0.207886
+24 5 17 1 0 0.373291
+24 5 18 1 0 0.505859
+24 5 19 1 0 0.632324
+24 5 20 1 0 0.747559
+24 5 21 1 0 0.84668
+24 5 22 1 0.104126 0.924805
+24 5 23 1 0.154663 0.984863
+24 5 24 1 0.175293 1
+24 5 25 1 0.192505 1
+24 5 26 1 0.206421 1
+24 5 27 1 0.217041 1
+24 5 28 0.936523 0.224609 1
+24 5 29 0.845215 0.230103 1
+24 5 30 0.751953 0.233765 1
+24 5 31 0.657715 0.23645 1
+24 6 0 1 0 0
+24 6 1 1 0 0
+24 6 2 1 0 0
+24 6 3 1 0 0
+24 6 4 1 0 0
+24 6 5 1 0 0
+24 6 6 1 0 0
+24 6 7 1 0 0
+24 6 8 1 0 0
+24 6 9 1 0 0
+24 6 10 1 0 0
+24 6 11 1 0 0
+24 6 12 1 0 0
+24 6 13 1 0 0
+24 6 14 1 0 0
+24 6 15 1 0 0
+24 6 16 1 0 0.207764
+24 6 17 1 0 0.373291
+24 6 18 1 0 0.505859
+24 6 19 1 0 0.632324
+24 6 20 1 0 0.747559
+24 6 21 1 0 0.84668
+24 6 22 1 0.105286 0.924805
+24 6 23 1 0.155396 0.984863
+24 6 24 1 0.175903 1
+24 6 25 1 0.192993 1
+24 6 26 1 0.206909 1
+24 6 27 1 0.217407 1
+24 6 28 0.936523 0.224976 1
+24 6 29 0.845215 0.230347 1
+24 6 30 0.751953 0.234009 1
+24 6 31 0.657227 0.236572 1
+24 7 0 1 0 0
+24 7 1 1 0 0
+24 7 2 1 0 0
+24 7 3 1 0 0
+24 7 4 1 0 0
+24 7 5 1 0 0
+24 7 6 1 0 0
+24 7 7 1 0 0
+24 7 8 1 0 0
+24 7 9 1 0 0
+24 7 10 1 0 0
+24 7 11 1 0 0
+24 7 12 1 0 0
+24 7 13 1 0 0
+24 7 14 1 0 0
+24 7 15 1 0 0
+24 7 16 1 0 0.207642
+24 7 17 1 0 0.373291
+24 7 18 1 0 0.505859
+24 7 19 1 0 0.632324
+24 7 20 1 0 0.747559
+24 7 21 1 0 0.846191
+24 7 22 1 0.107483 0.924805
+24 7 23 1 0.15686 0.984863
+24 7 24 1 0.177002 1
+24 7 25 1 0.194092 1
+24 7 26 1 0.207764 1
+24 7 27 1 0.21814 1
+24 7 28 0.936523 0.225586 1
+24 7 29 0.845215 0.230835 1
+24 7 30 0.751953 0.234375 1
+24 7 31 0.657227 0.236938 1
+24 8 0 1 0 0
+24 8 1 1 0 0
+24 8 2 1 0 0
+24 8 3 1 0 0
+24 8 4 1 0 0
+24 8 5 1 0 0
+24 8 6 1 0 0
+24 8 7 1 0 0
+24 8 8 1 0 0
+24 8 9 1 0 0
+24 8 10 1 0 0
+24 8 11 1 0 0
+24 8 12 1 0 0
+24 8 13 1 0 0
+24 8 14 1 0 0
+24 8 15 1 0 0
+24 8 16 1 0 0.207397
+24 8 17 1 0 0.373291
+24 8 18 1 0 0.505371
+24 8 19 1 0 0.632324
+24 8 20 1 0 0.747559
+24 8 21 1 0 0.846191
+24 8 22 1 0.111633 0.924805
+24 8 23 1 0.159668 0.984863
+24 8 24 1 0.179321 1
+24 8 25 1 0.195923 1
+24 8 26 1 0.209351 1
+24 8 27 1 0.219482 1
+24 8 28 0.936523 0.226685 1
+24 8 29 0.844727 0.231689 1
+24 8 30 0.751953 0.235229 1
+24 8 31 0.657227 0.237671 1
+24 9 0 1 0 0
+24 9 1 1 0 0
+24 9 2 1 0 0
+24 9 3 1 0 0
+24 9 4 1 0 0
+24 9 5 1 0 0
+24 9 6 1 0 0
+24 9 7 1 0 0
+24 9 8 1 0 0
+24 9 9 1 0 0
+24 9 10 1 0 0
+24 9 11 1 0 0
+24 9 12 1 0 0
+24 9 13 1 0 0
+24 9 14 1 0 0
+24 9 15 1 0 0
+24 9 16 1 0 0.206909
+24 9 17 1 0 0.373047
+24 9 18 1 0 0.505371
+24 9 19 1 0 0.632324
+24 9 20 1 0 0.747559
+24 9 21 1 0 0.846191
+24 9 22 1 0.119263 0.924805
+24 9 23 1 0.164917 0.984863
+24 9 24 1 0.183716 1
+24 9 25 1 0.199707 1
+24 9 26 1 0.212402 1
+24 9 27 1 0.222046 1
+24 9 28 0.936035 0.228882 1
+24 9 29 0.844727 0.233521 1
+24 9 30 0.751465 0.236694 1
+24 9 31 0.657227 0.238892 1
+24 10 0 1 0 0
+24 10 1 1 0 0
+24 10 2 1 0 0
+24 10 3 1 0 0
+24 10 4 1 0 0
+24 10 5 1 0 0
+24 10 6 1 0 0
+24 10 7 1 0 0
+24 10 8 1 0 0
+24 10 9 1 0 0
+24 10 10 1 0 0
+24 10 11 1 0 0
+24 10 12 1 0 0
+24 10 13 1 0 0
+24 10 14 1 0 0
+24 10 15 1 0 0
+24 10 16 1 0 0.206177
+24 10 17 1 0 0.372803
+24 10 18 1 0 0.504883
+24 10 19 1 0 0.631836
+24 10 20 1 0 0.74707
+24 10 21 1 0 0.846191
+24 10 22 1 0.131958 0.924805
+24 10 23 1 0.17395 0.984863
+24 10 24 1 0.191406 1
+24 10 25 1 0.206177 1
+24 10 26 1 0.217896 1
+24 10 27 1 0.226685 1
+24 10 28 0.935547 0.232788 1
+24 10 29 0.844238 0.236816 1
+24 10 30 0.750977 0.23938 1
+24 10 31 0.656738 0.241211 1
+24 11 0 1 0 0
+24 11 1 1 0 0
+24 11 2 1 0 0
+24 11 3 1 0 0
+24 11 4 1 0 0
+24 11 5 1 0 0
+24 11 6 1 0 0
+24 11 7 1 0 0
+24 11 8 1 0 0
+24 11 9 1 0 0
+24 11 10 1 0 0
+24 11 11 1 0 0
+24 11 12 1 0 0
+24 11 13 1 0 0
+24 11 14 1 0 0
+24 11 15 1 0 0
+24 11 16 1 0 0.204712
+24 11 17 1 0 0.37207
+24 11 18 1 0 0.504395
+24 11 19 1 0 0.630859
+24 11 20 1 0 0.746582
+24 11 21 1 0 0.845703
+24 11 22 1 0.151733 0.924316
+24 11 23 1 0.188721 0.984863
+24 11 24 1 0.203979 1
+24 11 25 1 0.217041 1
+24 11 26 1 0.227173 1
+24 11 27 1 0.234497 1
+24 11 28 0.935059 0.23938 1
+24 11 29 0.843262 0.24231 1
+24 11 30 0.750488 0.244141 1
+24 11 31 0.655762 0.245117 1
+24 12 0 1 0 0
+24 12 1 1 0 0
+24 12 2 1 0 0
+24 12 3 1 0 0
+24 12 4 1 0 0
+24 12 5 1 0 0
+24 12 6 1 0 0
+24 12 7 1 0 0
+24 12 8 1 0 0
+24 12 9 1 0 0
+24 12 10 1 0 0
+24 12 11 1 0 0
+24 12 12 1 0 0
+24 12 13 1 0 0
+24 12 14 1 0 0
+24 12 15 1 0 0
+24 12 16 1 0 0.202515
+24 12 17 1 0 0.370361
+24 12 18 1 0 0.503418
+24 12 19 1 0 0.629883
+24 12 20 1 0 0.745605
+24 12 21 1 0.0542908 0.845215
+24 12 22 1 0.18042 0.924316
+24 12 23 1 0.211304 0.984863
+24 12 24 1 0.223877 1
+24 12 25 1 0.234253 1
+24 12 26 1 0.242065 1
+24 12 27 1 0.247314 1
+24 12 28 0.933594 0.250244 1
+24 12 29 0.842285 0.251465 1
+24 12 30 0.749023 0.251953 1
+24 12 31 0.654785 0.251709 1
+24 13 0 1 0 0
+24 13 1 1 0 0
+24 13 2 1 0 0
+24 13 3 1 0 0
+24 13 4 1 0 0
+24 13 5 1 0 0
+24 13 6 1 0 0
+24 13 7 1 0 0
+24 13 8 1 0 0
+24 13 9 1 0 0
+24 13 10 1 0 0
+24 13 11 1 0 0
+24 13 12 1 0 0
+24 13 13 1 0 0
+24 13 14 1 0 0
+24 13 15 1 0 0
+24 13 16 1 0 0.199097
+24 13 17 1 0 0.367432
+24 13 18 1 0 0.501465
+24 13 19 1 0 0.62793
+24 13 20 1 0 0.744141
+24 13 21 1 0.135132 0.844238
+24 13 22 1 0.219116 0.923828
+24 13 23 1 0.24353 0.984375
+24 13 24 1 0.252686 1
+24 13 25 1 0.259766 1
+24 13 26 1 0.264648 1
+24 13 27 1 0.266602 1
+24 13 28 0.931641 0.266846 1
+24 13 29 0.839844 0.265869 1
+24 13 30 0.74707 0.26416 1
+24 13 31 0.652344 0.261963 1
+24 14 0 1 0 0
+24 14 1 1 0 0
+24 14 2 1 0 0
+24 14 3 1 0 0
+24 14 4 1 0 0
+24 14 5 1 0 0
+24 14 6 1 0 0
+24 14 7 1 0 0
+24 14 8 1 0 0
+24 14 9 1 0 0
+24 14 10 1 0 0
+24 14 11 1 0 0
+24 14 12 1 0 0
+24 14 13 1 0 0
+24 14 14 1 0 0
+24 14 15 1 0 0
+24 14 16 1 0 0.194336
+24 14 17 1 0 0.363525
+24 14 18 1 0 0.499268
+24 14 19 1 0 0.625
+24 14 20 1 0.0487671 0.741699
+24 14 21 1 0.207397 0.842773
+24 14 22 1 0.268066 0.922852
+24 14 23 1 0.286621 0.983887
+24 14 24 1 0.291992 1
+24 14 25 1 0.29541 1
+24 14 26 1 0.296143 1
+24 14 27 1 0.294678 1
+24 14 28 0.928223 0.29126 1
+24 14 29 0.836426 0.286865 1
+24 14 30 0.743652 0.282227 1
+24 14 31 0.648926 0.277588 1
+24 15 0 1 0.0559998 0
+24 15 1 1 0.0559998 0
+24 15 2 1 0.0559998 0
+24 15 3 1 0.0560303 0
+24 15 4 1 0.0560913 0
+24 15 5 1 0.0561829 0
+24 15 6 1 0.0563354 0
+24 15 7 1 0.0567017 0
+24 15 8 1 0.0573425 0
+24 15 9 1 0.0585938 0
+24 15 10 1 0.0608215 0
+24 15 11 1 0.0645752 0
+24 15 12 1 0.0706787 0
+24 15 13 1 0.079834 0
+24 15 14 1 0.0859985 0
+24 15 15 1 0.0777588 0
+24 15 16 1 0.051178 0.189209
+24 15 17 1 0.0263214 0.358398
+24 15 18 1 0.0455322 0.496338
+24 15 19 1 0.101013 0.620605
+24 15 20 1 0.199951 0.737793
+24 15 21 1 0.281738 0.840332
+24 15 22 1 0.327393 0.921387
+24 15 23 1 0.340576 0.98291
+24 15 24 1 0.342041 1
+24 15 25 1 0.341553 1
+24 15 26 1 0.338135 1
+24 15 27 1 0.332031 1
+24 15 28 0.922852 0.324463 1
+24 15 29 0.831055 0.315918 1
+24 15 30 0.738281 0.307617 1
+24 15 31 0.643555 0.299561 1
+24 16 0 1 0.26123 0
+24 16 1 1 0.26123 0
+24 16 2 1 0.26123 0
+24 16 3 1 0.26123 0
+24 16 4 1 0.26123 0
+24 16 5 1 0.261475 0
+24 16 6 1 0.261475 0
+24 16 7 1 0.261475 0
+24 16 8 1 0.261719 0
+24 16 9 1 0.261963 0
+24 16 10 1 0.262451 0
+24 16 11 1 0.263428 0
+24 16 12 1 0.265137 0
+24 16 13 1 0.267578 0
+24 16 14 1 0.269531 0
+24 16 15 1 0.266357 0
+24 16 16 1 0.259766 0.186035
+24 16 17 1 0.25293 0.353271
+24 16 18 1 0.255127 0.491455
+24 16 19 1 0.264648 0.614258
+24 16 20 1 0.306396 0.731445
+24 16 21 1 0.361084 0.835938
+24 16 22 1 0.396484 0.918945
+24 16 23 1 0.405273 0.980957
+24 16 24 1 0.403076 1
+24 16 25 1 0.398438 1
+24 16 26 1 0.390381 1
+24 16 27 1 0.379395 1
+24 16 28 0.914551 0.366943 1
+24 16 29 0.823242 0.35376 1
+24 16 30 0.730469 0.34082 1
+24 16 31 0.635742 0.329102 1
+24 17 0 1 0.39209 0
+24 17 1 1 0.39209 0
+24 17 2 1 0.39209 0
+24 17 3 1 0.39209 0
+24 17 4 1 0.39209 0
+24 17 5 1 0.39209 0
+24 17 6 1 0.39209 0
+24 17 7 1 0.39209 0
+24 17 8 1 0.392334 0
+24 17 9 1 0.392578 0
+24 17 10 1 0.392822 0
+24 17 11 1 0.393311 0
+24 17 12 1 0.394287 0
+24 17 13 1 0.395996 0
+24 17 14 1 0.397217 0
+24 17 15 1 0.395508 0
+24 17 16 1 0.39209 0.189941
+24 17 17 1 0.386963 0.351074
+24 17 18 1 0.383301 0.483887
+24 17 19 1 0.387695 0.607422
+24 17 20 1 0.406006 0.722168
+24 17 21 1 0.443848 0.829102
+24 17 22 1 0.472412 0.915039
+24 17 23 1 0.477783 0.978027
+24 17 24 1 0.472412 1
+24 17 25 1 0.463867 1
+24 17 26 1 0.451172 1
+24 17 27 0.990234 0.435059 1
+24 17 28 0.902832 0.417236 1
+24 17 29 0.811523 0.398926 1
+24 17 30 0.719238 0.381592 1
+24 17 31 0.624512 0.365234 1
+24 18 0 1 0.508301 0
+24 18 1 1 0.508301 0
+24 18 2 1 0.508301 0
+24 18 3 1 0.508301 0
+24 18 4 1 0.508301 0
+24 18 5 1 0.508301 0
+24 18 6 1 0.508301 0
+24 18 7 1 0.508301 0
+24 18 8 1 0.508301 0
+24 18 9 1 0.508301 0
+24 18 10 1 0.508789 0
+24 18 11 1 0.509277 0
+24 18 12 1 0.509766 0
+24 18 13 1 0.510742 0
+24 18 14 1 0.512207 0
+24 18 15 1 0.511719 0
+24 18 16 1 0.510254 0.204224
+24 18 17 1 0.506836 0.355469
+24 18 18 1 0.501465 0.480713
+24 18 19 1 0.499023 0.599609
+24 18 20 1 0.504395 0.710938
+24 18 21 1 0.527832 0.818848
+24 18 22 1 0.551758 0.908203
+24 18 23 1 0.554688 0.973633
+24 18 24 1 0.546387 1
+24 18 25 1 0.534668 1
+24 18 26 1 0.51709 1
+24 18 27 0.973633 0.496094 1
+24 18 28 0.886719 0.473145 1
+24 18 29 0.795898 0.449707 1
+24 18 30 0.704102 0.42749 1
+24 18 31 0.609863 0.406738 1
+24 19 0 1 0.615723 0
+24 19 1 1 0.615723 0
+24 19 2 1 0.615723 0
+24 19 3 1 0.615723 0
+24 19 4 1 0.615723 0
+24 19 5 1 0.615723 0
+24 19 6 1 0.615723 0
+24 19 7 1 0.615723 0
+24 19 8 1 0.615723 0
+24 19 9 1 0.615723 0
+24 19 10 1 0.616211 0
+24 19 11 1 0.616211 0
+24 19 12 1 0.617188 0
+24 19 13 1 0.617676 0
+24 19 14 1 0.619141 0
+24 19 15 1 0.619629 0
+24 19 16 1 0.619629 0.225708
+24 19 17 1 0.617676 0.366455
+24 19 18 1 0.612793 0.484863
+24 19 19 1 0.605957 0.59375
+24 19 20 1 0.604004 0.701172
+24 19 21 1 0.611328 0.804688
+24 19 22 1 0.629883 0.898438
+24 19 23 1 0.632812 0.966309
+24 19 24 1 0.62207 1
+24 19 25 1 0.606934 1
+24 19 26 1 0.585449 1
+24 19 27 0.952148 0.559082 1
+24 19 28 0.865723 0.53125 1
+24 19 29 0.776367 0.503418 1
+24 19 30 0.68457 0.476562 1
+24 19 31 0.590332 0.45166 1
+24 20 0 1 0.714355 0
+24 20 1 1 0.714355 0
+24 20 2 1 0.714355 0
+24 20 3 1 0.714355 0
+24 20 4 1 0.714355 0
+24 20 5 1 0.714355 0
+24 20 6 1 0.714355 0
+24 20 7 1 0.714355 0
+24 20 8 1 0.714355 0
+24 20 9 1 0.714355 0
+24 20 10 1 0.714844 0
+24 20 11 1 0.714844 0
+24 20 12 1 0.715332 0
+24 20 13 1 0.71582 0
+24 20 14 1 0.716797 0
+24 20 15 1 0.718262 0
+24 20 16 1 0.719238 0.243896
+24 20 17 1 0.71875 0.378662
+24 20 18 1 0.71582 0.493408
+24 20 19 1 0.708496 0.59668
+24 20 20 1 0.69873 0.692383
+24 20 21 1 0.694336 0.789062
+24 20 22 1 0.704102 0.883789
+24 20 23 1 0.708008 0.957031
+24 20 24 1 0.695801 1
+24 20 25 1 0.677734 1
+24 20 26 1 0.651855 1
+24 20 27 0.925293 0.621582 1
+24 20 28 0.840332 0.589355 1
+24 20 29 0.751953 0.557617 1
+24 20 30 0.661133 0.526855 1
+24 20 31 0.567383 0.498291 1
+24 21 0 1 0.805664 0
+24 21 1 1 0.805664 0
+24 21 2 1 0.805664 0
+24 21 3 1 0.805664 0
+24 21 4 1 0.805664 0
+24 21 5 1 0.805664 0
+24 21 6 1 0.805664 0
+24 21 7 1 0.805664 0
+24 21 8 1 0.805664 0
+24 21 9 1 0.805664 0
+24 21 10 1 0.805664 0
+24 21 11 1 0.806152 0
+24 21 12 1 0.806152 0
+24 21 13 1 0.806641 0
+24 21 14 1 0.807617 0
+24 21 15 1 0.809082 0
+24 21 16 1 0.811035 0.248291
+24 21 17 1 0.811523 0.383789
+24 21 18 1 0.810059 0.499268
+24 21 19 1 0.804688 0.602051
+24 21 20 1 0.794434 0.692871
+24 21 21 1 0.780762 0.777344
+24 21 22 1 0.775391 0.864746
+24 21 23 1 0.779785 0.943359
+24 21 24 1 0.767578 0.999512
+24 21 25 1 0.746582 1
+24 21 26 0.970703 0.716797 1
+24 21 27 0.89209 0.682617 1
+24 21 28 0.809082 0.647461 1
+24 21 29 0.722656 0.611816 1
+24 21 30 0.633301 0.578125 1
+24 21 31 0.539062 0.546387 1
+24 22 0 1 0.887207 0
+24 22 1 1 0.887207 0
+24 22 2 1 0.887207 0
+24 22 3 1 0.887207 0
+24 22 4 1 0.887207 0
+24 22 5 1 0.887207 0
+24 22 6 1 0.887207 0
+24 22 7 1 0.887207 0
+24 22 8 1 0.887207 0
+24 22 9 1 0.887207 0
+24 22 10 1 0.887695 0
+24 22 11 1 0.887695 0
+24 22 12 1 0.887695 0
+24 22 13 1 0.888184 0
+24 22 14 1 0.888672 0
+24 22 15 1 0.890625 0
+24 22 16 1 0.892578 0.230469
+24 22 17 1 0.894043 0.374756
+24 22 18 1 0.894043 0.494629
+24 22 19 1 0.890137 0.601074
+24 22 20 1 0.881836 0.693848
+24 22 21 1 0.867676 0.775879
+24 22 22 1 0.850098 0.848633
+24 22 23 1 0.845215 0.925293
+24 22 24 1 0.834961 0.985352
+24 22 25 0.998047 0.811523 1
+24 22 26 0.929199 0.777832 1
+24 22 27 0.853027 0.741211 1
+24 22 28 0.772949 0.703613 1
+24 22 29 0.688965 0.666504 1
+24 22 30 0.600098 0.630371 1
+24 22 31 0.504883 0.595215 1
+24 23 0 1 0.956055 0
+24 23 1 1 0.956055 0
+24 23 2 1 0.956055 0
+24 23 3 1 0.956055 0
+24 23 4 1 0.956055 0
+24 23 5 1 0.956055 0
+24 23 6 1 0.956055 0
+24 23 7 1 0.956055 0
+24 23 8 1 0.956055 0
+24 23 9 1 0.956055 0
+24 23 10 1 0.956055 0
+24 23 11 1 0.956055 0
+24 23 12 1 0.956543 0
+24 23 13 1 0.956543 0
+24 23 14 1 0.957031 0
+24 23 15 1 0.958496 0
+24 23 16 1 0.961426 0.187134
+24 23 17 1 0.963867 0.350098
+24 23 18 1 0.964355 0.476807
+24 23 19 1 0.961914 0.587402
+24 23 20 1 0.955566 0.685059
+24 23 21 1 0.944336 0.771484
+24 23 22 1 0.927246 0.845215
+24 23 23 1 0.905762 0.905273
+24 23 24 1 0.895996 0.969238
+24 23 25 0.949219 0.868164 1
+24 23 26 0.882324 0.833008 1
+24 23 27 0.810547 0.796387 1
+24 23 28 0.733887 0.758301 1
+24 23 29 0.651855 0.719727 1
+24 23 30 0.563477 0.681641 1
+24 23 31 0.465332 0.644043 1
+24 24 0 1 1 0
+24 24 1 1 1 0
+24 24 2 1 1 0
+24 24 3 1 1 0
+24 24 4 1 1 0
+24 24 5 1 1 0
+24 24 6 1 1 0
+24 24 7 1 1 0
+24 24 8 1 1 0
+24 24 9 1 1 0
+24 24 10 1 1 0
+24 24 11 1 1 0
+24 24 12 1 1 0
+24 24 13 1 1 0
+24 24 14 1 1 0
+24 24 15 1 1 0
+24 24 16 1 1 0.111084
+24 24 17 1 1 0.313965
+24 24 18 1 1 0.44873
+24 24 19 1 1 0.563477
+24 24 20 1 1 0.664062
+24 24 21 1 1 0.753906
+24 24 22 1 0.991211 0.83252
+24 24 23 0.994141 0.972656 0.897461
+24 24 24 0.950684 0.950684 0.950684
+24 24 25 0.896484 0.920898 0.995117
+24 24 26 0.835449 0.887695 1
+24 24 27 0.76709 0.851562 1
+24 24 28 0.692383 0.8125 1
+24 24 29 0.609863 0.771973 1
+24 24 30 0.519531 0.730957 1
+24 24 31 0.41626 0.69043 1
+24 25 0 1 1 0
+24 25 1 1 1 0
+24 25 2 1 1 0
+24 25 3 1 1 0
+24 25 4 1 1 0
+24 25 5 1 1 0
+24 25 6 1 1 0
+24 25 7 1 1 0
+24 25 8 1 1 0
+24 25 9 1 1 0
+24 25 10 1 1 0
+24 25 11 1 1 0
+24 25 12 1 1 0
+24 25 13 1 1 0
+24 25 14 1 1 0
+24 25 15 1 1 0
+24 25 16 1 1 0
+24 25 17 1 1 0.264893
+24 25 18 1 1 0.411621
+24 25 19 1 1 0.530273
+24 25 20 1 1 0.632812
+24 25 21 0.993652 1 0.724121
+24 25 22 0.960938 1 0.803711
+24 25 23 0.92334 1 0.869629
+24 25 24 0.884766 1 0.927246
+24 25 25 0.842285 0.984863 0.984863
+24 25 26 0.78418 0.953125 1
+24 25 27 0.71582 0.913574 1
+24 25 28 0.640137 0.871582 1
+24 25 29 0.555664 0.828125 1
+24 25 30 0.460693 0.78418 1
+24 25 31 0.346436 0.740234 1
+24 26 0 0.97168 1 0
+24 26 1 0.97168 1 0
+24 26 2 0.97168 1 0
+24 26 3 0.97168 1 0
+24 26 4 0.97168 1 0
+24 26 5 0.97168 1 0
+24 26 6 0.97168 1 0
+24 26 7 0.97168 1 0
+24 26 8 0.97168 1 0
+24 26 9 0.97168 1 0
+24 26 10 0.971191 1 0
+24 26 11 0.971191 1 0
+24 26 12 0.971191 1 0
+24 26 13 0.971191 1 0
+24 26 14 0.970703 1 0
+24 26 15 0.970703 1 0
+24 26 16 0.968262 1 0
+24 26 17 0.963379 1 0.198364
+24 26 18 0.955078 1 0.365479
+24 26 19 0.942383 1 0.489258
+24 26 20 0.924316 1 0.59375
+24 26 21 0.900391 1 0.686523
+24 26 22 0.870605 1 0.768066
+24 26 23 0.837402 1 0.837402
+24 26 24 0.802734 1 0.899414
+24 26 25 0.761719 1 0.958984
+24 26 26 0.711426 1 1
+24 26 27 0.647949 0.980469 1
+24 26 28 0.571289 0.937988 1
+24 26 29 0.481934 0.891602 1
+24 26 30 0.375732 0.844238 1
+24 26 31 0.230469 0.796387 1
+24 27 0 0.858398 1 0
+24 27 1 0.858398 1 0
+24 27 2 0.858398 1 0
+24 27 3 0.858398 1 0
+24 27 4 0.858398 1 0
+24 27 5 0.858398 1 0
+24 27 6 0.858398 1 0
+24 27 7 0.858398 1 0
+24 27 8 0.858398 1 0
+24 27 9 0.858398 1 0
+24 27 10 0.858398 1 0
+24 27 11 0.858398 1 0
+24 27 12 0.858398 1 0
+24 27 13 0.858398 1 0
+24 27 14 0.85791 1 0
+24 27 15 0.85791 1 0
+24 27 16 0.855469 1 0
+24 27 17 0.850098 1 0.0878296
+24 27 18 0.841797 1 0.309814
+24 27 19 0.829102 1 0.441895
+24 27 20 0.8125 1 0.549805
+24 27 21 0.790039 1 0.644531
+24 27 22 0.762695 1 0.728027
+24 27 23 0.731934 1 0.800781
+24 27 24 0.69873 1 0.865234
+24 27 25 0.658203 1 0.927246
+24 27 26 0.607422 1 0.98584
+24 27 27 0.544922 1 1
+24 27 28 0.466309 1 1
+24 27 29 0.365479 0.956543 1
+24 27 30 0.221069 0.907715 1
+24 27 31 0 0.856934 1
+24 28 0 0.725586 1 0
+24 28 1 0.725586 1 0
+24 28 2 0.725586 1 0
+24 28 3 0.725586 1 0
+24 28 4 0.725586 1 0
+24 28 5 0.725586 1 0
+24 28 6 0.725586 1 0
+24 28 7 0.725586 1 0
+24 28 8 0.725586 1 0
+24 28 9 0.725586 1 0
+24 28 10 0.725586 1 0
+24 28 11 0.725586 1 0
+24 28 12 0.725586 1 0
+24 28 13 0.725586 1 0
+24 28 14 0.725586 1 0
+24 28 15 0.725586 1 0
+24 28 16 0.723633 1 0
+24 28 17 0.717285 1 0
+24 28 18 0.708008 1 0.241577
+24 28 19 0.694824 1 0.388428
+24 28 20 0.677734 1 0.500488
+24 28 21 0.655273 1 0.597656
+24 28 22 0.628418 1 0.684082
+24 28 23 0.597168 1 0.758789
+24 28 24 0.562012 1 0.825195
+24 28 25 0.518066 1 0.88916
+24 28 26 0.46167 1 0.950195
+24 28 27 0.387451 1 1
+24 28 28 0.283691 1 1
+24 28 29 0.0704956 1 1
+24 28 30 0 0.968262 1
+24 28 31 0 0.91748 1
+24 29 0 0.561035 1 0
+24 29 1 0.561035 1 0
+24 29 2 0.561035 1 0
+24 29 3 0.561035 1 0
+24 29 4 0.561035 1 0
+24 29 5 0.561035 1 0
+24 29 6 0.561035 1 0
+24 29 7 0.561035 1 0
+24 29 8 0.561035 1 0
+24 29 9 0.561035 1 0
+24 29 10 0.561035 1 0
+24 29 11 0.561035 1 0
+24 29 12 0.561035 1 0
+24 29 13 0.561035 1 0
+24 29 14 0.561035 1 0
+24 29 15 0.561035 1 0
+24 29 16 0.560059 1 0
+24 29 17 0.551758 1 0
+24 29 18 0.540039 1 0.145264
+24 29 19 0.523926 1 0.32666
+24 29 20 0.50293 1 0.446289
+24 29 21 0.47583 1 0.546387
+24 29 22 0.442383 1 0.634766
+24 29 23 0.402344 1 0.710938
+24 29 24 0.354248 1 0.778809
+24 29 25 0.287354 1 0.844727
+24 29 26 0.178467 1 0.908203
+24 29 27 0 1 0.967773
+24 29 28 0 1 1
+24 29 29 0 1 1
+24 29 30 0 1 1
+24 29 31 0 0.977539 1
+24 30 0 0.317139 1 0
+24 30 1 0.317139 1 0
+24 30 2 0.317139 1 0
+24 30 3 0.317139 1 0
+24 30 4 0.317139 1 0
+24 30 5 0.317139 1 0
+24 30 6 0.317139 1 0
+24 30 7 0.317139 1 0
+24 30 8 0.317139 1 0
+24 30 9 0.317139 1 0
+24 30 10 0.317383 1 0
+24 30 11 0.317383 1 0
+24 30 12 0.317383 1 0
+24 30 13 0.317627 1 0
+24 30 14 0.317627 1 0
+24 30 15 0.318115 1 0
+24 30 16 0.318604 1 0
+24 30 17 0.303711 1 0
+24 30 18 0.278809 1 0
+24 30 19 0.24292 1 0.252686
+24 30 20 0.189941 1 0.385254
+24 30 21 0.0931396 1 0.489746
+24 30 22 0 1 0.57959
+24 30 23 0 1 0.657715
+24 30 24 0 1 0.726074
+24 30 25 0 1 0.793457
+24 30 26 0 1 0.859375
+24 30 27 0 1 0.922363
+24 30 28 0 1 0.980469
+24 30 29 0 1 1
+24 30 30 0 1 1
+24 30 31 0 1 1
+24 31 0 0 1 0
+24 31 1 0 1 0
+24 31 2 0 1 0
+24 31 3 0 1 0
+24 31 4 0 1 0
+24 31 5 0 1 0
+24 31 6 0 1 0
+24 31 7 0 1 0
+24 31 8 0 1 0
+24 31 9 0 1 0
+24 31 10 0 1 0
+24 31 11 0 1 0
+24 31 12 0 1 0
+24 31 13 0 1 0
+24 31 14 0 1 0
+24 31 15 0 1 0
+24 31 16 0 1 0
+24 31 17 0 1 0
+24 31 18 0 1 0
+24 31 19 0 1 0.151855
+24 31 20 0 1 0.316162
+24 31 21 0 1 0.427734
+24 31 22 0 1 0.52002
+24 31 23 0 1 0.599121
+24 31 24 0 1 0.668457
+24 31 25 0 1 0.737305
+24 31 26 0 1 0.805176
+24 31 27 0 1 0.870605
+24 31 28 0 1 0.933105
+24 31 29 0 1 0.990723
+24 31 30 0 1 1
+24 31 31 0 1 1
+25 0 0 1 0 0
+25 0 1 1 0 0
+25 0 2 1 0 0
+25 0 3 1 0 0
+25 0 4 1 0 0
+25 0 5 1 0 0
+25 0 6 1 0 0
+25 0 7 1 0 0
+25 0 8 1 0 0
+25 0 9 1 0 0
+25 0 10 1 0 0
+25 0 11 1 0 0
+25 0 12 1 0 0
+25 0 13 1 0 0
+25 0 14 1 0 0
+25 0 15 1 0 0
+25 0 16 1 0 0.119019
+25 0 17 1 0 0.321045
+25 0 18 1 0 0.459961
+25 0 19 1 0 0.585449
+25 0 20 1 0 0.700684
+25 0 21 1 0 0.803223
+25 0 22 1 0 0.888672
+25 0 23 1 0.116516 0.955078
+25 0 24 1 0.158447 1
+25 0 25 1 0.178955 1
+25 0 26 1 0.196289 1
+25 0 27 1 0.210083 1
+25 0 28 1 0.220459 1
+25 0 29 0.949707 0.228027 1
+25 0 30 0.856934 0.233398 1
+25 0 31 0.762207 0.237183 1
+25 1 0 1 0 0
+25 1 1 1 0 0
+25 1 2 1 0 0
+25 1 3 1 0 0
+25 1 4 1 0 0
+25 1 5 1 0 0
+25 1 6 1 0 0
+25 1 7 1 0 0
+25 1 8 1 0 0
+25 1 9 1 0 0
+25 1 10 1 0 0
+25 1 11 1 0 0
+25 1 12 1 0 0
+25 1 13 1 0 0
+25 1 14 1 0 0
+25 1 15 1 0 0
+25 1 16 1 0 0.119019
+25 1 17 1 0 0.321045
+25 1 18 1 0 0.459961
+25 1 19 1 0 0.585449
+25 1 20 1 0 0.700684
+25 1 21 1 0 0.803223
+25 1 22 1 0 0.888672
+25 1 23 1 0.116577 0.955078
+25 1 24 1 0.158569 1
+25 1 25 1 0.179077 1
+25 1 26 1 0.196289 1
+25 1 27 1 0.210083 1
+25 1 28 1 0.220459 1
+25 1 29 0.949707 0.228027 1
+25 1 30 0.856934 0.233398 1
+25 1 31 0.762207 0.237183 1
+25 2 0 1 0 0
+25 2 1 1 0 0
+25 2 2 1 0 0
+25 2 3 1 0 0
+25 2 4 1 0 0
+25 2 5 1 0 0
+25 2 6 1 0 0
+25 2 7 1 0 0
+25 2 8 1 0 0
+25 2 9 1 0 0
+25 2 10 1 0 0
+25 2 11 1 0 0
+25 2 12 1 0 0
+25 2 13 1 0 0
+25 2 14 1 0 0
+25 2 15 1 0 0
+25 2 16 1 0 0.118958
+25 2 17 1 0 0.321045
+25 2 18 1 0 0.459961
+25 2 19 1 0 0.585449
+25 2 20 1 0 0.700684
+25 2 21 1 0 0.803223
+25 2 22 1 0 0.888672
+25 2 23 1 0.116638 0.955078
+25 2 24 1 0.158569 1
+25 2 25 1 0.179077 1
+25 2 26 1 0.196289 1
+25 2 27 1 0.210083 1
+25 2 28 1 0.220459 1
+25 2 29 0.949707 0.228149 1
+25 2 30 0.856934 0.233398 1
+25 2 31 0.762207 0.237183 1
+25 3 0 1 0 0
+25 3 1 1 0 0
+25 3 2 1 0 0
+25 3 3 1 0 0
+25 3 4 1 0 0
+25 3 5 1 0 0
+25 3 6 1 0 0
+25 3 7 1 0 0
+25 3 8 1 0 0
+25 3 9 1 0 0
+25 3 10 1 0 0
+25 3 11 1 0 0
+25 3 12 1 0 0
+25 3 13 1 0 0
+25 3 14 1 0 0
+25 3 15 1 0 0
+25 3 16 1 0 0.118958
+25 3 17 1 0 0.321045
+25 3 18 1 0 0.459961
+25 3 19 1 0 0.585449
+25 3 20 1 0 0.700684
+25 3 21 1 0 0.803223
+25 3 22 1 0 0.888672
+25 3 23 1 0.11676 0.955078
+25 3 24 1 0.158691 1
+25 3 25 1 0.179199 1
+25 3 26 1 0.196411 1
+25 3 27 1 0.210083 1
+25 3 28 1 0.220581 1
+25 3 29 0.949707 0.228149 1
+25 3 30 0.856934 0.233521 1
+25 3 31 0.762207 0.237183 1
+25 4 0 1 0 0
+25 4 1 1 0 0
+25 4 2 1 0 0
+25 4 3 1 0 0
+25 4 4 1 0 0
+25 4 5 1 0 0
+25 4 6 1 0 0
+25 4 7 1 0 0
+25 4 8 1 0 0
+25 4 9 1 0 0
+25 4 10 1 0 0
+25 4 11 1 0 0
+25 4 12 1 0 0
+25 4 13 1 0 0
+25 4 14 1 0 0
+25 4 15 1 0 0
+25 4 16 1 0 0.118958
+25 4 17 1 0 0.320801
+25 4 18 1 0 0.459961
+25 4 19 1 0 0.585449
+25 4 20 1 0 0.700684
+25 4 21 1 0 0.803223
+25 4 22 1 0 0.888672
+25 4 23 1 0.117004 0.955078
+25 4 24 1 0.158813 1
+25 4 25 1 0.179321 1
+25 4 26 1 0.196533 1
+25 4 27 1 0.210205 1
+25 4 28 1 0.220581 1
+25 4 29 0.949707 0.228149 1
+25 4 30 0.856934 0.233521 1
+25 4 31 0.762207 0.237305 1
+25 5 0 1 0 0
+25 5 1 1 0 0
+25 5 2 1 0 0
+25 5 3 1 0 0
+25 5 4 1 0 0
+25 5 5 1 0 0
+25 5 6 1 0 0
+25 5 7 1 0 0
+25 5 8 1 0 0
+25 5 9 1 0 0
+25 5 10 1 0 0
+25 5 11 1 0 0
+25 5 12 1 0 0
+25 5 13 1 0 0
+25 5 14 1 0 0
+25 5 15 1 0 0
+25 5 16 1 0 0.118896
+25 5 17 1 0 0.320801
+25 5 18 1 0 0.459961
+25 5 19 1 0 0.585449
+25 5 20 1 0 0.700684
+25 5 21 1 0 0.803223
+25 5 22 1 0 0.888672
+25 5 23 1 0.117493 0.95459
+25 5 24 1 0.15918 1
+25 5 25 1 0.179565 1
+25 5 26 1 0.196655 1
+25 5 27 1 0.210449 1
+25 5 28 1 0.220825 1
+25 5 29 0.949707 0.228394 1
+25 5 30 0.856934 0.233643 1
+25 5 31 0.762207 0.237305 1
+25 6 0 1 0 0
+25 6 1 1 0 0
+25 6 2 1 0 0
+25 6 3 1 0 0
+25 6 4 1 0 0
+25 6 5 1 0 0
+25 6 6 1 0 0
+25 6 7 1 0 0
+25 6 8 1 0 0
+25 6 9 1 0 0
+25 6 10 1 0 0
+25 6 11 1 0 0
+25 6 12 1 0 0
+25 6 13 1 0 0
+25 6 14 1 0 0
+25 6 15 1 0 0
+25 6 16 1 0 0.118835
+25 6 17 1 0 0.320801
+25 6 18 1 0 0.459961
+25 6 19 1 0 0.585449
+25 6 20 1 0 0.700684
+25 6 21 1 0 0.803223
+25 6 22 1 0 0.888672
+25 6 23 1 0.118408 0.95459
+25 6 24 1 0.15979 1
+25 6 25 1 0.180054 1
+25 6 26 1 0.197144 1
+25 6 27 1 0.210815 1
+25 6 28 1 0.221069 1
+25 6 29 0.949707 0.228638 1
+25 6 30 0.856934 0.233887 1
+25 6 31 0.762207 0.237549 1
+25 7 0 1 0 0
+25 7 1 1 0 0
+25 7 2 1 0 0
+25 7 3 1 0 0
+25 7 4 1 0 0
+25 7 5 1 0 0
+25 7 6 1 0 0
+25 7 7 1 0 0
+25 7 8 1 0 0
+25 7 9 1 0 0
+25 7 10 1 0 0
+25 7 11 1 0 0
+25 7 12 1 0 0
+25 7 13 1 0 0
+25 7 14 1 0 0
+25 7 15 1 0 0
+25 7 16 1 0 0.118652
+25 7 17 1 0 0.320801
+25 7 18 1 0 0.459961
+25 7 19 1 0 0.585449
+25 7 20 1 0 0.700684
+25 7 21 1 0 0.803223
+25 7 22 1 0 0.888672
+25 7 23 1 0.120178 0.95459
+25 7 24 1 0.161133 1
+25 7 25 1 0.181152 1
+25 7 26 1 0.197998 1
+25 7 27 1 0.211548 1
+25 7 28 1 0.22168 1
+25 7 29 0.949707 0.229126 1
+25 7 30 0.856934 0.234253 1
+25 7 31 0.761719 0.237915 1
+25 8 0 1 0 0
+25 8 1 1 0 0
+25 8 2 1 0 0
+25 8 3 1 0 0
+25 8 4 1 0 0
+25 8 5 1 0 0
+25 8 6 1 0 0
+25 8 7 1 0 0
+25 8 8 1 0 0
+25 8 9 1 0 0
+25 8 10 1 0 0
+25 8 11 1 0 0
+25 8 12 1 0 0
+25 8 13 1 0 0
+25 8 14 1 0 0
+25 8 15 1 0 0
+25 8 16 1 0 0.118286
+25 8 17 1 0 0.320557
+25 8 18 1 0 0.459961
+25 8 19 1 0 0.584961
+25 8 20 1 0 0.700684
+25 8 21 1 0 0.803223
+25 8 22 1 0 0.888184
+25 8 23 1 0.123535 0.95459
+25 8 24 1 0.163452 1
+25 8 25 1 0.183105 1
+25 8 26 1 0.199707 1
+25 8 27 1 0.212891 1
+25 8 28 1 0.2229 1
+25 8 29 0.949707 0.230103 1
+25 8 30 0.856445 0.235107 1
+25 8 31 0.761719 0.238525 1
+25 9 0 1 0 0
+25 9 1 1 0 0
+25 9 2 1 0 0
+25 9 3 1 0 0
+25 9 4 1 0 0
+25 9 5 1 0 0
+25 9 6 1 0 0
+25 9 7 1 0 0
+25 9 8 1 0 0
+25 9 9 1 0 0
+25 9 10 1 0 0
+25 9 11 1 0 0
+25 9 12 1 0 0
+25 9 13 1 0 0
+25 9 14 1 0 0
+25 9 15 1 0 0
+25 9 16 1 0 0.117615
+25 9 17 1 0 0.320312
+25 9 18 1 0 0.459717
+25 9 19 1 0 0.584961
+25 9 20 1 0 0.700684
+25 9 21 1 0 0.803223
+25 9 22 1 0 0.888184
+25 9 23 1 0.129761 0.95459
+25 9 24 1 0.168091 1
+25 9 25 1 0.18689 1
+25 9 26 1 0.202881 1
+25 9 27 1 0.215576 1
+25 9 28 1 0.225098 1
+25 9 29 0.949219 0.231934 1
+25 9 30 0.856445 0.236694 1
+25 9 31 0.761719 0.239868 1
+25 10 0 1 0 0
+25 10 1 1 0 0
+25 10 2 1 0 0
+25 10 3 1 0 0
+25 10 4 1 0 0
+25 10 5 1 0 0
+25 10 6 1 0 0
+25 10 7 1 0 0
+25 10 8 1 0 0
+25 10 9 1 0 0
+25 10 10 1 0 0
+25 10 11 1 0 0
+25 10 12 1 0 0
+25 10 13 1 0 0
+25 10 14 1 0 0
+25 10 15 1 0 0
+25 10 16 1 0 0.116455
+25 10 17 1 0 0.319824
+25 10 18 1 0 0.459473
+25 10 19 1 0 0.584473
+25 10 20 1 0 0.700195
+25 10 21 1 0 0.802734
+25 10 22 1 0 0.888184
+25 10 23 1 0.140259 0.95459
+25 10 24 1 0.175903 1
+25 10 25 1 0.193604 1
+25 10 26 1 0.208496 1
+25 10 27 1 0.220337 1
+25 10 28 1 0.229126 1
+25 10 29 0.949219 0.235229 1
+25 10 30 0.855957 0.239502 1
+25 10 31 0.76123 0.242188 1
+25 11 0 1 0 0
+25 11 1 1 0 0
+25 11 2 1 0 0
+25 11 3 1 0 0
+25 11 4 1 0 0
+25 11 5 1 0 0
+25 11 6 1 0 0
+25 11 7 1 0 0
+25 11 8 1 0 0
+25 11 9 1 0 0
+25 11 10 1 0 0
+25 11 11 1 0 0
+25 11 12 1 0 0
+25 11 13 1 0 0
+25 11 14 1 0 0
+25 11 15 1 0 0
+25 11 16 1 0 0.11438
+25 11 17 1 0 0.318604
+25 11 18 1 0 0.458984
+25 11 19 1 0 0.583984
+25 11 20 1 0 0.699707
+25 11 21 1 0 0.802734
+25 11 22 1 0.0208282 0.888184
+25 11 23 1 0.157104 0.95459
+25 11 24 1 0.188965 1
+25 11 25 1 0.204712 1
+25 11 26 1 0.218018 1
+25 11 27 1 0.228394 1
+25 11 28 1 0.235962 1
+25 11 29 0.948242 0.240967 1
+25 11 30 0.855469 0.244263 1
+25 11 31 0.760742 0.246216 1
+25 12 0 1 0 0
+25 12 1 1 0 0
+25 12 2 1 0 0
+25 12 3 1 0 0
+25 12 4 1 0 0
+25 12 5 1 0 0
+25 12 6 1 0 0
+25 12 7 1 0 0
+25 12 8 1 0 0
+25 12 9 1 0 0
+25 12 10 1 0 0
+25 12 11 1 0 0
+25 12 12 1 0 0
+25 12 13 1 0 0
+25 12 14 1 0 0
+25 12 15 1 0 0
+25 12 16 1 0 0.110962
+25 12 17 1 0 0.317139
+25 12 18 1 0 0.458252
+25 12 19 1 0 0.583008
+25 12 20 1 0 0.69873
+25 12 21 1 0 0.802246
+25 12 22 1 0.0876465 0.887695
+25 12 23 1 0.182129 0.95459
+25 12 24 1 0.209229 1
+25 12 25 1 0.22229 1
+25 12 26 1 0.233276 1
+25 12 27 1 0.241455 1
+25 12 28 1 0.24707 1
+25 12 29 0.947266 0.250488 1
+25 12 30 0.854492 0.252197 1
+25 12 31 0.759766 0.25293 1
+25 13 0 1 0 0
+25 13 1 1 0 0
+25 13 2 1 0 0
+25 13 3 1 0 0
+25 13 4 1 0 0
+25 13 5 1 0 0
+25 13 6 1 0 0
+25 13 7 1 0 0
+25 13 8 1 0 0
+25 13 9 1 0 0
+25 13 10 1 0 0
+25 13 11 1 0 0
+25 13 12 1 0 0
+25 13 13 1 0 0
+25 13 14 1 0 0
+25 13 15 1 0 0
+25 13 16 1 0 0.105652
+25 13 17 1 0 0.314453
+25 13 18 1 0 0.457031
+25 13 19 1 0 0.581543
+25 13 20 1 0 0.697266
+25 13 21 1 0 0.800781
+25 13 22 1 0.147461 0.887207
+25 13 23 1 0.216675 0.954102
+25 13 24 1 0.238525 1
+25 13 25 1 0.248291 1
+25 13 26 1 0.256104 1
+25 13 27 1 0.261475 1
+25 13 28 1 0.26416 1
+25 13 29 0.945801 0.265137 1
+25 13 30 0.852539 0.264893 1
+25 13 31 0.757812 0.263672 1
+25 14 0 1 0 0
+25 14 1 1 0 0
+25 14 2 1 0 0
+25 14 3 1 0 0
+25 14 4 1 0 0
+25 14 5 1 0 0
+25 14 6 1 0 0
+25 14 7 1 0 0
+25 14 8 1 0 0
+25 14 9 1 0 0
+25 14 10 1 0 0
+25 14 11 1 0 0
+25 14 12 1 0 0
+25 14 13 1 0 0
+25 14 14 1 0 0
+25 14 15 1 0 0
+25 14 16 1 0 0.0979614
+25 14 17 1 0 0.310791
+25 14 18 1 0 0.455566
+25 14 19 1 0 0.579102
+25 14 20 1 0 0.694824
+25 14 21 1 0.0695801 0.799316
+25 14 22 1 0.209717 0.88623
+25 14 23 1 0.261475 0.953125
+25 14 24 1 0.278076 1
+25 14 25 1 0.283936 1
+25 14 26 1 0.288086 1
+25 14 27 1 0.289795 1
+25 14 28 1 0.289062 1
+25 14 29 0.942871 0.286865 1
+25 14 30 0.849609 0.283447 1
+25 14 31 0.754883 0.279541 1
+25 15 0 1 0 0
+25 15 1 1 0 0
+25 15 2 1 0 0
+25 15 3 1 0 0
+25 15 4 1 0 0
+25 15 5 1 0 0
+25 15 6 1 0 0
+25 15 7 1 0 0
+25 15 8 1 0 0
+25 15 9 1 0 0
+25 15 10 1 0 0
+25 15 11 1 0 0
+25 15 12 1 0 0
+25 15 13 1 0 0
+25 15 14 1 0 0
+25 15 15 1 0 0
+25 15 16 1 0 0.0886841
+25 15 17 1 0 0.306152
+25 15 18 1 0 0.452148
+25 15 19 1 0 0.575684
+25 15 20 1 0.055542 0.691406
+25 15 21 1 0.197388 0.796387
+25 15 22 1 0.2771 0.884277
+25 15 23 1 0.316406 0.952148
+25 15 24 1 0.328125 1
+25 15 25 1 0.330322 1
+25 15 26 1 0.330322 1
+25 15 27 1 0.327881 1
+25 15 28 1 0.322998 1
+25 15 29 0.937988 0.316406 1
+25 15 30 0.845215 0.309326 1
+25 15 31 0.750488 0.302002 1
+25 16 0 1 0.20874 0
+25 16 1 1 0.20874 0
+25 16 2 1 0.20874 0
+25 16 3 1 0.208862 0
+25 16 4 1 0.208862 0
+25 16 5 1 0.208862 0
+25 16 6 1 0.208862 0
+25 16 7 1 0.208984 0
+25 16 8 1 0.209106 0
+25 16 9 1 0.209473 0
+25 16 10 1 0.210205 0
+25 16 11 1 0.211304 0
+25 16 12 1 0.213135 0
+25 16 13 1 0.216187 0
+25 16 14 1 0.220093 0
+25 16 15 1 0.218628 0
+25 16 16 1 0.210938 0.0813599
+25 16 17 1 0.201782 0.30127
+25 16 18 1 0.19873 0.445557
+25 16 19 1 0.205688 0.571289
+25 16 20 1 0.236328 0.685547
+25 16 21 1 0.295898 0.791992
+25 16 22 1 0.35083 0.881348
+25 16 23 1 0.381104 0.950195
+25 16 24 1 0.388428 1
+25 16 25 1 0.386963 1
+25 16 26 1 0.383057 1
+25 16 27 1 0.375977 1
+25 16 28 1 0.366211 1
+25 16 29 0.931152 0.35498 1
+25 16 30 0.838379 0.343506 1
+25 16 31 0.743652 0.332031 1
+25 17 0 1 0.350586 0
+25 17 1 1 0.350586 0
+25 17 2 1 0.350586 0
+25 17 3 1 0.350586 0
+25 17 4 1 0.350586 0
+25 17 5 1 0.350586 0
+25 17 6 1 0.350586 0
+25 17 7 1 0.350586 0
+25 17 8 1 0.35083 0
+25 17 9 1 0.351074 0
+25 17 10 1 0.351318 0
+25 17 11 1 0.352051 0
+25 17 12 1 0.353027 0
+25 17 13 1 0.354736 0
+25 17 14 1 0.357178 0
+25 17 15 1 0.355713 0
+25 17 16 1 0.352539 0.085022
+25 17 17 1 0.347656 0.298828
+25 17 18 1 0.343262 0.439453
+25 17 19 1 0.347656 0.566406
+25 17 20 1 0.355713 0.678223
+25 17 21 1 0.38916 0.785156
+25 17 22 1 0.428955 0.876465
+25 17 23 1 0.452637 0.947266
+25 17 24 1 0.456787 1
+25 17 25 1 0.451904 1
+25 17 26 1 0.443848 1
+25 17 27 1 0.432129 1
+25 17 28 1 0.41748 1
+25 17 29 0.921387 0.401367 1
+25 17 30 0.829102 0.384766 1
+25 17 31 0.734375 0.368896 1
+25 18 0 1 0.468262 0
+25 18 1 1 0.468262 0
+25 18 2 1 0.468262 0
+25 18 3 1 0.468262 0
+25 18 4 1 0.468262 0
+25 18 5 1 0.468506 0
+25 18 6 1 0.468506 0
+25 18 7 1 0.468506 0
+25 18 8 1 0.468506 0
+25 18 9 1 0.46875 0
+25 18 10 1 0.468994 0
+25 18 11 1 0.469238 0
+25 18 12 1 0.469971 0
+25 18 13 1 0.471191 0
+25 18 14 1 0.4729 0
+25 18 15 1 0.472656 0
+25 18 16 1 0.471436 0.10614
+25 18 17 1 0.46875 0.302002
+25 18 18 1 0.464355 0.436523
+25 18 19 1 0.46167 0.557617
+25 18 20 1 0.464844 0.669922
+25 18 21 1 0.480225 0.775391
+25 18 22 1 0.508789 0.869141
+25 18 23 1 0.52832 0.942383
+25 18 24 1 0.529785 0.998047
+25 18 25 1 0.521973 1
+25 18 26 1 0.510254 1
+25 18 27 1 0.493896 1
+25 18 28 0.997559 0.474365 1
+25 18 29 0.908203 0.453125 1
+25 18 30 0.815918 0.431641 1
+25 18 31 0.72168 0.411133 1
+25 19 0 1 0.575195 0
+25 19 1 1 0.575195 0
+25 19 2 1 0.575195 0
+25 19 3 1 0.575195 0
+25 19 4 1 0.575195 0
+25 19 5 1 0.575195 0
+25 19 6 1 0.575195 0
+25 19 7 1 0.575195 0
+25 19 8 1 0.575195 0
+25 19 9 1 0.575195 0
+25 19 10 1 0.575195 0
+25 19 11 1 0.575684 0
+25 19 12 1 0.576172 0
+25 19 13 1 0.577148 0
+25 19 14 1 0.578613 0
+25 19 15 1 0.579102 0
+25 19 16 1 0.57959 0.13855
+25 19 17 1 0.578125 0.312256
+25 19 18 1 0.575195 0.439453
+25 19 19 1 0.569824 0.553223
+25 19 20 1 0.567383 0.660645
+25 19 21 1 0.570312 0.763184
+25 19 22 1 0.587891 0.858887
+25 19 23 1 0.604004 0.935059
+25 19 24 1 0.604004 0.992676
+25 19 25 1 0.59375 1
+25 19 26 1 0.578613 1
+25 19 27 1 0.558105 1
+25 19 28 0.97998 0.533691 1
+25 19 29 0.891113 0.507812 1
+25 19 30 0.799316 0.481445 1
+25 19 31 0.705566 0.456543 1
+25 20 0 1 0.671875 0
+25 20 1 1 0.671875 0
+25 20 2 1 0.671875 0
+25 20 3 1 0.671875 0
+25 20 4 1 0.671875 0
+25 20 5 1 0.672363 0
+25 20 6 1 0.672363 0
+25 20 7 1 0.672363 0
+25 20 8 1 0.672363 0
+25 20 9 1 0.672363 0
+25 20 10 1 0.672363 0
+25 20 11 1 0.672852 0
+25 20 12 1 0.672852 0
+25 20 13 1 0.673828 0
+25 20 14 1 0.674805 0
+25 20 15 1 0.67627 0
+25 20 16 1 0.677246 0.169067
+25 20 17 1 0.677246 0.326172
+25 20 18 1 0.675781 0.447266
+25 20 19 1 0.670898 0.554688
+25 20 20 1 0.663574 0.653809
+25 20 21 1 0.660645 0.751953
+25 20 22 1 0.664062 0.844727
+25 20 23 1 0.67627 0.924805
+25 20 24 1 0.67627 0.984863
+25 20 25 1 0.664062 1
+25 20 26 1 0.645996 1
+25 20 27 1 0.621582 1
+25 20 28 0.958008 0.592773 1
+25 20 29 0.870117 0.5625 1
+25 20 30 0.779297 0.532227 1
+25 20 31 0.686035 0.50293 1
+25 21 0 1 0.762207 0
+25 21 1 1 0.762207 0
+25 21 2 1 0.762207 0
+25 21 3 1 0.762207 0
+25 21 4 1 0.762207 0
+25 21 5 1 0.762207 0
+25 21 6 1 0.762207 0
+25 21 7 1 0.762207 0
+25 21 8 1 0.762207 0
+25 21 9 1 0.762207 0
+25 21 10 1 0.762207 0
+25 21 11 1 0.762695 0
+25 21 12 1 0.762695 0
+25 21 13 1 0.763184 0
+25 21 14 1 0.76416 0
+25 21 15 1 0.765625 0
+25 21 16 1 0.767578 0.1875
+25 21 17 1 0.768555 0.336914
+25 21 18 1 0.768066 0.455566
+25 21 19 1 0.764648 0.560059
+25 21 20 1 0.757324 0.65332
+25 21 21 1 0.74707 0.741211
+25 21 22 1 0.741211 0.828613
+25 21 23 1 0.745605 0.910156
+25 21 24 1 0.746582 0.974609
+25 21 25 1 0.73291 1
+25 21 26 1 0.712402 1
+25 21 27 1 0.684082 1
+25 21 28 0.930664 0.651367 1
+25 21 29 0.844238 0.617188 1
+25 21 30 0.754883 0.583496 1
+25 21 31 0.662598 0.550781 1
+25 22 0 1 0.843262 0
+25 22 1 1 0.843262 0
+25 22 2 1 0.843262 0
+25 22 3 1 0.843262 0
+25 22 4 1 0.843262 0
+25 22 5 1 0.843262 0
+25 22 6 1 0.84375 0
+25 22 7 1 0.84375 0
+25 22 8 1 0.84375 0
+25 22 9 1 0.84375 0
+25 22 10 1 0.84375 0
+25 22 11 1 0.84375 0
+25 22 12 1 0.844238 0
+25 22 13 1 0.844238 0
+25 22 14 1 0.845215 0
+25 22 15 1 0.84668 0
+25 22 16 1 0.848633 0.184814
+25 22 17 1 0.850586 0.337158
+25 22 18 1 0.851074 0.457275
+25 22 19 1 0.849121 0.5625
+25 22 20 1 0.843262 0.655273
+25 22 21 1 0.83252 0.73877
+25 22 22 1 0.818848 0.815918
+25 22 23 1 0.811523 0.891602
+25 22 24 1 0.8125 0.960938
+25 22 25 1 0.798828 1
+25 22 26 1 0.775879 1
+25 22 27 0.978516 0.743652 1
+25 22 28 0.898438 0.708008 1
+25 22 29 0.813965 0.670898 1
+25 22 30 0.726562 0.634277 1
+25 22 31 0.635254 0.598633 1
+25 23 0 1 0.913574 0
+25 23 1 1 0.913574 0
+25 23 2 1 0.913574 0
+25 23 3 1 0.913574 0
+25 23 4 1 0.913574 0
+25 23 5 1 0.913574 0
+25 23 6 1 0.913574 0
+25 23 7 1 0.913574 0
+25 23 8 1 0.913574 0
+25 23 9 1 0.913574 0
+25 23 10 1 0.913574 0
+25 23 11 1 0.914062 0
+25 23 12 1 0.914062 0
+25 23 13 1 0.914551 0
+25 23 14 1 0.915039 0
+25 23 15 1 0.916016 0
+25 23 16 1 0.918945 0.154663
+25 23 17 1 0.921387 0.322754
+25 23 18 1 0.922852 0.447754
+25 23 19 1 0.921875 0.556152
+25 23 20 1 0.91748 0.651855
+25 23 21 1 0.908203 0.737305
+25 23 22 1 0.894043 0.811523
+25 23 23 1 0.877441 0.876465
+25 23 24 1 0.870605 0.943359
+25 23 25 1 0.858398 1
+25 23 26 1 0.833008 1
+25 23 27 0.939941 0.79834 1
+25 23 28 0.862793 0.760254 1
+25 23 29 0.780762 0.72168 1
+25 23 30 0.695312 0.683105 1
+25 23 31 0.60498 0.645508 1
+25 24 0 1 0.973145 0
+25 24 1 1 0.973145 0
+25 24 2 1 0.973145 0
+25 24 3 1 0.973145 0
+25 24 4 1 0.973145 0
+25 24 5 1 0.973145 0
+25 24 6 1 0.973145 0
+25 24 7 1 0.973145 0
+25 24 8 1 0.973145 0
+25 24 9 1 0.973145 0
+25 24 10 1 0.973145 0
+25 24 11 1 0.973145 0
+25 24 12 1 0.973145 0
+25 24 13 1 0.973633 0
+25 24 14 1 0.974121 0
+25 24 15 1 0.974609 0
+25 24 16 1 0.978027 0.0821533
+25 24 17 1 0.980957 0.294189
+25 24 18 1 0.983398 0.427002
+25 24 19 1 0.983398 0.539551
+25 24 20 1 0.980469 0.638672
+25 24 21 1 0.973145 0.727539
+25 24 22 1 0.960938 0.805664
+25 24 23 1 0.944824 0.870117
+25 24 24 1 0.925293 0.924805
+25 24 25 1 0.913086 0.986816
+25 24 26 0.965332 0.884277 1
+25 24 27 0.896973 0.848145 1
+25 24 28 0.82373 0.810059 1
+25 24 29 0.745605 0.770996 1
+25 24 30 0.661621 0.730957 1
+25 24 31 0.571289 0.691406 1
+25 25 0 1 1 0
+25 25 1 1 1 0
+25 25 2 1 1 0
+25 25 3 1 1 0
+25 25 4 1 1 0
+25 25 5 1 1 0
+25 25 6 1 1 0
+25 25 7 1 1 0
+25 25 8 1 1 0
+25 25 9 1 1 0
+25 25 10 1 1 0
+25 25 11 1 1 0
+25 25 12 1 1 0
+25 25 13 1 1 0
+25 25 14 1 1 0
+25 25 15 1 1 0
+25 25 16 1 1 0
+25 25 17 1 1 0.248901
+25 25 18 1 1 0.394775
+25 25 19 1 1 0.512207
+25 25 20 1 1 0.614258
+25 25 21 1 1 0.705566
+25 25 22 1 1 0.786621
+25 25 23 1 1 0.855469
+25 25 24 1 0.989746 0.914062
+25 25 25 0.967285 0.967285 0.967285
+25 25 26 0.912109 0.937012 1
+25 25 27 0.849121 0.902832 1
+25 25 28 0.779785 0.865234 1
+25 25 29 0.703125 0.824707 1
+25 25 30 0.619141 0.783203 1
+25 25 31 0.526855 0.741211 1
+25 26 0 1 1 0
+25 26 1 1 1 0
+25 26 2 1 1 0
+25 26 3 1 1 0
+25 26 4 1 1 0
+25 26 5 1 1 0
+25 26 6 1 1 0
+25 26 7 1 1 0
+25 26 8 1 1 0
+25 26 9 1 1 0
+25 26 10 1 1 0
+25 26 11 1 1 0
+25 26 12 1 1 0
+25 26 13 1 1 0
+25 26 14 1 1 0
+25 26 15 1 1 0
+25 26 16 1 1 0
+25 26 17 1 1 0.183594
+25 26 18 1 1 0.352051
+25 26 19 1 1 0.475586
+25 26 20 1 1 0.580078
+25 26 21 1 1 0.67334
+25 26 22 1 1 0.755371
+25 26 23 0.973145 1 0.825684
+25 26 24 0.938965 1 0.885254
+25 26 25 0.899414 1 0.942871
+25 26 26 0.85498 0.999512 1
+25 26 27 0.795898 0.966797 1
+25 26 28 0.726562 0.926758 1
+25 26 29 0.648926 0.883789 1
+25 26 30 0.563477 0.839355 1
+25 26 31 0.466797 0.794434 1
+25 27 0 0.981445 1 0
+25 27 1 0.981445 1 0
+25 27 2 0.981445 1 0
+25 27 3 0.981445 1 0
+25 27 4 0.981445 1 0
+25 27 5 0.981445 1 0
+25 27 6 0.981445 1 0
+25 27 7 0.981445 1 0
+25 27 8 0.981445 1 0
+25 27 9 0.981445 1 0
+25 27 10 0.981445 1 0
+25 27 11 0.981445 1 0
+25 27 12 0.981445 1 0
+25 27 13 0.981445 1 0
+25 27 14 0.980957 1 0
+25 27 15 0.980957 1 0
+25 27 16 0.979492 1 0
+25 27 17 0.976562 1 0.0653076
+25 27 18 0.971191 1 0.298828
+25 27 19 0.962402 1 0.430908
+25 27 20 0.949219 1 0.538574
+25 27 21 0.931152 1 0.632812
+25 27 22 0.908203 1 0.716797
+25 27 23 0.880859 1 0.788574
+25 27 24 0.850098 1 0.851074
+25 27 25 0.814941 1 0.912598
+25 27 26 0.771973 1 0.972168
+25 27 27 0.719727 1 1
+25 27 28 0.655273 0.991211 1
+25 27 29 0.577637 0.948242 1
+25 27 30 0.487549 0.901855 1
+25 27 31 0.380127 0.853516 1
+25 28 0 0.866211 1 0
+25 28 1 0.866211 1 0
+25 28 2 0.866211 1 0
+25 28 3 0.866211 1 0
+25 28 4 0.866211 1 0
+25 28 5 0.866211 1 0
+25 28 6 0.866211 1 0
+25 28 7 0.866211 1 0
+25 28 8 0.866211 1 0
+25 28 9 0.866211 1 0
+25 28 10 0.866211 1 0
+25 28 11 0.866211 1 0
+25 28 12 0.866211 1 0
+25 28 13 0.865723 1 0
+25 28 14 0.865723 1 0
+25 28 15 0.865723 1 0
+25 28 16 0.864746 1 0
+25 28 17 0.861328 1 0
+25 28 18 0.855469 1 0.231567
+25 28 19 0.84668 1 0.379395
+25 28 20 0.833984 1 0.491211
+25 28 21 0.816895 1 0.587891
+25 28 22 0.79541 1 0.67334
+25 28 23 0.77002 1 0.747559
+25 28 24 0.742188 1 0.8125
+25 28 25 0.708496 1 0.876465
+25 28 26 0.666504 1 0.938477
+25 28 27 0.614258 1 0.995605
+25 28 28 0.549805 1 1
+25 28 29 0.469971 1 1
+25 28 30 0.368652 0.962891 1
+25 28 31 0.223145 0.914062 1
+25 29 0 0.730469 1 0
+25 29 1 0.730469 1 0
+25 29 2 0.730469 1 0
+25 29 3 0.730469 1 0
+25 29 4 0.730469 1 0
+25 29 5 0.730469 1 0
+25 29 6 0.730469 1 0
+25 29 7 0.730469 1 0
+25 29 8 0.730469 1 0
+25 29 9 0.730469 1 0
+25 29 10 0.730469 1 0
+25 29 11 0.730469 1 0
+25 29 12 0.730469 1 0
+25 29 13 0.730469 1 0
+25 29 14 0.730469 1 0
+25 29 15 0.730469 1 0
+25 29 16 0.72998 1 0
+25 29 17 0.725586 1 0
+25 29 18 0.71875 1 0.133667
+25 29 19 0.708984 1 0.318604
+25 29 20 0.695801 1 0.437988
+25 29 21 0.678711 1 0.537598
+25 29 22 0.657227 1 0.625
+25 29 23 0.632324 1 0.701172
+25 29 24 0.604004 1 0.768066
+25 29 25 0.568359 1 0.833984
+25 29 26 0.523438 1 0.897949
+25 29 27 0.465576 1 0.958008
+25 29 28 0.390381 1 1
+25 29 29 0.285645 1 1
+25 29 30 0.0717773 1 1
+25 29 31 0 0.974121 1
+25 30 0 0.564941 1 0
+25 30 1 0.564941 1 0
+25 30 2 0.564941 1 0
+25 30 3 0.564941 1 0
+25 30 4 0.564941 1 0
+25 30 5 0.564941 1 0
+25 30 6 0.564941 1 0
+25 30 7 0.564941 1 0
+25 30 8 0.564941 1 0
+25 30 9 0.564941 1 0
+25 30 10 0.564941 1 0
+25 30 11 0.564941 1 0
+25 30 12 0.564941 1 0
+25 30 13 0.564941 1 0
+25 30 14 0.564941 1 0
+25 30 15 0.564941 1 0
+25 30 16 0.564941 1 0
+25 30 17 0.55957 1 0
+25 30 18 0.550293 1 0
+25 30 19 0.537598 1 0.245605
+25 30 20 0.520996 1 0.378418
+25 30 21 0.499512 1 0.482666
+25 30 22 0.473389 1 0.572266
+25 30 23 0.442383 1 0.649414
+25 30 24 0.406006 1 0.717773
+25 30 25 0.35791 1 0.785156
+25 30 26 0.290283 1 0.851074
+25 30 27 0.180908 1 0.914551
+25 30 28 0 1 0.973633
+25 30 29 0 1 1
+25 30 30 0 1 1
+25 30 31 0 1 1
+25 31 0 0.319092 1 0
+25 31 1 0.319092 1 0
+25 31 2 0.319092 1 0
+25 31 3 0.319092 1 0
+25 31 4 0.319092 1 0
+25 31 5 0.319092 1 0
+25 31 6 0.319092 1 0
+25 31 7 0.319092 1 0
+25 31 8 0.319092 1 0
+25 31 9 0.319092 1 0
+25 31 10 0.319092 1 0
+25 31 11 0.319092 1 0
+25 31 12 0.319092 1 0
+25 31 13 0.319336 1 0
+25 31 14 0.31958 1 0
+25 31 15 0.319824 1 0
+25 31 16 0.320068 1 0
+25 31 17 0.313477 1 0
+25 31 18 0.293457 1 0
+25 31 19 0.265625 1 0.143677
+25 31 20 0.226807 1 0.310547
+25 31 21 0.168579 1 0.422119
+25 31 22 0.0491638 1 0.51416
+25 31 23 0 1 0.592773
+25 31 24 0 1 0.662598
+25 31 25 0 1 0.730957
+25 31 26 0 1 0.79834
+25 31 27 0 1 0.864746
+25 31 28 0 1 0.927246
+25 31 29 0 1 0.98584
+25 31 30 0 1 1
+25 31 31 0 1 1
+26 0 0 1 0 0
+26 0 1 1 0 0
+26 0 2 1 0 0
+26 0 3 1 0 0
+26 0 4 1 0 0
+26 0 5 1 0 0
+26 0 6 1 0 0
+26 0 7 1 0 0
+26 0 8 1 0 0
+26 0 9 1 0 0
+26 0 10 1 0 0
+26 0 11 1 0 0
+26 0 12 1 0 0
+26 0 13 1 0 0
+26 0 14 1 0 0
+26 0 15 1 0 0
+26 0 16 1 0 0
+26 0 17 1 0 0.257324
+26 0 18 1 0 0.4104
+26 0 19 1 0 0.534668
+26 0 20 1 0 0.649414
+26 0 21 1 0 0.754395
+26 0 22 1 0 0.844727
+26 0 23 1 0 0.916992
+26 0 24 1 0.120178 0.975098
+26 0 25 1 0.162231 1
+26 0 26 1 0.182739 1
+26 0 27 1 0.199707 1
+26 0 28 1 0.213135 1
+26 0 29 1 0.223389 1
+26 0 30 0.960449 0.230957 1
+26 0 31 0.865723 0.236328 1
+26 1 0 1 0 0
+26 1 1 1 0 0
+26 1 2 1 0 0
+26 1 3 1 0 0
+26 1 4 1 0 0
+26 1 5 1 0 0
+26 1 6 1 0 0
+26 1 7 1 0 0
+26 1 8 1 0 0
+26 1 9 1 0 0
+26 1 10 1 0 0
+26 1 11 1 0 0
+26 1 12 1 0 0
+26 1 13 1 0 0
+26 1 14 1 0 0
+26 1 15 1 0 0
+26 1 16 1 0 0
+26 1 17 1 0 0.257324
+26 1 18 1 0 0.4104
+26 1 19 1 0 0.534668
+26 1 20 1 0 0.649414
+26 1 21 1 0 0.754395
+26 1 22 1 0 0.844727
+26 1 23 1 0 0.916992
+26 1 24 1 0.120178 0.975098
+26 1 25 1 0.162354 1
+26 1 26 1 0.182739 1
+26 1 27 1 0.199707 1
+26 1 28 1 0.213257 1
+26 1 29 1 0.223389 1
+26 1 30 0.960449 0.230957 1
+26 1 31 0.865723 0.236328 1
+26 2 0 1 0 0
+26 2 1 1 0 0
+26 2 2 1 0 0
+26 2 3 1 0 0
+26 2 4 1 0 0
+26 2 5 1 0 0
+26 2 6 1 0 0
+26 2 7 1 0 0
+26 2 8 1 0 0
+26 2 9 1 0 0
+26 2 10 1 0 0
+26 2 11 1 0 0
+26 2 12 1 0 0
+26 2 13 1 0 0
+26 2 14 1 0 0
+26 2 15 1 0 0
+26 2 16 1 0 0
+26 2 17 1 0 0.257324
+26 2 18 1 0 0.4104
+26 2 19 1 0 0.534668
+26 2 20 1 0 0.649414
+26 2 21 1 0 0.754395
+26 2 22 1 0 0.844727
+26 2 23 1 0 0.916992
+26 2 24 1 0.120239 0.975098
+26 2 25 1 0.162354 1
+26 2 26 1 0.182739 1
+26 2 27 1 0.199707 1
+26 2 28 1 0.213257 1
+26 2 29 1 0.223511 1
+26 2 30 0.960449 0.230957 1
+26 2 31 0.865723 0.236328 1
+26 3 0 1 0 0
+26 3 1 1 0 0
+26 3 2 1 0 0
+26 3 3 1 0 0
+26 3 4 1 0 0
+26 3 5 1 0 0
+26 3 6 1 0 0
+26 3 7 1 0 0
+26 3 8 1 0 0
+26 3 9 1 0 0
+26 3 10 1 0 0
+26 3 11 1 0 0
+26 3 12 1 0 0
+26 3 13 1 0 0
+26 3 14 1 0 0
+26 3 15 1 0 0
+26 3 16 1 0 0
+26 3 17 1 0 0.257324
+26 3 18 1 0 0.4104
+26 3 19 1 0 0.534668
+26 3 20 1 0 0.649414
+26 3 21 1 0 0.754395
+26 3 22 1 0 0.844727
+26 3 23 1 0 0.916992
+26 3 24 1 0.120361 0.975098
+26 3 25 1 0.162476 1
+26 3 26 1 0.182861 1
+26 3 27 1 0.199829 1
+26 3 28 1 0.213257 1
+26 3 29 1 0.223511 1
+26 3 30 0.960449 0.230957 1
+26 3 31 0.865723 0.236328 1
+26 4 0 1 0 0
+26 4 1 1 0 0
+26 4 2 1 0 0
+26 4 3 1 0 0
+26 4 4 1 0 0
+26 4 5 1 0 0
+26 4 6 1 0 0
+26 4 7 1 0 0
+26 4 8 1 0 0
+26 4 9 1 0 0
+26 4 10 1 0 0
+26 4 11 1 0 0
+26 4 12 1 0 0
+26 4 13 1 0 0
+26 4 14 1 0 0
+26 4 15 1 0 0
+26 4 16 1 0 0
+26 4 17 1 0 0.257324
+26 4 18 1 0 0.4104
+26 4 19 1 0 0.534668
+26 4 20 1 0 0.649414
+26 4 21 1 0 0.754395
+26 4 22 1 0 0.844727
+26 4 23 1 0 0.916992
+26 4 24 1 0.120605 0.975098
+26 4 25 1 0.162598 1
+26 4 26 1 0.182983 1
+26 4 27 1 0.199951 1
+26 4 28 1 0.213379 1
+26 4 29 1 0.223633 1
+26 4 30 0.960449 0.231079 1
+26 4 31 0.865723 0.23645 1
+26 5 0 1 0 0
+26 5 1 1 0 0
+26 5 2 1 0 0
+26 5 3 1 0 0
+26 5 4 1 0 0
+26 5 5 1 0 0
+26 5 6 1 0 0
+26 5 7 1 0 0
+26 5 8 1 0 0
+26 5 9 1 0 0
+26 5 10 1 0 0
+26 5 11 1 0 0
+26 5 12 1 0 0
+26 5 13 1 0 0
+26 5 14 1 0 0
+26 5 15 1 0 0
+26 5 16 1 0 0
+26 5 17 1 0 0.257324
+26 5 18 1 0 0.4104
+26 5 19 1 0 0.534668
+26 5 20 1 0 0.649414
+26 5 21 1 0 0.754395
+26 5 22 1 0 0.844727
+26 5 23 1 0 0.916992
+26 5 24 1 0.120972 0.975098
+26 5 25 1 0.162842 1
+26 5 26 1 0.183228 1
+26 5 27 1 0.200073 1
+26 5 28 1 0.213501 1
+26 5 29 1 0.223755 1
+26 5 30 0.960449 0.231201 1
+26 5 31 0.865723 0.23645 1
+26 6 0 1 0 0
+26 6 1 1 0 0
+26 6 2 1 0 0
+26 6 3 1 0 0
+26 6 4 1 0 0
+26 6 5 1 0 0
+26 6 6 1 0 0
+26 6 7 1 0 0
+26 6 8 1 0 0
+26 6 9 1 0 0
+26 6 10 1 0 0
+26 6 11 1 0 0
+26 6 12 1 0 0
+26 6 13 1 0 0
+26 6 14 1 0 0
+26 6 15 1 0 0
+26 6 16 1 0 0
+26 6 17 1 0 0.257324
+26 6 18 1 0 0.4104
+26 6 19 1 0 0.534668
+26 6 20 1 0 0.649414
+26 6 21 1 0 0.754395
+26 6 22 1 0 0.844727
+26 6 23 1 0 0.916992
+26 6 24 1 0.121765 0.975098
+26 6 25 1 0.163452 1
+26 6 26 1 0.183716 1
+26 6 27 1 0.200439 1
+26 6 28 1 0.213867 1
+26 6 29 1 0.223999 1
+26 6 30 0.960449 0.231445 1
+26 6 31 0.865723 0.236694 1
+26 7 0 1 0 0
+26 7 1 1 0 0
+26 7 2 1 0 0
+26 7 3 1 0 0
+26 7 4 1 0 0
+26 7 5 1 0 0
+26 7 6 1 0 0
+26 7 7 1 0 0
+26 7 8 1 0 0
+26 7 9 1 0 0
+26 7 10 1 0 0
+26 7 11 1 0 0
+26 7 12 1 0 0
+26 7 13 1 0 0
+26 7 14 1 0 0
+26 7 15 1 0 0
+26 7 16 1 0 0
+26 7 17 1 0 0.257324
+26 7 18 1 0 0.4104
+26 7 19 1 0 0.534668
+26 7 20 1 0 0.649414
+26 7 21 1 0 0.754395
+26 7 22 1 0 0.844727
+26 7 23 1 0 0.916992
+26 7 24 1 0.123291 0.975098
+26 7 25 1 0.164551 1
+26 7 26 1 0.18457 1
+26 7 27 1 0.201294 1
+26 7 28 1 0.214478 1
+26 7 29 1 0.224487 1
+26 7 30 0.960449 0.231812 1
+26 7 31 0.865723 0.237061 1
+26 8 0 1 0 0
+26 8 1 1 0 0
+26 8 2 1 0 0
+26 8 3 1 0 0
+26 8 4 1 0 0
+26 8 5 1 0 0
+26 8 6 1 0 0
+26 8 7 1 0 0
+26 8 8 1 0 0
+26 8 9 1 0 0
+26 8 10 1 0 0
+26 8 11 1 0 0
+26 8 12 1 0 0
+26 8 13 1 0 0
+26 8 14 1 0 0
+26 8 15 1 0 0
+26 8 16 1 0 0
+26 8 17 1 0 0.25708
+26 8 18 1 0 0.410156
+26 8 19 1 0 0.534668
+26 8 20 1 0 0.649414
+26 8 21 1 0 0.754395
+26 8 22 1 0 0.844727
+26 8 23 1 0 0.916992
+26 8 24 1 0.126221 0.975098
+26 8 25 1 0.166626 1
+26 8 26 1 0.186279 1
+26 8 27 1 0.202637 1
+26 8 28 1 0.215698 1
+26 8 29 1 0.225464 1
+26 8 30 0.959961 0.232666 1
+26 8 31 0.865723 0.237793 1
+26 9 0 1 0 0
+26 9 1 1 0 0
+26 9 2 1 0 0
+26 9 3 1 0 0
+26 9 4 1 0 0
+26 9 5 1 0 0
+26 9 6 1 0 0
+26 9 7 1 0 0
+26 9 8 1 0 0
+26 9 9 1 0 0
+26 9 10 1 0 0
+26 9 11 1 0 0
+26 9 12 1 0 0
+26 9 13 1 0 0
+26 9 14 1 0 0
+26 9 15 1 0 0
+26 9 16 1 0 0
+26 9 17 1 0 0.256836
+26 9 18 1 0 0.410156
+26 9 19 1 0 0.534668
+26 9 20 1 0 0.649414
+26 9 21 1 0 0.754395
+26 9 22 1 0 0.844727
+26 9 23 1 0 0.916992
+26 9 24 1 0.131592 0.975098
+26 9 25 1 0.170532 1
+26 9 26 1 0.189575 1
+26 9 27 1 0.205444 1
+26 9 28 1 0.218018 1
+26 9 29 1 0.227417 1
+26 9 30 0.959961 0.234253 1
+26 9 31 0.865723 0.239136 1
+26 10 0 1 0 0
+26 10 1 1 0 0
+26 10 2 1 0 0
+26 10 3 1 0 0
+26 10 4 1 0 0
+26 10 5 1 0 0
+26 10 6 1 0 0
+26 10 7 1 0 0
+26 10 8 1 0 0
+26 10 9 1 0 0
+26 10 10 1 0 0
+26 10 11 1 0 0
+26 10 12 1 0 0
+26 10 13 1 0 0
+26 10 14 1 0 0
+26 10 15 1 0 0
+26 10 16 1 0 0
+26 10 17 1 0 0.256104
+26 10 18 1 0 0.409912
+26 10 19 1 0 0.53418
+26 10 20 1 0 0.648926
+26 10 21 1 0 0.753906
+26 10 22 1 0 0.844238
+26 10 23 1 0 0.916992
+26 10 24 1 0.140869 0.974609
+26 10 25 1 0.17749 1
+26 10 26 1 0.195312 1
+26 10 27 1 0.210327 1
+26 10 28 1 0.222046 1
+26 10 29 1 0.230835 1
+26 10 30 0.959473 0.237183 1
+26 10 31 0.865234 0.241455 1
+26 11 0 1 0 0
+26 11 1 1 0 0
+26 11 2 1 0 0
+26 11 3 1 0 0
+26 11 4 1 0 0
+26 11 5 1 0 0
+26 11 6 1 0 0
+26 11 7 1 0 0
+26 11 8 1 0 0
+26 11 9 1 0 0
+26 11 10 1 0 0
+26 11 11 1 0 0
+26 11 12 1 0 0
+26 11 13 1 0 0
+26 11 14 1 0 0
+26 11 15 1 0 0
+26 11 16 1 0 0
+26 11 17 1 0 0.255127
+26 11 18 1 0 0.409668
+26 11 19 1 0 0.533691
+26 11 20 1 0 0.648438
+26 11 21 1 0 0.753418
+26 11 22 1 0 0.844238
+26 11 23 1 0.0396423 0.916992
+26 11 24 1 0.155762 0.974609
+26 11 25 1 0.188965 1
+26 11 26 1 0.205078 1
+26 11 27 1 0.218506 1
+26 11 28 1 0.229004 1
+26 11 29 1 0.236816 1
+26 11 30 0.958984 0.242065 1
+26 11 31 0.864746 0.245605 1
+26 12 0 1 0 0
+26 12 1 1 0 0
+26 12 2 1 0 0
+26 12 3 1 0 0
+26 12 4 1 0 0
+26 12 5 1 0 0
+26 12 6 1 0 0
+26 12 7 1 0 0
+26 12 8 1 0 0
+26 12 9 1 0 0
+26 12 10 1 0 0
+26 12 11 1 0 0
+26 12 12 1 0 0
+26 12 13 1 0 0
+26 12 14 1 0 0
+26 12 15 1 0 0
+26 12 16 1 0 0
+26 12 17 1 0 0.253662
+26 12 18 1 0 0.40918
+26 12 19 1 0 0.533203
+26 12 20 1 0 0.647949
+26 12 21 1 0 0.75293
+26 12 22 1 0 0.84375
+26 12 23 1 0.0928345 0.916504
+26 12 24 1 0.178345 0.974609
+26 12 25 1 0.206909 1
+26 12 26 1 0.220581 1
+26 12 27 1 0.231934 1
+26 12 28 1 0.240479 1
+26 12 29 1 0.24646 1
+26 12 30 0.958496 0.250244 1
+26 12 31 0.86377 0.252686 1
+26 13 0 1 0 0
+26 13 1 1 0 0
+26 13 2 1 0 0
+26 13 3 1 0 0
+26 13 4 1 0 0
+26 13 5 1 0 0
+26 13 6 1 0 0
+26 13 7 1 0 0
+26 13 8 1 0 0
+26 13 9 1 0 0
+26 13 10 1 0 0
+26 13 11 1 0 0
+26 13 12 1 0 0
+26 13 13 1 0 0
+26 13 14 1 0 0
+26 13 15 1 0 0
+26 13 16 1 0 0
+26 13 17 1 0 0.250977
+26 13 18 1 0 0.407227
+26 13 19 1 0 0.531738
+26 13 20 1 0 0.646484
+26 13 21 1 0 0.751953
+26 13 22 1 0 0.843262
+26 13 23 1 0.145508 0.916016
+26 13 24 1 0.209839 0.974121
+26 13 25 1 0.233276 1
+26 13 26 1 0.243774 1
+26 13 27 1 0.252197 1
+26 13 28 1 0.258057 1
+26 13 29 1 0.261475 1
+26 13 30 0.956543 0.263184 1
+26 13 31 0.862305 0.263428 1
+26 14 0 1 0 0
+26 14 1 1 0 0
+26 14 2 1 0 0
+26 14 3 1 0 0
+26 14 4 1 0 0
+26 14 5 1 0 0
+26 14 6 1 0 0
+26 14 7 1 0 0
+26 14 8 1 0 0
+26 14 9 1 0 0
+26 14 10 1 0 0
+26 14 11 1 0 0
+26 14 12 1 0 0
+26 14 13 1 0 0
+26 14 14 1 0 0
+26 14 15 1 0 0
+26 14 16 1 0 0
+26 14 17 1 0 0.247314
+26 14 18 1 0 0.404053
+26 14 19 1 0 0.529785
+26 14 20 1 0 0.644531
+26 14 21 1 0 0.75
+26 14 22 1 0.0727539 0.841797
+26 14 23 1 0.202515 0.915527
+26 14 24 1 0.251221 0.973633
+26 14 25 1 0.269287 1
+26 14 26 1 0.276123 1
+26 14 27 1 0.281006 1
+26 14 28 1 0.283203 1
+26 14 29 1 0.283447 1
+26 14 30 0.95459 0.282227 1
+26 14 31 0.859863 0.279785 1
+26 15 0 1 0 0
+26 15 1 1 0 0
+26 15 2 1 0 0
+26 15 3 1 0 0
+26 15 4 1 0 0
+26 15 5 1 0 0
+26 15 6 1 0 0
+26 15 7 1 0 0
+26 15 8 1 0 0
+26 15 9 1 0 0
+26 15 10 1 0 0
+26 15 11 1 0 0
+26 15 12 1 0 0
+26 15 13 1 0 0
+26 15 14 1 0 0
+26 15 15 1 0 0
+26 15 16 1 0 0
+26 15 17 1 0 0.242432
+26 15 18 1 0 0.399414
+26 15 19 1 0 0.527344
+26 15 20 1 0 0.641113
+26 15 21 1 0.00444031 0.747559
+26 15 22 1 0.189209 0.839844
+26 15 23 1 0.265381 0.914062
+26 15 24 1 0.30249 0.973145
+26 15 25 1 0.31543 1
+26 15 26 1 0.318359 1
+26 15 27 1 0.319336 1
+26 15 28 1 0.317627 1
+26 15 29 1 0.313721 1
+26 15 30 0.950684 0.308594 1
+26 15 31 0.856445 0.302734 1
+26 16 0 1 0.137817 0
+26 16 1 1 0.137817 0
+26 16 2 1 0.137817 0
+26 16 3 1 0.137817 0
+26 16 4 1 0.137817 0
+26 16 5 1 0.137817 0
+26 16 6 1 0.137939 0
+26 16 7 1 0.138062 0
+26 16 8 1 0.138306 0
+26 16 9 1 0.138794 0
+26 16 10 1 0.139648 0
+26 16 11 1 0.141235 0
+26 16 12 1 0.143799 0
+26 16 13 1 0.147949 0
+26 16 14 1 0.154175 0
+26 16 15 1 0.155762 0
+26 16 16 1 0.146973 0
+26 16 17 1 0.132568 0.237183
+26 16 18 1 0.121765 0.394043
+26 16 19 1 0.131836 0.524414
+26 16 20 1 0.148193 0.636719
+26 16 21 1 0.210693 0.743164
+26 16 22 1 0.281982 0.836426
+26 16 23 1 0.334961 0.911621
+26 16 24 1 0.363281 0.97168
+26 16 25 1 0.371582 1
+26 16 26 1 0.37085 1
+26 16 27 1 0.367432 1
+26 16 28 1 0.361328 1
+26 16 29 1 0.353027 1
+26 16 30 0.945312 0.343506 1
+26 16 31 0.850586 0.333496 1
+26 17 0 1 0.303711 0
+26 17 1 1 0.303711 0
+26 17 2 1 0.303711 0
+26 17 3 1 0.303711 0
+26 17 4 1 0.303711 0
+26 17 5 1 0.303711 0
+26 17 6 1 0.303711 0
+26 17 7 1 0.303711 0
+26 17 8 1 0.303955 0
+26 17 9 1 0.304199 0
+26 17 10 1 0.304443 0
+26 17 11 1 0.305176 0
+26 17 12 1 0.306152 0
+26 17 13 1 0.308105 0
+26 17 14 1 0.310791 0
+26 17 15 1 0.311523 0
+26 17 16 1 0.307861 0
+26 17 17 1 0.30249 0.234009
+26 17 18 1 0.297119 0.388672
+26 17 19 1 0.297607 0.517578
+26 17 20 1 0.302979 0.630859
+26 17 21 1 0.327148 0.736816
+26 17 22 1 0.370117 0.831543
+26 17 23 1 0.408936 0.908203
+26 17 24 1 0.430908 0.969238
+26 17 25 1 0.435547 1
+26 17 26 1 0.431152 1
+26 17 27 1 0.423828 1
+26 17 28 1 0.413086 1
+26 17 29 1 0.399902 1
+26 17 30 0.937012 0.385742 1
+26 17 31 0.842773 0.371094 1
+26 18 0 1 0.425537 0
+26 18 1 1 0.425537 0
+26 18 2 1 0.425537 0
+26 18 3 1 0.425537 0
+26 18 4 1 0.425537 0
+26 18 5 1 0.425537 0
+26 18 6 1 0.425537 0
+26 18 7 1 0.425537 0
+26 18 8 1 0.425781 0
+26 18 9 1 0.425781 0
+26 18 10 1 0.426025 0
+26 18 11 1 0.426514 0
+26 18 12 1 0.427246 0
+26 18 13 1 0.428467 0
+26 18 14 1 0.430176 0
+26 18 15 1 0.430664 0
+26 18 16 1 0.429443 0
+26 18 17 1 0.426758 0.236328
+26 18 18 1 0.423096 0.385742
+26 18 19 1 0.419922 0.510742
+26 18 20 1 0.423584 0.625
+26 18 21 1 0.430664 0.728516
+26 18 22 1 0.456299 0.824219
+26 18 23 1 0.485352 0.90332
+26 18 24 1 0.502441 0.965332
+26 18 25 1 0.504395 1
+26 18 26 1 0.496582 1
+26 18 27 1 0.485352 1
+26 18 28 1 0.470459 1
+26 18 29 1 0.452393 1
+26 18 30 0.92627 0.43335 1
+26 18 31 0.832031 0.413818 1
+26 19 0 1 0.532227 0
+26 19 1 1 0.532227 0
+26 19 2 1 0.532227 0
+26 19 3 1 0.532227 0
+26 19 4 1 0.532227 0
+26 19 5 1 0.532227 0
+26 19 6 1 0.532227 0
+26 19 7 1 0.532227 0
+26 19 8 1 0.532227 0
+26 19 9 1 0.532227 0
+26 19 10 1 0.532227 0
+26 19 11 1 0.532715 0
+26 19 12 1 0.533203 0
+26 19 13 1 0.53418 0
+26 19 14 1 0.535645 0
+26 19 15 1 0.536621 0
+26 19 16 1 0.536621 0
+26 19 17 1 0.536133 0.24646
+26 19 18 1 0.533691 0.387939
+26 19 19 1 0.529785 0.506836
+26 19 20 1 0.527344 0.615723
+26 19 21 1 0.528809 0.71875
+26 19 22 1 0.540527 0.813965
+26 19 23 1 0.561035 0.895508
+26 19 24 1 0.575195 0.959473
+26 19 25 1 0.574707 1
+26 19 26 1 0.564453 1
+26 19 27 1 0.549805 1
+26 19 28 1 0.530273 1
+26 19 29 1 0.507812 1
+26 19 30 0.912109 0.483887 1
+26 19 31 0.818848 0.459961 1
+26 20 0 1 0.62793 0
+26 20 1 1 0.62793 0
+26 20 2 1 0.62793 0
+26 20 3 1 0.62793 0
+26 20 4 1 0.62793 0
+26 20 5 1 0.62793 0
+26 20 6 1 0.62793 0
+26 20 7 1 0.62793 0
+26 20 8 1 0.62793 0
+26 20 9 1 0.628418 0
+26 20 10 1 0.628418 0
+26 20 11 1 0.628418 0
+26 20 12 1 0.628906 0
+26 20 13 1 0.629883 0
+26 20 14 1 0.630859 0
+26 20 15 1 0.632324 0
+26 20 16 1 0.633301 0.00485611
+26 20 17 1 0.633789 0.262451
+26 20 18 1 0.632812 0.395264
+26 20 19 1 0.629883 0.507812
+26 20 20 1 0.624512 0.609863
+26 20 21 1 0.621094 0.709473
+26 20 22 1 0.62207 0.801758
+26 20 23 1 0.634277 0.884766
+26 20 24 1 0.645508 0.95166
+26 20 25 1 0.644043 1
+26 20 26 1 0.631348 1
+26 20 27 1 0.613281 1
+26 20 28 1 0.590332 1
+26 20 29 0.984863 0.563477 1
+26 20 30 0.89502 0.535156 1
+26 20 31 0.802246 0.507324 1
+26 21 0 1 0.716797 0
+26 21 1 1 0.716797 0
+26 21 2 1 0.716797 0
+26 21 3 1 0.716797 0
+26 21 4 1 0.716797 0
+26 21 5 1 0.716797 0
+26 21 6 1 0.716797 0
+26 21 7 1 0.716797 0
+26 21 8 1 0.716797 0
+26 21 9 1 0.716797 0
+26 21 10 1 0.716797 0
+26 21 11 1 0.717285 0
+26 21 12 1 0.717285 0
+26 21 13 1 0.717773 0
+26 21 14 1 0.71875 0
+26 21 15 1 0.720215 0
+26 21 16 1 0.722168 0.0786133
+26 21 17 1 0.723633 0.278564
+26 21 18 1 0.724121 0.405029
+26 21 19 1 0.722168 0.513184
+26 21 20 1 0.716797 0.609375
+26 21 21 1 0.709473 0.700684
+26 21 22 1 0.705078 0.790039
+26 21 23 1 0.705566 0.870605
+26 21 24 1 0.713379 0.940918
+26 21 25 1 0.711426 1
+26 21 26 1 0.697266 1
+26 21 27 1 0.676758 1
+26 21 28 1 0.649902 1
+26 21 29 0.962891 0.619141 1
+26 21 30 0.874023 0.587402 1
+26 21 31 0.782227 0.555176 1
+26 22 0 1 0.797363 0
+26 22 1 1 0.797363 0
+26 22 2 1 0.797363 0
+26 22 3 1 0.797363 0
+26 22 4 1 0.797363 0
+26 22 5 1 0.797363 0
+26 22 6 1 0.797363 0
+26 22 7 1 0.797363 0
+26 22 8 1 0.797363 0
+26 22 9 1 0.797363 0
+26 22 10 1 0.797363 0
+26 22 11 1 0.797363 0
+26 22 12 1 0.797852 0
+26 22 13 1 0.79834 0
+26 22 14 1 0.798828 0
+26 22 15 1 0.799805 0
+26 22 16 1 0.802246 0.102844
+26 22 17 1 0.804688 0.287598
+26 22 18 1 0.806152 0.411621
+26 22 19 1 0.805176 0.518066
+26 22 20 1 0.80127 0.611816
+26 22 21 1 0.793945 0.698242
+26 22 22 1 0.783691 0.77832
+26 22 23 1 0.776855 0.85498
+26 22 24 1 0.777344 0.92627
+26 22 25 1 0.775879 0.989258
+26 22 26 1 0.760254 1
+26 22 27 1 0.737793 1
+26 22 28 1 0.70752 1
+26 22 29 0.936523 0.67334 1
+26 22 30 0.849121 0.638184 1
+26 22 31 0.758789 0.602539 1
+26 23 0 1 0.867188 0
+26 23 1 1 0.867188 0
+26 23 2 1 0.867188 0
+26 23 3 1 0.867188 0
+26 23 4 1 0.867188 0
+26 23 5 1 0.867188 0
+26 23 6 1 0.867188 0
+26 23 7 1 0.867188 0
+26 23 8 1 0.867188 0
+26 23 9 1 0.867188 0
+26 23 10 1 0.867188 0
+26 23 11 1 0.867676 0
+26 23 12 1 0.867676 0
+26 23 13 1 0.868164 0
+26 23 14 1 0.868652 0
+26 23 15 1 0.869141 0
+26 23 16 1 0.87207 0.0894165
+26 23 17 1 0.875 0.283691
+26 23 18 1 0.876953 0.409912
+26 23 19 1 0.877441 0.517578
+26 23 20 1 0.874512 0.611816
+26 23 21 1 0.868164 0.697266
+26 23 22 1 0.85791 0.773926
+26 23 23 1 0.845215 0.842285
+26 23 24 1 0.836426 0.90918
+26 23 25 1 0.834473 0.976074
+26 23 26 1 0.818848 1
+26 23 27 1 0.793945 1
+26 23 28 0.988281 0.76123 1
+26 23 29 0.907227 0.724121 1
+26 23 30 0.821777 0.686035 1
+26 23 31 0.73291 0.648438 1
+26 24 0 1 0.928223 0
+26 24 1 1 0.928223 0
+26 24 2 1 0.928223 0
+26 24 3 1 0.928223 0
+26 24 4 1 0.928223 0
+26 24 5 1 0.928223 0
+26 24 6 1 0.928223 0
+26 24 7 1 0.928223 0
+26 24 8 1 0.928223 0
+26 24 9 1 0.928223 0
+26 24 10 1 0.928223 0
+26 24 11 1 0.928223 0
+26 24 12 1 0.928223 0
+26 24 13 1 0.928711 0
+26 24 14 1 0.929199 0
+26 24 15 1 0.929688 0
+26 24 16 1 0.932617 0.0110931
+26 24 17 1 0.936035 0.265381
+26 24 18 1 0.938477 0.397705
+26 24 19 1 0.939941 0.508301
+26 24 20 1 0.937988 0.60498
+26 24 21 1 0.933105 0.692383
+26 24 22 1 0.923828 0.77002
+26 24 23 1 0.911133 0.835938
+26 24 24 1 0.895996 0.894531
+26 24 25 1 0.886719 0.959961
+26 24 26 1 0.872559 1
+26 24 27 1 0.845703 1
+26 24 28 0.953125 0.810059 1
+26 24 29 0.874512 0.771484 1
+26 24 30 0.791504 0.731934 1
+26 24 31 0.70459 0.692383 1
+26 25 0 1 0.984863 0
+26 25 1 1 0.984863 0
+26 25 2 1 0.984863 0
+26 25 3 1 0.984863 0
+26 25 4 1 0.984863 0
+26 25 5 1 0.984863 0
+26 25 6 1 0.984863 0
+26 25 7 1 0.984863 0
+26 25 8 1 0.984863 0
+26 25 9 1 0.984863 0
+26 25 10 1 0.984863 0
+26 25 11 1 0.984863 0
+26 25 12 1 0.984863 0
+26 25 13 1 0.985352 0
+26 25 14 1 0.985352 0
+26 25 15 1 0.98584 0
+26 25 16 1 0.98877 0
+26 25 17 1 0.992676 0.228027
+26 25 18 1 0.996094 0.372803
+26 25 19 1 0.998047 0.488037
+26 25 20 1 0.997559 0.587891
+26 25 21 1 0.994141 0.678223
+26 25 22 1 0.986816 0.758789
+26 25 23 1 0.975586 0.827148
+26 25 24 1 0.960449 0.885742
+26 25 25 1 0.941406 0.940918
+26 25 26 1 0.92627 1
+26 25 27 0.979004 0.896973 1
+26 25 28 0.910156 0.860352 1
+26 25 29 0.835449 0.821289 1
+26 25 30 0.755859 0.78125 1
+26 25 31 0.67041 0.740723 1
+26 26 0 1 1 0
+26 26 1 1 1 0
+26 26 2 1 1 0
+26 26 3 1 1 0
+26 26 4 1 1 0
+26 26 5 1 1 0
+26 26 6 1 1 0
+26 26 7 1 1 0
+26 26 8 1 1 0
+26 26 9 1 1 0
+26 26 10 1 1 0
+26 26 11 1 1 0
+26 26 12 1 1 0
+26 26 13 1 1 0
+26 26 14 1 1 0
+26 26 15 1 1 0
+26 26 16 1 1 0
+26 26 17 1 1 0.165039
+26 26 18 1 1 0.334473
+26 26 19 1 1 0.456299
+26 26 20 1 1 0.55957
+26 26 21 1 1 0.651855
+26 26 22 1 1 0.734863
+26 26 23 1 1 0.806152
+26 26 24 1 1 0.868164
+26 26 25 1 1 0.92627
+26 26 26 0.980469 0.980469 0.980469
+26 26 27 0.924316 0.949707 1
+26 26 28 0.861328 0.915039 1
+26 26 29 0.790039 0.876465 1
+26 26 30 0.712402 0.835449 1
+26 26 31 0.626953 0.792969 1
+26 27 0 1 1 0
+26 27 1 1 1 0
+26 27 2 1 1 0
+26 27 3 1 1 0
+26 27 4 1 1 0
+26 27 5 1 1 0
+26 27 6 1 1 0
+26 27 7 1 1 0
+26 27 8 1 1 0
+26 27 9 1 1 0
+26 27 10 1 1 0
+26 27 11 1 1 0
+26 27 12 1 1 0
+26 27 13 1 1 0
+26 27 14 1 1 0
+26 27 15 1 1 0
+26 27 16 1 1 0
+26 27 17 1 1 0.0314026
+26 27 18 1 1 0.28418
+26 27 19 1 1 0.415527
+26 27 20 1 1 0.521973
+26 27 21 1 1 0.616699
+26 27 22 1 1 0.700684
+26 27 23 1 1 0.773438
+26 27 24 0.984863 1 0.836426
+26 27 25 0.950684 1 0.896484
+26 27 26 0.910645 1 0.95459
+26 27 27 0.86377 1 1
+26 27 28 0.804688 0.977539 1
+26 27 29 0.734375 0.937012 1
+26 27 30 0.656738 0.894043 1
+26 27 31 0.569824 0.848633 1
+26 28 0 0.987793 1 0
+26 28 1 0.987793 1 0
+26 28 2 0.987793 1 0
+26 28 3 0.987793 1 0
+26 28 4 0.987793 1 0
+26 28 5 0.987793 1 0
+26 28 6 0.987793 1 0
+26 28 7 0.987793 1 0
+26 28 8 0.987793 1 0
+26 28 9 0.987793 1 0
+26 28 10 0.987793 1 0
+26 28 11 0.987793 1 0
+26 28 12 0.987305 1 0
+26 28 13 0.987305 1 0
+26 28 14 0.987305 1 0
+26 28 15 0.986816 1 0
+26 28 16 0.986328 1 0
+26 28 17 0.984375 1 0
+26 28 18 0.980957 1 0.218628
+26 28 19 0.975098 1 0.366699
+26 28 20 0.966309 1 0.478027
+26 28 21 0.953125 1 0.574219
+26 28 22 0.936035 1 0.659668
+26 28 23 0.915039 1 0.733398
+26 28 24 0.890625 1 0.79834
+26 28 25 0.860352 1 0.86084
+26 28 26 0.82373 1 0.922852
+26 28 27 0.779297 1 0.980957
+26 28 28 0.725586 1 1
+26 28 29 0.659668 0.998047 1
+26 28 30 0.582031 0.955078 1
+26 28 31 0.491455 0.908203 1
+26 29 0 0.870605 1 0
+26 29 1 0.870605 1 0
+26 29 2 0.870605 1 0
+26 29 3 0.870605 1 0
+26 29 4 0.870605 1 0
+26 29 5 0.870605 1 0
+26 29 6 0.870605 1 0
+26 29 7 0.870605 1 0
+26 29 8 0.870605 1 0
+26 29 9 0.870605 1 0
+26 29 10 0.870605 1 0
+26 29 11 0.870605 1 0
+26 29 12 0.870605 1 0
+26 29 13 0.870605 1 0
+26 29 14 0.870605 1 0
+26 29 15 0.870117 1 0
+26 29 16 0.870117 1 0
+26 29 17 0.867676 1 0
+26 29 18 0.863281 1 0.118958
+26 29 19 0.856934 1 0.30835
+26 29 20 0.847656 1 0.427246
+26 29 21 0.835449 1 0.526367
+26 29 22 0.818848 1 0.613281
+26 29 23 0.799805 1 0.688477
+26 29 24 0.777344 1 0.754883
+26 29 25 0.749023 1 0.820312
+26 29 26 0.714355 1 0.884277
+26 29 27 0.671387 1 0.945312
+26 29 28 0.618164 1 1
+26 29 29 0.553223 1 1
+26 29 30 0.4729 1 1
+26 29 31 0.37085 0.96875 1
+26 30 0 0.734863 1 0
+26 30 1 0.734863 1 0
+26 30 2 0.734863 1 0
+26 30 3 0.734863 1 0
+26 30 4 0.734863 1 0
+26 30 5 0.734863 1 0
+26 30 6 0.734863 1 0
+26 30 7 0.734863 1 0
+26 30 8 0.734863 1 0
+26 30 9 0.734863 1 0
+26 30 10 0.734863 1 0
+26 30 11 0.734863 1 0
+26 30 12 0.734863 1 0
+26 30 13 0.734863 1 0
+26 30 14 0.734863 1 0
+26 30 15 0.734863 1 0
+26 30 16 0.734375 1 0
+26 30 17 0.731934 1 0
+26 30 18 0.726562 1 0
+26 30 19 0.719238 1 0.236572
+26 30 20 0.708984 1 0.369873
+26 30 21 0.695801 1 0.473633
+26 30 22 0.679199 1 0.5625
+26 30 23 0.659668 1 0.63916
+26 30 24 0.636719 1 0.707031
+26 30 25 0.608398 1 0.773926
+26 30 26 0.572754 1 0.839844
+26 30 27 0.526855 1 0.903809
+26 30 28 0.468994 1 0.963867
+26 30 29 0.393066 1 1
+26 30 30 0.287842 1 1
+26 30 31 0.0737305 1 1
+26 31 0 0.567871 1 0
+26 31 1 0.567871 1 0
+26 31 2 0.567871 1 0
+26 31 3 0.567871 1 0
+26 31 4 0.567871 1 0
+26 31 5 0.567871 1 0
+26 31 6 0.567871 1 0
+26 31 7 0.567871 1 0
+26 31 8 0.567871 1 0
+26 31 9 0.567871 1 0
+26 31 10 0.567871 1 0
+26 31 11 0.567871 1 0
+26 31 12 0.567871 1 0
+26 31 13 0.567871 1 0
+26 31 14 0.567871 1 0
+26 31 15 0.567871 1 0
+26 31 16 0.567871 1 0
+26 31 17 0.565918 1 0
+26 31 18 0.558105 1 0
+26 31 19 0.547852 1 0.133423
+26 31 20 0.534668 1 0.303711
+26 31 21 0.517578 1 0.415039
+26 31 22 0.49707 1 0.506836
+26 31 23 0.4729 1 0.584961
+26 31 24 0.444824 1 0.653809
+26 31 25 0.408447 1 0.722168
+26 31 26 0.359863 1 0.790039
+26 31 27 0.291992 1 0.855957
+26 31 28 0.182007 1 0.919434
+26 31 29 0 1 0.978516
+26 31 30 0 1 1
+26 31 31 0 1 1
+27 0 0 1 0 0
+27 0 1 1 0 0
+27 0 2 1 0 0
+27 0 3 1 0 0
+27 0 4 1 0 0
+27 0 5 1 0 0
+27 0 6 1 0 0
+27 0 7 1 0 0
+27 0 8 1 0 0
+27 0 9 1 0 0
+27 0 10 1 0 0
+27 0 11 1 0 0
+27 0 12 1 0 0
+27 0 13 1 0 0
+27 0 14 1 0 0
+27 0 15 1 0 0
+27 0 16 1 0 0
+27 0 17 1 0 0.175415
+27 0 18 1 0 0.352295
+27 0 19 1 0 0.481201
+27 0 20 1 0 0.594727
+27 0 21 1 0 0.700684
+27 0 22 1 0 0.794434
+27 0 23 1 0 0.871582
+27 0 24 1 0 0.935059
+27 0 25 1 0.12262 0.991211
+27 0 26 1 0.165283 1
+27 0 27 1 0.185669 1
+27 0 28 1 0.202148 1
+27 0 29 1 0.215332 1
+27 0 30 1 0.225342 1
+27 0 31 0.967285 0.23291 1
+27 1 0 1 0 0
+27 1 1 1 0 0
+27 1 2 1 0 0
+27 1 3 1 0 0
+27 1 4 1 0 0
+27 1 5 1 0 0
+27 1 6 1 0 0
+27 1 7 1 0 0
+27 1 8 1 0 0
+27 1 9 1 0 0
+27 1 10 1 0 0
+27 1 11 1 0 0
+27 1 12 1 0 0
+27 1 13 1 0 0
+27 1 14 1 0 0
+27 1 15 1 0 0
+27 1 16 1 0 0
+27 1 17 1 0 0.175415
+27 1 18 1 0 0.352295
+27 1 19 1 0 0.481201
+27 1 20 1 0 0.594727
+27 1 21 1 0 0.700684
+27 1 22 1 0 0.794434
+27 1 23 1 0 0.871582
+27 1 24 1 0 0.935059
+27 1 25 1 0.12262 0.991211
+27 1 26 1 0.165405 1
+27 1 27 1 0.185669 1
+27 1 28 1 0.202148 1
+27 1 29 1 0.215332 1
+27 1 30 1 0.225342 1
+27 1 31 0.967285 0.23291 1
+27 2 0 1 0 0
+27 2 1 1 0 0
+27 2 2 1 0 0
+27 2 3 1 0 0
+27 2 4 1 0 0
+27 2 5 1 0 0
+27 2 6 1 0 0
+27 2 7 1 0 0
+27 2 8 1 0 0
+27 2 9 1 0 0
+27 2 10 1 0 0
+27 2 11 1 0 0
+27 2 12 1 0 0
+27 2 13 1 0 0
+27 2 14 1 0 0
+27 2 15 1 0 0
+27 2 16 1 0 0
+27 2 17 1 0 0.175415
+27 2 18 1 0 0.352295
+27 2 19 1 0 0.481201
+27 2 20 1 0 0.594727
+27 2 21 1 0 0.700684
+27 2 22 1 0 0.794434
+27 2 23 1 0 0.871582
+27 2 24 1 0 0.935059
+27 2 25 1 0.122681 0.991211
+27 2 26 1 0.165405 1
+27 2 27 1 0.185669 1
+27 2 28 1 0.202148 1
+27 2 29 1 0.215332 1
+27 2 30 1 0.225464 1
+27 2 31 0.967285 0.23291 1
+27 3 0 1 0 0
+27 3 1 1 0 0
+27 3 2 1 0 0
+27 3 3 1 0 0
+27 3 4 1 0 0
+27 3 5 1 0 0
+27 3 6 1 0 0
+27 3 7 1 0 0
+27 3 8 1 0 0
+27 3 9 1 0 0
+27 3 10 1 0 0
+27 3 11 1 0 0
+27 3 12 1 0 0
+27 3 13 1 0 0
+27 3 14 1 0 0
+27 3 15 1 0 0
+27 3 16 1 0 0
+27 3 17 1 0 0.175415
+27 3 18 1 0 0.352295
+27 3 19 1 0 0.481201
+27 3 20 1 0 0.594727
+27 3 21 1 0 0.700684
+27 3 22 1 0 0.794434
+27 3 23 1 0 0.871582
+27 3 24 1 0 0.935059
+27 3 25 1 0.122742 0.991211
+27 3 26 1 0.165405 1
+27 3 27 1 0.185669 1
+27 3 28 1 0.202271 1
+27 3 29 1 0.215332 1
+27 3 30 1 0.225464 1
+27 3 31 0.967285 0.23291 1
+27 4 0 1 0 0
+27 4 1 1 0 0
+27 4 2 1 0 0
+27 4 3 1 0 0
+27 4 4 1 0 0
+27 4 5 1 0 0
+27 4 6 1 0 0
+27 4 7 1 0 0
+27 4 8 1 0 0
+27 4 9 1 0 0
+27 4 10 1 0 0
+27 4 11 1 0 0
+27 4 12 1 0 0
+27 4 13 1 0 0
+27 4 14 1 0 0
+27 4 15 1 0 0
+27 4 16 1 0 0
+27 4 17 1 0 0.175415
+27 4 18 1 0 0.352295
+27 4 19 1 0 0.481201
+27 4 20 1 0 0.594727
+27 4 21 1 0 0.700684
+27 4 22 1 0 0.794434
+27 4 23 1 0 0.871582
+27 4 24 1 0 0.935059
+27 4 25 1 0.122986 0.991211
+27 4 26 1 0.165649 1
+27 4 27 1 0.185791 1
+27 4 28 1 0.202393 1
+27 4 29 1 0.215454 1
+27 4 30 1 0.225464 1
+27 4 31 0.967285 0.233032 1
+27 5 0 1 0 0
+27 5 1 1 0 0
+27 5 2 1 0 0
+27 5 3 1 0 0
+27 5 4 1 0 0
+27 5 5 1 0 0
+27 5 6 1 0 0
+27 5 7 1 0 0
+27 5 8 1 0 0
+27 5 9 1 0 0
+27 5 10 1 0 0
+27 5 11 1 0 0
+27 5 12 1 0 0
+27 5 13 1 0 0
+27 5 14 1 0 0
+27 5 15 1 0 0
+27 5 16 1 0 0
+27 5 17 1 0 0.175415
+27 5 18 1 0 0.352295
+27 5 19 1 0 0.481201
+27 5 20 1 0 0.594727
+27 5 21 1 0 0.700684
+27 5 22 1 0 0.794434
+27 5 23 1 0 0.871582
+27 5 24 1 0 0.935059
+27 5 25 1 0.123291 0.991211
+27 5 26 1 0.165894 1
+27 5 27 1 0.186035 1
+27 5 28 1 0.202515 1
+27 5 29 1 0.215576 1
+27 5 30 1 0.225586 1
+27 5 31 0.967285 0.233032 1
+27 6 0 1 0 0
+27 6 1 1 0 0
+27 6 2 1 0 0
+27 6 3 1 0 0
+27 6 4 1 0 0
+27 6 5 1 0 0
+27 6 6 1 0 0
+27 6 7 1 0 0
+27 6 8 1 0 0
+27 6 9 1 0 0
+27 6 10 1 0 0
+27 6 11 1 0 0
+27 6 12 1 0 0
+27 6 13 1 0 0
+27 6 14 1 0 0
+27 6 15 1 0 0
+27 6 16 1 0 0
+27 6 17 1 0 0.175415
+27 6 18 1 0 0.352295
+27 6 19 1 0 0.481201
+27 6 20 1 0 0.594727
+27 6 21 1 0 0.700684
+27 6 22 1 0 0.794434
+27 6 23 1 0 0.871582
+27 6 24 1 0 0.935059
+27 6 25 1 0.123962 0.991211
+27 6 26 1 0.166382 1
+27 6 27 1 0.186401 1
+27 6 28 1 0.202881 1
+27 6 29 1 0.215942 1
+27 6 30 1 0.22583 1
+27 6 31 0.967285 0.233276 1
+27 7 0 1 0 0
+27 7 1 1 0 0
+27 7 2 1 0 0
+27 7 3 1 0 0
+27 7 4 1 0 0
+27 7 5 1 0 0
+27 7 6 1 0 0
+27 7 7 1 0 0
+27 7 8 1 0 0
+27 7 9 1 0 0
+27 7 10 1 0 0
+27 7 11 1 0 0
+27 7 12 1 0 0
+27 7 13 1 0 0
+27 7 14 1 0 0
+27 7 15 1 0 0
+27 7 16 1 0 0
+27 7 17 1 0 0.175293
+27 7 18 1 0 0.352295
+27 7 19 1 0 0.481201
+27 7 20 1 0 0.594727
+27 7 21 1 0 0.700684
+27 7 22 1 0 0.794434
+27 7 23 1 0 0.871582
+27 7 24 1 0 0.935059
+27 7 25 1 0.125244 0.991211
+27 7 26 1 0.167236 1
+27 7 27 1 0.187134 1
+27 7 28 1 0.203491 1
+27 7 29 1 0.216431 1
+27 7 30 1 0.226318 1
+27 7 31 0.967285 0.233643 1
+27 8 0 1 0 0
+27 8 1 1 0 0
+27 8 2 1 0 0
+27 8 3 1 0 0
+27 8 4 1 0 0
+27 8 5 1 0 0
+27 8 6 1 0 0
+27 8 7 1 0 0
+27 8 8 1 0 0
+27 8 9 1 0 0
+27 8 10 1 0 0
+27 8 11 1 0 0
+27 8 12 1 0 0
+27 8 13 1 0 0
+27 8 14 1 0 0
+27 8 15 1 0 0
+27 8 16 1 0 0
+27 8 17 1 0 0.175049
+27 8 18 1 0 0.352051
+27 8 19 1 0 0.480957
+27 8 20 1 0 0.594727
+27 8 21 1 0 0.700684
+27 8 22 1 0 0.794434
+27 8 23 1 0 0.871582
+27 8 24 1 0 0.935059
+27 8 25 1 0.127808 0.991211
+27 8 26 1 0.169067 1
+27 8 27 1 0.188721 1
+27 8 28 1 0.204712 1
+27 8 29 1 0.217407 1
+27 8 30 1 0.227173 1
+27 8 31 0.967285 0.234375 1
+27 9 0 1 0 0
+27 9 1 1 0 0
+27 9 2 1 0 0
+27 9 3 1 0 0
+27 9 4 1 0 0
+27 9 5 1 0 0
+27 9 6 1 0 0
+27 9 7 1 0 0
+27 9 8 1 0 0
+27 9 9 1 0 0
+27 9 10 1 0 0
+27 9 11 1 0 0
+27 9 12 1 0 0
+27 9 13 1 0 0
+27 9 14 1 0 0
+27 9 15 1 0 0
+27 9 16 1 0 0
+27 9 17 1 0 0.174683
+27 9 18 1 0 0.351807
+27 9 19 1 0 0.480957
+27 9 20 1 0 0.594727
+27 9 21 1 0 0.700195
+27 9 22 1 0 0.793945
+27 9 23 1 0 0.871582
+27 9 24 1 0 0.935059
+27 9 25 1 0.132568 0.991211
+27 9 26 1 0.172485 1
+27 9 27 1 0.191528 1
+27 9 28 1 0.207031 1
+27 9 29 1 0.21936 1
+27 9 30 1 0.22876 1
+27 9 31 0.966797 0.235718 1
+27 10 0 1 0 0
+27 10 1 1 0 0
+27 10 2 1 0 0
+27 10 3 1 0 0
+27 10 4 1 0 0
+27 10 5 1 0 0
+27 10 6 1 0 0
+27 10 7 1 0 0
+27 10 8 1 0 0
+27 10 9 1 0 0
+27 10 10 1 0 0
+27 10 11 1 0 0
+27 10 12 1 0 0
+27 10 13 1 0 0
+27 10 14 1 0 0
+27 10 15 1 0 0
+27 10 16 1 0 0
+27 10 17 1 0 0.17395
+27 10 18 1 0 0.351318
+27 10 19 1 0 0.480713
+27 10 20 1 0 0.594238
+27 10 21 1 0 0.700195
+27 10 22 1 0 0.793945
+27 10 23 1 0 0.871582
+27 10 24 1 0 0.935059
+27 10 25 1 0.140625 0.991211
+27 10 26 1 0.178467 1
+27 10 27 1 0.196533 1
+27 10 28 1 0.211304 1
+27 10 29 1 0.2229 1
+27 10 30 1 0.231689 1
+27 10 31 0.966797 0.238159 1
+27 11 0 1 0 0
+27 11 1 1 0 0
+27 11 2 1 0 0
+27 11 3 1 0 0
+27 11 4 1 0 0
+27 11 5 1 0 0
+27 11 6 1 0 0
+27 11 7 1 0 0
+27 11 8 1 0 0
+27 11 9 1 0 0
+27 11 10 1 0 0
+27 11 11 1 0 0
+27 11 12 1 0 0
+27 11 13 1 0 0
+27 11 14 1 0 0
+27 11 15 1 0 0
+27 11 16 1 0 0
+27 11 17 1 0 0.172729
+27 11 18 1 0 0.350586
+27 11 19 1 0 0.480469
+27 11 20 1 0 0.594238
+27 11 21 1 0 0.699707
+27 11 22 1 0 0.793945
+27 11 23 1 0 0.871582
+27 11 24 1 0.0249329 0.93457
+27 11 25 1 0.153931 0.991211
+27 11 26 1 0.188477 1
+27 11 27 1 0.204956 1
+27 11 28 1 0.218384 1
+27 11 29 1 0.229004 1
+27 11 30 1 0.236816 1
+27 11 31 0.966309 0.242432 1
+27 12 0 1 0 0
+27 12 1 1 0 0
+27 12 2 1 0 0
+27 12 3 1 0 0
+27 12 4 1 0 0
+27 12 5 1 0 0
+27 12 6 1 0 0
+27 12 7 1 0 0
+27 12 8 1 0 0
+27 12 9 1 0 0
+27 12 10 1 0 0
+27 12 11 1 0 0
+27 12 12 1 0 0
+27 12 13 1 0 0
+27 12 14 1 0 0
+27 12 15 1 0 0
+27 12 16 1 0 0
+27 12 17 1 0 0.170776
+27 12 18 1 0 0.349365
+27 12 19 1 0 0.47998
+27 12 20 1 0 0.593262
+27 12 21 1 0 0.699219
+27 12 22 1 0 0.793457
+27 12 23 1 0 0.871094
+27 12 24 1 0.0794067 0.93457
+27 12 25 1 0.174194 0.991211
+27 12 26 1 0.204468 1
+27 12 27 1 0.218628 1
+27 12 28 1 0.230103 1
+27 12 29 1 0.238892 1
+27 12 30 1 0.245239 1
+27 12 31 0.965332 0.249512 1
+27 13 0 1 0 0
+27 13 1 1 0 0
+27 13 2 1 0 0
+27 13 3 1 0 0
+27 13 4 1 0 0
+27 13 5 1 0 0
+27 13 6 1 0 0
+27 13 7 1 0 0
+27 13 8 1 0 0
+27 13 9 1 0 0
+27 13 10 1 0 0
+27 13 11 1 0 0
+27 13 12 1 0 0
+27 13 13 1 0 0
+27 13 14 1 0 0
+27 13 15 1 0 0
+27 13 16 1 0 0
+27 13 17 1 0 0.167603
+27 13 18 1 0 0.347412
+27 13 19 1 0 0.479004
+27 13 20 1 0 0.592285
+27 13 21 1 0 0.698242
+27 13 22 1 0 0.79248
+27 13 23 1 0 0.870605
+27 13 24 1 0.131592 0.934082
+27 13 25 1 0.202759 0.990723
+27 13 26 1 0.227905 1
+27 13 27 1 0.239136 1
+27 13 28 1 0.247803 1
+27 13 29 1 0.25415 1
+27 13 30 1 0.258301 1
+27 13 31 0.964355 0.260742 1
+27 14 0 1 0 0
+27 14 1 1 0 0
+27 14 2 1 0 0
+27 14 3 1 0 0
+27 14 4 1 0 0
+27 14 5 1 0 0
+27 14 6 1 0 0
+27 14 7 1 0 0
+27 14 8 1 0 0
+27 14 9 1 0 0
+27 14 10 1 0 0
+27 14 11 1 0 0
+27 14 12 1 0 0
+27 14 13 1 0 0
+27 14 14 1 0 0
+27 14 15 1 0 0
+27 14 16 1 0 0
+27 14 17 1 0 0.162842
+27 14 18 1 0 0.344482
+27 14 19 1 0 0.477783
+27 14 20 1 0 0.59082
+27 14 21 1 0 0.696289
+27 14 22 1 0 0.791016
+27 14 23 1 0.0453186 0.869629
+27 14 24 1 0.18689 0.933594
+27 14 25 1 0.240845 0.990234
+27 14 26 1 0.260498 1
+27 14 27 1 0.268066 1
+27 14 28 1 0.273438 1
+27 14 29 1 0.276611 1
+27 14 30 1 0.277588 1
+27 14 31 0.962402 0.277344 1
+27 15 0 1 0 0
+27 15 1 1 0 0
+27 15 2 1 0 0
+27 15 3 1 0 0
+27 15 4 1 0 0
+27 15 5 1 0 0
+27 15 6 1 0 0
+27 15 7 1 0 0
+27 15 8 1 0 0
+27 15 9 1 0 0
+27 15 10 1 0 0
+27 15 11 1 0 0
+27 15 12 1 0 0
+27 15 13 1 0 0
+27 15 14 1 0 0
+27 15 15 1 0 0
+27 15 16 1 0 0
+27 15 17 1 0 0.156494
+27 15 18 1 0 0.340576
+27 15 19 1 0 0.476074
+27 15 20 1 0 0.587891
+27 15 21 1 0 0.693848
+27 15 22 1 0 0.789062
+27 15 23 1 0.169556 0.868164
+27 15 24 1 0.247437 0.932617
+27 15 25 1 0.28833 0.989746
+27 15 26 1 0.302734 1
+27 15 27 1 0.306396 1
+27 15 28 1 0.307861 1
+27 15 29 1 0.307129 1
+27 15 30 1 0.304688 1
+27 15 31 0.959473 0.300781 1
+27 16 0 1 0 0
+27 16 1 1 0 0
+27 16 2 1 0 0
+27 16 3 1 0 0
+27 16 4 1 0 0
+27 16 5 1 0 0
+27 16 6 1 0 0
+27 16 7 1 0 0
+27 16 8 1 0 0
+27 16 9 1 0 0
+27 16 10 1 0 0
+27 16 11 1 0 0
+27 16 12 1 0.000988007 0
+27 16 13 1 0.0115585 0
+27 16 14 1 0.0283813 0
+27 16 15 1 0.0403748 0
+27 16 16 1 0.0300293 0
+27 16 17 1 0 0.149292
+27 16 18 1 0 0.335449
+27 16 19 1 0 0.470703
+27 16 20 1 0 0.584473
+27 16 21 1 0.0744019 0.689941
+27 16 22 1 0.182007 0.785645
+27 16 23 1 0.260742 0.865723
+27 16 24 1 0.313965 0.931152
+27 16 25 1 0.344971 0.98877
+27 16 26 1 0.354736 1
+27 16 27 1 0.354492 1
+27 16 28 1 0.351807 1
+27 16 29 1 0.34668 1
+27 16 30 1 0.339844 1
+27 16 31 0.95459 0.331787 1
+27 17 0 1 0.249268 0
+27 17 1 1 0.249268 0
+27 17 2 1 0.249268 0
+27 17 3 1 0.249268 0
+27 17 4 1 0.24939 0
+27 17 5 1 0.24939 0
+27 17 6 1 0.24939 0
+27 17 7 1 0.24939 0
+27 17 8 1 0.249512 0
+27 17 9 1 0.249756 0
+27 17 10 1 0.250244 0
+27 17 11 1 0.250977 0
+27 17 12 1 0.252197 0
+27 17 13 1 0.25415 0
+27 17 14 1 0.257324 0
+27 17 15 1 0.259766 0
+27 17 16 1 0.25708 0
+27 17 17 1 0.250732 0.144165
+27 17 18 1 0.243408 0.330566
+27 17 19 1 0.240234 0.464355
+27 17 20 1 0.246094 0.580566
+27 17 21 1 0.258789 0.68457
+27 17 22 1 0.29834 0.780762
+27 17 23 1 0.345947 0.862305
+27 17 24 1 0.384766 0.928223
+27 17 25 1 0.408691 0.986816
+27 17 26 1 0.414307 1
+27 17 27 1 0.4104 1
+27 17 28 1 0.403564 1
+27 17 29 1 0.394043 1
+27 17 30 1 0.382568 1
+27 17 31 0.948242 0.370117 1
+27 18 0 1 0.378906 0
+27 18 1 1 0.378906 0
+27 18 2 1 0.378906 0
+27 18 3 1 0.378906 0
+27 18 4 1 0.378906 0
+27 18 5 1 0.378906 0
+27 18 6 1 0.37915 0
+27 18 7 1 0.37915 0
+27 18 8 1 0.37915 0
+27 18 9 1 0.379395 0
+27 18 10 1 0.379639 0
+27 18 11 1 0.379883 0
+27 18 12 1 0.380615 0
+27 18 13 1 0.381836 0
+27 18 14 1 0.383789 0
+27 18 15 1 0.385498 0
+27 18 16 1 0.384277 0
+27 18 17 1 0.381348 0.145752
+27 18 18 1 0.377441 0.327637
+27 18 19 1 0.373779 0.458496
+27 18 20 1 0.375488 0.574219
+27 18 21 1 0.379639 0.678223
+27 18 22 1 0.397949 0.773926
+27 18 23 1 0.428955 0.856445
+27 18 24 1 0.458008 0.924316
+27 18 25 1 0.476562 0.983887
+27 18 26 1 0.47876 1
+27 18 27 1 0.471436 1
+27 18 28 1 0.460693 1
+27 18 29 1 0.446777 1
+27 18 30 1 0.430664 1
+27 18 31 0.939453 0.413574 1
+27 19 0 1 0.486816 0
+27 19 1 1 0.486816 0
+27 19 2 1 0.486816 0
+27 19 3 1 0.486816 0
+27 19 4 1 0.486816 0
+27 19 5 1 0.486816 0
+27 19 6 1 0.486816 0
+27 19 7 1 0.486816 0
+27 19 8 1 0.486816 0
+27 19 9 1 0.486816 0
+27 19 10 1 0.487061 0
+27 19 11 1 0.487305 0
+27 19 12 1 0.488037 0
+27 19 13 1 0.48877 0
+27 19 14 1 0.490234 0
+27 19 15 1 0.491699 0
+27 19 16 1 0.491699 0
+27 19 17 1 0.490967 0.157715
+27 19 18 1 0.489014 0.329346
+27 19 19 1 0.48584 0.455322
+27 19 20 1 0.483398 0.566406
+27 19 21 1 0.48584 0.671387
+27 19 22 1 0.490967 0.765137
+27 19 23 1 0.509277 0.848633
+27 19 24 1 0.530762 0.918457
+27 19 25 1 0.54541 0.979492
+27 19 26 1 0.544922 1
+27 19 27 1 0.534668 1
+27 19 28 1 0.520508 1
+27 19 29 1 0.502441 1
+27 19 30 1 0.481934 1
+27 19 31 0.928223 0.460449 1
+27 20 0 1 0.582031 0
+27 20 1 1 0.582031 0
+27 20 2 1 0.582031 0
+27 20 3 1 0.582031 0
+27 20 4 1 0.582031 0
+27 20 5 1 0.582031 0
+27 20 6 1 0.582031 0
+27 20 7 1 0.582031 0
+27 20 8 1 0.582031 0
+27 20 9 1 0.582031 0
+27 20 10 1 0.582031 0
+27 20 11 1 0.58252 0
+27 20 12 1 0.583008 0
+27 20 13 1 0.583496 0
+27 20 14 1 0.584473 0
+27 20 15 1 0.585938 0
+27 20 16 1 0.587402 0
+27 20 17 1 0.587891 0.178345
+27 20 18 1 0.587402 0.336426
+27 20 19 1 0.585449 0.456299
+27 20 20 1 0.581543 0.562012
+27 20 21 1 0.579102 0.662109
+27 20 22 1 0.579102 0.755371
+27 20 23 1 0.586426 0.838379
+27 20 24 1 0.601074 0.910156
+27 20 25 1 0.612793 0.973633
+27 20 26 1 0.610352 1
+27 20 27 1 0.597656 1
+27 20 28 1 0.580078 1
+27 20 29 1 0.558594 1
+27 20 30 1 0.53418 1
+27 20 31 0.914551 0.508301 1
+27 21 0 1 0.669434 0
+27 21 1 1 0.669434 0
+27 21 2 1 0.669434 0
+27 21 3 1 0.669434 0
+27 21 4 1 0.669434 0
+27 21 5 1 0.669434 0
+27 21 6 1 0.669434 0
+27 21 7 1 0.669434 0
+27 21 8 1 0.669434 0
+27 21 9 1 0.669434 0
+27 21 10 1 0.669434 0
+27 21 11 1 0.669922 0
+27 21 12 1 0.669922 0
+27 21 13 1 0.67041 0
+27 21 14 1 0.671387 0
+27 21 15 1 0.672852 0
+27 21 16 1 0.674805 0
+27 21 17 1 0.67627 0.201782
+27 21 18 1 0.677246 0.347168
+27 21 19 1 0.67627 0.461182
+27 21 20 1 0.67334 0.561035
+27 21 21 1 0.667969 0.655273
+27 21 22 1 0.664062 0.745117
+27 21 23 1 0.663086 0.826172
+27 21 24 1 0.669922 0.899414
+27 21 25 1 0.678223 0.965332
+27 21 26 1 0.675293 1
+27 21 27 1 0.660156 1
+27 21 28 1 0.640137 1
+27 21 29 1 0.614746 1
+27 21 30 0.987793 0.586426 1
+27 21 31 0.897461 0.556641 1
+27 22 0 1 0.748535 0
+27 22 1 1 0.748535 0
+27 22 2 1 0.748535 0
+27 22 3 1 0.748535 0
+27 22 4 1 0.748535 0
+27 22 5 1 0.748535 0
+27 22 6 1 0.749023 0
+27 22 7 1 0.749023 0
+27 22 8 1 0.749023 0
+27 22 9 1 0.749023 0
+27 22 10 1 0.749023 0
+27 22 11 1 0.749023 0
+27 22 12 1 0.749512 0
+27 22 13 1 0.75 0
+27 22 14 1 0.750488 0
+27 22 15 1 0.751465 0
+27 22 16 1 0.753906 0
+27 22 17 1 0.756348 0.220337
+27 22 18 1 0.758301 0.357422
+27 22 19 1 0.758301 0.467529
+27 22 20 1 0.756348 0.563965
+27 22 21 1 0.751465 0.652832
+27 22 22 1 0.744141 0.73584
+27 22 23 1 0.73877 0.814453
+27 22 24 1 0.736328 0.885742
+27 22 25 1 0.740723 0.954102
+27 22 26 1 0.737305 1
+27 22 27 1 0.720703 1
+27 22 28 1 0.698242 1
+27 22 29 1 0.669922 1
+27 22 30 0.966797 0.638184 1
+27 22 31 0.877441 0.60498 1
+27 23 0 1 0.818359 0
+27 23 1 1 0.818359 0
+27 23 2 1 0.818359 0
+27 23 3 1 0.818359 0
+27 23 4 1 0.818359 0
+27 23 5 1 0.818359 0
+27 23 6 1 0.818359 0
+27 23 7 1 0.818359 0
+27 23 8 1 0.818359 0
+27 23 9 1 0.818359 0
+27 23 10 1 0.818359 0
+27 23 11 1 0.818359 0
+27 23 12 1 0.818848 0
+27 23 13 1 0.818848 0
+27 23 14 1 0.819824 0
+27 23 15 1 0.820312 0
+27 23 16 1 0.822754 0
+27 23 17 1 0.825684 0.228027
+27 23 18 1 0.828613 0.362305
+27 23 19 1 0.82959 0.470947
+27 23 20 1 0.829102 0.565918
+27 23 21 1 0.824707 0.652344
+27 23 22 1 0.817383 0.731445
+27 23 23 1 0.808105 0.803223
+27 23 24 1 0.800781 0.871582
+27 23 25 1 0.797852 0.940918
+27 23 26 1 0.793945 1
+27 23 27 1 0.776855 1
+27 23 28 1 0.752441 1
+27 23 29 1 0.721191 1
+27 23 30 0.943359 0.686523 1
+27 23 31 0.855469 0.650391 1
+27 24 0 1 0.879395 0
+27 24 1 1 0.879395 0
+27 24 2 1 0.879395 0
+27 24 3 1 0.879395 0
+27 24 4 1 0.879395 0
+27 24 5 1 0.879395 0
+27 24 6 1 0.879395 0
+27 24 7 1 0.879395 0
+27 24 8 1 0.879395 0
+27 24 9 1 0.879395 0
+27 24 10 1 0.879395 0
+27 24 11 1 0.879395 0
+27 24 12 1 0.879395 0
+27 24 13 1 0.879883 0
+27 24 14 1 0.880371 0
+27 24 15 1 0.880859 0
+27 24 16 1 0.883301 0
+27 24 17 1 0.886719 0.221802
+27 24 18 1 0.890137 0.358643
+27 24 19 1 0.89209 0.468506
+27 24 20 1 0.89209 0.563965
+27 24 21 1 0.88916 0.650391
+27 24 22 1 0.882812 0.728516
+27 24 23 1 0.873535 0.796875
+27 24 24 1 0.861816 0.858887
+27 24 25 1 0.852051 0.925293
+27 24 26 1 0.84668 0.989746
+27 24 27 1 0.829102 1
+27 24 28 1 0.802734 1
+27 24 29 0.998047 0.769531 1
+27 24 30 0.916992 0.732422 1
+27 24 31 0.830566 0.694336 1
+27 25 0 1 0.9375 0
+27 25 1 1 0.9375 0
+27 25 2 1 0.9375 0
+27 25 3 1 0.9375 0
+27 25 4 1 0.9375 0
+27 25 5 1 0.9375 0
+27 25 6 1 0.9375 0
+27 25 7 1 0.9375 0
+27 25 8 1 0.9375 0
+27 25 9 1 0.9375 0
+27 25 10 1 0.9375 0
+27 25 11 1 0.9375 0
+27 25 12 1 0.9375 0
+27 25 13 1 0.9375 0
+27 25 14 1 0.937988 0
+27 25 15 1 0.938477 0
+27 25 16 1 0.94043 0
+27 25 17 1 0.944336 0.196289
+27 25 18 1 0.948242 0.343018
+27 25 19 1 0.951172 0.456299
+27 25 20 1 0.952148 0.553711
+27 25 21 1 0.950684 0.64209
+27 25 22 1 0.945312 0.72168
+27 25 23 1 0.937012 0.790039
+27 25 24 1 0.925781 0.850098
+27 25 25 1 0.910645 0.90918
+27 25 26 1 0.898926 0.973633
+27 25 27 1 0.882324 1
+27 25 28 1 0.854492 1
+27 25 29 0.963379 0.818848 1
+27 25 30 0.884766 0.780273 1
+27 25 31 0.800781 0.740234 1
+27 26 0 1 0.991699 0
+27 26 1 1 0.991699 0
+27 26 2 1 0.991699 0
+27 26 3 1 0.991699 0
+27 26 4 1 0.991699 0
+27 26 5 1 0.991699 0
+27 26 6 1 0.991699 0
+27 26 7 1 0.991699 0
+27 26 8 1 0.991699 0
+27 26 9 1 0.991699 0
+27 26 10 1 0.991699 0
+27 26 11 1 0.991699 0
+27 26 12 1 0.992188 0
+27 26 13 1 0.992188 0
+27 26 14 1 0.992188 0
+27 26 15 1 0.992676 0
+27 26 16 1 0.994141 0
+27 26 17 1 0.998535 0.140625
+27 26 18 1 1 0.312256
+27 26 19 1 1 0.431885
+27 26 20 1 1 0.532715
+27 26 21 1 1 0.623535
+27 26 22 1 1 0.705078
+27 26 23 1 0.99707 0.776367
+27 26 24 1 0.987305 0.837891
+27 26 25 1 0.973145 0.896973
+27 26 26 1 0.953613 0.953125
+27 26 27 1 0.936035 1
+27 26 28 0.989746 0.90625 1
+27 26 29 0.92041 0.870117 1
+27 26 30 0.845215 0.831055 1
+27 26 31 0.76416 0.790039 1
+27 27 0 1 1 0
+27 27 1 1 1 0
+27 27 2 1 1 0
+27 27 3 1 1 0
+27 27 4 1 1 0
+27 27 5 1 1 0
+27 27 6 1 1 0
+27 27 7 1 1 0
+27 27 8 1 1 0
+27 27 9 1 1 0
+27 27 10 1 1 0
+27 27 11 1 1 0
+27 27 12 1 1 0
+27 27 13 1 1 0
+27 27 14 1 1 0
+27 27 15 1 1 0
+27 27 16 1 1 0
+27 27 17 1 1 0
+27 27 18 1 1 0.266113
+27 27 19 1 1 0.395996
+27 27 20 1 1 0.500488
+27 27 21 1 1 0.59375
+27 27 22 1 1 0.676758
+27 27 23 1 1 0.749512
+27 27 24 1 1 0.813965
+27 27 25 1 1 0.875488
+27 27 26 1 1 0.93457
+27 27 27 0.989746 0.989746 0.989746
+27 27 28 0.934082 0.959473 1
+27 27 29 0.870117 0.924805 1
+27 27 30 0.79834 0.885742 1
+27 27 31 0.719238 0.84375 1
+27 28 0 1 1 0
+27 28 1 1 1 0
+27 28 2 1 1 0
+27 28 3 1 1 0
+27 28 4 1 1 0
+27 28 5 1 1 0
+27 28 6 1 1 0
+27 28 7 1 1 0
+27 28 8 1 1 0
+27 28 9 1 1 0
+27 28 10 1 1 0
+27 28 11 1 1 0
+27 28 12 1 1 0
+27 28 13 1 1 0
+27 28 14 1 1 0
+27 28 15 1 1 0
+27 28 16 1 1 0
+27 28 17 1 1 0
+27 28 18 1 1 0.202759
+27 28 19 1 1 0.35083
+27 28 20 1 1 0.460938
+27 28 21 1 1 0.556152
+27 28 22 1 1 0.640625
+27 28 23 1 1 0.714355
+27 28 24 1 1 0.779785
+27 28 25 0.992676 1 0.842773
+27 28 26 0.958496 1 0.903809
+27 28 27 0.917969 1 0.962402
+27 28 28 0.870117 1 1
+27 28 29 0.810059 0.983887 1
+27 28 30 0.740234 0.943848 1
+27 28 31 0.662109 0.900391 1
+27 29 0 0.992188 1 0
+27 29 1 0.992188 1 0
+27 29 2 0.992188 1 0
+27 29 3 0.992188 1 0
+27 29 4 0.992188 1 0
+27 29 5 0.992188 1 0
+27 29 6 0.992188 1 0
+27 29 7 0.992188 1 0
+27 29 8 0.992188 1 0
+27 29 9 0.992188 1 0
+27 29 10 0.992188 1 0
+27 29 11 0.992188 1 0
+27 29 12 0.992188 1 0
+27 29 13 0.992188 1 0
+27 29 14 0.991699 1 0
+27 29 15 0.991699 1 0
+27 29 16 0.991211 1 0
+27 29 17 0.990234 1 0
+27 29 18 0.987793 1 0.100159
+27 29 19 0.983887 1 0.29541
+27 29 20 0.977539 1 0.413818
+27 29 21 0.967773 1 0.511719
+27 29 22 0.955078 1 0.597656
+27 29 23 0.939453 1 0.672852
+27 29 24 0.920898 1 0.73877
+27 29 25 0.896973 1 0.803711
+27 29 26 0.866699 1 0.867188
+27 29 27 0.82959 1 0.929199
+27 29 28 0.784668 1 0.987305
+27 29 29 0.72998 1 1
+27 29 30 0.664062 1 1
+27 29 31 0.585449 0.960449 1
+27 30 0 0.875488 1 0
+27 30 1 0.875488 1 0
+27 30 2 0.875488 1 0
+27 30 3 0.875488 1 0
+27 30 4 0.875488 1 0
+27 30 5 0.875488 1 0
+27 30 6 0.875488 1 0
+27 30 7 0.875488 1 0
+27 30 8 0.875488 1 0
+27 30 9 0.875488 1 0
+27 30 10 0.875488 1 0
+27 30 11 0.875 1 0
+27 30 12 0.875 1 0
+27 30 13 0.875 1 0
+27 30 14 0.875 1 0
+27 30 15 0.875 1 0
+27 30 16 0.874512 1 0
+27 30 17 0.873535 1 0
+27 30 18 0.870117 1 0
+27 30 19 0.865723 1 0.225464
+27 30 20 0.858887 1 0.359131
+27 30 21 0.849121 1 0.462158
+27 30 22 0.836914 1 0.550293
+27 30 23 0.822266 1 0.625977
+27 30 24 0.804688 1 0.693359
+27 30 25 0.782715 1 0.759766
+27 30 26 0.754395 1 0.825684
+27 30 27 0.719238 1 0.889648
+27 30 28 0.675781 1 0.951172
+27 30 29 0.62207 1 1
+27 30 30 0.556641 1 1
+27 30 31 0.475586 1 1
+27 31 0 0.738281 1 0
+27 31 1 0.738281 1 0
+27 31 2 0.738281 1 0
+27 31 3 0.738281 1 0
+27 31 4 0.738281 1 0
+27 31 5 0.738281 1 0
+27 31 6 0.738281 1 0
+27 31 7 0.738281 1 0
+27 31 8 0.738281 1 0
+27 31 9 0.738281 1 0
+27 31 10 0.738281 1 0
+27 31 11 0.738281 1 0
+27 31 12 0.738281 1 0
+27 31 13 0.738281 1 0
+27 31 14 0.738281 1 0
+27 31 15 0.738281 1 0
+27 31 16 0.737793 1 0
+27 31 17 0.737305 1 0
+27 31 18 0.73291 1 0
+27 31 19 0.727051 1 0.120605
+27 31 20 0.719238 1 0.294922
+27 31 21 0.708984 1 0.406006
+27 31 22 0.696289 1 0.497314
+27 31 23 0.680664 1 0.574707
+27 31 24 0.663086 1 0.643066
+27 31 25 0.640625 1 0.710938
+27 31 26 0.612305 1 0.77832
+27 31 27 0.576172 1 0.844727
+27 31 28 0.530273 1 0.908691
+27 31 29 0.471436 1 0.96875
+27 31 30 0.395508 1 1
+27 31 31 0.289307 1 1
+28 0 0 1 0 0
+28 0 1 1 0 0
+28 0 2 1 0 0
+28 0 3 1 0 0
+28 0 4 1 0 0
+28 0 5 1 0 0
+28 0 6 1 0 0
+28 0 7 1 0 0
+28 0 8 1 0 0
+28 0 9 1 0 0
+28 0 10 1 0 0
+28 0 11 1 0 0
+28 0 12 1 0 0
+28 0 13 1 0 0
+28 0 14 1 0 0
+28 0 15 1 0 0
+28 0 16 1 0 0
+28 0 17 1 0 0
+28 0 18 1 0 0.28418
+28 0 19 1 0 0.425049
+28 0 20 1 0 0.537598
+28 0 21 1 0 0.642578
+28 0 22 1 0 0.738281
+28 0 23 1 0 0.819824
+28 0 24 1 0 0.887695
+28 0 25 1 0 0.949219
+28 0 26 1 0.123962 1
+28 0 27 1 0.167603 1
+28 0 28 1 0.1875 1
+28 0 29 1 0.203857 1
+28 0 30 1 0.216919 1
+28 0 31 1 0.226929 1
+28 1 0 1 0 0
+28 1 1 1 0 0
+28 1 2 1 0 0
+28 1 3 1 0 0
+28 1 4 1 0 0
+28 1 5 1 0 0
+28 1 6 1 0 0
+28 1 7 1 0 0
+28 1 8 1 0 0
+28 1 9 1 0 0
+28 1 10 1 0 0
+28 1 11 1 0 0
+28 1 12 1 0 0
+28 1 13 1 0 0
+28 1 14 1 0 0
+28 1 15 1 0 0
+28 1 16 1 0 0
+28 1 17 1 0 0
+28 1 18 1 0 0.28418
+28 1 19 1 0 0.425049
+28 1 20 1 0 0.537598
+28 1 21 1 0 0.642578
+28 1 22 1 0 0.738281
+28 1 23 1 0 0.819824
+28 1 24 1 0 0.887695
+28 1 25 1 0 0.949219
+28 1 26 1 0.124023 1
+28 1 27 1 0.167603 1
+28 1 28 1 0.1875 1
+28 1 29 1 0.203857 1
+28 1 30 1 0.216919 1
+28 1 31 1 0.226929 1
+28 2 0 1 0 0
+28 2 1 1 0 0
+28 2 2 1 0 0
+28 2 3 1 0 0
+28 2 4 1 0 0
+28 2 5 1 0 0
+28 2 6 1 0 0
+28 2 7 1 0 0
+28 2 8 1 0 0
+28 2 9 1 0 0
+28 2 10 1 0 0
+28 2 11 1 0 0
+28 2 12 1 0 0
+28 2 13 1 0 0
+28 2 14 1 0 0
+28 2 15 1 0 0
+28 2 16 1 0 0
+28 2 17 1 0 0
+28 2 18 1 0 0.28418
+28 2 19 1 0 0.425049
+28 2 20 1 0 0.537598
+28 2 21 1 0 0.642578
+28 2 22 1 0 0.738281
+28 2 23 1 0 0.819824
+28 2 24 1 0 0.887695
+28 2 25 1 0 0.949219
+28 2 26 1 0.124023 1
+28 2 27 1 0.167603 1
+28 2 28 1 0.187622 1
+28 2 29 1 0.203857 1
+28 2 30 1 0.216919 1
+28 2 31 1 0.226929 1
+28 3 0 1 0 0
+28 3 1 1 0 0
+28 3 2 1 0 0
+28 3 3 1 0 0
+28 3 4 1 0 0
+28 3 5 1 0 0
+28 3 6 1 0 0
+28 3 7 1 0 0
+28 3 8 1 0 0
+28 3 9 1 0 0
+28 3 10 1 0 0
+28 3 11 1 0 0
+28 3 12 1 0 0
+28 3 13 1 0 0
+28 3 14 1 0 0
+28 3 15 1 0 0
+28 3 16 1 0 0
+28 3 17 1 0 0
+28 3 18 1 0 0.28418
+28 3 19 1 0 0.425049
+28 3 20 1 0 0.537598
+28 3 21 1 0 0.642578
+28 3 22 1 0 0.738281
+28 3 23 1 0 0.819824
+28 3 24 1 0 0.887695
+28 3 25 1 0 0.949219
+28 3 26 1 0.124146 1
+28 3 27 1 0.167725 1
+28 3 28 1 0.187622 1
+28 3 29 1 0.203857 1
+28 3 30 1 0.216919 1
+28 3 31 1 0.226929 1
+28 4 0 1 0 0
+28 4 1 1 0 0
+28 4 2 1 0 0
+28 4 3 1 0 0
+28 4 4 1 0 0
+28 4 5 1 0 0
+28 4 6 1 0 0
+28 4 7 1 0 0
+28 4 8 1 0 0
+28 4 9 1 0 0
+28 4 10 1 0 0
+28 4 11 1 0 0
+28 4 12 1 0 0
+28 4 13 1 0 0
+28 4 14 1 0 0
+28 4 15 1 0 0
+28 4 16 1 0 0
+28 4 17 1 0 0
+28 4 18 1 0 0.28418
+28 4 19 1 0 0.425049
+28 4 20 1 0 0.537598
+28 4 21 1 0 0.642578
+28 4 22 1 0 0.738281
+28 4 23 1 0 0.819824
+28 4 24 1 0 0.887695
+28 4 25 1 0 0.949219
+28 4 26 1 0.124268 1
+28 4 27 1 0.167847 1
+28 4 28 1 0.187744 1
+28 4 29 1 0.203979 1
+28 4 30 1 0.217041 1
+28 4 31 1 0.227051 1
+28 5 0 1 0 0
+28 5 1 1 0 0
+28 5 2 1 0 0
+28 5 3 1 0 0
+28 5 4 1 0 0
+28 5 5 1 0 0
+28 5 6 1 0 0
+28 5 7 1 0 0
+28 5 8 1 0 0
+28 5 9 1 0 0
+28 5 10 1 0 0
+28 5 11 1 0 0
+28 5 12 1 0 0
+28 5 13 1 0 0
+28 5 14 1 0 0
+28 5 15 1 0 0
+28 5 16 1 0 0
+28 5 17 1 0 0
+28 5 18 1 0 0.28418
+28 5 19 1 0 0.425049
+28 5 20 1 0 0.537598
+28 5 21 1 0 0.642578
+28 5 22 1 0 0.738281
+28 5 23 1 0 0.819824
+28 5 24 1 0 0.887695
+28 5 25 1 0 0.949219
+28 5 26 1 0.124573 1
+28 5 27 1 0.168091 1
+28 5 28 1 0.187866 1
+28 5 29 1 0.204102 1
+28 5 30 1 0.217163 1
+28 5 31 1 0.227173 1
+28 6 0 1 0 0
+28 6 1 1 0 0
+28 6 2 1 0 0
+28 6 3 1 0 0
+28 6 4 1 0 0
+28 6 5 1 0 0
+28 6 6 1 0 0
+28 6 7 1 0 0
+28 6 8 1 0 0
+28 6 9 1 0 0
+28 6 10 1 0 0
+28 6 11 1 0 0
+28 6 12 1 0 0
+28 6 13 1 0 0
+28 6 14 1 0 0
+28 6 15 1 0 0
+28 6 16 1 0 0
+28 6 17 1 0 0
+28 6 18 1 0 0.28418
+28 6 19 1 0 0.425049
+28 6 20 1 0 0.537598
+28 6 21 1 0 0.642578
+28 6 22 1 0 0.738281
+28 6 23 1 0 0.819824
+28 6 24 1 0 0.887695
+28 6 25 1 0 0.949219
+28 6 26 1 0.125122 1
+28 6 27 1 0.168457 1
+28 6 28 1 0.188232 1
+28 6 29 1 0.204346 1
+28 6 30 1 0.217285 1
+28 6 31 1 0.227295 1
+28 7 0 1 0 0
+28 7 1 1 0 0
+28 7 2 1 0 0
+28 7 3 1 0 0
+28 7 4 1 0 0
+28 7 5 1 0 0
+28 7 6 1 0 0
+28 7 7 1 0 0
+28 7 8 1 0 0
+28 7 9 1 0 0
+28 7 10 1 0 0
+28 7 11 1 0 0
+28 7 12 1 0 0
+28 7 13 1 0 0
+28 7 14 1 0 0
+28 7 15 1 0 0
+28 7 16 1 0 0
+28 7 17 1 0 0
+28 7 18 1 0 0.283936
+28 7 19 1 0 0.425049
+28 7 20 1 0 0.537598
+28 7 21 1 0 0.642578
+28 7 22 1 0 0.738281
+28 7 23 1 0 0.819824
+28 7 24 1 0 0.887695
+28 7 25 1 0 0.949219
+28 7 26 1 0.126343 1
+28 7 27 1 0.169312 1
+28 7 28 1 0.188843 1
+28 7 29 1 0.204956 1
+28 7 30 1 0.217773 1
+28 7 31 1 0.227661 1
+28 8 0 1 0 0
+28 8 1 1 0 0
+28 8 2 1 0 0
+28 8 3 1 0 0
+28 8 4 1 0 0
+28 8 5 1 0 0
+28 8 6 1 0 0
+28 8 7 1 0 0
+28 8 8 1 0 0
+28 8 9 1 0 0
+28 8 10 1 0 0
+28 8 11 1 0 0
+28 8 12 1 0 0
+28 8 13 1 0 0
+28 8 14 1 0 0
+28 8 15 1 0 0
+28 8 16 1 0 0
+28 8 17 1 0 0
+28 8 18 1 0 0.283936
+28 8 19 1 0 0.425049
+28 8 20 1 0 0.537598
+28 8 21 1 0 0.642578
+28 8 22 1 0 0.738281
+28 8 23 1 0 0.819336
+28 8 24 1 0 0.887695
+28 8 25 1 0 0.949219
+28 8 26 1 0.12854 1
+28 8 27 1 0.170776 1
+28 8 28 1 0.190186 1
+28 8 29 1 0.205933 1
+28 8 30 1 0.218628 1
+28 8 31 1 0.228394 1
+28 9 0 1 0 0
+28 9 1 1 0 0
+28 9 2 1 0 0
+28 9 3 1 0 0
+28 9 4 1 0 0
+28 9 5 1 0 0
+28 9 6 1 0 0
+28 9 7 1 0 0
+28 9 8 1 0 0
+28 9 9 1 0 0
+28 9 10 1 0 0
+28 9 11 1 0 0
+28 9 12 1 0 0
+28 9 13 1 0 0
+28 9 14 1 0 0
+28 9 15 1 0 0
+28 9 16 1 0 0
+28 9 17 1 0 0
+28 9 18 1 0 0.283691
+28 9 19 1 0 0.425049
+28 9 20 1 0 0.537598
+28 9 21 1 0 0.642578
+28 9 22 1 0 0.738281
+28 9 23 1 0 0.819336
+28 9 24 1 0 0.887695
+28 9 25 1 0 0.949219
+28 9 26 1 0.132568 1
+28 9 27 1 0.173706 1
+28 9 28 1 0.192505 1
+28 9 29 1 0.208008 1
+28 9 30 1 0.220337 1
+28 9 31 1 0.229858 1
+28 10 0 1 0 0
+28 10 1 1 0 0
+28 10 2 1 0 0
+28 10 3 1 0 0
+28 10 4 1 0 0
+28 10 5 1 0 0
+28 10 6 1 0 0
+28 10 7 1 0 0
+28 10 8 1 0 0
+28 10 9 1 0 0
+28 10 10 1 0 0
+28 10 11 1 0 0
+28 10 12 1 0 0
+28 10 13 1 0 0
+28 10 14 1 0 0
+28 10 15 1 0 0
+28 10 16 1 0 0
+28 10 17 1 0 0
+28 10 18 1 0 0.283203
+28 10 19 1 0 0.424805
+28 10 20 1 0 0.537109
+28 10 21 1 0 0.642578
+28 10 22 1 0 0.737793
+28 10 23 1 0 0.819336
+28 10 24 1 0 0.887207
+28 10 25 1 0 0.949219
+28 10 26 1 0.139771 1
+28 10 27 1 0.178955 1
+28 10 28 1 0.196899 1
+28 10 29 1 0.211548 1
+28 10 30 1 0.223389 1
+28 10 31 1 0.232422 1
+28 11 0 1 0 0
+28 11 1 1 0 0
+28 11 2 1 0 0
+28 11 3 1 0 0
+28 11 4 1 0 0
+28 11 5 1 0 0
+28 11 6 1 0 0
+28 11 7 1 0 0
+28 11 8 1 0 0
+28 11 9 1 0 0
+28 11 10 1 0 0
+28 11 11 1 0 0
+28 11 12 1 0 0
+28 11 13 1 0 0
+28 11 14 1 0 0
+28 11 15 1 0 0
+28 11 16 1 0 0
+28 11 17 1 0 0
+28 11 18 1 0 0.282471
+28 11 19 1 0 0.424561
+28 11 20 1 0 0.537109
+28 11 21 1 0 0.64209
+28 11 22 1 0 0.737793
+28 11 23 1 0 0.819336
+28 11 24 1 0 0.887207
+28 11 25 1 0.00981903 0.94873
+28 11 26 1 0.151367 1
+28 11 27 1 0.187622 1
+28 11 28 1 0.204224 1
+28 11 29 1 0.217773 1
+28 11 30 1 0.228516 1
+28 11 31 1 0.236694 1
+28 12 0 1 0 0
+28 12 1 1 0 0
+28 12 2 1 0 0
+28 12 3 1 0 0
+28 12 4 1 0 0
+28 12 5 1 0 0
+28 12 6 1 0 0
+28 12 7 1 0 0
+28 12 8 1 0 0
+28 12 9 1 0 0
+28 12 10 1 0 0
+28 12 11 1 0 0
+28 12 12 1 0 0
+28 12 13 1 0 0
+28 12 14 1 0 0
+28 12 15 1 0 0
+28 12 16 1 0 0
+28 12 17 1 0 0
+28 12 18 1 0 0.28125
+28 12 19 1 0 0.424072
+28 12 20 1 0 0.536621
+28 12 21 1 0 0.641602
+28 12 22 1 0 0.737305
+28 12 23 1 0 0.818848
+28 12 24 1 0 0.887207
+28 12 25 1 0.0639038 0.94873
+28 12 26 1 0.169434 1
+28 12 27 1 0.20166 1
+28 12 28 1 0.216064 1
+28 12 29 1 0.227905 1
+28 12 30 1 0.237061 1
+28 12 31 1 0.243896 1
+28 13 0 1 0 0
+28 13 1 1 0 0
+28 13 2 1 0 0
+28 13 3 1 0 0
+28 13 4 1 0 0
+28 13 5 1 0 0
+28 13 6 1 0 0
+28 13 7 1 0 0
+28 13 8 1 0 0
+28 13 9 1 0 0
+28 13 10 1 0 0
+28 13 11 1 0 0
+28 13 12 1 0 0
+28 13 13 1 0 0
+28 13 14 1 0 0
+28 13 15 1 0 0
+28 13 16 1 0 0
+28 13 17 1 0 0
+28 13 18 1 0 0.279297
+28 13 19 1 0 0.422607
+28 13 20 1 0 0.535645
+28 13 21 1 0 0.640625
+28 13 22 1 0 0.736328
+28 13 23 1 0 0.818359
+28 13 24 1 0 0.886719
+28 13 25 1 0.116455 0.94873
+28 13 26 1 0.195312 1
+28 13 27 1 0.222412 1
+28 13 28 1 0.234131 1
+28 13 29 1 0.243408 1
+28 13 30 1 0.250488 1
+28 13 31 1 0.255371 1
+28 14 0 1 0 0
+28 14 1 1 0 0
+28 14 2 1 0 0
+28 14 3 1 0 0
+28 14 4 1 0 0
+28 14 5 1 0 0
+28 14 6 1 0 0
+28 14 7 1 0 0
+28 14 8 1 0 0
+28 14 9 1 0 0
+28 14 10 1 0 0
+28 14 11 1 0 0
+28 14 12 1 0 0
+28 14 13 1 0 0
+28 14 14 1 0 0
+28 14 15 1 0 0
+28 14 16 1 0 0
+28 14 17 1 0 0
+28 14 18 1 0 0.276367
+28 14 19 1 0 0.420166
+28 14 20 1 0 0.53418
+28 14 21 1 0 0.63916
+28 14 22 1 0 0.734863
+28 14 23 1 0 0.817383
+28 14 24 1 0 0.885742
+28 14 25 1 0.17041 0.948242
+28 14 26 1 0.230103 1
+28 14 27 1 0.251709 1
+28 14 28 1 0.26001 1
+28 14 29 1 0.266113 1
+28 14 30 1 0.27002 1
+28 14 31 1 0.272217 1
+28 15 0 1 0 0
+28 15 1 1 0 0
+28 15 2 1 0 0
+28 15 3 1 0 0
+28 15 4 1 0 0
+28 15 5 1 0 0
+28 15 6 1 0 0
+28 15 7 1 0 0
+28 15 8 1 0 0
+28 15 9 1 0 0
+28 15 10 1 0 0
+28 15 11 1 0 0
+28 15 12 1 0 0
+28 15 13 1 0 0
+28 15 14 1 0 0
+28 15 15 1 0 0
+28 15 16 1 0 0
+28 15 17 1 0 0
+28 15 18 1 0 0.272217
+28 15 19 1 0 0.416504
+28 15 20 1 0 0.532227
+28 15 21 1 0 0.636719
+28 15 22 1 0 0.73291
+28 15 23 1 0 0.81543
+28 15 24 1 0.135742 0.884766
+28 15 25 1 0.228638 0.947266
+28 15 26 1 0.273926 1
+28 15 27 1 0.290039 1
+28 15 28 1 0.294434 1
+28 15 29 1 0.296875 1
+28 15 30 1 0.297363 1
+28 15 31 1 0.295898 1
+28 16 0 1 0 0
+28 16 1 1 0 0
+28 16 2 1 0 0
+28 16 3 1 0 0
+28 16 4 1 0 0
+28 16 5 1 0 0
+28 16 6 1 0 0
+28 16 7 1 0 0
+28 16 8 1 0 0
+28 16 9 1 0 0
+28 16 10 1 0 0
+28 16 11 1 0 0
+28 16 12 1 0 0
+28 16 13 1 0 0
+28 16 14 1 0 0
+28 16 15 1 0 0
+28 16 16 1 0 0
+28 16 17 1 0 0
+28 16 18 1 0 0.266846
+28 16 19 1 0 0.411621
+28 16 20 1 0 0.529785
+28 16 21 1 0 0.633789
+28 16 22 1 0 0.72998
+28 16 23 1 0.140503 0.812988
+28 16 24 1 0.231323 0.882812
+28 16 25 1 0.29248 0.946289
+28 16 26 1 0.326904 1
+28 16 27 1 0.337646 1
+28 16 28 1 0.338135 1
+28 16 29 1 0.336426 1
+28 16 30 1 0.332764 1
+28 16 31 1 0.327393 1
+28 17 0 1 0.178711 0
+28 17 1 1 0.178711 0
+28 17 2 1 0.178711 0
+28 17 3 1 0.178711 0
+28 17 4 1 0.178711 0
+28 17 5 1 0.178711 0
+28 17 6 1 0.178711 0
+28 17 7 1 0.178833 0
+28 17 8 1 0.178955 0
+28 17 9 1 0.179321 0
+28 17 10 1 0.17981 0
+28 17 11 1 0.180786 0
+28 17 12 1 0.182373 0
+28 17 13 1 0.184937 0
+28 17 14 1 0.188965 0
+28 17 15 1 0.194092 0
+28 17 16 1 0.194946 0
+28 17 17 1 0.186646 0
+28 17 18 1 0.176758 0.261719
+28 17 19 1 0.169312 0.40625
+28 17 20 1 0.174438 0.525391
+28 17 21 1 0.179443 0.629395
+28 17 22 1 0.211914 0.725586
+28 17 23 1 0.263916 0.809082
+28 17 24 1 0.316162 0.880371
+28 17 25 1 0.360107 0.943848
+28 17 26 1 0.38623 1
+28 17 27 1 0.392822 1
+28 17 28 1 0.389404 1
+28 17 29 1 0.383545 1
+28 17 30 1 0.375732 1
+28 17 31 1 0.365967 1
+28 18 0 1 0.327148 0
+28 18 1 1 0.327148 0
+28 18 2 1 0.327148 0
+28 18 3 1 0.327148 0
+28 18 4 1 0.327148 0
+28 18 5 1 0.327148 0
+28 18 6 1 0.327148 0
+28 18 7 1 0.327393 0
+28 18 8 1 0.327393 0
+28 18 9 1 0.327393 0
+28 18 10 1 0.327881 0
+28 18 11 1 0.328125 0
+28 18 12 1 0.329102 0
+28 18 13 1 0.330322 0
+28 18 14 1 0.33252 0
+28 18 15 1 0.335449 0
+28 18 16 1 0.334961 0
+28 18 17 1 0.331787 0
+28 18 18 1 0.327637 0.258545
+28 18 19 1 0.322998 0.401123
+28 18 20 1 0.322021 0.518555
+28 18 21 1 0.32666 0.624512
+28 18 22 1 0.336182 0.719238
+28 18 23 1 0.363037 0.803711
+28 18 24 1 0.396973 0.875977
+28 18 25 1 0.429688 0.940918
+28 18 26 1 0.449951 0.998535
+28 18 27 1 0.452881 1
+28 18 28 1 0.445801 1
+28 18 29 1 0.436035 1
+28 18 30 1 0.423828 1
+28 18 31 1 0.409668 1
+28 19 0 1 0.438721 0
+28 19 1 1 0.438721 0
+28 19 2 1 0.438721 0
+28 19 3 1 0.438721 0
+28 19 4 1 0.438721 0
+28 19 5 1 0.438721 0
+28 19 6 1 0.438965 0
+28 19 7 1 0.438965 0
+28 19 8 1 0.438965 0
+28 19 9 1 0.438965 0
+28 19 10 1 0.439209 0
+28 19 11 1 0.439453 0
+28 19 12 1 0.440186 0
+28 19 13 1 0.440918 0
+28 19 14 1 0.442383 0
+28 19 15 1 0.44458 0
+28 19 16 1 0.44458 0
+28 19 17 1 0.443604 0
+28 19 18 1 0.44165 0.26001
+28 19 19 1 0.438477 0.398193
+28 19 20 1 0.436035 0.512695
+28 19 21 1 0.4375 0.618164
+28 19 22 1 0.440186 0.712402
+28 19 23 1 0.452881 0.796387
+28 19 24 1 0.474854 0.870117
+28 19 25 1 0.499512 0.936523
+28 19 26 1 0.515137 0.995117
+28 19 27 1 0.514648 1
+28 19 28 1 0.504883 1
+28 19 29 1 0.491455 1
+28 19 30 1 0.475098 1
+28 19 31 1 0.456787 1
+28 20 0 1 0.53418 0
+28 20 1 1 0.53418 0
+28 20 2 1 0.53418 0
+28 20 3 1 0.53418 0
+28 20 4 1 0.53418 0
+28 20 5 1 0.53418 0
+28 20 6 1 0.53418 0
+28 20 7 1 0.53418 0
+28 20 8 1 0.53418 0
+28 20 9 1 0.53418 0
+28 20 10 1 0.53418 0
+28 20 11 1 0.534668 0
+28 20 12 1 0.535156 0
+28 20 13 1 0.535645 0
+28 20 14 1 0.536621 0
+28 20 15 1 0.538574 0
+28 20 16 1 0.539551 0
+28 20 17 1 0.540039 0
+28 20 18 1 0.539551 0.26709
+28 20 19 1 0.538086 0.398926
+28 20 20 1 0.535156 0.508789
+28 20 21 1 0.532715 0.610352
+28 20 22 1 0.534668 0.705566
+28 20 23 1 0.537109 0.787598
+28 20 24 1 0.549316 0.861816
+28 20 25 1 0.566895 0.930664
+28 20 26 1 0.579102 0.990234
+28 20 27 1 0.576172 1
+28 20 28 1 0.563477 1
+28 20 29 1 0.546875 1
+28 20 30 1 0.527344 1
+28 20 31 1 0.504883 1
+28 21 0 1 0.620605 0
+28 21 1 1 0.620605 0
+28 21 2 1 0.620605 0
+28 21 3 1 0.620605 0
+28 21 4 1 0.620605 0
+28 21 5 1 0.620605 0
+28 21 6 1 0.620605 0
+28 21 7 1 0.620605 0
+28 21 8 1 0.620605 0
+28 21 9 1 0.620605 0
+28 21 10 1 0.620605 0
+28 21 11 1 0.621094 0
+28 21 12 1 0.621094 0
+28 21 13 1 0.62207 0
+28 21 14 1 0.622559 0
+28 21 15 1 0.624023 0
+28 21 16 1 0.625488 0
+28 21 17 1 0.627441 0.0619202
+28 21 18 1 0.628418 0.278809
+28 21 19 1 0.62793 0.403809
+28 21 20 1 0.625977 0.508301
+28 21 21 1 0.622559 0.60498
+28 21 22 1 0.619629 0.695801
+28 21 23 1 0.618652 0.77832
+28 21 24 1 0.62207 0.851562
+28 21 25 1 0.632812 0.922363
+28 21 26 1 0.641602 0.983887
+28 21 27 1 0.637695 1
+28 21 28 1 0.622559 1
+28 21 29 1 0.603027 1
+28 21 30 1 0.57959 1
+28 21 31 1 0.553711 1
+28 22 0 1 0.69873 0
+28 22 1 1 0.69873 0
+28 22 2 1 0.69873 0
+28 22 3 1 0.69873 0
+28 22 4 1 0.69873 0
+28 22 5 1 0.69873 0
+28 22 6 1 0.69873 0
+28 22 7 1 0.69873 0
+28 22 8 1 0.69873 0
+28 22 9 1 0.69873 0
+28 22 10 1 0.699219 0
+28 22 11 1 0.699219 0
+28 22 12 1 0.699219 0
+28 22 13 1 0.699707 0
+28 22 14 1 0.700684 0
+28 22 15 1 0.70166 0
+28 22 16 1 0.703613 0
+28 22 17 1 0.706055 0.110474
+28 22 18 1 0.708008 0.292236
+28 22 19 1 0.708984 0.410889
+28 22 20 1 0.708496 0.510742
+28 22 21 1 0.705078 0.602539
+28 22 22 1 0.700195 0.688477
+28 22 23 1 0.695801 0.767578
+28 22 24 1 0.693359 0.839844
+28 22 25 1 0.696289 0.911621
+28 22 26 1 0.702148 0.976074
+28 22 27 1 0.696777 1
+28 22 28 1 0.679688 1
+28 22 29 1 0.657715 1
+28 22 30 1 0.631348 1
+28 22 31 0.989258 0.602051 1
+28 23 0 1 0.767578 0
+28 23 1 1 0.767578 0
+28 23 2 1 0.767578 0
+28 23 3 1 0.767578 0
+28 23 4 1 0.767578 0
+28 23 5 1 0.767578 0
+28 23 6 1 0.767578 0
+28 23 7 1 0.767578 0
+28 23 8 1 0.767578 0
+28 23 9 1 0.767578 0
+28 23 10 1 0.767578 0
+28 23 11 1 0.767578 0
+28 23 12 1 0.768066 0
+28 23 13 1 0.768066 0
+28 23 14 1 0.768555 0
+28 23 15 1 0.769531 0
+28 23 16 1 0.771484 0
+28 23 17 1 0.774902 0.137573
+28 23 18 1 0.777832 0.302246
+28 23 19 1 0.779785 0.41748
+28 23 20 1 0.780273 0.514648
+28 23 21 1 0.777832 0.603027
+28 23 22 1 0.773438 0.684082
+28 23 23 1 0.766602 0.758789
+28 23 24 1 0.760742 0.828613
+28 23 25 1 0.756348 0.898926
+28 23 26 1 0.757812 0.96582
+28 23 27 1 0.751465 1
+28 23 28 1 0.733398 1
+28 23 29 1 0.709473 1
+28 23 30 1 0.680664 1
+28 23 31 0.970703 0.647949 1
+28 24 0 1 0.827637 0
+28 24 1 1 0.827637 0
+28 24 2 1 0.827637 0
+28 24 3 1 0.827637 0
+28 24 4 1 0.827637 0
+28 24 5 1 0.827637 0
+28 24 6 1 0.827637 0
+28 24 7 1 0.827637 0
+28 24 8 1 0.827637 0
+28 24 9 1 0.827637 0
+28 24 10 1 0.827637 0
+28 24 11 1 0.828125 0
+28 24 12 1 0.828125 0
+28 24 13 1 0.828125 0
+28 24 14 1 0.828613 0
+28 24 15 1 0.82959 0
+28 24 16 1 0.831055 0
+28 24 17 1 0.834961 0.147461
+28 24 18 1 0.838379 0.306152
+28 24 19 1 0.841309 0.419922
+28 24 20 1 0.842773 0.516113
+28 24 21 1 0.841797 0.603027
+28 24 22 1 0.837891 0.682129
+28 24 23 1 0.831543 0.752441
+28 24 24 1 0.822754 0.817871
+28 24 25 1 0.814453 0.885742
+28 24 26 1 0.80957 0.953613
+28 24 27 1 0.802734 1
+28 24 28 1 0.783691 1
+28 24 29 1 0.757812 1
+28 24 30 1 0.726562 1
+28 24 31 0.949219 0.691895 1
+28 25 0 1 0.88623 0
+28 25 1 1 0.88623 0
+28 25 2 1 0.88623 0
+28 25 3 1 0.88623 0
+28 25 4 1 0.88623 0
+28 25 5 1 0.88623 0
+28 25 6 1 0.88623 0
+28 25 7 1 0.88623 0
+28 25 8 1 0.88623 0
+28 25 9 1 0.88623 0
+28 25 10 1 0.88623 0
+28 25 11 1 0.88623 0
+28 25 12 1 0.88623 0
+28 25 13 1 0.886719 0
+28 25 14 1 0.886719 0
+28 25 15 1 0.887207 0
+28 25 16 1 0.888672 0
+28 25 17 1 0.892578 0.137939
+28 25 18 1 0.896973 0.300537
+28 25 19 1 0.900391 0.415039
+28 25 20 1 0.902832 0.511719
+28 25 21 1 0.902832 0.599121
+28 25 22 1 0.900391 0.678223
+28 25 23 1 0.894531 0.747559
+28 25 24 1 0.88623 0.809082
+28 25 25 1 0.875 0.87207
+28 25 26 1 0.863281 0.937988
+28 25 27 1 0.85498 0.999512
+28 25 28 1 0.835449 1
+28 25 29 1 0.808105 1
+28 25 30 1 0.774902 1
+28 25 31 0.92334 0.737793 1
+28 26 0 1 0.942871 0
+28 26 1 1 0.942871 0
+28 26 2 1 0.942871 0
+28 26 3 1 0.942871 0
+28 26 4 1 0.942871 0
+28 26 5 1 0.942871 0
+28 26 6 1 0.942871 0
+28 26 7 1 0.942871 0
+28 26 8 1 0.942871 0
+28 26 9 1 0.942871 0
+28 26 10 1 0.942871 0
+28 26 11 1 0.942871 0
+28 26 12 1 0.942871 0
+28 26 13 1 0.942871 0
+28 26 14 1 0.943359 0
+28 26 15 1 0.943848 0
+28 26 16 1 0.944824 0
+28 26 17 1 0.94873 0.0944824
+28 26 18 1 0.952637 0.28125
+28 26 19 1 0.956543 0.399902
+28 26 20 1 0.959473 0.498535
+28 26 21 1 0.960449 0.587402
+28 26 22 1 0.958984 0.66748
+28 26 23 1 0.95459 0.737793
+28 26 24 1 0.947754 0.799805
+28 26 25 1 0.937012 0.860352
+28 26 26 1 0.921875 0.92041
+28 26 27 1 0.907715 0.98291
+28 26 28 1 0.888672 1
+28 26 29 1 0.860352 1
+28 26 30 0.970215 0.825195 1
+28 26 31 0.891113 0.786133 1
+28 27 0 1 0.996582 0
+28 27 1 1 0.996582 0
+28 27 2 1 0.996582 0
+28 27 3 1 0.996582 0
+28 27 4 1 0.996582 0
+28 27 5 1 0.996582 0
+28 27 6 1 0.996582 0
+28 27 7 1 0.996582 0
+28 27 8 1 0.996582 0
+28 27 9 1 0.996582 0
+28 27 10 1 0.996582 0
+28 27 11 1 0.996582 0
+28 27 12 1 0.996582 0
+28 27 13 1 0.99707 0
+28 27 14 1 0.99707 0
+28 27 15 1 0.997559 0
+28 27 16 1 0.997559 0
+28 27 17 1 1 0
+28 27 18 1 1 0.244019
+28 27 19 1 1 0.37207
+28 27 20 1 1 0.474365
+28 27 21 1 1 0.564941
+28 27 22 1 1 0.646484
+28 27 23 1 1 0.718262
+28 27 24 1 1 0.782227
+28 27 25 1 0.994629 0.844238
+28 27 26 1 0.980957 0.904297
+28 27 27 1 0.962402 0.961914
+28 27 28 1 0.942383 1
+28 27 29 0.996094 0.912598 1
+28 27 30 0.927246 0.876465 1
+28 27 31 0.851562 0.837402 1
+28 28 0 1 1 0
+28 28 1 1 1 0
+28 28 2 1 1 0
+28 28 3 1 1 0
+28 28 4 1 1 0
+28 28 5 1 1 0
+28 28 6 1 1 0
+28 28 7 1 1 0
+28 28 8 1 1 0
+28 28 9 1 1 0
+28 28 10 1 1 0
+28 28 11 1 1 0
+28 28 12 1 1 0
+28 28 13 1 1 0
+28 28 14 1 1 0
+28 28 15 1 1 0
+28 28 16 1 1 0
+28 28 17 1 1 0
+28 28 18 1 1 0.183838
+28 28 19 1 1 0.332031
+28 28 20 1 1 0.439941
+28 28 21 1 1 0.533203
+28 28 22 1 1 0.616211
+28 28 23 1 1 0.689453
+28 28 24 1 1 0.754395
+28 28 25 1 1 0.818359
+28 28 26 1 1 0.880859
+28 28 27 1 1 0.94043
+28 28 28 0.996094 0.996094 0.996094
+28 28 29 0.939941 0.96582 1
+28 28 30 0.875977 0.930664 1
+28 28 31 0.803711 0.891602 1
+28 29 0 1 1 0
+28 29 1 1 1 0
+28 29 2 1 1 0
+28 29 3 1 1 0
+28 29 4 1 1 0
+28 29 5 1 1 0
+28 29 6 1 1 0
+28 29 7 1 1 0
+28 29 8 1 1 0
+28 29 9 1 1 0
+28 29 10 1 1 0
+28 29 11 1 1 0
+28 29 12 1 1 0
+28 29 13 1 1 0
+28 29 14 1 1 0
+28 29 15 1 1 0
+28 29 16 1 1 0
+28 29 17 1 1 0
+28 29 18 1 1 0.0755615
+28 29 19 1 1 0.279785
+28 29 20 1 1 0.396973
+28 29 21 1 1 0.493896
+28 29 22 1 1 0.578613
+28 29 23 1 1 0.652832
+28 29 24 1 1 0.71875
+28 29 25 1 1 0.783691
+28 29 26 0.998047 1 0.847656
+28 29 27 0.964355 1 0.90918
+28 29 28 0.92334 1 0.967773
+28 29 29 0.875 1 1
+28 29 30 0.814453 0.989258 1
+28 29 31 0.744141 0.949707 1
+28 30 0 0.996094 1 0
+28 30 1 0.996094 1 0
+28 30 2 0.996094 1 0
+28 30 3 0.996094 1 0
+28 30 4 0.996094 1 0
+28 30 5 0.996094 1 0
+28 30 6 0.996094 1 0
+28 30 7 0.996094 1 0
+28 30 8 0.996094 1 0
+28 30 9 0.996094 1 0
+28 30 10 0.996094 1 0
+28 30 11 0.996094 1 0
+28 30 12 0.996094 1 0
+28 30 13 0.996094 1 0
+28 30 14 0.996094 1 0
+28 30 15 0.995605 1 0
+28 30 16 0.995605 1 0
+28 30 17 0.994629 1 0
+28 30 18 0.993164 1 0
+28 30 19 0.990234 1 0.211792
+28 30 20 0.98584 1 0.345703
+28 30 21 0.979004 1 0.447754
+28 30 22 0.970215 1 0.534668
+28 30 23 0.958496 1 0.609863
+28 30 24 0.944336 1 0.676758
+28 30 25 0.925781 1 0.743164
+28 30 26 0.901855 1 0.808594
+28 30 27 0.871582 1 0.872559
+28 30 28 0.833984 1 0.934082
+28 30 29 0.788574 1 0.992676
+28 30 30 0.733398 1 1
+28 30 31 0.666992 1 1
+28 31 0 0.878418 1 0
+28 31 1 0.878418 1 0
+28 31 2 0.878418 1 0
+28 31 3 0.878418 1 0
+28 31 4 0.878418 1 0
+28 31 5 0.878418 1 0
+28 31 6 0.878418 1 0
+28 31 7 0.878418 1 0
+28 31 8 0.878418 1 0
+28 31 9 0.878418 1 0
+28 31 10 0.878418 1 0
+28 31 11 0.878418 1 0
+28 31 12 0.878418 1 0
+28 31 13 0.878418 1 0
+28 31 14 0.87793 1 0
+28 31 15 0.87793 1 0
+28 31 16 0.87793 1 0
+28 31 17 0.877441 1 0
+28 31 18 0.875 1 0
+28 31 19 0.871582 1 0.104187
+28 31 20 0.866699 1 0.283936
+28 31 21 0.859863 1 0.394775
+28 31 22 0.850586 1 0.485107
+28 31 23 0.839355 1 0.562012
+28 31 24 0.825684 1 0.629883
+28 31 25 0.808594 1 0.697266
+28 31 26 0.786133 1 0.76416
+28 31 27 0.758301 1 0.830078
+28 31 28 0.722656 1 0.894531
+28 31 29 0.678711 1 0.955566
+28 31 30 0.624512 1 1
+28 31 31 0.558105 1 1
+29 0 0 1 0 0
+29 0 1 1 0 0
+29 0 2 1 0 0
+29 0 3 1 0 0
+29 0 4 1 0 0
+29 0 5 1 0 0
+29 0 6 1 0 0
+29 0 7 1 0 0
+29 0 8 1 0 0
+29 0 9 1 0 0
+29 0 10 1 0 0
+29 0 11 1 0 0
+29 0 12 1 0 0
+29 0 13 1 0 0
+29 0 14 1 0 0
+29 0 15 1 0 0
+29 0 16 1 0 0
+29 0 17 1 0 0
+29 0 18 1 0 0.197021
+29 0 19 1 0 0.360107
+29 0 20 1 0 0.47876
+29 0 21 1 0 0.583008
+29 0 22 1 0 0.678711
+29 0 23 1 0 0.762207
+29 0 24 1 0 0.833496
+29 0 25 1 0 0.899902
+29 0 26 1 0 0.959473
+29 0 27 1 0.123596 1
+29 0 28 1 0.168945 1
+29 0 29 1 0.188965 1
+29 0 30 1 0.205078 1
+29 0 31 1 0.21814 1
+29 1 0 1 0 0
+29 1 1 1 0 0
+29 1 2 1 0 0
+29 1 3 1 0 0
+29 1 4 1 0 0
+29 1 5 1 0 0
+29 1 6 1 0 0
+29 1 7 1 0 0
+29 1 8 1 0 0
+29 1 9 1 0 0
+29 1 10 1 0 0
+29 1 11 1 0 0
+29 1 12 1 0 0
+29 1 13 1 0 0
+29 1 14 1 0 0
+29 1 15 1 0 0
+29 1 16 1 0 0
+29 1 17 1 0 0
+29 1 18 1 0 0.197021
+29 1 19 1 0 0.360107
+29 1 20 1 0 0.47876
+29 1 21 1 0 0.583008
+29 1 22 1 0 0.678711
+29 1 23 1 0 0.762207
+29 1 24 1 0 0.833496
+29 1 25 1 0 0.899902
+29 1 26 1 0 0.959473
+29 1 27 1 0.123657 1
+29 1 28 1 0.168945 1
+29 1 29 1 0.188965 1
+29 1 30 1 0.2052 1
+29 1 31 1 0.21814 1
+29 2 0 1 0 0
+29 2 1 1 0 0
+29 2 2 1 0 0
+29 2 3 1 0 0
+29 2 4 1 0 0
+29 2 5 1 0 0
+29 2 6 1 0 0
+29 2 7 1 0 0
+29 2 8 1 0 0
+29 2 9 1 0 0
+29 2 10 1 0 0
+29 2 11 1 0 0
+29 2 12 1 0 0
+29 2 13 1 0 0
+29 2 14 1 0 0
+29 2 15 1 0 0
+29 2 16 1 0 0
+29 2 17 1 0 0
+29 2 18 1 0 0.197021
+29 2 19 1 0 0.360107
+29 2 20 1 0 0.47876
+29 2 21 1 0 0.583008
+29 2 22 1 0 0.678711
+29 2 23 1 0 0.762207
+29 2 24 1 0 0.833496
+29 2 25 1 0 0.899902
+29 2 26 1 0 0.959473
+29 2 27 1 0.123657 1
+29 2 28 1 0.169067 1
+29 2 29 1 0.188965 1
+29 2 30 1 0.2052 1
+29 2 31 1 0.21814 1
+29 3 0 1 0 0
+29 3 1 1 0 0
+29 3 2 1 0 0
+29 3 3 1 0 0
+29 3 4 1 0 0
+29 3 5 1 0 0
+29 3 6 1 0 0
+29 3 7 1 0 0
+29 3 8 1 0 0
+29 3 9 1 0 0
+29 3 10 1 0 0
+29 3 11 1 0 0
+29 3 12 1 0 0
+29 3 13 1 0 0
+29 3 14 1 0 0
+29 3 15 1 0 0
+29 3 16 1 0 0
+29 3 17 1 0 0
+29 3 18 1 0 0.197021
+29 3 19 1 0 0.360107
+29 3 20 1 0 0.47876
+29 3 21 1 0 0.583008
+29 3 22 1 0 0.678711
+29 3 23 1 0 0.762207
+29 3 24 1 0 0.833496
+29 3 25 1 0 0.899902
+29 3 26 1 0 0.959473
+29 3 27 1 0.123718 1
+29 3 28 1 0.169067 1
+29 3 29 1 0.188965 1
+29 3 30 1 0.2052 1
+29 3 31 1 0.218262 1
+29 4 0 1 0 0
+29 4 1 1 0 0
+29 4 2 1 0 0
+29 4 3 1 0 0
+29 4 4 1 0 0
+29 4 5 1 0 0
+29 4 6 1 0 0
+29 4 7 1 0 0
+29 4 8 1 0 0
+29 4 9 1 0 0
+29 4 10 1 0 0
+29 4 11 1 0 0
+29 4 12 1 0 0
+29 4 13 1 0 0
+29 4 14 1 0 0
+29 4 15 1 0 0
+29 4 16 1 0 0
+29 4 17 1 0 0
+29 4 18 1 0 0.197021
+29 4 19 1 0 0.360107
+29 4 20 1 0 0.47876
+29 4 21 1 0 0.583008
+29 4 22 1 0 0.678711
+29 4 23 1 0 0.762207
+29 4 24 1 0 0.833496
+29 4 25 1 0 0.899902
+29 4 26 1 0 0.959473
+29 4 27 1 0.123901 1
+29 4 28 1 0.169189 1
+29 4 29 1 0.189087 1
+29 4 30 1 0.205322 1
+29 4 31 1 0.218262 1
+29 5 0 1 0 0
+29 5 1 1 0 0
+29 5 2 1 0 0
+29 5 3 1 0 0
+29 5 4 1 0 0
+29 5 5 1 0 0
+29 5 6 1 0 0
+29 5 7 1 0 0
+29 5 8 1 0 0
+29 5 9 1 0 0
+29 5 10 1 0 0
+29 5 11 1 0 0
+29 5 12 1 0 0
+29 5 13 1 0 0
+29 5 14 1 0 0
+29 5 15 1 0 0
+29 5 16 1 0 0
+29 5 17 1 0 0
+29 5 18 1 0 0.197021
+29 5 19 1 0 0.360107
+29 5 20 1 0 0.47876
+29 5 21 1 0 0.583008
+29 5 22 1 0 0.678711
+29 5 23 1 0 0.762207
+29 5 24 1 0 0.833496
+29 5 25 1 0 0.899902
+29 5 26 1 0 0.959473
+29 5 27 1 0.124146 1
+29 5 28 1 0.169312 1
+29 5 29 1 0.189209 1
+29 5 30 1 0.205444 1
+29 5 31 1 0.218384 1
+29 6 0 1 0 0
+29 6 1 1 0 0
+29 6 2 1 0 0
+29 6 3 1 0 0
+29 6 4 1 0 0
+29 6 5 1 0 0
+29 6 6 1 0 0
+29 6 7 1 0 0
+29 6 8 1 0 0
+29 6 9 1 0 0
+29 6 10 1 0 0
+29 6 11 1 0 0
+29 6 12 1 0 0
+29 6 13 1 0 0
+29 6 14 1 0 0
+29 6 15 1 0 0
+29 6 16 1 0 0
+29 6 17 1 0 0
+29 6 18 1 0 0.196899
+29 6 19 1 0 0.359863
+29 6 20 1 0 0.47876
+29 6 21 1 0 0.583008
+29 6 22 1 0 0.678711
+29 6 23 1 0 0.762207
+29 6 24 1 0 0.833496
+29 6 25 1 0 0.899902
+29 6 26 1 0 0.959473
+29 6 27 1 0.124634 1
+29 6 28 1 0.169678 1
+29 6 29 1 0.189575 1
+29 6 30 1 0.205566 1
+29 6 31 1 0.218628 1
+29 7 0 1 0 0
+29 7 1 1 0 0
+29 7 2 1 0 0
+29 7 3 1 0 0
+29 7 4 1 0 0
+29 7 5 1 0 0
+29 7 6 1 0 0
+29 7 7 1 0 0
+29 7 8 1 0 0
+29 7 9 1 0 0
+29 7 10 1 0 0
+29 7 11 1 0 0
+29 7 12 1 0 0
+29 7 13 1 0 0
+29 7 14 1 0 0
+29 7 15 1 0 0
+29 7 16 1 0 0
+29 7 17 1 0 0
+29 7 18 1 0 0.196899
+29 7 19 1 0 0.359863
+29 7 20 1 0 0.47876
+29 7 21 1 0 0.583008
+29 7 22 1 0 0.678711
+29 7 23 1 0 0.762207
+29 7 24 1 0 0.833496
+29 7 25 1 0 0.899902
+29 7 26 1 0 0.959473
+29 7 27 1 0.12561 1
+29 7 28 1 0.17041 1
+29 7 29 1 0.190063 1
+29 7 30 1 0.206055 1
+29 7 31 1 0.218994 1
+29 8 0 1 0 0
+29 8 1 1 0 0
+29 8 2 1 0 0
+29 8 3 1 0 0
+29 8 4 1 0 0
+29 8 5 1 0 0
+29 8 6 1 0 0
+29 8 7 1 0 0
+29 8 8 1 0 0
+29 8 9 1 0 0
+29 8 10 1 0 0
+29 8 11 1 0 0
+29 8 12 1 0 0
+29 8 13 1 0 0
+29 8 14 1 0 0
+29 8 15 1 0 0
+29 8 16 1 0 0
+29 8 17 1 0 0
+29 8 18 1 0 0.196777
+29 8 19 1 0 0.359863
+29 8 20 1 0 0.47876
+29 8 21 1 0 0.583008
+29 8 22 1 0 0.678711
+29 8 23 1 0 0.762207
+29 8 24 1 0 0.833496
+29 8 25 1 0 0.899902
+29 8 26 1 0 0.959473
+29 8 27 1 0.127563 1
+29 8 28 1 0.171753 1
+29 8 29 1 0.191162 1
+29 8 30 1 0.207031 1
+29 8 31 1 0.219727 1
+29 9 0 1 0 0
+29 9 1 1 0 0
+29 9 2 1 0 0
+29 9 3 1 0 0
+29 9 4 1 0 0
+29 9 5 1 0 0
+29 9 6 1 0 0
+29 9 7 1 0 0
+29 9 8 1 0 0
+29 9 9 1 0 0
+29 9 10 1 0 0
+29 9 11 1 0 0
+29 9 12 1 0 0
+29 9 13 1 0 0
+29 9 14 1 0 0
+29 9 15 1 0 0
+29 9 16 1 0 0
+29 9 17 1 0 0
+29 9 18 1 0 0.196411
+29 9 19 1 0 0.359619
+29 9 20 1 0 0.47876
+29 9 21 1 0 0.583008
+29 9 22 1 0 0.678711
+29 9 23 1 0 0.762207
+29 9 24 1 0 0.833496
+29 9 25 1 0 0.899902
+29 9 26 1 0 0.959473
+29 9 27 1 0.131104 1
+29 9 28 1 0.174194 1
+29 9 29 1 0.193237 1
+29 9 30 1 0.20874 1
+29 9 31 1 0.221191 1
+29 10 0 1 0 0
+29 10 1 1 0 0
+29 10 2 1 0 0
+29 10 3 1 0 0
+29 10 4 1 0 0
+29 10 5 1 0 0
+29 10 6 1 0 0
+29 10 7 1 0 0
+29 10 8 1 0 0
+29 10 9 1 0 0
+29 10 10 1 0 0
+29 10 11 1 0 0
+29 10 12 1 0 0
+29 10 13 1 0 0
+29 10 14 1 0 0
+29 10 15 1 0 0
+29 10 16 1 0 0
+29 10 17 1 0 0
+29 10 18 1 0 0.195923
+29 10 19 1 0 0.359375
+29 10 20 1 0 0.478516
+29 10 21 1 0 0.583008
+29 10 22 1 0 0.678223
+29 10 23 1 0 0.761719
+29 10 24 1 0 0.833496
+29 10 25 1 0 0.899902
+29 10 26 1 0 0.959473
+29 10 27 1 0.137329 1
+29 10 28 1 0.178711 1
+29 10 29 1 0.196899 1
+29 10 30 1 0.211792 1
+29 10 31 1 0.223755 1
+29 11 0 1 0 0
+29 11 1 1 0 0
+29 11 2 1 0 0
+29 11 3 1 0 0
+29 11 4 1 0 0
+29 11 5 1 0 0
+29 11 6 1 0 0
+29 11 7 1 0 0
+29 11 8 1 0 0
+29 11 9 1 0 0
+29 11 10 1 0 0
+29 11 11 1 0 0
+29 11 12 1 0 0
+29 11 13 1 0 0
+29 11 14 1 0 0
+29 11 15 1 0 0
+29 11 16 1 0 0
+29 11 17 1 0 0
+29 11 18 1 0 0.194946
+29 11 19 1 0 0.358643
+29 11 20 1 0 0.478271
+29 11 21 1 0 0.58252
+29 11 22 1 0 0.678223
+29 11 23 1 0 0.761719
+29 11 24 1 0 0.833496
+29 11 25 1 0 0.899414
+29 11 26 1 0 0.959473
+29 11 27 1 0.147705 1
+29 11 28 1 0.186157 1
+29 11 29 1 0.203247 1
+29 11 30 1 0.217041 1
+29 11 31 1 0.228149 1
+29 12 0 1 0 0
+29 12 1 1 0 0
+29 12 2 1 0 0
+29 12 3 1 0 0
+29 12 4 1 0 0
+29 12 5 1 0 0
+29 12 6 1 0 0
+29 12 7 1 0 0
+29 12 8 1 0 0
+29 12 9 1 0 0
+29 12 10 1 0 0
+29 12 11 1 0 0
+29 12 12 1 0 0
+29 12 13 1 0 0
+29 12 14 1 0 0
+29 12 15 1 0 0
+29 12 16 1 0 0
+29 12 17 1 0 0
+29 12 18 1 0 0.193481
+29 12 19 1 0 0.35791
+29 12 20 1 0 0.477783
+29 12 21 1 0 0.582031
+29 12 22 1 0 0.677734
+29 12 23 1 0 0.76123
+29 12 24 1 0 0.833008
+29 12 25 1 0 0.899414
+29 12 26 1 0.0299835 0.959473
+29 12 27 1 0.163696 1
+29 12 28 1 0.198364 1
+29 12 29 1 0.213501 1
+29 12 30 1 0.22583 1
+29 12 31 1 0.235474 1
+29 13 0 1 0 0
+29 13 1 1 0 0
+29 13 2 1 0 0
+29 13 3 1 0 0
+29 13 4 1 0 0
+29 13 5 1 0 0
+29 13 6 1 0 0
+29 13 7 1 0 0
+29 13 8 1 0 0
+29 13 9 1 0 0
+29 13 10 1 0 0
+29 13 11 1 0 0
+29 13 12 1 0 0
+29 13 13 1 0 0
+29 13 14 1 0 0
+29 13 15 1 0 0
+29 13 16 1 0 0
+29 13 17 1 0 0
+29 13 18 1 0 0.190918
+29 13 19 1 0 0.356201
+29 13 20 1 0 0.477295
+29 13 21 1 0 0.581543
+29 13 22 1 0 0.676758
+29 13 23 1 0 0.760742
+29 13 24 1 0 0.83252
+29 13 25 1 0 0.898926
+29 13 26 1 0.0918579 0.958984
+29 13 27 1 0.187012 1
+29 13 28 1 0.216797 1
+29 13 29 1 0.229248 1
+29 13 30 1 0.23938 1
+29 13 31 1 0.24707 1
+29 14 0 1 0 0
+29 14 1 1 0 0
+29 14 2 1 0 0
+29 14 3 1 0 0
+29 14 4 1 0 0
+29 14 5 1 0 0
+29 14 6 1 0 0
+29 14 7 1 0 0
+29 14 8 1 0 0
+29 14 9 1 0 0
+29 14 10 1 0 0
+29 14 11 1 0 0
+29 14 12 1 0 0
+29 14 13 1 0 0
+29 14 14 1 0 0
+29 14 15 1 0 0
+29 14 16 1 0 0
+29 14 17 1 0 0
+29 14 18 1 0 0.187134
+29 14 19 1 0 0.354004
+29 14 20 1 0 0.476074
+29 14 21 1 0 0.580078
+29 14 22 1 0 0.675781
+29 14 23 1 0 0.759766
+29 14 24 1 0 0.832031
+29 14 25 1 0 0.898438
+29 14 26 1 0.147827 0.958984
+29 14 27 1 0.218628 1
+29 14 28 1 0.242798 1
+29 14 29 1 0.252197 1
+29 14 30 1 0.259277 1
+29 14 31 1 0.26416 1
+29 15 0 1 0 0
+29 15 1 1 0 0
+29 15 2 1 0 0
+29 15 3 1 0 0
+29 15 4 1 0 0
+29 15 5 1 0 0
+29 15 6 1 0 0
+29 15 7 1 0 0
+29 15 8 1 0 0
+29 15 9 1 0 0
+29 15 10 1 0 0
+29 15 11 1 0 0
+29 15 12 1 0 0
+29 15 13 1 0 0
+29 15 14 1 0 0
+29 15 15 1 0 0
+29 15 16 1 0 0
+29 15 17 1 0 0
+29 15 18 1 0 0.181641
+29 15 19 1 0 0.350586
+29 15 20 1 0 0.474854
+29 15 21 1 0 0.578125
+29 15 22 1 0 0.673828
+29 15 23 1 0 0.757812
+29 15 24 1 0 0.830566
+29 15 25 1 0.0803223 0.897949
+29 15 26 1 0.205566 0.958496
+29 15 27 1 0.258789 1
+29 15 28 1 0.277344 1
+29 15 29 1 0.282959 1
+29 15 30 1 0.286621 1
+29 15 31 1 0.28833 1
+29 16 0 1 0 0
+29 16 1 1 0 0
+29 16 2 1 0 0
+29 16 3 1 0 0
+29 16 4 1 0 0
+29 16 5 1 0 0
+29 16 6 1 0 0
+29 16 7 1 0 0
+29 16 8 1 0 0
+29 16 9 1 0 0
+29 16 10 1 0 0
+29 16 11 1 0 0
+29 16 12 1 0 0
+29 16 13 1 0 0
+29 16 14 1 0 0
+29 16 15 1 0 0
+29 16 16 1 0 0
+29 16 17 1 0 0
+29 16 18 1 0 0.174438
+29 16 19 1 0 0.345947
+29 16 20 1 0 0.470459
+29 16 21 1 0 0.575684
+29 16 22 1 0 0.670898
+29 16 23 1 0 0.755371
+29 16 24 1 0.0493469 0.828613
+29 16 25 1 0.193481 0.896484
+29 16 26 1 0.267578 0.95752
+29 16 27 1 0.307617 1
+29 16 28 1 0.320801 1
+29 16 29 1 0.32251 1
+29 16 30 1 0.322266 1
+29 16 31 1 0.320068 1
+29 17 0 1 0.0566711 0
+29 17 1 1 0.0566711 0
+29 17 2 1 0.0567017 0
+29 17 3 1 0.0567017 0
+29 17 4 1 0.0567322 0
+29 17 5 1 0.0567932 0
+29 17 6 1 0.0568848 0
+29 17 7 1 0.0570679 0
+29 17 8 1 0.0574646 0
+29 17 9 1 0.058197 0
+29 17 10 1 0.0594788 0
+29 17 11 1 0.0617065 0
+29 17 12 1 0.0654297 0
+29 17 13 1 0.071106 0
+29 17 14 1 0.0795288 0
+29 17 15 1 0.0910645 0
+29 17 16 1 0.0955811 0
+29 17 17 1 0.0881958 0
+29 17 18 1 0.0638428 0.166382
+29 17 19 1 0.0336609 0.340332
+29 17 20 1 0.0246735 0.464844
+29 17 21 1 0.0438232 0.572266
+29 17 22 1 0.0759277 0.666992
+29 17 23 1 0.14624 0.751465
+29 17 24 1 0.216431 0.825684
+29 17 25 1 0.28125 0.894043
+29 17 26 1 0.33252 0.956055
+29 17 27 1 0.363037 1
+29 17 28 1 0.371338 1
+29 17 29 1 0.369385 1
+29 17 30 1 0.36499 1
+29 17 31 1 0.358643 1
+29 18 0 1 0.266357 0
+29 18 1 1 0.266357 0
+29 18 2 1 0.266357 0
+29 18 3 1 0.266357 0
+29 18 4 1 0.266357 0
+29 18 5 1 0.266357 0
+29 18 6 1 0.266357 0
+29 18 7 1 0.266357 0
+29 18 8 1 0.266602 0
+29 18 9 1 0.266602 0
+29 18 10 1 0.26709 0
+29 18 11 1 0.267578 0
+29 18 12 1 0.268311 0
+29 18 13 1 0.269775 0
+29 18 14 1 0.272217 0
+29 18 15 1 0.275635 0
+29 18 16 1 0.2771 0
+29 18 17 1 0.274658 0
+29 18 18 1 0.269531 0.160034
+29 18 19 1 0.263916 0.335205
+29 18 20 1 0.260498 0.458984
+29 18 21 1 0.265137 0.567871
+29 18 22 1 0.268555 0.662109
+29 18 23 1 0.287598 0.746582
+29 18 24 1 0.320801 0.821289
+29 18 25 1 0.361816 0.891113
+29 18 26 1 0.399414 0.953613
+29 18 27 1 0.422607 1
+29 18 28 1 0.426758 1
+29 18 29 1 0.421143 1
+29 18 30 1 0.413086 1
+29 18 31 1 0.402588 1
+29 19 0 1 0.385742 0
+29 19 1 1 0.385742 0
+29 19 2 1 0.385742 0
+29 19 3 1 0.385742 0
+29 19 4 1 0.385742 0
+29 19 5 1 0.385742 0
+29 19 6 1 0.385742 0
+29 19 7 1 0.385742 0
+29 19 8 1 0.385742 0
+29 19 9 1 0.385986 0
+29 19 10 1 0.38623 0
+29 19 11 1 0.386475 0
+29 19 12 1 0.386963 0
+29 19 13 1 0.387939 0
+29 19 14 1 0.389404 0
+29 19 15 1 0.391602 0
+29 19 16 1 0.392822 0
+29 19 17 1 0.391846 0
+29 19 18 1 0.390137 0.158813
+29 19 19 1 0.387207 0.331543
+29 19 20 1 0.384277 0.453369
+29 19 21 1 0.383789 0.560547
+29 19 22 1 0.387451 0.656738
+29 19 23 1 0.393066 0.740234
+29 19 24 1 0.410889 0.81543
+29 19 25 1 0.438232 0.88623
+29 19 26 1 0.466064 0.950195
+29 19 27 1 0.483643 1
+29 19 28 1 0.484619 1
+29 19 29 1 0.475586 1
+29 19 30 1 0.463867 1
+29 19 31 1 0.449463 1
+29 20 0 1 0.482666 0
+29 20 1 1 0.482666 0
+29 20 2 1 0.482666 0
+29 20 3 1 0.482666 0
+29 20 4 1 0.482666 0
+29 20 5 1 0.482666 0
+29 20 6 1 0.482666 0
+29 20 7 1 0.48291 0
+29 20 8 1 0.48291 0
+29 20 9 1 0.48291 0
+29 20 10 1 0.483154 0
+29 20 11 1 0.483398 0
+29 20 12 1 0.483643 0
+29 20 13 1 0.484375 0
+29 20 14 1 0.485352 0
+29 20 15 1 0.487061 0
+29 20 16 1 0.488281 0
+29 20 17 1 0.489014 0
+29 20 18 1 0.489014 0.165283
+29 20 19 1 0.487793 0.331299
+29 20 20 1 0.485596 0.449707
+29 20 21 1 0.483398 0.554199
+29 20 22 1 0.484131 0.649902
+29 20 23 1 0.485596 0.73291
+29 20 24 1 0.493164 0.808105
+29 20 25 1 0.510254 0.880371
+29 20 26 1 0.530762 0.945801
+29 20 27 1 0.543945 1
+29 20 28 1 0.541992 1
+29 20 29 1 0.530273 1
+29 20 30 1 0.515625 1
+29 20 31 1 0.497559 1
+29 21 0 1 0.568848 0
+29 21 1 1 0.568848 0
+29 21 2 1 0.568848 0
+29 21 3 1 0.568848 0
+29 21 4 1 0.568848 0
+29 21 5 1 0.568848 0
+29 21 6 1 0.568848 0
+29 21 7 1 0.568848 0
+29 21 8 1 0.568848 0
+29 21 9 1 0.568848 0
+29 21 10 1 0.568848 0
+29 21 11 1 0.569336 0
+29 21 12 1 0.569336 0
+29 21 13 1 0.569824 0
+29 21 14 1 0.570801 0
+29 21 15 1 0.572266 0
+29 21 16 1 0.57373 0
+29 21 17 1 0.575684 0
+29 21 18 1 0.577148 0.179688
+29 21 19 1 0.577148 0.335205
+29 21 20 1 0.576172 0.448975
+29 21 21 1 0.57373 0.549316
+29 21 22 1 0.571289 0.641602
+29 21 23 1 0.571777 0.725586
+29 21 24 1 0.571777 0.799316
+29 21 25 1 0.580078 0.87207
+29 21 26 1 0.59375 0.939453
+29 21 27 1 0.603516 0.997559
+29 21 28 1 0.599609 1
+29 21 29 1 0.585449 1
+29 21 30 1 0.567383 1
+29 21 31 1 0.546387 1
+29 22 0 1 0.646484 0
+29 22 1 1 0.646484 0
+29 22 2 1 0.646484 0
+29 22 3 1 0.646484 0
+29 22 4 1 0.646484 0
+29 22 5 1 0.646484 0
+29 22 6 1 0.646484 0
+29 22 7 1 0.646484 0
+29 22 8 1 0.646484 0
+29 22 9 1 0.646484 0
+29 22 10 1 0.646484 0
+29 22 11 1 0.646484 0
+29 22 12 1 0.646973 0
+29 22 13 1 0.647461 0
+29 22 14 1 0.647949 0
+29 22 15 1 0.648926 0
+29 22 16 1 0.650879 0
+29 22 17 1 0.65332 0
+29 22 18 1 0.655762 0.19873
+29 22 19 1 0.657227 0.342529
+29 22 20 1 0.657715 0.451172
+29 22 21 1 0.655762 0.547363
+29 22 22 1 0.652344 0.635254
+29 22 23 1 0.648926 0.71582
+29 22 24 1 0.647461 0.790039
+29 22 25 1 0.647949 0.862305
+29 22 26 1 0.654785 0.931641
+29 22 27 1 0.661133 0.991211
+29 22 28 1 0.655762 1
+29 22 29 1 0.639648 1
+29 22 30 1 0.619141 1
+29 22 31 1 0.594727 1
+29 23 0 1 0.714355 0
+29 23 1 1 0.714355 0
+29 23 2 1 0.714355 0
+29 23 3 1 0.714355 0
+29 23 4 1 0.714355 0
+29 23 5 1 0.714355 0
+29 23 6 1 0.714355 0
+29 23 7 1 0.714355 0
+29 23 8 1 0.714355 0
+29 23 9 1 0.714355 0
+29 23 10 1 0.714355 0
+29 23 11 1 0.714355 0
+29 23 12 1 0.714844 0
+29 23 13 1 0.714844 0
+29 23 14 1 0.715332 0
+29 23 15 1 0.716309 0
+29 23 16 1 0.717773 0
+29 23 17 1 0.721191 0
+29 23 18 1 0.724121 0.216919
+29 23 19 1 0.727051 0.351074
+29 23 20 1 0.728516 0.455078
+29 23 21 1 0.727539 0.547363
+29 23 22 1 0.724609 0.631836
+29 23 23 1 0.720215 0.708496
+29 23 24 1 0.71582 0.779785
+29 23 25 1 0.711914 0.851562
+29 23 26 1 0.711914 0.921875
+29 23 27 1 0.714844 0.983887
+29 23 28 1 0.708008 1
+29 23 29 1 0.69043 1
+29 23 30 1 0.66748 1
+29 23 31 1 0.640625 1
+29 24 0 1 0.773926 0
+29 24 1 1 0.773926 0
+29 24 2 1 0.773926 0
+29 24 3 1 0.773926 0
+29 24 4 1 0.773926 0
+29 24 5 1 0.773926 0
+29 24 6 1 0.773926 0
+29 24 7 1 0.773926 0
+29 24 8 1 0.774414 0
+29 24 9 1 0.774414 0
+29 24 10 1 0.774414 0
+29 24 11 1 0.774414 0
+29 24 12 1 0.774414 0
+29 24 13 1 0.774902 0
+29 24 14 1 0.775391 0
+29 24 15 1 0.775879 0
+29 24 16 1 0.777344 0
+29 24 17 1 0.780762 0
+29 24 18 1 0.784668 0.230713
+29 24 19 1 0.788086 0.35791
+29 24 20 1 0.790527 0.45874
+29 24 21 1 0.791016 0.54834
+29 24 22 1 0.789062 0.629883
+29 24 23 1 0.784668 0.703125
+29 24 24 1 0.778809 0.770508
+29 24 25 1 0.772461 0.84082
+29 24 26 1 0.766602 0.910645
+29 24 27 1 0.764648 0.974609
+29 24 28 1 0.757324 1
+29 24 29 1 0.738281 1
+29 24 30 1 0.713867 1
+29 24 31 1 0.68457 1
+29 25 0 1 0.833008 0
+29 25 1 1 0.833008 0
+29 25 2 1 0.833008 0
+29 25 3 1 0.833008 0
+29 25 4 1 0.833008 0
+29 25 5 1 0.833008 0
+29 25 6 1 0.833008 0
+29 25 7 1 0.833008 0
+29 25 8 1 0.833008 0
+29 25 9 1 0.833008 0
+29 25 10 1 0.833008 0
+29 25 11 1 0.833008 0
+29 25 12 1 0.833496 0
+29 25 13 1 0.833496 0
+29 25 14 1 0.833984 0
+29 25 15 1 0.834473 0
+29 25 16 1 0.835449 0
+29 25 17 1 0.838867 0
+29 25 18 1 0.842773 0.237793
+29 25 19 1 0.84668 0.36084
+29 25 20 1 0.850098 0.459717
+29 25 21 1 0.851562 0.547852
+29 25 22 1 0.851074 0.627441
+29 25 23 1 0.847656 0.69873
+29 25 24 1 0.842285 0.762695
+29 25 25 1 0.833984 0.828613
+29 25 26 1 0.824707 0.896973
+29 25 27 1 0.816406 0.962402
+29 25 28 1 0.808105 1
+29 25 29 1 0.788086 1
+29 25 30 1 0.762207 1
+29 25 31 1 0.730957 1
+29 26 0 1 0.891113 0
+29 26 1 1 0.891113 0
+29 26 2 1 0.891113 0
+29 26 3 1 0.891113 0
+29 26 4 1 0.891113 0
+29 26 5 1 0.891113 0
+29 26 6 1 0.891113 0
+29 26 7 1 0.891113 0
+29 26 8 1 0.891113 0
+29 26 9 1 0.891113 0
+29 26 10 1 0.891113 0
+29 26 11 1 0.891113 0
+29 26 12 1 0.891113 0
+29 26 13 1 0.891602 0
+29 26 14 1 0.891602 0
+29 26 15 1 0.89209 0
+29 26 16 1 0.892578 0
+29 26 17 1 0.895996 0
+29 26 18 1 0.900391 0.233032
+29 26 19 1 0.904297 0.356445
+29 26 20 1 0.907227 0.454834
+29 26 21 1 0.909668 0.54248
+29 26 22 1 0.909668 0.621582
+29 26 23 1 0.907715 0.691895
+29 26 24 1 0.90332 0.754883
+29 26 25 1 0.895996 0.817871
+29 26 26 1 0.884766 0.881348
+29 26 27 1 0.871582 0.946777
+29 26 28 1 0.860352 1
+29 26 29 1 0.840332 1
+29 26 30 1 0.812988 1
+29 26 31 1 0.779297 1
+29 27 0 1 0.947266 0
+29 27 1 1 0.947266 0
+29 27 2 1 0.947266 0
+29 27 3 1 0.947266 0
+29 27 4 1 0.947266 0
+29 27 5 1 0.947266 0
+29 27 6 1 0.947266 0
+29 27 7 1 0.947266 0
+29 27 8 1 0.947266 0
+29 27 9 1 0.947266 0
+29 27 10 1 0.947266 0
+29 27 11 1 0.947266 0
+29 27 12 1 0.947266 0
+29 27 13 1 0.947754 0
+29 27 14 1 0.947754 0
+29 27 15 1 0.948242 0
+29 27 16 1 0.94873 0
+29 27 17 1 0.951172 0
+29 27 18 1 0.955566 0.210083
+29 27 19 1 0.959473 0.340088
+29 27 20 1 0.962891 0.440674
+29 27 21 1 0.965332 0.529297
+29 27 22 1 0.96582 0.609375
+29 27 23 1 0.964355 0.679688
+29 27 24 1 0.960938 0.742676
+29 27 25 1 0.95459 0.805176
+29 27 26 1 0.944336 0.866699
+29 27 27 1 0.929688 0.928223
+29 27 28 1 0.913574 0.989258
+29 27 29 1 0.893555 1
+29 27 30 1 0.865234 1
+29 27 31 0.975586 0.82959 1
+29 28 0 1 1 0
+29 28 1 1 1 0
+29 28 2 1 1 0
+29 28 3 1 1 0
+29 28 4 1 1 0
+29 28 5 1 1 0
+29 28 6 1 1 0
+29 28 7 1 1 0
+29 28 8 1 1 0
+29 28 9 1 1 0
+29 28 10 1 1 0
+29 28 11 1 1 0
+29 28 12 1 1 0
+29 28 13 1 1 0
+29 28 14 1 1 0
+29 28 15 1 1 0
+29 28 16 1 1 0
+29 28 17 1 1 0
+29 28 18 1 1 0.159546
+29 28 19 1 1 0.308838
+29 28 20 1 1 0.414795
+29 28 21 1 1 0.505859
+29 28 22 1 1 0.586914
+29 28 23 1 1 0.658691
+29 28 24 1 1 0.722656
+29 28 25 1 1 0.786621
+29 28 26 1 1 0.849121
+29 28 27 1 0.986816 0.909668
+29 28 28 1 0.968262 0.967773
+29 28 29 1 0.947754 1
+29 28 30 1 0.917969 1
+29 28 31 0.932617 0.881348 1
+29 29 0 1 1 0
+29 29 1 1 1 0
+29 29 2 1 1 0
+29 29 3 1 1 0
+29 29 4 1 1 0
+29 29 5 1 1 0
+29 29 6 1 1 0
+29 29 7 1 1 0
+29 29 8 1 1 0
+29 29 9 1 1 0
+29 29 10 1 1 0
+29 29 11 1 1 0
+29 29 12 1 1 0
+29 29 13 1 1 0
+29 29 14 1 1 0
+29 29 15 1 1 0
+29 29 16 1 1 0
+29 29 17 1 1 0
+29 29 18 1 1 0.0401611
+29 29 19 1 1 0.26123
+29 29 20 1 1 0.376953
+29 29 21 1 1 0.471924
+29 29 22 1 1 0.555176
+29 29 23 1 1 0.62793
+29 29 24 1 1 0.693359
+29 29 25 1 1 0.757812
+29 29 26 1 1 0.822266
+29 29 27 1 1 0.885254
+29 29 28 1 1 0.945312
+29 29 29 1 1 1
+29 29 30 0.945312 0.971191 1
+29 29 31 0.880859 0.936035 1
+29 30 0 1 1 0
+29 30 1 1 1 0
+29 30 2 1 1 0
+29 30 3 1 1 0
+29 30 4 1 1 0
+29 30 5 1 1 0
+29 30 6 1 1 0
+29 30 7 1 1 0
+29 30 8 1 1 0
+29 30 9 1 1 0
+29 30 10 1 1 0
+29 30 11 1 1 0
+29 30 12 1 1 0
+29 30 13 1 1 0
+29 30 14 1 1 0
+29 30 15 1 1 0
+29 30 16 1 1 0
+29 30 17 1 1 0
+29 30 18 1 1 0
+29 30 19 1 1 0.19519
+29 30 20 1 1 0.329346
+29 30 21 1 1 0.430176
+29 30 22 1 1 0.516113
+29 30 23 1 1 0.590332
+29 30 24 1 1 0.65625
+29 30 25 1 1 0.722168
+29 30 26 1 1 0.787598
+29 30 27 1 1 0.852051
+29 30 28 0.969238 1 0.913574
+29 30 29 0.928223 1 0.972656
+29 30 30 0.878906 1 1
+29 30 31 0.818359 0.993652 1
+29 31 0 0.999023 1 0
+29 31 1 0.999023 1 0
+29 31 2 0.999023 1 0
+29 31 3 0.999023 1 0
+29 31 4 0.999023 1 0
+29 31 5 0.999023 1 0
+29 31 6 0.999023 1 0
+29 31 7 0.999023 1 0
+29 31 8 0.999023 1 0
+29 31 9 0.999023 1 0
+29 31 10 0.999023 1 0
+29 31 11 0.999023 1 0
+29 31 12 0.999023 1 0
+29 31 13 0.999023 1 0
+29 31 14 0.998535 1 0
+29 31 15 0.998535 1 0
+29 31 16 0.998047 1 0
+29 31 17 0.998047 1 0
+29 31 18 0.99707 1 0
+29 31 19 0.995117 1 0.0828247
+29 31 20 0.992188 1 0.270264
+29 31 21 0.987305 1 0.380615
+29 31 22 0.980957 1 0.470215
+29 31 23 0.972656 1 0.545898
+29 31 24 0.961914 1 0.613281
+29 31 25 0.948242 1 0.679688
+29 31 26 0.929688 1 0.746094
+29 31 27 0.905762 1 0.812012
+29 31 28 0.875488 1 0.876465
+29 31 29 0.837891 1 0.938477
+29 31 30 0.791992 1 0.996094
+29 31 31 0.73584 1 1
+30 0 0 1 0 0
+30 0 1 1 0 0
+30 0 2 1 0 0
+30 0 3 1 0 0
+30 0 4 1 0 0
+30 0 5 1 0 0
+30 0 6 1 0 0
+30 0 7 1 0 0
+30 0 8 1 0 0
+30 0 9 1 0 0
+30 0 10 1 0 0
+30 0 11 1 0 0
+30 0 12 1 0 0
+30 0 13 1 0 0
+30 0 14 1 0 0
+30 0 15 1 0 0
+30 0 16 1 0 0
+30 0 17 1 0 0
+30 0 18 1 0 0.0334473
+30 0 19 1 0 0.282471
+30 0 20 1 0 0.413818
+30 0 21 1 0 0.519043
+30 0 22 1 0 0.614258
+30 0 23 1 0 0.69873
+30 0 24 1 0 0.772461
+30 0 25 1 0 0.842773
+30 0 26 1 0 0.907715
+30 0 27 1 0 0.966309
+30 0 28 1 0.123108 1
+30 0 29 1 0.170166 1
+30 0 30 1 0.190063 1
+30 0 31 1 0.206299 1
+30 1 0 1 0 0
+30 1 1 1 0 0
+30 1 2 1 0 0
+30 1 3 1 0 0
+30 1 4 1 0 0
+30 1 5 1 0 0
+30 1 6 1 0 0
+30 1 7 1 0 0
+30 1 8 1 0 0
+30 1 9 1 0 0
+30 1 10 1 0 0
+30 1 11 1 0 0
+30 1 12 1 0 0
+30 1 13 1 0 0
+30 1 14 1 0 0
+30 1 15 1 0 0
+30 1 16 1 0 0
+30 1 17 1 0 0
+30 1 18 1 0 0.0334473
+30 1 19 1 0 0.282471
+30 1 20 1 0 0.413818
+30 1 21 1 0 0.519043
+30 1 22 1 0 0.614258
+30 1 23 1 0 0.69873
+30 1 24 1 0 0.772461
+30 1 25 1 0 0.842773
+30 1 26 1 0 0.907715
+30 1 27 1 0 0.966309
+30 1 28 1 0.123108 1
+30 1 29 1 0.170166 1
+30 1 30 1 0.190063 1
+30 1 31 1 0.206299 1
+30 2 0 1 0 0
+30 2 1 1 0 0
+30 2 2 1 0 0
+30 2 3 1 0 0
+30 2 4 1 0 0
+30 2 5 1 0 0
+30 2 6 1 0 0
+30 2 7 1 0 0
+30 2 8 1 0 0
+30 2 9 1 0 0
+30 2 10 1 0 0
+30 2 11 1 0 0
+30 2 12 1 0 0
+30 2 13 1 0 0
+30 2 14 1 0 0
+30 2 15 1 0 0
+30 2 16 1 0 0
+30 2 17 1 0 0
+30 2 18 1 0 0.0334473
+30 2 19 1 0 0.282471
+30 2 20 1 0 0.413818
+30 2 21 1 0 0.519043
+30 2 22 1 0 0.614258
+30 2 23 1 0 0.69873
+30 2 24 1 0 0.772461
+30 2 25 1 0 0.842773
+30 2 26 1 0 0.907715
+30 2 27 1 0 0.966309
+30 2 28 1 0.123108 1
+30 2 29 1 0.170288 1
+30 2 30 1 0.190063 1
+30 2 31 1 0.206299 1
+30 3 0 1 0 0
+30 3 1 1 0 0
+30 3 2 1 0 0
+30 3 3 1 0 0
+30 3 4 1 0 0
+30 3 5 1 0 0
+30 3 6 1 0 0
+30 3 7 1 0 0
+30 3 8 1 0 0
+30 3 9 1 0 0
+30 3 10 1 0 0
+30 3 11 1 0 0
+30 3 12 1 0 0
+30 3 13 1 0 0
+30 3 14 1 0 0
+30 3 15 1 0 0
+30 3 16 1 0 0
+30 3 17 1 0 0
+30 3 18 1 0 0.0334167
+30 3 19 1 0 0.282471
+30 3 20 1 0 0.413818
+30 3 21 1 0 0.519043
+30 3 22 1 0 0.614258
+30 3 23 1 0 0.69873
+30 3 24 1 0 0.772461
+30 3 25 1 0 0.842773
+30 3 26 1 0 0.907715
+30 3 27 1 0 0.966309
+30 3 28 1 0.123169 1
+30 3 29 1 0.170288 1
+30 3 30 1 0.190186 1
+30 3 31 1 0.206299 1
+30 4 0 1 0 0
+30 4 1 1 0 0
+30 4 2 1 0 0
+30 4 3 1 0 0
+30 4 4 1 0 0
+30 4 5 1 0 0
+30 4 6 1 0 0
+30 4 7 1 0 0
+30 4 8 1 0 0
+30 4 9 1 0 0
+30 4 10 1 0 0
+30 4 11 1 0 0
+30 4 12 1 0 0
+30 4 13 1 0 0
+30 4 14 1 0 0
+30 4 15 1 0 0
+30 4 16 1 0 0
+30 4 17 1 0 0
+30 4 18 1 0 0.0333862
+30 4 19 1 0 0.282471
+30 4 20 1 0 0.413818
+30 4 21 1 0 0.519043
+30 4 22 1 0 0.614258
+30 4 23 1 0 0.69873
+30 4 24 1 0 0.772461
+30 4 25 1 0 0.842773
+30 4 26 1 0 0.907715
+30 4 27 1 0 0.966309
+30 4 28 1 0.123291 1
+30 4 29 1 0.17041 1
+30 4 30 1 0.190186 1
+30 4 31 1 0.206299 1
+30 5 0 1 0 0
+30 5 1 1 0 0
+30 5 2 1 0 0
+30 5 3 1 0 0
+30 5 4 1 0 0
+30 5 5 1 0 0
+30 5 6 1 0 0
+30 5 7 1 0 0
+30 5 8 1 0 0
+30 5 9 1 0 0
+30 5 10 1 0 0
+30 5 11 1 0 0
+30 5 12 1 0 0
+30 5 13 1 0 0
+30 5 14 1 0 0
+30 5 15 1 0 0
+30 5 16 1 0 0
+30 5 17 1 0 0
+30 5 18 1 0 0.0333252
+30 5 19 1 0 0.282471
+30 5 20 1 0 0.413818
+30 5 21 1 0 0.519043
+30 5 22 1 0 0.614258
+30 5 23 1 0 0.69873
+30 5 24 1 0 0.772461
+30 5 25 1 0 0.842773
+30 5 26 1 0 0.907715
+30 5 27 1 0 0.966309
+30 5 28 1 0.123535 1
+30 5 29 1 0.170532 1
+30 5 30 1 0.190308 1
+30 5 31 1 0.206421 1
+30 6 0 1 0 0
+30 6 1 1 0 0
+30 6 2 1 0 0
+30 6 3 1 0 0
+30 6 4 1 0 0
+30 6 5 1 0 0
+30 6 6 1 0 0
+30 6 7 1 0 0
+30 6 8 1 0 0
+30 6 9 1 0 0
+30 6 10 1 0 0
+30 6 11 1 0 0
+30 6 12 1 0 0
+30 6 13 1 0 0
+30 6 14 1 0 0
+30 6 15 1 0 0
+30 6 16 1 0 0
+30 6 17 1 0 0
+30 6 18 1 0 0.0331726
+30 6 19 1 0 0.282471
+30 6 20 1 0 0.413818
+30 6 21 1 0 0.519043
+30 6 22 1 0 0.614258
+30 6 23 1 0 0.69873
+30 6 24 1 0 0.772461
+30 6 25 1 0 0.842773
+30 6 26 1 0 0.907715
+30 6 27 1 0 0.966309
+30 6 28 1 0.123962 1
+30 6 29 1 0.170776 1
+30 6 30 1 0.190552 1
+30 6 31 1 0.206665 1
+30 7 0 1 0 0
+30 7 1 1 0 0
+30 7 2 1 0 0
+30 7 3 1 0 0
+30 7 4 1 0 0
+30 7 5 1 0 0
+30 7 6 1 0 0
+30 7 7 1 0 0
+30 7 8 1 0 0
+30 7 9 1 0 0
+30 7 10 1 0 0
+30 7 11 1 0 0
+30 7 12 1 0 0
+30 7 13 1 0 0
+30 7 14 1 0 0
+30 7 15 1 0 0
+30 7 16 1 0 0
+30 7 17 1 0 0
+30 7 18 1 0 0.0329285
+30 7 19 1 0 0.282471
+30 7 20 1 0 0.413818
+30 7 21 1 0 0.519043
+30 7 22 1 0 0.614258
+30 7 23 1 0 0.69873
+30 7 24 1 0 0.772461
+30 7 25 1 0 0.842773
+30 7 26 1 0 0.907715
+30 7 27 1 0 0.966309
+30 7 28 1 0.124817 1
+30 7 29 1 0.171387 1
+30 7 30 1 0.19104 1
+30 7 31 1 0.207031 1
+30 8 0 1 0 0
+30 8 1 1 0 0
+30 8 2 1 0 0
+30 8 3 1 0 0
+30 8 4 1 0 0
+30 8 5 1 0 0
+30 8 6 1 0 0
+30 8 7 1 0 0
+30 8 8 1 0 0
+30 8 9 1 0 0
+30 8 10 1 0 0
+30 8 11 1 0 0
+30 8 12 1 0 0
+30 8 13 1 0 0
+30 8 14 1 0 0
+30 8 15 1 0 0
+30 8 16 1 0 0
+30 8 17 1 0 0
+30 8 18 1 0 0.0324097
+30 8 19 1 0 0.282471
+30 8 20 1 0 0.413818
+30 8 21 1 0 0.518555
+30 8 22 1 0 0.614258
+30 8 23 1 0 0.69873
+30 8 24 1 0 0.772461
+30 8 25 1 0 0.842773
+30 8 26 1 0 0.907715
+30 8 27 1 0 0.966309
+30 8 28 1 0.126465 1
+30 8 29 1 0.172485 1
+30 8 30 1 0.192017 1
+30 8 31 1 0.207764 1
+30 9 0 1 0 0
+30 9 1 1 0 0
+30 9 2 1 0 0
+30 9 3 1 0 0
+30 9 4 1 0 0
+30 9 5 1 0 0
+30 9 6 1 0 0
+30 9 7 1 0 0
+30 9 8 1 0 0
+30 9 9 1 0 0
+30 9 10 1 0 0
+30 9 11 1 0 0
+30 9 12 1 0 0
+30 9 13 1 0 0
+30 9 14 1 0 0
+30 9 15 1 0 0
+30 9 16 1 0 0
+30 9 17 1 0 0
+30 9 18 1 0 0.0314636
+30 9 19 1 0 0.282227
+30 9 20 1 0 0.413574
+30 9 21 1 0 0.518555
+30 9 22 1 0 0.614258
+30 9 23 1 0 0.698242
+30 9 24 1 0 0.772461
+30 9 25 1 0 0.842773
+30 9 26 1 0 0.907715
+30 9 27 1 0 0.966309
+30 9 28 1 0.129517 1
+30 9 29 1 0.174683 1
+30 9 30 1 0.193726 1
+30 9 31 1 0.209229 1
+30 10 0 1 0 0
+30 10 1 1 0 0
+30 10 2 1 0 0
+30 10 3 1 0 0
+30 10 4 1 0 0
+30 10 5 1 0 0
+30 10 6 1 0 0
+30 10 7 1 0 0
+30 10 8 1 0 0
+30 10 9 1 0 0
+30 10 10 1 0 0
+30 10 11 1 0 0
+30 10 12 1 0 0
+30 10 13 1 0 0
+30 10 14 1 0 0
+30 10 15 1 0 0
+30 10 16 1 0 0
+30 10 17 1 0 0
+30 10 18 1 0 0.0297394
+30 10 19 1 0 0.281738
+30 10 20 1 0 0.41333
+30 10 21 1 0 0.518555
+30 10 22 1 0 0.61377
+30 10 23 1 0 0.698242
+30 10 24 1 0 0.772461
+30 10 25 1 0 0.842773
+30 10 26 1 0 0.907715
+30 10 27 1 0 0.966309
+30 10 28 1 0.13501 1
+30 10 29 1 0.178467 1
+30 10 30 1 0.196899 1
+30 10 31 1 0.211914 1
+30 11 0 1 0 0
+30 11 1 1 0 0
+30 11 2 1 0 0
+30 11 3 1 0 0
+30 11 4 1 0 0
+30 11 5 1 0 0
+30 11 6 1 0 0
+30 11 7 1 0 0
+30 11 8 1 0 0
+30 11 9 1 0 0
+30 11 10 1 0 0
+30 11 11 1 0 0
+30 11 12 1 0 0
+30 11 13 1 0 0
+30 11 14 1 0 0
+30 11 15 1 0 0
+30 11 16 1 0 0
+30 11 17 1 0 0
+30 11 18 1 0 0.0267334
+30 11 19 1 0 0.28125
+30 11 20 1 0 0.412842
+30 11 21 1 0 0.518555
+30 11 22 1 0 0.61377
+30 11 23 1 0 0.698242
+30 11 24 1 0 0.772461
+30 11 25 1 0 0.842773
+30 11 26 1 0 0.907715
+30 11 27 1 0 0.966309
+30 11 28 1 0.144043 1
+30 11 29 1 0.184937 1
+30 11 30 1 0.202271 1
+30 11 31 1 0.216431 1
+30 12 0 1 0 0
+30 12 1 1 0 0
+30 12 2 1 0 0
+30 12 3 1 0 0
+30 12 4 1 0 0
+30 12 5 1 0 0
+30 12 6 1 0 0
+30 12 7 1 0 0
+30 12 8 1 0 0
+30 12 9 1 0 0
+30 12 10 1 0 0
+30 12 11 1 0 0
+30 12 12 1 0 0
+30 12 13 1 0 0
+30 12 14 1 0 0
+30 12 15 1 0 0
+30 12 16 1 0 0
+30 12 17 1 0 0
+30 12 18 1 0 0.0216675
+30 12 19 1 0 0.280273
+30 12 20 1 0 0.412109
+30 12 21 1 0 0.518066
+30 12 22 1 0 0.613281
+30 12 23 1 0 0.697754
+30 12 24 1 0 0.771973
+30 12 25 1 0 0.842285
+30 12 26 1 0 0.907715
+30 12 27 1 0 0.966309
+30 12 28 1 0.158325 1
+30 12 29 1 0.195557 1
+30 12 30 1 0.211182 1
+30 12 31 1 0.223999 1
+30 13 0 1 0 0
+30 13 1 1 0 0
+30 13 2 1 0 0
+30 13 3 1 0 0
+30 13 4 1 0 0
+30 13 5 1 0 0
+30 13 6 1 0 0
+30 13 7 1 0 0
+30 13 8 1 0 0
+30 13 9 1 0 0
+30 13 10 1 0 0
+30 13 11 1 0 0
+30 13 12 1 0 0
+30 13 13 1 0 0
+30 13 14 1 0 0
+30 13 15 1 0 0
+30 13 16 1 0 0
+30 13 17 1 0 0
+30 13 18 1 0 0.013588
+30 13 19 1 0 0.278564
+30 13 20 1 0 0.410889
+30 13 21 1 0 0.517578
+30 13 22 1 0 0.612793
+30 13 23 1 0 0.697266
+30 13 24 1 0 0.771484
+30 13 25 1 0 0.842285
+30 13 26 1 0 0.907227
+30 13 27 1 0.0639038 0.966309
+30 13 28 1 0.179077 1
+30 13 29 1 0.21167 1
+30 13 30 1 0.224976 1
+30 13 31 1 0.235718 1
+30 14 0 1 0 0
+30 14 1 1 0 0
+30 14 2 1 0 0
+30 14 3 1 0 0
+30 14 4 1 0 0
+30 14 5 1 0 0
+30 14 6 1 0 0
+30 14 7 1 0 0
+30 14 8 1 0 0
+30 14 9 1 0 0
+30 14 10 1 0 0
+30 14 11 1 0 0
+30 14 12 1 0 0
+30 14 13 1 0 0
+30 14 14 1 0 0
+30 14 15 1 0 0
+30 14 16 1 0 0
+30 14 17 1 0 0
+30 14 18 1 0 0.00129318
+30 14 19 1 0 0.276123
+30 14 20 1 0 0.408936
+30 14 21 1 0 0.516602
+30 14 22 1 0 0.611816
+30 14 23 1 0 0.696289
+30 14 24 1 0 0.770996
+30 14 25 1 0 0.841797
+30 14 26 1 0 0.906738
+30 14 27 1 0.124023 0.96582
+30 14 28 1 0.207642 1
+30 14 29 1 0.234741 1
+30 14 30 1 0.245117 1
+30 14 31 1 0.253174 1
+30 15 0 1 0 0
+30 15 1 1 0 0
+30 15 2 1 0 0
+30 15 3 1 0 0
+30 15 4 1 0 0
+30 15 5 1 0 0
+30 15 6 1 0 0
+30 15 7 1 0 0
+30 15 8 1 0 0
+30 15 9 1 0 0
+30 15 10 1 0 0
+30 15 11 1 0 0
+30 15 12 1 0 0
+30 15 13 1 0 0
+30 15 14 1 0 0
+30 15 15 1 0 0
+30 15 16 1 0 0
+30 15 17 1 0 0
+30 15 18 1 0 0
+30 15 19 1 0 0.272461
+30 15 20 1 0 0.40625
+30 15 21 1 0 0.515137
+30 15 22 1 0 0.609863
+30 15 23 1 0 0.694824
+30 15 24 1 0 0.769531
+30 15 25 1 0 0.84082
+30 15 26 1 0 0.90625
+30 15 27 1 0.181763 0.965332
+30 15 28 1 0.244507 1
+30 15 29 1 0.265869 1
+30 15 30 1 0.272705 1
+30 15 31 1 0.277344 1
+30 16 0 1 0 0
+30 16 1 1 0 0
+30 16 2 1 0 0
+30 16 3 1 0 0
+30 16 4 1 0 0
+30 16 5 1 0 0
+30 16 6 1 0 0
+30 16 7 1 0 0
+30 16 8 1 0 0
+30 16 9 1 0 0
+30 16 10 1 0 0
+30 16 11 1 0 0
+30 16 12 1 0 0
+30 16 13 1 0 0
+30 16 14 1 0 0
+30 16 15 1 0 0
+30 16 16 1 0 0
+30 16 17 1 0 0
+30 16 18 1 0 0
+30 16 19 1 0 0.267578
+30 16 20 1 0 0.402344
+30 16 21 1 0 0.513184
+30 16 22 1 0 0.60791
+30 16 23 1 0 0.692383
+30 16 24 1 0 0.767578
+30 16 25 1 0 0.839355
+30 16 26 1 0.146729 0.905273
+30 16 27 1 0.241943 0.964844
+30 16 28 1 0.289307 1
+30 16 29 1 0.305176 1
+30 16 30 1 0.308105 1
+30 16 31 1 0.309082 1
+30 17 0 1 0 0
+30 17 1 1 0 0
+30 17 2 1 0 0
+30 17 3 1 0 0
+30 17 4 1 0 0
+30 17 5 1 0 0
+30 17 6 1 0 0
+30 17 7 1 0 0
+30 17 8 1 0 0
+30 17 9 1 0 0
+30 17 10 1 0 0
+30 17 11 1 0 0
+30 17 12 1 0 0
+30 17 13 1 0 0
+30 17 14 1 0 0
+30 17 15 1 0 0
+30 17 16 1 0 0
+30 17 17 1 0 0
+30 17 18 1 0 0
+30 17 19 1 0 0.261475
+30 17 20 1 0 0.397217
+30 17 21 1 0 0.509277
+30 17 22 1 0 0.60498
+30 17 23 1 0 0.689453
+30 17 24 1 0 0.764648
+30 17 25 1 0.151855 0.836914
+30 17 26 1 0.241455 0.903809
+30 17 27 1 0.304443 0.963867
+30 17 28 1 0.340576 1
+30 17 29 1 0.351318 1
+30 17 30 1 0.350586 1
+30 17 31 1 0.347656 1
+30 18 0 1 0.191406 0
+30 18 1 1 0.191406 0
+30 18 2 1 0.191406 0
+30 18 3 1 0.191406 0
+30 18 4 1 0.191406 0
+30 18 5 1 0.191406 0
+30 18 6 1 0.191406 0
+30 18 7 1 0.191528 0
+30 18 8 1 0.191528 0
+30 18 9 1 0.191772 0
+30 18 10 1 0.192139 0
+30 18 11 1 0.192871 0
+30 18 12 1 0.19397 0
+30 18 13 1 0.195801 0
+30 18 14 1 0.19873 0
+30 18 15 1 0.203003 0
+30 18 16 1 0.206787 0
+30 18 17 1 0.206909 0
+30 18 18 1 0.199585 0
+30 18 19 1 0.190918 0.255371
+30 18 20 1 0.18335 0.391602
+30 18 21 1 0.182373 0.503418
+30 18 22 1 0.187378 0.601074
+30 18 23 1 0.195801 0.685059
+30 18 24 1 0.224854 0.760742
+30 18 25 1 0.270752 0.833984
+30 18 26 1 0.322754 0.901367
+30 18 27 1 0.368164 0.961914
+30 18 28 1 0.395996 1
+30 18 29 1 0.402344 1
+30 18 30 1 0.398193 1
+30 18 31 1 0.391357 1
+30 19 0 1 0.32666 0
+30 19 1 1 0.32666 0
+30 19 2 1 0.32666 0
+30 19 3 1 0.32666 0
+30 19 4 1 0.32666 0
+30 19 5 1 0.32666 0
+30 19 6 1 0.32666 0
+30 19 7 1 0.32666 0
+30 19 8 1 0.32666 0
+30 19 9 1 0.326904 0
+30 19 10 1 0.326904 0
+30 19 11 1 0.327393 0
+30 19 12 1 0.327881 0
+30 19 13 1 0.328857 0
+30 19 14 1 0.330566 0
+30 19 15 1 0.333008 0
+30 19 16 1 0.335205 0
+30 19 17 1 0.334961 0
+30 19 18 1 0.33252 0
+30 19 19 1 0.329346 0.250488
+30 19 20 1 0.325684 0.38623
+30 19 21 1 0.32373 0.497314
+30 19 22 1 0.327148 0.596191
+30 19 23 1 0.328857 0.680176
+30 19 24 1 0.3396 0.755859
+30 19 25 1 0.364014 0.82959
+30 19 26 1 0.397949 0.897949
+30 19 27 1 0.431641 0.959473
+30 19 28 1 0.452881 1
+30 19 29 1 0.455811 1
+30 19 30 1 0.448486 1
+30 19 31 1 0.438232 1
+30 20 0 1 0.427246 0
+30 20 1 1 0.427246 0
+30 20 2 1 0.427246 0
+30 20 3 1 0.427246 0
+30 20 4 1 0.427246 0
+30 20 5 1 0.427246 0
+30 20 6 1 0.427246 0
+30 20 7 1 0.427246 0
+30 20 8 1 0.42749 0
+30 20 9 1 0.42749 0
+30 20 10 1 0.42749 0
+30 20 11 1 0.427734 0
+30 20 12 1 0.428223 0
+30 20 13 1 0.428955 0
+30 20 14 1 0.430176 0
+30 20 15 1 0.431885 0
+30 20 16 1 0.433594 0
+30 20 17 1 0.433838 0
+30 20 18 1 0.433594 0
+30 20 19 1 0.432617 0.248901
+30 20 20 1 0.430908 0.382568
+30 20 21 1 0.428955 0.491699
+30 20 22 1 0.428467 0.588867
+30 20 23 1 0.431152 0.674805
+30 20 24 1 0.43335 0.749512
+30 20 25 1 0.445801 0.82373
+30 20 26 1 0.468018 0.893555
+30 20 27 1 0.49292 0.956055
+30 20 28 1 0.509277 1
+30 20 29 1 0.509277 1
+30 20 30 1 0.499023 1
+30 20 31 1 0.485596 1
+30 21 0 1 0.51416 0
+30 21 1 1 0.51416 0
+30 21 2 1 0.51416 0
+30 21 3 1 0.51416 0
+30 21 4 1 0.51416 0
+30 21 5 1 0.51416 0
+30 21 6 1 0.51416 0
+30 21 7 1 0.51416 0
+30 21 8 1 0.51416 0
+30 21 9 1 0.51416 0
+30 21 10 1 0.51416 0
+30 21 11 1 0.514648 0
+30 21 12 1 0.514648 0
+30 21 13 1 0.515137 0
+30 21 14 1 0.516113 0
+30 21 15 1 0.517578 0
+30 21 16 1 0.519043 0
+30 21 17 1 0.520508 0
+30 21 18 1 0.521484 0
+30 21 19 1 0.522461 0.251709
+30 21 20 1 0.521973 0.381104
+30 21 21 1 0.520508 0.487305
+30 21 22 1 0.518555 0.582031
+30 21 23 1 0.518555 0.666992
+30 21 24 1 0.519043 0.742188
+30 21 25 1 0.522949 0.816406
+30 21 26 1 0.535645 0.887695
+30 21 27 1 0.553223 0.95166
+30 21 28 1 0.56543 1
+30 21 29 1 0.562988 1
+30 21 30 1 0.550293 1
+30 21 31 1 0.53418 1
+30 22 0 1 0.591309 0
+30 22 1 1 0.591309 0
+30 22 2 1 0.591309 0
+30 22 3 1 0.591309 0
+30 22 4 1 0.591309 0
+30 22 5 1 0.591309 0
+30 22 6 1 0.591309 0
+30 22 7 1 0.591309 0
+30 22 8 1 0.591309 0
+30 22 9 1 0.591309 0
+30 22 10 1 0.591309 0
+30 22 11 1 0.591309 0
+30 22 12 1 0.591797 0
+30 22 13 1 0.592285 0
+30 22 14 1 0.592773 0
+30 22 15 1 0.59375 0
+30 22 16 1 0.595215 0
+30 22 17 1 0.597656 0
+30 22 18 1 0.600098 0
+30 22 19 1 0.601562 0.259277
+30 22 20 1 0.602539 0.382812
+30 22 21 1 0.602051 0.485107
+30 22 22 1 0.600098 0.57666
+30 22 23 1 0.598145 0.658691
+30 22 24 1 0.597168 0.734375
+30 22 25 1 0.595703 0.808105
+30 22 26 1 0.600586 0.879883
+30 22 27 1 0.611328 0.945801
+30 22 28 1 0.620117 1
+30 22 29 1 0.615723 1
+30 22 30 1 0.601074 1
+30 22 31 1 0.582031 1
+30 23 0 1 0.65918 0
+30 23 1 1 0.65918 0
+30 23 2 1 0.65918 0
+30 23 3 1 0.65918 0
+30 23 4 1 0.65918 0
+30 23 5 1 0.65918 0
+30 23 6 1 0.65918 0
+30 23 7 1 0.65918 0
+30 23 8 1 0.65918 0
+30 23 9 1 0.65918 0
+30 23 10 1 0.65918 0
+30 23 11 1 0.65918 0
+30 23 12 1 0.659668 0
+30 23 13 1 0.659668 0
+30 23 14 1 0.660156 0
+30 23 15 1 0.661133 0
+30 23 16 1 0.662598 0
+30 23 17 1 0.665039 0
+30 23 18 1 0.667969 0.061554
+30 23 19 1 0.670898 0.269775
+30 23 20 1 0.672852 0.386963
+30 23 21 1 0.67334 0.485352
+30 23 22 1 0.672363 0.573242
+30 23 23 1 0.669434 0.652344
+30 23 24 1 0.666016 0.725098
+30 23 25 1 0.663574 0.799316
+30 23 26 1 0.661621 0.871094
+30 23 27 1 0.666016 0.938477
+30 23 28 1 0.671387 0.99707
+30 23 29 1 0.665527 1
+30 23 30 1 0.648926 1
+30 23 31 1 0.627441 1
+30 24 0 1 0.719238 0
+30 24 1 1 0.719238 0
+30 24 2 1 0.719238 0
+30 24 3 1 0.719238 0
+30 24 4 1 0.719238 0
+30 24 5 1 0.719238 0
+30 24 6 1 0.719238 0
+30 24 7 1 0.719238 0
+30 24 8 1 0.719238 0
+30 24 9 1 0.719238 0
+30 24 10 1 0.719238 0
+30 24 11 1 0.719727 0
+30 24 12 1 0.719727 0
+30 24 13 1 0.720215 0
+30 24 14 1 0.720215 0
+30 24 15 1 0.721191 0
+30 24 16 1 0.722168 0
+30 24 17 1 0.725098 0
+30 24 18 1 0.728516 0.105347
+30 24 19 1 0.731934 0.281006
+30 24 20 1 0.734375 0.392334
+30 24 21 1 0.73584 0.486816
+30 24 22 1 0.73584 0.571777
+30 24 23 1 0.733887 0.647461
+30 24 24 1 0.72998 0.717285
+30 24 25 1 0.724609 0.789062
+30 24 26 1 0.719238 0.86084
+30 24 27 1 0.717773 0.929688
+30 24 28 1 0.719238 0.989746
+30 24 29 1 0.712402 1
+30 24 30 1 0.694336 1
+30 24 31 1 0.671387 1
+30 25 0 1 0.778809 0
+30 25 1 1 0.778809 0
+30 25 2 1 0.778809 0
+30 25 3 1 0.778809 0
+30 25 4 1 0.778809 0
+30 25 5 1 0.778809 0
+30 25 6 1 0.778809 0
+30 25 7 1 0.778809 0
+30 25 8 1 0.778809 0
+30 25 9 1 0.778809 0
+30 25 10 1 0.778809 0
+30 25 11 1 0.778809 0
+30 25 12 1 0.779297 0
+30 25 13 1 0.779297 0
+30 25 14 1 0.779785 0
+30 25 15 1 0.780273 0
+30 25 16 1 0.78125 0
+30 25 17 1 0.78418 0
+30 25 18 1 0.787598 0.135376
+30 25 19 1 0.791504 0.29126
+30 25 20 1 0.794922 0.397705
+30 25 21 1 0.796875 0.48877
+30 25 22 1 0.797852 0.570801
+30 25 23 1 0.796387 0.643555
+30 25 24 1 0.792969 0.710449
+30 25 25 1 0.787109 0.77832
+30 25 26 1 0.779785 0.849121
+30 25 27 1 0.772461 0.917969
+30 25 28 1 0.769531 0.980957
+30 25 29 1 0.76123 1
+30 25 30 1 0.742188 1
+30 25 31 1 0.717285 1
+30 26 0 1 0.837891 0
+30 26 1 1 0.837891 0
+30 26 2 1 0.837891 0
+30 26 3 1 0.837891 0
+30 26 4 1 0.837891 0
+30 26 5 1 0.837891 0
+30 26 6 1 0.837891 0
+30 26 7 1 0.837891 0
+30 26 8 1 0.837891 0
+30 26 9 1 0.837891 0
+30 26 10 1 0.837891 0
+30 26 11 1 0.837891 0
+30 26 12 1 0.837891 0
+30 26 13 1 0.837891 0
+30 26 14 1 0.838379 0
+30 26 15 1 0.838867 0
+30 26 16 1 0.839355 0
+30 26 17 1 0.841797 0
+30 26 18 1 0.845703 0.151611
+30 26 19 1 0.850098 0.297363
+30 26 20 1 0.853516 0.400391
+30 26 21 1 0.856445 0.489258
+30 26 22 1 0.857422 0.568848
+30 26 23 1 0.856934 0.639648
+30 26 24 1 0.85498 0.703613
+30 26 25 1 0.849609 0.769043
+30 26 26 1 0.841309 0.835938
+30 26 27 1 0.830566 0.904297
+30 26 28 1 0.821777 0.96875
+30 26 29 1 0.8125 1
+30 26 30 1 0.791992 1
+30 26 31 1 0.765625 1
+30 27 0 1 0.895508 0
+30 27 1 1 0.895508 0
+30 27 2 1 0.895508 0
+30 27 3 1 0.895508 0
+30 27 4 1 0.895508 0
+30 27 5 1 0.895508 0
+30 27 6 1 0.895508 0
+30 27 7 1 0.895508 0
+30 27 8 1 0.895508 0
+30 27 9 1 0.895508 0
+30 27 10 1 0.895508 0
+30 27 11 1 0.895508 0
+30 27 12 1 0.895508 0
+30 27 13 1 0.895508 0
+30 27 14 1 0.895996 0
+30 27 15 1 0.895996 0
+30 27 16 1 0.896973 0
+30 27 17 1 0.898926 0
+30 27 18 1 0.902832 0.14856
+30 27 19 1 0.906738 0.293945
+30 27 20 1 0.910645 0.396484
+30 27 21 1 0.913574 0.484619
+30 27 22 1 0.915039 0.563477
+30 27 23 1 0.915527 0.633301
+30 27 24 1 0.913574 0.696289
+30 27 25 1 0.909668 0.759277
+30 27 26 1 0.902344 0.823242
+30 27 27 1 0.891113 0.887695
+30 27 28 1 0.876953 0.952637
+30 27 29 1 0.865234 1
+30 27 30 1 0.844238 1
+30 27 31 1 0.816406 1
+30 28 0 1 0.951172 0
+30 28 1 1 0.951172 0
+30 28 2 1 0.951172 0
+30 28 3 1 0.951172 0
+30 28 4 1 0.951172 0
+30 28 5 1 0.951172 0
+30 28 6 1 0.951172 0
+30 28 7 1 0.951172 0
+30 28 8 1 0.951172 0
+30 28 9 1 0.951172 0
+30 28 10 1 0.951172 0
+30 28 11 1 0.951172 0
+30 28 12 1 0.951172 0
+30 28 13 1 0.951172 0
+30 28 14 1 0.951172 0
+30 28 15 1 0.95166 0
+30 28 16 1 0.952148 0
+30 28 17 1 0.953613 0
+30 28 18 1 0.95752 0.114258
+30 28 19 1 0.961426 0.276123
+30 28 20 1 0.965332 0.381836
+30 28 21 1 0.968262 0.470947
+30 28 22 1 0.970215 0.550293
+30 28 23 1 0.970703 0.620605
+30 28 24 1 0.969238 0.683594
+30 28 25 1 0.966309 0.746582
+30 28 26 1 0.959961 0.80957
+30 28 27 1 0.950195 0.87207
+30 28 28 1 0.935059 0.933594
+30 28 29 1 0.918457 0.994629
+30 28 30 1 0.897949 1
+30 28 31 1 0.868652 1
+30 29 0 1 1 0
+30 29 1 1 1 0
+30 29 2 1 1 0
+30 29 3 1 1 0
+30 29 4 1 1 0
+30 29 5 1 1 0
+30 29 6 1 1 0
+30 29 7 1 1 0
+30 29 8 1 1 0
+30 29 9 1 1 0
+30 29 10 1 1 0
+30 29 11 1 1 0
+30 29 12 1 1 0
+30 29 13 1 1 0
+30 29 14 1 1 0
+30 29 15 1 1 0
+30 29 16 1 1 0
+30 29 17 1 1 0
+30 29 18 1 1 0
+30 29 19 1 1 0.238525
+30 29 20 1 1 0.353027
+30 29 21 1 1 0.445801
+30 29 22 1 1 0.526855
+30 29 23 1 1 0.598145
+30 29 24 1 1 0.662109
+30 29 25 1 1 0.726074
+30 29 26 1 1 0.790039
+30 29 27 1 1 0.853516
+30 29 28 1 0.991699 0.914551
+30 29 29 1 0.973633 0.973145
+30 29 30 1 0.95166 1
+30 29 31 1 0.921875 1
+30 30 0 1 1 0
+30 30 1 1 1 0
+30 30 2 1 1 0
+30 30 3 1 1 0
+30 30 4 1 1 0
+30 30 5 1 1 0
+30 30 6 1 1 0
+30 30 7 1 1 0
+30 30 8 1 1 0
+30 30 9 1 1 0
+30 30 10 1 1 0
+30 30 11 1 1 0
+30 30 12 1 1 0
+30 30 13 1 1 0
+30 30 14 1 1 0
+30 30 15 1 1 0
+30 30 16 1 1 0
+30 30 17 1 1 0
+30 30 18 1 1 0
+30 30 19 1 1 0.175659
+30 30 20 1 1 0.310059
+30 30 21 1 1 0.40918
+30 30 22 1 1 0.493164
+30 30 23 1 1 0.565918
+30 30 24 1 1 0.630859
+30 30 25 1 1 0.695801
+30 30 26 1 1 0.760742
+30 30 27 1 1 0.825684
+30 30 28 1 1 0.888672
+30 30 29 1 1 0.949219
+30 30 30 1 1 1
+30 30 31 0.949219 0.975098 1
+30 31 0 1 1 0
+30 31 1 1 1 0
+30 31 2 1 1 0
+30 31 3 1 1 0
+30 31 4 1 1 0
+30 31 5 1 1 0
+30 31 6 1 1 0
+30 31 7 1 1 0
+30 31 8 1 1 0
+30 31 9 1 1 0
+30 31 10 1 1 0
+30 31 11 1 1 0
+30 31 12 1 1 0
+30 31 13 1 1 0
+30 31 14 1 1 0
+30 31 15 1 1 0
+30 31 16 1 1 0
+30 31 17 1 1 0
+30 31 18 1 1 0
+30 31 19 1 1 0.0534668
+30 31 20 1 1 0.253906
+30 31 21 1 1 0.363525
+30 31 22 1 1 0.45166
+30 31 23 1 1 0.526367
+30 31 24 1 1 0.592285
+30 31 25 1 1 0.658203
+30 31 26 1 1 0.724609
+30 31 27 1 1 0.790039
+30 31 28 1 1 0.85498
+30 31 29 0.972656 1 0.91748
+30 31 30 0.931152 1 0.976074
+30 31 31 0.881348 1 1
+31 0 0 1 0 0
+31 0 1 1 0 0
+31 0 2 1 0 0
+31 0 3 1 0 0
+31 0 4 1 0 0
+31 0 5 1 0 0
+31 0 6 1 0 0
+31 0 7 1 0 0
+31 0 8 1 0 0
+31 0 9 1 0 0
+31 0 10 1 0 0
+31 0 11 1 0 0
+31 0 12 1 0 0
+31 0 13 1 0 0
+31 0 14 1 0 0
+31 0 15 1 0 0
+31 0 16 1 0 0
+31 0 17 1 0 0
+31 0 18 1 0 0
+31 0 19 1 0 0.186279
+31 0 20 1 0 0.337891
+31 0 21 1 0 0.450195
+31 0 22 1 0 0.544922
+31 0 23 1 0 0.628906
+31 0 24 1 0 0.70459
+31 0 25 1 0 0.77832
+31 0 26 1 0 0.848633
+31 0 27 1 0 0.913574
+31 0 28 1 0 0.97168
+31 0 29 1 0.122559 1
+31 0 30 1 0.171021 1
+31 0 31 1 0.190918 1
+31 1 0 1 0 0
+31 1 1 1 0 0
+31 1 2 1 0 0
+31 1 3 1 0 0
+31 1 4 1 0 0
+31 1 5 1 0 0
+31 1 6 1 0 0
+31 1 7 1 0 0
+31 1 8 1 0 0
+31 1 9 1 0 0
+31 1 10 1 0 0
+31 1 11 1 0 0
+31 1 12 1 0 0
+31 1 13 1 0 0
+31 1 14 1 0 0
+31 1 15 1 0 0
+31 1 16 1 0 0
+31 1 17 1 0 0
+31 1 18 1 0 0
+31 1 19 1 0 0.186279
+31 1 20 1 0 0.337891
+31 1 21 1 0 0.450195
+31 1 22 1 0 0.544922
+31 1 23 1 0 0.628906
+31 1 24 1 0 0.70459
+31 1 25 1 0 0.77832
+31 1 26 1 0 0.848633
+31 1 27 1 0 0.913574
+31 1 28 1 0 0.97168
+31 1 29 1 0.122559 1
+31 1 30 1 0.171021 1
+31 1 31 1 0.190918 1
+31 2 0 1 0 0
+31 2 1 1 0 0
+31 2 2 1 0 0
+31 2 3 1 0 0
+31 2 4 1 0 0
+31 2 5 1 0 0
+31 2 6 1 0 0
+31 2 7 1 0 0
+31 2 8 1 0 0
+31 2 9 1 0 0
+31 2 10 1 0 0
+31 2 11 1 0 0
+31 2 12 1 0 0
+31 2 13 1 0 0
+31 2 14 1 0 0
+31 2 15 1 0 0
+31 2 16 1 0 0
+31 2 17 1 0 0
+31 2 18 1 0 0
+31 2 19 1 0 0.186279
+31 2 20 1 0 0.337891
+31 2 21 1 0 0.450195
+31 2 22 1 0 0.544922
+31 2 23 1 0 0.628906
+31 2 24 1 0 0.70459
+31 2 25 1 0 0.77832
+31 2 26 1 0 0.848633
+31 2 27 1 0 0.913574
+31 2 28 1 0 0.97168
+31 2 29 1 0.12262 1
+31 2 30 1 0.171143 1
+31 2 31 1 0.190918 1
+31 3 0 1 0 0
+31 3 1 1 0 0
+31 3 2 1 0 0
+31 3 3 1 0 0
+31 3 4 1 0 0
+31 3 5 1 0 0
+31 3 6 1 0 0
+31 3 7 1 0 0
+31 3 8 1 0 0
+31 3 9 1 0 0
+31 3 10 1 0 0
+31 3 11 1 0 0
+31 3 12 1 0 0
+31 3 13 1 0 0
+31 3 14 1 0 0
+31 3 15 1 0 0
+31 3 16 1 0 0
+31 3 17 1 0 0
+31 3 18 1 0 0
+31 3 19 1 0 0.186279
+31 3 20 1 0 0.337891
+31 3 21 1 0 0.450195
+31 3 22 1 0 0.544922
+31 3 23 1 0 0.628906
+31 3 24 1 0 0.70459
+31 3 25 1 0 0.77832
+31 3 26 1 0 0.848633
+31 3 27 1 0 0.913574
+31 3 28 1 0 0.97168
+31 3 29 1 0.122681 1
+31 3 30 1 0.171143 1
+31 3 31 1 0.19104 1
+31 4 0 1 0 0
+31 4 1 1 0 0
+31 4 2 1 0 0
+31 4 3 1 0 0
+31 4 4 1 0 0
+31 4 5 1 0 0
+31 4 6 1 0 0
+31 4 7 1 0 0
+31 4 8 1 0 0
+31 4 9 1 0 0
+31 4 10 1 0 0
+31 4 11 1 0 0
+31 4 12 1 0 0
+31 4 13 1 0 0
+31 4 14 1 0 0
+31 4 15 1 0 0
+31 4 16 1 0 0
+31 4 17 1 0 0
+31 4 18 1 0 0
+31 4 19 1 0 0.186279
+31 4 20 1 0 0.337891
+31 4 21 1 0 0.450195
+31 4 22 1 0 0.544922
+31 4 23 1 0 0.628906
+31 4 24 1 0 0.70459
+31 4 25 1 0 0.77832
+31 4 26 1 0 0.848633
+31 4 27 1 0 0.913574
+31 4 28 1 0 0.97168
+31 4 29 1 0.122742 1
+31 4 30 1 0.171143 1
+31 4 31 1 0.19104 1
+31 5 0 1 0 0
+31 5 1 1 0 0
+31 5 2 1 0 0
+31 5 3 1 0 0
+31 5 4 1 0 0
+31 5 5 1 0 0
+31 5 6 1 0 0
+31 5 7 1 0 0
+31 5 8 1 0 0
+31 5 9 1 0 0
+31 5 10 1 0 0
+31 5 11 1 0 0
+31 5 12 1 0 0
+31 5 13 1 0 0
+31 5 14 1 0 0
+31 5 15 1 0 0
+31 5 16 1 0 0
+31 5 17 1 0 0
+31 5 18 1 0 0
+31 5 19 1 0 0.186279
+31 5 20 1 0 0.337891
+31 5 21 1 0 0.450195
+31 5 22 1 0 0.544922
+31 5 23 1 0 0.628906
+31 5 24 1 0 0.70459
+31 5 25 1 0 0.77832
+31 5 26 1 0 0.848633
+31 5 27 1 0 0.913574
+31 5 28 1 0 0.97168
+31 5 29 1 0.122986 1
+31 5 30 1 0.171387 1
+31 5 31 1 0.191162 1
+31 6 0 1 0 0
+31 6 1 1 0 0
+31 6 2 1 0 0
+31 6 3 1 0 0
+31 6 4 1 0 0
+31 6 5 1 0 0
+31 6 6 1 0 0
+31 6 7 1 0 0
+31 6 8 1 0 0
+31 6 9 1 0 0
+31 6 10 1 0 0
+31 6 11 1 0 0
+31 6 12 1 0 0
+31 6 13 1 0 0
+31 6 14 1 0 0
+31 6 15 1 0 0
+31 6 16 1 0 0
+31 6 17 1 0 0
+31 6 18 1 0 0
+31 6 19 1 0 0.186279
+31 6 20 1 0 0.337891
+31 6 21 1 0 0.450195
+31 6 22 1 0 0.544922
+31 6 23 1 0 0.628906
+31 6 24 1 0 0.70459
+31 6 25 1 0 0.77832
+31 6 26 1 0 0.848633
+31 6 27 1 0 0.913574
+31 6 28 1 0 0.97168
+31 6 29 1 0.123352 1
+31 6 30 1 0.171631 1
+31 6 31 1 0.191406 1
+31 7 0 1 0 0
+31 7 1 1 0 0
+31 7 2 1 0 0
+31 7 3 1 0 0
+31 7 4 1 0 0
+31 7 5 1 0 0
+31 7 6 1 0 0
+31 7 7 1 0 0
+31 7 8 1 0 0
+31 7 9 1 0 0
+31 7 10 1 0 0
+31 7 11 1 0 0
+31 7 12 1 0 0
+31 7 13 1 0 0
+31 7 14 1 0 0
+31 7 15 1 0 0
+31 7 16 1 0 0
+31 7 17 1 0 0
+31 7 18 1 0 0
+31 7 19 1 0 0.186157
+31 7 20 1 0 0.337891
+31 7 21 1 0 0.450195
+31 7 22 1 0 0.544922
+31 7 23 1 0 0.628906
+31 7 24 1 0 0.70459
+31 7 25 1 0 0.77832
+31 7 26 1 0 0.848633
+31 7 27 1 0 0.913574
+31 7 28 1 0 0.97168
+31 7 29 1 0.124084 1
+31 7 30 1 0.172119 1
+31 7 31 1 0.191772 1
+31 8 0 1 0 0
+31 8 1 1 0 0
+31 8 2 1 0 0
+31 8 3 1 0 0
+31 8 4 1 0 0
+31 8 5 1 0 0
+31 8 6 1 0 0
+31 8 7 1 0 0
+31 8 8 1 0 0
+31 8 9 1 0 0
+31 8 10 1 0 0
+31 8 11 1 0 0
+31 8 12 1 0 0
+31 8 13 1 0 0
+31 8 14 1 0 0
+31 8 15 1 0 0
+31 8 16 1 0 0
+31 8 17 1 0 0
+31 8 18 1 0 0
+31 8 19 1 0 0.186035
+31 8 20 1 0 0.337646
+31 8 21 1 0 0.450195
+31 8 22 1 0 0.544922
+31 8 23 1 0 0.628906
+31 8 24 1 0 0.70459
+31 8 25 1 0 0.77832
+31 8 26 1 0 0.848633
+31 8 27 1 0 0.913574
+31 8 28 1 0 0.97168
+31 8 29 1 0.125488 1
+31 8 30 1 0.173096 1
+31 8 31 1 0.192627 1
+31 9 0 1 0 0
+31 9 1 1 0 0
+31 9 2 1 0 0
+31 9 3 1 0 0
+31 9 4 1 0 0
+31 9 5 1 0 0
+31 9 6 1 0 0
+31 9 7 1 0 0
+31 9 8 1 0 0
+31 9 9 1 0 0
+31 9 10 1 0 0
+31 9 11 1 0 0
+31 9 12 1 0 0
+31 9 13 1 0 0
+31 9 14 1 0 0
+31 9 15 1 0 0
+31 9 16 1 0 0
+31 9 17 1 0 0
+31 9 18 1 0 0
+31 9 19 1 0 0.185791
+31 9 20 1 0 0.337646
+31 9 21 1 0 0.450195
+31 9 22 1 0 0.544922
+31 9 23 1 0 0.628906
+31 9 24 1 0 0.70459
+31 9 25 1 0 0.77832
+31 9 26 1 0 0.848633
+31 9 27 1 0 0.913574
+31 9 28 1 0 0.97168
+31 9 29 1 0.128174 1
+31 9 30 1 0.174927 1
+31 9 31 1 0.194092 1
+31 10 0 1 0 0
+31 10 1 1 0 0
+31 10 2 1 0 0
+31 10 3 1 0 0
+31 10 4 1 0 0
+31 10 5 1 0 0
+31 10 6 1 0 0
+31 10 7 1 0 0
+31 10 8 1 0 0
+31 10 9 1 0 0
+31 10 10 1 0 0
+31 10 11 1 0 0
+31 10 12 1 0 0
+31 10 13 1 0 0
+31 10 14 1 0 0
+31 10 15 1 0 0
+31 10 16 1 0 0
+31 10 17 1 0 0
+31 10 18 1 0 0
+31 10 19 1 0 0.185303
+31 10 20 1 0 0.337402
+31 10 21 1 0 0.450195
+31 10 22 1 0 0.544434
+31 10 23 1 0 0.628906
+31 10 24 1 0 0.704102
+31 10 25 1 0 0.77832
+31 10 26 1 0 0.848633
+31 10 27 1 0 0.913574
+31 10 28 1 0 0.97168
+31 10 29 1 0.132812 1
+31 10 30 1 0.178101 1
+31 10 31 1 0.196777 1
+31 11 0 1 0 0
+31 11 1 1 0 0
+31 11 2 1 0 0
+31 11 3 1 0 0
+31 11 4 1 0 0
+31 11 5 1 0 0
+31 11 6 1 0 0
+31 11 7 1 0 0
+31 11 8 1 0 0
+31 11 9 1 0 0
+31 11 10 1 0 0
+31 11 11 1 0 0
+31 11 12 1 0 0
+31 11 13 1 0 0
+31 11 14 1 0 0
+31 11 15 1 0 0
+31 11 16 1 0 0
+31 11 17 1 0 0
+31 11 18 1 0 0
+31 11 19 1 0 0.18457
+31 11 20 1 0 0.336914
+31 11 21 1 0 0.449951
+31 11 22 1 0 0.544434
+31 11 23 1 0 0.628418
+31 11 24 1 0 0.704102
+31 11 25 1 0 0.777832
+31 11 26 1 0 0.848633
+31 11 27 1 0 0.913574
+31 11 28 1 0 0.97168
+31 11 29 1 0.140747 1
+31 11 30 1 0.183716 1
+31 11 31 1 0.201416 1
+31 12 0 1 0 0
+31 12 1 1 0 0
+31 12 2 1 0 0
+31 12 3 1 0 0
+31 12 4 1 0 0
+31 12 5 1 0 0
+31 12 6 1 0 0
+31 12 7 1 0 0
+31 12 8 1 0 0
+31 12 9 1 0 0
+31 12 10 1 0 0
+31 12 11 1 0 0
+31 12 12 1 0 0
+31 12 13 1 0 0
+31 12 14 1 0 0
+31 12 15 1 0 0
+31 12 16 1 0 0
+31 12 17 1 0 0
+31 12 18 1 0 0
+31 12 19 1 0 0.18335
+31 12 20 1 0 0.336182
+31 12 21 1 0 0.449707
+31 12 22 1 0 0.543945
+31 12 23 1 0 0.628418
+31 12 24 1 0 0.704102
+31 12 25 1 0 0.777832
+31 12 26 1 0 0.848145
+31 12 27 1 0 0.913574
+31 12 28 1 0 0.97168
+31 12 29 1 0.15332 1
+31 12 30 1 0.192871 1
+31 12 31 1 0.209106 1
+31 13 0 1 0 0
+31 13 1 1 0 0
+31 13 2 1 0 0
+31 13 3 1 0 0
+31 13 4 1 0 0
+31 13 5 1 0 0
+31 13 6 1 0 0
+31 13 7 1 0 0
+31 13 8 1 0 0
+31 13 9 1 0 0
+31 13 10 1 0 0
+31 13 11 1 0 0
+31 13 12 1 0 0
+31 13 13 1 0 0
+31 13 14 1 0 0
+31 13 15 1 0 0
+31 13 16 1 0 0
+31 13 17 1 0 0
+31 13 18 1 0 0
+31 13 19 1 0 0.181152
+31 13 20 1 0 0.334961
+31 13 21 1 0 0.449219
+31 13 22 1 0 0.543457
+31 13 23 1 0 0.62793
+31 13 24 1 0 0.703613
+31 13 25 1 0 0.777344
+31 13 26 1 0 0.848145
+31 13 27 1 0 0.913086
+31 13 28 1 0.0278015 0.97168
+31 13 29 1 0.171875 1
+31 13 30 1 0.206909 1
+31 13 31 1 0.220947 1
+31 14 0 1 0 0
+31 14 1 1 0 0
+31 14 2 1 0 0
+31 14 3 1 0 0
+31 14 4 1 0 0
+31 14 5 1 0 0
+31 14 6 1 0 0
+31 14 7 1 0 0
+31 14 8 1 0 0
+31 14 9 1 0 0
+31 14 10 1 0 0
+31 14 11 1 0 0
+31 14 12 1 0 0
+31 14 13 1 0 0
+31 14 14 1 0 0
+31 14 15 1 0 0
+31 14 16 1 0 0
+31 14 17 1 0 0
+31 14 18 1 0 0
+31 14 19 1 0 0.177856
+31 14 20 1 0 0.333008
+31 14 21 1 0 0.448242
+31 14 22 1 0 0.54248
+31 14 23 1 0 0.626953
+31 14 24 1 0 0.702637
+31 14 25 1 0 0.776855
+31 14 26 1 0 0.847656
+31 14 27 1 0 0.913086
+31 14 28 1 0.0981445 0.971191
+31 14 29 1 0.19751 1
+31 14 30 1 0.227295 1
+31 14 31 1 0.238647 1
+31 15 0 1 0 0
+31 15 1 1 0 0
+31 15 2 1 0 0
+31 15 3 1 0 0
+31 15 4 1 0 0
+31 15 5 1 0 0
+31 15 6 1 0 0
+31 15 7 1 0 0
+31 15 8 1 0 0
+31 15 9 1 0 0
+31 15 10 1 0 0
+31 15 11 1 0 0
+31 15 12 1 0 0
+31 15 13 1 0 0
+31 15 14 1 0 0
+31 15 15 1 0 0
+31 15 16 1 0 0
+31 15 17 1 0 0
+31 15 18 1 0 0
+31 15 19 1 0 0.172974
+31 15 20 1 0 0.330078
+31 15 21 1 0 0.445801
+31 15 22 1 0 0.541504
+31 15 23 1 0 0.625488
+31 15 24 1 0 0.70166
+31 15 25 1 0 0.775879
+31 15 26 1 0 0.84668
+31 15 27 1 0 0.912598
+31 15 28 1 0.157349 0.971191
+31 15 29 1 0.230957 1
+31 15 30 1 0.255127 1
+31 15 31 1 0.262939 1
+31 16 0 1 0 0
+31 16 1 1 0 0
+31 16 2 1 0 0
+31 16 3 1 0 0
+31 16 4 1 0 0
+31 16 5 1 0 0
+31 16 6 1 0 0
+31 16 7 1 0 0
+31 16 8 1 0 0
+31 16 9 1 0 0
+31 16 10 1 0 0
+31 16 11 1 0 0
+31 16 12 1 0 0
+31 16 13 1 0 0
+31 16 14 1 0 0
+31 16 15 1 0 0
+31 16 16 1 0 0
+31 16 17 1 0 0
+31 16 18 1 0 0
+31 16 19 1 0 0.166016
+31 16 20 1 0 0.326172
+31 16 21 1 0 0.442627
+31 16 22 1 0 0.539551
+31 16 23 1 0 0.623535
+31 16 24 1 0 0.699707
+31 16 25 1 0 0.774414
+31 16 26 1 0 0.845703
+31 16 27 1 0.0866089 0.911621
+31 16 28 1 0.216431 0.970703
+31 16 29 1 0.272217 1
+31 16 30 1 0.290527 1
+31 16 31 1 0.294922 1
+31 17 0 1 0 0
+31 17 1 1 0 0
+31 17 2 1 0 0
+31 17 3 1 0 0
+31 17 4 1 0 0
+31 17 5 1 0 0
+31 17 6 1 0 0
+31 17 7 1 0 0
+31 17 8 1 0 0
+31 17 9 1 0 0
+31 17 10 1 0 0
+31 17 11 1 0 0
+31 17 12 1 0 0
+31 17 13 1 0 0
+31 17 14 1 0 0
+31 17 15 1 0 0
+31 17 16 1 0 0
+31 17 17 1 0 0
+31 17 18 1 0 0
+31 17 19 1 0 0.157104
+31 17 20 1 0 0.321289
+31 17 21 1 0 0.438232
+31 17 22 1 0 0.537598
+31 17 23 1 0 0.621094
+31 17 24 1 0 0.696777
+31 17 25 1 0 0.771973
+31 17 26 1 0.046814 0.84375
+31 17 27 1 0.198486 0.910156
+31 17 28 1 0.276611 0.969727
+31 17 29 1 0.319336 1
+31 17 30 1 0.33252 1
+31 17 31 1 0.333252 1
+31 18 0 1 0.0753174 0
+31 18 1 1 0.0753174 0
+31 18 2 1 0.0753174 0
+31 18 3 1 0.0753174 0
+31 18 4 1 0.0753784 0
+31 18 5 1 0.0753784 0
+31 18 6 1 0.0754395 0
+31 18 7 1 0.0755615 0
+31 18 8 1 0.0758057 0
+31 18 9 1 0.0762329 0
+31 18 10 1 0.0770264 0
+31 18 11 1 0.0783691 0
+31 18 12 1 0.0806885 0
+31 18 13 1 0.0842896 0
+31 18 14 1 0.0898438 0
+31 18 15 1 0.0977783 0
+31 18 16 1 0.108154 0
+31 18 17 1 0.109741 0
+31 18 18 1 0.102112 0
+31 18 19 1 0.0827026 0.147339
+31 18 20 1 0.0594177 0.31543
+31 18 21 1 0.0400391 0.432861
+31 18 22 1 0.0502625 0.533203
+31 18 23 1 0.0487061 0.617676
+31 18 24 1 0.0804443 0.693359
+31 18 25 1 0.1427 0.769043
+31 18 26 1 0.213989 0.841309
+31 18 27 1 0.282471 0.908691
+31 18 28 1 0.337646 0.968262
+31 18 29 1 0.370605 1
+31 18 30 1 0.379395 1
+31 18 31 1 0.376465 1
+31 19 0 1 0.260254 0
+31 19 1 1 0.260254 0
+31 19 2 1 0.260254 0
+31 19 3 1 0.260254 0
+31 19 4 1 0.260254 0
+31 19 5 1 0.260254 0
+31 19 6 1 0.260254 0
+31 19 7 1 0.260498 0
+31 19 8 1 0.260498 0
+31 19 9 1 0.260498 0
+31 19 10 1 0.260742 0
+31 19 11 1 0.26123 0
+31 19 12 1 0.261963 0
+31 19 13 1 0.262939 0
+31 19 14 1 0.264893 0
+31 19 15 1 0.267578 0
+31 19 16 1 0.271484 0
+31 19 17 1 0.271973 0
+31 19 18 1 0.269531 0
+31 19 19 1 0.264648 0.138428
+31 19 20 1 0.259521 0.309814
+31 19 21 1 0.255127 0.427246
+31 19 22 1 0.254883 0.527344
+31 19 23 1 0.258789 0.61377
+31 19 24 1 0.261475 0.688965
+31 19 25 1 0.279053 0.764648
+31 19 26 1 0.313232 0.837891
+31 19 27 1 0.356934 0.90625
+31 19 28 1 0.397949 0.966309
+31 19 29 1 0.423828 1
+31 19 30 1 0.428711 1
+31 19 31 1 0.422607 1
+31 20 0 1 0.368408 0
+31 20 1 1 0.368408 0
+31 20 2 1 0.368408 0
+31 20 3 1 0.368408 0
+31 20 4 1 0.368408 0
+31 20 5 1 0.368408 0
+31 20 6 1 0.368408 0
+31 20 7 1 0.368408 0
+31 20 8 1 0.368408 0
+31 20 9 1 0.368652 0
+31 20 10 1 0.368652 0
+31 20 11 1 0.368896 0
+31 20 12 1 0.369385 0
+31 20 13 1 0.370117 0
+31 20 14 1 0.371338 0
+31 20 15 1 0.373047 0
+31 20 16 1 0.375732 0
+31 20 17 1 0.376221 0
+31 20 18 1 0.375488 0
+31 20 19 1 0.373779 0.133423
+31 20 20 1 0.371338 0.30542
+31 20 21 1 0.368896 0.422119
+31 20 22 1 0.367432 0.521484
+31 20 23 1 0.369385 0.608398
+31 20 24 1 0.370605 0.684082
+31 20 25 1 0.376953 0.759277
+31 20 26 1 0.395752 0.833496
+31 20 27 1 0.425293 0.902832
+31 20 28 1 0.456299 0.963867
+31 20 29 1 0.476562 1
+31 20 30 1 0.478516 1
+31 20 31 1 0.469482 1
+31 21 0 1 0.457275 0
+31 21 1 1 0.457275 0
+31 21 2 1 0.457275 0
+31 21 3 1 0.457275 0
+31 21 4 1 0.457275 0
+31 21 5 1 0.457275 0
+31 21 6 1 0.457275 0
+31 21 7 1 0.45752 0
+31 21 8 1 0.45752 0
+31 21 9 1 0.45752 0
+31 21 10 1 0.45752 0
+31 21 11 1 0.457764 0
+31 21 12 1 0.458252 0
+31 21 13 1 0.45874 0
+31 21 14 1 0.459473 0
+31 21 15 1 0.460938 0
+31 21 16 1 0.462891 0
+31 21 17 1 0.463623 0
+31 21 18 1 0.464111 0
+31 21 19 1 0.464111 0.134888
+31 21 20 1 0.463623 0.303467
+31 21 21 1 0.462158 0.418213
+31 21 22 1 0.460693 0.515625
+31 21 23 1 0.460205 0.601074
+31 21 24 1 0.462646 0.678711
+31 21 25 1 0.462646 0.753418
+31 21 26 1 0.471436 0.827637
+31 21 27 1 0.490479 0.897949
+31 21 28 1 0.513672 0.960449
+31 21 29 1 0.529297 1
+31 21 30 1 0.52832 1
+31 21 31 1 0.51709 1
+31 22 0 1 0.534668 0
+31 22 1 1 0.534668 0
+31 22 2 1 0.534668 0
+31 22 3 1 0.534668 0
+31 22 4 1 0.534668 0
+31 22 5 1 0.534668 0
+31 22 6 1 0.534668 0
+31 22 7 1 0.534668 0
+31 22 8 1 0.534668 0
+31 22 9 1 0.534668 0
+31 22 10 1 0.535156 0
+31 22 11 1 0.535156 0
+31 22 12 1 0.535156 0
+31 22 13 1 0.535645 0
+31 22 14 1 0.536621 0
+31 22 15 1 0.537598 0
+31 22 16 1 0.539062 0
+31 22 17 1 0.540527 0
+31 22 18 1 0.541992 0
+31 22 19 1 0.543457 0.144165
+31 22 20 1 0.544434 0.304688
+31 22 21 1 0.543945 0.41626
+31 22 22 1 0.542969 0.51123
+31 22 23 1 0.541016 0.594727
+31 22 24 1 0.540527 0.670898
+31 22 25 1 0.540527 0.746582
+31 22 26 1 0.54248 0.820801
+31 22 27 1 0.552734 0.89209
+31 22 28 1 0.568848 0.956055
+31 22 29 1 0.580566 1
+31 22 30 1 0.577637 1
+31 22 31 1 0.563965 1
+31 23 0 1 0.602539 0
+31 23 1 1 0.602539 0
+31 23 2 1 0.602539 0
+31 23 3 1 0.602539 0
+31 23 4 1 0.602539 0
+31 23 5 1 0.602539 0
+31 23 6 1 0.602539 0
+31 23 7 1 0.602539 0
+31 23 8 1 0.602539 0
+31 23 9 1 0.602539 0
+31 23 10 1 0.602539 0
+31 23 11 1 0.602539 0
+31 23 12 1 0.603027 0
+31 23 13 1 0.603027 0
+31 23 14 1 0.604004 0
+31 23 15 1 0.604492 0
+31 23 16 1 0.605957 0
+31 23 17 1 0.60791 0
+31 23 18 1 0.610352 0
+31 23 19 1 0.612793 0.15918
+31 23 20 1 0.614258 0.309082
+31 23 21 1 0.615234 0.416504
+31 23 22 1 0.614746 0.508301
+31 23 23 1 0.612793 0.589355
+31 23 24 1 0.61084 0.663574
+31 23 25 1 0.609375 0.73877
+31 23 26 1 0.607422 0.812988
+31 23 27 1 0.61084 0.885254
+31 23 28 1 0.620605 0.950684
+31 23 29 1 0.628906 1
+31 23 30 1 0.624512 1
+31 23 31 1 0.608887 1
+31 24 0 1 0.663086 0
+31 24 1 1 0.663086 0
+31 24 2 1 0.663086 0
+31 24 3 1 0.663086 0
+31 24 4 1 0.663086 0
+31 24 5 1 0.663086 0
+31 24 6 1 0.663086 0
+31 24 7 1 0.663086 0
+31 24 8 1 0.663086 0
+31 24 9 1 0.663086 0
+31 24 10 1 0.663086 0
+31 24 11 1 0.663086 0
+31 24 12 1 0.663574 0
+31 24 13 1 0.663574 0
+31 24 14 1 0.664062 0
+31 24 15 1 0.665039 0
+31 24 16 1 0.666016 0
+31 24 17 1 0.667969 0
+31 24 18 1 0.670898 0
+31 24 19 1 0.673828 0.177002
+31 24 20 1 0.67627 0.315674
+31 24 21 1 0.677734 0.418701
+31 24 22 1 0.678223 0.507324
+31 24 23 1 0.677246 0.585449
+31 24 24 1 0.674805 0.657227
+31 24 25 1 0.671387 0.730469
+31 24 26 1 0.668457 0.804688
+31 24 27 1 0.665527 0.876953
+31 24 28 1 0.669922 0.943848
+31 24 29 1 0.674805 1
+31 24 30 1 0.668945 1
+31 24 31 1 0.651855 1
+31 25 0 1 0.723145 0
+31 25 1 1 0.723145 0
+31 25 2 1 0.723145 0
+31 25 3 1 0.723145 0
+31 25 4 1 0.723145 0
+31 25 5 1 0.723145 0
+31 25 6 1 0.723145 0
+31 25 7 1 0.723145 0
+31 25 8 1 0.723145 0
+31 25 9 1 0.723145 0
+31 25 10 1 0.723145 0
+31 25 11 1 0.723145 0
+31 25 12 1 0.723145 0
+31 25 13 1 0.723633 0
+31 25 14 1 0.724121 0
+31 25 15 1 0.724609 0
+31 25 16 1 0.725586 0
+31 25 17 1 0.727539 0
+31 25 18 1 0.730957 0
+31 25 19 1 0.734375 0.196533
+31 25 20 1 0.737305 0.324219
+31 25 21 1 0.739746 0.422607
+31 25 22 1 0.740723 0.507812
+31 25 23 1 0.740723 0.583008
+31 25 24 1 0.73877 0.651367
+31 25 25 1 0.734863 0.72168
+31 25 26 1 0.729492 0.794434
+31 25 27 1 0.723633 0.866699
+31 25 28 1 0.72168 0.935059
+31 25 29 1 0.722656 0.995117
+31 25 30 1 0.71582 1
+31 25 31 1 0.696777 1
+31 26 0 1 0.782715 0
+31 26 1 1 0.782715 0
+31 26 2 1 0.782715 0
+31 26 3 1 0.782715 0
+31 26 4 1 0.782715 0
+31 26 5 1 0.782715 0
+31 26 6 1 0.782715 0
+31 26 7 1 0.782715 0
+31 26 8 1 0.782715 0
+31 26 9 1 0.782715 0
+31 26 10 1 0.782715 0
+31 26 11 1 0.782715 0
+31 26 12 1 0.782715 0
+31 26 13 1 0.783203 0
+31 26 14 1 0.783203 0
+31 26 15 1 0.783691 0
+31 26 16 1 0.784668 0
+31 26 17 1 0.786133 0
+31 26 18 1 0.790039 0
+31 26 19 1 0.793457 0.214111
+31 26 20 1 0.797363 0.333008
+31 26 21 1 0.800293 0.427002
+31 26 22 1 0.802246 0.508789
+31 26 23 1 0.802734 0.581543
+31 26 24 1 0.80127 0.646973
+31 26 25 1 0.79834 0.714355
+31 26 26 1 0.79248 0.783203
+31 26 27 1 0.784668 0.854492
+31 26 28 1 0.776855 0.923828
+31 26 29 1 0.772949 0.98584
+31 26 30 1 0.764648 1
+31 26 31 1 0.744629 1
+31 27 0 1 0.841309 0
+31 27 1 1 0.841309 0
+31 27 2 1 0.841309 0
+31 27 3 1 0.841309 0
+31 27 4 1 0.841309 0
+31 27 5 1 0.841309 0
+31 27 6 1 0.841309 0
+31 27 7 1 0.841309 0
+31 27 8 1 0.841309 0
+31 27 9 1 0.841309 0
+31 27 10 1 0.841309 0
+31 27 11 1 0.841309 0
+31 27 12 1 0.841309 0
+31 27 13 1 0.841797 0
+31 27 14 1 0.841797 0
+31 27 15 1 0.842285 0
+31 27 16 1 0.842773 0
+31 27 17 1 0.844238 0
+31 27 18 1 0.847656 0
+31 27 19 1 0.851562 0.22522
+31 27 20 1 0.855469 0.338135
+31 27 21 1 0.858887 0.429199
+31 27 22 1 0.861328 0.508789
+31 27 23 1 0.862305 0.579102
+31 27 24 1 0.862305 0.642578
+31 27 25 1 0.859863 0.707031
+31 27 26 1 0.85498 0.772949
+31 27 27 1 0.84668 0.84082
+31 27 28 1 0.835449 0.90918
+31 27 29 1 0.825684 0.974121
+31 27 30 1 0.815918 1
+31 27 31 1 0.794922 1
+31 28 0 1 0.898438 0
+31 28 1 1 0.898438 0
+31 28 2 1 0.898438 0
+31 28 3 1 0.898438 0
+31 28 4 1 0.898438 0
+31 28 5 1 0.898438 0
+31 28 6 1 0.898438 0
+31 28 7 1 0.898438 0
+31 28 8 1 0.898438 0
+31 28 9 1 0.898438 0
+31 28 10 1 0.898438 0
+31 28 11 1 0.898438 0
+31 28 12 1 0.898438 0
+31 28 13 1 0.898926 0
+31 28 14 1 0.898926 0
+31 28 15 1 0.899414 0
+31 28 16 1 0.899414 0
+31 28 17 1 0.900391 0
+31 28 18 1 0.904297 0
+31 28 19 1 0.908203 0.223755
+31 28 20 1 0.912109 0.335449
+31 28 21 1 0.915527 0.425537
+31 28 22 1 0.917969 0.504395
+31 28 23 1 0.919434 0.57373
+31 28 24 1 0.919922 0.63623
+31 28 25 1 0.918457 0.699219
+31 28 26 1 0.914551 0.762695
+31 28 27 1 0.907227 0.827148
+31 28 28 1 0.895996 0.892578
+31 28 29 1 0.881348 0.958008
+31 28 30 1 0.868652 1
+31 28 31 1 0.847168 1
+31 29 0 1 0.953613 0
+31 29 1 1 0.953613 0
+31 29 2 1 0.953613 0
+31 29 3 1 0.953613 0
+31 29 4 1 0.953613 0
+31 29 5 1 0.953613 0
+31 29 6 1 0.953613 0
+31 29 7 1 0.953613 0
+31 29 8 1 0.953613 0
+31 29 9 1 0.953613 0
+31 29 10 1 0.953613 0
+31 29 11 1 0.953613 0
+31 29 12 1 0.953613 0
+31 29 13 1 0.953613 0
+31 29 14 1 0.954102 0
+31 29 15 1 0.954102 0
+31 29 16 1 0.95459 0
+31 29 17 1 0.955078 0
+31 29 18 1 0.958008 0
+31 29 19 1 0.961914 0.202271
+31 29 20 1 0.96582 0.319824
+31 29 21 1 0.969727 0.411621
+31 29 22 1 0.972168 0.490967
+31 29 23 1 0.974121 0.560547
+31 29 24 1 0.974609 0.623047
+31 29 25 1 0.973633 0.686035
+31 29 26 1 0.970215 0.749512
+31 29 27 1 0.964355 0.812988
+31 29 28 1 0.95459 0.875977
+31 29 29 1 0.939453 0.937988
+31 29 30 1 0.921875 0.998535
+31 29 31 1 0.900391 1
+31 30 0 1 1 0
+31 30 1 1 1 0
+31 30 2 1 1 0
+31 30 3 1 1 0
+31 30 4 1 1 0
+31 30 5 1 1 0
+31 30 6 1 1 0
+31 30 7 1 1 0
+31 30 8 1 1 0
+31 30 9 1 1 0
+31 30 10 1 1 0
+31 30 11 1 1 0
+31 30 12 1 1 0
+31 30 13 1 1 0
+31 30 14 1 1 0
+31 30 15 1 1 0
+31 30 16 1 1 0
+31 30 17 1 1 0
+31 30 18 1 1 0
+31 30 19 1 1 0.150146
+31 30 20 1 1 0.286865
+31 30 21 1 1 0.384033
+31 30 22 1 1 0.466064
+31 30 23 1 1 0.536621
+31 30 24 1 1 0.600098
+31 30 25 1 1 0.664062
+31 30 26 1 1 0.728516
+31 30 27 1 1 0.792969
+31 30 28 1 1 0.856445
+31 30 29 1 0.995605 0.917969
+31 30 30 1 0.977051 0.976562
+31 30 31 1 0.95459 1
+31 31 0 1 1 0
+31 31 1 1 1 0
+31 31 2 1 1 0
+31 31 3 1 1 0
+31 31 4 1 1 0
+31 31 5 1 1 0
+31 31 6 1 1 0
+31 31 7 1 1 0
+31 31 8 1 1 0
+31 31 9 1 1 0
+31 31 10 1 1 0
+31 31 11 1 1 0
+31 31 12 1 1 0
+31 31 13 1 1 0
+31 31 14 1 1 0
+31 31 15 1 1 0
+31 31 16 1 1 0
+31 31 17 1 1 0
+31 31 18 1 1 0
+31 31 19 1 1 0.0113144
+31 31 20 1 1 0.234985
+31 31 21 1 1 0.343506
+31 31 22 1 1 0.429688
+31 31 23 1 1 0.50293
+31 31 24 1 1 0.567383
+31 31 25 1 1 0.631836
+31 31 26 1 1 0.697266
+31 31 27 1 1 0.762695
+31 31 28 1 1 0.827637
+31 31 29 1 1 0.891113
+31 31 30 1 1 0.951172
+31 31 31 1 1 1
diff --git a/release/datafiles/colormanagement/luts/spi_ocio_srgb_test.spi3d b/release/datafiles/colormanagement/luts/spi_ocio_srgb_test.spi3d
new file mode 100644
index 00000000000..3b8a0c98ac9
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/spi_ocio_srgb_test.spi3d
@@ -0,0 +1,32771 @@
+SPILUT 1.0
+3 3
+32 32 32
+0 0 0 0.040157 0.038904 0.028316
+0 0 1 0.040157 0.039086 0.029591
+0 0 2 0.040157 0.039257 0.030889
+0 0 3 0.040157 0.039257 0.032528
+0 0 4 0.040157 0.039280 0.034350
+0 0 5 0.040157 0.039462 0.037447
+0 0 6 0.040062 0.039644 0.040646
+0 0 7 0.039553 0.039826 0.044289
+0 0 8 0.038917 0.039917 0.049162
+0 0 9 0.037900 0.039735 0.057724
+0 0 10 0.034551 0.039667 0.073288
+0 0 11 0.026072 0.039849 0.104256
+0 0 12 0.019374 0.039211 0.134745
+0 0 13 0.015643 0.037207 0.164438
+0 0 14 0.019332 0.030581 0.197877
+0 0 15 0.032558 0.018012 0.236132
+0 0 16 0.043496 0.001708 0.270561
+0 0 17 0.052144 0.000000 0.301164
+0 0 18 0.063177 0.000000 0.330436
+0 0 19 0.076064 0.000000 0.358672
+0 0 20 0.085030 0.000000 0.383036
+0 0 21 0.091644 0.000000 0.405078
+0 0 22 0.096508 0.000000 0.425492
+0 0 23 0.100578 0.000000 0.445166
+0 0 24 0.049198 0.000000 0.469211
+0 0 25 0.000000 0.000000 0.494715
+0 0 26 0.000000 0.000000 0.526434
+0 0 27 0.000000 0.000000 0.559588
+0 0 28 0.000000 0.000000 0.582222
+0 0 29 0.000000 0.000000 0.603353
+0 0 30 0.000000 0.065545 0.618849
+0 0 31 0.000000 0.161729 0.633968
+0 1 0 0.040157 0.039815 0.028316
+0 1 1 0.039720 0.040279 0.030343
+0 1 2 0.039309 0.040720 0.032346
+0 1 3 0.039309 0.040814 0.033985
+0 1 4 0.039309 0.040907 0.035807
+0 1 5 0.039309 0.040995 0.038904
+0 1 6 0.039181 0.041119 0.042174
+0 1 7 0.038497 0.041395 0.046193
+0 1 8 0.037708 0.041651 0.051442
+0 1 9 0.036603 0.041845 0.060380
+0 1 10 0.032893 0.042035 0.076378
+0 1 11 0.023452 0.042217 0.107911
+0 1 12 0.006897 0.041756 0.138929
+0 1 13 0.000000 0.040222 0.169092
+0 1 14 0.000000 0.034272 0.202919
+0 1 15 0.016870 0.022642 0.241455
+0 1 16 0.040148 0.007608 0.276214
+0 1 17 0.048884 0.000000 0.307193
+0 1 18 0.059856 0.000000 0.336841
+0 1 19 0.072569 0.000000 0.365453
+0 1 20 0.081360 0.000000 0.390017
+0 1 21 0.087798 0.000000 0.412153
+0 1 22 0.092187 0.000000 0.432532
+0 1 23 0.095644 0.000000 0.452111
+0 1 24 0.046080 0.000000 0.475005
+0 1 25 0.000000 0.000000 0.499004
+0 1 26 0.000000 0.000000 0.530442
+0 1 27 0.000000 0.000000 0.563596
+0 1 28 0.000000 0.000000 0.586230
+0 1 29 0.000000 0.000000 0.607361
+0 1 30 0.000000 0.073014 0.622856
+0 1 31 0.000000 0.169197 0.637976
+0 2 0 0.040157 0.040760 0.028316
+0 2 1 0.039309 0.041488 0.031048
+0 2 2 0.038512 0.042184 0.033716
+0 2 3 0.038480 0.042390 0.035414
+0 2 4 0.038451 0.042570 0.037287
+0 2 5 0.038451 0.042570 0.040384
+0 2 6 0.038289 0.042639 0.043727
+0 2 7 0.037425 0.043010 0.048134
+0 2 8 0.036478 0.043428 0.053769
+0 2 9 0.035286 0.043992 0.063089
+0 2 10 0.031206 0.044443 0.079528
+0 2 11 0.020775 0.044642 0.111630
+0 2 12 0.000000 0.044368 0.143190
+0 2 13 0.000000 0.043305 0.173847
+0 2 14 0.000000 0.038038 0.208074
+0 2 15 0.001668 0.027367 0.246893
+0 2 16 0.036739 0.013631 0.281983
+0 2 17 0.045568 0.000000 0.313345
+0 2 18 0.056483 0.000000 0.343375
+0 2 19 0.069021 0.000000 0.372368
+0 2 20 0.077626 0.000000 0.397142
+0 2 21 0.083873 0.000000 0.419384
+0 2 22 0.087773 0.000000 0.439731
+0 2 23 0.090607 0.000000 0.459217
+0 2 24 0.042766 0.000000 0.481007
+0 2 25 0.000000 0.000000 0.503566
+0 2 26 0.000000 0.000000 0.534648
+0 2 27 0.000000 0.000000 0.567696
+0 2 28 0.000000 0.000000 0.590317
+0 2 29 0.000000 0.000000 0.611448
+0 2 30 0.000000 0.080636 0.626943
+0 2 31 0.000000 0.176825 0.642063
+0 3 0 0.040157 0.042217 0.028316
+0 3 1 0.039309 0.042946 0.031048
+0 3 2 0.038480 0.043665 0.033775
+0 3 3 0.037922 0.044247 0.036413
+0 3 4 0.037433 0.044756 0.039109
+0 3 5 0.037433 0.044756 0.042206
+0 3 6 0.037222 0.044843 0.045654
+0 3 7 0.036095 0.045307 0.050625
+0 3 8 0.034930 0.045867 0.056801
+0 3 9 0.033650 0.046713 0.066591
+0 3 10 0.029073 0.047445 0.083559
+0 3 11 0.017241 0.047927 0.116320
+0 3 12 0.000000 0.048006 0.148608
+0 3 13 0.000000 0.047412 0.180111
+0 3 14 0.000000 0.042945 0.214938
+0 3 15 0.000000 0.033496 0.254039
+0 3 16 0.032418 0.021499 0.289505
+0 3 17 0.041422 0.006955 0.321337
+0 3 18 0.052315 0.000000 0.351837
+0 3 19 0.064677 0.000000 0.381300
+0 3 20 0.072944 0.000000 0.406427
+0 3 21 0.078753 0.000000 0.428950
+0 3 22 0.081975 0.000000 0.449321
+0 3 23 0.084021 0.000000 0.468713
+0 3 24 0.036508 0.000000 0.490127
+0 3 25 0.000000 0.000000 0.512216
+0 3 26 0.000000 0.000000 0.541835
+0 3 27 0.000000 0.000000 0.573191
+0 3 28 0.000000 0.000000 0.595600
+0 3 29 0.000000 0.000000 0.616731
+0 3 30 0.000000 0.090562 0.632226
+0 3 31 0.000000 0.186845 0.647346
+0 4 0 0.040157 0.043765 0.028338
+0 4 1 0.039309 0.044494 0.031071
+0 4 2 0.038450 0.045235 0.033850
+0 4 3 0.037422 0.046157 0.037322
+0 4 4 0.036508 0.046976 0.040772
+0 4 5 0.036399 0.047070 0.044057
+0 4 6 0.036056 0.047247 0.047750
+0 4 7 0.034699 0.047782 0.053215
+0 4 8 0.033323 0.048468 0.059905
+0 4 9 0.031890 0.049608 0.070271
+0 4 10 0.026732 0.050649 0.087885
+0 4 11 0.013380 0.051471 0.121444
+0 4 12 0.000000 0.051961 0.154572
+0 4 13 0.000000 0.051897 0.186980
+0 4 14 0.000000 0.048318 0.222449
+0 4 15 0.000000 0.040220 0.261856
+0 4 16 0.027657 0.030134 0.297733
+0 4 17 0.036847 0.018058 0.330082
+0 4 18 0.047723 0.000000 0.361073
+0 4 19 0.059910 0.000000 0.391007
+0 4 20 0.067817 0.000000 0.416522
+0 4 21 0.073156 0.000000 0.439387
+0 4 22 0.075659 0.000000 0.459799
+0 4 23 0.076874 0.000000 0.479097
+0 4 24 0.029587 0.000000 0.500179
+0 4 25 0.000000 0.000000 0.521857
+0 4 26 0.000000 0.000000 0.549832
+0 4 27 0.000000 0.000000 0.579261
+0 4 28 0.000000 0.000000 0.601408
+0 4 29 0.000000 0.006589 0.622516
+0 4 30 0.000000 0.101444 0.638010
+0 4 31 0.000000 0.197797 0.653130
+0 5 0 0.040157 0.045951 0.028521
+0 5 1 0.039309 0.046680 0.031253
+0 5 2 0.038445 0.047427 0.034038
+0 5 3 0.037329 0.048443 0.037605
+0 5 4 0.036229 0.049439 0.041324
+0 5 5 0.035245 0.050285 0.046113
+0 5 6 0.034190 0.051055 0.051029
+0 5 7 0.032834 0.051496 0.056494
+0 5 8 0.031305 0.052205 0.063513
+0 5 9 0.029259 0.053721 0.075195
+0 5 10 0.022942 0.055256 0.094272
+0 5 11 0.007226 0.056831 0.129618
+0 5 12 0.000000 0.058143 0.164356
+0 5 13 0.000000 0.059019 0.198080
+0 5 14 0.000000 0.056956 0.234496
+0 5 15 0.000000 0.051115 0.274372
+0 5 16 0.019818 0.044131 0.310908
+0 5 17 0.029271 0.036004 0.344103
+0 5 18 0.040163 0.000000 0.375728
+0 5 19 0.052175 0.000000 0.406132
+0 5 20 0.059579 0.000000 0.432294
+0 5 21 0.064218 0.000000 0.455911
+0 5 22 0.065720 0.000000 0.476494
+0 5 23 0.065797 0.000000 0.495697
+0 5 24 0.018029 0.000000 0.516756
+0 5 25 0.000000 0.000000 0.538434
+0 5 26 0.000000 0.000000 0.563506
+0 5 27 0.000000 0.000000 0.589362
+0 5 28 0.000000 0.000000 0.610899
+0 5 29 0.000000 0.023689 0.631818
+0 5 30 0.000000 0.119025 0.647300
+0 5 31 0.000000 0.215285 0.662420
+0 6 0 0.040125 0.048445 0.028669
+0 6 1 0.039212 0.049226 0.031436
+0 6 2 0.038281 0.050026 0.034260
+0 6 3 0.037094 0.051102 0.037921
+0 6 4 0.035840 0.052229 0.041882
+0 6 5 0.034111 0.053722 0.047946
+0 6 6 0.032388 0.055039 0.053978
+0 6 7 0.030686 0.055597 0.059866
+0 6 8 0.028713 0.056489 0.067553
+0 6 9 0.025923 0.058381 0.080640
+0 6 10 0.016976 0.060453 0.101307
+0 6 11 0.000000 0.062921 0.138651
+0 6 12 0.000000 0.065165 0.175210
+0 6 13 0.000000 0.067033 0.210462
+0 6 14 0.000000 0.066570 0.247958
+0 6 15 0.000000 0.063109 0.288340
+0 6 16 0.000978 0.059245 0.325551
+0 6 17 0.010627 0.054979 0.359593
+0 6 18 0.021359 0.006649 0.391991
+0 6 19 0.032934 0.000000 0.423112
+0 6 20 0.039798 0.000000 0.450002
+0 6 21 0.043835 0.000000 0.474353
+0 6 22 0.044445 0.000000 0.495149
+0 6 23 0.043499 0.000000 0.514330
+0 6 24 0.000000 0.000000 0.535264
+0 6 25 0.000000 0.000000 0.556783
+0 6 26 0.000000 0.000000 0.579467
+0 6 27 0.000000 0.000000 0.602419
+0 6 28 0.000000 0.000000 0.622935
+0 6 29 0.000000 0.058520 0.643102
+0 6 30 0.000000 0.146500 0.658108
+0 6 31 0.000000 0.234856 0.672769
+0 7 0 0.039956 0.052270 0.028669
+0 7 1 0.038692 0.053334 0.031624
+0 7 2 0.037433 0.054392 0.034630
+0 7 3 0.036246 0.055374 0.038385
+0 7 4 0.034970 0.056442 0.042464
+0 7 5 0.033066 0.058123 0.048810
+0 7 6 0.030856 0.059787 0.055494
+0 7 7 0.027317 0.061380 0.063638
+0 7 8 0.023637 0.063141 0.073465
+0 7 9 0.019534 0.065409 0.088338
+0 7 10 0.001589 0.068210 0.111144
+0 7 11 0.000000 0.072182 0.151402
+0 7 12 0.000000 0.075824 0.190700
+0 7 13 0.000000 0.078915 0.228396
+0 7 14 0.000000 0.080415 0.267555
+0 7 15 0.000000 0.079868 0.308595
+0 7 16 0.000000 0.079201 0.346559
+0 7 17 0.000000 0.078414 0.381447
+0 7 18 0.000000 0.058683 0.415220
+0 7 19 0.000000 0.024219 0.448127
+0 7 20 0.000000 0.012411 0.476098
+0 7 21 0.000000 0.014197 0.501108
+0 7 22 0.000000 0.017289 0.522304
+0 7 23 0.000000 0.020973 0.541766
+0 7 24 0.000000 0.029431 0.562136
+0 7 25 0.000000 0.039479 0.582809
+0 7 26 0.000000 0.058055 0.605334
+0 7 27 0.000000 0.078598 0.628287
+0 7 28 0.000000 0.122706 0.646005
+0 7 29 0.000000 0.170181 0.662976
+0 7 30 0.000000 0.216845 0.675490
+0 7 31 0.000000 0.263456 0.687707
+0 8 0 0.039320 0.056369 0.028532
+0 8 1 0.030945 0.057691 0.031746
+0 8 2 0.022966 0.058995 0.035003
+0 8 3 0.020926 0.060023 0.038899
+0 8 4 0.018856 0.061171 0.043145
+0 8 5 0.016581 0.063158 0.049844
+0 8 6 0.013785 0.065259 0.057180
+0 8 7 0.008736 0.067863 0.067276
+0 8 8 0.003574 0.070458 0.078936
+0 8 9 0.000000 0.073032 0.095289
+0 8 10 0.000000 0.076535 0.119995
+0 8 11 0.000000 0.082082 0.163074
+0 8 12 0.000000 0.087185 0.205016
+0 8 13 0.000000 0.091545 0.245063
+0 8 14 0.000000 0.094910 0.285811
+0 8 15 0.000000 0.096996 0.327462
+0 8 16 0.000000 0.099138 0.366155
+0 8 17 0.000000 0.101336 0.401889
+0 8 18 0.000000 0.103405 0.436984
+0 8 19 0.000000 0.105373 0.471584
+0 8 20 0.000000 0.107992 0.500469
+0 8 21 0.000000 0.111000 0.525925
+0 8 22 0.000000 0.116057 0.547309
+0 8 23 0.000000 0.122045 0.566842
+0 8 24 0.000000 0.135627 0.586595
+0 8 25 0.000000 0.151740 0.606421
+0 8 26 0.000000 0.181765 0.628425
+0 8 27 0.000000 0.215001 0.650931
+0 8 28 0.000000 0.237661 0.666249
+0 8 29 0.000000 0.258810 0.680540
+0 8 30 0.000000 0.274345 0.690970
+0 8 31 0.000000 0.289506 0.701141
+0 9 0 0.037285 0.061287 0.027985
+0 9 1 0.001516 0.062798 0.031670
+0 9 2 0.000000 0.064307 0.035385
+0 9 3 0.000000 0.065806 0.039563
+0 9 4 0.000000 0.067447 0.044127
+0 9 5 0.000000 0.070092 0.051390
+0 9 6 0.000000 0.072904 0.059378
+0 9 7 0.000000 0.076448 0.070508
+0 9 8 0.000000 0.079772 0.083084
+0 9 9 0.000000 0.082440 0.100002
+0 9 10 0.000000 0.086566 0.125889
+0 9 11 0.000000 0.093900 0.171506
+0 9 12 0.000000 0.100647 0.215811
+0 9 13 0.000000 0.106418 0.257926
+0 9 14 0.000000 0.111358 0.300044
+0 9 15 0.000000 0.115230 0.342165
+0 9 16 0.000000 0.119017 0.381516
+0 9 17 0.000000 0.122720 0.418095
+0 9 18 0.000000 0.126187 0.454355
+0 9 19 0.000000 0.129472 0.490365
+0 9 20 0.000000 0.132819 0.519661
+0 9 21 0.000000 0.136204 0.544929
+0 9 22 0.000000 0.141314 0.565866
+0 9 23 0.000000 0.147208 0.584835
+0 9 24 0.000000 0.159919 0.603812
+0 9 25 0.000000 0.174904 0.622793
+0 9 26 0.000000 0.203801 0.643186
+0 9 27 0.000000 0.235909 0.663906
+0 9 28 0.000000 0.257852 0.678013
+0 9 29 0.000000 0.278343 0.691176
+0 9 30 0.000000 0.293308 0.700742
+0 9 31 0.000000 0.307904 0.710068
+0 10 0 0.028043 0.071102 0.026187
+0 10 1 0.000000 0.072800 0.030253
+0 10 2 0.000000 0.074517 0.034355
+0 10 3 0.000000 0.076515 0.038991
+0 10 4 0.000000 0.078694 0.044067
+0 10 5 0.000000 0.082143 0.052217
+0 10 6 0.000000 0.085798 0.061170
+0 10 7 0.000000 0.090340 0.073598
+0 10 8 0.000000 0.094570 0.087466
+0 10 9 0.000000 0.097860 0.105653
+0 10 10 0.000000 0.102890 0.133050
+0 10 11 0.000000 0.111746 0.180706
+0 10 12 0.000000 0.119885 0.226873
+0 10 13 0.000000 0.126831 0.270558
+0 10 14 0.000000 0.133008 0.313880
+0 10 15 0.000000 0.138197 0.356735
+0 10 16 0.000000 0.143262 0.396861
+0 10 17 0.000000 0.148204 0.434258
+0 10 18 0.000000 0.152888 0.471470
+0 10 19 0.000000 0.157372 0.508537
+0 10 20 0.000000 0.161422 0.538204
+0 10 21 0.000000 0.165212 0.563431
+0 10 22 0.000000 0.170323 0.584029
+0 10 23 0.000000 0.176035 0.602521
+0 10 24 0.000000 0.187965 0.620767
+0 10 25 0.000000 0.201969 0.638931
+0 10 26 0.000000 0.229121 0.657624
+0 10 27 0.000000 0.259307 0.676440
+0 10 28 0.000000 0.280074 0.689348
+0 10 29 0.000000 0.299495 0.701412
+0 10 30 0.000000 0.313727 0.710253
+0 10 31 0.000000 0.327612 0.718880
+0 11 0 0.002947 0.091686 0.021632
+0 11 1 0.000000 0.093572 0.025887
+0 11 2 0.000000 0.095501 0.030218
+0 11 3 0.000000 0.098063 0.035701
+0 11 4 0.000000 0.100877 0.041716
+0 11 5 0.000000 0.105455 0.051465
+0 11 6 0.000000 0.110237 0.062069
+0 11 7 0.000000 0.115908 0.076378
+0 11 8 0.000000 0.121430 0.092361
+0 11 9 0.000000 0.126507 0.113369
+0 11 10 0.000000 0.133059 0.142998
+0 11 11 0.000000 0.142855 0.191595
+0 11 12 0.000000 0.151828 0.238526
+0 11 13 0.000000 0.159432 0.282681
+0 11 14 0.000000 0.166103 0.326843
+0 11 15 0.000000 0.171574 0.371015
+0 11 16 0.000000 0.177109 0.412175
+0 11 17 0.000000 0.182709 0.450324
+0 11 18 0.000000 0.188210 0.488023
+0 11 19 0.000000 0.193634 0.525373
+0 11 20 0.000000 0.198331 0.555322
+0 11 21 0.000000 0.202591 0.580831
+0 11 22 0.000000 0.207591 0.601322
+0 11 23 0.000000 0.212926 0.619533
+0 11 24 0.000000 0.224269 0.637144
+0 11 25 0.000000 0.237614 0.654556
+0 11 26 0.000000 0.261664 0.671351
+0 11 27 0.000000 0.288183 0.688005
+0 11 28 0.000000 0.306764 0.699737
+0 11 29 0.000000 0.324211 0.710767
+0 11 30 0.000000 0.337349 0.719191
+0 11 31 0.000000 0.350201 0.727441
+0 12 0 0.000000 0.113500 0.014073
+0 12 1 0.000000 0.115610 0.018938
+0 12 2 0.000000 0.117776 0.023915
+0 12 3 0.000000 0.120797 0.030561
+0 12 4 0.000000 0.124127 0.037861
+0 12 5 0.000000 0.129621 0.049737
+0 12 6 0.000000 0.135373 0.062422
+0 12 7 0.000000 0.142242 0.078611
+0 12 8 0.000000 0.149049 0.096613
+0 12 9 0.000000 0.155665 0.120053
+0 12 10 0.000000 0.163558 0.151726
+0 12 11 0.000000 0.174259 0.201510
+0 12 12 0.000000 0.184058 0.249504
+0 12 13 0.000000 0.192356 0.294517
+0 12 14 0.000000 0.199648 0.339660
+0 12 15 0.000000 0.205648 0.384972
+0 12 16 0.000000 0.211741 0.427185
+0 12 17 0.000000 0.217929 0.466297
+0 12 18 0.000000 0.224097 0.504517
+0 12 19 0.000000 0.230249 0.542043
+0 12 20 0.000000 0.235359 0.572191
+0 12 21 0.000000 0.239842 0.597911
+0 12 22 0.000000 0.244702 0.618372
+0 12 23 0.000000 0.249732 0.636441
+0 12 24 0.000000 0.260346 0.653506
+0 12 25 0.000000 0.272821 0.670236
+0 12 26 0.000000 0.294101 0.685376
+0 12 27 0.000000 0.317412 0.700149
+0 12 28 0.000000 0.334080 0.710741
+0 12 29 0.000000 0.349799 0.720737
+0 12 30 0.000000 0.361827 0.728512
+0 12 31 0.000000 0.373609 0.736140
+0 13 0 0.000000 0.137364 0.001503
+0 13 1 0.000000 0.139756 0.007685
+0 13 2 0.000000 0.142204 0.014002
+0 13 3 0.000000 0.145507 0.022340
+0 13 4 0.000000 0.149154 0.031497
+0 13 5 0.000000 0.155212 0.046381
+0 13 6 0.000000 0.161669 0.061863
+0 13 7 0.000000 0.169855 0.079933
+0 13 8 0.000000 0.177931 0.099792
+0 13 9 0.000000 0.185676 0.125019
+0 13 10 0.000000 0.194609 0.158419
+0 13 11 0.000000 0.206155 0.209801
+0 13 12 0.000000 0.216766 0.259359
+0 13 13 0.000000 0.225815 0.305876
+0 13 14 0.000000 0.233942 0.352235
+0 13 15 0.000000 0.240882 0.398394
+0 13 16 0.000000 0.247681 0.441687
+0 13 17 0.000000 0.254338 0.482116
+0 13 18 0.000000 0.260924 0.520912
+0 13 19 0.000000 0.267452 0.558438
+0 13 20 0.000000 0.272585 0.588644
+0 13 21 0.000000 0.276881 0.614459
+0 13 22 0.000000 0.281552 0.635013
+0 13 23 0.000000 0.286394 0.653177
+0 13 24 0.000000 0.296044 0.669842
+0 13 25 0.000000 0.307297 0.686008
+0 13 26 0.000000 0.326361 0.699896
+0 13 27 0.000000 0.347228 0.713259
+0 13 28 0.000000 0.362439 0.722770
+0 13 29 0.000000 0.376842 0.731732
+0 13 30 0.000000 0.387730 0.738473
+0 13 31 0.000000 0.398383 0.745066
+0 14 0 0.000000 0.167603 0.000000
+0 14 1 0.000000 0.170154 0.000000
+0 14 2 0.000000 0.172761 0.000000
+0 14 3 0.000000 0.176222 0.000000
+0 14 4 0.000000 0.180047 0.000000
+0 14 5 0.000000 0.186423 0.005296
+0 14 6 0.000000 0.193300 0.023413
+0 14 7 0.000000 0.202350 0.064424
+0 14 8 0.000000 0.211273 0.101945
+0 14 9 0.000000 0.219817 0.128999
+0 14 10 0.000000 0.229525 0.164207
+0 14 11 0.000000 0.241795 0.217352
+0 14 12 0.000000 0.253186 0.268530
+0 14 13 0.000000 0.263111 0.316427
+0 14 14 0.000000 0.272231 0.364348
+0 14 15 0.000000 0.280317 0.412299
+0 14 16 0.000000 0.287841 0.456817
+0 14 17 0.000000 0.294805 0.497904
+0 14 18 0.000000 0.301689 0.536896
+0 14 19 0.000000 0.308511 0.574257
+0 14 20 0.000000 0.313637 0.604460
+0 14 21 0.000000 0.317744 0.630369
+0 14 22 0.000000 0.322086 0.651187
+0 14 23 0.000000 0.326534 0.669692
+0 14 24 0.000000 0.335108 0.686111
+0 14 25 0.000000 0.345057 0.701836
+0 14 26 0.000000 0.361556 0.714262
+0 14 27 0.000000 0.379566 0.725926
+0 14 28 0.000000 0.392729 0.734141
+0 14 29 0.000000 0.405198 0.741862
+0 14 30 0.000000 0.414753 0.747749
+0 14 31 0.000000 0.424114 0.753514
+0 15 0 0.000000 0.206040 0.000000
+0 15 1 0.000000 0.208590 0.000000
+0 15 2 0.000000 0.211198 0.000000
+0 15 3 0.000000 0.214659 0.000000
+0 15 4 0.000000 0.218484 0.000000
+0 15 5 0.000000 0.224860 0.000000
+0 15 6 0.000000 0.231790 0.000000
+0 15 7 0.000000 0.241122 0.027274
+0 15 8 0.000000 0.250350 0.102779
+0 15 9 0.000000 0.259270 0.131714
+0 15 10 0.000000 0.269414 0.168832
+0 15 11 0.000000 0.282247 0.223951
+0 15 12 0.000000 0.294378 0.276821
+0 15 13 0.000000 0.305338 0.325941
+0 15 14 0.000000 0.315657 0.375865
+0 15 15 0.000000 0.325153 0.426825
+0 15 16 0.000000 0.333430 0.472754
+0 15 17 0.000000 0.340487 0.513653
+0 15 18 0.000000 0.347518 0.552350
+0 15 19 0.000000 0.354528 0.589336
+0 15 20 0.000000 0.359607 0.619457
+0 15 21 0.000000 0.363526 0.645459
+0 15 22 0.000000 0.367357 0.666759
+0 15 23 0.000000 0.371147 0.685922
+0 15 24 0.000000 0.378498 0.702295
+0 15 25 0.000000 0.387037 0.717738
+0 15 26 0.000000 0.400521 0.728430
+0 15 27 0.000000 0.415147 0.738026
+0 15 28 0.000000 0.425501 0.744665
+0 15 29 0.000000 0.435244 0.750882
+0 15 30 0.000000 0.443218 0.756146
+0 15 31 0.000000 0.451075 0.761347
+0 16 0 0.000000 0.239650 0.000000
+0 16 1 0.000000 0.242200 0.000000
+0 16 2 0.000000 0.244813 0.000000
+0 16 3 0.000000 0.248368 0.000000
+0 16 4 0.000000 0.252282 0.000000
+0 16 5 0.000000 0.258704 0.000000
+0 16 6 0.000000 0.265734 0.000000
+0 16 7 0.000000 0.275395 0.008643
+0 16 8 0.000000 0.284953 0.103294
+0 16 9 0.000000 0.294202 0.133921
+0 16 10 0.000000 0.304733 0.172731
+0 16 11 0.000000 0.318084 0.229543
+0 16 12 0.000000 0.330838 0.283911
+0 16 13 0.000000 0.342596 0.334206
+0 16 14 0.000000 0.353694 0.385614
+0 16 15 0.000000 0.363942 0.438454
+0 16 16 0.000000 0.372689 0.485464
+0 16 17 0.000000 0.379934 0.526645
+0 16 18 0.000000 0.387127 0.565255
+0 16 19 0.000000 0.394278 0.601864
+0 16 20 0.000000 0.399469 0.631991
+0 16 21 0.000000 0.403482 0.658228
+0 16 22 0.000000 0.407051 0.679925
+0 16 23 0.000000 0.410418 0.699558
+0 16 24 0.000000 0.416888 0.715836
+0 16 25 0.000000 0.424392 0.730997
+0 16 26 0.000000 0.435697 0.740567
+0 16 27 0.000000 0.447878 0.748847
+0 16 28 0.000000 0.456240 0.754540
+0 16 29 0.000000 0.464055 0.759864
+0 16 30 0.000000 0.470763 0.764411
+0 16 31 0.000000 0.477397 0.768907
+0 17 0 0.000000 0.268432 0.000000
+0 17 1 0.000000 0.270982 0.000000
+0 17 2 0.000000 0.273607 0.000000
+0 17 3 0.000000 0.277350 0.000000
+0 17 4 0.000000 0.281440 0.000000
+0 17 5 0.000000 0.287957 0.000000
+0 17 6 0.000000 0.295133 0.000000
+0 17 7 0.000000 0.305170 0.008531
+0 17 8 0.000000 0.315080 0.103488
+0 17 9 0.000000 0.324612 0.135619
+0 17 10 0.000000 0.335484 0.175904
+0 17 11 0.000000 0.349305 0.234126
+0 17 12 0.000000 0.362564 0.289799
+0 17 13 0.000000 0.374886 0.341222
+0 17 14 0.000000 0.386343 0.393594
+0 17 15 0.000000 0.396685 0.447186
+0 17 16 0.000000 0.405620 0.494948
+0 17 17 0.000000 0.413147 0.536882
+0 17 18 0.000000 0.420516 0.575609
+0 17 19 0.000000 0.427762 0.611842
+0 17 20 0.000000 0.433222 0.642063
+0 17 21 0.000000 0.437612 0.668676
+0 17 22 0.000000 0.441169 0.690685
+0 17 23 0.000000 0.444348 0.710599
+0 17 24 0.000000 0.450277 0.726737
+0 17 25 0.000000 0.457123 0.741616
+0 17 26 0.000000 0.467082 0.750674
+0 17 27 0.000000 0.477759 0.758390
+0 17 28 0.000000 0.484945 0.763766
+0 17 29 0.000000 0.491632 0.768808
+0 17 30 0.000000 0.497389 0.772544
+0 17 31 0.000000 0.503083 0.776193
+0 18 0 0.000000 0.296701 0.000000
+0 18 1 0.000000 0.299304 0.000000
+0 18 2 0.000000 0.301981 0.000000
+0 18 3 0.000000 0.305753 0.000000
+0 18 4 0.000000 0.309881 0.000000
+0 18 5 0.000000 0.316492 0.000000
+0 18 6 0.000000 0.323805 0.000000
+0 18 7 0.000000 0.334165 0.007352
+0 18 8 0.000000 0.344336 0.101953
+0 18 9 0.000000 0.353937 0.135642
+0 18 10 0.000000 0.364988 0.177619
+0 18 11 0.000000 0.379226 0.237834
+0 18 12 0.000000 0.392918 0.295155
+0 18 13 0.000000 0.405699 0.347653
+0 18 14 0.000000 0.417709 0.400959
+0 18 15 0.000000 0.428727 0.455303
+0 18 16 0.000000 0.438114 0.503633
+0 18 17 0.000000 0.445871 0.545948
+0 18 18 0.000000 0.453274 0.584839
+0 18 19 0.000000 0.460402 0.621066
+0 18 20 0.000000 0.465954 0.651487
+0 18 21 0.000000 0.470561 0.678424
+0 18 22 0.000000 0.474203 0.700618
+0 18 23 0.000000 0.477405 0.720656
+0 18 24 0.000000 0.482767 0.736613
+0 18 25 0.000000 0.488849 0.751210
+0 18 26 0.000000 0.497142 0.759714
+0 18 27 0.000000 0.505944 0.766813
+0 18 28 0.000000 0.512094 0.771911
+0 18 29 0.000000 0.517865 0.776724
+0 18 30 0.000000 0.522682 0.780049
+0 18 31 0.000000 0.527436 0.783275
+0 19 0 0.000000 0.324573 0.000000
+0 19 1 0.000000 0.327270 0.000000
+0 19 2 0.000000 0.330028 0.000000
+0 19 3 0.000000 0.333707 0.000000
+0 19 4 0.000000 0.337764 0.000000
+0 19 5 0.000000 0.344469 0.000000
+0 19 6 0.000000 0.351912 0.000000
+0 19 7 0.000000 0.362554 0.005342
+0 19 8 0.000000 0.372912 0.099073
+0 19 9 0.000000 0.382420 0.134360
+0 19 10 0.000000 0.393523 0.178201
+0 19 11 0.000000 0.408138 0.240860
+0 19 12 0.000000 0.422206 0.300097
+0 19 13 0.000000 0.435363 0.353630
+0 19 14 0.000000 0.448077 0.407846
+0 19 15 0.000000 0.460224 0.462943
+0 19 16 0.000000 0.470269 0.511695
+0 19 17 0.000000 0.478214 0.554104
+0 19 18 0.000000 0.485541 0.593195
+0 19 19 0.000000 0.492386 0.629704
+0 19 20 0.000000 0.497892 0.660407
+0 19 21 0.000000 0.502593 0.687626
+0 19 22 0.000000 0.506393 0.709908
+0 19 23 0.000000 0.509784 0.729946
+0 19 24 0.000000 0.514558 0.745692
+0 19 25 0.000000 0.519794 0.760006
+0 19 26 0.000000 0.526171 0.767923
+0 19 27 0.000000 0.532811 0.774364
+0 19 28 0.000000 0.538032 0.779215
+0 19 29 0.000000 0.543050 0.783840
+0 19 30 0.000000 0.546939 0.787065
+0 19 31 0.000000 0.550753 0.790197
+0 20 0 0.000000 0.345043 0.000000
+0 20 1 0.000000 0.347834 0.000000
+0 20 2 0.000000 0.350679 0.000000
+0 20 3 0.000000 0.354322 0.000000
+0 20 4 0.000000 0.358353 0.000000
+0 20 5 0.000000 0.365093 0.000000
+0 20 6 0.000000 0.372540 0.000000
+0 20 7 0.000000 0.383053 0.005775
+0 20 8 0.000000 0.393350 0.100047
+0 20 9 0.000000 0.402998 0.136403
+0 20 10 0.000000 0.414298 0.181321
+0 20 11 0.000000 0.429230 0.245073
+0 20 12 0.000000 0.443659 0.305226
+0 20 13 0.000000 0.457251 0.359382
+0 20 14 0.000000 0.470318 0.413995
+0 20 15 0.000000 0.482711 0.469197
+0 20 16 0.000000 0.493004 0.518167
+0 20 17 0.000000 0.501195 0.560905
+0 20 18 0.000000 0.508471 0.600100
+0 20 19 0.000000 0.515035 0.636539
+0 20 20 0.000000 0.520457 0.667318
+0 20 21 0.000000 0.525193 0.694702
+0 20 22 0.000000 0.529053 0.716833
+0 20 23 0.000000 0.532514 0.736578
+0 20 24 0.000000 0.537024 0.752082
+0 20 25 0.000000 0.541883 0.766173
+0 20 26 0.000000 0.547483 0.773943
+0 20 27 0.000000 0.553254 0.780255
+0 20 28 0.000000 0.557811 0.784925
+0 20 29 0.000000 0.562195 0.789362
+0 20 30 0.000000 0.565438 0.792432
+0 20 31 0.000000 0.568605 0.795412
+0 21 0 0.000000 0.361074 0.000000
+0 21 1 0.000000 0.363959 0.000000
+0 21 2 0.000000 0.366892 0.000000
+0 21 3 0.000000 0.370535 0.000000
+0 21 4 0.000000 0.374565 0.000000
+0 21 5 0.000000 0.381306 0.000000
+0 21 6 0.000000 0.388682 0.000000
+0 21 7 0.000000 0.398819 0.007673
+0 21 8 0.000000 0.408904 0.103331
+0 21 9 0.000000 0.418835 0.140440
+0 21 10 0.000000 0.430417 0.185963
+0 21 11 0.000000 0.445631 0.249997
+0 21 12 0.000000 0.460412 0.310468
+0 21 13 0.000000 0.474474 0.365000
+0 21 14 0.000000 0.487683 0.419701
+0 21 15 0.000000 0.499794 0.474621
+0 21 16 0.000000 0.510086 0.523685
+0 21 17 0.000000 0.518560 0.566893
+0 21 18 0.000000 0.525800 0.606135
+0 21 19 0.000000 0.532082 0.642292
+0 21 20 0.000000 0.537398 0.673024
+0 21 21 0.000000 0.542134 0.700502
+0 21 22 0.000000 0.545994 0.722339
+0 21 23 0.000000 0.549455 0.741614
+0 21 24 0.000000 0.553895 0.756860
+0 21 25 0.000000 0.558660 0.770763
+0 21 26 0.000000 0.564166 0.778650
+0 21 27 0.000000 0.569842 0.785150
+0 21 28 0.000000 0.573894 0.789679
+0 21 29 0.000000 0.577714 0.793928
+0 21 30 0.000000 0.580481 0.796810
+0 21 31 0.000000 0.583178 0.799601
+0 22 0 0.000000 0.375476 0.000000
+0 22 1 0.000000 0.378262 0.000000
+0 22 2 0.000000 0.381096 0.000000
+0 22 3 0.000000 0.384675 0.000000
+0 22 4 0.000000 0.388617 0.000000
+0 22 5 0.000000 0.395098 0.000000
+0 22 6 0.000000 0.402267 0.000000
+0 22 7 0.000000 0.412416 0.009724
+0 22 8 0.000000 0.422612 0.106980
+0 22 9 0.000000 0.432955 0.145293
+0 22 10 0.000000 0.444928 0.191732
+0 22 11 0.000000 0.460488 0.256048
+0 22 12 0.000000 0.475445 0.316715
+0 22 13 0.000000 0.489395 0.371300
+0 22 14 0.000000 0.502474 0.426021
+0 22 15 0.000000 0.514432 0.480917
+0 22 16 0.000000 0.524724 0.529881
+0 22 17 0.000000 0.533351 0.572914
+0 22 18 0.000000 0.540754 0.612174
+0 22 19 0.000000 0.547206 0.648501
+0 22 20 0.000000 0.552546 0.679154
+0 22 21 0.000000 0.557217 0.706403
+0 22 22 0.000000 0.561057 0.727757
+0 22 23 0.000000 0.564518 0.746431
+0 22 24 0.000000 0.568790 0.761290
+0 22 25 0.000000 0.573332 0.774876
+0 22 26 0.000000 0.578352 0.782594
+0 22 27 0.000000 0.583482 0.788958
+0 22 28 0.000000 0.587141 0.793363
+0 22 29 0.000000 0.590591 0.797488
+0 22 30 0.000000 0.593197 0.800429
+0 22 31 0.000000 0.595748 0.803290
+0 23 0 0.000000 0.389139 0.000000
+0 23 1 0.000000 0.391736 0.000000
+0 23 2 0.000000 0.394389 0.000000
+0 23 3 0.000000 0.397873 0.000000
+0 23 4 0.000000 0.401686 0.000000
+0 23 5 0.000000 0.407791 0.000000
+0 23 6 0.000000 0.414690 0.000000
+0 23 7 0.000000 0.425026 0.011846
+0 23 8 0.000000 0.435482 0.110794
+0 23 9 0.000000 0.446294 0.150517
+0 23 10 0.000000 0.458708 0.198014
+0 23 11 0.000000 0.474644 0.262612
+0 23 12 0.000000 0.489695 0.323420
+0 23 13 0.000000 0.503269 0.377911
+0 23 14 0.000000 0.516095 0.432620
+0 23 15 0.000000 0.527959 0.487610
+0 23 16 0.000000 0.538252 0.536387
+0 23 17 0.000000 0.546972 0.578948
+0 23 18 0.000000 0.554628 0.618215
+0 23 19 0.000000 0.561456 0.654918
+0 23 20 0.000000 0.566878 0.685477
+0 23 21 0.000000 0.571456 0.712349
+0 23 22 0.000000 0.575266 0.733133
+0 23 23 0.000000 0.578727 0.751150
+0 23 24 0.000000 0.582787 0.765562
+0 23 25 0.000000 0.587048 0.778772
+0 23 26 0.000000 0.591403 0.786190
+0 23 27 0.000000 0.595781 0.792272
+0 23 28 0.000000 0.599100 0.796559
+0 23 29 0.000000 0.602267 0.800591
+0 23 30 0.000000 0.604856 0.803702
+0 23 31 0.000000 0.607406 0.806751
+0 24 0 0.000000 0.402528 0.000000
+0 24 1 0.000000 0.405783 0.000000
+0 24 2 0.000000 0.409082 0.000000
+0 24 3 0.000000 0.413037 0.000000
+0 24 4 0.000000 0.417249 0.000000
+0 24 5 0.000000 0.423260 0.000000
+0 24 6 0.000000 0.430065 0.000000
+0 24 7 0.000000 0.440307 0.021252
+0 24 8 0.000000 0.450739 0.126070
+0 24 9 0.000000 0.461740 0.165512
+0 24 10 0.000000 0.474290 0.212815
+0 24 11 0.000000 0.490250 0.277413
+0 24 12 0.000000 0.505174 0.338106
+0 24 13 0.000000 0.518372 0.392292
+0 24 14 0.000000 0.530792 0.446438
+0 24 15 0.000000 0.542209 0.500535
+0 24 16 0.000000 0.552184 0.548383
+0 24 17 0.000000 0.560717 0.589981
+0 24 18 0.000000 0.568224 0.628244
+0 24 19 0.000000 0.574935 0.663913
+0 24 20 0.000000 0.580386 0.693849
+0 24 21 0.000000 0.585081 0.720346
+0 24 22 0.000000 0.588831 0.740463
+0 24 23 0.000000 0.592151 0.757680
+0 24 24 0.000000 0.596018 0.771504
+0 24 25 0.000000 0.600066 0.784197
+0 24 26 0.000000 0.604230 0.791346
+0 24 27 0.000000 0.608420 0.797217
+0 24 28 0.000000 0.611530 0.801396
+0 24 29 0.000000 0.614485 0.805333
+0 24 30 0.000000 0.616797 0.808350
+0 24 31 0.000000 0.619065 0.811306
+0 25 0 0.000000 0.415826 0.000000
+0 25 1 0.000000 0.420021 0.000000
+0 25 2 0.000000 0.424243 0.000000
+0 25 3 0.000000 0.428856 0.000000
+0 25 4 0.000000 0.433644 0.000000
+0 25 5 0.000000 0.439655 0.000000
+0 25 6 0.000000 0.446425 0.000000
+0 25 7 0.000000 0.456479 0.033087
+0 25 8 0.000000 0.466793 0.145168
+0 25 9 0.000000 0.477888 0.183764
+0 25 10 0.000000 0.490473 0.230456
+0 25 11 0.000000 0.506339 0.294960
+0 25 12 0.000000 0.521064 0.355453
+0 25 13 0.000000 0.533886 0.409262
+0 25 14 0.000000 0.545847 0.462663
+0 25 15 0.000000 0.556700 0.515538
+0 25 16 0.000000 0.566252 0.562210
+0 25 17 0.000000 0.574502 0.602680
+0 25 18 0.000000 0.581728 0.639603
+0 25 19 0.000000 0.588157 0.673768
+0 25 20 0.000000 0.593619 0.702905
+0 25 21 0.000000 0.598503 0.729025
+0 25 22 0.000000 0.602182 0.748443
+0 25 23 0.000000 0.605314 0.764814
+0 25 24 0.000000 0.608992 0.778003
+0 25 25 0.000000 0.612853 0.790132
+0 25 26 0.000000 0.616981 0.797023
+0 25 27 0.000000 0.621171 0.802705
+0 25 28 0.000000 0.624117 0.806778
+0 25 29 0.000000 0.626884 0.810621
+0 25 30 0.000000 0.628831 0.813456
+0 25 31 0.000000 0.630723 0.816224
+0 26 0 0.000000 0.427496 0.000000
+0 26 1 0.000000 0.431868 0.000000
+0 26 2 0.000000 0.436296 0.000000
+0 26 3 0.000000 0.441567 0.000000
+0 26 4 0.000000 0.447140 0.000000
+0 26 5 0.000000 0.454833 0.000000
+0 26 6 0.000000 0.462961 0.000000
+0 26 7 0.000000 0.472980 0.046736
+0 26 8 0.000000 0.483291 0.167952
+0 26 9 0.000000 0.494480 0.208604
+0 26 10 0.000000 0.506981 0.256108
+0 26 11 0.000000 0.522371 0.318684
+0 26 12 0.000000 0.536629 0.377746
+0 26 13 0.000000 0.548998 0.430950
+0 26 14 0.000000 0.560357 0.483141
+0 26 15 0.000000 0.570418 0.534030
+0 26 16 0.000000 0.579355 0.578992
+0 26 17 0.000000 0.587171 0.618028
+0 26 18 0.000000 0.593962 0.653607
+0 26 19 0.000000 0.599955 0.686497
+0 26 20 0.000000 0.605182 0.714061
+0 26 21 0.000000 0.609947 0.738430
+0 26 22 0.000000 0.613513 0.756719
+0 26 23 0.000000 0.616534 0.772244
+0 26 24 0.000000 0.620101 0.784970
+0 26 25 0.000000 0.623850 0.796764
+0 26 26 0.000000 0.627895 0.803191
+0 26 27 0.000000 0.632008 0.808380
+0 26 28 0.000000 0.634913 0.812376
+0 26 29 0.000000 0.637646 0.816201
+0 26 30 0.000000 0.639524 0.819002
+0 26 31 0.000000 0.641346 0.821735
+0 27 0 0.000000 0.438790 0.000000
+0 27 1 0.000000 0.443162 0.000000
+0 27 2 0.000000 0.447631 0.000000
+0 27 3 0.000000 0.453560 0.000000
+0 27 4 0.000000 0.459968 0.000000
+0 27 5 0.000000 0.469729 0.000000
+0 27 6 0.000000 0.479538 0.000000
+0 27 7 0.000000 0.489557 0.060804
+0 27 8 0.000000 0.499892 0.191587
+0 27 9 0.000000 0.511174 0.234965
+0 27 10 0.000000 0.523564 0.283609
+0 27 11 0.000000 0.538390 0.343835
+0 27 12 0.000000 0.552118 0.401181
+0 27 13 0.000000 0.564018 0.453727
+0 27 14 0.000000 0.574743 0.504601
+0 27 15 0.000000 0.583957 0.553328
+0 27 16 0.000000 0.592236 0.596456
+0 27 17 0.000000 0.599582 0.633988
+0 27 18 0.000000 0.605902 0.668221
+0 27 19 0.000000 0.611426 0.699889
+0 27 20 0.000000 0.616358 0.725702
+0 27 21 0.000000 0.620936 0.748002
+0 27 22 0.000000 0.624378 0.765063
+0 27 23 0.000000 0.627305 0.779742
+0 27 24 0.000000 0.630778 0.792045
+0 27 25 0.000000 0.634433 0.803557
+0 27 26 0.000000 0.638384 0.809473
+0 27 27 0.000000 0.642403 0.814098
+0 27 28 0.000000 0.645297 0.818023
+0 27 29 0.000000 0.648029 0.821848
+0 27 30 0.000000 0.649908 0.824649
+0 27 31 0.000000 0.651729 0.827382
+0 28 0 0.000000 0.446896 0.000000
+0 28 1 0.000000 0.451268 0.000000
+0 28 2 0.000000 0.455738 0.000000
+0 28 3 0.000000 0.461667 0.000000
+0 28 4 0.000000 0.468148 0.000000
+0 28 5 0.000000 0.478496 0.000000
+0 28 6 0.000000 0.489014 0.000000
+0 28 7 0.000000 0.500267 0.070476
+0 28 8 0.000000 0.511551 0.208007
+0 28 9 0.000000 0.522928 0.253948
+0 28 10 0.000000 0.535232 0.303696
+0 28 11 0.000000 0.549576 0.361818
+0 28 12 0.000000 0.562888 0.417695
+0 28 13 0.000000 0.574482 0.469829
+0 28 14 0.000000 0.584809 0.519922
+0 28 15 0.000000 0.593506 0.567391
+0 28 16 0.000000 0.601374 0.609386
+0 28 17 0.000000 0.608414 0.645907
+0 28 18 0.000000 0.614383 0.679010
+0 28 19 0.000000 0.619518 0.709455
+0 28 20 0.000000 0.624136 0.734186
+0 28 21 0.000000 0.628444 0.755487
+0 28 22 0.000000 0.631850 0.771824
+0 28 23 0.000000 0.634847 0.785903
+0 28 24 0.000000 0.638329 0.797598
+0 28 25 0.000000 0.641972 0.808499
+0 28 26 0.000000 0.645911 0.814243
+0 28 27 0.000000 0.649919 0.818797
+0 28 28 0.000000 0.652739 0.822354
+0 28 29 0.000000 0.655389 0.825768
+0 28 30 0.000000 0.657263 0.828543
+0 28 31 0.000000 0.659084 0.831275
+0 29 0 0.000000 0.454547 0.000000
+0 29 1 0.000000 0.458919 0.000000
+0 29 2 0.000000 0.463383 0.000000
+0 29 3 0.000000 0.469218 0.000000
+0 29 4 0.000000 0.475664 0.000000
+0 29 5 0.000000 0.486388 0.000000
+0 29 6 0.000000 0.497476 0.000000
+0 29 7 0.000000 0.510139 0.079519
+0 29 8 0.000000 0.522505 0.223397
+0 29 9 0.000000 0.533975 0.271877
+0 29 10 0.000000 0.546197 0.322723
+0 29 11 0.000000 0.560071 0.378777
+0 29 12 0.000000 0.572984 0.433220
+0 29 13 0.000000 0.584296 0.484978
+0 29 14 0.000000 0.594258 0.534366
+0 29 15 0.000000 0.602485 0.580707
+0 29 16 0.000000 0.609977 0.621667
+0 29 17 0.000000 0.616734 0.657248
+0 29 18 0.000000 0.622368 0.689253
+0 29 19 0.000000 0.627128 0.718475
+0 29 20 0.000000 0.631429 0.742219
+0 29 21 0.000000 0.635454 0.762674
+0 29 22 0.000000 0.638837 0.778358
+0 29 23 0.000000 0.641928 0.791873
+0 29 24 0.000000 0.645433 0.802934
+0 29 25 0.000000 0.649076 0.813176
+0 29 26 0.000000 0.653016 0.818797
+0 29 27 0.000000 0.657023 0.823351
+0 29 28 0.000000 0.659761 0.826496
+0 29 29 0.000000 0.662317 0.829440
+0 29 30 0.000000 0.664185 0.832186
+0 29 31 0.000000 0.666006 0.834919
+0 30 0 0.000000 0.460149 0.000000
+0 30 1 0.000000 0.464521 0.000000
+0 30 2 0.000000 0.468989 0.000000
+0 30 3 0.000000 0.474907 0.000000
+0 30 4 0.000000 0.481417 0.000000
+0 30 5 0.000000 0.492076 0.000000
+0 30 6 0.000000 0.503360 0.000000
+0 30 7 0.000000 0.517345 0.086260
+0 30 8 0.000000 0.530748 0.234876
+0 30 9 0.000000 0.542400 0.285277
+0 30 10 0.000000 0.554655 0.337046
+0 30 11 0.000000 0.568235 0.391824
+0 30 12 0.000000 0.580859 0.445362
+0 30 13 0.000000 0.591889 0.496833
+0 30 14 0.000000 0.601602 0.545642
+0 30 15 0.000000 0.609623 0.591031
+0 30 16 0.000000 0.616784 0.631089
+0 30 17 0.000000 0.623083 0.665818
+0 30 18 0.000000 0.628305 0.696911
+0 30 19 0.000000 0.632689 0.725176
+0 30 20 0.000000 0.636837 0.748196
+0 30 21 0.000000 0.640845 0.768070
+0 30 22 0.000000 0.644226 0.783245
+0 30 23 0.000000 0.647323 0.796285
+0 30 24 0.000000 0.650764 0.806931
+0 30 25 0.000000 0.654319 0.816780
+0 30 26 0.000000 0.658242 0.822327
+0 30 27 0.000000 0.662249 0.826881
+0 30 28 0.000000 0.664982 0.830000
+0 30 29 0.000000 0.667532 0.832915
+0 30 30 0.000000 0.669399 0.835328
+0 30 31 0.000000 0.671221 0.837708
+0 31 0 0.000000 0.465614 0.000000
+0 31 1 0.000000 0.469986 0.000000
+0 31 2 0.000000 0.474460 0.000000
+0 31 3 0.000000 0.480472 0.000000
+0 31 4 0.000000 0.487052 0.000000
+0 31 5 0.000000 0.497618 0.000000
+0 31 6 0.000000 0.509071 0.000000
+0 31 7 0.000000 0.524373 0.092847
+0 31 8 0.000000 0.538810 0.246094
+0 31 9 0.000000 0.550650 0.298375
+0 31 10 0.000000 0.562947 0.351055
+0 31 11 0.000000 0.576245 0.404611
+0 31 12 0.000000 0.588586 0.457280
+0 31 13 0.000000 0.599334 0.508468
+0 31 14 0.000000 0.608807 0.556708
+0 31 15 0.000000 0.616640 0.601156
+0 31 16 0.000000 0.623471 0.640321
+0 31 17 0.000000 0.629300 0.674204
+0 31 18 0.000000 0.634105 0.704398
+0 31 19 0.000000 0.638112 0.731722
+0 31 20 0.000000 0.642120 0.754037
+0 31 21 0.000000 0.646128 0.773347
+0 31 22 0.000000 0.649509 0.788023
+0 31 23 0.000000 0.652606 0.800592
+0 31 24 0.000000 0.655976 0.810839
+0 31 25 0.000000 0.659437 0.820311
+0 31 26 0.000000 0.663342 0.825788
+0 31 27 0.000000 0.667350 0.830342
+0 31 28 0.000000 0.670082 0.833461
+0 31 29 0.000000 0.672633 0.836376
+0 31 30 0.000000 0.674500 0.838437
+0 31 31 0.000000 0.676321 0.840441
+1 0 0 0.041344 0.038904 0.028316
+1 0 1 0.041432 0.039086 0.029873
+1 0 2 0.041514 0.039257 0.031435
+1 0 3 0.041514 0.039257 0.033075
+1 0 4 0.041514 0.039280 0.034896
+1 0 5 0.041514 0.039462 0.037993
+1 0 6 0.041418 0.039644 0.041228
+1 0 7 0.040910 0.039826 0.045059
+1 0 8 0.040339 0.039894 0.050096
+1 0 9 0.039585 0.039618 0.058752
+1 0 10 0.036498 0.039426 0.074439
+1 0 11 0.028282 0.039420 0.105595
+1 0 12 0.021814 0.038630 0.136273
+1 0 13 0.018258 0.036532 0.166154
+1 0 14 0.022045 0.029318 0.199699
+1 0 15 0.035271 0.015526 0.237953
+1 0 16 0.046165 0.000000 0.272523
+1 0 17 0.054726 0.000000 0.303409
+1 0 18 0.065622 0.000000 0.332804
+1 0 19 0.078334 0.000000 0.361040
+1 0 20 0.087344 0.000000 0.385580
+1 0 21 0.094133 0.000000 0.407905
+1 0 22 0.099052 0.000000 0.428471
+1 0 23 0.103122 0.000000 0.448239
+1 0 24 0.071893 0.000000 0.472731
+1 0 25 0.028898 0.000000 0.498799
+1 0 26 0.000000 0.000000 0.530700
+1 0 27 0.000000 0.000000 0.563948
+1 0 28 0.000000 0.000000 0.586512
+1 0 29 0.000000 0.000000 0.607549
+1 0 30 0.000000 0.067731 0.623038
+1 0 31 0.000000 0.163915 0.638158
+1 1 0 0.042307 0.040379 0.028222
+1 1 1 0.041821 0.040649 0.030288
+1 1 2 0.041366 0.040908 0.032331
+1 1 3 0.041366 0.041002 0.034019
+1 1 4 0.041366 0.041095 0.035877
+1 1 5 0.041366 0.041184 0.038926
+1 1 6 0.041272 0.041334 0.042301
+1 1 7 0.040769 0.041756 0.047090
+1 1 8 0.040102 0.042073 0.052880
+1 1 9 0.038943 0.042076 0.061669
+1 1 10 0.035476 0.042121 0.077594
+1 1 11 0.026930 0.042261 0.109217
+1 1 12 0.015759 0.041720 0.140454
+1 1 13 0.000216 0.040044 0.171048
+1 1 14 0.002466 0.033797 0.205095
+1 1 15 0.027593 0.021673 0.243583
+1 1 16 0.044367 0.000452 0.278531
+1 1 17 0.052790 0.000000 0.309939
+1 1 18 0.063476 0.000000 0.339664
+1 1 19 0.075923 0.000000 0.368082
+1 1 20 0.084696 0.000000 0.392810
+1 1 21 0.091264 0.000000 0.415325
+1 1 22 0.095787 0.000000 0.435754
+1 1 23 0.099379 0.000000 0.455233
+1 1 24 0.058617 0.000000 0.478525
+1 1 25 0.003070 0.000000 0.503088
+1 1 26 0.000000 0.000000 0.534668
+1 1 27 0.000000 0.000000 0.567868
+1 1 28 0.000000 0.000000 0.590468
+1 1 29 0.000000 0.000000 0.611553
+1 1 30 0.000000 0.075576 0.627046
+1 1 31 0.000000 0.171759 0.642166
+1 2 0 0.043210 0.041847 0.028133
+1 2 1 0.042187 0.042202 0.030681
+1 2 2 0.041226 0.042548 0.033181
+1 2 3 0.041193 0.042751 0.034970
+1 2 4 0.041164 0.042929 0.036911
+1 2 5 0.041164 0.042932 0.039917
+1 2 6 0.041068 0.043056 0.043432
+1 2 7 0.040553 0.043705 0.049153
+1 2 8 0.039782 0.044264 0.055679
+1 2 9 0.038236 0.044552 0.064623
+1 2 10 0.034381 0.044841 0.080804
+1 2 11 0.025443 0.045132 0.112909
+1 2 12 0.009333 0.044844 0.144717
+1 2 13 0.000000 0.043593 0.176029
+1 2 14 0.000000 0.038302 0.210584
+1 2 15 0.019475 0.027819 0.249308
+1 2 16 0.042408 0.014085 0.284634
+1 2 17 0.050714 0.000000 0.316559
+1 2 18 0.061202 0.000000 0.346624
+1 2 19 0.073387 0.000000 0.375242
+1 2 20 0.081917 0.000000 0.400168
+1 2 21 0.088254 0.000000 0.422880
+1 2 22 0.092363 0.000000 0.443180
+1 2 23 0.095459 0.000000 0.462384
+1 2 24 0.045780 0.000000 0.484527
+1 2 25 0.000000 0.000000 0.507650
+1 2 26 0.000000 0.000000 0.538838
+1 2 27 0.000000 0.000000 0.571886
+1 2 28 0.000000 0.000000 0.594507
+1 2 29 0.000000 0.000000 0.615638
+1 2 30 0.000000 0.083548 0.631133
+1 2 31 0.000000 0.179734 0.646253
+1 3 0 0.043210 0.043210 0.028133
+1 3 1 0.042187 0.043614 0.030729
+1 3 2 0.041193 0.044026 0.033331
+1 3 3 0.040635 0.044556 0.036012
+1 3 4 0.040147 0.045027 0.038739
+1 3 5 0.040147 0.045078 0.041794
+1 3 6 0.040001 0.045251 0.045444
+1 3 7 0.039224 0.045945 0.051681
+1 3 8 0.038222 0.046633 0.058711
+1 3 9 0.036544 0.047300 0.068125
+1 3 10 0.032188 0.047923 0.084851
+1 3 11 0.021940 0.048447 0.117662
+1 3 12 0.000000 0.048482 0.150211
+1 3 13 0.000000 0.047700 0.182320
+1 3 14 0.000000 0.043209 0.217447
+1 3 15 0.004770 0.033948 0.256454
+1 3 16 0.038022 0.021977 0.292155
+1 3 17 0.046548 0.007297 0.324551
+1 3 18 0.057009 0.000000 0.355086
+1 3 19 0.068973 0.000000 0.384174
+1 3 20 0.077175 0.000000 0.409453
+1 3 21 0.083120 0.000000 0.432447
+1 3 22 0.086564 0.000000 0.452770
+1 3 23 0.088873 0.000000 0.471880
+1 3 24 0.039522 0.000000 0.493647
+1 3 25 0.000000 0.000000 0.516300
+1 3 26 0.000000 0.000000 0.546024
+1 3 27 0.000000 0.000000 0.577380
+1 3 28 0.000000 0.000000 0.599789
+1 3 29 0.000000 0.000000 0.620921
+1 3 30 0.000000 0.093428 0.636416
+1 3 31 0.000000 0.189659 0.651536
+1 4 0 0.043210 0.044688 0.028144
+1 4 1 0.042187 0.045129 0.030783
+1 4 2 0.041163 0.045594 0.033474
+1 4 3 0.040135 0.046428 0.036953
+1 4 4 0.039222 0.047181 0.040408
+1 4 5 0.039112 0.047363 0.043692
+1 4 6 0.038835 0.047648 0.047615
+1 4 7 0.037828 0.048377 0.054302
+1 4 8 0.036607 0.049182 0.061814
+1 4 9 0.034742 0.050216 0.071797
+1 4 10 0.029805 0.051185 0.089180
+1 4 11 0.018109 0.052014 0.122839
+1 4 12 0.000000 0.052440 0.156239
+1 4 13 0.000000 0.052193 0.189204
+1 4 14 0.000000 0.048591 0.224952
+1 4 15 0.000000 0.040676 0.264277
+1 4 16 0.033204 0.030630 0.300392
+1 4 17 0.041956 0.018454 0.333299
+1 4 18 0.052397 0.000000 0.364326
+1 4 19 0.064153 0.000000 0.393890
+1 4 20 0.072004 0.000000 0.419556
+1 4 21 0.077512 0.000000 0.442885
+1 4 22 0.080249 0.000000 0.463248
+1 4 23 0.081726 0.000000 0.482264
+1 4 24 0.032601 0.000000 0.503699
+1 4 25 0.000000 0.000000 0.525941
+1 4 26 0.000000 0.000000 0.554022
+1 4 27 0.000000 0.000000 0.583450
+1 4 28 0.000000 0.000000 0.605598
+1 4 29 0.000000 0.009399 0.626706
+1 4 30 0.000000 0.104270 0.642200
+1 4 31 0.000000 0.200541 0.657319
+1 5 0 0.043210 0.046968 0.028233
+1 5 1 0.042187 0.047360 0.030871
+1 5 2 0.041158 0.047789 0.033571
+1 5 3 0.040042 0.048766 0.037192
+1 5 4 0.038943 0.049731 0.040960
+1 5 5 0.037958 0.050617 0.045749
+1 5 6 0.036969 0.051465 0.050894
+1 5 7 0.035963 0.052148 0.057581
+1 5 8 0.034600 0.052989 0.065410
+1 5 9 0.032167 0.054302 0.076661
+1 5 10 0.026087 0.055714 0.095488
+1 5 11 0.011984 0.057343 0.130983
+1 5 12 0.000000 0.058640 0.166004
+1 5 13 0.000000 0.059382 0.200238
+1 5 14 0.000000 0.057302 0.236947
+1 5 15 0.000000 0.051595 0.276838
+1 5 16 0.025365 0.044603 0.313637
+1 5 17 0.034380 0.036328 0.347341
+1 5 18 0.044863 0.000000 0.379008
+1 5 19 0.056489 0.000000 0.409091
+1 5 20 0.063825 0.000000 0.435392
+1 5 21 0.068588 0.000000 0.459424
+1 5 22 0.070309 0.000000 0.479943
+1 5 23 0.070649 0.000000 0.498865
+1 5 24 0.021043 0.000000 0.520276
+1 5 25 0.000000 0.000000 0.542518
+1 5 26 0.000000 0.000000 0.567696
+1 5 27 0.000000 0.000000 0.593552
+1 5 28 0.000000 0.000000 0.615088
+1 5 29 0.000000 0.026408 0.636008
+1 5 30 0.000000 0.121849 0.651490
+1 5 31 0.000000 0.218123 0.666610
+1 6 0 0.043227 0.049591 0.028287
+1 6 1 0.042172 0.050060 0.030988
+1 6 2 0.041109 0.050567 0.033754
+1 6 3 0.039922 0.051642 0.037500
+1 6 4 0.038667 0.052770 0.041535
+1 6 5 0.036930 0.054262 0.047600
+1 6 6 0.035271 0.055631 0.053858
+1 6 7 0.033954 0.056462 0.060960
+1 6 8 0.032194 0.057493 0.069449
+1 6 9 0.029105 0.059121 0.082102
+1 6 10 0.021040 0.061038 0.102520
+1 6 11 0.002028 0.063591 0.140025
+1 6 12 0.000000 0.065852 0.176858
+1 6 13 0.000000 0.067627 0.212570
+1 6 14 0.000000 0.067148 0.250367
+1 6 15 0.000000 0.063772 0.290843
+1 6 16 0.010827 0.059870 0.328346
+1 6 17 0.020242 0.055443 0.362875
+1 6 18 0.030713 0.006989 0.395324
+1 6 19 0.042005 0.000000 0.426153
+1 6 20 0.048807 0.000000 0.453164
+1 6 21 0.052915 0.000000 0.477882
+1 6 22 0.053699 0.000000 0.498611
+1 6 23 0.052973 0.000000 0.517528
+1 6 24 0.005033 0.000000 0.538805
+1 6 25 0.000000 0.000000 0.560870
+1 6 26 0.000000 0.000000 0.583656
+1 6 27 0.000000 0.000000 0.606609
+1 6 28 0.000000 0.000000 0.627125
+1 6 29 0.000000 0.061278 0.647292
+1 6 30 0.000000 0.149418 0.662306
+1 6 31 0.000000 0.237859 0.676977
+1 7 0 0.043320 0.053698 0.028193
+1 7 1 0.042096 0.054789 0.031227
+1 7 2 0.040874 0.055873 0.034309
+1 7 3 0.039687 0.056854 0.038100
+1 7 4 0.038404 0.057923 0.042211
+1 7 5 0.036447 0.059604 0.048558
+1 7 6 0.034299 0.061310 0.055459
+1 7 7 0.031324 0.063127 0.064769
+1 7 8 0.028061 0.065015 0.075409
+1 7 9 0.023930 0.067116 0.090042
+1 7 10 0.010229 0.069814 0.112688
+1 7 11 0.000000 0.073823 0.152962
+1 7 12 0.000000 0.077452 0.192423
+1 7 13 0.000000 0.080449 0.230532
+1 7 14 0.000000 0.081911 0.269965
+1 7 15 0.000000 0.081401 0.311099
+1 7 16 0.000000 0.080745 0.349402
+1 7 17 0.000000 0.079942 0.384875
+1 7 18 0.000000 0.060152 0.418713
+1 7 19 0.000000 0.025594 0.451281
+1 7 20 0.004153 0.013751 0.479324
+1 7 21 0.007995 0.015537 0.504652
+1 7 22 0.008180 0.018668 0.525832
+1 7 23 0.006703 0.022410 0.545128
+1 7 24 0.000000 0.031228 0.565793
+1 7 25 0.000000 0.041737 0.586914
+1 7 26 0.000000 0.060399 0.609524
+1 7 27 0.000000 0.080943 0.632477
+1 7 28 0.000000 0.125529 0.650195
+1 7 29 0.000000 0.173549 0.667166
+1 7 30 0.000000 0.220282 0.679734
+1 7 31 0.000000 0.266929 0.692008
+1 8 0 0.043122 0.058126 0.027821
+1 8 1 0.038073 0.059645 0.031260
+1 8 2 0.033212 0.061133 0.034727
+1 8 3 0.031172 0.062149 0.038623
+1 8 4 0.029094 0.063287 0.042869
+1 8 5 0.026753 0.065273 0.049568
+1 8 6 0.024015 0.067415 0.057122
+1 8 7 0.019553 0.070230 0.068383
+1 8 8 0.014785 0.072962 0.080893
+1 8 9 0.009096 0.075442 0.097152
+1 8 10 0.000000 0.078880 0.121771
+1 8 11 0.000000 0.084427 0.164780
+1 8 12 0.000000 0.089498 0.206820
+1 8 13 0.000000 0.093777 0.247243
+1 8 14 0.000000 0.097096 0.288239
+1 8 15 0.000000 0.099182 0.329972
+1 8 16 0.000000 0.101359 0.369046
+1 8 17 0.000000 0.103626 0.405463
+1 8 18 0.000000 0.105680 0.440632
+1 8 19 0.000000 0.107566 0.474831
+1 8 20 0.000000 0.110147 0.503750
+1 8 21 0.000000 0.113143 0.529500
+1 8 22 0.000000 0.118269 0.550911
+1 8 23 0.000000 0.124363 0.570350
+1 8 24 0.000000 0.138563 0.590352
+1 8 25 0.000000 0.155464 0.610543
+1 8 26 0.000000 0.185638 0.632615
+1 8 27 0.000000 0.218874 0.655121
+1 8 28 0.000000 0.241523 0.670439
+1 8 29 0.000000 0.262660 0.684730
+1 8 30 0.000000 0.278205 0.695247
+1 8 31 0.000000 0.293378 0.705513
+1 9 0 0.042050 0.063515 0.026616
+1 9 1 0.022210 0.064882 0.030671
+1 9 2 0.003269 0.066254 0.034733
+1 9 3 0.000000 0.067692 0.038911
+1 9 4 0.000000 0.069281 0.043475
+1 9 5 0.000000 0.071925 0.050738
+1 9 6 0.000000 0.074796 0.058971
+1 9 7 0.000000 0.078649 0.071411
+1 9 8 0.000000 0.082182 0.084947
+1 9 9 0.000000 0.084755 0.101771
+1 9 10 0.000000 0.088817 0.127601
+1 9 11 0.000000 0.096150 0.173246
+1 9 12 0.000000 0.102885 0.217709
+1 9 13 0.000000 0.108622 0.260200
+1 9 14 0.000000 0.113544 0.302544
+1 9 15 0.000000 0.117416 0.344699
+1 9 16 0.000000 0.121190 0.384456
+1 9 17 0.000000 0.124865 0.421815
+1 9 18 0.000000 0.128301 0.458135
+1 9 19 0.000000 0.131553 0.493648
+1 9 20 0.000000 0.134850 0.522972
+1 9 21 0.000000 0.138174 0.548583
+1 9 22 0.000000 0.143371 0.569562
+1 9 23 0.000000 0.149419 0.588437
+1 9 24 0.000000 0.162871 0.607627
+1 9 25 0.000000 0.178789 0.626923
+1 9 26 0.000000 0.207862 0.647376
+1 9 27 0.000000 0.239970 0.668096
+1 9 28 0.000000 0.261859 0.682203
+1 9 29 0.000000 0.282289 0.695366
+1 9 30 0.000000 0.297308 0.705020
+1 9 31 0.000000 0.311965 0.714439
+1 10 0 0.033935 0.073740 0.019899
+1 10 1 0.004206 0.075108 0.026756
+1 10 2 0.000000 0.076510 0.033473
+1 10 3 0.000000 0.078429 0.038110
+1 10 4 0.000000 0.080539 0.043186
+1 10 5 0.000000 0.083989 0.051336
+1 10 6 0.000000 0.087708 0.060547
+1 10 7 0.000000 0.092596 0.074356
+1 10 8 0.000000 0.097061 0.089235
+1 10 9 0.000000 0.100258 0.107328
+1 10 10 0.000000 0.105218 0.134689
+1 10 11 0.000000 0.114059 0.182440
+1 10 12 0.000000 0.122188 0.228807
+1 10 13 0.000000 0.129134 0.272867
+1 10 14 0.000000 0.135325 0.316414
+1 10 15 0.000000 0.140544 0.359300
+1 10 16 0.000000 0.145592 0.399849
+1 10 17 0.000000 0.150471 0.438062
+1 10 18 0.000000 0.155110 0.475321
+1 10 19 0.000000 0.159563 0.511840
+1 10 20 0.000000 0.163553 0.541546
+1 10 21 0.000000 0.167264 0.567164
+1 10 22 0.000000 0.172480 0.587819
+1 10 23 0.000000 0.178380 0.606217
+1 10 24 0.000000 0.191087 0.624640
+1 10 25 0.000000 0.206064 0.643070
+1 10 26 0.000000 0.233386 0.661814
+1 10 27 0.000000 0.263558 0.680630
+1 10 28 0.000000 0.284267 0.693551
+1 10 29 0.000000 0.303624 0.705630
+1 10 30 0.000000 0.317912 0.714532
+1 10 31 0.000000 0.331861 0.723222
+1 11 0 0.010326 0.094607 0.001054
+1 11 1 0.000000 0.096308 0.015523
+1 11 2 0.000000 0.098061 0.029431
+1 11 3 0.000000 0.100593 0.034913
+1 11 4 0.000000 0.103380 0.040929
+1 11 5 0.000000 0.107958 0.050678
+1 11 6 0.000000 0.112787 0.061522
+1 11 7 0.000000 0.118706 0.077114
+1 11 8 0.000000 0.124392 0.094036
+1 11 9 0.000000 0.129375 0.114950
+1 11 10 0.000000 0.135842 0.144544
+1 11 11 0.000000 0.145574 0.193235
+1 11 12 0.000000 0.154508 0.240365
+1 11 13 0.000000 0.162112 0.284896
+1 11 14 0.000000 0.168838 0.329325
+1 11 15 0.000000 0.174437 0.373625
+1 11 16 0.000000 0.180052 0.415208
+1 11 17 0.000000 0.185686 0.454076
+1 11 18 0.000000 0.191130 0.491808
+1 11 19 0.000000 0.196426 0.528657
+1 11 20 0.000000 0.201056 0.558694
+1 11 21 0.000000 0.205286 0.584643
+1 11 22 0.000000 0.210405 0.605207
+1 11 23 0.000000 0.215929 0.623323
+1 11 24 0.000000 0.227904 0.641075
+1 11 25 0.000000 0.242028 0.658705
+1 11 26 0.000000 0.266172 0.675541
+1 11 27 0.000000 0.292628 0.692194
+1 11 28 0.000000 0.311230 0.703983
+1 11 29 0.000000 0.328710 0.715076
+1 11 30 0.000000 0.341819 0.723473
+1 11 31 0.000000 0.354637 0.731690
+1 12 0 0.000000 0.116773 0.000000
+1 12 1 0.000000 0.118807 0.002147
+1 12 2 0.000000 0.120904 0.023081
+1 12 3 0.000000 0.123942 0.029727
+1 12 4 0.000000 0.127286 0.037026
+1 12 5 0.000000 0.132762 0.048902
+1 12 6 0.000000 0.138535 0.061823
+1 12 7 0.000000 0.145592 0.079271
+1 12 8 0.000000 0.152516 0.098189
+1 12 9 0.000000 0.159038 0.121517
+1 12 10 0.000000 0.166837 0.153148
+1 12 11 0.000000 0.177444 0.203044
+1 12 12 0.000000 0.187198 0.251270
+1 12 13 0.000000 0.195532 0.296713
+1 12 14 0.000000 0.202919 0.342173
+1 12 15 0.000000 0.209088 0.387655
+1 12 16 0.000000 0.215305 0.430290
+1 12 17 0.000000 0.221568 0.470079
+1 12 18 0.000000 0.227674 0.508331
+1 12 19 0.000000 0.233657 0.545387
+1 12 20 0.000000 0.238714 0.575675
+1 12 21 0.000000 0.243216 0.601902
+1 12 22 0.000000 0.248185 0.622418
+1 12 23 0.000000 0.253367 0.640339
+1 12 24 0.000000 0.264512 0.657508
+1 12 25 0.000000 0.277646 0.674426
+1 12 26 0.000000 0.298987 0.689601
+1 12 27 0.000000 0.322222 0.704374
+1 12 28 0.000000 0.338931 0.715033
+1 12 29 0.000000 0.354708 0.725104
+1 12 30 0.000000 0.366686 0.732813
+1 12 31 0.000000 0.378410 0.740365
+1 13 0 0.000000 0.141107 0.000000
+1 13 1 0.000000 0.143472 0.000000
+1 13 2 0.000000 0.145899 0.012885
+1 13 3 0.000000 0.149268 0.021224
+1 13 4 0.000000 0.152965 0.030380
+1 13 5 0.000000 0.158957 0.045265
+1 13 6 0.000000 0.165395 0.061001
+1 13 7 0.000000 0.173769 0.080426
+1 13 8 0.000000 0.181962 0.101262
+1 13 9 0.000000 0.189613 0.126328
+1 13 10 0.000000 0.198452 0.159668
+1 13 11 0.000000 0.209905 0.211211
+1 13 12 0.000000 0.220506 0.261085
+1 13 13 0.000000 0.229689 0.308178
+1 13 14 0.000000 0.237944 0.354915
+1 13 15 0.000000 0.245005 0.401195
+1 13 16 0.000000 0.251878 0.444911
+1 13 17 0.000000 0.258563 0.486065
+1 13 18 0.000000 0.265092 0.524914
+1 13 19 0.000000 0.271499 0.561970
+1 13 20 0.000000 0.276628 0.592377
+1 13 21 0.000000 0.280991 0.618795
+1 13 22 0.000000 0.285720 0.639336
+1 13 23 0.000000 0.290617 0.657205
+1 13 24 0.000000 0.300775 0.673938
+1 13 25 0.000000 0.312686 0.690292
+1 13 26 0.000000 0.331851 0.704215
+1 13 27 0.000000 0.352691 0.717578
+1 13 28 0.000000 0.367863 0.727113
+1 13 29 0.000000 0.382227 0.736102
+1 13 30 0.000000 0.393149 0.742819
+1 13 31 0.000000 0.403843 0.749385
+1 14 0 0.000000 0.171734 0.000000
+1 14 1 0.000000 0.174285 0.000000
+1 14 2 0.000000 0.176896 0.000000
+1 14 3 0.000000 0.180430 0.000000
+1 14 4 0.000000 0.184308 0.000000
+1 14 5 0.000000 0.190590 0.004309
+1 14 6 0.000000 0.197429 0.022654
+1 14 7 0.000000 0.206688 0.064884
+1 14 8 0.000000 0.215745 0.103284
+1 14 9 0.000000 0.224195 0.130193
+1 14 10 0.000000 0.233816 0.165352
+1 14 11 0.000000 0.246013 0.218664
+1 14 12 0.000000 0.257420 0.270185
+1 14 13 0.000000 0.267512 0.318719
+1 14 14 0.000000 0.276749 0.367039
+1 14 15 0.000000 0.284886 0.415084
+1 14 16 0.000000 0.292447 0.460015
+1 14 17 0.000000 0.299432 0.501833
+1 14 18 0.000000 0.306284 0.540915
+1 14 19 0.000000 0.313034 0.577871
+1 14 20 0.000000 0.318191 0.608293
+1 14 21 0.000000 0.322392 0.634796
+1 14 22 0.000000 0.326778 0.655541
+1 14 23 0.000000 0.331248 0.673670
+1 14 24 0.000000 0.340320 0.690184
+1 14 25 0.000000 0.350927 0.706161
+1 14 26 0.000000 0.367532 0.718634
+1 14 27 0.000000 0.385522 0.730298
+1 14 28 0.000000 0.398618 0.738513
+1 14 29 0.000000 0.411014 0.746234
+1 14 30 0.000000 0.420653 0.752121
+1 14 31 0.000000 0.430108 0.757886
+1 15 0 0.000000 0.210453 0.000000
+1 15 1 0.000000 0.213004 0.000000
+1 15 2 0.000000 0.215612 0.000000
+1 15 3 0.000000 0.219098 0.000000
+1 15 4 0.000000 0.222933 0.000000
+1 15 5 0.000000 0.229214 0.000000
+1 15 6 0.000000 0.236116 0.000000
+1 15 7 0.000000 0.245706 0.027874
+1 15 8 0.000000 0.255104 0.103954
+1 15 9 0.000000 0.263930 0.132841
+1 15 10 0.000000 0.274001 0.169962
+1 15 11 0.000000 0.286811 0.225200
+1 15 12 0.000000 0.298971 0.278364
+1 15 13 0.000000 0.310049 0.328072
+1 15 14 0.000000 0.320414 0.378369
+1 15 15 0.000000 0.329865 0.429422
+1 15 16 0.000000 0.338154 0.475739
+1 15 17 0.000000 0.345281 0.517321
+1 15 18 0.000000 0.352329 0.556170
+1 15 19 0.000000 0.359315 0.592894
+1 15 20 0.000000 0.364443 0.623198
+1 15 21 0.000000 0.368457 0.649650
+1 15 22 0.000000 0.372365 0.670832
+1 15 23 0.000000 0.376224 0.689618
+1 15 24 0.000000 0.384087 0.706195
+1 15 25 0.000000 0.393283 0.722035
+1 15 26 0.000000 0.406835 0.732802
+1 15 27 0.000000 0.421391 0.742398
+1 15 28 0.000000 0.431714 0.749037
+1 15 29 0.000000 0.441433 0.755254
+1 15 30 0.000000 0.449494 0.760518
+1 15 31 0.000000 0.457445 0.765719
+1 16 0 0.000000 0.244439 0.000000
+1 16 1 0.000000 0.247038 0.000000
+1 16 2 0.000000 0.249695 0.000000
+1 16 3 0.000000 0.253226 0.000000
+1 16 4 0.000000 0.257112 0.000000
+1 16 5 0.000000 0.263490 0.000000
+1 16 6 0.000000 0.270526 0.000000
+1 16 7 0.000000 0.280420 0.009255
+1 16 8 0.000000 0.290142 0.104293
+1 16 9 0.000000 0.299346 0.134920
+1 16 10 0.000000 0.309845 0.173767
+1 16 11 0.000000 0.323196 0.230697
+1 16 12 0.000000 0.335985 0.285360
+1 16 13 0.000000 0.347838 0.336243
+1 16 14 0.000000 0.358958 0.388013
+1 16 15 0.000000 0.369136 0.440922
+1 16 16 0.000000 0.377908 0.488333
+1 16 17 0.000000 0.385271 0.530245
+1 16 18 0.000000 0.392475 0.569068
+1 16 19 0.000000 0.399553 0.605489
+1 16 20 0.000000 0.404790 0.635781
+1 16 21 0.000000 0.408922 0.662395
+1 16 22 0.000000 0.412559 0.683950
+1 16 23 0.000000 0.415972 0.703207
+1 16 24 0.000000 0.422874 0.719708
+1 16 25 0.000000 0.430939 0.735290
+1 16 26 0.000000 0.442292 0.744939
+1 16 27 0.000000 0.454404 0.753219
+1 16 28 0.000000 0.462778 0.758912
+1 16 29 0.000000 0.470617 0.764236
+1 16 30 0.000000 0.477370 0.768783
+1 16 31 0.000000 0.484049 0.773279
+1 17 0 0.000000 0.273691 0.000000
+1 17 1 0.000000 0.276387 0.000000
+1 17 2 0.000000 0.279144 0.000000
+1 17 3 0.000000 0.282814 0.000000
+1 17 4 0.000000 0.286847 0.000000
+1 17 5 0.000000 0.293415 0.000000
+1 17 6 0.000000 0.300659 0.000000
+1 17 7 0.000000 0.310832 0.009028
+1 17 8 0.000000 0.320858 0.104298
+1 17 9 0.000000 0.330441 0.136430
+1 17 10 0.000000 0.341348 0.176767
+1 17 11 0.000000 0.355169 0.235156
+1 17 12 0.000000 0.368464 0.291172
+1 17 13 0.000000 0.380880 0.343232
+1 17 14 0.000000 0.392380 0.395972
+1 17 15 0.000000 0.402701 0.449585
+1 17 16 0.000000 0.411709 0.497796
+1 17 17 0.000000 0.419403 0.540606
+1 17 18 0.000000 0.426722 0.579610
+1 17 19 0.000000 0.433749 0.615655
+1 17 20 0.000000 0.439232 0.646041
+1 17 21 0.000000 0.443788 0.673031
+1 17 22 0.000000 0.447362 0.694898
+1 17 23 0.000000 0.450490 0.714436
+1 17 24 0.000000 0.456682 0.730724
+1 17 25 0.000000 0.463894 0.745927
+1 17 26 0.000000 0.473905 0.755046
+1 17 27 0.000000 0.484561 0.762762
+1 17 28 0.000000 0.491808 0.768138
+1 17 29 0.000000 0.498568 0.773180
+1 17 30 0.000000 0.504280 0.776916
+1 17 31 0.000000 0.509923 0.780565
+1 18 0 0.000000 0.302536 0.000000
+1 18 1 0.000000 0.305164 0.000000
+1 18 2 0.000000 0.307859 0.000000
+1 18 3 0.000000 0.311565 0.000000
+1 18 4 0.000000 0.315642 0.000000
+1 18 5 0.000000 0.322320 0.000000
+1 18 6 0.000000 0.329715 0.000000
+1 18 7 0.000000 0.340224 0.007831
+1 18 8 0.000000 0.350522 0.102727
+1 18 9 0.000000 0.360191 0.136389
+1 18 10 0.000000 0.371270 0.178407
+1 18 11 0.000000 0.385454 0.238809
+1 18 12 0.000000 0.399147 0.296474
+1 18 13 0.000000 0.412022 0.349576
+1 18 14 0.000000 0.424084 0.403234
+1 18 15 0.000000 0.435103 0.457605
+1 18 16 0.000000 0.444570 0.506377
+1 18 17 0.000000 0.452488 0.549551
+1 18 18 0.000000 0.459833 0.588742
+1 18 19 0.000000 0.466734 0.624836
+1 18 20 0.000000 0.472267 0.655424
+1 18 21 0.000000 0.476980 0.682710
+1 18 22 0.000000 0.480609 0.704773
+1 18 23 0.000000 0.483745 0.724463
+1 18 24 0.000000 0.489343 0.740565
+1 18 25 0.000000 0.495761 0.755471
+1 18 26 0.000000 0.504139 0.764033
+1 18 27 0.000000 0.512969 0.771132
+1 18 28 0.000000 0.519180 0.776206
+1 18 29 0.000000 0.525018 0.780992
+1 18 30 0.000000 0.529777 0.784341
+1 18 31 0.000000 0.534464 0.787594
+1 19 0 0.000000 0.331066 0.000000
+1 19 1 0.000000 0.333496 0.000000
+1 19 2 0.000000 0.336003 0.000000
+1 19 3 0.000000 0.339664 0.000000
+1 19 4 0.000000 0.343707 0.000000
+1 19 5 0.000000 0.350430 0.000000
+1 19 6 0.000000 0.357934 0.000000
+1 19 7 0.000000 0.368821 0.005879
+1 19 8 0.000000 0.379369 0.099930
+1 19 9 0.000000 0.388895 0.135141
+1 19 10 0.000000 0.399963 0.178989
+1 19 11 0.000000 0.414426 0.241836
+1 19 12 0.000000 0.428434 0.301380
+1 19 13 0.000000 0.441685 0.355419
+1 19 14 0.000000 0.454453 0.409954
+1 19 15 0.000000 0.466599 0.465126
+1 19 16 0.000000 0.476701 0.514273
+1 19 17 0.000000 0.484758 0.557395
+1 19 18 0.000000 0.492060 0.596776
+1 19 19 0.000000 0.498776 0.633250
+1 19 20 0.000000 0.504208 0.664126
+1 19 21 0.000000 0.508869 0.691646
+1 19 22 0.000000 0.512644 0.713815
+1 19 23 0.000000 0.516017 0.733553
+1 19 24 0.000000 0.521112 0.749492
+1 19 25 0.000000 0.526782 0.764164
+1 19 26 0.000000 0.533301 0.772148
+1 19 27 0.000000 0.540017 0.778589
+1 19 28 0.000000 0.545264 0.783374
+1 19 29 0.000000 0.550301 0.787923
+1 19 30 0.000000 0.554174 0.791214
+1 19 31 0.000000 0.557969 0.794422
+1 20 0 0.000000 0.351960 0.000000
+1 20 1 0.000000 0.354466 0.000000
+1 20 2 0.000000 0.357043 0.000000
+1 20 3 0.000000 0.360686 0.000000
+1 20 4 0.000000 0.364717 0.000000
+1 20 5 0.000000 0.371457 0.000000
+1 20 6 0.000000 0.378957 0.000000
+1 20 7 0.000000 0.389752 0.006225
+1 20 8 0.000000 0.400268 0.100765
+1 20 9 0.000000 0.409947 0.137058
+1 20 10 0.000000 0.421218 0.181991
+1 20 11 0.000000 0.435992 0.245931
+1 20 12 0.000000 0.450347 0.306389
+1 20 13 0.000000 0.464002 0.361045
+1 20 14 0.000000 0.477092 0.415995
+1 20 15 0.000000 0.489455 0.471321
+1 20 16 0.000000 0.499794 0.520697
+1 20 17 0.000000 0.508110 0.564124
+1 20 18 0.000000 0.515371 0.603620
+1 20 19 0.000000 0.521810 0.640059
+1 20 20 0.000000 0.527183 0.671052
+1 20 21 0.000000 0.531916 0.698779
+1 20 22 0.000000 0.535733 0.720782
+1 20 23 0.000000 0.539134 0.740183
+1 20 24 0.000000 0.543890 0.755861
+1 20 25 0.000000 0.549099 0.770298
+1 20 26 0.000000 0.554816 0.778133
+1 20 27 0.000000 0.560650 0.784444
+1 20 28 0.000000 0.565215 0.789060
+1 20 29 0.000000 0.569599 0.793432
+1 20 30 0.000000 0.572842 0.796558
+1 20 31 0.000000 0.576009 0.799601
+1 21 0 0.000000 0.368272 0.000000
+1 21 1 0.000000 0.371018 0.000000
+1 21 2 0.000000 0.373820 0.000000
+1 21 3 0.000000 0.377463 0.000000
+1 21 4 0.000000 0.381494 0.000000
+1 21 5 0.000000 0.388234 0.000000
+1 21 6 0.000000 0.395663 0.000000
+1 21 7 0.000000 0.406082 0.007950
+1 21 8 0.000000 0.416399 0.103780
+1 21 9 0.000000 0.426408 0.140874
+1 21 10 0.000000 0.438010 0.186445
+1 21 11 0.000000 0.453115 0.250667
+1 21 12 0.000000 0.467834 0.311461
+1 21 13 0.000000 0.481911 0.366542
+1 21 14 0.000000 0.495094 0.421628
+1 21 15 0.000000 0.507126 0.476720
+1 21 16 0.000000 0.517465 0.526239
+1 21 17 0.000000 0.526112 0.570185
+1 21 18 0.000000 0.533331 0.609749
+1 21 19 0.000000 0.539439 0.645906
+1 21 20 0.000000 0.544780 0.676913
+1 21 21 0.000000 0.549658 0.704830
+1 21 22 0.000000 0.553454 0.726503
+1 21 23 0.000000 0.556758 0.745337
+1 21 24 0.000000 0.561274 0.760696
+1 21 25 0.000000 0.566194 0.774897
+1 21 26 0.000000 0.571741 0.782840
+1 21 27 0.000000 0.577433 0.789339
+1 21 28 0.000000 0.581486 0.793856
+1 21 29 0.000000 0.585306 0.798089
+1 21 30 0.000000 0.588073 0.800985
+1 21 31 0.000000 0.590770 0.803791
+1 22 0 0.000000 0.382892 0.000000
+1 22 1 0.000000 0.385550 0.000000
+1 22 2 0.000000 0.388266 0.000000
+1 22 3 0.000000 0.391844 0.000000
+1 22 4 0.000000 0.395790 0.000000
+1 22 5 0.000000 0.402305 0.000000
+1 22 6 0.000000 0.409554 0.000000
+1 22 7 0.000000 0.419984 0.009948
+1 22 8 0.000000 0.430400 0.107361
+1 22 9 0.000000 0.440769 0.145741
+1 22 10 0.000000 0.452731 0.192285
+1 22 11 0.000000 0.468198 0.256789
+1 22 12 0.000000 0.483096 0.317785
+1 22 13 0.000000 0.497046 0.372934
+1 22 14 0.000000 0.510084 0.428040
+1 22 15 0.000000 0.521948 0.483091
+1 22 16 0.000000 0.532270 0.532508
+1 22 17 0.000000 0.541052 0.576292
+1 22 18 0.000000 0.548436 0.615826
+1 22 19 0.000000 0.554733 0.652053
+1 22 20 0.000000 0.560111 0.682962
+1 22 21 0.000000 0.564937 0.710680
+1 22 22 0.000000 0.568719 0.731904
+1 22 23 0.000000 0.572025 0.750176
+1 22 24 0.000000 0.576329 0.765119
+1 22 25 0.000000 0.580966 0.778954
+1 22 26 0.000000 0.586003 0.786719
+1 22 27 0.000000 0.591133 0.793083
+1 22 28 0.000000 0.594822 0.797488
+1 22 29 0.000000 0.598304 0.801613
+1 22 30 0.000000 0.600913 0.804554
+1 22 31 0.000000 0.603463 0.807416
+1 23 0 0.000000 0.396743 0.000000
+1 23 1 0.000000 0.399164 0.000000
+1 23 2 0.000000 0.401652 0.000000
+1 23 3 0.000000 0.405136 0.000000
+1 23 4 0.000000 0.408959 0.000000
+1 23 5 0.000000 0.415146 0.000000
+1 23 6 0.000000 0.422164 0.000000
+1 23 7 0.000000 0.432783 0.012069
+1 23 8 0.000000 0.443432 0.111199
+1 23 9 0.000000 0.454175 0.151086
+1 23 10 0.000000 0.466511 0.198755
+1 23 11 0.000000 0.482354 0.263541
+1 23 12 0.000000 0.497346 0.324678
+1 23 13 0.000000 0.510920 0.379732
+1 23 14 0.000000 0.523705 0.434806
+1 23 15 0.000000 0.535475 0.489902
+1 23 16 0.000000 0.545773 0.539107
+1 23 17 0.000000 0.554600 0.582421
+1 23 18 0.000000 0.562243 0.621879
+1 23 19 0.000000 0.568965 0.658336
+1 23 20 0.000000 0.574413 0.689097
+1 23 21 0.000000 0.579097 0.716439
+1 23 22 0.000000 0.582867 0.737160
+1 23 23 0.000000 0.586222 0.754870
+1 23 24 0.000000 0.590326 0.769355
+1 23 25 0.000000 0.594681 0.782765
+1 23 26 0.000000 0.599054 0.790221
+1 23 27 0.000000 0.603432 0.796303
+1 23 28 0.000000 0.606822 0.800591
+1 23 29 0.000000 0.610072 0.804622
+1 23 30 0.000000 0.612666 0.807733
+1 23 31 0.000000 0.615216 0.810783
+1 24 0 0.000000 0.410320 0.000000
+1 24 1 0.000000 0.413460 0.000000
+1 24 2 0.000000 0.416651 0.000000
+1 24 3 0.000000 0.420606 0.000000
+1 24 4 0.000000 0.424825 0.000000
+1 24 5 0.000000 0.430894 0.000000
+1 24 6 0.000000 0.437785 0.000000
+1 24 7 0.000000 0.448236 0.021476
+1 24 8 0.000000 0.458811 0.126500
+1 24 9 0.000000 0.469753 0.166203
+1 24 10 0.000000 0.482246 0.213744
+1 24 11 0.000000 0.498148 0.278530
+1 24 12 0.000000 0.513037 0.339525
+1 24 13 0.000000 0.526235 0.394201
+1 24 14 0.000000 0.538629 0.448665
+1 24 15 0.000000 0.549989 0.502856
+1 24 16 0.000000 0.559982 0.551091
+1 24 17 0.000000 0.568608 0.593368
+1 24 18 0.000000 0.576125 0.631852
+1 24 19 0.000000 0.582778 0.667385
+1 24 20 0.000000 0.588243 0.697472
+1 24 21 0.000000 0.592996 0.724293
+1 24 22 0.000000 0.596699 0.744342
+1 24 23 0.000000 0.599925 0.761314
+1 24 24 0.000000 0.603784 0.775191
+1 24 25 0.000000 0.607854 0.788035
+1 24 26 0.000000 0.612022 0.795243
+1 24 27 0.000000 0.616212 0.801149
+1 24 28 0.000000 0.619340 0.805301
+1 24 29 0.000000 0.622317 0.809202
+1 24 30 0.000000 0.624664 0.812216
+1 24 31 0.000000 0.626968 0.815172
+1 25 0 0.000000 0.423806 0.000000
+1 25 1 0.000000 0.427983 0.000000
+1 25 2 0.000000 0.432188 0.000000
+1 25 3 0.000000 0.436801 0.000000
+1 25 4 0.000000 0.441590 0.000000
+1 25 5 0.000000 0.447610 0.000000
+1 25 6 0.000000 0.454408 0.000000
+1 25 7 0.000000 0.464575 0.033310
+1 25 8 0.000000 0.474971 0.145622
+1 25 9 0.000000 0.486056 0.184576
+1 25 10 0.000000 0.498633 0.231572
+1 25 11 0.000000 0.514489 0.296264
+1 25 12 0.000000 0.529208 0.357023
+1 25 13 0.000000 0.542030 0.411226
+1 25 14 0.000000 0.553987 0.464890
+1 25 15 0.000000 0.564832 0.517859
+1 25 16 0.000000 0.574426 0.564869
+1 25 17 0.000000 0.582770 0.605922
+1 25 18 0.000000 0.590032 0.643132
+1 25 19 0.000000 0.596451 0.677354
+1 25 20 0.000000 0.601917 0.706594
+1 25 21 0.000000 0.606809 0.732845
+1 25 22 0.000000 0.610426 0.752168
+1 25 23 0.000000 0.613464 0.768342
+1 25 24 0.000000 0.617063 0.781559
+1 25 25 0.000000 0.620847 0.793791
+1 25 26 0.000000 0.624961 0.800771
+1 25 27 0.000000 0.629151 0.806538
+1 25 28 0.000000 0.632030 0.810547
+1 25 29 0.000000 0.634722 0.814305
+1 25 30 0.000000 0.636744 0.817135
+1 25 31 0.000000 0.638721 0.819903
+1 26 0 0.000000 0.435587 0.000000
+1 26 1 0.000000 0.439920 0.000000
+1 26 2 0.000000 0.444311 0.000000
+1 26 3 0.000000 0.449582 0.000000
+1 26 4 0.000000 0.455156 0.000000
+1 26 5 0.000000 0.462848 0.000000
+1 26 6 0.000000 0.470994 0.000000
+1 26 7 0.000000 0.481107 0.046913
+1 26 8 0.000000 0.491489 0.168344
+1 26 9 0.000000 0.502677 0.209412
+1 26 10 0.000000 0.515166 0.257260
+1 26 11 0.000000 0.530517 0.320024
+1 26 12 0.000000 0.544764 0.379345
+1 26 13 0.000000 0.557173 0.432925
+1 26 14 0.000000 0.568555 0.485368
+1 26 15 0.000000 0.578615 0.536351
+1 26 16 0.000000 0.587600 0.581623
+1 26 17 0.000000 0.595509 0.621184
+1 26 18 0.000000 0.602341 0.657045
+1 26 19 0.000000 0.608335 0.690028
+1 26 20 0.000000 0.613537 0.717711
+1 26 21 0.000000 0.618263 0.742213
+1 26 22 0.000000 0.621779 0.760415
+1 26 23 0.000000 0.624745 0.775752
+1 26 24 0.000000 0.628227 0.788532
+1 26 25 0.000000 0.631882 0.800459
+1 26 26 0.000000 0.635910 0.806955
+1 26 27 0.000000 0.640023 0.812199
+1 26 28 0.000000 0.642881 0.816119
+1 26 29 0.000000 0.645558 0.819851
+1 26 30 0.000000 0.647485 0.822645
+1 26 31 0.000000 0.649361 0.825378
+1 27 0 0.000000 0.446976 0.000000
+1 27 1 0.000000 0.451260 0.000000
+1 27 2 0.000000 0.455646 0.000000
+1 27 3 0.000000 0.461576 0.000000
+1 27 4 0.000000 0.467984 0.000000
+1 27 5 0.000000 0.477744 0.000000
+1 27 6 0.000000 0.487571 0.000000
+1 27 7 0.000000 0.497684 0.060923
+1 27 8 0.000000 0.508089 0.191897
+1 27 9 0.000000 0.519372 0.235739
+1 27 10 0.000000 0.531734 0.284761
+1 27 11 0.000000 0.546472 0.345175
+1 27 12 0.000000 0.560179 0.402779
+1 27 13 0.000000 0.572166 0.455701
+1 27 14 0.000000 0.582940 0.506828
+1 27 15 0.000000 0.592154 0.555649
+1 27 16 0.000000 0.600481 0.599063
+1 27 17 0.000000 0.607920 0.637071
+1 27 18 0.000000 0.614282 0.671565
+1 27 19 0.000000 0.619806 0.703326
+1 27 20 0.000000 0.624683 0.729288
+1 27 21 0.000000 0.629173 0.751771
+1 27 22 0.000000 0.632583 0.768759
+1 27 23 0.000000 0.635504 0.783250
+1 27 24 0.000000 0.638905 0.795643
+1 27 25 0.000000 0.642466 0.807337
+1 27 26 0.000000 0.646399 0.813292
+1 27 27 0.000000 0.650419 0.817922
+1 27 28 0.000000 0.653307 0.821766
+1 27 29 0.000000 0.656033 0.825498
+1 27 30 0.000000 0.657917 0.828292
+1 27 31 0.000000 0.659745 0.831025
+1 28 0 0.000000 0.455011 0.000000
+1 28 1 0.000000 0.459332 0.000000
+1 28 2 0.000000 0.463753 0.000000
+1 28 3 0.000000 0.469682 0.000000
+1 28 4 0.000000 0.476163 0.000000
+1 28 5 0.000000 0.486512 0.000000
+1 28 6 0.000000 0.497047 0.000000
+1 28 7 0.000000 0.508394 0.070587
+1 28 8 0.000000 0.519749 0.208296
+1 28 9 0.000000 0.531125 0.254665
+1 28 10 0.000000 0.543413 0.304778
+1 28 11 0.000000 0.557705 0.363131
+1 28 12 0.000000 0.571005 0.419293
+1 28 13 0.000000 0.582651 0.471804
+1 28 14 0.000000 0.593006 0.522131
+1 28 15 0.000000 0.601703 0.569651
+1 28 16 0.000000 0.609618 0.611928
+1 28 17 0.000000 0.616752 0.648962
+1 28 18 0.000000 0.622762 0.682342
+1 28 19 0.000000 0.627898 0.712881
+1 28 20 0.000000 0.632484 0.737764
+1 28 21 0.000000 0.636739 0.759254
+1 28 22 0.000000 0.640100 0.775520
+1 28 23 0.000000 0.643055 0.789411
+1 28 24 0.000000 0.646424 0.801201
+1 28 25 0.000000 0.649931 0.812289
+1 28 26 0.000000 0.653844 0.818068
+1 28 27 0.000000 0.657852 0.822623
+1 28 28 0.000000 0.660672 0.826134
+1 28 29 0.000000 0.663322 0.829497
+1 28 30 0.000000 0.665235 0.832229
+1 28 31 0.000000 0.667099 0.834919
+1 29 0 0.000000 0.462568 0.000000
+1 29 1 0.000000 0.466937 0.000000
+1 29 2 0.000000 0.471398 0.000000
+1 29 3 0.000000 0.477233 0.000000
+1 29 4 0.000000 0.483679 0.000000
+1 29 5 0.000000 0.494403 0.000000
+1 29 6 0.000000 0.505509 0.000000
+1 29 7 0.000000 0.518266 0.079631
+1 29 8 0.000000 0.530702 0.223674
+1 29 9 0.000000 0.542172 0.272533
+1 29 10 0.000000 0.554393 0.323727
+1 29 11 0.000000 0.568264 0.380060
+1 29 12 0.000000 0.581176 0.434818
+1 29 13 0.000000 0.592491 0.486953
+1 29 14 0.000000 0.602455 0.536553
+1 29 15 0.000000 0.610682 0.582897
+1 29 16 0.000000 0.618221 0.624140
+1 29 17 0.000000 0.625073 0.660282
+1 29 18 0.000000 0.630748 0.692584
+1 29 19 0.000000 0.635508 0.721901
+1 29 20 0.000000 0.639807 0.745797
+1 29 21 0.000000 0.643829 0.766441
+1 29 22 0.000000 0.647148 0.782054
+1 29 23 0.000000 0.650148 0.795382
+1 29 24 0.000000 0.653492 0.806536
+1 29 25 0.000000 0.656950 0.816967
+1 29 26 0.000000 0.660855 0.822623
+1 29 27 0.000000 0.664862 0.827177
+1 29 28 0.000000 0.667600 0.830319
+1 29 29 0.000000 0.670156 0.833260
+1 29 30 0.000000 0.672109 0.835921
+1 29 31 0.000000 0.674022 0.838562
+1 30 0 0.000000 0.468252 0.000000
+1 30 1 0.000000 0.472579 0.000000
+1 30 2 0.000000 0.477004 0.000000
+1 30 3 0.000000 0.482922 0.000000
+1 30 4 0.000000 0.489432 0.000000
+1 30 5 0.000000 0.500092 0.000000
+1 30 6 0.000000 0.511392 0.000000
+1 30 7 0.000000 0.525472 0.086426
+1 30 8 0.000000 0.538945 0.235229
+1 30 9 0.000000 0.550598 0.285960
+1 30 10 0.000000 0.562838 0.338045
+1 30 11 0.000000 0.576373 0.393105
+1 30 12 0.000000 0.588985 0.446944
+1 30 13 0.000000 0.600061 0.498745
+1 30 14 0.000000 0.609800 0.547780
+1 30 15 0.000000 0.617821 0.593259
+1 30 16 0.000000 0.625028 0.633623
+1 30 17 0.000000 0.631421 0.668870
+1 30 18 0.000000 0.636685 0.700243
+1 30 19 0.000000 0.641068 0.728602
+1 30 20 0.000000 0.645188 0.751775
+1 30 21 0.000000 0.649151 0.771837
+1 30 22 0.000000 0.652484 0.786973
+1 30 23 0.000000 0.655533 0.799870
+1 30 24 0.000000 0.658820 0.810553
+1 30 25 0.000000 0.662187 0.820499
+1 30 26 0.000000 0.666112 0.826064
+1 30 27 0.000000 0.670165 0.830618
+1 30 28 0.000000 0.672903 0.833738
+1 30 29 0.000000 0.675453 0.836652
+1 30 30 0.000000 0.677366 0.839020
+1 30 31 0.000000 0.679236 0.841351
+1 31 0 0.000000 0.473811 0.000000
+1 31 1 0.000000 0.478089 0.000000
+1 31 2 0.000000 0.482475 0.000000
+1 31 3 0.000000 0.488487 0.000000
+1 31 4 0.000000 0.495067 0.000000
+1 31 5 0.000000 0.505633 0.000000
+1 31 6 0.000000 0.517104 0.000000
+1 31 7 0.000000 0.532500 0.093071
+1 31 8 0.000000 0.547007 0.246528
+1 31 9 0.000000 0.558848 0.299092
+1 31 10 0.000000 0.571115 0.352054
+1 31 11 0.000000 0.584319 0.405892
+1 31 12 0.000000 0.596637 0.458843
+1 31 13 0.000000 0.607479 0.510313
+1 31 14 0.000000 0.617004 0.558794
+1 31 15 0.000000 0.624837 0.603430
+1 31 16 0.000000 0.631715 0.642924
+1 31 17 0.000000 0.637639 0.677277
+1 31 18 0.000000 0.642484 0.707730
+1 31 19 0.000000 0.646492 0.735148
+1 31 20 0.000000 0.650441 0.757616
+1 31 21 0.000000 0.654354 0.777114
+1 31 22 0.000000 0.657706 0.791784
+1 31 23 0.000000 0.660803 0.804259
+1 31 24 0.000000 0.664032 0.814482
+1 31 25 0.000000 0.667305 0.823955
+1 31 26 0.000000 0.671252 0.829431
+1 31 27 0.000000 0.675353 0.833985
+1 31 28 0.000000 0.678098 0.837105
+1 31 29 0.000000 0.680648 0.840019
+1 31 30 0.000000 0.682515 0.842080
+1 31 31 0.000000 0.684337 0.844084
+2 0 0 0.042542 0.038915 0.028316
+2 0 1 0.042717 0.039092 0.030137
+2 0 2 0.042882 0.039257 0.031949
+2 0 3 0.042893 0.039257 0.033612
+2 0 4 0.042902 0.039280 0.035454
+2 0 5 0.042902 0.039462 0.038551
+2 0 6 0.042805 0.039644 0.041821
+2 0 7 0.042285 0.039826 0.045840
+2 0 8 0.041774 0.039870 0.051042
+2 0 9 0.041287 0.039500 0.059792
+2 0 10 0.038470 0.039187 0.075602
+2 0 11 0.030528 0.038999 0.106947
+2 0 12 0.024296 0.038055 0.137815
+2 0 13 0.020915 0.035851 0.167889
+2 0 14 0.024800 0.028038 0.201548
+2 0 15 0.038027 0.013012 0.239814
+2 0 16 0.048880 0.000000 0.274529
+2 0 17 0.057358 0.000000 0.305691
+2 0 18 0.068117 0.000000 0.335210
+2 0 19 0.080649 0.000000 0.363451
+2 0 20 0.089697 0.000000 0.388167
+2 0 21 0.096655 0.000000 0.410767
+2 0 22 0.101627 0.000000 0.431489
+2 0 23 0.105697 0.000000 0.451356
+2 0 24 0.093738 0.000000 0.476284
+2 0 25 0.076436 0.000000 0.502897
+2 0 26 0.000000 0.000000 0.534997
+2 0 27 0.000000 0.000000 0.568362
+2 0 28 0.000000 0.000000 0.590863
+2 0 29 0.000000 0.000000 0.611812
+2 0 30 0.000000 0.069940 0.627296
+2 0 31 0.000000 0.166123 0.642416
+2 1 0 0.044413 0.040913 0.028133
+2 1 1 0.043885 0.041002 0.030237
+2 1 2 0.043390 0.041090 0.032319
+2 1 3 0.043401 0.041181 0.034073
+2 1 4 0.043411 0.041272 0.035983
+2 1 5 0.043411 0.041363 0.038989
+2 1 6 0.043347 0.041541 0.042468
+2 1 7 0.043005 0.042097 0.047994
+2 1 8 0.042451 0.042468 0.054303
+2 1 9 0.041261 0.042285 0.062955
+2 1 10 0.038044 0.042189 0.078818
+2 1 11 0.030367 0.042280 0.110541
+2 1 12 0.024273 0.041652 0.141997
+2 1 13 0.020816 0.039828 0.173009
+2 1 14 0.024652 0.033255 0.207277
+2 1 15 0.037864 0.020577 0.245732
+2 1 16 0.048535 0.000000 0.280869
+2 1 17 0.056664 0.000000 0.312689
+2 1 18 0.067072 0.000000 0.342496
+2 1 19 0.079254 0.000000 0.370738
+2 1 20 0.088007 0.000000 0.395632
+2 1 21 0.094702 0.000000 0.418517
+2 1 22 0.099352 0.000000 0.439002
+2 1 23 0.103071 0.000000 0.458397
+2 1 24 0.070926 0.000000 0.482075
+2 1 25 0.026826 0.000000 0.507182
+2 1 26 0.000000 0.000000 0.538925
+2 1 27 0.000000 0.000000 0.572199
+2 1 28 0.000000 0.000000 0.594771
+2 1 29 0.000000 0.000000 0.615814
+2 1 30 0.000000 0.078138 0.631304
+2 1 31 0.000000 0.174321 0.646424
+2 2 0 0.046171 0.042869 0.027962
+2 2 1 0.044984 0.042880 0.030336
+2 2 2 0.043870 0.042903 0.032680
+2 2 3 0.043847 0.043096 0.034571
+2 2 4 0.043828 0.043267 0.036592
+2 2 5 0.043827 0.043279 0.039518
+2 2 6 0.043792 0.043458 0.043203
+2 2 7 0.043601 0.044364 0.050174
+2 2 8 0.042993 0.045049 0.057551
+2 2 9 0.041132 0.045072 0.066141
+2 2 10 0.037508 0.045202 0.082086
+2 2 11 0.030006 0.045566 0.114211
+2 2 12 0.023239 0.045254 0.146267
+2 2 13 0.017699 0.043815 0.178205
+2 2 14 0.021233 0.038456 0.213079
+2 2 15 0.036433 0.028059 0.251727
+2 2 16 0.047941 0.013387 0.287285
+2 2 17 0.055757 0.000000 0.319752
+2 2 18 0.065834 0.000000 0.349859
+2 2 19 0.077672 0.000000 0.378129
+2 2 20 0.086127 0.000000 0.403211
+2 2 21 0.092555 0.000000 0.426382
+2 2 22 0.096861 0.000000 0.446647
+2 2 23 0.100204 0.000000 0.465591
+2 2 24 0.049142 0.000000 0.488075
+2 2 25 0.000000 0.000000 0.511739
+2 2 26 0.000000 0.000000 0.543056
+2 2 27 0.000000 0.000000 0.576140
+2 2 28 0.000000 0.000000 0.598765
+2 2 29 0.000000 0.000000 0.619896
+2 2 30 0.000000 0.086440 0.635391
+2 2 31 0.000000 0.182623 0.650511
+2 3 0 0.046248 0.044185 0.027950
+2 3 1 0.045061 0.044284 0.030418
+2 3 2 0.043913 0.044407 0.032902
+2 3 3 0.043354 0.044876 0.035628
+2 3 4 0.042865 0.045300 0.038390
+2 3 5 0.042862 0.045402 0.041407
+2 3 6 0.042777 0.045658 0.045260
+2 3 7 0.042338 0.046576 0.052739
+2 3 8 0.041494 0.047386 0.060610
+2 3 9 0.039435 0.047873 0.069662
+2 3 10 0.035307 0.048383 0.086156
+2 3 11 0.026628 0.048941 0.119024
+2 3 12 0.007054 0.048928 0.151832
+2 3 13 0.000000 0.047962 0.184542
+2 3 14 0.000000 0.043428 0.219970
+2 3 15 0.015973 0.034307 0.258894
+2 3 16 0.043610 0.021921 0.294832
+2 3 17 0.051668 0.006270 0.327785
+2 3 18 0.061703 0.000000 0.358359
+2 3 19 0.073275 0.000000 0.387084
+2 3 20 0.081410 0.000000 0.412517
+2 3 21 0.087485 0.000000 0.435976
+2 3 22 0.091145 0.000000 0.456254
+2 3 23 0.093709 0.000000 0.475086
+2 3 24 0.042781 0.000000 0.497191
+2 3 25 0.000000 0.000000 0.520388
+2 3 26 0.000000 0.000000 0.550243
+2 3 27 0.000000 0.000000 0.581634
+2 3 28 0.000000 0.000000 0.604048
+2 3 29 0.000000 0.001778 0.625179
+2 3 30 0.000000 0.096312 0.640671
+2 3 31 0.000000 0.192495 0.655788
+2 4 0 0.046315 0.045632 0.027940
+2 4 1 0.045128 0.045797 0.030490
+2 4 2 0.043950 0.045998 0.033098
+2 4 3 0.042911 0.046732 0.036577
+2 4 4 0.041987 0.047407 0.040032
+2 4 5 0.041873 0.047671 0.043317
+2 4 6 0.041656 0.048060 0.047471
+2 4 7 0.041000 0.048989 0.055392
+2 4 8 0.039933 0.049915 0.063735
+2 4 9 0.037635 0.050832 0.073343
+2 4 10 0.032926 0.051723 0.090496
+2 4 11 0.022910 0.052557 0.124249
+2 4 12 0.000000 0.052920 0.157921
+2 4 13 0.000000 0.052497 0.191458
+2 4 14 0.000000 0.048875 0.227492
+2 4 15 0.000000 0.041142 0.266740
+2 4 16 0.038841 0.031132 0.303099
+2 4 17 0.047144 0.018845 0.336571
+2 4 18 0.057149 0.000000 0.367636
+2 4 19 0.068477 0.000000 0.396829
+2 4 20 0.076267 0.000000 0.422647
+2 4 21 0.081935 0.000000 0.446440
+2 4 22 0.084902 0.000000 0.466747
+2 4 23 0.086642 0.000000 0.485469
+2 4 24 0.035769 0.000000 0.507241
+2 4 25 0.000000 0.000000 0.530029
+2 4 26 0.000000 0.000000 0.558240
+2 4 27 0.000000 0.000000 0.587704
+2 4 28 0.000000 0.000000 0.609856
+2 4 29 0.000000 0.012253 0.630964
+2 4 30 0.000000 0.107147 0.646453
+2 4 31 0.000000 0.203341 0.661567
+2 5 0 0.046315 0.047994 0.027940
+2 5 1 0.045128 0.048071 0.030490
+2 5 2 0.043945 0.048201 0.033110
+2 5 3 0.042818 0.049117 0.036777
+2 5 4 0.041708 0.050034 0.040584
+2 5 5 0.040722 0.050956 0.045373
+2 5 6 0.039796 0.051880 0.050750
+2 5 7 0.039136 0.052812 0.058671
+2 5 8 0.037936 0.053788 0.067319
+2 5 9 0.035113 0.054896 0.078149
+2 5 10 0.029277 0.056182 0.096731
+2 5 11 0.016811 0.057860 0.132364
+2 5 12 0.000000 0.059137 0.167671
+2 5 13 0.000000 0.059748 0.202433
+2 5 14 0.000000 0.057653 0.239443
+2 5 15 0.000000 0.052079 0.279346
+2 5 16 0.031003 0.045079 0.316411
+2 5 17 0.039573 0.036654 0.350638
+2 5 18 0.049641 0.000000 0.382348
+2 5 19 0.060876 0.000000 0.412103
+2 5 20 0.068140 0.000000 0.438542
+2 5 21 0.073023 0.000000 0.462994
+2 5 22 0.074965 0.000000 0.483444
+2 5 23 0.075569 0.000000 0.502075
+2 5 24 0.024212 0.000000 0.523821
+2 5 25 0.000000 0.000000 0.546606
+2 5 26 0.000000 0.000000 0.571915
+2 5 27 0.000000 0.000000 0.597806
+2 5 28 0.000000 0.000000 0.619346
+2 5 29 0.000000 0.029176 0.640266
+2 5 30 0.000000 0.124720 0.655746
+2 5 31 0.000000 0.221005 0.670863
+2 6 0 0.046378 0.050734 0.027906
+2 6 1 0.045191 0.050916 0.030544
+2 6 2 0.044004 0.051152 0.033256
+2 6 3 0.042806 0.052199 0.037076
+2 6 4 0.041539 0.053302 0.041176
+2 6 5 0.039795 0.054794 0.047241
+2 6 6 0.038200 0.056215 0.053729
+2 6 7 0.037260 0.057325 0.062056
+2 6 8 0.035706 0.058500 0.071358
+2 6 9 0.032309 0.059869 0.083586
+2 6 10 0.025098 0.061631 0.103761
+2 6 11 0.009494 0.064259 0.141417
+2 6 12 0.000000 0.066531 0.178525
+2 6 13 0.000000 0.068211 0.214722
+2 6 14 0.000000 0.067716 0.252827
+2 6 15 0.000000 0.064426 0.293386
+2 6 16 0.020538 0.060489 0.331182
+2 6 17 0.029701 0.055904 0.366216
+2 6 18 0.039894 0.007327 0.398715
+2 6 19 0.050890 0.000000 0.429243
+2 6 20 0.057625 0.000000 0.456374
+2 6 21 0.061804 0.000000 0.481465
+2 6 22 0.062767 0.000000 0.502125
+2 6 23 0.062269 0.000000 0.520771
+2 6 24 0.010876 0.000000 0.542373
+2 6 25 0.000000 0.000000 0.564962
+2 6 26 0.000000 0.000000 0.587875
+2 6 27 0.000000 0.000000 0.610863
+2 6 28 0.000000 0.000000 0.631383
+2 6 29 0.000000 0.064086 0.651550
+2 6 30 0.000000 0.152377 0.666572
+2 6 31 0.000000 0.240892 0.681250
+2 7 0 0.046718 0.055112 0.027724
+2 7 1 0.045531 0.056231 0.030832
+2 7 2 0.044343 0.057340 0.033985
+2 7 3 0.043145 0.058299 0.037805
+2 7 4 0.041846 0.059348 0.041940
+2 7 5 0.039838 0.061029 0.048286
+2 7 6 0.037752 0.062778 0.055410
+2 7 7 0.035327 0.064825 0.065899
+2 7 8 0.032463 0.066844 0.077363
+2 7 9 0.028281 0.068777 0.091754
+2 7 10 0.018620 0.071369 0.114239
+2 7 11 0.000000 0.075410 0.154531
+2 7 12 0.000000 0.079023 0.194166
+2 7 13 0.000000 0.081922 0.232707
+2 7 14 0.000000 0.083349 0.272420
+2 7 15 0.000000 0.082882 0.313640
+2 7 16 0.000000 0.082234 0.352283
+2 7 17 0.009860 0.081404 0.388348
+2 7 18 0.020446 0.061556 0.422252
+2 7 19 0.030572 0.026915 0.454475
+2 7 20 0.036761 0.015037 0.482594
+2 7 21 0.040586 0.016816 0.508249
+2 7 22 0.040775 0.019987 0.529409
+2 7 23 0.039312 0.023790 0.548524
+2 7 24 0.000000 0.032956 0.569469
+2 7 25 0.000000 0.043908 0.591023
+2 7 26 0.000000 0.062688 0.613742
+2 7 27 0.000000 0.083275 0.636730
+2 7 28 0.000000 0.128354 0.654453
+2 7 29 0.000000 0.176932 0.671424
+2 7 30 0.000000 0.223729 0.684039
+2 7 31 0.000000 0.270408 0.696364
+2 8 0 0.046938 0.059860 0.027127
+2 8 1 0.045024 0.061564 0.030776
+2 8 2 0.043104 0.063224 0.034441
+2 8 3 0.041078 0.064216 0.038334
+2 8 4 0.039005 0.065332 0.042578
+2 8 5 0.036603 0.067317 0.049277
+2 8 6 0.033923 0.069499 0.057052
+2 8 7 0.030035 0.072531 0.069492
+2 8 8 0.025649 0.075400 0.082861
+2 8 9 0.019767 0.077782 0.099017
+2 8 10 0.006614 0.081152 0.123545
+2 8 11 0.000000 0.086699 0.166493
+2 8 12 0.000000 0.091737 0.208641
+2 8 13 0.000000 0.095927 0.249456
+2 8 14 0.000000 0.099202 0.290707
+2 8 15 0.000000 0.101299 0.332519
+2 8 16 0.000000 0.103506 0.371973
+2 8 17 0.000000 0.105823 0.409071
+2 8 18 0.000000 0.107863 0.444314
+2 8 19 0.000000 0.109689 0.478114
+2 8 20 0.002882 0.112233 0.507074
+2 8 21 0.005983 0.115207 0.533128
+2 8 22 0.005642 0.120402 0.554559
+2 8 23 0.003737 0.126607 0.573888
+2 8 24 0.000000 0.141402 0.594126
+2 8 25 0.000000 0.159060 0.614668
+2 8 26 0.000000 0.189430 0.636834
+2 8 27 0.000000 0.222734 0.659375
+2 8 28 0.000000 0.245382 0.674697
+2 8 29 0.000000 0.266507 0.688988
+2 8 30 0.000000 0.282062 0.699583
+2 8 31 0.000000 0.297247 0.709931
+2 9 0 0.046801 0.065719 0.025288
+2 9 1 0.041983 0.066953 0.029689
+2 9 2 0.037132 0.068196 0.034077
+2 9 3 0.031794 0.069582 0.038264
+2 9 4 0.026725 0.071125 0.042836
+2 9 5 0.023532 0.073766 0.050099
+2 9 6 0.019948 0.076691 0.058580
+2 9 7 0.014665 0.080852 0.072336
+2 9 8 0.008121 0.084592 0.086835
+2 9 9 0.000000 0.087074 0.103561
+2 9 10 0.000000 0.091071 0.129331
+2 9 11 0.000000 0.098400 0.175000
+2 9 12 0.000000 0.105118 0.219622
+2 9 13 0.000000 0.110816 0.262499
+2 9 14 0.000000 0.115719 0.305078
+2 9 15 0.000000 0.119599 0.347271
+2 9 16 0.000000 0.123359 0.387435
+2 9 17 0.000000 0.126998 0.425570
+2 9 18 0.000000 0.130407 0.461955
+2 9 19 0.000000 0.133638 0.496977
+2 9 20 0.000000 0.136886 0.526334
+2 9 21 0.000000 0.140145 0.552292
+2 9 22 0.000000 0.145427 0.573308
+2 9 23 0.000000 0.151629 0.592079
+2 9 24 0.000000 0.165788 0.611468
+2 9 25 0.000000 0.182600 0.631064
+2 9 26 0.000000 0.211885 0.651599
+2 9 27 0.000000 0.244049 0.672350
+2 9 28 0.000000 0.265896 0.686461
+2 9 29 0.000000 0.286269 0.699624
+2 9 30 0.000000 0.301337 0.709355
+2 9 31 0.000000 0.316051 0.718857
+2 10 0 0.039822 0.076367 0.013586
+2 10 1 0.033086 0.077425 0.023071
+2 10 2 0.025807 0.078534 0.032266
+2 10 3 0.010381 0.080393 0.037091
+2 10 4 0.000000 0.082450 0.042331
+2 10 5 0.000000 0.085894 0.050481
+2 10 6 0.000000 0.089672 0.059952
+2 10 7 0.000000 0.094901 0.075142
+2 10 8 0.000000 0.099599 0.091034
+2 10 9 0.000000 0.102707 0.109035
+2 10 10 0.000000 0.107600 0.136358
+2 10 11 0.000000 0.116421 0.184192
+2 10 12 0.000000 0.124538 0.230754
+2 10 13 0.000000 0.131480 0.275197
+2 10 14 0.000000 0.137683 0.318977
+2 10 15 0.000000 0.142936 0.361904
+2 10 16 0.000000 0.147969 0.402880
+2 10 17 0.000000 0.152782 0.441903
+2 10 18 0.000000 0.157379 0.479215
+2 10 19 0.000000 0.161809 0.515196
+2 10 20 0.000000 0.165740 0.544944
+2 10 21 0.000000 0.169373 0.570954
+2 10 22 0.000000 0.174690 0.591663
+2 10 23 0.000000 0.180773 0.609964
+2 10 24 0.000000 0.194223 0.628550
+2 10 25 0.000000 0.210129 0.647230
+2 10 26 0.000000 0.237652 0.666042
+2 10 27 0.000000 0.267855 0.684885
+2 10 28 0.000000 0.288515 0.697822
+2 10 29 0.000000 0.307812 0.709915
+2 10 30 0.000000 0.322152 0.718870
+2 10 31 0.000000 0.336162 0.727616
+2 11 0 0.017788 0.097551 0.000000
+2 11 1 0.011309 0.099083 0.004286
+2 11 2 0.002709 0.100675 0.027270
+2 11 3 0.000000 0.103180 0.033487
+2 11 4 0.000000 0.105943 0.040145
+2 11 5 0.000000 0.110515 0.049894
+2 11 6 0.000000 0.115386 0.060980
+2 11 7 0.000000 0.121552 0.077863
+2 11 8 0.000000 0.127399 0.095730
+2 11 9 0.000000 0.132290 0.116554
+2 11 10 0.000000 0.138675 0.146113
+2 11 11 0.000000 0.148345 0.194890
+2 11 12 0.000000 0.157242 0.242220
+2 11 13 0.000000 0.164848 0.287136
+2 11 14 0.000000 0.171630 0.331842
+2 11 15 0.000000 0.177354 0.376276
+2 11 16 0.000000 0.183045 0.418286
+2 11 17 0.000000 0.188704 0.457871
+2 11 18 0.000000 0.194093 0.495639
+2 11 19 0.000000 0.199271 0.531996
+2 11 20 0.000000 0.203838 0.562122
+2 11 21 0.000000 0.208038 0.588511
+2 11 22 0.000000 0.213276 0.609149
+2 11 23 0.000000 0.218986 0.627174
+2 11 24 0.000000 0.231565 0.645056
+2 11 25 0.000000 0.246434 0.662890
+2 11 26 0.000000 0.270704 0.679779
+2 11 27 0.000000 0.297143 0.696450
+2 11 28 0.000000 0.315767 0.708293
+2 11 29 0.000000 0.333274 0.719446
+2 11 30 0.000000 0.346360 0.727819
+2 11 31 0.000000 0.359150 0.736007
+2 12 0 0.000000 0.120097 0.000000
+2 12 1 0.000000 0.122064 0.000000
+2 12 2 0.000000 0.124099 0.019920
+2 12 3 0.000000 0.127149 0.027799
+2 12 4 0.000000 0.130499 0.036178
+2 12 5 0.000000 0.135955 0.048054
+2 12 6 0.000000 0.141746 0.061214
+2 12 7 0.000000 0.148991 0.079933
+2 12 8 0.000000 0.156033 0.099778
+2 12 9 0.000000 0.162461 0.123000
+2 12 10 0.000000 0.170168 0.154591
+2 12 11 0.000000 0.180685 0.204595
+2 12 12 0.000000 0.190399 0.253053
+2 12 13 0.000000 0.198774 0.298936
+2 12 14 0.000000 0.206256 0.344722
+2 12 15 0.000000 0.212591 0.390382
+2 12 16 0.000000 0.218923 0.433444
+2 12 17 0.000000 0.225253 0.473909
+2 12 18 0.000000 0.231297 0.512195
+2 12 19 0.000000 0.237119 0.548786
+2 12 20 0.000000 0.242129 0.579215
+2 12 21 0.000000 0.246650 0.605949
+2 12 22 0.000000 0.251730 0.626525
+2 12 23 0.000000 0.257065 0.644302
+2 12 24 0.000000 0.268719 0.661568
+2 12 25 0.000000 0.282480 0.678663
+2 12 26 0.000000 0.303913 0.693881
+2 12 27 0.000000 0.327116 0.708666
+2 12 28 0.000000 0.343865 0.719388
+2 12 29 0.000000 0.359692 0.729531
+2 12 30 0.000000 0.371626 0.737182
+2 12 31 0.000000 0.383300 0.744667
+2 13 0 0.000000 0.144912 0.000000
+2 13 1 0.000000 0.147253 0.000000
+2 13 2 0.000000 0.149661 0.008646
+2 13 3 0.000000 0.153087 0.018640
+2 13 4 0.000000 0.156826 0.029244
+2 13 5 0.000000 0.162757 0.044129
+2 13 6 0.000000 0.169182 0.060122
+2 13 7 0.000000 0.177744 0.080919
+2 13 8 0.000000 0.186055 0.102745
+2 13 9 0.000000 0.193611 0.127656
+2 13 10 0.000000 0.202357 0.160939
+2 13 11 0.000000 0.213718 0.212641
+2 13 12 0.000000 0.224312 0.262832
+2 13 13 0.000000 0.233630 0.310505
+2 13 14 0.000000 0.242013 0.357627
+2 13 15 0.000000 0.249194 0.404042
+2 13 16 0.000000 0.256139 0.448189
+2 13 17 0.000000 0.262848 0.490068
+2 13 18 0.000000 0.269321 0.528970
+2 13 19 0.000000 0.275610 0.565558
+2 13 20 0.000000 0.280740 0.596166
+2 13 21 0.000000 0.285173 0.623188
+2 13 22 0.000000 0.289965 0.643716
+2 13 23 0.000000 0.294920 0.661293
+2 13 24 0.000000 0.305561 0.678088
+2 13 25 0.000000 0.318097 0.694622
+2 13 26 0.000000 0.337385 0.708589
+2 13 27 0.000000 0.358232 0.721964
+2 13 28 0.000000 0.373375 0.731523
+2 13 29 0.000000 0.387704 0.740537
+2 13 30 0.000000 0.398657 0.747234
+2 13 31 0.000000 0.409385 0.753776
+2 14 0 0.000000 0.175936 0.000000
+2 14 1 0.000000 0.178485 0.000000
+2 14 2 0.000000 0.181100 0.000000
+2 14 3 0.000000 0.184696 0.000000
+2 14 4 0.000000 0.188618 0.000000
+2 14 5 0.000000 0.194817 0.003304
+2 14 6 0.000000 0.201629 0.021881
+2 14 7 0.000000 0.211096 0.065343
+2 14 8 0.000000 0.220285 0.104633
+2 14 9 0.000000 0.228641 0.131402
+2 14 10 0.000000 0.238175 0.166518
+2 14 11 0.000000 0.250300 0.219998
+2 14 12 0.000000 0.261725 0.271863
+2 14 13 0.000000 0.271983 0.321036
+2 14 14 0.000000 0.281336 0.369761
+2 14 15 0.000000 0.289526 0.417912
+2 14 16 0.000000 0.297124 0.463265
+2 14 17 0.000000 0.304130 0.505819
+2 14 18 0.000000 0.310951 0.544993
+2 14 19 0.000000 0.317627 0.581539
+2 14 20 0.000000 0.322819 0.612182
+2 14 21 0.000000 0.327119 0.639284
+2 14 22 0.000000 0.331553 0.659957
+2 14 23 0.000000 0.336049 0.677708
+2 14 24 0.000000 0.345596 0.694309
+2 14 25 0.000000 0.356826 0.710528
+2 14 26 0.000000 0.373559 0.723058
+2 14 27 0.000000 0.391560 0.734737
+2 14 28 0.000000 0.404601 0.742953
+2 14 29 0.000000 0.416932 0.750674
+2 14 30 0.000000 0.426646 0.756561
+2 14 31 0.000000 0.436184 0.762326
+2 15 0 0.000000 0.214943 0.000000
+2 15 1 0.000000 0.217489 0.000000
+2 15 2 0.000000 0.220095 0.000000
+2 15 3 0.000000 0.223597 0.000000
+2 15 4 0.000000 0.227436 0.000000
+2 15 5 0.000000 0.233636 0.000000
+2 15 6 0.000000 0.240519 0.000000
+2 15 7 0.000000 0.250361 0.028473
+2 15 8 0.000000 0.259926 0.105134
+2 15 9 0.000000 0.268659 0.133977
+2 15 10 0.000000 0.278659 0.171107
+2 15 11 0.000000 0.291448 0.226468
+2 15 12 0.000000 0.303639 0.279931
+2 15 13 0.000000 0.314830 0.330232
+2 15 14 0.000000 0.325242 0.380903
+2 15 15 0.000000 0.334651 0.432051
+2 15 16 0.000000 0.342955 0.478765
+2 15 17 0.000000 0.350152 0.521046
+2 15 18 0.000000 0.357216 0.560050
+2 15 19 0.000000 0.364178 0.596505
+2 15 20 0.000000 0.369357 0.626997
+2 15 21 0.000000 0.373466 0.653910
+2 15 22 0.000000 0.377453 0.674975
+2 15 23 0.000000 0.381384 0.693381
+2 15 24 0.000000 0.389735 0.710146
+2 15 25 0.000000 0.399558 0.726365
+2 15 26 0.000000 0.413205 0.737219
+2 15 27 0.000000 0.427734 0.746835
+2 15 28 0.000000 0.438032 0.753477
+2 15 29 0.000000 0.447725 0.759695
+2 15 30 0.000000 0.455865 0.764959
+2 15 31 0.000000 0.463903 0.770159
+2 16 0 0.000000 0.249311 0.000000
+2 16 1 0.000000 0.251950 0.000000
+2 16 2 0.000000 0.254645 0.000000
+2 16 3 0.000000 0.258150 0.000000
+2 16 4 0.000000 0.262009 0.000000
+2 16 5 0.000000 0.268348 0.000000
+2 16 6 0.000000 0.275397 0.000000
+2 16 7 0.000000 0.285522 0.009866
+2 16 8 0.000000 0.295406 0.105291
+2 16 9 0.000000 0.304565 0.135925
+2 16 10 0.000000 0.315036 0.174815
+2 16 11 0.000000 0.328390 0.231868
+2 16 12 0.000000 0.341215 0.286832
+2 16 13 0.000000 0.353158 0.338312
+2 16 14 0.000000 0.364300 0.390447
+2 16 15 0.000000 0.374412 0.443421
+2 16 16 0.000000 0.383210 0.491240
+2 16 17 0.000000 0.390695 0.533902
+2 16 18 0.000000 0.397911 0.572943
+2 16 19 0.000000 0.404917 0.609169
+2 16 20 0.000000 0.410199 0.639632
+2 16 21 0.000000 0.414448 0.666636
+2 16 22 0.000000 0.418153 0.688050
+2 16 23 0.000000 0.421611 0.706923
+2 16 24 0.000000 0.428926 0.723629
+2 16 25 0.000000 0.437528 0.739613
+2 16 26 0.000000 0.448957 0.749355
+2 16 27 0.000000 0.461038 0.757656
+2 16 28 0.000000 0.469424 0.763353
+2 16 29 0.000000 0.477282 0.768677
+2 16 30 0.000000 0.484076 0.773224
+2 16 31 0.000000 0.490798 0.777719
+2 17 0 0.000000 0.279039 0.000000
+2 17 1 0.000000 0.281870 0.000000
+2 17 2 0.000000 0.284749 0.000000
+2 17 3 0.000000 0.288355 0.000000
+2 17 4 0.000000 0.292336 0.000000
+2 17 5 0.000000 0.298955 0.000000
+2 17 6 0.000000 0.306265 0.000000
+2 17 7 0.000000 0.316578 0.009520
+2 17 8 0.000000 0.326723 0.105103
+2 17 9 0.000000 0.336362 0.137245
+2 17 10 0.000000 0.347306 0.177642
+2 17 11 0.000000 0.361124 0.236199
+2 17 12 0.000000 0.374453 0.292564
+2 17 13 0.000000 0.386967 0.345277
+2 17 14 0.000000 0.398511 0.398392
+2 17 15 0.000000 0.408807 0.452024
+2 17 16 0.000000 0.417891 0.500689
+2 17 17 0.000000 0.425761 0.544385
+2 17 18 0.000000 0.433034 0.583673
+2 17 19 0.000000 0.439843 0.619532
+2 17 20 0.000000 0.445345 0.650088
+2 17 21 0.000000 0.450064 0.677462
+2 17 22 0.000000 0.453653 0.699184
+2 17 23 0.000000 0.456729 0.718336
+2 17 24 0.000000 0.463171 0.734759
+2 17 25 0.000000 0.470735 0.750272
+2 17 26 0.000000 0.480814 0.759465
+2 17 27 0.000000 0.491473 0.767200
+2 17 28 0.000000 0.498779 0.772578
+2 17 29 0.000000 0.505606 0.777620
+2 17 30 0.000000 0.511277 0.781356
+2 17 31 0.000000 0.516871 0.785006
+2 18 0 0.000000 0.308463 0.000000
+2 18 1 0.000000 0.311113 0.000000
+2 18 2 0.000000 0.313825 0.000000
+2 18 3 0.000000 0.317466 0.000000
+2 18 4 0.000000 0.321494 0.000000
+2 18 5 0.000000 0.328234 0.000000
+2 18 6 0.000000 0.335709 0.000000
+2 18 7 0.000000 0.346370 0.008297
+2 18 8 0.000000 0.356801 0.103486
+2 18 9 0.000000 0.366541 0.137138
+2 18 10 0.000000 0.377652 0.179208
+2 18 11 0.000000 0.391780 0.239795
+2 18 12 0.000000 0.405474 0.297807
+2 18 13 0.000000 0.418446 0.351529
+2 18 14 0.000000 0.430561 0.405547
+2 18 15 0.000000 0.441575 0.459945
+2 18 16 0.000000 0.451124 0.509165
+2 18 17 0.000000 0.459209 0.553206
+2 18 18 0.000000 0.466501 0.592703
+2 18 19 0.000000 0.473175 0.628666
+2 18 20 0.000000 0.478689 0.659429
+2 18 21 0.000000 0.483506 0.687071
+2 18 22 0.000000 0.487120 0.708999
+2 18 23 0.000000 0.490187 0.728329
+2 18 24 0.000000 0.496009 0.744563
+2 18 25 0.000000 0.502749 0.759765
+2 18 26 0.000000 0.511225 0.768397
+2 18 27 0.000000 0.520102 0.775514
+2 18 28 0.000000 0.526375 0.780569
+2 18 29 0.000000 0.532277 0.785331
+2 18 30 0.000000 0.536981 0.788702
+2 18 31 0.000000 0.541606 0.791981
+2 19 0 0.000000 0.337650 0.000000
+2 19 1 0.000000 0.339830 0.000000
+2 19 2 0.000000 0.342101 0.000000
+2 19 3 0.000000 0.345726 0.000000
+2 19 4 0.000000 0.349741 0.000000
+2 19 5 0.000000 0.356481 0.000000
+2 19 6 0.000000 0.364045 0.000000
+2 19 7 0.000000 0.375180 0.006392
+2 19 8 0.000000 0.385917 0.100755
+2 19 9 0.000000 0.395462 0.135922
+2 19 10 0.000000 0.406499 0.179794
+2 19 11 0.000000 0.420819 0.242819
+2 19 12 0.000000 0.434771 0.302670
+2 19 13 0.000000 0.448113 0.357228
+2 19 14 0.000000 0.460931 0.412089
+2 19 15 0.000000 0.473076 0.467336
+2 19 16 0.000000 0.483232 0.516885
+2 19 17 0.000000 0.491399 0.560735
+2 19 18 0.000000 0.498678 0.600413
+2 19 19 0.000000 0.505268 0.636846
+2 19 20 0.000000 0.510630 0.667902
+2 19 21 0.000000 0.515256 0.695732
+2 19 22 0.000000 0.519005 0.717788
+2 19 23 0.000000 0.522354 0.737218
+2 19 24 0.000000 0.527753 0.753336
+2 19 25 0.000000 0.533835 0.768350
+2 19 26 0.000000 0.540512 0.776412
+2 19 27 0.000000 0.547326 0.782871
+2 19 28 0.000000 0.552604 0.787600
+2 19 29 0.000000 0.557662 0.792083
+2 19 30 0.000000 0.561521 0.795437
+2 19 31 0.000000 0.565299 0.798716
+2 20 0 0.000000 0.358974 0.000000
+2 20 1 0.000000 0.361211 0.000000
+2 20 2 0.000000 0.363535 0.000000
+2 20 3 0.000000 0.367163 0.000000
+2 20 4 0.000000 0.371179 0.000000
+2 20 5 0.000000 0.377919 0.000000
+2 20 6 0.000000 0.385473 0.000000
+2 20 7 0.000000 0.396549 0.006564
+2 20 8 0.000000 0.407285 0.101328
+2 20 9 0.000000 0.416996 0.137659
+2 20 10 0.000000 0.428243 0.182674
+2 20 11 0.000000 0.442867 0.246796
+2 20 12 0.000000 0.457150 0.307561
+2 20 13 0.000000 0.470866 0.362731
+2 20 14 0.000000 0.483975 0.418023
+2 20 15 0.000000 0.496306 0.473472
+2 20 16 0.000000 0.506689 0.523263
+2 20 17 0.000000 0.515125 0.567396
+2 20 18 0.000000 0.522372 0.607197
+2 20 19 0.000000 0.528693 0.643630
+2 20 20 0.000000 0.534021 0.674843
+2 20 21 0.000000 0.538753 0.702924
+2 20 22 0.000000 0.542525 0.724798
+2 20 23 0.000000 0.545861 0.743851
+2 20 24 0.000000 0.550850 0.759688
+2 20 25 0.000000 0.556389 0.774453
+2 20 26 0.000000 0.562236 0.782362
+2 20 27 0.000000 0.568153 0.788689
+2 20 28 0.000000 0.572732 0.793258
+2 20 29 0.000000 0.577120 0.797575
+2 20 30 0.000000 0.580364 0.800753
+2 20 31 0.000000 0.583531 0.803856
+2 21 0 0.000000 0.375581 0.000000
+2 21 1 0.000000 0.378191 0.000000
+2 21 2 0.000000 0.380865 0.000000
+2 21 3 0.000000 0.384505 0.000000
+2 21 4 0.000000 0.388532 0.000000
+2 21 5 0.000000 0.395272 0.000000
+2 21 6 0.000000 0.402755 0.000000
+2 21 7 0.000000 0.413455 0.007983
+2 21 8 0.000000 0.424004 0.103882
+2 21 9 0.000000 0.434098 0.141168
+2 21 10 0.000000 0.445724 0.186931
+2 21 11 0.000000 0.460721 0.251344
+2 21 12 0.000000 0.475379 0.312470
+2 21 13 0.000000 0.489470 0.368116
+2 21 14 0.000000 0.502624 0.423594
+2 21 15 0.000000 0.514572 0.478855
+2 21 16 0.000000 0.524955 0.528835
+2 21 17 0.000000 0.533774 0.573535
+2 21 18 0.000000 0.540974 0.613426
+2 21 19 0.000000 0.546916 0.649577
+2 21 20 0.000000 0.552280 0.680864
+2 21 21 0.000000 0.557298 0.709233
+2 21 22 0.000000 0.561028 0.730740
+2 21 23 0.000000 0.564172 0.749129
+2 21 24 0.000000 0.568758 0.764587
+2 21 25 0.000000 0.573825 0.779067
+2 21 26 0.000000 0.579422 0.787073
+2 21 27 0.000000 0.585143 0.793584
+2 21 28 0.000000 0.589201 0.798091
+2 21 29 0.000000 0.593021 0.802311
+2 21 30 0.000000 0.595789 0.805219
+2 21 31 0.000000 0.598486 0.808040
+2 22 0 0.000000 0.390426 0.000000
+2 22 1 0.000000 0.392961 0.000000
+2 22 2 0.000000 0.395560 0.000000
+2 22 3 0.000000 0.399135 0.000000
+2 22 4 0.000000 0.403081 0.000000
+2 22 5 0.000000 0.409625 0.000000
+2 22 6 0.000000 0.416951 0.000000
+2 22 7 0.000000 0.427665 0.009957
+2 22 8 0.000000 0.438301 0.107438
+2 22 9 0.000000 0.448702 0.146070
+2 22 10 0.000000 0.460656 0.192846
+2 22 11 0.000000 0.476029 0.257542
+2 22 12 0.000000 0.490867 0.318875
+2 22 13 0.000000 0.504815 0.374604
+2 22 14 0.000000 0.517810 0.430101
+2 22 15 0.000000 0.529578 0.485301
+2 22 16 0.000000 0.539931 0.535177
+2 22 17 0.000000 0.548869 0.579729
+2 22 18 0.000000 0.556237 0.619540
+2 22 19 0.000000 0.562384 0.655663
+2 22 20 0.000000 0.567798 0.686833
+2 22 21 0.000000 0.572773 0.715031
+2 22 22 0.000000 0.576495 0.736125
+2 22 23 0.000000 0.579646 0.753989
+2 22 24 0.000000 0.583978 0.769006
+2 22 25 0.000000 0.588702 0.783074
+2 22 26 0.000000 0.593766 0.790890
+2 22 27 0.000000 0.598908 0.797264
+2 22 28 0.000000 0.602625 0.801672
+2 22 29 0.000000 0.606139 0.805799
+2 22 30 0.000000 0.608750 0.808738
+2 22 31 0.000000 0.611300 0.811598
+2 23 0 0.000000 0.404470 0.000000
+2 23 1 0.000000 0.406726 0.000000
+2 23 2 0.000000 0.409058 0.000000
+2 23 3 0.000000 0.412532 0.000000
+2 23 4 0.000000 0.416355 0.000000
+2 23 5 0.000000 0.422614 0.000000
+2 23 6 0.000000 0.429744 0.000000
+2 23 7 0.000000 0.440650 0.012183
+2 23 8 0.000000 0.451497 0.111451
+2 23 9 0.000000 0.462171 0.151605
+2 23 10 0.000000 0.474430 0.199515
+2 23 11 0.000000 0.490179 0.264490
+2 23 12 0.000000 0.505110 0.325961
+2 23 13 0.000000 0.518679 0.381593
+2 23 14 0.000000 0.531422 0.437034
+2 23 15 0.000000 0.543102 0.492231
+2 23 16 0.000000 0.553412 0.541868
+2 23 17 0.000000 0.562349 0.585947
+2 23 18 0.000000 0.569982 0.625600
+2 23 19 0.000000 0.576598 0.661812
+2 23 20 0.000000 0.582070 0.692778
+2 23 21 0.000000 0.586854 0.720597
+2 23 22 0.000000 0.590582 0.741255
+2 23 23 0.000000 0.593831 0.758658
+2 23 24 0.000000 0.597975 0.773207
+2 23 25 0.000000 0.602418 0.786805
+2 23 26 0.000000 0.606817 0.794302
+2 23 27 0.000000 0.611207 0.800390
+2 23 28 0.000000 0.614666 0.804683
+2 23 29 0.000000 0.617992 0.808719
+2 23 30 0.000000 0.620590 0.811826
+2 23 31 0.000000 0.623141 0.814871
+2 24 0 0.000000 0.418237 0.000000
+2 24 1 0.000000 0.421267 0.000000
+2 24 2 0.000000 0.424354 0.000000
+2 24 3 0.000000 0.428302 0.000000
+2 24 4 0.000000 0.432521 0.000000
+2 24 5 0.000000 0.438640 0.000000
+2 24 6 0.000000 0.445612 0.000000
+2 24 7 0.000000 0.456279 0.021612
+2 24 8 0.000000 0.467000 0.126809
+2 24 9 0.000000 0.477883 0.166852
+2 24 10 0.000000 0.490316 0.214687
+2 24 11 0.000000 0.506161 0.279666
+2 24 12 0.000000 0.521012 0.340969
+2 24 13 0.000000 0.534206 0.396147
+2 24 14 0.000000 0.546575 0.450931
+2 24 15 0.000000 0.557881 0.505210
+2 24 16 0.000000 0.567896 0.553834
+2 24 17 0.000000 0.576620 0.596803
+2 24 18 0.000000 0.584146 0.635512
+2 24 19 0.000000 0.590742 0.670908
+2 24 20 0.000000 0.596218 0.701153
+2 24 21 0.000000 0.601022 0.728306
+2 24 22 0.000000 0.604679 0.748291
+2 24 23 0.000000 0.607813 0.765017
+2 24 24 0.000000 0.611662 0.778938
+2 24 25 0.000000 0.615750 0.791925
+2 24 26 0.000000 0.619926 0.799192
+2 24 27 0.000000 0.624123 0.805138
+2 24 28 0.000000 0.627270 0.809268
+2 24 29 0.000000 0.630267 0.813138
+2 24 30 0.000000 0.632647 0.816148
+2 24 31 0.000000 0.634986 0.819100
+2 25 0 0.000000 0.431911 0.000000
+2 25 1 0.000000 0.436066 0.000000
+2 25 2 0.000000 0.440250 0.000000
+2 25 3 0.000000 0.444862 0.000000
+2 25 4 0.000000 0.449650 0.000000
+2 25 5 0.000000 0.455679 0.000000
+2 25 6 0.000000 0.462505 0.000000
+2 25 7 0.000000 0.472790 0.033444
+2 25 8 0.000000 0.483271 0.145948
+2 25 9 0.000000 0.494342 0.185337
+2 25 10 0.000000 0.506906 0.232694
+2 25 11 0.000000 0.522754 0.297585
+2 25 12 0.000000 0.537466 0.358618
+2 25 13 0.000000 0.550288 0.413222
+2 25 14 0.000000 0.562241 0.467150
+2 25 15 0.000000 0.573077 0.520207
+2 25 16 0.000000 0.582714 0.567558
+2 25 17 0.000000 0.591153 0.609205
+2 25 18 0.000000 0.598451 0.646707
+2 25 19 0.000000 0.604861 0.680987
+2 25 20 0.000000 0.610325 0.710337
+2 25 21 0.000000 0.615220 0.736730
+2 25 22 0.000000 0.618778 0.755961
+2 25 23 0.000000 0.621727 0.771938
+2 25 24 0.000000 0.625246 0.785179
+2 25 25 0.000000 0.628955 0.797507
+2 25 26 0.000000 0.633055 0.804574
+2 25 27 0.000000 0.637246 0.810427
+2 25 28 0.000000 0.640063 0.814378
+2 25 29 0.000000 0.642684 0.818057
+2 25 30 0.000000 0.644776 0.820881
+2 25 31 0.000000 0.646833 0.823648
+2 26 0 0.000000 0.443804 0.000000
+2 26 1 0.000000 0.448096 0.000000
+2 26 2 0.000000 0.452450 0.000000
+2 26 3 0.000000 0.457718 0.000000
+2 26 4 0.000000 0.463290 0.000000
+2 26 5 0.000000 0.470982 0.000000
+2 26 6 0.000000 0.479146 0.000000
+2 26 7 0.000000 0.489359 0.047037
+2 26 8 0.000000 0.499815 0.168662
+2 26 9 0.000000 0.510997 0.210192
+2 26 10 0.000000 0.523471 0.258420
+2 26 11 0.000000 0.538784 0.321384
+2 26 12 0.000000 0.553023 0.380972
+2 26 13 0.000000 0.565469 0.434931
+2 26 14 0.000000 0.576871 0.487627
+2 26 15 0.000000 0.586931 0.538698
+2 26 16 0.000000 0.595963 0.584282
+2 26 17 0.000000 0.603966 0.624379
+2 26 18 0.000000 0.610839 0.660529
+2 26 19 0.000000 0.616833 0.693609
+2 26 20 0.000000 0.622010 0.721418
+2 26 21 0.000000 0.626695 0.746063
+2 26 22 0.000000 0.630162 0.764179
+2 26 23 0.000000 0.633074 0.779328
+2 26 24 0.000000 0.636475 0.792155
+2 26 25 0.000000 0.640038 0.804207
+2 26 26 0.000000 0.644046 0.810771
+2 26 27 0.000000 0.648158 0.816069
+2 26 28 0.000000 0.650967 0.819922
+2 26 29 0.000000 0.653592 0.823567
+2 26 30 0.000000 0.655565 0.826357
+2 26 31 0.000000 0.657495 0.829089
+2 27 0 0.000000 0.455286 0.000000
+2 27 1 0.000000 0.459488 0.000000
+2 27 2 0.000000 0.463797 0.000000
+2 27 3 0.000000 0.469720 0.000000
+2 27 4 0.000000 0.476123 0.000000
+2 27 5 0.000000 0.485884 0.000000
+2 27 6 0.000000 0.495729 0.000000
+2 27 7 0.000000 0.505942 0.061036
+2 27 8 0.000000 0.516421 0.192200
+2 27 9 0.000000 0.527698 0.236517
+2 27 10 0.000000 0.540030 0.285927
+2 27 11 0.000000 0.554686 0.346541
+2 27 12 0.000000 0.568372 0.404411
+2 27 13 0.000000 0.580441 0.457709
+2 27 14 0.000000 0.591262 0.509087
+2 27 15 0.000000 0.600476 0.557995
+2 27 16 0.000000 0.608850 0.601698
+2 27 17 0.000000 0.616383 0.640194
+2 27 18 0.000000 0.622786 0.674957
+2 27 19 0.000000 0.628310 0.706818
+2 27 20 0.000000 0.633135 0.732935
+2 27 21 0.000000 0.637542 0.755606
+2 27 22 0.000000 0.640919 0.772524
+2 27 23 0.000000 0.643828 0.786826
+2 27 24 0.000000 0.647160 0.799300
+2 27 25 0.000000 0.650633 0.811165
+2 27 26 0.000000 0.654545 0.817157
+2 27 27 0.000000 0.658559 0.821793
+2 27 28 0.000000 0.661436 0.825566
+2 27 29 0.000000 0.664152 0.829214
+2 27 30 0.000000 0.666045 0.832004
+2 27 31 0.000000 0.667884 0.834737
+2 28 0 0.000000 0.463257 0.000000
+2 28 1 0.000000 0.467526 0.000000
+2 28 2 0.000000 0.471899 0.000000
+2 28 3 0.000000 0.477825 0.000000
+2 28 4 0.000000 0.484304 0.000000
+2 28 5 0.000000 0.494652 0.000000
+2 28 6 0.000000 0.505206 0.000000
+2 28 7 0.000000 0.516653 0.070699
+2 28 8 0.000000 0.528082 0.208587
+2 28 9 0.000000 0.539455 0.255392
+2 28 10 0.000000 0.551724 0.305880
+2 28 11 0.000000 0.565963 0.364473
+2 28 12 0.000000 0.579248 0.420925
+2 28 13 0.000000 0.590945 0.473809
+2 28 14 0.000000 0.601330 0.524368
+2 28 15 0.000000 0.610029 0.571939
+2 28 16 0.000000 0.617992 0.614504
+2 28 17 0.000000 0.625217 0.652062
+2 28 18 0.000000 0.631267 0.685726
+2 28 19 0.000000 0.636403 0.716363
+2 28 20 0.000000 0.640958 0.741402
+2 28 21 0.000000 0.645166 0.763083
+2 28 22 0.000000 0.648480 0.779281
+2 28 23 0.000000 0.651389 0.792987
+2 28 24 0.000000 0.654651 0.804862
+2 28 25 0.000000 0.658029 0.816127
+2 28 26 0.000000 0.661914 0.821939
+2 28 27 0.000000 0.665916 0.826494
+2 28 28 0.000000 0.668732 0.829966
+2 28 29 0.000000 0.671379 0.833283
+2 28 30 0.000000 0.673330 0.835977
+2 28 31 0.000000 0.675235 0.838630
+2 29 0 0.000000 0.470726 0.000000
+2 29 1 0.000000 0.475086 0.000000
+2 29 2 0.000000 0.479539 0.000000
+2 29 3 0.000000 0.485374 0.000000
+2 29 4 0.000000 0.491820 0.000000
+2 29 5 0.000000 0.502544 0.000000
+2 29 6 0.000000 0.513668 0.000000
+2 29 7 0.000000 0.526525 0.079743
+2 29 8 0.000000 0.539036 0.223954
+2 29 9 0.000000 0.550506 0.273203
+2 29 10 0.000000 0.562722 0.324755
+2 29 11 0.000000 0.576579 0.381373
+2 29 12 0.000000 0.589486 0.436449
+2 29 13 0.000000 0.600809 0.488953
+2 29 14 0.000000 0.610780 0.538766
+2 29 15 0.000000 0.619013 0.585118
+2 29 16 0.000000 0.626599 0.626652
+2 29 17 0.000000 0.633539 0.663367
+2 29 18 0.000000 0.639253 0.695973
+2 29 19 0.000000 0.644013 0.725384
+2 29 20 0.000000 0.648310 0.749433
+2 29 21 0.000000 0.652329 0.770264
+2 29 22 0.000000 0.655585 0.785812
+2 29 23 0.000000 0.658494 0.798957
+2 29 24 0.000000 0.661684 0.810198
+2 29 25 0.000000 0.664969 0.820805
+2 29 26 0.000000 0.668837 0.826494
+2 29 27 0.000000 0.672838 0.831048
+2 29 28 0.000000 0.675575 0.834188
+2 29 29 0.000000 0.678131 0.837126
+2 29 30 0.000000 0.680159 0.839712
+2 29 31 0.000000 0.682151 0.842274
+2 30 0 0.000000 0.476487 0.000000
+2 30 1 0.000000 0.480767 0.000000
+2 30 2 0.000000 0.485150 0.000000
+2 30 3 0.000000 0.491065 0.000000
+2 30 4 0.000000 0.497573 0.000000
+2 30 5 0.000000 0.508232 0.000000
+2 30 6 0.000000 0.519552 0.000000
+2 30 7 0.000000 0.533731 0.086588
+2 30 8 0.000000 0.547278 0.235580
+2 30 9 0.000000 0.558928 0.286657
+2 30 10 0.000000 0.571152 0.339067
+2 30 11 0.000000 0.584638 0.394413
+2 30 12 0.000000 0.597237 0.448555
+2 30 13 0.000000 0.608358 0.500689
+2 30 14 0.000000 0.618124 0.549950
+2 30 15 0.000000 0.626148 0.595518
+2 30 16 0.000000 0.633402 0.636192
+2 30 17 0.000000 0.639886 0.671973
+2 30 18 0.000000 0.645191 0.703632
+2 30 19 0.000000 0.649577 0.732085
+2 30 20 0.000000 0.653670 0.755411
+2 30 21 0.000000 0.657587 0.775660
+2 30 22 0.000000 0.660873 0.790757
+2 30 23 0.000000 0.663873 0.803512
+2 30 24 0.000000 0.667014 0.814230
+2 30 25 0.000000 0.670202 0.824270
+2 30 26 0.000000 0.674120 0.829855
+2 30 27 0.000000 0.678207 0.834412
+2 30 28 0.000000 0.680950 0.837529
+2 30 29 0.000000 0.683500 0.840441
+2 30 30 0.000000 0.685453 0.842771
+2 30 31 0.000000 0.687365 0.845063
+2 31 0 0.000000 0.482134 0.000000
+2 31 1 0.000000 0.486324 0.000000
+2 31 2 0.000000 0.490627 0.000000
+2 31 3 0.000000 0.496632 0.000000
+2 31 4 0.000000 0.503208 0.000000
+2 31 5 0.000000 0.513774 0.000000
+2 31 6 0.000000 0.525263 0.000000
+2 31 7 0.000000 0.540759 0.093287
+2 31 8 0.000000 0.555340 0.246956
+2 31 9 0.000000 0.567175 0.299819
+2 31 10 0.000000 0.579410 0.353075
+2 31 11 0.000000 0.592526 0.407196
+2 31 12 0.000000 0.604822 0.460433
+2 31 13 0.000000 0.615752 0.512197
+2 31 14 0.000000 0.625327 0.560920
+2 31 15 0.000000 0.633160 0.605733
+2 31 16 0.000000 0.640085 0.645559
+2 31 17 0.000000 0.646102 0.680400
+2 31 18 0.000000 0.650993 0.711118
+2 31 19 0.000000 0.655006 0.738631
+2 31 20 0.000000 0.658898 0.761252
+2 31 21 0.000000 0.662718 0.780937
+2 31 22 0.000000 0.666040 0.795597
+2 31 23 0.000000 0.669137 0.807973
+2 31 24 0.000000 0.672230 0.818175
+2 31 25 0.000000 0.675321 0.827654
+2 31 26 0.000000 0.679295 0.833136
+2 31 27 0.000000 0.683473 0.837696
+2 31 28 0.000000 0.686227 0.840811
+2 31 29 0.000000 0.688777 0.843720
+2 31 30 0.000000 0.690644 0.845786
+2 31 31 0.000000 0.692466 0.847795
+3 0 0 0.043898 0.039097 0.028316
+3 0 1 0.044161 0.039180 0.030137
+3 0 2 0.044419 0.039257 0.031972
+3 0 3 0.044605 0.039257 0.034012
+3 0 4 0.044768 0.039280 0.036183
+3 0 5 0.044768 0.039462 0.039280
+3 0 6 0.044637 0.039644 0.042585
+3 0 7 0.043943 0.039826 0.046792
+3 0 8 0.043387 0.039847 0.052159
+3 0 9 0.043251 0.039382 0.061002
+3 0 10 0.040811 0.038975 0.076936
+3 0 11 0.033306 0.038693 0.108468
+3 0 12 0.027414 0.037585 0.139560
+3 0 13 0.024208 0.035099 0.169917
+3 0 14 0.028192 0.026510 0.203816
+3 0 15 0.041418 0.010074 0.242271
+3 0 16 0.052271 0.000000 0.277173
+3 0 17 0.060750 0.000000 0.308523
+3 0 18 0.071361 0.000000 0.338177
+3 0 19 0.083630 0.000000 0.366513
+3 0 20 0.092635 0.000000 0.391381
+3 0 21 0.099680 0.000000 0.414169
+3 0 22 0.104680 0.000000 0.435079
+3 0 23 0.108749 0.000000 0.455135
+3 0 24 0.102829 0.000000 0.480321
+3 0 25 0.093580 0.000000 0.507216
+3 0 26 0.002934 0.000000 0.539751
+3 0 27 0.000000 0.000000 0.573586
+3 0 28 0.000000 0.000000 0.596146
+3 0 29 0.000000 0.000000 0.617095
+3 0 30 0.000000 0.072490 0.632579
+3 0 31 0.000000 0.168674 0.647699
+3 1 0 0.045857 0.041001 0.028133
+3 1 1 0.045371 0.041093 0.030237
+3 1 2 0.044928 0.041181 0.032339
+3 1 3 0.045114 0.041224 0.034421
+3 1 4 0.045276 0.041278 0.036624
+3 1 5 0.045276 0.041418 0.039678
+3 1 6 0.045188 0.041626 0.043241
+3 1 7 0.044716 0.042133 0.049004
+3 1 8 0.044141 0.042444 0.055501
+3 1 9 0.043256 0.042168 0.064199
+3 1 10 0.040400 0.041962 0.080167
+3 1 11 0.033205 0.041910 0.112127
+3 1 12 0.027546 0.041106 0.143818
+3 1 13 0.024445 0.039048 0.175064
+3 1 14 0.028382 0.031706 0.209546
+3 1 15 0.041369 0.017569 0.248188
+3 1 16 0.051926 0.000000 0.283513
+3 1 17 0.060055 0.000000 0.315522
+3 1 18 0.070316 0.000000 0.345464
+3 1 19 0.082235 0.000000 0.373799
+3 1 20 0.090944 0.000000 0.398876
+3 1 21 0.097727 0.000000 0.421998
+3 1 22 0.102404 0.000000 0.442653
+3 1 23 0.106124 0.000000 0.462187
+3 1 24 0.079814 0.000000 0.486076
+3 1 25 0.043495 0.000000 0.511416
+3 1 26 0.000000 0.000000 0.543624
+3 1 27 0.000000 0.000000 0.577417
+3 1 28 0.000000 0.000000 0.600054
+3 1 29 0.000000 0.000000 0.621097
+3 1 30 0.000000 0.080688 0.636587
+3 1 31 0.000000 0.176871 0.651707
+3 2 0 0.047774 0.042910 0.027950
+3 2 1 0.046587 0.043009 0.030324
+3 2 2 0.045483 0.043108 0.032685
+3 2 3 0.045624 0.043201 0.034846
+3 2 4 0.045747 0.043296 0.037115
+3 2 5 0.045744 0.043399 0.040132
+3 2 6 0.045692 0.043636 0.043950
+3 2 7 0.045428 0.044460 0.051240
+3 2 8 0.044825 0.045059 0.058853
+3 2 9 0.043204 0.044982 0.067434
+3 2 10 0.039924 0.044986 0.083459
+3 2 11 0.032995 0.045169 0.115857
+3 2 12 0.027151 0.044674 0.148160
+3 2 13 0.023116 0.043049 0.180305
+3 2 14 0.026876 0.036952 0.215374
+3 2 15 0.040659 0.025105 0.254204
+3 2 16 0.051449 0.000000 0.289955
+3 2 17 0.059244 0.000000 0.322625
+3 2 18 0.069164 0.000000 0.352865
+3 2 19 0.080736 0.000000 0.381213
+3 2 20 0.089145 0.000000 0.406506
+3 2 21 0.095657 0.000000 0.429965
+3 2 22 0.099996 0.000000 0.450372
+3 2 23 0.103347 0.000000 0.469391
+3 2 24 0.057736 0.000000 0.492038
+3 2 25 0.000000 0.000000 0.515893
+3 2 26 0.000000 0.000000 0.547704
+3 2 27 0.000000 0.000000 0.581352
+3 2 28 0.000000 0.000000 0.604048
+3 2 29 0.000000 0.000000 0.625179
+3 2 30 0.000000 0.089025 0.640671
+3 2 31 0.000000 0.185208 0.655788
+3 3 0 0.049076 0.044884 0.027750
+3 3 1 0.047889 0.044974 0.030218
+3 3 2 0.046740 0.045076 0.032707
+3 3 3 0.046164 0.045348 0.035509
+3 3 4 0.045654 0.045605 0.038342
+3 3 5 0.045603 0.045750 0.041402
+3 3 6 0.045508 0.046061 0.045459
+3 3 7 0.045221 0.047091 0.053838
+3 3 8 0.044461 0.047936 0.062346
+3 3 9 0.042281 0.048226 0.071243
+3 3 10 0.038489 0.048573 0.087671
+3 3 11 0.031150 0.049047 0.120666
+3 3 12 0.018857 0.048930 0.153741
+3 3 13 0.000000 0.047827 0.186947
+3 3 14 0.000000 0.042964 0.222692
+3 3 15 0.030049 0.033267 0.261701
+3 3 16 0.048972 0.013849 0.297905
+3 3 17 0.056695 0.000000 0.331303
+3 3 18 0.066408 0.000000 0.361981
+3 3 19 0.077669 0.000000 0.390542
+3 3 20 0.085713 0.000000 0.416155
+3 3 21 0.091827 0.000000 0.439998
+3 3 22 0.095599 0.000000 0.460249
+3 3 23 0.098306 0.000000 0.478865
+3 3 24 0.049711 0.000000 0.501096
+3 3 25 0.000000 0.000000 0.524533
+3 3 26 0.000000 0.000000 0.554891
+3 3 27 0.000000 0.000000 0.586846
+3 3 28 0.000000 0.000000 0.609330
+3 3 29 0.000000 0.004826 0.630462
+3 3 30 0.000000 0.099462 0.645906
+3 3 31 0.000000 0.195645 0.660970
+3 4 0 0.050215 0.046895 0.027576
+3 4 1 0.049028 0.046979 0.030126
+3 4 2 0.047839 0.047084 0.032728
+3 4 3 0.046625 0.047524 0.036113
+3 4 4 0.045538 0.047942 0.039485
+3 4 5 0.045341 0.048206 0.042770
+3 4 6 0.045123 0.048649 0.047189
+3 4 7 0.044811 0.049866 0.056520
+3 4 8 0.043893 0.050939 0.065850
+3 4 9 0.041158 0.051580 0.075176
+3 4 10 0.036777 0.052280 0.092135
+3 4 11 0.028774 0.053108 0.125889
+3 4 12 0.009868 0.053431 0.159845
+3 4 13 0.000000 0.052914 0.194140
+3 4 14 0.000000 0.049319 0.230598
+3 4 15 0.018743 0.041768 0.269840
+3 4 16 0.045829 0.031714 0.306528
+3 4 17 0.053526 0.019157 0.340664
+3 4 18 0.063062 0.000000 0.371805
+3 4 19 0.074028 0.000000 0.400616
+3 4 20 0.081686 0.000000 0.426584
+3 4 21 0.087359 0.000000 0.450847
+3 4 22 0.090513 0.000000 0.470982
+3 4 23 0.092521 0.000000 0.489240
+3 4 24 0.041247 0.000000 0.511103
+3 4 25 0.000000 0.000000 0.534167
+3 4 26 0.000000 0.000000 0.562889
+3 4 27 0.000000 0.000000 0.592916
+3 4 28 0.000000 0.000000 0.615139
+3 4 29 0.000000 0.015779 0.636247
+3 4 30 0.000000 0.110784 0.651653
+3 4 31 0.000000 0.206973 0.666679
+3 5 0 0.050215 0.049164 0.027576
+3 5 1 0.049028 0.049256 0.030126
+3 5 2 0.047834 0.049376 0.032740
+3 5 3 0.046532 0.049900 0.036313
+3 5 4 0.045265 0.050474 0.040038
+3 5 5 0.044241 0.051397 0.044827
+3 5 6 0.043342 0.052384 0.050468
+3 5 7 0.042982 0.053653 0.059799
+3 5 8 0.041896 0.054824 0.069435
+3 5 9 0.038636 0.055705 0.079983
+3 5 10 0.033128 0.056818 0.098370
+3 5 11 0.022675 0.058440 0.134004
+3 5 12 0.000000 0.059648 0.169613
+3 5 13 0.000000 0.060165 0.205182
+3 5 14 0.000000 0.058076 0.242622
+3 5 15 0.002563 0.052635 0.282470
+3 5 16 0.038014 0.045616 0.319864
+3 5 17 0.046022 0.037017 0.354803
+3 5 18 0.055590 0.000000 0.386584
+3 5 19 0.066373 0.000000 0.415907
+3 5 20 0.073500 0.000000 0.442479
+3 5 21 0.078433 0.000000 0.467401
+3 5 22 0.080606 0.000000 0.487712
+3 5 23 0.081525 0.000000 0.505928
+3 5 24 0.029710 0.000000 0.527741
+3 5 25 0.000000 0.000000 0.550753
+3 5 26 0.000000 0.000000 0.576563
+3 5 27 0.000000 0.000000 0.603018
+3 5 28 0.000000 0.000000 0.624629
+3 5 29 0.000000 0.032702 0.645549
+3 5 30 0.000000 0.128312 0.660992
+3 5 31 0.000000 0.224543 0.676069
+3 6 0 0.050279 0.051845 0.027541
+3 6 1 0.049092 0.052111 0.030180
+3 6 2 0.047893 0.052399 0.032886
+3 6 3 0.046520 0.052994 0.036612
+3 6 4 0.045101 0.053701 0.040630
+3 6 5 0.043356 0.055194 0.046694
+3 6 6 0.041812 0.056683 0.053447
+3 6 7 0.041143 0.058160 0.063184
+3 6 8 0.039685 0.059563 0.073473
+3 6 9 0.035859 0.060745 0.085420
+3 6 10 0.029074 0.062351 0.105403
+3 6 11 0.015780 0.064893 0.143068
+3 6 12 0.000000 0.067074 0.180493
+3 6 13 0.000000 0.068651 0.217518
+3 6 14 0.000000 0.068143 0.256052
+3 6 15 0.000000 0.064956 0.296525
+3 6 16 0.028174 0.061014 0.334651
+3 6 17 0.036812 0.056318 0.370428
+3 6 18 0.046490 0.007611 0.402993
+3 6 19 0.056978 0.000000 0.433059
+3 6 20 0.063571 0.000000 0.460311
+3 6 21 0.067829 0.000000 0.485873
+3 6 22 0.069052 0.000000 0.506421
+3 6 23 0.068895 0.000000 0.524690
+3 6 24 0.016762 0.000000 0.546340
+3 6 25 0.000000 0.000000 0.569116
+3 6 26 0.000000 0.000000 0.592523
+3 6 27 0.000000 0.000000 0.616075
+3 6 28 0.000000 0.000000 0.636666
+3 6 29 0.000000 0.067623 0.656833
+3 6 30 0.000000 0.155940 0.671846
+3 6 31 0.000000 0.244370 0.686515
+3 7 0 0.050618 0.056317 0.027359
+3 7 1 0.049431 0.057472 0.030468
+3 7 2 0.048232 0.058593 0.033615
+3 7 3 0.046859 0.059197 0.037340
+3 7 4 0.045407 0.059936 0.041394
+3 7 5 0.043399 0.061616 0.047740
+3 7 6 0.041373 0.063426 0.055128
+3 7 7 0.039264 0.065791 0.067027
+3 7 8 0.036540 0.068002 0.079479
+3 7 9 0.031975 0.069747 0.093588
+3 7 10 0.023265 0.072198 0.115897
+3 7 11 0.005436 0.076202 0.156246
+3 7 12 0.000000 0.079735 0.196191
+3 7 13 0.000000 0.082483 0.235463
+3 7 14 0.000000 0.083891 0.275572
+3 7 15 0.000000 0.083576 0.316755
+3 7 16 0.009560 0.082899 0.355727
+3 7 17 0.020210 0.081860 0.392486
+3 7 18 0.030330 0.061976 0.426462
+3 7 19 0.040039 0.027436 0.458273
+3 7 20 0.046092 0.015523 0.486531
+3 7 21 0.049951 0.017187 0.512657
+3 7 22 0.050355 0.020401 0.533704
+3 7 23 0.049188 0.024320 0.552444
+3 7 24 0.000000 0.033644 0.573435
+3 7 25 0.000000 0.044769 0.595178
+3 7 26 0.000000 0.064143 0.618390
+3 7 27 0.000000 0.085422 0.641943
+3 7 28 0.000000 0.131224 0.659736
+3 7 29 0.000000 0.180529 0.676707
+3 7 30 0.000000 0.227338 0.689268
+3 7 31 0.000000 0.273981 0.701535
+3 8 0 0.050969 0.061253 0.026692
+3 8 1 0.049338 0.062957 0.030341
+3 8 2 0.047697 0.064604 0.034003
+3 8 3 0.045903 0.065386 0.037851
+3 8 4 0.044031 0.066317 0.042055
+3 8 5 0.041618 0.068291 0.048754
+3 8 6 0.038998 0.070515 0.056794
+3 8 7 0.035483 0.073830 0.070644
+3 8 8 0.031305 0.076870 0.085006
+3 8 9 0.025141 0.079087 0.100904
+3 8 10 0.012841 0.082341 0.125276
+3 8 11 0.000000 0.087876 0.168295
+3 8 12 0.000000 0.092840 0.210724
+3 8 13 0.000000 0.096855 0.252173
+3 8 14 0.000000 0.100107 0.293791
+3 8 15 0.000000 0.102380 0.335627
+3 8 16 0.000000 0.104546 0.375429
+3 8 17 0.000000 0.106605 0.413197
+3 8 18 0.000355 0.108678 0.448521
+3 8 19 0.008302 0.110762 0.481946
+3 8 20 0.013220 0.113293 0.511050
+3 8 21 0.016322 0.116091 0.537563
+3 8 22 0.016138 0.121352 0.558895
+3 8 23 0.014461 0.127732 0.577871
+3 8 24 0.000000 0.142783 0.598145
+3 8 25 0.000000 0.160723 0.618851
+3 8 26 0.000000 0.192023 0.641496
+3 8 27 0.000000 0.226407 0.664588
+3 8 28 0.000000 0.249189 0.679980
+3 8 29 0.000000 0.270315 0.694271
+3 8 30 0.000000 0.285870 0.704777
+3 8 31 0.000000 0.301055 0.715032
+3 9 0 0.051358 0.067582 0.024571
+3 9 1 0.047951 0.068816 0.028972
+3 9 2 0.044539 0.070064 0.033369
+3 9 3 0.041060 0.071532 0.037705
+3 9 4 0.037609 0.073139 0.042407
+3 9 5 0.034360 0.075719 0.049670
+3 9 6 0.030816 0.078648 0.058415
+3 9 7 0.025996 0.083091 0.073582
+3 9 8 0.019797 0.087026 0.089098
+3 9 9 0.009457 0.089441 0.105663
+3 9 10 0.000000 0.093373 0.131314
+3 9 11 0.000000 0.100642 0.176956
+3 9 12 0.000000 0.107274 0.221762
+3 9 13 0.000000 0.112845 0.265177
+3 9 14 0.000000 0.117731 0.308110
+3 9 15 0.000000 0.121739 0.350425
+3 9 16 0.000000 0.125482 0.391009
+3 9 17 0.000000 0.128961 0.429863
+3 9 18 0.000000 0.132390 0.466350
+3 9 19 0.000000 0.135781 0.500997
+3 9 20 0.000000 0.139010 0.530469
+3 9 21 0.000000 0.142142 0.556836
+3 9 22 0.000000 0.147472 0.577805
+3 9 23 0.000000 0.153801 0.596321
+3 9 24 0.000000 0.168203 0.615696
+3 9 25 0.000000 0.185298 0.635359
+3 9 26 0.000000 0.215355 0.656315
+3 9 27 0.000000 0.248404 0.677570
+3 9 28 0.000000 0.270362 0.691744
+3 9 29 0.000000 0.290735 0.704907
+3 9 30 0.000000 0.305803 0.714550
+3 9 31 0.000000 0.320517 0.723958
+3 10 0 0.045642 0.078817 0.006887
+3 10 1 0.041066 0.079891 0.016585
+3 10 2 0.036172 0.081028 0.026167
+3 10 3 0.026502 0.083108 0.034003
+3 10 4 0.017047 0.085347 0.041878
+3 10 5 0.009101 0.088697 0.050029
+3 10 6 0.001745 0.092449 0.059764
+3 10 7 0.000000 0.097944 0.076364
+3 10 8 0.000000 0.102839 0.093295
+3 10 9 0.000000 0.105932 0.111216
+3 10 10 0.000000 0.110790 0.138460
+3 10 11 0.000000 0.119532 0.186215
+3 10 12 0.000000 0.127576 0.232910
+3 10 13 0.000000 0.134454 0.277839
+3 10 14 0.000000 0.140662 0.321981
+3 10 15 0.000000 0.146009 0.365111
+3 10 16 0.000000 0.151043 0.406557
+3 10 17 0.000000 0.155761 0.446317
+3 10 18 0.000000 0.160362 0.483740
+3 10 19 0.000000 0.164870 0.519344
+3 10 20 0.000000 0.168782 0.549196
+3 10 21 0.000000 0.172336 0.575597
+3 10 22 0.000000 0.177703 0.596320
+3 10 23 0.000000 0.183895 0.614463
+3 10 24 0.000000 0.197573 0.633010
+3 10 25 0.000000 0.213746 0.651690
+3 10 26 0.000000 0.241918 0.670847
+3 10 27 0.000000 0.272858 0.690114
+3 10 28 0.000000 0.293597 0.703104
+3 10 29 0.000000 0.312878 0.715198
+3 10 30 0.000000 0.327232 0.724093
+3 10 31 0.000000 0.341257 0.732775
+3 11 0 0.026496 0.100847 0.000000
+3 11 1 0.022087 0.102443 0.000000
+3 11 2 0.016343 0.104097 0.004511
+3 11 3 0.000000 0.106629 0.022474
+3 11 4 0.000000 0.109405 0.039410
+3 11 5 0.000000 0.113882 0.049159
+3 11 6 0.000000 0.118718 0.060510
+3 11 7 0.000000 0.125102 0.078803
+3 11 8 0.000000 0.131097 0.097721
+3 11 9 0.000000 0.135925 0.118514
+3 11 10 0.000000 0.142256 0.148043
+3 11 11 0.000000 0.151896 0.196790
+3 11 12 0.000000 0.160786 0.244300
+3 11 13 0.000000 0.168425 0.289751
+3 11 14 0.000000 0.175267 0.334866
+3 11 15 0.000000 0.181085 0.379553
+3 11 16 0.000000 0.186776 0.422033
+3 11 17 0.000000 0.192341 0.462306
+3 11 18 0.000000 0.197706 0.500164
+3 11 19 0.000000 0.202915 0.536145
+3 11 20 0.000000 0.207474 0.566405
+3 11 21 0.000000 0.211644 0.593233
+3 11 22 0.000000 0.216981 0.613967
+3 11 23 0.000000 0.222848 0.631931
+3 11 24 0.000000 0.235630 0.649798
+3 11 25 0.000000 0.250718 0.667633
+3 11 26 0.000000 0.275588 0.684748
+3 11 27 0.000000 0.302716 0.701698
+3 11 28 0.000000 0.321370 0.713576
+3 11 29 0.000000 0.338814 0.724729
+3 11 30 0.000000 0.351955 0.733134
+3 11 31 0.000000 0.364809 0.741355
+3 12 0 0.000000 0.124169 0.000000
+3 12 1 0.000000 0.126212 0.000000
+3 12 2 0.000000 0.128312 0.000000
+3 12 3 0.000000 0.131268 0.009479
+3 12 4 0.000000 0.134529 0.035127
+3 12 5 0.000000 0.139927 0.047003
+3 12 6 0.000000 0.145706 0.060436
+3 12 7 0.000000 0.153140 0.080621
+3 12 8 0.000000 0.160299 0.101560
+3 12 9 0.000000 0.166633 0.124763
+3 12 10 0.000000 0.174269 0.156354
+3 12 11 0.000000 0.184769 0.206393
+3 12 12 0.000000 0.194513 0.255093
+3 12 13 0.000000 0.203000 0.301559
+3 12 14 0.000000 0.210587 0.347803
+3 12 15 0.000000 0.217016 0.393763
+3 12 16 0.000000 0.223357 0.437314
+3 12 17 0.000000 0.229611 0.478456
+3 12 18 0.000000 0.235612 0.516815
+3 12 19 0.000000 0.241416 0.553012
+3 12 20 0.000000 0.246441 0.583610
+3 12 21 0.000000 0.250999 0.610850
+3 12 22 0.000000 0.256207 0.631534
+3 12 23 0.000000 0.261711 0.649239
+3 12 24 0.000000 0.273536 0.666500
+3 12 25 0.000000 0.287467 0.683613
+3 12 26 0.000000 0.309436 0.698987
+3 12 27 0.000000 0.333261 0.713960
+3 12 28 0.000000 0.350038 0.724706
+3 12 29 0.000000 0.365807 0.734849
+3 12 30 0.000000 0.377791 0.742571
+3 12 31 0.000000 0.389523 0.750132
+3 13 0 0.000000 0.149642 0.000000
+3 13 1 0.000000 0.152010 0.000000
+3 13 2 0.000000 0.154438 0.000000
+3 13 3 0.000000 0.157770 0.000000
+3 13 4 0.000000 0.161432 0.027816
+3 13 5 0.000000 0.167403 0.042701
+3 13 6 0.000000 0.173895 0.058996
+3 13 7 0.000000 0.182645 0.081404
+3 13 8 0.000000 0.191073 0.104420
+3 13 9 0.000000 0.198536 0.129265
+3 13 10 0.000000 0.207196 0.162544
+3 13 11 0.000000 0.218490 0.214380
+3 13 12 0.000000 0.229103 0.264891
+3 13 13 0.000000 0.238582 0.313194
+3 13 14 0.000000 0.247096 0.360824
+3 13 15 0.000000 0.254371 0.407588
+3 13 16 0.000000 0.261349 0.452271
+3 13 17 0.000000 0.268031 0.494875
+3 13 18 0.000000 0.274455 0.533845
+3 13 19 0.000000 0.280677 0.569990
+3 13 20 0.000000 0.285865 0.600810
+3 13 21 0.000000 0.290431 0.628435
+3 13 22 0.000000 0.295349 0.648968
+3 13 23 0.000000 0.300425 0.666279
+3 13 24 0.000000 0.311188 0.683057
+3 13 25 0.000000 0.323845 0.699658
+3 13 26 0.000000 0.343582 0.713790
+3 13 27 0.000000 0.364953 0.727352
+3 13 28 0.000000 0.380197 0.736935
+3 13 29 0.000000 0.394565 0.745949
+3 13 30 0.000000 0.405484 0.752671
+3 13 31 0.000000 0.416172 0.759241
+3 14 0 0.000000 0.181201 0.000000
+3 14 1 0.000000 0.183729 0.000000
+3 14 2 0.000000 0.186318 0.000000
+3 14 3 0.000000 0.189820 0.000000
+3 14 4 0.000000 0.193671 0.000000
+3 14 5 0.000000 0.199965 0.002035
+3 14 6 0.000000 0.206889 0.020881
+3 14 7 0.000000 0.216543 0.065781
+3 14 8 0.000000 0.225850 0.106136
+3 14 9 0.000000 0.234112 0.132853
+3 14 10 0.000000 0.243565 0.167993
+3 14 11 0.000000 0.255639 0.221661
+3 14 12 0.000000 0.267086 0.273890
+3 14 13 0.000000 0.277489 0.323721
+3 14 14 0.000000 0.286956 0.372944
+3 14 15 0.000000 0.295219 0.421386
+3 14 16 0.000000 0.302864 0.467292
+3 14 17 0.000000 0.309891 0.510663
+3 14 18 0.000000 0.316680 0.549941
+3 14 19 0.000000 0.323284 0.586039
+3 14 20 0.000000 0.328552 0.616925
+3 14 21 0.000000 0.333019 0.644684
+3 14 22 0.000000 0.337570 0.665290
+3 14 23 0.000000 0.342160 0.682643
+3 14 24 0.000000 0.351817 0.699216
+3 14 25 0.000000 0.363163 0.715529
+3 14 26 0.000000 0.380333 0.728264
+3 14 27 0.000000 0.398848 0.740173
+3 14 28 0.000000 0.411997 0.748418
+3 14 29 0.000000 0.424380 0.756139
+3 14 30 0.000000 0.434029 0.762026
+3 14 31 0.000000 0.443494 0.767791
+3 15 0 0.000000 0.220584 0.000000
+3 15 1 0.000000 0.223061 0.000000
+3 15 2 0.000000 0.225595 0.000000
+3 15 3 0.000000 0.229003 0.000000
+3 15 4 0.000000 0.232772 0.000000
+3 15 5 0.000000 0.239066 0.000000
+3 15 6 0.000000 0.246060 0.000000
+3 15 7 0.000000 0.256091 0.029066
+3 15 8 0.000000 0.265773 0.106379
+3 15 9 0.000000 0.274411 0.135268
+3 15 10 0.000000 0.284361 0.172488
+3 15 11 0.000000 0.297196 0.228037
+3 15 12 0.000000 0.309433 0.281864
+3 15 13 0.000000 0.320673 0.332824
+3 15 14 0.000000 0.331123 0.383908
+3 15 15 0.000000 0.340557 0.435152
+3 15 16 0.000000 0.348907 0.482396
+3 15 17 0.000000 0.356174 0.525638
+3 15 18 0.000000 0.363255 0.564838
+3 15 19 0.000000 0.370193 0.600892
+3 15 20 0.000000 0.375437 0.631645
+3 15 21 0.000000 0.379664 0.659216
+3 15 22 0.000000 0.383752 0.680180
+3 15 23 0.000000 0.387777 0.698140
+3 15 24 0.000000 0.396274 0.714865
+3 15 25 0.000000 0.406262 0.731177
+3 15 26 0.000000 0.420435 0.742315
+3 15 27 0.000000 0.435573 0.752259
+3 15 28 0.000000 0.445907 0.758942
+3 15 29 0.000000 0.455555 0.765159
+3 15 30 0.000000 0.463670 0.770423
+3 15 31 0.000000 0.471683 0.775624
+3 16 0 0.000000 0.255422 0.000000
+3 16 1 0.000000 0.257992 0.000000
+3 16 2 0.000000 0.260618 0.000000
+3 16 3 0.000000 0.264078 0.000000
+3 16 4 0.000000 0.267906 0.000000
+3 16 5 0.000000 0.274315 0.000000
+3 16 6 0.000000 0.281456 0.000000
+3 16 7 0.000000 0.291769 0.010449
+3 16 8 0.000000 0.301788 0.106272
+3 16 9 0.000000 0.310926 0.137025
+3 16 10 0.000000 0.321396 0.176055
+3 16 11 0.000000 0.334796 0.233296
+3 16 12 0.000000 0.347667 0.288651
+3 16 13 0.000000 0.359659 0.340863
+3 16 14 0.000000 0.370818 0.393408
+3 16 15 0.000000 0.380906 0.446383
+3 16 16 0.000000 0.389775 0.494719
+3 16 17 0.000000 0.397427 0.538415
+3 16 18 0.000000 0.404675 0.577738
+3 16 19 0.000000 0.411608 0.613661
+3 16 20 0.000000 0.416922 0.644390
+3 16 21 0.000000 0.421264 0.672005
+3 16 22 0.000000 0.425030 0.693269
+3 16 23 0.000000 0.428534 0.711648
+3 16 24 0.000000 0.435983 0.728301
+3 16 25 0.000000 0.444749 0.744378
+3 16 26 0.000000 0.456664 0.754424
+3 16 27 0.000000 0.469307 0.763077
+3 16 28 0.000000 0.477702 0.768818
+3 16 29 0.000000 0.485490 0.774141
+3 16 30 0.000000 0.492279 0.778689
+3 16 31 0.000000 0.499002 0.783184
+3 17 0 0.000000 0.285714 0.000000
+3 17 1 0.000000 0.288524 0.000000
+3 17 2 0.000000 0.291387 0.000000
+3 17 3 0.000000 0.295044 0.000000
+3 17 4 0.000000 0.299073 0.000000
+3 17 5 0.000000 0.305713 0.000000
+3 17 6 0.000000 0.313076 0.000000
+3 17 7 0.000000 0.323577 0.009930
+3 17 8 0.000000 0.333893 0.105815
+3 17 9 0.000000 0.343657 0.138124
+3 17 10 0.000000 0.354671 0.178694
+3 17 11 0.000000 0.368437 0.237439
+3 17 12 0.000000 0.381788 0.294250
+3 17 13 0.000000 0.394448 0.347839
+3 17 14 0.000000 0.406042 0.401447
+3 17 15 0.000000 0.416266 0.455080
+3 17 16 0.000000 0.425469 0.504262
+3 17 17 0.000000 0.433651 0.548992
+3 17 18 0.000000 0.440938 0.588643
+3 17 19 0.000000 0.447529 0.624345
+3 17 20 0.000000 0.453008 0.655162
+3 17 21 0.000000 0.457821 0.683049
+3 17 22 0.000000 0.461404 0.704558
+3 17 23 0.000000 0.464428 0.723167
+3 17 24 0.000000 0.470944 0.739525
+3 17 25 0.000000 0.478623 0.755132
+3 17 26 0.000000 0.489022 0.764589
+3 17 27 0.000000 0.500048 0.772627
+3 17 28 0.000000 0.507381 0.778043
+3 17 29 0.000000 0.514187 0.783085
+3 17 30 0.000000 0.519857 0.786821
+3 17 31 0.000000 0.525451 0.790470
+3 18 0 0.000000 0.315755 0.000000
+3 18 1 0.000000 0.318405 0.000000
+3 18 2 0.000000 0.321115 0.000000
+3 18 3 0.000000 0.324713 0.000000
+3 18 4 0.000000 0.328704 0.000000
+3 18 5 0.000000 0.335444 0.000000
+3 18 6 0.000000 0.342960 0.000000
+3 18 7 0.000000 0.353836 0.008567
+3 18 8 0.000000 0.364462 0.103994
+3 18 9 0.000000 0.374335 0.137916
+3 18 10 0.000000 0.385517 0.180213
+3 18 11 0.000000 0.399578 0.240934
+3 18 12 0.000000 0.413281 0.299352
+3 18 13 0.000000 0.426386 0.353932
+3 18 14 0.000000 0.438547 0.408444
+3 18 15 0.000000 0.449494 0.462870
+3 18 16 0.000000 0.459144 0.512607
+3 18 17 0.000000 0.467495 0.557655
+3 18 18 0.000000 0.474791 0.597540
+3 18 19 0.000000 0.481266 0.633408
+3 18 20 0.000000 0.486746 0.664429
+3 18 21 0.000000 0.491629 0.692541
+3 18 22 0.000000 0.495200 0.714266
+3 18 23 0.000000 0.498173 0.733087
+3 18 24 0.000000 0.504042 0.749264
+3 18 25 0.000000 0.510876 0.764560
+3 18 26 0.000000 0.519643 0.773439
+3 18 27 0.000000 0.528857 0.780837
+3 18 28 0.000000 0.535196 0.785952
+3 18 29 0.000000 0.541125 0.790741
+3 18 30 0.000000 0.545831 0.794115
+3 18 31 0.000000 0.550455 0.797394
+3 19 0 0.000000 0.345601 0.000000
+3 19 1 0.000000 0.347781 0.000000
+3 19 2 0.000000 0.350034 0.000000
+3 19 3 0.000000 0.353374 0.000000
+3 19 4 0.000000 0.357139 0.000000
+3 19 5 0.000000 0.363879 0.000000
+3 19 6 0.000000 0.371493 0.000000
+3 19 7 0.000000 0.382891 0.006546
+3 19 8 0.000000 0.393835 0.101112
+3 19 9 0.000000 0.403417 0.136694
+3 19 10 0.000000 0.414474 0.180863
+3 19 11 0.000000 0.428775 0.243925
+3 19 12 0.000000 0.442730 0.304065
+3 19 13 0.000000 0.456108 0.359337
+3 19 14 0.000000 0.468938 0.414631
+3 19 15 0.000000 0.481065 0.469954
+3 19 16 0.000000 0.491248 0.520020
+3 19 17 0.000000 0.499488 0.564829
+3 19 18 0.000000 0.506769 0.604873
+3 19 19 0.000000 0.513304 0.641212
+3 19 20 0.000000 0.518657 0.672527
+3 19 21 0.000000 0.523301 0.700827
+3 19 22 0.000000 0.526990 0.722746
+3 19 23 0.000000 0.530246 0.741764
+3 19 24 0.000000 0.535692 0.757849
+3 19 25 0.000000 0.541868 0.772957
+3 19 26 0.000000 0.548915 0.781266
+3 19 27 0.000000 0.556163 0.788006
+3 19 28 0.000000 0.561561 0.792838
+3 19 29 0.000000 0.566695 0.797396
+3 19 30 0.000000 0.570558 0.800755
+3 19 31 0.000000 0.574337 0.804034
+3 20 0 0.000000 0.367466 0.000000
+3 20 1 0.000000 0.369672 0.000000
+3 20 2 0.000000 0.371952 0.000000
+3 20 3 0.000000 0.375324 0.000000
+3 20 4 0.000000 0.379118 0.000000
+3 20 5 0.000000 0.385858 0.000000
+3 20 6 0.000000 0.393464 0.000000
+3 20 7 0.000000 0.404823 0.005235
+3 20 8 0.000000 0.415785 0.099550
+3 20 9 0.000000 0.425557 0.137443
+3 20 10 0.000000 0.436836 0.183560
+3 20 11 0.000000 0.451430 0.247773
+3 20 12 0.000000 0.465694 0.308865
+3 20 13 0.000000 0.479410 0.364754
+3 20 14 0.000000 0.492493 0.420491
+3 20 15 0.000000 0.504763 0.476034
+3 20 16 0.000000 0.515146 0.526357
+3 20 17 0.000000 0.523643 0.571460
+3 20 18 0.000000 0.530899 0.611634
+3 20 19 0.000000 0.537189 0.647973
+3 20 20 0.000000 0.542525 0.679482
+3 20 21 0.000000 0.547288 0.708094
+3 20 22 0.000000 0.550984 0.729833
+3 20 23 0.000000 0.554195 0.748450
+3 20 24 0.000000 0.559201 0.764225
+3 20 25 0.000000 0.564804 0.779054
+3 20 26 0.000000 0.570970 0.787180
+3 20 27 0.000000 0.577267 0.793758
+3 20 28 0.000000 0.581949 0.798414
+3 20 29 0.000000 0.586401 0.802795
+3 20 30 0.000000 0.589648 0.805977
+3 20 31 0.000000 0.592815 0.809080
+3 21 0 0.000000 0.384542 0.000000
+3 21 1 0.000000 0.387073 0.000000
+3 21 2 0.000000 0.389670 0.000000
+3 21 3 0.000000 0.393249 0.000000
+3 21 4 0.000000 0.397223 0.000000
+3 21 5 0.000000 0.403963 0.000000
+3 21 6 0.000000 0.411499 0.000000
+3 21 7 0.000000 0.422481 0.004349
+3 21 8 0.000000 0.433281 0.098780
+3 21 9 0.000000 0.443533 0.139375
+3 21 10 0.000000 0.455242 0.187487
+3 21 11 0.000000 0.470161 0.252137
+3 21 12 0.000000 0.484769 0.313716
+3 21 13 0.000000 0.498860 0.370178
+3 21 14 0.000000 0.511945 0.426156
+3 21 15 0.000000 0.523736 0.481511
+3 21 16 0.000000 0.534119 0.532048
+3 21 17 0.000000 0.543095 0.577767
+3 21 18 0.000000 0.550320 0.618051
+3 21 19 0.000000 0.556183 0.654108
+3 21 20 0.000000 0.561567 0.685752
+3 21 21 0.000000 0.566663 0.714748
+3 21 22 0.000000 0.570299 0.736085
+3 21 23 0.000000 0.573271 0.753940
+3 21 24 0.000000 0.577825 0.769275
+3 21 25 0.000000 0.582906 0.783771
+3 21 26 0.000000 0.588697 0.791945
+3 21 27 0.000000 0.594651 0.798660
+3 21 28 0.000000 0.598751 0.803205
+3 21 29 0.000000 0.602587 0.807440
+3 21 30 0.000000 0.605355 0.810349
+3 21 31 0.000000 0.608053 0.813170
+3 22 0 0.000000 0.399728 0.000000
+3 22 1 0.000000 0.402202 0.000000
+3 22 2 0.000000 0.404741 0.000000
+3 22 3 0.000000 0.408249 0.000000
+3 22 4 0.000000 0.412132 0.000000
+3 22 5 0.000000 0.418642 0.000000
+3 22 6 0.000000 0.426001 0.000000
+3 22 7 0.000000 0.437031 0.006751
+3 22 8 0.000000 0.447925 0.102964
+3 22 9 0.000000 0.458414 0.144616
+3 22 10 0.000000 0.470399 0.193547
+3 22 11 0.000000 0.485678 0.258492
+3 22 12 0.000000 0.500445 0.320285
+3 22 13 0.000000 0.514359 0.376826
+3 22 14 0.000000 0.527282 0.432807
+3 22 15 0.000000 0.538929 0.488068
+3 22 16 0.000000 0.549316 0.538474
+3 22 17 0.000000 0.558442 0.584027
+3 22 18 0.000000 0.565839 0.624185
+3 22 19 0.000000 0.571891 0.660148
+3 22 20 0.000000 0.577309 0.691648
+3 22 21 0.000000 0.582344 0.720471
+3 22 22 0.000000 0.585978 0.741441
+3 22 23 0.000000 0.588976 0.758841
+3 22 24 0.000000 0.593268 0.773742
+3 22 25 0.000000 0.597993 0.787810
+3 22 26 0.000000 0.603209 0.795752
+3 22 27 0.000000 0.608539 0.802280
+3 22 28 0.000000 0.612280 0.806737
+3 22 29 0.000000 0.615794 0.810897
+3 22 30 0.000000 0.618404 0.813807
+3 22 31 0.000000 0.620955 0.816634
+3 23 0 0.000000 0.414054 0.000000
+3 23 1 0.000000 0.416298 0.000000
+3 23 2 0.000000 0.418608 0.000000
+3 23 3 0.000000 0.421919 0.000000
+3 23 4 0.000000 0.425588 0.000000
+3 23 5 0.000000 0.431765 0.000000
+3 23 6 0.000000 0.438897 0.000000
+3 23 7 0.000000 0.450167 0.010648
+3 23 8 0.000000 0.461273 0.109399
+3 23 9 0.000000 0.471889 0.151361
+3 23 10 0.000000 0.484079 0.200577
+3 23 11 0.000000 0.499734 0.265752
+3 23 12 0.000000 0.514575 0.327635
+3 23 13 0.000000 0.528063 0.384030
+3 23 14 0.000000 0.540749 0.439907
+3 23 15 0.000000 0.552405 0.495116
+3 23 16 0.000000 0.562796 0.545236
+3 23 17 0.000000 0.571922 0.590267
+3 23 18 0.000000 0.579583 0.630192
+3 23 19 0.000000 0.586106 0.666145
+3 23 20 0.000000 0.591550 0.697375
+3 23 21 0.000000 0.596346 0.725770
+3 23 22 0.000000 0.600005 0.746389
+3 23 23 0.000000 0.603148 0.763474
+3 23 24 0.000000 0.607266 0.777944
+3 23 25 0.000000 0.611708 0.791541
+3 23 26 0.000000 0.616260 0.799124
+3 23 27 0.000000 0.620838 0.805319
+3 23 28 0.000000 0.624320 0.809697
+3 23 29 0.000000 0.627646 0.813815
+3 23 30 0.000000 0.630245 0.816850
+3 23 31 0.000000 0.632795 0.819813
+3 24 0 0.000000 0.428033 0.000000
+3 24 1 0.000000 0.431026 0.000000
+3 24 2 0.000000 0.434072 0.000000
+3 24 3 0.000000 0.437904 0.000000
+3 24 4 0.000000 0.442015 0.000000
+3 24 5 0.000000 0.448077 0.000000
+3 24 6 0.000000 0.455059 0.000000
+3 24 7 0.000000 0.466029 0.020453
+3 24 8 0.000000 0.476954 0.125302
+3 24 9 0.000000 0.487743 0.166886
+3 24 10 0.000000 0.500094 0.215862
+3 24 11 0.000000 0.515881 0.281101
+3 24 12 0.000000 0.530674 0.342809
+3 24 13 0.000000 0.543811 0.398629
+3 24 14 0.000000 0.556147 0.453775
+3 24 15 0.000000 0.567453 0.508054
+3 24 16 0.000000 0.577544 0.557112
+3 24 17 0.000000 0.586419 0.600948
+3 24 18 0.000000 0.593980 0.639960
+3 24 19 0.000000 0.600518 0.675220
+3 24 20 0.000000 0.605950 0.705697
+3 24 21 0.000000 0.610718 0.733306
+3 24 22 0.000000 0.614323 0.753263
+3 24 23 0.000000 0.617400 0.769744
+3 24 24 0.000000 0.621207 0.783604
+3 24 25 0.000000 0.625259 0.796591
+3 24 26 0.000000 0.629522 0.803934
+3 24 27 0.000000 0.633834 0.809975
+3 24 28 0.000000 0.636996 0.814166
+3 24 29 0.000000 0.639992 0.818094
+3 24 30 0.000000 0.642372 0.821054
+3 24 31 0.000000 0.644711 0.823948
+3 25 0 0.000000 0.441895 0.000000
+3 25 1 0.000000 0.445965 0.000000
+3 25 2 0.000000 0.450068 0.000000
+3 25 3 0.000000 0.454661 0.000000
+3 25 4 0.000000 0.459433 0.000000
+3 25 5 0.000000 0.465453 0.000000
+3 25 6 0.000000 0.472310 0.000000
+3 25 7 0.000000 0.482801 0.032226
+3 25 8 0.000000 0.493414 0.144359
+3 25 9 0.000000 0.504391 0.185337
+3 25 10 0.000000 0.516887 0.233899
+3 25 11 0.000000 0.532725 0.299148
+3 25 12 0.000000 0.547429 0.360591
+3 25 13 0.000000 0.560242 0.415693
+3 25 14 0.000000 0.572189 0.469900
+3 25 15 0.000000 0.583025 0.522957
+3 25 16 0.000000 0.592714 0.570693
+3 25 17 0.000000 0.601256 0.613110
+3 25 18 0.000000 0.608594 0.650982
+3 25 19 0.000000 0.614995 0.685320
+3 25 20 0.000000 0.620403 0.714885
+3 25 21 0.000000 0.625213 0.741587
+3 25 22 0.000000 0.628738 0.760779
+3 25 23 0.000000 0.631678 0.776559
+3 25 24 0.000000 0.635131 0.789751
+3 25 25 0.000000 0.638754 0.802079
+3 25 26 0.000000 0.642854 0.809223
+3 25 27 0.000000 0.647063 0.815169
+3 25 28 0.000000 0.649882 0.819140
+3 25 29 0.000000 0.652503 0.822828
+3 25 30 0.000000 0.654595 0.825644
+3 25 31 0.000000 0.656652 0.828402
+3 26 0 0.000000 0.453900 0.000000
+3 26 1 0.000000 0.458137 0.000000
+3 26 2 0.000000 0.462437 0.000000
+3 26 3 0.000000 0.467666 0.000000
+3 26 4 0.000000 0.473203 0.000000
+3 26 5 0.000000 0.480895 0.000000
+3 26 6 0.000000 0.489095 0.000000
+3 26 7 0.000000 0.499496 0.046370
+3 26 8 0.000000 0.510069 0.167866
+3 26 9 0.000000 0.521157 0.210560
+3 26 10 0.000000 0.533566 0.259707
+3 26 11 0.000000 0.548880 0.323047
+3 26 12 0.000000 0.563118 0.383031
+3 26 13 0.000000 0.575564 0.437421
+3 26 14 0.000000 0.586966 0.490359
+3 26 15 0.000000 0.597026 0.541430
+3 26 16 0.000000 0.606105 0.587371
+3 26 17 0.000000 0.614203 0.628181
+3 26 18 0.000000 0.621117 0.664718
+3 26 19 0.000000 0.627111 0.697931
+3 26 20 0.000000 0.632253 0.725966
+3 26 21 0.000000 0.636884 0.750893
+3 26 22 0.000000 0.640307 0.768968
+3 26 23 0.000000 0.643179 0.783929
+3 26 24 0.000000 0.646529 0.796709
+3 26 25 0.000000 0.650038 0.808761
+3 26 26 0.000000 0.654004 0.815370
+3 26 27 0.000000 0.658076 0.820723
+3 26 28 0.000000 0.660846 0.824616
+3 26 29 0.000000 0.663431 0.828301
+3 26 30 0.000000 0.665439 0.831093
+3 26 31 0.000000 0.667408 0.833826
+3 27 0 0.000000 0.465476 0.000000
+3 27 1 0.000000 0.469671 0.000000
+3 27 2 0.000000 0.473969 0.000000
+3 27 3 0.000000 0.479804 0.000000
+3 27 4 0.000000 0.486131 0.000000
+3 27 5 0.000000 0.495891 0.000000
+3 27 6 0.000000 0.505772 0.000000
+3 27 7 0.000000 0.516173 0.061061
+3 27 8 0.000000 0.526769 0.192398
+3 27 9 0.000000 0.537952 0.237347
+3 27 10 0.000000 0.550220 0.287308
+3 27 11 0.000000 0.564875 0.348298
+3 27 12 0.000000 0.578561 0.406547
+3 27 13 0.000000 0.590631 0.460227
+3 27 14 0.000000 0.601451 0.511820
+3 27 15 0.000000 0.610665 0.560728
+3 27 16 0.000000 0.619086 0.604762
+3 27 17 0.000000 0.626714 0.643922
+3 27 18 0.000000 0.633158 0.679079
+3 27 19 0.000000 0.638681 0.711122
+3 27 20 0.000000 0.643503 0.737483
+3 27 21 0.000000 0.647904 0.760436
+3 27 22 0.000000 0.651219 0.777313
+3 27 23 0.000000 0.654040 0.791428
+3 27 24 0.000000 0.657345 0.803855
+3 27 25 0.000000 0.660812 0.815719
+3 27 26 0.000000 0.664651 0.821715
+3 27 27 0.000000 0.668577 0.826358
+3 27 28 0.000000 0.671367 0.830208
+3 27 29 0.000000 0.673994 0.833945
+3 27 30 0.000000 0.675965 0.836740
+3 27 31 0.000000 0.677891 0.839473
+3 28 0 0.000000 0.473458 0.000000
+3 28 1 0.000000 0.477685 0.000000
+3 28 2 0.000000 0.482015 0.000000
+3 28 3 0.000000 0.487889 0.000000
+3 28 4 0.000000 0.494323 0.000000
+3 28 5 0.000000 0.504671 0.000000
+3 28 6 0.000000 0.515261 0.000000
+3 28 7 0.000000 0.526896 0.070811
+3 28 8 0.000000 0.538452 0.208911
+3 28 9 0.000000 0.549774 0.256279
+3 28 10 0.000000 0.561981 0.307273
+3 28 11 0.000000 0.576135 0.366242
+3 28 12 0.000000 0.589383 0.423054
+3 28 13 0.000000 0.601122 0.476271
+3 28 14 0.000000 0.611550 0.527037
+3 28 15 0.000000 0.620292 0.574651
+3 28 16 0.000000 0.628301 0.617587
+3 28 17 0.000000 0.635578 0.655845
+3 28 18 0.000000 0.641650 0.689898
+3 28 19 0.000000 0.646786 0.720680
+3 28 20 0.000000 0.651342 0.745924
+3 28 21 0.000000 0.655549 0.767844
+3 28 22 0.000000 0.658799 0.784017
+3 28 23 0.000000 0.661614 0.797578
+3 28 24 0.000000 0.664852 0.809416
+3 28 25 0.000000 0.668231 0.820681
+3 28 26 0.000000 0.672039 0.826494
+3 28 27 0.000000 0.675947 0.831048
+3 28 28 0.000000 0.678706 0.834565
+3 28 29 0.000000 0.681302 0.837934
+3 28 30 0.000000 0.683258 0.840671
+3 28 31 0.000000 0.685171 0.843367
+3 29 0 0.000000 0.480927 0.000000
+3 29 1 0.000000 0.485196 0.000000
+3 29 2 0.000000 0.489563 0.000000
+3 29 3 0.000000 0.495395 0.000000
+3 29 4 0.000000 0.501839 0.000000
+3 29 5 0.000000 0.512563 0.000000
+3 29 6 0.000000 0.523722 0.000000
+3 29 7 0.000000 0.536768 0.079854
+3 29 8 0.000000 0.549419 0.224277
+3 29 9 0.000000 0.560886 0.274090
+3 29 10 0.000000 0.573043 0.326148
+3 29 11 0.000000 0.586718 0.383142
+3 29 12 0.000000 0.599545 0.438559
+3 29 13 0.000000 0.610959 0.491349
+3 29 14 0.000000 0.621021 0.541362
+3 29 15 0.000000 0.629345 0.587805
+3 29 16 0.000000 0.636978 0.629759
+3 29 17 0.000000 0.643921 0.667223
+3 29 18 0.000000 0.649636 0.700211
+3 29 19 0.000000 0.654396 0.729720
+3 29 20 0.000000 0.658693 0.753924
+3 29 21 0.000000 0.662712 0.774947
+3 29 22 0.000000 0.665904 0.790487
+3 29 23 0.000000 0.668718 0.803535
+3 29 24 0.000000 0.671886 0.814752
+3 29 25 0.000000 0.675170 0.825359
+3 29 26 0.000000 0.678961 0.831048
+3 29 27 0.000000 0.682869 0.835602
+3 29 28 0.000000 0.685591 0.838745
+3 29 29 0.000000 0.688144 0.841686
+3 29 30 0.000000 0.690089 0.844357
+3 29 31 0.000000 0.691994 0.847010
+3 30 0 0.000000 0.486688 0.000000
+3 30 1 0.000000 0.490920 0.000000
+3 30 2 0.000000 0.495255 0.000000
+3 30 3 0.000000 0.501124 0.000000
+3 30 4 0.000000 0.507592 0.000000
+3 30 5 0.000000 0.518251 0.000000
+3 30 6 0.000000 0.529606 0.000000
+3 30 7 0.000000 0.543974 0.086700
+3 30 8 0.000000 0.557650 0.235903
+3 30 9 0.000000 0.569255 0.287544
+3 30 10 0.000000 0.581417 0.340446
+3 30 11 0.000000 0.594805 0.396122
+3 30 12 0.000000 0.607362 0.450610
+3 30 13 0.000000 0.618532 0.503118
+3 30 14 0.000000 0.628346 0.552610
+3 30 15 0.000000 0.636419 0.598226
+3 30 16 0.000000 0.643720 0.639301
+3 30 17 0.000000 0.650250 0.675834
+3 30 18 0.000000 0.655600 0.707875
+3 30 19 0.000000 0.660032 0.736422
+3 30 20 0.000000 0.664113 0.759900
+3 30 21 0.000000 0.667984 0.780338
+3 30 22 0.000000 0.671223 0.795398
+3 30 23 0.000000 0.674174 0.808013
+3 30 24 0.000000 0.677269 0.818730
+3 30 25 0.000000 0.680412 0.828815
+3 30 26 0.000000 0.684208 0.834446
+3 30 27 0.000000 0.688156 0.839048
+3 30 28 0.000000 0.690881 0.842131
+3 30 29 0.000000 0.693431 0.844998
+3 30 30 0.000000 0.695338 0.847413
+3 30 31 0.000000 0.697202 0.849799
+3 31 0 0.000000 0.492335 0.000000
+3 31 1 0.000000 0.496525 0.000000
+3 31 2 0.000000 0.500822 0.000000
+3 31 3 0.000000 0.506734 0.000000
+3 31 4 0.000000 0.513227 0.000000
+3 31 5 0.000000 0.523793 0.000000
+3 31 6 0.000000 0.535318 0.000000
+3 31 7 0.000000 0.551002 0.093399
+3 31 8 0.000000 0.565700 0.247280
+3 31 9 0.000000 0.577441 0.300707
+3 31 10 0.000000 0.589611 0.354439
+3 31 11 0.000000 0.602727 0.408841
+3 31 12 0.000000 0.615023 0.462431
+3 31 13 0.000000 0.625953 0.514665
+3 31 14 0.000000 0.635528 0.563653
+3 31 15 0.000000 0.643361 0.608465
+3 31 16 0.000000 0.650333 0.648668
+3 31 17 0.000000 0.656445 0.684260
+3 31 18 0.000000 0.661429 0.715361
+3 31 19 0.000000 0.665536 0.742968
+3 31 20 0.000000 0.669405 0.765741
+3 31 21 0.000000 0.673131 0.785615
+3 31 22 0.000000 0.676424 0.800204
+3 31 23 0.000000 0.679521 0.812392
+3 31 24 0.000000 0.682543 0.822618
+3 31 25 0.000000 0.685540 0.832190
+3 31 26 0.000000 0.689343 0.837766
+3 31 27 0.000000 0.693333 0.842421
+3 31 28 0.000000 0.696064 0.845465
+3 31 29 0.000000 0.698614 0.848280
+3 31 30 0.000000 0.700481 0.850428
+3 31 31 0.000000 0.702303 0.852532
+4 0 0 0.045403 0.039257 0.028316
+4 0 1 0.045732 0.039257 0.030137
+4 0 2 0.046061 0.039257 0.031994
+4 0 3 0.046411 0.039257 0.034374
+4 0 4 0.046722 0.039280 0.036851
+4 0 5 0.046755 0.039462 0.040006
+4 0 6 0.046622 0.039644 0.043390
+4 0 7 0.045774 0.039826 0.047762
+4 0 8 0.045181 0.039823 0.053290
+4 0 9 0.045350 0.039265 0.062286
+4 0 10 0.043282 0.038753 0.078391
+4 0 11 0.036292 0.038341 0.110135
+4 0 12 0.030794 0.037042 0.141473
+4 0 13 0.027786 0.034262 0.172136
+4 0 14 0.031875 0.024835 0.206284
+4 0 15 0.045091 0.006859 0.244915
+4 0 16 0.055944 0.000000 0.280017
+4 0 17 0.064433 0.000000 0.311590
+4 0 18 0.074889 0.000000 0.341389
+4 0 19 0.086874 0.000000 0.369806
+4 0 20 0.095826 0.000000 0.394853
+4 0 21 0.102959 0.000000 0.417876
+4 0 22 0.107986 0.000000 0.438988
+4 0 23 0.112056 0.000000 0.459232
+4 0 24 0.111420 0.000000 0.484650
+4 0 25 0.109216 0.000000 0.511792
+4 0 26 0.017687 0.000000 0.544831
+4 0 27 0.000000 0.000000 0.579231
+4 0 28 0.000000 0.000000 0.601872
+4 0 29 0.000000 0.000000 0.622832
+4 0 30 0.000000 0.075268 0.638317
+4 0 31 0.000000 0.171452 0.653437
+4 1 0 0.047427 0.041090 0.028122
+4 1 1 0.046979 0.041178 0.030231
+4 1 2 0.046581 0.041261 0.032358
+4 1 3 0.046925 0.041261 0.034738
+4 1 4 0.047230 0.041283 0.037215
+4 1 5 0.047263 0.041466 0.040370
+4 1 6 0.047179 0.041701 0.044054
+4 1 7 0.046588 0.042165 0.050024
+4 1 8 0.045992 0.042420 0.056702
+4 1 9 0.045379 0.042050 0.065505
+4 1 10 0.042881 0.041728 0.081623
+4 1 11 0.036235 0.041511 0.113837
+4 1 12 0.031051 0.040509 0.145789
+4 1 13 0.028305 0.038199 0.177304
+4 1 14 0.032354 0.030023 0.212011
+4 1 15 0.045137 0.014304 0.250824
+4 1 16 0.055599 0.000000 0.286349
+4 1 17 0.063738 0.000000 0.318586
+4 1 18 0.073844 0.000000 0.348679
+4 1 19 0.085479 0.000000 0.377102
+4 1 20 0.094136 0.000000 0.402382
+4 1 21 0.101007 0.000000 0.425775
+4 1 22 0.105711 0.000000 0.446616
+4 1 23 0.109430 0.000000 0.466295
+4 1 24 0.088231 0.000000 0.490373
+4 1 25 0.058726 0.000000 0.515918
+4 1 26 0.000000 0.000000 0.548662
+4 1 27 0.000000 0.000000 0.583068
+4 1 28 0.000000 0.000000 0.605781
+4 1 29 0.000000 0.000000 0.626823
+4 1 30 0.000000 0.083466 0.642313
+4 1 31 0.000000 0.179649 0.657433
+4 2 0 0.049474 0.042968 0.027917
+4 2 1 0.048297 0.043133 0.030302
+4 2 2 0.047212 0.043288 0.032689
+4 2 3 0.047497 0.043294 0.035099
+4 2 4 0.047749 0.043322 0.037601
+4 2 5 0.047777 0.043504 0.040757
+4 2 6 0.047736 0.043793 0.044740
+4 2 7 0.047397 0.044545 0.052309
+4 2 8 0.046793 0.045065 0.060144
+4 2 9 0.045392 0.044889 0.068776
+4 2 10 0.042458 0.044764 0.084925
+4 2 11 0.036152 0.044752 0.117609
+4 2 12 0.031212 0.044057 0.150185
+4 2 13 0.028550 0.042224 0.182580
+4 2 14 0.032534 0.035321 0.217861
+4 2 15 0.045064 0.021900 0.256851
+4 2 16 0.055224 0.000000 0.292805
+4 2 17 0.063013 0.000000 0.325724
+4 2 18 0.072768 0.000000 0.356117
+4 2 19 0.084053 0.000000 0.384547
+4 2 20 0.092408 0.000000 0.410064
+4 2 21 0.099005 0.000000 0.433833
+4 2 22 0.103376 0.000000 0.454399
+4 2 23 0.106735 0.000000 0.473509
+4 2 24 0.065900 0.000000 0.496303
+4 2 25 0.010335 0.000000 0.520324
+4 2 26 0.000000 0.000000 0.552702
+4 2 27 0.000000 0.000000 0.587007
+4 2 28 0.000000 0.000000 0.609775
+4 2 29 0.000000 0.000000 0.630895
+4 2 30 0.000000 0.091834 0.646384
+4 2 31 0.000000 0.188018 0.661499
+4 3 0 0.051859 0.045519 0.027553
+4 3 1 0.050677 0.045596 0.030026
+4 3 2 0.049532 0.045674 0.032525
+4 3 3 0.048941 0.045774 0.035404
+4 3 4 0.048417 0.045883 0.038318
+4 3 5 0.048363 0.046059 0.041474
+4 3 6 0.048289 0.046413 0.045758
+4 3 7 0.048131 0.047542 0.054931
+4 3 8 0.047442 0.048416 0.064016
+4 3 9 0.045161 0.048528 0.072837
+4 3 10 0.041707 0.048717 0.089263
+4 3 11 0.035675 0.049075 0.122424
+4 3 12 0.029932 0.048823 0.155789
+4 3 13 0.024672 0.047553 0.189494
+4 3 14 0.028253 0.042248 0.225558
+4 3 15 0.043200 0.031754 0.264654
+4 3 16 0.054389 0.004948 0.301129
+4 3 17 0.061823 0.000000 0.334982
+4 3 18 0.071226 0.000000 0.365784
+4 3 19 0.082160 0.000000 0.394213
+4 3 20 0.090110 0.000000 0.420024
+4 3 21 0.096270 0.000000 0.444264
+4 3 22 0.100147 0.000000 0.464524
+4 3 23 0.102986 0.000000 0.482976
+4 3 24 0.056438 0.000000 0.505318
+4 3 25 0.000000 0.000000 0.528958
+4 3 26 0.000000 0.000000 0.559884
+4 3 27 0.000000 0.000000 0.592490
+4 3 28 0.000000 0.000000 0.615052
+4 3 29 0.000000 0.008022 0.636177
+4 3 30 0.000000 0.102770 0.651585
+4 3 31 0.000000 0.198960 0.666611
+4 4 0 0.053977 0.048040 0.027231
+4 4 1 0.052790 0.048051 0.029781
+4 4 2 0.051592 0.048072 0.032379
+4 4 3 0.050224 0.048254 0.035692
+4 4 4 0.048998 0.048444 0.039008
+4 4 5 0.048768 0.048693 0.042347
+4 4 6 0.048579 0.049171 0.047043
+4 4 7 0.048569 0.050640 0.057620
+4 4 8 0.047782 0.051842 0.067840
+4 4 9 0.044667 0.052244 0.076993
+4 4 10 0.040624 0.052764 0.093850
+4 4 11 0.034538 0.053541 0.127655
+4 4 12 0.026466 0.053785 0.161917
+4 4 13 0.015083 0.053139 0.196940
+4 4 14 0.017819 0.049427 0.233815
+4 4 15 0.038707 0.041773 0.273072
+4 4 16 0.052730 0.029537 0.310092
+4 4 17 0.059889 0.012717 0.344873
+4 4 18 0.068980 0.000000 0.376112
+4 4 19 0.079575 0.000000 0.404598
+4 4 20 0.087102 0.000000 0.430738
+4 4 21 0.092790 0.000000 0.455471
+4 4 22 0.096119 0.000000 0.475485
+4 4 23 0.098376 0.000000 0.493354
+4 4 24 0.046756 0.000000 0.515292
+4 4 25 0.000000 0.000000 0.538586
+4 4 26 0.000000 0.000000 0.567877
+4 4 27 0.000000 0.000000 0.598551
+4 4 28 0.000000 0.000000 0.620854
+4 4 29 0.000000 0.019405 0.641962
+4 4 30 0.000000 0.114537 0.657306
+4 4 31 0.000000 0.210731 0.672267
+4 5 0 0.054229 0.050355 0.027208
+4 5 1 0.053042 0.050454 0.029758
+4 5 2 0.051838 0.050558 0.032367
+4 5 3 0.050376 0.050733 0.035855
+4 5 4 0.048965 0.050997 0.039509
+4 5 5 0.047902 0.051880 0.044316
+4 5 6 0.047021 0.052890 0.050203
+4 5 7 0.046929 0.054446 0.060774
+4 5 8 0.045955 0.055791 0.071326
+4 5 9 0.042338 0.056500 0.081822
+4 5 10 0.037217 0.057469 0.100173
+4 5 11 0.028787 0.059010 0.135804
+4 5 12 0.007700 0.060122 0.171719
+4 5 13 0.000000 0.060516 0.208107
+4 5 14 0.000000 0.058366 0.245989
+4 5 15 0.015824 0.052945 0.285792
+4 5 16 0.045298 0.044943 0.323528
+4 5 17 0.052744 0.034362 0.359198
+4 5 18 0.061811 0.000000 0.391077
+4 5 19 0.072137 0.000000 0.420009
+4 5 20 0.079120 0.000000 0.446727
+4 5 21 0.084096 0.000000 0.472119
+4 5 22 0.086500 0.000000 0.492301
+4 5 23 0.087735 0.000000 0.510115
+4 5 24 0.035536 0.000000 0.531973
+4 5 25 0.000000 0.000000 0.555180
+4 5 26 0.000000 0.000000 0.581551
+4 5 27 0.000000 0.000000 0.608652
+4 5 28 0.000000 0.000000 0.630345
+4 5 29 0.000000 0.036431 0.651264
+4 5 30 0.000000 0.132125 0.666679
+4 5 31 0.000000 0.228313 0.681728
+4 6 0 0.054497 0.053090 0.027154
+4 6 1 0.053310 0.053420 0.029793
+4 6 2 0.052101 0.053741 0.032493
+4 6 3 0.050564 0.053928 0.036125
+4 6 4 0.048995 0.054271 0.040059
+4 6 5 0.047208 0.055704 0.046112
+4 6 6 0.045676 0.057203 0.053086
+4 6 7 0.045254 0.058990 0.064057
+4 6 8 0.043898 0.060597 0.075284
+4 6 9 0.039742 0.061661 0.087277
+4 6 10 0.033470 0.063155 0.107281
+4 6 11 0.022546 0.065599 0.144907
+4 6 12 0.000000 0.067671 0.182636
+4 6 13 0.000000 0.069123 0.220538
+4 6 14 0.000000 0.068601 0.259528
+4 6 15 0.000000 0.065539 0.299917
+4 6 16 0.036301 0.061588 0.338396
+4 6 17 0.044360 0.056747 0.374964
+4 6 18 0.053497 0.007897 0.407628
+4 6 19 0.063474 0.000000 0.437255
+4 6 20 0.069913 0.000000 0.464635
+4 6 21 0.074230 0.000000 0.490667
+4 6 22 0.075721 0.000000 0.511079
+4 6 23 0.075928 0.000000 0.528937
+4 6 24 0.023171 0.000000 0.550608
+4 6 25 0.000000 0.000000 0.573549
+4 6 26 0.000000 0.000000 0.597511
+4 6 27 0.000000 0.000000 0.621710
+4 6 28 0.000000 0.000000 0.642381
+4 6 29 0.000000 0.071447 0.662548
+4 6 30 0.000000 0.159810 0.677554
+4 6 31 0.000000 0.248166 0.692215
+4 7 0 0.054836 0.057644 0.026972
+4 7 1 0.053649 0.058827 0.030081
+4 7 2 0.052440 0.059952 0.033222
+4 7 3 0.050903 0.060227 0.036853
+4 7 4 0.049302 0.060669 0.040823
+4 7 5 0.047258 0.062284 0.047158
+4 7 6 0.045254 0.064091 0.054767
+4 7 7 0.043426 0.066731 0.067900
+4 7 8 0.040842 0.069118 0.081290
+4 7 9 0.035991 0.070745 0.095446
+4 7 10 0.028256 0.073096 0.117788
+4 7 11 0.014174 0.077038 0.158140
+4 7 12 0.000000 0.080471 0.198385
+4 7 13 0.000000 0.083058 0.238449
+4 7 14 0.000000 0.084449 0.278987
+4 7 15 0.000000 0.084302 0.320135
+4 7 16 0.020523 0.083598 0.359462
+4 7 17 0.030600 0.082336 0.396971
+4 7 18 0.040224 0.062407 0.431047
+4 7 19 0.049494 0.027959 0.462455
+4 7 20 0.055399 0.016010 0.490855
+4 7 21 0.059284 0.017558 0.517451
+4 7 22 0.059914 0.020821 0.538363
+4 7 23 0.059065 0.024861 0.556691
+4 7 24 0.005843 0.034329 0.577703
+4 7 25 0.000000 0.045606 0.599610
+4 7 26 0.000000 0.065658 0.623379
+4 7 27 0.000000 0.087736 0.647577
+4 7 28 0.000000 0.134327 0.665451
+4 7 29 0.000000 0.184420 0.682422
+4 7 30 0.000000 0.231248 0.694936
+4 7 31 0.000000 0.277859 0.707153
+4 8 0 0.055316 0.062768 0.026235
+4 8 1 0.053933 0.064471 0.029884
+4 8 2 0.052537 0.066103 0.033542
+4 8 3 0.050936 0.066684 0.037340
+4 8 4 0.049229 0.067430 0.041499
+4 8 5 0.046781 0.069339 0.048193
+4 8 6 0.044195 0.071558 0.056459
+4 8 7 0.041005 0.075119 0.071544
+4 8 8 0.037028 0.078320 0.086849
+4 8 9 0.030688 0.080441 0.102814
+4 8 10 0.019246 0.083615 0.127239
+4 8 11 0.000000 0.089105 0.170274
+4 8 12 0.000000 0.093976 0.212976
+4 8 13 0.000000 0.097815 0.255122
+4 8 14 0.000000 0.101050 0.297143
+4 8 15 0.000000 0.103509 0.339005
+4 8 16 0.000000 0.105639 0.379184
+4 8 17 0.002157 0.107440 0.417681
+4 8 18 0.010856 0.109538 0.453111
+4 8 19 0.018470 0.111866 0.486156
+4 8 20 0.023263 0.114380 0.515407
+4 8 21 0.026365 0.117006 0.542381
+4 8 22 0.026351 0.122342 0.563591
+4 8 23 0.024922 0.128910 0.582183
+4 8 24 0.000000 0.144191 0.602468
+4 8 25 0.000000 0.162377 0.623319
+4 8 26 0.000000 0.194736 0.646503
+4 8 27 0.000000 0.230367 0.670225
+4 8 28 0.000000 0.253305 0.685695
+4 8 29 0.000000 0.274430 0.699986
+4 8 30 0.000000 0.289984 0.710416
+4 8 31 0.000000 0.305167 0.720587
+4 9 0 0.056218 0.069602 0.023831
+4 9 1 0.054054 0.070829 0.028233
+4 9 2 0.051908 0.072075 0.032638
+4 9 3 0.050050 0.073614 0.037099
+4 9 4 0.048013 0.075278 0.041914
+4 9 5 0.044724 0.077817 0.049195
+4 9 6 0.041224 0.080760 0.058187
+4 9 7 0.036810 0.085449 0.074588
+4 9 8 0.030945 0.089567 0.091068
+4 9 9 0.020728 0.091970 0.107786
+4 9 10 0.000000 0.095869 0.133525
+4 9 11 0.000000 0.103058 0.179111
+4 9 12 0.000000 0.109591 0.224096
+4 9 13 0.000000 0.115035 0.268079
+4 9 14 0.000000 0.119907 0.311390
+4 9 15 0.000000 0.124047 0.353833
+4 9 16 0.000000 0.127775 0.394871
+4 9 17 0.000000 0.131093 0.434502
+4 9 18 0.000000 0.134531 0.471109
+4 9 19 0.000000 0.138064 0.505365
+4 9 20 0.000000 0.141276 0.534955
+4 9 21 0.000000 0.144295 0.561747
+4 9 22 0.000000 0.149686 0.582655
+4 9 23 0.000000 0.156154 0.600888
+4 9 24 0.000000 0.170771 0.620243
+4 9 25 0.000000 0.188104 0.639971
+4 9 26 0.000000 0.219032 0.661397
+4 9 27 0.000000 0.253098 0.683215
+4 9 28 0.000000 0.275182 0.697459
+4 9 29 0.000000 0.295555 0.710622
+4 9 30 0.000000 0.310616 0.720188
+4 9 31 0.000000 0.325323 0.729514
+4 10 0 0.051848 0.081475 0.000708
+4 10 1 0.049173 0.082553 0.010221
+4 10 2 0.046385 0.083705 0.019789
+4 10 3 0.041905 0.085987 0.030196
+4 10 4 0.036508 0.088398 0.040391
+4 10 5 0.024691 0.091713 0.049096
+4 10 6 0.014187 0.095480 0.059512
+4 10 7 0.009374 0.101208 0.077347
+4 10 8 0.003063 0.106284 0.095260
+4 10 9 0.000000 0.109408 0.113408
+4 10 10 0.000000 0.114260 0.140779
+4 10 11 0.000000 0.122909 0.188444
+4 10 12 0.000000 0.130871 0.235271
+4 10 13 0.000000 0.137685 0.280702
+4 10 14 0.000000 0.143902 0.325222
+4 10 15 0.000000 0.149349 0.368569
+4 10 16 0.000000 0.154385 0.410522
+4 10 17 0.000000 0.159009 0.451080
+4 10 18 0.000000 0.163602 0.488629
+4 10 19 0.000000 0.168170 0.523837
+4 10 20 0.000000 0.172064 0.553796
+4 10 21 0.000000 0.175555 0.580603
+4 10 22 0.000000 0.180985 0.601332
+4 10 23 0.000000 0.187296 0.619298
+4 10 24 0.000000 0.201173 0.637808
+4 10 25 0.000000 0.217571 0.656501
+4 10 26 0.000000 0.246467 0.676040
+4 10 27 0.000000 0.278246 0.695775
+4 10 28 0.000000 0.299078 0.708824
+4 10 29 0.000000 0.318346 0.720917
+4 10 30 0.000000 0.332702 0.729760
+4 10 31 0.000000 0.346731 0.738386
+4 11 0 0.035875 0.104434 0.000000
+4 11 1 0.033288 0.106081 0.000000
+4 11 2 0.030093 0.107785 0.000000
+4 11 3 0.017790 0.110337 0.008634
+4 11 4 0.002368 0.113121 0.034604
+4 11 5 0.000000 0.117528 0.046570
+4 11 6 0.000000 0.122339 0.059953
+4 11 7 0.000000 0.128907 0.079480
+4 11 8 0.000000 0.135035 0.099392
+4 11 9 0.000000 0.139846 0.120461
+4 11 10 0.000000 0.146150 0.150166
+4 11 11 0.000000 0.155740 0.198870
+4 11 12 0.000000 0.164611 0.246568
+4 11 13 0.000000 0.172284 0.292588
+4 11 14 0.000000 0.179197 0.338143
+4 11 15 0.000000 0.185132 0.383101
+4 11 16 0.000000 0.190835 0.426094
+4 11 17 0.000000 0.196306 0.467122
+4 11 18 0.000000 0.201643 0.505095
+4 11 19 0.000000 0.206875 0.540692
+4 11 20 0.000000 0.211418 0.571078
+4 11 21 0.000000 0.215549 0.598338
+4 11 22 0.000000 0.220985 0.619160
+4 11 23 0.000000 0.227014 0.637056
+4 11 24 0.000000 0.239983 0.654914
+4 11 25 0.000000 0.255265 0.672760
+4 11 26 0.000000 0.280805 0.690130
+4 11 27 0.000000 0.308711 0.707390
+4 11 28 0.000000 0.327413 0.719307
+4 11 29 0.000000 0.344801 0.730460
+4 11 30 0.000000 0.357988 0.738892
+4 11 31 0.000000 0.370894 0.747142
+4 12 0 0.000000 0.128600 0.000000
+4 12 1 0.000000 0.130710 0.000000
+4 12 2 0.000000 0.132867 0.000000
+4 12 3 0.000000 0.135731 0.000000
+4 12 4 0.000000 0.138904 0.027553
+4 12 5 0.000000 0.144239 0.042985
+4 12 6 0.000000 0.149997 0.059547
+4 12 7 0.000000 0.157586 0.081011
+4 12 8 0.000000 0.164850 0.102985
+4 12 9 0.000000 0.171140 0.126490
+4 12 10 0.000000 0.178732 0.158294
+4 12 11 0.000000 0.189189 0.208356
+4 12 12 0.000000 0.198952 0.257308
+4 12 13 0.000000 0.207556 0.304410
+4 12 14 0.000000 0.215261 0.351153
+4 12 15 0.000000 0.221813 0.397434
+4 12 16 0.000000 0.228177 0.441519
+4 12 17 0.000000 0.234355 0.483408
+4 12 18 0.000000 0.240312 0.521871
+4 12 19 0.000000 0.246095 0.557671
+4 12 20 0.000000 0.251124 0.588430
+4 12 21 0.000000 0.255699 0.616164
+4 12 22 0.000000 0.261029 0.636948
+4 12 23 0.000000 0.266703 0.654573
+4 12 24 0.000000 0.278689 0.671833
+4 12 25 0.000000 0.292778 0.688972
+4 12 26 0.000000 0.315351 0.704521
+4 12 27 0.000000 0.339882 0.719703
+4 12 28 0.000000 0.356701 0.730475
+4 12 29 0.000000 0.372418 0.740618
+4 12 30 0.000000 0.384448 0.748405
+4 12 31 0.000000 0.396232 0.756034
+4 13 0 0.000000 0.154779 0.000000
+4 13 1 0.000000 0.157171 0.000000
+4 13 2 0.000000 0.159616 0.000000
+4 13 3 0.000000 0.162862 0.000000
+4 13 4 0.000000 0.166452 0.018392
+4 13 5 0.000000 0.172445 0.037633
+4 13 6 0.000000 0.178986 0.057730
+4 13 7 0.000000 0.187897 0.081539
+4 13 8 0.000000 0.196436 0.105678
+4 13 9 0.000000 0.203861 0.130812
+4 13 10 0.000000 0.212466 0.164325
+4 13 11 0.000000 0.223669 0.216274
+4 13 12 0.000000 0.234293 0.267119
+4 13 13 0.000000 0.243949 0.316125
+4 13 14 0.000000 0.252609 0.364310
+4 13 15 0.000000 0.259988 0.411438
+4 13 16 0.000000 0.267005 0.456701
+4 13 17 0.000000 0.273659 0.500100
+4 13 18 0.000000 0.280029 0.539164
+4 13 19 0.000000 0.286176 0.574858
+4 13 20 0.000000 0.291415 0.605897
+4 13 21 0.000000 0.296108 0.634144
+4 13 22 0.000000 0.301148 0.654671
+4 13 23 0.000000 0.306346 0.671689
+4 13 24 0.000000 0.317221 0.688441
+4 13 25 0.000000 0.329988 0.705104
+4 13 26 0.000000 0.350245 0.719412
+4 13 27 0.000000 0.372232 0.733178
+4 13 28 0.000000 0.387576 0.742786
+4 13 29 0.000000 0.401970 0.751801
+4 13 30 0.000000 0.412865 0.758553
+4 13 31 0.000000 0.423527 0.765154
+4 14 0 0.000000 0.186910 0.000000
+4 14 1 0.000000 0.189419 0.000000
+4 14 2 0.000000 0.191985 0.000000
+4 14 3 0.000000 0.195405 0.000000
+4 14 4 0.000000 0.199192 0.000000
+4 14 5 0.000000 0.205554 0.000000
+4 14 6 0.000000 0.212564 0.019748
+4 14 7 0.000000 0.222383 0.065847
+4 14 8 0.000000 0.231805 0.107181
+4 14 9 0.000000 0.240034 0.134220
+4 14 10 0.000000 0.249441 0.169634
+4 14 11 0.000000 0.261437 0.223472
+4 14 12 0.000000 0.272898 0.276083
+4 14 13 0.000000 0.283467 0.326649
+4 14 14 0.000000 0.293059 0.376417
+4 14 15 0.000000 0.301395 0.425159
+4 14 16 0.000000 0.309089 0.471659
+4 14 17 0.000000 0.316140 0.515915
+4 14 18 0.000000 0.322892 0.555323
+4 14 19 0.000000 0.329411 0.590959
+4 14 20 0.000000 0.334755 0.622106
+4 14 21 0.000000 0.339394 0.650559
+4 14 22 0.000000 0.344064 0.671084
+4 14 23 0.000000 0.348747 0.688005
+4 14 24 0.000000 0.358503 0.704531
+4 14 25 0.000000 0.369950 0.720926
+4 14 26 0.000000 0.387628 0.733882
+4 14 27 0.000000 0.406744 0.746044
+4 14 28 0.000000 0.420002 0.754321
+4 14 29 0.000000 0.432424 0.762042
+4 14 30 0.000000 0.442021 0.767938
+4 14 31 0.000000 0.451429 0.773711
+4 15 0 0.000000 0.226692 0.000000
+4 15 1 0.000000 0.229107 0.000000
+4 15 2 0.000000 0.231579 0.000000
+4 15 3 0.000000 0.234905 0.000000
+4 15 4 0.000000 0.238610 0.000000
+4 15 5 0.000000 0.244965 0.000000
+4 15 6 0.000000 0.252040 0.000000
+4 15 7 0.000000 0.262236 0.029302
+4 15 8 0.000000 0.272035 0.107153
+4 15 9 0.000000 0.280647 0.136455
+4 15 10 0.000000 0.290582 0.174016
+4 15 11 0.000000 0.303431 0.229746
+4 15 12 0.000000 0.315700 0.283959
+4 15 13 0.000000 0.327003 0.335641
+4 15 14 0.000000 0.337499 0.387175
+4 15 15 0.000000 0.346957 0.438520
+4 15 16 0.000000 0.355359 0.486329
+4 15 17 0.000000 0.362704 0.530604
+4 15 18 0.000000 0.369799 0.570023
+4 15 19 0.000000 0.376701 0.605665
+4 15 20 0.000000 0.382016 0.636697
+4 15 21 0.000000 0.386379 0.664962
+4 15 22 0.000000 0.390575 0.685812
+4 15 23 0.000000 0.394694 0.703291
+4 15 24 0.000000 0.403322 0.719957
+4 15 25 0.000000 0.413453 0.736351
+4 15 26 0.000000 0.428210 0.747809
+4 15 27 0.000000 0.444034 0.758127
+4 15 28 0.000000 0.454424 0.764857
+4 15 29 0.000000 0.464038 0.771074
+4 15 30 0.000000 0.472126 0.776341
+4 15 31 0.000000 0.480112 0.781544
+4 16 0 0.000000 0.262029 0.000000
+4 16 1 0.000000 0.264541 0.000000
+4 16 2 0.000000 0.267110 0.000000
+4 16 3 0.000000 0.270533 0.000000
+4 16 4 0.000000 0.274335 0.000000
+4 16 5 0.000000 0.280791 0.000000
+4 16 6 0.000000 0.288000 0.000000
+4 16 7 0.000000 0.298478 0.010622
+4 16 8 0.000000 0.308630 0.106687
+4 16 9 0.000000 0.317805 0.137968
+4 16 10 0.000000 0.328309 0.177421
+4 16 11 0.000000 0.341734 0.234853
+4 16 12 0.000000 0.354644 0.290623
+4 16 13 0.000000 0.366696 0.343625
+4 16 14 0.000000 0.377880 0.396615
+4 16 15 0.000000 0.387946 0.449589
+4 16 16 0.000000 0.396892 0.498483
+4 16 17 0.000000 0.404720 0.543296
+4 16 18 0.000000 0.411998 0.582926
+4 16 19 0.000000 0.418850 0.618525
+4 16 20 0.000000 0.424203 0.649540
+4 16 21 0.000000 0.428657 0.677804
+4 16 22 0.000000 0.432487 0.698909
+4 16 23 0.000000 0.436033 0.716758
+4 16 24 0.000000 0.443601 0.733337
+4 16 25 0.000000 0.452509 0.749494
+4 16 26 0.000000 0.464962 0.759886
+4 16 27 0.000000 0.478233 0.768947
+4 16 28 0.000000 0.486661 0.774738
+4 16 29 0.000000 0.494397 0.780062
+4 16 30 0.000000 0.501175 0.784609
+4 16 31 0.000000 0.507889 0.789104
+4 17 0 0.000000 0.292921 0.000000
+4 17 1 0.000000 0.295721 0.000000
+4 17 2 0.000000 0.298578 0.000000
+4 17 3 0.000000 0.302289 0.000000
+4 17 4 0.000000 0.306369 0.000000
+4 17 5 0.000000 0.313031 0.000000
+4 17 6 0.000000 0.320443 0.000000
+4 17 7 0.000000 0.331109 0.009808
+4 17 8 0.000000 0.341588 0.105783
+4 17 9 0.000000 0.351510 0.138759
+4 17 10 0.000000 0.362620 0.179850
+4 17 11 0.000000 0.376345 0.238792
+4 17 12 0.000000 0.389730 0.296078
+4 17 13 0.000000 0.402546 0.350602
+4 17 14 0.000000 0.414201 0.404736
+4 17 15 0.000000 0.424361 0.458369
+4 17 16 0.000000 0.433690 0.508121
+4 17 17 0.000000 0.442188 0.553992
+4 17 18 0.000000 0.449488 0.594032
+4 17 19 0.000000 0.455857 0.629537
+4 17 20 0.000000 0.461316 0.660634
+4 17 21 0.000000 0.466228 0.689087
+4 17 22 0.000000 0.469800 0.710375
+4 17 23 0.000000 0.472764 0.728406
+4 17 24 0.000000 0.479340 0.744674
+4 17 25 0.000000 0.487121 0.760355
+4 17 26 0.000000 0.497886 0.770112
+4 17 27 0.000000 0.509340 0.778503
+4 17 28 0.000000 0.516713 0.783964
+4 17 29 0.000000 0.523503 0.789005
+4 17 30 0.000000 0.529169 0.792742
+4 17 31 0.000000 0.534761 0.796391
+4 18 0 0.000000 0.323640 0.000000
+4 18 1 0.000000 0.326299 0.000000
+4 18 2 0.000000 0.329014 0.000000
+4 18 3 0.000000 0.332580 0.000000
+4 18 4 0.000000 0.336541 0.000000
+4 18 5 0.000000 0.343265 0.000000
+4 18 6 0.000000 0.350804 0.000000
+4 18 7 0.000000 0.361869 0.008190
+4 18 8 0.000000 0.372679 0.103594
+4 18 9 0.000000 0.382726 0.138375
+4 18 10 0.000000 0.394010 0.181308
+4 18 11 0.000000 0.408015 0.242177
+4 18 12 0.000000 0.421735 0.301030
+4 18 13 0.000000 0.434982 0.356524
+4 18 14 0.000000 0.447195 0.411564
+4 18 15 0.000000 0.458081 0.466020
+4 18 16 0.000000 0.467836 0.516326
+4 18 17 0.000000 0.476462 0.562482
+4 18 18 0.000000 0.483763 0.602783
+4 18 19 0.000000 0.490034 0.638531
+4 18 20 0.000000 0.495477 0.669829
+4 18 21 0.000000 0.500424 0.698457
+4 18 22 0.000000 0.503941 0.719970
+4 18 23 0.000000 0.506809 0.738249
+4 18 24 0.000000 0.512716 0.754344
+4 18 25 0.000000 0.519635 0.769711
+4 18 26 0.000000 0.528746 0.778876
+4 18 27 0.000000 0.538361 0.786610
+4 18 28 0.000000 0.544769 0.791785
+4 18 29 0.000000 0.550718 0.796594
+4 18 30 0.000000 0.555425 0.799969
+4 18 31 0.000000 0.560050 0.803248
+4 19 0 0.000000 0.354226 0.000000
+4 19 1 0.000000 0.356409 0.000000
+4 19 2 0.000000 0.358648 0.000000
+4 19 3 0.000000 0.361731 0.000000
+4 19 4 0.000000 0.365264 0.000000
+4 19 5 0.000000 0.371940 0.000000
+4 19 6 0.000000 0.379545 0.000000
+4 19 7 0.000000 0.391174 0.005946
+4 19 8 0.000000 0.402318 0.100405
+4 19 9 0.000000 0.412007 0.137075
+4 19 10 0.000000 0.423127 0.182011
+4 19 11 0.000000 0.437396 0.245131
+4 19 12 0.000000 0.451345 0.305593
+4 19 13 0.000000 0.464761 0.361627
+4 19 14 0.000000 0.477603 0.417387
+4 19 15 0.000000 0.489704 0.472796
+4 19 16 0.000000 0.499921 0.523418
+4 19 17 0.000000 0.508252 0.569256
+4 19 18 0.000000 0.515537 0.609702
+4 19 19 0.000000 0.522008 0.645957
+4 19 20 0.000000 0.527342 0.677547
+4 19 21 0.000000 0.531995 0.706338
+4 19 22 0.000000 0.535615 0.728109
+4 19 23 0.000000 0.538764 0.746689
+4 19 24 0.000000 0.544252 0.762718
+4 19 25 0.000000 0.550520 0.777896
+4 19 26 0.000000 0.558000 0.786501
+4 19 27 0.000000 0.565759 0.793590
+4 19 28 0.000000 0.571271 0.798514
+4 19 29 0.000000 0.576462 0.803129
+4 19 30 0.000000 0.580329 0.806491
+4 19 31 0.000000 0.584107 0.809770
+4 20 0 0.000000 0.376678 0.000000
+4 20 1 0.000000 0.378858 0.000000
+4 20 2 0.000000 0.381098 0.000000
+4 20 3 0.000000 0.384240 0.000000
+4 20 4 0.000000 0.387823 0.000000
+4 20 5 0.000000 0.394500 0.000000
+4 20 6 0.000000 0.402102 0.000000
+4 20 7 0.000000 0.413711 0.000851
+4 20 8 0.000000 0.424894 0.093438
+4 20 9 0.000000 0.434798 0.135497
+4 20 10 0.000000 0.446153 0.184514
+4 20 11 0.000000 0.460700 0.248838
+4 20 12 0.000000 0.474936 0.310287
+4 20 13 0.000000 0.488651 0.366946
+4 20 14 0.000000 0.501702 0.423162
+4 20 15 0.000000 0.513900 0.478811
+4 20 16 0.000000 0.524291 0.529707
+4 20 17 0.000000 0.532876 0.575851
+4 20 18 0.000000 0.540144 0.616436
+4 20 19 0.000000 0.546389 0.652696
+4 20 20 0.000000 0.551726 0.684523
+4 20 21 0.000000 0.556519 0.713688
+4 20 22 0.000000 0.560126 0.735279
+4 20 23 0.000000 0.563193 0.753428
+4 20 24 0.000000 0.568213 0.769119
+4 20 25 0.000000 0.573884 0.783992
+4 20 26 0.000000 0.580420 0.792379
+4 20 27 0.000000 0.587155 0.799268
+4 20 28 0.000000 0.591930 0.804004
+4 20 29 0.000000 0.596426 0.808433
+4 20 30 0.000000 0.599680 0.811622
+4 20 31 0.000000 0.602851 0.814728
+4 21 0 0.000000 0.394248 0.000000
+4 21 1 0.000000 0.396710 0.000000
+4 21 2 0.000000 0.399238 0.000000
+4 21 3 0.000000 0.402762 0.000000
+4 21 4 0.000000 0.406684 0.000000
+4 21 5 0.000000 0.413391 0.000000
+4 21 6 0.000000 0.420948 0.000000
+4 21 7 0.000000 0.432188 0.000000
+4 21 8 0.000000 0.443232 0.084204
+4 21 9 0.000000 0.453694 0.133751
+4 21 10 0.000000 0.465523 0.188096
+4 21 11 0.000000 0.480358 0.252996
+4 21 12 0.000000 0.494915 0.315059
+4 21 13 0.000000 0.509006 0.372394
+4 21 14 0.000000 0.522017 0.428909
+4 21 15 0.000000 0.533638 0.484370
+4 21 16 0.000000 0.544032 0.535513
+4 21 17 0.000000 0.553200 0.582339
+4 21 18 0.000000 0.560452 0.623057
+4 21 19 0.000000 0.566214 0.659024
+4 21 20 0.000000 0.571621 0.691052
+4 21 21 0.000000 0.576814 0.720718
+4 21 22 0.000000 0.580339 0.741867
+4 21 23 0.000000 0.583107 0.759145
+4 21 24 0.000000 0.587628 0.774338
+4 21 25 0.000000 0.592735 0.788834
+4 21 26 0.000000 0.598739 0.797207
+4 21 27 0.000000 0.604949 0.804166
+4 21 28 0.000000 0.609083 0.808752
+4 21 29 0.000000 0.612920 0.812998
+4 21 30 0.000000 0.615698 0.815917
+4 21 31 0.000000 0.618405 0.818748
+4 22 0 0.000000 0.409790 0.000000
+4 22 1 0.000000 0.412211 0.000000
+4 22 2 0.000000 0.414696 0.000000
+4 22 3 0.000000 0.418145 0.000000
+4 22 4 0.000000 0.421970 0.000000
+4 22 5 0.000000 0.428424 0.000000
+4 22 6 0.000000 0.435789 0.000000
+4 22 7 0.000000 0.447103 0.000000
+4 22 8 0.000000 0.458247 0.089941
+4 22 9 0.000000 0.468883 0.139702
+4 22 10 0.000000 0.480938 0.194293
+4 22 11 0.000000 0.496114 0.259510
+4 22 12 0.000000 0.510804 0.321803
+4 22 13 0.000000 0.524686 0.379220
+4 22 14 0.000000 0.537532 0.435723
+4 22 15 0.000000 0.549046 0.491052
+4 22 16 0.000000 0.559473 0.542036
+4 22 17 0.000000 0.568814 0.588675
+4 22 18 0.000000 0.576241 0.629225
+4 22 19 0.000000 0.582181 0.665040
+4 22 20 0.000000 0.587603 0.696891
+4 22 21 0.000000 0.592714 0.726365
+4 22 22 0.000000 0.596247 0.747190
+4 22 23 0.000000 0.599063 0.764083
+4 22 24 0.000000 0.603319 0.778852
+4 22 25 0.000000 0.608055 0.792912
+4 22 26 0.000000 0.613439 0.801007
+4 22 27 0.000000 0.618973 0.807725
+4 22 28 0.000000 0.622729 0.812227
+4 22 29 0.000000 0.626232 0.816413
+4 22 30 0.000000 0.628848 0.819304
+4 22 31 0.000000 0.631406 0.822109
+4 23 0 0.000000 0.424410 0.000000
+4 23 1 0.000000 0.426643 0.000000
+4 23 2 0.000000 0.428934 0.000000
+4 23 3 0.000000 0.432102 0.000000
+4 23 4 0.000000 0.435632 0.000000
+4 23 5 0.000000 0.441704 0.000000
+4 23 6 0.000000 0.448810 0.000000
+4 23 7 0.000000 0.460400 0.005688
+4 23 8 0.000000 0.471751 0.102483
+4 23 9 0.000000 0.482387 0.149150
+4 23 10 0.000000 0.494555 0.201677
+4 23 11 0.000000 0.510095 0.267095
+4 23 12 0.000000 0.524835 0.329442
+4 23 13 0.000000 0.538240 0.386671
+4 23 14 0.000000 0.550864 0.443022
+4 23 15 0.000000 0.562485 0.498245
+4 23 16 0.000000 0.572959 0.548884
+4 23 17 0.000000 0.582288 0.594941
+4 23 18 0.000000 0.589978 0.635187
+4 23 19 0.000000 0.596393 0.670914
+4 23 20 0.000000 0.601806 0.702416
+4 23 21 0.000000 0.606617 0.731383
+4 23 22 0.000000 0.610198 0.751937
+4 23 23 0.000000 0.613220 0.768667
+4 23 24 0.000000 0.617316 0.783046
+4 23 25 0.000000 0.621770 0.796642
+4 23 26 0.000000 0.626496 0.804340
+4 23 27 0.000000 0.631283 0.810676
+4 23 28 0.000000 0.634782 0.815125
+4 23 29 0.000000 0.638096 0.819305
+4 23 30 0.000000 0.640695 0.822278
+4 23 31 0.000000 0.643247 0.825170
+4 24 0 0.000000 0.438594 0.000000
+4 24 1 0.000000 0.441555 0.000000
+4 24 2 0.000000 0.444565 0.000000
+4 24 3 0.000000 0.448287 0.000000
+4 24 4 0.000000 0.452292 0.000000
+4 24 5 0.000000 0.458272 0.000000
+4 24 6 0.000000 0.465238 0.000000
+4 24 7 0.000000 0.476474 0.016521
+4 24 8 0.000000 0.487595 0.119859
+4 24 9 0.000000 0.498372 0.165329
+4 24 10 0.000000 0.510688 0.217071
+4 24 11 0.000000 0.526389 0.282609
+4 24 12 0.000000 0.541106 0.344776
+4 24 13 0.000000 0.554180 0.401323
+4 24 14 0.000000 0.566476 0.456879
+4 24 15 0.000000 0.577770 0.511158
+4 24 16 0.000000 0.587939 0.560689
+4 24 17 0.000000 0.596983 0.605472
+4 24 18 0.000000 0.604575 0.644831
+4 24 19 0.000000 0.611039 0.679971
+4 24 20 0.000000 0.616423 0.710690
+4 24 21 0.000000 0.621160 0.738755
+4 24 22 0.000000 0.624704 0.758659
+4 24 23 0.000000 0.627707 0.774854
+4 24 24 0.000000 0.631478 0.788643
+4 24 25 0.000000 0.635504 0.801630
+4 24 26 0.000000 0.639883 0.809074
+4 24 27 0.000000 0.644343 0.815240
+4 24 28 0.000000 0.647521 0.819489
+4 24 29 0.000000 0.650515 0.823465
+4 24 30 0.000000 0.652890 0.826379
+4 24 31 0.000000 0.655225 0.829223
+4 25 0 0.000000 0.452632 0.000000
+4 25 1 0.000000 0.456628 0.000000
+4 25 2 0.000000 0.460659 0.000000
+4 25 3 0.000000 0.465215 0.000000
+4 25 4 0.000000 0.469951 0.000000
+4 25 5 0.000000 0.475937 0.000000
+4 25 6 0.000000 0.482803 0.000000
+4 25 7 0.000000 0.493474 0.028244
+4 25 8 0.000000 0.504219 0.138845
+4 25 9 0.000000 0.515184 0.183751
+4 25 10 0.000000 0.527658 0.235135
+4 25 11 0.000000 0.543454 0.300767
+4 25 12 0.000000 0.558123 0.362675
+4 25 13 0.000000 0.570916 0.418376
+4 25 14 0.000000 0.582847 0.472921
+4 25 15 0.000000 0.593672 0.525978
+4 25 16 0.000000 0.603417 0.574146
+4 25 17 0.000000 0.612085 0.617425
+4 25 18 0.000000 0.619460 0.655702
+4 25 19 0.000000 0.625830 0.690090
+4 25 20 0.000000 0.631179 0.719880
+4 25 21 0.000000 0.635915 0.746911
+4 25 22 0.000000 0.639395 0.766040
+4 25 23 0.000000 0.642304 0.781577
+4 25 24 0.000000 0.645694 0.794707
+4 25 25 0.000000 0.649244 0.807036
+4 25 26 0.000000 0.653381 0.814276
+4 25 27 0.000000 0.657653 0.820341
+4 25 28 0.000000 0.660488 0.824342
+4 25 29 0.000000 0.663119 0.828047
+4 25 30 0.000000 0.665201 0.830857
+4 25 31 0.000000 0.667247 0.833607
+4 26 0 0.000000 0.464785 0.000000
+4 26 1 0.000000 0.468975 0.000000
+4 26 2 0.000000 0.473226 0.000000
+4 26 3 0.000000 0.478407 0.000000
+4 26 4 0.000000 0.483900 0.000000
+4 26 5 0.000000 0.491573 0.000000
+4 26 6 0.000000 0.499788 0.000000
+4 26 7 0.000000 0.510349 0.044006
+4 26 8 0.000000 0.521035 0.164657
+4 26 9 0.000000 0.532097 0.209948
+4 26 10 0.000000 0.544479 0.261012
+4 26 11 0.000000 0.559768 0.324777
+4 26 12 0.000000 0.573987 0.385216
+4 26 13 0.000000 0.586427 0.440113
+4 26 14 0.000000 0.597824 0.493341
+4 26 15 0.000000 0.607882 0.544421
+4 26 16 0.000000 0.617017 0.590763
+4 26 17 0.000000 0.625227 0.632365
+4 26 18 0.000000 0.632183 0.669317
+4 26 19 0.000000 0.638163 0.702652
+4 26 20 0.000000 0.643267 0.730920
+4 26 21 0.000000 0.647845 0.756148
+4 26 22 0.000000 0.651211 0.774169
+4 26 23 0.000000 0.654026 0.788915
+4 26 24 0.000000 0.657326 0.801641
+4 26 25 0.000000 0.660787 0.813693
+4 26 26 0.000000 0.664726 0.820365
+4 26 27 0.000000 0.668775 0.825796
+4 26 28 0.000000 0.671524 0.829731
+4 26 29 0.000000 0.674086 0.833453
+4 26 30 0.000000 0.676113 0.836247
+4 26 31 0.000000 0.678105 0.838979
+4 27 0 0.000000 0.476502 0.000000
+4 27 1 0.000000 0.480692 0.000000
+4 27 2 0.000000 0.484980 0.000000
+4 27 3 0.000000 0.490737 0.000000
+4 27 4 0.000000 0.496993 0.000000
+4 27 5 0.000000 0.506741 0.000000
+4 27 6 0.000000 0.516640 0.000000
+4 27 7 0.000000 0.527195 0.060699
+4 27 8 0.000000 0.537895 0.192045
+4 27 9 0.000000 0.549033 0.237939
+4 27 10 0.000000 0.561266 0.288693
+4 27 11 0.000000 0.575908 0.350138
+4 27 12 0.000000 0.589585 0.408829
+4 27 13 0.000000 0.601655 0.462931
+4 27 14 0.000000 0.612479 0.514771
+4 27 15 0.000000 0.621703 0.563701
+4 27 16 0.000000 0.630182 0.608109
+4 27 17 0.000000 0.637916 0.647995
+4 27 18 0.000000 0.644406 0.683564
+4 27 19 0.000000 0.649928 0.715777
+4 27 20 0.000000 0.654739 0.742387
+4 27 21 0.000000 0.659124 0.765634
+4 27 22 0.000000 0.662365 0.782472
+4 27 23 0.000000 0.665085 0.796395
+4 27 24 0.000000 0.668361 0.808774
+4 27 25 0.000000 0.671822 0.820639
+4 27 26 0.000000 0.675574 0.826660
+4 27 27 0.000000 0.679393 0.831332
+4 27 28 0.000000 0.682113 0.835244
+4 27 29 0.000000 0.684675 0.839048
+4 27 30 0.000000 0.686702 0.841847
+4 27 31 0.000000 0.688694 0.844579
+4 28 0 0.000000 0.484502 0.000000
+4 28 1 0.000000 0.488692 0.000000
+4 28 2 0.000000 0.492984 0.000000
+4 28 3 0.000000 0.498813 0.000000
+4 28 4 0.000000 0.505205 0.000000
+4 28 5 0.000000 0.515536 0.000000
+4 28 6 0.000000 0.526142 0.000000
+4 28 7 0.000000 0.537935 0.070699
+4 28 8 0.000000 0.549607 0.208914
+4 28 9 0.000000 0.560919 0.257023
+4 28 10 0.000000 0.573092 0.308669
+4 28 11 0.000000 0.587160 0.368096
+4 28 12 0.000000 0.600369 0.425336
+4 28 13 0.000000 0.612145 0.478933
+4 28 14 0.000000 0.622615 0.529937
+4 28 15 0.000000 0.631406 0.577606
+4 28 16 0.000000 0.639474 0.620944
+4 28 17 0.000000 0.646819 0.659951
+4 28 18 0.000000 0.652922 0.694410
+4 28 19 0.000000 0.658058 0.725331
+4 28 20 0.000000 0.662606 0.750794
+4 28 21 0.000000 0.666802 0.772982
+4 28 22 0.000000 0.669979 0.789131
+4 28 23 0.000000 0.672693 0.802535
+4 28 24 0.000000 0.675906 0.814335
+4 28 25 0.000000 0.679285 0.825600
+4 28 26 0.000000 0.682998 0.831431
+4 28 27 0.000000 0.686788 0.836009
+4 28 28 0.000000 0.689499 0.839558
+4 28 29 0.000000 0.692056 0.842960
+4 28 30 0.000000 0.694011 0.845735
+4 28 31 0.000000 0.695926 0.848467
+4 29 0 0.000000 0.491971 0.000000
+4 29 1 0.000000 0.496160 0.000000
+4 29 2 0.000000 0.500453 0.000000
+4 29 3 0.000000 0.506282 0.000000
+4 29 4 0.000000 0.512720 0.000000
+4 29 5 0.000000 0.523421 0.000000
+4 29 6 0.000000 0.534593 0.000000
+4 29 7 0.000000 0.547802 0.079743
+4 29 8 0.000000 0.560584 0.224280
+4 29 9 0.000000 0.572084 0.274834
+4 29 10 0.000000 0.584210 0.327543
+4 29 11 0.000000 0.597714 0.384996
+4 29 12 0.000000 0.610464 0.440828
+4 29 13 0.000000 0.621958 0.493961
+4 29 14 0.000000 0.632105 0.544208
+4 29 15 0.000000 0.640520 0.590742
+4 29 16 0.000000 0.648212 0.633134
+4 29 17 0.000000 0.655181 0.671383
+4 29 18 0.000000 0.660908 0.704770
+4 29 19 0.000000 0.665667 0.734375
+4 29 20 0.000000 0.669957 0.758764
+4 29 21 0.000000 0.673965 0.780024
+4 29 22 0.000000 0.677087 0.795555
+4 29 23 0.000000 0.679808 0.808483
+4 29 24 0.000000 0.682951 0.819670
+4 29 25 0.000000 0.686236 0.830277
+4 29 26 0.000000 0.689932 0.835985
+4 29 27 0.000000 0.693722 0.840563
+4 29 28 0.000000 0.696428 0.843701
+4 29 29 0.000000 0.698978 0.846633
+4 29 30 0.000000 0.700851 0.849378
+4 29 31 0.000000 0.702678 0.852111
+4 30 0 0.000000 0.497721 0.000000
+4 30 1 0.000000 0.501916 0.000000
+4 30 2 0.000000 0.506213 0.000000
+4 30 3 0.000000 0.512037 0.000000
+4 30 4 0.000000 0.518463 0.000000
+4 30 5 0.000000 0.529111 0.000000
+4 30 6 0.000000 0.540486 0.000000
+4 30 7 0.000000 0.555012 0.086581
+4 30 8 0.000000 0.568807 0.235896
+4 30 9 0.000000 0.580407 0.288283
+4 30 10 0.000000 0.592535 0.341831
+4 30 11 0.000000 0.605827 0.397931
+4 30 12 0.000000 0.618339 0.452840
+4 30 13 0.000000 0.629551 0.505762
+4 30 14 0.000000 0.639414 0.555512
+4 30 15 0.000000 0.647541 0.601182
+4 30 16 0.000000 0.654901 0.642678
+4 30 17 0.000000 0.661494 0.679998
+4 30 18 0.000000 0.666894 0.712439
+4 30 19 0.000000 0.671366 0.741086
+4 30 20 0.000000 0.675430 0.764745
+4 30 21 0.000000 0.679249 0.785412
+4 30 22 0.000000 0.682431 0.800436
+4 30 23 0.000000 0.685322 0.812893
+4 30 24 0.000000 0.688376 0.823601
+4 30 25 0.000000 0.691484 0.833726
+4 30 26 0.000000 0.695147 0.839411
+4 30 27 0.000000 0.698937 0.844071
+4 30 28 0.000000 0.701642 0.847126
+4 30 29 0.000000 0.704193 0.849953
+4 30 30 0.000000 0.706060 0.852438
+4 30 31 0.000000 0.707882 0.854900
+4 31 0 0.000000 0.503356 0.000000
+4 31 1 0.000000 0.507558 0.000000
+4 31 2 0.000000 0.511860 0.000000
+4 31 3 0.000000 0.517678 0.000000
+4 31 4 0.000000 0.524089 0.000000
+4 31 5 0.000000 0.534654 0.000000
+4 31 6 0.000000 0.546208 0.000000
+4 31 7 0.000000 0.562045 0.093273
+4 31 8 0.000000 0.576846 0.247263
+4 31 9 0.000000 0.588539 0.301442
+4 31 10 0.000000 0.600674 0.355812
+4 31 11 0.000000 0.613778 0.410603
+4 31 12 0.000000 0.626067 0.464620
+4 31 13 0.000000 0.636997 0.517348
+4 31 14 0.000000 0.646577 0.566618
+4 31 15 0.000000 0.654422 0.611442
+4 31 16 0.000000 0.661453 0.652044
+4 31 17 0.000000 0.667670 0.688424
+4 31 18 0.000000 0.672746 0.719929
+4 31 19 0.000000 0.676936 0.747642
+4 31 20 0.000000 0.680777 0.770594
+4 31 21 0.000000 0.684409 0.790691
+4 31 22 0.000000 0.687656 0.805213
+4 31 23 0.000000 0.690730 0.817201
+4 31 24 0.000000 0.693693 0.827438
+4 31 25 0.000000 0.696619 0.837093
+4 31 26 0.000000 0.700247 0.842761
+4 31 27 0.000000 0.704038 0.847509
+4 31 28 0.000000 0.706743 0.850504
+4 31 29 0.000000 0.709293 0.853248
+4 31 30 0.000000 0.711160 0.855458
+4 31 31 0.000000 0.712982 0.857632
+5 0 0 0.047947 0.039257 0.028316
+5 0 1 0.048188 0.039257 0.030137
+5 0 2 0.048441 0.039257 0.032000
+5 0 3 0.048878 0.039257 0.034474
+5 0 4 0.049298 0.039280 0.037091
+5 0 5 0.049594 0.039462 0.040717
+5 0 6 0.049675 0.039644 0.044483
+5 0 7 0.048827 0.039826 0.048855
+5 0 8 0.048233 0.039800 0.054524
+5 0 9 0.048403 0.039147 0.064085
+5 0 10 0.046663 0.038453 0.080695
+5 0 11 0.040722 0.037665 0.112815
+5 0 12 0.036013 0.035990 0.144564
+5 0 13 0.033354 0.032834 0.175697
+5 0 14 0.037602 0.022126 0.210151
+5 0 15 0.050731 0.001706 0.248876
+5 0 16 0.061583 0.000000 0.284260
+5 0 17 0.070160 0.000000 0.316303
+5 0 18 0.080408 0.000000 0.346307
+5 0 19 0.091956 0.000000 0.374725
+5 0 20 0.100799 0.000000 0.400124
+5 0 21 0.108019 0.000000 0.423711
+5 0 22 0.113074 0.000000 0.445129
+5 0 23 0.117143 0.000000 0.465561
+5 0 24 0.116507 0.000000 0.491026
+5 0 25 0.114303 0.000000 0.518168
+5 0 26 0.059894 0.000000 0.552200
+5 0 27 0.000000 0.000000 0.587822
+5 0 28 0.000000 0.000000 0.610698
+5 0 29 0.000000 0.000000 0.631753
+5 0 30 0.000000 0.079640 0.647243
+5 0 31 0.000000 0.175824 0.662363
+5 1 0 0.049883 0.041184 0.028028
+5 1 1 0.049438 0.041224 0.030186
+5 1 2 0.049045 0.041261 0.032364
+5 1 3 0.049431 0.041261 0.034838
+5 1 4 0.049807 0.041283 0.037456
+5 1 5 0.050102 0.041466 0.041081
+5 1 6 0.050223 0.041701 0.045147
+5 1 7 0.049587 0.042165 0.051117
+5 1 8 0.048968 0.042397 0.057924
+5 1 9 0.048401 0.041933 0.067242
+5 1 10 0.046248 0.041443 0.083833
+5 1 11 0.040606 0.040899 0.116423
+5 1 12 0.036182 0.039551 0.148804
+5 1 13 0.033786 0.036866 0.180837
+5 1 14 0.038013 0.027408 0.215856
+5 1 15 0.050754 0.009245 0.254715
+5 1 16 0.061239 0.000000 0.290522
+5 1 17 0.069466 0.000000 0.323278
+5 1 18 0.079363 0.000000 0.353624
+5 1 19 0.090561 0.000000 0.382097
+5 1 20 0.099108 0.000000 0.407717
+5 1 21 0.106066 0.000000 0.431626
+5 1 22 0.110798 0.000000 0.452756
+5 1 23 0.114518 0.000000 0.472624
+5 1 24 0.093352 0.000000 0.496749
+5 1 25 0.063892 0.000000 0.522293
+5 1 26 0.014154 0.000000 0.556070
+5 1 27 0.000000 0.000000 0.591747
+5 1 28 0.000000 0.000000 0.614616
+5 1 29 0.000000 0.000000 0.635656
+5 1 30 0.000000 0.087838 0.651145
+5 1 31 0.000000 0.184021 0.666265
+5 2 0 0.051853 0.043151 0.027735
+5 2 1 0.050762 0.043225 0.030211
+5 2 2 0.049756 0.043294 0.032689
+5 2 3 0.050040 0.043300 0.035193
+5 2 4 0.050326 0.043328 0.037836
+5 2 5 0.050619 0.043506 0.041462
+5 2 6 0.050778 0.043793 0.045828
+5 2 7 0.050354 0.044545 0.053400
+5 2 8 0.049708 0.045042 0.061354
+5 2 9 0.048392 0.044775 0.070457
+5 2 10 0.045819 0.044499 0.087047
+5 2 11 0.040481 0.044202 0.120110
+5 2 12 0.036316 0.043187 0.153134
+5 2 13 0.034105 0.040978 0.186090
+5 2 14 0.038298 0.032797 0.221689
+5 2 15 0.050723 0.016938 0.260685
+5 2 16 0.060873 0.000000 0.296923
+5 2 17 0.068747 0.000000 0.330403
+5 2 18 0.078293 0.000000 0.361094
+5 2 19 0.089140 0.000000 0.389618
+5 2 20 0.097386 0.000000 0.415464
+5 2 21 0.104070 0.000000 0.439704
+5 2 22 0.108470 0.000000 0.460546
+5 2 23 0.111832 0.000000 0.479843
+5 2 24 0.071062 0.000000 0.502682
+5 2 25 0.015581 0.000000 0.526701
+5 2 26 0.000000 0.000000 0.560144
+5 2 27 0.000000 0.000000 0.595763
+5 2 28 0.000000 0.000000 0.618616
+5 2 29 0.000000 0.001675 0.639644
+5 2 30 0.000000 0.096209 0.655131
+5 2 31 0.000000 0.192396 0.670248
+5 3 0 0.054326 0.045701 0.027371
+5 3 1 0.053183 0.045735 0.029886
+5 3 2 0.052075 0.045774 0.032431
+5 3 3 0.051484 0.045874 0.035404
+5 3 4 0.051000 0.045977 0.038459
+5 3 5 0.051256 0.046101 0.042085
+5 3 6 0.051427 0.046413 0.046760
+5 3 7 0.051230 0.047542 0.055985
+5 3 8 0.050521 0.048405 0.065227
+5 3 9 0.048279 0.048475 0.074517
+5 3 10 0.045183 0.048531 0.091401
+5 3 11 0.040209 0.048555 0.124989
+5 3 12 0.035908 0.047953 0.158813
+5 3 13 0.032726 0.046308 0.193031
+5 3 14 0.036699 0.039767 0.229429
+5 3 15 0.049869 0.026931 0.268628
+5 3 16 0.060191 0.000000 0.305410
+5 3 17 0.067664 0.000000 0.339776
+5 3 18 0.076838 0.000000 0.370855
+5 3 19 0.087335 0.000000 0.399378
+5 3 20 0.095176 0.000000 0.425518
+5 3 21 0.101423 0.000000 0.450228
+5 3 22 0.105360 0.000000 0.470765
+5 3 23 0.108247 0.000000 0.489404
+5 3 24 0.061741 0.000000 0.511755
+5 3 25 0.000000 0.000000 0.535343
+5 3 26 0.000000 0.000000 0.567287
+5 3 27 0.000000 0.000000 0.601158
+5 3 28 0.000000 0.000000 0.623840
+5 3 29 0.000000 0.012253 0.644924
+5 3 30 0.000000 0.107190 0.660377
+5 3 31 0.000000 0.203431 0.675455
+5 4 0 0.056772 0.048351 0.027025
+5 4 1 0.055585 0.048356 0.029576
+5 4 2 0.054387 0.048372 0.032179
+5 4 3 0.053013 0.048547 0.035573
+5 4 4 0.051820 0.048717 0.039015
+5 4 5 0.051895 0.048848 0.042788
+5 4 6 0.051955 0.049229 0.047853
+5 4 7 0.051950 0.050691 0.058517
+5 4 8 0.051174 0.051895 0.068952
+5 4 9 0.048081 0.052322 0.078696
+5 4 10 0.044442 0.052744 0.096089
+5 4 11 0.039602 0.053157 0.130310
+5 4 12 0.034148 0.053035 0.165026
+5 4 13 0.027672 0.052019 0.200568
+5 4 14 0.031131 0.047184 0.237809
+5 4 15 0.047364 0.037437 0.277236
+5 4 16 0.059028 0.008046 0.314596
+5 4 17 0.066124 0.000000 0.349890
+5 4 18 0.074939 0.000000 0.381393
+5 4 19 0.085091 0.000000 0.409948
+5 4 20 0.092500 0.000000 0.436409
+5 4 21 0.098263 0.000000 0.461612
+5 4 22 0.101696 0.000000 0.481865
+5 4 23 0.104069 0.000000 0.499867
+5 4 24 0.052482 0.000000 0.521772
+5 4 25 0.000000 0.000000 0.544979
+5 4 26 0.000000 0.000000 0.575246
+5 4 27 0.000000 0.000000 0.607142
+5 4 28 0.000000 0.000000 0.629598
+5 4 29 0.000000 0.023739 0.650706
+5 4 30 0.000000 0.119097 0.666133
+5 4 31 0.000000 0.215379 0.681181
+5 5 0 0.059037 0.051701 0.026814
+5 5 1 0.057850 0.051745 0.029364
+5 5 2 0.056643 0.051794 0.031972
+5 5 3 0.055130 0.051915 0.035446
+5 5 4 0.053667 0.052092 0.039104
+5 5 5 0.052548 0.052663 0.044053
+5 5 6 0.051631 0.053409 0.050064
+5 5 7 0.051590 0.054910 0.060674
+5 5 8 0.050705 0.056268 0.071646
+5 5 9 0.047291 0.057196 0.083704
+5 5 10 0.042966 0.058232 0.103122
+5 5 11 0.036641 0.059506 0.138732
+5 5 12 0.022926 0.060330 0.174974
+5 5 13 0.000000 0.060403 0.212268
+5 5 14 0.000000 0.057730 0.250671
+5 5 15 0.033300 0.051526 0.290498
+5 5 16 0.054499 0.035809 0.328673
+5 5 17 0.061386 0.010579 0.365195
+5 5 18 0.069933 0.000000 0.397377
+5 5 19 0.079771 0.000000 0.426184
+5 5 20 0.086561 0.000000 0.453150
+5 5 21 0.091523 0.000000 0.479012
+5 5 22 0.094158 0.000000 0.499132
+5 5 23 0.095735 0.000000 0.516643
+5 5 24 0.043659 0.000000 0.538396
+5 5 25 0.000000 0.000000 0.561563
+5 5 26 0.000000 0.000000 0.588920
+5 5 27 0.000000 0.000000 0.617243
+5 5 28 0.000000 0.000000 0.639089
+5 5 29 0.000000 0.041583 0.660008
+5 5 30 0.000000 0.137486 0.675460
+5 5 31 0.000000 0.233713 0.690548
+5 6 0 0.060941 0.055276 0.026608
+5 6 1 0.059754 0.055521 0.029246
+5 6 2 0.058539 0.055756 0.031941
+5 6 3 0.056915 0.055840 0.035478
+5 6 4 0.055227 0.056033 0.039319
+5 6 5 0.053098 0.056986 0.045277
+5 6 6 0.051303 0.058080 0.052175
+5 6 7 0.050960 0.059783 0.063147
+5 6 8 0.049753 0.061420 0.074961
+5 6 9 0.045956 0.062859 0.089305
+5 6 10 0.040803 0.064551 0.110807
+5 6 11 0.032671 0.066797 0.148057
+5 6 12 0.010961 0.068644 0.186009
+5 6 13 0.000000 0.069823 0.225134
+5 6 14 0.000000 0.069271 0.264774
+5 6 15 0.017827 0.066491 0.305078
+5 6 16 0.047864 0.062498 0.344078
+5 6 17 0.054968 0.057290 0.381775
+5 6 18 0.063388 0.008193 0.414768
+5 6 19 0.072831 0.000000 0.444104
+5 6 20 0.079020 0.000000 0.471669
+5 6 21 0.083258 0.000000 0.498171
+5 6 22 0.085080 0.000000 0.518278
+5 6 23 0.085803 0.000000 0.535478
+5 6 24 0.033235 0.000000 0.556983
+5 6 25 0.000000 0.000000 0.579924
+5 6 26 0.000000 0.000000 0.604880
+5 6 27 0.000000 0.000000 0.630301
+5 6 28 0.000000 0.000000 0.651125
+5 6 29 0.000000 0.077284 0.671292
+5 6 30 0.000000 0.165821 0.686298
+5 6 31 0.000000 0.254177 0.700959
+5 7 0 0.061280 0.059830 0.026426
+5 7 1 0.060093 0.060976 0.029534
+5 7 2 0.058878 0.062058 0.032670
+5 7 3 0.057254 0.062181 0.036207
+5 7 4 0.055540 0.062425 0.040082
+5 7 5 0.053198 0.063512 0.046323
+5 7 6 0.050960 0.064883 0.053856
+5 7 7 0.049166 0.067487 0.066990
+5 7 8 0.046708 0.069940 0.080966
+5 7 9 0.042261 0.071944 0.097473
+5 7 10 0.035662 0.074477 0.121314
+5 7 11 0.024328 0.078173 0.161290
+5 7 12 0.000000 0.081369 0.201758
+5 7 13 0.000000 0.083731 0.243045
+5 7 14 0.000000 0.085119 0.284254
+5 7 15 0.000000 0.085254 0.325365
+5 7 16 0.032108 0.084532 0.365239
+5 7 17 0.041276 0.082951 0.403875
+5 7 18 0.050176 0.062907 0.438254
+5 7 19 0.058868 0.028502 0.469322
+5 7 20 0.064534 0.016496 0.497889
+5 7 21 0.068386 0.017929 0.524955
+5 7 22 0.069329 0.021274 0.545561
+5 7 23 0.068952 0.025488 0.563231
+5 7 24 0.015873 0.034999 0.584079
+5 7 25 0.000000 0.046276 0.605986
+5 7 26 0.000000 0.067592 0.630747
+5 7 27 0.000000 0.091226 0.656168
+5 7 28 0.000000 0.139062 0.674195
+5 7 29 0.000000 0.190356 0.691166
+5 7 30 0.000000 0.237259 0.703680
+5 7 31 0.000000 0.283870 0.715897
+5 8 0 0.061869 0.065142 0.025618
+5 8 1 0.060498 0.066833 0.029267
+5 8 2 0.059107 0.068444 0.032920
+5 8 3 0.057430 0.068873 0.036636
+5 8 4 0.055632 0.069433 0.040718
+5 8 5 0.052989 0.070911 0.047366
+5 8 6 0.050244 0.072780 0.055595
+5 8 7 0.047055 0.076341 0.070680
+5 8 8 0.043219 0.079636 0.086572
+5 8 9 0.037440 0.082134 0.104889
+5 8 10 0.026901 0.085482 0.130820
+5 8 11 0.005888 0.090702 0.173503
+5 8 12 0.000000 0.095338 0.216411
+5 8 13 0.000000 0.099001 0.259694
+5 8 14 0.000000 0.102250 0.302371
+5 8 15 0.000000 0.104967 0.344269
+5 8 16 0.002167 0.107097 0.385037
+5 8 17 0.011500 0.108640 0.424674
+5 8 18 0.019566 0.110710 0.460378
+5 8 19 0.026645 0.113190 0.493023
+5 8 20 0.031239 0.115666 0.522425
+5 8 21 0.034340 0.118140 0.549881
+5 8 22 0.034589 0.123614 0.570815
+5 8 23 0.033541 0.130452 0.588784
+5 8 24 0.000000 0.145792 0.608924
+5 8 25 0.000000 0.163966 0.629786
+5 8 26 0.000000 0.198287 0.653926
+5 8 27 0.000000 0.236334 0.678822
+5 8 28 0.000000 0.259575 0.694439
+5 8 29 0.000000 0.280700 0.708730
+5 8 30 0.000000 0.296243 0.719160
+5 8 31 0.000000 0.311414 0.729331
+5 9 0 0.063209 0.072729 0.022932
+5 9 1 0.061101 0.073894 0.027333
+5 9 2 0.059007 0.075083 0.031737
+5 9 3 0.057117 0.076616 0.036165
+5 9 4 0.055063 0.078287 0.040969
+5 9 5 0.051850 0.080930 0.048399
+5 9 6 0.048412 0.083957 0.057511
+5 9 7 0.043998 0.088646 0.073912
+5 9 8 0.038397 0.092858 0.090980
+5 9 9 0.029239 0.095637 0.110048
+5 9 10 0.007280 0.099725 0.137324
+5 9 11 0.000000 0.106692 0.182655
+5 9 12 0.000000 0.113040 0.227780
+5 9 13 0.000000 0.118356 0.272561
+5 9 14 0.000000 0.123227 0.316399
+5 9 15 0.000000 0.127527 0.359025
+5 9 16 0.000000 0.131256 0.400748
+5 9 17 0.000000 0.134413 0.441568
+5 9 18 0.000000 0.137784 0.478416
+5 9 19 0.000000 0.141323 0.512174
+5 9 20 0.000000 0.144533 0.541910
+5 9 21 0.000000 0.147547 0.569232
+5 9 22 0.000000 0.153088 0.589978
+5 9 23 0.000000 0.159777 0.607736
+5 9 24 0.000000 0.174404 0.627017
+5 9 25 0.000000 0.191677 0.646806
+5 9 26 0.000000 0.224163 0.669039
+5 9 27 0.000000 0.260160 0.691836
+5 9 28 0.000000 0.282487 0.706203
+5 9 29 0.000000 0.302860 0.719366
+5 9 30 0.000000 0.317864 0.728932
+5 9 31 0.000000 0.332510 0.738257
+5 10 0 0.060753 0.085589 0.000000
+5 10 1 0.058165 0.086587 0.004716
+5 10 2 0.055537 0.087670 0.011465
+5 10 3 0.052285 0.090016 0.021357
+5 10 4 0.048059 0.092530 0.031655
+5 10 5 0.037012 0.096224 0.044797
+5 10 6 0.026528 0.100296 0.058819
+5 10 7 0.018483 0.106008 0.076654
+5 10 8 0.010041 0.111164 0.095158
+5 10 9 0.000411 0.114649 0.115671
+5 10 10 0.000000 0.119689 0.144616
+5 10 11 0.000000 0.128151 0.192107
+5 10 12 0.000000 0.135971 0.239060
+5 10 13 0.000000 0.142722 0.285116
+5 10 14 0.000000 0.148963 0.330124
+5 10 15 0.000000 0.154550 0.373784
+5 10 16 0.000000 0.159609 0.416504
+5 10 17 0.000000 0.164139 0.458284
+5 10 18 0.000000 0.168646 0.496068
+5 10 19 0.000000 0.173135 0.530742
+5 10 20 0.000000 0.177031 0.560825
+5 10 21 0.000000 0.180570 0.588151
+5 10 22 0.000000 0.186144 0.608825
+5 10 23 0.000000 0.192643 0.626475
+5 10 24 0.000000 0.206519 0.644977
+5 10 25 0.000000 0.222854 0.663764
+5 10 26 0.000000 0.252999 0.683947
+5 10 27 0.000000 0.286331 0.704452
+5 10 28 0.000000 0.307358 0.717597
+5 10 29 0.000000 0.326626 0.729690
+5 10 30 0.000000 0.340908 0.738533
+5 10 31 0.000000 0.354858 0.747160
+5 11 0 0.049944 0.110052 0.000000
+5 11 1 0.047444 0.111669 0.000000
+5 11 2 0.044654 0.113342 0.000000
+5 11 3 0.037509 0.115861 0.000000
+5 11 4 0.026900 0.118627 0.001299
+5 11 5 0.000000 0.123121 0.030998
+5 11 6 0.000000 0.127992 0.058790
+5 11 7 0.000000 0.134496 0.078317
+5 11 8 0.000000 0.140655 0.098832
+5 11 9 0.000000 0.145778 0.122315
+5 11 10 0.000000 0.152238 0.153641
+5 11 11 0.000000 0.161640 0.202221
+5 11 12 0.000000 0.170406 0.250149
+5 11 13 0.000000 0.178112 0.296987
+5 11 14 0.000000 0.185168 0.343182
+5 11 15 0.000000 0.191389 0.388549
+5 11 16 0.000000 0.197188 0.432358
+5 11 17 0.000000 0.202564 0.474608
+5 11 18 0.000000 0.207843 0.512871
+5 11 19 0.000000 0.213044 0.548031
+5 11 20 0.000000 0.217516 0.578486
+5 11 21 0.000000 0.221549 0.606119
+5 11 22 0.000000 0.227084 0.626974
+5 11 23 0.000000 0.233301 0.644749
+5 11 24 0.000000 0.246342 0.662647
+5 11 25 0.000000 0.261658 0.680588
+5 11 26 0.000000 0.288347 0.698404
+5 11 27 0.000000 0.317661 0.716192
+5 11 28 0.000000 0.336539 0.728174
+5 11 29 0.000000 0.353927 0.739327
+5 11 30 0.000000 0.367085 0.747759
+5 11 31 0.000000 0.379961 0.756009
+5 12 0 0.011570 0.135546 0.000000
+5 12 1 0.009598 0.137656 0.000000
+5 12 2 0.007267 0.139808 0.000000
+5 12 3 0.000000 0.142596 0.000000
+5 12 4 0.000000 0.145691 0.000000
+5 12 5 0.000000 0.150932 0.018203
+5 12 6 0.000000 0.156600 0.057875
+5 12 7 0.000000 0.164113 0.079321
+5 12 8 0.000000 0.171395 0.101915
+5 12 9 0.000000 0.177985 0.127955
+5 12 10 0.000000 0.185719 0.161479
+5 12 11 0.000000 0.195970 0.211465
+5 12 12 0.000000 0.205660 0.260750
+5 12 13 0.000000 0.214412 0.308864
+5 12 14 0.000000 0.222342 0.356383
+5 12 15 0.000000 0.229215 0.403134
+5 12 16 0.000000 0.235702 0.448075
+5 12 17 0.000000 0.241805 0.491204
+5 12 18 0.000000 0.247707 0.529978
+5 12 19 0.000000 0.253454 0.565365
+5 12 20 0.000000 0.258397 0.596225
+5 12 21 0.000000 0.262857 0.624369
+5 12 22 0.000000 0.268268 0.645193
+5 12 23 0.000000 0.274112 0.662691
+5 12 24 0.000000 0.286197 0.679976
+5 12 25 0.000000 0.300362 0.697190
+5 12 26 0.000000 0.324004 0.713044
+5 12 27 0.000000 0.349833 0.728584
+5 12 28 0.000000 0.366798 0.739401
+5 12 29 0.000000 0.382497 0.749544
+5 12 30 0.000000 0.394543 0.757348
+5 12 31 0.000000 0.406345 0.764996
+5 13 0 0.000000 0.162759 0.000000
+5 13 1 0.000000 0.165151 0.000000
+5 13 2 0.000000 0.167594 0.000000
+5 13 3 0.000000 0.170813 0.000000
+5 13 4 0.000000 0.174367 0.000000
+5 13 5 0.000000 0.180267 0.007083
+5 13 6 0.000000 0.186726 0.055485
+5 13 7 0.000000 0.195610 0.079226
+5 13 8 0.000000 0.204216 0.104010
+5 13 9 0.000000 0.211989 0.131922
+5 13 10 0.000000 0.220754 0.167337
+5 13 11 0.000000 0.231703 0.219258
+5 13 12 0.000000 0.242277 0.270539
+5 13 13 0.000000 0.252228 0.320753
+5 13 14 0.000000 0.261130 0.369822
+5 13 15 0.000000 0.268685 0.417420
+5 13 16 0.000000 0.275776 0.463563
+5 13 17 0.000000 0.282403 0.508250
+5 13 18 0.000000 0.288686 0.547592
+5 13 19 0.000000 0.294700 0.582776
+5 13 20 0.000000 0.299938 0.614093
+5 13 21 0.000000 0.304710 0.643089
+5 13 22 0.000000 0.309858 0.663529
+5 13 23 0.000000 0.315177 0.680080
+5 13 24 0.000000 0.326103 0.696735
+5 13 25 0.000000 0.338897 0.713425
+5 13 26 0.000000 0.360175 0.727991
+5 13 27 0.000000 0.383411 0.742066
+5 13 28 0.000000 0.398852 0.751712
+5 13 29 0.000000 0.413180 0.760727
+5 13 30 0.000000 0.424134 0.767541
+5 13 31 0.000000 0.434863 0.774210
+5 14 0 0.000000 0.195718 0.000000
+5 14 1 0.000000 0.198227 0.000000
+5 14 2 0.000000 0.200793 0.000000
+5 14 3 0.000000 0.204213 0.000000
+5 14 4 0.000000 0.207987 0.000000
+5 14 5 0.000000 0.214233 0.000000
+5 14 6 0.000000 0.221149 0.017684
+5 14 7 0.000000 0.230968 0.063307
+5 14 8 0.000000 0.240489 0.105018
+5 14 9 0.000000 0.249116 0.134993
+5 14 10 0.000000 0.258714 0.172439
+5 14 11 0.000000 0.270449 0.226319
+5 14 12 0.000000 0.281865 0.279434
+5 14 13 0.000000 0.292746 0.331274
+5 14 14 0.000000 0.302546 0.381918
+5 14 15 0.000000 0.310955 0.431024
+5 14 16 0.000000 0.318706 0.478395
+5 14 17 0.000000 0.325799 0.524032
+5 14 18 0.000000 0.332476 0.563738
+5 14 19 0.000000 0.338829 0.598832
+5 14 20 0.000000 0.344241 0.630362
+5 14 21 0.000000 0.349089 0.659756
+5 14 22 0.000000 0.353889 0.680107
+5 14 23 0.000000 0.358666 0.696349
+5 14 24 0.000000 0.368446 0.712705
+5 14 25 0.000000 0.379893 0.729100
+5 14 26 0.000000 0.398564 0.742389
+5 14 27 0.000000 0.418902 0.754960
+5 14 28 0.000000 0.432268 0.763288
+5 14 29 0.000000 0.444638 0.771009
+5 14 30 0.000000 0.454280 0.776973
+5 14 31 0.000000 0.463740 0.782820
+5 15 0 0.000000 0.236065 0.000000
+5 15 1 0.000000 0.238480 0.000000
+5 15 2 0.000000 0.240952 0.000000
+5 15 3 0.000000 0.244278 0.000000
+5 15 4 0.000000 0.247962 0.000000
+5 15 5 0.000000 0.254154 0.000000
+5 15 6 0.000000 0.261096 0.000000
+5 15 7 0.000000 0.271291 0.027041
+5 15 8 0.000000 0.281202 0.104626
+5 15 9 0.000000 0.290259 0.136912
+5 15 10 0.000000 0.300435 0.176569
+5 15 11 0.000000 0.313071 0.232439
+5 15 12 0.000000 0.325270 0.287179
+5 15 13 0.000000 0.336740 0.340038
+5 15 14 0.000000 0.347341 0.392288
+5 15 15 0.000000 0.356823 0.443754
+5 15 16 0.000000 0.365306 0.492387
+5 15 17 0.000000 0.372791 0.538187
+5 15 18 0.000000 0.379881 0.577995
+5 15 19 0.000000 0.386665 0.613143
+5 15 20 0.000000 0.392096 0.644577
+5 15 21 0.000000 0.396717 0.673782
+5 15 22 0.000000 0.401058 0.694425
+5 15 23 0.000000 0.405271 0.711176
+5 15 24 0.000000 0.413923 0.727660
+5 15 25 0.000000 0.424053 0.744055
+5 15 26 0.000000 0.439804 0.756082
+5 15 27 0.000000 0.456851 0.767101
+5 15 28 0.000000 0.467433 0.773918
+5 15 29 0.000000 0.477092 0.780135
+5 15 30 0.000000 0.485140 0.785425
+5 15 31 0.000000 0.493081 0.790653
+5 16 0 0.000000 0.272107 0.000000
+5 16 1 0.000000 0.274643 0.000000
+5 16 2 0.000000 0.277237 0.000000
+5 16 3 0.000000 0.280684 0.000000
+5 16 4 0.000000 0.284493 0.000000
+5 16 5 0.000000 0.290833 0.000000
+5 16 6 0.000000 0.297949 0.000000
+5 16 7 0.000000 0.308426 0.007925
+5 16 8 0.000000 0.318690 0.103135
+5 16 9 0.000000 0.328311 0.137813
+5 16 10 0.000000 0.339085 0.179667
+5 16 11 0.000000 0.352395 0.237312
+5 16 12 0.000000 0.365286 0.293665
+5 16 13 0.000000 0.377481 0.347868
+5 16 14 0.000000 0.388745 0.401533
+5 16 15 0.000000 0.398811 0.454508
+5 16 16 0.000000 0.407876 0.504249
+5 16 17 0.000000 0.415940 0.550758
+5 16 18 0.000000 0.423242 0.590865
+5 16 19 0.000000 0.429951 0.625993
+5 16 20 0.000000 0.435396 0.657420
+5 16 21 0.000000 0.440084 0.686625
+5 16 22 0.000000 0.444001 0.707489
+5 16 23 0.000000 0.447569 0.724562
+5 16 24 0.000000 0.455142 0.740929
+5 16 25 0.000000 0.464050 0.757062
+5 16 26 0.000000 0.477398 0.768097
+5 16 27 0.000000 0.491770 0.777955
+5 16 28 0.000000 0.500396 0.783846
+5 16 29 0.000000 0.508202 0.789170
+5 16 30 0.000000 0.514919 0.793717
+5 16 31 0.000000 0.521563 0.798213
+5 17 0 0.000000 0.303845 0.000000
+5 17 1 0.000000 0.306718 0.000000
+5 17 2 0.000000 0.309648 0.000000
+5 17 3 0.000000 0.313432 0.000000
+5 17 4 0.000000 0.317579 0.000000
+5 17 5 0.000000 0.324271 0.000000
+5 17 6 0.000000 0.331708 0.000000
+5 17 7 0.000000 0.342374 0.005958
+5 17 8 0.000000 0.352953 0.100544
+5 17 9 0.000000 0.363272 0.137694
+5 17 10 0.000000 0.374665 0.181735
+5 17 11 0.000000 0.388420 0.240939
+5 17 12 0.000000 0.401913 0.298892
+5 17 13 0.000000 0.414969 0.354763
+5 17 14 0.000000 0.426759 0.409654
+5 17 15 0.000000 0.436919 0.463287
+5 17 16 0.000000 0.446414 0.513984
+5 17 17 0.000000 0.455246 0.561745
+5 17 18 0.000000 0.462557 0.602347
+5 17 19 0.000000 0.468687 0.637382
+5 17 20 0.000000 0.474141 0.668890
+5 17 21 0.000000 0.479190 0.698283
+5 17 22 0.000000 0.482719 0.719298
+5 17 23 0.000000 0.485559 0.736504
+5 17 24 0.000000 0.492104 0.752511
+5 17 25 0.000000 0.499884 0.768119
+5 17 26 0.000000 0.511347 0.778432
+5 17 27 0.000000 0.523659 0.787524
+5 17 28 0.000000 0.531158 0.793072
+5 17 29 0.000000 0.537969 0.798114
+5 17 30 0.000000 0.543617 0.801850
+5 17 31 0.000000 0.549187 0.805499
+5 18 0 0.000000 0.335675 0.000000
+5 18 1 0.000000 0.338400 0.000000
+5 18 2 0.000000 0.341181 0.000000
+5 18 3 0.000000 0.344786 0.000000
+5 18 4 0.000000 0.348766 0.000000
+5 18 5 0.000000 0.355366 0.000000
+5 18 6 0.000000 0.362803 0.000000
+5 18 7 0.000000 0.373868 0.003285
+5 18 8 0.000000 0.384793 0.096834
+5 18 9 0.000000 0.395298 0.136592
+5 18 10 0.000000 0.406901 0.183027
+5 18 11 0.000000 0.420917 0.244151
+5 18 12 0.000000 0.434721 0.303651
+5 18 13 0.000000 0.448167 0.360446
+5 18 14 0.000000 0.460482 0.416242
+5 18 15 0.000000 0.471340 0.470753
+5 18 16 0.000000 0.481242 0.521992
+5 18 17 0.000000 0.490189 0.569958
+5 18 18 0.000000 0.497503 0.610879
+5 18 19 0.000000 0.503546 0.646321
+5 18 20 0.000000 0.508929 0.678023
+5 18 21 0.000000 0.513915 0.707481
+5 18 22 0.000000 0.517316 0.728729
+5 18 23 0.000000 0.519995 0.746244
+5 18 24 0.000000 0.525876 0.762077
+5 18 25 0.000000 0.532823 0.777350
+5 18 26 0.000000 0.542638 0.787076
+5 18 27 0.000000 0.553115 0.795523
+5 18 28 0.000000 0.559606 0.800763
+5 18 29 0.000000 0.565528 0.805545
+5 18 30 0.000000 0.570234 0.808918
+5 18 31 0.000000 0.574858 0.812197
+5 19 0 0.000000 0.367577 0.000000
+5 19 1 0.000000 0.369778 0.000000
+5 19 2 0.000000 0.372030 0.000000
+5 19 3 0.000000 0.375056 0.000000
+5 19 4 0.000000 0.378475 0.000000
+5 19 5 0.000000 0.384638 0.000000
+5 19 6 0.000000 0.391826 0.000000
+5 19 7 0.000000 0.403455 0.000061
+5 19 8 0.000000 0.414750 0.092254
+5 19 9 0.000000 0.425043 0.134726
+5 19 10 0.000000 0.436536 0.183715
+5 19 11 0.000000 0.450672 0.247041
+5 19 12 0.000000 0.464558 0.308047
+5 19 13 0.000000 0.478029 0.365188
+5 19 14 0.000000 0.490867 0.421637
+5 19 15 0.000000 0.502893 0.477198
+5 19 16 0.000000 0.513184 0.528656
+5 19 17 0.000000 0.521740 0.576012
+5 19 18 0.000000 0.529049 0.617116
+5 19 19 0.000000 0.535390 0.653355
+5 19 20 0.000000 0.540640 0.685338
+5 19 21 0.000000 0.545235 0.714766
+5 19 22 0.000000 0.548707 0.736310
+5 19 23 0.000000 0.551669 0.754271
+5 19 24 0.000000 0.557167 0.770075
+5 19 25 0.000000 0.563510 0.785159
+5 19 26 0.000000 0.571862 0.794405
+5 19 27 0.000000 0.580676 0.802303
+5 19 28 0.000000 0.586254 0.807262
+5 19 29 0.000000 0.591369 0.811801
+5 19 30 0.000000 0.595231 0.815159
+5 19 31 0.000000 0.599010 0.818438
+5 20 0 0.000000 0.390933 0.000000
+5 20 1 0.000000 0.393114 0.000000
+5 20 2 0.000000 0.395350 0.000000
+5 20 3 0.000000 0.398428 0.000000
+5 20 4 0.000000 0.401892 0.000000
+5 20 5 0.000000 0.408063 0.000000
+5 20 6 0.000000 0.415258 0.000000
+5 20 7 0.000000 0.426898 0.000000
+5 20 8 0.000000 0.438261 0.056987
+5 20 9 0.000000 0.448792 0.121444
+5 20 10 0.000000 0.460530 0.185937
+5 20 11 0.000000 0.474919 0.250510
+5 20 12 0.000000 0.489056 0.312536
+5 20 13 0.000000 0.502772 0.370320
+5 20 14 0.000000 0.515755 0.427252
+5 20 15 0.000000 0.527798 0.483089
+5 20 16 0.000000 0.538251 0.534845
+5 20 17 0.000000 0.547115 0.582520
+5 20 18 0.000000 0.554419 0.623794
+5 20 19 0.000000 0.560509 0.660088
+5 20 20 0.000000 0.565805 0.692374
+5 20 21 0.000000 0.570625 0.722255
+5 20 22 0.000000 0.574049 0.743599
+5 20 23 0.000000 0.576837 0.761062
+5 20 24 0.000000 0.581858 0.776512
+5 20 25 0.000000 0.587623 0.791291
+5 20 26 0.000000 0.594871 0.800248
+5 20 27 0.000000 0.602462 0.807863
+5 20 28 0.000000 0.607262 0.812634
+5 20 29 0.000000 0.611663 0.816999
+5 20 30 0.000000 0.614939 0.820212
+5 20 31 0.000000 0.618141 0.823349
+5 21 0 0.000000 0.409162 0.000000
+5 21 1 0.000000 0.411624 0.000000
+5 21 2 0.000000 0.414151 0.000000
+5 21 3 0.000000 0.417660 0.000000
+5 21 4 0.000000 0.421536 0.000000
+5 21 5 0.000000 0.427979 0.000000
+5 21 6 0.000000 0.435336 0.000000
+5 21 7 0.000000 0.446655 0.000000
+5 21 8 0.000000 0.457903 0.003308
+5 21 9 0.000000 0.468944 0.101313
+5 21 10 0.000000 0.481137 0.189080
+5 21 11 0.000000 0.495864 0.254326
+5 21 12 0.000000 0.510352 0.317081
+5 21 13 0.000000 0.524443 0.375687
+5 21 14 0.000000 0.537344 0.432999
+5 21 15 0.000000 0.548713 0.488648
+5 21 16 0.000000 0.559194 0.540748
+5 21 17 0.000000 0.568786 0.589300
+5 21 18 0.000000 0.576082 0.630737
+5 21 19 0.000000 0.581593 0.666640
+5 21 20 0.000000 0.587043 0.699244
+5 21 21 0.000000 0.592458 0.729868
+5 21 22 0.000000 0.595760 0.750712
+5 21 23 0.000000 0.598103 0.767110
+5 21 24 0.000000 0.602590 0.782012
+5 21 25 0.000000 0.607790 0.796415
+5 21 26 0.000000 0.614151 0.805201
+5 21 27 0.000000 0.620781 0.812691
+5 21 28 0.000000 0.624885 0.817330
+5 21 29 0.000000 0.628628 0.821561
+5 21 30 0.000000 0.631473 0.824553
+5 21 31 0.000000 0.634259 0.827462
+5 22 0 0.000000 0.425168 0.000000
+5 22 1 0.000000 0.427589 0.000000
+5 22 2 0.000000 0.430074 0.000000
+5 22 3 0.000000 0.433524 0.000000
+5 22 4 0.000000 0.437321 0.000000
+5 22 5 0.000000 0.443553 0.000000
+5 22 6 0.000000 0.450750 0.000000
+5 22 7 0.000000 0.462124 0.000000
+5 22 8 0.000000 0.473455 0.017082
+5 22 9 0.000000 0.484655 0.110565
+5 22 10 0.000000 0.497047 0.195354
+5 22 11 0.000000 0.512063 0.261014
+5 22 12 0.000000 0.526640 0.324077
+5 22 13 0.000000 0.540488 0.382810
+5 22 14 0.000000 0.553221 0.440107
+5 22 15 0.000000 0.564520 0.495557
+5 22 16 0.000000 0.575041 0.547445
+5 22 17 0.000000 0.584786 0.595771
+5 22 18 0.000000 0.592250 0.637024
+5 22 19 0.000000 0.597940 0.672778
+5 22 20 0.000000 0.603383 0.705128
+5 22 21 0.000000 0.608676 0.735436
+5 22 22 0.000000 0.612012 0.755967
+5 22 23 0.000000 0.614457 0.772053
+5 22 24 0.000000 0.618691 0.786575
+5 22 25 0.000000 0.623522 0.800574
+5 22 26 0.000000 0.629180 0.809013
+5 22 27 0.000000 0.635029 0.816168
+5 22 28 0.000000 0.638742 0.820695
+5 22 29 0.000000 0.642150 0.824848
+5 22 30 0.000000 0.644818 0.827793
+5 22 31 0.000000 0.647437 0.830659
+5 23 0 0.000000 0.440164 0.000000
+5 23 1 0.000000 0.442397 0.000000
+5 23 2 0.000000 0.444689 0.000000
+5 23 3 0.000000 0.447856 0.000000
+5 23 4 0.000000 0.451353 0.000000
+5 23 5 0.000000 0.457154 0.000000
+5 23 6 0.000000 0.464044 0.000000
+5 23 7 0.000000 0.475645 0.000000
+5 23 8 0.000000 0.487147 0.061515
+5 23 9 0.000000 0.498347 0.133174
+5 23 10 0.000000 0.510823 0.203050
+5 23 11 0.000000 0.526105 0.269008
+5 23 12 0.000000 0.540652 0.332186
+5 23 13 0.000000 0.553976 0.390731
+5 23 14 0.000000 0.566502 0.447834
+5 23 15 0.000000 0.578004 0.503080
+5 23 16 0.000000 0.588573 0.554503
+5 23 17 0.000000 0.598208 0.602100
+5 23 18 0.000000 0.605919 0.643014
+5 23 19 0.000000 0.612134 0.678728
+5 23 20 0.000000 0.617495 0.710565
+5 23 21 0.000000 0.622343 0.740075
+5 23 22 0.000000 0.625781 0.760377
+5 23 23 0.000000 0.628578 0.776494
+5 23 24 0.000000 0.632689 0.790711
+5 23 25 0.000000 0.637237 0.804296
+5 23 26 0.000000 0.642275 0.812306
+5 23 27 0.000000 0.647427 0.819030
+5 23 28 0.000000 0.650889 0.823457
+5 23 29 0.000000 0.654109 0.827554
+5 23 30 0.000000 0.656714 0.830534
+5 23 31 0.000000 0.659278 0.833438
+5 24 0 0.000000 0.454513 0.000000
+5 24 1 0.000000 0.457474 0.000000
+5 24 2 0.000000 0.460479 0.000000
+5 24 3 0.000000 0.464128 0.000000
+5 24 4 0.000000 0.468039 0.000000
+5 24 5 0.000000 0.473774 0.000000
+5 24 6 0.000000 0.480540 0.000000
+5 24 7 0.000000 0.491776 0.000000
+5 24 8 0.000000 0.503038 0.086863
+5 24 9 0.000000 0.514379 0.152642
+5 24 10 0.000000 0.526994 0.218522
+5 24 11 0.000000 0.542414 0.284625
+5 24 12 0.000000 0.556919 0.347638
+5 24 13 0.000000 0.569899 0.405501
+5 24 14 0.000000 0.582101 0.461797
+5 24 15 0.000000 0.593301 0.516076
+5 24 16 0.000000 0.603564 0.566360
+5 24 17 0.000000 0.612890 0.612647
+5 24 18 0.000000 0.620500 0.652664
+5 24 19 0.000000 0.626776 0.687804
+5 24 20 0.000000 0.632090 0.718817
+5 24 21 0.000000 0.636826 0.747352
+5 24 22 0.000000 0.640241 0.767015
+5 24 23 0.000000 0.643056 0.782646
+5 24 24 0.000000 0.646823 0.796294
+5 24 25 0.000000 0.650907 0.809281
+5 24 26 0.000000 0.655602 0.817001
+5 24 27 0.000000 0.660438 0.823506
+5 24 28 0.000000 0.663644 0.827779
+5 24 29 0.000000 0.666617 0.831734
+5 24 30 0.000000 0.668957 0.834647
+5 24 31 0.000000 0.671255 0.837491
+5 25 0 0.000000 0.468645 0.000000
+5 25 1 0.000000 0.472641 0.000000
+5 25 2 0.000000 0.476661 0.000000
+5 25 3 0.000000 0.481048 0.000000
+5 25 4 0.000000 0.485610 0.000000
+5 25 5 0.000000 0.491399 0.000000
+5 25 6 0.000000 0.498104 0.000000
+5 25 7 0.000000 0.508776 0.004910
+5 25 8 0.000000 0.519662 0.105849
+5 25 9 0.000000 0.531191 0.171065
+5 25 10 0.000000 0.543965 0.236586
+5 25 11 0.000000 0.559479 0.302783
+5 25 12 0.000000 0.573936 0.365537
+5 25 13 0.000000 0.586635 0.422554
+5 25 14 0.000000 0.598472 0.477839
+5 25 15 0.000000 0.609203 0.530896
+5 25 16 0.000000 0.619042 0.579816
+5 25 17 0.000000 0.627992 0.624600
+5 25 18 0.000000 0.635385 0.663535
+5 25 19 0.000000 0.641567 0.697923
+5 25 20 0.000000 0.646845 0.728007
+5 25 21 0.000000 0.651581 0.755508
+5 25 22 0.000000 0.654932 0.774396
+5 25 23 0.000000 0.657652 0.789369
+5 25 24 0.000000 0.661002 0.802358
+5 25 25 0.000000 0.664562 0.814687
+5 25 26 0.000000 0.669006 0.822163
+5 25 27 0.000000 0.673654 0.828520
+5 25 28 0.000000 0.676603 0.832623
+5 25 29 0.000000 0.679309 0.836405
+5 25 30 0.000000 0.681317 0.839219
+5 25 31 0.000000 0.683278 0.841969
+5 26 0 0.000000 0.481197 0.000000
+5 26 1 0.000000 0.485387 0.000000
+5 26 2 0.000000 0.489632 0.000000
+5 26 3 0.000000 0.494704 0.000000
+5 26 4 0.000000 0.500082 0.000000
+5 26 5 0.000000 0.507607 0.000000
+5 26 6 0.000000 0.515694 0.000000
+5 26 7 0.000000 0.526215 0.029754
+5 26 8 0.000000 0.536983 0.144560
+5 26 9 0.000000 0.548491 0.202471
+5 26 10 0.000000 0.561116 0.262449
+5 26 11 0.000000 0.576201 0.326975
+5 26 12 0.000000 0.590274 0.388280
+5 26 13 0.000000 0.602658 0.444218
+5 26 14 0.000000 0.614018 0.498065
+5 26 15 0.000000 0.624061 0.549224
+5 26 16 0.000000 0.633309 0.596278
+5 26 17 0.000000 0.641762 0.639227
+5 26 18 0.000000 0.648763 0.676790
+5 26 19 0.000000 0.654634 0.710165
+5 26 20 0.000000 0.659672 0.738717
+5 26 21 0.000000 0.664211 0.764375
+5 26 22 0.000000 0.667436 0.782252
+5 26 23 0.000000 0.670062 0.796591
+5 26 24 0.000000 0.673315 0.809215
+5 26 25 0.000000 0.676776 0.821267
+5 26 26 0.000000 0.680797 0.828137
+5 26 27 0.000000 0.684946 0.833810
+5 26 28 0.000000 0.687789 0.837789
+5 26 29 0.000000 0.690445 0.841526
+5 26 30 0.000000 0.692391 0.844321
+5 26 31 0.000000 0.694289 0.847053
+5 27 0 0.000000 0.493385 0.000000
+5 27 1 0.000000 0.497574 0.000000
+5 27 2 0.000000 0.501861 0.000000
+5 27 3 0.000000 0.507607 0.000000
+5 27 4 0.000000 0.513840 0.000000
+5 27 5 0.000000 0.523487 0.000000
+5 27 6 0.000000 0.533289 0.000000
+5 27 7 0.000000 0.543755 0.057627
+5 27 8 0.000000 0.554465 0.187821
+5 27 9 0.000000 0.565903 0.236873
+5 27 10 0.000000 0.578309 0.290112
+5 27 11 0.000000 0.592845 0.352560
+5 27 12 0.000000 0.606454 0.412142
+5 27 13 0.000000 0.618517 0.466945
+5 27 14 0.000000 0.629374 0.519255
+5 27 15 0.000000 0.638680 0.568361
+5 27 16 0.000000 0.647297 0.613434
+5 27 17 0.000000 0.655225 0.654471
+5 27 18 0.000000 0.661793 0.690595
+5 27 19 0.000000 0.667303 0.722896
+5 27 20 0.000000 0.672055 0.749777
+5 27 21 0.000000 0.676351 0.773407
+5 27 22 0.000000 0.679435 0.790217
+5 27 23 0.000000 0.681968 0.803929
+5 27 24 0.000000 0.685197 0.816255
+5 27 25 0.000000 0.688658 0.828119
+5 27 26 0.000000 0.692215 0.834298
+5 27 27 0.000000 0.695795 0.839164
+5 27 28 0.000000 0.698566 0.843029
+5 27 29 0.000000 0.701222 0.846751
+5 27 30 0.000000 0.703168 0.849545
+5 27 31 0.000000 0.705066 0.852277
+5 28 0 0.000000 0.501443 0.000000
+5 28 1 0.000000 0.505633 0.000000
+5 28 2 0.000000 0.509925 0.000000
+5 28 3 0.000000 0.515755 0.000000
+5 28 4 0.000000 0.522129 0.000000
+5 28 5 0.000000 0.532324 0.000000
+5 28 6 0.000000 0.542809 0.000000
+5 28 7 0.000000 0.554550 0.069024
+5 28 8 0.000000 0.566255 0.206675
+5 28 9 0.000000 0.577849 0.256758
+5 28 10 0.000000 0.590186 0.310085
+5 28 11 0.000000 0.604160 0.370546
+5 28 12 0.000000 0.617310 0.428696
+5 28 13 0.000000 0.629086 0.482993
+5 28 14 0.000000 0.639597 0.534455
+5 28 15 0.000000 0.648482 0.582269
+5 28 16 0.000000 0.656691 0.626223
+5 28 17 0.000000 0.664225 0.666316
+5 28 18 0.000000 0.670410 0.701303
+5 28 19 0.000000 0.675545 0.732318
+5 28 20 0.000000 0.680035 0.758104
+5 28 21 0.000000 0.684137 0.780753
+5 28 22 0.000000 0.687184 0.796888
+5 28 23 0.000000 0.689753 0.810062
+5 28 24 0.000000 0.692929 0.821804
+5 28 25 0.000000 0.696308 0.833068
+5 28 26 0.000000 0.699792 0.839053
+5 28 27 0.000000 0.703300 0.843818
+5 28 28 0.000000 0.706021 0.847309
+5 28 29 0.000000 0.708629 0.850617
+5 28 30 0.000000 0.710539 0.853386
+5 28 31 0.000000 0.712403 0.856118
+5 29 0 0.000000 0.508912 0.000000
+5 29 1 0.000000 0.513102 0.000000
+5 29 2 0.000000 0.517394 0.000000
+5 29 3 0.000000 0.523223 0.000000
+5 29 4 0.000000 0.529638 0.000000
+5 29 5 0.000000 0.540155 0.000000
+5 29 6 0.000000 0.551175 0.000000
+5 29 7 0.000000 0.564381 0.078068
+5 29 8 0.000000 0.577232 0.222041
+5 29 9 0.000000 0.589014 0.274569
+5 29 10 0.000000 0.601304 0.328960
+5 29 11 0.000000 0.614714 0.387446
+5 29 12 0.000000 0.627405 0.444206
+5 29 13 0.000000 0.638899 0.498088
+5 29 14 0.000000 0.649087 0.548798
+5 29 15 0.000000 0.657596 0.595430
+5 29 16 0.000000 0.665429 0.638389
+5 29 17 0.000000 0.672587 0.677676
+5 29 18 0.000000 0.678395 0.711569
+5 29 19 0.000000 0.683155 0.741268
+5 29 20 0.000000 0.687386 0.766041
+5 29 21 0.000000 0.691300 0.787858
+5 29 22 0.000000 0.694326 0.803373
+5 29 23 0.000000 0.696950 0.816022
+5 29 24 0.000000 0.700069 0.827139
+5 29 25 0.000000 0.703354 0.837746
+5 29 26 0.000000 0.706820 0.843607
+5 29 27 0.000000 0.710328 0.848373
+5 29 28 0.000000 0.713001 0.851452
+5 29 29 0.000000 0.715555 0.854290
+5 29 30 0.000000 0.717425 0.857029
+5 29 31 0.000000 0.719249 0.859761
+5 30 0 0.000000 0.514574 0.000000
+5 30 1 0.000000 0.518815 0.000000
+5 30 2 0.000000 0.523152 0.000000
+5 30 3 0.000000 0.528930 0.000000
+5 30 4 0.000000 0.535304 0.000000
+5 30 5 0.000000 0.545855 0.000000
+5 30 6 0.000000 0.557142 0.000000
+5 30 7 0.000000 0.571623 0.084853
+5 30 8 0.000000 0.585454 0.233581
+5 30 9 0.000000 0.597336 0.287988
+5 30 10 0.000000 0.609629 0.343261
+5 30 11 0.000000 0.622827 0.400442
+5 30 12 0.000000 0.635281 0.456290
+5 30 13 0.000000 0.646493 0.509919
+5 30 14 0.000000 0.656396 0.560107
+5 30 15 0.000000 0.664617 0.605871
+5 30 16 0.000000 0.672118 0.647931
+5 30 17 0.000000 0.678899 0.686285
+5 30 18 0.000000 0.684382 0.719258
+5 30 19 0.000000 0.688853 0.748044
+5 30 20 0.000000 0.692859 0.772080
+5 30 21 0.000000 0.696584 0.793266
+5 30 22 0.000000 0.699640 0.808257
+5 30 23 0.000000 0.702392 0.820433
+5 30 24 0.000000 0.705446 0.831070
+5 30 25 0.000000 0.708599 0.841195
+5 30 26 0.000000 0.712041 0.846996
+5 30 27 0.000000 0.715549 0.851798
+5 30 28 0.000000 0.718219 0.854869
+5 30 29 0.000000 0.720770 0.857692
+5 30 30 0.000000 0.722637 0.860134
+5 30 31 0.000000 0.724459 0.862551
+5 31 0 0.000000 0.520115 0.000000
+5 31 1 0.000000 0.524411 0.000000
+5 31 2 0.000000 0.528795 0.000000
+5 31 3 0.000000 0.534519 0.000000
+5 31 4 0.000000 0.540848 0.000000
+5 31 5 0.000000 0.551413 0.000000
+5 31 6 0.000000 0.562950 0.000000
+5 31 7 0.000000 0.578692 0.091487
+5 31 8 0.000000 0.593493 0.244865
+5 31 9 0.000000 0.605469 0.301113
+5 31 10 0.000000 0.617768 0.357258
+5 31 11 0.000000 0.630778 0.413177
+5 31 12 0.000000 0.643008 0.468146
+5 31 13 0.000000 0.653938 0.521532
+5 31 14 0.000000 0.663559 0.571213
+5 31 15 0.000000 0.671498 0.616131
+5 31 16 0.000000 0.678670 0.657298
+5 31 17 0.000000 0.685075 0.694712
+5 31 18 0.000000 0.690234 0.726775
+5 31 19 0.000000 0.694424 0.754675
+5 31 20 0.000000 0.698206 0.777993
+5 31 21 0.000000 0.701744 0.798560
+5 31 22 0.000000 0.704833 0.813034
+5 31 23 0.000000 0.707718 0.824740
+5 31 24 0.000000 0.710705 0.834907
+5 31 25 0.000000 0.713725 0.844562
+5 31 26 0.000000 0.717142 0.850306
+5 31 27 0.000000 0.720650 0.855149
+5 31 28 0.000000 0.723320 0.858237
+5 31 29 0.000000 0.725870 0.861076
+5 31 30 0.000000 0.727737 0.863203
+5 31 31 0.000000 0.729559 0.865283
+6 0 0 0.050904 0.039257 0.028281
+6 0 1 0.051090 0.039274 0.030103
+6 0 2 0.051296 0.039291 0.031970
+6 0 3 0.051805 0.039291 0.034521
+6 0 4 0.052316 0.039314 0.037260
+6 0 5 0.052841 0.039496 0.041320
+6 0 6 0.053127 0.039675 0.045472
+6 0 7 0.052377 0.039839 0.050020
+6 0 8 0.051841 0.039781 0.055976
+6 0 9 0.051945 0.039052 0.066154
+6 0 10 0.050550 0.038165 0.083333
+6 0 11 0.045857 0.036931 0.115917
+6 0 12 0.042132 0.034816 0.148173
+6 0 13 0.040020 0.031231 0.179882
+6 0 14 0.044502 0.018888 0.214701
+6 0 15 0.057461 0.000000 0.253519
+6 0 16 0.068264 0.000000 0.289168
+6 0 17 0.076912 0.000000 0.321646
+6 0 18 0.086908 0.000000 0.351939
+6 0 19 0.097952 0.000000 0.380533
+6 0 20 0.106641 0.000000 0.406285
+6 0 21 0.113916 0.000000 0.430331
+6 0 22 0.119033 0.000000 0.452118
+6 0 23 0.123168 0.000000 0.472879
+6 0 24 0.122585 0.000000 0.498492
+6 0 25 0.120430 0.000000 0.525723
+6 0 26 0.097590 0.000000 0.560607
+6 0 27 0.069977 0.000000 0.597257
+6 0 28 0.000000 0.000000 0.620529
+6 0 29 0.000000 0.000000 0.641889
+6 0 30 0.000000 0.084481 0.657564
+6 0 31 0.000000 0.180981 0.672860
+6 1 0 0.052802 0.041278 0.027917
+6 1 1 0.052375 0.041287 0.030124
+6 1 2 0.052002 0.041295 0.032352
+6 1 3 0.052423 0.041295 0.034893
+6 1 4 0.052857 0.041318 0.037624
+6 1 5 0.053382 0.041500 0.041684
+6 1 6 0.053701 0.041733 0.046134
+6 1 7 0.053127 0.042189 0.052272
+6 1 8 0.052547 0.042393 0.059354
+6 1 9 0.051951 0.041844 0.069267
+6 1 10 0.050162 0.041168 0.086410
+6 1 11 0.045748 0.040216 0.119455
+6 1 12 0.042289 0.038457 0.152354
+6 1 13 0.040424 0.035351 0.185012
+6 1 14 0.044887 0.024420 0.220407
+6 1 15 0.057487 0.003426 0.259319
+6 1 16 0.067940 0.000000 0.295391
+6 1 17 0.076247 0.000000 0.328621
+6 1 18 0.085896 0.000000 0.359286
+6 1 19 0.096590 0.000000 0.387956
+6 1 20 0.104983 0.000000 0.413918
+6 1 21 0.111996 0.000000 0.438255
+6 1 22 0.116790 0.000000 0.459745
+6 1 23 0.120575 0.000000 0.479942
+6 1 24 0.099796 0.000000 0.504216
+6 1 25 0.070828 0.000000 0.529848
+6 1 26 0.042968 0.000000 0.564509
+6 1 27 0.015363 0.000000 0.601253
+6 1 28 0.000000 0.000000 0.624462
+6 1 29 0.000000 0.000000 0.645738
+6 1 30 0.000000 0.092696 0.661399
+6 1 31 0.000000 0.189196 0.676686
+6 2 0 0.054741 0.043333 0.027553
+6 2 1 0.053734 0.043333 0.030121
+6 2 2 0.052808 0.043333 0.032688
+6 2 3 0.053093 0.043339 0.035250
+6 2 4 0.053407 0.043366 0.038000
+6 2 5 0.053933 0.043542 0.042060
+6 2 6 0.054286 0.043827 0.046809
+6 2 7 0.053892 0.044579 0.054543
+6 2 8 0.053268 0.045053 0.062762
+6 2 9 0.051955 0.044695 0.072440
+6 2 10 0.049763 0.044239 0.089566
+6 2 11 0.045638 0.043569 0.123079
+6 2 12 0.042455 0.042168 0.156633
+6 2 13 0.040842 0.039547 0.190258
+6 2 14 0.045283 0.030044 0.226241
+6 2 15 0.057509 0.011692 0.265259
+6 2 16 0.067601 0.000000 0.301763
+6 2 17 0.075560 0.000000 0.335751
+6 2 18 0.084861 0.000000 0.366788
+6 2 19 0.095205 0.000000 0.395530
+6 2 20 0.103296 0.000000 0.421707
+6 2 21 0.110036 0.000000 0.446346
+6 2 22 0.114500 0.000000 0.467540
+6 2 23 0.117929 0.000000 0.487166
+6 2 24 0.077855 0.000000 0.510152
+6 2 25 0.023280 0.000000 0.534256
+6 2 26 0.000000 0.000000 0.568611
+6 2 27 0.000000 0.000000 0.605332
+6 2 28 0.000000 0.000000 0.628473
+6 2 29 0.000000 0.006105 0.649674
+6 2 30 0.000000 0.101085 0.665323
+6 2 31 0.000000 0.197591 0.680602
+6 3 0 0.057284 0.045883 0.027188
+6 3 1 0.056190 0.045883 0.029756
+6 3 2 0.055128 0.045889 0.032353
+6 3 3 0.054537 0.045989 0.035385
+6 3 4 0.054087 0.046087 0.038546
+6 3 5 0.054621 0.046169 0.042607
+6 3 6 0.055028 0.046448 0.047673
+6 3 7 0.054888 0.047576 0.057099
+6 3 8 0.054214 0.048426 0.066632
+6 3 9 0.051938 0.048444 0.076489
+6 3 10 0.049219 0.048335 0.093917
+6 3 11 0.045523 0.047947 0.128003
+6 3 12 0.042743 0.046933 0.162375
+6 3 13 0.041488 0.044877 0.197221
+6 3 14 0.045863 0.037048 0.234012
+6 3 15 0.057476 0.021800 0.273303
+6 3 16 0.067043 0.000000 0.310366
+6 3 17 0.074565 0.000000 0.345200
+6 3 18 0.083477 0.000000 0.376612
+6 3 19 0.093471 0.000000 0.405363
+6 3 20 0.101163 0.000000 0.431838
+6 3 21 0.107473 0.000000 0.456947
+6 3 22 0.111496 0.000000 0.477835
+6 3 23 0.114479 0.000000 0.496804
+6 3 24 0.068649 0.000000 0.519271
+6 3 25 0.006547 0.000000 0.542906
+6 3 26 0.000000 0.000000 0.575722
+6 3 27 0.000000 0.000000 0.610656
+6 3 28 0.000000 0.000000 0.633648
+6 3 29 0.000000 0.016682 0.654934
+6 3 30 0.000000 0.112095 0.670597
+6 3 31 0.000000 0.208686 0.685885
+6 4 0 0.060005 0.048643 0.026822
+6 4 1 0.058836 0.048644 0.029390
+6 4 2 0.057653 0.048656 0.032013
+6 4 3 0.056275 0.048826 0.035457
+6 4 4 0.055113 0.048979 0.038993
+6 4 5 0.055468 0.049012 0.043168
+6 4 6 0.055771 0.049312 0.048603
+6 4 7 0.055852 0.050768 0.059500
+6 4 8 0.055128 0.051968 0.070274
+6 4 9 0.051992 0.052399 0.080679
+6 4 10 0.048768 0.052689 0.098681
+6 4 11 0.045351 0.052665 0.133395
+6 4 12 0.042425 0.052117 0.168657
+6 4 13 0.040316 0.050695 0.204832
+6 4 14 0.044468 0.044667 0.242491
+6 4 15 0.056669 0.032717 0.282057
+6 4 16 0.066300 0.000000 0.319723
+6 4 17 0.073361 0.000000 0.355487
+6 4 18 0.081874 0.000000 0.387316
+6 4 19 0.091516 0.000000 0.416085
+6 4 20 0.098773 0.000000 0.442876
+6 4 21 0.104597 0.000000 0.468479
+6 4 22 0.108147 0.000000 0.489052
+6 4 23 0.110664 0.000000 0.507339
+6 4 24 0.059746 0.000000 0.529325
+6 4 25 0.000000 0.000000 0.552545
+6 4 26 0.000000 0.000000 0.583651
+6 4 27 0.000000 0.000000 0.616577
+6 4 28 0.000000 0.000000 0.639363
+6 4 29 0.000000 0.028255 0.660699
+6 4 30 0.000000 0.124114 0.676373
+6 4 31 0.000000 0.220768 0.691669
+6 5 0 0.063971 0.052868 0.026440
+6 5 1 0.062810 0.052878 0.029008
+6 5 2 0.061625 0.052892 0.031631
+6 5 3 0.060071 0.052969 0.035085
+6 5 4 0.058569 0.053073 0.038743
+6 5 5 0.057427 0.053370 0.043830
+6 5 6 0.056513 0.053882 0.049993
+6 5 7 0.056586 0.055329 0.060814
+6 5 8 0.055818 0.056691 0.072316
+6 5 9 0.052532 0.057799 0.085861
+6 5 10 0.048964 0.058847 0.106335
+6 5 11 0.044777 0.059764 0.142056
+6 5 12 0.037867 0.060226 0.178726
+6 5 13 0.026419 0.059933 0.216979
+6 5 14 0.029250 0.056582 0.255934
+6 5 15 0.050440 0.049303 0.295792
+6 5 16 0.064255 0.024830 0.334359
+6 5 17 0.070695 0.000000 0.371637
+6 5 18 0.078734 0.000000 0.404176
+6 5 19 0.088019 0.000000 0.433030
+6 5 20 0.094588 0.000000 0.460264
+6 5 21 0.099529 0.000000 0.486525
+6 5 22 0.102382 0.000000 0.506722
+6 5 23 0.104286 0.000000 0.524163
+6 5 24 0.052964 0.000000 0.545917
+6 5 25 0.000000 0.000000 0.569110
+6 5 26 0.000000 0.000000 0.597315
+6 5 27 0.000000 0.000000 0.626677
+6 5 28 0.000000 0.000000 0.648853
+6 5 29 0.000000 0.046800 0.670002
+6 5 30 0.000000 0.143197 0.685663
+6 5 31 0.000000 0.239766 0.700959
+6 6 0 0.067386 0.057221 0.026079
+6 6 1 0.066231 0.057413 0.028733
+6 6 2 0.065041 0.057593 0.031438
+6 6 3 0.063345 0.057593 0.034901
+6 6 4 0.061562 0.057659 0.038666
+6 6 5 0.059169 0.058186 0.044547
+6 6 6 0.057181 0.058914 0.051413
+6 6 7 0.056950 0.060513 0.062554
+6 6 8 0.055902 0.062157 0.075053
+6 6 9 0.052405 0.063937 0.091623
+6 6 10 0.048314 0.065768 0.114583
+6 6 11 0.042917 0.067712 0.151597
+6 6 12 0.030759 0.069248 0.189865
+6 6 13 0.007331 0.070107 0.230224
+6 6 14 0.008284 0.069321 0.270542
+6 6 15 0.040582 0.066418 0.310810
+6 6 16 0.059875 0.058444 0.350282
+6 6 17 0.066162 0.045397 0.388957
+6 6 18 0.073878 0.000000 0.422330
+6 6 19 0.082704 0.000000 0.451579
+6 6 20 0.088609 0.000000 0.479351
+6 6 21 0.092762 0.000000 0.506237
+6 6 22 0.094879 0.000000 0.526227
+6 6 23 0.096071 0.000000 0.543082
+6 6 24 0.044324 0.000000 0.564509
+6 6 25 0.000000 0.000000 0.587460
+6 6 26 0.000000 0.000000 0.613266
+6 6 27 0.000000 0.000000 0.639731
+6 6 28 0.000000 0.000000 0.660887
+6 6 29 0.000000 0.083127 0.681286
+6 6 30 0.000000 0.172142 0.696471
+6 6 31 0.000000 0.260819 0.711308
+6 7 0 0.068415 0.062127 0.025809
+6 7 1 0.067250 0.063251 0.028924
+6 7 2 0.066053 0.064304 0.032062
+6 7 3 0.064357 0.064304 0.035534
+6 7 4 0.062550 0.064380 0.039341
+6 7 5 0.059965 0.064992 0.045494
+6 7 6 0.057524 0.065949 0.052964
+6 7 7 0.055712 0.068397 0.066140
+6 7 8 0.053360 0.070842 0.080799
+6 7 9 0.049385 0.073277 0.099905
+6 7 10 0.043994 0.075996 0.125400
+6 7 11 0.035486 0.079341 0.164950
+6 7 12 0.012600 0.082225 0.205637
+6 7 13 0.000000 0.084343 0.248222
+6 7 14 0.000000 0.085623 0.290199
+6 7 15 0.014994 0.085826 0.331395
+6 7 16 0.045373 0.083412 0.371778
+6 7 17 0.053541 0.078382 0.411348
+6 7 18 0.061579 0.058785 0.446090
+6 7 19 0.069515 0.027860 0.477076
+6 7 20 0.074852 0.017127 0.505802
+6 7 21 0.078629 0.018510 0.533170
+6 7 22 0.079847 0.021884 0.553684
+6 7 23 0.079902 0.026163 0.571082
+6 7 24 0.027626 0.035747 0.591767
+6 7 25 0.000000 0.047099 0.613546
+6 7 26 0.000000 0.069492 0.639126
+6 7 27 0.000000 0.094433 0.665582
+6 7 28 0.000000 0.143733 0.683948
+6 7 29 0.000000 0.196513 0.701159
+6 7 30 0.000000 0.243826 0.713853
+6 7 31 0.000000 0.290776 0.726246
+6 8 0 0.069655 0.067923 0.024793
+6 8 1 0.068312 0.069606 0.028477
+6 8 2 0.066943 0.071203 0.032159
+6 8 3 0.065206 0.071508 0.035823
+6 8 4 0.063334 0.071912 0.039855
+6 8 5 0.060521 0.073001 0.046452
+6 8 6 0.057621 0.074525 0.054635
+6 8 7 0.054343 0.077935 0.069685
+6 8 8 0.050622 0.081240 0.086269
+6 8 9 0.045573 0.084231 0.107455
+6 8 10 0.036410 0.087804 0.135193
+6 8 11 0.018195 0.092659 0.177344
+6 8 12 0.000000 0.096999 0.220389
+6 8 13 0.000000 0.100479 0.264924
+6 8 14 0.000000 0.103710 0.308397
+6 8 15 0.000000 0.106621 0.350506
+6 8 16 0.016558 0.108778 0.391843
+6 8 17 0.024829 0.110180 0.432410
+6 8 18 0.032074 0.112236 0.468454
+6 8 19 0.038522 0.114799 0.500980
+6 8 20 0.042472 0.117268 0.530502
+6 8 21 0.044924 0.119680 0.558223
+6 8 22 0.045197 0.125213 0.579105
+6 8 23 0.044480 0.132165 0.596880
+6 8 24 0.000000 0.147613 0.616815
+6 8 25 0.000000 0.165894 0.637470
+6 8 26 0.000000 0.201884 0.662372
+6 8 27 0.000000 0.241962 0.688255
+6 8 28 0.000000 0.265853 0.704203
+6 8 29 0.000000 0.287431 0.718732
+6 8 30 0.000000 0.303309 0.729337
+6 8 31 0.000000 0.318806 0.739681
+6 9 0 0.071531 0.076385 0.021544
+6 9 1 0.069496 0.077513 0.026116
+6 9 2 0.067469 0.078665 0.030677
+6 9 3 0.065565 0.080193 0.035085
+6 9 4 0.063506 0.081873 0.039886
+6 9 5 0.060360 0.084615 0.047442
+6 9 6 0.056978 0.087726 0.056664
+6 9 7 0.052576 0.092437 0.073103
+6 9 8 0.047296 0.096782 0.090908
+6 9 9 0.039382 0.100027 0.112810
+6 9 10 0.019032 0.104351 0.141915
+6 9 11 0.000000 0.111047 0.186866
+6 9 12 0.000000 0.117166 0.232081
+6 9 13 0.000000 0.122320 0.277738
+6 9 14 0.000000 0.127155 0.322221
+6 9 15 0.000000 0.131579 0.365193
+6 9 16 0.000000 0.135334 0.407615
+6 9 17 0.000000 0.138420 0.449486
+6 9 18 0.000000 0.141730 0.486631
+6 9 19 0.000000 0.145216 0.520100
+6 9 20 0.000000 0.148419 0.549952
+6 9 21 0.000000 0.151452 0.577633
+6 9 22 0.000000 0.157101 0.598420
+6 9 23 0.000000 0.163938 0.616073
+6 9 24 0.000000 0.178631 0.635236
+6 9 25 0.000000 0.195944 0.654902
+6 9 26 0.000000 0.229752 0.677778
+6 9 27 0.000000 0.267367 0.701395
+6 9 28 0.000000 0.290212 0.716041
+6 9 29 0.000000 0.310948 0.729406
+6 9 30 0.000000 0.326184 0.739128
+6 9 31 0.000000 0.341054 0.748607
+6 10 0 0.071108 0.090350 0.000000
+6 10 1 0.068622 0.091296 0.000000
+6 10 2 0.066152 0.092333 0.004355
+6 10 3 0.063912 0.094734 0.013310
+6 10 4 0.060731 0.097339 0.023272
+6 10 5 0.050965 0.101380 0.040285
+6 10 6 0.041127 0.105748 0.057505
+6 10 7 0.030982 0.111535 0.075627
+6 10 8 0.021265 0.116858 0.095057
+6 10 9 0.012832 0.120792 0.118415
+6 10 10 0.000000 0.126076 0.149234
+6 10 11 0.000000 0.134329 0.196467
+6 10 12 0.000000 0.141976 0.243514
+6 10 13 0.000000 0.148613 0.290251
+6 10 14 0.000000 0.154840 0.335848
+6 10 15 0.000000 0.160540 0.379982
+6 10 16 0.000000 0.165646 0.423507
+6 10 17 0.000000 0.170159 0.466425
+6 10 18 0.000000 0.174583 0.504501
+6 10 19 0.000000 0.178937 0.538812
+6 10 20 0.000000 0.182807 0.568987
+6 10 21 0.000000 0.186385 0.596679
+6 10 22 0.000000 0.192081 0.617473
+6 10 23 0.000000 0.198740 0.635132
+6 10 24 0.000000 0.212674 0.653596
+6 10 25 0.000000 0.229033 0.672329
+6 10 26 0.000000 0.260239 0.693025
+6 10 27 0.000000 0.294870 0.714174
+6 10 28 0.000000 0.316326 0.727544
+6 10 29 0.000000 0.335900 0.739802
+6 10 30 0.000000 0.350364 0.748777
+6 10 31 0.000000 0.364488 0.757533
+6 11 0 0.065627 0.116423 0.000000
+6 11 1 0.063220 0.118009 0.000000
+6 11 2 0.060779 0.119653 0.000000
+6 11 3 0.057831 0.122156 0.000000
+6 11 4 0.051474 0.124917 0.000000
+6 11 5 0.021256 0.129476 0.015202
+6 11 6 0.000000 0.134374 0.055732
+6 11 7 0.000000 0.140740 0.076183
+6 11 8 0.000000 0.146909 0.098131
+6 11 9 0.000000 0.152487 0.124570
+6 11 10 0.000000 0.159191 0.157866
+6 11 11 0.000000 0.168376 0.206246
+6 11 12 0.000000 0.177003 0.254379
+6 11 13 0.000000 0.184702 0.302101
+6 11 14 0.000000 0.191855 0.349047
+6 11 15 0.000000 0.198307 0.394994
+6 11 16 0.000000 0.204222 0.439666
+6 11 17 0.000000 0.209599 0.483063
+6 11 18 0.000000 0.214824 0.521696
+6 11 19 0.000000 0.219930 0.556626
+6 11 20 0.000000 0.224317 0.587111
+6 11 21 0.000000 0.228272 0.614928
+6 11 22 0.000000 0.233866 0.635954
+6 11 23 0.000000 0.240206 0.653895
+6 11 24 0.000000 0.253369 0.671822
+6 11 25 0.000000 0.268806 0.689746
+6 11 26 0.000000 0.296485 0.707922
+6 11 27 0.000000 0.326989 0.726156
+6 11 28 0.000000 0.346300 0.738306
+6 11 29 0.000000 0.364011 0.749588
+6 11 30 0.000000 0.377415 0.758115
+6 11 31 0.000000 0.390531 0.766459
+6 12 0 0.031266 0.143411 0.000000
+6 12 1 0.029295 0.145506 0.000000
+6 12 2 0.027269 0.147642 0.000000
+6 12 3 0.024426 0.150383 0.000000
+6 12 4 0.017580 0.153423 0.000000
+6 12 5 0.000000 0.158560 0.000000
+6 12 6 0.000000 0.164102 0.051129
+6 12 7 0.000000 0.171400 0.075267
+6 12 8 0.000000 0.178632 0.100651
+6 12 9 0.000000 0.185664 0.129771
+6 12 10 0.000000 0.193628 0.165366
+6 12 11 0.000000 0.203642 0.215206
+6 12 12 0.000000 0.213223 0.264803
+6 12 13 0.000000 0.222086 0.313995
+6 12 14 0.000000 0.230201 0.362406
+6 12 15 0.000000 0.237355 0.409814
+6 12 16 0.000000 0.243990 0.455661
+6 12 17 0.000000 0.250105 0.499946
+6 12 18 0.000000 0.255961 0.539127
+6 12 19 0.000000 0.261615 0.574338
+6 12 20 0.000000 0.266462 0.605245
+6 12 21 0.000000 0.270824 0.633569
+6 12 22 0.000000 0.276278 0.654580
+6 12 23 0.000000 0.282228 0.672265
+6 12 24 0.000000 0.294459 0.689583
+6 12 25 0.000000 0.308785 0.706779
+6 12 26 0.000000 0.333351 0.722877
+6 12 27 0.000000 0.360281 0.738722
+6 12 28 0.000000 0.377649 0.749670
+6 12 29 0.000000 0.393651 0.759918
+6 12 30 0.000000 0.405968 0.767805
+6 12 31 0.000000 0.418040 0.775535
+6 13 0 0.000000 0.171922 0.000000
+6 13 1 0.000000 0.174309 0.000000
+6 13 2 0.000000 0.176746 0.000000
+6 13 3 0.000000 0.179948 0.000000
+6 13 4 0.000000 0.183477 0.000000
+6 13 5 0.000000 0.189290 0.000000
+6 13 6 0.000000 0.195666 0.041809
+6 13 7 0.000000 0.204484 0.071898
+6 13 8 0.000000 0.213140 0.102248
+6 13 9 0.000000 0.221313 0.133382
+6 13 10 0.000000 0.230267 0.170981
+6 13 11 0.000000 0.240938 0.222805
+6 13 12 0.000000 0.251432 0.274494
+6 13 13 0.000000 0.261629 0.325960
+6 13 14 0.000000 0.270765 0.376033
+6 13 15 0.000000 0.278538 0.424315
+6 13 16 0.000000 0.285746 0.471384
+6 13 17 0.000000 0.292389 0.517240
+6 13 18 0.000000 0.298592 0.556950
+6 13 19 0.000000 0.304452 0.591878
+6 13 20 0.000000 0.309664 0.623396
+6 13 21 0.000000 0.314488 0.652867
+6 13 22 0.000000 0.319735 0.673446
+6 13 23 0.000000 0.325176 0.689982
+6 13 24 0.000000 0.336208 0.706569
+6 13 25 0.000000 0.349105 0.723173
+6 13 26 0.000000 0.371250 0.737930
+6 13 27 0.000000 0.395530 0.752262
+6 13 28 0.000000 0.411292 0.762033
+6 13 29 0.000000 0.425838 0.771153
+6 13 30 0.000000 0.437027 0.778080
+6 13 31 0.000000 0.447992 0.784860
+6 14 0 0.000000 0.205928 0.000000
+6 14 1 0.000000 0.208437 0.000000
+6 14 2 0.000000 0.211003 0.000000
+6 14 3 0.000000 0.214423 0.000000
+6 14 4 0.000000 0.218184 0.000000
+6 14 5 0.000000 0.224333 0.000000
+6 14 6 0.000000 0.231172 0.003989
+6 14 7 0.000000 0.241000 0.055638
+6 14 8 0.000000 0.250632 0.102711
+6 14 9 0.000000 0.259672 0.136058
+6 14 10 0.000000 0.269467 0.175817
+6 14 11 0.000000 0.280924 0.229681
+6 14 12 0.000000 0.292267 0.283283
+6 14 13 0.000000 0.303420 0.336448
+6 14 14 0.000000 0.313443 0.388103
+6 14 15 0.000000 0.322013 0.437819
+6 14 16 0.000000 0.329864 0.486096
+6 14 17 0.000000 0.336998 0.532936
+6 14 18 0.000000 0.343603 0.573025
+6 14 19 0.000000 0.349797 0.607864
+6 14 20 0.000000 0.355242 0.639714
+6 14 21 0.000000 0.360239 0.669772
+6 14 22 0.000000 0.365177 0.690230
+6 14 23 0.000000 0.370087 0.706325
+6 14 24 0.000000 0.379950 0.722523
+6 14 25 0.000000 0.391464 0.738754
+6 14 26 0.000000 0.410975 0.752286
+6 14 27 0.000000 0.432331 0.765194
+6 14 28 0.000000 0.446004 0.773667
+6 14 29 0.000000 0.458579 0.781506
+6 14 30 0.000000 0.468413 0.787582
+6 14 31 0.000000 0.478064 0.793541
+6 15 0 0.000000 0.246997 0.000000
+6 15 1 0.000000 0.249413 0.000000
+6 15 2 0.000000 0.251885 0.000000
+6 15 3 0.000000 0.255211 0.000000
+6 15 4 0.000000 0.258877 0.000000
+6 15 5 0.000000 0.264922 0.000000
+6 15 6 0.000000 0.271744 0.000000
+6 15 7 0.000000 0.281931 0.022805
+6 15 8 0.000000 0.291960 0.101718
+6 15 9 0.000000 0.301515 0.137534
+6 15 10 0.000000 0.311962 0.179650
+6 15 11 0.000000 0.324368 0.235629
+6 15 12 0.000000 0.336480 0.290911
+6 15 13 0.000000 0.348104 0.345034
+6 15 14 0.000000 0.358839 0.398171
+6 15 15 0.000000 0.368434 0.450040
+6 15 16 0.000000 0.377020 0.499508
+6 15 17 0.000000 0.384596 0.546575
+6 15 18 0.000000 0.391675 0.586852
+6 15 19 0.000000 0.398366 0.621849
+6 15 20 0.000000 0.403875 0.653675
+6 15 21 0.000000 0.408674 0.683599
+6 15 22 0.000000 0.413169 0.704339
+6 15 23 0.000000 0.417524 0.720904
+6 15 24 0.000000 0.426254 0.737151
+6 15 25 0.000000 0.436443 0.753292
+6 15 26 0.000000 0.453046 0.765744
+6 15 27 0.000000 0.471130 0.777345
+6 15 28 0.000000 0.482090 0.784362
+6 15 29 0.000000 0.492033 0.790724
+6 15 30 0.000000 0.500221 0.796091
+6 15 31 0.000000 0.508292 0.801391
+6 16 0 0.000000 0.283912 0.000000
+6 16 1 0.000000 0.286469 0.000000
+6 16 2 0.000000 0.289082 0.000000
+6 16 3 0.000000 0.292549 0.000000
+6 16 4 0.000000 0.296362 0.000000
+6 16 5 0.000000 0.302600 0.000000
+6 16 6 0.000000 0.309630 0.000000
+6 16 7 0.000000 0.320095 0.004802
+6 16 8 0.000000 0.330479 0.099041
+6 16 9 0.000000 0.340621 0.137719
+6 16 10 0.000000 0.351712 0.182388
+6 16 11 0.000000 0.364888 0.240236
+6 16 12 0.000000 0.377748 0.297207
+6 16 13 0.000000 0.390081 0.352717
+6 16 14 0.000000 0.401457 0.407246
+6 16 15 0.000000 0.411602 0.460516
+6 16 16 0.000000 0.420792 0.511098
+6 16 17 0.000000 0.429027 0.558993
+6 16 18 0.000000 0.436348 0.599656
+6 16 19 0.000000 0.442959 0.634694
+6 16 20 0.000000 0.448461 0.666561
+6 16 21 0.000000 0.453299 0.696526
+6 16 22 0.000000 0.457326 0.717451
+6 16 23 0.000000 0.460986 0.734266
+6 16 24 0.000000 0.468601 0.750333
+6 16 25 0.000000 0.477536 0.766151
+6 16 26 0.000000 0.491654 0.777668
+6 16 27 0.000000 0.506969 0.788192
+6 16 28 0.000000 0.515951 0.794293
+6 16 29 0.000000 0.524029 0.799762
+6 16 30 0.000000 0.530874 0.804389
+6 16 31 0.000000 0.537638 0.808960
+6 17 0 0.000000 0.316673 0.000000
+6 17 1 0.000000 0.319605 0.000000
+6 17 2 0.000000 0.322594 0.000000
+6 17 3 0.000000 0.326437 0.000000
+6 17 4 0.000000 0.330641 0.000000
+6 17 5 0.000000 0.337367 0.000000
+6 17 6 0.000000 0.344831 0.000000
+6 17 7 0.000000 0.355493 0.001629
+6 17 8 0.000000 0.366189 0.094678
+6 17 9 0.000000 0.376989 0.136614
+6 17 10 0.000000 0.388717 0.184030
+6 17 11 0.000000 0.402485 0.243504
+6 17 12 0.000000 0.416071 0.302171
+6 17 13 0.000000 0.429353 0.359494
+6 17 14 0.000000 0.441296 0.415328
+6 17 15 0.000000 0.451517 0.469247
+6 17 16 0.000000 0.461182 0.520868
+6 17 17 0.000000 0.470290 0.570192
+6 17 18 0.000000 0.477623 0.611437
+6 17 19 0.000000 0.483576 0.646398
+6 17 20 0.000000 0.489002 0.678372
+6 17 21 0.000000 0.494112 0.708552
+6 17 22 0.000000 0.497650 0.729565
+6 17 23 0.000000 0.500472 0.746411
+6 17 24 0.000000 0.506992 0.762069
+6 17 25 0.000000 0.514743 0.777332
+6 17 26 0.000000 0.526799 0.788057
+6 17 27 0.000000 0.539848 0.797735
+6 17 28 0.000000 0.547586 0.803460
+6 17 29 0.000000 0.554566 0.808619
+6 17 30 0.000000 0.560373 0.812476
+6 17 31 0.000000 0.566103 0.816247
+6 18 0 0.000000 0.349740 0.000000
+6 18 1 0.000000 0.352520 0.000000
+6 18 2 0.000000 0.355353 0.000000
+6 18 3 0.000000 0.358985 0.000000
+6 18 4 0.000000 0.362977 0.000000
+6 18 5 0.000000 0.369489 0.000000
+6 18 6 0.000000 0.376853 0.000000
+6 18 7 0.000000 0.387913 0.000000
+6 18 8 0.000000 0.398972 0.089198
+6 18 9 0.000000 0.410028 0.134658
+6 18 10 0.000000 0.422014 0.185098
+6 18 11 0.000000 0.436046 0.246494
+6 18 12 0.000000 0.449931 0.306704
+6 18 13 0.000000 0.463570 0.364936
+6 18 14 0.000000 0.476007 0.421694
+6 18 15 0.000000 0.486895 0.476558
+6 18 16 0.000000 0.496942 0.528728
+6 18 17 0.000000 0.506148 0.578206
+6 18 18 0.000000 0.513489 0.619832
+6 18 19 0.000000 0.519381 0.655353
+6 18 20 0.000000 0.524687 0.687519
+6 18 21 0.000000 0.529642 0.717672
+6 18 22 0.000000 0.532985 0.738908
+6 18 23 0.000000 0.535595 0.756089
+6 18 24 0.000000 0.541427 0.771563
+6 18 25 0.000000 0.548333 0.786466
+6 18 26 0.000000 0.558729 0.796609
+6 18 27 0.000000 0.569931 0.805652
+6 18 28 0.000000 0.576602 0.811040
+6 18 29 0.000000 0.582625 0.815906
+6 18 30 0.000000 0.587473 0.819397
+6 18 31 0.000000 0.592244 0.822796
+6 19 0 0.000000 0.383047 0.000000
+6 19 1 0.000000 0.385262 0.000000
+6 19 2 0.000000 0.387525 0.000000
+6 19 3 0.000000 0.390490 0.000000
+6 19 4 0.000000 0.393803 0.000000
+6 19 5 0.000000 0.399553 0.000000
+6 19 6 0.000000 0.406403 0.000000
+6 19 7 0.000000 0.418018 0.000000
+6 19 8 0.000000 0.429479 0.082850
+6 19 9 0.000000 0.440478 0.132040
+6 19 10 0.000000 0.452427 0.185718
+6 19 11 0.000000 0.466468 0.249267
+6 19 12 0.000000 0.480320 0.310900
+6 19 13 0.000000 0.493856 0.369339
+6 19 14 0.000000 0.506728 0.426727
+6 19 15 0.000000 0.518745 0.482764
+6 19 16 0.000000 0.529103 0.535102
+6 19 17 0.000000 0.537802 0.583743
+6 19 18 0.000000 0.545148 0.625595
+6 19 19 0.000000 0.551443 0.662168
+6 19 20 0.000000 0.556596 0.694595
+6 19 21 0.000000 0.561063 0.724533
+6 19 22 0.000000 0.564440 0.746095
+6 19 23 0.000000 0.567323 0.763849
+6 19 24 0.000000 0.572787 0.779311
+6 19 25 0.000000 0.579111 0.794009
+6 19 26 0.000000 0.588161 0.803731
+6 19 27 0.000000 0.597840 0.812304
+6 19 28 0.000000 0.603580 0.817386
+6 19 29 0.000000 0.608757 0.821970
+6 19 30 0.000000 0.612708 0.825409
+6 19 31 0.000000 0.616577 0.828773
+6 20 0 0.000000 0.407462 0.000000
+6 20 1 0.000000 0.409648 0.000000
+6 20 2 0.000000 0.411885 0.000000
+6 20 3 0.000000 0.414894 0.000000
+6 20 4 0.000000 0.418246 0.000000
+6 20 5 0.000000 0.424005 0.000000
+6 20 6 0.000000 0.430860 0.000000
+6 20 7 0.000000 0.442467 0.000000
+6 20 8 0.000000 0.453990 0.025339
+6 20 9 0.000000 0.465261 0.109497
+6 20 10 0.000000 0.477468 0.187621
+6 20 11 0.000000 0.491737 0.252471
+6 20 12 0.000000 0.505800 0.315162
+6 20 13 0.000000 0.519521 0.374254
+6 20 14 0.000000 0.532466 0.432141
+6 20 15 0.000000 0.544414 0.488477
+6 20 16 0.000000 0.554909 0.541138
+6 20 17 0.000000 0.563952 0.590122
+6 20 18 0.000000 0.571300 0.632188
+6 20 19 0.000000 0.577330 0.668874
+6 20 20 0.000000 0.582576 0.701655
+6 20 21 0.000000 0.587353 0.732095
+6 20 22 0.000000 0.590651 0.753440
+6 20 23 0.000000 0.593278 0.770651
+6 20 24 0.000000 0.598241 0.785747
+6 20 25 0.000000 0.603983 0.800138
+6 20 26 0.000000 0.611791 0.809516
+6 20 27 0.000000 0.620077 0.817737
+6 20 28 0.000000 0.624995 0.822626
+6 20 29 0.000000 0.629432 0.827039
+6 20 30 0.000000 0.632821 0.830350
+6 20 31 0.000000 0.636140 0.833588
+6 21 0 0.000000 0.426543 0.000000
+6 21 1 0.000000 0.429020 0.000000
+6 21 2 0.000000 0.431559 0.000000
+6 21 3 0.000000 0.435038 0.000000
+6 21 4 0.000000 0.438860 0.000000
+6 21 5 0.000000 0.445089 0.000000
+6 21 6 0.000000 0.452262 0.000000
+6 21 7 0.000000 0.463523 0.000000
+6 21 8 0.000000 0.474904 0.000000
+6 21 9 0.000000 0.486645 0.074998
+6 21 10 0.000000 0.499287 0.190294
+6 21 11 0.000000 0.513913 0.255933
+6 21 12 0.000000 0.528334 0.319462
+6 21 13 0.000000 0.542413 0.379477
+6 21 14 0.000000 0.555215 0.437784
+6 21 15 0.000000 0.566374 0.493896
+6 21 16 0.000000 0.576902 0.546971
+6 21 17 0.000000 0.586801 0.597007
+6 21 18 0.000000 0.594148 0.639280
+6 21 19 0.000000 0.599510 0.675513
+6 21 20 0.000000 0.604999 0.708707
+6 21 21 0.000000 0.610564 0.740078
+6 21 22 0.000000 0.613715 0.760880
+6 21 23 0.000000 0.615769 0.776878
+6 21 24 0.000000 0.620152 0.791395
+6 21 25 0.000000 0.625311 0.805419
+6 21 26 0.000000 0.631941 0.814499
+6 21 27 0.000000 0.638910 0.822438
+6 21 28 0.000000 0.643072 0.827202
+6 21 29 0.000000 0.646832 0.831512
+6 21 30 0.000000 0.649861 0.834649
+6 21 31 0.000000 0.652841 0.837707
+6 22 0 0.000000 0.443134 0.000000
+6 22 1 0.000000 0.445567 0.000000
+6 22 2 0.000000 0.448062 0.000000
+6 22 3 0.000000 0.451500 0.000000
+6 22 4 0.000000 0.455264 0.000000
+6 22 5 0.000000 0.461310 0.000000
+6 22 6 0.000000 0.468344 0.000000
+6 22 7 0.000000 0.479658 0.000000
+6 22 8 0.000000 0.491114 0.000000
+6 22 9 0.000000 0.502995 0.085209
+6 22 10 0.000000 0.515810 0.196565
+6 22 11 0.000000 0.530677 0.262728
+6 22 12 0.000000 0.545140 0.326644
+6 22 13 0.000000 0.558931 0.386817
+6 22 14 0.000000 0.571555 0.445104
+6 22 15 0.000000 0.582680 0.500964
+6 22 16 0.000000 0.593252 0.553780
+6 22 17 0.000000 0.603270 0.603552
+6 22 18 0.000000 0.610770 0.645636
+6 22 19 0.000000 0.616311 0.681740
+6 22 20 0.000000 0.621779 0.714612
+6 22 21 0.000000 0.627203 0.745543
+6 22 22 0.000000 0.630417 0.766054
+6 22 23 0.000000 0.632627 0.781827
+6 22 24 0.000000 0.636763 0.796004
+6 22 25 0.000000 0.641540 0.809648
+6 22 26 0.000000 0.647396 0.818323
+6 22 27 0.000000 0.653502 0.825850
+6 22 28 0.000000 0.657257 0.830472
+6 22 29 0.000000 0.660677 0.834679
+6 22 30 0.000000 0.663489 0.837752
+6 22 31 0.000000 0.666261 0.840748
+6 23 0 0.000000 0.458595 0.000000
+6 23 1 0.000000 0.460830 0.000000
+6 23 2 0.000000 0.463124 0.000000
+6 23 3 0.000000 0.466289 0.000000
+6 23 4 0.000000 0.469754 0.000000
+6 23 5 0.000000 0.475321 0.000000
+6 23 6 0.000000 0.482009 0.000000
+6 23 7 0.000000 0.493557 0.000000
+6 23 8 0.000000 0.505185 0.016938
+6 23 9 0.000000 0.517058 0.115742
+6 23 10 0.000000 0.529925 0.204472
+6 23 11 0.000000 0.544980 0.271037
+6 23 12 0.000000 0.559342 0.335135
+6 23 13 0.000000 0.572551 0.395120
+6 23 14 0.000000 0.584983 0.453186
+6 23 15 0.000000 0.596417 0.508782
+6 23 16 0.000000 0.607036 0.561034
+6 23 17 0.000000 0.616838 0.609941
+6 23 18 0.000000 0.624561 0.651657
+6 23 19 0.000000 0.630667 0.687780
+6 23 20 0.000000 0.635994 0.719995
+6 23 21 0.000000 0.640853 0.749865
+6 23 22 0.000000 0.644227 0.770198
+6 23 23 0.000000 0.646926 0.786196
+6 23 24 0.000000 0.650965 0.800140
+6 23 25 0.000000 0.655451 0.813399
+6 23 26 0.000000 0.660718 0.821619
+6 23 27 0.000000 0.666165 0.828677
+6 23 28 0.000000 0.669674 0.833150
+6 23 29 0.000000 0.672906 0.837254
+6 23 30 0.000000 0.675567 0.840311
+6 23 31 0.000000 0.678189 0.843298
+6 24 0 0.000000 0.473183 0.000000
+6 24 1 0.000000 0.476151 0.000000
+6 24 2 0.000000 0.479159 0.000000
+6 24 3 0.000000 0.482749 0.000000
+6 24 4 0.000000 0.486580 0.000000
+6 24 5 0.000000 0.492098 0.000000
+6 24 6 0.000000 0.498675 0.000000
+6 24 7 0.000000 0.509844 0.000000
+6 24 8 0.000000 0.521226 0.047459
+6 24 9 0.000000 0.533244 0.137368
+6 24 10 0.000000 0.546232 0.220044
+6 24 11 0.000000 0.561357 0.286808
+6 24 12 0.000000 0.575632 0.350770
+6 24 13 0.000000 0.588490 0.410060
+6 24 14 0.000000 0.600599 0.467295
+6 24 15 0.000000 0.611745 0.521889
+6 24 16 0.000000 0.622064 0.572967
+6 24 17 0.000000 0.631558 0.620529
+6 24 18 0.000000 0.639182 0.661331
+6 24 19 0.000000 0.645351 0.696874
+6 24 20 0.000000 0.650610 0.728203
+6 24 21 0.000000 0.655321 0.757005
+6 24 22 0.000000 0.658670 0.776694
+6 24 23 0.000000 0.661400 0.792241
+6 24 24 0.000000 0.665095 0.805660
+6 24 25 0.000000 0.669113 0.818370
+6 24 26 0.000000 0.674049 0.826278
+6 24 27 0.000000 0.679198 0.833077
+6 24 28 0.000000 0.682493 0.837427
+6 24 29 0.000000 0.685523 0.841428
+6 24 30 0.000000 0.687885 0.844404
+6 24 31 0.000000 0.690202 0.847312
+6 25 0 0.000000 0.487480 0.000000
+6 25 1 0.000000 0.491491 0.000000
+6 25 2 0.000000 0.495518 0.000000
+6 25 3 0.000000 0.499767 0.000000
+6 25 4 0.000000 0.504186 0.000000
+6 25 5 0.000000 0.509797 0.000000
+6 25 6 0.000000 0.516342 0.000000
+6 25 7 0.000000 0.526929 0.000000
+6 25 8 0.000000 0.537922 0.066943
+6 25 9 0.000000 0.550138 0.156024
+6 25 10 0.000000 0.563271 0.238172
+6 25 11 0.000000 0.578426 0.305067
+6 25 12 0.000000 0.592618 0.368786
+6 25 13 0.000000 0.605203 0.427211
+6 25 14 0.000000 0.616945 0.483413
+6 25 15 0.000000 0.627602 0.536757
+6 25 16 0.000000 0.637508 0.586459
+6 25 17 0.000000 0.646662 0.632517
+6 25 18 0.000000 0.654079 0.672222
+6 25 19 0.000000 0.660145 0.706985
+6 25 20 0.000000 0.665359 0.737354
+6 25 21 0.000000 0.670062 0.765085
+6 25 22 0.000000 0.673325 0.783974
+6 25 23 0.000000 0.675933 0.798845
+6 25 24 0.000000 0.679202 0.811642
+6 25 25 0.000000 0.682692 0.823749
+6 25 26 0.000000 0.687384 0.831390
+6 25 27 0.000000 0.692354 0.838001
+6 25 28 0.000000 0.695446 0.842238
+6 25 29 0.000000 0.698270 0.846135
+6 25 30 0.000000 0.700283 0.849008
+6 25 31 0.000000 0.702242 0.851813
+6 26 0 0.000000 0.500387 0.000000
+6 26 1 0.000000 0.504595 0.000000
+6 26 2 0.000000 0.508851 0.000000
+6 26 3 0.000000 0.513834 0.000000
+6 26 4 0.000000 0.519117 0.000000
+6 26 5 0.000000 0.526504 0.000000
+6 26 6 0.000000 0.534457 0.000000
+6 26 7 0.000000 0.544865 0.010162
+6 26 8 0.000000 0.555693 0.116886
+6 26 9 0.000000 0.567777 0.191967
+6 26 10 0.000000 0.580708 0.264028
+6 26 11 0.000000 0.595502 0.329441
+6 26 12 0.000000 0.609362 0.391738
+6 26 13 0.000000 0.621667 0.448841
+6 26 14 0.000000 0.632977 0.503492
+6 26 15 0.000000 0.643008 0.554990
+6 26 16 0.000000 0.652340 0.602783
+6 26 17 0.000000 0.660972 0.646871
+6 26 18 0.000000 0.668025 0.685164
+6 26 19 0.000000 0.673850 0.718948
+6 26 20 0.000000 0.678825 0.747782
+6 26 21 0.000000 0.683289 0.773647
+6 26 22 0.000000 0.686414 0.791593
+6 26 23 0.000000 0.688931 0.805940
+6 26 24 0.000000 0.692103 0.818413
+6 26 25 0.000000 0.695494 0.830261
+6 26 26 0.000000 0.699569 0.837260
+6 26 27 0.000000 0.703803 0.843141
+6 26 28 0.000000 0.706769 0.847209
+6 26 29 0.000000 0.709555 0.851019
+6 26 30 0.000000 0.711496 0.853861
+6 26 31 0.000000 0.713381 0.856639
+6 27 0 0.000000 0.512974 0.000000
+6 27 1 0.000000 0.517182 0.000000
+6 27 2 0.000000 0.521485 0.000000
+6 27 3 0.000000 0.527220 0.000000
+6 27 4 0.000000 0.533432 0.000000
+6 27 5 0.000000 0.542981 0.000000
+6 27 6 0.000000 0.552675 0.000000
+6 27 7 0.000000 0.562999 0.047690
+6 27 8 0.000000 0.573711 0.173857
+6 27 9 0.000000 0.585589 0.231899
+6 27 10 0.000000 0.598237 0.291666
+6 27 11 0.000000 0.612579 0.355227
+6 27 12 0.000000 0.626051 0.415830
+6 27 13 0.000000 0.638074 0.471504
+6 27 14 0.000000 0.648937 0.524484
+6 27 15 0.000000 0.658310 0.573998
+6 27 16 0.000000 0.667030 0.619761
+6 27 17 0.000000 0.675098 0.661772
+6 27 18 0.000000 0.681751 0.698578
+6 27 19 0.000000 0.687303 0.731337
+6 27 20 0.000000 0.691993 0.758506
+6 27 21 0.000000 0.696167 0.782320
+6 27 22 0.000000 0.699143 0.799290
+6 27 23 0.000000 0.701574 0.813149
+6 27 24 0.000000 0.704725 0.825365
+6 27 25 0.000000 0.708116 0.837034
+6 27 26 0.000000 0.711489 0.843306
+6 27 27 0.000000 0.714859 0.848331
+6 27 28 0.000000 0.717717 0.852218
+6 27 29 0.000000 0.720502 0.855942
+6 27 30 0.000000 0.722435 0.858771
+6 27 31 0.000000 0.724311 0.861540
+6 28 0 0.000000 0.521175 0.000000
+6 28 1 0.000000 0.525383 0.000000
+6 28 2 0.000000 0.529692 0.000000
+6 28 3 0.000000 0.535521 0.000000
+6 28 4 0.000000 0.541880 0.000000
+6 28 5 0.000000 0.551946 0.000000
+6 28 6 0.000000 0.562307 0.000000
+6 28 7 0.000000 0.573944 0.062053
+6 28 8 0.000000 0.585668 0.196921
+6 28 9 0.000000 0.597653 0.253484
+6 28 10 0.000000 0.610210 0.311634
+6 28 11 0.000000 0.624026 0.373275
+6 28 12 0.000000 0.637066 0.432473
+6 28 13 0.000000 0.648815 0.487599
+6 28 14 0.000000 0.659348 0.539688
+6 28 15 0.000000 0.668317 0.587869
+6 28 16 0.000000 0.676640 0.632485
+6 28 17 0.000000 0.684316 0.673535
+6 28 18 0.000000 0.690594 0.709179
+6 28 19 0.000000 0.695782 0.740619
+6 28 20 0.000000 0.700216 0.766746
+6 28 21 0.000000 0.704196 0.789686
+6 28 22 0.000000 0.707144 0.805968
+6 28 23 0.000000 0.709624 0.819224
+6 28 24 0.000000 0.712731 0.830859
+6 28 25 0.000000 0.716047 0.841954
+6 28 26 0.000000 0.719319 0.848031
+6 28 27 0.000000 0.722580 0.852949
+6 28 28 0.000000 0.725311 0.856440
+6 28 29 0.000000 0.727967 0.859726
+6 28 30 0.000000 0.729890 0.862534
+6 28 31 0.000000 0.731765 0.865309
+6 29 0 0.000000 0.528750 0.000000
+6 29 1 0.000000 0.532957 0.000000
+6 29 2 0.000000 0.537266 0.000000
+6 29 3 0.000000 0.543095 0.000000
+6 29 4 0.000000 0.549490 0.000000
+6 29 5 0.000000 0.559838 0.000000
+6 29 6 0.000000 0.570711 0.000000
+6 29 7 0.000000 0.583862 0.073106
+6 29 8 0.000000 0.596759 0.215141
+6 29 9 0.000000 0.608896 0.272447
+6 29 10 0.000000 0.621389 0.330505
+6 29 11 0.000000 0.634668 0.390217
+6 29 12 0.000000 0.647271 0.448051
+6 29 13 0.000000 0.658746 0.502756
+6 29 14 0.000000 0.668965 0.554065
+6 29 15 0.000000 0.677567 0.601006
+6 29 16 0.000000 0.685524 0.644601
+6 29 17 0.000000 0.692833 0.684851
+6 29 18 0.000000 0.698738 0.719379
+6 29 19 0.000000 0.703551 0.749456
+6 29 20 0.000000 0.707731 0.774631
+6 29 21 0.000000 0.711533 0.796864
+6 29 22 0.000000 0.714471 0.812500
+6 29 23 0.000000 0.717017 0.825137
+6 29 24 0.000000 0.720077 0.836145
+6 29 25 0.000000 0.723309 0.846609
+6 29 26 0.000000 0.726564 0.852567
+6 29 27 0.000000 0.729826 0.857485
+6 29 28 0.000000 0.732427 0.860549
+6 29 29 0.000000 0.734934 0.863347
+6 29 30 0.000000 0.736848 0.866133
+6 29 31 0.000000 0.738722 0.868917
+6 30 0 0.000000 0.534413 0.000000
+6 30 1 0.000000 0.538700 0.000000
+6 30 2 0.000000 0.543078 0.000000
+6 30 3 0.000000 0.548828 0.000000
+6 30 4 0.000000 0.555166 0.000000
+6 30 5 0.000000 0.565620 0.000000
+6 30 6 0.000000 0.576813 0.000000
+6 30 7 0.000000 0.591213 0.081361
+6 30 8 0.000000 0.605065 0.228766
+6 30 9 0.000000 0.617274 0.286704
+6 30 10 0.000000 0.629754 0.344809
+6 30 11 0.000000 0.642831 0.403280
+6 30 12 0.000000 0.655206 0.460227
+6 30 13 0.000000 0.666408 0.514633
+6 30 14 0.000000 0.676352 0.565377
+6 30 15 0.000000 0.684675 0.611413
+6 30 16 0.000000 0.692308 0.654107
+6 30 17 0.000000 0.699251 0.693460
+6 30 18 0.000000 0.704833 0.727081
+6 30 19 0.000000 0.709358 0.756247
+6 30 20 0.000000 0.713324 0.780687
+6 30 21 0.000000 0.716955 0.802293
+6 30 22 0.000000 0.719892 0.817380
+6 30 23 0.000000 0.722513 0.829504
+6 30 24 0.000000 0.725522 0.840042
+6 30 25 0.000000 0.728660 0.850052
+6 30 26 0.000000 0.731905 0.855925
+6 30 27 0.000000 0.735175 0.860843
+6 30 28 0.000000 0.737769 0.863949
+6 30 29 0.000000 0.740267 0.866797
+6 30 30 0.000000 0.742140 0.869239
+6 30 31 0.000000 0.743972 0.871655
+6 31 0 0.000000 0.539948 0.000000
+6 31 1 0.000000 0.544320 0.000000
+6 31 2 0.000000 0.548773 0.000000
+6 31 3 0.000000 0.554438 0.000000
+6 31 4 0.000000 0.560713 0.000000
+6 31 5 0.000000 0.571261 0.000000
+6 31 6 0.000000 0.582762 0.000000
+6 31 7 0.000000 0.598393 0.089428
+6 31 8 0.000000 0.613185 0.242085
+6 31 9 0.000000 0.625460 0.300648
+6 31 10 0.000000 0.637931 0.358809
+6 31 11 0.000000 0.650829 0.416085
+6 31 12 0.000000 0.662989 0.472176
+6 31 13 0.000000 0.673919 0.526291
+6 31 14 0.000000 0.683589 0.576485
+6 31 15 0.000000 0.691640 0.621638
+6 31 16 0.000000 0.698953 0.663439
+6 31 17 0.000000 0.705528 0.701888
+6 31 18 0.000000 0.710792 0.734618
+6 31 19 0.000000 0.715034 0.762900
+6 31 20 0.000000 0.718789 0.786622
+6 31 21 0.000000 0.722250 0.807606
+6 31 22 0.000000 0.725186 0.822150
+6 31 23 0.000000 0.727883 0.833768
+6 31 24 0.000000 0.730840 0.843847
+6 31 25 0.000000 0.733884 0.853414
+6 31 26 0.000000 0.737119 0.859204
+6 31 27 0.000000 0.740398 0.864122
+6 31 28 0.000000 0.742993 0.867302
+6 31 29 0.000000 0.745490 0.870235
+6 31 30 0.000000 0.747321 0.872313
+6 31 31 0.000000 0.749108 0.874335
+7 0 0 0.055652 0.039257 0.028099
+7 0 1 0.055925 0.039368 0.029921
+7 0 2 0.056214 0.039473 0.031788
+7 0 3 0.056722 0.039473 0.034338
+7 0 4 0.057244 0.039496 0.037113
+7 0 5 0.057857 0.039678 0.041455
+7 0 6 0.058312 0.039839 0.046013
+7 0 7 0.058088 0.039910 0.051501
+7 0 8 0.057858 0.039781 0.058373
+7 0 9 0.057612 0.039052 0.069397
+7 0 10 0.056633 0.037930 0.087423
+7 0 11 0.054040 0.035944 0.120853
+7 0 12 0.052153 0.033112 0.154026
+7 0 13 0.051442 0.028869 0.186769
+7 0 14 0.056481 0.013358 0.222211
+7 0 15 0.068915 0.000000 0.261123
+7 0 16 0.079456 0.000000 0.296960
+7 0 17 0.088104 0.000000 0.329720
+7 0 18 0.097657 0.000000 0.360666
+7 0 19 0.107913 0.000000 0.390200
+7 0 20 0.116252 0.000000 0.416304
+7 0 21 0.123439 0.000000 0.440350
+7 0 22 0.128769 0.000000 0.462783
+7 0 23 0.133255 0.000000 0.484485
+7 0 24 0.132957 0.000000 0.510686
+7 0 25 0.131064 0.000000 0.538386
+7 0 26 0.115740 0.000000 0.573511
+7 0 27 0.097317 0.000000 0.610350
+7 0 28 0.059399 0.000000 0.634714
+7 0 29 0.018696 0.000000 0.657297
+7 0 30 0.013132 0.091350 0.673930
+7 0 31 0.009910 0.189543 0.690166
+7 1 0 0.057725 0.041372 0.027735
+7 1 1 0.057386 0.041426 0.029990
+7 1 2 0.057094 0.041477 0.032260
+7 1 3 0.057516 0.041477 0.034753
+7 1 4 0.057961 0.041500 0.037477
+7 1 5 0.058573 0.041682 0.041820
+7 1 6 0.059062 0.041907 0.046666
+7 1 7 0.059013 0.042317 0.053695
+7 1 8 0.058739 0.042475 0.061681
+7 1 9 0.057793 0.041877 0.072538
+7 1 10 0.056448 0.040933 0.090578
+7 1 11 0.054225 0.039229 0.124421
+7 1 12 0.052627 0.036771 0.158225
+7 1 13 0.052071 0.033056 0.191966
+7 1 14 0.057021 0.019812 0.228010
+7 1 15 0.069051 0.000000 0.267017
+7 1 16 0.079242 0.000000 0.303277
+7 1 17 0.087594 0.000000 0.336789
+7 1 18 0.096820 0.000000 0.368052
+7 1 19 0.106726 0.000000 0.397565
+7 1 20 0.114769 0.000000 0.423873
+7 1 21 0.121694 0.000000 0.448259
+7 1 22 0.126702 0.000000 0.470411
+7 1 23 0.130837 0.000000 0.491548
+7 1 24 0.111968 0.000000 0.516409
+7 1 25 0.085431 0.000000 0.542512
+7 1 26 0.065530 0.000000 0.577413
+7 1 27 0.047160 0.000000 0.614346
+7 1 28 0.018943 0.000000 0.638690
+7 1 29 0.000000 0.003194 0.661236
+7 1 30 0.000000 0.099659 0.677813
+7 1 31 0.000000 0.197852 0.693991
+7 2 0 0.059828 0.043515 0.027371
+7 2 1 0.058909 0.043515 0.030033
+7 2 2 0.058065 0.043515 0.032682
+7 2 3 0.058349 0.043521 0.035150
+7 2 4 0.058675 0.043548 0.037853
+7 2 5 0.059291 0.043725 0.042195
+7 2 6 0.059816 0.044009 0.047332
+7 2 7 0.059944 0.044761 0.055912
+7 2 8 0.059624 0.045212 0.065023
+7 2 9 0.057961 0.044760 0.075732
+7 2 10 0.056239 0.044004 0.093803
+7 2 11 0.054387 0.042582 0.128072
+7 2 12 0.053085 0.040499 0.162521
+7 2 13 0.052700 0.037314 0.197274
+7 2 14 0.057564 0.026301 0.233932
+7 2 15 0.069177 0.005223 0.273041
+7 2 16 0.079007 0.000000 0.309731
+7 2 17 0.087053 0.000000 0.344001
+7 2 18 0.095949 0.000000 0.375587
+7 2 19 0.105505 0.000000 0.405083
+7 2 20 0.113248 0.000000 0.431603
+7 2 21 0.119903 0.000000 0.456336
+7 2 22 0.124579 0.000000 0.478205
+7 2 23 0.128355 0.000000 0.498772
+7 2 24 0.091716 0.000000 0.522345
+7 2 25 0.041604 0.000000 0.546919
+7 2 26 0.016217 0.000000 0.581516
+7 2 27 0.000000 0.000000 0.618425
+7 2 28 0.000000 0.000000 0.642738
+7 2 29 0.000000 0.011393 0.665253
+7 2 30 0.000000 0.108134 0.681780
+7 2 31 0.000000 0.206329 0.697908
+7 3 0 0.062371 0.046065 0.027006
+7 3 1 0.061365 0.046065 0.029668
+7 3 2 0.060384 0.046072 0.032347
+7 3 3 0.059794 0.046171 0.035286
+7 3 4 0.059360 0.046269 0.038399
+7 3 5 0.060030 0.046351 0.042742
+7 3 6 0.060637 0.046630 0.048196
+7 3 7 0.060974 0.047758 0.058468
+7 3 8 0.060570 0.048585 0.068882
+7 3 9 0.057945 0.048509 0.079721
+7 3 10 0.055681 0.048100 0.098076
+7 3 11 0.054212 0.046960 0.132966
+7 3 12 0.053302 0.045265 0.168263
+7 3 13 0.053320 0.042644 0.204237
+7 3 14 0.058144 0.033305 0.241681
+7 3 15 0.069144 0.015330 0.281015
+7 3 16 0.078449 0.000000 0.318240
+7 3 17 0.086057 0.000000 0.353356
+7 3 18 0.094565 0.000000 0.385344
+7 3 19 0.103771 0.000000 0.414899
+7 3 20 0.111143 0.000000 0.441734
+7 3 21 0.117414 0.000000 0.466937
+7 3 22 0.121632 0.000000 0.488500
+7 3 23 0.124917 0.000000 0.508409
+7 3 24 0.082510 0.000000 0.531465
+7 3 25 0.024871 0.000000 0.555569
+7 3 26 0.000000 0.000000 0.588626
+7 3 27 0.000000 0.000000 0.623749
+7 3 28 0.000000 0.000000 0.647871
+7 3 29 0.000000 0.021971 0.670421
+7 3 30 0.000000 0.119098 0.687005
+7 3 31 0.000000 0.217330 0.703191
+7 4 0 0.065136 0.048848 0.026628
+7 4 1 0.064060 0.048856 0.029290
+7 4 2 0.062965 0.048873 0.031995
+7 4 3 0.061586 0.049043 0.035352
+7 4 4 0.060446 0.049195 0.038844
+7 4 5 0.060970 0.049216 0.043282
+7 4 6 0.061491 0.049505 0.049093
+7 4 7 0.062004 0.050955 0.060848
+7 4 8 0.061522 0.052130 0.072507
+7 4 9 0.058052 0.052479 0.083877
+7 4 10 0.055286 0.052477 0.102801
+7 4 11 0.054069 0.051701 0.138342
+7 4 12 0.053278 0.050472 0.174547
+7 4 13 0.053200 0.048486 0.211857
+7 4 14 0.057912 0.040966 0.250157
+7 4 15 0.068783 0.026331 0.289729
+7 4 16 0.077789 0.000000 0.327541
+7 4 17 0.084932 0.000000 0.363593
+7 4 18 0.093035 0.000000 0.396022
+7 4 19 0.101884 0.000000 0.425631
+7 4 20 0.108840 0.000000 0.452795
+7 4 21 0.114659 0.000000 0.478492
+7 4 22 0.118387 0.000000 0.499741
+7 4 23 0.121166 0.000000 0.518968
+7 4 24 0.073670 0.000000 0.541529
+7 4 25 0.009415 0.000000 0.565200
+7 4 26 0.000000 0.000000 0.596549
+7 4 27 0.000000 0.000000 0.629669
+7 4 28 0.000000 0.000000 0.653548
+7 4 29 0.000000 0.033567 0.676107
+7 4 30 0.000000 0.131106 0.692738
+7 4 31 0.000000 0.229365 0.708974
+7 5 0 0.069452 0.053261 0.026152
+7 5 1 0.068430 0.053326 0.028814
+7 5 2 0.067374 0.053392 0.031523
+7 5 3 0.065820 0.053468 0.034937
+7 5 4 0.064334 0.053559 0.038576
+7 5 5 0.063316 0.053746 0.043781
+7 5 6 0.062575 0.054160 0.050219
+7 5 7 0.063035 0.055552 0.061996
+7 5 8 0.062508 0.056877 0.074504
+7 5 9 0.059024 0.058000 0.089207
+7 5 10 0.056036 0.058823 0.110691
+7 5 11 0.054138 0.058988 0.147094
+7 5 12 0.051572 0.058769 0.184635
+7 5 13 0.047891 0.057911 0.224071
+7 5 14 0.051999 0.053218 0.263715
+7 5 15 0.066123 0.043594 0.303627
+7 5 16 0.076423 0.005858 0.342390
+7 5 17 0.082899 0.000000 0.380004
+7 5 18 0.090483 0.000000 0.413136
+7 5 19 0.098929 0.000000 0.442782
+7 5 20 0.105152 0.000000 0.470371
+7 5 21 0.110042 0.000000 0.496726
+7 5 22 0.113060 0.000000 0.517599
+7 5 23 0.115226 0.000000 0.535980
+7 5 24 0.067394 0.000000 0.558199
+7 5 25 0.002897 0.000000 0.581698
+7 5 26 0.000000 0.000000 0.610158
+7 5 27 0.000000 0.000000 0.639763
+7 5 28 0.000000 0.000000 0.663038
+7 5 29 0.000000 0.052293 0.685409
+7 5 30 0.000000 0.150423 0.702029
+7 5 31 0.000000 0.248645 0.718265
+7 6 0 0.073841 0.058120 0.025626
+7 6 1 0.072852 0.058397 0.028366
+7 6 2 0.071818 0.058657 0.031151
+7 6 3 0.070123 0.058657 0.034623
+7 6 4 0.068349 0.058698 0.038395
+7 6 5 0.066026 0.059028 0.044266
+7 6 6 0.064143 0.059561 0.051295
+7 6 7 0.064169 0.060975 0.063343
+7 6 8 0.063326 0.062527 0.076944
+7 6 9 0.059877 0.064492 0.095204
+7 6 10 0.056597 0.066212 0.119441
+7 6 11 0.053690 0.067394 0.156828
+7 6 12 0.048746 0.068257 0.195812
+7 6 13 0.040406 0.068588 0.237457
+7 6 14 0.043636 0.066683 0.278576
+7 6 15 0.061742 0.061904 0.319020
+7 6 16 0.073828 0.032882 0.358744
+7 6 17 0.079896 0.000000 0.397750
+7 6 18 0.086965 0.000000 0.431716
+7 6 19 0.094815 0.000000 0.461763
+7 6 20 0.100283 0.000000 0.489842
+7 6 21 0.104322 0.000000 0.516740
+7 6 22 0.106585 0.000000 0.537430
+7 6 23 0.108040 0.000000 0.555298
+7 6 24 0.059856 0.000000 0.577017
+7 6 25 0.000000 0.000000 0.600019
+7 6 26 0.000000 0.000000 0.626057
+7 6 27 0.000000 0.000000 0.652795
+7 6 28 0.000000 0.000000 0.675063
+7 6 29 0.000000 0.089000 0.696693
+7 6 30 0.000000 0.179804 0.712836
+7 6 31 0.000000 0.270192 0.728614
+7 7 0 0.078545 0.064907 0.024886
+7 7 1 0.077502 0.066067 0.028038
+7 7 2 0.076419 0.067154 0.031213
+7 7 3 0.074723 0.067154 0.034743
+7 7 4 0.072914 0.067200 0.038593
+7 7 5 0.070308 0.067566 0.044689
+7 7 6 0.067807 0.068197 0.052155
+7 7 7 0.065755 0.069975 0.065559
+7 7 8 0.063415 0.072085 0.081307
+7 7 9 0.060211 0.075190 0.104092
+7 7 10 0.056340 0.078117 0.131915
+7 7 11 0.050999 0.080652 0.170818
+7 7 12 0.041070 0.082905 0.211712
+7 7 13 0.023492 0.084689 0.255922
+7 7 14 0.024652 0.085406 0.299082
+7 7 15 0.049904 0.084751 0.340890
+7 7 16 0.065916 0.073398 0.381624
+7 7 17 0.072689 0.051346 0.421281
+7 7 18 0.079262 0.034638 0.456647
+7 7 19 0.085680 0.022086 0.488674
+7 7 20 0.090292 0.018388 0.517524
+7 7 21 0.093821 0.020001 0.544468
+7 7 22 0.095142 0.023170 0.565812
+7 7 23 0.095459 0.027045 0.584612
+7 7 24 0.046849 0.036831 0.605139
+7 7 25 0.000000 0.048586 0.626243
+7 7 26 0.000000 0.071242 0.651877
+7 7 27 0.000000 0.096414 0.678558
+7 7 28 0.000000 0.148123 0.698072
+7 7 29 0.000000 0.203623 0.716563
+7 7 30 0.000000 0.252802 0.730218
+7 7 31 0.000000 0.301559 0.743552
+7 8 0 0.082783 0.072465 0.023072
+7 8 1 0.081539 0.074160 0.026937
+7 8 2 0.080264 0.075768 0.030795
+7 8 3 0.078538 0.076074 0.034541
+7 8 4 0.076668 0.076451 0.038635
+7 8 5 0.073790 0.077331 0.045163
+7 8 6 0.070747 0.078535 0.053254
+7 8 7 0.066992 0.081141 0.068119
+7 8 8 0.063278 0.084093 0.085845
+7 8 9 0.059689 0.088081 0.112154
+7 8 10 0.053955 0.092098 0.143004
+7 8 11 0.043505 0.096181 0.183842
+7 8 12 0.028894 0.099958 0.226721
+7 8 13 0.007348 0.103225 0.273003
+7 8 14 0.006823 0.106301 0.317881
+7 8 15 0.033323 0.109130 0.360953
+7 8 16 0.049525 0.111428 0.402781
+7 8 17 0.055430 0.113194 0.443363
+7 8 18 0.061046 0.115289 0.480032
+7 8 19 0.066438 0.117640 0.513659
+7 8 20 0.067826 0.120234 0.543170
+7 8 21 0.066810 0.122974 0.570211
+7 8 22 0.066079 0.128224 0.592020
+7 8 23 0.065478 0.134615 0.611451
+7 8 24 0.021863 0.150389 0.630928
+7 8 25 0.000000 0.169291 0.650422
+7 8 26 0.000000 0.205684 0.675249
+7 8 27 0.000000 0.246113 0.701308
+7 8 28 0.000000 0.272163 0.718387
+7 8 29 0.000000 0.296159 0.734184
+7 8 30 0.000000 0.313871 0.745727
+7 8 31 0.000000 0.331164 0.756986
+7 9 0 0.085622 0.082337 0.018036
+7 9 1 0.083731 0.083526 0.023518
+7 9 2 0.081843 0.084736 0.028934
+7 9 3 0.079995 0.086263 0.033375
+7 9 4 0.077988 0.087953 0.038209
+7 9 5 0.074868 0.090777 0.045792
+7 9 6 0.071519 0.093977 0.055074
+7 9 7 0.067182 0.098807 0.071716
+7 9 8 0.062462 0.103453 0.090906
+7 9 9 0.056595 0.107550 0.117737
+7 9 10 0.045189 0.112309 0.149941
+7 9 11 0.021599 0.118524 0.193966
+7 9 12 0.003217 0.124225 0.239059
+7 9 13 0.000000 0.129069 0.285929
+7 9 14 0.000000 0.133716 0.331558
+7 9 15 0.002515 0.138107 0.375592
+7 9 16 0.007700 0.142003 0.418771
+7 9 17 0.008011 0.145404 0.461094
+7 9 18 0.011288 0.148678 0.498783
+7 9 19 0.016873 0.151854 0.532868
+7 9 20 0.007930 0.155025 0.562707
+7 9 21 0.000000 0.158192 0.590000
+7 9 22 0.000000 0.163763 0.611704
+7 9 23 0.000000 0.170427 0.630868
+7 9 24 0.000000 0.185435 0.649719
+7 9 25 0.000000 0.203224 0.668466
+7 9 26 0.000000 0.237328 0.691274
+7 9 27 0.000000 0.275198 0.715018
+7 9 28 0.000000 0.299765 0.730620
+7 9 29 0.000000 0.322433 0.745057
+7 9 30 0.000000 0.339154 0.755614
+7 9 31 0.000000 0.355480 0.765912
+7 10 0 0.087748 0.097919 0.000000
+7 10 1 0.085423 0.098929 0.000000
+7 10 2 0.083108 0.100026 0.002502
+7 10 3 0.080942 0.102442 0.008697
+7 10 4 0.078261 0.105086 0.016421
+7 10 5 0.071985 0.109333 0.034847
+7 10 6 0.065509 0.113956 0.053503
+7 10 7 0.058173 0.120207 0.073156
+7 10 8 0.050886 0.126085 0.094964
+7 10 9 0.043746 0.130847 0.123238
+7 10 10 0.029427 0.136607 0.157241
+7 10 11 0.000000 0.144563 0.203846
+7 10 12 0.000000 0.151901 0.250847
+7 10 13 0.000000 0.158207 0.298505
+7 10 14 0.000000 0.164248 0.345135
+7 10 15 0.000000 0.169948 0.390443
+7 10 16 0.000000 0.175211 0.434939
+7 10 17 0.000000 0.180036 0.478623
+7 10 18 0.000000 0.184385 0.517245
+7 10 19 0.000000 0.188363 0.551929
+7 10 20 0.000000 0.192091 0.582060
+7 10 21 0.000000 0.195670 0.609458
+7 10 22 0.000000 0.201389 0.631130
+7 10 23 0.000000 0.208080 0.650198
+7 10 24 0.000000 0.222328 0.668497
+7 10 25 0.000000 0.239093 0.686539
+7 10 26 0.000000 0.270540 0.707181
+7 10 27 0.000000 0.305375 0.728424
+7 10 28 0.000000 0.328282 0.742575
+7 10 29 0.000000 0.349484 0.755713
+7 10 30 0.000000 0.365239 0.765391
+7 10 31 0.000000 0.380630 0.774838
+7 11 0 0.088306 0.126060 0.000000
+7 11 1 0.086015 0.127613 0.000000
+7 11 2 0.083685 0.129229 0.000000
+7 11 3 0.080764 0.131797 0.000000
+7 11 4 0.076229 0.134608 0.000000
+7 11 5 0.060387 0.139131 0.000000
+7 11 6 0.044580 0.143913 0.044469
+7 11 7 0.028927 0.149822 0.069849
+7 11 8 0.015636 0.155915 0.096819
+7 11 9 0.009436 0.162563 0.128563
+7 11 10 0.000000 0.169896 0.165339
+7 11 11 0.000000 0.178734 0.213188
+7 11 12 0.000000 0.187076 0.261426
+7 11 13 0.000000 0.194590 0.310313
+7 11 14 0.000000 0.201639 0.358491
+7 11 15 0.000000 0.208091 0.405758
+7 11 16 0.000000 0.214210 0.451497
+7 11 17 0.000000 0.219997 0.495710
+7 11 18 0.000000 0.225189 0.535074
+7 11 19 0.000000 0.229920 0.570668
+7 11 20 0.000000 0.234166 0.601006
+7 11 21 0.000000 0.238120 0.628189
+7 11 22 0.000000 0.243604 0.649987
+7 11 23 0.000000 0.249783 0.669338
+7 11 24 0.000000 0.263284 0.687245
+7 11 25 0.000000 0.279224 0.704671
+7 11 26 0.000000 0.307202 0.722830
+7 11 27 0.000000 0.337958 0.741158
+7 11 28 0.000000 0.358810 0.753920
+7 11 29 0.000000 0.378247 0.765887
+7 11 30 0.000000 0.393084 0.774924
+7 11 31 0.000000 0.407614 0.783765
+7 12 0 0.075869 0.155257 0.000000
+7 12 1 0.073596 0.157277 0.000000
+7 12 2 0.071251 0.159346 0.000000
+7 12 3 0.067832 0.162163 0.000000
+7 12 4 0.062490 0.165251 0.000000
+7 12 5 0.043686 0.170236 0.000000
+7 12 6 0.024965 0.175502 0.022399
+7 12 7 0.006600 0.181984 0.060977
+7 12 8 0.000000 0.188868 0.098550
+7 12 9 0.000000 0.196959 0.133108
+7 12 10 0.000000 0.205534 0.172300
+7 12 11 0.000000 0.215171 0.221688
+7 12 12 0.000000 0.224496 0.271510
+7 12 13 0.000000 0.233301 0.322054
+7 12 14 0.000000 0.241431 0.371867
+7 12 15 0.000000 0.248694 0.420740
+7 12 16 0.000000 0.255582 0.467715
+7 12 17 0.000000 0.262095 0.512792
+7 12 18 0.000000 0.267934 0.552795
+7 12 19 0.000000 0.273248 0.588852
+7 12 20 0.000000 0.277956 0.619570
+7 12 21 0.000000 0.282300 0.647085
+7 12 22 0.000000 0.287630 0.668912
+7 12 23 0.000000 0.293406 0.688154
+7 12 24 0.000000 0.305990 0.705537
+7 12 25 0.000000 0.320844 0.722302
+7 12 26 0.000000 0.345709 0.738381
+7 12 27 0.000000 0.372885 0.754302
+7 12 28 0.000000 0.391767 0.765753
+7 12 29 0.000000 0.409464 0.776565
+7 12 30 0.000000 0.423161 0.784823
+7 12 31 0.000000 0.436592 0.792911
+7 13 0 0.041774 0.186214 0.000000
+7 13 1 0.039493 0.188573 0.000000
+7 13 2 0.037135 0.190986 0.000000
+7 13 3 0.033643 0.194215 0.000000
+7 13 4 0.029242 0.197761 0.000000
+7 13 5 0.018482 0.203519 0.000000
+7 13 6 0.007539 0.209808 0.000000
+7 13 7 0.000000 0.218392 0.042830
+7 13 8 0.000000 0.227029 0.100073
+7 13 9 0.000000 0.235823 0.136354
+7 13 10 0.000000 0.245087 0.177366
+7 13 11 0.000000 0.255382 0.228786
+7 13 12 0.000000 0.265655 0.280767
+7 13 13 0.000000 0.275892 0.333683
+7 13 14 0.000000 0.285225 0.385276
+7 13 15 0.000000 0.293399 0.435168
+7 13 16 0.000000 0.300909 0.483366
+7 13 17 0.000000 0.307755 0.529868
+7 13 18 0.000000 0.313910 0.570336
+7 13 19 0.000000 0.319527 0.606111
+7 13 20 0.000000 0.324607 0.637500
+7 13 21 0.000000 0.329364 0.666259
+7 13 22 0.000000 0.334672 0.687951
+7 13 23 0.000000 0.340230 0.706431
+7 13 24 0.000000 0.351616 0.723072
+7 13 25 0.000000 0.364943 0.739100
+7 13 26 0.000000 0.387290 0.753771
+7 13 27 0.000000 0.411718 0.768130
+7 13 28 0.000000 0.428770 0.778399
+7 13 29 0.000000 0.444769 0.788083
+7 13 30 0.000000 0.456958 0.795335
+7 13 31 0.000000 0.468894 0.802425
+7 14 0 0.023187 0.222211 0.000000
+7 14 1 0.020619 0.224720 0.000000
+7 14 2 0.017965 0.227287 0.000000
+7 14 3 0.014033 0.230707 0.000000
+7 14 4 0.009721 0.234465 0.000000
+7 14 5 0.002758 0.240592 0.000000
+7 14 6 0.000000 0.247423 0.000000
+7 14 7 0.000000 0.257304 0.025741
+7 14 8 0.000000 0.267095 0.099783
+7 14 9 0.000000 0.276617 0.138389
+7 14 10 0.000000 0.286633 0.181679
+7 14 11 0.000000 0.297735 0.235273
+7 14 12 0.000000 0.308891 0.289287
+7 14 13 0.000000 0.320138 0.343998
+7 14 14 0.000000 0.330452 0.397255
+7 14 15 0.000000 0.339564 0.448642
+7 14 16 0.000000 0.347702 0.497973
+7 14 17 0.000000 0.354866 0.545249
+7 14 18 0.000000 0.361415 0.586089
+7 14 19 0.000000 0.367484 0.621923
+7 14 20 0.000000 0.372811 0.653815
+7 14 21 0.000000 0.377692 0.683342
+7 14 22 0.000000 0.382803 0.705121
+7 14 23 0.000000 0.388017 0.723378
+7 14 24 0.000000 0.398221 0.739464
+7 14 25 0.000000 0.410090 0.754825
+7 14 26 0.000000 0.429778 0.768210
+7 14 27 0.000000 0.451271 0.781140
+7 14 28 0.000000 0.466113 0.790165
+7 14 29 0.000000 0.480004 0.798632
+7 14 30 0.000000 0.490665 0.805011
+7 14 31 0.000000 0.501111 0.811252
+7 15 0 0.024538 0.264691 0.000000
+7 15 1 0.021326 0.267106 0.000000
+7 15 2 0.018012 0.269578 0.000000
+7 15 3 0.013168 0.272904 0.000000
+7 15 4 0.007851 0.276561 0.000000
+7 15 5 0.000000 0.282537 0.000000
+7 15 6 0.000000 0.289294 0.000000
+7 15 7 0.000000 0.299435 0.010011
+7 15 8 0.000000 0.309611 0.097162
+7 15 9 0.000000 0.319892 0.138867
+7 15 10 0.000000 0.330741 0.185024
+7 15 11 0.000000 0.342840 0.240975
+7 15 12 0.000000 0.354797 0.296857
+7 15 13 0.000000 0.366514 0.352625
+7 15 14 0.000000 0.377519 0.407396
+7 15 15 0.000000 0.387608 0.460887
+7 15 16 0.000000 0.396383 0.511239
+7 15 17 0.000000 0.403844 0.558452
+7 15 18 0.000000 0.410884 0.599543
+7 15 19 0.000000 0.417597 0.635875
+7 15 20 0.000000 0.423011 0.668052
+7 15 21 0.000000 0.427647 0.697736
+7 15 22 0.000000 0.432332 0.719888
+7 15 23 0.000000 0.437040 0.738616
+7 15 24 0.000000 0.446087 0.754386
+7 15 25 0.000000 0.456582 0.769171
+7 15 26 0.000000 0.473433 0.781426
+7 15 27 0.000000 0.491750 0.793097
+7 15 28 0.000000 0.503891 0.800799
+7 15 29 0.000000 0.515150 0.807935
+7 15 30 0.000000 0.524256 0.813614
+7 15 31 0.000000 0.533219 0.819197
+7 16 0 0.025318 0.303204 0.000000
+7 16 1 0.014462 0.305760 0.000000
+7 16 2 0.003340 0.308373 0.000000
+7 16 3 0.000000 0.311840 0.000000
+7 16 4 0.000000 0.315648 0.000000
+7 16 5 0.000000 0.321841 0.000000
+7 16 6 0.000000 0.328821 0.000000
+7 16 7 0.000000 0.339216 0.000000
+7 16 8 0.000000 0.349759 0.092598
+7 16 9 0.000000 0.360747 0.137894
+7 16 10 0.000000 0.372354 0.187165
+7 16 11 0.000000 0.385321 0.245180
+7 16 12 0.000000 0.398095 0.302917
+7 16 13 0.000000 0.410547 0.360191
+7 16 14 0.000000 0.422173 0.416403
+7 16 15 0.000000 0.432740 0.471247
+7 16 16 0.000000 0.442083 0.522640
+7 16 17 0.000000 0.450202 0.570584
+7 16 18 0.000000 0.457526 0.612141
+7 16 19 0.000000 0.464231 0.648732
+7 16 20 0.000000 0.469636 0.681168
+7 16 21 0.000000 0.474261 0.711112
+7 16 22 0.000000 0.478498 0.733400
+7 16 23 0.000000 0.482558 0.752208
+7 16 24 0.000000 0.490376 0.767593
+7 16 25 0.000000 0.499446 0.781836
+7 16 26 0.000000 0.513800 0.793134
+7 16 27 0.000000 0.529372 0.803753
+7 16 28 0.000000 0.539390 0.810542
+7 16 29 0.000000 0.548614 0.816784
+7 16 30 0.000000 0.556413 0.821838
+7 16 31 0.000000 0.564116 0.826812
+7 17 0 0.025525 0.337751 0.000000
+7 17 1 0.000025 0.340683 0.000000
+7 17 2 0.000000 0.343672 0.000000
+7 17 3 0.000000 0.347515 0.000000
+7 17 4 0.000000 0.351725 0.000000
+7 17 5 0.000000 0.358503 0.000000
+7 17 6 0.000000 0.366005 0.000000
+7 17 7 0.000000 0.376645 0.000000
+7 17 8 0.000000 0.387537 0.086091
+7 17 9 0.000000 0.399184 0.135469
+7 17 10 0.000000 0.411474 0.188100
+7 17 11 0.000000 0.425178 0.247887
+7 17 12 0.000000 0.438787 0.307466
+7 17 13 0.000000 0.452236 0.366699
+7 17 14 0.000000 0.464415 0.424275
+7 17 15 0.000000 0.474960 0.479720
+7 17 16 0.000000 0.484802 0.532176
+7 17 17 0.000000 0.493940 0.581645
+7 17 18 0.000000 0.501340 0.623882
+7 17 19 0.000000 0.507386 0.660494
+7 17 20 0.000000 0.512685 0.693164
+7 17 21 0.000000 0.517535 0.723469
+7 17 22 0.000000 0.521299 0.745657
+7 17 23 0.000000 0.524571 0.764155
+7 17 24 0.000000 0.531086 0.779083
+7 17 25 0.000000 0.538682 0.792820
+7 17 26 0.000000 0.550879 0.803335
+7 17 27 0.000000 0.564138 0.813108
+7 17 28 0.000000 0.572608 0.819393
+7 17 29 0.000000 0.580394 0.825181
+7 17 30 0.000000 0.587134 0.829683
+7 17 31 0.000000 0.593803 0.834099
+7 18 0 0.025032 0.372605 0.000000
+7 18 1 0.000000 0.375384 0.000000
+7 18 2 0.000000 0.378215 0.000000
+7 18 3 0.000000 0.381820 0.000000
+7 18 4 0.000000 0.385797 0.000000
+7 18 5 0.000000 0.392376 0.000000
+7 18 6 0.000000 0.399789 0.000000
+7 18 7 0.000000 0.410822 0.000000
+7 18 8 0.000000 0.422099 0.077764
+7 18 9 0.000000 0.434111 0.132064
+7 18 10 0.000000 0.446762 0.188691
+7 18 11 0.000000 0.460821 0.250436
+7 18 12 0.000000 0.474783 0.311625
+7 18 13 0.000000 0.488584 0.371886
+7 18 14 0.000000 0.501234 0.430504
+7 18 15 0.000000 0.512404 0.487008
+7 18 16 0.000000 0.522585 0.540106
+7 18 17 0.000000 0.531775 0.589799
+7 18 18 0.000000 0.539209 0.632503
+7 18 19 0.000000 0.545276 0.669770
+7 18 20 0.000000 0.550438 0.702658
+7 18 21 0.000000 0.555057 0.732918
+7 18 22 0.000000 0.558599 0.755239
+7 18 23 0.000000 0.561651 0.773952
+7 18 24 0.000000 0.567342 0.788639
+7 18 25 0.000000 0.573911 0.801984
+7 18 26 0.000000 0.584353 0.811910
+7 18 27 0.000000 0.595688 0.821048
+7 18 28 0.000000 0.602951 0.826941
+7 18 29 0.000000 0.609632 0.832371
+7 18 30 0.000000 0.615250 0.836500
+7 18 31 0.000000 0.620796 0.840543
+7 19 0 0.023992 0.407698 0.000000
+7 19 1 0.000000 0.409913 0.000000
+7 19 2 0.000000 0.412171 0.000000
+7 19 3 0.000000 0.415060 0.000000
+7 19 4 0.000000 0.418309 0.000000
+7 19 5 0.000000 0.424078 0.000000
+7 19 6 0.000000 0.430929 0.000000
+7 19 7 0.000000 0.442468 0.000000
+7 19 8 0.000000 0.454159 0.068022
+7 19 9 0.000000 0.466307 0.127897
+7 19 10 0.000000 0.479070 0.189014
+7 19 11 0.000000 0.493187 0.252864
+7 19 12 0.000000 0.507128 0.315482
+7 19 13 0.000000 0.520777 0.376047
+7 19 14 0.000000 0.533835 0.435454
+7 19 15 0.000000 0.546134 0.493375
+7 19 16 0.000000 0.556529 0.546787
+7 19 17 0.000000 0.565018 0.595692
+7 19 18 0.000000 0.572454 0.638697
+7 19 19 0.000000 0.579070 0.677114
+7 19 20 0.000000 0.584073 0.710207
+7 19 21 0.000000 0.588106 0.740106
+7 19 22 0.000000 0.591619 0.762742
+7 19 23 0.000000 0.594896 0.782076
+7 19 24 0.000000 0.600133 0.796691
+7 19 25 0.000000 0.606023 0.809733
+7 19 26 0.000000 0.615021 0.819220
+7 19 27 0.000000 0.624737 0.827888
+7 19 28 0.000000 0.631057 0.833476
+7 19 29 0.000000 0.636892 0.838623
+7 19 30 0.000000 0.641340 0.842519
+7 19 31 0.000000 0.645694 0.846331
+7 20 0 0.024187 0.433841 0.000000
+7 20 1 0.000000 0.436057 0.000000
+7 20 2 0.000000 0.438317 0.000000
+7 20 3 0.000000 0.441232 0.000000
+7 20 4 0.000000 0.444502 0.000000
+7 20 5 0.000000 0.450260 0.000000
+7 20 6 0.000000 0.457058 0.000000
+7 20 7 0.000000 0.468359 0.000000
+7 20 8 0.000000 0.479958 0.014508
+7 20 9 0.000000 0.492451 0.106676
+7 20 10 0.000000 0.505509 0.190433
+7 20 11 0.000000 0.519810 0.255686
+7 20 12 0.000000 0.533907 0.319417
+7 20 13 0.000000 0.547661 0.380611
+7 20 14 0.000000 0.560696 0.440491
+7 20 15 0.000000 0.572804 0.498681
+7 20 16 0.000000 0.583254 0.552439
+7 20 17 0.000000 0.592045 0.601766
+7 20 18 0.000000 0.599478 0.645074
+7 20 19 0.000000 0.605853 0.683700
+7 20 20 0.000000 0.611011 0.717132
+7 20 21 0.000000 0.615438 0.747447
+7 20 22 0.000000 0.618866 0.769873
+7 20 23 0.000000 0.621839 0.788713
+7 20 24 0.000000 0.626490 0.802970
+7 20 25 0.000000 0.631701 0.815699
+7 20 26 0.000000 0.639410 0.824841
+7 20 27 0.000000 0.647695 0.833156
+7 20 28 0.000000 0.653136 0.838524
+7 20 29 0.000000 0.658170 0.843471
+7 20 30 0.000000 0.662063 0.847197
+7 20 31 0.000000 0.665880 0.850841
+7 21 0 0.025123 0.454614 0.000000
+7 21 1 0.000000 0.457169 0.000000
+7 21 2 0.000000 0.459777 0.000000
+7 21 3 0.000000 0.463162 0.000000
+7 21 4 0.000000 0.466902 0.000000
+7 21 5 0.000000 0.473131 0.000000
+7 21 6 0.000000 0.480182 0.000000
+7 21 7 0.000000 0.490797 0.000000
+7 21 8 0.000000 0.502000 0.000000
+7 21 9 0.000000 0.514963 0.075222
+7 21 10 0.000000 0.528426 0.192508
+7 21 11 0.000000 0.542988 0.258744
+7 21 12 0.000000 0.557345 0.323399
+7 21 13 0.000000 0.571361 0.385418
+7 21 14 0.000000 0.584112 0.445579
+7 21 15 0.000000 0.595237 0.503350
+7 21 16 0.000000 0.605648 0.557474
+7 21 17 0.000000 0.615343 0.607950
+7 21 18 0.000000 0.622768 0.651562
+7 21 19 0.000000 0.628427 0.689833
+7 21 20 0.000000 0.633931 0.723683
+7 21 21 0.000000 0.639342 0.754881
+7 21 22 0.000000 0.642649 0.776782
+7 21 23 0.000000 0.645000 0.794458
+7 21 24 0.000000 0.648986 0.808184
+7 21 25 0.000000 0.653517 0.820595
+7 21 26 0.000000 0.660029 0.829448
+7 21 27 0.000000 0.666999 0.837481
+7 21 28 0.000000 0.671598 0.842681
+7 21 29 0.000000 0.675859 0.847477
+7 21 30 0.000000 0.679567 0.851070
+7 21 31 0.000000 0.683239 0.854584
+7 22 0 0.025058 0.472316 0.000000
+7 22 1 0.000000 0.474809 0.000000
+7 22 2 0.000000 0.477357 0.000000
+7 22 3 0.000000 0.480735 0.000000
+7 22 4 0.000000 0.484441 0.000000
+7 22 5 0.000000 0.490454 0.000000
+7 22 6 0.000000 0.497351 0.000000
+7 22 7 0.000000 0.508080 0.000000
+7 22 8 0.000000 0.519394 0.000000
+7 22 9 0.000000 0.532464 0.076236
+7 22 10 0.000000 0.546067 0.198430
+7 22 11 0.000000 0.560840 0.265350
+7 22 12 0.000000 0.575184 0.330481
+7 22 13 0.000000 0.588814 0.392629
+7 22 14 0.000000 0.601351 0.452754
+7 22 15 0.000000 0.612482 0.510280
+7 22 16 0.000000 0.622912 0.564130
+7 22 17 0.000000 0.632642 0.614305
+7 22 18 0.000000 0.640175 0.657767
+7 22 19 0.000000 0.645998 0.696006
+7 22 20 0.000000 0.651513 0.729498
+7 22 21 0.000000 0.656843 0.760142
+7 22 22 0.000000 0.660268 0.781818
+7 22 23 0.000000 0.662827 0.799417
+7 22 24 0.000000 0.666530 0.812826
+7 22 25 0.000000 0.670616 0.824839
+7 22 26 0.000000 0.676343 0.833284
+7 22 27 0.000000 0.682448 0.840905
+7 22 28 0.000000 0.686615 0.845921
+7 22 29 0.000000 0.690505 0.850565
+7 22 30 0.000000 0.693864 0.854074
+7 22 31 0.000000 0.697187 0.857507
+7 23 0 0.024538 0.488623 0.000000
+7 23 1 0.000000 0.490870 0.000000
+7 23 2 0.000000 0.493174 0.000000
+7 23 3 0.000000 0.496327 0.000000
+7 23 4 0.000000 0.499771 0.000000
+7 23 5 0.000000 0.505257 0.000000
+7 23 6 0.000000 0.511814 0.000000
+7 23 7 0.000000 0.523019 0.000000
+7 23 8 0.000000 0.534675 0.000000
+7 23 9 0.000000 0.547688 0.092008
+7 23 10 0.000000 0.561310 0.206100
+7 23 11 0.000000 0.576271 0.273569
+7 23 12 0.000000 0.590478 0.338972
+7 23 13 0.000000 0.603429 0.400932
+7 23 14 0.000000 0.615782 0.460879
+7 23 15 0.000000 0.627368 0.518238
+7 23 16 0.000000 0.637846 0.571524
+7 23 17 0.000000 0.647215 0.620737
+7 23 18 0.000000 0.654906 0.663843
+7 23 19 0.000000 0.661294 0.702198
+7 23 20 0.000000 0.666668 0.734979
+7 23 21 0.000000 0.671434 0.764415
+7 23 22 0.000000 0.675084 0.786001
+7 23 23 0.000000 0.678229 0.804019
+7 23 24 0.000000 0.681824 0.817208
+7 23 25 0.000000 0.685570 0.828787
+7 23 26 0.000000 0.690699 0.836768
+7 23 27 0.000000 0.696146 0.843920
+7 23 28 0.000000 0.700066 0.848744
+7 23 29 0.000000 0.703768 0.853236
+7 23 30 0.000000 0.706703 0.856682
+7 23 31 0.000000 0.709586 0.860058
+7 24 0 0.027448 0.503775 0.000000
+7 24 1 0.000000 0.506779 0.000000
+7 24 2 0.000000 0.509821 0.000000
+7 24 3 0.000000 0.513411 0.000000
+7 24 4 0.000000 0.517231 0.000000
+7 24 5 0.000000 0.522655 0.000000
+7 24 6 0.000000 0.529089 0.000000
+7 24 7 0.000000 0.539903 0.000000
+7 24 8 0.000000 0.551310 0.000000
+7 24 9 0.000000 0.564492 0.110880
+7 24 10 0.000000 0.578173 0.221870
+7 24 11 0.000000 0.592949 0.289720
+7 24 12 0.000000 0.606913 0.355073
+7 24 13 0.000000 0.619526 0.416265
+7 24 14 0.000000 0.631547 0.475303
+7 24 15 0.000000 0.642808 0.531574
+7 24 16 0.000000 0.653023 0.583632
+7 24 17 0.000000 0.662192 0.631477
+7 24 18 0.000000 0.669812 0.673610
+7 24 19 0.000000 0.676227 0.711300
+7 24 20 0.000000 0.681496 0.743050
+7 24 21 0.000000 0.686078 0.771236
+7 24 22 0.000000 0.689634 0.792105
+7 24 23 0.000000 0.692724 0.809647
+7 24 24 0.000000 0.696055 0.822460
+7 24 25 0.000000 0.699466 0.833696
+7 24 26 0.000000 0.704318 0.841403
+7 24 27 0.000000 0.709503 0.848296
+7 24 28 0.000000 0.713150 0.852956
+7 24 29 0.000000 0.716578 0.857296
+7 24 30 0.000000 0.719209 0.860612
+7 24 31 0.000000 0.721787 0.863859
+7 25 0 0.031502 0.518542 0.000000
+7 25 1 0.000000 0.522638 0.000000
+7 25 2 0.000000 0.526745 0.000000
+7 25 3 0.000000 0.530993 0.000000
+7 25 4 0.000000 0.535400 0.000000
+7 25 5 0.000000 0.540918 0.000000
+7 25 6 0.000000 0.547302 0.000000
+7 25 7 0.000000 0.557436 0.000000
+7 25 8 0.000000 0.568395 0.002423
+7 25 9 0.000000 0.581823 0.130786
+7 25 10 0.000000 0.595576 0.240341
+7 25 11 0.000000 0.610042 0.308515
+7 25 12 0.000000 0.623730 0.373711
+7 25 13 0.000000 0.636118 0.433941
+7 25 14 0.000000 0.647756 0.491828
+7 25 15 0.000000 0.658432 0.546704
+7 25 16 0.000000 0.668281 0.597312
+7 25 17 0.000000 0.677305 0.643653
+7 25 18 0.000000 0.684776 0.684607
+7 25 19 0.000000 0.691039 0.721372
+7 25 20 0.000000 0.696215 0.751985
+7 25 21 0.000000 0.700739 0.778906
+7 25 22 0.000000 0.704094 0.798848
+7 25 23 0.000000 0.706918 0.815617
+7 25 24 0.000000 0.709931 0.828002
+7 25 25 0.000000 0.713009 0.838926
+7 25 26 0.000000 0.717692 0.846422
+7 25 27 0.000000 0.722747 0.853126
+7 25 28 0.000000 0.726113 0.857630
+7 25 29 0.000000 0.729237 0.861819
+7 25 30 0.000000 0.731604 0.864983
+7 25 31 0.000000 0.733922 0.868079
+7 26 0 0.038088 0.531614 0.000000
+7 26 1 0.003583 0.535915 0.000000
+7 26 2 0.000000 0.540259 0.000000
+7 26 3 0.000000 0.545242 0.000000
+7 26 4 0.000000 0.550514 0.000000
+7 26 5 0.000000 0.557807 0.000000
+7 26 6 0.000000 0.565603 0.000000
+7 26 7 0.000000 0.575580 0.000000
+7 26 8 0.000000 0.586371 0.056380
+7 26 9 0.000000 0.599599 0.168351
+7 26 10 0.000000 0.613105 0.266221
+7 26 11 0.000000 0.627226 0.333069
+7 26 12 0.000000 0.640595 0.396903
+7 26 13 0.000000 0.652712 0.455713
+7 26 14 0.000000 0.663916 0.511966
+7 26 15 0.000000 0.673947 0.564929
+7 26 16 0.000000 0.683231 0.613576
+7 26 17 0.000000 0.691770 0.657907
+7 26 18 0.000000 0.698909 0.697438
+7 26 19 0.000000 0.704962 0.733236
+7 26 20 0.000000 0.709880 0.762346
+7 26 21 0.000000 0.714117 0.787443
+7 26 22 0.000000 0.717327 0.806388
+7 26 23 0.000000 0.720071 0.822537
+7 26 24 0.000000 0.723018 0.834643
+7 26 25 0.000000 0.726033 0.845402
+7 26 26 0.000000 0.730050 0.852242
+7 26 27 0.000000 0.734299 0.858177
+7 26 28 0.000000 0.737514 0.862534
+7 26 29 0.000000 0.740582 0.866665
+7 26 30 0.000000 0.742856 0.869755
+7 26 31 0.000000 0.745077 0.872775
+7 27 0 0.045259 0.544295 0.000000
+7 27 1 0.010754 0.548596 0.000000
+7 27 2 0.000000 0.552987 0.000000
+7 27 3 0.000000 0.558723 0.000000
+7 27 4 0.000000 0.564923 0.000000
+7 27 5 0.000000 0.574378 0.000000
+7 27 6 0.000000 0.583924 0.000000
+7 27 7 0.000000 0.593865 0.008008
+7 27 8 0.000000 0.604552 0.117679
+7 27 9 0.000000 0.617477 0.209991
+7 27 10 0.000000 0.630665 0.293812
+7 27 11 0.000000 0.644430 0.358952
+7 27 12 0.000000 0.657471 0.421147
+7 27 13 0.000000 0.669306 0.478431
+7 27 14 0.000000 0.680064 0.532936
+7 27 15 0.000000 0.689437 0.583867
+7 27 16 0.000000 0.698110 0.630435
+7 27 17 0.000000 0.706084 0.672640
+7 27 18 0.000000 0.712851 0.710692
+7 27 19 0.000000 0.718679 0.745513
+7 27 20 0.000000 0.723300 0.773036
+7 27 21 0.000000 0.727198 0.796180
+7 27 22 0.000000 0.730277 0.814113
+7 27 23 0.000000 0.732985 0.829676
+7 27 24 0.000000 0.735922 0.841538
+7 27 25 0.000000 0.738937 0.852167
+7 27 26 0.000000 0.742173 0.858248
+7 27 27 0.000000 0.745461 0.863279
+7 27 28 0.000000 0.748556 0.867491
+7 27 29 0.000000 0.751623 0.871585
+7 27 30 0.000000 0.753843 0.874619
+7 27 31 0.000000 0.756007 0.877582
+7 28 0 0.050248 0.553001 0.000000
+7 28 1 0.015790 0.557303 0.000000
+7 28 2 0.000000 0.561700 0.000000
+7 28 3 0.000000 0.567529 0.000000
+7 28 4 0.000000 0.573876 0.000000
+7 28 5 0.000000 0.583848 0.000000
+7 28 6 0.000000 0.594070 0.000000
+7 28 7 0.000000 0.605373 0.032131
+7 28 8 0.000000 0.617063 0.154601
+7 28 9 0.000000 0.629913 0.237165
+7 28 10 0.000000 0.642928 0.313757
+7 28 11 0.000000 0.656307 0.377208
+7 28 12 0.000000 0.669020 0.438058
+7 28 13 0.000000 0.680623 0.494571
+7 28 14 0.000000 0.691092 0.548018
+7 28 15 0.000000 0.700104 0.597525
+7 28 16 0.000000 0.708422 0.643004
+7 28 17 0.000000 0.716047 0.684454
+7 28 18 0.000000 0.722461 0.721318
+7 28 19 0.000000 0.727931 0.754614
+7 28 20 0.000000 0.732321 0.781158
+7 28 21 0.000000 0.736062 0.803652
+7 28 22 0.000000 0.739042 0.820783
+7 28 23 0.000000 0.741676 0.835477
+7 28 24 0.000000 0.744571 0.846791
+7 28 25 0.000000 0.747554 0.856979
+7 28 26 0.000000 0.750687 0.862886
+7 28 27 0.000000 0.753854 0.867804
+7 28 28 0.000000 0.756597 0.871550
+7 28 29 0.000000 0.759280 0.875127
+7 28 30 0.000000 0.761469 0.878169
+7 28 31 0.000000 0.763626 0.881175
+7 29 0 0.054925 0.561140 0.000000
+7 29 1 0.020520 0.565441 0.000000
+7 29 2 0.000000 0.569838 0.000000
+7 29 3 0.000000 0.575668 0.000000
+7 29 4 0.000000 0.582050 0.000000
+7 29 5 0.000000 0.592304 0.000000
+7 29 6 0.000000 0.603048 0.000000
+7 29 7 0.000000 0.615913 0.053903
+7 29 8 0.000000 0.628764 0.188040
+7 29 9 0.000000 0.641571 0.262273
+7 29 10 0.000000 0.654435 0.332610
+7 29 11 0.000000 0.667422 0.394375
+7 29 12 0.000000 0.679807 0.453921
+7 29 13 0.000000 0.691185 0.509770
+7 29 14 0.000000 0.701389 0.562259
+7 29 15 0.000000 0.710082 0.610428
+7 29 16 0.000000 0.718082 0.654959
+7 29 17 0.000000 0.725389 0.695852
+7 29 18 0.000000 0.731451 0.731569
+7 29 19 0.000000 0.736546 0.763260
+7 29 20 0.000000 0.740713 0.788913
+7 29 21 0.000000 0.744323 0.810942
+7 29 22 0.000000 0.747208 0.827303
+7 29 23 0.000000 0.749764 0.841087
+7 29 24 0.000000 0.752612 0.851810
+7 29 25 0.000000 0.755558 0.861513
+7 29 26 0.000000 0.758684 0.867328
+7 29 27 0.000000 0.761851 0.872247
+7 29 28 0.000000 0.764210 0.875480
+7 29 29 0.000000 0.766453 0.878472
+7 29 30 0.000000 0.768615 0.881531
+7 29 31 0.000000 0.770771 0.884595
+7 30 0 0.058530 0.567191 0.000000
+7 30 1 0.024079 0.571526 0.000000
+7 30 2 0.000000 0.575953 0.000000
+7 30 3 0.000000 0.581748 0.000000
+7 30 4 0.000000 0.588114 0.000000
+7 30 5 0.000000 0.598474 0.000000
+7 30 6 0.000000 0.609547 0.000000
+7 30 7 0.000000 0.623710 0.070228
+7 30 8 0.000000 0.637515 0.213123
+7 30 9 0.000000 0.650245 0.281143
+7 30 10 0.000000 0.663010 0.346867
+7 30 11 0.000000 0.675851 0.407544
+7 30 12 0.000000 0.688059 0.466274
+7 30 13 0.000000 0.699214 0.521763
+7 30 14 0.000000 0.709191 0.573571
+7 30 15 0.000000 0.717654 0.620647
+7 30 16 0.000000 0.725379 0.664282
+7 30 17 0.000000 0.732367 0.704474
+7 30 18 0.000000 0.738128 0.739260
+7 30 19 0.000000 0.742935 0.769842
+7 30 20 0.000000 0.746946 0.794810
+7 30 21 0.000000 0.750480 0.816410
+7 30 22 0.000000 0.753324 0.832146
+7 30 23 0.000000 0.755855 0.845216
+7 30 24 0.000000 0.758629 0.855529
+7 30 25 0.000000 0.761485 0.864922
+7 30 26 0.000000 0.764638 0.870680
+7 30 27 0.000000 0.767859 0.875598
+7 30 28 0.000000 0.770200 0.878829
+7 30 29 0.000000 0.772416 0.881819
+7 30 30 0.000000 0.774323 0.884450
+7 30 31 0.000000 0.776209 0.887057
+7 31 0 0.062064 0.573102 0.000000
+7 31 1 0.027559 0.577474 0.000000
+7 31 2 0.000000 0.581933 0.000000
+7 31 3 0.000000 0.587692 0.000000
+7 31 4 0.000000 0.594037 0.000000
+7 31 5 0.000000 0.604491 0.000000
+7 31 6 0.000000 0.615881 0.000000
+7 31 7 0.000000 0.631323 0.086190
+7 31 8 0.000000 0.646069 0.237649
+7 31 9 0.000000 0.658720 0.299596
+7 31 10 0.000000 0.671390 0.360819
+7 31 11 0.000000 0.684101 0.420446
+7 31 12 0.000000 0.696143 0.478393
+7 31 13 0.000000 0.707073 0.533542
+7 31 14 0.000000 0.716826 0.584688
+7 31 15 0.000000 0.725064 0.630688
+7 31 16 0.000000 0.732518 0.673429
+7 31 17 0.000000 0.739188 0.712912
+7 31 18 0.000000 0.744651 0.746782
+7 31 19 0.000000 0.749176 0.776287
+7 31 20 0.000000 0.753036 0.800584
+7 31 21 0.000000 0.756497 0.821756
+7 31 22 0.000000 0.759303 0.836876
+7 31 23 0.000000 0.761813 0.849246
+7 31 24 0.000000 0.764511 0.859161
+7 31 25 0.000000 0.767273 0.868257
+7 31 26 0.000000 0.770455 0.873959
+7 31 27 0.000000 0.773734 0.878877
+7 31 28 0.000000 0.776082 0.882140
+7 31 29 0.000000 0.778298 0.885166
+7 31 30 0.000000 0.779935 0.887339
+7 31 31 0.000000 0.781533 0.889454
+8 0 0 0.061629 0.039166 0.027917
+8 0 1 0.061990 0.039324 0.029739
+8 0 2 0.062361 0.039473 0.031607
+8 0 3 0.062869 0.039473 0.034181
+8 0 4 0.063405 0.039493 0.037005
+8 0 5 0.064127 0.039652 0.041583
+8 0 6 0.064749 0.039781 0.046459
+8 0 7 0.064941 0.039781 0.052629
+8 0 8 0.064946 0.039598 0.060178
+8 0 9 0.064394 0.038870 0.071860
+8 0 10 0.063805 0.037506 0.090639
+8 0 11 0.063138 0.034744 0.125033
+8 0 12 0.062865 0.031206 0.159240
+8 0 13 0.063248 0.026376 0.193134
+8 0 14 0.068816 0.006103 0.229286
+8 0 15 0.081053 0.000000 0.268339
+8 0 16 0.091463 0.000000 0.304435
+8 0 17 0.100045 0.000000 0.337571
+8 0 18 0.109262 0.000000 0.369117
+8 0 19 0.118971 0.000000 0.399427
+8 0 20 0.126995 0.000000 0.425940
+8 0 21 0.134008 0.000000 0.450173
+8 0 22 0.139508 0.000000 0.473135
+8 0 23 0.144322 0.000000 0.495517
+8 0 24 0.144516 0.000000 0.522206
+8 0 25 0.143171 0.000000 0.550330
+8 0 26 0.134385 0.000000 0.585821
+8 0 27 0.123882 0.000000 0.623012
+8 0 28 0.116745 0.000000 0.648325
+8 0 29 0.110088 0.000000 0.671942
+8 0 30 0.105154 0.097547 0.689367
+8 0 31 0.100334 0.197103 0.706379
+8 1 0 0.063943 0.041375 0.027529
+8 1 1 0.063748 0.041464 0.029833
+8 1 2 0.063592 0.041547 0.032149
+8 1 3 0.064025 0.041547 0.034641
+8 1 4 0.064495 0.041567 0.037393
+8 1 5 0.065228 0.041726 0.041971
+8 1 6 0.065891 0.041923 0.047132
+8 1 7 0.066246 0.042287 0.054818
+8 1 8 0.066207 0.042407 0.063480
+8 1 9 0.064989 0.041797 0.075068
+8 1 10 0.064072 0.040603 0.093900
+8 1 11 0.063820 0.038123 0.128670
+8 1 12 0.063834 0.034978 0.163486
+8 1 13 0.064293 0.030724 0.198378
+8 1 14 0.069709 0.012872 0.235143
+8 1 15 0.081496 0.000000 0.274315
+8 1 16 0.091544 0.000000 0.310839
+8 1 17 0.099853 0.000000 0.344716
+8 1 18 0.108759 0.000000 0.376547
+8 1 19 0.118130 0.000000 0.406787
+8 1 20 0.125870 0.000000 0.433508
+8 1 21 0.132631 0.000000 0.458118
+8 1 22 0.137813 0.000000 0.480817
+8 1 23 0.142276 0.000000 0.502648
+8 1 24 0.127161 0.000000 0.527982
+8 1 25 0.105518 0.000000 0.554483
+8 1 26 0.092989 0.000000 0.589726
+8 1 27 0.082563 0.000000 0.626987
+8 1 28 0.075435 0.000000 0.652309
+8 1 29 0.068777 0.008090 0.675926
+8 1 30 0.063843 0.105997 0.693274
+8 1 31 0.059024 0.205553 0.710204
+8 2 0 0.066284 0.043610 0.027140
+8 2 1 0.065562 0.043634 0.029897
+8 2 2 0.064906 0.043656 0.032634
+8 2 3 0.065218 0.043663 0.035080
+8 2 4 0.065584 0.043688 0.037793
+8 2 5 0.066333 0.043842 0.042370
+8 2 6 0.067039 0.044103 0.047817
+8 2 7 0.067557 0.044832 0.057030
+8 2 8 0.067472 0.045259 0.066817
+8 2 9 0.065572 0.044783 0.078325
+8 2 10 0.064316 0.043769 0.097226
+8 2 11 0.064475 0.041572 0.132389
+8 2 12 0.064782 0.038820 0.167830
+8 2 13 0.065335 0.035143 0.203733
+8 2 14 0.070603 0.019644 0.241119
+8 2 15 0.081931 0.000000 0.280414
+8 2 16 0.091607 0.000000 0.317374
+8 2 17 0.099633 0.000000 0.351998
+8 2 18 0.108223 0.000000 0.384123
+8 2 19 0.117254 0.000000 0.414304
+8 2 20 0.124705 0.000000 0.441241
+8 2 21 0.131210 0.000000 0.466232
+8 2 22 0.136064 0.000000 0.488667
+8 2 23 0.140168 0.000000 0.509940
+8 2 24 0.110381 0.000000 0.533970
+8 2 25 0.069297 0.000000 0.558920
+8 2 26 0.051881 0.000000 0.593835
+8 2 27 0.039927 0.000000 0.631048
+8 2 28 0.032767 0.000000 0.656365
+8 2 29 0.026291 0.016426 0.679982
+8 2 30 0.021506 0.114611 0.697262
+8 2 31 0.016834 0.214167 0.714121
+8 3 0 0.069024 0.046231 0.026729
+8 3 1 0.068227 0.046255 0.029497
+8 3 2 0.067449 0.046284 0.032277
+8 3 3 0.066977 0.046397 0.035217
+8 3 4 0.066666 0.046504 0.038363
+8 3 5 0.067491 0.046576 0.042940
+8 3 6 0.068289 0.046841 0.048702
+8 3 7 0.068972 0.047946 0.059596
+8 3 8 0.068785 0.048750 0.070675
+8 3 9 0.065991 0.048650 0.082314
+8 3 10 0.064229 0.047986 0.101509
+8 3 11 0.064737 0.046084 0.137331
+8 3 12 0.065402 0.043736 0.173633
+8 3 13 0.066325 0.040648 0.210733
+8 3 14 0.071528 0.026454 0.248876
+8 3 15 0.082232 0.000000 0.288359
+8 3 16 0.091383 0.000000 0.325848
+8 3 17 0.098982 0.000000 0.361343
+8 3 18 0.107183 0.000000 0.393901
+8 3 19 0.115852 0.000000 0.424176
+8 3 20 0.122957 0.000000 0.451435
+8 3 21 0.129122 0.000000 0.476884
+8 3 22 0.133525 0.000000 0.499017
+8 3 23 0.137127 0.000000 0.519644
+8 3 24 0.102247 0.000000 0.543152
+8 3 25 0.054539 0.000000 0.567620
+8 3 26 0.015089 0.000000 0.600982
+8 3 27 0.000000 0.000000 0.636397
+8 3 28 0.000000 0.000000 0.661489
+8 3 29 0.000000 0.027140 0.685106
+8 3 30 0.000000 0.125681 0.702463
+8 3 31 0.000000 0.225238 0.719404
+8 4 0 0.072036 0.049111 0.026292
+8 4 1 0.071181 0.049145 0.029070
+8 4 2 0.070306 0.049189 0.031886
+8 4 3 0.069127 0.049384 0.035272
+8 4 4 0.068185 0.049557 0.038818
+8 4 5 0.068900 0.049570 0.043486
+8 4 6 0.069633 0.049848 0.049598
+8 4 7 0.070451 0.051272 0.061974
+8 4 8 0.070173 0.052423 0.074302
+8 4 9 0.066606 0.052758 0.086490
+8 4 10 0.064388 0.052512 0.106274
+8 4 11 0.065133 0.050987 0.142770
+8 4 12 0.066095 0.049123 0.179984
+8 4 13 0.067417 0.046695 0.218396
+8 4 14 0.072546 0.034069 0.257370
+8 4 15 0.082572 0.008332 0.297067
+8 4 16 0.091153 0.000000 0.335146
+8 4 17 0.098290 0.000000 0.371605
+8 4 18 0.106080 0.000000 0.404632
+8 4 19 0.114378 0.000000 0.434989
+8 4 20 0.121086 0.000000 0.462581
+8 4 21 0.126839 0.000000 0.488515
+8 4 22 0.130759 0.000000 0.510339
+8 4 23 0.133846 0.000000 0.530295
+8 4 24 0.094474 0.000000 0.553294
+8 4 25 0.040949 0.000000 0.577307
+8 4 26 0.000000 0.000000 0.608944
+8 4 27 0.000000 0.000000 0.642340
+8 4 28 0.000000 0.000000 0.667159
+8 4 29 0.000000 0.038898 0.690752
+8 4 30 0.000000 0.137831 0.708175
+8 4 31 0.000000 0.237388 0.725187
+8 5 0 0.076942 0.053807 0.025675
+8 5 1 0.076164 0.053922 0.028440
+8 5 2 0.075351 0.054038 0.031252
+8 5 3 0.074019 0.054151 0.034744
+8 5 4 0.072767 0.054265 0.038473
+8 5 5 0.072064 0.054385 0.043859
+8 5 6 0.071634 0.054734 0.050574
+8 5 7 0.072387 0.056075 0.063043
+8 5 8 0.072082 0.057377 0.076312
+8 5 9 0.068603 0.058558 0.091978
+8 5 10 0.066270 0.059195 0.114400
+8 5 11 0.066460 0.058634 0.151685
+8 5 12 0.067298 0.057810 0.190181
+8 5 13 0.069219 0.056547 0.230694
+8 5 14 0.074221 0.047315 0.271025
+8 5 15 0.083184 0.027838 0.311123
+8 5 16 0.090879 0.000000 0.350213
+8 5 17 0.097305 0.000000 0.388295
+8 5 18 0.104537 0.000000 0.422032
+8 5 19 0.112398 0.000000 0.452389
+8 5 20 0.118361 0.000000 0.480400
+8 5 21 0.123185 0.000000 0.507004
+8 5 22 0.126402 0.000000 0.528455
+8 5 23 0.128887 0.000000 0.547565
+8 5 24 0.089233 0.000000 0.570159
+8 5 25 0.035533 0.000000 0.593915
+8 5 26 0.000000 0.000000 0.622608
+8 5 27 0.000000 0.000000 0.652440
+8 5 28 0.000000 0.000000 0.676649
+8 5 29 0.000000 0.057966 0.700054
+8 5 30 0.000000 0.157535 0.717466
+8 5 31 0.000000 0.257091 0.734478
+8 6 0 0.082422 0.059189 0.024942
+8 6 1 0.081693 0.059535 0.027773
+8 6 2 0.080919 0.059861 0.030651
+8 6 3 0.079464 0.059908 0.034243
+8 6 4 0.077952 0.059975 0.038137
+8 6 5 0.076038 0.060183 0.044145
+8 6 6 0.074536 0.060592 0.051412
+8 6 7 0.074815 0.061872 0.064134
+8 6 8 0.074208 0.063368 0.078581
+8 6 9 0.070943 0.065514 0.098197
+8 6 10 0.068513 0.067140 0.123582
+8 6 11 0.067916 0.067622 0.161660
+8 6 12 0.068536 0.067920 0.201487
+8 6 13 0.071182 0.067911 0.244228
+8 6 14 0.075993 0.062320 0.286095
+8 6 15 0.083588 0.049551 0.326840
+8 6 16 0.090291 0.004648 0.366957
+8 6 17 0.096101 0.000000 0.406446
+8 6 18 0.102671 0.000000 0.441027
+8 6 19 0.109831 0.000000 0.471792
+8 6 20 0.114992 0.000000 0.500266
+8 6 21 0.118953 0.000000 0.527366
+8 6 22 0.121422 0.000000 0.548661
+8 6 23 0.123211 0.000000 0.567317
+8 6 24 0.083203 0.000000 0.589295
+8 6 25 0.029262 0.000000 0.612381
+8 6 26 0.000000 0.000000 0.638583
+8 6 27 0.000000 0.000000 0.665504
+8 6 28 0.000000 0.000000 0.688697
+8 6 29 0.000000 0.095194 0.711356
+8 6 30 0.000000 0.187481 0.728285
+8 6 31 0.000000 0.279245 0.744831
+8 7 0 0.090387 0.067551 0.023708
+8 7 1 0.089593 0.068767 0.026939
+8 7 2 0.088758 0.069910 0.030197
+8 7 3 0.087303 0.069957 0.033859
+8 7 4 0.085751 0.070025 0.037839
+8 7 5 0.083521 0.070245 0.044047
+8 7 6 0.081340 0.070669 0.051653
+8 7 7 0.079372 0.071973 0.065319
+8 7 8 0.077271 0.073857 0.081971
+8 7 9 0.074771 0.077484 0.107580
+8 7 10 0.072311 0.080557 0.137340
+8 7 11 0.069936 0.082416 0.176231
+8 7 12 0.069923 0.084192 0.217605
+8 7 13 0.073845 0.085830 0.263118
+8 7 14 0.078192 0.084949 0.307296
+8 7 15 0.083085 0.080830 0.349757
+8 7 16 0.088337 0.062731 0.390968
+8 7 17 0.093950 0.030653 0.430926
+8 7 18 0.099400 0.017285 0.466937
+8 7 19 0.104722 0.018470 0.499876
+8 7 20 0.108832 0.020049 0.529004
+8 7 21 0.112214 0.021864 0.555847
+8 7 22 0.113743 0.024908 0.577918
+8 7 23 0.114429 0.028509 0.597820
+8 7 24 0.073748 0.038518 0.618268
+8 7 25 0.019279 0.050663 0.638897
+8 7 26 0.000000 0.073661 0.664572
+8 7 27 0.000000 0.099164 0.691411
+8 7 28 0.000000 0.153111 0.711825
+8 7 29 0.000000 0.211122 0.731321
+8 7 30 0.000000 0.261816 0.745727
+8 7 31 0.000000 0.312023 0.759792
+8 8 0 0.097343 0.076602 0.020689
+8 8 1 0.096356 0.078356 0.024973
+8 8 2 0.095339 0.080023 0.029235
+8 8 3 0.093868 0.080372 0.033143
+8 8 4 0.092268 0.080775 0.037394
+8 8 5 0.089768 0.081547 0.044037
+8 8 6 0.087045 0.082560 0.052225
+8 8 7 0.083353 0.084614 0.067110
+8 8 8 0.079986 0.087338 0.085822
+8 8 9 0.077596 0.092071 0.116017
+8 8 10 0.074732 0.096413 0.149391
+8 8 11 0.070827 0.099895 0.189758
+8 8 12 0.069848 0.103288 0.232865
+8 8 13 0.073747 0.106531 0.280537
+8 8 14 0.076948 0.109567 0.326603
+8 8 15 0.079249 0.112334 0.370605
+8 8 16 0.082464 0.114736 0.413020
+8 8 17 0.086593 0.116772 0.453848
+8 8 18 0.090956 0.118855 0.491175
+8 8 19 0.095501 0.120973 0.525778
+8 8 20 0.095490 0.123662 0.555473
+8 8 21 0.092744 0.126694 0.582224
+8 8 22 0.091676 0.131779 0.604847
+8 8 23 0.091370 0.137796 0.625594
+8 8 24 0.053216 0.153926 0.644780
+8 8 25 0.002446 0.173426 0.663447
+8 8 26 0.000000 0.210363 0.688222
+8 8 27 0.000000 0.251324 0.714406
+8 8 28 0.000000 0.279194 0.732328
+8 8 29 0.000000 0.305193 0.749070
+8 8 30 0.000000 0.324384 0.761313
+8 8 31 0.000000 0.343121 0.773256
+8 9 0 0.101276 0.087720 0.012315
+8 9 1 0.099710 0.089016 0.019611
+8 9 2 0.098146 0.090329 0.026745
+8 9 3 0.096610 0.091889 0.031433
+8 9 4 0.094937 0.093622 0.036508
+8 9 5 0.092308 0.096569 0.044292
+8 9 6 0.089451 0.099898 0.053790
+8 9 7 0.085606 0.104878 0.070718
+8 9 8 0.081660 0.109794 0.091055
+8 9 9 0.077409 0.114515 0.121614
+8 9 10 0.073021 0.119587 0.156321
+8 9 11 0.068331 0.125432 0.200155
+8 9 12 0.065391 0.130856 0.245549
+8 9 13 0.065369 0.135580 0.293543
+8 9 14 0.065375 0.140147 0.340232
+8 9 15 0.065418 0.144513 0.385243
+8 9 16 0.064831 0.148507 0.429197
+8 9 17 0.063615 0.152129 0.472094
+8 9 18 0.066993 0.155322 0.510399
+8 9 19 0.073944 0.158180 0.545132
+8 9 20 0.060600 0.161323 0.575133
+8 9 21 0.035079 0.164638 0.602293
+8 9 22 0.026443 0.170198 0.624794
+8 9 23 0.025482 0.176780 0.645176
+8 9 24 0.000000 0.192106 0.663912
+8 9 25 0.000000 0.210348 0.682100
+8 9 26 0.000000 0.244939 0.704856
+8 9 27 0.000000 0.283304 0.728665
+8 9 28 0.000000 0.309379 0.744953
+8 9 29 0.000000 0.333699 0.760165
+8 9 30 0.000000 0.351650 0.771332
+8 9 31 0.000000 0.369176 0.782229
+8 10 0 0.105830 0.104782 0.000000
+8 10 1 0.103863 0.105907 0.000000
+8 10 2 0.101905 0.107114 0.000173
+8 10 3 0.100088 0.109564 0.004555
+8 10 4 0.098106 0.112268 0.010718
+8 10 5 0.094964 0.116748 0.029353
+8 10 6 0.091525 0.121640 0.048599
+8 10 7 0.086797 0.128321 0.070493
+8 10 8 0.081736 0.134673 0.094912
+8 10 9 0.075673 0.140040 0.126908
+8 10 10 0.068867 0.146143 0.163474
+8 10 11 0.060422 0.153865 0.210095
+8 10 12 0.051073 0.160991 0.257479
+8 10 13 0.040215 0.167124 0.306135
+8 10 14 0.033497 0.173072 0.353794
+8 10 15 0.032100 0.178779 0.400173
+8 10 16 0.029354 0.184157 0.445606
+8 10 17 0.025260 0.189204 0.490094
+8 10 18 0.027500 0.193445 0.529339
+8 10 19 0.034668 0.197058 0.564507
+8 10 20 0.015772 0.200677 0.594766
+8 10 21 0.000000 0.204299 0.622080
+8 10 22 0.000000 0.210081 0.644520
+8 10 23 0.000000 0.216844 0.664744
+8 10 24 0.000000 0.231394 0.683064
+8 10 25 0.000000 0.248539 0.700748
+8 10 26 0.000000 0.280439 0.721346
+8 10 27 0.000000 0.315744 0.742616
+8 10 28 0.000000 0.339953 0.757307
+8 10 29 0.000000 0.362577 0.771057
+8 10 30 0.000000 0.379415 0.781241
+8 10 31 0.000000 0.395867 0.791188
+8 11 0 0.111748 0.134922 0.000000
+8 11 1 0.109770 0.136504 0.000000
+8 11 2 0.107754 0.138153 0.000000
+8 11 3 0.105184 0.140791 0.000000
+8 11 4 0.102373 0.143674 0.000000
+8 11 5 0.097876 0.148272 0.000000
+8 11 6 0.092868 0.153073 0.028546
+8 11 7 0.085651 0.158756 0.061831
+8 11 8 0.078296 0.164884 0.095744
+8 11 9 0.070531 0.172343 0.131537
+8 11 10 0.059339 0.180138 0.171118
+8 11 11 0.040607 0.188669 0.219030
+8 11 12 0.015061 0.196772 0.267751
+8 11 13 0.000000 0.204162 0.317817
+8 11 14 0.000000 0.211155 0.367211
+8 11 15 0.000000 0.217639 0.415744
+8 11 16 0.000000 0.223940 0.462523
+8 11 17 0.000000 0.230058 0.507551
+8 11 18 0.000000 0.235210 0.547653
+8 11 19 0.000000 0.239613 0.583925
+8 11 20 0.000000 0.243754 0.614343
+8 11 21 0.000000 0.247740 0.641247
+8 11 22 0.000000 0.253183 0.663761
+8 11 23 0.000000 0.259289 0.684280
+8 11 24 0.000000 0.273119 0.702257
+8 11 25 0.000000 0.289524 0.719386
+8 11 26 0.000000 0.317971 0.737522
+8 11 27 0.000000 0.349196 0.755889
+8 11 28 0.000000 0.371383 0.769065
+8 11 29 0.000000 0.392278 0.781499
+8 11 30 0.000000 0.408280 0.790907
+8 11 31 0.000000 0.423956 0.800114
+8 12 0 0.116561 0.166214 0.000000
+8 12 1 0.114297 0.168223 0.000000
+8 12 2 0.111958 0.170289 0.000000
+8 12 3 0.108482 0.173195 0.000000
+8 12 4 0.104677 0.176362 0.000000
+8 12 5 0.098568 0.181351 0.000000
+8 12 6 0.091838 0.186530 0.000000
+8 12 7 0.082421 0.192537 0.046289
+8 12 8 0.069811 0.199266 0.096699
+8 12 9 0.047619 0.208161 0.135462
+8 12 10 0.025932 0.217190 0.177584
+8 12 11 0.005356 0.226516 0.227098
+8 12 12 0.000000 0.235619 0.277494
+8 12 13 0.000000 0.244353 0.329358
+8 12 14 0.000000 0.252490 0.380534
+8 12 15 0.000000 0.259859 0.430826
+8 12 16 0.000000 0.266984 0.478910
+8 12 17 0.000000 0.273865 0.524787
+8 12 18 0.000000 0.279710 0.565595
+8 12 19 0.000000 0.284750 0.602460
+8 12 20 0.000000 0.289354 0.633245
+8 12 21 0.000000 0.293694 0.660383
+8 12 22 0.000000 0.298956 0.682963
+8 12 23 0.000000 0.304637 0.703471
+8 12 24 0.000000 0.317550 0.720954
+8 12 25 0.000000 0.332875 0.737428
+8 12 26 0.000000 0.358177 0.753483
+8 12 27 0.000000 0.385782 0.769442
+8 12 28 0.000000 0.405950 0.781227
+8 12 29 0.000000 0.425055 0.792415
+8 12 30 0.000000 0.439870 0.800952
+8 12 31 0.000000 0.454400 0.809313
+8 13 0 0.119532 0.199426 0.000000
+8 13 1 0.116525 0.201812 0.000000
+8 13 2 0.113417 0.204255 0.000000
+8 13 3 0.108784 0.207562 0.000000
+8 13 4 0.103711 0.211184 0.000000
+8 13 5 0.095560 0.217020 0.000000
+8 13 6 0.086851 0.223361 0.000000
+8 13 7 0.075720 0.231894 0.019279
+8 13 8 0.052915 0.240603 0.097860
+8 13 9 0.000000 0.249837 0.138212
+8 13 10 0.000000 0.259340 0.182089
+8 13 11 0.000000 0.269433 0.233720
+8 13 12 0.000000 0.279575 0.286355
+8 13 13 0.000000 0.289801 0.340664
+8 13 14 0.000000 0.299244 0.393698
+8 13 15 0.000000 0.307681 0.445094
+8 13 16 0.000000 0.315464 0.494413
+8 13 17 0.000000 0.322594 0.541654
+8 13 18 0.000000 0.328766 0.582914
+8 13 19 0.000000 0.334195 0.619521
+8 13 20 0.000000 0.339156 0.651025
+8 13 21 0.000000 0.343836 0.679467
+8 13 22 0.000000 0.349179 0.702098
+8 13 23 0.000000 0.354823 0.722087
+8 13 24 0.000000 0.366493 0.738824
+8 13 25 0.000000 0.380171 0.754476
+8 13 26 0.000000 0.402843 0.769089
+8 13 27 0.000000 0.427591 0.783461
+8 13 28 0.000000 0.445745 0.794060
+8 13 29 0.000000 0.462958 0.804121
+8 13 30 0.000000 0.476003 0.811629
+8 13 31 0.000000 0.488770 0.818968
+8 14 0 0.122397 0.237413 0.000000
+8 14 1 0.118552 0.239969 0.000000
+8 14 2 0.114581 0.242584 0.000000
+8 14 3 0.108700 0.246069 0.000000
+8 14 4 0.102257 0.249897 0.000000
+8 14 5 0.091874 0.256126 0.000000
+8 14 6 0.078204 0.263069 0.000000
+8 14 7 0.050286 0.273105 0.002671
+8 14 8 0.014098 0.283096 0.096613
+8 14 9 0.000000 0.292949 0.139491
+8 14 10 0.000000 0.303146 0.185833
+8 14 11 0.000000 0.314102 0.239798
+8 14 12 0.000000 0.325188 0.294596
+8 14 13 0.000000 0.336490 0.350784
+8 14 14 0.000000 0.346994 0.405543
+8 14 15 0.000000 0.356469 0.458464
+8 14 16 0.000000 0.364872 0.508868
+8 14 17 0.000000 0.372202 0.556754
+8 14 18 0.000000 0.378768 0.598411
+8 14 19 0.000000 0.384738 0.635224
+8 14 20 0.000000 0.389938 0.667350
+8 14 21 0.000000 0.394676 0.696664
+8 14 22 0.000000 0.399881 0.719522
+8 14 23 0.000000 0.405299 0.739446
+8 14 24 0.000000 0.415754 0.755519
+8 14 25 0.000000 0.427889 0.770309
+8 14 26 0.000000 0.447842 0.783583
+8 14 27 0.000000 0.469599 0.796507
+8 14 28 0.000000 0.485426 0.805902
+8 14 29 0.000000 0.500406 0.814793
+8 14 30 0.000000 0.511789 0.821409
+8 14 31 0.000000 0.522932 0.827875
+8 15 0 0.125126 0.281538 0.000000
+8 15 1 0.120322 0.284000 0.000000
+8 15 2 0.115365 0.286520 0.000000
+8 15 3 0.108121 0.289899 0.000000
+8 15 4 0.100175 0.293611 0.000000
+8 15 5 0.087317 0.299652 0.000000
+8 15 6 0.064853 0.306477 0.000000
+8 15 7 0.000766 0.316702 0.000000
+8 15 8 0.000000 0.327077 0.092269
+8 15 9 0.000000 0.337907 0.138877
+8 15 10 0.000000 0.349084 0.188600
+8 15 11 0.000000 0.361025 0.245176
+8 15 12 0.000000 0.372931 0.302038
+8 15 13 0.000000 0.384776 0.359379
+8 15 14 0.000000 0.396023 0.415691
+8 15 15 0.000000 0.406499 0.470681
+8 15 16 0.000000 0.415472 0.521978
+8 15 17 0.000000 0.422942 0.569582
+8 15 18 0.000000 0.429984 0.611566
+8 15 19 0.000000 0.436695 0.649180
+8 15 20 0.000000 0.441981 0.681803
+8 15 21 0.000000 0.446412 0.711432
+8 15 22 0.000000 0.451199 0.734745
+8 15 23 0.000000 0.456147 0.755188
+8 15 24 0.000000 0.465427 0.770704
+8 15 25 0.000000 0.476151 0.784578
+8 15 26 0.000000 0.493269 0.796647
+8 15 27 0.000000 0.511863 0.808301
+8 15 28 0.000000 0.524959 0.816468
+8 15 29 0.000000 0.537271 0.824136
+8 15 30 0.000000 0.547130 0.830037
+8 15 31 0.000000 0.556827 0.835819
+8 16 0 0.126978 0.321767 0.000000
+8 16 1 0.111238 0.324371 0.000000
+8 16 2 0.095111 0.327032 0.000000
+8 16 3 0.073178 0.330564 0.000000
+8 16 4 0.052645 0.334441 0.000000
+8 16 5 0.041904 0.340735 0.000000
+8 16 6 0.021644 0.347812 0.000000
+8 16 7 0.000000 0.358278 0.000000
+8 16 8 0.000000 0.369040 0.080904
+8 16 9 0.000000 0.380693 0.134695
+8 16 10 0.000000 0.392719 0.190066
+8 16 11 0.000000 0.405564 0.248918
+8 16 12 0.000000 0.418312 0.307807
+8 16 13 0.000000 0.430897 0.366758
+8 16 14 0.000000 0.442758 0.424555
+8 16 15 0.000000 0.453688 0.480868
+8 16 16 0.000000 0.463205 0.533146
+8 16 17 0.000000 0.471308 0.581390
+8 16 18 0.000000 0.478655 0.623916
+8 16 19 0.000000 0.485413 0.661995
+8 16 20 0.000000 0.490691 0.695049
+8 16 21 0.000000 0.495081 0.725089
+8 16 22 0.000000 0.499434 0.748511
+8 16 23 0.000000 0.503771 0.768925
+8 16 24 0.000000 0.511735 0.783910
+8 16 25 0.000000 0.520908 0.797084
+8 16 26 0.000000 0.535460 0.808173
+8 16 27 0.000000 0.551254 0.818780
+8 16 28 0.000000 0.562077 0.826034
+8 16 29 0.000000 0.572190 0.832810
+8 16 30 0.000000 0.580738 0.838152
+8 16 31 0.000000 0.589182 0.843400
+8 17 0 0.127952 0.358100 0.000000
+8 17 1 0.091299 0.361080 0.000000
+8 17 2 0.053817 0.364119 0.000000
+8 17 3 0.003872 0.368064 0.000000
+8 17 4 0.000000 0.372389 0.000000
+8 17 5 0.000000 0.379378 0.000000
+8 17 6 0.000000 0.387074 0.000000
+8 17 7 0.000000 0.397834 0.000000
+8 17 8 0.000000 0.408984 0.062520
+8 17 9 0.000000 0.421308 0.126943
+8 17 10 0.000000 0.434051 0.190232
+8 17 11 0.000000 0.447718 0.251025
+8 17 12 0.000000 0.461331 0.311903
+8 17 13 0.000000 0.474853 0.372923
+8 17 14 0.000000 0.487201 0.432135
+8 17 15 0.000000 0.498037 0.489024
+8 17 16 0.000000 0.508070 0.542371
+8 17 17 0.000000 0.517302 0.592177
+8 17 18 0.000000 0.524779 0.635459
+8 17 19 0.000000 0.530891 0.673669
+8 17 20 0.000000 0.536067 0.707089
+8 17 21 0.000000 0.540681 0.737636
+8 17 22 0.000000 0.544588 0.760820
+8 17 23 0.000000 0.548172 0.780658
+8 17 24 0.000000 0.554679 0.795136
+8 17 25 0.000000 0.562159 0.807828
+8 17 26 0.000000 0.574416 0.818159
+8 17 27 0.000000 0.587774 0.827944
+8 17 28 0.000000 0.596780 0.834602
+8 17 29 0.000000 0.605164 0.840813
+8 17 30 0.000000 0.612612 0.845757
+8 17 31 0.000000 0.619997 0.850616
+8 18 0 0.127793 0.394754 0.000000
+8 18 1 0.081984 0.397567 0.000000
+8 18 2 0.035170 0.400434 0.000000
+8 18 3 0.000000 0.404116 0.000000
+8 18 4 0.000000 0.408186 0.000000
+8 18 5 0.000000 0.414975 0.000000
+8 18 6 0.000000 0.422586 0.000000
+8 18 7 0.000000 0.433760 0.000000
+8 18 8 0.000000 0.445324 0.048428
+8 18 9 0.000000 0.458058 0.120796
+8 18 10 0.000000 0.471225 0.190193
+8 18 11 0.000000 0.485346 0.253053
+8 18 12 0.000000 0.499364 0.315655
+8 18 13 0.000000 0.513211 0.377825
+8 18 14 0.000000 0.526010 0.438224
+8 18 15 0.000000 0.537459 0.496346
+8 18 16 0.000000 0.547788 0.550426
+8 18 17 0.000000 0.556997 0.600465
+8 18 18 0.000000 0.564497 0.644238
+8 18 19 0.000000 0.570669 0.683137
+8 18 20 0.000000 0.575698 0.716785
+8 18 21 0.000000 0.580041 0.747282
+8 18 22 0.000000 0.583723 0.770536
+8 18 23 0.000000 0.587104 0.790499
+8 18 24 0.000000 0.592677 0.804687
+8 18 25 0.000000 0.598981 0.816950
+8 18 26 0.000000 0.609377 0.826681
+8 18 27 0.000000 0.620719 0.835829
+8 18 28 0.000000 0.628400 0.842058
+8 18 29 0.000000 0.635558 0.847871
+8 18 30 0.000000 0.641758 0.852438
+8 18 31 0.000000 0.647893 0.856923
+8 19 0 0.126754 0.431657 0.000000
+8 19 1 0.080930 0.433882 0.000000
+8 19 2 0.034139 0.436148 0.000000
+8 19 3 0.000000 0.439041 0.000000
+8 19 4 0.000000 0.442309 0.000000
+8 19 5 0.000000 0.448204 0.000000
+8 19 6 0.000000 0.455183 0.000000
+8 19 7 0.000000 0.466863 0.000000
+8 19 8 0.000000 0.478859 0.037674
+8 19 9 0.000000 0.491802 0.115896
+8 19 10 0.000000 0.505166 0.189994
+8 19 11 0.000000 0.519453 0.255020
+8 19 12 0.000000 0.533519 0.319139
+8 19 13 0.000000 0.547214 0.381745
+8 19 14 0.000000 0.560437 0.443153
+8 19 15 0.000000 0.573052 0.503019
+8 19 16 0.000000 0.583503 0.557571
+8 19 17 0.000000 0.591793 0.606809
+8 19 18 0.000000 0.599234 0.650864
+8 19 19 0.000000 0.606016 0.690889
+8 19 20 0.000000 0.610862 0.724657
+8 19 21 0.000000 0.614546 0.754672
+8 19 22 0.000000 0.618177 0.778237
+8 19 23 0.000000 0.621783 0.798870
+8 19 24 0.000000 0.626830 0.812934
+8 19 25 0.000000 0.632357 0.824808
+8 19 26 0.000000 0.641233 0.834066
+8 19 27 0.000000 0.650882 0.842719
+8 19 28 0.000000 0.657621 0.848650
+8 19 29 0.000000 0.663946 0.854193
+8 19 30 0.000000 0.668782 0.858402
+8 19 31 0.000000 0.673520 0.862523
+8 20 0 0.127564 0.459287 0.000000
+8 20 1 0.081488 0.461541 0.000000
+8 20 2 0.034453 0.463836 0.000000
+8 20 3 0.000000 0.466758 0.000000
+8 20 4 0.000000 0.470050 0.000000
+8 20 5 0.000000 0.475933 0.000000
+8 20 6 0.000000 0.482823 0.000000
+8 20 7 0.000000 0.494075 0.000000
+8 20 8 0.000000 0.505852 0.000000
+8 20 9 0.000000 0.519206 0.098199
+8 20 10 0.000000 0.532893 0.190868
+8 20 11 0.000000 0.547315 0.257426
+8 20 12 0.000000 0.561482 0.322746
+8 20 13 0.000000 0.575223 0.386002
+8 20 14 0.000000 0.588360 0.447887
+8 20 15 0.000000 0.600722 0.508008
+8 20 16 0.000000 0.611206 0.562950
+8 20 17 0.000000 0.619815 0.612713
+8 20 18 0.000000 0.627260 0.657123
+8 20 19 0.000000 0.633800 0.697370
+8 20 20 0.000000 0.638842 0.731435
+8 20 21 0.000000 0.642985 0.761790
+8 20 22 0.000000 0.646523 0.785150
+8 20 23 0.000000 0.649787 0.805329
+8 20 24 0.000000 0.654171 0.819044
+8 20 25 0.000000 0.658929 0.830604
+8 20 26 0.000000 0.666453 0.839515
+8 20 27 0.000000 0.674614 0.847814
+8 20 28 0.000000 0.680398 0.853503
+8 20 29 0.000000 0.685843 0.858819
+8 20 30 0.000000 0.690104 0.862831
+8 20 31 0.000000 0.694287 0.866757
+8 21 0 0.129484 0.481352 0.000000
+8 21 1 0.083013 0.484007 0.000000
+8 21 2 0.035576 0.486710 0.000000
+8 21 3 0.000000 0.490150 0.000000
+8 21 4 0.000000 0.493960 0.000000
+8 21 5 0.000000 0.500362 0.000000
+8 21 6 0.000000 0.507488 0.000000
+8 21 7 0.000000 0.517751 0.000000
+8 21 8 0.000000 0.528920 0.000000
+8 21 9 0.000000 0.542804 0.072823
+8 21 10 0.000000 0.556893 0.192386
+8 21 11 0.000000 0.571430 0.260097
+8 21 12 0.000000 0.585730 0.326428
+8 21 13 0.000000 0.599635 0.390460
+8 21 14 0.000000 0.612382 0.452503
+8 21 15 0.000000 0.623639 0.511988
+8 21 16 0.000000 0.634102 0.567271
+8 21 17 0.000000 0.643772 0.618353
+8 21 18 0.000000 0.651258 0.663161
+8 21 19 0.000000 0.657046 0.703090
+8 21 20 0.000000 0.662511 0.737557
+8 21 21 0.000000 0.667782 0.768746
+8 21 22 0.000000 0.671204 0.791590
+8 21 23 0.000000 0.673786 0.810641
+8 21 24 0.000000 0.677427 0.823871
+8 21 25 0.000000 0.681420 0.835162
+8 21 26 0.000000 0.687691 0.843802
+8 21 27 0.000000 0.694488 0.851831
+8 21 28 0.000000 0.699308 0.857312
+8 21 29 0.000000 0.703846 0.862428
+8 21 30 0.000000 0.708005 0.866340
+8 21 31 0.000000 0.712140 0.870171
+8 22 0 0.129712 0.499895 0.000000
+8 22 1 0.083139 0.502497 0.000000
+8 22 2 0.035605 0.505153 0.000000
+8 22 3 0.000000 0.508609 0.000000
+8 22 4 0.000000 0.512406 0.000000
+8 22 5 0.000000 0.518590 0.000000
+8 22 6 0.000000 0.525570 0.000000
+8 22 7 0.000000 0.535993 0.000000
+8 22 8 0.000000 0.547297 0.000000
+8 22 9 0.000000 0.561241 0.068125
+8 22 10 0.000000 0.575429 0.198009
+8 22 11 0.000000 0.590157 0.266524
+8 22 12 0.000000 0.604423 0.333400
+8 22 13 0.000000 0.617921 0.397546
+8 22 14 0.000000 0.630442 0.459515
+8 22 15 0.000000 0.641709 0.518686
+8 22 16 0.000000 0.652156 0.573659
+8 22 17 0.000000 0.661784 0.624433
+8 22 18 0.000000 0.669343 0.669143
+8 22 19 0.000000 0.675293 0.709135
+8 22 20 0.000000 0.680791 0.743233
+8 22 21 0.000000 0.686018 0.773795
+8 22 22 0.000000 0.689591 0.796455
+8 22 23 0.000000 0.692411 0.815525
+8 22 24 0.000000 0.695745 0.828461
+8 22 25 0.000000 0.699250 0.839352
+8 22 26 0.000000 0.704728 0.847593
+8 22 27 0.000000 0.710663 0.855223
+8 22 28 0.000000 0.715014 0.860493
+8 22 29 0.000000 0.719139 0.865426
+8 22 30 0.000000 0.722834 0.869238
+8 22 31 0.000000 0.726501 0.872975
+8 23 0 0.129170 0.516836 0.000000
+8 23 1 0.082628 0.519181 0.000000
+8 23 2 0.035137 0.521581 0.000000
+8 23 3 0.000000 0.524825 0.000000
+8 23 4 0.000000 0.528368 0.000000
+8 23 5 0.000000 0.534000 0.000000
+8 23 6 0.000000 0.540659 0.000000
+8 23 7 0.000000 0.551765 0.000000
+8 23 8 0.000000 0.563541 0.000000
+8 23 9 0.000000 0.577331 0.072826
+8 23 10 0.000000 0.591483 0.205497
+8 23 11 0.000000 0.606435 0.274658
+8 23 12 0.000000 0.620591 0.341868
+8 23 13 0.000000 0.633421 0.405825
+8 23 14 0.000000 0.645793 0.467616
+8 23 15 0.000000 0.657575 0.526620
+8 23 16 0.000000 0.668009 0.580986
+8 23 17 0.000000 0.677095 0.630715
+8 23 18 0.000000 0.684740 0.675099
+8 23 19 0.000000 0.691266 0.715328
+8 23 20 0.000000 0.696620 0.748707
+8 23 21 0.000000 0.701271 0.777977
+8 23 22 0.000000 0.705116 0.800605
+8 23 23 0.000000 0.708595 0.820214
+8 23 24 0.000000 0.711820 0.832942
+8 23 25 0.000000 0.714961 0.843375
+8 23 26 0.000000 0.719856 0.851158
+8 23 27 0.000000 0.725156 0.858330
+8 23 28 0.000000 0.729264 0.863389
+8 23 29 0.000000 0.733201 0.868146
+8 23 30 0.000000 0.736268 0.871858
+8 23 31 0.000000 0.739276 0.875502
+8 24 0 0.134093 0.532394 0.000000
+8 24 1 0.086151 0.535502 0.000000
+8 24 2 0.037290 0.538646 0.000000
+8 24 3 0.000000 0.542340 0.000000
+8 24 4 0.000000 0.546266 0.000000
+8 24 5 0.000000 0.551822 0.000000
+8 24 6 0.000000 0.558348 0.000000
+8 24 7 0.000000 0.569078 0.000000
+8 24 8 0.000000 0.580606 0.000000
+8 24 9 0.000000 0.594522 0.088822
+8 24 10 0.000000 0.608653 0.221480
+8 24 11 0.000000 0.623256 0.291137
+8 24 12 0.000000 0.637086 0.358348
+8 24 13 0.000000 0.649627 0.421483
+8 24 14 0.000000 0.661676 0.482295
+8 24 15 0.000000 0.673093 0.540120
+8 24 16 0.000000 0.683264 0.593188
+8 24 17 0.000000 0.692186 0.641499
+8 24 18 0.000000 0.699762 0.684856
+8 24 19 0.000000 0.706290 0.724359
+8 24 20 0.000000 0.711511 0.756614
+8 24 21 0.000000 0.715948 0.784521
+8 24 22 0.000000 0.719639 0.806380
+8 24 23 0.000000 0.722991 0.825490
+8 24 24 0.000000 0.726017 0.837940
+8 24 25 0.000000 0.728935 0.848170
+8 24 26 0.000000 0.733603 0.855715
+8 24 27 0.000000 0.738674 0.862640
+8 24 28 0.000000 0.742481 0.867506
+8 24 29 0.000000 0.746107 0.872078
+8 24 30 0.000000 0.748868 0.875625
+8 24 31 0.000000 0.751571 0.879104
+8 25 0 0.140838 0.547490 0.000000
+8 25 1 0.091018 0.551702 0.000000
+8 25 2 0.040317 0.555923 0.000000
+8 25 3 0.000000 0.560287 0.000000
+8 25 4 0.000000 0.564810 0.000000
+8 25 5 0.000000 0.570448 0.000000
+8 25 6 0.000000 0.576904 0.000000
+8 25 7 0.000000 0.586907 0.000000
+8 25 8 0.000000 0.597943 0.000000
+8 25 9 0.000000 0.612081 0.108584
+8 25 10 0.000000 0.626196 0.240294
+8 25 11 0.000000 0.640259 0.310397
+8 25 12 0.000000 0.653690 0.377499
+8 25 13 0.000000 0.666067 0.439599
+8 25 14 0.000000 0.677736 0.499166
+8 25 15 0.000000 0.688495 0.555475
+8 25 16 0.000000 0.698318 0.607014
+8 25 17 0.000000 0.707204 0.653785
+8 25 18 0.000000 0.714658 0.695879
+8 25 19 0.000000 0.720998 0.734335
+8 25 20 0.000000 0.726090 0.765332
+8 25 21 0.000000 0.730433 0.791853
+8 25 22 0.000000 0.733828 0.812697
+8 25 23 0.000000 0.736792 0.830961
+8 25 24 0.000000 0.739589 0.843110
+8 25 25 0.000000 0.742331 0.853222
+8 25 26 0.000000 0.746889 0.860602
+8 25 27 0.000000 0.751866 0.867352
+8 25 28 0.000000 0.755354 0.872031
+8 25 29 0.000000 0.758628 0.876415
+8 25 30 0.000000 0.761190 0.879774
+8 25 31 0.000000 0.763706 0.883065
+8 26 0 0.151627 0.560585 0.000000
+8 26 1 0.101455 0.565004 0.000000
+8 26 2 0.050138 0.569465 0.000000
+8 26 3 0.000000 0.574556 0.000000
+8 26 4 0.000000 0.579936 0.000000
+8 26 5 0.000000 0.587336 0.000000
+8 26 6 0.000000 0.595198 0.000000
+8 26 7 0.000000 0.605065 0.000000
+8 26 8 0.000000 0.615940 0.000000
+8 26 9 0.000000 0.629844 0.144732
+8 26 10 0.000000 0.643681 0.266446
+8 26 11 0.000000 0.657375 0.335235
+8 26 12 0.000000 0.670466 0.400952
+8 26 13 0.000000 0.682553 0.461551
+8 26 14 0.000000 0.693780 0.519421
+8 26 15 0.000000 0.703902 0.573785
+8 26 16 0.000000 0.713177 0.623319
+8 26 17 0.000000 0.721608 0.668024
+8 26 18 0.000000 0.728763 0.708663
+8 26 19 0.000000 0.734925 0.746140
+8 26 20 0.000000 0.739748 0.775621
+8 26 21 0.000000 0.743767 0.800305
+8 26 22 0.000000 0.747011 0.820098
+8 26 23 0.000000 0.749902 0.837668
+8 26 24 0.000000 0.752649 0.849578
+8 26 25 0.000000 0.755348 0.859601
+8 26 26 0.000000 0.759225 0.866325
+8 26 27 0.000000 0.763374 0.872287
+8 26 28 0.000000 0.766692 0.876838
+8 26 29 0.000000 0.769890 0.881186
+8 26 30 0.000000 0.772353 0.884447
+8 26 31 0.000000 0.774766 0.887636
+8 27 0 0.163349 0.573219 0.000000
+8 27 1 0.113177 0.577638 0.000000
+8 27 2 0.061527 0.582146 0.000000
+8 27 3 0.000000 0.587976 0.000000
+8 27 4 0.000000 0.594272 0.000000
+8 27 5 0.000000 0.603823 0.000000
+8 27 6 0.000000 0.613432 0.000000
+8 27 7 0.000000 0.623299 0.000000
+8 27 8 0.000000 0.634089 0.055687
+8 27 9 0.000000 0.647653 0.184662
+8 27 10 0.000000 0.661154 0.294291
+8 27 11 0.000000 0.674517 0.361360
+8 27 12 0.000000 0.687282 0.425399
+8 27 13 0.000000 0.699051 0.484387
+8 27 14 0.000000 0.709822 0.540457
+8 27 15 0.000000 0.719309 0.592777
+8 27 16 0.000000 0.727992 0.640195
+8 27 17 0.000000 0.735870 0.682713
+8 27 18 0.000000 0.742684 0.721853
+8 27 19 0.000000 0.748671 0.758365
+8 27 20 0.000000 0.753193 0.786272
+8 27 21 0.000000 0.756836 0.809015
+8 27 22 0.000000 0.759962 0.827749
+8 27 23 0.000000 0.762853 0.844661
+8 27 24 0.000000 0.765592 0.856345
+8 27 25 0.000000 0.768279 0.866286
+8 27 26 0.000000 0.771342 0.872240
+8 27 27 0.000000 0.774494 0.877275
+8 27 28 0.000000 0.777675 0.881709
+8 27 29 0.000000 0.780862 0.886057
+8 27 30 0.000000 0.783247 0.889242
+8 27 31 0.000000 0.785578 0.892349
+8 28 0 0.171511 0.582208 0.000000
+8 28 1 0.121406 0.586638 0.000000
+8 28 2 0.069647 0.591160 0.000000
+8 28 3 0.000000 0.597073 0.000000
+8 28 4 0.000000 0.603506 0.000000
+8 28 5 0.000000 0.613582 0.000000
+8 28 6 0.000000 0.623880 0.000000
+8 28 7 0.000000 0.635134 0.000000
+8 28 8 0.000000 0.646917 0.105568
+8 28 9 0.000000 0.660284 0.217244
+8 28 10 0.000000 0.673553 0.314473
+8 28 11 0.000000 0.686607 0.379916
+8 28 12 0.000000 0.699098 0.442580
+8 28 13 0.000000 0.710652 0.500616
+8 28 14 0.000000 0.721154 0.555503
+8 28 15 0.000000 0.730305 0.606344
+8 28 16 0.000000 0.738672 0.652717
+8 28 17 0.000000 0.746256 0.694622
+8 28 18 0.000000 0.752750 0.732534
+8 28 19 0.000000 0.758396 0.767342
+8 28 20 0.000000 0.762709 0.794296
+8 28 21 0.000000 0.766223 0.816539
+8 28 22 0.000000 0.769196 0.834374
+8 28 23 0.000000 0.771923 0.850206
+8 28 24 0.000000 0.774610 0.861366
+8 28 25 0.000000 0.777285 0.870967
+8 28 26 0.000000 0.780246 0.876764
+8 28 27 0.000000 0.783272 0.881683
+8 28 28 0.000000 0.785952 0.885617
+8 28 29 0.000000 0.788582 0.889411
+8 28 30 0.000000 0.790923 0.892618
+8 28 31 0.000000 0.793244 0.895787
+8 29 0 0.179163 0.590676 0.000000
+8 29 1 0.129134 0.595118 0.000000
+8 29 2 0.077300 0.599650 0.000000
+8 29 3 0.000000 0.605551 0.000000
+8 29 4 0.000000 0.612010 0.000000
+8 29 5 0.000000 0.622381 0.000000
+8 29 6 0.000000 0.633215 0.000000
+8 29 7 0.000000 0.646055 0.030252
+8 29 8 0.000000 0.658984 0.154471
+8 29 9 0.000000 0.672175 0.248778
+8 29 10 0.000000 0.685228 0.333560
+8 29 11 0.000000 0.697975 0.397389
+8 29 12 0.000000 0.710200 0.458724
+8 29 13 0.000000 0.721553 0.515901
+8 29 14 0.000000 0.731814 0.569694
+8 29 15 0.000000 0.740671 0.619136
+8 29 16 0.000000 0.748762 0.664616
+8 29 17 0.000000 0.756088 0.706133
+8 29 18 0.000000 0.762265 0.742857
+8 29 19 0.000000 0.767547 0.775854
+8 29 20 0.000000 0.771665 0.801945
+8 29 21 0.000000 0.775085 0.823894
+8 29 22 0.000000 0.777899 0.840854
+8 29 23 0.000000 0.780437 0.855545
+8 29 24 0.000000 0.783069 0.866137
+8 29 25 0.000000 0.785732 0.875363
+8 29 26 0.000000 0.788690 0.881089
+8 29 27 0.000000 0.791716 0.886007
+8 29 28 0.000000 0.793841 0.889387
+8 29 29 0.000000 0.795838 0.892547
+8 29 30 0.000000 0.798139 0.895792
+8 29 31 0.000000 0.800460 0.899042
+8 30 0 0.185047 0.596967 0.000000
+8 30 1 0.134951 0.601398 0.000000
+8 30 2 0.083045 0.605922 0.000000
+8 30 3 0.003975 0.611833 0.000000
+8 30 4 0.000000 0.618314 0.000000
+8 30 5 0.000000 0.628780 0.000000
+8 30 6 0.000000 0.639941 0.000000
+8 30 7 0.000000 0.654115 0.056683
+8 30 8 0.000000 0.668002 0.193928
+8 30 9 0.000000 0.681029 0.273564
+8 30 10 0.000000 0.693931 0.347935
+8 30 11 0.000000 0.706560 0.410725
+8 30 12 0.000000 0.718631 0.471254
+8 30 13 0.000000 0.729773 0.528013
+8 30 14 0.000000 0.739830 0.581032
+8 30 15 0.000000 0.748491 0.629241
+8 30 16 0.000000 0.756351 0.673833
+8 30 17 0.000000 0.763408 0.714808
+8 30 18 0.000000 0.769311 0.750567
+8 30 19 0.000000 0.774318 0.782271
+8 30 20 0.000000 0.778329 0.807701
+8 30 21 0.000000 0.781743 0.829367
+8 30 22 0.000000 0.784478 0.845644
+8 30 23 0.000000 0.786906 0.859471
+8 30 24 0.000000 0.789451 0.869688
+8 30 25 0.000000 0.792037 0.878703
+8 30 26 0.000000 0.795043 0.884399
+8 30 27 0.000000 0.798146 0.889328
+8 30 28 0.000000 0.800236 0.892665
+8 30 29 0.000000 0.802181 0.895774
+8 30 30 0.000000 0.804076 0.898546
+8 30 31 0.000000 0.805968 0.901295
+8 31 0 0.190812 0.603114 0.000000
+8 31 1 0.140640 0.607533 0.000000
+8 31 2 0.088663 0.612046 0.000000
+8 31 3 0.009592 0.617969 0.000000
+8 31 4 0.000000 0.624471 0.000000
+8 31 5 0.000000 0.635018 0.000000
+8 31 6 0.000000 0.646493 0.000000
+8 31 7 0.000000 0.661983 0.082701
+8 31 8 0.000000 0.676816 0.232755
+8 31 9 0.000000 0.689679 0.297900
+8 31 10 0.000000 0.702436 0.361996
+8 31 11 0.000000 0.714958 0.423785
+8 31 12 0.000000 0.726884 0.483542
+8 31 13 0.000000 0.737813 0.539913
+8 31 14 0.000000 0.747669 0.592179
+8 31 15 0.000000 0.756142 0.639166
+8 31 16 0.000000 0.763773 0.682871
+8 31 17 0.000000 0.770560 0.723294
+8 31 18 0.000000 0.776193 0.758104
+8 31 19 0.000000 0.780930 0.788549
+8 31 20 0.000000 0.784840 0.813331
+8 31 21 0.000000 0.788254 0.834715
+8 31 22 0.000000 0.790916 0.850321
+8 31 23 0.000000 0.793238 0.863302
+8 31 24 0.000000 0.795695 0.873158
+8 31 25 0.000000 0.798199 0.881972
+8 31 26 0.000000 0.801256 0.887640
+8 31 27 0.000000 0.804441 0.892582
+8 31 28 0.000000 0.806530 0.895910
+8 31 29 0.000000 0.808464 0.899006
+8 31 30 0.000000 0.809929 0.901271
+8 31 31 0.000000 0.811363 0.903481
+9 0 0 0.071295 0.038801 0.027735
+9 0 1 0.071744 0.038866 0.029557
+9 0 2 0.072196 0.038927 0.031431
+9 0 3 0.072705 0.038927 0.034099
+9 0 4 0.073262 0.038935 0.037017
+9 0 5 0.074159 0.038999 0.041689
+9 0 6 0.074940 0.039052 0.046624
+9 0 7 0.075219 0.039052 0.052700
+9 0 8 0.075247 0.038870 0.060201
+9 0 9 0.074519 0.038141 0.071977
+9 0 10 0.074248 0.036513 0.091233
+9 0 11 0.074981 0.032905 0.126943
+9 0 12 0.075648 0.028697 0.162536
+9 0 13 0.076206 0.023491 0.197935
+9 0 14 0.082218 0.000000 0.235056
+9 0 15 0.095242 0.000000 0.274392
+9 0 16 0.105915 0.000000 0.310957
+9 0 17 0.114235 0.000000 0.344752
+9 0 18 0.123435 0.000000 0.376745
+9 0 19 0.133319 0.000000 0.407337
+9 0 20 0.141135 0.000000 0.434425
+9 0 21 0.147710 0.000000 0.459411
+9 0 22 0.153255 0.000000 0.482543
+9 0 23 0.158331 0.000000 0.504831
+9 0 24 0.159641 0.000000 0.531708
+9 0 25 0.159696 0.000000 0.560114
+9 0 26 0.154515 0.000000 0.596345
+9 0 27 0.148126 0.000000 0.634382
+9 0 28 0.143723 0.000000 0.660213
+9 0 29 0.139604 0.003615 0.684300
+9 0 30 0.136470 0.101725 0.702018
+9 0 31 0.133401 0.201657 0.719312
+9 1 0 0.074047 0.041105 0.027253
+9 1 1 0.074165 0.041197 0.029605
+9 1 2 0.074305 0.041283 0.031976
+9 1 3 0.074783 0.041283 0.034610
+9 1 4 0.075320 0.041291 0.037499
+9 1 5 0.076274 0.041356 0.042171
+9 1 6 0.077123 0.041467 0.047399
+9 1 7 0.077521 0.041783 0.055040
+9 1 8 0.077504 0.041891 0.063692
+9 1 9 0.076246 0.041378 0.075374
+9 1 10 0.075711 0.039986 0.094682
+9 1 11 0.076769 0.036660 0.130768
+9 1 12 0.077651 0.032863 0.166916
+9 1 13 0.078240 0.028281 0.203167
+9 1 14 0.084053 0.000000 0.240862
+9 1 15 0.096583 0.000000 0.280413
+9 1 16 0.106849 0.000000 0.317432
+9 1 17 0.114850 0.000000 0.351918
+9 1 18 0.123745 0.000000 0.384229
+9 1 19 0.133336 0.000000 0.414848
+9 1 20 0.140913 0.000000 0.442182
+9 1 21 0.147282 0.000000 0.467544
+9 1 22 0.152522 0.000000 0.490447
+9 1 23 0.157248 0.000000 0.512232
+9 1 24 0.151413 0.000000 0.537693
+9 1 25 0.142058 0.000000 0.564379
+9 1 26 0.135138 0.000000 0.600266
+9 1 27 0.128780 0.000000 0.638276
+9 1 28 0.124381 0.000000 0.664103
+9 1 29 0.120262 0.012065 0.688190
+9 1 30 0.117128 0.110457 0.705877
+9 1 31 0.114059 0.210389 0.723138
+9 2 0 0.076847 0.043446 0.026764
+9 2 1 0.076653 0.043563 0.029618
+9 2 2 0.076498 0.043674 0.032458
+9 2 3 0.076920 0.043684 0.035098
+9 2 4 0.077416 0.043700 0.037992
+9 2 5 0.078424 0.043763 0.042664
+9 2 6 0.079340 0.043933 0.048187
+9 2 7 0.079856 0.044567 0.057397
+9 2 8 0.079795 0.044971 0.067207
+9 2 9 0.078000 0.044683 0.078818
+9 2 10 0.077198 0.043535 0.098201
+9 2 11 0.078582 0.040495 0.134681
+9 2 12 0.079681 0.037113 0.171401
+9 2 13 0.080306 0.033160 0.208519
+9 2 14 0.085918 0.004247 0.246796
+9 2 15 0.097943 0.000000 0.286561
+9 2 16 0.107795 0.000000 0.324040
+9 2 17 0.115473 0.000000 0.359235
+9 2 18 0.124058 0.000000 0.391874
+9 2 19 0.133348 0.000000 0.422525
+9 2 20 0.140680 0.000000 0.450106
+9 2 21 0.146837 0.000000 0.475847
+9 2 22 0.151767 0.000000 0.498518
+9 2 23 0.156140 0.000000 0.519794
+9 2 24 0.143459 0.000000 0.543893
+9 2 25 0.125093 0.000000 0.568934
+9 2 26 0.115912 0.000000 0.604398
+9 2 27 0.108851 0.000000 0.642267
+9 2 28 0.104432 0.000000 0.668076
+9 2 29 0.100390 0.020691 0.692163
+9 2 30 0.097314 0.119370 0.709823
+9 2 31 0.094302 0.219303 0.727054
+9 3 0 0.080375 0.046349 0.026164
+9 3 1 0.080150 0.046466 0.029079
+9 3 2 0.079940 0.046587 0.032013
+9 3 3 0.079938 0.046751 0.035245
+9 3 4 0.080067 0.046899 0.038656
+9 3 5 0.081107 0.046928 0.043328
+9 3 6 0.082070 0.047141 0.049157
+9 3 7 0.082705 0.048152 0.059999
+9 3 8 0.082576 0.048932 0.071102
+9 3 9 0.080157 0.049020 0.082989
+9 3 10 0.079036 0.048238 0.102767
+9 3 11 0.080770 0.045540 0.139905
+9 3 12 0.082125 0.042629 0.177449
+9 3 13 0.082848 0.039361 0.215669
+9 3 14 0.088223 0.010281 0.254647
+9 3 15 0.099579 0.000000 0.294599
+9 3 16 0.108906 0.000000 0.332657
+9 3 17 0.116203 0.000000 0.368819
+9 3 18 0.124392 0.000000 0.401934
+9 3 19 0.133276 0.000000 0.432679
+9 3 20 0.140272 0.000000 0.460552
+9 3 21 0.146136 0.000000 0.486701
+9 3 22 0.150691 0.000000 0.509090
+9 3 23 0.154651 0.000000 0.529768
+9 3 24 0.139610 0.000000 0.553320
+9 3 25 0.118235 0.000000 0.577830
+9 3 26 0.098965 0.000000 0.611694
+9 3 27 0.080181 0.000000 0.647716
+9 3 28 0.075379 0.000000 0.673294
+9 3 29 0.072574 0.031951 0.697381
+9 3 30 0.070424 0.131005 0.715072
+9 3 31 0.068319 0.230938 0.732337
+9 4 0 0.084239 0.049546 0.025528
+9 4 1 0.083992 0.049668 0.028488
+9 4 2 0.083736 0.049800 0.031498
+9 4 3 0.083356 0.050096 0.035266
+9 4 4 0.083145 0.050357 0.039163
+9 4 5 0.084113 0.050376 0.043955
+9 4 6 0.085039 0.050642 0.050151
+9 4 7 0.085781 0.051978 0.062432
+9 4 8 0.085599 0.053111 0.074784
+9 4 9 0.082645 0.053634 0.087348
+9 4 10 0.081239 0.053285 0.107807
+9 4 11 0.083238 0.051021 0.145638
+9 4 12 0.084800 0.048666 0.184063
+9 4 13 0.085633 0.046162 0.223478
+9 4 14 0.090754 0.017586 0.263228
+9 4 15 0.101386 0.000000 0.303408
+9 4 16 0.110137 0.000000 0.342109
+9 4 17 0.117006 0.000000 0.379333
+9 4 18 0.124777 0.000000 0.412959
+9 4 19 0.133250 0.000000 0.443786
+9 4 20 0.139870 0.000000 0.471970
+9 4 21 0.145377 0.000000 0.498567
+9 4 22 0.149525 0.000000 0.520663
+9 4 23 0.153055 0.000000 0.540713
+9 4 24 0.135915 0.000000 0.563745
+9 4 25 0.111885 0.000000 0.587771
+9 4 26 0.083595 0.000000 0.619834
+9 4 27 0.054321 0.000000 0.653751
+9 4 28 0.049153 0.000000 0.679047
+9 4 29 0.047428 0.044289 0.703110
+9 4 30 0.046096 0.143755 0.720827
+9 4 31 0.044790 0.243687 0.738121
+9 5 0 0.090459 0.054806 0.024629
+9 5 1 0.090242 0.054961 0.027528
+9 5 2 0.090011 0.055122 0.030491
+9 5 3 0.089570 0.055384 0.034414
+9 5 4 0.089206 0.055636 0.038566
+9 5 5 0.089390 0.055810 0.044319
+9 5 6 0.089683 0.056195 0.051314
+9 5 7 0.090450 0.057497 0.063690
+9 5 8 0.090308 0.058816 0.076982
+9 5 9 0.087442 0.060186 0.093024
+9 5 10 0.085993 0.060751 0.116167
+9 5 11 0.087662 0.059548 0.154932
+9 5 12 0.089089 0.058348 0.194638
+9 5 13 0.090115 0.057154 0.235913
+9 5 14 0.094859 0.033795 0.276926
+9 5 15 0.104385 0.000000 0.317603
+9 5 16 0.112203 0.000000 0.357413
+9 5 17 0.118316 0.000000 0.396357
+9 5 18 0.125510 0.000000 0.430735
+9 5 19 0.133545 0.000000 0.461562
+9 5 20 0.139505 0.000000 0.490195
+9 5 21 0.144220 0.000000 0.517511
+9 5 22 0.147737 0.000000 0.539250
+9 5 23 0.150711 0.000000 0.558454
+9 5 24 0.133300 0.000000 0.581154
+9 5 25 0.109095 0.000000 0.605018
+9 5 26 0.079260 0.000000 0.633880
+9 5 27 0.048127 0.000000 0.663894
+9 5 28 0.042713 0.000000 0.688537
+9 5 29 0.040974 0.064175 0.712412
+9 5 30 0.039694 0.164304 0.730117
+9 5 31 0.038445 0.264236 0.747411
+9 6 0 0.097383 0.060770 0.023561
+9 6 1 0.097196 0.061134 0.026504
+9 6 2 0.096990 0.061489 0.029516
+9 6 3 0.096498 0.061724 0.033560
+9 6 4 0.096006 0.061969 0.037921
+9 6 5 0.095518 0.062280 0.044502
+9 6 6 0.095219 0.062776 0.052230
+9 6 7 0.095738 0.064074 0.064932
+9 6 8 0.095460 0.065626 0.079452
+9 6 9 0.092791 0.067942 0.099426
+9 6 10 0.091324 0.069523 0.125571
+9 6 11 0.092501 0.069486 0.165293
+9 6 12 0.093735 0.069543 0.206345
+9 6 13 0.095062 0.069759 0.249613
+9 6 14 0.099365 0.052777 0.292074
+9 6 15 0.107494 0.013682 0.333495
+9 6 16 0.114279 0.000000 0.374420
+9 6 17 0.119723 0.000000 0.414849
+9 6 18 0.126230 0.000000 0.450111
+9 6 19 0.133566 0.000000 0.481355
+9 6 20 0.138808 0.000000 0.510490
+9 6 21 0.142795 0.000000 0.538361
+9 6 22 0.145650 0.000000 0.559973
+9 6 23 0.147990 0.000000 0.578742
+9 6 24 0.129992 0.000000 0.600882
+9 6 25 0.105216 0.000000 0.624147
+9 6 26 0.074334 0.000000 0.650313
+9 6 27 0.042044 0.000000 0.677150
+9 6 28 0.036059 0.000000 0.700703
+9 6 29 0.033832 0.102352 0.723787
+9 6 30 0.031920 0.195203 0.740981
+9 6 31 0.030028 0.287343 0.757783
+9 7 0 0.107360 0.069790 0.021763
+9 7 1 0.107199 0.071121 0.025203
+9 7 2 0.107017 0.072384 0.028680
+9 7 3 0.106525 0.072619 0.032696
+9 7 4 0.106011 0.072871 0.037064
+9 7 5 0.105342 0.073243 0.043894
+9 7 6 0.104627 0.073811 0.052075
+9 7 7 0.103712 0.075230 0.066108
+9 7 8 0.102527 0.077219 0.083100
+9 7 9 0.100533 0.080918 0.108970
+9 7 10 0.099157 0.083956 0.139499
+9 7 11 0.099143 0.085538 0.180276
+9 7 12 0.099924 0.087298 0.222954
+9 7 13 0.102031 0.089355 0.268801
+9 7 14 0.105610 0.083774 0.313505
+9 7 15 0.111081 0.068372 0.356740
+9 7 16 0.116395 0.050110 0.398807
+9 7 17 0.121550 0.028986 0.439706
+9 7 18 0.126898 0.020314 0.476424
+9 7 19 0.132395 0.021326 0.509891
+9 7 20 0.136671 0.022912 0.539760
+9 7 21 0.140215 0.024843 0.567469
+9 7 22 0.142265 0.028001 0.589955
+9 7 23 0.143637 0.031718 0.610067
+9 7 24 0.123680 0.042015 0.630665
+9 7 25 0.096614 0.054506 0.651424
+9 7 26 0.066842 0.078084 0.677094
+9 7 27 0.036446 0.104220 0.703897
+9 7 28 0.028475 0.159892 0.724466
+9 7 29 0.023707 0.219783 0.744144
+9 7 30 0.018195 0.270948 0.758663
+9 7 31 0.012633 0.321531 0.772838
+9 8 0 0.116199 0.079523 0.016323
+9 8 1 0.115946 0.081477 0.021739
+9 8 2 0.115678 0.083342 0.027086
+9 8 3 0.115192 0.083867 0.031398
+9 8 4 0.114668 0.084449 0.036085
+9 8 5 0.113877 0.085422 0.043398
+9 8 6 0.112857 0.086635 0.052250
+9 8 7 0.110851 0.088889 0.067769
+9 8 8 0.108852 0.091760 0.087000
+9 8 9 0.106876 0.096481 0.117371
+9 8 10 0.105201 0.100789 0.151509
+9 8 11 0.104187 0.104189 0.193932
+9 8 12 0.104267 0.107733 0.238444
+9 8 13 0.106170 0.111516 0.286438
+9 8 14 0.108599 0.114855 0.333045
+9 8 15 0.111706 0.117623 0.377868
+9 8 16 0.115320 0.120019 0.421164
+9 8 17 0.119443 0.122043 0.462933
+9 8 18 0.123680 0.123954 0.501009
+9 8 19 0.128005 0.125778 0.536212
+9 8 20 0.130086 0.128475 0.566682
+9 8 21 0.130822 0.131695 0.594313
+9 8 22 0.131414 0.136968 0.617413
+9 8 23 0.131941 0.143173 0.638454
+9 8 24 0.108382 0.159745 0.657848
+9 8 25 0.076793 0.179773 0.676694
+9 8 26 0.047432 0.217679 0.701483
+9 8 27 0.018584 0.259711 0.727643
+9 8 28 0.008472 0.288383 0.745540
+9 8 29 0.001036 0.315147 0.762257
+9 8 30 0.000000 0.334749 0.774488
+9 8 31 0.000000 0.353874 0.786419
+9 9 0 0.121620 0.091393 0.000000
+9 9 1 0.120923 0.092938 0.011782
+9 9 2 0.120242 0.094491 0.023216
+9 9 3 0.119781 0.096178 0.028792
+9 9 4 0.119286 0.098054 0.034735
+9 9 5 0.118545 0.101250 0.043237
+9 9 6 0.117555 0.104828 0.053420
+9 9 7 0.115487 0.110057 0.070886
+9 9 8 0.112953 0.115144 0.091657
+9 9 9 0.109027 0.119805 0.122343
+9 9 10 0.105878 0.124825 0.157766
+9 9 11 0.104441 0.130636 0.203607
+9 9 12 0.103074 0.136205 0.250576
+9 9 13 0.101823 0.141371 0.299426
+9 9 14 0.101826 0.146188 0.346913
+9 9 15 0.103442 0.150554 0.392649
+9 9 16 0.104678 0.154518 0.437436
+9 9 17 0.105534 0.158079 0.481273
+9 9 18 0.108805 0.161052 0.520409
+9 9 19 0.113955 0.163568 0.555888
+9 9 20 0.110157 0.166700 0.586566
+9 9 21 0.100992 0.170202 0.614364
+9 9 22 0.098164 0.175951 0.637299
+9 9 23 0.098216 0.182720 0.658024
+9 9 24 0.066123 0.198381 0.677235
+9 9 25 0.023315 0.217004 0.695941
+9 9 26 0.000000 0.252656 0.718696
+9 9 27 0.000000 0.292237 0.742384
+9 9 28 0.000000 0.319175 0.758550
+9 9 29 0.000000 0.344307 0.773641
+9 9 30 0.000000 0.362719 0.784744
+9 9 31 0.000000 0.380682 0.795580
+9 10 0 0.128235 0.109530 0.000000
+9 10 1 0.127217 0.110922 0.000000
+9 10 2 0.126222 0.112385 0.000000
+9 10 3 0.125586 0.114929 0.001824
+9 10 4 0.124895 0.117755 0.008459
+9 10 5 0.123822 0.122547 0.023691
+9 10 6 0.122440 0.127754 0.040991
+9 10 7 0.119720 0.134763 0.067252
+9 10 8 0.116272 0.141345 0.094982
+9 10 9 0.110642 0.146648 0.127118
+9 10 10 0.105584 0.152693 0.164387
+9 10 11 0.101784 0.160369 0.212952
+9 10 12 0.096774 0.167579 0.262010
+9 10 13 0.089747 0.174013 0.311887
+9 10 14 0.085726 0.180142 0.360569
+9 10 15 0.085569 0.185880 0.407712
+9 10 16 0.084925 0.191249 0.453982
+9 10 17 0.083795 0.196247 0.499380
+9 10 18 0.085858 0.200281 0.539482
+9 10 19 0.090406 0.203564 0.575466
+9 10 20 0.083749 0.207167 0.606372
+9 10 21 0.070370 0.210962 0.634232
+9 10 22 0.065413 0.216927 0.657112
+9 10 23 0.064284 0.223878 0.677727
+9 10 24 0.026624 0.238698 0.696629
+9 10 25 0.000000 0.256140 0.714959
+9 10 26 0.000000 0.289128 0.735538
+9 10 27 0.000000 0.325704 0.756635
+9 10 28 0.000000 0.350773 0.771139
+9 10 29 0.000000 0.374198 0.784702
+9 10 30 0.000000 0.391498 0.794800
+9 10 31 0.000000 0.408389 0.804668
+9 11 0 0.137480 0.141456 0.000000
+9 11 1 0.136405 0.143257 0.000000
+9 11 2 0.135318 0.145116 0.000000
+9 11 3 0.134064 0.147848 0.000000
+9 11 4 0.132685 0.150865 0.000000
+9 11 5 0.130438 0.155872 0.000000
+9 11 6 0.127737 0.161095 0.000000
+9 11 7 0.123068 0.167251 0.048768
+9 11 8 0.117870 0.173742 0.095380
+9 11 9 0.111079 0.181234 0.131459
+9 11 10 0.103151 0.188992 0.171812
+9 11 11 0.092722 0.197333 0.221572
+9 11 12 0.079240 0.205338 0.271905
+9 11 13 0.060669 0.212785 0.323193
+9 11 14 0.049107 0.219866 0.373759
+9 11 15 0.046555 0.226478 0.423395
+9 11 16 0.045129 0.232891 0.471133
+9 11 17 0.044829 0.239106 0.516973
+9 11 18 0.045152 0.244197 0.557836
+9 11 19 0.045958 0.248414 0.594827
+9 11 20 0.043087 0.252564 0.626006
+9 11 21 0.038008 0.256674 0.653700
+9 11 22 0.033762 0.262286 0.676763
+9 11 23 0.029894 0.268579 0.697721
+9 11 24 0.000000 0.282716 0.716037
+9 11 25 0.000000 0.299466 0.733473
+9 11 26 0.000000 0.328892 0.751565
+9 11 27 0.000000 0.361243 0.769808
+9 11 28 0.000000 0.384144 0.782804
+9 11 29 0.000000 0.405694 0.795050
+9 11 30 0.000000 0.422058 0.804418
+9 11 31 0.000000 0.438076 0.813594
+9 12 0 0.145520 0.174499 0.000000
+9 12 1 0.144199 0.176697 0.000000
+9 12 2 0.142837 0.178947 0.000000
+9 12 3 0.140864 0.181984 0.000000
+9 12 4 0.138696 0.185323 0.000000
+9 12 5 0.135170 0.190782 0.000000
+9 12 6 0.131115 0.196446 0.000000
+9 12 7 0.124773 0.202999 0.030414
+9 12 8 0.116597 0.210147 0.095603
+9 12 9 0.102917 0.219081 0.134869
+9 12 10 0.089396 0.228101 0.177918
+9 12 11 0.076225 0.237308 0.229292
+9 12 12 0.058989 0.246296 0.281307
+9 12 13 0.034975 0.254917 0.334394
+9 12 14 0.019418 0.263033 0.386817
+9 12 15 0.014735 0.270500 0.438389
+9 12 16 0.007474 0.277813 0.487526
+9 12 17 0.000000 0.284972 0.534228
+9 12 18 0.000000 0.290897 0.575787
+9 12 19 0.000000 0.295862 0.613347
+9 12 20 0.000000 0.300461 0.644969
+9 12 21 0.000000 0.304841 0.673029
+9 12 22 0.000000 0.310207 0.696170
+9 12 23 0.000000 0.316021 0.717075
+9 12 24 0.000000 0.329195 0.734755
+9 12 25 0.000000 0.344823 0.751360
+9 12 26 0.000000 0.370979 0.767378
+9 12 27 0.000000 0.399563 0.783261
+9 12 28 0.000000 0.420331 0.794871
+9 12 29 0.000000 0.439982 0.805872
+9 12 30 0.000000 0.455130 0.814415
+9 12 31 0.000000 0.469978 0.822793
+9 13 0 0.151554 0.209404 0.000000
+9 13 1 0.149671 0.211978 0.000000
+9 13 2 0.147727 0.214612 0.000000
+9 13 3 0.144867 0.218146 0.000000
+9 13 4 0.141742 0.222026 0.000000
+9 13 5 0.136761 0.228331 0.000000
+9 13 6 0.131297 0.235148 0.000000
+9 13 7 0.123738 0.244178 0.012278
+9 13 8 0.110540 0.253234 0.095533
+9 13 9 0.080423 0.262362 0.136728
+9 13 10 0.056770 0.271891 0.181825
+9 13 11 0.047337 0.282302 0.235510
+9 13 12 0.034209 0.292584 0.289887
+9 13 13 0.014922 0.302649 0.345418
+9 13 14 0.001282 0.311938 0.399657
+9 13 15 0.000000 0.320229 0.452236
+9 13 16 0.000000 0.328201 0.502655
+9 13 17 0.000000 0.335851 0.550916
+9 13 18 0.000000 0.342237 0.593067
+9 13 19 0.000000 0.347638 0.630466
+9 13 20 0.000000 0.352523 0.662813
+9 13 21 0.000000 0.357097 0.692128
+9 13 22 0.000000 0.362398 0.715172
+9 13 23 0.000000 0.368030 0.735364
+9 13 24 0.000000 0.379779 0.752322
+9 13 25 0.000000 0.393566 0.768202
+9 13 26 0.000000 0.416936 0.782835
+9 13 27 0.000000 0.442518 0.797180
+9 13 28 0.000000 0.461212 0.807611
+9 13 29 0.000000 0.478922 0.817483
+9 13 30 0.000000 0.492388 0.825043
+9 13 31 0.000000 0.505571 0.832448
+9 14 0 0.157061 0.249371 0.000000
+9 14 1 0.154600 0.252116 0.000000
+9 14 2 0.152059 0.254923 0.000000
+9 14 3 0.148321 0.258669 0.000000
+9 14 4 0.144242 0.262784 0.000000
+9 14 5 0.137776 0.269483 0.000000
+9 14 6 0.129610 0.276896 0.000000
+9 14 7 0.114080 0.287402 0.000082
+9 14 8 0.093931 0.297715 0.092716
+9 14 9 0.059924 0.307443 0.136903
+9 14 10 0.033458 0.317705 0.184862
+9 14 11 0.023584 0.329140 0.241116
+9 14 12 0.007934 0.340502 0.297820
+9 14 13 0.000000 0.351744 0.355273
+9 14 14 0.000000 0.362136 0.411237
+9 14 15 0.000000 0.371436 0.465287
+9 14 16 0.000000 0.380037 0.516819
+9 14 17 0.000000 0.387941 0.565833
+9 14 18 0.000000 0.394745 0.608507
+9 14 19 0.000000 0.400695 0.646251
+9 14 20 0.000000 0.405743 0.679189
+9 14 21 0.000000 0.410250 0.709243
+9 14 22 0.000000 0.415318 0.732455
+9 14 23 0.000000 0.420642 0.752558
+9 14 24 0.000000 0.431074 0.768920
+9 14 25 0.000000 0.443208 0.784034
+9 14 26 0.000000 0.463686 0.797300
+9 14 27 0.000000 0.486089 0.810139
+9 14 28 0.000000 0.502353 0.819359
+9 14 29 0.000000 0.517739 0.828061
+9 14 30 0.000000 0.529529 0.834715
+9 14 31 0.000000 0.541078 0.841231
+9 15 0 0.161891 0.295847 0.000000
+9 15 1 0.158831 0.298497 0.000000
+9 15 2 0.155675 0.301206 0.000000
+9 15 3 0.151071 0.304798 0.000000
+9 15 4 0.146043 0.308754 0.000000
+9 15 5 0.138049 0.315265 0.000000
+9 15 6 0.125519 0.322560 0.000000
+9 15 7 0.093335 0.333255 0.000000
+9 15 8 0.063755 0.343989 0.086367
+9 15 9 0.041990 0.354840 0.134916
+9 15 10 0.022123 0.366120 0.186780
+9 15 11 0.006433 0.378347 0.245937
+9 15 12 0.000000 0.390517 0.304923
+9 15 13 0.000000 0.402593 0.363625
+9 15 14 0.000000 0.413998 0.421197
+9 15 15 0.000000 0.424541 0.477316
+9 15 16 0.000000 0.433737 0.529741
+9 15 17 0.000000 0.441586 0.578473
+9 15 18 0.000000 0.448755 0.621584
+9 15 19 0.000000 0.455396 0.660322
+9 15 20 0.000000 0.460451 0.693678
+9 15 21 0.000000 0.464555 0.723805
+9 15 22 0.000000 0.469174 0.747530
+9 15 23 0.000000 0.474028 0.768346
+9 15 24 0.000000 0.483285 0.784271
+9 15 25 0.000000 0.494009 0.798567
+9 15 26 0.000000 0.511455 0.810489
+9 15 27 0.000000 0.530452 0.821863
+9 15 28 0.000000 0.543827 0.829830
+9 15 29 0.000000 0.556399 0.837311
+9 15 30 0.000000 0.566520 0.843157
+9 15 31 0.000000 0.576477 0.848894
+9 16 0 0.166062 0.338145 0.000000
+9 16 1 0.158210 0.340936 0.000000
+9 16 2 0.150161 0.343790 0.000000
+9 16 3 0.139157 0.347583 0.000000
+9 16 4 0.128541 0.351756 0.000000
+9 16 5 0.120631 0.358593 0.000000
+9 16 6 0.108061 0.366203 0.000000
+9 16 7 0.075294 0.377163 0.000000
+9 16 8 0.046320 0.388326 0.053461
+9 16 9 0.028728 0.400098 0.121372
+9 16 10 0.007301 0.412248 0.187343
+9 16 11 0.000000 0.425233 0.249042
+9 16 12 0.000000 0.438136 0.310240
+9 16 13 0.000000 0.450903 0.370601
+9 16 14 0.000000 0.462949 0.429696
+9 16 15 0.000000 0.474067 0.487161
+9 16 16 0.000000 0.483819 0.540543
+9 16 17 0.000000 0.492204 0.589842
+9 16 18 0.000000 0.499635 0.633558
+9 16 19 0.000000 0.506323 0.672932
+9 16 20 0.000000 0.511385 0.706753
+9 16 21 0.000000 0.515472 0.737242
+9 16 22 0.000000 0.519666 0.761111
+9 16 23 0.000000 0.523909 0.781971
+9 16 24 0.000000 0.531849 0.797401
+9 16 25 0.000000 0.541022 0.811022
+9 16 26 0.000000 0.555666 0.821927
+9 16 27 0.000000 0.571572 0.832207
+9 16 28 0.000000 0.582510 0.839256
+9 16 29 0.000000 0.592738 0.845843
+9 16 30 0.000000 0.601424 0.851063
+9 16 31 0.000000 0.610007 0.856192
+9 17 0 0.169573 0.376264 0.000000
+9 17 1 0.152735 0.379431 0.000000
+9 17 2 0.135516 0.382673 0.000000
+9 17 3 0.112581 0.387024 0.000000
+9 17 4 0.091737 0.391791 0.000000
+9 17 5 0.085524 0.399468 0.000000
+9 17 6 0.077237 0.407825 0.000000
+9 17 7 0.059958 0.419128 0.000000
+9 17 8 0.041627 0.430727 0.000000
+9 17 9 0.020138 0.443217 0.096273
+9 17 10 0.000000 0.456088 0.186550
+9 17 11 0.000000 0.469798 0.250434
+9 17 12 0.000000 0.483360 0.313772
+9 17 13 0.000000 0.496676 0.376202
+9 17 14 0.000000 0.508990 0.436733
+9 17 15 0.000000 0.520014 0.494823
+9 17 16 0.000000 0.530283 0.549225
+9 17 17 0.000000 0.539796 0.599941
+9 17 18 0.000000 0.547385 0.644432
+9 17 19 0.000000 0.553475 0.684082
+9 17 20 0.000000 0.558545 0.718414
+9 17 21 0.000000 0.563002 0.749555
+9 17 22 0.000000 0.566794 0.773198
+9 17 23 0.000000 0.570285 0.793433
+9 17 24 0.000000 0.576768 0.808309
+9 17 25 0.000000 0.584248 0.821399
+9 17 26 0.000000 0.596320 0.831616
+9 17 27 0.000000 0.609451 0.841171
+9 17 28 0.000000 0.618402 0.847635
+9 17 29 0.000000 0.626755 0.853659
+9 17 30 0.000000 0.634241 0.858434
+9 17 31 0.000000 0.641669 0.863126
+9 18 0 0.172002 0.414757 0.000000
+9 18 1 0.150996 0.417703 0.000000
+9 18 2 0.129530 0.420720 0.000000
+9 18 3 0.101184 0.424790 0.000000
+9 18 4 0.075625 0.429280 0.000000
+9 18 5 0.069583 0.436712 0.000000
+9 18 6 0.062199 0.444967 0.000000
+9 18 7 0.048996 0.456786 0.000000
+9 18 8 0.029588 0.468841 0.000000
+9 18 9 0.000000 0.481599 0.083503
+9 18 10 0.000000 0.494834 0.185419
+9 18 11 0.000000 0.509119 0.251695
+9 18 12 0.000000 0.523129 0.317011
+9 18 13 0.000000 0.536682 0.380727
+9 18 14 0.000000 0.549433 0.442674
+9 18 15 0.000000 0.561153 0.502346
+9 18 16 0.000000 0.571676 0.557570
+9 18 17 0.000000 0.581003 0.608346
+9 18 18 0.000000 0.588493 0.653164
+9 18 19 0.000000 0.594556 0.693349
+9 18 20 0.000000 0.599485 0.727874
+9 18 21 0.000000 0.603734 0.759001
+9 18 22 0.000000 0.607378 0.782731
+9 18 23 0.000000 0.610748 0.803097
+9 18 24 0.000000 0.616277 0.817647
+9 18 25 0.000000 0.622525 0.830259
+9 18 26 0.000000 0.632606 0.839858
+9 18 27 0.000000 0.643571 0.848763
+9 18 28 0.000000 0.651147 0.854822
+9 18 29 0.000000 0.658239 0.860474
+9 18 30 0.000000 0.664460 0.864880
+9 18 31 0.000000 0.670623 0.869204
+9 19 0 0.173588 0.453541 0.000000
+9 19 1 0.152161 0.455801 0.000000
+9 19 2 0.130280 0.458117 0.000000
+9 19 3 0.101592 0.461253 0.000000
+9 19 4 0.075607 0.464789 0.000000
+9 19 5 0.068549 0.471133 0.000000
+9 19 6 0.059439 0.478625 0.000000
+9 19 7 0.041437 0.491097 0.000000
+9 19 8 0.011837 0.503620 0.000000
+9 19 9 0.000000 0.516296 0.080323
+9 19 10 0.000000 0.529618 0.184025
+9 19 11 0.000000 0.544360 0.252855
+9 19 12 0.000000 0.558654 0.320021
+9 19 13 0.000000 0.572202 0.384417
+9 19 14 0.000000 0.585522 0.447764
+9 19 15 0.000000 0.598553 0.509762
+9 19 16 0.000000 0.609126 0.565652
+9 19 17 0.000000 0.617242 0.615433
+9 19 18 0.000000 0.624437 0.660231
+9 19 19 0.000000 0.630916 0.701153
+9 19 20 0.000000 0.635589 0.735622
+9 19 21 0.000000 0.639180 0.766219
+9 19 22 0.000000 0.642873 0.790276
+9 19 23 0.000000 0.646612 0.811361
+9 19 24 0.000000 0.651579 0.825764
+9 19 25 0.000000 0.656954 0.837938
+9 19 26 0.000000 0.665496 0.846976
+9 19 27 0.000000 0.674769 0.855289
+9 19 28 0.000000 0.681445 0.861080
+9 19 29 0.000000 0.687752 0.866511
+9 19 30 0.000000 0.692658 0.870608
+9 19 31 0.000000 0.697472 0.874616
+9 20 0 0.176368 0.481934 0.000000
+9 20 1 0.154423 0.484249 0.000000
+9 20 2 0.132018 0.486621 0.000000
+9 20 3 0.102717 0.489851 0.000000
+9 20 4 0.076055 0.493476 0.000000
+9 20 5 0.067875 0.499856 0.000000
+9 20 6 0.057403 0.507286 0.000000
+9 20 7 0.037001 0.519263 0.000000
+9 20 8 0.003394 0.531528 0.000000
+9 20 9 0.000000 0.544657 0.072756
+9 20 10 0.000000 0.558310 0.184177
+9 20 11 0.000000 0.573114 0.254744
+9 20 12 0.000000 0.587462 0.323298
+9 20 13 0.000000 0.601048 0.388495
+9 20 14 0.000000 0.614331 0.452420
+9 20 15 0.000000 0.627223 0.514710
+9 20 16 0.000000 0.637984 0.571093
+9 20 17 0.000000 0.646613 0.621568
+9 20 18 0.000000 0.653856 0.666662
+9 20 19 0.000000 0.660020 0.707570
+9 20 20 0.000000 0.664862 0.742217
+9 20 21 0.000000 0.668911 0.773106
+9 20 22 0.000000 0.672507 0.796955
+9 20 23 0.000000 0.675899 0.817604
+9 20 24 0.000000 0.680151 0.831671
+9 20 25 0.000000 0.684691 0.843544
+9 20 26 0.000000 0.691769 0.852232
+9 20 27 0.000000 0.699433 0.860185
+9 20 28 0.000000 0.705022 0.865723
+9 20 29 0.000000 0.710315 0.870914
+9 20 30 0.000000 0.714542 0.874831
+9 20 31 0.000000 0.718698 0.878662
+9 21 0 0.179863 0.504093 0.000000
+9 21 1 0.157342 0.506906 0.000000
+9 21 2 0.134349 0.509788 0.000000
+9 21 3 0.104271 0.513732 0.000000
+9 21 4 0.076782 0.518069 0.000000
+9 21 5 0.067416 0.525162 0.000000
+9 21 6 0.055800 0.532950 0.000000
+9 21 7 0.034439 0.543744 0.000000
+9 21 8 0.000535 0.555315 0.000000
+9 21 9 0.000000 0.569218 0.062557
+9 21 10 0.000000 0.583347 0.185255
+9 21 11 0.000000 0.597975 0.257072
+9 21 12 0.000000 0.612238 0.326734
+9 21 13 0.000000 0.625891 0.392804
+9 21 14 0.000000 0.638770 0.456815
+9 21 15 0.000000 0.650656 0.518177
+9 21 16 0.000000 0.661686 0.574949
+9 21 17 0.000000 0.671862 0.627132
+9 21 18 0.000000 0.679359 0.672712
+9 21 19 0.000000 0.684771 0.713157
+9 21 20 0.000000 0.690036 0.748120
+9 21 21 0.000000 0.695213 0.779794
+9 21 22 0.000000 0.698626 0.803113
+9 21 23 0.000000 0.701238 0.822634
+9 21 24 0.000000 0.704686 0.836253
+9 21 25 0.000000 0.708413 0.847904
+9 21 26 0.000000 0.714072 0.856371
+9 21 27 0.000000 0.720177 0.864103
+9 21 28 0.000000 0.724566 0.869395
+9 21 29 0.000000 0.728709 0.874338
+9 21 30 0.000000 0.732637 0.878151
+9 21 31 0.000000 0.736550 0.881888
+9 22 0 0.181426 0.522665 0.000000
+9 22 1 0.158591 0.525522 0.000000
+9 22 2 0.135274 0.528448 0.000000
+9 22 3 0.104728 0.532402 0.000000
+9 22 4 0.076720 0.536732 0.000000
+9 22 5 0.066479 0.543702 0.000000
+9 22 6 0.049489 0.551420 0.000000
+9 22 7 0.003254 0.562381 0.000000
+9 22 8 0.000000 0.574069 0.000000
+9 22 9 0.000000 0.587940 0.062601
+9 22 10 0.000000 0.602110 0.190729
+9 22 11 0.000000 0.616937 0.263348
+9 22 12 0.000000 0.631248 0.333565
+9 22 13 0.000000 0.644697 0.399779
+9 22 14 0.000000 0.657420 0.463605
+9 22 15 0.000000 0.669212 0.524363
+9 22 16 0.000000 0.680151 0.580723
+9 22 17 0.000000 0.690237 0.632687
+9 22 18 0.000000 0.697803 0.678256
+9 22 19 0.000000 0.703410 0.718851
+9 22 20 0.000000 0.708700 0.753511
+9 22 21 0.000000 0.713800 0.784610
+9 22 22 0.000000 0.717333 0.807715
+9 22 23 0.000000 0.720153 0.827188
+9 22 24 0.000000 0.723301 0.840532
+9 22 25 0.000000 0.726557 0.851833
+9 22 26 0.000000 0.731432 0.859949
+9 22 27 0.000000 0.736680 0.867330
+9 22 28 0.000000 0.740535 0.872433
+9 22 29 0.000000 0.744190 0.877211
+9 22 30 0.000000 0.747591 0.880926
+9 22 31 0.000000 0.750976 0.884569
+9 23 0 0.182110 0.539607 0.000000
+9 23 1 0.159080 0.542303 0.000000
+9 23 2 0.135560 0.545059 0.000000
+9 23 3 0.104687 0.548703 0.000000
+9 23 4 0.076301 0.552700 0.000000
+9 23 5 0.065325 0.559166 0.000000
+9 23 6 0.041037 0.566621 0.000000
+9 23 7 0.000000 0.578361 0.000000
+9 23 8 0.000000 0.590535 0.000000
+9 23 9 0.000000 0.604008 0.067302
+9 23 10 0.000000 0.618021 0.198203
+9 23 11 0.000000 0.633218 0.271419
+9 23 12 0.000000 0.647637 0.341938
+9 23 13 0.000000 0.660759 0.407964
+9 23 14 0.000000 0.673439 0.471485
+9 23 15 0.000000 0.685552 0.531784
+9 23 16 0.000000 0.696234 0.587368
+9 23 17 0.000000 0.705486 0.638237
+9 23 18 0.000000 0.713039 0.683569
+9 23 19 0.000000 0.719271 0.724595
+9 23 20 0.000000 0.724404 0.758670
+9 23 21 0.000000 0.728880 0.788574
+9 23 22 0.000000 0.732670 0.811610
+9 23 23 0.000000 0.736149 0.831526
+9 23 24 0.000000 0.739224 0.844673
+9 23 25 0.000000 0.742164 0.855565
+9 23 26 0.000000 0.746544 0.863271
+9 23 27 0.000000 0.751256 0.870243
+9 23 28 0.000000 0.754879 0.875184
+9 23 29 0.000000 0.758346 0.879834
+9 23 30 0.000000 0.761118 0.883452
+9 23 31 0.000000 0.763845 0.887002
+9 24 0 0.187733 0.555094 0.000000
+9 24 1 0.163653 0.558505 0.000000
+9 24 2 0.139104 0.561960 0.000000
+9 24 3 0.107522 0.566066 0.000000
+9 24 4 0.078493 0.570454 0.000000
+9 24 5 0.067334 0.576820 0.000000
+9 24 6 0.045279 0.584141 0.000000
+9 24 7 0.000000 0.595602 0.000000
+9 24 8 0.000000 0.607538 0.000000
+9 24 9 0.000000 0.620897 0.080053
+9 24 10 0.000000 0.634755 0.214441
+9 24 11 0.000000 0.649713 0.288068
+9 24 12 0.000000 0.663933 0.358536
+9 24 13 0.000000 0.676922 0.423739
+9 24 14 0.000000 0.689347 0.486233
+9 24 15 0.000000 0.701047 0.545245
+9 24 16 0.000000 0.711350 0.599415
+9 24 17 0.000000 0.720258 0.648745
+9 24 18 0.000000 0.727668 0.693003
+9 24 19 0.000000 0.733915 0.733316
+9 24 20 0.000000 0.738912 0.766332
+9 24 21 0.000000 0.743161 0.794970
+9 24 22 0.000000 0.746768 0.817251
+9 24 23 0.000000 0.750084 0.836643
+9 24 24 0.000000 0.752987 0.849461
+9 24 25 0.000000 0.755754 0.860089
+9 24 26 0.000000 0.759934 0.867585
+9 24 27 0.000000 0.764442 0.874359
+9 24 28 0.000000 0.767830 0.879124
+9 24 29 0.000000 0.771059 0.883602
+9 24 30 0.000000 0.773531 0.887055
+9 24 31 0.000000 0.775952 0.890439
+9 25 0 0.195003 0.570096 0.000000
+9 25 1 0.169587 0.574514 0.000000
+9 25 2 0.143734 0.578958 0.000000
+9 25 3 0.111317 0.583782 0.000000
+9 25 4 0.081556 0.588804 0.000000
+9 25 5 0.070397 0.595203 0.000000
+9 25 6 0.053752 0.602433 0.000000
+9 25 7 0.013333 0.613264 0.000000
+9 25 8 0.000000 0.624721 0.000000
+9 25 9 0.000000 0.638058 0.095486
+9 25 10 0.000000 0.651764 0.233601
+9 25 11 0.000000 0.666279 0.307577
+9 25 12 0.000000 0.680197 0.377875
+9 25 13 0.000000 0.693119 0.442044
+9 25 14 0.000000 0.705219 0.503272
+9 25 15 0.000000 0.716261 0.560718
+9 25 16 0.000000 0.726144 0.613263
+9 25 17 0.000000 0.734869 0.660907
+9 25 18 0.000000 0.742094 0.703811
+9 25 19 0.000000 0.748153 0.743029
+9 25 20 0.000000 0.753021 0.774829
+9 25 21 0.000000 0.757176 0.802178
+9 25 22 0.000000 0.760453 0.823474
+9 25 23 0.000000 0.763332 0.842020
+9 25 24 0.000000 0.766031 0.854465
+9 25 25 0.000000 0.768670 0.864877
+9 25 26 0.000000 0.772751 0.872230
+9 25 27 0.000000 0.777164 0.878876
+9 25 28 0.000000 0.780318 0.883461
+9 25 29 0.000000 0.783292 0.887750
+9 25 30 0.000000 0.785571 0.891015
+9 25 31 0.000000 0.787804 0.894212
+9 26 0 0.205961 0.582792 0.000000
+9 26 1 0.180295 0.587399 0.000000
+9 26 2 0.154072 0.592063 0.000000
+9 26 3 0.119481 0.597585 0.000000
+9 26 4 0.087705 0.603430 0.000000
+9 26 5 0.075628 0.611543 0.000000
+9 26 6 0.059828 0.620143 0.000000
+9 26 7 0.027894 0.630856 0.000000
+9 26 8 0.000000 0.642184 0.000000
+9 26 9 0.000000 0.655359 0.121104
+9 26 10 0.000000 0.668794 0.260764
+9 26 11 0.000000 0.682800 0.333013
+9 26 12 0.000000 0.696254 0.401655
+9 26 13 0.000000 0.708787 0.464282
+9 26 14 0.000000 0.720423 0.523822
+9 26 15 0.000000 0.730905 0.579392
+9 26 16 0.000000 0.740287 0.629914
+9 26 17 0.000000 0.748569 0.675386
+9 26 18 0.000000 0.755522 0.716739
+9 26 19 0.000000 0.761442 0.754890
+9 26 20 0.000000 0.766056 0.785029
+9 26 21 0.000000 0.769887 0.810362
+9 26 22 0.000000 0.773008 0.830552
+9 26 23 0.000000 0.775805 0.848404
+9 26 24 0.000000 0.778428 0.860625
+9 26 25 0.000000 0.780994 0.870970
+9 26 26 0.000000 0.784484 0.877710
+9 26 27 0.000000 0.788187 0.883618
+9 26 28 0.000000 0.791167 0.888079
+9 26 29 0.000000 0.794044 0.892333
+9 26 30 0.000000 0.796259 0.895538
+9 26 31 0.000000 0.798430 0.898672
+9 27 0 0.217771 0.594956 0.000000
+9 27 1 0.192105 0.599563 0.000000
+9 27 2 0.165727 0.604270 0.000000
+9 27 3 0.128654 0.610483 0.000000
+9 27 4 0.094565 0.617196 0.000000
+9 27 5 0.081359 0.627411 0.000000
+9 27 6 0.065351 0.637719 0.000000
+9 27 7 0.037200 0.648431 0.000000
+9 27 8 0.000000 0.659711 0.000000
+9 27 9 0.000000 0.672693 0.149072
+9 27 10 0.000000 0.685830 0.289773
+9 27 11 0.000000 0.699311 0.359818
+9 27 12 0.000000 0.712263 0.426459
+9 27 13 0.000000 0.724332 0.487427
+9 27 14 0.000000 0.735472 0.545182
+9 27 15 0.000000 0.745417 0.598806
+9 27 16 0.000000 0.754279 0.647212
+9 27 17 0.000000 0.762058 0.690400
+9 27 18 0.000000 0.768719 0.730157
+9 27 19 0.000000 0.774511 0.767246
+9 27 20 0.000000 0.778843 0.795622
+9 27 21 0.000000 0.782298 0.818772
+9 27 22 0.000000 0.785301 0.837827
+9 27 23 0.000000 0.788098 0.855021
+9 27 24 0.000000 0.790676 0.867053
+9 27 25 0.000000 0.793181 0.877364
+9 27 26 0.000000 0.795967 0.883383
+9 27 27 0.000000 0.798818 0.888411
+9 27 28 0.000000 0.801638 0.892762
+9 27 29 0.000000 0.804455 0.897017
+9 27 30 0.000000 0.806634 0.900190
+9 27 31 0.000000 0.808772 0.903291
+9 28 0 0.226020 0.603557 0.000000
+9 28 1 0.200382 0.608217 0.000000
+9 28 2 0.173956 0.612976 0.000000
+9 28 3 0.135731 0.619222 0.000000
+9 28 4 0.100547 0.626035 0.000000
+9 28 5 0.086644 0.636812 0.000000
+9 28 6 0.070028 0.647830 0.000000
+9 28 7 0.041658 0.659887 0.000000
+9 28 8 0.002244 0.672142 0.036396
+9 28 9 0.000000 0.684988 0.186518
+9 28 10 0.000000 0.697902 0.310969
+9 28 11 0.000000 0.710964 0.378944
+9 28 12 0.000000 0.723551 0.443916
+9 28 13 0.000000 0.735344 0.503883
+9 28 14 0.000000 0.746169 0.560452
+9 28 15 0.000000 0.755747 0.612651
+9 28 16 0.000000 0.764323 0.660011
+9 28 17 0.000000 0.771898 0.702532
+9 28 18 0.000000 0.778306 0.740983
+9 28 19 0.000000 0.783807 0.776270
+9 28 20 0.000000 0.787948 0.803613
+9 28 21 0.000000 0.791274 0.826190
+9 28 22 0.000000 0.794123 0.844294
+9 28 23 0.000000 0.796756 0.860365
+9 28 24 0.000000 0.799247 0.871867
+9 28 25 0.000000 0.801692 0.881844
+9 28 26 0.000000 0.804380 0.887712
+9 28 27 0.000000 0.807124 0.892630
+9 28 28 0.000000 0.809514 0.896556
+9 28 29 0.000000 0.811853 0.900341
+9 28 30 0.000000 0.813999 0.903508
+9 28 31 0.000000 0.816132 0.906634
+9 29 0 0.233760 0.611648 0.000000
+9 29 1 0.208153 0.616369 0.000000
+9 29 2 0.181696 0.621181 0.000000
+9 29 3 0.142509 0.627367 0.000000
+9 29 4 0.106402 0.634169 0.000000
+9 29 5 0.091864 0.645289 0.000000
+9 29 6 0.074584 0.656874 0.000000
+9 29 7 0.045423 0.670469 0.000000
+9 29 8 0.005007 0.683845 0.101494
+9 29 9 0.000000 0.696564 0.225318
+9 29 10 0.000000 0.709264 0.331048
+9 29 11 0.000000 0.721923 0.396973
+9 29 12 0.000000 0.734164 0.460323
+9 29 13 0.000000 0.745709 0.519384
+9 29 14 0.000000 0.756244 0.574852
+9 29 15 0.000000 0.765479 0.625702
+9 29 16 0.000000 0.773804 0.672168
+9 29 17 0.000000 0.781218 0.714252
+9 29 18 0.000000 0.787378 0.751440
+9 29 19 0.000000 0.792563 0.784819
+9 29 20 0.000000 0.796528 0.811232
+9 29 21 0.000000 0.799759 0.833466
+9 29 22 0.000000 0.802450 0.850645
+9 29 23 0.000000 0.804895 0.865528
+9 29 24 0.000000 0.807293 0.876450
+9 29 25 0.000000 0.809677 0.886052
+9 29 26 0.000000 0.812354 0.891849
+9 29 27 0.000000 0.815098 0.896767
+9 29 28 0.000000 0.817018 0.900224
+9 29 29 0.000000 0.818820 0.903472
+9 29 30 0.000000 0.820933 0.906636
+9 29 31 0.000000 0.823066 0.909796
+9 30 0 0.239649 0.617740 0.000000
+9 30 1 0.214014 0.622408 0.000000
+9 30 2 0.187529 0.627174 0.000000
+9 30 3 0.148281 0.633412 0.000000
+9 30 4 0.111997 0.640268 0.000000
+9 30 5 0.096458 0.651441 0.000000
+9 30 6 0.078217 0.663317 0.000000
+9 30 7 0.048266 0.678243 0.035902
+9 30 8 0.006967 0.692599 0.164077
+9 30 9 0.000000 0.705247 0.259932
+9 30 10 0.000000 0.717845 0.346031
+9 30 11 0.000000 0.730334 0.410661
+9 30 12 0.000000 0.742354 0.473029
+9 30 13 0.000000 0.753594 0.531623
+9 30 14 0.000000 0.763870 0.586291
+9 30 15 0.000000 0.772907 0.635910
+9 30 16 0.000000 0.781024 0.681512
+9 30 17 0.000000 0.788221 0.723097
+9 30 18 0.000000 0.794158 0.759258
+9 30 19 0.000000 0.799116 0.791201
+9 30 20 0.000000 0.802991 0.816898
+9 30 21 0.000000 0.806217 0.838846
+9 30 22 0.000000 0.808798 0.855340
+9 30 23 0.000000 0.811086 0.869354
+9 30 24 0.000000 0.813420 0.879867
+9 30 25 0.000000 0.815768 0.889212
+9 30 26 0.000000 0.818464 0.895007
+9 30 27 0.000000 0.821239 0.899982
+9 30 28 0.000000 0.823084 0.903367
+9 30 29 0.000000 0.824796 0.906524
+9 30 30 0.000000 0.826543 0.909296
+9 30 31 0.000000 0.828292 0.912043
+9 31 0 0.245415 0.623699 0.000000
+9 31 1 0.219749 0.628306 0.000000
+9 31 2 0.193234 0.633018 0.000000
+9 31 3 0.153986 0.639318 0.000000
+9 31 4 0.117574 0.646230 0.000000
+9 31 5 0.101011 0.657437 0.000000
+9 31 6 0.081789 0.669587 0.000000
+9 31 7 0.051047 0.685829 0.078459
+9 31 8 0.008872 0.701156 0.226491
+9 31 9 0.000000 0.713737 0.294268
+9 31 10 0.000000 0.726241 0.360673
+9 31 11 0.000000 0.738575 0.424061
+9 31 12 0.000000 0.750383 0.485487
+9 31 13 0.000000 0.761313 0.543645
+9 31 14 0.000000 0.771333 0.597532
+9 31 15 0.000000 0.780182 0.645929
+9 31 16 0.000000 0.788095 0.690668
+9 31 17 0.000000 0.795070 0.731750
+9 31 18 0.000000 0.800786 0.766901
+9 31 19 0.000000 0.805522 0.797440
+9 31 20 0.000000 0.809314 0.822433
+9 31 21 0.000000 0.812540 0.844099
+9 31 22 0.000000 0.815015 0.859923
+9 31 23 0.000000 0.817148 0.873092
+9 31 24 0.000000 0.819418 0.883206
+9 31 25 0.000000 0.821733 0.892303
+9 31 26 0.000000 0.824449 0.898100
+9 31 27 0.000000 0.827258 0.903136
+9 31 28 0.000000 0.829054 0.906475
+9 31 29 0.000000 0.830705 0.909572
+9 31 30 0.000000 0.832065 0.911925
+9 31 31 0.000000 0.833404 0.914229
+10 0 0 0.089068 0.034794 0.027553
+10 0 1 0.089550 0.034853 0.029404
+10 0 2 0.090031 0.034913 0.031312
+10 0 3 0.090513 0.035001 0.034074
+10 0 4 0.091054 0.035093 0.037090
+10 0 5 0.092017 0.035211 0.041885
+10 0 6 0.092857 0.035295 0.046935
+10 0 7 0.093169 0.035236 0.053094
+10 0 8 0.093253 0.034944 0.060731
+10 0 9 0.092651 0.033951 0.072807
+10 0 10 0.092801 0.031941 0.092652
+10 0 11 0.094607 0.027692 0.129591
+10 0 12 0.096122 0.022249 0.166406
+10 0 13 0.097156 0.014816 0.203015
+10 0 14 0.103182 0.000000 0.241005
+10 0 15 0.115627 0.000000 0.280770
+10 0 16 0.125864 0.000000 0.317820
+10 0 17 0.133894 0.000000 0.352155
+10 0 18 0.142681 0.000000 0.384526
+10 0 19 0.152057 0.000000 0.415371
+10 0 20 0.159494 0.000000 0.443061
+10 0 21 0.165768 0.000000 0.468858
+10 0 22 0.171399 0.000000 0.492380
+10 0 23 0.176738 0.000000 0.514869
+10 0 24 0.179615 0.000000 0.542095
+10 0 25 0.181672 0.000000 0.570901
+10 0 26 0.181098 0.000000 0.607894
+10 0 27 0.179916 0.000000 0.646778
+10 0 28 0.178529 0.000000 0.673074
+10 0 29 0.177112 0.007041 0.697572
+10 0 30 0.175967 0.105563 0.715581
+10 0 31 0.174840 0.205812 0.733157
+10 1 0 0.092394 0.037544 0.026771
+10 1 1 0.092686 0.037682 0.029277
+10 1 2 0.092990 0.037815 0.031799
+10 1 3 0.093472 0.037888 0.034545
+10 1 4 0.094023 0.037967 0.037548
+10 1 5 0.095059 0.038084 0.042343
+10 1 6 0.095981 0.038227 0.047696
+10 1 7 0.096408 0.038481 0.055468
+10 1 8 0.096473 0.038497 0.064296
+10 1 9 0.095447 0.037801 0.076293
+10 1 10 0.095384 0.036083 0.096206
+10 1 11 0.097438 0.032117 0.133536
+10 1 12 0.099109 0.027165 0.170878
+10 1 13 0.100143 0.020572 0.208239
+10 1 14 0.105970 0.000000 0.246769
+10 1 15 0.117960 0.000000 0.286800
+10 1 16 0.127809 0.000000 0.324328
+10 1 17 0.135517 0.000000 0.359352
+10 1 18 0.144024 0.000000 0.392086
+10 1 19 0.153151 0.000000 0.423040
+10 1 20 0.160386 0.000000 0.450996
+10 1 21 0.166485 0.000000 0.477154
+10 1 22 0.171840 0.000000 0.500466
+10 1 23 0.176857 0.000000 0.522484
+10 1 24 0.178252 0.000000 0.548242
+10 1 25 0.178440 0.000000 0.575246
+10 1 26 0.177515 0.000000 0.611826
+10 1 27 0.176333 0.000000 0.650615
+10 1 28 0.174946 0.000000 0.676913
+10 1 29 0.173529 0.015850 0.701426
+10 1 30 0.172371 0.114665 0.719436
+10 1 31 0.171230 0.214915 0.737012
+10 2 0 0.095789 0.040349 0.025975
+10 2 1 0.095903 0.040559 0.029100
+10 2 2 0.096039 0.040761 0.032204
+10 2 3 0.096509 0.040831 0.034985
+10 2 4 0.097057 0.040906 0.038018
+10 2 5 0.098162 0.041024 0.042813
+10 2 6 0.099162 0.041226 0.048469
+10 2 7 0.099706 0.041796 0.057855
+10 2 8 0.099752 0.042126 0.067882
+10 2 9 0.098302 0.041734 0.079829
+10 2 10 0.098025 0.040316 0.099835
+10 2 11 0.100333 0.036639 0.137570
+10 2 12 0.102161 0.032187 0.175453
+10 2 13 0.103192 0.026445 0.213584
+10 2 14 0.108813 0.000000 0.252662
+10 2 15 0.120339 0.000000 0.292958
+10 2 16 0.129794 0.000000 0.330973
+10 2 17 0.137179 0.000000 0.366709
+10 2 18 0.145401 0.000000 0.399816
+10 2 19 0.154272 0.000000 0.430879
+10 2 20 0.161298 0.000000 0.459102
+10 2 21 0.167215 0.000000 0.485621
+10 2 22 0.172291 0.000000 0.508719
+10 2 23 0.176985 0.000000 0.530263
+10 2 24 0.176961 0.000000 0.554608
+10 2 25 0.175366 0.000000 0.579888
+10 2 26 0.173999 0.000000 0.615976
+10 2 27 0.172685 0.000000 0.654559
+10 2 28 0.171285 0.000000 0.680843
+10 2 29 0.169873 0.024848 0.705369
+10 2 30 0.168699 0.123964 0.723380
+10 2 31 0.167540 0.224214 0.740956
+10 3 0 0.100214 0.043974 0.024952
+10 3 1 0.100314 0.044170 0.028156
+10 3 2 0.100425 0.044368 0.031383
+10 3 3 0.100705 0.044611 0.034943
+10 3 4 0.101089 0.044837 0.038658
+10 3 5 0.102194 0.044955 0.043453
+10 3 6 0.103218 0.045228 0.049415
+10 3 7 0.103892 0.046174 0.060430
+10 3 8 0.103922 0.046887 0.071775
+10 3 9 0.102020 0.046902 0.084114
+10 3 10 0.101538 0.045890 0.104580
+10 3 11 0.104182 0.042620 0.142928
+10 3 12 0.106198 0.038801 0.181582
+10 3 13 0.107169 0.034068 0.220747
+10 3 14 0.112488 0.000000 0.260503
+10 3 15 0.123398 0.000000 0.301017
+10 3 16 0.132377 0.000000 0.339674
+10 3 17 0.139427 0.000000 0.376474
+10 3 18 0.147295 0.000000 0.410108
+10 3 19 0.155799 0.000000 0.441281
+10 3 20 0.162514 0.000000 0.469770
+10 3 21 0.168155 0.000000 0.496650
+10 3 22 0.172904 0.000000 0.519483
+10 3 23 0.177247 0.000000 0.540478
+10 3 24 0.176764 0.000000 0.564263
+10 3 25 0.174671 0.000000 0.588979
+10 3 26 0.171491 0.000000 0.623421
+10 3 27 0.168060 0.000000 0.660108
+10 3 28 0.166459 0.000000 0.686142
+10 3 29 0.165121 0.036682 0.710653
+10 3 30 0.163882 0.136207 0.728663
+10 3 31 0.162650 0.236472 0.746239
+10 4 0 0.105052 0.047959 0.023855
+10 4 1 0.105141 0.048141 0.027118
+10 4 2 0.105232 0.048337 0.030444
+10 4 3 0.105345 0.048731 0.034710
+10 4 4 0.105576 0.049092 0.039063
+10 4 5 0.106632 0.049227 0.044020
+10 4 6 0.107639 0.049577 0.050381
+10 4 7 0.108436 0.050854 0.062831
+10 4 8 0.108464 0.051932 0.075450
+10 4 9 0.106186 0.052414 0.088573
+10 4 10 0.105531 0.051880 0.109787
+10 4 11 0.108443 0.049112 0.148800
+10 4 12 0.110604 0.046025 0.188289
+10 4 13 0.111516 0.042405 0.228573
+10 4 14 0.116510 0.003104 0.269073
+10 4 15 0.126753 0.000000 0.309850
+10 4 16 0.135208 0.000000 0.349218
+10 4 17 0.141874 0.000000 0.387177
+10 4 18 0.149364 0.000000 0.421375
+10 4 19 0.157497 0.000000 0.452648
+10 4 20 0.163870 0.000000 0.481431
+10 4 21 0.169189 0.000000 0.508718
+10 4 22 0.173581 0.000000 0.531279
+10 4 23 0.177552 0.000000 0.551691
+10 4 24 0.176633 0.000000 0.574950
+10 4 25 0.174084 0.000000 0.599159
+10 4 26 0.168883 0.000000 0.631732
+10 4 27 0.163069 0.000000 0.666236
+10 4 28 0.161202 0.000000 0.691966
+10 4 29 0.159898 0.049643 0.716443
+10 4 30 0.158610 0.149612 0.734448
+10 4 31 0.157322 0.249891 0.752022
+10 5 0 0.112775 0.054458 0.022233
+10 5 1 0.112879 0.054641 0.025417
+10 5 2 0.112982 0.054836 0.028681
+10 5 3 0.113081 0.055230 0.033135
+10 5 4 0.113251 0.055609 0.037814
+10 5 5 0.113914 0.055887 0.044066
+10 5 6 0.114616 0.056355 0.051495
+10 5 7 0.115486 0.057647 0.064024
+10 5 8 0.115609 0.058960 0.077586
+10 5 9 0.113490 0.060333 0.094249
+10 5 10 0.112879 0.060779 0.118219
+10 5 11 0.115588 0.059185 0.158266
+10 5 12 0.117600 0.057519 0.199042
+10 5 13 0.118453 0.055734 0.241034
+10 5 14 0.122965 0.022233 0.282747
+10 5 15 0.132183 0.000000 0.324104
+10 5 16 0.139767 0.000000 0.364670
+10 5 17 0.145716 0.000000 0.404446
+10 5 18 0.152662 0.000000 0.439464
+10 5 19 0.160385 0.000000 0.470783
+10 5 20 0.166203 0.000000 0.500043
+10 5 21 0.170878 0.000000 0.528068
+10 5 22 0.174708 0.000000 0.550298
+10 5 23 0.178154 0.000000 0.569894
+10 5 24 0.176972 0.000000 0.592868
+10 5 25 0.174248 0.000000 0.616967
+10 5 26 0.165573 0.000000 0.646109
+10 5 27 0.155525 0.000000 0.676416
+10 5 28 0.152923 0.000000 0.701470
+10 5 29 0.151385 0.070490 0.725773
+10 5 30 0.150151 0.171154 0.743754
+10 5 31 0.148937 0.271433 0.761313
+10 6 0 0.121279 0.061658 0.019987
+10 6 1 0.121413 0.062032 0.023424
+10 6 2 0.121544 0.062406 0.026933
+10 6 3 0.121631 0.062800 0.031534
+10 6 4 0.121748 0.063195 0.036480
+10 6 5 0.122068 0.063601 0.043840
+10 6 6 0.122460 0.064177 0.052240
+10 6 7 0.123165 0.065491 0.065150
+10 6 8 0.123232 0.067067 0.079995
+10 6 9 0.121385 0.069429 0.100646
+10 6 10 0.120855 0.070956 0.127694
+10 6 11 0.123222 0.070648 0.168813
+10 6 12 0.125035 0.070492 0.210954
+10 6 13 0.125927 0.070591 0.254797
+10 6 14 0.129885 0.044894 0.297915
+10 6 15 0.137786 0.000000 0.340104
+10 6 16 0.144400 0.000000 0.381867
+10 6 17 0.149727 0.000000 0.423204
+10 6 18 0.156025 0.000000 0.459169
+10 6 19 0.163079 0.000000 0.490956
+10 6 20 0.168291 0.000000 0.520755
+10 6 21 0.172398 0.000000 0.549361
+10 6 22 0.175627 0.000000 0.571499
+10 6 23 0.178456 0.000000 0.590697
+10 6 24 0.176572 0.000000 0.613136
+10 6 25 0.173118 0.000000 0.636657
+10 6 26 0.161511 0.000000 0.662922
+10 6 27 0.148022 0.000000 0.689820
+10 6 28 0.144232 0.002681 0.713734
+10 6 29 0.141829 0.109691 0.737222
+10 6 30 0.139718 0.203099 0.754661
+10 6 31 0.137627 0.295600 0.771696
+10 7 0 0.133160 0.071895 0.015040
+10 7 1 0.133395 0.073287 0.020162
+10 7 2 0.133622 0.074617 0.025250
+10 7 3 0.133709 0.075011 0.029818
+10 7 4 0.133810 0.075414 0.034771
+10 7 5 0.134000 0.075883 0.042429
+10 7 6 0.134062 0.076521 0.051387
+10 7 7 0.133567 0.077886 0.065986
+10 7 8 0.132926 0.079853 0.083582
+10 7 9 0.131847 0.083622 0.110169
+10 7 10 0.131550 0.086670 0.141684
+10 7 11 0.132973 0.088133 0.184041
+10 7 12 0.134372 0.089870 0.227883
+10 7 13 0.135730 0.092065 0.274201
+10 7 14 0.138820 0.082863 0.319554
+10 7 15 0.144138 0.059006 0.363669
+10 7 16 0.149356 0.040677 0.406622
+10 7 17 0.154474 0.027878 0.448414
+10 7 18 0.159670 0.022770 0.485873
+10 7 19 0.164928 0.023646 0.519962
+10 7 20 0.169319 0.025219 0.550566
+10 7 21 0.173189 0.027210 0.579077
+10 7 22 0.175645 0.030467 0.602155
+10 7 23 0.177457 0.034299 0.622764
+10 7 24 0.172969 0.044898 0.643595
+10 7 25 0.166382 0.057752 0.664501
+10 7 26 0.154186 0.082103 0.690288
+10 7 27 0.140697 0.109108 0.717202
+10 7 28 0.133758 0.166589 0.737965
+10 7 29 0.127755 0.228424 0.757850
+10 7 30 0.120735 0.280120 0.772507
+10 7 31 0.113646 0.331140 0.786816
+10 8 0 0.143825 0.082853 0.004630
+10 8 1 0.144056 0.084915 0.012756
+10 8 2 0.144281 0.086891 0.020710
+10 8 3 0.144401 0.087563 0.026080
+10 8 4 0.144525 0.088286 0.031870
+10 8 5 0.144679 0.089367 0.040598
+10 8 6 0.144549 0.090652 0.050769
+10 8 7 0.143182 0.092820 0.067192
+10 8 8 0.141911 0.095646 0.087290
+10 8 9 0.140925 0.100447 0.118410
+10 8 10 0.140457 0.104809 0.153596
+10 8 11 0.141126 0.108204 0.197727
+10 8 12 0.141954 0.111861 0.243490
+10 8 13 0.143047 0.115957 0.291973
+10 8 14 0.145037 0.119481 0.339279
+10 8 15 0.148180 0.122271 0.385073
+10 8 16 0.152022 0.124617 0.429288
+10 8 17 0.156563 0.126518 0.471927
+10 8 18 0.160709 0.128248 0.510790
+10 8 19 0.164547 0.129845 0.546715
+10 8 20 0.168134 0.132521 0.577962
+10 8 21 0.171571 0.135845 0.606404
+10 8 22 0.173307 0.141279 0.630136
+10 8 23 0.174270 0.147672 0.651727
+10 8 24 0.163037 0.164726 0.671352
+10 8 25 0.147740 0.185334 0.690320
+10 8 26 0.132595 0.224498 0.715232
+10 8 27 0.117486 0.267944 0.741515
+10 8 28 0.107063 0.297468 0.759464
+10 8 29 0.097309 0.325003 0.776223
+10 8 30 0.086294 0.345106 0.788500
+10 8 31 0.075196 0.364714 0.800478
+10 9 0 0.150843 0.095974 0.000000
+10 9 1 0.150753 0.097661 0.000000
+10 9 2 0.150683 0.099354 0.007595
+10 9 3 0.150933 0.101139 0.016278
+10 9 4 0.151202 0.103118 0.025389
+10 9 5 0.151602 0.106455 0.037508
+10 9 6 0.151692 0.110147 0.050852
+10 9 7 0.150438 0.115369 0.069504
+10 9 8 0.148769 0.120462 0.091356
+10 9 9 0.145856 0.125169 0.122804
+10 9 10 0.144003 0.130220 0.159273
+10 9 11 0.144483 0.136029 0.206788
+10 9 12 0.144272 0.141689 0.255131
+10 9 13 0.142908 0.147101 0.304851
+10 9 14 0.143101 0.152052 0.353264
+10 9 15 0.145296 0.156410 0.399994
+10 9 16 0.147822 0.160299 0.445690
+10 9 17 0.150680 0.163720 0.490352
+10 9 18 0.153926 0.166494 0.530345
+10 9 19 0.157474 0.168763 0.566707
+10 9 20 0.160313 0.171878 0.598118
+10 9 21 0.162728 0.175499 0.626559
+10 9 22 0.163904 0.181414 0.650087
+10 9 23 0.164517 0.188371 0.671381
+10 9 24 0.134118 0.204472 0.691002
+10 9 25 0.093383 0.223621 0.710065
+10 9 26 0.068205 0.260516 0.732906
+10 9 27 0.046616 0.301505 0.756621
+10 9 28 0.031705 0.329257 0.772768
+10 9 29 0.017747 0.355118 0.787835
+10 9 30 0.005485 0.373988 0.798934
+10 9 31 0.000000 0.392391 0.809768
+10 10 0 0.159391 0.115457 0.000000
+10 10 1 0.159065 0.117017 0.000000
+10 10 2 0.158772 0.118643 0.000000
+10 10 3 0.158964 0.121266 0.000000
+10 10 4 0.159168 0.124186 0.000000
+10 10 5 0.159449 0.129177 0.013235
+10 10 6 0.159366 0.134560 0.032013
+10 10 7 0.157711 0.141643 0.062775
+10 10 8 0.155355 0.148289 0.094088
+10 10 9 0.150896 0.153627 0.127053
+10 10 10 0.147561 0.159685 0.165413
+10 10 11 0.146701 0.167330 0.215641
+10 10 12 0.144850 0.174584 0.266165
+10 10 13 0.141350 0.181184 0.317182
+10 10 14 0.139518 0.187401 0.366978
+10 10 15 0.139830 0.193126 0.415205
+10 10 16 0.140787 0.198427 0.462408
+10 10 17 0.142388 0.203304 0.508588
+10 10 18 0.144459 0.207157 0.549576
+10 10 19 0.146897 0.210213 0.586527
+10 10 20 0.148754 0.213807 0.618154
+10 10 21 0.150261 0.217726 0.646586
+10 10 22 0.150082 0.223856 0.670054
+10 10 23 0.149136 0.230991 0.691266
+10 10 24 0.104968 0.246219 0.710640
+10 10 25 0.046392 0.264145 0.729400
+10 10 26 0.014284 0.298324 0.750030
+10 10 27 0.000000 0.336254 0.771092
+10 10 28 0.000000 0.362089 0.785530
+10 10 29 0.000000 0.386196 0.799022
+10 10 30 0.000000 0.403918 0.809093
+10 10 31 0.000000 0.421215 0.818936
+10 11 0 0.171305 0.148934 0.000000
+10 11 1 0.170934 0.150916 0.000000
+10 11 2 0.170569 0.152952 0.000000
+10 11 3 0.170293 0.155808 0.000000
+10 11 4 0.169971 0.158973 0.000000
+10 11 5 0.169328 0.164292 0.000000
+10 11 6 0.168208 0.169798 0.000000
+10 11 7 0.165020 0.176112 0.036156
+10 11 8 0.161338 0.182740 0.093888
+10 11 9 0.156176 0.190304 0.130987
+10 11 10 0.151148 0.198069 0.172574
+10 11 11 0.146414 0.206279 0.224037
+10 11 12 0.141605 0.214224 0.275867
+10 11 13 0.136670 0.221732 0.328309
+10 11 14 0.132309 0.228864 0.380100
+10 11 15 0.128686 0.235513 0.431053
+10 11 16 0.127514 0.241935 0.479823
+10 11 17 0.128793 0.248129 0.526409
+10 11 18 0.129087 0.253139 0.568096
+10 11 19 0.128614 0.257229 0.605972
+10 11 20 0.128969 0.261397 0.637926
+10 11 21 0.129822 0.265613 0.666328
+10 11 22 0.126538 0.271373 0.690056
+10 11 23 0.121374 0.277834 0.711659
+10 11 24 0.075306 0.292366 0.730250
+10 11 25 0.015604 0.309589 0.747837
+10 11 26 0.000000 0.340073 0.765943
+10 11 27 0.000000 0.373618 0.784169
+10 11 28 0.000000 0.397216 0.797101
+10 11 29 0.000000 0.419394 0.809276
+10 11 30 0.000000 0.436157 0.818648
+10 11 31 0.000000 0.452559 0.827833
+10 12 0 0.182101 0.183615 0.000000
+10 12 1 0.181543 0.185995 0.000000
+10 12 2 0.180969 0.188426 0.000000
+10 12 3 0.180159 0.191623 0.000000
+10 12 4 0.179249 0.195151 0.000000
+10 12 5 0.177640 0.200992 0.000000
+10 12 6 0.175506 0.207011 0.000000
+10 12 7 0.171095 0.213803 0.015524
+10 12 8 0.166107 0.221153 0.093186
+10 12 9 0.159387 0.230178 0.133765
+10 12 10 0.152306 0.239231 0.178276
+10 12 11 0.144432 0.248345 0.231439
+10 12 12 0.136111 0.257263 0.285015
+10 12 13 0.127044 0.265855 0.339282
+10 12 14 0.118908 0.273965 0.392999
+10 12 15 0.111968 0.281457 0.446009
+10 12 16 0.102403 0.288832 0.496252
+10 12 17 0.090215 0.296089 0.543726
+10 12 18 0.083781 0.302027 0.586113
+10 12 19 0.081821 0.306940 0.624544
+10 12 20 0.081270 0.311548 0.656977
+10 12 21 0.081564 0.315973 0.685812
+10 12 22 0.077221 0.321444 0.709630
+10 12 23 0.070772 0.327391 0.731166
+10 12 24 0.032576 0.340905 0.749013
+10 12 25 0.000000 0.356941 0.765631
+10 12 26 0.000000 0.384012 0.781648
+10 12 27 0.000000 0.413629 0.797526
+10 12 28 0.000000 0.435010 0.809074
+10 12 29 0.000000 0.455213 0.820004
+10 12 30 0.000000 0.470745 0.828577
+10 12 31 0.000000 0.485965 0.836992
+10 13 0 0.191034 0.220300 0.000000
+10 13 1 0.190052 0.223041 0.000000
+10 13 2 0.189041 0.225843 0.000000
+10 13 3 0.187587 0.229559 0.000000
+10 13 4 0.185984 0.233647 0.000000
+10 13 5 0.183340 0.240334 0.000000
+10 13 6 0.180231 0.247519 0.000000
+10 13 7 0.175115 0.256861 0.004872
+10 13 8 0.168851 0.266170 0.091651
+10 13 9 0.159146 0.275380 0.134620
+10 13 10 0.149415 0.285021 0.181547
+10 13 11 0.139624 0.295609 0.237184
+10 13 12 0.126869 0.305967 0.293242
+10 13 13 0.109175 0.315938 0.349999
+10 13 14 0.095185 0.325132 0.405528
+10 13 15 0.085958 0.333328 0.459478
+10 13 16 0.057562 0.341376 0.511036
+10 13 17 0.009998 0.349276 0.560203
+10 13 18 0.000000 0.355760 0.603295
+10 13 19 0.000000 0.361143 0.641662
+10 13 20 0.000000 0.365967 0.674826
+10 13 21 0.000000 0.370456 0.704868
+10 13 22 0.000000 0.375774 0.728491
+10 13 23 0.000000 0.381468 0.749196
+10 13 24 0.000000 0.393427 0.766365
+10 13 25 0.000000 0.407474 0.782355
+10 13 26 0.000000 0.431602 0.797007
+10 13 27 0.000000 0.458056 0.811351
+10 13 28 0.000000 0.477247 0.821720
+10 13 29 0.000000 0.495400 0.831522
+10 13 30 0.000000 0.509248 0.839128
+10 13 31 0.000000 0.522810 0.846588
+10 14 0 0.199354 0.262387 0.000000
+10 14 1 0.197987 0.265277 0.000000
+10 14 2 0.196578 0.268231 0.000000
+10 14 3 0.194538 0.272150 0.000000
+10 14 4 0.192304 0.276460 0.000000
+10 14 5 0.188706 0.283515 0.000000
+10 14 6 0.184488 0.291283 0.000000
+10 14 7 0.177582 0.302142 0.000000
+10 14 8 0.168989 0.312745 0.081792
+10 14 9 0.155337 0.322581 0.131400
+10 14 10 0.141438 0.333019 0.183767
+10 14 11 0.126995 0.344785 0.242200
+10 14 12 0.105261 0.356328 0.300753
+10 14 13 0.071375 0.367502 0.359506
+10 14 14 0.048480 0.377812 0.416786
+10 14 15 0.039716 0.387014 0.472170
+10 14 16 0.009202 0.395698 0.524869
+10 14 17 0.000000 0.403864 0.574885
+10 14 18 0.000000 0.410780 0.618628
+10 14 19 0.000000 0.416721 0.657492
+10 14 20 0.000000 0.421640 0.691245
+10 14 21 0.000000 0.425946 0.721932
+10 14 22 0.000000 0.430968 0.745672
+10 14 23 0.000000 0.436316 0.766253
+10 14 24 0.000000 0.446861 0.782884
+10 14 25 0.000000 0.459138 0.798199
+10 14 26 0.000000 0.480181 0.811471
+10 14 27 0.000000 0.503246 0.824272
+10 14 28 0.000000 0.519888 0.833419
+10 14 29 0.000000 0.535613 0.842045
+10 14 30 0.000000 0.547734 0.848733
+10 14 31 0.000000 0.559615 0.855291
+10 15 0 0.206886 0.311419 0.000000
+10 15 1 0.205183 0.314184 0.000000
+10 15 2 0.203427 0.317009 0.000000
+10 15 3 0.200877 0.320725 0.000000
+10 15 4 0.198089 0.324826 0.000000
+10 15 5 0.193644 0.331632 0.000000
+10 15 6 0.188141 0.339233 0.000000
+10 15 7 0.178054 0.350281 0.000000
+10 15 8 0.165778 0.361323 0.061230
+10 15 9 0.146940 0.372350 0.122943
+10 15 10 0.126922 0.383857 0.184634
+10 15 11 0.104312 0.396416 0.246276
+10 15 12 0.067754 0.408822 0.307346
+10 15 13 0.007950 0.420969 0.367461
+10 15 14 0.000000 0.432438 0.426411
+10 15 15 0.000000 0.443034 0.483864
+10 15 16 0.000000 0.452307 0.537479
+10 15 17 0.000000 0.460255 0.587258
+10 15 18 0.000000 0.467453 0.631583
+10 15 19 0.000000 0.474068 0.671667
+10 15 20 0.000000 0.478927 0.705828
+10 15 21 0.000000 0.482732 0.736436
+10 15 22 0.000000 0.487275 0.760691
+10 15 23 0.000000 0.492152 0.782058
+10 15 24 0.000000 0.501465 0.798333
+10 15 25 0.000000 0.512257 0.812910
+10 15 26 0.000000 0.530031 0.824782
+10 15 27 0.000000 0.549417 0.836030
+10 15 28 0.000000 0.563049 0.843901
+10 15 29 0.000000 0.575860 0.851289
+10 15 30 0.000000 0.586198 0.857121
+10 15 31 0.000000 0.596372 0.862848
+10 16 0 0.213636 0.355829 0.000000
+10 16 1 0.211407 0.358735 0.000000
+10 16 2 0.209116 0.361707 0.000000
+10 16 3 0.205908 0.365650 0.000000
+10 16 4 0.202390 0.369996 0.000000
+10 16 5 0.196710 0.377171 0.000000
+10 16 6 0.189708 0.385125 0.000000
+10 16 7 0.176976 0.396462 0.000000
+10 16 8 0.161390 0.407959 0.014119
+10 16 9 0.137243 0.419936 0.102932
+10 16 10 0.107663 0.432308 0.184136
+10 16 11 0.066134 0.445549 0.248603
+10 16 12 0.019638 0.458632 0.312087
+10 16 13 0.000000 0.471452 0.373933
+10 16 14 0.000000 0.483574 0.434463
+10 16 15 0.000000 0.494799 0.493301
+10 16 16 0.000000 0.504616 0.547880
+10 16 17 0.000000 0.513027 0.598198
+10 16 18 0.000000 0.520454 0.643200
+10 16 19 0.000000 0.527116 0.684066
+10 16 20 0.000000 0.531979 0.718746
+10 16 21 0.000000 0.535761 0.749713
+10 16 22 0.000000 0.539882 0.774129
+10 16 23 0.000000 0.544155 0.795567
+10 16 24 0.000000 0.552131 0.811361
+10 16 25 0.000000 0.561341 0.825272
+10 16 26 0.000000 0.576139 0.836134
+10 16 27 0.000000 0.592227 0.846291
+10 16 28 0.000000 0.603301 0.853244
+10 16 29 0.000000 0.613659 0.859739
+10 16 30 0.000000 0.622464 0.864912
+10 16 31 0.000000 0.631165 0.869997
+10 17 0 0.219604 0.395618 0.000000
+10 17 1 0.216657 0.398930 0.000000
+10 17 2 0.213644 0.402324 0.000000
+10 17 3 0.209631 0.406925 0.000000
+10 17 4 0.205207 0.411971 0.000000
+10 17 5 0.197903 0.420131 0.000000
+10 17 6 0.189187 0.428960 0.000000
+10 17 7 0.174349 0.440688 0.000000
+10 17 8 0.155826 0.452655 0.000000
+10 17 9 0.126246 0.465338 0.071365
+10 17 10 0.083661 0.478373 0.182272
+10 17 11 0.012462 0.492181 0.249181
+10 17 12 0.000000 0.505758 0.314978
+10 17 13 0.000000 0.518952 0.378922
+10 17 14 0.000000 0.531223 0.440941
+10 17 15 0.000000 0.542308 0.500483
+10 17 16 0.000000 0.552627 0.556071
+10 17 17 0.000000 0.562182 0.607706
+10 17 18 0.000000 0.569783 0.653478
+10 17 19 0.000000 0.575866 0.694690
+10 17 20 0.000000 0.580795 0.729998
+10 17 21 0.000000 0.585033 0.761763
+10 17 22 0.000000 0.588789 0.785986
+10 17 23 0.000000 0.592325 0.806781
+10 17 24 0.000000 0.598859 0.821968
+10 17 25 0.000000 0.606392 0.835285
+10 17 26 0.000000 0.618505 0.845525
+10 17 27 0.000000 0.631675 0.855055
+10 17 28 0.000000 0.640644 0.861449
+10 17 29 0.000000 0.649012 0.867395
+10 17 30 0.000000 0.656532 0.872107
+10 17 31 0.000000 0.663996 0.876737
+10 18 0 0.224523 0.435931 0.000000
+10 18 1 0.220900 0.438999 0.000000
+10 18 2 0.217201 0.442144 0.000000
+10 18 3 0.212342 0.446460 0.000000
+10 18 4 0.206987 0.451223 0.000000
+10 18 5 0.198158 0.459118 0.000000
+10 18 6 0.187332 0.467842 0.000000
+10 18 7 0.167849 0.480156 0.000000
+10 18 8 0.140402 0.492602 0.000000
+10 18 9 0.089068 0.505445 0.056207
+10 18 10 0.034700 0.518779 0.179896
+10 18 11 0.000000 0.533197 0.249562
+10 18 12 0.000000 0.547234 0.317614
+10 18 13 0.000000 0.560635 0.382978
+10 18 14 0.000000 0.573350 0.446575
+10 18 15 0.000000 0.585185 0.507899
+10 18 16 0.000000 0.595737 0.564379
+10 18 17 0.000000 0.605006 0.616015
+10 18 18 0.000000 0.612468 0.662050
+10 18 19 0.000000 0.618524 0.703728
+10 18 20 0.000000 0.623331 0.739215
+10 18 21 0.000000 0.627389 0.770986
+10 18 22 0.000000 0.631043 0.795314
+10 18 23 0.000000 0.634513 0.816260
+10 18 24 0.000000 0.640064 0.831091
+10 18 25 0.000000 0.646309 0.843884
+10 18 26 0.000000 0.656293 0.853515
+10 18 27 0.000000 0.667141 0.862417
+10 18 28 0.000000 0.674665 0.868430
+10 18 29 0.000000 0.681715 0.874030
+10 18 30 0.000000 0.687943 0.878377
+10 18 31 0.000000 0.694116 0.882641
+10 19 0 0.228625 0.476654 0.000000
+10 19 1 0.224359 0.478969 0.000000
+10 19 2 0.220001 0.481346 0.000000
+10 19 3 0.214264 0.484643 0.000000
+10 19 4 0.207960 0.488360 0.000000
+10 19 5 0.197683 0.495017 0.000000
+10 19 6 0.184439 0.502874 0.000000
+10 19 7 0.158335 0.515925 0.000000
+10 19 8 0.117311 0.528857 0.000000
+10 19 9 0.031527 0.541432 0.053811
+10 19 10 0.000000 0.554784 0.177120
+10 19 11 0.000000 0.569845 0.249789
+10 19 12 0.000000 0.584313 0.320052
+10 19 13 0.000000 0.597793 0.386308
+10 19 14 0.000000 0.611183 0.451553
+10 19 15 0.000000 0.624458 0.515497
+10 19 16 0.000000 0.635033 0.572776
+10 19 17 0.000000 0.642907 0.623390
+10 19 18 0.000000 0.649986 0.669293
+10 19 19 0.000000 0.656445 0.711533
+10 19 20 0.000000 0.660983 0.746849
+10 19 21 0.000000 0.664368 0.778010
+10 19 22 0.000000 0.668124 0.802676
+10 19 23 0.000000 0.672049 0.824389
+10 19 24 0.000000 0.676974 0.839059
+10 19 25 0.000000 0.682233 0.851382
+10 19 26 0.000000 0.690522 0.860415
+10 19 27 0.000000 0.699511 0.868689
+10 19 28 0.000000 0.706105 0.874459
+10 19 29 0.000000 0.712357 0.879871
+10 19 30 0.000000 0.717287 0.883928
+10 19 31 0.000000 0.722129 0.887894
+10 20 0 0.233196 0.505907 0.000000
+10 20 1 0.228286 0.508283 0.000000
+10 20 2 0.223270 0.510725 0.000000
+10 20 3 0.216655 0.514150 0.000000
+10 20 4 0.209380 0.517986 0.000000
+10 20 5 0.197482 0.524709 0.000000
+10 20 6 0.182292 0.532516 0.000000
+10 20 7 0.152837 0.545020 0.000000
+10 20 8 0.106368 0.557672 0.000000
+10 20 9 0.008857 0.570763 0.052989
+10 20 10 0.000000 0.584484 0.176460
+10 20 11 0.000000 0.599588 0.251096
+10 20 12 0.000000 0.614098 0.322939
+10 20 13 0.000000 0.627617 0.390126
+10 20 14 0.000000 0.640992 0.456041
+10 20 15 0.000000 0.654182 0.520320
+10 20 16 0.000000 0.665045 0.578172
+10 20 17 0.000000 0.673581 0.629599
+10 20 18 0.000000 0.680753 0.675762
+10 20 19 0.000000 0.686866 0.717831
+10 20 20 0.000000 0.691568 0.753246
+10 20 21 0.000000 0.695424 0.784668
+10 20 22 0.000000 0.699068 0.809121
+10 20 23 0.000000 0.702616 0.830407
+10 20 24 0.000000 0.706766 0.844751
+10 20 25 0.000000 0.711117 0.856779
+10 20 26 0.000000 0.717818 0.865471
+10 20 27 0.000000 0.725061 0.873392
+10 20 28 0.000000 0.730455 0.878918
+10 20 29 0.000000 0.735585 0.884102
+10 20 30 0.000000 0.739766 0.887994
+10 20 31 0.000000 0.743883 0.891800
+10 21 0 0.238048 0.528278 0.000000
+10 21 1 0.232495 0.531203 0.000000
+10 21 2 0.226820 0.534211 0.000000
+10 21 3 0.219327 0.538451 0.000000
+10 21 4 0.211067 0.543108 0.000000
+10 21 5 0.197445 0.550676 0.000000
+10 21 6 0.180593 0.558924 0.000000
+10 21 7 0.149749 0.570112 0.000000
+10 21 8 0.102714 0.582023 0.000000
+10 21 9 0.007109 0.596100 0.053110
+10 21 10 0.000000 0.610399 0.177069
+10 21 11 0.000000 0.625189 0.253052
+10 21 12 0.000000 0.639507 0.326094
+10 21 13 0.000000 0.653042 0.394237
+10 21 14 0.000000 0.665987 0.460235
+10 21 15 0.000000 0.678176 0.523477
+10 21 16 0.000000 0.689486 0.581768
+10 21 17 0.000000 0.699918 0.635108
+10 21 18 0.000000 0.707471 0.681765
+10 21 19 0.000000 0.712785 0.723225
+10 21 20 0.000000 0.717913 0.758900
+10 21 21 0.000000 0.722927 0.791104
+10 21 22 0.000000 0.726331 0.815016
+10 21 23 0.000000 0.729003 0.835159
+10 21 24 0.000000 0.732288 0.849075
+10 21 25 0.000000 0.735777 0.860916
+10 21 26 0.000000 0.740953 0.869420
+10 21 27 0.000000 0.746519 0.877153
+10 21 28 0.000000 0.750552 0.882435
+10 21 29 0.000000 0.754366 0.887368
+10 21 30 0.000000 0.758126 0.891170
+10 21 31 0.000000 0.761882 0.894896
+10 22 0 0.240933 0.547098 0.000000
+10 22 1 0.234948 0.550120 0.000000
+10 22 2 0.228824 0.553218 0.000000
+10 22 3 0.220623 0.557465 0.000000
+10 22 4 0.211590 0.562118 0.000000
+10 22 5 0.196723 0.569607 0.000000
+10 22 6 0.172751 0.577827 0.000000
+10 22 7 0.109325 0.589217 0.000000
+10 22 8 0.046171 0.601267 0.000000
+10 22 9 0.000000 0.615296 0.056354
+10 22 10 0.000000 0.629622 0.182353
+10 22 11 0.000000 0.644605 0.259154
+10 22 12 0.000000 0.659006 0.332780
+10 22 13 0.000000 0.672439 0.401113
+10 22 14 0.000000 0.685279 0.466897
+10 22 15 0.000000 0.697357 0.529403
+10 22 16 0.000000 0.708542 0.587233
+10 22 17 0.000000 0.718834 0.640385
+10 22 18 0.000000 0.726441 0.687048
+10 22 19 0.000000 0.731959 0.728663
+10 22 20 0.000000 0.737106 0.764065
+10 22 21 0.000000 0.742030 0.795738
+10 22 22 0.000000 0.745528 0.819430
+10 22 23 0.000000 0.748378 0.839495
+10 22 24 0.000000 0.751353 0.853146
+10 22 25 0.000000 0.754368 0.864659
+10 22 26 0.000000 0.758759 0.872835
+10 22 27 0.000000 0.763468 0.880240
+10 22 28 0.000000 0.766920 0.885347
+10 22 29 0.000000 0.770193 0.890126
+10 22 30 0.000000 0.773379 0.893835
+10 22 31 0.000000 0.776560 0.897472
+10 23 0 0.242924 0.564304 0.000000
+10 23 1 0.236603 0.567216 0.000000
+10 23 2 0.230125 0.570190 0.000000
+10 23 3 0.221295 0.574076 0.000000
+10 23 4 0.211582 0.578350 0.000000
+10 23 5 0.195690 0.585339 0.000000
+10 23 6 0.162118 0.593320 0.000000
+10 23 7 0.051930 0.605602 0.000000
+10 23 8 0.000000 0.618190 0.000000
+10 23 9 0.000000 0.631700 0.061017
+10 23 10 0.000000 0.645803 0.189762
+10 23 11 0.000000 0.661210 0.267143
+10 23 12 0.000000 0.675819 0.341071
+10 23 13 0.000000 0.689097 0.409246
+10 23 14 0.000000 0.701979 0.474680
+10 23 15 0.000000 0.714351 0.536589
+10 23 16 0.000000 0.725151 0.593548
+10 23 17 0.000000 0.734379 0.645557
+10 23 18 0.000000 0.741890 0.692003
+10 23 19 0.000000 0.748066 0.734122
+10 23 20 0.000000 0.753048 0.769007
+10 23 21 0.000000 0.757314 0.799552
+10 23 22 0.000000 0.761059 0.823171
+10 23 23 0.000000 0.764567 0.843642
+10 23 24 0.000000 0.767483 0.857101
+10 23 25 0.000000 0.770202 0.868223
+10 23 26 0.000000 0.774143 0.876007
+10 23 27 0.000000 0.778366 0.883022
+10 23 28 0.000000 0.781593 0.887984
+10 23 29 0.000000 0.784678 0.892654
+10 23 30 0.000000 0.787221 0.896267
+10 23 31 0.000000 0.789729 0.899811
+10 24 0 0.249186 0.579720 0.000000
+10 24 1 0.242101 0.583333 0.000000
+10 24 2 0.234872 0.586994 0.000000
+10 24 3 0.225491 0.591365 0.000000
+10 24 4 0.215265 0.596047 0.000000
+10 24 5 0.199128 0.602899 0.000000
+10 24 6 0.168431 0.610717 0.000000
+10 24 7 0.074642 0.622719 0.000000
+10 24 8 0.000000 0.635039 0.000000
+10 24 9 0.000000 0.648312 0.071711
+10 24 10 0.000000 0.662197 0.206434
+10 24 11 0.000000 0.677429 0.284126
+10 24 12 0.000000 0.691905 0.357926
+10 24 13 0.000000 0.705121 0.425241
+10 24 14 0.000000 0.717775 0.489586
+10 24 15 0.000000 0.729704 0.550113
+10 24 16 0.000000 0.740055 0.605562
+10 24 17 0.000000 0.748828 0.655934
+10 24 18 0.000000 0.756134 0.701239
+10 24 19 0.000000 0.762299 0.742603
+10 24 20 0.000000 0.767152 0.776449
+10 24 21 0.000000 0.771217 0.805784
+10 24 22 0.000000 0.774770 0.828659
+10 24 23 0.000000 0.778090 0.848597
+10 24 24 0.000000 0.780851 0.861691
+10 24 25 0.000000 0.783424 0.872503
+10 24 26 0.000000 0.787173 0.880074
+10 24 27 0.000000 0.791193 0.886897
+10 24 28 0.000000 0.794240 0.891699
+10 24 29 0.000000 0.797148 0.896211
+10 24 30 0.000000 0.799401 0.899672
+10 24 31 0.000000 0.801610 0.903062
+10 25 0 0.256872 0.594540 0.000000
+10 25 1 0.248880 0.599124 0.000000
+10 25 2 0.240769 0.603742 0.000000
+10 25 3 0.230863 0.608881 0.000000
+10 25 4 0.220179 0.614232 0.000000
+10 25 5 0.204056 0.621069 0.000000
+10 25 6 0.180393 0.628749 0.000000
+10 25 7 0.124058 0.640081 0.000000
+10 25 8 0.063759 0.651862 0.000000
+10 25 9 0.000000 0.664993 0.084415
+10 25 10 0.000000 0.678663 0.226195
+10 25 11 0.000000 0.693518 0.304108
+10 25 12 0.000000 0.707747 0.377636
+10 25 13 0.000000 0.720934 0.443856
+10 25 14 0.000000 0.733269 0.506866
+10 25 15 0.000000 0.744510 0.565749
+10 25 16 0.000000 0.754391 0.619475
+10 25 17 0.000000 0.762912 0.668046
+10 25 18 0.000000 0.769976 0.711902
+10 25 19 0.000000 0.775908 0.752093
+10 25 20 0.000000 0.780643 0.784725
+10 25 21 0.000000 0.784660 0.812823
+10 25 22 0.000000 0.787874 0.834729
+10 25 23 0.000000 0.790724 0.853821
+10 25 24 0.000000 0.793297 0.866492
+10 25 25 0.000000 0.795776 0.877022
+10 25 26 0.000000 0.799419 0.884439
+10 25 27 0.000000 0.803329 0.891138
+10 25 28 0.000000 0.806212 0.895773
+10 25 29 0.000000 0.808947 0.900112
+10 25 30 0.000000 0.811027 0.903400
+10 25 31 0.000000 0.813063 0.906617
+10 26 0 0.267713 0.606677 0.000000
+10 26 1 0.259563 0.611430 0.000000
+10 26 2 0.251272 0.616251 0.000000
+10 26 3 0.240863 0.622081 0.000000
+10 26 4 0.229571 0.628254 0.000000
+10 26 5 0.212098 0.636830 0.000000
+10 26 6 0.189403 0.645895 0.000000
+10 26 7 0.144086 0.657076 0.000000
+10 26 8 0.088538 0.668704 0.000000
+10 26 9 0.002295 0.681670 0.103255
+10 26 10 0.000000 0.695045 0.254704
+10 26 11 0.000000 0.709320 0.330399
+10 26 12 0.000000 0.723026 0.401925
+10 26 13 0.000000 0.735785 0.466503
+10 26 14 0.000000 0.747630 0.527753
+10 26 15 0.000000 0.758298 0.584726
+10 26 16 0.000000 0.767684 0.636362
+10 26 17 0.000000 0.775788 0.682660
+10 26 18 0.000000 0.782596 0.724897
+10 26 19 0.000000 0.788395 0.763975
+10 26 20 0.000000 0.792884 0.794837
+10 26 21 0.000000 0.796586 0.820768
+10 26 22 0.000000 0.799633 0.841528
+10 26 23 0.000000 0.802383 0.859939
+10 26 24 0.000000 0.804868 0.872400
+10 26 25 0.000000 0.807267 0.882878
+10 26 26 0.000000 0.810360 0.889657
+10 26 27 0.000000 0.813615 0.895584
+10 26 28 0.000000 0.816331 0.900082
+10 26 29 0.000000 0.818970 0.904378
+10 26 30 0.000000 0.821013 0.907632
+10 26 31 0.000000 0.823017 0.910817
+10 27 0 0.279282 0.618194 0.000000
+10 27 1 0.271146 0.622932 0.000000
+10 27 2 0.262837 0.627781 0.000000
+10 27 3 0.251932 0.634284 0.000000
+10 27 4 0.239997 0.641315 0.000000
+10 27 5 0.220858 0.652035 0.000000
+10 27 6 0.197732 0.662836 0.000000
+10 27 7 0.157333 0.673988 0.000000
+10 27 8 0.103433 0.685550 0.000000
+10 27 9 0.009027 0.698346 0.123511
+10 27 10 0.000000 0.711408 0.285232
+10 27 11 0.000000 0.725055 0.358146
+10 27 12 0.000000 0.738175 0.427270
+10 27 13 0.000000 0.750415 0.490080
+10 27 14 0.000000 0.761729 0.549473
+10 27 15 0.000000 0.771852 0.604475
+10 27 16 0.000000 0.780737 0.653934
+10 27 17 0.000000 0.788386 0.697852
+10 27 18 0.000000 0.794934 0.738429
+10 27 19 0.000000 0.800624 0.776410
+10 27 20 0.000000 0.804836 0.805371
+10 27 21 0.000000 0.808162 0.828922
+10 27 22 0.000000 0.811081 0.848496
+10 27 23 0.000000 0.813816 0.866264
+10 27 24 0.000000 0.816239 0.878564
+10 27 25 0.000000 0.818558 0.889042
+10 27 26 0.000000 0.821001 0.895072
+10 27 27 0.000000 0.823473 0.900077
+10 27 28 0.000000 0.826022 0.904447
+10 27 29 0.000000 0.828582 0.908727
+10 27 30 0.000000 0.830621 0.911980
+10 27 31 0.000000 0.832625 0.915165
+10 28 0 0.287362 0.626334 0.000000
+10 28 1 0.279228 0.631152 0.000000
+10 28 2 0.270916 0.636077 0.000000
+10 28 3 0.259936 0.642595 0.000000
+10 28 4 0.247886 0.649714 0.000000
+10 28 5 0.228346 0.661031 0.000000
+10 28 6 0.204841 0.672574 0.000000
+10 28 7 0.164158 0.685091 0.000000
+10 28 8 0.109305 0.697645 0.000000
+10 28 9 0.011942 0.710311 0.163721
+10 28 10 0.000000 0.723126 0.307291
+10 28 11 0.000000 0.736270 0.377800
+10 28 12 0.000000 0.748958 0.445021
+10 28 13 0.000000 0.760887 0.506760
+10 28 14 0.000000 0.771863 0.564928
+10 28 15 0.000000 0.781615 0.618505
+10 28 16 0.000000 0.790233 0.666898
+10 28 17 0.000000 0.797716 0.710106
+10 28 18 0.000000 0.804037 0.749325
+10 28 19 0.000000 0.809453 0.785440
+10 28 20 0.000000 0.813491 0.813303
+10 28 21 0.000000 0.816701 0.836213
+10 28 22 0.000000 0.819469 0.854788
+10 28 23 0.000000 0.822037 0.871393
+10 28 24 0.000000 0.824349 0.883185
+10 28 25 0.000000 0.826577 0.893373
+10 28 26 0.000000 0.828934 0.899267
+10 28 27 0.000000 0.831321 0.904169
+10 28 28 0.000000 0.833456 0.908119
+10 28 29 0.000000 0.835555 0.911932
+10 28 30 0.000000 0.837565 0.915144
+10 28 31 0.000000 0.839569 0.918316
+10 29 0 0.294943 0.633991 0.000000
+10 29 1 0.286809 0.638903 0.000000
+10 29 2 0.278497 0.643911 0.000000
+10 29 3 0.267503 0.650351 0.000000
+10 29 4 0.255413 0.657447 0.000000
+10 29 5 0.235652 0.669141 0.000000
+10 29 6 0.211776 0.681282 0.000000
+10 29 7 0.170065 0.695364 0.000000
+10 29 8 0.113888 0.709060 0.061242
+10 29 9 0.014312 0.721602 0.206782
+10 29 10 0.000000 0.734181 0.328140
+10 29 11 0.000000 0.746839 0.396299
+10 29 12 0.000000 0.759118 0.461686
+10 29 13 0.000000 0.770765 0.522455
+10 29 14 0.000000 0.781432 0.579488
+10 29 15 0.000000 0.790838 0.631718
+10 29 16 0.000000 0.799220 0.679203
+10 29 17 0.000000 0.806579 0.721941
+10 29 18 0.000000 0.812678 0.759843
+10 29 19 0.000000 0.817797 0.793985
+10 29 20 0.000000 0.821674 0.820862
+10 29 21 0.000000 0.824805 0.843381
+10 29 22 0.000000 0.827420 0.860983
+10 29 23 0.000000 0.829800 0.876350
+10 29 24 0.000000 0.831994 0.887585
+10 29 25 0.000000 0.834128 0.897443
+10 29 26 0.000000 0.836480 0.903287
+10 29 27 0.000000 0.838882 0.908204
+10 29 28 0.000000 0.840568 0.911691
+10 29 29 0.000000 0.842152 0.914974
+10 29 30 0.000000 0.844129 0.918138
+10 29 31 0.000000 0.846133 0.921295
+10 30 0 0.300643 0.639824 0.000000
+10 30 1 0.292509 0.644668 0.000000
+10 30 2 0.284197 0.649617 0.000000
+10 30 3 0.273215 0.656125 0.000000
+10 30 4 0.261135 0.663283 0.000000
+10 30 5 0.241360 0.674986 0.000000
+10 30 6 0.217280 0.687398 0.000000
+10 30 7 0.174541 0.702883 0.019200
+10 30 8 0.117198 0.717616 0.139956
+10 30 9 0.016042 0.730093 0.248333
+10 30 10 0.000000 0.742562 0.343675
+10 30 11 0.000000 0.755014 0.410336
+10 30 12 0.000000 0.767036 0.474595
+10 30 13 0.000000 0.778341 0.534848
+10 30 14 0.000000 0.788722 0.591040
+10 30 15 0.000000 0.797916 0.642012
+10 30 16 0.000000 0.806108 0.688632
+10 30 17 0.000000 0.813297 0.730900
+10 30 18 0.000000 0.819204 0.767734
+10 30 19 0.000000 0.824114 0.800342
+10 30 20 0.000000 0.827900 0.826463
+10 30 21 0.000000 0.831012 0.848693
+10 30 22 0.000000 0.833492 0.865587
+10 30 23 0.000000 0.835684 0.880055
+10 30 24 0.000000 0.837827 0.890884
+10 30 25 0.000000 0.839954 0.900499
+10 30 26 0.000000 0.842294 0.906346
+10 30 27 0.000000 0.844683 0.911325
+10 30 28 0.000000 0.846287 0.914738
+10 30 29 0.000000 0.847779 0.917928
+10 30 30 0.000000 0.849394 0.920715
+10 30 31 0.000000 0.851016 0.923475
+10 31 0 0.306217 0.645536 0.000000
+10 31 1 0.298083 0.650301 0.000000
+10 31 2 0.289772 0.655181 0.000000
+10 31 3 0.278804 0.661768 0.000000
+10 31 4 0.266736 0.668993 0.000000
+10 31 5 0.246962 0.680681 0.000000
+10 31 6 0.222689 0.693342 0.000000
+10 31 7 0.178922 0.710218 0.073379
+10 31 8 0.120424 0.725980 0.218964
+10 31 9 0.017728 0.738397 0.289785
+10 31 10 0.000000 0.750766 0.358856
+10 31 11 0.000000 0.763029 0.424076
+10 31 12 0.000000 0.774804 0.487252
+10 31 13 0.000000 0.785763 0.547020
+10 31 14 0.000000 0.795861 0.602392
+10 31 15 0.000000 0.804852 0.652111
+10 31 16 0.000000 0.812855 0.697869
+10 31 17 0.000000 0.819872 0.739668
+10 31 18 0.000000 0.825589 0.775450
+10 31 19 0.000000 0.830296 0.806553
+10 31 20 0.000000 0.833996 0.831934
+10 31 21 0.000000 0.837093 0.853882
+10 31 22 0.000000 0.839439 0.870085
+10 31 23 0.000000 0.841442 0.883677
+10 31 24 0.000000 0.843539 0.894109
+10 31 25 0.000000 0.845666 0.903487
+10 31 26 0.000000 0.847994 0.909342
+10 31 27 0.000000 0.850368 0.914384
+10 31 28 0.000000 0.851914 0.917750
+10 31 29 0.000000 0.853342 0.920876
+10 31 30 0.000000 0.854572 0.923264
+10 31 31 0.000000 0.855788 0.925603
+11 0 0 0.124679 0.022771 0.027371
+11 0 1 0.125073 0.023018 0.029316
+11 0 2 0.125466 0.023272 0.031318
+11 0 3 0.125860 0.023642 0.034173
+11 0 4 0.126303 0.024028 0.037295
+11 0 5 0.127091 0.024522 0.042278
+11 0 6 0.127773 0.024876 0.047570
+11 0 7 0.127997 0.024630 0.054198
+11 0 8 0.128212 0.023985 0.062377
+11 0 9 0.128398 0.022145 0.075205
+11 0 10 0.129199 0.019495 0.095890
+11 0 11 0.131355 0.015058 0.133863
+11 0 12 0.133516 0.007135 0.171536
+11 0 13 0.135688 0.000000 0.208709
+11 0 14 0.140784 0.000000 0.247345
+11 0 15 0.149640 0.000000 0.287862
+11 0 16 0.157908 0.000000 0.325429
+11 0 17 0.165588 0.000000 0.360047
+11 0 18 0.173089 0.000000 0.392647
+11 0 19 0.180452 0.000000 0.423680
+11 0 20 0.187134 0.000000 0.452028
+11 0 21 0.193409 0.000000 0.478765
+11 0 22 0.199220 0.000000 0.503163
+11 0 23 0.204822 0.000000 0.526498
+11 0 24 0.210259 0.000000 0.554429
+11 0 25 0.215641 0.000000 0.583893
+11 0 26 0.221877 0.000000 0.621698
+11 0 27 0.228310 0.000000 0.661427
+11 0 28 0.230555 0.000000 0.688076
+11 0 29 0.232202 0.009862 0.712857
+11 0 30 0.233463 0.108654 0.731147
+11 0 31 0.234700 0.209091 0.749005
+11 1 0 0.128880 0.026743 0.025837
+11 1 1 0.129039 0.027020 0.028728
+11 1 2 0.129213 0.027299 0.031613
+11 1 3 0.129607 0.027606 0.034406
+11 1 4 0.130054 0.027936 0.037472
+11 1 5 0.130870 0.028429 0.042455
+11 1 6 0.131613 0.028861 0.048058
+11 1 7 0.132044 0.029024 0.056348
+11 1 8 0.132318 0.028772 0.065766
+11 1 9 0.132126 0.027279 0.078563
+11 1 10 0.132731 0.024954 0.099365
+11 1 11 0.135089 0.020799 0.137778
+11 1 12 0.137378 0.013586 0.176008
+11 1 13 0.139549 0.001276 0.213933
+11 1 14 0.144546 0.000000 0.253088
+11 1 15 0.153173 0.000000 0.293823
+11 1 16 0.161211 0.000000 0.331892
+11 1 17 0.168659 0.000000 0.367295
+11 1 18 0.175945 0.000000 0.400328
+11 1 19 0.183105 0.000000 0.431519
+11 1 20 0.189601 0.000000 0.460121
+11 1 21 0.195701 0.000000 0.487171
+11 1 22 0.201298 0.000000 0.511343
+11 1 23 0.206668 0.000000 0.534208
+11 1 24 0.210781 0.000000 0.560634
+11 1 25 0.214476 0.000000 0.588247
+11 1 26 0.220395 0.000000 0.625629
+11 1 27 0.226828 0.000000 0.665264
+11 1 28 0.229073 0.000000 0.691957
+11 1 29 0.230719 0.019217 0.716801
+11 1 30 0.231925 0.118320 0.735096
+11 1 31 0.233102 0.218758 0.752954
+11 2 0 0.133166 0.030800 0.024276
+11 2 1 0.133102 0.031101 0.028057
+11 2 2 0.133066 0.031400 0.031776
+11 2 3 0.133445 0.031655 0.034582
+11 2 4 0.133882 0.031939 0.037659
+11 2 5 0.134725 0.032433 0.042642
+11 2 6 0.135529 0.032941 0.048558
+11 2 7 0.136169 0.033511 0.058514
+11 2 8 0.136505 0.033654 0.069181
+11 2 9 0.135927 0.032516 0.081978
+11 2 10 0.136332 0.030528 0.102917
+11 2 11 0.138899 0.026669 0.141771
+11 2 12 0.141318 0.020184 0.180565
+11 2 13 0.143492 0.009322 0.219261
+11 2 14 0.148386 0.000000 0.258947
+11 2 15 0.156777 0.000000 0.299906
+11 2 16 0.164580 0.000000 0.338492
+11 2 17 0.171793 0.000000 0.374704
+11 2 18 0.178864 0.000000 0.408180
+11 2 19 0.185824 0.000000 0.439528
+11 2 20 0.192131 0.000000 0.468385
+11 2 21 0.198046 0.000000 0.495747
+11 2 22 0.203422 0.000000 0.519692
+11 2 23 0.208553 0.000000 0.542085
+11 2 24 0.211400 0.000000 0.567066
+11 2 25 0.213486 0.000000 0.592910
+11 2 26 0.219008 0.000000 0.629789
+11 2 27 0.225322 0.000000 0.669215
+11 2 28 0.227554 0.000000 0.695930
+11 2 29 0.229202 0.028766 0.720830
+11 2 30 0.230355 0.128192 0.739128
+11 2 31 0.231474 0.228633 0.756986
+11 3 0 0.138729 0.036118 0.022314
+11 3 1 0.138606 0.036356 0.026124
+11 3 2 0.138499 0.036602 0.029945
+11 3 3 0.138644 0.036981 0.033918
+11 3 4 0.138876 0.037375 0.038018
+11 3 5 0.139719 0.037868 0.043001
+11 3 6 0.140573 0.038447 0.049240
+11 3 7 0.141479 0.039393 0.060922
+11 3 8 0.141889 0.039944 0.072993
+11 3 9 0.140814 0.039309 0.086229
+11 3 10 0.140968 0.037825 0.107617
+11 3 11 0.143826 0.034469 0.146938
+11 3 12 0.146439 0.028987 0.186412
+11 3 13 0.148644 0.019960 0.226142
+11 3 14 0.153404 0.000000 0.266548
+11 3 15 0.161451 0.000000 0.307823
+11 3 16 0.168936 0.000000 0.347147
+11 3 17 0.175859 0.000000 0.384521
+11 3 18 0.182723 0.000000 0.418593
+11 3 19 0.189542 0.000000 0.450099
+11 3 20 0.195595 0.000000 0.479210
+11 3 21 0.201188 0.000000 0.506885
+11 3 22 0.206222 0.000000 0.530584
+11 3 23 0.211003 0.000000 0.552476
+11 3 24 0.213458 0.000000 0.576909
+11 3 25 0.215138 0.000000 0.602188
+11 3 26 0.219046 0.000000 0.637382
+11 3 27 0.223469 0.000000 0.674864
+11 3 28 0.225489 0.000000 0.701281
+11 3 29 0.227165 0.041237 0.726117
+11 3 30 0.228293 0.141138 0.744411
+11 3 31 0.229385 0.241643 0.762269
+11 4 0 0.144803 0.041924 0.020182
+11 4 1 0.144635 0.042106 0.024015
+11 4 2 0.144474 0.042308 0.027923
+11 4 3 0.144406 0.042795 0.032941
+11 4 4 0.144444 0.043284 0.037984
+11 4 5 0.145221 0.043777 0.043196
+11 4 6 0.146065 0.044418 0.049904
+11 4 7 0.147207 0.045702 0.063100
+11 4 8 0.147697 0.046648 0.076519
+11 4 9 0.146235 0.046584 0.090607
+11 4 10 0.146192 0.045680 0.112749
+11 4 11 0.149267 0.042930 0.152607
+11 4 12 0.152028 0.038578 0.192839
+11 4 13 0.154264 0.031556 0.233693
+11 4 14 0.158874 0.000000 0.274887
+11 4 15 0.166537 0.000000 0.316517
+11 4 16 0.173671 0.000000 0.356646
+11 4 17 0.180278 0.000000 0.395275
+11 4 18 0.186912 0.000000 0.429988
+11 4 19 0.193568 0.000000 0.461656
+11 4 20 0.199347 0.000000 0.491052
+11 4 21 0.204600 0.000000 0.519086
+11 4 22 0.209273 0.000000 0.542535
+11 4 23 0.213682 0.000000 0.563899
+11 4 24 0.215761 0.000000 0.587815
+11 4 25 0.217063 0.000000 0.612581
+11 4 26 0.219171 0.000000 0.645851
+11 4 27 0.221466 0.000000 0.681083
+11 4 28 0.223226 0.000000 0.707156
+11 4 29 0.224909 0.054914 0.731920
+11 4 30 0.226018 0.155324 0.750203
+11 4 31 0.227088 0.255885 0.768053
+11 5 0 0.154452 0.051150 0.016868
+11 5 1 0.154344 0.051332 0.020671
+11 5 2 0.154234 0.051534 0.024562
+11 5 3 0.154107 0.052021 0.029768
+11 5 4 0.154027 0.052509 0.035204
+11 5 5 0.154276 0.052999 0.042244
+11 5 6 0.154697 0.053650 0.050445
+11 5 7 0.155867 0.054997 0.063671
+11 5 8 0.156474 0.056250 0.078046
+11 5 9 0.155396 0.057223 0.095868
+11 5 10 0.155525 0.057445 0.120899
+11 5 11 0.158307 0.056015 0.161792
+11 5 12 0.160896 0.053685 0.203329
+11 5 13 0.163163 0.049856 0.245939
+11 5 14 0.167500 0.014977 0.288395
+11 5 15 0.174499 0.000000 0.330652
+11 5 16 0.181056 0.000000 0.372053
+11 5 17 0.187172 0.000000 0.412595
+11 5 18 0.193412 0.000000 0.448253
+11 5 19 0.199748 0.000000 0.480112
+11 5 20 0.205118 0.000000 0.510010
+11 5 21 0.209909 0.000000 0.538733
+11 5 22 0.214076 0.000000 0.561902
+11 5 23 0.217960 0.000000 0.582548
+11 5 24 0.219776 0.000000 0.606166
+11 5 25 0.220903 0.000000 0.630775
+11 5 26 0.219905 0.000000 0.660446
+11 5 27 0.218417 0.000000 0.691286
+11 5 28 0.219577 0.000000 0.716702
+11 5 29 0.221117 0.077036 0.741342
+11 5 30 0.222243 0.178182 0.759557
+11 5 31 0.223341 0.278743 0.777343
+11 6 0 0.164832 0.061024 0.011590
+11 6 1 0.164799 0.061388 0.016358
+11 6 2 0.164757 0.061760 0.021165
+11 6 3 0.164582 0.062247 0.026554
+11 6 4 0.164400 0.062734 0.032344
+11 6 5 0.164170 0.063216 0.040935
+11 6 6 0.164128 0.063856 0.050470
+11 6 7 0.164901 0.065182 0.064092
+11 6 8 0.165348 0.066710 0.079817
+11 6 9 0.164819 0.068845 0.101848
+11 6 10 0.165166 0.070301 0.130112
+11 6 11 0.167440 0.070265 0.172086
+11 6 12 0.169760 0.069955 0.215015
+11 6 13 0.172156 0.069187 0.259534
+11 6 14 0.176129 0.040665 0.303457
+11 6 15 0.182130 0.000000 0.346613
+11 6 16 0.188012 0.000000 0.389278
+11 6 17 0.193774 0.000000 0.431452
+11 6 18 0.199538 0.000000 0.468169
+11 6 19 0.205304 0.000000 0.500642
+11 6 20 0.210240 0.000000 0.531109
+11 6 21 0.214677 0.000000 0.560373
+11 6 22 0.218252 0.000000 0.583492
+11 6 23 0.221433 0.000000 0.603818
+11 6 24 0.222692 0.000000 0.626859
+11 6 25 0.223309 0.000000 0.650804
+11 6 26 0.219718 0.000000 0.677461
+11 6 27 0.215156 0.000000 0.704745
+11 6 28 0.215418 0.006688 0.729020
+11 6 29 0.216368 0.117432 0.752866
+11 6 30 0.216989 0.211380 0.770503
+11 6 31 0.217589 0.304209 0.787727
+11 7 0 0.178375 0.073705 0.000000
+11 7 1 0.178490 0.075039 0.007850
+11 7 2 0.178586 0.076321 0.017614
+11 7 3 0.178411 0.076809 0.023164
+11 7 4 0.178196 0.077292 0.029137
+11 7 5 0.177700 0.077740 0.038074
+11 7 6 0.177022 0.078280 0.048261
+11 7 7 0.175556 0.079221 0.063864
+11 7 8 0.174641 0.080886 0.082643
+11 7 9 0.175377 0.084718 0.110950
+11 7 10 0.176143 0.087880 0.143929
+11 7 11 0.176977 0.089568 0.187190
+11 7 12 0.178605 0.091266 0.231887
+11 7 13 0.181558 0.092981 0.278978
+11 7 14 0.184773 0.082531 0.325254
+11 7 15 0.188327 0.056439 0.370481
+11 7 16 0.193106 0.038261 0.414385
+11 7 17 0.199110 0.027997 0.456965
+11 7 18 0.204047 0.023966 0.495237
+11 7 19 0.208153 0.024784 0.530157
+11 7 20 0.212544 0.026299 0.561484
+11 7 21 0.217105 0.028233 0.590654
+11 7 22 0.219709 0.031551 0.614713
+11 7 23 0.221423 0.035499 0.636449
+11 7 24 0.220845 0.046429 0.657699
+11 7 25 0.219503 0.059686 0.678787
+11 7 26 0.215544 0.085237 0.704961
+11 7 27 0.210982 0.113625 0.732309
+11 7 28 0.209043 0.173102 0.753354
+11 7 29 0.207478 0.237020 0.773500
+11 7 30 0.205332 0.289381 0.788350
+11 7 31 0.203148 0.340971 0.802846
+11 8 0 0.190747 0.087084 0.000000
+11 8 1 0.190914 0.089052 0.000000
+11 8 2 0.191063 0.090945 0.005035
+11 8 3 0.190954 0.091699 0.012905
+11 8 4 0.190787 0.092482 0.021263
+11 8 5 0.190210 0.093469 0.033042
+11 8 6 0.189174 0.094543 0.045973
+11 8 7 0.186147 0.095995 0.063898
+11 8 8 0.184195 0.098355 0.085624
+11 8 9 0.185465 0.103438 0.118755
+11 8 10 0.186244 0.108045 0.155618
+11 8 11 0.185939 0.111604 0.200689
+11 8 12 0.186833 0.115293 0.247361
+11 8 13 0.189724 0.119201 0.296703
+11 8 14 0.192002 0.122650 0.345058
+11 8 15 0.193494 0.125509 0.392146
+11 8 16 0.197185 0.127708 0.437368
+11 8 17 0.203075 0.129246 0.480722
+11 8 18 0.207208 0.130770 0.520454
+11 8 19 0.209974 0.132285 0.557368
+11 8 20 0.213775 0.134879 0.589398
+11 8 21 0.218197 0.138121 0.618497
+11 8 22 0.219940 0.143659 0.643202
+11 8 23 0.220465 0.150240 0.665910
+11 8 24 0.216572 0.167862 0.685813
+11 8 25 0.211207 0.189164 0.704782
+11 8 26 0.205802 0.230223 0.730056
+11 8 27 0.200388 0.275841 0.756784
+11 8 28 0.196137 0.306323 0.774954
+11 8 29 0.192052 0.334644 0.791901
+11 8 30 0.187546 0.355445 0.804355
+11 8 31 0.183011 0.375744 0.816509
+11 9 0 0.199604 0.102556 0.000000
+11 9 1 0.199538 0.104148 0.000000
+11 9 2 0.199487 0.105755 0.000000
+11 9 3 0.199644 0.107573 0.000000
+11 9 4 0.199768 0.109570 0.000000
+11 9 5 0.199662 0.112814 0.021493
+11 9 6 0.199098 0.116321 0.043445
+11 9 7 0.196546 0.120973 0.064715
+11 9 8 0.194535 0.125709 0.089068
+11 9 9 0.194148 0.130698 0.122673
+11 9 10 0.193714 0.135965 0.160918
+11 9 11 0.193175 0.141840 0.209374
+11 9 12 0.193204 0.147472 0.258644
+11 9 13 0.194181 0.152696 0.309271
+11 9 14 0.194988 0.157529 0.358888
+11 9 15 0.195576 0.161859 0.407204
+11 9 16 0.198222 0.165577 0.453979
+11 9 17 0.202927 0.168683 0.499210
+11 9 18 0.206326 0.171300 0.540118
+11 9 19 0.208711 0.173536 0.577663
+11 9 20 0.211786 0.176617 0.609929
+11 9 21 0.215277 0.180204 0.639029
+11 9 22 0.216488 0.186238 0.663496
+11 9 23 0.216663 0.193384 0.685858
+11 9 24 0.205022 0.210162 0.705745
+11 9 25 0.189442 0.230151 0.724808
+11 9 26 0.179353 0.268691 0.747933
+11 9 27 0.170531 0.311513 0.771996
+11 9 28 0.163639 0.339969 0.788352
+11 9 29 0.157022 0.366372 0.803607
+11 9 30 0.151372 0.385697 0.814837
+11 9 31 0.145787 0.404550 0.825799
+11 10 0 0.209798 0.123978 0.000000
+11 10 1 0.209602 0.125489 0.000000
+11 10 2 0.209434 0.127072 0.000000
+11 10 3 0.209683 0.129741 0.000000
+11 10 4 0.209908 0.132694 0.000000
+11 10 5 0.209965 0.137637 0.000000
+11 10 6 0.209513 0.142890 0.020019
+11 10 7 0.206850 0.149487 0.055577
+11 10 8 0.204437 0.155832 0.091073
+11 10 9 0.202776 0.161422 0.126385
+11 10 10 0.201112 0.167654 0.166686
+11 10 11 0.199441 0.175299 0.217961
+11 10 12 0.198155 0.182504 0.269497
+11 10 13 0.197509 0.188977 0.321469
+11 10 14 0.196747 0.195075 0.372584
+11 10 15 0.195837 0.200691 0.422597
+11 10 16 0.197291 0.205796 0.470944
+11 10 17 0.201108 0.210391 0.517624
+11 10 18 0.203595 0.214120 0.559563
+11 10 19 0.205048 0.217176 0.597816
+11 10 20 0.207219 0.220780 0.630322
+11 10 21 0.209822 0.224714 0.659382
+11 10 22 0.210033 0.230967 0.683768
+11 10 23 0.209158 0.238275 0.706030
+11 10 24 0.191797 0.254218 0.725631
+11 10 25 0.168942 0.273038 0.744346
+11 10 26 0.155448 0.308635 0.765185
+11 10 27 0.144115 0.348103 0.786513
+11 10 28 0.136305 0.374499 0.801150
+11 10 29 0.128999 0.399027 0.814830
+11 10 30 0.123426 0.417083 0.825000
+11 10 31 0.117970 0.434707 0.834937
+11 11 0 0.222937 0.158489 0.000000
+11 11 1 0.222832 0.160568 0.000000
+11 11 2 0.222730 0.162706 0.000000
+11 11 3 0.222691 0.165754 0.000000
+11 11 4 0.222600 0.169098 0.000000
+11 11 5 0.222141 0.174514 0.000000
+11 11 6 0.221006 0.179999 0.000000
+11 11 7 0.216945 0.185780 0.024538
+11 11 8 0.213377 0.192045 0.089911
+11 11 9 0.211284 0.199764 0.129648
+11 11 10 0.208352 0.207636 0.173483
+11 11 11 0.203576 0.215845 0.226332
+11 11 12 0.199980 0.223816 0.279405
+11 11 13 0.198351 0.231390 0.332851
+11 11 14 0.195809 0.238491 0.385988
+11 11 15 0.192093 0.244983 0.438728
+11 11 16 0.192028 0.251184 0.488689
+11 11 17 0.195613 0.257096 0.535873
+11 11 18 0.196793 0.261983 0.578525
+11 11 19 0.196103 0.266073 0.617654
+11 11 20 0.196977 0.270281 0.650410
+11 11 21 0.198790 0.274560 0.679342
+11 11 22 0.196972 0.280425 0.703991
+11 11 23 0.193505 0.287011 0.726692
+11 11 24 0.174889 0.302136 0.745414
+11 11 25 0.151223 0.320108 0.762810
+11 11 26 0.137139 0.351824 0.781058
+11 11 27 0.125267 0.386712 0.799502
+11 11 28 0.120334 0.410975 0.812626
+11 11 29 0.116393 0.433721 0.824990
+11 11 30 0.113583 0.450962 0.834461
+11 11 31 0.110848 0.467837 0.843740
+11 12 0 0.235451 0.194556 0.000000
+11 12 1 0.235260 0.197106 0.000000
+11 12 2 0.235056 0.199711 0.000000
+11 12 3 0.234664 0.203136 0.000000
+11 12 4 0.234176 0.206886 0.000000
+11 12 5 0.233022 0.212915 0.000000
+11 12 6 0.231148 0.219005 0.000000
+11 12 7 0.226153 0.225360 0.002804
+11 12 8 0.221612 0.232433 0.087866
+11 12 9 0.218434 0.241661 0.131539
+11 12 10 0.213995 0.250843 0.178687
+11 12 11 0.206779 0.259921 0.233485
+11 12 12 0.200704 0.268873 0.288491
+11 12 13 0.196530 0.277616 0.343847
+11 12 14 0.191592 0.285754 0.398958
+11 12 15 0.185671 0.293112 0.453754
+11 12 16 0.181516 0.300269 0.505219
+11 12 17 0.179127 0.307227 0.553351
+11 12 18 0.176899 0.313034 0.596735
+11 12 19 0.174795 0.317946 0.636424
+11 12 20 0.174504 0.322590 0.669612
+11 12 21 0.175301 0.327073 0.698899
+11 12 22 0.172270 0.332652 0.723645
+11 12 23 0.167501 0.338729 0.746328
+11 12 24 0.151488 0.352755 0.764278
+11 12 25 0.131727 0.369432 0.780650
+11 12 26 0.119571 0.397557 0.796744
+11 12 27 0.109169 0.428323 0.812774
+11 12 28 0.106085 0.450344 0.824506
+11 12 29 0.104047 0.471114 0.835624
+11 12 30 0.102700 0.487142 0.844279
+11 12 31 0.101400 0.502854 0.852769
+11 13 0 0.246922 0.233216 0.000000
+11 13 1 0.246352 0.236079 0.000000
+11 13 2 0.245765 0.239000 0.000000
+11 13 3 0.244909 0.242797 0.000000
+11 13 4 0.243893 0.246980 0.000000
+11 13 5 0.241748 0.253855 0.000000
+11 13 6 0.239038 0.261175 0.000000
+11 13 7 0.233879 0.270420 0.000000
+11 13 8 0.228672 0.279780 0.084350
+11 13 9 0.223324 0.289484 0.131140
+11 13 10 0.216976 0.299423 0.181236
+11 13 11 0.208431 0.309878 0.238605
+11 13 12 0.199593 0.320172 0.296208
+11 13 13 0.190270 0.330198 0.354199
+11 13 14 0.181909 0.339429 0.411204
+11 13 15 0.174785 0.347636 0.466941
+11 13 16 0.162256 0.355516 0.519721
+11 13 17 0.144323 0.363067 0.569546
+11 13 18 0.135182 0.369399 0.613689
+11 13 19 0.132881 0.374782 0.653411
+11 13 20 0.131646 0.379581 0.687336
+11 13 21 0.131050 0.384031 0.717781
+11 13 22 0.128168 0.389493 0.742352
+11 13 23 0.124245 0.395415 0.764252
+11 13 24 0.117267 0.407874 0.781609
+11 13 25 0.109271 0.422512 0.797450
+11 13 26 0.103236 0.447527 0.812119
+11 13 27 0.097653 0.474936 0.826517
+11 13 28 0.094705 0.494531 0.837057
+11 13 29 0.092134 0.513009 0.847047
+11 13 30 0.090087 0.527156 0.854690
+11 13 31 0.088075 0.541014 0.862177
+11 14 0 0.258431 0.277730 0.000000
+11 14 1 0.257521 0.280672 0.000000
+11 14 2 0.256586 0.283673 0.000000
+11 14 3 0.255266 0.287570 0.000000
+11 14 4 0.253732 0.291875 0.000000
+11 14 5 0.250699 0.299033 0.000000
+11 14 6 0.247004 0.306902 0.000000
+11 14 7 0.240440 0.317855 0.000000
+11 14 8 0.233544 0.328683 0.055409
+11 14 9 0.225654 0.339134 0.119482
+11 14 10 0.216579 0.349997 0.182397
+11 14 11 0.204898 0.361765 0.242765
+11 14 12 0.191238 0.373279 0.303045
+11 14 13 0.174279 0.384367 0.363179
+11 14 14 0.160952 0.394662 0.422016
+11 14 15 0.152293 0.403936 0.479186
+11 14 16 0.137559 0.412448 0.533140
+11 14 17 0.116750 0.420196 0.583877
+11 14 18 0.105326 0.426939 0.628801
+11 14 19 0.101202 0.432902 0.669203
+11 14 20 0.098761 0.437744 0.703781
+11 14 21 0.097331 0.441914 0.734865
+11 14 22 0.093516 0.447087 0.759511
+11 14 23 0.088617 0.452716 0.781230
+11 14 24 0.086164 0.463675 0.798090
+11 14 25 0.084526 0.476411 0.813332
+11 14 26 0.082202 0.498106 0.826642
+11 14 27 0.079719 0.521869 0.839507
+11 14 28 0.076351 0.538763 0.848808
+11 14 29 0.072857 0.554676 0.857601
+11 14 30 0.070936 0.566965 0.864319
+11 14 31 0.069121 0.579013 0.870899
+11 15 0 0.269989 0.329771 0.000000
+11 15 1 0.268789 0.332491 0.000000
+11 15 2 0.267552 0.335268 0.000000
+11 15 3 0.265766 0.338914 0.000000
+11 15 4 0.263730 0.342943 0.000000
+11 15 5 0.259940 0.349658 0.000000
+11 15 6 0.255067 0.357203 0.000000
+11 15 7 0.245502 0.368344 0.000000
+11 15 8 0.235601 0.379587 0.000000
+11 15 9 0.224693 0.391133 0.093346
+11 15 10 0.211838 0.403133 0.181772
+11 15 11 0.194699 0.416133 0.245689
+11 15 12 0.173567 0.428708 0.308752
+11 15 13 0.145778 0.440576 0.370393
+11 15 14 0.125501 0.451899 0.430983
+11 15 15 0.114880 0.462520 0.490222
+11 15 16 0.105871 0.471546 0.545164
+11 15 17 0.098475 0.478979 0.595810
+11 15 18 0.090719 0.485991 0.641544
+11 15 19 0.082681 0.492676 0.683456
+11 15 20 0.078699 0.497415 0.718582
+11 15 21 0.077150 0.500987 0.749636
+11 15 22 0.071016 0.505650 0.774678
+11 15 23 0.062797 0.510809 0.796989
+11 15 24 0.059069 0.520354 0.813481
+11 15 25 0.056838 0.531361 0.828034
+11 15 26 0.055126 0.549467 0.840072
+11 15 27 0.053532 0.569211 0.851529
+11 15 28 0.049030 0.583052 0.859530
+11 15 29 0.044113 0.596051 0.867036
+11 15 30 0.043382 0.606512 0.872940
+11 15 31 0.042930 0.616803 0.878738
+11 16 0 0.279890 0.376390 0.000000
+11 16 1 0.278298 0.379251 0.000000
+11 16 2 0.276662 0.382174 0.000000
+11 16 3 0.274355 0.386023 0.000000
+11 16 4 0.271738 0.390273 0.000000
+11 16 5 0.266962 0.397332 0.000000
+11 16 6 0.260859 0.405215 0.000000
+11 16 7 0.249011 0.416670 0.000000
+11 16 8 0.236584 0.428355 0.000000
+11 16 9 0.222423 0.440729 0.073231
+11 16 10 0.204467 0.453534 0.179868
+11 16 11 0.178167 0.467288 0.246926
+11 16 12 0.151247 0.480605 0.312646
+11 16 13 0.123292 0.493195 0.376139
+11 16 14 0.102141 0.505156 0.438408
+11 16 15 0.089738 0.516307 0.499106
+11 16 16 0.081132 0.525819 0.555084
+11 16 17 0.076322 0.533689 0.606343
+11 16 18 0.058975 0.540919 0.652839
+11 16 19 0.031876 0.547651 0.695631
+11 16 20 0.020635 0.552348 0.731372
+11 16 21 0.018908 0.555825 0.762882
+11 16 22 0.013330 0.560060 0.788067
+11 16 23 0.006000 0.564640 0.810376
+11 16 24 0.002762 0.572781 0.826350
+11 16 25 0.000887 0.582109 0.840213
+11 16 26 0.000000 0.597201 0.851334
+11 16 27 0.000000 0.613622 0.861822
+11 16 28 0.000000 0.624881 0.868920
+11 16 29 0.000000 0.635403 0.875533
+11 16 30 0.000000 0.644283 0.880824
+11 16 31 0.000000 0.653054 0.886027
+11 17 0 0.288133 0.417589 0.000000
+11 17 1 0.286051 0.420953 0.000000
+11 17 2 0.283918 0.424389 0.000000
+11 17 3 0.281031 0.428896 0.000000
+11 17 4 0.277756 0.433864 0.000000
+11 17 5 0.271763 0.442054 0.000000
+11 17 6 0.264378 0.450939 0.000000
+11 17 7 0.250966 0.462834 0.000000
+11 17 8 0.236494 0.474989 0.000000
+11 17 9 0.218843 0.487924 0.059138
+11 17 10 0.194468 0.501201 0.176685
+11 17 11 0.155302 0.515230 0.246475
+11 17 12 0.124277 0.528969 0.314727
+11 17 13 0.106819 0.542223 0.380415
+11 17 14 0.090872 0.554433 0.444292
+11 17 15 0.076869 0.565299 0.505839
+11 17 16 0.063342 0.575264 0.562900
+11 17 17 0.050291 0.584327 0.615475
+11 17 18 0.010095 0.591725 0.662687
+11 17 19 0.000000 0.597829 0.705728
+11 17 20 0.000000 0.602545 0.742151
+11 17 21 0.000000 0.606428 0.774605
+11 17 22 0.000000 0.610316 0.799675
+11 17 23 0.000000 0.614208 0.821389
+11 17 24 0.000000 0.620956 0.836697
+11 17 25 0.000000 0.628655 0.849868
+11 17 26 0.000000 0.641307 0.860428
+11 17 27 0.000000 0.655102 0.870386
+11 17 28 0.000000 0.664250 0.876979
+11 17 29 0.000000 0.672733 0.883092
+11 17 30 0.000000 0.680281 0.887971
+11 17 31 0.000000 0.687766 0.892767
+11 18 0 0.295327 0.459683 0.000000
+11 18 1 0.292769 0.462845 0.000000
+11 18 2 0.290154 0.466074 0.000000
+11 18 3 0.286673 0.470323 0.000000
+11 18 4 0.282738 0.475037 0.000000
+11 18 5 0.275626 0.482998 0.000000
+11 18 6 0.266782 0.491806 0.000000
+11 18 7 0.250436 0.504281 0.000000
+11 18 8 0.231427 0.516902 0.000000
+11 18 9 0.204432 0.529959 0.050907
+11 18 10 0.174230 0.543463 0.172723
+11 18 11 0.136971 0.557947 0.245725
+11 18 12 0.108534 0.572086 0.316564
+11 18 13 0.094801 0.585648 0.383796
+11 18 14 0.069774 0.598354 0.449265
+11 18 15 0.030225 0.609961 0.512466
+11 18 16 0.004540 0.620178 0.570450
+11 18 17 0.000000 0.629005 0.623218
+11 18 18 0.000000 0.636396 0.670844
+11 18 19 0.000000 0.642670 0.714473
+11 18 20 0.000000 0.647307 0.751110
+11 18 21 0.000000 0.650962 0.783551
+11 18 22 0.000000 0.654729 0.808755
+11 18 23 0.000000 0.658548 0.830668
+11 18 24 0.000000 0.664266 0.845600
+11 18 25 0.000000 0.670617 0.858204
+11 18 26 0.000000 0.680988 0.868227
+11 18 27 0.000000 0.692288 0.877653
+11 18 28 0.000000 0.699879 0.883896
+11 18 29 0.000000 0.706941 0.889685
+11 18 30 0.000000 0.713144 0.894194
+11 18 31 0.000000 0.719290 0.898618
+11 19 0 0.301706 0.502475 0.000000
+11 19 1 0.298685 0.504884 0.000000
+11 19 2 0.295597 0.507347 0.000000
+11 19 3 0.291509 0.510626 0.000000
+11 19 4 0.286912 0.514329 0.000000
+11 19 5 0.278759 0.521005 0.000000
+11 19 6 0.268319 0.528897 0.000000
+11 19 7 0.247971 0.542061 0.000000
+11 19 8 0.222488 0.555143 0.000000
+11 19 9 0.181597 0.567982 0.047238
+11 19 10 0.146028 0.581521 0.168155
+11 19 11 0.122165 0.596600 0.244742
+11 19 12 0.101523 0.611122 0.318210
+11 19 13 0.086249 0.624714 0.386480
+11 19 14 0.041030 0.638110 0.453530
+11 19 15 0.000000 0.651255 0.519012
+11 19 16 0.000000 0.661567 0.577795
+11 19 17 0.000000 0.669047 0.629880
+11 19 18 0.000000 0.676294 0.677688
+11 19 19 0.000000 0.683361 0.722169
+11 19 20 0.000000 0.687843 0.758653
+11 19 21 0.000000 0.690776 0.790339
+11 19 22 0.000000 0.694597 0.815868
+11 19 23 0.000000 0.698823 0.838597
+11 19 24 0.000000 0.703794 0.853380
+11 19 25 0.000000 0.709013 0.865514
+11 19 26 0.000000 0.717228 0.875018
+11 19 27 0.000000 0.726135 0.883913
+11 19 28 0.000000 0.732602 0.889925
+11 19 29 0.000000 0.738720 0.895526
+11 19 30 0.000000 0.743571 0.899699
+11 19 31 0.000000 0.748337 0.903778
+11 20 0 0.307677 0.532797 0.000000
+11 20 1 0.304193 0.535237 0.000000
+11 20 2 0.300633 0.537735 0.000000
+11 20 3 0.295938 0.541098 0.000000
+11 20 4 0.290655 0.544882 0.000000
+11 20 5 0.281258 0.551605 0.000000
+11 20 6 0.269402 0.559429 0.000000
+11 20 7 0.246884 0.572028 0.000000
+11 20 8 0.218407 0.584843 0.000000
+11 20 9 0.172057 0.598307 0.045710
+11 20 10 0.134118 0.612322 0.166489
+11 20 11 0.114686 0.627548 0.245323
+11 20 12 0.088481 0.642181 0.320576
+11 20 13 0.050989 0.655824 0.389862
+11 20 14 0.000000 0.669175 0.457654
+11 20 15 0.000000 0.682149 0.523525
+11 20 16 0.000000 0.692731 0.582913
+11 20 17 0.000000 0.700922 0.635816
+11 20 18 0.000000 0.708315 0.683896
+11 20 19 0.000000 0.715088 0.728225
+11 20 20 0.000000 0.719783 0.764819
+11 20 21 0.000000 0.723229 0.796771
+11 20 22 0.000000 0.726898 0.822081
+11 20 23 0.000000 0.730667 0.844371
+11 20 24 0.000000 0.734779 0.858824
+11 20 25 0.000000 0.739006 0.870665
+11 20 26 0.000000 0.745479 0.879856
+11 20 27 0.000000 0.752470 0.888435
+11 20 28 0.000000 0.757668 0.894261
+11 20 29 0.000000 0.762610 0.899694
+11 20 30 0.000000 0.766719 0.903718
+11 20 31 0.000000 0.770772 0.907648
+11 21 0 0.313404 0.555638 0.000000
+11 21 1 0.309457 0.558578 0.000000
+11 21 2 0.305425 0.561590 0.000000
+11 21 3 0.300123 0.565673 0.000000
+11 21 4 0.294139 0.570191 0.000000
+11 21 5 0.283378 0.577760 0.000000
+11 21 6 0.270212 0.586025 0.000000
+11 21 7 0.246622 0.597308 0.000000
+11 21 8 0.217241 0.609418 0.000000
+11 21 9 0.170492 0.624014 0.045467
+11 21 10 0.131984 0.638769 0.166564
+11 21 11 0.111603 0.653874 0.246842
+11 21 12 0.071821 0.668454 0.323374
+11 21 13 0.000000 0.682161 0.393663
+11 21 14 0.000000 0.695025 0.461694
+11 21 15 0.000000 0.706804 0.526819
+11 21 16 0.000000 0.717761 0.586693
+11 21 17 0.000000 0.727895 0.641316
+11 21 18 0.000000 0.735609 0.689724
+11 21 19 0.000000 0.741439 0.733298
+11 21 20 0.000000 0.746564 0.770158
+11 21 21 0.000000 0.751266 0.802990
+11 21 22 0.000000 0.754658 0.827755
+11 21 23 0.000000 0.757454 0.848853
+11 21 24 0.000000 0.760640 0.862867
+11 21 25 0.000000 0.763957 0.874520
+11 21 26 0.000000 0.768936 0.883523
+11 21 27 0.000000 0.774298 0.891914
+11 21 28 0.000000 0.778141 0.897581
+11 21 29 0.000000 0.781767 0.902859
+11 21 30 0.000000 0.785501 0.906845
+11 21 31 0.000000 0.789242 0.910745
+11 22 0 0.317585 0.575187 0.000000
+11 22 1 0.313294 0.578175 0.000000
+11 22 2 0.308910 0.581232 0.000000
+11 22 3 0.303140 0.585325 0.000000
+11 22 4 0.296637 0.589834 0.000000
+11 22 5 0.284994 0.597256 0.000000
+11 22 6 0.268585 0.605459 0.000000
+11 22 7 0.231516 0.617043 0.000000
+11 22 8 0.195064 0.629404 0.000000
+11 22 9 0.160462 0.644097 0.048514
+11 22 10 0.129867 0.658967 0.171563
+11 22 11 0.108090 0.674225 0.252723
+11 22 12 0.063469 0.688820 0.329908
+11 22 13 0.000000 0.702307 0.400470
+11 22 14 0.000000 0.715074 0.468430
+11 22 15 0.000000 0.726916 0.533045
+11 22 16 0.000000 0.737808 0.592522
+11 22 17 0.000000 0.747752 0.646864
+11 22 18 0.000000 0.755470 0.695135
+11 22 19 0.000000 0.761458 0.738685
+11 22 20 0.000000 0.766605 0.775224
+11 22 21 0.000000 0.771247 0.807555
+11 22 22 0.000000 0.774722 0.832145
+11 22 23 0.000000 0.777666 0.853217
+11 22 24 0.000000 0.780497 0.866954
+11 22 25 0.000000 0.783292 0.878245
+11 22 26 0.000000 0.787461 0.886887
+11 22 27 0.000000 0.791948 0.894917
+11 22 28 0.000000 0.795209 0.900402
+11 22 29 0.000000 0.798294 0.905524
+11 22 30 0.000000 0.801437 0.909430
+11 22 31 0.000000 0.804584 0.913256
+11 23 0 0.321064 0.593238 0.000000
+11 23 1 0.316482 0.596069 0.000000
+11 23 2 0.311800 0.598959 0.000000
+11 23 3 0.305627 0.602739 0.000000
+11 23 4 0.298687 0.606900 0.000000
+11 23 5 0.286381 0.613725 0.000000
+11 23 6 0.265848 0.621637 0.000000
+11 23 7 0.209663 0.634258 0.000000
+11 23 8 0.163336 0.647304 0.000000
+11 23 9 0.146582 0.661624 0.053056
+11 23 10 0.127759 0.676324 0.178799
+11 23 11 0.104380 0.691862 0.260586
+11 23 12 0.058892 0.706500 0.338142
+11 23 13 0.000000 0.719638 0.408643
+11 23 14 0.000000 0.732487 0.476392
+11 23 15 0.000000 0.744962 0.540603
+11 23 16 0.000000 0.755591 0.599284
+11 23 17 0.000000 0.764373 0.652433
+11 23 18 0.000000 0.771953 0.700357
+11 23 19 0.000000 0.778599 0.744216
+11 23 20 0.000000 0.783581 0.780166
+11 23 21 0.000000 0.787565 0.811369
+11 23 22 0.000000 0.791287 0.835953
+11 23 23 0.000000 0.794889 0.857528
+11 23 24 0.000000 0.797626 0.871061
+11 23 25 0.000000 0.800075 0.881912
+11 23 26 0.000000 0.803746 0.890114
+11 23 27 0.000000 0.807699 0.897705
+11 23 28 0.000000 0.810728 0.902997
+11 23 29 0.000000 0.813625 0.907961
+11 23 30 0.000000 0.816080 0.911769
+11 23 31 0.000000 0.818505 0.915501
+11 24 0 0.327830 0.608584 0.000000
+11 24 1 0.322630 0.612176 0.000000
+11 24 2 0.317339 0.615813 0.000000
+11 24 3 0.310671 0.620127 0.000000
+11 24 4 0.303283 0.624731 0.000000
+11 24 5 0.290856 0.631358 0.000000
+11 24 6 0.271323 0.639016 0.000000
+11 24 7 0.221002 0.651140 0.000000
+11 24 8 0.177323 0.663789 0.000000
+11 24 9 0.153574 0.678018 0.064311
+11 24 10 0.129886 0.692590 0.196299
+11 24 11 0.106329 0.707915 0.278265
+11 24 12 0.060714 0.722352 0.355563
+11 24 13 0.000000 0.735307 0.425082
+11 24 14 0.000000 0.747865 0.491648
+11 24 15 0.000000 0.759909 0.554416
+11 24 16 0.000000 0.770119 0.611532
+11 24 17 0.000000 0.778495 0.662995
+11 24 18 0.000000 0.785830 0.709669
+11 24 19 0.000000 0.792356 0.752616
+11 24 20 0.000000 0.797236 0.787445
+11 24 21 0.000000 0.801129 0.817401
+11 24 22 0.000000 0.804692 0.841246
+11 24 23 0.000000 0.808106 0.862312
+11 24 24 0.000000 0.810679 0.875476
+11 24 25 0.000000 0.812970 0.886007
+11 24 26 0.000000 0.816407 0.893924
+11 24 27 0.000000 0.820109 0.901239
+11 24 28 0.000000 0.822984 0.906380
+11 24 29 0.000000 0.825740 0.911211
+11 24 30 0.000000 0.827930 0.914902
+11 24 31 0.000000 0.830081 0.918517
+11 25 0 0.335690 0.623028 0.000000
+11 25 1 0.329765 0.627688 0.000000
+11 25 2 0.323761 0.632377 0.000000
+11 25 3 0.316568 0.637507 0.000000
+11 25 4 0.308728 0.642816 0.000000
+11 25 5 0.296360 0.649380 0.000000
+11 25 6 0.279536 0.656797 0.000000
+11 25 7 0.243404 0.667910 0.000000
+11 25 8 0.206549 0.679803 0.000000
+11 25 9 0.167523 0.694035 0.077803
+11 25 10 0.133424 0.708491 0.217221
+11 25 11 0.110165 0.723440 0.299214
+11 25 12 0.064668 0.737594 0.376046
+11 25 13 0.000000 0.750422 0.444276
+11 25 14 0.000000 0.762564 0.509334
+11 25 15 0.000000 0.773823 0.570313
+11 25 16 0.000000 0.783563 0.625609
+11 25 17 0.000000 0.791784 0.675223
+11 25 18 0.000000 0.798838 0.720344
+11 25 19 0.000000 0.804985 0.761973
+11 25 20 0.000000 0.809784 0.795502
+11 25 21 0.000000 0.813773 0.824173
+11 25 22 0.000000 0.817044 0.847034
+11 25 23 0.000000 0.819988 0.867254
+11 25 24 0.000000 0.822372 0.879995
+11 25 25 0.000000 0.824570 0.890244
+11 25 26 0.000000 0.827861 0.897928
+11 25 27 0.000000 0.831405 0.905021
+11 25 28 0.000000 0.834151 0.910026
+11 25 29 0.000000 0.836784 0.914733
+11 25 30 0.000000 0.838849 0.918299
+11 25 31 0.000000 0.840876 0.921790
+11 26 0 0.345782 0.634254 0.000000
+11 26 1 0.339769 0.639062 0.000000
+11 26 2 0.333656 0.643936 0.000000
+11 26 3 0.326034 0.649806 0.000000
+11 26 4 0.317678 0.656003 0.000000
+11 26 5 0.304188 0.664494 0.000000
+11 26 6 0.287240 0.673422 0.000000
+11 26 7 0.255305 0.684243 0.000000
+11 26 8 0.220233 0.695832 0.000000
+11 26 9 0.175749 0.709730 0.098122
+11 26 10 0.138201 0.723799 0.247814
+11 26 11 0.115912 0.738246 0.326921
+11 26 12 0.072761 0.751964 0.401246
+11 26 13 0.000000 0.764465 0.467601
+11 26 14 0.000000 0.776079 0.530652
+11 26 15 0.000000 0.786550 0.589457
+11 26 16 0.000000 0.795716 0.642486
+11 26 17 0.000000 0.803578 0.689740
+11 26 18 0.000000 0.810363 0.733233
+11 26 19 0.000000 0.816311 0.773800
+11 26 20 0.000000 0.820855 0.805523
+11 26 21 0.000000 0.824557 0.831939
+11 26 22 0.000000 0.827642 0.853655
+11 26 23 0.000000 0.830446 0.873233
+11 26 24 0.000000 0.832763 0.885775
+11 26 25 0.000000 0.834919 0.895970
+11 26 26 0.000000 0.837598 0.902842
+11 26 27 0.000000 0.840397 0.908947
+11 26 28 0.000000 0.843008 0.913763
+11 26 29 0.000000 0.845593 0.918395
+11 26 30 0.000000 0.847633 0.921935
+11 26 31 0.000000 0.849637 0.925402
+11 27 0 0.356388 0.644738 0.000000
+11 27 1 0.350435 0.649482 0.000000
+11 27 2 0.344352 0.654342 0.000000
+11 27 3 0.336323 0.660932 0.000000
+11 27 4 0.327438 0.668060 0.000000
+11 27 5 0.312553 0.678938 0.000000
+11 27 6 0.294826 0.689781 0.000000
+11 27 7 0.264783 0.700475 0.000000
+11 27 8 0.230331 0.711866 0.000000
+11 27 9 0.182654 0.725350 0.120016
+11 27 10 0.143262 0.738970 0.280638
+11 27 11 0.122100 0.752887 0.356187
+11 27 12 0.081810 0.766133 0.427534
+11 27 13 0.009641 0.778261 0.491878
+11 27 14 0.000000 0.789320 0.552809
+11 27 15 0.000000 0.799002 0.609352
+11 27 16 0.000000 0.807571 0.660011
+11 27 17 0.000000 0.815026 0.704786
+11 27 18 0.000000 0.821545 0.746632
+11 27 19 0.000000 0.827335 0.786199
+11 27 20 0.000000 0.831585 0.815997
+11 27 21 0.000000 0.834911 0.839936
+11 27 22 0.000000 0.837834 0.860468
+11 27 23 0.000000 0.840575 0.879452
+11 27 24 0.000000 0.842854 0.891845
+11 27 25 0.000000 0.844979 0.902040
+11 27 26 0.000000 0.846937 0.907966
+11 27 27 0.000000 0.848857 0.912907
+11 27 28 0.000000 0.851332 0.917521
+11 27 29 0.000000 0.853886 0.922089
+11 27 30 0.000000 0.855924 0.925625
+11 27 31 0.000000 0.857928 0.929092
+11 28 0 0.363735 0.652254 0.000000
+11 28 1 0.357789 0.657073 0.000000
+11 28 2 0.351707 0.662006 0.000000
+11 28 3 0.343576 0.668661 0.000000
+11 28 4 0.334569 0.675922 0.000000
+11 28 5 0.319436 0.687428 0.000000
+11 28 6 0.301486 0.699067 0.000000
+11 28 7 0.271334 0.711283 0.000000
+11 28 8 0.236444 0.723755 0.000000
+11 28 9 0.187339 0.736995 0.158371
+11 28 10 0.147611 0.750279 0.303230
+11 28 11 0.128509 0.763662 0.376278
+11 28 12 0.099250 0.776465 0.445618
+11 28 13 0.053064 0.788300 0.508776
+11 28 14 0.003048 0.799055 0.568364
+11 28 15 0.000000 0.808421 0.623360
+11 28 16 0.000000 0.816710 0.672886
+11 28 17 0.000000 0.823920 0.716940
+11 28 18 0.000000 0.830151 0.757428
+11 28 19 0.000000 0.835619 0.795142
+11 28 20 0.000000 0.839702 0.823812
+11 28 21 0.000000 0.842954 0.847056
+11 28 22 0.000000 0.845736 0.866547
+11 28 23 0.000000 0.848304 0.884331
+11 28 24 0.000000 0.850475 0.896303
+11 28 25 0.000000 0.852515 0.906336
+11 28 26 0.000000 0.854413 0.912159
+11 28 27 0.000000 0.856278 0.917009
+11 28 28 0.000000 0.858237 0.921051
+11 28 29 0.000000 0.860209 0.924976
+11 28 30 0.000000 0.862210 0.928420
+11 28 31 0.000000 0.864214 0.931831
+11 29 0 0.370617 0.659347 0.000000
+11 29 1 0.364671 0.664259 0.000000
+11 29 2 0.358584 0.669279 0.000000
+11 29 3 0.350394 0.675903 0.000000
+11 29 4 0.341325 0.683185 0.000000
+11 29 5 0.326107 0.695067 0.000000
+11 29 6 0.308015 0.707341 0.000000
+11 29 7 0.277467 0.721317 0.000000
+11 29 8 0.241987 0.735053 0.048983
+11 29 9 0.191708 0.748071 0.199078
+11 29 10 0.151857 0.761036 0.324361
+11 29 11 0.134949 0.773886 0.395059
+11 29 12 0.117889 0.786249 0.462529
+11 29 13 0.100577 0.797802 0.524620
+11 29 14 0.062937 0.808289 0.582975
+11 29 15 0.000000 0.817407 0.636528
+11 29 16 0.000000 0.825461 0.685097
+11 29 17 0.000000 0.832450 0.728681
+11 29 18 0.000000 0.838389 0.767853
+11 29 19 0.000000 0.843511 0.803592
+11 29 20 0.000000 0.847446 0.831247
+11 29 21 0.000000 0.850668 0.854051
+11 29 22 0.000000 0.853311 0.872520
+11 29 23 0.000000 0.855691 0.889019
+11 29 24 0.000000 0.857744 0.900530
+11 29 25 0.000000 0.859689 0.910378
+11 29 26 0.000000 0.861622 0.916218
+11 29 27 0.000000 0.863551 0.921132
+11 29 28 0.000000 0.864939 0.924547
+11 29 29 0.000000 0.866250 0.927748
+11 29 30 0.000000 0.868210 0.931087
+11 29 31 0.000000 0.870214 0.934434
+11 30 0 0.375698 0.664792 0.000000
+11 30 1 0.369752 0.669682 0.000000
+11 30 2 0.363669 0.674682 0.000000
+11 30 3 0.355530 0.681333 0.000000
+11 30 4 0.346506 0.688634 0.000000
+11 30 5 0.331283 0.700479 0.000000
+11 30 6 0.313112 0.713032 0.000000
+11 30 7 0.282169 0.728650 0.011471
+11 30 8 0.246172 0.743555 0.128442
+11 30 9 0.195013 0.756320 0.241205
+11 30 10 0.154999 0.769047 0.340326
+11 30 11 0.139506 0.781687 0.409435
+11 30 12 0.124175 0.793825 0.475700
+11 30 13 0.109112 0.805127 0.537224
+11 30 14 0.082806 0.815363 0.594667
+11 30 15 0.042045 0.824229 0.646864
+11 30 16 0.010373 0.832092 0.694520
+11 30 17 0.000000 0.838951 0.737634
+11 30 18 0.000000 0.844687 0.775738
+11 30 19 0.000000 0.849552 0.809943
+11 30 20 0.000000 0.853352 0.836841
+11 30 21 0.000000 0.856512 0.859353
+11 30 22 0.000000 0.859007 0.877048
+11 30 23 0.000000 0.861199 0.892553
+11 30 24 0.000000 0.863201 0.903744
+11 30 25 0.000000 0.865140 0.913495
+11 30 26 0.000000 0.867026 0.919294
+11 30 27 0.000000 0.868900 0.924182
+11 30 28 0.000000 0.870272 0.927581
+11 30 29 0.000000 0.871572 0.930768
+11 30 30 0.000000 0.873090 0.933603
+11 30 31 0.000000 0.874621 0.936415
+11 31 0 0.380659 0.670128 0.000000
+11 31 1 0.374713 0.674988 0.000000
+11 31 2 0.368634 0.679961 0.000000
+11 31 3 0.360555 0.686642 0.000000
+11 31 4 0.351582 0.693961 0.000000
+11 31 5 0.336359 0.705743 0.000000
+11 31 6 0.318114 0.718551 0.000000
+11 31 7 0.286776 0.735804 0.066456
+11 31 8 0.250268 0.751871 0.208657
+11 31 9 0.198247 0.764382 0.283426
+11 31 10 0.158067 0.776874 0.355947
+11 31 11 0.143938 0.789326 0.423518
+11 31 12 0.129637 0.801253 0.488622
+11 31 13 0.115048 0.812306 0.549611
+11 31 14 0.100007 0.822293 0.606164
+11 31 15 0.084384 0.830907 0.657012
+11 31 16 0.063592 0.838582 0.703757
+11 31 17 0.037631 0.845316 0.746402
+11 31 18 0.000000 0.850857 0.783453
+11 31 19 0.000000 0.855470 0.816155
+11 31 20 0.000000 0.859135 0.842312
+11 31 21 0.000000 0.862232 0.864541
+11 31 22 0.000000 0.864577 0.881479
+11 31 23 0.000000 0.866581 0.896011
+11 31 24 0.000000 0.868537 0.906890
+11 31 25 0.000000 0.870476 0.916550
+11 31 26 0.000000 0.872310 0.922305
+11 31 27 0.000000 0.874120 0.927159
+11 31 28 0.000000 0.875513 0.930584
+11 31 29 0.000000 0.876847 0.933804
+11 31 30 0.000000 0.877895 0.936109
+11 31 31 0.000000 0.878923 0.938354
+12 0 0 0.160734 0.009245 0.026300
+12 0 1 0.161073 0.009610 0.028375
+12 0 2 0.161412 0.009983 0.030508
+12 0 3 0.161752 0.010494 0.033529
+12 0 4 0.162133 0.011037 0.036831
+12 0 5 0.162811 0.011801 0.042108
+12 0 6 0.163419 0.012386 0.047713
+12 0 7 0.163720 0.012198 0.054741
+12 0 8 0.164140 0.011148 0.063354
+12 0 9 0.164916 0.007511 0.076723
+12 0 10 0.166326 0.000733 0.098136
+12 0 11 0.169126 0.000000 0.137249
+12 0 12 0.171945 0.000000 0.175912
+12 0 13 0.174795 0.000000 0.213826
+12 0 14 0.179378 0.000000 0.253208
+12 0 15 0.186188 0.000000 0.294477
+12 0 16 0.193061 0.000000 0.332649
+12 0 17 0.199997 0.000000 0.367725
+12 0 18 0.206484 0.000000 0.400672
+12 0 19 0.212622 0.000000 0.431963
+12 0 20 0.218681 0.000000 0.460929
+12 0 21 0.224692 0.000000 0.488501
+12 0 22 0.230850 0.000000 0.513644
+12 0 23 0.237075 0.000000 0.537684
+12 0 24 0.244646 0.000000 0.566312
+12 0 25 0.252665 0.000000 0.596469
+12 0 26 0.264222 0.000000 0.634919
+12 0 27 0.276595 0.000000 0.675284
+12 0 28 0.282349 0.000000 0.702289
+12 0 29 0.287157 0.012021 0.727387
+12 0 30 0.290771 0.111128 0.745929
+12 0 31 0.294304 0.211824 0.764034
+12 1 0 0.165679 0.014264 0.017210
+12 1 1 0.165823 0.014610 0.023997
+12 1 2 0.165980 0.014963 0.030545
+12 1 3 0.166319 0.015416 0.033489
+12 1 4 0.166701 0.015906 0.036725
+12 1 5 0.167379 0.016652 0.042002
+12 1 6 0.168032 0.017314 0.047935
+12 1 7 0.168579 0.017614 0.056710
+12 1 8 0.169100 0.017070 0.066633
+12 1 9 0.169543 0.013990 0.080002
+12 1 10 0.170768 0.007366 0.101551
+12 1 11 0.173709 0.000000 0.141097
+12 1 12 0.176617 0.000000 0.180327
+12 1 13 0.179467 0.000000 0.219029
+12 1 14 0.184011 0.000000 0.258937
+12 1 15 0.190734 0.000000 0.300394
+12 1 16 0.197476 0.000000 0.339111
+12 1 17 0.204237 0.000000 0.375087
+12 1 18 0.210558 0.000000 0.408514
+12 1 19 0.216537 0.000000 0.439956
+12 1 20 0.222428 0.000000 0.469179
+12 1 21 0.228264 0.000000 0.497069
+12 1 22 0.234224 0.000000 0.521989
+12 1 23 0.240240 0.000000 0.545558
+12 1 24 0.246577 0.000000 0.572617
+12 1 25 0.253021 0.000000 0.600839
+12 1 26 0.264296 0.000000 0.638865
+12 1 27 0.276686 0.000000 0.679154
+12 1 28 0.282442 0.000000 0.706217
+12 1 29 0.287250 0.021854 0.731390
+12 1 30 0.290782 0.121288 0.749937
+12 1 31 0.294228 0.221984 0.768041
+12 2 0 0.170724 0.019391 0.008081
+12 2 1 0.170681 0.019715 0.019228
+12 2 2 0.170661 0.020045 0.029881
+12 2 3 0.170988 0.020448 0.033125
+12 2 4 0.171359 0.020892 0.036624
+12 2 5 0.172039 0.021620 0.041902
+12 2 6 0.172740 0.022359 0.048165
+12 2 7 0.173535 0.023143 0.058693
+12 2 8 0.174157 0.023105 0.069938
+12 2 9 0.174257 0.020600 0.083337
+12 2 10 0.175292 0.014174 0.105043
+12 2 11 0.178383 0.000000 0.145021
+12 2 12 0.181385 0.000000 0.184823
+12 2 13 0.184238 0.000000 0.224329
+12 2 14 0.188743 0.000000 0.264776
+12 2 15 0.195373 0.000000 0.306433
+12 2 16 0.201978 0.000000 0.345711
+12 2 17 0.208557 0.000000 0.382611
+12 2 18 0.214716 0.000000 0.416527
+12 2 19 0.220547 0.000000 0.448123
+12 2 20 0.226265 0.000000 0.477602
+12 2 21 0.231916 0.000000 0.505812
+12 2 22 0.237668 0.000000 0.530506
+12 2 23 0.243466 0.000000 0.553604
+12 2 24 0.248624 0.000000 0.579158
+12 2 25 0.253569 0.000000 0.605531
+12 2 26 0.264488 0.000000 0.643049
+12 2 27 0.276784 0.000000 0.683140
+12 2 28 0.282530 0.000000 0.710236
+12 2 29 0.287339 0.031887 0.735478
+12 2 30 0.290793 0.131661 0.754028
+12 2 31 0.294157 0.232363 0.772133
+12 3 0 0.177260 0.026155 0.000000
+12 3 1 0.177147 0.026403 0.008574
+12 3 2 0.177049 0.026665 0.018711
+12 3 3 0.177181 0.027126 0.027897
+12 3 4 0.177384 0.027620 0.036597
+12 3 5 0.178080 0.028349 0.041894
+12 3 6 0.178851 0.029165 0.048516
+12 3 7 0.179946 0.030361 0.060885
+12 3 8 0.180669 0.030837 0.073633
+12 3 9 0.180279 0.029151 0.087521
+12 3 10 0.181058 0.023607 0.109690
+12 3 11 0.184411 0.009576 0.150081
+12 3 12 0.187597 0.000000 0.190529
+12 3 13 0.190504 0.000000 0.231069
+12 3 14 0.194963 0.000000 0.272263
+12 3 15 0.201418 0.000000 0.314296
+12 3 16 0.207795 0.000000 0.354391
+12 3 17 0.214095 0.000000 0.392549
+12 3 18 0.220131 0.000000 0.427112
+12 3 19 0.225962 0.000000 0.458877
+12 3 20 0.231462 0.000000 0.488631
+12 3 21 0.236762 0.000000 0.517177
+12 3 22 0.242164 0.000000 0.541629
+12 3 23 0.247613 0.000000 0.564220
+12 3 24 0.252421 0.000000 0.589224
+12 3 25 0.257016 0.000000 0.615033
+12 3 26 0.266446 0.000000 0.650797
+12 3 27 0.276992 0.000000 0.688858
+12 3 28 0.282534 0.000000 0.715651
+12 3 29 0.287360 0.044926 0.740834
+12 3 30 0.290815 0.145223 0.759382
+12 3 31 0.294179 0.246019 0.777487
+12 4 0 0.184402 0.033536 0.000000
+12 4 1 0.184236 0.033718 0.000000
+12 4 2 0.184077 0.033921 0.007708
+12 4 3 0.184030 0.034430 0.021469
+12 4 4 0.184071 0.034964 0.034327
+12 4 5 0.184724 0.035679 0.040869
+12 4 6 0.185510 0.036553 0.048806
+12 4 7 0.186866 0.038120 0.062786
+12 4 8 0.187693 0.039092 0.076974
+12 4 9 0.186932 0.038282 0.091789
+12 4 10 0.187515 0.033830 0.114749
+12 4 11 0.191057 0.021365 0.155628
+12 4 12 0.194380 0.009261 0.196806
+12 4 13 0.197341 0.000000 0.238481
+12 4 14 0.201740 0.000000 0.280491
+12 4 15 0.207989 0.000000 0.322931
+12 4 16 0.214117 0.000000 0.363912
+12 4 17 0.220124 0.000000 0.403434
+12 4 18 0.226018 0.000000 0.438697
+12 4 19 0.231822 0.000000 0.470646
+12 4 20 0.237092 0.000000 0.500705
+12 4 21 0.242040 0.000000 0.529631
+12 4 22 0.247075 0.000000 0.553838
+12 4 23 0.252149 0.000000 0.575901
+12 4 24 0.256618 0.000000 0.600384
+12 4 25 0.260884 0.000000 0.625673
+12 4 26 0.268655 0.000000 0.659436
+12 4 27 0.277234 0.000000 0.695153
+12 4 28 0.282529 0.000000 0.721595
+12 4 29 0.287355 0.059239 0.746711
+12 4 30 0.290812 0.160090 0.765245
+12 4 31 0.294179 0.260968 0.783341
+12 5 0 0.195780 0.045241 0.000000
+12 5 1 0.195684 0.045424 0.000000
+12 5 2 0.195587 0.045625 0.000000
+12 5 3 0.195470 0.046116 0.006639
+12 5 4 0.195391 0.046621 0.016353
+12 5 5 0.195584 0.047223 0.032738
+12 5 6 0.195996 0.048020 0.048671
+12 5 7 0.197352 0.049663 0.062651
+12 5 8 0.198298 0.051011 0.077839
+12 5 9 0.198011 0.051474 0.096654
+12 5 10 0.198816 0.049584 0.122682
+12 5 11 0.202024 0.042514 0.164577
+12 5 12 0.205160 0.033422 0.207080
+12 5 13 0.208174 0.020958 0.250597
+12 5 14 0.212419 0.000000 0.293914
+12 5 15 0.218248 0.000000 0.336976
+12 5 16 0.223974 0.000000 0.379319
+12 5 17 0.229597 0.000000 0.420943
+12 5 18 0.235203 0.000000 0.457283
+12 5 19 0.240796 0.000000 0.489515
+12 5 20 0.245757 0.000000 0.520103
+12 5 21 0.250338 0.000000 0.549704
+12 5 22 0.254886 0.000000 0.573658
+12 5 23 0.259418 0.000000 0.595045
+12 5 24 0.263619 0.000000 0.619204
+12 5 25 0.267711 0.000000 0.644287
+12 5 26 0.272618 0.000000 0.674314
+12 5 27 0.277713 0.000000 0.705482
+12 5 28 0.282467 0.000000 0.731241
+12 5 29 0.287171 0.082464 0.756227
+12 5 30 0.290637 0.184089 0.774682
+12 5 31 0.294020 0.284967 0.792702
+12 6 0 0.207999 0.057740 0.000000
+12 6 1 0.207993 0.058099 0.000000
+12 6 2 0.207977 0.058465 0.000000
+12 6 3 0.207806 0.058941 0.000000
+12 6 4 0.207626 0.059419 0.001098
+12 6 5 0.207389 0.059916 0.025327
+12 6 6 0.207371 0.060621 0.047734
+12 6 7 0.208300 0.062225 0.062242
+12 6 8 0.209087 0.063891 0.078942
+12 6 9 0.209446 0.065738 0.102221
+12 6 10 0.210521 0.066345 0.131654
+12 6 11 0.213172 0.064223 0.174628
+12 6 12 0.216012 0.058534 0.218551
+12 6 13 0.219169 0.046903 0.264053
+12 6 14 0.223169 0.015137 0.308882
+12 6 15 0.228254 0.000000 0.352844
+12 6 16 0.233491 0.000000 0.396539
+12 6 17 0.238882 0.000000 0.439969
+12 6 18 0.244142 0.000000 0.477502
+12 6 19 0.249299 0.000000 0.510449
+12 6 20 0.253941 0.000000 0.541637
+12 6 21 0.258274 0.000000 0.571771
+12 6 22 0.262248 0.000000 0.595690
+12 6 23 0.266059 0.000000 0.616785
+12 6 24 0.269802 0.000000 0.640348
+12 6 25 0.273521 0.000000 0.664734
+12 6 26 0.276059 0.000000 0.691638
+12 6 27 0.278323 0.000000 0.719124
+12 6 28 0.282282 0.010079 0.743701
+12 6 29 0.286483 0.123965 0.767862
+12 6 30 0.289636 0.218443 0.785719
+12 6 31 0.292720 0.311628 0.803156
+12 7 0 0.223862 0.073677 0.000000
+12 7 1 0.224032 0.074975 0.000000
+12 7 2 0.224181 0.076223 0.000000
+12 7 3 0.224026 0.076699 0.000000
+12 7 4 0.223823 0.077168 0.000000
+12 7 5 0.223287 0.077589 0.021041
+12 7 6 0.222599 0.078133 0.043320
+12 7 7 0.221250 0.079206 0.060646
+12 7 8 0.220675 0.080939 0.081077
+12 7 9 0.222423 0.084649 0.110824
+12 7 10 0.223975 0.087475 0.145128
+12 7 11 0.225096 0.088355 0.189455
+12 7 12 0.227177 0.087770 0.235203
+12 7 13 0.230862 0.084742 0.283320
+12 7 14 0.234222 0.072832 0.330541
+12 7 15 0.237164 0.049501 0.376611
+12 7 16 0.241542 0.034368 0.421622
+12 7 17 0.247356 0.027433 0.465573
+12 7 18 0.252010 0.024803 0.504793
+12 7 19 0.255761 0.025519 0.540333
+12 7 20 0.260042 0.026920 0.572435
+12 7 21 0.264640 0.028732 0.602475
+12 7 22 0.267668 0.032106 0.627309
+12 7 23 0.269983 0.036190 0.649778
+12 7 24 0.272433 0.047473 0.671564
+12 7 25 0.274927 0.061155 0.693123
+12 7 26 0.277235 0.087839 0.719559
+12 7 27 0.279499 0.117524 0.747121
+12 7 28 0.281568 0.178835 0.768353
+12 7 29 0.283609 0.244664 0.788681
+12 7 30 0.285061 0.297671 0.803690
+12 7 31 0.286473 0.349824 0.818346
+12 8 0 0.238441 0.090032 0.000000
+12 8 1 0.238703 0.091928 0.000000
+12 8 2 0.238944 0.093752 0.000000
+12 8 3 0.238885 0.094496 0.000000
+12 8 4 0.238757 0.095262 0.000000
+12 8 5 0.238145 0.096186 0.012292
+12 8 6 0.237106 0.097212 0.035854
+12 8 7 0.234210 0.098678 0.058069
+12 8 8 0.232649 0.101049 0.083414
+12 8 9 0.235087 0.106132 0.118150
+12 8 10 0.236739 0.110783 0.156467
+12 8 11 0.236659 0.114484 0.202664
+12 8 12 0.237991 0.118208 0.250445
+12 8 13 0.241678 0.121972 0.300865
+12 8 14 0.244249 0.125298 0.350238
+12 8 15 0.245386 0.128060 0.398264
+12 8 16 0.248910 0.130063 0.444660
+12 8 17 0.254818 0.131307 0.489427
+12 8 18 0.258866 0.132615 0.530200
+12 8 19 0.261466 0.133973 0.567869
+12 8 20 0.265303 0.136391 0.600731
+12 8 21 0.269881 0.139445 0.630709
+12 8 22 0.272077 0.145084 0.656177
+12 8 23 0.273191 0.151898 0.679596
+12 8 24 0.274510 0.170115 0.700017
+12 8 25 0.275898 0.192134 0.719438
+12 8 26 0.277689 0.234973 0.744973
+12 8 27 0.279573 0.282616 0.771919
+12 8 28 0.279881 0.314183 0.790192
+12 8 29 0.279964 0.343453 0.807226
+12 8 30 0.279892 0.364958 0.819784
+12 8 31 0.279809 0.385945 0.832043
+12 9 0 0.249168 0.107643 0.000000
+12 9 1 0.249271 0.109109 0.000000
+12 9 2 0.249385 0.110596 0.000000
+12 9 3 0.249659 0.112410 0.000000
+12 9 4 0.249897 0.114393 0.000000
+12 9 5 0.249882 0.117555 0.000000
+12 9 6 0.249448 0.120993 0.019232
+12 9 7 0.247202 0.125622 0.052550
+12 9 8 0.245776 0.130342 0.086359
+12 9 9 0.246812 0.135331 0.121641
+12 9 10 0.247433 0.140628 0.161403
+12 9 11 0.247141 0.146604 0.211021
+12 9 12 0.247750 0.152257 0.261454
+12 9 13 0.249861 0.157374 0.313245
+12 9 14 0.251201 0.162077 0.364046
+12 9 15 0.251547 0.166250 0.413573
+12 9 16 0.254229 0.169766 0.461568
+12 9 17 0.259246 0.172627 0.508030
+12 9 18 0.262685 0.175066 0.549958
+12 9 19 0.264899 0.177175 0.588360
+12 9 20 0.268043 0.180122 0.621520
+12 9 21 0.271747 0.183570 0.651535
+12 9 22 0.273452 0.189745 0.676794
+12 9 23 0.274249 0.197160 0.699891
+12 9 24 0.274926 0.214610 0.720179
+12 9 25 0.275562 0.235407 0.739531
+12 9 26 0.275976 0.275453 0.762867
+12 9 27 0.276339 0.319943 0.787123
+12 9 28 0.275274 0.349305 0.803594
+12 9 29 0.274004 0.376507 0.818954
+12 9 30 0.272942 0.396418 0.830244
+12 9 31 0.271894 0.415844 0.841263
+12 10 0 0.261103 0.130991 0.000000
+12 10 1 0.261147 0.132378 0.000000
+12 10 2 0.261217 0.133846 0.000000
+12 10 3 0.261676 0.136537 0.000000
+12 10 4 0.262120 0.139503 0.000000
+12 10 5 0.262453 0.144392 0.000000
+12 10 6 0.262321 0.149591 0.000000
+12 10 7 0.260174 0.156137 0.039988
+12 10 8 0.258568 0.162442 0.087622
+12 10 9 0.258584 0.168025 0.124798
+12 10 10 0.258220 0.174275 0.166776
+12 10 11 0.257020 0.181996 0.219315
+12 10 12 0.256577 0.189231 0.272108
+12 10 13 0.257398 0.195654 0.325323
+12 10 14 0.257506 0.201634 0.377745
+12 10 15 0.256701 0.207046 0.429145
+12 10 16 0.258483 0.211947 0.478752
+12 10 17 0.262853 0.216336 0.526567
+12 10 18 0.265580 0.219919 0.569520
+12 10 19 0.267029 0.222875 0.608692
+12 10 20 0.269349 0.226385 0.642133
+12 10 21 0.272193 0.230228 0.672137
+12 10 22 0.273149 0.236637 0.697334
+12 10 23 0.273247 0.244212 0.720345
+12 10 24 0.273219 0.260835 0.740258
+12 10 25 0.273148 0.280474 0.759138
+12 10 26 0.272326 0.317330 0.780134
+12 10 27 0.271330 0.358159 0.801618
+12 10 28 0.269279 0.385332 0.816376
+12 10 29 0.267076 0.410554 0.830174
+12 10 30 0.265391 0.429127 0.840379
+12 10 31 0.263741 0.447255 0.850345
+12 11 0 0.275698 0.166960 0.000000
+12 11 1 0.275900 0.169041 0.000000
+12 11 2 0.276109 0.171188 0.000000
+12 11 3 0.276427 0.174332 0.000000
+12 11 4 0.276722 0.177768 0.000000
+12 11 5 0.276861 0.183258 0.000000
+12 11 6 0.276362 0.188790 0.000000
+12 11 7 0.273106 0.194508 0.011930
+12 11 8 0.270624 0.200718 0.085182
+12 11 9 0.270461 0.208405 0.127220
+12 11 10 0.269213 0.216284 0.173110
+12 11 11 0.265573 0.224588 0.227472
+12 11 12 0.263357 0.232638 0.281982
+12 11 13 0.263511 0.240265 0.336738
+12 11 14 0.262392 0.247301 0.391203
+12 11 15 0.259639 0.253577 0.445293
+12 11 16 0.260393 0.259577 0.496546
+12 11 17 0.264656 0.265301 0.544962
+12 11 18 0.266438 0.270060 0.588654
+12 11 19 0.266292 0.274068 0.628671
+12 11 20 0.267499 0.278219 0.662358
+12 11 21 0.269519 0.282456 0.692246
+12 11 22 0.269158 0.288434 0.717705
+12 11 23 0.267714 0.295202 0.741151
+12 11 24 0.266840 0.310864 0.760155
+12 11 25 0.266157 0.329490 0.777679
+12 11 26 0.264410 0.362278 0.796023
+12 11 27 0.262418 0.398333 0.814556
+12 11 28 0.260232 0.423349 0.827794
+12 11 29 0.258019 0.446787 0.840275
+12 11 30 0.256518 0.464580 0.849799
+12 11 31 0.255065 0.481996 0.859125
+12 12 0 0.290048 0.204665 0.000000
+12 12 1 0.290243 0.207293 0.000000
+12 12 2 0.290433 0.209978 0.000000
+12 12 3 0.290557 0.213530 0.000000
+12 12 4 0.290630 0.217412 0.000000
+12 12 5 0.290349 0.223601 0.000000
+12 12 6 0.289388 0.229820 0.000000
+12 12 7 0.285479 0.236170 0.000000
+12 12 8 0.282334 0.243247 0.076026
+12 12 9 0.281481 0.252503 0.125807
+12 12 10 0.279172 0.261727 0.177703
+12 12 11 0.273660 0.270882 0.234253
+12 12 12 0.269732 0.279922 0.290895
+12 12 13 0.268442 0.288774 0.347691
+12 12 14 0.265899 0.296892 0.404200
+12 12 15 0.261743 0.304068 0.460338
+12 12 16 0.261211 0.311065 0.513123
+12 12 17 0.264301 0.317882 0.562555
+12 12 18 0.264836 0.323577 0.607024
+12 12 19 0.263383 0.328398 0.647633
+12 12 20 0.263323 0.332987 0.681765
+12 12 21 0.264098 0.337435 0.712012
+12 12 22 0.262473 0.343089 0.737542
+12 12 23 0.259757 0.349290 0.760929
+12 12 24 0.258161 0.363733 0.779156
+12 12 25 0.256939 0.380923 0.795664
+12 12 26 0.254469 0.409924 0.811814
+12 12 27 0.251711 0.441651 0.827881
+12 12 28 0.249198 0.464348 0.839709
+12 12 29 0.246720 0.485755 0.850931
+12 12 30 0.245009 0.502309 0.859630
+12 12 31 0.243350 0.518539 0.868162
+12 13 0 0.303991 0.245264 0.000000
+12 13 1 0.303904 0.248192 0.000000
+12 13 2 0.303812 0.251180 0.000000
+12 13 3 0.303653 0.255069 0.000000
+12 13 4 0.303380 0.259353 0.000000
+12 13 5 0.302306 0.266406 0.000000
+12 13 6 0.300720 0.273903 0.000000
+12 13 7 0.296918 0.283319 0.000000
+12 13 8 0.293468 0.292865 0.055674
+12 13 9 0.291071 0.302797 0.117999
+12 13 10 0.287410 0.312892 0.179394
+12 13 11 0.280969 0.323345 0.238740
+12 13 12 0.275433 0.333669 0.298207
+12 13 13 0.271405 0.343779 0.357875
+12 13 14 0.267106 0.353025 0.416426
+12 13 15 0.262459 0.361159 0.473541
+12 13 16 0.260207 0.368980 0.527670
+12 13 17 0.260350 0.376489 0.578813
+12 13 18 0.259132 0.382720 0.624124
+12 13 19 0.256855 0.387957 0.664900
+12 13 20 0.255270 0.392643 0.699811
+12 13 21 0.254099 0.396997 0.731204
+12 13 22 0.251299 0.402507 0.756488
+12 13 23 0.247759 0.408541 0.778995
+12 13 24 0.245646 0.421337 0.796663
+12 13 25 0.244009 0.436386 0.812719
+12 13 26 0.241151 0.462070 0.827439
+12 13 27 0.238013 0.490208 0.841851
+12 13 28 0.234852 0.510318 0.852452
+12 13 29 0.231687 0.529281 0.862509
+12 13 30 0.229108 0.543831 0.870149
+12 13 31 0.226568 0.558087 0.877628
+12 14 0 0.318365 0.292124 0.000000
+12 14 1 0.318004 0.295105 0.000000
+12 14 2 0.317633 0.298147 0.000000
+12 14 3 0.317117 0.302102 0.000000
+12 14 4 0.316436 0.306474 0.000000
+12 14 5 0.314602 0.313766 0.000000
+12 14 6 0.312199 0.321790 0.000000
+12 14 7 0.307335 0.332982 0.000000
+12 14 8 0.302700 0.344079 0.013356
+12 14 9 0.298751 0.354892 0.100140
+12 14 10 0.293396 0.366014 0.179380
+12 14 11 0.284950 0.377815 0.242024
+12 14 12 0.277372 0.389352 0.304421
+12 14 13 0.271242 0.400450 0.366404
+12 14 14 0.264672 0.410733 0.426900
+12 14 15 0.257534 0.419966 0.485485
+12 14 16 0.253205 0.428449 0.540830
+12 14 17 0.251683 0.436183 0.592935
+12 14 18 0.248200 0.442819 0.639132
+12 14 19 0.243192 0.448603 0.680734
+12 14 20 0.239837 0.453296 0.716353
+12 14 21 0.237473 0.457333 0.748383
+12 14 22 0.232752 0.462527 0.773694
+12 14 23 0.226960 0.468246 0.795952
+12 14 24 0.223860 0.479454 0.813146
+12 14 25 0.221658 0.492492 0.828651
+12 14 26 0.218928 0.514668 0.842056
+12 14 27 0.216075 0.538953 0.854977
+12 14 28 0.211989 0.556220 0.864342
+12 14 29 0.207728 0.572485 0.873200
+12 14 30 0.205274 0.585070 0.879917
+12 14 31 0.202941 0.597410 0.886491
+12 15 0 0.333293 0.347032 0.000000
+12 15 1 0.332669 0.349749 0.000000
+12 15 2 0.332024 0.352526 0.000000
+12 15 3 0.331053 0.356199 0.000000
+12 15 4 0.329885 0.360254 0.000000
+12 15 5 0.327334 0.366982 0.000000
+12 15 6 0.323867 0.374569 0.000000
+12 15 7 0.316436 0.385876 0.000000
+12 15 8 0.309486 0.397345 0.000000
+12 15 9 0.303976 0.409302 0.069355
+12 15 10 0.296489 0.421652 0.177174
+12 15 11 0.284651 0.434866 0.243761
+12 15 12 0.274473 0.447527 0.309221
+12 15 13 0.267062 0.459265 0.372803
+12 15 14 0.257556 0.470467 0.435119
+12 15 15 0.245356 0.480980 0.495809
+12 15 16 0.238488 0.489915 0.552206
+12 15 17 0.236953 0.497272 0.604311
+12 15 18 0.230548 0.504147 0.651450
+12 15 19 0.220356 0.510647 0.694726
+12 15 20 0.214916 0.515231 0.730962
+12 15 21 0.212327 0.518664 0.762973
+12 15 22 0.204725 0.523321 0.788665
+12 15 23 0.194844 0.528534 0.811484
+12 15 24 0.190155 0.538233 0.828311
+12 15 25 0.187196 0.549426 0.843140
+12 15 26 0.185253 0.567849 0.855378
+12 15 27 0.183543 0.587939 0.867018
+12 15 28 0.178178 0.602036 0.875136
+12 15 29 0.172290 0.615277 0.882751
+12 15 30 0.171241 0.625948 0.888718
+12 15 31 0.170514 0.636447 0.894577
+12 16 0 0.345869 0.395984 0.000000
+12 16 1 0.344964 0.398861 0.000000
+12 16 2 0.344030 0.401800 0.000000
+12 16 3 0.342647 0.405679 0.000000
+12 16 4 0.341023 0.409960 0.000000
+12 16 5 0.337717 0.417054 0.000000
+12 16 6 0.333284 0.424991 0.000000
+12 16 7 0.323975 0.436581 0.000000
+12 16 8 0.315157 0.448463 0.000000
+12 16 9 0.307813 0.461217 0.052047
+12 16 10 0.298211 0.474359 0.173610
+12 16 11 0.283640 0.488354 0.243799
+12 16 12 0.270608 0.501778 0.312247
+12 16 13 0.260139 0.514251 0.377792
+12 16 14 0.247374 0.526043 0.441887
+12 16 15 0.231657 0.536963 0.504117
+12 16 16 0.220451 0.546318 0.561637
+12 16 17 0.213757 0.554107 0.614446
+12 16 18 0.192141 0.561197 0.662416
+12 16 19 0.158918 0.567744 0.706623
+12 16 20 0.144609 0.572320 0.743531
+12 16 21 0.141647 0.575712 0.776060
+12 16 22 0.134615 0.579944 0.801906
+12 16 23 0.125734 0.584556 0.824714
+12 16 24 0.121574 0.592779 0.841016
+12 16 25 0.118988 0.602206 0.855149
+12 16 26 0.117852 0.617497 0.866531
+12 16 27 0.117050 0.634140 0.877278
+12 16 28 0.112600 0.645571 0.884535
+12 16 29 0.107628 0.656257 0.891293
+12 16 30 0.107371 0.665287 0.896695
+12 16 31 0.107428 0.674207 0.902007
+12 17 0 0.356092 0.438981 0.000000
+12 17 1 0.354888 0.442440 0.000000
+12 17 2 0.353650 0.445969 0.000000
+12 17 3 0.351898 0.450542 0.000000
+12 17 4 0.349851 0.455592 0.000000
+12 17 5 0.345751 0.463981 0.000000
+12 17 6 0.340451 0.473055 0.000000
+12 17 7 0.329950 0.485098 0.000000
+12 17 8 0.319712 0.497431 0.000000
+12 17 9 0.310262 0.510637 0.048214
+12 17 10 0.298564 0.524137 0.168688
+12 17 11 0.281918 0.538280 0.242138
+12 17 12 0.265776 0.552108 0.313496
+12 17 13 0.250474 0.565408 0.381371
+12 17 14 0.234127 0.577462 0.447203
+12 17 15 0.216435 0.587915 0.510410
+12 17 16 0.199092 0.597656 0.569122
+12 17 17 0.182096 0.606686 0.623338
+12 17 18 0.132979 0.613969 0.672030
+12 17 19 0.058878 0.619894 0.716425
+12 17 20 0.028914 0.624563 0.754061
+12 17 21 0.025433 0.628477 0.787642
+12 17 22 0.022424 0.632394 0.813417
+12 17 23 0.019629 0.636312 0.835643
+12 17 24 0.018118 0.643094 0.851262
+12 17 25 0.017034 0.650832 0.864680
+12 17 26 0.016725 0.663613 0.875516
+12 17 27 0.016596 0.677557 0.885756
+12 17 28 0.015255 0.686824 0.892538
+12 17 29 0.013742 0.695423 0.898826
+12 17 30 0.013664 0.703089 0.903846
+12 17 31 0.013681 0.710693 0.908782
+12 18 0 0.365303 0.482748 0.000000
+12 18 1 0.363753 0.486028 0.000000
+12 18 2 0.362163 0.489374 0.000000
+12 18 3 0.359993 0.493702 0.000000
+12 18 4 0.357482 0.498515 0.000000
+12 18 5 0.352582 0.506720 0.000000
+12 18 6 0.346317 0.515754 0.000000
+12 18 7 0.334137 0.528385 0.000000
+12 18 8 0.322269 0.541188 0.000000
+12 18 9 0.311335 0.554507 0.042349
+12 18 10 0.297718 0.568199 0.161124
+12 18 11 0.278197 0.582715 0.239460
+12 18 12 0.259053 0.596907 0.314496
+12 18 13 0.240537 0.610559 0.384035
+12 18 14 0.208972 0.623125 0.451490
+12 18 15 0.160630 0.634293 0.516268
+12 18 16 0.128562 0.644292 0.575945
+12 18 17 0.112768 0.653124 0.630522
+12 18 18 0.068801 0.660495 0.679752
+12 18 19 0.002921 0.666730 0.724821
+12 18 20 0.000000 0.671374 0.762713
+12 18 21 0.000000 0.675063 0.796299
+12 18 22 0.000000 0.678853 0.822241
+12 18 23 0.000000 0.682688 0.844709
+12 18 24 0.000000 0.688388 0.859956
+12 18 25 0.000000 0.694710 0.872796
+12 18 26 0.000000 0.705077 0.883129
+12 18 27 0.000000 0.716378 0.892883
+12 18 28 0.000000 0.723990 0.899332
+12 18 29 0.000000 0.731073 0.905308
+12 18 30 0.000000 0.737323 0.909976
+12 18 31 0.000000 0.743517 0.914556
+12 19 0 0.373727 0.527114 0.000000
+12 19 1 0.371793 0.529624 0.000000
+12 19 2 0.369815 0.532187 0.000000
+12 19 3 0.367190 0.535538 0.000000
+12 19 4 0.364181 0.539329 0.000000
+12 19 5 0.358476 0.546200 0.000000
+12 19 6 0.351172 0.554280 0.000000
+12 19 7 0.336933 0.567606 0.000000
+12 19 8 0.323272 0.580892 0.000000
+12 19 9 0.311339 0.594059 0.034903
+12 19 10 0.295941 0.607818 0.151505
+12 19 11 0.272922 0.622879 0.235992
+12 19 12 0.250859 0.637406 0.315302
+12 19 13 0.230390 0.651040 0.385987
+12 19 14 0.174558 0.664310 0.454977
+12 19 15 0.073259 0.677112 0.521786
+12 19 16 0.019788 0.687272 0.582253
+12 19 17 0.014144 0.694787 0.636379
+12 19 18 0.000722 0.702164 0.686002
+12 19 19 0.000000 0.709433 0.732124
+12 19 20 0.000000 0.713960 0.769905
+12 19 21 0.000000 0.716843 0.802681
+12 19 22 0.000000 0.720652 0.828977
+12 19 23 0.000000 0.724882 0.852328
+12 19 24 0.000000 0.729777 0.867442
+12 19 25 0.000000 0.734894 0.879812
+12 19 26 0.000000 0.742924 0.889675
+12 19 27 0.000000 0.751626 0.898960
+12 19 28 0.000000 0.757976 0.905185
+12 19 29 0.000000 0.763989 0.910973
+12 19 30 0.000000 0.768781 0.915310
+12 19 31 0.000000 0.773492 0.919551
+12 20 0 0.380910 0.558453 0.000000
+12 20 1 0.378666 0.561025 0.000000
+12 20 2 0.376373 0.563652 0.000000
+12 20 3 0.373357 0.567117 0.000000
+12 20 4 0.369893 0.571024 0.000000
+12 20 5 0.363293 0.578025 0.000000
+12 20 6 0.355007 0.586102 0.000000
+12 20 7 0.339418 0.598843 0.000000
+12 20 8 0.324386 0.611861 0.000000
+12 20 9 0.311025 0.625712 0.032215
+12 20 10 0.293995 0.640002 0.148215
+12 20 11 0.268895 0.655257 0.235504
+12 20 12 0.235520 0.669945 0.316996
+12 20 13 0.188355 0.683688 0.388826
+12 20 14 0.120706 0.696933 0.458668
+12 20 15 0.026723 0.709537 0.525955
+12 20 16 0.000000 0.719967 0.587082
+12 20 17 0.000000 0.728223 0.642048
+12 20 18 0.000000 0.735753 0.691970
+12 20 19 0.000000 0.742718 0.737970
+12 20 20 0.000000 0.747456 0.775889
+12 20 21 0.000000 0.750859 0.808960
+12 20 22 0.000000 0.754480 0.835059
+12 20 23 0.000000 0.758200 0.857988
+12 20 24 0.000000 0.762180 0.872785
+12 20 25 0.000000 0.766247 0.884872
+12 20 26 0.000000 0.772383 0.894407
+12 20 27 0.000000 0.778998 0.903352
+12 20 28 0.000000 0.783995 0.909402
+12 20 29 0.000000 0.788762 0.915038
+12 20 30 0.000000 0.792789 0.919225
+12 20 31 0.000000 0.796768 0.923316
+12 21 0 0.387349 0.581976 0.000000
+12 21 1 0.384839 0.585109 0.000000
+12 21 2 0.382275 0.588310 0.000000
+12 21 3 0.378907 0.592542 0.000000
+12 21 4 0.375015 0.597247 0.000000
+12 21 5 0.367463 0.605258 0.000000
+12 21 6 0.358230 0.613902 0.000000
+12 21 7 0.341715 0.625290 0.000000
+12 21 8 0.325567 0.637590 0.000000
+12 21 9 0.310521 0.652627 0.032382
+12 21 10 0.291948 0.667727 0.148722
+12 21 11 0.265617 0.682964 0.236806
+12 21 12 0.215894 0.697710 0.319223
+12 21 13 0.127187 0.711637 0.392196
+12 21 14 0.055193 0.724418 0.462482
+12 21 15 0.004689 0.735724 0.529315
+12 21 16 0.000000 0.746493 0.591022
+12 21 17 0.000000 0.756723 0.647605
+12 21 18 0.000000 0.764494 0.697769
+12 21 19 0.000000 0.770352 0.742940
+12 21 20 0.000000 0.775498 0.781148
+12 21 21 0.000000 0.780217 0.815178
+12 21 22 0.000000 0.783525 0.840748
+12 21 23 0.000000 0.786193 0.862473
+12 21 24 0.000000 0.789191 0.876842
+12 21 25 0.000000 0.792300 0.888759
+12 21 26 0.000000 0.796810 0.898050
+12 21 27 0.000000 0.801644 0.906734
+12 21 28 0.000000 0.805236 0.912637
+12 21 29 0.000000 0.808649 0.918143
+12 21 30 0.000000 0.812328 0.922288
+12 21 31 0.000000 0.816024 0.926342
+12 22 0 0.392685 0.602270 0.000000
+12 22 1 0.389888 0.605412 0.000000
+12 22 2 0.387035 0.608622 0.000000
+12 22 3 0.383329 0.612863 0.000000
+12 22 4 0.379057 0.617551 0.000000
+12 22 5 0.370825 0.625375 0.000000
+12 22 6 0.360784 0.633929 0.000000
+12 22 7 0.342903 0.645645 0.000000
+12 22 8 0.325475 0.658229 0.000000
+12 22 9 0.309409 0.673417 0.036083
+12 22 10 0.289576 0.688675 0.154541
+12 22 11 0.261456 0.704086 0.242888
+12 22 12 0.205901 0.718832 0.325603
+12 22 13 0.104620 0.732469 0.398934
+12 22 14 0.032134 0.745158 0.469268
+12 22 15 0.000000 0.756628 0.535752
+12 22 16 0.000000 0.767341 0.597105
+12 22 17 0.000000 0.777299 0.653328
+12 22 18 0.000000 0.785024 0.703247
+12 22 19 0.000000 0.791013 0.748264
+12 22 20 0.000000 0.796160 0.786085
+12 22 21 0.000000 0.800799 0.819588
+12 22 22 0.000000 0.804186 0.845002
+12 22 23 0.000000 0.807002 0.866738
+12 22 24 0.000000 0.809647 0.880847
+12 22 25 0.000000 0.812235 0.892413
+12 22 26 0.000000 0.815942 0.901329
+12 22 27 0.000000 0.819907 0.909634
+12 22 28 0.000000 0.822917 0.915352
+12 22 29 0.000000 0.825792 0.920700
+12 22 30 0.000000 0.828869 0.924764
+12 22 31 0.000000 0.831960 0.928742
+12 23 0 0.397521 0.621098 0.000000
+12 23 1 0.394428 0.623997 0.000000
+12 23 2 0.391276 0.626959 0.000000
+12 23 3 0.387239 0.630862 0.000000
+12 23 4 0.382609 0.635165 0.000000
+12 23 5 0.373821 0.642258 0.000000
+12 23 6 0.363034 0.650423 0.000000
+12 23 7 0.343585 0.663230 0.000000
+12 23 8 0.324803 0.676554 0.000000
+12 23 9 0.308020 0.691424 0.041391
+12 23 10 0.287056 0.706544 0.162774
+12 23 11 0.256896 0.722216 0.251142
+12 23 12 0.200287 0.736935 0.333871
+12 23 13 0.099599 0.750066 0.407202
+12 23 14 0.028371 0.762832 0.477405
+12 23 15 0.000000 0.775130 0.543588
+12 23 16 0.000000 0.785610 0.604162
+12 23 17 0.000000 0.794272 0.659126
+12 23 18 0.000000 0.801821 0.708580
+12 23 19 0.000000 0.808505 0.753748
+12 23 20 0.000000 0.813466 0.790876
+12 23 21 0.000000 0.817394 0.823178
+12 23 22 0.000000 0.821035 0.848604
+12 23 23 0.000000 0.824545 0.870905
+12 23 24 0.000000 0.827123 0.884829
+12 23 25 0.000000 0.829389 0.895961
+12 23 26 0.000000 0.832666 0.904444
+12 23 27 0.000000 0.836176 0.912315
+12 23 28 0.000000 0.838982 0.917830
+12 23 29 0.000000 0.841686 0.923008
+12 23 30 0.000000 0.844047 0.926973
+12 23 31 0.000000 0.846386 0.930857
+12 24 0 0.404559 0.636435 0.000000
+12 24 1 0.400933 0.640092 0.000000
+12 24 2 0.397251 0.643797 0.000000
+12 24 3 0.392751 0.648224 0.000000
+12 24 4 0.387704 0.652953 0.000000
+12 24 5 0.378830 0.659793 0.000000
+12 24 6 0.367827 0.667652 0.000000
+12 24 7 0.347597 0.679925 0.000000
+12 24 8 0.328158 0.692835 0.000000
+12 24 9 0.311092 0.707655 0.053326
+12 24 10 0.289865 0.722660 0.181241
+12 24 11 0.259484 0.738074 0.269503
+12 24 12 0.202719 0.752536 0.351759
+12 24 13 0.101982 0.765413 0.424004
+12 24 14 0.030256 0.777868 0.492947
+12 24 15 0.000000 0.789779 0.557645
+12 24 16 0.000000 0.799868 0.616586
+12 24 17 0.000000 0.808136 0.669771
+12 24 18 0.000000 0.815428 0.717880
+12 24 19 0.000000 0.821960 0.762042
+12 24 20 0.000000 0.826815 0.797988
+12 24 21 0.000000 0.830665 0.829003
+12 24 22 0.000000 0.834158 0.853687
+12 24 23 0.000000 0.837490 0.875494
+12 24 24 0.000000 0.839899 0.889045
+12 24 25 0.000000 0.842001 0.899844
+12 24 26 0.000000 0.845062 0.908015
+12 24 27 0.000000 0.848345 0.915579
+12 24 28 0.000000 0.850999 0.920933
+12 24 29 0.000000 0.853563 0.925971
+12 24 30 0.000000 0.855648 0.929814
+12 24 31 0.000000 0.857701 0.933577
+12 25 0 0.412332 0.650609 0.000000
+12 25 1 0.408093 0.655358 0.000000
+12 25 2 0.403806 0.660137 0.000000
+12 25 3 0.398797 0.665374 0.000000
+12 25 4 0.393315 0.670799 0.000000
+12 25 5 0.384511 0.677545 0.000000
+12 25 6 0.373467 0.685126 0.000000
+12 25 7 0.352718 0.696322 0.000000
+12 25 8 0.332855 0.708434 0.000000
+12 25 9 0.315650 0.723294 0.067471
+12 25 10 0.294449 0.738192 0.203119
+12 25 11 0.264455 0.753175 0.291232
+12 25 12 0.207834 0.767305 0.372853
+12 25 13 0.106834 0.780012 0.443651
+12 25 14 0.034024 0.792024 0.510958
+12 25 15 0.000000 0.803143 0.573776
+12 25 16 0.000000 0.812790 0.630800
+12 25 17 0.000000 0.820964 0.682031
+12 25 18 0.000000 0.827971 0.728503
+12 25 19 0.000000 0.834069 0.771273
+12 25 20 0.000000 0.838845 0.805874
+12 25 21 0.000000 0.842828 0.835572
+12 25 22 0.000000 0.846040 0.859264
+12 25 23 0.000000 0.848902 0.880224
+12 25 24 0.000000 0.851109 0.893339
+12 25 25 0.000000 0.853099 0.903837
+12 25 26 0.000000 0.856016 0.911737
+12 25 27 0.000000 0.859147 0.919038
+12 25 28 0.000000 0.861668 0.924245
+12 25 29 0.000000 0.864102 0.929153
+12 25 30 0.000000 0.866056 0.932865
+12 25 31 0.000000 0.867979 0.936497
+12 26 0 0.421599 0.661144 0.000000
+12 26 1 0.417302 0.666036 0.000000
+12 26 2 0.412937 0.670997 0.000000
+12 26 3 0.407549 0.676982 0.000000
+12 26 4 0.401607 0.683306 0.000000
+12 26 5 0.391794 0.692008 0.000000
+12 26 6 0.379909 0.701117 0.000000
+12 26 7 0.359049 0.711989 0.000000
+12 26 8 0.339071 0.723748 0.000000
+12 26 9 0.321742 0.738171 0.089464
+12 26 10 0.300857 0.752611 0.236044
+12 26 11 0.272149 0.767087 0.320431
+12 26 12 0.218414 0.780785 0.398928
+12 26 13 0.122969 0.793187 0.467610
+12 26 14 0.049224 0.804654 0.532690
+12 26 15 0.003377 0.814920 0.593139
+12 26 16 0.000000 0.823964 0.647720
+12 26 17 0.000000 0.831785 0.696434
+12 26 18 0.000000 0.838522 0.741236
+12 26 19 0.000000 0.844416 0.782996
+12 26 20 0.000000 0.848950 0.815765
+12 26 21 0.000000 0.852667 0.843140
+12 26 22 0.000000 0.855683 0.865660
+12 26 23 0.000000 0.858380 0.885975
+12 26 24 0.000000 0.860530 0.898874
+12 26 25 0.000000 0.862499 0.909301
+12 26 26 0.000000 0.864792 0.916291
+12 26 27 0.000000 0.867161 0.922487
+12 26 28 0.000000 0.869565 0.927468
+12 26 29 0.000000 0.871974 0.932275
+12 26 30 0.000000 0.873904 0.935972
+12 26 31 0.000000 0.875802 0.939594
+12 27 0 0.431210 0.670840 0.000000
+12 27 1 0.426983 0.675656 0.000000
+12 27 2 0.422663 0.680591 0.000000
+12 27 3 0.416924 0.687310 0.000000
+12 27 4 0.410519 0.694581 0.000000
+12 27 5 0.399447 0.705712 0.000000
+12 27 6 0.386536 0.716767 0.000000
+12 27 7 0.365658 0.727486 0.000000
+12 27 8 0.345638 0.738996 0.000000
+12 27 9 0.328187 0.752873 0.113269
+12 27 10 0.307685 0.766774 0.271519
+12 27 11 0.280471 0.780725 0.351353
+12 27 12 0.230256 0.793969 0.426153
+12 27 13 0.141709 0.806034 0.492563
+12 27 14 0.067061 0.816932 0.555280
+12 27 15 0.010286 0.826331 0.613248
+12 27 16 0.000000 0.834735 0.665265
+12 27 17 0.000000 0.842144 0.711331
+12 27 18 0.000000 0.848615 0.754456
+12 27 19 0.000000 0.854357 0.795294
+12 27 20 0.000000 0.858610 0.826120
+12 27 21 0.000000 0.861969 0.850937
+12 27 22 0.000000 0.864808 0.872246
+12 27 23 0.000000 0.867412 0.891960
+12 27 24 0.000000 0.869539 0.904695
+12 27 25 0.000000 0.871507 0.915104
+12 27 26 0.000000 0.873066 0.921036
+12 27 27 0.000000 0.874531 0.925935
+12 27 28 0.000000 0.876822 0.930671
+12 27 29 0.000000 0.879231 0.935383
+12 27 30 0.000000 0.881161 0.939091
+12 27 31 0.000000 0.883059 0.942732
+12 28 0 0.437934 0.677857 0.000000
+12 28 1 0.433717 0.682730 0.000000
+12 28 2 0.429398 0.687724 0.000000
+12 28 3 0.423554 0.694535 0.000000
+12 28 4 0.417034 0.701963 0.000000
+12 28 5 0.405774 0.713711 0.000000
+12 28 6 0.392683 0.725560 0.000000
+12 28 7 0.371655 0.737842 0.000000
+12 28 8 0.351418 0.750449 0.000000
+12 28 9 0.333552 0.764027 0.150540
+12 28 10 0.313564 0.777557 0.295677
+12 28 11 0.288911 0.790981 0.372392
+12 28 12 0.251927 0.803775 0.444748
+12 28 13 0.194392 0.815519 0.509839
+12 28 14 0.132611 0.826104 0.571088
+12 28 15 0.065371 0.835198 0.627398
+12 28 16 0.025403 0.843300 0.678207
+12 28 17 0.012706 0.850410 0.723515
+12 28 18 0.000000 0.856573 0.765263
+12 28 19 0.000000 0.862000 0.804242
+12 28 20 0.000000 0.866096 0.833893
+12 28 21 0.000000 0.869394 0.857948
+12 28 22 0.000000 0.872115 0.878186
+12 28 23 0.000000 0.874574 0.896689
+12 28 24 0.000000 0.876604 0.909022
+12 28 25 0.000000 0.878490 0.919299
+12 28 26 0.000000 0.879996 0.925128
+12 28 27 0.000000 0.881414 0.929931
+12 28 28 0.000000 0.883151 0.933996
+12 28 29 0.000000 0.884934 0.937957
+12 28 30 0.000000 0.886810 0.941528
+12 28 31 0.000000 0.888692 0.945073
+12 29 0 0.444247 0.684491 0.000000
+12 29 1 0.440029 0.689440 0.000000
+12 29 2 0.435706 0.694506 0.000000
+12 29 3 0.429792 0.701316 0.000000
+12 29 4 0.423205 0.708789 0.000000
+12 29 5 0.411911 0.720895 0.000000
+12 29 6 0.398761 0.733373 0.000000
+12 29 7 0.377564 0.747463 0.000000
+12 29 8 0.357085 0.761359 0.036396
+12 29 9 0.338762 0.774674 0.189735
+12 29 10 0.319308 0.787858 0.318218
+12 29 11 0.297367 0.800754 0.392019
+12 29 12 0.275001 0.813099 0.462109
+12 29 13 0.251924 0.824525 0.526017
+12 29 14 0.204977 0.834832 0.585927
+12 29 15 0.127339 0.843701 0.640696
+12 29 16 0.076266 0.851550 0.690491
+12 29 17 0.051760 0.858379 0.735310
+12 29 18 0.022521 0.864227 0.775724
+12 29 19 0.000000 0.869314 0.812710
+12 29 20 0.000000 0.873271 0.841298
+12 29 21 0.000000 0.876551 0.864847
+12 29 22 0.000000 0.879163 0.884034
+12 29 23 0.000000 0.881470 0.901238
+12 29 24 0.000000 0.883391 0.913136
+12 29 25 0.000000 0.885183 0.923264
+12 29 26 0.000000 0.886733 0.929127
+12 29 27 0.000000 0.888226 0.934005
+12 29 28 0.000000 0.889347 0.937340
+12 29 29 0.000000 0.890414 0.940455
+12 29 30 0.000000 0.892228 0.943868
+12 29 31 0.000000 0.894092 0.947300
+12 30 0 0.448903 0.689589 0.000000
+12 30 1 0.444670 0.694542 0.000000
+12 30 2 0.440335 0.699612 0.000000
+12 30 3 0.434483 0.706423 0.000000
+12 30 4 0.427952 0.713889 0.000000
+12 30 5 0.416672 0.725947 0.000000
+12 30 6 0.403504 0.738708 0.000000
+12 30 7 0.382153 0.754517 0.003134
+12 30 8 0.361466 0.769619 0.115832
+12 30 9 0.342767 0.782599 0.232564
+12 30 10 0.323593 0.795482 0.335270
+12 30 11 0.303376 0.808151 0.407117
+12 30 12 0.283128 0.820275 0.475735
+12 30 13 0.262830 0.831487 0.538972
+12 30 14 0.229457 0.841553 0.597869
+12 30 15 0.179273 0.850144 0.651185
+12 30 16 0.139744 0.857784 0.700001
+12 30 17 0.110871 0.864472 0.744315
+12 30 18 0.063551 0.870108 0.783654
+12 30 19 0.001883 0.874927 0.819122
+12 30 20 0.000000 0.878738 0.846924
+12 30 21 0.000000 0.881946 0.870125
+12 30 22 0.000000 0.884419 0.888517
+12 30 23 0.000000 0.886557 0.904722
+12 30 24 0.000000 0.888431 0.916311
+12 30 25 0.000000 0.890218 0.926362
+12 30 26 0.000000 0.891713 0.932142
+12 30 27 0.000000 0.893140 0.936937
+12 30 28 0.000000 0.894275 0.940278
+12 30 29 0.000000 0.895369 0.943410
+12 30 30 0.000000 0.896720 0.946255
+12 30 31 0.000000 0.898088 0.949081
+12 31 0 0.453449 0.694583 0.000000
+12 31 1 0.449198 0.699537 0.000000
+12 31 2 0.444852 0.704607 0.000000
+12 31 3 0.439070 0.711418 0.000000
+12 31 4 0.432603 0.718875 0.000000
+12 31 5 0.421340 0.730856 0.000000
+12 31 6 0.408158 0.743877 0.000000
+12 31 7 0.386655 0.761400 0.058278
+12 31 8 0.365760 0.777702 0.196424
+12 31 9 0.346692 0.790342 0.275636
+12 31 10 0.327782 0.802927 0.351956
+12 31 11 0.309222 0.815391 0.421913
+12 31 12 0.290260 0.827308 0.489111
+12 31 13 0.270628 0.838314 0.551712
+12 31 14 0.250744 0.848140 0.609617
+12 31 15 0.230538 0.856449 0.661487
+12 31 16 0.204062 0.863883 0.709326
+12 31 17 0.171318 0.870441 0.753134
+12 31 18 0.105676 0.875872 0.791415
+12 31 19 0.014446 0.880426 0.825397
+12 31 20 0.000000 0.884091 0.852431
+12 31 21 0.000000 0.887223 0.875296
+12 31 22 0.000000 0.889555 0.892908
+12 31 23 0.000000 0.891524 0.908134
+12 31 24 0.000000 0.893356 0.919424
+12 31 25 0.000000 0.895142 0.929402
+12 31 26 0.000000 0.896575 0.935092
+12 31 27 0.000000 0.897927 0.939793
+12 31 28 0.000000 0.899119 0.943188
+12 31 29 0.000000 0.900288 0.946397
+12 31 30 0.000000 0.901149 0.948647
+12 31 31 0.000000 0.901990 0.950832
+13 0 0 0.197531 0.000000 0.023750
+13 0 1 0.197871 0.000000 0.026012
+13 0 2 0.198210 0.000000 0.028340
+13 0 3 0.198549 0.000000 0.031642
+13 0 4 0.198930 0.000000 0.035250
+13 0 5 0.199609 0.000000 0.040997
+13 0 6 0.200282 0.000000 0.047037
+13 0 7 0.200933 0.000000 0.054348
+13 0 8 0.201681 0.000000 0.063219
+13 0 9 0.202720 0.000000 0.076776
+13 0 10 0.204665 0.000000 0.098730
+13 0 11 0.208604 0.000000 0.139159
+13 0 12 0.212101 0.000000 0.179032
+13 0 13 0.214864 0.000000 0.217980
+13 0 14 0.219627 0.000000 0.258273
+13 0 15 0.226962 0.000000 0.300294
+13 0 16 0.233398 0.000000 0.339219
+13 0 17 0.238934 0.000000 0.375046
+13 0 18 0.244857 0.000000 0.408534
+13 0 19 0.251082 0.000000 0.440201
+13 0 20 0.256736 0.000000 0.469720
+13 0 21 0.262047 0.000000 0.497950
+13 0 22 0.268829 0.000000 0.523622
+13 0 23 0.276280 0.000000 0.548132
+13 0 24 0.285272 0.000000 0.577442
+13 0 25 0.294779 0.000000 0.608351
+13 0 26 0.309175 0.000000 0.647171
+13 0 27 0.324699 0.000000 0.687818
+13 0 28 0.333757 0.000000 0.715188
+13 0 29 0.341891 0.013079 0.740662
+13 0 30 0.347764 0.112573 0.759403
+13 0 31 0.353485 0.213646 0.777696
+13 1 0 0.203001 0.000000 0.000000
+13 1 1 0.203326 0.000000 0.012297
+13 1 2 0.203652 0.000000 0.028003
+13 1 3 0.203992 0.000047 0.031278
+13 1 4 0.204373 0.000545 0.034862
+13 1 5 0.205051 0.001337 0.040609
+13 1 6 0.205762 0.002133 0.047004
+13 1 7 0.206614 0.002952 0.056207
+13 1 8 0.207440 0.002071 0.066498
+13 1 9 0.208191 0.000000 0.080055
+13 1 10 0.209954 0.000000 0.102114
+13 1 11 0.213944 0.000000 0.142880
+13 1 12 0.217473 0.000000 0.183296
+13 1 13 0.220235 0.000000 0.223129
+13 1 14 0.224960 0.000000 0.264002
+13 1 15 0.232208 0.000000 0.306212
+13 1 16 0.238512 0.000000 0.345753
+13 1 17 0.243873 0.000000 0.382628
+13 1 18 0.249656 0.000000 0.416603
+13 1 19 0.255768 0.000000 0.448325
+13 1 20 0.261271 0.000000 0.478124
+13 1 21 0.266407 0.000000 0.506769
+13 1 22 0.272928 0.000000 0.532249
+13 1 23 0.280079 0.000000 0.556288
+13 1 24 0.287816 0.000000 0.583920
+13 1 25 0.295748 0.000000 0.612749
+13 1 26 0.309899 0.000000 0.651157
+13 1 27 0.325485 0.000000 0.691776
+13 1 28 0.334550 0.000000 0.719167
+13 1 29 0.342684 0.023275 0.744668
+13 1 30 0.348475 0.123110 0.763411
+13 1 31 0.354109 0.224182 0.781704
+13 2 0 0.208582 0.004882 0.000000
+13 2 1 0.208892 0.005116 0.000000
+13 2 2 0.209204 0.005365 0.025538
+13 2 3 0.209542 0.005856 0.029914
+13 2 4 0.209924 0.006377 0.034462
+13 2 5 0.210606 0.007106 0.040213
+13 2 6 0.211357 0.007952 0.046968
+13 2 7 0.212406 0.009306 0.058069
+13 2 8 0.213308 0.009095 0.069792
+13 2 9 0.213764 0.004187 0.083382
+13 2 10 0.215344 0.000000 0.105573
+13 2 11 0.219398 0.000000 0.146686
+13 2 12 0.222966 0.000000 0.187655
+13 2 13 0.225726 0.000000 0.228384
+13 2 14 0.230409 0.000000 0.269847
+13 2 15 0.237564 0.000000 0.312257
+13 2 16 0.243729 0.000000 0.352431
+13 2 17 0.248906 0.000000 0.390371
+13 2 18 0.254549 0.000000 0.424846
+13 2 19 0.260555 0.000000 0.456627
+13 2 20 0.265901 0.000000 0.486710
+13 2 21 0.270852 0.000000 0.515775
+13 2 22 0.277107 0.000000 0.541056
+13 2 23 0.283956 0.000000 0.564618
+13 2 24 0.290493 0.000000 0.590640
+13 2 25 0.296925 0.000000 0.617483
+13 2 26 0.310754 0.000000 0.655388
+13 2 27 0.326289 0.000000 0.695845
+13 2 28 0.335351 0.000000 0.723240
+13 2 29 0.343489 0.033678 0.748769
+13 2 30 0.349203 0.133864 0.767514
+13 2 31 0.354755 0.234942 0.785807
+13 3 0 0.215819 0.012680 0.000000
+13 3 1 0.216104 0.012886 0.000000
+13 3 2 0.216391 0.013108 0.000000
+13 3 3 0.216715 0.013559 0.013549
+13 3 4 0.217092 0.014046 0.033877
+13 3 5 0.217836 0.014774 0.039695
+13 3 6 0.218668 0.015716 0.046876
+13 3 7 0.219882 0.017579 0.059964
+13 3 8 0.220805 0.018125 0.073311
+13 3 9 0.220861 0.014716 0.087438
+13 3 10 0.222248 0.000000 0.110157
+13 3 11 0.226564 0.000000 0.151780
+13 3 12 0.230282 0.000000 0.193455
+13 3 13 0.233006 0.000000 0.235218
+13 3 14 0.237591 0.000000 0.277428
+13 3 15 0.244571 0.000000 0.320213
+13 3 16 0.250487 0.000000 0.361253
+13 3 17 0.255338 0.000000 0.400549
+13 3 18 0.260839 0.000000 0.435686
+13 3 19 0.266846 0.000000 0.467588
+13 3 20 0.271973 0.000000 0.498018
+13 3 21 0.276574 0.000000 0.527565
+13 3 22 0.282479 0.000000 0.552582
+13 3 23 0.288977 0.000000 0.575540
+13 3 24 0.295164 0.000000 0.600988
+13 3 25 0.301247 0.000000 0.627267
+13 3 26 0.313587 0.000000 0.663299
+13 3 27 0.327372 0.000000 0.701582
+13 3 28 0.336270 0.000000 0.728740
+13 3 29 0.344470 0.047172 0.754308
+13 3 30 0.350188 0.147897 0.773056
+13 3 31 0.355740 0.249069 0.791349
+13 4 0 0.223749 0.021225 0.000000
+13 4 1 0.224014 0.021407 0.000000
+13 4 2 0.224283 0.021604 0.000000
+13 4 3 0.224591 0.022012 0.000000
+13 4 4 0.224960 0.022459 0.026373
+13 4 5 0.225752 0.023167 0.036039
+13 4 6 0.226650 0.024177 0.046673
+13 4 7 0.228007 0.026490 0.061499
+13 4 8 0.228961 0.027752 0.076405
+13 4 9 0.228708 0.025862 0.091550
+13 4 10 0.229943 0.012561 0.115146
+13 4 11 0.234453 0.000000 0.157336
+13 4 12 0.238279 0.000000 0.199798
+13 4 13 0.240965 0.000000 0.242714
+13 4 14 0.245443 0.000000 0.285745
+13 4 15 0.252223 0.000000 0.328925
+13 4 16 0.257867 0.000000 0.370908
+13 4 17 0.262375 0.000000 0.411695
+13 4 18 0.267720 0.000000 0.447564
+13 4 19 0.273717 0.000000 0.479607
+13 4 20 0.278617 0.000000 0.510411
+13 4 21 0.282860 0.000000 0.540471
+13 4 22 0.288392 0.000000 0.565222
+13 4 23 0.294511 0.000000 0.587561
+13 4 24 0.300356 0.000000 0.612461
+13 4 25 0.306111 0.000000 0.638215
+13 4 26 0.316796 0.000000 0.672130
+13 4 27 0.328619 0.000000 0.707930
+13 4 28 0.337297 0.000000 0.734782
+13 4 29 0.345525 0.061986 0.760357
+13 4 30 0.351251 0.163281 0.779101
+13 4 31 0.356811 0.264535 0.797391
+13 5 0 0.236527 0.034999 0.000000
+13 5 1 0.236818 0.035181 0.000000
+13 5 2 0.237108 0.035373 0.000000
+13 5 3 0.237392 0.035716 0.000000
+13 5 4 0.237732 0.036083 0.000000
+13 5 5 0.238470 0.036631 0.010423
+13 5 6 0.239324 0.037515 0.045692
+13 5 7 0.240681 0.039855 0.060518
+13 5 8 0.241720 0.041553 0.076520
+13 5 9 0.241805 0.041325 0.096054
+13 5 10 0.243184 0.034175 0.122970
+13 5 11 0.247405 0.011795 0.166127
+13 5 12 0.251038 0.000000 0.209939
+13 5 13 0.253688 0.000000 0.254841
+13 5 14 0.257980 0.000000 0.299220
+13 5 15 0.264384 0.000000 0.342924
+13 5 16 0.269603 0.000000 0.386391
+13 5 17 0.273637 0.000000 0.429619
+13 5 18 0.278732 0.000000 0.466715
+13 5 19 0.284653 0.000000 0.499040
+13 5 20 0.289267 0.000000 0.530403
+13 5 21 0.293097 0.000000 0.561187
+13 5 22 0.298097 0.000000 0.585667
+13 5 23 0.303629 0.000000 0.607281
+13 5 24 0.309196 0.000000 0.631809
+13 5 25 0.314776 0.000000 0.657307
+13 5 26 0.322634 0.000000 0.687400
+13 5 27 0.331019 0.000000 0.718553
+13 5 28 0.339081 0.000000 0.744626
+13 5 29 0.347097 0.086029 0.769973
+13 5 30 0.352868 0.188126 0.788678
+13 5 31 0.358491 0.289380 0.806940
+13 6 0 0.250523 0.050042 0.000000
+13 6 1 0.250868 0.050401 0.000000
+13 6 2 0.251208 0.050755 0.000000
+13 6 3 0.251482 0.051043 0.000000
+13 6 4 0.251805 0.051346 0.000000
+13 6 5 0.252469 0.051758 0.000000
+13 6 6 0.253240 0.052529 0.043388
+13 6 7 0.254474 0.054856 0.059070
+13 6 8 0.255532 0.056966 0.076907
+13 6 9 0.256061 0.058429 0.101210
+13 6 10 0.257615 0.056890 0.131736
+13 6 11 0.261426 0.048747 0.175951
+13 6 12 0.264811 0.028974 0.221209
+13 6 13 0.267488 0.000000 0.268207
+13 6 14 0.271534 0.000000 0.314111
+13 6 15 0.277342 0.000000 0.358610
+13 6 16 0.282084 0.000000 0.403551
+13 6 17 0.285761 0.000000 0.448934
+13 6 18 0.290565 0.000000 0.487389
+13 6 19 0.296244 0.000000 0.520458
+13 6 20 0.300563 0.000000 0.552456
+13 6 21 0.304066 0.000000 0.583811
+13 6 22 0.308530 0.000000 0.608230
+13 6 23 0.313431 0.000000 0.629494
+13 6 24 0.318562 0.000000 0.653450
+13 6 25 0.323769 0.000000 0.678303
+13 6 26 0.329288 0.000000 0.705211
+13 6 27 0.334879 0.000000 0.732594
+13 6 28 0.341946 0.012441 0.757373
+13 6 29 0.349224 0.128484 0.781780
+13 6 30 0.354576 0.223475 0.799891
+13 6 31 0.359800 0.317063 0.817582
+13 7 0 0.269800 0.070586 0.000000
+13 7 1 0.270320 0.071885 0.000000
+13 7 2 0.270828 0.073120 0.000000
+13 7 3 0.271164 0.073408 0.000000
+13 7 4 0.271521 0.073708 0.000000
+13 7 5 0.272021 0.074093 0.000000
+13 7 6 0.272537 0.074806 0.035353
+13 7 7 0.273119 0.076941 0.055599
+13 7 8 0.273911 0.079362 0.078465
+13 7 9 0.275331 0.082638 0.109189
+13 7 10 0.277204 0.084376 0.144582
+13 7 11 0.280072 0.082729 0.190247
+13 7 12 0.282981 0.076122 0.237373
+13 7 13 0.285960 0.061245 0.286937
+13 7 14 0.289496 0.047520 0.335143
+13 7 15 0.293748 0.035277 0.381604
+13 7 16 0.297788 0.028015 0.427981
+13 7 17 0.301618 0.025733 0.474274
+13 7 18 0.305952 0.025040 0.514668
+13 7 19 0.310677 0.025584 0.550475
+13 7 20 0.314663 0.026776 0.583441
+13 7 21 0.318205 0.028357 0.614703
+13 7 22 0.322118 0.031778 0.639970
+13 7 23 0.326201 0.036035 0.662511
+13 7 24 0.330208 0.047707 0.685030
+13 7 25 0.334190 0.061851 0.707541
+13 7 26 0.339479 0.089557 0.734033
+13 7 27 0.345069 0.120394 0.761443
+13 7 28 0.349496 0.183269 0.782701
+13 7 29 0.353756 0.250721 0.803080
+13 7 30 0.356675 0.304344 0.818196
+13 7 31 0.359504 0.357046 0.832960
+13 8 0 0.287420 0.090843 0.000000
+13 8 1 0.288043 0.092703 0.000000
+13 8 2 0.288655 0.094482 0.000000
+13 8 3 0.289110 0.095062 0.000000
+13 8 4 0.289573 0.095684 0.000000
+13 8 5 0.290088 0.096595 0.000000
+13 8 6 0.290548 0.097842 0.016863
+13 8 7 0.290769 0.100540 0.048016
+13 8 8 0.291384 0.103717 0.080296
+13 8 9 0.293179 0.108330 0.115960
+13 8 10 0.295083 0.112691 0.155364
+13 8 11 0.297224 0.116498 0.202996
+13 8 12 0.299617 0.120262 0.252215
+13 8 13 0.302429 0.123956 0.304082
+13 8 14 0.305298 0.127078 0.354419
+13 8 15 0.308242 0.129464 0.402788
+13 8 16 0.311569 0.131191 0.450641
+13 8 17 0.315279 0.132260 0.497980
+13 8 18 0.319122 0.133332 0.540083
+13 8 19 0.323069 0.134407 0.578116
+13 8 20 0.326644 0.136492 0.611893
+13 8 21 0.329998 0.139183 0.643118
+13 8 22 0.333391 0.144918 0.669001
+13 8 23 0.336802 0.152039 0.692456
+13 8 24 0.339786 0.170897 0.713791
+13 8 25 0.342628 0.193667 0.734420
+13 8 26 0.347376 0.238096 0.760048
+13 8 27 0.352563 0.287523 0.786830
+13 8 28 0.354742 0.320382 0.805011
+13 8 29 0.356491 0.350874 0.821963
+13 8 30 0.357396 0.373096 0.834505
+13 8 31 0.358245 0.394765 0.846752
+13 9 0 0.300073 0.110241 0.000000
+13 9 1 0.300582 0.111524 0.000000
+13 9 2 0.301107 0.112837 0.000000
+13 9 3 0.301850 0.114584 0.000000
+13 9 4 0.302633 0.116501 0.000000
+13 9 5 0.303699 0.119602 0.000000
+13 9 6 0.304702 0.123158 0.000000
+13 9 7 0.305437 0.128679 0.028094
+13 9 8 0.306143 0.133950 0.082947
+13 9 9 0.306761 0.138469 0.119109
+13 9 10 0.307832 0.143491 0.159954
+13 9 11 0.309897 0.149622 0.211104
+13 9 12 0.311651 0.155382 0.263091
+13 9 13 0.312888 0.160526 0.316475
+13 9 14 0.314624 0.165080 0.368427
+13 9 15 0.317003 0.168876 0.418540
+13 9 16 0.319579 0.172141 0.467992
+13 9 17 0.322351 0.174875 0.516783
+13 9 18 0.325643 0.177099 0.559908
+13 9 19 0.329338 0.178926 0.598625
+13 9 20 0.332273 0.181570 0.632743
+13 9 21 0.334751 0.184703 0.664101
+13 9 22 0.337716 0.191057 0.689905
+13 9 23 0.340901 0.198875 0.713185
+13 9 24 0.343164 0.216990 0.734096
+13 9 25 0.345119 0.238539 0.754218
+13 9 26 0.348391 0.279860 0.777644
+13 9 27 0.351966 0.325745 0.801833
+13 9 28 0.353076 0.356351 0.818268
+13 9 29 0.353834 0.384775 0.833594
+13 9 30 0.353984 0.405493 0.844825
+13 9 31 0.354093 0.425698 0.855784
+13 10 0 0.313906 0.135492 0.000000
+13 10 1 0.314374 0.136627 0.000000
+13 10 2 0.314870 0.137858 0.000000
+13 10 3 0.315795 0.140535 0.000000
+13 10 4 0.316784 0.143479 0.000000
+13 10 5 0.318224 0.148304 0.000000
+13 10 6 0.319564 0.153578 0.000000
+13 10 7 0.320475 0.160798 0.010414
+13 10 8 0.321115 0.167498 0.083444
+13 10 9 0.320938 0.172640 0.121679
+13 10 10 0.321256 0.178652 0.164893
+13 10 11 0.322662 0.186576 0.219061
+13 10 12 0.323531 0.193967 0.273518
+13 10 13 0.323504 0.200469 0.328456
+13 10 14 0.324149 0.206336 0.382162
+13 10 15 0.325659 0.211387 0.434284
+13 10 16 0.327489 0.216068 0.485349
+13 10 17 0.329640 0.220378 0.535357
+13 10 18 0.332314 0.223777 0.579428
+13 10 19 0.335394 0.226465 0.618881
+13 10 20 0.337588 0.229709 0.653348
+13 10 21 0.339249 0.233285 0.684822
+13 10 22 0.341539 0.239902 0.710652
+13 10 23 0.344116 0.247902 0.733915
+13 10 24 0.345626 0.265150 0.754278
+13 10 25 0.346780 0.285480 0.773674
+13 10 26 0.348725 0.323334 0.794741
+13 10 27 0.350853 0.365230 0.816195
+13 10 28 0.351047 0.393540 0.830950
+13 10 29 0.350964 0.419908 0.844747
+13 10 30 0.350524 0.439303 0.854879
+13 10 31 0.350059 0.458232 0.864766
+13 11 0 0.330338 0.173624 0.000000
+13 11 1 0.330919 0.175550 0.000000
+13 11 2 0.331517 0.177548 0.000000
+13 11 3 0.332392 0.180628 0.000000
+13 11 4 0.333335 0.184013 0.000000
+13 11 5 0.334760 0.189536 0.000000
+13 11 6 0.335983 0.195230 0.000000
+13 11 7 0.336327 0.201670 0.000000
+13 11 8 0.336552 0.208336 0.079200
+13 11 9 0.336424 0.215680 0.122976
+13 11 10 0.336168 0.223403 0.170600
+13 11 11 0.335632 0.231958 0.226688
+13 11 12 0.335070 0.240177 0.282958
+13 11 13 0.334468 0.247834 0.339534
+13 11 14 0.334114 0.254751 0.395296
+13 11 15 0.334082 0.260714 0.450011
+13 11 16 0.335178 0.266543 0.502721
+13 11 17 0.337403 0.272237 0.553427
+13 11 18 0.339313 0.276859 0.598279
+13 11 19 0.340979 0.280649 0.638578
+13 11 20 0.342212 0.284582 0.673412
+13 11 21 0.343184 0.288601 0.704965
+13 11 22 0.344261 0.294702 0.731051
+13 11 23 0.345387 0.301749 0.754651
+13 11 24 0.346075 0.317854 0.774190
+13 11 25 0.346616 0.336977 0.792375
+13 11 26 0.347563 0.370568 0.810740
+13 11 27 0.348604 0.407497 0.829145
+13 11 28 0.348217 0.433412 0.842367
+13 11 29 0.347627 0.457755 0.854849
+13 11 30 0.346958 0.476218 0.864343
+13 11 31 0.346285 0.494289 0.873639
+13 12 0 0.346723 0.213385 0.000000
+13 12 1 0.347336 0.215937 0.000000
+13 12 2 0.347961 0.218549 0.000000
+13 12 3 0.348765 0.222062 0.000000
+13 12 4 0.349630 0.225923 0.000000
+13 12 5 0.350919 0.232224 0.000000
+13 12 6 0.351958 0.238668 0.000000
+13 12 7 0.351920 0.245734 0.000000
+13 12 8 0.351751 0.253282 0.053318
+13 12 9 0.351192 0.262274 0.114233
+13 12 10 0.350163 0.271400 0.174393
+13 12 11 0.348098 0.280818 0.232893
+13 12 12 0.346150 0.290037 0.291514
+13 12 13 0.344398 0.298925 0.350336
+13 12 14 0.342911 0.306949 0.408247
+13 12 15 0.341765 0.313861 0.464985
+13 12 16 0.341876 0.320789 0.519255
+13 12 17 0.343244 0.327734 0.571056
+13 12 18 0.344137 0.333348 0.616761
+13 12 19 0.344661 0.337927 0.657725
+13 12 20 0.344782 0.342306 0.693118
+13 12 21 0.344662 0.346567 0.725169
+13 12 22 0.344597 0.352241 0.751240
+13 12 23 0.344558 0.358558 0.774594
+13 12 24 0.344436 0.373257 0.793390
+13 12 25 0.344286 0.390750 0.810668
+13 12 26 0.344339 0.420331 0.826839
+13 12 27 0.344439 0.452700 0.842755
+13 12 28 0.343520 0.476136 0.854532
+13 12 29 0.342457 0.498295 0.865718
+13 12 30 0.341486 0.515425 0.874398
+13 12 31 0.340521 0.532219 0.882911
+13 13 0 0.363030 0.255865 0.000000
+13 13 1 0.363541 0.258766 0.000000
+13 13 2 0.364064 0.261735 0.000000
+13 13 3 0.364767 0.265730 0.000000
+13 13 4 0.365500 0.270127 0.000000
+13 13 5 0.366447 0.277341 0.000000
+13 13 6 0.367195 0.285084 0.000000
+13 13 7 0.367084 0.295119 0.000000
+13 13 8 0.366553 0.305075 0.000000
+13 13 9 0.364766 0.314792 0.088755
+13 13 10 0.362630 0.324806 0.174998
+13 13 11 0.359726 0.335474 0.236731
+13 13 12 0.356465 0.345983 0.298595
+13 13 13 0.352606 0.356226 0.360678
+13 13 14 0.349759 0.365453 0.420892
+13 13 15 0.348212 0.373372 0.478704
+13 13 16 0.346920 0.381319 0.534390
+13 13 17 0.345882 0.389295 0.587950
+13 13 18 0.345336 0.395512 0.634628
+13 13 19 0.345171 0.400361 0.675953
+13 13 20 0.343931 0.404783 0.712228
+13 13 21 0.342046 0.408949 0.745474
+13 13 22 0.340957 0.414346 0.771081
+13 13 23 0.340228 0.420302 0.793215
+13 13 24 0.339318 0.433159 0.811404
+13 13 25 0.338347 0.448318 0.828279
+13 13 26 0.337679 0.474308 0.843108
+13 13 27 0.337081 0.502798 0.857465
+13 13 28 0.335713 0.523610 0.867943
+13 13 29 0.334234 0.543325 0.877866
+13 13 30 0.332834 0.558451 0.885436
+13 13 31 0.331440 0.573271 0.892848
+13 14 0 0.379728 0.304934 0.000000
+13 14 1 0.380068 0.307937 0.000000
+13 14 2 0.380412 0.311010 0.000000
+13 14 3 0.380839 0.315153 0.000000
+13 14 4 0.381265 0.319713 0.000000
+13 14 5 0.381687 0.327194 0.000000
+13 14 6 0.381860 0.335460 0.000000
+13 14 7 0.380960 0.347131 0.000000
+13 14 8 0.379524 0.358572 0.000000
+13 14 9 0.376481 0.369325 0.068424
+13 14 10 0.373007 0.380431 0.173617
+13 14 11 0.368584 0.392313 0.239106
+13 14 12 0.363769 0.403964 0.304268
+13 14 13 0.358303 0.415230 0.368883
+13 14 14 0.353804 0.425505 0.431208
+13 14 15 0.350548 0.434508 0.490588
+13 14 16 0.347663 0.443205 0.547552
+13 14 17 0.345148 0.451596 0.602102
+13 14 18 0.342850 0.458233 0.649727
+13 14 19 0.340722 0.463504 0.691966
+13 14 20 0.338026 0.467926 0.728986
+13 14 21 0.334991 0.471839 0.762874
+13 14 22 0.332698 0.476836 0.788452
+13 14 23 0.330742 0.482325 0.810252
+13 14 24 0.329033 0.493507 0.827950
+13 14 25 0.327408 0.506587 0.844280
+13 14 26 0.326544 0.528959 0.857874
+13 14 27 0.325857 0.553474 0.870837
+13 14 28 0.324134 0.571317 0.880118
+13 14 29 0.322264 0.588206 0.888873
+13 14 30 0.320828 0.601300 0.895535
+13 14 31 0.319421 0.614140 0.902057
+13 15 0 0.396932 0.362475 0.000000
+13 15 1 0.397008 0.365262 0.000000
+13 15 2 0.397076 0.368116 0.000000
+13 15 3 0.397003 0.371977 0.000000
+13 15 4 0.396897 0.376220 0.000000
+13 15 5 0.396556 0.383136 0.000000
+13 15 6 0.395790 0.390929 0.000000
+13 15 7 0.393181 0.402521 0.000000
+13 15 8 0.390141 0.414262 0.000000
+13 15 9 0.385809 0.426449 0.054709
+13 15 10 0.380699 0.438907 0.169683
+13 15 11 0.373878 0.451961 0.239600
+13 15 12 0.367203 0.464565 0.308128
+13 15 13 0.360772 0.476422 0.374343
+13 15 14 0.354246 0.487547 0.438530
+13 15 15 0.347600 0.497733 0.500111
+13 15 16 0.342876 0.506833 0.558177
+13 15 17 0.340076 0.514848 0.612726
+13 15 18 0.335627 0.521668 0.661265
+13 15 19 0.329896 0.527558 0.705130
+13 15 20 0.325624 0.531927 0.742718
+13 15 21 0.322227 0.535382 0.776540
+13 15 22 0.318501 0.539820 0.802649
+13 15 23 0.314626 0.544705 0.825253
+13 15 24 0.312107 0.554427 0.842608
+13 15 25 0.310041 0.565760 0.858214
+13 15 26 0.309657 0.584475 0.870711
+13 15 27 0.309661 0.604893 0.882491
+13 15 28 0.307709 0.619322 0.890706
+13 15 29 0.305477 0.632897 0.898411
+13 15 30 0.304508 0.643921 0.904427
+13 15 31 0.303623 0.654775 0.910331
+13 16 0 0.411389 0.413965 0.000000
+13 16 1 0.411253 0.416960 0.000000
+13 16 2 0.411099 0.420026 0.000000
+13 16 3 0.410681 0.424141 0.000000
+13 16 4 0.410205 0.428664 0.000000
+13 16 5 0.409312 0.436043 0.000000
+13 16 6 0.407834 0.444243 0.000000
+13 16 7 0.403821 0.455997 0.000000
+13 16 8 0.399360 0.468090 0.000000
+13 16 9 0.393555 0.481196 0.045056
+13 16 10 0.386853 0.494514 0.164035
+13 16 11 0.378181 0.508300 0.238258
+13 16 12 0.369558 0.521619 0.310250
+13 16 13 0.361017 0.534161 0.378525
+13 16 14 0.352359 0.545776 0.444588
+13 16 15 0.343550 0.556198 0.507807
+13 16 16 0.336341 0.565645 0.567104
+13 16 17 0.330731 0.574117 0.622478
+13 16 18 0.319760 0.581163 0.671889
+13 16 19 0.304617 0.587100 0.716660
+13 16 20 0.296399 0.591627 0.754911
+13 16 21 0.292336 0.595308 0.789250
+13 16 22 0.288515 0.599337 0.815581
+13 16 23 0.284803 0.603525 0.838271
+13 16 24 0.282300 0.611692 0.855144
+13 16 25 0.280199 0.621186 0.870078
+13 16 26 0.280143 0.636519 0.881723
+13 16 27 0.280558 0.653199 0.892610
+13 16 28 0.279044 0.664777 0.900048
+13 16 29 0.277254 0.675626 0.906994
+13 16 30 0.276708 0.684932 0.912496
+13 16 31 0.276246 0.694134 0.917903
+13 17 0 0.423101 0.459407 0.000000
+13 17 1 0.422801 0.463033 0.000000
+13 17 2 0.422481 0.466739 0.000000
+13 17 3 0.421875 0.471646 0.000000
+13 17 4 0.421190 0.477048 0.000000
+13 17 5 0.419955 0.485916 0.000000
+13 17 6 0.417993 0.495401 0.000000
+13 17 7 0.412879 0.507559 0.000000
+13 17 8 0.407179 0.520055 0.000000
+13 17 9 0.399719 0.533564 0.039464
+13 17 10 0.391472 0.547252 0.156675
+13 17 11 0.381492 0.561332 0.235080
+13 17 12 0.370832 0.575127 0.310632
+13 17 13 0.359039 0.588449 0.381430
+13 17 14 0.348143 0.600191 0.449382
+13 17 15 0.338400 0.609904 0.513675
+13 17 16 0.328056 0.619640 0.574334
+13 17 17 0.317114 0.629401 0.631358
+13 17 18 0.295247 0.636716 0.681596
+13 17 19 0.264885 0.642128 0.726556
+13 17 20 0.250352 0.647027 0.765565
+13 17 21 0.245318 0.651618 0.801006
+13 17 22 0.242738 0.655388 0.827246
+13 17 23 0.241273 0.658784 0.849306
+13 17 24 0.239611 0.665304 0.865557
+13 17 25 0.237884 0.672866 0.879872
+13 17 26 0.238003 0.685091 0.890911
+13 17 27 0.238548 0.698392 0.901194
+13 17 28 0.238139 0.707680 0.908146
+13 17 29 0.237594 0.716394 0.914621
+13 17 30 0.237428 0.724332 0.919742
+13 17 31 0.237288 0.732218 0.924772
+13 18 0 0.433898 0.504666 0.000000
+13 18 1 0.433260 0.508108 0.000000
+13 18 2 0.432600 0.511624 0.000000
+13 18 3 0.431630 0.516274 0.000000
+13 18 4 0.430548 0.521435 0.000000
+13 18 5 0.428686 0.530176 0.000000
+13 18 6 0.425993 0.539675 0.000000
+13 18 7 0.419697 0.552455 0.000000
+13 18 8 0.412807 0.565453 0.000000
+13 18 9 0.404138 0.579108 0.028360
+13 18 10 0.394472 0.593024 0.142148
+13 18 11 0.382613 0.607513 0.229145
+13 18 12 0.370014 0.621677 0.310734
+13 18 13 0.356182 0.635302 0.383308
+13 18 14 0.338965 0.647506 0.452941
+13 18 15 0.317396 0.657882 0.518792
+13 18 16 0.300922 0.667862 0.580477
+13 18 17 0.289544 0.677446 0.637997
+13 18 18 0.268549 0.684882 0.688846
+13 18 19 0.240075 0.690647 0.734507
+13 18 20 0.226320 0.695592 0.773830
+13 18 21 0.221398 0.700045 0.809351
+13 18 22 0.219313 0.703705 0.835806
+13 18 23 0.218517 0.707003 0.858141
+13 18 24 0.217197 0.712378 0.874059
+13 18 25 0.215703 0.718445 0.887839
+13 18 26 0.216082 0.728156 0.898348
+13 18 27 0.216893 0.738708 0.908103
+13 18 28 0.217147 0.746260 0.914716
+13 18 29 0.217322 0.753383 0.920880
+13 18 30 0.217431 0.759797 0.925699
+13 18 31 0.217536 0.766164 0.930428
+13 19 0 0.443985 0.549784 0.000000
+13 19 1 0.442872 0.552407 0.000000
+13 19 2 0.441737 0.555089 0.000000
+13 19 3 0.440267 0.558665 0.000000
+13 19 4 0.438642 0.562713 0.000000
+13 19 5 0.435930 0.570072 0.000000
+13 19 6 0.432312 0.578595 0.000000
+13 19 7 0.424771 0.592167 0.000000
+13 19 8 0.416732 0.605745 0.000000
+13 19 9 0.407199 0.619346 0.012967
+13 19 10 0.396213 0.633379 0.122047
+13 19 11 0.382030 0.648365 0.221067
+13 19 12 0.367569 0.662816 0.310618
+13 19 13 0.352641 0.676374 0.384387
+13 19 14 0.325928 0.689297 0.455539
+13 19 15 0.284063 0.701406 0.523325
+13 19 16 0.259127 0.711593 0.585776
+13 19 17 0.251123 0.719862 0.642892
+13 19 18 0.240152 0.727303 0.694184
+13 19 19 0.226872 0.734102 0.740946
+13 19 20 0.219412 0.738840 0.780236
+13 19 21 0.215444 0.742340 0.815045
+13 19 22 0.213272 0.746007 0.841950
+13 19 23 0.211918 0.749749 0.865265
+13 19 24 0.210551 0.754367 0.881075
+13 19 25 0.209181 0.759278 0.894385
+13 19 26 0.209886 0.766937 0.904425
+13 19 27 0.211070 0.775229 0.913709
+13 19 28 0.211642 0.781477 0.920099
+13 19 29 0.212128 0.787433 0.926075
+13 19 30 0.212431 0.792202 0.930654
+13 19 31 0.212722 0.796891 0.935141
+13 20 0 0.452065 0.582052 0.000000
+13 20 1 0.450750 0.584870 0.000000
+13 20 2 0.449408 0.587751 0.000000
+13 20 3 0.447671 0.591585 0.000000
+13 20 4 0.445737 0.595909 0.000000
+13 20 5 0.442422 0.603653 0.000000
+13 20 6 0.438103 0.612375 0.000000
+13 20 7 0.429432 0.625337 0.000000
+13 20 8 0.420264 0.638624 0.000000
+13 20 9 0.409607 0.652885 0.008361
+13 20 10 0.397425 0.667417 0.116102
+13 20 11 0.381884 0.682548 0.218944
+13 20 12 0.362665 0.697180 0.311388
+13 20 13 0.337314 0.710980 0.386502
+13 20 14 0.305689 0.723983 0.458683
+13 20 15 0.265994 0.735959 0.527092
+13 20 16 0.242312 0.746452 0.590300
+13 20 17 0.234641 0.755460 0.648305
+13 20 18 0.227108 0.762986 0.699944
+13 20 19 0.219681 0.769360 0.746632
+13 20 20 0.214179 0.774229 0.786121
+13 20 21 0.209831 0.778195 0.821291
+13 20 22 0.207557 0.781648 0.848066
+13 20 23 0.206226 0.784868 0.871025
+13 20 24 0.204725 0.788559 0.886558
+13 20 25 0.203169 0.792408 0.899616
+13 20 26 0.203984 0.798028 0.909234
+13 20 27 0.205346 0.804057 0.918058
+13 20 28 0.206213 0.808846 0.924204
+13 20 29 0.207009 0.813458 0.929967
+13 20 30 0.207615 0.817388 0.934370
+13 20 31 0.208209 0.821272 0.938682
+13 21 0 0.458941 0.606609 0.000000
+13 21 1 0.457586 0.610230 0.000000
+13 21 2 0.456199 0.613931 0.000000
+13 21 3 0.454335 0.618824 0.000000
+13 21 4 0.452233 0.624255 0.000000
+13 21 5 0.448464 0.633446 0.000000
+13 21 6 0.443577 0.643072 0.000000
+13 21 7 0.433843 0.654584 0.000000
+13 21 8 0.423560 0.667056 0.000000
+13 21 9 0.411624 0.682405 0.010226
+13 21 10 0.398319 0.697665 0.118650
+13 21 11 0.381999 0.712729 0.220394
+13 21 12 0.356285 0.727480 0.312690
+13 21 13 0.314916 0.741708 0.389239
+13 21 14 0.281127 0.754404 0.462155
+13 21 15 0.257085 0.765131 0.530400
+13 21 16 0.240483 0.775986 0.594358
+13 21 17 0.231322 0.786969 0.654029
+13 21 18 0.223276 0.794627 0.705958
+13 21 19 0.216098 0.799699 0.751866
+13 21 20 0.209952 0.804903 0.791692
+13 21 21 0.204424 0.810186 0.827869
+13 21 22 0.202037 0.813293 0.854165
+13 21 23 0.201078 0.815412 0.875968
+13 21 24 0.199391 0.818073 0.891122
+13 21 25 0.197462 0.820914 0.904058
+13 21 26 0.198258 0.824505 0.913283
+13 21 27 0.199682 0.828269 0.921652
+13 21 28 0.200829 0.831506 0.927542
+13 21 29 0.201935 0.834668 0.933078
+13 21 30 0.202910 0.838243 0.937342
+13 21 31 0.203877 0.841845 0.941520
+13 22 0 0.465197 0.627679 0.000000
+13 22 1 0.463563 0.631285 0.000000
+13 22 2 0.461891 0.634971 0.000000
+13 22 3 0.459636 0.639863 0.000000
+13 22 4 0.457099 0.645270 0.000000
+13 22 5 0.452588 0.654277 0.000000
+13 22 6 0.446927 0.663797 0.000000
+13 22 7 0.436282 0.675541 0.000000
+13 22 8 0.425083 0.688199 0.000000
+13 22 9 0.412224 0.703603 0.016001
+13 22 10 0.397953 0.718992 0.127133
+13 22 11 0.380576 0.734348 0.227381
+13 22 12 0.352524 0.749175 0.318910
+13 22 13 0.306681 0.763122 0.395907
+13 22 14 0.272391 0.775724 0.468948
+13 22 15 0.252954 0.786596 0.536903
+13 22 16 0.238593 0.797320 0.600509
+13 22 17 0.229308 0.807896 0.659768
+13 22 18 0.220939 0.815454 0.711401
+13 22 19 0.213284 0.820664 0.757103
+13 22 20 0.206888 0.825808 0.796450
+13 22 21 0.201247 0.830911 0.831982
+13 22 22 0.198759 0.834101 0.858094
+13 22 23 0.197703 0.836419 0.879925
+13 22 24 0.195968 0.838804 0.894883
+13 22 25 0.194008 0.841210 0.907550
+13 22 26 0.194918 0.844052 0.916421
+13 22 27 0.196490 0.846995 0.924416
+13 22 28 0.197777 0.849660 0.930125
+13 22 29 0.199023 0.852286 0.935506
+13 22 30 0.200036 0.855259 0.939660
+13 22 31 0.201034 0.858256 0.943732
+13 23 0 0.471170 0.647165 0.000000
+13 23 1 0.469150 0.650383 0.000000
+13 23 2 0.467083 0.653674 0.000000
+13 23 3 0.464317 0.658085 0.000000
+13 23 4 0.461224 0.662954 0.000000
+13 23 5 0.455841 0.671036 0.000000
+13 23 6 0.449312 0.679991 0.000000
+13 23 7 0.437823 0.692729 0.000000
+13 23 8 0.425800 0.706029 0.000000
+13 23 9 0.412179 0.721018 0.023553
+13 23 10 0.397014 0.736263 0.138315
+13 23 11 0.378455 0.752074 0.236886
+13 23 12 0.349954 0.766960 0.327366
+13 23 13 0.304884 0.780303 0.404363
+13 23 14 0.270847 0.792906 0.477252
+13 23 15 0.250996 0.804558 0.544857
+13 23 16 0.236676 0.814927 0.607612
+13 23 17 0.227887 0.824014 0.665515
+13 23 18 0.219281 0.831365 0.716585
+13 23 19 0.210819 0.837367 0.762342
+13 23 20 0.204353 0.842271 0.800837
+13 23 21 0.199085 0.846517 0.834974
+13 23 22 0.196499 0.849982 0.861038
+13 23 23 0.195133 0.853092 0.883433
+13 23 24 0.193414 0.855543 0.898279
+13 23 25 0.191578 0.857773 0.910610
+13 23 26 0.192662 0.860449 0.919144
+13 23 27 0.194421 0.863228 0.926803
+13 23 28 0.195785 0.865767 0.932363
+13 23 29 0.197094 0.868271 0.937623
+13 23 30 0.197994 0.870532 0.941682
+13 23 31 0.198868 0.872777 0.945660
+13 24 0 0.478099 0.662596 0.000000
+13 24 1 0.475523 0.666463 0.000000
+13 24 2 0.472905 0.670389 0.000000
+13 24 3 0.469664 0.675213 0.000000
+13 24 4 0.466130 0.680407 0.000000
+13 24 5 0.460548 0.688187 0.000000
+13 24 6 0.453682 0.696847 0.000000
+13 24 7 0.441253 0.709317 0.000000
+13 24 8 0.428427 0.722371 0.000000
+13 24 9 0.414410 0.737176 0.036368
+13 24 10 0.398939 0.752196 0.157978
+13 24 11 0.380272 0.767688 0.255909
+13 24 12 0.351703 0.782284 0.345556
+13 24 13 0.306629 0.795385 0.421395
+13 24 14 0.272421 0.807726 0.492977
+13 24 15 0.252182 0.819088 0.559085
+13 24 16 0.237614 0.829091 0.620116
+13 24 17 0.228717 0.837735 0.676069
+13 24 18 0.220029 0.844862 0.725728
+13 24 19 0.211504 0.850809 0.770491
+13 24 20 0.204753 0.855553 0.807778
+13 24 21 0.199065 0.859575 0.840579
+13 24 22 0.196712 0.862864 0.865886
+13 24 23 0.195873 0.865820 0.887787
+13 24 24 0.194135 0.868107 0.902251
+13 24 25 0.192097 0.870173 0.914236
+13 24 26 0.193144 0.872752 0.922506
+13 24 27 0.194902 0.875449 0.929919
+13 24 28 0.196443 0.877802 0.935272
+13 24 29 0.197954 0.880105 0.940332
+13 24 30 0.199012 0.882017 0.944195
+13 24 31 0.200041 0.883903 0.947980
+13 25 0 0.485347 0.676676 0.000000
+13 25 1 0.482158 0.681537 0.000000
+13 25 2 0.478937 0.686440 0.000000
+13 25 3 0.475233 0.691978 0.000000
+13 25 4 0.471297 0.697783 0.000000
+13 25 5 0.465740 0.705469 0.000000
+13 25 6 0.458713 0.713923 0.000000
+13 25 7 0.445313 0.725705 0.000000
+13 25 8 0.431690 0.738216 0.000000
+13 25 9 0.417399 0.752915 0.050938
+13 25 10 0.401818 0.767682 0.180469
+13 25 11 0.383403 0.782598 0.278105
+13 25 12 0.354892 0.796788 0.366989
+13 25 13 0.309556 0.809768 0.441285
+13 25 14 0.275034 0.821758 0.511175
+13 25 15 0.254417 0.832474 0.575403
+13 25 16 0.239505 0.842107 0.634420
+13 25 17 0.230297 0.850657 0.688227
+13 25 18 0.221578 0.857553 0.736190
+13 25 19 0.213239 0.863164 0.779609
+13 25 20 0.206131 0.867774 0.815570
+13 25 21 0.199760 0.871784 0.847055
+13 25 22 0.197748 0.874746 0.871369
+13 25 23 0.197717 0.877231 0.892424
+13 25 24 0.195948 0.879281 0.906414
+13 25 25 0.193599 0.881186 0.918050
+13 25 26 0.194537 0.883690 0.926080
+13 25 27 0.196234 0.886333 0.933278
+13 25 28 0.197985 0.888480 0.938405
+13 25 29 0.199743 0.890556 0.943237
+13 25 30 0.201050 0.892240 0.946873
+13 25 31 0.202328 0.893899 0.950430
+13 26 0 0.493662 0.686888 0.000000
+13 26 1 0.490378 0.691914 0.000000
+13 26 2 0.487046 0.697014 0.000000
+13 26 3 0.482970 0.703242 0.000000
+13 26 4 0.478573 0.709867 0.000000
+13 26 5 0.471925 0.719273 0.000000
+13 26 6 0.463967 0.729091 0.000000
+13 26 7 0.450334 0.740700 0.000000
+13 26 8 0.436481 0.752975 0.000000
+13 26 9 0.421966 0.767249 0.074933
+13 26 10 0.406512 0.781521 0.216143
+13 26 11 0.388990 0.795784 0.308922
+13 26 12 0.361826 0.809411 0.393880
+13 26 13 0.318595 0.821977 0.465804
+13 26 14 0.284007 0.833441 0.533290
+13 26 15 0.260532 0.843488 0.595070
+13 26 16 0.244288 0.852572 0.651468
+13 26 17 0.235274 0.860690 0.702484
+13 26 18 0.226943 0.867337 0.748686
+13 26 19 0.219144 0.872840 0.791144
+13 26 20 0.212158 0.877251 0.825266
+13 26 21 0.205660 0.881007 0.854388
+13 26 22 0.203781 0.883777 0.877464
+13 26 23 0.204002 0.886098 0.897794
+13 26 24 0.202290 0.888084 0.911513
+13 26 25 0.199934 0.889959 0.923029
+13 26 26 0.200615 0.891917 0.930179
+13 26 27 0.201997 0.893894 0.936321
+13 26 28 0.203705 0.895920 0.941213
+13 26 29 0.205460 0.897953 0.945925
+13 26 30 0.206858 0.899595 0.949565
+13 26 31 0.208232 0.901211 0.953133
+13 27 0 0.502222 0.696208 0.000000
+13 27 1 0.498964 0.701206 0.000000
+13 27 2 0.495634 0.706324 0.000000
+13 27 3 0.491208 0.713237 0.000000
+13 27 4 0.486336 0.720729 0.000000
+13 27 5 0.478338 0.732273 0.000000
+13 27 6 0.469272 0.743819 0.000000
+13 27 7 0.455577 0.755373 0.000000
+13 27 8 0.441624 0.767482 0.000000
+13 27 9 0.426898 0.781260 0.101103
+13 27 10 0.411624 0.794980 0.254860
+13 27 11 0.395143 0.808573 0.341727
+13 27 12 0.369625 0.821600 0.422030
+13 27 13 0.329045 0.833683 0.491391
+13 27 14 0.294448 0.844581 0.556307
+13 27 15 0.267542 0.853956 0.615510
+13 27 16 0.249738 0.862448 0.669150
+13 27 17 0.241035 0.870056 0.717227
+13 27 18 0.233189 0.876450 0.761652
+13 27 19 0.226011 0.881898 0.803235
+13 27 20 0.219258 0.886096 0.835402
+13 27 21 0.212760 0.889542 0.861918
+13 27 22 0.210966 0.892151 0.883702
+13 27 23 0.211312 0.894378 0.903333
+13 27 24 0.209678 0.896340 0.916828
+13 27 25 0.207383 0.898215 0.928278
+13 27 26 0.207773 0.899517 0.934400
+13 27 27 0.208783 0.900688 0.939292
+13 27 28 0.210390 0.902613 0.943945
+13 27 29 0.212082 0.904646 0.948564
+13 27 30 0.213535 0.906288 0.952260
+13 27 31 0.214971 0.907904 0.955895
+13 28 0 0.508509 0.702931 0.000000
+13 28 1 0.505255 0.707950 0.000000
+13 28 2 0.501923 0.713092 0.000000
+13 28 3 0.497431 0.720091 0.000000
+13 28 4 0.492467 0.727725 0.000000
+13 28 5 0.484192 0.739807 0.000000
+13 28 6 0.474797 0.752053 0.000000
+13 28 7 0.460550 0.765012 0.000000
+13 28 8 0.446117 0.778113 0.000000
+13 28 9 0.431122 0.791640 0.138575
+13 28 10 0.416063 0.805043 0.282303
+13 28 11 0.400862 0.818176 0.364565
+13 28 12 0.380430 0.830756 0.441433
+13 28 13 0.351280 0.842416 0.509311
+13 28 14 0.321642 0.852916 0.572626
+13 28 15 0.291375 0.861925 0.630073
+13 28 16 0.270221 0.870078 0.682416
+13 28 17 0.258180 0.877377 0.729656
+13 28 18 0.246321 0.883511 0.772649
+13 28 19 0.234603 0.888740 0.812338
+13 28 20 0.226453 0.892795 0.843260
+13 28 21 0.220444 0.896145 0.868922
+13 28 22 0.218403 0.898682 0.889627
+13 28 23 0.218167 0.900849 0.908078
+13 28 24 0.216596 0.902735 0.921079
+13 28 25 0.214582 0.904528 0.932262
+13 28 26 0.214986 0.905752 0.938227
+13 28 27 0.215949 0.906845 0.942987
+13 28 28 0.217210 0.908287 0.946966
+13 28 29 0.218515 0.909779 0.950832
+13 28 30 0.219899 0.911333 0.954358
+13 28 31 0.221289 0.912890 0.957860
+13 29 0 0.514472 0.709283 0.000000
+13 29 1 0.511217 0.714329 0.000000
+13 29 2 0.507884 0.719498 0.000000
+13 29 3 0.503367 0.726496 0.000000
+13 29 4 0.498365 0.734169 0.000000
+13 29 5 0.489965 0.746560 0.000000
+13 29 6 0.480353 0.759360 0.000000
+13 29 7 0.465485 0.773933 0.000000
+13 29 8 0.450517 0.788190 0.023263
+13 29 9 0.435246 0.801501 0.177660
+13 29 10 0.420406 0.814622 0.308135
+13 29 11 0.406518 0.827324 0.385978
+13 29 12 0.391663 0.839480 0.459586
+13 29 13 0.375198 0.850723 0.526136
+13 29 14 0.351229 0.860849 0.587986
+13 29 15 0.317612 0.869537 0.643796
+13 29 16 0.292852 0.877388 0.695052
+13 29 17 0.276951 0.884405 0.741755
+13 29 18 0.260436 0.890279 0.783365
+13 29 19 0.243442 0.895266 0.821012
+13 29 20 0.233662 0.899188 0.850792
+13 29 21 0.228212 0.902471 0.875851
+13 29 22 0.225876 0.904950 0.895508
+13 29 23 0.224956 0.907062 0.912710
+13 29 24 0.223448 0.908864 0.925177
+13 29 25 0.221744 0.910563 0.936067
+13 29 26 0.222207 0.911792 0.941998
+13 29 27 0.223169 0.912912 0.946786
+13 29 28 0.224050 0.913816 0.950027
+13 29 29 0.224920 0.914689 0.953047
+13 29 30 0.226219 0.916142 0.956369
+13 29 31 0.227547 0.917633 0.959711
+13 30 0 0.519024 0.714099 0.000000
+13 30 1 0.515711 0.719146 0.000000
+13 30 2 0.512324 0.724316 0.000000
+13 30 3 0.507830 0.731315 0.000000
+13 30 4 0.502854 0.738987 0.000000
+13 30 5 0.494504 0.751372 0.000000
+13 30 6 0.484827 0.764453 0.000000
+13 30 7 0.469397 0.780551 0.000000
+13 30 8 0.453958 0.795891 0.101396
+13 30 9 0.438492 0.808962 0.221404
+13 30 10 0.423752 0.821834 0.327368
+13 30 11 0.410610 0.834271 0.402436
+13 30 12 0.396721 0.846160 0.473986
+13 30 13 0.381590 0.857139 0.539674
+13 30 14 0.362774 0.866991 0.600362
+13 30 15 0.339222 0.875395 0.654622
+13 30 16 0.318958 0.882989 0.704803
+13 30 17 0.301982 0.889774 0.750907
+13 30 18 0.279464 0.895426 0.791424
+13 30 19 0.252635 0.900195 0.827597
+13 30 20 0.239481 0.904017 0.856517
+13 30 21 0.234531 0.907270 0.881086
+13 30 22 0.231962 0.909659 0.899999
+13 30 23 0.230476 0.911655 0.916340
+13 30 24 0.228971 0.913423 0.928391
+13 30 25 0.227461 0.915116 0.939012
+13 30 26 0.227960 0.916324 0.944823
+13 30 27 0.228923 0.917421 0.949524
+13 30 28 0.229781 0.918311 0.952731
+13 30 29 0.230623 0.919170 0.955724
+13 30 30 0.231644 0.920240 0.958515
+13 30 31 0.232676 0.921322 0.961292
+13 31 0 0.523482 0.718811 0.000000
+13 31 1 0.520107 0.723859 0.000000
+13 31 2 0.516664 0.729029 0.000000
+13 31 3 0.512195 0.736027 0.000000
+13 31 4 0.507248 0.743696 0.000000
+13 31 5 0.498961 0.756054 0.000000
+13 31 6 0.489230 0.769398 0.000000
+13 31 7 0.473241 0.787015 0.048006
+13 31 8 0.457335 0.803435 0.180981
+13 31 9 0.441680 0.816263 0.265458
+13 31 10 0.427031 0.828889 0.346162
+13 31 11 0.414598 0.841070 0.418564
+13 31 12 0.401368 0.852705 0.488136
+13 31 13 0.386812 0.863429 0.552993
+13 31 14 0.373115 0.873015 0.612538
+13 31 15 0.360523 0.881136 0.665254
+13 31 16 0.345295 0.888475 0.714362
+13 31 17 0.327429 0.895033 0.759862
+13 31 18 0.298819 0.900464 0.799307
+13 31 19 0.261852 0.905018 0.834041
+13 31 20 0.245207 0.908742 0.862121
+13 31 21 0.240754 0.911968 0.886208
+13 31 22 0.237956 0.914265 0.904397
+13 31 23 0.235911 0.916140 0.919904
+13 31 24 0.234406 0.917877 0.931547
+13 31 25 0.233082 0.919570 0.941900
+13 31 26 0.233616 0.920756 0.947585
+13 31 27 0.234579 0.921826 0.952192
+13 31 28 0.235437 0.922736 0.955411
+13 31 29 0.236279 0.923623 0.958431
+13 31 30 0.237009 0.924290 0.960669
+13 31 31 0.237731 0.924942 0.962855
+14 0 0 0.242934 0.000000 0.016896
+14 0 1 0.243197 0.000000 0.019511
+14 0 2 0.243462 0.000000 0.022197
+14 0 3 0.243763 0.000000 0.025946
+14 0 4 0.244097 0.000000 0.030050
+14 0 5 0.244660 0.000000 0.036637
+14 0 6 0.245305 0.000000 0.043529
+14 0 7 0.246306 0.000000 0.051738
+14 0 8 0.247584 0.000000 0.061403
+14 0 9 0.249690 0.000000 0.075435
+14 0 10 0.252485 0.000000 0.098154
+14 0 11 0.256795 0.000000 0.139981
+14 0 12 0.260693 0.000000 0.181101
+14 0 13 0.263904 0.000000 0.221042
+14 0 14 0.268915 0.000000 0.262403
+14 0 15 0.276239 0.000000 0.305587
+14 0 16 0.282352 0.000000 0.345387
+14 0 17 0.287253 0.000000 0.381803
+14 0 18 0.292625 0.000000 0.415967
+14 0 19 0.298363 0.000000 0.448381
+14 0 20 0.303541 0.000000 0.478436
+14 0 21 0.308382 0.000000 0.507078
+14 0 22 0.315385 0.000000 0.533286
+14 0 23 0.323371 0.000000 0.558390
+14 0 24 0.333873 0.000000 0.588381
+14 0 25 0.345212 0.000000 0.620001
+14 0 26 0.362729 0.000000 0.659285
+14 0 27 0.381672 0.000000 0.700336
+14 0 28 0.393900 0.000000 0.728086
+14 0 29 0.405168 0.012209 0.753936
+14 0 30 0.413109 0.111757 0.772916
+14 0 31 0.420827 0.212917 0.791438
+14 1 0 0.248853 0.000000 0.000000
+14 1 1 0.249164 0.000000 0.000000
+14 1 2 0.249474 0.000000 0.021609
+14 1 3 0.249775 0.000000 0.025358
+14 1 4 0.250108 0.000000 0.029462
+14 1 5 0.250672 0.000000 0.036049
+14 1 6 0.251346 0.000000 0.043315
+14 1 7 0.252503 0.000000 0.053520
+14 1 8 0.253831 0.000000 0.064676
+14 1 9 0.255674 0.000000 0.078688
+14 1 10 0.258295 0.000000 0.101493
+14 1 11 0.262625 0.000000 0.143645
+14 1 12 0.266535 0.000000 0.185304
+14 1 13 0.269746 0.000000 0.226143
+14 1 14 0.274710 0.000000 0.268081
+14 1 15 0.281927 0.000000 0.311433
+14 1 16 0.287899 0.000000 0.351881
+14 1 17 0.292625 0.000000 0.389424
+14 1 18 0.297893 0.000000 0.424094
+14 1 19 0.303583 0.000000 0.456529
+14 1 20 0.308633 0.000000 0.486900
+14 1 21 0.313299 0.000000 0.516032
+14 1 22 0.320035 0.000000 0.542057
+14 1 23 0.327710 0.000000 0.566669
+14 1 24 0.336908 0.000000 0.594931
+14 1 25 0.346613 0.000000 0.624410
+14 1 26 0.363879 0.000000 0.663275
+14 1 27 0.382889 0.000000 0.704306
+14 1 28 0.395125 0.000000 0.732071
+14 1 29 0.406394 0.022769 0.757942
+14 1 30 0.414270 0.122669 0.776904
+14 1 31 0.421921 0.223829 0.795405
+14 2 0 0.254893 0.000000 0.000000
+14 2 1 0.255249 0.000000 0.000000
+14 2 2 0.255601 0.000000 0.017836
+14 2 3 0.255904 0.000000 0.023273
+14 2 4 0.256239 0.000000 0.028855
+14 2 5 0.256807 0.000000 0.035447
+14 2 6 0.257513 0.000000 0.043091
+14 2 7 0.258819 0.000000 0.055296
+14 2 8 0.260193 0.000000 0.067957
+14 2 9 0.261770 0.000000 0.081985
+14 2 10 0.264217 0.000000 0.104907
+14 2 11 0.268581 0.000000 0.147397
+14 2 12 0.272511 0.000000 0.189608
+14 2 13 0.275718 0.000000 0.231353
+14 2 14 0.280630 0.000000 0.273879
+14 2 15 0.287734 0.000000 0.317410
+14 2 16 0.293558 0.000000 0.358519
+14 2 17 0.298102 0.000000 0.397209
+14 2 18 0.303266 0.000000 0.432395
+14 2 19 0.308911 0.000000 0.464857
+14 2 20 0.313830 0.000000 0.495548
+14 2 21 0.318314 0.000000 0.525176
+14 2 22 0.324775 0.000000 0.551012
+14 2 23 0.332135 0.000000 0.575124
+14 2 24 0.340087 0.000000 0.601728
+14 2 25 0.348236 0.000000 0.629163
+14 2 26 0.365172 0.000000 0.667514
+14 2 27 0.384136 0.000000 0.708383
+14 2 28 0.396370 0.000000 0.736149
+14 2 29 0.407642 0.033546 0.762043
+14 2 30 0.415459 0.133809 0.780989
+14 2 31 0.423044 0.234974 0.799471
+14 3 0 0.262754 0.000000 0.000000
+14 3 1 0.263109 0.000000 0.000000
+14 3 2 0.263463 0.000000 0.000000
+14 3 3 0.263794 0.000000 0.000000
+14 3 4 0.264163 0.000000 0.027953
+14 3 5 0.264798 0.000000 0.034618
+14 3 6 0.265572 0.000000 0.042709
+14 3 7 0.266946 0.000000 0.056983
+14 3 8 0.268288 0.000000 0.071341
+14 3 9 0.269534 0.000000 0.085955
+14 3 10 0.271831 0.000000 0.109449
+14 3 11 0.276438 0.000000 0.152482
+14 3 12 0.280494 0.000000 0.195420
+14 3 13 0.283633 0.000000 0.238199
+14 3 14 0.288421 0.000000 0.281462
+14 3 15 0.295331 0.000000 0.325347
+14 3 16 0.300912 0.000000 0.367340
+14 3 17 0.305165 0.000000 0.407440
+14 3 18 0.310202 0.000000 0.443308
+14 3 19 0.315847 0.000000 0.475885
+14 3 20 0.320584 0.000000 0.506972
+14 3 21 0.324777 0.000000 0.537164
+14 3 22 0.330880 0.000000 0.562738
+14 3 23 0.337850 0.000000 0.586213
+14 3 24 0.345428 0.000000 0.612219
+14 3 25 0.353207 0.000000 0.639069
+14 3 26 0.368635 0.000000 0.675476
+14 3 27 0.385829 0.000000 0.714089
+14 3 28 0.397900 0.000000 0.741618
+14 3 29 0.409241 0.047575 0.767564
+14 3 30 0.417043 0.148374 0.786532
+14 3 31 0.424609 0.249612 0.805036
+14 4 0 0.271375 0.000000 0.000000
+14 4 1 0.271731 0.000000 0.000000
+14 4 2 0.272086 0.000000 0.000000
+14 4 3 0.272442 0.000000 0.000000
+14 4 4 0.272841 0.000000 0.017772
+14 4 5 0.273545 0.000000 0.029576
+14 4 6 0.274386 0.000000 0.042183
+14 4 7 0.275819 0.000000 0.058269
+14 4 8 0.277140 0.000000 0.074260
+14 4 9 0.278123 0.000000 0.089964
+14 4 10 0.280295 0.000000 0.114393
+14 4 11 0.285083 0.000000 0.158019
+14 4 12 0.289227 0.000000 0.201760
+14 4 13 0.292296 0.000000 0.245695
+14 4 14 0.296951 0.000000 0.289770
+14 4 15 0.303647 0.000000 0.334024
+14 4 16 0.308963 0.000000 0.376983
+14 4 17 0.312901 0.000000 0.418646
+14 4 18 0.317802 0.000000 0.455274
+14 4 19 0.323452 0.000000 0.487988
+14 4 20 0.328000 0.000000 0.519496
+14 4 21 0.331886 0.000000 0.550281
+14 4 22 0.337609 0.000000 0.575591
+14 4 23 0.344168 0.000000 0.598412
+14 4 24 0.351382 0.000000 0.623844
+14 4 25 0.358816 0.000000 0.650146
+14 4 26 0.372559 0.000000 0.684365
+14 4 27 0.387757 0.000000 0.720410
+14 4 28 0.399604 0.000000 0.747632
+14 4 29 0.410974 0.062968 0.773593
+14 4 30 0.418772 0.164338 0.792577
+14 4 31 0.426331 0.265637 0.811097
+14 5 0 0.285324 0.000000 0.000000
+14 5 1 0.285679 0.000000 0.000000
+14 5 2 0.286035 0.000000 0.000000
+14 5 3 0.286391 0.000000 0.000000
+14 5 4 0.286799 0.000000 0.000000
+14 5 5 0.287580 0.000000 0.000000
+14 5 6 0.288483 0.000000 0.040647
+14 5 7 0.289916 0.000000 0.056755
+14 5 8 0.291287 0.000000 0.073918
+14 5 9 0.292473 0.000000 0.094251
+14 5 10 0.294709 0.000000 0.122156
+14 5 11 0.299255 0.000000 0.166722
+14 5 12 0.303214 0.000000 0.211803
+14 5 13 0.306195 0.000000 0.257742
+14 5 14 0.310648 0.000000 0.303150
+14 5 15 0.316994 0.000000 0.347875
+14 5 16 0.321893 0.000000 0.392384
+14 5 17 0.325345 0.000000 0.436680
+14 5 18 0.330056 0.000000 0.474619
+14 5 19 0.335745 0.000000 0.507614
+14 5 20 0.340047 0.000000 0.539725
+14 5 21 0.343515 0.000000 0.571305
+14 5 22 0.348714 0.000000 0.596331
+14 5 23 0.354699 0.000000 0.618379
+14 5 24 0.361639 0.000000 0.643406
+14 5 25 0.368898 0.000000 0.669426
+14 5 26 0.379705 0.000000 0.699738
+14 5 27 0.391332 0.000000 0.731040
+14 5 28 0.402521 0.000000 0.757459
+14 5 29 0.413647 0.087910 0.783180
+14 5 30 0.421512 0.190091 0.802130
+14 5 31 0.429159 0.291369 0.820628
+14 6 0 0.300797 0.010851 0.000000
+14 6 1 0.301185 0.011173 0.000000
+14 6 2 0.301572 0.011483 0.000000
+14 6 3 0.301941 0.011632 0.000000
+14 6 4 0.302366 0.011799 0.000000
+14 6 5 0.303196 0.012093 0.000000
+14 6 6 0.304144 0.012733 0.034903
+14 6 7 0.305604 0.014873 0.053501
+14 6 8 0.307061 0.016744 0.073785
+14 6 9 0.308509 0.017812 0.099128
+14 6 10 0.310828 0.015776 0.130804
+14 6 11 0.315066 0.006909 0.176412
+14 6 12 0.318816 0.000000 0.222936
+14 6 13 0.321755 0.000000 0.270989
+14 6 14 0.325962 0.000000 0.317908
+14 6 15 0.331796 0.000000 0.363371
+14 6 16 0.336239 0.000000 0.409424
+14 6 17 0.339289 0.000000 0.456066
+14 6 18 0.343779 0.000000 0.495467
+14 6 19 0.349388 0.000000 0.529236
+14 6 20 0.353439 0.000000 0.562025
+14 6 21 0.356555 0.000000 0.594224
+14 6 22 0.361259 0.000000 0.619187
+14 6 23 0.366685 0.000000 0.640859
+14 6 24 0.373196 0.000000 0.665311
+14 6 25 0.380068 0.000000 0.690691
+14 6 26 0.388448 0.000000 0.717751
+14 6 27 0.397177 0.000000 0.745199
+14 6 28 0.407253 0.013862 0.770276
+14 6 29 0.417523 0.131293 0.795015
+14 6 30 0.424915 0.226454 0.813351
+14 6 31 0.432116 0.320131 0.831260
+14 7 0 0.322874 0.053360 0.000000
+14 7 1 0.323437 0.054643 0.000000
+14 7 2 0.323993 0.055858 0.000000
+14 7 3 0.324429 0.056049 0.000000
+14 7 4 0.324906 0.056261 0.000000
+14 7 5 0.325668 0.056619 0.000000
+14 7 6 0.326588 0.057335 0.010921
+14 7 7 0.328192 0.059601 0.042709
+14 7 8 0.329885 0.062052 0.074553
+14 7 9 0.331846 0.065055 0.106566
+14 7 10 0.334334 0.066496 0.143290
+14 7 11 0.337978 0.064499 0.190381
+14 7 12 0.341417 0.057110 0.238801
+14 7 13 0.344511 0.040735 0.289434
+14 7 14 0.348277 0.029567 0.338637
+14 7 15 0.352906 0.025094 0.386002
+14 7 16 0.356726 0.022974 0.433559
+14 7 17 0.359737 0.023208 0.481308
+14 7 18 0.363871 0.023519 0.522828
+14 7 19 0.368879 0.023890 0.559502
+14 7 20 0.372662 0.024921 0.593295
+14 7 21 0.375711 0.026347 0.625359
+14 7 22 0.380052 0.029804 0.651206
+14 7 23 0.384981 0.034183 0.674228
+14 7 24 0.390389 0.046288 0.697371
+14 7 25 0.395957 0.060968 0.720554
+14 7 26 0.404109 0.089651 0.747203
+14 7 27 0.412857 0.121565 0.774651
+14 7 28 0.419856 0.185768 0.796053
+14 7 29 0.426604 0.254583 0.816591
+14 7 30 0.431188 0.308790 0.831804
+14 7 31 0.435627 0.362023 0.846662
+14 8 0 0.343172 0.090487 0.000000
+14 8 1 0.343845 0.092326 0.000000
+14 8 2 0.344510 0.094083 0.000000
+14 8 3 0.345058 0.094612 0.000000
+14 8 4 0.345641 0.095195 0.000000
+14 8 5 0.346473 0.096151 0.000000
+14 8 6 0.347492 0.097502 0.000000
+14 8 7 0.349319 0.100559 0.029198
+14 8 8 0.351221 0.103956 0.075635
+14 8 9 0.353349 0.108371 0.112799
+14 8 10 0.355808 0.112578 0.153701
+14 8 11 0.358993 0.116326 0.202824
+14 8 12 0.362048 0.119953 0.253389
+14 8 13 0.364885 0.123377 0.306357
+14 8 14 0.368062 0.126201 0.357706
+14 8 15 0.371678 0.128251 0.406973
+14 8 16 0.374868 0.129685 0.456060
+14 8 17 0.377634 0.130500 0.504968
+14 8 18 0.381379 0.131318 0.548314
+14 8 19 0.385887 0.132138 0.587332
+14 8 20 0.389326 0.133973 0.621982
+14 8 21 0.392125 0.136418 0.654012
+14 8 22 0.396089 0.142224 0.680517
+14 8 23 0.400582 0.149557 0.704512
+14 8 24 0.404978 0.169105 0.726530
+14 8 25 0.409341 0.192725 0.747889
+14 8 26 0.416929 0.238692 0.773675
+14 8 27 0.425262 0.289816 0.800484
+14 8 28 0.429704 0.324042 0.818695
+14 8 29 0.433591 0.355853 0.835678
+14 8 30 0.435896 0.378949 0.848220
+14 8 31 0.438097 0.401465 0.860465
+14 9 0 0.358133 0.111465 0.000000
+14 9 1 0.358718 0.112646 0.000000
+14 9 2 0.359316 0.113863 0.000000
+14 9 3 0.360107 0.115614 0.000000
+14 9 4 0.360963 0.117541 0.000000
+14 9 5 0.362281 0.120703 0.000000
+14 9 6 0.363780 0.124367 0.000000
+14 9 7 0.366064 0.130205 0.007527
+14 9 8 0.368091 0.135649 0.077659
+14 9 9 0.369347 0.139906 0.115421
+14 9 10 0.371188 0.144745 0.157882
+14 9 11 0.374314 0.150865 0.210684
+14 9 12 0.376770 0.156563 0.264148
+14 9 13 0.378110 0.161555 0.318715
+14 9 14 0.380255 0.165877 0.371795
+14 9 15 0.383433 0.169338 0.422963
+14 9 16 0.385973 0.172344 0.473659
+14 9 17 0.387874 0.174895 0.523884
+14 9 18 0.391132 0.176954 0.568175
+14 9 19 0.395445 0.178633 0.607852
+14 9 20 0.398314 0.181084 0.642920
+14 9 21 0.400316 0.183998 0.675222
+14 9 22 0.403856 0.190468 0.701704
+14 9 23 0.408095 0.198554 0.725541
+14 9 24 0.411750 0.217294 0.746988
+14 9 25 0.415210 0.239585 0.767637
+14 9 26 0.421230 0.282230 0.791211
+14 9 27 0.427840 0.329572 0.815459
+14 9 28 0.431292 0.361422 0.831933
+14 9 29 0.434291 0.391059 0.847297
+14 9 30 0.435912 0.412577 0.858523
+14 9 31 0.437441 0.433555 0.869473
+14 10 0 0.374212 0.138492 0.000000
+14 10 1 0.374752 0.139492 0.000000
+14 10 2 0.375317 0.140598 0.000000
+14 10 3 0.376269 0.143300 0.000000
+14 10 4 0.377308 0.146277 0.000000
+14 10 5 0.378962 0.151169 0.000000
+14 10 6 0.380777 0.156543 0.000000
+14 10 7 0.383287 0.163999 0.000000
+14 10 8 0.385340 0.170809 0.076647
+14 10 9 0.386020 0.175683 0.117075
+14 10 10 0.387311 0.181520 0.162355
+14 10 11 0.389944 0.189476 0.218310
+14 10 12 0.391650 0.196860 0.274362
+14 10 13 0.391810 0.203290 0.330577
+14 10 14 0.393006 0.208988 0.385520
+14 10 15 0.395535 0.213745 0.438829
+14 10 16 0.397465 0.218223 0.491162
+14 10 17 0.398796 0.222420 0.542520
+14 10 18 0.401527 0.225719 0.587714
+14 10 19 0.405345 0.228320 0.628114
+14 10 20 0.407539 0.231415 0.663603
+14 10 21 0.408760 0.234807 0.696145
+14 10 22 0.411651 0.241545 0.722693
+14 10 23 0.415303 0.249805 0.746516
+14 10 24 0.418197 0.267590 0.767339
+14 10 25 0.420838 0.288550 0.787161
+14 10 26 0.425413 0.327516 0.808373
+14 10 27 0.430435 0.370639 0.829905
+14 10 28 0.432938 0.400050 0.844705
+14 10 29 0.435083 0.427502 0.858544
+14 10 30 0.436094 0.447618 0.868663
+14 10 31 0.437030 0.467245 0.878533
+14 11 0 0.392750 0.178827 0.000000
+14 11 1 0.393338 0.180694 0.000000
+14 11 2 0.393947 0.182636 0.000000
+14 11 3 0.394879 0.185693 0.000000
+14 11 4 0.395901 0.189066 0.000000
+14 11 5 0.397565 0.194647 0.000000
+14 11 6 0.399334 0.200403 0.000000
+14 11 7 0.401561 0.206915 0.000000
+14 11 8 0.403421 0.213598 0.068956
+14 11 9 0.404178 0.220792 0.116602
+14 11 10 0.405069 0.228430 0.167468
+14 11 11 0.406257 0.237045 0.225419
+14 11 12 0.406877 0.245271 0.283377
+14 11 13 0.406552 0.252850 0.341348
+14 11 14 0.406987 0.259652 0.398445
+14 11 15 0.408401 0.265456 0.454419
+14 11 16 0.409811 0.271183 0.508451
+14 11 17 0.411218 0.276833 0.560540
+14 11 18 0.413332 0.281367 0.606542
+14 11 19 0.415996 0.285033 0.647810
+14 11 20 0.417288 0.288834 0.683728
+14 11 21 0.417758 0.292717 0.716437
+14 11 22 0.419506 0.298854 0.743245
+14 11 23 0.421836 0.306016 0.767372
+14 11 24 0.423925 0.322523 0.787456
+14 11 25 0.425934 0.342145 0.806192
+14 11 26 0.429338 0.376650 0.824714
+14 11 27 0.433064 0.414589 0.843186
+14 11 28 0.434716 0.441423 0.856452
+14 11 29 0.436073 0.466670 0.868974
+14 11 30 0.436643 0.485767 0.878442
+14 11 31 0.437162 0.504454 0.887706
+14 12 0 0.411337 0.220733 0.000000
+14 12 1 0.411955 0.223275 0.000000
+14 12 2 0.412592 0.225877 0.000000
+14 12 3 0.413503 0.229359 0.000000
+14 12 4 0.414504 0.233200 0.000000
+14 12 5 0.416132 0.239548 0.000000
+14 12 6 0.417826 0.246036 0.000000
+14 12 7 0.419804 0.253132 0.000000
+14 12 8 0.421400 0.260674 0.033687
+14 12 9 0.421847 0.269552 0.103516
+14 12 10 0.422158 0.278630 0.170450
+14 12 11 0.422170 0.288146 0.231016
+14 12 12 0.421717 0.297403 0.291507
+14 12 13 0.420491 0.306229 0.351872
+14 12 14 0.420051 0.314203 0.411237
+14 12 15 0.420621 0.321081 0.469317
+14 12 16 0.421281 0.328004 0.524968
+14 12 17 0.422030 0.334972 0.578192
+14 12 18 0.423304 0.340501 0.625099
+14 12 19 0.424986 0.344911 0.667093
+14 12 20 0.425269 0.349151 0.703630
+14 12 21 0.424712 0.353289 0.736894
+14 12 22 0.425389 0.358930 0.763648
+14 12 23 0.426626 0.365253 0.787443
+14 12 24 0.427856 0.380230 0.806823
+14 12 25 0.429083 0.398092 0.824732
+14 12 26 0.431422 0.428370 0.841093
+14 12 27 0.434017 0.461514 0.857096
+14 12 28 0.434979 0.485713 0.868923
+14 12 29 0.435707 0.508634 0.880153
+14 12 30 0.435898 0.526318 0.888810
+14 12 31 0.436052 0.543652 0.897295
+14 13 0 0.430006 0.265258 0.000000
+14 13 1 0.430625 0.268155 0.000000
+14 13 2 0.431260 0.271123 0.000000
+14 13 3 0.432152 0.275148 0.000000
+14 13 4 0.433122 0.279576 0.000000
+14 13 5 0.434643 0.286822 0.000000
+14 13 6 0.436213 0.294626 0.000000
+14 13 7 0.437996 0.304849 0.000000
+14 13 8 0.439208 0.314892 0.000000
+14 13 9 0.438704 0.324395 0.069410
+14 13 10 0.438133 0.334310 0.169881
+14 13 11 0.437416 0.345134 0.234095
+14 13 12 0.435911 0.355737 0.298163
+14 13 13 0.433092 0.365974 0.361985
+14 13 14 0.431586 0.375230 0.423807
+14 13 15 0.431767 0.383227 0.483058
+14 13 16 0.431290 0.391257 0.540198
+14 13 17 0.430156 0.399321 0.595230
+14 13 18 0.430217 0.405446 0.643204
+14 13 19 0.431208 0.410065 0.685689
+14 13 20 0.430303 0.414298 0.723161
+14 13 21 0.428261 0.418300 0.757626
+14 13 22 0.427985 0.423619 0.783800
+14 13 23 0.428511 0.429536 0.806206
+14 13 24 0.428790 0.442562 0.824942
+14 13 25 0.428987 0.457958 0.842453
+14 13 26 0.430437 0.484403 0.857534
+14 13 27 0.432176 0.513397 0.872054
+14 13 28 0.432715 0.534864 0.882599
+14 13 29 0.433082 0.555256 0.892577
+14 13 30 0.432993 0.570871 0.900158
+14 13 31 0.432874 0.586167 0.907579
+14 14 0 0.449030 0.316772 0.000000
+14 14 1 0.449525 0.319778 0.000000
+14 14 2 0.450029 0.322858 0.000000
+14 14 3 0.450680 0.327056 0.000000
+14 14 4 0.451389 0.331666 0.000000
+14 14 5 0.452505 0.339161 0.000000
+14 14 6 0.453636 0.347478 0.000000
+14 14 7 0.454835 0.359359 0.000000
+14 14 8 0.455356 0.370910 0.000000
+14 14 9 0.453844 0.381473 0.048065
+14 14 10 0.452232 0.392492 0.166922
+14 14 11 0.450396 0.404512 0.235460
+14 14 12 0.447730 0.416261 0.303245
+14 14 13 0.443680 0.427556 0.369776
+14 14 14 0.440953 0.437891 0.433863
+14 14 15 0.439929 0.446993 0.494805
+14 14 16 0.438203 0.455787 0.553300
+14 14 17 0.435775 0.464274 0.609348
+14 14 18 0.434437 0.470790 0.658321
+14 14 19 0.433947 0.475773 0.701792
+14 14 20 0.431845 0.479980 0.740024
+14 14 21 0.428776 0.483722 0.775114
+14 14 22 0.427735 0.488605 0.801242
+14 14 23 0.427615 0.494005 0.823297
+14 14 24 0.427199 0.505293 0.841516
+14 14 25 0.426684 0.518543 0.858456
+14 14 26 0.427680 0.541237 0.872343
+14 14 27 0.429026 0.566110 0.885526
+14 14 28 0.429404 0.584461 0.894912
+14 14 29 0.429644 0.601879 0.903755
+14 14 30 0.429358 0.615359 0.910455
+14 14 31 0.429038 0.628577 0.917011
+14 15 0 0.468509 0.377275 0.000000
+14 15 1 0.468721 0.380071 0.000000
+14 15 2 0.468928 0.382935 0.000000
+14 15 3 0.469054 0.386830 0.000000
+14 15 4 0.469205 0.391102 0.000000
+14 15 5 0.469533 0.398011 0.000000
+14 15 6 0.469821 0.405810 0.000000
+14 15 7 0.469932 0.417460 0.000000
+14 15 8 0.469368 0.429243 0.000000
+14 15 9 0.466779 0.441426 0.043129
+14 15 10 0.463918 0.453888 0.160893
+14 15 11 0.460462 0.466964 0.234620
+14 15 12 0.456495 0.479599 0.306303
+14 15 13 0.451677 0.491501 0.374582
+14 15 14 0.447533 0.502653 0.440685
+14 15 15 0.444256 0.512840 0.503990
+14 15 16 0.441135 0.521957 0.563666
+14 15 17 0.438171 0.530004 0.619714
+14 15 18 0.435194 0.536645 0.669598
+14 15 19 0.432208 0.542192 0.714688
+14 15 20 0.428897 0.546350 0.753456
+14 15 21 0.425390 0.549674 0.788430
+14 15 22 0.423826 0.553972 0.815198
+14 15 23 0.423144 0.558715 0.838235
+14 15 24 0.422361 0.568537 0.856104
+14 15 25 0.421544 0.580052 0.872250
+14 15 26 0.422647 0.599101 0.885054
+14 15 27 0.424193 0.619889 0.897088
+14 15 28 0.424746 0.634629 0.905470
+14 15 29 0.425158 0.648506 0.913330
+14 15 30 0.424783 0.659765 0.919400
+14 15 31 0.424355 0.670851 0.925350
+14 16 0 0.484829 0.431304 0.000000
+14 16 1 0.484866 0.434303 0.000000
+14 16 2 0.484891 0.437375 0.000000
+14 16 3 0.484730 0.441530 0.000000
+14 16 4 0.484577 0.446090 0.000000
+14 16 5 0.484478 0.453474 0.000000
+14 16 6 0.484217 0.461675 0.000000
+14 16 7 0.483260 0.473420 0.000000
+14 16 8 0.481597 0.485526 0.000000
+14 16 9 0.477818 0.498717 0.036428
+14 16 10 0.473740 0.512086 0.152254
+14 16 11 0.469006 0.525846 0.231574
+14 16 12 0.463690 0.539159 0.307582
+14 16 13 0.457406 0.551730 0.378072
+14 16 14 0.451850 0.563324 0.446168
+14 16 15 0.447232 0.573663 0.511186
+14 16 16 0.442746 0.583075 0.572182
+14 16 17 0.438393 0.591560 0.629155
+14 16 18 0.433901 0.598431 0.679946
+14 16 19 0.429303 0.604047 0.725929
+14 16 20 0.424917 0.608445 0.765369
+14 16 21 0.420659 0.612113 0.800881
+14 16 22 0.418669 0.616017 0.827951
+14 16 23 0.417710 0.620028 0.851182
+14 16 24 0.416631 0.628241 0.868606
+14 16 25 0.415512 0.637855 0.884093
+14 16 26 0.416553 0.653360 0.896023
+14 16 27 0.418092 0.670225 0.907131
+14 16 28 0.418694 0.681951 0.914762
+14 16 29 0.419162 0.692943 0.921896
+14 16 30 0.418912 0.702406 0.927469
+14 16 31 0.418614 0.711767 0.932939
+14 17 0 0.497990 0.478861 0.000000
+14 17 1 0.497960 0.482476 0.000000
+14 17 2 0.497918 0.486176 0.000000
+14 17 3 0.497709 0.491157 0.000000
+14 17 4 0.497506 0.496630 0.000000
+14 17 5 0.497338 0.505548 0.000000
+14 17 6 0.496826 0.515075 0.000000
+14 17 7 0.494819 0.527238 0.000000
+14 17 8 0.492043 0.539758 0.000000
+14 17 9 0.486961 0.553346 0.027962
+14 17 10 0.481697 0.567086 0.141006
+14 17 11 0.476028 0.581158 0.226322
+14 17 12 0.469317 0.594941 0.307081
+14 17 13 0.460866 0.608242 0.380245
+14 17 14 0.453905 0.619905 0.450312
+14 17 15 0.448858 0.629462 0.516395
+14 17 16 0.443037 0.639141 0.578848
+14 17 17 0.436441 0.648942 0.637671
+14 17 18 0.430560 0.656149 0.689366
+14 17 19 0.425233 0.661337 0.735516
+14 17 20 0.419907 0.666266 0.775762
+14 17 21 0.414581 0.671041 0.812467
+14 17 22 0.412264 0.674739 0.839500
+14 17 23 0.411314 0.677946 0.862137
+14 17 24 0.410010 0.684407 0.879021
+14 17 25 0.408589 0.691952 0.893987
+14 17 26 0.409399 0.704014 0.905249
+14 17 27 0.410723 0.717118 0.915657
+14 17 28 0.411247 0.726426 0.922789
+14 17 29 0.411655 0.735192 0.929453
+14 17 30 0.411746 0.743282 0.934664
+14 17 31 0.411815 0.751326 0.939779
+14 18 0 0.510250 0.525631 0.000000
+14 18 1 0.509927 0.529075 0.000000
+14 18 2 0.509593 0.532600 0.000000
+14 18 3 0.509067 0.537330 0.000000
+14 18 4 0.508527 0.542574 0.000000
+14 18 5 0.507883 0.551407 0.000000
+14 18 6 0.506844 0.561005 0.000000
+14 18 7 0.504101 0.573923 0.000000
+14 18 8 0.500526 0.587054 0.000000
+14 18 9 0.494454 0.600829 0.007220
+14 18 10 0.488085 0.614833 0.113791
+14 18 11 0.481061 0.629342 0.214900
+14 18 12 0.472997 0.643489 0.306263
+14 18 13 0.463199 0.657033 0.381381
+14 18 14 0.454963 0.669102 0.453186
+14 18 15 0.448734 0.679273 0.520733
+14 18 16 0.441692 0.689165 0.584235
+14 18 17 0.433836 0.698779 0.643692
+14 18 18 0.426595 0.706151 0.696115
+14 18 19 0.419832 0.711782 0.743069
+14 18 20 0.413852 0.716809 0.783711
+14 18 21 0.408342 0.721474 0.820567
+14 18 22 0.405718 0.725078 0.847869
+14 18 23 0.404406 0.728198 0.870827
+14 18 24 0.402946 0.733464 0.887440
+14 18 25 0.401435 0.739446 0.901937
+14 18 26 0.402310 0.748874 0.912638
+14 18 27 0.403737 0.759098 0.922463
+14 18 28 0.404407 0.766603 0.929228
+14 18 29 0.404969 0.773719 0.935557
+14 18 30 0.405306 0.780190 0.940480
+14 18 31 0.405628 0.786618 0.945310
+14 19 0 0.521808 0.571789 0.000000
+14 19 1 0.521020 0.574451 0.000000
+14 19 2 0.520215 0.577174 0.000000
+14 19 3 0.519165 0.580819 0.000000
+14 19 4 0.518066 0.584944 0.000000
+14 19 5 0.516625 0.592430 0.000000
+14 19 6 0.514848 0.601125 0.000000
+14 19 7 0.511613 0.615059 0.000000
+14 19 8 0.507482 0.628958 0.000000
+14 19 9 0.500663 0.642753 0.000000
+14 19 10 0.493254 0.656938 0.074156
+14 19 11 0.484547 0.671981 0.198680
+14 19 12 0.475165 0.686411 0.305198
+14 19 13 0.464655 0.699819 0.381708
+14 19 14 0.455246 0.712555 0.455073
+14 19 15 0.447249 0.724428 0.524394
+14 19 16 0.439075 0.734491 0.588627
+14 19 17 0.430722 0.742746 0.647772
+14 19 18 0.422146 0.750154 0.700789
+14 19 19 0.413395 0.756903 0.749040
+14 19 20 0.406984 0.761690 0.789758
+14 19 21 0.401976 0.765301 0.825956
+14 19 22 0.399063 0.768897 0.853762
+14 19 23 0.397102 0.772488 0.877755
+14 19 24 0.395536 0.776993 0.894306
+14 19 25 0.394102 0.781804 0.908375
+14 19 26 0.395274 0.789229 0.918597
+14 19 27 0.397047 0.797257 0.927930
+14 19 28 0.398040 0.803436 0.934433
+14 19 29 0.398921 0.809352 0.940531
+14 19 30 0.399432 0.814013 0.945224
+14 19 31 0.399917 0.818591 0.949823
+14 20 0 0.530498 0.604913 0.000000
+14 20 1 0.529590 0.607856 0.000000
+14 20 2 0.528663 0.610864 0.000000
+14 20 3 0.527453 0.614852 0.000000
+14 20 4 0.526169 0.619345 0.000000
+14 20 5 0.524369 0.627371 0.000000
+14 20 6 0.522126 0.636399 0.000000
+14 20 7 0.517959 0.649773 0.000000
+14 20 8 0.512907 0.663420 0.000000
+14 20 9 0.505200 0.677883 0.000000
+14 20 10 0.496881 0.692563 0.061053
+14 20 11 0.487215 0.707721 0.193217
+14 20 12 0.476780 0.722336 0.305082
+14 20 13 0.465064 0.736045 0.383113
+14 20 14 0.454674 0.748878 0.457665
+14 20 15 0.445990 0.760585 0.527745
+14 20 16 0.436834 0.770941 0.592813
+14 20 17 0.427204 0.779947 0.652872
+14 20 18 0.417717 0.787424 0.706276
+14 20 19 0.408341 0.793711 0.754504
+14 20 20 0.401287 0.798592 0.795455
+14 20 21 0.395626 0.802629 0.832039
+14 20 22 0.392491 0.805996 0.859748
+14 20 23 0.390504 0.809057 0.883424
+14 20 24 0.388743 0.812617 0.899740
+14 20 25 0.387059 0.816342 0.913604
+14 20 26 0.388334 0.821670 0.923383
+14 20 27 0.390292 0.827367 0.932220
+14 20 28 0.391598 0.832004 0.938430
+14 20 29 0.392811 0.836489 0.944265
+14 20 30 0.393638 0.840258 0.948763
+14 20 31 0.394439 0.843979 0.953172
+14 21 0 0.537467 0.630217 0.000000
+14 21 1 0.536646 0.634078 0.000000
+14 21 2 0.535805 0.638022 0.000000
+14 21 3 0.534654 0.643212 0.000000
+14 21 4 0.533410 0.648965 0.000000
+14 21 5 0.531515 0.658662 0.000000
+14 21 6 0.528969 0.668766 0.000000
+14 21 7 0.523605 0.680636 0.000000
+14 21 8 0.517412 0.693418 0.000000
+14 21 9 0.508734 0.708937 0.000000
+14 21 10 0.499583 0.724300 0.063868
+14 21 11 0.489392 0.739321 0.194210
+14 21 12 0.478065 0.754062 0.305534
+14 21 13 0.464844 0.768335 0.385164
+14 21 14 0.453590 0.780923 0.460680
+14 21 15 0.444867 0.791344 0.530908
+14 21 16 0.434818 0.802066 0.596876
+14 21 17 0.423444 0.813088 0.658585
+14 21 18 0.413302 0.820654 0.712251
+14 21 19 0.404117 0.825531 0.759664
+14 21 20 0.396294 0.830706 0.800942
+14 21 21 0.389286 0.836059 0.838539
+14 21 22 0.385969 0.839062 0.865789
+14 21 23 0.384329 0.840995 0.888336
+14 21 24 0.382320 0.843497 0.904316
+14 21 25 0.380190 0.846188 0.918107
+14 21 26 0.381453 0.849363 0.927466
+14 21 27 0.383498 0.852649 0.935802
+14 21 28 0.385112 0.855612 0.941703
+14 21 29 0.386663 0.858529 0.947256
+14 21 30 0.387892 0.861955 0.951580
+14 21 31 0.389100 0.865416 0.955822
+14 22 0 0.544375 0.652171 0.000000
+14 22 1 0.543295 0.655982 0.000000
+14 22 2 0.542186 0.659877 0.000000
+14 22 3 0.540646 0.665039 0.000000
+14 22 4 0.538971 0.670739 0.000000
+14 22 5 0.536351 0.680203 0.000000
+14 22 6 0.533107 0.690174 0.000000
+14 22 7 0.527163 0.702337 0.000000
+14 22 8 0.520318 0.715337 0.000000
+14 22 9 0.510767 0.730847 0.000000
+14 22 10 0.500823 0.746308 0.071755
+14 22 11 0.490014 0.761660 0.200680
+14 22 12 0.478319 0.776493 0.311324
+14 22 13 0.465148 0.790461 0.391496
+14 22 14 0.453465 0.802960 0.467289
+14 22 15 0.443697 0.813569 0.537451
+14 22 16 0.433012 0.824158 0.603167
+14 22 17 0.421411 0.834726 0.664436
+14 22 18 0.410832 0.842164 0.717759
+14 22 19 0.401048 0.847168 0.764901
+14 22 20 0.392894 0.852262 0.805648
+14 22 21 0.385718 0.857409 0.842556
+14 22 22 0.382272 0.860494 0.869606
+14 22 23 0.380521 0.862642 0.892174
+14 22 24 0.378440 0.864874 0.907986
+14 22 25 0.376250 0.867134 0.921545
+14 22 26 0.377615 0.869556 0.930541
+14 22 27 0.379801 0.872016 0.938483
+14 22 28 0.381553 0.874377 0.944201
+14 22 29 0.383243 0.876725 0.949601
+14 22 30 0.384526 0.879500 0.953792
+14 22 31 0.385781 0.882303 0.957903
+14 23 0 0.551257 0.672603 0.000000
+14 23 1 0.549759 0.675922 0.000000
+14 23 2 0.548221 0.679320 0.000000
+14 23 3 0.546088 0.683897 0.000000
+14 23 4 0.543768 0.688948 0.000000
+14 23 5 0.540137 0.697314 0.000000
+14 23 6 0.536016 0.706600 0.000000
+14 23 7 0.529773 0.719873 0.000000
+14 23 8 0.522496 0.733583 0.000000
+14 23 9 0.512118 0.748602 0.000000
+14 23 10 0.501399 0.763895 0.081948
+14 23 11 0.489929 0.779790 0.209642
+14 23 12 0.478105 0.794700 0.319539
+14 23 13 0.465690 0.807967 0.399776
+14 23 14 0.453776 0.820447 0.475533
+14 23 15 0.442506 0.831915 0.545531
+14 23 16 0.431302 0.842144 0.610470
+14 23 17 0.420164 0.851135 0.670350
+14 23 18 0.409247 0.858347 0.723053
+14 23 19 0.398503 0.864176 0.770174
+14 23 20 0.390219 0.869018 0.809999
+14 23 21 0.383410 0.873268 0.845446
+14 23 22 0.379859 0.876640 0.872412
+14 23 23 0.377789 0.879612 0.895523
+14 23 24 0.375715 0.881932 0.911243
+14 23 25 0.373641 0.884034 0.924499
+14 23 26 0.375160 0.886340 0.933157
+14 23 27 0.377510 0.888694 0.940753
+14 23 28 0.379325 0.890942 0.946346
+14 23 29 0.381063 0.893174 0.951652
+14 23 30 0.382240 0.895157 0.955729
+14 23 31 0.383379 0.897123 0.959724
+14 24 0 0.558048 0.688323 0.000000
+14 24 1 0.556045 0.692257 0.000000
+14 24 2 0.554007 0.696254 0.000000
+14 24 3 0.551442 0.701210 0.000000
+14 24 4 0.548713 0.706552 0.000000
+14 24 5 0.544829 0.714589 0.000000
+14 24 6 0.540302 0.723549 0.000000
+14 24 7 0.532991 0.736508 0.000000
+14 24 8 0.524830 0.749932 0.000000
+14 24 9 0.514116 0.764751 0.000000
+14 24 10 0.503132 0.779795 0.098422
+14 24 11 0.491554 0.795332 0.227723
+14 24 12 0.479682 0.809931 0.338146
+14 24 13 0.467319 0.822969 0.417104
+14 24 14 0.455425 0.835208 0.491479
+14 24 15 0.444135 0.846419 0.559962
+14 24 16 0.432874 0.856304 0.623148
+14 24 17 0.421642 0.864862 0.681036
+14 24 18 0.410644 0.871873 0.732292
+14 24 19 0.399827 0.877680 0.778389
+14 24 20 0.391223 0.882340 0.816954
+14 24 21 0.383947 0.886311 0.851000
+14 24 22 0.380639 0.889473 0.877142
+14 24 23 0.379135 0.892267 0.899690
+14 24 24 0.377023 0.894431 0.914989
+14 24 25 0.374708 0.896385 0.927872
+14 24 26 0.376163 0.898629 0.936274
+14 24 27 0.378488 0.900940 0.943643
+14 24 28 0.380475 0.902986 0.949015
+14 24 29 0.382414 0.904994 0.954103
+14 24 30 0.383767 0.906613 0.957956
+14 24 31 0.385081 0.908206 0.961727
+14 25 0 0.564809 0.702473 0.000000
+14 25 1 0.562272 0.707389 0.000000
+14 25 2 0.559711 0.712352 0.000000
+14 25 3 0.556767 0.718009 0.000000
+14 25 4 0.553707 0.723954 0.000000
+14 25 5 0.549823 0.731918 0.000000
+14 25 6 0.545048 0.740671 0.000000
+14 25 7 0.536413 0.752842 0.000000
+14 25 8 0.527215 0.765649 0.000000
+14 25 9 0.516329 0.780365 0.003085
+14 25 10 0.505251 0.795132 0.116990
+14 25 11 0.493749 0.810011 0.248845
+14 25 12 0.481856 0.824172 0.360216
+14 25 13 0.469309 0.837137 0.437449
+14 25 14 0.457520 0.849060 0.509994
+14 25 15 0.446704 0.859643 0.576511
+14 25 16 0.435540 0.869188 0.637618
+14 25 17 0.424029 0.877695 0.693313
+14 25 18 0.413034 0.884513 0.742845
+14 25 19 0.402440 0.890017 0.787583
+14 25 20 0.393454 0.894517 0.824777
+14 25 21 0.385432 0.898415 0.857443
+14 25 22 0.382484 0.901202 0.882513
+14 25 23 0.381841 0.903484 0.904130
+14 25 24 0.379675 0.905411 0.918899
+14 25 25 0.377002 0.907218 0.931384
+14 25 26 0.378319 0.909418 0.939559
+14 25 27 0.380556 0.911708 0.946740
+14 25 28 0.382752 0.913523 0.951861
+14 25 29 0.384942 0.915270 0.956687
+14 25 30 0.386565 0.916668 0.960279
+14 25 31 0.388149 0.918043 0.963789
+14 26 0 0.571899 0.712226 0.000000
+14 26 1 0.569262 0.717327 0.000000
+14 26 2 0.566586 0.722503 0.000000
+14 26 3 0.563320 0.728826 0.000000
+14 26 4 0.559852 0.735564 0.000000
+14 26 5 0.554975 0.745205 0.000000
+14 26 6 0.549334 0.755290 0.000000
+14 26 7 0.540379 0.767295 0.000000
+14 26 8 0.530860 0.779865 0.000000
+14 26 9 0.519648 0.794128 0.022533
+14 26 10 0.508555 0.808365 0.146927
+14 26 11 0.497724 0.822543 0.278115
+14 26 12 0.486299 0.836103 0.388104
+14 26 13 0.473883 0.848630 0.462763
+14 26 14 0.462409 0.860040 0.532688
+14 26 15 0.452145 0.870013 0.596526
+14 26 16 0.441417 0.879036 0.654844
+14 26 17 0.430225 0.887109 0.707641
+14 26 18 0.419757 0.893686 0.755356
+14 26 19 0.409852 0.899099 0.799118
+14 26 20 0.401067 0.903413 0.834446
+14 26 21 0.392954 0.907068 0.864715
+14 26 22 0.390163 0.909661 0.888448
+14 26 23 0.389792 0.911770 0.909210
+14 26 24 0.387685 0.913620 0.923639
+14 26 25 0.384999 0.915383 0.935956
+14 26 26 0.385954 0.917089 0.943236
+14 26 27 0.387748 0.918781 0.949354
+14 26 28 0.389882 0.920478 0.954232
+14 26 29 0.392064 0.922176 0.958933
+14 26 30 0.393770 0.923533 0.962528
+14 26 31 0.395445 0.924867 0.966048
+14 27 0 0.579065 0.720964 0.000000
+14 27 1 0.576428 0.726065 0.000000
+14 27 2 0.573733 0.731283 0.000000
+14 27 3 0.570156 0.738264 0.000000
+14 27 4 0.566264 0.745837 0.000000
+14 27 5 0.560164 0.757559 0.000000
+14 27 6 0.553513 0.769330 0.000000
+14 27 7 0.544471 0.781314 0.000000
+14 27 8 0.534796 0.793735 0.000000
+14 27 9 0.523223 0.807464 0.043824
+14 27 10 0.512134 0.821112 0.179487
+14 27 11 0.502110 0.834581 0.309265
+14 27 12 0.491265 0.847501 0.417335
+14 27 13 0.479053 0.859507 0.489224
+14 27 14 0.467942 0.870358 0.556347
+14 27 15 0.458249 0.879724 0.617340
+14 27 16 0.448035 0.888183 0.672705
+14 27 17 0.437300 0.895735 0.722443
+14 27 18 0.427480 0.902059 0.768319
+14 27 19 0.418371 0.907430 0.811192
+14 27 20 0.409922 0.911552 0.844542
+14 27 21 0.401868 0.914925 0.872178
+14 27 22 0.399189 0.917365 0.894513
+14 27 23 0.398953 0.919380 0.914438
+14 27 24 0.396931 0.921190 0.928571
+14 27 25 0.394313 0.922932 0.940773
+14 27 26 0.394854 0.924040 0.947004
+14 27 27 0.396123 0.925001 0.951857
+14 27 28 0.398131 0.926607 0.956495
+14 27 29 0.400246 0.928305 0.961102
+14 27 30 0.401993 0.929662 0.964758
+14 27 31 0.403715 0.930996 0.968351
+14 28 0 0.584436 0.727224 0.000000
+14 28 1 0.581799 0.732324 0.000000
+14 28 2 0.579101 0.737549 0.000000
+14 28 3 0.575486 0.744631 0.000000
+14 28 4 0.571525 0.752356 0.000000
+14 28 5 0.565154 0.764584 0.000000
+14 28 6 0.558153 0.777024 0.000000
+14 28 7 0.548421 0.790378 0.000000
+14 28 8 0.538149 0.803749 0.000000
+14 28 9 0.526256 0.817172 0.090970
+14 28 10 0.515144 0.830474 0.223221
+14 28 11 0.505750 0.843506 0.339001
+14 28 12 0.495413 0.855989 0.437702
+14 28 13 0.483505 0.867556 0.507937
+14 28 14 0.472779 0.877982 0.573269
+14 28 15 0.463572 0.886944 0.632296
+14 28 16 0.453820 0.895053 0.686221
+14 28 17 0.443522 0.902312 0.735045
+14 28 18 0.434437 0.908402 0.779431
+14 28 19 0.426295 0.913584 0.820364
+14 28 20 0.418557 0.917562 0.852432
+14 28 21 0.411062 0.920817 0.879182
+14 28 22 0.408132 0.923199 0.900420
+14 28 23 0.407279 0.925184 0.919153
+14 28 24 0.405318 0.926924 0.932688
+14 28 25 0.402988 0.928581 0.944491
+14 28 26 0.403528 0.929598 0.950518
+14 28 27 0.404732 0.930468 0.955214
+14 28 28 0.406301 0.931647 0.959157
+14 28 29 0.407923 0.932870 0.962994
+14 28 30 0.409589 0.934137 0.966474
+14 28 31 0.411259 0.935408 0.969930
+14 29 0 0.589550 0.733129 0.000000
+14 29 1 0.586914 0.738230 0.000000
+14 29 2 0.584216 0.743456 0.000000
+14 29 3 0.580600 0.750559 0.000000
+14 29 4 0.576623 0.758338 0.000000
+14 29 5 0.570117 0.770848 0.000000
+14 29 6 0.562860 0.783811 0.000000
+14 29 7 0.552351 0.798733 0.000000
+14 29 8 0.541418 0.813212 0.002906
+14 29 9 0.529212 0.826362 0.141809
+14 29 10 0.518073 0.839352 0.268550
+14 29 11 0.509283 0.851987 0.368535
+14 29 12 0.499444 0.864061 0.456803
+14 29 13 0.487855 0.875200 0.525544
+14 29 14 0.477515 0.885222 0.589229
+14 29 15 0.468783 0.893807 0.646414
+14 29 16 0.459485 0.901598 0.699116
+14 29 17 0.449623 0.908596 0.747333
+14 29 18 0.441285 0.914454 0.790278
+14 29 19 0.434134 0.919427 0.829122
+14 29 20 0.427161 0.923267 0.860008
+14 29 21 0.420295 0.926429 0.886121
+14 29 22 0.417064 0.928767 0.906305
+14 29 23 0.415485 0.930731 0.923795
+14 29 24 0.413582 0.932395 0.936689
+14 29 25 0.411571 0.933958 0.948052
+14 29 26 0.412171 0.934957 0.953997
+14 29 27 0.413375 0.935827 0.958692
+14 29 28 0.414460 0.936531 0.961877
+14 29 29 0.415528 0.937211 0.964846
+14 29 30 0.417097 0.938376 0.968115
+14 29 31 0.418698 0.939574 0.971405
+14 30 0 0.593644 0.737652 0.000000
+14 30 1 0.590963 0.742753 0.000000
+14 30 2 0.588223 0.747977 0.000000
+14 30 3 0.584607 0.755062 0.000000
+14 30 4 0.580634 0.762829 0.000000
+14 30 5 0.574165 0.775378 0.000000
+14 30 6 0.566793 0.788633 0.000000
+14 30 7 0.555516 0.804955 0.000000
+14 30 8 0.543967 0.820436 0.081364
+14 30 9 0.531604 0.833393 0.197328
+14 30 10 0.520432 0.846153 0.304395
+14 30 11 0.511881 0.858480 0.391885
+14 30 12 0.502355 0.870259 0.471964
+14 30 13 0.491204 0.881126 0.539690
+14 30 14 0.481216 0.890869 0.602054
+14 30 15 0.472722 0.899167 0.657527
+14 30 16 0.463843 0.906674 0.709035
+14 30 17 0.454580 0.913390 0.756577
+14 30 18 0.446913 0.919019 0.798387
+14 30 19 0.440488 0.923803 0.835738
+14 30 20 0.434141 0.927569 0.865723
+14 30 21 0.427841 0.930724 0.891287
+14 30 22 0.424362 0.932985 0.910734
+14 30 23 0.422166 0.934840 0.927400
+14 30 24 0.420267 0.936472 0.939804
+14 30 25 0.418466 0.938029 0.950787
+14 30 26 0.419106 0.939027 0.956605
+14 30 27 0.420310 0.939897 0.961232
+14 30 28 0.421365 0.940571 0.964343
+14 30 29 0.422399 0.941218 0.967238
+14 30 30 0.423628 0.942065 0.969997
+14 30 31 0.424871 0.942925 0.972747
+14 31 0 0.597670 0.742083 0.000000
+14 31 1 0.594941 0.747184 0.000000
+14 31 2 0.592156 0.752407 0.000000
+14 31 3 0.588540 0.759470 0.000000
+14 31 4 0.584573 0.767222 0.000000
+14 31 5 0.578152 0.779791 0.000000
+14 31 6 0.570675 0.793325 0.000000
+14 31 7 0.558630 0.811036 0.035048
+14 31 8 0.546469 0.827511 0.161607
+14 31 9 0.533959 0.840280 0.253159
+14 31 10 0.522753 0.852816 0.339607
+14 31 11 0.514416 0.864839 0.414823
+14 31 12 0.505192 0.876331 0.486862
+14 31 13 0.494487 0.886938 0.553605
+14 31 14 0.484847 0.896411 0.614671
+14 31 15 0.476576 0.904426 0.668440
+14 31 16 0.468114 0.911651 0.718755
+14 31 17 0.459460 0.918085 0.765619
+14 31 18 0.452459 0.923485 0.806314
+14 31 19 0.446743 0.928081 0.842212
+14 31 20 0.441013 0.931776 0.871312
+14 31 21 0.435275 0.934932 0.896334
+14 31 22 0.431552 0.937114 0.915065
+14 31 23 0.428746 0.938853 0.930937
+14 31 24 0.426846 0.940456 0.942859
+14 31 25 0.425249 0.942013 0.953466
+14 31 26 0.425927 0.943011 0.959155
+14 31 27 0.427131 0.943881 0.963709
+14 31 28 0.428186 0.944556 0.966793
+14 31 29 0.429220 0.945202 0.969666
+14 31 30 0.430095 0.945716 0.971895
+14 31 31 0.430959 0.946221 0.974081
+15 0 0 0.299402 0.000000 0.004509
+15 0 1 0.299490 0.000000 0.007688
+15 0 2 0.299585 0.000000 0.010944
+15 0 3 0.299798 0.000000 0.015351
+15 0 4 0.300023 0.000000 0.020195
+15 0 5 0.300324 0.000000 0.028099
+15 0 6 0.300821 0.000000 0.036377
+15 0 7 0.302173 0.000000 0.046279
+15 0 8 0.304237 0.000000 0.057424
+15 0 9 0.308444 0.000000 0.072303
+15 0 10 0.312492 0.000000 0.096074
+15 0 11 0.316189 0.000000 0.139405
+15 0 12 0.320131 0.000000 0.181818
+15 0 13 0.324480 0.000000 0.222699
+15 0 14 0.329824 0.000000 0.265329
+15 0 15 0.336448 0.000000 0.310206
+15 0 16 0.342386 0.000000 0.351040
+15 0 17 0.347638 0.000000 0.387832
+15 0 18 0.352473 0.000000 0.422848
+15 0 19 0.356986 0.000000 0.456484
+15 0 20 0.361595 0.000000 0.487057
+15 0 21 0.366261 0.000000 0.515792
+15 0 22 0.372969 0.000000 0.542547
+15 0 23 0.380605 0.000000 0.568403
+15 0 24 0.392725 0.000000 0.599076
+15 0 25 0.406340 0.000000 0.631354
+15 0 26 0.427342 0.000000 0.671219
+15 0 27 0.450049 0.000000 0.712835
+15 0 28 0.465274 0.000000 0.740985
+15 0 29 0.479430 0.008859 0.767211
+15 0 30 0.489192 0.108031 0.786479
+15 0 31 0.498661 0.208909 0.805283
+15 1 0 0.305671 0.000000 0.000000
+15 1 1 0.305716 0.000000 0.000000
+15 1 2 0.305772 0.000000 0.010262
+15 1 3 0.305985 0.000000 0.014669
+15 1 4 0.306209 0.000000 0.019514
+15 1 5 0.306510 0.000000 0.027417
+15 1 6 0.307029 0.000000 0.036079
+15 1 7 0.308490 0.000000 0.048024
+15 1 8 0.310572 0.000000 0.060686
+15 1 9 0.314516 0.000000 0.075495
+15 1 10 0.318403 0.000000 0.099349
+15 1 11 0.322166 0.000000 0.143102
+15 1 12 0.326148 0.000000 0.186079
+15 1 13 0.330497 0.000000 0.227761
+15 1 14 0.335775 0.000000 0.270893
+15 1 15 0.342246 0.000000 0.315888
+15 1 16 0.348020 0.000000 0.357346
+15 1 17 0.353097 0.000000 0.395265
+15 1 18 0.357880 0.000000 0.430815
+15 1 19 0.362435 0.000000 0.464520
+15 1 20 0.366950 0.000000 0.495457
+15 1 21 0.371441 0.000000 0.524732
+15 1 22 0.377943 0.000000 0.551285
+15 1 23 0.385359 0.000000 0.576600
+15 1 24 0.396097 0.000000 0.605569
+15 1 25 0.407941 0.000000 0.635754
+15 1 26 0.428630 0.000000 0.675170
+15 1 27 0.451358 0.000000 0.716716
+15 1 28 0.466587 0.000000 0.744918
+15 1 29 0.480743 0.019783 0.771214
+15 1 30 0.490484 0.119319 0.790421
+15 1 31 0.499930 0.220198 0.809155
+15 2 0 0.312072 0.000000 0.000000
+15 2 1 0.312077 0.000000 0.000000
+15 2 2 0.312095 0.000000 0.005815
+15 2 3 0.312302 0.000000 0.012223
+15 2 4 0.312521 0.000000 0.018818
+15 2 5 0.312823 0.000000 0.026723
+15 2 6 0.313362 0.000000 0.035769
+15 2 7 0.314928 0.000000 0.049761
+15 2 8 0.317022 0.000000 0.063950
+15 2 9 0.320702 0.000000 0.078733
+15 2 10 0.324431 0.000000 0.102703
+15 2 11 0.328267 0.000000 0.146882
+15 2 12 0.332295 0.000000 0.190431
+15 2 13 0.336642 0.000000 0.232928
+15 2 14 0.341850 0.000000 0.276575
+15 2 15 0.348164 0.000000 0.321701
+15 2 16 0.353772 0.000000 0.363796
+15 2 17 0.358674 0.000000 0.402862
+15 2 18 0.363404 0.000000 0.438955
+15 2 19 0.367999 0.000000 0.472736
+15 2 20 0.372420 0.000000 0.504039
+15 2 21 0.376737 0.000000 0.533856
+15 2 22 0.383022 0.000000 0.560205
+15 2 23 0.390202 0.000000 0.584978
+15 2 24 0.399616 0.000000 0.612309
+15 2 25 0.409775 0.000000 0.640493
+15 2 26 0.430073 0.000000 0.679366
+15 2 27 0.452709 0.000000 0.720706
+15 2 28 0.467927 0.000000 0.748937
+15 2 29 0.482085 0.030941 0.775295
+15 2 30 0.491802 0.130851 0.794448
+15 2 31 0.501223 0.231731 0.813122
+15 3 0 0.320458 0.000000 0.000000
+15 3 1 0.320463 0.000000 0.000000
+15 3 2 0.320474 0.000000 0.000000
+15 3 3 0.320574 0.000000 0.000000
+15 3 4 0.320701 0.000000 0.017910
+15 3 5 0.321026 0.000000 0.025839
+15 3 6 0.321588 0.000000 0.035293
+15 3 7 0.323176 0.000000 0.051353
+15 3 8 0.325216 0.000000 0.067252
+15 3 9 0.328611 0.000000 0.082669
+15 3 10 0.332206 0.000000 0.107229
+15 3 11 0.336239 0.000000 0.151903
+15 3 12 0.340382 0.000000 0.196149
+15 3 13 0.344707 0.000000 0.239680
+15 3 14 0.349797 0.000000 0.284043
+15 3 15 0.355871 0.000000 0.329475
+15 3 16 0.361281 0.000000 0.372429
+15 3 17 0.366028 0.000000 0.412905
+15 3 18 0.370690 0.000000 0.449707
+15 3 19 0.375285 0.000000 0.483652
+15 3 20 0.379609 0.000000 0.515369
+15 3 21 0.383771 0.000000 0.545749
+15 3 22 0.389677 0.000000 0.571870
+15 3 23 0.396377 0.000000 0.596055
+15 3 24 0.405360 0.000000 0.622763
+15 3 25 0.415105 0.000000 0.650314
+15 3 26 0.433849 0.000000 0.687234
+15 3 27 0.454670 0.000000 0.726318
+15 3 28 0.469681 0.000000 0.754227
+15 3 29 0.483861 0.045608 0.780539
+15 3 30 0.493519 0.146028 0.799755
+15 3 31 0.502875 0.246932 0.818499
+15 4 0 0.329648 0.000000 0.000000
+15 4 1 0.329654 0.000000 0.000000
+15 4 2 0.329659 0.000000 0.000000
+15 4 3 0.329664 0.000000 0.000000
+15 4 4 0.329710 0.000000 0.008337
+15 4 5 0.330036 0.000000 0.021012
+15 4 6 0.330602 0.000000 0.034662
+15 4 7 0.332210 0.000000 0.052541
+15 4 8 0.334205 0.000000 0.070089
+15 4 9 0.337359 0.000000 0.086645
+15 4 10 0.340834 0.000000 0.112160
+15 4 11 0.345016 0.000000 0.157384
+15 4 12 0.349240 0.000000 0.202400
+15 4 13 0.353534 0.000000 0.247069
+15 4 14 0.358495 0.000000 0.292214
+15 4 15 0.364315 0.000000 0.337973
+15 4 16 0.369507 0.000000 0.381872
+15 4 17 0.374068 0.000000 0.423911
+15 4 18 0.378658 0.000000 0.461497
+15 4 19 0.383269 0.000000 0.495621
+15 4 20 0.387485 0.000000 0.527783
+15 4 21 0.391465 0.000000 0.558769
+15 4 22 0.396984 0.000000 0.584654
+15 4 23 0.403203 0.000000 0.608221
+15 4 24 0.411778 0.000000 0.634333
+15 4 25 0.421137 0.000000 0.661293
+15 4 26 0.438119 0.000000 0.696008
+15 4 27 0.456860 0.000000 0.732511
+15 4 28 0.471607 0.000000 0.760047
+15 4 29 0.485782 0.061683 0.786302
+15 4 30 0.495397 0.162652 0.805564
+15 4 31 0.504707 0.263568 0.824359
+15 5 0 0.344472 0.000000 0.000000
+15 5 1 0.344478 0.000000 0.000000
+15 5 2 0.344483 0.000000 0.000000
+15 5 3 0.344488 0.000000 0.000000
+15 5 4 0.344515 0.000000 0.000000
+15 5 5 0.344692 0.000000 0.000000
+15 5 6 0.345136 0.000000 0.032948
+15 5 7 0.346745 0.000000 0.050896
+15 5 8 0.348756 0.000000 0.069666
+15 5 9 0.351978 0.000000 0.090899
+15 5 10 0.355437 0.000000 0.119923
+15 5 11 0.359422 0.000000 0.166087
+15 5 12 0.363489 0.000000 0.212387
+15 5 13 0.367696 0.000000 0.258916
+15 5 14 0.372455 0.000000 0.305313
+15 5 15 0.377925 0.000000 0.351541
+15 5 16 0.382743 0.000000 0.396991
+15 5 17 0.386910 0.000000 0.441663
+15 5 18 0.391400 0.000000 0.480560
+15 5 19 0.396141 0.000000 0.514966
+15 5 20 0.400173 0.000000 0.547791
+15 5 21 0.403780 0.000000 0.579668
+15 5 22 0.408850 0.000000 0.605267
+15 5 23 0.414587 0.000000 0.628012
+15 5 24 0.422909 0.000000 0.653707
+15 5 25 0.432094 0.000000 0.680385
+15 5 26 0.445848 0.000000 0.711114
+15 5 27 0.460656 0.000000 0.742777
+15 5 28 0.474738 0.000000 0.769583
+15 5 29 0.488716 0.087626 0.795696
+15 5 30 0.498400 0.189394 0.814883
+15 5 31 0.507797 0.290241 0.833609
+15 6 0 0.361033 0.000000 0.000000
+15 6 1 0.361072 0.000000 0.000000
+15 6 2 0.361108 0.000000 0.000000
+15 6 3 0.361118 0.000000 0.000000
+15 6 4 0.361133 0.000000 0.000000
+15 6 5 0.361183 0.000000 0.000000
+15 6 6 0.361521 0.000000 0.021097
+15 6 7 0.363106 0.000000 0.044851
+15 6 8 0.365127 0.000000 0.069266
+15 6 9 0.368457 0.000000 0.095668
+15 6 10 0.371910 0.000000 0.128568
+15 6 11 0.375631 0.000000 0.175765
+15 6 12 0.379515 0.000000 0.223466
+15 6 13 0.383671 0.000000 0.272007
+15 6 14 0.388182 0.000000 0.319863
+15 6 15 0.393150 0.000000 0.366840
+15 6 16 0.397545 0.000000 0.413832
+15 6 17 0.401366 0.000000 0.460841
+15 6 18 0.405724 0.000000 0.501217
+15 6 19 0.410500 0.000000 0.536433
+15 6 20 0.414354 0.000000 0.569987
+15 6 21 0.417653 0.000000 0.602545
+15 6 22 0.422277 0.000000 0.628109
+15 6 23 0.427503 0.000000 0.650494
+15 6 24 0.435382 0.000000 0.675577
+15 6 25 0.444146 0.000000 0.701560
+15 6 26 0.455234 0.000000 0.728963
+15 6 27 0.466859 0.000000 0.756693
+15 6 28 0.479818 0.014071 0.782193
+15 6 29 0.492967 0.131902 0.807375
+15 6 30 0.502196 0.226793 0.825898
+15 6 31 0.511164 0.320155 0.843976
+15 7 0 0.385124 0.017962 0.000000
+15 7 1 0.385337 0.019208 0.000000
+15 7 2 0.385539 0.020390 0.000000
+15 7 3 0.385571 0.020602 0.000000
+15 7 4 0.385603 0.020831 0.000000
+15 7 5 0.385631 0.021174 0.000000
+15 7 6 0.385927 0.021677 0.000000
+15 7 7 0.387384 0.022880 0.019734
+15 7 8 0.389382 0.024515 0.068970
+15 7 9 0.393000 0.027452 0.102672
+15 7 10 0.396480 0.029611 0.141039
+15 7 11 0.399653 0.030062 0.189671
+15 7 12 0.403236 0.028632 0.239273
+15 7 13 0.407502 0.024067 0.290492
+15 7 14 0.411568 0.021074 0.340708
+15 7 15 0.415375 0.020104 0.389634
+15 7 16 0.419125 0.019621 0.438131
+15 7 17 0.422816 0.019625 0.486199
+15 7 18 0.426906 0.019738 0.528781
+15 7 19 0.431307 0.019936 0.567096
+15 7 20 0.435005 0.020866 0.601667
+15 7 21 0.438283 0.022234 0.633992
+15 7 22 0.442465 0.025712 0.660611
+15 7 23 0.447058 0.030150 0.684636
+15 7 24 0.453665 0.042744 0.708265
+15 7 25 0.460944 0.058058 0.731760
+15 7 26 0.471807 0.087655 0.758697
+15 7 27 0.483497 0.120549 0.786427
+15 7 28 0.493343 0.185777 0.808124
+15 7 29 0.502926 0.255624 0.828960
+15 7 30 0.509429 0.310373 0.844260
+15 7 31 0.515726 0.364115 0.859190
+15 8 0 0.407632 0.088630 0.000000
+15 8 1 0.407954 0.090469 0.000000
+15 8 2 0.408263 0.092232 0.000000
+15 8 3 0.408362 0.092855 0.000000
+15 8 4 0.408462 0.093535 0.000000
+15 8 5 0.408572 0.094610 0.000000
+15 8 6 0.408940 0.095914 0.000000
+15 8 7 0.410427 0.098210 0.000000
+15 8 8 0.412473 0.101074 0.068990
+15 8 9 0.416191 0.105640 0.108389
+15 8 10 0.419595 0.109867 0.151316
+15 8 11 0.422309 0.113345 0.202004
+15 8 12 0.425512 0.116605 0.253794
+15 8 13 0.429532 0.119502 0.307421
+15 8 14 0.433030 0.121905 0.359845
+15 8 15 0.435858 0.123674 0.410722
+15 8 16 0.438990 0.124790 0.460755
+15 8 17 0.442424 0.125254 0.509946
+15 8 18 0.446210 0.125793 0.554419
+15 8 19 0.450269 0.126392 0.595224
+15 8 20 0.453732 0.128085 0.630692
+15 8 21 0.456838 0.130436 0.662958
+15 8 22 0.460566 0.136277 0.690353
+15 8 23 0.464577 0.143705 0.715533
+15 8 24 0.470059 0.164006 0.737936
+15 8 25 0.476032 0.188600 0.759414
+15 8 26 0.486312 0.236038 0.785442
+15 8 27 0.497586 0.288748 0.812520
+15 8 28 0.504797 0.324435 0.830919
+15 8 29 0.511428 0.357690 0.848077
+15 8 30 0.515679 0.381866 0.860642
+15 8 31 0.519771 0.405437 0.872899
+15 9 0 0.425393 0.110924 0.000000
+15 9 1 0.425628 0.112106 0.000000
+15 9 2 0.425867 0.113328 0.000000
+15 9 3 0.426164 0.115173 0.000000
+15 9 4 0.426486 0.117210 0.000000
+15 9 5 0.426991 0.120587 0.000000
+15 9 6 0.427775 0.124346 0.000000
+15 9 7 0.429765 0.129764 0.000000
+15 9 8 0.432070 0.134892 0.069958
+15 9 9 0.435323 0.139155 0.110246
+15 9 10 0.438346 0.143930 0.155010
+15 9 11 0.440865 0.149829 0.209619
+15 9 12 0.443453 0.155244 0.264460
+15 9 13 0.446157 0.159854 0.319685
+15 9 14 0.448724 0.163838 0.373861
+15 9 15 0.451115 0.167017 0.426688
+15 9 16 0.453708 0.169755 0.478355
+15 9 17 0.456504 0.172050 0.528861
+15 9 18 0.459876 0.174011 0.574281
+15 9 19 0.463695 0.175710 0.615744
+15 9 20 0.466684 0.178110 0.651751
+15 9 21 0.469174 0.180931 0.684484
+15 9 22 0.472411 0.187436 0.711816
+15 9 23 0.475986 0.195616 0.736693
+15 9 24 0.480784 0.214927 0.758561
+15 9 25 0.485989 0.237949 0.779426
+15 9 26 0.494616 0.281981 0.803219
+15 9 27 0.504033 0.330861 0.827689
+15 9 28 0.510038 0.363954 0.844302
+15 9 29 0.515556 0.394791 0.859793
+15 9 30 0.518981 0.417102 0.871084
+15 9 31 0.522265 0.438844 0.882096
+15 10 0 0.444163 0.139562 0.000000
+15 10 1 0.444325 0.140577 0.000000
+15 10 2 0.444502 0.141702 0.000000
+15 10 3 0.444914 0.144483 0.000000
+15 10 4 0.445365 0.147558 0.000000
+15 10 5 0.446088 0.152687 0.000000
+15 10 6 0.447094 0.158192 0.000000
+15 10 7 0.449327 0.165323 0.000000
+15 10 8 0.451724 0.171878 0.066483
+15 10 9 0.454609 0.176703 0.110563
+15 10 10 0.457245 0.182448 0.158975
+15 10 11 0.459334 0.190217 0.216920
+15 10 12 0.461268 0.197383 0.274479
+15 10 13 0.462944 0.203546 0.331398
+15 10 14 0.464710 0.209003 0.387517
+15 10 15 0.466592 0.213555 0.442609
+15 10 16 0.468689 0.217850 0.495967
+15 10 17 0.471000 0.221890 0.547592
+15 10 18 0.473927 0.225200 0.593916
+15 10 19 0.477333 0.227944 0.636118
+15 10 20 0.479694 0.231043 0.672626
+15 10 21 0.481428 0.234355 0.705717
+15 10 22 0.483978 0.241102 0.733093
+15 10 23 0.486898 0.249411 0.757872
+15 10 24 0.490977 0.267619 0.779167
+15 10 25 0.495442 0.289128 0.799302
+15 10 26 0.502472 0.329359 0.820749
+15 10 27 0.510093 0.373910 0.842500
+15 10 28 0.514990 0.404378 0.857410
+15 10 29 0.519497 0.432834 0.871342
+15 10 30 0.522229 0.453542 0.881527
+15 10 31 0.524842 0.473733 0.891461
+15 11 0 0.465152 0.182153 0.000000
+15 11 1 0.465271 0.184084 0.000000
+15 11 2 0.465405 0.186087 0.000000
+15 11 3 0.465752 0.189175 0.000000
+15 11 4 0.466124 0.192585 0.000000
+15 11 5 0.466675 0.198257 0.000000
+15 11 6 0.467480 0.203944 0.000000
+15 11 7 0.469386 0.209696 0.000000
+15 11 8 0.471499 0.215832 0.053232
+15 11 9 0.474234 0.223123 0.107491
+15 11 10 0.476471 0.230769 0.163539
+15 11 11 0.477611 0.239196 0.223528
+15 11 12 0.478804 0.247222 0.283078
+15 11 13 0.480085 0.254583 0.341899
+15 11 14 0.481339 0.261278 0.400381
+15 11 15 0.482558 0.267119 0.458430
+15 11 16 0.484247 0.272834 0.513608
+15 11 17 0.486409 0.278423 0.565915
+15 11 18 0.488824 0.282928 0.613053
+15 11 19 0.491437 0.286591 0.656171
+15 11 20 0.492833 0.290372 0.693096
+15 11 21 0.493500 0.294225 0.726305
+15 11 22 0.494932 0.300285 0.753960
+15 11 23 0.496712 0.307350 0.779091
+15 11 24 0.499997 0.324209 0.799733
+15 11 25 0.503785 0.344331 0.818879
+15 11 26 0.509341 0.379893 0.837734
+15 11 27 0.515305 0.419018 0.856521
+15 11 28 0.519306 0.446794 0.869909
+15 11 29 0.523025 0.472948 0.882525
+15 11 30 0.525358 0.492631 0.891967
+15 11 31 0.527599 0.511881 0.901198
+15 12 0 0.486157 0.226316 0.000000
+15 12 1 0.486250 0.228934 0.000000
+15 12 2 0.486355 0.231605 0.000000
+15 12 3 0.486637 0.235069 0.000000
+15 12 4 0.486932 0.238889 0.000000
+15 12 5 0.487318 0.245201 0.000000
+15 12 6 0.487933 0.251500 0.000000
+15 12 7 0.489544 0.257744 0.000000
+15 12 8 0.491345 0.264666 0.018014
+15 12 9 0.493715 0.273623 0.093903
+15 12 10 0.495446 0.282719 0.165695
+15 12 11 0.495771 0.292120 0.228475
+15 12 12 0.496188 0.301234 0.290695
+15 12 13 0.496761 0.309873 0.351982
+15 12 14 0.497355 0.317855 0.412869
+15 12 15 0.497980 0.324993 0.473241
+15 12 16 0.499066 0.331992 0.530142
+15 12 17 0.500613 0.338852 0.583572
+15 12 18 0.502297 0.344290 0.631637
+15 12 19 0.504087 0.348624 0.675530
+15 12 20 0.504506 0.352812 0.713062
+15 12 21 0.504101 0.356915 0.746777
+15 12 22 0.504466 0.362452 0.774396
+15 12 23 0.505182 0.368642 0.799244
+15 12 24 0.507606 0.383925 0.819226
+15 12 25 0.510601 0.402238 0.837587
+15 12 26 0.514920 0.433368 0.854353
+15 12 27 0.519545 0.467455 0.870750
+15 12 28 0.522754 0.492448 0.882756
+15 12 29 0.525761 0.516142 0.894135
+15 12 30 0.527655 0.534352 0.902764
+15 12 31 0.529476 0.552196 0.911211
+15 13 0 0.507189 0.273097 0.000000
+15 13 1 0.507282 0.276021 0.000000
+15 13 2 0.507383 0.279010 0.000000
+15 13 3 0.507600 0.282969 0.000000
+15 13 4 0.507819 0.287322 0.000000
+15 13 5 0.508053 0.294434 0.000000
+15 13 6 0.508500 0.302061 0.000000
+15 13 7 0.509871 0.311917 0.000000
+15 13 8 0.511310 0.321632 0.000000
+15 13 9 0.512955 0.330922 0.062790
+15 13 10 0.514001 0.340717 0.163836
+15 13 11 0.513733 0.351619 0.230653
+15 13 12 0.513318 0.362201 0.296674
+15 13 13 0.512660 0.372249 0.361371
+15 13 14 0.512352 0.381599 0.424730
+15 13 15 0.512496 0.390051 0.486370
+15 13 16 0.512649 0.398109 0.544833
+15 13 17 0.512811 0.405772 0.600119
+15 13 18 0.513398 0.411707 0.649300
+15 13 19 0.514315 0.416298 0.693732
+15 13 20 0.513732 0.420438 0.732187
+15 13 21 0.512249 0.424306 0.767055
+15 13 22 0.511633 0.429592 0.794112
+15 13 23 0.511411 0.435520 0.817619
+15 13 24 0.512863 0.448852 0.836932
+15 13 25 0.514872 0.464652 0.854847
+15 13 26 0.518348 0.491741 0.870364
+15 13 27 0.522162 0.521437 0.885326
+15 13 28 0.524756 0.543498 0.896184
+15 13 29 0.527176 0.564469 0.906456
+15 13 30 0.528565 0.580461 0.914155
+15 13 31 0.529886 0.596121 0.921682
+15 14 0 0.528538 0.327362 0.000000
+15 14 1 0.528488 0.330346 0.000000
+15 14 2 0.528437 0.333398 0.000000
+15 14 3 0.528388 0.337481 0.000000
+15 14 4 0.528320 0.341964 0.000000
+15 14 5 0.528123 0.349250 0.000000
+15 14 6 0.528132 0.357371 0.000000
+15 14 7 0.529031 0.369116 0.000000
+15 14 8 0.529911 0.380476 0.000000
+15 14 9 0.530735 0.390684 0.042306
+15 14 10 0.530960 0.401524 0.159030
+15 14 11 0.529866 0.413754 0.230876
+15 14 12 0.528558 0.425579 0.301103
+15 14 13 0.526890 0.436728 0.368629
+15 14 14 0.525553 0.447210 0.434391
+15 14 15 0.524639 0.456833 0.497884
+15 14 16 0.523706 0.465574 0.557796
+15 14 17 0.522754 0.473433 0.614126
+15 14 18 0.522086 0.479674 0.664345
+15 14 19 0.521638 0.484658 0.709811
+15 14 20 0.520045 0.488721 0.749013
+15 14 21 0.517764 0.492233 0.784458
+15 14 22 0.516462 0.497108 0.811502
+15 14 23 0.515605 0.502602 0.834727
+15 14 24 0.516353 0.514163 0.853489
+15 14 25 0.517637 0.527747 0.870763
+15 14 26 0.520485 0.550927 0.885078
+15 14 27 0.523694 0.576322 0.898710
+15 14 28 0.525834 0.595094 0.908443
+15 14 29 0.527821 0.612919 0.917619
+15 14 30 0.528857 0.626629 0.924477
+15 14 31 0.529829 0.640065 0.931179
+15 15 0 0.550292 0.391249 0.000000
+15 15 1 0.549915 0.393975 0.000000
+15 15 2 0.549524 0.396764 0.000000
+15 15 3 0.548950 0.400495 0.000000
+15 15 4 0.548325 0.404591 0.000000
+15 15 5 0.547340 0.411243 0.000000
+15 15 6 0.546564 0.418788 0.000000
+15 15 7 0.546692 0.430204 0.000000
+15 15 8 0.546759 0.441736 0.000000
+15 15 9 0.546639 0.453613 0.035490
+15 15 10 0.545864 0.465944 0.150435
+15 15 11 0.543648 0.479278 0.228587
+15 15 12 0.541366 0.492056 0.303536
+15 15 13 0.538976 0.503910 0.373150
+15 15 14 0.536443 0.515220 0.441225
+15 15 15 0.533728 0.525832 0.507323
+15 15 16 0.531514 0.534774 0.568537
+15 15 17 0.529800 0.542048 0.624868
+15 15 18 0.527674 0.548351 0.676025
+15 15 19 0.525227 0.553898 0.723159
+15 15 20 0.522610 0.557851 0.762885
+15 15 21 0.519892 0.560847 0.798166
+15 15 22 0.518284 0.565108 0.825901
+15 15 23 0.517182 0.569944 0.850206
+15 15 24 0.517574 0.579967 0.868569
+15 15 25 0.518465 0.591719 0.884951
+15 15 26 0.520962 0.611157 0.898125
+15 15 27 0.523830 0.632370 0.910559
+15 15 28 0.525722 0.647392 0.919198
+15 15 29 0.527474 0.661529 0.927295
+15 15 30 0.528353 0.672873 0.933425
+15 15 31 0.529173 0.684031 0.939424
+15 16 0 0.568450 0.447817 0.000000
+15 16 1 0.567897 0.450673 0.000000
+15 16 2 0.567328 0.453598 0.000000
+15 16 3 0.566512 0.457541 0.000000
+15 16 4 0.565625 0.461870 0.000000
+15 16 5 0.564235 0.468899 0.000000
+15 16 6 0.562959 0.476769 0.000000
+15 16 7 0.562177 0.488280 0.000000
+15 16 8 0.561308 0.500146 0.000000
+15 16 9 0.560180 0.513080 0.025695
+15 16 10 0.558368 0.526337 0.137638
+15 16 11 0.555054 0.540306 0.223421
+15 16 12 0.551630 0.553741 0.304051
+15 16 13 0.548022 0.566287 0.376093
+15 16 14 0.544277 0.578064 0.446306
+15 16 15 0.540356 0.588852 0.514167
+15 16 16 0.536957 0.598065 0.576761
+15 16 17 0.534080 0.605705 0.634089
+15 16 18 0.530716 0.612233 0.686185
+15 16 19 0.526974 0.617897 0.734212
+15 16 20 0.523514 0.622063 0.774640
+15 16 21 0.520223 0.625331 0.810508
+15 16 22 0.518294 0.629207 0.838643
+15 16 23 0.516982 0.633361 0.863263
+15 16 24 0.517028 0.641751 0.881211
+15 16 25 0.517527 0.651553 0.896936
+15 16 26 0.519687 0.667399 0.909176
+15 16 27 0.522232 0.684640 0.920612
+15 16 28 0.523896 0.696514 0.928448
+15 16 29 0.525434 0.707621 0.935770
+15 16 30 0.526230 0.717091 0.941378
+15 16 31 0.526977 0.726452 0.946872
+15 17 0 0.583012 0.497066 0.000000
+15 17 1 0.582436 0.500441 0.000000
+15 17 2 0.581849 0.503900 0.000000
+15 17 3 0.581075 0.508620 0.000000
+15 17 4 0.580222 0.513802 0.000000
+15 17 5 0.578809 0.522220 0.000000
+15 17 6 0.577318 0.531315 0.000000
+15 17 7 0.575486 0.543342 0.000000
+15 17 8 0.573561 0.555706 0.000000
+15 17 9 0.571356 0.569086 0.012923
+15 17 10 0.568471 0.582701 0.120640
+15 17 11 0.564087 0.596837 0.215379
+15 17 12 0.559351 0.610633 0.302646
+15 17 13 0.554029 0.623861 0.377460
+15 17 14 0.549054 0.635743 0.449635
+15 17 15 0.544523 0.645894 0.518414
+15 17 16 0.540037 0.655447 0.582466
+15 17 17 0.535596 0.664403 0.641789
+15 17 18 0.531214 0.671321 0.694825
+15 17 19 0.526879 0.676654 0.742971
+15 17 20 0.522755 0.681358 0.784278
+15 17 21 0.518759 0.685684 0.821484
+15 17 22 0.516490 0.689406 0.849728
+15 17 23 0.515007 0.692853 0.873900
+15 17 24 0.514715 0.699515 0.891418
+15 17 25 0.514822 0.707248 0.906717
+15 17 26 0.516661 0.719651 0.918229
+15 17 27 0.518900 0.733131 0.928868
+15 17 28 0.520356 0.742459 0.936193
+15 17 29 0.521699 0.751195 0.943045
+15 17 30 0.522488 0.759283 0.948336
+15 17 31 0.523241 0.767327 0.953524
+15 18 0 0.596573 0.545370 0.000000
+15 18 1 0.595802 0.548613 0.000000
+15 18 2 0.595013 0.551936 0.000000
+15 18 3 0.593963 0.556439 0.000000
+15 18 4 0.592823 0.561424 0.000000
+15 18 5 0.591055 0.569774 0.000000
+15 18 6 0.589208 0.579004 0.000000
+15 18 7 0.587021 0.592046 0.000000
+15 18 8 0.584619 0.605231 0.000000
+15 18 9 0.581574 0.618844 0.000000
+15 18 10 0.577661 0.632763 0.073374
+15 18 11 0.571837 0.647354 0.195602
+15 18 12 0.565722 0.661497 0.300880
+15 18 13 0.559123 0.674893 0.377908
+15 18 14 0.552967 0.687118 0.451881
+15 18 15 0.547378 0.697838 0.521924
+15 18 16 0.541844 0.707554 0.586997
+15 18 17 0.536363 0.716267 0.647100
+15 18 18 0.531023 0.723413 0.701039
+15 18 19 0.525792 0.729340 0.750185
+15 18 20 0.521158 0.734168 0.792002
+15 18 21 0.516882 0.738336 0.829423
+15 18 22 0.514345 0.741978 0.857999
+15 18 23 0.512599 0.745380 0.882556
+15 18 24 0.512050 0.750817 0.899891
+15 18 25 0.511900 0.756932 0.914819
+15 18 26 0.513556 0.766558 0.925732
+15 18 27 0.515628 0.776994 0.935717
+15 18 28 0.517012 0.784467 0.942620
+15 18 29 0.518297 0.791517 0.949081
+15 18 30 0.519052 0.797907 0.954050
+15 18 31 0.519772 0.804253 0.958920
+15 19 0 0.609357 0.592938 0.000000
+15 19 1 0.608255 0.595545 0.000000
+15 19 2 0.607124 0.598209 0.000000
+15 19 3 0.605549 0.601723 0.000000
+15 19 4 0.603872 0.605692 0.000000
+15 19 5 0.601489 0.612842 0.000000
+15 19 6 0.599176 0.621359 0.000000
+15 19 7 0.597176 0.635805 0.000000
+15 19 8 0.594749 0.650061 0.000000
+15 19 9 0.591047 0.663744 0.000000
+15 19 10 0.586141 0.677923 0.002567
+15 19 11 0.578589 0.693194 0.166698
+15 19 12 0.571043 0.707673 0.298832
+15 19 13 0.563507 0.720836 0.377641
+15 19 14 0.556208 0.733589 0.453285
+15 19 15 0.549214 0.745816 0.524860
+15 19 16 0.542660 0.755558 0.590616
+15 19 17 0.536546 0.762815 0.650552
+15 19 18 0.530294 0.770063 0.705367
+15 19 19 0.523935 0.777303 0.756199
+15 19 20 0.518909 0.781934 0.798237
+15 19 21 0.514684 0.784998 0.834999
+15 19 22 0.511934 0.788618 0.864081
+15 19 23 0.509854 0.792490 0.889672
+15 19 24 0.509109 0.797094 0.907018
+15 19 25 0.508810 0.801942 0.921615
+15 19 26 0.510390 0.809309 0.932027
+15 19 27 0.512403 0.817258 0.941473
+15 19 28 0.513821 0.823411 0.948021
+15 19 29 0.515154 0.829309 0.954156
+15 19 30 0.515854 0.833756 0.958797
+15 19 31 0.516512 0.838106 0.963339
+15 20 0 0.618287 0.626826 0.000000
+15 20 1 0.617117 0.629738 0.000000
+15 20 2 0.615916 0.632710 0.000000
+15 20 3 0.614266 0.636574 0.000000
+15 20 4 0.612501 0.640919 0.000000
+15 20 5 0.609939 0.648632 0.000000
+15 20 6 0.607340 0.657530 0.000000
+15 20 7 0.604576 0.671563 0.000000
+15 20 8 0.601392 0.685687 0.000000
+15 20 9 0.596949 0.700086 0.000000
+15 20 10 0.591229 0.714792 0.000000
+15 20 11 0.582701 0.730171 0.155705
+15 20 12 0.574145 0.744818 0.297877
+15 20 13 0.565543 0.758246 0.378353
+15 20 14 0.557378 0.771004 0.455319
+15 20 15 0.549775 0.782902 0.527774
+15 20 16 0.542507 0.792867 0.594423
+15 20 17 0.535574 0.800899 0.655267
+15 20 18 0.528666 0.808267 0.710497
+15 20 19 0.521777 0.815119 0.761360
+15 20 20 0.516321 0.819859 0.803633
+15 20 21 0.511725 0.823331 0.840751
+15 20 22 0.508747 0.826715 0.869726
+15 20 23 0.506506 0.830059 0.895000
+15 20 24 0.505554 0.833689 0.912162
+15 20 25 0.505033 0.837415 0.926620
+15 20 26 0.506597 0.842737 0.936661
+15 20 27 0.508643 0.848429 0.945683
+15 20 28 0.510143 0.852985 0.951916
+15 20 29 0.511565 0.857379 0.957751
+15 20 30 0.512328 0.860906 0.962190
+15 20 31 0.513047 0.864375 0.966535
+15 21 0 0.624906 0.652505 0.000000
+15 21 1 0.623823 0.656288 0.000000
+15 21 2 0.622717 0.660148 0.000000
+15 21 3 0.621261 0.665164 0.000000
+15 21 4 0.619678 0.670721 0.000000
+15 21 5 0.617201 0.680057 0.000000
+15 21 6 0.614420 0.689991 0.000000
+15 21 7 0.610323 0.702519 0.000000
+15 21 8 0.605943 0.715791 0.000000
+15 21 9 0.600709 0.731294 0.000000
+15 21 10 0.594281 0.746686 0.000000
+15 21 11 0.585228 0.761832 0.155460
+15 21 12 0.575915 0.776544 0.297578
+15 21 13 0.566169 0.790536 0.379652
+15 21 14 0.557304 0.802985 0.457731
+15 21 15 0.549572 0.813451 0.530673
+15 21 16 0.541773 0.823758 0.598343
+15 21 17 0.533909 0.833904 0.660740
+15 21 18 0.526497 0.841403 0.716108
+15 21 19 0.519439 0.846845 0.766011
+15 21 20 0.513530 0.851878 0.808525
+15 21 21 0.508309 0.856668 0.846608
+15 21 22 0.505096 0.859687 0.875109
+15 21 23 0.502795 0.861903 0.899255
+15 21 24 0.501630 0.864475 0.916116
+15 21 25 0.500843 0.867166 0.930550
+15 21 26 0.502429 0.870573 0.940298
+15 21 27 0.504562 0.874144 0.948965
+15 21 28 0.506172 0.876936 0.954907
+15 21 29 0.507707 0.879616 0.960460
+15 21 30 0.508604 0.882837 0.964770
+15 21 31 0.509459 0.886094 0.968997
+15 22 0 0.632127 0.675482 0.000000
+15 22 1 0.630815 0.679165 0.000000
+15 22 2 0.629474 0.682927 0.000000
+15 22 3 0.627703 0.687868 0.000000
+15 22 4 0.625767 0.693315 0.000000
+15 22 5 0.622684 0.702303 0.000000
+15 22 6 0.619335 0.712060 0.000000
+15 22 7 0.614833 0.725148 0.000000
+15 22 8 0.609930 0.738834 0.000000
+15 22 9 0.603818 0.754311 0.000000
+15 22 10 0.596613 0.769768 0.000000
+15 22 11 0.587004 0.785180 0.159586
+15 22 12 0.577335 0.799920 0.302588
+15 22 13 0.567565 0.813540 0.385305
+15 22 14 0.558448 0.825915 0.463910
+15 22 15 0.550171 0.836691 0.537226
+15 22 16 0.541927 0.846957 0.604864
+15 22 17 0.533716 0.856712 0.666825
+15 22 18 0.525910 0.864094 0.721806
+15 22 19 0.518419 0.869628 0.771360
+15 22 20 0.512227 0.874610 0.813346
+15 22 21 0.506816 0.879260 0.850792
+15 22 22 0.503508 0.882361 0.879085
+15 22 23 0.501155 0.884757 0.903218
+15 22 24 0.499905 0.886976 0.919890
+15 22 25 0.499021 0.889136 0.934074
+15 22 26 0.500577 0.891709 0.943411
+15 22 27 0.502695 0.894378 0.951629
+15 22 28 0.504308 0.896490 0.957381
+15 22 29 0.505848 0.898522 0.962782
+15 22 30 0.506798 0.900976 0.966941
+15 22 31 0.507709 0.903458 0.971019
+15 23 0 0.639621 0.697230 0.000000
+15 23 1 0.637936 0.700374 0.000000
+15 23 2 0.636212 0.703590 0.000000
+15 23 3 0.633893 0.707897 0.000000
+15 23 4 0.631363 0.712634 0.000000
+15 23 5 0.627359 0.720378 0.000000
+15 23 6 0.623265 0.729406 0.000000
+15 23 7 0.618781 0.743992 0.000000
+15 23 8 0.613661 0.758666 0.000000
+15 23 9 0.606631 0.773603 0.000000
+15 23 10 0.598617 0.788844 0.000000
+15 23 11 0.588438 0.804751 0.165700
+15 23 12 0.578594 0.819501 0.310012
+15 23 13 0.569310 0.832322 0.392938
+15 23 14 0.560146 0.844731 0.471801
+15 23 15 0.551134 0.856608 0.545439
+15 23 16 0.542484 0.866660 0.612567
+15 23 17 0.534194 0.874887 0.673187
+15 23 18 0.526042 0.882036 0.727543
+15 23 19 0.517997 0.888347 0.777027
+15 23 20 0.511602 0.893119 0.818134
+15 23 21 0.506196 0.896969 0.854215
+15 23 22 0.502856 0.900353 0.882422
+15 23 23 0.500456 0.903526 0.907049
+15 23 24 0.499179 0.905711 0.923580
+15 23 25 0.498276 0.907568 0.937413
+15 23 26 0.499777 0.909801 0.946285
+15 23 27 0.501833 0.912121 0.954011
+15 23 28 0.503401 0.914046 0.959620
+15 23 29 0.504899 0.915915 0.964926
+15 23 30 0.505865 0.917391 0.968927
+15 23 31 0.506796 0.918842 0.972840
+15 24 0 0.646237 0.713491 0.000000
+15 24 1 0.644194 0.717310 0.000000
+15 24 2 0.642115 0.721186 0.000000
+15 24 3 0.639476 0.725933 0.000000
+15 24 4 0.636639 0.731013 0.000000
+15 24 5 0.632405 0.738429 0.000000
+15 24 6 0.627907 0.747046 0.000000
+15 24 7 0.622264 0.760869 0.000000
+15 24 8 0.616262 0.774955 0.000000
+15 24 9 0.609179 0.789825 0.000000
+15 24 10 0.601048 0.804904 0.000000
+15 24 11 0.590614 0.820441 0.180776
+15 24 12 0.580656 0.834878 0.329185
+15 24 13 0.571492 0.847482 0.410651
+15 24 14 0.562365 0.859635 0.488019
+15 24 15 0.553289 0.871207 0.560117
+15 24 16 0.544627 0.880932 0.625541
+15 24 17 0.536379 0.888811 0.684291
+15 24 18 0.528224 0.895769 0.737204
+15 24 19 0.520140 0.902010 0.785579
+15 24 20 0.513614 0.906620 0.825342
+15 24 21 0.508023 0.910251 0.859937
+15 24 22 0.504736 0.913386 0.887184
+15 24 23 0.502495 0.916296 0.911091
+15 24 24 0.501154 0.918332 0.927126
+15 24 25 0.500112 0.920076 0.940536
+15 24 26 0.501521 0.922175 0.949114
+15 24 27 0.503496 0.924355 0.956577
+15 24 28 0.505061 0.926088 0.961993
+15 24 29 0.506568 0.927756 0.967117
+15 24 30 0.507603 0.928927 0.970918
+15 24 31 0.508606 0.930066 0.974631
+15 25 0 0.652560 0.727923 0.000000
+15 25 1 0.650165 0.732822 0.000000
+15 25 2 0.647739 0.737760 0.000000
+15 25 3 0.644858 0.743305 0.000000
+15 25 4 0.641808 0.749080 0.000000
+15 25 5 0.637574 0.756471 0.000000
+15 25 6 0.632786 0.764784 0.000000
+15 25 7 0.625593 0.777091 0.000000
+15 25 8 0.618487 0.790062 0.000000
+15 25 9 0.611638 0.805023 0.000000
+15 25 10 0.603622 0.819959 0.001017
+15 25 11 0.593038 0.834838 0.198841
+15 25 12 0.582985 0.848855 0.352274
+15 25 13 0.573818 0.861434 0.431724
+15 25 14 0.564759 0.873235 0.507013
+15 25 15 0.555841 0.884034 0.576952
+15 25 16 0.547299 0.893395 0.640272
+15 25 17 0.539133 0.901320 0.696974
+15 25 18 0.531088 0.908099 0.748173
+15 25 19 0.523137 0.913989 0.795092
+15 25 20 0.516506 0.918451 0.833355
+15 25 21 0.510666 0.922058 0.866425
+15 25 22 0.507458 0.924767 0.892422
+15 25 23 0.505446 0.927067 0.915204
+15 25 24 0.504029 0.928914 0.930623
+15 25 25 0.502809 0.930609 0.943587
+15 25 26 0.504114 0.932642 0.951929
+15 25 27 0.506001 0.934753 0.959204
+15 25 28 0.507578 0.936291 0.964410
+15 25 29 0.509110 0.937747 0.969322
+15 25 30 0.510231 0.938837 0.972911
+15 25 31 0.511325 0.939903 0.976412
+15 26 0 0.658075 0.737041 0.000000
+15 26 1 0.655613 0.742142 0.000000
+15 26 2 0.653111 0.747313 0.000000
+15 26 3 0.650006 0.753542 0.000000
+15 26 4 0.646677 0.760152 0.000000
+15 26 5 0.641780 0.769426 0.000000
+15 26 6 0.636385 0.779205 0.000000
+15 26 7 0.628830 0.791171 0.000000
+15 26 8 0.621344 0.803752 0.000000
+15 26 9 0.614062 0.818179 0.000000
+15 26 10 0.605956 0.832553 0.014305
+15 26 11 0.596037 0.846810 0.222496
+15 26 12 0.586420 0.860307 0.381393
+15 26 13 0.577308 0.872538 0.458136
+15 26 14 0.568319 0.883828 0.530541
+15 26 15 0.559490 0.893910 0.597369
+15 26 16 0.551204 0.902745 0.657739
+15 26 17 0.543462 0.910333 0.711650
+15 26 18 0.535897 0.916865 0.761023
+15 26 19 0.528471 0.922575 0.806869
+15 26 20 0.522107 0.926824 0.843213
+15 26 21 0.516379 0.930197 0.873858
+15 26 22 0.513261 0.932702 0.898376
+15 26 23 0.511328 0.934811 0.920109
+15 26 24 0.509919 0.936561 0.935103
+15 26 25 0.508685 0.938191 0.947851
+15 26 26 0.509627 0.939750 0.955224
+15 26 27 0.511071 0.941294 0.961358
+15 26 28 0.512581 0.942726 0.966320
+15 26 29 0.514099 0.944142 0.971115
+15 26 30 0.515203 0.945217 0.974678
+15 26 31 0.516279 0.946268 0.978159
+15 27 0 0.663403 0.744933 0.000000
+15 27 1 0.660941 0.750034 0.000000
+15 27 2 0.658425 0.755246 0.000000
+15 27 3 0.655100 0.762133 0.000000
+15 27 4 0.651476 0.769609 0.000000
+15 27 5 0.645763 0.781206 0.000000
+15 27 6 0.639689 0.792860 0.000000
+15 27 7 0.632047 0.804756 0.000000
+15 27 8 0.624348 0.817115 0.000000
+15 27 9 0.616479 0.830863 0.000000
+15 27 10 0.608236 0.844578 0.028625
+15 27 11 0.599169 0.858223 0.247440
+15 27 12 0.590111 0.871178 0.411904
+15 27 13 0.581066 0.882984 0.485780
+15 27 14 0.572147 0.893727 0.555116
+15 27 15 0.563391 0.903106 0.618614
+15 27 16 0.555394 0.911377 0.675837
+15 27 17 0.548154 0.918540 0.726785
+15 27 18 0.541156 0.924807 0.774308
+15 27 19 0.534345 0.930378 0.819167
+15 27 20 0.528333 0.934399 0.853497
+15 27 21 0.522801 0.937490 0.881509
+15 27 22 0.519774 0.939841 0.904495
+15 27 23 0.517887 0.941857 0.925197
+15 27 24 0.516506 0.943531 0.939811
+15 27 25 0.515294 0.945091 0.952395
+15 27 26 0.515814 0.946083 0.958631
+15 27 27 0.516733 0.946944 0.963402
+15 27 28 0.518157 0.948291 0.968112
+15 27 29 0.519653 0.949707 0.972813
+15 27 30 0.520715 0.950781 0.976393
+15 27 31 0.521749 0.951833 0.979898
+15 28 0 0.667242 0.750511 0.000000
+15 28 1 0.664780 0.755612 0.000000
+15 28 2 0.662263 0.760833 0.000000
+15 28 3 0.658910 0.767864 0.000000
+15 28 4 0.655244 0.775532 0.000000
+15 28 5 0.649390 0.787666 0.000000
+15 28 6 0.643108 0.800036 0.000000
+15 28 7 0.634974 0.813423 0.000000
+15 28 8 0.626750 0.826777 0.000000
+15 28 9 0.618256 0.840030 0.000000
+15 28 10 0.609831 0.853260 0.105372
+15 28 11 0.601558 0.866439 0.290633
+15 28 12 0.593015 0.878974 0.433437
+15 28 13 0.584020 0.890437 0.505477
+15 28 14 0.575194 0.900806 0.572763
+15 28 15 0.566586 0.909767 0.633937
+15 28 16 0.558706 0.917710 0.689504
+15 28 17 0.551554 0.924635 0.739466
+15 28 18 0.545058 0.930661 0.785436
+15 28 19 0.539073 0.935988 0.828301
+15 28 20 0.533532 0.939845 0.861356
+15 28 21 0.528259 0.942818 0.888524
+15 28 22 0.525207 0.945083 0.910381
+15 28 23 0.523164 0.947026 0.929823
+15 28 24 0.521779 0.948613 0.943722
+15 28 25 0.520612 0.950082 0.955773
+15 28 26 0.521086 0.950988 0.961771
+15 28 27 0.521940 0.951764 0.966373
+15 28 28 0.523033 0.952721 0.970350
+15 28 29 0.524161 0.953705 0.974238
+15 28 30 0.525177 0.954732 0.977672
+15 28 31 0.526185 0.955763 0.981077
+15 29 0 0.670869 0.755759 0.000000
+15 29 1 0.668407 0.760859 0.000000
+15 29 2 0.665890 0.766085 0.000000
+15 29 3 0.662537 0.773185 0.000000
+15 29 4 0.658865 0.780950 0.000000
+15 29 5 0.652966 0.793366 0.000000
+15 29 6 0.646544 0.806286 0.000000
+15 29 7 0.637859 0.821387 0.000000
+15 29 8 0.629065 0.835909 0.000000
+15 29 9 0.619942 0.848696 0.075388
+15 29 10 0.611329 0.861465 0.191036
+15 29 11 0.603841 0.874198 0.336433
+15 29 12 0.595806 0.886330 0.453688
+15 29 13 0.586859 0.897463 0.524038
+15 29 14 0.578130 0.907481 0.589420
+15 29 15 0.569679 0.916066 0.648413
+15 29 16 0.561892 0.923715 0.702539
+15 29 17 0.554769 0.930427 0.751797
+15 29 18 0.548766 0.936216 0.796256
+15 29 19 0.543637 0.941286 0.836983
+15 29 20 0.538585 0.944986 0.868868
+15 29 21 0.533579 0.947866 0.895448
+15 29 22 0.530485 0.950053 0.916233
+15 29 23 0.528259 0.951926 0.934383
+15 29 24 0.526863 0.953426 0.947520
+15 29 25 0.525744 0.954801 0.958986
+15 29 26 0.526228 0.955689 0.964874
+15 29 27 0.527081 0.956465 0.969475
+15 29 28 0.527809 0.956990 0.972651
+15 29 29 0.528519 0.957479 0.975623
+15 29 30 0.529488 0.958453 0.978890
+15 29 31 0.530474 0.959459 0.982176
+15 30 0 0.674049 0.759976 0.000000
+15 30 1 0.671627 0.765077 0.000000
+15 30 2 0.669147 0.770299 0.000000
+15 30 3 0.665794 0.777338 0.000000
+15 30 4 0.662117 0.785059 0.000000
+15 30 5 0.656175 0.797559 0.000000
+15 30 6 0.649586 0.810802 0.000000
+15 30 7 0.640189 0.827266 0.000000
+15 30 8 0.630784 0.842760 0.054137
+15 30 9 0.621357 0.855341 0.156647
+15 30 10 0.612641 0.867858 0.262043
+15 30 11 0.605487 0.880233 0.373788
+15 30 12 0.597756 0.892059 0.469591
+15 30 13 0.589061 0.902972 0.538824
+15 30 14 0.580532 0.912741 0.602719
+15 30 15 0.572216 0.921038 0.659750
+15 30 16 0.564592 0.928404 0.712532
+15 30 17 0.557661 0.934839 0.761063
+15 30 18 0.552051 0.940397 0.804312
+15 30 19 0.547470 0.945275 0.843453
+15 30 20 0.542778 0.948900 0.874430
+15 30 21 0.538019 0.951773 0.900510
+15 30 22 0.534863 0.953850 0.920508
+15 30 23 0.532435 0.955565 0.937742
+15 30 24 0.531039 0.957021 0.950358
+15 30 25 0.529987 0.958390 0.961434
+15 30 26 0.530483 0.959277 0.967231
+15 30 27 0.531336 0.960053 0.971810
+15 30 28 0.532041 0.960551 0.974875
+15 30 29 0.532725 0.961009 0.977724
+15 30 30 0.533477 0.961711 0.980481
+15 30 31 0.534234 0.962428 0.983231
+15 31 0 0.677200 0.764125 0.000000
+15 31 1 0.674820 0.769225 0.000000
+15 31 2 0.672380 0.774443 0.000000
+15 31 3 0.669027 0.781412 0.000000
+15 31 4 0.665345 0.789081 0.000000
+15 31 5 0.659361 0.801651 0.000000
+15 31 6 0.652601 0.815202 0.000000
+15 31 7 0.642481 0.833007 0.018635
+15 31 8 0.632464 0.849459 0.137179
+15 31 9 0.622755 0.861852 0.238134
+15 31 10 0.613939 0.874130 0.332074
+15 31 11 0.607091 0.886153 0.410581
+15 31 12 0.599649 0.897680 0.485205
+15 31 13 0.591220 0.908380 0.553358
+15 31 14 0.582898 0.917906 0.615794
+15 31 15 0.574715 0.925921 0.670878
+15 31 16 0.567259 0.933005 0.722322
+15 31 17 0.560531 0.939158 0.770126
+15 31 18 0.555307 0.944487 0.812184
+15 31 19 0.551254 0.949177 0.849775
+15 31 20 0.546914 0.952731 0.879862
+15 31 21 0.542401 0.955604 0.905448
+15 31 22 0.539182 0.957569 0.924678
+15 31 23 0.536551 0.959120 0.941020
+15 31 24 0.535154 0.960535 0.953131
+15 31 25 0.534170 0.961904 0.963832
+15 31 26 0.534678 0.962791 0.969539
+15 31 27 0.535532 0.963567 0.974093
+15 31 28 0.536237 0.964065 0.977094
+15 31 29 0.536920 0.964523 0.979873
+15 31 30 0.537445 0.964937 0.982097
+15 31 31 0.537959 0.965349 0.984283
+16 0 0 0.348494 0.000000 0.000000
+16 0 1 0.348581 0.000000 0.000000
+16 0 2 0.348674 0.000000 0.000000
+16 0 3 0.348843 0.000000 0.000000
+16 0 4 0.349024 0.000000 0.000000
+16 0 5 0.349281 0.000000 0.000000
+16 0 6 0.349817 0.000000 0.014197
+16 0 7 0.351562 0.000000 0.034535
+16 0 8 0.354229 0.000000 0.053696
+16 0 9 0.359660 0.000000 0.069327
+16 0 10 0.364496 0.000000 0.093938
+16 0 11 0.368018 0.000000 0.138303
+16 0 12 0.371999 0.000000 0.181698
+16 0 13 0.376741 0.000000 0.223472
+16 0 14 0.382230 0.000000 0.267077
+16 0 15 0.388680 0.000000 0.313036
+16 0 16 0.394530 0.000000 0.354763
+16 0 17 0.399781 0.000000 0.392260
+16 0 18 0.404297 0.000000 0.428087
+16 0 19 0.408241 0.000000 0.462616
+16 0 20 0.412499 0.000000 0.493700
+16 0 21 0.416947 0.000000 0.522717
+16 0 22 0.423466 0.000000 0.549916
+16 0 23 0.430927 0.000000 0.576289
+16 0 24 0.444054 0.000000 0.607514
+16 0 25 0.459069 0.000000 0.640357
+16 0 26 0.482396 0.000000 0.680633
+16 0 27 0.507640 0.000000 0.722625
+16 0 28 0.524791 0.000000 0.751068
+16 0 29 0.540786 0.005245 0.777576
+16 0 30 0.551934 0.103900 0.797038
+16 0 31 0.562759 0.204355 0.816031
+16 1 0 0.355112 0.000000 0.000000
+16 1 1 0.355248 0.000000 0.000000
+16 1 2 0.355386 0.000000 0.000000
+16 1 3 0.355555 0.000000 0.000000
+16 1 4 0.355736 0.000000 0.000000
+16 1 5 0.355993 0.000000 0.000000
+16 1 6 0.356532 0.000000 0.013592
+16 1 7 0.358297 0.000000 0.036096
+16 1 8 0.360936 0.000000 0.056870
+16 1 9 0.366195 0.000000 0.072455
+16 1 10 0.370932 0.000000 0.097174
+16 1 11 0.374520 0.000000 0.141985
+16 1 12 0.378541 0.000000 0.185949
+16 1 13 0.383283 0.000000 0.228500
+16 1 14 0.388676 0.000000 0.272604
+16 1 15 0.394905 0.000000 0.318705
+16 1 16 0.400580 0.000000 0.361056
+16 1 17 0.405702 0.000000 0.399657
+16 1 18 0.410185 0.000000 0.436020
+16 1 19 0.414171 0.000000 0.470643
+16 1 20 0.418378 0.000000 0.502100
+16 1 21 0.422718 0.000000 0.531657
+16 1 22 0.429068 0.000000 0.558653
+16 1 23 0.436332 0.000000 0.584486
+16 1 24 0.447980 0.000000 0.613989
+16 1 25 0.461090 0.000000 0.644714
+16 1 26 0.484040 0.000000 0.684537
+16 1 27 0.509262 0.000000 0.726459
+16 1 28 0.526410 0.000000 0.754955
+16 1 29 0.542405 0.016488 0.781533
+16 1 30 0.553574 0.115517 0.800956
+16 1 31 0.564422 0.215973 0.819903
+16 2 0 0.361872 0.000000 0.000000
+16 2 1 0.362052 0.000000 0.000000
+16 2 2 0.362232 0.000000 0.000000
+16 2 3 0.362403 0.000000 0.000000
+16 2 4 0.362586 0.000000 0.000000
+16 2 5 0.362843 0.000000 0.000000
+16 2 6 0.363385 0.000000 0.012966
+16 2 7 0.365166 0.000000 0.037642
+16 2 8 0.367773 0.000000 0.060045
+16 2 9 0.372859 0.000000 0.075628
+16 2 10 0.377498 0.000000 0.100485
+16 2 11 0.381156 0.000000 0.145747
+16 2 12 0.385221 0.000000 0.190290
+16 2 13 0.389962 0.000000 0.233635
+16 2 14 0.395256 0.000000 0.278252
+16 2 15 0.401260 0.000000 0.324502
+16 2 16 0.406760 0.000000 0.367491
+16 2 17 0.411754 0.000000 0.407218
+16 2 18 0.416204 0.000000 0.444128
+16 2 19 0.420230 0.000000 0.478848
+16 2 20 0.424386 0.000000 0.510683
+16 2 21 0.428619 0.000000 0.540785
+16 2 22 0.434788 0.000000 0.567577
+16 2 23 0.441837 0.000000 0.592864
+16 2 24 0.452068 0.000000 0.620712
+16 2 25 0.463361 0.000000 0.649413
+16 2 26 0.485857 0.000000 0.688688
+16 2 27 0.510939 0.000000 0.730402
+16 2 28 0.528069 0.000000 0.758925
+16 2 29 0.544064 0.027976 0.785564
+16 2 30 0.555248 0.127388 0.804954
+16 2 31 0.566112 0.227843 0.823861
+16 3 0 0.370739 0.000000 0.000000
+16 3 1 0.370919 0.000000 0.000000
+16 3 2 0.371101 0.000000 0.000000
+16 3 3 0.371301 0.000000 0.000000
+16 3 4 0.371507 0.000000 0.000000
+16 3 5 0.371764 0.000000 0.000000
+16 3 6 0.372299 0.000000 0.012014
+16 3 7 0.374034 0.000000 0.038977
+16 3 8 0.376558 0.000000 0.063254
+16 3 9 0.381449 0.000000 0.079470
+16 3 10 0.386003 0.000000 0.104925
+16 3 11 0.389813 0.000000 0.150706
+16 3 12 0.393964 0.000000 0.195970
+16 3 13 0.398683 0.000000 0.240374
+16 3 14 0.403839 0.000000 0.285698
+16 3 15 0.409559 0.000000 0.332207
+16 3 16 0.414872 0.000000 0.376054
+16 3 17 0.419779 0.000000 0.417239
+16 3 18 0.424190 0.000000 0.454866
+16 3 19 0.428216 0.000000 0.489726
+16 3 20 0.432317 0.000000 0.522010
+16 3 21 0.436464 0.000000 0.552750
+16 3 22 0.442275 0.000000 0.579303
+16 3 23 0.448843 0.000000 0.603953
+16 3 24 0.458593 0.000000 0.631166
+16 3 25 0.469403 0.000000 0.659234
+16 3 26 0.490261 0.000000 0.696536
+16 3 27 0.513436 0.000000 0.735970
+16 3 28 0.530329 0.000000 0.764147
+16 3 29 0.546323 0.043142 0.790716
+16 3 30 0.557425 0.143060 0.810144
+16 3 31 0.568201 0.243515 0.829096
+16 4 0 0.380454 0.000000 0.000000
+16 4 1 0.380632 0.000000 0.000000
+16 4 2 0.380813 0.000000 0.000000
+16 4 3 0.381043 0.000000 0.000000
+16 4 4 0.381277 0.000000 0.000000
+16 4 5 0.381541 0.000000 0.000000
+16 4 6 0.382073 0.000000 0.010866
+16 4 7 0.383765 0.000000 0.039836
+16 4 8 0.386213 0.000000 0.065914
+16 4 9 0.390925 0.000000 0.083318
+16 4 10 0.395394 0.000000 0.109770
+16 4 11 0.399328 0.000000 0.156125
+16 4 12 0.403543 0.000000 0.202181
+16 4 13 0.408228 0.000000 0.247740
+16 4 14 0.413235 0.000000 0.293839
+16 4 15 0.418655 0.000000 0.340632
+16 4 16 0.423762 0.000000 0.385425
+16 4 17 0.428554 0.000000 0.428220
+16 4 18 0.432924 0.000000 0.466637
+16 4 19 0.436966 0.000000 0.501651
+16 4 20 0.441004 0.000000 0.534417
+16 4 21 0.445038 0.000000 0.565835
+16 4 22 0.450486 0.000000 0.592146
+16 4 23 0.456577 0.000000 0.616136
+16 4 24 0.465876 0.000000 0.642740
+16 4 25 0.476245 0.000000 0.670214
+16 4 26 0.495229 0.000000 0.705285
+16 4 27 0.516200 0.000000 0.742108
+16 4 28 0.532798 0.000000 0.769893
+16 4 29 0.548770 0.059753 0.796386
+16 4 30 0.559807 0.160219 0.815839
+16 4 31 0.570515 0.260668 0.834822
+16 5 0 0.396110 0.000000 0.000000
+16 5 1 0.396265 0.000000 0.000000
+16 5 2 0.396427 0.000000 0.000000
+16 5 3 0.396703 0.000000 0.000000
+16 5 4 0.396983 0.000000 0.000000
+16 5 5 0.397300 0.000000 0.000000
+16 5 6 0.397871 0.000000 0.008348
+16 5 7 0.399542 0.000000 0.037363
+16 5 8 0.401956 0.000000 0.064742
+16 5 9 0.406600 0.000000 0.087211
+16 5 10 0.410996 0.000000 0.117446
+16 5 11 0.414844 0.000000 0.164765
+16 5 12 0.418965 0.000000 0.212113
+16 5 13 0.423540 0.000000 0.259507
+16 5 14 0.428312 0.000000 0.306843
+16 5 15 0.433338 0.000000 0.354106
+16 5 16 0.438094 0.000000 0.400463
+16 5 17 0.442581 0.000000 0.445914
+16 5 18 0.446891 0.000000 0.485639
+16 5 19 0.451063 0.000000 0.520911
+16 5 20 0.454973 0.000000 0.554377
+16 5 21 0.458725 0.000000 0.586759
+16 5 22 0.463769 0.000000 0.612806
+16 5 23 0.469399 0.000000 0.635974
+16 5 24 0.478469 0.000000 0.662142
+16 5 25 0.488685 0.000000 0.689311
+16 5 26 0.504151 0.000000 0.720332
+16 5 27 0.520829 0.000000 0.752242
+16 5 28 0.536736 0.000000 0.779309
+16 5 29 0.552534 0.086469 0.805684
+16 5 30 0.563620 0.187783 0.825064
+16 5 31 0.574393 0.288187 0.843977
+16 6 0 0.413667 0.000000 0.000000
+16 6 1 0.413828 0.000000 0.000000
+16 6 2 0.413998 0.000000 0.000000
+16 6 3 0.414310 0.000000 0.000000
+16 6 4 0.414629 0.000000 0.000000
+16 6 5 0.414999 0.000000 0.000000
+16 6 6 0.415614 0.000000 0.000000
+16 6 7 0.417293 0.000000 0.030058
+16 6 8 0.419698 0.000000 0.063470
+16 6 9 0.424282 0.000000 0.091569
+16 6 10 0.428595 0.000000 0.126000
+16 6 11 0.432310 0.000000 0.174364
+16 6 12 0.436315 0.000000 0.223117
+16 6 13 0.440804 0.000000 0.272523
+16 6 14 0.445304 0.000000 0.321320
+16 6 15 0.449816 0.000000 0.369335
+16 6 16 0.454164 0.000000 0.417244
+16 6 17 0.458350 0.000000 0.465048
+16 6 18 0.462569 0.000000 0.506260
+16 6 19 0.466814 0.000000 0.542345
+16 6 20 0.470603 0.000000 0.576572
+16 6 21 0.474117 0.000000 0.609685
+16 6 22 0.478753 0.000000 0.635741
+16 6 23 0.483900 0.000000 0.658590
+16 6 24 0.492534 0.000000 0.684118
+16 6 25 0.502331 0.000000 0.710539
+16 6 26 0.514897 0.000000 0.738173
+16 6 27 0.528102 0.000000 0.766087
+16 6 28 0.542836 0.013640 0.791845
+16 6 29 0.557789 0.131371 0.817295
+16 6 30 0.568391 0.226000 0.835998
+16 6 31 0.578703 0.319088 0.854251
+16 7 0 0.439464 0.000000 0.000000
+16 7 1 0.439755 0.000000 0.000000
+16 7 2 0.440047 0.000471 0.000000
+16 7 3 0.440359 0.000579 0.000000
+16 7 4 0.440683 0.000691 0.000000
+16 7 5 0.441098 0.000824 0.000000
+16 7 6 0.441777 0.001036 0.000000
+16 7 7 0.443600 0.001591 0.001815
+16 7 8 0.446106 0.002747 0.061770
+16 7 9 0.450662 0.005707 0.097945
+16 7 10 0.454847 0.008230 0.138362
+16 7 11 0.458218 0.009789 0.188112
+16 7 12 0.462016 0.011277 0.238772
+16 7 13 0.466525 0.012646 0.290953
+16 7 14 0.470587 0.013695 0.342175
+16 7 15 0.474074 0.014332 0.392164
+16 7 16 0.477766 0.014538 0.441578
+16 7 17 0.481663 0.014311 0.490416
+16 7 18 0.485660 0.014226 0.533892
+16 7 19 0.489733 0.014251 0.573198
+16 7 20 0.493428 0.015026 0.608457
+16 7 21 0.496897 0.016250 0.641287
+16 7 22 0.501116 0.019703 0.668534
+16 7 23 0.505676 0.024169 0.693242
+16 7 24 0.512982 0.037268 0.717242
+16 7 25 0.521203 0.053245 0.741006
+16 7 26 0.533545 0.084020 0.768122
+16 7 27 0.546837 0.118210 0.796012
+16 7 28 0.558304 0.184361 0.817900
+16 7 29 0.569511 0.255079 0.838932
+16 7 30 0.577311 0.310377 0.854338
+16 7 31 0.584884 0.364647 0.869371
+16 8 0 0.463788 0.084302 0.000000
+16 8 1 0.464165 0.086129 0.000000
+16 8 2 0.464541 0.087873 0.000000
+16 8 3 0.464879 0.088373 0.000000
+16 8 4 0.465240 0.088918 0.000000
+16 8 5 0.465753 0.089771 0.000000
+16 8 6 0.466549 0.090795 0.000000
+16 8 7 0.468566 0.092559 0.000000
+16 8 8 0.471202 0.095060 0.060447
+16 8 9 0.475693 0.099772 0.103011
+16 8 10 0.479726 0.103998 0.148461
+16 8 11 0.482751 0.107154 0.200260
+16 8 12 0.486235 0.110133 0.253135
+16 8 13 0.490486 0.112819 0.307803
+16 8 14 0.494019 0.114952 0.361290
+16 8 15 0.496628 0.116375 0.413260
+16 8 16 0.499717 0.117145 0.464216
+16 8 17 0.503284 0.117264 0.514159
+16 8 18 0.507026 0.117514 0.559566
+16 8 19 0.510904 0.117866 0.601446
+16 8 20 0.514430 0.119332 0.637645
+16 8 21 0.517746 0.121466 0.670436
+16 8 22 0.521519 0.127280 0.698551
+16 8 23 0.525501 0.134767 0.724542
+16 8 24 0.531624 0.155844 0.747267
+16 8 25 0.538461 0.181452 0.768903
+16 8 26 0.550210 0.230730 0.795086
+16 8 27 0.563092 0.285471 0.822317
+16 8 28 0.571786 0.322741 0.840858
+16 8 29 0.579882 0.357516 0.858158
+16 8 30 0.585363 0.382799 0.870787
+16 8 31 0.590669 0.407450 0.883104
+16 9 0 0.483693 0.107866 0.000000
+16 9 1 0.484029 0.108986 0.000000
+16 9 2 0.484371 0.110149 0.000000
+16 9 3 0.484817 0.111944 0.000000
+16 9 4 0.485304 0.113939 0.000000
+16 9 5 0.486077 0.117338 0.000000
+16 9 6 0.487148 0.121074 0.000000
+16 9 7 0.489510 0.126274 0.000000
+16 9 8 0.492361 0.131234 0.060255
+16 9 9 0.496680 0.135473 0.104145
+16 9 10 0.500484 0.140137 0.151769
+16 9 11 0.503156 0.145737 0.207612
+16 9 12 0.506011 0.150924 0.263622
+16 9 13 0.509172 0.155420 0.319912
+16 9 14 0.511901 0.159242 0.375186
+16 9 15 0.514073 0.162196 0.429155
+16 9 16 0.516713 0.164709 0.481769
+16 9 17 0.519823 0.166781 0.533028
+16 9 18 0.523217 0.168586 0.579367
+16 9 19 0.526833 0.170186 0.621881
+16 9 20 0.529961 0.172458 0.658747
+16 9 21 0.532796 0.175135 0.692223
+16 9 22 0.536043 0.181669 0.720244
+16 9 23 0.539478 0.189956 0.745785
+16 9 24 0.544854 0.209855 0.767993
+16 9 25 0.550877 0.233625 0.789090
+16 9 26 0.560928 0.279171 0.813091
+16 9 27 0.571907 0.329742 0.837763
+16 9 28 0.579311 0.364099 0.854524
+16 9 29 0.586204 0.396141 0.870156
+16 9 30 0.590810 0.419357 0.881557
+16 9 31 0.595264 0.441985 0.892676
+16 10 0 0.504457 0.138140 0.000000
+16 10 1 0.504743 0.139076 0.000000
+16 10 2 0.505042 0.140127 0.000000
+16 10 3 0.505534 0.142908 0.000000
+16 10 4 0.506076 0.146002 0.000000
+16 10 5 0.506959 0.151281 0.000000
+16 10 6 0.508150 0.156886 0.000000
+16 10 7 0.510667 0.163904 0.000000
+16 10 8 0.513581 0.170348 0.050697
+16 10 9 0.517686 0.175070 0.101689
+16 10 10 0.521212 0.180661 0.155272
+16 10 11 0.523464 0.188162 0.214555
+16 10 12 0.525732 0.195144 0.273377
+16 10 13 0.528028 0.201260 0.331430
+16 10 14 0.530088 0.206642 0.388714
+16 10 15 0.531843 0.211083 0.445012
+16 10 16 0.534066 0.215260 0.499349
+16 10 17 0.536758 0.219174 0.551726
+16 10 18 0.539761 0.222417 0.598978
+16 10 19 0.543005 0.225137 0.642245
+16 10 20 0.545561 0.228174 0.679709
+16 10 21 0.547704 0.231400 0.713694
+16 10 22 0.550260 0.238186 0.741737
+16 10 23 0.553004 0.246590 0.767080
+16 10 24 0.557619 0.265240 0.788734
+16 10 25 0.562858 0.287305 0.809158
+16 10 26 0.571208 0.328750 0.830863
+16 10 27 0.580277 0.374667 0.852864
+16 10 28 0.586472 0.406137 0.867922
+16 10 29 0.592257 0.435542 0.881988
+16 10 30 0.596122 0.457000 0.892305
+16 10 31 0.599859 0.477928 0.902373
+16 11 0 0.527109 0.183176 0.000000
+16 11 1 0.527330 0.185076 0.000000
+16 11 2 0.527562 0.187051 0.000000
+16 11 3 0.527967 0.190138 0.000000
+16 11 4 0.528405 0.193552 0.000000
+16 11 5 0.529071 0.199253 0.000000
+16 11 6 0.530036 0.204874 0.000000
+16 11 7 0.532293 0.210148 0.000000
+16 11 8 0.534936 0.215931 0.020533
+16 11 9 0.538733 0.223240 0.091336
+16 11 10 0.541871 0.230830 0.159200
+16 11 11 0.543558 0.239038 0.220601
+16 11 12 0.545334 0.246911 0.281522
+16 11 13 0.547257 0.254225 0.341647
+16 11 14 0.548945 0.260888 0.401433
+16 11 15 0.550331 0.266714 0.460784
+16 11 16 0.552204 0.272384 0.516990
+16 11 17 0.554566 0.277896 0.570049
+16 11 18 0.557079 0.282314 0.618170
+16 11 19 0.559710 0.285881 0.662449
+16 11 20 0.561313 0.289587 0.700368
+16 11 21 0.562299 0.293377 0.734471
+16 11 22 0.563803 0.299384 0.762793
+16 11 23 0.565541 0.306399 0.788487
+16 11 24 0.569363 0.323644 0.809506
+16 11 25 0.573879 0.344299 0.828965
+16 11 26 0.580527 0.380835 0.848122
+16 11 27 0.587667 0.421035 0.867208
+16 11 28 0.592834 0.449669 0.880728
+16 11 29 0.597718 0.476652 0.893454
+16 11 30 0.601134 0.497031 0.903005
+16 11 31 0.604453 0.516970 0.912345
+16 12 0 0.549875 0.229624 0.000000
+16 12 1 0.550056 0.232233 0.000000
+16 12 2 0.550246 0.234894 0.000000
+16 12 3 0.550589 0.238331 0.000000
+16 12 4 0.550951 0.242117 0.000000
+16 12 5 0.551450 0.248345 0.000000
+16 12 6 0.552225 0.254470 0.000000
+16 12 7 0.554196 0.260145 0.000000
+16 12 8 0.556525 0.266655 0.000000
+16 12 9 0.559925 0.275669 0.076250
+16 12 10 0.562616 0.284760 0.160525
+16 12 11 0.563745 0.294019 0.224899
+16 12 12 0.564940 0.303023 0.288651
+16 12 13 0.566245 0.311605 0.351367
+16 12 14 0.567387 0.319584 0.413669
+16 12 15 0.568319 0.326788 0.475441
+16 12 16 0.569674 0.333755 0.533441
+16 12 17 0.571454 0.340486 0.587669
+16 12 18 0.573299 0.345804 0.636770
+16 12 19 0.575194 0.350024 0.681885
+16 12 20 0.575859 0.354135 0.720411
+16 12 21 0.575785 0.358181 0.754983
+16 12 22 0.576260 0.363635 0.783283
+16 12 23 0.576985 0.369729 0.808731
+16 12 24 0.579950 0.385349 0.829097
+16 12 25 0.583662 0.404143 0.847768
+16 12 26 0.588885 0.436029 0.864859
+16 12 27 0.594457 0.470937 0.881586
+16 12 28 0.598697 0.496627 0.893739
+16 12 29 0.602748 0.521001 0.905239
+16 12 30 0.605644 0.539810 0.913981
+16 12 31 0.608464 0.558249 0.922540
+16 13 0 0.572833 0.278426 0.000000
+16 13 1 0.573014 0.281318 0.000000
+16 13 2 0.573203 0.284269 0.000000
+16 13 3 0.573526 0.288128 0.000000
+16 13 4 0.573860 0.292371 0.000000
+16 13 5 0.574275 0.299303 0.000000
+16 13 6 0.574919 0.306744 0.000000
+16 13 7 0.576559 0.316395 0.000000
+16 13 8 0.578504 0.325947 0.000000
+16 13 9 0.581360 0.335198 0.053275
+16 13 10 0.583505 0.344959 0.157511
+16 13 11 0.584086 0.355840 0.226286
+16 13 12 0.584554 0.366378 0.294085
+16 13 13 0.584831 0.376346 0.360258
+16 13 14 0.585135 0.385701 0.425102
+16 13 15 0.585474 0.394266 0.488239
+16 13 16 0.586032 0.402207 0.547910
+16 13 17 0.586809 0.409523 0.604115
+16 13 18 0.587687 0.415283 0.654386
+16 13 19 0.588642 0.419833 0.700040
+16 13 20 0.588393 0.423907 0.739428
+16 13 21 0.587421 0.427696 0.775056
+16 13 22 0.586909 0.432973 0.802830
+16 13 23 0.586607 0.438928 0.827035
+16 13 24 0.588610 0.452554 0.846719
+16 13 25 0.591381 0.468737 0.864896
+16 13 26 0.595641 0.496408 0.880729
+16 13 27 0.600245 0.526729 0.896021
+16 13 28 0.603732 0.549293 0.907090
+16 13 29 0.607060 0.570750 0.917556
+16 13 30 0.609315 0.587170 0.925417
+16 13 31 0.611500 0.603255 0.933106
+16 14 0 0.596011 0.334980 0.000000
+16 14 1 0.596039 0.337907 0.000000
+16 14 2 0.596069 0.340896 0.000000
+16 14 3 0.596141 0.344838 0.000000
+16 14 4 0.596203 0.349170 0.000000
+16 14 5 0.596195 0.356231 0.000000
+16 14 6 0.596419 0.364156 0.000000
+16 14 7 0.597646 0.375826 0.000000
+16 14 8 0.599112 0.387107 0.000000
+16 14 9 0.601298 0.397222 0.036468
+16 14 10 0.602773 0.408012 0.150826
+16 14 11 0.602683 0.420288 0.225376
+16 14 12 0.602392 0.432111 0.297900
+16 14 13 0.601765 0.443177 0.367047
+16 14 14 0.601135 0.453660 0.434423
+16 14 15 0.600501 0.463392 0.499521
+16 14 16 0.600089 0.471948 0.560733
+16 14 17 0.599899 0.479326 0.618061
+16 14 18 0.599654 0.485345 0.669410
+16 14 19 0.599364 0.490307 0.716109
+16 14 20 0.598206 0.494304 0.756221
+16 14 21 0.596528 0.497721 0.792382
+16 14 22 0.595372 0.502624 0.820196
+16 14 23 0.594453 0.508202 0.844216
+16 14 24 0.595761 0.520007 0.863352
+16 14 25 0.597813 0.533888 0.880861
+16 14 26 0.601277 0.557518 0.895462
+16 14 27 0.605068 0.583398 0.909391
+16 14 28 0.607904 0.602532 0.919339
+16 14 29 0.610604 0.620701 0.928719
+16 14 30 0.612368 0.634711 0.935745
+16 14 31 0.614069 0.648444 0.942614
+16 15 0 0.619473 0.401500 0.000000
+16 15 1 0.619150 0.404144 0.000000
+16 15 2 0.618818 0.406847 0.000000
+16 15 3 0.618342 0.410438 0.000000
+16 15 4 0.617818 0.414385 0.000000
+16 15 5 0.616955 0.420837 0.000000
+16 15 6 0.616386 0.428173 0.000000
+16 15 7 0.617090 0.439346 0.000000
+16 15 8 0.617957 0.450671 0.000000
+16 15 9 0.619313 0.462453 0.027589
+16 15 10 0.619957 0.474735 0.139421
+16 15 11 0.619038 0.488116 0.221513
+16 15 12 0.617948 0.500902 0.299634
+16 15 13 0.616576 0.512696 0.371136
+16 15 14 0.614887 0.523988 0.441028
+16 15 15 0.612790 0.534637 0.508852
+16 15 16 0.611187 0.543345 0.571440
+16 15 17 0.610077 0.550114 0.628792
+16 15 18 0.608508 0.556156 0.681104
+16 15 19 0.606580 0.561634 0.729495
+16 15 20 0.604521 0.565502 0.770155
+16 15 21 0.602383 0.568404 0.806176
+16 15 22 0.601022 0.572676 0.834755
+16 15 23 0.600016 0.577571 0.859952
+16 15 24 0.600975 0.587777 0.878714
+16 15 25 0.602588 0.599754 0.895331
+16 15 26 0.605473 0.619570 0.908732
+16 15 27 0.608651 0.641195 0.921390
+16 15 28 0.610969 0.656506 0.930171
+16 15 29 0.613163 0.670914 0.938399
+16 15 30 0.614625 0.682486 0.944648
+16 15 31 0.616038 0.693868 0.950765
+16 16 0 0.639140 0.460066 0.000000
+16 16 1 0.638665 0.462840 0.000000
+16 16 2 0.638178 0.465681 0.000000
+16 16 3 0.637506 0.469508 0.000000
+16 16 4 0.636768 0.473713 0.000000
+16 16 5 0.635567 0.480566 0.000000
+16 16 6 0.634583 0.488242 0.000000
+16 16 7 0.634535 0.499484 0.000000
+16 16 8 0.634614 0.511129 0.000000
+16 16 9 0.635073 0.523981 0.008362
+16 16 10 0.634804 0.537192 0.114214
+16 16 11 0.632935 0.551196 0.211010
+16 16 12 0.630833 0.564618 0.299323
+16 16 13 0.628344 0.577068 0.373496
+16 16 14 0.625534 0.588807 0.445689
+16 16 15 0.622311 0.599632 0.515336
+16 16 16 0.619630 0.608641 0.579359
+16 16 17 0.617493 0.615836 0.637757
+16 16 18 0.614853 0.622130 0.691043
+16 16 19 0.611822 0.627725 0.740351
+16 16 20 0.609076 0.631776 0.781760
+16 16 21 0.606501 0.634901 0.818428
+16 16 22 0.604869 0.638765 0.847493
+16 16 23 0.603665 0.642966 0.873103
+16 16 24 0.604203 0.651490 0.891511
+16 16 25 0.605323 0.661456 0.907519
+16 16 26 0.607687 0.677618 0.919945
+16 16 27 0.610339 0.695211 0.931545
+16 16 28 0.612225 0.707292 0.939462
+16 16 29 0.614002 0.718586 0.946854
+16 16 30 0.615231 0.728199 0.952543
+16 16 31 0.616424 0.737699 0.958119
+16 17 0 0.655014 0.510678 0.000000
+16 17 1 0.654584 0.513996 0.000000
+16 17 2 0.654149 0.517397 0.000000
+16 17 3 0.653633 0.522048 0.000000
+16 17 4 0.653053 0.527152 0.000000
+16 17 5 0.652033 0.535418 0.000000
+16 17 6 0.651011 0.544362 0.000000
+16 17 7 0.649981 0.556242 0.000000
+16 17 8 0.649082 0.568482 0.000000
+16 17 9 0.648579 0.581803 0.000000
+16 17 10 0.647314 0.595383 0.075206
+16 17 11 0.644374 0.609529 0.193866
+16 17 12 0.641046 0.623259 0.296966
+16 17 13 0.637069 0.636295 0.374129
+16 17 14 0.633076 0.648117 0.448406
+16 17 15 0.629062 0.658377 0.518972
+16 17 16 0.625419 0.667835 0.584489
+16 17 17 0.622147 0.676492 0.644956
+16 17 18 0.618689 0.683267 0.699226
+16 17 19 0.615088 0.688579 0.748678
+16 17 20 0.611870 0.693126 0.791036
+16 17 21 0.608884 0.697212 0.829139
+16 17 22 0.606911 0.700891 0.858411
+16 17 23 0.605399 0.704385 0.883668
+16 17 24 0.605448 0.711145 0.901743
+16 17 25 0.606017 0.718994 0.917423
+16 17 26 0.607920 0.731664 0.929100
+16 17 27 0.610131 0.745448 0.939854
+16 17 28 0.611673 0.754893 0.947212
+16 17 29 0.613120 0.763718 0.954085
+16 17 30 0.614185 0.771851 0.959432
+16 17 31 0.615226 0.779938 0.964677
+16 18 0 0.669716 0.560345 0.000000
+16 18 1 0.669133 0.563556 0.000000
+16 18 2 0.668538 0.566846 0.000000
+16 18 3 0.667769 0.571329 0.000000
+16 18 4 0.666935 0.576282 0.000000
+16 18 5 0.665648 0.584519 0.000000
+16 18 6 0.664391 0.593652 0.000000
+16 18 7 0.663264 0.606668 0.000000
+16 18 8 0.662098 0.619832 0.000000
+16 18 9 0.660816 0.633439 0.000000
+16 18 10 0.658574 0.647367 0.021973
+16 18 11 0.654220 0.661999 0.171191
+16 18 12 0.649565 0.676069 0.294305
+16 18 13 0.644410 0.689202 0.373915
+16 18 14 0.639318 0.701294 0.450103
+16 18 15 0.634308 0.712046 0.521891
+16 18 16 0.629721 0.721660 0.588466
+16 18 17 0.625558 0.730138 0.649826
+16 18 18 0.621364 0.737219 0.705102
+16 18 19 0.617144 0.743215 0.755646
+16 18 20 0.613505 0.747892 0.798575
+16 18 21 0.610214 0.751778 0.836935
+16 18 22 0.607994 0.755373 0.866582
+16 18 23 0.606262 0.758836 0.892267
+16 18 24 0.605974 0.764328 0.910222
+16 18 25 0.606167 0.770497 0.925600
+16 18 26 0.607723 0.780284 0.936662
+16 18 27 0.609594 0.790906 0.946728
+16 18 28 0.610924 0.798432 0.953641
+16 18 29 0.612177 0.805515 0.960102
+16 18 30 0.613052 0.811894 0.965090
+16 18 31 0.613902 0.818227 0.969979
+16 19 0 0.683506 0.609277 0.000000
+16 19 1 0.682615 0.611875 0.000000
+16 19 2 0.681696 0.614532 0.000000
+16 19 3 0.680357 0.618075 0.000000
+16 19 4 0.678947 0.622061 0.000000
+16 19 5 0.677044 0.629146 0.000000
+16 19 6 0.675398 0.637628 0.000000
+16 19 7 0.674864 0.652170 0.000000
+16 19 8 0.673984 0.666514 0.000000
+16 19 9 0.672067 0.680263 0.000000
+16 19 10 0.668863 0.694524 0.000000
+16 19 11 0.662826 0.709908 0.144212
+16 19 12 0.656768 0.724343 0.291409
+16 19 13 0.650676 0.737194 0.373042
+16 19 14 0.644550 0.749701 0.451006
+16 19 15 0.638382 0.761766 0.524253
+16 19 16 0.632866 0.771310 0.591546
+16 19 17 0.628003 0.778332 0.652885
+16 19 18 0.623134 0.785583 0.709182
+16 19 19 0.618259 0.793013 0.761558
+16 19 20 0.614237 0.797538 0.804763
+16 19 21 0.610726 0.800321 0.842465
+16 19 22 0.608333 0.803911 0.872617
+16 19 23 0.606448 0.807868 0.899336
+16 19 24 0.605942 0.812478 0.917338
+16 19 25 0.605895 0.817306 0.932434
+16 19 26 0.607193 0.824683 0.942985
+16 19 27 0.608801 0.832649 0.952487
+16 19 28 0.610022 0.838812 0.959042
+16 19 29 0.611187 0.844718 0.965177
+16 19 30 0.611850 0.849131 0.969791
+16 19 31 0.612479 0.853443 0.974304
+16 20 0 0.692869 0.644205 0.000000
+16 20 1 0.691974 0.647117 0.000000
+16 20 2 0.691051 0.650092 0.000000
+16 20 3 0.689718 0.654003 0.000000
+16 20 4 0.688310 0.658385 0.000000
+16 20 5 0.686370 0.666067 0.000000
+16 20 6 0.684569 0.674979 0.000000
+16 20 7 0.683368 0.689229 0.000000
+16 20 8 0.681830 0.703535 0.000000
+16 20 9 0.679279 0.718014 0.000000
+16 20 10 0.675335 0.732808 0.000000
+16 20 11 0.668325 0.748298 0.133277
+16 20 12 0.661323 0.762891 0.289529
+16 20 13 0.654333 0.775989 0.373025
+16 20 14 0.647460 0.788453 0.452477
+16 20 15 0.640734 0.800101 0.526728
+16 20 16 0.634672 0.809830 0.595035
+16 20 17 0.629275 0.817642 0.657397
+16 20 18 0.623895 0.825038 0.714181
+16 20 19 0.618528 0.832110 0.766628
+16 20 20 0.614175 0.836765 0.810092
+16 20 21 0.610431 0.839971 0.848165
+16 20 22 0.607813 0.843357 0.878183
+16 20 23 0.605707 0.846825 0.904540
+16 20 24 0.604986 0.850451 0.922360
+16 20 25 0.604726 0.854130 0.937336
+16 20 26 0.605845 0.859381 0.947536
+16 20 27 0.607282 0.864995 0.956635
+16 20 28 0.608403 0.869462 0.962878
+16 20 29 0.609479 0.873765 0.968714
+16 20 30 0.610059 0.877228 0.973122
+16 20 31 0.610606 0.880635 0.977435
+16 21 0 0.699576 0.670731 0.000000
+16 21 1 0.698858 0.674513 0.000000
+16 21 2 0.698124 0.678376 0.000000
+16 21 3 0.697144 0.683440 0.000000
+16 21 4 0.696083 0.689036 0.000000
+16 21 5 0.694454 0.698364 0.000000
+16 21 6 0.692639 0.708356 0.000000
+16 21 7 0.690015 0.721222 0.000000
+16 21 8 0.687251 0.734762 0.000000
+16 21 9 0.684068 0.750320 0.000000
+16 21 10 0.679518 0.765768 0.000000
+16 21 11 0.671960 0.780976 0.131967
+16 21 12 0.664288 0.795604 0.288259
+16 21 13 0.656427 0.809267 0.373523
+16 21 14 0.648976 0.821411 0.454289
+16 21 15 0.642052 0.831603 0.529271
+16 21 16 0.635675 0.841674 0.598768
+16 21 17 0.629843 0.851624 0.662780
+16 21 18 0.624050 0.859148 0.719732
+16 21 19 0.618288 0.864785 0.771194
+16 21 20 0.613637 0.869741 0.814905
+16 21 21 0.609653 0.874287 0.853967
+16 21 22 0.606780 0.877350 0.883469
+16 21 23 0.604411 0.879738 0.908624
+16 21 24 0.603476 0.882318 0.926127
+16 21 25 0.603018 0.884963 0.941078
+16 21 26 0.604006 0.888258 0.951025
+16 21 27 0.605327 0.891703 0.959818
+16 21 28 0.606355 0.894272 0.965776
+16 21 29 0.607340 0.896716 0.971329
+16 21 30 0.607915 0.899841 0.975631
+16 21 31 0.608462 0.903012 0.979850
+16 22 0 0.707094 0.694521 0.000000
+16 22 1 0.706145 0.698205 0.000000
+16 22 2 0.705175 0.701968 0.000000
+16 22 3 0.703898 0.706940 0.000000
+16 22 4 0.702502 0.712409 0.000000
+16 22 5 0.700276 0.721364 0.000000
+16 22 6 0.697925 0.731182 0.000000
+16 22 7 0.695039 0.744747 0.000000
+16 22 8 0.691852 0.758784 0.000000
+16 22 9 0.687763 0.774242 0.000000
+16 22 10 0.682433 0.789684 0.000000
+16 22 11 0.674374 0.805094 0.134892
+16 22 12 0.666389 0.819715 0.292855
+16 22 13 0.658527 0.833022 0.378866
+16 22 14 0.650977 0.845157 0.460307
+16 22 15 0.643828 0.855784 0.535872
+16 22 16 0.637119 0.865856 0.605424
+16 22 17 0.630848 0.875374 0.668963
+16 22 18 0.624676 0.882757 0.725518
+16 22 19 0.618581 0.888479 0.776639
+16 22 20 0.613644 0.893395 0.819820
+16 22 21 0.609403 0.897827 0.858236
+16 22 22 0.606434 0.900954 0.887511
+16 22 23 0.604044 0.903489 0.912632
+16 22 24 0.603046 0.905682 0.929913
+16 22 25 0.602513 0.907761 0.944581
+16 22 26 0.603448 0.910191 0.954096
+16 22 27 0.604722 0.912703 0.962422
+16 22 28 0.605679 0.914533 0.968188
+16 22 29 0.606592 0.916267 0.973588
+16 22 30 0.607175 0.918567 0.977732
+16 22 31 0.607735 0.920904 0.981793
+16 23 0 0.714982 0.717068 0.000000
+16 23 1 0.713615 0.720212 0.000000
+16 23 2 0.712217 0.723429 0.000000
+16 23 3 0.710346 0.727742 0.000000
+16 23 4 0.708305 0.732474 0.000000
+16 23 5 0.705068 0.740136 0.000000
+16 23 6 0.701946 0.749214 0.000000
+16 23 7 0.699326 0.764422 0.000000
+16 23 8 0.696080 0.779533 0.000000
+16 23 9 0.690961 0.794354 0.000000
+16 23 10 0.684772 0.809490 0.000000
+16 23 11 0.676233 0.825321 0.139740
+16 23 12 0.668096 0.839916 0.300118
+16 23 13 0.660629 0.852449 0.386411
+16 23 14 0.653198 0.864715 0.468236
+16 23 15 0.645812 0.876638 0.544317
+16 23 16 0.638764 0.886557 0.613408
+16 23 17 0.632053 0.894473 0.675510
+16 23 18 0.625517 0.901592 0.731410
+16 23 19 0.619116 0.908091 0.782486
+16 23 20 0.613899 0.912813 0.824781
+16 23 21 0.609393 0.916468 0.861808
+16 23 22 0.606401 0.919836 0.890989
+16 23 23 0.604098 0.923075 0.916604
+16 23 24 0.603108 0.925180 0.933708
+16 23 25 0.602555 0.926907 0.947976
+16 23 26 0.603472 0.928968 0.956977
+16 23 27 0.604729 0.931107 0.964763
+16 23 28 0.605628 0.932726 0.970380
+16 23 29 0.606476 0.934272 0.975686
+16 23 30 0.607073 0.935525 0.979648
+16 23 31 0.607653 0.936759 0.983521
+16 24 0 0.721500 0.733706 0.000000
+16 24 1 0.719764 0.737524 0.000000
+16 24 2 0.717999 0.741399 0.000000
+16 24 3 0.715816 0.746128 0.000000
+16 24 4 0.713469 0.751185 0.000000
+16 24 5 0.709979 0.758543 0.000000
+16 24 6 0.706424 0.767196 0.000000
+16 24 7 0.702589 0.781459 0.000000
+16 24 8 0.698441 0.795857 0.000000
+16 24 9 0.693359 0.810660 0.000000
+16 24 10 0.687091 0.825656 0.000000
+16 24 11 0.678218 0.841081 0.153545
+16 24 12 0.669940 0.855342 0.319888
+16 24 13 0.662655 0.867664 0.404557
+16 24 14 0.655300 0.879691 0.484793
+16 24 15 0.647855 0.891339 0.559328
+16 24 16 0.640812 0.900965 0.626699
+16 24 17 0.634171 0.908570 0.686906
+16 24 18 0.627668 0.915483 0.741315
+16 24 19 0.621275 0.921857 0.791215
+16 24 20 0.615997 0.926411 0.832081
+16 24 21 0.611391 0.929872 0.867525
+16 24 22 0.608326 0.932974 0.895679
+16 24 23 0.605962 0.935913 0.920519
+16 24 24 0.604916 0.937850 0.937090
+16 24 25 0.604310 0.939453 0.950905
+16 24 26 0.605174 0.941358 0.959583
+16 24 27 0.606378 0.943332 0.967074
+16 24 28 0.607258 0.944798 0.972510
+16 24 29 0.608092 0.946192 0.977651
+16 24 30 0.608692 0.947143 0.981444
+16 24 31 0.609278 0.948065 0.985147
+16 25 0 0.727561 0.748373 0.000000
+16 25 1 0.725472 0.753271 0.000000
+16 25 2 0.723363 0.758207 0.000000
+16 25 3 0.720959 0.763709 0.000000
+16 25 4 0.718419 0.769446 0.000000
+16 25 5 0.714930 0.776828 0.000000
+16 25 6 0.711054 0.785161 0.000000
+16 25 7 0.705511 0.797617 0.000000
+16 25 8 0.700180 0.810707 0.000000
+16 25 9 0.695490 0.825697 0.000000
+16 25 10 0.689404 0.840610 0.000000
+16 25 11 0.680245 0.855352 0.170336
+16 25 12 0.671831 0.869178 0.343827
+16 25 13 0.664655 0.881475 0.426236
+16 25 14 0.657362 0.893140 0.504224
+16 25 15 0.649917 0.903990 0.576527
+16 25 16 0.642994 0.913277 0.641759
+16 25 17 0.636593 0.921000 0.699918
+16 25 18 0.630258 0.927725 0.752558
+16 25 19 0.623974 0.933675 0.800906
+16 25 20 0.618710 0.938070 0.840160
+16 25 21 0.614058 0.941531 0.873958
+16 25 22 0.610903 0.944197 0.900773
+16 25 23 0.608430 0.946502 0.924415
+16 25 24 0.607307 0.948244 0.940334
+16 25 25 0.606636 0.949798 0.953679
+16 25 26 0.607435 0.951618 0.962095
+16 25 27 0.608574 0.953498 0.969375
+16 25 28 0.609449 0.954831 0.974619
+16 25 29 0.610285 0.956085 0.979573
+16 25 30 0.610886 0.956982 0.983200
+16 25 31 0.611471 0.957855 0.986739
+16 26 0 0.732066 0.757268 0.000000
+16 26 1 0.729929 0.762349 0.000000
+16 26 2 0.727761 0.767498 0.000000
+16 26 3 0.725118 0.773680 0.000000
+16 26 4 0.722292 0.780246 0.000000
+16 26 5 0.718175 0.789500 0.000000
+16 26 6 0.713722 0.799281 0.000000
+16 26 7 0.707805 0.811341 0.000000
+16 26 8 0.702085 0.823995 0.000000
+16 26 9 0.696954 0.838429 0.000000
+16 26 10 0.690747 0.852782 0.000000
+16 26 11 0.682174 0.866958 0.191567
+16 26 12 0.674118 0.880313 0.374062
+16 26 13 0.666926 0.892301 0.453522
+16 26 14 0.659578 0.903450 0.528389
+16 26 15 0.652028 0.913520 0.597351
+16 26 16 0.645260 0.922264 0.659487
+16 26 17 0.639275 0.929684 0.714796
+16 26 18 0.633385 0.936157 0.765552
+16 26 19 0.627566 0.941895 0.812768
+16 26 20 0.622571 0.946054 0.850043
+16 26 21 0.618068 0.949266 0.881354
+16 26 22 0.614946 0.951720 0.906608
+16 26 23 0.612452 0.953830 0.929108
+16 26 24 0.611316 0.955474 0.944561
+16 26 25 0.610632 0.956963 0.957665
+16 26 26 0.611162 0.958337 0.965089
+16 26 27 0.611972 0.959684 0.971203
+16 26 28 0.612790 0.960928 0.976204
+16 26 29 0.613608 0.962156 0.981046
+16 26 30 0.614176 0.963042 0.984637
+16 26 31 0.614727 0.963906 0.988146
+16 27 0 0.736212 0.764830 0.000000
+16 27 1 0.734098 0.769887 0.000000
+16 27 2 0.731936 0.775055 0.000000
+16 27 3 0.729050 0.781895 0.000000
+16 27 4 0.725915 0.789324 0.000000
+16 27 5 0.721028 0.800878 0.000000
+16 27 6 0.715936 0.812513 0.000000
+16 27 7 0.709954 0.824503 0.000000
+16 27 8 0.704027 0.836923 0.000000
+16 27 9 0.698264 0.850629 0.000000
+16 27 10 0.691868 0.864313 0.000000
+16 27 11 0.684079 0.877949 0.213823
+16 27 12 0.676497 0.890826 0.405751
+16 27 13 0.669260 0.902438 0.482102
+16 27 14 0.661830 0.913035 0.553647
+16 27 15 0.654149 0.922328 0.619012
+16 27 16 0.647546 0.930485 0.677831
+16 27 17 0.642018 0.937504 0.730104
+16 27 18 0.636635 0.943710 0.778950
+16 27 19 0.631365 0.949284 0.825132
+16 27 20 0.626696 0.953190 0.860344
+16 27 21 0.622389 0.956096 0.888973
+16 27 22 0.619328 0.958390 0.912613
+16 27 23 0.616834 0.960405 0.933985
+16 27 24 0.615697 0.961974 0.949015
+16 27 25 0.615013 0.963393 0.961931
+16 27 26 0.615227 0.964239 0.968194
+16 27 27 0.615648 0.964952 0.972922
+16 27 28 0.616397 0.966116 0.977667
+16 27 29 0.617193 0.967345 0.982415
+16 27 30 0.617719 0.968231 0.986001
+16 27 31 0.618228 0.969095 0.989509
+16 28 0 0.739100 0.770121 0.000000
+16 28 1 0.736988 0.775195 0.000000
+16 28 2 0.734827 0.780388 0.000000
+16 28 3 0.731911 0.787350 0.000000
+16 28 4 0.728734 0.794953 0.000000
+16 28 5 0.723731 0.807041 0.000000
+16 28 6 0.718449 0.819385 0.000000
+16 28 7 0.711958 0.832845 0.000000
+16 28 8 0.705482 0.846237 0.000000
+16 28 9 0.699049 0.859422 0.000000
+16 28 10 0.692432 0.872599 0.044620
+16 28 11 0.685408 0.885756 0.263514
+16 28 12 0.678281 0.898223 0.428190
+16 28 13 0.670982 0.909541 0.502505
+16 28 14 0.663500 0.919777 0.571798
+16 28 15 0.655784 0.928623 0.634636
+16 28 16 0.649134 0.936448 0.691661
+16 28 17 0.643550 0.943253 0.742876
+16 28 18 0.638524 0.949215 0.790122
+16 28 19 0.633932 0.954521 0.834282
+16 28 20 0.629606 0.958265 0.868204
+16 28 21 0.625439 0.961072 0.895984
+16 28 22 0.622434 0.963241 0.918440
+16 28 23 0.619957 0.965120 0.938477
+16 28 24 0.618782 0.966602 0.952724
+16 28 25 0.618041 0.967951 0.965041
+16 28 26 0.618205 0.968719 0.971050
+16 28 27 0.618577 0.969354 0.975604
+16 28 28 0.619101 0.970167 0.979598
+16 28 29 0.619647 0.971005 0.983512
+16 28 30 0.620153 0.971867 0.986988
+16 28 31 0.620657 0.972731 0.990435
+16 29 0 0.741807 0.775086 0.000000
+16 29 1 0.739696 0.780185 0.000000
+16 29 2 0.737534 0.785403 0.000000
+16 29 3 0.734619 0.792411 0.000000
+16 29 4 0.731439 0.800089 0.000000
+16 29 5 0.726414 0.812458 0.000000
+16 29 6 0.721006 0.825349 0.000000
+16 29 7 0.713942 0.840498 0.000000
+16 29 8 0.706866 0.855034 0.000000
+16 29 9 0.699759 0.867728 0.034031
+16 29 10 0.692916 0.880420 0.149085
+16 29 11 0.686655 0.893107 0.317123
+16 29 12 0.679979 0.905174 0.449308
+16 29 13 0.672615 0.916210 0.521740
+16 29 14 0.665087 0.926113 0.588935
+16 29 15 0.657348 0.934558 0.649397
+16 29 16 0.650622 0.942090 0.704848
+16 29 17 0.644909 0.948706 0.755285
+16 29 18 0.640218 0.954427 0.800975
+16 29 19 0.636324 0.959452 0.842973
+16 29 20 0.632342 0.963046 0.875717
+16 29 21 0.628308 0.965783 0.902908
+16 29 22 0.625358 0.967832 0.924242
+16 29 23 0.622900 0.969569 0.942914
+16 29 24 0.621682 0.970962 0.956326
+16 29 25 0.620876 0.972242 0.967985
+16 29 26 0.621028 0.972998 0.973871
+16 29 27 0.621399 0.973632 0.978425
+16 29 28 0.621677 0.974055 0.981596
+16 29 29 0.621941 0.974447 0.984569
+16 29 30 0.622429 0.975281 0.987921
+16 29 31 0.622932 0.976145 0.991299
+16 30 0 0.744274 0.779065 0.000000
+16 30 1 0.742224 0.784166 0.000000
+16 30 2 0.740119 0.789383 0.000000
+16 30 3 0.737203 0.796351 0.000000
+16 30 4 0.734016 0.804002 0.000000
+16 30 5 0.728928 0.816431 0.000000
+16 30 6 0.723344 0.829622 0.000000
+16 30 7 0.715609 0.846111 0.000000
+16 30 8 0.707932 0.861594 0.007295
+16 30 9 0.700434 0.874058 0.120539
+16 30 10 0.693439 0.886487 0.237260
+16 30 11 0.687553 0.898837 0.361633
+16 30 12 0.681157 0.910614 0.466035
+16 30 13 0.673910 0.921433 0.537155
+16 30 14 0.666475 0.931097 0.602679
+16 30 15 0.658795 0.939276 0.661008
+16 30 16 0.652095 0.946524 0.714992
+16 30 17 0.646373 0.952842 0.764631
+16 30 18 0.641934 0.958323 0.809040
+16 30 19 0.638494 0.963153 0.849381
+16 30 20 0.634739 0.966672 0.881234
+16 30 21 0.630795 0.969405 0.907993
+16 30 22 0.627859 0.971341 0.928496
+16 30 23 0.625382 0.972915 0.946156
+16 30 24 0.624155 0.974248 0.959002
+16 30 25 0.623346 0.975500 0.970244
+16 30 26 0.623479 0.976251 0.976052
+16 30 27 0.623830 0.976885 0.980607
+16 30 28 0.624108 0.977284 0.983669
+16 30 29 0.624375 0.977648 0.986518
+16 30 30 0.624729 0.978233 0.989299
+16 30 31 0.625090 0.978832 0.992074
+16 31 0 0.746725 0.782979 0.000000
+16 31 1 0.744739 0.788080 0.000000
+16 31 2 0.742695 0.793294 0.000000
+16 31 3 0.739780 0.800216 0.000000
+16 31 4 0.736585 0.807833 0.000000
+16 31 5 0.731432 0.820308 0.000000
+16 31 6 0.725668 0.833783 0.000000
+16 31 7 0.717255 0.851588 0.000000
+16 31 8 0.708977 0.868005 0.073245
+16 31 9 0.701105 0.880257 0.207013
+16 31 10 0.693964 0.892437 0.324349
+16 31 11 0.688428 0.904460 0.405536
+16 31 12 0.682300 0.915952 0.482470
+16 31 13 0.675183 0.926559 0.552315
+16 31 14 0.667849 0.935991 0.616196
+16 31 15 0.660234 0.943912 0.672409
+16 31 16 0.653566 0.950878 0.724934
+16 31 17 0.647845 0.956889 0.773772
+16 31 18 0.643652 0.962131 0.816918
+16 31 19 0.640649 0.966773 0.855637
+16 31 20 0.637113 0.970222 0.886617
+16 31 21 0.633256 0.972954 0.912955
+16 31 22 0.630332 0.974778 0.932646
+16 31 23 0.627833 0.976188 0.949318
+16 31 24 0.626601 0.977462 0.961617
+16 31 25 0.625791 0.978690 0.972458
+16 31 26 0.625906 0.979436 0.978191
+16 31 27 0.626234 0.980070 0.982746
+16 31 28 0.626529 0.980469 0.985747
+16 31 29 0.626819 0.980833 0.988526
+16 31 30 0.627032 0.981153 0.990705
+16 31 31 0.627239 0.981470 0.992844
+17 0 0 0.390209 0.000000 0.000000
+17 0 1 0.390471 0.000000 0.000000
+17 0 2 0.390728 0.000000 0.000000
+17 0 3 0.390897 0.000000 0.000000
+17 0 4 0.391100 0.000000 0.000000
+17 0 5 0.391532 0.000000 0.000000
+17 0 6 0.392292 0.000000 0.000000
+17 0 7 0.394475 0.000000 0.016506
+17 0 8 0.397557 0.000000 0.050217
+17 0 9 0.403339 0.000000 0.066506
+17 0 10 0.408497 0.000000 0.091746
+17 0 11 0.412282 0.000000 0.136676
+17 0 12 0.416295 0.000000 0.180740
+17 0 13 0.420688 0.000000 0.223360
+17 0 14 0.426133 0.000000 0.267647
+17 0 15 0.432933 0.000000 0.314076
+17 0 16 0.438783 0.000000 0.356555
+17 0 17 0.443684 0.000000 0.395086
+17 0 18 0.448096 0.000000 0.431683
+17 0 19 0.452128 0.000000 0.466776
+17 0 20 0.456255 0.000000 0.498366
+17 0 21 0.460439 0.000000 0.527853
+17 0 22 0.466877 0.000000 0.555393
+17 0 23 0.474338 0.000000 0.582048
+17 0 24 0.487859 0.000000 0.613696
+17 0 25 0.503399 0.000000 0.647009
+17 0 26 0.527891 0.000000 0.687526
+17 0 27 0.554448 0.000000 0.729706
+17 0 28 0.572452 0.000000 0.758337
+17 0 29 0.589234 0.001367 0.785033
+17 0 30 0.601335 0.099363 0.804595
+17 0 31 0.613123 0.199254 0.823681
+17 1 0 0.397177 0.000000 0.000000
+17 1 1 0.397759 0.000000 0.000000
+17 1 2 0.398315 0.000000 0.000000
+17 1 3 0.398484 0.000000 0.000000
+17 1 4 0.398687 0.000000 0.000000
+17 1 5 0.399119 0.000000 0.000000
+17 1 6 0.399858 0.000000 0.000000
+17 1 7 0.401924 0.000000 0.017734
+17 1 8 0.404922 0.000000 0.053227
+17 1 9 0.410713 0.000000 0.069568
+17 1 10 0.415882 0.000000 0.094967
+17 1 11 0.419687 0.000000 0.140294
+17 1 12 0.423713 0.000000 0.184916
+17 1 13 0.428105 0.000000 0.228361
+17 1 14 0.433415 0.000000 0.273217
+17 1 15 0.439904 0.000000 0.319885
+17 1 16 0.445579 0.000000 0.363012
+17 1 17 0.450441 0.000000 0.402599
+17 1 18 0.454808 0.000000 0.439710
+17 1 19 0.458792 0.000000 0.474897
+17 1 20 0.462919 0.000000 0.506829
+17 1 21 0.467131 0.000000 0.536808
+17 1 22 0.473411 0.000000 0.564164
+17 1 23 0.480629 0.000000 0.590327
+17 1 24 0.492558 0.000000 0.620192
+17 1 25 0.506057 0.000000 0.651291
+17 1 26 0.530111 0.000000 0.691375
+17 1 27 0.556601 0.000000 0.733534
+17 1 28 0.574596 0.000000 0.762182
+17 1 29 0.591379 0.012883 0.788899
+17 1 30 0.603542 0.111263 0.808510
+17 1 31 0.615398 0.211154 0.827648
+17 2 0 0.404292 0.000000 0.000000
+17 2 1 0.405173 0.000000 0.000000
+17 2 2 0.406011 0.000000 0.000000
+17 2 3 0.406208 0.000000 0.000000
+17 2 4 0.406434 0.000000 0.000000
+17 2 5 0.406866 0.000000 0.000000
+17 2 6 0.407583 0.000000 0.000000
+17 2 7 0.409533 0.000000 0.018941
+17 2 8 0.412444 0.000000 0.056243
+17 2 9 0.418238 0.000000 0.072668
+17 2 10 0.423419 0.000000 0.098254
+17 2 11 0.427249 0.000000 0.143992
+17 2 12 0.431289 0.000000 0.189187
+17 2 13 0.435677 0.000000 0.233475
+17 2 14 0.440848 0.000000 0.278909
+17 2 15 0.447025 0.000000 0.325814
+17 2 16 0.452523 0.000000 0.369604
+17 2 17 0.457342 0.000000 0.410277
+17 2 18 0.461666 0.000000 0.447915
+17 2 19 0.465604 0.000000 0.483193
+17 2 20 0.469727 0.000000 0.515477
+17 2 21 0.473961 0.000000 0.545965
+17 2 22 0.480074 0.000000 0.573130
+17 2 23 0.487040 0.000000 0.598784
+17 2 24 0.497444 0.000000 0.626937
+17 2 25 0.508994 0.000000 0.655924
+17 2 26 0.532527 0.000000 0.695478
+17 2 27 0.558825 0.000000 0.737471
+17 2 28 0.576797 0.000000 0.766114
+17 2 29 0.593579 0.024649 0.792850
+17 2 30 0.605797 0.123422 0.812505
+17 2 31 0.617711 0.223313 0.831688
+17 3 0 0.413597 0.000000 0.000000
+17 3 1 0.414478 0.000000 0.000000
+17 3 2 0.415343 0.000000 0.000000
+17 3 3 0.415974 0.000000 0.000000
+17 3 4 0.416581 0.000000 0.000000
+17 3 5 0.417013 0.000000 0.000000
+17 3 6 0.417704 0.000000 0.000000
+17 3 7 0.419519 0.000000 0.019854
+17 3 8 0.422313 0.000000 0.059345
+17 3 9 0.428048 0.000000 0.076356
+17 3 10 0.433222 0.000000 0.102536
+17 3 11 0.437160 0.000000 0.148890
+17 3 12 0.441241 0.000000 0.194885
+17 3 13 0.445561 0.000000 0.240280
+17 3 14 0.450549 0.000000 0.286428
+17 3 15 0.456396 0.000000 0.333543
+17 3 16 0.461685 0.000000 0.378215
+17 3 17 0.466417 0.000000 0.420444
+17 3 18 0.470702 0.000000 0.458787
+17 3 19 0.474641 0.000000 0.494107
+17 3 20 0.478709 0.000000 0.526896
+17 3 21 0.482855 0.000000 0.558167
+17 3 22 0.488673 0.000000 0.585038
+17 3 23 0.495250 0.000000 0.609909
+17 3 24 0.505126 0.000000 0.637428
+17 3 25 0.516103 0.000000 0.665829
+17 3 26 0.537870 0.000000 0.703381
+17 3 27 0.562127 0.000000 0.743045
+17 3 28 0.579844 0.000000 0.771379
+17 3 29 0.596626 0.040180 0.798093
+17 3 30 0.608762 0.139470 0.817698
+17 3 31 0.620589 0.239361 0.836830
+17 4 0 0.423794 0.000000 0.000000
+17 4 1 0.424666 0.000000 0.000000
+17 4 2 0.425548 0.000000 0.000000
+17 4 3 0.426577 0.000000 0.000000
+17 4 4 0.427542 0.000000 0.000000
+17 4 5 0.428060 0.000000 0.000000
+17 4 6 0.428797 0.000000 0.000000
+17 4 7 0.430484 0.000000 0.020153
+17 4 8 0.433164 0.000000 0.061735
+17 4 9 0.438822 0.000000 0.079983
+17 4 10 0.443976 0.000000 0.107221
+17 4 11 0.448019 0.000000 0.154241
+17 4 12 0.452137 0.000000 0.201105
+17 4 13 0.456379 0.000000 0.247710
+17 4 14 0.461170 0.000000 0.294644
+17 4 15 0.466667 0.000000 0.342001
+17 4 16 0.471729 0.000000 0.387644
+17 4 17 0.476357 0.000000 0.431572
+17 4 18 0.480600 0.000000 0.470695
+17 4 19 0.484544 0.000000 0.506078
+17 4 20 0.488555 0.000000 0.539398
+17 4 21 0.492606 0.000000 0.571480
+17 4 22 0.498116 0.000000 0.598068
+17 4 23 0.504289 0.000000 0.622158
+17 4 24 0.513678 0.000000 0.649064
+17 4 25 0.524140 0.000000 0.676908
+17 4 26 0.543887 0.000000 0.712196
+17 4 27 0.565776 0.000000 0.749202
+17 4 28 0.583177 0.000000 0.777168
+17 4 29 0.599938 0.057176 0.803843
+17 4 30 0.612003 0.157039 0.823401
+17 4 31 0.623755 0.256937 0.842485
+17 5 0 0.440237 0.000000 0.000000
+17 5 1 0.441041 0.000000 0.000000
+17 5 2 0.441868 0.000000 0.000000
+17 5 3 0.443033 0.000000 0.000000
+17 5 4 0.444202 0.000000 0.000000
+17 5 5 0.445406 0.000000 0.000000
+17 5 6 0.446688 0.000000 0.000000
+17 5 7 0.448307 0.000000 0.016155
+17 5 8 0.450886 0.000000 0.059147
+17 5 9 0.456341 0.000000 0.083187
+17 5 10 0.461384 0.000000 0.114724
+17 5 11 0.465524 0.000000 0.162757
+17 5 12 0.469643 0.000000 0.210979
+17 5 13 0.473730 0.000000 0.259516
+17 5 14 0.478221 0.000000 0.307742
+17 5 15 0.483232 0.000000 0.355570
+17 5 16 0.487945 0.000000 0.402800
+17 5 17 0.492358 0.000000 0.449434
+17 5 18 0.496530 0.000000 0.489857
+17 5 19 0.500513 0.000000 0.525450
+17 5 20 0.504447 0.000000 0.559482
+17 5 21 0.508351 0.000000 0.592577
+17 5 22 0.513468 0.000000 0.618949
+17 5 23 0.519135 0.000000 0.642266
+17 5 24 0.528318 0.000000 0.668712
+17 5 25 0.538672 0.000000 0.696202
+17 5 26 0.554616 0.000000 0.727392
+17 5 27 0.571850 0.000000 0.759436
+17 5 28 0.588516 0.000000 0.786636
+17 5 29 0.605101 0.084439 0.813144
+17 5 30 0.617174 0.185259 0.832672
+17 5 31 0.628946 0.285208 0.851734
+17 6 0 0.458696 0.000000 0.000000
+17 6 1 0.459453 0.000000 0.000000
+17 6 2 0.460242 0.000000 0.000000
+17 6 3 0.461517 0.000000 0.000000
+17 6 4 0.462856 0.000000 0.000000
+17 6 5 0.464642 0.000000 0.000000
+17 6 6 0.466421 0.000000 0.000000
+17 6 7 0.468165 0.000000 0.009124
+17 6 8 0.470775 0.000000 0.056397
+17 6 9 0.475983 0.000000 0.086831
+17 6 10 0.480882 0.000000 0.123101
+17 6 11 0.485103 0.000000 0.172207
+17 6 12 0.489218 0.000000 0.221890
+17 6 13 0.493157 0.000000 0.272536
+17 6 14 0.497326 0.000000 0.322277
+17 6 15 0.501793 0.000000 0.370857
+17 6 16 0.506098 0.000000 0.419659
+17 6 17 0.510241 0.000000 0.468685
+17 6 18 0.514313 0.000000 0.510596
+17 6 19 0.518330 0.000000 0.546972
+17 6 20 0.522186 0.000000 0.581778
+17 6 21 0.525946 0.000000 0.615643
+17 6 22 0.530688 0.000000 0.642083
+17 6 23 0.535877 0.000000 0.665147
+17 6 24 0.544653 0.000000 0.690934
+17 6 25 0.554625 0.000000 0.717628
+17 6 26 0.567437 0.000000 0.745382
+17 6 27 0.580905 0.000000 0.773380
+17 6 28 0.596309 0.012568 0.799231
+17 6 29 0.611991 0.129698 0.824776
+17 6 30 0.623501 0.224073 0.843652
+17 6 31 0.634733 0.316932 0.862084
+17 7 0 0.485894 0.000000 0.000000
+17 7 1 0.486690 0.000000 0.000000
+17 7 2 0.487516 0.000000 0.000000
+17 7 3 0.488791 0.000000 0.000000
+17 7 4 0.490146 0.000000 0.000000
+17 7 5 0.492069 0.000000 0.000000
+17 7 6 0.494137 0.000000 0.000000
+17 7 7 0.496838 0.000000 0.000000
+17 7 8 0.500057 0.000000 0.052953
+17 7 9 0.504830 0.000000 0.092386
+17 7 10 0.509436 0.002352 0.135259
+17 7 11 0.513674 0.003681 0.185703
+17 7 12 0.517756 0.005047 0.237300
+17 7 13 0.521579 0.006473 0.290817
+17 7 14 0.525334 0.007428 0.343038
+17 7 15 0.529002 0.007777 0.393592
+17 7 16 0.532650 0.007723 0.443899
+17 7 17 0.536279 0.007266 0.493959
+17 7 18 0.540131 0.006983 0.538161
+17 7 19 0.544156 0.006835 0.577807
+17 7 20 0.547931 0.007401 0.613663
+17 7 21 0.551555 0.008395 0.647246
+17 7 22 0.556007 0.011776 0.674976
+17 7 23 0.560835 0.016242 0.700045
+17 7 24 0.568339 0.029860 0.724303
+17 7 25 0.576736 0.046528 0.748292
+17 7 26 0.589323 0.078743 0.775480
+17 7 27 0.602878 0.114547 0.803406
+17 7 28 0.614739 0.181521 0.825381
+17 7 29 0.626357 0.252948 0.846506
+17 7 30 0.634835 0.308802 0.862041
+17 7 31 0.643103 0.363619 0.877204
+17 8 0 0.511640 0.077503 0.000000
+17 8 1 0.512478 0.079306 0.000000
+17 8 2 0.513343 0.081006 0.000000
+17 8 3 0.514610 0.081166 0.000000
+17 8 4 0.515975 0.081343 0.000000
+17 8 5 0.518019 0.081636 0.000000
+17 8 6 0.520319 0.082147 0.000000
+17 8 7 0.523734 0.083608 0.000000
+17 8 8 0.527407 0.085917 0.050006
+17 8 9 0.531856 0.090768 0.096664
+17 8 10 0.536202 0.094972 0.145135
+17 8 11 0.540319 0.097752 0.197593
+17 8 12 0.544216 0.100536 0.251412
+17 8 13 0.547747 0.103327 0.307502
+17 8 14 0.551029 0.105341 0.362041
+17 8 15 0.553988 0.106355 0.414588
+17 8 16 0.557049 0.106751 0.466443
+17 8 17 0.560212 0.106529 0.517608
+17 8 18 0.563827 0.106479 0.563755
+17 8 19 0.567793 0.106562 0.605999
+17 8 20 0.571421 0.107714 0.642843
+17 8 21 0.574846 0.109508 0.676446
+17 8 22 0.578947 0.115232 0.705114
+17 8 23 0.583356 0.122744 0.731538
+17 8 24 0.589674 0.144619 0.754521
+17 8 25 0.596630 0.171282 0.776358
+17 8 26 0.608623 0.222769 0.802607
+17 8 27 0.621779 0.279985 0.829875
+17 8 28 0.630671 0.318960 0.848514
+17 8 29 0.638953 0.355330 0.865920
+17 8 30 0.644948 0.381748 0.878655
+17 8 31 0.650791 0.407503 0.891078
+17 9 0 0.533034 0.102289 0.000000
+17 9 1 0.533920 0.103288 0.000000
+17 9 2 0.534828 0.104325 0.000000
+17 9 3 0.536067 0.105926 0.000000
+17 9 4 0.537417 0.107730 0.000000
+17 9 5 0.539539 0.110955 0.000000
+17 9 6 0.541901 0.114549 0.000000
+17 9 7 0.545299 0.119737 0.000000
+17 9 8 0.548961 0.124674 0.048549
+17 9 9 0.553419 0.128859 0.097116
+17 9 10 0.557604 0.133368 0.148161
+17 9 11 0.561187 0.138592 0.204662
+17 9 12 0.564444 0.143601 0.261635
+17 9 13 0.567156 0.148252 0.319396
+17 9 14 0.569785 0.152088 0.375771
+17 9 15 0.572307 0.154876 0.430364
+17 9 16 0.574989 0.157208 0.483902
+17 9 17 0.577830 0.159085 0.536383
+17 9 18 0.581156 0.160682 0.583435
+17 9 19 0.584860 0.162059 0.626264
+17 9 20 0.588146 0.164128 0.663908
+17 9 21 0.591181 0.166610 0.698439
+17 9 22 0.594753 0.173167 0.726988
+17 9 23 0.598569 0.181576 0.752817
+17 9 24 0.603960 0.202078 0.775284
+17 9 25 0.609876 0.226613 0.796629
+17 9 26 0.620165 0.273800 0.820825
+17 9 27 0.631464 0.326214 0.845679
+17 9 28 0.639110 0.361859 0.862598
+17 9 29 0.646235 0.395108 0.878385
+17 9 30 0.651401 0.419343 0.889941
+17 9 31 0.656436 0.442978 0.901214
+17 10 0 0.555094 0.134226 0.000000
+17 10 1 0.556007 0.134989 0.000000
+17 10 2 0.556937 0.135874 0.000000
+17 10 3 0.558129 0.138576 0.000000
+17 10 4 0.559440 0.141608 0.000000
+17 10 5 0.561577 0.146951 0.000000
+17 10 6 0.563944 0.152627 0.000000
+17 10 7 0.567306 0.159742 0.000000
+17 10 8 0.570911 0.166219 0.029288
+17 10 9 0.575250 0.170783 0.090452
+17 10 10 0.579210 0.176157 0.151244
+17 10 11 0.582335 0.183313 0.211216
+17 10 12 0.585045 0.190144 0.271055
+17 10 13 0.587064 0.196432 0.330673
+17 10 14 0.589139 0.201905 0.389112
+17 10 15 0.591287 0.206331 0.446038
+17 10 16 0.593598 0.210454 0.501307
+17 10 17 0.596073 0.214273 0.554922
+17 10 18 0.599029 0.217369 0.602900
+17 10 19 0.602360 0.219902 0.646494
+17 10 20 0.605140 0.222809 0.684855
+17 10 21 0.607589 0.225941 0.720077
+17 10 22 0.610500 0.232795 0.748625
+17 10 23 0.613622 0.241342 0.774141
+17 10 24 0.618124 0.260450 0.796038
+17 10 25 0.623086 0.283080 0.816729
+17 10 26 0.631623 0.325690 0.838714
+17 10 27 0.640986 0.372912 0.860997
+17 10 28 0.647386 0.405327 0.876241
+17 10 29 0.653362 0.435628 0.890480
+17 10 30 0.657774 0.457994 0.900999
+17 10 31 0.662081 0.479832 0.911270
+17 11 0 0.578621 0.181894 0.000000
+17 11 1 0.579514 0.183671 0.000000
+17 11 2 0.580420 0.185527 0.000000
+17 11 3 0.581525 0.188584 0.000000
+17 11 4 0.582743 0.191968 0.000000
+17 11 5 0.584753 0.197635 0.000000
+17 11 6 0.587002 0.203192 0.000000
+17 11 7 0.590285 0.208272 0.000000
+17 11 8 0.593731 0.213894 0.000000
+17 11 9 0.597673 0.221143 0.068138
+17 11 10 0.601267 0.228613 0.154451
+17 11 11 0.604098 0.236573 0.216637
+17 11 12 0.606468 0.244337 0.278709
+17 11 13 0.608069 0.251775 0.340593
+17 11 14 0.609807 0.258480 0.401600
+17 11 15 0.611720 0.264243 0.461483
+17 11 16 0.613681 0.269833 0.518596
+17 11 17 0.615690 0.275251 0.572942
+17 11 18 0.618098 0.279522 0.621891
+17 11 19 0.620817 0.282901 0.666644
+17 11 20 0.622728 0.286478 0.705544
+17 11 21 0.624154 0.290175 0.740932
+17 11 22 0.626117 0.296150 0.769742
+17 11 23 0.628325 0.303162 0.795560
+17 11 24 0.632022 0.320829 0.816774
+17 11 25 0.636216 0.342049 0.836452
+17 11 26 0.642896 0.379473 0.855878
+17 11 27 0.650149 0.420638 0.875247
+17 11 28 0.655300 0.450049 0.888911
+17 11 29 0.660150 0.477780 0.901761
+17 11 30 0.663972 0.498968 0.911556
+17 11 31 0.667726 0.519720 0.921148
+17 12 0 0.602492 0.230658 0.000000
+17 12 1 0.603373 0.233173 0.000000
+17 12 2 0.604267 0.235744 0.000000
+17 12 3 0.605360 0.239144 0.000000
+17 12 4 0.606563 0.242882 0.000000
+17 12 5 0.608530 0.248980 0.000000
+17 12 6 0.610702 0.254945 0.000000
+17 12 7 0.613760 0.260335 0.000000
+17 12 8 0.616938 0.266640 0.000000
+17 12 9 0.620477 0.275691 0.050557
+17 12 10 0.623668 0.284754 0.154942
+17 12 11 0.626093 0.293843 0.220289
+17 12 12 0.627973 0.302770 0.285375
+17 12 13 0.628945 0.311428 0.350025
+17 12 14 0.630145 0.319392 0.413638
+17 12 15 0.631639 0.326466 0.475917
+17 12 16 0.633107 0.333293 0.534864
+17 12 17 0.634551 0.339875 0.590481
+17 12 18 0.636307 0.345043 0.640498
+17 12 19 0.638307 0.349111 0.686158
+17 12 20 0.639329 0.353118 0.725677
+17 12 21 0.639763 0.357088 0.761511
+17 12 22 0.640769 0.362479 0.790307
+17 12 23 0.642037 0.368516 0.815904
+17 12 24 0.644887 0.384503 0.836434
+17 12 25 0.648266 0.403807 0.855276
+17 12 26 0.653316 0.436355 0.872613
+17 12 27 0.658753 0.471960 0.889604
+17 12 28 0.662808 0.498250 0.901872
+17 12 29 0.666667 0.523209 0.913466
+17 12 30 0.669864 0.542692 0.922462
+17 12 31 0.673016 0.561810 0.931284
+17 13 0 0.626938 0.281247 0.000000
+17 13 1 0.627819 0.284044 0.000000
+17 13 2 0.628720 0.286899 0.000000
+17 13 3 0.629929 0.290624 0.000000
+17 13 4 0.631245 0.294722 0.000000
+17 13 5 0.633308 0.301427 0.000000
+17 13 6 0.635471 0.308676 0.000000
+17 13 7 0.638063 0.318284 0.000000
+17 13 8 0.640789 0.327837 0.000000
+17 13 9 0.643919 0.337222 0.040867
+17 13 10 0.646643 0.347036 0.150905
+17 13 11 0.648475 0.357796 0.220993
+17 13 12 0.649616 0.368269 0.290393
+17 13 13 0.649606 0.378264 0.358647
+17 13 14 0.649934 0.387535 0.424926
+17 13 15 0.650700 0.395873 0.488666
+17 13 16 0.651438 0.403553 0.549430
+17 13 17 0.652151 0.410574 0.607219
+17 13 18 0.653084 0.416175 0.658461
+17 13 19 0.654189 0.420671 0.704614
+17 13 20 0.654285 0.424707 0.744886
+17 13 21 0.653776 0.428468 0.781629
+17 13 22 0.653813 0.433764 0.809955
+17 13 23 0.654098 0.439759 0.834454
+17 13 24 0.656031 0.453667 0.854302
+17 13 25 0.658515 0.470215 0.872601
+17 13 26 0.662317 0.498402 0.888632
+17 13 27 0.666424 0.529275 0.904139
+17 13 28 0.669641 0.552251 0.915317
+17 13 29 0.672732 0.574098 0.925877
+17 13 30 0.675243 0.590998 0.933946
+17 13 31 0.677715 0.607569 0.941849
+17 14 0 0.651451 0.339628 0.000000
+17 14 1 0.652178 0.342461 0.000000
+17 14 2 0.652924 0.345352 0.000000
+17 14 3 0.653939 0.349127 0.000000
+17 14 4 0.655038 0.353283 0.000000
+17 14 5 0.656721 0.360104 0.000000
+17 14 6 0.658498 0.367833 0.000000
+17 14 7 0.660679 0.379490 0.000000
+17 14 8 0.662958 0.390804 0.000000
+17 14 9 0.665533 0.401085 0.030550
+17 14 10 0.667671 0.411954 0.142309
+17 14 11 0.668847 0.424115 0.218957
+17 14 12 0.669233 0.435858 0.293636
+17 14 13 0.668304 0.446903 0.365031
+17 14 14 0.667700 0.457241 0.433959
+17 14 15 0.667514 0.466670 0.499714
+17 14 16 0.667351 0.474907 0.562113
+17 14 17 0.667210 0.481952 0.621155
+17 14 18 0.667139 0.487801 0.673518
+17 14 19 0.667123 0.492720 0.720687
+17 14 20 0.666329 0.496728 0.761648
+17 14 21 0.665069 0.500188 0.798885
+17 14 22 0.664464 0.505154 0.827323
+17 14 23 0.664158 0.510804 0.851762
+17 14 24 0.665423 0.522823 0.871106
+17 14 25 0.667212 0.536965 0.888751
+17 14 26 0.670058 0.561009 0.903495
+17 14 27 0.673149 0.587338 0.917570
+17 14 28 0.675616 0.606775 0.927600
+17 14 29 0.677994 0.625226 0.937053
+17 14 30 0.679891 0.639606 0.944260
+17 14 31 0.681756 0.653715 0.951317
+17 15 0 0.676050 0.408028 0.000000
+17 15 1 0.676427 0.410579 0.000000
+17 15 2 0.676807 0.413186 0.000000
+17 15 3 0.677230 0.416658 0.000000
+17 15 4 0.677686 0.420485 0.000000
+17 15 5 0.678378 0.426793 0.000000
+17 15 6 0.679286 0.433967 0.000000
+17 15 7 0.681125 0.444884 0.000000
+17 15 8 0.682963 0.456048 0.000000
+17 15 9 0.684799 0.467949 0.019427
+17 15 10 0.686197 0.480261 0.127850
+17 15 11 0.686633 0.493478 0.213400
+17 15 12 0.686243 0.506135 0.294597
+17 15 13 0.684478 0.517859 0.368540
+17 15 14 0.682864 0.528959 0.440094
+17 15 15 0.681442 0.539255 0.508576
+17 15 16 0.680155 0.547669 0.572374
+17 15 17 0.679002 0.554201 0.631489
+17 15 18 0.677695 0.560062 0.684835
+17 15 19 0.676268 0.565400 0.733697
+17 15 20 0.674629 0.569303 0.775266
+17 15 21 0.672863 0.572344 0.812461
+17 15 22 0.672041 0.576677 0.841762
+17 15 23 0.671647 0.581597 0.867474
+17 15 24 0.672562 0.591968 0.886540
+17 15 25 0.673913 0.604156 0.903391
+17 15 26 0.676179 0.624337 0.916875
+17 15 27 0.678657 0.646363 0.929582
+17 15 28 0.680487 0.661970 0.938390
+17 15 29 0.682224 0.676661 0.946642
+17 15 30 0.683599 0.688603 0.953068
+17 15 31 0.684950 0.700361 0.959374
+17 16 0 0.696899 0.468052 0.000000
+17 16 1 0.697169 0.470805 0.000000
+17 16 2 0.697439 0.473624 0.000000
+17 16 3 0.697711 0.477430 0.000000
+17 16 4 0.698006 0.481616 0.000000
+17 16 5 0.698474 0.488473 0.000000
+17 16 6 0.699088 0.496095 0.000000
+17 16 7 0.700333 0.507034 0.000000
+17 16 8 0.701513 0.518475 0.000000
+17 16 9 0.702497 0.531420 0.000000
+17 16 10 0.703049 0.544653 0.081981
+17 16 11 0.702647 0.558517 0.194342
+17 16 12 0.701299 0.571789 0.293399
+17 16 13 0.698372 0.584073 0.370280
+17 16 14 0.695621 0.595553 0.444317
+17 16 15 0.693095 0.606001 0.514694
+17 16 16 0.690765 0.614802 0.579976
+17 16 17 0.688630 0.621954 0.640161
+17 16 18 0.686311 0.628124 0.694519
+17 16 19 0.683847 0.633530 0.744347
+17 16 20 0.681603 0.637583 0.786729
+17 16 21 0.679492 0.640823 0.824644
+17 16 22 0.678394 0.644690 0.854503
+17 16 23 0.677757 0.648843 0.880701
+17 16 24 0.678156 0.657459 0.899504
+17 16 25 0.678900 0.667564 0.915842
+17 16 26 0.680552 0.684019 0.928330
+17 16 27 0.682413 0.701940 0.939930
+17 16 28 0.683682 0.714287 0.947805
+17 16 29 0.684865 0.725839 0.955148
+17 16 30 0.685915 0.735729 0.960966
+17 16 31 0.686955 0.745509 0.966681
+17 17 0 0.713999 0.519698 0.000000
+17 17 1 0.714404 0.523140 0.000000
+17 17 2 0.714820 0.526666 0.000000
+17 17 3 0.715382 0.531442 0.000000
+17 17 4 0.716000 0.536678 0.000000
+17 17 5 0.717010 0.545142 0.000000
+17 17 6 0.717905 0.554217 0.000000
+17 17 7 0.718303 0.565938 0.000000
+17 17 8 0.718607 0.578084 0.000000
+17 17 9 0.718629 0.591499 0.000000
+17 17 10 0.718226 0.605130 0.004703
+17 17 11 0.716890 0.619234 0.161785
+17 17 12 0.714400 0.632820 0.290041
+17 17 13 0.709985 0.645544 0.370252
+17 17 14 0.705972 0.657025 0.446627
+17 17 15 0.702475 0.666909 0.518070
+17 17 16 0.699182 0.676304 0.584918
+17 17 17 0.696093 0.685209 0.647171
+17 17 18 0.692984 0.691988 0.702569
+17 17 19 0.689860 0.697112 0.752636
+17 17 20 0.687252 0.701568 0.796035
+17 17 21 0.684954 0.705625 0.835433
+17 17 22 0.683525 0.709194 0.865548
+17 17 23 0.682490 0.712543 0.891442
+17 17 24 0.682207 0.719298 0.909996
+17 17 25 0.682175 0.727189 0.926104
+17 17 26 0.683176 0.740055 0.937862
+17 17 27 0.684416 0.754069 0.948615
+17 17 28 0.685199 0.763726 0.955846
+17 17 29 0.685917 0.772760 0.962573
+17 17 30 0.686837 0.780986 0.967951
+17 17 31 0.687770 0.789158 0.973239
+17 18 0 0.729680 0.570558 0.000000
+17 18 1 0.729921 0.573902 0.000000
+17 18 2 0.730166 0.577329 0.000000
+17 18 3 0.730484 0.582001 0.000000
+17 18 4 0.730862 0.587150 0.000000
+17 18 5 0.731661 0.595641 0.000000
+17 18 6 0.732393 0.604948 0.000000
+17 18 7 0.732830 0.617788 0.000000
+17 18 8 0.732962 0.630858 0.000000
+17 18 9 0.732180 0.644614 0.000000
+17 18 10 0.730825 0.658643 0.000000
+17 18 11 0.728210 0.673275 0.141667
+17 18 12 0.724526 0.687204 0.286540
+17 18 13 0.719060 0.699962 0.369401
+17 18 14 0.714019 0.711629 0.447853
+17 18 15 0.709522 0.721896 0.520636
+17 18 16 0.705323 0.731483 0.588642
+17 18 17 0.701423 0.740391 0.651870
+17 18 18 0.697618 0.747571 0.708303
+17 18 19 0.693887 0.753406 0.759451
+17 18 20 0.690891 0.757981 0.803429
+17 18 21 0.688337 0.761801 0.843105
+17 18 22 0.686666 0.765264 0.873616
+17 18 23 0.685397 0.768567 0.899959
+17 18 24 0.684719 0.773998 0.918431
+17 18 25 0.684237 0.780139 0.934279
+17 18 26 0.684814 0.790052 0.945430
+17 18 27 0.685634 0.800835 0.955496
+17 18 28 0.686143 0.808497 0.962291
+17 18 29 0.686608 0.815714 0.968620
+17 18 30 0.687305 0.822152 0.973599
+17 18 31 0.688016 0.828540 0.978488
+17 19 0 0.744257 0.620806 0.000000
+17 19 1 0.744100 0.623441 0.000000
+17 19 2 0.743932 0.626144 0.000000
+17 19 3 0.743589 0.629875 0.000000
+17 19 4 0.743289 0.634051 0.000000
+17 19 5 0.743292 0.641342 0.000000
+17 19 6 0.743513 0.649931 0.000000
+17 19 7 0.744679 0.664152 0.000000
+17 19 8 0.745187 0.678316 0.000000
+17 19 9 0.743725 0.692311 0.000000
+17 19 10 0.741419 0.706741 0.000000
+17 19 11 0.737256 0.722125 0.131225
+17 19 12 0.732338 0.736418 0.282927
+17 19 13 0.726161 0.748894 0.367909
+17 19 14 0.720272 0.760892 0.448234
+17 19 15 0.714753 0.772278 0.522573
+17 19 16 0.709694 0.781746 0.591419
+17 19 17 0.705093 0.789295 0.654772
+17 19 18 0.700664 0.796714 0.712235
+17 19 19 0.696369 0.804032 0.765117
+17 19 20 0.692967 0.808504 0.809334
+17 19 21 0.690103 0.811268 0.848353
+17 19 22 0.688261 0.814775 0.879368
+17 19 23 0.686885 0.818620 0.906746
+17 19 24 0.686033 0.823146 0.925265
+17 19 25 0.685357 0.827897 0.940831
+17 19 26 0.685683 0.835352 0.951470
+17 19 27 0.686241 0.843429 0.960973
+17 19 28 0.686641 0.849639 0.967496
+17 19 29 0.687019 0.855581 0.973594
+17 19 30 0.687418 0.860138 0.978206
+17 19 31 0.687819 0.864602 0.982719
+17 20 0 0.754244 0.657051 0.000000
+17 20 1 0.754162 0.659993 0.000000
+17 20 2 0.754068 0.663010 0.000000
+17 20 3 0.753811 0.667139 0.000000
+17 20 4 0.753594 0.671744 0.000000
+17 20 5 0.753663 0.679674 0.000000
+17 20 6 0.753816 0.688747 0.000000
+17 20 7 0.754337 0.702772 0.000000
+17 20 8 0.754220 0.716965 0.000000
+17 20 9 0.752192 0.731665 0.000000
+17 20 10 0.749200 0.746611 0.000000
+17 20 11 0.744087 0.762101 0.125933
+17 20 12 0.738313 0.776553 0.280036
+17 20 13 0.731437 0.789275 0.367129
+17 20 14 0.724920 0.801225 0.449138
+17 20 15 0.718866 0.812181 0.524608
+17 20 16 0.713328 0.821832 0.594650
+17 20 17 0.708307 0.830178 0.659262
+17 20 18 0.703404 0.837737 0.717330
+17 20 19 0.698593 0.844684 0.770308
+17 20 20 0.694849 0.849312 0.814831
+17 20 21 0.691746 0.852549 0.854281
+17 20 22 0.689690 0.855921 0.885119
+17 20 23 0.688109 0.859356 0.912043
+17 20 24 0.687038 0.862903 0.930335
+17 20 25 0.686137 0.866488 0.945750
+17 20 26 0.686076 0.871600 0.956009
+17 20 27 0.686209 0.877066 0.965078
+17 20 28 0.686379 0.881434 0.971317
+17 20 29 0.686554 0.885646 0.977152
+17 20 30 0.686832 0.889223 0.981560
+17 20 31 0.687116 0.892758 0.985874
+17 21 0 0.761475 0.684892 0.000000
+17 21 1 0.761752 0.688754 0.000000
+17 21 2 0.762028 0.692707 0.000000
+17 21 3 0.762304 0.698038 0.000000
+17 21 4 0.762627 0.703911 0.000000
+17 21 5 0.763277 0.713585 0.000000
+17 21 6 0.763627 0.723861 0.000000
+17 21 7 0.762680 0.736746 0.000000
+17 21 8 0.761339 0.750330 0.000000
+17 21 9 0.758814 0.766012 0.000000
+17 21 10 0.755295 0.781546 0.000000
+17 21 11 0.749588 0.796754 0.123731
+17 21 12 0.743184 0.811241 0.277577
+17 21 13 0.735617 0.824527 0.366778
+17 21 14 0.728605 0.836200 0.450356
+17 21 15 0.722308 0.845797 0.526703
+17 21 16 0.716522 0.855814 0.598153
+17 21 17 0.711246 0.866249 0.664707
+17 21 18 0.705958 0.873888 0.723124
+17 21 19 0.700662 0.879353 0.775213
+17 21 20 0.696615 0.884293 0.820081
+17 21 21 0.693317 0.888918 0.860617
+17 21 22 0.691019 0.892049 0.890869
+17 21 23 0.689176 0.894501 0.916446
+17 21 24 0.687857 0.897027 0.934347
+17 21 25 0.686713 0.899577 0.949689
+17 21 26 0.686182 0.902418 0.959646
+17 21 27 0.685793 0.905327 0.968360
+17 21 28 0.685660 0.907622 0.974308
+17 21 29 0.685565 0.909829 0.979861
+17 21 30 0.685825 0.912968 0.984164
+17 21 31 0.686110 0.916169 0.988383
+17 22 0 0.769278 0.709288 0.000000
+17 22 1 0.769286 0.713099 0.000000
+17 22 2 0.769290 0.717000 0.000000
+17 22 3 0.769232 0.722254 0.000000
+17 22 4 0.769176 0.728021 0.000000
+17 22 5 0.769126 0.737385 0.000000
+17 22 6 0.768879 0.747541 0.000000
+17 22 7 0.767780 0.761133 0.000000
+17 22 8 0.766085 0.775190 0.000000
+17 22 9 0.762603 0.790641 0.000000
+17 22 10 0.758285 0.806058 0.000000
+17 22 11 0.752126 0.821401 0.126596
+17 22 12 0.745482 0.835877 0.282125
+17 22 13 0.738032 0.848908 0.372179
+17 22 14 0.731050 0.860684 0.456482
+17 22 15 0.724670 0.870848 0.533390
+17 22 16 0.718588 0.880856 0.604847
+17 22 17 0.712806 0.890711 0.670852
+17 22 18 0.707129 0.898154 0.728893
+17 22 19 0.701533 0.903722 0.780740
+17 22 20 0.697144 0.908617 0.825070
+17 22 21 0.693479 0.913109 0.864890
+17 22 22 0.691051 0.916275 0.894886
+17 22 23 0.689186 0.918837 0.920415
+17 22 24 0.687864 0.920991 0.938056
+17 22 25 0.686724 0.923010 0.953067
+17 22 26 0.686228 0.925002 0.962597
+17 22 27 0.685882 0.926989 0.970862
+17 22 28 0.685668 0.928507 0.976620
+17 22 29 0.685474 0.929958 0.982021
+17 22 30 0.685654 0.932272 0.986165
+17 22 31 0.685859 0.934643 0.990225
+17 23 0 0.777341 0.732118 0.000000
+17 23 1 0.776796 0.735437 0.000000
+17 23 2 0.776235 0.738836 0.000000
+17 23 3 0.775449 0.743432 0.000000
+17 23 4 0.774595 0.748467 0.000000
+17 23 5 0.773263 0.756588 0.000000
+17 23 6 0.772059 0.766024 0.000000
+17 23 7 0.771406 0.781163 0.000000
+17 23 8 0.769754 0.796184 0.000000
+17 23 9 0.765106 0.810853 0.000000
+17 23 10 0.759864 0.825834 0.000000
+17 23 11 0.753316 0.841501 0.131763
+17 23 12 0.746611 0.855944 0.289858
+17 23 13 0.739646 0.868347 0.380194
+17 23 14 0.732933 0.880401 0.464839
+17 23 15 0.726541 0.892005 0.542166
+17 23 16 0.720143 0.901836 0.612992
+17 23 17 0.713740 0.909895 0.677317
+17 23 18 0.707670 0.917016 0.734651
+17 23 19 0.701860 0.923409 0.786550
+17 23 20 0.697111 0.928099 0.829940
+17 23 21 0.693000 0.931766 0.868226
+17 23 22 0.690493 0.935090 0.898115
+17 23 23 0.688715 0.938259 0.924187
+17 23 24 0.687502 0.940337 0.941627
+17 23 25 0.686478 0.942053 0.956189
+17 23 26 0.686247 0.943843 0.965236
+17 23 27 0.686200 0.945651 0.973009
+17 23 28 0.686007 0.946982 0.978624
+17 23 29 0.685793 0.948246 0.983930
+17 23 30 0.685863 0.949558 0.987893
+17 23 31 0.685952 0.950874 0.991765
+17 24 0 0.783837 0.748966 0.000000
+17 24 1 0.782753 0.752900 0.000000
+17 24 2 0.781662 0.756894 0.000000
+17 24 3 0.780461 0.761796 0.000000
+17 24 4 0.779203 0.767068 0.000000
+17 24 5 0.777551 0.774932 0.000000
+17 24 6 0.775854 0.783999 0.000000
+17 24 7 0.773964 0.798277 0.000000
+17 24 8 0.771368 0.812640 0.000000
+17 24 9 0.766655 0.827254 0.000000
+17 24 10 0.761261 0.842052 0.000000
+17 24 11 0.754367 0.857252 0.146030
+17 24 12 0.747536 0.871324 0.310255
+17 24 13 0.740809 0.883515 0.398821
+17 24 14 0.734228 0.895378 0.481800
+17 24 15 0.727833 0.906816 0.557594
+17 24 16 0.721430 0.916403 0.626621
+17 24 17 0.715017 0.924138 0.688881
+17 24 18 0.708979 0.931014 0.744624
+17 24 19 0.703231 0.937222 0.795297
+17 24 20 0.698373 0.941713 0.837171
+17 24 21 0.694048 0.945174 0.873765
+17 24 22 0.691410 0.948236 0.902626
+17 24 23 0.689537 0.951117 0.927973
+17 24 24 0.688312 0.952985 0.944882
+17 24 25 0.687301 0.954516 0.958979
+17 24 26 0.687122 0.956178 0.967680
+17 24 27 0.687134 0.957870 0.975135
+17 24 28 0.687065 0.959118 0.980566
+17 24 29 0.686984 0.960303 0.985708
+17 24 30 0.687035 0.961260 0.989535
+17 24 31 0.687095 0.962203 0.993274
+17 25 0 0.789810 0.763822 0.000000
+17 25 1 0.788193 0.768738 0.000000
+17 25 2 0.786582 0.773693 0.000000
+17 25 3 0.785070 0.779222 0.000000
+17 25 4 0.783541 0.785052 0.000000
+17 25 5 0.781889 0.792989 0.000000
+17 25 6 0.779855 0.801804 0.000000
+17 25 7 0.776166 0.814420 0.000000
+17 25 8 0.772297 0.827583 0.000000
+17 25 9 0.767886 0.842386 0.000000
+17 25 10 0.762596 0.857084 0.000000
+17 25 11 0.755372 0.871553 0.163330
+17 25 12 0.748392 0.885141 0.334873
+17 25 13 0.741821 0.897260 0.420986
+17 25 14 0.735327 0.908775 0.501629
+17 25 15 0.728933 0.919513 0.575239
+17 25 16 0.722627 0.928832 0.642078
+17 25 17 0.716409 0.936734 0.702145
+17 25 18 0.710543 0.943390 0.756000
+17 25 19 0.704951 0.949076 0.805024
+17 25 20 0.700066 0.953371 0.845190
+17 25 21 0.695606 0.956833 0.880040
+17 25 22 0.692818 0.959493 0.907566
+17 25 23 0.690791 0.961788 0.931762
+17 25 24 0.689511 0.963401 0.948032
+17 25 25 0.688481 0.964785 0.961659
+17 25 26 0.688282 0.966344 0.970059
+17 25 27 0.688275 0.967942 0.977254
+17 25 28 0.688363 0.969141 0.982488
+17 25 29 0.688466 0.970283 0.987441
+17 25 30 0.688528 0.971102 0.991148
+17 25 31 0.688589 0.971899 0.994772
+17 26 0 0.793872 0.772904 0.000000
+17 26 1 0.792210 0.777946 0.000000
+17 26 2 0.790534 0.783059 0.000000
+17 26 3 0.788657 0.789240 0.000000
+17 26 4 0.786697 0.795847 0.000000
+17 26 5 0.784162 0.805429 0.000000
+17 26 6 0.781344 0.815519 0.000000
+17 26 7 0.777302 0.827806 0.000000
+17 26 8 0.773081 0.840594 0.000000
+17 26 9 0.768323 0.854879 0.000000
+17 26 10 0.762929 0.869054 0.000000
+17 26 11 0.756133 0.882988 0.185329
+17 26 12 0.749392 0.896121 0.366111
+17 26 13 0.742740 0.907920 0.448922
+17 26 14 0.736186 0.918905 0.526233
+17 26 15 0.729759 0.928841 0.596472
+17 26 16 0.723586 0.937593 0.660088
+17 26 17 0.717666 0.945162 0.717080
+17 26 18 0.712218 0.951564 0.768943
+17 26 19 0.707137 0.957058 0.816817
+17 26 20 0.702458 0.961102 0.854936
+17 26 21 0.698021 0.964275 0.887202
+17 26 22 0.695220 0.966717 0.913142
+17 26 23 0.693163 0.968826 0.936206
+17 26 24 0.691874 0.970359 0.952012
+17 26 25 0.690840 0.971699 0.965398
+17 26 26 0.690559 0.972848 0.972831
+17 26 27 0.690452 0.973953 0.978890
+17 26 28 0.690510 0.975084 0.983884
+17 26 29 0.690591 0.976218 0.988726
+17 26 30 0.690690 0.977010 0.992406
+17 26 31 0.690789 0.977780 0.996008
+17 27 0 0.797494 0.780655 0.000000
+17 27 1 0.795899 0.785624 0.000000
+17 27 2 0.794263 0.790710 0.000000
+17 27 3 0.792007 0.797550 0.000000
+17 27 4 0.789581 0.804983 0.000000
+17 27 5 0.785959 0.816573 0.000000
+17 27 6 0.782254 0.828290 0.000000
+17 27 7 0.778192 0.840556 0.000000
+17 27 8 0.773832 0.853158 0.000000
+17 27 9 0.768577 0.866764 0.000000
+17 27 10 0.763030 0.880319 0.000000
+17 27 11 0.756839 0.893760 0.208413
+17 27 12 0.750424 0.906445 0.398876
+17 27 13 0.743636 0.917869 0.478191
+17 27 14 0.736989 0.928281 0.551939
+17 27 15 0.730523 0.937392 0.618533
+17 27 16 0.724491 0.945508 0.678686
+17 27 17 0.718893 0.952627 0.732400
+17 27 18 0.713919 0.958768 0.782247
+17 27 19 0.709431 0.964147 0.829087
+17 27 20 0.705011 0.967926 0.865082
+17 27 21 0.700633 0.970744 0.894569
+17 27 22 0.697851 0.973010 0.918865
+17 27 23 0.695794 0.975026 0.940802
+17 27 24 0.694505 0.976519 0.956184
+17 27 25 0.693471 0.977838 0.969383
+17 27 26 0.693094 0.978507 0.975693
+17 27 27 0.692868 0.979027 0.980415
+17 27 28 0.692852 0.980084 0.985159
+17 27 29 0.692866 0.981218 0.989907
+17 27 30 0.693005 0.982011 0.993581
+17 27 31 0.693152 0.982781 0.997183
+17 28 0 0.800009 0.786051 0.000000
+17 28 1 0.798423 0.791075 0.000000
+17 28 2 0.796792 0.796214 0.000000
+17 28 3 0.794489 0.803091 0.000000
+17 28 4 0.791997 0.810619 0.000000
+17 28 5 0.788179 0.822707 0.000000
+17 28 6 0.784177 0.835073 0.000000
+17 28 7 0.779374 0.848645 0.000000
+17 28 8 0.774345 0.862129 0.000000
+17 28 9 0.768635 0.875347 0.000000
+17 28 10 0.762945 0.888488 0.040965
+17 28 11 0.757299 0.901457 0.257642
+17 28 12 0.751212 0.913736 0.421962
+17 28 13 0.744390 0.924866 0.499022
+17 28 14 0.737695 0.934896 0.570375
+17 28 15 0.731165 0.943511 0.634392
+17 28 16 0.725104 0.951268 0.692692
+17 28 17 0.719511 0.958167 0.745274
+17 28 18 0.714836 0.964065 0.793489
+17 28 19 0.710874 0.969183 0.838308
+17 28 20 0.706778 0.972824 0.872979
+17 28 21 0.702603 0.975579 0.901562
+17 28 22 0.699814 0.977673 0.924599
+17 28 23 0.697656 0.979468 0.945115
+17 28 24 0.696328 0.980889 0.959693
+17 28 25 0.695277 0.982187 0.972292
+17 28 26 0.694885 0.982793 0.978355
+17 28 27 0.694644 0.983240 0.982909
+17 28 28 0.694506 0.983984 0.986902
+17 28 29 0.694383 0.984770 0.990816
+17 28 30 0.694519 0.985541 0.994420
+17 28 31 0.694672 0.986311 0.998004
+17 29 0 0.802367 0.791111 0.000000
+17 29 1 0.800781 0.796207 0.000000
+17 29 2 0.799149 0.801411 0.000000
+17 29 3 0.796846 0.808236 0.000000
+17 29 4 0.794346 0.815755 0.000000
+17 29 5 0.790461 0.828125 0.000000
+17 29 6 0.786245 0.841000 0.000000
+17 29 7 0.780598 0.856067 0.000000
+17 29 8 0.774823 0.870586 0.000000
+17 29 9 0.768665 0.883459 0.017739
+17 29 10 0.762834 0.896215 0.142698
+17 29 11 0.757724 0.908714 0.310606
+17 29 12 0.751965 0.920594 0.443666
+17 29 13 0.745123 0.931441 0.518648
+17 29 14 0.738388 0.941116 0.587773
+17 29 15 0.731790 0.949283 0.649366
+17 29 16 0.725675 0.956722 0.706042
+17 29 17 0.720043 0.963432 0.757799
+17 29 18 0.715641 0.969089 0.804437
+17 29 19 0.712195 0.973925 0.847093
+17 29 20 0.708433 0.977447 0.880555
+17 29 21 0.704481 0.980181 0.908501
+17 29 22 0.701682 0.982104 0.930334
+17 29 23 0.699408 0.983658 0.949388
+17 29 24 0.698037 0.985004 0.963107
+17 29 25 0.696966 0.986281 0.975048
+17 29 26 0.696570 0.986883 0.980987
+17 29 27 0.696329 0.987330 0.985541
+17 29 28 0.696063 0.987726 0.988712
+17 29 29 0.695793 0.988115 0.991686
+17 29 30 0.695920 0.988861 0.995211
+17 29 31 0.696073 0.989631 0.998773
+17 30 0 0.804319 0.794920 0.000000
+17 30 1 0.802751 0.800020 0.000000
+17 30 2 0.801138 0.805231 0.000000
+17 30 3 0.798835 0.812102 0.000000
+17 30 4 0.796331 0.819656 0.000000
+17 30 5 0.792424 0.831995 0.000000
+17 30 6 0.788069 0.845095 0.000000
+17 30 7 0.781776 0.861489 0.000000
+17 30 8 0.775412 0.876937 0.000000
+17 30 9 0.768833 0.889544 0.089003
+17 30 10 0.762827 0.902041 0.230046
+17 30 11 0.758079 0.914294 0.355419
+17 30 12 0.752559 0.925922 0.461297
+17 30 13 0.745753 0.936507 0.534682
+17 30 14 0.739044 0.945937 0.601934
+17 30 15 0.732460 0.953879 0.661300
+17 30 16 0.726351 0.961034 0.716416
+17 30 17 0.720717 0.967400 0.767280
+17 30 18 0.716563 0.972796 0.812569
+17 30 19 0.713560 0.977439 0.853523
+17 30 20 0.710024 0.980887 0.886132
+17 30 21 0.706167 0.983620 0.913735
+17 30 22 0.703350 0.985458 0.934698
+17 30 23 0.701006 0.986889 0.952642
+17 30 24 0.699615 0.988152 0.965738
+17 30 25 0.698543 0.989359 0.977216
+17 30 26 0.698095 0.989948 0.983069
+17 30 27 0.697791 0.990395 0.987623
+17 30 28 0.697564 0.990770 0.990725
+17 30 29 0.697349 0.991134 0.993620
+17 30 30 0.697385 0.991630 0.996451
+17 30 31 0.697437 0.992136 0.999279
+17 31 0 0.806245 0.798645 0.000000
+17 31 1 0.804697 0.803746 0.000000
+17 31 2 0.803102 0.808960 0.000000
+17 31 3 0.800799 0.815883 0.000000
+17 31 4 0.798293 0.823475 0.000000
+17 31 5 0.794365 0.835763 0.000000
+17 31 6 0.789876 0.849067 0.000000
+17 31 7 0.782950 0.866778 0.000000
+17 31 8 0.776007 0.883148 0.000000
+17 31 9 0.769011 0.895494 0.159797
+17 31 10 0.762827 0.907739 0.316434
+17 31 11 0.758429 0.919762 0.399689
+17 31 12 0.753143 0.931148 0.478656
+17 31 13 0.746376 0.941473 0.550476
+17 31 14 0.739698 0.950664 0.615879
+17 31 15 0.733134 0.958397 0.673032
+17 31 16 0.727035 0.965269 0.726591
+17 31 17 0.721401 0.971281 0.776557
+17 31 18 0.717493 0.976416 0.820514
+17 31 19 0.714927 0.980870 0.859797
+17 31 20 0.711610 0.984248 0.891577
+17 31 21 0.707841 0.986981 0.918855
+17 31 22 0.705005 0.988740 0.938969
+17 31 23 0.702592 0.990056 0.955829
+17 31 24 0.701185 0.991236 0.968316
+17 31 25 0.700113 0.992370 0.979345
+17 31 26 0.699610 0.992945 0.985114
+17 31 27 0.699238 0.993392 0.989668
+17 31 28 0.699062 0.993767 0.992751
+17 31 29 0.698914 0.994131 0.995625
+17 31 30 0.698854 0.994363 0.997722
+17 31 31 0.698799 0.994586 0.999767
+18 0 0 0.432687 0.000000 0.000000
+18 0 1 0.432927 0.000000 0.000000
+18 0 2 0.433163 0.000000 0.000000
+18 0 3 0.433333 0.000000 0.000000
+18 0 4 0.433533 0.000000 0.000000
+18 0 5 0.433943 0.000000 0.000000
+18 0 6 0.434740 0.000000 0.000000
+18 0 7 0.437212 0.000000 0.000000
+18 0 8 0.440575 0.000000 0.044640
+18 0 9 0.446609 0.000000 0.061798
+18 0 10 0.451914 0.000000 0.087994
+18 0 11 0.455617 0.000000 0.134070
+18 0 12 0.459540 0.000000 0.179108
+18 0 13 0.463828 0.000000 0.222416
+18 0 14 0.469110 0.000000 0.267434
+18 0 15 0.475669 0.000000 0.314650
+18 0 16 0.481248 0.000000 0.357776
+18 0 17 0.485849 0.000000 0.396812
+18 0 18 0.490178 0.000000 0.434096
+18 0 19 0.494297 0.000000 0.470018
+18 0 20 0.498447 0.000000 0.502146
+18 0 21 0.502615 0.000000 0.531997
+18 0 22 0.509115 0.000000 0.559809
+18 0 23 0.516675 0.000000 0.586693
+18 0 24 0.530614 0.000000 0.618592
+18 0 25 0.546679 0.000000 0.652163
+18 0 26 0.571976 0.000000 0.692796
+18 0 27 0.599403 0.000000 0.735058
+18 0 28 0.617861 0.000000 0.763818
+18 0 29 0.635037 0.000000 0.790649
+18 0 30 0.647603 0.091855 0.810308
+18 0 31 0.659861 0.191182 0.829488
+18 1 0 0.439858 0.000000 0.000000
+18 1 1 0.440409 0.000000 0.000000
+18 1 2 0.440936 0.000000 0.000000
+18 1 3 0.441106 0.000000 0.000000
+18 1 4 0.441306 0.000000 0.000000
+18 1 5 0.441716 0.000000 0.000000
+18 1 6 0.442485 0.000000 0.000000
+18 1 7 0.444808 0.000000 0.000000
+18 1 8 0.448067 0.000000 0.047716
+18 1 9 0.454138 0.000000 0.064887
+18 1 10 0.459484 0.000000 0.091217
+18 1 11 0.463238 0.000000 0.137696
+18 1 12 0.467183 0.000000 0.183293
+18 1 13 0.471446 0.000000 0.227420
+18 1 14 0.476583 0.000000 0.272998
+18 1 15 0.482842 0.000000 0.320442
+18 1 16 0.488272 0.000000 0.364212
+18 1 17 0.492872 0.000000 0.404310
+18 1 18 0.497167 0.000000 0.442096
+18 1 19 0.501224 0.000000 0.478085
+18 1 20 0.505373 0.000000 0.510548
+18 1 21 0.509578 0.000000 0.540897
+18 1 22 0.515909 0.000000 0.568560
+18 1 23 0.523206 0.000000 0.595001
+18 1 24 0.535599 0.000000 0.625118
+18 1 25 0.549691 0.000000 0.656460
+18 1 26 0.574547 0.000000 0.696674
+18 1 27 0.601887 0.000000 0.738937
+18 1 28 0.620355 0.000000 0.767697
+18 1 29 0.637557 0.006606 0.794528
+18 1 30 0.650159 0.104248 0.814249
+18 1 31 0.662454 0.203575 0.833496
+18 2 0 0.447177 0.000000 0.000000
+18 2 1 0.448021 0.000000 0.000000
+18 2 2 0.448825 0.000000 0.000000
+18 2 3 0.449020 0.000000 0.000000
+18 2 4 0.449242 0.000000 0.000000
+18 2 5 0.449654 0.000000 0.000000
+18 2 6 0.450396 0.000000 0.000000
+18 2 7 0.452569 0.000000 0.000000
+18 2 8 0.455725 0.000000 0.050791
+18 2 9 0.461828 0.000000 0.068008
+18 2 10 0.467214 0.000000 0.094501
+18 2 11 0.471021 0.000000 0.141400
+18 2 12 0.474988 0.000000 0.187573
+18 2 13 0.479222 0.000000 0.232537
+18 2 14 0.484211 0.000000 0.278684
+18 2 15 0.490171 0.000000 0.326354
+18 2 16 0.495448 0.000000 0.370783
+18 2 17 0.500041 0.000000 0.411971
+18 2 18 0.504301 0.000000 0.450271
+18 2 19 0.508301 0.000000 0.486326
+18 2 20 0.512447 0.000000 0.519135
+18 2 21 0.516681 0.000000 0.549998
+18 2 22 0.522837 0.000000 0.577504
+18 2 23 0.529866 0.000000 0.603484
+18 2 24 0.540777 0.000000 0.631891
+18 2 25 0.552982 0.000000 0.661106
+18 2 26 0.577317 0.000000 0.700805
+18 2 27 0.604451 0.000000 0.742924
+18 2 28 0.622914 0.000000 0.771665
+18 2 29 0.640138 0.018856 0.798494
+18 2 30 0.652771 0.116907 0.818269
+18 2 31 0.665098 0.216234 0.837575
+18 3 0 0.456723 0.000000 0.000000
+18 3 1 0.457592 0.000000 0.000000
+18 3 2 0.458445 0.000000 0.000000
+18 3 3 0.459049 0.000000 0.000000
+18 3 4 0.459633 0.000000 0.000000
+18 3 5 0.460070 0.000000 0.000000
+18 3 6 0.460805 0.000000 0.000000
+18 3 7 0.462829 0.000000 0.000741
+18 3 8 0.465866 0.000000 0.053847
+18 3 9 0.471943 0.000000 0.071628
+18 3 10 0.477339 0.000000 0.098715
+18 3 11 0.481234 0.000000 0.146271
+18 3 12 0.485223 0.000000 0.193269
+18 3 13 0.489369 0.000000 0.239333
+18 3 14 0.494178 0.000000 0.286194
+18 3 15 0.499839 0.000000 0.334080
+18 3 16 0.504909 0.000000 0.379375
+18 3 17 0.509390 0.000000 0.422079
+18 3 18 0.513614 0.000000 0.461073
+18 3 19 0.517640 0.000000 0.497182
+18 3 20 0.521741 0.000000 0.530490
+18 3 21 0.525887 0.000000 0.562117
+18 3 22 0.531775 0.000000 0.589355
+18 3 23 0.538454 0.000000 0.614599
+18 3 24 0.548837 0.000000 0.642377
+18 3 25 0.560455 0.000000 0.671001
+18 3 26 0.583077 0.000000 0.708724
+18 3 27 0.608237 0.000000 0.748547
+18 3 28 0.626431 0.000000 0.776976
+18 3 29 0.643629 0.034955 0.803778
+18 3 30 0.656226 0.133542 0.823490
+18 3 31 0.668517 0.232869 0.842728
+18 4 0 0.467192 0.000000 0.000000
+18 4 1 0.468073 0.000000 0.000000
+18 4 2 0.468959 0.000000 0.000000
+18 4 3 0.469941 0.000000 0.000000
+18 4 4 0.470867 0.000000 0.000000
+18 4 5 0.471409 0.000000 0.000000
+18 4 6 0.472203 0.000000 0.000000
+18 4 7 0.474088 0.000000 0.001059
+18 4 8 0.477008 0.000000 0.056026
+18 4 9 0.483033 0.000000 0.075144
+18 4 10 0.488423 0.000000 0.103364
+18 4 11 0.492413 0.000000 0.151609
+18 4 12 0.496426 0.000000 0.199487
+18 4 13 0.500477 0.000000 0.246755
+18 4 14 0.505093 0.000000 0.294400
+18 4 15 0.510436 0.000000 0.342529
+18 4 16 0.515286 0.000000 0.388776
+18 4 17 0.519642 0.000000 0.433141
+18 4 18 0.523827 0.000000 0.472902
+18 4 19 0.527878 0.000000 0.509083
+18 4 20 0.531932 0.000000 0.542918
+18 4 21 0.535987 0.000000 0.575347
+18 4 22 0.541589 0.000000 0.602328
+18 4 23 0.547893 0.000000 0.626832
+18 4 24 0.557791 0.000000 0.654010
+18 4 25 0.568887 0.000000 0.682079
+18 4 26 0.589547 0.000000 0.717563
+18 4 27 0.612415 0.000000 0.754757
+18 4 28 0.630283 0.000000 0.782817
+18 4 29 0.647437 0.052582 0.809572
+18 4 30 0.660002 0.151765 0.829225
+18 4 31 0.672260 0.251100 0.848405
+18 5 0 0.484127 0.000000 0.000000
+18 5 1 0.484920 0.000000 0.000000
+18 5 2 0.485735 0.000000 0.000000
+18 5 3 0.486866 0.000000 0.000000
+18 5 4 0.488005 0.000000 0.000000
+18 5 5 0.489205 0.000000 0.000000
+18 5 6 0.490521 0.000000 0.000000
+18 5 7 0.492344 0.000000 0.000000
+18 5 8 0.495158 0.000000 0.052076
+18 5 9 0.500947 0.000000 0.077933
+18 5 10 0.506220 0.000000 0.111066
+18 5 11 0.510360 0.000000 0.160209
+18 5 12 0.514410 0.000000 0.209368
+18 5 13 0.518312 0.000000 0.258556
+18 5 14 0.522647 0.000000 0.307475
+18 5 15 0.527541 0.000000 0.356047
+18 5 16 0.532066 0.000000 0.403851
+18 5 17 0.536222 0.000000 0.450888
+18 5 18 0.540333 0.000000 0.491924
+18 5 19 0.544410 0.000000 0.528292
+18 5 20 0.548403 0.000000 0.562862
+18 5 21 0.552345 0.000000 0.596352
+18 5 22 0.557533 0.000000 0.623147
+18 5 23 0.563286 0.000000 0.646899
+18 5 24 0.573000 0.000000 0.673669
+18 5 25 0.584035 0.000000 0.701444
+18 5 26 0.600999 0.000000 0.732846
+18 5 27 0.619332 0.000000 0.765084
+18 5 28 0.636481 0.000000 0.792360
+18 5 29 0.653460 0.080902 0.818927
+18 5 30 0.666013 0.181091 0.838569
+18 5 31 0.678272 0.280493 0.857749
+18 6 0 0.503138 0.000000 0.000000
+18 6 1 0.503870 0.000000 0.000000
+18 6 2 0.504634 0.000000 0.000000
+18 6 3 0.505882 0.000000 0.000000
+18 6 4 0.507194 0.000000 0.000000
+18 6 5 0.508956 0.000000 0.000000
+18 6 6 0.510773 0.000000 0.000000
+18 6 7 0.512830 0.000000 0.000000
+18 6 8 0.515741 0.000000 0.047681
+18 6 9 0.521218 0.000000 0.081017
+18 6 10 0.526326 0.000000 0.119597
+18 6 11 0.530625 0.000000 0.169716
+18 6 12 0.534715 0.000000 0.220276
+18 6 13 0.538457 0.000000 0.271570
+18 6 14 0.542495 0.000000 0.321997
+18 6 15 0.546912 0.000000 0.371309
+18 6 16 0.551059 0.000000 0.420666
+18 6 17 0.554938 0.000000 0.470068
+18 6 18 0.558943 0.000000 0.512569
+18 6 19 0.563047 0.000000 0.549702
+18 6 20 0.566969 0.000000 0.585061
+18 6 21 0.570782 0.000000 0.619356
+18 6 22 0.575598 0.000000 0.646259
+18 6 23 0.580869 0.000000 0.669803
+18 6 24 0.590192 0.000000 0.695947
+18 6 25 0.600867 0.000000 0.722956
+18 6 26 0.614780 0.000000 0.750937
+18 6 27 0.629440 0.000000 0.779142
+18 6 28 0.645320 0.010946 0.805054
+18 6 29 0.661374 0.126914 0.830640
+18 6 30 0.673322 0.220852 0.849637
+18 6 31 0.684997 0.313321 0.868195
+18 7 0 0.531145 0.000000 0.000000
+18 7 1 0.531928 0.000000 0.000000
+18 7 2 0.532738 0.000000 0.000000
+18 7 3 0.533960 0.000000 0.000000
+18 7 4 0.535269 0.000000 0.000000
+18 7 5 0.537180 0.000000 0.000000
+18 7 6 0.539404 0.000000 0.000000
+18 7 7 0.542976 0.000000 0.000000
+18 7 8 0.546865 0.000000 0.041362
+18 7 9 0.551704 0.000000 0.085382
+18 7 10 0.556436 0.000000 0.131720
+18 7 11 0.560935 0.000000 0.183155
+18 7 12 0.565075 0.000000 0.235631
+18 7 13 0.568617 0.000000 0.289839
+18 7 14 0.572280 0.000000 0.342793
+18 7 15 0.576098 0.000000 0.394135
+18 7 16 0.579641 0.000000 0.445023
+18 7 17 0.582906 0.000000 0.495460
+18 7 18 0.586664 0.000000 0.540248
+18 7 19 0.590805 0.000000 0.580645
+18 7 20 0.594615 0.000000 0.617034
+18 7 21 0.598228 0.000000 0.651020
+18 7 22 0.602853 0.003000 0.679305
+18 7 23 0.607938 0.007693 0.705000
+18 7 24 0.615976 0.022080 0.729574
+18 7 25 0.624999 0.039699 0.753775
+18 7 26 0.638653 0.073273 0.781197
+18 7 27 0.653375 0.110527 0.809362
+18 7 28 0.665609 0.177908 0.831404
+18 7 29 0.677488 0.249593 0.852570
+18 7 30 0.686255 0.305827 0.868180
+18 7 31 0.694816 0.361030 0.883420
+18 8 0 0.557711 0.065617 0.000000
+18 8 1 0.558534 0.067614 0.000000
+18 8 2 0.559381 0.069509 0.000000
+18 8 3 0.560582 0.069878 0.000000
+18 8 4 0.561887 0.070264 0.000000
+18 8 5 0.563923 0.070781 0.000000
+18 8 6 0.566454 0.071313 0.000000
+18 8 7 0.571127 0.071916 0.000000
+18 8 8 0.575725 0.073698 0.032117
+18 8 9 0.580100 0.079019 0.087033
+18 8 10 0.584521 0.083475 0.141489
+18 8 11 0.589043 0.086030 0.194936
+18 8 12 0.593080 0.088689 0.249655
+18 8 13 0.596309 0.091520 0.306493
+18 8 14 0.599563 0.093388 0.361815
+18 8 15 0.602848 0.094018 0.415189
+18 8 16 0.605855 0.094069 0.467646
+18 8 17 0.608583 0.093542 0.519187
+18 8 18 0.612084 0.093032 0.565915
+18 8 19 0.616186 0.092534 0.608900
+18 8 20 0.619822 0.093669 0.646272
+18 8 21 0.623178 0.095784 0.680278
+18 8 22 0.627517 0.101842 0.709569
+18 8 23 0.632303 0.109693 0.736719
+18 8 24 0.639109 0.132706 0.759994
+18 8 25 0.646590 0.160772 0.781978
+18 8 26 0.659614 0.214374 0.808472
+18 8 27 0.673917 0.273869 0.836006
+18 8 28 0.683121 0.314219 0.854731
+18 8 29 0.691596 0.351834 0.872197
+18 8 30 0.697788 0.379191 0.884979
+18 8 31 0.703829 0.405863 0.897449
+18 9 0 0.579952 0.093001 0.000000
+18 9 1 0.580787 0.094124 0.000000
+18 9 2 0.581644 0.095291 0.000000
+18 9 3 0.582833 0.097109 0.000000
+18 9 4 0.584135 0.099149 0.000000
+18 9 5 0.586222 0.102740 0.000000
+18 9 6 0.588766 0.106546 0.000000
+18 9 7 0.593289 0.111276 0.000000
+18 9 8 0.597790 0.115898 0.014096
+18 9 9 0.602227 0.120193 0.080537
+18 9 10 0.606532 0.124700 0.144198
+18 9 11 0.610542 0.129673 0.201742
+18 9 12 0.614016 0.134537 0.259687
+18 9 13 0.616596 0.139222 0.318299
+18 9 14 0.619338 0.142967 0.375513
+18 9 15 0.622287 0.145504 0.430927
+18 9 16 0.624969 0.147700 0.485063
+18 9 17 0.627384 0.149554 0.537920
+18 9 18 0.630600 0.150856 0.585542
+18 9 19 0.634440 0.151729 0.629091
+18 9 20 0.637711 0.153831 0.667304
+18 9 21 0.640641 0.156671 0.702316
+18 9 22 0.644408 0.163489 0.731489
+18 9 23 0.648555 0.172116 0.758008
+18 9 24 0.654292 0.193283 0.780793
+18 9 25 0.660558 0.218629 0.802334
+18 9 26 0.671841 0.267529 0.826791
+18 9 27 0.684281 0.321865 0.851920
+18 9 28 0.692300 0.358571 0.868994
+18 9 29 0.699688 0.392759 0.884916
+18 9 30 0.705122 0.417721 0.896544
+18 9 31 0.710426 0.442067 0.907885
+18 10 0 0.602915 0.127513 0.000000
+18 10 1 0.603757 0.128359 0.000000
+18 10 2 0.604618 0.129334 0.000000
+18 10 3 0.605757 0.132241 0.000000
+18 10 4 0.607011 0.135505 0.000000
+18 10 5 0.609083 0.141273 0.000000
+18 10 6 0.611599 0.147245 0.000000
+18 10 7 0.616042 0.154095 0.000000
+18 10 8 0.620465 0.160345 0.000000
+18 10 9 0.624824 0.164796 0.070005
+18 10 10 0.628943 0.170010 0.146850
+18 10 11 0.632532 0.176900 0.207976
+18 10 12 0.635526 0.183582 0.268886
+18 10 13 0.637531 0.189919 0.329436
+18 10 14 0.639806 0.195344 0.388762
+18 10 15 0.642431 0.199596 0.446517
+18 10 16 0.644776 0.203708 0.502392
+18 10 17 0.646843 0.207681 0.556389
+18 10 18 0.649706 0.210623 0.604957
+18 10 19 0.653190 0.212763 0.649302
+18 10 20 0.655957 0.215735 0.688272
+18 10 21 0.658293 0.219206 0.724018
+18 10 22 0.661395 0.226234 0.753183
+18 10 23 0.664846 0.234879 0.779356
+18 10 24 0.669586 0.254335 0.801578
+18 10 25 0.674756 0.277396 0.822483
+18 10 26 0.684191 0.321320 0.844743
+18 10 27 0.694611 0.370059 0.867317
+18 10 28 0.701382 0.403276 0.882749
+18 10 29 0.707632 0.434277 0.897161
+18 10 30 0.712326 0.457209 0.907774
+18 10 31 0.716915 0.479604 0.918134
+18 11 0 0.627465 0.177708 0.000000
+18 11 1 0.628307 0.179588 0.000000
+18 11 2 0.629159 0.181551 0.000000
+18 11 3 0.630159 0.184752 0.000000
+18 11 4 0.631273 0.188299 0.000000
+18 11 5 0.633180 0.194268 0.000000
+18 11 6 0.635578 0.199970 0.000000
+18 11 7 0.640097 0.204522 0.000000
+18 11 8 0.644480 0.209736 0.000000
+18 11 9 0.648453 0.216941 0.050591
+18 11 10 0.652235 0.224304 0.149377
+18 11 11 0.655598 0.232013 0.212951
+18 11 12 0.658297 0.239661 0.276252
+18 11 13 0.659889 0.247208 0.339097
+18 11 14 0.661801 0.253877 0.401027
+18 11 15 0.664123 0.259418 0.461777
+18 11 16 0.666105 0.264947 0.519527
+18 11 17 0.667749 0.270463 0.574277
+18 11 18 0.670111 0.274664 0.623907
+18 11 19 0.673033 0.277841 0.669556
+18 11 20 0.674987 0.281470 0.709099
+18 11 21 0.676360 0.285369 0.744978
+18 11 22 0.678595 0.291394 0.774378
+18 11 23 0.681222 0.298385 0.800833
+18 11 24 0.685127 0.316433 0.822330
+18 11 25 0.689458 0.338165 0.842173
+18 11 26 0.696814 0.376510 0.861889
+18 11 27 0.704868 0.418688 0.881575
+18 11 28 0.710249 0.448759 0.895388
+18 11 29 0.715248 0.477099 0.908363
+18 11 30 0.719241 0.498808 0.918269
+18 11 31 0.723168 0.520074 0.927971
+18 12 0 0.652330 0.228879 0.000000
+18 12 1 0.653173 0.231471 0.000000
+18 12 2 0.654022 0.234118 0.000000
+18 12 3 0.654983 0.237588 0.000000
+18 12 4 0.656055 0.241406 0.000000
+18 12 5 0.657917 0.247660 0.000000
+18 12 6 0.660243 0.253645 0.000000
+18 12 7 0.664585 0.258463 0.000000
+18 12 8 0.668737 0.264335 0.000000
+18 12 9 0.672317 0.273372 0.036837
+18 12 10 0.675722 0.282355 0.149044
+18 12 11 0.678743 0.291221 0.216062
+18 12 12 0.681000 0.300038 0.282570
+18 12 13 0.681983 0.308773 0.348226
+18 12 14 0.683353 0.316682 0.412797
+18 12 15 0.685219 0.323527 0.475975
+18 12 16 0.686712 0.330251 0.535586
+18 12 17 0.687833 0.336853 0.591631
+18 12 18 0.689595 0.342010 0.642397
+18 12 19 0.691857 0.346042 0.689058
+18 12 20 0.692985 0.350102 0.729237
+18 12 21 0.693433 0.354177 0.765528
+18 12 22 0.694777 0.359561 0.794911
+18 12 23 0.696527 0.365540 0.821154
+18 12 24 0.699574 0.381887 0.841949
+18 12 25 0.703053 0.401691 0.860928
+18 12 26 0.708594 0.434873 0.878574
+18 12 27 0.714612 0.471143 0.895912
+18 12 28 0.718787 0.497945 0.908306
+18 12 29 0.722700 0.523393 0.919994
+18 12 30 0.725999 0.543306 0.929113
+18 12 31 0.729258 0.562849 0.938061
+18 13 0 0.677723 0.281678 0.000000
+18 13 1 0.678565 0.284442 0.000000
+18 13 2 0.679422 0.287265 0.000000
+18 13 3 0.680507 0.290963 0.000000
+18 13 4 0.681707 0.295033 0.000000
+18 13 5 0.683718 0.301715 0.000000
+18 13 6 0.686053 0.308899 0.000000
+18 13 7 0.689794 0.318261 0.000000
+18 13 8 0.693394 0.327614 0.000000
+18 13 9 0.696573 0.336945 0.032515
+18 13 10 0.699535 0.346668 0.143941
+18 13 11 0.702020 0.357253 0.216067
+18 13 12 0.703590 0.367577 0.287142
+18 13 13 0.703636 0.377465 0.356464
+18 13 14 0.704167 0.386604 0.423744
+18 13 15 0.705322 0.394782 0.488399
+18 13 16 0.706115 0.402332 0.549850
+18 13 17 0.706546 0.409255 0.608097
+18 13 18 0.707543 0.414863 0.660122
+18 13 19 0.708981 0.419448 0.707307
+18 13 20 0.709262 0.423562 0.748229
+18 13 21 0.708849 0.427395 0.785393
+18 13 22 0.709262 0.432741 0.814338
+18 13 23 0.710049 0.438774 0.839547
+18 13 24 0.712199 0.452938 0.859681
+18 13 25 0.714803 0.469811 0.878123
+18 13 26 0.718971 0.498526 0.894490
+18 13 27 0.723500 0.529974 0.910378
+18 13 28 0.726779 0.553304 0.921686
+18 13 29 0.729878 0.575474 0.932340
+18 13 30 0.732494 0.592637 0.940539
+18 13 31 0.735078 0.609466 0.948574
+18 14 0 0.703309 0.342125 0.000000
+18 14 1 0.703998 0.344863 0.000000
+18 14 2 0.704701 0.347662 0.000000
+18 14 3 0.705621 0.351364 0.000000
+18 14 4 0.706634 0.355438 0.000000
+18 14 5 0.708303 0.362119 0.000000
+18 14 6 0.710294 0.369714 0.000000
+18 14 7 0.713682 0.381273 0.000000
+18 14 8 0.716890 0.392497 0.000000
+18 14 9 0.719560 0.402716 0.016398
+18 14 10 0.721981 0.413501 0.123243
+18 14 11 0.723858 0.425530 0.209072
+18 14 12 0.724706 0.437116 0.289939
+18 14 13 0.723842 0.447964 0.362535
+18 14 14 0.723468 0.458123 0.432548
+18 14 15 0.723725 0.467395 0.499238
+18 14 16 0.723641 0.475457 0.562364
+18 14 17 0.723214 0.482308 0.621927
+18 14 18 0.723270 0.488172 0.675110
+18 14 19 0.723703 0.493267 0.723331
+18 14 20 0.723161 0.497370 0.764955
+18 14 21 0.722034 0.500878 0.802623
+18 14 22 0.721825 0.505917 0.831746
+18 14 23 0.722033 0.511652 0.856985
+18 14 24 0.723500 0.523857 0.876653
+18 14 25 0.725386 0.538219 0.894464
+18 14 26 0.728441 0.562683 0.909471
+18 14 27 0.731765 0.589478 0.923831
+18 14 28 0.734176 0.609173 0.933961
+18 14 29 0.736456 0.627854 0.943486
+18 14 30 0.738372 0.642414 0.950802
+18 14 31 0.740264 0.656699 0.957971
+18 15 0 0.729144 0.412405 0.000000
+18 15 1 0.729483 0.414861 0.000000
+18 15 2 0.729825 0.417378 0.000000
+18 15 3 0.730208 0.420798 0.000000
+18 15 4 0.730630 0.424556 0.000000
+18 15 5 0.731325 0.430685 0.000000
+18 15 6 0.732518 0.437679 0.000000
+18 15 7 0.735872 0.448418 0.000000
+18 15 8 0.738892 0.459442 0.000000
+18 15 9 0.740913 0.471314 0.000000
+18 15 10 0.742669 0.483575 0.082493
+18 15 11 0.743845 0.496693 0.193077
+18 15 12 0.743928 0.509227 0.290454
+18 15 13 0.742189 0.520788 0.365820
+18 15 14 0.740825 0.531694 0.438595
+18 15 15 0.739944 0.541758 0.508039
+18 15 16 0.738753 0.549926 0.572630
+18 15 17 0.737250 0.556197 0.632369
+18 15 18 0.736140 0.562065 0.686580
+18 15 19 0.735337 0.567618 0.736494
+18 15 20 0.734003 0.571624 0.778770
+18 15 21 0.732351 0.574701 0.816464
+18 15 22 0.731917 0.579088 0.846557
+18 15 23 0.732038 0.584071 0.873195
+18 15 24 0.733097 0.594608 0.892648
+18 15 25 0.734470 0.606995 0.909707
+18 15 26 0.736745 0.627486 0.923250
+18 15 27 0.739228 0.649847 0.935981
+18 15 28 0.740809 0.665697 0.944814
+18 15 29 0.742262 0.680617 0.953090
+18 15 30 0.743457 0.692764 0.959571
+18 15 31 0.744635 0.704726 0.965933
+18 16 0 0.751051 0.473939 0.000000
+18 16 1 0.751303 0.476603 0.000000
+18 16 2 0.751556 0.479334 0.000000
+18 16 3 0.751820 0.483075 0.000000
+18 16 4 0.752113 0.487181 0.000000
+18 16 5 0.752608 0.493840 0.000000
+18 16 6 0.753556 0.501273 0.000000
+18 16 7 0.756474 0.512068 0.000000
+18 16 8 0.758972 0.523387 0.000000
+18 16 9 0.760212 0.536280 0.000000
+18 16 10 0.761182 0.549465 0.028607
+18 16 11 0.761557 0.563296 0.170507
+18 16 12 0.760711 0.576475 0.288639
+18 16 13 0.757828 0.588566 0.367156
+18 16 14 0.755359 0.599832 0.442558
+18 16 15 0.753423 0.610037 0.513957
+18 16 16 0.751234 0.618574 0.580087
+18 16 17 0.748794 0.625441 0.640948
+18 16 18 0.746744 0.631627 0.696213
+18 16 19 0.744998 0.637282 0.747127
+18 16 20 0.743111 0.641409 0.790249
+18 16 21 0.741140 0.644619 0.828696
+18 16 22 0.740435 0.648527 0.859407
+18 16 23 0.740305 0.652752 0.886603
+18 16 24 0.740791 0.661512 0.905854
+18 16 25 0.741482 0.671784 0.922456
+18 16 26 0.743013 0.688528 0.934930
+18 16 27 0.744738 0.706766 0.946451
+18 16 28 0.745633 0.719320 0.954298
+18 16 29 0.746410 0.731063 0.961620
+18 16 30 0.747175 0.741130 0.967456
+18 16 31 0.747939 0.751084 0.973193
+18 17 0 0.769032 0.526725 0.000000
+18 17 1 0.769458 0.530087 0.000000
+18 17 2 0.769894 0.533530 0.000000
+18 17 3 0.770457 0.538197 0.000000
+18 17 4 0.771084 0.543313 0.000000
+18 17 5 0.772152 0.551582 0.000000
+18 17 6 0.773409 0.560498 0.000000
+18 17 7 0.775488 0.572221 0.000000
+18 17 8 0.777129 0.584333 0.000000
+18 17 9 0.777457 0.597614 0.000000
+18 17 10 0.777518 0.611172 0.000000
+18 17 11 0.776993 0.625339 0.141363
+18 17 12 0.775055 0.638859 0.284493
+18 17 13 0.770760 0.651299 0.366543
+18 17 14 0.767071 0.662539 0.444439
+18 17 15 0.764161 0.672234 0.516993
+18 17 16 0.761086 0.681401 0.584735
+18 17 17 0.757847 0.690040 0.647664
+18 17 18 0.755082 0.696857 0.704009
+18 17 19 0.752686 0.702257 0.755232
+18 17 20 0.750485 0.706725 0.799393
+18 17 21 0.748401 0.710633 0.839317
+18 17 22 0.747377 0.714233 0.870296
+18 17 23 0.746836 0.717694 0.897210
+18 17 24 0.746581 0.724571 0.916269
+18 17 25 0.746422 0.732586 0.932711
+18 17 26 0.747246 0.745809 0.944512
+18 17 27 0.748296 0.760235 0.955241
+18 17 28 0.748647 0.770044 0.962413
+18 17 29 0.748899 0.779194 0.969077
+18 17 30 0.749525 0.787511 0.974457
+18 17 31 0.750176 0.795773 0.979751
+18 18 0 0.785790 0.579092 0.000000
+18 18 1 0.786047 0.582351 0.000000
+18 18 2 0.786309 0.585691 0.000000
+18 18 3 0.786639 0.590249 0.000000
+18 18 4 0.787035 0.595275 0.000000
+18 18 5 0.787904 0.603576 0.000000
+18 18 6 0.789017 0.612739 0.000000
+18 18 7 0.791187 0.625639 0.000000
+18 18 8 0.792687 0.638720 0.000000
+18 18 9 0.792179 0.652344 0.000000
+18 18 10 0.791285 0.666312 0.000000
+18 18 11 0.789544 0.681035 0.126424
+18 18 12 0.786479 0.694893 0.279975
+18 18 13 0.781208 0.707312 0.364972
+18 18 14 0.776540 0.718683 0.445153
+18 18 15 0.772647 0.728707 0.519143
+18 18 16 0.768738 0.738070 0.588146
+18 18 17 0.764813 0.746775 0.652162
+18 18 18 0.761454 0.754051 0.709629
+18 18 19 0.758536 0.760216 0.762001
+18 18 20 0.755994 0.764798 0.806794
+18 18 21 0.753678 0.768430 0.847040
+18 18 22 0.752424 0.771932 0.878445
+18 18 23 0.751653 0.775375 0.905832
+18 18 24 0.750956 0.780878 0.924804
+18 18 25 0.750284 0.787066 0.940971
+18 18 26 0.750593 0.797221 0.952156
+18 18 27 0.751129 0.808291 0.962191
+18 18 28 0.751147 0.816027 0.968918
+18 18 29 0.751091 0.823287 0.975173
+18 18 30 0.751467 0.829772 0.980133
+18 18 31 0.751872 0.836205 0.985007
+18 19 0 0.801599 0.631132 0.000000
+18 19 1 0.801418 0.633667 0.000000
+18 19 2 0.801229 0.636270 0.000000
+18 19 3 0.800909 0.639915 0.000000
+18 19 4 0.800638 0.643993 0.000000
+18 19 5 0.800708 0.651098 0.000000
+18 19 6 0.801324 0.659548 0.000000
+18 19 7 0.804307 0.673818 0.000000
+18 19 8 0.806222 0.688005 0.000000
+18 19 9 0.804938 0.701939 0.000000
+18 19 10 0.803054 0.716346 0.000000
+18 19 11 0.799850 0.731793 0.122535
+18 19 12 0.795632 0.745989 0.275168
+18 19 13 0.789722 0.758099 0.362655
+18 19 14 0.784263 0.769724 0.444959
+18 19 15 0.779383 0.780727 0.520602
+18 19 16 0.774680 0.789950 0.590594
+18 19 17 0.770157 0.797393 0.654935
+18 19 18 0.766298 0.804994 0.713557
+18 19 19 0.762956 0.812718 0.767731
+18 19 20 0.760052 0.817238 0.812839
+18 19 21 0.757411 0.819835 0.852509
+18 19 22 0.755996 0.823402 0.884464
+18 19 23 0.755137 0.827410 0.912912
+18 19 24 0.754230 0.831934 0.931877
+18 19 25 0.753307 0.836631 0.947679
+18 19 26 0.753252 0.844069 0.958293
+18 19 27 0.753398 0.852139 0.967710
+18 19 28 0.753247 0.858324 0.974171
+18 19 29 0.753052 0.864240 0.980211
+18 19 30 0.753092 0.868827 0.984779
+18 19 31 0.753146 0.873325 0.989249
+18 20 0 0.812098 0.668442 0.000000
+18 20 1 0.811995 0.671258 0.000000
+18 20 2 0.811885 0.674150 0.000000
+18 20 3 0.811656 0.678182 0.000000
+18 20 4 0.811477 0.682675 0.000000
+18 20 5 0.811637 0.690399 0.000000
+18 20 6 0.812209 0.699328 0.000000
+18 20 7 0.814567 0.713483 0.000000
+18 20 8 0.815873 0.727751 0.000000
+18 20 9 0.814024 0.742354 0.000000
+18 20 10 0.811470 0.757235 0.000000
+18 20 11 0.807367 0.772727 0.119547
+18 20 12 0.802365 0.787045 0.271629
+18 20 13 0.795865 0.799409 0.361443
+18 20 14 0.789854 0.811007 0.445592
+18 20 15 0.784470 0.821624 0.522459
+18 20 16 0.779326 0.831046 0.593719
+18 20 17 0.774421 0.839274 0.659373
+18 20 18 0.770112 0.847009 0.718632
+18 20 19 0.766267 0.854360 0.772918
+18 20 20 0.763030 0.859039 0.818343
+18 20 21 0.760159 0.862113 0.858450
+18 20 22 0.758535 0.865558 0.890210
+18 20 23 0.757480 0.869173 0.918175
+18 20 24 0.756365 0.872732 0.936885
+18 20 25 0.755231 0.876274 0.952509
+18 20 26 0.754779 0.881322 0.962766
+18 20 27 0.754485 0.886717 0.971784
+18 20 28 0.754041 0.890996 0.977985
+18 20 29 0.753576 0.895115 0.983785
+18 20 30 0.753490 0.898705 0.988141
+18 20 31 0.753429 0.902259 0.992401
+18 21 0 0.819412 0.696912 0.000000
+18 21 1 0.819696 0.700614 0.000000
+18 21 2 0.819981 0.704409 0.000000
+18 21 3 0.820289 0.709609 0.000000
+18 21 4 0.820657 0.715337 0.000000
+18 21 5 0.821441 0.724765 0.000000
+18 21 6 0.822241 0.734890 0.000000
+18 21 7 0.823111 0.748039 0.000000
+18 21 8 0.823192 0.761773 0.000000
+18 21 9 0.820905 0.777262 0.000000
+18 21 10 0.817875 0.792638 0.000000
+18 21 11 0.813210 0.807766 0.117099
+18 21 12 0.807646 0.822078 0.268851
+18 21 13 0.800585 0.835033 0.360894
+18 21 14 0.794165 0.846436 0.446721
+18 21 15 0.788569 0.855846 0.524555
+18 21 16 0.783193 0.865671 0.597251
+18 21 17 0.778037 0.875913 0.664810
+18 21 18 0.773309 0.883667 0.724395
+18 21 19 0.768913 0.889488 0.777781
+18 21 20 0.765361 0.894456 0.823521
+18 21 21 0.762314 0.898912 0.864675
+18 21 22 0.760455 0.902125 0.895792
+18 21 23 0.759137 0.904772 0.922347
+18 21 24 0.757817 0.907376 0.940654
+18 21 25 0.756497 0.909965 0.956212
+18 21 26 0.755627 0.912818 0.966239
+18 21 27 0.754861 0.915733 0.974990
+18 21 28 0.754052 0.917892 0.980936
+18 21 29 0.753237 0.919942 0.986480
+18 21 30 0.753153 0.923076 0.990733
+18 21 31 0.753117 0.926282 0.994899
+18 22 0 0.827395 0.721844 0.000000
+18 22 1 0.827431 0.725536 0.000000
+18 22 2 0.827464 0.729320 0.000000
+18 22 3 0.827450 0.734470 0.000000
+18 22 4 0.827449 0.740123 0.000000
+18 22 5 0.827536 0.749300 0.000000
+18 22 6 0.827756 0.759356 0.000000
+18 22 7 0.828557 0.773224 0.000000
+18 22 8 0.828363 0.787425 0.000000
+18 22 9 0.825184 0.802629 0.000000
+18 22 10 0.821417 0.817851 0.000000
+18 22 11 0.816352 0.833115 0.119784
+18 22 12 0.810576 0.847444 0.273157
+18 22 13 0.803613 0.860214 0.366109
+18 22 14 0.797245 0.871801 0.452742
+18 22 15 0.791644 0.881867 0.531250
+18 22 16 0.786003 0.891699 0.604004
+18 22 17 0.780321 0.901296 0.671004
+18 22 18 0.775179 0.908774 0.730203
+18 22 19 0.770456 0.914603 0.783334
+18 22 20 0.766532 0.919493 0.828532
+18 22 21 0.763087 0.923819 0.868970
+18 22 22 0.761089 0.927063 0.899814
+18 22 23 0.759749 0.929814 0.926298
+18 22 24 0.758444 0.932047 0.944315
+18 22 25 0.757151 0.934107 0.959510
+18 22 26 0.756340 0.936103 0.969139
+18 22 27 0.755640 0.938083 0.977483
+18 22 28 0.754759 0.939446 0.983235
+18 22 29 0.753852 0.940722 0.988616
+18 22 30 0.753608 0.942985 0.992728
+18 22 31 0.753407 0.945315 0.996754
+18 23 0 0.835682 0.745167 0.000000
+18 23 1 0.835181 0.748444 0.000000
+18 23 2 0.834667 0.751800 0.000000
+18 23 3 0.833942 0.756347 0.000000
+18 23 4 0.833156 0.761329 0.000000
+18 23 5 0.831944 0.769365 0.000000
+18 23 6 0.831217 0.778777 0.000000
+18 23 7 0.832594 0.794149 0.000000
+18 23 8 0.832557 0.809274 0.000000
+18 23 9 0.828281 0.823659 0.000000
+18 23 10 0.823656 0.838431 0.000000
+18 23 11 0.818268 0.854060 0.124804
+18 23 12 0.812437 0.868415 0.280683
+18 23 13 0.805872 0.880648 0.373944
+18 23 14 0.799767 0.892591 0.460988
+18 23 15 0.794253 0.904162 0.540036
+18 23 16 0.788331 0.913819 0.612221
+18 23 17 0.782000 0.921563 0.677544
+18 23 18 0.776447 0.928629 0.736031
+18 23 19 0.771498 0.935169 0.789202
+18 23 20 0.767177 0.939813 0.833467
+18 23 21 0.763232 0.943320 0.872388
+18 23 22 0.761138 0.946714 0.903128
+18 23 23 0.759886 0.950057 0.930148
+18 23 24 0.758696 0.952185 0.947926
+18 23 25 0.757527 0.953909 0.962624
+18 23 26 0.756992 0.955654 0.971777
+18 23 27 0.756602 0.957404 0.979651
+18 23 28 0.755782 0.958574 0.985238
+18 23 29 0.754900 0.959661 0.990499
+18 23 30 0.754422 0.960866 0.994451
+18 23 31 0.753971 0.962080 0.998317
+18 24 0 0.841909 0.762121 0.000000
+18 24 1 0.840930 0.766020 0.000000
+18 24 2 0.839942 0.769979 0.000000
+18 24 3 0.838834 0.774839 0.000000
+18 24 4 0.837672 0.780066 0.000000
+18 24 5 0.836135 0.787867 0.000000
+18 24 6 0.834895 0.796933 0.000000
+18 24 7 0.834942 0.811483 0.000000
+18 24 8 0.833894 0.825975 0.000000
+18 24 9 0.829558 0.840296 0.000000
+18 24 10 0.824775 0.854870 0.000000
+18 24 11 0.819004 0.870005 0.139524
+18 24 12 0.813022 0.883982 0.301704
+18 24 13 0.806688 0.896031 0.393078
+18 24 14 0.800713 0.907811 0.478372
+18 24 15 0.795202 0.919243 0.555852
+18 24 16 0.789275 0.928670 0.626186
+18 24 17 0.782933 0.936092 0.689377
+18 24 18 0.777374 0.942879 0.746189
+18 24 19 0.772423 0.949173 0.798038
+18 24 20 0.767989 0.953610 0.840734
+18 24 21 0.763864 0.956933 0.877936
+18 24 22 0.761613 0.960066 0.907593
+18 24 23 0.760213 0.963113 0.933819
+18 24 24 0.758981 0.964998 0.951056
+18 24 25 0.757805 0.966497 0.965298
+18 24 26 0.757300 0.968096 0.974098
+18 24 27 0.756950 0.969717 0.981643
+18 24 28 0.756313 0.970830 0.987057
+18 24 29 0.755634 0.971870 0.992166
+18 24 30 0.755164 0.972718 0.996006
+18 24 31 0.754707 0.973552 0.999761
+18 25 0 0.847451 0.776953 0.000000
+18 25 1 0.846011 0.781820 0.000000
+18 25 2 0.844575 0.786724 0.000000
+18 25 3 0.843193 0.792202 0.000000
+18 25 4 0.841791 0.797979 0.000000
+18 25 5 0.840254 0.805847 0.000000
+18 25 6 0.838646 0.814668 0.000000
+18 25 7 0.836728 0.827619 0.000000
+18 25 8 0.834277 0.840960 0.000000
+18 25 9 0.830230 0.855468 0.000000
+18 25 10 0.825519 0.869929 0.000000
+18 25 11 0.819347 0.884284 0.157477
+18 25 12 0.813181 0.897749 0.327223
+18 25 13 0.807021 0.909732 0.415976
+18 25 14 0.801134 0.921173 0.498803
+18 25 15 0.795598 0.931920 0.574011
+18 25 16 0.789759 0.941099 0.642068
+18 25 17 0.783616 0.948709 0.702975
+18 25 18 0.778186 0.955261 0.757789
+18 25 19 0.773309 0.960990 0.807865
+18 25 20 0.768857 0.965232 0.848778
+18 25 21 0.764659 0.968583 0.884195
+18 25 22 0.762229 0.971318 0.912442
+18 25 23 0.760603 0.973773 0.937431
+18 25 24 0.759276 0.975370 0.954027
+18 25 25 0.758049 0.976681 0.967825
+18 25 26 0.757494 0.978168 0.976314
+18 25 27 0.757093 0.979695 0.983577
+18 25 28 0.756679 0.980796 0.988815
+18 25 29 0.756263 0.981836 0.993763
+18 25 30 0.755881 0.982559 0.997505
+18 25 31 0.755500 0.983259 1.001166
+18 26 0 0.850725 0.785970 0.000000
+18 26 1 0.849229 0.790941 0.000000
+18 26 2 0.847719 0.795985 0.000000
+18 26 3 0.846013 0.802114 0.000000
+18 26 4 0.844235 0.808661 0.000000
+18 26 5 0.841950 0.818135 0.000000
+18 26 6 0.839661 0.828205 0.000000
+18 26 7 0.837354 0.840857 0.000000
+18 26 8 0.834510 0.853854 0.000000
+18 26 9 0.830058 0.867885 0.000000
+18 26 10 0.825179 0.881838 0.000000
+18 26 11 0.819359 0.895621 0.180242
+18 26 12 0.813386 0.908601 0.359512
+18 26 13 0.807158 0.920243 0.444750
+18 26 14 0.801204 0.931137 0.524071
+18 26 15 0.795601 0.941068 0.595785
+18 26 16 0.789874 0.949709 0.660528
+18 26 17 0.784024 0.957061 0.718301
+18 26 18 0.778951 0.963373 0.771034
+18 26 19 0.774483 0.968875 0.819848
+18 26 20 0.770214 0.972887 0.858633
+18 26 21 0.766064 0.976003 0.891400
+18 26 22 0.763620 0.978521 0.917985
+18 26 23 0.761951 0.980767 0.941758
+18 26 24 0.760592 0.982285 0.957857
+18 26 25 0.759335 0.983560 0.971397
+18 26 26 0.758648 0.984618 0.978925
+18 26 27 0.758094 0.985625 0.985066
+18 26 28 0.757659 0.986661 0.990070
+18 26 29 0.757242 0.987702 0.994912
+18 26 30 0.756920 0.988400 0.998610
+18 26 31 0.756604 0.989076 1.002231
+18 27 0 0.853477 0.793644 0.000000
+18 27 1 0.852017 0.798521 0.000000
+18 27 2 0.850521 0.803518 0.000000
+18 27 3 0.848479 0.810305 0.000000
+18 27 4 0.846291 0.817674 0.000000
+18 27 5 0.843086 0.829110 0.000000
+18 27 6 0.840044 0.840775 0.000000
+18 27 7 0.837712 0.853427 0.000000
+18 27 8 0.834708 0.866265 0.000000
+18 27 9 0.829692 0.879666 0.000000
+18 27 10 0.824588 0.893021 0.000000
+18 27 11 0.819293 0.906279 0.204119
+18 27 12 0.813602 0.918780 0.393362
+18 27 13 0.807250 0.930019 0.474879
+18 27 14 0.801193 0.940315 0.550455
+18 27 15 0.795513 0.949400 0.618392
+18 27 16 0.789905 0.957438 0.679583
+18 27 17 0.784369 0.964429 0.734026
+18 27 18 0.779706 0.970499 0.784659
+18 27 19 0.775723 0.975854 0.832329
+18 27 20 0.771684 0.979625 0.868905
+18 27 21 0.767610 0.982447 0.898825
+18 27 22 0.765190 0.984790 0.923687
+18 27 23 0.763521 0.986915 0.946250
+18 27 24 0.762142 0.988402 0.961885
+18 27 25 0.760860 0.989677 0.975210
+18 27 26 0.760024 0.990232 0.981628
+18 27 27 0.759292 0.990621 0.986453
+18 27 28 0.758781 0.991580 0.991210
+18 27 29 0.758302 0.992620 0.995958
+18 27 30 0.758034 0.993318 0.999624
+18 27 31 0.757780 0.993994 1.003218
+18 28 0 0.855620 0.799066 0.000000
+18 28 1 0.854187 0.804014 0.000000
+18 28 2 0.852714 0.809077 0.000000
+18 28 3 0.850630 0.815864 0.000000
+18 28 4 0.848379 0.823297 0.000000
+18 28 5 0.844960 0.835250 0.000000
+18 28 6 0.841577 0.847551 0.000000
+18 28 7 0.838355 0.861365 0.000000
+18 28 8 0.834589 0.875001 0.000000
+18 28 9 0.829196 0.888099 0.000000
+18 28 10 0.823966 0.901099 0.037514
+18 28 11 0.819098 0.913879 0.252772
+18 28 12 0.813650 0.925971 0.416984
+18 28 13 0.807239 0.936912 0.496120
+18 28 14 0.801129 0.946826 0.569204
+18 28 15 0.795408 0.955417 0.634506
+18 28 16 0.789799 0.963092 0.693801
+18 28 17 0.784301 0.969849 0.747087
+18 28 18 0.779881 0.975668 0.796029
+18 28 19 0.776297 0.980757 0.841593
+18 28 20 0.772543 0.984406 0.876811
+18 28 21 0.768686 0.987191 0.905823
+18 28 22 0.766259 0.989359 0.929376
+18 28 23 0.764482 0.991246 0.950448
+18 28 24 0.763073 0.992656 0.965258
+18 28 25 0.761788 0.993907 0.977980
+18 28 26 0.760934 0.994414 0.984151
+18 28 27 0.760179 0.994749 0.988811
+18 28 28 0.759611 0.995413 0.992818
+18 28 29 0.759070 0.996124 0.996732
+18 28 30 0.758826 0.996802 1.000342
+18 28 31 0.758602 0.997478 1.003933
+18 29 0 0.857677 0.804167 0.000000
+18 29 1 0.856270 0.809209 0.000000
+18 29 2 0.854820 0.814354 0.000000
+18 29 3 0.852736 0.821047 0.000000
+18 29 4 0.850471 0.828436 0.000000
+18 29 5 0.846939 0.840698 0.000000
+18 29 6 0.843274 0.853500 0.000000
+18 29 7 0.839038 0.868643 0.000000
+18 29 8 0.834425 0.883211 0.000000
+18 29 9 0.828682 0.896055 0.008244
+18 29 10 0.823340 0.908732 0.136444
+18 29 11 0.818884 0.921043 0.304965
+18 29 12 0.813675 0.932734 0.439145
+18 29 13 0.807213 0.943394 0.516091
+18 29 14 0.801058 0.952955 0.586862
+18 29 15 0.795301 0.961104 0.649693
+18 29 16 0.789673 0.968449 0.707328
+18 29 17 0.784176 0.974991 0.759768
+18 29 18 0.779972 0.980557 0.807078
+18 29 19 0.776775 0.985364 0.850397
+18 29 20 0.773314 0.988907 0.884379
+18 29 21 0.769695 0.991693 0.912760
+18 29 22 0.767257 0.993685 0.935063
+18 29 23 0.765355 0.995317 0.954604
+18 29 24 0.763916 0.996643 0.968537
+18 29 25 0.762630 0.997867 0.980601
+18 29 26 0.761776 0.998391 0.986649
+18 29 27 0.761021 0.998753 0.991309
+18 29 28 0.760399 0.999092 0.994493
+18 29 29 0.759796 0.999427 0.997466
+18 29 30 0.759572 1.000081 1.001018
+18 29 31 0.759373 1.000757 1.004609
+18 30 0 0.859303 0.808001 0.000000
+18 30 1 0.857897 0.813023 0.000000
+18 30 2 0.856449 0.818154 0.000000
+18 30 3 0.854365 0.824930 0.000000
+18 30 4 0.852099 0.832382 0.000000
+18 30 5 0.848560 0.844576 0.000000
+18 30 6 0.844748 0.857559 0.000000
+18 30 7 0.839755 0.873968 0.000000
+18 30 8 0.834490 0.889421 0.000000
+18 30 9 0.828410 0.902010 0.072568
+18 30 10 0.822918 0.914440 0.223128
+18 30 11 0.818720 0.926520 0.349986
+18 30 12 0.813689 0.937970 0.457443
+18 30 13 0.807271 0.948374 0.532563
+18 30 14 0.801120 0.957679 0.601302
+18 30 15 0.795313 0.965572 0.661838
+18 30 16 0.789684 0.972633 0.717858
+18 30 17 0.784234 0.978860 0.769364
+18 30 18 0.780256 0.984165 0.815279
+18 30 19 0.777422 0.988752 0.856846
+18 30 20 0.774158 0.992213 0.889981
+18 30 21 0.770635 0.994998 0.918058
+18 30 22 0.768165 0.996919 0.939438
+18 30 23 0.766174 0.998447 0.957774
+18 30 24 0.764730 0.999699 0.971064
+18 30 25 0.763468 1.000858 0.982671
+18 30 26 0.762571 1.001351 0.988613
+18 30 27 0.761758 1.001690 0.993248
+18 30 28 0.761176 1.002005 0.996399
+18 30 29 0.760627 1.002316 0.999340
+18 30 30 0.760376 1.002745 1.002194
+18 30 31 0.760145 1.003182 1.005042
+18 31 0 0.860900 0.811750 0.000000
+18 31 1 0.859494 0.816745 0.000000
+18 31 2 0.858046 0.821856 0.000000
+18 31 3 0.855962 0.828726 0.000000
+18 31 4 0.853696 0.836249 0.000000
+18 31 5 0.850157 0.848348 0.000000
+18 31 6 0.846206 0.861492 0.000000
+18 31 7 0.840474 0.879162 0.000000
+18 31 8 0.834570 0.895498 0.000000
+18 31 9 0.828154 0.907832 0.136297
+18 31 10 0.822508 0.920020 0.308994
+18 31 11 0.818559 0.931884 0.394530
+18 31 12 0.813703 0.943105 0.475484
+18 31 13 0.807336 0.953253 0.548802
+18 31 14 0.801191 0.962309 0.615529
+18 31 15 0.795333 0.969960 0.673780
+18 31 16 0.789704 0.976738 0.728189
+18 31 17 0.784305 0.982644 0.778754
+18 31 18 0.780552 0.987687 0.823291
+18 31 19 0.778080 0.992059 0.863138
+18 31 20 0.775005 0.995439 0.895452
+18 31 21 0.771570 0.998224 0.923247
+18 31 22 0.769068 1.000081 0.943725
+18 31 23 0.766989 1.001514 0.960878
+18 31 24 0.765542 1.002693 0.973540
+18 31 25 0.764306 1.003786 0.984705
+18 31 26 0.763363 1.004244 0.990542
+18 31 27 0.762488 1.004555 0.995149
+18 31 28 0.761952 1.004866 0.998321
+18 31 29 0.761466 1.005178 1.001289
+18 31 30 0.761184 1.005368 1.003403
+18 31 31 0.760916 1.005550 1.005459
+19 0 0 0.475758 0.000000 0.000000
+19 0 1 0.475824 0.000000 0.000000
+19 0 2 0.475896 0.000000 0.000000
+19 0 3 0.476065 0.000000 0.000000
+19 0 4 0.476243 0.000000 0.000000
+19 0 5 0.476478 0.000000 0.000000
+19 0 6 0.477166 0.000000 0.000000
+19 0 7 0.479813 0.000000 0.000000
+19 0 8 0.483351 0.000000 0.037429
+19 0 9 0.489560 0.000000 0.055622
+19 0 10 0.494876 0.000000 0.083028
+19 0 11 0.498229 0.000000 0.130702
+19 0 12 0.501966 0.000000 0.176951
+19 0 13 0.506342 0.000000 0.220823
+19 0 14 0.511367 0.000000 0.266611
+19 0 15 0.517225 0.000000 0.314861
+19 0 16 0.522323 0.000000 0.358551
+19 0 17 0.526661 0.000000 0.397682
+19 0 18 0.530925 0.000000 0.435589
+19 0 19 0.535131 0.000000 0.472545
+19 0 20 0.539423 0.000000 0.505237
+19 0 21 0.543767 0.000000 0.535370
+19 0 22 0.550442 0.000000 0.563399
+19 0 23 0.558176 0.000000 0.590471
+19 0 24 0.572553 0.000000 0.622488
+19 0 25 0.589144 0.000000 0.656153
+19 0 26 0.614966 0.000000 0.696804
+19 0 27 0.642918 0.000000 0.739066
+19 0 28 0.661517 0.000000 0.767908
+19 0 29 0.678781 0.000000 0.794833
+19 0 30 0.691434 0.082036 0.814586
+19 0 31 0.703780 0.180799 0.833860
+19 1 0 0.483017 0.000000 0.000000
+19 1 1 0.483167 0.000000 0.000000
+19 1 2 0.483319 0.000000 0.000000
+19 1 3 0.483488 0.000000 0.000000
+19 1 4 0.483666 0.000000 0.000000
+19 1 5 0.483901 0.000000 0.000000
+19 1 6 0.484569 0.000000 0.000000
+19 1 7 0.487112 0.000000 0.000000
+19 1 8 0.490558 0.000000 0.040751
+19 1 9 0.496713 0.000000 0.058811
+19 1 10 0.502037 0.000000 0.086266
+19 1 11 0.505531 0.000000 0.134392
+19 1 12 0.509329 0.000000 0.181212
+19 1 13 0.513635 0.000000 0.225855
+19 1 14 0.518529 0.000000 0.272133
+19 1 15 0.524178 0.000000 0.320514
+19 1 16 0.529172 0.000000 0.364824
+19 1 17 0.533510 0.000000 0.405064
+19 1 18 0.537764 0.000000 0.443467
+19 1 19 0.541954 0.000000 0.480442
+19 1 20 0.546206 0.000000 0.513481
+19 1 21 0.550495 0.000000 0.544161
+19 1 22 0.556973 0.000000 0.572089
+19 1 23 0.564445 0.000000 0.598767
+19 1 24 0.577445 0.000000 0.629050
+19 1 25 0.592288 0.000000 0.660535
+19 1 26 0.617712 0.000000 0.700776
+19 1 27 0.645576 0.000000 0.743038
+19 1 28 0.664227 0.000000 0.771880
+19 1 29 0.681561 0.000000 0.798806
+19 1 30 0.694168 0.095087 0.818575
+19 1 31 0.706461 0.193850 0.837868
+19 2 0 0.490424 0.000000 0.000000
+19 2 1 0.490658 0.000000 0.000000
+19 2 2 0.490888 0.000000 0.000000
+19 2 3 0.491061 0.000000 0.000000
+19 2 4 0.491242 0.000000 0.000000
+19 2 5 0.491482 0.000000 0.000000
+19 2 6 0.492134 0.000000 0.000000
+19 2 7 0.494572 0.000000 0.000000
+19 2 8 0.497926 0.000000 0.044057
+19 2 9 0.504026 0.000000 0.062026
+19 2 10 0.509355 0.000000 0.089565
+19 2 11 0.512987 0.000000 0.138156
+19 2 12 0.516845 0.000000 0.185562
+19 2 13 0.521079 0.000000 0.230993
+19 2 14 0.525841 0.000000 0.277775
+19 2 15 0.531282 0.000000 0.326294
+19 2 16 0.536166 0.000000 0.371237
+19 2 17 0.540494 0.000000 0.412604
+19 2 18 0.544737 0.000000 0.451514
+19 2 19 0.548915 0.000000 0.488515
+19 2 20 0.553128 0.000000 0.521909
+19 2 21 0.557362 0.000000 0.553139
+19 2 22 0.563638 0.000000 0.580962
+19 2 23 0.570842 0.000000 0.607236
+19 2 24 0.582521 0.000000 0.635855
+19 2 25 0.595692 0.000000 0.665255
+19 2 26 0.620647 0.000000 0.704994
+19 2 27 0.648320 0.000000 0.747119
+19 2 28 0.667000 0.000000 0.775940
+19 2 29 0.684396 0.011145 0.802860
+19 2 30 0.696964 0.108410 0.822644
+19 2 31 0.709209 0.207172 0.841953
+19 3 0 0.500057 0.000000 0.000000
+19 3 1 0.500362 0.000000 0.000000
+19 3 2 0.500661 0.000000 0.000000
+19 3 3 0.500882 0.000000 0.000000
+19 3 4 0.501113 0.000000 0.000000
+19 3 5 0.501424 0.000000 0.000000
+19 3 6 0.502113 0.000000 0.000000
+19 3 7 0.504447 0.000000 0.000000
+19 3 8 0.507705 0.000000 0.047112
+19 3 9 0.513735 0.000000 0.065646
+19 3 10 0.519043 0.000000 0.093778
+19 3 11 0.522762 0.000000 0.143028
+19 3 12 0.526642 0.000000 0.191240
+19 3 13 0.530788 0.000000 0.237723
+19 3 14 0.535410 0.000000 0.285212
+19 3 15 0.540641 0.000000 0.333995
+19 3 16 0.545342 0.000000 0.379756
+19 3 17 0.549512 0.000000 0.422493
+19 3 18 0.553726 0.000000 0.462089
+19 3 19 0.557975 0.000000 0.499241
+19 3 20 0.562159 0.000000 0.533079
+19 3 21 0.566306 0.000000 0.564928
+19 3 22 0.572314 0.000000 0.592571
+19 3 23 0.579168 0.000000 0.618302
+19 3 24 0.590353 0.000000 0.646305
+19 3 25 0.602982 0.000000 0.675065
+19 3 26 0.626414 0.000000 0.712897
+19 3 27 0.652340 0.000000 0.752823
+19 3 28 0.670740 0.000000 0.781303
+19 3 29 0.688066 0.027972 0.808148
+19 3 30 0.700679 0.125798 0.827910
+19 3 31 0.712978 0.224560 0.847200
+19 4 0 0.510635 0.000000 0.000000
+19 4 1 0.510991 0.000000 0.000000
+19 4 2 0.511341 0.000000 0.000000
+19 4 3 0.511617 0.000000 0.000000
+19 4 4 0.511907 0.000000 0.000000
+19 4 5 0.512293 0.000000 0.000000
+19 4 6 0.513027 0.000000 0.000000
+19 4 7 0.515268 0.000000 0.000000
+19 4 8 0.518434 0.000000 0.049127
+19 4 9 0.524378 0.000000 0.069137
+19 4 10 0.529655 0.000000 0.098489
+19 4 11 0.533464 0.000000 0.148396
+19 4 12 0.537366 0.000000 0.197450
+19 4 13 0.541423 0.000000 0.245081
+19 4 14 0.545897 0.000000 0.293340
+19 4 15 0.550906 0.000000 0.342403
+19 4 16 0.555411 0.000000 0.389064
+19 4 17 0.559412 0.000000 0.433323
+19 4 18 0.563592 0.000000 0.473672
+19 4 19 0.567911 0.000000 0.510981
+19 4 20 0.572062 0.000000 0.545302
+19 4 21 0.576112 0.000000 0.577831
+19 4 22 0.581828 0.000000 0.605295
+19 4 23 0.588301 0.000000 0.630457
+19 4 24 0.599034 0.000000 0.657884
+19 4 25 0.611187 0.000000 0.686066
+19 4 26 0.632877 0.000000 0.721728
+19 4 27 0.656769 0.000000 0.759117
+19 4 28 0.674842 0.000000 0.787201
+19 4 29 0.692084 0.046418 0.813955
+19 4 30 0.704736 0.144860 0.833697
+19 4 31 0.717082 0.243625 0.852971
+19 5 0 0.527833 0.000000 0.000000
+19 5 1 0.528101 0.000000 0.000000
+19 5 2 0.528376 0.000000 0.000000
+19 5 3 0.528756 0.000000 0.000000
+19 5 4 0.529152 0.000000 0.000000
+19 5 5 0.529654 0.000000 0.000000
+19 5 6 0.530479 0.000000 0.000000
+19 5 7 0.532703 0.000000 0.000000
+19 5 8 0.535808 0.000000 0.043857
+19 5 9 0.541560 0.000000 0.071722
+19 5 10 0.546738 0.000000 0.106680
+19 5 11 0.550651 0.000000 0.157242
+19 5 12 0.554580 0.000000 0.207388
+19 5 13 0.558532 0.000000 0.256843
+19 5 14 0.562810 0.000000 0.306299
+19 5 15 0.567506 0.000000 0.355757
+19 5 16 0.571732 0.000000 0.403902
+19 5 17 0.575487 0.000000 0.450736
+19 5 18 0.579599 0.000000 0.492318
+19 5 19 0.583989 0.000000 0.529814
+19 5 20 0.588067 0.000000 0.564900
+19 5 21 0.591959 0.000000 0.598539
+19 5 22 0.597216 0.000000 0.625833
+19 5 23 0.603094 0.000000 0.650243
+19 5 24 0.613665 0.000000 0.677370
+19 5 25 0.625800 0.000000 0.705403
+19 5 26 0.644208 0.000000 0.737051
+19 5 27 0.664062 0.000000 0.769532
+19 5 28 0.681477 0.000000 0.796838
+19 5 29 0.698544 0.076193 0.823404
+19 5 30 0.711185 0.175645 0.843135
+19 5 31 0.723531 0.274429 0.862409
+19 6 0 0.547124 0.000000 0.000000
+19 6 1 0.547347 0.000000 0.000000
+19 6 2 0.547585 0.000000 0.000000
+19 6 3 0.548036 0.000000 0.000000
+19 6 4 0.548509 0.000000 0.000000
+19 6 5 0.549124 0.000000 0.000000
+19 6 6 0.550105 0.000000 0.000000
+19 6 7 0.552667 0.000000 0.000000
+19 6 8 0.555955 0.000000 0.037687
+19 6 9 0.561423 0.000000 0.074365
+19 6 10 0.566446 0.000000 0.115625
+19 6 11 0.570491 0.000000 0.166966
+19 6 12 0.574452 0.000000 0.218360
+19 6 13 0.578273 0.000000 0.269842
+19 6 14 0.582332 0.000000 0.320753
+19 6 15 0.586695 0.000000 0.370930
+19 6 16 0.590597 0.000000 0.420578
+19 6 17 0.594038 0.000000 0.469698
+19 6 18 0.598039 0.000000 0.512705
+19 6 19 0.602476 0.000000 0.550957
+19 6 20 0.606463 0.000000 0.586848
+19 6 21 0.610181 0.000000 0.621321
+19 6 22 0.615044 0.000000 0.648752
+19 6 23 0.620428 0.000000 0.672982
+19 6 24 0.630614 0.000000 0.699558
+19 6 25 0.642401 0.000000 0.726916
+19 6 26 0.658080 0.000000 0.755206
+19 6 27 0.674657 0.000000 0.783711
+19 6 28 0.690861 0.008895 0.809661
+19 6 29 0.707011 0.123265 0.835247
+19 6 30 0.719031 0.216622 0.854324
+19 6 31 0.730776 0.308578 0.872966
+19 7 0 0.575480 0.000000 0.000000
+19 7 1 0.575845 0.000000 0.000000
+19 7 2 0.576211 0.000000 0.000000
+19 7 3 0.576592 0.000000 0.000000
+19 7 4 0.577015 0.000000 0.000000
+19 7 5 0.577736 0.000000 0.000000
+19 7 6 0.579153 0.000000 0.000000
+19 7 7 0.583593 0.000000 0.000000
+19 7 8 0.588118 0.000000 0.027612
+19 7 9 0.592903 0.000000 0.077256
+19 7 10 0.597533 0.000000 0.127842
+19 7 11 0.601823 0.000000 0.180499
+19 7 12 0.605846 0.000000 0.233809
+19 7 13 0.609421 0.000000 0.288206
+19 7 14 0.613159 0.000000 0.341686
+19 7 15 0.617104 0.000000 0.393989
+19 7 16 0.620491 0.000000 0.445217
+19 7 17 0.623319 0.000000 0.495372
+19 7 18 0.627022 0.000000 0.540639
+19 7 19 0.631406 0.000000 0.582106
+19 7 20 0.635219 0.000000 0.618979
+19 7 21 0.638691 0.000000 0.653095
+19 7 22 0.643443 0.000000 0.681992
+19 7 23 0.648776 0.000000 0.708517
+19 7 24 0.657608 0.014013 0.733452
+19 7 25 0.667608 0.032784 0.757856
+19 7 26 0.682966 0.067650 0.785639
+19 7 27 0.699561 0.106231 0.814202
+19 7 28 0.712152 0.173695 0.836293
+19 7 29 0.724171 0.245286 0.857459
+19 7 30 0.732930 0.301761 0.873104
+19 7 31 0.741470 0.357228 0.888380
+19 8 0 0.602396 0.049775 0.000000
+19 8 1 0.602835 0.052136 0.000000
+19 8 2 0.603270 0.054412 0.000000
+19 8 3 0.603629 0.055414 0.000000
+19 8 4 0.604048 0.056460 0.000000
+19 8 5 0.604882 0.057810 0.000000
+19 8 6 0.606651 0.058778 0.000000
+19 8 7 0.612472 0.058092 0.000000
+19 8 8 0.617907 0.059089 0.008436
+19 8 9 0.622184 0.065134 0.074846
+19 8 10 0.626496 0.070055 0.137595
+19 8 11 0.630888 0.072505 0.192288
+19 8 12 0.634852 0.075092 0.247870
+19 8 13 0.638104 0.077912 0.304933
+19 8 14 0.641505 0.079614 0.360829
+19 8 15 0.645099 0.079880 0.415224
+19 8 16 0.648029 0.079609 0.468051
+19 8 17 0.650297 0.078803 0.519310
+19 8 18 0.653695 0.077708 0.566497
+19 8 19 0.657973 0.076389 0.610516
+19 8 20 0.661544 0.077737 0.648327
+19 8 21 0.664691 0.080685 0.682414
+19 8 22 0.669197 0.087407 0.712387
+19 8 23 0.674321 0.095843 0.740488
+19 8 24 0.681844 0.120258 0.764081
+19 8 25 0.690165 0.149999 0.786172
+19 8 26 0.704831 0.205642 0.813048
+19 8 27 0.720961 0.267262 0.841028
+19 8 28 0.730566 0.308730 0.859829
+19 8 29 0.739239 0.347319 0.877320
+19 8 30 0.745383 0.375461 0.890103
+19 8 31 0.751359 0.402907 0.902573
+19 9 0 0.624987 0.080825 0.000000
+19 9 1 0.625303 0.082264 0.000000
+19 9 2 0.625628 0.083760 0.000000
+19 9 3 0.626112 0.086115 0.000000
+19 9 4 0.626657 0.088723 0.000000
+19 9 5 0.627632 0.093100 0.000000
+19 9 6 0.629496 0.097392 0.000000
+19 9 7 0.635213 0.101319 0.000000
+19 9 8 0.640574 0.105398 0.000000
+19 9 9 0.644867 0.109933 0.056531
+19 9 10 0.649088 0.114556 0.139958
+19 9 11 0.653150 0.119374 0.198845
+19 9 12 0.656698 0.124119 0.257769
+19 9 13 0.659391 0.128743 0.316751
+19 9 14 0.662410 0.132316 0.374599
+19 9 15 0.665848 0.134538 0.430987
+19 9 16 0.668499 0.136631 0.485469
+19 9 17 0.670363 0.138594 0.538044
+19 9 18 0.673436 0.139536 0.586123
+19 9 19 0.677451 0.139684 0.630707
+19 9 20 0.680573 0.142005 0.669329
+19 9 21 0.683158 0.145630 0.704374
+19 9 22 0.687019 0.152897 0.734246
+19 9 23 0.691460 0.161818 0.761765
+19 9 24 0.697800 0.183695 0.784917
+19 9 25 0.704772 0.209890 0.806613
+19 9 26 0.717634 0.260559 0.831382
+19 9 27 0.731856 0.316875 0.856860
+19 9 28 0.740350 0.354468 0.874083
+19 9 29 0.748026 0.389387 0.890127
+19 9 30 0.753502 0.414847 0.901762
+19 9 31 0.758831 0.439675 0.913103
+19 10 0 0.648546 0.118622 0.000000
+19 10 1 0.648776 0.119750 0.000000
+19 10 2 0.649023 0.121016 0.000000
+19 10 3 0.649520 0.124347 0.000000
+19 10 4 0.650078 0.128072 0.000000
+19 10 5 0.651056 0.134547 0.000000
+19 10 6 0.652922 0.140990 0.000000
+19 10 7 0.658634 0.147294 0.000000
+19 10 8 0.663970 0.153115 0.000000
+19 10 9 0.668183 0.157488 0.042392
+19 10 10 0.672246 0.162583 0.142170
+19 10 11 0.675982 0.169270 0.204813
+19 10 12 0.679139 0.175808 0.266835
+19 10 13 0.681333 0.182096 0.327825
+19 10 14 0.683952 0.187363 0.387830
+19 10 15 0.687118 0.191318 0.446570
+19 10 16 0.689457 0.195454 0.502798
+19 10 17 0.690967 0.199773 0.556513
+19 10 18 0.693702 0.202556 0.605564
+19 10 19 0.697389 0.204143 0.650989
+19 10 20 0.699958 0.207331 0.690345
+19 10 21 0.701856 0.211479 0.726061
+19 10 22 0.705022 0.218762 0.755927
+19 10 23 0.708764 0.227470 0.783134
+19 10 24 0.714015 0.247188 0.805744
+19 10 25 0.719769 0.270577 0.826822
+19 10 26 0.730656 0.315930 0.849357
+19 10 27 0.742727 0.366352 0.872228
+19 10 28 0.749999 0.400260 0.887848
+19 10 29 0.756585 0.431810 0.902433
+19 10 30 0.761355 0.455041 0.913057
+19 10 31 0.766004 0.477718 0.923417
+19 11 0 0.674234 0.171262 0.000000
+19 11 1 0.674464 0.173424 0.000000
+19 11 2 0.674696 0.175669 0.000000
+19 11 3 0.674965 0.179149 0.000000
+19 11 4 0.675285 0.183010 0.000000
+19 11 5 0.675964 0.189540 0.000000
+19 11 6 0.677627 0.195551 0.000000
+19 11 7 0.683550 0.199313 0.000000
+19 11 8 0.688971 0.203929 0.000000
+19 11 9 0.692887 0.211104 0.037439
+19 11 10 0.696648 0.218366 0.144052
+19 11 11 0.700067 0.225824 0.209482
+19 11 12 0.702889 0.233351 0.274071
+19 11 13 0.704716 0.240995 0.337259
+19 11 14 0.706898 0.247568 0.399876
+19 11 15 0.709536 0.252763 0.461758
+19 11 16 0.711489 0.258243 0.519933
+19 11 17 0.712757 0.264008 0.574400
+19 11 18 0.715120 0.268198 0.624596
+19 11 19 0.718336 0.271163 0.671470
+19 11 20 0.720126 0.274983 0.711393
+19 11 21 0.721062 0.279316 0.747145
+19 11 22 0.723422 0.285453 0.777216
+19 11 23 0.726430 0.292412 0.804706
+19 11 24 0.730801 0.310805 0.826554
+19 11 25 0.735626 0.333011 0.846522
+19 11 26 0.744160 0.372299 0.866542
+19 11 27 0.753549 0.415530 0.886574
+19 11 28 0.759351 0.446170 0.900539
+19 11 29 0.764641 0.475011 0.913638
+19 11 30 0.768624 0.497015 0.923552
+19 11 31 0.772519 0.518564 0.933254
+19 12 0 0.700008 0.224913 0.000000
+19 12 1 0.700238 0.227714 0.000000
+19 12 2 0.700462 0.230566 0.000000
+19 12 3 0.700600 0.234188 0.000000
+19 12 4 0.700788 0.238186 0.000000
+19 12 5 0.701319 0.244819 0.000000
+19 12 6 0.702835 0.250963 0.000000
+19 12 7 0.708614 0.254986 0.000000
+19 12 8 0.713835 0.260250 0.000000
+19 12 9 0.717381 0.269231 0.032427
+19 12 10 0.720779 0.278094 0.142901
+19 12 11 0.723850 0.286696 0.212134
+19 12 12 0.726244 0.295378 0.280131
+19 12 13 0.727506 0.304192 0.346069
+19 12 14 0.729132 0.312012 0.411326
+19 12 15 0.731225 0.318555 0.475708
+19 12 16 0.732674 0.325203 0.535762
+19 12 17 0.733481 0.331957 0.591488
+19 12 18 0.735322 0.337210 0.642876
+19 12 19 0.737968 0.341297 0.690889
+19 12 20 0.739009 0.345531 0.731470
+19 12 21 0.739088 0.349852 0.767590
+19 12 22 0.740616 0.355273 0.797631
+19 12 23 0.742804 0.361194 0.824909
+19 12 24 0.746289 0.377896 0.846047
+19 12 25 0.750205 0.398190 0.865138
+19 12 26 0.756753 0.431985 0.883140
+19 12 27 0.763908 0.468895 0.900890
+19 12 28 0.768441 0.496140 0.913418
+19 12 29 0.772599 0.522004 0.925200
+19 12 30 0.775848 0.542156 0.934342
+19 12 31 0.779036 0.561926 0.943309
+19 13 0 0.725925 0.280250 0.000000
+19 13 1 0.726155 0.283030 0.000000
+19 13 2 0.726381 0.285870 0.000000
+19 13 3 0.726553 0.289622 0.000000
+19 13 4 0.726784 0.293757 0.000000
+19 13 5 0.727420 0.300576 0.000000
+19 13 6 0.728882 0.307795 0.000000
+19 13 7 0.733924 0.316750 0.000000
+19 13 8 0.738469 0.325749 0.000000
+19 13 9 0.741525 0.334879 0.027317
+19 13 10 0.744459 0.344397 0.136698
+19 13 11 0.747130 0.354767 0.211426
+19 13 12 0.748938 0.364877 0.284233
+19 13 13 0.749309 0.374552 0.353837
+19 13 14 0.750181 0.383524 0.421782
+19 13 15 0.751697 0.391592 0.487592
+19 13 16 0.752446 0.399115 0.549413
+19 13 17 0.752429 0.406094 0.607244
+19 13 18 0.753497 0.411838 0.659903
+19 13 19 0.755408 0.416623 0.708538
+19 13 20 0.755749 0.420905 0.749928
+19 13 21 0.755147 0.424886 0.786970
+19 13 22 0.755801 0.430306 0.816588
+19 13 23 0.757027 0.436379 0.842832
+19 13 24 0.759614 0.450775 0.863345
+19 13 25 0.762655 0.467946 0.881948
+19 13 26 0.767830 0.497197 0.898759
+19 13 27 0.773497 0.529236 0.915156
+19 13 28 0.777093 0.552876 0.926610
+19 13 29 0.780393 0.575316 0.937358
+19 13 30 0.782998 0.592573 0.945625
+19 13 31 0.785556 0.609483 0.953727
+19 14 0 0.752381 0.342947 0.000000
+19 14 1 0.752457 0.345592 0.000000
+19 14 2 0.752530 0.348302 0.000000
+19 14 3 0.752546 0.352004 0.000000
+19 14 4 0.752601 0.356071 0.000000
+19 14 5 0.752929 0.362688 0.000000
+19 14 6 0.754094 0.370200 0.000000
+19 14 7 0.758884 0.381592 0.000000
+19 14 8 0.763111 0.392631 0.000000
+19 14 9 0.765645 0.402611 0.000000
+19 14 10 0.768056 0.413185 0.095972
+19 14 11 0.770195 0.425069 0.196489
+19 14 12 0.771339 0.436439 0.286682
+19 14 13 0.770825 0.446953 0.359667
+19 14 14 0.770839 0.456906 0.430401
+19 14 15 0.771534 0.466136 0.498240
+19 14 16 0.771395 0.474134 0.561738
+19 14 17 0.770424 0.480900 0.620894
+19 14 18 0.770571 0.486920 0.674746
+19 14 19 0.771588 0.492362 0.724471
+19 14 20 0.771210 0.496626 0.766614
+19 14 21 0.769996 0.500186 0.804208
+19 14 22 0.770060 0.505306 0.834063
+19 14 23 0.770706 0.511135 0.860401
+19 14 24 0.772566 0.523505 0.880484
+19 14 25 0.774831 0.538054 0.898483
+19 14 26 0.778736 0.562943 0.913846
+19 14 27 0.783020 0.590217 0.928600
+19 14 28 0.785618 0.610137 0.938843
+19 14 29 0.787974 0.629005 0.948441
+19 14 30 0.789821 0.643597 0.955810
+19 14 31 0.791634 0.657904 0.963030
+19 15 0 0.779529 0.415108 0.000000
+19 15 1 0.779255 0.417470 0.000000
+19 15 2 0.778975 0.419899 0.000000
+19 15 3 0.778590 0.423319 0.000000
+19 15 4 0.778189 0.427051 0.000000
+19 15 5 0.777679 0.432971 0.000000
+19 15 6 0.778232 0.439772 0.000000
+19 15 7 0.783395 0.450393 0.000000
+19 15 8 0.787762 0.461292 0.000000
+19 15 9 0.789737 0.473022 0.000000
+19 15 10 0.791545 0.485170 0.010860
+19 15 11 0.792983 0.498240 0.163258
+19 15 12 0.793361 0.510655 0.287006
+19 15 13 0.791972 0.521979 0.363003
+19 15 14 0.790996 0.532690 0.436657
+19 15 15 0.790554 0.542615 0.507299
+19 15 16 0.789286 0.550573 0.572359
+19 15 17 0.787193 0.556566 0.631836
+19 15 18 0.786230 0.562588 0.686780
+19 15 19 0.786146 0.568633 0.738198
+19 15 20 0.785028 0.572794 0.781023
+19 15 21 0.783288 0.575826 0.818693
+19 15 22 0.783128 0.580264 0.849633
+19 15 23 0.783686 0.585341 0.877514
+19 15 24 0.785037 0.596041 0.897420
+19 15 25 0.786653 0.608617 0.914667
+19 15 26 0.789423 0.629375 0.928249
+19 15 27 0.792459 0.652021 0.940987
+19 15 28 0.793979 0.668071 0.949842
+19 15 29 0.795282 0.683179 0.958142
+19 15 30 0.796224 0.695403 0.964582
+19 15 31 0.797142 0.707435 0.970899
+19 16 0 0.802399 0.478193 0.000000
+19 16 1 0.802038 0.480714 0.000000
+19 16 2 0.801670 0.483306 0.000000
+19 16 3 0.801189 0.486951 0.000000
+19 16 4 0.800674 0.490927 0.000000
+19 16 5 0.799917 0.497231 0.000000
+19 16 6 0.800219 0.504372 0.000000
+19 16 7 0.805104 0.515145 0.000000
+19 16 8 0.809089 0.526407 0.000000
+19 16 9 0.810374 0.539133 0.000000
+19 16 10 0.811450 0.552219 0.000000
+19 16 11 0.812066 0.566098 0.141098
+19 16 12 0.811526 0.579227 0.284785
+19 16 13 0.809061 0.591107 0.364102
+19 16 14 0.807048 0.602192 0.440501
+19 16 15 0.805617 0.612258 0.513146
+19 16 16 0.803409 0.620488 0.579805
+19 16 17 0.800424 0.626882 0.640478
+19 16 18 0.798604 0.633192 0.696521
+19 16 19 0.797690 0.639435 0.748963
+19 16 20 0.796047 0.643694 0.792643
+19 16 21 0.793966 0.646762 0.831066
+19 16 22 0.793543 0.650740 0.862675
+19 16 23 0.793873 0.655131 0.891186
+19 16 24 0.794623 0.664074 0.910925
+19 16 25 0.795511 0.674534 0.927740
+19 16 26 0.797382 0.691565 0.940140
+19 16 27 0.799480 0.710112 0.951522
+19 16 28 0.800192 0.722827 0.959352
+19 16 29 0.800706 0.734710 0.966674
+19 16 30 0.801105 0.744873 0.972444
+19 16 31 0.801496 0.754921 0.978112
+19 17 0 0.820992 0.532202 0.000000
+19 17 1 0.820806 0.535324 0.000000
+19 17 2 0.820615 0.538524 0.000000
+19 17 3 0.820343 0.542900 0.000000
+19 17 4 0.820054 0.547699 0.000000
+19 17 5 0.819645 0.555467 0.000000
+19 17 6 0.820054 0.564000 0.000000
+19 17 7 0.824011 0.575847 0.000000
+19 17 8 0.827094 0.587974 0.000000
+19 17 9 0.827557 0.600943 0.000000
+19 17 10 0.827773 0.614332 0.000000
+19 17 11 0.827443 0.628645 0.130008
+19 17 12 0.825833 0.642157 0.280017
+19 17 13 0.822092 0.654337 0.362965
+19 17 14 0.818995 0.665411 0.441932
+19 17 15 0.816725 0.675064 0.515782
+19 17 16 0.813766 0.683876 0.584077
+19 17 17 0.810118 0.691848 0.646818
+19 17 18 0.807693 0.698731 0.703968
+19 17 19 0.806220 0.704769 0.756768
+19 17 20 0.804268 0.709325 0.801475
+19 17 21 0.802029 0.712994 0.841326
+19 17 22 0.801304 0.716734 0.873187
+19 17 23 0.801268 0.720507 0.901417
+19 17 24 0.801322 0.727603 0.921001
+19 17 25 0.801406 0.735806 0.937704
+19 17 26 0.802614 0.749513 0.949519
+19 17 27 0.804082 0.764491 0.960206
+19 17 28 0.804256 0.774406 0.967373
+19 17 29 0.804245 0.783598 0.974037
+19 17 30 0.804463 0.792006 0.979397
+19 17 31 0.804696 0.800362 0.984670
+19 18 0 0.838905 0.586320 0.000000
+19 18 1 0.838549 0.589324 0.000000
+19 18 2 0.838185 0.592404 0.000000
+19 18 3 0.837690 0.596613 0.000000
+19 18 4 0.837178 0.601266 0.000000
+19 18 5 0.836548 0.609030 0.000000
+19 18 6 0.836792 0.617803 0.000000
+19 18 7 0.840825 0.630945 0.000000
+19 18 8 0.843747 0.644121 0.000000
+19 18 9 0.843338 0.657397 0.000000
+19 18 10 0.842576 0.671175 0.000000
+19 18 11 0.841034 0.686058 0.122288
+19 18 12 0.838315 0.699901 0.274345
+19 18 13 0.833631 0.712011 0.360610
+19 18 14 0.829589 0.723184 0.442104
+19 18 15 0.826371 0.733153 0.517464
+19 18 16 0.822675 0.742141 0.587127
+19 18 17 0.818501 0.750147 0.651092
+19 18 18 0.815633 0.757519 0.709496
+19 18 19 0.813778 0.764397 0.763576
+19 18 20 0.811542 0.769070 0.809002
+19 18 21 0.809077 0.772420 0.849236
+19 18 22 0.808137 0.776092 0.881561
+19 18 23 0.807891 0.779912 0.910292
+19 18 24 0.807465 0.785588 0.929749
+19 18 25 0.806979 0.791883 0.946116
+19 18 26 0.807576 0.802370 0.957294
+19 18 27 0.808422 0.813826 0.967275
+19 18 28 0.808205 0.821586 0.973972
+19 18 29 0.807835 0.828818 0.980199
+19 18 30 0.807782 0.835338 0.985132
+19 18 31 0.807749 0.841811 0.989978
+19 19 0 0.856289 0.640523 0.000000
+19 19 1 0.855496 0.642851 0.000000
+19 19 2 0.854686 0.645242 0.000000
+19 19 3 0.853632 0.648587 0.000000
+19 19 4 0.852548 0.652340 0.000000
+19 19 5 0.851255 0.658958 0.000000
+19 19 6 0.851120 0.667075 0.000000
+19 19 7 0.856012 0.681685 0.000000
+19 19 8 0.859350 0.696051 0.000000
+19 19 9 0.858029 0.709685 0.000000
+19 19 10 0.856196 0.723921 0.000000
+19 19 11 0.853238 0.739480 0.117189
+19 19 12 0.849376 0.753612 0.267970
+19 19 13 0.844009 0.765363 0.357307
+19 19 14 0.839130 0.776721 0.441294
+19 19 15 0.834879 0.787573 0.518405
+19 19 16 0.830458 0.796419 0.589226
+19 19 17 0.825867 0.803261 0.653759
+19 19 18 0.822678 0.811055 0.713534
+19 19 19 0.820581 0.819589 0.769609
+19 19 20 0.818079 0.824237 0.815514
+19 19 21 0.815334 0.826552 0.855317
+19 19 22 0.814247 0.830289 0.888271
+19 19 23 0.813913 0.834673 0.918112
+19 19 24 0.813175 0.839262 0.937465
+19 19 25 0.812303 0.843919 0.953322
+19 19 26 0.812327 0.851268 0.963823
+19 19 27 0.812558 0.859239 0.973088
+19 19 28 0.812063 0.865345 0.979464
+19 19 29 0.811465 0.871185 0.985428
+19 19 30 0.811069 0.875713 0.989920
+19 19 31 0.810686 0.880154 0.994315
+19 20 0 0.867215 0.678702 0.000000
+19 20 1 0.866443 0.681269 0.000000
+19 20 2 0.865656 0.683906 0.000000
+19 20 3 0.864643 0.687596 0.000000
+19 20 4 0.863602 0.691719 0.000000
+19 20 5 0.862364 0.698881 0.000000
+19 20 6 0.862162 0.707431 0.000000
+19 20 7 0.866445 0.721993 0.000000
+19 20 8 0.869173 0.736479 0.000000
+19 20 9 0.867237 0.750740 0.000000
+19 20 10 0.864723 0.765387 0.000000
+19 20 11 0.860938 0.780881 0.113906
+19 20 12 0.856354 0.795072 0.264066
+19 20 13 0.850436 0.807090 0.355918
+19 20 14 0.845044 0.818465 0.441886
+19 20 15 0.840330 0.829014 0.520288
+19 20 16 0.835478 0.838090 0.592365
+19 20 17 0.830488 0.845694 0.658118
+19 20 18 0.826865 0.853614 0.718498
+19 20 19 0.824304 0.861782 0.774698
+19 20 20 0.821495 0.866571 0.820901
+19 20 21 0.818535 0.869332 0.861105
+19 20 22 0.817246 0.872918 0.893865
+19 20 23 0.816715 0.876878 0.923240
+19 20 24 0.815796 0.880522 0.942325
+19 20 25 0.814747 0.884061 0.957980
+19 20 26 0.814517 0.889100 0.968188
+19 20 27 0.814476 0.894487 0.977139
+19 20 28 0.813681 0.898682 0.983277
+19 20 29 0.812779 0.902707 0.989013
+19 20 30 0.812282 0.906231 0.993277
+19 20 31 0.811812 0.909722 0.997443
+19 21 0 0.874266 0.707266 0.000000
+19 21 1 0.873790 0.710622 0.000000
+19 21 2 0.873306 0.714066 0.000000
+19 21 3 0.872694 0.718826 0.000000
+19 21 4 0.872065 0.724081 0.000000
+19 21 5 0.871316 0.732802 0.000000
+19 21 6 0.871232 0.742438 0.000000
+19 21 7 0.874027 0.756042 0.000000
+19 21 8 0.875530 0.770007 0.000000
+19 21 9 0.873156 0.785056 0.000000
+19 21 10 0.870194 0.800086 0.000000
+19 21 11 0.865937 0.815071 0.111713
+19 21 12 0.860881 0.829183 0.261646
+19 21 13 0.854492 0.841840 0.355679
+19 21 14 0.848782 0.853132 0.443317
+19 21 15 0.843946 0.862669 0.522735
+19 21 16 0.838840 0.872197 0.596128
+19 21 17 0.833463 0.881717 0.663495
+19 21 18 0.829336 0.889587 0.724019
+19 21 19 0.826180 0.896175 0.779221
+19 21 20 0.823037 0.901205 0.825613
+19 21 21 0.819903 0.905301 0.866718
+19 21 22 0.818378 0.908605 0.898789
+19 21 23 0.817585 0.911549 0.926754
+19 21 24 0.816562 0.914334 0.945473
+19 21 25 0.815462 0.917066 0.961110
+19 21 26 0.815170 0.920294 0.971255
+19 21 27 0.815064 0.923636 0.980134
+19 21 28 0.813955 0.925766 0.986082
+19 21 29 0.812702 0.927723 0.991611
+19 21 30 0.812249 0.930836 0.995774
+19 21 31 0.811850 0.934027 0.999847
+19 22 0 0.882347 0.732680 0.000000
+19 22 1 0.881689 0.736063 0.000000
+19 22 2 0.881016 0.739531 0.000000
+19 22 3 0.880133 0.744278 0.000000
+19 22 4 0.879190 0.749497 0.000000
+19 22 5 0.877825 0.758021 0.000000
+19 22 6 0.877239 0.767635 0.000000
+19 22 7 0.880027 0.781973 0.000000
+19 22 8 0.881341 0.796419 0.000000
+19 22 9 0.878231 0.811185 0.000000
+19 22 10 0.874656 0.826079 0.000000
+19 22 11 0.870060 0.841255 0.114128
+19 22 12 0.864781 0.855436 0.265560
+19 22 13 0.858363 0.867958 0.360520
+19 22 14 0.852647 0.879487 0.449069
+19 22 15 0.847833 0.889741 0.529375
+19 22 16 0.842485 0.899308 0.602955
+19 22 17 0.836603 0.908186 0.669806
+19 22 18 0.832028 0.915679 0.729907
+19 22 19 0.828468 0.922093 0.784758
+19 22 20 0.824945 0.926989 0.830604
+19 22 21 0.821443 0.930972 0.871049
+19 22 22 0.819789 0.934325 0.902841
+19 22 23 0.818974 0.937392 0.930702
+19 22 24 0.817950 0.939795 0.949108
+19 22 25 0.816858 0.941976 0.964364
+19 22 26 0.816598 0.944317 0.974157
+19 22 27 0.816531 0.946695 0.982689
+19 22 28 0.815373 0.948026 0.988436
+19 22 29 0.814059 0.949207 0.993784
+19 22 30 0.813374 0.951371 0.997836
+19 22 31 0.812731 0.953600 1.001802
+19 23 0 0.890897 0.756661 0.000000
+19 23 1 0.889837 0.759726 0.000000
+19 23 2 0.888753 0.762864 0.000000
+19 23 3 0.887294 0.767104 0.000000
+19 23 4 0.885707 0.771755 0.000000
+19 23 5 0.883225 0.779285 0.000000
+19 23 6 0.881855 0.788373 0.000000
+19 23 7 0.885310 0.804215 0.000000
+19 23 8 0.886905 0.819596 0.000000
+19 23 9 0.882922 0.833592 0.000000
+19 23 10 0.878660 0.848116 0.000000
+19 23 11 0.873785 0.863802 0.118638
+19 23 12 0.868396 0.878118 0.272352
+19 23 13 0.862150 0.890151 0.367670
+19 23 14 0.856569 0.902064 0.456784
+19 23 15 0.851842 0.913823 0.537921
+19 23 16 0.846259 0.923239 0.611174
+19 23 17 0.839818 0.930312 0.676543
+19 23 18 0.834820 0.937278 0.735962
+19 23 19 0.830944 0.944160 0.790756
+19 23 20 0.827018 0.948749 0.835724
+19 23 21 0.823062 0.951962 0.874797
+19 23 22 0.821326 0.955514 0.906497
+19 23 23 0.820598 0.959221 0.934846
+19 23 24 0.819622 0.961458 0.952965
+19 23 25 0.818564 0.963206 0.967675
+19 23 26 0.818379 0.965082 0.976983
+19 23 27 0.818396 0.966986 0.985046
+19 23 28 0.817311 0.968093 0.990585
+19 23 29 0.816068 0.969086 0.995763
+19 23 30 0.815024 0.970056 0.999699
+19 23 31 0.813994 0.971023 1.003553
+19 24 0 0.896665 0.773639 0.000000
+19 24 1 0.895364 0.777386 0.000000
+19 24 2 0.894037 0.781190 0.000000
+19 24 3 0.892330 0.785840 0.000000
+19 24 4 0.890492 0.790821 0.000000
+19 24 5 0.887729 0.798115 0.000000
+19 24 6 0.885856 0.806858 0.000000
+19 24 7 0.887834 0.821878 0.000000
+19 24 8 0.888330 0.836629 0.000000
+19 24 9 0.884378 0.850573 0.000000
+19 24 10 0.880002 0.864907 0.000000
+19 24 11 0.874688 0.880100 0.133804
+19 24 12 0.869090 0.894056 0.293994
+19 24 13 0.863019 0.905954 0.387327
+19 24 14 0.857522 0.917714 0.474607
+19 24 15 0.852765 0.929298 0.554103
+19 24 16 0.847188 0.938472 0.625475
+19 24 17 0.840792 0.945236 0.688723
+19 24 18 0.835723 0.951894 0.746397
+19 24 19 0.831688 0.958469 0.799736
+19 24 20 0.827681 0.962858 0.843108
+19 24 21 0.823692 0.965936 0.880498
+19 24 22 0.821797 0.969226 0.911019
+19 24 23 0.820854 0.972612 0.938415
+19 24 24 0.819752 0.974583 0.955973
+19 24 25 0.818596 0.976081 0.970250
+19 24 26 0.818324 0.977756 0.979211
+19 24 27 0.818256 0.979472 0.986944
+19 24 28 0.817348 0.980514 0.992331
+19 24 29 0.816320 0.981460 0.997382
+19 24 30 0.815348 0.982105 1.001218
+19 24 31 0.814380 0.982731 1.004973
+19 25 0 0.901506 0.788283 0.000000
+19 25 1 0.900015 0.793046 0.000000
+19 25 2 0.898503 0.797847 0.000000
+19 25 3 0.896658 0.803213 0.000000
+19 25 4 0.894698 0.808822 0.000000
+19 25 5 0.891936 0.816135 0.000000
+19 25 6 0.889652 0.824593 0.000000
+19 25 7 0.889439 0.838014 0.000000
+19 25 8 0.888375 0.851613 0.000000
+19 25 9 0.884757 0.865746 0.000000
+19 25 10 0.880455 0.879951 0.000000
+19 25 11 0.874651 0.894315 0.152521
+19 25 12 0.868811 0.907747 0.320587
+19 25 13 0.862915 0.919626 0.411154
+19 25 14 0.857485 0.931055 0.495799
+19 25 15 0.852658 0.941906 0.572829
+19 25 16 0.847168 0.950806 0.641802
+19 25 17 0.841018 0.957758 0.702719
+19 25 18 0.835997 0.964181 0.758292
+19 25 19 0.831854 0.970192 0.809711
+19 25 20 0.827874 0.974417 0.851246
+19 25 21 0.823992 0.977570 0.886851
+19 25 22 0.821914 0.980444 0.915828
+19 25 23 0.820655 0.983191 0.941794
+19 25 24 0.819367 0.984860 0.958697
+19 25 25 0.818070 0.986171 0.972581
+19 25 26 0.817657 0.987734 0.981238
+19 25 27 0.817448 0.989356 0.988689
+19 25 28 0.816752 0.990387 0.993943
+19 25 29 0.815986 0.991333 0.998882
+19 25 30 0.815229 0.991944 1.002623
+19 25 31 0.814473 0.992532 1.006284
+19 26 0 0.903725 0.797035 0.000000
+19 26 1 0.902155 0.801912 0.000000
+19 26 2 0.900559 0.806862 0.000000
+19 26 3 0.898562 0.812896 0.000000
+19 26 4 0.896431 0.819306 0.000000
+19 26 5 0.893361 0.828334 0.000000
+19 26 6 0.890739 0.838130 0.000000
+19 26 7 0.890058 0.851252 0.000000
+19 26 8 0.888498 0.864517 0.000000
+19 26 9 0.884300 0.878212 0.000000
+19 26 10 0.879705 0.891909 0.000000
+19 26 11 0.874235 0.905613 0.176051
+19 26 12 0.868607 0.918494 0.353964
+19 26 13 0.862715 0.930002 0.440910
+19 26 14 0.857208 0.940862 0.521904
+19 26 15 0.852195 0.950887 0.595247
+19 26 16 0.846800 0.959325 0.660843
+19 26 17 0.841023 0.966176 0.718696
+19 26 18 0.836273 0.972384 0.772115
+19 26 19 0.832322 0.978090 0.822087
+19 26 20 0.828534 0.982134 0.861400
+19 26 21 0.824844 0.985180 0.894316
+19 26 22 0.822784 0.987843 0.921511
+19 26 23 0.821466 0.990332 0.946107
+19 26 24 0.820101 0.991910 0.962452
+19 26 25 0.818719 0.993186 0.976047
+19 26 26 0.817943 0.994256 0.983738
+19 26 27 0.817307 0.995278 0.990067
+19 26 28 0.816588 0.996234 0.995095
+19 26 29 0.815858 0.997180 0.999937
+19 26 30 0.815153 0.997784 1.003597
+19 26 31 0.814450 0.998366 1.007179
+19 27 0 0.905339 0.804427 0.000000
+19 27 1 0.903715 0.809210 0.000000
+19 27 2 0.902059 0.814113 0.000000
+19 27 3 0.899907 0.820806 0.000000
+19 27 4 0.897592 0.828055 0.000000
+19 27 5 0.894144 0.839191 0.000000
+19 27 6 0.891202 0.850700 0.000000
+19 27 7 0.890450 0.863822 0.000000
+19 27 8 0.888639 0.876941 0.000000
+19 27 9 0.883651 0.890053 0.000000
+19 27 10 0.878676 0.903156 0.000000
+19 27 11 0.873731 0.916238 0.200691
+19 27 12 0.868419 0.928561 0.388907
+19 27 13 0.862494 0.939617 0.472034
+19 27 14 0.856875 0.949853 0.549143
+19 27 15 0.851650 0.959031 0.618515
+19 27 16 0.846351 0.966963 0.680511
+19 27 17 0.840978 0.973648 0.735130
+19 27 18 0.836551 0.979644 0.786382
+19 27 19 0.832859 0.985104 0.835017
+19 27 20 0.829300 0.988963 0.872018
+19 27 21 0.825822 0.991861 0.902037
+19 27 22 0.823829 0.994361 0.927396
+19 27 23 0.822511 0.996679 0.950636
+19 27 24 0.821092 0.998216 0.966444
+19 27 25 0.819641 0.999491 0.979775
+19 27 26 0.818450 0.999979 0.986347
+19 27 27 0.817319 1.000286 0.991359
+19 27 28 0.816524 1.001152 0.996141
+19 27 29 0.815777 1.002098 1.000889
+19 27 30 0.815087 1.002703 1.004472
+19 27 31 0.814401 1.003285 1.007978
+19 28 0 0.907110 0.809814 0.000000
+19 28 1 0.905542 0.814668 0.000000
+19 28 2 0.903936 0.819637 0.000000
+19 28 3 0.901764 0.826330 0.000000
+19 28 4 0.899410 0.833650 0.000000
+19 28 5 0.895776 0.845364 0.000000
+19 28 6 0.892500 0.857535 0.000000
+19 28 7 0.890774 0.871692 0.000000
+19 28 8 0.888131 0.885524 0.000000
+19 28 9 0.882737 0.898383 0.000000
+19 28 10 0.877605 0.911159 0.034221
+19 28 11 0.873047 0.923752 0.248681
+19 28 12 0.867928 0.935655 0.412978
+19 28 13 0.861875 0.946408 0.493670
+19 28 14 0.856193 0.956276 0.568227
+19 28 15 0.850989 0.965004 0.634898
+19 28 16 0.845725 0.972584 0.694970
+19 28 17 0.840403 0.979017 0.748444
+19 28 18 0.836162 0.984747 0.797926
+19 28 19 0.832761 0.989930 0.844303
+19 28 20 0.829434 0.993673 0.879911
+19 28 21 0.826151 0.996552 0.909059
+19 28 22 0.824198 0.998908 0.933078
+19 28 23 0.822850 1.001025 0.954766
+19 28 24 0.821417 1.002461 0.969730
+19 28 25 0.819957 1.003670 0.982452
+19 28 26 0.818714 1.004127 0.988776
+19 28 27 0.817522 1.004411 0.993624
+19 28 28 0.816704 1.004986 0.997654
+19 28 29 0.815940 1.005603 1.001568
+19 28 30 0.815309 1.006187 1.005090
+19 28 31 0.814687 1.006769 1.008587
+19 29 0 0.908904 0.814915 0.000000
+19 29 1 0.907407 0.819863 0.000000
+19 29 2 0.905867 0.824914 0.000000
+19 29 3 0.903695 0.831513 0.000000
+19 29 4 0.901321 0.838796 0.000000
+19 29 5 0.897529 0.850867 0.000000
+19 29 6 0.893918 0.863551 0.000000
+19 29 7 0.891088 0.878890 0.000000
+19 29 8 0.887529 0.893558 0.000000
+19 29 9 0.881785 0.906211 0.004036
+19 29 10 0.876527 0.918698 0.130294
+19 29 11 0.872336 0.930821 0.300007
+19 29 12 0.867393 0.942324 0.435497
+19 29 13 0.861199 0.952796 0.513950
+19 29 14 0.855461 0.962332 0.586146
+19 29 15 0.850311 0.970666 0.650296
+19 29 16 0.845074 0.977917 0.708685
+19 29 17 0.839752 0.984086 0.761313
+19 29 18 0.835677 0.989542 0.809081
+19 29 19 0.832574 0.994443 0.853067
+19 29 20 0.829478 0.998080 0.887416
+19 29 21 0.826386 1.000959 0.915981
+19 29 22 0.824470 1.003173 0.938732
+19 29 23 0.823088 1.005084 0.958840
+19 29 24 0.821647 1.006412 0.972915
+19 29 25 0.820187 1.007544 0.984978
+19 29 26 0.818944 1.008049 0.991180
+19 29 27 0.817751 1.008409 0.996027
+19 29 28 0.816919 1.008664 0.999235
+19 29 29 0.816138 1.008905 1.002208
+19 29 30 0.815572 1.009466 1.005672
+19 29 31 0.815021 1.010048 1.009169
+19 30 0 0.910350 0.818925 0.000000
+19 30 1 0.908857 0.823807 0.000000
+19 30 2 0.907321 0.828802 0.000000
+19 30 3 0.905149 0.835484 0.000000
+19 30 4 0.902774 0.842830 0.000000
+19 30 5 0.898972 0.854836 0.000000
+19 30 6 0.895170 0.867685 0.000000
+19 30 7 0.891366 0.884190 0.000000
+19 30 8 0.887034 0.899681 0.000000
+19 30 9 0.881123 0.912127 0.067878
+19 30 10 0.875777 0.924386 0.216441
+19 30 11 0.871672 0.936232 0.345162
+19 30 12 0.866830 0.947484 0.454278
+19 30 13 0.860759 0.957744 0.530721
+19 30 14 0.855035 0.967012 0.600760
+19 30 15 0.849755 0.975002 0.662566
+19 30 16 0.844520 0.981969 0.719316
+19 30 17 0.839330 0.987911 0.771009
+19 30 18 0.835443 0.993118 0.817351
+19 30 19 0.832570 0.997754 0.859531
+19 30 20 0.829619 1.001292 0.893013
+19 30 21 0.826621 1.004171 0.921278
+19 30 22 0.824677 1.006315 0.943042
+19 30 23 0.823211 1.008125 0.961851
+19 30 24 0.821798 1.009411 0.975293
+19 30 25 0.820404 1.010522 0.986947
+19 30 26 0.819161 1.010969 0.993013
+19 30 27 0.817952 1.011262 0.997790
+19 30 28 0.817131 1.011489 1.000999
+19 30 29 0.816364 1.011706 1.003985
+19 30 30 0.815851 1.012084 1.006839
+19 30 31 0.815354 1.012473 1.009684
+19 31 0 0.911772 0.822862 0.000000
+19 31 1 0.910279 0.827668 0.000000
+19 31 2 0.908743 0.832598 0.000000
+19 31 3 0.906571 0.839374 0.000000
+19 31 4 0.904196 0.846791 0.000000
+19 31 5 0.900394 0.858702 0.000000
+19 31 6 0.896411 0.871693 0.000000
+19 31 7 0.891641 0.889363 0.000000
+19 31 8 0.886547 0.905676 0.000000
+19 31 9 0.880481 0.917916 0.131244
+19 31 10 0.875049 0.929951 0.301925
+19 31 11 0.871012 0.941533 0.389905
+19 31 12 0.866265 0.952542 0.472810
+19 31 13 0.860335 0.962596 0.547257
+19 31 14 0.854628 0.971599 0.615153
+19 31 15 0.849208 0.979250 0.674626
+19 31 16 0.843973 0.985935 0.729740
+19 31 17 0.838924 0.991652 0.780494
+19 31 18 0.835226 0.996613 0.825430
+19 31 19 0.832578 1.000985 0.865841
+19 31 20 0.829767 1.004424 0.898484
+19 31 21 0.826856 1.007303 0.926467
+19 31 22 0.824879 1.009383 0.947263
+19 31 23 0.823326 1.011099 0.964792
+19 31 24 0.821944 1.012347 0.977619
+19 31 25 0.820620 1.013440 0.988878
+19 31 26 0.819377 1.013822 0.994808
+19 31 27 0.818151 1.014039 0.999509
+19 31 28 0.817343 1.014257 1.002776
+19 31 29 0.816593 1.014474 1.005837
+19 31 30 0.816131 1.014659 1.008045
+19 31 31 0.815688 1.014841 1.010196
+20 0 0 0.508019 0.000000 0.000000
+20 0 1 0.508129 0.000000 0.000000
+20 0 2 0.508249 0.000000 0.000000
+20 0 3 0.508528 0.000000 0.000000
+20 0 4 0.508827 0.000000 0.000000
+20 0 5 0.509270 0.000000 0.000000
+20 0 6 0.510108 0.000000 0.000000
+20 0 7 0.512657 0.000000 0.000000
+20 0 8 0.516124 0.000000 0.032977
+20 0 9 0.522343 0.000000 0.051852
+20 0 10 0.527643 0.000000 0.079969
+20 0 11 0.530920 0.000000 0.128419
+20 0 12 0.534559 0.000000 0.175298
+20 0 13 0.538804 0.000000 0.219558
+20 0 14 0.543473 0.000000 0.265605
+20 0 15 0.548686 0.000000 0.313949
+20 0 16 0.553384 0.000000 0.357851
+20 0 17 0.557569 0.000000 0.397310
+20 0 18 0.561723 0.000000 0.435678
+20 0 19 0.565853 0.000000 0.473199
+20 0 20 0.570260 0.000000 0.506425
+20 0 21 0.574833 0.000000 0.537076
+20 0 22 0.581700 0.000000 0.565557
+20 0 23 0.589609 0.000000 0.593052
+20 0 24 0.604136 0.000000 0.625201
+20 0 25 0.620870 0.000000 0.658902
+20 0 26 0.646923 0.000000 0.699559
+20 0 27 0.675126 0.000000 0.741821
+20 0 28 0.693978 0.000000 0.770643
+20 0 29 0.711493 0.000000 0.797544
+20 0 30 0.724295 0.073646 0.817328
+20 0 31 0.736783 0.171668 0.836638
+20 1 0 0.515311 0.000000 0.000000
+20 1 1 0.515618 0.000000 0.000000
+20 1 2 0.515923 0.000000 0.000000
+20 1 3 0.516202 0.000000 0.000000
+20 1 4 0.516502 0.000000 0.000000
+20 1 5 0.516945 0.000000 0.000000
+20 1 6 0.517761 0.000000 0.000000
+20 1 7 0.520194 0.000000 0.000000
+20 1 8 0.523559 0.000000 0.036325
+20 1 9 0.529719 0.000000 0.054981
+20 1 10 0.535016 0.000000 0.083095
+20 1 11 0.538411 0.000000 0.132015
+20 1 12 0.542102 0.000000 0.179493
+20 1 13 0.546288 0.000000 0.224566
+20 1 14 0.550846 0.000000 0.271137
+20 1 15 0.555884 0.000000 0.319636
+20 1 16 0.560510 0.000000 0.364195
+20 1 17 0.564722 0.000000 0.404812
+20 1 18 0.568873 0.000000 0.443671
+20 1 19 0.572974 0.000000 0.481160
+20 1 20 0.577351 0.000000 0.514747
+20 1 21 0.581893 0.000000 0.545993
+20 1 22 0.588531 0.000000 0.574318
+20 1 23 0.596122 0.000000 0.601315
+20 1 24 0.609259 0.000000 0.631764
+20 1 25 0.624244 0.000000 0.663362
+20 1 26 0.649921 0.000000 0.703601
+20 1 27 0.678066 0.000000 0.745833
+20 1 28 0.696962 0.000000 0.774677
+20 1 29 0.714536 0.000000 0.801609
+20 1 30 0.727287 0.087002 0.821395
+20 1 31 0.739715 0.185025 0.840704
+20 2 0 0.522754 0.000000 0.000000
+20 2 1 0.523252 0.000000 0.000000
+20 2 2 0.523737 0.000000 0.000000
+20 2 3 0.524026 0.000000 0.000000
+20 2 4 0.524335 0.000000 0.000000
+20 2 5 0.524782 0.000000 0.000000
+20 2 6 0.525579 0.000000 0.000000
+20 2 7 0.527895 0.000000 0.000000
+20 2 8 0.531157 0.000000 0.039420
+20 2 9 0.537258 0.000000 0.058042
+20 2 10 0.542549 0.000000 0.086282
+20 2 11 0.546059 0.000000 0.135684
+20 2 12 0.549800 0.000000 0.183774
+20 2 13 0.553927 0.000000 0.229677
+20 2 14 0.558376 0.000000 0.276788
+20 2 15 0.563241 0.000000 0.325452
+20 2 16 0.567789 0.000000 0.370679
+20 2 17 0.572021 0.000000 0.412471
+20 2 18 0.576167 0.000000 0.451831
+20 2 19 0.580246 0.000000 0.489298
+20 2 20 0.584593 0.000000 0.523249
+20 2 21 0.589103 0.000000 0.555091
+20 2 22 0.595507 0.000000 0.583257
+20 2 23 0.602773 0.000000 0.609754
+20 2 24 0.614576 0.000000 0.638568
+20 2 25 0.627890 0.000000 0.668155
+20 2 26 0.653115 0.000000 0.707885
+20 2 27 0.681090 0.000000 0.749955
+20 2 28 0.700010 0.000000 0.778799
+20 2 29 0.717636 0.004290 0.805754
+20 2 30 0.730343 0.100632 0.825541
+20 2 31 0.742722 0.198655 0.844850
+20 3 0 0.532475 0.000000 0.000000
+20 3 1 0.533060 0.000000 0.000000
+20 3 2 0.533637 0.000000 0.000000
+20 3 3 0.534093 0.000000 0.000000
+20 3 4 0.534555 0.000000 0.000000
+20 3 5 0.535061 0.000000 0.000000
+20 3 6 0.535880 0.000000 0.000000
+20 3 7 0.538052 0.000000 0.000000
+20 3 8 0.541191 0.000000 0.038724
+20 3 9 0.547232 0.000000 0.060063
+20 3 10 0.552501 0.000000 0.090378
+20 3 11 0.556071 0.000000 0.140438
+20 3 12 0.559827 0.000000 0.189350
+20 3 13 0.563894 0.000000 0.236348
+20 3 14 0.568245 0.000000 0.284211
+20 3 15 0.572963 0.000000 0.333187
+20 3 16 0.577379 0.000000 0.379275
+20 3 17 0.581492 0.000000 0.422474
+20 3 18 0.585620 0.000000 0.462504
+20 3 19 0.589758 0.000000 0.500068
+20 3 20 0.594091 0.000000 0.534446
+20 3 21 0.598540 0.000000 0.566912
+20 3 22 0.604647 0.000000 0.594889
+20 3 23 0.611507 0.000000 0.620824
+20 3 24 0.622813 0.000000 0.649004
+20 3 25 0.635603 0.000000 0.677933
+20 3 26 0.659241 0.000000 0.715807
+20 3 27 0.685383 0.000000 0.755745
+20 3 28 0.704022 0.000000 0.784241
+20 3 29 0.721589 0.021447 0.811101
+20 3 30 0.734374 0.118361 0.830882
+20 3 31 0.746841 0.216384 0.850192
+20 4 0 0.543149 0.000000 0.000000
+20 4 1 0.543800 0.000000 0.000000
+20 4 2 0.544449 0.000000 0.000000
+20 4 3 0.545065 0.000000 0.000000
+20 4 4 0.545679 0.000000 0.000000
+20 4 5 0.546279 0.000000 0.000000
+20 4 6 0.547150 0.000000 0.000000
+20 4 7 0.549196 0.000000 0.000000
+20 4 8 0.552219 0.000000 0.035132
+20 4 9 0.558177 0.000000 0.061202
+20 4 10 0.563407 0.000000 0.094974
+20 4 11 0.567039 0.000000 0.145688
+20 4 12 0.570811 0.000000 0.195457
+20 4 13 0.574815 0.000000 0.243652
+20 4 14 0.579061 0.000000 0.292334
+20 4 15 0.583618 0.000000 0.341641
+20 4 16 0.587889 0.000000 0.388675
+20 4 17 0.591877 0.000000 0.433434
+20 4 18 0.595982 0.000000 0.474203
+20 4 19 0.600180 0.000000 0.511868
+20 4 20 0.604496 0.000000 0.546714
+20 4 21 0.608882 0.000000 0.579868
+20 4 22 0.614669 0.000000 0.607649
+20 4 23 0.621093 0.000000 0.632988
+20 4 24 0.631938 0.000000 0.660573
+20 4 25 0.644257 0.000000 0.688907
+20 4 26 0.666097 0.000000 0.724663
+20 4 27 0.690133 0.000000 0.762132
+20 4 28 0.708441 0.000000 0.790226
+20 4 29 0.725931 0.040264 0.816980
+20 4 30 0.738783 0.137805 0.836752
+20 4 31 0.751326 0.235827 0.856057
+20 5 0 0.560500 0.000000 0.000000
+20 5 1 0.561063 0.000000 0.000000
+20 5 2 0.561637 0.000000 0.000000
+20 5 3 0.562369 0.000000 0.000000
+20 5 4 0.563127 0.000000 0.000000
+20 5 5 0.564063 0.000000 0.000000
+20 5 6 0.565207 0.000000 0.000000
+20 5 7 0.567252 0.000000 0.000000
+20 5 8 0.570211 0.000000 0.011263
+20 5 9 0.575909 0.000000 0.056161
+20 5 10 0.580988 0.000000 0.103073
+20 5 11 0.584708 0.000000 0.154411
+20 5 12 0.588501 0.000000 0.205287
+20 5 13 0.592418 0.000000 0.255389
+20 5 14 0.596500 0.000000 0.305348
+20 5 15 0.600794 0.000000 0.355123
+20 5 16 0.604845 0.000000 0.403705
+20 5 17 0.608655 0.000000 0.451093
+20 5 18 0.612716 0.000000 0.493084
+20 5 19 0.616973 0.000000 0.530877
+20 5 20 0.621254 0.000000 0.566476
+20 5 21 0.625551 0.000000 0.600758
+20 5 22 0.630869 0.000000 0.628312
+20 5 23 0.636652 0.000000 0.652808
+20 5 24 0.647273 0.000000 0.680066
+20 5 25 0.659508 0.000000 0.708245
+20 5 26 0.678065 0.000000 0.740049
+20 5 27 0.698080 0.000000 0.772689
+20 5 28 0.715708 0.000000 0.800015
+20 5 29 0.732995 0.070699 0.826582
+20 5 30 0.745834 0.169255 0.846313
+20 5 31 0.758377 0.267277 0.865589
+20 6 0 0.579949 0.000000 0.000000
+20 6 1 0.580464 0.000000 0.000000
+20 6 2 0.580997 0.000000 0.000000
+20 6 3 0.581812 0.000000 0.000000
+20 6 4 0.582680 0.000000 0.000000
+20 6 5 0.583916 0.000000 0.000000
+20 6 6 0.585363 0.000000 0.000000
+20 6 7 0.587728 0.000000 0.000000
+20 6 8 0.590843 0.000000 0.000000
+20 6 9 0.596209 0.000000 0.052860
+20 6 10 0.601095 0.000000 0.111993
+20 6 11 0.604924 0.000000 0.164046
+20 6 12 0.608747 0.000000 0.216156
+20 6 13 0.612559 0.000000 0.268361
+20 6 14 0.616458 0.000000 0.319839
+20 6 15 0.620468 0.000000 0.370381
+20 6 16 0.624261 0.000000 0.420523
+20 6 17 0.627837 0.000000 0.470265
+20 6 18 0.631809 0.000000 0.513672
+20 6 19 0.636086 0.000000 0.552150
+20 6 20 0.640306 0.000000 0.588535
+20 6 21 0.644490 0.000000 0.623663
+20 6 22 0.649412 0.000000 0.651306
+20 6 23 0.654669 0.000000 0.675546
+20 6 24 0.664853 0.000000 0.702236
+20 6 25 0.676679 0.000000 0.729742
+20 6 26 0.692505 0.000000 0.758242
+20 6 27 0.709255 0.000000 0.786972
+20 6 28 0.725664 0.006028 0.812960
+20 6 29 0.742024 0.118258 0.838557
+20 6 30 0.754272 0.210885 0.857625
+20 6 31 0.766244 0.302206 0.876258
+20 7 0 0.608492 0.000000 0.000000
+20 7 1 0.609126 0.000000 0.000000
+20 7 2 0.609766 0.000000 0.000000
+20 7 3 0.610522 0.000000 0.000000
+20 7 4 0.611356 0.000000 0.000000
+20 7 5 0.612735 0.000000 0.000000
+20 7 6 0.614619 0.000000 0.000000
+20 7 7 0.618687 0.000000 0.000000
+20 7 8 0.622918 0.000000 0.000000
+20 7 9 0.627640 0.000000 0.057098
+20 7 10 0.632147 0.000000 0.124472
+20 7 11 0.636183 0.000000 0.177630
+20 7 12 0.640068 0.000000 0.231534
+20 7 13 0.643702 0.000000 0.286684
+20 7 14 0.647335 0.000000 0.340724
+20 7 15 0.650967 0.000000 0.393338
+20 7 16 0.654335 0.000000 0.445094
+20 7 17 0.657440 0.000000 0.495992
+20 7 18 0.661124 0.000000 0.541650
+20 7 19 0.665258 0.000000 0.583235
+20 7 20 0.669294 0.000000 0.620549
+20 7 21 0.673273 0.000000 0.655301
+20 7 22 0.678110 0.000000 0.684401
+20 7 23 0.683339 0.000000 0.710931
+20 7 24 0.692159 0.000000 0.736005
+20 7 25 0.702175 0.018641 0.760593
+20 7 26 0.717662 0.058650 0.788598
+20 7 27 0.734412 0.099636 0.817391
+20 7 28 0.747271 0.167879 0.839574
+20 7 29 0.759574 0.240017 0.860812
+20 7 30 0.768717 0.296629 0.876520
+20 7 31 0.777650 0.352207 0.891860
+20 8 0 0.635526 0.033774 0.000000
+20 8 1 0.636232 0.036006 0.000000
+20 8 2 0.636941 0.036939 0.000000
+20 8 3 0.637682 0.018378 0.000000
+20 8 4 0.638519 0.002303 0.000000
+20 8 5 0.640037 0.003634 0.000000
+20 8 6 0.642270 0.004635 0.000000
+20 8 7 0.647607 0.004207 0.000000
+20 8 8 0.652671 0.004986 0.000000
+20 8 9 0.656917 0.009387 0.056463
+20 8 10 0.661135 0.013010 0.134378
+20 8 11 0.665287 0.014922 0.189429
+20 8 12 0.669149 0.016921 0.245530
+20 8 13 0.672525 0.019063 0.303382
+20 8 14 0.675880 0.021598 0.359841
+20 8 15 0.679206 0.024639 0.414510
+20 8 16 0.682197 0.024503 0.467883
+20 8 17 0.684853 0.021191 0.519962
+20 8 18 0.688239 0.019181 0.567526
+20 8 19 0.692192 0.018184 0.611581
+20 8 20 0.695955 0.019263 0.649792
+20 8 21 0.699604 0.021586 0.684498
+20 8 22 0.704205 0.026661 0.714676
+20 8 23 0.709237 0.032987 0.742798
+20 8 24 0.716748 0.075059 0.766558
+20 8 25 0.725085 0.129046 0.788864
+20 8 26 0.739878 0.192075 0.815964
+20 8 27 0.756160 0.257191 0.844171
+20 8 28 0.766082 0.301118 0.863105
+20 8 29 0.775095 0.342019 0.880714
+20 8 30 0.781731 0.370908 0.893615
+20 8 31 0.788208 0.398997 0.906202
+20 9 0 0.658029 0.070137 0.000000
+20 9 1 0.658674 0.071307 0.000000
+20 9 2 0.659332 0.072047 0.000000
+20 9 3 0.660191 0.066327 0.000000
+20 9 4 0.661148 0.061846 0.000000
+20 9 5 0.662784 0.066034 0.000000
+20 9 6 0.665108 0.070239 0.000000
+20 9 7 0.670413 0.074515 0.000000
+20 9 8 0.675461 0.078656 0.000000
+20 9 9 0.679736 0.082396 0.041205
+20 9 10 0.683925 0.086413 0.136562
+20 9 11 0.687928 0.091040 0.195874
+20 9 12 0.691510 0.095541 0.255379
+20 9 13 0.694390 0.099833 0.315205
+20 9 14 0.697427 0.103778 0.373652
+20 9 15 0.700665 0.107277 0.430326
+20 9 16 0.703422 0.109313 0.485329
+20 9 17 0.705697 0.109886 0.538663
+20 9 18 0.708752 0.110388 0.587094
+20 9 19 0.712415 0.110835 0.631713
+20 9 20 0.715633 0.113017 0.670724
+20 9 21 0.718585 0.116241 0.706369
+20 9 22 0.722486 0.123045 0.736496
+20 9 23 0.726818 0.131476 0.764114
+20 9 24 0.733189 0.160947 0.787466
+20 9 25 0.740238 0.197432 0.809396
+20 9 26 0.753271 0.251469 0.834363
+20 9 27 0.767684 0.309557 0.860031
+20 9 28 0.776505 0.348519 0.877387
+20 9 29 0.784527 0.384749 0.893556
+20 9 30 0.790447 0.410790 0.905309
+20 9 31 0.796227 0.436153 0.916768
+20 10 0 0.681696 0.112184 0.000000
+20 10 1 0.682289 0.112986 0.000000
+20 10 2 0.682899 0.113936 0.000000
+20 10 3 0.683776 0.117102 0.000000
+20 10 4 0.684748 0.120647 0.000000
+20 10 5 0.686392 0.126837 0.000000
+20 10 6 0.688727 0.133113 0.000000
+20 10 7 0.694057 0.139763 0.000000
+20 10 8 0.699106 0.145794 0.000000
+20 10 9 0.703310 0.149969 0.030827
+20 10 10 0.707378 0.154934 0.138526
+20 10 11 0.711151 0.161634 0.201697
+20 10 12 0.714424 0.168151 0.264380
+20 10 13 0.716861 0.174362 0.326250
+20 10 14 0.719535 0.179675 0.386869
+20 10 15 0.722513 0.183832 0.445882
+20 10 16 0.724972 0.187777 0.502614
+20 10 17 0.726913 0.191509 0.557065
+20 10 18 0.729628 0.194179 0.606463
+20 10 19 0.732945 0.196022 0.651930
+20 10 20 0.735562 0.199175 0.691674
+20 10 21 0.737760 0.203114 0.727985
+20 10 22 0.740951 0.210720 0.758129
+20 10 23 0.744592 0.219992 0.785470
+20 10 24 0.749920 0.240334 0.808309
+20 10 25 0.755810 0.264367 0.829647
+20 10 26 0.766884 0.310304 0.852369
+20 10 27 0.779155 0.361297 0.875410
+20 10 28 0.786753 0.395808 0.891176
+20 10 29 0.793684 0.427966 0.905903
+20 10 30 0.798864 0.451620 0.916638
+20 10 31 0.803927 0.474708 0.927105
+20 11 0 0.707920 0.166740 0.000000
+20 11 1 0.708484 0.168697 0.000000
+20 11 2 0.709055 0.170742 0.000000
+20 11 3 0.709726 0.174093 0.000000
+20 11 4 0.710488 0.177815 0.000000
+20 11 5 0.711895 0.184126 0.000000
+20 11 6 0.714065 0.189985 0.000000
+20 11 7 0.719545 0.193880 0.000000
+20 11 8 0.724634 0.198559 0.000000
+20 11 9 0.728546 0.205585 0.031183
+20 11 10 0.732288 0.212716 0.140008
+20 11 11 0.735654 0.220078 0.206155
+20 11 12 0.738552 0.227536 0.271520
+20 11 13 0.740668 0.235158 0.335582
+20 11 14 0.742880 0.241746 0.398780
+20 11 15 0.745217 0.247004 0.460868
+20 11 16 0.747240 0.252281 0.519544
+20 11 17 0.748949 0.257574 0.574808
+20 11 18 0.751301 0.261654 0.625391
+20 11 19 0.754152 0.264790 0.672332
+20 11 20 0.756046 0.268619 0.712667
+20 11 21 0.757366 0.272864 0.749038
+20 11 22 0.759820 0.279233 0.779354
+20 11 23 0.762789 0.286567 0.806916
+20 11 24 0.767290 0.305419 0.829010
+20 11 25 0.772303 0.328111 0.849280
+20 11 26 0.780983 0.367910 0.869510
+20 11 27 0.790509 0.411657 0.889730
+20 11 28 0.796616 0.442851 0.903881
+20 11 29 0.802233 0.472251 0.917165
+20 11 30 0.806619 0.494533 0.927163
+20 11 31 0.810923 0.516341 0.936942
+20 12 0 0.734246 0.222034 0.000000
+20 12 1 0.734803 0.224712 0.000000
+20 12 2 0.735362 0.227442 0.000000
+20 12 3 0.735935 0.230944 0.000000
+20 12 4 0.736603 0.234814 0.000000
+20 12 5 0.737937 0.241260 0.000000
+20 12 6 0.740016 0.247257 0.000000
+20 12 7 0.745326 0.251313 0.000000
+20 12 8 0.750200 0.256565 0.000000
+20 12 9 0.753766 0.265409 0.029208
+20 12 10 0.757149 0.274128 0.138228
+20 12 11 0.760130 0.282572 0.208475
+20 12 12 0.762588 0.291157 0.277445
+20 12 13 0.764174 0.299976 0.344286
+20 12 14 0.765832 0.307791 0.410131
+20 12 15 0.767582 0.314314 0.474693
+20 12 16 0.769091 0.320780 0.535270
+20 12 17 0.770359 0.327189 0.591863
+20 12 18 0.772212 0.332357 0.643677
+20 12 19 0.774520 0.336559 0.691775
+20 12 20 0.775731 0.340820 0.732802
+20 12 21 0.776283 0.345115 0.769587
+20 12 22 0.777953 0.350684 0.799868
+20 12 23 0.780130 0.356833 0.827192
+20 12 24 0.783736 0.373835 0.848559
+20 12 25 0.787819 0.394456 0.867941
+20 12 26 0.794435 0.428680 0.886134
+20 12 27 0.801635 0.466042 0.904052
+20 12 28 0.806418 0.493768 0.916776
+20 12 29 0.810855 0.520118 0.928758
+20 12 30 0.814467 0.540467 0.937974
+20 12 31 0.818024 0.560416 0.947006
+20 13 0 0.760743 0.278558 0.000000
+20 13 1 0.761329 0.281233 0.000000
+20 13 2 0.761919 0.283966 0.000000
+20 13 3 0.762577 0.287562 0.000000
+20 13 4 0.763344 0.291534 0.000000
+20 13 5 0.764878 0.298134 0.000000
+20 13 6 0.766988 0.305198 0.000000
+20 13 7 0.771596 0.314270 0.000000
+20 13 8 0.775832 0.323308 0.000000
+20 13 9 0.778957 0.332246 0.023347
+20 13 10 0.781928 0.341588 0.131010
+20 13 11 0.784559 0.351818 0.207232
+20 13 12 0.786470 0.361836 0.281345
+20 13 13 0.787181 0.371498 0.351945
+20 13 14 0.788130 0.380460 0.420546
+20 13 15 0.789383 0.388521 0.486579
+20 13 16 0.790248 0.395941 0.548987
+20 13 17 0.790726 0.402720 0.607770
+20 13 18 0.791855 0.408438 0.660896
+20 13 19 0.793491 0.413332 0.709621
+20 13 20 0.794084 0.417617 0.751509
+20 13 21 0.794052 0.421536 0.789295
+20 13 22 0.794858 0.427034 0.819198
+20 13 23 0.796044 0.433249 0.845519
+20 13 24 0.798640 0.447802 0.866191
+20 13 25 0.801706 0.465136 0.884981
+20 13 26 0.806808 0.494721 0.901895
+20 13 27 0.812379 0.527133 0.918376
+20 13 28 0.816119 0.551144 0.929989
+20 13 29 0.819596 0.573955 0.940906
+20 13 30 0.822468 0.591435 0.949263
+20 13 31 0.825299 0.608561 0.957448
+20 14 0 0.787884 0.342334 0.000000
+20 14 1 0.788332 0.344911 0.000000
+20 14 2 0.788786 0.347549 0.000000
+20 14 3 0.789313 0.351101 0.000000
+20 14 4 0.789933 0.355011 0.000000
+20 14 5 0.791198 0.361422 0.000000
+20 14 6 0.793043 0.368782 0.000000
+20 14 7 0.797398 0.380253 0.000000
+20 14 8 0.801323 0.391307 0.000000
+20 14 9 0.803958 0.401106 0.000000
+20 14 10 0.806431 0.411504 0.083088
+20 14 11 0.808546 0.423221 0.189354
+20 14 12 0.809821 0.434484 0.283537
+20 14 13 0.809694 0.444991 0.357581
+20 14 14 0.809836 0.454909 0.429022
+20 14 15 0.810324 0.464070 0.497117
+20 14 16 0.810361 0.472005 0.561247
+20 14 17 0.809945 0.478715 0.621413
+20 14 18 0.810227 0.484762 0.675773
+20 14 19 0.811050 0.490292 0.725619
+20 14 20 0.810982 0.494563 0.768297
+20 14 21 0.810378 0.498077 0.806673
+20 14 22 0.810588 0.503220 0.836835
+20 14 23 0.811166 0.509104 0.863264
+20 14 24 0.812943 0.521560 0.883487
+20 14 25 0.815118 0.536206 0.901642
+20 14 26 0.818831 0.561387 0.917076
+20 14 27 0.822898 0.588998 0.931881
+20 14 28 0.825530 0.609216 0.942234
+20 14 29 0.827957 0.628377 0.951950
+20 14 30 0.830032 0.643190 0.959412
+20 14 31 0.832084 0.657713 0.966724
+20 15 0 0.815852 0.415435 0.000000
+20 15 1 0.815951 0.417790 0.000000
+20 15 2 0.816051 0.420207 0.000000
+20 15 3 0.816172 0.423538 0.000000
+20 15 4 0.816327 0.427175 0.000000
+20 15 5 0.816719 0.432955 0.000000
+20 15 6 0.817916 0.439622 0.000000
+20 15 7 0.822599 0.450129 0.000000
+20 15 8 0.826631 0.460921 0.000000
+20 15 9 0.828713 0.472567 0.000000
+20 15 10 0.830578 0.484579 0.000000
+20 15 11 0.831965 0.497397 0.150088
+20 15 12 0.832488 0.509666 0.283532
+20 15 13 0.831571 0.521019 0.360618
+20 15 14 0.830782 0.531647 0.435004
+20 15 15 0.830161 0.541345 0.505920
+20 15 16 0.829130 0.549232 0.571633
+20 15 17 0.827690 0.555308 0.632144
+20 15 18 0.826964 0.561396 0.687642
+20 15 19 0.826793 0.567494 0.739241
+20 15 20 0.826007 0.571700 0.782616
+20 15 21 0.824850 0.574772 0.821056
+20 15 22 0.824807 0.579197 0.852295
+20 15 23 0.825270 0.584237 0.880261
+20 15 24 0.826471 0.595047 0.900350
+20 15 25 0.827918 0.607780 0.917814
+20 15 26 0.830402 0.628856 0.931508
+20 15 27 0.833125 0.651857 0.944334
+20 15 28 0.834569 0.668181 0.953234
+20 15 29 0.835830 0.683551 0.961573
+20 15 30 0.837036 0.695955 0.968096
+20 15 31 0.838238 0.708161 0.974498
+20 16 0 0.839549 0.479542 0.000000
+20 16 1 0.839574 0.482084 0.000000
+20 16 2 0.839598 0.484693 0.000000
+20 16 3 0.839618 0.488303 0.000000
+20 16 4 0.839653 0.492242 0.000000
+20 16 5 0.839797 0.498488 0.000000
+20 16 6 0.840743 0.505548 0.000000
+20 16 7 0.845165 0.516138 0.000000
+20 16 8 0.848841 0.527264 0.000000
+20 16 9 0.850280 0.540003 0.000000
+20 16 10 0.851453 0.553032 0.000000
+20 16 11 0.852036 0.566696 0.128077
+20 16 12 0.851679 0.579682 0.280757
+20 16 13 0.849754 0.591539 0.361334
+20 16 14 0.847978 0.602466 0.438588
+20 16 15 0.846394 0.612199 0.511570
+20 16 16 0.844458 0.620343 0.578966
+20 16 17 0.842171 0.626900 0.640776
+20 16 18 0.840647 0.633279 0.697440
+20 16 19 0.839717 0.639521 0.750104
+20 16 20 0.838418 0.643839 0.794367
+20 16 21 0.836897 0.647001 0.833589
+20 16 22 0.836570 0.650940 0.865484
+20 16 23 0.836786 0.655231 0.894048
+20 16 24 0.837367 0.664267 0.913980
+20 16 25 0.838071 0.674884 0.931036
+20 16 26 0.839551 0.692179 0.943533
+20 16 27 0.841212 0.711014 0.954978
+20 16 28 0.841758 0.723953 0.962828
+20 16 29 0.842146 0.736049 0.970165
+20 16 30 0.842763 0.746354 0.975980
+20 16 31 0.843396 0.756540 0.981693
+20 17 0 0.858973 0.534656 0.000000
+20 17 1 0.859201 0.537792 0.000000
+20 17 2 0.859429 0.541007 0.000000
+20 17 3 0.859652 0.545397 0.000000
+20 17 4 0.859912 0.550213 0.000000
+20 17 5 0.860432 0.558021 0.000000
+20 17 6 0.861523 0.566562 0.000000
+20 17 7 0.865095 0.578279 0.000000
+20 17 8 0.867951 0.590337 0.000000
+20 17 9 0.868659 0.603416 0.000000
+20 17 10 0.869054 0.616863 0.000000
+20 17 11 0.868760 0.631118 0.123320
+20 17 12 0.867395 0.644534 0.275212
+20 17 13 0.864244 0.656552 0.359729
+20 17 14 0.861422 0.667365 0.439774
+20 17 15 0.859022 0.676631 0.514069
+20 17 16 0.856344 0.685339 0.583247
+20 17 17 0.853387 0.693491 0.647307
+20 17 18 0.851275 0.700412 0.705168
+20 17 19 0.849820 0.706375 0.758207
+20 17 20 0.848215 0.710978 0.803549
+20 17 21 0.846519 0.714765 0.844273
+20 17 22 0.845877 0.718448 0.876401
+20 17 23 0.845715 0.722084 0.904622
+20 17 24 0.845632 0.729219 0.924376
+20 17 25 0.845576 0.737519 0.941307
+20 17 26 0.846279 0.751356 0.953148
+20 17 27 0.847157 0.766470 0.963813
+20 17 28 0.847097 0.776531 0.971017
+20 17 29 0.846903 0.785870 0.977726
+20 17 30 0.847214 0.794388 0.983064
+20 17 31 0.847559 0.802851 0.988310
+20 18 0 0.877643 0.589713 0.000000
+20 18 1 0.877667 0.592723 0.000000
+20 18 2 0.877688 0.595809 0.000000
+20 18 3 0.877673 0.600046 0.000000
+20 18 4 0.877692 0.604732 0.000000
+20 18 5 0.877951 0.612554 0.000000
+20 18 6 0.878840 0.621342 0.000000
+20 18 7 0.882453 0.634314 0.000000
+20 18 8 0.885128 0.647394 0.000000
+20 18 9 0.884991 0.660799 0.000000
+20 18 10 0.884458 0.674655 0.000000
+20 18 11 0.883056 0.689506 0.118137
+20 18 12 0.880643 0.703254 0.268890
+20 18 13 0.876546 0.715164 0.356947
+20 18 14 0.872798 0.726051 0.439697
+20 18 15 0.869498 0.735622 0.515623
+20 18 16 0.866101 0.744515 0.586242
+20 18 17 0.862607 0.752730 0.651554
+20 18 18 0.860076 0.760117 0.710681
+20 18 19 0.858293 0.766859 0.764998
+20 18 20 0.856414 0.771582 0.811086
+20 18 21 0.854478 0.775095 0.852239
+20 18 22 0.853603 0.778714 0.884834
+20 18 23 0.853209 0.782381 0.913539
+20 18 24 0.852671 0.788074 0.933148
+20 18 25 0.852084 0.794443 0.949725
+20 18 26 0.852180 0.805043 0.960933
+20 18 27 0.852433 0.816620 0.970903
+20 18 28 0.851943 0.824474 0.977641
+20 18 29 0.851347 0.831797 0.983916
+20 18 30 0.851345 0.838408 0.988819
+20 18 31 0.851383 0.844971 0.993631
+20 19 0 0.895728 0.644727 0.000000
+20 19 1 0.895229 0.647048 0.000000
+20 19 2 0.894724 0.649434 0.000000
+20 19 3 0.894127 0.652795 0.000000
+20 19 4 0.893543 0.656565 0.000000
+20 19 5 0.893049 0.663198 0.000000
+20 19 6 0.893462 0.671274 0.000000
+20 19 7 0.897809 0.685598 0.000000
+20 19 8 0.900802 0.699772 0.000000
+20 19 9 0.899730 0.713492 0.000000
+20 19 10 0.898152 0.727752 0.000000
+20 19 11 0.895462 0.743200 0.112624
+20 19 12 0.891972 0.757203 0.261963
+20 19 13 0.887147 0.768798 0.353250
+20 19 14 0.882567 0.779904 0.438638
+20 19 15 0.878301 0.790382 0.516441
+20 19 16 0.874204 0.799165 0.588237
+20 19 17 0.870275 0.806252 0.654026
+20 19 18 0.867455 0.814045 0.714473
+20 19 19 0.865497 0.822388 0.770767
+20 19 20 0.863371 0.827104 0.817343
+20 19 21 0.861144 0.829643 0.858089
+20 19 22 0.860098 0.833346 0.891333
+20 19 23 0.859589 0.837577 0.921167
+20 19 24 0.858757 0.842187 0.940657
+20 19 25 0.857817 0.846924 0.956700
+20 19 26 0.857439 0.854461 0.967296
+20 19 27 0.857190 0.862644 0.976635
+20 19 28 0.856407 0.868814 0.983047
+20 19 29 0.855548 0.874696 0.989040
+20 19 30 0.855228 0.879306 0.993542
+20 19 31 0.854944 0.883831 0.997944
+20 20 0 0.907436 0.683893 0.000000
+20 20 1 0.906976 0.686502 0.000000
+20 20 2 0.906513 0.689182 0.000000
+20 20 3 0.906005 0.692936 0.000000
+20 20 4 0.905513 0.697129 0.000000
+20 20 5 0.905133 0.704390 0.000000
+20 20 6 0.905527 0.712967 0.000000
+20 20 7 0.909272 0.727249 0.000000
+20 20 8 0.911652 0.741533 0.000000
+20 20 9 0.909939 0.755823 0.000000
+20 20 10 0.907668 0.770434 0.000000
+20 20 11 0.904169 0.785754 0.108599
+20 20 12 0.899974 0.799815 0.257123
+20 20 13 0.894620 0.811778 0.351353
+20 20 14 0.889529 0.822975 0.439011
+20 20 15 0.884776 0.833187 0.518222
+20 20 16 0.880226 0.842203 0.591328
+20 20 17 0.875878 0.850023 0.658330
+20 20 18 0.872622 0.857924 0.719416
+20 20 19 0.870215 0.865887 0.775899
+20 20 20 0.867818 0.870747 0.822806
+20 20 21 0.865426 0.873744 0.863966
+20 20 22 0.864173 0.877290 0.897024
+20 20 23 0.863439 0.881086 0.926400
+20 20 24 0.862372 0.884691 0.945597
+20 20 25 0.861194 0.888232 0.961401
+20 20 26 0.860504 0.893341 0.971714
+20 20 27 0.859927 0.898811 0.980760
+20 20 28 0.858826 0.903004 0.986940
+20 20 29 0.857650 0.907015 0.992710
+20 20 30 0.857215 0.910572 0.996981
+20 20 31 0.856830 0.914100 1.001152
+20 21 0 0.915318 0.713551 0.000000
+20 21 1 0.915233 0.717033 0.000000
+20 21 2 0.915153 0.720604 0.000000
+20 21 3 0.915137 0.725514 0.000000
+20 21 4 0.915154 0.730933 0.000000
+20 21 5 0.915409 0.739910 0.000000
+20 21 6 0.916056 0.749717 0.000000
+20 21 7 0.918398 0.763119 0.000000
+20 21 8 0.919610 0.776924 0.000000
+20 21 9 0.917431 0.791936 0.000000
+20 21 10 0.914676 0.806867 0.000000
+20 21 11 0.910654 0.821623 0.105466
+20 21 12 0.905980 0.835623 0.253537
+20 21 13 0.900216 0.848366 0.350536
+20 21 14 0.894807 0.859577 0.440244
+20 21 15 0.889854 0.868818 0.520580
+20 21 16 0.884999 0.878274 0.595077
+20 21 17 0.880242 0.887944 0.663735
+20 21 18 0.876462 0.895772 0.725048
+20 21 19 0.873443 0.902168 0.780649
+20 21 20 0.870759 0.907262 0.827791
+20 21 21 0.868276 0.911575 0.869858
+20 21 22 0.866796 0.914822 0.902230
+20 21 23 0.865771 0.917584 0.930196
+20 21 24 0.864504 0.920230 0.948995
+20 21 25 0.863157 0.922837 0.964739
+20 21 26 0.862254 0.925897 0.974966
+20 21 27 0.861454 0.929062 0.983921
+20 21 28 0.860018 0.931104 0.989925
+20 21 29 0.858492 0.932986 0.995507
+20 21 30 0.858065 0.936061 0.999650
+20 21 31 0.857710 0.939215 1.003696
+20 22 0 0.923426 0.739476 0.000000
+20 22 1 0.923199 0.742974 0.000000
+20 22 2 0.922968 0.746561 0.000000
+20 22 3 0.922686 0.751467 0.000000
+20 22 4 0.922398 0.756858 0.000000
+20 22 5 0.922071 0.765641 0.000000
+20 22 6 0.922243 0.775426 0.000000
+20 22 7 0.924569 0.789546 0.000000
+20 22 8 0.925593 0.803811 0.000000
+20 22 9 0.922707 0.818510 0.000000
+20 22 10 0.919365 0.833287 0.000000
+20 22 11 0.915019 0.848233 0.107976
+20 22 12 0.910109 0.862307 0.257547
+20 22 13 0.904259 0.874929 0.355357
+20 22 14 0.898808 0.886373 0.445921
+20 22 15 0.893872 0.896303 0.527172
+20 22 16 0.888800 0.905800 0.601879
+20 22 17 0.883593 0.914861 0.670043
+20 22 18 0.879373 0.922317 0.730937
+20 22 19 0.875922 0.928523 0.786177
+20 22 20 0.872846 0.933453 0.832730
+20 22 21 0.869995 0.937619 0.874072
+20 22 22 0.868419 0.940909 0.906165
+20 22 23 0.867421 0.943800 0.934054
+20 22 24 0.866151 0.946063 0.952561
+20 22 25 0.864789 0.948118 0.967939
+20 22 26 0.863906 0.950276 0.977830
+20 22 27 0.863134 0.952458 0.986453
+20 22 28 0.861658 0.953700 0.992270
+20 22 29 0.860083 0.954808 0.997685
+20 22 30 0.859452 0.956975 1.001740
+20 22 31 0.858884 0.959212 1.005703
+20 23 0 0.931637 0.763704 0.000000
+20 23 1 0.931031 0.766829 0.000000
+20 23 2 0.930408 0.770033 0.000000
+20 23 3 0.929515 0.774408 0.000000
+20 23 4 0.928552 0.779202 0.000000
+20 23 5 0.927091 0.786924 0.000000
+20 23 6 0.926455 0.796117 0.000000
+20 23 7 0.929397 0.811681 0.000000
+20 23 8 0.930678 0.826833 0.000000
+20 23 9 0.926977 0.840749 0.000000
+20 23 10 0.923001 0.855155 0.000000
+20 23 11 0.918420 0.870634 0.113052
+20 23 12 0.913386 0.884843 0.265010
+20 23 13 0.907595 0.896934 0.362740
+20 23 14 0.902228 0.908712 0.453619
+20 23 15 0.897408 0.920086 0.535688
+20 23 16 0.892160 0.929441 0.610070
+20 23 17 0.886484 0.936777 0.676763
+20 23 18 0.881862 0.943723 0.736944
+20 23 19 0.878061 0.950366 0.792059
+20 23 20 0.874545 0.954952 0.837648
+20 23 21 0.871200 0.958305 0.877521
+20 23 22 0.869588 0.961793 0.909521
+20 23 23 0.868762 0.965342 0.937941
+20 23 24 0.867577 0.967486 0.956202
+20 23 25 0.866272 0.969162 0.971078
+20 23 26 0.865514 0.970938 0.980516
+20 23 27 0.864883 0.972738 0.988700
+20 23 28 0.863502 0.973794 0.994324
+20 23 29 0.862014 0.974744 0.999581
+20 23 30 0.861084 0.975809 1.003566
+20 23 31 0.860192 0.976882 1.007466
+20 24 0 0.937205 0.780999 0.000000
+20 24 1 0.936291 0.784761 0.000000
+20 24 2 0.935360 0.788586 0.000000
+20 24 3 0.934165 0.793347 0.000000
+20 24 4 0.932901 0.798446 0.000000
+20 24 5 0.931156 0.805903 0.000000
+20 24 6 0.930038 0.814731 0.000000
+20 24 7 0.931639 0.829503 0.000000
+20 24 8 0.931913 0.844035 0.000000
+20 24 9 0.928207 0.857852 0.000000
+20 24 10 0.924099 0.872046 0.000000
+20 24 11 0.919109 0.887070 0.128573
+20 24 12 0.913857 0.900936 0.287088
+20 24 13 0.908170 0.912872 0.382593
+20 24 14 0.902855 0.924492 0.471476
+20 24 15 0.898019 0.935709 0.551846
+20 24 16 0.892781 0.944817 0.624289
+20 24 17 0.887143 0.951817 0.688806
+20 24 18 0.882450 0.958478 0.747261
+20 24 19 0.878493 0.964875 0.801001
+20 24 20 0.874871 0.969258 0.844965
+20 24 21 0.871450 0.972433 0.883063
+20 24 22 0.869691 0.975670 0.913886
+20 24 23 0.868689 0.978936 0.941402
+20 24 24 0.867451 0.980849 0.959131
+20 24 25 0.866135 0.982312 0.973599
+20 24 26 0.865348 0.983895 0.982700
+20 24 27 0.864684 0.985506 0.990562
+20 24 28 0.863472 0.986504 0.996049
+20 24 29 0.862182 0.987415 1.001197
+20 24 30 0.861334 0.988162 1.005072
+20 24 31 0.860515 0.988898 1.008863
+20 25 0 0.941893 0.795984 0.000000
+20 25 1 0.940694 0.800719 0.000000
+20 25 2 0.939482 0.805500 0.000000
+20 25 3 0.938087 0.810953 0.000000
+20 25 4 0.936648 0.816656 0.000000
+20 25 5 0.934903 0.824113 0.000000
+20 25 6 0.933411 0.832654 0.000000
+20 25 7 0.933019 0.845887 0.000000
+20 25 8 0.931865 0.859299 0.000000
+20 25 9 0.928424 0.873243 0.000000
+20 25 10 0.924352 0.887279 0.000000
+20 25 11 0.918893 0.901517 0.147577
+20 25 12 0.913393 0.914881 0.314038
+20 25 13 0.907824 0.926786 0.406601
+20 25 14 0.902550 0.938087 0.492718
+20 25 15 0.897654 0.948612 0.570550
+20 25 16 0.892491 0.957438 0.640518
+20 25 17 0.887058 0.964566 0.702625
+20 25 18 0.882405 0.971017 0.759017
+20 25 19 0.878358 0.976940 0.810964
+20 25 20 0.874741 0.981167 0.853082
+20 25 21 0.871381 0.984375 0.889303
+20 25 22 0.869440 0.987212 0.918588
+20 25 23 0.868144 0.989880 0.944721
+20 25 24 0.866807 0.991526 0.961823
+20 25 25 0.865457 0.992830 0.975914
+20 25 26 0.864591 0.994283 0.984715
+20 25 27 0.863837 0.995769 0.992296
+20 25 28 0.862819 0.996752 0.997665
+20 25 29 0.861763 0.997663 1.002719
+20 25 30 0.861122 0.998353 1.006472
+20 25 31 0.860509 0.999028 1.010139
+20 26 0 0.943825 0.804952 0.000000
+20 26 1 0.942525 0.809819 0.000000
+20 26 2 0.941207 0.814761 0.000000
+20 26 3 0.939634 0.820829 0.000000
+20 26 4 0.937984 0.827278 0.000000
+20 26 5 0.935799 0.836393 0.000000
+20 26 6 0.933870 0.846227 0.000000
+20 26 7 0.933056 0.859172 0.000000
+20 26 8 0.931455 0.872265 0.000000
+20 26 9 0.927490 0.885799 0.000000
+20 26 10 0.923135 0.899340 0.000000
+20 26 11 0.917923 0.912897 0.171556
+20 26 12 0.912569 0.925679 0.347989
+20 26 13 0.906976 0.937172 0.436695
+20 26 14 0.901621 0.947906 0.518977
+20 26 15 0.896569 0.957663 0.592998
+20 26 16 0.891479 0.966042 0.659475
+20 26 17 0.886349 0.973043 0.718409
+20 26 18 0.881938 0.979287 0.772621
+20 26 19 0.878084 0.984942 0.823160
+20 26 20 0.874652 0.989024 0.863066
+20 26 21 0.871471 0.992162 0.896591
+20 26 22 0.869564 0.994812 0.924136
+20 26 23 0.868236 0.997240 0.948962
+20 26 24 0.866834 0.998803 0.965530
+20 26 25 0.865406 1.000078 0.979347
+20 26 26 0.864275 1.001070 0.987184
+20 26 27 0.863212 1.001996 0.993642
+20 26 28 0.862214 1.002909 0.998789
+20 26 29 0.861225 1.003819 1.003749
+20 26 30 0.860603 1.004476 1.007426
+20 26 31 0.860006 1.005115 1.011017
+20 27 0 0.945122 0.812533 0.000000
+20 27 1 0.943762 0.817336 0.000000
+20 27 2 0.942378 0.822255 0.000000
+20 27 3 0.940632 0.828920 0.000000
+20 27 4 0.938764 0.836147 0.000000
+20 27 5 0.936037 0.847304 0.000000
+20 27 6 0.933657 0.858796 0.000000
+20 27 7 0.932784 0.871741 0.000000
+20 27 8 0.930961 0.884700 0.000000
+20 27 9 0.926290 0.897701 0.000000
+20 27 10 0.921579 0.910670 0.000000
+20 27 11 0.916780 0.923568 0.196682
+20 27 12 0.911662 0.935752 0.383555
+20 27 13 0.906013 0.946744 0.468194
+20 27 14 0.900547 0.956852 0.546392
+20 27 15 0.895318 0.965824 0.616310
+20 27 16 0.890301 0.973718 0.679062
+20 27 17 0.885496 0.980534 0.734647
+20 27 18 0.881373 0.986572 0.786651
+20 27 19 0.877779 0.992006 0.835872
+20 27 20 0.874573 0.995946 0.873480
+20 27 21 0.871599 0.998990 0.904121
+20 27 22 0.869775 1.001502 0.929878
+20 27 23 0.868475 1.003773 0.953415
+20 27 24 0.867014 1.005297 0.969473
+20 27 25 0.865499 1.006572 0.983037
+20 27 26 0.864060 1.007026 0.989758
+20 27 27 0.862639 1.007291 0.994900
+20 27 28 0.861620 1.008121 0.999800
+20 27 29 0.860660 1.009032 1.004666
+20 27 30 0.860013 1.009660 1.008277
+20 27 31 0.859388 1.010269 1.011805
+20 28 0 0.946576 0.818046 0.000000
+20 28 1 0.945261 0.822897 0.000000
+20 28 2 0.943917 0.827862 0.000000
+20 28 3 0.942150 0.834547 0.000000
+20 28 4 0.940235 0.841856 0.000000
+20 28 5 0.937287 0.853544 0.000000
+20 28 6 0.934549 0.865658 0.000000
+20 28 7 0.932722 0.879617 0.000000
+20 28 8 0.930098 0.893279 0.000000
+20 28 9 0.925082 0.906048 0.000000
+20 28 10 0.920215 0.918695 0.031064
+20 28 11 0.915674 0.931073 0.244177
+20 28 12 0.910676 0.942816 0.408142
+20 28 13 0.904917 0.953499 0.490192
+20 28 14 0.899391 0.963246 0.565715
+20 28 15 0.894167 0.971790 0.632845
+20 28 16 0.889185 0.979349 0.693584
+20 28 17 0.884445 0.985921 0.747931
+20 28 18 0.880498 0.991714 0.798127
+20 28 19 0.877166 0.996900 0.845097
+20 28 20 0.874170 1.000740 0.881344
+20 28 21 0.871375 1.003772 0.911157
+20 28 22 0.869593 1.006172 0.935547
+20 28 23 0.868272 1.008285 0.957471
+20 28 24 0.866816 1.009727 0.972690
+20 28 25 0.865314 1.010947 0.985674
+20 28 26 0.863842 1.011369 0.992152
+20 28 27 0.862376 1.011607 0.997129
+20 28 28 0.861376 1.012145 1.001279
+20 28 29 0.860444 1.012727 1.005310
+20 28 30 0.859845 1.013331 1.008862
+20 28 31 0.859267 1.013936 1.012382
+20 29 0 0.948053 0.823264 0.000000
+20 29 1 0.946797 0.828179 0.000000
+20 29 2 0.945508 0.833200 0.000000
+20 29 3 0.943742 0.839821 0.000000
+20 29 4 0.941805 0.847114 0.000000
+20 29 5 0.938682 0.859117 0.000000
+20 29 6 0.935599 0.871704 0.000000
+20 29 7 0.932691 0.886822 0.000000
+20 29 8 0.929182 0.901306 0.000000
+20 29 9 0.923873 0.913887 0.000254
+20 29 10 0.918878 0.926248 0.124605
+20 29 11 0.914574 0.938126 0.294869
+20 29 12 0.909680 0.949450 0.431161
+20 29 13 0.903802 0.959851 0.510833
+20 29 14 0.898223 0.969275 0.583881
+20 29 15 0.893030 0.977443 0.648413
+20 29 16 0.888078 0.984688 0.707383
+20 29 17 0.883366 0.991009 0.760792
+20 29 18 0.879579 0.996550 0.809238
+20 29 19 0.876510 1.001484 0.853824
+20 29 20 0.873722 1.005229 0.888843
+20 29 21 0.871102 1.008261 0.918123
+20 29 22 0.869355 1.010553 0.941205
+20 29 23 0.868006 1.012508 0.961470
+20 29 24 0.866564 1.013864 0.975803
+20 29 25 0.865090 1.015019 0.988159
+20 29 26 0.863623 1.015481 0.994520
+20 29 27 0.862157 1.015783 0.999497
+20 29 28 0.861182 1.016000 1.002824
+20 29 29 0.860278 1.016206 1.005915
+20 29 30 0.859736 1.016786 1.009408
+20 29 31 0.859218 1.017391 1.012928
+20 30 0 0.949161 0.827182 0.000000
+20 30 1 0.947908 0.832041 0.000000
+20 30 2 0.946623 0.837013 0.000000
+20 30 3 0.944857 0.843690 0.000000
+20 30 4 0.942919 0.851031 0.000000
+20 30 5 0.939784 0.863022 0.000000
+20 30 6 0.936545 0.875822 0.000000
+20 30 7 0.932849 0.892127 0.000000
+20 30 8 0.928692 0.907447 0.000000
+20 30 9 0.923150 0.919812 0.063558
+20 30 10 0.918032 0.931941 0.210133
+20 30 11 0.913849 0.943551 0.340099
+20 30 12 0.909060 0.954614 0.450411
+20 30 13 0.903259 0.964765 0.527967
+20 30 14 0.897687 0.973908 0.598777
+20 30 15 0.892412 0.981757 0.660914
+20 30 16 0.887448 0.988717 0.718203
+20 30 17 0.882796 0.994789 0.770644
+20 30 18 0.879167 1.000096 0.817640
+20 30 19 0.876331 1.004807 0.860402
+20 30 20 0.873672 1.008468 0.894533
+20 30 21 0.871118 1.011500 0.923487
+20 30 22 0.869372 1.013744 0.945586
+20 30 23 0.867991 1.015630 0.964571
+20 30 24 0.866584 1.016943 0.978226
+20 30 25 0.865168 1.018067 0.990105
+20 30 26 0.863712 1.018477 0.996327
+20 30 27 0.862246 1.018723 1.001245
+20 30 28 0.861273 1.018913 1.004565
+20 30 29 0.860370 1.019095 1.007657
+20 30 30 0.859810 1.019455 1.010545
+20 30 31 0.859271 1.019827 1.013420
+20 31 0 0.950244 0.831014 0.000000
+20 31 1 0.948991 0.835809 0.000000
+20 31 2 0.947706 0.840725 0.000000
+20 31 3 0.945940 0.847465 0.000000
+20 31 4 0.944002 0.854858 0.000000
+20 31 5 0.940867 0.866816 0.000000
+20 31 6 0.937484 0.879812 0.000000
+20 31 7 0.933020 0.897306 0.000000
+20 31 8 0.928230 0.913463 0.000000
+20 31 9 0.922459 0.925609 0.126484
+20 31 10 0.917220 0.937509 0.295128
+20 31 11 0.913150 0.948868 0.384965
+20 31 12 0.908465 0.959680 0.469409
+20 31 13 0.902754 0.969582 0.544866
+20 31 14 0.897194 0.978447 0.613454
+20 31 15 0.891828 0.985981 0.673210
+20 31 16 0.886850 0.992659 0.728823
+20 31 17 0.882261 0.998483 0.780294
+20 31 18 0.878788 1.003556 0.825861
+20 31 19 0.876184 1.008045 0.866836
+20 31 20 0.873649 1.011624 0.900102
+20 31 21 0.871155 1.014656 0.928744
+20 31 22 0.869405 1.016856 0.949882
+20 31 23 0.867994 1.018678 0.967611
+20 31 24 0.866623 1.019953 0.980602
+20 31 25 0.865267 1.021046 0.992014
+20 31 26 0.863821 1.021399 0.998097
+20 31 27 0.862355 1.021581 1.002951
+20 31 28 0.861382 1.021763 1.006319
+20 31 29 0.860480 1.021945 1.009475
+20 31 30 0.859895 1.022072 1.011721
+20 31 31 0.859332 1.022196 1.013907
+21 0 0 0.533794 0.000000 0.000000
+21 0 1 0.534079 0.000000 0.000000
+21 0 2 0.534374 0.000000 0.000000
+21 0 3 0.534828 0.000000 0.000000
+21 0 4 0.535335 0.000000 0.000000
+21 0 5 0.536216 0.000000 0.000000
+21 0 6 0.537360 0.000000 0.000000
+21 0 7 0.539647 0.000000 0.000000
+21 0 8 0.542894 0.000000 0.030180
+21 0 9 0.549026 0.000000 0.049525
+21 0 10 0.554293 0.000000 0.078053
+21 0 11 0.557658 0.000000 0.126785
+21 0 12 0.561253 0.000000 0.173946
+21 0 13 0.565236 0.000000 0.218488
+21 0 14 0.569488 0.000000 0.264488
+21 0 15 0.574089 0.000000 0.312362
+21 0 16 0.578437 0.000000 0.356264
+21 0 17 0.582534 0.000000 0.396193
+21 0 18 0.586552 0.000000 0.434926
+21 0 19 0.590506 0.000000 0.472728
+21 0 20 0.595012 0.000000 0.506472
+21 0 21 0.599847 0.000000 0.537781
+21 0 22 0.606917 0.000000 0.566856
+21 0 23 0.615002 0.000000 0.594915
+21 0 24 0.629507 0.000000 0.627205
+21 0 25 0.646152 0.000000 0.660906
+21 0 26 0.672260 0.000000 0.701563
+21 0 27 0.700551 0.000000 0.743825
+21 0 28 0.719720 0.000000 0.772564
+21 0 29 0.737585 0.000000 0.799372
+21 0 30 0.750574 0.066112 0.819150
+21 0 31 0.763237 0.163288 0.838460
+21 1 0 0.541086 0.000000 0.000000
+21 1 1 0.541884 0.000000 0.000000
+21 1 2 0.542661 0.000000 0.000000
+21 1 3 0.543115 0.000000 0.000000
+21 1 4 0.543622 0.000000 0.000000
+21 1 5 0.544503 0.000000 0.000000
+21 1 6 0.545617 0.000000 0.000000
+21 1 7 0.547743 0.000000 0.000000
+21 1 8 0.550866 0.000000 0.033422
+21 1 9 0.556984 0.000000 0.052500
+21 1 10 0.562250 0.000000 0.080991
+21 1 11 0.565643 0.000000 0.130193
+21 1 12 0.569251 0.000000 0.177989
+21 1 13 0.573219 0.000000 0.223441
+21 1 14 0.577387 0.000000 0.270063
+21 1 15 0.581812 0.000000 0.318189
+21 1 16 0.586110 0.000000 0.362820
+21 1 17 0.590281 0.000000 0.403957
+21 1 18 0.594289 0.000000 0.443173
+21 1 19 0.598170 0.000000 0.480897
+21 1 20 0.602685 0.000000 0.515013
+21 1 21 0.607580 0.000000 0.546965
+21 1 22 0.614386 0.000000 0.575765
+21 1 23 0.622062 0.000000 0.603133
+21 1 24 0.635053 0.000000 0.633746
+21 1 25 0.649815 0.000000 0.665442
+21 1 26 0.675558 0.000000 0.705659
+21 1 27 0.703835 0.000000 0.747842
+21 1 28 0.723014 0.000000 0.776641
+21 1 29 0.740894 0.000000 0.803527
+21 1 30 0.753870 0.079563 0.823310
+21 1 31 0.766519 0.176739 0.842620
+21 2 0 0.548535 0.000000 0.000000
+21 2 1 0.549820 0.000000 0.000000
+21 2 2 0.551056 0.000000 0.000000
+21 2 3 0.551546 0.000000 0.000000
+21 2 4 0.552085 0.000000 0.000000
+21 2 5 0.552966 0.000000 0.000000
+21 2 6 0.554050 0.000000 0.000000
+21 2 7 0.556010 0.000000 0.000000
+21 2 8 0.559006 0.000000 0.036042
+21 2 9 0.565110 0.000000 0.055255
+21 2 10 0.570375 0.000000 0.083990
+21 2 11 0.573794 0.000000 0.133674
+21 2 12 0.577414 0.000000 0.182119
+21 2 13 0.581368 0.000000 0.228499
+21 2 14 0.585454 0.000000 0.275755
+21 2 15 0.589709 0.000000 0.324140
+21 2 16 0.593955 0.000000 0.369514
+21 2 17 0.598193 0.000000 0.411880
+21 2 18 0.602192 0.000000 0.451590
+21 2 19 0.606005 0.000000 0.489237
+21 2 20 0.610529 0.000000 0.523729
+21 2 21 0.615478 0.000000 0.556329
+21 2 22 0.622017 0.000000 0.584855
+21 2 23 0.629277 0.000000 0.611531
+21 2 24 0.640816 0.000000 0.640531
+21 2 25 0.653780 0.000000 0.670306
+21 2 26 0.679068 0.000000 0.709997
+21 2 27 0.707201 0.000000 0.751976
+21 2 28 0.726372 0.000000 0.780809
+21 2 29 0.744264 0.000000 0.807763
+21 2 30 0.757234 0.093287 0.827551
+21 2 31 0.769875 0.190463 0.846860
+21 3 0 0.558343 0.000000 0.000000
+21 3 1 0.559716 0.000000 0.000000
+21 3 2 0.561069 0.000000 0.000000
+21 3 3 0.562132 0.000000 0.000000
+21 3 4 0.563174 0.000000 0.000000
+21 3 5 0.564070 0.000000 0.000000
+21 3 6 0.565121 0.000000 0.000000
+21 3 7 0.566847 0.000000 0.000000
+21 3 8 0.569664 0.000000 0.029344
+21 3 9 0.575753 0.000000 0.054720
+21 3 10 0.581013 0.000000 0.087898
+21 3 11 0.584447 0.000000 0.138240
+21 3 12 0.588070 0.000000 0.187543
+21 3 13 0.592010 0.000000 0.235115
+21 3 14 0.596044 0.000000 0.283200
+21 3 15 0.600197 0.000000 0.331945
+21 3 16 0.604378 0.000000 0.378277
+21 3 17 0.608587 0.000000 0.422195
+21 3 18 0.612582 0.000000 0.462558
+21 3 19 0.616410 0.000000 0.500156
+21 3 20 0.620930 0.000000 0.535081
+21 3 21 0.625865 0.000000 0.568402
+21 3 22 0.632057 0.000000 0.596669
+21 3 23 0.638821 0.000000 0.622637
+21 3 24 0.649841 0.000000 0.650967
+21 3 25 0.662280 0.000000 0.680084
+21 3 26 0.685761 0.000000 0.717959
+21 3 27 0.711790 0.000000 0.757854
+21 3 28 0.730687 0.000000 0.786344
+21 3 29 0.748565 0.015197 0.813205
+21 3 30 0.761615 0.111110 0.832986
+21 3 31 0.774344 0.208286 0.852296
+21 4 0 0.569104 0.000000 0.000000
+21 4 1 0.570543 0.000000 0.000000
+21 4 2 0.571991 0.000000 0.000000
+21 4 3 0.573575 0.000000 0.000000
+21 4 4 0.575091 0.000000 0.000000
+21 4 5 0.576126 0.000000 0.000000
+21 4 6 0.577252 0.000000 0.000000
+21 4 7 0.578772 0.000000 0.000000
+21 4 8 0.581420 0.000000 0.016879
+21 4 9 0.587448 0.000000 0.052112
+21 4 10 0.592672 0.000000 0.092274
+21 4 11 0.596129 0.000000 0.143283
+21 4 12 0.599759 0.000000 0.193492
+21 4 13 0.603675 0.000000 0.242369
+21 4 14 0.607642 0.000000 0.291360
+21 4 15 0.611674 0.000000 0.340498
+21 4 16 0.615779 0.000000 0.387879
+21 4 17 0.619958 0.000000 0.433502
+21 4 18 0.623948 0.000000 0.474590
+21 4 19 0.627790 0.000000 0.512149
+21 4 20 0.632311 0.000000 0.547542
+21 4 21 0.637240 0.000000 0.581637
+21 4 22 0.643072 0.000000 0.609634
+21 4 23 0.649315 0.000000 0.634861
+21 4 24 0.659840 0.000000 0.662550
+21 4 25 0.671792 0.000000 0.691060
+21 4 26 0.693250 0.000000 0.726859
+21 4 27 0.716903 0.000000 0.764340
+21 4 28 0.735464 0.000000 0.792435
+21 4 29 0.753298 0.034116 0.819190
+21 4 30 0.766418 0.130659 0.838955
+21 4 31 0.779224 0.227836 0.858255
+21 5 0 0.586543 0.000000 0.000000
+21 5 1 0.587894 0.000000 0.000000
+21 5 2 0.589270 0.000000 0.000000
+21 5 3 0.591015 0.000000 0.000000
+21 5 4 0.592799 0.000000 0.000000
+21 5 5 0.594847 0.000000 0.000000
+21 5 6 0.596796 0.000000 0.000000
+21 5 7 0.598317 0.000000 0.000000
+21 5 8 0.600866 0.000000 0.000000
+21 5 9 0.606498 0.000000 0.034991
+21 5 10 0.611479 0.000000 0.099933
+21 5 11 0.615023 0.000000 0.151664
+21 5 12 0.618674 0.000000 0.203112
+21 5 13 0.622503 0.000000 0.254091
+21 5 14 0.626306 0.000000 0.304533
+21 5 15 0.630075 0.000000 0.354283
+21 5 16 0.634028 0.000000 0.403357
+21 5 17 0.638165 0.000000 0.451756
+21 5 18 0.642144 0.000000 0.494075
+21 5 19 0.646000 0.000000 0.531664
+21 5 20 0.650554 0.000000 0.567774
+21 5 21 0.655528 0.000000 0.602997
+21 5 22 0.660903 0.000000 0.630667
+21 5 23 0.666460 0.000000 0.654905
+21 5 24 0.676648 0.000000 0.682158
+21 5 25 0.688380 0.000000 0.710416
+21 5 26 0.706311 0.000000 0.742324
+21 5 27 0.725671 0.000000 0.775073
+21 5 28 0.743479 0.000000 0.802413
+21 5 29 0.761065 0.064734 0.828980
+21 5 30 0.774169 0.162297 0.848660
+21 5 31 0.786975 0.259474 0.867880
+21 6 0 0.606080 0.000000 0.000000
+21 6 1 0.607365 0.000000 0.000000
+21 6 2 0.608688 0.000000 0.000000
+21 6 3 0.610561 0.000000 0.000000
+21 6 4 0.612565 0.000000 0.000000
+21 6 5 0.615481 0.000000 0.000000
+21 6 6 0.618177 0.000000 0.000000
+21 6 7 0.619924 0.000000 0.000000
+21 6 8 0.622536 0.000000 0.000000
+21 6 9 0.627744 0.000000 0.022444
+21 6 10 0.632461 0.000000 0.108565
+21 6 11 0.636098 0.000000 0.161025
+21 6 12 0.639778 0.000000 0.213780
+21 6 13 0.643528 0.000000 0.267028
+21 6 14 0.647158 0.000000 0.319122
+21 6 15 0.650634 0.000000 0.369731
+21 6 16 0.654400 0.000000 0.420489
+21 6 17 0.658457 0.000000 0.471395
+21 6 18 0.662382 0.000000 0.515137
+21 6 19 0.666206 0.000000 0.553306
+21 6 20 0.670758 0.000000 0.590163
+21 6 21 0.675747 0.000000 0.626231
+21 6 22 0.680733 0.000000 0.653897
+21 6 23 0.685719 0.000000 0.677742
+21 6 24 0.695382 0.000000 0.704354
+21 6 25 0.706604 0.000000 0.731888
+21 6 26 0.721606 0.000000 0.760538
+21 6 27 0.737480 0.000000 0.789447
+21 6 28 0.754025 0.002672 0.815473
+21 6 29 0.770665 0.112436 0.841088
+21 6 30 0.783231 0.204243 0.860095
+21 6 31 0.795526 0.294854 0.878661
+21 7 0 0.634711 0.000000 0.000000
+21 7 1 0.636024 0.000000 0.000000
+21 7 2 0.637372 0.000000 0.000000
+21 7 3 0.639231 0.000000 0.000000
+21 7 4 0.641252 0.000000 0.000000
+21 7 5 0.644402 0.000000 0.000000
+21 7 6 0.647515 0.000000 0.000000
+21 7 7 0.650467 0.000000 0.000000
+21 7 8 0.653845 0.000000 0.000000
+21 7 9 0.658500 0.000000 0.029722
+21 7 10 0.662872 0.000000 0.121408
+21 7 11 0.666625 0.000000 0.174632
+21 7 12 0.670362 0.000000 0.228988
+21 7 13 0.674069 0.000000 0.285230
+21 7 14 0.677490 0.000000 0.339850
+21 7 15 0.680543 0.000000 0.392385
+21 7 16 0.683975 0.000000 0.444780
+21 7 17 0.687786 0.000000 0.497037
+21 7 18 0.691472 0.000000 0.543034
+21 7 19 0.695061 0.000000 0.584163
+21 7 20 0.699452 0.000000 0.621895
+21 7 21 0.704326 0.000000 0.657587
+21 7 22 0.709226 0.000000 0.686643
+21 7 23 0.714138 0.000000 0.712681
+21 7 24 0.722459 0.000000 0.737762
+21 7 25 0.731917 0.000162 0.762524
+21 7 26 0.746588 0.047622 0.790667
+21 7 27 0.762462 0.091662 0.819590
+21 7 28 0.775536 0.161102 0.841890
+21 7 29 0.788209 0.234170 0.863244
+21 7 30 0.797973 0.290858 0.879033
+21 7 31 0.807544 0.346454 0.894451
+21 8 0 0.661722 0.017679 0.000000
+21 8 1 0.663086 0.019487 0.000000
+21 8 2 0.664481 0.018041 0.000000
+21 8 3 0.666337 0.000000 0.000000
+21 8 4 0.668378 0.000000 0.000000
+21 8 5 0.671711 0.000000 0.000000
+21 8 6 0.675145 0.000000 0.000000
+21 8 7 0.679016 0.000000 0.000000
+21 8 8 0.682984 0.000000 0.000000
+21 8 9 0.687241 0.000000 0.034361
+21 8 10 0.691371 0.000000 0.131567
+21 8 11 0.695219 0.000000 0.186442
+21 8 12 0.698960 0.000000 0.242856
+21 8 13 0.702523 0.000000 0.301836
+21 8 14 0.705714 0.000000 0.358853
+21 8 15 0.708427 0.000000 0.413346
+21 8 16 0.711560 0.000000 0.467372
+21 8 17 0.715114 0.000000 0.520930
+21 8 18 0.718542 0.000000 0.568825
+21 8 19 0.721871 0.000000 0.612316
+21 8 20 0.725981 0.000000 0.650903
+21 8 21 0.730559 0.000000 0.686548
+21 8 22 0.735209 0.000000 0.716650
+21 8 23 0.739892 0.000000 0.744232
+21 8 24 0.746955 0.010209 0.768068
+21 8 25 0.754812 0.101987 0.790657
+21 8 26 0.768822 0.175608 0.817886
+21 8 27 0.784252 0.245040 0.846186
+21 8 28 0.794440 0.292232 0.865286
+21 8 29 0.803879 0.336247 0.883071
+21 8 30 0.811331 0.365860 0.896160
+21 8 31 0.818649 0.394513 0.908935
+21 9 0 0.683876 0.060341 0.000000
+21 9 1 0.685359 0.060893 0.000000
+21 9 2 0.686867 0.060225 0.000000
+21 9 3 0.688751 0.041263 0.000000
+21 9 4 0.690820 0.025099 0.000000
+21 9 5 0.694181 0.028514 0.000000
+21 9 6 0.697649 0.032285 0.000000
+21 9 7 0.701579 0.037601 0.000000
+21 9 8 0.705610 0.042169 0.000000
+21 9 9 0.709941 0.044492 0.031086
+21 9 10 0.714131 0.047469 0.133672
+21 9 11 0.718010 0.051883 0.192856
+21 9 12 0.721600 0.056067 0.252705
+21 9 13 0.724712 0.059865 0.313660
+21 9 14 0.727611 0.064508 0.372685
+21 9 15 0.730236 0.070239 0.429232
+21 9 16 0.733181 0.072246 0.484863
+21 9 17 0.736444 0.070529 0.539580
+21 9 18 0.739555 0.070543 0.588299
+21 9 19 0.742548 0.071903 0.632354
+21 9 20 0.746012 0.073732 0.671740
+21 9 21 0.749757 0.075843 0.708326
+21 9 22 0.753665 0.081638 0.738442
+21 9 23 0.757648 0.089107 0.765617
+21 9 24 0.763706 0.130303 0.789070
+21 9 25 0.770457 0.182741 0.811282
+21 9 26 0.782814 0.241107 0.836379
+21 9 27 0.796465 0.300842 0.862140
+21 9 28 0.805524 0.341462 0.879620
+21 9 29 0.813927 0.379351 0.895916
+21 9 30 0.820533 0.406025 0.907853
+21 9 31 0.827018 0.431951 0.919500
+21 10 0 0.707356 0.107219 0.000000
+21 10 1 0.708898 0.107329 0.000000
+21 10 2 0.710459 0.107598 0.000000
+21 10 3 0.712327 0.110246 0.000000
+21 10 4 0.714381 0.113227 0.000000
+21 10 5 0.717744 0.118537 0.000000
+21 10 6 0.721219 0.124264 0.000000
+21 10 7 0.725181 0.131793 0.000000
+21 10 8 0.729221 0.138417 0.000000
+21 10 9 0.733498 0.142326 0.028889
+21 10 10 0.737608 0.147151 0.135503
+21 10 11 0.741353 0.153994 0.198611
+21 10 12 0.744711 0.160564 0.261683
+21 10 13 0.747426 0.166682 0.324696
+21 10 14 0.749981 0.172162 0.385891
+21 10 15 0.752332 0.176823 0.444749
+21 10 16 0.754989 0.180446 0.502077
+21 10 17 0.757952 0.183032 0.557874
+21 10 18 0.760712 0.185616 0.607535
+21 10 19 0.763315 0.188199 0.652423
+21 10 20 0.766128 0.191167 0.692557
+21 10 21 0.769069 0.194366 0.729838
+21 10 22 0.772260 0.202335 0.760006
+21 10 23 0.775565 0.212472 0.786941
+21 10 24 0.780710 0.233656 0.809912
+21 10 25 0.786467 0.258522 0.831563
+21 10 26 0.796971 0.304537 0.854419
+21 10 27 0.808570 0.355432 0.877554
+21 10 28 0.816390 0.390495 0.893441
+21 10 29 0.823671 0.423295 0.908293
+21 10 30 0.829460 0.447447 0.919197
+21 10 31 0.835150 0.471023 0.929838
+21 11 0 0.733755 0.163373 0.000000
+21 11 1 0.735223 0.164833 0.000000
+21 11 2 0.736709 0.166388 0.000000
+21 11 3 0.738460 0.169366 0.000000
+21 11 4 0.740406 0.172675 0.000000
+21 11 5 0.743713 0.178302 0.000000
+21 11 6 0.747136 0.183732 0.000000
+21 11 7 0.751067 0.188313 0.000000
+21 11 8 0.755000 0.193450 0.000000
+21 11 9 0.758940 0.200259 0.029064
+21 11 10 0.762665 0.207239 0.136734
+21 11 11 0.765913 0.214597 0.202914
+21 11 12 0.768857 0.222018 0.268747
+21 11 13 0.771294 0.229546 0.334000
+21 11 14 0.773394 0.236216 0.397717
+21 11 15 0.775059 0.241784 0.459456
+21 11 16 0.777212 0.246763 0.518680
+21 11 17 0.779853 0.251153 0.575387
+21 11 18 0.782184 0.255063 0.626248
+21 11 19 0.784276 0.258599 0.672561
+21 11 20 0.786434 0.262328 0.713328
+21 11 21 0.788632 0.266172 0.750767
+21 11 22 0.791161 0.272844 0.781070
+21 11 23 0.793839 0.280800 0.808129
+21 11 24 0.798270 0.300178 0.830404
+21 11 25 0.803285 0.323365 0.851084
+21 11 26 0.811493 0.363414 0.871467
+21 11 27 0.820438 0.407355 0.891781
+21 11 28 0.826778 0.439093 0.906137
+21 11 29 0.832746 0.469088 0.919642
+21 11 30 0.837783 0.491638 0.929771
+21 11 31 0.842759 0.513691 0.939675
+21 12 0 0.760420 0.219806 0.000000
+21 12 1 0.761870 0.222163 0.000000
+21 12 2 0.763339 0.224574 0.000000
+21 12 3 0.765101 0.227794 0.000000
+21 12 4 0.767069 0.231352 0.000000
+21 12 5 0.770483 0.237270 0.000000
+21 12 6 0.773951 0.242937 0.000000
+21 12 7 0.777649 0.247520 0.000000
+21 12 8 0.781327 0.253122 0.000000
+21 12 9 0.784943 0.261777 0.026702
+21 12 10 0.788306 0.270338 0.134436
+21 12 11 0.791112 0.278688 0.204977
+21 12 12 0.793592 0.287199 0.274609
+21 12 13 0.795529 0.295979 0.342728
+21 12 14 0.797085 0.303838 0.409100
+21 12 15 0.798152 0.310513 0.473229
+21 12 16 0.799782 0.316733 0.534378
+21 12 17 0.801976 0.322499 0.592548
+21 12 18 0.803801 0.327471 0.644672
+21 12 19 0.805338 0.331825 0.692093
+21 12 20 0.806872 0.336025 0.733595
+21 12 21 0.808404 0.340132 0.771544
+21 12 22 0.810187 0.345916 0.801814
+21 12 23 0.812085 0.352461 0.828592
+21 12 24 0.815624 0.369734 0.850121
+21 12 25 0.819709 0.390582 0.869900
+21 12 26 0.825830 0.425124 0.888184
+21 12 27 0.832420 0.462826 0.906124
+21 12 28 0.837389 0.491057 0.919081
+21 12 29 0.842125 0.517935 0.931327
+21 12 30 0.846349 0.538456 0.940648
+21 12 31 0.850538 0.558553 0.949774
+21 13 0 0.787530 0.276706 0.000000
+21 13 1 0.789053 0.279206 0.000000
+21 13 2 0.790605 0.281756 0.000000
+21 13 3 0.792587 0.285071 0.000000
+21 13 4 0.794796 0.288742 0.000000
+21 13 5 0.798591 0.294911 0.000000
+21 13 6 0.802262 0.301706 0.000000
+21 13 7 0.805392 0.311208 0.000000
+21 13 8 0.808568 0.320523 0.000000
+21 13 9 0.811880 0.329272 0.020113
+21 13 10 0.814924 0.338456 0.126257
+21 13 11 0.817380 0.348592 0.203306
+21 13 12 0.819313 0.358591 0.278471
+21 13 13 0.820374 0.368359 0.350492
+21 13 14 0.821240 0.377405 0.419747
+21 13 15 0.821855 0.385520 0.485443
+21 13 16 0.822932 0.392792 0.548568
+21 13 17 0.824471 0.399219 0.609122
+21 13 18 0.825657 0.404814 0.662615
+21 13 19 0.826567 0.409762 0.710616
+21 13 20 0.827529 0.413950 0.753021
+21 13 21 0.828522 0.417682 0.792068
+21 13 22 0.829424 0.423260 0.822024
+21 13 23 0.830286 0.429678 0.847847
+21 13 24 0.832634 0.444344 0.868547
+21 13 25 0.835477 0.461759 0.887541
+21 13 26 0.839858 0.491557 0.904352
+21 13 27 0.844593 0.524212 0.920660
+21 13 28 0.848371 0.548630 0.932440
+21 13 29 0.852012 0.571871 0.943573
+21 13 30 0.855318 0.589654 0.952030
+21 13 31 0.858601 0.607074 0.960310
+21 14 0 0.815245 0.340859 0.000000
+21 14 1 0.816656 0.343384 0.000000
+21 14 2 0.818098 0.345959 0.000000
+21 14 3 0.819986 0.349272 0.000000
+21 14 4 0.822085 0.352935 0.000000
+21 14 5 0.825653 0.359055 0.000000
+21 14 6 0.829081 0.366221 0.000000
+21 14 7 0.831897 0.377920 0.000000
+21 14 8 0.834729 0.389108 0.000000
+21 14 9 0.837607 0.398761 0.000000
+21 14 10 0.840186 0.409004 0.078836
+21 14 11 0.842107 0.420542 0.185488
+21 14 12 0.843413 0.431764 0.280460
+21 14 13 0.843696 0.442459 0.355966
+21 14 14 0.843809 0.452445 0.428106
+21 14 15 0.843704 0.461521 0.495918
+21 14 16 0.844052 0.469394 0.560837
+21 14 17 0.844854 0.476064 0.622862
+21 14 18 0.845296 0.482058 0.677637
+21 14 19 0.845458 0.487525 0.726773
+21 14 20 0.845786 0.491707 0.769993
+21 14 21 0.846214 0.495118 0.809665
+21 14 22 0.846491 0.500250 0.839879
+21 14 23 0.846699 0.506164 0.865795
+21 14 24 0.848106 0.518659 0.885993
+21 14 25 0.849912 0.533348 0.904284
+21 14 26 0.852805 0.558741 0.919618
+21 14 27 0.855949 0.586604 0.934268
+21 14 28 0.858525 0.607164 0.944729
+21 14 29 0.861020 0.626680 0.954591
+21 14 30 0.863501 0.641828 0.962170
+21 14 31 0.865982 0.656684 0.969597
+21 15 0 0.843739 0.414336 0.000000
+21 15 1 0.844800 0.416737 0.000000
+21 15 2 0.845882 0.419187 0.000000
+21 15 3 0.847274 0.422376 0.000000
+21 15 4 0.848811 0.425876 0.000000
+21 15 5 0.851372 0.431559 0.000000
+21 15 6 0.853983 0.438126 0.000000
+21 15 7 0.856811 0.448521 0.000000
+21 15 8 0.859502 0.459216 0.000000
+21 15 9 0.861781 0.470814 0.000000
+21 15 10 0.863706 0.482676 0.000000
+21 15 11 0.864854 0.495121 0.146907
+21 15 12 0.865431 0.507227 0.280042
+21 15 13 0.865058 0.518768 0.358493
+21 15 14 0.864337 0.529381 0.433524
+21 15 15 0.863168 0.538799 0.504157
+21 15 16 0.862562 0.546697 0.570634
+21 15 17 0.862519 0.553073 0.632956
+21 15 18 0.862084 0.559174 0.688902
+21 15 19 0.861343 0.565063 0.739888
+21 15 20 0.860958 0.569248 0.783812
+21 15 21 0.860787 0.572410 0.823499
+21 15 22 0.860766 0.576785 0.854708
+21 15 23 0.860814 0.581710 0.882065
+21 15 24 0.861600 0.592595 0.902177
+21 15 25 0.862633 0.605468 0.919874
+21 15 26 0.864362 0.626893 0.933723
+21 15 27 0.866252 0.650291 0.946685
+21 15 28 0.867612 0.666933 0.955644
+21 15 29 0.868896 0.682609 0.964032
+21 15 30 0.870674 0.695254 0.970712
+21 15 31 0.872486 0.707696 0.977277
+21 16 0 0.868179 0.479149 0.000000
+21 16 1 0.869190 0.481809 0.000000
+21 16 2 0.870216 0.484529 0.000000
+21 16 3 0.871484 0.488142 0.000000
+21 16 4 0.872884 0.492099 0.000000
+21 16 5 0.875219 0.498466 0.000000
+21 16 6 0.877585 0.505572 0.000000
+21 16 7 0.880084 0.515879 0.000000
+21 16 8 0.882373 0.526824 0.000000
+21 16 9 0.884033 0.539685 0.000000
+21 16 10 0.885295 0.552680 0.000000
+21 16 11 0.885684 0.565971 0.124888
+21 16 12 0.885435 0.578759 0.276626
+21 16 13 0.884122 0.590706 0.358737
+21 16 14 0.882451 0.601488 0.436763
+21 16 15 0.880320 0.610772 0.509536
+21 16 16 0.878831 0.618963 0.577793
+21 16 17 0.877987 0.626063 0.641535
+21 16 18 0.876799 0.632480 0.698727
+21 16 19 0.875344 0.638367 0.750826
+21 16 20 0.874449 0.642700 0.795687
+21 16 21 0.873891 0.646099 0.836205
+21 16 22 0.873549 0.649932 0.868019
+21 16 23 0.873304 0.653962 0.895875
+21 16 24 0.873459 0.663037 0.915825
+21 16 25 0.873748 0.673794 0.933138
+21 16 26 0.874401 0.691339 0.945834
+21 16 27 0.875138 0.710451 0.957464
+21 16 28 0.875529 0.723649 0.965359
+21 16 29 0.875872 0.736003 0.972720
+21 16 30 0.877058 0.746478 0.978644
+21 16 31 0.878301 0.756828 0.984473
+21 17 0 0.888566 0.535296 0.000000
+21 17 1 0.889825 0.538600 0.000000
+21 17 2 0.891100 0.541983 0.000000
+21 17 3 0.892616 0.546570 0.000000
+21 17 4 0.894304 0.551604 0.000000
+21 17 5 0.897195 0.559776 0.000000
+21 17 6 0.899887 0.568560 0.000000
+21 17 7 0.901717 0.579995 0.000000
+21 17 8 0.903344 0.591932 0.000000
+21 17 9 0.904363 0.605375 0.000000
+21 17 10 0.904953 0.619016 0.000000
+21 17 11 0.904599 0.633093 0.119431
+21 17 12 0.903426 0.646359 0.270211
+21 17 13 0.900888 0.658273 0.356699
+21 17 14 0.898151 0.668768 0.437825
+21 17 15 0.895158 0.677439 0.512056
+21 17 16 0.892860 0.686195 0.582313
+21 17 17 0.891256 0.695035 0.648597
+21 17 18 0.889440 0.701975 0.707113
+21 17 19 0.887460 0.707438 0.759588
+21 17 20 0.886259 0.712062 0.805619
+21 17 21 0.885526 0.716183 0.847784
+21 17 22 0.884838 0.719691 0.879809
+21 17 23 0.884170 0.722921 0.907227
+21 17 24 0.883683 0.729985 0.926936
+21 17 25 0.883257 0.738328 0.944077
+21 17 26 0.882921 0.752081 0.955949
+21 17 27 0.882605 0.767083 0.966606
+21 17 28 0.882277 0.777313 0.973872
+21 17 29 0.881947 0.786861 0.980654
+21 17 30 0.882652 0.795501 0.985968
+21 17 31 0.883426 0.804079 0.991184
+21 18 0 0.907756 0.590806 0.000000
+21 18 1 0.908754 0.593976 0.000000
+21 18 2 0.909767 0.597229 0.000000
+21 18 3 0.911014 0.601721 0.000000
+21 18 4 0.912427 0.606681 0.000000
+21 18 5 0.915011 0.614919 0.000000
+21 18 6 0.917451 0.623967 0.000000
+21 18 7 0.919274 0.636520 0.000000
+21 18 8 0.920701 0.649390 0.000000
+21 18 9 0.920939 0.663210 0.000000
+21 18 10 0.920697 0.677306 0.000000
+21 18 11 0.919396 0.692008 0.113978
+21 18 12 0.917267 0.705613 0.263540
+21 18 13 0.913757 0.717390 0.353705
+21 18 14 0.910105 0.727937 0.437676
+21 18 15 0.906268 0.736905 0.513684
+21 18 16 0.903222 0.745873 0.585437
+21 18 17 0.900964 0.754840 0.652936
+21 18 18 0.898678 0.762192 0.712657
+21 18 19 0.896370 0.768288 0.766327
+21 18 20 0.894880 0.773039 0.813097
+21 18 21 0.893882 0.776982 0.855726
+21 18 22 0.892921 0.780412 0.888201
+21 18 23 0.891977 0.783609 0.916060
+21 18 24 0.891095 0.789226 0.935619
+21 18 25 0.890235 0.795649 0.952411
+21 18 26 0.889357 0.806230 0.963672
+21 18 27 0.888475 0.817771 0.973657
+21 18 28 0.887690 0.825761 0.980479
+21 18 29 0.886919 0.833244 0.986849
+21 18 30 0.887258 0.839979 0.991721
+21 18 31 0.887672 0.846663 0.996493
+21 19 0 0.926016 0.645820 0.000000
+21 19 1 0.926355 0.648253 0.000000
+21 19 2 0.926710 0.650757 0.000000
+21 19 3 0.927284 0.654324 0.000000
+21 19 4 0.927988 0.658314 0.000000
+21 19 5 0.929591 0.665266 0.000000
+21 19 6 0.931331 0.673477 0.000000
+21 19 7 0.933662 0.687140 0.000000
+21 19 8 0.935248 0.700897 0.000000
+21 19 9 0.934597 0.714936 0.000000
+21 19 10 0.933397 0.729339 0.000000
+21 19 11 0.930989 0.744541 0.108528
+21 19 12 0.927878 0.758377 0.256670
+21 19 13 0.923596 0.769935 0.349968
+21 19 14 0.919145 0.780799 0.436587
+21 19 15 0.914478 0.790771 0.514617
+21 19 16 0.910731 0.799676 0.587475
+21 19 17 0.907904 0.807515 0.655159
+21 19 18 0.905270 0.815192 0.715991
+21 19 19 0.902786 0.822744 0.771493
+21 19 20 0.901021 0.827493 0.818665
+21 19 21 0.899687 0.830560 0.860839
+21 19 22 0.898510 0.834104 0.893948
+21 19 23 0.897405 0.837865 0.922936
+21 19 24 0.896320 0.842471 0.942412
+21 19 25 0.895242 0.847360 0.958719
+21 19 26 0.894172 0.855251 0.969534
+21 19 27 0.893105 0.863834 0.979083
+21 19 28 0.892066 0.870152 0.985603
+21 19 29 0.891033 0.876146 0.991691
+21 19 30 0.891096 0.880922 0.996252
+21 19 31 0.891233 0.885617 1.000712
+21 20 0 0.938719 0.686044 0.000000
+21 20 1 0.939160 0.688868 0.000000
+21 20 2 0.939621 0.691769 0.000000
+21 20 3 0.940392 0.695833 0.000000
+21 20 4 0.941295 0.700358 0.000000
+21 20 5 0.943126 0.708113 0.000000
+21 20 6 0.944938 0.716962 0.000000
+21 20 7 0.946667 0.730553 0.000000
+21 20 8 0.947639 0.744381 0.000000
+21 20 9 0.946335 0.758923 0.000000
+21 20 10 0.944428 0.773619 0.000000
+21 20 11 0.941194 0.788657 0.103491
+21 20 12 0.937373 0.802587 0.250552
+21 20 13 0.932572 0.814672 0.347362
+21 20 14 0.927590 0.825718 0.436636
+21 20 15 0.922374 0.835429 0.516219
+21 20 16 0.918131 0.844556 0.590481
+21 20 17 0.914862 0.853098 0.659421
+21 20 18 0.911783 0.860855 0.720964
+21 20 19 0.908851 0.868003 0.776753
+21 20 20 0.906856 0.872909 0.824319
+21 20 21 0.905424 0.876470 0.866950
+21 20 22 0.904031 0.879870 0.899886
+21 20 23 0.902656 0.883196 0.928415
+21 20 24 0.901236 0.886688 0.947567
+21 20 25 0.899801 0.890235 0.963593
+21 20 26 0.898242 0.895458 0.974103
+21 20 27 0.896654 0.901067 0.983339
+21 20 28 0.895273 0.905307 0.989625
+21 20 29 0.893922 0.909351 0.995490
+21 20 30 0.893834 0.913002 0.999826
+21 20 31 0.893830 0.916627 1.004061
+21 21 0 0.948089 0.717394 0.000000
+21 21 1 0.949086 0.721286 0.000000
+21 21 2 0.950114 0.725272 0.000000
+21 21 3 0.951602 0.730685 0.000000
+21 21 4 0.953252 0.736649 0.000000
+21 21 5 0.956034 0.746460 0.000000
+21 21 6 0.958381 0.756833 0.000000
+21 21 7 0.958843 0.769641 0.000000
+21 21 8 0.958736 0.783051 0.000000
+21 21 9 0.956921 0.798266 0.000000
+21 21 10 0.954457 0.813249 0.000000
+21 21 11 0.950565 0.827722 0.098703
+21 21 12 0.946196 0.841665 0.244885
+21 21 13 0.941031 0.854723 0.345435
+21 21 14 0.935677 0.865871 0.437368
+21 21 15 0.930080 0.874564 0.518222
+21 21 16 0.925465 0.884081 0.594069
+21 21 17 0.921832 0.894425 0.664908
+21 21 18 0.918248 0.902116 0.726921
+21 21 19 0.914704 0.907744 0.782070
+21 21 20 0.912507 0.912903 0.830023
+21 21 21 0.911120 0.917781 0.873658
+21 21 22 0.909511 0.920880 0.905938
+21 21 23 0.907800 0.923172 0.933057
+21 21 24 0.905965 0.925487 0.951738
+21 21 25 0.904090 0.927809 0.967607
+21 21 26 0.901863 0.930377 0.977895
+21 21 27 0.899556 0.933002 0.986894
+21 21 28 0.897779 0.934921 0.992987
+21 21 29 0.896077 0.936739 0.998663
+21 21 30 0.895912 0.939764 1.002825
+21 21 31 0.895848 0.942870 1.006887
+21 22 0 0.956181 0.743848 0.000000
+21 22 1 0.957060 0.747716 0.000000
+21 22 2 0.957960 0.751681 0.000000
+21 22 3 0.959160 0.757084 0.000000
+21 22 4 0.960485 0.763011 0.000000
+21 22 5 0.962691 0.772602 0.000000
+21 22 6 0.964558 0.782923 0.000000
+21 22 7 0.964954 0.796413 0.000000
+21 22 8 0.964609 0.810243 0.000000
+21 22 9 0.962042 0.825097 0.000000
+21 22 10 0.958956 0.839881 0.000000
+21 22 11 0.954729 0.854512 0.101527
+21 22 12 0.950111 0.868505 0.249285
+21 22 13 0.944843 0.881436 0.350449
+21 22 14 0.939426 0.892778 0.443089
+21 22 15 0.933821 0.902078 0.524770
+21 22 16 0.929014 0.911621 0.600788
+21 22 17 0.925007 0.921408 0.671142
+21 22 18 0.921017 0.928795 0.732764
+21 22 19 0.917040 0.934315 0.787594
+21 22 20 0.914440 0.939300 0.834888
+21 22 21 0.912665 0.943963 0.877661
+21 22 22 0.911007 0.947085 0.909666
+21 22 23 0.909403 0.949506 0.936776
+21 22 24 0.907568 0.951445 0.955208
+21 22 25 0.905656 0.953223 0.970748
+21 22 26 0.903444 0.954881 0.980695
+21 22 27 0.901164 0.956511 0.989352
+21 22 28 0.899347 0.957631 0.995284
+21 22 29 0.897597 0.958678 1.000827
+21 22 30 0.897318 0.960910 1.004921
+21 22 31 0.897137 0.963220 1.008918
+21 23 0 0.963691 0.768076 0.000000
+21 23 1 0.964147 0.771425 0.000000
+21 23 2 0.964603 0.774864 0.000000
+21 23 3 0.965058 0.779640 0.000000
+21 23 4 0.965572 0.784861 0.000000
+21 23 5 0.966508 0.793196 0.000000
+21 23 6 0.967432 0.802750 0.000000
+21 23 7 0.968308 0.817586 0.000000
+21 23 8 0.968108 0.832218 0.000000
+21 23 9 0.964680 0.846241 0.000000
+21 23 10 0.960943 0.860606 0.000000
+21 23 11 0.956527 0.875722 0.107813
+21 23 12 0.951796 0.889783 0.258262
+21 23 13 0.946541 0.902086 0.358619
+21 23 14 0.941203 0.913664 0.451078
+21 23 15 0.935759 0.924310 0.533384
+21 23 16 0.930844 0.933712 0.608930
+21 23 17 0.926458 0.941870 0.677716
+21 23 18 0.922106 0.948845 0.738555
+21 23 19 0.917779 0.954899 0.793212
+21 23 20 0.914682 0.959516 0.839373
+21 23 21 0.912323 0.963269 0.880435
+21 23 22 0.910694 0.966559 0.912336
+21 23 23 0.909397 0.969638 0.940074
+21 23 24 0.907749 0.971566 0.958358
+21 23 25 0.905984 0.973112 0.973492
+21 23 26 0.904098 0.974651 0.983045
+21 23 27 0.902185 0.976190 0.991311
+21 23 28 0.900491 0.977203 0.997098
+21 23 29 0.898828 0.978142 1.002532
+21 23 30 0.898419 0.979502 1.006605
+21 23 31 0.898094 0.980890 1.010587
+21 24 0 0.969216 0.785865 0.000000
+21 24 1 0.969115 0.789742 0.000000
+21 24 2 0.969020 0.793694 0.000000
+21 24 3 0.969002 0.798759 0.000000
+21 24 4 0.969064 0.804193 0.000000
+21 24 5 0.969682 0.812214 0.000000
+21 24 6 0.970154 0.821373 0.000000
+21 24 7 0.969993 0.835465 0.000000
+21 24 8 0.968986 0.849494 0.000000
+21 24 9 0.965441 0.863332 0.000000
+21 24 10 0.961519 0.877446 0.000000
+21 24 11 0.956772 0.892166 0.123637
+21 24 12 0.951844 0.905900 0.280664
+21 24 13 0.946614 0.917987 0.378467
+21 24 14 0.941303 0.929396 0.468725
+21 24 15 0.935888 0.939933 0.549284
+21 24 16 0.930983 0.949088 0.622819
+21 24 17 0.926590 0.956862 0.689332
+21 24 18 0.922204 0.963605 0.748518
+21 24 19 0.917824 0.969547 0.802007
+21 24 20 0.914560 0.973949 0.846513
+21 24 21 0.911965 0.977427 0.885630
+21 24 22 0.910211 0.980486 0.916419
+21 24 23 0.908839 0.983354 0.943422
+21 24 24 0.907307 0.985125 0.961235
+21 24 25 0.905723 0.986530 0.975985
+21 24 26 0.903973 0.987920 0.985215
+21 24 27 0.902186 0.989306 0.993171
+21 24 28 0.900650 0.990276 0.998834
+21 24 29 0.899151 0.991187 1.004170
+21 24 30 0.898800 0.992218 1.008112
+21 24 31 0.898526 0.993258 1.011960
+21 25 0 0.974079 0.801507 0.000000
+21 25 1 0.973377 0.806261 0.000000
+21 25 2 0.972694 0.811072 0.000000
+21 25 3 0.972295 0.816731 0.000000
+21 25 4 0.972023 0.822685 0.000000
+21 25 5 0.972641 0.830707 0.000000
+21 25 6 0.972824 0.839596 0.000000
+21 25 7 0.971122 0.852247 0.000000
+21 25 8 0.968991 0.865203 0.000000
+21 25 9 0.965576 0.879071 0.000000
+21 25 10 0.961625 0.892991 0.000000
+21 25 11 0.956500 0.907023 0.142641
+21 25 12 0.951346 0.920296 0.307541
+21 25 13 0.946144 0.932305 0.402208
+21 25 14 0.940842 0.943409 0.489592
+21 25 15 0.935413 0.953352 0.567612
+21 25 16 0.930560 0.962225 0.638624
+21 25 17 0.926282 0.970029 0.702628
+21 25 18 0.921972 0.976601 0.759873
+21 25 19 0.917637 0.982216 0.811860
+21 25 20 0.914316 0.986455 0.854539
+21 25 21 0.911603 0.989869 0.891633
+21 25 22 0.909672 0.992564 0.920973
+21 25 23 0.908097 0.994932 0.946787
+21 25 24 0.906658 0.996496 0.964020
+21 25 25 0.905266 0.997792 0.978394
+21 25 26 0.903589 0.999021 0.987324
+21 25 27 0.901846 1.000234 0.994999
+21 25 28 0.900482 1.001183 1.000544
+21 25 29 0.899172 1.002094 1.005786
+21 25 30 0.898942 1.002977 1.009560
+21 25 31 0.898783 1.003859 1.013235
+21 26 0 0.976187 0.810981 0.000000
+21 26 1 0.975360 0.815887 0.000000
+21 26 2 0.974540 0.820873 0.000000
+21 26 3 0.973820 0.827050 0.000000
+21 26 4 0.973152 0.833645 0.000000
+21 26 5 0.972852 0.843167 0.000000
+21 26 6 0.972234 0.853225 0.000000
+21 26 7 0.970231 0.865607 0.000000
+21 26 8 0.967793 0.878262 0.000000
+21 26 9 0.964048 0.891742 0.000000
+21 26 10 0.959909 0.905187 0.000000
+21 26 11 0.954900 0.918555 0.166878
+21 26 12 0.949776 0.931241 0.341756
+21 26 13 0.944460 0.942789 0.432255
+21 26 14 0.939079 0.953340 0.515593
+21 26 15 0.933613 0.962612 0.589723
+21 26 16 0.928810 0.971018 0.657097
+21 26 17 0.924671 0.978559 0.717713
+21 26 18 0.920608 0.984925 0.772781
+21 26 19 0.916602 0.990377 0.823533
+21 26 20 0.913449 0.994501 0.864072
+21 26 21 0.910808 0.997827 0.898483
+21 26 22 0.908914 1.000368 0.926218
+21 26 23 0.907360 1.002554 0.950920
+21 26 24 0.905901 1.004057 0.967699
+21 26 25 0.904473 1.005332 0.981837
+21 26 26 0.902828 1.006190 0.989811
+21 26 27 0.901133 1.006952 0.996363
+21 26 28 0.899858 1.007845 1.001686
+21 26 29 0.898644 1.008755 1.006834
+21 26 30 0.898383 1.009551 1.010560
+21 26 31 0.898187 1.010339 1.014191
+21 27 0 0.977658 0.819032 0.000000
+21 27 1 0.976817 0.823923 0.000000
+21 27 2 0.975965 0.828925 0.000000
+21 27 3 0.974937 0.835603 0.000000
+21 27 4 0.973859 0.842867 0.000000
+21 27 5 0.972430 0.854236 0.000000
+21 27 6 0.970891 0.865795 0.000000
+21 27 7 0.968874 0.878176 0.000000
+21 27 8 0.966317 0.890710 0.000000
+21 27 9 0.962137 0.903705 0.000000
+21 27 10 0.957771 0.916611 0.000000
+21 27 11 0.952994 0.929321 0.192323
+21 27 12 0.947960 0.941389 0.377665
+21 27 13 0.942497 0.952388 0.463757
+21 27 14 0.937014 0.962330 0.542778
+21 27 15 0.931506 0.970913 0.612708
+21 27 16 0.926754 0.978810 0.676186
+21 27 17 0.922759 0.986020 0.733211
+21 27 18 0.918981 0.992171 0.786048
+21 27 19 0.915370 0.997499 0.835626
+21 27 20 0.912438 1.001517 0.873952
+21 27 21 0.909913 1.004749 0.905527
+21 27 22 0.908106 1.007186 0.931624
+21 27 23 0.906625 1.009263 0.955231
+21 27 24 0.905119 1.010738 0.971583
+21 27 25 0.903604 1.012013 0.985518
+21 27 26 0.901981 1.012453 0.992385
+21 27 27 0.900334 1.012699 0.997621
+21 27 28 0.899130 1.013527 1.002697
+21 27 29 0.897988 1.014438 1.007751
+21 27 30 0.897664 1.015160 1.011456
+21 27 31 0.897394 1.015869 1.015072
+21 28 0 0.978828 0.824769 0.000000
+21 28 1 0.977998 0.829671 0.000000
+21 28 2 0.977153 0.834687 0.000000
+21 28 3 0.976086 0.841414 0.000000
+21 28 4 0.974938 0.848774 0.000000
+21 28 5 0.973215 0.860565 0.000000
+21 28 6 0.971273 0.872664 0.000000
+21 28 7 0.968388 0.886102 0.000000
+21 28 8 0.965121 0.899372 0.000000
+21 28 9 0.960709 0.912142 0.000000
+21 28 10 0.956208 0.924717 0.027990
+21 28 11 0.951509 0.936864 0.239426
+21 28 12 0.946508 0.948463 0.402807
+21 28 13 0.941002 0.959146 0.486098
+21 28 14 0.935470 0.968729 0.562281
+21 28 15 0.929904 0.976897 0.629327
+21 28 16 0.925165 0.984477 0.690664
+21 28 17 0.921253 0.991468 0.746294
+21 28 18 0.917667 0.997415 0.797311
+21 28 19 0.914336 1.002549 0.844742
+21 28 20 0.911613 1.006487 0.881776
+21 28 21 0.909255 1.009707 0.912572
+21 28 22 0.907463 1.012066 0.937275
+21 28 23 0.905927 1.014033 0.959208
+21 28 24 0.904447 1.015471 0.974743
+21 28 25 0.902985 1.016733 0.988145
+21 28 26 0.901378 1.017128 0.994779
+21 28 27 0.899737 1.017324 0.999850
+21 28 28 0.898597 1.017857 1.004176
+21 28 29 0.897529 1.018439 1.008395
+21 28 30 0.897212 1.019131 1.012047
+21 28 31 0.896945 1.019830 1.015660
+21 29 0 0.979955 0.830175 0.000000
+21 29 1 0.979139 0.835092 0.000000
+21 29 2 0.978307 0.840122 0.000000
+21 29 3 0.977241 0.846833 0.000000
+21 29 4 0.976070 0.854207 0.000000
+21 29 5 0.974172 0.866217 0.000000
+21 29 6 0.971903 0.878720 0.000000
+21 29 7 0.968026 0.893365 0.000000
+21 29 8 0.963965 0.907493 0.000000
+21 29 9 0.959350 0.920075 0.000000
+21 29 10 0.954727 0.932349 0.119192
+21 29 11 0.950084 0.943947 0.289623
+21 29 12 0.945108 0.955097 0.426412
+21 29 13 0.939574 0.965498 0.507130
+21 29 14 0.934000 0.974758 0.580687
+21 29 15 0.928375 0.982550 0.645037
+21 29 16 0.923643 0.989840 0.704485
+21 29 17 0.919804 0.996628 0.759031
+21 29 18 0.916398 1.002371 0.808289
+21 29 19 0.913329 1.007303 0.853432
+21 29 20 0.910815 1.011164 0.889305
+21 29 21 0.908632 1.014385 0.919616
+21 29 22 0.906844 1.016668 0.942960
+21 29 23 0.905235 1.018526 0.963138
+21 29 24 0.903791 1.019926 0.977799
+21 29 25 0.902402 1.021172 0.990622
+21 29 26 0.900809 1.021577 0.997147
+21 29 27 0.899168 1.021788 1.002218
+21 29 28 0.898092 1.021994 1.005721
+21 29 29 0.897097 1.022200 1.009000
+21 29 30 0.896799 1.022868 1.012593
+21 29 31 0.896546 1.023567 1.016207
+21 30 0 0.980630 0.833840 0.000000
+21 30 1 0.979815 0.838744 0.000000
+21 30 2 0.978984 0.843762 0.000000
+21 30 3 0.977918 0.850487 0.000000
+21 30 4 0.976746 0.857882 0.000000
+21 30 5 0.974837 0.869964 0.000000
+21 30 6 0.972492 0.882768 0.000000
+21 30 7 0.968257 0.898693 0.000000
+21 30 8 0.963817 0.913717 0.000000
+21 30 9 0.958763 0.926037 0.059460
+21 30 10 0.953925 0.938060 0.204054
+21 30 11 0.949562 0.949434 0.334893
+21 30 12 0.944743 0.960315 0.446121
+21 30 13 0.939165 0.970375 0.524666
+21 30 14 0.933583 0.979342 0.595931
+21 30 15 0.927997 0.986906 0.657834
+21 30 16 0.923231 0.993913 0.715547
+21 30 17 0.919285 1.000365 0.769071
+21 30 18 0.916012 1.005888 0.816858
+21 30 19 0.913261 1.010690 0.860184
+21 30 20 0.910881 1.014503 0.895145
+21 30 21 0.908722 1.017723 0.925087
+21 30 22 0.906976 1.019993 0.947494
+21 30 23 0.905418 1.021829 0.966475
+21 30 24 0.904001 1.023167 0.980380
+21 30 25 0.902630 1.024339 0.992593
+21 30 26 0.901040 1.024719 0.998991
+21 30 27 0.899399 1.024917 1.004048
+21 30 28 0.898327 1.025101 1.007510
+21 30 29 0.897337 1.025283 1.010745
+21 30 30 0.896858 1.025646 1.013687
+21 30 31 0.896414 1.026021 1.016610
+21 31 0 0.981276 0.837389 0.000000
+21 31 1 0.980461 0.842278 0.000000
+21 31 2 0.979630 0.847283 0.000000
+21 31 3 0.978563 0.854023 0.000000
+21 31 4 0.977391 0.861439 0.000000
+21 31 5 0.975482 0.873585 0.000000
+21 31 6 0.973078 0.886681 0.000000
+21 31 7 0.968527 0.903893 0.000000
+21 31 8 0.963736 0.919815 0.000000
+21 31 9 0.958228 0.931867 0.121901
+21 31 10 0.953169 0.943644 0.288494
+21 31 11 0.949099 0.954815 0.379835
+21 31 12 0.944447 0.965439 0.465572
+21 31 13 0.938824 0.975153 0.541969
+21 31 14 0.933236 0.983830 0.610963
+21 31 15 0.927695 0.991175 0.670437
+21 31 16 0.922892 0.997901 0.726426
+21 31 17 0.918828 1.004006 0.778931
+21 31 18 0.915684 1.009309 0.825267
+21 31 19 0.913255 1.013986 0.866807
+21 31 20 0.911004 1.017753 0.900872
+21 31 21 0.908860 1.020973 0.930454
+21 31 22 0.907160 1.023232 0.951951
+21 31 23 0.905661 1.025053 0.969774
+21 31 24 0.904269 1.026329 0.982929
+21 31 25 0.902912 1.027421 0.994529
+21 31 26 0.901324 1.027774 1.000800
+21 31 27 0.899683 1.027957 1.005842
+21 31 28 0.898612 1.028139 1.009316
+21 31 29 0.897622 1.028321 1.012565
+21 31 30 0.896950 1.028360 1.014818
+21 31 31 0.896299 1.028389 1.017004
+22 0 0 0.558170 0.000000 0.000000
+22 0 1 0.558509 0.000000 0.000000
+22 0 2 0.558859 0.000000 0.000000
+22 0 3 0.559368 0.000000 0.000000
+22 0 4 0.559940 0.000000 0.000000
+22 0 5 0.560958 0.000000 0.000000
+22 0 6 0.562220 0.000000 0.000000
+22 0 7 0.564545 0.000000 0.000000
+22 0 8 0.567755 0.000000 0.024167
+22 0 9 0.573619 0.000000 0.045146
+22 0 10 0.578691 0.000000 0.075107
+22 0 11 0.582022 0.000000 0.124832
+22 0 12 0.585522 0.000000 0.172744
+22 0 13 0.589302 0.000000 0.217633
+22 0 14 0.593251 0.000000 0.263735
+22 0 15 0.597420 0.000000 0.311398
+22 0 16 0.601478 0.000000 0.355332
+22 0 17 0.605428 0.000000 0.395537
+22 0 18 0.609350 0.000000 0.434586
+22 0 19 0.613250 0.000000 0.472735
+22 0 20 0.617861 0.000000 0.506980
+22 0 21 0.622899 0.000000 0.538882
+22 0 22 0.629986 0.000000 0.568352
+22 0 23 0.638006 0.000000 0.596717
+22 0 24 0.652474 0.000000 0.629132
+22 0 25 0.669092 0.000000 0.662898
+22 0 26 0.695217 0.000000 0.703461
+22 0 27 0.723536 0.000000 0.745594
+22 0 28 0.742803 0.000000 0.774235
+22 0 29 0.760778 0.000000 0.800949
+22 0 30 0.773881 0.057569 0.820721
+22 0 31 0.786659 0.154157 0.840031
+22 1 0 0.565402 0.000000 0.000000
+22 1 1 0.566136 0.000000 0.000000
+22 1 2 0.566857 0.000000 0.000000
+22 1 3 0.567365 0.000000 0.000000
+22 1 4 0.567937 0.000000 0.000000
+22 1 5 0.568955 0.000000 0.000000
+22 1 6 0.570196 0.000000 0.000000
+22 1 7 0.572408 0.000000 0.000000
+22 1 8 0.575525 0.000000 0.027553
+22 1 9 0.581358 0.000000 0.048183
+22 1 10 0.586419 0.000000 0.078051
+22 1 11 0.589781 0.000000 0.128247
+22 1 12 0.593300 0.000000 0.176792
+22 1 13 0.597080 0.000000 0.222588
+22 1 14 0.600980 0.000000 0.269338
+22 1 15 0.605036 0.000000 0.317316
+22 1 16 0.609051 0.000000 0.361986
+22 1 17 0.613026 0.000000 0.403347
+22 1 18 0.616944 0.000000 0.442867
+22 1 19 0.620819 0.000000 0.480955
+22 1 20 0.625417 0.000000 0.515547
+22 1 21 0.630449 0.000000 0.548041
+22 1 22 0.637298 0.000000 0.577247
+22 1 23 0.644973 0.000000 0.604960
+22 1 24 0.658004 0.000000 0.635681
+22 1 25 0.672821 0.000000 0.667405
+22 1 26 0.698608 0.000000 0.707537
+22 1 27 0.726927 0.000000 0.749610
+22 1 28 0.746195 0.000000 0.778325
+22 1 29 0.764170 0.000000 0.805133
+22 1 30 0.777272 0.071372 0.824911
+22 1 31 0.790051 0.167961 0.844220
+22 2 0 0.572785 0.000000 0.000000
+22 2 1 0.573895 0.000000 0.000000
+22 2 2 0.574970 0.000000 0.000000
+22 2 3 0.575509 0.000000 0.000000
+22 2 4 0.576107 0.000000 0.000000
+22 2 5 0.577123 0.000000 0.000000
+22 2 6 0.578341 0.000000 0.000000
+22 2 7 0.580436 0.000000 0.000000
+22 2 8 0.583458 0.000000 0.030209
+22 2 9 0.589260 0.000000 0.050956
+22 2 10 0.594309 0.000000 0.081056
+22 2 11 0.597703 0.000000 0.131733
+22 2 12 0.601241 0.000000 0.180926
+22 2 13 0.605021 0.000000 0.227647
+22 2 14 0.608874 0.000000 0.275057
+22 2 15 0.612822 0.000000 0.323354
+22 2 16 0.616793 0.000000 0.368774
+22 2 17 0.620788 0.000000 0.411316
+22 2 18 0.624703 0.000000 0.451319
+22 2 19 0.628556 0.000000 0.489346
+22 2 20 0.633141 0.000000 0.524290
+22 2 21 0.638166 0.000000 0.557383
+22 2 22 0.644770 0.000000 0.586324
+22 2 23 0.652091 0.000000 0.613379
+22 2 24 0.663744 0.000000 0.642472
+22 2 25 0.676841 0.000000 0.672246
+22 2 26 0.702204 0.000000 0.711859
+22 2 27 0.730398 0.000000 0.753743
+22 2 28 0.749650 0.000000 0.782509
+22 2 29 0.767625 0.000000 0.809401
+22 2 30 0.780731 0.085461 0.829183
+22 2 31 0.793512 0.182049 0.848490
+22 3 0 0.582439 0.000000 0.000000
+22 3 1 0.583637 0.000000 0.000000
+22 3 2 0.584824 0.000000 0.000000
+22 3 3 0.585846 0.000000 0.000000
+22 3 4 0.586863 0.000000 0.000000
+22 3 5 0.587847 0.000000 0.000000
+22 3 6 0.589009 0.000000 0.000000
+22 3 7 0.590934 0.000000 0.000000
+22 3 8 0.593822 0.000000 0.021926
+22 3 9 0.599592 0.000000 0.049778
+22 3 10 0.604630 0.000000 0.084970
+22 3 11 0.608054 0.000000 0.136305
+22 3 12 0.611612 0.000000 0.186355
+22 3 13 0.615392 0.000000 0.234264
+22 3 14 0.619234 0.000000 0.282508
+22 3 15 0.623157 0.000000 0.331181
+22 3 16 0.627084 0.000000 0.377571
+22 3 17 0.631017 0.000000 0.421679
+22 3 18 0.634922 0.000000 0.462332
+22 3 19 0.638806 0.000000 0.500299
+22 3 20 0.643384 0.000000 0.535669
+22 3 21 0.648378 0.000000 0.569481
+22 3 22 0.654632 0.000000 0.598130
+22 3 23 0.661459 0.000000 0.624432
+22 3 24 0.672618 0.000000 0.652894
+22 3 25 0.685221 0.000000 0.682076
+22 3 26 0.708865 0.000000 0.719871
+22 3 27 0.735057 0.000000 0.759653
+22 3 28 0.754059 0.000000 0.788103
+22 3 29 0.772033 0.008686 0.814934
+22 3 30 0.785193 0.103830 0.834681
+22 3 31 0.798031 0.200419 0.853955
+22 4 0 0.593040 0.000000 0.000000
+22 4 1 0.594304 0.000000 0.000000
+22 4 2 0.595580 0.000000 0.000000
+22 4 3 0.597038 0.000000 0.000000
+22 4 4 0.598446 0.000000 0.000000
+22 4 5 0.599506 0.000000 0.000000
+22 4 6 0.600701 0.000000 0.000000
+22 4 7 0.602479 0.000000 0.000000
+22 4 8 0.605239 0.000000 0.007202
+22 4 9 0.610947 0.000000 0.046276
+22 4 10 0.615954 0.000000 0.089384
+22 4 11 0.619417 0.000000 0.141368
+22 4 12 0.622993 0.000000 0.192311
+22 4 13 0.626758 0.000000 0.241519
+22 4 14 0.630574 0.000000 0.290676
+22 4 15 0.634457 0.000000 0.339769
+22 4 16 0.638334 0.000000 0.387224
+22 4 17 0.642204 0.000000 0.433040
+22 4 18 0.646102 0.000000 0.474416
+22 4 19 0.650021 0.000000 0.512338
+22 4 20 0.654592 0.000000 0.548162
+22 4 21 0.659554 0.000000 0.582728
+22 4 22 0.665449 0.000000 0.611079
+22 4 23 0.671767 0.000000 0.636607
+22 4 24 0.682454 0.000000 0.664461
+22 4 25 0.694596 0.000000 0.693090
+22 4 26 0.716317 0.000000 0.728813
+22 4 27 0.740249 0.000000 0.766172
+22 4 28 0.758943 0.000000 0.794249
+22 4 29 0.776889 0.028176 0.821000
+22 4 30 0.790093 0.123966 0.840710
+22 4 31 0.802980 0.220551 0.859952
+22 5 0 0.610266 0.000000 0.000000
+22 5 1 0.611442 0.000000 0.000000
+22 5 2 0.612643 0.000000 0.000000
+22 5 3 0.614214 0.000000 0.000000
+22 5 4 0.615824 0.000000 0.000000
+22 5 5 0.617705 0.000000 0.000000
+22 5 6 0.619567 0.000000 0.000000
+22 5 7 0.621345 0.000000 0.000000
+22 5 8 0.624035 0.000000 0.000000
+22 5 9 0.629461 0.000000 0.026497
+22 5 10 0.634301 0.000000 0.097306
+22 5 11 0.637851 0.000000 0.149876
+22 5 12 0.641437 0.000000 0.201958
+22 5 13 0.645083 0.000000 0.253228
+22 5 14 0.648773 0.000000 0.303862
+22 5 15 0.652517 0.000000 0.353680
+22 5 16 0.656294 0.000000 0.402857
+22 5 17 0.660102 0.000000 0.451395
+22 5 18 0.664008 0.000000 0.493998
+22 5 19 0.667989 0.000000 0.531987
+22 5 20 0.672560 0.000000 0.568458
+22 5 21 0.677486 0.000000 0.604018
+22 5 22 0.682952 0.000000 0.632038
+22 5 23 0.688663 0.000000 0.656632
+22 5 24 0.699024 0.000000 0.684040
+22 5 25 0.710935 0.000000 0.712388
+22 5 26 0.729309 0.000000 0.744265
+22 5 27 0.749176 0.000000 0.776957
+22 5 28 0.767159 0.000000 0.804256
+22 5 29 0.784874 0.059664 0.830786
+22 5 30 0.798063 0.156472 0.850457
+22 5 31 0.810950 0.253023 0.869671
+22 6 0 0.629623 0.000000 0.000000
+22 6 1 0.630746 0.000000 0.000000
+22 6 2 0.631902 0.000000 0.000000
+22 6 3 0.633565 0.000000 0.000000
+22 6 4 0.635343 0.000000 0.000000
+22 6 5 0.637923 0.000000 0.000000
+22 6 6 0.640395 0.000000 0.000000
+22 6 7 0.642393 0.000000 0.000000
+22 6 8 0.645166 0.000000 0.000000
+22 6 9 0.650264 0.000000 0.011962
+22 6 10 0.654908 0.000000 0.106158
+22 6 11 0.658551 0.000000 0.159321
+22 6 12 0.662157 0.000000 0.212615
+22 6 13 0.665702 0.000000 0.266131
+22 6 14 0.669253 0.000000 0.318452
+22 6 15 0.672815 0.000000 0.369236
+22 6 16 0.676462 0.000000 0.420131
+22 6 17 0.680193 0.000000 0.471137
+22 6 18 0.684065 0.000000 0.515159
+22 6 19 0.688047 0.000000 0.553748
+22 6 20 0.692594 0.000000 0.590906
+22 6 21 0.697479 0.000000 0.627203
+22 6 22 0.702582 0.000000 0.655211
+22 6 23 0.707784 0.000000 0.679451
+22 6 24 0.717621 0.000000 0.706202
+22 6 25 0.729004 0.000000 0.733790
+22 6 26 0.744596 0.000000 0.762444
+22 6 27 0.761159 0.000000 0.791343
+22 6 28 0.777939 0.000000 0.817328
+22 6 29 0.794750 0.107793 0.842896
+22 6 30 0.807400 0.199066 0.861936
+22 6 31 0.819772 0.289236 0.880540
+22 7 0 0.658221 0.000000 0.000000
+22 7 1 0.659437 0.000000 0.000000
+22 7 2 0.660680 0.000000 0.000000
+22 7 3 0.662343 0.000000 0.000000
+22 7 4 0.664142 0.000000 0.000000
+22 7 5 0.666892 0.000000 0.000000
+22 7 6 0.669721 0.000000 0.000000
+22 7 7 0.672894 0.000000 0.000000
+22 7 8 0.676417 0.000000 0.000000
+22 7 9 0.680990 0.000000 0.020147
+22 7 10 0.685309 0.000000 0.119040
+22 7 11 0.689071 0.000000 0.172828
+22 7 12 0.692740 0.000000 0.227654
+22 7 13 0.696253 0.000000 0.284211
+22 7 14 0.699623 0.000000 0.339124
+22 7 15 0.702810 0.000000 0.391923
+22 7 16 0.706196 0.000000 0.444513
+22 7 17 0.709783 0.000000 0.496896
+22 7 18 0.713445 0.000000 0.543159
+22 7 19 0.717164 0.000000 0.584664
+22 7 20 0.721577 0.000000 0.622679
+22 7 21 0.726406 0.000000 0.658600
+22 7 22 0.731431 0.000000 0.687977
+22 7 23 0.736546 0.000000 0.714380
+22 7 24 0.745002 0.000000 0.739551
+22 7 25 0.754572 0.000000 0.764313
+22 7 26 0.769824 0.039102 0.792436
+22 7 27 0.786387 0.085127 0.821336
+22 7 28 0.799830 0.154887 0.843677
+22 7 29 0.812827 0.228038 0.865081
+22 7 30 0.822660 0.285375 0.880920
+22 7 31 0.832282 0.341659 0.896388
+22 8 0 0.685180 0.000000 0.000000
+22 8 1 0.686478 0.000000 0.000000
+22 8 2 0.687801 0.000000 0.000000
+22 8 3 0.689487 0.000000 0.000000
+22 8 4 0.691328 0.000000 0.000000
+22 8 5 0.694252 0.000000 0.000000
+22 8 6 0.697393 0.000000 0.000000
+22 8 7 0.701476 0.000000 0.000000
+22 8 8 0.705581 0.000000 0.000000
+22 8 9 0.709751 0.000000 0.026362
+22 8 10 0.713826 0.000000 0.129170
+22 8 11 0.717691 0.000000 0.184549
+22 8 12 0.721377 0.000000 0.241404
+22 8 13 0.724765 0.000000 0.300720
+22 8 14 0.727932 0.000000 0.358076
+22 8 15 0.730815 0.000000 0.412910
+22 8 16 0.733959 0.000000 0.467163
+22 8 17 0.737365 0.000000 0.520836
+22 8 18 0.740787 0.000000 0.568977
+22 8 19 0.744222 0.000000 0.612817
+22 8 20 0.748370 0.000000 0.651678
+22 8 21 0.752945 0.000000 0.687553
+22 8 22 0.757726 0.000000 0.717960
+22 8 23 0.762600 0.000000 0.745882
+22 8 24 0.769791 0.000000 0.769791
+22 8 25 0.777754 0.085412 0.792364
+22 8 26 0.792337 0.162780 0.819568
+22 8 27 0.808447 0.235099 0.847841
+22 8 28 0.819094 0.283913 0.867028
+22 8 29 0.828959 0.329369 0.884916
+22 8 30 0.836465 0.360338 0.898066
+22 8 31 0.843814 0.390341 0.910899
+22 9 0 0.707225 0.035585 0.000000
+22 9 1 0.708574 0.035942 0.000000
+22 9 2 0.709950 0.035407 0.000000
+22 9 3 0.711729 0.021505 0.000000
+22 9 4 0.713675 0.009831 0.000000
+22 9 5 0.716785 0.013755 0.000000
+22 9 6 0.720100 0.017954 0.000000
+22 9 7 0.724301 0.023345 0.000000
+22 9 8 0.728486 0.027858 0.000000
+22 9 9 0.732619 0.029738 0.026665
+22 9 10 0.736686 0.032403 0.131044
+22 9 11 0.740608 0.036793 0.190915
+22 9 12 0.744177 0.040966 0.251293
+22 9 13 0.747159 0.044776 0.312517
+22 9 14 0.750059 0.049099 0.371864
+22 9 15 0.752854 0.054080 0.428800
+22 9 16 0.755808 0.056182 0.484619
+22 9 17 0.758919 0.055405 0.539319
+22 9 18 0.762016 0.055756 0.588247
+22 9 19 0.765101 0.056984 0.632684
+22 9 20 0.768590 0.058755 0.672357
+22 9 21 0.772321 0.060852 0.709172
+22 9 22 0.776357 0.066292 0.739591
+22 9 23 0.780531 0.073253 0.767103
+22 9 24 0.786806 0.116736 0.790703
+22 9 25 0.793781 0.172393 0.813000
+22 9 26 0.806706 0.232571 0.838117
+22 9 27 0.821003 0.293792 0.863885
+22 9 28 0.830477 0.335285 0.881384
+22 9 29 0.839262 0.373959 0.897701
+22 9 30 0.845909 0.401259 0.909695
+22 9 31 0.852413 0.427802 0.921400
+22 10 0 0.730609 0.098113 0.000000
+22 10 1 0.731995 0.098384 0.000000
+22 10 2 0.733408 0.098835 0.000000
+22 10 3 0.735224 0.101980 0.000000
+22 10 4 0.737216 0.105496 0.000000
+22 10 5 0.740445 0.111612 0.000000
+22 10 6 0.743870 0.117962 0.000000
+22 10 7 0.748145 0.125326 0.000000
+22 10 8 0.752361 0.131810 0.000000
+22 10 9 0.756398 0.135657 0.026871
+22 10 10 0.760357 0.140464 0.132638
+22 10 11 0.764144 0.147384 0.196587
+22 10 12 0.767493 0.154081 0.260271
+22 10 13 0.770113 0.160407 0.323511
+22 10 14 0.772696 0.165932 0.385020
+22 10 15 0.775232 0.170427 0.444304
+22 10 16 0.777905 0.174106 0.501791
+22 10 17 0.780715 0.176969 0.557481
+22 10 18 0.783458 0.179471 0.607321
+22 10 19 0.786148 0.181691 0.652610
+22 10 20 0.789001 0.184682 0.693043
+22 10 21 0.791953 0.188136 0.730563
+22 10 22 0.795282 0.196147 0.761044
+22 10 23 0.798783 0.206231 0.788324
+22 10 24 0.804201 0.227613 0.811496
+22 10 25 0.810259 0.252761 0.833299
+22 10 26 0.821301 0.299217 0.856208
+22 10 27 0.833494 0.350591 0.879372
+22 10 28 0.841686 0.385993 0.895240
+22 10 29 0.849307 0.419113 0.910066
+22 10 30 0.855123 0.443436 0.921029
+22 10 31 0.860819 0.467173 0.931734
+22 11 0 0.756942 0.156640 0.000000
+22 11 1 0.758334 0.158289 0.000000
+22 11 2 0.759746 0.160044 0.000000
+22 11 3 0.761475 0.163398 0.000000
+22 11 4 0.763387 0.167111 0.000000
+22 11 5 0.766585 0.173336 0.000000
+22 11 6 0.769979 0.179179 0.000000
+22 11 7 0.774229 0.183368 0.000000
+22 11 8 0.778369 0.188216 0.000000
+22 11 9 0.782181 0.195043 0.026864
+22 11 10 0.785811 0.202016 0.133617
+22 11 11 0.789041 0.209306 0.200735
+22 11 12 0.791944 0.216738 0.267246
+22 11 13 0.794302 0.224408 0.332743
+22 11 14 0.796458 0.231058 0.396784
+22 11 15 0.798356 0.236400 0.458955
+22 11 16 0.800550 0.241426 0.518339
+22 11 17 0.803042 0.246136 0.574937
+22 11 18 0.805367 0.250015 0.625966
+22 11 19 0.807563 0.253249 0.672665
+22 11 20 0.809832 0.257027 0.713745
+22 11 21 0.812145 0.261133 0.751453
+22 11 22 0.814854 0.267797 0.782103
+22 11 23 0.817742 0.275624 0.809545
+22 11 24 0.822436 0.295152 0.832027
+22 11 25 0.827731 0.318580 0.852856
+22 11 26 0.836396 0.358948 0.873290
+22 11 27 0.845839 0.403225 0.893634
+22 11 28 0.852512 0.435242 0.907998
+22 11 29 0.858789 0.465508 0.921507
+22 11 30 0.863835 0.488374 0.931714
+22 11 31 0.868800 0.510746 0.941700
+22 12 0 0.783774 0.214990 0.000000
+22 12 1 0.785178 0.217544 0.000000
+22 12 2 0.786604 0.220159 0.000000
+22 12 3 0.788341 0.223666 0.000000
+22 12 4 0.790270 0.227530 0.000000
+22 12 5 0.793543 0.233892 0.000000
+22 12 6 0.796960 0.239839 0.000000
+22 12 7 0.801009 0.243988 0.000000
+22 12 8 0.804930 0.249270 0.000000
+22 12 9 0.808467 0.257946 0.024146
+22 12 10 0.811758 0.266482 0.130842
+22 12 11 0.814510 0.274712 0.202557
+22 12 12 0.816933 0.283163 0.273005
+22 12 13 0.818810 0.291984 0.341344
+22 12 14 0.820455 0.299757 0.408035
+22 12 15 0.821801 0.306182 0.472610
+22 12 16 0.823500 0.312436 0.533931
+22 12 17 0.825550 0.318520 0.592000
+22 12 18 0.827393 0.323511 0.644302
+22 12 19 0.829074 0.327651 0.692119
+22 12 20 0.830756 0.331913 0.733940
+22 12 21 0.832438 0.336248 0.772164
+22 12 22 0.834432 0.342000 0.802819
+22 12 23 0.836567 0.348396 0.830033
+22 12 24 0.840363 0.365772 0.851783
+22 12 25 0.844713 0.386809 0.871711
+22 12 26 0.851265 0.421587 0.890039
+22 12 27 0.858325 0.459537 0.907997
+22 12 28 0.863602 0.488000 0.920995
+22 12 29 0.868624 0.515107 0.933284
+22 12 30 0.872847 0.535979 0.942684
+22 12 31 0.877016 0.556436 0.951891
+22 13 0 0.811436 0.273042 0.000000
+22 13 1 0.812866 0.275718 0.000000
+22 13 2 0.814326 0.278449 0.000000
+22 13 3 0.816232 0.282017 0.000000
+22 13 4 0.818341 0.285957 0.000000
+22 13 5 0.821865 0.292501 0.000000
+22 13 6 0.825394 0.299569 0.000000
+22 13 7 0.828949 0.308908 0.000000
+22 13 8 0.832410 0.318071 0.000000
+22 13 9 0.835591 0.326708 0.016913
+22 13 10 0.838529 0.335807 0.121810
+22 13 11 0.840930 0.345922 0.200500
+22 13 12 0.842818 0.355866 0.276740
+22 13 13 0.843851 0.365521 0.348893
+22 13 14 0.844843 0.374409 0.418430
+22 13 15 0.845783 0.382311 0.484603
+22 13 16 0.846956 0.389596 0.547930
+22 13 17 0.848363 0.396266 0.608410
+22 13 18 0.849615 0.401924 0.662121
+22 13 19 0.850745 0.406795 0.710569
+22 13 20 0.851834 0.411034 0.753290
+22 13 21 0.852898 0.414892 0.792575
+22 13 22 0.854019 0.420458 0.822961
+22 13 23 0.855166 0.426799 0.849303
+22 13 24 0.857777 0.441528 0.870249
+22 13 25 0.860876 0.459052 0.889398
+22 13 26 0.865755 0.489074 0.906232
+22 13 27 0.871045 0.521980 0.922531
+22 13 28 0.875133 0.546604 0.934393
+22 13 29 0.879048 0.570044 0.945620
+22 13 30 0.882357 0.588032 0.954129
+22 13 31 0.885626 0.605656 0.962457
+22 14 0 0.839797 0.338346 0.000000
+22 14 1 0.841088 0.341020 0.000000
+22 14 2 0.842409 0.343746 0.000000
+22 14 3 0.844182 0.347264 0.000000
+22 14 4 0.846136 0.351148 0.000000
+22 14 5 0.849369 0.357600 0.000000
+22 14 6 0.852608 0.365025 0.000000
+22 14 7 0.855873 0.376666 0.000000
+22 14 8 0.859011 0.387766 0.000000
+22 14 9 0.861765 0.397245 0.000000
+22 14 10 0.864244 0.407383 0.074938
+22 14 11 0.866117 0.418974 0.182794
+22 14 12 0.867397 0.430159 0.278577
+22 14 13 0.867687 0.440669 0.354240
+22 14 14 0.867960 0.450474 0.426671
+22 14 15 0.868211 0.459374 0.494948
+22 14 16 0.868687 0.467252 0.560095
+22 14 17 0.869387 0.474110 0.622113
+22 14 18 0.869955 0.480199 0.677177
+22 14 19 0.870420 0.485690 0.726831
+22 14 20 0.870875 0.489897 0.770369
+22 14 21 0.871323 0.493332 0.810237
+22 14 22 0.871798 0.498433 0.840881
+22 14 23 0.872285 0.504292 0.867333
+22 14 24 0.873935 0.516810 0.887783
+22 14 25 0.875973 0.531548 0.906232
+22 14 26 0.879375 0.557136 0.921584
+22 14 27 0.883092 0.585228 0.936222
+22 14 28 0.885957 0.605956 0.946765
+22 14 29 0.888701 0.625633 0.956722
+22 14 30 0.891160 0.640903 0.964327
+22 14 31 0.893600 0.655878 0.971776
+22 15 0 0.869057 0.412975 0.000000
+22 15 1 0.869998 0.415488 0.000000
+22 15 2 0.870958 0.418052 0.000000
+22 15 3 0.872205 0.421375 0.000000
+22 15 4 0.873577 0.425034 0.000000
+22 15 5 0.875821 0.431043 0.000000
+22 15 6 0.878252 0.437844 0.000000
+22 15 7 0.881492 0.448075 0.000000
+22 15 8 0.884481 0.458611 0.000000
+22 15 9 0.886715 0.470064 0.000000
+22 15 10 0.888601 0.481856 0.000000
+22 15 11 0.889717 0.494392 0.144966
+22 15 12 0.890294 0.506499 0.277977
+22 15 13 0.889972 0.517888 0.356754
+22 15 14 0.889441 0.528355 0.432142
+22 15 15 0.888642 0.537637 0.503173
+22 15 16 0.888199 0.545546 0.569905
+22 15 17 0.888111 0.552082 0.632338
+22 15 18 0.887877 0.558299 0.688679
+22 15 19 0.887529 0.564266 0.740281
+22 15 20 0.887296 0.568429 0.784527
+22 15 21 0.887132 0.571509 0.824362
+22 15 22 0.887252 0.575788 0.855943
+22 15 23 0.887502 0.580613 0.883772
+22 15 24 0.888479 0.591483 0.904117
+22 15 25 0.889698 0.604367 0.921969
+22 15 26 0.891875 0.625936 0.935856
+22 15 27 0.894274 0.649509 0.948829
+22 15 28 0.895875 0.666271 0.957818
+22 15 29 0.897362 0.682059 0.966238
+22 15 30 0.899051 0.694825 0.972922
+22 15 31 0.900755 0.707390 0.979491
+22 16 0 0.894271 0.478751 0.000000
+22 16 1 0.895137 0.481496 0.000000
+22 16 2 0.896017 0.484299 0.000000
+22 16 3 0.897102 0.487976 0.000000
+22 16 4 0.898298 0.492017 0.000000
+22 16 5 0.900277 0.498612 0.000000
+22 16 6 0.902422 0.505868 0.000000
+22 16 7 0.905281 0.515991 0.000000
+22 16 8 0.907838 0.526768 0.000000
+22 16 9 0.909491 0.539503 0.000000
+22 16 10 0.910753 0.552447 0.000000
+22 16 11 0.911157 0.565847 0.123191
+22 16 12 0.910962 0.578665 0.274301
+22 16 13 0.909766 0.590513 0.356892
+22 16 14 0.908337 0.601200 0.435364
+22 16 15 0.906607 0.610394 0.508540
+22 16 16 0.905320 0.618575 0.577082
+22 16 17 0.904475 0.625744 0.640990
+22 16 18 0.903516 0.632248 0.698610
+22 16 19 0.902468 0.638235 0.751340
+22 16 20 0.901716 0.642519 0.796487
+22 16 21 0.901143 0.645781 0.837084
+22 16 22 0.900903 0.649506 0.869237
+22 16 23 0.900816 0.653440 0.897553
+22 16 24 0.901138 0.662501 0.917726
+22 16 25 0.901598 0.673270 0.935185
+22 16 26 0.902660 0.690955 0.947943
+22 16 27 0.903862 0.710236 0.959616
+22 16 28 0.904471 0.723541 0.967523
+22 16 29 0.904995 0.735992 0.974892
+22 16 30 0.906077 0.746582 0.980837
+22 16 31 0.907196 0.757047 0.986687
+22 17 0 0.915440 0.535674 0.000000
+22 17 1 0.916507 0.539044 0.000000
+22 17 2 0.917587 0.542490 0.000000
+22 17 3 0.918872 0.547067 0.000000
+22 17 4 0.920302 0.552098 0.000000
+22 17 5 0.922738 0.560307 0.000000
+22 17 6 0.925116 0.569098 0.000000
+22 17 7 0.927238 0.580416 0.000000
+22 17 8 0.929081 0.592236 0.000000
+22 17 9 0.930091 0.605563 0.000000
+22 17 10 0.930702 0.619157 0.000000
+22 17 11 0.930436 0.633336 0.117471
+22 17 12 0.929398 0.646656 0.267549
+22 17 13 0.927071 0.658544 0.354653
+22 17 14 0.924649 0.669010 0.436336
+22 17 15 0.922105 0.677645 0.511051
+22 17 16 0.920049 0.686340 0.581628
+22 17 17 0.918479 0.695095 0.648067
+22 17 18 0.916872 0.702048 0.706969
+22 17 19 0.915236 0.707598 0.760009
+22 17 20 0.914136 0.712168 0.806246
+22 17 21 0.913356 0.716149 0.848402
+22 17 22 0.912752 0.719585 0.880766
+22 17 23 0.912226 0.722773 0.908678
+22 17 24 0.911915 0.729863 0.928609
+22 17 25 0.911674 0.738255 0.945880
+22 17 26 0.911731 0.752192 0.957843
+22 17 27 0.911857 0.767409 0.968583
+22 17 28 0.911746 0.777767 0.975879
+22 17 29 0.911601 0.787431 0.982684
+22 17 30 0.912236 0.796172 0.988070
+22 17 31 0.912923 0.804851 0.993362
+22 18 0 0.935342 0.592033 0.000000
+22 18 1 0.936137 0.595253 0.000000
+22 18 2 0.936945 0.598551 0.000000
+22 18 3 0.937942 0.603012 0.000000
+22 18 4 0.939074 0.607940 0.000000
+22 18 5 0.941155 0.616132 0.000000
+22 18 6 0.943235 0.625136 0.000000
+22 18 7 0.945316 0.637652 0.000000
+22 18 8 0.946935 0.650476 0.000000
+22 18 9 0.947171 0.664224 0.000000
+22 18 10 0.946990 0.678290 0.000000
+22 18 11 0.945894 0.693056 0.111619
+22 18 12 0.943997 0.706689 0.260375
+22 18 13 0.940766 0.718432 0.351386
+22 18 14 0.937494 0.728988 0.436096
+22 18 15 0.934169 0.738017 0.512702
+22 18 16 0.931383 0.746921 0.584844
+22 18 17 0.929133 0.755697 0.652519
+22 18 18 0.927019 0.762977 0.712593
+22 18 19 0.925011 0.769092 0.766753
+22 18 20 0.923580 0.773772 0.813696
+22 18 21 0.922496 0.777592 0.856307
+22 18 22 0.921597 0.780971 0.889115
+22 18 23 0.920782 0.784150 0.917467
+22 18 24 0.920068 0.789796 0.937248
+22 18 25 0.919387 0.796263 0.954171
+22 18 26 0.918869 0.806984 0.965536
+22 18 27 0.918387 0.818686 0.975617
+22 18 28 0.917815 0.826797 0.982477
+22 18 29 0.917230 0.834395 0.988876
+22 18 30 0.917489 0.841215 0.993824
+22 18 31 0.917804 0.847984 0.998676
+22 19 0 0.954258 0.647951 0.000000
+22 19 1 0.954415 0.650420 0.000000
+22 19 2 0.954583 0.652955 0.000000
+22 19 3 0.954910 0.656510 0.000000
+22 19 4 0.955333 0.660484 0.000000
+22 19 5 0.956426 0.667393 0.000000
+22 19 6 0.957798 0.675580 0.000000
+22 19 7 0.960378 0.689297 0.000000
+22 19 8 0.962153 0.703094 0.000000
+22 19 9 0.961513 0.717130 0.000000
+22 19 10 0.960432 0.731531 0.000000
+22 19 11 0.958378 0.746734 0.105663
+22 19 12 0.955611 0.760531 0.252872
+22 19 13 0.951655 0.771986 0.347320
+22 19 14 0.947644 0.782876 0.434911
+22 19 15 0.943563 0.793040 0.513686
+22 19 16 0.940075 0.801913 0.587026
+22 19 17 0.937182 0.809495 0.654929
+22 19 18 0.934671 0.817007 0.716088
+22 19 19 0.932456 0.824466 0.772002
+22 19 20 0.930710 0.829121 0.819349
+22 19 21 0.929245 0.832095 0.861557
+22 19 22 0.928106 0.835597 0.894992
+22 19 23 0.927116 0.839340 0.924439
+22 19 24 0.926180 0.843948 0.944140
+22 19 25 0.925263 0.848845 0.960594
+22 19 26 0.924502 0.856763 0.971511
+22 19 27 0.923778 0.865377 0.981149
+22 19 28 0.922946 0.871786 0.987707
+22 19 29 0.922098 0.877880 0.993824
+22 19 30 0.922036 0.882724 0.998428
+22 19 31 0.922027 0.887484 1.002930
+22 20 0 0.967385 0.688764 0.000000
+22 20 1 0.967628 0.691614 0.000000
+22 20 2 0.967886 0.694539 0.000000
+22 20 3 0.968377 0.698593 0.000000
+22 20 4 0.968965 0.703102 0.000000
+22 20 5 0.970227 0.710799 0.000000
+22 20 6 0.971617 0.719605 0.000000
+22 20 7 0.973560 0.733219 0.000000
+22 20 8 0.974699 0.747059 0.000000
+22 20 9 0.973422 0.761572 0.000000
+22 20 10 0.971660 0.776236 0.000000
+22 20 11 0.968829 0.791229 0.100415
+22 20 12 0.965392 0.805082 0.246477
+22 20 13 0.960945 0.817033 0.344532
+22 20 14 0.956423 0.828106 0.434858
+22 20 15 0.951803 0.838049 0.515249
+22 20 16 0.947817 0.847156 0.590024
+22 20 17 0.944464 0.855427 0.659184
+22 20 18 0.941514 0.863007 0.721041
+22 20 19 0.938878 0.870050 0.777218
+22 20 20 0.936907 0.874853 0.824947
+22 20 21 0.935334 0.878311 0.867608
+22 20 22 0.933979 0.881680 0.900875
+22 20 23 0.932724 0.885009 0.929872
+22 20 24 0.931453 0.888502 0.949272
+22 20 25 0.930177 0.892049 0.965474
+22 20 26 0.928941 0.897302 0.976082
+22 20 27 0.927715 0.902949 0.985399
+22 20 28 0.926559 0.907277 0.991739
+22 20 29 0.925413 0.911417 0.997654
+22 20 30 0.925186 0.915142 1.002032
+22 20 31 0.925019 0.918839 1.006307
+22 21 0 0.977040 0.720514 0.000000
+22 21 1 0.977802 0.724425 0.000000
+22 21 2 0.978589 0.728429 0.000000
+22 21 3 0.979743 0.733827 0.000000
+22 21 4 0.981019 0.739765 0.000000
+22 21 5 0.983145 0.749491 0.000000
+22 21 6 0.984990 0.759780 0.000000
+22 21 7 0.985615 0.772508 0.000000
+22 21 8 0.985641 0.785831 0.000000
+22 21 9 0.983870 0.800936 0.000000
+22 21 10 0.981559 0.815820 0.000000
+22 21 11 0.978060 0.830216 0.095590
+22 21 12 0.974073 0.844058 0.240746
+22 21 13 0.969276 0.856977 0.342510
+22 21 14 0.964379 0.868141 0.435484
+22 21 15 0.959353 0.877050 0.517157
+22 21 16 0.954989 0.886550 0.593511
+22 21 17 0.951285 0.896640 0.664546
+22 21 18 0.947873 0.904189 0.726868
+22 21 19 0.944686 0.909761 0.782414
+22 21 20 0.942543 0.914814 0.830511
+22 21 21 0.941027 0.919555 0.874140
+22 21 22 0.939471 0.922637 0.906763
+22 21 23 0.937897 0.924966 0.934383
+22 21 24 0.936222 0.927296 0.953348
+22 21 25 0.934513 0.929627 0.969428
+22 21 26 0.932662 0.932298 0.979811
+22 21 27 0.930778 0.935049 0.988880
+22 21 28 0.929261 0.937070 0.995053
+22 21 29 0.927796 0.938987 1.000813
+22 21 30 0.927496 0.942106 1.005036
+22 21 31 0.927273 0.945305 1.009157
+22 22 0 0.985277 0.747492 0.000000
+22 22 1 0.985922 0.751393 0.000000
+22 22 2 0.986582 0.755385 0.000000
+22 22 3 0.987466 0.760750 0.000000
+22 22 4 0.988440 0.766635 0.000000
+22 22 5 0.990040 0.776159 0.000000
+22 22 6 0.991465 0.786419 0.000000
+22 22 7 0.992128 0.799867 0.000000
+22 22 8 0.992005 0.813636 0.000000
+22 22 9 0.989521 0.828368 0.000000
+22 22 10 0.986609 0.843051 0.000000
+22 22 11 0.982759 0.857629 0.097941
+22 22 12 0.978488 0.871520 0.244531
+22 22 13 0.973518 0.884266 0.347133
+22 22 14 0.968510 0.895598 0.440974
+22 22 15 0.963457 0.905111 0.523550
+22 22 16 0.958914 0.914637 0.600111
+22 22 17 0.954882 0.924174 0.670655
+22 22 18 0.951105 0.931467 0.732631
+22 22 19 0.947527 0.937013 0.787942
+22 22 20 0.945039 0.941902 0.835445
+22 22 21 0.943204 0.946398 0.878262
+22 22 22 0.941616 0.949499 0.910615
+22 22 23 0.940140 0.951967 0.938211
+22 22 24 0.938431 0.953916 0.956897
+22 22 25 0.936644 0.955692 0.972612
+22 22 26 0.934734 0.957412 0.982653
+22 22 27 0.932796 0.959120 0.991385
+22 22 28 0.931219 0.960306 0.997398
+22 22 29 0.929693 0.961418 1.003022
+22 22 30 0.929256 0.963688 1.007170
+22 22 31 0.928891 0.966036 1.011219
+22 23 0 0.992869 0.772302 0.000000
+22 23 1 0.993108 0.775705 0.000000
+22 23 2 0.993343 0.779190 0.000000
+22 23 3 0.993533 0.783897 0.000000
+22 23 4 0.993755 0.789054 0.000000
+22 23 5 0.994197 0.797362 0.000000
+22 23 6 0.994804 0.806905 0.000000
+22 23 7 0.996123 0.821803 0.000000
+22 23 8 0.996287 0.836457 0.000000
+22 23 9 0.992990 0.850375 0.000000
+22 23 10 0.989455 0.864667 0.000000
+22 23 11 0.985398 0.879782 0.103554
+22 23 12 0.980964 0.893749 0.252641
+22 23 13 0.975900 0.905804 0.354776
+22 23 14 0.970904 0.917337 0.448674
+22 23 15 0.965994 0.928200 0.531982
+22 23 16 0.961363 0.937585 0.608125
+22 23 17 0.957012 0.945491 0.677104
+22 23 18 0.952917 0.952424 0.738365
+22 23 19 0.949020 0.958601 0.793621
+22 23 20 0.946107 0.963139 0.840091
+22 23 21 0.943784 0.966694 0.881289
+22 23 22 0.942241 0.969955 0.913543
+22 23 23 0.941053 0.973081 0.941730
+22 23 24 0.939477 0.975003 0.960206
+22 23 25 0.937772 0.976524 0.975445
+22 23 26 0.936056 0.978034 0.985092
+22 23 27 0.934338 0.979542 0.993448
+22 23 28 0.932838 0.980562 0.999302
+22 23 29 0.931369 0.981513 1.004799
+22 23 30 0.930766 0.982824 1.008907
+22 23 31 0.930220 0.984158 1.012923
+22 24 0 0.998185 0.790439 0.000000
+22 24 1 0.997983 0.794328 0.000000
+22 24 2 0.997781 0.798285 0.000000
+22 24 3 0.997586 0.803276 0.000000
+22 24 4 0.997434 0.808646 0.000000
+22 24 5 0.997587 0.816675 0.000000
+22 24 6 0.997766 0.825847 0.000000
+22 24 7 0.998059 0.839975 0.000000
+22 24 8 0.997431 0.854006 0.000000
+22 24 9 0.994042 0.867746 0.000000
+22 24 10 0.990340 0.881788 0.000000
+22 24 11 0.985946 0.896493 0.119604
+22 24 12 0.981292 0.910132 0.275317
+22 24 13 0.976205 0.921993 0.374737
+22 24 14 0.971190 0.933336 0.466279
+22 24 15 0.966270 0.944014 0.547690
+22 24 16 0.961662 0.953151 0.621787
+22 24 17 0.957367 0.960749 0.688572
+22 24 18 0.953275 0.967490 0.748241
+22 24 19 0.949340 0.973563 0.802376
+22 24 20 0.946269 0.977918 0.847250
+22 24 21 0.943716 0.981243 0.886567
+22 24 22 0.942045 0.984267 0.917717
+22 24 23 0.940774 0.987155 0.945157
+22 24 24 0.939306 0.988918 0.963145
+22 24 25 0.937771 0.990304 0.977983
+22 24 26 0.936167 0.991654 0.987305
+22 24 27 0.934546 0.992995 0.995356
+22 24 28 0.933165 0.993960 1.001083
+22 24 29 0.931818 0.994871 1.006477
+22 24 30 0.931263 0.995856 1.010463
+22 24 31 0.930762 0.996846 1.014354
+22 25 0 1.002741 0.806352 0.000000
+22 25 1 1.002088 0.811054 0.000000
+22 25 2 1.001445 0.815811 0.000000
+22 25 3 1.000967 0.821398 0.000000
+22 25 4 1.000568 0.827296 0.000000
+22 25 5 1.000721 0.835358 0.000000
+22 25 6 1.000603 0.844274 0.000000
+22 25 7 0.999309 0.856891 0.000000
+22 25 8 0.997529 0.869798 0.000000
+22 25 9 0.994290 0.883571 0.000000
+22 25 10 0.990571 0.897410 0.000000
+22 25 11 0.985795 0.911390 0.139134
+22 25 12 0.980903 0.924566 0.302847
+22 25 13 0.975816 0.936400 0.398804
+22 25 14 0.970775 0.947422 0.487184
+22 25 15 0.965792 0.957402 0.565823
+22 25 16 0.961244 0.966257 0.637332
+22 25 17 0.957129 0.973989 0.701711
+22 25 18 0.953148 0.980592 0.759497
+22 25 19 0.949270 0.986316 0.812155
+22 25 20 0.946130 0.990544 0.855245
+22 25 21 0.943433 0.993875 0.892594
+22 25 22 0.941575 0.996532 0.922308
+22 25 23 0.940098 0.998884 0.948552
+22 25 24 0.938729 1.000441 0.965960
+22 25 25 0.937394 1.001734 0.980421
+22 25 26 0.935874 1.002940 0.989444
+22 25 27 0.934309 1.004127 0.997213
+22 25 28 0.933061 1.005072 1.002822
+22 25 29 0.931858 1.005983 1.008122
+22 25 30 0.931424 1.006855 1.011957
+22 25 31 0.931040 1.007723 1.015694
+22 26 0 1.004493 0.815944 0.000000
+22 26 1 1.003755 0.820825 0.000000
+22 26 2 1.003020 0.825782 0.000000
+22 26 3 1.002331 0.831892 0.000000
+22 26 4 1.001661 0.838427 0.000000
+22 26 5 1.001126 0.847946 0.000000
+22 26 6 1.000388 0.857994 0.000000
+22 26 7 0.998771 0.870328 0.000000
+22 26 8 0.996653 0.882922 0.000000
+22 26 9 0.993032 0.896292 0.000000
+22 26 10 0.989072 0.909644 0.000000
+22 26 11 0.984367 0.922954 0.163621
+22 26 12 0.979476 0.935547 0.337397
+22 26 13 0.974271 0.946944 0.429092
+22 26 14 0.969126 0.957419 0.513225
+22 26 15 0.964056 0.966705 0.587635
+22 26 16 0.959567 0.975115 0.655410
+22 26 17 0.955658 0.982648 0.716549
+22 26 18 0.951944 0.989068 0.772261
+22 26 19 0.948382 0.994623 0.823752
+22 26 20 0.945404 0.998775 0.864775
+22 26 21 0.942776 1.002085 0.899517
+22 26 22 0.940945 1.004614 0.927648
+22 26 23 0.939475 1.006788 0.952774
+22 26 24 0.938101 1.008268 0.969734
+22 26 25 0.936759 1.009516 0.983972
+22 26 26 0.935238 1.010380 0.992020
+22 26 27 0.933675 1.011156 0.998639
+22 26 28 0.932491 1.012026 1.004022
+22 26 29 0.931361 1.012910 1.009228
+22 26 30 0.930932 1.013712 1.013004
+22 26 31 0.930551 1.014509 1.016685
+22 27 0 1.005598 0.824077 0.000000
+22 27 1 1.004860 0.828991 0.000000
+22 27 2 1.004112 0.834011 0.000000
+22 27 3 1.003229 0.840624 0.000000
+22 27 4 1.002283 0.847823 0.000000
+22 27 5 1.000901 0.859129 0.000000
+22 27 6 0.999469 0.870628 0.000000
+22 27 7 0.997821 0.882962 0.000000
+22 27 8 0.995553 0.895430 0.000000
+22 27 9 0.991426 0.908297 0.000000
+22 27 10 0.987173 0.921097 0.000000
+22 27 11 0.982644 0.933749 0.189253
+22 27 12 0.977808 0.945731 0.373567
+22 27 13 0.972460 0.956598 0.460816
+22 27 14 0.967193 0.966471 0.540451
+22 27 15 0.962030 0.975067 0.610297
+22 27 16 0.957600 0.982992 0.674072
+22 27 17 0.953903 0.990249 0.731778
+22 27 18 0.950493 0.996477 0.785372
+22 27 19 0.947306 1.001905 0.835769
+22 27 20 0.944543 1.005992 0.874660
+22 27 21 0.942033 1.009274 0.906648
+22 27 22 0.940278 1.011730 0.933161
+22 27 23 0.938865 1.013810 0.957186
+22 27 24 0.937463 1.015241 0.973730
+22 27 25 0.936064 1.016456 0.987780
+22 27 26 0.934523 1.016932 0.994696
+22 27 27 0.932949 1.017238 0.999965
+22 27 28 0.931813 1.018020 1.005097
+22 27 29 0.930739 1.018870 1.010210
+22 27 30 0.930290 1.019614 1.013948
+22 27 31 0.929883 1.020350 1.017596
+22 28 0 1.006574 0.829875 0.000000
+22 28 1 1.005836 0.834764 0.000000
+22 28 2 1.005085 0.839767 0.000000
+22 28 3 1.004150 0.846472 0.000000
+22 28 4 1.003133 0.853804 0.000000
+22 28 5 1.001547 0.865527 0.000000
+22 28 6 0.999810 0.877565 0.000000
+22 28 7 0.997424 0.890969 0.000000
+22 28 8 0.994536 0.904181 0.000000
+22 28 9 0.990138 0.916821 0.000000
+22 28 10 0.985715 0.929285 0.025638
+22 28 11 0.981234 0.941361 0.235899
+22 28 12 0.976402 0.952855 0.398959
+22 28 13 0.970981 0.963379 0.483348
+22 28 14 0.965647 0.972865 0.560043
+22 28 15 0.960423 0.981016 0.626845
+22 28 16 0.956000 0.988635 0.688405
+22 28 17 0.952379 0.995721 0.744723
+22 28 18 0.949173 1.001790 0.796539
+22 28 19 0.946290 1.007066 0.844854
+22 28 20 0.943746 1.011076 0.882492
+22 28 21 0.941405 1.014326 0.913725
+22 28 22 0.939673 1.016727 0.938853
+22 28 23 0.938217 1.018743 0.961206
+22 28 24 0.936816 1.020154 0.976922
+22 28 25 0.935432 1.021365 0.990426
+22 28 26 0.933915 1.021769 0.997102
+22 28 27 0.932367 1.021986 1.002203
+22 28 28 0.931283 1.022491 1.006609
+22 28 29 0.930266 1.023038 1.010916
+22 28 30 0.929792 1.023728 1.014601
+22 28 31 0.929355 1.024427 1.018245
+22 29 0 1.007532 0.835340 0.000000
+22 29 1 1.006793 0.840196 0.000000
+22 29 2 1.006040 0.845169 0.000000
+22 29 3 1.005074 0.851907 0.000000
+22 29 4 1.004016 0.859296 0.000000
+22 29 5 1.002316 0.871241 0.000000
+22 29 6 1.000331 0.883688 0.000000
+22 29 7 0.997107 0.898314 0.000000
+22 29 8 0.993530 0.912396 0.000000
+22 29 9 0.988895 0.924848 0.000000
+22 29 10 0.984319 0.937006 0.114982
+22 29 11 0.979869 0.948518 0.285548
+22 29 12 0.975033 0.959541 0.422810
+22 29 13 0.969550 0.969751 0.504567
+22 29 14 0.964156 0.978880 0.578545
+22 29 15 0.958875 0.986621 0.642520
+22 29 16 0.954453 0.993958 0.702120
+22 29 17 0.950888 1.000890 0.757343
+22 29 18 0.947872 1.006803 0.807429
+22 29 19 0.945283 1.011925 0.853521
+22 29 20 0.942958 1.015857 0.890032
+22 29 21 0.940792 1.019073 0.920794
+22 29 22 0.939076 1.021422 0.944570
+22 29 23 0.937564 1.023377 0.965170
+22 29 24 0.936168 1.024773 0.980000
+22 29 25 0.934809 1.025984 0.992906
+22 29 26 0.933322 1.026360 0.999471
+22 29 27 0.931805 1.026545 1.004571
+22 29 28 0.930774 1.026746 1.008184
+22 29 29 0.929814 1.026949 1.011584
+22 29 30 0.929314 1.027587 1.015212
+22 29 31 0.928846 1.028253 1.018856
+22 30 0 1.008125 0.839108 0.000000
+22 30 1 1.007386 0.843962 0.000000
+22 30 2 1.006633 0.848934 0.000000
+22 30 3 1.005665 0.855674 0.000000
+22 30 4 1.004605 0.863069 0.000000
+22 30 5 1.002898 0.875053 0.000000
+22 30 6 1.000828 0.887772 0.000000
+22 30 7 0.997183 0.903677 0.000000
+22 30 8 0.993201 0.918650 0.000000
+22 30 9 0.988205 0.930826 0.056326
+22 30 10 0.983437 0.942718 0.199410
+22 30 11 0.979173 0.953987 0.330933
+22 30 12 0.974441 0.964742 0.442913
+22 30 13 0.968930 0.974642 0.522321
+22 30 14 0.963530 0.983495 0.593870
+22 30 15 0.958269 0.991003 0.655315
+22 30 16 0.953806 0.998073 0.713130
+22 30 17 0.950139 1.004705 0.767315
+22 30 18 0.947257 1.010416 0.815927
+22 30 19 0.944985 1.015409 0.860205
+22 30 20 0.942804 1.019290 0.895817
+22 30 21 0.940678 1.022504 0.926228
+22 30 22 0.938988 1.024828 0.949071
+22 30 23 0.937497 1.026748 0.968472
+22 30 24 0.936128 1.028093 0.982535
+22 30 25 0.934801 1.029247 0.994818
+22 30 26 0.933321 1.029611 1.001291
+22 30 27 0.931806 1.029793 1.006423
+22 30 28 0.930779 1.029975 1.009963
+22 30 29 0.929821 1.030158 1.013275
+22 30 30 0.929199 1.030520 1.016266
+22 30 31 0.928599 1.030894 1.019235
+22 31 0 1.008693 0.842763 0.000000
+22 31 1 1.007955 0.847617 0.000000
+22 31 2 1.007202 0.852589 0.000000
+22 31 3 1.006234 0.859329 0.000000
+22 31 4 1.005174 0.866728 0.000000
+22 31 5 1.003467 0.878739 0.000000
+22 31 6 1.001323 0.891721 0.000000
+22 31 7 0.997286 0.908909 0.000000
+22 31 8 0.992917 0.924773 0.000000
+22 31 9 0.987551 0.936667 0.118448
+22 31 10 0.982590 0.948296 0.283512
+22 31 11 0.978520 0.959344 0.376034
+22 31 12 0.973901 0.969845 0.462765
+22 31 13 0.968365 0.979435 0.539844
+22 31 14 0.962961 0.988017 0.608984
+22 31 15 0.957726 0.995303 0.667918
+22 31 16 0.953219 1.002108 0.723960
+22 31 17 0.949439 1.008431 0.777111
+22 31 18 0.946687 1.013934 0.824266
+22 31 19 0.944734 1.018800 0.866757
+22 31 20 0.942692 1.022633 0.901484
+22 31 21 0.940597 1.025848 0.931553
+22 31 22 0.938934 1.028149 0.953490
+22 31 23 0.937469 1.030035 0.971730
+22 31 24 0.936130 1.031327 0.985034
+22 31 25 0.934833 1.032420 0.996693
+22 31 26 0.933359 1.032773 1.003075
+22 31 27 0.931844 1.032955 1.008241
+22 31 28 0.930817 1.033137 1.011755
+22 31 29 0.929860 1.033319 1.015034
+22 31 30 0.929108 1.033391 1.017349
+22 31 31 0.928369 1.033456 1.019600
+23 0 0 0.581911 0.000000 0.000000
+23 0 1 0.582250 0.000000 0.000000
+23 0 2 0.582599 0.000000 0.000000
+23 0 3 0.583108 0.000000 0.000000
+23 0 4 0.583680 0.000000 0.000000
+23 0 5 0.584698 0.000000 0.000000
+23 0 6 0.585993 0.000000 0.000000
+23 0 7 0.588493 0.000000 0.000000
+23 0 8 0.591746 0.000000 0.016693
+23 0 9 0.597260 0.000000 0.039833
+23 0 10 0.602065 0.000000 0.071693
+23 0 11 0.605309 0.000000 0.122735
+23 0 12 0.608688 0.000000 0.171610
+23 0 13 0.612292 0.000000 0.216875
+23 0 14 0.615991 0.000000 0.263148
+23 0 15 0.619809 0.000000 0.310716
+23 0 16 0.623605 0.000000 0.354697
+23 0 17 0.627379 0.000000 0.395091
+23 0 18 0.631224 0.000000 0.434433
+23 0 19 0.635125 0.000000 0.472958
+23 0 20 0.639845 0.000000 0.507697
+23 0 21 0.645058 0.000000 0.540163
+23 0 22 0.652080 0.000000 0.569939
+23 0 23 0.659924 0.000000 0.598492
+23 0 24 0.674349 0.000000 0.631025
+23 0 25 0.690967 0.000000 0.664884
+23 0 26 0.717092 0.000000 0.705312
+23 0 27 0.745411 0.000000 0.747257
+23 0 28 0.764678 0.000000 0.775793
+23 0 29 0.782653 0.000000 0.802412
+23 0 30 0.795838 0.048566 0.822179
+23 0 31 0.808704 0.144685 0.841488
+23 1 0 0.589055 0.000000 0.000000
+23 1 1 0.589473 0.000000 0.000000
+23 1 2 0.589897 0.000000 0.000000
+23 1 3 0.590405 0.000000 0.000000
+23 1 4 0.590978 0.000000 0.000000
+23 1 5 0.591995 0.000000 0.000000
+23 1 6 0.593286 0.000000 0.000000
+23 1 7 0.595763 0.000000 0.000000
+23 1 8 0.598981 0.000000 0.020336
+23 1 9 0.604418 0.000000 0.043031
+23 1 10 0.609194 0.000000 0.074731
+23 1 11 0.612514 0.000000 0.126243
+23 1 12 0.615941 0.000000 0.175734
+23 1 13 0.619546 0.000000 0.221857
+23 1 14 0.623234 0.000000 0.268772
+23 1 15 0.627030 0.000000 0.316704
+23 1 16 0.630782 0.000000 0.361397
+23 1 17 0.634491 0.000000 0.402849
+23 1 18 0.638345 0.000000 0.442647
+23 1 19 0.642310 0.000000 0.481160
+23 1 20 0.646967 0.000000 0.516203
+23 1 21 0.652039 0.000000 0.549164
+23 1 22 0.658873 0.000000 0.578746
+23 1 23 0.666508 0.000000 0.606793
+23 1 24 0.679665 0.000000 0.637595
+23 1 25 0.694662 0.000000 0.669316
+23 1 26 0.720483 0.000000 0.709334
+23 1 27 0.748802 0.000000 0.751267
+23 1 28 0.768070 0.000000 0.779882
+23 1 29 0.786044 0.000000 0.806596
+23 1 30 0.799229 0.062840 0.826368
+23 1 31 0.812095 0.158958 0.845678
+23 2 0 0.596339 0.000000 0.000000
+23 2 1 0.596837 0.000000 0.000000
+23 2 2 0.597336 0.000000 0.000000
+23 2 3 0.597855 0.000000 0.000000
+23 2 4 0.598436 0.000000 0.000000
+23 2 5 0.599448 0.000000 0.000000
+23 2 6 0.600731 0.000000 0.000000
+23 2 7 0.603185 0.000000 0.000000
+23 2 8 0.606366 0.000000 0.023261
+23 2 9 0.611728 0.000000 0.045970
+23 2 10 0.616475 0.000000 0.077830
+23 2 11 0.619871 0.000000 0.129823
+23 2 12 0.623345 0.000000 0.179944
+23 2 13 0.626950 0.000000 0.226943
+23 2 14 0.630631 0.000000 0.274510
+23 2 15 0.634409 0.000000 0.322807
+23 2 16 0.638118 0.000000 0.368226
+23 2 17 0.641757 0.000000 0.410765
+23 2 18 0.645617 0.000000 0.451032
+23 2 19 0.649647 0.000000 0.489533
+23 2 20 0.654243 0.000000 0.524887
+23 2 21 0.659178 0.000000 0.558353
+23 2 22 0.665815 0.000000 0.587735
+23 2 23 0.673226 0.000000 0.615259
+23 2 24 0.685167 0.000000 0.644404
+23 2 25 0.698617 0.000000 0.674090
+23 2 26 0.724060 0.000000 0.713608
+23 2 27 0.752271 0.000000 0.755395
+23 2 28 0.771525 0.000000 0.784069
+23 2 29 0.789499 0.000000 0.810870
+23 2 30 0.802685 0.077416 0.830643
+23 2 31 0.815551 0.173535 0.849947
+23 3 0 0.605731 0.000000 0.000000
+23 3 1 0.606316 0.000000 0.000000
+23 3 2 0.606908 0.000000 0.000000
+23 3 3 0.607594 0.000000 0.000000
+23 3 4 0.608311 0.000000 0.000000
+23 3 5 0.609247 0.000000 0.000000
+23 3 6 0.610462 0.000000 0.000000
+23 3 7 0.612882 0.000000 0.000000
+23 3 8 0.616018 0.000000 0.015398
+23 3 9 0.621303 0.000000 0.045019
+23 3 10 0.626022 0.000000 0.081837
+23 3 11 0.629495 0.000000 0.134489
+23 3 12 0.633017 0.000000 0.185449
+23 3 13 0.636621 0.000000 0.233588
+23 3 14 0.640331 0.000000 0.281961
+23 3 15 0.644174 0.000000 0.330635
+23 3 16 0.647839 0.000000 0.376999
+23 3 17 0.651326 0.000000 0.421055
+23 3 18 0.655161 0.000000 0.461979
+23 3 19 0.659268 0.000000 0.500467
+23 3 20 0.663845 0.000000 0.536236
+23 3 21 0.668703 0.000000 0.570372
+23 3 22 0.675008 0.000000 0.599446
+23 3 23 0.681970 0.000000 0.626218
+23 3 24 0.693462 0.000000 0.654805
+23 3 25 0.706463 0.000000 0.683996
+23 3 26 0.730416 0.000000 0.721674
+23 3 27 0.756896 0.000000 0.761311
+23 3 28 0.775934 0.000000 0.789706
+23 3 29 0.793908 0.002055 0.816494
+23 3 30 0.807105 0.096538 0.836190
+23 3 31 0.819982 0.192656 0.855412
+23 4 0 0.616059 0.000000 0.000000
+23 4 1 0.616710 0.000000 0.000000
+23 4 2 0.617372 0.000000 0.000000
+23 4 3 0.618206 0.000000 0.000000
+23 4 4 0.619049 0.000000 0.000000
+23 4 5 0.619948 0.000000 0.000000
+23 4 6 0.621126 0.000000 0.000000
+23 4 7 0.623517 0.000000 0.000000
+23 4 8 0.626612 0.000000 0.001423
+23 4 9 0.631824 0.000000 0.041919
+23 4 10 0.636516 0.000000 0.086407
+23 4 11 0.640066 0.000000 0.139677
+23 4 12 0.643629 0.000000 0.191488
+23 4 13 0.647213 0.000000 0.240865
+23 4 14 0.650938 0.000000 0.290123
+23 4 15 0.654844 0.000000 0.339228
+23 4 16 0.658463 0.000000 0.386633
+23 4 17 0.661798 0.000000 0.432337
+23 4 18 0.665615 0.000000 0.473988
+23 4 19 0.669807 0.000000 0.512487
+23 4 20 0.674358 0.000000 0.548688
+23 4 21 0.679122 0.000000 0.583511
+23 4 22 0.685087 0.000000 0.612279
+23 4 23 0.691598 0.000000 0.638295
+23 4 24 0.702665 0.000000 0.666341
+23 4 25 0.715250 0.000000 0.695064
+23 4 26 0.737527 0.000000 0.730657
+23 4 27 0.762041 0.000000 0.767835
+23 4 28 0.780812 0.000000 0.795883
+23 4 29 0.798764 0.022330 0.822628
+23 4 30 0.811968 0.117479 0.842261
+23 4 31 0.824855 0.213587 0.861421
+23 5 0 0.632934 0.000000 0.000000
+23 5 1 0.633497 0.000000 0.000000
+23 5 2 0.634079 0.000000 0.000000
+23 5 3 0.634936 0.000000 0.000000
+23 5 4 0.635827 0.000000 0.000000
+23 5 5 0.636961 0.000000 0.000000
+23 5 6 0.638330 0.000000 0.000000
+23 5 7 0.640720 0.000000 0.000000
+23 5 8 0.643802 0.000000 0.000000
+23 5 9 0.648957 0.000000 0.023766
+23 5 10 0.653637 0.000000 0.094912
+23 5 11 0.657275 0.000000 0.148524
+23 5 12 0.660831 0.000000 0.201268
+23 5 13 0.664252 0.000000 0.252562
+23 5 14 0.667903 0.000000 0.303258
+23 5 15 0.671851 0.000000 0.353185
+23 5 16 0.675416 0.000000 0.402288
+23 5 17 0.678597 0.000000 0.450567
+23 5 18 0.682433 0.000000 0.493437
+23 5 19 0.686779 0.000000 0.532099
+23 5 20 0.691250 0.000000 0.568862
+23 5 21 0.695797 0.000000 0.604486
+23 5 22 0.701370 0.000000 0.632962
+23 5 23 0.707410 0.000000 0.658189
+23 5 24 0.718218 0.000000 0.685827
+23 5 25 0.730617 0.000000 0.714268
+23 5 26 0.749923 0.000000 0.746054
+23 5 27 0.770823 0.000000 0.778613
+23 5 28 0.788980 0.000000 0.805848
+23 5 29 0.806745 0.055001 0.832323
+23 5 30 0.819938 0.151162 0.852005
+23 5 31 0.832825 0.247188 0.871234
+23 6 0 0.651991 0.000000 0.000000
+23 6 1 0.652526 0.000000 0.000000
+23 6 2 0.653082 0.000000 0.000000
+23 6 3 0.653957 0.000000 0.000000
+23 6 4 0.654890 0.000000 0.000000
+23 6 5 0.656220 0.000000 0.000000
+23 6 6 0.657796 0.000000 0.000000
+23 6 7 0.660441 0.000000 0.000000
+23 6 8 0.663677 0.000000 0.000000
+23 6 9 0.668687 0.000000 0.010540
+23 6 10 0.673301 0.000000 0.104216
+23 6 11 0.677040 0.000000 0.158216
+23 6 12 0.680605 0.000000 0.212002
+23 6 13 0.683878 0.000000 0.265433
+23 6 14 0.687438 0.000000 0.317804
+23 6 15 0.691367 0.000000 0.368813
+23 6 16 0.694851 0.000000 0.419627
+23 6 17 0.697890 0.000000 0.470248
+23 6 18 0.701706 0.000000 0.514524
+23 6 19 0.706126 0.000000 0.553866
+23 6 20 0.710513 0.000000 0.591246
+23 6 21 0.714882 0.000000 0.627450
+23 6 22 0.720124 0.000000 0.655946
+23 6 23 0.725764 0.000000 0.680938
+23 6 24 0.736092 0.000000 0.707927
+23 6 25 0.747983 0.000000 0.735581
+23 6 26 0.764808 0.000000 0.764171
+23 6 27 0.782771 0.000000 0.792977
+23 6 28 0.799833 0.000000 0.818884
+23 6 29 0.816765 0.103687 0.844376
+23 6 30 0.829390 0.194554 0.863490
+23 6 31 0.841729 0.284406 0.882179
+23 7 0 0.680501 0.000000 0.000000
+23 7 1 0.681265 0.000000 0.000000
+23 7 2 0.682036 0.000000 0.000000
+23 7 3 0.682911 0.000000 0.000000
+23 7 4 0.683847 0.000000 0.000000
+23 7 5 0.685211 0.000000 0.000000
+23 7 6 0.687069 0.000000 0.000000
+23 7 7 0.691069 0.000000 0.000000
+23 7 8 0.695190 0.000000 0.000000
+23 7 9 0.699675 0.000000 0.018665
+23 7 10 0.703979 0.000000 0.116989
+23 7 11 0.707882 0.000000 0.171565
+23 7 12 0.711520 0.000000 0.226870
+23 7 13 0.714717 0.000000 0.283392
+23 7 14 0.718110 0.000000 0.338467
+23 7 15 0.721754 0.000000 0.391684
+23 7 16 0.725046 0.000000 0.444267
+23 7 17 0.727986 0.000000 0.496216
+23 7 18 0.731611 0.000000 0.542713
+23 7 19 0.735768 0.000000 0.584969
+23 7 20 0.740050 0.000000 0.623208
+23 7 21 0.744408 0.000000 0.659035
+23 7 22 0.749586 0.000000 0.688900
+23 7 23 0.755138 0.000000 0.716054
+23 7 24 0.764017 0.000000 0.741355
+23 7 25 0.774005 0.000000 0.766037
+23 7 26 0.790473 0.031722 0.794070
+23 7 27 0.808437 0.079245 0.822875
+23 7 28 0.822319 0.148927 0.845223
+23 7 29 0.835618 0.221775 0.866649
+23 7 30 0.845269 0.280023 0.882523
+23 7 31 0.854676 0.337298 0.898027
+23 8 0 0.707394 0.000000 0.000000
+23 8 1 0.708297 0.000000 0.000000
+23 8 2 0.709202 0.000000 0.000000
+23 8 3 0.710135 0.000000 0.000000
+23 8 4 0.711138 0.000000 0.000000
+23 8 5 0.712642 0.000000 0.000000
+23 8 6 0.714812 0.000000 0.000000
+23 8 7 0.719869 0.000000 0.000000
+23 8 8 0.724671 0.000000 0.000000
+23 8 9 0.728708 0.000000 0.024773
+23 8 10 0.732743 0.000000 0.126962
+23 8 11 0.736772 0.000000 0.183154
+23 8 12 0.740433 0.000000 0.240508
+23 8 13 0.743483 0.000000 0.299800
+23 8 14 0.746689 0.000000 0.357394
+23 8 15 0.750097 0.000000 0.412804
+23 8 16 0.753192 0.000000 0.467092
+23 8 17 0.755973 0.000000 0.520258
+23 8 18 0.759369 0.000000 0.568608
+23 8 19 0.763242 0.000000 0.613212
+23 8 20 0.767287 0.000000 0.652301
+23 8 21 0.771436 0.000000 0.688082
+23 8 22 0.776384 0.000000 0.718968
+23 8 23 0.781696 0.000000 0.747630
+23 8 24 0.789276 0.000000 0.771611
+23 8 25 0.797612 0.073602 0.794032
+23 8 26 0.813384 0.151607 0.821141
+23 8 27 0.830872 0.226164 0.849332
+23 8 28 0.842064 0.275852 0.868569
+23 8 29 0.852356 0.321987 0.886527
+23 8 30 0.859571 0.354599 0.899682
+23 8 31 0.866581 0.386309 0.912515
+23 9 0 0.729439 0.004030 0.000000
+23 9 1 0.730212 0.004383 0.000000
+23 9 2 0.731009 0.004681 0.000000
+23 9 3 0.732170 0.004157 0.000000
+23 9 4 0.733431 0.004326 0.000000
+23 9 5 0.735393 0.009342 0.000000
+23 9 6 0.737965 0.014360 0.000000
+23 9 7 0.743186 0.019387 0.000000
+23 9 8 0.748056 0.023627 0.000000
+23 9 9 0.751876 0.025507 0.024834
+23 9 10 0.755765 0.028191 0.128536
+23 9 11 0.759805 0.032642 0.189462
+23 9 12 0.763338 0.036943 0.250454
+23 9 13 0.766026 0.040996 0.311556
+23 9 14 0.768991 0.044534 0.371109
+23 9 15 0.772311 0.047411 0.428670
+23 9 16 0.775193 0.049665 0.484475
+23 9 17 0.777636 0.051296 0.538523
+23 9 18 0.780686 0.052359 0.587623
+23 9 19 0.784209 0.052981 0.632872
+23 9 20 0.787623 0.054828 0.672792
+23 9 21 0.790973 0.057409 0.709513
+23 9 22 0.795190 0.062793 0.740378
+23 9 23 0.799802 0.069450 0.768582
+23 9 24 0.806533 0.110931 0.792350
+23 9 25 0.813972 0.164019 0.814641
+23 9 26 0.828029 0.224863 0.839729
+23 9 27 0.843615 0.287498 0.865464
+23 9 28 0.853583 0.329507 0.882935
+23 9 29 0.862748 0.368570 0.899225
+23 9 30 0.869144 0.396494 0.911217
+23 9 31 0.875355 0.423677 0.922922
+23 10 0 0.752769 0.087124 0.000000
+23 10 1 0.753497 0.087945 0.000000
+23 10 2 0.754260 0.088970 0.000000
+23 10 3 0.755551 0.093073 0.000000
+23 10 4 0.756962 0.097624 0.000000
+23 10 5 0.759213 0.105311 0.000000
+23 10 6 0.762047 0.112818 0.000000
+23 10 7 0.767400 0.119542 0.000000
+23 10 8 0.772330 0.125554 0.000000
+23 10 9 0.775986 0.129430 0.024816
+23 10 10 0.779706 0.134273 0.129845
+23 10 11 0.783566 0.141242 0.195046
+23 10 12 0.786863 0.148099 0.259442
+23 10 13 0.789220 0.154771 0.322494
+23 10 14 0.791898 0.160284 0.384199
+23 10 15 0.794987 0.164310 0.444171
+23 10 16 0.797593 0.168216 0.501618
+23 10 17 0.799718 0.172004 0.556542
+23 10 18 0.802414 0.174425 0.606522
+23 10 19 0.805556 0.175781 0.652657
+23 10 20 0.808378 0.178889 0.693348
+23 10 21 0.811007 0.183049 0.730774
+23 10 22 0.814537 0.190959 0.761699
+23 10 23 0.818475 0.200572 0.789669
+23 10 24 0.824376 0.221859 0.813072
+23 10 25 0.830931 0.247037 0.834953
+23 10 26 0.843016 0.294101 0.857877
+23 10 27 0.856377 0.346215 0.881041
+23 10 28 0.865009 0.381860 0.896827
+23 10 29 0.872966 0.415153 0.911559
+23 10 30 0.878544 0.439499 0.922530
+23 10 31 0.883963 0.463248 0.933250
+23 11 0 0.778927 0.148378 0.000000
+23 11 1 0.779796 0.150527 0.000000
+23 11 2 0.780686 0.152796 0.000000
+23 11 3 0.781889 0.156866 0.000000
+23 11 4 0.783214 0.161353 0.000000
+23 11 5 0.785390 0.168761 0.000000
+23 11 6 0.788173 0.175400 0.000000
+23 11 7 0.793592 0.178706 0.000000
+23 11 8 0.798559 0.182924 0.000000
+23 11 9 0.802170 0.189879 0.024627
+23 11 10 0.805671 0.196908 0.130572
+23 11 11 0.808929 0.204102 0.199040
+23 11 12 0.811751 0.211567 0.266323
+23 11 13 0.813846 0.219484 0.331632
+23 11 14 0.816137 0.226069 0.395912
+23 11 15 0.818678 0.230941 0.458868
+23 11 16 0.820874 0.236170 0.518237
+23 11 17 0.822724 0.241757 0.574019
+23 11 18 0.825049 0.245670 0.625167
+23 11 19 0.827742 0.248282 0.672712
+23 11 20 0.830053 0.252178 0.714050
+23 11 21 0.832134 0.256844 0.751665
+23 11 22 0.835071 0.263360 0.782825
+23 11 23 0.838397 0.270717 0.811052
+23 11 24 0.843505 0.290223 0.833754
+23 11 25 0.849208 0.313779 0.854613
+23 11 26 0.858751 0.354496 0.875053
+23 11 27 0.869182 0.399173 0.895397
+23 11 28 0.876233 0.431349 0.909678
+23 11 29 0.882801 0.461740 0.923094
+23 11 30 0.887564 0.484943 0.933354
+23 11 31 0.892206 0.507667 0.943405
+23 12 0 0.805846 0.208996 0.000000
+23 12 1 0.806779 0.211984 0.000000
+23 12 2 0.807726 0.215039 0.000000
+23 12 3 0.808887 0.219093 0.000000
+23 12 4 0.810169 0.223545 0.000000
+23 12 5 0.812289 0.230792 0.000000
+23 12 6 0.815004 0.237296 0.000000
+23 12 7 0.820295 0.240575 0.000000
+23 12 8 0.825113 0.245232 0.000000
+23 12 9 0.828511 0.254024 0.021568
+23 12 10 0.831708 0.262598 0.127338
+23 12 11 0.834459 0.270693 0.200627
+23 12 12 0.836791 0.279091 0.271962
+23 12 13 0.838422 0.287991 0.340039
+23 12 14 0.840242 0.295619 0.406954
+23 12 15 0.842306 0.301609 0.472375
+23 12 16 0.844048 0.308024 0.533687
+23 12 17 0.845469 0.314863 0.590892
+23 12 18 0.847350 0.319971 0.643312
+23 12 19 0.849590 0.323733 0.692011
+23 12 20 0.851341 0.328112 0.734082
+23 12 21 0.852797 0.332862 0.772175
+23 12 22 0.855044 0.338471 0.803396
+23 12 23 0.857651 0.344470 0.831493
+23 12 24 0.861853 0.361875 0.853491
+23 12 25 0.866587 0.383081 0.873455
+23 12 26 0.873991 0.418059 0.891805
+23 12 27 0.882011 0.456215 0.909782
+23 12 28 0.887652 0.484785 0.922731
+23 12 29 0.892954 0.511987 0.934962
+23 12 30 0.896898 0.533291 0.944430
+23 12 31 0.900751 0.554203 0.953713
+23 13 0 0.834033 0.268552 0.000000
+23 13 1 0.834901 0.271565 0.000000
+23 13 2 0.835790 0.274643 0.000000
+23 13 3 0.836985 0.278709 0.000000
+23 13 4 0.838293 0.283176 0.000000
+23 13 5 0.840394 0.290460 0.000000
+23 13 6 0.843009 0.298048 0.000000
+23 13 7 0.847851 0.306953 0.000000
+23 13 8 0.852209 0.315771 0.000000
+23 13 9 0.855116 0.324329 0.013728
+23 13 10 0.857866 0.333378 0.117502
+23 13 11 0.860267 0.343506 0.198204
+23 13 12 0.862080 0.353377 0.275529
+23 13 13 0.862912 0.362820 0.347228
+23 13 14 0.864125 0.371441 0.416879
+23 13 15 0.865827 0.379006 0.483898
+23 13 16 0.867044 0.386379 0.547191
+23 13 17 0.867776 0.393561 0.606758
+23 13 18 0.869098 0.399367 0.660621
+23 13 19 0.870877 0.404102 0.710049
+23 13 20 0.871984 0.408458 0.752995
+23 13 21 0.872687 0.412586 0.792053
+23 13 22 0.874081 0.418097 0.823041
+23 13 23 0.875790 0.424235 0.850362
+23 13 24 0.878897 0.439004 0.871654
+23 13 25 0.882471 0.456650 0.890936
+23 13 26 0.888402 0.486901 0.907849
+23 13 27 0.894878 0.520062 0.924215
+23 13 28 0.899397 0.544800 0.936120
+23 13 29 0.903638 0.568334 0.947386
+23 13 30 0.906756 0.586481 0.955923
+23 13 31 0.909799 0.604269 0.964279
+23 14 0 0.863072 0.335361 0.000000
+23 14 1 0.863751 0.338274 0.000000
+23 14 2 0.864448 0.341251 0.000000
+23 14 3 0.865433 0.345174 0.000000
+23 14 4 0.866506 0.349491 0.000000
+23 14 5 0.868203 0.356559 0.000000
+23 14 6 0.870448 0.364449 0.000000
+23 14 7 0.875066 0.375902 0.000000
+23 14 8 0.879145 0.386814 0.000000
+23 14 9 0.881608 0.396105 0.000000
+23 14 10 0.883893 0.406163 0.071199
+23 14 11 0.885786 0.417912 0.180633
+23 14 12 0.887012 0.429063 0.277238
+23 14 13 0.887127 0.439217 0.352464
+23 14 14 0.887647 0.448727 0.425001
+23 14 15 0.888686 0.457408 0.494082
+23 14 16 0.889206 0.465323 0.559203
+23 14 17 0.889206 0.472473 0.620366
+23 14 18 0.889883 0.478725 0.675661
+23 14 19 0.891088 0.484280 0.726392
+23 14 20 0.891546 0.488561 0.770144
+23 14 21 0.891557 0.492078 0.809709
+23 14 22 0.892289 0.497140 0.840955
+23 14 23 0.893349 0.502905 0.868420
+23 14 24 0.895522 0.515438 0.889248
+23 14 25 0.898065 0.530228 0.907863
+23 14 26 0.902580 0.556003 0.923289
+23 14 27 0.907551 0.584313 0.937979
+23 14 28 0.910862 0.605133 0.948591
+23 14 29 0.913935 0.624882 0.958622
+23 14 30 0.916177 0.640176 0.966211
+23 14 31 0.918363 0.655173 0.973638
+23 15 0 0.893207 0.411494 0.000000
+23 15 1 0.893535 0.414149 0.000000
+23 15 2 0.893872 0.416863 0.000000
+23 15 3 0.894331 0.420447 0.000000
+23 15 4 0.894833 0.424399 0.000000
+23 15 5 0.895632 0.430927 0.000000
+23 15 6 0.897160 0.438114 0.000000
+23 15 7 0.901842 0.448157 0.000000
+23 15 8 0.905874 0.458505 0.000000
+23 15 9 0.907953 0.469770 0.000000
+23 15 10 0.909752 0.481527 0.000000
+23 15 11 0.910934 0.494367 0.143587
+23 15 12 0.911485 0.506549 0.276559
+23 15 13 0.910988 0.517632 0.355191
+23 15 14 0.910703 0.527894 0.430806
+23 15 15 0.910692 0.537103 0.502543
+23 15 16 0.910293 0.545024 0.569298
+23 15 17 0.909505 0.551658 0.631070
+23 15 18 0.909431 0.558034 0.687782
+23 15 19 0.909913 0.564211 0.740557
+23 15 20 0.909718 0.568352 0.785025
+23 15 21 0.909116 0.571271 0.824507
+23 15 22 0.909432 0.575436 0.856641
+23 15 23 0.910164 0.580166 0.885435
+23 15 24 0.911607 0.590978 0.906110
+23 15 25 0.913286 0.603818 0.924080
+23 15 26 0.916458 0.625437 0.937952
+23 15 27 0.919975 0.649083 0.950880
+23 15 28 0.921965 0.665875 0.959884
+23 15 29 0.923737 0.681688 0.968328
+23 15 30 0.925037 0.694520 0.974949
+23 15 31 0.926305 0.707155 0.981448
+23 16 0 0.919209 0.478351 0.000000
+23 16 1 0.919418 0.481166 0.000000
+23 16 2 0.919629 0.484041 0.000000
+23 16 3 0.919881 0.487808 0.000000
+23 16 4 0.920159 0.491963 0.000000
+23 16 5 0.920625 0.498834 0.000000
+23 16 6 0.921802 0.506289 0.000000
+23 16 7 0.926058 0.516272 0.000000
+23 16 8 0.929636 0.526885 0.000000
+23 16 9 0.931179 0.539384 0.000000
+23 16 10 0.932400 0.552267 0.000000
+23 16 11 0.932914 0.565994 0.122172
+23 16 12 0.932747 0.578948 0.272796
+23 16 13 0.931445 0.590611 0.355387
+23 16 14 0.930319 0.601226 0.434158
+23 16 15 0.929422 0.610493 0.508017
+23 16 16 0.928224 0.618637 0.576582
+23 16 17 0.926724 0.625661 0.639852
+23 16 18 0.925946 0.632273 0.697854
+23 16 19 0.925727 0.638567 0.751757
+23 16 20 0.924999 0.642774 0.797049
+23 16 21 0.923966 0.645730 0.837173
+23 16 22 0.923883 0.649344 0.869859
+23 16 23 0.924233 0.653257 0.899163
+23 16 24 0.924994 0.662278 0.919654
+23 16 25 0.925891 0.673002 0.937206
+23 16 26 0.927925 0.690777 0.949965
+23 16 27 0.930222 0.710180 0.961617
+23 16 28 0.931218 0.723521 0.969521
+23 16 29 0.932027 0.735996 0.976890
+23 16 30 0.932698 0.746676 0.982815
+23 16 31 0.933359 0.757235 0.988643
+23 17 0 0.941079 0.535933 0.000000
+23 17 1 0.941397 0.539324 0.000000
+23 17 2 0.941718 0.542783 0.000000
+23 17 3 0.942080 0.547257 0.000000
+23 17 4 0.942484 0.552184 0.000000
+23 17 5 0.943182 0.560280 0.000000
+23 17 6 0.944374 0.568973 0.000000
+23 17 7 0.947713 0.580248 0.000000
+23 17 8 0.950431 0.591953 0.000000
+23 17 9 0.951285 0.604947 0.000000
+23 17 10 0.951837 0.618383 0.000000
+23 17 11 0.951727 0.632793 0.116388
+23 17 12 0.950797 0.646260 0.265950
+23 17 13 0.948498 0.658157 0.353054
+23 17 14 0.946495 0.668723 0.435058
+23 17 15 0.944875 0.677577 0.510503
+23 17 16 0.942998 0.686163 0.581054
+23 17 17 0.940863 0.694481 0.646712
+23 17 18 0.939426 0.701442 0.705877
+23 17 19 0.938530 0.707347 0.759993
+23 17 20 0.937391 0.711828 0.806217
+23 17 21 0.936106 0.715454 0.847706
+23 17 22 0.935644 0.718865 0.880607
+23 17 23 0.935557 0.722177 0.909606
+23 17 24 0.935682 0.729338 0.929878
+23 17 25 0.935879 0.737781 0.947243
+23 17 26 0.936982 0.752024 0.959325
+23 17 27 0.938294 0.767605 0.970189
+23 17 28 0.938620 0.778072 0.977501
+23 17 29 0.938805 0.787808 0.984306
+23 17 30 0.939159 0.796642 0.989809
+23 17 31 0.939524 0.805415 0.995225
+23 18 0 0.961779 0.593320 0.000000
+23 18 1 0.961837 0.596540 0.000000
+23 18 2 0.961896 0.599828 0.000000
+23 18 3 0.961955 0.604128 0.000000
+23 18 4 0.962044 0.608883 0.000000
+23 18 5 0.962337 0.616821 0.000000
+23 18 6 0.963189 0.625643 0.000000
+23 18 7 0.966458 0.638296 0.000000
+23 18 8 0.968925 0.651149 0.000000
+23 18 9 0.968985 0.664603 0.000000
+23 18 10 0.968763 0.678517 0.000000
+23 18 11 0.967918 0.693444 0.110078
+23 18 12 0.966230 0.707181 0.258203
+23 18 13 0.963138 0.718936 0.349487
+23 18 14 0.960376 0.729658 0.434715
+23 18 15 0.958039 0.739052 0.512156
+23 18 16 0.955471 0.747828 0.584346
+23 18 17 0.952671 0.755986 0.651285
+23 18 18 0.950696 0.763175 0.711602
+23 18 19 0.949362 0.769612 0.766770
+23 18 20 0.947840 0.774178 0.813654
+23 18 21 0.946206 0.777621 0.855567
+23 18 22 0.945435 0.781012 0.888914
+23 18 23 0.945058 0.784379 0.918367
+23 18 24 0.944743 0.790101 0.938493
+23 18 25 0.944450 0.796608 0.955511
+23 18 26 0.944896 0.807541 0.967002
+23 18 27 0.945513 0.819495 0.977216
+23 18 28 0.945384 0.827720 0.984093
+23 18 29 0.945149 0.835412 0.990492
+23 18 30 0.945136 0.842300 0.995565
+23 18 31 0.945138 0.849136 1.000550
+23 19 0 0.981570 0.650555 0.000000
+23 19 1 0.981081 0.653023 0.000000
+23 19 2 0.980586 0.655552 0.000000
+23 19 3 0.980022 0.658994 0.000000
+23 19 4 0.979452 0.662844 0.000000
+23 19 5 0.978848 0.669547 0.000000
+23 19 6 0.979081 0.677637 0.000000
+23 19 7 0.982940 0.691733 0.000000
+23 19 8 0.985631 0.705778 0.000000
+23 19 9 0.984816 0.719665 0.000000
+23 19 10 0.983735 0.733999 0.000000
+23 19 11 0.982068 0.749314 0.103359
+23 19 12 0.979629 0.763131 0.249754
+23 19 13 0.975901 0.774453 0.344960
+23 19 14 0.972471 0.785491 0.433407
+23 19 15 0.969423 0.796164 0.513161
+23 19 16 0.966154 0.804934 0.586719
+23 19 17 0.962666 0.811800 0.654079
+23 19 18 0.960248 0.819125 0.715540
+23 19 19 0.958663 0.826808 0.772412
+23 19 20 0.956780 0.831313 0.819744
+23 19 21 0.954719 0.833910 0.861351
+23 19 22 0.953695 0.837425 0.895322
+23 19 23 0.953143 0.841356 0.925821
+23 19 24 0.952539 0.845968 0.945856
+23 19 25 0.951918 0.850807 0.962404
+23 19 26 0.951922 0.858603 0.973368
+23 19 27 0.952070 0.867081 0.983043
+23 19 28 0.951653 0.873555 0.989605
+23 19 29 0.951155 0.879743 0.995722
+23 19 30 0.950737 0.884609 1.000360
+23 19 31 0.950324 0.889388 1.004899
+23 20 0 0.994861 0.691744 0.000000
+23 20 1 0.994407 0.694533 0.000000
+23 20 2 0.993949 0.697391 0.000000
+23 20 3 0.993452 0.701290 0.000000
+23 20 4 0.992946 0.705625 0.000000
+23 20 5 0.992376 0.713013 0.000000
+23 20 6 0.992507 0.721633 0.000000
+23 20 7 0.995679 0.735596 0.000000
+23 20 8 0.997702 0.749658 0.000000
+23 20 9 0.996279 0.764017 0.000000
+23 20 10 0.994561 0.778595 0.000000
+23 20 11 0.992196 0.793651 0.098261
+23 20 12 0.989149 0.807451 0.243537
+23 20 13 0.984964 0.819154 0.342229
+23 20 14 0.981061 0.830333 0.433352
+23 20 15 0.977521 0.840840 0.514747
+23 20 16 0.973767 0.849868 0.589743
+23 20 17 0.969801 0.857418 0.658342
+23 20 18 0.966960 0.864805 0.720448
+23 20 19 0.964993 0.872066 0.777505
+23 20 20 0.962872 0.876696 0.825173
+23 20 21 0.960658 0.879748 0.867210
+23 20 22 0.959424 0.883141 0.901014
+23 20 23 0.958634 0.886688 0.931075
+23 20 24 0.957740 0.890233 0.950857
+23 20 25 0.956811 0.893777 0.967214
+23 20 26 0.956441 0.899022 0.977875
+23 20 27 0.956200 0.904660 0.987223
+23 20 28 0.955499 0.909096 0.993593
+23 20 29 0.954731 0.913361 0.999538
+23 20 30 0.954143 0.917150 1.003946
+23 20 31 0.953567 0.920907 1.008252
+23 21 0 1.004254 0.723305 0.000000
+23 21 1 1.004183 0.727059 0.000000
+23 21 2 1.004116 0.730899 0.000000
+23 21 3 1.004101 0.736045 0.000000
+23 21 4 1.004092 0.741700 0.000000
+23 21 5 1.004115 0.750923 0.000000
+23 21 6 1.004455 0.760831 0.000000
+23 21 7 1.006173 0.773715 0.000000
+23 21 8 1.006993 0.787090 0.000000
+23 21 9 1.005121 0.801944 0.000000
+23 21 10 1.002899 0.816659 0.000000
+23 21 11 0.999910 0.831070 0.094137
+23 21 12 0.996342 0.844792 0.238658
+23 21 13 0.991807 0.857365 0.340574
+23 21 14 0.987549 0.868582 0.434051
+23 21 15 0.983647 0.878055 0.516680
+23 21 16 0.979538 0.887500 0.593158
+23 21 17 0.975222 0.896917 0.663486
+23 21 18 0.971969 0.904322 0.725939
+23 21 19 0.969542 0.910161 0.782267
+23 21 20 0.967255 0.915029 0.830207
+23 21 21 0.965053 0.919315 0.873114
+23 21 22 0.963633 0.922439 0.906276
+23 21 23 0.962570 0.925034 0.935009
+23 21 24 0.961385 0.927538 0.954441
+23 21 25 0.960160 0.930011 0.970773
+23 21 26 0.959457 0.933057 0.981268
+23 21 27 0.958874 0.936235 0.990415
+23 21 28 0.957890 0.938461 0.996668
+23 21 29 0.956849 0.940551 1.002507
+23 21 30 0.956233 0.943829 1.006809
+23 21 31 0.955646 0.947186 1.011008
+23 22 0 1.012709 0.750807 0.000000
+23 22 1 1.012510 0.754586 0.000000
+23 22 2 1.012308 0.758447 0.000000
+23 22 3 1.012060 0.763530 0.000000
+23 22 4 1.011790 0.769110 0.000000
+23 22 5 1.011357 0.778170 0.000000
+23 22 6 1.011367 0.788095 0.000000
+23 22 7 1.013299 0.801771 0.000000
+23 22 8 1.014120 0.815649 0.000000
+23 22 9 1.011610 0.830131 0.000000
+23 22 10 1.008835 0.844664 0.000000
+23 22 11 1.005479 0.859309 0.095656
+23 22 12 1.001581 0.873088 0.241371
+23 22 13 0.996780 0.885425 0.344540
+23 22 14 0.992352 0.896788 0.439184
+23 22 15 0.988405 0.906899 0.522868
+23 22 16 0.984124 0.916377 0.599622
+23 22 17 0.979511 0.925223 0.669448
+23 22 18 0.975940 0.932409 0.731607
+23 22 19 0.973181 0.938304 0.787804
+23 22 20 0.970640 0.943031 0.835273
+23 22 21 0.968229 0.947056 0.877505
+23 22 22 0.966780 0.950204 0.910405
+23 22 23 0.965767 0.952955 0.939063
+23 22 24 0.964497 0.955065 0.958150
+23 22 25 0.963142 0.956962 0.974047
+23 22 26 0.962274 0.959001 0.984198
+23 22 27 0.961519 0.961072 0.993025
+23 22 28 0.960446 0.962410 0.999102
+23 22 29 0.959327 0.963643 1.004787
+23 22 30 0.958499 0.965941 1.008995
+23 22 31 0.957691 0.968310 1.013105
+23 23 0 1.020739 0.776462 0.000000
+23 23 1 1.020179 0.779842 0.000000
+23 23 2 1.019603 0.783286 0.000000
+23 23 3 1.018796 0.787711 0.000000
+23 23 4 1.017920 0.792581 0.000000
+23 23 5 1.016556 0.800570 0.000000
+23 23 6 1.015991 0.809934 0.000000
+23 23 7 1.018894 0.825254 0.000000
+23 23 8 1.020262 0.840173 0.000000
+23 23 9 1.017030 0.853892 0.000000
+23 23 10 1.013680 0.868097 0.000000
+23 23 11 1.010072 0.883376 0.099741
+23 23 12 1.005931 0.897274 0.247534
+23 23 13 1.000901 0.908871 0.351061
+23 23 14 0.996388 0.920429 0.446332
+23 23 15 0.992540 0.931938 0.530990
+23 23 16 0.988172 0.941275 0.607473
+23 23 17 0.983285 0.948441 0.675782
+23 23 18 0.979440 0.955302 0.737356
+23 23 19 0.976407 0.961924 0.793692
+23 23 20 0.973571 0.966336 0.840353
+23 23 21 0.970853 0.969421 0.881208
+23 23 22 0.969443 0.972728 0.914018
+23 23 23 0.968628 0.976137 0.943170
+23 23 24 0.967367 0.978148 0.961914
+23 23 25 0.965958 0.979693 0.977189
+23 23 26 0.965003 0.981266 0.986919
+23 23 27 0.964151 0.982847 0.995369
+23 23 28 0.963076 0.983898 1.001246
+23 23 29 0.961968 0.984873 1.006755
+23 23 30 0.960845 0.985977 1.010875
+23 23 31 0.959720 0.987090 1.014904
+23 24 0 1.025770 0.794882 0.000000
+23 24 1 1.025052 0.798734 0.000000
+23 24 2 1.024316 0.802642 0.000000
+23 24 3 1.023327 0.807387 0.000000
+23 24 4 1.022263 0.812511 0.000000
+23 24 5 1.020666 0.820294 0.000000
+23 24 6 1.019696 0.829334 0.000000
+23 24 7 1.021448 0.843823 0.000000
+23 24 8 1.021954 0.858087 0.000000
+23 24 9 1.018721 0.871676 0.000000
+23 24 10 1.015251 0.885649 0.000000
+23 24 11 1.011261 0.900470 0.115982
+23 24 12 1.006859 0.914032 0.270459
+23 24 13 1.001772 0.925496 0.371187
+23 24 14 0.997187 0.936840 0.463969
+23 24 15 0.993250 0.948029 0.546536
+23 24 16 0.988921 0.957120 0.620955
+23 24 17 0.984202 0.964112 0.687227
+23 24 18 0.980398 0.970810 0.747265
+23 24 19 0.977305 0.977280 0.802456
+23 24 20 0.974352 0.981559 0.847617
+23 24 21 0.971483 0.984523 0.886762
+23 24 22 0.969930 0.987578 0.918455
+23 24 23 0.968976 0.990676 0.946762
+23 24 24 0.967732 0.992490 0.964966
+23 24 25 0.966393 0.993877 0.979804
+23 24 26 0.965437 0.995257 0.989204
+23 24 27 0.964570 0.996634 0.997348
+23 24 28 0.963560 0.997603 1.003086
+23 24 29 0.962529 0.998514 1.008481
+23 24 30 0.961452 0.999303 1.012500
+23 24 31 0.960371 1.000084 1.016428
+23 25 0 1.029802 0.810889 0.000000
+23 25 1 1.028993 0.815505 0.000000
+23 25 2 1.028169 0.820170 0.000000
+23 25 3 1.027124 0.825561 0.000000
+23 25 4 1.026010 0.831261 0.000000
+23 25 5 1.024413 0.839126 0.000000
+23 25 6 1.023095 0.847922 0.000000
+23 25 7 1.022989 0.860755 0.000000
+23 25 8 1.022162 0.873797 0.000000
+23 25 9 1.019168 0.887468 0.000000
+23 25 10 1.015730 0.901241 0.000000
+23 25 11 1.011314 0.915239 0.136276
+23 25 12 1.006646 0.928314 0.298972
+23 25 13 1.001559 0.939847 0.395848
+23 25 14 0.996907 0.950841 0.485102
+23 25 15 0.992817 0.961138 0.564557
+23 25 16 0.988570 0.969947 0.636315
+23 25 17 0.984168 0.977266 0.700376
+23 25 18 0.980508 0.983857 0.758561
+23 25 19 0.977427 0.989882 0.812178
+23 25 20 0.974416 0.994088 0.855610
+23 25 21 0.971448 0.997203 0.892931
+23 25 22 0.969691 0.999871 0.923167
+23 25 23 0.968486 1.002334 0.950181
+23 25 24 0.967262 1.003920 0.967781
+23 25 25 0.966033 1.005213 0.982243
+23 25 26 0.965107 1.006488 0.991342
+23 25 27 0.964252 1.007760 0.999205
+23 25 28 0.963329 1.008716 1.004826
+23 25 29 0.962397 1.009626 1.010126
+23 25 30 0.961479 1.010393 1.014040
+23 25 31 0.960563 1.011149 1.017862
+23 26 0 1.030958 0.820422 0.000000
+23 26 1 1.030132 0.825248 0.000000
+23 26 2 1.029293 0.830145 0.000000
+23 26 3 1.028262 0.836106 0.000000
+23 26 4 1.027144 0.842487 0.000000
+23 26 5 1.025409 0.851819 0.000000
+23 26 6 1.023903 0.861749 0.000000
+23 26 7 1.023387 0.874271 0.000000
+23 26 8 1.022114 0.886972 0.000000
+23 26 9 1.018572 0.900210 0.000000
+23 26 10 1.014776 0.913470 0.000000
+23 26 11 1.010421 0.926779 0.161010
+23 26 12 1.005762 0.939281 0.333889
+23 26 13 1.000595 0.950436 0.426509
+23 26 14 0.995805 0.960880 0.511319
+23 26 15 0.991500 0.970410 0.586087
+23 26 16 0.987335 0.978812 0.654038
+23 26 17 0.983311 0.986086 0.715170
+23 26 18 0.979948 0.992530 0.771431
+23 26 19 0.977100 0.998328 0.823902
+23 26 20 0.974249 1.002503 0.865342
+23 26 21 0.971395 1.005703 0.900163
+23 26 22 0.969649 1.008263 0.928781
+23 26 23 0.968405 1.010531 0.954580
+23 26 24 0.967181 1.012005 0.971708
+23 26 25 0.965963 1.013213 0.985947
+23 26 26 0.964855 1.014147 0.994039
+23 26 27 0.963772 1.015016 1.000712
+23 26 28 0.962845 1.015864 1.006102
+23 26 29 0.961941 1.016708 1.011308
+23 26 30 0.961103 1.017457 1.015136
+23 26 31 0.960270 1.018199 1.018871
+23 27 0 1.031450 0.828460 0.000000
+23 27 1 1.030624 0.833368 0.000000
+23 27 2 1.029787 0.838377 0.000000
+23 27 3 1.028788 0.844889 0.000000
+23 27 4 1.027675 0.851978 0.000000
+23 27 5 1.025771 0.863095 0.000000
+23 27 6 1.024113 0.874477 0.000000
+23 27 7 1.023521 0.886999 0.000000
+23 27 8 1.022008 0.899562 0.000000
+23 27 9 1.017734 0.912248 0.000000
+23 27 10 1.013490 0.924922 0.000000
+23 27 11 1.009311 0.937574 0.186769
+23 27 12 1.004724 0.949484 0.370283
+23 27 13 0.999458 0.960157 0.458554
+23 27 14 0.994512 0.970005 0.538708
+23 27 15 0.989979 0.978795 0.608427
+23 27 16 0.985896 0.986762 0.672306
+23 27 17 0.982264 0.993906 0.730345
+23 27 18 0.979234 1.000194 0.784663
+23 27 19 0.976671 1.005816 0.836088
+23 27 20 0.974028 1.009968 0.875475
+23 27 21 0.971339 1.013238 0.907639
+23 27 22 0.969651 1.015755 0.934603
+23 27 23 0.968419 1.017929 0.959205
+23 27 24 0.967189 1.019318 0.975892
+23 27 25 0.965959 1.020445 0.989943
+23 27 26 0.964620 1.020981 0.996863
+23 27 27 0.963255 1.021380 1.002139
+23 27 28 0.962303 1.022097 1.007271
+23 27 29 0.961410 1.022860 1.012384
+23 27 30 0.960633 1.023592 1.016128
+23 27 31 0.959865 1.024322 1.019782
+23 28 0 1.032273 0.834247 0.000000
+23 28 1 1.031447 0.839094 0.000000
+23 28 2 1.030606 0.844054 0.000000
+23 28 3 1.029544 0.850707 0.000000
+23 28 4 1.028371 0.857975 0.000000
+23 28 5 1.026426 0.869553 0.000000
+23 28 6 1.024625 0.881508 0.000000
+23 28 7 1.023447 0.895100 0.000000
+23 28 8 1.021402 0.908406 0.000000
+23 28 9 1.016750 0.920858 0.000000
+23 28 10 1.012273 0.933193 0.023615
+23 28 11 1.008183 0.945268 0.232930
+23 28 12 1.003597 0.956676 0.395785
+23 28 13 0.998185 0.966970 0.481209
+23 28 14 0.993140 0.976390 0.558348
+23 28 15 0.988568 0.984686 0.624834
+23 28 16 0.984496 0.992352 0.686446
+23 28 17 0.980923 0.999387 0.743183
+23 28 18 0.978105 1.005563 0.795788
+23 28 19 0.975874 1.011070 0.845179
+23 28 20 0.973465 1.015140 0.883339
+23 28 21 0.970949 1.018347 0.914759
+23 28 22 0.969309 1.020829 0.940363
+23 28 23 0.968069 1.022981 0.963323
+23 28 24 0.966793 1.024356 0.979159
+23 28 25 0.965505 1.025472 0.992620
+23 28 26 0.964180 1.025900 0.999288
+23 28 27 0.962847 1.026170 1.004389
+23 28 28 0.961908 1.026636 1.008833
+23 28 29 0.961027 1.027131 1.013182
+23 28 30 0.960196 1.027778 1.016870
+23 28 31 0.959369 1.028435 1.020513
+23 29 0 1.033142 0.839712 0.000000
+23 29 1 1.032316 0.844477 0.000000
+23 29 2 1.031471 0.849365 0.000000
+23 29 3 1.030333 0.856100 0.000000
+23 29 4 1.029090 0.863474 0.000000
+23 29 5 1.027122 0.875321 0.000000
+23 29 6 1.025180 0.887725 0.000000
+23 29 7 1.023344 0.902539 0.000000
+23 29 8 1.020723 0.916716 0.000000
+23 29 9 1.015744 0.928979 0.000000
+23 29 10 1.011066 0.941008 0.111317
+23 29 11 1.007052 0.952520 0.282005
+23 29 12 1.002456 0.963438 0.419731
+23 29 13 0.996892 0.973369 0.502522
+23 29 14 0.991757 0.982383 0.576880
+23 29 15 0.987173 0.990222 0.640394
+23 29 16 0.983101 0.997605 0.699997
+23 29 17 0.979539 1.004534 0.755687
+23 29 18 0.976917 1.010604 0.806611
+23 29 19 0.975025 1.016005 0.853828
+23 29 20 0.972852 1.019983 0.890878
+23 29 21 0.970511 1.023109 0.921828
+23 29 22 0.968919 1.025557 0.946113
+23 29 23 0.967667 1.027696 0.967369
+23 29 24 0.966339 1.029069 0.982294
+23 29 25 0.964987 1.030185 0.995109
+23 29 26 0.963712 1.030547 1.001657
+23 29 27 0.962454 1.030734 1.006757
+23 29 28 0.961535 1.030933 1.010450
+23 29 29 0.960665 1.031133 1.013941
+23 29 30 0.959764 1.031685 1.017575
+23 29 31 0.958860 1.032260 1.021218
+23 30 0 1.033812 0.843745 0.000000
+23 30 1 1.032986 0.848504 0.000000
+23 30 2 1.032140 0.853388 0.000000
+23 30 3 1.030997 0.860128 0.000000
+23 30 4 1.029751 0.867500 0.000000
+23 30 5 1.027781 0.879299 0.000000
+23 30 6 1.025705 0.891895 0.000000
+23 30 7 1.023165 0.907942 0.000000
+23 30 8 1.019975 0.922975 0.000000
+23 30 9 1.014841 0.934963 0.053631
+23 30 10 1.010049 0.946712 0.195419
+23 30 11 1.006010 0.957935 0.327539
+23 30 12 1.001418 0.968590 0.440195
+23 30 13 0.995905 0.978299 0.520410
+23 30 14 0.990772 0.987066 0.592167
+23 30 15 0.986127 0.994622 0.653051
+23 30 16 0.982014 1.001762 0.710820
+23 30 17 0.978431 1.008485 0.765476
+23 30 18 0.975956 1.014368 0.814928
+23 30 19 0.974342 1.019598 0.860334
+23 30 20 0.972325 1.023509 0.896515
+23 30 21 0.970066 1.026629 0.927160
+23 30 22 0.968457 1.029022 0.950497
+23 30 23 0.967144 1.031084 0.970511
+23 30 24 0.965852 1.032429 0.984691
+23 30 25 0.964567 1.033534 0.996925
+23 30 26 0.963308 1.033889 1.003426
+23 30 27 0.962055 1.034071 1.008603
+23 30 28 0.961138 1.034253 1.012191
+23 30 29 0.960268 1.034436 1.015552
+23 30 30 0.959399 1.034795 1.018589
+23 30 31 0.958531 1.035166 1.021604
+23 31 0 1.034469 0.847682 0.000000
+23 31 1 1.033643 0.852441 0.000000
+23 31 2 1.032797 0.857325 0.000000
+23 31 3 1.031654 0.864065 0.000000
+23 31 4 1.030407 0.871429 0.000000
+23 31 5 1.028438 0.883158 0.000000
+23 31 6 1.026229 0.895928 0.000000
+23 31 7 1.022979 0.913210 0.000000
+23 31 8 1.019223 0.929098 0.000000
+23 31 9 1.013944 0.940804 0.115510
+23 31 10 1.009043 0.952274 0.279281
+23 31 11 1.004974 0.963228 0.372837
+23 31 12 1.000387 0.973635 0.460426
+23 31 13 0.994939 0.983131 0.538069
+23 31 14 0.989814 0.991660 0.607239
+23 31 15 0.985104 0.998947 0.665514
+23 31 16 0.980947 1.005846 0.721462
+23 31 17 0.977342 1.012357 0.775083
+23 31 18 0.975011 1.018048 0.823079
+23 31 19 0.973671 1.023101 0.866699
+23 31 20 0.971804 1.026947 0.902025
+23 31 21 0.969621 1.030067 0.932376
+23 31 22 0.967992 1.032404 0.954789
+23 31 23 0.966613 1.034384 0.973593
+23 31 24 0.965362 1.035699 0.987038
+23 31 25 0.964153 1.036792 0.998696
+23 31 26 0.962909 1.037145 1.005156
+23 31 27 0.961656 1.037327 1.010415
+23 31 28 0.960738 1.037509 1.013941
+23 31 29 0.959869 1.037691 1.017220
+23 31 30 0.959040 1.037851 1.019623
+23 31 31 0.958214 1.038010 1.021968
+24 0 0 0.599673 0.000000 0.000000
+24 0 1 0.600144 0.000000 0.000000
+24 0 2 0.600621 0.000000 0.000000
+24 0 3 0.601195 0.000000 0.000000
+24 0 4 0.601816 0.000000 0.000000
+24 0 5 0.602768 0.000000 0.000000
+24 0 6 0.603994 0.000000 0.000000
+24 0 7 0.606406 0.000000 0.000000
+24 0 8 0.609556 0.000000 0.012964
+24 0 9 0.614916 0.000000 0.036857
+24 0 10 0.619588 0.000000 0.069689
+24 0 11 0.622744 0.000000 0.122188
+24 0 12 0.626003 0.000000 0.172115
+24 0 13 0.629433 0.000000 0.217756
+24 0 14 0.632879 0.000000 0.264261
+24 0 15 0.636347 0.000000 0.311877
+24 0 16 0.639947 0.000000 0.356011
+24 0 17 0.643677 0.000000 0.396663
+24 0 18 0.647466 0.000000 0.436290
+24 0 19 0.651301 0.000000 0.475121
+24 0 20 0.656066 0.000000 0.510150
+24 0 21 0.661388 0.000000 0.542899
+24 0 22 0.668549 0.000000 0.572795
+24 0 23 0.676547 0.000000 0.601395
+24 0 24 0.690960 0.000000 0.634063
+24 0 25 0.707513 0.000000 0.668086
+24 0 26 0.733679 0.000000 0.708565
+24 0 27 0.762063 0.000000 0.750533
+24 0 28 0.781339 0.000000 0.779051
+24 0 29 0.799313 0.000000 0.805647
+24 0 30 0.812519 0.050511 0.825346
+24 0 31 0.825406 0.145596 0.844585
+24 1 0 0.606861 0.000000 0.000000
+24 1 1 0.607365 0.000000 0.000000
+24 1 2 0.607874 0.000000 0.000000
+24 1 3 0.608448 0.000000 0.000000
+24 1 4 0.609074 0.000000 0.000000
+24 1 5 0.610060 0.000000 0.000000
+24 1 6 0.611313 0.000000 0.000000
+24 1 7 0.613725 0.000000 0.000000
+24 1 8 0.616861 0.000000 0.016445
+24 1 9 0.622168 0.000000 0.040086
+24 1 10 0.626820 0.000000 0.072892
+24 1 11 0.630030 0.000000 0.125861
+24 1 12 0.633322 0.000000 0.176385
+24 1 13 0.636752 0.000000 0.222836
+24 1 14 0.640213 0.000000 0.269993
+24 1 15 0.643715 0.000000 0.318057
+24 1 16 0.647288 0.000000 0.362878
+24 1 17 0.650931 0.000000 0.404456
+24 1 18 0.654731 0.000000 0.444529
+24 1 19 0.658653 0.000000 0.483432
+24 1 20 0.663341 0.000000 0.518714
+24 1 21 0.668488 0.000000 0.551823
+24 1 22 0.675428 0.000000 0.581585
+24 1 23 0.683182 0.000000 0.609823
+24 1 24 0.696303 0.000000 0.640697
+24 1 25 0.711212 0.000000 0.672449
+24 1 26 0.737042 0.000000 0.712502
+24 1 27 0.765393 0.000000 0.754471
+24 1 28 0.784694 0.000000 0.783070
+24 1 29 0.802703 0.000000 0.809761
+24 1 30 0.815910 0.064584 0.829431
+24 1 31 0.828798 0.159705 0.848634
+24 2 0 0.614191 0.000000 0.000000
+24 2 1 0.614730 0.000000 0.000000
+24 2 2 0.615272 0.000000 0.000000
+24 2 3 0.615854 0.000000 0.000000
+24 2 4 0.616490 0.000000 0.000000
+24 2 5 0.617504 0.000000 0.000000
+24 2 6 0.618780 0.000000 0.000000
+24 2 7 0.621193 0.000000 0.000000
+24 2 8 0.624315 0.000000 0.019213
+24 2 9 0.629566 0.000000 0.043061
+24 2 10 0.634197 0.000000 0.076159
+24 2 11 0.637462 0.000000 0.129607
+24 2 12 0.640790 0.000000 0.180742
+24 2 13 0.644219 0.000000 0.228020
+24 2 14 0.647697 0.000000 0.275840
+24 2 15 0.651236 0.000000 0.324355
+24 2 16 0.654783 0.000000 0.369878
+24 2 17 0.658337 0.000000 0.412407
+24 2 18 0.662145 0.000000 0.452938
+24 2 19 0.666151 0.000000 0.491914
+24 2 20 0.670764 0.000000 0.527456
+24 2 21 0.675741 0.000000 0.560938
+24 2 22 0.682453 0.000000 0.590557
+24 2 23 0.689952 0.000000 0.618420
+24 2 24 0.701832 0.000000 0.647577
+24 2 25 0.715171 0.000000 0.677165
+24 2 26 0.740595 0.000000 0.716699
+24 2 27 0.768808 0.000000 0.758528
+24 2 28 0.788118 0.000000 0.787185
+24 2 29 0.806156 0.000000 0.813961
+24 2 30 0.819365 0.078964 0.833604
+24 2 31 0.832253 0.174116 0.852771
+24 3 0 0.623648 0.000000 0.000000
+24 3 1 0.624241 0.000000 0.000000
+24 3 2 0.624841 0.000000 0.000000
+24 3 3 0.625545 0.000000 0.000000
+24 3 4 0.626280 0.000000 0.000000
+24 3 5 0.627241 0.000000 0.000000
+24 3 6 0.628473 0.000000 0.000000
+24 3 7 0.630886 0.000000 0.000000
+24 3 8 0.633986 0.000000 0.011299
+24 3 9 0.639150 0.000000 0.042229
+24 3 10 0.643747 0.000000 0.080390
+24 3 11 0.647101 0.000000 0.134460
+24 3 12 0.650483 0.000000 0.186393
+24 3 13 0.653912 0.000000 0.234763
+24 3 14 0.657428 0.000000 0.283409
+24 3 15 0.661055 0.000000 0.332410
+24 3 16 0.664592 0.000000 0.378855
+24 3 17 0.668039 0.000000 0.422743
+24 3 18 0.671811 0.000000 0.463909
+24 3 19 0.675836 0.000000 0.502957
+24 3 20 0.680402 0.000000 0.538870
+24 3 21 0.685292 0.000000 0.572901
+24 3 22 0.691675 0.000000 0.602275
+24 3 23 0.698737 0.000000 0.629531
+24 3 24 0.710154 0.000000 0.658129
+24 3 25 0.723022 0.000000 0.687174
+24 3 26 0.746979 0.000000 0.724790
+24 3 27 0.773494 0.000000 0.764384
+24 3 28 0.792563 0.000000 0.792730
+24 3 29 0.810567 0.004338 0.819469
+24 3 30 0.823774 0.097957 0.839090
+24 3 31 0.836662 0.193073 0.858236
+24 4 0 0.634014 0.000000 0.000000
+24 4 1 0.634648 0.000000 0.000000
+24 4 2 0.635292 0.000000 0.000000
+24 4 3 0.636106 0.000000 0.000000
+24 4 4 0.636933 0.000000 0.000000
+24 4 5 0.637853 0.000000 0.000000
+24 4 6 0.639053 0.000000 0.000000
+24 4 7 0.641465 0.000000 0.000000
+24 4 8 0.644546 0.000000 0.000000
+24 4 9 0.649634 0.000000 0.039343
+24 4 10 0.654205 0.000000 0.085166
+24 4 11 0.657641 0.000000 0.139820
+24 4 12 0.661070 0.000000 0.192564
+24 4 13 0.664487 0.000000 0.242125
+24 4 14 0.668032 0.000000 0.291673
+24 4 15 0.671741 0.000000 0.341204
+24 4 16 0.675262 0.000000 0.388667
+24 4 17 0.678593 0.000000 0.434061
+24 4 18 0.682337 0.000000 0.475932
+24 4 19 0.686401 0.000000 0.515064
+24 4 20 0.690913 0.000000 0.551369
+24 4 21 0.695694 0.000000 0.585979
+24 4 22 0.701742 0.000000 0.615101
+24 4 23 0.708367 0.000000 0.641728
+24 4 24 0.719348 0.000000 0.669789
+24 4 25 0.731781 0.000000 0.698329
+24 4 26 0.754095 0.000000 0.733793
+24 4 27 0.778689 0.000000 0.770855
+24 4 28 0.797471 0.000000 0.798830
+24 4 29 0.815424 0.024562 0.825507
+24 4 30 0.828628 0.118823 0.845108
+24 4 31 0.841516 0.213905 0.864238
+24 5 0 0.650736 0.000000 0.000000
+24 5 1 0.651316 0.000000 0.000000
+24 5 2 0.651912 0.000000 0.000000
+24 5 3 0.652760 0.000000 0.000000
+24 5 4 0.653623 0.000000 0.000000
+24 5 5 0.654597 0.000000 0.000000
+24 5 6 0.655841 0.000000 0.000000
+24 5 7 0.658253 0.000000 0.000000
+24 5 8 0.661334 0.000000 0.000000
+24 5 9 0.666421 0.000000 0.022076
+24 5 10 0.671009 0.000000 0.093757
+24 5 11 0.674500 0.000000 0.148730
+24 5 12 0.677922 0.000000 0.202378
+24 5 13 0.681231 0.000000 0.253819
+24 5 14 0.684739 0.000000 0.304794
+24 5 15 0.688502 0.000000 0.355172
+24 5 16 0.691962 0.000000 0.404327
+24 5 17 0.695118 0.000000 0.452260
+24 5 18 0.698884 0.000000 0.495327
+24 5 19 0.703123 0.000000 0.534610
+24 5 20 0.707537 0.000000 0.571466
+24 5 21 0.712055 0.000000 0.606864
+24 5 22 0.717721 0.000000 0.635690
+24 5 23 0.723907 0.000000 0.661528
+24 5 24 0.734648 0.000000 0.689208
+24 5 25 0.746906 0.000000 0.717503
+24 5 26 0.766342 0.000000 0.749177
+24 5 27 0.787435 0.000000 0.781632
+24 5 28 0.805627 0.000000 0.808816
+24 5 29 0.823405 0.057460 0.835247
+24 5 30 0.836598 0.152798 0.854854
+24 5 31 0.849486 0.247858 0.874005
+24 6 0 0.669603 0.000000 0.000000
+24 6 1 0.670176 0.000000 0.000000
+24 6 2 0.670767 0.000000 0.000000
+24 6 3 0.671636 0.000000 0.000000
+24 6 4 0.672524 0.000000 0.000000
+24 6 5 0.673547 0.000000 0.000000
+24 6 6 0.674863 0.000000 0.000000
+24 6 7 0.677443 0.000000 0.000000
+24 6 8 0.680634 0.000000 0.000000
+24 6 9 0.685661 0.000000 0.009628
+24 6 10 0.690227 0.000000 0.103209
+24 6 11 0.693781 0.000000 0.158512
+24 6 12 0.697209 0.000000 0.213152
+24 6 13 0.700427 0.000000 0.266689
+24 6 14 0.703882 0.000000 0.319324
+24 6 15 0.707640 0.000000 0.370798
+24 6 16 0.711027 0.000000 0.421663
+24 6 17 0.714044 0.000000 0.471919
+24 6 18 0.717804 0.000000 0.516380
+24 6 19 0.722142 0.000000 0.556332
+24 6 20 0.726460 0.000000 0.593799
+24 6 21 0.730765 0.000000 0.629775
+24 6 22 0.736086 0.000000 0.658591
+24 6 23 0.741869 0.000000 0.684153
+24 6 24 0.752155 0.000000 0.711212
+24 6 25 0.763942 0.000000 0.738770
+24 6 26 0.780973 0.000000 0.767265
+24 6 27 0.799215 0.000000 0.795977
+24 6 28 0.816371 0.000000 0.821849
+24 6 29 0.833372 0.106119 0.847316
+24 6 30 0.846035 0.196416 0.866329
+24 6 31 0.858410 0.285569 0.884912
+24 7 0 0.697763 0.000000 0.000000
+24 7 1 0.698530 0.000000 0.000000
+24 7 2 0.699302 0.000000 0.000000
+24 7 3 0.700137 0.000000 0.000000
+24 7 4 0.701000 0.000000 0.000000
+24 7 5 0.702057 0.000000 0.000000
+24 7 6 0.703568 0.000000 0.000000
+24 7 7 0.707039 0.000000 0.000000
+24 7 8 0.710820 0.000000 0.000000
+24 7 9 0.715524 0.000000 0.018055
+24 7 10 0.719903 0.000000 0.116391
+24 7 11 0.723564 0.000000 0.172076
+24 7 12 0.727052 0.000000 0.228092
+24 7 13 0.730250 0.000000 0.284659
+24 7 14 0.733579 0.000000 0.339953
+24 7 15 0.737074 0.000000 0.393611
+24 7 16 0.740337 0.000000 0.446263
+24 7 17 0.743368 0.000000 0.497908
+24 7 18 0.747006 0.000000 0.544615
+24 7 19 0.751116 0.000000 0.587483
+24 7 20 0.755348 0.000000 0.625830
+24 7 21 0.759653 0.000000 0.661466
+24 7 22 0.764797 0.000000 0.691513
+24 7 23 0.770323 0.000000 0.719019
+24 7 24 0.779228 0.000000 0.744417
+24 7 25 0.789259 0.000000 0.769111
+24 7 26 0.805933 0.031249 0.797070
+24 7 27 0.824141 0.078672 0.825781
+24 7 28 0.838331 0.149222 0.848084
+24 7 29 0.851947 0.223077 0.869472
+24 7 30 0.861831 0.281825 0.885301
+24 7 31 0.871467 0.339567 0.900760
+24 8 0 0.724394 0.000000 0.000000
+24 8 1 0.725281 0.000000 0.000000
+24 8 2 0.726166 0.000000 0.000000
+24 8 3 0.727033 0.000000 0.000000
+24 8 4 0.727943 0.000000 0.000000
+24 8 5 0.729158 0.000000 0.000000
+24 8 6 0.730935 0.000000 0.000000
+24 8 7 0.735154 0.000000 0.000000
+24 8 8 0.739415 0.000000 0.000000
+24 8 9 0.743804 0.000000 0.024319
+24 8 10 0.747991 0.000000 0.126573
+24 8 11 0.751733 0.000000 0.183771
+24 8 12 0.755229 0.000000 0.241755
+24 8 13 0.758317 0.000000 0.301050
+24 8 14 0.761487 0.000000 0.358828
+24 8 15 0.764764 0.000000 0.414655
+24 8 16 0.767879 0.000000 0.469018
+24 8 17 0.770833 0.000000 0.521916
+24 8 18 0.774286 0.000000 0.570494
+24 8 19 0.778129 0.000000 0.615712
+24 8 20 0.782143 0.000000 0.654929
+24 8 21 0.786259 0.000000 0.690545
+24 8 22 0.791098 0.000000 0.721507
+24 8 23 0.796264 0.000000 0.750354
+24 8 24 0.803921 0.000000 0.774459
+24 8 25 0.812408 0.073232 0.796983
+24 8 26 0.828381 0.151095 0.824030
+24 8 27 0.846082 0.225554 0.852121
+24 8 28 0.857731 0.275833 0.871307
+24 8 29 0.868515 0.322656 0.889222
+24 8 30 0.876104 0.356437 0.902373
+24 8 31 0.883480 0.389348 0.915207
+24 9 0 0.746439 0.000000 0.000000
+24 9 1 0.747218 0.000000 0.000000
+24 9 2 0.748017 0.000000 0.000000
+24 9 3 0.749113 0.000000 0.000000
+24 9 4 0.750288 0.002862 0.000000
+24 9 5 0.752028 0.008150 0.000000
+24 9 6 0.754290 0.013535 0.000000
+24 9 7 0.758820 0.019335 0.000000
+24 9 8 0.763240 0.024088 0.000000
+24 9 9 0.767333 0.025695 0.024092
+24 9 10 0.771316 0.028281 0.127753
+24 9 11 0.775057 0.033020 0.189855
+24 9 12 0.778410 0.037507 0.251588
+24 9 13 0.781113 0.041575 0.312705
+24 9 14 0.784029 0.044971 0.372439
+24 9 15 0.787218 0.047504 0.430392
+24 9 16 0.790115 0.049887 0.486241
+24 9 17 0.792719 0.052120 0.539986
+24 9 18 0.795803 0.053387 0.589304
+24 9 19 0.799262 0.053902 0.635180
+24 9 20 0.802660 0.055728 0.675232
+24 9 21 0.806023 0.058340 0.711788
+24 9 22 0.810168 0.063775 0.742721
+24 9 23 0.814668 0.070493 0.771097
+24 9 24 0.821477 0.111730 0.795014
+24 9 25 0.829054 0.164474 0.817444
+24 9 26 0.843293 0.225392 0.842458
+24 9 27 0.859068 0.288195 0.868068
+24 9 28 0.869451 0.330605 0.885495
+24 9 29 0.879064 0.370101 0.901753
+24 9 30 0.885809 0.398655 0.913743
+24 9 31 0.892364 0.426480 0.925449
+24 10 0 0.769796 0.084200 0.000000
+24 10 1 0.770535 0.085490 0.000000
+24 10 2 0.771305 0.086963 0.000000
+24 10 3 0.772541 0.091176 0.000000
+24 10 4 0.773880 0.095872 0.000000
+24 10 5 0.775943 0.103952 0.000000
+24 10 6 0.778501 0.111997 0.000000
+24 10 7 0.783208 0.119889 0.000000
+24 10 8 0.787710 0.126676 0.000000
+24 10 9 0.791599 0.130149 0.023848
+24 10 10 0.795382 0.134850 0.128746
+24 10 11 0.798932 0.142254 0.195237
+24 10 12 0.802039 0.149389 0.260447
+24 10 13 0.804407 0.156077 0.323523
+24 10 14 0.807032 0.161671 0.385399
+24 10 15 0.809986 0.165861 0.445731
+24 10 16 0.812609 0.169949 0.503199
+24 10 17 0.814901 0.173934 0.557801
+24 10 18 0.817617 0.176371 0.607978
+24 10 19 0.820664 0.177604 0.654713
+24 10 20 0.823496 0.180682 0.695555
+24 10 21 0.826197 0.184866 0.732862
+24 10 22 0.829674 0.192840 0.763860
+24 10 23 0.833504 0.202536 0.791991
+24 10 24 0.839487 0.223619 0.815546
+24 10 25 0.846187 0.248498 0.837577
+24 10 26 0.858455 0.295761 0.860423
+24 10 27 0.872009 0.348190 0.883458
+24 10 28 0.881027 0.384048 0.899207
+24 10 29 0.889396 0.417539 0.913915
+24 10 30 0.895314 0.442089 0.924888
+24 10 31 0.901068 0.466043 0.935612
+24 11 0 0.796041 0.147758 0.000000
+24 11 1 0.796888 0.150073 0.000000
+24 11 2 0.797755 0.152504 0.000000
+24 11 3 0.798937 0.156659 0.000000
+24 11 4 0.800215 0.161258 0.000000
+24 11 5 0.802156 0.168962 0.000000
+24 11 6 0.804594 0.176042 0.000000
+24 11 7 0.809184 0.180419 0.000000
+24 11 8 0.813600 0.185354 0.000000
+24 11 9 0.817489 0.191966 0.023567
+24 11 10 0.821081 0.198884 0.129328
+24 11 11 0.824018 0.206476 0.199073
+24 11 12 0.826656 0.214187 0.267163
+24 11 13 0.828796 0.222097 0.332496
+24 11 14 0.831047 0.228749 0.396925
+24 11 15 0.833442 0.233785 0.460194
+24 11 16 0.835671 0.239134 0.519570
+24 11 17 0.837734 0.244797 0.575055
+24 11 18 0.840086 0.248749 0.626350
+24 11 19 0.842661 0.251371 0.674386
+24 11 20 0.845030 0.255241 0.715926
+24 11 21 0.847274 0.259859 0.753566
+24 11 22 0.850141 0.266392 0.784837
+24 11 23 0.853290 0.273795 0.813213
+24 11 24 0.858497 0.293216 0.836027
+24 11 25 0.864390 0.316642 0.856987
+24 11 26 0.874172 0.357491 0.877370
+24 11 27 0.884852 0.402362 0.897621
+24 11 28 0.892284 0.434566 0.911870
+24 11 29 0.899253 0.464960 0.925262
+24 11 30 0.904376 0.488196 0.935536
+24 11 31 0.909377 0.510956 0.945602
+24 12 0 0.822966 0.209930 0.000000
+24 12 1 0.823859 0.212913 0.000000
+24 12 2 0.824768 0.215967 0.000000
+24 12 3 0.825904 0.220087 0.000000
+24 12 4 0.827127 0.224625 0.000000
+24 12 5 0.828959 0.232093 0.000000
+24 12 6 0.831284 0.238948 0.000000
+24 12 7 0.835740 0.243143 0.000000
+24 12 8 0.840008 0.248409 0.000000
+24 12 9 0.843713 0.256890 0.020207
+24 12 10 0.847021 0.265368 0.125672
+24 12 11 0.849457 0.273840 0.200380
+24 12 12 0.851618 0.282453 0.272604
+24 12 13 0.853319 0.291303 0.340687
+24 12 14 0.855119 0.298972 0.407740
+24 12 15 0.857046 0.305123 0.473470
+24 12 16 0.858826 0.311586 0.534780
+24 12 17 0.860458 0.318361 0.591671
+24 12 18 0.862370 0.323515 0.644220
+24 12 19 0.864499 0.327407 0.693393
+24 12 20 0.866337 0.331776 0.735674
+24 12 21 0.868000 0.336432 0.773821
+24 12 22 0.870193 0.342031 0.805190
+24 12 23 0.872627 0.348058 0.833479
+24 12 24 0.876947 0.365448 0.855584
+24 12 25 0.881896 0.386626 0.875628
+24 12 26 0.889567 0.421687 0.893939
+24 12 27 0.897868 0.459952 0.911849
+24 12 28 0.903881 0.488481 0.924766
+24 12 29 0.909568 0.515619 0.936969
+24 12 30 0.913857 0.536892 0.946453
+24 12 31 0.918053 0.557774 0.955755
+24 13 0 0.851022 0.269792 0.000000
+24 13 1 0.851862 0.272848 0.000000
+24 13 2 0.852718 0.275970 0.000000
+24 13 3 0.853820 0.280089 0.000000
+24 13 4 0.855002 0.284627 0.000000
+24 13 5 0.856747 0.292096 0.000000
+24 13 6 0.858969 0.299958 0.000000
+24 13 7 0.863259 0.309524 0.000000
+24 13 8 0.867279 0.318757 0.000000
+24 13 9 0.870493 0.326993 0.011715
+24 13 10 0.873365 0.335937 0.114950
+24 13 11 0.875484 0.346441 0.197472
+24 13 12 0.877152 0.356501 0.275918
+24 13 13 0.878065 0.365820 0.347574
+24 13 14 0.879284 0.374437 0.417368
+24 13 15 0.880895 0.382150 0.484769
+24 13 16 0.882133 0.389480 0.548054
+24 13 17 0.882997 0.396428 0.607222
+24 13 18 0.884346 0.402260 0.661252
+24 13 19 0.886071 0.407222 0.711286
+24 13 20 0.887266 0.411605 0.754387
+24 13 21 0.888141 0.415639 0.793329
+24 13 22 0.889556 0.421148 0.824504
+24 13 23 0.891216 0.427326 0.852150
+24 13 24 0.894464 0.442075 0.873600
+24 13 25 0.898241 0.459680 0.892986
+24 13 26 0.904429 0.489993 0.909875
+24 13 27 0.911174 0.523238 0.926188
+24 13 28 0.916044 0.548059 0.938050
+24 13 29 0.920647 0.571676 0.949277
+24 13 30 0.924035 0.589902 0.957818
+24 13 31 0.927341 0.607770 0.966180
+24 14 0 0.880198 0.337338 0.000000
+24 14 1 0.880869 0.340311 0.000000
+24 14 2 0.881552 0.343347 0.000000
+24 14 3 0.882405 0.347318 0.000000
+24 14 4 0.883318 0.351695 0.000000
+24 14 5 0.884645 0.358917 0.000000
+24 14 6 0.886487 0.367017 0.000000
+24 14 7 0.890558 0.378923 0.000000
+24 14 8 0.894315 0.390105 0.000000
+24 14 9 0.897129 0.399115 0.000000
+24 14 10 0.899565 0.409087 0.068835
+24 14 11 0.901171 0.421180 0.179841
+24 14 12 0.902256 0.432480 0.277415
+24 14 13 0.902473 0.442460 0.352602
+24 14 14 0.903022 0.451912 0.425305
+24 14 15 0.903995 0.460686 0.494814
+24 14 16 0.904541 0.468513 0.559937
+24 14 17 0.904658 0.475391 0.620674
+24 14 18 0.905380 0.481666 0.676137
+24 14 19 0.906572 0.487471 0.727496
+24 14 20 0.907131 0.491800 0.771368
+24 14 21 0.907310 0.495245 0.810748
+24 14 22 0.908073 0.500295 0.842185
+24 14 23 0.909100 0.506074 0.870013
+24 14 24 0.911420 0.518520 0.891039
+24 14 25 0.914170 0.533189 0.909799
+24 14 26 0.918925 0.558933 0.925205
+24 14 27 0.924144 0.587235 0.939837
+24 14 28 0.927800 0.608165 0.950424
+24 14 29 0.931234 0.628042 0.960434
+24 14 30 0.933740 0.643451 0.968018
+24 14 31 0.936184 0.658562 0.975439
+24 15 0 0.910814 0.414764 0.000000
+24 15 1 0.911169 0.417455 0.000000
+24 15 2 0.911523 0.420205 0.000000
+24 15 3 0.911851 0.423836 0.000000
+24 15 4 0.912199 0.427846 0.000000
+24 15 5 0.912685 0.434503 0.000000
+24 15 6 0.913790 0.441854 0.000000
+24 15 7 0.917576 0.452204 0.000000
+24 15 8 0.921048 0.462740 0.000000
+24 15 9 0.923579 0.473833 0.000000
+24 15 10 0.925582 0.485556 0.000000
+24 15 11 0.926420 0.498668 0.143282
+24 15 12 0.926808 0.510944 0.276575
+24 15 13 0.926446 0.521828 0.355240
+24 15 14 0.926209 0.531971 0.431068
+24 15 15 0.926133 0.541164 0.503246
+24 15 16 0.925793 0.549009 0.570032
+24 15 17 0.925190 0.555505 0.631428
+24 15 18 0.925204 0.561921 0.688260
+24 15 19 0.925696 0.568275 0.741542
+24 15 20 0.925631 0.572468 0.786122
+24 15 21 0.925231 0.575363 0.825480
+24 15 22 0.925502 0.579480 0.857766
+24 15 23 0.926078 0.584153 0.886837
+24 15 24 0.927653 0.594732 0.907736
+24 15 25 0.929562 0.607281 0.925910
+24 15 26 0.932951 0.628690 0.939755
+24 15 27 0.936681 0.652145 0.952600
+24 15 28 0.939033 0.668950 0.961630
+24 15 29 0.941188 0.684805 0.970114
+24 15 30 0.942838 0.697691 0.976721
+24 15 31 0.944455 0.710379 0.983202
+24 16 0 0.937243 0.482350 0.000000
+24 16 1 0.937450 0.485128 0.000000
+24 16 2 0.937649 0.487968 0.000000
+24 16 3 0.937742 0.491740 0.000000
+24 16 4 0.937840 0.495908 0.000000
+24 16 5 0.937976 0.502848 0.000000
+24 16 6 0.938692 0.510394 0.000000
+24 16 7 0.941922 0.520570 0.000000
+24 16 8 0.944854 0.531290 0.000000
+24 16 9 0.946894 0.543642 0.000000
+24 16 10 0.948348 0.556487 0.000000
+24 16 11 0.948513 0.570419 0.122102
+24 16 12 0.948198 0.583457 0.272727
+24 16 13 0.947082 0.595007 0.355407
+24 16 14 0.946046 0.605526 0.434425
+24 16 15 0.945111 0.614722 0.508737
+24 16 16 0.944001 0.622769 0.577315
+24 16 17 0.942715 0.629667 0.640160
+24 16 18 0.942064 0.636339 0.698251
+24 16 19 0.941907 0.642834 0.752644
+24 16 20 0.941314 0.647079 0.798010
+24 16 21 0.940459 0.649974 0.837961
+24 16 22 0.940271 0.653517 0.870763
+24 16 23 0.940385 0.657354 0.900315
+24 16 24 0.941280 0.666111 0.921071
+24 16 25 0.942435 0.676507 0.938895
+24 16 26 0.944700 0.694031 0.951657
+24 16 27 0.947223 0.713200 0.963252
+24 16 28 0.948596 0.726533 0.971210
+24 16 29 0.949805 0.739033 0.978650
+24 16 30 0.950822 0.749753 0.984557
+24 16 31 0.951826 0.760354 0.990362
+24 17 0 0.959484 0.540096 0.000000
+24 17 1 0.959711 0.543329 0.000000
+24 17 2 0.959932 0.546634 0.000000
+24 17 3 0.960079 0.551028 0.000000
+24 17 4 0.960241 0.555881 0.000000
+24 17 5 0.960518 0.563949 0.000000
+24 17 6 0.961194 0.572639 0.000000
+24 17 7 0.963596 0.584022 0.000000
+24 17 8 0.965733 0.595756 0.000000
+24 17 9 0.967073 0.608541 0.000000
+24 17 10 0.967865 0.621879 0.000000
+24 17 11 0.967451 0.636433 0.116303
+24 17 12 0.966426 0.650020 0.265871
+24 17 13 0.964381 0.661997 0.353100
+24 17 14 0.962531 0.672576 0.435377
+24 17 15 0.960930 0.681360 0.511287
+24 17 16 0.959163 0.689794 0.581785
+24 17 17 0.957231 0.697878 0.646872
+24 17 18 0.955960 0.704918 0.706110
+24 17 19 0.955205 0.711146 0.760800
+24 17 20 0.954181 0.715634 0.807033
+24 17 21 0.952996 0.719078 0.848191
+24 17 22 0.952380 0.722405 0.881176
+24 17 23 0.952023 0.725678 0.910446
+24 17 24 0.952300 0.732656 0.931044
+24 17 25 0.952789 0.740868 0.948753
+24 17 26 0.954175 0.754957 0.960913
+24 17 27 0.955768 0.770401 0.971791
+24 17 28 0.956489 0.780915 0.979167
+24 17 29 0.957085 0.790724 0.986042
+24 17 30 0.957691 0.799635 0.991528
+24 17 31 0.958297 0.808487 0.996920
+24 18 0 0.980359 0.597383 0.000000
+24 18 1 0.980357 0.600535 0.000000
+24 18 2 0.980346 0.603757 0.000000
+24 18 3 0.980228 0.608029 0.000000
+24 18 4 0.980106 0.612753 0.000000
+24 18 5 0.979953 0.620648 0.000000
+24 18 6 0.980244 0.629420 0.000000
+24 18 7 0.982457 0.641993 0.000000
+24 18 8 0.984267 0.654758 0.000000
+24 18 9 0.984866 0.668100 0.000000
+24 18 10 0.984918 0.681939 0.000000
+24 18 11 0.983770 0.696874 0.109797
+24 18 12 0.982018 0.710671 0.257875
+24 18 13 0.979261 0.722571 0.349389
+24 18 14 0.976710 0.733325 0.434952
+24 18 15 0.974423 0.742607 0.512863
+24 18 16 0.972004 0.751241 0.585014
+24 18 17 0.969452 0.759226 0.651407
+24 18 18 0.967658 0.766486 0.711791
+24 18 19 0.966455 0.773183 0.767502
+24 18 20 0.965019 0.777750 0.814374
+24 18 21 0.963444 0.781041 0.855942
+24 18 22 0.962497 0.784311 0.889342
+24 18 23 0.961835 0.787573 0.919030
+24 18 24 0.961669 0.793148 0.939497
+24 18 25 0.961669 0.799494 0.956891
+24 18 26 0.962394 0.810276 0.968462
+24 18 27 0.963285 0.822082 0.978690
+24 18 28 0.963555 0.830370 0.985647
+24 18 29 0.963735 0.838156 0.992137
+24 18 30 0.963939 0.845113 0.997201
+24 18 31 0.964144 0.852015 1.002169
+24 19 0 1.000172 0.654313 0.000000
+24 19 1 0.999746 0.656967 0.000000
+24 19 2 0.999307 0.659679 0.000000
+24 19 3 0.998678 0.663250 0.000000
+24 19 4 0.997999 0.667213 0.000000
+24 19 5 0.996971 0.673922 0.000000
+24 19 6 0.996608 0.681951 0.000000
+24 19 7 0.999129 0.695701 0.000000
+24 19 8 1.000976 0.709512 0.000000
+24 19 9 1.000801 0.723506 0.000000
+24 19 10 1.000055 0.737854 0.000000
+24 19 11 0.998051 0.752983 0.102744
+24 19 12 0.995560 0.766725 0.248992
+24 19 13 0.992258 0.778154 0.344585
+24 19 14 0.989094 0.789173 0.433455
+24 19 15 0.986107 0.799661 0.513680
+24 19 16 0.983038 0.808350 0.587279
+24 19 17 0.979888 0.815237 0.654251
+24 19 18 0.977647 0.822602 0.715779
+24 19 19 0.976113 0.830339 0.773072
+24 19 20 0.974280 0.834859 0.820407
+24 19 21 0.972267 0.837449 0.861766
+24 19 22 0.971063 0.840788 0.895762
+24 19 23 0.970226 0.844468 0.926411
+24 19 24 0.969754 0.848933 0.946766
+24 19 25 0.969404 0.853660 0.963690
+24 19 26 0.969636 0.861235 0.974685
+24 19 27 0.970003 0.869468 0.984312
+24 19 28 0.969977 0.875994 0.990979
+24 19 29 0.969895 0.882275 0.997224
+24 19 30 0.969703 0.887165 1.001866
+24 19 31 0.969504 0.891962 1.006400
+24 20 0 1.013513 0.695358 0.000000
+24 20 1 1.013083 0.698322 0.000000
+24 20 2 1.012643 0.701351 0.000000
+24 20 3 1.012054 0.705332 0.000000
+24 20 4 1.011407 0.709735 0.000000
+24 20 5 1.010357 0.717093 0.000000
+24 20 6 1.009860 0.725626 0.000000
+24 20 7 1.011757 0.739248 0.000000
+24 20 8 1.012980 0.753070 0.000000
+24 20 9 1.012178 0.767488 0.000000
+24 20 10 1.010800 0.782044 0.000000
+24 20 11 1.008156 0.796903 0.097660
+24 20 12 1.005099 0.810599 0.242789
+24 20 13 1.001352 0.822358 0.341851
+24 20 14 0.997737 0.833507 0.433376
+24 20 15 0.994290 0.843871 0.515210
+24 20 16 0.990770 0.852821 0.590216
+24 20 17 0.987176 0.860358 0.658395
+24 20 18 0.984517 0.867770 0.720559
+24 20 19 0.982587 0.875083 0.778044
+24 20 20 0.980502 0.879687 0.825676
+24 20 21 0.978325 0.882664 0.867395
+24 20 22 0.976926 0.885891 0.901247
+24 20 23 0.975880 0.889231 0.931525
+24 20 24 0.975135 0.892739 0.951655
+24 20 25 0.974489 0.896303 0.968402
+24 20 26 0.974372 0.901415 0.979105
+24 20 27 0.974378 0.906885 0.988412
+24 20 28 0.974059 0.911409 0.994887
+24 20 29 0.973693 0.915797 1.000958
+24 20 30 0.973342 0.919587 1.005381
+24 20 31 0.972992 0.923337 1.009695
+24 21 0 1.022971 0.726872 0.000000
+24 21 1 1.022789 0.730632 0.000000
+24 21 2 1.022605 0.734472 0.000000
+24 21 3 1.022386 0.739530 0.000000
+24 21 4 1.022124 0.745094 0.000000
+24 21 5 1.021566 0.754202 0.000000
+24 21 6 1.021246 0.763986 0.000000
+24 21 7 1.021960 0.776698 0.000000
+24 21 8 1.022161 0.789910 0.000000
+24 21 9 1.020819 0.804616 0.000000
+24 21 10 1.018911 0.819199 0.000000
+24 21 11 1.015756 0.833508 0.093759
+24 21 12 1.012235 0.847166 0.238193
+24 21 13 1.008105 0.859734 0.340358
+24 21 14 1.004135 0.870934 0.434147
+24 21 15 1.000372 0.880372 0.517167
+24 21 16 0.996519 0.889709 0.593558
+24 21 17 0.992575 0.898945 0.663320
+24 21 18 0.989517 0.906368 0.725815
+24 21 19 0.987149 0.912380 0.782658
+24 21 20 0.984900 0.917146 0.830486
+24 21 21 0.982723 0.921163 0.872905
+24 21 22 0.981166 0.924169 0.906172
+24 21 23 0.979892 0.926715 0.935279
+24 21 24 0.978893 0.929358 0.955116
+24 21 25 0.977984 0.932033 0.971863
+24 21 26 0.977605 0.935128 0.982442
+24 21 27 0.977348 0.938320 0.991598
+24 21 28 0.976737 0.940698 0.997941
+24 21 29 0.976074 0.942961 1.003881
+24 21 30 0.975705 0.946231 1.008208
+24 21 31 0.975355 0.949569 1.012427
+24 22 0 1.031251 0.754117 0.000000
+24 22 1 1.030977 0.757916 0.000000
+24 22 2 1.030693 0.761792 0.000000
+24 22 3 1.030275 0.766834 0.000000
+24 22 4 1.029786 0.772364 0.000000
+24 22 5 1.028803 0.781308 0.000000
+24 22 6 1.028169 0.791104 0.000000
+24 22 7 1.029049 0.804596 0.000000
+24 22 8 1.029229 0.818304 0.000000
+24 22 9 1.027308 0.832658 0.000000
+24 22 10 1.024894 0.847063 0.000000
+24 22 11 1.021399 0.861579 0.094921
+24 22 12 1.017553 0.875275 0.240455
+24 22 13 1.013122 0.887605 0.344078
+24 22 14 1.008956 0.898945 0.439160
+24 22 15 1.005131 0.909014 0.523261
+24 22 16 1.001114 0.918400 0.599961
+24 22 17 0.996903 0.927103 0.669258
+24 22 18 0.993563 0.934299 0.731453
+24 22 19 0.990901 0.940322 0.788124
+24 22 20 0.988429 0.944953 0.835490
+24 22 21 0.986071 0.948749 0.877274
+24 22 22 0.984476 0.951809 0.910278
+24 22 23 0.983227 0.954534 0.939292
+24 22 24 0.982128 0.956763 0.958767
+24 22 25 0.981077 0.958827 0.975062
+24 22 26 0.980526 0.960934 0.985308
+24 22 27 0.980090 0.963051 0.994157
+24 22 28 0.979375 0.964545 1.000313
+24 22 29 0.978620 0.965949 1.006083
+24 22 30 0.978063 0.968267 1.010335
+24 22 31 0.977518 0.970646 1.014485
+24 23 0 1.038997 0.779420 0.000000
+24 23 1 1.038474 0.782916 0.000000
+24 23 2 1.037929 0.786476 0.000000
+24 23 3 1.037053 0.791005 0.000000
+24 23 4 1.036059 0.795958 0.000000
+24 23 5 1.034234 0.803867 0.000000
+24 23 6 1.033063 0.813113 0.000000
+24 23 7 1.034722 0.828152 0.000000
+24 23 8 1.035337 0.842858 0.000000
+24 23 9 1.032817 0.856570 0.000000
+24 23 10 1.029911 0.870704 0.000000
+24 23 11 1.026153 0.885769 0.098384
+24 23 12 1.022044 0.899540 0.245834
+24 23 13 1.017351 0.911154 0.350166
+24 23 14 1.013061 0.922677 0.446100
+24 23 15 1.009289 0.934084 0.531235
+24 23 16 1.005184 0.943365 0.607754
+24 23 17 1.000745 0.950521 0.675657
+24 23 18 0.997176 0.957381 0.737265
+24 23 19 0.994285 0.964011 0.793979
+24 23 20 0.991563 0.968373 0.840583
+24 23 21 0.988943 0.971375 0.881123
+24 23 22 0.987363 0.974613 0.914012
+24 23 23 0.986255 0.977960 0.943424
+24 23 24 0.985125 0.979981 0.962504
+24 23 25 0.983988 0.981560 0.978141
+24 23 26 0.983305 0.983147 0.987958
+24 23 27 0.982728 0.984736 0.996431
+24 23 28 0.981995 0.985917 1.002375
+24 23 29 0.981240 0.987039 1.007958
+24 23 30 0.980418 0.988208 1.012143
+24 23 31 0.979592 0.989379 1.016236
+24 24 0 1.044006 0.797980 0.000000
+24 24 1 1.043370 0.801937 0.000000
+24 24 2 1.042709 0.805949 0.000000
+24 24 3 1.041668 0.810789 0.000000
+24 24 4 1.040503 0.815986 0.000000
+24 24 5 1.038468 0.823680 0.000000
+24 24 6 1.036920 0.832601 0.000000
+24 24 7 1.037483 0.846839 0.000000
+24 24 8 1.037280 0.860916 0.000000
+24 24 9 1.034783 0.874510 0.000000
+24 24 10 1.031784 0.888434 0.000000
+24 24 11 1.027683 0.903083 0.114793
+24 24 12 1.023335 0.916533 0.268971
+24 24 13 1.018576 0.927984 0.370409
+24 24 14 1.014242 0.939290 0.463852
+24 24 15 1.010454 0.950407 0.547012
+24 24 16 1.006405 0.959478 0.621558
+24 24 17 1.002095 0.966502 0.687490
+24 24 18 0.998551 0.973176 0.747491
+24 24 19 0.995603 0.979577 0.802880
+24 24 20 0.992793 0.983818 0.848025
+24 24 21 0.990067 0.986762 0.887023
+24 24 22 0.988395 0.989750 0.918745
+24 24 23 0.987203 0.992759 0.947159
+24 24 24 0.986065 0.994572 0.965635
+24 24 25 0.984945 0.995986 0.980798
+24 24 26 0.984238 0.997378 0.990278
+24 24 27 0.983625 0.998765 0.998446
+24 24 28 0.982923 0.999811 1.004248
+24 24 29 0.982209 1.000808 1.009713
+24 24 30 0.981375 1.001634 1.013786
+24 24 31 0.980532 1.002450 1.017767
+24 25 0 1.048103 0.814293 0.000000
+24 25 1 1.047400 0.818965 0.000000
+24 25 2 1.046670 0.823685 0.000000
+24 25 3 1.045562 0.829111 0.000000
+24 25 4 1.044337 0.834827 0.000000
+24 25 5 1.042302 0.842579 0.000000
+24 25 6 1.040432 0.851250 0.000000
+24 25 7 1.039272 0.863905 0.000000
+24 25 8 1.037835 0.876808 0.000000
+24 25 9 1.035566 0.890460 0.000000
+24 25 10 1.032609 0.904193 0.000000
+24 25 11 1.028138 0.918105 0.135516
+24 25 12 1.023559 0.931103 0.298027
+24 25 13 1.018800 0.942575 0.395372
+24 25 14 1.014449 0.953528 0.485207
+24 25 15 1.010622 0.963815 0.565390
+24 25 16 1.006677 0.972640 0.637365
+24 25 17 1.002616 0.980004 0.701135
+24 25 18 0.999180 0.986542 0.759189
+24 25 19 0.996232 0.992437 0.812797
+24 25 20 0.993389 0.996605 0.856248
+24 25 21 0.990609 0.999737 0.893606
+24 25 22 0.988810 1.002332 0.923810
+24 25 23 0.987456 1.004682 0.950763
+24 25 24 0.986318 1.006287 0.968563
+24 25 25 0.985253 1.007644 0.983314
+24 25 26 0.984555 1.008948 0.992487
+24 25 27 0.983942 1.010241 1.000373
+24 25 28 0.983287 1.011212 1.006058
+24 25 29 0.982626 1.012136 1.011429
+24 25 30 0.981865 1.012890 1.015374
+24 25 31 0.981096 1.013632 1.019224
+24 26 0 1.049201 0.823921 0.000000
+24 26 1 1.048484 0.828774 0.000000
+24 26 2 1.047745 0.833697 0.000000
+24 26 3 1.046667 0.839662 0.000000
+24 26 4 1.045470 0.846036 0.000000
+24 26 5 1.043435 0.855279 0.000000
+24 26 6 1.041490 0.865107 0.000000
+24 26 7 1.039937 0.877465 0.000000
+24 26 8 1.038062 0.890034 0.000000
+24 26 9 1.035223 0.903238 0.000000
+24 26 10 1.031888 0.916453 0.000000
+24 26 11 1.027463 0.929693 0.160357
+24 26 12 1.022886 0.942128 0.333091
+24 26 13 1.018056 0.953222 0.426154
+24 26 14 1.013568 0.963627 0.511499
+24 26 15 1.009520 0.973147 0.586921
+24 26 16 1.005666 0.981568 0.655107
+24 26 17 1.002007 0.988889 0.716056
+24 26 18 0.998852 0.995286 0.772198
+24 26 19 0.996089 1.000962 0.824603
+24 26 20 0.993433 1.005100 0.866074
+24 26 21 0.990840 1.008314 0.900985
+24 26 22 0.989060 1.010797 0.929533
+24 26 23 0.987648 1.012948 0.955189
+24 26 24 0.986504 1.014460 0.972515
+24 26 25 0.985448 1.015759 0.987065
+24 26 26 0.984544 1.016704 0.995226
+24 26 27 0.983674 1.017567 1.001914
+24 26 28 0.982972 1.018431 1.007341
+24 26 29 0.982293 1.019295 1.012588
+24 26 30 0.981610 1.020032 1.016459
+24 26 31 0.980926 1.020761 1.020237
+24 27 0 1.049605 0.832007 0.000000
+24 27 1 1.048889 0.836918 0.000000
+24 27 2 1.048153 0.841928 0.000000
+24 27 3 1.047129 0.848420 0.000000
+24 27 4 1.045978 0.855484 0.000000
+24 27 5 1.043944 0.866550 0.000000
+24 27 6 1.041982 0.877859 0.000000
+24 27 7 1.040341 0.890216 0.000000
+24 27 8 1.038212 0.902645 0.000000
+24 27 9 1.034620 0.915285 0.000000
+24 27 10 1.030811 0.927906 0.000000
+24 27 11 1.026527 0.940487 0.186148
+24 27 12 1.022005 0.952335 0.369542
+24 27 13 1.017087 0.962959 0.458280
+24 27 14 1.012435 0.972771 0.538929
+24 27 15 1.008125 0.981538 0.609180
+24 27 16 1.004359 0.989518 0.673294
+24 27 17 1.001137 0.996709 0.731271
+24 27 18 0.998302 1.002963 0.785511
+24 27 19 0.995768 1.008488 0.836845
+24 27 20 0.993349 1.012605 0.876269
+24 27 21 0.991000 1.015876 0.908548
+24 27 22 0.989272 1.018313 0.935408
+24 27 23 0.987827 1.020370 0.959805
+24 27 24 0.986673 1.021815 0.976703
+24 27 25 0.985618 1.023056 0.991101
+24 27 26 0.984456 1.023579 0.998088
+24 27 27 0.983271 1.023936 1.003365
+24 27 28 0.982499 1.024686 1.008502
+24 27 29 0.981787 1.025493 1.013619
+24 27 30 0.981183 1.026226 1.017427
+24 27 31 0.980587 1.026955 1.021148
+24 28 0 1.050225 0.837738 0.000000
+24 28 1 1.049509 0.842606 0.000000
+24 28 2 1.048771 0.847582 0.000000
+24 28 3 1.047706 0.854191 0.000000
+24 28 4 1.046521 0.861416 0.000000
+24 28 5 1.044486 0.872957 0.000000
+24 28 6 1.042461 0.884857 0.000000
+24 28 7 1.040480 0.898316 0.000000
+24 28 8 1.037975 0.911512 0.000000
+24 28 9 1.033892 0.923917 0.000000
+24 28 10 1.029777 0.936187 0.023491
+24 28 11 1.025586 0.948160 0.232410
+24 28 12 1.021073 0.959494 0.395183
+24 28 13 1.016021 0.969763 0.481045
+24 28 14 1.011279 0.979167 0.558614
+24 28 15 1.006936 0.987461 0.625523
+24 28 16 1.003166 0.995139 0.687311
+24 28 17 0.999969 1.002199 0.743980
+24 28 18 0.997367 1.008357 0.796543
+24 28 19 0.995227 1.013813 0.845915
+24 28 20 0.993015 1.017877 0.884141
+24 28 21 0.990760 1.021105 0.915679
+24 28 22 0.989079 1.023498 0.941247
+24 28 23 0.987659 1.025511 0.964101
+24 28 24 0.986500 1.026916 0.980120
+24 28 25 0.985427 1.028118 0.993859
+24 28 26 0.984244 1.028567 1.000580
+24 28 27 0.983036 1.028843 1.005680
+24 28 28 0.982232 1.029332 1.010105
+24 28 29 0.981486 1.029853 1.014434
+24 28 30 0.980819 1.030491 1.018186
+24 28 31 0.980157 1.031138 1.021900
+24 29 0 1.050876 0.843132 0.000000
+24 29 1 1.050160 0.847942 0.000000
+24 29 2 1.049418 0.852869 0.000000
+24 29 3 1.048300 0.859535 0.000000
+24 29 4 1.047068 0.866845 0.000000
+24 29 5 1.045033 0.878668 0.000000
+24 29 6 1.042938 0.891034 0.000000
+24 29 7 1.040582 0.905752 0.000000
+24 29 8 1.037681 0.919845 0.000000
+24 29 9 1.033147 0.932061 0.000000
+24 29 10 1.028748 0.944014 0.111220
+24 29 11 1.024646 0.955387 0.281597
+24 29 12 1.020134 0.966219 0.419280
+24 29 13 1.014941 0.976147 0.502472
+24 29 14 1.010120 0.985171 0.577193
+24 29 15 1.005776 0.993031 0.641020
+24 29 16 1.001989 1.000427 0.700732
+24 29 17 0.998759 1.007357 0.756330
+24 29 18 0.996377 1.013425 0.807250
+24 29 19 0.994655 1.018824 0.854532
+24 29 20 0.992646 1.022830 0.891680
+24 29 21 0.990464 1.026000 0.922748
+24 29 22 0.988829 1.028350 0.947080
+24 29 23 0.987443 1.030327 0.968352
+24 29 24 0.986277 1.031696 0.983426
+24 29 25 0.985184 1.032861 0.996435
+24 29 26 0.984014 1.033286 1.003018
+24 29 27 0.982826 1.033540 1.008119
+24 29 28 0.981995 1.033749 1.011772
+24 29 29 0.981214 1.033951 1.015217
+24 29 30 0.980463 1.034481 1.018914
+24 29 31 0.979714 1.035034 1.022628
+24 30 0 1.051430 0.847226 0.000000
+24 30 1 1.050682 0.852033 0.000000
+24 30 2 1.049910 0.856956 0.000000
+24 30 3 1.048789 0.863626 0.000000
+24 30 4 1.047553 0.870935 0.000000
+24 30 5 1.045518 0.882722 0.000000
+24 30 6 1.043334 0.895281 0.000000
+24 30 7 1.040502 0.911189 0.000000
+24 30 8 1.037193 0.926106 0.000000
+24 30 9 1.032453 0.938046 0.053275
+24 30 10 1.027909 0.949726 0.194922
+24 30 11 1.023793 0.960831 0.327214
+24 30 12 1.019265 0.971408 0.440080
+24 30 13 1.014050 0.981105 0.520570
+24 30 14 1.009208 0.989871 0.592576
+24 30 15 1.004846 0.997440 0.653674
+24 30 16 1.001017 1.004597 0.711469
+24 30 17 0.997721 1.011343 0.765962
+24 30 18 0.995481 1.017249 0.815441
+24 30 19 0.994063 1.022501 0.861020
+24 30 20 0.992222 1.026450 0.897325
+24 30 21 0.990127 1.029617 0.928065
+24 30 22 0.988509 1.031927 0.951463
+24 30 23 0.987106 1.033848 0.971523
+24 30 24 0.985949 1.035201 0.985864
+24 30 25 0.984873 1.036364 0.998298
+24 30 26 0.983733 1.036760 1.004845
+24 30 27 0.982578 1.036978 1.010034
+24 30 28 0.981721 1.037165 1.013602
+24 30 29 0.980907 1.037347 1.016939
+24 30 30 0.980166 1.037706 1.020019
+24 30 31 0.979430 1.038076 1.023082
+24 31 0 1.051977 0.851234 0.000000
+24 31 1 1.051195 0.856041 0.000000
+24 31 2 1.050391 0.860964 0.000000
+24 31 3 1.049270 0.867633 0.000000
+24 31 4 1.048034 0.874936 0.000000
+24 31 5 1.046000 0.886665 0.000000
+24 31 6 1.043725 0.899400 0.000000
+24 31 7 1.040410 0.916494 0.000000
+24 31 8 1.036691 0.932229 0.000000
+24 31 9 1.031763 0.943887 0.114776
+24 31 10 1.027082 0.955296 0.278355
+24 31 11 1.022947 0.966156 0.372593
+24 31 12 1.018401 0.976495 0.460661
+24 31 13 1.013172 0.985968 0.538445
+24 31 14 1.008313 0.994484 0.607746
+24 31 15 1.003932 1.001770 0.666139
+24 31 16 1.000059 1.008693 0.722028
+24 31 17 0.996695 1.015251 0.775414
+24 31 18 0.994592 1.020989 0.823465
+24 31 19 0.993471 1.026089 0.867367
+24 31 20 0.991796 1.029982 0.902843
+24 31 21 0.989788 1.033149 0.933265
+24 31 22 0.988183 1.035419 0.955748
+24 31 23 0.986761 1.037282 0.974623
+24 31 24 0.985613 1.038621 0.988244
+24 31 25 0.984558 1.039784 1.000114
+24 31 26 0.983449 1.040150 1.006632
+24 31 27 0.982327 1.040332 1.011915
+24 31 28 0.981445 1.040515 1.015444
+24 31 29 0.980597 1.040697 1.018723
+24 31 30 0.979873 1.040879 1.021148
+24 31 31 0.979156 1.041061 1.023516
+25 0 0 0.615444 0.000000 0.000000
+25 0 1 0.616089 0.000000 0.000000
+25 0 2 0.616736 0.000000 0.000000
+25 0 3 0.617397 0.000000 0.000000
+25 0 4 0.618085 0.000000 0.000000
+25 0 5 0.618949 0.000000 0.000000
+25 0 6 0.620071 0.000000 0.000000
+25 0 7 0.622308 0.000000 0.000000
+25 0 8 0.625304 0.000000 0.010484
+25 0 9 0.630577 0.000000 0.034659
+25 0 10 0.635162 0.000000 0.068156
+25 0 11 0.638230 0.000000 0.122159
+25 0 12 0.641369 0.000000 0.173167
+25 0 13 0.644623 0.000000 0.219184
+25 0 14 0.647818 0.000000 0.265942
+25 0 15 0.650936 0.000000 0.313651
+25 0 16 0.654361 0.000000 0.357973
+25 0 17 0.658091 0.000000 0.398908
+25 0 18 0.661831 0.000000 0.438817
+25 0 19 0.665578 0.000000 0.477930
+25 0 20 0.670364 0.000000 0.513182
+25 0 21 0.675774 0.000000 0.546119
+25 0 22 0.683143 0.000000 0.576074
+25 0 23 0.691403 0.000000 0.604674
+25 0 24 0.705817 0.000000 0.637483
+25 0 25 0.722282 0.000000 0.671694
+25 0 26 0.748502 0.000000 0.712285
+25 0 27 0.776974 0.000000 0.754347
+25 0 28 0.796261 0.000000 0.782876
+25 0 29 0.814236 0.000000 0.809473
+25 0 30 0.827441 0.056106 0.829083
+25 0 31 0.840329 0.149968 0.848228
+25 1 0 0.622719 0.000000 0.000000
+25 1 1 0.623443 0.000000 0.000000
+25 1 2 0.624164 0.000000 0.000000
+25 1 3 0.624826 0.000000 0.000000
+25 1 4 0.625523 0.000000 0.000000
+25 1 5 0.626466 0.000000 0.000000
+25 1 6 0.627652 0.000000 0.000000
+25 1 7 0.629889 0.000000 0.000000
+25 1 8 0.632884 0.000000 0.013662
+25 1 9 0.638148 0.000000 0.037876
+25 1 10 0.642729 0.000000 0.071546
+25 1 11 0.645806 0.000000 0.126019
+25 1 12 0.648950 0.000000 0.177607
+25 1 13 0.652205 0.000000 0.224386
+25 1 14 0.655434 0.000000 0.271810
+25 1 15 0.658631 0.000000 0.320066
+25 1 16 0.662051 0.000000 0.365050
+25 1 17 0.665695 0.000000 0.406764
+25 1 18 0.669445 0.000000 0.447110
+25 1 19 0.673280 0.000000 0.486392
+25 1 20 0.677990 0.000000 0.521843
+25 1 21 0.683224 0.000000 0.554995
+25 1 22 0.690310 0.000000 0.584870
+25 1 23 0.698237 0.000000 0.613254
+25 1 24 0.711267 0.000000 0.644196
+25 1 25 0.725999 0.000000 0.675991
+25 1 26 0.751830 0.000000 0.716128
+25 1 27 0.780223 0.000000 0.758190
+25 1 28 0.799569 0.000000 0.786802
+25 1 29 0.817622 0.000000 0.813492
+25 1 30 0.830833 0.069754 0.833029
+25 1 31 0.843720 0.163700 0.852089
+25 2 0 0.630141 0.000000 0.000000
+25 2 1 0.630941 0.000000 0.000000
+25 2 2 0.631732 0.000000 0.000000
+25 2 3 0.632404 0.000000 0.000000
+25 2 4 0.633119 0.000000 0.000000
+25 2 5 0.634136 0.000000 0.000000
+25 2 6 0.635382 0.000000 0.000000
+25 2 7 0.637619 0.000000 0.000000
+25 2 8 0.640610 0.000000 0.016132
+25 2 9 0.645861 0.000000 0.040845
+25 2 10 0.650438 0.000000 0.075006
+25 2 11 0.653528 0.000000 0.129956
+25 2 12 0.656680 0.000000 0.182133
+25 2 13 0.659935 0.000000 0.229691
+25 2 14 0.663199 0.000000 0.277795
+25 2 15 0.666476 0.000000 0.326601
+25 2 16 0.669894 0.000000 0.372263
+25 2 17 0.673454 0.000000 0.414781
+25 2 18 0.677212 0.000000 0.455574
+25 2 19 0.681124 0.000000 0.495026
+25 2 20 0.685757 0.000000 0.530683
+25 2 21 0.690822 0.000000 0.564062
+25 2 22 0.697621 0.000000 0.593850
+25 2 23 0.705208 0.000000 0.622007
+25 2 24 0.716911 0.000000 0.651163
+25 2 25 0.729985 0.000000 0.680651
+25 2 26 0.755357 0.000000 0.720237
+25 2 27 0.783566 0.000000 0.762154
+25 2 28 0.802950 0.000000 0.790820
+25 2 29 0.821073 0.000000 0.817593
+25 2 30 0.834288 0.083709 0.837065
+25 2 31 0.847175 0.177730 0.856050
+25 3 0 0.639774 0.000000 0.000000
+25 3 1 0.640582 0.000000 0.000000
+25 3 2 0.641391 0.000000 0.000000
+25 3 3 0.642230 0.000000 0.000000
+25 3 4 0.643090 0.000000 0.000000
+25 3 5 0.644099 0.000000 0.000000
+25 3 6 0.645338 0.000000 0.000000
+25 3 7 0.647575 0.000000 0.000000
+25 3 8 0.650544 0.000000 0.008010
+25 3 9 0.655707 0.000000 0.040095
+25 3 10 0.660251 0.000000 0.079504
+25 3 11 0.663429 0.000000 0.135027
+25 3 12 0.666636 0.000000 0.187954
+25 3 13 0.669890 0.000000 0.236555
+25 3 14 0.673193 0.000000 0.285522
+25 3 15 0.676557 0.000000 0.334959
+25 3 16 0.680011 0.000000 0.381519
+25 3 17 0.683554 0.000000 0.425201
+25 3 18 0.687265 0.000000 0.466599
+25 3 19 0.691106 0.000000 0.506221
+25 3 20 0.695658 0.000000 0.542194
+25 3 21 0.700636 0.000000 0.575976
+25 3 22 0.707107 0.000000 0.605607
+25 3 23 0.714256 0.000000 0.633352
+25 3 24 0.725461 0.000000 0.661924
+25 3 25 0.738019 0.000000 0.690772
+25 3 26 0.761878 0.000000 0.728344
+25 3 27 0.788346 0.000000 0.767928
+25 3 28 0.807443 0.000000 0.796228
+25 3 29 0.825487 0.009593 0.822916
+25 3 30 0.838697 0.102281 0.842454
+25 3 31 0.851584 0.196217 0.861515
+25 4 0 0.650282 0.000000 0.000000
+25 4 1 0.651096 0.000000 0.000000
+25 4 2 0.651921 0.000000 0.000000
+25 4 3 0.652916 0.000000 0.000000
+25 4 4 0.653911 0.000000 0.000000
+25 4 5 0.654914 0.000000 0.000000
+25 4 6 0.656147 0.000000 0.000000
+25 4 7 0.658384 0.000000 0.000000
+25 4 8 0.661334 0.000000 0.000000
+25 4 9 0.666421 0.000000 0.037360
+25 4 10 0.670936 0.000000 0.084504
+25 4 11 0.674192 0.000000 0.140575
+25 4 12 0.677447 0.000000 0.194274
+25 4 13 0.680699 0.000000 0.244023
+25 4 14 0.684035 0.000000 0.293923
+25 4 15 0.687476 0.000000 0.344019
+25 4 16 0.690950 0.000000 0.391575
+25 4 17 0.694457 0.000000 0.436594
+25 4 18 0.698129 0.000000 0.478667
+25 4 19 0.701931 0.000000 0.518451
+25 4 20 0.706399 0.000000 0.554770
+25 4 21 0.711268 0.000000 0.589010
+25 4 22 0.717403 0.000000 0.618464
+25 4 23 0.724115 0.000000 0.645743
+25 4 24 0.734856 0.000000 0.673760
+25 4 25 0.746939 0.000000 0.702024
+25 4 26 0.769116 0.000000 0.737360
+25 4 27 0.793622 0.000000 0.774328
+25 4 28 0.812394 0.000000 0.802214
+25 4 29 0.830347 0.029487 0.828803
+25 4 30 0.843551 0.122778 0.848388
+25 4 31 0.856438 0.216649 0.867506
+25 5 0 0.666917 0.000000 0.000000
+25 5 1 0.667722 0.000000 0.000000
+25 5 2 0.668545 0.000000 0.000000
+25 5 3 0.669618 0.000000 0.000000
+25 5 4 0.670684 0.000000 0.000000
+25 5 5 0.671694 0.000000 0.000000
+25 5 6 0.672935 0.000000 0.000000
+25 5 7 0.675172 0.000000 0.000000
+25 5 8 0.678122 0.000000 0.000000
+25 5 9 0.683209 0.000000 0.020734
+25 5 10 0.687727 0.000000 0.093016
+25 5 11 0.690991 0.000000 0.149453
+25 5 12 0.694244 0.000000 0.204088
+25 5 13 0.697480 0.000000 0.255717
+25 5 14 0.700810 0.000000 0.307045
+25 5 15 0.704260 0.000000 0.357987
+25 5 16 0.707650 0.000000 0.407236
+25 5 17 0.710982 0.000000 0.454792
+25 5 18 0.714676 0.000000 0.498035
+25 5 19 0.718653 0.000000 0.537922
+25 5 20 0.723023 0.000000 0.574802
+25 5 21 0.727629 0.000000 0.609879
+25 5 22 0.733381 0.000000 0.639020
+25 5 23 0.739656 0.000000 0.665461
+25 5 24 0.750155 0.000000 0.693122
+25 5 25 0.762064 0.000000 0.721188
+25 5 26 0.781363 0.000000 0.752744
+25 5 27 0.802369 0.000000 0.785105
+25 5 28 0.820550 0.000000 0.812243
+25 5 29 0.838328 0.062294 0.838635
+25 5 30 0.851521 0.156749 0.858136
+25 5 31 0.864408 0.250696 0.877178
+25 6 0 0.685630 0.000000 0.000000
+25 6 1 0.686449 0.000000 0.000000
+25 6 2 0.687286 0.000000 0.000000
+25 6 3 0.688409 0.000000 0.000000
+25 6 4 0.689520 0.000000 0.000000
+25 6 5 0.690553 0.000000 0.000000
+25 6 6 0.691818 0.000000 0.000000
+25 6 7 0.694096 0.000000 0.000000
+25 6 8 0.697073 0.000000 0.000000
+25 6 9 0.702151 0.000000 0.008885
+25 6 10 0.706665 0.000000 0.102513
+25 6 11 0.709939 0.000000 0.159275
+25 6 12 0.713199 0.000000 0.214891
+25 6 13 0.716434 0.000000 0.268598
+25 6 14 0.719745 0.000000 0.321566
+25 6 15 0.723153 0.000000 0.373587
+25 6 16 0.726465 0.000000 0.424546
+25 6 17 0.729682 0.000000 0.474444
+25 6 18 0.733388 0.000000 0.519065
+25 6 19 0.737472 0.000000 0.559582
+25 6 20 0.741749 0.000000 0.597090
+25 6 21 0.746141 0.000000 0.632793
+25 6 22 0.751521 0.000000 0.661874
+25 6 23 0.757349 0.000000 0.687945
+25 6 24 0.767416 0.000000 0.715018
+25 6 25 0.778895 0.000000 0.742424
+25 6 26 0.795791 0.000000 0.770814
+25 6 27 0.813937 0.000000 0.799432
+25 6 28 0.831125 0.000912 0.825285
+25 6 29 0.848177 0.110731 0.850742
+25 6 30 0.860899 0.200402 0.869595
+25 6 31 0.873332 0.288731 0.888008
+25 7 0 0.713353 0.000000 0.000000
+25 7 1 0.714275 0.000000 0.000000
+25 7 2 0.715206 0.000000 0.000000
+25 7 3 0.716250 0.000000 0.000000
+25 7 4 0.717302 0.000000 0.000000
+25 7 5 0.718413 0.000000 0.000000
+25 7 6 0.719783 0.000000 0.000000
+25 7 7 0.722275 0.000000 0.000000
+25 7 8 0.725401 0.000000 0.000000
+25 7 9 0.730428 0.000000 0.017737
+25 7 10 0.734913 0.000000 0.116278
+25 7 11 0.738204 0.000000 0.173179
+25 7 12 0.741500 0.000000 0.229982
+25 7 13 0.744806 0.000000 0.286622
+25 7 14 0.748042 0.000000 0.342153
+25 7 15 0.751187 0.000000 0.396260
+25 7 16 0.754443 0.000000 0.449006
+25 7 17 0.757810 0.000000 0.500390
+25 7 18 0.761477 0.000000 0.547301
+25 7 19 0.765378 0.000000 0.590732
+25 7 20 0.769586 0.000000 0.629151
+25 7 21 0.773979 0.000000 0.664563
+25 7 22 0.779026 0.000000 0.694689
+25 7 23 0.784372 0.000000 0.722414
+25 7 24 0.793170 0.000000 0.747898
+25 7 25 0.803119 0.000000 0.772635
+25 7 26 0.819664 0.033079 0.800525
+25 7 27 0.837730 0.079867 0.829142
+25 7 28 0.852184 0.151602 0.851383
+25 7 29 0.866122 0.226900 0.872713
+25 7 30 0.876378 0.286012 0.888471
+25 7 31 0.886389 0.344044 0.903857
+25 8 0 0.739656 0.000000 0.000000
+25 8 1 0.740652 0.000000 0.000000
+25 8 2 0.741651 0.000000 0.000000
+25 8 3 0.742682 0.000000 0.000000
+25 8 4 0.743746 0.000000 0.000000
+25 8 5 0.745048 0.000000 0.000000
+25 8 6 0.746626 0.000000 0.000000
+25 8 7 0.749402 0.000000 0.000000
+25 8 8 0.752710 0.000000 0.000000
+25 8 9 0.757613 0.000000 0.024244
+25 8 10 0.762017 0.000000 0.126790
+25 8 11 0.765321 0.000000 0.185058
+25 8 12 0.768605 0.000000 0.243716
+25 8 13 0.771856 0.000000 0.303023
+25 8 14 0.774965 0.000000 0.360967
+25 8 15 0.777892 0.000000 0.417159
+25 8 16 0.781051 0.000000 0.471609
+25 8 17 0.784442 0.000000 0.524320
+25 8 18 0.787983 0.000000 0.573133
+25 8 19 0.791639 0.000000 0.618915
+25 8 20 0.795644 0.000000 0.658226
+25 8 21 0.799860 0.000000 0.693654
+25 8 22 0.804496 0.000000 0.724557
+25 8 23 0.809324 0.000000 0.753404
+25 8 24 0.816953 0.000000 0.777650
+25 8 25 0.825516 0.076676 0.800361
+25 8 26 0.841362 0.154138 0.827358
+25 8 27 0.858888 0.227721 0.855343
+25 8 28 0.870964 0.278494 0.874444
+25 8 29 0.882262 0.326010 0.892277
+25 8 30 0.890447 0.360800 0.905423
+25 8 31 0.898425 0.394742 0.918257
+25 9 0 0.761700 0.000000 0.000000
+25 9 1 0.762680 0.000000 0.000000
+25 9 2 0.763674 0.000000 0.000000
+25 9 3 0.764888 0.000000 0.000000
+25 9 4 0.766179 0.002744 0.000000
+25 9 5 0.768006 0.008033 0.000000
+25 9 6 0.770103 0.013634 0.000000
+25 9 7 0.773370 0.020586 0.000000
+25 9 8 0.776961 0.026112 0.000000
+25 9 9 0.781523 0.027356 0.023713
+25 9 10 0.785691 0.029805 0.127545
+25 9 11 0.788995 0.034908 0.190864
+25 9 12 0.792118 0.039600 0.253379
+25 9 13 0.794941 0.043607 0.314558
+25 9 14 0.797770 0.047075 0.374463
+25 9 15 0.800609 0.049851 0.432732
+25 9 16 0.803549 0.052355 0.488645
+25 9 17 0.806591 0.054588 0.542201
+25 9 18 0.809737 0.055889 0.591755
+25 9 19 0.812964 0.056465 0.638195
+25 9 20 0.816365 0.058238 0.678340
+25 9 21 0.819872 0.060729 0.714709
+25 9 22 0.823860 0.066251 0.745583
+25 9 23 0.828067 0.073151 0.773959
+25 9 24 0.834825 0.114731 0.798017
+25 9 25 0.842434 0.167873 0.820635
+25 9 26 0.856536 0.228665 0.845558
+25 9 27 0.872136 0.291223 0.871014
+25 9 28 0.882907 0.333995 0.888392
+25 9 29 0.892989 0.373940 0.904617
+25 9 30 0.900285 0.403125 0.916605
+25 9 31 0.907396 0.431592 0.928311
+25 10 0 0.785112 0.083965 0.000000
+25 10 1 0.786086 0.085698 0.000000
+25 10 2 0.787082 0.087575 0.000000
+25 10 3 0.788419 0.091615 0.000000
+25 10 4 0.789857 0.096160 0.000000
+25 10 5 0.791993 0.104240 0.000000
+25 10 6 0.794381 0.112617 0.000000
+25 10 7 0.797865 0.122280 0.000000
+25 10 8 0.801560 0.130259 0.000000
+25 10 9 0.805887 0.133182 0.023241
+25 10 10 0.809834 0.137682 0.128213
+25 10 11 0.812947 0.145651 0.196004
+25 10 12 0.815818 0.153103 0.262063
+25 10 13 0.818288 0.159696 0.325233
+25 10 14 0.820810 0.165403 0.387272
+25 10 15 0.823400 0.169969 0.447856
+25 10 16 0.826067 0.174221 0.505363
+25 10 17 0.828810 0.178161 0.559792
+25 10 18 0.831569 0.180648 0.610185
+25 10 19 0.834340 0.182006 0.657439
+25 10 20 0.837194 0.185003 0.698396
+25 10 21 0.840099 0.188984 0.735576
+25 10 22 0.843440 0.197078 0.766524
+25 10 23 0.846979 0.207041 0.794639
+25 10 24 0.852910 0.227884 0.818320
+25 10 25 0.859638 0.252353 0.840523
+25 10 26 0.871804 0.299680 0.863262
+25 10 27 0.885225 0.352281 0.886124
+25 10 28 0.894609 0.388342 0.901851
+25 10 29 0.903416 0.422039 0.916559
+25 10 30 0.909866 0.446855 0.927533
+25 10 31 0.916160 0.471079 0.938257
+25 11 0 0.811533 0.149686 0.000000
+25 11 1 0.812523 0.152055 0.000000
+25 11 2 0.813535 0.154529 0.000000
+25 11 3 0.814864 0.158560 0.000000
+25 11 4 0.816273 0.163050 0.000000
+25 11 5 0.818242 0.170754 0.000000
+25 11 6 0.820423 0.178157 0.000000
+25 11 7 0.823520 0.184257 0.000000
+25 11 8 0.826925 0.190359 0.000000
+25 11 9 0.831252 0.196470 0.022900
+25 11 10 0.835007 0.203221 0.128685
+25 11 11 0.837507 0.211377 0.199683
+25 11 12 0.839927 0.219405 0.268591
+25 11 13 0.842213 0.227221 0.334018
+25 11 14 0.844368 0.233985 0.398568
+25 11 15 0.846354 0.239397 0.461991
+25 11 16 0.848627 0.244839 0.521383
+25 11 17 0.851187 0.250310 0.576743
+25 11 18 0.853575 0.254303 0.628193
+25 11 19 0.855828 0.257147 0.676603
+25 11 20 0.858260 0.260942 0.718324
+25 11 21 0.860797 0.265309 0.756031
+25 11 22 0.863494 0.271913 0.787279
+25 11 23 0.866262 0.279535 0.815591
+25 11 24 0.871462 0.298848 0.838482
+25 11 25 0.877474 0.322059 0.859567
+25 11 26 0.887280 0.362969 0.879873
+25 11 27 0.897963 0.407964 0.899999
+25 11 28 0.905779 0.440151 0.914232
+25 11 29 0.913185 0.470509 0.927624
+25 11 30 0.918884 0.493678 0.937898
+25 11 31 0.924469 0.516368 0.947964
+25 12 0 0.838435 0.213174 0.000000
+25 12 1 0.839433 0.216005 0.000000
+25 12 2 0.840449 0.218911 0.000000
+25 12 3 0.841744 0.222937 0.000000
+25 12 4 0.843105 0.227392 0.000000
+25 12 5 0.844937 0.234861 0.000000
+25 12 6 0.846975 0.241999 0.000000
+25 12 7 0.849904 0.247704 0.000000
+25 12 8 0.853140 0.253990 0.000000
+25 12 9 0.857300 0.262019 0.019252
+25 12 10 0.860789 0.270357 0.124618
+25 12 11 0.862804 0.279375 0.200695
+25 12 12 0.864768 0.288295 0.273809
+25 12 13 0.866644 0.297050 0.341985
+25 12 14 0.868358 0.304823 0.409149
+25 12 15 0.869865 0.311331 0.475009
+25 12 16 0.871680 0.317805 0.536319
+25 12 17 0.873803 0.324244 0.593079
+25 12 18 0.875742 0.329419 0.645761
+25 12 19 0.877539 0.333611 0.695270
+25 12 20 0.879471 0.337928 0.737750
+25 12 21 0.881484 0.342320 0.776012
+25 12 22 0.883520 0.347953 0.807391
+25 12 23 0.885568 0.354150 0.835639
+25 12 24 0.889909 0.371513 0.857805
+25 12 25 0.895016 0.392597 0.877943
+25 12 26 0.902761 0.427702 0.896195
+25 12 27 0.911115 0.466042 0.914012
+25 12 28 0.917503 0.494480 0.926901
+25 12 29 0.923611 0.521503 0.939086
+25 12 30 0.928453 0.542589 0.948568
+25 12 31 0.933211 0.563280 0.957870
+25 13 0 0.866141 0.272942 0.000000
+25 13 1 0.867131 0.275943 0.000000
+25 13 2 0.868134 0.279008 0.000000
+25 13 3 0.869349 0.283033 0.000000
+25 13 4 0.870631 0.287489 0.000000
+25 13 5 0.872375 0.294958 0.000000
+25 13 6 0.874379 0.303012 0.000000
+25 13 7 0.877502 0.313603 0.000000
+25 13 8 0.880773 0.323504 0.000000
+25 13 9 0.884486 0.331336 0.010093
+25 13 10 0.887584 0.340159 0.112984
+25 13 11 0.889329 0.351160 0.197261
+25 13 12 0.890827 0.361495 0.276841
+25 13 13 0.891916 0.370721 0.348590
+25 13 14 0.893068 0.379420 0.418537
+25 13 15 0.894304 0.387442 0.486166
+25 13 16 0.895554 0.394686 0.549450
+25 13 17 0.896819 0.401152 0.608391
+25 13 18 0.898182 0.406969 0.662593
+25 13 19 0.899620 0.412280 0.713109
+25 13 20 0.900925 0.416659 0.756342
+25 13 21 0.902150 0.420478 0.795205
+25 13 22 0.903502 0.426002 0.826428
+25 13 23 0.904911 0.432303 0.854180
+25 13 24 0.908180 0.447011 0.875728
+25 13 25 0.912070 0.464522 0.895208
+25 13 26 0.918250 0.494840 0.912038
+25 13 27 0.924958 0.528112 0.928256
+25 13 28 0.930152 0.553005 0.940048
+25 13 29 0.935131 0.576701 0.951208
+25 13 30 0.938941 0.594981 0.959745
+25 13 31 0.942674 0.612900 0.968107
+25 14 0 0.895274 0.340970 0.000000
+25 14 1 0.896140 0.343943 0.000000
+25 14 2 0.897010 0.346974 0.000000
+25 14 3 0.897951 0.350872 0.000000
+25 14 4 0.898943 0.355185 0.000000
+25 14 5 0.900290 0.362407 0.000000
+25 14 6 0.901927 0.370633 0.000000
+25 14 7 0.904818 0.383206 0.000000
+25 14 8 0.907830 0.394811 0.000000
+25 14 9 0.911209 0.403507 0.000000
+25 14 10 0.913912 0.413392 0.066928
+25 14 11 0.915128 0.425891 0.179505
+25 14 12 0.916043 0.437402 0.278097
+25 14 13 0.916455 0.447267 0.353378
+25 14 14 0.916960 0.456740 0.426266
+25 14 15 0.917583 0.465712 0.496078
+25 14 16 0.918148 0.473408 0.561212
+25 14 17 0.918655 0.479828 0.621667
+25 14 18 0.919400 0.486078 0.677276
+25 14 19 0.920330 0.492196 0.729115
+25 14 20 0.921021 0.496565 0.773075
+25 14 21 0.921570 0.499885 0.812309
+25 14 22 0.922287 0.504931 0.843801
+25 14 23 0.923080 0.510762 0.871775
+25 14 24 0.925422 0.523087 0.892940
+25 14 25 0.928279 0.537576 0.911836
+25 14 26 0.932983 0.563219 0.927191
+25 14 27 0.938114 0.591435 0.941729
+25 14 28 0.942084 0.612482 0.952260
+25 14 29 0.945887 0.632505 0.962218
+25 14 30 0.948819 0.648059 0.969798
+25 14 31 0.951692 0.663316 0.977220
+25 15 0 0.926240 0.419618 0.000000
+25 15 1 0.926835 0.422309 0.000000
+25 15 2 0.927419 0.425058 0.000000
+25 15 3 0.927834 0.428664 0.000000
+25 15 4 0.928267 0.432652 0.000000
+25 15 5 0.928818 0.439310 0.000000
+25 15 6 0.929661 0.446749 0.000000
+25 15 7 0.931770 0.457573 0.000000
+25 15 8 0.934148 0.468422 0.000000
+25 15 9 0.937335 0.479348 0.000000
+25 15 10 0.939638 0.491038 0.000000
+25 15 11 0.939996 0.504411 0.143335
+25 15 12 0.940174 0.516789 0.277068
+25 15 13 0.940052 0.527508 0.355828
+25 15 14 0.939797 0.537561 0.431862
+25 15 15 0.939370 0.546757 0.504392
+25 15 16 0.939096 0.554495 0.571213
+25 15 17 0.938973 0.560776 0.632327
+25 15 18 0.939048 0.567192 0.689196
+25 15 19 0.939278 0.573713 0.742763
+25 15 20 0.939374 0.577981 0.787420
+25 15 21 0.939389 0.580898 0.826730
+25 15 22 0.939535 0.584990 0.859034
+25 15 23 0.939741 0.589618 0.888153
+25 15 24 0.941339 0.599906 0.909239
+25 15 25 0.943400 0.612081 0.927647
+25 15 26 0.946746 0.633194 0.941459
+25 15 27 0.950389 0.656369 0.954210
+25 15 28 0.953093 0.673182 0.963268
+25 15 29 0.955663 0.689086 0.971797
+25 15 30 0.957911 0.702021 0.978407
+25 15 31 0.960138 0.714757 0.984889
+25 16 0 0.952975 0.487815 0.000000
+25 16 1 0.953399 0.490520 0.000000
+25 16 2 0.953807 0.493290 0.000000
+25 16 3 0.953964 0.497038 0.000000
+25 16 4 0.954127 0.501185 0.000000
+25 16 5 0.954328 0.508125 0.000000
+25 16 6 0.954753 0.515728 0.000000
+25 16 7 0.956147 0.526207 0.000000
+25 16 8 0.957878 0.537125 0.000000
+25 16 9 0.960619 0.549358 0.000000
+25 16 10 0.962397 0.562173 0.000000
+25 16 11 0.962059 0.576269 0.122349
+25 16 12 0.961537 0.589376 0.273135
+25 16 13 0.960707 0.600834 0.355934
+25 16 14 0.959687 0.611251 0.435183
+25 16 15 0.958425 0.620328 0.509871
+25 16 16 0.957402 0.628257 0.578460
+25 16 17 0.956618 0.635037 0.640950
+25 16 18 0.956078 0.641751 0.699032
+25 16 19 0.955726 0.648412 0.753686
+25 16 20 0.955305 0.652733 0.799105
+25 16 21 0.954843 0.655650 0.838983
+25 16 22 0.954461 0.659135 0.871762
+25 16 23 0.954115 0.662878 0.901314
+25 16 24 0.955043 0.671295 0.922318
+25 16 25 0.956395 0.681270 0.940472
+25 16 26 0.958646 0.698429 0.953240
+25 16 27 0.961103 0.717246 0.964765
+25 16 28 0.962851 0.730556 0.972797
+25 16 29 0.964497 0.743080 0.980330
+25 16 30 0.966113 0.753824 0.986221
+25 16 31 0.967728 0.764450 0.992002
+25 17 0 0.975479 0.545561 0.000000
+25 17 1 0.975832 0.548576 0.000000
+25 17 2 0.976174 0.551672 0.000000
+25 17 3 0.976340 0.555993 0.000000
+25 17 4 0.976522 0.560782 0.000000
+25 17 5 0.976820 0.568850 0.000000
+25 17 6 0.977201 0.577569 0.000000
+25 17 7 0.977949 0.589110 0.000000
+25 17 8 0.979020 0.600920 0.000000
+25 17 9 0.981060 0.613539 0.000000
+25 17 10 0.982191 0.626798 0.000000
+25 17 11 0.981319 0.641467 0.116549
+25 17 12 0.980132 0.655165 0.266298
+25 17 13 0.978418 0.667245 0.353694
+25 17 14 0.976630 0.677810 0.436229
+25 17 15 0.974746 0.686426 0.512515
+25 17 16 0.973067 0.694693 0.582951
+25 17 17 0.971592 0.702610 0.647537
+25 17 18 0.970488 0.709753 0.706785
+25 17 19 0.969673 0.716294 0.761882
+25 17 20 0.968816 0.720821 0.808130
+25 17 21 0.967933 0.724141 0.849070
+25 17 22 0.967065 0.727364 0.881987
+25 17 23 0.966202 0.730543 0.911256
+25 17 24 0.966535 0.737254 0.932176
+25 17 25 0.967266 0.745142 0.950312
+25 17 26 0.968682 0.758924 0.962535
+25 17 27 0.970255 0.774065 0.973392
+25 17 28 0.971357 0.784604 0.980847
+25 17 29 0.972391 0.794486 0.987817
+25 17 30 0.973426 0.803470 0.993240
+25 17 31 0.974461 0.812395 0.998560
+25 18 0 0.996321 0.602372 0.000000
+25 18 1 0.996482 0.605433 0.000000
+25 18 2 0.996630 0.608571 0.000000
+25 18 3 0.996588 0.612857 0.000000
+25 18 4 0.996533 0.617599 0.000000
+25 18 5 0.996380 0.625521 0.000000
+25 18 6 0.996332 0.634286 0.000000
+25 18 7 0.996741 0.646708 0.000000
+25 18 8 0.997392 0.659347 0.000000
+25 18 9 0.998767 0.672637 0.000000
+25 18 10 0.999201 0.686427 0.000000
+25 18 11 0.997564 0.701320 0.109937
+25 18 12 0.995658 0.715161 0.258161
+25 18 13 0.993301 0.727248 0.349891
+25 18 14 0.990861 0.737990 0.435727
+25 18 15 0.988312 0.747002 0.513987
+25 18 16 0.986018 0.755489 0.586072
+25 18 17 0.983980 0.763450 0.651983
+25 18 18 0.982383 0.770834 0.712374
+25 18 19 0.981129 0.777770 0.768473
+25 18 20 0.979838 0.782379 0.815348
+25 18 21 0.978525 0.785590 0.856689
+25 18 22 0.977299 0.788696 0.889981
+25 18 23 0.976112 0.791755 0.919613
+25 18 24 0.976012 0.797108 0.940419
+25 18 25 0.976274 0.803227 0.958283
+25 18 26 0.977048 0.813737 0.969921
+25 18 27 0.977940 0.825261 0.980121
+25 18 28 0.978592 0.833596 0.987181
+25 18 29 0.979210 0.841476 0.993793
+25 18 30 0.979793 0.848502 0.998801
+25 18 31 0.980374 0.855470 1.003703
+25 19 0 1.015871 0.658455 0.000000
+25 19 1 1.015744 0.661359 0.000000
+25 19 2 1.015599 0.664317 0.000000
+25 19 3 1.015182 0.668097 0.000000
+25 19 4 1.014688 0.672253 0.000000
+25 19 5 1.013660 0.679038 0.000000
+25 19 6 1.012882 0.687018 0.000000
+25 19 7 1.013193 0.700179 0.000000
+25 19 8 1.013610 0.713597 0.000000
+25 19 9 1.014347 0.727782 0.000000
+25 19 10 1.014047 0.742172 0.000000
+25 19 11 1.011464 0.757016 0.102692
+25 19 12 1.008796 0.770650 0.249014
+25 19 13 1.005985 0.782268 0.344872
+25 19 14 1.002982 0.793210 0.434021
+25 19 15 0.999733 0.803283 0.514546
+25 19 16 0.996858 0.811897 0.588127
+25 19 17 0.994357 0.819052 0.654763
+25 19 18 0.992320 0.826532 0.716280
+25 19 19 0.990646 0.834266 0.773816
+25 19 20 0.988924 0.838856 0.821160
+25 19 21 0.987173 0.841561 0.862389
+25 19 22 0.985690 0.844664 0.896240
+25 19 23 0.984328 0.847947 0.926737
+25 19 24 0.983922 0.852214 0.947406
+25 19 25 0.983834 0.856811 0.964800
+25 19 26 0.984115 0.864132 0.975822
+25 19 27 0.984482 0.872083 0.985373
+25 19 28 0.984839 0.878655 0.992180
+25 19 29 0.985194 0.885031 0.998595
+25 19 30 0.985425 0.889944 1.003229
+25 19 31 0.985647 0.894759 1.007746
+25 20 0 1.029223 0.699183 0.000000
+25 20 1 1.029058 0.702403 0.000000
+25 20 2 1.028880 0.705680 0.000000
+25 20 3 1.028497 0.709822 0.000000
+25 20 4 1.028027 0.714374 0.000000
+25 20 5 1.026949 0.721795 0.000000
+25 20 6 1.026034 0.730273 0.000000
+25 20 7 1.025822 0.743325 0.000000
+25 20 8 1.025682 0.756751 0.000000
+25 20 9 1.025758 0.771300 0.000000
+25 20 10 1.024819 0.785857 0.000000
+25 20 11 1.021647 0.800430 0.097577
+25 20 12 1.018446 0.814008 0.242771
+25 20 13 1.015196 0.825925 0.342115
+25 20 14 1.011758 0.836996 0.433909
+25 20 15 1.008077 0.846981 0.515995
+25 20 16 1.004790 0.855854 0.590941
+25 20 17 1.001896 0.863615 0.658746
+25 20 18 0.999445 0.871123 0.720904
+25 20 19 0.997339 0.878434 0.778669
+25 20 20 0.995353 0.883059 0.826270
+25 20 21 0.993439 0.886072 0.867773
+25 20 22 0.991780 0.889071 0.901513
+25 20 23 0.990237 0.892063 0.931724
+25 20 24 0.989565 0.895504 0.952190
+25 20 25 0.989182 0.899095 0.969407
+25 20 26 0.989114 0.904033 0.980146
+25 20 27 0.989120 0.909280 0.989389
+25 20 28 0.989159 0.913886 0.995995
+25 20 29 0.989202 0.918399 1.002224
+25 20 30 0.989287 0.922168 1.006657
+25 20 31 0.989375 0.925887 1.010970
+25 21 0 1.038856 0.730698 0.000000
+25 21 1 1.038804 0.734518 0.000000
+25 21 2 1.038749 0.738413 0.000000
+25 21 3 1.038646 0.743437 0.000000
+25 21 4 1.038476 0.748974 0.000000
+25 21 5 1.037844 0.758097 0.000000
+25 21 6 1.037146 0.767841 0.000000
+25 21 7 1.036157 0.780275 0.000000
+25 21 8 1.035267 0.793249 0.000000
+25 21 9 1.034668 0.807843 0.000000
+25 21 10 1.033148 0.822305 0.000000
+25 21 11 1.029600 0.836475 0.093739
+25 21 12 1.026003 0.850086 0.238270
+25 21 13 1.022325 0.862764 0.340717
+25 21 14 1.018527 0.873923 0.434753
+25 21 15 1.014574 0.883128 0.517976
+25 21 16 1.010976 0.892339 0.594210
+25 21 17 1.007733 0.901556 0.663453
+25 21 18 1.004883 0.909051 0.725960
+25 21 19 1.002339 0.915206 0.783227
+25 21 20 1.000189 0.919896 0.830958
+25 21 21 0.998274 0.923708 0.872968
+25 21 22 0.996489 0.926543 0.906195
+25 21 23 0.994763 0.928934 0.935429
+25 21 24 0.993848 0.931704 0.955651
+25 21 25 0.993202 0.934601 0.972868
+25 21 26 0.992872 0.937636 0.983523
+25 21 27 0.992615 0.940703 0.992664
+25 21 28 0.992322 0.943218 0.999100
+25 21 29 0.992024 0.945653 1.005149
+25 21 30 0.992088 0.948861 1.009483
+25 21 31 0.992175 0.952119 1.013702
+25 22 0 1.046830 0.757425 0.000000
+25 22 1 1.046736 0.761291 0.000000
+25 22 2 1.046631 0.765233 0.000000
+25 22 3 1.046363 0.770314 0.000000
+25 22 4 1.045998 0.775878 0.000000
+25 22 5 1.044958 0.784822 0.000000
+25 22 6 1.043936 0.794558 0.000000
+25 22 7 1.042993 0.807728 0.000000
+25 22 8 1.042003 0.821173 0.000000
+25 22 9 1.040875 0.835439 0.000000
+25 22 10 1.038898 0.849723 0.000000
+25 22 11 1.035053 0.864045 0.094702
+25 22 12 1.031152 0.877667 0.240288
+25 22 13 1.027158 0.890124 0.344326
+25 22 14 1.023149 0.901425 0.439724
+25 22 15 1.019118 0.911240 0.524013
+25 22 16 1.015363 0.920518 0.600575
+25 22 17 1.011883 0.929260 0.669409
+25 22 18 1.008782 0.936504 0.731590
+25 22 19 1.005976 0.942581 0.788597
+25 22 20 1.003614 0.947140 0.835838
+25 22 21 1.001519 0.950788 0.877218
+25 22 22 0.999683 0.953714 0.910179
+25 22 23 0.997966 0.956311 0.939315
+25 22 24 0.996946 0.958645 0.959172
+25 22 25 0.996158 0.960891 0.975937
+25 22 26 0.995682 0.962983 0.986271
+25 22 27 0.995277 0.965039 0.995121
+25 22 28 0.994872 0.966690 1.001359
+25 22 29 0.994467 0.968282 1.007223
+25 22 30 0.994400 0.970617 1.011512
+25 22 31 0.994355 0.973002 1.015695
+25 23 0 1.054051 0.781976 0.000000
+25 23 1 1.053844 0.785636 0.000000
+25 23 2 1.053610 0.789364 0.000000
+25 23 3 1.052974 0.794127 0.000000
+25 23 4 1.052189 0.799284 0.000000
+25 23 5 1.050353 0.807193 0.000000
+25 23 6 1.048763 0.816342 0.000000
+25 23 7 1.048237 0.830865 0.000000
+25 23 8 1.047445 0.845200 0.000000
+25 23 9 1.045854 0.858969 0.000000
+25 23 10 1.043476 0.873037 0.000000
+25 23 11 1.039368 0.887762 0.097847
+25 23 12 1.035205 0.901386 0.245269
+25 23 13 1.030949 0.913176 0.350211
+25 23 14 1.026796 0.924645 0.446570
+25 23 15 1.022773 0.935699 0.531893
+25 23 16 1.018930 0.944921 0.608347
+25 23 17 1.015267 0.952311 0.675931
+25 23 18 1.011983 0.959195 0.737481
+25 23 19 1.008993 0.965685 0.794336
+25 23 20 1.006398 0.970023 0.840803
+25 23 21 1.004040 0.973070 0.881037
+25 23 22 1.002189 0.976203 0.913847
+25 23 23 1.000568 0.979373 0.943283
+25 23 24 0.999506 0.981378 0.962722
+25 23 25 0.998631 0.982992 0.978829
+25 23 26 0.998060 0.984577 0.988733
+25 23 27 0.997559 0.986154 0.997207
+25 23 28 0.997142 0.987498 1.003233
+25 23 29 0.996737 0.988808 1.008910
+25 23 30 0.996490 0.990130 1.013178
+25 23 31 0.996254 0.991453 1.017352
+25 24 0 1.059126 0.800630 0.000000
+25 24 1 1.058772 0.804739 0.000000
+25 24 2 1.058387 0.808906 0.000000
+25 24 3 1.057541 0.813956 0.000000
+25 24 4 1.056547 0.819331 0.000000
+25 24 5 1.054512 0.826989 0.000000
+25 24 6 1.052575 0.835795 0.000000
+25 24 7 1.051066 0.849578 0.000000
+25 24 8 1.049541 0.863328 0.000000
+25 24 9 1.047972 0.876980 0.000000
+25 24 10 1.045524 0.890860 0.000000
+25 24 11 1.041141 0.905242 0.114414
+25 24 12 1.036780 0.918568 0.268604
+25 24 13 1.032459 0.930135 0.370556
+25 24 14 1.028316 0.941388 0.464464
+25 24 15 1.024401 0.952239 0.548031
+25 24 16 1.020632 0.961299 0.622639
+25 24 17 1.017008 0.968569 0.688289
+25 24 18 1.013714 0.975224 0.748118
+25 24 19 1.010678 0.981401 0.803418
+25 24 20 1.008021 0.985616 0.848445
+25 24 21 1.005592 0.988654 0.887307
+25 24 22 1.003721 0.991543 0.918886
+25 24 23 1.002105 0.994363 0.947154
+25 24 24 1.001033 0.996156 0.965919
+25 24 25 1.000142 0.997607 0.981516
+25 24 26 0.999549 0.999006 0.991077
+25 24 27 0.999023 1.000392 0.999245
+25 24 28 0.998609 1.001539 1.005130
+25 24 29 0.998211 1.002652 1.010689
+25 24 30 0.997876 1.003593 1.014822
+25 24 31 0.997545 1.004524 1.018860
+25 25 0 1.063485 0.817319 0.000000
+25 25 1 1.062973 0.822095 0.000000
+25 25 2 1.062431 0.826918 0.000000
+25 25 3 1.061427 0.832456 0.000000
+25 25 4 1.060294 0.838260 0.000000
+25 25 5 1.058259 0.845927 0.000000
+25 25 6 1.056050 0.854471 0.000000
+25 25 7 1.053089 0.866816 0.000000
+25 25 8 1.050523 0.879490 0.000000
+25 25 9 1.049137 0.893151 0.000000
+25 25 10 1.046727 0.906852 0.000000
+25 25 11 1.042065 0.920643 0.135457
+25 25 12 1.037530 0.933571 0.298058
+25 25 13 1.033208 0.945062 0.395721
+25 25 14 1.029127 0.955973 0.486042
+25 25 15 1.025353 0.966138 0.566921
+25 25 16 1.021711 0.975001 0.639105
+25 25 17 1.018200 0.982562 0.702592
+25 25 18 1.014956 0.989033 0.760337
+25 25 19 1.011920 0.994655 0.813614
+25 25 20 1.009258 0.998779 0.856978
+25 25 21 1.006820 1.002005 0.894393
+25 25 22 1.004929 1.004500 0.924382
+25 25 23 1.003288 1.006662 0.950994
+25 25 24 1.002215 1.008284 0.968999
+25 25 25 1.001333 1.009726 0.984135
+25 25 26 1.000741 1.011046 0.993380
+25 25 27 1.000216 1.012339 1.001266
+25 25 28 0.999809 1.013325 1.007034
+25 25 29 0.999419 1.014268 1.012499
+25 25 30 0.999026 1.015040 1.016458
+25 25 31 0.998633 1.015800 1.020317
+25 26 0 1.064703 0.827094 0.000000
+25 26 1 1.064161 0.832002 0.000000
+25 26 2 1.063589 0.836980 0.000000
+25 26 3 1.062562 0.842999 0.000000
+25 26 4 1.061409 0.849414 0.000000
+25 26 5 1.059375 0.858603 0.000000
+25 26 6 1.057102 0.868333 0.000000
+25 26 7 1.053798 0.880409 0.000000
+25 26 8 1.050838 0.892767 0.000000
+25 26 9 1.048911 0.905971 0.000000
+25 26 10 1.046137 0.919156 0.000000
+25 26 11 1.041500 0.932302 0.160357
+25 26 12 1.036955 0.944678 0.333197
+25 26 13 1.032562 0.955772 0.426542
+25 26 14 1.028359 0.966137 0.512375
+25 26 15 1.024398 0.975562 0.588549
+25 26 16 1.020851 0.984010 0.656989
+25 26 17 1.017717 0.991480 0.717696
+25 26 18 1.014722 0.997805 0.773498
+25 26 19 1.011835 1.003239 0.825487
+25 26 20 1.009397 1.007320 0.866861
+25 26 21 1.007228 1.010589 0.901867
+25 26 22 1.005374 1.012960 0.930158
+25 26 23 1.003663 1.014922 0.955398
+25 26 24 1.002575 1.016487 0.972932
+25 26 25 1.001694 1.017919 0.987898
+25 26 26 1.000924 1.018858 0.996137
+25 26 27 1.000178 1.019682 1.002824
+25 26 28 0.999689 1.020575 1.008300
+25 26 29 0.999236 1.021479 1.013601
+25 26 30 0.998895 1.022218 1.017512
+25 26 31 0.998562 1.022947 1.021330
+25 27 0 1.065195 0.835274 0.000000
+25 27 1 1.064654 0.840191 0.000000
+25 27 2 1.064082 0.845207 0.000000
+25 27 3 1.063064 0.851705 0.000000
+25 27 4 1.061918 0.858774 0.000000
+25 27 5 1.059883 0.869834 0.000000
+25 27 6 1.057594 0.881085 0.000000
+25 27 7 1.054203 0.893160 0.000000
+25 27 8 1.051000 0.905377 0.000000
+25 27 9 1.048365 0.918017 0.000000
+25 27 10 1.045134 0.930609 0.000000
+25 27 11 1.040592 0.943096 0.186148
+25 27 12 1.036074 0.954885 0.369648
+25 27 13 1.031594 0.965509 0.458668
+25 27 14 1.027227 0.975280 0.539805
+25 27 15 1.023004 0.983953 0.610808
+25 27 16 1.019544 0.991936 0.675201
+25 27 17 1.016847 0.999227 0.732984
+25 27 18 1.014147 1.005416 0.786878
+25 27 19 1.011443 1.010747 0.837748
+25 27 20 1.009282 1.014794 0.877057
+25 27 21 1.007446 1.018072 0.909429
+25 27 22 1.005642 1.020381 0.936000
+25 27 23 1.003852 1.022250 0.959933
+25 27 24 1.002745 1.023785 0.977063
+25 27 25 1.001864 1.025208 0.991925
+25 27 26 1.000873 1.025693 0.998999
+25 27 27 0.999856 1.025963 1.004276
+25 27 28 0.999264 1.026779 1.009418
+25 27 29 0.998733 1.027673 1.014541
+25 27 30 0.998469 1.028412 1.018432
+25 27 31 0.998222 1.029141 1.022241
+25 28 0 1.065597 0.840934 0.000000
+25 28 1 1.065055 0.845845 0.000000
+25 28 2 1.064483 0.850859 0.000000
+25 28 3 1.063458 0.857425 0.000000
+25 28 4 1.062307 0.864612 0.000000
+25 28 5 1.060272 0.876153 0.000000
+25 28 6 1.057971 0.888009 0.000000
+25 28 7 1.054517 0.901229 0.000000
+25 28 8 1.051117 0.914244 0.000000
+25 28 9 1.047879 0.926649 0.000000
+25 28 10 1.044261 0.938877 0.024001
+25 28 11 1.039809 0.950714 0.232707
+25 28 12 1.035310 0.961978 0.395437
+25 28 13 1.030735 0.972289 0.481539
+25 28 14 1.026300 0.981695 0.559535
+25 28 15 1.022044 0.989937 0.627111
+25 28 16 1.018561 0.997615 0.689117
+25 28 17 1.015850 1.004727 0.745555
+25 28 18 1.013406 1.010826 0.797802
+25 28 19 1.011170 1.016136 0.846788
+25 28 20 1.009176 1.020171 0.884928
+25 28 21 1.007328 1.023442 0.916560
+25 28 22 1.005561 1.025690 0.941922
+25 28 23 1.003830 1.027473 0.964434
+25 28 24 1.002783 1.028929 0.980655
+25 28 25 1.001964 1.030277 0.994780
+25 28 26 1.000907 1.030746 1.001573
+25 28 27 0.999795 1.031012 1.006673
+25 28 28 0.999122 1.031546 1.011061
+25 28 29 0.998511 1.032118 1.015347
+25 28 30 0.998181 1.032760 1.019185
+25 28 31 0.997869 1.033406 1.022993
+25 29 0 1.065985 0.846235 0.000000
+25 29 1 1.065443 0.851136 0.000000
+25 29 2 1.064871 0.856142 0.000000
+25 29 3 1.063838 0.862717 0.000000
+25 29 4 1.062679 0.869948 0.000000
+25 29 5 1.060644 0.881771 0.000000
+25 29 6 1.058332 0.894101 0.000000
+25 29 7 1.054819 0.908628 0.000000
+25 29 8 1.051227 0.922577 0.000000
+25 29 9 1.047402 0.934794 0.000000
+25 29 10 1.043408 0.946689 0.112312
+25 29 11 1.039043 0.957877 0.282234
+25 29 12 1.034563 0.968627 0.419704
+25 29 13 1.029892 0.978647 0.503088
+25 29 14 1.025403 0.987720 0.578165
+25 29 15 1.021147 0.995577 0.642562
+25 29 16 1.017624 1.002973 0.702420
+25 29 17 1.014834 1.009906 0.757739
+25 29 18 1.012642 1.015921 0.808375
+25 29 19 1.010914 1.021222 0.855369
+25 29 20 1.009072 1.025249 0.892467
+25 29 21 1.007161 1.028511 0.923629
+25 29 22 1.005429 1.030697 0.947856
+25 29 23 1.003778 1.032395 0.968930
+25 29 24 1.002803 1.033766 0.984171
+25 29 25 1.002055 1.035029 0.997468
+25 29 26 1.000954 1.035544 1.004106
+25 29 27 0.999771 1.035886 1.009206
+25 29 28 0.999020 1.036108 1.012779
+25 29 29 0.998330 1.036313 1.016134
+25 29 30 0.997913 1.036844 1.019913
+25 29 31 0.997513 1.037396 1.023721
+25 30 0 1.066358 0.850323 0.000000
+25 30 1 1.065742 0.855224 0.000000
+25 30 2 1.065100 0.860229 0.000000
+25 30 3 1.064067 0.866805 0.000000
+25 30 4 1.062908 0.874038 0.000000
+25 30 5 1.060873 0.885870 0.000000
+25 30 6 1.058547 0.898422 0.000000
+25 30 7 1.054958 0.914097 0.000000
+25 30 8 1.051225 0.928838 0.000000
+25 30 9 1.047058 0.940779 0.053700
+25 30 10 1.042852 0.952414 0.195590
+25 30 11 1.038559 0.963376 0.327912
+25 30 12 1.034069 0.973882 0.440834
+25 30 13 1.029252 0.983628 0.521420
+25 30 14 1.024709 0.992421 0.593688
+25 30 15 1.020520 0.999990 0.655259
+25 30 16 1.016953 1.007147 0.713105
+25 30 17 1.014010 1.013893 0.767225
+25 30 18 1.011948 1.019772 0.816458
+25 30 19 1.010573 1.024975 0.861892
+25 30 20 1.008912 1.028965 0.898172
+25 30 21 1.007079 1.032226 0.928961
+25 30 22 1.005420 1.034403 0.952276
+25 30 23 1.003840 1.036087 0.972193
+25 30 24 1.002837 1.037451 0.986710
+25 30 25 1.002027 1.038709 0.999426
+25 30 26 1.000971 1.039162 1.006027
+25 30 27 0.999858 1.039429 1.011215
+25 30 28 0.999046 1.039621 1.014741
+25 30 29 0.998277 1.039804 1.018029
+25 30 30 0.997788 1.040162 1.021151
+25 30 31 0.997317 1.040532 1.024263
+25 31 0 1.066730 0.854331 0.000000
+25 31 1 1.066035 0.859232 0.000000
+25 31 2 1.065319 0.864237 0.000000
+25 31 3 1.064285 0.870813 0.000000
+25 31 4 1.063126 0.878044 0.000000
+25 31 5 1.061092 0.889867 0.000000
+25 31 6 1.058751 0.902626 0.000000
+25 31 7 1.055086 0.919438 0.000000
+25 31 8 1.051215 0.934961 0.000000
+25 31 9 1.046724 0.946620 0.114776
+25 31 10 1.042316 0.957999 0.278531
+25 31 11 1.038094 0.968765 0.373334
+25 31 12 1.033592 0.979045 0.461754
+25 31 13 1.028625 0.988518 0.539538
+25 31 14 1.024029 0.997034 0.609003
+25 31 15 1.019910 1.004321 0.667772
+25 31 16 1.016300 1.011243 0.723615
+25 31 17 1.013198 1.017801 0.776531
+25 31 18 1.011260 1.023539 0.824376
+25 31 19 1.010226 1.028640 0.868278
+25 31 20 1.008748 1.032591 0.903754
+25 31 21 1.007003 1.035852 0.934176
+25 31 22 1.005419 1.038023 0.956594
+25 31 23 1.003910 1.039697 0.975375
+25 31 24 1.002872 1.041059 0.989184
+25 31 25 1.001991 1.042317 1.001336
+25 31 26 1.000986 1.042701 1.007907
+25 31 27 0.999952 1.042883 1.013190
+25 31 28 0.999081 1.043065 1.016719
+25 31 29 0.998233 1.043247 1.019998
+25 31 30 0.997672 1.043429 1.022423
+25 31 31 0.997131 1.043611 1.024792
+26 0 0 0.625565 0.000000 0.000000
+26 0 1 0.626243 0.000000 0.000000
+26 0 2 0.626926 0.000000 0.000000
+26 0 3 0.627675 0.000000 0.000000
+26 0 4 0.628473 0.000000 0.000000
+26 0 5 0.629605 0.000000 0.000000
+26 0 6 0.630925 0.000000 0.000000
+26 0 7 0.633058 0.000000 0.000000
+26 0 8 0.635919 0.000000 0.007503
+26 0 9 0.640963 0.000000 0.034099
+26 0 10 0.645362 0.000000 0.069444
+26 0 11 0.648343 0.000000 0.124034
+26 0 12 0.651387 0.000000 0.175494
+26 0 13 0.654538 0.000000 0.221734
+26 0 14 0.657459 0.000000 0.268659
+26 0 15 0.660085 0.000000 0.316462
+26 0 16 0.663334 0.000000 0.360934
+26 0 17 0.667207 0.000000 0.402074
+26 0 18 0.671040 0.000000 0.442232
+26 0 19 0.674842 0.000000 0.481627
+26 0 20 0.679659 0.000000 0.516959
+26 0 21 0.685085 0.000000 0.549855
+26 0 22 0.692542 0.000000 0.579744
+26 0 23 0.700922 0.000000 0.608268
+26 0 24 0.715354 0.000000 0.641027
+26 0 25 0.731802 0.000000 0.675197
+26 0 26 0.758206 0.000000 0.716105
+26 0 27 0.786908 0.000000 0.758567
+26 0 28 0.806224 0.000000 0.787146
+26 0 29 0.824198 0.000000 0.813742
+26 0 30 0.837404 0.066923 0.833336
+26 0 31 0.850291 0.160556 0.852463
+26 1 0 0.632857 0.000000 0.000000
+26 1 1 0.633659 0.000000 0.000000
+26 1 2 0.634458 0.000000 0.000000
+26 1 3 0.635208 0.000000 0.000000
+26 1 4 0.636007 0.000000 0.000000
+26 1 5 0.637153 0.000000 0.000000
+26 1 6 0.638492 0.000000 0.000000
+26 1 7 0.640662 0.000000 0.000000
+26 1 8 0.643550 0.000000 0.010624
+26 1 9 0.648593 0.000000 0.037314
+26 1 10 0.652992 0.000000 0.072870
+26 1 11 0.655973 0.000000 0.127930
+26 1 12 0.659005 0.000000 0.179966
+26 1 13 0.662119 0.000000 0.226958
+26 1 14 0.665073 0.000000 0.274535
+26 1 15 0.667823 0.000000 0.322864
+26 1 16 0.671091 0.000000 0.367993
+26 1 17 0.674876 0.000000 0.409925
+26 1 18 0.678699 0.000000 0.450535
+26 1 19 0.682552 0.000000 0.490118
+26 1 20 0.687301 0.000000 0.525638
+26 1 21 0.692590 0.000000 0.558722
+26 1 22 0.699763 0.000000 0.588514
+26 1 23 0.707793 0.000000 0.616810
+26 1 24 0.720824 0.000000 0.647708
+26 1 25 0.735522 0.000000 0.679474
+26 1 26 0.761557 0.000000 0.719930
+26 1 27 0.790207 0.000000 0.762392
+26 1 28 0.809561 0.000000 0.791054
+26 1 29 0.827587 0.000000 0.817744
+26 1 30 0.840795 0.080454 0.837293
+26 1 31 0.853683 0.174142 0.856365
+26 2 0 0.640301 0.000000 0.000000
+26 2 1 0.641218 0.000000 0.000000
+26 2 2 0.642125 0.000000 0.000000
+26 2 3 0.642885 0.000000 0.000000
+26 2 4 0.643695 0.000000 0.000000
+26 2 5 0.644857 0.000000 0.000000
+26 2 6 0.646215 0.000000 0.000000
+26 2 7 0.648419 0.000000 0.000000
+26 2 8 0.651333 0.000000 0.013047
+26 2 9 0.656373 0.000000 0.040285
+26 2 10 0.660771 0.000000 0.076366
+26 2 11 0.663755 0.000000 0.131902
+26 2 12 0.666776 0.000000 0.184524
+26 2 13 0.669858 0.000000 0.232286
+26 2 14 0.672848 0.000000 0.280530
+26 2 15 0.675720 0.000000 0.329394
+26 2 16 0.679006 0.000000 0.375197
+26 2 17 0.682707 0.000000 0.417939
+26 2 18 0.686518 0.000000 0.459009
+26 2 19 0.690415 0.000000 0.498780
+26 2 20 0.695096 0.000000 0.534496
+26 2 21 0.700247 0.000000 0.567779
+26 2 22 0.707134 0.000000 0.597473
+26 2 23 0.714811 0.000000 0.625534
+26 2 24 0.726498 0.000000 0.654652
+26 2 25 0.739522 0.000000 0.684122
+26 2 26 0.765110 0.000000 0.724024
+26 2 27 0.793597 0.000000 0.766334
+26 2 28 0.812971 0.000000 0.795049
+26 2 29 0.831043 0.002041 0.821821
+26 2 30 0.844255 0.094289 0.841330
+26 2 31 0.857142 0.188024 0.860355
+26 3 0 0.650038 0.000000 0.000000
+26 3 1 0.650918 0.000000 0.000000
+26 3 2 0.651801 0.000000 0.000000
+26 3 3 0.652736 0.000000 0.000000
+26 3 4 0.653705 0.000000 0.000000
+26 3 5 0.654903 0.000000 0.000000
+26 3 6 0.656291 0.000000 0.000000
+26 3 7 0.658495 0.000000 0.000000
+26 3 8 0.661396 0.000000 0.005018
+26 3 9 0.666385 0.000000 0.039604
+26 3 10 0.670764 0.000000 0.080914
+26 3 11 0.673799 0.000000 0.137015
+26 3 12 0.676866 0.000000 0.190377
+26 3 13 0.679984 0.000000 0.239173
+26 3 14 0.683033 0.000000 0.288304
+26 3 15 0.685993 0.000000 0.337866
+26 3 16 0.689305 0.000000 0.384562
+26 3 17 0.692969 0.000000 0.428392
+26 3 18 0.696735 0.000000 0.470045
+26 3 19 0.700582 0.000000 0.510003
+26 3 20 0.705165 0.000000 0.546025
+26 3 21 0.710192 0.000000 0.579684
+26 3 22 0.716764 0.000000 0.609264
+26 3 23 0.724040 0.000000 0.636989
+26 3 24 0.735234 0.000000 0.665529
+26 3 25 0.747733 0.000000 0.694340
+26 3 26 0.771710 0.000000 0.732146
+26 3 27 0.798337 0.000000 0.772027
+26 3 28 0.817466 0.000000 0.800355
+26 3 29 0.835524 0.019874 0.827033
+26 3 30 0.848735 0.112666 0.846588
+26 3 31 0.861622 0.206346 0.865667
+26 4 0 0.660661 0.000000 0.000000
+26 4 1 0.661514 0.000000 0.000000
+26 4 2 0.662381 0.000000 0.000000
+26 4 3 0.663476 0.000000 0.000000
+26 4 4 0.664590 0.000000 0.000000
+26 4 5 0.665834 0.000000 0.000000
+26 4 6 0.667259 0.000000 0.000000
+26 4 7 0.669464 0.000000 0.000000
+26 4 8 0.672353 0.000000 0.000000
+26 4 9 0.677298 0.000000 0.036979
+26 4 10 0.681661 0.000000 0.085922
+26 4 11 0.684746 0.000000 0.142608
+26 4 12 0.687855 0.000000 0.196761
+26 4 13 0.691006 0.000000 0.246692
+26 4 14 0.694112 0.000000 0.296786
+26 4 15 0.697162 0.000000 0.347088
+26 4 16 0.700494 0.000000 0.394770
+26 4 17 0.704109 0.000000 0.439831
+26 4 18 0.707834 0.000000 0.482127
+26 4 19 0.711643 0.000000 0.522272
+26 4 20 0.716125 0.000000 0.558626
+26 4 21 0.721010 0.000000 0.592705
+26 4 22 0.727253 0.000000 0.622161
+26 4 23 0.734115 0.000000 0.649515
+26 4 24 0.744847 0.000000 0.677513
+26 4 25 0.756869 0.000000 0.705725
+26 4 26 0.779053 0.000000 0.741191
+26 4 27 0.803581 0.000000 0.778331
+26 4 28 0.822418 0.000000 0.806224
+26 4 29 0.840442 0.039485 0.832797
+26 4 30 0.853651 0.132891 0.852383
+26 4 31 0.866538 0.226531 0.871503
+26 5 0 0.677493 0.000000 0.000000
+26 5 1 0.678382 0.000000 0.000000
+26 5 2 0.679287 0.000000 0.000000
+26 5 3 0.680433 0.000000 0.000000
+26 5 4 0.681605 0.000000 0.000000
+26 5 5 0.682959 0.000000 0.000000
+26 5 6 0.684473 0.000000 0.000000
+26 5 7 0.686678 0.000000 0.000000
+26 5 8 0.689567 0.000000 0.000000
+26 5 9 0.694512 0.000000 0.020741
+26 5 10 0.698887 0.000000 0.094148
+26 5 11 0.702008 0.000000 0.151565
+26 5 12 0.705140 0.000000 0.206865
+26 5 13 0.708291 0.000000 0.258638
+26 5 14 0.711446 0.000000 0.310223
+26 5 15 0.714606 0.000000 0.361569
+26 5 16 0.717924 0.000000 0.410884
+26 5 17 0.721400 0.000000 0.458168
+26 5 18 0.725101 0.000000 0.501534
+26 5 19 0.728976 0.000000 0.541851
+26 5 20 0.733317 0.000000 0.578725
+26 5 21 0.737940 0.000000 0.613532
+26 5 22 0.743750 0.000000 0.642797
+26 5 23 0.750100 0.000000 0.669541
+26 5 24 0.760601 0.000000 0.697245
+26 5 25 0.772485 0.000000 0.725269
+26 5 26 0.791589 0.000000 0.756701
+26 5 27 0.812360 0.000000 0.788918
+26 5 28 0.830574 0.000000 0.816032
+26 5 29 0.848423 0.071535 0.842416
+26 5 30 0.861621 0.166061 0.861939
+26 5 31 0.874508 0.259756 0.881005
+26 6 0 0.696351 0.000000 0.000000
+26 6 1 0.697286 0.000000 0.000000
+26 6 2 0.698237 0.000000 0.000000
+26 6 3 0.699414 0.000000 0.000000
+26 6 4 0.700627 0.000000 0.000000
+26 6 5 0.702088 0.000000 0.000000
+26 6 6 0.703690 0.000000 0.000000
+26 6 7 0.705904 0.000000 0.000000
+26 6 8 0.708802 0.000000 0.000000
+26 6 9 0.713754 0.000000 0.009223
+26 6 10 0.718143 0.000000 0.103435
+26 6 11 0.721294 0.000000 0.161471
+26 6 12 0.724448 0.000000 0.217921
+26 6 13 0.727608 0.000000 0.271729
+26 6 14 0.730786 0.000000 0.325003
+26 6 15 0.733986 0.000000 0.377591
+26 6 16 0.737288 0.000000 0.428572
+26 6 17 0.740692 0.000000 0.477944
+26 6 18 0.744372 0.000000 0.522606
+26 6 19 0.748266 0.000000 0.563603
+26 6 20 0.752482 0.000000 0.601068
+26 6 21 0.756891 0.000000 0.636414
+26 6 22 0.762277 0.000000 0.665712
+26 6 23 0.768107 0.000000 0.692261
+26 6 24 0.778178 0.000000 0.719437
+26 6 25 0.789664 0.000000 0.746822
+26 6 26 0.806211 0.000000 0.774884
+26 6 27 0.823926 0.000000 0.803102
+26 6 28 0.841119 0.005384 0.828903
+26 6 29 0.858238 0.119343 0.854359
+26 6 30 0.870974 0.209063 0.873247
+26 6 31 0.883419 0.297168 0.891697
+26 7 0 0.723991 0.000000 0.000000
+26 7 1 0.725014 0.000000 0.000000
+26 7 2 0.726044 0.000000 0.000000
+26 7 3 0.727170 0.000000 0.000000
+26 7 4 0.728350 0.000000 0.000000
+26 7 5 0.729898 0.000000 0.000000
+26 7 6 0.731580 0.000000 0.000000
+26 7 7 0.733845 0.000000 0.000000
+26 7 8 0.736791 0.000000 0.000000
+26 7 9 0.741779 0.000000 0.018155
+26 7 10 0.746193 0.000000 0.117321
+26 7 11 0.749344 0.000000 0.175491
+26 7 12 0.752518 0.000000 0.233102
+26 7 13 0.755729 0.000000 0.289785
+26 7 14 0.758820 0.000000 0.345599
+26 7 15 0.761758 0.000000 0.400295
+26 7 16 0.765034 0.000000 0.453082
+26 7 17 0.768650 0.000000 0.503959
+26 7 18 0.772324 0.000000 0.550896
+26 7 19 0.776043 0.000000 0.594768
+26 7 20 0.780194 0.000000 0.633135
+26 7 21 0.784603 0.000000 0.668199
+26 7 22 0.789602 0.000000 0.698508
+26 7 23 0.794870 0.000000 0.726655
+26 7 24 0.803658 0.000000 0.752286
+26 7 25 0.813619 0.000000 0.777078
+26 7 26 0.829869 0.040910 0.804653
+26 7 27 0.847570 0.085520 0.832871
+26 7 28 0.862016 0.158452 0.855053
+26 7 29 0.875998 0.235431 0.876372
+26 7 30 0.886323 0.294671 0.892144
+26 7 31 0.896405 0.352728 0.907546
+26 8 0 0.750197 0.000000 0.000000
+26 8 1 0.751277 0.000000 0.000000
+26 8 2 0.752359 0.000000 0.000000
+26 8 3 0.753492 0.000000 0.000000
+26 8 4 0.754696 0.000000 0.000000
+26 8 5 0.756404 0.000000 0.000000
+26 8 6 0.758252 0.000000 0.000000
+26 8 7 0.760705 0.000000 0.000000
+26 8 8 0.763776 0.000000 0.000000
+26 8 9 0.768705 0.000000 0.024768
+26 8 10 0.773078 0.000000 0.127979
+26 8 11 0.776228 0.000000 0.187448
+26 8 12 0.779382 0.000000 0.246862
+26 8 13 0.782540 0.000000 0.306181
+26 8 14 0.785502 0.000000 0.364387
+26 8 15 0.788211 0.000000 0.421161
+26 8 16 0.791410 0.000000 0.475672
+26 8 17 0.795096 0.000000 0.527918
+26 8 18 0.798682 0.000000 0.576754
+26 8 19 0.802188 0.000000 0.622938
+26 8 20 0.806149 0.000000 0.662198
+26 8 21 0.810383 0.000000 0.697305
+26 8 22 0.814933 0.000000 0.728344
+26 8 23 0.819626 0.000000 0.757533
+26 8 24 0.827233 0.000000 0.781948
+26 8 25 0.835810 0.089998 0.804772
+26 8 26 0.851407 0.166323 0.831470
+26 8 27 0.868626 0.236883 0.859064
+26 8 28 0.880686 0.287159 0.878102
+26 8 29 0.892009 0.334538 0.895919
+26 8 30 0.900301 0.369510 0.909055
+26 8 31 0.908391 0.403655 0.921879
+26 9 0 0.772099 0.000000 0.000000
+26 9 1 0.773142 0.000406 0.000000
+26 9 2 0.774201 0.001596 0.000000
+26 9 3 0.775509 0.004034 0.000000
+26 9 4 0.776913 0.006773 0.000000
+26 9 5 0.779000 0.011618 0.000000
+26 9 6 0.781267 0.016899 0.000000
+26 9 7 0.784319 0.024068 0.000000
+26 9 8 0.787751 0.029837 0.000000
+26 9 9 0.792330 0.031406 0.024427
+26 9 10 0.796462 0.034101 0.128950
+26 9 11 0.799613 0.039273 0.193221
+26 9 12 0.802630 0.044003 0.256355
+26 9 13 0.805424 0.047999 0.317594
+26 9 14 0.808127 0.051545 0.377750
+26 9 15 0.810712 0.054514 0.436514
+26 9 16 0.813673 0.057164 0.492502
+26 9 17 0.817010 0.059495 0.545713
+26 9 18 0.820258 0.061040 0.595319
+26 9 19 0.823437 0.061973 0.642121
+26 9 20 0.826837 0.063772 0.682250
+26 9 21 0.830371 0.066093 0.718377
+26 9 22 0.834281 0.071483 0.749302
+26 9 23 0.838361 0.078269 0.777863
+26 9 24 0.845092 0.121931 0.802051
+26 9 25 0.852707 0.177884 0.824780
+26 9 26 0.866589 0.238478 0.849431
+26 9 27 0.881919 0.300142 0.874525
+26 9 28 0.892671 0.342781 0.891853
+26 9 29 0.902768 0.382702 0.908071
+26 9 30 0.910164 0.412044 0.920013
+26 9 31 0.917379 0.440682 0.931669
+26 10 0 0.795446 0.090653 0.000000
+26 10 1 0.796463 0.092533 0.000000
+26 10 2 0.797507 0.094533 0.000000
+26 10 3 0.798934 0.098336 0.000000
+26 10 4 0.800473 0.102599 0.000000
+26 10 5 0.802788 0.110078 0.000000
+26 10 6 0.805290 0.118028 0.000000
+26 10 7 0.808604 0.128024 0.000000
+26 10 8 0.812169 0.136363 0.000000
+26 10 9 0.816484 0.139733 0.023928
+26 10 10 0.820379 0.144577 0.129540
+26 10 11 0.823349 0.152663 0.198172
+26 10 12 0.826135 0.160188 0.264796
+26 10 13 0.828613 0.166776 0.328072
+26 10 14 0.831026 0.172615 0.390353
+26 10 15 0.833357 0.177493 0.451354
+26 10 16 0.836027 0.181956 0.508926
+26 10 17 0.839033 0.186003 0.563069
+26 10 18 0.841905 0.188802 0.613542
+26 10 19 0.844672 0.190632 0.661159
+26 10 20 0.847542 0.193662 0.702134
+26 10 21 0.850473 0.197413 0.739125
+26 10 22 0.853744 0.205320 0.770073
+26 10 23 0.857169 0.215116 0.798274
+26 10 24 0.863075 0.235850 0.822058
+26 10 25 0.869809 0.260231 0.844370
+26 10 26 0.881810 0.307961 0.866834
+26 10 27 0.895028 0.361081 0.889334
+26 10 28 0.904406 0.397239 0.905016
+26 10 29 0.913235 0.430975 0.919724
+26 10 30 0.919782 0.455913 0.930637
+26 10 31 0.926176 0.480264 0.941297
+26 11 0 0.821971 0.157008 0.000000
+26 11 1 0.822988 0.159413 0.000000
+26 11 2 0.824031 0.161910 0.000000
+26 11 3 0.825459 0.165792 0.000000
+26 11 4 0.826985 0.170111 0.000000
+26 11 5 0.829198 0.177489 0.000000
+26 11 6 0.831529 0.184689 0.000000
+26 11 7 0.834369 0.191111 0.000000
+26 11 8 0.837559 0.197521 0.000000
+26 11 9 0.841801 0.203891 0.023083
+26 11 10 0.845465 0.210868 0.129290
+26 11 11 0.847860 0.219182 0.201316
+26 11 12 0.850206 0.227321 0.270922
+26 11 13 0.852472 0.235171 0.336494
+26 11 14 0.854530 0.242108 0.401284
+26 11 15 0.856322 0.247871 0.465066
+26 11 16 0.858579 0.253470 0.524459
+26 11 17 0.861301 0.258903 0.579464
+26 11 18 0.863712 0.263000 0.631014
+26 11 19 0.865880 0.266058 0.679878
+26 11 20 0.868283 0.269857 0.721649
+26 11 21 0.870828 0.274103 0.759164
+26 11 22 0.873461 0.280575 0.790432
+26 11 23 0.876135 0.288060 0.818860
+26 11 24 0.881329 0.307271 0.841855
+26 11 25 0.887362 0.330389 0.863039
+26 11 26 0.897118 0.371567 0.883012
+26 11 27 0.907732 0.416913 0.902706
+26 11 28 0.915591 0.449139 0.916886
+26 11 29 0.923057 0.479490 0.930278
+26 11 30 0.928862 0.502718 0.940529
+26 11 31 0.934556 0.525471 0.950570
+26 12 0 0.848834 0.220829 0.000000
+26 12 1 0.849851 0.223632 0.000000
+26 12 2 0.850892 0.226507 0.000000
+26 12 3 0.852287 0.230453 0.000000
+26 12 4 0.853770 0.234822 0.000000
+26 12 5 0.855873 0.242153 0.000000
+26 12 6 0.858078 0.249232 0.000000
+26 12 7 0.860720 0.255219 0.000000
+26 12 8 0.863716 0.261739 0.000000
+26 12 9 0.867775 0.269854 0.017132
+26 12 10 0.871166 0.278316 0.122175
+26 12 11 0.873089 0.287542 0.200948
+26 12 12 0.874985 0.296625 0.275800
+26 12 13 0.876837 0.305469 0.344117
+26 12 14 0.878472 0.313434 0.411511
+26 12 15 0.879828 0.320271 0.477716
+26 12 16 0.881621 0.326824 0.538980
+26 12 17 0.883850 0.333094 0.595304
+26 12 18 0.885761 0.338227 0.648072
+26 12 19 0.887424 0.342476 0.698073
+26 12 20 0.889319 0.346783 0.740598
+26 12 21 0.891355 0.351126 0.778638
+26 12 22 0.893348 0.356660 0.810088
+26 12 23 0.895323 0.362736 0.838541
+26 12 24 0.899669 0.380009 0.860839
+26 12 25 0.904805 0.401014 0.881086
+26 12 26 0.912553 0.436265 0.898972
+26 12 27 0.920903 0.474805 0.916313
+26 12 28 0.927360 0.503248 0.929139
+26 12 29 0.933546 0.530250 0.941321
+26 12 30 0.938492 0.551359 0.950803
+26 12 31 0.943355 0.572076 0.960105
+26 13 0 0.876261 0.280427 0.000000
+26 13 1 0.877278 0.283418 0.000000
+26 13 2 0.878314 0.286471 0.000000
+26 13 3 0.879621 0.290456 0.000000
+26 13 4 0.881012 0.294865 0.000000
+26 13 5 0.882991 0.302235 0.000000
+26 13 6 0.885144 0.310245 0.000000
+26 13 7 0.888048 0.321028 0.000000
+26 13 8 0.891150 0.331057 0.000000
+26 13 9 0.894845 0.338827 0.002673
+26 13 10 0.897893 0.347692 0.103618
+26 13 11 0.899516 0.358972 0.194725
+26 13 12 0.900943 0.369544 0.278597
+26 13 13 0.902044 0.378937 0.350408
+26 13 14 0.903142 0.387818 0.420566
+26 13 15 0.904236 0.396040 0.488597
+26 13 16 0.905478 0.403247 0.551816
+26 13 17 0.906869 0.409438 0.610224
+26 13 18 0.908216 0.415171 0.664440
+26 13 19 0.909529 0.420548 0.715396
+26 13 20 0.910846 0.424926 0.758608
+26 13 21 0.912167 0.428704 0.797173
+26 13 22 0.913516 0.434127 0.828571
+26 13 23 0.914878 0.440297 0.856712
+26 13 24 0.918152 0.454943 0.878469
+26 13 25 0.922063 0.472415 0.898097
+26 13 26 0.928200 0.502783 0.914568
+26 13 27 0.934851 0.536127 0.930310
+26 13 28 0.940100 0.561042 0.942032
+26 13 29 0.945149 0.584752 0.953179
+26 13 30 0.949039 0.603063 0.961715
+26 13 31 0.952851 0.621014 0.970077
+26 14 0 0.905265 0.348559 0.000000
+26 14 1 0.906151 0.351515 0.000000
+26 14 2 0.907048 0.354529 0.000000
+26 14 3 0.908092 0.358414 0.000000
+26 14 4 0.909203 0.362708 0.000000
+26 14 5 0.910784 0.369871 0.000000
+26 14 6 0.912569 0.378071 0.000000
+26 14 7 0.915238 0.390770 0.000000
+26 14 8 0.918081 0.402439 0.000000
+26 14 9 0.921447 0.411018 0.000000
+26 14 10 0.924100 0.420906 0.056697
+26 14 11 0.925188 0.433676 0.176473
+26 14 12 0.926043 0.445415 0.279584
+26 14 13 0.926507 0.455435 0.354917
+26 14 14 0.926975 0.465031 0.428057
+26 14 15 0.927445 0.474081 0.498377
+26 14 16 0.928014 0.481685 0.563462
+26 14 17 0.928681 0.487842 0.623312
+26 14 18 0.929420 0.493991 0.678850
+26 14 19 0.930213 0.500132 0.731032
+26 14 20 0.930951 0.504517 0.774925
+26 14 21 0.931657 0.507848 0.813843
+26 14 22 0.932392 0.512812 0.845535
+26 14 23 0.933142 0.518517 0.873942
+26 14 24 0.935475 0.530772 0.895336
+26 14 25 0.938336 0.545211 0.914394
+26 14 26 0.942957 0.570691 0.929448
+26 14 27 0.947985 0.598718 0.943579
+26 14 28 0.952002 0.619735 0.954035
+26 14 29 0.955875 0.639751 0.963967
+26 14 30 0.958886 0.655331 0.971561
+26 14 31 0.961840 0.670615 0.979001
+26 15 0 0.936296 0.427666 0.000000
+26 15 1 0.936884 0.430300 0.000000
+26 15 2 0.937469 0.432995 0.000000
+26 15 3 0.938025 0.436598 0.000000
+26 15 4 0.938615 0.440579 0.000000
+26 15 5 0.939445 0.447217 0.000000
+26 15 6 0.940455 0.454657 0.000000
+26 15 7 0.942249 0.465569 0.000000
+26 15 8 0.944365 0.476472 0.000000
+26 15 9 0.947445 0.487347 0.000000
+26 15 10 0.949641 0.499054 0.000000
+26 15 11 0.949890 0.512591 0.142756
+26 15 12 0.950037 0.525083 0.278244
+26 15 13 0.950014 0.535831 0.357135
+26 15 14 0.949731 0.545884 0.433538
+26 15 15 0.949114 0.555043 0.506742
+26 15 16 0.948852 0.562714 0.573579
+26 15 17 0.948943 0.568895 0.634048
+26 15 18 0.949015 0.575221 0.690741
+26 15 19 0.949071 0.581660 0.744498
+26 15 20 0.949228 0.585971 0.789064
+26 15 21 0.949445 0.589004 0.828116
+26 15 22 0.949607 0.593062 0.860544
+26 15 23 0.949743 0.597584 0.889961
+26 15 24 0.951305 0.607752 0.911226
+26 15 25 0.953342 0.619800 0.929773
+26 15 26 0.956570 0.640386 0.943409
+26 15 27 0.960073 0.662943 0.955911
+26 15 28 0.962827 0.679587 0.964896
+26 15 29 0.965475 0.695386 0.973377
+26 15 30 0.967835 0.708323 0.980037
+26 15 31 0.970176 0.721069 0.986575
+26 16 0 0.962947 0.495787 0.000000
+26 16 1 0.963359 0.498421 0.000000
+26 16 2 0.963764 0.501124 0.000000
+26 16 3 0.964057 0.504847 0.000000
+26 16 4 0.964372 0.508963 0.000000
+26 16 5 0.964833 0.515824 0.000000
+26 16 6 0.965404 0.523374 0.000000
+26 16 7 0.966455 0.533910 0.000000
+26 16 8 0.967898 0.544865 0.000000
+26 16 9 0.970522 0.557076 0.000000
+26 16 10 0.972186 0.569910 0.000000
+26 16 11 0.971735 0.584113 0.123049
+26 16 12 0.971196 0.597265 0.274211
+26 16 13 0.970508 0.608667 0.357126
+26 16 14 0.969480 0.619034 0.436755
+26 16 15 0.968015 0.628073 0.512161
+26 16 16 0.967017 0.635921 0.580751
+26 16 17 0.966488 0.642580 0.642524
+26 16 18 0.965969 0.649228 0.700374
+26 16 19 0.965457 0.655867 0.755172
+26 16 20 0.965111 0.660253 0.800469
+26 16 21 0.964865 0.663287 0.840065
+26 16 22 0.964491 0.666757 0.872941
+26 16 23 0.964059 0.670426 0.902761
+26 16 24 0.964939 0.678722 0.923951
+26 16 25 0.966258 0.688561 0.942263
+26 16 26 0.968406 0.705053 0.954942
+26 16 27 0.970745 0.723080 0.966321
+26 16 28 0.972550 0.736196 0.974301
+26 16 29 0.974279 0.748611 0.981795
+26 16 30 0.976007 0.759334 0.987713
+26 16 31 0.977736 0.769945 0.993527
+26 17 0 0.985216 0.552922 0.000000
+26 17 1 0.985577 0.555878 0.000000
+26 17 2 0.985932 0.558915 0.000000
+26 17 3 0.986189 0.563163 0.000000
+26 17 4 0.986473 0.567859 0.000000
+26 17 5 0.986948 0.575691 0.000000
+26 17 6 0.987416 0.584223 0.000000
+26 17 7 0.987854 0.595794 0.000000
+26 17 8 0.988681 0.607618 0.000000
+26 17 9 0.990678 0.620205 0.000000
+26 17 10 0.991735 0.633473 0.000000
+26 17 11 0.990723 0.648241 0.117353
+26 17 12 0.989518 0.661963 0.267486
+26 17 13 0.987992 0.673944 0.354889
+26 17 14 0.986224 0.684483 0.437708
+26 17 15 0.984146 0.693170 0.514633
+26 17 16 0.982511 0.701308 0.584978
+26 17 17 0.981318 0.708898 0.648740
+26 17 18 0.980283 0.716011 0.707747
+26 17 19 0.979370 0.722753 0.763055
+26 17 20 0.978600 0.727364 0.809140
+26 17 21 0.977916 0.730695 0.849692
+26 17 22 0.977045 0.733897 0.882726
+26 17 23 0.976087 0.737041 0.912343
+26 17 24 0.976377 0.743685 0.933512
+26 17 25 0.977083 0.751495 0.951864
+26 17 26 0.978465 0.764691 0.964047
+26 17 27 0.980002 0.779130 0.974807
+26 17 28 0.981171 0.789563 0.982250
+26 17 29 0.982287 0.799424 0.989220
+26 17 30 0.983403 0.808364 0.994591
+26 17 31 0.984519 0.817243 0.999855
+26 18 0 1.005567 0.608602 0.000000
+26 18 1 1.005759 0.611646 0.000000
+26 18 2 1.005942 0.614769 0.000000
+26 18 3 1.006007 0.619071 0.000000
+26 18 4 1.006072 0.623818 0.000000
+26 18 5 1.006144 0.631684 0.000000
+26 18 6 1.006219 0.640398 0.000000
+26 18 7 1.006311 0.652791 0.000000
+26 18 8 1.006719 0.665395 0.000000
+26 18 9 1.008077 0.678631 0.000000
+26 18 10 1.008454 0.692385 0.000000
+26 18 11 1.006676 0.707280 0.110765
+26 18 12 1.004746 0.721086 0.259370
+26 18 13 1.002566 0.733078 0.351064
+26 18 14 1.000141 0.743743 0.437114
+26 18 15 0.997400 0.752702 0.515907
+26 18 16 0.995186 0.761058 0.587854
+26 18 17 0.993499 0.768810 0.652955
+26 18 18 0.991998 0.776219 0.713143
+26 18 19 0.990643 0.783363 0.769512
+26 18 20 0.989460 0.788068 0.816237
+26 18 21 0.988380 0.791309 0.857176
+26 18 22 0.987144 0.794383 0.890551
+26 18 23 0.985838 0.797381 0.920489
+26 18 24 0.985708 0.802671 0.941535
+26 18 25 0.985969 0.808725 0.959618
+26 18 26 0.986742 0.818683 0.971230
+26 18 27 0.987634 0.829543 0.981349
+26 18 28 0.988358 0.837791 0.988400
+26 18 29 0.989058 0.845667 0.995012
+26 18 30 0.989712 0.852674 0.999979
+26 18 31 0.990363 0.859623 1.004836
+26 19 0 1.024428 0.663152 0.000000
+26 19 1 1.024357 0.666102 0.000000
+26 19 2 1.024275 0.669117 0.000000
+26 19 3 1.024026 0.673106 0.000000
+26 19 4 1.023726 0.677494 0.000000
+26 19 5 1.023069 0.684665 0.000000
+26 19 6 1.022527 0.692938 0.000000
+26 19 7 1.022480 0.705989 0.000000
+26 19 8 1.022622 0.719302 0.000000
+26 19 9 1.023331 0.733400 0.000000
+26 19 10 1.022973 0.747680 0.000000
+26 19 11 1.020268 0.762362 0.103484
+26 19 12 1.017568 0.775874 0.250174
+26 19 13 1.014877 0.787435 0.346004
+26 19 14 1.011858 0.798190 0.435317
+26 19 15 1.008417 0.807907 0.516248
+26 19 16 1.005671 0.816423 0.589680
+26 19 17 1.003619 0.823738 0.655611
+26 19 18 1.001693 0.831314 0.717001
+26 19 19 0.999863 0.839091 0.774859
+26 19 20 0.998274 0.843789 0.822108
+26 19 21 0.996830 0.846639 0.862993
+26 19 22 0.995335 0.849693 0.896851
+26 19 23 0.993817 0.852840 0.927517
+26 19 24 0.993399 0.857009 0.948363
+26 19 25 0.993347 0.861519 0.965937
+26 19 26 0.993635 0.868285 0.976918
+26 19 27 0.994001 0.875572 0.986379
+26 19 28 0.994430 0.882023 0.993149
+26 19 29 0.994868 0.888355 0.999533
+26 19 30 0.995177 0.893312 1.004207
+26 19 31 0.995478 0.898177 1.008767
+26 20 0 1.037631 0.703066 0.000000
+26 20 1 1.037516 0.706333 0.000000
+26 20 2 1.037393 0.709667 0.000000
+26 20 3 1.037145 0.713994 0.000000
+26 20 4 1.036834 0.718752 0.000000
+26 20 5 1.036086 0.726523 0.000000
+26 20 6 1.035373 0.735264 0.000000
+26 20 7 1.034814 0.748210 0.000000
+26 20 8 1.034425 0.761530 0.000000
+26 20 9 1.034544 0.775975 0.000000
+26 20 10 1.033603 0.790388 0.000000
+26 20 11 1.030332 0.804731 0.098654
+26 20 12 1.027113 0.818147 0.244297
+26 20 13 1.023979 0.830017 0.343470
+26 20 14 1.020535 0.840928 0.435311
+26 20 15 1.016691 0.850608 0.517725
+26 20 16 1.013565 0.859365 0.592420
+26 20 17 1.011158 0.867201 0.659397
+26 20 18 1.008835 0.874796 0.721407
+26 20 19 1.006577 0.882205 0.779555
+26 20 20 1.004713 0.886920 0.827052
+26 20 21 1.003087 0.890019 0.868160
+26 20 22 1.001421 0.892947 0.901924
+26 20 23 0.999737 0.895797 0.932349
+26 20 24 0.999066 0.899168 0.953010
+26 20 25 0.998732 0.902713 0.970417
+26 20 26 0.998674 0.907311 0.981119
+26 20 27 0.998680 0.912153 0.990275
+26 20 28 0.998806 0.916682 0.996828
+26 20 29 0.998949 0.921167 1.003010
+26 20 30 0.999095 0.924978 1.007511
+26 20 31 0.999242 0.928743 1.011901
+26 21 0 1.047439 0.734198 0.000000
+26 21 1 1.047412 0.738030 0.000000
+26 21 2 1.047382 0.741938 0.000000
+26 21 3 1.047323 0.746993 0.000000
+26 21 4 1.047214 0.752560 0.000000
+26 21 5 1.046757 0.761708 0.000000
+26 21 6 1.046142 0.771462 0.000000
+26 21 7 1.044846 0.783843 0.000000
+26 21 8 1.043766 0.796751 0.000000
+26 21 9 1.043332 0.811235 0.000000
+26 21 10 1.041901 0.825546 0.000000
+26 21 11 1.038280 0.839473 0.095294
+26 21 12 1.034692 0.852911 0.240413
+26 21 13 1.031157 0.865533 0.342452
+26 21 14 1.027389 0.876642 0.436381
+26 21 15 1.023318 0.885806 0.519884
+26 21 16 1.019905 0.894853 0.595710
+26 21 17 1.017148 0.903784 0.663861
+26 21 18 1.014446 0.911312 0.726142
+26 21 19 1.011787 0.917750 0.783859
+26 21 20 1.009727 0.922498 0.831440
+26 21 21 1.008027 0.926231 0.872939
+26 21 22 1.006243 0.928969 0.906260
+26 21 23 1.004421 0.931255 0.935863
+26 21 24 1.003518 0.934021 0.956348
+26 21 25 1.002922 0.936947 0.973794
+26 21 26 1.002602 0.939992 0.984428
+26 21 27 1.002344 0.943066 0.993489
+26 21 28 1.002164 0.945599 0.999866
+26 21 29 1.001993 0.948054 1.005860
+26 21 30 1.002086 0.951261 1.010262
+26 21 31 1.002196 0.954517 1.014557
+26 22 0 1.055058 0.760132 0.000000
+26 22 1 1.054998 0.764010 0.000000
+26 22 2 1.054930 0.767967 0.000000
+26 22 3 1.054739 0.773110 0.000000
+26 22 4 1.054478 0.778743 0.000000
+26 22 5 1.053722 0.787800 0.000000
+26 22 6 1.052861 0.797612 0.000000
+26 22 7 1.051550 0.810695 0.000000
+26 22 8 1.050328 0.824050 0.000000
+26 22 9 1.049369 0.838224 0.000000
+26 22 10 1.047504 0.852378 0.000000
+26 22 11 1.043643 0.866488 0.096116
+26 22 12 1.039790 0.879969 0.242255
+26 22 13 1.035950 0.892401 0.345972
+26 22 14 1.031979 0.903688 0.441281
+26 22 15 1.027838 0.913504 0.525781
+26 22 16 1.024262 0.922636 0.601937
+26 22 17 1.021250 0.931085 0.669750
+26 22 18 1.018284 0.938332 0.731704
+26 22 19 1.015354 0.944644 0.789103
+26 22 20 1.013097 0.949260 0.836190
+26 22 21 1.011244 0.952857 0.877090
+26 22 22 1.009424 0.955699 0.910143
+26 22 23 1.007619 0.958196 0.939629
+26 22 24 1.006595 0.960551 0.959755
+26 22 25 1.005831 0.962858 0.976761
+26 22 26 1.005363 0.964988 0.987100
+26 22 27 1.004964 0.967077 0.995900
+26 22 28 1.004657 0.968739 1.002080
+26 22 29 1.004364 0.970340 1.007886
+26 22 30 1.004349 0.972702 1.012248
+26 22 31 1.004352 0.975115 1.016514
+26 23 0 1.061682 0.783701 0.000000
+26 23 1 1.061535 0.787392 0.000000
+26 23 2 1.061367 0.791160 0.000000
+26 23 3 1.060900 0.796100 0.000000
+26 23 4 1.060326 0.801460 0.000000
+26 23 5 1.059002 0.809759 0.000000
+26 23 6 1.057739 0.819194 0.000000
+26 23 7 1.056742 0.833554 0.000000
+26 23 8 1.055626 0.847749 0.000000
+26 23 9 1.054157 0.861453 0.000000
+26 23 10 1.051881 0.875425 0.000000
+26 23 11 1.047831 0.889991 0.098839
+26 23 12 1.043762 0.903524 0.246701
+26 23 13 1.039659 0.915337 0.351555
+26 23 14 1.035540 0.926794 0.447922
+26 23 15 1.031399 0.937793 0.533377
+26 23 16 1.027717 0.946917 0.609499
+26 23 17 1.024493 0.954168 0.676286
+26 23 18 1.021315 0.961037 0.737642
+26 23 19 1.018174 0.967606 0.794773
+26 23 20 1.015719 0.972015 0.841104
+26 23 21 1.013677 0.975128 0.880955
+26 23 22 1.011858 0.978205 0.913820
+26 23 23 1.010140 0.981266 0.943509
+26 23 24 1.009045 0.983298 0.963192
+26 23 25 1.008157 0.984987 0.979540
+26 23 26 1.007595 0.986491 0.989482
+26 23 27 1.007108 0.987952 0.997946
+26 23 28 1.006759 0.989254 1.003919
+26 23 29 1.006429 0.990533 1.009537
+26 23 30 1.006281 0.991943 1.013888
+26 23 31 1.006147 0.993361 1.018154
+26 24 0 1.066645 0.802163 0.000000
+26 24 1 1.066317 0.806300 0.000000
+26 24 2 1.065969 0.810504 0.000000
+26 24 3 1.065329 0.815716 0.000000
+26 24 4 1.064586 0.821290 0.000000
+26 24 5 1.063120 0.829400 0.000000
+26 24 6 1.061560 0.838548 0.000000
+26 24 7 1.059590 0.852199 0.000000
+26 24 8 1.057754 0.865833 0.000000
+26 24 9 1.056315 0.879419 0.000000
+26 24 10 1.053976 0.893215 0.000000
+26 24 11 1.049654 0.907471 0.115385
+26 24 12 1.045390 0.920726 0.269994
+26 24 13 1.041222 0.932314 0.371829
+26 24 14 1.037111 0.943558 0.465752
+26 24 15 1.033074 0.954358 0.549501
+26 24 16 1.029464 0.963340 0.623845
+26 24 17 1.026280 0.970503 0.688784
+26 24 18 1.023106 0.977131 0.748405
+26 24 19 1.019939 0.983342 0.803888
+26 24 20 1.017428 0.987611 0.848776
+26 24 21 1.015311 0.990713 0.887307
+26 24 22 1.013465 0.993565 0.918922
+26 24 23 1.011742 0.996304 0.947392
+26 24 24 1.010642 0.998139 0.966383
+26 24 25 1.009751 0.999673 0.982214
+26 24 26 1.009171 1.000963 0.991818
+26 24 27 1.008662 1.002197 0.999987
+26 24 28 1.008301 1.003302 1.005820
+26 24 29 1.007962 1.004390 1.011320
+26 24 30 1.007746 1.005366 1.015504
+26 24 31 1.007539 1.006336 1.019599
+26 25 0 1.071054 0.818922 0.000000
+26 25 1 1.070514 0.823717 0.000000
+26 25 2 1.069959 0.828565 0.000000
+26 25 3 1.069181 0.834208 0.000000
+26 25 4 1.068316 0.840159 0.000000
+26 25 5 1.066850 0.848268 0.000000
+26 25 6 1.065028 0.857160 0.000000
+26 25 7 1.061658 0.869440 0.000000
+26 25 8 1.058824 0.882046 0.000000
+26 25 9 1.057598 0.895632 0.000000
+26 25 10 1.055310 0.909251 0.000000
+26 25 11 1.050689 0.922943 0.136539
+26 25 12 1.046238 0.935811 0.299569
+26 25 13 1.042070 0.947304 0.397001
+26 25 14 1.038020 0.958207 0.487312
+26 25 15 1.034121 0.968350 0.568468
+26 25 16 1.030642 0.977144 0.640454
+26 25 17 1.027583 0.984589 0.703270
+26 25 18 1.024483 0.991023 0.760776
+26 25 19 1.021353 0.996670 0.814151
+26 25 20 1.018833 1.000819 0.857368
+26 25 21 1.016679 1.004070 0.894488
+26 25 22 1.014796 1.006544 0.924498
+26 25 23 1.013036 1.008664 0.951277
+26 25 24 1.011955 1.010344 0.969492
+26 25 25 1.011101 1.011878 0.984852
+26 25 26 1.010527 1.013091 0.994140
+26 25 27 1.010018 1.014231 1.002026
+26 25 28 1.009658 1.015195 1.007742
+26 25 29 1.009319 1.016134 1.013148
+26 25 30 1.009055 1.016851 1.017112
+26 25 31 1.008797 1.017553 1.020980
+26 26 0 1.072525 0.828911 0.000000
+26 26 1 1.071975 0.833798 0.000000
+26 26 2 1.071405 0.838760 0.000000
+26 26 3 1.070542 0.844866 0.000000
+26 26 4 1.069584 0.851389 0.000000
+26 26 5 1.067969 0.860834 0.000000
+26 26 6 1.065968 0.870762 0.000000
+26 26 7 1.062294 0.882785 0.000000
+26 26 8 1.059093 0.895092 0.000000
+26 26 9 1.057307 0.908251 0.000000
+26 26 10 1.054650 0.921377 0.000000
+26 26 11 1.050074 0.934428 0.161712
+26 26 12 1.045635 0.946734 0.335091
+26 26 13 1.041425 0.957796 0.428151
+26 26 14 1.037361 0.968163 0.514050
+26 26 15 1.033484 0.977635 0.590742
+26 26 16 1.030131 0.986060 0.659114
+26 26 17 1.027301 0.993437 0.719163
+26 26 18 1.024386 0.999703 0.774613
+26 26 19 1.021405 1.005103 0.826485
+26 26 20 1.019077 1.009178 0.867615
+26 26 21 1.017141 1.012457 0.902300
+26 26 22 1.015293 1.014785 0.930507
+26 26 23 1.013485 1.016680 0.955771
+26 26 24 1.012419 1.018280 0.973411
+26 26 25 1.011601 1.019782 0.988511
+26 26 26 1.010934 1.020655 0.996802
+26 26 27 1.010301 1.021383 1.003521
+26 26 28 1.009889 1.022271 1.008970
+26 26 29 1.009509 1.023182 1.014238
+26 26 30 1.009245 1.023881 1.018154
+26 26 31 1.008988 1.024565 1.021979
+26 27 0 1.073318 0.837338 0.000000
+26 27 1 1.072805 0.842185 0.000000
+26 27 2 1.072265 0.847140 0.000000
+26 27 3 1.071328 0.853716 0.000000
+26 27 4 1.070283 0.860855 0.000000
+26 27 5 1.068485 0.871944 0.000000
+26 27 6 1.066325 0.883208 0.000000
+26 27 7 1.062601 0.895231 0.000000
+26 27 8 1.059177 0.907407 0.000000
+26 27 9 1.056654 0.920042 0.000000
+26 27 10 1.053529 0.932601 0.000000
+26 27 11 1.049077 0.944994 0.187814
+26 27 12 1.044697 0.956697 0.371985
+26 27 13 1.040437 0.967250 0.460681
+26 27 14 1.036341 0.977035 0.541983
+26 27 15 1.032458 0.985834 0.613781
+26 27 16 1.029229 0.993848 0.678247
+26 27 17 1.026654 1.001077 0.735382
+26 27 18 1.023949 1.007180 0.788788
+26 27 19 1.021142 1.012408 0.839295
+26 27 20 1.019053 1.016418 0.878244
+26 27 21 1.017394 1.019697 0.910257
+26 27 22 1.015597 1.021933 0.936616
+26 27 23 1.013738 1.023695 0.960405
+26 27 24 1.012688 1.025232 0.977518
+26 27 25 1.011906 1.026694 0.992406
+26 27 26 1.011122 1.027166 0.999543
+26 27 27 1.010337 1.027408 1.004891
+26 27 28 1.009861 1.028236 1.010039
+26 27 29 1.009430 1.029147 1.015158
+26 27 30 1.009176 1.029882 1.019065
+26 27 31 1.008934 1.030606 1.022890
+26 28 0 1.073714 0.843014 0.000000
+26 28 1 1.073205 0.847890 0.000000
+26 28 2 1.072669 0.852874 0.000000
+26 28 3 1.071723 0.859474 0.000000
+26 28 4 1.070667 0.866696 0.000000
+26 28 5 1.068846 0.878272 0.000000
+26 28 6 1.066660 0.890147 0.000000
+26 28 7 1.062897 0.903322 0.000000
+26 28 8 1.059304 0.916287 0.000000
+26 28 9 1.056217 0.928622 0.000000
+26 28 10 1.052723 0.940781 0.025669
+26 28 11 1.048331 0.952551 0.234875
+26 28 12 1.043957 0.963747 0.397817
+26 28 13 1.039614 0.973990 0.483650
+26 28 14 1.035472 0.983420 0.561851
+26 28 15 1.031588 0.991805 0.630240
+26 28 16 1.028336 0.999521 0.692326
+26 28 17 1.025716 1.006567 0.748109
+26 28 18 1.023244 1.012578 0.799837
+26 28 19 1.020887 1.017784 0.848412
+26 28 20 1.018960 1.021764 0.886169
+26 28 21 1.017291 1.025009 0.917437
+26 28 22 1.015562 1.027190 0.942564
+26 28 23 1.013805 1.028887 0.964901
+26 28 24 1.012793 1.030343 0.981102
+26 28 25 1.012028 1.031718 0.995257
+26 28 26 1.011196 1.032190 1.002117
+26 28 27 1.010347 1.032455 1.007294
+26 28 28 1.009763 1.032997 1.011684
+26 28 29 1.009217 1.033579 1.015962
+26 28 30 1.008945 1.034221 1.019816
+26 28 31 1.008692 1.034868 1.023641
+26 29 0 1.074053 0.848296 0.000000
+26 29 1 1.073545 0.853212 0.000000
+26 29 2 1.073008 0.858231 0.000000
+26 29 3 1.072062 0.864792 0.000000
+26 29 4 1.071006 0.872019 0.000000
+26 29 5 1.069185 0.883916 0.000000
+26 29 6 1.066992 0.896299 0.000000
+26 29 7 1.063193 0.910790 0.000000
+26 29 8 1.059437 0.924676 0.000000
+26 29 9 1.055811 0.936745 0.000000
+26 29 10 1.051962 0.948527 0.115422
+26 29 11 1.047621 0.959677 0.284931
+26 29 12 1.043246 0.970382 0.422069
+26 29 13 1.038816 0.980342 0.505254
+26 29 14 1.034624 0.989449 0.580567
+26 29 15 1.030740 0.997458 0.645759
+26 29 16 1.027445 1.004892 0.705682
+26 29 17 1.024737 1.011750 0.760338
+26 29 18 1.022501 1.017678 0.810439
+26 29 19 1.020633 1.022885 0.857000
+26 29 20 1.018857 1.026840 0.893708
+26 29 21 1.017137 1.030045 0.924506
+26 29 22 1.015478 1.032176 0.948490
+26 29 23 1.013845 1.033819 0.969377
+26 29 24 1.012874 1.035191 0.984610
+26 29 25 1.012124 1.036472 0.997958
+26 29 26 1.011253 1.037003 1.004667
+26 29 27 1.010353 1.037362 1.009845
+26 29 28 1.009654 1.037586 1.013412
+26 29 29 1.008984 1.037792 1.016750
+26 29 30 1.008691 1.038323 1.020545
+26 29 31 1.008424 1.038875 1.024370
+26 30 0 1.074392 0.852384 0.000000
+26 30 1 1.073802 0.857265 0.000000
+26 30 2 1.073189 0.862254 0.000000
+26 30 3 1.072242 0.868849 0.000000
+26 30 4 1.071187 0.876104 0.000000
+26 30 5 1.069365 0.887984 0.000000
+26 30 6 1.067179 0.900575 0.000000
+26 30 7 1.063411 0.916243 0.000000
+26 30 8 1.059572 0.930950 0.000000
+26 30 9 1.055515 0.942775 0.055739
+26 30 10 1.051407 0.954310 0.198655
+26 30 11 1.047186 0.965209 0.330675
+26 30 12 1.042835 0.975650 0.443315
+26 30 13 1.038269 0.985328 0.523654
+26 30 14 1.034023 0.994150 0.596105
+26 30 15 1.030187 1.001872 0.658415
+26 30 16 1.026847 1.009067 0.716290
+26 30 17 1.024004 1.015737 0.769729
+26 30 18 1.021892 1.021534 0.818435
+26 30 19 1.020348 1.026652 0.863459
+26 30 20 1.018743 1.030573 0.899376
+26 30 21 1.017102 1.033776 0.929828
+26 30 22 1.015529 1.035904 0.952940
+26 30 23 1.013986 1.037543 0.972716
+26 30 24 1.013003 1.038909 0.987236
+26 30 25 1.012206 1.040184 1.000006
+26 30 26 1.011362 1.040648 1.006618
+26 30 27 1.010507 1.040924 1.011809
+26 30 28 1.009765 1.041118 1.015327
+26 30 29 1.009039 1.041300 1.018606
+26 30 30 1.008601 1.041659 1.021736
+26 30 31 1.008182 1.042029 1.024856
+26 31 0 1.074732 0.856391 0.000000
+26 31 1 1.074053 0.861233 0.000000
+26 31 2 1.073358 0.866188 0.000000
+26 31 3 1.072412 0.872822 0.000000
+26 31 4 1.071356 0.880107 0.000000
+26 31 5 1.069535 0.891948 0.000000
+26 31 6 1.067355 0.904725 0.000000
+26 31 7 1.063625 0.921561 0.000000
+26 31 8 1.059707 0.937083 0.000000
+26 31 9 1.055227 0.948665 0.116685
+26 31 10 1.050866 0.959962 0.281453
+26 31 11 1.046769 0.970634 0.376132
+26 31 12 1.042444 0.980827 0.464361
+26 31 13 1.037740 0.990223 0.541839
+26 31 14 1.033438 0.998763 0.611431
+26 31 15 1.029652 1.006203 0.670881
+26 31 16 1.026269 1.013163 0.726715
+26 31 17 1.023288 1.019645 0.778931
+26 31 18 1.021291 1.025306 0.826256
+26 31 19 1.020061 1.030331 0.869776
+26 31 20 1.018628 1.034216 0.904918
+26 31 21 1.017075 1.037419 0.935034
+26 31 22 1.015589 1.039547 0.957292
+26 31 23 1.014134 1.041186 0.975979
+26 31 24 1.013134 1.042553 0.989804
+26 31 25 1.012286 1.043828 1.002010
+26 31 26 1.011474 1.044215 1.008528
+26 31 27 1.010670 1.044397 1.013734
+26 31 28 1.009890 1.044579 1.017254
+26 31 29 1.009113 1.044761 1.020533
+26 31 30 1.008521 1.044943 1.022958
+26 31 31 1.007941 1.045126 1.025327
+27 0 0 0.634383 0.000000 0.000000
+27 0 1 0.635061 0.000000 0.000000
+27 0 2 0.635749 0.000000 0.000000
+27 0 3 0.636586 0.000000 0.000000
+27 0 4 0.637504 0.000000 0.000000
+27 0 5 0.638986 0.000000 0.000000
+27 0 6 0.640574 0.000000 0.000000
+27 0 7 0.642620 0.000000 0.000000
+27 0 8 0.645350 0.000000 0.004406
+27 0 9 0.650130 0.000000 0.033917
+27 0 10 0.654322 0.000000 0.071383
+27 0 11 0.657215 0.000000 0.126350
+27 0 12 0.660172 0.000000 0.178115
+27 0 13 0.663236 0.000000 0.224543
+27 0 14 0.665878 0.000000 0.271614
+27 0 15 0.667978 0.000000 0.319512
+27 0 16 0.671053 0.000000 0.364125
+27 0 17 0.675100 0.000000 0.405453
+27 0 18 0.679059 0.000000 0.445852
+27 0 19 0.682948 0.000000 0.485528
+27 0 20 0.687798 0.000000 0.520908
+27 0 21 0.693225 0.000000 0.553710
+27 0 22 0.700742 0.000000 0.583505
+27 0 23 0.709209 0.000000 0.611935
+27 0 24 0.723663 0.000000 0.644599
+27 0 25 0.740111 0.000000 0.678676
+27 0 26 0.766729 0.000000 0.719948
+27 0 27 0.795693 0.000000 0.762880
+27 0 28 0.815041 0.000000 0.791518
+27 0 29 0.833016 0.000000 0.818114
+27 0 30 0.846222 0.078946 0.837708
+27 0 31 0.859109 0.172579 0.856835
+27 1 0 0.641674 0.000000 0.000000
+27 1 1 0.642522 0.000000 0.000000
+27 1 2 0.643369 0.000000 0.000000
+27 1 3 0.644206 0.000000 0.000000
+27 1 4 0.645114 0.000000 0.000000
+27 1 5 0.646520 0.000000 0.000000
+27 1 6 0.648062 0.000000 0.000000
+27 1 7 0.650189 0.000000 0.000000
+27 1 8 0.652980 0.000000 0.007527
+27 1 9 0.657761 0.000000 0.037131
+27 1 10 0.661952 0.000000 0.074809
+27 1 11 0.664846 0.000000 0.130246
+27 1 12 0.667773 0.000000 0.182586
+27 1 13 0.670754 0.000000 0.229767
+27 1 14 0.673424 0.000000 0.277470
+27 1 15 0.675694 0.000000 0.325844
+27 1 16 0.678809 0.000000 0.371114
+27 1 17 0.682769 0.000000 0.413283
+27 1 18 0.686693 0.000000 0.454155
+27 1 19 0.690588 0.000000 0.494020
+27 1 20 0.695382 0.000000 0.529587
+27 1 21 0.700715 0.000000 0.562577
+27 1 22 0.707962 0.000000 0.592242
+27 1 23 0.716080 0.000000 0.620395
+27 1 24 0.729133 0.000000 0.651223
+27 1 25 0.743831 0.000000 0.682943
+27 1 26 0.770116 0.000000 0.723773
+27 1 27 0.799074 0.000000 0.766705
+27 1 28 0.818427 0.000000 0.795426
+27 1 29 0.836407 0.000331 0.822116
+27 1 30 0.849613 0.092432 0.841710
+27 1 31 0.862501 0.186071 0.860831
+27 2 0 0.649124 0.000000 0.000000
+27 2 1 0.650126 0.000000 0.000000
+27 2 2 0.651117 0.000000 0.000000
+27 2 3 0.651965 0.000000 0.000000
+27 2 4 0.652875 0.000000 0.000000
+27 2 5 0.654215 0.000000 0.000000
+27 2 6 0.655716 0.000000 0.000000
+27 2 7 0.657921 0.000000 0.000000
+27 2 8 0.660769 0.000000 0.009960
+27 2 9 0.665550 0.000000 0.040107
+27 2 10 0.669741 0.000000 0.078305
+27 2 11 0.672635 0.000000 0.134218
+27 2 12 0.675535 0.000000 0.187145
+27 2 13 0.678444 0.000000 0.235095
+27 2 14 0.681146 0.000000 0.283446
+27 2 15 0.683580 0.000000 0.332313
+27 2 16 0.686734 0.000000 0.378257
+27 2 17 0.690607 0.000000 0.421278
+27 2 18 0.694495 0.000000 0.462629
+27 2 19 0.698395 0.000000 0.502682
+27 2 20 0.703130 0.000000 0.538445
+27 2 21 0.708365 0.000000 0.571634
+27 2 22 0.715341 0.000000 0.601171
+27 2 23 0.723108 0.000000 0.629048
+27 2 24 0.734818 0.000000 0.658119
+27 2 25 0.747842 0.000000 0.687589
+27 2 26 0.773707 0.000000 0.727868
+27 2 27 0.802536 0.000000 0.770642
+27 2 28 0.821881 0.000000 0.799415
+27 2 29 0.839872 0.013664 0.826187
+27 2 30 0.853078 0.106214 0.845782
+27 2 31 0.865965 0.199859 0.864898
+27 3 0 0.658949 0.000000 0.000000
+27 3 1 0.659868 0.000000 0.000000
+27 3 2 0.660794 0.000000 0.000000
+27 3 3 0.661817 0.000000 0.000000
+27 3 4 0.662890 0.000000 0.000000
+27 3 5 0.664311 0.000000 0.000000
+27 3 6 0.665880 0.000000 0.000000
+27 3 7 0.668084 0.000000 0.000000
+27 3 8 0.670931 0.000000 0.002095
+27 3 9 0.675706 0.000000 0.039493
+27 3 10 0.679895 0.000000 0.082853
+27 3 11 0.682795 0.000000 0.139330
+27 3 12 0.685729 0.000000 0.192997
+27 3 13 0.688721 0.000000 0.241982
+27 3 14 0.691507 0.000000 0.291242
+27 3 15 0.694028 0.000000 0.340855
+27 3 16 0.697185 0.000000 0.387691
+27 3 17 0.700976 0.000000 0.431752
+27 3 18 0.704825 0.000000 0.473665
+27 3 19 0.708719 0.000000 0.513905
+27 3 20 0.713346 0.000000 0.549974
+27 3 21 0.718412 0.000000 0.583539
+27 3 22 0.725090 0.000000 0.612996
+27 3 23 0.732502 0.000000 0.640584
+27 3 24 0.743729 0.000000 0.669090
+27 3 25 0.756228 0.000000 0.697901
+27 3 26 0.780373 0.000000 0.736005
+27 3 27 0.807205 0.000000 0.776253
+27 3 28 0.826368 0.000000 0.804627
+27 3 29 0.844434 0.031316 0.831306
+27 3 30 0.857645 0.124449 0.850900
+27 3 31 0.870533 0.218087 0.870022
+27 4 0 0.669682 0.000000 0.000000
+27 4 1 0.670540 0.000000 0.000000
+27 4 2 0.671418 0.000000 0.000000
+27 4 3 0.672594 0.000000 0.000000
+27 4 4 0.673815 0.000000 0.000000
+27 4 5 0.675339 0.000000 0.000000
+27 4 6 0.676990 0.000000 0.000000
+27 4 7 0.679195 0.000000 0.000000
+27 4 8 0.682041 0.000000 0.000000
+27 4 9 0.686810 0.000000 0.036968
+27 4 10 0.691001 0.000000 0.087819
+27 4 11 0.693916 0.000000 0.144936
+27 4 12 0.696886 0.000000 0.199426
+27 4 13 0.699949 0.000000 0.249540
+27 4 14 0.702823 0.000000 0.299791
+27 4 15 0.705452 0.000000 0.350217
+27 4 16 0.708620 0.000000 0.398031
+27 4 17 0.712328 0.000000 0.443231
+27 4 18 0.716133 0.000000 0.485753
+27 4 19 0.720014 0.000000 0.526193
+27 4 20 0.724522 0.000000 0.562587
+27 4 21 0.729406 0.000000 0.596554
+27 4 22 0.735763 0.000000 0.625935
+27 4 23 0.742788 0.000000 0.653232
+27 4 24 0.753565 0.000000 0.681215
+27 4 25 0.765593 0.000000 0.709427
+27 4 26 0.787817 0.000000 0.745083
+27 4 27 0.812393 0.000000 0.782456
+27 4 28 0.831313 0.000000 0.810379
+27 4 29 0.849424 0.050654 0.836951
+27 4 30 0.862638 0.144427 0.856543
+27 4 31 0.875526 0.238060 0.875670
+27 5 0 0.686776 0.000000 0.000000
+27 5 1 0.687716 0.000000 0.000000
+27 5 2 0.688671 0.000000 0.000000
+27 5 3 0.689853 0.000000 0.000000
+27 5 4 0.691109 0.000000 0.000000
+27 5 5 0.692879 0.000000 0.000000
+27 5 6 0.694730 0.000000 0.000000
+27 5 7 0.696934 0.000000 0.000000
+27 5 8 0.699780 0.000000 0.000000
+27 5 9 0.704550 0.000000 0.021060
+27 5 10 0.708766 0.000000 0.095712
+27 5 11 0.711763 0.000000 0.153996
+27 5 12 0.714784 0.000000 0.209888
+27 5 13 0.717847 0.000000 0.261795
+27 5 14 0.720828 0.000000 0.313616
+27 5 15 0.723703 0.000000 0.365328
+27 5 16 0.726948 0.000000 0.414702
+27 5 17 0.730562 0.000000 0.461738
+27 5 18 0.734287 0.000000 0.505215
+27 5 19 0.738097 0.000000 0.545924
+27 5 20 0.742414 0.000000 0.582783
+27 5 21 0.747036 0.000000 0.617333
+27 5 22 0.752897 0.000000 0.646677
+27 5 23 0.759321 0.000000 0.673655
+27 5 24 0.769878 0.000000 0.701418
+27 5 25 0.781813 0.000000 0.729442
+27 5 26 0.800709 0.000000 0.760747
+27 5 27 0.821212 0.000000 0.792810
+27 5 28 0.839469 0.000000 0.819904
+27 5 29 0.857405 0.081794 0.846289
+27 5 30 0.870608 0.176611 0.865863
+27 5 31 0.883496 0.270251 0.884984
+27 6 0 0.705847 0.000000 0.000000
+27 6 1 0.706870 0.000000 0.000000
+27 6 2 0.707903 0.000000 0.000000
+27 6 3 0.709089 0.000000 0.000000
+27 6 4 0.710375 0.000000 0.000000
+27 6 5 0.712361 0.000000 0.000000
+27 6 6 0.714387 0.000000 0.000000
+27 6 7 0.716593 0.000000 0.000000
+27 6 8 0.719443 0.000000 0.000000
+27 6 9 0.724229 0.000000 0.009810
+27 6 10 0.728476 0.000000 0.104731
+27 6 11 0.731539 0.000000 0.163998
+27 6 12 0.734603 0.000000 0.221250
+27 6 13 0.737667 0.000000 0.275142
+27 6 14 0.740714 0.000000 0.328715
+27 6 15 0.743739 0.000000 0.381876
+27 6 16 0.747045 0.000000 0.432861
+27 6 17 0.750633 0.000000 0.481670
+27 6 18 0.754294 0.000000 0.526344
+27 6 19 0.758014 0.000000 0.567802
+27 6 20 0.762164 0.000000 0.605205
+27 6 21 0.766573 0.000000 0.640175
+27 6 22 0.771953 0.000000 0.669679
+27 6 23 0.777774 0.000000 0.696698
+27 6 24 0.787903 0.000000 0.723998
+27 6 25 0.799468 0.000000 0.751392
+27 6 26 0.815617 0.000000 0.779074
+27 6 27 0.832824 0.000000 0.806822
+27 6 28 0.850015 0.010369 0.832564
+27 6 29 0.867204 0.128878 0.858020
+27 6 30 0.879945 0.218803 0.876988
+27 6 31 0.892390 0.306823 0.895523
+27 7 0 0.733487 0.000000 0.000000
+27 7 1 0.734598 0.000000 0.000000
+27 7 2 0.735713 0.000000 0.000000
+27 7 3 0.736893 0.000000 0.000000
+27 7 4 0.738185 0.000000 0.000000
+27 7 5 0.740258 0.000000 0.000000
+27 7 6 0.742357 0.000000 0.000000
+27 7 7 0.744568 0.000000 0.000000
+27 7 8 0.747443 0.000000 0.000000
+27 7 9 0.752311 0.000000 0.018742
+27 7 10 0.756614 0.000000 0.118632
+27 7 11 0.759677 0.000000 0.178081
+27 7 12 0.762743 0.000000 0.236507
+27 7 13 0.765813 0.000000 0.293226
+27 7 14 0.768748 0.000000 0.349332
+27 7 15 0.771511 0.000000 0.404650
+27 7 16 0.774814 0.000000 0.457465
+27 7 17 0.778658 0.000000 0.507778
+27 7 18 0.782334 0.000000 0.554700
+27 7 19 0.785879 0.000000 0.598985
+27 7 20 0.789963 0.000000 0.637272
+27 7 21 0.794372 0.000000 0.671960
+27 7 22 0.799335 0.000000 0.702474
+27 7 23 0.804549 0.000000 0.731092
+27 7 24 0.813349 0.000000 0.756883
+27 7 25 0.823344 0.001906 0.781733
+27 7 26 0.839261 0.050127 0.808937
+27 7 27 0.856544 0.092201 0.836685
+27 7 28 0.870921 0.166334 0.858808
+27 7 29 0.884883 0.245048 0.880127
+27 7 30 0.895207 0.304362 0.895933
+27 7 31 0.905288 0.362383 0.911371
+27 8 0 0.759650 0.000000 0.000000
+27 8 1 0.760805 0.000000 0.000000
+27 8 2 0.761965 0.000000 0.000000
+27 8 3 0.763185 0.000000 0.000000
+27 8 4 0.764525 0.000000 0.000000
+27 8 5 0.766714 0.000000 0.000000
+27 8 6 0.768939 0.000000 0.000000
+27 8 7 0.771327 0.000000 0.000000
+27 8 8 0.774328 0.000000 0.000000
+27 8 9 0.779169 0.000000 0.025432
+27 8 10 0.783454 0.000000 0.129392
+27 8 11 0.786518 0.000000 0.190093
+27 8 12 0.789559 0.000000 0.250280
+27 8 13 0.792565 0.000000 0.309612
+27 8 14 0.795359 0.000000 0.368102
+27 8 15 0.797883 0.000000 0.425510
+27 8 16 0.801119 0.000000 0.480074
+27 8 17 0.805068 0.000000 0.531792
+27 8 18 0.808689 0.000000 0.580602
+27 8 19 0.812055 0.000000 0.627150
+27 8 20 0.815963 0.000000 0.666327
+27 8 21 0.820197 0.000000 0.701082
+27 8 22 0.824686 0.000000 0.732301
+27 8 23 0.829292 0.000000 0.761911
+27 8 24 0.836876 0.000000 0.786502
+27 8 25 0.845453 0.105600 0.809420
+27 8 26 0.860776 0.180617 0.835764
+27 8 27 0.877655 0.247659 0.862899
+27 8 28 0.889596 0.297209 0.881881
+27 8 29 0.900832 0.344260 0.899698
+27 8 30 0.909119 0.379223 0.912822
+27 8 31 0.917209 0.413380 0.925634
+27 9 0 0.781377 0.004588 0.000000
+27 9 1 0.782450 0.005756 0.000000
+27 9 2 0.783544 0.006991 0.000000
+27 9 3 0.784939 0.009247 0.000000
+27 9 4 0.786458 0.011758 0.000000
+27 9 5 0.788844 0.016057 0.000000
+27 9 6 0.791359 0.020895 0.000000
+27 9 7 0.794436 0.028064 0.000000
+27 9 8 0.797866 0.033954 0.000000
+27 9 9 0.802357 0.036009 0.025394
+27 9 10 0.806401 0.039038 0.130728
+27 9 11 0.809465 0.044209 0.195890
+27 9 12 0.812404 0.048939 0.259604
+27 9 13 0.815135 0.052935 0.320903
+27 9 14 0.817702 0.056561 0.381329
+27 9 15 0.820056 0.059711 0.440630
+27 9 16 0.823032 0.062513 0.496694
+27 9 17 0.826631 0.064966 0.549523
+27 9 18 0.829991 0.066803 0.599139
+27 9 19 0.833165 0.068160 0.646257
+27 9 20 0.836563 0.070005 0.686346
+27 9 21 0.840097 0.072143 0.722217
+27 9 22 0.843946 0.077352 0.753219
+27 9 23 0.847939 0.083956 0.782008
+27 9 24 0.854649 0.130099 0.806323
+27 9 25 0.862263 0.189422 0.829146
+27 9 26 0.875907 0.249800 0.853482
+27 9 27 0.890943 0.310421 0.878167
+27 9 28 0.901581 0.352812 0.895443
+27 9 29 0.911592 0.392600 0.911662
+27 9 30 0.918981 0.421991 0.923546
+27 9 31 0.926196 0.450689 0.935142
+27 10 0 0.804630 0.098939 0.000000
+27 10 1 0.805648 0.100898 0.000000
+27 10 2 0.806696 0.102956 0.000000
+27 10 3 0.808212 0.106507 0.000000
+27 10 4 0.809852 0.110457 0.000000
+27 10 5 0.812370 0.117196 0.000000
+27 10 6 0.815052 0.124545 0.000000
+27 10 7 0.818439 0.134540 0.000000
+27 10 8 0.822030 0.143049 0.000000
+27 10 9 0.826229 0.147095 0.024914
+27 10 10 0.830021 0.152409 0.131297
+27 10 11 0.832919 0.160510 0.200663
+27 10 12 0.835653 0.168050 0.267787
+27 10 13 0.838117 0.174653 0.331172
+27 10 14 0.840420 0.180631 0.393714
+27 10 15 0.842517 0.185806 0.455170
+27 10 16 0.845179 0.190489 0.512813
+27 10 17 0.848406 0.194678 0.566644
+27 10 18 0.851407 0.197851 0.617164
+27 10 19 0.854234 0.200232 0.665108
+27 10 20 0.857117 0.203322 0.706080
+27 10 21 0.860034 0.206836 0.742867
+27 10 22 0.863250 0.214486 0.773826
+27 10 23 0.866601 0.224015 0.802137
+27 10 24 0.872489 0.244671 0.826019
+27 10 25 0.879223 0.269036 0.848425
+27 10 26 0.891046 0.317250 0.870577
+27 10 27 0.904043 0.370966 0.892669
+27 10 28 0.913329 0.407200 0.908301
+27 10 29 0.922085 0.440935 0.923009
+27 10 30 0.928627 0.465961 0.933848
+27 10 31 0.935021 0.490407 0.944430
+27 11 0 0.831242 0.165576 0.000000
+27 11 1 0.832260 0.168011 0.000000
+27 11 2 0.833308 0.170527 0.000000
+27 11 3 0.834824 0.174254 0.000000
+27 11 4 0.836463 0.178387 0.000000
+27 11 5 0.838970 0.185366 0.000000
+27 11 6 0.841544 0.192240 0.000000
+27 11 7 0.844413 0.198662 0.000000
+27 11 8 0.847573 0.205180 0.000000
+27 11 9 0.851608 0.211984 0.023462
+27 11 10 0.855122 0.219279 0.130183
+27 11 11 0.857488 0.227657 0.203186
+27 11 12 0.859795 0.235860 0.273461
+27 11 13 0.862001 0.243773 0.339191
+27 11 14 0.863963 0.250897 0.404247
+27 11 15 0.865612 0.257007 0.468435
+27 11 16 0.867839 0.262776 0.527827
+27 11 17 0.870645 0.268206 0.582422
+27 11 18 0.873075 0.272421 0.634059
+27 11 19 0.875213 0.275691 0.683396
+27 11 20 0.877567 0.279514 0.725187
+27 11 21 0.880053 0.283668 0.762451
+27 11 22 0.882648 0.289962 0.793749
+27 11 23 0.885294 0.297229 0.822335
+27 11 24 0.890480 0.316337 0.845440
+27 11 25 0.896514 0.339392 0.866718
+27 11 26 0.906200 0.380886 0.886299
+27 11 27 0.916730 0.426635 0.905490
+27 11 28 0.924554 0.458911 0.919607
+27 11 29 0.931991 0.489262 0.932999
+27 11 30 0.937795 0.512578 0.943221
+27 11 31 0.943489 0.535425 0.953232
+27 12 0 0.858062 0.229503 0.000000
+27 12 1 0.859079 0.232306 0.000000
+27 12 2 0.860125 0.235175 0.000000
+27 12 3 0.861608 0.239046 0.000000
+27 12 4 0.863209 0.243327 0.000000
+27 12 5 0.865646 0.250488 0.000000
+27 12 6 0.868121 0.257429 0.000000
+27 12 7 0.870763 0.263417 0.000000
+27 12 8 0.873702 0.269989 0.000000
+27 12 9 0.877532 0.278313 0.014744
+27 12 10 0.880761 0.286960 0.119411
+27 12 11 0.882667 0.296316 0.201187
+27 12 12 0.884526 0.305529 0.277972
+27 12 13 0.886307 0.314504 0.346441
+27 12 14 0.887864 0.322683 0.414092
+27 12 15 0.889133 0.329842 0.480692
+27 12 16 0.890891 0.336490 0.541900
+27 12 17 0.893137 0.342630 0.597718
+27 12 18 0.895006 0.347706 0.650560
+27 12 19 0.896581 0.351954 0.701089
+27 12 20 0.898410 0.356261 0.743625
+27 12 21 0.900392 0.360604 0.781365
+27 12 22 0.902368 0.366009 0.812899
+27 12 23 0.904343 0.371897 0.841614
+27 12 24 0.908689 0.389066 0.864062
+27 12 25 0.913825 0.409995 0.884421
+27 12 26 0.921559 0.445417 0.901869
+27 12 27 0.929892 0.484184 0.918646
+27 12 28 0.936347 0.512656 0.931402
+27 12 29 0.942534 0.539658 0.943583
+27 12 30 0.947479 0.560838 0.953065
+27 12 31 0.952342 0.581631 0.962368
+27 13 0 0.885226 0.288912 0.000000
+27 13 1 0.886243 0.291903 0.000000
+27 13 2 0.887285 0.294954 0.000000
+27 13 3 0.888679 0.298913 0.000000
+27 13 4 0.890183 0.303282 0.000000
+27 13 5 0.892450 0.310531 0.000000
+27 13 6 0.894837 0.318442 0.000000
+27 13 7 0.897741 0.329225 0.000000
+27 13 8 0.900809 0.339259 0.000000
+27 13 9 0.904365 0.347043 0.000000
+27 13 10 0.907298 0.355990 0.092544
+27 13 11 0.908860 0.367497 0.191652
+27 13 12 0.910239 0.378296 0.280544
+27 13 13 0.911314 0.387917 0.352410
+27 13 14 0.912359 0.397003 0.422792
+27 13 15 0.913366 0.405402 0.491266
+27 13 16 0.914595 0.412583 0.554405
+27 13 17 0.916048 0.418546 0.612209
+27 13 18 0.917373 0.424180 0.666404
+27 13 19 0.918598 0.429556 0.717791
+27 13 20 0.919906 0.433934 0.760946
+27 13 21 0.921263 0.437713 0.799162
+27 13 22 0.922624 0.443006 0.830764
+27 13 23 0.923986 0.448988 0.859360
+27 13 24 0.927260 0.463567 0.881351
+27 13 25 0.931171 0.481011 0.901140
+27 13 26 0.937257 0.511440 0.917183
+27 13 27 0.943846 0.544866 0.932361
+27 13 28 0.949087 0.569791 0.944012
+27 13 29 0.954136 0.593502 0.955160
+27 13 30 0.958026 0.611839 0.963696
+27 13 31 0.961838 0.629817 0.972058
+27 14 0 0.914082 0.357062 0.000000
+27 14 1 0.914949 0.359997 0.000000
+27 14 2 0.915834 0.362991 0.000000
+27 14 3 0.916985 0.366876 0.000000
+27 14 4 0.918226 0.371160 0.000000
+27 14 5 0.920089 0.378251 0.000000
+27 14 6 0.922103 0.386392 0.000000
+27 14 7 0.924772 0.399091 0.000000
+27 14 8 0.927579 0.410741 0.000000
+27 14 9 0.930797 0.419248 0.000000
+27 14 10 0.933329 0.429161 0.044544
+27 14 11 0.934349 0.442171 0.172819
+27 14 12 0.935169 0.454141 0.281257
+27 14 13 0.935653 0.464380 0.356632
+27 14 14 0.936085 0.474121 0.430039
+27 14 15 0.936448 0.483223 0.500914
+27 14 16 0.937017 0.490743 0.565937
+27 14 17 0.937791 0.496682 0.625108
+27 14 18 0.938516 0.502711 0.680524
+27 14 19 0.939202 0.508810 0.733019
+27 14 20 0.939968 0.513205 0.776806
+27 14 21 0.940780 0.516579 0.815370
+27 14 22 0.941549 0.521441 0.847295
+27 14 23 0.942299 0.526980 0.876202
+27 14 24 0.944617 0.539177 0.897847
+27 14 25 0.947459 0.553594 0.917071
+27 14 26 0.951989 0.578898 0.931768
+27 14 27 0.956909 0.606713 0.945420
+27 14 28 0.960913 0.627666 0.955797
+27 14 29 0.964786 0.647639 0.965707
+27 14 30 0.967797 0.663217 0.973321
+27 14 31 0.970751 0.678501 0.980781
+27 15 0 0.945114 0.436451 0.000000
+27 15 1 0.945637 0.439016 0.000000
+27 15 2 0.946171 0.441645 0.000000
+27 15 3 0.946879 0.445248 0.000000
+27 15 4 0.947644 0.449226 0.000000
+27 15 5 0.948801 0.455840 0.000000
+27 15 6 0.950077 0.463260 0.000000
+27 15 7 0.951871 0.474172 0.000000
+27 15 8 0.953916 0.485069 0.000000
+27 15 9 0.956714 0.495920 0.000000
+27 15 10 0.958708 0.507654 0.000000
+27 15 11 0.958936 0.521334 0.142031
+27 15 12 0.959093 0.533942 0.279578
+27 15 13 0.959134 0.544763 0.358608
+27 15 14 0.958821 0.554837 0.435417
+27 15 15 0.958052 0.563951 0.509370
+27 15 16 0.957790 0.571562 0.576218
+27 15 17 0.958033 0.577671 0.635959
+27 15 18 0.958086 0.583887 0.692428
+27 15 19 0.957990 0.590186 0.746351
+27 15 20 0.958185 0.594531 0.790788
+27 15 21 0.958554 0.597705 0.829534
+27 15 22 0.958764 0.601724 0.862110
+27 15 23 0.958900 0.606129 0.891882
+27 15 24 0.960413 0.616214 0.913324
+27 15 25 0.962385 0.628193 0.931990
+27 15 26 0.965477 0.648199 0.945416
+27 15 27 0.968827 0.670058 0.957634
+27 15 28 0.971563 0.686493 0.966521
+27 15 29 0.974210 0.702153 0.974933
+27 15 30 0.976571 0.715081 0.981654
+27 15 31 0.978912 0.727826 0.988262
+27 16 0 0.971590 0.504337 0.000000
+27 16 1 0.971937 0.506901 0.000000
+27 16 2 0.972290 0.509537 0.000000
+27 16 3 0.972736 0.513236 0.000000
+27 16 4 0.973222 0.517319 0.000000
+27 16 5 0.973988 0.524083 0.000000
+27 16 6 0.974807 0.531554 0.000000
+27 16 7 0.975858 0.542090 0.000000
+27 16 8 0.977225 0.553045 0.000000
+27 16 9 0.979544 0.565256 0.000000
+27 16 10 0.980991 0.578119 0.000000
+27 16 11 0.980518 0.592416 0.123853
+27 16 12 0.980006 0.605609 0.275442
+27 16 13 0.979428 0.616962 0.358471
+27 16 14 0.978386 0.627293 0.438514
+27 16 15 0.976745 0.636310 0.514718
+27 16 16 0.975759 0.644087 0.583306
+27 16 17 0.975428 0.650625 0.644279
+27 16 18 0.974909 0.657182 0.701845
+27 16 19 0.974244 0.663754 0.756762
+27 16 20 0.973951 0.668202 0.801896
+27 16 21 0.973879 0.671376 0.841162
+27 16 22 0.973560 0.674842 0.874161
+27 16 23 0.973128 0.678441 0.904312
+27 16 24 0.973943 0.686668 0.925673
+27 16 25 0.975174 0.696437 0.944104
+27 16 26 0.977200 0.712191 0.956672
+27 16 27 0.979410 0.729326 0.967887
+27 16 28 0.981198 0.742209 0.975785
+27 16 29 0.982927 0.754484 0.983210
+27 16 30 0.984656 0.765176 0.989166
+27 16 31 0.986384 0.775762 0.995025
+27 17 0 0.993508 0.560720 0.000000
+27 17 1 0.993850 0.563654 0.000000
+27 17 2 0.994193 0.566667 0.000000
+27 17 3 0.994557 0.570842 0.000000
+27 17 4 0.994962 0.575438 0.000000
+27 17 5 0.995651 0.582979 0.000000
+27 17 6 0.996294 0.591275 0.000000
+27 17 7 0.996731 0.602845 0.000000
+27 17 8 0.997505 0.614670 0.000000
+27 17 9 0.999288 0.627257 0.000000
+27 17 10 1.000176 0.640554 0.000000
+27 17 11 0.999096 0.655415 0.118284
+27 17 12 0.997907 0.669142 0.268849
+27 17 13 0.996537 0.680977 0.356222
+27 17 14 0.994780 0.691489 0.439330
+27 17 15 0.992526 0.700300 0.516957
+27 17 16 0.990925 0.708319 0.587202
+27 17 17 0.989975 0.715545 0.650067
+27 17 18 0.988986 0.722598 0.708775
+27 17 19 0.987965 0.729516 0.764250
+27 17 20 0.987265 0.734218 0.810131
+27 17 21 0.986756 0.737592 0.850255
+27 17 22 0.985939 0.740793 0.883449
+27 17 23 0.984982 0.743916 0.913494
+27 17 24 0.985206 0.750538 0.934894
+27 17 25 0.985824 0.758327 0.953413
+27 17 26 0.987157 0.770873 0.965534
+27 17 27 0.988656 0.784518 0.976179
+27 17 28 0.989819 0.794814 0.983589
+27 17 29 0.990935 0.804633 0.990538
+27 17 30 0.992051 0.813502 0.995859
+27 17 31 0.993167 0.822308 1.001072
+27 18 0 1.013264 0.615119 0.000000
+27 18 1 1.013455 0.618163 0.000000
+27 18 2 1.013646 0.621287 0.000000
+27 18 3 1.013823 0.625604 0.000000
+27 18 4 1.014022 0.630355 0.000000
+27 18 5 1.014370 0.638145 0.000000
+27 18 6 1.014675 0.646798 0.000000
+27 18 7 1.014792 0.659191 0.000000
+27 18 8 1.015170 0.671781 0.000000
+27 18 9 1.016327 0.684962 0.000000
+27 18 10 1.016547 0.698683 0.000000
+27 18 11 1.014706 0.713589 0.111752
+27 18 12 1.012784 0.727343 0.260792
+27 18 13 1.010729 0.739174 0.352392
+27 18 14 1.008297 0.749748 0.438641
+27 18 15 1.005381 0.758703 0.518010
+27 18 16 1.003236 0.766932 0.589803
+27 18 17 1.001863 0.774432 0.654018
+27 18 18 1.000436 0.781844 0.713956
+27 18 19 0.998967 0.789188 0.770567
+27 18 20 0.997883 0.794002 0.817106
+27 18 21 0.997029 0.797297 0.857602
+27 18 22 0.995846 0.800370 0.891106
+27 18 23 0.994515 0.803341 0.921432
+27 18 24 0.994331 0.808603 0.942696
+27 18 25 0.994530 0.814630 0.960940
+27 18 26 0.995292 0.823972 0.972505
+27 18 27 0.996184 0.834079 0.982530
+27 18 28 0.996908 0.842210 0.989545
+27 18 29 0.997608 0.850058 0.996130
+27 18 30 0.998262 0.857026 1.001058
+27 18 31 0.998913 0.863936 1.005876
+27 19 0 1.031337 0.667976 0.000000
+27 19 1 1.031266 0.670926 0.000000
+27 19 2 1.031194 0.673954 0.000000
+27 19 3 1.031103 0.678153 0.000000
+27 19 4 1.030998 0.682781 0.000000
+27 19 5 1.030799 0.690410 0.000000
+27 19 6 1.030641 0.699055 0.000000
+27 19 7 1.030665 0.712107 0.000000
+27 19 8 1.030799 0.725381 0.000000
+27 19 9 1.031262 0.739327 0.000000
+27 19 10 1.030729 0.753461 0.000000
+27 19 11 1.028008 0.768010 0.104471
+27 19 12 1.025310 0.781397 0.251596
+27 19 13 1.022653 0.792846 0.347332
+27 19 14 1.019576 0.803387 0.436780
+27 19 15 1.015960 0.812762 0.518142
+27 19 16 1.013329 0.821175 0.591395
+27 19 17 1.011681 0.828626 0.656538
+27 19 18 1.009842 0.836292 0.717774
+27 19 19 1.007854 0.844124 0.775972
+27 19 20 1.006403 0.848937 0.823102
+27 19 21 1.005275 0.851939 0.863592
+27 19 22 1.003831 0.854988 0.897494
+27 19 23 1.002242 0.858059 0.928403
+27 19 24 1.001794 0.862153 0.949394
+27 19 25 1.001724 0.866587 0.967079
+27 19 26 1.002010 0.872727 0.978006
+27 19 27 1.002376 0.879262 0.987372
+27 19 28 1.002805 0.885553 0.994063
+27 19 29 1.003242 0.891809 1.000372
+27 19 30 1.003552 0.896815 1.005095
+27 19 31 1.003852 0.901738 1.009713
+27 20 0 1.044354 0.706962 0.000000
+27 20 1 1.044239 0.710229 0.000000
+27 20 2 1.044123 0.713575 0.000000
+27 20 3 1.043993 0.718093 0.000000
+27 20 4 1.043838 0.723070 0.000000
+27 20 5 1.043502 0.731257 0.000000
+27 20 6 1.043135 0.740336 0.000000
+27 20 7 1.042636 0.753281 0.000000
+27 20 8 1.042253 0.766562 0.000000
+27 20 9 1.042223 0.780849 0.000000
+27 20 10 1.041179 0.795086 0.000000
+27 20 11 1.037908 0.809210 0.100000
+27 20 12 1.034699 0.822454 0.246180
+27 20 13 1.031594 0.834230 0.345077
+27 20 14 1.028102 0.844963 0.436914
+27 20 15 1.024110 0.854354 0.519674
+27 20 16 1.021130 0.862987 0.594075
+27 20 17 1.019161 0.870862 0.660118
+27 20 18 1.016947 0.878543 0.721947
+27 20 19 1.014542 0.886073 0.780501
+27 20 20 1.012807 0.890895 0.827878
+27 20 21 1.011474 0.894091 0.868550
+27 20 22 1.009859 0.896984 0.902368
+27 20 23 1.008116 0.899740 0.933072
+27 20 24 1.007430 0.903040 0.953897
+27 20 25 1.007096 0.906521 0.971428
+27 20 26 1.007038 0.910743 0.982077
+27 20 27 1.007043 0.915136 0.991138
+27 20 28 1.007194 0.919553 0.997598
+27 20 29 1.007365 0.923974 1.003686
+27 20 30 1.007487 0.927840 1.008270
+27 20 31 1.007606 0.931670 1.012753
+27 21 0 1.054337 0.737624 0.000000
+27 21 1 1.054309 0.741456 0.000000
+27 21 2 1.054282 0.745366 0.000000
+27 21 3 1.054251 0.750467 0.000000
+27 21 4 1.054196 0.756077 0.000000
+27 21 5 1.053970 0.765253 0.000000
+27 21 6 1.053546 0.775029 0.000000
+27 21 7 1.052264 0.787410 0.000000
+27 21 8 1.051202 0.800290 0.000000
+27 21 9 1.050799 0.814665 0.000000
+27 21 10 1.049390 0.828817 0.000000
+27 21 11 1.045769 0.842478 0.097213
+27 21 12 1.042208 0.855714 0.243032
+27 21 13 1.038747 0.868242 0.344504
+27 21 14 1.034975 0.879300 0.438245
+27 21 15 1.030803 0.888466 0.522044
+27 21 16 1.027557 0.897340 0.597407
+27 21 17 1.025238 0.905922 0.664333
+27 21 18 1.022671 0.913476 0.726334
+27 21 19 1.019910 0.920229 0.784505
+27 21 20 1.017939 0.925065 0.831923
+27 21 21 1.016442 0.928749 0.872888
+27 21 22 1.014712 0.931408 0.906334
+27 21 23 1.012876 0.933600 0.936362
+27 21 24 1.011970 0.936331 0.957083
+27 21 25 1.011374 0.939241 0.974702
+27 21 26 1.011053 0.942314 0.985292
+27 21 27 1.010796 0.945424 0.994259
+27 21 28 1.010679 0.947948 1.000542
+27 21 29 1.010582 0.950388 1.006442
+27 21 30 1.010610 0.953608 1.010926
+27 21 31 1.010647 0.956879 1.015315
+27 22 0 1.061589 0.762700 0.000000
+27 22 1 1.061529 0.766578 0.000000
+27 22 2 1.061465 0.770540 0.000000
+27 22 3 1.061337 0.775749 0.000000
+27 22 4 1.061175 0.781457 0.000000
+27 22 5 1.060780 0.790654 0.000000
+27 22 6 1.060207 0.800573 0.000000
+27 22 7 1.058865 0.813623 0.000000
+27 22 8 1.057626 0.826930 0.000000
+27 22 9 1.056693 0.841009 0.000000
+27 22 10 1.054864 0.855031 0.000000
+27 22 11 1.051066 0.868926 0.097908
+27 22 12 1.047284 0.882250 0.244715
+27 22 13 1.043532 0.894621 0.347941
+27 22 14 1.039571 0.905900 0.443068
+27 22 15 1.035343 0.915777 0.527783
+27 22 16 1.031926 0.924755 0.603472
+27 22 17 1.029321 0.932834 0.670135
+27 22 18 1.026466 0.940074 0.731814
+27 22 19 1.023418 0.946662 0.789615
+27 22 20 1.021264 0.951364 0.836543
+27 22 21 1.019648 0.954934 0.876946
+27 22 22 1.017902 0.957703 0.910120
+27 22 23 1.016097 0.960106 0.940010
+27 22 24 1.015050 0.962462 0.960377
+27 22 25 1.014255 0.964803 0.977571
+27 22 26 1.013782 0.966983 0.987897
+27 22 27 1.013382 0.969127 0.996636
+27 22 28 1.013125 0.970767 1.002726
+27 22 29 1.012889 0.972334 1.008438
+27 22 30 1.012824 0.974725 1.012883
+27 22 31 1.012771 0.977172 1.017243
+27 23 0 1.067601 0.785235 0.000000
+27 23 1 1.067453 0.788925 0.000000
+27 23 2 1.067295 0.792704 0.000000
+27 23 3 1.066981 0.797808 0.000000
+27 23 4 1.066619 0.803371 0.000000
+27 23 5 1.065927 0.812149 0.000000
+27 23 6 1.065164 0.821958 0.000000
+27 23 7 1.064091 0.836236 0.000000
+27 23 8 1.062902 0.850347 0.000000
+27 23 9 1.061367 0.863956 0.000000
+27 23 10 1.059094 0.877827 0.000000
+27 23 11 1.055197 0.892274 0.100185
+27 23 12 1.051256 0.905729 0.248594
+27 23 13 1.047241 0.917530 0.353199
+27 23 14 1.043132 0.928985 0.449478
+27 23 15 1.038904 0.939996 0.535052
+27 23 16 1.035359 0.949015 0.610779
+27 23 17 1.032496 0.956041 0.676659
+27 23 18 1.029385 0.962885 0.737791
+27 23 19 1.026079 0.969585 0.795228
+27 23 20 1.023768 0.974086 0.841424
+27 23 21 1.022053 0.977268 0.880875
+27 23 22 1.020337 0.980303 0.913825
+27 23 23 1.018619 0.983270 0.943820
+27 23 24 1.017467 0.985340 0.963721
+27 23 25 1.016502 0.987110 0.980257
+27 23 26 1.015926 0.988516 0.990224
+27 23 27 1.015439 0.989838 0.998676
+27 23 28 1.015099 0.991051 1.004566
+27 23 29 1.014781 0.992248 1.010089
+27 23 30 1.014624 0.993729 1.014522
+27 23 31 1.014477 0.995229 1.018883
+27 24 0 1.072410 0.803438 0.000000
+27 24 1 1.072048 0.807575 0.000000
+27 24 2 1.071682 0.811789 0.000000
+27 24 3 1.071251 0.817153 0.000000
+27 24 4 1.070778 0.822930 0.000000
+27 24 5 1.070012 0.831603 0.000000
+27 24 6 1.069004 0.841199 0.000000
+27 24 7 1.066948 0.854792 0.000000
+27 24 8 1.065032 0.868360 0.000000
+27 24 9 1.063540 0.881852 0.000000
+27 24 10 1.061208 0.895553 0.000000
+27 24 11 1.057027 0.909715 0.116667
+27 24 12 1.052884 0.922912 0.271788
+27 24 13 1.048804 0.934500 0.373363
+27 24 14 1.044689 0.945744 0.467196
+27 24 15 1.040530 0.956544 0.551075
+27 24 16 1.037051 0.965432 0.625080
+27 24 17 1.034252 0.972407 0.689209
+27 24 18 1.031166 0.979006 0.748613
+27 24 19 1.027858 0.985311 0.804343
+27 24 20 1.025492 0.989650 0.849088
+27 24 21 1.023691 0.992811 0.887243
+27 24 22 1.021920 0.995641 0.918933
+27 24 23 1.020163 0.998322 0.947686
+27 24 24 1.019015 1.000213 0.966888
+27 24 25 1.018070 1.001841 0.982907
+27 24 26 1.017480 1.002996 0.992547
+27 24 27 1.016971 1.004042 1.000715
+27 24 28 1.016610 1.005074 1.006467
+27 24 29 1.016271 1.006103 1.011873
+27 24 30 1.016087 1.007096 1.016104
+27 24 31 1.015913 1.008087 1.020258
+27 25 0 1.076819 0.820198 0.000000
+27 25 1 1.076200 0.824993 0.000000
+27 25 2 1.075587 0.829847 0.000000
+27 25 3 1.075063 0.835593 0.000000
+27 25 4 1.074509 0.841705 0.000000
+27 25 5 1.073743 0.850378 0.000000
+27 25 6 1.072472 0.859726 0.000000
+27 25 7 1.069015 0.871997 0.000000
+27 25 8 1.066114 0.884573 0.000000
+27 25 9 1.064879 0.898065 0.000000
+27 25 10 1.062615 0.911590 0.000000
+27 25 11 1.058090 0.925188 0.137884
+27 25 12 1.053732 0.937997 0.301421
+27 25 13 1.049652 0.949491 0.398495
+27 25 14 1.045578 0.960393 0.488683
+27 25 15 1.041512 0.970536 0.570018
+27 25 16 1.038164 0.979236 0.641712
+27 25 17 1.035534 0.986493 0.703767
+27 25 18 1.032569 0.992897 0.761051
+27 25 19 1.029343 0.998638 0.814624
+27 25 20 1.026956 1.002829 0.857679
+27 25 21 1.025073 1.006089 0.894423
+27 25 22 1.023221 1.008559 0.924510
+27 25 23 1.021382 1.010670 0.951570
+27 25 24 1.020275 1.012418 0.969997
+27 25 25 1.019411 1.014046 0.985546
+27 25 26 1.018836 1.015125 0.994868
+27 25 27 1.018327 1.016077 1.002754
+27 25 28 1.017967 1.017009 1.008388
+27 25 29 1.017628 1.017939 1.013700
+27 25 30 1.017439 1.018584 1.017667
+27 25 31 1.017259 1.019210 1.021544
+27 26 0 1.078575 0.830416 0.000000
+27 26 1 1.077974 0.835263 0.000000
+27 26 2 1.077369 0.840194 0.000000
+27 26 3 1.076694 0.846394 0.000000
+27 26 4 1.075966 0.853040 0.000000
+27 26 5 1.074868 0.862812 0.000000
+27 26 6 1.073277 0.873007 0.000000
+27 26 7 1.069553 0.885029 0.000000
+27 26 8 1.066304 0.897323 0.000000
+27 26 9 1.064482 0.910428 0.000000
+27 26 10 1.061838 0.923487 0.000000
+27 26 11 1.057386 0.936444 0.163380
+27 26 12 1.053072 0.948676 0.337397
+27 26 13 1.048986 0.959699 0.430042
+27 26 14 1.045028 0.970078 0.515910
+27 26 15 1.041232 0.979629 0.593067
+27 26 16 1.038047 0.988019 0.661294
+27 26 17 1.035472 0.995247 0.720591
+27 26 18 1.032619 1.001456 0.775684
+27 26 19 1.029550 1.006872 0.827508
+27 26 20 1.027308 1.010953 0.868360
+27 26 21 1.025561 1.014232 0.902629
+27 26 22 1.023737 1.016532 0.930792
+27 26 23 1.021878 1.018389 0.956180
+27 26 24 1.020827 1.020020 0.973904
+27 26 25 1.020046 1.021576 0.989074
+27 26 26 1.019475 1.022371 0.997410
+27 26 27 1.018952 1.022989 1.004169
+27 26 28 1.018586 1.023864 1.009575
+27 26 29 1.018242 1.024775 1.014788
+27 26 30 1.017994 1.025422 1.018700
+27 26 31 1.017751 1.026052 1.022526
+27 27 0 1.079718 0.839124 0.000000
+27 27 1 1.079199 0.843883 0.000000
+27 27 2 1.078660 0.848762 0.000000
+27 27 3 1.077822 0.855431 0.000000
+27 27 4 1.076900 0.862658 0.000000
+27 27 5 1.075392 0.873783 0.000000
+27 27 6 1.073468 0.885077 0.000000
+27 27 7 1.069738 0.897099 0.000000
+27 27 8 1.066289 0.909274 0.000000
+27 27 9 1.063685 0.921903 0.000000
+27 27 10 1.060556 0.934428 0.000000
+27 27 11 1.056274 0.946728 0.189864
+27 27 12 1.052063 0.958339 0.374837
+27 27 13 1.047972 0.968804 0.463069
+27 27 14 1.044146 0.978617 0.544462
+27 27 15 1.040661 0.987591 0.617063
+27 27 16 1.037645 0.995643 0.681555
+27 27 17 1.035098 1.002772 0.737938
+27 27 18 1.032356 1.008785 0.790825
+27 27 19 1.029462 1.013931 0.840992
+27 27 20 1.027402 1.017910 0.879523
+27 27 21 1.025842 1.021189 0.911072
+27 27 22 1.024072 1.023365 0.937238
+27 27 23 1.022208 1.025039 0.960957
+27 27 24 1.021217 1.026559 0.977996
+27 27 25 1.020517 1.028027 0.992808
+27 27 26 1.019948 1.028490 1.000002
+27 27 27 1.019408 1.028720 1.005439
+27 27 28 1.019035 1.029546 1.010592
+27 27 29 1.018686 1.030457 1.015705
+27 27 30 1.018365 1.031187 1.019611
+27 27 31 1.018047 1.031904 1.023437
+27 28 0 1.080158 0.844835 0.000000
+27 28 1 1.079649 0.849660 0.000000
+27 28 2 1.079118 0.854599 0.000000
+27 28 3 1.078260 0.861251 0.000000
+27 28 4 1.077313 0.868523 0.000000
+27 28 5 1.075755 0.880141 0.000000
+27 28 6 1.073775 0.892051 0.000000
+27 28 7 1.069973 0.905226 0.000000
+27 28 8 1.066347 0.918169 0.000000
+27 28 9 1.063252 0.930420 0.000000
+27 28 10 1.059794 0.942504 0.027604
+27 28 11 1.055538 0.954222 0.237475
+27 28 12 1.051315 0.965352 0.400687
+27 28 13 1.047147 0.975500 0.486135
+27 28 14 1.043294 0.984959 0.564490
+27 28 15 1.039848 0.993533 0.633724
+27 28 16 1.036815 1.001296 0.695857
+27 28 17 1.034195 1.008247 0.750889
+27 28 18 1.031651 1.014164 0.802052
+27 28 19 1.029167 1.019277 0.850208
+27 28 20 1.027272 1.023195 0.887515
+27 28 21 1.025730 1.026397 0.918312
+27 28 22 1.024068 1.028529 0.943199
+27 28 23 1.022351 1.030175 0.965399
+27 28 24 1.021354 1.031618 0.981527
+27 28 25 1.020598 1.032993 0.995631
+27 28 26 1.020013 1.033466 1.002558
+27 28 27 1.019466 1.033730 1.007829
+27 28 28 1.018962 1.034272 1.012231
+27 28 29 1.018463 1.034854 1.016509
+27 28 30 1.018187 1.035496 1.020363
+27 28 31 1.017926 1.036143 1.024188
+27 29 0 1.080497 0.850118 0.000000
+27 29 1 1.079988 0.855031 0.000000
+27 29 2 1.079458 0.860047 0.000000
+27 29 3 1.078599 0.866611 0.000000
+27 29 4 1.077653 0.873852 0.000000
+27 29 5 1.076094 0.885840 0.000000
+27 29 6 1.074099 0.898297 0.000000
+27 29 7 1.070215 0.912788 0.000000
+27 29 8 1.066415 0.926628 0.000000
+27 29 9 1.062872 0.938515 0.000000
+27 29 10 1.059107 0.950171 0.118998
+27 29 11 1.054856 0.961319 0.288104
+27 29 12 1.050604 0.971986 0.424881
+27 29 13 1.046348 0.981852 0.507778
+27 29 14 1.042446 0.990989 0.583300
+27 29 15 1.039000 0.999186 0.649337
+27 29 16 1.035923 1.006666 0.709308
+27 29 17 1.033216 1.013430 0.763211
+27 29 18 1.030883 1.019265 0.812721
+27 29 19 1.028842 1.024377 0.858814
+27 29 20 1.027110 1.028241 0.895054
+27 29 21 1.025562 1.031355 0.925382
+27 29 22 1.024014 1.033455 0.949091
+27 29 23 1.022467 1.035095 0.969793
+27 29 24 1.021456 1.036466 0.984978
+27 29 25 1.020624 1.037747 0.998323
+27 29 26 1.020019 1.038278 1.005108
+27 29 27 1.019467 1.038637 1.010379
+27 29 28 1.018813 1.038862 1.013959
+27 29 29 1.018146 1.039067 1.017296
+27 29 30 1.017930 1.039598 1.021091
+27 29 31 1.017745 1.040150 1.024917
+27 30 0 1.080836 0.854205 0.000000
+27 30 1 1.080245 0.859041 0.000000
+27 30 2 1.079638 0.863990 0.000000
+27 30 3 1.078779 0.870631 0.000000
+27 30 4 1.077833 0.877932 0.000000
+27 30 5 1.076274 0.889861 0.000000
+27 30 6 1.074292 0.902499 0.000000
+27 30 7 1.070480 0.918212 0.000000
+27 30 8 1.066607 0.932918 0.000000
+27 30 9 1.062553 0.944600 0.058150
+27 30 10 1.058488 0.956023 0.202274
+27 30 11 1.054396 0.966877 0.333915
+27 30 12 1.050209 0.977254 0.446195
+27 30 13 1.045860 0.986838 0.526206
+27 30 14 1.041909 0.995690 0.598823
+27 30 15 1.038468 1.003599 0.661935
+27 30 16 1.035347 1.010842 0.719833
+27 30 17 1.032547 1.017417 0.772520
+27 30 18 1.030330 1.023120 0.820632
+27 30 19 1.028569 1.028145 0.865186
+27 30 20 1.026992 1.031972 0.900662
+27 30 21 1.025526 1.035080 0.930690
+27 30 22 1.024068 1.037179 0.953571
+27 30 23 1.022613 1.038818 0.973204
+27 30 24 1.021617 1.040184 0.987689
+27 30 25 1.020775 1.041460 1.000458
+27 30 26 1.020172 1.041923 1.007073
+27 30 27 1.019625 1.042199 1.012267
+27 30 28 1.018959 1.042393 1.015785
+27 30 29 1.018275 1.042575 1.019064
+27 30 30 1.017842 1.042934 1.022195
+27 30 31 1.017426 1.043304 1.025315
+27 31 0 1.081175 0.858213 0.000000
+27 31 1 1.080497 0.862961 0.000000
+27 31 2 1.079807 0.867833 0.000000
+27 31 3 1.078949 0.874561 0.000000
+27 31 4 1.078002 0.881929 0.000000
+27 31 5 1.076443 0.893769 0.000000
+27 31 6 1.074477 0.906564 0.000000
+27 31 7 1.070747 0.923494 0.000000
+27 31 8 1.066807 0.939063 0.000000
+27 31 9 1.062239 0.950551 0.119036
+27 31 10 1.057873 0.961755 0.285008
+27 31 11 1.053951 0.972332 0.379405
+27 31 12 1.049834 0.982431 0.467316
+27 31 13 1.045393 0.991733 0.544419
+27 31 14 1.041391 1.000303 0.614128
+27 31 15 1.037956 1.007930 0.674331
+27 31 16 1.034792 1.014938 0.730164
+27 31 17 1.031898 1.021325 0.781629
+27 31 18 1.029792 1.026893 0.828360
+27 31 19 1.028299 1.031823 0.871409
+27 31 20 1.026877 1.035615 0.906140
+27 31 21 1.025499 1.038723 0.935880
+27 31 22 1.024128 1.040822 0.957956
+27 31 23 1.022760 1.042461 0.976549
+27 31 24 1.021782 1.043828 0.990351
+27 31 25 1.020935 1.045103 1.002556
+27 31 26 1.020336 1.045490 1.008998
+27 31 27 1.019794 1.045672 1.014111
+27 31 28 1.019123 1.045854 1.017619
+27 31 29 1.018434 1.046036 1.020898
+27 31 30 1.017765 1.046219 1.023323
+27 31 31 1.017098 1.046401 1.025691
+28 0 0 0.640678 0.000000 0.000000
+28 0 1 0.641356 0.000000 0.000000
+28 0 2 0.642045 0.000000 0.000000
+28 0 3 0.642893 0.000000 0.000000
+28 0 4 0.643826 0.000000 0.000000
+28 0 5 0.645352 0.000000 0.000000
+28 0 6 0.647017 0.000000 0.000000
+28 0 7 0.649281 0.000000 0.000000
+28 0 8 0.652109 0.000000 0.002081
+28 0 9 0.656628 0.000000 0.033766
+28 0 10 0.660635 0.000000 0.072792
+28 0 11 0.663517 0.000000 0.127971
+28 0 12 0.666406 0.000000 0.179908
+28 0 13 0.669306 0.000000 0.226442
+28 0 14 0.671793 0.000000 0.273578
+28 0 15 0.673751 0.000000 0.321487
+28 0 16 0.676689 0.000000 0.366159
+28 0 17 0.680605 0.000000 0.407592
+28 0 18 0.684556 0.000000 0.448196
+28 0 19 0.688533 0.000000 0.488155
+28 0 20 0.693463 0.000000 0.523633
+28 0 21 0.698966 0.000000 0.556423
+28 0 22 0.706515 0.000000 0.586207
+28 0 23 0.714993 0.000000 0.614625
+28 0 24 0.729507 0.000000 0.647154
+28 0 25 0.746032 0.000000 0.681054
+28 0 26 0.772690 0.000000 0.722341
+28 0 27 0.801687 0.000000 0.765332
+28 0 28 0.821174 0.000000 0.794265
+28 0 29 0.839302 0.000000 0.821190
+28 0 30 0.852517 0.087298 0.840805
+28 0 31 0.865404 0.181095 0.859932
+28 1 0 0.647970 0.000000 0.000000
+28 1 1 0.648784 0.000000 0.000000
+28 1 2 0.649602 0.000000 0.000000
+28 1 3 0.650489 0.000000 0.000000
+28 1 4 0.651451 0.000000 0.000000
+28 1 5 0.652929 0.000000 0.000000
+28 1 6 0.654556 0.000000 0.000000
+28 1 7 0.656829 0.000000 0.000000
+28 1 8 0.659673 0.000000 0.005201
+28 1 9 0.664231 0.000000 0.036980
+28 1 10 0.668266 0.000000 0.076218
+28 1 11 0.671148 0.000000 0.131867
+28 1 12 0.674019 0.000000 0.184379
+28 1 13 0.676870 0.000000 0.231666
+28 1 14 0.679390 0.000000 0.279449
+28 1 15 0.681484 0.000000 0.327871
+28 1 16 0.684445 0.000000 0.373201
+28 1 17 0.688274 0.000000 0.415438
+28 1 18 0.692187 0.000000 0.456500
+28 1 19 0.696163 0.000000 0.496646
+28 1 20 0.701015 0.000000 0.532312
+28 1 21 0.706390 0.000000 0.565290
+28 1 22 0.713713 0.000000 0.594968
+28 1 23 0.721921 0.000000 0.623146
+28 1 24 0.735024 0.000000 0.653853
+28 1 25 0.749759 0.000000 0.685403
+28 1 26 0.776050 0.000000 0.726248
+28 1 27 0.805007 0.000000 0.769239
+28 1 28 0.824524 0.000000 0.798218
+28 1 29 0.842691 0.008344 0.825195
+28 1 30 0.855908 0.100820 0.844813
+28 1 31 0.868796 0.194575 0.863940
+28 2 0 0.655420 0.000000 0.000000
+28 2 1 0.656358 0.000000 0.000000
+28 2 2 0.657296 0.000000 0.000000
+28 2 3 0.658229 0.000000 0.000000
+28 2 4 0.659225 0.000000 0.000000
+28 2 5 0.660661 0.000000 0.000000
+28 2 6 0.662256 0.000000 0.000000
+28 2 7 0.664539 0.000000 0.000000
+28 2 8 0.667401 0.000000 0.007636
+28 2 9 0.671995 0.000000 0.039956
+28 2 10 0.676055 0.000000 0.079714
+28 2 11 0.678938 0.000000 0.135839
+28 2 12 0.681793 0.000000 0.188938
+28 2 13 0.684602 0.000000 0.236994
+28 2 14 0.687157 0.000000 0.285441
+28 2 15 0.689383 0.000000 0.334390
+28 2 16 0.692368 0.000000 0.380393
+28 2 17 0.696112 0.000000 0.423448
+28 2 18 0.699987 0.000000 0.464975
+28 2 19 0.703964 0.000000 0.505313
+28 2 20 0.708734 0.000000 0.541173
+28 2 21 0.713979 0.000000 0.574348
+28 2 22 0.721070 0.000000 0.603919
+28 2 23 0.728999 0.000000 0.631853
+28 2 24 0.740752 0.000000 0.660815
+28 2 25 0.753778 0.000000 0.690120
+28 2 26 0.779618 0.000000 0.730415
+28 2 27 0.808415 0.000000 0.773248
+28 2 28 0.827944 0.000000 0.802246
+28 2 29 0.846149 0.021750 0.829268
+28 2 30 0.859369 0.114636 0.848889
+28 2 31 0.872257 0.208351 0.868016
+28 3 0 0.665256 0.000000 0.000000
+28 3 1 0.666146 0.000000 0.000000
+28 3 2 0.667046 0.000000 0.000000
+28 3 3 0.668115 0.000000 0.000000
+28 3 4 0.669235 0.000000 0.000000
+28 3 5 0.670719 0.000000 0.000000
+28 3 6 0.672361 0.000000 0.000000
+28 3 7 0.674684 0.000000 0.000000
+28 3 8 0.677575 0.000000 0.000000
+28 3 9 0.682170 0.000000 0.039350
+28 3 10 0.686230 0.000000 0.084263
+28 3 11 0.689112 0.000000 0.140951
+28 3 12 0.691985 0.000000 0.194790
+28 3 13 0.694843 0.000000 0.243881
+28 3 14 0.697462 0.000000 0.293239
+28 3 15 0.699776 0.000000 0.342940
+28 3 16 0.702781 0.000000 0.389836
+28 3 17 0.706477 0.000000 0.433926
+28 3 18 0.710331 0.000000 0.476035
+28 3 19 0.714308 0.000000 0.516603
+28 3 20 0.718968 0.000000 0.552758
+28 3 21 0.724039 0.000000 0.586267
+28 3 22 0.730807 0.000000 0.615719
+28 3 23 0.738347 0.000000 0.643328
+28 3 24 0.749637 0.000000 0.671715
+28 3 25 0.762178 0.000000 0.700362
+28 3 26 0.786324 0.000000 0.738472
+28 3 27 0.813148 0.000000 0.778766
+28 3 28 0.832437 0.000000 0.807401
+28 3 29 0.850651 0.039379 0.834372
+28 3 30 0.863871 0.132853 0.853989
+28 3 31 0.876759 0.226568 0.873116
+28 4 0 0.676002 0.000000 0.000000
+28 4 1 0.676856 0.000000 0.000000
+28 4 2 0.677731 0.000000 0.000000
+28 4 3 0.678923 0.000000 0.000000
+28 4 4 0.680162 0.000000 0.000000
+28 4 5 0.681725 0.000000 0.000000
+28 4 6 0.683438 0.000000 0.000000
+28 4 7 0.685796 0.000000 0.000000
+28 4 8 0.688711 0.000000 0.000000
+28 4 9 0.693301 0.000000 0.036892
+28 4 10 0.697361 0.000000 0.089224
+28 4 11 0.700255 0.000000 0.146559
+28 4 12 0.703151 0.000000 0.201225
+28 4 13 0.706050 0.000000 0.251444
+28 4 14 0.708741 0.000000 0.301794
+28 4 15 0.711164 0.000000 0.352313
+28 4 16 0.714197 0.000000 0.400184
+28 4 17 0.717840 0.000000 0.445407
+28 4 18 0.721668 0.000000 0.488142
+28 4 19 0.725638 0.000000 0.528942
+28 4 20 0.730177 0.000000 0.565414
+28 4 21 0.735057 0.000000 0.599290
+28 4 22 0.741479 0.000000 0.628638
+28 4 23 0.748601 0.000000 0.655928
+28 4 24 0.759456 0.000000 0.683790
+28 4 25 0.771557 0.000000 0.711843
+28 4 26 0.793803 0.000000 0.747492
+28 4 27 0.818390 0.000000 0.784895
+28 4 28 0.837388 0.000000 0.813104
+28 4 29 0.855587 0.058673 0.840001
+28 4 30 0.868806 0.152794 0.859613
+28 4 31 0.881694 0.246515 0.878741
+28 5 0 0.693129 0.000000 0.000000
+28 5 1 0.694031 0.000000 0.000000
+28 5 2 0.694953 0.000000 0.000000
+28 5 3 0.696185 0.000000 0.000000
+28 5 4 0.697496 0.000000 0.000000
+28 5 5 0.699362 0.000000 0.000000
+28 5 6 0.701320 0.000000 0.000000
+28 5 7 0.703677 0.000000 0.000000
+28 5 8 0.706583 0.000000 0.000000
+28 5 9 0.711134 0.000000 0.021464
+28 5 10 0.715194 0.000000 0.097074
+28 5 11 0.718175 0.000000 0.155632
+28 5 12 0.721125 0.000000 0.211732
+28 5 13 0.724025 0.000000 0.263737
+28 5 14 0.726830 0.000000 0.315649
+28 5 15 0.729516 0.000000 0.367442
+28 5 16 0.732637 0.000000 0.416864
+28 5 17 0.736192 0.000000 0.463917
+28 5 18 0.739955 0.000000 0.507586
+28 5 19 0.743877 0.000000 0.548626
+28 5 20 0.748209 0.000000 0.585567
+28 5 21 0.752787 0.000000 0.620050
+28 5 22 0.758693 0.000000 0.649393
+28 5 23 0.765202 0.000000 0.676401
+28 5 24 0.775810 0.000000 0.704083
+28 5 25 0.787783 0.000000 0.731990
+28 5 26 0.806695 0.000000 0.763258
+28 5 27 0.827209 0.000000 0.795302
+28 5 28 0.845544 0.000000 0.822640
+28 5 29 0.863568 0.089620 0.849305
+28 5 30 0.876776 0.184813 0.868904
+28 5 31 0.889664 0.278576 0.888031
+28 6 0 0.712256 0.000000 0.000000
+28 6 1 0.713221 0.000000 0.000000
+28 6 2 0.714204 0.000000 0.000000
+28 6 3 0.715468 0.000000 0.000000
+28 6 4 0.716838 0.000000 0.000000
+28 6 5 0.718959 0.000000 0.000000
+28 6 6 0.721128 0.000000 0.000000
+28 6 7 0.723508 0.000000 0.000000
+28 6 8 0.726426 0.000000 0.000000
+28 6 9 0.730961 0.000000 0.010544
+28 6 10 0.735032 0.000000 0.105990
+28 6 11 0.738085 0.000000 0.165647
+28 6 12 0.741085 0.000000 0.223174
+28 6 13 0.743999 0.000000 0.277152
+28 6 14 0.746888 0.000000 0.330811
+28 6 15 0.749746 0.000000 0.384060
+28 6 16 0.752937 0.000000 0.435098
+28 6 17 0.756464 0.000000 0.483927
+28 6 18 0.760168 0.000000 0.528763
+28 6 19 0.764012 0.000000 0.570493
+28 6 20 0.768161 0.000000 0.607984
+28 6 21 0.772493 0.000000 0.642931
+28 6 22 0.777906 0.000000 0.672435
+28 6 23 0.783810 0.000000 0.699465
+28 6 24 0.793967 0.000000 0.726743
+28 6 25 0.805542 0.000000 0.754104
+28 6 26 0.821698 0.000000 0.781731
+28 6 27 0.838910 0.000000 0.809420
+28 6 28 0.856144 0.014541 0.835323
+28 6 29 0.873382 0.136492 0.860970
+28 6 30 0.886126 0.226754 0.879959
+28 6 31 0.898570 0.314904 0.898505
+28 7 0 0.740049 0.000000 0.000000
+28 7 1 0.741141 0.000000 0.000000
+28 7 2 0.742244 0.000000 0.000000
+28 7 3 0.743507 0.000000 0.000000
+28 7 4 0.744884 0.000000 0.000000
+28 7 5 0.747052 0.000000 0.000000
+28 7 6 0.749283 0.000000 0.000000
+28 7 7 0.751781 0.000000 0.000000
+28 7 8 0.754811 0.000000 0.000000
+28 7 9 0.759433 0.000000 0.019157
+28 7 10 0.763564 0.000000 0.119519
+28 7 11 0.766617 0.000000 0.179746
+28 7 12 0.769647 0.000000 0.238672
+28 7 13 0.772640 0.000000 0.295427
+28 7 14 0.775476 0.000000 0.351632
+28 7 15 0.778110 0.000000 0.407129
+28 7 16 0.781302 0.000000 0.460064
+28 7 17 0.785051 0.000000 0.510439
+28 7 18 0.788733 0.000000 0.557443
+28 7 19 0.792362 0.000000 0.601825
+28 7 20 0.796430 0.000000 0.640213
+28 7 21 0.800763 0.000000 0.675005
+28 7 22 0.805782 0.000000 0.705384
+28 7 23 0.811113 0.000000 0.733758
+28 7 24 0.819945 0.000000 0.759659
+28 7 25 0.829944 0.010777 0.784736
+28 7 26 0.845843 0.057881 0.811935
+28 7 27 0.863104 0.099588 0.839625
+28 7 28 0.877338 0.173667 0.861647
+28 7 29 0.891139 0.252372 0.882860
+28 7 30 0.901453 0.311694 0.898664
+28 7 31 0.911535 0.369724 0.914106
+28 8 0 0.766283 0.000000 0.000000
+28 8 1 0.767448 0.000000 0.000000
+28 8 2 0.768621 0.000000 0.000000
+28 8 3 0.769919 0.000000 0.000000
+28 8 4 0.771336 0.000000 0.000000
+28 8 5 0.773594 0.000000 0.000000
+28 8 6 0.775941 0.000000 0.000000
+28 8 7 0.778674 0.000000 0.000000
+28 8 8 0.781879 0.000000 0.000000
+28 8 9 0.786499 0.000000 0.025671
+28 8 10 0.790626 0.000000 0.130077
+28 8 11 0.793668 0.000000 0.191783
+28 8 12 0.796690 0.000000 0.252600
+28 8 13 0.799677 0.000000 0.311933
+28 8 14 0.802421 0.000000 0.370530
+28 8 15 0.804854 0.000000 0.428182
+28 8 16 0.807990 0.000000 0.482917
+28 8 17 0.811829 0.000000 0.534734
+28 8 18 0.815440 0.000000 0.583578
+28 8 19 0.818875 0.000000 0.630110
+28 8 20 0.822767 0.000000 0.669402
+28 8 21 0.826934 0.000000 0.704350
+28 8 22 0.831494 0.000000 0.735340
+28 8 23 0.836232 0.000000 0.764531
+28 8 24 0.843842 0.015646 0.789302
+28 8 25 0.852409 0.119008 0.812600
+28 8 26 0.867695 0.192444 0.838969
+28 8 27 0.884532 0.258974 0.866047
+28 8 28 0.896208 0.306527 0.884743
+28 8 29 0.907146 0.351369 0.902242
+28 8 30 0.915414 0.386129 0.915355
+28 8 31 0.923504 0.420216 0.928176
+28 9 0 0.787835 0.008437 0.000000
+28 9 1 0.788912 0.009612 0.000000
+28 9 2 0.790012 0.010853 0.000000
+28 9 3 0.791445 0.013086 0.000000
+28 9 4 0.793008 0.015556 0.000000
+28 9 5 0.795481 0.019681 0.000000
+28 9 6 0.798111 0.024317 0.000000
+28 9 7 0.801426 0.031167 0.000000
+28 9 8 0.804999 0.036987 0.000000
+28 9 9 0.809348 0.039712 0.025883
+28 9 10 0.813276 0.043542 0.131720
+28 9 11 0.816279 0.049798 0.197634
+28 9 12 0.819177 0.055481 0.261820
+28 9 13 0.821902 0.060206 0.323127
+28 9 14 0.824439 0.064442 0.383658
+28 9 15 0.826737 0.068048 0.443190
+28 9 16 0.829650 0.071240 0.499429
+28 9 17 0.833178 0.074018 0.552375
+28 9 18 0.836577 0.076193 0.602078
+28 9 19 0.839876 0.077898 0.649259
+28 9 20 0.843304 0.080254 0.689472
+28 9 21 0.846811 0.083001 0.725506
+28 9 22 0.850716 0.089326 0.756311
+28 9 23 0.854802 0.097277 0.784741
+28 9 24 0.861497 0.141821 0.809125
+28 9 25 0.869062 0.198564 0.832159
+28 9 26 0.882667 0.258328 0.856492
+28 9 27 0.897666 0.318789 0.881126
+28 9 28 0.908109 0.360587 0.898155
+28 9 29 0.917901 0.399718 0.914097
+28 9 30 0.925277 0.429048 0.926007
+28 9 31 0.932492 0.457724 0.937648
+28 10 0 0.811020 0.104813 0.000000
+28 10 1 0.812037 0.106795 0.000000
+28 10 2 0.813086 0.108873 0.000000
+28 10 3 0.814612 0.112393 0.000000
+28 10 4 0.816274 0.116284 0.000000
+28 10 5 0.818882 0.122779 0.000000
+28 10 6 0.821671 0.129870 0.000000
+28 10 7 0.825245 0.139545 0.000000
+28 10 8 0.828953 0.147933 0.000000
+28 10 9 0.833062 0.152465 0.025402
+28 10 10 0.836764 0.158104 0.132266
+28 10 11 0.839576 0.166178 0.202310
+28 10 12 0.842256 0.173701 0.269867
+28 10 13 0.844718 0.180306 0.333280
+28 10 14 0.847007 0.186338 0.395933
+28 10 15 0.849075 0.191633 0.457611
+28 10 16 0.851698 0.196453 0.515421
+28 10 17 0.854876 0.200798 0.569364
+28 10 18 0.857925 0.204286 0.619995
+28 10 19 0.860875 0.207108 0.668049
+28 10 20 0.863803 0.210422 0.709141
+28 10 21 0.866719 0.214032 0.746054
+28 10 22 0.869981 0.221469 0.776836
+28 10 23 0.873399 0.230647 0.804830
+28 10 24 0.879247 0.251132 0.828724
+28 10 25 0.885904 0.275386 0.851251
+28 10 26 0.897690 0.323640 0.873384
+28 10 27 0.910660 0.377431 0.895426
+28 10 28 0.919811 0.413953 0.910835
+28 10 29 0.928417 0.448007 0.925296
+28 10 30 0.934950 0.473051 0.936176
+28 10 31 0.941344 0.497495 0.946816
+28 11 0 0.837795 0.171156 0.000000
+28 11 1 0.838813 0.173651 0.000000
+28 11 2 0.839862 0.176221 0.000000
+28 11 3 0.841388 0.179929 0.000000
+28 11 4 0.843045 0.184026 0.000000
+28 11 5 0.845613 0.190845 0.000000
+28 11 6 0.848287 0.197633 0.000000
+28 11 7 0.851415 0.204287 0.000000
+28 11 8 0.854745 0.211017 0.000000
+28 11 9 0.858678 0.217979 0.023397
+28 11 10 0.862096 0.225429 0.130396
+28 11 11 0.864383 0.233955 0.204404
+28 11 12 0.866637 0.242254 0.275337
+28 11 13 0.868836 0.250175 0.341142
+28 11 14 0.870786 0.257359 0.406334
+28 11 15 0.872416 0.263594 0.470739
+28 11 16 0.874601 0.269452 0.530267
+28 11 17 0.877342 0.274935 0.584919
+28 11 18 0.879739 0.279325 0.636630
+28 11 19 0.881870 0.282866 0.686053
+28 11 20 0.884218 0.286782 0.727924
+28 11 21 0.886696 0.290922 0.765265
+28 11 22 0.889339 0.297178 0.796374
+28 11 23 0.892058 0.304396 0.824651
+28 11 24 0.897205 0.323341 0.847833
+28 11 25 0.903162 0.346194 0.869316
+28 11 26 0.912826 0.387691 0.888885
+28 11 27 0.923345 0.433491 0.908013
+28 11 28 0.931076 0.465792 0.921906
+28 11 29 0.938408 0.496164 0.935051
+28 11 30 0.944205 0.519440 0.945279
+28 11 31 0.949899 0.542243 0.955313
+28 12 0 0.864648 0.235076 0.000000
+28 12 1 0.865665 0.237945 0.000000
+28 12 2 0.866712 0.240876 0.000000
+28 12 3 0.868206 0.244737 0.000000
+28 12 4 0.869822 0.248999 0.000000
+28 12 5 0.872300 0.256073 0.000000
+28 12 6 0.874860 0.263012 0.000000
+28 12 7 0.877779 0.269368 0.000000
+28 12 8 0.880896 0.276223 0.000000
+28 12 9 0.884606 0.284570 0.013636
+28 12 10 0.887733 0.293306 0.118235
+28 12 11 0.889574 0.302893 0.201742
+28 12 12 0.891390 0.312257 0.279647
+28 12 13 0.893162 0.321248 0.348218
+28 12 14 0.894716 0.329483 0.416026
+28 12 15 0.895989 0.336748 0.482855
+28 12 16 0.897704 0.343458 0.544180
+28 12 17 0.899861 0.349613 0.600001
+28 12 18 0.901641 0.354743 0.652873
+28 12 19 0.903129 0.359077 0.703452
+28 12 20 0.904921 0.363394 0.746044
+28 12 21 0.906896 0.367702 0.783845
+28 12 22 0.908934 0.373150 0.815195
+28 12 23 0.911000 0.379115 0.843612
+28 12 24 0.915322 0.396159 0.866182
+28 12 25 0.920397 0.416895 0.886802
+28 12 26 0.928117 0.452305 0.904254
+28 12 27 0.936448 0.491100 0.920977
+28 12 28 0.942849 0.519446 0.933482
+28 12 29 0.948974 0.546298 0.945385
+28 12 30 0.953916 0.567416 0.954850
+28 12 31 0.958779 0.588152 0.964152
+28 13 0 0.891626 0.294955 0.000000
+28 13 1 0.892643 0.297970 0.000000
+28 13 2 0.893685 0.301043 0.000000
+28 13 3 0.895091 0.304998 0.000000
+28 13 4 0.896609 0.309360 0.000000
+28 13 5 0.898912 0.316570 0.000000
+28 13 6 0.901365 0.324415 0.000000
+28 13 7 0.904467 0.335015 0.000000
+28 13 8 0.907646 0.344964 0.000000
+28 13 9 0.911054 0.352960 0.000000
+28 13 10 0.913876 0.362102 0.088922
+28 13 11 0.915407 0.373767 0.191151
+28 13 12 0.916766 0.384676 0.282027
+28 13 13 0.917838 0.394325 0.353982
+28 13 14 0.918900 0.403447 0.424536
+28 13 15 0.919950 0.411892 0.493288
+28 13 16 0.921140 0.419140 0.556541
+28 13 17 0.922470 0.425192 0.614293
+28 13 18 0.923691 0.430792 0.668462
+28 13 19 0.924829 0.436042 0.719845
+28 13 20 0.926107 0.440430 0.763059
+28 13 21 0.927469 0.444301 0.801372
+28 13 22 0.928921 0.449560 0.832817
+28 13 23 0.930414 0.455449 0.861141
+28 13 24 0.933704 0.469993 0.883264
+28 13 25 0.937593 0.487420 0.903320
+28 13 26 0.943669 0.517855 0.919403
+28 13 27 0.950249 0.551291 0.934569
+28 13 28 0.955470 0.576124 0.945901
+28 13 29 0.960497 0.599729 0.956685
+28 13 30 0.964386 0.618039 0.965198
+28 13 31 0.968198 0.635997 0.973560
+28 14 0 0.920344 0.363313 0.000000
+28 14 1 0.921209 0.366264 0.000000
+28 14 2 0.922092 0.369273 0.000000
+28 14 3 0.923257 0.373157 0.000000
+28 14 4 0.924514 0.377439 0.000000
+28 14 5 0.926412 0.384501 0.000000
+28 14 6 0.928486 0.392552 0.000000
+28 14 7 0.931326 0.404887 0.000000
+28 14 8 0.934218 0.416322 0.000000
+28 14 9 0.937265 0.425055 0.000000
+28 14 10 0.939676 0.435166 0.040704
+28 14 11 0.940688 0.448306 0.172090
+28 14 12 0.941503 0.460354 0.282512
+28 14 13 0.941989 0.470583 0.357993
+28 14 14 0.942442 0.480330 0.431598
+28 14 15 0.942852 0.489457 0.502789
+28 14 16 0.943382 0.497039 0.567946
+28 14 17 0.944034 0.503078 0.627070
+28 14 18 0.944674 0.509030 0.682398
+28 14 19 0.945305 0.514914 0.734776
+28 14 20 0.946047 0.519312 0.778595
+28 14 21 0.946856 0.522818 0.817278
+28 14 22 0.947729 0.527633 0.849057
+28 14 23 0.948632 0.533042 0.877698
+28 14 24 0.950974 0.545239 0.899491
+28 14 25 0.953795 0.559698 0.919002
+28 14 26 0.958325 0.584988 0.933755
+28 14 27 0.963249 0.612777 0.947410
+28 14 28 0.967223 0.633553 0.957475
+28 14 29 0.971061 0.653327 0.967027
+28 14 30 0.974070 0.668892 0.974621
+28 14 31 0.977024 0.684176 0.982083
+28 15 0 0.951300 0.442572 0.000000
+28 15 1 0.951814 0.445190 0.000000
+28 15 2 0.952341 0.447868 0.000000
+28 15 3 0.953069 0.451471 0.000000
+28 15 4 0.953855 0.455441 0.000000
+28 15 5 0.955053 0.461991 0.000000
+28 15 6 0.956402 0.469346 0.000000
+28 15 7 0.958406 0.480192 0.000000
+28 15 8 0.960562 0.491044 0.000000
+28 15 9 0.963171 0.501916 0.000000
+28 15 10 0.965035 0.513715 0.000000
+28 15 11 0.965259 0.527556 0.142138
+28 15 12 0.965418 0.540222 0.280559
+28 15 13 0.965467 0.550930 0.359750
+28 15 14 0.965159 0.560965 0.436798
+28 15 15 0.964391 0.570134 0.511092
+28 15 16 0.964090 0.577790 0.578125
+28 15 17 0.964256 0.583932 0.637898
+28 15 18 0.964285 0.590083 0.694208
+28 15 19 0.964207 0.596240 0.747826
+28 15 20 0.964386 0.600569 0.792228
+28 15 21 0.964717 0.603802 0.831099
+28 15 22 0.965020 0.607844 0.863519
+28 15 23 0.965310 0.612252 0.893006
+28 15 24 0.966813 0.622301 0.914619
+28 15 25 0.968720 0.634232 0.933608
+28 15 26 0.971830 0.654158 0.947083
+28 15 27 0.975218 0.675930 0.959286
+28 15 28 0.977859 0.691946 0.967964
+28 15 29 0.980393 0.707140 0.976139
+28 15 30 0.982746 0.720039 0.982853
+28 15 31 0.985087 0.732784 0.989470
+28 16 0 0.977638 0.510182 0.000000
+28 16 1 0.977977 0.512820 0.000000
+28 16 2 0.978324 0.515524 0.000000
+28 16 3 0.978789 0.519199 0.000000
+28 16 4 0.979297 0.523251 0.000000
+28 16 5 0.980101 0.529941 0.000000
+28 16 6 0.980987 0.537353 0.000000
+28 16 7 0.982227 0.547886 0.000000
+28 16 8 0.983694 0.558829 0.000000
+28 16 9 0.985842 0.571000 0.000000
+28 16 10 0.987170 0.583871 0.000000
+28 16 11 0.986694 0.598280 0.124441
+28 16 12 0.986185 0.611504 0.276353
+28 16 13 0.985622 0.622750 0.359498
+28 16 14 0.984577 0.633037 0.439757
+28 16 15 0.982914 0.642091 0.516308
+28 16 16 0.981901 0.649880 0.585080
+28 16 17 0.981538 0.656402 0.646075
+28 16 18 0.981027 0.662902 0.703451
+28 16 19 0.980400 0.669383 0.758014
+28 16 20 0.980098 0.673835 0.803080
+28 16 21 0.979992 0.677068 0.842447
+28 16 22 0.979781 0.680545 0.875251
+28 16 23 0.979522 0.684133 0.905072
+28 16 24 0.980329 0.692320 0.926640
+28 16 25 0.981492 0.702041 0.945457
+28 16 26 0.983523 0.717695 0.958064
+28 16 27 0.985753 0.734719 0.969237
+28 16 28 0.987428 0.747087 0.976997
+28 16 29 0.989023 0.758790 0.984270
+28 16 30 0.990762 0.769444 0.990242
+28 16 31 0.992510 0.780027 0.996128
+28 17 0 0.999360 0.566142 0.000000
+28 17 1 0.999699 0.569156 0.000000
+28 17 2 1.000041 0.572239 0.000000
+28 17 3 1.000418 0.576342 0.000000
+28 17 4 1.000838 0.580867 0.000000
+28 17 5 1.001554 0.588352 0.000000
+28 17 6 1.002240 0.596572 0.000000
+28 17 7 1.002788 0.607969 0.000000
+28 17 8 1.003615 0.619676 0.000000
+28 17 9 1.005277 0.632308 0.000000
+28 17 10 1.006080 0.645632 0.000000
+28 17 11 1.004991 0.660478 0.119000
+28 17 12 1.003804 0.674199 0.269894
+28 17 13 1.002453 0.686042 0.357236
+28 17 14 1.000698 0.696546 0.440474
+28 17 15 0.998422 0.705327 0.518435
+28 17 16 0.996816 0.713308 0.588810
+28 17 17 0.995880 0.720489 0.651600
+28 17 18 0.994898 0.727488 0.710127
+28 17 19 0.993882 0.734346 0.765339
+28 17 20 0.993186 0.739109 0.811150
+28 17 21 0.992681 0.742615 0.851322
+28 17 22 0.992012 0.745737 0.884254
+28 17 23 0.991267 0.748685 0.913896
+28 17 24 0.991523 0.755295 0.935553
+28 17 25 0.992113 0.763127 0.954550
+28 17 26 0.993403 0.775600 0.966697
+28 17 27 0.994854 0.789145 0.977263
+28 17 28 0.995930 0.798977 0.984573
+28 17 29 0.996952 0.808278 0.991418
+28 17 30 0.998118 0.817106 0.996787
+28 17 31 0.999293 0.825903 1.002057
+28 18 0 1.018845 0.619867 0.000000
+28 18 1 1.019036 0.622969 0.000000
+28 18 2 1.019226 0.626144 0.000000
+28 18 3 1.019395 0.630405 0.000000
+28 18 4 1.019597 0.635109 0.000000
+28 18 5 1.020024 0.642913 0.000000
+28 18 6 1.020408 0.651558 0.000000
+28 18 7 1.020605 0.663847 0.000000
+28 18 8 1.021017 0.676361 0.000000
+28 18 9 1.022073 0.689546 0.000000
+28 18 10 1.022221 0.703229 0.000000
+28 18 11 1.020372 0.718007 0.112523
+28 18 12 1.018451 0.731704 0.261896
+28 18 13 1.016411 0.743597 0.353401
+28 18 14 1.013997 0.754180 0.439726
+28 18 15 1.011104 0.763077 0.519391
+28 18 16 1.008968 0.771248 0.591275
+28 18 17 1.007589 0.778693 0.655379
+28 18 18 1.006190 0.786075 0.715147
+28 18 19 1.004774 0.793410 0.771542
+28 18 20 1.003713 0.798312 0.818032
+28 18 21 1.002865 0.801755 0.858578
+28 18 22 1.001825 0.804718 0.891776
+28 18 23 1.000697 0.807463 0.921633
+28 18 24 1.000543 0.812692 0.943165
+28 18 25 1.000712 0.818750 0.961922
+28 18 26 1.001424 0.828041 0.973527
+28 18 27 1.002261 0.838078 0.983482
+28 18 28 1.002931 0.845807 0.990413
+28 18 29 1.003577 0.853206 0.996913
+28 18 30 1.004278 0.860141 1.001885
+28 18 31 1.004984 0.867046 1.006756
+28 19 0 1.036590 0.671855 0.000000
+28 19 1 1.036518 0.674821 0.000000
+28 19 2 1.036444 0.677864 0.000000
+28 19 3 1.036311 0.682073 0.000000
+28 19 4 1.036192 0.686725 0.000000
+28 19 5 1.036173 0.694478 0.000000
+28 19 6 1.036179 0.703252 0.000000
+28 19 7 1.036288 0.716455 0.000000
+28 19 8 1.036459 0.729809 0.000000
+28 19 9 1.036815 0.743619 0.000000
+28 19 10 1.036208 0.757588 0.000000
+28 19 11 1.033484 0.771905 0.105243
+28 19 12 1.030786 0.785172 0.252699
+28 19 13 1.028133 0.796690 0.348342
+28 19 14 1.025104 0.807244 0.437839
+28 19 15 1.021589 0.816559 0.519435
+28 19 16 1.018972 0.824918 0.592756
+28 19 17 1.017251 0.832321 0.657801
+28 19 18 1.015473 0.839997 0.718879
+28 19 19 1.013651 0.847886 0.776872
+28 19 20 1.012249 0.852794 0.823987
+28 19 21 1.011099 0.855913 0.864577
+28 19 22 1.009756 0.858868 0.898146
+28 19 23 1.008327 0.861749 0.928525
+28 19 24 1.007870 0.865750 0.949764
+28 19 25 1.007737 0.870125 0.967957
+28 19 26 1.007998 0.876231 0.978956
+28 19 27 1.008350 0.882738 0.988295
+28 19 28 1.008764 0.888701 0.994903
+28 19 29 1.009186 0.894587 1.001120
+28 19 30 1.009509 0.899577 1.005859
+28 19 31 1.009825 0.904507 1.010500
+28 20 0 1.049401 0.710117 0.000000
+28 20 1 1.049262 0.713385 0.000000
+28 20 2 1.049120 0.716732 0.000000
+28 20 3 1.048954 0.721274 0.000000
+28 20 4 1.048788 0.726289 0.000000
+28 20 5 1.048632 0.734609 0.000000
+28 20 6 1.048428 0.743829 0.000000
+28 20 7 1.048012 0.756941 0.000000
+28 20 8 1.047681 0.770308 0.000000
+28 20 9 1.047605 0.784438 0.000000
+28 20 10 1.046530 0.798489 0.000000
+28 20 11 1.043259 0.812366 0.100955
+28 20 12 1.040060 0.825471 0.247527
+28 20 13 1.036984 0.837291 0.346254
+28 20 14 1.033544 0.848021 0.438063
+28 20 15 1.029638 0.857350 0.520977
+28 20 16 1.026664 0.865926 0.595384
+28 20 17 1.024621 0.873750 0.661284
+28 20 18 1.022493 0.881449 0.722941
+28 20 19 1.020300 0.889050 0.781298
+28 20 20 1.018619 0.893957 0.828654
+28 20 21 1.017246 0.897248 0.869409
+28 20 22 1.015719 0.900050 0.902900
+28 20 23 1.014122 0.902629 0.933089
+28 20 24 1.013433 0.905837 0.954147
+28 20 25 1.013048 0.909254 0.972161
+28 20 26 1.012980 0.913464 0.982913
+28 20 27 1.012985 0.917856 0.991989
+28 20 28 1.013139 0.922095 0.998368
+28 20 29 1.013314 0.926312 1.004362
+28 20 30 1.013433 0.930173 1.008926
+28 20 31 1.013548 0.934010 1.013394
+28 21 0 1.059253 0.740145 0.000000
+28 21 1 1.059161 0.743977 0.000000
+28 21 2 1.059073 0.747888 0.000000
+28 21 3 1.059033 0.752994 0.000000
+28 21 4 1.058985 0.758620 0.000000
+28 21 5 1.058877 0.767881 0.000000
+28 21 6 1.058564 0.777735 0.000000
+28 21 7 1.057360 0.790156 0.000000
+28 21 8 1.056371 0.803038 0.000000
+28 21 9 1.056023 0.817304 0.000000
+28 21 10 1.054653 0.831315 0.000000
+28 21 11 1.051032 0.844764 0.098463
+28 21 12 1.047498 0.857869 0.244768
+28 21 13 1.044111 0.870398 0.345949
+28 21 14 1.040385 0.881427 0.439554
+28 21 15 1.036225 0.890525 0.523417
+28 21 16 1.032969 0.899336 0.598701
+28 21 17 1.030615 0.907861 0.665404
+28 21 18 1.028155 0.915420 0.727201
+28 21 19 1.025611 0.922226 0.785182
+28 21 20 1.023690 0.927129 0.832547
+28 21 21 1.022142 0.930889 0.873541
+28 21 22 1.020500 0.933451 0.906684
+28 21 23 1.018815 0.935466 0.936258
+28 21 24 1.017937 0.938142 0.957200
+28 21 25 1.017329 0.941037 0.975266
+28 21 26 1.017006 0.944121 0.985985
+28 21 27 1.016749 0.947249 0.995010
+28 21 28 1.016640 0.949788 1.001218
+28 21 29 1.016552 0.952242 1.007023
+28 21 30 1.016572 0.955464 1.011448
+28 21 31 1.016600 0.958737 1.015780
+28 22 0 1.066307 0.764820 0.000000
+28 22 1 1.066197 0.768699 0.000000
+28 22 2 1.066087 0.772659 0.000000
+28 22 3 1.065966 0.777848 0.000000
+28 22 4 1.065827 0.783550 0.000000
+28 22 5 1.065553 0.792846 0.000000
+28 22 6 1.065098 0.802851 0.000000
+28 22 7 1.063856 0.815926 0.000000
+28 22 8 1.062712 0.829235 0.000000
+28 22 9 1.061858 0.843250 0.000000
+28 22 10 1.060087 0.857167 0.000000
+28 22 11 1.056296 0.870871 0.099211
+28 22 12 1.052553 0.884061 0.246513
+28 22 13 1.048888 0.896395 0.349401
+28 22 14 1.044972 0.907635 0.444363
+28 22 15 1.040732 0.917466 0.529134
+28 22 16 1.037297 0.926412 0.604753
+28 22 17 1.034666 0.934474 0.671220
+28 22 18 1.031921 0.941694 0.732685
+28 22 19 1.029087 0.948258 0.790261
+28 22 20 1.026986 0.953000 0.837116
+28 22 21 1.025323 0.956649 0.877539
+28 22 22 1.023667 0.959341 0.910416
+28 22 23 1.022015 0.961597 0.939862
+28 22 24 1.021003 0.963920 0.960445
+28 22 25 1.020205 0.966264 0.978074
+28 22 26 1.019730 0.968451 0.988517
+28 22 27 1.019331 0.970602 0.997303
+28 22 28 1.019080 0.972311 1.003342
+28 22 29 1.018850 0.973956 1.008989
+28 22 30 1.018780 0.976329 1.013363
+28 22 31 1.018720 0.978750 1.017653
+28 23 0 1.072088 0.787062 0.000000
+28 23 1 1.071931 0.790752 0.000000
+28 23 2 1.071765 0.794528 0.000000
+28 23 3 1.071469 0.799580 0.000000
+28 23 4 1.071144 0.805116 0.000000
+28 23 5 1.070608 0.814036 0.000000
+28 23 6 1.069996 0.823973 0.000000
+28 23 7 1.069056 0.838312 0.000000
+28 23 8 1.067985 0.852463 0.000000
+28 23 9 1.066519 0.866050 0.000000
+28 23 10 1.064299 0.879850 0.000000
+28 23 11 1.060421 0.894118 0.101433
+28 23 12 1.056524 0.907433 0.250305
+28 23 13 1.052596 0.919161 0.354561
+28 23 14 1.048533 0.930571 0.450681
+28 23 15 1.044293 0.941572 0.536341
+28 23 16 1.040727 0.950608 0.612049
+28 23 17 1.037833 0.957679 0.677806
+28 23 18 1.034826 0.964469 0.738726
+28 23 19 1.031729 0.971043 0.795883
+28 23 20 1.029474 0.975553 0.841994
+28 23 21 1.027724 0.978826 0.881477
+28 23 22 1.026101 0.981817 0.914124
+28 23 23 1.024537 0.984680 0.943664
+28 23 24 1.023416 0.986731 0.963777
+28 23 25 1.022442 0.988512 0.980748
+28 23 26 1.021864 0.989906 0.990804
+28 23 27 1.021377 0.991210 0.999265
+28 23 28 1.021038 0.992484 1.005136
+28 23 29 1.020721 0.993753 1.010637
+28 23 30 1.020563 0.995181 1.015003
+28 23 31 1.020415 0.996620 1.019292
+28 24 0 1.076668 0.804883 0.000000
+28 24 1 1.076331 0.808988 0.000000
+28 24 2 1.075989 0.813172 0.000000
+28 24 3 1.075554 0.818536 0.000000
+28 24 4 1.075099 0.824333 0.000000
+28 24 5 1.074497 0.833159 0.000000
+28 24 6 1.073671 0.842911 0.000000
+28 24 7 1.071875 0.856675 0.000000
+28 24 8 1.070151 0.870360 0.000000
+28 24 9 1.068640 0.883808 0.000000
+28 24 10 1.066318 0.897434 0.000000
+28 24 11 1.062215 0.911452 0.117781
+28 24 12 1.058153 0.924539 0.273322
+28 24 13 1.054160 0.936077 0.374599
+28 24 14 1.050087 0.947292 0.468307
+28 24 15 1.045914 0.958093 0.552285
+28 24 16 1.042413 0.966994 0.626288
+28 24 17 1.039585 0.973996 0.690316
+28 24 18 1.036589 0.980538 0.749526
+28 24 19 1.033464 0.986722 0.804989
+28 24 20 1.031161 0.991073 0.849636
+28 24 21 1.029353 0.994322 0.887795
+28 24 22 1.027682 0.997141 0.919215
+28 24 23 1.026074 0.999765 0.947573
+28 24 24 1.024958 1.001626 0.966955
+28 24 25 1.024006 1.003234 0.983345
+28 24 26 1.023414 1.004366 0.993055
+28 24 27 1.022906 1.005388 1.001223
+28 24 28 1.022545 1.006427 1.006964
+28 24 29 1.022206 1.007468 1.012358
+28 24 30 1.021998 1.008447 1.016549
+28 24 31 1.021799 1.009421 1.020659
+28 25 0 1.080847 0.821231 0.000000
+28 25 1 1.080287 0.825952 0.000000
+28 25 2 1.079728 0.830741 0.000000
+28 25 3 1.079166 0.836567 0.000000
+28 25 4 1.078600 0.842767 0.000000
+28 25 5 1.077998 0.851593 0.000000
+28 25 6 1.076939 0.861122 0.000000
+28 25 7 1.073901 0.873697 0.000000
+28 25 8 1.071281 0.886480 0.000000
+28 25 9 1.069914 0.899886 0.000000
+28 25 10 1.067606 0.913320 0.000000
+28 25 11 1.063232 0.926815 0.138839
+28 25 12 1.059001 0.939557 0.302747
+28 25 13 1.055007 0.951043 0.399596
+28 25 14 1.050974 0.961942 0.489703
+28 25 15 1.046887 0.972084 0.571142
+28 25 16 1.043518 0.980776 0.642842
+28 25 17 1.040865 0.988018 0.704801
+28 25 18 1.037973 0.994371 0.761914
+28 25 19 1.034895 1.000034 0.815257
+28 25 20 1.032581 1.004247 0.858201
+28 25 21 1.030725 1.007591 0.894907
+28 25 22 1.028979 1.010081 0.924768
+28 25 23 1.027283 1.012182 0.951519
+28 25 24 1.026211 1.013882 0.970082
+28 25 25 1.025347 1.015447 0.985917
+28 25 26 1.024771 1.016495 0.995294
+28 25 27 1.024262 1.017423 1.003180
+28 25 28 1.023902 1.018293 1.008803
+28 25 29 1.023563 1.019156 1.014104
+28 25 30 1.023318 1.019850 1.018063
+28 25 31 1.023079 1.020533 1.021934
+28 26 0 1.082658 0.831334 0.000000
+28 26 1 1.082063 0.836163 0.000000
+28 26 2 1.081462 0.841079 0.000000
+28 26 3 1.080766 0.847303 0.000000
+28 26 4 1.080038 0.853991 0.000000
+28 26 5 1.079081 0.863921 0.000000
+28 26 6 1.077684 0.874305 0.000000
+28 26 7 1.074381 0.886657 0.000000
+28 26 8 1.071424 0.899175 0.000000
+28 26 9 1.069508 0.912191 0.000000
+28 26 10 1.066843 0.925159 0.000000
+28 26 11 1.062527 0.938023 0.164345
+28 26 12 1.058321 0.950194 0.338752
+28 26 13 1.054296 0.961212 0.431215
+28 26 14 1.050389 0.971577 0.517027
+28 26 15 1.046636 0.981103 0.594290
+28 26 16 1.043450 0.989489 0.662540
+28 26 17 1.040829 0.996734 0.721778
+28 26 18 1.038037 1.002924 0.776664
+28 26 19 1.035110 1.008294 0.828165
+28 26 20 1.032916 1.012366 0.868886
+28 26 21 1.031161 1.015658 0.903138
+28 26 22 1.029457 1.017959 0.931080
+28 26 23 1.027777 1.019810 0.956154
+28 26 24 1.026750 1.021409 0.974018
+28 26 25 1.025942 1.022925 0.989477
+28 26 26 1.025403 1.023729 0.997843
+28 26 27 1.024926 1.024369 1.004573
+28 26 28 1.024542 1.025173 1.009969
+28 26 29 1.024170 1.026002 1.015176
+28 26 30 1.023910 1.026650 1.019087
+28 26 31 1.023657 1.027286 1.022913
+28 27 0 1.083921 0.839995 0.000000
+28 27 1 1.083335 0.844815 0.000000
+28 27 2 1.082733 0.849747 0.000000
+28 27 3 1.081902 0.856356 0.000000
+28 27 4 1.081001 0.863551 0.000000
+28 27 5 1.079606 0.874840 0.000000
+28 27 6 1.077846 0.886328 0.000000
+28 27 7 1.074503 0.898680 0.000000
+28 27 8 1.071340 0.911080 0.000000
+28 27 9 1.068715 0.923626 0.000000
+28 27 10 1.065605 0.936066 0.000000
+28 27 11 1.061425 0.948271 0.190876
+28 27 12 1.057289 0.959819 0.376277
+28 27 13 1.053224 0.970273 0.464363
+28 27 14 1.049466 0.980056 0.545720
+28 27 15 1.046102 0.988975 0.618427
+28 27 16 1.043110 0.997032 0.682963
+28 27 17 1.040490 1.004225 0.739329
+28 27 18 1.037796 1.010258 0.791959
+28 27 19 1.035045 1.015388 0.841683
+28 27 20 1.033001 1.019317 0.880060
+28 27 21 1.031381 1.022524 0.911628
+28 27 22 1.029747 1.024670 0.937568
+28 27 23 1.028106 1.026333 0.960949
+28 27 24 1.027126 1.027846 0.978139
+28 27 25 1.026365 1.029310 0.993266
+28 27 26 1.025867 1.029833 1.000465
+28 27 27 1.025430 1.030140 1.005835
+28 27 28 1.025016 1.030903 1.010980
+28 27 29 1.024605 1.031731 1.016092
+28 27 30 1.024334 1.032388 1.019998
+28 27 31 1.024073 1.033033 1.023824
+28 28 0 1.084577 0.845845 0.000000
+28 28 1 1.083992 0.850708 0.000000
+28 28 2 1.083390 0.855684 0.000000
+28 28 3 1.082542 0.862333 0.000000
+28 28 4 1.081615 0.869612 0.000000
+28 28 5 1.080131 0.881288 0.000000
+28 28 6 1.078270 0.893279 0.000000
+28 28 7 1.074776 0.906634 0.000000
+28 28 8 1.071365 0.919709 0.000000
+28 28 9 1.068200 0.931941 0.000000
+28 28 10 1.064744 0.943985 0.028917
+28 28 11 1.060651 0.955614 0.239075
+28 28 12 1.056550 0.966683 0.402405
+28 28 13 1.052438 0.976820 0.487685
+28 28 14 1.048691 0.986263 0.566041
+28 28 15 1.045410 0.994815 0.635492
+28 28 16 1.042474 1.002602 0.697728
+28 28 17 1.039881 1.009624 0.752748
+28 28 18 1.037348 1.015524 0.803583
+28 28 19 1.034863 1.020550 0.851163
+28 28 20 1.032951 1.024405 0.888246
+28 28 21 1.031383 1.027556 0.919030
+28 28 22 1.029827 1.029668 0.943726
+28 28 23 1.028275 1.031308 0.965654
+28 28 24 1.027315 1.032749 0.981816
+28 28 25 1.026553 1.034124 0.996057
+28 28 26 1.026031 1.034603 1.002982
+28 28 27 1.025564 1.034876 1.008220
+28 28 28 1.025099 1.035379 1.012618
+28 28 29 1.024634 1.035916 1.016896
+28 28 30 1.024398 1.036548 1.020750
+28 28 31 1.024177 1.037186 1.024575
+28 29 0 1.085146 0.851292 0.000000
+28 29 1 1.084561 0.856207 0.000000
+28 29 2 1.083959 0.861230 0.000000
+28 29 3 1.083111 0.867871 0.000000
+28 29 4 1.082179 0.875172 0.000000
+28 29 5 1.080655 0.887097 0.000000
+28 29 6 1.078731 0.899506 0.000000
+28 29 7 1.075071 0.914007 0.000000
+28 29 8 1.071405 0.927869 0.000000
+28 29 9 1.067723 0.939810 0.000000
+28 29 10 1.063938 0.951477 0.121536
+28 29 11 1.059923 0.962542 0.290371
+28 29 12 1.055854 0.973153 0.426905
+28 29 13 1.051694 0.983008 0.509604
+28 29 14 1.047937 0.992146 0.585165
+28 29 15 1.044696 1.000365 0.651547
+28 29 16 1.041795 1.007891 0.711684
+28 29 17 1.039232 1.014725 0.765576
+28 29 18 1.036871 1.020494 0.814682
+28 29 19 1.034666 1.025436 0.860067
+28 29 20 1.032883 1.029226 0.896005
+28 29 21 1.031354 1.032326 0.926277
+28 29 22 1.029876 1.034422 0.949836
+28 29 23 1.028421 1.036062 0.970345
+28 29 24 1.027479 1.037433 0.985430
+28 29 25 1.026708 1.038714 0.998706
+28 29 26 1.026152 1.039182 1.005485
+28 29 27 1.025646 1.039464 1.010765
+28 29 28 1.025126 1.039677 1.014346
+28 29 29 1.024604 1.039880 1.017684
+28 29 30 1.024410 1.040482 1.021478
+28 29 31 1.024237 1.041112 1.025304
+28 30 0 1.085428 0.855390 0.000000
+28 30 1 1.084797 0.860260 0.000000
+28 30 2 1.084153 0.865241 0.000000
+28 30 3 1.083305 0.871890 0.000000
+28 30 4 1.082378 0.879199 0.000000
+28 30 5 1.080889 0.891131 0.000000
+28 30 6 1.078992 0.903766 0.000000
+28 30 7 1.075329 0.919445 0.000000
+28 30 8 1.071549 0.934131 0.000000
+28 30 9 1.067417 0.945838 0.059941
+28 30 10 1.063351 0.957263 0.204945
+28 30 11 1.059431 0.968068 0.336252
+28 30 12 1.055390 0.978411 0.448231
+28 30 13 1.051145 0.987984 0.527997
+28 30 14 1.047357 0.996839 0.600663
+28 30 15 1.044156 1.004772 0.664201
+28 30 16 1.041216 1.012041 0.722288
+28 30 17 1.038536 1.018648 0.774923
+28 30 18 1.036293 1.024287 0.822631
+28 30 19 1.034388 1.029175 0.866508
+28 30 20 1.032771 1.032943 0.901672
+28 30 21 1.031327 1.036040 0.931607
+28 30 22 1.029936 1.038135 0.954306
+28 30 23 1.028568 1.039774 0.973717
+28 30 24 1.027620 1.041111 0.988085
+28 30 25 1.026812 1.042346 1.000772
+28 30 26 1.026247 1.042800 1.007404
+28 30 27 1.025738 1.043074 1.012638
+28 30 28 1.025247 1.043267 1.016161
+28 30 29 1.024759 1.043449 1.019440
+28 30 30 1.024339 1.043848 1.022571
+28 30 31 1.023923 1.044260 1.025691
+28 31 0 1.085690 0.859397 0.000000
+28 31 1 1.085012 0.864216 0.000000
+28 31 2 1.084323 0.869149 0.000000
+28 31 3 1.083475 0.875807 0.000000
+28 31 4 1.082552 0.883123 0.000000
+28 31 5 1.081102 0.895046 0.000000
+28 31 6 1.079239 0.907894 0.000000
+28 31 7 1.075586 0.924754 0.000000
+28 31 8 1.071700 0.940267 0.000000
+28 31 9 1.067122 0.951743 0.120872
+28 31 10 1.062779 0.962935 0.287741
+28 31 11 1.058956 0.973501 0.381773
+28 31 12 1.054941 0.983588 0.469347
+28 31 13 1.050609 0.992878 0.546155
+28 31 14 1.046789 1.001452 0.615920
+28 31 15 1.043627 1.009103 0.676628
+28 31 16 1.040643 1.016116 0.732667
+28 31 17 1.037837 1.022492 0.784038
+28 31 18 1.035708 1.028001 0.830371
+28 31 19 1.034105 1.032838 0.872786
+28 31 20 1.032656 1.036587 0.907198
+28 31 21 1.031300 1.039683 0.936809
+28 31 22 1.029996 1.041778 0.958667
+28 31 23 1.028716 1.043418 0.977001
+28 31 24 1.027760 1.044722 0.990676
+28 31 25 1.026912 1.045915 1.002799
+28 31 26 1.026340 1.046354 1.009283
+28 31 27 1.025831 1.046618 1.014466
+28 31 28 1.025375 1.046811 1.017983
+28 31 29 1.024926 1.046993 1.021262
+28 31 30 1.024262 1.047175 1.023687
+28 31 31 1.023584 1.047357 1.026055
+29 0 0 0.646613 0.000000 0.000000
+29 0 1 0.647291 0.000000 0.000000
+29 0 2 0.647980 0.000000 0.000000
+29 0 3 0.648828 0.000000 0.000000
+29 0 4 0.649761 0.000000 0.000000
+29 0 5 0.651287 0.000000 0.000000
+29 0 6 0.653001 0.000000 0.000000
+29 0 7 0.655528 0.000000 0.000000
+29 0 8 0.658487 0.000000 0.000000
+29 0 9 0.662743 0.000000 0.033619
+29 0 10 0.666570 0.000000 0.074126
+29 0 11 0.669453 0.000000 0.129493
+29 0 12 0.672276 0.000000 0.181582
+29 0 13 0.675000 0.000000 0.228211
+29 0 14 0.677351 0.000000 0.275399
+29 0 15 0.679221 0.000000 0.323309
+29 0 16 0.682028 0.000000 0.368027
+29 0 17 0.685769 0.000000 0.409555
+29 0 18 0.689692 0.000000 0.450359
+29 0 19 0.693757 0.000000 0.490600
+29 0 20 0.698775 0.000000 0.526183
+29 0 21 0.704365 0.000000 0.558973
+29 0 22 0.711941 0.000000 0.588757
+29 0 23 0.720420 0.000000 0.617175
+29 0 24 0.734999 0.000000 0.649563
+29 0 25 0.751612 0.000000 0.683276
+29 0 26 0.778286 0.000000 0.724527
+29 0 27 0.807283 0.000000 0.767518
+29 0 28 0.826923 0.000000 0.796780
+29 0 29 0.845226 0.002623 0.824081
+29 0 30 0.858452 0.095125 0.843719
+29 0 31 0.871339 0.189110 0.862847
+29 1 0 0.653905 0.000000 0.000000
+29 1 1 0.654674 0.000000 0.000000
+29 1 2 0.655452 0.000000 0.000000
+29 1 3 0.656385 0.000000 0.000000
+29 1 4 0.657391 0.000000 0.000000
+29 1 5 0.658915 0.000000 0.000000
+29 1 6 0.660611 0.000000 0.000000
+29 1 7 0.663056 0.000000 0.000000
+29 1 8 0.665975 0.000000 0.002986
+29 1 9 0.670316 0.000000 0.036833
+29 1 10 0.674201 0.000000 0.077552
+29 1 11 0.677083 0.000000 0.133389
+29 1 12 0.679905 0.000000 0.186054
+29 1 13 0.682627 0.000000 0.233435
+29 1 14 0.685015 0.000000 0.281292
+29 1 15 0.686977 0.000000 0.329762
+29 1 16 0.689784 0.000000 0.375139
+29 1 17 0.693438 0.000000 0.417422
+29 1 18 0.697323 0.000000 0.458662
+29 1 19 0.701387 0.000000 0.499091
+29 1 20 0.706298 0.000000 0.534863
+29 1 21 0.711716 0.000000 0.567841
+29 1 22 0.719114 0.000000 0.597552
+29 1 23 0.727412 0.000000 0.625778
+29 1 24 0.740570 0.000000 0.656356
+29 1 25 0.755347 0.000000 0.687718
+29 1 26 0.781609 0.000000 0.728529
+29 1 27 0.810521 0.000000 0.771520
+29 1 28 0.830225 0.000000 0.800785
+29 1 29 0.848612 0.015839 0.828089
+29 1 30 0.861843 0.108696 0.847727
+29 1 31 0.874731 0.202590 0.866854
+29 2 0 0.661355 0.000000 0.000000
+29 2 1 0.662208 0.000000 0.000000
+29 2 2 0.663072 0.000000 0.000000
+29 2 3 0.664090 0.000000 0.000000
+29 2 4 0.665170 0.000000 0.000000
+29 2 5 0.666691 0.000000 0.000000
+29 2 6 0.668372 0.000000 0.000000
+29 2 7 0.670746 0.000000 0.000000
+29 2 8 0.673631 0.000000 0.005421
+29 2 9 0.678051 0.000000 0.039809
+29 2 10 0.681990 0.000000 0.081048
+29 2 11 0.684873 0.000000 0.137361
+29 2 12 0.687694 0.000000 0.190612
+29 2 13 0.690413 0.000000 0.238763
+29 2 14 0.692840 0.000000 0.287304
+29 2 15 0.694891 0.000000 0.336347
+29 2 16 0.697703 0.000000 0.382397
+29 2 17 0.701274 0.000000 0.425452
+29 2 18 0.705123 0.000000 0.467139
+29 2 19 0.709188 0.000000 0.507762
+29 2 20 0.713990 0.000000 0.543728
+29 2 21 0.719236 0.000000 0.576899
+29 2 22 0.726445 0.000000 0.606532
+29 2 23 0.734546 0.000000 0.634556
+29 2 24 0.746344 0.000000 0.663400
+29 2 25 0.759374 0.000000 0.692517
+29 2 26 0.785145 0.000000 0.732778
+29 2 27 0.813858 0.000000 0.775610
+29 2 28 0.833601 0.000000 0.804858
+29 2 29 0.852063 0.029331 0.832165
+29 2 30 0.865299 0.122558 0.851803
+29 2 31 0.878186 0.216367 0.870930
+29 3 0 0.671191 0.000000 0.000000
+29 3 1 0.672041 0.000000 0.000000
+29 3 2 0.672907 0.000000 0.000000
+29 3 3 0.674015 0.000000 0.000000
+29 3 4 0.675175 0.000000 0.000000
+29 3 5 0.676699 0.000000 0.000000
+29 3 6 0.678398 0.000000 0.000000
+29 3 7 0.680857 0.000000 0.000000
+29 3 8 0.683805 0.000000 0.000000
+29 3 9 0.688225 0.000000 0.039204
+29 3 10 0.692165 0.000000 0.085596
+29 3 11 0.695047 0.000000 0.142473
+29 3 12 0.697870 0.000000 0.196465
+29 3 13 0.700592 0.000000 0.245650
+29 3 14 0.703058 0.000000 0.295101
+29 3 15 0.705197 0.000000 0.344897
+29 3 16 0.708051 0.000000 0.391840
+29 3 17 0.711620 0.000000 0.435930
+29 3 18 0.715467 0.000000 0.478226
+29 3 19 0.719532 0.000000 0.519128
+29 3 20 0.724225 0.000000 0.555376
+29 3 21 0.729296 0.000000 0.588833
+29 3 22 0.736151 0.000000 0.618299
+29 3 23 0.743818 0.000000 0.645950
+29 3 24 0.755176 0.000000 0.674207
+29 3 25 0.767765 0.000000 0.702666
+29 3 26 0.791888 0.000000 0.740740
+29 3 27 0.818672 0.000000 0.781034
+29 3 28 0.838102 0.000000 0.809961
+29 3 29 0.856482 0.046960 0.837265
+29 3 30 0.869713 0.140774 0.856904
+29 3 31 0.882601 0.234583 0.876031
+29 4 0 0.681937 0.000000 0.000000
+29 4 1 0.682786 0.000000 0.000000
+29 4 2 0.683656 0.000000 0.000000
+29 4 3 0.684853 0.000000 0.000000
+29 4 4 0.686097 0.000000 0.000000
+29 4 5 0.687667 0.000000 0.000000
+29 4 6 0.689417 0.000000 0.000000
+29 4 7 0.691950 0.000000 0.000000
+29 4 8 0.694951 0.000000 0.000000
+29 4 9 0.699361 0.000000 0.036808
+29 4 10 0.703296 0.000000 0.090558
+29 4 11 0.706190 0.000000 0.148080
+29 4 12 0.709020 0.000000 0.202900
+29 4 13 0.711744 0.000000 0.253212
+29 4 14 0.714260 0.000000 0.303654
+29 4 15 0.716508 0.000000 0.354261
+29 4 16 0.719410 0.000000 0.402179
+29 4 17 0.722966 0.000000 0.447408
+29 4 18 0.726807 0.000000 0.490354
+29 4 19 0.730871 0.000000 0.531524
+29 4 20 0.735442 0.000000 0.568080
+29 4 21 0.740316 0.000000 0.601868
+29 4 22 0.746795 0.000000 0.631189
+29 4 23 0.754005 0.000000 0.658478
+29 4 24 0.764944 0.000000 0.686204
+29 4 25 0.777126 0.000000 0.714074
+29 4 26 0.799393 0.000000 0.749690
+29 4 27 0.823986 0.000000 0.787092
+29 4 28 0.843061 0.000000 0.815626
+29 4 29 0.861347 0.066242 0.842892
+29 4 30 0.874572 0.160710 0.862528
+29 4 31 0.887460 0.254530 0.881655
+29 5 0 0.699064 0.000000 0.000000
+29 5 1 0.699915 0.000000 0.000000
+29 5 2 0.700793 0.000000 0.000000
+29 5 3 0.702075 0.000000 0.000000
+29 5 4 0.703437 0.000000 0.000000
+29 5 5 0.705354 0.000000 0.000000
+29 5 6 0.707386 0.000000 0.000000
+29 5 7 0.709919 0.000000 0.000000
+29 5 8 0.712900 0.000000 0.000000
+29 5 9 0.717224 0.000000 0.021880
+29 5 10 0.721129 0.000000 0.098408
+29 5 11 0.724110 0.000000 0.157153
+29 5 12 0.726995 0.000000 0.213406
+29 5 13 0.729719 0.000000 0.265506
+29 5 14 0.732350 0.000000 0.317488
+29 5 15 0.734860 0.000000 0.369320
+29 5 16 0.737850 0.000000 0.418790
+29 5 17 0.741318 0.000000 0.465897
+29 5 18 0.745120 0.000000 0.509771
+29 5 19 0.749181 0.000000 0.551132
+29 5 20 0.753533 0.000000 0.588169
+29 5 21 0.758060 0.000000 0.622613
+29 5 22 0.764010 0.000000 0.651944
+29 5 23 0.770607 0.000000 0.678951
+29 5 24 0.781263 0.000000 0.706533
+29 5 25 0.793274 0.000000 0.734307
+29 5 26 0.812234 0.000000 0.765550
+29 5 27 0.832798 0.000000 0.797593
+29 5 28 0.851216 0.000000 0.825213
+29 5 29 0.869328 0.097098 0.852200
+29 5 30 0.882542 0.192680 0.871818
+29 5 31 0.895430 0.286591 0.890946
+29 6 0 0.718224 0.000000 0.000000
+29 6 1 0.719109 0.000000 0.000000
+29 6 2 0.720024 0.000000 0.000000
+29 6 3 0.721375 0.000000 0.000000
+29 6 4 0.722832 0.000000 0.000000
+29 6 5 0.725032 0.000000 0.000000
+29 6 6 0.727303 0.000000 0.000000
+29 6 7 0.729883 0.000000 0.000000
+29 6 8 0.732886 0.000000 0.000000
+29 6 9 0.737159 0.000000 0.011298
+29 6 10 0.741050 0.000000 0.107243
+29 6 11 0.744102 0.000000 0.167171
+29 6 12 0.747043 0.000000 0.224898
+29 6 13 0.749799 0.000000 0.278961
+29 6 14 0.752526 0.000000 0.332675
+29 6 15 0.755217 0.000000 0.385943
+29 6 16 0.758277 0.000000 0.437042
+29 6 17 0.761708 0.000000 0.485973
+29 6 18 0.765464 0.000000 0.530993
+29 6 19 0.769474 0.000000 0.572969
+29 6 20 0.773631 0.000000 0.610569
+29 6 21 0.777876 0.000000 0.645543
+29 6 22 0.783327 0.000000 0.675018
+29 6 23 0.789328 0.000000 0.701994
+29 6 24 0.799509 0.000000 0.729229
+29 6 25 0.811083 0.000000 0.756550
+29 6 26 0.827303 0.000000 0.784170
+29 6 27 0.844595 0.000000 0.811859
+29 6 28 0.861878 0.018596 0.837952
+29 6 29 0.879161 0.143832 0.863818
+29 6 30 0.891908 0.234450 0.882821
+29 6 31 0.904352 0.322761 0.901367
+29 7 0 0.746192 0.000000 0.000000
+29 7 1 0.747250 0.000000 0.000000
+29 7 2 0.748326 0.000000 0.000000
+29 7 3 0.749678 0.000000 0.000000
+29 7 4 0.751135 0.000000 0.000000
+29 7 5 0.753337 0.000000 0.000000
+29 7 6 0.755658 0.000000 0.000000
+29 7 7 0.758493 0.000000 0.000000
+29 7 8 0.761708 0.000000 0.000000
+29 7 9 0.766068 0.000000 0.019548
+29 7 10 0.770019 0.000000 0.120345
+29 7 11 0.773071 0.000000 0.181279
+29 7 12 0.776076 0.000000 0.240660
+29 7 13 0.779001 0.000000 0.297452
+29 7 14 0.781746 0.000000 0.353727
+29 7 15 0.784259 0.000000 0.409339
+29 7 16 0.787320 0.000000 0.462409
+29 7 17 0.790928 0.000000 0.512935
+29 7 18 0.794616 0.000000 0.560034
+29 7 19 0.798366 0.000000 0.604467
+29 7 20 0.802426 0.000000 0.642983
+29 7 21 0.806670 0.000000 0.677948
+29 7 22 0.811759 0.000000 0.708143
+29 7 23 0.817231 0.000000 0.736172
+29 7 24 0.826099 0.000000 0.762175
+29 7 25 0.836098 0.019460 0.787504
+29 7 26 0.852025 0.065426 0.814750
+29 7 27 0.869319 0.107075 0.842439
+29 7 28 0.883399 0.180922 0.864356
+29 7 29 0.897020 0.259369 0.885447
+29 7 30 0.907323 0.318689 0.901243
+29 7 31 0.917404 0.376735 0.916686
+29 8 0 0.772513 0.000000 0.000000
+29 8 1 0.773678 0.000000 0.000000
+29 8 2 0.774856 0.000000 0.000000
+29 8 3 0.776230 0.000000 0.000000
+29 8 4 0.777716 0.000000 0.000000
+29 8 5 0.779985 0.000000 0.000000
+29 8 6 0.782417 0.000000 0.000000
+29 8 7 0.785554 0.000000 0.000000
+29 8 8 0.789001 0.000000 0.000000
+29 8 9 0.793381 0.000000 0.025849
+29 8 10 0.797340 0.000000 0.130657
+29 8 11 0.800371 0.000000 0.193337
+29 8 12 0.803385 0.000000 0.254762
+29 8 13 0.806372 0.000000 0.314095
+29 8 14 0.809083 0.000000 0.372775
+29 8 15 0.811440 0.000000 0.430615
+29 8 16 0.814456 0.000000 0.485538
+29 8 17 0.818131 0.000000 0.537543
+29 8 18 0.821726 0.000000 0.586430
+29 8 19 0.825260 0.000000 0.632893
+29 8 20 0.829141 0.000000 0.672327
+29 8 21 0.833232 0.000000 0.707544
+29 8 22 0.837880 0.000000 0.738247
+29 8 23 0.842782 0.000000 0.766899
+29 8 24 0.850425 0.037023 0.791851
+29 8 25 0.858981 0.132102 0.815571
+29 8 26 0.874265 0.203918 0.842019
+29 8 27 0.891102 0.270367 0.869097
+29 8 28 0.902491 0.315741 0.887474
+29 8 29 0.913101 0.358106 0.904609
+29 8 30 0.921349 0.392634 0.917711
+29 8 31 0.929439 0.426639 0.930544
+29 9 0 0.793890 0.012080 0.000000
+29 9 1 0.794968 0.013255 0.000000
+29 9 2 0.796070 0.014497 0.000000
+29 9 3 0.797534 0.016730 0.000000
+29 9 4 0.799131 0.019184 0.000000
+29 9 5 0.801660 0.023187 0.000000
+29 9 6 0.804387 0.027657 0.000000
+29 9 7 0.807969 0.034143 0.000000
+29 9 8 0.811706 0.039864 0.000000
+29 9 9 0.815905 0.043287 0.026304
+29 9 10 0.819713 0.047984 0.132601
+29 9 11 0.822660 0.055481 0.199245
+29 9 12 0.825523 0.062251 0.263888
+29 9 13 0.828247 0.067811 0.325195
+29 9 14 0.830771 0.072732 0.385809
+29 9 15 0.833037 0.076832 0.445529
+29 9 16 0.835876 0.080449 0.501956
+29 9 17 0.839285 0.083583 0.555090
+29 9 18 0.842714 0.086102 0.604890
+29 9 19 0.846156 0.088143 0.652099
+29 9 20 0.849619 0.091077 0.692461
+29 9 21 0.853095 0.094546 0.728715
+29 9 22 0.857071 0.102172 0.759286
+29 9 23 0.861276 0.111688 0.787273
+29 9 24 0.867959 0.154051 0.811716
+29 9 25 0.875467 0.207364 0.834978
+29 9 26 0.889062 0.266457 0.859354
+29 9 27 0.904061 0.326885 0.883988
+29 9 28 0.914296 0.368039 0.900741
+29 9 29 0.923851 0.406439 0.916368
+29 9 30 0.931212 0.435692 0.928315
+29 9 31 0.938427 0.464335 0.940017
+29 10 0 0.817009 0.110343 0.000000
+29 10 1 0.818027 0.112340 0.000000
+29 10 2 0.819076 0.114432 0.000000
+29 10 3 0.820602 0.117952 0.000000
+29 10 4 0.822273 0.121822 0.000000
+29 10 5 0.824954 0.128144 0.000000
+29 10 6 0.827841 0.135025 0.000000
+29 10 7 0.831619 0.144333 0.000000
+29 10 8 0.835457 0.152561 0.000000
+29 10 9 0.839478 0.157551 0.025819
+29 10 10 0.843093 0.163494 0.133122
+29 10 11 0.845818 0.171535 0.203836
+29 10 12 0.848443 0.179037 0.271818
+29 10 13 0.850905 0.185642 0.335246
+29 10 14 0.853194 0.191715 0.397990
+29 10 15 0.855262 0.197103 0.459856
+29 10 16 0.857841 0.202049 0.517846
+29 10 17 0.860931 0.206552 0.571962
+29 10 18 0.864017 0.210349 0.622713
+29 10 19 0.867100 0.213595 0.670846
+29 10 20 0.870078 0.217158 0.712075
+29 10 21 0.872993 0.220910 0.749161
+29 10 22 0.876315 0.228141 0.779739
+29 10 23 0.879821 0.236955 0.807357
+29 10 24 0.885625 0.257256 0.831250
+29 10 25 0.892195 0.281386 0.853901
+29 10 26 0.903964 0.329616 0.876057
+29 10 27 0.916934 0.383407 0.898099
+29 10 28 0.925944 0.420247 0.913262
+29 10 29 0.934389 0.454665 0.927441
+29 10 30 0.940912 0.479718 0.938377
+29 10 31 0.947306 0.504147 0.949096
+29 11 0 0.843960 0.176310 0.000000
+29 11 1 0.844978 0.178868 0.000000
+29 11 2 0.846027 0.181498 0.000000
+29 11 3 0.847553 0.185206 0.000000
+29 11 4 0.849213 0.189287 0.000000
+29 11 5 0.851810 0.195982 0.000000
+29 11 6 0.854561 0.202719 0.000000
+29 11 7 0.857983 0.209636 0.000000
+29 11 8 0.861511 0.216594 0.000000
+29 11 9 0.865357 0.223674 0.023268
+29 11 10 0.868688 0.231255 0.130512
+29 11 11 0.870887 0.239942 0.205530
+29 11 12 0.873086 0.248342 0.277117
+29 11 13 0.875285 0.256263 0.342987
+29 11 14 0.877235 0.263488 0.408297
+29 11 15 0.878865 0.269817 0.472889
+29 11 16 0.881007 0.275753 0.532574
+29 11 17 0.883660 0.281296 0.587351
+29 11 18 0.886017 0.285870 0.639133
+29 11 19 0.888145 0.289690 0.688586
+29 11 20 0.890492 0.293708 0.730546
+29 11 21 0.892970 0.297845 0.768012
+29 11 22 0.895674 0.304084 0.798901
+29 11 23 0.898480 0.311278 0.826802
+29 11 24 0.903583 0.330050 0.850055
+29 11 25 0.909453 0.352682 0.871760
+29 11 26 0.919100 0.394137 0.891371
+29 11 27 0.929619 0.439937 0.910498
+29 11 28 0.937249 0.472259 0.924145
+29 11 29 0.944465 0.502656 0.937008
+29 11 30 0.950255 0.525874 0.947247
+29 11 31 0.955949 0.548613 0.957311
+29 12 0 0.870856 0.240206 0.000000
+29 12 1 0.871873 0.243151 0.000000
+29 12 2 0.872921 0.246153 0.000000
+29 12 3 0.874414 0.250014 0.000000
+29 12 4 0.876031 0.254267 0.000000
+29 12 5 0.878508 0.261264 0.000000
+29 12 6 0.881128 0.268221 0.000000
+29 12 7 0.884363 0.274999 0.000000
+29 12 8 0.887691 0.282169 0.000000
+29 12 9 0.891297 0.290513 0.012711
+29 12 10 0.894329 0.299323 0.117286
+29 12 11 0.896101 0.309157 0.202342
+29 12 12 0.897872 0.318674 0.281251
+29 12 13 0.899644 0.327665 0.349916
+29 12 14 0.901206 0.335933 0.417868
+29 12 15 0.902496 0.343274 0.484903
+29 12 16 0.904167 0.350040 0.546369
+29 12 17 0.906219 0.356231 0.602265
+29 12 18 0.907905 0.361432 0.655160
+29 12 19 0.909305 0.365863 0.705721
+29 12 20 0.911064 0.370192 0.748377
+29 12 21 0.913039 0.374461 0.786289
+29 12 22 0.915148 0.379975 0.817416
+29 12 23 0.917319 0.386056 0.845457
+29 12 24 0.921615 0.402971 0.868144
+29 12 25 0.926619 0.423498 0.889046
+29 12 26 0.934326 0.458868 0.906567
+29 12 27 0.942657 0.497664 0.923307
+29 12 28 0.948996 0.525861 0.935536
+29 12 29 0.955050 0.552544 0.947121
+29 12 30 0.959987 0.573580 0.956566
+29 12 31 0.964850 0.594240 0.965868
+29 13 0 0.897660 0.300649 0.000000
+29 13 1 0.898677 0.303691 0.000000
+29 13 2 0.899719 0.306791 0.000000
+29 13 3 0.901125 0.310745 0.000000
+29 13 4 0.902642 0.315103 0.000000
+29 13 5 0.904945 0.322286 0.000000
+29 13 6 0.907441 0.330070 0.000000
+29 13 7 0.910769 0.340461 0.000000
+29 13 8 0.914079 0.350312 0.000000
+29 13 9 0.917338 0.358548 0.000000
+29 13 10 0.920049 0.367901 0.086365
+29 13 11 0.921555 0.379715 0.191017
+29 13 12 0.922898 0.390717 0.283443
+29 13 13 0.923970 0.400366 0.355492
+29 13 14 0.925060 0.409500 0.426211
+29 13 15 0.926172 0.417972 0.495218
+29 13 16 0.927318 0.425300 0.558611
+29 13 17 0.928498 0.431486 0.616391
+29 13 18 0.929605 0.437063 0.670535
+29 13 19 0.930655 0.442166 0.721850
+29 13 20 0.931900 0.446566 0.765140
+29 13 21 0.933262 0.450544 0.803614
+29 13 22 0.934817 0.455782 0.834851
+29 13 23 0.936459 0.461592 0.862798
+29 13 24 0.939768 0.476104 0.885039
+29 13 25 0.943631 0.493517 0.905376
+29 13 26 0.949702 0.523948 0.921567
+29 13 27 0.956283 0.557384 0.936800
+29 13 28 0.961482 0.582112 0.947776
+29 13 29 0.966483 0.605595 0.958144
+29 13 30 0.970370 0.623872 0.966632
+29 13 31 0.974182 0.641803 0.974994
+29 14 0 0.926241 0.369242 0.000000
+29 14 1 0.927105 0.372214 0.000000
+29 14 2 0.927988 0.375243 0.000000
+29 14 3 0.929154 0.379128 0.000000
+29 14 4 0.930410 0.383406 0.000000
+29 14 5 0.932309 0.390448 0.000000
+29 14 6 0.934420 0.398403 0.000000
+29 14 7 0.937454 0.410323 0.000000
+29 14 8 0.940448 0.421513 0.000000
+29 14 9 0.943320 0.430517 0.000000
+29 14 10 0.945611 0.440849 0.038051
+29 14 11 0.946623 0.454104 0.171778
+29 14 12 0.947438 0.466209 0.283707
+29 14 13 0.947925 0.476395 0.359304
+29 14 14 0.948407 0.486127 0.433096
+29 14 15 0.948884 0.495275 0.504570
+29 14 16 0.949371 0.502942 0.569889
+29 14 17 0.949868 0.509126 0.629055
+29 14 18 0.950413 0.515007 0.684301
+29 14 19 0.950996 0.520651 0.736500
+29 14 20 0.951707 0.525050 0.780369
+29 14 21 0.952496 0.528702 0.819241
+29 14 22 0.953484 0.533477 0.850820
+29 14 23 0.954561 0.538761 0.879085
+29 14 24 0.956932 0.550966 0.901012
+29 14 25 0.959734 0.565477 0.920825
+29 14 26 0.964276 0.590776 0.935694
+29 14 27 0.969220 0.618565 0.949423
+29 14 28 0.973162 0.639147 0.959141
+29 14 29 0.976960 0.658700 0.968286
+29 14 30 0.979967 0.674251 0.975855
+29 14 31 0.982921 0.689535 0.983317
+29 15 0 0.957109 0.448314 0.000000
+29 15 1 0.957623 0.451000 0.000000
+29 15 2 0.958151 0.453745 0.000000
+29 15 3 0.958878 0.457347 0.000000
+29 15 4 0.959664 0.461309 0.000000
+29 15 5 0.960862 0.467789 0.000000
+29 15 6 0.962256 0.475073 0.000000
+29 15 7 0.964501 0.485843 0.000000
+29 15 8 0.966792 0.496646 0.000000
+29 15 9 0.969227 0.507544 0.000000
+29 15 10 0.970970 0.519414 0.000000
+29 15 11 0.971194 0.533418 0.142363
+29 15 12 0.971353 0.546134 0.281490
+29 15 13 0.971402 0.556703 0.360845
+29 15 14 0.971104 0.566690 0.438109
+29 15 15 0.970358 0.575929 0.512685
+29 15 16 0.970014 0.583644 0.579929
+29 15 17 0.970070 0.589834 0.639841
+29 15 18 0.970075 0.595926 0.696002
+29 15 19 0.970039 0.601940 0.749247
+29 15 20 0.970192 0.606247 0.793626
+29 15 21 0.970459 0.609528 0.832686
+29 15 22 0.970862 0.613599 0.864906
+29 15 23 0.971327 0.618029 0.894017
+29 15 24 0.972825 0.628049 0.915800
+29 15 25 0.974667 0.639934 0.935140
+29 15 26 0.977818 0.659852 0.948701
+29 15 27 0.981271 0.681624 0.960928
+29 15 28 0.983806 0.697191 0.969381
+29 15 29 0.986210 0.711873 0.977295
+29 15 30 0.988555 0.724740 0.983993
+29 15 31 0.990896 0.737485 0.990610
+29 16 0 0.983316 0.515641 0.000000
+29 16 1 0.983655 0.518373 0.000000
+29 16 2 0.984002 0.521163 0.000000
+29 16 3 0.984467 0.524814 0.000000
+29 16 4 0.984975 0.528836 0.000000
+29 16 5 0.985779 0.535457 0.000000
+29 16 6 0.986705 0.542811 0.000000
+29 16 7 0.988163 0.553342 0.000000
+29 16 8 0.989755 0.564271 0.000000
+29 16 9 0.991751 0.576397 0.000000
+29 16 10 0.992974 0.589272 0.000000
+29 16 11 0.992498 0.603797 0.124998
+29 16 12 0.991989 0.617049 0.277219
+29 16 13 0.991426 0.628180 0.360479
+29 16 14 0.990381 0.638422 0.440927
+29 16 15 0.988718 0.647522 0.517759
+29 16 16 0.987673 0.655333 0.586742
+29 16 17 0.987245 0.661856 0.647876
+29 16 18 0.986741 0.668302 0.705077
+29 16 19 0.986179 0.674690 0.759218
+29 16 20 0.985862 0.679136 0.804228
+29 16 21 0.985691 0.682418 0.843759
+29 16 22 0.985595 0.685908 0.876323
+29 16 23 0.985533 0.689493 0.905719
+29 16 24 0.986341 0.697645 0.927499
+29 16 25 0.987439 0.707321 0.946741
+29 16 26 0.989492 0.722966 0.959407
+29 16 27 0.991765 0.739990 0.970556
+29 16 28 0.993311 0.751804 0.978170
+29 16 29 0.994754 0.762873 0.985279
+29 16 30 0.996505 0.773487 0.991264
+29 16 31 0.998276 0.784070 0.997174
+29 17 0 1.004863 0.571225 0.000000
+29 17 1 1.005202 0.574333 0.000000
+29 17 2 1.005543 0.577500 0.000000
+29 17 3 1.005921 0.581529 0.000000
+29 17 4 1.006341 0.585988 0.000000
+29 17 5 1.007057 0.593453 0.000000
+29 17 6 1.007766 0.601617 0.000000
+29 17 7 1.008442 0.612818 0.000000
+29 17 8 1.009338 0.624390 0.000000
+29 17 9 1.010892 0.637074 0.000000
+29 17 10 1.011621 0.650423 0.000000
+29 17 11 1.010532 0.665240 0.119684
+29 17 12 1.009346 0.678952 0.270894
+29 17 13 1.007994 0.690826 0.358205
+29 17 14 1.006239 0.701325 0.441549
+29 17 15 1.003963 0.710054 0.519792
+29 17 16 1.002347 0.718009 0.590330
+29 17 17 1.001391 0.725190 0.653162
+29 17 18 1.000413 0.732136 0.711526
+29 17 19 0.999416 0.738900 0.766413
+29 17 20 0.998715 0.743719 0.812174
+29 17 21 0.998191 0.747370 0.852461
+29 17 22 0.997682 0.750403 0.885071
+29 17 23 0.997180 0.753153 0.914191
+29 17 24 0.997482 0.759753 0.936109
+29 17 25 0.998052 0.767636 0.955627
+29 17 26 0.999299 0.780119 0.967813
+29 17 27 1.000702 0.793664 0.978307
+29 17 28 1.001678 0.802983 0.985507
+29 17 29 1.002593 0.811699 0.992236
+29 17 30 1.003815 0.820491 0.997666
+29 17 31 1.005058 0.829288 1.003009
+29 18 0 1.024123 0.624363 0.000000
+29 18 1 1.024315 0.627532 0.000000
+29 18 2 1.024503 0.630765 0.000000
+29 18 3 1.024647 0.634959 0.000000
+29 18 4 1.024833 0.639607 0.000000
+29 18 5 1.025311 0.647439 0.000000
+29 18 6 1.025753 0.656084 0.000000
+29 18 7 1.026037 0.668255 0.000000
+29 18 8 1.026492 0.680683 0.000000
+29 18 9 1.027461 0.693880 0.000000
+29 18 10 1.027549 0.707525 0.000000
+29 18 11 1.025700 0.722155 0.113264
+29 18 12 1.023779 0.735793 0.262953
+29 18 13 1.021739 0.747781 0.354365
+29 18 14 1.019348 0.758387 0.440749
+29 18 15 1.016505 0.767218 0.520668
+29 18 16 1.014369 0.775342 0.592680
+29 18 17 1.012939 0.782759 0.656784
+29 18 18 1.011560 0.790108 0.716393
+29 18 19 1.010221 0.797403 0.772506
+29 18 20 1.009172 0.802391 0.818965
+29 18 21 1.008299 0.805995 0.859634
+29 18 22 1.007414 0.808833 0.892462
+29 18 23 1.006524 0.811323 0.921728
+29 18 24 1.006409 0.816518 0.943535
+29 18 25 1.006553 0.822615 0.962857
+29 18 26 1.007210 0.831935 0.974513
+29 18 27 1.007985 0.842000 0.984401
+29 18 28 1.008593 0.849286 0.991242
+29 18 29 1.009176 0.856176 0.997647
+29 18 30 1.009932 0.863079 1.002677
+29 18 31 1.010700 0.869984 1.007614
+29 19 0 1.041606 0.675598 0.000000
+29 19 1 1.041535 0.678582 0.000000
+29 19 2 1.041455 0.681641 0.000000
+29 19 3 1.041252 0.685832 0.000000
+29 19 4 1.041089 0.690478 0.000000
+29 19 5 1.041211 0.698306 0.000000
+29 19 6 1.041348 0.707175 0.000000
+29 19 7 1.041545 0.720550 0.000000
+29 19 8 1.041760 0.734001 0.000000
+29 19 9 1.042028 0.747677 0.000000
+29 19 10 1.041361 0.761477 0.000000
+29 19 11 1.038636 0.775549 0.105983
+29 19 12 1.035939 0.788698 0.253757
+29 19 13 1.033286 0.800309 0.349305
+29 19 14 1.030318 0.810908 0.438840
+29 19 15 1.026945 0.820206 0.520643
+29 19 16 1.024328 0.828518 0.594066
+29 19 17 1.022466 0.835844 0.659111
+29 19 18 1.020745 0.843520 0.720030
+29 19 19 1.019135 0.851467 0.777741
+29 19 20 1.017768 0.856466 0.824857
+29 19 21 1.016547 0.859697 0.865617
+29 19 22 1.015315 0.862546 0.898799
+29 19 23 1.014077 0.865221 0.928538
+29 19 24 1.013615 0.869127 0.950040
+29 19 25 1.013412 0.873444 0.968798
+29 19 26 1.013646 0.879601 0.979888
+29 19 27 1.013981 0.886184 0.989209
+29 19 28 1.014378 0.891796 0.995731
+29 19 29 1.014783 0.897269 1.001855
+29 19 30 1.015121 0.902233 1.006605
+29 19 31 1.015453 0.907163 1.011264
+29 20 0 1.054209 0.713167 0.000000
+29 20 1 1.054042 0.716434 0.000000
+29 20 2 1.053870 0.719781 0.000000
+29 20 3 1.053644 0.724324 0.000000
+29 20 4 1.053445 0.729350 0.000000
+29 20 5 1.053436 0.737765 0.000000
+29 20 6 1.053367 0.747097 0.000000
+29 20 7 1.053039 0.760400 0.000000
+29 20 8 1.052766 0.773871 0.000000
+29 20 9 1.052658 0.787843 0.000000
+29 20 10 1.051562 0.801706 0.000000
+29 20 11 1.048291 0.815332 0.101855
+29 20 12 1.045104 0.828304 0.248797
+29 20 13 1.042055 0.840188 0.347369
+29 20 14 1.038683 0.850940 0.439147
+29 20 15 1.034896 0.860238 0.522189
+29 20 16 1.031907 0.868768 0.596644
+29 20 17 1.029718 0.876528 0.662513
+29 20 18 1.027673 0.884235 0.723998
+29 20 19 1.025743 0.891900 0.782074
+29 20 20 1.024106 0.896889 0.829422
+29 20 21 1.022645 0.900274 0.870335
+29 20 22 1.021211 0.902976 0.903444
+29 20 23 1.019789 0.905368 0.933005
+29 20 24 1.019099 0.908481 0.954306
+29 20 25 1.018655 0.911834 0.972854
+29 20 26 1.018576 0.916083 0.983731
+29 20 27 1.018581 0.920540 0.992837
+29 20 28 1.018735 0.924590 0.999137
+29 20 29 1.018910 0.928582 1.005037
+29 20 30 1.019029 0.932429 1.009567
+29 20 31 1.019143 0.936266 1.014006
+29 21 0 1.063886 0.742537 0.000000
+29 21 1 1.063721 0.746368 0.000000
+29 21 2 1.063563 0.750279 0.000000
+29 21 3 1.063509 0.755386 0.000000
+29 21 4 1.063461 0.761023 0.000000
+29 21 5 1.063455 0.770378 0.000000
+29 21 6 1.063241 0.780317 0.000000
+29 21 7 1.062125 0.792783 0.000000
+29 21 8 1.061216 0.805673 0.000000
+29 21 9 1.060928 0.819830 0.000000
+29 21 10 1.059598 0.833702 0.000000
+29 21 11 1.055977 0.846948 0.099617
+29 21 12 1.052471 0.859931 0.246378
+29 21 13 1.049157 0.872476 0.347307
+29 21 14 1.045485 0.883478 0.440783
+29 21 15 1.041353 0.892498 0.524677
+29 21 16 1.038060 0.901262 0.599936
+29 21 17 1.035605 0.909772 0.666561
+29 21 18 1.033247 0.917332 0.728165
+29 21 19 1.030966 0.924153 0.785864
+29 21 20 1.029089 0.929121 0.833191
+29 21 21 1.027453 0.932976 0.874295
+29 21 22 1.025904 0.935437 0.907073
+29 21 23 1.024394 0.937264 0.936068
+29 21 24 1.023550 0.939881 0.957229
+29 21 25 1.022927 0.942762 0.975780
+29 21 26 1.022602 0.945855 0.986654
+29 21 27 1.022344 0.948998 0.995758
+29 21 28 1.022236 0.951555 1.001894
+29 21 29 1.022148 0.954027 1.007605
+29 21 30 1.022168 0.957251 1.011950
+29 21 31 1.022196 0.960524 1.016203
+29 22 0 1.070765 0.766877 0.000000
+29 22 1 1.070599 0.770755 0.000000
+29 22 2 1.070436 0.774713 0.000000
+29 22 3 1.070315 0.779869 0.000000
+29 22 4 1.070187 0.785554 0.000000
+29 22 5 1.070001 0.794944 0.000000
+29 22 6 1.069639 0.805031 0.000000
+29 22 7 1.068516 0.818139 0.000000
+29 22 8 1.067482 0.831459 0.000000
+29 22 9 1.066716 0.845413 0.000000
+29 22 10 1.065005 0.859230 0.000000
+29 22 11 1.061214 0.872745 0.100445
+29 22 12 1.057503 0.885806 0.248216
+29 22 13 1.053926 0.898107 0.350789
+29 22 14 1.050059 0.909300 0.445588
+29 22 15 1.045819 0.919071 0.530393
+29 22 16 1.042340 0.928004 0.605998
+29 22 17 1.039622 0.936099 0.672404
+29 22 18 1.036986 0.943296 0.733665
+29 22 19 1.034415 0.949793 0.790926
+29 22 20 1.032357 0.954569 0.837722
+29 22 21 1.030607 0.958312 0.878239
+29 22 22 1.029044 0.960927 0.910757
+29 22 23 1.027568 0.963029 0.939639
+29 22 24 1.026599 0.965312 0.960433
+29 22 25 1.025801 0.967657 0.978532
+29 22 26 1.025326 0.969844 0.989113
+29 22 27 1.024927 0.971995 0.997959
+29 22 28 1.024676 0.973786 1.003953
+29 22 29 1.024446 0.975525 1.009539
+29 22 30 1.024376 0.977872 1.013822
+29 22 31 1.024315 0.980260 1.018017
+29 23 0 1.076372 0.788930 0.000000
+29 23 1 1.076203 0.792621 0.000000
+29 23 2 1.076026 0.796391 0.000000
+29 23 3 1.075730 0.801362 0.000000
+29 23 4 1.075416 0.806838 0.000000
+29 23 5 1.074967 0.815852 0.000000
+29 23 6 1.074458 0.825880 0.000000
+29 23 7 1.073681 0.840301 0.000000
+29 23 8 1.072755 0.854511 0.000000
+29 23 9 1.071376 0.868086 0.000000
+29 23 10 1.069217 0.881818 0.000000
+29 23 11 1.065338 0.895898 0.102667
+29 23 12 1.061474 0.909065 0.251990
+29 23 13 1.057634 0.920711 0.355882
+29 23 14 1.053620 0.932070 0.451833
+29 23 15 1.049380 0.943059 0.537575
+29 23 16 1.045770 0.952130 0.613318
+29 23 17 1.042789 0.959282 0.679063
+29 23 18 1.039891 0.966017 0.739772
+29 23 19 1.037057 0.972426 0.796566
+29 23 20 1.034846 0.976934 0.842599
+29 23 21 1.033008 0.980301 0.882176
+29 23 22 1.031479 0.983249 0.914464
+29 23 23 1.030089 0.986006 0.943440
+29 23 24 1.029011 0.988030 0.963765
+29 23 25 1.028038 0.989811 0.981206
+29 23 26 1.027460 0.991205 0.991360
+29 23 27 1.026973 0.992509 0.999833
+29 23 28 1.026634 0.993865 1.005695
+29 23 29 1.026317 0.995228 1.011184
+29 23 30 1.026159 0.996585 1.015461
+29 23 31 1.026011 0.997942 1.019657
+29 24 0 1.080711 0.806352 0.000000
+29 24 1 1.080408 0.810421 0.000000
+29 24 2 1.080094 0.814569 0.000000
+29 24 3 1.079626 0.819912 0.000000
+29 24 4 1.079152 0.825702 0.000000
+29 24 5 1.078638 0.834622 0.000000
+29 24 6 1.077942 0.844489 0.000000
+29 24 7 1.076456 0.858456 0.000000
+29 24 8 1.074961 0.872284 0.000000
+29 24 9 1.073436 0.885696 0.000000
+29 24 10 1.071126 0.899250 0.000000
+29 24 11 1.067090 0.913116 0.118872
+29 24 12 1.063103 0.926087 0.274818
+29 24 13 1.059198 0.937567 0.375792
+29 24 14 1.055175 0.948749 0.469371
+29 24 15 1.051001 0.959550 0.553443
+29 24 16 1.047456 0.968480 0.627493
+29 24 17 1.044541 0.975540 0.691521
+29 24 18 1.041636 0.982022 0.750540
+29 24 19 1.038738 0.988055 0.805663
+29 24 20 1.036488 0.992407 0.850219
+29 24 21 1.034626 0.995750 0.888435
+29 24 22 1.033059 0.998559 0.919536
+29 24 23 1.031626 1.001125 0.947402
+29 24 24 1.030554 1.002944 0.966959
+29 24 25 1.029602 1.004516 0.983747
+29 24 26 1.029010 1.005641 0.993531
+29 24 27 1.028502 1.006663 1.001699
+29 24 28 1.028141 1.007721 1.007440
+29 24 29 1.027802 1.008783 1.012834
+29 24 30 1.027562 1.009743 1.016971
+29 24 31 1.027330 1.010696 1.021023
+29 25 0 1.084627 0.822230 0.000000
+29 25 1 1.084146 0.826866 0.000000
+29 25 2 1.083656 0.831581 0.000000
+29 25 3 1.083015 0.837482 0.000000
+29 25 4 1.082390 0.843760 0.000000
+29 25 5 1.081876 0.852680 0.000000
+29 25 6 1.080981 0.862351 0.000000
+29 25 7 1.078434 0.875275 0.000000
+29 25 8 1.076144 0.888298 0.000000
+29 25 9 1.074628 0.901619 0.000000
+29 25 10 1.072267 0.914962 0.000000
+29 25 11 1.068051 0.928355 0.139739
+29 25 12 1.063951 0.941029 0.303997
+29 25 13 1.060045 0.952506 0.400640
+29 25 14 1.056061 0.963399 0.490672
+29 25 15 1.051975 0.973541 0.572206
+29 25 16 1.048561 0.982238 0.643952
+29 25 17 1.045821 0.989489 0.705912
+29 25 18 1.042994 0.995788 0.762861
+29 25 19 1.040100 1.001348 0.815912
+29 25 20 1.037849 1.005581 0.858753
+29 25 21 1.035984 1.009019 0.895468
+29 25 22 1.034356 1.011532 0.925061
+29 25 23 1.032835 1.013624 0.951417
+29 25 24 1.031807 1.015257 0.970108
+29 25 25 1.030942 1.016738 0.986243
+29 25 26 1.030367 1.017770 0.995676
+29 25 27 1.029858 1.018698 1.003561
+29 25 28 1.029498 1.019502 1.009185
+29 25 29 1.029159 1.020288 1.014486
+29 25 30 1.028840 1.021049 1.018437
+29 25 31 1.028522 1.021809 1.022298
+29 26 0 1.086460 0.832168 0.000000
+29 26 1 1.085879 0.836982 0.000000
+29 26 2 1.085288 0.841885 0.000000
+29 26 3 1.084541 0.848124 0.000000
+29 26 4 1.083780 0.854842 0.000000
+29 26 5 1.082910 0.864906 0.000000
+29 26 6 1.081676 0.875469 0.000000
+29 26 7 1.078861 0.888197 0.000000
+29 26 8 1.076245 0.900973 0.000000
+29 26 9 1.074228 0.913895 0.000000
+29 26 10 1.071535 0.926769 0.000000
+29 26 11 1.067358 0.939539 0.165208
+29 26 12 1.063258 0.951651 0.339972
+29 26 13 1.059283 0.962669 0.432286
+29 26 14 1.055421 0.973017 0.518039
+29 26 15 1.051705 0.982504 0.595355
+29 26 16 1.048493 0.990890 0.663652
+29 26 17 1.045785 0.998174 0.722930
+29 26 18 1.043053 1.004351 0.777630
+29 26 19 1.040301 1.009666 0.828771
+29 26 20 1.038150 1.013727 0.869380
+29 26 21 1.036358 1.017034 0.903672
+29 26 22 1.034788 1.019340 0.931368
+29 26 23 1.033320 1.021191 0.956066
+29 26 24 1.032319 1.022749 0.974076
+29 26 25 1.031473 1.024210 0.989858
+29 26 26 1.030957 1.025036 0.998252
+29 26 27 1.030517 1.025715 1.004942
+29 26 28 1.030105 1.026443 1.010334
+29 26 29 1.029698 1.027177 1.015540
+29 26 30 1.029422 1.027834 1.019452
+29 26 31 1.029154 1.028485 1.023277
+29 27 0 1.087811 0.840736 0.000000
+29 27 1 1.087148 0.845637 0.000000
+29 27 2 1.086474 0.850641 0.000000
+29 27 3 1.085638 0.857169 0.000000
+29 27 4 1.084742 0.864314 0.000000
+29 27 5 1.083435 0.875785 0.000000
+29 27 6 1.081829 0.887492 0.000000
+29 27 7 1.078930 0.900220 0.000000
+29 27 8 1.076096 0.912879 0.000000
+29 27 9 1.073460 0.925331 0.000000
+29 27 10 1.070371 0.937676 0.000000
+29 27 11 1.066285 0.949787 0.191740
+29 27 12 1.062208 0.961277 0.377514
+29 27 13 1.058149 0.971730 0.465500
+29 27 14 1.054430 0.981475 0.546804
+29 27 15 1.051149 0.990306 0.619517
+29 27 16 1.048154 0.998363 0.684100
+29 27 17 1.045446 1.005644 0.740554
+29 27 18 1.042812 1.011712 0.792965
+29 27 19 1.040236 1.016836 0.842231
+29 27 20 1.038206 1.020711 0.880491
+29 27 21 1.036505 1.023837 0.912147
+29 27 22 1.035022 1.025957 0.937855
+29 27 23 1.033638 1.027620 0.960861
+29 27 24 1.032660 1.029129 0.978235
+29 27 25 1.031817 1.030587 0.993731
+29 27 26 1.031371 1.031180 1.000928
+29 27 27 1.031016 1.031574 1.006211
+29 27 28 1.030540 1.032266 1.011344
+29 27 29 1.030047 1.033001 1.016457
+29 27 30 1.029843 1.033575 1.020363
+29 27 31 1.029658 1.034138 1.024188
+29 28 0 1.088707 0.846738 0.000000
+29 28 1 1.088034 0.851653 0.000000
+29 28 2 1.087350 0.856676 0.000000
+29 28 3 1.086502 0.863317 0.000000
+29 28 4 1.085581 0.870595 0.000000
+29 28 5 1.084145 0.882332 0.000000
+29 28 6 1.082390 0.894411 0.000000
+29 28 7 1.079255 0.907972 0.000000
+29 28 8 1.076093 0.921199 0.000000
+29 28 9 1.072849 0.933422 0.000000
+29 28 10 1.069391 0.945430 0.030142
+29 28 11 1.065464 0.956965 0.240534
+29 28 12 1.061483 0.967976 0.403958
+29 28 13 1.057411 0.978113 0.489102
+29 28 14 1.053740 0.987534 0.567436
+29 28 15 1.050587 0.996034 0.637015
+29 28 16 1.047729 1.003842 0.699362
+29 28 17 1.045168 1.010958 0.754475
+29 28 18 1.042658 1.016851 0.805016
+29 28 19 1.040190 1.021793 0.851999
+29 28 20 1.038255 1.025583 0.888889
+29 28 21 1.036639 1.028683 0.919725
+29 28 22 1.035193 1.030779 0.944236
+29 28 23 1.033825 1.032418 0.965873
+29 28 24 1.032905 1.033860 0.982086
+29 28 25 1.032134 1.035235 0.996490
+29 28 26 1.031649 1.035721 1.003405
+29 28 27 1.031231 1.036003 1.008591
+29 28 28 1.030799 1.036462 1.012982
+29 28 29 1.030365 1.036947 1.017260
+29 28 30 1.030176 1.037568 1.021114
+29 28 31 1.030003 1.038197 1.024940
+29 29 0 1.089538 0.852373 0.000000
+29 29 1 1.088866 0.857291 0.000000
+29 29 2 1.088182 0.862323 0.000000
+29 29 3 1.087334 0.869052 0.000000
+29 29 4 1.086402 0.876419 0.000000
+29 29 5 1.084881 0.888259 0.000000
+29 29 6 1.083009 0.900601 0.000000
+29 29 7 1.079618 0.915115 0.000000
+29 29 8 1.076111 0.929007 0.000000
+29 29 9 1.072260 0.941036 0.000155
+29 29 10 1.068438 0.952735 0.123925
+29 29 11 1.064680 0.963706 0.292508
+29 29 12 1.060804 0.974258 0.428816
+29 29 13 1.056728 0.984113 0.511330
+29 29 14 1.053094 0.993250 0.586906
+29 29 15 1.050025 1.001465 0.653562
+29 29 16 1.047293 1.009037 0.713882
+29 29 17 1.044898 1.015965 0.767867
+29 29 18 1.042517 1.021673 0.816597
+29 29 19 1.040148 1.026433 0.861238
+29 29 20 1.038302 1.030153 0.896901
+29 29 21 1.036771 1.033250 0.927175
+29 29 22 1.035356 1.035345 0.950602
+29 29 23 1.033993 1.036984 0.970917
+29 29 24 1.033136 1.038355 0.985893
+29 29 25 1.032447 1.039636 0.999091
+29 29 26 1.031909 1.040034 1.005853
+29 29 27 1.031405 1.040227 1.011130
+29 29 28 1.031032 1.040426 1.014710
+29 29 29 1.030677 1.040626 1.018048
+29 29 30 1.030496 1.041311 1.021843
+29 29 31 1.030326 1.042029 1.025668
+29 30 0 1.089754 0.856483 0.000000
+29 30 1 1.089079 0.861398 0.000000
+29 30 2 1.088393 0.866422 0.000000
+29 30 3 1.087545 0.873074 0.000000
+29 30 4 1.086622 0.880385 0.000000
+29 30 5 1.085176 0.892314 0.000000
+29 30 6 1.083347 0.904938 0.000000
+29 30 7 1.079862 0.920572 0.000000
+29 30 8 1.076193 0.935236 0.000000
+29 30 9 1.071970 0.946992 0.061643
+29 30 10 1.067898 0.958435 0.207481
+29 30 11 1.064156 0.969191 0.338461
+29 30 12 1.060258 0.979504 0.450148
+29 30 13 1.056101 0.989076 0.529680
+29 30 14 1.052457 0.997932 0.602378
+29 30 15 1.049473 1.005865 0.666289
+29 30 16 1.046708 1.013159 0.724586
+29 30 17 1.044162 1.019813 0.777270
+29 30 18 1.041902 1.025394 0.824602
+29 30 19 1.039864 1.030139 0.867772
+29 30 20 1.038198 1.033854 0.902642
+29 30 21 1.036753 1.036951 0.932532
+29 30 22 1.035422 1.039046 0.955057
+29 30 23 1.034142 1.040685 0.974234
+29 30 24 1.033250 1.041988 0.988473
+29 30 25 1.032487 1.043177 1.001066
+29 30 26 1.031930 1.043620 1.007717
+29 30 27 1.031421 1.043891 1.012997
+29 30 28 1.031121 1.044084 1.016526
+29 30 29 1.030850 1.044266 1.019805
+29 30 30 1.030444 1.044710 1.022935
+29 30 31 1.030028 1.045171 1.026055
+29 31 0 1.089929 0.860490 0.000000
+29 31 1 1.089251 0.865403 0.000000
+29 31 2 1.088562 0.870418 0.000000
+29 31 3 1.087714 0.876982 0.000000
+29 31 4 1.086802 0.884228 0.000000
+29 31 5 1.085440 0.896245 0.000000
+29 31 6 1.083665 0.909152 0.000000
+29 31 7 1.080099 0.925917 0.000000
+29 31 8 1.076279 0.941360 0.000000
+29 31 9 1.071700 0.952836 0.122635
+29 31 10 1.067385 0.964028 0.290356
+29 31 11 1.063649 0.974594 0.384012
+29 31 12 1.059722 0.984681 0.471245
+29 31 13 1.055477 0.993971 0.547771
+29 31 14 1.051821 1.002545 0.617583
+29 31 15 1.048922 1.010196 0.678761
+29 31 16 1.046113 1.017209 0.735035
+29 31 17 1.043395 1.023585 0.786406
+29 31 18 1.041255 1.029042 0.832369
+29 31 19 1.039564 1.033784 0.874126
+29 31 20 1.038083 1.037497 0.908232
+29 31 21 1.036726 1.040594 0.937749
+29 31 22 1.035482 1.042689 0.959384
+29 31 23 1.034290 1.044329 0.977436
+29 31 24 1.033356 1.045563 0.990970
+29 31 25 1.032508 1.046662 1.002999
+29 31 26 1.031936 1.047159 1.009542
+29 31 27 1.031427 1.047517 1.014819
+29 31 28 1.031201 1.047721 1.018348
+29 31 29 1.031015 1.047904 1.021626
+29 31 30 1.030367 1.048086 1.024051
+29 31 31 1.029689 1.048268 1.026420
+30 0 0 0.651276 0.000000 0.000000
+30 0 1 0.651873 0.000000 0.000000
+30 0 2 0.652490 0.000000 0.000000
+30 0 3 0.653420 0.000000 0.000000
+30 0 4 0.654424 0.000000 0.000000
+30 0 5 0.655950 0.000000 0.000000
+30 0 6 0.657683 0.000000 0.000000
+30 0 7 0.660308 0.000000 0.000000
+30 0 8 0.663317 0.000000 0.000000
+30 0 9 0.667474 0.000000 0.033433
+30 0 10 0.671233 0.000000 0.075091
+30 0 11 0.674116 0.000000 0.130557
+30 0 12 0.676904 0.000000 0.182811
+30 0 13 0.679535 0.000000 0.229709
+30 0 14 0.681760 0.000000 0.277012
+30 0 15 0.683461 0.000000 0.324833
+30 0 16 0.686095 0.000000 0.369510
+30 0 17 0.689661 0.000000 0.411044
+30 0 18 0.693603 0.000000 0.452009
+30 0 19 0.697837 0.000000 0.492532
+30 0 20 0.702871 0.000000 0.528221
+30 0 21 0.708384 0.000000 0.561011
+30 0 22 0.715993 0.000000 0.590795
+30 0 23 0.724554 0.000000 0.619213
+30 0 24 0.739219 0.000000 0.651526
+30 0 25 0.755919 0.000000 0.685139
+30 0 26 0.782610 0.000000 0.726371
+30 0 27 0.811607 0.000000 0.769362
+30 0 28 0.831257 0.000000 0.798645
+30 0 29 0.849571 0.003086 0.825970
+30 0 30 0.862874 0.098341 0.845775
+30 0 31 0.875844 0.195247 0.865078
+30 1 0 0.658568 0.000000 0.000000
+30 1 1 0.659294 0.000000 0.000000
+30 1 2 0.660033 0.000000 0.000000
+30 1 3 0.660966 0.000000 0.000000
+30 1 4 0.661973 0.000000 0.000000
+30 1 5 0.663499 0.000000 0.000000
+30 1 6 0.665231 0.000000 0.000000
+30 1 7 0.667854 0.000000 0.000000
+30 1 8 0.670861 0.000000 0.001249
+30 1 9 0.675021 0.000000 0.036679
+30 1 10 0.678795 0.000000 0.078503
+30 1 11 0.681720 0.000000 0.134394
+30 1 12 0.684535 0.000000 0.187195
+30 1 13 0.687166 0.000000 0.234845
+30 1 14 0.689429 0.000000 0.282837
+30 1 15 0.691217 0.000000 0.331268
+30 1 16 0.693872 0.000000 0.376626
+30 1 17 0.697394 0.000000 0.418912
+30 1 18 0.701292 0.000000 0.460312
+30 1 19 0.705483 0.000000 0.501023
+30 1 20 0.710419 0.000000 0.536901
+30 1 21 0.715800 0.000000 0.569878
+30 1 22 0.723217 0.000000 0.599592
+30 1 23 0.731561 0.000000 0.627822
+30 1 24 0.744793 0.000000 0.658291
+30 1 25 0.759655 0.000000 0.689508
+30 1 26 0.785931 0.000000 0.730291
+30 1 27 0.814840 0.000000 0.773282
+30 1 28 0.834555 0.000000 0.802565
+30 1 29 0.852957 0.016307 0.829889
+30 1 30 0.866266 0.111958 0.849737
+30 1 31 0.879235 0.208815 0.869086
+30 2 0 0.666013 0.000000 0.000000
+30 2 1 0.666864 0.000000 0.000000
+30 2 2 0.667720 0.000000 0.000000
+30 2 3 0.668664 0.000000 0.000000
+30 2 4 0.669680 0.000000 0.000000
+30 2 5 0.671206 0.000000 0.000000
+30 2 6 0.672938 0.000000 0.000000
+30 2 7 0.675561 0.000000 0.000000
+30 2 8 0.678569 0.000000 0.003752
+30 2 9 0.682732 0.000000 0.039682
+30 2 10 0.686520 0.000000 0.081986
+30 2 11 0.689485 0.000000 0.138313
+30 2 12 0.692325 0.000000 0.191676
+30 2 13 0.694956 0.000000 0.240096
+30 2 14 0.697258 0.000000 0.288791
+30 2 15 0.699137 0.000000 0.337837
+30 2 16 0.701814 0.000000 0.383888
+30 2 17 0.705291 0.000000 0.426944
+30 2 18 0.709147 0.000000 0.468789
+30 2 19 0.713299 0.000000 0.509694
+30 2 20 0.718134 0.000000 0.545766
+30 2 21 0.723380 0.000000 0.578937
+30 2 22 0.730596 0.000000 0.608574
+30 2 23 0.738709 0.000000 0.636604
+30 2 24 0.750570 0.000000 0.665310
+30 2 25 0.763682 0.000000 0.694242
+30 2 26 0.789465 0.000000 0.734468
+30 2 27 0.818172 0.000000 0.777300
+30 2 28 0.837929 0.000000 0.806563
+30 2 29 0.856407 0.029804 0.833888
+30 2 30 0.869723 0.125860 0.853773
+30 2 31 0.882695 0.222669 0.873162
+30 3 0 0.675767 0.000000 0.000000
+30 3 1 0.676660 0.000000 0.000000
+30 3 2 0.677564 0.000000 0.000000
+30 3 3 0.678637 0.000000 0.000000
+30 3 4 0.679767 0.000000 0.000000
+30 3 5 0.681293 0.000000 0.000000
+30 3 6 0.683033 0.000000 0.000000
+30 3 7 0.685702 0.000000 0.000000
+30 3 8 0.688743 0.000000 0.000000
+30 3 9 0.692906 0.000000 0.039045
+30 3 10 0.696695 0.000000 0.086549
+30 3 11 0.699659 0.000000 0.143486
+30 3 12 0.702499 0.000000 0.197616
+30 3 13 0.705130 0.000000 0.247071
+30 3 14 0.707489 0.000000 0.296657
+30 3 15 0.709498 0.000000 0.346410
+30 3 16 0.712219 0.000000 0.393331
+30 3 17 0.715653 0.000000 0.437421
+30 3 18 0.719491 0.000000 0.479878
+30 3 19 0.723643 0.000000 0.521065
+30 3 20 0.728369 0.000000 0.557418
+30 3 21 0.733440 0.000000 0.590872
+30 3 22 0.740300 0.000000 0.620338
+30 3 23 0.747975 0.000000 0.647992
+30 3 24 0.759399 0.000000 0.676145
+30 3 25 0.772073 0.000000 0.704464
+30 3 26 0.796210 0.000000 0.742513
+30 3 27 0.822991 0.000000 0.782806
+30 3 28 0.842431 0.000000 0.811752
+30 3 29 0.860821 0.047433 0.839077
+30 3 30 0.874172 0.144033 0.858919
+30 3 31 0.887186 0.240797 0.878263
+30 4 0 0.686442 0.000000 0.000000
+30 4 1 0.687372 0.000000 0.000000
+30 4 2 0.688318 0.000000 0.000000
+30 4 3 0.689511 0.000000 0.000000
+30 4 4 0.690750 0.000000 0.000000
+30 4 5 0.692320 0.000000 0.000000
+30 4 6 0.694103 0.000000 0.000000
+30 4 7 0.696811 0.000000 0.000000
+30 4 8 0.699883 0.000000 0.000000
+30 4 9 0.704045 0.000000 0.036673
+30 4 10 0.707835 0.000000 0.091522
+30 4 11 0.710805 0.000000 0.149145
+30 4 12 0.713648 0.000000 0.204126
+30 4 13 0.716280 0.000000 0.254703
+30 4 14 0.718702 0.000000 0.305260
+30 4 15 0.720858 0.000000 0.355790
+30 4 16 0.723628 0.000000 0.403670
+30 4 17 0.727014 0.000000 0.448900
+30 4 18 0.730831 0.000000 0.492007
+30 4 19 0.734983 0.000000 0.533465
+30 4 20 0.739586 0.000000 0.570125
+30 4 21 0.744460 0.000000 0.603908
+30 4 22 0.750947 0.000000 0.633227
+30 4 23 0.758167 0.000000 0.660516
+30 4 24 0.769170 0.000000 0.688163
+30 4 25 0.781434 0.000000 0.715928
+30 4 26 0.803716 0.000000 0.751524
+30 4 27 0.828310 0.000000 0.788926
+30 4 28 0.847389 0.000000 0.817480
+30 4 29 0.865681 0.066715 0.844770
+30 4 30 0.879061 0.163931 0.864578
+30 4 31 0.892112 0.260667 0.883887
+30 5 0 0.703568 0.000000 0.000000
+30 5 1 0.704498 0.000000 0.000000
+30 5 2 0.705447 0.000000 0.000000
+30 5 3 0.706685 0.000000 0.000000
+30 5 4 0.708008 0.000000 0.000000
+30 5 5 0.709928 0.000000 0.000000
+30 5 6 0.711996 0.000000 0.000000
+30 5 7 0.714704 0.000000 0.000000
+30 5 8 0.717774 0.000000 0.000000
+30 5 9 0.721934 0.000000 0.022152
+30 5 10 0.725736 0.000000 0.099373
+30 5 11 0.728752 0.000000 0.158218
+30 5 12 0.731623 0.000000 0.214616
+30 5 13 0.734254 0.000000 0.266934
+30 5 14 0.736792 0.000000 0.319025
+30 5 15 0.739210 0.000000 0.370822
+30 5 16 0.742068 0.000000 0.420276
+30 5 17 0.745366 0.000000 0.467387
+30 5 18 0.749145 0.000000 0.511423
+30 5 19 0.753297 0.000000 0.553068
+30 5 20 0.757681 0.000000 0.590210
+30 5 21 0.762205 0.000000 0.624651
+30 5 22 0.768190 0.000000 0.653982
+30 5 23 0.774840 0.000000 0.680989
+30 5 24 0.785538 0.000000 0.708461
+30 5 25 0.797585 0.000000 0.736087
+30 5 26 0.816554 0.000000 0.767302
+30 5 27 0.837122 0.000000 0.799345
+30 5 28 0.855545 0.000000 0.826982
+30 5 29 0.873662 0.097565 0.853989
+30 5 30 0.887030 0.195898 0.873823
+30 5 31 0.900082 0.292728 0.893177
+30 6 0 0.722776 0.000000 0.000000
+30 6 1 0.723723 0.000000 0.000000
+30 6 2 0.724691 0.000000 0.000000
+30 6 3 0.725973 0.000000 0.000000
+30 6 4 0.727371 0.000000 0.000000
+30 6 5 0.729576 0.000000 0.000000
+30 6 6 0.731887 0.000000 0.000000
+30 6 7 0.734659 0.000000 0.000000
+30 6 8 0.737782 0.000000 0.000000
+30 6 9 0.741956 0.000000 0.011843
+30 6 10 0.745780 0.000000 0.108142
+30 6 11 0.748832 0.000000 0.168242
+30 6 12 0.751735 0.000000 0.226143
+30 6 13 0.754391 0.000000 0.280379
+30 6 14 0.757029 0.000000 0.334188
+30 6 15 0.759643 0.000000 0.387448
+30 6 16 0.762584 0.000000 0.438559
+30 6 17 0.765853 0.000000 0.487523
+30 6 18 0.769590 0.000000 0.532699
+30 6 19 0.773693 0.000000 0.574930
+30 6 20 0.777876 0.000000 0.612636
+30 6 21 0.782107 0.000000 0.647629
+30 6 22 0.787610 0.000000 0.677084
+30 6 23 0.793690 0.000000 0.704022
+30 6 24 0.803891 0.000000 0.731146
+30 6 25 0.815466 0.000000 0.758331
+30 6 26 0.831689 0.000000 0.785926
+30 6 27 0.848986 0.000000 0.813615
+30 6 28 0.866279 0.019692 0.839720
+30 6 29 0.883573 0.145134 0.865599
+30 6 30 0.896437 0.238045 0.884803
+30 6 31 0.909006 0.328788 0.903562
+30 7 0 0.751002 0.000000 0.000000
+30 7 1 0.752039 0.000000 0.000000
+30 7 2 0.753094 0.000000 0.000000
+30 7 3 0.754419 0.000000 0.000000
+30 7 4 0.755854 0.000000 0.000000
+30 7 5 0.758058 0.000000 0.000000
+30 7 6 0.760435 0.000000 0.000000
+30 7 7 0.763555 0.000000 0.000000
+30 7 8 0.766960 0.000000 0.000000
+30 7 9 0.771221 0.000000 0.019786
+30 7 10 0.775105 0.000000 0.120890
+30 7 11 0.778157 0.000000 0.182388
+30 7 12 0.781110 0.000000 0.242169
+30 7 13 0.783899 0.000000 0.299085
+30 7 14 0.786572 0.000000 0.355410
+30 7 15 0.789096 0.000000 0.410975
+30 7 16 0.792100 0.000000 0.464107
+30 7 17 0.795586 0.000000 0.514805
+30 7 18 0.799271 0.000000 0.562039
+30 7 19 0.803111 0.000000 0.606577
+30 7 20 0.807169 0.000000 0.645207
+30 7 21 0.811358 0.000000 0.680290
+30 7 22 0.816457 0.000000 0.710360
+30 7 23 0.821970 0.000000 0.738150
+30 7 24 0.830848 0.000000 0.764176
+30 7 25 0.840847 0.029424 0.789615
+30 7 26 0.856775 0.071236 0.816882
+30 7 27 0.874071 0.112882 0.844571
+30 7 28 0.888186 0.186714 0.866481
+30 7 29 0.901846 0.265145 0.887565
+30 7 30 0.912069 0.324305 0.903304
+30 7 31 0.922063 0.382180 0.918687
+30 8 0 0.777472 0.000000 0.000000
+30 8 1 0.778565 0.000000 0.000000
+30 8 2 0.779677 0.000000 0.000000
+30 8 3 0.781055 0.000000 0.000000
+30 8 4 0.782545 0.000000 0.000000
+30 8 5 0.784815 0.000000 0.000000
+30 8 6 0.787310 0.000000 0.000000
+30 8 7 0.790779 0.000000 0.000000
+30 8 8 0.794451 0.000000 0.000000
+30 8 9 0.798734 0.000000 0.025917
+30 8 10 0.802629 0.000000 0.131012
+30 8 11 0.805670 0.000000 0.194489
+30 8 12 0.808629 0.000000 0.256445
+30 8 13 0.811452 0.000000 0.315866
+30 8 14 0.814105 0.000000 0.374567
+30 8 15 0.816539 0.002591 0.432343
+30 8 16 0.819542 0.004936 0.487365
+30 8 17 0.823114 0.006852 0.539635
+30 8 18 0.826726 0.007980 0.588636
+30 8 19 0.830369 0.008496 0.635094
+30 8 20 0.834244 0.010878 0.674654
+30 8 21 0.838258 0.014380 0.710076
+30 8 22 0.842890 0.022587 0.740577
+30 8 23 0.847802 0.032932 0.768842
+30 8 24 0.855439 0.083227 0.793908
+30 8 25 0.863983 0.146838 0.817907
+30 8 26 0.879274 0.212750 0.844408
+30 8 27 0.896122 0.279194 0.871486
+30 8 28 0.907547 0.324432 0.889843
+30 8 29 0.918198 0.366642 0.906955
+30 8 30 0.926228 0.399470 0.919808
+30 8 31 0.934082 0.431673 0.932378
+30 9 0 0.798674 0.014842 0.000000
+30 9 1 0.799722 0.016017 0.000000
+30 9 2 0.800797 0.017259 0.000000
+30 9 3 0.802263 0.019492 0.000000
+30 9 4 0.803862 0.021952 0.000000
+30 9 5 0.806395 0.026005 0.000000
+30 9 6 0.809169 0.032574 0.000000
+30 9 7 0.812991 0.050051 0.000000
+30 9 8 0.816884 0.064598 0.000000
+30 9 9 0.820992 0.070356 0.026614
+30 9 10 0.824753 0.076735 0.133256
+30 9 11 0.827748 0.084477 0.200455
+30 9 12 0.830581 0.091567 0.265477
+30 9 13 0.833141 0.097568 0.326873
+30 9 14 0.835608 0.102715 0.387527
+30 9 15 0.837954 0.106764 0.447228
+30 9 16 0.840761 0.110498 0.503755
+30 9 17 0.844029 0.113918 0.557108
+30 9 18 0.847505 0.116653 0.607005
+30 9 19 0.851145 0.118855 0.654215
+30 9 20 0.854662 0.121987 0.694732
+30 9 21 0.858107 0.125677 0.731234
+30 9 22 0.862079 0.133369 0.761620
+30 9 23 0.866291 0.142881 0.789227
+30 9 24 0.872933 0.175586 0.813742
+30 9 25 0.880385 0.216022 0.837225
+30 9 26 0.894012 0.272700 0.861643
+30 9 27 0.909064 0.333126 0.886276
+30 9 28 0.919272 0.374240 0.903012
+30 9 29 0.928788 0.412594 0.918619
+30 9 30 0.935966 0.441352 0.930321
+30 9 31 0.942988 0.469470 0.941762
+30 10 0 0.821676 0.114533 0.000000
+30 10 1 0.822706 0.116517 0.000000
+30 10 2 0.823767 0.118597 0.000000
+30 10 3 0.825280 0.122117 0.000000
+30 10 4 0.826942 0.125995 0.000000
+30 10 5 0.829641 0.132380 0.000000
+30 10 6 0.832580 0.139249 0.000000
+30 10 7 0.836561 0.148218 0.000000
+30 10 8 0.840527 0.156263 0.000000
+30 10 9 0.844447 0.161534 0.026179
+30 10 10 0.848017 0.167642 0.133821
+30 10 11 0.850818 0.175590 0.204987
+30 10 12 0.853430 0.183107 0.273290
+30 10 13 0.855727 0.189905 0.336821
+30 10 14 0.857972 0.196049 0.399622
+30 10 15 0.860148 0.201353 0.461485
+30 10 16 0.862683 0.206358 0.519582
+30 10 17 0.865578 0.211064 0.573913
+30 10 18 0.868714 0.215097 0.624761
+30 10 19 0.872037 0.218606 0.672900
+30 10 20 0.875097 0.222365 0.714285
+30 10 21 0.878000 0.226273 0.751618
+30 10 22 0.881330 0.233365 0.782013
+30 10 23 0.884855 0.241902 0.809256
+30 10 24 0.890588 0.262030 0.833193
+30 10 25 0.897057 0.286022 0.856028
+30 10 26 0.908863 0.334226 0.878219
+30 10 27 0.921902 0.388017 0.900261
+30 10 28 0.930852 0.424877 0.915408
+30 10 29 0.939218 0.459318 0.929569
+30 10 30 0.945594 0.484609 0.940261
+30 10 31 0.951838 0.509290 0.950721
+30 11 0 0.848638 0.180213 0.000000
+30 11 1 0.849711 0.182715 0.000000
+30 11 2 0.850809 0.185293 0.000000
+30 11 3 0.852279 0.189001 0.000000
+30 11 4 0.853898 0.193085 0.000000
+30 11 5 0.856552 0.199800 0.000000
+30 11 6 0.859405 0.206626 0.000000
+30 11 7 0.863121 0.213926 0.000000
+30 11 8 0.866833 0.221157 0.000000
+30 11 9 0.870536 0.228179 0.023253
+30 11 10 0.873792 0.235781 0.130693
+30 11 11 0.876068 0.244660 0.206366
+30 11 12 0.878253 0.253167 0.278419
+30 11 13 0.880288 0.261054 0.344440
+30 11 14 0.882230 0.268341 0.409815
+30 11 15 0.884054 0.274858 0.474359
+30 11 16 0.886151 0.280873 0.534171
+30 11 17 0.888524 0.286386 0.589252
+30 11 18 0.890866 0.291038 0.641168
+30 11 19 0.893184 0.295020 0.690623
+30 11 20 0.895567 0.299134 0.732679
+30 11 21 0.897990 0.303328 0.770297
+30 11 22 0.900718 0.309629 0.800976
+30 11 23 0.903585 0.316886 0.828501
+30 11 24 0.908597 0.335464 0.851803
+30 11 25 0.914323 0.357814 0.873698
+30 11 26 0.923965 0.399217 0.893344
+30 11 27 0.934510 0.445017 0.912472
+30 11 28 0.942114 0.477340 0.926102
+30 11 29 0.949297 0.507739 0.938948
+30 11 30 0.954983 0.530891 0.948940
+30 11 31 0.960568 0.553561 0.958742
+30 12 0 0.875536 0.244140 0.000000
+30 12 1 0.876620 0.247002 0.000000
+30 12 2 0.877724 0.249926 0.000000
+30 12 3 0.879135 0.253787 0.000000
+30 12 4 0.880690 0.258039 0.000000
+30 12 5 0.883250 0.265032 0.000000
+30 12 6 0.885996 0.272096 0.000000
+30 12 7 0.889547 0.279473 0.000000
+30 12 8 0.893069 0.287055 0.000000
+30 12 9 0.896505 0.295254 0.012390
+30 12 10 0.899444 0.304042 0.117044
+30 12 11 0.901293 0.314123 0.202920
+30 12 12 0.903058 0.323762 0.282416
+30 12 13 0.904682 0.332662 0.351279
+30 12 14 0.906247 0.340991 0.419310
+30 12 15 0.907736 0.348586 0.486271
+30 12 16 0.909364 0.355436 0.547852
+30 12 17 0.911129 0.361538 0.604055
+30 12 18 0.912760 0.366724 0.657092
+30 12 19 0.914288 0.371198 0.707669
+30 12 20 0.916043 0.375553 0.750390
+30 12 21 0.917936 0.379836 0.788398
+30 12 22 0.920081 0.385495 0.819319
+30 12 23 0.922340 0.391779 0.847019
+30 12 24 0.926555 0.408535 0.869765
+30 12 25 0.931422 0.428782 0.890861
+30 12 26 0.939117 0.464099 0.908419
+30 12 27 0.947463 0.502894 0.925161
+30 12 28 0.953787 0.531082 0.937357
+30 12 29 0.959821 0.557755 0.948905
+30 12 30 0.964695 0.578570 0.958084
+30 12 31 0.969491 0.598995 0.967104
+30 13 0 0.902329 0.305148 0.000000
+30 13 1 0.903370 0.308104 0.000000
+30 13 2 0.904429 0.311122 0.000000
+30 13 3 0.905753 0.315076 0.000000
+30 13 4 0.907209 0.319434 0.000000
+30 13 5 0.909594 0.326615 0.000000
+30 13 6 0.912198 0.334392 0.000000
+30 13 7 0.915752 0.344749 0.000000
+30 13 8 0.919189 0.354623 0.000000
+30 13 9 0.922274 0.363047 0.000000
+30 13 10 0.924891 0.372507 0.085861
+30 13 11 0.926477 0.384244 0.191433
+30 13 12 0.927831 0.395250 0.284525
+30 13 13 0.928797 0.405035 0.356819
+30 13 14 0.929860 0.414237 0.427643
+30 13 15 0.931048 0.422688 0.496578
+30 13 16 0.932150 0.430078 0.560018
+30 13 17 0.933167 0.436408 0.617965
+30 13 18 0.934227 0.441987 0.672214
+30 13 19 0.935319 0.446983 0.723588
+30 13 20 0.936529 0.451385 0.766961
+30 13 21 0.937809 0.455432 0.805533
+30 13 22 0.939401 0.460698 0.836628
+30 13 23 0.941135 0.466518 0.864325
+30 13 24 0.944429 0.481001 0.886648
+30 13 25 0.948243 0.498373 0.907180
+30 13 26 0.954352 0.528797 0.923410
+30 13 27 0.960991 0.562233 0.938647
+30 13 28 0.966145 0.586954 0.949546
+30 13 29 0.971086 0.610430 0.959826
+30 13 30 0.974947 0.628574 0.968001
+30 13 31 0.978736 0.646363 0.976036
+30 14 0 0.930866 0.373899 0.000000
+30 14 1 0.931749 0.376804 0.000000
+30 14 2 0.932645 0.379769 0.000000
+30 14 3 0.933747 0.383633 0.000000
+30 14 4 0.934956 0.387895 0.000000
+30 14 5 0.936918 0.394934 0.000000
+30 14 6 0.939114 0.402852 0.000000
+30 14 7 0.942325 0.414572 0.000000
+30 14 8 0.945407 0.425680 0.000000
+30 14 9 0.948104 0.434953 0.000000
+30 14 10 0.950300 0.445403 0.037561
+30 14 11 0.951394 0.458441 0.172088
+30 14 12 0.952229 0.470486 0.284619
+30 14 13 0.952634 0.480874 0.360487
+30 14 14 0.953080 0.490661 0.434402
+30 14 15 0.953580 0.499674 0.505805
+30 14 16 0.954023 0.507389 0.571154
+30 14 17 0.954410 0.513807 0.630451
+30 14 18 0.954905 0.519705 0.685753
+30 14 19 0.955485 0.525198 0.737949
+30 14 20 0.956155 0.529589 0.781892
+30 14 21 0.956879 0.533318 0.820883
+30 14 22 0.957923 0.538064 0.852322
+30 14 23 0.959112 0.543273 0.880327
+30 14 24 0.961510 0.555497 0.902380
+30 14 25 0.964310 0.570060 0.922448
+30 14 26 0.968905 0.595369 0.937369
+30 14 27 0.973913 0.623158 0.951102
+30 14 28 0.977805 0.643710 0.960739
+30 14 29 0.981538 0.663229 0.969791
+30 14 30 0.984523 0.678677 0.977078
+30 14 31 0.987459 0.693853 0.984248
+30 15 0 0.961646 0.452606 0.000000
+30 15 1 0.962221 0.455274 0.000000
+30 15 2 0.962805 0.457997 0.000000
+30 15 3 0.963511 0.461534 0.000000
+30 15 4 0.964281 0.465438 0.000000
+30 15 5 0.965501 0.471914 0.000000
+30 15 6 0.966945 0.479238 0.000000
+30 15 7 0.969369 0.490239 0.000000
+30 15 8 0.971751 0.501222 0.000000
+30 15 9 0.974010 0.512148 0.000000
+30 15 10 0.975659 0.523998 0.000000
+30 15 11 0.975965 0.537879 0.142641
+30 15 12 0.976144 0.550540 0.282121
+30 15 13 0.976112 0.561168 0.361751
+30 15 14 0.975794 0.571170 0.439138
+30 15 15 0.975111 0.580368 0.513644
+30 15 16 0.974723 0.588131 0.580966
+30 15 17 0.974629 0.594458 0.641106
+30 15 18 0.974570 0.600579 0.697256
+30 15 19 0.974537 0.606539 0.750304
+30 15 20 0.974675 0.610841 0.794713
+30 15 21 0.974917 0.614149 0.833938
+30 15 22 0.975418 0.618213 0.865937
+30 15 23 0.976037 0.622621 0.894652
+30 15 24 0.977570 0.632602 0.916632
+30 15 25 0.979408 0.644441 0.936367
+30 15 26 0.982578 0.664351 0.950003
+30 15 27 0.986057 0.686122 0.962232
+30 15 28 0.988569 0.701605 0.970651
+30 15 29 0.990944 0.716189 0.978526
+30 15 30 0.993230 0.728906 0.985075
+30 15 31 0.995511 0.741498 0.991535
+30 16 0 0.987722 0.519783 0.000000
+30 16 1 0.988122 0.522522 0.000000
+30 16 2 0.988526 0.525313 0.000000
+30 16 3 0.988991 0.528897 0.000000
+30 16 4 0.989499 0.532860 0.000000
+30 16 5 0.990303 0.539476 0.000000
+30 16 6 0.991271 0.546892 0.000000
+30 16 7 0.992949 0.557772 0.000000
+30 16 8 0.994657 0.568941 0.000000
+30 16 9 0.996457 0.580976 0.000000
+30 16 10 0.997572 0.593763 0.000000
+30 16 11 0.997178 0.608207 0.125235
+30 16 12 0.996682 0.621406 0.277670
+30 16 13 0.996016 0.632530 0.361201
+30 16 14 0.994967 0.642799 0.441801
+30 16 15 0.993429 0.651970 0.518631
+30 16 16 0.992351 0.659860 0.587738
+30 16 17 0.991733 0.666471 0.649123
+30 16 18 0.991173 0.672928 0.706256
+30 16 19 0.990658 0.679264 0.760084
+30 16 20 0.990342 0.683693 0.805079
+30 16 21 0.990146 0.686978 0.844774
+30 16 22 0.990163 0.690469 0.877114
+30 16 23 0.990278 0.694053 0.906111
+30 16 24 0.991111 0.702120 0.928091
+30 16 25 0.992184 0.711682 0.947732
+30 16 26 0.994234 0.727325 0.960472
+30 16 27 0.996510 0.744371 0.971619
+30 16 28 0.998067 0.756096 0.979224
+30 16 29 0.999521 0.767060 0.986322
+30 16 30 1.001177 0.777417 0.992226
+30 16 31 1.002846 0.787732 0.998049
+30 17 0 1.009094 0.575432 0.000000
+30 17 1 1.009452 0.578546 0.000000
+30 17 2 1.009810 0.581716 0.000000
+30 17 3 1.010188 0.585722 0.000000
+30 17 4 1.010608 0.590159 0.000000
+30 17 5 1.011324 0.597622 0.000000
+30 17 6 1.012089 0.605815 0.000000
+30 17 7 1.013064 0.617171 0.000000
+30 17 8 1.014125 0.628838 0.000000
+30 17 9 1.015446 0.641437 0.000000
+30 17 10 1.016039 0.654700 0.000000
+30 17 11 1.015033 0.669426 0.119869
+30 17 12 1.013842 0.683084 0.271265
+30 17 13 1.012346 0.694960 0.358839
+30 17 14 1.010600 0.705547 0.442389
+30 17 15 1.008533 0.714478 0.520766
+30 17 16 1.006908 0.722578 0.591471
+30 17 17 1.005723 0.729847 0.654502
+30 17 18 1.004716 0.736752 0.712753
+30 17 19 1.003847 0.743373 0.767288
+30 17 20 1.003154 0.748144 0.812989
+30 17 21 1.002565 0.751805 0.853391
+30 17 22 1.002159 0.754832 0.885852
+30 17 23 1.001836 0.757570 0.914704
+30 17 24 1.002135 0.764052 0.936756
+30 17 25 1.002640 0.771781 0.956543
+30 17 26 1.003873 0.784291 0.968775
+30 17 27 1.005273 0.797904 0.979264
+30 17 28 1.006298 0.807183 0.986458
+30 17 29 1.007270 0.815842 0.993180
+30 17 30 1.008363 0.824209 0.998531
+30 17 31 1.009465 0.832557 1.003790
+30 18 0 1.028176 0.628175 0.000000
+30 18 1 1.028368 0.631348 0.000000
+30 18 2 1.028556 0.634583 0.000000
+30 18 3 1.028698 0.638747 0.000000
+30 18 4 1.028883 0.643370 0.000000
+30 18 5 1.029364 0.651203 0.000000
+30 18 6 1.029867 0.659879 0.000000
+30 18 7 1.030461 0.672208 0.000000
+30 18 8 1.031092 0.684726 0.000000
+30 18 9 1.031832 0.697810 0.000000
+30 18 10 1.031789 0.711339 0.000000
+30 18 11 1.030023 0.725845 0.113527
+30 18 12 1.028100 0.739419 0.263409
+30 18 13 1.025920 0.751438 0.355003
+30 18 14 1.023538 0.762131 0.441539
+30 18 15 1.020898 0.771120 0.521574
+30 18 16 1.018761 0.779366 0.593731
+30 18 17 1.017130 0.786870 0.658012
+30 18 18 1.015744 0.794170 0.717519
+30 18 19 1.014550 0.801312 0.773312
+30 18 20 1.013518 0.806249 0.819712
+30 18 21 1.012585 0.809862 0.860476
+30 18 22 1.011804 0.812675 0.893153
+30 18 23 1.011093 0.815123 0.922154
+30 18 24 1.010978 0.820236 0.944073
+30 18 25 1.011062 0.826236 0.963632
+30 18 26 1.011685 0.835569 0.975330
+30 18 27 1.012433 0.845672 0.985214
+30 18 28 1.013085 0.852958 0.992071
+30 18 29 1.013723 0.859841 0.998496
+30 18 30 1.014399 0.866297 1.003448
+30 18 31 1.015077 0.872724 1.008301
+30 19 0 1.045478 0.678658 0.000000
+30 19 1 1.045407 0.681643 0.000000
+30 19 2 1.045327 0.684699 0.000000
+30 19 3 1.045120 0.688818 0.000000
+30 19 4 1.044954 0.693401 0.000000
+30 19 5 1.045085 0.701234 0.000000
+30 19 6 1.045279 0.710165 0.000000
+30 19 7 1.045743 0.723852 0.000000
+30 19 8 1.046113 0.737495 0.000000
+30 19 9 1.046195 0.751004 0.000000
+30 19 10 1.045426 0.764634 0.000000
+30 19 11 1.042784 0.778531 0.106425
+30 19 12 1.040101 0.791600 0.254426
+30 19 13 1.037350 0.803289 0.350020
+30 19 14 1.034381 0.813922 0.439570
+30 19 15 1.031131 0.823198 0.521348
+30 19 16 1.028513 0.831541 0.594848
+30 19 17 1.026529 0.838951 0.660069
+30 19 18 1.024817 0.846606 0.720937
+30 19 19 1.023318 0.854452 0.778420
+30 19 20 1.021980 0.859417 0.825512
+30 19 21 1.020739 0.862655 0.866370
+30 19 22 1.019621 0.865448 0.899337
+30 19 23 1.018560 0.868039 0.928717
+30 19 24 1.018127 0.871949 0.950342
+30 19 25 1.017903 0.876300 0.969382
+30 19 26 1.018078 0.882424 0.980524
+30 19 27 1.018346 0.888957 0.989844
+30 19 28 1.018747 0.894602 0.996424
+30 19 29 1.019168 0.900120 1.002612
+30 19 30 1.019539 0.904725 1.007285
+30 19 31 1.019908 0.909268 1.011857
+30 20 0 1.057854 0.715699 0.000000
+30 20 1 1.057710 0.718966 0.000000
+30 20 2 1.057560 0.722310 0.000000
+30 20 3 1.057304 0.726792 0.000000
+30 20 4 1.057080 0.731764 0.000000
+30 20 5 1.057080 0.740156 0.000000
+30 20 6 1.057080 0.749548 0.000000
+30 20 7 1.057083 0.763273 0.000000
+30 20 8 1.057010 0.777021 0.000000
+30 20 9 1.056710 0.790835 0.000000
+30 20 10 1.055508 0.804556 0.000000
+30 20 11 1.052318 0.818075 0.102336
+30 20 12 1.049142 0.830962 0.249515
+30 20 13 1.045987 0.842795 0.348106
+30 20 14 1.042617 0.853518 0.439872
+30 20 15 1.038972 0.862811 0.522862
+30 20 16 1.035996 0.871338 0.597364
+30 20 17 1.033689 0.879097 0.663379
+30 20 18 1.031648 0.886788 0.724819
+30 20 19 1.029816 0.894425 0.782701
+30 20 20 1.028212 0.899408 0.830020
+30 20 21 1.026747 0.902799 0.871002
+30 20 22 1.025431 0.905473 0.903902
+30 20 23 1.024184 0.907822 0.933129
+30 20 24 1.023536 0.910945 0.954548
+30 20 25 1.023087 0.914325 0.973365
+30 20 26 1.022962 0.918535 0.984294
+30 20 27 1.022912 0.922935 0.993402
+30 20 28 1.023059 0.927018 0.999750
+30 20 29 1.023234 0.931056 1.005704
+30 20 30 1.023405 0.934549 1.010179
+30 20 31 1.023575 0.938005 1.014556
+30 21 0 1.067273 0.744675 0.000000
+30 21 1 1.067172 0.748506 0.000000
+30 21 2 1.067070 0.752417 0.000000
+30 21 3 1.066947 0.757509 0.000000
+30 21 4 1.066839 0.763126 0.000000
+30 21 5 1.066839 0.772412 0.000000
+30 21 6 1.066715 0.782390 0.000000
+30 21 7 1.066057 0.795360 0.000000
+30 21 8 1.065435 0.808599 0.000000
+30 21 9 1.064917 0.822647 0.000000
+30 21 10 1.063456 0.836455 0.000000
+30 21 11 1.059916 0.849733 0.100055
+30 21 12 1.056407 0.862632 0.247046
+30 21 13 1.052947 0.874896 0.348033
+30 21 14 1.049290 0.885797 0.441537
+30 21 15 1.045379 0.894945 0.525419
+30 21 16 1.042118 0.903707 0.600720
+30 21 17 1.039506 0.912082 0.667442
+30 21 18 1.037135 0.919617 0.728980
+30 21 19 1.034952 0.926499 0.786485
+30 21 20 1.033108 0.931493 0.833752
+30 21 21 1.031467 0.935354 0.874877
+30 21 22 1.030037 0.937850 0.907497
+30 21 23 1.028702 0.939725 0.936250
+30 21 24 1.027901 0.942309 0.957517
+30 21 25 1.027277 0.945128 0.976289
+30 21 26 1.026941 0.948200 0.987209
+30 21 27 1.026670 0.951329 0.996317
+30 21 28 1.026560 0.953898 1.002460
+30 21 29 1.026472 0.956386 1.008181
+30 21 30 1.026505 0.959210 1.012508
+30 21 31 1.026546 0.962057 1.016742
+30 22 0 1.074177 0.768763 0.000000
+30 22 1 1.074060 0.772641 0.000000
+30 22 2 1.073940 0.776599 0.000000
+30 22 3 1.073767 0.781753 0.000000
+30 22 4 1.073592 0.787429 0.000000
+30 22 5 1.073412 0.796769 0.000000
+30 22 6 1.073121 0.806873 0.000000
+30 22 7 1.072352 0.820293 0.000000
+30 22 8 1.071545 0.833839 0.000000
+30 22 9 1.070626 0.847764 0.000000
+30 22 10 1.068826 0.861545 0.000000
+30 22 11 1.065088 0.875012 0.101609
+30 22 12 1.061362 0.887979 0.249783
+30 22 13 1.057655 0.900113 0.351955
+30 22 14 1.053823 0.911207 0.446502
+30 22 15 1.049830 0.920962 0.531246
+30 22 16 1.046404 0.929878 0.606832
+30 22 17 1.043544 0.937956 0.673260
+30 22 18 1.040903 0.945156 0.734403
+30 22 19 1.038430 0.951675 0.791436
+30 22 20 1.036406 0.956502 0.838190
+30 22 21 1.034650 0.960314 0.878775
+30 22 22 1.033186 0.962918 0.911083
+30 22 23 1.031855 0.964973 0.939628
+30 22 24 1.030945 0.967202 0.960563
+30 22 25 1.030176 0.969490 0.978962
+30 22 26 1.029683 0.971667 0.989602
+30 22 27 1.029255 0.973817 0.998452
+30 22 28 1.029026 0.975613 1.004443
+30 22 29 1.028825 0.977358 1.010025
+30 22 30 1.028756 0.979467 1.014302
+30 22 31 1.028696 0.981600 1.018492
+30 23 0 1.079937 0.790628 0.000000
+30 23 1 1.079778 0.794319 0.000000
+30 23 2 1.079610 0.798089 0.000000
+30 23 3 1.079304 0.803054 0.000000
+30 23 4 1.078980 0.808525 0.000000
+30 23 5 1.078537 0.817534 0.000000
+30 23 6 1.078059 0.827557 0.000000
+30 23 7 1.077428 0.841974 0.000000
+30 23 8 1.076604 0.856198 0.000000
+30 23 9 1.075199 0.869837 0.000000
+30 23 10 1.073025 0.883542 0.000000
+30 23 11 1.069157 0.897391 0.104905
+30 23 12 1.065267 0.910453 0.254886
+30 23 13 1.061340 0.922202 0.357692
+30 23 14 1.057384 0.933494 0.452967
+30 23 15 1.053391 0.944198 0.538561
+30 23 16 1.049854 0.953232 0.614197
+30 23 17 1.046775 0.960597 0.679875
+30 23 18 1.043889 0.967382 0.740401
+30 23 19 1.041154 0.973716 0.796918
+30 23 20 1.038977 0.978296 0.842948
+30 23 21 1.037133 0.981822 0.882684
+30 23 22 1.035673 0.984664 0.914666
+30 23 23 1.034387 0.987195 0.943123
+30 23 24 1.033389 0.989155 0.963645
+30 23 25 1.032487 0.990924 0.981522
+30 23 26 1.031864 0.992316 0.991759
+30 23 27 1.031306 0.993620 1.000232
+30 23 28 1.031021 0.994981 1.006094
+30 23 29 1.030775 0.996351 1.011582
+30 23 30 1.030621 0.997722 1.015853
+30 23 31 1.030474 0.999093 1.020043
+30 24 0 1.084117 0.807584 0.000000
+30 24 1 1.083785 0.811685 0.000000
+30 24 2 1.083443 0.815861 0.000000
+30 24 3 1.082973 0.821168 0.000000
+30 24 4 1.082498 0.826928 0.000000
+30 24 5 1.081989 0.835854 0.000000
+30 24 6 1.081340 0.845743 0.000000
+30 24 7 1.080083 0.859805 0.000000
+30 24 8 1.078751 0.873709 0.000000
+30 24 9 1.077193 0.887139 0.000000
+30 24 10 1.074872 0.900651 0.000000
+30 24 11 1.070872 0.914345 0.120698
+30 24 12 1.066879 0.927249 0.277210
+30 24 13 1.062897 0.938833 0.377374
+30 24 14 1.058939 0.949980 0.470408
+30 24 15 1.055011 0.960564 0.554276
+30 24 16 1.051514 0.969469 0.628248
+30 24 17 1.048447 0.976695 0.692324
+30 24 18 1.045548 0.983214 0.751204
+30 24 19 1.042779 0.989183 0.806041
+30 24 20 1.040575 0.993561 0.850560
+30 24 21 1.038710 0.996984 0.888887
+30 24 22 1.037228 0.999704 0.919709
+30 24 23 1.035919 1.002104 0.947118
+30 24 24 1.034916 1.003906 0.966859
+30 24 25 1.034014 1.005509 0.984043
+30 24 26 1.033391 1.006641 0.993902
+30 24 27 1.032832 1.007663 1.002070
+30 24 28 1.032482 1.008722 1.007811
+30 24 29 1.032161 1.009785 1.013206
+30 24 30 1.031950 1.010763 1.017307
+30 24 31 1.031747 1.011735 1.021321
+30 25 0 1.087771 0.822904 0.000000
+30 25 1 1.087221 0.827614 0.000000
+30 25 2 1.086665 0.832394 0.000000
+30 25 3 1.086020 0.838220 0.000000
+30 25 4 1.085391 0.844433 0.000000
+30 25 5 1.084883 0.853360 0.000000
+30 25 6 1.084069 0.863097 0.000000
+30 25 7 1.081931 0.876353 0.000000
+30 25 8 1.079927 0.889605 0.000000
+30 25 9 1.078327 0.902850 0.000000
+30 25 10 1.075936 0.916131 0.000000
+30 25 11 1.071803 0.929491 0.140657
+30 25 12 1.067727 0.942152 0.305274
+30 25 13 1.063745 0.953645 0.401704
+30 25 14 1.059825 0.964533 0.491508
+30 25 15 1.055985 0.974641 0.572791
+30 25 16 1.052577 0.983334 0.644528
+30 25 17 1.049600 0.990611 0.706718
+30 25 18 1.046765 0.996913 0.763609
+30 25 19 1.044038 1.002458 0.816378
+30 25 20 1.041850 1.006650 0.859123
+30 25 21 1.039985 1.010031 0.895856
+30 25 22 1.038471 1.012508 0.925238
+30 25 23 1.037117 1.014575 0.951280
+30 25 24 1.036137 1.016257 0.970117
+30 25 25 1.035280 1.017812 0.986552
+30 25 26 1.034700 1.018857 0.996041
+30 25 27 1.034184 1.019786 1.003927
+30 25 28 1.033764 1.020586 1.009551
+30 25 29 1.033359 1.021367 1.014851
+30 25 30 1.033100 1.022066 1.018727
+30 25 31 1.032852 1.022759 1.022508
+30 26 0 1.089492 0.832804 0.000000
+30 26 1 1.088864 0.837631 0.000000
+30 26 2 1.088229 0.842546 0.000000
+30 26 3 1.087480 0.848772 0.000000
+30 26 4 1.086716 0.855475 0.000000
+30 26 5 1.085852 0.865510 0.000000
+30 26 6 1.084705 0.876120 0.000000
+30 26 7 1.082330 0.889224 0.000000
+30 26 8 1.080024 0.902259 0.000000
+30 26 9 1.077918 0.915087 0.000000
+30 26 10 1.075193 0.927895 0.000000
+30 26 11 1.071107 0.940658 0.165956
+30 26 12 1.067033 0.952767 0.341040
+30 26 13 1.062979 0.963785 0.433256
+30 26 14 1.059167 0.974132 0.518840
+30 26 15 1.055665 0.983616 0.595896
+30 26 16 1.052468 0.991983 0.664196
+30 26 17 1.049578 0.999233 0.723740
+30 26 18 1.046864 1.005393 0.778396
+30 26 19 1.044287 1.010705 0.829249
+30 26 20 1.042200 1.014756 0.869753
+30 26 21 1.040406 1.018050 0.904047
+30 26 22 1.038957 1.020352 0.931546
+30 26 23 1.037667 1.022203 0.955956
+30 26 24 1.036682 1.023797 0.974080
+30 26 25 1.035800 1.025306 0.990109
+30 26 26 1.035251 1.026142 0.998578
+30 26 27 1.034779 1.026824 1.005302
+30 26 28 1.034349 1.027514 1.010698
+30 26 29 1.033926 1.028206 1.015904
+30 26 30 1.033693 1.028813 1.019768
+30 26 31 1.033472 1.029414 1.023542
+30 27 0 1.090766 0.841454 0.000000
+30 27 1 1.090094 0.846284 0.000000
+30 27 2 1.089411 0.851225 0.000000
+30 27 3 1.088574 0.857824 0.000000
+30 27 4 1.087679 0.865024 0.000000
+30 27 5 1.086377 0.876423 0.000000
+30 27 6 1.084858 0.888143 0.000000
+30 27 7 1.082396 0.901247 0.000000
+30 27 8 1.079870 0.914164 0.000000
+30 27 9 1.077152 0.926522 0.000000
+30 27 10 1.074033 0.938801 0.000000
+30 27 11 1.070035 0.950906 0.192488
+30 27 12 1.065982 0.962392 0.378583
+30 27 13 1.061842 0.972846 0.466475
+30 27 14 1.058153 0.982588 0.547610
+30 27 15 1.055046 0.991414 0.620059
+30 27 16 1.052089 0.999429 0.684645
+30 27 17 1.049284 1.006633 0.741369
+30 27 18 1.046705 1.012668 0.793733
+30 27 19 1.044304 1.017792 0.842706
+30 27 20 1.042337 1.021711 0.880859
+30 27 21 1.040630 1.024908 0.912521
+30 27 22 1.039269 1.027051 0.938033
+30 27 23 1.038066 1.028714 0.960751
+30 27 24 1.037071 1.030227 0.978206
+30 27 25 1.036147 1.031690 0.993908
+30 27 26 1.035627 1.032289 1.001206
+30 27 27 1.035200 1.032688 1.006565
+30 27 28 1.034773 1.033304 1.011709
+30 27 29 1.034347 1.033950 1.016821
+30 27 30 1.034156 1.034508 1.020722
+30 27 31 1.033981 1.035061 1.024541
+30 28 0 1.091668 0.847477 0.000000
+30 28 1 1.090989 0.852347 0.000000
+30 28 2 1.090300 0.857328 0.000000
+30 28 3 1.089453 0.863977 0.000000
+30 28 4 1.088531 0.871261 0.000000
+30 28 5 1.087098 0.882993 0.000000
+30 28 6 1.085427 0.895137 0.000000
+30 28 7 1.082725 0.909064 0.000000
+30 28 8 1.079866 0.922533 0.000000
+30 28 9 1.076534 0.934627 0.000000
+30 28 10 1.073046 0.946545 0.030384
+30 28 11 1.069211 0.958075 0.241319
+30 28 12 1.065258 0.969082 0.405046
+30 28 13 1.061106 0.979218 0.490094
+30 28 14 1.057482 0.988638 0.568279
+30 28 15 1.054538 0.997135 0.637641
+30 28 16 1.051708 1.004900 0.699995
+30 28 17 1.048992 1.011934 0.755339
+30 28 18 1.046529 1.017810 0.805810
+30 28 19 1.044263 1.022786 0.852491
+30 28 20 1.042378 1.026618 0.889271
+30 28 21 1.040722 1.029763 0.920110
+30 28 22 1.039410 1.031873 0.944428
+30 28 23 1.038255 1.033513 0.965783
+30 28 24 1.037326 1.034954 0.982094
+30 28 25 1.036473 1.036329 0.996725
+30 28 26 1.035939 1.036816 1.003686
+30 28 27 1.035478 1.037098 1.008878
+30 28 28 1.035081 1.037512 1.013304
+30 28 29 1.034694 1.037946 1.017622
+30 28 30 1.034511 1.038525 1.021441
+30 28 31 1.034341 1.039114 1.025227
+30 29 0 1.092515 0.853124 0.000000
+30 29 1 1.091837 0.858039 0.000000
+30 29 2 1.091148 0.863064 0.000000
+30 29 3 1.090300 0.869715 0.000000
+30 29 4 1.089368 0.877025 0.000000
+30 29 5 1.087848 0.888943 0.000000
+30 29 6 1.086056 0.901413 0.000000
+30 29 7 1.083091 0.916280 0.000000
+30 29 8 1.079882 0.930395 0.000000
+30 29 9 1.075938 0.942257 0.000254
+30 29 10 1.072083 0.953838 0.124240
+30 29 11 1.068424 0.964803 0.293336
+30 29 12 1.064579 0.975352 0.429927
+30 29 13 1.060428 0.985206 0.512341
+30 29 14 1.056861 0.994344 0.587791
+30 29 15 1.054047 1.002559 0.654284
+30 29 16 1.051327 1.010089 0.714616
+30 29 17 1.048701 1.016935 0.768786
+30 29 18 1.046351 1.022649 0.817422
+30 29 19 1.044215 1.027482 0.861752
+30 29 20 1.042407 1.031232 0.897298
+30 29 21 1.040796 1.034331 0.927573
+30 29 22 1.039527 1.036427 0.950810
+30 29 23 1.038414 1.038067 0.970848
+30 29 24 1.037561 1.039438 0.985948
+30 29 25 1.036795 1.040718 0.999402
+30 29 26 1.036241 1.041111 1.006145
+30 29 27 1.035735 1.041300 1.011339
+30 29 28 1.035372 1.041495 1.014984
+30 29 29 1.035030 1.041692 1.018407
+30 29 30 1.034850 1.042302 1.022127
+30 29 31 1.034680 1.042940 1.025867
+30 30 0 1.092881 0.857316 0.000000
+30 30 1 1.092243 0.862235 0.000000
+30 30 2 1.091591 0.867259 0.000000
+30 30 3 1.090743 0.873865 0.000000
+30 30 4 1.089816 0.881143 0.000000
+30 30 5 1.088332 0.893117 0.000000
+30 30 6 1.086530 0.905819 0.000000
+30 30 7 1.083347 0.921675 0.000000
+30 30 8 1.079893 0.936473 0.000000
+30 30 9 1.075622 0.948097 0.062336
+30 30 10 1.071546 0.959450 0.208594
+30 30 11 1.067897 0.970204 0.339698
+30 30 12 1.064044 0.980498 0.451424
+30 30 13 1.059850 0.990028 0.530854
+30 30 14 1.056299 0.998878 0.603483
+30 30 15 1.053575 1.006854 0.667369
+30 30 16 1.050880 1.014148 0.725743
+30 30 17 1.048215 1.020760 0.778606
+30 30 18 1.045970 1.026319 0.825772
+30 30 19 1.044051 1.031058 0.868505
+30 30 20 1.042378 1.034770 0.903183
+30 30 21 1.040851 1.037867 0.933027
+30 30 22 1.039640 1.039962 0.955405
+30 30 23 1.038572 1.041602 0.974388
+30 30 24 1.037703 1.042902 0.988644
+30 30 25 1.036901 1.044089 1.001325
+30 30 26 1.036337 1.044496 1.007958
+30 30 27 1.035828 1.044724 1.013196
+30 30 28 1.035505 1.044912 1.016796
+30 30 29 1.035208 1.045094 1.020164
+30 30 30 1.034911 1.045498 1.023257
+30 30 31 1.034615 1.045917 1.026331
+30 31 0 1.093215 0.861412 0.000000
+30 31 1 1.092619 0.866331 0.000000
+30 31 2 1.092007 0.871352 0.000000
+30 31 3 1.091159 0.877910 0.000000
+30 31 4 1.090237 0.885151 0.000000
+30 31 5 1.088799 0.897174 0.000000
+30 31 6 1.086993 0.910101 0.000000
+30 31 7 1.083596 0.926948 0.000000
+30 31 8 1.079904 0.942431 0.000000
+30 31 9 1.075325 0.953819 0.123957
+30 31 10 1.071037 0.964950 0.292315
+30 31 11 1.067389 0.975516 0.385683
+30 31 12 1.063519 0.985570 0.472696
+30 31 13 1.059279 0.994772 0.549118
+30 31 14 1.055741 1.003335 0.618921
+30 31 15 1.053105 1.011074 0.680217
+30 31 16 1.050430 1.018131 0.736638
+30 31 17 1.047716 1.024507 0.788185
+30 31 18 1.045575 1.029911 0.833904
+30 31 19 1.043880 1.034559 0.875091
+30 31 20 1.042345 1.038237 0.908925
+30 31 21 1.040906 1.041334 0.938348
+30 31 22 1.039753 1.043429 0.959880
+30 31 23 1.038731 1.045069 0.977826
+30 31 24 1.037839 1.046298 0.991264
+30 31 25 1.036991 1.047391 1.003199
+30 31 26 1.036419 1.047821 1.009729
+30 31 27 1.035910 1.048097 1.015012
+30 31 28 1.035626 1.048291 1.018618
+30 31 29 1.035375 1.048473 1.021985
+30 31 30 1.034954 1.048655 1.024416
+30 31 31 1.034522 1.048837 1.026784
+31 0 0 0.655855 0.000000 0.000000
+31 0 1 0.656364 0.000000 0.000000
+31 0 2 0.656904 0.000000 0.000000
+31 0 3 0.657921 0.000000 0.000000
+31 0 4 0.659003 0.000000 0.000000
+31 0 5 0.660529 0.000000 0.000000
+31 0 6 0.662278 0.000000 0.000000
+31 0 7 0.664991 0.000000 0.000000
+31 0 8 0.668043 0.000000 0.000000
+31 0 9 0.672113 0.000000 0.033245
+31 0 10 0.675812 0.000000 0.076031
+31 0 11 0.678694 0.000000 0.131592
+31 0 12 0.681450 0.000000 0.184010
+31 0 13 0.683993 0.000000 0.231190
+31 0 14 0.686092 0.000000 0.278610
+31 0 15 0.687618 0.000000 0.326337
+31 0 16 0.690077 0.000000 0.370968
+31 0 17 0.693468 0.000000 0.412501
+31 0 18 0.697432 0.000000 0.453625
+31 0 19 0.701841 0.000000 0.494430
+31 0 20 0.706886 0.000000 0.530225
+31 0 21 0.712312 0.000000 0.563015
+31 0 22 0.719953 0.000000 0.592799
+31 0 23 0.728602 0.000000 0.621217
+31 0 24 0.743354 0.000000 0.653460
+31 0 25 0.760142 0.000000 0.686978
+31 0 26 0.786850 0.000000 0.728193
+31 0 27 0.815847 0.000000 0.771184
+31 0 28 0.835496 0.000000 0.800467
+31 0 29 0.853810 0.003086 0.827792
+31 0 30 0.867196 0.101250 0.847773
+31 0 31 0.880253 0.201258 0.867264
+31 1 0 0.663146 0.000000 0.000000
+31 1 1 0.663830 0.000000 0.000000
+31 1 2 0.664529 0.000000 0.000000
+31 1 3 0.665459 0.000000 0.000000
+31 1 4 0.666464 0.000000 0.000000
+31 1 5 0.667990 0.000000 0.000000
+31 1 6 0.669755 0.000000 0.000000
+31 1 7 0.672556 0.000000 0.000000
+31 1 8 0.675652 0.000000 0.000000
+31 1 9 0.679634 0.000000 0.036524
+31 1 10 0.683300 0.000000 0.079428
+31 1 11 0.686270 0.000000 0.135364
+31 1 12 0.689081 0.000000 0.188299
+31 1 13 0.691624 0.000000 0.236232
+31 1 14 0.693761 0.000000 0.284363
+31 1 15 0.695375 0.000000 0.332748
+31 1 16 0.697877 0.000000 0.378084
+31 1 17 0.701269 0.000000 0.420370
+31 1 18 0.705183 0.000000 0.461928
+31 1 19 0.709504 0.000000 0.502921
+31 1 20 0.714462 0.000000 0.538905
+31 1 21 0.719801 0.000000 0.571882
+31 1 22 0.727234 0.000000 0.601596
+31 1 23 0.735620 0.000000 0.629825
+31 1 24 0.748928 0.000000 0.660188
+31 1 25 0.763878 0.000000 0.691262
+31 1 26 0.790170 0.000000 0.732018
+31 1 27 0.819080 0.000000 0.775009
+31 1 28 0.838795 0.000000 0.804292
+31 1 29 0.857196 0.016307 0.831617
+31 1 30 0.870587 0.114912 0.851686
+31 1 31 0.883644 0.214921 0.871272
+31 2 0 0.670587 0.000000 0.000000
+31 2 1 0.671440 0.000000 0.000000
+31 2 2 0.672294 0.000000 0.000000
+31 2 3 0.673152 0.000000 0.000000
+31 2 4 0.674095 0.000000 0.000000
+31 2 5 0.675621 0.000000 0.000000
+31 2 6 0.677401 0.000000 0.000000
+31 2 7 0.680284 0.000000 0.000000
+31 2 8 0.683421 0.000000 0.002119
+31 2 9 0.687321 0.000000 0.039557
+31 2 10 0.690957 0.000000 0.082898
+31 2 11 0.694009 0.000000 0.139228
+31 2 12 0.696870 0.000000 0.192698
+31 2 13 0.699414 0.000000 0.241401
+31 2 14 0.701591 0.000000 0.290252
+31 2 15 0.703298 0.000000 0.339296
+31 2 16 0.705844 0.000000 0.385345
+31 2 17 0.709230 0.000000 0.428401
+31 2 18 0.713096 0.000000 0.470405
+31 2 19 0.717336 0.000000 0.511592
+31 2 20 0.722204 0.000000 0.547770
+31 2 21 0.727450 0.000000 0.580941
+31 2 22 0.734666 0.000000 0.610578
+31 2 23 0.742778 0.000000 0.638608
+31 2 24 0.754706 0.000000 0.667175
+31 2 25 0.767905 0.000000 0.695922
+31 2 26 0.793705 0.000000 0.736113
+31 2 27 0.822412 0.000000 0.778946
+31 2 28 0.842168 0.000000 0.808209
+31 2 29 0.860646 0.029804 0.835534
+31 2 30 0.874047 0.128854 0.855680
+31 2 31 0.887110 0.228856 0.875348
+31 3 0 0.680252 0.000000 0.000000
+31 3 1 0.681193 0.000000 0.000000
+31 3 2 0.682140 0.000000 0.000000
+31 3 3 0.683174 0.000000 0.000000
+31 3 4 0.684269 0.000000 0.000000
+31 3 5 0.685795 0.000000 0.000000
+31 3 6 0.687576 0.000000 0.000000
+31 3 7 0.690458 0.000000 0.000000
+31 3 8 0.693595 0.000000 0.000000
+31 3 9 0.697496 0.000000 0.038887
+31 3 10 0.701131 0.000000 0.087476
+31 3 11 0.704183 0.000000 0.144464
+31 3 12 0.707045 0.000000 0.198733
+31 3 13 0.709588 0.000000 0.248470
+31 3 14 0.711842 0.000000 0.298191
+31 3 15 0.713724 0.000000 0.347893
+31 3 16 0.716314 0.000000 0.394789
+31 3 17 0.719613 0.000000 0.438878
+31 3 18 0.723440 0.000000 0.481494
+31 3 19 0.727680 0.000000 0.522963
+31 3 20 0.732439 0.000000 0.559422
+31 3 21 0.737509 0.000000 0.592876
+31 3 22 0.744370 0.000000 0.622342
+31 3 23 0.752045 0.000000 0.649996
+31 3 24 0.763535 0.000000 0.678047
+31 3 25 0.776296 0.000000 0.706229
+31 3 26 0.800449 0.000000 0.744252
+31 3 27 0.827231 0.000000 0.784546
+31 3 28 0.846670 0.000000 0.813492
+31 3 29 0.865061 0.047433 0.840816
+31 3 30 0.878538 0.146982 0.860875
+31 3 31 0.891688 0.246891 0.880449
+31 4 0 0.690850 0.000000 0.000000
+31 4 1 0.691868 0.000000 0.000000
+31 4 2 0.692896 0.000000 0.000000
+31 4 3 0.694083 0.000000 0.000000
+31 4 4 0.695318 0.000000 0.000000
+31 4 5 0.696888 0.000000 0.000000
+31 4 6 0.698704 0.000000 0.000000
+31 4 7 0.701587 0.000000 0.000000
+31 4 8 0.704726 0.000000 0.000000
+31 4 9 0.708637 0.000000 0.036535
+31 4 10 0.712280 0.000000 0.092463
+31 4 11 0.715333 0.000000 0.150179
+31 4 12 0.718194 0.000000 0.205322
+31 4 13 0.720738 0.000000 0.256176
+31 4 14 0.723073 0.000000 0.306849
+31 4 15 0.725141 0.000000 0.357291
+31 4 16 0.727780 0.000000 0.405127
+31 4 17 0.730991 0.000000 0.450357
+31 4 18 0.734780 0.000000 0.493623
+31 4 19 0.739020 0.000000 0.535363
+31 4 20 0.743656 0.000000 0.572129
+31 4 21 0.748530 0.000000 0.605912
+31 4 22 0.755020 0.000000 0.635230
+31 4 23 0.762246 0.000000 0.662520
+31 4 24 0.773312 0.000000 0.690091
+31 4 25 0.785658 0.000000 0.717757
+31 4 26 0.807956 0.000000 0.753334
+31 4 27 0.832549 0.000000 0.790736
+31 4 28 0.851629 0.000000 0.819290
+31 4 29 0.869921 0.066715 0.846579
+31 4 30 0.883464 0.166840 0.866569
+31 4 31 0.896691 0.266678 0.886073
+31 5 0 0.707977 0.000000 0.000000
+31 5 1 0.708995 0.000000 0.000000
+31 5 2 0.710023 0.000000 0.000000
+31 5 3 0.711210 0.000000 0.000000
+31 5 4 0.712488 0.000000 0.000000
+31 5 5 0.714409 0.000000 0.000000
+31 5 6 0.716509 0.000000 0.000000
+31 5 7 0.719392 0.000000 0.000000
+31 5 8 0.722553 0.000000 0.000000
+31 5 9 0.726552 0.000000 0.022415
+31 5 10 0.730255 0.000000 0.100313
+31 5 11 0.733307 0.000000 0.159252
+31 5 12 0.736169 0.000000 0.215794
+31 5 13 0.738712 0.000000 0.268340
+31 5 14 0.741163 0.000000 0.320541
+31 5 15 0.743493 0.000000 0.372299
+31 5 16 0.746220 0.000000 0.421734
+31 5 17 0.749343 0.000000 0.468844
+31 5 18 0.753094 0.000000 0.513039
+31 5 19 0.757334 0.000000 0.554966
+31 5 20 0.761751 0.000000 0.592214
+31 5 21 0.766275 0.000000 0.626655
+31 5 22 0.772295 0.000000 0.655986
+31 5 23 0.778996 0.000000 0.682993
+31 5 24 0.789734 0.000000 0.710353
+31 5 25 0.801817 0.000000 0.737830
+31 5 26 0.820794 0.000000 0.769018
+31 5 27 0.841361 0.000000 0.801061
+31 5 28 0.859785 0.000000 0.828698
+31 5 29 0.877902 0.097565 0.855705
+31 5 30 0.891434 0.198807 0.875766
+31 5 31 0.904661 0.298739 0.895363
+31 6 0 0.727234 0.000000 0.000000
+31 6 1 0.728252 0.000000 0.000000
+31 6 2 0.729281 0.000000 0.000000
+31 6 3 0.730484 0.000000 0.000000
+31 6 4 0.731813 0.000000 0.000000
+31 6 5 0.734017 0.000000 0.000000
+31 6 6 0.736364 0.000000 0.000000
+31 6 7 0.739329 0.000000 0.000000
+31 6 8 0.742574 0.000000 0.000000
+31 6 9 0.746660 0.000000 0.012374
+31 6 10 0.750424 0.000000 0.109017
+31 6 11 0.753476 0.000000 0.169284
+31 6 12 0.756344 0.000000 0.227356
+31 6 13 0.758904 0.000000 0.281771
+31 6 14 0.761456 0.000000 0.335676
+31 6 15 0.764000 0.000000 0.388927
+31 6 16 0.766822 0.000000 0.440048
+31 6 17 0.769924 0.000000 0.489038
+31 6 18 0.773638 0.000000 0.534370
+31 6 19 0.777828 0.000000 0.576855
+31 6 20 0.782039 0.000000 0.614669
+31 6 21 0.786262 0.000000 0.649680
+31 6 22 0.791816 0.000000 0.679116
+31 6 23 0.797975 0.000000 0.706018
+31 6 24 0.808196 0.000000 0.733025
+31 6 25 0.819771 0.000000 0.760068
+31 6 26 0.835994 0.000000 0.787636
+31 6 27 0.853291 0.000000 0.815325
+31 6 28 0.870592 0.020591 0.841430
+31 6 29 0.887894 0.146033 0.867309
+31 6 30 0.900883 0.241367 0.886726
+31 6 31 0.913584 0.334694 0.905713
+31 7 0 0.755723 0.000000 0.000000
+31 7 1 0.756740 0.000000 0.000000
+31 7 2 0.757775 0.000000 0.000000
+31 7 3 0.759066 0.000000 0.000000
+31 7 4 0.760471 0.000000 0.000000
+31 7 5 0.762675 0.000000 0.000000
+31 7 6 0.765104 0.000000 0.000000
+31 7 7 0.768507 0.000000 0.000000
+31 7 8 0.772102 0.000000 0.000000
+31 7 9 0.776276 0.000000 0.020013
+31 7 10 0.780099 0.000000 0.121416
+31 7 11 0.783151 0.000000 0.183469
+31 7 12 0.786052 0.000000 0.243645
+31 7 13 0.788699 0.000000 0.300692
+31 7 14 0.791301 0.000000 0.357066
+31 7 15 0.793845 0.000000 0.412573
+31 7 16 0.796799 0.000000 0.465762
+31 7 17 0.800163 0.000000 0.516633
+31 7 18 0.803844 0.000000 0.564004
+31 7 19 0.807771 0.000000 0.608652
+31 7 20 0.811829 0.000000 0.647394
+31 7 21 0.815964 0.000000 0.682593
+31 7 22 0.821070 0.000000 0.712540
+31 7 23 0.826616 0.003995 0.740100
+31 7 24 0.835503 0.020157 0.766144
+31 7 25 0.845502 0.039472 0.791682
+31 7 26 0.861430 0.076930 0.818968
+31 7 27 0.878727 0.118576 0.846657
+31 7 28 0.892888 0.192408 0.868567
+31 7 29 0.906601 0.270839 0.889651
+31 7 30 0.916741 0.329828 0.905331
+31 7 31 0.926641 0.387522 0.920650
+31 8 0 0.782346 0.000000 0.000000
+31 8 1 0.783363 0.000000 0.000000
+31 8 2 0.784403 0.000000 0.000000
+31 8 3 0.785782 0.000000 0.000000
+31 8 4 0.787271 0.000000 0.000000
+31 8 5 0.789541 0.000000 0.000000
+31 8 6 0.792098 0.000000 0.000000
+31 8 7 0.795894 0.000000 0.000000
+31 8 8 0.799790 0.020143 0.000000
+31 8 9 0.803986 0.032860 0.025978
+31 8 10 0.807824 0.044283 0.131351
+31 8 11 0.810876 0.052863 0.195614
+31 8 12 0.813777 0.060455 0.258097
+31 8 13 0.816424 0.066402 0.317612
+31 8 14 0.819017 0.070986 0.376330
+31 8 15 0.821538 0.073818 0.434023
+31 8 16 0.824536 0.076333 0.489140
+31 8 17 0.828010 0.078531 0.541680
+31 8 18 0.831640 0.079757 0.590798
+31 8 19 0.835392 0.080227 0.637256
+31 8 20 0.839261 0.082710 0.676942
+31 8 21 0.843200 0.086400 0.712564
+31 8 22 0.847807 0.094857 0.742869
+31 8 23 0.852720 0.105482 0.770758
+31 8 24 0.860348 0.131086 0.795932
+31 8 25 0.868881 0.161684 0.820201
+31 8 26 0.884179 0.221406 0.846752
+31 8 27 0.901038 0.287849 0.873830
+31 8 28 0.912521 0.333088 0.892188
+31 8 29 0.923237 0.375297 0.909300
+31 8 30 0.931035 0.406329 0.921888
+31 8 31 0.938639 0.436615 0.934176
+31 9 0 0.803373 0.017545 0.000000
+31 9 1 0.804390 0.018720 0.000000
+31 9 2 0.805436 0.019962 0.000000
+31 9 3 0.806902 0.022195 0.000000
+31 9 4 0.808501 0.024663 0.000000
+31 9 5 0.811033 0.028776 0.000000
+31 9 6 0.813852 0.037597 0.000000
+31 9 7 0.817911 0.066820 0.000000
+31 9 8 0.821960 0.090788 0.000000
+31 9 9 0.825981 0.098991 0.026918
+31 9 10 0.829699 0.107107 0.133896
+31 9 11 0.832751 0.115028 0.201637
+31 9 12 0.835553 0.122385 0.267035
+31 9 13 0.837938 0.128802 0.328524
+31 9 14 0.840345 0.134144 0.389216
+31 9 15 0.842779 0.138105 0.448884
+31 9 16 0.845558 0.141936 0.505505
+31 9 17 0.848681 0.145638 0.559079
+31 9 18 0.852207 0.148580 0.609074
+31 9 19 0.856048 0.150931 0.656284
+31 9 20 0.859621 0.154236 0.696956
+31 9 21 0.863034 0.158114 0.733707
+31 9 22 0.866997 0.165790 0.763912
+31 9 23 0.871209 0.175192 0.791143
+31 9 24 0.877808 0.197741 0.815729
+31 9 25 0.885204 0.224672 0.839434
+31 9 26 0.898866 0.278818 0.863894
+31 9 27 0.913975 0.339243 0.888527
+31 9 28 0.924167 0.380357 0.905263
+31 9 29 0.933658 0.418711 0.920870
+31 9 30 0.940641 0.446946 0.932307
+31 9 31 0.947457 0.474506 0.943466
+31 10 0 0.826254 0.118635 0.000000
+31 10 1 0.827299 0.120604 0.000000
+31 10 2 0.828372 0.122669 0.000000
+31 10 3 0.829871 0.126189 0.000000
+31 10 4 0.831522 0.130077 0.000000
+31 10 5 0.834235 0.136541 0.000000
+31 10 6 0.837224 0.143411 0.000000
+31 10 7 0.841409 0.152044 0.000000
+31 10 8 0.845502 0.159903 0.000000
+31 10 9 0.849320 0.165445 0.026536
+31 10 10 0.852847 0.171708 0.134510
+31 10 11 0.855735 0.179558 0.206112
+31 10 12 0.858337 0.187092 0.274729
+31 10 13 0.860459 0.194096 0.338369
+31 10 14 0.862655 0.200314 0.401225
+31 10 15 0.864947 0.205520 0.463073
+31 10 16 0.867439 0.210580 0.521272
+31 10 17 0.870130 0.215493 0.575822
+31 10 18 0.873317 0.219757 0.626765
+31 10 19 0.876889 0.223518 0.674904
+31 10 20 0.880034 0.227470 0.716446
+31 10 21 0.882922 0.231536 0.754031
+31 10 22 0.886257 0.238491 0.784246
+31 10 23 0.889797 0.246759 0.811113
+31 10 24 0.895457 0.266715 0.835097
+31 10 25 0.901824 0.290567 0.858120
+31 10 26 0.913671 0.338745 0.880346
+31 10 27 0.926783 0.392536 0.902388
+31 10 28 0.935678 0.429396 0.917535
+31 10 29 0.943971 0.463837 0.931697
+31 10 30 0.950192 0.489381 0.942123
+31 10 31 0.956274 0.514331 0.952301
+31 11 0 0.853216 0.184032 0.000000
+31 11 1 0.854349 0.186471 0.000000
+31 11 2 0.855498 0.188989 0.000000
+31 11 3 0.856910 0.192697 0.000000
+31 11 4 0.858484 0.196785 0.000000
+31 11 5 0.861197 0.203531 0.000000
+31 11 6 0.864153 0.210454 0.000000
+31 11 7 0.868163 0.218146 0.000000
+31 11 8 0.872059 0.225653 0.000000
+31 11 9 0.875614 0.232605 0.023245
+31 11 10 0.878797 0.240219 0.130878
+31 11 11 0.881160 0.249292 0.207182
+31 11 12 0.883335 0.257907 0.279689
+31 11 13 0.885195 0.265758 0.345867
+31 11 14 0.887129 0.273109 0.411303
+31 11 15 0.889158 0.279820 0.475784
+31 11 16 0.891212 0.285914 0.535722
+31 11 17 0.893291 0.291391 0.591118
+31 11 18 0.895618 0.296114 0.643171
+31 11 19 0.898140 0.300251 0.692626
+31 11 20 0.900563 0.304461 0.734780
+31 11 21 0.902926 0.308715 0.772553
+31 11 22 0.905676 0.315083 0.803021
+31 11 23 0.908603 0.322410 0.830170
+31 11 24 0.913519 0.340791 0.853519
+31 11 25 0.919099 0.362857 0.875602
+31 11 26 0.928736 0.404206 0.895284
+31 11 27 0.939310 0.450006 0.914411
+31 11 28 0.946892 0.482329 0.928042
+31 11 29 0.954047 0.512728 0.940887
+31 11 30 0.959622 0.535815 0.950615
+31 11 31 0.965092 0.558415 0.960134
+31 12 0 0.880115 0.247995 0.000000
+31 12 1 0.881269 0.250763 0.000000
+31 12 2 0.882434 0.253599 0.000000
+31 12 3 0.883758 0.257459 0.000000
+31 12 4 0.885247 0.261712 0.000000
+31 12 5 0.887894 0.268704 0.000000
+31 12 6 0.890771 0.275883 0.000000
+31 12 7 0.894638 0.283869 0.000000
+31 12 8 0.898354 0.291870 0.000000
+31 12 9 0.901614 0.299915 0.012109
+31 12 10 0.904460 0.308674 0.116850
+31 12 11 0.906397 0.319004 0.203496
+31 12 12 0.908157 0.328762 0.283551
+31 12 13 0.909623 0.337564 0.352621
+31 12 14 0.911192 0.345956 0.420727
+31 12 15 0.912893 0.353818 0.487593
+31 12 16 0.914476 0.360752 0.549288
+31 12 17 0.915942 0.366758 0.605812
+31 12 18 0.917522 0.371924 0.659001
+31 12 19 0.919191 0.376437 0.709596
+31 12 20 0.920944 0.380817 0.752382
+31 12 21 0.922750 0.385119 0.790484
+31 12 22 0.924927 0.390927 0.821201
+31 12 23 0.927274 0.397420 0.848561
+31 12 24 0.931405 0.414015 0.871364
+31 12 25 0.936131 0.433977 0.892648
+31 12 26 0.943813 0.469241 0.910241
+31 12 27 0.952177 0.508036 0.926982
+31 12 28 0.958487 0.536224 0.939163
+31 12 29 0.964504 0.562896 0.950693
+31 12 30 0.969311 0.583481 0.959589
+31 12 31 0.974037 0.603660 0.968309
+31 13 0 0.906907 0.309567 0.000000
+31 13 1 0.907974 0.312428 0.000000
+31 13 2 0.909051 0.315359 0.000000
+31 13 3 0.910288 0.319313 0.000000
+31 13 4 0.911678 0.323671 0.000000
+31 13 5 0.914151 0.330852 0.000000
+31 13 6 0.916869 0.338625 0.000000
+31 13 7 0.920648 0.348961 0.000000
+31 13 8 0.924211 0.358865 0.000000
+31 13 9 0.927121 0.367474 0.000000
+31 13 10 0.929645 0.377032 0.085494
+31 13 11 0.931318 0.388679 0.191884
+31 13 12 0.932685 0.399682 0.285584
+31 13 13 0.933538 0.409613 0.358133
+31 13 14 0.934571 0.418886 0.429059
+31 13 15 0.935834 0.427313 0.497900
+31 13 16 0.936893 0.434764 0.561381
+31 13 17 0.937746 0.441240 0.619504
+31 13 18 0.938763 0.446823 0.673868
+31 13 19 0.939906 0.451712 0.725309
+31 13 20 0.941080 0.456116 0.768765
+31 13 21 0.942272 0.460229 0.807431
+31 13 22 0.943897 0.465527 0.838389
+31 13 23 0.945719 0.471362 0.865843
+31 13 24 0.948997 0.485817 0.888246
+31 13 25 0.952760 0.503147 0.908966
+31 13 26 0.958910 0.533563 0.925231
+31 13 27 0.965611 0.566999 0.940469
+31 13 28 0.970718 0.591719 0.951310
+31 13 29 0.975597 0.615195 0.961523
+31 13 30 0.979431 0.633201 0.969367
+31 13 31 0.983194 0.650841 0.977053
+31 14 0 0.935406 0.378471 0.000000
+31 14 1 0.936309 0.381303 0.000000
+31 14 2 0.937220 0.384198 0.000000
+31 14 3 0.938253 0.388042 0.000000
+31 14 4 0.939412 0.392284 0.000000
+31 14 5 0.941441 0.399324 0.000000
+31 14 6 0.943725 0.407207 0.000000
+31 14 7 0.947111 0.418742 0.000000
+31 14 8 0.950281 0.429779 0.000000
+31 14 9 0.952803 0.439322 0.000000
+31 14 10 0.954905 0.449882 0.037214
+31 14 11 0.956087 0.462681 0.172440
+31 14 12 0.956944 0.474658 0.285512
+31 14 13 0.957262 0.485264 0.361663
+31 14 14 0.957668 0.495110 0.435695
+31 14 15 0.958187 0.503977 0.507004
+31 14 16 0.958587 0.511740 0.572374
+31 14 17 0.958865 0.518398 0.631807
+31 14 18 0.959314 0.524318 0.687174
+31 14 19 0.959894 0.529666 0.739379
+31 14 20 0.960521 0.534047 0.783398
+31 14 21 0.961178 0.537849 0.822504
+31 14 22 0.962274 0.542568 0.853806
+31 14 23 0.963570 0.547704 0.881559
+31 14 24 0.965995 0.559949 0.903738
+31 14 25 0.968796 0.574563 0.924058
+31 14 26 0.973445 0.599882 0.939026
+31 14 27 0.978521 0.627671 0.952759
+31 14 28 0.982363 0.648205 0.962332
+31 14 29 0.986028 0.667702 0.971311
+31 14 30 0.988990 0.683041 0.978302
+31 14 31 0.991906 0.698102 0.985159
+31 15 0 0.966099 0.456801 0.000000
+31 15 1 0.966739 0.459446 0.000000
+31 15 2 0.967382 0.462141 0.000000
+31 15 3 0.968065 0.465609 0.000000
+31 15 4 0.968819 0.469452 0.000000
+31 15 5 0.970061 0.475927 0.000000
+31 15 6 0.971557 0.483299 0.000000
+31 15 7 0.974155 0.494552 0.000000
+31 15 8 0.976625 0.505730 0.000000
+31 15 9 0.978709 0.516683 0.000000
+31 15 10 0.980265 0.528507 0.000000
+31 15 11 0.980659 0.542246 0.142923
+31 15 12 0.980860 0.554845 0.282732
+31 15 13 0.980739 0.565546 0.362644
+31 15 14 0.980401 0.575568 0.440149
+31 15 15 0.979783 0.584717 0.514561
+31 15 16 0.979351 0.592527 0.581953
+31 15 17 0.979105 0.598997 0.642326
+31 15 18 0.978979 0.605153 0.698474
+31 15 19 0.978946 0.611064 0.751337
+31 15 20 0.979070 0.615363 0.795779
+31 15 21 0.979289 0.618695 0.835168
+31 15 22 0.979888 0.622750 0.866945
+31 15 23 0.980659 0.627134 0.895263
+31 15 24 0.982230 0.637075 0.917442
+31 15 25 0.984068 0.648869 0.937574
+31 15 26 0.987257 0.668770 0.951284
+31 15 27 0.990758 0.690541 0.963513
+31 15 28 0.993254 0.705963 0.971911
+31 15 29 0.995606 0.720477 0.979761
+31 15 30 0.997830 0.733036 0.986152
+31 15 31 1.000045 0.745464 0.992446
+31 16 0 0.992044 0.523838 0.000000
+31 16 1 0.992509 0.526576 0.000000
+31 16 2 0.992974 0.529363 0.000000
+31 16 3 0.993438 0.532877 0.000000
+31 16 4 0.993946 0.536779 0.000000
+31 16 5 0.994750 0.543396 0.000000
+31 16 6 0.995759 0.550882 0.000000
+31 16 7 0.997657 0.562135 0.000000
+31 16 8 0.999482 0.573560 0.000000
+31 16 9 1.001084 0.585500 0.000000
+31 16 10 1.002090 0.598194 0.000000
+31 16 11 1.001784 0.612544 0.125450
+31 16 12 1.001301 0.625684 0.278093
+31 16 13 1.000525 0.636808 0.361906
+31 16 14 0.999473 0.647109 0.442655
+31 16 15 0.998067 0.656352 0.519464
+31 16 16 0.996956 0.664326 0.588690
+31 16 17 0.996141 0.671031 0.650332
+31 16 18 0.995520 0.677501 0.707406
+31 16 19 0.995050 0.683789 0.760927
+31 16 20 0.994737 0.688200 0.805910
+31 16 21 0.994518 0.691485 0.845769
+31 16 22 0.994649 0.694976 0.877887
+31 16 23 0.994939 0.698560 0.906487
+31 16 24 0.995799 0.706539 0.928665
+31 16 25 0.996849 0.715982 0.948703
+31 16 26 0.998895 0.731622 0.961518
+31 16 27 1.001171 0.748693 0.972665
+31 16 28 1.002747 0.760360 0.980270
+31 16 29 1.004224 0.771254 0.987368
+31 16 30 1.005778 0.781339 0.993183
+31 16 31 1.007337 0.791370 0.998913
+31 17 0 1.013240 0.579581 0.000000
+31 17 1 1.013618 0.582695 0.000000
+31 17 2 1.013995 0.585864 0.000000
+31 17 3 1.014372 0.589848 0.000000
+31 17 4 1.014792 0.594267 0.000000
+31 17 5 1.015509 0.601730 0.000000
+31 17 6 1.016332 0.609956 0.000000
+31 17 7 1.017618 0.621491 0.000000
+31 17 8 1.018851 0.633269 0.000000
+31 17 9 1.019929 0.645774 0.000000
+31 17 10 1.020382 0.658943 0.000000
+31 17 11 1.019463 0.673575 0.120020
+31 17 12 1.018270 0.687173 0.271594
+31 17 13 1.016618 0.699050 0.359450
+31 17 14 1.014882 0.709733 0.443214
+31 17 15 1.013039 0.718882 0.521715
+31 17 16 1.011403 0.727138 0.592586
+31 17 17 1.009975 0.734501 0.655826
+31 17 18 1.008938 0.741365 0.713970
+31 17 19 1.008205 0.747841 0.768149
+31 17 20 1.007520 0.752557 0.813790
+31 17 21 1.006864 0.756218 0.854307
+31 17 22 1.006557 0.759245 0.886631
+31 17 23 1.006409 0.761983 0.915231
+31 17 24 1.006701 0.768340 0.937409
+31 17 25 1.007138 0.775902 0.957447
+31 17 26 1.008358 0.788440 0.969727
+31 17 27 1.009758 0.802126 0.980216
+31 17 28 1.010843 0.811395 0.987409
+31 17 29 1.011882 0.820033 0.994132
+31 17 30 1.012834 0.827950 0.999395
+31 17 31 1.013781 0.835818 1.004560
+31 18 0 1.032148 0.631941 0.000000
+31 18 1 1.032339 0.635115 0.000000
+31 18 2 1.032527 0.638348 0.000000
+31 18 3 1.032670 0.642485 0.000000
+31 18 4 1.032854 0.647084 0.000000
+31 18 5 1.033336 0.654917 0.000000
+31 18 6 1.033899 0.663626 0.000000
+31 18 7 1.034818 0.676131 0.000000
+31 18 8 1.035633 0.688750 0.000000
+31 18 9 1.036136 0.701713 0.000000
+31 18 10 1.035957 0.715121 0.000000
+31 18 11 1.034278 0.729506 0.113757
+31 18 12 1.032355 0.743014 0.263825
+31 18 13 1.030024 0.755060 0.355619
+31 18 14 1.027651 0.765844 0.442314
+31 18 15 1.025223 0.775006 0.522455
+31 18 16 1.023086 0.783385 0.594760
+31 18 17 1.021243 0.790983 0.659229
+31 18 18 1.019849 0.798234 0.718637
+31 18 19 1.018804 0.805215 0.774109
+31 18 20 1.017790 0.810092 0.820447
+31 18 21 1.016794 0.813706 0.861305
+31 18 22 1.016115 0.816499 0.893844
+31 18 23 1.015579 0.818921 0.922603
+31 18 24 1.015461 0.823946 0.944623
+31 18 25 1.015483 0.829840 0.964396
+31 18 26 1.016074 0.839186 0.976135
+31 18 27 1.016796 0.849328 0.986019
+31 18 28 1.017499 0.856643 0.992900
+31 18 29 1.018199 0.863553 0.999352
+31 18 30 1.018786 0.869533 1.004218
+31 18 31 1.019366 0.875450 1.008977
+31 19 0 1.049274 0.681673 0.000000
+31 19 1 1.049203 0.684658 0.000000
+31 19 2 1.049124 0.687709 0.000000
+31 19 3 1.048916 0.691752 0.000000
+31 19 4 1.048750 0.696269 0.000000
+31 19 5 1.048882 0.704102 0.000000
+31 19 6 1.049128 0.713093 0.000000
+31 19 7 1.049872 0.727102 0.000000
+31 19 8 1.050402 0.740943 0.000000
+31 19 9 1.050293 0.754283 0.000000
+31 19 10 1.049419 0.767743 0.000000
+31 19 11 1.046865 0.781470 0.106847
+31 19 12 1.044198 0.794461 0.255070
+31 19 13 1.041342 0.806225 0.350718
+31 19 14 1.038367 0.816892 0.440281
+31 19 15 1.035238 0.826147 0.522020
+31 19 16 1.032621 0.834526 0.595594
+31 19 17 1.030515 0.842031 0.661003
+31 19 18 1.028809 0.849663 0.721827
+31 19 19 1.027414 0.857397 0.779086
+31 19 20 1.026104 0.862320 0.826153
+31 19 21 1.024846 0.865558 0.867105
+31 19 22 1.023844 0.868299 0.899868
+31 19 23 1.022958 0.870814 0.928908
+31 19 24 1.022556 0.874735 0.950646
+31 19 25 1.022315 0.879125 0.969950
+31 19 26 1.022430 0.885209 0.981141
+31 19 27 1.022627 0.891685 0.990461
+31 19 28 1.023034 0.897389 0.997107
+31 19 29 1.023472 0.902983 1.003371
+31 19 30 1.023879 0.907206 1.007961
+31 19 31 1.024284 0.911337 1.012439
+31 20 0 1.061420 0.718197 0.000000
+31 20 1 1.061305 0.721464 0.000000
+31 20 2 1.061180 0.724803 0.000000
+31 20 3 1.060895 0.729222 0.000000
+31 20 4 1.060646 0.734134 0.000000
+31 20 5 1.060646 0.742496 0.000000
+31 20 6 1.060712 0.751945 0.000000
+31 20 7 1.061062 0.766107 0.000000
+31 20 8 1.061199 0.780143 0.000000
+31 20 9 1.060696 0.793799 0.000000
+31 20 10 1.059380 0.807382 0.000000
+31 20 11 1.056279 0.820804 0.102790
+31 20 12 1.053114 0.833608 0.250196
+31 20 13 1.049843 0.845384 0.348818
+31 20 14 1.046471 0.856073 0.440573
+31 20 15 1.042970 0.865363 0.523499
+31 20 16 1.040008 0.873890 0.598048
+31 20 17 1.037585 0.881652 0.664221
+31 20 18 1.035543 0.889325 0.725624
+31 20 19 1.033798 0.896929 0.783318
+31 20 20 1.032228 0.901900 0.830606
+31 20 21 1.030762 0.905290 0.871652
+31 20 22 1.029566 0.907942 0.904355
+31 20 23 1.028494 0.910257 0.933267
+31 20 24 1.027890 0.913397 0.954796
+31 20 25 1.027441 0.916811 0.973865
+31 20 26 1.027268 0.920974 0.984841
+31 20 27 1.027159 0.925311 0.993949
+31 20 28 1.027298 0.929442 1.000352
+31 20 29 1.027473 0.933544 1.006370
+31 20 30 1.027700 0.936659 1.010789
+31 20 31 1.027929 0.939709 1.015103
+31 21 0 1.070577 0.746796 0.000000
+31 21 1 1.070550 0.750628 0.000000
+31 21 2 1.070512 0.754537 0.000000
+31 21 3 1.070315 0.759614 0.000000
+31 21 4 1.070143 0.765208 0.000000
+31 21 5 1.070143 0.774416 0.000000
+31 21 6 1.070110 0.784429 0.000000
+31 21 7 1.069935 0.797933 0.000000
+31 21 8 1.069612 0.811546 0.000000
+31 21 9 1.068846 0.825484 0.000000
+31 21 10 1.067241 0.839232 0.000000
+31 21 11 1.063789 0.852559 0.100445
+31 21 12 1.060274 0.865375 0.247652
+31 21 13 1.056653 0.877339 0.348718
+31 21 14 1.053008 0.888134 0.442259
+31 21 15 1.049332 0.897424 0.526125
+31 21 16 1.046107 0.906186 0.601474
+31 21 17 1.043334 0.914418 0.668305
+31 21 18 1.040942 0.921927 0.729785
+31 21 19 1.038847 0.928873 0.787102
+31 21 20 1.037036 0.933890 0.834308
+31 21 21 1.035395 0.937751 0.875448
+31 21 22 1.034085 0.940291 0.907922
+31 21 23 1.032925 0.942230 0.936458
+31 21 24 1.032167 0.944782 0.957822
+31 21 25 1.031544 0.947538 0.976797
+31 21 26 1.031196 0.950585 0.987755
+31 21 27 1.030911 0.953699 0.996863
+31 21 28 1.030799 0.956279 1.003020
+31 21 29 1.030712 0.958782 1.008756
+31 21 30 1.030757 0.961181 1.013069
+31 21 31 1.030812 0.963573 1.017289
+31 22 0 1.077519 0.770637 0.000000
+31 22 1 1.077459 0.774516 0.000000
+31 22 2 1.077388 0.778474 0.000000
+31 22 3 1.077158 0.783627 0.000000
+31 22 4 1.076935 0.789296 0.000000
+31 22 5 1.076754 0.798575 0.000000
+31 22 6 1.076533 0.808692 0.000000
+31 22 7 1.076133 0.822443 0.000000
+31 22 8 1.075562 0.836230 0.000000
+31 22 9 1.074473 0.850127 0.000000
+31 22 10 1.072574 0.863878 0.000000
+31 22 11 1.068893 0.877305 0.102767
+31 22 12 1.065148 0.890182 0.251341
+31 22 13 1.061297 0.902140 0.353106
+31 22 14 1.057499 0.913129 0.447396
+31 22 15 1.053768 0.922872 0.532073
+31 22 16 1.050401 0.931771 0.607639
+31 22 17 1.047398 0.939828 0.674094
+31 22 18 1.044743 0.947035 0.735125
+31 22 19 1.042358 0.953581 0.791937
+31 22 20 1.040366 0.958460 0.838649
+31 22 21 1.038610 0.962338 0.879301
+31 22 22 1.037245 0.964936 0.911409
+31 22 23 1.036058 0.966951 0.939632
+31 22 24 1.035208 0.969125 0.960703
+31 22 25 1.034469 0.971353 0.979390
+31 22 26 1.033957 0.973518 0.990084
+31 22 27 1.033498 0.975668 0.998934
+31 22 28 1.033292 0.977464 1.004925
+31 22 29 1.033123 0.979209 1.010507
+31 22 30 1.033056 0.981065 1.014784
+31 22 31 1.032995 0.982928 1.018974
+31 23 0 1.083454 0.792315 0.000000
+31 23 1 1.083306 0.796005 0.000000
+31 23 2 1.083148 0.799775 0.000000
+31 23 3 1.082831 0.804741 0.000000
+31 23 4 1.082498 0.810210 0.000000
+31 23 5 1.082055 0.819207 0.000000
+31 23 6 1.081603 0.829218 0.000000
+31 23 7 1.081117 0.843627 0.000000
+31 23 8 1.080392 0.857860 0.000000
+31 23 9 1.078953 0.871570 0.000000
+31 23 10 1.076759 0.885250 0.000000
+31 23 11 1.072902 0.898865 0.107209
+31 23 12 1.068982 0.911824 0.257863
+31 23 13 1.064956 0.923688 0.359535
+31 23 14 1.061060 0.934912 0.454101
+31 23 15 1.057329 0.945313 0.539530
+31 23 16 1.053875 0.954307 0.615049
+31 23 17 1.050697 0.961893 0.680658
+31 23 18 1.047817 0.968736 0.741001
+31 23 19 1.045169 0.975000 0.797249
+31 23 20 1.043025 0.979655 0.843279
+31 23 21 1.041181 0.983346 0.883179
+31 23 22 1.039789 0.986079 0.914858
+31 23 23 1.038602 0.988376 0.942800
+31 23 24 1.037686 0.990268 0.963518
+31 23 25 1.036860 0.992025 0.981829
+31 23 26 1.036189 0.993415 0.992146
+31 23 27 1.035555 0.994719 1.000620
+31 23 28 1.035327 0.996080 1.006482
+31 23 29 1.035157 0.997449 1.011970
+31 23 30 1.035008 0.998841 1.016241
+31 23 31 1.034861 1.000233 1.020431
+31 24 0 1.087481 0.808801 0.000000
+31 24 1 1.087115 0.812938 0.000000
+31 24 2 1.086742 0.817145 0.000000
+31 24 3 1.086271 0.822417 0.000000
+31 24 4 1.085796 0.828144 0.000000
+31 24 5 1.085287 0.837071 0.000000
+31 24 6 1.084680 0.846976 0.000000
+31 24 7 1.083646 0.861126 0.000000
+31 24 8 1.082473 0.875101 0.000000
+31 24 9 1.080881 0.888552 0.000000
+31 24 10 1.078548 0.902025 0.000000
+31 24 11 1.074582 0.915546 0.122573
+31 24 12 1.070577 0.928385 0.279662
+31 24 13 1.066507 0.940084 0.378983
+31 24 14 1.062615 0.951195 0.471444
+31 24 15 1.058950 0.961549 0.555087
+31 24 16 1.055506 0.970426 0.628973
+31 24 17 1.052284 0.977824 0.693101
+31 24 18 1.049386 0.984386 0.751844
+31 24 19 1.046738 0.990297 0.806400
+31 24 20 1.044579 0.994703 0.850884
+31 24 21 1.042714 0.998205 0.889327
+31 24 22 1.041315 1.000831 0.919872
+31 24 23 1.040128 1.003058 0.946826
+31 24 24 1.039195 1.004844 0.966751
+31 24 25 1.038348 1.006484 0.984333
+31 24 26 1.037691 1.007622 0.994266
+31 24 27 1.037078 1.008644 1.002434
+31 24 28 1.036738 1.009703 1.008176
+31 24 29 1.036438 1.010767 1.013570
+31 24 30 1.036260 1.011764 1.017637
+31 24 31 1.036090 1.012757 1.021615
+31 25 0 1.090873 0.823556 0.000000
+31 25 1 1.090244 0.828351 0.000000
+31 25 2 1.089614 0.833205 0.000000
+31 25 3 1.088968 0.838947 0.000000
+31 25 4 1.088340 0.845086 0.000000
+31 25 5 1.087831 0.854012 0.000000
+31 25 6 1.087093 0.863812 0.000000
+31 25 7 1.085359 0.877398 0.000000
+31 25 8 1.083638 0.890879 0.000000
+31 25 9 1.081959 0.904048 0.000000
+31 25 10 1.079538 0.917268 0.000000
+31 25 11 1.075484 0.930602 0.141577
+31 25 12 1.071425 0.943252 0.306551
+31 25 13 1.067355 0.954763 0.402770
+31 25 14 1.063501 0.965645 0.492335
+31 25 15 1.059923 0.975717 0.573345
+31 25 16 1.056524 0.984405 0.645068
+31 25 17 1.053302 0.991709 0.707504
+31 25 18 1.050452 0.998019 0.764343
+31 25 19 1.047892 1.003554 0.816830
+31 25 20 1.045766 1.007701 0.859482
+31 25 21 1.043901 1.011016 0.896232
+31 25 22 1.042502 1.013453 0.925407
+31 25 23 1.041315 1.015492 0.951140
+31 25 24 1.040383 1.017232 0.970124
+31 25 25 1.039535 1.018871 0.986860
+31 25 26 1.038949 1.019933 0.996405
+31 25 27 1.038424 1.020861 1.004291
+31 25 28 1.037942 1.021661 1.009915
+31 25 29 1.037466 1.022443 1.015215
+31 25 30 1.037277 1.023070 1.019012
+31 25 31 1.037108 1.023687 1.022708
+31 26 0 1.092473 0.833427 0.000000
+31 26 1 1.091795 0.838269 0.000000
+31 26 2 1.091112 0.843197 0.000000
+31 26 3 1.090363 0.849408 0.000000
+31 26 4 1.089599 0.856092 0.000000
+31 26 5 1.088735 0.866088 0.000000
+31 26 6 1.087669 0.876737 0.000000
+31 26 7 1.085733 0.890217 0.000000
+31 26 8 1.083732 0.903511 0.000000
+31 26 9 1.081539 0.916245 0.000000
+31 26 10 1.078781 0.928988 0.000000
+31 26 11 1.074782 0.941751 0.166697
+31 26 12 1.070731 0.953860 0.342097
+31 26 13 1.066590 0.964878 0.434220
+31 26 14 1.062827 0.975225 0.519627
+31 26 15 1.059550 0.984709 0.596401
+31 26 16 1.056372 0.993057 0.664701
+31 26 17 1.053293 1.000267 0.724528
+31 26 18 1.050594 1.006409 0.779148
+31 26 19 1.048193 1.011721 0.829719
+31 26 20 1.046171 1.015763 0.870117
+31 26 21 1.044377 1.019042 0.904411
+31 26 22 1.043049 1.021339 0.931716
+31 26 23 1.041933 1.023190 0.955844
+31 26 24 1.040965 1.024825 0.974080
+31 26 25 1.040046 1.026388 0.990351
+31 26 26 1.039460 1.027235 0.998898
+31 26 27 1.038952 1.027917 1.005661
+31 26 28 1.038505 1.028573 1.011062
+31 26 29 1.038068 1.029225 1.016269
+31 26 30 1.037881 1.029778 1.020081
+31 26 31 1.037712 1.030325 1.023801
+31 27 0 1.093660 0.842171 0.000000
+31 27 1 1.092982 0.846919 0.000000
+31 27 2 1.092294 0.851788 0.000000
+31 27 3 1.091457 0.858469 0.000000
+31 27 4 1.090562 0.865730 0.000000
+31 27 5 1.089260 0.877041 0.000000
+31 27 6 1.087822 0.888760 0.000000
+31 27 7 1.085799 0.902240 0.000000
+31 27 8 1.083579 0.915416 0.000000
+31 27 9 1.080773 0.927680 0.000000
+31 27 10 1.077621 0.939894 0.000000
+31 27 11 1.073710 0.951999 0.193228
+31 27 12 1.069680 0.963485 0.379641
+31 27 13 1.065452 0.973939 0.467439
+31 27 14 1.061793 0.983681 0.548398
+31 27 15 1.058867 0.992507 0.620564
+31 27 16 1.055951 1.000478 0.685151
+31 27 17 1.053046 1.007594 0.742156
+31 27 18 1.050523 1.013590 0.794485
+31 27 19 1.048297 1.018714 0.843176
+31 27 20 1.046395 1.022685 0.881223
+31 27 21 1.044689 1.025964 0.912885
+31 27 22 1.043448 1.028132 0.938204
+31 27 23 1.042420 1.029795 0.960639
+31 27 24 1.041408 1.031313 0.978170
+31 27 25 1.040402 1.032782 0.994065
+31 27 26 1.039800 1.033382 1.001471
+31 27 27 1.039291 1.033781 1.006919
+31 27 28 1.038921 1.034320 1.012073
+31 27 29 1.038571 1.034878 1.017185
+31 27 30 1.038390 1.035425 1.021080
+31 27 31 1.038220 1.035972 1.024894
+31 28 0 1.094550 0.848205 0.000000
+31 28 1 1.093872 0.853024 0.000000
+31 28 2 1.093183 0.857957 0.000000
+31 28 3 1.092335 0.864615 0.000000
+31 28 4 1.091414 0.871906 0.000000
+31 28 5 1.089981 0.883629 0.000000
+31 28 6 1.088392 0.895836 0.000000
+31 28 7 1.086127 0.910139 0.000000
+31 28 8 1.083574 0.923856 0.000000
+31 28 9 1.080155 0.935814 0.000000
+31 28 10 1.076634 0.947638 0.030560
+31 28 11 1.072887 0.959168 0.242059
+31 28 12 1.068955 0.970175 0.406104
+31 28 13 1.064716 0.980311 0.491058
+31 28 14 1.061137 0.989731 0.569085
+31 28 15 1.058408 0.998228 0.638208
+31 28 16 1.055602 1.005946 0.700561
+31 28 17 1.052719 1.012886 0.756145
+31 28 18 1.050304 1.018745 0.806562
+31 28 19 1.048253 1.023764 0.852962
+31 28 20 1.046423 1.027643 0.889635
+31 28 21 1.044728 1.030840 0.920474
+31 28 22 1.043551 1.032966 0.944598
+31 28 23 1.042610 1.034606 0.965671
+31 28 24 1.041669 1.036047 0.982085
+31 28 25 1.040728 1.037422 0.996946
+31 28 26 1.040139 1.037909 1.003958
+31 28 27 1.039630 1.038191 1.009158
+31 28 28 1.039270 1.038560 1.013624
+31 28 29 1.038931 1.038942 1.017984
+31 28 30 1.038750 1.039479 1.021765
+31 28 31 1.038581 1.040025 1.025509
+31 29 0 1.095398 0.853853 0.000000
+31 29 1 1.094720 0.858765 0.000000
+31 29 2 1.094031 0.863781 0.000000
+31 29 3 1.093183 0.870345 0.000000
+31 29 4 1.092251 0.877589 0.000000
+31 29 5 1.090731 0.889594 0.000000
+31 29 6 1.089021 0.902206 0.000000
+31 29 7 1.086494 0.917449 0.000000
+31 29 8 1.083591 0.931801 0.000000
+31 29 9 1.079559 0.943477 0.000254
+31 29 10 1.075671 0.954931 0.124416
+31 29 11 1.072099 0.965896 0.294076
+31 29 12 1.068277 0.976445 0.430984
+31 29 13 1.064038 0.986299 0.513305
+31 29 14 1.060536 0.995436 0.588618
+31 29 15 1.057981 1.003651 0.654920
+31 29 16 1.055262 1.011135 0.715252
+31 29 17 1.052380 1.017887 0.769613
+31 29 18 1.050063 1.023611 0.818174
+31 29 19 1.048187 1.028535 0.862223
+31 29 20 1.046423 1.032321 0.897662
+31 29 21 1.044728 1.035424 0.927937
+31 29 22 1.043611 1.037520 0.950980
+31 29 23 1.042758 1.039160 0.970736
+31 29 24 1.041905 1.040530 0.985975
+31 29 25 1.041051 1.041811 0.999708
+31 29 26 1.040478 1.042204 1.006432
+31 29 27 1.039969 1.042392 1.011538
+31 29 28 1.039609 1.042586 1.015251
+31 29 29 1.039270 1.042780 1.018765
+31 29 30 1.039089 1.043304 1.022406
+31 29 31 1.038920 1.043851 1.026055
+31 30 0 1.095928 0.858133 0.000000
+31 30 1 1.095332 0.863052 0.000000
+31 30 2 1.094720 0.868073 0.000000
+31 30 3 1.093872 0.874631 0.000000
+31 30 4 1.092939 0.881872 0.000000
+31 30 5 1.091413 0.893895 0.000000
+31 30 6 1.089635 0.906681 0.000000
+31 30 7 1.086763 0.922776 0.000000
+31 30 8 1.083530 0.937718 0.000000
+31 30 9 1.079214 0.949200 0.062961
+31 30 10 1.075134 0.960455 0.209612
+31 30 11 1.071573 0.971209 0.340871
+31 30 12 1.067758 0.981486 0.452658
+31 30 13 1.063519 0.990971 0.531994
+31 30 14 1.060057 0.999815 0.604548
+31 30 15 1.057595 1.007836 0.668382
+31 30 16 1.054964 1.015128 0.726824
+31 30 17 1.052164 1.021692 0.779876
+31 30 18 1.049935 1.027231 0.826888
+31 30 19 1.048152 1.031973 0.869203
+31 30 20 1.046475 1.035687 0.903695
+31 30 21 1.044861 1.038784 0.933494
+31 30 22 1.043774 1.040879 0.955726
+31 30 23 1.042926 1.042518 0.974518
+31 30 24 1.042078 1.043819 0.988802
+31 30 25 1.041230 1.045006 1.001583
+31 30 26 1.040658 1.045376 1.008195
+31 30 27 1.040149 1.045558 1.013384
+31 30 28 1.039789 1.045740 1.017061
+31 30 29 1.039450 1.045923 1.020522
+31 30 30 1.039270 1.046281 1.023575
+31 30 31 1.039100 1.046651 1.026602
+31 31 0 1.096437 0.862323 0.000000
+31 31 1 1.095928 0.867242 0.000000
+31 31 2 1.095398 0.872263 0.000000
+31 31 3 1.094550 0.878820 0.000000
+31 31 4 1.093618 0.886061 0.000000
+31 31 5 1.092092 0.898084 0.000000
+31 31 6 1.090247 0.911029 0.000000
+31 31 7 1.087026 0.927971 0.000000
+31 31 8 1.083465 0.943500 0.000000
+31 31 9 1.078886 0.954795 0.125250
+31 31 10 1.074625 0.965861 0.294231
+31 31 11 1.071065 0.976427 0.387317
+31 31 12 1.067249 0.986446 0.474118
+31 31 13 1.063010 0.995554 0.550446
+31 31 14 1.059587 1.004104 0.620237
+31 31 15 1.057213 1.011937 0.681627
+31 31 16 1.054669 1.019042 0.738189
+31 31 17 1.051956 1.025418 0.789924
+31 31 18 1.049815 1.030769 0.835408
+31 31 19 1.048119 1.035323 0.876031
+31 31 20 1.046529 1.038966 0.909595
+31 31 21 1.045003 1.042063 0.938923
+31 31 22 1.043944 1.044158 0.960362
+31 31 23 1.043096 1.045797 0.978214
+31 31 24 1.042248 1.047027 0.991558
+31 31 25 1.041400 1.048120 1.003399
+31 31 26 1.040828 1.048473 1.009911
+31 31 27 1.040319 1.048655 1.015194
+31 31 28 1.039958 1.048837 1.018883
+31 31 29 1.039619 1.049019 1.022344
+31 31 30 1.039439 1.049201 1.024780
+31 31 31 1.039270 1.049384 1.027148
diff --git a/release/datafiles/colormanagement/luts/srgb.spi1d b/release/datafiles/colormanagement/luts/srgb.spi1d
new file mode 100644
index 00000000000..f1fb422a763
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/srgb.spi1d
@@ -0,0 +1,4107 @@
+Version 1
+From -0.125 1.125
+Length 4101
+Components 1
+{
+ -0.00967492260062
+ -0.00965132522842
+ -0.00962772785623
+ -0.00960413048403
+ -0.00958053311183
+ -0.00955693573964
+ -0.00953333836744
+ -0.00950974099524
+ -0.00948614362305
+ -0.00946254625085
+ -0.00943894887865
+ -0.00941535150646
+ -0.00939175413426
+ -0.00936815676206
+ -0.00934455938987
+ -0.00932096201767
+ -0.00929736464547
+ -0.00927376727328
+ -0.00925016990108
+ -0.00922657252888
+ -0.00920297515669
+ -0.00917937778449
+ -0.00915578041229
+ -0.0091321830401
+ -0.0091085856679
+ -0.0090849882957
+ -0.00906139092351
+ -0.00903779355131
+ -0.00901419617911
+ -0.00899059880692
+ -0.00896700143472
+ -0.00894340406252
+ -0.00891980669033
+ -0.00889620931813
+ -0.00887261194593
+ -0.00884901457374
+ -0.00882541720154
+ -0.00880181982934
+ -0.00877822245715
+ -0.00875462508495
+ -0.00873102771275
+ -0.00870743034056
+ -0.00868383296836
+ -0.00866023559616
+ -0.00863663822397
+ -0.00861304085177
+ -0.00858944347957
+ -0.00856584610738
+ -0.00854224873518
+ -0.00851865136298
+ -0.00849505399079
+ -0.00847145661859
+ -0.00844785924639
+ -0.0084242618742
+ -0.008400664502
+ -0.0083770671298
+ -0.00835346975761
+ -0.00832987238541
+ -0.00830627501321
+ -0.00828267764102
+ -0.00825908026882
+ -0.00823548289662
+ -0.00821188552443
+ -0.00818828815223
+ -0.00816469078003
+ -0.00814109340784
+ -0.00811749603564
+ -0.00809389866344
+ -0.00807030129125
+ -0.00804670391905
+ -0.00802310654685
+ -0.00799950917466
+ -0.00797591180246
+ -0.00795231443027
+ -0.00792871705807
+ -0.00790511968587
+ -0.00788152231368
+ -0.00785792494148
+ -0.00783432756928
+ -0.00781073019709
+ -0.00778713282489
+ -0.00776353545269
+ -0.0077399380805
+ -0.0077163407083
+ -0.0076927433361
+ -0.00766914596391
+ -0.00764554859171
+ -0.00762195121951
+ -0.00759835384732
+ -0.00757475647512
+ -0.00755115910292
+ -0.00752756173073
+ -0.00750396435853
+ -0.00748036698633
+ -0.00745676961414
+ -0.00743317224194
+ -0.00740957486974
+ -0.00738597749755
+ -0.00736238012535
+ -0.00733878275315
+ -0.00731518538096
+ -0.00729158800876
+ -0.00726799063656
+ -0.00724439326437
+ -0.00722079589217
+ -0.00719719851997
+ -0.00717360114778
+ -0.00715000377558
+ -0.00712640640338
+ -0.00710280903119
+ -0.00707921165899
+ -0.00705561428679
+ -0.0070320169146
+ -0.0070084195424
+ -0.0069848221702
+ -0.00696122479801
+ -0.00693762742581
+ -0.00691403005361
+ -0.00689043268142
+ -0.00686683530922
+ -0.00684323793702
+ -0.00681964056483
+ -0.00679604319263
+ -0.00677244582043
+ -0.00674884844824
+ -0.00672525107604
+ -0.00670165370384
+ -0.00667805633165
+ -0.00665445895945
+ -0.00663086158725
+ -0.00660726421506
+ -0.00658366684286
+ -0.00656006947066
+ -0.00653647209847
+ -0.00651287472627
+ -0.00648927735407
+ -0.00646567998188
+ -0.00644208260968
+ -0.00641848523748
+ -0.00639488786529
+ -0.00637129049309
+ -0.00634769312089
+ -0.0063240957487
+ -0.0063004983765
+ -0.0062769010043
+ -0.00625330363211
+ -0.00622970625991
+ -0.00620610888771
+ -0.00618251151552
+ -0.00615891414332
+ -0.00613531677112
+ -0.00611171939893
+ -0.00608812202673
+ -0.00606452465453
+ -0.00604092728234
+ -0.00601732991014
+ -0.00599373253794
+ -0.00597013516575
+ -0.00594653779355
+ -0.00592294042135
+ -0.00589934304916
+ -0.00587574567696
+ -0.00585214830476
+ -0.00582855093257
+ -0.00580495356037
+ -0.00578135618817
+ -0.00575775881598
+ -0.00573416144378
+ -0.00571056407158
+ -0.00568696669939
+ -0.00566336932719
+ -0.005639771955
+ -0.0056161745828
+ -0.0055925772106
+ -0.00556897983841
+ -0.00554538246621
+ -0.00552178509401
+ -0.00549818772182
+ -0.00547459034962
+ -0.00545099297742
+ -0.00542739560523
+ -0.00540379823303
+ -0.00538020086083
+ -0.00535660348864
+ -0.00533300611644
+ -0.00530940874424
+ -0.00528581137205
+ -0.00526221399985
+ -0.00523861662765
+ -0.00521501925546
+ -0.00519142188326
+ -0.00516782451106
+ -0.00514422713887
+ -0.00512062976667
+ -0.00509703239447
+ -0.00507343502228
+ -0.00504983765008
+ -0.00502624027788
+ -0.00500264290569
+ -0.00497904553349
+ -0.00495544816129
+ -0.0049318507891
+ -0.0049082534169
+ -0.0048846560447
+ -0.00486105867251
+ -0.00483746130031
+ -0.00481386392811
+ -0.00479026655592
+ -0.00476666918372
+ -0.00474307181152
+ -0.00471947443933
+ -0.00469587706713
+ -0.00467227969493
+ -0.00464868232274
+ -0.00462508495054
+ -0.00460148757834
+ -0.00457789020615
+ -0.00455429283395
+ -0.00453069546175
+ -0.00450709808956
+ -0.00448350071736
+ -0.00445990334516
+ -0.00443630597297
+ -0.00441270860077
+ -0.00438911122857
+ -0.00436551385638
+ -0.00434191648418
+ -0.00431831911198
+ -0.00429472173979
+ -0.00427112436759
+ -0.00424752699539
+ -0.0042239296232
+ -0.004200332251
+ -0.0041767348788
+ -0.00415313750661
+ -0.00412954013441
+ -0.00410594276221
+ -0.00408234539002
+ -0.00405874801782
+ -0.00403515064562
+ -0.00401155327343
+ -0.00398795590123
+ -0.00396435852903
+ -0.00394076115684
+ -0.00391716378464
+ -0.00389356641244
+ -0.00386996904025
+ -0.00384637166805
+ -0.00382277429585
+ -0.00379917692366
+ -0.00377557955146
+ -0.00375198217926
+ -0.00372838480707
+ -0.00370478743487
+ -0.00368119006267
+ -0.00365759269048
+ -0.00363399531828
+ -0.00361039794608
+ -0.00358680057389
+ -0.00356320320169
+ -0.00353960582949
+ -0.0035160084573
+ -0.0034924110851
+ -0.0034688137129
+ -0.00344521634071
+ -0.00342161896851
+ -0.00339802159632
+ -0.00337442422412
+ -0.00335082685192
+ -0.00332722947973
+ -0.00330363210753
+ -0.00328003473533
+ -0.00325643736314
+ -0.00323283999094
+ -0.00320924261874
+ -0.00318564524655
+ -0.00316204787435
+ -0.00313845050215
+ -0.00311485312996
+ -0.00309125575776
+ -0.00306765838556
+ -0.00304406101337
+ -0.00302046364117
+ -0.00299686626897
+ -0.00297326889678
+ -0.00294967152458
+ -0.00292607415238
+ -0.00290247678019
+ -0.00287887940799
+ -0.00285528203579
+ -0.0028316846636
+ -0.0028080872914
+ -0.0027844899192
+ -0.00276089254701
+ -0.00273729517481
+ -0.00271369780261
+ -0.00269010043042
+ -0.00266650305822
+ -0.00264290568602
+ -0.00261930831383
+ -0.00259571094163
+ -0.00257211356943
+ -0.00254851619724
+ -0.00252491882504
+ -0.00250132145284
+ -0.00247772408065
+ -0.00245412670845
+ -0.00243052933625
+ -0.00240693196406
+ -0.00238333459186
+ -0.00235973721966
+ -0.00233613984747
+ -0.00231254247527
+ -0.00228894510307
+ -0.00226534773088
+ -0.00224175035868
+ -0.00221815298648
+ -0.00219455561429
+ -0.00217095824209
+ -0.00214736086989
+ -0.0021237634977
+ -0.0021001661255
+ -0.0020765687533
+ -0.00205297138111
+ -0.00202937400891
+ -0.00200577663671
+ -0.00198217926452
+ -0.00195858189232
+ -0.00193498452012
+ -0.00191138714793
+ -0.00188778977573
+ -0.00186419240353
+ -0.00184059503134
+ -0.00181699765914
+ -0.00179340028694
+ -0.00176980291475
+ -0.00174620554255
+ -0.00172260817035
+ -0.00169901079816
+ -0.00167541342596
+ -0.00165181605376
+ -0.00162821868157
+ -0.00160462130937
+ -0.00158102393717
+ -0.00155742656498
+ -0.00153382919278
+ -0.00151023182058
+ -0.00148663444839
+ -0.00146303707619
+ -0.00143943970399
+ -0.0014158423318
+ -0.0013922449596
+ -0.0013686475874
+ -0.00134505021521
+ -0.00132145284301
+ -0.00129785547081
+ -0.00127425809862
+ -0.00125066072642
+ -0.00122706335422
+ -0.00120346598203
+ -0.00117986860983
+ -0.00115627123763
+ -0.00113267386544
+ -0.00110907649324
+ -0.00108547912105
+ -0.00106188174885
+ -0.00103828437665
+ -0.00101468700446
+ -0.000991089632259
+ -0.000967492260062
+ -0.000943894887865
+ -0.000920297515669
+ -0.000896700143472
+ -0.000873102771275
+ -0.000849505399079
+ -0.000825908026882
+ -0.000802310654685
+ -0.000778713282489
+ -0.000755115910292
+ -0.000731518538096
+ -0.000707921165899
+ -0.000684323793702
+ -0.000660726421506
+ -0.000637129049309
+ -0.000613531677112
+ -0.000589934304916
+ -0.000566336932719
+ -0.000542739560523
+ -0.000519142188326
+ -0.000495544816129
+ -0.000471947443933
+ -0.000448350071736
+ -0.000424752699539
+ -0.000401155327343
+ -0.000377557955146
+ -0.000353960582949
+ -0.000330363210753
+ -0.000306765838556
+ -0.00028316846636
+ -0.000259571094163
+ -0.000235973721966
+ -0.00021237634977
+ -0.000188778977573
+ -0.000165181605376
+ -0.00014158423318
+ -0.000117986860983
+ -9.43894887865e-05
+ -7.07921165899e-05
+ -4.71947443933e-05
+ -2.35973721966e-05
+ 0.0
+ 2.35973721966e-05
+ 4.71947443933e-05
+ 7.07921165899e-05
+ 9.43894887865e-05
+ 0.000117986860983
+ 0.00014158423318
+ 0.000165181605376
+ 0.000188778977573
+ 0.00021237634977
+ 0.000235973721966
+ 0.000259571094163
+ 0.00028316846636
+ 0.000306765838556
+ 0.000330363210753
+ 0.000353960582949
+ 0.000377557955146
+ 0.000401155327343
+ 0.000424752699539
+ 0.000448350071736
+ 0.000471947443933
+ 0.000495544816129
+ 0.000519142188326
+ 0.000542739560523
+ 0.000566336932719
+ 0.000589934304916
+ 0.000613531677112
+ 0.000637129049309
+ 0.000660726421506
+ 0.000684323793702
+ 0.000707921165899
+ 0.000731518538096
+ 0.000755115910292
+ 0.000778713282489
+ 0.000802310654685
+ 0.000825908026882
+ 0.000849505399079
+ 0.000873102771275
+ 0.000896700143472
+ 0.000920297515669
+ 0.000943894887865
+ 0.000967492260062
+ 0.000991089632259
+ 0.00101468700446
+ 0.00103828437665
+ 0.00106188174885
+ 0.00108547912105
+ 0.00110907649324
+ 0.00113267386544
+ 0.00115627123763
+ 0.00117986860983
+ 0.00120346598203
+ 0.00122706335422
+ 0.00125066072642
+ 0.00127425809862
+ 0.00129785547081
+ 0.00132145284301
+ 0.00134505021521
+ 0.0013686475874
+ 0.0013922449596
+ 0.0014158423318
+ 0.00143943970399
+ 0.00146303707619
+ 0.00148663444839
+ 0.00151023182058
+ 0.00153382919278
+ 0.00155742656498
+ 0.00158102393717
+ 0.00160462130937
+ 0.00162821868157
+ 0.00165181605376
+ 0.00167541342596
+ 0.00169901079816
+ 0.00172260817035
+ 0.00174620554255
+ 0.00176980291475
+ 0.00179340028694
+ 0.00181699765914
+ 0.00184059503134
+ 0.00186419240353
+ 0.00188778977573
+ 0.00191138714793
+ 0.00193498452012
+ 0.00195858189232
+ 0.00198217926452
+ 0.00200577663671
+ 0.00202937400891
+ 0.00205297138111
+ 0.0020765687533
+ 0.0021001661255
+ 0.0021237634977
+ 0.00214736086989
+ 0.00217095824209
+ 0.00219455561429
+ 0.00221815298648
+ 0.00224175035868
+ 0.00226534773088
+ 0.00228894510307
+ 0.00231254247527
+ 0.00233613984747
+ 0.00235973721966
+ 0.00238333459186
+ 0.00240693196406
+ 0.00243052933625
+ 0.00245412670845
+ 0.00247772408065
+ 0.00250132145284
+ 0.00252491882504
+ 0.00254851619724
+ 0.00257211356943
+ 0.00259571094163
+ 0.00261930831383
+ 0.00264290568602
+ 0.00266650305822
+ 0.00269010043042
+ 0.00271369780261
+ 0.00273729517481
+ 0.00276089254701
+ 0.0027844899192
+ 0.0028080872914
+ 0.0028316846636
+ 0.00285528203579
+ 0.00287887940799
+ 0.00290247678019
+ 0.00292607415238
+ 0.00294967152458
+ 0.00297326889678
+ 0.00299686626897
+ 0.00302046364117
+ 0.00304406101337
+ 0.00306765838556
+ 0.00309125575776
+ 0.00311485312996
+ 0.0031385890345
+ 0.00316267788401
+ 0.00318687423862
+ 0.00321117823498
+ 0.00323559000948
+ 0.00326010969823
+ 0.00328473743711
+ 0.00330947336173
+ 0.00333431760746
+ 0.00335927030939
+ 0.00338433160238
+ 0.00340950162104
+ 0.00343478049972
+ 0.00346016837252
+ 0.0034856653733
+ 0.00351127163568
+ 0.00353698729303
+ 0.00356281247846
+ 0.00358874732486
+ 0.00361479196487
+ 0.0036409465309
+ 0.00366721115511
+ 0.00369358596941
+ 0.0037200711055
+ 0.00374666669484
+ 0.00377337286863
+ 0.00380018975787
+ 0.00382711749331
+ 0.00385415620548
+ 0.00388130602466
+ 0.00390856708091
+ 0.00393593950409
+ 0.00396342342379
+ 0.0039910189694
+ 0.00401872627008
+ 0.00404654545476
+ 0.00407447665216
+ 0.00410251999077
+ 0.00413067559886
+ 0.00415894360449
+ 0.00418732413548
+ 0.00421581731946
+ 0.00424442328382
+ 0.00427314215575
+ 0.00430197406221
+ 0.00433091912997
+ 0.00435997748556
+ 0.00438914925532
+ 0.00441843456538
+ 0.00444783354163
+ 0.00447734630978
+ 0.00450697299533
+ 0.00453671372356
+ 0.00456656861956
+ 0.00459653780821
+ 0.00462662141416
+ 0.0046568195619
+ 0.00468713237568
+ 0.00471755997958
+ 0.00474810249745
+ 0.00477876005296
+ 0.00480953276957
+ 0.00484042077055
+ 0.00487142417896
+ 0.00490254311768
+ 0.00493377770939
+ 0.00496512807657
+ 0.0049965943415
+ 0.00502817662628
+ 0.0050598750528
+ 0.00509168974279
+ 0.00512362081776
+ 0.00515566839903
+ 0.00518783260776
+ 0.00522011356488
+ 0.00525251139117
+ 0.0052850262072
+ 0.00531765813336
+ 0.00535040728986
+ 0.00538327379672
+ 0.00541625777377
+ 0.00544935934067
+ 0.0054825786169
+ 0.00551591572174
+ 0.00554937077429
+ 0.0055829438935
+ 0.00561663519811
+ 0.00565044480668
+ 0.00568437283762
+ 0.00571841940914
+ 0.00575258463927
+ 0.00578686864589
+ 0.00582127154667
+ 0.00585579345914
+ 0.00589043450063
+ 0.00592519478831
+ 0.00596007443917
+ 0.00599507357003
+ 0.00603019229756
+ 0.00606543073822
+ 0.00610078900832
+ 0.00613626722402
+ 0.00617186550129
+ 0.00620758395592
+ 0.00624342270356
+ 0.00627938185968
+ 0.00631546153959
+ 0.00635166185843
+ 0.00638798293118
+ 0.00642442487264
+ 0.00646098779746
+ 0.00649767182014
+ 0.006534477055
+ 0.0065714036162
+ 0.00660845161773
+ 0.00664562117345
+ 0.00668291239704
+ 0.00672032540201
+ 0.00675786030174
+ 0.00679551720942
+ 0.00683329623811
+ 0.0068711975007
+ 0.00690922110993
+ 0.00694736717837
+ 0.00698563581845
+ 0.00702402714244
+ 0.00706254126247
+ 0.00710117829048
+ 0.0071399383383
+ 0.00717882151758
+ 0.00721782793983
+ 0.0072569577164
+ 0.00729621095851
+ 0.0073355877772
+ 0.00737508828338
+ 0.00741471258781
+ 0.00745446080109
+ 0.00749433303369
+ 0.00753432939592
+ 0.00757444999795
+ 0.00761469494979
+ 0.00765506436132
+ 0.00769555834227
+ 0.00773617700222
+ 0.00777692045062
+ 0.00781778879675
+ 0.00785878214977
+ 0.00789990061869
+ 0.00794114431238
+ 0.00798251333957
+ 0.00802400780883
+ 0.00806562782861
+ 0.00810737350722
+ 0.00814924495281
+ 0.00819124227342
+ 0.00823336557692
+ 0.00827561497107
+ 0.00831799056348
+ 0.0083604924616
+ 0.00840312077279
+ 0.00844587560423
+ 0.008488757063
+ 0.00853176525601
+ 0.00857490029005
+ 0.00861816227179
+ 0.00866155130774
+ 0.0087050675043
+ 0.00874871096771
+ 0.0087924818041
+ 0.00883638011947
+ 0.00888040601966
+ 0.00892455961041
+ 0.0089688409973
+ 0.00901325028581
+ 0.00905778758127
+ 0.00910245298887
+ 0.0091472466137
+ 0.00919216856071
+ 0.0092372189347
+ 0.00928239784036
+ 0.00932770538227
+ 0.00937314166485
+ 0.0094187067924
+ 0.00946440086912
+ 0.00951022399905
+ 0.00955617628612
+ 0.00960225783414
+ 0.00964846874678
+ 0.0096948091276
+ 0.00974127908002
+ 0.00978787870736
+ 0.0098346081128
+ 0.00988146739939
+ 0.00992845667008
+ 0.00997557602767
+ 0.0100228255749
+ 0.0100702054142
+ 0.0101177156482
+ 0.0101653563792
+ 0.0102131277093
+ 0.0102610297407
+ 0.0103090625753
+ 0.010357226315
+ 0.0104055210615
+ 0.0104539469164
+ 0.0105025039813
+ 0.0105511923574
+ 0.0106000121461
+ 0.0106489634486
+ 0.0106980463657
+ 0.0107472609986
+ 0.0107966074478
+ 0.0108460858142
+ 0.0108956961983
+ 0.0109454387006
+ 0.0109953134213
+ 0.0110453204607
+ 0.011095459919
+ 0.011145731896
+ 0.0111961364918
+ 0.011246673806
+ 0.0112973439383
+ 0.0113481469883
+ 0.0113990830554
+ 0.0114501522389
+ 0.011501354638
+ 0.0115526903519
+ 0.0116041594794
+ 0.0116557621196
+ 0.0117074983712
+ 0.0117593683328
+ 0.0118113721029
+ 0.0118635097801
+ 0.0119157814627
+ 0.0119681872489
+ 0.0120207272367
+ 0.0120734015243
+ 0.0121262102095
+ 0.0121791533901
+ 0.0122322311638
+ 0.0122854436282
+ 0.0123387908808
+ 0.0123922730189
+ 0.0124458901399
+ 0.0124996423408
+ 0.0125535297187
+ 0.0126075523707
+ 0.0126617103934
+ 0.0127160038838
+ 0.0127704329384
+ 0.0128249976537
+ 0.0128796981262
+ 0.0129345344523
+ 0.0129895067281
+ 0.0130446150498
+ 0.0130998595134
+ 0.0131552402149
+ 0.01321075725
+ 0.0132664107145
+ 0.013322200704
+ 0.0133781273141
+ 0.0134341906401
+ 0.0134903907774
+ 0.0135467278211
+ 0.0136032018666
+ 0.0136598130086
+ 0.0137165613422
+ 0.0137734469623
+ 0.0138304699634
+ 0.0138876304403
+ 0.0139449284876
+ 0.0140023641995
+ 0.0140599376705
+ 0.0141176489949
+ 0.0141754982666
+ 0.0142334855799
+ 0.0142916110287
+ 0.0143498747068
+ 0.014408276708
+ 0.0144668171259
+ 0.0145254960541
+ 0.0145843135862
+ 0.0146432698154
+ 0.0147023648351
+ 0.0147615987385
+ 0.0148209716187
+ 0.0148804835686
+ 0.0149401346812
+ 0.0149999250493
+ 0.0150598547657
+ 0.0151199239229
+ 0.0151801326136
+ 0.0152404809302
+ 0.0153009689649
+ 0.0153615968102
+ 0.0154223645582
+ 0.0154832723009
+ 0.0155443201304
+ 0.0156055081386
+ 0.0156668364173
+ 0.0157283050581
+ 0.0157899141528
+ 0.015851663793
+ 0.0159135540699
+ 0.0159755850751
+ 0.0160377568997
+ 0.0161000696351
+ 0.0161625233722
+ 0.0162251182021
+ 0.0162878542158
+ 0.016350731504
+ 0.0164137501575
+ 0.016476910267
+ 0.016540211923
+ 0.0166036552161
+ 0.0166672402366
+ 0.0167309670748
+ 0.0167948358211
+ 0.0168588465654
+ 0.016922999398
+ 0.0169872944087
+ 0.0170517316874
+ 0.017116311324
+ 0.0171810334081
+ 0.0172458980295
+ 0.0173109052775
+ 0.0173760552418
+ 0.0174413480117
+ 0.0175067836764
+ 0.0175723623252
+ 0.0176380840473
+ 0.0177039489316
+ 0.0177699570671
+ 0.0178361085427
+ 0.0179024034472
+ 0.0179688418694
+ 0.0180354238978
+ 0.0181021496209
+ 0.0181690191274
+ 0.0182360325055
+ 0.0183031898435
+ 0.0183704912298
+ 0.0184379367523
+ 0.0185055264993
+ 0.0185732605586
+ 0.0186411390182
+ 0.0187091619659
+ 0.0187773294894
+ 0.0188456416764
+ 0.0189140986145
+ 0.0189827003912
+ 0.0190514470939
+ 0.0191203388099
+ 0.0191893756265
+ 0.019258557631
+ 0.0193278849103
+ 0.0193973575516
+ 0.0194669756418
+ 0.0195367392677
+ 0.0196066485162
+ 0.019676703474
+ 0.0197469042277
+ 0.0198172508639
+ 0.0198877434691
+ 0.0199583821296
+ 0.0200291669319
+ 0.0201000979621
+ 0.0201711753065
+ 0.0202423990512
+ 0.0203137692821
+ 0.0203852860853
+ 0.0204569495466
+ 0.0205287597519
+ 0.0206007167868
+ 0.020672820737
+ 0.020745071688
+ 0.0208174697255
+ 0.0208900149348
+ 0.0209627074012
+ 0.0210355472101
+ 0.0211085344467
+ 0.021181669196
+ 0.0212549515432
+ 0.0213283815732
+ 0.021401959371
+ 0.0214756850213
+ 0.021549558609
+ 0.0216235802187
+ 0.0216977499351
+ 0.0217720678426
+ 0.0218465340259
+ 0.0219211485693
+ 0.021995911557
+ 0.0220708230735
+ 0.0221458832028
+ 0.0222210920291
+ 0.0222964496364
+ 0.0223719561088
+ 0.02244761153
+ 0.0225234159839
+ 0.0225993695544
+ 0.0226754723251
+ 0.0227517243795
+ 0.0228281258014
+ 0.022904676674
+ 0.0229813770809
+ 0.0230582271055
+ 0.0231352268308
+ 0.0232123763403
+ 0.0232896757169
+ 0.0233671250438
+ 0.023444724404
+ 0.0235224738803
+ 0.0236003735557
+ 0.0236784235129
+ 0.0237566238346
+ 0.0238349746036
+ 0.0239134759023
+ 0.0239921278133
+ 0.0240709304191
+ 0.024149883802
+ 0.0242289880444
+ 0.0243082432284
+ 0.0243876494363
+ 0.0244672067502
+ 0.0245469152521
+ 0.024626775024
+ 0.0247067861478
+ 0.0247869487054
+ 0.0248672627785
+ 0.0249477284489
+ 0.0250283457981
+ 0.0251091149078
+ 0.0251900358596
+ 0.0252711087347
+ 0.0253523336147
+ 0.0254337105808
+ 0.0255152397143
+ 0.0255969210965
+ 0.0256787548083
+ 0.0257607409309
+ 0.0258428795452
+ 0.0259251707322
+ 0.0260076145728
+ 0.0260902111478
+ 0.0261729605378
+ 0.0262558628236
+ 0.0263389180858
+ 0.0264221264049
+ 0.0265054878614
+ 0.0265890025358
+ 0.0266726705083
+ 0.0267564918593
+ 0.026840466669
+ 0.0269245950175
+ 0.0270088769851
+ 0.0270933126516
+ 0.0271779020971
+ 0.0272626454016
+ 0.0273475426448
+ 0.0274325939065
+ 0.0275177992666
+ 0.0276031588046
+ 0.0276886726001
+ 0.0277743407328
+ 0.027860163282
+ 0.0279461403273
+ 0.0280322719479
+ 0.0281185582232
+ 0.0282049992324
+ 0.0282915950547
+ 0.0283783457692
+ 0.0284652514549
+ 0.0285523121909
+ 0.0286395280562
+ 0.0287268991294
+ 0.0288144254896
+ 0.0289021072154
+ 0.0289899443855
+ 0.0290779370787
+ 0.0291660853733
+ 0.0292543893481
+ 0.0293428490813
+ 0.0294314646515
+ 0.029520236137
+ 0.029609163616
+ 0.0296982471668
+ 0.0297874868674
+ 0.0298768827962
+ 0.029966435031
+ 0.0300561436499
+ 0.0301460087307
+ 0.0302360303515
+ 0.0303262085899
+ 0.0304165435238
+ 0.0305070352307
+ 0.0305976837885
+ 0.0306884892746
+ 0.0307794517666
+ 0.0308705713419
+ 0.030961848078
+ 0.0310532820522
+ 0.0311448733418
+ 0.031236622024
+ 0.0313285281761
+ 0.0314205918751
+ 0.0315128131981
+ 0.0316051922222
+ 0.0316977290242
+ 0.0317904236811
+ 0.0318832762697
+ 0.0319762868669
+ 0.0320694555492
+ 0.0321627823935
+ 0.0322562674764
+ 0.0323499108743
+ 0.0324437126639
+ 0.0325376729215
+ 0.0326317917235
+ 0.0327260691464
+ 0.0328205052664
+ 0.0329151001597
+ 0.0330098539025
+ 0.0331047665709
+ 0.033199838241
+ 0.0332950689888
+ 0.0333904588903
+ 0.0334860080213
+ 0.0335817164578
+ 0.0336775842755
+ 0.0337736115501
+ 0.0338697983574
+ 0.033966144773
+ 0.0340626508725
+ 0.0341593167313
+ 0.034256142425
+ 0.034353128029
+ 0.0344502736186
+ 0.0345475792692
+ 0.0346450450561
+ 0.0347426710544
+ 0.0348404573392
+ 0.0349384039858
+ 0.0350365110691
+ 0.0351347786641
+ 0.0352332068458
+ 0.0353317956891
+ 0.0354305452689
+ 0.0355294556598
+ 0.0356285269366
+ 0.0357277591741
+ 0.0358271524468
+ 0.0359267068294
+ 0.0360264223963
+ 0.0361262992221
+ 0.0362263373811
+ 0.0363265369477
+ 0.0364268979963
+ 0.0365274206011
+ 0.0366281048364
+ 0.0367289507762
+ 0.0368299584948
+ 0.0369311280662
+ 0.0370324595644
+ 0.0371339530634
+ 0.037235608637
+ 0.0373374263592
+ 0.0374394063038
+ 0.0375415485445
+ 0.037643853155
+ 0.037746320209
+ 0.0378489497802
+ 0.037951741942
+ 0.038054696768
+ 0.0381578143316
+ 0.0382610947063
+ 0.0383645379655
+ 0.0384681441823
+ 0.0385719134302
+ 0.0386758457823
+ 0.0387799413118
+ 0.0388842000918
+ 0.0389886221953
+ 0.0390932076954
+ 0.0391979566651
+ 0.0393028691773
+ 0.0394079453048
+ 0.0395131851204
+ 0.039618588697
+ 0.0397241561073
+ 0.039829887424
+ 0.0399357827196
+ 0.0400418420667
+ 0.040148065538
+ 0.0402544532058
+ 0.0403610051427
+ 0.0404677214209
+ 0.0405746021129
+ 0.040681647291
+ 0.0407888570273
+ 0.0408962313941
+ 0.0410037704635
+ 0.0411114743077
+ 0.0412193429986
+ 0.0413273766084
+ 0.0414355752089
+ 0.0415439388721
+ 0.0416524676699
+ 0.041761161674
+ 0.0418700209563
+ 0.0419790455884
+ 0.0420882356421
+ 0.0421975911889
+ 0.0423071123006
+ 0.0424167990485
+ 0.0425266515043
+ 0.0426366697393
+ 0.042746853825
+ 0.0428572038327
+ 0.0429677198337
+ 0.0430784018994
+ 0.0431892501008
+ 0.0433002645092
+ 0.0434114451957
+ 0.0435227922315
+ 0.0436343056874
+ 0.0437459856346
+ 0.0438578321439
+ 0.0439698452863
+ 0.0440820251327
+ 0.0441943717537
+ 0.0443068852203
+ 0.0444195656031
+ 0.0445324129727
+ 0.0446454273999
+ 0.0447586089552
+ 0.0448719577092
+ 0.0449854737323
+ 0.0450991570949
+ 0.0452130078676
+ 0.0453270261206
+ 0.0454412119244
+ 0.0455555653491
+ 0.0456700864649
+ 0.0457847753421
+ 0.0458996320509
+ 0.0460146566613
+ 0.0461298492433
+ 0.046245209867
+ 0.0463607386023
+ 0.0464764355192
+ 0.0465923006876
+ 0.0467083341772
+ 0.0468245360579
+ 0.0469409063994
+ 0.0470574452714
+ 0.0471741527436
+ 0.0472910288857
+ 0.0474080737671
+ 0.0475252874574
+ 0.0476426700262
+ 0.0477602215427
+ 0.0478779420766
+ 0.0479958316971
+ 0.0481138904735
+ 0.0482321184751
+ 0.0483505157711
+ 0.0484690824308
+ 0.0485878185233
+ 0.0487067241177
+ 0.0488257992831
+ 0.0489450440884
+ 0.0490644586027
+ 0.0491840428949
+ 0.0493037970339
+ 0.0494237210886
+ 0.0495438151277
+ 0.0496640792201
+ 0.0497845134344
+ 0.0499051178394
+ 0.0500258925036
+ 0.0501468374958
+ 0.0502679528845
+ 0.0503892387381
+ 0.0505106951252
+ 0.0506323221142
+ 0.0507541197736
+ 0.0508760881716
+ 0.0509982273765
+ 0.0511205374567
+ 0.0512430184805
+ 0.0513656705159
+ 0.0514884936311
+ 0.0516114878943
+ 0.0517346533735
+ 0.0518579901367
+ 0.051981498252
+ 0.0521051777872
+ 0.0522290288104
+ 0.0523530513893
+ 0.0524772455919
+ 0.0526016114858
+ 0.0527261491388
+ 0.0528508586187
+ 0.0529757399931
+ 0.0531007933296
+ 0.0532260186959
+ 0.0533514161594
+ 0.0534769857877
+ 0.0536027276483
+ 0.0537286418086
+ 0.0538547283359
+ 0.0539809872976
+ 0.0541074187611
+ 0.0542340227936
+ 0.0543607994623
+ 0.0544877488345
+ 0.0546148709772
+ 0.0547421659577
+ 0.0548696338429
+ 0.0549972746999
+ 0.0551250885958
+ 0.0552530755974
+ 0.0553812357717
+ 0.0555095691856
+ 0.0556380759059
+ 0.0557667559994
+ 0.0558956095329
+ 0.0560246365731
+ 0.0561538371867
+ 0.0562832114404
+ 0.0564127594007
+ 0.0565424811343
+ 0.0566723767076
+ 0.0568024461872
+ 0.0569326896395
+ 0.057063107131
+ 0.057193698728
+ 0.0573244644969
+ 0.0574554045039
+ 0.0575865188155
+ 0.0577178074976
+ 0.0578492706167
+ 0.0579809082388
+ 0.0581127204301
+ 0.0582447072565
+ 0.0583768687843
+ 0.0585092050793
+ 0.0586417162076
+ 0.0587744022351
+ 0.0589072632276
+ 0.0590402992511
+ 0.0591735103713
+ 0.0593068966541
+ 0.0594404581651
+ 0.0595741949702
+ 0.0597081071348
+ 0.0598421947248
+ 0.0599764578057
+ 0.060110896443
+ 0.0602455107023
+ 0.0603803006491
+ 0.0605152663488
+ 0.0606504078668
+ 0.0607857252685
+ 0.0609212186193
+ 0.0610568879844
+ 0.0611927334292
+ 0.0613287550188
+ 0.0614649528185
+ 0.0616013268934
+ 0.0617378773086
+ 0.0618746041293
+ 0.0620115074204
+ 0.062148587247
+ 0.0622858436742
+ 0.0624232767667
+ 0.0625608865896
+ 0.0626986732076
+ 0.0628366366858
+ 0.0629747770887
+ 0.0631130944813
+ 0.0632515889282
+ 0.0633902604941
+ 0.0635291092438
+ 0.0636681352417
+ 0.0638073385526
+ 0.0639467192409
+ 0.0640862773712
+ 0.064226013008
+ 0.0643659262156
+ 0.0645060170586
+ 0.0646462856013
+ 0.0647867319081
+ 0.0649273560432
+ 0.0650681580709
+ 0.0652091380555
+ 0.0653502960612
+ 0.0654916321521
+ 0.0656331463924
+ 0.0657748388461
+ 0.0659167095774
+ 0.0660587586503
+ 0.0662009861287
+ 0.0663433920767
+ 0.0664859765581
+ 0.0666287396369
+ 0.0667716813768
+ 0.0669148018418
+ 0.0670581010956
+ 0.067201579202
+ 0.0673452362247
+ 0.0674890722274
+ 0.0676330872737
+ 0.0677772814273
+ 0.0679216547518
+ 0.0680662073106
+ 0.0682109391674
+ 0.0683558503856
+ 0.0685009410286
+ 0.0686462111599
+ 0.0687916608429
+ 0.0689372901409
+ 0.0690830991172
+ 0.0692290878351
+ 0.0693752563579
+ 0.0695216047488
+ 0.0696681330709
+ 0.0698148413874
+ 0.0699617297615
+ 0.0701087982562
+ 0.0702560469345
+ 0.0704034758596
+ 0.0705510850943
+ 0.0706988747016
+ 0.0708468447445
+ 0.0709949952858
+ 0.0711433263883
+ 0.071291838115
+ 0.0714405305285
+ 0.0715894036917
+ 0.0717384576673
+ 0.0718876925179
+ 0.0720371083062
+ 0.0721867050949
+ 0.0723364829464
+ 0.0724864419235
+ 0.0726365820886
+ 0.0727869035042
+ 0.0729374062327
+ 0.0730880903367
+ 0.0732389558784
+ 0.0733900029203
+ 0.0735412315247
+ 0.0736926417539
+ 0.0738442336702
+ 0.0739960073358
+ 0.0741479628129
+ 0.0743001001637
+ 0.0744524194503
+ 0.0746049207348
+ 0.0747576040794
+ 0.074910469546
+ 0.0750635171967
+ 0.0752167470935
+ 0.0753701592983
+ 0.075523753873
+ 0.0756775308795
+ 0.0758314903797
+ 0.0759856324354
+ 0.0761399571085
+ 0.0762944644605
+ 0.0764491545534
+ 0.0766040274487
+ 0.0767590832083
+ 0.0769143218936
+ 0.0770697435663
+ 0.077225348288
+ 0.0773811361202
+ 0.0775371071245
+ 0.0776932613623
+ 0.077849598895
+ 0.0780061197842
+ 0.0781628240911
+ 0.0783197118772
+ 0.0784767832038
+ 0.0786340381321
+ 0.0787914767235
+ 0.0789490990391
+ 0.0791069051402
+ 0.079264895088
+ 0.0794230689436
+ 0.0795814267681
+ 0.0797399686225
+ 0.0798986945681
+ 0.0800576046657
+ 0.0802166989763
+ 0.080375977561
+ 0.0805354404807
+ 0.0806950877962
+ 0.0808549195685
+ 0.0810149358583
+ 0.0811751367265
+ 0.0813355222339
+ 0.0814960924412
+ 0.0816568474092
+ 0.0818177871984
+ 0.0819789118697
+ 0.0821402214836
+ 0.0823017161008
+ 0.0824633957817
+ 0.082625260587
+ 0.0827873105771
+ 0.0829495458126
+ 0.0831119663539
+ 0.0832745722613
+ 0.0834373635955
+ 0.0836003404165
+ 0.0837635027849
+ 0.083926850761
+ 0.0840903844049
+ 0.0842541037769
+ 0.0844180089374
+ 0.0845820999463
+ 0.084746376864
+ 0.0849108397506
+ 0.085075488666
+ 0.0852403236705
+ 0.0854053448241
+ 0.0855705521867
+ 0.0857359458184
+ 0.0859015257791
+ 0.0860672921287
+ 0.0862332449272
+ 0.0863993842344
+ 0.0865657101102
+ 0.0867322226143
+ 0.0868989218065
+ 0.0870658077467
+ 0.0872328804945
+ 0.0874001401096
+ 0.0875675866517
+ 0.0877352201804
+ 0.0879030407554
+ 0.0880710484362
+ 0.0882392432824
+ 0.0884076253535
+ 0.088576194709
+ 0.0887449514084
+ 0.0889138955111
+ 0.0890830270765
+ 0.0892523461641
+ 0.0894218528331
+ 0.0895915471429
+ 0.0897614291528
+ 0.0899314989221
+ 0.09010175651
+ 0.0902722019757
+ 0.0904428353785
+ 0.0906136567774
+ 0.0907846662317
+ 0.0909558638004
+ 0.0911272495425
+ 0.0912988235173
+ 0.0914705857835
+ 0.0916425364004
+ 0.0918146754267
+ 0.0919870029215
+ 0.0921595189437
+ 0.0923322235521
+ 0.0925051168057
+ 0.0926781987632
+ 0.0928514694834
+ 0.0930249290251
+ 0.0931985774471
+ 0.093372414808
+ 0.0935464411666
+ 0.0937206565816
+ 0.0938950611115
+ 0.0940696548149
+ 0.0942444377505
+ 0.0944194099769
+ 0.0945945715524
+ 0.0947699225357
+ 0.0949454629852
+ 0.0951211929593
+ 0.0952971125165
+ 0.0954732217152
+ 0.0956495206136
+ 0.0958260092703
+ 0.0960026877434
+ 0.0961795560913
+ 0.0963566143722
+ 0.0965338626443
+ 0.0967113009659
+ 0.0968889293951
+ 0.0970667479901
+ 0.097244756809
+ 0.0974229559098
+ 0.0976013453508
+ 0.0977799251898
+ 0.097958695485
+ 0.0981376562943
+ 0.0983168076757
+ 0.0984961496871
+ 0.0986756823864
+ 0.0988554058316
+ 0.0990353200804
+ 0.0992154251908
+ 0.0993957212204
+ 0.0995762082271
+ 0.0997568862687
+ 0.0999377554029
+ 0.100118815687
+ 0.10030006718
+ 0.100481509938
+ 0.100663144019
+ 0.100844969481
+ 0.101026986381
+ 0.101209194778
+ 0.101391594728
+ 0.101574186288
+ 0.101756969518
+ 0.101939944473
+ 0.102123111211
+ 0.10230646979
+ 0.102490020267
+ 0.102673762699
+ 0.102857697144
+ 0.10304182366
+ 0.103226142302
+ 0.103410653129
+ 0.103595356197
+ 0.103780251564
+ 0.103965339288
+ 0.104150619424
+ 0.104336092031
+ 0.104521757165
+ 0.104707614883
+ 0.104893665243
+ 0.105079908301
+ 0.105266344115
+ 0.105452972741
+ 0.105639794237
+ 0.105826808659
+ 0.106014016063
+ 0.106201416508
+ 0.10638901005
+ 0.106576796745
+ 0.10676477665
+ 0.106952949823
+ 0.10714131632
+ 0.107329876197
+ 0.107518629511
+ 0.107707576319
+ 0.107896716678
+ 0.108086050644
+ 0.108275578273
+ 0.108465299623
+ 0.10865521475
+ 0.10884532371
+ 0.10903562656
+ 0.109226123356
+ 0.109416814155
+ 0.109607699013
+ 0.109798777986
+ 0.109990051131
+ 0.110181518505
+ 0.110373180162
+ 0.110565036161
+ 0.110757086557
+ 0.110949331406
+ 0.111141770764
+ 0.111334404688
+ 0.111527233234
+ 0.111720256458
+ 0.111913474416
+ 0.112106887164
+ 0.112300494759
+ 0.112494297255
+ 0.11268829471
+ 0.11288248718
+ 0.113076874719
+ 0.113271457385
+ 0.113466235233
+ 0.113661208319
+ 0.113856376699
+ 0.114051740429
+ 0.114247299564
+ 0.114443054161
+ 0.114639004275
+ 0.114835149961
+ 0.115031491277
+ 0.115228028277
+ 0.115424761016
+ 0.115621689552
+ 0.115818813939
+ 0.116016134233
+ 0.116213650489
+ 0.116411362764
+ 0.116609271112
+ 0.116807375589
+ 0.117005676251
+ 0.117204173153
+ 0.117402866351
+ 0.117601755899
+ 0.117800841855
+ 0.118000124271
+ 0.118199603205
+ 0.118399278712
+ 0.118599150846
+ 0.118799219663
+ 0.118999485219
+ 0.119199947568
+ 0.119400606766
+ 0.119601462868
+ 0.119802515928
+ 0.120003766004
+ 0.120205213148
+ 0.120406857417
+ 0.120608698866
+ 0.120810737549
+ 0.121012973522
+ 0.121215406839
+ 0.121418037556
+ 0.121620865728
+ 0.121823891409
+ 0.122027114655
+ 0.12223053552
+ 0.122434154059
+ 0.122637970327
+ 0.122841984379
+ 0.123046196269
+ 0.123250606053
+ 0.123455213785
+ 0.123660019521
+ 0.123865023313
+ 0.124070225218
+ 0.12427562529
+ 0.124481223584
+ 0.124687020154
+ 0.124893015054
+ 0.12509920834
+ 0.125305600066
+ 0.125512190287
+ 0.125718979056
+ 0.125925966429
+ 0.12613315246
+ 0.126340537203
+ 0.126548120713
+ 0.126755903044
+ 0.126963884251
+ 0.127172064387
+ 0.127380443508
+ 0.127589021667
+ 0.127797798919
+ 0.128006775318
+ 0.128215950919
+ 0.128425325775
+ 0.12863489994
+ 0.12884467347
+ 0.129054646417
+ 0.129264818837
+ 0.129475190783
+ 0.129685762309
+ 0.12989653347
+ 0.130107504319
+ 0.130318674911
+ 0.130530045299
+ 0.130741615537
+ 0.13095338568
+ 0.131165355781
+ 0.131377525894
+ 0.131589896074
+ 0.131802466373
+ 0.132015236847
+ 0.132228207548
+ 0.13244137853
+ 0.132654749847
+ 0.132868321554
+ 0.133082093703
+ 0.133296066349
+ 0.133510239544
+ 0.133724613344
+ 0.133939187801
+ 0.134153962969
+ 0.134368938901
+ 0.134584115652
+ 0.134799493275
+ 0.135015071823
+ 0.135230851349
+ 0.135446831909
+ 0.135663013554
+ 0.135879396338
+ 0.136095980315
+ 0.136312765538
+ 0.136529752061
+ 0.136746939936
+ 0.136964329218
+ 0.13718191996
+ 0.137399712214
+ 0.137617706034
+ 0.137835901474
+ 0.138054298587
+ 0.138272897425
+ 0.138491698043
+ 0.138710700493
+ 0.138929904828
+ 0.139149311102
+ 0.139368919367
+ 0.139588729678
+ 0.139808742086
+ 0.140028956645
+ 0.140249373408
+ 0.140469992428
+ 0.140690813758
+ 0.140911837451
+ 0.14113306356
+ 0.141354492137
+ 0.141576123237
+ 0.141797956911
+ 0.142019993212
+ 0.142242232194
+ 0.142464673909
+ 0.142687318409
+ 0.142910165749
+ 0.14313321598
+ 0.143356469155
+ 0.143579925328
+ 0.143803584549
+ 0.144027446874
+ 0.144251512353
+ 0.14447578104
+ 0.144700252987
+ 0.144924928247
+ 0.145149806873
+ 0.145374888917
+ 0.145600174431
+ 0.145825663468
+ 0.146051356081
+ 0.146277252321
+ 0.146503352243
+ 0.146729655897
+ 0.146956163337
+ 0.147182874614
+ 0.147409789782
+ 0.147636908892
+ 0.147864231997
+ 0.148091759149
+ 0.1483194904
+ 0.148547425803
+ 0.14877556541
+ 0.149003909274
+ 0.149232457445
+ 0.149461209978
+ 0.149690166923
+ 0.149919328333
+ 0.15014869426
+ 0.150378264757
+ 0.150608039875
+ 0.150838019666
+ 0.151068204182
+ 0.151298593476
+ 0.1515291876
+ 0.151759986605
+ 0.151990990543
+ 0.152222199467
+ 0.152453613428
+ 0.152685232479
+ 0.152917056671
+ 0.153149086055
+ 0.153381320685
+ 0.153613760611
+ 0.153846405886
+ 0.154079256562
+ 0.154312312689
+ 0.154545574321
+ 0.154779041508
+ 0.155012714302
+ 0.155246592756
+ 0.15548067692
+ 0.155714966847
+ 0.155949462588
+ 0.156184164194
+ 0.156419071718
+ 0.156654185211
+ 0.156889504724
+ 0.157125030309
+ 0.157360762017
+ 0.157596699901
+ 0.157832844011
+ 0.1580691944
+ 0.158305751117
+ 0.158542514216
+ 0.158779483747
+ 0.159016659761
+ 0.159254042311
+ 0.159491631447
+ 0.15972942722
+ 0.159967429683
+ 0.160205638886
+ 0.160444054881
+ 0.160682677718
+ 0.16092150745
+ 0.161160544127
+ 0.161399787801
+ 0.161639238523
+ 0.161878896343
+ 0.162118761313
+ 0.162358833485
+ 0.162599112909
+ 0.162839599636
+ 0.163080293717
+ 0.163321195205
+ 0.163562304148
+ 0.163803620599
+ 0.164045144609
+ 0.164286876228
+ 0.164528815508
+ 0.164770962499
+ 0.165013317253
+ 0.165255879819
+ 0.16549865025
+ 0.165741628596
+ 0.165984814907
+ 0.166228209235
+ 0.166471811631
+ 0.166715622145
+ 0.166959640827
+ 0.16720386773
+ 0.167448302903
+ 0.167692946397
+ 0.167937798263
+ 0.168182858552
+ 0.168428127314
+ 0.168673604599
+ 0.16891929046
+ 0.169165184945
+ 0.169411288106
+ 0.169657599993
+ 0.169904120657
+ 0.170150850149
+ 0.170397788518
+ 0.170644935816
+ 0.170892292092
+ 0.171139857397
+ 0.171387631783
+ 0.171635615298
+ 0.171883807994
+ 0.172132209921
+ 0.172380821129
+ 0.172629641669
+ 0.17287867159
+ 0.173127910944
+ 0.173377359781
+ 0.17362701815
+ 0.173876886103
+ 0.174126963688
+ 0.174377250957
+ 0.17462774796
+ 0.174878454747
+ 0.175129371368
+ 0.175380497874
+ 0.175631834313
+ 0.175883380737
+ 0.176135137196
+ 0.176387103739
+ 0.176639280417
+ 0.17689166728
+ 0.177144264378
+ 0.17739707176
+ 0.177650089477
+ 0.177903317579
+ 0.178156756116
+ 0.178410405137
+ 0.178664264693
+ 0.178918334833
+ 0.179172615607
+ 0.179427107066
+ 0.179681809259
+ 0.179936722235
+ 0.180191846045
+ 0.180447180739
+ 0.180702726366
+ 0.180958482976
+ 0.181214450619
+ 0.181470629344
+ 0.181727019201
+ 0.18198362024
+ 0.182240432511
+ 0.182497456063
+ 0.182754690946
+ 0.183012137209
+ 0.183269794902
+ 0.183527664074
+ 0.183785744776
+ 0.184044037057
+ 0.184302540966
+ 0.184561256552
+ 0.184820183866
+ 0.185079322956
+ 0.185338673873
+ 0.185598236666
+ 0.185858011383
+ 0.186117998075
+ 0.186378196791
+ 0.18663860758
+ 0.186899230491
+ 0.187160065575
+ 0.187421112879
+ 0.187682372455
+ 0.18794384435
+ 0.188205528614
+ 0.188467425296
+ 0.188729534447
+ 0.188991856114
+ 0.189254390347
+ 0.189517137195
+ 0.189780096708
+ 0.190043268934
+ 0.190306653923
+ 0.190570251723
+ 0.190834062385
+ 0.191098085956
+ 0.191362322487
+ 0.191626772025
+ 0.191891434621
+ 0.192156310323
+ 0.19242139918
+ 0.192686701241
+ 0.192952216555
+ 0.193217945171
+ 0.193483887138
+ 0.193750042505
+ 0.19401641132
+ 0.194282993634
+ 0.194549789494
+ 0.194816798949
+ 0.195084022048
+ 0.19535145884
+ 0.195619109375
+ 0.195886973699
+ 0.196155051863
+ 0.196423343915
+ 0.196691849904
+ 0.196960569879
+ 0.197229503888
+ 0.197498651979
+ 0.197768014202
+ 0.198037590606
+ 0.198307381238
+ 0.198577386148
+ 0.198847605383
+ 0.199118038994
+ 0.199388687027
+ 0.199659549532
+ 0.199930626558
+ 0.200201918152
+ 0.200473424364
+ 0.200745145241
+ 0.201017080833
+ 0.201289231187
+ 0.201561596353
+ 0.201834176378
+ 0.202106971311
+ 0.2023799812
+ 0.202653206094
+ 0.202926646041
+ 0.203200301089
+ 0.203474171287
+ 0.203748256683
+ 0.204022557326
+ 0.204297073263
+ 0.204571804542
+ 0.204846751213
+ 0.205121913323
+ 0.20539729092
+ 0.205672884053
+ 0.20594869277
+ 0.206224717119
+ 0.206500957148
+ 0.206777412905
+ 0.207054084439
+ 0.207330971797
+ 0.207608075028
+ 0.207885394179
+ 0.208162929299
+ 0.208440680435
+ 0.208718647636
+ 0.20899683095
+ 0.209275230424
+ 0.209553846107
+ 0.209832678047
+ 0.210111726291
+ 0.210390990887
+ 0.210670471884
+ 0.210950169329
+ 0.21123008327
+ 0.211510213755
+ 0.211790560831
+ 0.212071124548
+ 0.212351904951
+ 0.21263290209
+ 0.212914116012
+ 0.213195546764
+ 0.213477194395
+ 0.213759058951
+ 0.214041140482
+ 0.214323439035
+ 0.214605954656
+ 0.214888687395
+ 0.215171637298
+ 0.215454804413
+ 0.215738188788
+ 0.21602179047
+ 0.216305609507
+ 0.216589645947
+ 0.216873899837
+ 0.217158371225
+ 0.217443060158
+ 0.217727966683
+ 0.218013090849
+ 0.218298432702
+ 0.218583992291
+ 0.218869769662
+ 0.219155764862
+ 0.219441977941
+ 0.219728408944
+ 0.220015057919
+ 0.220301924914
+ 0.220589009975
+ 0.220876313151
+ 0.221163834489
+ 0.221451574035
+ 0.221739531837
+ 0.222027707943
+ 0.222316102399
+ 0.222604715254
+ 0.222893546553
+ 0.223182596345
+ 0.223471864677
+ 0.223761351595
+ 0.224051057147
+ 0.22434098138
+ 0.224631124341
+ 0.224921486078
+ 0.225212066637
+ 0.225502866066
+ 0.225793884411
+ 0.22608512172
+ 0.226376578039
+ 0.226668253416
+ 0.226960147898
+ 0.227252261532
+ 0.227544594365
+ 0.227837146443
+ 0.228129917814
+ 0.228422908524
+ 0.228716118621
+ 0.229009548151
+ 0.229303197162
+ 0.2295970657
+ 0.229891153812
+ 0.230185461545
+ 0.230479988946
+ 0.230774736061
+ 0.231069702938
+ 0.231364889622
+ 0.231660296162
+ 0.231955922604
+ 0.232251768994
+ 0.232547835379
+ 0.232844121806
+ 0.233140628321
+ 0.233437354972
+ 0.233734301805
+ 0.234031468867
+ 0.234328856203
+ 0.234626463862
+ 0.234924291889
+ 0.235222340331
+ 0.235520609235
+ 0.235819098647
+ 0.236117808614
+ 0.236416739182
+ 0.236715890398
+ 0.237015262309
+ 0.23731485496
+ 0.237614668399
+ 0.237914702671
+ 0.238214957824
+ 0.238515433903
+ 0.238816130955
+ 0.239117049027
+ 0.239418188165
+ 0.239719548415
+ 0.240021129824
+ 0.240322932438
+ 0.240624956303
+ 0.240927201466
+ 0.241229667972
+ 0.241532355869
+ 0.241835265203
+ 0.242138396019
+ 0.242441748364
+ 0.242745322285
+ 0.243049117826
+ 0.243353135036
+ 0.243657373959
+ 0.243961834643
+ 0.244266517132
+ 0.244571421474
+ 0.244876547715
+ 0.2451818959
+ 0.245487466075
+ 0.245793258288
+ 0.246099272583
+ 0.246405509007
+ 0.246711967606
+ 0.247018648426
+ 0.247325551513
+ 0.247632676913
+ 0.247940024672
+ 0.248247594836
+ 0.248555387451
+ 0.248863402563
+ 0.249171640217
+ 0.249480100461
+ 0.249788783338
+ 0.250097688897
+ 0.250406817181
+ 0.250716168238
+ 0.251025742113
+ 0.251335538852
+ 0.2516455585
+ 0.251955801104
+ 0.25226626671
+ 0.252576955362
+ 0.252887867107
+ 0.253199001991
+ 0.253510360059
+ 0.253821941357
+ 0.254133745931
+ 0.254445773826
+ 0.254758025089
+ 0.255070499764
+ 0.255383197898
+ 0.255696119535
+ 0.256009264722
+ 0.256322633505
+ 0.256636225928
+ 0.256950042038
+ 0.25726408188
+ 0.2575783455
+ 0.257892832942
+ 0.258207544253
+ 0.258522479479
+ 0.258837638663
+ 0.259153021853
+ 0.259468629094
+ 0.259784460431
+ 0.260100515909
+ 0.260416795574
+ 0.260733299471
+ 0.261050027646
+ 0.261366980144
+ 0.26168415701
+ 0.26200155829
+ 0.26231918403
+ 0.262637034274
+ 0.262955109067
+ 0.263273408456
+ 0.263591932485
+ 0.2639106812
+ 0.264229654646
+ 0.264548852868
+ 0.264868275911
+ 0.265187923821
+ 0.265507796643
+ 0.265827894421
+ 0.266148217202
+ 0.266468765031
+ 0.266789537952
+ 0.26711053601
+ 0.267431759251
+ 0.267753207721
+ 0.268074881463
+ 0.268396780523
+ 0.268718904946
+ 0.269041254778
+ 0.269363830063
+ 0.269686630846
+ 0.270009657172
+ 0.270332909087
+ 0.270656386635
+ 0.270980089861
+ 0.27130401881
+ 0.271628173528
+ 0.271952554058
+ 0.272277160447
+ 0.272601992739
+ 0.272927050978
+ 0.27325233521
+ 0.27357784548
+ 0.273903581832
+ 0.274229544312
+ 0.274555732963
+ 0.274882147832
+ 0.275208788962
+ 0.275535656399
+ 0.275862750187
+ 0.276190070371
+ 0.276517616996
+ 0.276845390106
+ 0.277173389747
+ 0.277501615962
+ 0.277830068798
+ 0.278158748297
+ 0.278487654506
+ 0.278816787468
+ 0.279146147229
+ 0.279475733832
+ 0.279805547324
+ 0.280135587747
+ 0.280465855147
+ 0.280796349568
+ 0.281127071056
+ 0.281458019653
+ 0.281789195406
+ 0.282120598358
+ 0.282452228554
+ 0.282784086039
+ 0.283116170857
+ 0.283448483052
+ 0.283781022669
+ 0.284113789753
+ 0.284446784347
+ 0.284780006497
+ 0.285113456246
+ 0.28544713364
+ 0.285781038721
+ 0.286115171536
+ 0.286449532128
+ 0.286784120541
+ 0.28711893682
+ 0.287453981009
+ 0.287789253152
+ 0.288124753295
+ 0.28846048148
+ 0.288796437753
+ 0.289132622157
+ 0.289469034737
+ 0.289805675536
+ 0.290142544601
+ 0.290479641973
+ 0.290816967698
+ 0.29115452182
+ 0.291492304383
+ 0.291830315431
+ 0.292168555008
+ 0.292507023158
+ 0.292845719926
+ 0.293184645356
+ 0.293523799491
+ 0.293863182375
+ 0.294202794054
+ 0.29454263457
+ 0.294882703969
+ 0.295223002293
+ 0.295563529587
+ 0.295904285895
+ 0.29624527126
+ 0.296586485728
+ 0.296927929341
+ 0.297269602144
+ 0.297611504181
+ 0.297953635496
+ 0.298295996131
+ 0.298638586133
+ 0.298981405543
+ 0.299324454407
+ 0.299667732768
+ 0.300011240669
+ 0.300354978156
+ 0.300698945271
+ 0.301043142058
+ 0.301387568561
+ 0.301732224824
+ 0.302077110891
+ 0.302422226805
+ 0.30276757261
+ 0.303113148351
+ 0.30345895407
+ 0.303804989811
+ 0.304151255618
+ 0.304497751535
+ 0.304844477606
+ 0.305191433873
+ 0.305538620381
+ 0.305886037173
+ 0.306233684294
+ 0.306581561785
+ 0.306929669692
+ 0.307278008058
+ 0.307626576926
+ 0.30797537634
+ 0.308324406343
+ 0.308673666979
+ 0.309023158292
+ 0.309372880325
+ 0.309722833121
+ 0.310073016724
+ 0.310423431177
+ 0.310774076524
+ 0.311124952809
+ 0.311476060074
+ 0.311827398364
+ 0.312178967721
+ 0.312530768189
+ 0.312882799812
+ 0.313235062632
+ 0.313587556694
+ 0.31394028204
+ 0.314293238713
+ 0.314646426758
+ 0.314999846217
+ 0.315353497134
+ 0.315707379552
+ 0.316061493515
+ 0.316415839065
+ 0.316770416246
+ 0.3171252251
+ 0.317480265673
+ 0.317835538005
+ 0.318191042142
+ 0.318546778125
+ 0.318902745999
+ 0.319258945805
+ 0.319615377588
+ 0.319972041391
+ 0.320328937256
+ 0.320686065228
+ 0.321043425348
+ 0.32140101766
+ 0.321758842207
+ 0.322116899033
+ 0.322475188179
+ 0.32283370969
+ 0.323192463609
+ 0.323551449977
+ 0.32391066884
+ 0.324270120238
+ 0.324629804216
+ 0.324989720816
+ 0.325349870081
+ 0.325710252055
+ 0.32607086678
+ 0.326431714298
+ 0.326792794654
+ 0.32715410789
+ 0.327515654049
+ 0.327877433174
+ 0.328239445307
+ 0.328601690491
+ 0.32896416877
+ 0.329326880186
+ 0.329689824782
+ 0.3300530026
+ 0.330416413684
+ 0.330780058077
+ 0.33114393582
+ 0.331508046958
+ 0.331872391532
+ 0.332236969586
+ 0.332601781161
+ 0.332966826302
+ 0.33333210505
+ 0.333697617448
+ 0.334063363539
+ 0.334429343366
+ 0.334795556971
+ 0.335162004396
+ 0.335528685686
+ 0.335895600881
+ 0.336262750025
+ 0.336630133161
+ 0.33699775033
+ 0.337365601576
+ 0.337733686941
+ 0.338102006468
+ 0.338470560199
+ 0.338839348176
+ 0.339208370443
+ 0.339577627041
+ 0.339947118014
+ 0.340316843403
+ 0.340686803252
+ 0.341056997602
+ 0.341427426497
+ 0.341798089977
+ 0.342168988087
+ 0.342540120868
+ 0.342911488363
+ 0.343283090614
+ 0.343654927664
+ 0.344026999555
+ 0.344399306329
+ 0.344771848028
+ 0.345144624695
+ 0.345517636373
+ 0.345890883103
+ 0.346264364929
+ 0.346638081891
+ 0.347012034033
+ 0.347386221396
+ 0.347760644024
+ 0.348135301958
+ 0.34851019524
+ 0.348885323913
+ 0.349260688018
+ 0.349636287599
+ 0.350012122697
+ 0.350388193355
+ 0.350764499614
+ 0.351141041517
+ 0.351517819106
+ 0.351894832422
+ 0.352272081509
+ 0.352649566409
+ 0.353027287162
+ 0.353405243812
+ 0.353783436401
+ 0.35416186497
+ 0.354540529562
+ 0.354919430218
+ 0.355298566981
+ 0.355677939893
+ 0.356057548995
+ 0.356437394331
+ 0.356817475941
+ 0.357197793867
+ 0.357578348152
+ 0.357959138838
+ 0.358340165966
+ 0.358721429579
+ 0.359102929718
+ 0.359484666426
+ 0.359866639743
+ 0.360248849713
+ 0.360631296376
+ 0.361013979776
+ 0.361396899953
+ 0.361780056949
+ 0.362163450807
+ 0.362547081568
+ 0.362930949273
+ 0.363315053966
+ 0.363699395687
+ 0.364083974478
+ 0.364468790381
+ 0.364853843438
+ 0.365239133691
+ 0.365624661181
+ 0.36601042595
+ 0.366396428039
+ 0.366782667491
+ 0.367169144347
+ 0.367555858648
+ 0.367942810438
+ 0.368329999756
+ 0.368717426644
+ 0.369105091145
+ 0.3694929933
+ 0.369881133151
+ 0.370269510739
+ 0.370658126105
+ 0.371046979292
+ 0.37143607034
+ 0.371825399292
+ 0.372214966189
+ 0.372604771073
+ 0.372994813984
+ 0.373385094965
+ 0.373775614057
+ 0.374166371302
+ 0.37455736674
+ 0.374948600414
+ 0.375340072365
+ 0.375731782634
+ 0.376123731263
+ 0.376515918294
+ 0.376908343767
+ 0.377301007723
+ 0.377693910206
+ 0.378087051255
+ 0.378480430912
+ 0.378874049219
+ 0.379267906217
+ 0.379662001946
+ 0.38005633645
+ 0.380450909768
+ 0.380845721942
+ 0.381240773014
+ 0.381636063025
+ 0.382031592016
+ 0.382427360027
+ 0.382823367102
+ 0.38321961328
+ 0.383616098603
+ 0.384012823112
+ 0.384409786849
+ 0.384806989855
+ 0.38520443217
+ 0.385602113836
+ 0.386000034894
+ 0.386398195386
+ 0.386796595352
+ 0.387195234834
+ 0.387594113872
+ 0.387993232508
+ 0.388392590783
+ 0.388792188739
+ 0.389192026415
+ 0.389592103853
+ 0.389992421095
+ 0.390392978181
+ 0.390793775152
+ 0.39119481205
+ 0.391596088915
+ 0.391997605788
+ 0.392399362711
+ 0.392801359724
+ 0.393203596868
+ 0.393606074185
+ 0.394008791715
+ 0.394411749499
+ 0.394814947578
+ 0.395218385993
+ 0.395622064786
+ 0.396025983996
+ 0.396430143665
+ 0.396834543833
+ 0.397239184543
+ 0.397644065833
+ 0.398049187746
+ 0.398454550322
+ 0.398860153601
+ 0.399265997626
+ 0.399672082436
+ 0.400078408072
+ 0.400484974575
+ 0.400891781987
+ 0.401298830347
+ 0.401706119696
+ 0.402113650076
+ 0.402521421526
+ 0.402929434088
+ 0.403337687803
+ 0.40374618271
+ 0.404154918852
+ 0.404563896267
+ 0.404973114998
+ 0.405382575085
+ 0.405792276568
+ 0.406202219488
+ 0.406612403886
+ 0.407022829802
+ 0.407433497277
+ 0.407844406352
+ 0.408255557067
+ 0.408666949462
+ 0.409078583579
+ 0.409490459458
+ 0.409902577139
+ 0.410314936663
+ 0.410727538071
+ 0.411140381402
+ 0.411553466698
+ 0.411966793999
+ 0.412380363346
+ 0.412794174779
+ 0.413208228338
+ 0.413622524064
+ 0.414037061997
+ 0.414451842178
+ 0.414866864648
+ 0.415282129446
+ 0.415697636613
+ 0.41611338619
+ 0.416529378216
+ 0.416945612733
+ 0.417362089781
+ 0.417778809399
+ 0.418195771629
+ 0.41861297651
+ 0.419030424084
+ 0.419448114389
+ 0.419866047468
+ 0.420284223359
+ 0.420702642103
+ 0.421121303741
+ 0.421540208313
+ 0.421959355859
+ 0.422378746419
+ 0.422798380033
+ 0.423218256742
+ 0.423638376586
+ 0.424058739606
+ 0.424479345841
+ 0.424900195331
+ 0.425321288117
+ 0.425742624239
+ 0.426164203737
+ 0.426586026651
+ 0.427008093021
+ 0.427430402888
+ 0.427852956292
+ 0.428275753272
+ 0.428698793869
+ 0.429122078123
+ 0.429545606074
+ 0.429969377762
+ 0.430393393228
+ 0.43081765251
+ 0.431242155649
+ 0.431666902686
+ 0.43209189366
+ 0.432517128611
+ 0.43294260758
+ 0.433368330606
+ 0.433794297729
+ 0.434220508989
+ 0.434646964426
+ 0.435073664081
+ 0.435500607993
+ 0.435927796201
+ 0.436355228747
+ 0.436782905669
+ 0.437210827008
+ 0.437638992804
+ 0.438067403096
+ 0.438496057925
+ 0.43892495733
+ 0.43935410135
+ 0.439783490027
+ 0.4402131234
+ 0.440643001508
+ 0.441073124392
+ 0.441503492091
+ 0.441934104645
+ 0.442364962094
+ 0.442796064477
+ 0.443227411835
+ 0.443659004207
+ 0.444090841633
+ 0.444522924152
+ 0.444955251805
+ 0.445387824631
+ 0.445820642669
+ 0.44625370596
+ 0.446687014543
+ 0.447120568458
+ 0.447554367744
+ 0.447988412442
+ 0.44842270259
+ 0.448857238229
+ 0.449292019398
+ 0.449727046137
+ 0.450162318484
+ 0.450597836481
+ 0.451033600167
+ 0.45146960958
+ 0.451905864761
+ 0.45234236575
+ 0.452779112585
+ 0.453216105306
+ 0.453653343954
+ 0.454090828566
+ 0.454528559184
+ 0.454966535846
+ 0.455404758592
+ 0.455843227462
+ 0.456281942494
+ 0.456720903729
+ 0.457160111205
+ 0.457599564963
+ 0.458039265042
+ 0.45847921148
+ 0.458919404318
+ 0.459359843596
+ 0.459800529351
+ 0.460241461625
+ 0.460682640455
+ 0.461124065882
+ 0.461565737945
+ 0.462007656684
+ 0.462449822136
+ 0.462892234343
+ 0.463334893343
+ 0.463777799176
+ 0.464220951881
+ 0.464664351496
+ 0.465107998063
+ 0.465551891619
+ 0.465996032204
+ 0.466440419857
+ 0.466885054618
+ 0.467329936526
+ 0.46777506562
+ 0.468220441939
+ 0.468666065522
+ 0.469111936409
+ 0.469558054639
+ 0.470004420252
+ 0.470451033285
+ 0.470897893779
+ 0.471345001772
+ 0.471792357304
+ 0.472239960414
+ 0.472687811141
+ 0.473135909525
+ 0.473584255603
+ 0.474032849416
+ 0.474481691002
+ 0.4749307804
+ 0.475380117651
+ 0.475829702792
+ 0.476279535862
+ 0.476729616902
+ 0.477179945949
+ 0.477630523043
+ 0.478081348223
+ 0.478532421528
+ 0.478983742996
+ 0.479435312668
+ 0.479887130581
+ 0.480339196776
+ 0.48079151129
+ 0.481244074162
+ 0.481696885433
+ 0.48214994514
+ 0.482603253323
+ 0.48305681002
+ 0.48351061527
+ 0.483964669113
+ 0.484418971587
+ 0.484873522731
+ 0.485328322584
+ 0.485783371185
+ 0.486238668573
+ 0.486694214786
+ 0.487150009863
+ 0.487606053844
+ 0.488062346767
+ 0.48851888867
+ 0.488975679593
+ 0.489432719575
+ 0.489890008653
+ 0.490347546868
+ 0.490805334257
+ 0.49126337086
+ 0.491721656715
+ 0.492180191862
+ 0.492638976337
+ 0.493098010182
+ 0.493557293433
+ 0.49401682613
+ 0.494476608312
+ 0.494936640017
+ 0.495396921284
+ 0.495857452151
+ 0.496318232658
+ 0.496779262842
+ 0.497240542743
+ 0.497702072399
+ 0.498163851849
+ 0.498625881131
+ 0.499088160284
+ 0.499550689347
+ 0.500013468358
+ 0.500476497356
+ 0.500939776379
+ 0.501403305466
+ 0.501867084655
+ 0.502331113985
+ 0.502795393495
+ 0.503259923222
+ 0.503724703206
+ 0.504189733486
+ 0.504655014098
+ 0.505120545083
+ 0.505586326478
+ 0.506052358322
+ 0.506518640654
+ 0.506985173511
+ 0.507451956933
+ 0.507918990957
+ 0.508386275623
+ 0.508853810968
+ 0.509321597032
+ 0.509789633851
+ 0.510257921466
+ 0.510726459913
+ 0.511195249232
+ 0.511664289461
+ 0.512133580639
+ 0.512603122803
+ 0.513072915991
+ 0.513542960243
+ 0.514013255597
+ 0.514483802091
+ 0.514954599763
+ 0.515425648651
+ 0.515896948794
+ 0.51636850023
+ 0.516840302998
+ 0.517312357135
+ 0.51778466268
+ 0.518257219671
+ 0.518730028146
+ 0.519203088144
+ 0.519676399702
+ 0.52014996286
+ 0.520623777654
+ 0.521097844124
+ 0.521572162308
+ 0.522046732243
+ 0.522521553968
+ 0.522996627522
+ 0.523471952941
+ 0.523947530264
+ 0.52442335953
+ 0.524899440777
+ 0.525375774042
+ 0.525852359364
+ 0.526329196781
+ 0.526806286331
+ 0.527283628051
+ 0.527761221981
+ 0.528239068158
+ 0.52871716662
+ 0.529195517406
+ 0.529674120552
+ 0.530152976098
+ 0.530632084081
+ 0.53111144454
+ 0.531591057512
+ 0.532070923035
+ 0.532551041148
+ 0.533031411887
+ 0.533512035292
+ 0.5339929114
+ 0.53447404025
+ 0.534955421878
+ 0.535437056323
+ 0.535918943623
+ 0.536401083817
+ 0.53688347694
+ 0.537366123033
+ 0.537849022132
+ 0.538332174275
+ 0.538815579501
+ 0.539299237846
+ 0.53978314935
+ 0.54026731405
+ 0.540751731983
+ 0.541236403188
+ 0.541721327702
+ 0.542206505563
+ 0.542691936809
+ 0.543177621478
+ 0.543663559608
+ 0.544149751235
+ 0.544636196399
+ 0.545122895137
+ 0.545609847486
+ 0.546097053484
+ 0.54658451317
+ 0.54707222658
+ 0.547560193753
+ 0.548048414726
+ 0.548536889537
+ 0.549025618223
+ 0.549514600823
+ 0.550003837374
+ 0.550493327913
+ 0.550983072479
+ 0.551473071109
+ 0.55196332384
+ 0.552453830711
+ 0.552944591758
+ 0.55343560702
+ 0.553926876534
+ 0.554418400337
+ 0.554910178468
+ 0.555402210964
+ 0.555894497862
+ 0.5563870392
+ 0.556879835016
+ 0.557372885347
+ 0.557866190231
+ 0.558359749704
+ 0.558853563806
+ 0.559347632573
+ 0.559841956042
+ 0.560336534252
+ 0.560831367239
+ 0.561326455042
+ 0.561821797697
+ 0.562317395243
+ 0.562813247716
+ 0.563309355154
+ 0.563805717595
+ 0.564302335076
+ 0.564799207634
+ 0.565296335307
+ 0.565793718133
+ 0.566291356147
+ 0.566789249389
+ 0.567287397896
+ 0.567785801704
+ 0.568284460851
+ 0.568783375375
+ 0.569282545312
+ 0.569781970701
+ 0.570281651579
+ 0.570781587982
+ 0.571281779949
+ 0.571782227516
+ 0.572282930721
+ 0.572783889601
+ 0.573285104193
+ 0.573786574535
+ 0.574288300664
+ 0.574790282617
+ 0.575292520432
+ 0.575795014146
+ 0.576297763795
+ 0.576800769418
+ 0.577304031051
+ 0.577807548731
+ 0.578311322497
+ 0.578815352385
+ 0.579319638431
+ 0.579824180675
+ 0.580328979151
+ 0.580834033899
+ 0.581339344954
+ 0.581844912355
+ 0.582350736138
+ 0.58285681634
+ 0.583363152998
+ 0.58386974615
+ 0.584376595833
+ 0.584883702084
+ 0.585391064939
+ 0.585898684437
+ 0.586406560613
+ 0.586914693506
+ 0.587423083152
+ 0.587931729588
+ 0.588440632851
+ 0.588949792979
+ 0.589459210008
+ 0.589968883975
+ 0.590478814918
+ 0.590989002873
+ 0.591499447878
+ 0.592010149968
+ 0.592521109183
+ 0.593032325557
+ 0.593543799129
+ 0.594055529935
+ 0.594567518013
+ 0.595079763398
+ 0.595592266129
+ 0.596105026241
+ 0.596618043773
+ 0.59713131876
+ 0.59764485124
+ 0.59815864125
+ 0.598672688826
+ 0.599186994006
+ 0.599701556825
+ 0.600216377322
+ 0.600731455533
+ 0.601246791495
+ 0.601762385244
+ 0.602278236818
+ 0.602794346254
+ 0.603310713587
+ 0.603827338855
+ 0.604344222095
+ 0.604861363344
+ 0.605378762638
+ 0.605896420014
+ 0.606414335509
+ 0.606932509159
+ 0.607450941002
+ 0.607969631074
+ 0.608488579412
+ 0.609007786052
+ 0.609527251032
+ 0.610046974388
+ 0.610566956156
+ 0.611087196374
+ 0.611607695078
+ 0.612128452304
+ 0.612649468091
+ 0.613170742473
+ 0.613692275488
+ 0.614214067172
+ 0.614736117563
+ 0.615258426696
+ 0.615780994609
+ 0.616303821338
+ 0.616826906919
+ 0.617350251389
+ 0.617873854785
+ 0.618397717144
+ 0.618921838501
+ 0.619446218894
+ 0.619970858359
+ 0.620495756933
+ 0.621020914651
+ 0.621546331552
+ 0.622072007671
+ 0.622597943044
+ 0.623124137709
+ 0.623650591702
+ 0.624177305059
+ 0.624704277817
+ 0.625231510012
+ 0.625759001681
+ 0.62628675286
+ 0.626814763586
+ 0.627343033895
+ 0.627871563823
+ 0.628400353408
+ 0.628929402685
+ 0.629458711692
+ 0.629988280463
+ 0.630518109036
+ 0.631048197448
+ 0.631578545734
+ 0.632109153931
+ 0.632640022075
+ 0.633171150203
+ 0.633702538351
+ 0.634234186555
+ 0.634766094852
+ 0.635298263279
+ 0.63583069187
+ 0.636363380664
+ 0.636896329695
+ 0.637429539001
+ 0.637963008618
+ 0.638496738582
+ 0.639030728929
+ 0.639564979695
+ 0.640099490918
+ 0.640634262632
+ 0.641169294875
+ 0.641704587683
+ 0.642240141091
+ 0.642775955137
+ 0.643312029856
+ 0.643848365284
+ 0.644384961458
+ 0.644921818414
+ 0.645458936189
+ 0.645996314818
+ 0.646533954337
+ 0.647071854783
+ 0.647610016192
+ 0.648148438599
+ 0.648687122043
+ 0.649226066557
+ 0.649765272179
+ 0.650304738945
+ 0.65084446689
+ 0.651384456051
+ 0.651924706464
+ 0.652465218165
+ 0.653005991191
+ 0.653547025576
+ 0.654088321358
+ 0.654629878573
+ 0.655171697255
+ 0.655713777443
+ 0.656256119171
+ 0.656798722475
+ 0.657341587392
+ 0.657884713958
+ 0.658428102208
+ 0.65897175218
+ 0.659515663907
+ 0.660059837428
+ 0.660604272777
+ 0.661148969991
+ 0.661693929106
+ 0.662239150157
+ 0.66278463318
+ 0.663330378213
+ 0.663876385289
+ 0.664422654446
+ 0.66496918572
+ 0.665515979145
+ 0.666063034759
+ 0.666610352597
+ 0.667157932695
+ 0.667705775089
+ 0.668253879814
+ 0.668802246907
+ 0.669350876404
+ 0.66989976834
+ 0.670448922751
+ 0.670998339673
+ 0.671548019143
+ 0.672097961194
+ 0.672648165865
+ 0.67319863319
+ 0.673749363205
+ 0.674300355946
+ 0.674851611449
+ 0.675403129749
+ 0.675954910883
+ 0.676506954886
+ 0.677059261794
+ 0.677611831643
+ 0.678164664468
+ 0.678717760305
+ 0.67927111919
+ 0.679824741159
+ 0.680378626247
+ 0.68093277449
+ 0.681487185924
+ 0.682041860585
+ 0.682596798508
+ 0.683151999728
+ 0.683707464283
+ 0.684263192206
+ 0.684819183534
+ 0.685375438303
+ 0.685931956549
+ 0.686488738306
+ 0.68704578361
+ 0.687603092498
+ 0.688160665004
+ 0.688718501165
+ 0.689276601016
+ 0.689834964592
+ 0.69039359193
+ 0.690952483064
+ 0.691511638031
+ 0.692071056865
+ 0.692630739603
+ 0.693190686281
+ 0.693750896932
+ 0.694311371594
+ 0.694872110301
+ 0.69543311309
+ 0.695994379996
+ 0.696555911053
+ 0.697117706299
+ 0.697679765767
+ 0.698242089495
+ 0.698804677516
+ 0.699367529867
+ 0.699930646584
+ 0.700494027701
+ 0.701057673254
+ 0.701621583279
+ 0.702185757811
+ 0.702750196885
+ 0.703314900537
+ 0.703879868802
+ 0.704445101716
+ 0.705010599314
+ 0.705576361632
+ 0.706142388705
+ 0.706708680567
+ 0.707275237256
+ 0.707842058805
+ 0.708409145251
+ 0.708976496629
+ 0.709544112974
+ 0.710111994321
+ 0.710680140706
+ 0.711248552164
+ 0.711817228731
+ 0.712386170441
+ 0.712955377331
+ 0.713524849435
+ 0.714094586788
+ 0.714664589427
+ 0.715234857385
+ 0.7158053907
+ 0.716376189405
+ 0.716947253536
+ 0.717518583128
+ 0.718090178217
+ 0.718662038838
+ 0.719234165025
+ 0.719806556815
+ 0.720379214243
+ 0.720952137343
+ 0.72152532615
+ 0.722098780701
+ 0.722672501031
+ 0.723246487173
+ 0.723820739164
+ 0.724395257039
+ 0.724970040833
+ 0.725545090581
+ 0.726120406319
+ 0.72669598808
+ 0.727271835902
+ 0.727847949817
+ 0.728424329863
+ 0.729000976073
+ 0.729577888484
+ 0.730155067129
+ 0.730732512045
+ 0.731310223266
+ 0.731888200827
+ 0.732466444764
+ 0.733044955111
+ 0.733623731904
+ 0.734202775177
+ 0.734782084966
+ 0.735361661306
+ 0.735941504231
+ 0.736521613777
+ 0.737101989979
+ 0.737682632871
+ 0.738263542489
+ 0.738844718868
+ 0.739426162043
+ 0.740007872048
+ 0.740589848919
+ 0.741172092691
+ 0.741754603398
+ 0.742337381076
+ 0.742920425759
+ 0.743503737483
+ 0.744087316282
+ 0.744671162192
+ 0.745255275246
+ 0.745839655481
+ 0.746424302931
+ 0.747009217631
+ 0.747594399616
+ 0.74817984892
+ 0.748765565579
+ 0.749351549628
+ 0.749937801101
+ 0.750524320033
+ 0.751111106459
+ 0.751698160414
+ 0.752285481933
+ 0.75287307105
+ 0.753460927801
+ 0.75404905222
+ 0.754637444342
+ 0.755226104201
+ 0.755815031834
+ 0.756404227274
+ 0.756993690556
+ 0.757583421715
+ 0.758173420785
+ 0.758763687802
+ 0.759354222801
+ 0.759945025815
+ 0.760536096881
+ 0.761127436031
+ 0.761719043302
+ 0.762310918728
+ 0.762903062344
+ 0.763495474184
+ 0.764088154283
+ 0.764681102675
+ 0.765274319397
+ 0.765867804481
+ 0.766461557963
+ 0.767055579878
+ 0.76764987026
+ 0.768244429143
+ 0.768839256563
+ 0.769434352554
+ 0.770029717151
+ 0.770625350388
+ 0.7712212523
+ 0.771817422922
+ 0.772413862288
+ 0.773010570433
+ 0.773607547391
+ 0.774204793197
+ 0.774802307886
+ 0.775400091492
+ 0.775998144049
+ 0.776596465593
+ 0.777195056158
+ 0.777793915778
+ 0.778393044488
+ 0.778992442322
+ 0.779592109316
+ 0.780192045503
+ 0.780792250918
+ 0.781392725595
+ 0.781993469569
+ 0.782594482875
+ 0.783195765547
+ 0.78379731762
+ 0.784399139127
+ 0.785001230104
+ 0.785603590585
+ 0.786206220604
+ 0.786809120196
+ 0.787412289396
+ 0.788015728237
+ 0.788619436754
+ 0.789223414981
+ 0.789827662954
+ 0.790432180706
+ 0.791036968271
+ 0.791642025685
+ 0.792247352982
+ 0.792852950195
+ 0.793458817359
+ 0.79406495451
+ 0.79467136168
+ 0.795278038905
+ 0.795884986218
+ 0.796492203655
+ 0.797099691249
+ 0.797707449035
+ 0.798315477047
+ 0.798923775319
+ 0.799532343886
+ 0.800141182782
+ 0.800750292042
+ 0.801359671699
+ 0.801969321788
+ 0.802579242343
+ 0.803189433398
+ 0.803799894988
+ 0.804410627148
+ 0.80502162991
+ 0.80563290331
+ 0.806244447382
+ 0.806856262159
+ 0.807468347677
+ 0.808080703969
+ 0.80869333107
+ 0.809306229013
+ 0.809919397834
+ 0.810532837566
+ 0.811146548243
+ 0.8117605299
+ 0.81237478257
+ 0.812989306288
+ 0.813604101089
+ 0.814219167006
+ 0.814834504073
+ 0.815450112324
+ 0.816065991795
+ 0.816682142518
+ 0.817298564528
+ 0.817915257859
+ 0.818532222545
+ 0.81914945862
+ 0.819766966119
+ 0.820384745075
+ 0.821002795523
+ 0.821621117496
+ 0.822239711029
+ 0.822858576156
+ 0.82347771291
+ 0.824097121327
+ 0.824716801439
+ 0.825336753281
+ 0.825956976887
+ 0.826577472291
+ 0.827198239527
+ 0.82781927863
+ 0.828440589632
+ 0.829062172568
+ 0.829684027472
+ 0.830306154379
+ 0.830928553321
+ 0.831551224333
+ 0.832174167449
+ 0.832797382703
+ 0.833420870129
+ 0.834044629761
+ 0.834668661633
+ 0.835292965778
+ 0.835917542231
+ 0.836542391025
+ 0.837167512195
+ 0.837792905774
+ 0.838418571797
+ 0.839044510296
+ 0.839670721307
+ 0.840297204863
+ 0.840923960998
+ 0.841550989745
+ 0.842178291139
+ 0.842805865213
+ 0.843433712002
+ 0.844061831539
+ 0.844690223858
+ 0.845318888993
+ 0.845947826977
+ 0.846577037845
+ 0.84720652163
+ 0.847836278366
+ 0.848466308088
+ 0.849096610828
+ 0.84972718662
+ 0.850358035499
+ 0.850989157498
+ 0.851620552651
+ 0.852252220991
+ 0.852884162553
+ 0.85351637737
+ 0.854148865475
+ 0.854781626904
+ 0.855414661689
+ 0.856047969864
+ 0.856681551462
+ 0.857315406519
+ 0.857949535066
+ 0.858583937139
+ 0.85921861277
+ 0.859853561993
+ 0.860488784843
+ 0.861124281352
+ 0.861760051555
+ 0.862396095484
+ 0.863032413175
+ 0.86366900466
+ 0.864305869972
+ 0.864943009147
+ 0.865580422217
+ 0.866218109215
+ 0.866856070177
+ 0.867494305134
+ 0.868132814121
+ 0.868771597172
+ 0.869410654319
+ 0.870049985598
+ 0.87068959104
+ 0.87132947068
+ 0.871969624552
+ 0.872610052688
+ 0.873250755123
+ 0.87389173189
+ 0.874532983022
+ 0.875174508554
+ 0.875816308518
+ 0.876458382948
+ 0.877100731878
+ 0.877743355342
+ 0.878386253372
+ 0.879029426002
+ 0.879672873266
+ 0.880316595197
+ 0.880960591829
+ 0.881604863195
+ 0.882249409329
+ 0.882894230264
+ 0.883539326034
+ 0.884184696672
+ 0.884830342211
+ 0.885476262686
+ 0.886122458128
+ 0.886768928573
+ 0.887415674053
+ 0.888062694601
+ 0.888709990252
+ 0.889357561038
+ 0.890005406994
+ 0.890653528151
+ 0.891301924544
+ 0.891950596207
+ 0.892599543171
+ 0.893248765472
+ 0.893898263142
+ 0.894548036215
+ 0.895198084723
+ 0.895848408701
+ 0.896499008181
+ 0.897149883198
+ 0.897801033783
+ 0.898452459971
+ 0.899104161796
+ 0.899756139289
+ 0.900408392485
+ 0.901060921417
+ 0.901713726118
+ 0.902366806622
+ 0.903020162961
+ 0.903673795169
+ 0.90432770328
+ 0.904981887326
+ 0.905636347341
+ 0.906291083358
+ 0.90694609541
+ 0.907601383531
+ 0.908256947753
+ 0.908912788111
+ 0.909568904637
+ 0.910225297364
+ 0.910881966326
+ 0.911538911555
+ 0.912196133086
+ 0.912853630951
+ 0.913511405184
+ 0.914169455817
+ 0.914827782883
+ 0.915486386417
+ 0.916145266451
+ 0.916804423018
+ 0.917463856152
+ 0.918123565885
+ 0.918783552251
+ 0.919443815283
+ 0.920104355013
+ 0.920765171476
+ 0.921426264704
+ 0.92208763473
+ 0.922749281588
+ 0.92341120531
+ 0.92407340593
+ 0.92473588348
+ 0.925398637995
+ 0.926061669506
+ 0.926724978047
+ 0.927388563651
+ 0.928052426351
+ 0.92871656618
+ 0.929380983171
+ 0.930045677357
+ 0.930710648772
+ 0.931375897448
+ 0.932041423418
+ 0.932707226715
+ 0.933373307372
+ 0.934039665423
+ 0.9347063009
+ 0.935373213836
+ 0.936040404265
+ 0.936707872218
+ 0.93737561773
+ 0.938043640833
+ 0.93871194156
+ 0.939380519944
+ 0.940049376018
+ 0.940718509816
+ 0.941387921369
+ 0.94205761071
+ 0.942727577874
+ 0.943397822892
+ 0.944068345798
+ 0.944739146624
+ 0.945410225404
+ 0.94608158217
+ 0.946753216955
+ 0.947425129793
+ 0.948097320715
+ 0.948769789755
+ 0.949442536946
+ 0.95011556232
+ 0.950788865911
+ 0.951462447751
+ 0.952136307873
+ 0.95281044631
+ 0.953484863095
+ 0.95415955826
+ 0.954834531839
+ 0.955509783864
+ 0.956185314368
+ 0.956861123384
+ 0.957537210945
+ 0.958213577083
+ 0.958890221831
+ 0.959567145223
+ 0.96024434729
+ 0.960921828065
+ 0.961599587582
+ 0.962277625873
+ 0.962955942971
+ 0.963634538909
+ 0.964313413718
+ 0.964992567433
+ 0.965672000086
+ 0.966351711709
+ 0.967031702335
+ 0.967711971997
+ 0.968392520728
+ 0.96907334856
+ 0.969754455527
+ 0.970435841659
+ 0.971117506992
+ 0.971799451556
+ 0.972481675385
+ 0.973164178512
+ 0.973846960968
+ 0.974530022788
+ 0.975213364002
+ 0.975896984645
+ 0.976580884748
+ 0.977265064345
+ 0.977949523468
+ 0.978634262149
+ 0.979319280421
+ 0.980004578317
+ 0.980690155869
+ 0.98137601311
+ 0.982062150073
+ 0.98274856679
+ 0.983435263294
+ 0.984122239617
+ 0.984809495791
+ 0.985497031851
+ 0.986184847827
+ 0.986872943752
+ 0.98756131966
+ 0.988249975582
+ 0.988938911552
+ 0.989628127601
+ 0.990317623762
+ 0.991007400068
+ 0.991697456552
+ 0.992387793245
+ 0.99307841018
+ 0.99376930739
+ 0.994460484907
+ 0.995151942764
+ 0.995843680993
+ 0.996535699626
+ 0.997227998697
+ 0.997920578237
+ 0.998613438279
+ 0.999306578856
+ 1.0
+ 1.00069370174
+ 1.00138768412
+ 1.00208194716
+ 1.00277649089
+ 1.00347131536
+ 1.00416642058
+ 1.0048618066
+ 1.00555747345
+ 1.00625342116
+ 1.00694964975
+ 1.00764615927
+ 1.00834294975
+ 1.00904002121
+ 1.00973737369
+ 1.01043500723
+ 1.01113292185
+ 1.01183111759
+ 1.01252959448
+ 1.01322835255
+ 1.01392739184
+ 1.01462671237
+ 1.01532631419
+ 1.01602619731
+ 1.01672636178
+ 1.01742680762
+ 1.01812753488
+ 1.01882854357
+ 1.01952983374
+ 1.02023140541
+ 1.02093325862
+ 1.0216353934
+ 1.02233780978
+ 1.0230405078
+ 1.02374348748
+ 1.02444674886
+ 1.02515029198
+ 1.02585411685
+ 1.02655822353
+ 1.02726261203
+ 1.02796728239
+ 1.02867223464
+ 1.02937746881
+ 1.03008298495
+ 1.03078878307
+ 1.03149486321
+ 1.03220122541
+ 1.03290786969
+ 1.03361479609
+ 1.03432200464
+ 1.03502949538
+ 1.03573726832
+ 1.03644532351
+ 1.03715366099
+ 1.03786228077
+ 1.03857118289
+ 1.03928036739
+ 1.0399898343
+ 1.04069958364
+ 1.04140961546
+ 1.04211992978
+ 1.04283052663
+ 1.04354140606
+ 1.04425256808
+ 1.04496401273
+ 1.04567574005
+ 1.04638775006
+ 1.04710004281
+ 1.04781261831
+ 1.0485254766
+ 1.04923861772
+ 1.04995204169
+ 1.05066574856
+ 1.05137973834
+ 1.05209401108
+ 1.0528085668
+ 1.05352340553
+ 1.05423852732
+ 1.05495393218
+ 1.05566962016
+ 1.05638559128
+ 1.05710184558
+ 1.05781838308
+ 1.05853520383
+ 1.05925230785
+ 1.05996969517
+ 1.06068736583
+ 1.06140531986
+ 1.06212355729
+ 1.06284207815
+ 1.06356088248
+ 1.0642799703
+ 1.06499934165
+ 1.06571899655
+ 1.06643893505
+ 1.06715915718
+ 1.06787966296
+ 1.06860045243
+ 1.06932152561
+ 1.07004288255
+ 1.07076452328
+ 1.07148644781
+ 1.0722086562
+ 1.07293114846
+ 1.07365392463
+ 1.07437698475
+ 1.07510032884
+ 1.07582395694
+ 1.07654786908
+ 1.07727206528
+ 1.07799654559
+ 1.07872131003
+ 1.07944635864
+ 1.08017169145
+ 1.08089730848
+ 1.08162320978
+ 1.08234939536
+ 1.08307586528
+ 1.08380261955
+ 1.08452965821
+ 1.08525698128
+ 1.08598458881
+ 1.08671248083
+ 1.08744065736
+ 1.08816911843
+ 1.08889786409
+ 1.08962689435
+ 1.09035620926
+ 1.09108580884
+ 1.09181569313
+ 1.09254586216
+ 1.09327631595
+ 1.09400705455
+ 1.09473807798
+ 1.09546938627
+ 1.09620097946
+ 1.09693285758
+ 1.09766502066
+ 1.09839746872
+ 1.09913020182
+ 1.09986321996
+ 1.1005965232
+ 1.10133011155
+ 1.10206398505
+ 1.10279814373
+ 1.10353258762
+ 1.10426731676
+ 1.10500233118
+ 1.1057376309
+ 1.10647321597
+ 1.1072090864
+ 1.10794524224
+ 1.10868168351
+ 1.10941841025
+ 1.11015542248
+ 1.11089272025
+ 1.11163030357
+ 1.11236817249
+ 1.11310632704
+ 1.11384476723
+ 1.11458349312
+ 1.11532250472
+ 1.11606180208
+ 1.11680138521
+ 1.11754125416
+ 1.11828140896
+ 1.11902184963
+ 1.11976257621
+ 1.12050358873
+ 1.12124488722
+ 1.12198647171
+ 1.12272834223
+ 1.12347049883
+ 1.12421294152
+ 1.12495567034
+ 1.12569868531
+ 1.12644198648
+ 1.12718557388
+ 1.12792944753
+ 1.12867360746
+ 1.12941805371
+ 1.13016278631
+ 1.13090780529
+ 1.13165311069
+ 1.13239870252
+ 1.13314458084
+ 1.13389074565
+ 1.13463719701
+ 1.13538393494
+ 1.13613095946
+ 1.13687827062
+ 1.13762586844
+ 1.13837375296
+ 1.1391219242
+ 1.1398703822
+ 1.14061912699
+ 1.1413681586
+ 1.14211747706
+ 1.1428670824
+ 1.14361697466
+ 1.14436715387
+ 1.14511762005
+ 1.14586837324
+ 1.14661941347
+ 1.14737074078
+ 1.14812235518
+ 1.14887425672
+ 1.14962644542
+ 1.15037892133
+ 1.15113168446
+ 1.15188473484
+ 1.15263807252
+ 1.15339169753
+ 1.15414560988
+ 1.15489980962
+ 1.15565429677
+ 1.15640907138
+ 1.15716413346
+ 1.15791948305
+ 1.15867512018
+ 1.15943104488
+ 1.16018725719
+ 1.16094375713
+ 1.16170054474
+ 1.16245762004
+ 1.16321498308
+ 1.16397263387
+ 1.16473057246
+ 1.16548879886
+ 1.16624731312
+ 1.16700611527
+ 1.16776520533
+ 1.16852458333
+ 1.16928424932
+ 1.17004420331
+ 1.17080444535
+ 1.17156497546
+ 1.17232579367
+ 1.17308690001
+ 1.17384829452
+ 1.17460997723
+ 1.17537194816
+ 1.17613420735
+ 1.17689675484
+ 1.17765959064
+ 1.17842271479
+ 1.17918612733
+ 1.17994982829
+ 1.18071381769
+ 1.18147809556
+ 1.18224266195
+ 1.18300751687
+ 1.18377266036
+ 1.18453809246
+ 1.18530381318
+ 1.18606982257
+ 1.18683612066
+ 1.18760270746
+ 1.18836958303
+ 1.18913674738
+ 1.18990420056
+ 1.19067194258
+ 1.19143997348
+ 1.1922082933
+ 1.19297690205
+ 1.19374579979
+ 1.19451498652
+ 1.19528446229
+ 1.19605422713
+ 1.19682428107
+ 1.19759462414
+ 1.19836525637
+ 1.19913617778
+ 1.19990738842
+ 1.20067888832
+ 1.20145067749
+ 1.20222275598
+ 1.20299512382
+ 1.20376778104
+ 1.20454072766
+ 1.20531396372
+ 1.20608748925
+ 1.20686130429
+ 1.20763540885
+ 1.20840980298
+ 1.2091844867
+ 1.20995946004
+ 1.21073472304
+ 1.21151027573
+ 1.21228611814
+ 1.21306225029
+ 1.21383867222
+ 1.21461538396
+ 1.21539238555
+ 1.216169677
+ 1.21694725836
+ 1.21772512965
+ 1.21850329091
+ 1.21928174216
+ 1.22006048344
+ 1.22083951477
+ 1.22161883619
+ 1.22239844774
+ 1.22317834943
+ 1.2239585413
+ 1.22473902338
+ 1.22551979571
+ 1.22630085831
+ 1.22708221121
+ 1.22786385445
+ 1.22864578805
+ 1.22942801205
+ 1.23021052647
+ 1.23099333136
+ 1.23177642673
+ 1.23255981262
+ 1.23334348906
+ 1.23412745609
+ 1.23491171372
+ 1.235696262
+ 1.23648110095
+ 1.23726623061
+ 1.238051651
+ 1.23883736216
+ 1.23962336411
+ 1.24040965689
+ 1.24119624053
+ 1.24198311505
+ 1.2427702805
+ 1.2435577369
+ 1.24434548427
+ 1.24513352266
+ 1.24592185209
+ 1.24671047259
+ 1.2474993842
+ 1.24828858694
+ 1.24907808085
+ 1.24986786595
+ 1.25065794228
+ 1.25144830986
+ 1.25223896874
+ 1.25302991893
+ 1.25382116047
+ 1.25461269339
+ 1.25540451772
+ 1.25619663349
+ 1.25698904073
+ 1.25778173948
+ 1.25857472976
+ 1.2593680116
+ 1.26016158504
+ 1.2609554501
+ 1.26174960681
+ 1.26254405521
+ 1.26333879533
+ 1.2641338272
+ 1.26492915084
+ 1.26572476629
+ 1.26652067358
+ 1.26731687274
+ 1.26811336381
+ 1.2689101468
+ 1.26970722175
+ 1.27050458869
+ 1.27130224766
+ 1.27210019868
+ 1.27289844178
+ 1.273696977
+ 1.27449580436
+ 1.27529492389
+ 1.27609433563
+ 1.27689403961
+ 1.27769403586
+ 1.2784943244
+ 1.27929490527
+ 1.28009577849
+ 1.28089694411
+ 1.28169840214
+ 1.28250015263
+ 1.28330219559
+ 1.28410453107
+ 1.28490715908
+ 1.28571007967
+ 1.28651329286
+ 1.28731679868
+ 1.28812059716
+ 1.28892468834
+ 1.28972907224
+ 1.2905337489
+ 1.29133871834
+ 1.29214398059
+ 1.29294953569
+ 1.29375538367
+ 1.29456152455
+ 1.29536795837
+ 1.29617468516
+ 1.29698170494
+ 1.29778901775
+ 1.29859662362
+ 1.29940452258
+ 1.30021271466
+ 1.30102119989
+ 1.3018299783
+ 1.30263904991
+ 1.30344841477
+ 1.3042580729
+ 1.30506802433
+ 1.30587826909
+ 1.30668880721
+ 1.30749963873
+ 1.30831076367
+}
diff --git a/release/datafiles/colormanagement/luts/srgb_to_xyz.spimtx b/release/datafiles/colormanagement/luts/srgb_to_xyz.spimtx
new file mode 100644
index 00000000000..decaa0e9f91
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/srgb_to_xyz.spimtx
@@ -0,0 +1,3 @@
+0.4124564 0.3575761 0.1804375 0
+0.2126729 0.7151522 0.0721750 0
+0.0193339 0.1191920 0.9503041 0
diff --git a/release/datafiles/colormanagement/luts/vd16.spi1d b/release/datafiles/colormanagement/luts/vd16.spi1d
new file mode 100644
index 00000000000..50ea9e964c0
--- /dev/null
+++ b/release/datafiles/colormanagement/luts/vd16.spi1d
@@ -0,0 +1,131079 @@
+Version 1
+From 0.0 1.0
+Length 131073
+Components 1
+{
+ 0.0000000000000000000
+ 0.0037965930661236582
+ 0.0038008543326060414
+ 0.0038051021418722768
+ 0.0038093365935017651
+ 0.0038135577855092292
+ 0.0038177658143781611
+ 0.0038219607750932479
+ 0.0038261427611719274
+ 0.0038303118646951582
+ 0.003834468176337303
+ 0.0038386117853952315
+ 0.0038427427798166758
+ 0.0038468612462278224
+ 0.0038509672699601864
+ 0.0038550609350767608
+ 0.0038591423243975616
+ 0.003863211519524427
+ 0.0038672686008652366
+ 0.0038713136476575183
+ 0.0038753467379914457
+ 0.0038793679488322206
+ 0.0038833773560419979
+ 0.0038873750344011137
+ 0.003891361057628951
+ 0.0038953354984041831
+ 0.0038992984283845516
+ 0.0039032499182261957
+ 0.0039071900376024512
+ 0.0039111188552222592
+ 0.0039150364388480735
+ 0.0039189428553134346
+ 0.0039228381705400219
+ 0.0039267224495543561
+ 0.003930595756504114
+ 0.0039344581546740731
+ 0.0039383097065016368
+ 0.003942150473592059
+ 0.0039459805167332621
+ 0.0039497998959103905
+ 0.0039536086703199531
+ 0.0039574068983837044
+ 0.0039611946377622106
+ 0.0039649719453680298
+ 0.0039687388773787585
+ 0.0039724954892496013
+ 0.0039762418357258264
+ 0.0039799779708548401
+ 0.003983703947998048
+ 0.003987419819842449
+ 0.0039911256384119473
+ 0.0039948214550785104
+ 0.0039985083419848471
+ 0.0040021887876768424
+ 0.0040058629345717418
+ 0.0040095308257328934
+ 0.0040131925037228443
+ 0.0040168480106115359
+ 0.0040204973879842815
+ 0.0040241406769495752
+ 0.0040277779181467962
+ 0.0040314091517537169
+ 0.0040350344174938189
+ 0.00403865375464356
+ 0.0040422672020393631
+ 0.0040458747980846137
+ 0.0040494765807563664
+ 0.004053072587612022
+ 0.0040566628557958525
+ 0.00406024742204534
+ 0.004063826322697469
+ 0.0040673995936948235
+ 0.0040709672705916515
+ 0.0040745293885596839
+ 0.0040780859823939903
+ 0.0040816370865186021
+ 0.0040851827349920634
+ 0.0040887229615129304
+ 0.0040922577994250723
+ 0.0040957872817229376
+ 0.0040993114410567003
+ 0.0041028303097373113
+ 0.0041063439197414507
+ 0.0041098523027163856
+ 0.0041133554899847446
+ 0.0041168535125492116
+ 0.0041203464010971073
+ 0.0041238341860049032
+ 0.0041273168973426757
+ 0.0041307945648784159
+ 0.0041342672180823235
+ 0.0041377348861309947
+ 0.0041411975979115372
+ 0.0041446553820256226
+ 0.0041481082667934399
+ 0.0041515562802576077
+ 0.0041549994501869966
+ 0.0041584378040805036
+ 0.0041618713691707427
+ 0.0041653001724276696
+ 0.00416872424056216
+ 0.004172143600029511
+ 0.0041755582770328873
+ 0.0041789682975267107
+ 0.0041823736872199898
+ 0.0041857744715795737
+ 0.0041891706758333891
+ 0.0041925623249735701
+ 0.0041959494437596246
+ 0.0041993320567214115
+ 0.0042027101881621969
+ 0.0042060838621615854
+ 0.0042094531025784337
+ 0.0042128179330536922
+ 0.0042161783770132324
+ 0.004219534457670579
+ 0.0042228861980296547
+ 0.0042262336208874346
+ 0.0042295767488365853
+ 0.0042329156042680361
+ 0.0042362502093735224
+ 0.0042395805861481072
+ 0.0042429067563926207
+ 0.0042462287417160943
+ 0.0042495465635381448
+ 0.0042528602430912986
+ 0.0042561698014233268
+ 0.0042594752593995222
+ 0.0042627766377048943
+ 0.0042660739568463986
+ 0.0042693672371551207
+ 0.0042726564987883584
+ 0.0042759417617317767
+ 0.0042792230458014169
+ 0.0042825003706457943
+ 0.004285773755747852
+ 0.0042890432204269529
+ 0.0042923087838408151
+ 0.0042955704649874438
+ 0.004298828282706996
+ 0.0043020822556836431
+ 0.004305332402447389
+ 0.0043085787413758882
+ 0.0043118212906961993
+ 0.0043150600684865592
+ 0.0043182950926780629
+ 0.0043215263810564035
+ 0.0043247539512635018
+ 0.0043279778207991719
+ 0.0043311980070227657
+ 0.0043344145271547131
+ 0.0043376273982781389
+ 0.0043408366373404155
+ 0.0043440422611546649
+ 0.0043472442864012908
+ 0.0043504427296294475
+ 0.0043536376072585052
+ 0.0043568289355795098
+ 0.0043600167307565781
+ 0.0043632010088283267
+ 0.0043663817857092363
+ 0.004369559077191003
+ 0.0043727328989439252
+ 0.0043759032665181786
+ 0.0043790701953451607
+ 0.004382233700738738
+ 0.0043853937978965652
+ 0.0043885505019013006
+ 0.0043917038277218445
+ 0.004394853790214568
+ 0.0043980004041245134
+ 0.004401143684086577
+ 0.0044042836446266777
+ 0.0044074203001628915
+ 0.004410553665006616
+ 0.0044136837533636829
+ 0.0044168105793354661
+ 0.0044199341569199514
+ 0.0044230545000128315
+ 0.0044261716224085852
+ 0.0044292855378014907
+ 0.0044323962597866912
+ 0.0044355038018611794
+ 0.0044386081774248458
+ 0.0044417093997814287
+ 0.0044448074821395542
+ 0.004447902437613639
+ 0.0044509942792248756
+ 0.0044540830199021886
+ 0.0044571686724831387
+ 0.0044602512497148583
+ 0.0044633307642549481
+ 0.0044664072286723835
+ 0.0044694806554483827
+ 0.0044725510569772848
+ 0.0044756184455674291
+ 0.0044786828334419659
+ 0.00448174423273974
+ 0.0044848026555160733
+ 0.0044878581137436195
+ 0.0044909106193131649
+ 0.004493960184034417
+ 0.0044970068196367799
+ 0.0045000505377701715
+ 0.0045030913500057387
+ 0.0045061292678366749
+ 0.0045091643026789136
+ 0.0045121964658719049
+ 0.0045152257686793384
+ 0.0045182522222898414
+ 0.0045212758378177283
+ 0.0045242966263036944
+ 0.0045273145987154793
+ 0.0045303297659486028
+ 0.0045333421388270108
+ 0.0045363517281037519
+ 0.0045393585444616549
+ 0.0045423625985139523
+ 0.0045453639008049673
+ 0.0045483624618107288
+ 0.0045513582919395881
+ 0.0045543514015328789
+ 0.0045573418008655123
+ 0.0045603295001465753
+ 0.0045633145095199685
+ 0.0045662968390649521
+ 0.0045692764987967944
+ 0.004572253498667289
+ 0.0045752278485653632
+ 0.0045781995583176584
+ 0.0045811686376890509
+ 0.004584135096383243
+ 0.0045870989440432936
+ 0.0045900601902521673
+ 0.0045930188445332558
+ 0.0045959749163509188
+ 0.0045989284151110163
+ 0.0046018793501613952
+ 0.0046048277307924506
+ 0.0046077735662375637
+ 0.0046107168656736612
+ 0.0046136576382216936
+ 0.0046165958929471002
+ 0.0046195316388603158
+ 0.0046224648849172425
+ 0.0046253956400197135
+ 0.0046283239130159894
+ 0.004631249712701172
+ 0.00463417304781771
+ 0.0046370939270558176
+ 0.0046400123590539218
+ 0.0046429283523991361
+ 0.0046458419156276669
+ 0.0046487530572252413
+ 0.0046516617856275661
+ 0.0046545681092207145
+ 0.0046574720363415792
+ 0.004660373575278258
+ 0.0046632727342704643
+ 0.0046661695215099623
+ 0.0046690639451409249
+ 0.0046719560132603647
+ 0.0046748457339184984
+ 0.0046777331151191598
+ 0.0046806181648201611
+ 0.0046835008909336794
+ 0.0046863813013266467
+ 0.0046892594038210932
+ 0.0046921352061945424
+ 0.0046950087161803603
+ 0.0046978799414681026
+ 0.0047007488897038976
+ 0.0047036155684907878
+ 0.0047064799853890754
+ 0.0047093421479166616
+ 0.0047122020635493866
+ 0.0047150597397213907
+ 0.0047179151838254293
+ 0.0047207684032131887
+ 0.0047236194051956662
+ 0.0047264681970434147
+ 0.0047293147859869449
+ 0.0047321591792169951
+ 0.004735001383884844
+ 0.0047378414071026376
+ 0.0047406792559437057
+ 0.004743514937442829
+ 0.0047463484585965965
+ 0.0047491798263636373
+ 0.0047520090476649837
+ 0.0047548361293843072
+ 0.0047576610783682258
+ 0.0047604839014266341
+ 0.0047633046053329117
+ 0.004766123196824258
+ 0.0047689396826019487
+ 0.0047717540693316268
+ 0.0047745663636435511
+ 0.0047773765721328869
+ 0.0047801847013599665
+ 0.0047829907578505549
+ 0.0047857947480961088
+ 0.0047885966785540333
+ 0.0047913965556479546
+ 0.0047941943857679548
+ 0.0047969901752708353
+ 0.0047997839304803587
+ 0.0048025756576875033
+ 0.0048053653631507202
+ 0.0048081530530961281
+ 0.0048109387337178129
+ 0.0048137224111780277
+ 0.0048165040916074413
+ 0.0048192837811053746
+ 0.0048220614857400028
+ 0.0048248372115486313
+ 0.0048276109645378944
+ 0.0048303827506839675
+ 0.0048331525759328269
+ 0.0048359204462004339
+ 0.0048386863673729654
+ 0.0048414503453070344
+ 0.0048442123858299171
+ 0.0048469724947397255
+ 0.0048497306778056545
+ 0.0048524869407681739
+ 0.0048552412893392311
+ 0.0048579937292024785
+ 0.0048607442660134389
+ 0.0048634929053997392
+ 0.0048662396529612862
+ 0.0048689845142704784
+ 0.0048717274948723976
+ 0.0048744686002849934
+ 0.0048772078359992851
+ 0.0048799452074795449
+ 0.0048826807201634969
+ 0.0048854143794624773
+ 0.0048881461907616499
+ 0.0048908761594201773
+ 0.0048936042907713872
+ 0.0048963305901229756
+ 0.0048990550627571712
+ 0.0049017777139309139
+ 0.004904498548876029
+ 0.0049072175727993992
+ 0.0049099347908831475
+ 0.0049126502082847915
+ 0.004915363830137417
+ 0.0049180756615498531
+ 0.0049207857076068347
+ 0.0049234939733691519
+ 0.0049262004638738269
+ 0.0049289051841342833
+ 0.0049316081391404861
+ 0.0049343093338591135
+ 0.0049370087732337068
+ 0.0049397064621848358
+ 0.0049424024056102332
+ 0.0049450966083849739
+ 0.0049477890753616173
+ 0.004950479811370331
+ 0.0049531688212190901
+ 0.0049558561096937764
+ 0.0049585416815583682
+ 0.0049612255415550409
+ 0.00496390769440435
+ 0.004966588144805344
+ 0.0049692668974357221
+ 0.004971943956951985
+ 0.0049746193279895544
+ 0.004977293015162902
+ 0.0049799650230657223
+ 0.0049826353562710275
+ 0.0049853040193313276
+ 0.0049879710167787085
+ 0.004990636353125022
+ 0.0049933000328619623
+ 0.0049959620604612337
+ 0.0049986224403746685
+ 0.0050012811770343618
+ 0.0050039382748527728
+ 0.0050065937382228771
+ 0.0050092475715182837
+ 0.005011899779093356
+ 0.0050145503652833422
+ 0.0050171993344044737
+ 0.005019846690754109
+ 0.0050224924386108602
+ 0.0050251365822346784
+ 0.0050277791258670004
+ 0.0050304200737308598
+ 0.0050330594300309868
+ 0.0050356971989539475
+ 0.0050383333846682216
+ 0.0050409679913243667
+ 0.0050436010230550951
+ 0.0050462324839753809
+ 0.0050488623781825793
+ 0.00505149070975655
+ 0.0050541174827597509
+ 0.0050567427012373376
+ 0.0050593663692172957
+ 0.0050619884907105121
+ 0.005064609069710917
+ 0.0050672281101955706
+ 0.0050698456161247353
+ 0.0050724615914420476
+ 0.0050750760400745613
+ 0.0050776889659328549
+ 0.0050803003729111744
+ 0.0050829102648874917
+ 0.0050855186457235994
+ 0.0050881255192652278
+ 0.005090730889342158
+ 0.0050933347597682688
+ 0.0050959371343416741
+ 0.0050985380168448021
+ 0.0051011374110444983
+ 0.0051037353206920856
+ 0.0051063317495235183
+ 0.0051089267012594175
+ 0.005111520179605175
+ 0.0051141121882510637
+ 0.0051167027308723157
+ 0.0051192918111292018
+ 0.0051218794326671306
+ 0.0051244655991167405
+ 0.0051270503140939715
+ 0.0051296335812001572
+ 0.0051322154040221247
+ 0.0051347957861322575
+ 0.0051373747310885865
+ 0.0051399522424348939
+ 0.0051425283237007575
+ 0.0051451029784016682
+ 0.0051476762100390967
+ 0.0051502480221005753
+ 0.0051528184180597734
+ 0.0051553874013765865
+ 0.0051579549754972188
+ 0.005160521143854257
+ 0.005163085909866731
+ 0.0051656492769402134
+ 0.0051682112484669048
+ 0.0051707718278256659
+ 0.0051733310183821549
+ 0.0051758888234888561
+ 0.005178445246485165
+ 0.0051810002906974781
+ 0.0051835539594392369
+ 0.005186106256011039
+ 0.0051886571837006885
+ 0.0051912067457832627
+ 0.005193754945521184
+ 0.005196301786164312
+ 0.0051988472709499946
+ 0.0052013914031031495
+ 0.0052039341858363094
+ 0.0052064756223497276
+ 0.0052090157158314193
+ 0.0052115544694572346
+ 0.0052140918863909378
+ 0.0052166279697842544
+ 0.0052191627227769627
+ 0.0052216961484969375
+ 0.0052242282500602
+ 0.0052267590305710666
+ 0.005229288493122086
+ 0.0052318166407942174
+ 0.0052343434766568258
+ 0.0052368690037677681
+ 0.0052393932251734608
+ 0.0052419161439089257
+ 0.0052444377629978804
+ 0.0052469580854527633
+ 0.0052494771142748099
+ 0.0052519948524541284
+ 0.0052545113029697421
+ 0.0052570264687896526
+ 0.005259540352870914
+ 0.0052620529581596399
+ 0.0052645642875911456
+ 0.0052670743440899354
+ 0.0052695831305697889
+ 0.0052720906499338039
+ 0.0052745969050744974
+ 0.0052771018988737994
+ 0.0052796056342031437
+ 0.005282108113923518
+ 0.0052846093408855229
+ 0.0052871093179294127
+ 0.0052896080478851771
+ 0.0052921055335725638
+ 0.0052946017778011606
+ 0.0052970967833704131
+ 0.005299590553069714
+ 0.0053020830896784469
+ 0.0053045743959660189
+ 0.0053070644746919336
+ 0.0053095533286058264
+ 0.0053120409604475363
+ 0.0053145273729471466
+ 0.0053170125688250169
+ 0.0053194965507918747
+ 0.0053219793215488172
+ 0.0053244608837873988
+ 0.0053269412401896667
+ 0.0053294203934281942
+ 0.0053318983461661633
+ 0.0053343751010573757
+ 0.0053368506607463359
+ 0.0053393250278682561
+ 0.0053417982050491634
+ 0.0053442701949058874
+ 0.005346741000046131
+ 0.0053492106230685265
+ 0.005351679066562671
+ 0.0053541463331091702
+ 0.0053566124252796875
+ 0.0053590773456369794
+ 0.0053615410967349682
+ 0.0053640036811187491
+ 0.00536646510132467
+ 0.0053689253598803435
+ 0.0053713844593047105
+ 0.0053738424021080745
+ 0.0053762991907921453
+ 0.0053787548278501039
+ 0.0053812093157666009
+ 0.0053836626570178455
+ 0.0053861148540716068
+ 0.0053885659093872804
+ 0.0053910158254159343
+ 0.0053934646046003209
+ 0.0053959122493749479
+ 0.0053983587621661104
+ 0.0054008041453919133
+ 0.0054032484014623419
+ 0.0054056915327792684
+ 0.0054081335417365305
+ 0.0054105744307199324
+ 0.0054130142021073012
+ 0.0054154528582685312
+ 0.005417890401565627
+ 0.005420326834352702
+ 0.0054227621589760661
+ 0.005425196377774234
+ 0.0054276294930779897
+ 0.0054300615072103804
+ 0.0054324924224868013
+ 0.0054349222412149872
+ 0.0054373509656950947
+ 0.0054397785982197048
+ 0.0054422051410738604
+ 0.0054446305965351414
+ 0.0054470549668736434
+ 0.0054494782543520548
+ 0.0054519004612256592
+ 0.0054543215897424249
+ 0.0054567416421429683
+ 0.0054591606206606568
+ 0.0054615785275215758
+ 0.0054639953649446293
+ 0.0054664111351415256
+ 0.005468825840316837
+ 0.0054712394826680159
+ 0.0054736520643854465
+ 0.0054760635876524542
+ 0.0054784740546453626
+ 0.0054808834675335255
+ 0.0054832918284793307
+ 0.0054856991396382577
+ 0.0054881054031589169
+ 0.0054905106211830534
+ 0.0054929147958455984
+ 0.0054953179292747028
+ 0.0054977200235917442
+ 0.0055001210809113984
+ 0.0055025211033416415
+ 0.0055049200929837777
+ 0.0055073180519324824
+ 0.0055097149822758394
+ 0.0055121108860953522
+ 0.0055145057654659877
+ 0.0055168996224561982
+ 0.0055192924591279556
+ 0.005521684277536785
+ 0.0055240750797317783
+ 0.0055264648677556408
+ 0.0055288536436447202
+ 0.0055312414094290134
+ 0.0055336281671322287
+ 0.0055360139187717681
+ 0.0055383986663588196
+ 0.0055407824118983203
+ 0.0055431651573890359
+ 0.0055455469048235392
+ 0.0055479276561882949
+ 0.005550307413463621
+ 0.0055526861786238009
+ 0.0055550639536370034
+ 0.0055574407404654184
+ 0.0055598165410652078
+ 0.0055621913573865546
+ 0.005564565191373709
+ 0.0055669380449649896
+ 0.0055693099200928142
+ 0.0055716808186837344
+ 0.0055740507426584552
+ 0.0055764196939318668
+ 0.0055787876744130705
+ 0.0055811546860053771
+ 0.0055835207306063799
+ 0.0055858858101079404
+ 0.0055882499263962453
+ 0.0055906130813517842
+ 0.0055929752768494375
+ 0.0055953365147584384
+ 0.005597696796942454
+ 0.0056000561252595501
+ 0.0056024145015622752
+ 0.0056047719276976519
+ 0.0056071284055071949
+ 0.0056094839368269452
+ 0.0056118385234875138
+ 0.0056141921673140598
+ 0.0056165448701263583
+ 0.0056188966337388027
+ 0.0056212474599604137
+ 0.0056235973505949031
+ 0.0056259463074406499
+ 0.0056282943322907572
+ 0.0056306414269330692
+ 0.0056329875931501608
+ 0.0056353328327194219
+ 0.0056376771474130165
+ 0.0056400205389979478
+ 0.0056423630092360573
+ 0.0056447045598840527
+ 0.0056470451926935381
+ 0.0056493849094110312
+ 0.0056517237117779699
+ 0.005654061601530749
+ 0.0056563985804007431
+ 0.0056587346501143186
+ 0.0056610698123928721
+ 0.0056634040689528212
+ 0.0056657374215056495
+ 0.0056680698717579171
+ 0.0056704014214112889
+ 0.0056727320721625491
+ 0.0056750618257036256
+ 0.0056773906837215959
+ 0.005679718647898728
+ 0.0056820457199124978
+ 0.0056843719014355787
+ 0.0056866971941359071
+ 0.0056890215996766797
+ 0.0056913451197163553
+ 0.0056936677559087032
+ 0.0056959895099028173
+ 0.0056983103833431192
+ 0.0057006303778693954
+ 0.0057029494951168066
+ 0.005705267736715894
+ 0.005707585104292639
+ 0.00570990159946844
+ 0.0057122172238601452
+ 0.0057145319790800802
+ 0.0057168458667360535
+ 0.0057191588884313799
+ 0.005721471045764902
+ 0.0057237823403310127
+ 0.0057260927737196468
+ 0.0057284023475163261
+ 0.0057307110633021841
+ 0.0057330189226539475
+ 0.0057353259271439904
+ 0.0057376320783403345
+ 0.0057399373778066459
+ 0.005742241827102308
+ 0.0057445454277823844
+ 0.0057468481813976839
+ 0.0057491500894947083
+ 0.005751451153615755
+ 0.0057537513752988663
+ 0.0057560507560778709
+ 0.0057583492974824305
+ 0.0057606470010379829
+ 0.0057629438682658459
+ 0.0057652399006831436
+ 0.0057675350998029279
+ 0.0057698294671340829
+ 0.0057721230041814292
+ 0.0057744157124456829
+ 0.0057767075934235185
+ 0.0057789986486075388
+ 0.0057812888794863283
+ 0.0057835782875444476
+ 0.0057858668742624495
+ 0.0057881546411169106
+ 0.005790441589580436
+ 0.0057927277211216625
+ 0.0057950130372053038
+ 0.0057972975392921386
+ 0.0057995812288390344
+ 0.0058018641072989756
+ 0.0058041461761210679
+ 0.0058064274367505232
+ 0.0058087078906287459
+ 0.0058109875391932691
+ 0.0058132663838778489
+ 0.0058155444261123969
+ 0.0058178216673230448
+ 0.0058200981089321585
+ 0.0058223737523583454
+ 0.0058246485990164389
+ 0.0058269226503175784
+ 0.0058291959076691565
+ 0.0058314683724748732
+ 0.0058337400461347371
+ 0.0058360109300450817
+ 0.0058382810255985735
+ 0.0058405503341842383
+ 0.0058428188571874691
+ 0.005845086595990031
+ 0.0058473535519700864
+ 0.005849619726502199
+ 0.0058518851209573702
+ 0.0058541497367030149
+ 0.0058564135751030082
+ 0.005858676637517682
+ 0.0058609389253038453
+ 0.0058632004398147973
+ 0.0058654611824003229
+ 0.0058677211544067333
+ 0.0058699803571768726
+ 0.0058722387920501044
+ 0.005874496460362374
+ 0.0058767533634461631
+ 0.0058790095026305389
+ 0.0058812648792411753
+ 0.0058835194946003392
+ 0.0058857733500269089
+ 0.0058880264468364005
+ 0.0058902787863409686
+ 0.0058925303698494158
+ 0.0058947811986672146
+ 0.005897031274096529
+ 0.0058992805974361958
+ 0.0059015291699817509
+ 0.0059037769930254625
+ 0.005906024067856324
+ 0.0059082703957600482
+ 0.00591051597801913
+ 0.00591276081591279
+ 0.0059150049107170562
+ 0.0059172482637047247
+ 0.0059194908761453884
+ 0.0059217327493054769
+ 0.0059239738844481986
+ 0.0059262142828336297
+ 0.0059284539457186702
+ 0.0059306928743570828
+ 0.0059329310699995069
+ 0.0059351685338934436
+ 0.0059374052672832916
+ 0.0059396412714103558
+ 0.0059418765475128489
+ 0.0059441110968258982
+ 0.005946344920581585
+ 0.0059485780200089168
+ 0.0059508103963338511
+ 0.0059530420507793516
+ 0.0059552729845653192
+ 0.0059575031989086719
+ 0.0059597326950232973
+ 0.0059619614741201173
+ 0.005964189537407071
+ 0.0059664168860891252
+ 0.0059686435213682906
+ 0.0059708694444436166
+ 0.0059730946565112446
+ 0.0059753191587643617
+ 0.0059775429523932578
+ 0.0059797660385853026
+ 0.0059819884185249748
+ 0.0059842100933938779
+ 0.0059864310643707262
+ 0.0059886513326313732
+ 0.0059908708993488191
+ 0.0059930897656932129
+ 0.0059953079328318778
+ 0.0059975254019293076
+ 0.0059997421741471791
+ 0.0060019582506443602
+ 0.0060041736325769333
+ 0.0060063883210981824
+ 0.0060086023173586281
+ 0.0060108156225060147
+ 0.0060130282376853394
+ 0.0060152401640388275
+ 0.0060174514027059945
+ 0.0060196619548236185
+ 0.0060218718215257552
+ 0.0060240810039437539
+ 0.006026289503206249
+ 0.0060284973204392089
+ 0.0060307044567659077
+ 0.0060329109133069386
+ 0.0060351166911802442
+ 0.0060373217915011016
+ 0.0060395262153821669
+ 0.0060417299639334244
+ 0.0060439330382622541
+ 0.0060461354394734206
+ 0.0060483371686690579
+ 0.0060505382269487214
+ 0.0060527386154093738
+ 0.0060549383351453795
+ 0.0060571373872485394
+ 0.0060593357728080917
+ 0.0060615334929107105
+ 0.0060637305486405235
+ 0.0060659269410791245
+ 0.0060681226713055767
+ 0.0060703177403964035
+ 0.0060725121494256589
+ 0.0060747058994648304
+ 0.0060768989915829675
+ 0.0060790914268465798
+ 0.006081283206319745
+ 0.0060834743310640279
+ 0.0060856648021385554
+ 0.0060878546205999926
+ 0.0060900437875025621
+ 0.0060922323038980252
+ 0.0060944201708357506
+ 0.0060966073893626441
+ 0.0060987939605232295
+ 0.006100979885359608
+ 0.0061031651649114827
+ 0.006105349800216181
+ 0.0061075337923086155
+ 0.0061097171422213664
+ 0.0061118998509846062
+ 0.0061140819196261837
+ 0.0061162633491715626
+ 0.006118444140643893
+ 0.006120624295063974
+ 0.0061228038134502833
+ 0.0061249826968189629
+ 0.0061271609461838574
+ 0.0061293385625565099
+ 0.0061315155469461469
+ 0.0061336919003597183
+ 0.0061358676238018961
+ 0.0061380427182750564
+ 0.0061402171847793289
+ 0.0061423910243125733
+ 0.0061445642378703969
+ 0.0061467368264461648
+ 0.0061489087910309888
+ 0.0061510801326137687
+ 0.0061532508521811727
+ 0.0061554209507176504
+ 0.0061575904292054482
+ 0.0061597592886246007
+ 0.0061619275299529428
+ 0.0061640951541661422
+ 0.0061662621622376708
+ 0.0061684285551388256
+ 0.0061705943338387368
+ 0.0061727594993043712
+ 0.0061749240525005604
+ 0.0061770879943899753
+ 0.0061792513259331392
+ 0.0061814140480884582
+ 0.0061835761618122004
+ 0.0061857376680585193
+ 0.0061878985677794665
+ 0.0061900588619249698
+ 0.0061922185514428647
+ 0.0061943776372789033
+ 0.0061965361203767336
+ 0.0061986940016779497
+ 0.0062008512821220456
+ 0.0062030079626464712
+ 0.0062051640441866032
+ 0.0062073195276757739
+ 0.0062094744140452586
+ 0.0062116287042243076
+ 0.0062137823991401308
+ 0.0062159354997178961
+ 0.0062180880068807764
+ 0.00622023992154991
+ 0.0062223912446444417
+ 0.0062245419770815052
+ 0.0062266921197762391
+ 0.0062288416736417948
+ 0.0062309906395893325
+ 0.0062331390185280623
+ 0.0062352868113651899
+ 0.0062374340190059687
+ 0.006239580642353703
+ 0.0062417266823097247
+ 0.0062438721397734395
+ 0.0062460170156423073
+ 0.0062481613108118523
+ 0.0062503050261756496
+ 0.0062524481626253974
+ 0.0062545907210508275
+ 0.0062567327023397993
+ 0.0062588741073782445
+ 0.0062610149370502096
+ 0.0062631551922378388
+ 0.0062652948738213957
+ 0.0062674339826792472
+ 0.006269572519687917
+ 0.0062717104857220214
+ 0.006273847881654338
+ 0.0062759847083557795
+ 0.0062781209666953998
+ 0.0062802566575404055
+ 0.0062823917817561728
+ 0.0062845263402062307
+ 0.0062866603337522848
+ 0.0062887937632542185
+ 0.0062909266295700728
+ 0.0062930589335561159
+ 0.006295190676066772
+ 0.0062973218579546672
+ 0.0062994524800706582
+ 0.0063015825432637751
+ 0.0063037120483812863
+ 0.0063058409962686648
+ 0.0063079693877696064
+ 0.0063100972237260522
+ 0.0063122245049781617
+ 0.0063143512323643475
+ 0.0063164774067212531
+ 0.0063186030288837937
+ 0.006320728099685125
+ 0.0063228526199566541
+ 0.0063249765905280825
+ 0.0063271000122273654
+ 0.006329222885880734
+ 0.0063313452123127095
+ 0.0063334669923460936
+ 0.0063355882268019874
+ 0.0063377089164997702
+ 0.0063398290622571551
+ 0.0063419486648901378
+ 0.0063440677252130286
+ 0.006346186244038478
+ 0.0063483042221774187
+ 0.0063504216604391428
+ 0.0063525385596312619
+ 0.0063546549205597373
+ 0.0063567707440288553
+ 0.0063588860308412543
+ 0.0063610007817979201
+ 0.0063631149976982266
+ 0.0063652286793398566
+ 0.0063673418275189035
+ 0.0063694544430298048
+ 0.0063715665266653879
+ 0.0063736780792168568
+ 0.0063757891014738039
+ 0.0063778995942242005
+ 0.0063800095582544269
+ 0.0063821189943492453
+ 0.0063842279032918477
+ 0.0063863362858638181
+ 0.0063884441428451464
+ 0.0063905514750142558
+ 0.0063926582831479763
+ 0.0063947645680215845
+ 0.0063968703304087817
+ 0.0063989755710816953
+ 0.0064010802908108936
+ 0.0064031844903654055
+ 0.006405288170512698
+ 0.0064073913320186965
+ 0.0064094939756477818
+ 0.0064115961021627985
+ 0.0064136977123250595
+ 0.0064157988068943494
+ 0.0064178993866289289
+ 0.0064199994522855363
+ 0.0064220990046194035
+ 0.006424198044384241
+ 0.0064262965723322577
+ 0.0064283945892141536
+ 0.0064304920957791575
+ 0.0064325890927749681
+ 0.0064346855809478062
+ 0.0064367815610424364
+ 0.0064388770338020887
+ 0.0064409719999685639
+ 0.0064430664602821699
+ 0.0064451604154817498
+ 0.006447253866304673
+ 0.0064493468134868698
+ 0.0064514392577627883
+ 0.0064535311998654542
+ 0.0064556226405264212
+ 0.0064577135804758075
+ 0.0064598040204422958
+ 0.0064618939611531282
+ 0.0064639834033341139
+ 0.0064660723477096517
+ 0.0064681607950026797
+ 0.0064702487459347632
+ 0.0064723362012260102
+ 0.0064744231615951487
+ 0.0064765096277594782
+ 0.0064785956004349042
+ 0.0064806810803359283
+ 0.0064827660681756726
+ 0.0064848505646658353
+ 0.0064869345705167551
+ 0.0064890180864373712
+ 0.0064911011131352486
+ 0.0064931836513165819
+ 0.0064952657016861754
+ 0.0064973472649474708
+ 0.0064994283418025609
+ 0.0065015089329521544
+ 0.0065035890390956223
+ 0.0065056686609309671
+ 0.0065077477991548494
+ 0.0065098264544625733
+ 0.006511904627548107
+ 0.0065139823191040927
+ 0.0065160595298218108
+ 0.006518136260391231
+ 0.0065202125115009814
+ 0.0065222882838383836
+ 0.0065243635780894123
+ 0.0065264383949387491
+ 0.0065285127350697631
+ 0.0065305865991644755
+ 0.006532659987903657
+ 0.0065347329019667336
+ 0.0065368053420318505
+ 0.0065388773087758523
+ 0.0065409488028742814
+ 0.0065430198250014098
+ 0.0065450903758302254
+ 0.0065471604560324165
+ 0.0065492300662784043
+ 0.006551299207237328
+ 0.0065533678795770692
+ 0.0065554360839642231
+ 0.0065575038210641395
+ 0.0065595710915409009
+ 0.0065616378960573259
+ 0.0065637042352749714
+ 0.0065657701098541747
+ 0.0065678355204539848
+ 0.0065699004677322462
+ 0.0065719649523455371
+ 0.0065740289749491952
+ 0.0065760925361973465
+ 0.0065781556367428707
+ 0.0065802182772374202
+ 0.0065822804583314286
+ 0.0065843421806741007
+ 0.0065864034449134336
+ 0.0065884642516962069
+ 0.0065905246016679745
+ 0.0065925844954731047
+ 0.0065946439337547487
+ 0.0065967029171548567
+ 0.0065987614463141903
+ 0.0066008195218722971
+ 0.0066028771444675474
+ 0.0066049343147371233
+ 0.0066069910333170032
+ 0.0066090473008420091
+ 0.0066111031179457644
+ 0.0066131584852607214
+ 0.0066152134034181617
+ 0.0066172678730481889
+ 0.0066193218947797599
+ 0.0066213754692406365
+ 0.0066234285970574406
+ 0.0066254812788556381
+ 0.0066275335152595222
+ 0.0066295853068922576
+ 0.0066316366543758432
+ 0.006633687558331134
+ 0.0066357380193778452
+ 0.006637788038134554
+ 0.0066398376152186989
+ 0.0066418867512465819
+ 0.0066439354468333751
+ 0.0066459837025931298
+ 0.0066480315191387584
+ 0.0066500788970820651
+ 0.0066521258370337236
+ 0.0066541723396033019
+ 0.0066562184053992448
+ 0.0066582640350288909
+ 0.006660309229098476
+ 0.0066623539882131148
+ 0.0066643983129768417
+ 0.0066664422039925848
+ 0.0066684856618621554
+ 0.0066705286871863046
+ 0.0066725712805646657
+ 0.0066746134425958092
+ 0.0066766551738771896
+ 0.0066786964750052066
+ 0.0066807373465751661
+ 0.0066827777891813088
+ 0.0066848178034167888
+ 0.0066868573898736872
+ 0.0066888965491430329
+ 0.0066909352818147741
+ 0.0066929735884778095
+ 0.0066950114697199616
+ 0.0066970489261280013
+ 0.0066990859582876545
+ 0.0067011225667835874
+ 0.0067031587521994155
+ 0.0067051945151176936
+ 0.0067072298561199721
+ 0.0067092647757867156
+ 0.0067112992746973781
+ 0.0067133333534303719
+ 0.0067153670125630598
+ 0.0067174002526717951
+ 0.0067194330743318917
+ 0.0067214654781176377
+ 0.006723497464602303
+ 0.0067255290343581301
+ 0.0067275601879563498
+ 0.0067295909259671707
+ 0.0067316212489597922
+ 0.0067336511575024193
+ 0.006735680652162207
+ 0.0067377097335053525
+ 0.0067397384020970201
+ 0.0067417666585013834
+ 0.006743794503281623
+ 0.0067458219369999082
+ 0.0067478489602174349
+ 0.0067498755734944011
+ 0.0067519017773900007
+ 0.0067539275724624722
+ 0.0067559529592690574
+ 0.0067579779383660056
+ 0.0067600025103086089
+ 0.0067620266756511704
+ 0.0067640504349470148
+ 0.0067660737887485214
+ 0.0067680967376070687
+ 0.0067701192820730895
+ 0.0067721414226960585
+ 0.0067741631600244604
+ 0.0067761844946058625
+ 0.0067782054269868355
+ 0.0067802259577130243
+ 0.0067822460873291062
+ 0.0067842658163788146
+ 0.0067862851454049307
+ 0.0067883040749493065
+ 0.0067903226055528428
+ 0.0067923407377554765
+ 0.0067943584720962531
+ 0.006796375809113249
+ 0.0067983927493436135
+ 0.0068004092933235732
+ 0.0068024254415884272
+ 0.0068044411946725329
+ 0.0068064565531093307
+ 0.0068084715174313521
+ 0.0068104860881701857
+ 0.0068125002658565347
+ 0.0068145140510201497
+ 0.0068165274441898977
+ 0.0068185404458937183
+ 0.0068205530566586578
+ 0.0068225652770108431
+ 0.0068245771074754887
+ 0.0068265885485769328
+ 0.0068285996008386127
+ 0.0068306102647830332
+ 0.0068326205409318342
+ 0.00683463042980576
+ 0.0068366399319246644
+ 0.0068386490478074954
+ 0.0068406577779723315
+ 0.0068426661229363675
+ 0.0068446740832159023
+ 0.0068466816593263707
+ 0.0068486888517823143
+ 0.0068506956610974038
+ 0.0068527020877844382
+ 0.0068547081323553551
+ 0.0068567137953212025
+ 0.0068587190771921616
+ 0.0068607239784775689
+ 0.0068627284996858832
+ 0.0068647326413246931
+ 0.0068667364039007462
+ 0.0068687397879199251
+ 0.0068707427938872476
+ 0.0068727454223069017
+ 0.0068747476736821991
+ 0.0068767495485156154
+ 0.0068787510473087765
+ 0.0068807521705624647
+ 0.0068827529187766162
+ 0.0068847532924503187
+ 0.0068867532920818446
+ 0.0068887529181686068
+ 0.0068907521712071968
+ 0.0068927510516933604
+ 0.0068947495601220125
+ 0.0068967476969872456
+ 0.0068987454627823363
+ 0.0069007428579997169
+ 0.0069027398831310021
+ 0.0069047365386669789
+ 0.0069067328250976261
+ 0.0069087287429121088
+ 0.0069107242925987517
+ 0.0069127194746451005
+ 0.0069147142895378613
+ 0.0069167087377629338
+ 0.0069187028198054177
+ 0.0069206965361496148
+ 0.0069226898872789943
+ 0.0069246828736762639
+ 0.0069266754958232793
+ 0.006928667754201148
+ 0.0069306596492901551
+ 0.0069326511815697876
+ 0.0069346423515187503
+ 0.0069366331596149447
+ 0.0069386236063355058
+ 0.0069406136921567512
+ 0.006942603417554232
+ 0.0069445927830027124
+ 0.0069465817889761737
+ 0.0069485704359478172
+ 0.0069505587243900548
+ 0.0069525466547745475
+ 0.0069545342275721556
+ 0.0069565214432529762
+ 0.0069585083022863379
+ 0.0069604948051407971
+ 0.0069624809522841344
+ 0.0069644667441833901
+ 0.0069664521813048016
+ 0.0069684372641138793
+ 0.0069704219930753633
+ 0.0069724063686532126
+ 0.0069743903913106605
+ 0.006976374061510162
+ 0.0069783573797134318
+ 0.0069803403463814286
+ 0.0069823229619743543
+ 0.0069843052269516707
+ 0.0069862871417720939
+ 0.0069882687068935903
+ 0.0069902499227733764
+ 0.0069922307898679509
+ 0.006994211308633029
+ 0.0069961914795236366
+ 0.0069981713029940319
+ 0.0070001507794977477
+ 0.0070021299094875878
+ 0.0070041086934156133
+ 0.0070060871317331542
+ 0.0070080652248908316
+ 0.0070100429733385228
+ 0.0070120203775253746
+ 0.0070139974378998372
+ 0.0070159741549096124
+ 0.0070179505290016977
+ 0.0070199265606223481
+ 0.0070219022502171326
+ 0.0070238775982309019
+ 0.0070258526051077685
+ 0.0070278272712911514
+ 0.0070298015972237457
+ 0.0070317755833475626
+ 0.0070337492301038888
+ 0.0070357225379332903
+ 0.0070376955072756599
+ 0.0070396681385701603
+ 0.0070416404322552889
+ 0.0070436123887688022
+ 0.0070455840085477837
+ 0.0070475552920286188
+ 0.0070495262396469815
+ 0.0070514968518378763
+ 0.0070534671290356085
+ 0.0070554370716737775
+ 0.0070574066801853156
+ 0.0070593759550024509
+ 0.0070613448965567462
+ 0.0070633135052790685
+ 0.0070652817815995937
+ 0.0070672497259478178
+ 0.0070692173387525876
+ 0.0070711846204420392
+ 0.0070731515714436309
+ 0.0070751181921841723
+ 0.0070770844830897904
+ 0.0070790504445859158
+ 0.0070810160770973457
+ 0.0070829813810481769
+ 0.0070849463568618647
+ 0.0070869110049611786
+ 0.0070888753257682307
+ 0.0070908393197044745
+ 0.0070928029871907012
+ 0.0070947663286470347
+ 0.0070967293444929476
+ 0.0070986920351472412
+ 0.0071006544010280845
+ 0.0071026164425529691
+ 0.0071045781601387506
+ 0.0071065395542016336
+ 0.0071085006251571468
+ 0.0071104613734202082
+ 0.0071124217994050576
+ 0.0071143819035253087
+ 0.0071163416861939133
+ 0.007118301147823196
+ 0.0071202602888248328
+ 0.0071222191096098628
+ 0.0071241776105886835
+ 0.0071261357921710514
+ 0.0071280936547660914
+ 0.0071300511987823049
+ 0.0071320084246275341
+ 0.0071339653327090018
+ 0.0071359219234333228
+ 0.0071378781972064407
+ 0.0071398341544337074
+ 0.007141789795519827
+ 0.0071437451208688817
+ 0.0071457001308843464
+ 0.007147654825969049
+ 0.0071496092065252131
+ 0.00715156327295444
+ 0.0071535170256577007
+ 0.0071554704650353676
+ 0.0071574235914871965
+ 0.0071593764054123099
+ 0.0071613289072092268
+ 0.0071632810972758658
+ 0.0071652329760095177
+ 0.0071671845438068789
+ 0.0071691358010640234
+ 0.0071710867481764289
+ 0.0071730373855389707
+ 0.0071749877135459158
+ 0.0071769377325909232
+ 0.007178887443067051
+ 0.0071808368453667648
+ 0.0071827859398819281
+ 0.0071847347270038112
+ 0.0071866832071230879
+ 0.0071886313806298228
+ 0.0071905792479135004
+ 0.0071925268093630127
+ 0.0071944740653666558
+ 0.0071964210163121354
+ 0.0071983676625865748
+ 0.0072003140045765017
+ 0.0072022600426678652
+ 0.0072042057772460288
+ 0.0072061512086957673
+ 0.0072080963374012742
+ 0.007210041163746162
+ 0.0072119856881134627
+ 0.0072139299108856404
+ 0.0072158738324445675
+ 0.0072178174531715485
+ 0.0072197607734473005
+ 0.0072217037936519839
+ 0.007223646514165182
+ 0.007225588935365893
+ 0.0072275310576325582
+ 0.0072294728813430487
+ 0.0072314144068746661
+ 0.0072333556346041439
+ 0.0072352965649076558
+ 0.007237237198160793
+ 0.0072391775347386148
+ 0.0072411175750155821
+ 0.0072430573193656284
+ 0.0072449967681621113
+ 0.0072469359217778367
+ 0.0072488747805850269
+ 0.0072508133449553881
+ 0.0072527516152600504
+ 0.0072546895918695915
+ 0.0072566272751540426
+ 0.0072585646654828671
+ 0.0072605017632249953
+ 0.0072624385687488054
+ 0.007264375082422129
+ 0.0072663113046122349
+ 0.007268247235685866
+ 0.0072701828760092079
+ 0.0072721182259479159
+ 0.0072740532858670852
+ 0.0072759880561312825
+ 0.0072779225371045319
+ 0.0072798567291503229
+ 0.0072817906326315884
+ 0.0072837242479107493
+ 0.0072856575753496647
+ 0.0072875906153096991
+ 0.0072895233681516299
+ 0.0072914558342357496
+ 0.0072933880139217939
+ 0.0072953199075689694
+ 0.0072972515155359709
+ 0.0072991828381809461
+ 0.0073011138758615228
+ 0.0073030446289348077
+ 0.0073049750977573682
+ 0.00730690528268527
+ 0.0073088351840740352
+ 0.0073107648022786706
+ 0.0073126941376536816
+ 0.0073146231905530145
+ 0.0073165519613301441
+ 0.0073184804503379861
+ 0.0073204086579289687
+ 0.0073223365844549875
+ 0.0073242642302674462
+ 0.0073261915957171962
+ 0.0073281186811546169
+ 0.007330045486929556
+ 0.0073319720133913557
+ 0.0073338982608888515
+ 0.0073358242297703654
+ 0.0073377499203837147
+ 0.0073396753330762215
+ 0.0073416004681946855
+ 0.0073435253260854165
+ 0.0073454499070942075
+ 0.0073473742115663723
+ 0.0073492982398466848
+ 0.0073512219922794702
+ 0.0073531454692085203
+ 0.0073550686709771334
+ 0.0073569915979281213
+ 0.007358914250403783
+ 0.0073608366287459519
+ 0.007362758733295941
+ 0.0073646805643945669
+ 0.0073666021223821911
+ 0.0073685234075986511
+ 0.0073704444203832944
+ 0.0073723651610750011
+ 0.0073742856300121418
+ 0.0073762058275326217
+ 0.007378125753973834
+ 0.007380045409672709
+ 0.0073819647949657013
+ 0.0073838839101887377
+ 0.0073858027556773127
+ 0.0073877213317664111
+ 0.0073896396387905482
+ 0.0073915576770837623
+ 0.0073934754469796036
+ 0.0073953929488111466
+ 0.0073973101829110021
+ 0.0073992271496112968
+ 0.0074011438492436769
+ 0.0074030602821393279
+ 0.0074049764486289549
+ 0.0074068923490427938
+ 0.0074088079837106137
+ 0.0074107233529616999
+ 0.007412638457124884
+ 0.0074145532965285248
+ 0.0074164678715005197
+ 0.0074183821823682831
+ 0.0074202962294587895
+ 0.0074222100130985173
+ 0.0074241235336135209
+ 0.007426036791329354
+ 0.0074279497865711343
+ 0.0074298625196635194
+ 0.0074317749909306877
+ 0.0074336872006963758
+ 0.0074355991492838502
+ 0.0074375108370159388
+ 0.0074394222642149939
+ 0.0074413334312029246
+ 0.0074432443383011864
+ 0.0074451549858307728
+ 0.0074470653741122231
+ 0.0074489755034656399
+ 0.0074508853742106728
+ 0.0074527949866665119
+ 0.0074547043411518936
+ 0.0074566134379851247
+ 0.0074585222774840544
+ 0.0074604308599660859
+ 0.0074623391857481774
+ 0.0074642472551468397
+ 0.0074661550684781454
+ 0.0074680626260577266
+ 0.0074699699282007722
+ 0.0074718769752220209
+ 0.0074737837674357672
+ 0.0074756903051559024
+ 0.0074775965886958321
+ 0.0074795026183685533
+ 0.0074814083944866189
+ 0.007483313917362149
+ 0.0074852191873068137
+ 0.0074871242046318709
+ 0.00748902896964813
+ 0.0074909334826659809
+ 0.007492837743995364
+ 0.0074947417539458026
+ 0.0074966455128263818
+ 0.0074985490209457592
+ 0.0075004522786121805
+ 0.0075023552861334343
+ 0.0075042580438169073
+ 0.0075061605519695426
+ 0.0075080628108978673
+ 0.0075099648209079927
+ 0.0075118665823055908
+ 0.0075137680953959096
+ 0.0075156693604837991
+ 0.0075175703778736528
+ 0.0075194711478694795
+ 0.0075213716707748504
+ 0.0075232719468929067
+ 0.0075251719765263968
+ 0.0075270717599776309
+ 0.0075289712975485281
+ 0.0075308705895405668
+ 0.0075327696362548196
+ 0.0075346684379919409
+ 0.0075365669950521862
+ 0.007538465307735393
+ 0.0075403633763409693
+ 0.0075422612011679432
+ 0.0075441587825149032
+ 0.0075460561206800534
+ 0.0075479532159611704
+ 0.0075498500686556327
+ 0.0075517466790604171
+ 0.0075536430474720806
+ 0.0075555391741867744
+ 0.0075574350595002783
+ 0.0075593307037079109
+ 0.0075612261071046471
+ 0.0075631212699850221
+ 0.0075650161926431748
+ 0.0075669108753728554
+ 0.0075688053184674066
+ 0.0075706995222197667
+ 0.0075725934869224935
+ 0.0075744872128677195
+ 0.0075763807003472123
+ 0.0075782739496523151
+ 0.007580166961073994
+ 0.0075820597349028126
+ 0.0075839522714289389
+ 0.0075858445709421473
+ 0.0075877366337318312
+ 0.0075896284600869895
+ 0.0075915200502962134
+ 0.0075934114046477064
+ 0.0075953025234293181
+ 0.0075971934069284687
+ 0.0075990840554321978
+ 0.0076009744692271735
+ 0.007602864648599667
+ 0.0076047545938355597
+ 0.0076066443052203491
+ 0.007608533783039168
+ 0.0076104230275767298
+ 0.0076123120391174024
+ 0.007614200817945142
+ 0.007616089364343534
+ 0.0076179776785957913
+ 0.007619865760984724
+ 0.0076217536117927911
+ 0.0076236412313020613
+ 0.0076255286197942137
+ 0.0076274157775505572
+ 0.0076293027048520441
+ 0.0076311894019792182
+ 0.0076330758692122599
+ 0.0076349621068309828
+ 0.0076368481151148282
+ 0.0076387338943428472
+ 0.0076406194447937387
+ 0.0076425047667458123
+ 0.0076443898604770183
+ 0.0076462747262649264
+ 0.0076481593643867489
+ 0.0076500437751193251
+ 0.0076519279587391196
+ 0.0076538119155222361
+ 0.0076556956457444003
+ 0.0076575791496809849
+ 0.0076594624276070042
+ 0.0076613454797970727
+ 0.0076632283065254728
+ 0.0076651109080661129
+ 0.0076669932846925503
+ 0.0076688754366779441
+ 0.0076707573642951429
+ 0.0076726390678165937
+ 0.0076745205475143947
+ 0.0076764018036602861
+ 0.0076782828365256567
+ 0.0076801636463815215
+ 0.0076820442334985589
+ 0.0076839245981470674
+ 0.007685804740596997
+ 0.0076876846611179574
+ 0.0076895643599791692
+ 0.0076914438374495455
+ 0.0076933230937975905
+ 0.0076952021292915045
+ 0.0076970809441991106
+ 0.0076989595387878772
+ 0.0077008379133249307
+ 0.0077027160680770597
+ 0.0077045940033106655
+ 0.007706471719291833
+ 0.0077083492162862855
+ 0.0077102264945594062
+ 0.0077121035543762156
+ 0.0077139803960014058
+ 0.0077158570196993069
+ 0.0077177334257339117
+ 0.0077196096143688671
+ 0.0077214855858674727
+ 0.0077233613404926972
+ 0.0077252368785071437
+ 0.0077271122001730955
+ 0.0077289873057524655
+ 0.0077308621955068683
+ 0.0077327368696975323
+ 0.0077346113285853757
+ 0.0077364855724309702
+ 0.0077383596014945358
+ 0.0077402334160359843
+ 0.007742107016314859
+ 0.007743980402590377
+ 0.0077458535751214214
+ 0.0077477265341665399
+ 0.0077495992799839434
+ 0.0077514718128315055
+ 0.0077533441329667675
+ 0.0077552162406469569
+ 0.0077570881361289255
+ 0.007758959819669225
+ 0.0077608312915240819
+ 0.0077627025519493645
+ 0.0077645736012006234
+ 0.00776644443953308
+ 0.0077683150672016336
+ 0.0077701854844608505
+ 0.0077720556915649485
+ 0.007773925688767858
+ 0.0077757954763231453
+ 0.0077776650544840731
+ 0.0077795344235035693
+ 0.0077814035836342417
+ 0.0077832725351283591
+ 0.0077851412782378795
+ 0.0077870098132144482
+ 0.0077888781403093674
+ 0.0077907462597736213
+ 0.0077926141718578723
+ 0.0077944818768124844
+ 0.0077963493748874528
+ 0.0077982166663324998
+ 0.007800083751397009
+ 0.0078019506303300427
+ 0.0078038173033803506
+ 0.0078056837707963581
+ 0.0078075500328261818
+ 0.0078094160897176166
+ 0.0078112819417181433
+ 0.0078131475890749272
+ 0.0078150130320348166
+ 0.0078168782708443463
+ 0.0078187433057497393
+ 0.0078206081369968893
+ 0.0078224727648314139
+ 0.0078243371894985893
+ 0.0078262014112433845
+ 0.0078280654303104526
+ 0.0078299292469441572
+ 0.0078317928613885323
+ 0.0078336562738873013
+ 0.0078355194846838946
+ 0.0078373824940214214
+ 0.0078392453021426962
+ 0.0078411079092901952
+ 0.0078429703157061378
+ 0.0078448325216323878
+ 0.0078466945273105385
+ 0.0078485563329818465
+ 0.0078504179388873014
+ 0.0078522793452675543
+ 0.0078541405523629704
+ 0.0078560015604136127
+ 0.0078578623696592409
+ 0.0078597229803393006
+ 0.0078615833926929442
+ 0.0078634436069590363
+ 0.0078653036233761117
+ 0.0078671634421824364
+ 0.0078690230636159555
+ 0.0078708824879143175
+ 0.0078727417153148915
+ 0.007874600746054736
+ 0.0078764595803705872
+ 0.0078783182184989243
+ 0.0078801766606759194
+ 0.0078820349071374377
+ 0.0078838929581190528
+ 0.0078857508138560541
+ 0.0078876084745834168
+ 0.0078894659405358367
+ 0.0078913232119477324
+ 0.007893180289053189
+ 0.0078950371720860248
+ 0.0078968938612797787
+ 0.0078987503568676599
+ 0.0079006066590826315
+ 0.0079024627681573267
+ 0.0079043186843241291
+ 0.007906174407815084
+ 0.0079080299388619973
+ 0.0079098852776963591
+ 0.0079117404245493735
+ 0.0079135953796519547
+ 0.0079154501432347479
+ 0.0079173047155280934
+ 0.0079191590967620622
+ 0.0079210132871664271
+ 0.007922867286970673
+ 0.0079247210964040107
+ 0.0079265747156953593
+ 0.0079284281450733747
+ 0.0079302813847664036
+ 0.0079321344350025223
+ 0.0079339872960095207
+ 0.0079358399680149131
+ 0.0079376924512459344
+ 0.0079395447459295332
+ 0.0079413968522923754
+ 0.0079432487705608547
+ 0.00794510050096108
+ 0.0079469520437188933
+ 0.0079488033990598467
+ 0.0079506545672092133
+ 0.0079525055483920058
+ 0.0079543563428329262
+ 0.0079562069507564392
+ 0.0079580573723867162
+ 0.007959907607947651
+ 0.0079617576576628667
+ 0.0079636075217557074
+ 0.0079654572004492479
+ 0.0079673066939662928
+ 0.0079691560025293619
+ 0.007971005126360722
+ 0.0079728540656823447
+ 0.0079747028207159554
+ 0.0079765513916829761
+ 0.0079783997788045926
+ 0.0079802479823016925
+ 0.0079820960023949117
+ 0.0079839438393046053
+ 0.0079857914932508767
+ 0.0079876389644535414
+ 0.0079894862531321616
+ 0.0079913333595060046
+ 0.007993180283794114
+ 0.0079950270262152331
+ 0.0079968735869878523
+ 0.0079987199663302064
+ 0.0080005661644602273
+ 0.0080024121815956192
+ 0.0080042580179538279
+ 0.0080061036737519818
+ 0.0080079491492070203
+ 0.0080097944445355531
+ 0.0080116395599539644
+ 0.0080134844956783642
+ 0.008015329251924613
+ 0.0080171738289082951
+ 0.0080190182268447281
+ 0.0080208624459489966
+ 0.008022706486435903
+ 0.0080245503485200029
+ 0.008026394032415585
+ 0.0080282375383366675
+ 0.0080300808664970271
+ 0.0080319240171101893
+ 0.0080337669903894123
+ 0.0080356097865476924
+ 0.0080374524057977587
+ 0.0080392948483521288
+ 0.0080411371144230165
+ 0.0080429792042223999
+ 0.0080448211179620054
+ 0.0080466628558533045
+ 0.0080485044181074928
+ 0.0080503458049355509
+ 0.0080521870165481853
+ 0.0080540280531558352
+ 0.0080558689149687144
+ 0.0080577096021967748
+ 0.0080595501150497011
+ 0.0080613904537369576
+ 0.0080632306184677278
+ 0.0080650706094509694
+ 0.008066910426895375
+ 0.0080687500710093923
+ 0.0080705895420012125
+ 0.0080724288400787925
+ 0.0080742679654498377
+ 0.0080761069183217897
+ 0.008077945698901863
+ 0.0080797843073970223
+ 0.0080816227440139617
+ 0.0080834610089591617
+ 0.0080852991024388428
+ 0.008087137024658974
+ 0.0080889747758252899
+ 0.0080908123561432878
+ 0.008092649765818187
+ 0.0080944870050549903
+ 0.0080963240740584697
+ 0.0080981609730331212
+ 0.0080999977021832051
+ 0.0081018342617127752
+ 0.0081036706518255956
+ 0.0081055068727252134
+ 0.008107342924614928
+ 0.008109178807697813
+ 0.0081110145221766766
+ 0.0081128500682541155
+ 0.0081146854461324556
+ 0.0081165206560138078
+ 0.0081183556981000316
+ 0.0081201905725927729
+ 0.0081220252796933897
+ 0.0081238598196030631
+ 0.0081256941925226898
+ 0.0081275283986529407
+ 0.0081293624381942719
+ 0.0081311963113468791
+ 0.0081330300183107291
+ 0.0081348635592855649
+ 0.0081366969344708832
+ 0.0081385301440659412
+ 0.0081403631882697829
+ 0.0081421960672811901
+ 0.0081440287812987351
+ 0.00814586133052074
+ 0.0081476937151453172
+ 0.0081495259353703241
+ 0.0081513579913933924
+ 0.0081531898834119217
+ 0.0081550216116230909
+ 0.0081568531762238432
+ 0.0081586845774108841
+ 0.0081605158153806954
+ 0.0081623468903295263
+ 0.0081641778024534005
+ 0.0081660085519481042
+ 0.0081678391390092118
+ 0.0081696695638320497
+ 0.0081714998266117396
+ 0.008173329927543143
+ 0.0081751598668209375
+ 0.0081769896446395318
+ 0.0081788192611931317
+ 0.0081806487166757175
+ 0.0081824780112810368
+ 0.0081843071452026035
+ 0.0081861361186337314
+ 0.0081879649317674885
+ 0.0081897935847967274
+ 0.0081916220779140736
+ 0.0081934504113119356
+ 0.0081952785851824878
+ 0.0081971065997176878
+ 0.0081989344551092747
+ 0.0082007621515487617
+ 0.008202589689227437
+ 0.0082044170683363768
+ 0.0082062442890664198
+ 0.0082080713516082034
+ 0.0082098982561521431
+ 0.008211725002888413
+ 0.0082135515920069933
+ 0.0082153780236976226
+ 0.0082172042981498421
+ 0.0082190304155529605
+ 0.0082208563760960748
+ 0.0082226821799680581
+ 0.008224507827357572
+ 0.008226333318453051
+ 0.0082281586534427333
+ 0.0082299838325146212
+ 0.0082318088558565074
+ 0.0082336337236559726
+ 0.0082354584361003687
+ 0.0082372829933768463
+ 0.0082391073956723411
+ 0.008240931643173563
+ 0.0082427557360670207
+ 0.0082445796745390029
+ 0.0082464034587755898
+ 0.0082482270889626397
+ 0.0082500505652857974
+ 0.0082518738879304998
+ 0.0082536970570819927
+ 0.0082555200729252671
+ 0.0082573429356451421
+ 0.008259165645426194
+ 0.0082609882024528136
+ 0.0082628106069091746
+ 0.0082646328589792203
+ 0.0082664549588467237
+ 0.0082682769066952152
+ 0.0082700987027080203
+ 0.0082719203470682703
+ 0.0082737418399588814
+ 0.0082755631815625546
+ 0.0082773843720617916
+ 0.0082792054116388875
+ 0.0082810263004759171
+ 0.0082828470387547714
+ 0.0082846676266571037
+ 0.0082864880643643991
+ 0.0082883083520579031
+ 0.0082901284899186741
+ 0.0082919484781275588
+ 0.0082937683168651955
+ 0.0082955880063120373
+ 0.008297407546648301
+ 0.0082992269380540284
+ 0.0083010461807090461
+ 0.0083028652747929761
+ 0.0083046842204852322
+ 0.0083065030179650425
+ 0.0083083216674114217
+ 0.0083101401690031801
+ 0.0083119585229189247
+ 0.008313776729337077
+ 0.0083155947884358365
+ 0.0083174127003932119
+ 0.0083192304653870244
+ 0.0083210480835948664
+ 0.0083228655551941498
+ 0.0083246828803620835
+ 0.0083265000592756908
+ 0.0083283170921117627
+ 0.0083301339790469147
+ 0.0083319507202575544
+ 0.0083337673159199158
+ 0.0083355837662100005
+ 0.0083374000713036349
+ 0.0083392162313764406
+ 0.0083410322466038397
+ 0.0083428481171610672
+ 0.0083446638432231549
+ 0.0083464794249649352
+ 0.0083482948625610599
+ 0.0083501101561859747
+ 0.0083519253060139048
+ 0.0083537403122189522
+ 0.0083555551749749379
+ 0.0083573698944555633
+ 0.0083591844708342765
+ 0.0083609989042843745
+ 0.008362813194978929
+ 0.008364627343090859
+ 0.0083664413487928475
+ 0.0083682552122574007
+ 0.0083700689336568476
+ 0.0083718825131633198
+ 0.0083736959509487265
+ 0.0083755092471848366
+ 0.0083773224020431952
+ 0.0083791354156951652
+ 0.0083809482883118961
+ 0.0083827610200644023
+ 0.0083845736111234654
+ 0.00838638606165968
+ 0.0083881983718434566
+ 0.008390010541845027
+ 0.0083918225718344324
+ 0.0083936344619815022
+ 0.0083954462124559079
+ 0.0083972578234271303
+ 0.008399069295064435
+ 0.0084008806275369299
+ 0.0084026918210135266
+ 0.0084045028756629409
+ 0.0084063137916537117
+ 0.008408124569154192
+ 0.0084099352083325547
+ 0.008411745709356773
+ 0.0084135560723946363
+ 0.0084153662976137571
+ 0.0084171763851815708
+ 0.0084189863352653067
+ 0.0084207961480320392
+ 0.0084226058236486177
+ 0.0084244153622817439
+ 0.0084262247640979285
+ 0.0084280340292634901
+ 0.0084298431579445735
+ 0.0084316521503071205
+ 0.0084334610065169326
+ 0.0084352697267395839
+ 0.0084370783111405046
+ 0.0084388867598849185
+ 0.0084406950731378636
+ 0.0084425032510642307
+ 0.0084443112938286952
+ 0.0084461192015957681
+ 0.008447926974529783
+ 0.008449734612794883
+ 0.0084515421165550549
+ 0.0084533494859740689
+ 0.0084551567212155388
+ 0.0084569638224429068
+ 0.0084587707898194347
+ 0.0084605776235081795
+ 0.0084623843236720526
+ 0.008464190890473778
+ 0.0084659973240758871
+ 0.0084678036246407587
+ 0.0084696097923305843
+ 0.0084714158273073697
+ 0.0084732217297329594
+ 0.0084750274997690139
+ 0.0084768331375770136
+ 0.0084786386433182721
+ 0.0084804440171539312
+ 0.008482249259244944
+ 0.0084840543697520948
+ 0.0084858593488360123
+ 0.0084876641966571045
+ 0.0084894689133756581
+ 0.008491273499151757
+ 0.0084930779541453234
+ 0.0084948822785160787
+ 0.0084966864724236226
+ 0.0084984905360273276
+ 0.0085002944694864396
+ 0.008502098272959998
+ 0.0085039019466068878
+ 0.0085057054905858243
+ 0.0085075089050553453
+ 0.0085093121901738053
+ 0.0085111153460994196
+ 0.0085129183729902042
+ 0.0085147212710040155
+ 0.0085165240402985433
+ 0.0085183266810312987
+ 0.0085201291933596369
+ 0.008521931577440715
+ 0.0085237338334315706
+ 0.0085255359614890211
+ 0.0085273379617697449
+ 0.0085291398344302469
+ 0.0085309415796268519
+ 0.0085327431975157301
+ 0.0085345446882528851
+ 0.0085363460519941436
+ 0.0085381472888951763
+ 0.0085399483991114682
+ 0.0085417493827983637
+ 0.0085435502401110235
+ 0.0085453509712044382
+ 0.0085471515762334544
+ 0.0085489520553527348
+ 0.0085507524087167705
+ 0.0085525526364799119
+ 0.0085543527387963204
+ 0.0085561527158200118
+ 0.0085579525677048247
+ 0.008559752294604428
+ 0.0085615518966723515
+ 0.0085633513740619362
+ 0.0085651507269263755
+ 0.0085669499554186877
+ 0.008568749059691733
+ 0.0085705480398982192
+ 0.0085723468961906718
+ 0.0085741456287214777
+ 0.0085759442376428293
+ 0.0085777427231067908
+ 0.0085795410852652441
+ 0.0085813393242699185
+ 0.0085831374402723769
+ 0.008584935433424026
+ 0.0085867333038761144
+ 0.0085885310517797141
+ 0.0085903286772857652
+ 0.0085921261805450202
+ 0.0085939235617080809
+ 0.0085957208209254
+ 0.0085975179583472547
+ 0.0085993149741237784
+ 0.0086011118684049381
+ 0.0086029086413405339
+ 0.0086047052930802222
+ 0.0086065018237735016
+ 0.0086082982335697038
+ 0.0086100945226179927
+ 0.0086118906910674052
+ 0.0086136867390667927
+ 0.008615482666764868
+ 0.0086172784743101718
+ 0.008619074161851115
+ 0.0086208697295359071
+ 0.0086226651775126451
+ 0.0086244605059292555
+ 0.0086262557149334937
+ 0.0086280508046729723
+ 0.0086298457752951654
+ 0.0086316406269473633
+ 0.0086334353597767206
+ 0.0086352299739302259
+ 0.0086370244695547216
+ 0.0086388188467968925
+ 0.0086406131058032725
+ 0.0086424072467202375
+ 0.0086442012696940108
+ 0.0086459951748706632
+ 0.0086477889623961194
+ 0.0086495826324161414
+ 0.0086513761850763402
+ 0.0086531696205221845
+ 0.0086549629388989798
+ 0.008656756140351874
+ 0.0086585492250258779
+ 0.0086603421930658529
+ 0.0086621350446164942
+ 0.0086639277798223596
+ 0.0086657203988278492
+ 0.008667512901777202
+ 0.0086693052888145335
+ 0.0086710975600837927
+ 0.0086728897157287658
+ 0.0086746817558931207
+ 0.0086764736807203504
+ 0.0086782654903537985
+ 0.0086800571849366733
+ 0.008681848764612041
+ 0.0086836402295227839
+ 0.0086854315798116748
+ 0.0086872228156213201
+ 0.0086890139370941859
+ 0.0086908049443725696
+ 0.0086925958375986441
+ 0.0086943866169144207
+ 0.0086961772824617877
+ 0.0086979678343824494
+ 0.0086997582728179975
+ 0.0087015485979098483
+ 0.0087033388097992985
+ 0.0087051289086274748
+ 0.0087069188945353721
+ 0.0087087087676638499
+ 0.0087104985281535822
+ 0.0087122881761451526
+ 0.0087140777117789472
+ 0.0087158671351952495
+ 0.0087176564465341697
+ 0.008719445645935681
+ 0.0087212347335396279
+ 0.0087230237094856923
+ 0.00872481257391341
+ 0.0087266013269621957
+ 0.0087283899687712971
+ 0.0087301784994798255
+ 0.0087319669192267562
+ 0.0087337552281509055
+ 0.0087355434263909782
+ 0.008737331514085506
+ 0.0087391194913728817
+ 0.0087409073583913782
+ 0.0087426951152790987
+ 0.0087444827621740249
+ 0.0087462702992139804
+ 0.008748057726536666
+ 0.0087498450442796364
+ 0.0087516322525802853
+ 0.0087534193515759039
+ 0.0087552063414035944
+ 0.0087569932222003599
+ 0.0087587799941030442
+ 0.0087605666572483695
+ 0.0087623532117728845
+ 0.0087641396578130252
+ 0.0087659259955050819
+ 0.0087677122249852062
+ 0.008769498346389409
+ 0.0087712843598535574
+ 0.0087730702655134038
+ 0.0087748560635045238
+ 0.0087766417539623751
+ 0.0087784273370222956
+ 0.0087802128128194393
+ 0.0087819981814888891
+ 0.008783783443165525
+ 0.0087855685979841159
+ 0.0087873536460793076
+ 0.0087891385875855897
+ 0.0087909234226373235
+ 0.0087927081513687194
+ 0.0087944927739138871
+ 0.0087962772904067576
+ 0.0087980617009811406
+ 0.0087998460057707485
+ 0.0088016302049090875
+ 0.0088034142985295889
+ 0.008805198286765516
+ 0.0088069821697500193
+ 0.008808765947616079
+ 0.0088105496204965855
+ 0.008812333188524259
+ 0.0088141166518317122
+ 0.0088159000105513981
+ 0.008817683264815664
+ 0.0088194664147566871
+ 0.0088212494605065563
+ 0.0088230324021971937
+ 0.0088248152399603985
+ 0.0088265979739278327
+ 0.008828380604231037
+ 0.0088301631310014044
+ 0.0088319455543702085
+ 0.0088337278744685839
+ 0.0088355100914275352
+ 0.0088372922053779387
+ 0.0088390742164505213
+ 0.0088408561247759147
+ 0.008842637930484577
+ 0.008844419633706857
+ 0.0088462012345729823
+ 0.0088479827332130397
+ 0.0088497641297569738
+ 0.0088515454243346114
+ 0.0088533266170756492
+ 0.0088551077081096396
+ 0.0088568886975660382
+ 0.0088586695855741339
+ 0.0088604503722631098
+ 0.0088622310577620017
+ 0.0088640116421997393
+ 0.0088657921257051069
+ 0.0088675725084067583
+ 0.008869352790433228
+ 0.0088711329719129064
+ 0.0088729130529740866
+ 0.0088746930337449143
+ 0.0088764729143533758
+ 0.008878252694927407
+ 0.0088800323755947284
+ 0.0088818119564829951
+ 0.00888359143771973
+ 0.0088853708194322825
+ 0.0088871501017479225
+ 0.0088889292847937878
+ 0.0088907083686968567
+ 0.0088924873535840224
+ 0.0088942662395820205
+ 0.0088960450268174805
+ 0.0088978237154169002
+ 0.0088996023055066351
+ 0.0089013807972129523
+ 0.0089031591906619644
+ 0.008904937485979654
+ 0.0089067156832919134
+ 0.0089084937827244633
+ 0.0089102717844029393
+ 0.0089120496884528347
+ 0.008913827494999518
+ 0.0089156052041682397
+ 0.0089173828160841184
+ 0.0089191603308721636
+ 0.0089209377486572407
+ 0.0089227150695641057
+ 0.0089244922937173898
+ 0.0089262694212416047
+ 0.0089280464522611108
+ 0.0089298233869001958
+ 0.0089316002252829898
+ 0.0089333769675334993
+ 0.0089351536137756253
+ 0.0089369301641331281
+ 0.0089387066187296693
+ 0.008940482977688775
+ 0.0089422592411338344
+ 0.0089440354091881447
+ 0.0089458114819748781
+ 0.0089475874596170544
+ 0.0089493633422375995
+ 0.0089511391299593266
+ 0.0089529148229048963
+ 0.0089546904211968859
+ 0.0089564659249577131
+ 0.0089582413343097106
+ 0.0089600166493750653
+ 0.0089617918702758672
+ 0.0089635669971340603
+ 0.0089653420300714881
+ 0.0089671169692098797
+ 0.0089688918146708235
+ 0.0089706665665757971
+ 0.0089724412250461807
+ 0.0089742157902032004
+ 0.0089759902621679866
+ 0.0089777646410615485
+ 0.0089795389270047668
+ 0.0089813131201184199
+ 0.0089830872205231352
+ 0.0089848612283394795
+ 0.00898663514368786
+ 0.0089884089666885693
+ 0.0089901826974617856
+ 0.0089919563361275778
+ 0.0089937298828058915
+ 0.0089955033376165634
+ 0.0089972767006792995
+ 0.0089990499721136971
+ 0.0090008231520392404
+ 0.0090025962405752887
+ 0.0090043692378410992
+ 0.0090061421439558004
+ 0.0090079149590384013
+ 0.0090096876832078208
+ 0.0090114603165828266
+ 0.009013232859282079
+ 0.0090150053114241707
+ 0.0090167776731275122
+ 0.0090185499445104289
+ 0.0090203221256911388
+ 0.0090220942167877401
+ 0.0090238662179182062
+ 0.009025638129200415
+ 0.0090274099507521091
+ 0.0090291816826909305
+ 0.0090309533251344016
+ 0.0090327248781999336
+ 0.0090344963420048354
+ 0.0090362677166662807
+ 0.0090380390023013374
+ 0.0090398101990269795
+ 0.0090415813069600389
+ 0.009043352326217247
+ 0.0090451232569152291
+ 0.0090468940991705014
+ 0.0090486648530994449
+ 0.0090504355188183363
+ 0.0090522060964433691
+ 0.0090539765860905841
+ 0.0090557469878759407
+ 0.0090575173019152647
+ 0.0090592875283242863
+ 0.0090610576672186111
+ 0.009062827718713749
+ 0.0090645976829250921
+ 0.009066367559967918
+ 0.0090681373499573829
+ 0.0090699070530085631
+ 0.0090716766692363945
+ 0.0090734461987557243
+ 0.009075215641681263
+ 0.0090769849981276532
+ 0.0090787542682093936
+ 0.0090805234520408753
+ 0.0090822925497363784
+ 0.0090840615614101103
+ 0.009085830487176122
+ 0.0090875993271483761
+ 0.0090893680814407209
+ 0.009091136750166904
+ 0.0090929053334405686
+ 0.0090946738313752232
+ 0.0090964422440842924
+ 0.009098210571681092
+ 0.0090999788142788057
+ 0.0091017469719905375
+ 0.0091035150449292803
+ 0.0091052830332078987
+ 0.0091070509369391602
+ 0.0091088187562357349
+ 0.0091105864912101719
+ 0.009112354141974921
+ 0.0091141217086423316
+ 0.0091158891913246214
+ 0.0091176565901339244
+ 0.0091194239051822622
+ 0.0091211911365815489
+ 0.0091229582844435907
+ 0.0091247253488800865
+ 0.0091264923300026363
+ 0.009128259227922722
+ 0.0091300260427517321
+ 0.009131792774600949
+ 0.0091335594235815408
+ 0.0091353259898045713
+ 0.0091370924733810057
+ 0.0091388588744216962
+ 0.0091406251930373893
+ 0.0091423914293387483
+ 0.0091441575834363114
+ 0.0091459236554405042
+ 0.0091476896454616707
+ 0.0091494555536100371
+ 0.0091512213799957252
+ 0.0091529871247287547
+ 0.0091547527879190446
+ 0.0091565183696764117
+ 0.0091582838701105614
+ 0.0091600492893310903
+ 0.0091618146274475218
+ 0.0091635798845692302
+ 0.009165345060805536
+ 0.0091671101562656107
+ 0.00916887517105857
+ 0.0091706401052933668
+ 0.0091724049590789138
+ 0.0091741697325239853
+ 0.0091759344257372703
+ 0.0091776990388273225
+ 0.00917946357190263
+ 0.0091812280250715885
+ 0.0091829923984424345
+ 0.0091847566921233643
+ 0.0091865209062224323
+ 0.0091882850408476161
+ 0.0091900490961067845
+ 0.0091918130721076914
+ 0.0091935769689580043
+ 0.0091953407867652881
+ 0.0091971045256370072
+ 0.0091988681856805185
+ 0.009200631767003092
+ 0.0092023952697118851
+ 0.0092041586939139598
+ 0.0092059220397162755
+ 0.009207685307225686
+ 0.0092094484965489568
+ 0.0092112116077927696
+ 0.0092129746410636523
+ 0.0092147375964680752
+ 0.0092165004741124271
+ 0.0092182632741029443
+ 0.0092200259965457936
+ 0.0092217886415470515
+ 0.0092235512092126871
+ 0.0092253136996485602
+ 0.0092270761129604403
+ 0.009228838449253993
+ 0.0092306007086347917
+ 0.009232362891208332
+ 0.009234124997079967
+ 0.0092358870263549841
+ 0.009237648979138563
+ 0.0092394108555357846
+ 0.0092411726556516291
+ 0.0092429343795909953
+ 0.0092446960274586709
+ 0.0092464575993593378
+ 0.0092482190953976119
+ 0.0092499805156779687
+ 0.0092517418603048334
+ 0.0092535031293824819
+ 0.0092552643230151537
+ 0.0092570254413069462
+ 0.0092587864843618733
+ 0.0092605474522838675
+ 0.00926230834517674
+ 0.0092640691631442167
+ 0.0092658299062899317
+ 0.0092675905747174291
+ 0.0092693511685301416
+ 0.0092711116878314223
+ 0.009272872132724503
+ 0.0092746325033125493
+ 0.0092763927996986177
+ 0.0092781530219856762
+ 0.0092799131702765835
+ 0.0092816732446741271
+ 0.0092834332452809681
+ 0.0092851931721997221
+ 0.0092869530255328455
+ 0.0092887128053827442
+ 0.0092904725118517252
+ 0.0092922321450419985
+ 0.0092939917050556698
+ 0.0092957511919947722
+ 0.0092975106059612154
+ 0.0092992699470568277
+ 0.0093010292153833662
+ 0.0093027884110424754
+ 0.0093045475341356973
+ 0.0093063065847644837
+ 0.00930806556303021
+ 0.00930982446903416
+ 0.0093115833028775009
+ 0.0093133420646613237
+ 0.0093151007544866188
+ 0.0093168593724542899
+ 0.0093186179186651522
+ 0.0093203763932199254
+ 0.00932213479621922
+ 0.0093238931277635877
+ 0.0093256513879534531
+ 0.0093274095768891892
+ 0.0093291676946710336
+ 0.0093309257413991611
+ 0.0093326837171736343
+ 0.0093344416220944564
+ 0.0093361994562615146
+ 0.0093379572197746005
+ 0.0093397149127334381
+ 0.0093414725352376424
+ 0.009343230087386729
+ 0.0093449875692801655
+ 0.009346744981017268
+ 0.0093485023226973305
+ 0.0093502595944194786
+ 0.0093520167962828134
+ 0.009353773928386315
+ 0.0093555309908288919
+ 0.0093572879837093264
+ 0.0093590449071263553
+ 0.009360801761178603
+ 0.0093625585459646068
+ 0.009364315261582809
+ 0.0093660719081315909
+ 0.0093678284857091811
+ 0.0093695849944138033
+ 0.0093713414343435317
+ 0.0093730978055963574
+ 0.0093748541082702037
+ 0.0093766103424629092
+ 0.0093783665082721977
+ 0.0093801226057957203
+ 0.0093818786351310361
+ 0.0093836345963756312
+ 0.0093853904896268638
+ 0.0093871463149820377
+ 0.0093889020725383774
+ 0.0093906577623929996
+ 0.0093924133846429083
+ 0.0093941689393850815
+ 0.0093959244267163757
+ 0.0093976798467335417
+ 0.0093994351995332695
+ 0.0094011904852121537
+ 0.0094029457038667195
+ 0.0094047008555933672
+ 0.0094064559404884347
+ 0.0094082109586481853
+ 0.009409965910168766
+ 0.009411720795146265
+ 0.0094134756136766608
+ 0.0094152303658558596
+ 0.0094169850517796666
+ 0.0094187396715438333
+ 0.0094204942252439864
+ 0.009422248712975697
+ 0.0094240031348344234
+ 0.0094257574909155633
+ 0.0094275117813144172
+ 0.0094292660061261937
+ 0.0094310201654460371
+ 0.0094327742593689791
+ 0.0094345282879899871
+ 0.0094362822514039383
+ 0.0094380361497056215
+ 0.0094397899829897318
+ 0.0094415437513508896
+ 0.0094432974548836496
+ 0.0094450510936824553
+ 0.0094468046678416653
+ 0.0094485581774555738
+ 0.0094503116226183643
+ 0.0094520650034241697
+ 0.0094538183199670087
+ 0.0094555715723408304
+ 0.0094573247606395006
+ 0.0094590778849567951
+ 0.009460830945386401
+ 0.0094625839420219449
+ 0.0094643368749569474
+ 0.0094660897442848616
+ 0.0094678425500990381
+ 0.0094695952924927634
+ 0.0094713479715592252
+ 0.0094731005873915485
+ 0.009474853140082751
+ 0.0094766056297257862
+ 0.0094783580564135293
+ 0.0094801104202387413
+ 0.0094818627212941379
+ 0.0094836149596723273
+ 0.009485367135465864
+ 0.009487119248767174
+ 0.0094888712996686504
+ 0.009490623288262565
+ 0.009492375214641139
+ 0.0094941270788964829
+ 0.009495878881120667
+ 0.00949763062140563
+ 0.0094993822998432672
+ 0.0095011339165253783
+ 0.0095028854715436782
+ 0.0095046369649897915
+ 0.0095063883969553047
+ 0.0095081397675316672
+ 0.0095098910768102746
+ 0.009511642324882455
+ 0.0095133935118394426
+ 0.0095151446377723849
+ 0.0095168957027723551
+ 0.0095186467069303341
+ 0.0095203976503372579
+ 0.0095221485330839444
+ 0.0095238993552611371
+ 0.0095256501169595238
+ 0.0095274008182696882
+ 0.009529151459282138
+ 0.0095309020400873249
+ 0.0095326525607755709
+ 0.0095344030214371805
+ 0.009536153422162328
+ 0.0095379037630411393
+ 0.0095396540441636396
+ 0.0095414042656197968
+ 0.0095431544274994871
+ 0.009544904529892503
+ 0.0095466545728885594
+ 0.0095484045565773033
+ 0.0095501544810483157
+ 0.0095519043463910443
+ 0.0095536541526949192
+ 0.0095554039000492579
+ 0.0095571535885433257
+ 0.009558903218266265
+ 0.0095606527893071849
+ 0.0095624023017550994
+ 0.0095641517556989443
+ 0.0095659011512275877
+ 0.0095676504884298023
+ 0.0095693997673942759
+ 0.009571148988209658
+ 0.0095728981509644925
+ 0.0095746472557472415
+ 0.0095763963026463117
+ 0.009578145291750011
+ 0.0095798942231465831
+ 0.0095816430969241865
+ 0.0095833919131709019
+ 0.0095851406719747526
+ 0.0095868893734236786
+ 0.0095886380176055004
+ 0.0095903866046080331
+ 0.0095921351345189601
+ 0.0095938836074259144
+ 0.0095956320234164474
+ 0.0095973803825780291
+ 0.0095991286849980671
+ 0.0096008769307638648
+ 0.0096026251199626978
+ 0.0096043732526816996
+ 0.0096061213290080001
+ 0.0096078693490285888
+ 0.0096096173128304326
+ 0.0096113652205004028
+ 0.0096131130721252601
+ 0.0096148608677917528
+ 0.0096166086075865111
+ 0.0096183562915961012
+ 0.0096201039199070235
+ 0.0096218514926056896
+ 0.0096235990097784403
+ 0.009625346471511545
+ 0.0096270938778912005
+ 0.009628841229003527
+ 0.0096305885249345653
+ 0.0096323357657702759
+ 0.0096340829515965693
+ 0.0096358300824992693
+ 0.0096375771585641024
+ 0.009639324179876764
+ 0.0096410711465228296
+ 0.0096428180585878473
+ 0.0096445649161572607
+ 0.0096463117193164531
+ 0.0096480584681507206
+ 0.0096498051627452921
+ 0.009651551803185332
+ 0.0096532983895559147
+ 0.0096550449219420659
+ 0.0096567914004287141
+ 0.0096585378251007239
+ 0.0096602841960428971
+ 0.0096620305133399403
+ 0.0096637767770764871
+ 0.0096655229873371436
+ 0.0096672691442063856
+ 0.0096690152477686454
+ 0.0096707612981082915
+ 0.0096725072953095913
+ 0.0096742532394567468
+ 0.0096759991306339214
+ 0.0096777449689251782
+ 0.0096794907544144916
+ 0.0096812364871857945
+ 0.0096829821673229434
+ 0.0096847277949097064
+ 0.0096864733700298012
+ 0.0096882188927668571
+ 0.0096899643632044306
+ 0.0096917097814260243
+ 0.0096934551475150559
+ 0.0096952004615548735
+ 0.0096969457236287544
+ 0.0096986909338199079
+ 0.0097004360922114587
+ 0.0097021811988864896
+ 0.0097039262539279879
+ 0.0097056712574188717
+ 0.0097074162094420036
+ 0.009709161110080149
+ 0.0097109059594160298
+ 0.0097126507575323005
+ 0.009714395504511501
+ 0.0097161402004361519
+ 0.0097178848453886666
+ 0.0097196294394514271
+ 0.0097213739827067096
+ 0.0097231184752367261
+ 0.0097248629171236452
+ 0.0097266073084495263
+ 0.0097283516492963993
+ 0.0097300959397461882
+ 0.0097318401798807651
+ 0.0097335843697819464
+ 0.0097353285095314393
+ 0.0097370725992109199
+ 0.0097388166389019929
+ 0.009740560628686161
+ 0.0097423045686448849
+ 0.0097440484588595545
+ 0.0097457922994114866
+ 0.0097475360903819218
+ 0.0097492798318520469
+ 0.009751023523902962
+ 0.0097527671666157254
+ 0.0097545107600712899
+ 0.009756254304350568
+ 0.0097579977995344066
+ 0.0097597412457035536
+ 0.0097614846429387274
+ 0.0097632279913205389
+ 0.0097649712909295729
+ 0.0097667145418463153
+ 0.0097684577441511846
+ 0.0097702008979245521
+ 0.0097719440032466975
+ 0.009773687060197862
+ 0.0097754300688581829
+ 0.0097771730293077629
+ 0.0097789159416266074
+ 0.0097806588058946941
+ 0.0097824016221918862
+ 0.0097841443905980086
+ 0.0097858871111928189
+ 0.009787629784055998
+ 0.0097893724092671715
+ 0.0097911149869058748
+ 0.0097928575170516032
+ 0.0097945999997837742
+ 0.0097963424351817322
+ 0.0097980848233247594
+ 0.0097998271642920805
+ 0.0098015694581628406
+ 0.0098033117050161378
+ 0.0098050539049309732
+ 0.0098067960579862976
+ 0.0098085381642610044
+ 0.009810280223833916
+ 0.0098120222367837785
+ 0.0098137642031892822
+ 0.0098155061231290572
+ 0.0098172479966816429
+ 0.0098189898239255287
+ 0.0098207316049391553
+ 0.0098224733398008697
+ 0.0098242150285889722
+ 0.0098259566713816866
+ 0.0098276982682571866
+ 0.0098294398192935364
+ 0.009831181324568802
+ 0.0098329227841609402
+ 0.0098346641981478435
+ 0.0098364055666073577
+ 0.0098381468896172625
+ 0.0098398881672552441
+ 0.0098416293995989505
+ 0.0098433705867259792
+ 0.0098451117287138221
+ 0.0098468528256399294
+ 0.0098485938775816767
+ 0.0098503348846164067
+ 0.0098520758468213718
+ 0.009853816764273729
+ 0.0098555576370506544
+ 0.0098572984652291716
+ 0.0098590392488862953
+ 0.0098607799880989586
+ 0.0098625206829440256
+ 0.0098642613334983201
+ 0.0098660019398385639
+ 0.0098677425020414471
+ 0.0098694830201835858
+ 0.0098712234943415158
+ 0.0098729639245917575
+ 0.0098747043110107048
+ 0.0098764446536747392
+ 0.0098781849526601451
+ 0.0098799252080431776
+ 0.0098816654198999807
+ 0.0098834055883066912
+ 0.0098851457133393422
+ 0.0098868857950739162
+ 0.0098886258335863335
+ 0.0098903658289524621
+ 0.0098921057812480818
+ 0.0098938456905489358
+ 0.0098955855569306823
+ 0.00989732538046895
+ 0.0098990651612392531
+ 0.0099008048993171095
+ 0.0099025445947779067
+ 0.0099042842476970254
+ 0.0099060238581497474
+ 0.0099077634262113214
+ 0.0099095029519569063
+ 0.0099112424354616188
+ 0.0099129818768005033
+ 0.0099147212760485395
+ 0.009916460633280659
+ 0.0099181999485717341
+ 0.0099199392219965609
+ 0.0099216784536298626
+ 0.0099234176435463381
+ 0.0099251567918205927
+ 0.009926895898527183
+ 0.0099286349637406277
+ 0.0099303739875353219
+ 0.0099321129699856524
+ 0.0099338519111659383
+ 0.009935590811150424
+ 0.0099373296700132913
+ 0.0099390684878286808
+ 0.0099408072646706529
+ 0.0099425460006132178
+ 0.0099442846957303235
+ 0.0099460233500958482
+ 0.0099477619637836252
+ 0.0099495005368674221
+ 0.009951239069420921
+ 0.0099529775615177906
+ 0.0099547160132316126
+ 0.0099564544246358942
+ 0.0099581927958041112
+ 0.0099599311268096652
+ 0.0099616694177259053
+ 0.0099634076686261012
+ 0.0099651458795834945
+ 0.0099668840506712368
+ 0.0099686221819624329
+ 0.0099703602735301197
+ 0.009972098325447298
+ 0.0099738363377869007
+ 0.0099755743106217827
+ 0.0099773122440247348
+ 0.0099790501380685181
+ 0.0099807879928258316
+ 0.0099825258083692959
+ 0.0099842635847714831
+ 0.0099860013221048892
+ 0.009987739020441996
+ 0.0099894766798551676
+ 0.009991214300416747
+ 0.0099929518821990256
+ 0.0099946894252741936
+ 0.0099964269297144262
+ 0.0099981643955918183
+ 0.0099999018229784149
+ 0.010001639211946189
+ 0.010003376562567076
+ 0.010005113874912944
+ 0.010006851149055576
+ 0.010008588385066748
+ 0.010010325583018146
+ 0.010012062742981396
+ 0.010013799865028072
+ 0.010015536949229692
+ 0.010017273995657733
+ 0.010019011004383564
+ 0.010020747975478547
+ 0.01002248490901397
+ 0.010024221805061059
+ 0.010025958663690984
+ 0.010027695484974869
+ 0.010029432268983748
+ 0.010031169015788616
+ 0.010032905725460447
+ 0.010034642398070098
+ 0.010036379033688409
+ 0.010038115632386138
+ 0.010039852194234013
+ 0.01004158871930266
+ 0.010043325207662712
+ 0.010045061659384694
+ 0.010046798074539091
+ 0.010048534453196327
+ 0.01005027079542678
+ 0.010052007101300766
+ 0.010053743370888541
+ 0.010055479604260311
+ 0.010057215801486205
+ 0.010058951962636321
+ 0.010060688087780701
+ 0.010062424176989314
+ 0.010064160230332068
+ 0.010065896247878845
+ 0.010067632229699437
+ 0.010069368175863614
+ 0.01007110408644105
+ 0.010072839961501403
+ 0.010074575801114247
+ 0.01007631160534911
+ 0.010078047374275468
+ 0.010079783107962738
+ 0.010081518806480288
+ 0.010083254469897397
+ 0.01008499009828335
+ 0.010086725691707319
+ 0.01008846125023845
+ 0.01009019677394583
+ 0.010091932262898479
+ 0.010093667717165378
+ 0.01009540313681544
+ 0.010097138521917541
+ 0.010098873872540465
+ 0.010100609188752992
+ 0.010102344470623812
+ 0.010104079718221555
+ 0.010105814931614826
+ 0.010107550110872164
+ 0.010109285256062028
+ 0.01011102036725286
+ 0.010112755444513019
+ 0.010114490487910821
+ 0.010116225497514546
+ 0.010117960473392385
+ 0.01011969541561249
+ 0.010121430324242968
+ 0.010123165199351856
+ 0.010124900041007152
+ 0.010126634849276782
+ 0.010128369624228637
+ 0.010130104365930544
+ 0.010131839074450276
+ 0.010133573749855563
+ 0.010135308392214057
+ 0.01013704300159338
+ 0.010138777578061085
+ 0.010140512121684682
+ 0.010142246632531627
+ 0.010143981110669303
+ 0.010145715556165086
+ 0.010147449969086243
+ 0.010149184349500021
+ 0.01015091869747361
+ 0.010152653013074126
+ 0.01015438729636866
+ 0.010156121547424244
+ 0.010157855766307844
+ 0.010159589953086374
+ 0.010161324107826714
+ 0.010163058230595674
+ 0.010164792321460007
+ 0.010166526380486434
+ 0.010168260407741601
+ 0.010169994403292117
+ 0.010171728367204536
+ 0.010173462299545348
+ 0.010175196200381006
+ 0.010176930069777901
+ 0.010178663907802374
+ 0.010180397714520716
+ 0.010182131489999167
+ 0.010183865234303894
+ 0.01018559894750104
+ 0.010187332629656697
+ 0.010189066280836883
+ 0.010190799901107569
+ 0.010192533490534691
+ 0.01019426704918411
+ 0.010196000577121653
+ 0.01019773407441308
+ 0.010199467541124121
+ 0.010201200977320435
+ 0.010202934383067646
+ 0.010204667758431308
+ 0.01020640110347692
+ 0.010208134418269964
+ 0.010209867702875831
+ 0.010211600957359892
+ 0.010213334181787449
+ 0.010215067376223743
+ 0.010216800540733997
+ 0.010218533675383347
+ 0.010220266780236903
+ 0.010221999855359711
+ 0.010223732900816785
+ 0.010225465916673037
+ 0.010227198902993409
+ 0.010228931859842723
+ 0.010230664787285784
+ 0.010232397685387324
+ 0.010234130554212059
+ 0.010235863393824618
+ 0.010237596204289602
+ 0.01023932898567155
+ 0.010241061738034936
+ 0.010242794461444254
+ 0.010244527155963842
+ 0.010246259821658077
+ 0.010247992458591241
+ 0.010249725066827566
+ 0.010251457646431249
+ 0.010253190197466447
+ 0.010254922719997232
+ 0.01025665521408765
+ 0.0102583876798017
+ 0.01026012011720333
+ 0.010261852526356422
+ 0.010263584907324805
+ 0.010265317260172284
+ 0.010267049584962619
+ 0.010268781881759495
+ 0.010270514150626539
+ 0.010272246391627361
+ 0.010273978604825512
+ 0.010275710790284467
+ 0.010277442948067698
+ 0.010279175078238584
+ 0.010280907180860487
+ 0.010282639255996697
+ 0.010284371303710462
+ 0.010286103324065
+ 0.010287835317123444
+ 0.01028956728294891
+ 0.010291299221604442
+ 0.010293031133153045
+ 0.010294763017657691
+ 0.010296494875181276
+ 0.010298226705786661
+ 0.010299958509536664
+ 0.010301690286494041
+ 0.010303422036721499
+ 0.01030515376028171
+ 0.010306885457237305
+ 0.010308617127650825
+ 0.010310348771584812
+ 0.010312080389101735
+ 0.010313811980264006
+ 0.010315543545134004
+ 0.01031727508377406
+ 0.010319006596246448
+ 0.01032073808261341
+ 0.010322469542937127
+ 0.010324200977279719
+ 0.010325932385703295
+ 0.010327663768269879
+ 0.010329395125041472
+ 0.010331126456080014
+ 0.010332857761447396
+ 0.010334589041205471
+ 0.010336320295416054
+ 0.010338051524140883
+ 0.010339782727441659
+ 0.010341513905380061
+ 0.010343245058017685
+ 0.010344976185416103
+ 0.010346707287636826
+ 0.010348438364741324
+ 0.010350169416791028
+ 0.010351900443847303
+ 0.010353631445971489
+ 0.010355362423224842
+ 0.010357093375668633
+ 0.010358824303364017
+ 0.010360555206372144
+ 0.010362286084754127
+ 0.010364016938570982
+ 0.010365747767883729
+ 0.010367478572753322
+ 0.010369209353240655
+ 0.010370940109406599
+ 0.010372670841311956
+ 0.010374401549017503
+ 0.010376132232583969
+ 0.010377862892072006
+ 0.010379593527542251
+ 0.010381324139055296
+ 0.010383054726671666
+ 0.010384785290451844
+ 0.010386515830456286
+ 0.010388246346745391
+ 0.010389976839379488
+ 0.010391707308418903
+ 0.010393437753923887
+ 0.01039516817595466
+ 0.010396898574571366
+ 0.010398628949834154
+ 0.010400359301803079
+ 0.010402089630538179
+ 0.010403819936099444
+ 0.0104055502185468
+ 0.010407280477940135
+ 0.010409010714339318
+ 0.010410740927804139
+ 0.010412471118394349
+ 0.010414201286169669
+ 0.010415931431189749
+ 0.010417661553514215
+ 0.010419391653202648
+ 0.010421121730314575
+ 0.010422851784909488
+ 0.010424581817046804
+ 0.010426311826785935
+ 0.010428041814186228
+ 0.010429771779306969
+ 0.010431501722207439
+ 0.010433231642946848
+ 0.01043496154158435
+ 0.0104366914181791
+ 0.010438421272790138
+ 0.01044015110547653
+ 0.010441880916297247
+ 0.01044361070531126
+ 0.01044534047257744
+ 0.010447070218154667
+ 0.010448799942101728
+ 0.010450529644477412
+ 0.010452259325340437
+ 0.010453988984749467
+ 0.010455718622763156
+ 0.010457448239440085
+ 0.010459177834838816
+ 0.01046090740901782
+ 0.010462636962035574
+ 0.010464366493950487
+ 0.010466096004820929
+ 0.01046782549470523
+ 0.010469554963661672
+ 0.010471284411748471
+ 0.010473013839023852
+ 0.010474743245545953
+ 0.010476472631372863
+ 0.010478201996562663
+ 0.010479931341173376
+ 0.01048166066526296
+ 0.010483389968889366
+ 0.010485119252110457
+ 0.010486848514984099
+ 0.01048857775756808
+ 0.010490306979920158
+ 0.010492036182098064
+ 0.010493765364159441
+ 0.010495494526161945
+ 0.010497223668163127
+ 0.01049895279022057
+ 0.01050068189239173
+ 0.010502410974734087
+ 0.010504140037305052
+ 0.010505869080161987
+ 0.010507598103362206
+ 0.010509327106963021
+ 0.010511056091021646
+ 0.010512785055595277
+ 0.010514514000741083
+ 0.010516242926516175
+ 0.010517971832977608
+ 0.010519700720182424
+ 0.010521429588187593
+ 0.010523158437050061
+ 0.010524887266826721
+ 0.010526616077574439
+ 0.010528344869350019
+ 0.010530073642210234
+ 0.010531802396211811
+ 0.010533531131411441
+ 0.010535259847865757
+ 0.010536988545631377
+ 0.010538717224764847
+ 0.010540445885322686
+ 0.010542174527361369
+ 0.010543903150937331
+ 0.010545631756106962
+ 0.010547360342926606
+ 0.010549088911452575
+ 0.01055081746174113
+ 0.010552545993848503
+ 0.010554274507830858
+ 0.010556003003744359
+ 0.010557731481645074
+ 0.010559459941589073
+ 0.010561188383632382
+ 0.010562916807830952
+ 0.010564645214240723
+ 0.010566373602917596
+ 0.010568101973917398
+ 0.010569830327295944
+ 0.010571558663109
+ 0.010573286981412295
+ 0.010575015282261497
+ 0.010576743565712261
+ 0.010578471831820186
+ 0.010580200080640815
+ 0.010581928312229675
+ 0.01058365652664226
+ 0.010585384723933966
+ 0.01058711290416022
+ 0.010588841067376361
+ 0.010590569213637708
+ 0.010592297342999523
+ 0.010594025455517032
+ 0.010595753551245446
+ 0.010597481630239892
+ 0.010599209692555487
+ 0.010600937738247296
+ 0.010602665767370355
+ 0.010604393779979644
+ 0.010606121776130083
+ 0.010607849755876609
+ 0.01060957771927408
+ 0.010611305666377312
+ 0.010613033597241093
+ 0.010614761511920149
+ 0.010616489410469212
+ 0.010618217292942924
+ 0.010619945159395914
+ 0.010621673009882759
+ 0.010623400844457996
+ 0.010625128663176138
+ 0.010626856466091638
+ 0.010628584253258924
+ 0.010630312024732361
+ 0.010632039780566304
+ 0.010633767520815043
+ 0.010635495245532856
+ 0.01063722295477394
+ 0.010638950648592506
+ 0.010640678327042668
+ 0.010642405990178547
+ 0.010644133638054184
+ 0.010645861270723617
+ 0.010647588888240821
+ 0.01064931649065976
+ 0.010651044078034301
+ 0.010652771650418323
+ 0.01065449920786567
+ 0.0106562267504301
+ 0.010657954278165366
+ 0.010659681791125194
+ 0.010661409289363223
+ 0.010663136772933086
+ 0.010664864241888375
+ 0.010666591696282647
+ 0.010668319136169394
+ 0.010670046561602106
+ 0.010671773972634207
+ 0.010673501369319077
+ 0.010675228751710081
+ 0.010676956119860541
+ 0.010678683473823712
+ 0.010680410813652841
+ 0.010682138139401135
+ 0.010683865451121745
+ 0.010685592748867783
+ 0.010687320032692326
+ 0.01068904730264845
+ 0.010690774558789123
+ 0.010692501801167315
+ 0.010694229029835974
+ 0.010695956244847963
+ 0.010697683446256155
+ 0.010699410634113338
+ 0.010701137808472296
+ 0.010702864969385769
+ 0.010704592116906437
+ 0.010706319251086959
+ 0.010708046371979975
+ 0.010709773479638033
+ 0.0107115005741137
+ 0.010713227655459475
+ 0.010714954723727813
+ 0.010716681778971166
+ 0.010718408821241898
+ 0.010720135850592364
+ 0.010721862867074898
+ 0.010723589870741757
+ 0.010725316861645179
+ 0.010727043839837381
+ 0.010728770805370503
+ 0.010730497758296672
+ 0.01073222469866799
+ 0.010733951626536509
+ 0.010735678541954204
+ 0.01073740544497309
+ 0.010739132335645071
+ 0.010740859214022076
+ 0.010742586080155931
+ 0.010744312934098476
+ 0.010746039775901498
+ 0.010747766605616743
+ 0.010749493423295927
+ 0.010751220228990711
+ 0.010752947022752731
+ 0.010754673804633607
+ 0.010756400574684875
+ 0.010758127332958061
+ 0.010759854079504668
+ 0.010761580814376136
+ 0.010763307537623864
+ 0.010765034249299248
+ 0.01076676094945362
+ 0.010768487638138268
+ 0.010770214315404484
+ 0.010771940981303473
+ 0.010773667635886428
+ 0.010775394279204499
+ 0.010777120911308813
+ 0.010778847532250457
+ 0.010780574142080446
+ 0.01078230074084981
+ 0.010784027328609497
+ 0.010785753905410469
+ 0.010787480471303589
+ 0.010789207026339748
+ 0.010790933570569752
+ 0.01079266010404438
+ 0.010794386626814392
+ 0.010796113138930511
+ 0.010797839640443407
+ 0.010799566131403704
+ 0.010801292611862016
+ 0.010803019081868927
+ 0.010804745541474944
+ 0.010806471990730582
+ 0.010808198429686286
+ 0.010809924858392484
+ 0.010811651276899576
+ 0.010813377685257893
+ 0.010815104083517746
+ 0.01081683047172944
+ 0.01081855684994319
+ 0.010820283218209222
+ 0.010822009576577699
+ 0.01082373592509875
+ 0.01082546226382248
+ 0.01082718859279895
+ 0.010828914912078184
+ 0.010830641221710192
+ 0.010832367521744915
+ 0.01083409381223226
+ 0.010835820093222117
+ 0.010837546364764359
+ 0.010839272626908781
+ 0.010840998879705155
+ 0.010842725123203225
+ 0.010844451357452713
+ 0.01084617758250327
+ 0.010847903798404543
+ 0.010849630005206133
+ 0.010851356202957596
+ 0.010853082391708471
+ 0.010854808571508235
+ 0.010856534742406382
+ 0.010858260904452294
+ 0.010859987057695385
+ 0.010861713202184984
+ 0.010863439337970451
+ 0.010865165465101027
+ 0.010866891583626
+ 0.010868617693594537
+ 0.010870343795055861
+ 0.010872069888059083
+ 0.010873795972653307
+ 0.010875522048887643
+ 0.010877248116811096
+ 0.01087897417647268
+ 0.010880700227921362
+ 0.010882426271206089
+ 0.010884152306375742
+ 0.010885878333479194
+ 0.010887604352565278
+ 0.010889330363682777
+ 0.010891056366880463
+ 0.010892782362207058
+ 0.01089450834971125
+ 0.010896234329441708
+ 0.010897960301447048
+ 0.010899686265775841
+ 0.010901412222476668
+ 0.010903138171598039
+ 0.010904864113188435
+ 0.010906590047296298
+ 0.010908315973970064
+ 0.010910041893258096
+ 0.010911767805208769
+ 0.010913493709870362
+ 0.01091521960729119
+ 0.010916945497519455
+ 0.010918671380603416
+ 0.010920397256591219
+ 0.010922123125531022
+ 0.010923848987470916
+ 0.010925574842459011
+ 0.010927300690543311
+ 0.010929026531771847
+ 0.010930752366192578
+ 0.010932478193853451
+ 0.010934204014802383
+ 0.01093592982908723
+ 0.010937655636755835
+ 0.010939381437856017
+ 0.010941107232435522
+ 0.010942833020542095
+ 0.010944558802223461
+ 0.010946284577527264
+ 0.010948010346501167
+ 0.010949736109192754
+ 0.010951461865649582
+ 0.010953187615919223
+ 0.010954913360049161
+ 0.01095663909808686
+ 0.01095836483007977
+ 0.010960090556075292
+ 0.01096181627612078
+ 0.010963541990263583
+ 0.010965267698551015
+ 0.010966993401030335
+ 0.010968719097748771
+ 0.010970444788753539
+ 0.0109721704740918
+ 0.010973896153810713
+ 0.010975621827957343
+ 0.010977347496578803
+ 0.01097907315972212
+ 0.010980798817434285
+ 0.010982524469762282
+ 0.010984250116753053
+ 0.010985975758453493
+ 0.010987701394910492
+ 0.010989427026170884
+ 0.010991152652281486
+ 0.01099287827328905
+ 0.010994603889240347
+ 0.01099632950018207
+ 0.010998055106160897
+ 0.010999780707223485
+ 0.011001506303416444
+ 0.011003231894786351
+ 0.011004957481379741
+ 0.011006683063243154
+ 0.011008408640423066
+ 0.011010134212965912
+ 0.011011859780918112
+ 0.011013585344326081
+ 0.011015310903236132
+ 0.011017036457694607
+ 0.011018762007747797
+ 0.011020487553441963
+ 0.0110222130948233
+ 0.011023938631938028
+ 0.011025664164832307
+ 0.011027389693552254
+ 0.01102911521814396
+ 0.0110308407386535
+ 0.011032566255126899
+ 0.011034291767610156
+ 0.011036017276149236
+ 0.011037742780790089
+ 0.011039468281578611
+ 0.01104119377856067
+ 0.011042919271782106
+ 0.011044644761288724
+ 0.011046370247126312
+ 0.011048095729340606
+ 0.011049821207977321
+ 0.011051546683082142
+ 0.011053272154700705
+ 0.011054997622878638
+ 0.011056723087661525
+ 0.011058448549094924
+ 0.011060174007224368
+ 0.011061899462095315
+ 0.011063624913753253
+ 0.011065350362243594
+ 0.011067075807611758
+ 0.011068801249903089
+ 0.011070526689162932
+ 0.011072252125436581
+ 0.011073977558769316
+ 0.011075702989206375
+ 0.011077428416792968
+ 0.011079153841574263
+ 0.011080879263595415
+ 0.011082604682901537
+ 0.011084330099537716
+ 0.011086055513549008
+ 0.011087780924980414
+ 0.011089506333876951
+ 0.011091231740283572
+ 0.011092957144245189
+ 0.011094682545806714
+ 0.011096407945013018
+ 0.011098133341908937
+ 0.011099858736539256
+ 0.011101584128948757
+ 0.01110330951918221
+ 0.011105034907284293
+ 0.011106760293299696
+ 0.011108485677273079
+ 0.011110211059249068
+ 0.01111193643927222
+ 0.011113661817387125
+ 0.011115387193638306
+ 0.011117112568070249
+ 0.011118837940727428
+ 0.01112056331165428
+ 0.011122288680895192
+ 0.011124014048494576
+ 0.011125739414496761
+ 0.011127464778946041
+ 0.011129190141886718
+ 0.011130915503363049
+ 0.011132640863419252
+ 0.011134366222099514
+ 0.011136091579448001
+ 0.011137816935508849
+ 0.011139542290326144
+ 0.011141267643943992
+ 0.011142992996406394
+ 0.01114471834775739
+ 0.011146443698040954
+ 0.01114816904730102
+ 0.011149894395581526
+ 0.011151619742926366
+ 0.011153345089379388
+ 0.01115507043498443
+ 0.011156795779785294
+ 0.011158521123825749
+ 0.011160246467149526
+ 0.01116197180980035
+ 0.011163697151821892
+ 0.011165422493257821
+ 0.011167147834151733
+ 0.011168873174547235
+ 0.011170598514487883
+ 0.011172323854017216
+ 0.011174049193178725
+ 0.011175774532015894
+ 0.011177499870572151
+ 0.011179225208890923
+ 0.011180950547015589
+ 0.011182675884989515
+ 0.011184401222856013
+ 0.011186126560658373
+ 0.011187851898439865
+ 0.011189577236243725
+ 0.011191302574113172
+ 0.011193027912091367
+ 0.011194753250221465
+ 0.011196478588546586
+ 0.011198203927109808
+ 0.011199929265954202
+ 0.011201654605122794
+ 0.011203379944658596
+ 0.011205105284604564
+ 0.011206830625003647
+ 0.011208555965898754
+ 0.011210281307332773
+ 0.011212006649348575
+ 0.011213731991988963
+ 0.011215457335296743
+ 0.01121718267931468
+ 0.01121890802408552
+ 0.011220633369651968
+ 0.0112223587160567
+ 0.011224084063342384
+ 0.011225809411551633
+ 0.011227534760727034
+ 0.011229260110911165
+ 0.011230985462146553
+ 0.011232710814475711
+ 0.011234436167941125
+ 0.011236161522585228
+ 0.011237886878450449
+ 0.011239612235579188
+ 0.011241337594013809
+ 0.011243062953796634
+ 0.011244788314969979
+ 0.011246513677576116
+ 0.011248239041657311
+ 0.011249964407255755
+ 0.011251689774413674
+ 0.011253415143173214
+ 0.011255140513576511
+ 0.011256865885665671
+ 0.011258591259482788
+ 0.011260316635069892
+ 0.011262042012469015
+ 0.011263767391722145
+ 0.011265492772871241
+ 0.011267218155958261
+ 0.0112689435410251
+ 0.011270668928113636
+ 0.011272394317265726
+ 0.011274119708523191
+ 0.011275845101927836
+ 0.01127757049752141
+ 0.011279295895345669
+ 0.011281021295442319
+ 0.011282746697853042
+ 0.011284472102619493
+ 0.011286197509783297
+ 0.011287922919386052
+ 0.011289648331469332
+ 0.011291373746074694
+ 0.011293099163243626
+ 0.01129482458301764
+ 0.011296550005438178
+ 0.011298275430546673
+ 0.011300000858384542
+ 0.011301726288993152
+ 0.01130345172241386
+ 0.011305177158687962
+ 0.011306902597856766
+ 0.011308628039961554
+ 0.011310353485043542
+ 0.011312078933143935
+ 0.011313804384303943
+ 0.011315529838564696
+ 0.011317255295967318
+ 0.011318980756552922
+ 0.011320706220362577
+ 0.011322431687437316
+ 0.01132415715781818
+ 0.011325882631546127
+ 0.011327608108662139
+ 0.011329333589207157
+ 0.011331059073222067
+ 0.011332784560747759
+ 0.011334510051825088
+ 0.011336235546494874
+ 0.011337961044797928
+ 0.011339686546774986
+ 0.011341412052466833
+ 0.011343137561914168
+ 0.011344863075157672
+ 0.011346588592238006
+ 0.011348314113195817
+ 0.011350039638071704
+ 0.011351765166906259
+ 0.011353490699740008
+ 0.011355216236613506
+ 0.011356941777567237
+ 0.011358667322641684
+ 0.011360392871877276
+ 0.011362118425314443
+ 0.011363843982993565
+ 0.011365569544955025
+ 0.011367295111239148
+ 0.011369020681886244
+ 0.011370746256936603
+ 0.01137247183643047
+ 0.011374197420408091
+ 0.011375923008909656
+ 0.01137764860197534
+ 0.01137937419964531
+ 0.011381099801959673
+ 0.011382825408958533
+ 0.011384551020681951
+ 0.011386276637169981
+ 0.011388002258462636
+ 0.011389727884599906
+ 0.011391453515621755
+ 0.011393179151568117
+ 0.011394904792478892
+ 0.011396630438393984
+ 0.011398356089353254
+ 0.011400081745396508
+ 0.011401807406563571
+ 0.01140353307289421
+ 0.011405258744428182
+ 0.011406984421205215
+ 0.011408710103264995
+ 0.011410435790647211
+ 0.011412161483391491
+ 0.011413887181537481
+ 0.011415612885124755
+ 0.011417338594192894
+ 0.011419064308781418
+ 0.011420790028929864
+ 0.011422515754677707
+ 0.011424241486064435
+ 0.011425967223129453
+ 0.01142769296591219
+ 0.011429418714452032
+ 0.01143114446878833
+ 0.011432870228960407
+ 0.011434595995007612
+ 0.011436321766969173
+ 0.011438047544884382
+ 0.01143977332879245
+ 0.011441499118732585
+ 0.011443224914743973
+ 0.011444950716865746
+ 0.011446676525137051
+ 0.011448402339596974
+ 0.011450128160284592
+ 0.011451853987238957
+ 0.011453579820499092
+ 0.011455305660103976
+ 0.011457031506092622
+ 0.011458757358503935
+ 0.011460483217376848
+ 0.011462209082750254
+ 0.011463934954663028
+ 0.011465660833154014
+ 0.01146738671826201
+ 0.011469112610025834
+ 0.011470838508484231
+ 0.011472564413675968
+ 0.011474290325639742
+ 0.011476016244414239
+ 0.011477742170038129
+ 0.011479468102550048
+ 0.011481194041988626
+ 0.011482919988392428
+ 0.011484645941800041
+ 0.011486371902249985
+ 0.011488097869780774
+ 0.011489823844430919
+ 0.011491549826238838
+ 0.011493275815243011
+ 0.011495001811481822
+ 0.01149672781499367
+ 0.011498453825816915
+ 0.011500179843989876
+ 0.011501905869550902
+ 0.011503631902538241
+ 0.011505357942990178
+ 0.011507083990944935
+ 0.011508810046440712
+ 0.011510536109515725
+ 0.011512262180208128
+ 0.011513988258556034
+ 0.011515714344597571
+ 0.011517440438370814
+ 0.011519166539913851
+ 0.011520892649264687
+ 0.011522618766461349
+ 0.011524344891541815
+ 0.011526071024544051
+ 0.011527797165506006
+ 0.011529523314465558
+ 0.011531249471460633
+ 0.011532975636529077
+ 0.011534701809708722
+ 0.011536427991037383
+ 0.011538154180552856
+ 0.011539880378292899
+ 0.011541606584295259
+ 0.011543332798597634
+ 0.011545059021237725
+ 0.011546785252253212
+ 0.011548511491681705
+ 0.011550237739560848
+ 0.011551963995928203
+ 0.011553690260821372
+ 0.011555416534277867
+ 0.011557142816335226
+ 0.011558869107030943
+ 0.011560595406402471
+ 0.011562321714487281
+ 0.011564048031322766
+ 0.011565774356946338
+ 0.011567500691395371
+ 0.011569227034707199
+ 0.011570953386919164
+ 0.01157267974806855
+ 0.011574406118192646
+ 0.011576132497328686
+ 0.011577858885513921
+ 0.011579585282785533
+ 0.011581311689180696
+ 0.01158303810473659
+ 0.011584764529490321
+ 0.011586490963478996
+ 0.011588217406739728
+ 0.011589943859309533
+ 0.011591670321225479
+ 0.01159339679252455
+ 0.011595123273243741
+ 0.011596849763420028
+ 0.011598576263090325
+ 0.011600302772291564
+ 0.011602029291060634
+ 0.011603755819434385
+ 0.01160548235744968
+ 0.011607208905143326
+ 0.011608935462552126
+ 0.011610662029712848
+ 0.011612388606662232
+ 0.011614115193436993
+ 0.011615841790073864
+ 0.011617568396609499
+ 0.011619295013080551
+ 0.011621021639523638
+ 0.011622748275975408
+ 0.011624474922472374
+ 0.011626201579051157
+ 0.011627928245748259
+ 0.011629654922600201
+ 0.011631381609643457
+ 0.011633108306914513
+ 0.011634835014449771
+ 0.011636561732285684
+ 0.011638288460458633
+ 0.011640015199004998
+ 0.011641741947961104
+ 0.011643468707363281
+ 0.011645195477247841
+ 0.011646922257651033
+ 0.011648649048609136
+ 0.011650375850158375
+ 0.011652102662334941
+ 0.01165382948517503
+ 0.011655556318714783
+ 0.011657283162990365
+ 0.011659010018037874
+ 0.011660736883893384
+ 0.011662463760592982
+ 0.011664190648172704
+ 0.011665917546668571
+ 0.011667644456116582
+ 0.011669371376552705
+ 0.011671098308012882
+ 0.011672825250533068
+ 0.011674552204149142
+ 0.011676279168897
+ 0.011678006144812486
+ 0.011679733131931457
+ 0.011681460130289702
+ 0.01168318713992301
+ 0.011684914160867175
+ 0.011686641193157913
+ 0.011688368236830955
+ 0.011690095291921993
+ 0.011691822358466704
+ 0.011693549436500751
+ 0.011695276526059751
+ 0.011697003627179309
+ 0.011698730739895023
+ 0.01170045786424243
+ 0.011702185000257086
+ 0.011703912147974492
+ 0.011705639307430149
+ 0.011707366478659532
+ 0.011709093661698082
+ 0.01171082085658123
+ 0.011712548063344352
+ 0.011714275282022854
+ 0.011716002512652091
+ 0.011717729755267381
+ 0.011719457009904058
+ 0.011721184276597383
+ 0.011722911555382637
+ 0.011724638846295059
+ 0.011726366149369885
+ 0.011728093464642294
+ 0.011729820792147468
+ 0.011731548131920564
+ 0.011733275483996714
+ 0.01173500284841103
+ 0.011736730225198581
+ 0.011738457614394442
+ 0.011740185016033664
+ 0.011741912430151257
+ 0.011743639856782217
+ 0.011745367295961521
+ 0.011747094747724111
+ 0.011748822212104937
+ 0.011750549689138901
+ 0.011752277178860878
+ 0.011754004681305755
+ 0.011755732196508337
+ 0.011757459724503474
+ 0.011759187265325937
+ 0.011760914819010534
+ 0.011762642385591991
+ 0.01176436996510505
+ 0.011766097557584426
+ 0.011767825163064786
+ 0.011769552781580806
+ 0.011771280413167134
+ 0.011773008057858383
+ 0.011774735715689159
+ 0.01177646338669402
+ 0.011778191070907542
+ 0.011779918768364246
+ 0.011781646479098644
+ 0.011783374203145238
+ 0.011785101940538462
+ 0.011786829691312801
+ 0.011788557455502656
+ 0.011790285233142439
+ 0.011792013024266513
+ 0.011793740828909254
+ 0.011795468647104975
+ 0.011797196478888026
+ 0.011798924324292671
+ 0.011800652183353194
+ 0.011802380056103842
+ 0.011804107942578834
+ 0.011805835842812386
+ 0.011807563756838672
+ 0.011809291684691872
+ 0.011811019626406108
+ 0.011812747582015504
+ 0.01181447555155417
+ 0.011816203535056176
+ 0.011817931532555569
+ 0.011819659544086395
+ 0.011821387569682658
+ 0.011823115609378343
+ 0.011824843663207433
+ 0.011826571731203852
+ 0.011828299813401548
+ 0.011830027909834428
+ 0.011831756020536368
+ 0.011833484145541218
+ 0.011835212284882836
+ 0.011836940438595024
+ 0.011838668606711596
+ 0.01184039678926632
+ 0.011842124986292951
+ 0.011843853197825237
+ 0.011845581423896866
+ 0.011847309664541538
+ 0.011849037919792931
+ 0.011850766189684692
+ 0.011852494474250441
+ 0.011854222773523796
+ 0.011855951087538338
+ 0.011857679416327623
+ 0.011859407759925196
+ 0.011861136118364615
+ 0.011862864491679323
+ 0.01186459287990283
+ 0.011866321283068595
+ 0.011868049701210056
+ 0.011869778134360629
+ 0.011871506582553698
+ 0.011873235045822649
+ 0.011874963524200838
+ 0.011876692017721594
+ 0.011878420526418234
+ 0.011880149050324041
+ 0.011881877589472281
+ 0.011883606143896226
+ 0.01188533471362907
+ 0.011887063298704058
+ 0.011888791899154347
+ 0.011890520515013124
+ 0.011892249146313526
+ 0.011893977793088678
+ 0.011895706455371679
+ 0.011897435133195612
+ 0.011899163826593546
+ 0.011900892535598531
+ 0.011902621260243558
+ 0.011904350000561652
+ 0.011906078756585779
+ 0.011907807528348925
+ 0.011909536315883981
+ 0.011911265119223911
+ 0.011912993938401591
+ 0.011914722773449887
+ 0.011916451624401666
+ 0.011918180491289775
+ 0.011919909374147017
+ 0.011921638273006192
+ 0.011923367187900063
+ 0.011925096118861386
+ 0.011926825065922899
+ 0.011928554029117319
+ 0.01193028300847733
+ 0.0119320120040356
+ 0.01193374101582478
+ 0.011935470043877525
+ 0.011937199088226408
+ 0.011938928148904054
+ 0.011940657225943009
+ 0.011942386319375834
+ 0.011944115429235045
+ 0.011945844555553172
+ 0.011947573698362685
+ 0.011949302857696065
+ 0.011951032033585753
+ 0.011952761226064168
+ 0.011954490435163745
+ 0.011956219660916851
+ 0.011957948903355851
+ 0.011959678162513107
+ 0.011961407438420935
+ 0.011963136731111646
+ 0.011964866040617517
+ 0.011966595366970836
+ 0.011968324710203836
+ 0.01197005407034874
+ 0.011971783447437757
+ 0.011973512841503078
+ 0.011975242252576884
+ 0.0119769716806913
+ 0.011978701125878446
+ 0.01198043058817045
+ 0.011982160067599383
+ 0.011983889564197324
+ 0.011985619077996322
+ 0.011987348609028396
+ 0.011989078157325549
+ 0.011990807722919774
+ 0.011992537305843043
+ 0.011994266906127295
+ 0.011995996523804469
+ 0.011997726158906452
+ 0.011999455811465165
+ 0.01200118548151244
+ 0.01200291516908015
+ 0.012004644874200124
+ 0.012006374596904158
+ 0.012008104337224048
+ 0.012009834095191577
+ 0.012011563870838465
+ 0.012013293664196472
+ 0.012015023475297296
+ 0.012016753304172626
+ 0.012018483150854145
+ 0.012020213015373491
+ 0.012021942897762311
+ 0.012023672798052202
+ 0.012025402716274771
+ 0.012027132652461586
+ 0.012028862606644198
+ 0.012030592578854152
+ 0.012032322569122948
+ 0.012034052577482102
+ 0.012035782603963067
+ 0.012037512648597341
+ 0.012039242711416317
+ 0.012040972792451423
+ 0.012042702891734078
+ 0.012044433009295648
+ 0.01204616314516747
+ 0.012047893299380935
+ 0.012049623471967336
+ 0.012051353662957962
+ 0.012053083872384114
+ 0.012054814100277061
+ 0.012056544346668035
+ 0.012058274611588262
+ 0.012060004895068969
+ 0.012061735197141302
+ 0.012063465517836465
+ 0.012065195857185572
+ 0.012066926215219782
+ 0.012068656591970201
+ 0.012070386987467903
+ 0.012072117401743972
+ 0.012073847834829475
+ 0.012075578286755408
+ 0.012077308757552811
+ 0.012079039247252683
+ 0.012080769755885991
+ 0.012082500283483677
+ 0.012084230830076705
+ 0.012085961395695977
+ 0.012087691980372411
+ 0.012089422584136865
+ 0.012091153207020212
+ 0.012092883849053302
+ 0.012094614510266952
+ 0.012096345190691965
+ 0.01209807589035913
+ 0.012099806609299216
+ 0.012101537347542969
+ 0.012103268105121133
+ 0.012104998882064396
+ 0.012106729678403464
+ 0.012108460494168997
+ 0.012110191329391664
+ 0.012111922184102101
+ 0.012113653058330917
+ 0.012115383952108701
+ 0.012117114865466062
+ 0.012118845798433538
+ 0.012120576751041667
+ 0.012122307723320987
+ 0.012124038715302
+ 0.012125769727015186
+ 0.012127500758491011
+ 0.012129231809759932
+ 0.012130962880852367
+ 0.012132693971798742
+ 0.012134425082629432
+ 0.012136156213374829
+ 0.01213788736406528
+ 0.012139618534731122
+ 0.012141349725402682
+ 0.01214308093611024
+ 0.0121448121668841
+ 0.012146543417754511
+ 0.012148274688751718
+ 0.01215000597990594
+ 0.012151737291247416
+ 0.0121534686228063
+ 0.012155199974612781
+ 0.012156931346697007
+ 0.012158662739089105
+ 0.01216039415181921
+ 0.012162125584917402
+ 0.012163857038413762
+ 0.012165588512338357
+ 0.012167320006721209
+ 0.012169051521592368
+ 0.012170783056981825
+ 0.012172514612919577
+ 0.012174246189435588
+ 0.012175977786559794
+ 0.012177709404322152
+ 0.012179441042752572
+ 0.012181172701880932
+ 0.012182904381737126
+ 0.012184636082351012
+ 0.012186367803752419
+ 0.012188099545971181
+ 0.012189831309037114
+ 0.012191563092979982
+ 0.012193294897829558
+ 0.01219502672361561
+ 0.012196758570367856
+ 0.012198490438116018
+ 0.012200222326889798
+ 0.01220195423671885
+ 0.012203686167632869
+ 0.012205418119661467
+ 0.012207150092834277
+ 0.012208882087180909
+ 0.012210614102730957
+ 0.012212346139513988
+ 0.012214078197559548
+ 0.012215810276897191
+ 0.012217542377556408
+ 0.012219274499566708
+ 0.012221006642957584
+ 0.01222273880775847
+ 0.012224470993998841
+ 0.012226203201708124
+ 0.012227935430915698
+ 0.012229667681650987
+ 0.012231399953943354
+ 0.012233132247822158
+ 0.012234864563316726
+ 0.012236596900456384
+ 0.012238329259270436
+ 0.01224006163978817
+ 0.012241794042038857
+ 0.012243526466051731
+ 0.012245258911856044
+ 0.012246991379481003
+ 0.012248723868955787
+ 0.012250456380309603
+ 0.012252188913571594
+ 0.012253921468770907
+ 0.012255654045936671
+ 0.012257386645098003
+ 0.012259119266283976
+ 0.012260851909523668
+ 0.012262584574846152
+ 0.012264317262280448
+ 0.012266049971855573
+ 0.012267782703600542
+ 0.012269515457544348
+ 0.012271248233715932
+ 0.012272981032144269
+ 0.012274713852858294
+ 0.012276446695886904
+ 0.012278179561259005
+ 0.01227991244900347
+ 0.012281645359149192
+ 0.012283378291724985
+ 0.012285111246759694
+ 0.012286844224282115
+ 0.012288577224321069
+ 0.012290310246905302
+ 0.0122920432920636
+ 0.01229377635982468
+ 0.012295509450217278
+ 0.012297242563270109
+ 0.012298975699011859
+ 0.012300708857471193
+ 0.012302442038676774
+ 0.012304175242657246
+ 0.012305908469441207
+ 0.012307641719057278
+ 0.012309374991534047
+ 0.012311108286900081
+ 0.012312841605183929
+ 0.012314574946414131
+ 0.012316308310619193
+ 0.012318041697827626
+ 0.012319775108067919
+ 0.012321508541368535
+ 0.012323241997757904
+ 0.012324975477264482
+ 0.012326708979916683
+ 0.012328442505742884
+ 0.012330176054771503
+ 0.012331909627030872
+ 0.012333643222549347
+ 0.012335376841355246
+ 0.012337110483476908
+ 0.01233884414894262
+ 0.012340577837780656
+ 0.012342311550019275
+ 0.012344045285686724
+ 0.012345779044811244
+ 0.012347512827421029
+ 0.012349246633544284
+ 0.012350980463209177
+ 0.012352714316443884
+ 0.012354448193276545
+ 0.012356182093735268
+ 0.01235791601784819
+ 0.01235964996564339
+ 0.012361383937148938
+ 0.012363117932392902
+ 0.012364851951403334
+ 0.012366585994208239
+ 0.012368320060835649
+ 0.012370054151313536
+ 0.01237178826566989
+ 0.012373522403932672
+ 0.012375256566129809
+ 0.012376990752289227
+ 0.012378724962438853
+ 0.012380459196606569
+ 0.012382193454820254
+ 0.012383927737107756
+ 0.012385662043496939
+ 0.012387396374015602
+ 0.012389130728691572
+ 0.012390865107552655
+ 0.01239259951062658
+ 0.012394333937941145
+ 0.012396068389524088
+ 0.012397802865403127
+ 0.012399537365605982
+ 0.012401271890160326
+ 0.012403006439093851
+ 0.012404741012434219
+ 0.012406475610209073
+ 0.012408210232446027
+ 0.012409944879172709
+ 0.012411679550416705
+ 0.012413414246205587
+ 0.012415148966566919
+ 0.012416883711528265
+ 0.012418618481117116
+ 0.012420353275361031
+ 0.012422088094287454
+ 0.012423822937923911
+ 0.012425557806297845
+ 0.012427292699436694
+ 0.0124290276173679
+ 0.012430762560118875
+ 0.012432497527717017
+ 0.012434232520189692
+ 0.012435967537564294
+ 0.012437702579868148
+ 0.012439437647128607
+ 0.012441172739372957
+ 0.012442907856628544
+ 0.012444642998922607
+ 0.012446378166282428
+ 0.012448113358735276
+ 0.012449848576308349
+ 0.012451583819028922
+ 0.01245331908692413
+ 0.012455054380021223
+ 0.012456789698347336
+ 0.012458525041929623
+ 0.012460260410795227
+ 0.012461995804971294
+ 0.012463731224484893
+ 0.012465466669363146
+ 0.012467202139633099
+ 0.012468937635321828
+ 0.012470673156456363
+ 0.012472408703063742
+ 0.012474144275170974
+ 0.012475879872805046
+ 0.012477615495992942
+ 0.012479351144761621
+ 0.012481086819138029
+ 0.012482822519149093
+ 0.012484558244821732
+ 0.012486293996182833
+ 0.012488029773259295
+ 0.01248976557607798
+ 0.012491501404665725
+ 0.012493237259049378
+ 0.012494973139255754
+ 0.012496709045311652
+ 0.012498444977243879
+ 0.012500180935079173
+ 0.012501916918844301
+ 0.012503652928566025
+ 0.012505388964271036
+ 0.01250712502598606
+ 0.012508861113737781
+ 0.012510597227552883
+ 0.012512333367458018
+ 0.012514069533479845
+ 0.012515805725644974
+ 0.012517541943980037
+ 0.012519278188511609
+ 0.012521014459266304
+ 0.012522750756270658
+ 0.012524487079551229
+ 0.012526223429134557
+ 0.012527959805047161
+ 0.012529696207315547
+ 0.012531432635966195
+ 0.012533169091025578
+ 0.012534905572520164
+ 0.012536642080476368
+ 0.012538378614920654
+ 0.012540115175879401
+ 0.012541851763379014
+ 0.012543588377445862
+ 0.012545325018106337
+ 0.012547061685386739
+ 0.012548798379313443
+ 0.012550535099912758
+ 0.012552271847210963
+ 0.01255400862123437
+ 0.012555745422009228
+ 0.012557482249561805
+ 0.012559219103918332
+ 0.012560955985105034
+ 0.012562692893148125
+ 0.012564429828073797
+ 0.012566166789908228
+ 0.012567903778677563
+ 0.012569640794407979
+ 0.012571377837125582
+ 0.012573114906856512
+ 0.012574852003626848
+ 0.012576589127462675
+ 0.012578326278390077
+ 0.012580063456435095
+ 0.012581800661623784
+ 0.012583537893982168
+ 0.01258527515353622
+ 0.012587012440311992
+ 0.012588749754335417
+ 0.012590487095632472
+ 0.012592224464229099
+ 0.012593961860151253
+ 0.012595699283424817
+ 0.012597436734075717
+ 0.012599174212129843
+ 0.012600911717613045
+ 0.012602649250551198
+ 0.012604386810970133
+ 0.012606124398895696
+ 0.012607862014353658
+ 0.012609599657369864
+ 0.012611337327970061
+ 0.012613075026180018
+ 0.012614812752025497
+ 0.01261655050553223
+ 0.012618288286725942
+ 0.012620026095632324
+ 0.012621763932277074
+ 0.012623501796685865
+ 0.012625239688884368
+ 0.012626977608898221
+ 0.01262871555675305
+ 0.012630453532474481
+ 0.012632191536088098
+ 0.012633929567619507
+ 0.012635667627094258
+ 0.012637405714537918
+ 0.012639143829976026
+ 0.012640881973434106
+ 0.012642620144937658
+ 0.012644358344512207
+ 0.012646096572183208
+ 0.012647834827976137
+ 0.012649573111916432
+ 0.012651311424029549
+ 0.012653049764340901
+ 0.012654788132875879
+ 0.012656526529659902
+ 0.012658264954718328
+ 0.012660003408076532
+ 0.012661741889759855
+ 0.012663480399793614
+ 0.012665218938203151
+ 0.012666957505013753
+ 0.012668696100250716
+ 0.012670434723939316
+ 0.012672173376104795
+ 0.012673912056772414
+ 0.012675650765967378
+ 0.012677389503714949
+ 0.012679128270040287
+ 0.012680867064968579
+ 0.012682605888525001
+ 0.012684344740734722
+ 0.012686083621622869
+ 0.012687822531214563
+ 0.012689561469534939
+ 0.012691300436609054
+ 0.012693039432462031
+ 0.012694778457118928
+ 0.012696517510604778
+ 0.012698256592944646
+ 0.012699995704163542
+ 0.012701734844286479
+ 0.012703474013338432
+ 0.012705213211344425
+ 0.012706952438329389
+ 0.012708691694318283
+ 0.012710430979336045
+ 0.012712170293407599
+ 0.012713909636557851
+ 0.012715649008811713
+ 0.012717388410194035
+ 0.012719127840729677
+ 0.012720867300443523
+ 0.01272260678936039
+ 0.012724346307505092
+ 0.012726085854902456
+ 0.012727825431577258
+ 0.01272956503755427
+ 0.012731304672858275
+ 0.012733044337513998
+ 0.012734784031546207
+ 0.012736523754979599
+ 0.012738263507838885
+ 0.012740003290148757
+ 0.012741743101933885
+ 0.012743482943218943
+ 0.012745222814028571
+ 0.012746962714387428
+ 0.012748702644320088
+ 0.012750442603851201
+ 0.012752182593005333
+ 0.012753922611807078
+ 0.012755662660280978
+ 0.012757402738451613
+ 0.012759142846343486
+ 0.012760882983981134
+ 0.012762623151389065
+ 0.012764363348591764
+ 0.0127661035756137
+ 0.012767843832479364
+ 0.012769584119213185
+ 0.012771324435839594
+ 0.012773064782383037
+ 0.0127748051588679
+ 0.012776545565318589
+ 0.01277828600175946
+ 0.012780026468214911
+ 0.012781766964709253
+ 0.012783507491266855
+ 0.012785248047912031
+ 0.012786988634669084
+ 0.012788729251562315
+ 0.012790469898616007
+ 0.012792210575854418
+ 0.01279395128330179
+ 0.012795692020982396
+ 0.012797432788920426
+ 0.012799173587140106
+ 0.012800914415665623
+ 0.012802655274521168
+ 0.01280439616373092
+ 0.01280613708331901
+ 0.012807878033309591
+ 0.012809619013726792
+ 0.012811360024594707
+ 0.012813101065937464
+ 0.012814842137779123
+ 0.012816583240143769
+ 0.012818324373055457
+ 0.012820065536538224
+ 0.01282180673061609
+ 0.012823547955313111
+ 0.012825289210653238
+ 0.012827030496660482
+ 0.012828771813358833
+ 0.012830513160772224
+ 0.01283225453892462
+ 0.012833995947839938
+ 0.012835737387542097
+ 0.01283747885805501
+ 0.012839220359402579
+ 0.012840961891608658
+ 0.012842703454697126
+ 0.012844445048691819
+ 0.012846186673616601
+ 0.012847928329495266
+ 0.012849670016351631
+ 0.012851411734209495
+ 0.012853153483092634
+ 0.012854895263024824
+ 0.012856637074029804
+ 0.012858378916131329
+ 0.012860120789353129
+ 0.012861862693718897
+ 0.012863604629252342
+ 0.012865346595977155
+ 0.012867088593916999
+ 0.012868830623095547
+ 0.012870572683536419
+ 0.012872314775263271
+ 0.012874056898299721
+ 0.012875799052669352
+ 0.012877541238395764
+ 0.012879283455502537
+ 0.012881025704013237
+ 0.012882767983951413
+ 0.01288451029534058
+ 0.012886252638204292
+ 0.012887995012566046
+ 0.012889737418449338
+ 0.012891479855877654
+ 0.01289322232487445
+ 0.012894964825463193
+ 0.012896707357667316
+ 0.012898449921510268
+ 0.012900192517015451
+ 0.012901935144206253
+ 0.012903677803106086
+ 0.012905420493738299
+ 0.012907163216126265
+ 0.012908905970293349
+ 0.012910648756262858
+ 0.01291239157405814
+ 0.01291413442370248
+ 0.012915877305219184
+ 0.012917620218631531
+ 0.012919363163962787
+ 0.012921106141236201
+ 0.012922849150475037
+ 0.012924592191702501
+ 0.012926335264941824
+ 0.012928078370216188
+ 0.01292982150754878
+ 0.012931564676962794
+ 0.012933307878481385
+ 0.012935051112127685
+ 0.012936794377924858
+ 0.012938537675896006
+ 0.012940281006064241
+ 0.012942024368452664
+ 0.012943767763084337
+ 0.012945511189982356
+ 0.012947254649169761
+ 0.012948998140669609
+ 0.012950741664504911
+ 0.012952485220698681
+ 0.012954228809273927
+ 0.012955972430253662
+ 0.012957716083660831
+ 0.012959459769518421
+ 0.012961203487849354
+ 0.0129629472386766
+ 0.012964691022023057
+ 0.012966434837911659
+ 0.01296817868636529
+ 0.01296992256740683
+ 0.012971666481059161
+ 0.012973410427345141
+ 0.012975154406287616
+ 0.012976898417909414
+ 0.012978642462233344
+ 0.012980386539282256
+ 0.012982130649078896
+ 0.012983874791646059
+ 0.012985618967006505
+ 0.012987363175183026
+ 0.012989107416198324
+ 0.012990851690075139
+ 0.012992595996836186
+ 0.012994340336504179
+ 0.0129960847091018
+ 0.012997829114651719
+ 0.012999573553176616
+ 0.013001318024699119
+ 0.013003062529241893
+ 0.013004807066827535
+ 0.013006551637478674
+ 0.013008296241217927
+ 0.01301004087806785
+ 0.01301178554805103
+ 0.013013530251190022
+ 0.013015274987507385
+ 0.01301701975702564
+ 0.013018764559767311
+ 0.013020509395754935
+ 0.013022254265010972
+ 0.013023999167557926
+ 0.013025744103418257
+ 0.013027489072614451
+ 0.013029234075168917
+ 0.013030979111104098
+ 0.013032724180442422
+ 0.013034469283206302
+ 0.013036214419418126
+ 0.013037959589100272
+ 0.013039704792275104
+ 0.013041450028964997
+ 0.013043195299192281
+ 0.013044940602979284
+ 0.013046685940348328
+ 0.013048431311321733
+ 0.01305017671592177
+ 0.013051922154170732
+ 0.013053667626090877
+ 0.013055413131704477
+ 0.013057158671033761
+ 0.013058904244100973
+ 0.013060649850928314
+ 0.013062395491537987
+ 0.013064141165952189
+ 0.013065886874193104
+ 0.01306763261628289
+ 0.013069378392243714
+ 0.013071124202097705
+ 0.013072870045867003
+ 0.013074615923573722
+ 0.013076361835239957
+ 0.013078107780887803
+ 0.013079853760539342
+ 0.013081599774216645
+ 0.013083345821941752
+ 0.013085091903736712
+ 0.013086838019623565
+ 0.013088584169624303
+ 0.01309033035376095
+ 0.013092076572055484
+ 0.013093822824529902
+ 0.013095569111206143
+ 0.013097315432106191
+ 0.013099061787251972
+ 0.013100808176665407
+ 0.013102554600368424
+ 0.01310430105838294
+ 0.013106047550730811
+ 0.013107794077433958
+ 0.013109540638514215
+ 0.013111287233993464
+ 0.013113033863893519
+ 0.01311478052823623
+ 0.013116527227043399
+ 0.013118273960336851
+ 0.013120020728138376
+ 0.013121767530469728
+ 0.013123514367352714
+ 0.01312526123880906
+ 0.013127008144860524
+ 0.013128755085528836
+ 0.013130502060835714
+ 0.01313224907080285
+ 0.013133996115451973
+ 0.013135743194804733
+ 0.013137490308882813
+ 0.013139237457707877
+ 0.013140984641301555
+ 0.013142731859685499
+ 0.013144479112881302
+ 0.013146226400910606
+ 0.013147973723794991
+ 0.013149721081556036
+ 0.013151468474215312
+ 0.013153215901794409
+ 0.013154963364314843
+ 0.013156710861798163
+ 0.013158458394265871
+ 0.013160205961739526
+ 0.013161953564240582
+ 0.013163701201790532
+ 0.013165448874410882
+ 0.013167196582123068
+ 0.013168944324948539
+ 0.013170692102908743
+ 0.013172439916025106
+ 0.013174187764319048
+ 0.013175935647811955
+ 0.013177683566525236
+ 0.013179431520480261
+ 0.013181179509698396
+ 0.013182927534200995
+ 0.013184675594009394
+ 0.013186423689144947
+ 0.013188171819628941
+ 0.0131899199854827
+ 0.013191668186727502
+ 0.013193416423384662
+ 0.013195164695475416
+ 0.013196913003021041
+ 0.013198661346042776
+ 0.013200409724561853
+ 0.013202158138599511
+ 0.013203906588176936
+ 0.013205655073315333
+ 0.013207403594035912
+ 0.013209152150359813
+ 0.013210900742308223
+ 0.013212649369902263
+ 0.013214398033163112
+ 0.013216146732111876
+ 0.013217895466769668
+ 0.013219644237157593
+ 0.013221393043296748
+ 0.013223141885208196
+ 0.013224890762913031
+ 0.013226639676432289
+ 0.013228388625787013
+ 0.013230137610998241
+ 0.013231886632086996
+ 0.013233635689074281
+ 0.013235384781981101
+ 0.01323713391082843
+ 0.013238883075637243
+ 0.013240632276428497
+ 0.013242381513223161
+ 0.013244130786042148
+ 0.0132458800949064
+ 0.013247629439836824
+ 0.013249378820854328
+ 0.0132511282379798
+ 0.013252877691234113
+ 0.01325462718063814
+ 0.013256376706212721
+ 0.013258126267978723
+ 0.013259875865956979
+ 0.013261625500168291
+ 0.013263375170633473
+ 0.013265124877373309
+ 0.013266874620408627
+ 0.013268624399760153
+ 0.013270374215448681
+ 0.013272124067494935
+ 0.013273873955919674
+ 0.013275623880743621
+ 0.013277373841987484
+ 0.013279123839671966
+ 0.013280873873817768
+ 0.013282623944445576
+ 0.013284374051576044
+ 0.013286124195229822
+ 0.013287874375427592
+ 0.013289624592189943
+ 0.013291374845537527
+ 0.013293125135490951
+ 0.013294875462070806
+ 0.01329662582529768
+ 0.013298376225192162
+ 0.013300126661774804
+ 0.01330187713506617
+ 0.013303627645086778
+ 0.013305378191857186
+ 0.013307128775397909
+ 0.01330887939572944
+ 0.013310630052872282
+ 0.013312380746846927
+ 0.01331413147767384
+ 0.013315882245373476
+ 0.013317633049966303
+ 0.013319383891472737
+ 0.013321134769913208
+ 0.013322885685308166
+ 0.013324636637677972
+ 0.013326387627043038
+ 0.013328138653423745
+ 0.013329889716840466
+ 0.013331640817313547
+ 0.013333391954863343
+ 0.0133351431295102
+ 0.013336894341274422
+ 0.013338645590176333
+ 0.013340396876236234
+ 0.013342148199474423
+ 0.013343899559911165
+ 0.013345650957566735
+ 0.013347402392461372
+ 0.013349153864615364
+ 0.013350905374048897
+ 0.013352656920782214
+ 0.013354408504835529
+ 0.013356160126229059
+ 0.01335791178498294
+ 0.0133596634811174
+ 0.013361415214652582
+ 0.013363166985608641
+ 0.013364918794005734
+ 0.013366670639863973
+ 0.013368422523203494
+ 0.013370174444044402
+ 0.013371926402406789
+ 0.013373678398310752
+ 0.013375430431776357
+ 0.01337718250282369
+ 0.013378934611472782
+ 0.01338068675774368
+ 0.013382438941656418
+ 0.013384191163231024
+ 0.013385943422487487
+ 0.013387695719445812
+ 0.013389448054126001
+ 0.013391200426548022
+ 0.013392952836731822
+ 0.013394705284697375
+ 0.013396457770464614
+ 0.013398210294053473
+ 0.013399962855483867
+ 0.013401715454775717
+ 0.013403468091948896
+ 0.013405220767023308
+ 0.013406973480018838
+ 0.013408726230955317
+ 0.013410479019852633
+ 0.013412231846730606
+ 0.013413984711609084
+ 0.013415737614507874
+ 0.013417490555446786
+ 0.013419243534445622
+ 0.013420996551524175
+ 0.013422749606702191
+ 0.013424502699999471
+ 0.013426255831435752
+ 0.013428009001030781
+ 0.013429762208804293
+ 0.013431515454775994
+ 0.013433268738965618
+ 0.013435022061392831
+ 0.01343677542207735
+ 0.013438528821038848
+ 0.013440282258296968
+ 0.013442035733871385
+ 0.013443789247781739
+ 0.013445542800047672
+ 0.013447296390688784
+ 0.013449050019724716
+ 0.013450803687175042
+ 0.013452557393059363
+ 0.01345431113739725
+ 0.013456064920208281
+ 0.013457818741512004
+ 0.013459572601327992
+ 0.013461326499675734
+ 0.013463080436574765
+ 0.013464834412044645
+ 0.013466588426104818
+ 0.013468342478774804
+ 0.013470096570074076
+ 0.013471850700022114
+ 0.013473604868638364
+ 0.013475359075942281
+ 0.013477113321953303
+ 0.013478867606690856
+ 0.013480621930174354
+ 0.013482376292423206
+ 0.013484130693456801
+ 0.013485885133294521
+ 0.013487639611955758
+ 0.013489394129459849
+ 0.013491148685826142
+ 0.013492903281074003
+ 0.01349465791522275
+ 0.013496412588291703
+ 0.013498167300300153
+ 0.013499922051267413
+ 0.013501676841212779
+ 0.013503431670155523
+ 0.013505186538114897
+ 0.01350694144511016
+ 0.013508696391160559
+ 0.013510451376285326
+ 0.013512206400503693
+ 0.01351396146383487
+ 0.013515716566298039
+ 0.0135174717079124
+ 0.013519226888697149
+ 0.013520982108671437
+ 0.013522737367854433
+ 0.013524492666265263
+ 0.013526248003923106
+ 0.013528003380847059
+ 0.013529758797056242
+ 0.013531514252569756
+ 0.013533269747406701
+ 0.013535025281586182
+ 0.013536780855127236
+ 0.013538536468048954
+ 0.013540292120370364
+ 0.013542047812110533
+ 0.013543803543288482
+ 0.013545559313923233
+ 0.013547315124033798
+ 0.013549070973639178
+ 0.013550826862758349
+ 0.013552582791410302
+ 0.013554338759614001
+ 0.013556094767388406
+ 0.013557850814752479
+ 0.01355960690172512
+ 0.013561363028325297
+ 0.01356311919457189
+ 0.013564875400483824
+ 0.013566631646079998
+ 0.013568387931379277
+ 0.01357014425640056
+ 0.013571900621162689
+ 0.013573657025684518
+ 0.013575413469984896
+ 0.013577169954082665
+ 0.01357892647799664
+ 0.013580683041745624
+ 0.013582439645348427
+ 0.013584196288823827
+ 0.013585952972190613
+ 0.013587709695467567
+ 0.013589466458673444
+ 0.013591223261826955
+ 0.013592980104946889
+ 0.013594736988051942
+ 0.013596493911160851
+ 0.01359825087429231
+ 0.013600007877465022
+ 0.013601764920697689
+ 0.013603522004008948
+ 0.0136052791274175
+ 0.013607036290941994
+ 0.013608793494601068
+ 0.013610550738413359
+ 0.013612308022397485
+ 0.01361406534657207
+ 0.013615822710955712
+ 0.013617580115567018
+ 0.01361933756042456
+ 0.013621095045546917
+ 0.013622852570952642
+ 0.013624610136660307
+ 0.013626367742688432
+ 0.013628125389055558
+ 0.013629883075780221
+ 0.013631640802880896
+ 0.013633398570376118
+ 0.013635156378284377
+ 0.013636914226624143
+ 0.013638672115413891
+ 0.013640430044672086
+ 0.013642188014417161
+ 0.013643946024667572
+ 0.013645704075441746
+ 0.013647462166758108
+ 0.013649220298635051
+ 0.01365097847109099
+ 0.013652736684144315
+ 0.0136544949378134
+ 0.013656253232116606
+ 0.013658011567072303
+ 0.013659769942698846
+ 0.013661528359014553
+ 0.013663286816037772
+ 0.013665045313786811
+ 0.013666803852279977
+ 0.01366856243153557
+ 0.013670321051571881
+ 0.013672079712407199
+ 0.013673838414059758
+ 0.013675597156547859
+ 0.013677355939889719
+ 0.013679114764103594
+ 0.013680873629207679
+ 0.013682632535220238
+ 0.013684391482159447
+ 0.013686150470043509
+ 0.013687909498890614
+ 0.013689668568718952
+ 0.013691427679546673
+ 0.013693186831391927
+ 0.013694946024272885
+ 0.013696705258207665
+ 0.013698464533214398
+ 0.013700223849311211
+ 0.013701983206516215
+ 0.013703742604847488
+ 0.013705502044323132
+ 0.013707261524961207
+ 0.013709021046779801
+ 0.013710780609796957
+ 0.013712540214030742
+ 0.013714299859499167
+ 0.013716059546220277
+ 0.013717819274212084
+ 0.013719579043492589
+ 0.01372133885407981
+ 0.013723098705991716
+ 0.013724858599246284
+ 0.013726618533861487
+ 0.013728378509855296
+ 0.013730138527245651
+ 0.013731898586050466
+ 0.013733658686287703
+ 0.013735418827975257
+ 0.013737179011131069
+ 0.013738939235772997
+ 0.01374069950191897
+ 0.013742459809586825
+ 0.01374422015879446
+ 0.013745980549559722
+ 0.013747740981900475
+ 0.013749501455834548
+ 0.013751261971379752
+ 0.01375302252855394
+ 0.013754783127374909
+ 0.013756543767860462
+ 0.013758304450028383
+ 0.013760065173896441
+ 0.013761825939482438
+ 0.013763586746804116
+ 0.013765347595879237
+ 0.013767108486725525
+ 0.013768869419360726
+ 0.013770630393802559
+ 0.013772391410068736
+ 0.013774152468176953
+ 0.01377591356814491
+ 0.013777674709990298
+ 0.01377943589373077
+ 0.013781197119384003
+ 0.013782958386967657
+ 0.013784719696499362
+ 0.013786481047996764
+ 0.013788242441477461
+ 0.013790003876959113
+ 0.013791765354459291
+ 0.013793526873995597
+ 0.013795288435585629
+ 0.013797050039246963
+ 0.013798811684997149
+ 0.013800573372853746
+ 0.013802335102834311
+ 0.013804096874956392
+ 0.013805858689237494
+ 0.013807620545695145
+ 0.013809382444346848
+ 0.01381114438521013
+ 0.01381290636830244
+ 0.013814668393641285
+ 0.013816430461244122
+ 0.013818192571128412
+ 0.013819954723311618
+ 0.013821716917811184
+ 0.01382347915464451
+ 0.013825241433829042
+ 0.013827003755382202
+ 0.013828766119321373
+ 0.013830528525663958
+ 0.013832290974427354
+ 0.013834053465628909
+ 0.013835815999286004
+ 0.013837578575415984
+ 0.013839341194036205
+ 0.013841103855163992
+ 0.013842866558816695
+ 0.013844629305011605
+ 0.013846392093766043
+ 0.013848154925097304
+ 0.013849917799022667
+ 0.01385168071555944
+ 0.013853443674724854
+ 0.013855206676536209
+ 0.013856969721010715
+ 0.013858732808165649
+ 0.013860495938018223
+ 0.013862259110585657
+ 0.013864022325885177
+ 0.013865785583933974
+ 0.013867548884749246
+ 0.013869312228348191
+ 0.013871075614747942
+ 0.013872839043965718
+ 0.013874602516018649
+ 0.013876366030923888
+ 0.013878129588698556
+ 0.013879893189359794
+ 0.013881656832924734
+ 0.013883420519410454
+ 0.013885184248834068
+ 0.013886948021212672
+ 0.01388871183656335
+ 0.013890475694903147
+ 0.01389223959624917
+ 0.013894003540618424
+ 0.013895767528027977
+ 0.013897531558494873
+ 0.013899295632036115
+ 0.013901059748668726
+ 0.013902823908409726
+ 0.013904588111276076
+ 0.013906352357284808
+ 0.013908116646452851
+ 0.013909880978797222
+ 0.013911645354334859
+ 0.013913409773082709
+ 0.013915174235057701
+ 0.013916938740276798
+ 0.013918703288756896
+ 0.01392046788051491
+ 0.01392223251556776
+ 0.013923997193932322
+ 0.013925761915625499
+ 0.013927526680664144
+ 0.013929291489065155
+ 0.013931056340845356
+ 0.013932821236021613
+ 0.013934586174610755
+ 0.013936351156629612
+ 0.013938116182095032
+ 0.013939881251023788
+ 0.013941646363432692
+ 0.013943411519338552
+ 0.013945176718758135
+ 0.013946941961708212
+ 0.013948707248205574
+ 0.013950472578266947
+ 0.013952237951909103
+ 0.013954003369148751
+ 0.01395576883000265
+ 0.013957534334487485
+ 0.013959299882619994
+ 0.013961065474416863
+ 0.013962831109894791
+ 0.013964596789070449
+ 0.013966362511960524
+ 0.01396812827858168
+ 0.013969894088950557
+ 0.013971659943083815
+ 0.01397342584099808
+ 0.013975191782709985
+ 0.01397695776823615
+ 0.013978723797593191
+ 0.013980489870797684
+ 0.013982255987866241
+ 0.013984022148815433
+ 0.013985788353661847
+ 0.013987554602422026
+ 0.013989320895112553
+ 0.013991087231749936
+ 0.013992853612350736
+ 0.013994620036931492
+ 0.013996386505508688
+ 0.01399815301809886
+ 0.013999919574718505
+ 0.014001686175384097
+ 0.014003452820112137
+ 0.014005219508919097
+ 0.014006986241821428
+ 0.014008753018835585
+ 0.014010519839978034
+ 0.014012286705265187
+ 0.014014053614713496
+ 0.014015820568339369
+ 0.014017587566159208
+ 0.014019354608189413
+ 0.014021121694446402
+ 0.014022888824946534
+ 0.014024655999706188
+ 0.014026423218741724
+ 0.014028190482069514
+ 0.014029957789705874
+ 0.014031725141667183
+ 0.014033492537969742
+ 0.014035259978629894
+ 0.014037027463663927
+ 0.014038794993088147
+ 0.014040562566918845
+ 0.014042330185172328
+ 0.014044097847864844
+ 0.01404586555501269
+ 0.014047633306632088
+ 0.014049401102739308
+ 0.01405116894335059
+ 0.014052936828482165
+ 0.014054704758150243
+ 0.014056472732371051
+ 0.014058240751160781
+ 0.014060008814535641
+ 0.014061776922511815
+ 0.014063545075105469
+ 0.014065313272332774
+ 0.014067081514209911
+ 0.014068849800753019
+ 0.01407061813197822
+ 0.01407238650790168
+ 0.014074154928539495
+ 0.014075923393907808
+ 0.014077691904022695
+ 0.014079460458900286
+ 0.014081229058556652
+ 0.014082997703007858
+ 0.014084766392270026
+ 0.014086535126359169
+ 0.014088303905291345
+ 0.01409007272908264
+ 0.014091841597749052
+ 0.014093610511306608
+ 0.01409537946977135
+ 0.014097148473159272
+ 0.014098917521486395
+ 0.014100686614768682
+ 0.014102455753022134
+ 0.014104224936262724
+ 0.014105994164506423
+ 0.014107763437769177
+ 0.014109532756066939
+ 0.014111302119415647
+ 0.014113071527831237
+ 0.014114840981329648
+ 0.014116610479926758
+ 0.014118380023638508
+ 0.014120149612480756
+ 0.014121919246469416
+ 0.014123688925620357
+ 0.014125458649949463
+ 0.014127228419472589
+ 0.014128998234205575
+ 0.014130768094164277
+ 0.01413253799936454
+ 0.014134307949822171
+ 0.014136077945553001
+ 0.014137847986572822
+ 0.014139618072897464
+ 0.014141388204542686
+ 0.01414315838152431
+ 0.014144928603858077
+ 0.014146698871559765
+ 0.014148469184645129
+ 0.014150239543129935
+ 0.014152009947029896
+ 0.014153780396360772
+ 0.014155550891138262
+ 0.014157321431378093
+ 0.014159092017095965
+ 0.014160862648307579
+ 0.014162633325028616
+ 0.014164404047274778
+ 0.014166174815061711
+ 0.014167945628405086
+ 0.014169716487320579
+ 0.014171487391823794
+ 0.014173258341930391
+ 0.014175029337656006
+ 0.014176800379016259
+ 0.014178571466026741
+ 0.014180342598703079
+ 0.014182113777060849
+ 0.014183885001115634
+ 0.014185656270883034
+ 0.01418742758637861
+ 0.014189198947617906
+ 0.014190970354616483
+ 0.014192741807389889
+ 0.014194513305953655
+ 0.014196284850323312
+ 0.014198056440514372
+ 0.01419982807654235
+ 0.01420159975842273
+ 0.01420337148617103
+ 0.014205143259802707
+ 0.014206915079333266
+ 0.014208686944778141
+ 0.014210458856152826
+ 0.014212230813472728
+ 0.014214002816753326
+ 0.014215774866010033
+ 0.014217546961258282
+ 0.014219319102513492
+ 0.014221091289791054
+ 0.014222863523106376
+ 0.014224635802474867
+ 0.014226408127911866
+ 0.014228180499432787
+ 0.014229952917052984
+ 0.014231725380787808
+ 0.014233497890652607
+ 0.014235270446662727
+ 0.014237043048833498
+ 0.014238815697180251
+ 0.014240588391718286
+ 0.014242361132462918
+ 0.014244133919429436
+ 0.014245906752633144
+ 0.014247679632089314
+ 0.014249452557813231
+ 0.014251225529820132
+ 0.014252998548125298
+ 0.014254771612743985
+ 0.014256544723691405
+ 0.01425831788098279
+ 0.014260091084633397
+ 0.014261864334658406
+ 0.014263637631073042
+ 0.014265410973892497
+ 0.014267184363131959
+ 0.014268957798806606
+ 0.014270731280931622
+ 0.014272504809522154
+ 0.014274278384593372
+ 0.014276052006160431
+ 0.014277825674238447
+ 0.014279599388842573
+ 0.014281373149987925
+ 0.014283146957689601
+ 0.014284920811962734
+ 0.014286694712822418
+ 0.014288468660283734
+ 0.014290242654361756
+ 0.014292016695071569
+ 0.014293790782428253
+ 0.014295564916446823
+ 0.014297339097142375
+ 0.014299113324529919
+ 0.01430088759862449
+ 0.014302661919441132
+ 0.014304436286994831
+ 0.014306210701300618
+ 0.014307985162373481
+ 0.014309759670228411
+ 0.014311534224880391
+ 0.014313308826344408
+ 0.014315083474635407
+ 0.014316858169768357
+ 0.014318632911758217
+ 0.014320407700619918
+ 0.014322182536368393
+ 0.014323957419018579
+ 0.014325732348585377
+ 0.014327507325083699
+ 0.014329282348528451
+ 0.014331057418934534
+ 0.014332832536316812
+ 0.014334607700690187
+ 0.014336382912069501
+ 0.014338158170469625
+ 0.014339933475905413
+ 0.014341708828391723
+ 0.014343484227943359
+ 0.014345259674575162
+ 0.014347035168301953
+ 0.014348810709138555
+ 0.01435058629709975
+ 0.014352361932200354
+ 0.014354137614455134
+ 0.014355913343878889
+ 0.014357689120486353
+ 0.014359464944292334
+ 0.014361240815311562
+ 0.014363016733558782
+ 0.014364792699048747
+ 0.014366568711796179
+ 0.014368344771815806
+ 0.014370120879122317
+ 0.014371897033730437
+ 0.014373673235654881
+ 0.01437544948491031
+ 0.014377225781511415
+ 0.014379002125472875
+ 0.01438077851680936
+ 0.014382554955535495
+ 0.014384331441665982
+ 0.014386107975215423
+ 0.014387884556198459
+ 0.014389661184629723
+ 0.014391437860523831
+ 0.014393214583895394
+ 0.01439499135475901
+ 0.014396768173129267
+ 0.014398545039020759
+ 0.014400321952448055
+ 0.014402098913425747
+ 0.014403875921968351
+ 0.014405652978090478
+ 0.014407430081806625
+ 0.014409207233131363
+ 0.014410984432079194
+ 0.014412761678664661
+ 0.01441453897290227
+ 0.014416316314806527
+ 0.01441809370439192
+ 0.014419871141672957
+ 0.014421648626664105
+ 0.014423426159379835
+ 0.014425203739834627
+ 0.014426981368042928
+ 0.014428759044019203
+ 0.01443053676777787
+ 0.01443231453933339
+ 0.014434092358700161
+ 0.014435870225892631
+ 0.014437648140925184
+ 0.014439426103812245
+ 0.014441204114568189
+ 0.014442982173207402
+ 0.014444760279744282
+ 0.014446538434193185
+ 0.014448316636568478
+ 0.014450094886884523
+ 0.014451873185155653
+ 0.014453651531396218
+ 0.014455429925620534
+ 0.01445720836784295
+ 0.014458986858077762
+ 0.014460765396339288
+ 0.01446254398264182
+ 0.014464322616999642
+ 0.014466101299427067
+ 0.014467880029938353
+ 0.014469658808547767
+ 0.014471437635269563
+ 0.014473216510118016
+ 0.01447499543310735
+ 0.014476774404251812
+ 0.014478553423565636
+ 0.014480332491063027
+ 0.01448211160675821
+ 0.014483890770665411
+ 0.014485669982798785
+ 0.014487449243172541
+ 0.014489228551800881
+ 0.014491007908697959
+ 0.014492787313877943
+ 0.014494566767354999
+ 0.01449634626914327
+ 0.014498125819256908
+ 0.014499905417710049
+ 0.014501685064516814
+ 0.014503464759691326
+ 0.014505244503247704
+ 0.014507024295200038
+ 0.014508804135562454
+ 0.014510584024348998
+ 0.014512363961573784
+ 0.014514143947250877
+ 0.014515923981394341
+ 0.014517704064018245
+ 0.014519484195136621
+ 0.014521264374763527
+ 0.014523044602912986
+ 0.014524824879599031
+ 0.014526605204835705
+ 0.014528385578636971
+ 0.01453016600101688
+ 0.014531946471989386
+ 0.014533726991568515
+ 0.01453550755976824
+ 0.014537288176602515
+ 0.014539068842085313
+ 0.01454084955623061
+ 0.014542630319052343
+ 0.014544411130564457
+ 0.014546191990780893
+ 0.014547972899715562
+ 0.014549753857382395
+ 0.014551534863795302
+ 0.014553315918968189
+ 0.014555097022914942
+ 0.014556878175649464
+ 0.014558659377185642
+ 0.014560440627537327
+ 0.014562221926718414
+ 0.014564003274742745
+ 0.014565784671624154
+ 0.014567566117376517
+ 0.014569347612013651
+ 0.014571129155549391
+ 0.014572910747997532
+ 0.014574692389371936
+ 0.014576474079686375
+ 0.014578255818954644
+ 0.014580037607190552
+ 0.014581819444407861
+ 0.014583601330620376
+ 0.014585383265841835
+ 0.014587165250085998
+ 0.014588947283366637
+ 0.014590729365697478
+ 0.014592511497092264
+ 0.01459429367756473
+ 0.014596075907128594
+ 0.014597858185797574
+ 0.014599640513585373
+ 0.014601422890505686
+ 0.014603205316572207
+ 0.01460498779179863
+ 0.014606770316198621
+ 0.014608552889785856
+ 0.014610335512573977
+ 0.014612118184576662
+ 0.014613900905807548
+ 0.014615683676280277
+ 0.014617466496008475
+ 0.014619249365005757
+ 0.014621032283285759
+ 0.014622815250862084
+ 0.01462459826774833
+ 0.014626381333958088
+ 0.014628164449504941
+ 0.01462994761440249
+ 0.014631730828664282
+ 0.014633514092303887
+ 0.014635297405334874
+ 0.014637080767770766
+ 0.014638864179625137
+ 0.014640647640911495
+ 0.014642431151643378
+ 0.014644214711834306
+ 0.014645998321497784
+ 0.014647781980647314
+ 0.014649565689296406
+ 0.014651349447458537
+ 0.014653133255147187
+ 0.01465491711237585
+ 0.014656701019157971
+ 0.014658484975507015
+ 0.014660268981436434
+ 0.014662053036959685
+ 0.014663837142090181
+ 0.014665621296841378
+ 0.01466740550122668
+ 0.014669189755259512
+ 0.014670974058953283
+ 0.014672758412321376
+ 0.014674542815377186
+ 0.014676327268134122
+ 0.014678111770605556
+ 0.014679896322804829
+ 0.014681680924745342
+ 0.014683465576440433
+ 0.014685250277903433
+ 0.014687035029147722
+ 0.014688819830186599
+ 0.01469060468103341
+ 0.014692389581701472
+ 0.014694174532204089
+ 0.014695959532554552
+ 0.014697744582766192
+ 0.014699529682852286
+ 0.014701314832826103
+ 0.01470310003270091
+ 0.014704885282490006
+ 0.014706670582206642
+ 0.014708455931864053
+ 0.014710241331475485
+ 0.0147120267810542
+ 0.014713812280613425
+ 0.014715597830166356
+ 0.014717383429726227
+ 0.014719169079306262
+ 0.014720954778919635
+ 0.01472274052857956
+ 0.014724526328299193
+ 0.014726312178091753
+ 0.014728098077970405
+ 0.014729884027948285
+ 0.014731670028038589
+ 0.014733456078254437
+ 0.014735242178608993
+ 0.014737028329115364
+ 0.014738814529786719
+ 0.014740600780636158
+ 0.0147423870816768
+ 0.014744173432921738
+ 0.01474595983438408
+ 0.014747746286076927
+ 0.014749532788013362
+ 0.014751319340206457
+ 0.01475310594266927
+ 0.014754892595414886
+ 0.014756679298456352
+ 0.014758466051806723
+ 0.014760252855479019
+ 0.014762039709486309
+ 0.0147638266138416
+ 0.014765613568557906
+ 0.014767400573648249
+ 0.014769187629125649
+ 0.014770974735003073
+ 0.014772761891293538
+ 0.014774549098010008
+ 0.014776336355165471
+ 0.014778123662772896
+ 0.014779911020845232
+ 0.014781698429395465
+ 0.014783485888436523
+ 0.014785273397981354
+ 0.014787060958042872
+ 0.014788848568634022
+ 0.014790636229767718
+ 0.014792423941456873
+ 0.014794211703714399
+ 0.014795999516553178
+ 0.014797787379986093
+ 0.014799575294026078
+ 0.014801363258685958
+ 0.014803151273978609
+ 0.014804939339916917
+ 0.014806727456513711
+ 0.014808515623781864
+ 0.014810303841734202
+ 0.014812092110383547
+ 0.014813880429742743
+ 0.014815668799824601
+ 0.01481745722064195
+ 0.014819245692207574
+ 0.014821034214534278
+ 0.014822822787634842
+ 0.014824611411522071
+ 0.014826400086208729
+ 0.014828188811707584
+ 0.014829977588031416
+ 0.014831766415192953
+ 0.014833555293204959
+ 0.014835344222080167
+ 0.014837133201831327
+ 0.014838922232471156
+ 0.014840711314012361
+ 0.014842500446467668
+ 0.014844289629849799
+ 0.01484607886417141
+ 0.014847868149445231
+ 0.014849657485683933
+ 0.014851446872900194
+ 0.014853236311106676
+ 0.014855025800316063
+ 0.014856815340541009
+ 0.014858604931794124
+ 0.014860394574088097
+ 0.014862184267435539
+ 0.014863974011849093
+ 0.014865763807341366
+ 0.014867553653924977
+ 0.014869343551612523
+ 0.014871133500416626
+ 0.014872923500349862
+ 0.014874713551424841
+ 0.014876503653654099
+ 0.014878293807050249
+ 0.014880084011625841
+ 0.014881874267393413
+ 0.014883664574365556
+ 0.01488545493255479
+ 0.014887245341973649
+ 0.01488903580263466
+ 0.014890826314550369
+ 0.014892616877733283
+ 0.014894407492195897
+ 0.01489619815795072
+ 0.014897988875010247
+ 0.014899779643386967
+ 0.014901570463093374
+ 0.014903361334141918
+ 0.014905152256545103
+ 0.014906943230315347
+ 0.014908734255465121
+ 0.014910525332006876
+ 0.014912316459953043
+ 0.014914107639316066
+ 0.014915898870108366
+ 0.014917690152342355
+ 0.014919481486030447
+ 0.014921272871185059
+ 0.014923064307818566
+ 0.014924855795943392
+ 0.014926647335571874
+ 0.014928438926716423
+ 0.014930230569389424
+ 0.014932022263603196
+ 0.014933814009370128
+ 0.014935605806702565
+ 0.014937397655612833
+ 0.014939189556113295
+ 0.014940981508216242
+ 0.014942773511934031
+ 0.014944565567278962
+ 0.014946357674263338
+ 0.014948149832899481
+ 0.014949942043199656
+ 0.014951734305176181
+ 0.014953526618841301
+ 0.014955318984207334
+ 0.014957111401286503
+ 0.014958903870091097
+ 0.014960696390633358
+ 0.014962488962925551
+ 0.014964281586979874
+ 0.014966074262808608
+ 0.014967866990423953
+ 0.014969659769838111
+ 0.014971452601063319
+ 0.014973245484111788
+ 0.014975038418995702
+ 0.014976831405727255
+ 0.01497862444431864
+ 0.014980417534782008
+ 0.01498221067712956
+ 0.014984003871373457
+ 0.014985797117525833
+ 0.01498759041559887
+ 0.014989383765604688
+ 0.014991177167555454
+ 0.014992970621463245
+ 0.014994764127340236
+ 0.014996557685198524
+ 0.014998351295050222
+ 0.015000144956907423
+ 0.015001938670782224
+ 0.015003732436686734
+ 0.015005526254633026
+ 0.015007320124633156
+ 0.015009114046699227
+ 0.015010908020843271
+ 0.015012702047077364
+ 0.015014496125413546
+ 0.015016290255863859
+ 0.015018084438440339
+ 0.015019878673155022
+ 0.015021672960019912
+ 0.01502346729904705
+ 0.015025261690248421
+ 0.015027056133636033
+ 0.015028850629221907
+ 0.015030645177017977
+ 0.015032439777036269
+ 0.015034234429288746
+ 0.015036029133787364
+ 0.015037823890544094
+ 0.015039618699570901
+ 0.015041413560879712
+ 0.015043208474482478
+ 0.01504500344039115
+ 0.015046798458617616
+ 0.01504859352917382
+ 0.015050388652071693
+ 0.015052183827323116
+ 0.015053979054939987
+ 0.015055774334934236
+ 0.015057569667317708
+ 0.01505936505210231
+ 0.015061160489299907
+ 0.015062955978922364
+ 0.015064751520981553
+ 0.015066547115489307
+ 0.015068342762457495
+ 0.015070138461897956
+ 0.015071934213822502
+ 0.015073730018242989
+ 0.0150755258751712
+ 0.015077321784618987
+ 0.015079117746598156
+ 0.015080913761120477
+ 0.015082709828197765
+ 0.015084505947841815
+ 0.015086302120064392
+ 0.015088098344877262
+ 0.015089894622292212
+ 0.015091690952321001
+ 0.015093487334975375
+ 0.015095283770267084
+ 0.015097080258207871
+ 0.015098876798809467
+ 0.0151006733920836
+ 0.015102470038041996
+ 0.015104266736696357
+ 0.0151060634880584
+ 0.015107860292139823
+ 0.01510965714895234
+ 0.015111454058507607
+ 0.015113251020817344
+ 0.015115048035893175
+ 0.01511684510374681
+ 0.015118642224389894
+ 0.015120439397834067
+ 0.015122236624091024
+ 0.015124033903172362
+ 0.015125831235089716
+ 0.015127628619854755
+ 0.015129426057479065
+ 0.015131223547974262
+ 0.015133021091351987
+ 0.015134818687623803
+ 0.015136616336801332
+ 0.015138414038896158
+ 0.015140211793919851
+ 0.015142009601883999
+ 0.015143807462800181
+ 0.01514560537667994
+ 0.01514740334353484
+ 0.015149201363376436
+ 0.015150999436216256
+ 0.01515279756206586
+ 0.015154595740936765
+ 0.015156393972840489
+ 0.015158192257788569
+ 0.015159990595792488
+ 0.015161788986863768
+ 0.01516358743101391
+ 0.015165385928254393
+ 0.015167184478596711
+ 0.015168983082052343
+ 0.01517078173863276
+ 0.015172580448349416
+ 0.015174379211213779
+ 0.015176178027237289
+ 0.015177976896431418
+ 0.015179775818807577
+ 0.015181574794377213
+ 0.015183373823151748
+ 0.015185172905142612
+ 0.015186972040361202
+ 0.015188771228818933
+ 0.015190570470527217
+ 0.015192369765497427
+ 0.01519416911374096
+ 0.015195968515269186
+ 0.015197767970093491
+ 0.015199567478225253
+ 0.015201367039675812
+ 0.015203166654456531
+ 0.015204966322578761
+ 0.015206766044053835
+ 0.01520856581889311
+ 0.015210365647107885
+ 0.01521216552870951
+ 0.015213965463709284
+ 0.015215765452118529
+ 0.015217565493948532
+ 0.015219365589210604
+ 0.015221165737916039
+ 0.015222965940076104
+ 0.015224766195702085
+ 0.015226566504805259
+ 0.015228366867396894
+ 0.015230167283488224
+ 0.015231967753090518
+ 0.015233768276215037
+ 0.015235568852872989
+ 0.015237369483075634
+ 0.015239170166834183
+ 0.015240970904159849
+ 0.015242771695063873
+ 0.015244572539557423
+ 0.01524637343765174
+ 0.015248174389357976
+ 0.015249975394687362
+ 0.015251776453651061
+ 0.015253577566260251
+ 0.015255378732526085
+ 0.01525717995245974
+ 0.015258981226072365
+ 0.015260782553375119
+ 0.015262583934379148
+ 0.015264385369095568
+ 0.015266186857535537
+ 0.01526798839971015
+ 0.015269789995630547
+ 0.015271591645307836
+ 0.015273393348753111
+ 0.015275195105977498
+ 0.015276996916992053
+ 0.015278798781807879
+ 0.015280600700436058
+ 0.015282402672887664
+ 0.015284204699173758
+ 0.01528600677930542
+ 0.015287808913293665
+ 0.015289611101149573
+ 0.015291413342884178
+ 0.015293215638508516
+ 0.015295017988033613
+ 0.015296820391470504
+ 0.015298622848830188
+ 0.015300425360123672
+ 0.015302227925361992
+ 0.015304030544556093
+ 0.015305833217717028
+ 0.015307635944855744
+ 0.015309438725983211
+ 0.015311241561110429
+ 0.01531304445024835
+ 0.015314847393407934
+ 0.015316650390600147
+ 0.01531845344183592
+ 0.015320256547126192
+ 0.015322059706481917
+ 0.015323862919913996
+ 0.015325666187433371
+ 0.015327469509050954
+ 0.015329272884777667
+ 0.015331076314624388
+ 0.015332879798602018
+ 0.015334683336721475
+ 0.015336486928993615
+ 0.015338290575429321
+ 0.01534009427603948
+ 0.015341898030834942
+ 0.015343701839826574
+ 0.015345505703025224
+ 0.015347309620441729
+ 0.015349113592086969
+ 0.015350917617971735
+ 0.015352721698106876
+ 0.015354525832503203
+ 0.015356330021171538
+ 0.015358134264122709
+ 0.015359938561367491
+ 0.015361742912916683
+ 0.01536354731878109
+ 0.015365351778971513
+ 0.015367156293498678
+ 0.015368960862373398
+ 0.015370765485606435
+ 0.015372570163208532
+ 0.015374374895190468
+ 0.015376179681562964
+ 0.015377984522336777
+ 0.015379789417522641
+ 0.015381594367131286
+ 0.015383399371173421
+ 0.015385204429659769
+ 0.015387009542601051
+ 0.015388814710007958
+ 0.015390619931891203
+ 0.015392425208261456
+ 0.015394230539129422
+ 0.015396035924505754
+ 0.015397841364401161
+ 0.015399646858826287
+ 0.0154014524077918
+ 0.015403258011308355
+ 0.015405063669386602
+ 0.015406869382037161
+ 0.015408675149270697
+ 0.01541048097109785
+ 0.015412286847529192
+ 0.015414092778575387
+ 0.015415898764247028
+ 0.015417704804554721
+ 0.015419510899509076
+ 0.015421317049120671
+ 0.015423123253400117
+ 0.015424929512357953
+ 0.015426735826004805
+ 0.015428542194351198
+ 0.015430348617407715
+ 0.01543215509518491
+ 0.015433961627693329
+ 0.015435768214943522
+ 0.015437574856946027
+ 0.015439381553711376
+ 0.015441188305250082
+ 0.015442995111572681
+ 0.015444801972689685
+ 0.015446608888611598
+ 0.015448415859348906
+ 0.015450222884912129
+ 0.015452029965311732
+ 0.015453837100558216
+ 0.015455644290662065
+ 0.015457451535633732
+ 0.015459258835483682
+ 0.015461066190222373
+ 0.015462873599860271
+ 0.015464681064407826
+ 0.015466488583875469
+ 0.015468296158273604
+ 0.015470103787612701
+ 0.015471911471903181
+ 0.015473719211155444
+ 0.015475527005379894
+ 0.015477334854586957
+ 0.015479142758787015
+ 0.015480950717990459
+ 0.015482758732207686
+ 0.015484566801449049
+ 0.015486374925724971
+ 0.015488183105045766
+ 0.015489991339421846
+ 0.015491799628863526
+ 0.015493607973381169
+ 0.015495416372985123
+ 0.015497224827685714
+ 0.01549903333749328
+ 0.015500841902418164
+ 0.015502650522470655
+ 0.015504459197661084
+ 0.015506267927999749
+ 0.015508076713496981
+ 0.015509885554163017
+ 0.015511694450008199
+ 0.015513503401042787
+ 0.015515312407277068
+ 0.015517121468721291
+ 0.015518930585385756
+ 0.015520739757280686
+ 0.015522548984416362
+ 0.015524358266803021
+ 0.015526167604450893
+ 0.015527976997370229
+ 0.015529786445571261
+ 0.015531595949064203
+ 0.015533405507859269
+ 0.015535215121966666
+ 0.015537024791396617
+ 0.015538834516159311
+ 0.015540644296264939
+ 0.015542454131723699
+ 0.015544264022545759
+ 0.015546073968741286
+ 0.015547883970320477
+ 0.015549694027293488
+ 0.015551504139670448
+ 0.015553314307461544
+ 0.0155551245306769
+ 0.01555693480932667
+ 0.015558745143420974
+ 0.015560555532969948
+ 0.015562365977983708
+ 0.015564176478472381
+ 0.015565987034446059
+ 0.015567797645914858
+ 0.01556960831288887
+ 0.015571419035378189
+ 0.015573229813392904
+ 0.015575040646943089
+ 0.01557685153603882
+ 0.01557866248069018
+ 0.015580473480907204
+ 0.015582284536699962
+ 0.015584095648078507
+ 0.015585906815052879
+ 0.015587718037633119
+ 0.015589529315829263
+ 0.015591340649651333
+ 0.015593152039109343
+ 0.01559496348421332
+ 0.01559677498497326
+ 0.015598586541399178
+ 0.015600398153501066
+ 0.015602209821288925
+ 0.015604021544772719
+ 0.015605833323962438
+ 0.015607645158868051
+ 0.015609457049499537
+ 0.015611268995866869
+ 0.015613080997979962
+ 0.015614893055848806
+ 0.015616705169483316
+ 0.015618517338893436
+ 0.01562032956408912
+ 0.015622141845080274
+ 0.015623954181876835
+ 0.015625766574488689
+ 0.015627579022925771
+ 0.015629391527197972
+ 0.015631204087315189
+ 0.01563301670328732
+ 0.015634829375124237
+ 0.015636642102835847
+ 0.015638454886431983
+ 0.015640267725922554
+ 0.015642080621317393
+ 0.015643893572626362
+ 0.015645706579859323
+ 0.015647519643026107
+ 0.015649332762136554
+ 0.01565114593720051
+ 0.01565295916822779
+ 0.015654772455228214
+ 0.015656585798211595
+ 0.015658399197187745
+ 0.015660212652166477
+ 0.015662026163157584
+ 0.015663839730170839
+ 0.015665653353216066
+ 0.015667467032303005
+ 0.015669280767441462
+ 0.015671094558641178
+ 0.015672908405911939
+ 0.015674722309263485
+ 0.015676536268705566
+ 0.015678350284247952
+ 0.015680164355900354
+ 0.015681978483672532
+ 0.015683792667574175
+ 0.015685606907615036
+ 0.015687421203804841
+ 0.015689235556153262
+ 0.01569104996467004
+ 0.01569286442936486
+ 0.015694678950247405
+ 0.015696493527327368
+ 0.015698308160614436
+ 0.015700122850118289
+ 0.015701937595848588
+ 0.015703752397814984
+ 0.015705567256027168
+ 0.01570738217049476
+ 0.015709197141227448
+ 0.015711012168234818
+ 0.015712827251526545
+ 0.015714642391112237
+ 0.015716457587001544
+ 0.015718272839204062
+ 0.015720088147729405
+ 0.01572190351258717
+ 0.015723718933786997
+ 0.015725534411338435
+ 0.015727349945251105
+ 0.015729165535534578
+ 0.015730981182198421
+ 0.015732796885252229
+ 0.015734612644705537
+ 0.015736428460567945
+ 0.015738244332848983
+ 0.015740060261558185
+ 0.015741876246705141
+ 0.015743692288299343
+ 0.015745508386350335
+ 0.015747324540867656
+ 0.015749140751860825
+ 0.015750957019339339
+ 0.015752773343312734
+ 0.015754589723790471
+ 0.015756406160782086
+ 0.015758222654297056
+ 0.015760039204344874
+ 0.015761855810935012
+ 0.015763672474076937
+ 0.015765489193780149
+ 0.015767305970054074
+ 0.015769122802908184
+ 0.015770939692351937
+ 0.015772756638394784
+ 0.015774573641046136
+ 0.015776390700315467
+ 0.015778207816212159
+ 0.015780024988745683
+ 0.015781842217925428
+ 0.015783659503760823
+ 0.015785476846261252
+ 0.01578729424543614
+ 0.015789111701294874
+ 0.015790929213846817
+ 0.015792746783101386
+ 0.015794564409067947
+ 0.015796382091755871
+ 0.015798199831174524
+ 0.015800017627333282
+ 0.015801835480241468
+ 0.015803653389908443
+ 0.015805471356343581
+ 0.015807289379556184
+ 0.015809107459555598
+ 0.015810925596351152
+ 0.015812743789952156
+ 0.015814562040367935
+ 0.015816380347607795
+ 0.015818198711681046
+ 0.015820017132596988
+ 0.0158218356103649
+ 0.015823654144994079
+ 0.015825472736493817
+ 0.015827291384873359
+ 0.015829110090142009
+ 0.015830928852309002
+ 0.015832747671383606
+ 0.015834566547375094
+ 0.015836385480292706
+ 0.01583820447014567
+ 0.015840023516943229
+ 0.015841842620694619
+ 0.015843661781409071
+ 0.015845480999095777
+ 0.015847300273763975
+ 0.015849119605422873
+ 0.015850938994081659
+ 0.015852758439749554
+ 0.015854577942435728
+ 0.015856397502149365
+ 0.015858217118899662
+ 0.015860036792695792
+ 0.015861856523546908
+ 0.015863676311462183
+ 0.015865496156450776
+ 0.01586731605852186
+ 0.015869136017684537
+ 0.015870956033947982
+ 0.01587277610732131
+ 0.01587459623781368
+ 0.015876416425434182
+ 0.015878236670191958
+ 0.015880056972096119
+ 0.015881877331155755
+ 0.015883697747379993
+ 0.015885518220777908
+ 0.015887338751358601
+ 0.015889159339131164
+ 0.015890979984104669
+ 0.015892800686288188
+ 0.015894621445690787
+ 0.015896442262321533
+ 0.015898263136189496
+ 0.015900084067303699
+ 0.015901905055673234
+ 0.015903726101307084
+ 0.015905547204214346
+ 0.015907368364403995
+ 0.015909189581885082
+ 0.015911010856666619
+ 0.015912832188757633
+ 0.015914653578167109
+ 0.015916475024904061
+ 0.015918296528977499
+ 0.015920118090396385
+ 0.015921939709169722
+ 0.01592376138530649
+ 0.015925583118815659
+ 0.015927404909706198
+ 0.015929226757987077
+ 0.015931048663667229
+ 0.015932870626755649
+ 0.015934692647261252
+ 0.015936514725192991
+ 0.015938336860559805
+ 0.015940159053370588
+ 0.015941981303634313
+ 0.015943803611359882
+ 0.015945625976556198
+ 0.015947448399232168
+ 0.015949270879396724
+ 0.015951093417058738
+ 0.015952916012227102
+ 0.015954738664910709
+ 0.015956561375118437
+ 0.015958384142859161
+ 0.015960206968141745
+ 0.015962029850975064
+ 0.015963852791367975
+ 0.015965675789329312
+ 0.015967498844867943
+ 0.015969321957992708
+ 0.015971145128712439
+ 0.015972968357035974
+ 0.015974791642972119
+ 0.015976614986529726
+ 0.015978438387717578
+ 0.015980261846544497
+ 0.015982085363019299
+ 0.015983908937150768
+ 0.0159857325689477
+ 0.01598755625841887
+ 0.015989380005573088
+ 0.015991203810419102
+ 0.015993027672965697
+ 0.015994851593221636
+ 0.01599667557119569
+ 0.015998499606896584
+ 0.016000323700333104
+ 0.016002147851513961
+ 0.016003972060447919
+ 0.016005796327143679
+ 0.016007620651610009
+ 0.016009445033855603
+ 0.016011269473889179
+ 0.016013093971719461
+ 0.016014918527355163
+ 0.016016743140804941
+ 0.016018567812077524
+ 0.016020392541181601
+ 0.016022217328125841
+ 0.016024042172918942
+ 0.01602586707556955
+ 0.016027692036086363
+ 0.016029517054478019
+ 0.016031342130753187
+ 0.016033167264920514
+ 0.016034992456988643
+ 0.01603681770696623
+ 0.016038643014861874
+ 0.01604046838068425
+ 0.016042293804441939
+ 0.016044119286143591
+ 0.016045944825797798
+ 0.016047770423413196
+ 0.016049596078998363
+ 0.016051421792561905
+ 0.016053247564112416
+ 0.016055073393658453
+ 0.016056899281208646
+ 0.016058725226771538
+ 0.016060551230355699
+ 0.016062377291969701
+ 0.016064203411622117
+ 0.016066029589321483
+ 0.016067855825076336
+ 0.016069682118895257
+ 0.016071508470786745
+ 0.016073334880759356
+ 0.016075161348821598
+ 0.016076987874982025
+ 0.016078814459249118
+ 0.016080641101631384
+ 0.016082467802137373
+ 0.016084294560775543
+ 0.016086121377554413
+ 0.016087948252482446
+ 0.016089775185568159
+ 0.016091602176820007
+ 0.016093429226246469
+ 0.016095256333856028
+ 0.016097083499657105
+ 0.0160989107236582
+ 0.016100738005867744
+ 0.016102565346294194
+ 0.016104392744945979
+ 0.016106220201831539
+ 0.016108047716959312
+ 0.016109875290337704
+ 0.016111702921975151
+ 0.016113530611880075
+ 0.016115358360060866
+ 0.016117186166525931
+ 0.016119014031283681
+ 0.016120841954342491
+ 0.016122669935710768
+ 0.016124497975396876
+ 0.016126326073409199
+ 0.016128154229756095
+ 0.01612998244444596
+ 0.016131810717487139
+ 0.016133639048887968
+ 0.016135467438656837
+ 0.016137295886802065
+ 0.016139124393331997
+ 0.016140952958254955
+ 0.016142781581579287
+ 0.016144610263313312
+ 0.016146439003465352
+ 0.016148267802043696
+ 0.01615009665905668
+ 0.016151925574512584
+ 0.016153754548419729
+ 0.016155583580786372
+ 0.016157412671620845
+ 0.016159241820931404
+ 0.016161071028726322
+ 0.016162900295013865
+ 0.016164729619802313
+ 0.016166559003099903
+ 0.016168388444914923
+ 0.016170217945255593
+ 0.016172047504130177
+ 0.016173877121546915
+ 0.016175706797514022
+ 0.016177536532039731
+ 0.016179366325132276
+ 0.016181196176799865
+ 0.016183026087050717
+ 0.016184856055893027
+ 0.016186686083334997
+ 0.016188516169384857
+ 0.016190346314050752
+ 0.016192176517340881
+ 0.016194006779263456
+ 0.01619583709982661
+ 0.016197667479038523
+ 0.01619949791690739
+ 0.016201328413441331
+ 0.016203158968648525
+ 0.016204989582537105
+ 0.016206820255115238
+ 0.016208650986391033
+ 0.016210481776372646
+ 0.016212312625068188
+ 0.016214143532485799
+ 0.016215974498633587
+ 0.01621780552351967
+ 0.016219636607152133
+ 0.016221467749539101
+ 0.016223298950688664
+ 0.016225130210608923
+ 0.016226961529307943
+ 0.01622879290679383
+ 0.016230624343074613
+ 0.016232455838158428
+ 0.016234287392053275
+ 0.016236119004767277
+ 0.016237950676308437
+ 0.016239782406684833
+ 0.016241614195904495
+ 0.016243446043975471
+ 0.016245277950905773
+ 0.016247109916703476
+ 0.016248941941376549
+ 0.016250774024933048
+ 0.016252606167380959
+ 0.016254438368728325
+ 0.016256270628983108
+ 0.01625810294815332
+ 0.016259935326246956
+ 0.016261767763272025
+ 0.016263600259236458
+ 0.016265432814148276
+ 0.016267265428015432
+ 0.0162690981008459
+ 0.016270930832647607
+ 0.016272763623428558
+ 0.016274596473196668
+ 0.01627642938195991
+ 0.016278262349726198
+ 0.016280095376503462
+ 0.016281928462299651
+ 0.0162837616071227
+ 0.016285594810980502
+ 0.016287428073880981
+ 0.016289261395832044
+ 0.016291094776841594
+ 0.016292928216917531
+ 0.016294761716067745
+ 0.016296595274300132
+ 0.016298428891622571
+ 0.016300262568042932
+ 0.016302096303569096
+ 0.016303930098208928
+ 0.016305763951970288
+ 0.01630759786486102
+ 0.016309431836888995
+ 0.016311265868062082
+ 0.016313099958388064
+ 0.016314934107874816
+ 0.016316768316530155
+ 0.016318602584361918
+ 0.016320436911377922
+ 0.016322271297585976
+ 0.016324105742993894
+ 0.016325940247609475
+ 0.016327774811440529
+ 0.016329609434494859
+ 0.016331444116780235
+ 0.016333278858304445
+ 0.016335113659075255
+ 0.016336948519100485
+ 0.01633878343838787
+ 0.016340618416945171
+ 0.016342453454780158
+ 0.016344288551900597
+ 0.016346123708314196
+ 0.016347958924028742
+ 0.016349794199051946
+ 0.016351629533391553
+ 0.016353464927055281
+ 0.016355300380050862
+ 0.016357135892386025
+ 0.016358971464068443
+ 0.016360807095105869
+ 0.016362642785505987
+ 0.016364478535276467
+ 0.016366314344425051
+ 0.016368150212959402
+ 0.016369986140887187
+ 0.016371822128216102
+ 0.016373658174953815
+ 0.016375494281107988
+ 0.016377330446686284
+ 0.016379166671696362
+ 0.016381002956145863
+ 0.016382839300042452
+ 0.016384675703393758
+ 0.016386512166207418
+ 0.016388348688491056
+ 0.016390185270252301
+ 0.016392021911498772
+ 0.016393858612238108
+ 0.016395695372477877
+ 0.01639753219222571
+ 0.016399369071489218
+ 0.016401206010275966
+ 0.016403043008593559
+ 0.016404880066449586
+ 0.01640671718385163
+ 0.016408554360807247
+ 0.01641039159732402
+ 0.01641222889340951
+ 0.016414066249071269
+ 0.016415903664316868
+ 0.016417741139153841
+ 0.016419578673589747
+ 0.016421416267632102
+ 0.016423253921288457
+ 0.016425091634566343
+ 0.016426929407473274
+ 0.016428767240016771
+ 0.016430605132204342
+ 0.016432443084043513
+ 0.016434281095541781
+ 0.016436119166706623
+ 0.016437957297545557
+ 0.016439795488066067
+ 0.016441633738275629
+ 0.016443472048181737
+ 0.016445310417791827
+ 0.016447148847113412
+ 0.016448987336153909
+ 0.016450825884920819
+ 0.016452664493421573
+ 0.016454503161663619
+ 0.016456341889654405
+ 0.016458180677401367
+ 0.016460019524911929
+ 0.016461858432193534
+ 0.016463697399253598
+ 0.016465536426099527
+ 0.016467375512738754
+ 0.016469214659178673
+ 0.016471053865426678
+ 0.016472893131490179
+ 0.016474732457376576
+ 0.016476571843093236
+ 0.016478411288647559
+ 0.016480250794046903
+ 0.016482090359298651
+ 0.016483929984410176
+ 0.016485769669388837
+ 0.016487609414241985
+ 0.016489449218976961
+ 0.01649128908360115
+ 0.016493129008121835
+ 0.016494968992546419
+ 0.016496809036882176
+ 0.016498649141136482
+ 0.016500489305316623
+ 0.016502329529429916
+ 0.016504169813483703
+ 0.016506010157485266
+ 0.016507850561441901
+ 0.016509691025360932
+ 0.016511531549249628
+ 0.016513372133115281
+ 0.016515212776965164
+ 0.016517053480806579
+ 0.016518894244646781
+ 0.016520735068493015
+ 0.016522575952352594
+ 0.016524416896232727
+ 0.016526257900140687
+ 0.016528098964083717
+ 0.016529940088069059
+ 0.016531781272103956
+ 0.016533622516195622
+ 0.016535463820351311
+ 0.016537305184578216
+ 0.016539146608883563
+ 0.016540988093274579
+ 0.016542829637758438
+ 0.016544671242342369
+ 0.016546512907033559
+ 0.016548354631839214
+ 0.016550196416766499
+ 0.016552038261822607
+ 0.016553880167014697
+ 0.016555722132349966
+ 0.016557564157835589
+ 0.016559406243478684
+ 0.016561248389286444
+ 0.016563090595266002
+ 0.016564932861424523
+ 0.016566775187769139
+ 0.016568617574306978
+ 0.016570460021045192
+ 0.016572302527990884
+ 0.016574145095151191
+ 0.016575987722533221
+ 0.016577830410144104
+ 0.016579673157990922
+ 0.016581515966080793
+ 0.016583358834420824
+ 0.016585201763018094
+ 0.016587044751879689
+ 0.016588887801012666
+ 0.016590730910424161
+ 0.016592574080121186
+ 0.016594417310110857
+ 0.016596260600400221
+ 0.016598103950996319
+ 0.016599947361906193
+ 0.016601790833136964
+ 0.016603634364695585
+ 0.016605477956589138
+ 0.016607321608824655
+ 0.016609165321409162
+ 0.01661100909434968
+ 0.016612852927653222
+ 0.016614696821326793
+ 0.016616540775377421
+ 0.016618384789812094
+ 0.016620228864637817
+ 0.016622072999861588
+ 0.0166239171954904
+ 0.016625761451531208
+ 0.016627605767991008
+ 0.016629450144876785
+ 0.016631294582195495
+ 0.016633139079954107
+ 0.016634983638159566
+ 0.016636828256818847
+ 0.016638672935938882
+ 0.016640517675526607
+ 0.016642362475589003
+ 0.016644207336132952
+ 0.016646052257165422
+ 0.016647897238693317
+ 0.016649742280723561
+ 0.016651587383263073
+ 0.016653432546318767
+ 0.016655277769897513
+ 0.016657123054006264
+ 0.016658968398651858
+ 0.01666081380384124
+ 0.01666265926958127
+ 0.016664504795878818
+ 0.016666350382740776
+ 0.016668196030174002
+ 0.016670041738185364
+ 0.016671887506781721
+ 0.016673733335969942
+ 0.016675579225756871
+ 0.016677425176149341
+ 0.016679271187154211
+ 0.016681117258778314
+ 0.016682963391028465
+ 0.016684809583911487
+ 0.016686655837434249
+ 0.016688502151603529
+ 0.016690348526426133
+ 0.016692194961908869
+ 0.016694041458058563
+ 0.016695888014882001
+ 0.016697734632385955
+ 0.016699581310577232
+ 0.016701428049462629
+ 0.016703274849048873
+ 0.0167051217093428
+ 0.016706968630351118
+ 0.016708815612080631
+ 0.016710662654538081
+ 0.016712509757730233
+ 0.016714356921663818
+ 0.016716204146345587
+ 0.016718051431782281
+ 0.016719898777980635
+ 0.016721746184947359
+ 0.016723593652689196
+ 0.016725441181212868
+ 0.016727288770525078
+ 0.016729136420632524
+ 0.016730984131541948
+ 0.016732831903260019
+ 0.016734679735793432
+ 0.016736527629148876
+ 0.016738375583333052
+ 0.01674022359835264
+ 0.0167420716742143
+ 0.016743919810924712
+ 0.016745768008490536
+ 0.016747616266918425
+ 0.016749464586215054
+ 0.016751312966387061
+ 0.016753161407441104
+ 0.016755009909383809
+ 0.01675685847222182
+ 0.016758707095961764
+ 0.016760555780610288
+ 0.016762404526173971
+ 0.01676425333265948
+ 0.01676610220007339
+ 0.016767951128422321
+ 0.016769800117712882
+ 0.016771649167951687
+ 0.016773498279145281
+ 0.016775347451300278
+ 0.016777196684423269
+ 0.016779045978520816
+ 0.016780895333599506
+ 0.016782744749665904
+ 0.016784594226726571
+ 0.016786443764788075
+ 0.016788293363856944
+ 0.01679014302393976
+ 0.01679199274504305
+ 0.016793842527173367
+ 0.016795692370337231
+ 0.01679754227454117
+ 0.016799392239791721
+ 0.016801242266095417
+ 0.01680309235345873
+ 0.016804942501888215
+ 0.016806792711390357
+ 0.016808642981971666
+ 0.016810493313638618
+ 0.016812343706397732
+ 0.016814194160255487
+ 0.016816044675218345
+ 0.016817895251292809
+ 0.016819745888485352
+ 0.016821596586802413
+ 0.016823447346250492
+ 0.016825298166836009
+ 0.016827149048565443
+ 0.016828999991445239
+ 0.016830850995481823
+ 0.016832702060681663
+ 0.016834553187051161
+ 0.016836404374596773
+ 0.016838255623324916
+ 0.016840106933241995
+ 0.016841958304354455
+ 0.016843809736668672
+ 0.016845661230191069
+ 0.016847512784928048
+ 0.016849364400886
+ 0.016851216078071315
+ 0.016853067816490385
+ 0.016854919616149572
+ 0.016856771477055284
+ 0.016858623399213856
+ 0.016860475382631707
+ 0.016862327427315145
+ 0.016864179533270553
+ 0.01686603170050428
+ 0.016867883929022678
+ 0.01686973621883207
+ 0.016871588569938822
+ 0.016873440982349251
+ 0.016875293456069702
+ 0.016877145991106474
+ 0.016878998587465905
+ 0.016880851245154305
+ 0.016882703964177997
+ 0.016884556744543242
+ 0.016886409586256385
+ 0.016888262489323704
+ 0.016890115453751502
+ 0.016891968479546035
+ 0.016893821566713606
+ 0.016895674715260506
+ 0.016897527925192977
+ 0.01689938119651729
+ 0.01690123452923973
+ 0.016903087923366526
+ 0.016904941378903953
+ 0.016906794895858245
+ 0.016908648474235653
+ 0.016910502114042405
+ 0.01691235581528475
+ 0.016914209577968894
+ 0.016916063402101087
+ 0.016917917287687521
+ 0.016919771234734447
+ 0.016921625243248049
+ 0.016923479313234516
+ 0.01692533344470009
+ 0.016927187637650942
+ 0.016929041892093266
+ 0.016930896208033262
+ 0.016932750585477069
+ 0.016934605024430907
+ 0.016936459524900933
+ 0.016938314086893305
+ 0.016940168710414198
+ 0.016942023395469765
+ 0.016943878142066174
+ 0.016945732950209545
+ 0.016947587819906032
+ 0.016949442751161791
+ 0.016951297743982924
+ 0.016953152798375608
+ 0.01695500791434592
+ 0.01695686309189998
+ 0.016958718331043936
+ 0.016960573631783882
+ 0.016962428994125929
+ 0.016964284418076184
+ 0.016966139903640712
+ 0.01696799545082563
+ 0.016969851059637029
+ 0.016971706730080978
+ 0.016973562462163558
+ 0.016975418255890846
+ 0.016977274111268884
+ 0.016979130028303781
+ 0.016980986007001573
+ 0.016982842047368309
+ 0.016984698149410039
+ 0.016986554313132795
+ 0.016988410538542647
+ 0.016990266825645611
+ 0.016992123174447718
+ 0.016993979584954994
+ 0.016995836057173471
+ 0.016997692591109146
+ 0.016999549186768052
+ 0.01700140584415618
+ 0.017003262563279518
+ 0.017005119344144101
+ 0.017006976186755892
+ 0.017008833091120897
+ 0.017010690057245082
+ 0.017012547085134444
+ 0.017014404174794936
+ 0.017016261326232542
+ 0.017018118539453227
+ 0.017019975814462931
+ 0.017021833151267648
+ 0.017023690549873301
+ 0.017025548010285826
+ 0.017027405532511183
+ 0.017029263116555296
+ 0.017031120762424117
+ 0.017032978470123552
+ 0.01703483623965954
+ 0.017036694071037979
+ 0.017038551964264789
+ 0.017040409919345887
+ 0.017042267936287162
+ 0.017044126015094523
+ 0.01704598415577388
+ 0.017047842358331081
+ 0.01704970062277205
+ 0.017051558949102649
+ 0.017053417337328767
+ 0.017055275787456237
+ 0.017057134299490968
+ 0.017058992873438813
+ 0.017060851509305603
+ 0.017062710207097237
+ 0.017064568966819516
+ 0.017066427788478288
+ 0.017068286672079418
+ 0.017070145617628731
+ 0.017072004625132038
+ 0.017073863694595192
+ 0.017075722826023976
+ 0.017077582019424227
+ 0.017079441274801769
+ 0.017081300592162368
+ 0.017083159971511868
+ 0.017085019412856037
+ 0.017086878916200678
+ 0.017088738481551565
+ 0.017090598108914501
+ 0.017092457798295244
+ 0.017094317549699586
+ 0.017096177363133271
+ 0.017098037238602069
+ 0.017099897176111767
+ 0.017101757175668073
+ 0.017103617237276776
+ 0.017105477360943616
+ 0.01710733754667431
+ 0.017109197794474618
+ 0.017111058104350256
+ 0.017112918476306953
+ 0.017114778910350414
+ 0.0171166394064864
+ 0.017118499964720587
+ 0.017120360585058707
+ 0.017122221267506444
+ 0.017124082012069497
+ 0.017125942818753574
+ 0.017127803687564346
+ 0.017129664618507515
+ 0.017131525611588753
+ 0.01713338666681373
+ 0.017135247784188127
+ 0.0171371089637176
+ 0.017138970205407823
+ 0.017140831509264445
+ 0.01714269287529312
+ 0.017144554303499492
+ 0.01714641579388921
+ 0.017148277346467893
+ 0.017150138961241207
+ 0.017152000638214766
+ 0.017153862377394191
+ 0.017155724178785102
+ 0.017157586042393119
+ 0.017159447968223853
+ 0.017161309956282903
+ 0.017163172006575876
+ 0.017165034119108372
+ 0.017166896293885969
+ 0.017168758530914263
+ 0.017170620830198845
+ 0.017172483191745289
+ 0.017174345615559153
+ 0.017176208101646027
+ 0.017178070650011468
+ 0.017179933260661029
+ 0.017181795933600284
+ 0.017183658668834759
+ 0.017185521466370007
+ 0.017187384326211579
+ 0.017189247248365017
+ 0.017191110232835836
+ 0.01719297327962957
+ 0.017194836388751741
+ 0.017196699560207872
+ 0.017198562794003471
+ 0.017200426090144043
+ 0.017202289448635114
+ 0.017204152869482167
+ 0.017206016352690697
+ 0.017207879898266207
+ 0.017209743506214153
+ 0.01721160717654004
+ 0.017213470909249348
+ 0.017215334704347555
+ 0.017217198561840109
+ 0.01721906248173247
+ 0.017220926464030124
+ 0.017222790508738504
+ 0.017224654615863064
+ 0.017226518785409262
+ 0.017228383017382519
+ 0.017230247311788266
+ 0.017232111668631946
+ 0.017233976087919003
+ 0.017235840569654815
+ 0.017237705113844846
+ 0.01723956972049448
+ 0.017241434389609126
+ 0.017243299121194211
+ 0.017245163915255112
+ 0.017247028771797221
+ 0.017248893690825943
+ 0.017250758672346655
+ 0.01725262371636474
+ 0.017254488822885571
+ 0.017256353991914501
+ 0.017258219223456956
+ 0.017260084517518235
+ 0.017261949874103719
+ 0.017263815293218757
+ 0.017265680774868734
+ 0.017267546319058934
+ 0.017269411925794738
+ 0.017271277595081468
+ 0.017273143326924447
+ 0.017275009121329017
+ 0.017276874978300487
+ 0.017278740897844175
+ 0.0172806068799654
+ 0.017282472924669473
+ 0.017284339031961683
+ 0.017286205201847326
+ 0.017288071434331708
+ 0.01728993772942013
+ 0.017291804087117842
+ 0.017293670507430161
+ 0.017295536990362324
+ 0.017297403535919634
+ 0.017299270144107343
+ 0.017301136814930725
+ 0.017303003548395028
+ 0.017304870344505494
+ 0.017306737203267399
+ 0.017308604124685972
+ 0.017310471108766434
+ 0.017312338155514043
+ 0.017314205264934022
+ 0.017316072437031604
+ 0.017317939671811999
+ 0.01731980696928043
+ 0.017321674329442104
+ 0.017323541752302222
+ 0.017325409237866001
+ 0.017327276786138639
+ 0.017329144397125334
+ 0.017331012070831237
+ 0.017332879807261566
+ 0.017334747606421522
+ 0.017336615468316229
+ 0.017338483392950899
+ 0.017340351380330681
+ 0.017342219430460715
+ 0.017344087543346213
+ 0.017345955718992286
+ 0.017347823957404088
+ 0.017349692258586773
+ 0.017351560622545479
+ 0.017353429049285319
+ 0.017355297538811463
+ 0.017357166091129011
+ 0.017359034706243084
+ 0.017360903384158775
+ 0.017362772124881257
+ 0.017364640928415595
+ 0.017366509794766897
+ 0.017368378723940269
+ 0.017370247715940798
+ 0.01737211677077357
+ 0.017373985888443688
+ 0.017375855068956208
+ 0.017377724312316222
+ 0.017379593618528803
+ 0.017381462987599003
+ 0.017383332419531893
+ 0.017385201914332543
+ 0.017387071472005994
+ 0.017388941092557269
+ 0.017390810775991476
+ 0.017392680522313578
+ 0.017394550331528657
+ 0.017396420203641759
+ 0.017398290138657867
+ 0.017400160136582032
+ 0.017402030197419257
+ 0.017403900321174545
+ 0.017405770507852917
+ 0.017407640757459392
+ 0.01740951106999895
+ 0.017411381445476576
+ 0.017413251883897286
+ 0.01741512238526605
+ 0.017416992949587852
+ 0.017418863576867675
+ 0.017420734267110469
+ 0.017422605020321225
+ 0.017424475836504888
+ 0.017426346715666438
+ 0.017428217657810795
+ 0.017430088662942947
+ 0.017431959731067804
+ 0.017433830862190344
+ 0.017435702056315477
+ 0.017437573313448147
+ 0.017439444633593267
+ 0.017441316016755748
+ 0.017443187462940553
+ 0.017445058972152559
+ 0.01744693054439668
+ 0.017448802179677821
+ 0.017450673878000891
+ 0.017452545639370785
+ 0.017454417463792379
+ 0.017456289351270585
+ 0.01745816130181025
+ 0.017460033315416276
+ 0.017461905392093541
+ 0.017463777531846893
+ 0.017465649734681211
+ 0.017467522000601338
+ 0.01746939432961216
+ 0.017471266721718493
+ 0.017473139176925192
+ 0.017475011695237127
+ 0.01747688427665909
+ 0.017478756921195954
+ 0.017480629628852516
+ 0.017482502399633608
+ 0.017484375233544056
+ 0.017486248130588685
+ 0.017488121090772274
+ 0.017489994114099659
+ 0.017491867200575616
+ 0.01749374035020497
+ 0.017495613562992493
+ 0.017497486838942963
+ 0.017499360178061193
+ 0.017501233580351942
+ 0.017503107045819997
+ 0.017504980574470096
+ 0.01750685416630705
+ 0.017508727821335595
+ 0.01751060153956048
+ 0.017512475320986477
+ 0.01751434916561832
+ 0.017516223073460731
+ 0.017518097044518503
+ 0.017519971078796326
+ 0.017521845176298949
+ 0.017523719337031098
+ 0.01752559356099747
+ 0.017527467848202805
+ 0.017529342198651814
+ 0.017531216612349198
+ 0.017533091089299648
+ 0.017534965629507886
+ 0.017536840232978575
+ 0.017538714899716441
+ 0.017540589629726135
+ 0.017542464423012352
+ 0.017544339279579782
+ 0.017546214199433093
+ 0.017548089182576911
+ 0.017549964229015953
+ 0.017551839338754857
+ 0.017553714511798268
+ 0.017555589748150822
+ 0.017557465047817199
+ 0.017559340410802031
+ 0.017561215837109935
+ 0.017563091326745554
+ 0.017564966879713508
+ 0.017566842496018441
+ 0.017568718175664952
+ 0.017570593918657642
+ 0.017572469725001146
+ 0.017574345594700062
+ 0.017576221527758992
+ 0.017578097524182511
+ 0.017579973583975228
+ 0.017581849707141738
+ 0.017583725893686595
+ 0.017585602143614414
+ 0.017587478456929737
+ 0.01758935483363715
+ 0.017591231273741216
+ 0.017593107777246497
+ 0.017594984344157533
+ 0.017596860974478889
+ 0.017598737668215104
+ 0.017600614425370729
+ 0.017602491245950296
+ 0.017604368129958355
+ 0.017606245077399406
+ 0.017608122088277993
+ 0.017609999162598627
+ 0.017611876300365828
+ 0.017613753501584117
+ 0.017615630766257988
+ 0.017617508094391936
+ 0.017619385485990478
+ 0.017621262941058081
+ 0.017623140459599292
+ 0.017625018041618531
+ 0.017626895687120298
+ 0.01762877339610909
+ 0.017630651168589338
+ 0.01763252900456555
+ 0.01763440690404218
+ 0.01763628486702367
+ 0.01763816289351447
+ 0.01764004098351905
+ 0.017641919137041842
+ 0.017643797354087304
+ 0.017645675634659835
+ 0.017647553978763896
+ 0.017649432386403908
+ 0.017651310857584302
+ 0.017653189392309476
+ 0.017655067990583861
+ 0.017656946652411847
+ 0.017658825377797869
+ 0.017660704166746293
+ 0.017662583019261553
+ 0.017664461935348014
+ 0.017666340915010056
+ 0.017668219958252088
+ 0.017670099065078472
+ 0.017671978235493602
+ 0.017673857469501796
+ 0.017675736767107476
+ 0.01767761612831497
+ 0.017679495553128654
+ 0.017681375041552875
+ 0.017683254593591973
+ 0.017685134209250285
+ 0.017687013888532166
+ 0.017688893631441948
+ 0.017690773437983944
+ 0.017692653308162502
+ 0.017694533241981926
+ 0.017696413239446557
+ 0.017698293300560667
+ 0.017700173425328584
+ 0.017702053613754622
+ 0.017703933865843079
+ 0.017705814181598237
+ 0.017707694561024372
+ 0.017709575004125809
+ 0.017711455510906807
+ 0.017713336081371645
+ 0.017715216715524573
+ 0.017717097413369916
+ 0.01771897817491188
+ 0.017720859000154743
+ 0.017722739889102772
+ 0.017724620841760221
+ 0.017726501858131301
+ 0.017728382938220273
+ 0.017730264082031402
+ 0.017732145289568891
+ 0.017734026560836967
+ 0.017735907895839859
+ 0.017737789294581797
+ 0.017739670757066981
+ 0.017741552283299621
+ 0.017743433873283962
+ 0.017745315527024144
+ 0.017747197244524403
+ 0.017749079025788934
+ 0.017750960870821911
+ 0.017752842779627524
+ 0.017754724752209947
+ 0.017756606788573371
+ 0.017758488888721953
+ 0.017760371052659867
+ 0.017762253280391268
+ 0.01776413557192031
+ 0.017766017927251167
+ 0.017767900346387984
+ 0.01776978282933489
+ 0.017771665376096028
+ 0.017773547986675558
+ 0.017775430661077573
+ 0.017777313399306251
+ 0.017779196201365668
+ 0.017781079067259953
+ 0.017782961996993231
+ 0.017784844990569613
+ 0.017786728048279792
+ 0.017788611179684111
+ 0.017790494389337486
+ 0.017792377677237802
+ 0.017794261043383008
+ 0.017796144487771004
+ 0.017798028010399689
+ 0.017799911611267004
+ 0.017801795290370816
+ 0.017803679047709058
+ 0.017805562883279627
+ 0.017807446797080385
+ 0.017809330789109259
+ 0.017811214859364103
+ 0.017813099007842816
+ 0.017814983234543297
+ 0.017816867539463394
+ 0.017818751922601007
+ 0.017820636383953956
+ 0.017822520923520178
+ 0.01782440554129747
+ 0.017826290237283739
+ 0.017828175011476832
+ 0.017830059863874571
+ 0.017831944794474856
+ 0.017833829803275497
+ 0.017835714890274353
+ 0.017837600055469225
+ 0.017839485298858013
+ 0.017841370620438498
+ 0.017843256020208545
+ 0.017845141498165941
+ 0.017847027054308542
+ 0.017848912688634141
+ 0.017850798401140597
+ 0.017852684191825677
+ 0.017854570060687188
+ 0.017856456007722957
+ 0.017858342032930772
+ 0.017860228136308463
+ 0.01786211431785379
+ 0.017864000577564539
+ 0.017865886915438521
+ 0.017867773331473498
+ 0.017869659825667294
+ 0.017871546398017649
+ 0.01787343304852235
+ 0.017875319777179145
+ 0.017877206583985856
+ 0.017879093468940181
+ 0.017880980432039922
+ 0.017882867473282812
+ 0.01788475459266663
+ 0.017886641790189117
+ 0.017888529065848018
+ 0.017890416419641061
+ 0.017892303851566004
+ 0.017894191361620577
+ 0.017896078949802545
+ 0.017897966616109592
+ 0.017899854360539459
+ 0.017901742183089851
+ 0.017903630083758518
+ 0.017905518062543167
+ 0.01790740611944153
+ 0.017909294254451272
+ 0.017911182467570126
+ 0.017913070758795786
+ 0.017914959128125955
+ 0.017916847575558333
+ 0.01791873610109062
+ 0.017920624704720479
+ 0.017922513386445595
+ 0.017924402146263674
+ 0.017926290984172387
+ 0.017928179900169417
+ 0.017930068894252409
+ 0.017931957966419033
+ 0.017933847116666995
+ 0.017935736344993902
+ 0.017937625651397438
+ 0.017939515035875285
+ 0.017941404498425028
+ 0.017943294039044381
+ 0.017945183657730946
+ 0.017947073354482375
+ 0.017948963129296312
+ 0.017950852982170386
+ 0.017952742913102209
+ 0.017954632922089448
+ 0.017956523009129706
+ 0.017958413174220592
+ 0.017960303417359737
+ 0.01796219373854473
+ 0.017964084137773225
+ 0.017965974615042804
+ 0.017967865170351056
+ 0.017969755803695593
+ 0.017971646515074012
+ 0.017973537304483918
+ 0.017975428171922884
+ 0.017977319117388504
+ 0.017979210140878353
+ 0.01798110124239001
+ 0.01798299242192106
+ 0.017984883679469061
+ 0.017986775015031591
+ 0.01798866642860621
+ 0.017990557920190494
+ 0.017992449489781997
+ 0.017994341137378241
+ 0.01799623286297683
+ 0.017998124666575285
+ 0.018000016548171151
+ 0.018001908507761961
+ 0.018003800545345266
+ 0.018005692660918615
+ 0.018007584854479505
+ 0.018009477126025481
+ 0.018011369475554078
+ 0.018013261903062776
+ 0.018015154408549144
+ 0.018017046992010677
+ 0.01801893965344489
+ 0.018020832392849257
+ 0.018022725210221309
+ 0.018024618105558551
+ 0.018026511078858474
+ 0.01802840413011856
+ 0.0180302972593363
+ 0.018032190466509206
+ 0.01803408375163474
+ 0.018035977114710382
+ 0.018037870555733616
+ 0.018039764074701901
+ 0.01804165767161273
+ 0.018043551346463543
+ 0.018045445099251805
+ 0.018047338929974996
+ 0.018049232838630566
+ 0.018051126825215931
+ 0.018053020889728603
+ 0.018054915032165973
+ 0.018056809252525508
+ 0.018058703550804644
+ 0.018060597927000818
+ 0.018062492381111437
+ 0.018064386913133966
+ 0.018066281523065806
+ 0.018068176210904386
+ 0.018070070976647132
+ 0.018071965820291434
+ 0.01807386074183474
+ 0.018075755741274426
+ 0.018077650818607901
+ 0.018079545973832566
+ 0.018081441206945832
+ 0.018083336517945081
+ 0.018085231906827707
+ 0.018087127373591097
+ 0.018089022918232636
+ 0.018090918540749675
+ 0.018092814241139669
+ 0.018094710019399905
+ 0.01809660587552778
+ 0.018098501809520683
+ 0.018100397821375958
+ 0.018102293911090972
+ 0.018104190078663082
+ 0.018106086324089634
+ 0.018107982647367966
+ 0.018109879048495446
+ 0.018111775527469405
+ 0.018113672084287193
+ 0.01811556871894613
+ 0.018117465431443547
+ 0.018119362221776781
+ 0.018121259089943179
+ 0.018123156035940023
+ 0.01812505305976465
+ 0.018126950161414385
+ 0.018128847340886503
+ 0.018130744598178334
+ 0.018132641933287216
+ 0.018134539346210423
+ 0.018136436836945213
+ 0.018138334405488944
+ 0.018140232051838866
+ 0.018142129775992291
+ 0.018144027577946479
+ 0.018145925457698716
+ 0.018147823415246303
+ 0.01814972145058651
+ 0.018151619563716578
+ 0.018153517754633784
+ 0.018155416023335411
+ 0.01815731436981869
+ 0.018159212794080899
+ 0.018161111296119289
+ 0.018163009875931106
+ 0.018164908533513605
+ 0.018166807268864014
+ 0.018168706081979551
+ 0.018170604972857506
+ 0.018172503941495079
+ 0.018174402987889512
+ 0.018176302112038016
+ 0.018178201313937808
+ 0.018180100593586115
+ 0.01818199995098017
+ 0.018183899386117183
+ 0.018185798898994326
+ 0.018187698489608838
+ 0.018189598157957915
+ 0.018191497904038741
+ 0.018193397727848507
+ 0.01819529762938445
+ 0.018197197608643707
+ 0.018199097665623481
+ 0.018200997800320959
+ 0.018202898012733289
+ 0.018204798302857702
+ 0.018206698670691308
+ 0.018208599116231322
+ 0.018210499639474863
+ 0.018212400240419119
+ 0.018214300919061253
+ 0.018216201675398402
+ 0.018218102509427708
+ 0.018220003421146345
+ 0.018221904410551444
+ 0.018223805477640128
+ 0.018225706622409559
+ 0.018227607844856848
+ 0.018229509144979145
+ 0.018231410522773557
+ 0.018233311978237219
+ 0.018235213511367247
+ 0.018237115122160755
+ 0.018239016810614832
+ 0.018240918576726634
+ 0.018242820420493241
+ 0.018244722341911754
+ 0.018246624340979272
+ 0.018248526417692895
+ 0.018250428572049702
+ 0.018252330804046795
+ 0.018254233113681247
+ 0.018256135500950156
+ 0.018258037965850571
+ 0.018259940508379601
+ 0.018261843128534273
+ 0.018263745826311708
+ 0.018265648601708939
+ 0.018267551454723023
+ 0.018269454385351019
+ 0.018271357393589989
+ 0.018273260479436986
+ 0.018275163642889045
+ 0.018277066883943215
+ 0.018278970202596521
+ 0.018280873598846038
+ 0.018282777072688754
+ 0.018284680624121752
+ 0.018286584253141985
+ 0.018288487959746531
+ 0.018290391743932391
+ 0.018292295605696594
+ 0.018294199545036121
+ 0.018296103561948013
+ 0.018298007656429263
+ 0.018299911828476866
+ 0.01830181607808784
+ 0.018303720405259159
+ 0.018305624809987812
+ 0.018307529292270808
+ 0.01830943385210515
+ 0.018311338489487742
+ 0.018313243204415627
+ 0.018315147996885776
+ 0.018317052866895153
+ 0.018318957814440682
+ 0.018320862839519392
+ 0.018322767942128223
+ 0.018324673122264105
+ 0.018326578379924012
+ 0.018328483715104885
+ 0.018330389127803701
+ 0.018332294618017386
+ 0.018334200185742854
+ 0.018336105830977063
+ 0.018338011553716942
+ 0.018339917353959425
+ 0.01834182323170146
+ 0.018343729186939928
+ 0.018345635219671759
+ 0.018347541329893878
+ 0.018349447517603212
+ 0.018351353782796637
+ 0.018353260125471078
+ 0.018355166545623421
+ 0.018357073043250589
+ 0.018358979618349466
+ 0.018360886270916924
+ 0.018362793000949888
+ 0.018364699808445222
+ 0.018366606693399783
+ 0.018368513655810489
+ 0.018370420695674208
+ 0.018372327812987796
+ 0.018374235007748128
+ 0.018376142279952073
+ 0.018378049629596476
+ 0.018379957056678192
+ 0.018381864561194079
+ 0.01838377214314103
+ 0.018385679802515827
+ 0.018387587539315329
+ 0.018389495353536404
+ 0.01839140324517587
+ 0.018393311214230563
+ 0.018395219260697322
+ 0.018397127384572942
+ 0.018399035585854252
+ 0.018400943864538097
+ 0.018402852220621293
+ 0.018404760654100606
+ 0.0184066691649729
+ 0.01840857775323497
+ 0.018410486418883574
+ 0.018412395161915573
+ 0.018414303982327684
+ 0.01841621288011679
+ 0.018418121855279603
+ 0.018420030907812936
+ 0.018421940037713577
+ 0.01842384924497829
+ 0.018425758529603872
+ 0.018427667891587077
+ 0.018429577330924648
+ 0.018431486847613403
+ 0.018433396441650037
+ 0.018435306113031368
+ 0.018437215861754119
+ 0.018439125687815042
+ 0.018441035591210891
+ 0.018442945571938405
+ 0.018444855629994289
+ 0.018446765765375343
+ 0.018448675978078265
+ 0.01845058626809977
+ 0.018452496635436605
+ 0.018454407080085482
+ 0.018456317602043158
+ 0.01845822820130627
+ 0.018460138877871624
+ 0.018462049631735832
+ 0.018463960462895675
+ 0.018465871371347805
+ 0.018467782357088947
+ 0.018469693420115788
+ 0.018471604560425015
+ 0.018473515778013344
+ 0.018475427072877398
+ 0.018477338445013904
+ 0.018479249894419528
+ 0.01848116142109096
+ 0.018483073025024853
+ 0.018484984706217868
+ 0.018486896464666669
+ 0.018488808300367931
+ 0.018490720213318292
+ 0.018492632203514416
+ 0.018494544270952956
+ 0.018496456415630556
+ 0.018498368637543845
+ 0.01850028093668947
+ 0.018502193313064061
+ 0.018504105766664277
+ 0.018506018297486708
+ 0.018507930905527999
+ 0.018509843590784787
+ 0.018511756353253663
+ 0.018513669192931247
+ 0.018515582109814153
+ 0.01851749510389902
+ 0.018519408175182397
+ 0.0185213213236609
+ 0.018523234549331156
+ 0.018525147852189717
+ 0.018527061232233206
+ 0.018528974689458216
+ 0.018530888223861303
+ 0.01853280183543906
+ 0.018534715524188054
+ 0.018536629290104877
+ 0.018538543133186057
+ 0.018540457053428216
+ 0.018542371050827892
+ 0.018544285125381626
+ 0.01854619927708601
+ 0.018548113505937564
+ 0.018550027811932861
+ 0.018551942195068408
+ 0.0185538566553408
+ 0.018555771192746536
+ 0.018557685807282166
+ 0.018559600498944215
+ 0.018561515267729204
+ 0.018563430113633685
+ 0.018565345036654163
+ 0.018567260036787134
+ 0.018569175114029158
+ 0.018571090268376687
+ 0.018573005499826281
+ 0.018574920808374425
+ 0.018576836194017603
+ 0.018578751656752331
+ 0.018580667196575116
+ 0.018582582813482393
+ 0.018584498507470692
+ 0.018586414278536492
+ 0.01858833012667627
+ 0.018590246051886489
+ 0.018592162054163641
+ 0.018594078133504176
+ 0.01859599428990456
+ 0.018597910523361266
+ 0.018599826833870757
+ 0.01860174322142949
+ 0.018603659686033881
+ 0.018605576227680401
+ 0.018607492846365519
+ 0.018609409542085627
+ 0.018611326314837199
+ 0.018613243164616673
+ 0.018615160091420446
+ 0.018617077095244964
+ 0.018618994176086638
+ 0.018620911333941913
+ 0.0186228285688072
+ 0.018624745880678896
+ 0.018626663269553402
+ 0.018628580735427166
+ 0.018630498278296551
+ 0.018632415898157961
+ 0.01863433359500782
+ 0.018636251368842501
+ 0.018638169219658371
+ 0.018640087147451856
+ 0.018642005152219296
+ 0.018643923233957114
+ 0.018645841392661656
+ 0.018647759628329291
+ 0.0186496779409564
+ 0.018651596330539321
+ 0.018653514797074465
+ 0.018655433340558147
+ 0.018657351960986727
+ 0.018659270658356569
+ 0.018661189432664021
+ 0.018663108283905414
+ 0.018665027212077072
+ 0.018666946217175382
+ 0.018668865299196612
+ 0.018670784458137153
+ 0.018672703693993292
+ 0.018674623006761357
+ 0.018676542396437679
+ 0.018678461863018567
+ 0.018680381406500319
+ 0.018682301026879265
+ 0.018684220724151695
+ 0.018686140498313936
+ 0.018688060349362236
+ 0.018689980277292947
+ 0.018691900282102322
+ 0.018693820363786657
+ 0.018695740522342224
+ 0.018697660757765338
+ 0.018699581070052249
+ 0.01870150145919924
+ 0.018703421925202579
+ 0.018705342468058533
+ 0.018707263087763343
+ 0.018709183784313299
+ 0.018711104557704659
+ 0.018713025407933633
+ 0.018714946334996527
+ 0.018716867338889557
+ 0.018718788419608955
+ 0.018720709577150978
+ 0.018722630811511862
+ 0.018724552122687824
+ 0.018726473510675089
+ 0.018728394975469916
+ 0.018730316517068482
+ 0.018732238135467028
+ 0.018734159830661751
+ 0.018736081602648894
+ 0.018738003451424644
+ 0.01873992537698518
+ 0.018741847379326756
+ 0.018743769458445518
+ 0.018745691614337697
+ 0.018747613846999456
+ 0.018749536156427
+ 0.018751458542616471
+ 0.018753381005564125
+ 0.018755303545266052
+ 0.018757226161718481
+ 0.01875914885491756
+ 0.018761071624859463
+ 0.018762994471540343
+ 0.018764917394956348
+ 0.018766840395103668
+ 0.018768763471978381
+ 0.018770686625576724
+ 0.018772609855894806
+ 0.01877453316292875
+ 0.018776456546674709
+ 0.018778380007128802
+ 0.018780303544287166
+ 0.01878222715814595
+ 0.018784150848701241
+ 0.018786074615949191
+ 0.018787998459885887
+ 0.018789922380507442
+ 0.018791846377809996
+ 0.018793770451789617
+ 0.018795694602442427
+ 0.01879761882976454
+ 0.018799543133752032
+ 0.018801467514400982
+ 0.018803391971707491
+ 0.018805316505667663
+ 0.018807241116277535
+ 0.018809165803533204
+ 0.018811090567430754
+ 0.01881301540796626
+ 0.018814940325135771
+ 0.018816865318935356
+ 0.018818790389361083
+ 0.018820715536409002
+ 0.018822640760075157
+ 0.018824566060355607
+ 0.018826491437246386
+ 0.018828416890743556
+ 0.018830342420843138
+ 0.018832268027541177
+ 0.018834193710833707
+ 0.018836119470716728
+ 0.018838045307186295
+ 0.018839971220238436
+ 0.018841897209869153
+ 0.018843823276074447
+ 0.018845749418850363
+ 0.018847675638192861
+ 0.018849601934097963
+ 0.018851528306561692
+ 0.018853454755580038
+ 0.018855381281148956
+ 0.01885730788326449
+ 0.01885923456192258
+ 0.018861161317119245
+ 0.018863088148850436
+ 0.01886501505711214
+ 0.018866942041900318
+ 0.018868869103210961
+ 0.01887079624104003
+ 0.018872723455383437
+ 0.018874650746237221
+ 0.018876578113597269
+ 0.018878505557459558
+ 0.018880433077820027
+ 0.018882360674674643
+ 0.018884288348019321
+ 0.018886216097850021
+ 0.018888143924162631
+ 0.018890071826953129
+ 0.018891999806217405
+ 0.018893927861951407
+ 0.018895855994151053
+ 0.01889778420281225
+ 0.018899712487930903
+ 0.018901640849502917
+ 0.018903569287524232
+ 0.018905497801990696
+ 0.018907426392898247
+ 0.018909355060242761
+ 0.01891128380402016
+ 0.018913212624226274
+ 0.018915141520857031
+ 0.018917070493908301
+ 0.018918999543375951
+ 0.018920928669255873
+ 0.018922857871543904
+ 0.018924787150235933
+ 0.018926716505327821
+ 0.018928645936815421
+ 0.01893057544469462
+ 0.018932505028961207
+ 0.018934434689611087
+ 0.018936364426640078
+ 0.018938294240044031
+ 0.018940224129818755
+ 0.018942154095960114
+ 0.018944084138463966
+ 0.018946014257326067
+ 0.018947944452542283
+ 0.018949874724108435
+ 0.01895180507202035
+ 0.018953735496273806
+ 0.018955665996864633
+ 0.018957596573788631
+ 0.018959527227041612
+ 0.018961457956619347
+ 0.018963388762517682
+ 0.018965319644732363
+ 0.018967250603259184
+ 0.01896918163809394
+ 0.018971112749232421
+ 0.018973043936670396
+ 0.018974975200403643
+ 0.018976906540427919
+ 0.018978837956738992
+ 0.018980769449332659
+ 0.018982701018204623
+ 0.018984632663350678
+ 0.01898656438476657
+ 0.01898849618244804
+ 0.018990428056390837
+ 0.018992360006590714
+ 0.018994292033043408
+ 0.018996224135744647
+ 0.018998156314690158
+ 0.01900008856987568
+ 0.019002020901296914
+ 0.019003953308949616
+ 0.019005885792829483
+ 0.019007818352932224
+ 0.01900975098925356
+ 0.01901168370178918
+ 0.019013616490534811
+ 0.019015549355486144
+ 0.019017482296638872
+ 0.019019415313988684
+ 0.019021348407531277
+ 0.019023281577262321
+ 0.019025214823177514
+ 0.019027148145272538
+ 0.019029081543543058
+ 0.019031015017984737
+ 0.01903294856859325
+ 0.019034882195364269
+ 0.019036815898293435
+ 0.019038749677376409
+ 0.019040683532608883
+ 0.019042617463986455
+ 0.019044551471504807
+ 0.019046485555159549
+ 0.019048419714946349
+ 0.01905035395086082
+ 0.019052288262898617
+ 0.019054222651055337
+ 0.019056157115326627
+ 0.019058091655708122
+ 0.019060026272195427
+ 0.019061960964784137
+ 0.019063895733469866
+ 0.019065830578248257
+ 0.019067765499114892
+ 0.01906970049606534
+ 0.019071635569095257
+ 0.019073570718200174
+ 0.019075505943375731
+ 0.019077441244617469
+ 0.01907937662192102
+ 0.019081312075281923
+ 0.01908324760469577
+ 0.01908518321015814
+ 0.019087118891664558
+ 0.019089054649210641
+ 0.019090990482791916
+ 0.019092926392403974
+ 0.019094862378042341
+ 0.019096798439702554
+ 0.019098734577380202
+ 0.019100670791070785
+ 0.019102607080769857
+ 0.019104543446472989
+ 0.019106479888175657
+ 0.019108416405873421
+ 0.019110352999561799
+ 0.019112289669236317
+ 0.019114226414892483
+ 0.019116163236525811
+ 0.019118100134131844
+ 0.019120037107706048
+ 0.019121974157243916
+ 0.019123911282741001
+ 0.01912584848419278
+ 0.019127785761594719
+ 0.019129723114942342
+ 0.019131660544231113
+ 0.019133598049456507
+ 0.019135535630614018
+ 0.019137473287699144
+ 0.01913941102070733
+ 0.019141348829633999
+ 0.019143286714474697
+ 0.019145224675224844
+ 0.019147162711879901
+ 0.01914910082443531
+ 0.019151039012886537
+ 0.019152977277229036
+ 0.019154915617458256
+ 0.019156854033569579
+ 0.01915879252555849
+ 0.019160731093420421
+ 0.019162669737150799
+ 0.01916460845674502
+ 0.019166547252198535
+ 0.019168486123506748
+ 0.019170425070665093
+ 0.019172364093668952
+ 0.019174303192513724
+ 0.019176242367194875
+ 0.019178181617707745
+ 0.019180120944047752
+ 0.019182060346210263
+ 0.019183999824190712
+ 0.019185939377984459
+ 0.019187879007586877
+ 0.019189818712993356
+ 0.019191758494199289
+ 0.019193698351199995
+ 0.019195638283990905
+ 0.019197578292567352
+ 0.019199518376924688
+ 0.019201458537058281
+ 0.019203398772963468
+ 0.019205339084635627
+ 0.019207279472070075
+ 0.019209219935262187
+ 0.019211160474207269
+ 0.019213101088900678
+ 0.019215041779337742
+ 0.01921698254551378
+ 0.01921892338742413
+ 0.019220864305064086
+ 0.019222805298429003
+ 0.019224746367514173
+ 0.019226687512314888
+ 0.019228628732826498
+ 0.019230570029044276
+ 0.01923251140096351
+ 0.019234452848579539
+ 0.019236394371887615
+ 0.019238335970883026
+ 0.019240277645561101
+ 0.019242219395917089
+ 0.019244161221946242
+ 0.019246103123643891
+ 0.019248045101005268
+ 0.019249987154025656
+ 0.019251929282700288
+ 0.019253871487024492
+ 0.019255813766993434
+ 0.019257756122602429
+ 0.019259698553846717
+ 0.019261641060721535
+ 0.019263583643222119
+ 0.019265526301343715
+ 0.019267469035081537
+ 0.019269411844430855
+ 0.019271354729386875
+ 0.019273297689944797
+ 0.019275240726099901
+ 0.019277183837847343
+ 0.019279127025182353
+ 0.01928107028810017
+ 0.019283013626595957
+ 0.019284957040664963
+ 0.019286900530302332
+ 0.019288844095503289
+ 0.019290787736263033
+ 0.01929273145257673
+ 0.01929467524443956
+ 0.019296619111846745
+ 0.019298563054793418
+ 0.019300507073274766
+ 0.019302451167285972
+ 0.019304395336822166
+ 0.019306339581878548
+ 0.019308283902450266
+ 0.019310228298532479
+ 0.019312172770120331
+ 0.019314117317208963
+ 0.019316061939793513
+ 0.019318006637869142
+ 0.019319951411430988
+ 0.019321896260474168
+ 0.019323841184993831
+ 0.019325786184985077
+ 0.019327731260443032
+ 0.019329676411362844
+ 0.019331621637739608
+ 0.019333566939568437
+ 0.019335512316844428
+ 0.01933745776956269
+ 0.019339403297718345
+ 0.019341348901306482
+ 0.019343294580322187
+ 0.019345240334760545
+ 0.019347186164616618
+ 0.019349132069885533
+ 0.019351078050562368
+ 0.019353024106642188
+ 0.019354970238120044
+ 0.019356916444991025
+ 0.019358862727250185
+ 0.019360809084892596
+ 0.019362755517913326
+ 0.019364702026307388
+ 0.019366648610069877
+ 0.0193685952691958
+ 0.019370542003680231
+ 0.019372488813518187
+ 0.019374435698704708
+ 0.019376382659234841
+ 0.019378329695103606
+ 0.019380276806305993
+ 0.01938222399283708
+ 0.019384171254691877
+ 0.019386118591865346
+ 0.019388066004352545
+ 0.019390013492148479
+ 0.019391961055248118
+ 0.019393908693646478
+ 0.019395856407338562
+ 0.019397804196319344
+ 0.019399752060583846
+ 0.019401700000127028
+ 0.019403648014943861
+ 0.01940559610502934
+ 0.01940754427037843
+ 0.019409492510986125
+ 0.019411440826847339
+ 0.019413389217957069
+ 0.019415337684310304
+ 0.019417286225901925
+ 0.019419234842726962
+ 0.019421183534780305
+ 0.01942313230205692
+ 0.019425081144551739
+ 0.019427030062259727
+ 0.019428979055175797
+ 0.019430928123294857
+ 0.019432877266611866
+ 0.01943482648512174
+ 0.019436775778819408
+ 0.019438725147699724
+ 0.019440674591757693
+ 0.019442624110988165
+ 0.019444573705386044
+ 0.019446523374946258
+ 0.019448473119663676
+ 0.019450422939533214
+ 0.019452372834549748
+ 0.019454322804708161
+ 0.019456272850003339
+ 0.019458222970430164
+ 0.01946017316598353
+ 0.01946212343665828
+ 0.019464073782449277
+ 0.019466024203351411
+ 0.019467974699359528
+ 0.019469925270468487
+ 0.019471875916673147
+ 0.019473826637968334
+ 0.019475777434348918
+ 0.019477728305809731
+ 0.019479679252345641
+ 0.019481630273951427
+ 0.019483581370621963
+ 0.019485532542352066
+ 0.019487483789136548
+ 0.01948943511097025
+ 0.019491386507847958
+ 0.019493337979764505
+ 0.019495289526714709
+ 0.019497241148693386
+ 0.019499192845695276
+ 0.019501144617715259
+ 0.01950309646474805
+ 0.019505048386788491
+ 0.019507000383831356
+ 0.019508952455871455
+ 0.019510904602903504
+ 0.019512856824922337
+ 0.019514809121922706
+ 0.01951676149389938
+ 0.019518713940847116
+ 0.019520666462760673
+ 0.019522619059634847
+ 0.019524571731464359
+ 0.019526524478243962
+ 0.019528477299968396
+ 0.01953043019663242
+ 0.019532383168230784
+ 0.019534336214758204
+ 0.019536289336209395
+ 0.019538242532579127
+ 0.019540195803862098
+ 0.019542149150053024
+ 0.019544102571146641
+ 0.019546056067137652
+ 0.019548009638020784
+ 0.019549963283790713
+ 0.019551917004442171
+ 0.019553870799969824
+ 0.019555824670368406
+ 0.019557778615632581
+ 0.019559732635757058
+ 0.019561686730736501
+ 0.019563640900565598
+ 0.019565595145239031
+ 0.019567549464751463
+ 0.019569503859097569
+ 0.019571458328272031
+ 0.019573412872269449
+ 0.019575367491084586
+ 0.019577322184712014
+ 0.019579276953146388
+ 0.019581231796382402
+ 0.019583186714414686
+ 0.019585141707237835
+ 0.019587096774846546
+ 0.019589051917235395
+ 0.019591007134399058
+ 0.019592962426332145
+ 0.01959491779302925
+ 0.019596873234485054
+ 0.019598828750694099
+ 0.019600784341651033
+ 0.019602740007350478
+ 0.019604695747787011
+ 0.019606651562955241
+ 0.019608607452849744
+ 0.019610563417465143
+ 0.019612519456795999
+ 0.019614475570836939
+ 0.019616431759582505
+ 0.019618388023027268
+ 0.019620344361165821
+ 0.019622300773992733
+ 0.019624257261502565
+ 0.019626213823689891
+ 0.019628170460549252
+ 0.019630127172075226
+ 0.019632083958262339
+ 0.019634040819105154
+ 0.019635997754598199
+ 0.019637954764736024
+ 0.019639911849513192
+ 0.019641869008924184
+ 0.019643826242963579
+ 0.019645783551625853
+ 0.01964774093490557
+ 0.019649698392797219
+ 0.019651655925295341
+ 0.019653613532394431
+ 0.019655571214089007
+ 0.019657528970373535
+ 0.019659486801242576
+ 0.019661444706690557
+ 0.019663402686712024
+ 0.019665360741301444
+ 0.01966731887045331
+ 0.019669277074162078
+ 0.019671235352422246
+ 0.019673193705228298
+ 0.019675152132574699
+ 0.019677110634455885
+ 0.019679069210866346
+ 0.019681027861800537
+ 0.019682986587252892
+ 0.019684945387217889
+ 0.019686904261689973
+ 0.019688863210663585
+ 0.019690822234133171
+ 0.019692781332093116
+ 0.019694740504537941
+ 0.019696699751461995
+ 0.019698659072859753
+ 0.019700618468725624
+ 0.019702577939054
+ 0.0197045374838393
+ 0.019706497103075996
+ 0.019708456796758405
+ 0.019710416564881001
+ 0.019712376407438139
+ 0.019714336324424236
+ 0.019716296315833673
+ 0.019718256381660845
+ 0.019720216521900136
+ 0.019722176736545912
+ 0.019724137025592565
+ 0.019726097389034476
+ 0.019728057826865986
+ 0.01973001833908147
+ 0.019731978925675325
+ 0.019733939586641845
+ 0.01973590032197545
+ 0.019737861131670441
+ 0.019739822015721189
+ 0.019741782974122022
+ 0.019743744006867299
+ 0.019745705113951344
+ 0.019747666295368466
+ 0.019749627551113043
+ 0.019751588881179376
+ 0.019753550285561753
+ 0.019755511764254535
+ 0.019757473317252031
+ 0.019759434944548522
+ 0.019761396646138331
+ 0.019763358422015778
+ 0.019765320272175129
+ 0.01976728219661068
+ 0.01976924419531674
+ 0.019771206268287614
+ 0.019773168415517545
+ 0.019775130637000815
+ 0.019777092932731721
+ 0.019779055302704518
+ 0.019781017746913508
+ 0.019782980265352905
+ 0.019784942858017004
+ 0.019786905524900048
+ 0.019788868265996306
+ 0.019790831081300003
+ 0.01979279397080539
+ 0.019794756934506743
+ 0.019796719972398253
+ 0.019798683084474179
+ 0.019800646270728743
+ 0.019802609531156177
+ 0.019804572865750703
+ 0.019806536274506528
+ 0.019808499757417896
+ 0.019810463314478988
+ 0.019812426945684049
+ 0.01981439065102723
+ 0.019816354430502784
+ 0.01981831828410488
+ 0.019820282211827731
+ 0.01982224621366549
+ 0.019824210289612374
+ 0.019826174439662562
+ 0.019828138663810196
+ 0.019830102962049515
+ 0.019832067334374627
+ 0.019834031780779752
+ 0.019835996301259005
+ 0.019837960895806563
+ 0.019839925564416581
+ 0.019841890307083217
+ 0.019843855123800647
+ 0.019845820014562952
+ 0.019847784979364326
+ 0.019849750018198851
+ 0.019851715131060703
+ 0.019853680317944006
+ 0.019855645578842875
+ 0.019857610913751447
+ 0.01985957632266383
+ 0.019861541805574111
+ 0.019863507362476451
+ 0.019865472993364917
+ 0.019867438698233635
+ 0.019869404477076684
+ 0.019871370329888158
+ 0.019873336256662166
+ 0.019875302257392809
+ 0.019877268332074118
+ 0.019879234480700218
+ 0.01988120070326517
+ 0.019883166999763044
+ 0.019885133370187932
+ 0.019887099814533845
+ 0.019889066332794896
+ 0.019891032924965121
+ 0.019892999591038584
+ 0.01989496633100931
+ 0.019896933144871374
+ 0.019898900032618797
+ 0.019900866994245626
+ 0.019902834029745894
+ 0.019904801139113637
+ 0.01990676832234289
+ 0.019908735579427635
+ 0.019910702910361941
+ 0.019912670315139783
+ 0.019914637793755199
+ 0.019916605346202196
+ 0.019918572972474756
+ 0.019920540672566895
+ 0.019922508446472621
+ 0.019924476294185922
+ 0.019926444215700757
+ 0.019928412211011149
+ 0.019930380280111053
+ 0.019932348422994454
+ 0.019934316639655336
+ 0.019936284930087658
+ 0.019938253294285384
+ 0.019940221732242493
+ 0.019942190243952929
+ 0.019944158829410641
+ 0.019946127488609602
+ 0.019948096221543737
+ 0.019950065028206999
+ 0.019952033908593337
+ 0.019954002862696645
+ 0.019955971890510911
+ 0.019957940992030031
+ 0.019959910167247928
+ 0.019961879416158543
+ 0.019963848738755775
+ 0.019965818135033536
+ 0.019967787604985746
+ 0.019969757148606302
+ 0.019971726765889097
+ 0.019973696456828064
+ 0.019975666221417047
+ 0.019977636059649962
+ 0.019979605971520712
+ 0.01998157595702315
+ 0.019983546016151158
+ 0.019985516148898621
+ 0.019987486355259425
+ 0.019989456635227384
+ 0.019991426988796426
+ 0.019993397415960363
+ 0.01999536791671308
+ 0.019997338491048403
+ 0.019999309138960201
+ 0.020001279860442311
+ 0.020003250655488563
+ 0.020005221524092807
+ 0.020007192466248869
+ 0.02000916348195058
+ 0.020011134571191774
+ 0.020013105733966249
+ 0.020015076970267845
+ 0.020017048280090356
+ 0.020019019663427607
+ 0.020020991120273394
+ 0.020022962650621534
+ 0.020024934254465811
+ 0.020026905931800006
+ 0.020028877682617945
+ 0.020030849506913397
+ 0.020032821404680129
+ 0.020034793375911953
+ 0.020036765420602606
+ 0.020038737538745882
+ 0.020040709730335539
+ 0.02004268199536537
+ 0.020044654333829098
+ 0.02004662674572048
+ 0.020048599231033283
+ 0.020050571789761263
+ 0.020052544421898161
+ 0.020054517127437683
+ 0.020056489906373612
+ 0.020058462758699658
+ 0.020060435684409537
+ 0.020062408683497009
+ 0.020064381755955776
+ 0.020066354901779552
+ 0.02006832812096206
+ 0.020070301413497006
+ 0.02007227477937808
+ 0.020074248218599013
+ 0.020076221731153487
+ 0.020078195317035172
+ 0.020080168976237808
+ 0.020082142708755042
+ 0.020084116514580599
+ 0.020086090393708102
+ 0.020088064346131276
+ 0.020090038371843765
+ 0.020092012470839232
+ 0.02009398664311135
+ 0.02009596088865381
+ 0.02009793520746021
+ 0.020099909599524242
+ 0.020101884064839523
+ 0.020103858603399735
+ 0.020105833215198494
+ 0.020107807900229448
+ 0.020109782658486203
+ 0.020111757489962419
+ 0.02011373239465172
+ 0.020115707372547705
+ 0.020117682423643996
+ 0.020119657547934228
+ 0.020121632745411983
+ 0.020123608016070882
+ 0.020125583359904515
+ 0.020127558776906512
+ 0.020129534267070429
+ 0.020131509830389867
+ 0.020133485466858406
+ 0.020135461176469655
+ 0.020137436959217166
+ 0.020139412815094539
+ 0.020141388744095306
+ 0.020143364746213064
+ 0.020145340821441361
+ 0.020147316969773781
+ 0.020149293191203847
+ 0.020151269485725119
+ 0.020153245853331156
+ 0.020155222294015486
+ 0.020157198807771674
+ 0.020159175394593241
+ 0.020161152054473698
+ 0.020163128787406604
+ 0.020165105593385465
+ 0.020167082472403817
+ 0.020169059424455165
+ 0.020171036449533011
+ 0.020173013547630889
+ 0.020174990718742264
+ 0.020176967962860694
+ 0.020178945279979637
+ 0.020180922670092603
+ 0.02018290013319304
+ 0.020184877669274497
+ 0.020186855278330394
+ 0.020188832960354262
+ 0.020190810715339541
+ 0.020192788543279716
+ 0.020194766444168233
+ 0.020196744417998583
+ 0.020198722464764198
+ 0.020200700584458543
+ 0.020202678777075069
+ 0.020204657042607228
+ 0.020206635381048436
+ 0.020208613792392166
+ 0.020210592276631838
+ 0.020212570833760882
+ 0.02021454946377272
+ 0.020216528166660773
+ 0.020218506942418463
+ 0.02022048579103922
+ 0.020222464712516427
+ 0.020224443706843526
+ 0.020226422774013889
+ 0.020228401914020935
+ 0.020230381126858047
+ 0.020232360412518628
+ 0.020234339770996042
+ 0.02023631920228371
+ 0.020238298706374992
+ 0.02024027828326324
+ 0.020242257932941866
+ 0.020244237655404229
+ 0.020246217450643676
+ 0.020248197318653571
+ 0.02025017725942729
+ 0.020252157272958152
+ 0.020254137359239543
+ 0.020256117518264775
+ 0.020258097750027227
+ 0.020260078054520188
+ 0.020262058431737031
+ 0.020264038881671057
+ 0.020266019404315598
+ 0.020267999999663985
+ 0.020269980667709527
+ 0.020271961408445539
+ 0.020273942221865342
+ 0.020275923107962238
+ 0.020277904066729496
+ 0.020279885098160449
+ 0.020281866202248373
+ 0.020283847378986575
+ 0.020285828628368318
+ 0.020287809950386898
+ 0.020289791345035588
+ 0.020291772812307672
+ 0.020293754352196405
+ 0.020295735964695062
+ 0.0202977176497969
+ 0.020299699407495167
+ 0.020301681237783156
+ 0.020303663140654071
+ 0.020305645116101199
+ 0.020307627164117728
+ 0.020309609284696963
+ 0.020311591477832094
+ 0.020313573743516351
+ 0.020315556081742979
+ 0.020317538492505196
+ 0.020319520975796222
+ 0.020321503531609261
+ 0.020323486159937544
+ 0.02032546886077426
+ 0.020327451634112599
+ 0.020329434479945785
+ 0.020331417398267007
+ 0.020333400389069473
+ 0.020335383452346329
+ 0.020337366588090787
+ 0.020339349796296018
+ 0.020341333076955192
+ 0.020343316430061514
+ 0.020345299855608092
+ 0.020347283353588128
+ 0.020349266923994788
+ 0.020351250566821209
+ 0.02035323428206055
+ 0.020355218069705947
+ 0.02035720192975056
+ 0.020359185862187528
+ 0.020361169867009962
+ 0.02036315394421102
+ 0.020365138093783819
+ 0.020367122315721499
+ 0.020369106610017139
+ 0.02037109097666389
+ 0.020373075415654869
+ 0.020375059926983158
+ 0.020377044510641873
+ 0.020379029166624117
+ 0.020381013894922976
+ 0.020382998695531559
+ 0.02038498356844293
+ 0.020386968513650197
+ 0.020388953531146427
+ 0.020390938620924701
+ 0.020392923782978065
+ 0.02039490901729963
+ 0.020396894323882451
+ 0.020398879702719554
+ 0.020400865153804026
+ 0.020402850677128912
+ 0.020404836272687268
+ 0.020406821940472129
+ 0.020408807680476534
+ 0.020410793492693511
+ 0.020412779377116105
+ 0.020414765333737352
+ 0.020416751362550271
+ 0.020418737463547856
+ 0.020420723636723141
+ 0.020422709882069165
+ 0.020424696199578905
+ 0.020426682589245369
+ 0.020428669051061565
+ 0.020430655585020475
+ 0.020432642191115118
+ 0.020434628869338462
+ 0.020436615619683501
+ 0.020438602442143194
+ 0.020440589336710547
+ 0.020442576303378507
+ 0.020444563342140083
+ 0.020446550452988176
+ 0.020448537635915792
+ 0.020450524890915873
+ 0.020452512217981379
+ 0.020454499617105253
+ 0.020456487088280441
+ 0.020458474631499888
+ 0.02046046224675652
+ 0.020462449934043277
+ 0.020464437693353078
+ 0.020466425524678859
+ 0.020468413428013529
+ 0.020470401403350016
+ 0.020472389450681219
+ 0.020474377570000056
+ 0.020476365761299433
+ 0.020478354024572234
+ 0.020480342359811381
+ 0.020482330767009751
+ 0.020484319246160228
+ 0.020486307797255708
+ 0.020488296420289043
+ 0.020490285115253158
+ 0.020492273882140876
+ 0.020494262720945101
+ 0.020496251631658698
+ 0.020498240614274486
+ 0.020500229668785359
+ 0.020502218795184161
+ 0.020504207993463721
+ 0.020506197263616899
+ 0.020508186605636528
+ 0.020510176019515471
+ 0.020512165505246531
+ 0.020514155062822535
+ 0.020516144692236331
+ 0.02051813439348071
+ 0.020520124166548501
+ 0.020522114011432516
+ 0.020524103928125557
+ 0.020526093916620448
+ 0.020528083976909951
+ 0.020530074108986884
+ 0.020532064312844062
+ 0.020534054588474231
+ 0.020536044935870187
+ 0.020538035355024725
+ 0.020540025845930603
+ 0.020542016408580603
+ 0.020544007042967494
+ 0.020545997749084013
+ 0.020547988526922956
+ 0.020549979376477057
+ 0.020551970297739069
+ 0.02055396129070175
+ 0.020555952355357825
+ 0.020557943491700047
+ 0.020559934699721144
+ 0.020561925979413836
+ 0.020563917330770884
+ 0.020565908753784983
+ 0.020567900248448845
+ 0.020569891814755218
+ 0.020571883452696789
+ 0.020573875162266254
+ 0.020575866943456332
+ 0.020577858796259719
+ 0.020579850720669108
+ 0.020581842716677196
+ 0.020583834784276653
+ 0.020585826923460185
+ 0.020587819134220451
+ 0.020589811416550134
+ 0.020591803770441879
+ 0.020593796195888404
+ 0.020595788692882314
+ 0.020597781261416308
+ 0.020599773901483015
+ 0.020601766613075105
+ 0.020603759396185202
+ 0.020605752250805954
+ 0.020607745176930006
+ 0.020609738174549985
+ 0.020611731243658539
+ 0.020613724384248269
+ 0.020615717596311783
+ 0.020617710879841752
+ 0.02061970423483072
+ 0.020621697661271358
+ 0.020623691159156243
+ 0.02062568472847796
+ 0.020627678369229133
+ 0.020629672081402348
+ 0.020631665864990177
+ 0.020633659719985212
+ 0.020635653646380075
+ 0.020637647644167267
+ 0.020639641713339412
+ 0.020641635853889069
+ 0.020643630065808806
+ 0.020645624349091157
+ 0.020647618703728686
+ 0.020649613129713952
+ 0.020651607627039527
+ 0.020653602195697923
+ 0.020655596835681678
+ 0.020657591546983343
+ 0.020659586329595445
+ 0.020661581183510507
+ 0.020663576108721046
+ 0.020665571105219601
+ 0.020667566172998662
+ 0.020669561312050763
+ 0.020671556522368399
+ 0.020673551803944069
+ 0.02067554715677028
+ 0.020677542580839519
+ 0.020679538076144272
+ 0.020681533642677042
+ 0.020683529280430293
+ 0.020685524989396527
+ 0.020687520769568181
+ 0.020689516620937765
+ 0.0206915125434977
+ 0.020693508537240481
+ 0.020695504602158563
+ 0.020697500738244376
+ 0.020699496945490396
+ 0.020701493223889061
+ 0.0207034895734328
+ 0.020705485994114068
+ 0.020707482485925275
+ 0.020709479048858871
+ 0.020711475682907269
+ 0.020713472388062884
+ 0.02071546916431815
+ 0.02071746601166545
+ 0.020719462930097209
+ 0.02072145991960584
+ 0.020723456980183727
+ 0.020725454111823301
+ 0.020727451314516889
+ 0.02072944858825693
+ 0.020731445933035803
+ 0.020733443348845849
+ 0.020735440835679485
+ 0.020737438393529067
+ 0.020739436022386943
+ 0.020741433722245496
+ 0.020743431493097073
+ 0.020745429334934042
+ 0.020747427247748758
+ 0.020749425231533537
+ 0.020751423286280737
+ 0.020753421411982716
+ 0.020755419608631795
+ 0.02075741787622026
+ 0.020759416214740496
+ 0.0207614146241848
+ 0.020763413104545492
+ 0.020765411655814858
+ 0.020767410277985253
+ 0.020769408971048946
+ 0.020771407734998266
+ 0.020773406569825483
+ 0.02077540547552291
+ 0.020777404452082798
+ 0.02077940349949747
+ 0.020781402617759202
+ 0.020783401806860238
+ 0.020785401066792889
+ 0.020787400397549394
+ 0.020789399799122019
+ 0.02079139927150303
+ 0.020793398814684692
+ 0.020795398428659222
+ 0.020797398113418915
+ 0.02079939786895596
+ 0.020801397695262638
+ 0.020803397592331158
+ 0.020805397560153732
+ 0.020807397598722636
+ 0.020809397708030048
+ 0.020811397888068218
+ 0.020813398138829351
+ 0.020815398460305615
+ 0.020817398852489274
+ 0.020819399315372498
+ 0.020821399848947469
+ 0.020823400453206391
+ 0.020825401128141467
+ 0.020827401873744877
+ 0.020829402690008776
+ 0.02083140357692537
+ 0.020833404534486816
+ 0.020835405562685282
+ 0.020837406661512924
+ 0.020839407830961897
+ 0.020841409071024365
+ 0.020843410381692493
+ 0.020845411762958406
+ 0.020847413214814248
+ 0.020849414737252166
+ 0.020851416330264282
+ 0.020853417993842719
+ 0.020855419727979621
+ 0.020857421532667106
+ 0.02085942340789728
+ 0.020861425353662269
+ 0.020863427369954158
+ 0.020865429456765085
+ 0.020867431614087117
+ 0.020869433841912359
+ 0.020871436140232919
+ 0.02087343850904087
+ 0.020875440948328279
+ 0.020877443458087255
+ 0.020879446038309855
+ 0.020881448688988169
+ 0.020883451410114235
+ 0.020885454201680122
+ 0.020887457063677905
+ 0.020889459996099619
+ 0.020891462998937328
+ 0.020893466072183061
+ 0.020895469215828872
+ 0.020897472429866799
+ 0.020899475714288875
+ 0.020901479069087101
+ 0.020903482494253521
+ 0.020905485989780176
+ 0.020907489555659041
+ 0.020909493191882154
+ 0.020911496898441531
+ 0.020913500675329138
+ 0.020915504522537008
+ 0.020917508440057103
+ 0.020919512427881457
+ 0.020921516486002014
+ 0.020923520614410791
+ 0.020925524813099741
+ 0.020927529082060827
+ 0.020929533421286048
+ 0.020931537830767368
+ 0.020933542310496722
+ 0.020935546860466069
+ 0.0209375514806674
+ 0.020939556171092614
+ 0.020941560931733685
+ 0.02094356576258254
+ 0.020945570663631115
+ 0.020947575634871343
+ 0.020949580676295158
+ 0.020951585787894463
+ 0.02095359096966121
+ 0.020955596221587276
+ 0.020957601543664578
+ 0.020959606935885031
+ 0.020961612398240553
+ 0.020963617930723006
+ 0.020965623533324321
+ 0.020967629206036353
+ 0.020969634948850992
+ 0.02097164076176012
+ 0.020973646644755629
+ 0.020975652597829363
+ 0.020977658620973227
+ 0.020979664714179041
+ 0.020981670877438695
+ 0.020983677110744038
+ 0.020985683414086895
+ 0.020987689787459154
+ 0.02098969623085261
+ 0.020991702744259141
+ 0.02099370932767056
+ 0.020995715981078696
+ 0.020997722704475374
+ 0.020999729497852421
+ 0.021001736361201655
+ 0.02100374329451488
+ 0.021005750297783891
+ 0.021007757371000527
+ 0.021009764514156558
+ 0.021011771727243771
+ 0.021013779010253988
+ 0.021015786363178971
+ 0.021017793786010514
+ 0.021019801278740396
+ 0.021021808841360377
+ 0.021023816473862228
+ 0.021025824176237728
+ 0.021027831948478622
+ 0.021029839790576675
+ 0.021031847702523625
+ 0.021033855684311247
+ 0.021035863735931266
+ 0.021037871857375424
+ 0.02103988004863545
+ 0.021041888309703081
+ 0.021043896640570037
+ 0.021045905041228045
+ 0.021047913511668809
+ 0.021049922051884069
+ 0.021051930661865524
+ 0.021053939341604856
+ 0.02105594809109379
+ 0.021057956910324041
+ 0.021059965799287251
+ 0.021061974757975135
+ 0.021063983786379369
+ 0.021065992884491624
+ 0.021068002052303619
+ 0.021070011289806973
+ 0.021072020596993361
+ 0.02107402997385447
+ 0.021076039420381922
+ 0.021078048936567419
+ 0.021080058522402551
+ 0.021082068177879006
+ 0.021084077902988392
+ 0.021086087697722387
+ 0.02108809756207258
+ 0.021090107496030609
+ 0.021092117499588104
+ 0.021094127572736685
+ 0.021096137715467967
+ 0.021098147927773554
+ 0.021100158209645063
+ 0.021102168561074063
+ 0.021104178982052191
+ 0.021106189472571014
+ 0.021108200032622128
+ 0.021110210662197128
+ 0.02111222136128757
+ 0.021114232129885037
+ 0.021116242967981112
+ 0.021118253875567358
+ 0.02112026485263533
+ 0.021122275899176573
+ 0.021124287015182673
+ 0.021126298200645148
+ 0.02112830945555556
+ 0.021130320779905443
+ 0.021132332173686357
+ 0.021134343636889794
+ 0.02113635516950731
+ 0.021138366771530418
+ 0.021140378442950632
+ 0.021142390183759477
+ 0.021144401993948445
+ 0.021146413873509063
+ 0.021148425822432825
+ 0.02115043784071122
+ 0.021152449928335759
+ 0.021154462085297889
+ 0.021156474311589159
+ 0.021158486607201002
+ 0.021160498972124891
+ 0.021162511406352304
+ 0.021164523909874739
+ 0.021166536482683618
+ 0.021168549124770432
+ 0.021170561836126599
+ 0.021172574616743583
+ 0.021174587466612833
+ 0.021176600385725788
+ 0.021178613374073882
+ 0.021180626431648541
+ 0.021182639558441203
+ 0.02118465275444328
+ 0.021186666019646208
+ 0.021188679354041378
+ 0.021190692757620234
+ 0.021192706230374132
+ 0.021194719772294507
+ 0.021196733383372735
+ 0.021198747063600254
+ 0.021200760812968376
+ 0.021202774631468566
+ 0.021204788519092146
+ 0.021206802475830521
+ 0.021208816501675026
+ 0.021210830596617065
+ 0.02121284476064797
+ 0.021214858993759137
+ 0.02121687329594189
+ 0.021218887667187568
+ 0.021220902107487529
+ 0.021222916616833121
+ 0.021224931195215676
+ 0.02122694584262648
+ 0.021228960559056931
+ 0.021230975344498328
+ 0.021232990198941953
+ 0.021235005122379153
+ 0.02123702011480124
+ 0.021239035176199485
+ 0.021241050306565239
+ 0.021243065505889742
+ 0.021245080774164312
+ 0.021247096111380242
+ 0.021249111517528816
+ 0.021251126992601291
+ 0.021253142536588953
+ 0.021255158149483078
+ 0.021257173831274907
+ 0.021259189581955742
+ 0.021261205401516787
+ 0.021263221289949327
+ 0.02126523724724462
+ 0.021267253273393863
+ 0.021269269368388334
+ 0.021271285532219249
+ 0.021273301764877857
+ 0.021275318066355353
+ 0.021277334436642984
+ 0.02127935087573193
+ 0.021281367383613442
+ 0.021283383960278724
+ 0.02128540060571895
+ 0.02128741731992535
+ 0.021289434102889089
+ 0.021291450954601377
+ 0.021293467875053384
+ 0.021295484864236307
+ 0.02129750192214129
+ 0.021299519048759558
+ 0.021301536244082254
+ 0.021303553508100512
+ 0.021305570840805525
+ 0.021307588242188431
+ 0.021309605712240387
+ 0.021311623250952524
+ 0.021313640858316014
+ 0.021315658534321966
+ 0.021317676278961511
+ 0.021319694092225786
+ 0.021321711974105921
+ 0.021323729924592999
+ 0.02132574794367819
+ 0.021327766031352547
+ 0.021329784187607202
+ 0.021331802412433275
+ 0.021333820705821831
+ 0.02133583906776397
+ 0.021337857498250776
+ 0.021339875997273348
+ 0.021341894564822755
+ 0.021343913200890047
+ 0.021345931905466332
+ 0.021347950678542647
+ 0.021349969520110066
+ 0.021351988430159639
+ 0.021354007408682422
+ 0.021356026455669464
+ 0.021358045571111775
+ 0.021360064755000449
+ 0.021362084007326487
+ 0.021364103328080933
+ 0.021366122717254771
+ 0.02136814217483907
+ 0.02137016170082482
+ 0.021372181295203036
+ 0.021374200957964731
+ 0.021376220689100892
+ 0.021378240488602533
+ 0.02138026035646064
+ 0.021382280292666214
+ 0.021384300297210203
+ 0.021386320370083634
+ 0.021388340511277446
+ 0.021390360720782636
+ 0.02139238099859014
+ 0.021394401344690964
+ 0.021396421759076002
+ 0.021398442241736253
+ 0.02140046279266267
+ 0.021402483411846175
+ 0.021404504099277692
+ 0.021406524854948209
+ 0.0214085456788486
+ 0.021410566570969826
+ 0.021412587531302794
+ 0.021414608559838434
+ 0.021416629656567626
+ 0.021418650821481314
+ 0.02142067205457036
+ 0.021422693355825723
+ 0.021424714725238245
+ 0.021426736162798825
+ 0.021428757668498374
+ 0.021430779242327738
+ 0.021432800884277802
+ 0.021434822594339455
+ 0.021436844372503566
+ 0.021438866218760969
+ 0.021440888133102548
+ 0.021442910115519128
+ 0.021444932166001591
+ 0.021446954284540756
+ 0.021448976471127475
+ 0.021450998725752578
+ 0.021453021048406903
+ 0.021455043439081264
+ 0.021457065897766511
+ 0.021459088424453415
+ 0.021461111019132832
+ 0.021463133681795536
+ 0.021465156412432355
+ 0.021467179211034061
+ 0.021469202077591475
+ 0.021471225012095377
+ 0.021473248014536563
+ 0.021475271084905791
+ 0.021477294223193867
+ 0.02147931742939152
+ 0.02148134070348956
+ 0.021483364045478716
+ 0.02148538745534977
+ 0.021487410933093466
+ 0.021489434478700557
+ 0.021491458092161776
+ 0.021493481773467878
+ 0.021495505522609579
+ 0.021497529339577652
+ 0.021499553224362755
+ 0.021501577176955659
+ 0.021503601197347073
+ 0.021505625285527696
+ 0.021507649441488245
+ 0.021509673665219442
+ 0.021511697956711942
+ 0.021513722315956486
+ 0.021515746742943702
+ 0.021517771237664341
+ 0.021519795800109053
+ 0.021521820430268512
+ 0.0215238451281334
+ 0.021525869893694365
+ 0.021527894726942085
+ 0.021529919627867215
+ 0.021531944596460413
+ 0.021533969632712313
+ 0.021535994736613571
+ 0.021538019908154807
+ 0.021540045147326679
+ 0.021542070454119818
+ 0.021544095828524817
+ 0.021546121270532331
+ 0.021548146780132955
+ 0.021550172357317307
+ 0.021552198002075997
+ 0.021554223714399634
+ 0.021556249494278805
+ 0.021558275341704087
+ 0.021560301256666112
+ 0.021562327239155427
+ 0.021564353289162622
+ 0.021566379406678268
+ 0.021568405591692947
+ 0.02157043184419722
+ 0.02157245816418165
+ 0.021574484551636765
+ 0.02157651100655314
+ 0.021578537528921332
+ 0.021580564118731875
+ 0.021582590775975304
+ 0.021584617500642164
+ 0.021586644292722945
+ 0.021588671152208222
+ 0.02159069807908847
+ 0.021592725073354233
+ 0.02159475213499602
+ 0.021596779264004311
+ 0.021598806460369633
+ 0.021600833724082471
+ 0.021602861055133312
+ 0.021604888453512657
+ 0.021606915919210986
+ 0.021608943452218764
+ 0.021610971052526476
+ 0.021612998720124559
+ 0.021615026455003527
+ 0.021617054257153816
+ 0.021619082126565874
+ 0.021621110063230167
+ 0.021623138067137119
+ 0.021625166138277162
+ 0.021627194276640772
+ 0.021629222482218349
+ 0.021631250755000331
+ 0.021633279094977132
+ 0.021635307502139194
+ 0.021637335976476876
+ 0.021639364517980667
+ 0.021641393126640891
+ 0.021643421802447996
+ 0.021645450545392343
+ 0.021647479355464336
+ 0.021649508232654369
+ 0.021651537176952802
+ 0.021653566188350036
+ 0.021655595266836431
+ 0.021657624412402328
+ 0.021659653625038133
+ 0.021661682904734147
+ 0.021663712251480782
+ 0.021665741665268346
+ 0.0216677711460872
+ 0.021669800693927672
+ 0.021671830308780081
+ 0.0216738599906348
+ 0.021675889739482083
+ 0.021677919555312317
+ 0.021679949438115801
+ 0.021681979387882831
+ 0.021684009404603712
+ 0.021686039488268735
+ 0.02168806963886822
+ 0.02169009985639243
+ 0.021692130140831701
+ 0.021694160492176234
+ 0.021696190910416399
+ 0.021698221395542387
+ 0.021700251947544522
+ 0.021702282566413048
+ 0.021704313252138219
+ 0.021706344004710276
+ 0.02170837482411949
+ 0.021710405710356092
+ 0.021712436663410332
+ 0.021714467683272443
+ 0.021716498769932636
+ 0.021718529923381167
+ 0.021720561143608243
+ 0.021722592430604044
+ 0.021724623784358854
+ 0.021726655204862812
+ 0.021728686692106172
+ 0.021730718246079084
+ 0.021732749866771775
+ 0.021734781554174416
+ 0.021736813308277203
+ 0.021738845129070292
+ 0.021740877016543862
+ 0.021742908970688087
+ 0.021744940991493163
+ 0.021746973078949187
+ 0.021749005233046358
+ 0.021751037453774807
+ 0.021753069741124686
+ 0.021755102095086142
+ 0.021757134515649295
+ 0.021759167002804267
+ 0.021761199556541225
+ 0.02176323217685024
+ 0.021765264863721469
+ 0.021767297617145
+ 0.021769330437110948
+ 0.021771363323609426
+ 0.021773396276630497
+ 0.021775429296164311
+ 0.02177746238220089
+ 0.021779495534730364
+ 0.021781528753742802
+ 0.021783562039228266
+ 0.021785595391176828
+ 0.02178762880957855
+ 0.021789662294423487
+ 0.021791695845701731
+ 0.0217937294634033
+ 0.021795763147518219
+ 0.02179779689803657
+ 0.021799830714948377
+ 0.021801864598243667
+ 0.021803898547912464
+ 0.021805932563944776
+ 0.021807966646330636
+ 0.021810000795060056
+ 0.021812035010123049
+ 0.021814069291509596
+ 0.021816103639209709
+ 0.021818138053213375
+ 0.021820172533510589
+ 0.021822207080091319
+ 0.021824241692945574
+ 0.021826276372063289
+ 0.021828311117434464
+ 0.021830345929049044
+ 0.021832380806896992
+ 0.02183441575096827
+ 0.021836450761252828
+ 0.021838485837740611
+ 0.021840520980421524
+ 0.021842556189285538
+ 0.021844591464322577
+ 0.021846626805522594
+ 0.021848662212875462
+ 0.021850697686371101
+ 0.021852733225999465
+ 0.021854768831750419
+ 0.02185680450361388
+ 0.021858840241579743
+ 0.021860876045637898
+ 0.021862911915778244
+ 0.021864947851990627
+ 0.021866983854264981
+ 0.021869019922591135
+ 0.021871056056958976
+ 0.021873092257358343
+ 0.021875128523779118
+ 0.021877164856211172
+ 0.02187920125464431
+ 0.021881237719068403
+ 0.021883274249473266
+ 0.021885310845848785
+ 0.021887347508184732
+ 0.021889384236470945
+ 0.021891421030697269
+ 0.02189345789085349
+ 0.021895494816929442
+ 0.021897531808914877
+ 0.021899568866799678
+ 0.021901605990573596
+ 0.021903643180226411
+ 0.021905680435747917
+ 0.021907717757127909
+ 0.021909755144356152
+ 0.021911792597422416
+ 0.021913830116316469
+ 0.021915867701028071
+ 0.02191790535154698
+ 0.021919943067862931
+ 0.02192198084996571
+ 0.021924018697845032
+ 0.021926056611490642
+ 0.021928094590892264
+ 0.021930132636039618
+ 0.021932170746922462
+ 0.021934208923530474
+ 0.021936247165853406
+ 0.021938285473880912
+ 0.021940323847602732
+ 0.021942362287008577
+ 0.02194440079208811
+ 0.021946439362831027
+ 0.021948477999227028
+ 0.021950516701265778
+ 0.021952555468936943
+ 0.021954594302230197
+ 0.021956633201135226
+ 0.021958672165641645
+ 0.021960711195739151
+ 0.021962750291417383
+ 0.021964789452665976
+ 0.021966828679474561
+ 0.021968867971832812
+ 0.02197090732973029
+ 0.021972946753156686
+ 0.021974986242101598
+ 0.021977025796554646
+ 0.021979065416505419
+ 0.021981105101943527
+ 0.021983144852858603
+ 0.021985184669240203
+ 0.02198722455107794
+ 0.021989264498361392
+ 0.021991304511080126
+ 0.021993344589223755
+ 0.021995384732781832
+ 0.021997424941743882
+ 0.02199946521609954
+ 0.022001505555838321
+ 0.022003545960949764
+ 0.022005586431423446
+ 0.022007626967248877
+ 0.022009667568415631
+ 0.022011708234913212
+ 0.02201374896673116
+ 0.022015789763858987
+ 0.022017830626286202
+ 0.02201987155400234
+ 0.022021912546996904
+ 0.022023953605259369
+ 0.022025994728779277
+ 0.022028035917546079
+ 0.022030077171549284
+ 0.022032118490778359
+ 0.022034159875222802
+ 0.022036201324872065
+ 0.022038242839715626
+ 0.022040284419742956
+ 0.022042326064943489
+ 0.022044367775306706
+ 0.022046409550822051
+ 0.02204845139147894
+ 0.022050493297266813
+ 0.022052535268175123
+ 0.022054577304193308
+ 0.022056619405310764
+ 0.022058661571516924
+ 0.022060703802801174
+ 0.022062746099152972
+ 0.022064788460561664
+ 0.022066830887016699
+ 0.02206887337850744
+ 0.022070915935023295
+ 0.022072958556553633
+ 0.022075001243087821
+ 0.022077043994615245
+ 0.022079086811125279
+ 0.022081129692607285
+ 0.022083172639050623
+ 0.022085215650444637
+ 0.022087258726778677
+ 0.022089301868042088
+ 0.022091345074224208
+ 0.02209338834531438
+ 0.022095431681301916
+ 0.022097475082176143
+ 0.02209951854792638
+ 0.022101562078541949
+ 0.022103605674012157
+ 0.022105649334326311
+ 0.022107693059473677
+ 0.022109736849443576
+ 0.022111780704225308
+ 0.022113824623808141
+ 0.022115868608181353
+ 0.022117912657334208
+ 0.022119956771255996
+ 0.022122000949935966
+ 0.022124045193363365
+ 0.022126089501527502
+ 0.02212813387441754
+ 0.022130178312022793
+ 0.022132222814332456
+ 0.022134267381335778
+ 0.022136312013022002
+ 0.022138356709380337
+ 0.022140401470399987
+ 0.022142446296070185
+ 0.022144491186380136
+ 0.022146536141319041
+ 0.022148581160876091
+ 0.022150626245040505
+ 0.022152671393801417
+ 0.022154716607148083
+ 0.022156761885069626
+ 0.022158807227555231
+ 0.022160852634594077
+ 0.022162898106175305
+ 0.022164943642288115
+ 0.022166989242921604
+ 0.022169034908064957
+ 0.022171080637707331
+ 0.022173126431837813
+ 0.022175172290445567
+ 0.022177218213519732
+ 0.022179264201049396
+ 0.022181310253023695
+ 0.022183356369431754
+ 0.022185402550262644
+ 0.022187448795505511
+ 0.022189495105149427
+ 0.02219154147918349
+ 0.022193587917596777
+ 0.02219563442037838
+ 0.022197680987517392
+ 0.022199727619002851
+ 0.022201774314823834
+ 0.022203821074969429
+ 0.022205867899428661
+ 0.022207914788190578
+ 0.022209961741244254
+ 0.022212008758578716
+ 0.022214055840182989
+ 0.022216102986046142
+ 0.022218150196157131
+ 0.022220197470505056
+ 0.022222244809078893
+ 0.022224292211867648
+ 0.022226339678860337
+ 0.022228387210045965
+ 0.022230434805413514
+ 0.022232482464951974
+ 0.022234530188650358
+ 0.022236577976497605
+ 0.022238625828482725
+ 0.02224067374459467
+ 0.022242721724822407
+ 0.022244769769154904
+ 0.022246817877581093
+ 0.022248866050089959
+ 0.02225091428667042
+ 0.022252962587311433
+ 0.022255010952001889
+ 0.022257059380730766
+ 0.022259107873486984
+ 0.02226115643025944
+ 0.022263205051037068
+ 0.022265253735808718
+ 0.022267302484563378
+ 0.022269351297289904
+ 0.022271400173977194
+ 0.022273449114614142
+ 0.022275498119189614
+ 0.022277547187692485
+ 0.022279596320111672
+ 0.02228164551643598
+ 0.022283694776654327
+ 0.022285744100755518
+ 0.022287793488728457
+ 0.022289842940561948
+ 0.022291892456244876
+ 0.022293942035766019
+ 0.022295991679114252
+ 0.022298041386278399
+ 0.022300091157247258
+ 0.022302140992009677
+ 0.022304190890554451
+ 0.022306240852870366
+ 0.022308290878946247
+ 0.022310340968770895
+ 0.022312391122333072
+ 0.022314441339621575
+ 0.022316491620625187
+ 0.02231854196533271
+ 0.022320592373732871
+ 0.022322642845814443
+ 0.022324693381566191
+ 0.022326743980976858
+ 0.022328794644035227
+ 0.022330845370730008
+ 0.022332896161049932
+ 0.022334947014983775
+ 0.022336997932520253
+ 0.022339048913648046
+ 0.022341099958355905
+ 0.022343151066632542
+ 0.022345202238466654
+ 0.022347253473846959
+ 0.022349304772762139
+ 0.022351356135200891
+ 0.022353407561151908
+ 0.022355459050603866
+ 0.022357510603545433
+ 0.022359562219965285
+ 0.022361613899852101
+ 0.022363665643194502
+ 0.022365717449981195
+ 0.022367769320200785
+ 0.022369821253841949
+ 0.022371873250893307
+ 0.022373925311343502
+ 0.022375977435181185
+ 0.022378029622394918
+ 0.022380081872973384
+ 0.022382134186905153
+ 0.022384186564178864
+ 0.022386239004783093
+ 0.022388291508706467
+ 0.022390344075937551
+ 0.022392396706464944
+ 0.022394449400277228
+ 0.022396502157362982
+ 0.022398554977710775
+ 0.022400607861309176
+ 0.022402660808146731
+ 0.022404713818212008
+ 0.022406766891493565
+ 0.022408820027979941
+ 0.022410873227659663
+ 0.022412926490521286
+ 0.02241497981655332
+ 0.02241703320574432
+ 0.02241908665808277
+ 0.022421140173557196
+ 0.022423193752156113
+ 0.022425247393868024
+ 0.022427301098681421
+ 0.022429354866584785
+ 0.022431408697566626
+ 0.022433462591615421
+ 0.022435516548719645
+ 0.022437570568867755
+ 0.022439624652048226
+ 0.022441678798249536
+ 0.02244373300746013
+ 0.02244578727966845
+ 0.022447841614862948
+ 0.022449896013032065
+ 0.022451950474164244
+ 0.022454004998247873
+ 0.022456059585271432
+ 0.022458114235223304
+ 0.02246016894809191
+ 0.022462223723865651
+ 0.022464278562532965
+ 0.022466333464082205
+ 0.022468388428501782
+ 0.022470443455780108
+ 0.02247249854590553
+ 0.022474553698866414
+ 0.022476608914651176
+ 0.022478664193248142
+ 0.022480719534645685
+ 0.022482774938832155
+ 0.022484830405795922
+ 0.022486885935525322
+ 0.02248894152800867
+ 0.022490997183234347
+ 0.022493052901190632
+ 0.02249510868186588
+ 0.022497164525248393
+ 0.022499220431326485
+ 0.02250127640008846
+ 0.022503332431522641
+ 0.022505388525617322
+ 0.022507444682360763
+ 0.022509500901741274
+ 0.022511557183747127
+ 0.022513613528366613
+ 0.022515669935587981
+ 0.022517726405399504
+ 0.022519782937789432
+ 0.022521839532746037
+ 0.022523896190257561
+ 0.022525952910312223
+ 0.022528009692898299
+ 0.022530066538004
+ 0.022532123445617554
+ 0.02253418041572719
+ 0.022536237448321124
+ 0.022538294543387554
+ 0.022540351700914691
+ 0.022542408920890732
+ 0.022544466203303894
+ 0.022546523548142336
+ 0.022548580955394262
+ 0.022550638425047852
+ 0.022552695957091258
+ 0.022554753551512673
+ 0.022556811208300234
+ 0.022558868927442122
+ 0.022560926708926472
+ 0.02256298455274142
+ 0.022565042458875157
+ 0.02256710042731579
+ 0.022569158458051412
+ 0.022571216551070195
+ 0.022573274706360232
+ 0.022575332923909668
+ 0.022577391203706575
+ 0.022579449545739077
+ 0.022581507949995267
+ 0.022583566416463256
+ 0.022585624945131066
+ 0.022587683535986874
+ 0.022589742189018689
+ 0.022591800904214601
+ 0.022593859681562665
+ 0.022595918521050948
+ 0.022597977422667521
+ 0.022600036386400409
+ 0.022602095412237667
+ 0.022604154500167346
+ 0.022606213650177443
+ 0.022608272862256008
+ 0.022610332136391065
+ 0.022612391472570624
+ 0.02261445087078269
+ 0.022616510331015298
+ 0.022618569853256401
+ 0.022620629437494044
+ 0.022622689083716188
+ 0.022624748791910811
+ 0.022626808562065889
+ 0.022628868394169426
+ 0.022630928288209364
+ 0.022632988244173667
+ 0.022635048262050289
+ 0.022637108341827205
+ 0.022639168483492345
+ 0.02264122868703362
+ 0.022643288952439007
+ 0.022645349279696411
+ 0.022647409668793774
+ 0.02264947011971901
+ 0.022651530632460032
+ 0.02265359120700472
+ 0.022655651843341014
+ 0.022657712541456775
+ 0.02265977330133993
+ 0.022661834122978345
+ 0.022663895006359895
+ 0.022665955951472465
+ 0.022668016958303911
+ 0.022670078026842129
+ 0.022672139157074948
+ 0.022674200348990203
+ 0.022676261602575774
+ 0.022678322917819498
+ 0.022680384294709227
+ 0.022682445733232748
+ 0.0226845072333779
+ 0.02268656879513253
+ 0.022688630418484425
+ 0.022690692103421395
+ 0.022692753849931257
+ 0.022694815658001802
+ 0.022696877527620819
+ 0.022698939458776091
+ 0.022701001451455396
+ 0.022703063505646544
+ 0.022705125621337259
+ 0.022707187798515324
+ 0.022709250037168494
+ 0.022711312337284531
+ 0.02271337469885119
+ 0.022715437121856183
+ 0.022717499606287279
+ 0.022719562152132187
+ 0.022721624759378656
+ 0.022723687428014384
+ 0.022725750158027073
+ 0.022727812949404472
+ 0.022729875802134262
+ 0.022731938716204134
+ 0.0227340016916018
+ 0.022736064728314916
+ 0.022738127826331195
+ 0.022740190985638304
+ 0.022742254206223913
+ 0.022744317488075674
+ 0.022746380831181256
+ 0.022748444235528308
+ 0.022750507701104483
+ 0.022752571227897433
+ 0.022754634815894778
+ 0.022756698465084154
+ 0.022758762175453189
+ 0.022760825946989496
+ 0.022762889779680703
+ 0.022764953673514398
+ 0.022767017628478218
+ 0.022769081644559715
+ 0.022771145721746527
+ 0.022773209860026202
+ 0.022775274059386334
+ 0.02277733831981452
+ 0.02277940264129831
+ 0.022781467023825254
+ 0.022783531467382941
+ 0.022785595971958898
+ 0.022787660537540694
+ 0.022789725164115864
+ 0.022791789851671934
+ 0.022793854600196436
+ 0.022795919409676908
+ 0.02279798428010087
+ 0.022800049211455811
+ 0.022802114203729254
+ 0.022804179256908714
+ 0.022806244370981679
+ 0.022808309545935625
+ 0.022810374781758055
+ 0.022812440078436438
+ 0.022814505435958261
+ 0.022816570854310998
+ 0.022818636333482085
+ 0.022820701873458995
+ 0.022822767474229178
+ 0.022824833135780077
+ 0.022826898858099146
+ 0.022828964641173819
+ 0.022831030484991504
+ 0.022833096389539641
+ 0.022835162354805635
+ 0.022837228380776932
+ 0.022839294467440884
+ 0.022841360614784936
+ 0.02284342682279648
+ 0.022845493091462887
+ 0.022847559420771546
+ 0.022849625810709831
+ 0.022851692261265138
+ 0.022853758772424789
+ 0.022855825344176201
+ 0.022857891976506697
+ 0.02285995866940364
+ 0.022862025422854353
+ 0.022864092236846181
+ 0.022866159111366486
+ 0.022868226046402564
+ 0.022870293041941749
+ 0.022872360097971348
+ 0.02287442721447867
+ 0.022876494391451046
+ 0.022878561628875752
+ 0.022880628926740063
+ 0.022882696285031298
+ 0.022884763703736741
+ 0.022886831182843639
+ 0.02288889872233928
+ 0.022890966322210927
+ 0.022893033982445857
+ 0.02289510170303128
+ 0.022897169483954493
+ 0.022899237325202704
+ 0.022901305226763157
+ 0.02290337318862307
+ 0.022905441210769695
+ 0.022907509293190239
+ 0.022909577435871895
+ 0.022911645638801912
+ 0.022913713901967461
+ 0.022915782225355737
+ 0.022917850608953939
+ 0.022919919052749271
+ 0.022921987556728862
+ 0.022924056120879926
+ 0.022926124745189621
+ 0.022928193429645104
+ 0.022930262174233527
+ 0.022932330978942043
+ 0.022934399843757822
+ 0.022936468768667943
+ 0.022938537753659619
+ 0.022940606798719895
+ 0.022942675903835936
+ 0.022944745068994864
+ 0.022946814294183784
+ 0.022948883579389769
+ 0.022950952924599952
+ 0.022953022329801408
+ 0.022955091794981241
+ 0.022957161320126502
+ 0.022959230905224309
+ 0.022961300550261691
+ 0.022963370255225712
+ 0.022965440020103475
+ 0.022967509844881988
+ 0.022969579729548304
+ 0.022971649674089472
+ 0.02297371967849253
+ 0.022975789742744484
+ 0.022977859866832401
+ 0.022979930050743252
+ 0.022982000294464074
+ 0.022984070597981854
+ 0.022986140961283635
+ 0.022988211384356364
+ 0.022990281867187028
+ 0.022992352409762655
+ 0.022994423012070168
+ 0.02299649367409657
+ 0.02299856439582881
+ 0.023000635177253873
+ 0.023002706018358684
+ 0.023004776919130204
+ 0.023006847879555373
+ 0.023008918899621124
+ 0.023010989979314375
+ 0.023013061118622075
+ 0.023015132317531144
+ 0.023017203576028468
+ 0.023019274894100963
+ 0.023021346271735542
+ 0.02302341770891907
+ 0.023025489205638464
+ 0.023027560761880617
+ 0.023029632377632375
+ 0.023031704052880627
+ 0.023033775787612235
+ 0.023035847581814064
+ 0.023037919435472967
+ 0.023039991348575779
+ 0.023042063321109345
+ 0.023044135353060515
+ 0.023046207444416107
+ 0.023048279595162955
+ 0.023050351805287896
+ 0.023052424074777696
+ 0.023054496403619177
+ 0.023056568791799154
+ 0.023058641239304425
+ 0.023060713746121776
+ 0.02306278631223798
+ 0.02306485893763981
+ 0.023066931622314046
+ 0.023069004366247477
+ 0.023071077169426826
+ 0.023073150031838879
+ 0.023075222953470347
+ 0.023077295934308004
+ 0.023079368974338575
+ 0.023081442073548779
+ 0.023083515231925374
+ 0.023085588449455026
+ 0.02308766172612451
+ 0.023089735061920465
+ 0.023091808456829656
+ 0.023093881910838724
+ 0.023095955423934403
+ 0.023098028996103345
+ 0.023100102627332243
+ 0.023102176317607741
+ 0.023104250066916545
+ 0.023106323875245291
+ 0.023108397742580646
+ 0.023110471668909231
+ 0.023112545654217716
+ 0.023114619698492728
+ 0.023116693801720892
+ 0.023118767963888821
+ 0.023120842184983156
+ 0.023122916464990477
+ 0.023124990803897419
+ 0.023127065201690587
+ 0.023129139658356536
+ 0.023131214173881882
+ 0.023133288748253211
+ 0.023135363381457091
+ 0.02313743807348009
+ 0.023139512824308782
+ 0.023141587633929695
+ 0.02314366250232943
+ 0.023145737429494495
+ 0.023147812415411431
+ 0.023149887460066795
+ 0.023151962563447075
+ 0.023154037725538854
+ 0.023156112946328591
+ 0.023158188225802828
+ 0.023160263563948038
+ 0.023162338960750779
+ 0.023164414416197467
+ 0.023166489930274665
+ 0.023168565502968801
+ 0.023170641134266354
+ 0.0231727168241538
+ 0.02317479257261762
+ 0.023176868379644236
+ 0.023178944245220105
+ 0.023181020169331688
+ 0.023183096151965434
+ 0.023185172193107735
+ 0.023187248292745044
+ 0.023189324450863757
+ 0.023191400667450339
+ 0.023193476942491145
+ 0.023195553275972603
+ 0.023197629667881102
+ 0.023199706118203042
+ 0.02320178262692477
+ 0.02320385919403271
+ 0.023205935819513208
+ 0.023208012503352637
+ 0.023210089245537347
+ 0.023212166046053719
+ 0.023214242904888067
+ 0.023216319822026755
+ 0.02321839679745611
+ 0.023220473831162464
+ 0.023222550923132104
+ 0.023224628073351426
+ 0.023226705281806675
+ 0.023228782548484171
+ 0.02323085987337024
+ 0.023232937256451133
+ 0.02323501469771316
+ 0.023237092197142609
+ 0.023239169754725734
+ 0.023241247370448803
+ 0.023243325044298123
+ 0.023245402776259895
+ 0.023247480566320391
+ 0.023249558414465854
+ 0.023251636320682525
+ 0.02325371428495664
+ 0.023255792307274415
+ 0.02325787038762207
+ 0.023259948525985827
+ 0.023262026722351881
+ 0.023264104976706449
+ 0.023266183289035722
+ 0.023268261659325874
+ 0.023270340087563107
+ 0.023272418573733595
+ 0.023274497117823478
+ 0.023276575719818973
+ 0.0232786543797062
+ 0.023280733097471331
+ 0.023282811873100502
+ 0.023284890706579877
+ 0.023286969597895536
+ 0.02328904854703364
+ 0.023291127553980339
+ 0.023293206618721692
+ 0.023295285741243857
+ 0.02329736492153292
+ 0.023299444159574967
+ 0.023301523455356084
+ 0.023303602808862383
+ 0.02330568222007991
+ 0.023307761688994785
+ 0.023309841215593034
+ 0.02331192079986073
+ 0.023314000441783913
+ 0.023316080141348661
+ 0.023318159898540983
+ 0.02332023971334693
+ 0.023322319585752534
+ 0.023324399515743808
+ 0.023326479503306779
+ 0.023328559548427472
+ 0.023330639651091858
+ 0.023332719811285936
+ 0.023334800028995739
+ 0.023336880304207223
+ 0.023338960636906367
+ 0.023341041027079144
+ 0.023343121474711546
+ 0.023345201979789482
+ 0.023347282542298974
+ 0.023349363162225915
+ 0.023351443839556275
+ 0.023353524574275981
+ 0.023355605366370952
+ 0.023357686215827143
+ 0.023359767122630461
+ 0.023361848086766807
+ 0.023363929108222076
+ 0.023366010186982211
+ 0.023368091323033052
+ 0.023370172516360508
+ 0.023372253766950443
+ 0.023374335074788772
+ 0.023376416439861335
+ 0.023378497862153982
+ 0.023380579341652608
+ 0.023382660878343006
+ 0.023384742472211065
+ 0.023386824123242608
+ 0.023388905831423463
+ 0.023390987596739445
+ 0.023393069419176387
+ 0.023395151298720086
+ 0.02339723323535637
+ 0.023399315229071006
+ 0.023401397279849804
+ 0.023403479387678571
+ 0.023405561552543044
+ 0.023407643774429013
+ 0.023409726053322265
+ 0.023411808389208554
+ 0.023413890782073607
+ 0.023415973231903205
+ 0.023418055738683084
+ 0.02342013830239896
+ 0.023422220923036568
+ 0.023424303600581672
+ 0.023426386335019932
+ 0.023428469126337104
+ 0.023430551974518862
+ 0.023432634879550922
+ 0.023434717841418949
+ 0.023436800860108683
+ 0.023438883935605743
+ 0.023440967067895824
+ 0.023443050256964595
+ 0.023445133502797737
+ 0.023447216805380863
+ 0.023449300164699663
+ 0.023451383580739744
+ 0.023453467053486769
+ 0.023455550582926327
+ 0.023457634169044075
+ 0.023459717811825605
+ 0.023461801511256566
+ 0.023463885267322522
+ 0.023465969080009075
+ 0.023468052949301828
+ 0.023470136875186374
+ 0.023472220857648243
+ 0.023474304896673077
+ 0.023476388992246387
+ 0.023478473144353754
+ 0.023480557352980717
+ 0.023482641618112823
+ 0.023484725939735652
+ 0.023486810317834679
+ 0.023488894752395434
+ 0.023490979243403494
+ 0.023493063790844343
+ 0.023495148394703447
+ 0.023497233054966388
+ 0.023499317771618573
+ 0.023501402544645555
+ 0.023503487374032787
+ 0.023505572259765756
+ 0.023507657201829919
+ 0.023509742200210754
+ 0.023511827254893713
+ 0.02351391236586425
+ 0.023515997533107784
+ 0.023518082756609774
+ 0.023520168036355659
+ 0.023522253372330833
+ 0.023524338764520748
+ 0.023526424212910797
+ 0.023528509717486365
+ 0.023530595278232907
+ 0.023532680895135771
+ 0.023534766568180328
+ 0.023536852297352008
+ 0.023538938082636136
+ 0.023541023924018124
+ 0.023543109821483305
+ 0.023545195775017007
+ 0.023547281784604635
+ 0.023549367850231477
+ 0.023551453971882894
+ 0.023553540149544222
+ 0.023555626383200752
+ 0.023557712672837836
+ 0.023559799018440748
+ 0.023561885419994825
+ 0.023563971877485303
+ 0.023566058390897548
+ 0.02356814496021677
+ 0.023570231585428293
+ 0.023572318266517372
+ 0.023574405003469273
+ 0.02357649179626925
+ 0.023578578644902544
+ 0.023580665549354396
+ 0.023582752509610044
+ 0.023584839525654756
+ 0.023586926597473721
+ 0.023589013725052146
+ 0.023591100908375268
+ 0.023593188147428269
+ 0.023595275442196386
+ 0.023597362792664753
+ 0.023599450198818608
+ 0.023601537660643105
+ 0.023603625178123394
+ 0.023605712751244661
+ 0.023607800379992092
+ 0.023609888064350798
+ 0.023611975804305935
+ 0.023614063599842663
+ 0.023616151450946081
+ 0.023618239357601351
+ 0.023620327319793563
+ 0.023622415337507821
+ 0.023624503410729268
+ 0.023626591539442989
+ 0.023628679723634072
+ 0.02363076796328761
+ 0.02363285625838869
+ 0.023634944608922355
+ 0.023637033014873691
+ 0.023639121476227754
+ 0.023641209992969609
+ 0.023643298565084313
+ 0.02364538719255687
+ 0.023647475875372345
+ 0.023649564613515743
+ 0.02365165340697211
+ 0.023653742255726428
+ 0.023655831159763722
+ 0.023657920119069021
+ 0.023660009133627247
+ 0.023662098203423475
+ 0.023664187328442634
+ 0.02366627650866969
+ 0.023668365744089658
+ 0.023670455034687451
+ 0.023672544380448048
+ 0.0236746337813564
+ 0.023676723237397439
+ 0.023678812748556103
+ 0.023680902314817301
+ 0.023682991936165982
+ 0.023685081612587075
+ 0.02368717134406545
+ 0.023689261130586014
+ 0.023691350972133679
+ 0.023693440868693336
+ 0.023695530820249864
+ 0.023697620826788099
+ 0.023699710888292966
+ 0.023701801004749296
+ 0.023703891176141967
+ 0.023705981402455785
+ 0.023708071683675631
+ 0.023710162019786332
+ 0.023712252410772711
+ 0.023714342856619584
+ 0.023716433357311769
+ 0.023718523912834105
+ 0.023720614523171341
+ 0.023722705188308296
+ 0.023724795908229783
+ 0.023726886682920521
+ 0.023728977512365353
+ 0.023731068396549027
+ 0.023733159335456291
+ 0.023735250329071908
+ 0.023737341377380622
+ 0.023739432480367164
+ 0.023741523638016286
+ 0.023743614850312737
+ 0.023745706117241201
+ 0.02374779743878638
+ 0.023749888814933038
+ 0.023751980245665834
+ 0.023754071730969478
+ 0.023756163270828634
+ 0.023758254865228007
+ 0.023760346514152285
+ 0.023762438217586116
+ 0.023764529975514155
+ 0.023766621787921053
+ 0.023768713654791489
+ 0.023770805576110065
+ 0.023772897551861429
+ 0.023774989582030226
+ 0.023777081666601054
+ 0.023779173805558537
+ 0.02378126599888726
+ 0.023783358246571865
+ 0.023785450548596907
+ 0.023787542904946998
+ 0.023789635315606697
+ 0.02379172778056059
+ 0.023793820299793243
+ 0.023795912873289228
+ 0.023798005501033052
+ 0.023800098183009308
+ 0.023802190919202517
+ 0.023804283709597199
+ 0.023806376554177902
+ 0.023808469452929148
+ 0.023810562405835418
+ 0.023812655412881242
+ 0.023814748474051118
+ 0.023816841589329514
+ 0.023818934758700939
+ 0.02382102798214987
+ 0.023823121259660757
+ 0.023825214591218089
+ 0.023827307976806295
+ 0.023829401416409865
+ 0.023831494910013205
+ 0.023833588457600773
+ 0.023835682059156992
+ 0.023837775714666287
+ 0.023839869424113057
+ 0.023841963187481743
+ 0.023844057004756725
+ 0.023846150875922408
+ 0.023848244800963193
+ 0.023850338779863429
+ 0.023852432812607512
+ 0.023854526899179811
+ 0.02385662103956469
+ 0.02385871523374649
+ 0.023860809481709547
+ 0.023862903783438263
+ 0.023864998138916894
+ 0.023867092548129815
+ 0.02386918701106135
+ 0.023871281527695794
+ 0.023873376098017436
+ 0.0238754707220106
+ 0.023877565399659566
+ 0.023879660130948648
+ 0.023881754915862086
+ 0.023883849754384182
+ 0.023885944646499187
+ 0.023888039592191365
+ 0.023890134591444939
+ 0.023892229644244197
+ 0.023894324750573345
+ 0.023896419910416623
+ 0.02389851512375828
+ 0.023900610390582493
+ 0.023902705710873488
+ 0.02390480108461546
+ 0.023906896511792602
+ 0.023908991992389134
+ 0.023911087526389211
+ 0.023913183113777013
+ 0.023915278754536702
+ 0.02391737444865244
+ 0.023919470196108406
+ 0.023921565996888706
+ 0.023923661850977489
+ 0.023925757758358923
+ 0.023927853719017105
+ 0.023929949732936152
+ 0.02393204580010019
+ 0.02393414192049332
+ 0.023936238094099636
+ 0.02393833432090323
+ 0.023940430600888192
+ 0.023942526934038588
+ 0.023944623320338504
+ 0.023946719759771983
+ 0.023948816252323112
+ 0.023950912797975885
+ 0.023953009396714412
+ 0.02395510604852269
+ 0.023957202753384744
+ 0.023959299511284615
+ 0.023961396322206303
+ 0.023963493186133823
+ 0.023965590103051167
+ 0.023967687072942338
+ 0.023969784095791286
+ 0.023971881171582061
+ 0.023973978300298581
+ 0.023976075481924826
+ 0.023978172716444746
+ 0.023980270003842299
+ 0.023982367344101432
+ 0.023984464737206068
+ 0.023986562183140166
+ 0.023988659681887622
+ 0.023990757233432341
+ 0.023992854837758266
+ 0.0239949524948493
+ 0.023997050204689285
+ 0.023999147967262158
+ 0.024001245782551785
+ 0.024003343650542051
+ 0.024005441571216795
+ 0.024007539544559885
+ 0.02400963757055519
+ 0.024011735649186527
+ 0.024013833780437761
+ 0.024015931964292723
+ 0.02401803020073523
+ 0.024020128489749073
+ 0.024022226831318091
+ 0.024024325225426069
+ 0.024026423672056808
+ 0.024028522171194121
+ 0.02403062072282176
+ 0.024032719326923493
+ 0.024034817983483101
+ 0.024036916692484343
+ 0.024039015453910965
+ 0.024041114267746726
+ 0.024043213133975359
+ 0.024045312052580599
+ 0.024047411023546138
+ 0.024049510046855724
+ 0.024051609122493066
+ 0.024053708250441848
+ 0.024055807430685795
+ 0.024057906663208551
+ 0.024060005947993846
+ 0.024062105285025316
+ 0.024064204674286657
+ 0.024066304115761501
+ 0.024068403609433513
+ 0.024070503155286353
+ 0.024072602753303637
+ 0.024074702403468987
+ 0.024076802105766047
+ 0.024078901860178439
+ 0.024081001666689757
+ 0.024083101525283607
+ 0.024085201435943573
+ 0.024087301398653276
+ 0.024089401413396255
+ 0.024091501480156111
+ 0.024093601598916405
+ 0.024095701769660676
+ 0.024097801992372502
+ 0.024099902267035397
+ 0.024102002593632956
+ 0.024104102972148628
+ 0.024106203402565998
+ 0.024108303884868565
+ 0.024110404419039801
+ 0.024112505005063279
+ 0.024114605642922424
+ 0.024116706332600754
+ 0.024118807074081757
+ 0.024120907867348884
+ 0.024123008712385621
+ 0.024125109609175382
+ 0.024127210557701669
+ 0.024129311557947893
+ 0.024131412609897519
+ 0.024133513713533925
+ 0.024135614868840589
+ 0.024137716075800869
+ 0.024139817334398239
+ 0.024141918644616015
+ 0.024144020006437658
+ 0.024146121419846525
+ 0.024148222884825994
+ 0.024150324401359443
+ 0.024152425969430215
+ 0.024154527589021684
+ 0.024156629260117187
+ 0.024158730982700074
+ 0.024160832756753674
+ 0.02416293458226134
+ 0.02416503645920633
+ 0.024167138387572
+ 0.024169240367341638
+ 0.024171342398498566
+ 0.024173444481026034
+ 0.024175546614907336
+ 0.024177648800125767
+ 0.024179751036664591
+ 0.024181853324507046
+ 0.024183955663636396
+ 0.024186058054035894
+ 0.024188160495688768
+ 0.024190262988578261
+ 0.024192365532687565
+ 0.024194468127999941
+ 0.02419657077449856
+ 0.024198673472166643
+ 0.024200776220987368
+ 0.024202879020943948
+ 0.024204981872019547
+ 0.024207084774197328
+ 0.024209187727460467
+ 0.024211290731792096
+ 0.024213393787175398
+ 0.024215496893593515
+ 0.024217600051029541
+ 0.024219703259466645
+ 0.024221806518887942
+ 0.024223909829276524
+ 0.024226013190615486
+ 0.024228116602887966
+ 0.024230220066077026
+ 0.024232323580165752
+ 0.024234427145137242
+ 0.02423653076097454
+ 0.024238634427660694
+ 0.02424073814517879
+ 0.024242841913511844
+ 0.024244945732642915
+ 0.024247049602555037
+ 0.024249153523231204
+ 0.024251257494654462
+ 0.024253361516807802
+ 0.024255465589674233
+ 0.024257569713236744
+ 0.024259673887478309
+ 0.024261778112381931
+ 0.024263882387930563
+ 0.024265986714107176
+ 0.024268091090894731
+ 0.024270195518276149
+ 0.024272299996234408
+ 0.024274404524752425
+ 0.024276509103813109
+ 0.024278613733399405
+ 0.024280718413494221
+ 0.024282823144080434
+ 0.024284927925140979
+ 0.024287032756658705
+ 0.02428913763861652
+ 0.024291242570997289
+ 0.024293347553783869
+ 0.024295452586959136
+ 0.024297557670505919
+ 0.024299662804407093
+ 0.024301767988645466
+ 0.024303873223203858
+ 0.024305978508065113
+ 0.024308083843212057
+ 0.024310189228627436
+ 0.024312294664294101
+ 0.024314400150194839
+ 0.024316505686312426
+ 0.024318611272629624
+ 0.024320716909129209
+ 0.024322822595793939
+ 0.024324928332606566
+ 0.024327034119549826
+ 0.024329139956606488
+ 0.024331245843759265
+ 0.024333351780990858
+ 0.024335457768284
+ 0.024337563805621399
+ 0.024339669892985749
+ 0.024341776030359762
+ 0.024343882217726084
+ 0.024345988455067424
+ 0.02434809474236644
+ 0.024350201079605761
+ 0.0243523074667681
+ 0.024354413903836067
+ 0.024356520390792311
+ 0.024358626927619462
+ 0.024360733514300136
+ 0.02436284015081696
+ 0.024364946837152512
+ 0.02436705357328944
+ 0.024369160359210312
+ 0.024371267194897687
+ 0.02437337408033418
+ 0.024375481015502354
+ 0.024377588000384753
+ 0.024379695034963962
+ 0.024381802119222477
+ 0.024383909253142887
+ 0.024386016436707719
+ 0.024388123669899446
+ 0.024390230952700639
+ 0.024392338285093788
+ 0.024394445667061383
+ 0.024396553098585932
+ 0.024398660579649911
+ 0.024400768110235796
+ 0.024402875690326068
+ 0.024404983319903165
+ 0.024407090998949568
+ 0.024409198727447727
+ 0.024411306505380051
+ 0.024413414332728964
+ 0.024415522209476952
+ 0.024417630135606366
+ 0.02441973811109965
+ 0.024421846135939167
+ 0.024423954210107377
+ 0.024426062333586577
+ 0.0244281705063592
+ 0.024430278728407612
+ 0.024432386999714159
+ 0.024434495320261228
+ 0.024436603690031086
+ 0.024438712109006163
+ 0.024440820577168738
+ 0.024442929094501142
+ 0.024445037660985693
+ 0.024447146276604697
+ 0.02444925494134045
+ 0.024451363655175244
+ 0.024453472418091385
+ 0.024455581230071109
+ 0.024457690091096711
+ 0.024459799001150438
+ 0.024461907960214569
+ 0.024464016968271291
+ 0.02446612602530291
+ 0.024468235131291587
+ 0.024470344286219619
+ 0.02447245349006914
+ 0.024474562742822413
+ 0.02447667204446162
+ 0.024478781394968938
+ 0.024480890794326575
+ 0.024483000242516657
+ 0.024485109739521411
+ 0.024487219285322957
+ 0.024489328879903446
+ 0.024491438523245021
+ 0.024493548215329841
+ 0.024495657956139998
+ 0.024497767745657647
+ 0.024499877583864873
+ 0.024501987470743801
+ 0.024504097406276484
+ 0.024506207390445067
+ 0.024508317423231583
+ 0.024510427504618133
+ 0.024512537634586759
+ 0.024514647813119513
+ 0.024516758040198473
+ 0.024518868315805672
+ 0.024520978639923131
+ 0.024523089012532862
+ 0.024525199433616921
+ 0.024527309903157272
+ 0.024529420421135942
+ 0.024531530987534914
+ 0.024533641602336169
+ 0.024535752265521703
+ 0.024537862977073468
+ 0.024539973736973437
+ 0.024542084545203541
+ 0.024544195401745746
+ 0.024546306306581972
+ 0.024548417259694172
+ 0.024550528261064238
+ 0.024552639310674106
+ 0.024554750408505674
+ 0.024556861554540853
+ 0.024558972748761475
+ 0.024561083991149511
+ 0.024563195281686757
+ 0.02456530662035512
+ 0.024567418007136448
+ 0.024569529442012562
+ 0.02457164092496536
+ 0.024573752455976639
+ 0.024575864035028237
+ 0.024577975662101934
+ 0.02458008733717958
+ 0.024582199060242973
+ 0.024584310831273899
+ 0.024586422650254111
+ 0.024588534517165455
+ 0.02459064643198967
+ 0.02459275839470848
+ 0.024594870405303688
+ 0.024596982463756998
+ 0.024599094570050172
+ 0.024601206724164944
+ 0.024603318926083018
+ 0.024605431175786129
+ 0.024607543473255947
+ 0.024609655818474199
+ 0.024611768211422566
+ 0.024613880652082708
+ 0.024615993140436322
+ 0.024618105676465076
+ 0.024620218260150602
+ 0.024622330891474569
+ 0.024624443570418608
+ 0.024626556296964343
+ 0.024628669071093422
+ 0.024630781892787432
+ 0.024632894762027995
+ 0.02463500767879671
+ 0.024637120643075168
+ 0.024639233654844963
+ 0.024641346714087655
+ 0.024643459820784825
+ 0.024645572974918015
+ 0.024647686176468765
+ 0.024649799425418648
+ 0.024651912721749183
+ 0.024654026065441918
+ 0.024656139456478331
+ 0.024658252894839951
+ 0.024660366380508315
+ 0.02466247991346485
+ 0.024664593493691093
+ 0.024666707121168484
+ 0.024668820795878538
+ 0.024670934517802688
+ 0.024673048286922367
+ 0.024675162103219055
+ 0.024677275966674166
+ 0.024679389877269153
+ 0.024681503834985415
+ 0.02468361783980437
+ 0.024685731891707426
+ 0.024687845990675951
+ 0.024689960136691381
+ 0.024692074329735053
+ 0.024694188569788354
+ 0.024696302856832643
+ 0.024698417190849288
+ 0.024700531571819621
+ 0.024702645999724979
+ 0.024704760474546707
+ 0.024706874996266087
+ 0.024708989564864493
+ 0.024711104180323171
+ 0.024713218842623456
+ 0.024715333551746599
+ 0.024717448307673941
+ 0.024719563110386693
+ 0.024721677959866149
+ 0.024723792856093579
+ 0.024725907799050179
+ 0.024728022788717229
+ 0.024730137825075951
+ 0.024732252908107565
+ 0.024734368037793279
+ 0.024736483214114292
+ 0.024738598437051833
+ 0.024740713706587064
+ 0.024742829022701158
+ 0.02474494438537532
+ 0.024747059794590687
+ 0.024749175250328433
+ 0.024751290752569686
+ 0.024753406301295588
+ 0.024755521896487293
+ 0.0247576375381259
+ 0.024759753226192522
+ 0.024761868960668267
+ 0.024763984741534243
+ 0.024766100568771533
+ 0.024768216442361199
+ 0.024770332362284347
+ 0.024772448328522038
+ 0.024774564341055301
+ 0.024776680399865195
+ 0.024778796504932768
+ 0.024780912656239031
+ 0.024783028853765019
+ 0.024785145097491759
+ 0.024787261387400204
+ 0.02478937772347142
+ 0.02479149410568636
+ 0.024793610534025987
+ 0.024795727008471317
+ 0.024797843529003275
+ 0.02479996009560281
+ 0.024802076708250909
+ 0.02480419336692849
+ 0.02480631007161645
+ 0.024808426822295768
+ 0.024810543618947328
+ 0.02481266046155203
+ 0.024814777350090744
+ 0.024816894284544422
+ 0.024819011264893893
+ 0.02482112829112005
+ 0.024823245363203718
+ 0.024825362481125796
+ 0.024827479644867121
+ 0.024829596854408498
+ 0.024831714109730802
+ 0.024833831410814803
+ 0.024835948757641346
+ 0.024838066150191219
+ 0.024840183588445218
+ 0.024842301072384127
+ 0.024844418601988723
+ 0.024846536177239788
+ 0.02484865379811806
+ 0.024850771464604283
+ 0.02485288917667924
+ 0.024855006934323638
+ 0.024857124737518208
+ 0.024859242586243672
+ 0.024861360480480706
+ 0.024863478420210059
+ 0.024865596405412388
+ 0.024867714436068406
+ 0.02486983251215873
+ 0.024871950633664104
+ 0.024874068800565127
+ 0.024876187012842471
+ 0.02487830527047678
+ 0.024880423573448655
+ 0.02488254192173877
+ 0.02488466031532769
+ 0.024886778754196055
+ 0.024888897238324437
+ 0.024891015767693439
+ 0.024893134342283633
+ 0.024895252962075617
+ 0.024897371627049907
+ 0.024899490337187098
+ 0.024901609092467691
+ 0.02490372789287227
+ 0.024905846738381348
+ 0.024907965628975445
+ 0.024910084564635067
+ 0.024912203545340707
+ 0.024914322571072879
+ 0.024916441641812052
+ 0.024918560757538712
+ 0.024920679918233317
+ 0.024922799123876342
+ 0.024924918374448241
+ 0.024927037669929392
+ 0.024929157010300323
+ 0.024931276395541411
+ 0.024933395825633045
+ 0.024935515300555697
+ 0.024937634820289718
+ 0.0249397543848155
+ 0.024941873994113448
+ 0.024943993648163902
+ 0.024946113346947251
+ 0.024948233090443844
+ 0.024950352878634032
+ 0.024952472711498128
+ 0.024954592589016496
+ 0.024956712511169429
+ 0.024958832477937239
+ 0.024960952489300237
+ 0.024963072545238729
+ 0.024965192645732982
+ 0.024967312790763262
+ 0.024969432980309857
+ 0.024971553214353039
+ 0.024973673492873022
+ 0.02497579381585005
+ 0.02497791418326438
+ 0.024980034595096227
+ 0.024982155051325821
+ 0.024984275551933322
+ 0.024986396096898986
+ 0.024988516686202934
+ 0.024990637319825402
+ 0.024992757997746546
+ 0.02499487871994651
+ 0.02499699948640546
+ 0.024999120297103557
+ 0.025001241152020893
+ 0.02500336205113763
+ 0.025005482994433888
+ 0.025007603981889767
+ 0.025009725013485359
+ 0.025011846089200759
+ 0.025013967209016066
+ 0.02501608837291134
+ 0.025018209580866629
+ 0.025020330832862019
+ 0.025022452128877534
+ 0.025024573468893214
+ 0.025026694852889109
+ 0.025028816280845221
+ 0.025030937752741577
+ 0.025033059268558172
+ 0.025035180828274974
+ 0.025037302431872001
+ 0.025039424079329228
+ 0.025041545770626606
+ 0.025043667505744108
+ 0.025045789284661665
+ 0.025047911107359225
+ 0.025050032973816735
+ 0.025052154884014102
+ 0.025054276837931239
+ 0.025056398835548062
+ 0.025058520876844435
+ 0.025060642961800283
+ 0.025062765090395473
+ 0.025064887262609876
+ 0.02506700947842332
+ 0.025069131737815695
+ 0.025071254040766829
+ 0.025073376387256555
+ 0.025075498777264699
+ 0.025077621210771062
+ 0.025079743687755476
+ 0.025081866208197721
+ 0.025083988772077577
+ 0.02508611137937487
+ 0.025088234030069292
+ 0.025090356724140644
+ 0.025092479461568704
+ 0.025094602242333182
+ 0.025096725066413816
+ 0.025098847933790337
+ 0.025100970844442468
+ 0.025103093798349886
+ 0.025105216795492335
+ 0.025107339835849469
+ 0.025109462919400975
+ 0.025111586046126518
+ 0.025113709216005781
+ 0.025115832429018378
+ 0.025117955685144001
+ 0.025120078984362259
+ 0.025122202326652764
+ 0.025124325711995164
+ 0.025126449140369048
+ 0.025128572611754
+ 0.025130696126129632
+ 0.025132819683475523
+ 0.025134943283771236
+ 0.025137066926996309
+ 0.025139190613130337
+ 0.025141314342152849
+ 0.025143438114043373
+ 0.025145561928781431
+ 0.025147685786346543
+ 0.025149809686718236
+ 0.025151933629875955
+ 0.025154057615799256
+ 0.025156181644467573
+ 0.02515830571586038
+ 0.025160429829957143
+ 0.025162553986737328
+ 0.025164678186180379
+ 0.025166802428265692
+ 0.025168926712972741
+ 0.0251710510402809
+ 0.025173175410169588
+ 0.025175299822618222
+ 0.025177424277606171
+ 0.025179548775112817
+ 0.025181673315117517
+ 0.025183797897599666
+ 0.025185922522538557
+ 0.025188047189913593
+ 0.025190171899704059
+ 0.025192296651889323
+ 0.02519442144644865
+ 0.025196546283361401
+ 0.025198671162606805
+ 0.025200796084164201
+ 0.025202921048012833
+ 0.025205046054132003
+ 0.025207171102500956
+ 0.025209296193098904
+ 0.02521142132590513
+ 0.025213546500898871
+ 0.025215671718059298
+ 0.025217796977365672
+ 0.025219922278797192
+ 0.025222047622333016
+ 0.025224173007952353
+ 0.025226298435634377
+ 0.025228423905358271
+ 0.025230549417103142
+ 0.025232674970848187
+ 0.025234800566572516
+ 0.025236926204255262
+ 0.025239051883875561
+ 0.025241177605412495
+ 0.025243303368845157
+ 0.025245429174152678
+ 0.025247555021314129
+ 0.025249680910308565
+ 0.025251806841115061
+ 0.025253932813712646
+ 0.025256058828080408
+ 0.025258184884197336
+ 0.025260310982042497
+ 0.025262437121594879
+ 0.025264563302833488
+ 0.025266689525737331
+ 0.025268815790285424
+ 0.025270942096456667
+ 0.025273068444230121
+ 0.025275194833584664
+ 0.02527732126449931
+ 0.025279447736952974
+ 0.025281574250924567
+ 0.025283700806393052
+ 0.025285827403337315
+ 0.025287954041736255
+ 0.02529008072156878
+ 0.025292207442813779
+ 0.0252943342054501
+ 0.025296461009456653
+ 0.025298587854812222
+ 0.025300714741495724
+ 0.025302841669485952
+ 0.025304968638761756
+ 0.025307095649301954
+ 0.025309222701085335
+ 0.025311349794090714
+ 0.025313476928296899
+ 0.02531560410368262
+ 0.025317731320226688
+ 0.02531985857790784
+ 0.025321985876704829
+ 0.02532411321659641
+ 0.025326240597561306
+ 0.025328368019578253
+ 0.025330495482625948
+ 0.025332622986683106
+ 0.025334750531728407
+ 0.025336878117740557
+ 0.0253390057446982
+ 0.025341133412580021
+ 0.025343261121364685
+ 0.02534538887103081
+ 0.025347516661557074
+ 0.025349644492922062
+ 0.02535177236510441
+ 0.025353900278082726
+ 0.025356028231835612
+ 0.025358156226341622
+ 0.025360284261579401
+ 0.025362412337527469
+ 0.025364540454164381
+ 0.025366668611468728
+ 0.025368796809419003
+ 0.025370925047993754
+ 0.025373053327171539
+ 0.025375181646930832
+ 0.025377310007250138
+ 0.025379438408107927
+ 0.025381566849482739
+ 0.025383695331353002
+ 0.025385823853697198
+ 0.025387952416493779
+ 0.025390081019721161
+ 0.025392209663357819
+ 0.025394338347382164
+ 0.025396467071772601
+ 0.02539859583650754
+ 0.025400724641565377
+ 0.0254028534869245
+ 0.025404982372563289
+ 0.025407111298460086
+ 0.025409240264593288
+ 0.02541136927094121
+ 0.025413498317482196
+ 0.025415627404194577
+ 0.025417756531056671
+ 0.025419885698046773
+ 0.025422014905143214
+ 0.025424144152324243
+ 0.025426273439568159
+ 0.025428402766853226
+ 0.025430532134157725
+ 0.025432661541459862
+ 0.025434790988737913
+ 0.025436920475970085
+ 0.025439050003134615
+ 0.0254411795702097
+ 0.025443309177173554
+ 0.025445438824004341
+ 0.025447568510680262
+ 0.025449698237179477
+ 0.02545182800348016
+ 0.02545395780956048
+ 0.025456087655398533
+ 0.02545821754097248
+ 0.02546034746626042
+ 0.025462477431240513
+ 0.02546460743589081
+ 0.025466737480189395
+ 0.025468867564114407
+ 0.025470997687643882
+ 0.025473127850755874
+ 0.025475258053428453
+ 0.025477388295639659
+ 0.025479518577367542
+ 0.025481648898590076
+ 0.025483779259285303
+ 0.025485909659431236
+ 0.025488040099005869
+ 0.025490170577987158
+ 0.025492301096353105
+ 0.025494431654081655
+ 0.025496562251150774
+ 0.025498692887538383
+ 0.025500823563222436
+ 0.025502954278180872
+ 0.025505085032391572
+ 0.025507215825832444
+ 0.025509346658481397
+ 0.025511477530316296
+ 0.025513608441315026
+ 0.025515739391455468
+ 0.02551787038071545
+ 0.025520001409072818
+ 0.025522132476505408
+ 0.025524263582991057
+ 0.025526394728507568
+ 0.02552852591303274
+ 0.025530657136544368
+ 0.025532788399020245
+ 0.025534919700438148
+ 0.025537051040775825
+ 0.025539182420011037
+ 0.025541313838121527
+ 0.025543445295085013
+ 0.025545576790879269
+ 0.025547708325481935
+ 0.025549839898870757
+ 0.025551971511023445
+ 0.025554103161917658
+ 0.025556234851531055
+ 0.025558366579841313
+ 0.025560498346826097
+ 0.025562630152463042
+ 0.02556476199672977
+ 0.025566893879603928
+ 0.025569025801063086
+ 0.025571157761084887
+ 0.025573289759646907
+ 0.02557542179672672
+ 0.025577553872301911
+ 0.025579685986350052
+ 0.025581818138848671
+ 0.025583950329775305
+ 0.025586082559107503
+ 0.025588214826822796
+ 0.025590347132898671
+ 0.025592479477312659
+ 0.0255946118600422
+ 0.025596744281064818
+ 0.025598876740357972
+ 0.025601009237899111
+ 0.025603141773665697
+ 0.025605274347635171
+ 0.025607406959784949
+ 0.02560953961009246
+ 0.025611672298535129
+ 0.025613805025090319
+ 0.025615937789735414
+ 0.025618070592447837
+ 0.025620203433204949
+ 0.025622336311984066
+ 0.025624469228762586
+ 0.025626602183517797
+ 0.025628735176227071
+ 0.025630868206867694
+ 0.025633001275416966
+ 0.02563513438185222
+ 0.025637267526150743
+ 0.025639400708289753
+ 0.025641533928246564
+ 0.025643667185998403
+ 0.025645800481522544
+ 0.025647933814796194
+ 0.025650067185796602
+ 0.025652200594500955
+ 0.025654334040886503
+ 0.025656467524930383
+ 0.025658601046609792
+ 0.025660734605901913
+ 0.025662868202783923
+ 0.025665001837232949
+ 0.025667135509226127
+ 0.02566926921874061
+ 0.025671402965753497
+ 0.025673536750241921
+ 0.02567567057218299
+ 0.025677804431553732
+ 0.025679938328331282
+ 0.025682072262492708
+ 0.025684206234015048
+ 0.025686340242875361
+ 0.025688474289050644
+ 0.025690608372517982
+ 0.025692742493254372
+ 0.025694876651236809
+ 0.025697010846442297
+ 0.025699145078847813
+ 0.025701279348430351
+ 0.025703413655166835
+ 0.025705547999034285
+ 0.025707682380009554
+ 0.025709816798069659
+ 0.025711951253191461
+ 0.025714085745351917
+ 0.025716220274527905
+ 0.02571835484069631
+ 0.025720489443834035
+ 0.025722624083917928
+ 0.025724758760924865
+ 0.025726893474831671
+ 0.025729028225615208
+ 0.025731163013252293
+ 0.025733297837719743
+ 0.025735432698994372
+ 0.025737567597052931
+ 0.025739702531872299
+ 0.025741837503429173
+ 0.025743972511700325
+ 0.025746107556662533
+ 0.025748242638292548
+ 0.025750377756567043
+ 0.025752512911462831
+ 0.025754648102956544
+ 0.025756783331024925
+ 0.025758918595644647
+ 0.025761053896792382
+ 0.02576318923444482
+ 0.025765324608578614
+ 0.025767460019170407
+ 0.02576959546619683
+ 0.025771730949634503
+ 0.025773866469460078
+ 0.02577600202565011
+ 0.025778137618181228
+ 0.025780273247030007
+ 0.025782408912173014
+ 0.025784544613586827
+ 0.025786680351247974
+ 0.025788816125133032
+ 0.025790951935218485
+ 0.025793087781480876
+ 0.025795223663896728
+ 0.025797359582442513
+ 0.025799495537094718
+ 0.025801631527829851
+ 0.025803767554624338
+ 0.025805903617454669
+ 0.025808039716297269
+ 0.025810175851128579
+ 0.025812312021925007
+ 0.025814448228662995
+ 0.025816584471318908
+ 0.025818720749869149
+ 0.025820857064290114
+ 0.025822993414558161
+ 0.025825129800649653
+ 0.025827266222540925
+ 0.025829402680208325
+ 0.025831539173628171
+ 0.025833675702776792
+ 0.025835812267630466
+ 0.025837948868165511
+ 0.0258400855043582
+ 0.025842222176184797
+ 0.025844358883621583
+ 0.025846495626644789
+ 0.025848632405230651
+ 0.025850769219355425
+ 0.025852906068995301
+ 0.025855042954126502
+ 0.025857179874725196
+ 0.025859316830767622
+ 0.025861453822229909
+ 0.025863590849088201
+ 0.025865727911318723
+ 0.025867865008897564
+ 0.025870002141800841
+ 0.025872139310004694
+ 0.025874276513485259
+ 0.025876413752218587
+ 0.025878551026180807
+ 0.025880688335347953
+ 0.025882825679696114
+ 0.025884963059201346
+ 0.025887100473839672
+ 0.025889237923587136
+ 0.025891375408419768
+ 0.025893512928313565
+ 0.02589565048324452
+ 0.025897788073188644
+ 0.025899925698121912
+ 0.025902063358020234
+ 0.025904201052859625
+ 0.025906338782616008
+ 0.025908476547265354
+ 0.025910614346783517
+ 0.025912752181146446
+ 0.025914890050330049
+ 0.025917027954310189
+ 0.025919165893062757
+ 0.025921303866563602
+ 0.025923441874788608
+ 0.025925579917713593
+ 0.02592771799531441
+ 0.025929856107566887
+ 0.025931994254446828
+ 0.025934132435930003
+ 0.025936270651992239
+ 0.025938408902609296
+ 0.025940547187756936
+ 0.025942685507410929
+ 0.025944823861547027
+ 0.025946962250140929
+ 0.025949100673168381
+ 0.025951239130605094
+ 0.025953377622426766
+ 0.025955516148609078
+ 0.025957654709127718
+ 0.025959793303958322
+ 0.025961931933076617
+ 0.025964070596458156
+ 0.025966209294078627
+ 0.025968348025913666
+ 0.025970486791938835
+ 0.025972625592129747
+ 0.025974764426461988
+ 0.025976903294911168
+ 0.025979042197452829
+ 0.025981181134062514
+ 0.025983320104715775
+ 0.025985459109388175
+ 0.025987598148055183
+ 0.025989737220692335
+ 0.025991876327275114
+ 0.025994015467779026
+ 0.025996154642179539
+ 0.025998293850452103
+ 0.026000433092572203
+ 0.026002572368515237
+ 0.026004711678256673
+ 0.026006851021771932
+ 0.026008990399036373
+ 0.02601112981002543
+ 0.026013269254714502
+ 0.026015408733078938
+ 0.026017548245094096
+ 0.026019687790735345
+ 0.026021827369978011
+ 0.026023966982797426
+ 0.026026106629168901
+ 0.026028246309067748
+ 0.026030386022469272
+ 0.026032525769348745
+ 0.026034665549681434
+ 0.026036805363442619
+ 0.026038945210607491
+ 0.026041085091151359
+ 0.026043225005049395
+ 0.026045364952276866
+ 0.026047504932808933
+ 0.026049644946620789
+ 0.02605178499368763
+ 0.02605392507398464
+ 0.026056065187486939
+ 0.026058205334169686
+ 0.026060345514007995
+ 0.026062485726977041
+ 0.026064625973051894
+ 0.02606676625220767
+ 0.026068906564419451
+ 0.026071046909662315
+ 0.026073187287911317
+ 0.026075327699141532
+ 0.026077468143327957
+ 0.026079608620445692
+ 0.026081749130469699
+ 0.026083889673375032
+ 0.026086030249136645
+ 0.026088170857729541
+ 0.026090311499128688
+ 0.026092452173309057
+ 0.026094592880245574
+ 0.026096733619913208
+ 0.026098874392286864
+ 0.026101015197341457
+ 0.026103156035051908
+ 0.026105296905393094
+ 0.026107437808339889
+ 0.026109578743867191
+ 0.026111719711949827
+ 0.026113860712562647
+ 0.026116001745680503
+ 0.026118142811278201
+ 0.026120283909330543
+ 0.026122425039812342
+ 0.026124566202698374
+ 0.026126707397963456
+ 0.026128848625582287
+ 0.026130989885529646
+ 0.026133131177780291
+ 0.026135272502308921
+ 0.026137413859090308
+ 0.026139555248099085
+ 0.026141696669309988
+ 0.026143838122697684
+ 0.026145979608236843
+ 0.026148121125902118
+ 0.026150262675668189
+ 0.026152404257509664
+ 0.026154545871401157
+ 0.026156687517317295
+ 0.026158829195232682
+ 0.026160970905121872
+ 0.026163112646959495
+ 0.026165254420720079
+ 0.026167396226378169
+ 0.026169538063908336
+ 0.026171679933285095
+ 0.026173821834482948
+ 0.026175963767476419
+ 0.026178105732240001
+ 0.026180247728748149
+ 0.026182389756975365
+ 0.026184531816896093
+ 0.026186673908484781
+ 0.026188816031715884
+ 0.026190958186563768
+ 0.026193100373002876
+ 0.026195242591007646
+ 0.026197384840552392
+ 0.026199527121611534
+ 0.026201669434159414
+ 0.026203811778170407
+ 0.026205954153618833
+ 0.026208096560479028
+ 0.026210238998725269
+ 0.026212381468331922
+ 0.026214523969273235
+ 0.026216666501523503
+ 0.026218809065057001
+ 0.026220951659847967
+ 0.026223094285870639
+ 0.026225236943099261
+ 0.026227379631508074
+ 0.02622952235107124
+ 0.02623166510176296
+ 0.026233807883557468
+ 0.026235950696428881
+ 0.026238093540351382
+ 0.026240236415299122
+ 0.02624237932124621
+ 0.026244522258166817
+ 0.026246665226034988
+ 0.026248808224824879
+ 0.02625095125451055
+ 0.026253094315066079
+ 0.026255237406465536
+ 0.026257380528682962
+ 0.026259523681692414
+ 0.026261666865467898
+ 0.026263810079983428
+ 0.026265953325213018
+ 0.026268096601130646
+ 0.026270239907710335
+ 0.026272383244925965
+ 0.026274526612751557
+ 0.026276670011161039
+ 0.026278813440128335
+ 0.026280956899627363
+ 0.026283100389632032
+ 0.026285243910116211
+ 0.026287387461053805
+ 0.026289531042418698
+ 0.026291674654184728
+ 0.026293818296325714
+ 0.026295961968815527
+ 0.026298105671627985
+ 0.026300249404736856
+ 0.026302393168115973
+ 0.026304536961739122
+ 0.026306680785580044
+ 0.0263088246396125
+ 0.026310968523810253
+ 0.02631311243814706
+ 0.026315256382596599
+ 0.026317400357132613
+ 0.026319544361728755
+ 0.026321688396358733
+ 0.026323832460996253
+ 0.026325976555614937
+ 0.026328120680188433
+ 0.026330264834690399
+ 0.026332409019094456
+ 0.026334553233374178
+ 0.026336697477503196
+ 0.026338841751455094
+ 0.026340986055203464
+ 0.026343130388721797
+ 0.026345274751983727
+ 0.026347419144962761
+ 0.026349563567632402
+ 0.026351708019966169
+ 0.026353852501937572
+ 0.026355997013520135
+ 0.026358141554687242
+ 0.026360286125412448
+ 0.026362430725669145
+ 0.026364575355430773
+ 0.026366720014670792
+ 0.026368864703362586
+ 0.026371009421479557
+ 0.026373154168995137
+ 0.026375298945882631
+ 0.026377443752115447
+ 0.026379588587666904
+ 0.026381733452510381
+ 0.026383878346619156
+ 0.026386023269966592
+ 0.026388168222525935
+ 0.02639031320427054
+ 0.026392458215173619
+ 0.026394603255208458
+ 0.02639674832434832
+ 0.026398893422566402
+ 0.026401038549835987
+ 0.026403183706130266
+ 0.026405328891422414
+ 0.026407474105685634
+ 0.026409619348893108
+ 0.026411764621017981
+ 0.026413909922033428
+ 0.026416055251912554
+ 0.026418200610628523
+ 0.026420345998154401
+ 0.026422491414463331
+ 0.026424636859528366
+ 0.026426782333322581
+ 0.026428927835819051
+ 0.026431073366990836
+ 0.026433218926810935
+ 0.026435364515252423
+ 0.026437510132288275
+ 0.026439655777891466
+ 0.026441801452035035
+ 0.026443947154691911
+ 0.026446092885835087
+ 0.02644823864543748
+ 0.026450384433472033
+ 0.026452530249911684
+ 0.026454676094729318
+ 0.026456821967897837
+ 0.026458967869390143
+ 0.026461113799179085
+ 0.026463259757237532
+ 0.026465405743538326
+ 0.026467551758054288
+ 0.026469697800758252
+ 0.026471843871623008
+ 0.026473989970621361
+ 0.026476136097726099
+ 0.026478282252909973
+ 0.026480428436145762
+ 0.026482574647406162
+ 0.026484720886663961
+ 0.026486867153891841
+ 0.026489013449062491
+ 0.026491159772148644
+ 0.026493306123122951
+ 0.026495452501958054
+ 0.026497598908626664
+ 0.026499745343101382
+ 0.026501891805354841
+ 0.026504038295359654
+ 0.026506184813088411
+ 0.026508331358513736
+ 0.02651047793160816
+ 0.026512624532344261
+ 0.026514771160694586
+ 0.026516917816631669
+ 0.026519064500128049
+ 0.026521211211156203
+ 0.026523357949688676
+ 0.026525504715697906
+ 0.02652765150915638
+ 0.026529798330036561
+ 0.026531945178310892
+ 0.0265340920539518
+ 0.026536238956931718
+ 0.026538385887223011
+ 0.026540532844798112
+ 0.026542679829629389
+ 0.026544826841689198
+ 0.026546973880949905
+ 0.026549120947383872
+ 0.026551268040963361
+ 0.026553415161660751
+ 0.026555562309448312
+ 0.026557709484298326
+ 0.026559856686183086
+ 0.026562003915074843
+ 0.026564151170945845
+ 0.026566298453768362
+ 0.02656844576351455
+ 0.026570593100156664
+ 0.026572740463666904
+ 0.026574887854017404
+ 0.026577035271180389
+ 0.026579182715127977
+ 0.026581330185832343
+ 0.026583477683265581
+ 0.026585625207399832
+ 0.026587772758207208
+ 0.02658992033565977
+ 0.026592067939729624
+ 0.02659421557038881
+ 0.026596363227609398
+ 0.026598510911363397
+ 0.026600658621622853
+ 0.026602806358359789
+ 0.026604954121546169
+ 0.026607101911154004
+ 0.026609249727155233
+ 0.026611397569521866
+ 0.026613545438225805
+ 0.026615693333238977
+ 0.026617841254533325
+ 0.026619989202080748
+ 0.026622137175853131
+ 0.026624285175822333
+ 0.026626433201960249
+ 0.026628581254238726
+ 0.026630729332629555
+ 0.026632877437104636
+ 0.026635025567635723
+ 0.026637173724194638
+ 0.026639321906753149
+ 0.02664147011528303
+ 0.026643618349756041
+ 0.026645766610143933
+ 0.026647914896418424
+ 0.026650063208551247
+ 0.026652211546514083
+ 0.026654359910278626
+ 0.02665650829981657
+ 0.026658656715099552
+ 0.026660805156099251
+ 0.026662953622787266
+ 0.026665102115135252
+ 0.026667250633114783
+ 0.0266693991766975
+ 0.026671547745854954
+ 0.02667369634055872
+ 0.026675844960780331
+ 0.026677993606491372
+ 0.026680142277663316
+ 0.02668229097426773
+ 0.02668443969627609
+ 0.026686588443659884
+ 0.026688737216390555
+ 0.026690886014439631
+ 0.02669303483777849
+ 0.026695183686378601
+ 0.026697332560211361
+ 0.026699481459248189
+ 0.026701630383460493
+ 0.026703779332819613
+ 0.026705928307296917
+ 0.026708077306863795
+ 0.026710226331491543
+ 0.026712375381151513
+ 0.026714524455814966
+ 0.026716673555453256
+ 0.026718822680037637
+ 0.026720971829539371
+ 0.02672312100392972
+ 0.02672527020317992
+ 0.026727419427261208
+ 0.026729568676144781
+ 0.026731717949801847
+ 0.026733867248203626
+ 0.026736016571321207
+ 0.026738165919125801
+ 0.02674031529158857
+ 0.026742464688680613
+ 0.026744614110373047
+ 0.02674676355663699
+ 0.026748913027443512
+ 0.02675106252276372
+ 0.026753212042568631
+ 0.026755361586829302
+ 0.026757511155516812
+ 0.026759660748602112
+ 0.026761810366056269
+ 0.026763960007850227
+ 0.026766109673954996
+ 0.026768259364341525
+ 0.026770409078980761
+ 0.026772558817843666
+ 0.026774708580901131
+ 0.026776858368124056
+ 0.026779008179483376
+ 0.026781158014949961
+ 0.026783307874494639
+ 0.026785457758088271
+ 0.026787607665701759
+ 0.026789757597305862
+ 0.026791907552871384
+ 0.026794057532369173
+ 0.026796207535769972
+ 0.026798357563044564
+ 0.026800507614163714
+ 0.026802657689098123
+ 0.026804807787818564
+ 0.026806957910295717
+ 0.026809108056500285
+ 0.026811258226402977
+ 0.026813408419974424
+ 0.026815558637185297
+ 0.02681770887800625
+ 0.026819859142407913
+ 0.02682200943036088
+ 0.026824159741835732
+ 0.026826310076803112
+ 0.026828460435233542
+ 0.026830610817097603
+ 0.026832761222365827
+ 0.026834911651008733
+ 0.026837062102996866
+ 0.026839212578300697
+ 0.026841363076890716
+ 0.026843513598737403
+ 0.026845664143811218
+ 0.026847814712082595
+ 0.026849965303521978
+ 0.026852115918099741
+ 0.026854266555786349
+ 0.026856417216552131
+ 0.026858567900367492
+ 0.02686071860720278
+ 0.026862869337028313
+ 0.026865020089814434
+ 0.026867170865531489
+ 0.026869321664149771
+ 0.026871472485639519
+ 0.026873623329971057
+ 0.026875774197114607
+ 0.026877925087040455
+ 0.02688007599971878
+ 0.026882226935119821
+ 0.026884377893213771
+ 0.02688652887397084
+ 0.026888679877361151
+ 0.026890830903354895
+ 0.026892981951922204
+ 0.026895133023033219
+ 0.026897284116658038
+ 0.026899435232766764
+ 0.026901586371329483
+ 0.026903737532316285
+ 0.026905888715697192
+ 0.02690803992144224
+ 0.026910191149521496
+ 0.026912342399904941
+ 0.026914493672562576
+ 0.026916644967464411
+ 0.026918796284580385
+ 0.026920947623880465
+ 0.026923098985334584
+ 0.026925250368912662
+ 0.026927401774584626
+ 0.026929553202320336
+ 0.026931704652089727
+ 0.026933856123862652
+ 0.026936007617608931
+ 0.02693815913329841
+ 0.026940310670900934
+ 0.026942462230386308
+ 0.026944613811724312
+ 0.026946765414884732
+ 0.026948917039837324
+ 0.026951068686551852
+ 0.026953220354998038
+ 0.026955372045145604
+ 0.02695752375696428
+ 0.026959675490423725
+ 0.026961827245493623
+ 0.026963979022143633
+ 0.026966130820343423
+ 0.026968282640062596
+ 0.026970434481270809
+ 0.026972586343937621
+ 0.02697473822803265
+ 0.026976890133525444
+ 0.026979042060385573
+ 0.026981194008582617
+ 0.026983345978086035
+ 0.026985497968865391
+ 0.02698764998089016
+ 0.026989802014129843
+ 0.026991954068553918
+ 0.026994106144131797
+ 0.026996258240832984
+ 0.02699841035862683
+ 0.027000562497482793
+ 0.027002714657370253
+ 0.027004866838258607
+ 0.027007019040117219
+ 0.027009171262915403
+ 0.027011323506622525
+ 0.027013475771207919
+ 0.027015628056640869
+ 0.02701778036289066
+ 0.027019932689926578
+ 0.027022085037717889
+ 0.027024237406233834
+ 0.027026389795443632
+ 0.027028542205316523
+ 0.027030694635821698
+ 0.027032847086928331
+ 0.027034999558605603
+ 0.027037152050822685
+ 0.027039304563548666
+ 0.02704145709675275
+ 0.027043609650403987
+ 0.027045762224471488
+ 0.027047914818924358
+ 0.027050067433731603
+ 0.027052220068862348
+ 0.02705437272428559
+ 0.027056525399970329
+ 0.027058678095885601
+ 0.027060830812000395
+ 0.027062983548283688
+ 0.027065136304704411
+ 0.027067289081231547
+ 0.027069441877834
+ 0.027071594694480696
+ 0.027073747531140526
+ 0.027075900387782372
+ 0.027078053264375103
+ 0.027080206160887587
+ 0.027082359077288638
+ 0.027084512013547113
+ 0.027086664969631791
+ 0.027088817945511462
+ 0.027090970941154931
+ 0.027093123956530935
+ 0.027095276991608241
+ 0.027097430046355543
+ 0.027099583120741597
+ 0.027101736214735071
+ 0.027103889328304712
+ 0.027106042461419098
+ 0.027108195614046957
+ 0.027110348786156896
+ 0.027112501977717553
+ 0.027114655188697521
+ 0.027116808419065427
+ 0.027118961668789788
+ 0.027121114937839228
+ 0.027123268226182246
+ 0.027125421533787403
+ 0.02712757486062323
+ 0.027129728206658179
+ 0.027131881571860764
+ 0.027134034956199479
+ 0.027136188359642731
+ 0.027138341782158983
+ 0.027140495223716653
+ 0.027142648684284145
+ 0.027144802163829879
+ 0.027146955662322197
+ 0.027149109179729482
+ 0.027151262716020048
+ 0.027153416271162283
+ 0.02715556984512444
+ 0.027157723437874867
+ 0.027159877049381807
+ 0.027162030679613557
+ 0.027164184328538357
+ 0.027166337996124463
+ 0.027168491682340066
+ 0.027170645387153376
+ 0.027172799110532598
+ 0.027174952852445915
+ 0.027177106612861452
+ 0.027179260391747364
+ 0.027181414189071815
+ 0.027183568004802854
+ 0.027185721838908654
+ 0.027187875691357211
+ 0.027190029562116642
+ 0.027192183451154973
+ 0.027194337358440235
+ 0.027196491283940482
+ 0.027198645227623667
+ 0.02720079918945785
+ 0.02720295316941089
+ 0.02720510716745082
+ 0.027207261183545561
+ 0.027209415217663045
+ 0.027211569269771148
+ 0.027213723339837782
+ 0.027215877427830847
+ 0.027218031533718139
+ 0.02722018565746755
+ 0.027222339799046914
+ 0.027224493958423981
+ 0.027226648135566609
+ 0.027228802330442555
+ 0.027230956543019595
+ 0.027233110773265481
+ 0.027235265021147894
+ 0.027237419286634607
+ 0.027239573569693309
+ 0.027241727870291679
+ 0.027243882188397347
+ 0.027246036523978029
+ 0.027248190877001328
+ 0.027250345247434853
+ 0.027252499635246244
+ 0.027254654040403066
+ 0.027256808462872883
+ 0.027258962902623265
+ 0.027261117359621754
+ 0.027263271833835871
+ 0.027265426325233114
+ 0.027267580833780974
+ 0.027269735359446948
+ 0.027271889902198476
+ 0.027274044462003013
+ 0.027276199038827977
+ 0.027278353632640799
+ 0.027280508243408833
+ 0.027282662871099497
+ 0.027284817515680144
+ 0.027286972177118105
+ 0.027289126855380739
+ 0.027291281550435347
+ 0.027293436262249195
+ 0.027295590990789608
+ 0.027297745736023841
+ 0.027299900497919121
+ 0.027302055276442729
+ 0.027304210071561839
+ 0.027306364883243658
+ 0.027308519711455388
+ 0.027310674556164146
+ 0.027312829417337169
+ 0.027314984294941547
+ 0.027317139188944357
+ 0.027319294099312767
+ 0.027321449026013852
+ 0.027323603969014655
+ 0.027325758928282241
+ 0.027327913903783658
+ 0.027330068895485914
+ 0.027332223903356007
+ 0.027334378927360937
+ 0.027336533967467682
+ 0.027338689023643187
+ 0.027340844095854404
+ 0.027342999184068226
+ 0.0273451542882516
+ 0.027347309408371365
+ 0.02734946454439444
+ 0.02735161969628765
+ 0.027353774864017855
+ 0.027355930047551869
+ 0.02735808524685648
+ 0.027360240461898531
+ 0.027362395692644738
+ 0.027364550939061903
+ 0.027366706201116725
+ 0.027368861478775965
+ 0.027371016772006328
+ 0.027373172080774465
+ 0.027375327405047081
+ 0.027377482744790821
+ 0.027379638099972334
+ 0.027381793470558261
+ 0.027383948856515194
+ 0.027386104257809716
+ 0.027388259674408388
+ 0.027390415106277797
+ 0.027392570553384499
+ 0.027394726015694967
+ 0.027396881493175727
+ 0.027399036985793296
+ 0.02740119249351412
+ 0.02740334801630467
+ 0.027405503554131381
+ 0.027407659106960663
+ 0.027409814674758944
+ 0.027411970257492625
+ 0.027414125855128046
+ 0.027416281467631566
+ 0.027418437094969557
+ 0.027420592737108309
+ 0.027422748394014131
+ 0.027424904065653326
+ 0.027427059751992174
+ 0.027429215452996911
+ 0.02743137116863379
+ 0.027433526898868989
+ 0.027435682643668788
+ 0.027437838402999296
+ 0.027439994176826746
+ 0.027442149965117263
+ 0.027444305767836984
+ 0.027446461584952047
+ 0.027448617416428515
+ 0.027450773262232518
+ 0.027452929122330074
+ 0.027455084996687286
+ 0.027457240885270191
+ 0.027459396788044765
+ 0.027461552704977014
+ 0.027463708636032945
+ 0.027465864581178511
+ 0.027468020540379678
+ 0.027470176513602357
+ 0.02747233250081246
+ 0.027474488501975897
+ 0.027476644517058533
+ 0.027478800546026264
+ 0.027480956588844925
+ 0.02748311264548034
+ 0.027485268715898299
+ 0.027487424800064626
+ 0.027489580897945086
+ 0.027491737009505461
+ 0.027493893134711466
+ 0.027496049273528823
+ 0.027498205425923291
+ 0.027500361591860492
+ 0.027502517771306158
+ 0.027504673964225897
+ 0.027506830170585403
+ 0.027508986390350237
+ 0.02751114262348606
+ 0.027513298869958423
+ 0.027515455129732913
+ 0.027517611402775088
+ 0.027519767689050484
+ 0.027521923988524578
+ 0.027524080301162938
+ 0.027526236626930975
+ 0.027528392965794211
+ 0.027530549317718079
+ 0.027532705682668007
+ 0.027534862060609417
+ 0.027537018451507706
+ 0.027539174855328207
+ 0.027541331272036351
+ 0.027543487701597438
+ 0.027545644143976814
+ 0.027547800599139766
+ 0.027549957067051621
+ 0.027552113547677611
+ 0.027554270040983014
+ 0.02755642654693307
+ 0.027558583065493011
+ 0.027560739596628001
+ 0.02756289614030329
+ 0.027565052696483964
+ 0.027567209265135232
+ 0.027569365846222233
+ 0.027571522439710044
+ 0.027573679045563796
+ 0.027575835663748521
+ 0.027577992294229355
+ 0.027580148936971284
+ 0.027582305591939346
+ 0.027584462259098573
+ 0.027586618938413937
+ 0.027588775629850404
+ 0.027590932333372939
+ 0.027593089048946501
+ 0.027595245776535986
+ 0.027597402516106304
+ 0.027599559267622347
+ 0.027601716031048967
+ 0.027603872806351036
+ 0.027606029593493342
+ 0.027608186392440736
+ 0.027610343203158007
+ 0.027612500025609932
+ 0.027614656859761284
+ 0.027616813705576775
+ 0.027618970563021157
+ 0.027621127432059106
+ 0.027623284312655351
+ 0.027625441204774542
+ 0.027627598108381304
+ 0.027629755023440311
+ 0.027631911949916162
+ 0.027634068887773471
+ 0.027636225836976804
+ 0.027638382797490715
+ 0.027640539769279777
+ 0.027642696752308495
+ 0.027644853746541399
+ 0.027647010751942928
+ 0.027649167768477617
+ 0.027651324796109867
+ 0.027653481834804147
+ 0.027655638884524877
+ 0.027657795945236451
+ 0.027659953016903237
+ 0.027662110099489604
+ 0.027664267192959915
+ 0.027666424297278485
+ 0.027668581412409618
+ 0.027670738538317613
+ 0.027672895674966731
+ 0.027675052822321217
+ 0.027677209980345358
+ 0.027679367149003306
+ 0.027681524328259308
+ 0.027683681518077551
+ 0.027685838718422152
+ 0.027687995929257286
+ 0.027690153150547091
+ 0.027692310382255631
+ 0.027694467624347033
+ 0.027696624876785363
+ 0.027698782139534701
+ 0.027700939412559005
+ 0.027703096695822358
+ 0.027705253989288758
+ 0.027707411292922136
+ 0.027709568606686479
+ 0.02771172593054573
+ 0.027713883264463841
+ 0.027716040608404678
+ 0.027718197962332145
+ 0.027720355326210113
+ 0.027722512700002443
+ 0.027724670083672923
+ 0.027726827477185405
+ 0.027728984880503665
+ 0.027731142293591523
+ 0.027733299716412679
+ 0.027735457148930887
+ 0.027737614591109867
+ 0.02773977204291337
+ 0.02774192950430503
+ 0.027744086975248498
+ 0.027746244455707454
+ 0.027748401945645519
+ 0.027750559445026305
+ 0.027752716953813369
+ 0.027754874471970337
+ 0.027757031999460717
+ 0.02775918953624807
+ 0.027761347082295888
+ 0.027763504637567691
+ 0.027765662202026944
+ 0.027767819775637116
+ 0.027769977358361595
+ 0.027772134950163903
+ 0.027774292551007353
+ 0.0277764501608554
+ 0.027778607779671328
+ 0.027780765407418549
+ 0.02778292304406035
+ 0.027785080689560079
+ 0.027787238343880992
+ 0.027789396006986378
+ 0.027791553678839481
+ 0.027793711359403526
+ 0.027795869048641744
+ 0.027798026746517331
+ 0.027800184452993433
+ 0.027802342168033241
+ 0.027804499891599894
+ 0.02780665762365649
+ 0.027808815364166125
+ 0.027810973113091903
+ 0.027813130870396881
+ 0.027815288636044076
+ 0.027817446409996543
+ 0.027819604192217285
+ 0.027821761982669283
+ 0.027823919781315477
+ 0.027826077588118843
+ 0.027828235403042322
+ 0.027830393226048789
+ 0.027832551057101158
+ 0.027834708896162293
+ 0.027836866743195042
+ 0.027839024598162225
+ 0.027841182461026681
+ 0.027843340331751214
+ 0.027845498210298563
+ 0.027847656096631503
+ 0.027849813990712749
+ 0.027851971892505063
+ 0.027854129801971106
+ 0.027856287719073568
+ 0.027858445643775112
+ 0.027860603576038361
+ 0.027862761515825951
+ 0.027864919463100494
+ 0.027867077417824564
+ 0.027869235379960691
+ 0.02787139334947145
+ 0.027873551326319374
+ 0.027875709310466949
+ 0.027877867301876677
+ 0.02788002530051099
+ 0.027882183306332353
+ 0.027884341319303212
+ 0.027886499339385935
+ 0.027888657366542943
+ 0.027890815400736589
+ 0.027892973441929231
+ 0.027895131490083172
+ 0.027897289545160762
+ 0.027899447607124258
+ 0.027901605675935942
+ 0.027903763751558078
+ 0.027905921833952865
+ 0.02790807992308254
+ 0.027910238018909274
+ 0.027912396121395271
+ 0.027914554230502656
+ 0.027916712346193587
+ 0.02791887046843014
+ 0.027921028597174428
+ 0.027923186732388538
+ 0.027925344874034506
+ 0.027927503022074397
+ 0.02792966117647017
+ 0.02793181933718385
+ 0.027933977504177424
+ 0.027936135677412821
+ 0.027938293856852012
+ 0.027940452042456893
+ 0.027942610234189327
+ 0.027944768432011245
+ 0.027946926635884481
+ 0.027949084845770866
+ 0.027951243061632203
+ 0.027953401283430317
+ 0.027955559511126972
+ 0.027957717744683905
+ 0.027959875984062878
+ 0.027962034229225632
+ 0.0279641924801338
+ 0.027966350736749104
+ 0.027968508999033175
+ 0.027970667266947646
+ 0.027972825540454167
+ 0.02797498381951433
+ 0.027977142104089667
+ 0.027979300394141794
+ 0.027981458689632192
+ 0.0279836169905224
+ 0.027985775296773933
+ 0.02798793360834825
+ 0.027990091925206805
+ 0.027992250247311026
+ 0.027994408574622334
+ 0.027996566907102127
+ 0.027998725244711802
+ 0.028000883587412685
+ 0.028003041935166097
+ 0.028005200287933383
+ 0.028007358645675835
+ 0.0280095170083547
+ 0.028011675375931255
+ 0.028013833748366718
+ 0.028015992125622335
+ 0.02801815050765925
+ 0.02802030889443867
+ 0.028022467285921723
+ 0.028024625682069561
+ 0.02802678408284328
+ 0.028028942488203996
+ 0.028031100898112747
+ 0.028033259312530586
+ 0.028035417731418547
+ 0.028037576154737693
+ 0.028039734582448923
+ 0.028041893014513233
+ 0.028044051450891602
+ 0.028046209891544941
+ 0.028048368336434124
+ 0.028050526785520093
+ 0.028052685238763673
+ 0.028054843696125716
+ 0.02805700215756704
+ 0.02805916062304847
+ 0.028061319092530786
+ 0.028063477565974722
+ 0.028065636043341058
+ 0.028067794524590475
+ 0.028069953009683696
+ 0.028072111498581392
+ 0.028074269991244231
+ 0.028076428487632855
+ 0.028078586987707873
+ 0.028080745491429887
+ 0.028082903998759429
+ 0.028085062509657126
+ 0.028087221024083439
+ 0.02808937954199895
+ 0.028091538063364129
+ 0.028093696588139417
+ 0.028095855116285325
+ 0.028098013647762193
+ 0.028100172182530504
+ 0.028102330720550624
+ 0.028104489261782908
+ 0.028106647806187716
+ 0.028108806353725393
+ 0.02811096490435621
+ 0.02811312345804045
+ 0.028115282014738386
+ 0.028117440574410291
+ 0.028119599137016338
+ 0.028121757702516716
+ 0.028123916270871657
+ 0.028126074842041281
+ 0.028128233415985738
+ 0.028130391992665139
+ 0.028132550572039599
+ 0.028134709154069147
+ 0.028136867738713836
+ 0.02813902632593375
+ 0.02814118491568884
+ 0.028143343507939143
+ 0.0281455021026446
+ 0.028147660699765147
+ 0.028149819299260723
+ 0.028151977901091235
+ 0.028154136505216532
+ 0.028156295111596535
+ 0.028158453720191025
+ 0.028160612330959862
+ 0.028162770943862814
+ 0.028164929558859672
+ 0.028167088175910179
+ 0.028169246794974075
+ 0.028171405416011083
+ 0.028173564038980855
+ 0.028175722663843099
+ 0.028177881290557445
+ 0.028180039919083539
+ 0.028182198549380946
+ 0.02818435718140927
+ 0.028186515815128071
+ 0.028188674450496876
+ 0.028190833087475234
+ 0.028192991726022628
+ 0.028195150366098501
+ 0.028197309007662361
+ 0.028199467650673611
+ 0.028201626295091656
+ 0.02820378494087588
+ 0.02820594358798565
+ 0.028208102236380355
+ 0.02821026088601928
+ 0.02821241953686171
+ 0.028214578188866975
+ 0.028216736841994307
+ 0.028218895496202916
+ 0.028221054151452062
+ 0.028223212807700924
+ 0.028225371464908638
+ 0.028227530123034424
+ 0.028229688782037372
+ 0.028231847441876564
+ 0.028234006102511113
+ 0.028236164763900087
+ 0.0282383234260025
+ 0.028240482088777403
+ 0.028242640752183763
+ 0.028244799416180567
+ 0.028246958080726765
+ 0.028249116745781299
+ 0.028251275411303053
+ 0.02825343407725097
+ 0.028255592743583857
+ 0.028257751410260584
+ 0.02825991007723996
+ 0.028262068744480763
+ 0.028264227411941838
+ 0.028266386079581859
+ 0.028268544747359622
+ 0.02827070341523381
+ 0.028272862083163115
+ 0.028275020751106203
+ 0.028277179419021723
+ 0.028279338086868291
+ 0.02828149675460449
+ 0.028283655422188941
+ 0.028285814089580152
+ 0.028287972756736706
+ 0.028290131423617061
+ 0.028292290090179747
+ 0.028294448756383195
+ 0.028296607422185881
+ 0.02829876608754623
+ 0.028300924752422595
+ 0.0283030834167734
+ 0.02830524208055701
+ 0.028307400743731691
+ 0.028309559406255812
+ 0.028311718068087629
+ 0.028313876729185443
+ 0.028316035389507457
+ 0.028318194049011907
+ 0.028320352707656989
+ 0.028322511365400902
+ 0.028324670022201754
+ 0.028326828678017703
+ 0.028328987332806876
+ 0.028331145986527292
+ 0.028333304639137104
+ 0.028335463290594262
+ 0.028337621940856834
+ 0.028339780589882811
+ 0.028341939237630173
+ 0.028344097884056847
+ 0.028346256529120768
+ 0.028348415172779844
+ 0.028350573814991963
+ 0.028352732455714964
+ 0.028354891094906687
+ 0.028357049732524946
+ 0.028359208368527542
+ 0.028361367002872243
+ 0.028363525635516782
+ 0.028365684266418893
+ 0.02836784289553625
+ 0.028370001522826569
+ 0.028372160148247474
+ 0.028374318771756599
+ 0.028376477393311568
+ 0.028378636012869933
+ 0.028380794630389269
+ 0.028382953245827153
+ 0.028385111859141034
+ 0.028387270470288474
+ 0.028389429079226897
+ 0.028391587685913745
+ 0.028393746290306478
+ 0.028395904892362468
+ 0.028398063492039098
+ 0.028400222089293724
+ 0.028402380684083676
+ 0.028404539276366259
+ 0.028406697866098778
+ 0.028408856453238471
+ 0.028411015037742592
+ 0.028413173619568344
+ 0.028415332198672913
+ 0.028417490775013481
+ 0.02841964934854721
+ 0.028421807919231178
+ 0.028423966487022525
+ 0.028426125051878331
+ 0.028428283613755607
+ 0.028430442172611408
+ 0.028432600728402754
+ 0.028434759281086582
+ 0.028436917830619909
+ 0.028439076376959627
+ 0.02844123492006264
+ 0.028443393459885898
+ 0.028445551996386209
+ 0.028447710529520435
+ 0.028449869059245386
+ 0.028452027585517861
+ 0.02845418610829465
+ 0.028456344627532468
+ 0.028458503143188079
+ 0.028460661655218128
+ 0.028462820163579344
+ 0.02846497866822836
+ 0.028467137169121821
+ 0.028469295666216293
+ 0.028471454159468387
+ 0.028473612648834669
+ 0.028475771134271657
+ 0.028477929615735881
+ 0.028480088093183788
+ 0.028482246566571879
+ 0.028484405035856603
+ 0.028486563500994343
+ 0.028488721961941514
+ 0.028490880418654486
+ 0.028493038871089588
+ 0.028495197319203157
+ 0.028497355762951475
+ 0.028499514202290813
+ 0.028501672637177435
+ 0.028503831067567559
+ 0.028505989493417403
+ 0.028508147914683101
+ 0.028510306331320841
+ 0.028512464743286777
+ 0.02851462315053695
+ 0.028516781553027473
+ 0.028518939950714427
+ 0.028521098343553819
+ 0.028523256731501641
+ 0.028525415114513925
+ 0.028527573492546577
+ 0.028529731865555578
+ 0.028531890233496841
+ 0.028534048596326224
+ 0.028536206953999606
+ 0.028538365306472829
+ 0.028540523653701678
+ 0.028542681995641989
+ 0.028544840332249535
+ 0.028546998663480018
+ 0.028549156989289167
+ 0.028551315309632699
+ 0.028553473624466277
+ 0.028555631933745537
+ 0.028557790237426078
+ 0.028559948535463515
+ 0.02856210682781346
+ 0.028564265114431404
+ 0.028566423395272895
+ 0.028568581670293428
+ 0.028570739939448482
+ 0.028572898202693497
+ 0.02857505645998391
+ 0.028577214711275122
+ 0.028579372956522488
+ 0.028581531195681398
+ 0.028583689428707152
+ 0.028585847655555035
+ 0.028588005876180364
+ 0.02859016409053837
+ 0.028592322298584293
+ 0.028594480500273325
+ 0.028596638695560634
+ 0.028598796884401412
+ 0.028600955066750769
+ 0.028603113242563812
+ 0.028605271411795575
+ 0.028607429574401193
+ 0.028609587730335638
+ 0.028611745879553958
+ 0.028613904022011073
+ 0.02861606215766202
+ 0.028618220286461642
+ 0.028620378408364917
+ 0.028622536523326688
+ 0.028624694631301829
+ 0.028626852732245151
+ 0.028629010826111474
+ 0.028631168912855585
+ 0.028633326992432227
+ 0.028635485064796119
+ 0.028637643129901996
+ 0.028639801187704539
+ 0.028641959238158345
+ 0.028644117281218132
+ 0.02864627531683845
+ 0.028648433344973873
+ 0.028650591365578994
+ 0.028652749378608334
+ 0.028654907384016361
+ 0.028657065381757604
+ 0.028659223371786478
+ 0.028661381354057408
+ 0.028663539328524834
+ 0.028665697295143126
+ 0.028667855253866618
+ 0.028670013204649632
+ 0.028672171147446503
+ 0.028674329082211472
+ 0.028676487008898837
+ 0.028678644927462749
+ 0.02868080283785748
+ 0.028682960740037164
+ 0.028685118633955967
+ 0.028687276519568008
+ 0.028689434396827369
+ 0.028691592265688171
+ 0.028693750126104405
+ 0.028695907978030111
+ 0.028698065821419299
+ 0.028700223656225956
+ 0.028702381482403956
+ 0.028704539299907288
+ 0.028706697108689828
+ 0.028708854908705436
+ 0.028711012699907928
+ 0.028713170482251131
+ 0.028715328255688892
+ 0.028717486020174904
+ 0.028719643775662947
+ 0.02872180152210671
+ 0.028723959259459888
+ 0.028726116987676159
+ 0.028728274706709144
+ 0.028730432416512422
+ 0.028732590117039651
+ 0.028734747808244317
+ 0.028736905490079959
+ 0.028739063162500123
+ 0.028741220825458276
+ 0.028743378478907858
+ 0.028745536122802288
+ 0.028747693757094971
+ 0.028749851381739293
+ 0.028752008996688592
+ 0.028754166601896232
+ 0.028756324197315435
+ 0.028758481782899532
+ 0.028760639358601743
+ 0.028762796924375313
+ 0.028764954480173379
+ 0.02876711202594915
+ 0.028769269561655743
+ 0.02877142708724631
+ 0.028773584602673905
+ 0.028775742107891578
+ 0.028777899602852371
+ 0.028780057087509317
+ 0.028782214561815352
+ 0.028784372025723492
+ 0.028786529479186626
+ 0.028788686922157639
+ 0.028790844354589434
+ 0.028793001776434877
+ 0.028795159187646756
+ 0.02879731658817786
+ 0.02879947397798098
+ 0.028801631357008882
+ 0.028803788725214257
+ 0.028805946082549765
+ 0.028808103428968099
+ 0.028810260764421905
+ 0.028812418088863801
+ 0.028814575402246318
+ 0.028816732704522053
+ 0.028818889995643537
+ 0.028821047275563252
+ 0.028823204544233687
+ 0.028825361801607281
+ 0.028827519047636484
+ 0.028829676282273644
+ 0.028831833505471166
+ 0.028833990717181377
+ 0.0288361479173566
+ 0.02883830510594913
+ 0.028840462282911192
+ 0.028842619448195071
+ 0.028844776601752928
+ 0.028846933743536956
+ 0.028849090873499329
+ 0.028851247991592163
+ 0.028853405097767525
+ 0.028855562191977505
+ 0.028857719274174184
+ 0.028859876344309546
+ 0.028862033402335577
+ 0.028864190448204263
+ 0.028866347481867494
+ 0.028868504503277215
+ 0.028870661512385317
+ 0.028872818509143625
+ 0.028874975493503992
+ 0.028877132465418197
+ 0.028879289424838004
+ 0.028881446371715171
+ 0.02888360330600143
+ 0.028885760227648456
+ 0.028887917136607905
+ 0.028890074032831441
+ 0.02889223091627063
+ 0.028894387786877078
+ 0.028896544644602312
+ 0.028898701489397896
+ 0.028900858321215302
+ 0.028903015140006014
+ 0.028905171945721467
+ 0.02890732873831307
+ 0.028909485517732193
+ 0.028911642283930228
+ 0.028913799036858513
+ 0.028915955776468313
+ 0.028918112502710949
+ 0.028920269215537621
+ 0.028922425914899592
+ 0.028924582600748011
+ 0.028926739273034095
+ 0.028928895931708953
+ 0.028931052576723695
+ 0.028933209208029421
+ 0.028935365825577125
+ 0.028937522429317911
+ 0.028939679019202733
+ 0.028941835595182572
+ 0.028943992157208373
+ 0.028946148705231035
+ 0.028948305239201454
+ 0.028950461759070505
+ 0.028952618264788982
+ 0.0289547747563077
+ 0.028956931233577451
+ 0.028959087696548952
+ 0.028961244145172944
+ 0.028963400579400101
+ 0.028965556999181095
+ 0.028967713404466557
+ 0.028969869795207062
+ 0.028972026171353246
+ 0.028974182532855594
+ 0.028976338879664668
+ 0.028978495211730928
+ 0.028980651529004874
+ 0.028982807831436905
+ 0.028984964118977427
+ 0.02898712039157687
+ 0.028989276649185509
+ 0.028991432891753717
+ 0.028993589119231767
+ 0.028995745331569914
+ 0.028997901528718412
+ 0.029000057710627459
+ 0.029002213877247229
+ 0.029004370028527876
+ 0.029006526164419528
+ 0.029008682284872248
+ 0.029010838389836143
+ 0.029012994479261197
+ 0.02901515055309746
+ 0.029017306611294879
+ 0.029019462653803417
+ 0.029021618680573021
+ 0.029023774691553511
+ 0.029025930686694804
+ 0.029028086665946719
+ 0.029030242629259045
+ 0.029032398576581585
+ 0.029034554507864095
+ 0.029036710423056236
+ 0.029038866322107729
+ 0.029041022204968236
+ 0.029043178071587405
+ 0.029045333921914791
+ 0.029047489755900012
+ 0.029049645573492582
+ 0.029051801374642014
+ 0.029053957159297809
+ 0.029056112927409426
+ 0.029058268678926254
+ 0.029060424413797734
+ 0.029062580131973229
+ 0.029064735833402053
+ 0.029066891518033527
+ 0.029069047185816953
+ 0.029071202836701546
+ 0.029073358470636534
+ 0.029075514087571114
+ 0.029077669687454465
+ 0.029079825270235695
+ 0.029081980835863927
+ 0.029084136384288233
+ 0.029086291915457651
+ 0.029088447429321197
+ 0.029090602925827855
+ 0.029092758404926575
+ 0.029094913866566315
+ 0.029097069310695944
+ 0.029099224737264329
+ 0.029101380146220317
+ 0.029103535537512694
+ 0.029105690911090262
+ 0.029107846266901778
+ 0.02911000160489596
+ 0.029112156925021462
+ 0.029114312227226977
+ 0.029116467511461103
+ 0.029118622777672479
+ 0.029120778025809649
+ 0.029122933255821142
+ 0.029125088467655515
+ 0.029127243661261196
+ 0.029129398836586669
+ 0.029131553993580316
+ 0.029133709132190568
+ 0.029135864252365765
+ 0.029138019354054252
+ 0.029140174437204298
+ 0.029142329501764208
+ 0.02914448454768219
+ 0.029146639574906468
+ 0.029148794583385235
+ 0.029150949573066628
+ 0.029153104543898745
+ 0.029155259495829693
+ 0.029157414428807531
+ 0.029159569342780297
+ 0.029161724237695957
+ 0.029163879113502517
+ 0.029166033970147887
+ 0.029168188807580001
+ 0.029170343625746664
+ 0.029172498424595808
+ 0.029174653204075203
+ 0.029176807964132637
+ 0.029178962704715882
+ 0.029181117425772635
+ 0.029183272127250613
+ 0.029185426809097442
+ 0.029187581471260805
+ 0.029189736113688251
+ 0.0291918907363274
+ 0.02919404533912574
+ 0.029196199922030801
+ 0.029198354484990079
+ 0.029200509027951002
+ 0.029202663550860986
+ 0.029204818053667439
+ 0.029206972536317703
+ 0.02920912699875906
+ 0.029211281440938854
+ 0.029213435862804348
+ 0.029215590264302756
+ 0.029217744645381242
+ 0.029219899005987052
+ 0.029222053346067256
+ 0.029224207665568998
+ 0.029226361964439326
+ 0.029228516242625326
+ 0.029230670500073965
+ 0.029232824736732273
+ 0.029234978952547157
+ 0.029237133147465563
+ 0.029239287321434378
+ 0.029241441474400436
+ 0.029243595606310572
+ 0.029245749717111625
+ 0.029247903806750301
+ 0.029250057875173343
+ 0.029252211922327447
+ 0.029254365948159351
+ 0.029256519952615589
+ 0.029258673935642826
+ 0.029260827897187636
+ 0.029262981837196556
+ 0.029265135755616067
+ 0.029267289652392708
+ 0.029269443527472901
+ 0.029271597380803031
+ 0.029273751212329519
+ 0.02927590502199872
+ 0.029278058809756938
+ 0.029280212575550479
+ 0.029282366319325577
+ 0.029284520041028477
+ 0.029286673740605378
+ 0.029288827418002424
+ 0.029290981073165752
+ 0.029293134706041501
+ 0.029295288316575678
+ 0.029297441904714356
+ 0.029299595470403523
+ 0.029301749013589139
+ 0.029303902534217174
+ 0.029306056032233518
+ 0.029308209507584049
+ 0.029310362960214602
+ 0.029312516390071004
+ 0.029314669797099013
+ 0.0293168231812444
+ 0.029318976542452836
+ 0.029321129880670076
+ 0.029323283195841696
+ 0.029325436487913355
+ 0.029327589756830637
+ 0.029329743002539058
+ 0.029331896224984194
+ 0.029334049424111486
+ 0.029336202599866426
+ 0.029338355752194401
+ 0.029340508881040846
+ 0.02934266198635109
+ 0.029344815068070459
+ 0.029346968126144249
+ 0.029349121160517716
+ 0.029351274171136112
+ 0.029353427157944586
+ 0.029355580120888337
+ 0.029357733059912509
+ 0.029359885974962162
+ 0.02936203886598238
+ 0.029364191732918189
+ 0.0293663445757146
+ 0.029368497394316562
+ 0.029370650188669002
+ 0.029372802958716845
+ 0.029374955704404959
+ 0.029377108425678169
+ 0.029379261122481262
+ 0.029381413794759011
+ 0.029383566442456172
+ 0.02938571906551745
+ 0.029387871663887465
+ 0.029390024237510921
+ 0.029392176786332377
+ 0.029394329310296417
+ 0.029396481809347591
+ 0.029398634283430359
+ 0.029400786732489217
+ 0.029402939156468643
+ 0.029405091555312967
+ 0.029407243928966608
+ 0.029409396277373885
+ 0.029411548600479124
+ 0.029413700898226564
+ 0.02941585317056046
+ 0.029418005417425019
+ 0.029420157638764401
+ 0.02942230983452274
+ 0.029424462004644155
+ 0.029426614149072713
+ 0.029428766267752437
+ 0.029430918360627317
+ 0.029433070427641345
+ 0.029435222468738458
+ 0.029437374483862532
+ 0.029439526472957465
+ 0.029441678435967084
+ 0.029443830372835173
+ 0.029445982283505506
+ 0.029448134167921806
+ 0.029450286026027797
+ 0.029452437857767112
+ 0.029454589663083414
+ 0.029456741441920262
+ 0.029458893194221247
+ 0.029461044919929895
+ 0.029463196618989679
+ 0.029465348291344073
+ 0.029467499936936516
+ 0.029469651555710383
+ 0.029471803147609044
+ 0.02947395471257578
+ 0.029476106250553944
+ 0.02947825776148676
+ 0.029480409245317467
+ 0.029482560701989201
+ 0.029484712131445164
+ 0.029486863533628435
+ 0.029489014908482158
+ 0.029491166255949303
+ 0.029493317575972976
+ 0.029495468868496078
+ 0.029497620133461563
+ 0.029499771370812382
+ 0.029501922580491384
+ 0.029504073762441428
+ 0.029506224916605307
+ 0.029508376042925766
+ 0.029510527141345597
+ 0.029512678211807492
+ 0.029514829254254075
+ 0.029516980268628038
+ 0.029519131254871933
+ 0.029521282212928358
+ 0.029523433142739787
+ 0.029525584044248779
+ 0.029527734917397779
+ 0.029529885762129178
+ 0.029532036578385396
+ 0.029534187366108772
+ 0.029536338125241649
+ 0.029538488855726255
+ 0.0295406395575049
+ 0.029542790230519752
+ 0.029544940874713013
+ 0.029547091490026826
+ 0.029549242076403318
+ 0.02955139263378451
+ 0.029553543162112471
+ 0.029555693661329218
+ 0.029557844131376687
+ 0.029559994572196806
+ 0.029562144983731532
+ 0.029564295365922623
+ 0.029566445718711996
+ 0.029568596042041394
+ 0.029570746335852598
+ 0.02957289660008728
+ 0.029575046834687185
+ 0.029577197039593925
+ 0.029579347214749099
+ 0.029581497360094321
+ 0.029583647475571091
+ 0.029585797561120945
+ 0.029587947616685335
+ 0.029590097642205684
+ 0.029592247637623387
+ 0.029594397602879841
+ 0.029596547537916355
+ 0.029598697442674213
+ 0.029600847317094649
+ 0.029602997161118926
+ 0.029605146974688166
+ 0.029607296757743561
+ 0.029609446510226203
+ 0.029611596232077163
+ 0.029613745923237497
+ 0.029615895583648178
+ 0.02961804521325017
+ 0.029620194811984437
+ 0.029622344379791839
+ 0.029624493916613232
+ 0.029626643422389447
+ 0.029628792897061249
+ 0.029630942340569413
+ 0.029633091752854633
+ 0.029635241133857588
+ 0.029637390483518891
+ 0.029639539801779167
+ 0.029641689088579014
+ 0.029643838343858871
+ 0.029645987567559273
+ 0.029648136759620716
+ 0.02965028591998357
+ 0.029652435048588194
+ 0.029654584145374981
+ 0.029656733210284249
+ 0.029658882243256222
+ 0.029661031244231126
+ 0.029663180213149204
+ 0.029665329149950587
+ 0.029667478054575421
+ 0.029669626926963743
+ 0.029671775767055663
+ 0.029673924574791163
+ 0.029676073350110202
+ 0.02967822209295274
+ 0.029680370803258679
+ 0.029682519480967871
+ 0.029684668126020133
+ 0.029686816738355267
+ 0.029688965317913055
+ 0.029691113864633141
+ 0.029693262378455269
+ 0.029695410859319035
+ 0.029697559307164046
+ 0.029699707721929907
+ 0.029701856103556089
+ 0.029704004451982114
+ 0.029706152767147432
+ 0.02970830104899146
+ 0.029710449297453562
+ 0.029712597512473099
+ 0.029714745693989346
+ 0.02971689384194157
+ 0.029719041956269003
+ 0.029721190036910875
+ 0.029723338083806287
+ 0.029725486096894335
+ 0.029727634076114159
+ 0.029729782021404718
+ 0.029731929932705084
+ 0.029734077809954192
+ 0.029736225653090958
+ 0.029738373462054268
+ 0.029740521236782995
+ 0.029742668977215898
+ 0.029744816683291767
+ 0.02974696435494938
+ 0.029749111992127378
+ 0.029751259594764441
+ 0.029753407162799162
+ 0.029755554696170174
+ 0.029757702194815955
+ 0.029759849658675064
+ 0.029761997087685961
+ 0.029764144481786999
+ 0.029766291840916653
+ 0.029768439165013233
+ 0.02977058645401507
+ 0.029772733707860415
+ 0.029774880926487515
+ 0.029777028109834559
+ 0.029779175257839689
+ 0.029781322370441069
+ 0.029783469447576722
+ 0.029785616489184746
+ 0.029787763495203106
+ 0.029789910465569756
+ 0.02979205740022265
+ 0.029794204299099649
+ 0.029796351162138617
+ 0.029798497989277355
+ 0.02980064478045363
+ 0.029802791535605166
+ 0.029804938254669674
+ 0.029807084937584764
+ 0.029809231584288089
+ 0.029811378194717218
+ 0.029813524768809635
+ 0.029815671306502908
+ 0.029817817807734449
+ 0.029819964272441667
+ 0.029822110700561951
+ 0.029824257092032663
+ 0.029826403446791053
+ 0.029828549764774424
+ 0.029830696045919966
+ 0.029832842290164873
+ 0.029834988497446261
+ 0.029837134667701257
+ 0.029839280800866924
+ 0.029841426896880255
+ 0.029843572955678254
+ 0.029845718977197819
+ 0.029847864961375935
+ 0.029850010908149389
+ 0.029852156817455042
+ 0.029854302689229648
+ 0.02985644852340999
+ 0.029858594319932725
+ 0.029860740078734543
+ 0.029862885799752055
+ 0.029865031482921849
+ 0.029867177128180468
+ 0.029869322735464401
+ 0.029871468304710106
+ 0.029873613835854042
+ 0.029875759328832557
+ 0.029877904783581998
+ 0.029880050200038668
+ 0.029882195578138839
+ 0.029884340917818716
+ 0.029886486219014477
+ 0.029888631481662268
+ 0.029890776705698192
+ 0.029892921891058296
+ 0.029895067037678625
+ 0.029897212145495115
+ 0.029899357214443728
+ 0.029901502244460344
+ 0.029903647235480849
+ 0.029905792187441025
+ 0.029907937100276664
+ 0.029910081973923468
+ 0.02991222680831717
+ 0.029914371603393417
+ 0.029916516359087809
+ 0.029918661075335889
+ 0.029920805752073221
+ 0.029922950389235276
+ 0.029925094986757519
+ 0.029927239544575317
+ 0.029929384062624066
+ 0.029931528540839091
+ 0.02993367297915565
+ 0.029935817377508982
+ 0.02993796173583433
+ 0.029940106054066825
+ 0.029942250332141519
+ 0.029944394569993597
+ 0.02994653876755805
+ 0.029948682924769855
+ 0.029950827041563946
+ 0.02995297111787527
+ 0.029955115153638693
+ 0.029957259148789009
+ 0.029959403103261041
+ 0.029961547016989484
+ 0.029963690889909085
+ 0.029965834721954483
+ 0.029967978513060302
+ 0.029970122263161092
+ 0.029972265972191398
+ 0.029974409640085759
+ 0.029976553266778561
+ 0.029978696852204223
+ 0.029980840396297139
+ 0.029982983898991601
+ 0.029985127360221908
+ 0.029987270779922307
+ 0.029989414158026962
+ 0.029991557494470081
+ 0.029993700789185718
+ 0.029995844042107978
+ 0.029997987253170873
+ 0.030000130422308396
+ 0.030002273549454495
+ 0.030004416634543056
+ 0.030006559677507958
+ 0.030008702678282994
+ 0.030010845636801935
+ 0.03001298855299854
+ 0.030015131426806466
+ 0.030017274258159397
+ 0.03001941704699089
+ 0.030021559793234519
+ 0.030023702496823804
+ 0.030025845157692244
+ 0.030027987775773226
+ 0.030030130351000148
+ 0.030032272883306368
+ 0.0300344153726252
+ 0.030036557818889888
+ 0.030038700222033636
+ 0.030040842581989625
+ 0.030042984898690991
+ 0.03004512717207081
+ 0.030047269402062156
+ 0.030049411588597988
+ 0.030051553731611263
+ 0.030053695831034913
+ 0.030055837886801825
+ 0.030057979898844813
+ 0.030060121867096622
+ 0.030062263791490032
+ 0.030064405671957728
+ 0.030066547508432368
+ 0.030068689300846548
+ 0.030070831049132839
+ 0.030072972753223761
+ 0.030075114413051791
+ 0.030077256028549361
+ 0.03007939759964888
+ 0.030081539126282662
+ 0.030083680608383047
+ 0.030085822045882258
+ 0.03008796343871252
+ 0.030090104786805991
+ 0.03009224609009482
+ 0.030094387348511085
+ 0.030096528561986819
+ 0.030098669730454025
+ 0.030100810853844612
+ 0.030102951932090522
+ 0.030105092965123613
+ 0.030107233952875703
+ 0.030109374895278537
+ 0.030111515792263871
+ 0.030113656643763385
+ 0.030115797449708707
+ 0.030117938210031416
+ 0.030120078924663118
+ 0.030122219593535258
+ 0.030124360216579302
+ 0.03012650079372671
+ 0.030128641324908792
+ 0.030130781810056916
+ 0.030132922249102353
+ 0.030135062641976344
+ 0.030137202988610064
+ 0.030139343288934677
+ 0.030141483542881244
+ 0.030143623750380866
+ 0.030145763911364538
+ 0.030147904025763232
+ 0.030150044093507841
+ 0.03015218411452928
+ 0.030154324088758341
+ 0.030156464016125838
+ 0.03015860389656249
+ 0.030160743729999006
+ 0.030162883516366031
+ 0.030165023255594156
+ 0.03016716294761394
+ 0.030169302592355899
+ 0.030171442189750514
+ 0.030173581739728179
+ 0.030175721242219282
+ 0.030177860697154155
+ 0.030180000104463086
+ 0.030182139464076285
+ 0.030184278775923983
+ 0.030186418039936276
+ 0.03018855725604333
+ 0.030190696424175129
+ 0.03019283554426171
+ 0.030194974616233057
+ 0.030197113640019042
+ 0.030199252615549583
+ 0.030201391542754464
+ 0.030203530421563492
+ 0.030205669251906334
+ 0.030207808033712754
+ 0.030209946766912358
+ 0.030212085451434712
+ 0.030214224087209408
+ 0.030216362674165904
+ 0.03021850121223366
+ 0.03022063970134211
+ 0.030222778141420593
+ 0.030224916532398394
+ 0.030227054874204805
+ 0.030229193166769065
+ 0.030231331410020299
+ 0.030233469603887682
+ 0.030235607748300235
+ 0.03023774584318702
+ 0.030239883888477034
+ 0.030242021884099201
+ 0.030244159829982402
+ 0.030246297726055478
+ 0.030248435572247229
+ 0.030250573368486418
+ 0.030252711114701725
+ 0.030254848810821817
+ 0.030256986456775291
+ 0.030259124052490732
+ 0.030261261597896581
+ 0.030263399092921382
+ 0.030265536537493518
+ 0.030267673931541349
+ 0.030269811274993223
+ 0.030271948567777381
+ 0.030274085809822066
+ 0.030276223001055445
+ 0.030278360141405655
+ 0.030280497230800785
+ 0.030282634269168877
+ 0.030284771256437897
+ 0.030286908192535801
+ 0.030289045077390466
+ 0.030291181910929724
+ 0.030293318693081391
+ 0.030295455423773199
+ 0.030297592102932858
+ 0.030299728730488029
+ 0.030301865306366284
+ 0.03030400183049518
+ 0.030306138302802245
+ 0.030308274723214897
+ 0.03031041109166057
+ 0.030312547408066638
+ 0.030314683672360374
+ 0.030316819884469073
+ 0.030318956044319945
+ 0.030321092151840132
+ 0.030323228206956741
+ 0.030325364209596906
+ 0.030327500159687562
+ 0.030329636057155725
+ 0.030331771901928321
+ 0.030333907693932193
+ 0.030336043433094168
+ 0.03033817911934102
+ 0.0303403147525995
+ 0.030342450332796266
+ 0.030344585859857925
+ 0.03034672133371109
+ 0.030348856754282252
+ 0.030350992121497909
+ 0.030353127435284486
+ 0.030355262695568361
+ 0.030357397902275856
+ 0.030359533055333253
+ 0.030361668154666795
+ 0.030363803200202655
+ 0.030365938191866941
+ 0.030368073129585785
+ 0.030370208013285178
+ 0.03037234284289109
+ 0.030374477618329503
+ 0.030376612339526272
+ 0.030378747006407227
+ 0.030380881618898133
+ 0.030383016176924738
+ 0.03038515068041275
+ 0.030387285129287737
+ 0.030389419523475326
+ 0.030391553862901041
+ 0.030393688147490369
+ 0.030395822377168737
+ 0.030397956551861473
+ 0.030400090671493993
+ 0.03040222473599153
+ 0.030404358745279303
+ 0.0304064926992825
+ 0.030408626597926241
+ 0.03041076044113563
+ 0.030412894228835686
+ 0.03041502796095134
+ 0.030417161637407559
+ 0.030419295258129198
+ 0.030421428823041091
+ 0.030423562332067978
+ 0.030425695785134634
+ 0.030427829182165668
+ 0.030429962523085729
+ 0.030432095807819401
+ 0.030434229036291158
+ 0.030436362208425459
+ 0.030438495324146775
+ 0.030440628383379447
+ 0.030442761386047727
+ 0.030444894332075933
+ 0.030447027221388236
+ 0.030449160053908828
+ 0.030451292829561778
+ 0.030453425548271171
+ 0.030455558209960983
+ 0.030457690814555155
+ 0.030459823361977573
+ 0.030461955852152143
+ 0.030464088285002602
+ 0.030466220660452691
+ 0.030468352978426136
+ 0.030470485238846552
+ 0.030472617441637494
+ 0.030474749586722538
+ 0.030476881674025121
+ 0.030479013703468706
+ 0.030481145674976659
+ 0.030483277588472323
+ 0.030485409443878914
+ 0.03048754124111968
+ 0.030489672980117795
+ 0.030491804660796359
+ 0.030493936283078449
+ 0.030496067846887027
+ 0.030498199352145105
+ 0.030500330798775524
+ 0.030502462186701187
+ 0.03050459351584486
+ 0.03050672478612931
+ 0.030508855997477193
+ 0.030510987149811156
+ 0.030513118243053812
+ 0.030515249277127628
+ 0.030517380251955138
+ 0.030519511167458761
+ 0.030521642023560853
+ 0.030523772820183714
+ 0.030525903557249628
+ 0.030528034234680822
+ 0.0305301648523994
+ 0.030532295410327519
+ 0.030534425908387206
+ 0.030536556346500453
+ 0.030538686724589186
+ 0.03054081704257532
+ 0.03054294730038069
+ 0.030545077497927075
+ 0.030547207635136187
+ 0.030549337711929681
+ 0.030551467728229215
+ 0.030553597683956348
+ 0.030555727579032559
+ 0.030557857413379338
+ 0.030559987186918068
+ 0.030562116899570099
+ 0.030564246551256721
+ 0.030566376141899169
+ 0.030568505671418618
+ 0.030570635139736221
+ 0.030572764546773046
+ 0.030574893892450109
+ 0.030577023176688353
+ 0.030579152399408747
+ 0.030581281560532077
+ 0.030583410659979195
+ 0.030585539697670815
+ 0.030587668673527649
+ 0.030589797587470314
+ 0.030591926439419409
+ 0.030594055229295435
+ 0.030596183957018873
+ 0.03059831262251015
+ 0.030600441225689633
+ 0.030602569766477589
+ 0.030604698244794275
+ 0.030606826660559912
+ 0.030608955013694643
+ 0.030611083304118488
+ 0.030613211531751557
+ 0.030615339696513758
+ 0.030617467798325033
+ 0.030619595837105225
+ 0.030621723812774154
+ 0.030623851725251564
+ 0.030625979574457132
+ 0.030628107360310498
+ 0.030630235082731272
+ 0.030632362741638951
+ 0.030634490336952976
+ 0.030636617868592789
+ 0.030638745336477761
+ 0.030640872740527181
+ 0.030643000080660242
+ 0.030645127356796184
+ 0.030647254568854133
+ 0.030649381716753125
+ 0.030651508800412196
+ 0.030653635819750329
+ 0.030655762774686374
+ 0.030657889665139219
+ 0.030660016491027627
+ 0.030662143252270343
+ 0.030664269948786044
+ 0.030666396580493336
+ 0.030668523147310792
+ 0.030670649649156875
+ 0.03067277608595011
+ 0.030674902457608802
+ 0.030677028764051314
+ 0.030679155005195961
+ 0.030681281180960886
+ 0.030683407291264283
+ 0.030685533336024251
+ 0.030687659315158839
+ 0.03068978522858606
+ 0.03069191107622378
+ 0.030694036857989916
+ 0.030696162573802265
+ 0.030698288223578556
+ 0.03070041380723653
+ 0.030702539324693811
+ 0.030704664775867991
+ 0.030706790160676557
+ 0.030708915479036997
+ 0.030711040730866709
+ 0.03071316591608304
+ 0.030715291034603288
+ 0.030717416086344672
+ 0.030719541071224384
+ 0.030721665989159503
+ 0.030723790840067135
+ 0.030725915623864241
+ 0.030728040340467739
+ 0.030730164989794563
+ 0.030732289571761492
+ 0.030734414086285296
+ 0.030736538533282686
+ 0.03073866291267029
+ 0.030740787224364682
+ 0.030742911468282431
+ 0.030745035644339978
+ 0.03074715975245371
+ 0.030749283792540012
+ 0.030751407764515137
+ 0.030753531668295329
+ 0.030755655503796768
+ 0.030757779270935533
+ 0.030759902969627707
+ 0.03076202659978924
+ 0.030764150161336098
+ 0.030766273654184138
+ 0.030768397078249164
+ 0.03077052043344693
+ 0.030772643719693137
+ 0.030774766936903414
+ 0.030776890084993312
+ 0.030779013163878363
+ 0.030781136173473996
+ 0.03078325911369563
+ 0.03078538198445855
+ 0.030787504785678058
+ 0.030789627517269352
+ 0.030791750179147585
+ 0.030793872771227852
+ 0.030795995293425128
+ 0.030798117745654455
+ 0.030800240127830687
+ 0.030802362439868683
+ 0.030804484681683227
+ 0.03080660685318902
+ 0.030808728954300757
+ 0.030810850984933014
+ 0.03081297294500035
+ 0.030815094834417203
+ 0.030817216653098053
+ 0.030819338400957175
+ 0.030821460077908924
+ 0.030823581683867528
+ 0.030825703218747117
+ 0.03082782468246182
+ 0.030829946074925712
+ 0.030832067396052727
+ 0.030834188645756849
+ 0.030836309823951885
+ 0.030838430930551643
+ 0.030840551965469896
+ 0.030842672928620269
+ 0.030844793819916418
+ 0.030846914639271892
+ 0.030849035386600127
+ 0.030851156061814631
+ 0.030853276664828705
+ 0.030855397195555676
+ 0.030857517653908782
+ 0.030859638039801185
+ 0.030861758353146015
+ 0.030863878593856333
+ 0.0308659987618451
+ 0.03086811885702527
+ 0.030870238879309685
+ 0.030872358828611127
+ 0.030874478704842393
+ 0.030876598507916107
+ 0.030878718237744896
+ 0.030880837894241318
+ 0.030882957477317813
+ 0.030885076986886851
+ 0.030887196422860776
+ 0.030889315785151871
+ 0.030891435073672365
+ 0.030893554288334461
+ 0.030895673429050204
+ 0.03089779249573165
+ 0.030899911488290802
+ 0.030902030406639584
+ 0.030904149250689773
+ 0.03090626802035323
+ 0.030908386715541612
+ 0.030910505336166624
+ 0.030912623882139823
+ 0.03091474235337275
+ 0.030916860749776866
+ 0.03091897907126356
+ 0.030921097317744201
+ 0.030923215489130011
+ 0.030925333585332213
+ 0.030927451606261959
+ 0.030929569551830311
+ 0.03093168742194826
+ 0.030933805216526798
+ 0.030935922935476787
+ 0.030938040578709011
+ 0.03094015814613427
+ 0.030942275637663205
+ 0.030944393053206447
+ 0.030946510392674566
+ 0.03094862765597807
+ 0.030950744843027327
+ 0.030952861953732733
+ 0.030954978988004572
+ 0.030957095945753077
+ 0.030959212826888401
+ 0.03096132963132063
+ 0.030963446358959836
+ 0.030965563009715934
+ 0.030967679583498813
+ 0.030969796080218378
+ 0.030971912499784329
+ 0.030974028842106371
+ 0.030976145107094177
+ 0.030978261294657267
+ 0.030980377404705179
+ 0.030982493437147329
+ 0.030984609391893077
+ 0.030986725268851743
+ 0.030988841067932541
+ 0.030990956789044653
+ 0.030993072432097157
+ 0.03099518799699913
+ 0.030997303483659505
+ 0.030999418891987193
+ 0.03100153422189102
+ 0.031003649473279764
+ 0.031005764646062115
+ 0.031007879740146679
+ 0.031009994755442055
+ 0.031012109691856745
+ 0.031014224549299162
+ 0.031016339327677642
+ 0.031018454026900531
+ 0.031020568646875996
+ 0.031022683187512216
+ 0.03102479764871733
+ 0.031026912030399274
+ 0.031029026332466056
+ 0.031031140554825584
+ 0.031033254697385607
+ 0.031035368760053916
+ 0.031037482742738192
+ 0.031039596645346067
+ 0.031041710467785016
+ 0.03104382420996259
+ 0.031045937871786149
+ 0.031048051453163035
+ 0.031050164954000554
+ 0.03105227837420587
+ 0.031054391713686135
+ 0.031056504972348385
+ 0.031058618150099648
+ 0.031060731246846815
+ 0.031062844262496777
+ 0.031064957196956282
+ 0.031067070050132099
+ 0.031069182821930823
+ 0.031071295512259057
+ 0.031073408121023306
+ 0.031075520648129986
+ 0.031077633093485497
+ 0.031079745456996127
+ 0.031081857738568124
+ 0.031083969938107629
+ 0.031086082055520724
+ 0.031088194090713409
+ 0.031090306043591687
+ 0.031092417914061411
+ 0.031094529702028365
+ 0.031096641407398342
+ 0.031098753030076969
+ 0.031100864569969848
+ 0.031102976026982494
+ 0.031105087401020404
+ 0.031107198691988924
+ 0.031109309899793405
+ 0.031111421024339038
+ 0.031113532065531035
+ 0.031115643023274474
+ 0.031117753897474419
+ 0.031119864688035782
+ 0.031121975394863492
+ 0.031124086017862363
+ 0.031126196556937089
+ 0.031128307011992398
+ 0.031130417382932873
+ 0.031132527669663051
+ 0.031134637872087395
+ 0.03113674799011025
+ 0.03113885802363597
+ 0.031140967972568791
+ 0.031143077836812878
+ 0.031145187616272337
+ 0.031147297310851169
+ 0.031149406920453371
+ 0.03115151644498277
+ 0.031153625884343217
+ 0.031155735238438433
+ 0.031157844507172079
+ 0.031159953690447745
+ 0.031162062788168965
+ 0.031164171800239178
+ 0.031166280726561735
+ 0.031168389567039961
+ 0.031170498321577075
+ 0.031172606990076238
+ 0.031174715572440503
+ 0.031176824068572882
+ 0.031178932478376328
+ 0.031181040801753691
+ 0.031183149038607763
+ 0.031185257188841253
+ 0.031187365252356783
+ 0.031189473229056922
+ 0.03119158111884418
+ 0.031193688921620995
+ 0.031195796637289632
+ 0.031197904265752412
+ 0.031200011806911534
+ 0.031202119260669112
+ 0.031204226626927192
+ 0.031206333905587705
+ 0.03120844109655262
+ 0.031210548199723704
+ 0.031212655215002716
+ 0.031214762142291328
+ 0.031216868981491175
+ 0.03121897573250372
+ 0.031221082395230446
+ 0.031223188969572727
+ 0.031225295455431856
+ 0.031227401852709034
+ 0.03122950816130543
+ 0.031231614381122118
+ 0.031233720512060088
+ 0.031235826554020248
+ 0.031237932506903463
+ 0.031240038370610467
+ 0.031242144145042013
+ 0.031244249830098665
+ 0.031246355425680973
+ 0.031248460931689426
+ 0.031250566348024381
+ 0.031252671674586167
+ 0.031254776911275019
+ 0.031256882057991105
+ 0.031258987114634491
+ 0.031261092081105182
+ 0.03126319695730314
+ 0.031265301743128165
+ 0.031267406438480076
+ 0.03126951104325857
+ 0.031271615557363248
+ 0.031273719980693657
+ 0.031275824313149271
+ 0.031277928554629492
+ 0.031280032705033621
+ 0.0312821367642609
+ 0.031284240732210471
+ 0.031286344608781436
+ 0.031288448393872764
+ 0.031290552087383412
+ 0.031292655689212225
+ 0.031294759199257956
+ 0.031296862617419312
+ 0.031298965943594881
+ 0.031301069177683223
+ 0.031303172319582781
+ 0.031305275369191934
+ 0.031307378326409001
+ 0.031309481191132173
+ 0.031311583963259615
+ 0.031313686642689353
+ 0.031315789229319421
+ 0.031317891723047712
+ 0.031319994123772024
+ 0.031322096431390126
+ 0.031324198645799661
+ 0.031326300766898268
+ 0.031328402794583411
+ 0.031330504728752533
+ 0.031332606569302986
+ 0.031334708316132068
+ 0.031336809969136917
+ 0.031338911528214684
+ 0.03134101299326239
+ 0.031343114364176972
+ 0.0313452267312649
+ 0.031347458588596715
+ 0.031349690507343576
+ 0.031351922487500773
+ 0.031354154529063621
+ 0.031356386632027416
+ 0.031358618796387433
+ 0.031360851022139057
+ 0.031363083309277506
+ 0.031365315657798189
+ 0.031367548067696323
+ 0.03136978053896726
+ 0.031372013071606274
+ 0.031374245665608744
+ 0.031376478320969903
+ 0.031378711037685116
+ 0.031380943815749629
+ 0.031383176655158808
+ 0.031385409555907962
+ 0.031387642517992378
+ 0.031389875541407382
+ 0.031392108626148281
+ 0.03139434177221033
+ 0.031396574979588976
+ 0.031398808248279411
+ 0.031401041578276993
+ 0.031403274969577025
+ 0.031405508422174835
+ 0.031407741936065707
+ 0.031409975511245004
+ 0.031412209147707981
+ 0.031414442845450002
+ 0.031416676604466315
+ 0.031418910424752311
+ 0.031421144306303259
+ 0.031423378249114509
+ 0.031425612253181349
+ 0.03142784631849907
+ 0.031430080445063076
+ 0.031432314632868601
+ 0.031434548881910968
+ 0.03143678319218552
+ 0.031439017563687589
+ 0.031441251996412449
+ 0.031443486490355464
+ 0.031445721045511882
+ 0.031447955661877122
+ 0.031450190339446446
+ 0.031452425078215135
+ 0.031454659878178609
+ 0.031456894739332081
+ 0.031459129661670908
+ 0.031461364645190455
+ 0.031463599689886018
+ 0.031465834795752885
+ 0.031468069962786401
+ 0.031470305190981894
+ 0.031472540480334661
+ 0.03147477583084006
+ 0.0314770112424934
+ 0.031479246715290003
+ 0.03148148224922518
+ 0.031483717844294247
+ 0.031485953500492561
+ 0.031488189217815446
+ 0.031490424996258162
+ 0.031492660835816116
+ 0.031494896736484569
+ 0.031497132698258899
+ 0.031499368721134395
+ 0.031501604805106394
+ 0.031503840950170212
+ 0.031506077156321179
+ 0.031508313423554646
+ 0.031510549751865902
+ 0.031512786141250339
+ 0.031515022591703162
+ 0.031517259103219848
+ 0.031519495675795609
+ 0.031521732309425815
+ 0.031523969004105812
+ 0.031526205759830915
+ 0.031528442576596441
+ 0.031530679454397734
+ 0.031532916393230088
+ 0.031535153393088919
+ 0.031537390453969465
+ 0.031539627575867105
+ 0.031541864758777162
+ 0.031544102002694967
+ 0.031546339307615842
+ 0.031548576673535098
+ 0.03155081410044816
+ 0.031553051588350242
+ 0.03155528913723675
+ 0.031557526747102979
+ 0.031559764417944322
+ 0.031562002149756033
+ 0.031564239942533504
+ 0.031566477796272009
+ 0.031568715710966984
+ 0.031570953686613654
+ 0.031573191723207453
+ 0.031575429820743614
+ 0.031577667979217523
+ 0.031579906198624531
+ 0.031582144478959982
+ 0.031584382820219192
+ 0.031586621222397492
+ 0.03158885968549021
+ 0.031591098209492699
+ 0.031593336794400309
+ 0.031595575440208364
+ 0.031597814146912193
+ 0.031600052914507182
+ 0.031602291742988606
+ 0.031604530632351815
+ 0.031606769582592176
+ 0.031609008593705024
+ 0.031611247665685696
+ 0.031613486798529516
+ 0.031615725992231843
+ 0.03161796524678806
+ 0.031620204562193402
+ 0.031622443938443288
+ 0.031624683375533091
+ 0.031626922873458037
+ 0.031629162432213559
+ 0.031631402051794988
+ 0.03163364173219764
+ 0.031635881473416914
+ 0.031638121275448072
+ 0.031640361138286541
+ 0.031642601061927594
+ 0.03164484104636664
+ 0.031647081091598937
+ 0.031649321197619956
+ 0.03165156136442495
+ 0.031653801592009242
+ 0.031656041880368274
+ 0.03165828222949732
+ 0.031660522639391744
+ 0.031662763110046885
+ 0.031665003641458161
+ 0.031667244233620793
+ 0.031669484886530264
+ 0.031671725600181805
+ 0.031673966374570851
+ 0.031676207209692671
+ 0.031678448105542704
+ 0.031680689062116262
+ 0.031682930079408658
+ 0.031685171157415273
+ 0.031687412296131451
+ 0.031689653495552562
+ 0.031691894755673924
+ 0.031694136076490957
+ 0.031696377457998921
+ 0.031698618900193216
+ 0.031700860403069187
+ 0.031703101966622203
+ 0.031705343590847583
+ 0.031707585275740725
+ 0.031709827021296925
+ 0.031712068827511569
+ 0.031714310694380028
+ 0.031716552621897653
+ 0.031718794610059754
+ 0.031721036658861737
+ 0.031723278768298918
+ 0.031725520938366683
+ 0.031727763169060383
+ 0.031730005460375375
+ 0.031732247812306956
+ 0.031734490224850607
+ 0.031736732698001584
+ 0.031738975231755291
+ 0.031741217826107032
+ 0.03174346048105222
+ 0.031745703196586185
+ 0.031747945972704306
+ 0.031750188809401919
+ 0.031752431706674411
+ 0.031754674664517119
+ 0.031756917682925434
+ 0.031759160761894667
+ 0.03176140390142021
+ 0.031763647101497386
+ 0.03176589036212165
+ 0.031768133683288242
+ 0.031770377064992632
+ 0.031772620507230127
+ 0.031774864009996073
+ 0.031777107573285855
+ 0.031779351197094845
+ 0.031781594881418372
+ 0.031783838626251865
+ 0.031786082431590638
+ 0.031788326297430065
+ 0.031790570223765517
+ 0.031792814210592338
+ 0.031795058257905927
+ 0.031797302365701573
+ 0.031799546533974744
+ 0.031801790762720765
+ 0.031804035051934958
+ 0.031806279401612791
+ 0.031808523811749527
+ 0.031810768282340599
+ 0.031813012813381343
+ 0.031815257404867119
+ 0.031817502056793331
+ 0.031819746769155298
+ 0.031821991541948438
+ 0.03182423637516809
+ 0.031826481268809645
+ 0.031828726222868461
+ 0.031830971237339925
+ 0.031833216312219366
+ 0.031835461447502197
+ 0.031837706643183757
+ 0.031839951899259436
+ 0.031842197215724607
+ 0.031844442592574615
+ 0.031846688029804886
+ 0.031848933527410736
+ 0.031851179085387565
+ 0.031853424703730732
+ 0.031855670382435641
+ 0.031857916121497618
+ 0.031860161920912108
+ 0.031862407780674423
+ 0.031864653700779948
+ 0.03186689968122406
+ 0.03186914572200214
+ 0.031871391823109607
+ 0.03187363798454175
+ 0.031875884206293996
+ 0.031878130488361717
+ 0.031880376830740291
+ 0.031882623233425111
+ 0.031884869696411501
+ 0.031887116219694873
+ 0.031889362803270621
+ 0.031891609447134123
+ 0.031893856151280729
+ 0.031896102915705812
+ 0.031898349740404779
+ 0.031900596625373014
+ 0.031902843570605896
+ 0.031905090576098749
+ 0.031907337641847028
+ 0.031909584767846069
+ 0.031911831954091294
+ 0.031914079200578011
+ 0.031916326507301682
+ 0.031918573874257644
+ 0.031920821301441291
+ 0.031923068788848014
+ 0.03192531633647315
+ 0.031927563944312183
+ 0.031929811612360401
+ 0.031932059340613217
+ 0.031934307129066059
+ 0.031936554977714193
+ 0.031938802886553125
+ 0.031941050855578218
+ 0.031943298884784838
+ 0.031945546974168335
+ 0.031947795123724122
+ 0.031950043333447628
+ 0.031952291603334175
+ 0.031954539933379218
+ 0.031956788323578067
+ 0.031959036773926162
+ 0.031961285284418897
+ 0.031963533855051622
+ 0.03196578248581973
+ 0.031968031176718675
+ 0.031970279927743754
+ 0.031972528738890393
+ 0.031974777610154
+ 0.031977026541529972
+ 0.031979275533013662
+ 0.031981524584600456
+ 0.031983773696285828
+ 0.031986022868065053
+ 0.031988272099933629
+ 0.031990521391886829
+ 0.031992770743920151
+ 0.031995020156028973
+ 0.031997269628208647
+ 0.031999519160454605
+ 0.032001768752762193
+ 0.032004018405126823
+ 0.032006268117543937
+ 0.032008517890008858
+ 0.032010767722517042
+ 0.032013017615063824
+ 0.032015267567644681
+ 0.032017517580254923
+ 0.03201976765288999
+ 0.032022017785545275
+ 0.032024267978216177
+ 0.032026518230898054
+ 0.032028768543586349
+ 0.0320310189162765
+ 0.032033269348963798
+ 0.032035519841643732
+ 0.032037770394311618
+ 0.032040021006962953
+ 0.032042271679593053
+ 0.032044522412197386
+ 0.03204677320477127
+ 0.032049024057310159
+ 0.032051274969809432
+ 0.032053525942264557
+ 0.032055776974670838
+ 0.032058028067023743
+ 0.032060279219318644
+ 0.032062530431550933
+ 0.032064781703716051
+ 0.032067033035809371
+ 0.032069284427826285
+ 0.032071535879762234
+ 0.032073787391612582
+ 0.032076038963372772
+ 0.032078290595038188
+ 0.032080542286604244
+ 0.032082794038066333
+ 0.032085045849419874
+ 0.032087297720660268
+ 0.03208954965178288
+ 0.032091801642783184
+ 0.032094053693656539
+ 0.03209630580439838
+ 0.032098557975004077
+ 0.032100810205469121
+ 0.032103062495788807
+ 0.032105314845958639
+ 0.03210756725597394
+ 0.032109819725830172
+ 0.032112072255522775
+ 0.032114324845047067
+ 0.032116577494398543
+ 0.032118830203572576
+ 0.03212108297256458
+ 0.032123335801369952
+ 0.032125588689984115
+ 0.032127841638402474
+ 0.032130094646620477
+ 0.032132347714633483
+ 0.032134600842436967
+ 0.032136854030026259
+ 0.032139107277396835
+ 0.032141360584544081
+ 0.032143613951463416
+ 0.032145867378150263
+ 0.032148120864600047
+ 0.032150374410808119
+ 0.032152628016769984
+ 0.032154881682480992
+ 0.03215713540793657
+ 0.032159389193132167
+ 0.032161643038063174
+ 0.032163896942724993
+ 0.032166150907113063
+ 0.032168404931222812
+ 0.032170659015049619
+ 0.032172913158588903
+ 0.032175167361836135
+ 0.032177421624786699
+ 0.032179675947435989
+ 0.032181930329779451
+ 0.032184184771812521
+ 0.032186439273530605
+ 0.032188693834929116
+ 0.032190948456003447
+ 0.032193203136749067
+ 0.03219545787716141
+ 0.032197712677235805
+ 0.032199967536967765
+ 0.032202222456352687
+ 0.032204477435385993
+ 0.032206732474063055
+ 0.032208987572379361
+ 0.032211242730330346
+ 0.032213497947911354
+ 0.032215753225117855
+ 0.032218008561945316
+ 0.032220263958389082
+ 0.032222519414444623
+ 0.032224774930107385
+ 0.032227030505372713
+ 0.032229286140236096
+ 0.03223154183469297
+ 0.03223379758873874
+ 0.032236053402368819
+ 0.032238309275578629
+ 0.032240565208363603
+ 0.032242821200719231
+ 0.03224507725264087
+ 0.032247333364123928
+ 0.032249589535163922
+ 0.032251845765756224
+ 0.032254102055896287
+ 0.032256358405579492
+ 0.032258614814801294
+ 0.032260871283557167
+ 0.032263127811842492
+ 0.032265384399652708
+ 0.032267641046983271
+ 0.032269897753829574
+ 0.032272154520187044
+ 0.032274411346051191
+ 0.032276668231417331
+ 0.032278925176281031
+ 0.032281182180637601
+ 0.032283439244482549
+ 0.032285696367811291
+ 0.032287953550619239
+ 0.032290210792901841
+ 0.032292468094654546
+ 0.032294725455872746
+ 0.032296982876551958
+ 0.032299240356687554
+ 0.032301497896274949
+ 0.032303755495309644
+ 0.03230601315378704
+ 0.032308270871702578
+ 0.032310528649051713
+ 0.032312786485829866
+ 0.032315044382032428
+ 0.032317302337654931
+ 0.032319560352692754
+ 0.032321818427141352
+ 0.032324076560996159
+ 0.032326334754252652
+ 0.032328593006906207
+ 0.032330851318952282
+ 0.032333109690386323
+ 0.032335368121203786
+ 0.032337626611400105
+ 0.032339885160970708
+ 0.032342143769911062
+ 0.032344402438216603
+ 0.032346661165882744
+ 0.032348919952904967
+ 0.032351178799278665
+ 0.032353437704999342
+ 0.032355696670062425
+ 0.032357955694463314
+ 0.032360214778197505
+ 0.032362473921260425
+ 0.032364733123647502
+ 0.032366992385354239
+ 0.032369251706375987
+ 0.032371511086708285
+ 0.032373770526346546
+ 0.032376030025286148
+ 0.032378289583522651
+ 0.032380549201051434
+ 0.032382808877867986
+ 0.032385068613967727
+ 0.032387328409346099
+ 0.032389588263998556
+ 0.03239184817792054
+ 0.032394108151107527
+ 0.032396368183554965
+ 0.032398628275258273
+ 0.032400888426212957
+ 0.0324031486364144
+ 0.032405408905858052
+ 0.03240766923453943
+ 0.032409929622453974
+ 0.032412190069597058
+ 0.032414450575964218
+ 0.032416711141550876
+ 0.032418971766352486
+ 0.032421232450364497
+ 0.032423493193582384
+ 0.032425753996001588
+ 0.032428014857617538
+ 0.032430275778425721
+ 0.032432536758421553
+ 0.032434797797600549
+ 0.032437058895958132
+ 0.032439320053489748
+ 0.032441581270190867
+ 0.032443842546056943
+ 0.032446103881083418
+ 0.032448365275265775
+ 0.03245062672859949
+ 0.03245288824107994
+ 0.032455149812702637
+ 0.032457411443463084
+ 0.032459673133356653
+ 0.032461934882378848
+ 0.032464196690525124
+ 0.032466458557790963
+ 0.032468720484171744
+ 0.03247098246966304
+ 0.032473244514260209
+ 0.032475506617958803
+ 0.032477768780754229
+ 0.032480031002641963
+ 0.032482293283617444
+ 0.032484555623676171
+ 0.032486818022813592
+ 0.032489080481025147
+ 0.032491342998306354
+ 0.032493605574652605
+ 0.032495868210059432
+ 0.032498130904522256
+ 0.032500393658036544
+ 0.032502656470597809
+ 0.032504919342201434
+ 0.03250718227284298
+ 0.032509445262517832
+ 0.0325117083112215
+ 0.032513971418949447
+ 0.0325162345856971
+ 0.032518497811459983
+ 0.032520761096233537
+ 0.032523024440013204
+ 0.032525287842794494
+ 0.032527551304572903
+ 0.032529814825343839
+ 0.032532078405102749
+ 0.032534342043845171
+ 0.032536605741566589
+ 0.032538869498262395
+ 0.032541133313928106
+ 0.03254339718855917
+ 0.032545661122151077
+ 0.032547925114699339
+ 0.032550189166199332
+ 0.03255245327664661
+ 0.0325547174460366
+ 0.032556981674364778
+ 0.032559245961626661
+ 0.032561510307817676
+ 0.032563774712933313
+ 0.032566039176969042
+ 0.032568303699920371
+ 0.032570568281782702
+ 0.032572832922551594
+ 0.032575097622222472
+ 0.032577362380790793
+ 0.032579627198252088
+ 0.032581892074601826
+ 0.03258415700983544
+ 0.032586422003948436
+ 0.03258868705693628
+ 0.032590952168794506
+ 0.032593217339518525
+ 0.032595482569103836
+ 0.032597747857545871
+ 0.032600013204840191
+ 0.03260227861098227
+ 0.032604544075967537
+ 0.032606809599791467
+ 0.032609075182449619
+ 0.032611340823937421
+ 0.032613606524250313
+ 0.032615872283383834
+ 0.032618138101333502
+ 0.032620403978094695
+ 0.032622669913662937
+ 0.032624935908033781
+ 0.032627201961202633
+ 0.032629468073164983
+ 0.032631734243916341
+ 0.032634000473452184
+ 0.032636266761767951
+ 0.032638533108859197
+ 0.032640799514721416
+ 0.032643065979349975
+ 0.032645332502740515
+ 0.032647599084888394
+ 0.032649865725789207
+ 0.032652132425438352
+ 0.03265439918383134
+ 0.032656666000963723
+ 0.032658932876830887
+ 0.032661199811428364
+ 0.032663466804751684
+ 0.032665733856796282
+ 0.032668000967557655
+ 0.032670268137031326
+ 0.032672535365212758
+ 0.032674802652097414
+ 0.032677069997680844
+ 0.032679337401958518
+ 0.032681604864925863
+ 0.032683872386578501
+ 0.032686139966911831
+ 0.032688407605921337
+ 0.032690675303602541
+ 0.032692943059950949
+ 0.03269521087496207
+ 0.032697478748631326
+ 0.032699746680954253
+ 0.032702014671926363
+ 0.032704282721543097
+ 0.032706550829800014
+ 0.032708818996692604
+ 0.032711087222216335
+ 0.032713355506366677
+ 0.032715623849139168
+ 0.03271789225052929
+ 0.032720160710532561
+ 0.032722429229144444
+ 0.032724697806360427
+ 0.03272696644217607
+ 0.032729235136586848
+ 0.032731503889588259
+ 0.032733772701175765
+ 0.032736041571344847
+ 0.032738310500091114
+ 0.032740579487409951
+ 0.032742848533296967
+ 0.032745117637747574
+ 0.03274738680075729
+ 0.032749656022321674
+ 0.032751925302436147
+ 0.032754194641096232
+ 0.032756464038297448
+ 0.032758733494035346
+ 0.032761003008305346
+ 0.032763272581102981
+ 0.032765542212423768
+ 0.032767811902263223
+ 0.032770081650616789
+ 0.032772351457480052
+ 0.032774621322848432
+ 0.032776891246717517
+ 0.032779161229082726
+ 0.032781431269939647
+ 0.032783701369283755
+ 0.032785971527110574
+ 0.032788241743415568
+ 0.032790512018194252
+ 0.032792782351442222
+ 0.032795052743154807
+ 0.032797323193327725
+ 0.032799593701956287
+ 0.032801864269036148
+ 0.032804134894562735
+ 0.032806405578531692
+ 0.032808676320938326
+ 0.032810947121778268
+ 0.032813217981047041
+ 0.0328154888987401
+ 0.032817759874853011
+ 0.03282003090938123
+ 0.03282230200232026
+ 0.032824573153665736
+ 0.032826844363412981
+ 0.032829115631557715
+ 0.032831386958095295
+ 0.032833658343021294
+ 0.032835929786331181
+ 0.032838201288020577
+ 0.032840472848084938
+ 0.03284274446651974
+ 0.032845016143320499
+ 0.032847287878482803
+ 0.0328495596720021
+ 0.03285183152387397
+ 0.032854103434093875
+ 0.032856375402657331
+ 0.032858647429559858
+ 0.032860919514797013
+ 0.032863191658364384
+ 0.032865463860257314
+ 0.032867736120471398
+ 0.032870008439002153
+ 0.03287228081584511
+ 0.032874553250995829
+ 0.032876825744449813
+ 0.032879098296202468
+ 0.032881370906249457
+ 0.032883643574586306
+ 0.032885916301208427
+ 0.032888189086111394
+ 0.032890461929290737
+ 0.032892734830741961
+ 0.032895007790460624
+ 0.032897280808442252
+ 0.032899553884682305
+ 0.032901827019176343
+ 0.032904100211919918
+ 0.032906373462908513
+ 0.032908646772137687
+ 0.032910920139602971
+ 0.032913193565299842
+ 0.032915467049223851
+ 0.032917740591370516
+ 0.032920014191735354
+ 0.03292228785031398
+ 0.032924561567101829
+ 0.032926835342094479
+ 0.032929109175287415
+ 0.032931383066676166
+ 0.032933657016256293
+ 0.032935931024023271
+ 0.032938205089972743
+ 0.032940479214100114
+ 0.03294275339640098
+ 0.032945027636870863
+ 0.032947301935505324
+ 0.032949576292299811
+ 0.032951850707249909
+ 0.032954125180351145
+ 0.032956399711599041
+ 0.032958674300989171
+ 0.032960948948517033
+ 0.032963223654178198
+ 0.032965498417968128
+ 0.032967773239882397
+ 0.032970048119916544
+ 0.032972323058066071
+ 0.032974598054326544
+ 0.032976873108693523
+ 0.032979148221162484
+ 0.032981423391729027
+ 0.032983698620388614
+ 0.032985973907136874
+ 0.03298824925196929
+ 0.032990524654881372
+ 0.03299280011586872
+ 0.032995075634926804
+ 0.032997351212051218
+ 0.032999626847237479
+ 0.033001902540481139
+ 0.033004178291777722
+ 0.033006454101122761
+ 0.033008729968511841
+ 0.033011005893940473
+ 0.033013281877404141
+ 0.033015557918898493
+ 0.033017834018418984
+ 0.033020110175961202
+ 0.033022386391520692
+ 0.033024662665093026
+ 0.033026938996673659
+ 0.033029215386258193
+ 0.033031491833842075
+ 0.03303376833942101
+ 0.033036044902990461
+ 0.033038321524545944
+ 0.033040598204083081
+ 0.03304287494159739
+ 0.033045151737084368
+ 0.033047428590539572
+ 0.033049705501958626
+ 0.033051982471336921
+ 0.033054259498670191
+ 0.033056536583953848
+ 0.033058813727183507
+ 0.033061090928354693
+ 0.033063368187462992
+ 0.033065645504503867
+ 0.033067922879472939
+ 0.033070200312365725
+ 0.033072477803177833
+ 0.033074755351904704
+ 0.033077032958541995
+ 0.033079310623085209
+ 0.033081588345529933
+ 0.033083866125871601
+ 0.033086143964105932
+ 0.033088421860228381
+ 0.033090699814234459
+ 0.03309297782611987
+ 0.033095255895880006
+ 0.033097534023510546
+ 0.033099812209006957
+ 0.033102090452364862
+ 0.033104368753579728
+ 0.033106647112647179
+ 0.033108925529562738
+ 0.033111204004322041
+ 0.033113482536920522
+ 0.033115761127353788
+ 0.033118039775617419
+ 0.033120318481706962
+ 0.033122597245617981
+ 0.033124876067345974
+ 0.03312715494688661
+ 0.033129433884235317
+ 0.033131712879387751
+ 0.033133991932339443
+ 0.033136271043085953
+ 0.033138550211622854
+ 0.033140829437945662
+ 0.033143108722049945
+ 0.033145388063931358
+ 0.033147667463585322
+ 0.033149946921007513
+ 0.033152226436193408
+ 0.033154506009138621
+ 0.033156785639838697
+ 0.033159065328289203
+ 0.033161345074485746
+ 0.033163624878423802
+ 0.033165904740099006
+ 0.033168184659506862
+ 0.03317046463664302
+ 0.033172744671502927
+ 0.033175024764082288
+ 0.033177304914376593
+ 0.033179585122381339
+ 0.033181865388092265
+ 0.033184145711504749
+ 0.033186426092614477
+ 0.033188706531417006
+ 0.033190987027907855
+ 0.033193267582082679
+ 0.033195548193936962
+ 0.033197828863466339
+ 0.033200109590666285
+ 0.033202390375532451
+ 0.033204671218060366
+ 0.033206952118245647
+ 0.033209233076083804
+ 0.03321151409157045
+ 0.033213795164701181
+ 0.033216076295471512
+ 0.033218357483877026
+ 0.033220638729913349
+ 0.033222920033575951
+ 0.033225201394860508
+ 0.033227482813762532
+ 0.033229764290277596
+ 0.033232045824401348
+ 0.033234327416129285
+ 0.033236609065457022
+ 0.033238890772380104
+ 0.033241172536894133
+ 0.033243454358994638
+ 0.033245736238677236
+ 0.033248018175937581
+ 0.033250300170771081
+ 0.033252582223173441
+ 0.03325486433314017
+ 0.033257146500666912
+ 0.033259428725749191
+ 0.033261711008382606
+ 0.033263993348562691
+ 0.033266275746285136
+ 0.033268558201545423
+ 0.033270840714339153
+ 0.033273123284661928
+ 0.033275405912509298
+ 0.033277688597876907
+ 0.033279971340760252
+ 0.033282254141154967
+ 0.033284536999056612
+ 0.033286819914460808
+ 0.033289102887363121
+ 0.033291385917759035
+ 0.033293669005644316
+ 0.033295952151014448
+ 0.033298235353865009
+ 0.03330051861419156
+ 0.033302801931989756
+ 0.033305085307255164
+ 0.033307368739983342
+ 0.033309652230169878
+ 0.0333119357778104
+ 0.033314219382900467
+ 0.033316503045435646
+ 0.033318786765411508
+ 0.033321070542823739
+ 0.033323354377667869
+ 0.033325638269939471
+ 0.033327922219634105
+ 0.033330206226747421
+ 0.033332490291275017
+ 0.033334774413212462
+ 0.033337058592555334
+ 0.033339342829299158
+ 0.033341627123439667
+ 0.033343911474972364
+ 0.033346195883892905
+ 0.033348480350196767
+ 0.033350764873879633
+ 0.033353049454937091
+ 0.033355334093364726
+ 0.033357618789158119
+ 0.033359903542312851
+ 0.033362188352824576
+ 0.033364473220688792
+ 0.033366758145901156
+ 0.033369043128457287
+ 0.033371328168352726
+ 0.033373613265583128
+ 0.033375898420144059
+ 0.033378183632031086
+ 0.033380468901239871
+ 0.033382754227765925
+ 0.03338503961160489
+ 0.03338732505275243
+ 0.033389610551204048
+ 0.033391896106955317
+ 0.033394181720001963
+ 0.033396467390339517
+ 0.03339875311796358
+ 0.033401038902869731
+ 0.033403324745053621
+ 0.033405610644510829
+ 0.033407896601236893
+ 0.033410182615227546
+ 0.033412468686478243
+ 0.033414754814984689
+ 0.033417041000742512
+ 0.033419327243747174
+ 0.033421613543994463
+ 0.033423899901479828
+ 0.033426186316198918
+ 0.033428472788147381
+ 0.033430759317320771
+ 0.033433045903714743
+ 0.033435332547324843
+ 0.033437619248146755
+ 0.033439906006176023
+ 0.033442192821408222
+ 0.033444479693839069
+ 0.033446766623464061
+ 0.033449053610278862
+ 0.033451340654279099
+ 0.03345362775546034
+ 0.033455914913818191
+ 0.03345820212934833
+ 0.03346048940204624
+ 0.033462776731907687
+ 0.033465064118928127
+ 0.033467351563103286
+ 0.033469639064428743
+ 0.033471926622900071
+ 0.033474214238512934
+ 0.033476501911262904
+ 0.033478789641145604
+ 0.033481077428156633
+ 0.033483365272291656
+ 0.03348565317354623
+ 0.033487941131916055
+ 0.033490229147396626
+ 0.033492517219983628
+ 0.033494805349672668
+ 0.033497093536459369
+ 0.033499381780339337
+ 0.033501670081308166
+ 0.033503958439361513
+ 0.03350624685449495
+ 0.033508535326704114
+ 0.033510823855984646
+ 0.033513112442332127
+ 0.033515401085742205
+ 0.033517689786210468
+ 0.033519978543732606
+ 0.033522267358304096
+ 0.033524556229920732
+ 0.033526845158577998
+ 0.033529134144271604
+ 0.033531423186997075
+ 0.033533712286750179
+ 0.033536001443526385
+ 0.033538290657321383
+ 0.033540579928130802
+ 0.03354286925595025
+ 0.033545158640775355
+ 0.033547448082601683
+ 0.033549737581424974
+ 0.033552027137240752
+ 0.033554316750044701
+ 0.033556606419832408
+ 0.033558896146599571
+ 0.033561185930341686
+ 0.033563475771054459
+ 0.033565765668733531
+ 0.033568055623374553
+ 0.033570345634973027
+ 0.0335726357035247
+ 0.033574925829025132
+ 0.033577216011470006
+ 0.033579506250854874
+ 0.033581796547175441
+ 0.033584086900427315
+ 0.033586377310606118
+ 0.033588667777707429
+ 0.033590958301726967
+ 0.033593248882660319
+ 0.033595539520503113
+ 0.033597830215250993
+ 0.033600120966899578
+ 0.033602411775444506
+ 0.033604702640881376
+ 0.0336069935632059
+ 0.033609284542413659
+ 0.033611575578500245
+ 0.033613866671461379
+ 0.033616157821292646
+ 0.033618449027989716
+ 0.033620740291548171
+ 0.033623031611963686
+ 0.033625322989231841
+ 0.033627614423348343
+ 0.033629905914308783
+ 0.033632197462108805
+ 0.033634489066744114
+ 0.033636780728210261
+ 0.033639072446502848
+ 0.033641364221617641
+ 0.0336436560535502
+ 0.033645947942296146
+ 0.033648239887851164
+ 0.033650531890210889
+ 0.033652823949370914
+ 0.033655116065326909
+ 0.033657408238074553
+ 0.03365970046760948
+ 0.033661992753927249
+ 0.033664285097023551
+ 0.033666577496894057
+ 0.033668869953534394
+ 0.033671162466940227
+ 0.033673455037107079
+ 0.033675747664030739
+ 0.033678040347706814
+ 0.033680333088130898
+ 0.033682625885298682
+ 0.03368491873920576
+ 0.033687211649847892
+ 0.033689504617220555
+ 0.033691797641319549
+ 0.033694090722140385
+ 0.033696383859678838
+ 0.033698677053930447
+ 0.033700970304890963
+ 0.033703263612555968
+ 0.03370555697692109
+ 0.033707850397982013
+ 0.033710143875734407
+ 0.033712437410173948
+ 0.033714731001296142
+ 0.03371702464909674
+ 0.033719318353571434
+ 0.03372161211471579
+ 0.033723905932525493
+ 0.033726199806996177
+ 0.033728493738123526
+ 0.033730787725903232
+ 0.033733081770330804
+ 0.03373537587140206
+ 0.033737670029112501
+ 0.033739964243457939
+ 0.033742258514433854
+ 0.033744552842036063
+ 0.033746847226260146
+ 0.03374914166710169
+ 0.03375143616455651
+ 0.03375373071862009
+ 0.033756025329288238
+ 0.033758319996556478
+ 0.033760614720420551
+ 0.033762909500876154
+ 0.033765204337918783
+ 0.033767499231544269
+ 0.033769794181748233
+ 0.033772089188526255
+ 0.033774384251874026
+ 0.033776679371787161
+ 0.033778974548261481
+ 0.033781269781292443
+ 0.033783565070875841
+ 0.033785860417007346
+ 0.033788155819682551
+ 0.033790451278897134
+ 0.033792746794646777
+ 0.033795042366927076
+ 0.033797337995733763
+ 0.033799633681062514
+ 0.033801929422908945
+ 0.033804225221268705
+ 0.033806521076137533
+ 0.033808816987511058
+ 0.033811112955384907
+ 0.03381340897975478
+ 0.033815705060616374
+ 0.033818001197965263
+ 0.033820297391797163
+ 0.033822593642107802
+ 0.033824889948892767
+ 0.033827186312147761
+ 0.033829482731868393
+ 0.033831779208050444
+ 0.033834075740689487
+ 0.033836372329781234
+ 0.033838668975321312
+ 0.033840965677305442
+ 0.033843262435729236
+ 0.033845559250588464
+ 0.033847856121878725
+ 0.033850153049595613
+ 0.033852450033734993
+ 0.033854747074292355
+ 0.033857044171263485
+ 0.033859341324643993
+ 0.033861638534429549
+ 0.033863935800615905
+ 0.033866233123198607
+ 0.03386853050217345
+ 0.033870827937536055
+ 0.0338731254292821
+ 0.033875422977407282
+ 0.033877720581907238
+ 0.033880018242777671
+ 0.033882315960014245
+ 0.033884613733612637
+ 0.033886911563568496
+ 0.033889209449877583
+ 0.033891507392535478
+ 0.033893805391537926
+ 0.033896103446880599
+ 0.033898401558559145
+ 0.033900699726569283
+ 0.033902997950906587
+ 0.033905296231566913
+ 0.033907594568545772
+ 0.033909892961838987
+ 0.033912191411442104
+ 0.033914489917350882
+ 0.033916788479561005
+ 0.033919087098068186
+ 0.033921385772867976
+ 0.033923684503956199
+ 0.033925983291328447
+ 0.033928282134980489
+ 0.033930581034907932
+ 0.033932879991106481
+ 0.033935179003571805
+ 0.033937478072299659
+ 0.033939777197285671
+ 0.033942076378525525
+ 0.033944375616014918
+ 0.033946674909749529
+ 0.033948974259725088
+ 0.033951273665937184
+ 0.033953573128381612
+ 0.033955872647053999
+ 0.033958172221950057
+ 0.033960471853065444
+ 0.033962771540395946
+ 0.033965071283937102
+ 0.033967371083684722
+ 0.033969670939634419
+ 0.033971970851781941
+ 0.03397427082012297
+ 0.033976570844653116
+ 0.033978870925368145
+ 0.033981171062263775
+ 0.033983471255335691
+ 0.033985771504579508
+ 0.03398807180999102
+ 0.033990372171565822
+ 0.03399267258929968
+ 0.03399497306318823
+ 0.03399727359322724
+ 0.033999574179412316
+ 0.034001874821739275
+ 0.034004175520203683
+ 0.034006476274801335
+ 0.034008777085527832
+ 0.034011077952378989
+ 0.034013378875350365
+ 0.034015679854437784
+ 0.03401798088963686
+ 0.034020281980943361
+ 0.034022583128352879
+ 0.034024884331861266
+ 0.034027185591464094
+ 0.034029486907157076
+ 0.034031788278935958
+ 0.034034089706796444
+ 0.034036391190734198
+ 0.034038692730744946
+ 0.03404099432682442
+ 0.034043295978968199
+ 0.034045597687172087
+ 0.034047899451431801
+ 0.034050201271743012
+ 0.034052503148101397
+ 0.034054805080502723
+ 0.034057107068942653
+ 0.034059409113416858
+ 0.034061711213921118
+ 0.034064013370451049
+ 0.034066315583002438
+ 0.034068617851571018
+ 0.034070920176152326
+ 0.034073222556742257
+ 0.034075524993336416
+ 0.03407782748593053
+ 0.034080130034520359
+ 0.034082432639101552
+ 0.034084735299669815
+ 0.034087038016220837
+ 0.034089340788750436
+ 0.034091643617254155
+ 0.034093946501727881
+ 0.034096249442167235
+ 0.034098552438567915
+ 0.034100855490925647
+ 0.034103158599236169
+ 0.034105461763495118
+ 0.034107764983698309
+ 0.034110068259841413
+ 0.034112371591920092
+ 0.034114674979930162
+ 0.034116978423867211
+ 0.034119281923727068
+ 0.034121585479505362
+ 0.034123889091197852
+ 0.034126192758800279
+ 0.03412849648230832
+ 0.034130800261717692
+ 0.034133104097024095
+ 0.034135407988223287
+ 0.034137711935310969
+ 0.034140015938282864
+ 0.034142319997134622
+ 0.034144624111862115
+ 0.03414692828246086
+ 0.03414923250892677
+ 0.034151536791255432
+ 0.034153841129442641
+ 0.034156145523484033
+ 0.03415844997337545
+ 0.034160754479112473
+ 0.034163059040690953
+ 0.034165363658106587
+ 0.034167668331354949
+ 0.034169973060431943
+ 0.034172277845333242
+ 0.034174582686054528
+ 0.034176887582591561
+ 0.034179192534940062
+ 0.034181497543095733
+ 0.034183802607054281
+ 0.034186107726811507
+ 0.034188412902363095
+ 0.034190718133704695
+ 0.034193023420832178
+ 0.034195328763741137
+ 0.034197634162427402
+ 0.034199939616886645
+ 0.034202245127114637
+ 0.03420455069310703
+ 0.034206856314859611
+ 0.034209161992368106
+ 0.03421146772562824
+ 0.034213773514635698
+ 0.034216079359386267
+ 0.034218385259875639
+ 0.034220691216099622
+ 0.034222997228053859
+ 0.034225303295734054
+ 0.034227609419136065
+ 0.034229915598255535
+ 0.03423222183308814
+ 0.03423452812362978
+ 0.034236834469876097
+ 0.034239140871822768
+ 0.034241447329465616
+ 0.034243753842800338
+ 0.034246060411822654
+ 0.034248367036528338
+ 0.034250673716913121
+ 0.034252980452972683
+ 0.03425528724470283
+ 0.034257594092099226
+ 0.034259900995157681
+ 0.034262207953873927
+ 0.034264514968243648
+ 0.034266822038262611
+ 0.034269129163926527
+ 0.034271436345231214
+ 0.034273743582172354
+ 0.034276050874745632
+ 0.034278358222946906
+ 0.034280665626771858
+ 0.034282973086216161
+ 0.034285280601275649
+ 0.034287588171946125
+ 0.034289895798223127
+ 0.034292203480102604
+ 0.034294511217580162
+ 0.034296819010651604
+ 0.034299126859312655
+ 0.034301434763559027
+ 0.034303742723386536
+ 0.034306050738790908
+ 0.034308358809767847
+ 0.034310666936313093
+ 0.034312975118422469
+ 0.034315283356091603
+ 0.034317591649316401
+ 0.034319899998092436
+ 0.034322208402415594
+ 0.034324516862281607
+ 0.034326825377686068
+ 0.034329133948624899
+ 0.034331442575093789
+ 0.034333751257088513
+ 0.03433605999460472
+ 0.034338368787638303
+ 0.034340677636184889
+ 0.034342986540240317
+ 0.034345295499800303
+ 0.034347604514860595
+ 0.034349913585416954
+ 0.034352222711465159
+ 0.034354531893000875
+ 0.03435684113001989
+ 0.034359150422518019
+ 0.03436145977049098
+ 0.034363769173934487
+ 0.034366078632844334
+ 0.034368388147216253
+ 0.034370697717046032
+ 0.03437300734232946
+ 0.03437531702306218
+ 0.034377626759240006
+ 0.034379936550858733
+ 0.034382246397914026
+ 0.034384556300401735
+ 0.034386866258317557
+ 0.034389176271657336
+ 0.034391486340416728
+ 0.034393796464591488
+ 0.034396106644177478
+ 0.034398416879170404
+ 0.034400727169565985
+ 0.03440303751536003
+ 0.034405347916548298
+ 0.034407658373126496
+ 0.034409968885090528
+ 0.034412279452435912
+ 0.034414590075158694
+ 0.034416900753254369
+ 0.034419211486718899
+ 0.034421522275547976
+ 0.03442383311973736
+ 0.034426144019282796
+ 0.034428454974180067
+ 0.034430765984424995
+ 0.034433077050013278
+ 0.034435388170940683
+ 0.034437699347202914
+ 0.034440010578795865
+ 0.034442321865715296
+ 0.034444633207956883
+ 0.034446944605516457
+ 0.034449256058389728
+ 0.034451567566572493
+ 0.034453879130060573
+ 0.034456190748849688
+ 0.034458502422935591
+ 0.034460814152314126
+ 0.034463125936980941
+ 0.034465437776931944
+ 0.034467749672162797
+ 0.034470061622669267
+ 0.034472373628447267
+ 0.034474685689492413
+ 0.034476997805800567
+ 0.034479309977367478
+ 0.034481622204188871
+ 0.034483934486260526
+ 0.034486246823578377
+ 0.034488559216137984
+ 0.034490871663935205
+ 0.034493184166965826
+ 0.034495496725225637
+ 0.034497809338710377
+ 0.034500122007415909
+ 0.034502434731337857
+ 0.034504747510472153
+ 0.034507060344814419
+ 0.034509373234360534
+ 0.034511686179106278
+ 0.034513999179047405
+ 0.034516312234179759
+ 0.03451862534449894
+ 0.034520938510000938
+ 0.034523251730681402
+ 0.034525565006536141
+ 0.034527878337560942
+ 0.03453019172375163
+ 0.034532505165103929
+ 0.034534818661613648
+ 0.03453713221327652
+ 0.034539445820088388
+ 0.034541759482045034
+ 0.034544073199142204
+ 0.034546386971375721
+ 0.034548700798741262
+ 0.034551014681234768
+ 0.034553328618851929
+ 0.034555642611588562
+ 0.034557956659440482
+ 0.034560270762403388
+ 0.034562584920473115
+ 0.034564899133645452
+ 0.034567213401916194
+ 0.034569527725281123
+ 0.034571842103736004
+ 0.034574156537276718
+ 0.034576471025898899
+ 0.034578785569598439
+ 0.034581100168371091
+ 0.034583414822212687
+ 0.03458572953111895
+ 0.034588044295085739
+ 0.034590359114108842
+ 0.034592673988183963
+ 0.034594988917306994
+ 0.034597303901473656
+ 0.034599618940679817
+ 0.034601934034921213
+ 0.03460424918419365
+ 0.034606564388492876
+ 0.034608879647814783
+ 0.03461119496215511
+ 0.034613510331509653
+ 0.034615825755874213
+ 0.034618141235244579
+ 0.034620456769616503
+ 0.034622772358985872
+ 0.034625088003348452
+ 0.034627403702700024
+ 0.034629719457036322
+ 0.034632035266353327
+ 0.034634351130646654
+ 0.034636667049912133
+ 0.034638983024145628
+ 0.034641299053342928
+ 0.03464361513749982
+ 0.034645931276612037
+ 0.034648247470675513
+ 0.034650563719685896
+ 0.034652880023639109
+ 0.034655196382530964
+ 0.034657512796357169
+ 0.034659829265113566
+ 0.034662145788795916
+ 0.034664462367400103
+ 0.034666779000921917
+ 0.034669095689357082
+ 0.034671412432701519
+ 0.034673729230950925
+ 0.034676046084101179
+ 0.03467836299214809
+ 0.034680679955087376
+ 0.03468299697291493
+ 0.034685314045626532
+ 0.034687631173217992
+ 0.034689948355685084
+ 0.034692265593023693
+ 0.034694582885229523
+ 0.034696900232298454
+ 0.034699217634226273
+ 0.034701535091008824
+ 0.034703852602641833
+ 0.034706170169121191
+ 0.034708487790442749
+ 0.03471080546660215
+ 0.034713123197595411
+ 0.034715440983418111
+ 0.034717758824066261
+ 0.034720076719535649
+ 0.034722394669821979
+ 0.034724712674921117
+ 0.03472703073482894
+ 0.034729348849541181
+ 0.034731667019053669
+ 0.034733985243362221
+ 0.034736303522462708
+ 0.034738621856350863
+ 0.034740940245022514
+ 0.034743258688473527
+ 0.034745577186699725
+ 0.034747895739696874
+ 0.034750214347460742
+ 0.034752533009987263
+ 0.034754851727272218
+ 0.034757170499311409
+ 0.034759489326100713
+ 0.034761808207635816
+ 0.034764127143912665
+ 0.034766446134926993
+ 0.034768765180674704
+ 0.034771084281151568
+ 0.034773403436353406
+ 0.034775722646276021
+ 0.034778041910915304
+ 0.034780361230267016
+ 0.034782680604327001
+ 0.034785000033091075
+ 0.034787319516555081
+ 0.034789639054714813
+ 0.034791958647566124
+ 0.034794278295104827
+ 0.034796597997326706
+ 0.034798917754227637
+ 0.034801237565803458
+ 0.034803557432049978
+ 0.034805877352963005
+ 0.034808197328538383
+ 0.034810517358771907
+ 0.034812837443659456
+ 0.034815157583196865
+ 0.034817477777379903
+ 0.034819798026204392
+ 0.034822118329666238
+ 0.034824438687761208
+ 0.034826759100485195
+ 0.034829079567833959
+ 0.034831400089803316
+ 0.03483372066638922
+ 0.034836041297587397
+ 0.034838361983393719
+ 0.034840682723803959
+ 0.034843003518814045
+ 0.034845324368419729
+ 0.034847645272616912
+ 0.034849966231401353
+ 0.034852287244768958
+ 0.034854608312715495
+ 0.034856929435236855
+ 0.034859250612328897
+ 0.034861571843987305
+ 0.034863893130208101
+ 0.034866214470987027
+ 0.034868535866319959
+ 0.034870857316202666
+ 0.034873178820631068
+ 0.034875500379600938
+ 0.034877821993108155
+ 0.034880143661148562
+ 0.034882465383717982
+ 0.034884787160812225
+ 0.034887108992427189
+ 0.034889430878558669
+ 0.03489175281920253
+ 0.034894074814354616
+ 0.034896396864010734
+ 0.034898718968166792
+ 0.034901041126818536
+ 0.034903363339961906
+ 0.034905685607592711
+ 0.034908007929706775
+ 0.034910330306299933
+ 0.034912652737368051
+ 0.034914975222907013
+ 0.034917297762912629
+ 0.034919620357380679
+ 0.034921943006307118
+ 0.034924265709687777
+ 0.034926588467518394
+ 0.034928911279794916
+ 0.034931234146513182
+ 0.034933557067669006
+ 0.034935880043258302
+ 0.034938203073276816
+ 0.034940526157720489
+ 0.034942849296585088
+ 0.034945172489866581
+ 0.03494749573756066
+ 0.034949819039663307
+ 0.034952142396170338
+ 0.034954465807077603
+ 0.034956789272380891
+ 0.034959112792076183
+ 0.034961436366159164
+ 0.034963759994625823
+ 0.034966083677471976
+ 0.034968407414693509
+ 0.034970731206286167
+ 0.03497305505224594
+ 0.034975378952568532
+ 0.034977702907249941
+ 0.034980026916285954
+ 0.034982350979672422
+ 0.034984675097405299
+ 0.034986999269480262
+ 0.034989323495893301
+ 0.034991647776640239
+ 0.034993972111716912
+ 0.034996296501119205
+ 0.034998620944843004
+ 0.035000945442884082
+ 0.035003269995238437
+ 0.035005594601901793
+ 0.035007919262870058
+ 0.035010243978139136
+ 0.035012568747704788
+ 0.03501489357156299
+ 0.035017218449709481
+ 0.035019543382140271
+ 0.035021868368851086
+ 0.035024193409837867
+ 0.03502651850509645
+ 0.035028843654622721
+ 0.035031168858412502
+ 0.035033494116461686
+ 0.035035819428766171
+ 0.035038144795321767
+ 0.035040470216124338
+ 0.035042795691169852
+ 0.035045121220454015
+ 0.035047446803972822
+ 0.035049772441722041
+ 0.03505209813369764
+ 0.035054423879895401
+ 0.035056749680311264
+ 0.035059075534941038
+ 0.035061401443780636
+ 0.035063727406825888
+ 0.035066053424072721
+ 0.03506837949551693
+ 0.035070705621154441
+ 0.035073031800981126
+ 0.035075358034992801
+ 0.0350776843231854
+ 0.035080010665554787
+ 0.035082337062096826
+ 0.035084663512807361
+ 0.035086990017682257
+ 0.035089316576717496
+ 0.03509164318990881
+ 0.035093969857252202
+ 0.035096296578743448
+ 0.035098623354378453
+ 0.035100950184153164
+ 0.035103277068063272
+ 0.035105604006104865
+ 0.035107930998273716
+ 0.035110258044565731
+ 0.035112585144976727
+ 0.035114912299502664
+ 0.0351172395081394
+ 0.035119566770882814
+ 0.0351218940877287
+ 0.035124221458673013
+ 0.035126548883711653
+ 0.03512887636284049
+ 0.035131203896055396
+ 0.035133531483352201
+ 0.035135859124726894
+ 0.035138186820175235
+ 0.035140514569693249
+ 0.035142842373276667
+ 0.035145170230921424
+ 0.035147498142623509
+ 0.035149826108378669
+ 0.035152154128182816
+ 0.03515448220203192
+ 0.035156810329921746
+ 0.035159138511848265
+ 0.035161466747807332
+ 0.035163795037794821
+ 0.035166123381806656
+ 0.035168451779838676
+ 0.035170780231886807
+ 0.035173108737946941
+ 0.035175437298014922
+ 0.035177765912086739
+ 0.035180094580158125
+ 0.035182423302225062
+ 0.035184752078283477
+ 0.035187080908329241
+ 0.035189409792358156
+ 0.035191738730366205
+ 0.035194067722349238
+ 0.035196396768303169
+ 0.035198725868223861
+ 0.035201055022107242
+ 0.035203384229949196
+ 0.035205713491745561
+ 0.035208042807492353
+ 0.035210372177185374
+ 0.035212701600820517
+ 0.035215031078393702
+ 0.035217360609900841
+ 0.035219690195337786
+ 0.035222019834700455
+ 0.03522434952798472
+ 0.035226679275186523
+ 0.035229009076301762
+ 0.035231338931326329
+ 0.035233668840256055
+ 0.035235998803086935
+ 0.035238328819814833
+ 0.035240658890435608
+ 0.03524298901494527
+ 0.035245319193339522
+ 0.035247649425614452
+ 0.035249979711765883
+ 0.035252310051789734
+ 0.035254640445681849
+ 0.035256970893438218
+ 0.035259301395054732
+ 0.035261631950527166
+ 0.035263962559851647
+ 0.035266293223023867
+ 0.035268623940039892
+ 0.035270954710895523
+ 0.035273285535586688
+ 0.035275616414109284
+ 0.035277947346459233
+ 0.035280278332632475
+ 0.03528260937262484
+ 0.035284940466432317
+ 0.035287271614050701
+ 0.03528960281547603
+ 0.035291934070704127
+ 0.035294265379730932
+ 0.035296596742552366
+ 0.035298928159164335
+ 0.035301259629562688
+ 0.035303591153743437
+ 0.035305922731702355
+ 0.035308254363435494
+ 0.035310586048938719
+ 0.03531291778820788
+ 0.035315249581238911
+ 0.035317581428027774
+ 0.035319913328570401
+ 0.035322245282862673
+ 0.035324577290900425
+ 0.035326909352679667
+ 0.035329241468196299
+ 0.035331573637446212
+ 0.035333905860425313
+ 0.035336238137129543
+ 0.035338570467554814
+ 0.035340902851697067
+ 0.035343235289552119
+ 0.035345567781116013
+ 0.035347900326384581
+ 0.035350232925353761
+ 0.035352565578019489
+ 0.035354898284377684
+ 0.035357231044424266
+ 0.035359563858155169
+ 0.035361896725566229
+ 0.035364229646653443
+ 0.035366562621412717
+ 0.035368895649839964
+ 0.035371228731931138
+ 0.035373561867682118
+ 0.035375895057088859
+ 0.035378228300147238
+ 0.035380561596853231
+ 0.035382894947202641
+ 0.035385228351191629
+ 0.035387561808815887
+ 0.03538989532007146
+ 0.035392228884954267
+ 0.035394562503460181
+ 0.035396896175585134
+ 0.035399229901325074
+ 0.03540156368067595
+ 0.035403897513633674
+ 0.035406231400194173
+ 0.035408565340353304
+ 0.03541089933410714
+ 0.035413233381451491
+ 0.035415567482382275
+ 0.035417901636895524
+ 0.035420235844987109
+ 0.03542257010665293
+ 0.035424904421888982
+ 0.035427238790691172
+ 0.03542957321305544
+ 0.035431907688977693
+ 0.035434242218453864
+ 0.035436576801479887
+ 0.035438911438051675
+ 0.03544124612816521
+ 0.035443580871816399
+ 0.035445915669001203
+ 0.035448250519715493
+ 0.035450585423955294
+ 0.035452920381716449
+ 0.035455255392994933
+ 0.035457590457786743
+ 0.035459925576087695
+ 0.035462260747893805
+ 0.03546459597320098
+ 0.035466931252005215
+ 0.035469266584302384
+ 0.035471601970088459
+ 0.0354739374093593
+ 0.035476272902110993
+ 0.03547860844833934
+ 0.03548094404804035
+ 0.035483279701209999
+ 0.035485615407844139
+ 0.035487951167938764
+ 0.035490286981489753
+ 0.035492622848493117
+ 0.035494958768944825
+ 0.035497294742840725
+ 0.035499630770176864
+ 0.035501966850949078
+ 0.035504302985153377
+ 0.035506639172785716
+ 0.03550897541384198
+ 0.035511311708318172
+ 0.03551364805621017
+ 0.035515984457514034
+ 0.035518320912225572
+ 0.035520657420340877
+ 0.035522993981855745
+ 0.035525330596766255
+ 0.035527667265068279
+ 0.035530003986757798
+ 0.035532340761830733
+ 0.03553467759028299
+ 0.035537014472110627
+ 0.035539351407309558
+ 0.03554168839587573
+ 0.035544025437804994
+ 0.035546362533093512
+ 0.035548699681736996
+ 0.035551036883731596
+ 0.035553374139073148
+ 0.035555711447757647
+ 0.035558048809781008
+ 0.035560386225139275
+ 0.035562723693828263
+ 0.035565061215844067
+ 0.035567398791182529
+ 0.035569736419839716
+ 0.03557207410181145
+ 0.03557441183709377
+ 0.035576749625682719
+ 0.03557908746757403
+ 0.035581425362763826
+ 0.03558376331124808
+ 0.035586101313022582
+ 0.035588439368083508
+ 0.035590777476426617
+ 0.035593115638048019
+ 0.035595453852943645
+ 0.035597792121109341
+ 0.035600130442541171
+ 0.035602468817235139
+ 0.035604807245187095
+ 0.035607145726393112
+ 0.035609484260848964
+ 0.035611822848550856
+ 0.035614161489494582
+ 0.035616500183676153
+ 0.035618838931091537
+ 0.035621177731736675
+ 0.035623516585607577
+ 0.03562585549270017
+ 0.035628194453010471
+ 0.035630533466534331
+ 0.035632872533267884
+ 0.035635211653206954
+ 0.035637550826347508
+ 0.035639890052685627
+ 0.035642229332217244
+ 0.035644568664938203
+ 0.035646908050844639
+ 0.035649247489932409
+ 0.035651586982197482
+ 0.03565392652763593
+ 0.035656266126243633
+ 0.035658605778016592
+ 0.035660945482950783
+ 0.035663285241042147
+ 0.035665625052286654
+ 0.035667964916680353
+ 0.035670304834219083
+ 0.035672644804898908
+ 0.03567498482871586
+ 0.035677324905665754
+ 0.035679665035744719
+ 0.035682005218948612
+ 0.035684345455273457
+ 0.03568668574471516
+ 0.035689026087269857
+ 0.035691366482933425
+ 0.035693706931701812
+ 0.035696047433571007
+ 0.035698387988537084
+ 0.035700728596595857
+ 0.035703069257743414
+ 0.03570540997197573
+ 0.035707750739288738
+ 0.035710091559678407
+ 0.03571243243314081
+ 0.035714773359671867
+ 0.035717114339267553
+ 0.035719455371923822
+ 0.03572179645763672
+ 0.03572413759640216
+ 0.035726478788216193
+ 0.035728820033074739
+ 0.035731161330973815
+ 0.035733502681909383
+ 0.035735844085877468
+ 0.035738185542874078
+ 0.035740527052895044
+ 0.035742868615936479
+ 0.035745210231994361
+ 0.035747551901064663
+ 0.03574989362314332
+ 0.03575223539822641
+ 0.035754577226309828
+ 0.035756919107389665
+ 0.035759261041461841
+ 0.035761603028522264
+ 0.035763945068567074
+ 0.035766287161592192
+ 0.035768629307593593
+ 0.035770971506567301
+ 0.035773313758509277
+ 0.035775656063415547
+ 0.035777998421282042
+ 0.035780340832104809
+ 0.035782683295879775
+ 0.035785025812602997
+ 0.035787368382270486
+ 0.035789711004878134
+ 0.035792053680422035
+ 0.035794396408898081
+ 0.0357967391903024
+ 0.035799082024630904
+ 0.035801424911879529
+ 0.035803767852044352
+ 0.035806110845121385
+ 0.03580845389110654
+ 0.035810796989995966
+ 0.035813140141785507
+ 0.035815483346471166
+ 0.035817826604048961
+ 0.035820169914515018
+ 0.035822513277865196
+ 0.035824856694095498
+ 0.035827200163201969
+ 0.035829543685180563
+ 0.035831887260027367
+ 0.035834230887738266
+ 0.035836574568309354
+ 0.035838918301736619
+ 0.035841262088015996
+ 0.035843605927143557
+ 0.035845949819115278
+ 0.035848293763927105
+ 0.035850637761575169
+ 0.035852981812055373
+ 0.035855325915363792
+ 0.035857670071496303
+ 0.035860014280449021
+ 0.03586235854221799
+ 0.035864702856799074
+ 0.035867047224188403
+ 0.035869391644381944
+ 0.035871736117375638
+ 0.035874080643165593
+ 0.035876425221747756
+ 0.03587876985311815
+ 0.035881114537272815
+ 0.035883459274207739
+ 0.035885804063918843
+ 0.035888148906402219
+ 0.035890493801653982
+ 0.035892838749669954
+ 0.035895183750446223
+ 0.035897528803978854
+ 0.035899873910263745
+ 0.035902219069296963
+ 0.035904564281074622
+ 0.035906909545592544
+ 0.035909254862846851
+ 0.03591160023283356
+ 0.035913945655548701
+ 0.035916291130988237
+ 0.035918636659148177
+ 0.035920982240024546
+ 0.035923327873613409
+ 0.035925673559910692
+ 0.035928019298912511
+ 0.035930365090614869
+ 0.03593271093501367
+ 0.035935056832105079
+ 0.035937402781885029
+ 0.035939748784349509
+ 0.035942094839494669
+ 0.035944440947316358
+ 0.035946787107810768
+ 0.035949133320973749
+ 0.035951479586801512
+ 0.035953825905289873
+ 0.035956172276435015
+ 0.035958518700232825
+ 0.035960865176679443
+ 0.035963211705770839
+ 0.035965558287503009
+ 0.035967904921872053
+ 0.035970251608873939
+ 0.035972598348504664
+ 0.035974945140760321
+ 0.035977291985636872
+ 0.035979638883130445
+ 0.035981985833236932
+ 0.035984332835952454
+ 0.035986679891272966
+ 0.035989026999194547
+ 0.035991374159713214
+ 0.03599372137282502
+ 0.035996068638525947
+ 0.035998415956812031
+ 0.036000763327679271
+ 0.036003110751123828
+ 0.036005458227141532
+ 0.036007805755728574
+ 0.036010153336880943
+ 0.036012500970594642
+ 0.036014848656865675
+ 0.036017196395690149
+ 0.036019544187064129
+ 0.036021892030983445
+ 0.036024239927444357
+ 0.036026587876442813
+ 0.036028935877974802
+ 0.036031283932036431
+ 0.036033632038623642
+ 0.036035980197732562
+ 0.036038328409359235
+ 0.036040676673499562
+ 0.036043024990149712
+ 0.03604537335930573
+ 0.036047721780963514
+ 0.036050070255119263
+ 0.036052418781768909
+ 0.036054767360908513
+ 0.036057115992534201
+ 0.036059464676641818
+ 0.036061813413227568
+ 0.036064162202287496
+ 0.036066511043817515
+ 0.036068859937813759
+ 0.036071208884272232
+ 0.03607355788318907
+ 0.036075906934560122
+ 0.036078256038381641
+ 0.036080605194649548
+ 0.036082954403359867
+ 0.036085303664508711
+ 0.036087652978092119
+ 0.036090002344106101
+ 0.03609235176254668
+ 0.03609470123341
+ 0.036097050756691958
+ 0.036099400332388752
+ 0.036101749960496331
+ 0.036104099641010801
+ 0.036106449373928172
+ 0.036108799159244497
+ 0.036111148996955798
+ 0.036113498887058129
+ 0.036115848829547589
+ 0.036118198824420224
+ 0.036120548871672008
+ 0.03612289897129909
+ 0.036125249123297426
+ 0.036127599327663143
+ 0.036129949584392224
+ 0.036132299893480775
+ 0.036134650254924842
+ 0.03613700066872047
+ 0.036139351134863697
+ 0.036141701653350532
+ 0.036144052224177124
+ 0.036146402847339484
+ 0.036148753522833671
+ 0.036151104250655736
+ 0.036153455030801723
+ 0.036155805863267713
+ 0.036158156748049737
+ 0.036160507685143874
+ 0.036162858674546092
+ 0.036165209716252623
+ 0.036167560810259403
+ 0.03616991195656246
+ 0.036172263155157959
+ 0.036174614406041881
+ 0.036176965709210293
+ 0.036179317064659273
+ 0.036181668472384881
+ 0.036184019932383175
+ 0.036186371444650214
+ 0.03618872300918205
+ 0.036191074625974769
+ 0.036193426295024443
+ 0.036195778016327049
+ 0.036198129789878741
+ 0.036200481615675559
+ 0.036202833493713553
+ 0.036205185423988748
+ 0.036207537406497313
+ 0.036209889441235245
+ 0.036212241528198616
+ 0.036214593667383436
+ 0.03621694585878589
+ 0.036219298102402028
+ 0.036221650398227757
+ 0.03622400274625933
+ 0.03622635514649275
+ 0.036228707598924048
+ 0.03623106010354929
+ 0.036233412660364665
+ 0.036235765269366046
+ 0.036238117930549686
+ 0.036240470643911588
+ 0.036242823409447802
+ 0.036245176227154369
+ 0.036247529097027442
+ 0.036249882019063082
+ 0.036252234993257249
+ 0.036254588019606154
+ 0.036256941098105837
+ 0.036259294228752251
+ 0.03626164741154167
+ 0.036264000646470063
+ 0.036266353933533432
+ 0.036268707272728004
+ 0.03627106066404974
+ 0.036273414107494746
+ 0.036275767603059117
+ 0.036278121150738953
+ 0.036280474750530284
+ 0.036282828402429176
+ 0.036285182106431731
+ 0.036287535862534005
+ 0.036289889670732163
+ 0.036292243531022159
+ 0.036294597443400203
+ 0.036296951407862231
+ 0.036299305424404432
+ 0.036301659493022859
+ 0.036304013613713604
+ 0.036306367786472699
+ 0.036308722011296264
+ 0.036311076288180352
+ 0.036313430617121084
+ 0.036315784998114546
+ 0.036318139431156825
+ 0.03632049391624393
+ 0.036322848453371998
+ 0.036325203042537155
+ 0.036327557683735454
+ 0.036329912376962918
+ 0.036332267122215725
+ 0.036334621919489898
+ 0.036336976768781573
+ 0.036339331670086829
+ 0.036341686623401655
+ 0.03634404162872229
+ 0.036346396686044773
+ 0.03634875179536514
+ 0.036351106956679501
+ 0.036353462169984002
+ 0.036355817435274614
+ 0.036358172752547609
+ 0.0363605281217989
+ 0.036362883543024679
+ 0.036365239016221004
+ 0.036367594541383927
+ 0.036369950118509645
+ 0.036372305747594182
+ 0.03637466142863361
+ 0.036377017161624059
+ 0.036379372946561628
+ 0.036381728783442417
+ 0.036384084672262521
+ 0.036386440613017955
+ 0.036388796605704953
+ 0.036391152650319461
+ 0.03639350874685772
+ 0.03639586489531571
+ 0.03639822109568959
+ 0.036400577347975437
+ 0.036402933652169393
+ 0.036405290008267512
+ 0.036407646416265899
+ 0.036410002876160634
+ 0.036412359387947853
+ 0.036414715951623655
+ 0.036417072567184128
+ 0.036419429234625308
+ 0.036421785953943443
+ 0.036424142725134522
+ 0.036426499548194706
+ 0.036428856423120042
+ 0.036431213349906663
+ 0.036433570328550685
+ 0.036435927359048159
+ 0.036438284441395276
+ 0.036440641575588045
+ 0.036442998761622679
+ 0.036445355999495138
+ 0.036447713289201739
+ 0.036450070630738372
+ 0.036452428024101272
+ 0.036454785469286433
+ 0.036457142966290143
+ 0.036459500515108337
+ 0.036461858115737211
+ 0.036464215768172874
+ 0.036466573472411425
+ 0.036468931228448902
+ 0.03647128903628153
+ 0.03647364689590539
+ 0.036476004807316491
+ 0.036478362770511058
+ 0.03648072078548522
+ 0.036483078852234993
+ 0.036485436970756513
+ 0.036487795141045928
+ 0.036490153363099347
+ 0.036492511636912861
+ 0.036494869962482614
+ 0.036497228339804712
+ 0.036499586768875228
+ 0.036501945249690346
+ 0.036504303782246131
+ 0.036506662366538697
+ 0.036509021002564201
+ 0.036511379690318757
+ 0.036513738429798409
+ 0.036516097220999313
+ 0.036518456063917702
+ 0.03652081495854953
+ 0.036523173904890981
+ 0.036525532902938189
+ 0.036527891952687255
+ 0.036530251054134329
+ 0.036532610207275454
+ 0.036534969412106842
+ 0.036537328668624552
+ 0.036539687976824727
+ 0.036542047336703506
+ 0.036544406748257034
+ 0.036546766211481403
+ 0.036549125726372637
+ 0.036551485292927031
+ 0.036553844911140623
+ 0.036556204581009541
+ 0.036558564302529878
+ 0.036560924075697859
+ 0.036563283900509572
+ 0.036565643776961081
+ 0.036568003705048528
+ 0.036570363684768077
+ 0.036572723716115911
+ 0.036575083799088026
+ 0.036577443933680606
+ 0.036579804119889835
+ 0.036582164357711729
+ 0.036584524647142576
+ 0.036586884988178366
+ 0.036589245380815295
+ 0.036591605825049438
+ 0.036593966320877004
+ 0.036596326868294116
+ 0.036598687467296782
+ 0.036601048117881306
+ 0.036603408820043738
+ 0.036605769573780235
+ 0.036608130379086889
+ 0.036610491235959844
+ 0.036612852144395303
+ 0.03661521310438931
+ 0.036617574115938023
+ 0.03661993517903761
+ 0.036622296293684173
+ 0.036624657459873929
+ 0.036627018677602902
+ 0.036629379946867317
+ 0.036631741267663213
+ 0.03663410263998685
+ 0.036636464063834293
+ 0.036638825539201697
+ 0.036641187066085157
+ 0.036643548644480925
+ 0.036645910274385025
+ 0.03664827195579367
+ 0.036650633688702965
+ 0.036652995473109032
+ 0.036655357309008076
+ 0.036657719196396245
+ 0.036660081135269605
+ 0.036662443125624368
+ 0.036664805167456606
+ 0.036667167260762489
+ 0.036669529405538227
+ 0.036671891601779957
+ 0.036674253849483647
+ 0.036676616148645709
+ 0.036678978499262112
+ 0.036681340901329039
+ 0.036683703354842612
+ 0.036686065859799083
+ 0.036688428416194484
+ 0.036690791024025095
+ 0.036693153683286898
+ 0.036695516393976155
+ 0.036697879156088985
+ 0.036700241969621537
+ 0.036702604834569927
+ 0.036704967750930365
+ 0.036707330718698972
+ 0.036709693737871911
+ 0.036712056808445297
+ 0.036714419930415382
+ 0.036716783103778176
+ 0.036719146328529947
+ 0.036721509604666795
+ 0.03672387293218491
+ 0.036726236311080393
+ 0.036728599741349441
+ 0.036730963222988189
+ 0.036733326755992862
+ 0.036735690340359471
+ 0.036738053976084289
+ 0.036740417663163411
+ 0.036742781401593101
+ 0.036745145191369379
+ 0.036747509032488447
+ 0.036749872924946511
+ 0.036752236868739664
+ 0.036754600863864152
+ 0.036756964910316048
+ 0.036759329008091556
+ 0.036761693157186824
+ 0.03676405735759803
+ 0.036766421609321261
+ 0.036768785912352817
+ 0.036771150266688715
+ 0.036773514672325265
+ 0.036775879129258532
+ 0.036778243637484664
+ 0.036780608196999881
+ 0.036782972807800268
+ 0.036785337469882121
+ 0.03678770218324149
+ 0.036790066947874546
+ 0.036792431763777542
+ 0.036794796630946557
+ 0.036797161549377851
+ 0.036799526519067489
+ 0.036801891540011698
+ 0.036804256612206619
+ 0.036806621735648491
+ 0.036808986910333359
+ 0.036811352136257455
+ 0.036813717413416935
+ 0.036816082741808025
+ 0.036818448121426865
+ 0.036820813552269613
+ 0.036823179034332416
+ 0.036825544567611487
+ 0.036827910152102961
+ 0.036830275787803117
+ 0.036832641474707974
+ 0.036835007212813797
+ 0.036837373002116695
+ 0.036839738842612907
+ 0.036842104734298588
+ 0.036844470677169922
+ 0.036846836671223071
+ 0.036849202716454248
+ 0.036851568812859552
+ 0.036853934960435215
+ 0.036856301159177388
+ 0.0368586674090823
+ 0.036861033710146034
+ 0.036863400062364861
+ 0.036865766465734945
+ 0.036868132920252344
+ 0.036870499425913431
+ 0.03687286598271429
+ 0.036875232590651105
+ 0.036877599249719992
+ 0.036879965959917271
+ 0.036882332721239058
+ 0.036884699533681481
+ 0.036887066397240764
+ 0.036889433311913127
+ 0.03689180027769464
+ 0.036894167294581677
+ 0.036896534362570219
+ 0.036898901481656608
+ 0.036901268651836898
+ 0.036903635873107389
+ 0.036906003145464203
+ 0.036908370468903551
+ 0.036910737843421637
+ 0.036913105269014576
+ 0.036915472745678586
+ 0.036917840273409892
+ 0.036920207852204616
+ 0.036922575482059079
+ 0.036924943162969313
+ 0.036927310894931634
+ 0.036929678677942092
+ 0.036932046511997024
+ 0.036934414397092517
+ 0.036936782333224775
+ 0.036939150320390066
+ 0.03694151835858453
+ 0.036943886447804324
+ 0.036946254588045735
+ 0.036948622779304885
+ 0.036950991021577971
+ 0.036953359314861149
+ 0.036955727659150714
+ 0.036958096054442759
+ 0.036960464500733564
+ 0.036962832998019272
+ 0.036965201546296095
+ 0.036967570145560284
+ 0.0369699387958079
+ 0.03697230749703527
+ 0.036974676249238524
+ 0.0369770450524139
+ 0.036979413906557609
+ 0.036981782811665746
+ 0.036984151767734584
+ 0.036986520774760397
+ 0.036988889832739243
+ 0.036991258941667431
+ 0.036993628101541089
+ 0.03699599731235647
+ 0.036998366574109737
+ 0.037000735886797143
+ 0.037003105250414781
+ 0.037005474664958987
+ 0.037007844130425953
+ 0.037010213646811778
+ 0.037012583214112736
+ 0.037014952832325032
+ 0.037017322501444856
+ 0.037019692221468392
+ 0.037022061992391955
+ 0.037024431814211604
+ 0.037026801686923606
+ 0.037029171610524214
+ 0.037031541585009577
+ 0.037033911610375926
+ 0.037036281686619502
+ 0.037038651813736417
+ 0.037041021991722947
+ 0.037043392220575372
+ 0.037045762500289764
+ 0.037048132830862383
+ 0.037050503212289497
+ 0.037052873644567191
+ 0.03705524412769183
+ 0.037057614661659528
+ 0.037059985246466538
+ 0.037062355882109072
+ 0.037064726568583312
+ 0.037067097305885546
+ 0.037069468094011848
+ 0.03707183893295854
+ 0.037074209822721874
+ 0.037076580763297999
+ 0.037078951754683113
+ 0.037081322796873435
+ 0.037083693889865182
+ 0.037086065033654698
+ 0.037088436228238
+ 0.037090807473611445
+ 0.037093178769771168
+ 0.037095550116713498
+ 0.03709792151443457
+ 0.037100292962930582
+ 0.037102664462197878
+ 0.037105036012232473
+ 0.037107407613030767
+ 0.037109779264588957
+ 0.0371121509669032
+ 0.037114522719969761
+ 0.037116894523784784
+ 0.037119266378344652
+ 0.037121638283645404
+ 0.037124010239683362
+ 0.037126382246454828
+ 0.037128754303955853
+ 0.037131126412182851
+ 0.037133498571131851
+ 0.037135870780799191
+ 0.037138243041181115
+ 0.037140615352273788
+ 0.037142987714073511
+ 0.037145360126576425
+ 0.037147732589778791
+ 0.037150105103676827
+ 0.037152477668266855
+ 0.037154850283544975
+ 0.037157222949507469
+ 0.037159595666150562
+ 0.037161968433470506
+ 0.037164341251463541
+ 0.037166714120125892
+ 0.037169087039453694
+ 0.037171460009443352
+ 0.037173833030090954
+ 0.037176206101392759
+ 0.037178579223345096
+ 0.037180952395944059
+ 0.037183325619186039
+ 0.037185698893067075
+ 0.037188072217583558
+ 0.037190445592731672
+ 0.037192819018507677
+ 0.037195192494907783
+ 0.037197566021928238
+ 0.037199939599565246
+ 0.037202313227815101
+ 0.037204686906674021
+ 0.037207060636138253
+ 0.03720943441620396
+ 0.037211808246867505
+ 0.037214182128125009
+ 0.037216556059972788
+ 0.037218930042407075
+ 0.037221304075424039
+ 0.037223678159020057
+ 0.037226052293191238
+ 0.037228426477933931
+ 0.037230800713244278
+ 0.037233174999118601
+ 0.037235549335553092
+ 0.037237923722544024
+ 0.037240298160087663
+ 0.037242672648180208
+ 0.037245047186817863
+ 0.037247421775997026
+ 0.037249796415713785
+ 0.037252171105964446
+ 0.037254545846745292
+ 0.037256920638052526
+ 0.037259295479882465
+ 0.037261670372231166
+ 0.037264045315095112
+ 0.037266420308470438
+ 0.037268795352353362
+ 0.037271170446740193
+ 0.037273545591627183
+ 0.037275920787010551
+ 0.037278296032886606
+ 0.037280671329251495
+ 0.037283046676101592
+ 0.037285422073432987
+ 0.037287797521242096
+ 0.037290173019525114
+ 0.037292548568278308
+ 0.03729492416749787
+ 0.037297299817180121
+ 0.037299675517321253
+ 0.037302051267917621
+ 0.037304427068965355
+ 0.037306802920460798
+ 0.037309178822400209
+ 0.03731155477477982
+ 0.037313930777595893
+ 0.03731630683084463
+ 0.037318682934522375
+ 0.03732105908862534
+ 0.037323435293149791
+ 0.037325811548091982
+ 0.037328187853448193
+ 0.037330564209214691
+ 0.037332940615387715
+ 0.037335317071963525
+ 0.037337693578938382
+ 0.037340070136308551
+ 0.037342446744070244
+ 0.037344823402219826
+ 0.037347200110753521
+ 0.037349576869667597
+ 0.037351953678958251
+ 0.037354330538621826
+ 0.03735670744865454
+ 0.037359084409052667
+ 0.037361461419812572
+ 0.037363838480930292
+ 0.037366215592402351
+ 0.037368592754224779
+ 0.037370969966394066
+ 0.037373347228906298
+ 0.037375724541757908
+ 0.037378101904944991
+ 0.037380479318463937
+ 0.037382856782311034
+ 0.037385234296482384
+ 0.037387611860974453
+ 0.037389989475783425
+ 0.037392367140905533
+ 0.037394744856337092
+ 0.03739712262207439
+ 0.0373995004381137
+ 0.037401878304451235
+ 0.037404256221083371
+ 0.037406634188006216
+ 0.037409012205216287
+ 0.037411390272709635
+ 0.037413768390482584
+ 0.037416146558531489
+ 0.03741852477685257
+ 0.037420903045442114
+ 0.037423281364296415
+ 0.037425659733411699
+ 0.037428038152784324
+ 0.037430416622410437
+ 0.037432795142286465
+ 0.037435173712408634
+ 0.037437552332773162
+ 0.037439931003376406
+ 0.037442309724214612
+ 0.037444688495284012
+ 0.03744706731658097
+ 0.037449446188101754
+ 0.037451825109842574
+ 0.037454204081799822
+ 0.037456583103969675
+ 0.037458962176348476
+ 0.037461341298932534
+ 0.037463720471718066
+ 0.037466099694701403
+ 0.037468478967878756
+ 0.037470858291246481
+ 0.037473237664800853
+ 0.037475617088538159
+ 0.03747799656245468
+ 0.037480376086546675
+ 0.037482755660810455
+ 0.037485135285242333
+ 0.037487514959838528
+ 0.037489894684595432
+ 0.037492274459509194
+ 0.037494654284576212
+ 0.037497034159792796
+ 0.037499414085155079
+ 0.037501794060659517
+ 0.037504174086302321
+ 0.037506554162079889
+ 0.037508934287988301
+ 0.037511314464024031
+ 0.037513694690183272
+ 0.037516074966462427
+ 0.03751845529285764
+ 0.037520835669365364
+ 0.037523216095981769
+ 0.037525596572703171
+ 0.037527977099525926
+ 0.037530357676446302
+ 0.037532738303460475
+ 0.037535118980564962
+ 0.037537499707755877
+ 0.037539880485029625
+ 0.037542261312382488
+ 0.037544642189810684
+ 0.037547023117310584
+ 0.037549404094878447
+ 0.037551785122510624
+ 0.037554166200203423
+ 0.037556547327953035
+ 0.03755892850575588
+ 0.037561309733608182
+ 0.037563691011506264
+ 0.037566072339446414
+ 0.037568453717425003
+ 0.03757083514543829
+ 0.037573216623482515
+ 0.037575598151554084
+ 0.037577979729649214
+ 0.037580361357764283
+ 0.037582743035895545
+ 0.037585124764039315
+ 0.037587506542191958
+ 0.03758988837034969
+ 0.037592270248508822
+ 0.037594652176665723
+ 0.037597034154816647
+ 0.037599416182957958
+ 0.037601798261085874
+ 0.037604180389196787
+ 0.037606562567286964
+ 0.03760894479535274
+ 0.037611327073390419
+ 0.037613709401396293
+ 0.037616091779366707
+ 0.037618474207297907
+ 0.037620856685186284
+ 0.037623239213028042
+ 0.037625621790819623
+ 0.037628004418557293
+ 0.037630387096237311
+ 0.037632769823855994
+ 0.037635152601409719
+ 0.037637535428894808
+ 0.037639918306307509
+ 0.037642301233644128
+ 0.037644684210901086
+ 0.037647067238074601
+ 0.037649450315161023
+ 0.037651833442156675
+ 0.037654216619057837
+ 0.037656599845860846
+ 0.037658983122562086
+ 0.037661366449157754
+ 0.037663749825644244
+ 0.037666133252017849
+ 0.037668516728274953
+ 0.037670900254411811
+ 0.037673283830424717
+ 0.037675667456310055
+ 0.037678051132064148
+ 0.037680434857683277
+ 0.037682818633163757
+ 0.037685202458501911
+ 0.03768758633369413
+ 0.037689970258736667
+ 0.037692354233625915
+ 0.037694738258358125
+ 0.037697122332929635
+ 0.037699506457336801
+ 0.037701890631575904
+ 0.037704274855643323
+ 0.0377066591295354
+ 0.037709043453248374
+ 0.037711427826778568
+ 0.037713812250122408
+ 0.037716196723276224
+ 0.037718581246236289
+ 0.037720965818998864
+ 0.037723350441560374
+ 0.037725735113917129
+ 0.037728119836065485
+ 0.037730504608001716
+ 0.037732889429722229
+ 0.037735274301223219
+ 0.037737659222501184
+ 0.037740044193552306
+ 0.03774242921437309
+ 0.037744814284959662
+ 0.03774719940530858
+ 0.037749584575415933
+ 0.03775196979527827
+ 0.037754355064891769
+ 0.037756740384252904
+ 0.037759125753357881
+ 0.03776151117220311
+ 0.03776389664078493
+ 0.037766282159099621
+ 0.037768667727143594
+ 0.037771053344913159
+ 0.037773439012404604
+ 0.037775824729614368
+ 0.037778210496538685
+ 0.037780596313173959
+ 0.037782982179516499
+ 0.037785368095562669
+ 0.037787754061308798
+ 0.037790140076751223
+ 0.037792526141886267
+ 0.03779491225671032
+ 0.037797298421219705
+ 0.037799684635410745
+ 0.03780207089927981
+ 0.037804457212823245
+ 0.037806843576037322
+ 0.037809229988918489
+ 0.037811616451463047
+ 0.037814002963667319
+ 0.037816389525527676
+ 0.037818776137040426
+ 0.037821162798201982
+ 0.037823549509008653
+ 0.037825936269456767
+ 0.037828323079542717
+ 0.037830709939262817
+ 0.037833096848613433
+ 0.037835483807590879
+ 0.037837870816191554
+ 0.037840257874411809
+ 0.037842644982247979
+ 0.037845032139696373
+ 0.037847419346753342
+ 0.037849806603415331
+ 0.037852193909678616
+ 0.037854581265539568
+ 0.037856968670994529
+ 0.037859356126039849
+ 0.037861743630671914
+ 0.037864131184887059
+ 0.037866518788681643
+ 0.037868906442051958
+ 0.037871294144994475
+ 0.037873681897505451
+ 0.037876069699581329
+ 0.03787845755121836
+ 0.037880845452412999
+ 0.037883233403161583
+ 0.037885621403460384
+ 0.037888009453305838
+ 0.037890397552694334
+ 0.037892785701622161
+ 0.037895173900085739
+ 0.037897562148081383
+ 0.037899950445605464
+ 0.037902338792654311
+ 0.037904727189224337
+ 0.037907115635311919
+ 0.037909504130913353
+ 0.037911892676025044
+ 0.037914281270643307
+ 0.037916669914764556
+ 0.037919058608385195
+ 0.037921447351501492
+ 0.037923836144109851
+ 0.037926224986206659
+ 0.037928613877788217
+ 0.037931002818850937
+ 0.037933391809391245
+ 0.037935780849405409
+ 0.037938169938889869
+ 0.037940559077840878
+ 0.037942948266254967
+ 0.037945337504128408
+ 0.037947726791457539
+ 0.037950116128238814
+ 0.037952505514468562
+ 0.03795489495014312
+ 0.037957284435258858
+ 0.037959673969812237
+ 0.037962063553799545
+ 0.037964453187217168
+ 0.037966842870061558
+ 0.03796923260232897
+ 0.037971622384015837
+ 0.037974012215118501
+ 0.037976402095633376
+ 0.037978792025556818
+ 0.03798118200488515
+ 0.037983572033614806
+ 0.037985962111742218
+ 0.037988352239263661
+ 0.037990742416175532
+ 0.037993132642474232
+ 0.037995522918156083
+ 0.037997913243217628
+ 0.038000303617655017
+ 0.038002694041464793
+ 0.038005084514643218
+ 0.038007475037186766
+ 0.038009865609091767
+ 0.038012256230354667
+ 0.038014646900971748
+ 0.038017037620939421
+ 0.038019428390254129
+ 0.038021819208912219
+ 0.038024210076910057
+ 0.038026600994244007
+ 0.038028991960910453
+ 0.03803138297690585
+ 0.038033774042226479
+ 0.038036165156868855
+ 0.038038556320829253
+ 0.038040947534104093
+ 0.038043338796689793
+ 0.038045730108582636
+ 0.038048121469779123
+ 0.038050512880275562
+ 0.038052904340068493
+ 0.038055295849154062
+ 0.038057687407528837
+ 0.038060079015189131
+ 0.038062470672131345
+ 0.038064862378351924
+ 0.03806725413384715
+ 0.038069645938613478
+ 0.038072037792647326
+ 0.038074429695945038
+ 0.038076821648503019
+ 0.038079213650317661
+ 0.038081605701385357
+ 0.038083997801702553
+ 0.038086389951265495
+ 0.038088782150070749
+ 0.038091174398114568
+ 0.03809356669539344
+ 0.038095959041903736
+ 0.038098351437641863
+ 0.038100743882604177
+ 0.038103136376787097
+ 0.03810552892018701
+ 0.038107921512800361
+ 0.03811031415462348
+ 0.03811270684565278
+ 0.038115099585884681
+ 0.038117492375315545
+ 0.038119885213941884
+ 0.038122278101759895
+ 0.03812467103876617
+ 0.038127064024957052
+ 0.038129457060328914
+ 0.038131850144878077
+ 0.038134243278601147
+ 0.038136636461494372
+ 0.038139029693554191
+ 0.038141422974777031
+ 0.038143816305159214
+ 0.038146209684697271
+ 0.038148603113387504
+ 0.038150996591226387
+ 0.038153390118210243
+ 0.038155783694335539
+ 0.038158177319598724
+ 0.038160570993996092
+ 0.038162964717524124
+ 0.038165358490179192
+ 0.038167752311957792
+ 0.038170146182856177
+ 0.038172540102870869
+ 0.038174934071998207
+ 0.038177328090234698
+ 0.038179722157576708
+ 0.038182116274020614
+ 0.038184510439562794
+ 0.038186904654199764
+ 0.038189298917927848
+ 0.038191693230743534
+ 0.038194087592643089
+ 0.038196482003623161
+ 0.038198876463679941
+ 0.038201270972810043
+ 0.038203665531009644
+ 0.038206060138275343
+ 0.038208454794603476
+ 0.038210849499990499
+ 0.038213244254432774
+ 0.038215639057926784
+ 0.038218033910468886
+ 0.038220428812055528
+ 0.038222823762683183
+ 0.038225218762348148
+ 0.038227613811046883
+ 0.038230008908775842
+ 0.03823240405553141
+ 0.038234799251310049
+ 0.038237194496108122
+ 0.038239589789922132
+ 0.038241985132748423
+ 0.038244380524583434
+ 0.038246775965423557
+ 0.038249171455265268
+ 0.038251566994105021
+ 0.038253962581939194
+ 0.038256358218764101
+ 0.038258753904576344
+ 0.038261149639372258
+ 0.038263545423148269
+ 0.038265941255900847
+ 0.038268337137626361
+ 0.03827073306832126
+ 0.038273129047981996
+ 0.038275525076604935
+ 0.0382779211541866
+ 0.038280317280723279
+ 0.03828271345621153
+ 0.03828510968064773
+ 0.038287505954028245
+ 0.038289902276349659
+ 0.038292298647608233
+ 0.038294695067800512
+ 0.03829709153692288
+ 0.038299488054971811
+ 0.038301884621943595
+ 0.038304281237834914
+ 0.038306677902641952
+ 0.038309074616361287
+ 0.038311471378989291
+ 0.038313868190522418
+ 0.038316265050957123
+ 0.038318661960289761
+ 0.038321058918516893
+ 0.03832345592563486
+ 0.038325852981640131
+ 0.038328250086529077
+ 0.038330647240298277
+ 0.038333044442944039
+ 0.038335441694462791
+ 0.038337838994851076
+ 0.038340236344105286
+ 0.038342633742221813
+ 0.038345031189197167
+ 0.038347428685027767
+ 0.038349826229709991
+ 0.03835222382324039
+ 0.038354621465615253
+ 0.038357019156831165
+ 0.038359416896884525
+ 0.038361814685771767
+ 0.038364212523489288
+ 0.038366610410033607
+ 0.038369008345401141
+ 0.038371406329588284
+ 0.038373804362591531
+ 0.038376202444407301
+ 0.038378600575032111
+ 0.038380998754462291
+ 0.038383396982694336
+ 0.038385795259724756
+ 0.038388193585549873
+ 0.038390591960166309
+ 0.038392990383570302
+ 0.038395388855758474
+ 0.038397787376727152
+ 0.038400185946472855
+ 0.038402584564992036
+ 0.038404983232281011
+ 0.038407381948336455
+ 0.038409780713154693
+ 0.038412179526732142
+ 0.038414578389065313
+ 0.038416977300150673
+ 0.038419376259984588
+ 0.038421775268563586
+ 0.038424174325884124
+ 0.038426573431942626
+ 0.038428972586735458
+ 0.038431371790259239
+ 0.038433771042510369
+ 0.038436170343485287
+ 0.038438569693180422
+ 0.038440969091592246
+ 0.038443368538717194
+ 0.038445768034551811
+ 0.038448167579092467
+ 0.038450567172335637
+ 0.03845296681427781
+ 0.038455366504915406
+ 0.038457766244244906
+ 0.038460166032262724
+ 0.038462565868965383
+ 0.038464965754349358
+ 0.03846736568841104
+ 0.038469765671146919
+ 0.038472165702553476
+ 0.038474565782627125
+ 0.038476965911364389
+ 0.038479366088761714
+ 0.038481766314815501
+ 0.038484166589522265
+ 0.038486566912878453
+ 0.038488967284880674
+ 0.038491367705525137
+ 0.038493768174808457
+ 0.038496168692727033
+ 0.038498569259277408
+ 0.038500969874456059
+ 0.038503370538259356
+ 0.038505771250683801
+ 0.038508172011725864
+ 0.038510572821382094
+ 0.038512973679648829
+ 0.038515374586522676
+ 0.038517775541999949
+ 0.03852017654607727
+ 0.038522577598750996
+ 0.038524978700017601
+ 0.038527379849873637
+ 0.038529781048315538
+ 0.038532182295339779
+ 0.03853458359094275
+ 0.038536984935121088
+ 0.038539386327871142
+ 0.038541787769189435
+ 0.038544189259072374
+ 0.038546590797516544
+ 0.038548992384518331
+ 0.038551394020074216
+ 0.038553795704180778
+ 0.03855619743683434
+ 0.038558599218031474
+ 0.038561001047768627
+ 0.038563402926042302
+ 0.038565804852848988
+ 0.038568206828185077
+ 0.038570608852047154
+ 0.038573010924431606
+ 0.038575413045334975
+ 0.038577815214753723
+ 0.038580217432684319
+ 0.038582619699123293
+ 0.038585022014067057
+ 0.038587424377512135
+ 0.038589826789454974
+ 0.038592229249892071
+ 0.038594631758819969
+ 0.038597034316235103
+ 0.038599436922133905
+ 0.038601839576512961
+ 0.038604242279368671
+ 0.038606645030697551
+ 0.03860904783049611
+ 0.038611450678760782
+ 0.038613853575488119
+ 0.03861625652067454
+ 0.038618659514316582
+ 0.038621062556410735
+ 0.038623465646953424
+ 0.038625868785941195
+ 0.038628271973370515
+ 0.038630675209237915
+ 0.038633078493539856
+ 0.038635481826272799
+ 0.038637885207433262
+ 0.038640288637017725
+ 0.038642692115022671
+ 0.038645095641444652
+ 0.038647499216280072
+ 0.038649902839525491
+ 0.038652306511177355
+ 0.038654710231232257
+ 0.038657113999686556
+ 0.038659517816536801
+ 0.038661921681779503
+ 0.038664325595411123
+ 0.038666729557428267
+ 0.03866913356782728
+ 0.038671537626604684
+ 0.038673941733757121
+ 0.038676345889280914
+ 0.038678750093172606
+ 0.038681154345428743
+ 0.038683558646045814
+ 0.038685962995020313
+ 0.038688367392348696
+ 0.03869077183802748
+ 0.038693176332053186
+ 0.038695580874422396
+ 0.038697985465131458
+ 0.03870039010417696
+ 0.038702794791555396
+ 0.038705199527263236
+ 0.038707604311297002
+ 0.038710009143653176
+ 0.038712414024328318
+ 0.038714818953318964
+ 0.038717223930621505
+ 0.038719628956232453
+ 0.038722034030148421
+ 0.038724439152365828
+ 0.038726844322881177
+ 0.03872924954169104
+ 0.038731654808791822
+ 0.038734060124180139
+ 0.038736465487852464
+ 0.038738870899805281
+ 0.03874127636003509
+ 0.038743681868538493
+ 0.03874608742531193
+ 0.038748493030351848
+ 0.038750898683654847
+ 0.038753304385217395
+ 0.038755710135036051
+ 0.038758115933107296
+ 0.038760521779427612
+ 0.03876292767399353
+ 0.03876533361680163
+ 0.038767739607848371
+ 0.038770145647130182
+ 0.038772551734643751
+ 0.038774957870385464
+ 0.038777364054351941
+ 0.038779770286539512
+ 0.038782176566944875
+ 0.038784582895564496
+ 0.038786989272394906
+ 0.038789395697432567
+ 0.038791802170674072
+ 0.038794208692115861
+ 0.038796615261754437
+ 0.038799021879586455
+ 0.038801428545608314
+ 0.038803835259816587
+ 0.03880624202220772
+ 0.03880864883277832
+ 0.038811055691524904
+ 0.038813462598443968
+ 0.038815869553531987
+ 0.038818276556785568
+ 0.038820683608201206
+ 0.038823090707775385
+ 0.038825497855504681
+ 0.038827905051385551
+ 0.038830312295414643
+ 0.03883271958758832
+ 0.038835126927903238
+ 0.038837534316355907
+ 0.038839941752942718
+ 0.03884234923766039
+ 0.038844756770505334
+ 0.038847164351474117
+ 0.038849571980563255
+ 0.038851979657769257
+ 0.03885438738308869
+ 0.038856795156518111
+ 0.038859202978053953
+ 0.038861610847692789
+ 0.038864018765431121
+ 0.038866426731265606
+ 0.038868834745192669
+ 0.038871242807208807
+ 0.038873650917310654
+ 0.038876059075494657
+ 0.038878467281757423
+ 0.038880875536095399
+ 0.03888328383850518
+ 0.038885692188983335
+ 0.038888100587526293
+ 0.038890509034130695
+ 0.038892917528793043
+ 0.038895326071509785
+ 0.03889773466227759
+ 0.03890014330109292
+ 0.03890255198795238
+ 0.038904960722852419
+ 0.038907369505789567
+ 0.038909778336760473
+ 0.03891218721576159
+ 0.038914596142789512
+ 0.038917005117840735
+ 0.038919414140911796
+ 0.038921823211999218
+ 0.038924232331099637
+ 0.038926641498209472
+ 0.038929050713325371
+ 0.038931459976443844
+ 0.038933869287561422
+ 0.038936278646674621
+ 0.038938688053780007
+ 0.038941097508874159
+ 0.038943507011953572
+ 0.038945916563014785
+ 0.038948326162054459
+ 0.038950735809068986
+ 0.038953145504054987
+ 0.038955555247008972
+ 0.038957965037927554
+ 0.038960374876807286
+ 0.038962784763644558
+ 0.038965194698436102
+ 0.03896760468117836
+ 0.038970014711867951
+ 0.038972424790501413
+ 0.038974834917075193
+ 0.038977245091586024
+ 0.038979655314030304
+ 0.038982065584404625
+ 0.038984475902705581
+ 0.038986886268929717
+ 0.038989296683073479
+ 0.038991707145133607
+ 0.038994117655106457
+ 0.038996528212988761
+ 0.038998938818776911
+ 0.039001349472467604
+ 0.039003760174057316
+ 0.039006170923542596
+ 0.03900858172092006
+ 0.039010992566186196
+ 0.039013403459337639
+ 0.039015814400370864
+ 0.039018225389282492
+ 0.039020636426069004
+ 0.039023047510727049
+ 0.03902545864325313
+ 0.039027869823643861
+ 0.039030281051895703
+ 0.039032692328005353
+ 0.03903510365196923
+ 0.039037515023783977
+ 0.03903992644344613
+ 0.039042337910952296
+ 0.039044749426299034
+ 0.039047160989482771
+ 0.039049572600500279
+ 0.039051984259347951
+ 0.039054395966022407
+ 0.039056807720520302
+ 0.039059219522838057
+ 0.03906163137297234
+ 0.039064043270919675
+ 0.039066455216676579
+ 0.039068867210239729
+ 0.039071279251605619
+ 0.039073691340770815
+ 0.039076103477731952
+ 0.039078515662485498
+ 0.039080927895028067
+ 0.039083340175356279
+ 0.039085752503466645
+ 0.039088164879355743
+ 0.039090577303020228
+ 0.039092989774456528
+ 0.039095402293661229
+ 0.039097814860631012
+ 0.03910022747536241
+ 0.039102640137851925
+ 0.039105052848096226
+ 0.039107465606091844
+ 0.03910987841183531
+ 0.039112291265323285
+ 0.039114704166552286
+ 0.039117117115518893
+ 0.039119530112219691
+ 0.039121943156651254
+ 0.039124356248810166
+ 0.039126769388693007
+ 0.039129182576296329
+ 0.03913159581161671
+ 0.039134009094650798
+ 0.039136422425395077
+ 0.03913883580384625
+ 0.039141249230000702
+ 0.039143662703855227
+ 0.039146076225406216
+ 0.03914848979465041
+ 0.039150903411584288
+ 0.039153317076204439
+ 0.039155730788507433
+ 0.039158144548490016
+ 0.039160558356148512
+ 0.039162972211479692
+ 0.039165386114480082
+ 0.039167800065146245
+ 0.039170214063474859
+ 0.039172628109462385
+ 0.039175042203105477
+ 0.039177456344400681
+ 0.03917987053334461
+ 0.039182284769933941
+ 0.039184699054165058
+ 0.039187113386034665
+ 0.039189527765539404
+ 0.039191942192675785
+ 0.039194356667440387
+ 0.039196771189829817
+ 0.03919918575984075
+ 0.039201600377469628
+ 0.039204015042713189
+ 0.039206429755567936
+ 0.03920884451603044
+ 0.039211259324097358
+ 0.039213674179765179
+ 0.039216089083030634
+ 0.039218504033890308
+ 0.039220919032340658
+ 0.039223334078378358
+ 0.03922574917200003
+ 0.039228164313202273
+ 0.039230579501981611
+ 0.03923299473833472
+ 0.03923541002225811
+ 0.039237825353748437
+ 0.039240240732802328
+ 0.039242656159416293
+ 0.039245071633586974
+ 0.039247487155311005
+ 0.039249902724584916
+ 0.039252318341405343
+ 0.039254734005768954
+ 0.039257149717672191
+ 0.039259565477111756
+ 0.039261981284084264
+ 0.039264397138586281
+ 0.039266813040614433
+ 0.039269228990165286
+ 0.039271644987235427
+ 0.039274061031821537
+ 0.039276477123920149
+ 0.039278893263527959
+ 0.039281309450641413
+ 0.039283725685257266
+ 0.03928614196737204
+ 0.039288558296982412
+ 0.039290974674084933
+ 0.03929339109867621
+ 0.039295807570752843
+ 0.039298224090311501
+ 0.039300640657348652
+ 0.039303057271861092
+ 0.039305473933845307
+ 0.039307890643297969
+ 0.039310307400215592
+ 0.039312724204594883
+ 0.039315141056432419
+ 0.039317557955724752
+ 0.039319974902468628
+ 0.039322391896660557
+ 0.039324808938297158
+ 0.039327226027375053
+ 0.039329643163890898
+ 0.039332060347841258
+ 0.039334477579222767
+ 0.039336894858032011
+ 0.039339312184265632
+ 0.039341729557920237
+ 0.039344146978992418
+ 0.039346564447478846
+ 0.039348981963376078
+ 0.039351399526680826
+ 0.03935381713738962
+ 0.039356234795499039
+ 0.039358652501005779
+ 0.039361070253906484
+ 0.039363488054197697
+ 0.039365905901876067
+ 0.0393683237969382
+ 0.039370741739380759
+ 0.039373159729200323
+ 0.039375577766393548
+ 0.039377995850957005
+ 0.039380413982887358
+ 0.039382832162181219
+ 0.039385250388835197
+ 0.039387668662845904
+ 0.039390086984210079
+ 0.039392505352924177
+ 0.039394923768984846
+ 0.039397342232388895
+ 0.039399760743132742
+ 0.039402179301213071
+ 0.039404597906626572
+ 0.039407016559369748
+ 0.039409435259439372
+ 0.039411854006832003
+ 0.039414272801544227
+ 0.039416691643572754
+ 0.039419110532914171
+ 0.039421529469565078
+ 0.039423948453522158
+ 0.039426367484782003
+ 0.039428786563341207
+ 0.039431205689196544
+ 0.039433624862344509
+ 0.03943604408278175
+ 0.039438463350504951
+ 0.039440882665510761
+ 0.03944330202779571
+ 0.03944572143735655
+ 0.039448140894189819
+ 0.0394505603982922
+ 0.039452979949660273
+ 0.039455399548290769
+ 0.039457819194180253
+ 0.039460238887325416
+ 0.039462658627722844
+ 0.03946507841536917
+ 0.039467498250261045
+ 0.039469918132395122
+ 0.03947233806176801
+ 0.039474758038376391
+ 0.039477178062216851
+ 0.039479598133286088
+ 0.039482018251580743
+ 0.039484438417097353
+ 0.039486858629832693
+ 0.039489278889783257
+ 0.039491699196945805
+ 0.039494119551316986
+ 0.0394965399528934
+ 0.039498960401671682
+ 0.039501380897648423
+ 0.039503801440820351
+ 0.039506222031184091
+ 0.03950864266873632
+ 0.039511063353473597
+ 0.039513484085392667
+ 0.039515904864490088
+ 0.039518325690762517
+ 0.039520746564206698
+ 0.039523167484819127
+ 0.039525588452596599
+ 0.039528009467535659
+ 0.039530430529632996
+ 0.039532851638885279
+ 0.039535272795289088
+ 0.039537693998841134
+ 0.039540115249538023
+ 0.039542536547376446
+ 0.03954495789235301
+ 0.039547379284464494
+ 0.039549800723707375
+ 0.039552222210078432
+ 0.039554643743574203
+ 0.039557065324191384
+ 0.039559486951926744
+ 0.039561908626776748
+ 0.039564330348738214
+ 0.039566752117807726
+ 0.039569173933981912
+ 0.039571595797257469
+ 0.039574017707631019
+ 0.039576439665099224
+ 0.039578861669658807
+ 0.039581283721306378
+ 0.039583705820038492
+ 0.039586127965852036
+ 0.039588550158743421
+ 0.039590972398709526
+ 0.039593394685746852
+ 0.039595817019852125
+ 0.039598239401022021
+ 0.039600661829253134
+ 0.039603084304542194
+ 0.039605506826885864
+ 0.039607929396280682
+ 0.03961035201272347
+ 0.039612774676210848
+ 0.039615197386739451
+ 0.039617620144305879
+ 0.039620042948906913
+ 0.0396224658005392
+ 0.039624888699199327
+ 0.03962731164488404
+ 0.039629734637589911
+ 0.039632157677313727
+ 0.039634580764052081
+ 0.039637003897801629
+ 0.039639427078559122
+ 0.039641850306321155
+ 0.039644273581084404
+ 0.03964669690284555
+ 0.039649120271601265
+ 0.039651543687348197
+ 0.039653967150083021
+ 0.039656390659802455
+ 0.039658814216503052
+ 0.039661237820181647
+ 0.039663661470834777
+ 0.039666085168459209
+ 0.039668508913051521
+ 0.039670932704608516
+ 0.03967335654312671
+ 0.039675780428602855
+ 0.039678204361033684
+ 0.039680628340415788
+ 0.039683052366745873
+ 0.039685476440020566
+ 0.039687900560236689
+ 0.039690324727390751
+ 0.039692748941479464
+ 0.039695173202499559
+ 0.039697597510447713
+ 0.039700021865320623
+ 0.03970244626711484
+ 0.039704870715827151
+ 0.039707295211454247
+ 0.039709719753992762
+ 0.039712144343439379
+ 0.039714568979790768
+ 0.039716993663043688
+ 0.039719418393194761
+ 0.039721843170240641
+ 0.039724267994178046
+ 0.039726692865003646
+ 0.039729117782714138
+ 0.039731542747306191
+ 0.039733967758776571
+ 0.039736392817121789
+ 0.039738817922338687
+ 0.039741243074423907
+ 0.039743668273374055
+ 0.039746093519185982
+ 0.039748518811856232
+ 0.039750944151381556
+ 0.039753369537758619
+ 0.039755794970984096
+ 0.03975822045105469
+ 0.039760645977967142
+ 0.039763071551718036
+ 0.039765497172304168
+ 0.039767922839722129
+ 0.039770348553968667
+ 0.039772774315040484
+ 0.03977520012293425
+ 0.039777625977646704
+ 0.039780051879174445
+ 0.039782477827514227
+ 0.039784903822662726
+ 0.039787329864616632
+ 0.039789755953372682
+ 0.039792182088927486
+ 0.03979460827127785
+ 0.039797034500420395
+ 0.039799460776351818
+ 0.039801887099068817
+ 0.039804313468568109
+ 0.039806739884846398
+ 0.039809166347900361
+ 0.039811592857726702
+ 0.039814019414322069
+ 0.039816446017683291
+ 0.039818872667806933
+ 0.039821299364689734
+ 0.039823726108328426
+ 0.039826152898719692
+ 0.039828579735860271
+ 0.039831006619746756
+ 0.039833433550375989
+ 0.039835860527744529
+ 0.039838287551849177
+ 0.039840714622686645
+ 0.039843141740253531
+ 0.039845568904546651
+ 0.039847996115562723
+ 0.039850423373298346
+ 0.039852850677750219
+ 0.039855278028915149
+ 0.039857705426789854
+ 0.039860132871370933
+ 0.039862560362655106
+ 0.039864987900639151
+ 0.03986741548531976
+ 0.039869843116693594
+ 0.039872270794757442
+ 0.039874698519507944
+ 0.039877126290941756
+ 0.039879554109055748
+ 0.039881981973846486
+ 0.039884409885310737
+ 0.039886837843445287
+ 0.039889265848246681
+ 0.039891693899711783
+ 0.03989412199783722
+ 0.039896550142619697
+ 0.039898978334056048
+ 0.039901406572142806
+ 0.039903834856876798
+ 0.039906263188254743
+ 0.03990869156627333
+ 0.039911119990929271
+ 0.039913548462219277
+ 0.039915976980140079
+ 0.039918405544688444
+ 0.039920834155860944
+ 0.039923262813654443
+ 0.039925691518065624
+ 0.03992812026909115
+ 0.039930549066727744
+ 0.039932977910972209
+ 0.039935406801821123
+ 0.039937835739271392
+ 0.03994026472331956
+ 0.039942693753962491
+ 0.039945122831196833
+ 0.039947551955019277
+ 0.039949981125426616
+ 0.03995241034241552
+ 0.039954839605982763
+ 0.039957268916125034
+ 0.039959698272839059
+ 0.039962127676121575
+ 0.039964557125969274
+ 0.039966986622378957
+ 0.039969416165347188
+ 0.039971845754870929
+ 0.039974275390946667
+ 0.039976705073571359
+ 0.039979134802741532
+ 0.039981564578454011
+ 0.03998399440070554
+ 0.039986424269492789
+ 0.039988854184812496
+ 0.039991284146661442
+ 0.039993714155036338
+ 0.039996144209933956
+ 0.039998574311350898
+ 0.040001004459283937
+ 0.040003434653729936
+ 0.040005864894685494
+ 0.040008295182147331
+ 0.04001072551611231
+ 0.040013155896577009
+ 0.040015586323538244
+ 0.040018016796992746
+ 0.040020447316937283
+ 0.040022877883368557
+ 0.040025308496283239
+ 0.040027739155678151
+ 0.040030169861550051
+ 0.04003260061389554
+ 0.04003503141271151
+ 0.040037462257994594
+ 0.040039893149741594
+ 0.040042324087949215
+ 0.040044755072614159
+ 0.040047186103733284
+ 0.040049617181303218
+ 0.040052048305320734
+ 0.040054479475782577
+ 0.040056910692685493
+ 0.040059341956026243
+ 0.040061773265801515
+ 0.040064204622008104
+ 0.040066636024642707
+ 0.040069067473702133
+ 0.040071498969183036
+ 0.040073930511082177
+ 0.040076362099396426
+ 0.040078793734122362
+ 0.04008122541525682
+ 0.040083657142796526
+ 0.040086088916738226
+ 0.04008852073707863
+ 0.040090952603814581
+ 0.040093384516942762
+ 0.040095816476459906
+ 0.040098248482362805
+ 0.040100680534648152
+ 0.040103112633312815
+ 0.040105544778353396
+ 0.040107976969766673
+ 0.04011040920754947
+ 0.040112841491698518
+ 0.040115273822210501
+ 0.040117706199082247
+ 0.040120138622310501
+ 0.040122571091891955
+ 0.040125003607823416
+ 0.04012743617010163
+ 0.040129868778723314
+ 0.040132301433685305
+ 0.040134734134984293
+ 0.040137166882617065
+ 0.040139599676580283
+ 0.040142032516870839
+ 0.040144465403485451
+ 0.040146898336420773
+ 0.040149331315673713
+ 0.040151764341240924
+ 0.04015419741311918
+ 0.040156630531305276
+ 0.040159063695796055
+ 0.040161496906588053
+ 0.040163930163678203
+ 0.040166363467063135
+ 0.040168796816739787
+ 0.040171230212704773
+ 0.040173663654954915
+ 0.04017609714348698
+ 0.040178530678297679
+ 0.040180964259383826
+ 0.040183397886742155
+ 0.040185831560369478
+ 0.040188265280262508
+ 0.04019069904641806
+ 0.040193132858832796
+ 0.040195566717503586
+ 0.040198000622427198
+ 0.040200434573600334
+ 0.040202868571019755
+ 0.040205302614682234
+ 0.040207736704584683
+ 0.040210170840723682
+ 0.040212605023096121
+ 0.040215039251698663
+ 0.040217473526528165
+ 0.040219907847581324
+ 0.040222342214854968
+ 0.040224776628345886
+ 0.040227211088050753
+ 0.040229645593966447
+ 0.040232080146089685
+ 0.040234514744417242
+ 0.040236949388945877
+ 0.040239384079672404
+ 0.040241818816593604
+ 0.04024425359970616
+ 0.040246688429006985
+ 0.04024912330449272
+ 0.040251558226160264
+ 0.040253993194006264
+ 0.040256428208027543
+ 0.040258863268220958
+ 0.040261298374583185
+ 0.040263733527111066
+ 0.04026616872580132
+ 0.040268603970650768
+ 0.040271039261656198
+ 0.040273474598814349
+ 0.040275909982122028
+ 0.040278345411576037
+ 0.040280780887173046
+ 0.040283216408910034
+ 0.04028565197678359
+ 0.040288087590790583
+ 0.040290523250927766
+ 0.040292958957191934
+ 0.040295394709579921
+ 0.040297830508088446
+ 0.040300266352714276
+ 0.040302702243454266
+ 0.040305138180305171
+ 0.040307574163263749
+ 0.040310010192326849
+ 0.040312446267491205
+ 0.040314882388753574
+ 0.040317318556110836
+ 0.040319754769559672
+ 0.040322191029096947
+ 0.040324627334719435
+ 0.0403270636864239
+ 0.040329500084207152
+ 0.040331936528065979
+ 0.040334373017997159
+ 0.040336809553997488
+ 0.040339246136063774
+ 0.040341682764192754
+ 0.040344119438381287
+ 0.040346556158626146
+ 0.040348992924924089
+ 0.04035142973727196
+ 0.040353866595666546
+ 0.040356303500104593
+ 0.04035874045058286
+ 0.04036117744709828
+ 0.040363614489647551
+ 0.04036605157822748
+ 0.040368488712834903
+ 0.040370925893466574
+ 0.040373363120119306
+ 0.040375800392789873
+ 0.040378237711475091
+ 0.040380675076171796
+ 0.040383112486876697
+ 0.040385549943586681
+ 0.040387987446298526
+ 0.040390424995008979
+ 0.040392862589714897
+ 0.040395300230413045
+ 0.04039773791710026
+ 0.040400175649773308
+ 0.040402613428429004
+ 0.040405051253064164
+ 0.040407489123675609
+ 0.040409927040260044
+ 0.0404123650028144
+ 0.040414803011335404
+ 0.040417241065819891
+ 0.040419679166264669
+ 0.040422117312666532
+ 0.040424555505022206
+ 0.040426993743328588
+ 0.040429432027582597
+ 0.040431870357780751
+ 0.040434308733920135
+ 0.040436747155997377
+ 0.040439185624009368
+ 0.040441624137952881
+ 0.04044406269782478
+ 0.040446501303621804
+ 0.040448939955340796
+ 0.040451378652978577
+ 0.040453817396532012
+ 0.040456256185997776
+ 0.040458695021372768
+ 0.040461133902653774
+ 0.040463572829837591
+ 0.040466011802921149
+ 0.040468450821901064
+ 0.04047088988677431
+ 0.040473328997537639
+ 0.040475768154187922
+ 0.040478207356721883
+ 0.040480646605136408
+ 0.040483085899428228
+ 0.040485525239594242
+ 0.040487964625631243
+ 0.040490404057536095
+ 0.040492843535305474
+ 0.040495283058936356
+ 0.040497722628425478
+ 0.040500162243769705
+ 0.040502601904965831
+ 0.040505041612010642
+ 0.040507481364900975
+ 0.040509921163633736
+ 0.04051236100820562
+ 0.040514800898613458
+ 0.040517240834854189
+ 0.040519680816924558
+ 0.040522120844821465
+ 0.040524560918541563
+ 0.04052700103808176
+ 0.040529441203438925
+ 0.040531881414609852
+ 0.040534321671591413
+ 0.040536761974380352
+ 0.040539202322973499
+ 0.04054164271736773
+ 0.040544083157559932
+ 0.040546523643546745
+ 0.040548964175325157
+ 0.040551404752891929
+ 0.040553845376243902
+ 0.040556286045377934
+ 0.040558726760290757
+ 0.040561167520979345
+ 0.040563608327440423
+ 0.040566049179670854
+ 0.04056849007766751
+ 0.040570931021427101
+ 0.040573372010946615
+ 0.040575813046222799
+ 0.04057825412725246
+ 0.040580695254032489
+ 0.040583136426559641
+ 0.040585577644830881
+ 0.040588018908842935
+ 0.040590460218592639
+ 0.040592901574076933
+ 0.040595342975292506
+ 0.040597784422236265
+ 0.0406002259149051
+ 0.040602667453295778
+ 0.040605109037405114
+ 0.040607550667230041
+ 0.040609992342767326
+ 0.04061243406401386
+ 0.04061487583096636
+ 0.040617317643621823
+ 0.040619759501976965
+ 0.040622201406028721
+ 0.040624643355773898
+ 0.040627085351209284
+ 0.040629527392331791
+ 0.040631969479138254
+ 0.040634411611625509
+ 0.040636853789790338
+ 0.040639296013629651
+ 0.040641738283140334
+ 0.040644180598319098
+ 0.040646622959162902
+ 0.040649065365668514
+ 0.040651507817832819
+ 0.040653950315652707
+ 0.040656392859124937
+ 0.04065883544824643
+ 0.040661278083013945
+ 0.040663720763424435
+ 0.040666163489474653
+ 0.040668606261161526
+ 0.040671049078481861
+ 0.040673491941432466
+ 0.040675934850010351
+ 0.040678377804212185
+ 0.040680820804034935
+ 0.040683263849475355
+ 0.040685706940530385
+ 0.040688150077196832
+ 0.040690593259471504
+ 0.040693036487351342
+ 0.040695479760833174
+ 0.040697923079913836
+ 0.0407003664445902
+ 0.0407028098548591
+ 0.040705253310717351
+ 0.040707696812161936
+ 0.040710140359189601
+ 0.040712583951797235
+ 0.040715027589981696
+ 0.040717471273739841
+ 0.040719915003068506
+ 0.040722358777964575
+ 0.040724802598424925
+ 0.040727246464446351
+ 0.0407296903760258
+ 0.040732134333160051
+ 0.04073457833584597
+ 0.040737022384080439
+ 0.040739466477860364
+ 0.040741910617182568
+ 0.040744354802043865
+ 0.04074679903244121
+ 0.040749243308371423
+ 0.040751687629831286
+ 0.040754131996817773
+ 0.040756576409327755
+ 0.040759020867358012
+ 0.040761465370905449
+ 0.040763909919966992
+ 0.040766354514539346
+ 0.040768799154619582
+ 0.04077124384020437
+ 0.040773688571290746
+ 0.040776133347875457
+ 0.040778578169955407
+ 0.040781023037527522
+ 0.040783467950588591
+ 0.040785912909135517
+ 0.040788357913165131
+ 0.040790802962674379
+ 0.040793248057660117
+ 0.040795693198119175
+ 0.040798138384048423
+ 0.040800583615444717
+ 0.040803028892304971
+ 0.040805474214626068
+ 0.040807919582404831
+ 0.040810364995638219
+ 0.04081281045432298
+ 0.040815255958456094
+ 0.040817701508034349
+ 0.040820147103054705
+ 0.040822592743514061
+ 0.040825038429409141
+ 0.04082748416073697
+ 0.04082992993749434
+ 0.040832375759678109
+ 0.040834821627285287
+ 0.040837267540312666
+ 0.040839713498757112
+ 0.04084215950261548
+ 0.040844605551884683
+ 0.040847051646561605
+ 0.040849497786643159
+ 0.040851943972126208
+ 0.040854390203007594
+ 0.040856836479284217
+ 0.040859282800952954
+ 0.040861729168010688
+ 0.04086417558045434
+ 0.040866622038280738
+ 0.040869068541486836
+ 0.04087151509006947
+ 0.040873961684025462
+ 0.040876408323351772
+ 0.040878855008045382
+ 0.040881301738102997
+ 0.040883748513521521
+ 0.040886195334297944
+ 0.040888642200429121
+ 0.040891089111911957
+ 0.040893536068743221
+ 0.040895983070919989
+ 0.040898430118439008
+ 0.040900877211297156
+ 0.040903324349491468
+ 0.040905771533018637
+ 0.040908218761875705
+ 0.040910666036059556
+ 0.040913113355567
+ 0.040915560720394914
+ 0.040918008130540383
+ 0.040920455586000042
+ 0.04092290308677092
+ 0.040925350632849924
+ 0.040927798224233904
+ 0.040930245860919777
+ 0.040932693542904436
+ 0.04093514127018473
+ 0.040937589042757648
+ 0.040940036860620019
+ 0.040942484723768734
+ 0.040944932632200691
+ 0.040947380585912845
+ 0.040949828584901989
+ 0.040952276629165119
+ 0.040954724718699084
+ 0.040957172853500846
+ 0.040959621033567227
+ 0.040962069258895173
+ 0.040964517529481589
+ 0.040966965845323326
+ 0.040969414206417344
+ 0.040971862612760389
+ 0.040974311064349594
+ 0.040976759561181714
+ 0.040979208103253735
+ 0.040981656690562508
+ 0.040984105323104938
+ 0.040986554000878014
+ 0.040989002723878447
+ 0.040991451492103335
+ 0.040993900305549467
+ 0.040996349164213831
+ 0.040998798068093235
+ 0.041001247017184668
+ 0.041003696011485041
+ 0.041006145050991184
+ 0.041008594135700099
+ 0.041011043265608615
+ 0.041013492440713707
+ 0.041015941661012252
+ 0.041018390926501093
+ 0.041020840237177301
+ 0.041023289593037617
+ 0.041025738994079054
+ 0.041028188440298513
+ 0.041030637931692857
+ 0.04103308746825908
+ 0.041035537049993999
+ 0.041037986676894594
+ 0.041040436348957758
+ 0.041042886066180409
+ 0.041045335828559439
+ 0.04104778563609178
+ 0.041050235488774407
+ 0.041052685386604088
+ 0.041055135329577899
+ 0.041057585317692664
+ 0.041060035350945316
+ 0.041062485429332746
+ 0.041064935552851942
+ 0.041067385721499775
+ 0.04106983593527317
+ 0.041072286194169062
+ 0.041074736498184355
+ 0.041077186847315976
+ 0.041079637241560836
+ 0.041082087680915889
+ 0.041084538165377965
+ 0.041086988694944093
+ 0.041089439269611144
+ 0.041091889889376065
+ 0.041094340554235664
+ 0.041096791264187089
+ 0.04109924201922701
+ 0.041101692819352553
+ 0.041104143664560618
+ 0.041106594554847997
+ 0.041109045490211701
+ 0.041111496470648649
+ 0.041113947496155809
+ 0.04111639856673005
+ 0.041118849682368334
+ 0.041121300843067518
+ 0.041123752048824645
+ 0.041126203299636586
+ 0.041128654595500247
+ 0.041131105936412587
+ 0.041133557322370513
+ 0.041136008753370951
+ 0.041138460229410874
+ 0.041140911750487195
+ 0.041143363316596814
+ 0.041145814927736724
+ 0.041148266583903803
+ 0.041150718285095006
+ 0.041153170031307189
+ 0.041155621822537493
+ 0.041158073658782636
+ 0.041160525540039648
+ 0.041162977466305421
+ 0.041165429437576943
+ 0.041167881453851134
+ 0.041170333515124932
+ 0.041172785621395251
+ 0.041175237772659058
+ 0.041177689968913224
+ 0.041180142210154785
+ 0.041182594496380599
+ 0.04118504682758764
+ 0.041187499203772848
+ 0.041189951624933177
+ 0.041192404091065567
+ 0.041194856602166867
+ 0.041197309158234122
+ 0.041199761759264236
+ 0.041202214405254171
+ 0.041204667096200846
+ 0.041207119832101263
+ 0.041209572612952237
+ 0.041212025438750834
+ 0.041214478309493922
+ 0.041216931225178506
+ 0.041219384185801462
+ 0.0412218371913598
+ 0.041224290241850439
+ 0.041226743337270291
+ 0.041229196477616456
+ 0.041231649662885644
+ 0.041234102893074956
+ 0.041236556168181261
+ 0.041239009488201604
+ 0.041241462853132828
+ 0.041243916262971983
+ 0.041246369717715996
+ 0.041248823217361723
+ 0.041251276761906201
+ 0.041253730351346322
+ 0.041256183985679123
+ 0.04125863766490151
+ 0.041261091389010428
+ 0.04126354515800279
+ 0.041265998971875648
+ 0.041268452830625892
+ 0.041270906734250483
+ 0.041273360682746341
+ 0.041275814676110509
+ 0.041278268714339851
+ 0.041280722797431363
+ 0.041283176925382005
+ 0.04128563109818871
+ 0.041288085315848468
+ 0.041290539578358196
+ 0.041292993885714918
+ 0.041295448237915477
+ 0.041297902634956973
+ 0.041300357076836262
+ 0.041302811563550382
+ 0.041305266095096209
+ 0.041307720671470746
+ 0.041310175292670941
+ 0.041312629958693746
+ 0.041315084669536137
+ 0.041317539425195116
+ 0.041319994225667615
+ 0.041322449070950507
+ 0.041324903961040875
+ 0.04132735889593564
+ 0.041329813875631803
+ 0.041332268900126291
+ 0.041334723969416017
+ 0.041337179083498057
+ 0.041339634242369298
+ 0.04134208944602677
+ 0.041344544694467335
+ 0.041346999987688031
+ 0.041349455325685881
+ 0.041351910708457708
+ 0.041354366136000666
+ 0.0413568216083115
+ 0.041359277125387388
+ 0.041361732687225157
+ 0.04136418829382188
+ 0.041366643945174482
+ 0.041369099641279869
+ 0.041371555382135092
+ 0.041374011167737063
+ 0.041376466998082902
+ 0.041378922873169417
+ 0.041381378792993584
+ 0.041383834757552522
+ 0.041386290766843074
+ 0.041388746820862236
+ 0.041391202919606976
+ 0.041393659063074371
+ 0.041396115251261259
+ 0.041398571484164697
+ 0.041401027761781603
+ 0.041403484084109043
+ 0.041405940451143937
+ 0.041408396862883265
+ 0.041410853319323933
+ 0.041413309820463047
+ 0.041415766366297534
+ 0.04141822295682434
+ 0.04142067959204055
+ 0.041423136271943002
+ 0.041425592996528829
+ 0.04142804976579486
+ 0.041430506579738138
+ 0.041432963438355661
+ 0.041435420341644373
+ 0.041437877289601313
+ 0.041440334282223434
+ 0.041442791319507725
+ 0.041445248401451168
+ 0.04144770552805075
+ 0.041450162699303447
+ 0.04145261991520624
+ 0.041455077175756111
+ 0.041457534480950131
+ 0.041459991830785158
+ 0.04146244922525822
+ 0.041464906664366329
+ 0.041467364148106534
+ 0.041469821676475629
+ 0.041472279249470827
+ 0.041474736867088947
+ 0.041477194529327105
+ 0.041479652236182253
+ 0.04148210998765129
+ 0.041484567783731274
+ 0.041487025624419277
+ 0.041489483509712162
+ 0.041491941439607001
+ 0.041494399414100713
+ 0.041496857433190405
+ 0.041499315496872961
+ 0.041501773605145412
+ 0.041504231758004766
+ 0.041506689955448026
+ 0.041509148197472187
+ 0.041511606484074183
+ 0.041514064815251085
+ 0.041516523190999827
+ 0.041518981611317472
+ 0.041521440076200913
+ 0.041523898585647319
+ 0.041526357139653525
+ 0.041528815738216582
+ 0.041531274381333527
+ 0.041533733069001287
+ 0.041536191801216996
+ 0.041538650577977454
+ 0.041541109399279887
+ 0.041543568265121074
+ 0.041546027175498185
+ 0.041548486130408145
+ 0.041550945129847972
+ 0.041553404173814652
+ 0.041555863262305259
+ 0.041558322395316649
+ 0.041560781572845977
+ 0.041563240794890155
+ 0.041565700061446248
+ 0.041568159372511224
+ 0.041570618728082112
+ 0.041573078128155951
+ 0.04157553757272963
+ 0.041577997061800244
+ 0.041580456595364787
+ 0.041582916173420241
+ 0.041585375795963719
+ 0.041587835462992051
+ 0.041590295174502391
+ 0.041592754930491707
+ 0.041595214730957022
+ 0.041597674575895277
+ 0.041600134465303557
+ 0.04160259439917887
+ 0.041605054377518207
+ 0.041607514400318554
+ 0.041609974467576971
+ 0.041612434579290453
+ 0.041614894735455973
+ 0.041617354936070591
+ 0.041619815181131364
+ 0.041622275470635232
+ 0.041624735804579212
+ 0.041627196182960319
+ 0.041629656605775653
+ 0.041632117073022147
+ 0.04163457758469688
+ 0.041637038140796764
+ 0.041639498741318927
+ 0.041641959386260287
+ 0.041644420075617986
+ 0.041646880809388949
+ 0.041649341587570145
+ 0.041651802410158735
+ 0.041654263277151708
+ 0.041656724188546039
+ 0.041659185144338723
+ 0.041661646144526852
+ 0.041664107189107388
+ 0.041666568278077389
+ 0.041669029411433856
+ 0.041671490589173812
+ 0.041673951811294324
+ 0.041676413077792414
+ 0.041678874388665084
+ 0.041681335743909295
+ 0.041683797143522133
+ 0.04168625858750067
+ 0.041688720075841866
+ 0.041691181608542724
+ 0.041693643185600343
+ 0.041696104807011726
+ 0.041698566472773875
+ 0.041701028182883862
+ 0.041703489937338668
+ 0.041705951736135401
+ 0.041708413579271034
+ 0.041710875466742542
+ 0.041713337398547053
+ 0.041715799374681548
+ 0.041718261395143015
+ 0.041720723459928603
+ 0.041723185569035245
+ 0.041725647722459992
+ 0.04172810992019995
+ 0.041730572162252073
+ 0.041733034448613447
+ 0.041735496779281046
+ 0.041737959154251943
+ 0.041740421573523173
+ 0.041742884037091713
+ 0.041745346544954716
+ 0.041747809097109123
+ 0.041750271693551978
+ 0.041752734334280339
+ 0.041755197019291354
+ 0.041757659748581838
+ 0.041760122522149001
+ 0.041762585339989798
+ 0.041765048202101293
+ 0.041767511108480551
+ 0.041769974059124568
+ 0.041772437054030422
+ 0.041774900093195094
+ 0.04177736317661572
+ 0.041779826304289266
+ 0.041782289476212861
+ 0.041784752692383464
+ 0.041787215952798065
+ 0.041789679257453881
+ 0.041792142606347754
+ 0.041794605999476958
+ 0.041797069436838349
+ 0.041799532918429062
+ 0.041801996444246106
+ 0.04180446001428649
+ 0.041806923628547384
+ 0.041809387287025747
+ 0.041811850989718589
+ 0.041814314736623087
+ 0.041816778527736118
+ 0.041819242363054877
+ 0.041821706242576404
+ 0.041824170166297615
+ 0.041826634134215737
+ 0.041829098146327751
+ 0.041831562202630602
+ 0.041834026303121462
+ 0.04183649044779738
+ 0.041838954636655365
+ 0.0418414188696924
+ 0.04184388314690575
+ 0.041846347468292272
+ 0.041848811833849101
+ 0.041851276243573314
+ 0.041853740697461887
+ 0.041856205195511975
+ 0.041858669737720518
+ 0.041861134324084628
+ 0.041863598954601393
+ 0.041866063629267855
+ 0.041868528348081011
+ 0.041870993111038014
+ 0.041873457918135869
+ 0.041875922769371625
+ 0.041878387664742348
+ 0.041880852604245081
+ 0.041883317587876945
+ 0.041885782615635012
+ 0.041888247687516221
+ 0.0418907128035177
+ 0.041893177963636563
+ 0.041895643167869798
+ 0.041898108416214504
+ 0.041900573708667746
+ 0.041903039045226569
+ 0.041905504425888002
+ 0.041907969850649186
+ 0.041910435319507208
+ 0.041912900832459028
+ 0.041915366389501746
+ 0.041917831990632398
+ 0.041920297635848147
+ 0.041922763325146009
+ 0.041925229058523056
+ 0.041927694835976331
+ 0.041930160657502949
+ 0.041932626523099877
+ 0.041935092432764318
+ 0.041937558386493261
+ 0.041940024384283799
+ 0.04194249042613294
+ 0.041944956512037841
+ 0.041947422641995594
+ 0.041949888816003152
+ 0.041952355034057677
+ 0.041954821296156242
+ 0.041957287602295841
+ 0.041959753952473637
+ 0.041962220346686674
+ 0.041964686784932002
+ 0.041967153267206701
+ 0.041969619793507947
+ 0.041972086363832602
+ 0.04197455297817794
+ 0.041977019636540942
+ 0.041979486338918688
+ 0.041981953085308256
+ 0.041984419875706794
+ 0.041986886710111262
+ 0.041989353588518893
+ 0.041991820510926599
+ 0.041994287477331527
+ 0.041996754487730804
+ 0.041999221542121483
+ 0.042001688640500578
+ 0.042004155782865267
+ 0.042006622969212558
+ 0.042009090199539564
+ 0.042011557473843344
+ 0.042014024792121053
+ 0.042016492154369693
+ 0.042018959560586329
+ 0.042021427010768164
+ 0.042023894504912125
+ 0.042026362043015471
+ 0.042028829625075162
+ 0.042031297251088263
+ 0.042033764921052
+ 0.042036232634963366
+ 0.042038700392819386
+ 0.042041168194617277
+ 0.042043636040354035
+ 0.042046103930026786
+ 0.042048571863632603
+ 0.042051039841168612
+ 0.042053507862631859
+ 0.042055975928019469
+ 0.042058444037328446
+ 0.042060912190555994
+ 0.042063380387699155
+ 0.042065848628755044
+ 0.042068316913720684
+ 0.042070785242593195
+ 0.042073253615369725
+ 0.042075722032047368
+ 0.042078190492623131
+ 0.042080658997094171
+ 0.042083127545457545
+ 0.042085596137710367
+ 0.042088064773849784
+ 0.042090533453872765
+ 0.042093002177776513
+ 0.042095470945558169
+ 0.042097939757214639
+ 0.042100408612743181
+ 0.042102877512140924
+ 0.042105346455404785
+ 0.042107815442532018
+ 0.042110284473519659
+ 0.042112753548364863
+ 0.042115222667064633
+ 0.04211769182961618
+ 0.042120161036016492
+ 0.042122630286262765
+ 0.042125099580352064
+ 0.042127568918281434
+ 0.042130038300048071
+ 0.042132507725649047
+ 0.042134977195081427
+ 0.042137446708342352
+ 0.042139916265428984
+ 0.042142385866338283
+ 0.042144855511067503
+ 0.042147325199613665
+ 0.042149794931973836
+ 0.042152264708145204
+ 0.042154734528124863
+ 0.042157204391909911
+ 0.042159674299497428
+ 0.042162144250884569
+ 0.042164614246068384
+ 0.042167084285046001
+ 0.042169554367814624
+ 0.042172024494371178
+ 0.042174494664712958
+ 0.04217696487883698
+ 0.042179435136740363
+ 0.042181905438420202
+ 0.042184375783873657
+ 0.042186846173097745
+ 0.042189316606089773
+ 0.042191787082846668
+ 0.042194257603365544
+ 0.042196728167643617
+ 0.042199198775677994
+ 0.042201669427465692
+ 0.042204140123003941
+ 0.042206610862289759
+ 0.042209081645320314
+ 0.04221155247209276
+ 0.042214023342604073
+ 0.042216494256851589
+ 0.042218965214832253
+ 0.042221436216543208
+ 0.042223907261981664
+ 0.042226378351144594
+ 0.042228849484029246
+ 0.042231320660632662
+ 0.04223379188095204
+ 0.042236263144984368
+ 0.042238734452726898
+ 0.042241205804176736
+ 0.042243677199330962
+ 0.04224614863818666
+ 0.042248620120741057
+ 0.042251091646991173
+ 0.042253563216934235
+ 0.042256034830567266
+ 0.042258506487887419
+ 0.042260978188891934
+ 0.042263449933577717
+ 0.042265921721942108
+ 0.042268393553982091
+ 0.042270865429694861
+ 0.042273337349077525
+ 0.042275809312127176
+ 0.042278281318841031
+ 0.042280753369216155
+ 0.042283225463249655
+ 0.042285697600938685
+ 0.042288169782280408
+ 0.042290642007271888
+ 0.042293114275910357
+ 0.042295586588192852
+ 0.042298058944116528
+ 0.042300531343678532
+ 0.042303003786876001
+ 0.04230547627370599
+ 0.042307948804165794
+ 0.04231042137825243
+ 0.042312893995963038
+ 0.042315366657294712
+ 0.042317839362244654
+ 0.042320312110810054
+ 0.042322784902987937
+ 0.042325257738775476
+ 0.042327730618169822
+ 0.042330203541168086
+ 0.042332676507767474
+ 0.042335149517964972
+ 0.042337622571757903
+ 0.042340095669143277
+ 0.042342568810118275
+ 0.042345041994680081
+ 0.042347515222825767
+ 0.04234998849455248
+ 0.042352461809857377
+ 0.042354935168737604
+ 0.042357408571190316
+ 0.042359882017212587
+ 0.042362355506801626
+ 0.042364829039954609
+ 0.04236730261666858
+ 0.042369776236940736
+ 0.042372249900768252
+ 0.042374723608148208
+ 0.042377197359077759
+ 0.042379671153554087
+ 0.042382144991574333
+ 0.042384618873135646
+ 0.042387092798235139
+ 0.042389566766869925
+ 0.042392040779037292
+ 0.042394514834734214
+ 0.042396988933957991
+ 0.042399463076705626
+ 0.042401937262974421
+ 0.042404411492761425
+ 0.042406885766063808
+ 0.042409360082878704
+ 0.042411834443203372
+ 0.042414308847034787
+ 0.04241678329437025
+ 0.042419257785206818
+ 0.042421732319541668
+ 0.042424206897372016
+ 0.042426681518694907
+ 0.042429156183507566
+ 0.042431630891807154
+ 0.042434105643590798
+ 0.04243658043885562
+ 0.042439055277598871
+ 0.042441530159817595
+ 0.042444005085509044
+ 0.04244648005467036
+ 0.042448955067298677
+ 0.042451430123391039
+ 0.042453905222944836
+ 0.042456380365957051
+ 0.042458855552424929
+ 0.042461330782345534
+ 0.042463806055716175
+ 0.042466281372533915
+ 0.042468756732795876
+ 0.042471232136499261
+ 0.04247370758364126
+ 0.042476183074219048
+ 0.04247865860822974
+ 0.04248113418567049
+ 0.042483609806538508
+ 0.042486085470830874
+ 0.042488561178544888
+ 0.042491036929677616
+ 0.042493512724226232
+ 0.042495988562187927
+ 0.042498464443559848
+ 0.042500940368339124
+ 0.042503416336523013
+ 0.042505892348108601
+ 0.042508368403093112
+ 0.042510844501473757
+ 0.042513320643247476
+ 0.042515796828411695
+ 0.042518273056963519
+ 0.042520749328900001
+ 0.042523225644218406
+ 0.04252570200291593
+ 0.042528178404989722
+ 0.042530654850436868
+ 0.042533131339254703
+ 0.042535607871440187
+ 0.042538084446990705
+ 0.042540561065903273
+ 0.042543037728175165
+ 0.042545514433803486
+ 0.042547991182785433
+ 0.042550467975118231
+ 0.042552944810798979
+ 0.042555421689824888
+ 0.042557898612193161
+ 0.042560375577900947
+ 0.042562852586945345
+ 0.042565329639323669
+ 0.042567806735032972
+ 0.042570283874070587
+ 0.042572761056433539
+ 0.042575238282119066
+ 0.042577715551124405
+ 0.042580192863446609
+ 0.042582670219082956
+ 0.042585147618030596
+ 0.042587625060286731
+ 0.042590102545848475
+ 0.042592580074713088
+ 0.042595057646877731
+ 0.042597535262339517
+ 0.04260001292109572
+ 0.042602490623143592
+ 0.042604968368480101
+ 0.042607446157102567
+ 0.04260992398900821
+ 0.042612401864194106
+ 0.042614879782657489
+ 0.042617357744395595
+ 0.042619835749405567
+ 0.042622313797684552
+ 0.042624791889229796
+ 0.042627270024038467
+ 0.042629748202107763
+ 0.042632226423434831
+ 0.042634704688016896
+ 0.042637182995851203
+ 0.042639661346934823
+ 0.042642139741264989
+ 0.042644618178838974
+ 0.042647096659653848
+ 0.04264957518370692
+ 0.042652053750995261
+ 0.042654532361516152
+ 0.042657011015266748
+ 0.042659489712244245
+ 0.04266196845244586
+ 0.042664447235868715
+ 0.042666926062510144
+ 0.042669404932367178
+ 0.042671883845437124
+ 0.042674362801717165
+ 0.042676841801204374
+ 0.042679320843896161
+ 0.042681799929789564
+ 0.042684279058881849
+ 0.042686758231170178
+ 0.042689237446651762
+ 0.042691716705323811
+ 0.042694196007183521
+ 0.042696675352228021
+ 0.042699154740454631
+ 0.042701634171860493
+ 0.042704113646442769
+ 0.042706593164198746
+ 0.042709072725125627
+ 0.042711552329220491
+ 0.042714031976480583
+ 0.042716511666903233
+ 0.042718991400485531
+ 0.042721471177224635
+ 0.042723950997117857
+ 0.042726430860162382
+ 0.042728910766355391
+ 0.042731390715694074
+ 0.042733870708175657
+ 0.042736350743797363
+ 0.042738830822556292
+ 0.04274131094444987
+ 0.042743791109475071
+ 0.042746271317629272
+ 0.042748751568909574
+ 0.042751231863313255
+ 0.042753712200837443
+ 0.042756192581479419
+ 0.042758673005236385
+ 0.042761153472105545
+ 0.04276363398208409
+ 0.042766114535169236
+ 0.04276859513135825
+ 0.042771075770648231
+ 0.042773556453036557
+ 0.042776037178520313
+ 0.042778517947096695
+ 0.042780998758763011
+ 0.042783479613516404
+ 0.042785960511354096
+ 0.042788441452273368
+ 0.042790922436271389
+ 0.042793403463345363
+ 0.042795884533492493
+ 0.042798365646710017
+ 0.042800846802995132
+ 0.04280332800234516
+ 0.04280580924475718
+ 0.04280829053022852
+ 0.042810771858756286
+ 0.042813253230337807
+ 0.042815734644970252
+ 0.042818216102650776
+ 0.042820697603376742
+ 0.04282317914714532
+ 0.042825660733953642
+ 0.042828142363799018
+ 0.042830624036678637
+ 0.042833105752589758
+ 0.042835587511529605
+ 0.042838069313495312
+ 0.042840551158484175
+ 0.042843033046493458
+ 0.042845514977520309
+ 0.042847996951561995
+ 0.042850478968615678
+ 0.042852961028678728
+ 0.042855443131748237
+ 0.042857925277821445
+ 0.042860407466895588
+ 0.042862889698967975
+ 0.042865371974035817
+ 0.042867854292096233
+ 0.04287033665314649
+ 0.042872819057183896
+ 0.042875301504205612
+ 0.042877783994208836
+ 0.04288026652719093
+ 0.042882749103149029
+ 0.042885231722080391
+ 0.042887714383982228
+ 0.042890197088851757
+ 0.042892679836686293
+ 0.042895162627482941
+ 0.042897645461239052
+ 0.042900128337951815
+ 0.04290261125761842
+ 0.042905094220236202
+ 0.042907577225802289
+ 0.042910060274314002
+ 0.0429125433657686
+ 0.042915026500163149
+ 0.042917509677495032
+ 0.042919992897761494
+ 0.042922476160959747
+ 0.042924959467086965
+ 0.042927442816140429
+ 0.042929926208117461
+ 0.042932409643015153
+ 0.04293489312083091
+ 0.042937376641561775
+ 0.042939860205205162
+ 0.042942343811758238
+ 0.042944827461218256
+ 0.04294731115358242
+ 0.042949794888847988
+ 0.042952278667012282
+ 0.042954762488072465
+ 0.042957246352025788
+ 0.042959730258869552
+ 0.042962214208600927
+ 0.042964698201217177
+ 0.042967182236715577
+ 0.042969666315093351
+ 0.042972150436347792
+ 0.042974634600476076
+ 0.042977118807475463
+ 0.042979603057343198
+ 0.042982087350076616
+ 0.0429845716856729
+ 0.042987056064129232
+ 0.04298954048544297
+ 0.042992024949611282
+ 0.042994509456631476
+ 0.042996994006500783
+ 0.042999478599216441
+ 0.043001963234775779
+ 0.043004447913175932
+ 0.043006932634414165
+ 0.043009417398487827
+ 0.043011902205394144
+ 0.04301438705513027
+ 0.043016871947693588
+ 0.043019356883081269
+ 0.043021841861290606
+ 0.043024326882318824
+ 0.043026811946163167
+ 0.043029297052820936
+ 0.04303178220228944
+ 0.043034267394565798
+ 0.043036752629647325
+ 0.043039237907531336
+ 0.043041723228215006
+ 0.043044208591695637
+ 0.04304669399797053
+ 0.043049179447036838
+ 0.043051664938891926
+ 0.04305415047353299
+ 0.043056636050957255
+ 0.043059121671162069
+ 0.043061607334144734
+ 0.043064093039902322
+ 0.043066578788432258
+ 0.043069064579731788
+ 0.043071550413798107
+ 0.043074036290628566
+ 0.043076522210220333
+ 0.043079008172570772
+ 0.043081494177677065
+ 0.043083980225536472
+ 0.043086466316146363
+ 0.043088952449503899
+ 0.043091438625606375
+ 0.043093924844451077
+ 0.043096411106035279
+ 0.043098897410356204
+ 0.043101383757411196
+ 0.043103870147197423
+ 0.043106356579712221
+ 0.043108843054952883
+ 0.043111329572916565
+ 0.043113816133600734
+ 0.04311630273700242
+ 0.043118789383119076
+ 0.043121276071947927
+ 0.043123762803486218
+ 0.043126249577731222
+ 0.043128736394680213
+ 0.043131223254330553
+ 0.043133710156679377
+ 0.043136197101724019
+ 0.043138684089461754
+ 0.043141171119889889
+ 0.043143658193005668
+ 0.043146145308806359
+ 0.043148632467289234
+ 0.043151119668451601
+ 0.043153606912290685
+ 0.043156094198803827
+ 0.043158581527988273
+ 0.043161068899841316
+ 0.043163556314360238
+ 0.043166043771542296
+ 0.043168531271384744
+ 0.043171018813884902
+ 0.043173506399040086
+ 0.043175994026847492
+ 0.043178481697304469
+ 0.043180969410408269
+ 0.043183457166156146
+ 0.043185944964545531
+ 0.043188432805573489
+ 0.043190920689237466
+ 0.043193408615534591
+ 0.043195896584462289
+ 0.043198384596017832
+ 0.04320087265019848
+ 0.043203360747001512
+ 0.043205848886424182
+ 0.043208337068463804
+ 0.043210825293117684
+ 0.043213313560383097
+ 0.043215801870257371
+ 0.043218290222737696
+ 0.043220778617821455
+ 0.043223267055505804
+ 0.043225755535788217
+ 0.043228244058665877
+ 0.043230732624136146
+ 0.043233221232196188
+ 0.043235709882843365
+ 0.043238198576074943
+ 0.043240687311888272
+ 0.043243176090280611
+ 0.043245664911249274
+ 0.043248153774791492
+ 0.0432506426809047
+ 0.04325313162958596
+ 0.043255620620832776
+ 0.043258109654642399
+ 0.043260598731011984
+ 0.043263087849939021
+ 0.04326557701142069
+ 0.043268066215454301
+ 0.043270555462037202
+ 0.043273044751166612
+ 0.043275534082839878
+ 0.043278023457054317
+ 0.043280512873807214
+ 0.043283002333095809
+ 0.043285491834917464
+ 0.043287981379269522
+ 0.043290470966149151
+ 0.043292960595553764
+ 0.043295450267480606
+ 0.043297939981927047
+ 0.043300429738890249
+ 0.043302919538367644
+ 0.04330540938035652
+ 0.043307899264854094
+ 0.043310389191857791
+ 0.043312879161364864
+ 0.043315369173372607
+ 0.043317859227878258
+ 0.043320349324879256
+ 0.04332283946437282
+ 0.043325329646356277
+ 0.0433278198708269
+ 0.043330310137782116
+ 0.043332800447219058
+ 0.043335290799135173
+ 0.043337781193527714
+ 0.043340271630393987
+ 0.043342762109731349
+ 0.043345252631537004
+ 0.043347743195808384
+ 0.043350233802542694
+ 0.043352724451737344
+ 0.043355215143389567
+ 0.043357705877496662
+ 0.043360196654056056
+ 0.043362687473064945
+ 0.043365178334520728
+ 0.043367669238420545
+ 0.043370160184761981
+ 0.043372651173542186
+ 0.043375142204758445
+ 0.043377633278408163
+ 0.043380124394488614
+ 0.043382615552997064
+ 0.043385106753930994
+ 0.04338759799728753
+ 0.043390089283064065
+ 0.043392580611257982
+ 0.04339507198186645
+ 0.043397563394886936
+ 0.043400054850316672
+ 0.043402546348153034
+ 0.043405037888393311
+ 0.043407529471034809
+ 0.043410021096074815
+ 0.043412512763510734
+ 0.043415004473339867
+ 0.043417496225559508
+ 0.043419988020166986
+ 0.043422479857159621
+ 0.043424971736534763
+ 0.043427463658289756
+ 0.043429955622421829
+ 0.043432447628928318
+ 0.043434939677806601
+ 0.043437431769054104
+ 0.043439923902667918
+ 0.043442416078645532
+ 0.043444908296984261
+ 0.043447400557681391
+ 0.043449892860734203
+ 0.043452385206140157
+ 0.043454877593896511
+ 0.043457370024000498
+ 0.043459862496449612
+ 0.043462355011241127
+ 0.043464847568372336
+ 0.043467340167840547
+ 0.04346983280964313
+ 0.043472325493777469
+ 0.043474818220240879
+ 0.043477310989030564
+ 0.043479803800143955
+ 0.043482296653578438
+ 0.043484789549331201
+ 0.043487282487399775
+ 0.04348977546778128
+ 0.043492268490473197
+ 0.043494761555472848
+ 0.043497254662777478
+ 0.043499747812384498
+ 0.043502241004291238
+ 0.043504734238494991
+ 0.043507227514993238
+ 0.043509720833783058
+ 0.043512214194862051
+ 0.043514707598227335
+ 0.043517201043876415
+ 0.04351969453180652
+ 0.043522188062015119
+ 0.043524681634499428
+ 0.043527175249256797
+ 0.043529668906284638
+ 0.043532162605580217
+ 0.043534656347140988
+ 0.043537150130964153
+ 0.043539643957047139
+ 0.043542137825387239
+ 0.043544631735981866
+ 0.043547125688828223
+ 0.043549619683923853
+ 0.043552113721265981
+ 0.043554607800851949
+ 0.043557101922679135
+ 0.043559596086744881
+ 0.04356209029304655
+ 0.043564584541581471
+ 0.043567078832346909
+ 0.043569573165340367
+ 0.043572067540559062
+ 0.043574561958000392
+ 0.043577056417661734
+ 0.043579550919540418
+ 0.043582045463633791
+ 0.043584540049939134
+ 0.043587034678453901
+ 0.043589529349175385
+ 0.043592024062101005
+ 0.043594518817228034
+ 0.043597013614553808
+ 0.043599508454075779
+ 0.043602003335791249
+ 0.043604498259697505
+ 0.043606993225792028
+ 0.043609488234072062
+ 0.043611983284535014
+ 0.043614478377178259
+ 0.043616973511999065
+ 0.043619468688994883
+ 0.043621963908163051
+ 0.043624459169500862
+ 0.043626954473005776
+ 0.043629449818675066
+ 0.043631945206506116
+ 0.043634440636496227
+ 0.04363693610864286
+ 0.043639431622943321
+ 0.043641927179395024
+ 0.043644422777995288
+ 0.04364691841874143
+ 0.043649414101630826
+ 0.043651909826660902
+ 0.043654405593828952
+ 0.043656901403132345
+ 0.043659397254568494
+ 0.043661893148134762
+ 0.043664389083828428
+ 0.043666885061646919
+ 0.043669381081587619
+ 0.043671877143647841
+ 0.043674373247824951
+ 0.043676869394116365
+ 0.04367936558251935
+ 0.043681861813031436
+ 0.04368435808564982
+ 0.04368685440037199
+ 0.043689350757195253
+ 0.043691847156116959
+ 0.043694343597134526
+ 0.043696840080245283
+ 0.043699336605446698
+ 0.043701833172736022
+ 0.04370432978211064
+ 0.04370682643356797
+ 0.043709323127105348
+ 0.043711819862720158
+ 0.043714316640409777
+ 0.043716813460171568
+ 0.043719310322002901
+ 0.043721807225901223
+ 0.043724304171863723
+ 0.043726801159888008
+ 0.043729298189971233
+ 0.043731795262110976
+ 0.043734292376304419
+ 0.043736789532549086
+ 0.043739286730842285
+ 0.043741783971181385
+ 0.043744281253563784
+ 0.043746778577986839
+ 0.043749275944448031
+ 0.043751773352944549
+ 0.043754270803473924
+ 0.043756768296033421
+ 0.043759265830620592
+ 0.043761763407232653
+ 0.043764261025867057
+ 0.043766758686521141
+ 0.043769256389192289
+ 0.043771754133877974
+ 0.043774251920575435
+ 0.04377674974928214
+ 0.043779247619995541
+ 0.043781745532712864
+ 0.043784243487431568
+ 0.043786741484149037
+ 0.043789239522862705
+ 0.043791737603569851
+ 0.043794235726267963
+ 0.043796733890954322
+ 0.043799232097626394
+ 0.043801730346281514
+ 0.043804228636917145
+ 0.043806726969530571
+ 0.04380922534411931
+ 0.043811723760680592
+ 0.04381422221921194
+ 0.043816720719710697
+ 0.043819219262174247
+ 0.043821717846599904
+ 0.043824216472985192
+ 0.043826715141327459
+ 0.043829213851624055
+ 0.043831712603872336
+ 0.043834211398069853
+ 0.043836710234213816
+ 0.043839209112301741
+ 0.043841708032331027
+ 0.043844206994298911
+ 0.043846705998202937
+ 0.043849205044040503
+ 0.043851704131808902
+ 0.043854203261505659
+ 0.043856702433128031
+ 0.043859201646673458
+ 0.043861700902139381
+ 0.043864200199523168
+ 0.043866699538822281
+ 0.043869198920033985
+ 0.043871698343155768
+ 0.043874197808185036
+ 0.043876697315119124
+ 0.043879196863955472
+ 0.043881696454691539
+ 0.043884196087324599
+ 0.043886695761852113
+ 0.043889195478271553
+ 0.043891695236580215
+ 0.043894195036775538
+ 0.043896694878854899
+ 0.043899194762815778
+ 0.043901694688655526
+ 0.043904194656371513
+ 0.043906694665961185
+ 0.043909194717421926
+ 0.043911694810751169
+ 0.043914194945946276
+ 0.043916695123004744
+ 0.043919195341923865
+ 0.043921695602701122
+ 0.043924195905333842
+ 0.043926696249819541
+ 0.043929196636155514
+ 0.043931697064339283
+ 0.043934197534368197
+ 0.043936698046239668
+ 0.043939198599951074
+ 0.043941699195499853
+ 0.043944199832883453
+ 0.043946700512099215
+ 0.043949201233144566
+ 0.043951701996017015
+ 0.043954202800713792
+ 0.043956703647232427
+ 0.043959204535570402
+ 0.043961705465724983
+ 0.043964206437693658
+ 0.043966707451473817
+ 0.043969208507062908
+ 0.043971709604458273
+ 0.043974210743657434
+ 0.043976711924657727
+ 0.043979213147456633
+ 0.043981714412051481
+ 0.043984215718439704
+ 0.043986717066618802
+ 0.043989218456586092
+ 0.04399171988833904
+ 0.043994221361875113
+ 0.043996722877191675
+ 0.043999224434286117
+ 0.044001726033155879
+ 0.044004227673798441
+ 0.044006729356211111
+ 0.044009231080391453
+ 0.044011732846336721
+ 0.044014234654044471
+ 0.044016736503512156
+ 0.044019238394737002
+ 0.044021740327716649
+ 0.044024242302448363
+ 0.044026744318929695
+ 0.044029246377157889
+ 0.044031748477130615
+ 0.044034250618845097
+ 0.044036752802298851
+ 0.044039255027489281
+ 0.044041757294413807
+ 0.04404425960306986
+ 0.044046761953454881
+ 0.044049264345566309
+ 0.044051766779401529
+ 0.044054269254957923
+ 0.044056771772233098
+ 0.044059274331224363
+ 0.044061776931929079
+ 0.04406427957434482
+ 0.044066782258468953
+ 0.04406928498429892
+ 0.044071787751832112
+ 0.044074290561065946
+ 0.04407679341199798
+ 0.04407929630462553
+ 0.044081799238946062
+ 0.044084302214957051
+ 0.044086805232655818
+ 0.044089308292039921
+ 0.044091811393106695
+ 0.044094314535853676
+ 0.044096817720278236
+ 0.0440993209463778
+ 0.044101824214149876
+ 0.04410432752359178
+ 0.044106830874701082
+ 0.044109334267475139
+ 0.044111837701911398
+ 0.04411434117800736
+ 0.044116844695760347
+ 0.044119348255167855
+ 0.044121851856227377
+ 0.044124355498936306
+ 0.044126859183292018
+ 0.044129362909292133
+ 0.044131866676933897
+ 0.04413437048621488
+ 0.044136874337132495
+ 0.044139378229684119
+ 0.044141882163867212
+ 0.044144386139679269
+ 0.044146890157117841
+ 0.044149394216180096
+ 0.044151898316863655
+ 0.044154402459165965
+ 0.044156906643084491
+ 0.044159410868616536
+ 0.044161915135759684
+ 0.044164419444511327
+ 0.04416692379486898
+ 0.044169428186830041
+ 0.044171932620391888
+ 0.044174437095552063
+ 0.044176941612307979
+ 0.044179446170657111
+ 0.044181950770596848
+ 0.044184455412124748
+ 0.044186960095238134
+ 0.044189464819934549
+ 0.044191969586211403
+ 0.044194474394066131
+ 0.044196979243496283
+ 0.044199484134499194
+ 0.044201989067072373
+ 0.044204494041213266
+ 0.044206999056919313
+ 0.044209504114188017
+ 0.044212009213016754
+ 0.044214514353403025
+ 0.044217019535344307
+ 0.044219524758838037
+ 0.044222030023881656
+ 0.044224535330472624
+ 0.044227040678608401
+ 0.044229546068286468
+ 0.044232051499504266
+ 0.044234556972259191
+ 0.04423706248654883
+ 0.044239568042370531
+ 0.044242073639721893
+ 0.044244579278600128
+ 0.044247084959003015
+ 0.044249590680927736
+ 0.044252096444371898
+ 0.044254602249332885
+ 0.044257108095808274
+ 0.044259613983795403
+ 0.044262119913291841
+ 0.044264625884294924
+ 0.044267131896802266
+ 0.044269637950811194
+ 0.04427214404631926
+ 0.044274650183323917
+ 0.044277156361822605
+ 0.044279662581812831
+ 0.044282168843292009
+ 0.044284675146257668
+ 0.044287181490707178
+ 0.044289687876638152
+ 0.044292194304047877
+ 0.044294700772933966
+ 0.044297207283293817
+ 0.044299713835124967
+ 0.044302220428424799
+ 0.044304727063190788
+ 0.044307233739420505
+ 0.04430974045711128
+ 0.044312247216260758
+ 0.044314754016866229
+ 0.044317260858925338
+ 0.044319767742435415
+ 0.044322274667393934
+ 0.044324781633798493
+ 0.044327288641646478
+ 0.044329795690935397
+ 0.044332302781662683
+ 0.044334809913825803
+ 0.044337317087422293
+ 0.044339824302449649
+ 0.044342331558905247
+ 0.044344838856786611
+ 0.044347346196091257
+ 0.044349853576816596
+ 0.044352360998960123
+ 0.04435486846251939
+ 0.044357375967491779
+ 0.044359883513874786
+ 0.044362391101665989
+ 0.044364898730862717
+ 0.044367406401462528
+ 0.044369914113462916
+ 0.044372421866861356
+ 0.044374929661655321
+ 0.044377437497842336
+ 0.044379945375419706
+ 0.044382453294385164
+ 0.044384961254736059
+ 0.044387469256469851
+ 0.044389977299584098
+ 0.044392485384076245
+ 0.044394993509943775
+ 0.044397501677184162
+ 0.044400009885794935
+ 0.044402518135773582
+ 0.044405026427117557
+ 0.044407534759824306
+ 0.044410043133891429
+ 0.044412551549316344
+ 0.044415060006096539
+ 0.04441756850422944
+ 0.044420077043712675
+ 0.044422585624543647
+ 0.044425094246719858
+ 0.04442760291023886
+ 0.044430111615097995
+ 0.044432620361294951
+ 0.044435129148827017
+ 0.044437637977691825
+ 0.044440146847886809
+ 0.044442655759409568
+ 0.044445164712257401
+ 0.044447673706427965
+ 0.044450182741918663
+ 0.044452691818727054
+ 0.044455200936850577
+ 0.044457710096286747
+ 0.04446021929703306
+ 0.044462728539087067
+ 0.044465237822446185
+ 0.044467747147107918
+ 0.044470256513069857
+ 0.04447276592032938
+ 0.04447527536888405
+ 0.044477784858731308
+ 0.044480294389868717
+ 0.044482803962293815
+ 0.044485313576003993
+ 0.044487823230996752
+ 0.044490332927269734
+ 0.044492842664820308
+ 0.044495352443646004
+ 0.044497862263744387
+ 0.04450037212511284
+ 0.044502882027748936
+ 0.04450539197165021
+ 0.04450790195681411
+ 0.044510411983238171
+ 0.044512922050919938
+ 0.044515432159856802
+ 0.044517942310046341
+ 0.044520452501486112
+ 0.044522962734173457
+ 0.044525473008106047
+ 0.044527983323281319
+ 0.044530493679696768
+ 0.044533004077350016
+ 0.04453551451623837
+ 0.044538024996359525
+ 0.044540535517710922
+ 0.044543046080289965
+ 0.044545556684094337
+ 0.044548067329121484
+ 0.044550578015368887
+ 0.044553088742834049
+ 0.044555599511514478
+ 0.044558110321407794
+ 0.044560621172511368
+ 0.044563132064822812
+ 0.044565642998339622
+ 0.044568153973059292
+ 0.04457066498897929
+ 0.044573176046097236
+ 0.044575687144410479
+ 0.044578198283916751
+ 0.044580709464613455
+ 0.044583220686498046
+ 0.044585731949568108
+ 0.044588243253821228
+ 0.044590754599254795
+ 0.044593265985866389
+ 0.044595777413653524
+ 0.044598288882613711
+ 0.044600800392744465
+ 0.044603311944043302
+ 0.044605823536507792
+ 0.044608335170135453
+ 0.044610846844923675
+ 0.044613358560870169
+ 0.044615870317972296
+ 0.044618382116227637
+ 0.044620893955633761
+ 0.044623405836188158
+ 0.044625917757888309
+ 0.044628429720731784
+ 0.044630941724716114
+ 0.04463345376983878
+ 0.044635965856097332
+ 0.044638477983489321
+ 0.044640990152012158
+ 0.044643502361663548
+ 0.044646014612440901
+ 0.044648526904341811
+ 0.044651039237363702
+ 0.044653551611504159
+ 0.044656064026760797
+ 0.044658576483130999
+ 0.044661088980612343
+ 0.044663601519202456
+ 0.044666114098898674
+ 0.044668626719698706
+ 0.044671139381599972
+ 0.044673652084600113
+ 0.044676164828696539
+ 0.044678677613886837
+ 0.04468119044016855
+ 0.044683703307539166
+ 0.044686216215996256
+ 0.044688729165537414
+ 0.044691242156160056
+ 0.044693755187861825
+ 0.044696268260640167
+ 0.044698781374492617
+ 0.044701294529416735
+ 0.04470380772541014
+ 0.044706320962470222
+ 0.044708834240594603
+ 0.044711347559780817
+ 0.044713860920026376
+ 0.044716374321328842
+ 0.044718887763685725
+ 0.044721401247094589
+ 0.044723914771553033
+ 0.044726428337058463
+ 0.044728941943608519
+ 0.044731455591200689
+ 0.044733969279832572
+ 0.044736483009501636
+ 0.044738996780205466
+ 0.044741510591941612
+ 0.044744024444707535
+ 0.044746538338500896
+ 0.044749052273319233
+ 0.044751566249159956
+ 0.044754080266020776
+ 0.04475659432389914
+ 0.044759108422792536
+ 0.044761622562698625
+ 0.04476413674361495
+ 0.044766650965538987
+ 0.044769165228468341
+ 0.044771679532400535
+ 0.044774193877333092
+ 0.044776708263263625
+ 0.044779222690189573
+ 0.044781737158108605
+ 0.044784251667018195
+ 0.044786766216915901
+ 0.044789280807799349
+ 0.044791795439666
+ 0.044794310112513384
+ 0.044796824826339135
+ 0.044799339581140789
+ 0.044801854376915883
+ 0.044804369213661939
+ 0.044806884091376585
+ 0.044809399010057246
+ 0.04481191396970164
+ 0.044814428970307171
+ 0.044816944011871487
+ 0.044819459094392097
+ 0.044821974217866593
+ 0.044824489382292512
+ 0.044827004587667404
+ 0.044829519833988848
+ 0.044832035121254402
+ 0.044834550449461594
+ 0.044837065818607975
+ 0.044839581228691139
+ 0.0448420966797086
+ 0.04484461217165802
+ 0.044847127704536825
+ 0.04484964327834267
+ 0.044852158893073008
+ 0.044854674548725583
+ 0.044857190245297766
+ 0.044859705982787212
+ 0.044862221761191493
+ 0.044864737580508081
+ 0.044867253440734639
+ 0.044869769341868794
+ 0.044872285283907902
+ 0.044874801266849611
+ 0.044877317290691547
+ 0.044879833355431324
+ 0.044882349461066305
+ 0.044884865607594228
+ 0.044887381795012574
+ 0.044889898023318983
+ 0.044892414292510979
+ 0.044894930602586071
+ 0.044897446953541927
+ 0.044899963345376132
+ 0.044902479778086084
+ 0.0449049962516695
+ 0.044907512766123918
+ 0.044910029321446908
+ 0.044912545917636056
+ 0.044915062554688918
+ 0.044917579232602978
+ 0.04492009595137595
+ 0.044922612711005304
+ 0.044925129511488693
+ 0.044927646352823654
+ 0.04493016323500771
+ 0.04493268015803855
+ 0.044935197121913621
+ 0.044937714126630619
+ 0.044940231172186977
+ 0.044942748258580335
+ 0.044945265385808328
+ 0.044947782553868512
+ 0.044950299762758349
+ 0.044952817012475575
+ 0.044955334303017687
+ 0.0449578516343822
+ 0.044960369006566879
+ 0.044962886419569116
+ 0.044965403873386565
+ 0.044967921368016778
+ 0.044970438903457394
+ 0.04497295647970595
+ 0.044975474096760018
+ 0.044977991754617218
+ 0.044980509453275107
+ 0.044983027192731243
+ 0.044985544972983231
+ 0.044988062794028637
+ 0.044990580655865087
+ 0.044993098558490145
+ 0.044995616501901398
+ 0.044998134486096394
+ 0.045000652511072763
+ 0.045003170576828053
+ 0.045005688683359885
+ 0.045008206830665844
+ 0.045010725018743467
+ 0.045013243247590401
+ 0.045015761517204177
+ 0.045018279827582358
+ 0.045020798178722676
+ 0.045023316570622647
+ 0.045025835003279772
+ 0.045028353476691707
+ 0.045030871990856099
+ 0.045033390545770491
+ 0.04503590914143242
+ 0.045038427777839493
+ 0.045040946454989315
+ 0.045043465172879646
+ 0.045045983931507765
+ 0.045048502730871499
+ 0.045051021570968332
+ 0.04505354045179593
+ 0.045056059373351803
+ 0.045058578335633641
+ 0.045061097338638993
+ 0.045063616382365404
+ 0.045066135466810563
+ 0.045068654591971936
+ 0.045071173757847298
+ 0.04507369296443408
+ 0.045076212211729957
+ 0.04507873149973253
+ 0.045081250828439411
+ 0.045083770197848087
+ 0.04508628960795627
+ 0.045088809058761614
+ 0.045091328550261538
+ 0.045093848082453765
+ 0.045096367655335909
+ 0.045098887268905451
+ 0.045101406923160156
+ 0.045103926618097485
+ 0.0451064463537151
+ 0.045108966130010572
+ 0.045111485946981542
+ 0.045114005804625622
+ 0.045116525702940405
+ 0.045119045641923428
+ 0.045121565621572449
+ 0.045124085641884901
+ 0.045126605702858473
+ 0.045129125804490772
+ 0.045131645946779417
+ 0.045134166129721966
+ 0.045136686353316059
+ 0.045139206617559283
+ 0.045141726922449207
+ 0.045144247267983571
+ 0.045146767654159918
+ 0.045149288080975736
+ 0.04515180854842879
+ 0.045154329056516687
+ 0.045156849605236908
+ 0.045159370194587253
+ 0.045161890824565135
+ 0.045164411495168262
+ 0.045166932206394242
+ 0.045169452958240729
+ 0.045171973750705204
+ 0.045174494583785481
+ 0.045177015457478979
+ 0.045179536371783416
+ 0.045182057326696376
+ 0.045184578322215431
+ 0.045187099358338367
+ 0.045189620435062569
+ 0.045192141552385781
+ 0.045194662710305651
+ 0.045197183908819674
+ 0.045199705147925526
+ 0.04520222642762093
+ 0.045204747747903382
+ 0.045207269108770501
+ 0.04520979051021988
+ 0.045212311952249271
+ 0.045214833434856175
+ 0.045217354958038275
+ 0.045219876521793184
+ 0.045222398126118439
+ 0.045224919771011798
+ 0.045227441456470743
+ 0.045229963182493012
+ 0.045232484949076189
+ 0.045235006756217874
+ 0.045237528603915667
+ 0.045240050492167241
+ 0.045242572420970309
+ 0.045245094390322219
+ 0.045247616400220896
+ 0.045250138450663835
+ 0.045252660541648629
+ 0.045255182673172939
+ 0.045257704845234455
+ 0.04526022705783074
+ 0.045262749310959347
+ 0.045265271604618011
+ 0.045267793938804347
+ 0.045270316313516037
+ 0.045272838728750549
+ 0.045275361184505626
+ 0.045277883680778876
+ 0.045280406217567938
+ 0.04528292879487044
+ 0.045285451412683989
+ 0.04528797407100621
+ 0.045290496769834807
+ 0.045293019509167344
+ 0.045295542289001456
+ 0.045298065109334845
+ 0.045300587970165118
+ 0.045303110871489777
+ 0.045305633813306663
+ 0.045308156795613251
+ 0.045310679818407265
+ 0.045313202881686318
+ 0.045315725985448065
+ 0.045318249129690034
+ 0.045320772314410014
+ 0.045323295539605561
+ 0.04532581880527433
+ 0.045328342111413907
+ 0.045330865458022056
+ 0.045333388845096287
+ 0.04533591227263431
+ 0.045338435740633766
+ 0.045340959249092205
+ 0.045343482798007387
+ 0.04534600638737691
+ 0.045348530017198428
+ 0.045351053687469479
+ 0.045353577398187864
+ 0.045356101149351152
+ 0.045358624940956889
+ 0.045361148773002902
+ 0.045363672645486734
+ 0.045366196558406041
+ 0.045368720511758401
+ 0.045371244505541621
+ 0.045373768539753181
+ 0.045376292614390891
+ 0.045378816729452216
+ 0.04538134088493493
+ 0.045383865080836666
+ 0.04538638931715492
+ 0.04538891359388756
+ 0.045391437911032159
+ 0.045393962268586302
+ 0.045396486666547664
+ 0.045399011104913956
+ 0.045401535583682769
+ 0.045404060102851772
+ 0.045406584662418627
+ 0.045409109262380933
+ 0.045411633902736406
+ 0.045414158583482675
+ 0.045416683304617345
+ 0.045419208066138174
+ 0.045421732868042693
+ 0.045424257710328646
+ 0.045426782592993695
+ 0.045429307516035383
+ 0.045431832479451498
+ 0.045434357483239603
+ 0.045436882527397401
+ 0.045439407611922521
+ 0.045441932736812615
+ 0.045444457902065409
+ 0.045446983107678453
+ 0.045449508353649429
+ 0.045452033639976124
+ 0.045454558966656032
+ 0.045457084333686913
+ 0.045459609741066324
+ 0.045462135188792045
+ 0.045464660676861689
+ 0.045467186205272889
+ 0.045469711774023321
+ 0.045472237383110646
+ 0.045474763032532617
+ 0.045477288722286721
+ 0.045479814452370738
+ 0.045482340222782261
+ 0.045484866033519027
+ 0.045487391884578683
+ 0.04548991777595885
+ 0.045492443707657239
+ 0.045494969679671496
+ 0.045497495691999283
+ 0.045500021744638276
+ 0.045502547837586185
+ 0.045505073970840519
+ 0.045507600144399085
+ 0.04551012635825958
+ 0.045512652612419595
+ 0.045515178906876799
+ 0.045517705241628868
+ 0.045520231616673464
+ 0.045522758032008302
+ 0.045525284487631046
+ 0.045527810983539294
+ 0.045530337519730742
+ 0.045532864096203128
+ 0.045535390712954094
+ 0.045537917369981244
+ 0.045540444067282304
+ 0.045542970804855018
+ 0.045545497582696916
+ 0.045548024400805742
+ 0.045550551259179194
+ 0.045553078157814966
+ 0.045555605096710625
+ 0.045558132075863962
+ 0.045560659095272557
+ 0.04556318615493414
+ 0.045565713254846402
+ 0.045568240395006974
+ 0.045570767575413541
+ 0.045573294796063819
+ 0.045575822056955435
+ 0.045578349358086176
+ 0.045580876699453571
+ 0.045583404081055358
+ 0.045585931502889268
+ 0.045588458964952887
+ 0.045590986467243994
+ 0.045593514009760222
+ 0.045596041592499262
+ 0.04559856921545876
+ 0.04560109687863638
+ 0.045603624582029899
+ 0.045606152325636952
+ 0.045608680109455277
+ 0.045611207933482424
+ 0.045613735797716153
+ 0.045616263702154235
+ 0.045618791646794186
+ 0.045621319631633787
+ 0.045623847656670768
+ 0.04562637572190277
+ 0.045628903827327413
+ 0.045631431972942435
+ 0.045633960158745532
+ 0.045636488384734435
+ 0.04563901665090675
+ 0.045641544957260222
+ 0.045644073303792491
+ 0.045646601690501304
+ 0.045649130117384355
+ 0.045651658584439203
+ 0.045654187091663703
+ 0.04565671563905551
+ 0.045659244226612272
+ 0.04566177285433165
+ 0.045664301522211466
+ 0.045666830230249242
+ 0.045669358978442799
+ 0.045671887766789793
+ 0.045674416595287884
+ 0.045676945463934825
+ 0.045679474372728318
+ 0.045682003321665922
+ 0.04568453231074552
+ 0.045687061339964662
+ 0.045689590409321149
+ 0.045692119518812656
+ 0.045694648668436776
+ 0.04569717785819135
+ 0.045699707088074012
+ 0.045702236358082467
+ 0.045704765668214395
+ 0.045707295018467479
+ 0.045709824408839458
+ 0.045712353839328042
+ 0.045714883309930919
+ 0.045717412820645738
+ 0.045719942371470257
+ 0.045722471962402249
+ 0.045725001593439257
+ 0.045727531264579034
+ 0.045730060975819421
+ 0.045732590727157872
+ 0.045735120518592319
+ 0.045737650350120375
+ 0.045740180221739687
+ 0.045742710133448113
+ 0.045745240085243118
+ 0.045747770077122676
+ 0.045750300109084319
+ 0.045752830181125873
+ 0.045755360293244902
+ 0.045757890445439174
+ 0.045760420637706453
+ 0.045762950870044346
+ 0.045765481142450694
+ 0.04576801145492311
+ 0.04577054180745932
+ 0.045773072200057052
+ 0.045775602632714019
+ 0.045778133105427839
+ 0.04578066361819641
+ 0.045783194171017276
+ 0.045785724763888216
+ 0.045788255396806914
+ 0.045790786069771085
+ 0.045793316782778481
+ 0.045795847535826856
+ 0.045798378328913786
+ 0.0458009091620371
+ 0.045803440035194445
+ 0.045805970948383595
+ 0.04580850190160219
+ 0.045811032894848044
+ 0.045813563928118757
+ 0.045816095001412149
+ 0.045818626114725952
+ 0.045821157268057737
+ 0.045823688461405353
+ 0.045826219694766503
+ 0.045828750968138862
+ 0.045831282281520176
+ 0.045833813634908099
+ 0.045836345028300481
+ 0.045838876461694961
+ 0.045841407935089271
+ 0.045843939448481121
+ 0.045846471001868193
+ 0.045849002595248323
+ 0.045851534228619137
+ 0.045854065901978408
+ 0.045856597615323867
+ 0.045859129368653169
+ 0.0458616611619641
+ 0.045864192995254356
+ 0.045866724868521669
+ 0.045869256781763755
+ 0.045871788734978436
+ 0.0458743207281632
+ 0.045876852761316075
+ 0.045879384834434579
+ 0.045881916947516511
+ 0.045884449100559555
+ 0.045886981293561523
+ 0.045889513526520063
+ 0.045892045799432929
+ 0.045894578112297871
+ 0.045897110465112634
+ 0.04589964285787488
+ 0.045902175290582332
+ 0.045904707763232855
+ 0.045907240275824032
+ 0.045909772828353637
+ 0.045912305420819512
+ 0.045914838053219213
+ 0.045917370725550626
+ 0.04591990343781132
+ 0.045922436189999208
+ 0.045924968982111888
+ 0.045927501814147162
+ 0.045930034686102739
+ 0.04593256759797635
+ 0.045935100549765767
+ 0.045937633541468736
+ 0.045940166573082961
+ 0.045942699644606136
+ 0.045945232756036028
+ 0.04594776590737043
+ 0.045950299098607095
+ 0.045952832329743627
+ 0.045955365600777877
+ 0.04595789891170754
+ 0.045960432262530396
+ 0.045962965653244141
+ 0.045965499083846499
+ 0.045968032554335285
+ 0.045970566064708215
+ 0.045973099614962938
+ 0.045975633205097351
+ 0.045978166835109122
+ 0.045980700504995926
+ 0.045983234214755579
+ 0.045985767964385887
+ 0.045988301753884485
+ 0.045990835583249172
+ 0.045993369452477631
+ 0.045995903361567704
+ 0.045998437310517108
+ 0.046000971299323533
+ 0.046003505327984785
+ 0.046006039396498555
+ 0.046008573504862711
+ 0.046011107653074833
+ 0.046013641841132762
+ 0.04601617606903427
+ 0.046018710336777027
+ 0.046021244644358882
+ 0.046023778991777495
+ 0.046026313379030681
+ 0.046028847806116109
+ 0.046031382273031655
+ 0.046033916779774954
+ 0.046036451326343805
+ 0.046038985912735954
+ 0.046041520538949172
+ 0.046044055204981178
+ 0.046046589910829834
+ 0.04604912465649269
+ 0.046051659441967742
+ 0.046054194267252525
+ 0.046056729132344883
+ 0.046059264037242587
+ 0.04606179898194343
+ 0.046064333966445117
+ 0.046066868990745365
+ 0.046069404054842021
+ 0.046071939158732818
+ 0.046074474302415458
+ 0.046077009485887721
+ 0.046079544709147414
+ 0.046082079972192248
+ 0.046084615275019995
+ 0.046087150617628435
+ 0.046089686000015298
+ 0.046092221422178371
+ 0.046094756884115365
+ 0.046097292385824142
+ 0.046099827927302356
+ 0.046102363508547878
+ 0.04610489912955832
+ 0.046107434790331588
+ 0.046109970490865383
+ 0.046112506231157452
+ 0.046115042011205636
+ 0.046117577831007658
+ 0.046120113690561237
+ 0.046122649589864138
+ 0.046125185528914245
+ 0.046127721507709232
+ 0.046130257526246832
+ 0.046132793584524906
+ 0.046135329682541165
+ 0.046137865820293354
+ 0.046140401997779294
+ 0.046142938214996779
+ 0.046145474471943469
+ 0.046148010768617284
+ 0.046150547105015829
+ 0.046153083481137024
+ 0.046155619896978556
+ 0.046158156352538199
+ 0.046160692847813739
+ 0.046163229382802921
+ 0.046165765957503567
+ 0.046168302571913462
+ 0.046170839226030325
+ 0.046173375919851913
+ 0.046175912653376068
+ 0.046178449426600543
+ 0.046180986239523089
+ 0.0461835230921415
+ 0.046186059984453583
+ 0.046188596916457041
+ 0.046191133888149709
+ 0.046193670899529332
+ 0.046196207950593683
+ 0.046198745041340541
+ 0.046201282171767756
+ 0.046203819341873058
+ 0.046206356551654164
+ 0.046208893801108993
+ 0.046211431090235178
+ 0.046213968419030527
+ 0.046216505787492937
+ 0.046219043195620077
+ 0.046221580643409768
+ 0.046224118130859783
+ 0.046226655657967838
+ 0.046229193224731888
+ 0.046231730831149544
+ 0.046234268477218676
+ 0.046236806162937016
+ 0.046239343888302489
+ 0.046241881653312708
+ 0.046244419457965501
+ 0.046246957302258668
+ 0.046249495186190058
+ 0.046252033109757271
+ 0.046254571072958377
+ 0.046257109075790934
+ 0.046259647118252846
+ 0.046262185200341831
+ 0.04626472332205573
+ 0.046267261483392282
+ 0.046269799684349334
+ 0.046272337924924599
+ 0.046274876205115958
+ 0.046277414524921151
+ 0.046279952884337977
+ 0.04628249128336423
+ 0.046285029721997648
+ 0.046287568200236093
+ 0.046290106718077366
+ 0.04629264527551917
+ 0.046295183872559466
+ 0.046297722509195845
+ 0.046300261185426198
+ 0.046302799901248359
+ 0.04630533865666004
+ 0.04630787745165911
+ 0.046310416286243335
+ 0.046312955160410507
+ 0.046315494074158456
+ 0.04631803302748487
+ 0.046320572020387675
+ 0.046323111052864595
+ 0.046325650124913471
+ 0.046328189236532022
+ 0.046330728387718144
+ 0.046333267578469624
+ 0.046335806808784248
+ 0.046338346078659734
+ 0.046340885388094021
+ 0.046343424737084749
+ 0.046345964125629927
+ 0.046348503553727147
+ 0.046351043021374369
+ 0.046353582528569297
+ 0.046356122075309779
+ 0.046358661661593623
+ 0.046361201287418607
+ 0.046363740952782562
+ 0.046366280657683182
+ 0.046368820402118455
+ 0.04637136018608614
+ 0.046373900009583892
+ 0.046376439872609684
+ 0.046378979775161248
+ 0.046381519717236377
+ 0.04638405969883299
+ 0.046386599719948796
+ 0.046389139780581561
+ 0.04639167988072921
+ 0.046394220020389447
+ 0.046396760199560128
+ 0.046399300418239121
+ 0.046401840676424139
+ 0.04640438097411307
+ 0.046406921311303653
+ 0.046409461687993731
+ 0.046412002104181158
+ 0.04641454255986361
+ 0.046417083055039075
+ 0.046419623589705312
+ 0.046422164163860108
+ 0.046424704777501227
+ 0.046427245430626547
+ 0.046429786123233875
+ 0.046432326855321046
+ 0.046434867626885874
+ 0.046437408437926118
+ 0.046439949288439607
+ 0.046442490178424195
+ 0.04644503110787767
+ 0.046447572076797887
+ 0.046450113085182564
+ 0.046452654133029674
+ 0.046455195220336962
+ 0.046457736347102242
+ 0.046460277513323295
+ 0.046462818718997975
+ 0.046465359964124132
+ 0.046467901248699581
+ 0.046470442572722093
+ 0.046472983936189538
+ 0.046475525339099745
+ 0.046478066781450424
+ 0.046480608263239589
+ 0.046483149784464904
+ 0.046485691345124189
+ 0.046488232945215445
+ 0.046490774584736265
+ 0.04649331626368465
+ 0.046495857982058339
+ 0.046498399739855173
+ 0.046500941537073022
+ 0.04650348337370961
+ 0.046506025249762828
+ 0.046508567165230622
+ 0.046511109120110583
+ 0.046513651114400673
+ 0.046516193148098718
+ 0.046518735221202555
+ 0.04652127733370999
+ 0.046523819485618803
+ 0.046526361676926878
+ 0.046528903907632126
+ 0.046531446177732201
+ 0.046533988487225057
+ 0.046536530836108488
+ 0.046539073224380376
+ 0.046541615652038446
+ 0.046544158119080643
+ 0.046546700625504679
+ 0.046549243171308513
+ 0.046551785756489938
+ 0.04655432838104677
+ 0.046556871044976876
+ 0.046559413748277982
+ 0.046561956490948096
+ 0.046564499272984936
+ 0.046567042094386293
+ 0.046569584955150158
+ 0.046572127855274217
+ 0.046574670794756461
+ 0.046577213773594646
+ 0.046579756791786511
+ 0.046582299849330031
+ 0.046584842946223115
+ 0.046587386082463371
+ 0.046589929258048814
+ 0.046592472472977237
+ 0.046595015727246468
+ 0.046597559020854294
+ 0.046600102353798675
+ 0.046602645726077453
+ 0.046605189137688352
+ 0.046607732588629235
+ 0.046610276078898068
+ 0.046612819608492596
+ 0.046615363177410656
+ 0.046617906785650136
+ 0.046620450433208845
+ 0.046622994120084672
+ 0.046625537846275426
+ 0.046628081611778963
+ 0.046630625416593102
+ 0.046633169260715708
+ 0.046635713144144664
+ 0.046638257066877853
+ 0.046640801028912958
+ 0.046643345030247946
+ 0.046645889070880707
+ 0.046648433150809028
+ 0.046650977270030744
+ 0.046653521428543711
+ 0.046656065626345798
+ 0.046658609863434813
+ 0.046661154139808661
+ 0.046663698455465197
+ 0.046666242810402311
+ 0.04666878720461775
+ 0.046671331638109374
+ 0.046673876110875076
+ 0.046676420622912752
+ 0.046678965174220224
+ 0.046681509764795293
+ 0.046684054394635917
+ 0.046686599063739842
+ 0.046689143772104938
+ 0.046691688519729158
+ 0.046694233306610315
+ 0.046696778132746156
+ 0.046699322998134708
+ 0.046701867902773739
+ 0.046704412846661082
+ 0.046706957829794678
+ 0.046709502852172298
+ 0.046712047913791854
+ 0.046714593014651216
+ 0.046717138154748185
+ 0.046719683334080671
+ 0.046722228552646523
+ 0.046724773810443612
+ 0.046727319107469766
+ 0.04672986444372286
+ 0.046732409819200793
+ 0.046734955233901379
+ 0.046737500687822557
+ 0.046740046180962093
+ 0.046742591713317912
+ 0.046745137284887779
+ 0.046747682895669732
+ 0.046750228545661528
+ 0.046752774234861058
+ 0.046755319963266151
+ 0.046757865730874745
+ 0.046760411537684572
+ 0.046762957383693661
+ 0.046765503268899819
+ 0.046768049193300902
+ 0.046770595156894745
+ 0.046773141159679274
+ 0.04677568720165233
+ 0.046778233282811804
+ 0.04678077940315551
+ 0.046783325562681354
+ 0.046785871761387279
+ 0.046788417999271012
+ 0.046790964276330588
+ 0.046793510592563765
+ 0.046796056947968373
+ 0.046798603342542378
+ 0.04680114977628367
+ 0.046803696249190098
+ 0.046806242761259491
+ 0.046808789312489739
+ 0.046811335902878788
+ 0.04681388253242437
+ 0.046816429201124499
+ 0.046818975908977024
+ 0.046821522655979733
+ 0.046824069442130592
+ 0.046826616267427443
+ 0.046829163131868169
+ 0.046831710035450724
+ 0.046834256978172832
+ 0.046836803960032466
+ 0.046839350981027518
+ 0.046841898041155836
+ 0.046844445140415254
+ 0.046846992278803783
+ 0.0468495394563192
+ 0.046852086672959384
+ 0.046854633928722279
+ 0.046857181223605653
+ 0.046859728557607574
+ 0.046862275930725769
+ 0.046864823342958169
+ 0.046867370794302698
+ 0.046869918284757124
+ 0.046872465814319468
+ 0.046875013382987538
+ 0.046877560990759244
+ 0.046880108637632492
+ 0.046882656323605047
+ 0.046885204048674925
+ 0.046887751812840037
+ 0.046890299616098148
+ 0.046892847458447226
+ 0.046895395339885147
+ 0.046897943260409775
+ 0.046900491220019033
+ 0.046903039218710758
+ 0.046905587256482896
+ 0.046908135333333323
+ 0.046910683449259923
+ 0.046913231604260613
+ 0.04691577979833314
+ 0.046918328031475595
+ 0.046920876303685854
+ 0.046923424614961677
+ 0.046925972965300995
+ 0.046928521354701769
+ 0.046931069783161861
+ 0.046933618250679036
+ 0.046936166757251457
+ 0.046938715302876806
+ 0.046941263887553049
+ 0.046943812511278063
+ 0.046946361174049808
+ 0.046948909875866016
+ 0.046951458616724832
+ 0.046954007396623948
+ 0.046956556215561308
+ 0.046959105073534853
+ 0.046961653970542458
+ 0.046964202906582021
+ 0.046966751881651475
+ 0.046969300895748668
+ 0.046971849948871526
+ 0.046974399041017918
+ 0.046976948172185812
+ 0.046979497342372972
+ 0.046982046551577526
+ 0.046984595799797149
+ 0.04698714508702987
+ 0.046989694413273567
+ 0.046992243778526135
+ 0.046994793182785502
+ 0.046997342626049529
+ 0.046999892108316142
+ 0.047002441629583239
+ 0.047004991189848716
+ 0.047007540789110555
+ 0.047010090427366542
+ 0.047012640104614666
+ 0.047015189820852787
+ 0.047017739576078854
+ 0.047020289370290798
+ 0.047022839203486343
+ 0.047025389075663636
+ 0.047027938986820485
+ 0.047030488936954856
+ 0.047033038926064495
+ 0.047035588954147507
+ 0.047038139021201658
+ 0.047040689127224929
+ 0.047043239272215265
+ 0.047045789456170488
+ 0.047048339679088599
+ 0.047050889940967379
+ 0.047053440241804835
+ 0.047055990581598935
+ 0.047058540960347499
+ 0.047061091378048502
+ 0.047063641834699771
+ 0.047066192330299302
+ 0.047068742864845012
+ 0.04707129343833473
+ 0.047073844050766464
+ 0.047076394702138182
+ 0.047078945392447571
+ 0.047081496121692774
+ 0.047084046889871646
+ 0.047086597696982049
+ 0.047089148543021923
+ 0.047091699427989207
+ 0.047094250351881833
+ 0.047096801314697713
+ 0.047099352316434695
+ 0.047101903357090837
+ 0.047104454436663896
+ 0.047107005555151994
+ 0.047109556712552889
+ 0.04711210790886456
+ 0.047114659144084858
+ 0.047117210418211784
+ 0.047119761731243284
+ 0.047122313083177297
+ 0.047124864474011596
+ 0.047127415903744238
+ 0.047129967372373148
+ 0.047132518879896189
+ 0.047135070426311293
+ 0.04713762201161642
+ 0.047140173635809524
+ 0.04714272529888839
+ 0.047145277000851103
+ 0.047147828741695583
+ 0.047150380521419601
+ 0.047152932340021221
+ 0.047155484197498383
+ 0.047158036093848943
+ 0.04716058802907086
+ 0.047163140003162143
+ 0.047165692016120489
+ 0.047168244067944114
+ 0.047170796158630811
+ 0.047173348288178499
+ 0.047175900456585075
+ 0.047178452663848632
+ 0.047181004909966913
+ 0.047183557194937942
+ 0.047186109518759678
+ 0.047188661881429998
+ 0.047191214282946835
+ 0.047193766723308155
+ 0.047196319202511924
+ 0.047198871720556014
+ 0.047201424277438404
+ 0.047203976873156986
+ 0.047206529507709767
+ 0.047209082181094597
+ 0.047211634893309498
+ 0.047214187644352305
+ 0.047216740434221062
+ 0.047219293262913693
+ 0.04722184613042802
+ 0.047224399036762163
+ 0.047226951981913859
+ 0.0472295049658812
+ 0.047232057988662104
+ 0.047234611050254512
+ 0.047237164150656381
+ 0.0472397172898655
+ 0.047242270467879946
+ 0.047244823684697748
+ 0.047247376940316652
+ 0.047249930234734699
+ 0.047252483567949866
+ 0.04725503693996002
+ 0.047257590350763143
+ 0.047260143800357222
+ 0.047262697288740142
+ 0.047265250815909807
+ 0.04726780438186428
+ 0.047270357986601418
+ 0.047272911630119221
+ 0.047275465312415652
+ 0.04727801903348855
+ 0.047280572793335994
+ 0.047283126591955799
+ 0.047285680429346097
+ 0.047288234305504669
+ 0.047290788220429487
+ 0.047293342174118604
+ 0.047295896166569852
+ 0.047298450197781262
+ 0.047301004267750739
+ 0.047303558376476249
+ 0.047306112523955821
+ 0.047308666710187235
+ 0.047311220935168589
+ 0.047313775198897783
+ 0.047316329501372725
+ 0.047318883842591489
+ 0.04732143822255197
+ 0.047323992641252081
+ 0.04732654709868981
+ 0.047329101594863088
+ 0.047331656129769945
+ 0.047334210703408326
+ 0.047336765315776068
+ 0.047339319966871261
+ 0.047341874656691756
+ 0.047344429385235622
+ 0.047346984152500722
+ 0.047349538958485121
+ 0.047352093803186592
+ 0.047354648686603322
+ 0.047357203608733113
+ 0.047359758569574001
+ 0.04736231356912389
+ 0.047364868607380844
+ 0.047367423684342699
+ 0.04736997880000747
+ 0.047372533954373082
+ 0.047375089147437641
+ 0.047377644379198926
+ 0.047380199649655008
+ 0.047382754958803792
+ 0.047385310306643259
+ 0.047387865693171438
+ 0.047390421118386192
+ 0.047392976582285605
+ 0.047395532084867492
+ 0.047398087626129987
+ 0.047400643206070944
+ 0.047403198824688283
+ 0.047405754481980165
+ 0.047408310177944363
+ 0.04741086591257896
+ 0.047413421685881849
+ 0.047415977497851043
+ 0.047418533348484511
+ 0.04742108923778026
+ 0.047423645165736134
+ 0.047426201132350257
+ 0.047428757137620535
+ 0.047431313181544886
+ 0.047433869264121332
+ 0.04743642538534789
+ 0.047438981545222435
+ 0.047441537743743004
+ 0.04744409398090757
+ 0.047446650256714108
+ 0.047449206571160543
+ 0.047451762924244877
+ 0.047454319315965089
+ 0.047456875746319183
+ 0.047459432215305117
+ 0.047461988722920866
+ 0.04746454526916432
+ 0.047467101854033619
+ 0.047469658477526613
+ 0.047472215139641331
+ 0.047474771840375775
+ 0.047477328579727897
+ 0.047479885357695574
+ 0.047482442174277023
+ 0.047484999029470003
+ 0.047487555923272542
+ 0.047490112855682706
+ 0.047492669826698385
+ 0.047495226836317662
+ 0.047497783884538403
+ 0.047500340971358634
+ 0.047502898096776346
+ 0.047505455260789531
+ 0.047508012463396185
+ 0.047510569704594205
+ 0.047513126984381746
+ 0.047515684302756579
+ 0.047518241659716839
+ 0.047520799055260472
+ 0.047523356489385438
+ 0.047525913962089772
+ 0.047528471473371435
+ 0.047531029023228352
+ 0.047533586611658588
+ 0.047536144238660143
+ 0.047538701904230964
+ 0.04754125960836899
+ 0.04754381735107234
+ 0.047546375132338961
+ 0.047548932952166716
+ 0.047551490810553751
+ 0.047554048707497985
+ 0.0475566066429974
+ 0.047559164617050051
+ 0.047561722629653837
+ 0.047564280680806856
+ 0.047566838770506999
+ 0.047569396898752302
+ 0.047571955065540773
+ 0.047574513270870374
+ 0.047577071514739173
+ 0.047579629797145091
+ 0.047582188118086087
+ 0.047584746477560266
+ 0.047587304875565548
+ 0.047589863312099925
+ 0.047592421787161408
+ 0.047594980300748026
+ 0.047597538852857751
+ 0.04760009744348858
+ 0.047602656072638513
+ 0.047605214740305525
+ 0.047607773446487679
+ 0.047610332191182901
+ 0.047612890974389151
+ 0.04761544979610461
+ 0.047618008656327149
+ 0.047620567555054699
+ 0.047623126492285443
+ 0.047625685468017286
+ 0.047628244482248158
+ 0.047630803534976215
+ 0.047633362626199272
+ 0.047635921755915599
+ 0.047638480924122893
+ 0.047641040130819372
+ 0.047643599376002939
+ 0.047646158659671659
+ 0.047648717981823539
+ 0.04765127734245652
+ 0.047653836741568603
+ 0.047656396179157887
+ 0.047658955655222261
+ 0.047661515169759847
+ 0.047664074722768672
+ 0.047666634314246552
+ 0.04766919394419164
+ 0.047671753612601939
+ 0.047674313319475435
+ 0.047676873064810138
+ 0.047679432848604118
+ 0.047681992670855239
+ 0.047684552531561633
+ 0.047687112430721282
+ 0.047689672368332173
+ 0.047692232344392384
+ 0.047694792358899861
+ 0.047697352411852689
+ 0.047699912503248704
+ 0.047702472633086128
+ 0.047705032801362866
+ 0.047707593008076969
+ 0.047710153253226396
+ 0.047712713536809281
+ 0.047715273858823529
+ 0.047717834219267195
+ 0.04772039461813822
+ 0.047722955055434731
+ 0.047725515531154727
+ 0.047728076045296212
+ 0.047730636597857173
+ 0.047733197188835612
+ 0.04773575781822964
+ 0.047738318486037171
+ 0.047740879192256239
+ 0.047743439936884978
+ 0.047746000719921342
+ 0.047748561541363262
+ 0.047751122401208837
+ 0.047753683299456097
+ 0.047756244236103043
+ 0.047758805211147712
+ 0.047761366224588077
+ 0.04776392727642223
+ 0.047766488366648215
+ 0.047769049495263942
+ 0.047771610662267511
+ 0.047774171867656964
+ 0.047776733111430242
+ 0.047779294393585504
+ 0.047781855714120587
+ 0.047784417073033679
+ 0.047786978470322768
+ 0.047789539905985855
+ 0.047792101380020956
+ 0.047794662892426065
+ 0.047797224443199338
+ 0.047799786032338726
+ 0.047802347659842225
+ 0.047804909325707967
+ 0.047807471029933789
+ 0.047810032772517948
+ 0.047812594553458349
+ 0.047815156372753007
+ 0.047817718230400028
+ 0.047820280126397385
+ 0.047822842060743123
+ 0.047825404033435256
+ 0.047827966044471884
+ 0.047830528093851021
+ 0.047833090181570628
+ 0.047835652307628776
+ 0.047838214472023501
+ 0.047840776674752845
+ 0.047843338915814916
+ 0.047845901195207603
+ 0.047848463512929075
+ 0.047851025868977243
+ 0.047853588263350288
+ 0.047856150696046068
+ 0.047858713167062764
+ 0.047861275676398363
+ 0.04786383822405095
+ 0.047866400810018452
+ 0.047868963434299035
+ 0.047871526096890632
+ 0.047874088797791384
+ 0.047876651536999201
+ 0.047879214314512301
+ 0.047881777130328596
+ 0.047884339984446078
+ 0.047886902876862869
+ 0.047889465807577122
+ 0.047892028776586687
+ 0.04789459178388971
+ 0.04789715482948418
+ 0.047899717913368139
+ 0.047902281035539757
+ 0.047904844195996887
+ 0.047907407394737735
+ 0.047909970631760251
+ 0.047912533907062516
+ 0.047915097220642598
+ 0.047917660572498418
+ 0.047920223962628211
+ 0.047922787391029828
+ 0.047925350857701526
+ 0.047927914362641183
+ 0.047930477905846931
+ 0.047933041487316773
+ 0.047935605107048813
+ 0.047938168765041082
+ 0.047940732461291637
+ 0.047943296195798436
+ 0.047945859968559629
+ 0.047948423779573236
+ 0.04795098762883733
+ 0.047953551516349925
+ 0.047956115442109121
+ 0.047958679406112967
+ 0.047961243408359416
+ 0.047963807448846582
+ 0.047966371527572556
+ 0.047968935644535464
+ 0.047971499799733155
+ 0.047974063993163819
+ 0.047976628224825464
+ 0.047979192494716202
+ 0.047981756802834057
+ 0.047984321149177112
+ 0.047986885533743313
+ 0.047989449956530865
+ 0.047992014417537733
+ 0.047994578916761968
+ 0.047997143454201745
+ 0.047999708029854968
+ 0.048002272643719771
+ 0.048004837295794245
+ 0.048007401986076385
+ 0.048009966714564256
+ 0.04801253148125597
+ 0.048015096286149542
+ 0.04801766112924314
+ 0.048020226010534621
+ 0.048022790930022229
+ 0.048025355887703937
+ 0.048027920883577865
+ 0.048030485917641995
+ 0.0480330509898945
+ 0.048035616100333384
+ 0.048038181248956646
+ 0.048040746435762484
+ 0.048043311660748843
+ 0.04804587692391387
+ 0.048048442225255603
+ 0.048051007564772111
+ 0.048053572942461431
+ 0.048056138358321648
+ 0.048058703812350848
+ 0.048061269304547093
+ 0.048063834834908475
+ 0.048066400403433011
+ 0.048068966010118806
+ 0.048071531654963917
+ 0.048074097337966429
+ 0.048076663059124447
+ 0.048079228818435883
+ 0.048081794615898975
+ 0.048084360451511758
+ 0.04808692632527227
+ 0.048089492237178552
+ 0.048092058187228788
+ 0.048094624175420951
+ 0.048097190201753182
+ 0.048099756266223481
+ 0.048102322368829949
+ 0.048104888509570717
+ 0.048107454688443831
+ 0.048110020905447325
+ 0.048112587160579347
+ 0.048115153453837864
+ 0.048117719785221079
+ 0.048120286154727007
+ 0.048122852562353664
+ 0.048125419008099246
+ 0.048127985491961733
+ 0.048130552013939308
+ 0.048133118574029923
+ 0.048135685172231775
+ 0.048138251808542885
+ 0.048140818482961277
+ 0.048143385195485146
+ 0.048145951946112521
+ 0.048148518734841543
+ 0.048151085561670151
+ 0.048153652426596541
+ 0.048156219329618777
+ 0.048158786270734902
+ 0.048161353249943077
+ 0.048163920267241263
+ 0.048166487322627669
+ 0.048169054416100317
+ 0.048171621547657278
+ 0.048174188717296673
+ 0.048176755925016579
+ 0.048179323170815073
+ 0.048181890454690297
+ 0.048184457776640259
+ 0.048187025136663085
+ 0.04818959253475686
+ 0.048192159970919635
+ 0.048194727445149556
+ 0.048197294957444688
+ 0.048199862507803067
+ 0.048202430096222867
+ 0.048204997722702141
+ 0.048207565387238929
+ 0.048210133089831464
+ 0.048212700830477712
+ 0.048215268609175792
+ 0.048217836425923817
+ 0.048220404280719872
+ 0.048222972173562001
+ 0.048225540104448343
+ 0.048228108073376991
+ 0.048230676080346056
+ 0.04823324412535368
+ 0.048235812208397753
+ 0.048238380329476575
+ 0.048240948488588183
+ 0.04824351668573066
+ 0.04824608492090212
+ 0.048248653194100606
+ 0.048251221505324272
+ 0.048253789854571197
+ 0.048256358241839457
+ 0.048258926667127201
+ 0.048261495130432486
+ 0.048264063631753423
+ 0.048266632171088043
+ 0.048269200748434611
+ 0.048271769363791149
+ 0.04827433801715561
+ 0.048276906708526371
+ 0.04827947543790128
+ 0.048282044205278554
+ 0.048284613010656313
+ 0.048287181854032565
+ 0.048289750735405597
+ 0.048292319654773305
+ 0.048294888612133872
+ 0.048297457607485481
+ 0.048300026640826194
+ 0.048302595712153992
+ 0.048305164821467121
+ 0.048307733968763623
+ 0.048310303154041619
+ 0.048312872377299268
+ 0.048315441638534587
+ 0.048318010937745702
+ 0.048320580274930774
+ 0.048323149650087847
+ 0.048325719063215145
+ 0.048328288514310619
+ 0.048330858003372459
+ 0.048333427530398779
+ 0.048335997095387648
+ 0.048338566698337242
+ 0.04834113633924559
+ 0.048343706018110881
+ 0.048346275734931207
+ 0.048348845489704653
+ 0.048351415282429304
+ 0.048353985113103383
+ 0.04835655498172492
+ 0.048359124888291985
+ 0.048361694832802733
+ 0.048364264815255388
+ 0.048366834835647896
+ 0.048369404893978479
+ 0.048371974990245196
+ 0.048374545124446174
+ 0.048377115296579572
+ 0.048379685506643406
+ 0.048382255754635936
+ 0.04838482604055519
+ 0.04838739636439926
+ 0.048389966726166321
+ 0.048392537125854479
+ 0.048395107563461874
+ 0.048397678038986543
+ 0.048400248552426701
+ 0.04840281910378038
+ 0.048405389693045787
+ 0.048407960320220947
+ 0.048410530985304123
+ 0.04841310168829329
+ 0.048415672429186651
+ 0.048418243207982256
+ 0.048420814024678335
+ 0.048423384879272988
+ 0.048425955771764194
+ 0.048428526702150268
+ 0.048431097670429274
+ 0.048433668676599234
+ 0.048436239720658456
+ 0.048438810802604898
+ 0.048441381922436806
+ 0.048443953080152154
+ 0.048446524275749268
+ 0.048449095509226117
+ 0.048451666780580931
+ 0.048454238089811669
+ 0.048456809436916756
+ 0.048459380821893987
+ 0.048461952244741709
+ 0.048464523705458035
+ 0.048467095204041015
+ 0.048469666740488825
+ 0.048472238314799597
+ 0.048474809926971375
+ 0.048477381577002411
+ 0.048479953264890817
+ 0.048482524990634726
+ 0.048485096754232182
+ 0.048487668555681367
+ 0.04849024039498049
+ 0.048492812272127525
+ 0.048495384187120794
+ 0.048497956139958304
+ 0.048500528130638258
+ 0.048503100159158673
+ 0.048505672225517812
+ 0.048508244329713769
+ 0.048510816471744669
+ 0.048513388651608674
+ 0.048515960869303869
+ 0.048518533124828449
+ 0.048521105418180541
+ 0.048523677749358271
+ 0.048526250118359794
+ 0.048528822525183216
+ 0.048531394969826697
+ 0.048533967452288274
+ 0.048536539972566323
+ 0.04853911253065879
+ 0.048541685126563906
+ 0.04854425776027968
+ 0.048546830431804487
+ 0.048549403141136226
+ 0.048551975888273237
+ 0.048554548673213516
+ 0.048557121495955251
+ 0.048559694356496617
+ 0.048562267254835832
+ 0.048564840190970814
+ 0.048567413164899834
+ 0.048569986176621109
+ 0.048572559226132711
+ 0.048575132313432787
+ 0.048577705438519476
+ 0.048580278601390983
+ 0.048582851802045343
+ 0.048585425040480808
+ 0.048587998316695497
+ 0.048590571630687564
+ 0.048593144982455143
+ 0.04859571837199634
+ 0.048598291799309377
+ 0.048600865264392355
+ 0.048603438767243483
+ 0.048606012307860824
+ 0.04860858588624261
+ 0.048611159502386911
+ 0.048613733156291965
+ 0.048616306847955933
+ 0.048618880577376816
+ 0.048621454344552922
+ 0.048624028149482378
+ 0.048626601992163281
+ 0.048629175872593869
+ 0.048631749790772158
+ 0.048634323746696427
+ 0.048636897740364775
+ 0.048639471771775397
+ 0.048642045840926448
+ 0.04864461994781609
+ 0.048647194092442371
+ 0.048649768274803509
+ 0.048652342494897763
+ 0.048654916752723203
+ 0.048657491048277969
+ 0.048660065381560223
+ 0.048662639752568133
+ 0.048665214161299923
+ 0.048667788607753747
+ 0.048670363091927668
+ 0.048672937613819856
+ 0.048675512173428526
+ 0.048678086770751923
+ 0.048680661405787959
+ 0.048683236078535072
+ 0.048685810788991257
+ 0.048688385537154689
+ 0.048690960323023606
+ 0.048693535146596113
+ 0.048696110007870427
+ 0.048698684906844661
+ 0.048701259843516934
+ 0.048703834817885545
+ 0.048706409829948547
+ 0.048708984879704126
+ 0.048711559967150528
+ 0.048714135092285796
+ 0.04871671025510816
+ 0.048719285455615831
+ 0.048721860693806983
+ 0.04872443596967968
+ 0.048727011283232091
+ 0.048729586634462509
+ 0.048732162023368976
+ 0.0487347374499498
+ 0.048737312914203038
+ 0.048739888416126864
+ 0.048742463955719455
+ 0.048745039532979012
+ 0.048747615147903718
+ 0.048750190800491797
+ 0.048752766490741284
+ 0.048755342218650473
+ 0.0487579179842174
+ 0.048760493787440386
+ 0.048763069628317501
+ 0.048765645506846943
+ 0.048768221423026933
+ 0.048770797376855649
+ 0.048773373368331215
+ 0.048775949397451814
+ 0.048778525464215662
+ 0.048781101568620852
+ 0.048783677710665663
+ 0.048786253890348186
+ 0.048788830107666672
+ 0.048791406362619243
+ 0.048793982655204071
+ 0.048796558985419486
+ 0.04879913535326344
+ 0.048801711758734267
+ 0.048804288201830109
+ 0.048806864682549064
+ 0.048809441200889418
+ 0.048812017756849353
+ 0.048814594350427079
+ 0.048817170981620597
+ 0.04881974765042827
+ 0.048822324356848128
+ 0.048824901100878559
+ 0.048827477882517602
+ 0.04883005470176343
+ 0.048832631558614392
+ 0.048835208453068456
+ 0.048837785385123865
+ 0.048840362354778961
+ 0.048842939362031719
+ 0.048845516406880417
+ 0.048848093489323306
+ 0.048850670609358451
+ 0.048853247766984104
+ 0.048855824962198487
+ 0.048858402194999762
+ 0.048860979465385999
+ 0.048863556773355576
+ 0.048866134118906647
+ 0.048868711502037206
+ 0.048871288922745712
+ 0.048873866381030188
+ 0.048876443876888852
+ 0.048879021410319939
+ 0.04888159898132164
+ 0.048884176589892074
+ 0.04888675423602952
+ 0.048889331919732146
+ 0.048891909640998078
+ 0.048894487399825624
+ 0.048897065196212876
+ 0.048899643030158091
+ 0.04890222090165941
+ 0.048904798810715133
+ 0.048907376757323283
+ 0.048909954741482221
+ 0.048912532763190027
+ 0.048915110822445061
+ 0.048917688919245264
+ 0.048920267053589109
+ 0.048922845225474569
+ 0.048925423434900001
+ 0.048928001681863502
+ 0.048930579966363373
+ 0.048933158288397664
+ 0.048935736647964669
+ 0.048938315045062644
+ 0.048940893479689634
+ 0.048943471951844002
+ 0.048946050461523873
+ 0.048948629008727429
+ 0.048951207593452895
+ 0.048953786215698514
+ 0.048956364875462392
+ 0.048958943572742795
+ 0.048961522307537989
+ 0.048964101079846042
+ 0.048966679889665285
+ 0.048969258736993801
+ 0.048971837621829897
+ 0.048974416544171742
+ 0.048976995504017497
+ 0.048979574501365475
+ 0.048982153536213761
+ 0.048984732608560691
+ 0.048987311718404355
+ 0.048989890865742999
+ 0.04899247005057486
+ 0.048995049272898099
+ 0.04899762853271096
+ 0.049000207830011661
+ 0.04900278716479841
+ 0.049005366537069439
+ 0.049007945946822833
+ 0.049010525394056911
+ 0.049013104878769857
+ 0.049015684400959922
+ 0.049018263960625322
+ 0.049020843557764239
+ 0.049023423192374807
+ 0.049026002864455361
+ 0.049028582574004047
+ 0.049031162321019145
+ 0.049033742105498761
+ 0.049036321927441208
+ 0.049038901786844662
+ 0.049041481683707304
+ 0.049044061618027414
+ 0.049046641589803229
+ 0.049049221599032848
+ 0.049051801645714668
+ 0.049054381729846656
+ 0.049056961851427251
+ 0.049059542010454545
+ 0.049062122206926871
+ 0.049064702440842337
+ 0.049067282712199248
+ 0.049069863020995738
+ 0.049072443367230087
+ 0.049075023750900448
+ 0.04907760417200515
+ 0.049080184630542346
+ 0.049082765126510261
+ 0.04908534565990718
+ 0.049087926230731202
+ 0.049090506838980662
+ 0.049093087484653651
+ 0.049095668167748609
+ 0.049098248888263529
+ 0.049100829646196782
+ 0.049103410441546549
+ 0.049105991274311089
+ 0.049108572144488528
+ 0.049111153052077181
+ 0.04911373399707529
+ 0.049116314979480984
+ 0.049118895999292575
+ 0.049121477056508274
+ 0.049124058151126256
+ 0.049126639283144848
+ 0.049129220452562163
+ 0.049131801659376508
+ 0.049134382903586168
+ 0.049136964185189189
+ 0.049139545504184
+ 0.04914212686056868
+ 0.049144708254341522
+ 0.049147289685500799
+ 0.049149871154044664
+ 0.049152452659971389
+ 0.049155034203279255
+ 0.049157615783966407
+ 0.049160197402031092
+ 0.049162779057471566
+ 0.049165360750286068
+ 0.049167942480472841
+ 0.04917052424803009
+ 0.049173106052956078
+ 0.049175687895249003
+ 0.049178269774907135
+ 0.049180851691928713
+ 0.049183433646312009
+ 0.049186015638055129
+ 0.04918859766715647
+ 0.049191179733614109
+ 0.049193761837426395
+ 0.049196343978591579
+ 0.049198926157107803
+ 0.049201508372973379
+ 0.049204090626186539
+ 0.049206672916745534
+ 0.0492092552446486
+ 0.049211837609893908
+ 0.049214420012479804
+ 0.049217002452404464
+ 0.049219584929666139
+ 0.04922216744426311
+ 0.049224749996193501
+ 0.049227332585455745
+ 0.049229915212047948
+ 0.04923249787596834
+ 0.049235080577215318
+ 0.049237663315786925
+ 0.049240246091681539
+ 0.049242828904897319
+ 0.049245411755432643
+ 0.049247994643285643
+ 0.0492505775684546
+ 0.049253160530937729
+ 0.049255743530733379
+ 0.049258326567839655
+ 0.049260909642254942
+ 0.049263492753977366
+ 0.049266075903005239
+ 0.049268659089336801
+ 0.049271242312970302
+ 0.049273825573904015
+ 0.04927640887213619
+ 0.049278992207665011
+ 0.049281575580488735
+ 0.049284158990605731
+ 0.049286742438014154
+ 0.049289325922712256
+ 0.049291909444698329
+ 0.049294493003970645
+ 0.049297076600527401
+ 0.049299660234366792
+ 0.049302243905487257
+ 0.049304827613886867
+ 0.049307411359563937
+ 0.049309995142516785
+ 0.049312578962743644
+ 0.04931516282024271
+ 0.049317746715012267
+ 0.049320330647050555
+ 0.049322914616355858
+ 0.049325498622926435
+ 0.049328082666760614
+ 0.049330666747856543
+ 0.049333250866212437
+ 0.049335835021826702
+ 0.049338419214697532
+ 0.049341003444823159
+ 0.049343587712201951
+ 0.049346172016831988
+ 0.049348756358711721
+ 0.0493513407378392
+ 0.04935392515421292
+ 0.049356509607830952
+ 0.049359094098691644
+ 0.049361678626793325
+ 0.049364263192134078
+ 0.049366847794712329
+ 0.049369432434526357
+ 0.049372017111574254
+ 0.04937460182585441
+ 0.049377186577365111
+ 0.049379771366104531
+ 0.049382356192070959
+ 0.049384941055262761
+ 0.049387525955678087
+ 0.049390110893315291
+ 0.049392695868172513
+ 0.049395280880248207
+ 0.049397865929540458
+ 0.04940045101604764
+ 0.049403036139767986
+ 0.049405621300699767
+ 0.049408206498841249
+ 0.049410791734190801
+ 0.049413377006746473
+ 0.049415962316506815
+ 0.049418547663469814
+ 0.049421133047634007
+ 0.049423718468997437
+ 0.049426303927558542
+ 0.049428889423315497
+ 0.049431474956266624
+ 0.049434060526410174
+ 0.049436646133744454
+ 0.049439231778267652
+ 0.049441817459978193
+ 0.049444403178874219
+ 0.049446988934954049
+ 0.049449574728215991
+ 0.049452160558658267
+ 0.049454746426279159
+ 0.049457332331076985
+ 0.049459918273049984
+ 0.049462504252196463
+ 0.049465090268514658
+ 0.049467676322002899
+ 0.049470262412659456
+ 0.049472848540482575
+ 0.049475434705470563
+ 0.049478020907621684
+ 0.049480607146934218
+ 0.049483193423406499
+ 0.04948577973703671
+ 0.049488366087823164
+ 0.049490952475764197
+ 0.049493538900858086
+ 0.049496125363103084
+ 0.049498711862497428
+ 0.049501298399039446
+ 0.049503884972727494
+ 0.049506471583559711
+ 0.049509058231534495
+ 0.049511644916650131
+ 0.049514231638904845
+ 0.04951681839829692
+ 0.04951940519482468
+ 0.049521992028486422
+ 0.049524578899280386
+ 0.049527165807204857
+ 0.04952975275225819
+ 0.049532339734438595
+ 0.049534926753744477
+ 0.049537513810173954
+ 0.049540100903725418
+ 0.049542688034397153
+ 0.049545275202187496
+ 0.049547862407094634
+ 0.049550449649116993
+ 0.04955303692825265
+ 0.049555624244500121
+ 0.049558211597857477
+ 0.04956079898832326
+ 0.04956338641589559
+ 0.049565973880572801
+ 0.049568561382353271
+ 0.049571148921235091
+ 0.049573736497216719
+ 0.049576324110296451
+ 0.049578911760472473
+ 0.04958149944774326
+ 0.049584087172106911
+ 0.049586674933561815
+ 0.04958926273210628
+ 0.049591850567738585
+ 0.049594438440456995
+ 0.049597026350259858
+ 0.04959961429714542
+ 0.049602202281112048
+ 0.049604790302157982
+ 0.049607378360281576
+ 0.04960996645548104
+ 0.049612554587754779
+ 0.049615142757101015
+ 0.04961773096351809
+ 0.049620319207004257
+ 0.049622907487557898
+ 0.04962549580517725
+ 0.049628084159860614
+ 0.049630672551606358
+ 0.049633260980412743
+ 0.049635849446278024
+ 0.049638437949200517
+ 0.04964102648917864
+ 0.049643615066210581
+ 0.049646203680294668
+ 0.049648792331429249
+ 0.049651381019612563
+ 0.04965396974484295
+ 0.049656558507118684
+ 0.049659147306438174
+ 0.049661736142799597
+ 0.049664325016201334
+ 0.049666913926641687
+ 0.049669502874118948
+ 0.04967209185863148
+ 0.049674680880177485
+ 0.049677269938755354
+ 0.049679859034363387
+ 0.04968244816699989
+ 0.049685037336663157
+ 0.04968762654335146
+ 0.04969021578706323
+ 0.049692805067796636
+ 0.049695394385550117
+ 0.049697983740321874
+ 0.049700573132110279
+ 0.049703162560913706
+ 0.049705752026730325
+ 0.049708341529558581
+ 0.049710931069396676
+ 0.049713520646243022
+ 0.049716110260095925
+ 0.049718699910953637
+ 0.049721289598814458
+ 0.049723879323676869
+ 0.049726469085538981
+ 0.049729058884399185
+ 0.049731648720255844
+ 0.049734238593107251
+ 0.049736828502951684
+ 0.049739418449787492
+ 0.049742008433613025
+ 0.049744598454426601
+ 0.049747188512226474
+ 0.049749778607010992
+ 0.049752368738778509
+ 0.049754958907527284
+ 0.049757549113255702
+ 0.049760139355962046
+ 0.049762729635644702
+ 0.049765319952301879
+ 0.049767910305931987
+ 0.049770500696533285
+ 0.049773091124104142
+ 0.0497756815886429
+ 0.049778272090147839
+ 0.049780862628617271
+ 0.049783453204049602
+ 0.049786043816443054
+ 0.049788634465796067
+ 0.049791225152106891
+ 0.049793815875373744
+ 0.049796406635595203
+ 0.04979899743276945
+ 0.049801588266894785
+ 0.049804179137969598
+ 0.049806770045992203
+ 0.049809360990960873
+ 0.049811951972874087
+ 0.049814542991729979
+ 0.049817134047527037
+ 0.049819725140263449
+ 0.04982231626993764
+ 0.049824907436548015
+ 0.049827498640092727
+ 0.049830089880570215
+ 0.049832681157978787
+ 0.049835272472316783
+ 0.049837863823582559
+ 0.049840455211774382
+ 0.049843046636890605
+ 0.049845638098929668
+ 0.049848229597889759
+ 0.049850821133769263
+ 0.04985341270656652
+ 0.049856004316279914
+ 0.049858595962907697
+ 0.049861187646448257
+ 0.04986377936689991
+ 0.049866371124261011
+ 0.049868962918529845
+ 0.049871554749704894
+ 0.04987414661778429
+ 0.049876738522766459
+ 0.049879330464649867
+ 0.049881922443432633
+ 0.049884514459113238
+ 0.049887106511690003
+ 0.049889698601161249
+ 0.049892290727525317
+ 0.049894882890780534
+ 0.049897475090925257
+ 0.049900067327957875
+ 0.049902659601876655
+ 0.049905251912679943
+ 0.049907844260366152
+ 0.049910436644933526
+ 0.049913029066380545
+ 0.049915621524705404
+ 0.049918214019906523
+ 0.049920806551982271
+ 0.049923399120930953
+ 0.049925991726750871
+ 0.04992858436944049
+ 0.049931177048998
+ 0.049933769765421916
+ 0.049936362518710531
+ 0.049938955308862103
+ 0.049941548135875057
+ 0.04994414099974772
+ 0.049946733900478414
+ 0.049949326838065605
+ 0.04995191981250751
+ 0.04995451282380254
+ 0.049957105871949008
+ 0.049959698956945325
+ 0.049962292078789772
+ 0.049964885237480765
+ 0.049967478433016556
+ 0.049970071665395681
+ 0.04997266493461628
+ 0.04997525824067682
+ 0.049977851583575594
+ 0.04998044496331111
+ 0.049983038379881536
+ 0.049985631833285291
+ 0.049988225323520749
+ 0.049990818850586247
+ 0.049993412414480201
+ 0.049996006015200843
+ 0.049998599652746646
+ 0.050001193327115889
+ 0.05000378703830699
+ 0.050006380786318215
+ 0.050008974571148009
+ 0.050011568392794713
+ 0.05001416225125669
+ 0.050016756146532296
+ 0.05001935007861983
+ 0.050021944047517697
+ 0.050024538053224321
+ 0.050027132095737913
+ 0.050029726175056896
+ 0.050032320291179766
+ 0.050034914444104704
+ 0.05003750863383017
+ 0.050040102860354471
+ 0.050042697123676046
+ 0.050045291423793138
+ 0.050047885760704236
+ 0.05005048013440757
+ 0.050053074544901627
+ 0.050055668992184721
+ 0.050058263476255228
+ 0.050060857997111519
+ 0.050063452554751885
+ 0.050066047149174848
+ 0.050068641780378606
+ 0.050071236448361596
+ 0.050073831153122174
+ 0.050076425894658765
+ 0.050079020672969703
+ 0.050081615488053302
+ 0.050084210339908002
+ 0.050086805228532122
+ 0.050089400153924053
+ 0.050091995116082151
+ 0.05009459011500482
+ 0.050097185150690386
+ 0.050099780223137297
+ 0.050102375332343851
+ 0.050104970478308378
+ 0.050107565661029377
+ 0.050110160880505149
+ 0.050112756136734
+ 0.050115351429714433
+ 0.050117946759444781
+ 0.050120542125923345
+ 0.050123137529148577
+ 0.05012573296911884
+ 0.050128328445832433
+ 0.050130923959287817
+ 0.050133519509483387
+ 0.050136115096417501
+ 0.050138710720088443
+ 0.05014130638049466
+ 0.05014390207763457
+ 0.050146497811506423
+ 0.050149093582108735
+ 0.050151689389439889
+ 0.050154285233498144
+ 0.05015688111428189
+ 0.050159477031789607
+ 0.050162072986019622
+ 0.05016466897697034
+ 0.050167265004640055
+ 0.050169861069027259
+ 0.050172457170130261
+ 0.050175053307947443
+ 0.050177649482477264
+ 0.050180245693718054
+ 0.050182841941668187
+ 0.050185438226325943
+ 0.050188034547689955
+ 0.050190630905758413
+ 0.050193227300529705
+ 0.050195823732002362
+ 0.050198420200174586
+ 0.050201016705044885
+ 0.050203613246611628
+ 0.05020620982487313
+ 0.050208806439827912
+ 0.050211403091474184
+ 0.050213999779810489
+ 0.050216596504835113
+ 0.050219193266546489
+ 0.050221790064942991
+ 0.050224386900023017
+ 0.050226983771785021
+ 0.050229580680227238
+ 0.050232177625348214
+ 0.050234774607146218
+ 0.050237371625619712
+ 0.050239968680767078
+ 0.050242565772586685
+ 0.050245162901076924
+ 0.050247760066236269
+ 0.050250357268062949
+ 0.050252954506555488
+ 0.050255551781712288
+ 0.05025814909353165
+ 0.050260746442011978
+ 0.050263343827151766
+ 0.050265941248949321
+ 0.05026853870740304
+ 0.05027113620251137
+ 0.050273733734272734
+ 0.050276331302685391
+ 0.050278928907747829
+ 0.050281526549458458
+ 0.050284124227815627
+ 0.050286721942817705
+ 0.050289319694463229
+ 0.050291917482750512
+ 0.050294515307677937
+ 0.050297113169243936
+ 0.050299711067446864
+ 0.050302309002285106
+ 0.050304906973757162
+ 0.050307504981861317
+ 0.050310103026596123
+ 0.050312701107959851
+ 0.050315299225950905
+ 0.050317897380567717
+ 0.050320495571808711
+ 0.050323093799672335
+ 0.050325692064156845
+ 0.050328290365260792
+ 0.050330888702982413
+ 0.050333487077320299
+ 0.050336085488272793
+ 0.050338683935838256
+ 0.050341282420015093
+ 0.050343880940801743
+ 0.050346479498196629
+ 0.050349078092198109
+ 0.050351676722804606
+ 0.050354275390014518
+ 0.050356874093826304
+ 0.050359472834238334
+ 0.050362071611249025
+ 0.050364670424856817
+ 0.050367269275059946
+ 0.050369868161857123
+ 0.050372467085246446
+ 0.050375066045226548
+ 0.050377665041795784
+ 0.050380264074952462
+ 0.050382863144695193
+ 0.05038546225102223
+ 0.050388061393931982
+ 0.05039066057342291
+ 0.050393259789493487
+ 0.05039585904214202
+ 0.05039845833136699
+ 0.050401057657166792
+ 0.050403657019539784
+ 0.050406256418484396
+ 0.050408855853999165
+ 0.050411455326082419
+ 0.050414054834732561
+ 0.050416654379948037
+ 0.050419253961727223
+ 0.050421853580068517
+ 0.050424453234970412
+ 0.050427052926431355
+ 0.050429652654449646
+ 0.050432252419023799
+ 0.050434852220152183
+ 0.050437452057833197
+ 0.050440051932065293
+ 0.050442651842846888
+ 0.050445251790176462
+ 0.050447851774052317
+ 0.050450451794473022
+ 0.050453051851436823
+ 0.050455651944942288
+ 0.050458252074987726
+ 0.050460852241571659
+ 0.050463452444692525
+ 0.050466052684348554
+ 0.050468652960538408
+ 0.050471253273260332
+ 0.050473853622512881
+ 0.050476454008294418
+ 0.050479054430603375
+ 0.050481654889438246
+ 0.050484255384797276
+ 0.050486855916679049
+ 0.05048945648508197
+ 0.050492057090004379
+ 0.050494657731444861
+ 0.050497258409401675
+ 0.050499859123873309
+ 0.050502459874858324
+ 0.050505060662354981
+ 0.050507661486361703
+ 0.050510262346877034
+ 0.050512863243899316
+ 0.050515464177427048
+ 0.050518065147458581
+ 0.050520666153992422
+ 0.050523267197026947
+ 0.050525868276560623
+ 0.05052846939259191
+ 0.050531070545119176
+ 0.050533671734140868
+ 0.050536272959655348
+ 0.05053887422166127
+ 0.050541475520156837
+ 0.050544076855140625
+ 0.050546678226611047
+ 0.050549279634566423
+ 0.050551881079005337
+ 0.050554482559926145
+ 0.050557084077327355
+ 0.050559685631207274
+ 0.050562287221564466
+ 0.050564888848397271
+ 0.050567490511704234
+ 0.050570092211483751
+ 0.050572693947734178
+ 0.050575295720454036
+ 0.050577897529641785
+ 0.050580499375295823
+ 0.050583101257414567
+ 0.050585703175996491
+ 0.050588305131040047
+ 0.050590907122543639
+ 0.050593509150505811
+ 0.050596111214924855
+ 0.050598713315799279
+ 0.050601315453127564
+ 0.050603917626908065
+ 0.050606519837139326
+ 0.050609122083819708
+ 0.05061172436694765
+ 0.050614326686521778
+ 0.050616929042540275
+ 0.050619531435001711
+ 0.050622133863904552
+ 0.050624736329247265
+ 0.050627338831028164
+ 0.050629941369245916
+ 0.050632543943898711
+ 0.050635146554985209
+ 0.050637749202503697
+ 0.05064035188645271
+ 0.050642954606830722
+ 0.050645557363636122
+ 0.050648160156867322
+ 0.050650762986522893
+ 0.050653365852601218
+ 0.050655968755100714
+ 0.050658571694019904
+ 0.050661174669357281
+ 0.050663777681111057
+ 0.05066638072927996
+ 0.050668983813862291
+ 0.050671586934856523
+ 0.050674190092261213
+ 0.050676793286074662
+ 0.050679396516295376
+ 0.050681999782921844
+ 0.050684603085952525
+ 0.050687206425385815
+ 0.050689809801220197
+ 0.050692413213454197
+ 0.050695016662086083
+ 0.050697620147114535
+ 0.050700223668537922
+ 0.05070282722635467
+ 0.05070543082056321
+ 0.0507080344511621
+ 0.050710638118149708
+ 0.050713241821524563
+ 0.050715845561285063
+ 0.050718449337429708
+ 0.050721053149956938
+ 0.050723656998865212
+ 0.050726260884153031
+ 0.050728864805818737
+ 0.050731468763860955
+ 0.05073407275827807
+ 0.050736676789068479
+ 0.050739280856230778
+ 0.050741884959763325
+ 0.050744489099664586
+ 0.050747093275933158
+ 0.050749697488567301
+ 0.050752301737565612
+ 0.050754906022926601
+ 0.050757510344648545
+ 0.050760114702730064
+ 0.050762719097169527
+ 0.050765323527965547
+ 0.05076792799511648
+ 0.050770532498620791
+ 0.050773137038476947
+ 0.050775741614683449
+ 0.050778346227238751
+ 0.050780950876141283
+ 0.050783555561389603
+ 0.050786160282982155
+ 0.050788765040917248
+ 0.050791369835193598
+ 0.050793974665809566
+ 0.050796579532763605
+ 0.050799184436054134
+ 0.050801789375679786
+ 0.050804394351638874
+ 0.050806999363929899
+ 0.050809604412551473
+ 0.050812209497501905
+ 0.050814814618779708
+ 0.050817419776383418
+ 0.050820024970311461
+ 0.050822630200562269
+ 0.050825235467134404
+ 0.050827840770026257
+ 0.050830446109236399
+ 0.050833051484763164
+ 0.050835656896605186
+ 0.050838262344760854
+ 0.050840867829228711
+ 0.050843473350007093
+ 0.050846078907094666
+ 0.050848684500489731
+ 0.050851290130190872
+ 0.050853895796196542
+ 0.050856501498505256
+ 0.050859107237115425
+ 0.05086171301202555
+ 0.050864318823234139
+ 0.050866924670739638
+ 0.050869530554540549
+ 0.050872136474635385
+ 0.050874742431022531
+ 0.050877348423700584
+ 0.050879954452667971
+ 0.050882560517923128
+ 0.050885166619464607
+ 0.050887772757290894
+ 0.050890378931400457
+ 0.050892985141791788
+ 0.050895591388463245
+ 0.050898197671413528
+ 0.050900803990641001
+ 0.050903410346144179
+ 0.050906016737921451
+ 0.050908623165971494
+ 0.050911229630292647
+ 0.050913836130883391
+ 0.050916442667742277
+ 0.050919049240867861
+ 0.050921655850258443
+ 0.050924262495912705
+ 0.050926869177828953
+ 0.050929475896005869
+ 0.05093208265044178
+ 0.050934689441135279
+ 0.050937296268084777
+ 0.050939903131288884
+ 0.050942510030745909
+ 0.050945116966454519
+ 0.05094772393841307
+ 0.050950330946620159
+ 0.050952937991074226
+ 0.050955545071773842
+ 0.050958152188717333
+ 0.050960759341903368
+ 0.05096336653133033
+ 0.050965973756996769
+ 0.050968581018901143
+ 0.050971188317041942
+ 0.050973795651417776
+ 0.050976403022026995
+ 0.050979010428868154
+ 0.050981617871939743
+ 0.050984225351240239
+ 0.050986832866768174
+ 0.050989440418521999
+ 0.050992048006500285
+ 0.050994655630701519
+ 0.050997263291124202
+ 0.050999870987766732
+ 0.051002478720627707
+ 0.051005086489705649
+ 0.051007694294998976
+ 0.051010302136506168
+ 0.051012910014225837
+ 0.051015517928156409
+ 0.051018125878296433
+ 0.051020733864644389
+ 0.05102334188719871
+ 0.051025949945958042
+ 0.051028558040920775
+ 0.051031166172085432
+ 0.051033774339450527
+ 0.051036382543014604
+ 0.051038990782776163
+ 0.05104159905873365
+ 0.05104420737088558
+ 0.051046815719230518
+ 0.051049424103766852
+ 0.051052032524493286
+ 0.051054640981408141
+ 0.051057249474509986
+ 0.051059858003797351
+ 0.05106246656926873
+ 0.051065075170922659
+ 0.051067683808757633
+ 0.051070292482772062
+ 0.0510729011929646
+ 0.051075509939333658
+ 0.051078118721877834
+ 0.05108072754059554
+ 0.051083336395485401
+ 0.051085945286545795
+ 0.051088554213775325
+ 0.051091163177172473
+ 0.051093772176735795
+ 0.051096381212463751
+ 0.05109899028435487
+ 0.051101599392407666
+ 0.051104208536620649
+ 0.051106817716992332
+ 0.051109426933521281
+ 0.051112036186205891
+ 0.05111464547504483
+ 0.051117254800036489
+ 0.051119864161179439
+ 0.051122473558472235
+ 0.051125082991913352
+ 0.051127692461501222
+ 0.051130301967234476
+ 0.051132911509111617
+ 0.051135521087131153
+ 0.051138130701291598
+ 0.051140740351591454
+ 0.051143350038029271
+ 0.051145959760603536
+ 0.051148569519312799
+ 0.051151179314155588
+ 0.051153789145130371
+ 0.051156399012235752
+ 0.051159008915470108
+ 0.051161618854832128
+ 0.051164228830320298
+ 0.05116683884193305
+ 0.051169448889669011
+ 0.051172058973526592
+ 0.051174669093504398
+ 0.051177279249600978
+ 0.051179889441814765
+ 0.051182499670144342
+ 0.051185109934588226
+ 0.051187720235145034
+ 0.051190330571813117
+ 0.051192940944591064
+ 0.051195551353477455
+ 0.051198161798470823
+ 0.051200772279569602
+ 0.051203382796772431
+ 0.051205993350077722
+ 0.051208603939484079
+ 0.051211214564990101
+ 0.051213825226594137
+ 0.051216435924294867
+ 0.05121904665809069
+ 0.051221657427980294
+ 0.05122426823396211
+ 0.051226879076034723
+ 0.051229489954196586
+ 0.051232100868446269
+ 0.051234711818782357
+ 0.05123732280520326
+ 0.051239933827707668
+ 0.051242544886294018
+ 0.051245155980960813
+ 0.051247767111706685
+ 0.051250378278530129
+ 0.051252989481429631
+ 0.051255600720403749
+ 0.051258211995451088
+ 0.051260823306570079
+ 0.051263434653759342
+ 0.051266046037017371
+ 0.051268657456342723
+ 0.051271268911733885
+ 0.051273880403189476
+ 0.051276491930708032
+ 0.051279103494287985
+ 0.05128171509392792
+ 0.051284326729626524
+ 0.051286938401382105
+ 0.051289550109193324
+ 0.051292161853058682
+ 0.051294773632976798
+ 0.05129738544894611
+ 0.051299997300965253
+ 0.051302609189032691
+ 0.051305221113147025
+ 0.051307833073306761
+ 0.051310445069510463
+ 0.051313057101756668
+ 0.051315669170043876
+ 0.051318281274370735
+ 0.051320893414735703
+ 0.051323505591137304
+ 0.051326117803574198
+ 0.051328730052044795
+ 0.051331342336547708
+ 0.051333954657081536
+ 0.051336567013644668
+ 0.051339179406235842
+ 0.051341791834853497
+ 0.05134440429949625
+ 0.051347016800162515
+ 0.051349629336850937
+ 0.051352241909560128
+ 0.05135485451828848
+ 0.051357467163034631
+ 0.051360079843797105
+ 0.051362692560574512
+ 0.051365305313365341
+ 0.051367918102168168
+ 0.051370530926981565
+ 0.051373143787804068
+ 0.05137575668463417
+ 0.051378369617470498
+ 0.051380982586311567
+ 0.051383595591155969
+ 0.051386208632002196
+ 0.051388821708848877
+ 0.051391434821694525
+ 0.051394047970537676
+ 0.05139666115537686
+ 0.051399274376210731
+ 0.051401887633037782
+ 0.051404500925856578
+ 0.051407114254665716
+ 0.051409727619463663
+ 0.051412341020249053
+ 0.051414954457020406
+ 0.051417567929776233
+ 0.051420181438515261
+ 0.051422794983235827
+ 0.051425408563936667
+ 0.051428022180616241
+ 0.051430635833273203
+ 0.051433249521906005
+ 0.051435863246513232
+ 0.051438477007093489
+ 0.051441090803645305
+ 0.051443704636167265
+ 0.051446318504657931
+ 0.051448932409115793
+ 0.051451546349539516
+ 0.051454160325927652
+ 0.051456774338278666
+ 0.051459388386591275
+ 0.051462002470863896
+ 0.051464616591095178
+ 0.051467230747283592
+ 0.051469844939427849
+ 0.051472459167526442
+ 0.051475073431577853
+ 0.05147768773158079
+ 0.051480302067533776
+ 0.05148291643943536
+ 0.051485530847284064
+ 0.051488145291078508
+ 0.05149075977081724
+ 0.051493374286498889
+ 0.051495988838121905
+ 0.051498603425684977
+ 0.051501218049186663
+ 0.051503832708625394
+ 0.051506447403999914
+ 0.051509062135308724
+ 0.05151167690255045
+ 0.051514291705723483
+ 0.051516906544826623
+ 0.05151952141985823
+ 0.05152213633081703
+ 0.051524751277701585
+ 0.051527366260510458
+ 0.051529981279242125
+ 0.051532596333895307
+ 0.051535211424468347
+ 0.051537826550960106
+ 0.051540441713368981
+ 0.051543056911693648
+ 0.051545672145932669
+ 0.051548287416084526
+ 0.051550902722147809
+ 0.051553518064121166
+ 0.051556133442003167
+ 0.05155874885579232
+ 0.051561364305487328
+ 0.051563979791086637
+ 0.051566595312588941
+ 0.051569210869992707
+ 0.051571826463296562
+ 0.051574442092499055
+ 0.051577057757598861
+ 0.05157967345859453
+ 0.051582289195484542
+ 0.051584904968267641
+ 0.051587520776942238
+ 0.051590136621506966
+ 0.051592752501960548
+ 0.051595368418301382
+ 0.051597984370528156
+ 0.051600600358639385
+ 0.051603216382633682
+ 0.051605832442509679
+ 0.051608448538265884
+ 0.051611064669900952
+ 0.051613680837413412
+ 0.05161629704080186
+ 0.05161891328006487
+ 0.051621529555201134
+ 0.051624145866209094
+ 0.051626762213087457
+ 0.051629378595834732
+ 0.051631995014449497
+ 0.051634611468930426
+ 0.051637227959275979
+ 0.051639844485484782
+ 0.051642461047555564
+ 0.051645077645486821
+ 0.051647694279277061
+ 0.051650310948925006
+ 0.051652927654429096
+ 0.051655544395788067
+ 0.051658161173000476
+ 0.051660777986064901
+ 0.051663394834979871
+ 0.05166601171974404
+ 0.051668628640356054
+ 0.051671245596814401
+ 0.051673862589117846
+ 0.051676479617264709
+ 0.051679096681253783
+ 0.051681713781083584
+ 0.051684330916752813
+ 0.051686948088259882
+ 0.051689565295603639
+ 0.051692182538782397
+ 0.051694799817794956
+ 0.051697417132639874
+ 0.051700034483315657
+ 0.051702651869820988
+ 0.051705269292154452
+ 0.051707886750314659
+ 0.051710504244300189
+ 0.051713121774109541
+ 0.051715739339741579
+ 0.051718356941194601
+ 0.051720974578467457
+ 0.051723592251558599
+ 0.051726209960466583
+ 0.051728827705190196
+ 0.051731445485727862
+ 0.051734063302078269
+ 0.051736681154240065
+ 0.051739299042211723
+ 0.051741916965991924
+ 0.05174453492557924
+ 0.051747152920972352
+ 0.051749770952169788
+ 0.051752389019170147
+ 0.051755007121972126
+ 0.051757625260574244
+ 0.051760243434975109
+ 0.051762861645173387
+ 0.051765479891167601
+ 0.051768098172956425
+ 0.051770716490538354
+ 0.051773334843912222
+ 0.051775953233076426
+ 0.051778571658029647
+ 0.051781190118770484
+ 0.051783808615297536
+ 0.051786427147609504
+ 0.051789045715704869
+ 0.051791664319582299
+ 0.051794282959240399
+ 0.051796901634677789
+ 0.051799520345893087
+ 0.051802139092884829
+ 0.051804757875651739
+ 0.051807376694192366
+ 0.051809995548505378
+ 0.051812614438589241
+ 0.051815233364442721
+ 0.051817852326064402
+ 0.051820471323452862
+ 0.051823090356606719
+ 0.05182570942552462
+ 0.051828328530205144
+ 0.051830947670646943
+ 0.051833566846848575
+ 0.051836186058808721
+ 0.051838805306525931
+ 0.051841424589998929
+ 0.051844043909226166
+ 0.051846663264206436
+ 0.051849282654938281
+ 0.051851902081420272
+ 0.051854521543651062
+ 0.051857141041629272
+ 0.051859760575353533
+ 0.051862380144822556
+ 0.051864999750034758
+ 0.051867619390988849
+ 0.051870239067683531
+ 0.051872858780117333
+ 0.051875478528288908
+ 0.05187809831219687
+ 0.051880718131839837
+ 0.051883337987216477
+ 0.051885957878325326
+ 0.051888577805165113
+ 0.051891197767734341
+ 0.051893817766031781
+ 0.051896437800055865
+ 0.051899057869805462
+ 0.051901677975278948
+ 0.051904298116475095
+ 0.051906918293392494
+ 0.0519095385060298
+ 0.051912158754385547
+ 0.051914779038458474
+ 0.05191739935824722
+ 0.051920019713750307
+ 0.051922640104966368
+ 0.051925260531894141
+ 0.051927880994532119
+ 0.051930501492879068
+ 0.051933122026933509
+ 0.051935742596694118
+ 0.051938363202159506
+ 0.051940983843328362
+ 0.051943604520199228
+ 0.051946225232770829
+ 0.051948845981041637
+ 0.051951466765010515
+ 0.051954087584675943
+ 0.051956708440036505
+ 0.051959329331091049
+ 0.051961950257838015
+ 0.051964571220276104
+ 0.051967192218403888
+ 0.051969813252220075
+ 0.051972434321723271
+ 0.051975055426912185
+ 0.051977676567785354
+ 0.051980297744341396
+ 0.051982918956579076
+ 0.051985540204496861
+ 0.051988161488093564
+ 0.05199078280736763
+ 0.051993404162317874
+ 0.051996025552942866
+ 0.051998646979241274
+ 0.052001268441211661
+ 0.052003889938852722
+ 0.052006511472163099
+ 0.052009133041141381
+ 0.052011754645786348
+ 0.052014376286096432
+ 0.052016997962070398
+ 0.052019619673706892
+ 0.052022241421004513
+ 0.052024863203961928
+ 0.05202748502257782
+ 0.052030106876850751
+ 0.052032728766779376
+ 0.052035350692362363
+ 0.052037972653598413
+ 0.052040594650486084
+ 0.052043216683024009
+ 0.052045838751210868
+ 0.052048460855045373
+ 0.052051082994526106
+ 0.052053705169651618
+ 0.052056327380420778
+ 0.052058949626832038
+ 0.052061571908884122
+ 0.052064194226575669
+ 0.052066816579905341
+ 0.052069438968871742
+ 0.052072061393473534
+ 0.052074683853709468
+ 0.052077306349578065
+ 0.052079928881078007
+ 0.05208255144820792
+ 0.052085174050966555
+ 0.052087796689352442
+ 0.052090419363364372
+ 0.052093042073000827
+ 0.052095664818260543
+ 0.052098287599142173
+ 0.052100910415644408
+ 0.052103533267765817
+ 0.052106156155505123
+ 0.052108779078860988
+ 0.052111402037831912
+ 0.052114025032416786
+ 0.052116648062614082
+ 0.052119271128422594
+ 0.052121894229840822
+ 0.052124517366867601
+ 0.052127140539501363
+ 0.052129763747740941
+ 0.052132386991585039
+ 0.052135010271032074
+ 0.052137633586080992
+ 0.052140256936730182
+ 0.05214288032297841
+ 0.052145503744824413
+ 0.052148127202266796
+ 0.052150750695304143
+ 0.052153374223935255
+ 0.052155997788158708
+ 0.052158621387973121
+ 0.052161245023377253
+ 0.052163868694369633
+ 0.05216649240094913
+ 0.052169116143114258
+ 0.05217173992086363
+ 0.052174363734196032
+ 0.052176987583110006
+ 0.0521796114676044
+ 0.05218223538767771
+ 0.052184859343328699
+ 0.052187483334555869
+ 0.052190107361358103
+ 0.052192731423733908
+ 0.052195355521682051
+ 0.052197979655201177
+ 0.05220060382428985
+ 0.052203228028946821
+ 0.052205852269170745
+ 0.052208476544960344
+ 0.052211100856314314
+ 0.052213725203231143
+ 0.052216349585709601
+ 0.052218974003748329
+ 0.052221598457346037
+ 0.052224222946501447
+ 0.052226847471213089
+ 0.052229472031479762
+ 0.052232096627300023
+ 0.052234721258672644
+ 0.052237345925596285
+ 0.052239970628069482
+ 0.052242595366091132
+ 0.052245220139659737
+ 0.052247844948773971
+ 0.052250469793432626
+ 0.052253094673634211
+ 0.052255719589377567
+ 0.05225834454066132
+ 0.052260969527484082
+ 0.052263594549844535
+ 0.052266219607741436
+ 0.052268844701173336
+ 0.05227146983013907
+ 0.052274094994637185
+ 0.052276720194666428
+ 0.052279345430225402
+ 0.05228197070131279
+ 0.05228459600792737
+ 0.052287221350067713
+ 0.052289846727732611
+ 0.052292472140920636
+ 0.052295097589630475
+ 0.052297723073860873
+ 0.052300348593610511
+ 0.052302974148877919
+ 0.052305599739662
+ 0.052308225365961282
+ 0.05231085102777451
+ 0.052313476725100311
+ 0.052316102457937497
+ 0.052318728226284535
+ 0.052321354030140307
+ 0.052323979869503365
+ 0.052326605744372416
+ 0.052329231654746226
+ 0.052331857600623442
+ 0.052334483582002614
+ 0.052337109598882672
+ 0.05233973565126214
+ 0.052342361739139739
+ 0.052344987862514118
+ 0.052347614021384055
+ 0.052350240215748155
+ 0.052352866445605085
+ 0.052355492710953605
+ 0.052358119011792381
+ 0.052360745348120082
+ 0.052363371719935471
+ 0.052365998127237093
+ 0.052368624570023739
+ 0.052371251048294085
+ 0.052373877562046832
+ 0.052376504111280552
+ 0.052379130695994119
+ 0.052381757316186099
+ 0.052384383971855242
+ 0.05238701066300025
+ 0.052389637389619791
+ 0.052392264151712518
+ 0.052394890949277143
+ 0.052397517782312365
+ 0.052400144650816931
+ 0.052402771554789493
+ 0.052405398494228685
+ 0.052408025469133333
+ 0.052410652479501947
+ 0.052413279525333444
+ 0.052415906606626331
+ 0.052418533723379464
+ 0.052421160875591392
+ 0.052423788063260868
+ 0.052426415286386641
+ 0.052429042544967296
+ 0.05243166983900166
+ 0.052434297168488374
+ 0.052436924533426077
+ 0.052439551933813514
+ 0.052442179369649435
+ 0.052444806840932508
+ 0.052447434347661449
+ 0.05245006188983483
+ 0.052452689467451498
+ 0.052455317080510079
+ 0.052457944729009373
+ 0.052460572412947978
+ 0.052463200132324611
+ 0.052465827887138008
+ 0.052468455677386838
+ 0.052471083503069824
+ 0.052473711364185667
+ 0.052476339260733133
+ 0.052478967192710786
+ 0.052481595160117432
+ 0.052484223162951704
+ 0.052486851201212464
+ 0.052489479274898262
+ 0.052492107384007759
+ 0.052494735528539858
+ 0.052497363708493165
+ 0.052499991923866292
+ 0.052502620174658135
+ 0.052505248460867245
+ 0.052507876782492427
+ 0.052510505139532322
+ 0.052513133531985667
+ 0.052515761959851151
+ 0.052518390423127538
+ 0.052521018921813489
+ 0.052523647455907735
+ 0.052526276025408963
+ 0.052528904630315919
+ 0.05253153327062729
+ 0.052534161946341779
+ 0.052536790657458109
+ 0.052539419403975003
+ 0.052542048185891234
+ 0.05254467700320533
+ 0.052547305855916229
+ 0.05254993474402244
+ 0.052552563667522832
+ 0.0525551926264161
+ 0.052557821620700794
+ 0.052560450650375817
+ 0.052563079715439845
+ 0.052565708815891503
+ 0.052568337951729688
+ 0.052570967122952929
+ 0.052573596329560046
+ 0.052576225571549701
+ 0.052578854848920588
+ 0.05258148416167157
+ 0.052584113509801279
+ 0.05258674289330844
+ 0.052589372312191622
+ 0.05259200176644982
+ 0.052594631256081499
+ 0.052597260781085564
+ 0.052599890341460578
+ 0.052602519937205536
+ 0.052605149568318792
+ 0.052607779234799333
+ 0.052610408936645765
+ 0.052613038673856923
+ 0.052615668446431292
+ 0.052618298254367826
+ 0.052620928097665179
+ 0.052623557976322052
+ 0.052626187890337184
+ 0.052628817839709324
+ 0.052631447824437176
+ 0.052634077844519483
+ 0.052636707899954831
+ 0.052639337990742184
+ 0.052641968116880128
+ 0.052644598278367351
+ 0.052647228475202687
+ 0.052649858707384756
+ 0.05265248897491244
+ 0.052655119277784324
+ 0.052657749615999151
+ 0.052660379989555778
+ 0.052663010398452753
+ 0.052665640842688898
+ 0.052668271322262934
+ 0.052670901837173642
+ 0.052673532387419647
+ 0.0526761629729997
+ 0.052678793593912664
+ 0.052681424250157094
+ 0.052684054941731881
+ 0.052686685668635609
+ 0.052689316430867113
+ 0.052691947228425011
+ 0.052694578061308235
+ 0.052697208929515314
+ 0.05269983983304511
+ 0.052702470771896347
+ 0.052705101746067691
+ 0.052707732755557915
+ 0.0527103638003657
+ 0.052712994880489923
+ 0.052715625995929181
+ 0.052718257146682268
+ 0.052720888332747996
+ 0.052723519554124895
+ 0.052726150810811903
+ 0.052728782102807618
+ 0.052731413430110917
+ 0.052734044792720432
+ 0.052736676190634976
+ 0.052739307623853149
+ 0.052741939092373888
+ 0.052744570596195778
+ 0.05274720213531759
+ 0.052749833709738195
+ 0.052752465319456134
+ 0.052755096964470262
+ 0.052757728644779386
+ 0.05276036036038205
+ 0.0527629921112771
+ 0.052765623897463414
+ 0.052768255718939443
+ 0.052770887575704237
+ 0.052773519467756373
+ 0.052776151395094541
+ 0.05277878335771765
+ 0.052781415355624327
+ 0.052784047388813385
+ 0.052786679457283506
+ 0.052789311561033454
+ 0.052791943700061982
+ 0.052794575874367901
+ 0.052797208083949908
+ 0.052799840328806691
+ 0.052802472608937105
+ 0.052805104924339714
+ 0.052807737275013512
+ 0.052810369660957077
+ 0.052813002082169283
+ 0.052815634538648723
+ 0.052818267030394314
+ 0.052820899557404634
+ 0.0528235321196786
+ 0.052826164717214817
+ 0.052828797350012141
+ 0.052831430018069316
+ 0.052834062721385029
+ 0.052836695459958095
+ 0.052839328233787203
+ 0.052841961042871151
+ 0.052844593887208753
+ 0.052847226766798573
+ 0.052849859681639612
+ 0.052852492631730481
+ 0.052855125617069947
+ 0.052857758637656689
+ 0.052860391693489606
+ 0.05286302478456744
+ 0.052865657910888805
+ 0.052868291072452667
+ 0.052870924269257581
+ 0.052873557501302411
+ 0.052876190768585879
+ 0.05287882407110682
+ 0.052881457408863922
+ 0.052884090781855998
+ 0.052886724190081655
+ 0.052889357633539816
+ 0.052891991112229225
+ 0.052894624626148495
+ 0.05289725817529662
+ 0.052899891759672107
+ 0.052902525379273917
+ 0.052905159034100764
+ 0.052907792724151331
+ 0.05291042644942448
+ 0.052913060209918927
+ 0.05291569400563343
+ 0.052918327836566706
+ 0.052920961702717685
+ 0.052923595604084932
+ 0.052926229540667287
+ 0.052928863512463557
+ 0.052931497519472459
+ 0.052934131561692861
+ 0.05293676563912339
+ 0.052939399751762803
+ 0.052942033899609935
+ 0.052944668082663612
+ 0.052947302300922469
+ 0.052949936554385402
+ 0.05295257084305114
+ 0.052955205166918352
+ 0.052957839525985942
+ 0.052960473920252549
+ 0.052963108349717056
+ 0.052965742814378151
+ 0.052968377314234733
+ 0.052971011849285439
+ 0.052973646419529036
+ 0.052976281024964399
+ 0.052978915665590168
+ 0.052981550341405254
+ 0.052984185052408386
+ 0.052986819798598324
+ 0.052989454579973762
+ 0.05299208939653359
+ 0.052994724248276504
+ 0.052997359135201295
+ 0.052999994057306765
+ 0.053002629014591671
+ 0.053005264007054818
+ 0.053007899034694897
+ 0.05301053409751081
+ 0.053013169195501211
+ 0.053015804328664991
+ 0.053018439497000788
+ 0.053021074700507501
+ 0.0530237099391839
+ 0.053026345213028618
+ 0.053028980522040643
+ 0.053031615866218615
+ 0.053034251245561298
+ 0.053036886660067617
+ 0.053039522109736226
+ 0.053042157594565917
+ 0.053044793114555476
+ 0.053047428669703703
+ 0.053050064260009383
+ 0.053052699885471281
+ 0.053055335546088191
+ 0.053057971241858876
+ 0.053060606972782191
+ 0.053063242738856813
+ 0.053065878540081525
+ 0.053068514376455204
+ 0.053071150247976574
+ 0.053073786154644434
+ 0.05307642209645759
+ 0.053079058073414738
+ 0.053081694085514781
+ 0.053084330132756388
+ 0.053086966215138462
+ 0.053089602332659774
+ 0.053092238485319035
+ 0.053094874673115043
+ 0.053097510896046633
+ 0.053100147154112522
+ 0.053102783447311612
+ 0.053105419775642614
+ 0.053108056139104333
+ 0.053110692537695542
+ 0.053113328971415033
+ 0.053115965440261537
+ 0.053118601944234005
+ 0.053121238483331119
+ 0.053123875057551687
+ 0.053126511666894423
+ 0.053129148311358239
+ 0.053131784990941962
+ 0.053134421705644266
+ 0.053137058455463931
+ 0.053139695240399826
+ 0.053142332060450714
+ 0.053144968915615397
+ 0.053147605805892652
+ 0.053150242731281341
+ 0.053152879691780147
+ 0.053155516687387924
+ 0.0531581537181035
+ 0.053160790783925563
+ 0.053163427884853065
+ 0.053166065020884647
+ 0.053168702192019253
+ 0.053171339398255545
+ 0.053173976639592391
+ 0.053176613916028577
+ 0.053179251227563007
+ 0.053181888574194203
+ 0.053184525955921269
+ 0.053187163372742832
+ 0.053189800824657719
+ 0.053192438311664772
+ 0.053195075833762685
+ 0.053197713390950363
+ 0.053200350983226632
+ 0.053202988610590203
+ 0.053205626273039909
+ 0.053208263970574585
+ 0.053210901703193036
+ 0.053213539470893939
+ 0.053216177273676224
+ 0.053218815111538739
+ 0.053221452984480083
+ 0.053224090892499243
+ 0.053226728835595011
+ 0.053229366813766145
+ 0.053232004827011445
+ 0.053234642875329759
+ 0.053237280958719865
+ 0.053239919077180474
+ 0.053242557230710537
+ 0.053245195419308826
+ 0.053247833642974127
+ 0.053250471901705197
+ 0.053253110195500934
+ 0.053255748524360103
+ 0.05325838688828162
+ 0.053261025287264091
+ 0.053263663721306448
+ 0.053266302190407441
+ 0.053268940694565954
+ 0.053271579233780807
+ 0.053274217808050722
+ 0.053276856417374563
+ 0.053279495061751177
+ 0.053282133741179259
+ 0.053284772455657763
+ 0.053287411205185452
+ 0.053290049989761022
+ 0.053292688809383426
+ 0.053295327664051435
+ 0.053297966553763898
+ 0.053300605478519579
+ 0.053303244438317354
+ 0.053305883433155905
+ 0.053308522463034178
+ 0.053311161527951026
+ 0.053313800627905049
+ 0.053316439762895261
+ 0.053319078932920448
+ 0.053321718137979347
+ 0.053324357378070869
+ 0.053326996653193771
+ 0.053329635963346875
+ 0.053332275308529034
+ 0.053334914688739056
+ 0.053337554103975726
+ 0.053340193554237907
+ 0.053342833039524376
+ 0.053345472559833948
+ 0.053348112115165547
+ 0.053350751705517931
+ 0.053353391330889843
+ 0.053356030991280223
+ 0.053358670686687822
+ 0.053361310417111479
+ 0.053363950182550003
+ 0.053366589983002255
+ 0.053369229818467048
+ 0.053371869688943155
+ 0.053374509594429492
+ 0.053377149534924853
+ 0.053379789510427919
+ 0.053382429520937698
+ 0.053385069566452989
+ 0.053387709646972578
+ 0.053390349762495272
+ 0.053392989913019946
+ 0.0533956300985454
+ 0.053398270319070511
+ 0.053400910574593986
+ 0.053403550865114793
+ 0.053406191190631586
+ 0.053408831551143426
+ 0.05341147194664897
+ 0.053414112377147077
+ 0.053416752842636583
+ 0.053419393343116378
+ 0.053422033878585226
+ 0.053424674449041989
+ 0.053427315054485496
+ 0.053429955694914516
+ 0.053432596370327982
+ 0.053435237080724597
+ 0.053437877826103382
+ 0.05344051860646308
+ 0.053443159421802458
+ 0.053445800272120349
+ 0.053448441157415601
+ 0.053451082077687243
+ 0.05345372303293381
+ 0.053456364023154346
+ 0.053459005048347587
+ 0.053461646108512409
+ 0.053464287203647626
+ 0.053466928333752099
+ 0.05346956949882465
+ 0.053472210698864119
+ 0.053474851933869312
+ 0.053477493203839176
+ 0.053480134508772426
+ 0.053482775848667903
+ 0.05348541722352456
+ 0.053488058633341114
+ 0.053490700078116432
+ 0.05349334155784944
+ 0.053495983072538889
+ 0.053498624622183633
+ 0.053501266206782506
+ 0.053503907826334345
+ 0.053506549480838099
+ 0.053509191170292514
+ 0.053511832894696382
+ 0.053514474654048662
+ 0.053517116448348098
+ 0.053519758277593595
+ 0.053522400141783964
+ 0.053525042040918042
+ 0.053527683974994772
+ 0.053530325944012865
+ 0.053532967947971265
+ 0.053535609986868737
+ 0.053538252060704179
+ 0.053540894169476418
+ 0.053543536313184287
+ 0.053546178491826711
+ 0.053548820705402393
+ 0.053551462953910361
+ 0.053554105237349249
+ 0.053556747555718126
+ 0.053559389909015653
+ 0.053562032297240839
+ 0.053564674720392481
+ 0.053567317178469312
+ 0.053569959671470345
+ 0.053572602199394345
+ 0.053575244762240154
+ 0.05357788736000664
+ 0.053580529992692708
+ 0.053583172660297107
+ 0.053585815362818805
+ 0.053588458100256572
+ 0.053591100872609231
+ 0.053593743679875724
+ 0.053596386522054881
+ 0.053599029399145529
+ 0.053601672311146507
+ 0.053604315258056721
+ 0.053606958239875102
+ 0.053609601256600317
+ 0.053612244308231319
+ 0.053614887394766893
+ 0.053617530516206019
+ 0.053620173672547476
+ 0.053622816863790133
+ 0.053625460089932922
+ 0.05362810335097451
+ 0.053630746646913946
+ 0.053633389977749982
+ 0.053636033343481569
+ 0.053638676744107508
+ 0.053641320179626556
+ 0.053643963650037818
+ 0.053646607155339879
+ 0.053649250695531843
+ 0.053651894270612406
+ 0.053654537880580472
+ 0.05365718152543493
+ 0.05365982520517467
+ 0.05366246891979843
+ 0.05366511266930523
+ 0.053667756453693739
+ 0.053670400272962993
+ 0.053673044127111887
+ 0.053675688016139082
+ 0.053678331940043615
+ 0.053680975898824222
+ 0.053683619892479904
+ 0.053686263921009392
+ 0.053688907984411699
+ 0.053691552082685584
+ 0.053694196215829888
+ 0.053696840383843591
+ 0.053699484586725493
+ 0.053702128824474463
+ 0.053704773097089417
+ 0.053707417404569094
+ 0.053710061746912494
+ 0.053712706124118402
+ 0.053715350536185764
+ 0.053717994983113318
+ 0.053720639464900209
+ 0.053723283981544988
+ 0.053725928533046738
+ 0.053728573119404162
+ 0.053731217740616274
+ 0.053733862396681868
+ 0.053736507087599888
+ 0.053739151813369045
+ 0.053741796573988469
+ 0.05374444136945683
+ 0.053747086199773059
+ 0.05374973106493601
+ 0.053752375964944622
+ 0.05375502089979773
+ 0.053757665869494188
+ 0.053760310874032845
+ 0.053762955913412666
+ 0.053765600987632473
+ 0.053768246096691147
+ 0.05377089124058753
+ 0.05377353641932054
+ 0.053776181632889067
+ 0.053778826881292041
+ 0.053781472164528166
+ 0.053784117482596497
+ 0.05378676283549573
+ 0.053789408223224998
+ 0.053792053645782927
+ 0.053794699103168524
+ 0.053797344595380617
+ 0.053799990122418241
+ 0.05380263568428003
+ 0.053805281280964991
+ 0.053807926912472014
+ 0.053810572578800009
+ 0.053813218279947783
+ 0.053815864015914275
+ 0.053818509786698283
+ 0.053821155592298879
+ 0.05382380143271475
+ 0.053826447307944884
+ 0.053829093217988039
+ 0.053831739162843215
+ 0.053834385142509329
+ 0.05383703115698512
+ 0.053839677206269629
+ 0.053842323290361635
+ 0.053844969409260091
+ 0.053847615562963906
+ 0.053850261751471833
+ 0.053852907974782878
+ 0.05385555423289589
+ 0.053858200525809828
+ 0.053860846853523367
+ 0.053863493216035625
+ 0.053866139613345396
+ 0.053868786045451554
+ 0.05387143251235306
+ 0.053874079014048733
+ 0.053876725550537519
+ 0.053879372121818259
+ 0.053882018727889891
+ 0.053884665368751181
+ 0.053887312044401149
+ 0.053889958754838721
+ 0.053892605500062661
+ 0.053895252280071956
+ 0.053897899094865434
+ 0.053900545944442095
+ 0.053903192828800697
+ 0.053905839747940228
+ 0.053908486701859465
+ 0.0539111336905575
+ 0.053913780714033091
+ 0.053916427772285079
+ 0.0539190748653125
+ 0.053921721993114208
+ 0.053924369155689079
+ 0.053927016353035949
+ 0.053929663585153789
+ 0.053932310852041525
+ 0.053934958153697976
+ 0.053937605490122165
+ 0.053940252861312807
+ 0.053942900267268938
+ 0.053945547707989427
+ 0.053948195183473095
+ 0.053950842693719039
+ 0.053953490238725935
+ 0.053956137818492768
+ 0.053958785433018505
+ 0.053961433082301967
+ 0.053964080766342022
+ 0.053966728485137755
+ 0.053969376238687847
+ 0.05397202402699134
+ 0.05397467185004709
+ 0.05397731970785398
+ 0.053979967600410982
+ 0.053982615527716923
+ 0.053985263489770778
+ 0.053987911486571311
+ 0.053990559518117633
+ 0.05399320758440853
+ 0.053995855685442927
+ 0.053998503821219679
+ 0.0540011519917378
+ 0.05400380019699616
+ 0.054006448436993537
+ 0.054009096711729057
+ 0.05401174502120145
+ 0.054014393365409669
+ 0.054017041744352713
+ 0.054019690158029376
+ 0.054022338606438645
+ 0.054024987089579361
+ 0.054027635607450407
+ 0.054030284160050922
+ 0.05403293274737956
+ 0.054035581369435301
+ 0.054038230026217125
+ 0.05404087871772395
+ 0.054043527443954506
+ 0.054046176204907911
+ 0.054048825000582987
+ 0.054051473830978629
+ 0.054054122696093804
+ 0.054056771595927422
+ 0.054059420530478346
+ 0.054062069499745555
+ 0.054064718503727953
+ 0.054067367542424409
+ 0.054070016615833813
+ 0.054072665723955152
+ 0.05407531486678735
+ 0.054077964044329276
+ 0.054080613256579847
+ 0.054083262503538031
+ 0.05408591178520275
+ 0.054088561101572813
+ 0.054091210452647233
+ 0.054093859838424921
+ 0.054096509258904697
+ 0.054099158714085611
+ 0.054101808203966539
+ 0.054104457728546468
+ 0.054107107287824148
+ 0.054109756881798671
+ 0.054112406510468884
+ 0.054115056173833637
+ 0.054117705871891922
+ 0.054120355604642727
+ 0.054123005372084899
+ 0.054125655174217309
+ 0.054128305011039005
+ 0.054130954882548883
+ 0.054133604788745793
+ 0.054136254729628665
+ 0.054138904705196389
+ 0.054141554715448098
+ 0.054144204760382515
+ 0.054146854839998614
+ 0.054149504954295373
+ 0.054152155103271628
+ 0.054154805286926379
+ 0.05415745550525853
+ 0.054160105758267005
+ 0.054162756045950736
+ 0.054165406368308661
+ 0.054168056725339642
+ 0.054170707117042659
+ 0.054173357543416706
+ 0.054176008004460582
+ 0.0541786585001734
+ 0.054181309030553827
+ 0.054183959595601038
+ 0.054186610195313796
+ 0.054189260829691124
+ 0.054191911498731919
+ 0.054194562202435091
+ 0.054197212940799711
+ 0.054199863713824528
+ 0.054202514521508489
+ 0.054205165363850734
+ 0.054207816240849971
+ 0.054210467152505187
+ 0.05421311809881546
+ 0.054215769079779499
+ 0.054218420095396354
+ 0.054221071145664913
+ 0.054223722230584248
+ 0.054226373350153088
+ 0.054229024504370615
+ 0.054231675693235504
+ 0.054234326916746886
+ 0.054236978174903576
+ 0.054239629467704588
+ 0.054242280795148888
+ 0.054244932157235297
+ 0.054247583553962829
+ 0.054250234985330381
+ 0.05425288645133694
+ 0.0542555379519815
+ 0.054258189487262853
+ 0.054260841057180022
+ 0.054263492661732006
+ 0.054266144300917571
+ 0.054268795974735794
+ 0.054271447683185627
+ 0.054274099426265911
+ 0.054276751203975696
+ 0.054279403016313933
+ 0.054282054863279493
+ 0.054284706744871306
+ 0.05428735866108831
+ 0.054290010611929541
+ 0.054292662597393862
+ 0.05429531461748021
+ 0.054297966672187586
+ 0.054300618761514929
+ 0.054303270885461219
+ 0.054305923044025282
+ 0.054308575237206162
+ 0.054311227465002762
+ 0.054313879727413999
+ 0.054316532024438972
+ 0.054319184356076425
+ 0.054321836722325469
+ 0.054324489123184987
+ 0.054327141558653917
+ 0.054329794028731164
+ 0.05433244653341579
+ 0.054335099072706658
+ 0.054337751646602768
+ 0.054340404255103045
+ 0.054343056898206357
+ 0.054345709575911845
+ 0.054348362288218356
+ 0.054351015035124815
+ 0.054353667816630175
+ 0.054356320632733511
+ 0.054358973483433583
+ 0.054361626368729446
+ 0.054364279288620115
+ 0.054366932243104453
+ 0.054369585232181376
+ 0.054372238255849983
+ 0.054374891314109088
+ 0.054377544406957717
+ 0.054380197534394874
+ 0.05438285069641937
+ 0.054385503893030269
+ 0.054388157124226476
+ 0.054390810390007038
+ 0.054393463690370826
+ 0.054396117025316798
+ 0.05439877039484399
+ 0.054401423798951236
+ 0.054404077237637627
+ 0.05440673071090206
+ 0.054409384218743445
+ 0.054412037761160874
+ 0.054414691338153055
+ 0.054417344949719261
+ 0.054419998595858311
+ 0.054422652276569131
+ 0.054425305991850671
+ 0.054427959741701948
+ 0.054430613526121933
+ 0.054433267345109601
+ 0.054435921198663889
+ 0.054438575086783708
+ 0.054441229009468059
+ 0.054443882966715866
+ 0.054446536958526227
+ 0.054449190984897991
+ 0.054451845045830165
+ 0.054454499141321701
+ 0.05445715327137151
+ 0.054459807435978634
+ 0.054462461635142033
+ 0.054465115868860672
+ 0.054467770137133449
+ 0.054470424439959413
+ 0.054473078777337501
+ 0.054475733149266813
+ 0.054478387555745959
+ 0.054481041996774227
+ 0.054483696472350539
+ 0.054486350982473779
+ 0.054489005527142968
+ 0.054491660106357039
+ 0.054494314720115039
+ 0.05449696936841586
+ 0.054499624051258501
+ 0.054502278768641936
+ 0.05450493352056511
+ 0.054507588307027004
+ 0.054510243128026686
+ 0.054512897983562986
+ 0.054515552873634951
+ 0.054518207798241465
+ 0.054520862757381675
+ 0.05452351775105449
+ 0.054526172779258766
+ 0.054528827841993581
+ 0.054531482939257886
+ 0.054534138071050627
+ 0.054536793237370866
+ 0.054539448438217578
+ 0.054542103673589658
+ 0.054544758943486045
+ 0.054547414247905844
+ 0.054550069586847966
+ 0.054552724960311404
+ 0.05455538036829511
+ 0.054558035810798086
+ 0.054560691287819305
+ 0.054563346799357745
+ 0.054566002345412347
+ 0.054568657925982186
+ 0.054571313541066181
+ 0.054573969190663332
+ 0.054576624874772557
+ 0.054579280593392905
+ 0.054581936346523349
+ 0.054584592134162876
+ 0.05458724795631046
+ 0.054589903812965031
+ 0.054592559704125659
+ 0.054595215629791298
+ 0.054597871589960871
+ 0.054600527584633352
+ 0.054603183613807907
+ 0.05460583967748335
+ 0.054608495775658662
+ 0.054611151908332912
+ 0.05461380807550504
+ 0.054616464277174016
+ 0.054619120513338927
+ 0.054621776783998689
+ 0.0546244330891522
+ 0.054627089428798618
+ 0.054629745802936808
+ 0.054632402211565824
+ 0.054635058654684529
+ 0.054637715132292049
+ 0.054640371644387425
+ 0.054643028190969473
+ 0.05464568477203726
+ 0.054648341387589859
+ 0.054650998037626061
+ 0.054653654722145069
+ 0.054656311441145751
+ 0.054658968194627143
+ 0.054661624982588135
+ 0.054664281805027845
+ 0.054666938661945337
+ 0.05466959555333941
+ 0.054672252479209073
+ 0.054674909439553471
+ 0.054677566434371459
+ 0.054680223463662164
+ 0.054682880527424454
+ 0.054685537625657366
+ 0.05468819475835987
+ 0.05469085192553106
+ 0.054693509127169866
+ 0.054696166363275206
+ 0.054698823633846184
+ 0.054701480938881754
+ 0.054704138278380929
+ 0.054706795652342752
+ 0.054709453060766175
+ 0.054712110503650137
+ 0.054714767980993638
+ 0.054717425492795846
+ 0.054720083039055553
+ 0.054722740619771879
+ 0.054725398234943802
+ 0.054728055884570352
+ 0.05473071356865037
+ 0.054733371287183058
+ 0.054736029040167326
+ 0.054738686827602176
+ 0.054741344649486684
+ 0.054744002505819685
+ 0.05474666039660029
+ 0.054749318321827577
+ 0.054751976281500428
+ 0.054754634275617935
+ 0.054757292304178924
+ 0.054759950367182703
+ 0.054762608464627986
+ 0.054765266596513915
+ 0.054767924762839516
+ 0.054770582963603716
+ 0.054773241198805514
+ 0.054775899468444016
+ 0.054778557772518152
+ 0.054781216111026987
+ 0.05478387448396943
+ 0.054786532891344573
+ 0.054789191333151424
+ 0.05479184980938899
+ 0.054794508320056237
+ 0.054797166865152111
+ 0.054799825444675807
+ 0.054802484058626234
+ 0.054805142707002402
+ 0.054807801389803221
+ 0.054810460107027899
+ 0.054813118858675312
+ 0.054815777644744469
+ 0.054818436465234439
+ 0.054821095320144286
+ 0.054823754209472872
+ 0.05482641313321935
+ 0.054829072091382672
+ 0.05483173108396177
+ 0.054834390110955776
+ 0.054837049172363699
+ 0.054839708268184489
+ 0.054842367398417198
+ 0.054845026563060839
+ 0.054847685762114476
+ 0.054850344995576984
+ 0.054853004263447552
+ 0.054855663565725063
+ 0.054858322902408552
+ 0.054860982273497096
+ 0.054863641678989758
+ 0.054866301118885429
+ 0.054868960593183122
+ 0.054871620101881978
+ 0.054874279644980942
+ 0.054876939222479056
+ 0.0548795988343753
+ 0.054882258480668709
+ 0.054884918161358341
+ 0.054887577876443203
+ 0.054890237625922211
+ 0.054892897409794604
+ 0.054895557228059173
+ 0.054898217080715024
+ 0.054900876967761296
+ 0.054903536889196906
+ 0.054906196845020801
+ 0.054908856835232181
+ 0.054911516859829916
+ 0.054914176918813139
+ 0.054916837012180718
+ 0.054919497139931862
+ 0.054922157302065552
+ 0.054924817498580712
+ 0.054927477729476488
+ 0.05493013799475182
+ 0.054932798294405789
+ 0.054935458628437399
+ 0.054938118996845663
+ 0.054940779399629651
+ 0.054943439836788281
+ 0.054946100308320735
+ 0.054948760814225943
+ 0.054951421354503004
+ 0.054954081929150821
+ 0.054956742538168575
+ 0.054959403181555191
+ 0.05496206385930974
+ 0.054964724571431207
+ 0.054967385317918754
+ 0.054970046098771264
+ 0.054972706913987743
+ 0.054975367763567415
+ 0.054978028647509176
+ 0.054980689565812042
+ 0.054983350518475103
+ 0.054986011505497381
+ 0.054988672526877898
+ 0.054991333582615681
+ 0.054993994672709851
+ 0.054996655797159233
+ 0.054999316955963086
+ 0.055001978149120313
+ 0.055004639376629999
+ 0.055007300638491206
+ 0.055009961934702874
+ 0.055012623265264182
+ 0.055015284630174008
+ 0.055017946029431504
+ 0.055020607463035651
+ 0.055023268930985539
+ 0.055025930433280162
+ 0.055028591969918467
+ 0.055031253540899716
+ 0.055033915146222814
+ 0.055036576785886686
+ 0.055039238459890616
+ 0.055041900168233508
+ 0.055044561910914419
+ 0.055047223687932405
+ 0.055049885499286431
+ 0.055052547344975673
+ 0.055055209224999006
+ 0.055057871139355632
+ 0.055060533088044504
+ 0.055063195071064726
+ 0.055065857088415306
+ 0.05506851914009523
+ 0.055071181226103702
+ 0.055073843346439506
+ 0.055076505501101963
+ 0.055079167690089907
+ 0.055081829913402491
+ 0.0550844921710388
+ 0.055087154462997751
+ 0.05508981678927849
+ 0.055092479149880073
+ 0.05509514154480142
+ 0.055097803974041674
+ 0.055100466437599895
+ 0.055103128935475178
+ 0.055105791467666428
+ 0.055108454034172812
+ 0.055111116634993282
+ 0.055113779270126936
+ 0.055116441939572852
+ 0.055119104643330065
+ 0.055121767381397596
+ 0.055124430153774509
+ 0.05512709296045986
+ 0.055129755801452712
+ 0.055132418676752129
+ 0.055135081586357097
+ 0.055137744530266694
+ 0.05514040750848001
+ 0.055143070520996117
+ 0.055145733567813965
+ 0.055148396648932736
+ 0.055151059764351321
+ 0.055153722914068989
+ 0.055156386098084577
+ 0.05515904931639725
+ 0.055161712569006018
+ 0.055164375855910087
+ 0.05516703917710828
+ 0.055169702532599854
+ 0.055172365922383698
+ 0.055175029346459036
+ 0.055177692804824791
+ 0.055180356297480117
+ 0.055183019824423953
+ 0.055185683385655437
+ 0.055188346981173683
+ 0.055191010610977642
+ 0.055193674275066447
+ 0.055196337973439119
+ 0.055199001706094701
+ 0.055201665473032242
+ 0.055204329274250917
+ 0.055206993109749719
+ 0.055209656979527622
+ 0.055212320883583813
+ 0.055214984821917272
+ 0.05521764879452716
+ 0.055220312801412416
+ 0.0552229768425722
+ 0.055225640918005532
+ 0.055228305027711436
+ 0.055230969171689029
+ 0.055233633349937472
+ 0.055236297562455579
+ 0.055238961809242614
+ 0.055241626090297598
+ 0.055244290405619588
+ 0.055246954755207585
+ 0.055249619139060811
+ 0.055252283557178199
+ 0.055254948009558866
+ 0.055257612496201876
+ 0.055260277017106264
+ 0.055262941572271164
+ 0.055265606161695562
+ 0.055268270785378562
+ 0.055270935443319298
+ 0.055273600135516771
+ 0.055276264861969973
+ 0.05527892962267815
+ 0.055281594417640259
+ 0.055284259246855413
+ 0.055286924110322641
+ 0.055289589008041019
+ 0.05529225394000975
+ 0.055294918906227709
+ 0.055297583906693995
+ 0.055300248941407816
+ 0.055302914010368187
+ 0.055305579113574144
+ 0.055308244251024694
+ 0.055310909422719122
+ 0.055313574628656326
+ 0.05531623986883543
+ 0.055318905143255534
+ 0.055321570451915665
+ 0.055324235794814887
+ 0.055326901171952422
+ 0.055329566583327154
+ 0.055332232028938194
+ 0.055334897508784689
+ 0.055337563022865799
+ 0.0553402285711804
+ 0.055342894153727749
+ 0.055345559770506689
+ 0.055348225421516614
+ 0.055350891106756374
+ 0.055353556826225093
+ 0.055356222579921899
+ 0.055358888367845797
+ 0.055361554189996033
+ 0.055364220046371475
+ 0.055366885936971297
+ 0.055369551861794652
+ 0.055372217820840501
+ 0.055374883814107892
+ 0.05537754984159618
+ 0.055380215903304129
+ 0.055382881999230922
+ 0.055385548129375746
+ 0.055388214293737636
+ 0.055390880492315622
+ 0.055393546725108836
+ 0.055396212992116306
+ 0.055398879293337137
+ 0.055401545628770463
+ 0.055404211998415387
+ 0.055406878402270869
+ 0.055409544840336153
+ 0.05541221131261017
+ 0.055414877819092163
+ 0.0554175443597811
+ 0.055420210934676056
+ 0.0554228775437762
+ 0.055425544187080643
+ 0.055428210864588427
+ 0.055430877576298554
+ 0.055433544322210274
+ 0.055436211102322518
+ 0.055438877916634544
+ 0.055441544765145262
+ 0.055444211647853903
+ 0.055446878564759529
+ 0.055449545515861183
+ 0.055452212501158039
+ 0.055454879520649085
+ 0.055457546574333466
+ 0.055460213662210336
+ 0.055462880784278572
+ 0.055465547940537603
+ 0.055468215130986265
+ 0.055470882355623689
+ 0.055473549614449023
+ 0.055476216907461323
+ 0.055478884234659777
+ 0.055481551596043441
+ 0.055484218991611267
+ 0.055486886421362479
+ 0.055489553885296201
+ 0.055492221383411533
+ 0.055494888915707453
+ 0.055497556482183172
+ 0.055500224082837765
+ 0.055502891717670262
+ 0.055505559386679802
+ 0.055508227089865442
+ 0.055510894827226445
+ 0.055513562598761779
+ 0.055516230404470533
+ 0.055518898244351841
+ 0.055521566118404773
+ 0.055524234026628497
+ 0.055526901969022081
+ 0.055529569945584618
+ 0.055532237956315178
+ 0.055534906001212865
+ 0.055537574080276826
+ 0.055540242193506222
+ 0.055542910340899955
+ 0.055545578522457305
+ 0.055548246738177341
+ 0.055550914988059107
+ 0.055553583272101872
+ 0.055556251590304515
+ 0.055558919942666242
+ 0.055561588329186201
+ 0.055564256749863504
+ 0.055566925204697186
+ 0.055569593693686366
+ 0.055572262216830155
+ 0.055574930774127701
+ 0.055577599365578018
+ 0.055580267991180314
+ 0.055582936650933654
+ 0.055585605344837169
+ 0.055588274072889923
+ 0.055590942835091056
+ 0.055593611631439666
+ 0.055596280461934891
+ 0.055598949326575796
+ 0.055601618225361492
+ 0.055604287158291146
+ 0.055606956125363802
+ 0.055609625126578688
+ 0.055612294161934757
+ 0.055614963231431266
+ 0.055617632335067183
+ 0.055620301472841721
+ 0.055622970644753911
+ 0.055625639850803051
+ 0.055628309090988023
+ 0.055630978365308108
+ 0.055633647673762249
+ 0.055636317016349787
+ 0.055638986393069682
+ 0.055641655803921067
+ 0.055644325248903032
+ 0.055646994728014862
+ 0.055649664241255434
+ 0.055652333788624032
+ 0.055655003370119721
+ 0.055657672985741598
+ 0.055660342635488767
+ 0.055663012319360404
+ 0.055665682037355606
+ 0.055668351789473512
+ 0.0556710215757132
+ 0.055673691396073768
+ 0.055676361250554397
+ 0.055679031139154227
+ 0.055681701061872264
+ 0.055684371018707712
+ 0.055687041009659759
+ 0.055689711034727307
+ 0.05569238109390974
+ 0.055695051187206003
+ 0.05569772131461527
+ 0.055700391476136653
+ 0.055703061671769312
+ 0.05570573190151238
+ 0.055708402165364913
+ 0.055711072463326024
+ 0.055713742795394941
+ 0.055716413161570701
+ 0.055719083561852463
+ 0.055721753996239375
+ 0.055724424464730499
+ 0.055727094967324975
+ 0.055729765504022005
+ 0.055732436074820667
+ 0.055735106679719953
+ 0.055737777318719262
+ 0.055740447991817502
+ 0.055743118699013945
+ 0.055745789440307607
+ 0.055748460215697654
+ 0.055751131025183212
+ 0.055753801868763435
+ 0.055756472746437497
+ 0.055759143658204377
+ 0.05576181460406332
+ 0.055764485584013451
+ 0.055767156598053862
+ 0.055769827646183691
+ 0.055772498728402176
+ 0.055775169844708233
+ 0.055777840995101219
+ 0.055780512179580112
+ 0.055783183398144129
+ 0.055785854650792305
+ 0.055788525937523939
+ 0.055791197258337998
+ 0.055793868613233696
+ 0.055796540002210203
+ 0.055799211425266552
+ 0.055801882882401961
+ 0.055804554373615492
+ 0.055807225898906361
+ 0.05580989745827368
+ 0.055812569051716547
+ 0.055815240679234185
+ 0.055817912340825636
+ 0.055820584036490033
+ 0.05582325576622657
+ 0.055825927530034458
+ 0.055828599327912738
+ 0.055831271159860495
+ 0.055833943025876881
+ 0.055836614925961169
+ 0.055839286860112386
+ 0.055841958828329818
+ 0.055844630830612335
+ 0.055847302866959304
+ 0.055849974937369769
+ 0.055852647041842923
+ 0.055855319180377852
+ 0.055857991352973743
+ 0.055860663559629757
+ 0.055863335800344943
+ 0.055866008075118559
+ 0.055868680383949633
+ 0.055871352726837457
+ 0.055874025103781026
+ 0.055876697514779597
+ 0.055879369959832295
+ 0.055882042438938115
+ 0.055884714952096362
+ 0.055887387499306218
+ 0.055890060080566656
+ 0.055892732695876975
+ 0.055895405345236265
+ 0.055898078028643626
+ 0.0559007507460983
+ 0.055903423497599351
+ 0.055906096283145974
+ 0.055908769102737378
+ 0.055911441956372591
+ 0.05591411484405083
+ 0.055916787765771178
+ 0.055919460721532893
+ 0.055922133711335073
+ 0.055924806735176857
+ 0.055927479793057316
+ 0.055930152884975694
+ 0.055932826010931233
+ 0.055935499170922935
+ 0.055938172364949953
+ 0.055940845593011664
+ 0.055943518855106837
+ 0.055946192151234954
+ 0.055948865481394966
+ 0.05595153884558618
+ 0.055954212243807679
+ 0.05595688567605861
+ 0.055959559142338119
+ 0.055962232642645361
+ 0.055964906176979516
+ 0.0559675797453398
+ 0.055970253347725242
+ 0.055972926984134974
+ 0.055975600654568365
+ 0.055978274359024395
+ 0.055980948097502224
+ 0.055983621870001138
+ 0.055986295676520186
+ 0.0559889695170585
+ 0.055991643391615296
+ 0.055994317300189771
+ 0.055996991242781048
+ 0.055999665219388255
+ 0.056002339230010585
+ 0.056005013274647193
+ 0.056007687353297177
+ 0.056010361465959835
+ 0.056013035612634231
+ 0.056015709793319518
+ 0.056018384008014906
+ 0.056021058256719554
+ 0.056023732539432589
+ 0.056026406856153121
+ 0.056029081206880514
+ 0.056031755591613691
+ 0.056034430010352042
+ 0.056037104463094518
+ 0.056039778949840427
+ 0.056042453470588803
+ 0.05604512802533896
+ 0.056047802614090071
+ 0.056050477236841159
+ 0.056053151893591474
+ 0.056055826584340163
+ 0.056058501309086455
+ 0.056061176067829399
+ 0.056063850860568303
+ 0.05606652568730211
+ 0.056069200548030232
+ 0.056071875442751745
+ 0.056074550371465866
+ 0.056077225334171636
+ 0.056079900330868307
+ 0.056082575361555052
+ 0.056085250426231095
+ 0.056087925524895478
+ 0.056090600657547493
+ 0.056093275824186252
+ 0.056095951024810867
+ 0.05609862625942056
+ 0.056101301528014527
+ 0.056103976830592046
+ 0.056106652167152028
+ 0.056109327537693918
+ 0.056112002942216715
+ 0.056114678380719658
+ 0.056117353853201796
+ 0.056120029359662524
+ 0.056122704900100892
+ 0.056125380474516033
+ 0.056128056082907204
+ 0.056130731725273601
+ 0.056133407401614287
+ 0.056136083111928588
+ 0.056138758856215491
+ 0.056141434634474373
+ 0.056144110446704254
+ 0.056146786292904406
+ 0.056149462173073997
+ 0.056152138087212145
+ 0.056154814035318135
+ 0.056157490017390947
+ 0.056160166033430041
+ 0.056162842083434396
+ 0.056165518167403228
+ 0.056168194285335732
+ 0.056170870437231089
+ 0.056173546623088495
+ 0.056176222842907096
+ 0.056178899096686094
+ 0.056181575384424733
+ 0.056184251706122117
+ 0.056186928061777455
+ 0.056189604451389853
+ 0.056192280874958596
+ 0.056194957332482816
+ 0.056197633823961743
+ 0.056200310349394537
+ 0.056202986908780415
+ 0.056205663502118502
+ 0.056208340129407931
+ 0.056211016790648057
+ 0.056213693485837997
+ 0.056216370214976823
+ 0.056219046978063902
+ 0.056221723775098306
+ 0.056224400606079188
+ 0.056227077471005804
+ 0.056229754369877372
+ 0.056232431302693016
+ 0.056235108269451946
+ 0.056237785270153398
+ 0.056240462304796519
+ 0.056243139373380435
+ 0.056245816475904473
+ 0.056248493612367716
+ 0.056251170782769401
+ 0.05625384798710871
+ 0.056256525225384733
+ 0.056259202497596916
+ 0.056261879803744169
+ 0.056264557143825861
+ 0.056267234517841054
+ 0.056269911925789118
+ 0.056272589367669067
+ 0.056275266843480221
+ 0.056277944353221768
+ 0.056280621896892806
+ 0.056283299474492669
+ 0.056285977086020331
+ 0.056288654731475186
+ 0.056291332410856376
+ 0.056294010124163033
+ 0.056296687871394496
+ 0.056299365652549872
+ 0.056302043467628293
+ 0.056304721316629003
+ 0.056307399199551279
+ 0.056310077116394193
+ 0.05631275506715705
+ 0.056315433051839024
+ 0.056318111070439263
+ 0.056320789122957043
+ 0.056323467209391506
+ 0.056326145329741825
+ 0.056328823484007293
+ 0.056331501672186979
+ 0.056334179894280197
+ 0.056336858150286169
+ 0.056339536440204008
+ 0.056342214764032957
+ 0.056344893121772169
+ 0.056347571513420923
+ 0.056350249938978345
+ 0.056352928398443726
+ 0.0563556068918162
+ 0.056358285419094968
+ 0.056360963980279316
+ 0.056363642575368356
+ 0.056366321204361323
+ 0.056368999867257394
+ 0.056371678564055838
+ 0.056374357294755907
+ 0.056377036059356588
+ 0.05637971485785731
+ 0.056382393690257174
+ 0.056385072556555428
+ 0.056387751456751206
+ 0.056390430390843842
+ 0.056393109358832384
+ 0.056395788360716237
+ 0.05639846739649447
+ 0.056401146466166237
+ 0.056403825569730948
+ 0.056406504707187624
+ 0.056409183878535642
+ 0.056411863083774029
+ 0.056414542322902085
+ 0.056417221595919019
+ 0.056419900902824095
+ 0.056422580243616495
+ 0.056425259618295372
+ 0.056427939026859941
+ 0.056430618469309433
+ 0.056433297945643134
+ 0.056435977455860174
+ 0.056438656999959806
+ 0.056441336577941259
+ 0.056444016189803714
+ 0.056446695835546339
+ 0.05644937551516839
+ 0.056452055228669112
+ 0.056454734976047742
+ 0.056457414757303426
+ 0.056460094572435351
+ 0.056462774421442895
+ 0.05646545430432507
+ 0.056468134221081226
+ 0.056470814171710612
+ 0.056473494156212348
+ 0.056476174174585614
+ 0.056478854226829765
+ 0.056481534312943955
+ 0.056484214432927331
+ 0.056486894586779246
+ 0.056489574774498862
+ 0.056492254996085359
+ 0.056494935251538002
+ 0.056497615540856007
+ 0.056500295864038604
+ 0.056502976221084973
+ 0.05650565661199438
+ 0.05650833703676602
+ 0.056511017495399087
+ 0.056513697987892901
+ 0.056516378514246624
+ 0.056519059074459456
+ 0.056521739668530697
+ 0.056524420296459398
+ 0.056527100958245001
+ 0.056529781653886529
+ 0.056532462383383393
+ 0.056535143146734711
+ 0.056537823943939795
+ 0.056540504774997773
+ 0.056543185639907914
+ 0.056545866538669387
+ 0.05654854747128147
+ 0.056551228437743455
+ 0.056553909438054446
+ 0.056556590472213723
+ 0.056559271540220592
+ 0.056561952642074156
+ 0.056564633777773689
+ 0.056567314947318426
+ 0.05656999615070759
+ 0.056572677387940445
+ 0.056575358659016209
+ 0.056578039963934054
+ 0.056580721302693295
+ 0.056583402675293069
+ 0.056586084081732768
+ 0.056588765522011468
+ 0.056591446996128343
+ 0.056594128504082852
+ 0.056596810045874066
+ 0.056599491621501241
+ 0.056602173230963698
+ 0.056604854874260549
+ 0.056607536551391079
+ 0.056610218262354545
+ 0.056612900007150128
+ 0.056615581785777115
+ 0.056618263598234735
+ 0.056620945444522203
+ 0.056623627324638742
+ 0.056626309238583646
+ 0.056628991186356066
+ 0.056631673167955303
+ 0.056634355183380572
+ 0.056637037232631138
+ 0.056639719315706223
+ 0.056642401432605065
+ 0.056645083583326816
+ 0.056647765767870943
+ 0.05665044798623637
+ 0.056653130238422666
+ 0.056655812524428757
+ 0.056658494844254149
+ 0.056661177197897872
+ 0.056663859585359355
+ 0.056666542006637663
+ 0.056669224461732171
+ 0.056671906950642045
+ 0.056674589473366559
+ 0.056677272029905003
+ 0.056679954620256601
+ 0.056682637244420395
+ 0.056685319902395954
+ 0.056688002594182232
+ 0.056690685319778715
+ 0.056693368079184424
+ 0.05669605087239879
+ 0.056698733699421015
+ 0.056701416560250226
+ 0.05670409945488579
+ 0.056706782383326867
+ 0.056709465345572883
+ 0.056712148341622873
+ 0.056714831371476183
+ 0.056717514435132101
+ 0.056720197532589701
+ 0.056722880663848403
+ 0.056725563828907387
+ 0.056728247027765973
+ 0.056730930260423335
+ 0.056733613526878633
+ 0.056736296827131355
+ 0.056738980161180542
+ 0.056741663529025523
+ 0.056744346930665553
+ 0.056747030366099883
+ 0.056749713835327731
+ 0.056752397338348463
+ 0.05675508087516113
+ 0.056757764445765121
+ 0.056760448050159729
+ 0.056763131688344085
+ 0.056765815360317509
+ 0.056768499066079225
+ 0.056771182805628539
+ 0.056773866578964702
+ 0.056776550386086845
+ 0.056779234226994366
+ 0.056781918101686535
+ 0.056784602010162367
+ 0.056787285952421405
+ 0.056789969928462788
+ 0.056792653938285802
+ 0.056795337981889654
+ 0.056798022059273583
+ 0.056800706170436949
+ 0.056803390315378892
+ 0.056806074494098815
+ 0.05680875870659579
+ 0.056811442952869183
+ 0.056814127232918274
+ 0.056816811546742368
+ 0.056819495894340565
+ 0.056822180275712182
+ 0.056824864690856583
+ 0.05682754913977292
+ 0.056830233622460362
+ 0.056832918138918491
+ 0.056835602689146288
+ 0.056838287273143086
+ 0.056840971890908178
+ 0.056843656542440758
+ 0.056846341227740162
+ 0.05684902594680559
+ 0.056851710699636501
+ 0.056854395486231869
+ 0.056857080306591111
+ 0.056859765160713512
+ 0.056862450048598259
+ 0.056865134970244639
+ 0.05686781992565193
+ 0.056870504914819389
+ 0.056873189937746309
+ 0.056875874994432009
+ 0.056878560084875608
+ 0.056881245209076531
+ 0.056883930367033861
+ 0.056886615558747071
+ 0.056889300784215238
+ 0.056891986043437794
+ 0.056894671336413898
+ 0.056897356663142842
+ 0.05690004202362392
+ 0.056902727417856395
+ 0.056905412845839574
+ 0.056908098307572666
+ 0.056910783803054879
+ 0.056913469332285645
+ 0.056916154895264165
+ 0.056918840491989697
+ 0.056921526122461479
+ 0.056924211786678877
+ 0.056926897484641054
+ 0.05692958321634739
+ 0.056932268981797013
+ 0.056934954780989394
+ 0.056937640613923639
+ 0.056940326480599088
+ 0.05694301238101504
+ 0.05694569831517074
+ 0.056948384283065458
+ 0.056951070284698438
+ 0.056953756320069056
+ 0.056956442389176479
+ 0.056959128492019992
+ 0.056961814628599006
+ 0.056964500798912659
+ 0.056967187002960266
+ 0.05696987324074114
+ 0.056972559512254425
+ 0.056975245817499603
+ 0.056977932156475897
+ 0.056980618529182472
+ 0.056983304935618692
+ 0.056985991375783723
+ 0.056988677849677032
+ 0.056991364357297798
+ 0.056994050898645385
+ 0.056996737473718917
+ 0.056999424082517701
+ 0.05700211072504123
+ 0.057004797401288547
+ 0.057007484111259041
+ 0.057010170854951969
+ 0.057012857632366624
+ 0.057015544443502264
+ 0.05701823128835825
+ 0.057020918166933832
+ 0.057023605079228136
+ 0.057026292025240705
+ 0.057028979004970649
+ 0.057031666018417269
+ 0.057034353065579926
+ 0.057037040146457788
+ 0.057039727261050319
+ 0.05704241440935668
+ 0.057045101591376164
+ 0.057047788807108084
+ 0.057050476056551724
+ 0.057053163339706364
+ 0.057055850656571372
+ 0.057058538007145804
+ 0.057061225391429209
+ 0.057063912809420712
+ 0.057066600261119732
+ 0.057069287746525463
+ 0.057071975265637211
+ 0.057074662818454282
+ 0.05707735040497592
+ 0.057080038025201431
+ 0.05708272567913026
+ 0.057085413366761477
+ 0.057088101088094458
+ 0.05709078884312855
+ 0.057093476631862962
+ 0.057096164454296966
+ 0.057098852310429951
+ 0.057101540200261237
+ 0.057104228123789985
+ 0.057106916081015591
+ 0.057109604071937291
+ 0.057112292096554412
+ 0.057114980154866234
+ 0.057117668246872109
+ 0.057120356372571179
+ 0.057123044531962944
+ 0.057125732725046542
+ 0.057128420951821302
+ 0.057131109212286577
+ 0.057133797506441653
+ 0.057136485834285856
+ 0.057139174195818335
+ 0.057141862591038484
+ 0.057144551019945658
+ 0.057147239482539053
+ 0.057149927978818099
+ 0.057152616508782013
+ 0.057155305072430052
+ 0.057157993669761556
+ 0.057160682300775839
+ 0.057163370965472179
+ 0.05716605966384989
+ 0.057168748395908318
+ 0.057171437161646715
+ 0.057174125961064318
+ 0.057176814794160633
+ 0.057179503660934709
+ 0.057182192561386028
+ 0.057184881495513817
+ 0.057187570463317412
+ 0.057190259464796084
+ 0.057192948499949207
+ 0.057195637568775978
+ 0.057198326671275813
+ 0.057201015807447894
+ 0.057203704977291686
+ 0.057206394180806384
+ 0.057209083417991261
+ 0.057211772688845731
+ 0.057214461993368992
+ 0.057217151331560426
+ 0.057219840703419386
+ 0.057222530108945034
+ 0.057225219548136863
+ 0.057227909020993936
+ 0.057230598527515809
+ 0.057233288067701595
+ 0.057235977641550813
+ 0.057238667249062597
+ 0.057241356890236343
+ 0.057244046565071295
+ 0.057246736273566801
+ 0.057249426015722187
+ 0.057252115791536731
+ 0.057254805601009859
+ 0.057257495444140646
+ 0.057260185320928587
+ 0.057262875231373002
+ 0.057265565175473147
+ 0.057268255153228351
+ 0.05727094516463789
+ 0.057273635209701093
+ 0.057276325288417397
+ 0.057279015400785838
+ 0.057281705546806061
+ 0.057284395726477082
+ 0.057287085939798504
+ 0.05728977618676942
+ 0.057292466467389183
+ 0.057295156781657232
+ 0.05729784712957272
+ 0.057300537511135057
+ 0.057303227926343604
+ 0.057305918375197593
+ 0.057308608857696355
+ 0.057311299373839261
+ 0.057313989923625575
+ 0.057316680507054664
+ 0.057319371124125766
+ 0.057322061774838319
+ 0.057324752459191483
+ 0.057327443177184786
+ 0.057330133928817306
+ 0.057332824714088598
+ 0.057335515532997802
+ 0.057338206385544419
+ 0.057340897271727594
+ 0.057343588191546765
+ 0.057346279145001143
+ 0.057348970132090143
+ 0.057351661152813073
+ 0.057354352207169342
+ 0.057357043295158061
+ 0.057359734416778746
+ 0.057362425572030577
+ 0.057365116760913
+ 0.057367807983425327
+ 0.057370499239566781
+ 0.057373190529336773
+ 0.057375881852734685
+ 0.057378573209759635
+ 0.057381264600411187
+ 0.057383956024688543
+ 0.057386647482591063
+ 0.057389338974117958
+ 0.057392030499268769
+ 0.057394722058042739
+ 0.057397413650439086
+ 0.057400105276457281
+ 0.05740279693609663
+ 0.057405488629356405
+ 0.057408180356235884
+ 0.05741087211673454
+ 0.057413563910851693
+ 0.057416255738586573
+ 0.057418947599938611
+ 0.057421639494906987
+ 0.05742433142349114
+ 0.057427023385690508
+ 0.057429715381504209
+ 0.057432407410931717
+ 0.057435099473972358
+ 0.057437791570625361
+ 0.057440483700890138
+ 0.05744317586476605
+ 0.057445868062252395
+ 0.05744856029334855
+ 0.057451252558053778
+ 0.057453944856367414
+ 0.057456637188288799
+ 0.057459329553817454
+ 0.057462021952952344
+ 0.057464714385693186
+ 0.057467406852039132
+ 0.057470099351989483
+ 0.057472791885543592
+ 0.057475484452700905
+ 0.057478177053460651
+ 0.057480869687822289
+ 0.057483562355785021
+ 0.057486255057348265
+ 0.057488947792511291
+ 0.057491640561273517
+ 0.057494333363634256
+ 0.057497026199592821
+ 0.057499719069148671
+ 0.05750241197230091
+ 0.057505104909049129
+ 0.057507797879392468
+ 0.057510490883330455
+ 0.057513183920862271
+ 0.057515876991987368
+ 0.057518570096705003
+ 0.057521263235014629
+ 0.057523956406915572
+ 0.057526649612406972
+ 0.057529342851488439
+ 0.057532036124159178
+ 0.057534729430418624
+ 0.057537422770266002
+ 0.057540116143700734
+ 0.057542809550722142
+ 0.057545502991329593
+ 0.057548196465522485
+ 0.057550889973299997
+ 0.05755358351466168
+ 0.057556277089606679
+ 0.05755897069813453
+ 0.057561664340244435
+ 0.057564358015935818
+ 0.057567051725208089
+ 0.057569745468060436
+ 0.057572439244492297
+ 0.057575133054503042
+ 0.057577826898091967
+ 0.057580520775258485
+ 0.057583214686001929
+ 0.057585908630321668
+ 0.057588602608216896
+ 0.057591296619687204
+ 0.057593990664731781
+ 0.057596684743350043
+ 0.057599378855541332
+ 0.057602073001304953
+ 0.057604767180640309
+ 0.057607461393546722
+ 0.057610155640023628
+ 0.057612849920070333
+ 0.057615544233686158
+ 0.057618238580870437
+ 0.057620932961622705
+ 0.057623627375942045
+ 0.057626321823827993
+ 0.057629016305279862
+ 0.057631710820296986
+ 0.057634405368878802
+ 0.057637099951024506
+ 0.057639794566733675
+ 0.057642489216005503
+ 0.057645183898839381
+ 0.057647878615234634
+ 0.057650573365190784
+ 0.057653268148707019
+ 0.057655962965782681
+ 0.057658657816417311
+ 0.057661352700610083
+ 0.057664047618360463
+ 0.057666742569667771
+ 0.057669437554531404
+ 0.057672132572950618
+ 0.057674827624924908
+ 0.057677522710453635
+ 0.057680217829536015
+ 0.057682912982171528
+ 0.057685608168359569
+ 0.057688303388099382
+ 0.057690998641390344
+ 0.057693693928231961
+ 0.057696389248623484
+ 0.057699084602564288
+ 0.0577017799900537
+ 0.057704475411091118
+ 0.057707170865675991
+ 0.057709866353807614
+ 0.057712561875485326
+ 0.057715257430708482
+ 0.057717953019476534
+ 0.057720648641788788
+ 0.057723344297644606
+ 0.057726039987043336
+ 0.057728735709984449
+ 0.05773143146646726
+ 0.057734127256491026
+ 0.057736823080055302
+ 0.057739518937159333
+ 0.057742214827802556
+ 0.057744910751984291
+ 0.0577476067097039
+ 0.057750302700960744
+ 0.057752998725754331
+ 0.057755694784083836
+ 0.05775839087594882
+ 0.057761087001348486
+ 0.057763783160282259
+ 0.057766479352749547
+ 0.057769175578749735
+ 0.057771871838282182
+ 0.057774568131346196
+ 0.057777264457941242
+ 0.057779960818066557
+ 0.057782657211721641
+ 0.057785353638905919
+ 0.057788050099618633
+ 0.057790746593859181
+ 0.057793443121627014
+ 0.057796139682921396
+ 0.05779883627774185
+ 0.057801532906087555
+ 0.057804229567958131
+ 0.057806926263352709
+ 0.057809622992270875
+ 0.057812319754711905
+ 0.057815016550675134
+ 0.057817713380160035
+ 0.057820410243165921
+ 0.057823107139692166
+ 0.057825804069738196
+ 0.057828501033303385
+ 0.057831198030387131
+ 0.057833895060988724
+ 0.057836592125107542
+ 0.057839289222743152
+ 0.057841986353894717
+ 0.057844683518561785
+ 0.057847380716743647
+ 0.057850077948439681
+ 0.057852775213649295
+ 0.057855472512371921
+ 0.057858169844606767
+ 0.057860867210353405
+ 0.057863564609611083
+ 0.057866262042379338
+ 0.057868959508657412
+ 0.057871657008444786
+ 0.057874354541740836
+ 0.057877052108544803
+ 0.057879749708856232
+ 0.057882447342674545
+ 0.057885145009998938
+ 0.057887842710828905
+ 0.057890540445163861
+ 0.057893238213003184
+ 0.057895936014346221
+ 0.05789863384919236
+ 0.057901331717541048
+ 0.05790402961939161
+ 0.057906727554743423
+ 0.057909425523595938
+ 0.057912123525948558
+ 0.057914821561800625
+ 0.057917519631151486
+ 0.057920217734000579
+ 0.057922915870347348
+ 0.057925614040191128
+ 0.057928312243531302
+ 0.057931010480367265
+ 0.057933708750698407
+ 0.057936407054524117
+ 0.057939105391843798
+ 0.057941803762656868
+ 0.057944502166962737
+ 0.057947200604760683
+ 0.057949899076050283
+ 0.057952597580830684
+ 0.057955296119101572
+ 0.057957994690862054
+ 0.057960693296111719
+ 0.057963391934849923
+ 0.057966090607075998
+ 0.057968789312789384
+ 0.057971488051989477
+ 0.057974186824675686
+ 0.057976885630847373
+ 0.057979584470504011
+ 0.057982283343644914
+ 0.057984982250269546
+ 0.057987681190377206
+ 0.05799038016396741
+ 0.057993079171039429
+ 0.057995778211592811
+ 0.057998477285626814
+ 0.058001176393140973
+ 0.058003875534134539
+ 0.058006574708607074
+ 0.058009273916557878
+ 0.058011973157986299
+ 0.058014672432891858
+ 0.058017371741273964
+ 0.058020071083131855
+ 0.058022770458465163
+ 0.058025469867272979
+ 0.05802816930955508
+ 0.058030868785310601
+ 0.058033568294538991
+ 0.058036267837239711
+ 0.058038967413412169
+ 0.058041667023055764
+ 0.058044366666169911
+ 0.058047066342753854
+ 0.058049766052807227
+ 0.058052465796329389
+ 0.058055165573319578
+ 0.058057865383777399
+ 0.058060565227702143
+ 0.058063265105093256
+ 0.058065965015950113
+ 0.058068664960272132
+ 0.058071364938058839
+ 0.058074064949309508
+ 0.058076764994023505
+ 0.058079465072200395
+ 0.058082165183839483
+ 0.058084865328940166
+ 0.058087565507501854
+ 0.058090265719524151
+ 0.058092965965006169
+ 0.05809566624394745
+ 0.058098366556347501
+ 0.058101066902205581
+ 0.058103767281521203
+ 0.058106467694293826
+ 0.058109168140522652
+ 0.058111868620207223
+ 0.058114569133346908
+ 0.05811726967994129
+ 0.058119970259989592
+ 0.058122670873491294
+ 0.058125371520445737
+ 0.058128072200852504
+ 0.058130772914710784
+ 0.058133473662020235
+ 0.058136174442780096
+ 0.058138875256989957
+ 0.058141576104648963
+ 0.058144276985756693
+ 0.058146977900312646
+ 0.058149678848316143
+ 0.058152379829766544
+ 0.058155080844663323
+ 0.05815778189300598
+ 0.058160482974793808
+ 0.058163184090026243
+ 0.05816588523870278
+ 0.058168586420822836
+ 0.058171287636385696
+ 0.058173988885390944
+ 0.058176690167837906
+ 0.058179391483726028
+ 0.058182092833054776
+ 0.058184794215823392
+ 0.058187495632031468
+ 0.058190197081678476
+ 0.058192898564763694
+ 0.05819560008128654
+ 0.058198301631246563
+ 0.058201003214643138
+ 0.058203704831475592
+ 0.058206406481743495
+ 0.058209108165446166
+ 0.058211809882583045
+ 0.058214511633153547
+ 0.058217213417157222
+ 0.058219915234593286
+ 0.058222617085461378
+ 0.058225318969760721
+ 0.058228020887490857
+ 0.058230722838651328
+ 0.058233424823241238
+ 0.058236126841260324
+ 0.058238828892707838
+ 0.058241530977583285
+ 0.058244233095886104
+ 0.058246935247615671
+ 0.058249637432771409
+ 0.058252339651352805
+ 0.058255041903359228
+ 0.058257744188790116
+ 0.058260446507644947
+ 0.058263148859923133
+ 0.058265851245624042
+ 0.058268553664747189
+ 0.058271256117291982
+ 0.05827395860325784
+ 0.058276661122644159
+ 0.058279363675450474
+ 0.058282066261676112
+ 0.058284768881320531
+ 0.058287471534383212
+ 0.05829017422086346
+ 0.058292876940760976
+ 0.058295579694074895
+ 0.058298282480804806
+ 0.058300985300950098
+ 0.058303688154510251
+ 0.058306391041484683
+ 0.05830909396187272
+ 0.058311796915673945
+ 0.058314499902887784
+ 0.058317202923513625
+ 0.05831990597755092
+ 0.058322609064999024
+ 0.058325312185857542
+ 0.058328015340125786
+ 0.058330718527803221
+ 0.058333421748889301
+ 0.058336125003383463
+ 0.058338828291285012
+ 0.058341531612593679
+ 0.058344234967308665
+ 0.058346938355429472
+ 0.058349641776955528
+ 0.058352345231886385
+ 0.058355048720221347
+ 0.05835775224195993
+ 0.05836045579710146
+ 0.058363159385645541
+ 0.058365863007591536
+ 0.058368566662938888
+ 0.05837127035168703
+ 0.058373974073835384
+ 0.05837667782938348
+ 0.058379381618330638
+ 0.058382085440676433
+ 0.058384789296420277
+ 0.058387493185561461
+ 0.05839019710809968
+ 0.058392901064034233
+ 0.058395605053364559
+ 0.058398309076090095
+ 0.058401013132210362
+ 0.058403717221724771
+ 0.058406421344632795
+ 0.058409125500933773
+ 0.058411829690627297
+ 0.058414533913712673
+ 0.058417238170189484
+ 0.058419942460057078
+ 0.05842264678331497
+ 0.05842535113996257
+ 0.058428055529999377
+ 0.058430759953424762
+ 0.058433464410238244
+ 0.058436168900439213
+ 0.058438873424027184
+ 0.058441577981001476
+ 0.058444282571361757
+ 0.058446987195107297
+ 0.058449691852237626
+ 0.058452396542752236
+ 0.058455101266650378
+ 0.058457806023931816
+ 0.058460510814595731
+ 0.058463215638641694
+ 0.058465920496069163
+ 0.058468625386877554
+ 0.058471330311066411
+ 0.058474035268634969
+ 0.058476740259582993
+ 0.058479445283909755
+ 0.058482150341614657
+ 0.058484855432697262
+ 0.058487560557157037
+ 0.058490265714993314
+ 0.058492970906205657
+ 0.058495676130793539
+ 0.058498381388756356
+ 0.058501086680093614
+ 0.05850379200480478
+ 0.058506497362889112
+ 0.058509202754346325
+ 0.058511908179175835
+ 0.058514613637376957
+ 0.058517319128949315
+ 0.058520024653892271
+ 0.058522730212205269
+ 0.058525435803887846
+ 0.058528141428939494
+ 0.058530847087359499
+ 0.05853355277914752
+ 0.058536258504302857
+ 0.058538964262825025
+ 0.058541670054713647
+ 0.058544375879967914
+ 0.058547081738587456
+ 0.058549787630571712
+ 0.058552493555920099
+ 0.058555199514632138
+ 0.058557905506707267
+ 0.058560611532145049
+ 0.058563317590944755
+ 0.058566023683105907
+ 0.058568729808628019
+ 0.058571435967510667
+ 0.058574142159753033
+ 0.058576848385354874
+ 0.058579554644315482
+ 0.058582260936634364
+ 0.058584967262311043
+ 0.058587673621344899
+ 0.05859038001373542
+ 0.058593086439482148
+ 0.058595792898584458
+ 0.058598499391041919
+ 0.058601205916853853
+ 0.05860391247601985
+ 0.058606619068539423
+ 0.058609325694411844
+ 0.058612032353636753
+ 0.058614739046213622
+ 0.058617445772141834
+ 0.058620152531420854
+ 0.058622859324050189
+ 0.05862556615002941
+ 0.05862827300935787
+ 0.058630979902035037
+ 0.058633686828060388
+ 0.058636393787433495
+ 0.058639100780153747
+ 0.058641807806220622
+ 0.058644514865633587
+ 0.058647221958392122
+ 0.058649929084495719
+ 0.058652636243943901
+ 0.058655343436736063
+ 0.058658050662871608
+ 0.05866075792235026
+ 0.058663465215171247
+ 0.058666172541334223
+ 0.058668879900838487
+ 0.058671587293683658
+ 0.058674294719869215
+ 0.058677002179394568
+ 0.058679709672259189
+ 0.058682417198462594
+ 0.058685124758004241
+ 0.058687832350883602
+ 0.058690539977100269
+ 0.058693247636653546
+ 0.058695955329542991
+ 0.058698663055768194
+ 0.058701370815328384
+ 0.05870407860822327
+ 0.058706786434452228
+ 0.058709494294014709
+ 0.058712202186910346
+ 0.05871491011313848
+ 0.058717618072698645
+ 0.058720326065590286
+ 0.05872303409181294
+ 0.058725742151366049
+ 0.058728450244249115
+ 0.058731158370461632
+ 0.058733866530003023
+ 0.058736574722872845
+ 0.058739282949070562
+ 0.058741991208595669
+ 0.058744699501447707
+ 0.058747407827625976
+ 0.058750116187130212
+ 0.058752824579959569
+ 0.058755533006113844
+ 0.058758241465592394
+ 0.058760949958394787
+ 0.058763658484520385
+ 0.058766367043968766
+ 0.058769075636739457
+ 0.058771784262831792
+ 0.058774492922245375
+ 0.058777201614979679
+ 0.058779910341034178
+ 0.058782619100408336
+ 0.058785327893101702
+ 0.058788036719113666
+ 0.058790745578443999
+ 0.058793454471091772
+ 0.058796163397056782
+ 0.05879887235633844
+ 0.058801581348936177
+ 0.058804290374849542
+ 0.058806999434078015
+ 0.05880970852662111
+ 0.058812417652478334
+ 0.058815126811649139
+ 0.058817836004133033
+ 0.058820545229929432
+ 0.058823254489037989
+ 0.058825963781458115
+ 0.058828673107189228
+ 0.058831382466231014
+ 0.058834091858582786
+ 0.058836801284244136
+ 0.058839510743214508
+ 0.058842220235493396
+ 0.058844929761080349
+ 0.058847639319974901
+ 0.058850348912176456
+ 0.05885305853768448
+ 0.058855768196498626
+ 0.05885847788861822
+ 0.058861187614042916
+ 0.058863897372772082
+ 0.058866607164805337
+ 0.058869316990142112
+ 0.058872026848781858
+ 0.058874736740724173
+ 0.058877446665968496
+ 0.058880156624514422
+ 0.05888286661636126
+ 0.058885576641508695
+ 0.058888286699956188
+ 0.058890996791703135
+ 0.058893706916749201
+ 0.058896417075093715
+ 0.058899127266736358
+ 0.058901837491676594
+ 0.058904547749913778
+ 0.058907258041447495
+ 0.058909968366277411
+ 0.058912678724402791
+ 0.058915389115823211
+ 0.058918099540538275
+ 0.058920809998547395
+ 0.058923520489850105
+ 0.058926231014445878
+ 0.058928941572334324
+ 0.058931652163514821
+ 0.058934362787986944
+ 0.058937073445750165
+ 0.058939784136804001
+ 0.058942494861148026
+ 0.058945205618781658
+ 0.058947916409704398
+ 0.058950627233915913
+ 0.058953338091415487
+ 0.058956048982202761
+ 0.058958759906277247
+ 0.058961470863638489
+ 0.058964181854285896
+ 0.058966892878218997
+ 0.058969603935437348
+ 0.058972315025940449
+ 0.058975026149727806
+ 0.058977737306798929
+ 0.058980448497153302
+ 0.058983159720790518
+ 0.058985870977710041
+ 0.058988582267911309
+ 0.058991293591393927
+ 0.058994004948157409
+ 0.058996716338201222
+ 0.058999427761524996
+ 0.059002139218128073
+ 0.059004850708010051
+ 0.059007562231170506
+ 0.059010273787608925
+ 0.059012985377324731
+ 0.059015697000317523
+ 0.059018408656586731
+ 0.059021120346132099
+ 0.059023832068952793
+ 0.059026543825048648
+ 0.059029255614419046
+ 0.059031967437063446
+ 0.0590346792929815
+ 0.059037391182172674
+ 0.059040103104636386
+ 0.059042815060372324
+ 0.059045527049379917
+ 0.059048239071658709
+ 0.059050951127208193
+ 0.059053663216027924
+ 0.059056375338117355
+ 0.059059087493476041
+ 0.059061799682103629
+ 0.059064511903999438
+ 0.059067224159163129
+ 0.059069936447594139
+ 0.059072648769292045
+ 0.05907536112425639
+ 0.059078073512486624
+ 0.059080785933982319
+ 0.059083498388742918
+ 0.059086210876768124
+ 0.05908892339805729
+ 0.05909163595261005
+ 0.059094348540425841
+ 0.059097061161504212
+ 0.059099773815844761
+ 0.05910248650344696
+ 0.059105199224310338
+ 0.05910791197843436
+ 0.059110624765818708
+ 0.059113337586462748
+ 0.059116050440366032
+ 0.059118763327528162
+ 0.059121476247948689
+ 0.05912418920162707
+ 0.059126902188562855
+ 0.059129615208755544
+ 0.059132328262204728
+ 0.059135041348909824
+ 0.059137754468870422
+ 0.059140467622086246
+ 0.059143180808556524
+ 0.059145894028280896
+ 0.059148607281258994
+ 0.059151320567490208
+ 0.059154033886974107
+ 0.059156747239710213
+ 0.05915946062569824
+ 0.059162174044937441
+ 0.059164887497427522
+ 0.059167600983167944
+ 0.059170314502158351
+ 0.059173028054398176
+ 0.0591757416398868
+ 0.05917845525862412
+ 0.059181168910609434
+ 0.059183882595842341
+ 0.059186596314322382
+ 0.059189310066049022
+ 0.059192023851021847
+ 0.059194737669240348
+ 0.059197451520704186
+ 0.05920016540541282
+ 0.059202879323365765
+ 0.059205593274562561
+ 0.059208307259002717
+ 0.059211021276686038
+ 0.059213735327611622
+ 0.059216449411779351
+ 0.059219163529188622
+ 0.059221877679838872
+ 0.059224591863729914
+ 0.059227306080861103
+ 0.059230020331232071
+ 0.059232734614842214
+ 0.059235448931691206
+ 0.059238163281778479
+ 0.059240877665103768
+ 0.059243592081666414
+ 0.059246306531466036
+ 0.059249021014502155
+ 0.059251735530774369
+ 0.059254450080282156
+ 0.059257164663025108
+ 0.059259879279002746
+ 0.059262593928214674
+ 0.059265308610660331
+ 0.059268023326339347
+ 0.059270738075251149
+ 0.059273452857395437
+ 0.059276167672771704
+ 0.059278882521379396
+ 0.059281597403218221
+ 0.05928431231828768
+ 0.059287027266587147
+ 0.059289742248116409
+ 0.059292457262874854
+ 0.059295172310862149
+ 0.05929788739207776
+ 0.059300602506521173
+ 0.059303317654192153
+ 0.059306032835090075
+ 0.059308748049214516
+ 0.059311463296565038
+ 0.059314178577141149
+ 0.059316893890942565
+ 0.059319609237968605
+ 0.059322324618219055
+ 0.059325040031693171
+ 0.059327755478390774
+ 0.05933047095831126
+ 0.059333186471454316
+ 0.059335902017819381
+ 0.059338617597406058
+ 0.059341333210213856
+ 0.059344048856242386
+ 0.059346764535491134
+ 0.059349480247959663
+ 0.059352195993647675
+ 0.059354911772554531
+ 0.059357627584679884
+ 0.059360343430023207
+ 0.059363059308584237
+ 0.0593657752203623
+ 0.059368491165357126
+ 0.059371207143568153
+ 0.059373923154995012
+ 0.059376639199637253
+ 0.059379355277494418
+ 0.059382071388566035
+ 0.059384787532851757
+ 0.059387503710351036
+ 0.059390219921063386
+ 0.059392936164988593
+ 0.05939565244212601
+ 0.059398368752475318
+ 0.059401085096035963
+ 0.059403801472807535
+ 0.059406517882789667
+ 0.059409234325981886
+ 0.059411950802383678
+ 0.059414667311994712
+ 0.059417383854814557
+ 0.05942010043084265
+ 0.059422817040078603
+ 0.05942553368252209
+ 0.059428250358172598
+ 0.059430967067029619
+ 0.059433683809092794
+ 0.05943640058436158
+ 0.059439117392835757
+ 0.059441834234514684
+ 0.059444551109398107
+ 0.059447268017485379
+ 0.05944998495877625
+ 0.059452701933270187
+ 0.059455418940966752
+ 0.05945813598186548
+ 0.059460853055966108
+ 0.059463570163267969
+ 0.059466287303770828
+ 0.059469004477474156
+ 0.059471721684377594
+ 0.05947443892448058
+ 0.059477156197782752
+ 0.059479873504283777
+ 0.059482590843983073
+ 0.059485308216880299
+ 0.059488025622974963
+ 0.059490743062266607
+ 0.059493460534754919
+ 0.059496178040439524
+ 0.059498895579319741
+ 0.059501613151395273
+ 0.059504330756665696
+ 0.059507048395130602
+ 0.059509766066789531
+ 0.059512483771642075
+ 0.059515201509687886
+ 0.059517919280926382
+ 0.059520637085357181
+ 0.059523354922979874
+ 0.059526072793794078
+ 0.059528790697799323
+ 0.059531508634995199
+ 0.05953422660538122
+ 0.059536944608957046
+ 0.059539662645722281
+ 0.05954238071567633
+ 0.059545098818818899
+ 0.059547816955149546
+ 0.059550535124667868
+ 0.059553253327373462
+ 0.059555971563265746
+ 0.059558689832344532
+ 0.059561408134609271
+ 0.059564126470059452
+ 0.059566844838694795
+ 0.059569563240514857
+ 0.059572281675519166
+ 0.059575000143707327
+ 0.059577718645078978
+ 0.059580437179633537
+ 0.059583155747370685
+ 0.059585874348290144
+ 0.059588592982391247
+ 0.059591311649673726
+ 0.059594030350137141
+ 0.059596749083780994
+ 0.05959946785060493
+ 0.059602186650608527
+ 0.059604905483791458
+ 0.059607624350153196
+ 0.059610343249693235
+ 0.059613062182411303
+ 0.059615781148307012
+ 0.059618500147379863
+ 0.059621219179629432
+ 0.059623938245055415
+ 0.059626657343657241
+ 0.059629376475434592
+ 0.059632095640386948
+ 0.059634814838513996
+ 0.059637534069815389
+ 0.059640253334290606
+ 0.059642972631939226
+ 0.05964569196276083
+ 0.059648411326755156
+ 0.0596511307239216
+ 0.059653850154259828
+ 0.059656569617769419
+ 0.059659289114450037
+ 0.059662008644301122
+ 0.059664728207322333
+ 0.059667447803513345
+ 0.059670167432873698
+ 0.059672887095402846
+ 0.059675606791100524
+ 0.059678326519966317
+ 0.059681046281999793
+ 0.059683766077200578
+ 0.059686485905568187
+ 0.059689205767102183
+ 0.059691925661802307
+ 0.059694645589668013
+ 0.059697365550699044
+ 0.059700085544894844
+ 0.059702805572255026
+ 0.059705525632779317
+ 0.059708245726467185
+ 0.059710965853318219
+ 0.059713686013332032
+ 0.059716406206508262
+ 0.059719126432846534
+ 0.059721846692346287
+ 0.059724566985007256
+ 0.059727287310828978
+ 0.059730007669811132
+ 0.059732728061953184
+ 0.059735448487254879
+ 0.059738168945715681
+ 0.059740889437335271
+ 0.059743609962113149
+ 0.059746330520049074
+ 0.059749051111142502
+ 0.059751771735393124
+ 0.059754492392800472
+ 0.05975721308336409
+ 0.059759933807083852
+ 0.059762654563959038
+ 0.059765375353989326
+ 0.059768096177174497
+ 0.059770817033514001
+ 0.05977353792300736
+ 0.059776258845654365
+ 0.059778979801454489
+ 0.059781700790407358
+ 0.059784421812512659
+ 0.059787142867769823
+ 0.05978986395617867
+ 0.059792585077738658
+ 0.059795306232449344
+ 0.059798027420310568
+ 0.059800748641321663
+ 0.059803469895482325
+ 0.059806191182792255
+ 0.059808912503250967
+ 0.059811633856858087
+ 0.059814355243613206
+ 0.059817076663515913
+ 0.05981979811656591
+ 0.059822519602762685
+ 0.059825241122105972
+ 0.059827962674595218
+ 0.059830684260230138
+ 0.059833405879010308
+ 0.059836127530935417
+ 0.059838849216004936
+ 0.059841570934218623
+ 0.059844292685575916
+ 0.059847014470076537
+ 0.059849736287720112
+ 0.059852458138506204
+ 0.059855180022434423
+ 0.059857901939504327
+ 0.059860623889715629
+ 0.059863345873067936
+ 0.059866067889560809
+ 0.059868789939193819
+ 0.05987151202196675
+ 0.059874234137878998
+ 0.059876956286930308
+ 0.059879678469120248
+ 0.059882400684448472
+ 0.059885122932914502
+ 0.059887845214518107
+ 0.059890567529258781
+ 0.059893289877136179
+ 0.059896012258149861
+ 0.059898734672299517
+ 0.059901457119584729
+ 0.059904179600005145
+ 0.059906902113560305
+ 0.059909624660249933
+ 0.059912347240073535
+ 0.059915069853030724
+ 0.05991779249912127
+ 0.059920515178344638
+ 0.059923237890700518
+ 0.059925960636188505
+ 0.059928683414808205
+ 0.059931406226559278
+ 0.059934129071441349
+ 0.059936851949454001
+ 0.059939574860596784
+ 0.059942297804869427
+ 0.059945020782271527
+ 0.059947743792802731
+ 0.059950466836462636
+ 0.059953189913250833
+ 0.059955913023166912
+ 0.059958636166210638
+ 0.059961359342381428
+ 0.059964082551679052
+ 0.059966805794103177
+ 0.059969529069653256
+ 0.059972252378329059
+ 0.059974975720130184
+ 0.059977699095056111
+ 0.059980422503106631
+ 0.059983145944281363
+ 0.059985869418579849
+ 0.059988592926001706
+ 0.059991316466546686
+ 0.059994040040214289
+ 0.059996763647004174
+ 0.059999487286915981
+ 0.060002210959949322
+ 0.060004934666103862
+ 0.060007658405379243
+ 0.060010382177775039
+ 0.060013105983290807
+ 0.06001582982192627
+ 0.060018553693681101
+ 0.060021277598554808
+ 0.060024001536547134
+ 0.06002672550765769
+ 0.060029449511886011
+ 0.060032173549231821
+ 0.060034897619694681
+ 0.060037621723274329
+ 0.06004034585997025
+ 0.060043070029782181
+ 0.060045794232709726
+ 0.060048518468752567
+ 0.060051242737910147
+ 0.06005396704018244
+ 0.060056691375568697
+ 0.060059415744068832
+ 0.060062140145682265
+ 0.060064864580408883
+ 0.060067589048248049
+ 0.060070313549199589
+ 0.060073038083263024
+ 0.060075762650438042
+ 0.060078487250724309
+ 0.060081211884121438
+ 0.060083936550629019
+ 0.060086661250246746
+ 0.060089385982974246
+ 0.060092110748811066
+ 0.060094835547756902
+ 0.060097560379811579
+ 0.060100285244974454
+ 0.060103010143245227
+ 0.060105735074623606
+ 0.060108460039109211
+ 0.060111185036701646
+ 0.060113910067400605
+ 0.060116635131205721
+ 0.060119360228116557
+ 0.060122085358132855
+ 0.0601248105212542
+ 0.060127535717480245
+ 0.0601302609468106
+ 0.060132986209244961
+ 0.060135711504782981
+ 0.060138436833424083
+ 0.060141162195168317
+ 0.06014388759001494
+ 0.060146613017963854
+ 0.060149338479014477
+ 0.060152063973166629
+ 0.060154789500419956
+ 0.060157515060773992
+ 0.060160240654228404
+ 0.060162966280782874
+ 0.06016569194043702
+ 0.060168417633190585
+ 0.060171143359043146
+ 0.060173869117994272
+ 0.060176594910043645
+ 0.060179320735190986
+ 0.060182046593435873
+ 0.060184772484778055
+ 0.060187498409216972
+ 0.060190224366752483
+ 0.060192950357384097
+ 0.060195676381111542
+ 0.060198402437934465
+ 0.060201128527852435
+ 0.060203854650865161
+ 0.060206580806972325
+ 0.060209306996173544
+ 0.060212033218468394
+ 0.060214759473856683
+ 0.060217485762337965
+ 0.060220212083911845
+ 0.060222938438578066
+ 0.060225664826336206
+ 0.060228391247185889
+ 0.060231117701126859
+ 0.060233844188158872
+ 0.060236570708281222
+ 0.060239297261493949
+ 0.060242023847796457
+ 0.060244750467188586
+ 0.06024747711966974
+ 0.060250203805239891
+ 0.060252930523898331
+ 0.060255657275645011
+ 0.060258384060479467
+ 0.060261110878401428
+ 0.060263837729410422
+ 0.06026656461350615
+ 0.060269291530688315
+ 0.060272018480956639
+ 0.060274745464310588
+ 0.060277472480749925
+ 0.060280199530274275
+ 0.060282926612883356
+ 0.060285653728576839
+ 0.060288380877354317
+ 0.060291108059215365
+ 0.060293835274159872
+ 0.060296562522187264
+ 0.060299289803297358
+ 0.060302017117489691
+ 0.060304744464764123
+ 0.060307471845120114
+ 0.060310199258557413
+ 0.060312926705075598
+ 0.060315654184674418
+ 0.060318381697353519
+ 0.060321109243112549
+ 0.060323836821951221
+ 0.06032656443386912
+ 0.06032929207886592
+ 0.060332019756941281
+ 0.060334747468094953
+ 0.060337475212326443
+ 0.060340202989635591
+ 0.060342930800021927
+ 0.060345658643485178
+ 0.060348386520025013
+ 0.060351114429641098
+ 0.060353842372332996
+ 0.060356570348100505
+ 0.060359298356943272
+ 0.060362026398860923
+ 0.060364754473853081
+ 0.060367482581919471
+ 0.060370210723059793
+ 0.060372938897273701
+ 0.060375667104560785
+ 0.060378395344920816
+ 0.060381123618353308
+ 0.060383851924858102
+ 0.06038658026443483
+ 0.060389308637083118
+ 0.060392037042802625
+ 0.060394765481593095
+ 0.060397493953454083
+ 0.060400222458385319
+ 0.060402950996386477
+ 0.060405679567457259
+ 0.060408408171597303
+ 0.060411136808806304
+ 0.060413865479083784
+ 0.060416594182429721
+ 0.06041932291884352
+ 0.060422051688324957
+ 0.060424780490873679
+ 0.060427509326489312
+ 0.060430238195171723
+ 0.060432967096920351
+ 0.06043569603173507
+ 0.060438424999615367
+ 0.060441154000561027
+ 0.060443883034571724
+ 0.060446612101647069
+ 0.060449341201786848
+ 0.060452070334990546
+ 0.06045479950125808
+ 0.060457528700588979
+ 0.060460257932982951
+ 0.060462987198439691
+ 0.060465716496958873
+ 0.060468445828540149
+ 0.060471175193183159
+ 0.060473904590887702
+ 0.060476634021653312
+ 0.060479363485479873
+ 0.060482092982366793
+ 0.060484822512313921
+ 0.060487552075320909
+ 0.060490281671387473
+ 0.060493011300513239
+ 0.060495740962697886
+ 0.060498470657941117
+ 0.060501200386242612
+ 0.060503930147602109
+ 0.060506659942019189
+ 0.060509389769493535
+ 0.06051211963002489
+ 0.060514849523612982
+ 0.060517579450257437
+ 0.060520309409957798
+ 0.060523039402714092
+ 0.060525769428525618
+ 0.060528499487392293
+ 0.060531229579313742
+ 0.060533959704289625
+ 0.060536689862319755
+ 0.060539420053403577
+ 0.060542150277540979
+ 0.060544880534731581
+ 0.060547610824975132
+ 0.060550341148271188
+ 0.060553071504619554
+ 0.060555801894019802
+ 0.060558532316471736
+ 0.060561262771974926
+ 0.060563993260529296
+ 0.060566723782134291
+ 0.06056945433678966
+ 0.060572184924495044
+ 0.060574915545250296
+ 0.060577646199055056
+ 0.060580376885908803
+ 0.060583107605811447
+ 0.060585838358762661
+ 0.060588569144762114
+ 0.060591299963809457
+ 0.060594030815904434
+ 0.060596761701046692
+ 0.060599492619235834
+ 0.060602223570471798
+ 0.060604954554754044
+ 0.060607685572082404
+ 0.060610416622456482
+ 0.060613147705876107
+ 0.060615878822340749
+ 0.060618609971850347
+ 0.060621341154404318
+ 0.060624072370002696
+ 0.060626803618644899
+ 0.060629534900330795
+ 0.060632266215060009
+ 0.060634997562832117
+ 0.060637728943647017
+ 0.060640460357504304
+ 0.060643191804403654
+ 0.060645923284344844
+ 0.060648654797327596
+ 0.060651386343351418
+ 0.060654117922416192
+ 0.060656849534521537
+ 0.060659581179667216
+ 0.060662312857852813
+ 0.060665044569078147
+ 0.060667776313342865
+ 0.060670508090646599
+ 0.06067323990098919
+ 0.06067597174437022
+ 0.060678703620789441
+ 0.060681435530246609
+ 0.060684167472741295
+ 0.060686899448273296
+ 0.060689631456842287
+ 0.060692363498447963
+ 0.060695095573090031
+ 0.060697827680768236
+ 0.06070055982148221
+ 0.060703291995231681
+ 0.060706024202016332
+ 0.06070875644183598
+ 0.060711488714690183
+ 0.060714221020578718
+ 0.060716953359501342
+ 0.060719685731457529
+ 0.060722418136447333
+ 0.060725150574470199
+ 0.060727883045525843
+ 0.060730615549614085
+ 0.060733348086734688
+ 0.060736080656887126
+ 0.060738813260071266
+ 0.06074154589628683
+ 0.060744278565533459
+ 0.060747011267810902
+ 0.060749744003118875
+ 0.060752476771456988
+ 0.060755209572825035
+ 0.060757942407222772
+ 0.06076067527464981
+ 0.0607634081751059
+ 0.060766141108590764
+ 0.06076887407510409
+ 0.060771607074645607
+ 0.060774340107214955
+ 0.060777073172811898
+ 0.060779806271436268
+ 0.060782539403087657
+ 0.060785272567765732
+ 0.060788005765470242
+ 0.060790738996200931
+ 0.060793472259957473
+ 0.060796205556739695
+ 0.06079893888654718
+ 0.060801672249379664
+ 0.060804405645236835
+ 0.060807139074118499
+ 0.060809872536024392
+ 0.060812606030954064
+ 0.060815339558907319
+ 0.060818073119883999
+ 0.060820806713883624
+ 0.060823540340906
+ 0.060826274000950788
+ 0.060829007694017799
+ 0.060831741420106632
+ 0.060834475179217237
+ 0.060837208971348991
+ 0.060839942796501845
+ 0.060842676654675555
+ 0.060845410545869553
+ 0.060848144470083916
+ 0.060850878427318136
+ 0.060853612417571951
+ 0.060856346440845248
+ 0.060859080497137522
+ 0.060861814586448619
+ 0.060864548708778263
+ 0.060867282864126113
+ 0.060870017052491961
+ 0.060872751273875404
+ 0.060875485528276339
+ 0.060878219815694364
+ 0.060880954136129241
+ 0.060883688489580708
+ 0.060886422876048486
+ 0.060889157295532181
+ 0.0608918917480318
+ 0.060894626233546689
+ 0.060897360752076905
+ 0.060900095303621976
+ 0.060902829888181693
+ 0.06090556450575578
+ 0.060908299156343958
+ 0.060911033839945943
+ 0.060913768556561575
+ 0.060916503306190299
+ 0.060919238088832123
+ 0.060921972904486636
+ 0.060924707753153617
+ 0.060927442634832775
+ 0.06093017754952381
+ 0.060932912497226488
+ 0.060935647477940523
+ 0.06093838249166561
+ 0.060941117538401521
+ 0.060943852618148019
+ 0.060946587730904833
+ 0.060949322876671583
+ 0.060952058055448101
+ 0.060954793267234061
+ 0.060957528512029263
+ 0.060960263789833366
+ 0.060962999100646169
+ 0.060965734444467311
+ 0.060968469821296556
+ 0.060971205231133675
+ 0.06097394067397837
+ 0.060976676149830412
+ 0.060979411658689545
+ 0.060982147200555357
+ 0.060984882775427809
+ 0.06098761838330638
+ 0.060990354024191042
+ 0.060993089698081412
+ 0.060995825404977236
+ 0.060998561144878297
+ 0.061001296917784192
+ 0.061004032723694847
+ 0.061006768562609816
+ 0.061009504434528967
+ 0.061012240339452004
+ 0.061014976277378556
+ 0.061017712248308528
+ 0.061020448252241587
+ 0.06102318428917753
+ 0.061025920359115908
+ 0.061028656462056664
+ 0.061031392597999438
+ 0.061034128766944015
+ 0.061036864968890041
+ 0.061039601203837376
+ 0.061042337471785585
+ 0.061045073772734652
+ 0.061047810106684218
+ 0.061050546473633928
+ 0.061053282873583539
+ 0.061056019306532955
+ 0.061058755772481821
+ 0.06106149227142979
+ 0.061064228803376801
+ 0.061066965368322353
+ 0.061069701966266286
+ 0.06107243859720847
+ 0.061075175261148446
+ 0.061077911958086158
+ 0.061080648688021225
+ 0.06108338545095341
+ 0.061086122246882438
+ 0.061088859075808112
+ 0.061091595937730239
+ 0.06109433283264832
+ 0.061097069760562277
+ 0.061099806721471916
+ 0.061102543715376809
+ 0.061105280742276891
+ 0.061108017802171725
+ 0.06111075489506114
+ 0.06111349202094489
+ 0.061116229179822727
+ 0.061118966371694484
+ 0.061121703596559683
+ 0.061124440854418281
+ 0.061127178145269863
+ 0.061129915469114324
+ 0.0611326528259514
+ 0.061135390215780794
+ 0.061138127638602241
+ 0.061140865094415457
+ 0.061143602583220318
+ 0.061146340105016468
+ 0.061149077659803638
+ 0.061151815247581696
+ 0.061154552868350268
+ 0.061157290522109282
+ 0.061160028208858346
+ 0.061162765928597228
+ 0.061165503681325693
+ 0.061168241467043444
+ 0.061170979285750333
+ 0.061173717137446085
+ 0.061176455022130413
+ 0.061179192939803131
+ 0.06118193089046392
+ 0.061184668874112613
+ 0.061187406890748919
+ 0.061190144940372601
+ 0.061192883022983473
+ 0.061195621138581111
+ 0.061198359287165383
+ 0.061201097468736199
+ 0.061203835683293156
+ 0.061206573930835909
+ 0.061209312211364435
+ 0.061212050524878381
+ 0.061214788871377435
+ 0.061217527250861506
+ 0.061220265663330317
+ 0.061223004108783591
+ 0.061225742587221015
+ 0.061228481098642547
+ 0.061231219643047681
+ 0.061233958220436403
+ 0.061236696830808374
+ 0.061239435474163398
+ 0.061242174150501233
+ 0.061244912859821539
+ 0.061247651602124198
+ 0.061250390377408932
+ 0.061253129185675527
+ 0.061255868026923663
+ 0.061258606901153152
+ 0.061261345808363843
+ 0.06126408474855536
+ 0.061266823721727579
+ 0.061269562727880172
+ 0.061272301767013017
+ 0.061275040839125744
+ 0.061277779944218201
+ 0.061280519082290132
+ 0.061283258253341265
+ 0.061285997457371462
+ 0.06128873669438039
+ 0.061291475964367889
+ 0.06129421526733364
+ 0.06129695460327754
+ 0.06129969397219924
+ 0.06130243337409861
+ 0.061305172808975274
+ 0.061307912276829017
+ 0.061310651777659819
+ 0.06131339131146727
+ 0.061316130878251156
+ 0.061318870478011295
+ 0.061321610110747327
+ 0.061324349776459154
+ 0.061327089475146562
+ 0.06132982920680919
+ 0.061332568971446982
+ 0.061335308769059571
+ 0.061338048599646748
+ 0.061340788463208382
+ 0.061343528359744111
+ 0.061346268289253769
+ 0.061349008251737142
+ 0.061351748247193964
+ 0.061354488275624092
+ 0.061357228337027177
+ 0.061359968431403081
+ 0.061362708558751582
+ 0.061365448719072381
+ 0.061368188912365326
+ 0.06137092913863014
+ 0.061373669397866731
+ 0.061376409690074636
+ 0.061379150015253736
+ 0.061381890373403906
+ 0.0613846307645248
+ 0.061387371188616285
+ 0.061390111645678071
+ 0.061392852135709983
+ 0.061395592658711792
+ 0.061398333214683153
+ 0.061401073803624036
+ 0.061403814425534116
+ 0.061406555080413171
+ 0.061409295768261089
+ 0.06141203648907749
+ 0.061414777242862102
+ 0.061417518029614933
+ 0.061420258849335711
+ 0.061422999702024056
+ 0.061425740587679904
+ 0.061428481506302958
+ 0.061431222457893057
+ 0.06143396344244987
+ 0.061436704459973325
+ 0.061439445510463132
+ 0.061442186593919097
+ 0.06144492771034097
+ 0.061447668859728563
+ 0.061450410042081627
+ 0.061453151257399932
+ 0.061455892505683347
+ 0.061458633786931616
+ 0.061461375101144411
+ 0.061464116448321691
+ 0.061466857828463187
+ 0.061469599241568591
+ 0.06147234068763785
+ 0.061475082166670601
+ 0.061477823678666665
+ 0.06148056522362591
+ 0.06148330680154801
+ 0.061486048412432867
+ 0.061488790056280163
+ 0.061491531733089799
+ 0.061494273442861375
+ 0.061497015185594958
+ 0.061499756961290071
+ 0.061502498769946692
+ 0.061505240611564399
+ 0.06150798248614317
+ 0.06151072439368277
+ 0.061513466334182948
+ 0.061516208307643511
+ 0.061518950314064215
+ 0.06152169235344486
+ 0.06152443442578532
+ 0.061527176531085241
+ 0.061529918669344548
+ 0.061532660840562914
+ 0.061535403044740269
+ 0.061538145281876303
+ 0.061540887551970805
+ 0.061543629855023589
+ 0.061546372191034537
+ 0.061549114560003303
+ 0.061551856961929802
+ 0.061554599396813729
+ 0.061557341864654863
+ 0.06156008436545319
+ 0.061562826899208264
+ 0.061565569465919998
+ 0.061568312065588209
+ 0.06157105469821271
+ 0.061573797363793127
+ 0.061576540062329446
+ 0.061579282793821383
+ 0.061582025558268784
+ 0.061584768355671428
+ 0.061587511186029009
+ 0.061590254049341389
+ 0.06159299694560854
+ 0.061595739874829962
+ 0.061598482837005676
+ 0.061601225832135419
+ 0.06160396886021894
+ 0.061606711921256087
+ 0.061609455015246652
+ 0.061612198142190419
+ 0.061614941302087244
+ 0.061617684494936834
+ 0.061620427720739057
+ 0.061623170979493769
+ 0.061625914271200538
+ 0.061628657595859525
+ 0.06163140095347025
+ 0.061634144344032624
+ 0.061636887767546396
+ 0.061639631224011428
+ 0.061642374713427518
+ 0.061645118235794452
+ 0.061647861791112028
+ 0.061650605379379955
+ 0.061653349000598302
+ 0.061656092654766598
+ 0.061658836341884862
+ 0.061661580061952694
+ 0.061664323814970057
+ 0.061667067600936695
+ 0.061669811419852422
+ 0.061672555271717062
+ 0.061675299156530382
+ 0.06167804307429222
+ 0.061680787025002376
+ 0.061683531008660766
+ 0.061686275025266926
+ 0.061689019074820925
+ 0.061691763157322485
+ 0.061694507272771384
+ 0.061697251421167457
+ 0.061699995602510514
+ 0.06170273981680028
+ 0.061705484064036753
+ 0.061708228344219629
+ 0.061710972657348713
+ 0.06171371700342386
+ 0.061716461382444757
+ 0.061719205794411376
+ 0.061721950239323517
+ 0.061724694717180804
+ 0.061727439227983322
+ 0.061730183771730694
+ 0.061732928348422839
+ 0.061735672958059387
+ 0.061738417600640347
+ 0.06174116227616553
+ 0.061743906984634674
+ 0.061746651726047493
+ 0.061749396500404022
+ 0.061752141307703928
+ 0.06175488614794708
+ 0.061757631021133283
+ 0.06176037592726237
+ 0.061763120866334155
+ 0.061765865838348463
+ 0.06176861084330508
+ 0.061771355881203749
+ 0.061774100952044372
+ 0.061776846055826812
+ 0.061779591192550894
+ 0.061782336362216299
+ 0.061785081564822958
+ 0.061787826800370628
+ 0.061790572068859212
+ 0.061793317370288384
+ 0.061796062704658171
+ 0.061798808071968206
+ 0.06180155347221844
+ 0.061804298905408658
+ 0.06180704437153859
+ 0.061809789870608096
+ 0.061812535402617094
+ 0.061815280967565299
+ 0.061818026565452627
+ 0.061820772196278795
+ 0.061823517860043753
+ 0.061826263556747155
+ 0.061829009286388945
+ 0.061831755048969005
+ 0.061834500844486898
+ 0.061837246672942825
+ 0.061839992534336308
+ 0.061842738428667228
+ 0.061845484355935502
+ 0.061848230316140944
+ 0.061850976309283275
+ 0.061853722335362418
+ 0.06185646839437825
+ 0.061859214486330395
+ 0.061861960611218805
+ 0.061864706769043376
+ 0.061867452959803802
+ 0.061870199183500035
+ 0.061872945440131742
+ 0.061875691729698958
+ 0.061878438052201383
+ 0.061881184407638831
+ 0.061883930796011191
+ 0.061886677217318206
+ 0.061889423671559869
+ 0.061892170158735778
+ 0.061894916678846008
+ 0.061897663231890263
+ 0.06190040981786829
+ 0.061903156436780023
+ 0.061905903088625383
+ 0.061908649773404011
+ 0.061911396491115878
+ 0.061914143241760797
+ 0.061916890025338525
+ 0.06191963684184891
+ 0.06192238369129182
+ 0.061925130573667157
+ 0.061927877488974624
+ 0.06193062443721413
+ 0.061933371418385501
+ 0.061936118432488557
+ 0.061938865479523167
+ 0.061941612559489038
+ 0.0619443596723862
+ 0.061947106818214401
+ 0.061949853996973434
+ 0.061952601208663166
+ 0.061955348453283467
+ 0.061958095730834127
+ 0.061960843041314946
+ 0.061963590384725827
+ 0.06196633776106665
+ 0.06196908517033721
+ 0.061971832612537338
+ 0.061974580087666757
+ 0.061977327595725495
+ 0.061980075136713358
+ 0.061982822710630096
+ 0.061985570317475591
+ 0.06198831795724976
+ 0.061991065629952213
+ 0.061993813335583098
+ 0.061996561074142024
+ 0.061999308845628917
+ 0.062002056650043609
+ 0.062004804487385989
+ 0.06200755235765578
+ 0.062010300260852989
+ 0.062013048196977269
+ 0.062015796166028613
+ 0.062018544168006833
+ 0.062021292202911735
+ 0.062024040270743208
+ 0.062026788371500996
+ 0.062029536505185084
+ 0.062032284671795182
+ 0.06203503287133133
+ 0.062037781103793141
+ 0.062040529369180558
+ 0.062043277667493506
+ 0.06204602599873172
+ 0.062048774362895021
+ 0.062051522759983373
+ 0.06205427118999652
+ 0.062057019652934441
+ 0.062059768148796865
+ 0.062062516677583654
+ 0.062065265239294752
+ 0.062068013833929819
+ 0.062070762461488869
+ 0.062073511121971646
+ 0.062076259815378128
+ 0.062079008541708107
+ 0.06208175730096132
+ 0.062084506093137752
+ 0.062087254918237189
+ 0.062090003776259527
+ 0.06209275266720457
+ 0.062095501591072244
+ 0.062098250547862242
+ 0.062100999537574607
+ 0.06210374856020906
+ 0.062106497615765553
+ 0.062109246704243795
+ 0.062111995825643883
+ 0.06211474497996531
+ 0.062117494167208333
+ 0.062120243387372473
+ 0.0621229926404578
+ 0.062125741926463994
+ 0.062128491245391118
+ 0.062131240597238784
+ 0.062133989982007053
+ 0.062136739399695662
+ 0.062139488850304549
+ 0.062142238333833519
+ 0.062144987850282378
+ 0.062147737399651112
+ 0.062150486981939458
+ 0.062153236597147374
+ 0.062155986245274616
+ 0.062158735926321068
+ 0.062161485640286618
+ 0.062164235387171224
+ 0.062166985166974574
+ 0.062169734979696516
+ 0.062172484825337021
+ 0.062175234703895882
+ 0.062177984615373043
+ 0.06218073455976833
+ 0.062183484537081536
+ 0.062186234547312542
+ 0.062188984590461314
+ 0.062191734666527478
+ 0.062194484775511226
+ 0.062197234917412136
+ 0.062199985092230271
+ 0.062202735299965284
+ 0.062205485540617139
+ 0.062208235814185858
+ 0.062210986120671025
+ 0.062213736460072715
+ 0.062216486832390692
+ 0.062219237237624757
+ 0.062221987675774977
+ 0.062224738146841083
+ 0.062227488650822907
+ 0.062230239187720457
+ 0.062232989757533372
+ 0.062235740360261659
+ 0.062238490995905303
+ 0.062241241664463896
+ 0.062243992365937501
+ 0.062246743100325935
+ 0.062249493867629076
+ 0.062252244667846776
+ 0.062254995500978877
+ 0.062257746367025323
+ 0.062260497265985933
+ 0.062263248197860513
+ 0.062265999162649036
+ 0.062268750160351348
+ 0.06227150119096727
+ 0.062274252254496752
+ 0.062277003350939525
+ 0.062279754480295643
+ 0.062282505642564753
+ 0.06228525683774689
+ 0.062288008065842032
+ 0.062290759326849833
+ 0.062293510620770175
+ 0.062296261947603036
+ 0.062299013307348348
+ 0.062301764700005709
+ 0.062304516125575277
+ 0.062307267584056733
+ 0.062310019075450078
+ 0.062312770599755159
+ 0.062315522156971809
+ 0.062318273747099841
+ 0.062321025370139331
+ 0.062323777026090009
+ 0.062326528714951722
+ 0.062329280436724435
+ 0.062332032191407989
+ 0.06233478397900228
+ 0.062337535799507113
+ 0.062340287652922488
+ 0.062343039539248114
+ 0.06234579145848395
+ 0.062348543410629967
+ 0.062351295395685936
+ 0.062354047413651748
+ 0.062356799464527192
+ 0.062359551548312415
+ 0.062362303665007057
+ 0.062365055814611041
+ 0.062367807997124304
+ 0.062370560212546701
+ 0.062373312460878058
+ 0.062376064742118376
+ 0.062378817056267417
+ 0.062381569403325142
+ 0.062384321783291258
+ 0.062387074196165945
+ 0.062389826641948871
+ 0.062392579120639925
+ 0.062395331632239107
+ 0.062398084176746145
+ 0.062400836754161103
+ 0.062403589364483744
+ 0.062406342007713916
+ 0.062409094683851578
+ 0.062411847392896624
+ 0.062414600134848855
+ 0.062417352909708214
+ 0.062420105717474646
+ 0.062422858558147942
+ 0.062425611431727979
+ 0.062428364338214706
+ 0.062431117277608035
+ 0.062433870249907757
+ 0.062436623255113781
+ 0.062439376293226032
+ 0.062442129364244342
+ 0.062444882468168698
+ 0.062447635604998823
+ 0.062450388774734876
+ 0.062453141977376489
+ 0.062455895212923621
+ 0.062458648481376118
+ 0.062461401782733975
+ 0.062464155116997107
+ 0.062466908484165244
+ 0.062469661884238387
+ 0.062472415317216409
+ 0.062475168783099201
+ 0.06247792228188661
+ 0.062480675813578669
+ 0.06248342937817504
+ 0.062486182975675757
+ 0.062488936606080667
+ 0.062491690269389853
+ 0.062494443965602858
+ 0.062497197694719842
+ 0.062499951456740574
+ 0.062502705251665014
+ 0.062505459079492995
+ 0.062508212940224475
+ 0.06251096683385933
+ 0.062513720760397434
+ 0.062516474719838691
+ 0.062519228712183017
+ 0.06252198273743019
+ 0.062524736795580196
+ 0.06252749088663305
+ 0.062530245010588514
+ 0.062532999167446465
+ 0.062535753357206847
+ 0.062538507579869534
+ 0.062541261835434486
+ 0.06254401612390148
+ 0.062546770445270572
+ 0.062549524799541498
+ 0.062552279186714285
+ 0.062555033606788685
+ 0.062557788059764863
+ 0.062560542545642417
+ 0.062563297064421403
+ 0.062566051616101667
+ 0.062568806200683155
+ 0.0625715608181657
+ 0.062574315468549316
+ 0.062577070151833836
+ 0.062579824868019149
+ 0.062582579617105144
+ 0.062585334399091752
+ 0.062588089213978931
+ 0.062590844061766529
+ 0.062593598942454351
+ 0.062596353856042425
+ 0.062599108802530598
+ 0.062601863781918815
+ 0.062604618794206993
+ 0.062607373839395034
+ 0.062610128917482813
+ 0.062612884028470095
+ 0.062615639172357088
+ 0.062618394349143403
+ 0.06262114955882922
+ 0.062623904801414193
+ 0.062626660076898419
+ 0.062629415385281592
+ 0.06263217072656381
+ 0.062634926100744934
+ 0.062637681507824866
+ 0.06264043694780351
+ 0.062643192420680699
+ 0.062645947926456461
+ 0.062648703465130642
+ 0.062651459036703189
+ 0.062654214641173878
+ 0.062656970278542806
+ 0.062659725948809822
+ 0.062662481651974716
+ 0.062665237388037531
+ 0.062667993156998225
+ 0.062670748958856534
+ 0.062673504793612458
+ 0.062676260661265901
+ 0.062679016561816819
+ 0.06268177249526509
+ 0.062684528461610531
+ 0.062687284460853268
+ 0.06269004049299301
+ 0.062692796558029812
+ 0.062695552655963452
+ 0.062698308786793999
+ 0.062701064950521163
+ 0.062703821147145039
+ 0.062706577376665518
+ 0.062709333639082487
+ 0.062712089934395795
+ 0.062714846262605387
+ 0.062717602623711302
+ 0.062720359017713292
+ 0.062723115444611371
+ 0.0627258719044054
+ 0.062728628397095296
+ 0.062731384922681016
+ 0.06273414148116245
+ 0.062736898072539571
+ 0.062739654696812225
+ 0.062742411353980315
+ 0.062745168044043786
+ 0.062747924767002666
+ 0.062750681522856705
+ 0.062753438311605944
+ 0.06275619513325012
+ 0.062758951987789427
+ 0.062761708875223601
+ 0.062764465795552615
+ 0.062767222748776344
+ 0.062769979734894774
+ 0.062772736753907779
+ 0.062775493805815263
+ 0.06277825089061724
+ 0.062781008008313474
+ 0.062783765158904145
+ 0.062786522342388809
+ 0.062789279558767772
+ 0.062792036808040672
+ 0.06279479409020762
+ 0.062797551405268409
+ 0.062800308753223039
+ 0.062803066134071384
+ 0.062805823547813402
+ 0.062808580994448998
+ 0.06281133847397817
+ 0.062814095986400628
+ 0.062816853531716593
+ 0.06281961110992583
+ 0.062822368721028199
+ 0.062825126365023756
+ 0.062827884041912363
+ 0.062830641751694005
+ 0.062833399494368558
+ 0.062836157269935966
+ 0.062838915078396076
+ 0.062841672919748931
+ 0.062844430793994516
+ 0.062847188701132511
+ 0.062849946641163085
+ 0.062852704614086111
+ 0.062855462619901367
+ 0.062858220658608951
+ 0.06286097873020878
+ 0.062863736834700715
+ 0.062866494972084755
+ 0.062869253142360734
+ 0.062872011345528694
+ 0.062874769581588524
+ 0.062877527850540113
+ 0.062880286152383502
+ 0.062883044487118456
+ 0.062885802854744974
+ 0.06288856125526314
+ 0.062891319688672634
+ 0.062894078154973623
+ 0.062896836654165858
+ 0.06289959518624938
+ 0.062902353751224091
+ 0.062905112349089951
+ 0.062907870979846806
+ 0.062910629643494767
+ 0.062913388340033599
+ 0.06291614706946326
+ 0.062918905831783778
+ 0.062921664626994889
+ 0.062924423455096926
+ 0.062927182316089333
+ 0.062929941209972473
+ 0.062932700136745956
+ 0.062935459096409949
+ 0.062938218088964257
+ 0.062940977114408866
+ 0.062943736172743764
+ 0.062946495263968755
+ 0.062949254388083922
+ 0.062952013545089211
+ 0.062954772734984288
+ 0.062957531957769403
+ 0.062960291213444514
+ 0.062963050502009288
+ 0.062965809823463836
+ 0.06296856917780809
+ 0.062971328565042006
+ 0.062974087985165489
+ 0.062976847438178468
+ 0.062979606924080958
+ 0.062982366442872778
+ 0.06298512599455397
+ 0.062987885579124492
+ 0.062990645196584288
+ 0.062993404846933124
+ 0.062996164530171164
+ 0.06299892424629823
+ 0.063001683995314334
+ 0.063004443777219338
+ 0.063007203592013325
+ 0.063009963439696115
+ 0.063012723320267625
+ 0.063015483233727965
+ 0.063018243180076913
+ 0.06302100315931447
+ 0.063023763171440705
+ 0.06302652321645541
+ 0.063029283294358529
+ 0.063032043405150034
+ 0.06303480354883001
+ 0.06303756372539826
+ 0.063040323934854758
+ 0.063043084177199449
+ 0.063045844452432276
+ 0.063048604760553253
+ 0.063051365101562229
+ 0.063054125475459244
+ 0.063056885882244229
+ 0.063059646321917046
+ 0.063062406794477777
+ 0.063065167299926256
+ 0.063067927838262497
+ 0.063070688409486514
+ 0.063073449013598112
+ 0.063076209650597362
+ 0.063078970320484151
+ 0.063081731023258383
+ 0.063084491758920211
+ 0.063087252527469342
+ 0.063090013328905889
+ 0.06309277416322974
+ 0.063095535030440922
+ 0.063098295930539325
+ 0.063101056863524949
+ 0.063103817829397585
+ 0.063106578828157373
+ 0.063109339859804256
+ 0.06311210092433811
+ 0.063114862021758977
+ 0.063117623152066732
+ 0.063120384315261374
+ 0.063123145511342807
+ 0.063125906740311086
+ 0.063128668002165989
+ 0.063131429296907737
+ 0.063134190624536027
+ 0.063136951985051051
+ 0.063139713378452589
+ 0.063142474804740598
+ 0.063145236263915175
+ 0.063147997755976237
+ 0.063150759280923674
+ 0.06315352083875754
+ 0.063156282429477614
+ 0.063159044053084035
+ 0.063161805709576732
+ 0.063164567398955665
+ 0.063167329121220681
+ 0.063170090876371876
+ 0.063172852664409238
+ 0.06317561448533264
+ 0.063178376339142014
+ 0.063181138225837347
+ 0.063183900145418678
+ 0.063186662097885871
+ 0.063189424083239007
+ 0.063192186101477962
+ 0.063194948152602654
+ 0.063197710236613178
+ 0.063200472353509354
+ 0.063203234503291295
+ 0.06320599668595886
+ 0.063208758901512049
+ 0.063211521149950822
+ 0.063214283431275151
+ 0.063217045745485076
+ 0.063219808092580376
+ 0.06322257047256119
+ 0.063225332885427449
+ 0.063228095331179068
+ 0.063230857809816021
+ 0.063233620321338294
+ 0.063236382865745844
+ 0.063239145443038755
+ 0.063241908053216736
+ 0.063244670696280036
+ 0.063247433372228434
+ 0.063250196081062013
+ 0.063252958822780703
+ 0.063255721597384421
+ 0.06325848440487318
+ 0.063261247245246982
+ 0.063264010118505798
+ 0.063266773024649531
+ 0.063269535963678208
+ 0.063272298935591817
+ 0.063275061940390204
+ 0.063277824978073466
+ 0.063280588048641645
+ 0.063283351152094464
+ 0.063286114288432158
+ 0.063288877457654505
+ 0.063291640659761672
+ 0.063294403894753437
+ 0.063297167162629883
+ 0.063299930463390941
+ 0.063302693797036569
+ 0.06330545716356685
+ 0.06330822056298166
+ 0.063310983995280998
+ 0.063313747460464906
+ 0.063316510958533287
+ 0.063319274489486085
+ 0.063322038053323274
+ 0.063324801650044907
+ 0.06332756527965093
+ 0.063330328942141342
+ 0.063333092637516131
+ 0.063335856365775212
+ 0.063338620126918571
+ 0.063341383920946279
+ 0.063344147747858168
+ 0.063346911607654335
+ 0.063349675500334698
+ 0.06335243942589934
+ 0.063355203384348094
+ 0.06335796737568096
+ 0.063360731399898007
+ 0.063363495456999222
+ 0.063366259546984535
+ 0.063369023669853849
+ 0.063371787825607304
+ 0.063374552014244745
+ 0.063377316235766271
+ 0.063380080490171825
+ 0.063382844777461284
+ 0.063385609097634771
+ 0.06338837345069219
+ 0.063391137836633554
+ 0.063393902255458892
+ 0.063396666707168037
+ 0.063399431191761196
+ 0.063402195709238246
+ 0.063404960259599102
+ 0.063407724842843849
+ 0.063410489458972305
+ 0.063413254107984707
+ 0.063416018789880887
+ 0.063418783504660889
+ 0.063421548252324614
+ 0.063424313032872146
+ 0.063427077846303442
+ 0.063429842692618421
+ 0.063432607571817207
+ 0.06343537248389966
+ 0.063438137428865823
+ 0.063440902406715752
+ 0.063443667417449279
+ 0.063446432461066529
+ 0.063449197537567434
+ 0.063451962646951951
+ 0.063454727789220108
+ 0.063457492964371948
+ 0.063460258172407386
+ 0.063463023413326394
+ 0.063465788687129099
+ 0.06346855399381536
+ 0.06347131933338529
+ 0.063474084705838665
+ 0.063476850111175653
+ 0.063479615549396198
+ 0.063482381020500356
+ 0.063485146524488029
+ 0.063487912061359245
+ 0.063490677631114018
+ 0.063493443233752278
+ 0.063496208869274068
+ 0.063498974537679428
+ 0.063501740238968249
+ 0.063504505973140626
+ 0.063507271740196519
+ 0.063510037540135802
+ 0.063512803372958643
+ 0.063515569238665012
+ 0.063518335137254842
+ 0.063521101068728159
+ 0.063523867033084963
+ 0.063526633030325269
+ 0.063529399060448979
+ 0.063532165123456205
+ 0.063534931219346974
+ 0.063537697348121119
+ 0.063540463509778808
+ 0.063543229704319845
+ 0.063545995931744439
+ 0.06354876219205248
+ 0.06355152848524398
+ 0.06355429481131894
+ 0.063557061170277387
+ 0.063559827562119323
+ 0.063562593986844648
+ 0.063565360444453559
+ 0.063568126934945846
+ 0.063570893458321676
+ 0.063573660014580854
+ 0.063576426603723674
+ 0.063579193225749814
+ 0.063581959880659483
+ 0.06358472656845271
+ 0.063587493289129396
+ 0.063590260042689528
+ 0.063593026829133162
+ 0.063595793648460283
+ 0.063598560500670961
+ 0.063601327385765127
+ 0.063604094303742767
+ 0.063606861254604033
+ 0.06360962823834862
+ 0.063612395254976875
+ 0.063615162304488632
+ 0.063617929386883973
+ 0.063620696502162857
+ 0.063623463650325257
+ 0.063626230831371255
+ 0.063628998045300783
+ 0.063631765292113854
+ 0.063634532571810565
+ 0.063637299884390874
+ 0.06364006722985481
+ 0.063642834608202359
+ 0.063645602019433464
+ 0.063648369463548224
+ 0.06365113694054661
+ 0.063653904450428622
+ 0.063656671993194303
+ 0.063659439568843734
+ 0.063662207177376751
+ 0.063664974818793532
+ 0.063667742493093982
+ 0.063670510200278099
+ 0.063673277940345996
+ 0.063676045713297644
+ 0.063678813519132932
+ 0.06368158135785211
+ 0.063684349229454998
+ 0.063687117133941734
+ 0.063689885071312208
+ 0.063692653041566558
+ 0.063695421044704645
+ 0.063698189080726664
+ 0.063700957149632517
+ 0.063703725251422219
+ 0.063706493386095783
+ 0.063709261553653307
+ 0.063712029754094693
+ 0.06371479798742008
+ 0.063717566253629343
+ 0.063720334552722704
+ 0.063723102884699984
+ 0.063725871249561195
+ 0.063728639647306476
+ 0.063731408077935758
+ 0.063734176541449236
+ 0.063736945037846687
+ 0.063739713567128195
+ 0.063742482129293843
+ 0.063745250724343616
+ 0.063748019352277571
+ 0.06375078801309568
+ 0.06375355670679797
+ 0.063756325433384525
+ 0.06375909419285522
+ 0.06376186298521018
+ 0.06376463181044946
+ 0.063767400668572963
+ 0.063770169559580772
+ 0.063772938483472999
+ 0.063775707440249532
+ 0.063778476429910469
+ 0.063781245452455768
+ 0.063784014507885484
+ 0.063786783596199714
+ 0.063789552717398307
+ 0.063792321871481497
+ 0.063795091058449133
+ 0.063797860278301394
+ 0.063800629531038128
+ 0.063803398816659515
+ 0.063806168135165542
+ 0.063808937486556153
+ 0.063811706870831472
+ 0.063814476287991431
+ 0.06381724573803621
+ 0.063820015220965615
+ 0.063822784736779839
+ 0.063825554285478897
+ 0.06382832386706272
+ 0.063831093481531445
+ 0.063833863128885004
+ 0.063836632809123564
+ 0.06383940252224693
+ 0.063842172268255379
+ 0.063844942047148773
+ 0.063847711858927236
+ 0.063850481703590742
+ 0.063853251581139317
+ 0.063856021491573045
+ 0.063858791434891843
+ 0.063861561411095849
+ 0.063864331420185008
+ 0.063867101462159445
+ 0.063869871537019202
+ 0.063872641644764208
+ 0.063875411785394548
+ 0.063878181958910346
+ 0.063880952165311436
+ 0.063883722404597956
+ 0.063886492676769976
+ 0.063889262981827483
+ 0.063892033319770516
+ 0.06389480369059912
+ 0.06389757409431332
+ 0.063900344530913131
+ 0.063903115000398608
+ 0.063905885502769808
+ 0.063908656038026729
+ 0.063911426606169414
+ 0.063914197207197931
+ 0.063916967841112282
+ 0.063919738507912591
+ 0.063922509207598704
+ 0.063925279940170804
+ 0.063928050705628903
+ 0.063930821503972987
+ 0.063933592335203238
+ 0.063936363199319515
+ 0.063939134096321945
+ 0.063941905026210555
+ 0.063944675988985372
+ 0.063947446984646508
+ 0.063950218013193866
+ 0.063952989074627625
+ 0.063955760168947731
+ 0.063958531296154211
+ 0.063961302456247204
+ 0.063964073649226696
+ 0.063966844875092702
+ 0.063969616133845317
+ 0.0639723874254845
+ 0.063975158750010433
+ 0.063977930107422976
+ 0.063980701497722392
+ 0.063983472920908516
+ 0.063986244376981485
+ 0.063989015865941301
+ 0.063991787387788102
+ 0.063994558942521818
+ 0.063997330530142504
+ 0.064000102150650315
+ 0.064002873804045166
+ 0.064005645490327195
+ 0.064008417209496474
+ 0.064011188961552917
+ 0.064013960746496651
+ 0.064016732564327661
+ 0.064019504415046058
+ 0.064022276298651926
+ 0.064025048215145236
+ 0.064027820164525989
+ 0.064030592146794421
+ 0.064033364161950379
+ 0.06403613620999403
+ 0.064038908290925331
+ 0.064041680404744394
+ 0.064044452551451289
+ 0.064047224731046015
+ 0.0640499969435286
+ 0.064052769188899156
+ 0.064055541467157695
+ 0.064058313778304329
+ 0.064061086122339017
+ 0.064063858499261842
+ 0.0640666309090729
+ 0.064069403351772233
+ 0.064072175827359745
+ 0.064074948335835755
+ 0.064077720877200067
+ 0.064080493451452808
+ 0.064083266058594185
+ 0.064086038698624018
+ 0.064088811371542501
+ 0.064091584077349661
+ 0.0640943568160455
+ 0.0640971295876301
+ 0.064099902392103586
+ 0.064102675229465986
+ 0.064105448099717244
+ 0.064108221002857582
+ 0.064110993938886848
+ 0.064113766907805292
+ 0.064116539909612899
+ 0.064119312944309698
+ 0.064122086011895743
+ 0.064124859112371119
+ 0.064127632245735963
+ 0.06413040541199011
+ 0.064133178611133906
+ 0.064135951843167213
+ 0.064138725108090072
+ 0.064141498405902567
+ 0.064144271736604933
+ 0.064147045100196989
+ 0.064149818496678959
+ 0.064152591926050759
+ 0.064155365388312596
+ 0.064158138883464472
+ 0.064160912411506371
+ 0.064163685972438461
+ 0.064166459566260714
+ 0.064169233192973241
+ 0.064172006852576152
+ 0.064174780545069379
+ 0.064177554270453158
+ 0.064180328028727349
+ 0.064183101819892202
+ 0.064185875643947649
+ 0.064188649500893827
+ 0.064191423390730792
+ 0.064194197313458559
+ 0.064196971269077141
+ 0.064199745257586788
+ 0.064202519278987388
+ 0.064205293333279137
+ 0.064208067420462006
+ 0.06421084154053612
+ 0.06421361569350155
+ 0.064216389879358224
+ 0.064219164098106393
+ 0.064221938349745988
+ 0.064224712634277092
+ 0.064227486951699886
+ 0.064230261302014327
+ 0.064233035685220513
+ 0.064235810101318513
+ 0.064238584550308397
+ 0.06424135903219029
+ 0.064244133546964136
+ 0.064246908094630073
+ 0.06424968267518813
+ 0.064252457288638487
+ 0.064255231934981075
+ 0.064258006614216087
+ 0.064260781326343427
+ 0.064263556071363373
+ 0.064266330849275841
+ 0.064269105660081038
+ 0.064271880503778814
+ 0.064274655380369472
+ 0.064277430289852971
+ 0.064280205232229382
+ 0.064282980207498758
+ 0.064285755215661322
+ 0.06428853025671695
+ 0.064291305330665807
+ 0.064294080437507992
+ 0.064296855577243475
+ 0.064299630749872425
+ 0.064302405955394951
+ 0.064305181193811026
+ 0.064307956465120733
+ 0.064310731769324211
+ 0.064313507106421516
+ 0.064316282476412676
+ 0.064319057879297814
+ 0.064321833315076987
+ 0.064324608783750306
+ 0.064327384285317743
+ 0.064330159819779548
+ 0.064332935387135623
+ 0.064335710987386191
+ 0.064338486620531155
+ 0.064341262286570805
+ 0.064344037985505032
+ 0.064346813717334042
+ 0.064349589482057809
+ 0.064352365279676541
+ 0.064355141110190264
+ 0.064357916973598925
+ 0.064360692869902814
+ 0.064363468799101833
+ 0.064366244761196262
+ 0.064369020756185946
+ 0.06437179678407115
+ 0.064374572844851916
+ 0.064377348938528187
+ 0.064380125065100269
+ 0.064382901224568065
+ 0.0643856774169317
+ 0.064388453642191326
+ 0.064391229900347
+ 0.064394006191398748
+ 0.064396782515346654
+ 0.064399558872190871
+ 0.064402335261931468
+ 0.064405111684568458
+ 0.064407888140102051
+ 0.064410664628532191
+ 0.064413441149859044
+ 0.064416217704082721
+ 0.064418994291203235
+ 0.064421770911220658
+ 0.064424547564135196
+ 0.064427324249946807
+ 0.064430100968655687
+ 0.064432877720261766
+ 0.06443565450476535
+ 0.064438431322166312
+ 0.064441208172464834
+ 0.064443985055661054
+ 0.06444676197175507
+ 0.064449538920746813
+ 0.064452315902636476
+ 0.06445509291742417
+ 0.06445786996510991
+ 0.064460647045693903
+ 0.064463424159176122
+ 0.064466201305556692
+ 0.064468978484835779
+ 0.064471755697013369
+ 0.064474532942089588
+ 0.06447731022006449
+ 0.064480087530938229
+ 0.064482864874710957
+ 0.064485642251382605
+ 0.064488419660953325
+ 0.064491197103423312
+ 0.064493974578792482
+ 0.064496752087061085
+ 0.06449952962822908
+ 0.06450230720229673
+ 0.064505084809263979
+ 0.064507862449130954
+ 0.064510640121897805
+ 0.064513417827564562
+ 0.064516195566131321
+ 0.06451897333759829
+ 0.064521751141965372
+ 0.064524528979232873
+ 0.064527306849400695
+ 0.064530084752469088
+ 0.064532862688438025
+ 0.064535640657307727
+ 0.064538418659078139
+ 0.064541196693749567
+ 0.064543974761321857
+ 0.064546752861795356
+ 0.064549530995169982
+ 0.064552309161445887
+ 0.06455508736062314
+ 0.064557865592701963
+ 0.064560643857682357
+ 0.064563422155564376
+ 0.064566200486348119
+ 0.064568978850033876
+ 0.064571757246621606
+ 0.064574535676111364
+ 0.064577314138503317
+ 0.06458009263379752
+ 0.064582871161994182
+ 0.064585649723093247
+ 0.064588428317094992
+ 0.064591206943999349
+ 0.064593985603806539
+ 0.064596764296516729
+ 0.064599543022129738
+ 0.064602321780645955
+ 0.06460510057206531
+ 0.064607879396388082
+ 0.064610658253614159
+ 0.064613437143743777
+ 0.064616216066777088
+ 0.064618995022714038
+ 0.064621774011554944
+ 0.064624553033299684
+ 0.06462733208794845
+ 0.06463011117550152
+ 0.064632890295958673
+ 0.06463566944932024
+ 0.064638448635586362
+ 0.064641227854756927
+ 0.064644007106832269
+ 0.064646786391812344
+ 0.064649565709697362
+ 0.064652345060487448
+ 0.064655124444182518
+ 0.064657903860782878
+ 0.064660683310288555
+ 0.064663462792699689
+ 0.064666242308016403
+ 0.064669021856238754
+ 0.06467180143736688
+ 0.064674581051400851
+ 0.064677360698340874
+ 0.064680140378186923
+ 0.064682920090939233
+ 0.064685699836597901
+ 0.064688479615162983
+ 0.064691259426634631
+ 0.064694039271012929
+ 0.064696819148298057
+ 0.064699599058489918
+ 0.064702379001588928
+ 0.064705158977595045
+ 0.064707938986508326
+ 0.064710719028328922
+ 0.064713499103057057
+ 0.064716279210692715
+ 0.064719059351236008
+ 0.064721839524687214
+ 0.064724619731046262
+ 0.064727399970313362
+ 0.064730180242488583
+ 0.064732960547572091
+ 0.064735740885563955
+ 0.06473852125646426
+ 0.064741301660273282
+ 0.064744082096991021
+ 0.064746862566617533
+ 0.064749643069153026
+ 0.064752423604597653
+ 0.064755204172951414
+ 0.064757984774214489
+ 0.064760765408387072
+ 0.06476354607546915
+ 0.064766326775461
+ 0.064769107508362525
+ 0.064771888274173961
+ 0.064774669072895502
+ 0.064777449904527148
+ 0.064780230769069122
+ 0.064783011666521409
+ 0.064785792596884259
+ 0.064788573560157714
+ 0.064791354556341954
+ 0.064794135585437063
+ 0.064796916647443248
+ 0.064799697742360454
+ 0.064802478870188918
+ 0.064805260030928805
+ 0.064808041224580185
+ 0.064810822451143085
+ 0.064813603710617812
+ 0.064816385003004393
+ 0.064819166328302924
+ 0.064821947686513628
+ 0.064824729077636506
+ 0.064827510501671723
+ 0.064830291958619529
+ 0.064833073448479883
+ 0.064835854971253007
+ 0.064838636526938984
+ 0.06484141811553798
+ 0.064844199737050037
+ 0.064846981391475433
+ 0.064849763078814085
+ 0.064852544799066283
+ 0.06485532655223214
+ 0.06485810833831171
+ 0.064860890157305215
+ 0.064863672009212711
+ 0.064866453894034309
+ 0.064869235811770259
+ 0.064872017762420547
+ 0.064874799745985368
+ 0.064877581762464845
+ 0.064880363811859146
+ 0.064883145894168368
+ 0.064885928009392677
+ 0.064888710157532045
+ 0.064891492338586806
+ 0.06489427455255703
+ 0.064897056799442798
+ 0.064899839079244251
+ 0.064902621391961623
+ 0.064905403737594888
+ 0.064908186116144295
+ 0.064910968527609914
+ 0.064913750971992007
+ 0.064916533449290478
+ 0.064919315959505688
+ 0.064922098502637568
+ 0.064924881078686436
+ 0.064927663687652307
+ 0.064930446329535402
+ 0.064933229004335846
+ 0.064936011712053668
+ 0.064938794452689033
+ 0.064941577226242261
+ 0.064944360032713172
+ 0.064947142872102223
+ 0.064949925744409331
+ 0.064952708649634761
+ 0.064955491587778524
+ 0.064958274558840984
+ 0.064961057562822
+ 0.064963840599721837
+ 0.064966623669540646
+ 0.064969406772278526
+ 0.064972189907935643
+ 0.06497497307651226
+ 0.064977756278008295
+ 0.064980539512423954
+ 0.064983322779759448
+ 0.064986106080014844
+ 0.064988889413190365
+ 0.064991672779286094
+ 0.064994456178302198
+ 0.064997239610238733
+ 0.065000023075096017
+ 0.065002806572873911
+ 0.065005590103572874
+ 0.065008373667192906
+ 0.065011157263734104
+ 0.065013940893196648
+ 0.065016724555580746
+ 0.06501950825088644
+ 0.065022291979113869
+ 0.065025075740263283
+ 0.065027859534334806
+ 0.065030643361328508
+ 0.065033427221244583
+ 0.065036211114083087
+ 0.065038995039844352
+ 0.06504177899852838
+ 0.065044562990135377
+ 0.065047347014665413
+ 0.065050131072118711
+ 0.065052915162495423
+ 0.065055699285795604
+ 0.065058483442019505
+ 0.065061267631167263
+ 0.065064051853238936
+ 0.065066836108234757
+ 0.06506962039615484
+ 0.06507240471699928
+ 0.065075189070768438
+ 0.065077973457462218
+ 0.065080757877080841
+ 0.06508354232962453
+ 0.065086326815093382
+ 0.065089111333487562
+ 0.065091895884807224
+ 0.065094680469052466
+ 0.065097465086223397
+ 0.06510024973632042
+ 0.06510303441934337
+ 0.065105819135292634
+ 0.065108603884168212
+ 0.065111388665970368
+ 0.0651141734806992
+ 0.065116958328354818
+ 0.065119743208937472
+ 0.065122528122447274
+ 0.065125313068884361
+ 0.065128098048248845
+ 0.065130883060541031
+ 0.065133668105760864
+ 0.065136453183908621
+ 0.065139238294984511
+ 0.06514202343898863
+ 0.065144808615921049
+ 0.065147593825782085
+ 0.065150379068571768
+ 0.065153164344290276
+ 0.065155949652937778
+ 0.065158734994514494
+ 0.065161520369020495
+ 0.065164305776456044
+ 0.065167091216821141
+ 0.065169876690116008
+ 0.065172662196340866
+ 0.065175447735495926
+ 0.065178233307581074
+ 0.065181018912596742
+ 0.065183804550543026
+ 0.065186590221419941
+ 0.065189375925227805
+ 0.06519216166196673
+ 0.065194947431637021
+ 0.065197733234238497
+ 0.065200519069771659
+ 0.065203304938236437
+ 0.065206090839633093
+ 0.065208876773961838
+ 0.06521166274122274
+ 0.065214448741415965
+ 0.065217234774541721
+ 0.065220020840600218
+ 0.06522280693959151
+ 0.065225593071515833
+ 0.065228379236373285
+ 0.065231165434164101
+ 0.06523395166488842
+ 0.065236737928546312
+ 0.065239524225138165
+ 0.065242310554663896
+ 0.065245096917123852
+ 0.065247883312518129
+ 0.065250669740846784
+ 0.065253456202110219
+ 0.065256242696308434
+ 0.065259029223441692
+ 0.065261815783510049
+ 0.065264602376513686
+ 0.065267389002452839
+ 0.065270175661327645
+ 0.065272962353138342
+ 0.065275749077884998
+ 0.065278535835567753
+ 0.065281322626186869
+ 0.065284109449742542
+ 0.065286896306234743
+ 0.065289683195663875
+ 0.065292470118030035
+ 0.065295257073333293
+ 0.065298044061573995
+ 0.065300831082752142
+ 0.065303618136867969
+ 0.065306405223921685
+ 0.0653091923439134
+ 0.065311979496843295
+ 0.06531476668271162
+ 0.065317553901518458
+ 0.065320341153264086
+ 0.065323128437948491
+ 0.065325915755572048
+ 0.065328703106134783
+ 0.065331490489636948
+ 0.065334277906078653
+ 0.065337065355460119
+ 0.065339852837781626
+ 0.065342640353043158
+ 0.065345427901244951
+ 0.065348215482387215
+ 0.065351003096470073
+ 0.065353790743493831
+ 0.065356578423458545
+ 0.065359366136364366
+ 0.065362153882211504
+ 0.065364941661000223
+ 0.065367729472730521
+ 0.065370517317402746
+ 0.065373305195017134
+ 0.065376093105573602
+ 0.065378881049072496
+ 0.065381669025513969
+ 0.065384457034898175
+ 0.065387245077225389
+ 0.065390033152495614
+ 0.065392821260709152
+ 0.065395609401866187
+ 0.065398397575966827
+ 0.065401185783011365
+ 0.065403974022999856
+ 0.065406762295932563
+ 0.065409550601809724
+ 0.065412338940631337
+ 0.065415127312397695
+ 0.065417915717108976
+ 0.065420704154765363
+ 0.065423492625367022
+ 0.065426281128914146
+ 0.065429069665406903
+ 0.065431858234845527
+ 0.065434646837230132
+ 0.065437435472560965
+ 0.06544022414083811
+ 0.06544301284206186
+ 0.065445801576232365
+ 0.065448590343349766
+ 0.065451379143414368
+ 0.065454167976426184
+ 0.065456956842385491
+ 0.065459745741292485
+ 0.065462534673147402
+ 0.065465323637950268
+ 0.065468112635701389
+ 0.065470901666400946
+ 0.065473690730049092
+ 0.065476479826645992
+ 0.06547926895619198
+ 0.065482058118687056
+ 0.06548484731413147
+ 0.065487636542525443
+ 0.065490425803869198
+ 0.065493215098162819
+ 0.065496004425406554
+ 0.065498793785600667
+ 0.065501583178745146
+ 0.065504372604840322
+ 0.065507162063886432
+ 0.065509951555883586
+ 0.065512741080831979
+ 0.065515530638731806
+ 0.06551832022958326
+ 0.065521109853386536
+ 0.0655238995101418
+ 0.065526689199849344
+ 0.065529478922509182
+ 0.065532268678121702
+ 0.06553505846668696
+ 0.065537848288205303
+ 0.065540638142676702
+ 0.065543428030101464
+ 0.065546217950479727
+ 0.065549007903811851
+ 0.065551797890097907
+ 0.065554587909338075
+ 0.065557377961532562
+ 0.065560168046681619
+ 0.065562958164785301
+ 0.065565748315844066
+ 0.065568538499857901
+ 0.065571328716826957
+ 0.065574118966751527
+ 0.065576909249631915
+ 0.065579699565468177
+ 0.065582489914260522
+ 0.065585280296009088
+ 0.065588070710714319
+ 0.065590861158376063
+ 0.065593651638994777
+ 0.06559644215257053
+ 0.065599232699103657
+ 0.065602023278594254
+ 0.065604813891042529
+ 0.065607604536448719
+ 0.065610395214812892
+ 0.065613185926135423
+ 0.065615976670416437
+ 0.065618767447656198
+ 0.065621558257854776
+ 0.065624349101012502
+ 0.065627139977129448
+ 0.065629930886205945
+ 0.065632721828242077
+ 0.06563551280323815
+ 0.065638303811194287
+ 0.065641094852110796
+ 0.065643885925987758
+ 0.065646677032825451
+ 0.065649468172624056
+ 0.065652259345383768
+ 0.065655050551104821
+ 0.065657841789787355
+ 0.065660633061431689
+ 0.065663424366037948
+ 0.065666215703606284
+ 0.06566900707413699
+ 0.065671798477630244
+ 0.065674589914086298
+ 0.065677381383505248
+ 0.065680172885887483
+ 0.065682964421232878
+ 0.065685755989542058
+ 0.065688547590814939
+ 0.065691339225051909
+ 0.065694130892252997
+ 0.065696922592418522
+ 0.065699714325548608
+ 0.065702506091643603
+ 0.065705297890703604
+ 0.06570808972272886
+ 0.065710881587719594
+ 0.065713673485676027
+ 0.065716465416598313
+ 0.065719257380486618
+ 0.065722049377341232
+ 0.06572484140716249
+ 0.065727633469950336
+ 0.065730425565705117
+ 0.065733217694427054
+ 0.06573600985611644
+ 0.065738802050773301
+ 0.065741594278397888
+ 0.065744386538990549
+ 0.06574717883255142
+ 0.065749971159080656
+ 0.065752763518578561
+ 0.065755555911045288
+ 0.065758348336481115
+ 0.065761140794886208
+ 0.065763933286260706
+ 0.06576672581060497
+ 0.065769518367919139
+ 0.065772310958203489
+ 0.065775103581458091
+ 0.065777896237683334
+ 0.065780688926879299
+ 0.065783481649046252
+ 0.065786274404184455
+ 0.065789067192294076
+ 0.065791860013375308
+ 0.065794652867428416
+ 0.065797445754453621
+ 0.065800238674451117
+ 0.065803031627421182
+ 0.065805824613363845
+ 0.065808617632279576
+ 0.065811410684168417
+ 0.065814203769030688
+ 0.065816996886866541
+ 0.065819790037676254
+ 0.065822583221459924
+ 0.065825376438217939
+ 0.065828169687950466
+ 0.06583096297065763
+ 0.065833756286339792
+ 0.065836549634997091
+ 0.065839343016629706
+ 0.065842136431237971
+ 0.065844929878822026
+ 0.065847723359382146
+ 0.065850516872918471
+ 0.065853310419431377
+ 0.065856103998920945
+ 0.065858897611387371
+ 0.065861691256831001
+ 0.06586448493525203
+ 0.065867278646650637
+ 0.065870072391027046
+ 0.065872866168381547
+ 0.065875659978714307
+ 0.065878453822025548
+ 0.065881247698315659
+ 0.06588404160758457
+ 0.065886835549832684
+ 0.065889629525060195
+ 0.065892423533267311
+ 0.065895217574454337
+ 0.065898011648621455
+ 0.065900805755768829
+ 0.065903599895896753
+ 0.065906394069005503
+ 0.06590918827509519
+ 0.06591198251416612
+ 0.065914776786218487
+ 0.065917571091252555
+ 0.065920365429268574
+ 0.06592315980026657
+ 0.065925954204247073
+ 0.065928748641210094
+ 0.065931543111156038
+ 0.065934337614084973
+ 0.065937132149997163
+ 0.065939926718892941
+ 0.065942721320772502
+ 0.065945515955635997
+ 0.065948310623483664
+ 0.065951105324315792
+ 0.065953900058132592
+ 0.065956694824934381
+ 0.065959489624721215
+ 0.065962284457493442
+ 0.065965079323251324
+ 0.065967874221995029
+ 0.065970669153724792
+ 0.065973464118440892
+ 0.065976259116143479
+ 0.065979054146832861
+ 0.065981849210509314
+ 0.06598464430717299
+ 0.065987439436824141
+ 0.065990234599463043
+ 0.065993029795089891
+ 0.065995825023704907
+ 0.06599862028530834
+ 0.066001415579900385
+ 0.066004210907481403
+ 0.06600700626805163
+ 0.066009801661611078
+ 0.066012597088160277
+ 0.066015392547699323
+ 0.066018188040228395
+ 0.066020983565747732
+ 0.06602377912425772
+ 0.066026574715758499
+ 0.06602937034025029
+ 0.066032165997733441
+ 0.066034961688208091
+ 0.066037757411674503
+ 0.066040553168132898
+ 0.066043348957583556
+ 0.066046144780026683
+ 0.06604894063546253
+ 0.066051736523891347
+ 0.066054532445313396
+ 0.066057328399728873
+ 0.066060124387138069
+ 0.066062920407541165
+ 0.066065716460938437
+ 0.066068512547330219
+ 0.066071308666716649
+ 0.066074104819097895
+ 0.066076901004474331
+ 0.066079697222846207
+ 0.066082493474213633
+ 0.066085289758577054
+ 0.066088086075936567
+ 0.066090882426292394
+ 0.066093678809644951
+ 0.066096475225994225
+ 0.06609927167534066
+ 0.06610206815768456
+ 0.066104864673025968
+ 0.066107661221365285
+ 0.066110457802702596
+ 0.066113254417038358
+ 0.066116051064372683
+ 0.066118847744705847
+ 0.066121644458038045
+ 0.066124441204369597
+ 0.06612723798370071
+ 0.066130034796031675
+ 0.066132831641362758
+ 0.066135628519694192
+ 0.06613842543102616
+ 0.066141222375358966
+ 0.06614401935269279
+ 0.066146816363028049
+ 0.066149613406364827
+ 0.066152410482703428
+ 0.066155207592044157
+ 0.066158004734387141
+ 0.066160801909732739
+ 0.066163599118081159
+ 0.066166396359432736
+ 0.066169193633787649
+ 0.066171990941146092
+ 0.066174788281508301
+ 0.066177585654874777
+ 0.06618038306124556
+ 0.066183180500620928
+ 0.066185977973001145
+ 0.066188775478386488
+ 0.066191573016777111
+ 0.066194370588173471
+ 0.066197168192575706
+ 0.066199965829984053
+ 0.06620276350039872
+ 0.066205561203820096
+ 0.066208358940248388
+ 0.066211156709683805
+ 0.06621395451212661
+ 0.06621675234757711
+ 0.066219550216035525
+ 0.066222348117502161
+ 0.066225146051977157
+ 0.066227944019460847
+ 0.066230742019953631
+ 0.066233540053455497
+ 0.066236338119966931
+ 0.066239136219488071
+ 0.066241934352019097
+ 0.066244732517560495
+ 0.066247530716112349
+ 0.066250328947675005
+ 0.066253127212248672
+ 0.06625592550983353
+ 0.066258723840430037
+ 0.066261522204038456
+ 0.06626432060065876
+ 0.066267119030291449
+ 0.0662699174929368
+ 0.066272715988594938
+ 0.066275514517266265
+ 0.066278313078950921
+ 0.066281111673649237
+ 0.066283910301361423
+ 0.066286708962087854
+ 0.066289507655828597
+ 0.066292306382584182
+ 0.066295105142354663
+ 0.066297903935140373
+ 0.066300702760941521
+ 0.066303501619758509
+ 0.06630630051159149
+ 0.066309099436440699
+ 0.066311898394306526
+ 0.066314697385189109
+ 0.066317496409088822
+ 0.066320295466005902
+ 0.066323094555940543
+ 0.066325893678893105
+ 0.066328692834863826
+ 0.066331492023853036
+ 0.06633429124586071
+ 0.066337090500887527
+ 0.066339889788933459
+ 0.066342689109998965
+ 0.066345488464084154
+ 0.066348287851189403
+ 0.066351087271314946
+ 0.066353886724461048
+ 0.06635668621062793
+ 0.066359485729816023
+ 0.066362285282025466
+ 0.066365084867256549
+ 0.066367884485509482
+ 0.066370684136784638
+ 0.066373483821082255
+ 0.066376283538402664
+ 0.066379083288746032
+ 0.066381883072112555
+ 0.066384682888502813
+ 0.066387482737916809
+ 0.066390282620354915
+ 0.066393082535817313
+ 0.066395882484304364
+ 0.066398682465816372
+ 0.066401482480353574
+ 0.06640428252791622
+ 0.066407082608504545
+ 0.066409882722118951
+ 0.066412682868759537
+ 0.066415483048426815
+ 0.06641828326112087
+ 0.066421083506842019
+ 0.066423883785590582
+ 0.066426684097366767
+ 0.066429484442170908
+ 0.066432284820003282
+ 0.066435085230864124
+ 0.066437885674753672
+ 0.06644068615167234
+ 0.066443486661620338
+ 0.066446287204597929
+ 0.066449087780605362
+ 0.066451888389643041
+ 0.066454689031711089
+ 0.066457489706809897
+ 0.06646029041493963
+ 0.066463091156100662
+ 0.0664658919302933
+ 0.066468692737517723
+ 0.066471493577774141
+ 0.066474294451063121
+ 0.066477095357384774
+ 0.066479896296739352
+ 0.066482697269127145
+ 0.066485498274548457
+ 0.066488299313003582
+ 0.066491100384492768
+ 0.066493901489016419
+ 0.066496702626574589
+ 0.066499503797167792
+ 0.066502305000796152
+ 0.066505106237460046
+ 0.066507907507159611
+ 0.066510708809895347
+ 0.066513510145667448
+ 0.066516311514476179
+ 0.066519112916321788
+ 0.066521914351204608
+ 0.066524715819124933
+ 0.066527517320083052
+ 0.066530318854079173
+ 0.066533120421113673
+ 0.066535922021186772
+ 0.066538723654298859
+ 0.066541525320450143
+ 0.066544327019640817
+ 0.066547128751871312
+ 0.066549930517141948
+ 0.066552732315452903
+ 0.066555534146804471
+ 0.066558336011197053
+ 0.06656113790863076
+ 0.066563939839106009
+ 0.066566741802623106
+ 0.066569543799182201
+ 0.066572345828783686
+ 0.066575147891427933
+ 0.06657794998711504
+ 0.066580752115845437
+ 0.066583554277619361
+ 0.066586356472437047
+ 0.066589158700298981
+ 0.06659196096120526
+ 0.066594763255156314
+ 0.066597565582152254
+ 0.066600367942193484
+ 0.066603170335280348
+ 0.066605972761413099
+ 0.066608775220591929
+ 0.066611577712817296
+ 0.066614380238089368
+ 0.066617182796408519
+ 0.066619985387774999
+ 0.066622788012189113
+ 0.066625590669651222
+ 0.066628393360161436
+ 0.066631196083720229
+ 0.066633998840327793
+ 0.066636801629984574
+ 0.066639604452690626
+ 0.06664240730844645
+ 0.066645210197252253
+ 0.066648013119108396
+ 0.06665081607401506
+ 0.066653619061972591
+ 0.066656422082981392
+ 0.066659225137041658
+ 0.066662028224153694
+ 0.066664831344317735
+ 0.066667634497534295
+ 0.066670437683803402
+ 0.066673240903125486
+ 0.066676044155500935
+ 0.066678847440929917
+ 0.066681650759412792
+ 0.066684454110949851
+ 0.066687257495541261
+ 0.066690060913187563
+ 0.066692864363888854
+ 0.066695667847645537
+ 0.066698471364457959
+ 0.066701274914326286
+ 0.066704078497250963
+ 0.066706882113232183
+ 0.066709685762270307
+ 0.066712489444365655
+ 0.066715293159518352
+ 0.066718096907728994
+ 0.066720900688997636
+ 0.066723704503324627
+ 0.066726508350710451
+ 0.06672931223115515
+ 0.066732116144659223
+ 0.066734920091223005
+ 0.066737724070846549
+ 0.06674052808353044
+ 0.066743332129274746
+ 0.066746136208079995
+ 0.066748940319946326
+ 0.066751744464874155
+ 0.06675454864286362
+ 0.066757352853915222
+ 0.066760157098029155
+ 0.066762961375205807
+ 0.066765765685445413
+ 0.066768570028748336
+ 0.066771374405114867
+ 0.066774178814545268
+ 0.066776983257039846
+ 0.066779787732598975
+ 0.066782592241222974
+ 0.066785396782912093
+ 0.066788201357666652
+ 0.066791005965486983
+ 0.066793810606373349
+ 0.066796615280326085
+ 0.066799419987345565
+ 0.066802224727431997
+ 0.066805029500585783
+ 0.06680783430680716
+ 0.066810639146096459
+ 0.066813444018454002
+ 0.066816248923880134
+ 0.066819053862375077
+ 0.066821858833939277
+ 0.066824663838572967
+ 0.066827468876276414
+ 0.066830273947050031
+ 0.066833079050894098
+ 0.066835884187808864
+ 0.066838689357794648
+ 0.066841494560851866
+ 0.066844299796980797
+ 0.066847105066181592
+ 0.066849910368454946
+ 0.066852715703800761
+ 0.066855521072219606
+ 0.066858326473711635
+ 0.066861131908277319
+ 0.066863937375916865
+ 0.066866742876630636
+ 0.066869548410418964
+ 0.06687235397728214
+ 0.066875159577220483
+ 0.066877965210234258
+ 0.066880770876323908
+ 0.066883576575489656
+ 0.066886382307731876
+ 0.066889188073050762
+ 0.066891993871446717
+ 0.066894799702920144
+ 0.066897605567471277
+ 0.066900411465100437
+ 0.066903217395807957
+ 0.066906023359594155
+ 0.066908829356459337
+ 0.066911635386403864
+ 0.066914441449427944
+ 0.066917247545532077
+ 0.066920053674716429
+ 0.066922859836981458
+ 0.066925666032327372
+ 0.066928472260754462
+ 0.066931278522263216
+ 0.066934084816853812
+ 0.06693689114452657
+ 0.066939697505281948
+ 0.066942503899120223
+ 0.066945310326041563
+ 0.066948116786046508
+ 0.066950923279135294
+ 0.066953729805308171
+ 0.066956536364565541
+ 0.066959342956907725
+ 0.066962149582335054
+ 0.06696495624084782
+ 0.066967762932446356
+ 0.066970569657131024
+ 0.066973376414902169
+ 0.066976183205759973
+ 0.066978990029704935
+ 0.06698179688673736
+ 0.066984603776857429
+ 0.066987410700065642
+ 0.066990217656362233
+ 0.066993024645747537
+ 0.066995831668221928
+ 0.066998638723785614
+ 0.06700144581243915
+ 0.067004252934182648
+ 0.067007060089016496
+ 0.067009867276941179
+ 0.067012674497956753
+ 0.067015481752063705
+ 0.067018289039262394
+ 0.067021096359553042
+ 0.067023903712936053
+ 0.067026711099411759
+ 0.067029518518980494
+ 0.067032325971642576
+ 0.067035133457398421
+ 0.067037940976248114
+ 0.067040748528192237
+ 0.067043556113231026
+ 0.067046363731364869
+ 0.067049171382593975
+ 0.067051979066918843
+ 0.067054786784339626
+ 0.067057594534856782
+ 0.067060402318470644
+ 0.067063210135181531
+ 0.06706601798498979
+ 0.067068825867895671
+ 0.06707163378389959
+ 0.067074441733001783
+ 0.067077249715202764
+ 0.06708005773050274
+ 0.067082865778902032
+ 0.067085673860401054
+ 0.067088481975000142
+ 0.067091290122699598
+ 0.067094098303499744
+ 0.067096906517400939
+ 0.067099714764403504
+ 0.067102523044507811
+ 0.067105331357714126
+ 0.067108139704022921
+ 0.067110948083434457
+ 0.067113756495949015
+ 0.067116564941566953
+ 0.067119373420288689
+ 0.067122181932114555
+ 0.067124990477044788
+ 0.067127799055079804
+ 0.067130607666220005
+ 0.067133416310465571
+ 0.067136224987816989
+ 0.067139033698274536
+ 0.067141842441838614
+ 0.067144651218509446
+ 0.067147460028287434
+ 0.067150268871172994
+ 0.06715307774716639
+ 0.067155886656267996
+ 0.067158695598478022
+ 0.067161504573797076
+ 0.067164313582225285
+ 0.067167122623763051
+ 0.06716993169841072
+ 0.067172740806168654
+ 0.067175549947037214
+ 0.067178359121016648
+ 0.06718116832810743
+ 0.067183977568309905
+ 0.067186786841624296
+ 0.067189596148051006
+ 0.067192405487590381
+ 0.067195214860242811
+ 0.067198024266008571
+ 0.067200833704887997
+ 0.067203643176881614
+ 0.067206452681989493
+ 0.067209262220212257
+ 0.06721207179155006
+ 0.067214881396003318
+ 0.067217691033572405
+ 0.067220500704257655
+ 0.067223310408059359
+ 0.067226120144977877
+ 0.067228929915013697
+ 0.067231739718166969
+ 0.067234549554438194
+ 0.067237359423827636
+ 0.067240169326335669
+ 0.067242979261962668
+ 0.06724578923070898
+ 0.067248599232574854
+ 0.067251409267560902
+ 0.067254219335667081
+ 0.067257029436894114
+ 0.06725983957124218
+ 0.067262649738711683
+ 0.067265459939302955
+ 0.067268270173016259
+ 0.067271080439852124
+ 0.067273890739810743
+ 0.067276701072892547
+ 0.067279511439097855
+ 0.06728232183842707
+ 0.067285132270880538
+ 0.067287942736458606
+ 0.067290753235161579
+ 0.06729356376699
+ 0.067296374331943964
+ 0.067299184930023986
+ 0.067301995561230302
+ 0.067304806225563382
+ 0.067307616923023589
+ 0.067310427653611171
+ 0.067313238417326629
+ 0.067316049214170295
+ 0.067318860044142323
+ 0.067321670907243308
+ 0.067324481803473418
+ 0.067327292732833291
+ 0.067330103695323024
+ 0.06733291469094306
+ 0.06733572571969379
+ 0.067338536781575517
+ 0.067341347876588561
+ 0.067344159004733423
+ 0.067346970166010378
+ 0.067349781360419844
+ 0.067352592587962057
+ 0.067355403848637529
+ 0.067358215142446498
+ 0.067361026469389421
+ 0.067363837829466519
+ 0.067366649222678349
+ 0.067369460649025131
+ 0.067372272108507256
+ 0.067375083601125138
+ 0.067377895126879139
+ 0.067380706685769481
+ 0.06738351827779665
+ 0.067386329902961034
+ 0.06738914156126298
+ 0.067391953252702697
+ 0.067394764977280835
+ 0.06739757673499755
+ 0.067400388525853228
+ 0.0674032003498483
+ 0.06740601220698314
+ 0.06740882409725793
+ 0.067411636020673238
+ 0.067414447977229452
+ 0.067417259966926754
+ 0.06742007198976567
+ 0.067422884045746534
+ 0.067425696134869623
+ 0.067428508257135422
+ 0.06743132041254421
+ 0.067434132601096389
+ 0.067436944822792333
+ 0.067439757077632417
+ 0.067442569365617017
+ 0.067445381686746478
+ 0.067448194041021106
+ 0.067451006428441443
+ 0.067453818849007738
+ 0.067456631302720324
+ 0.067459443789579659
+ 0.067462256309586105
+ 0.06746506886273998
+ 0.0674678814490417
+ 0.067470694068491682
+ 0.067473506721090135
+ 0.067476319406837543
+ 0.067479132125734309
+ 0.067481944877780697
+ 0.067484757662977235
+ 0.067487570481324186
+ 0.06749038333282191
+ 0.067493196217470769
+ 0.06749600913527129
+ 0.067498822086223598
+ 0.067501635070328317
+ 0.067504448087585725
+ 0.067507261137996155
+ 0.06751007422156001
+ 0.067512887338277677
+ 0.067515700488149491
+ 0.067518513671175784
+ 0.067521326887357097
+ 0.067524140136693736
+ 0.067526953419185992
+ 0.067529766734834351
+ 0.067532580083639104
+ 0.067535393465600654
+ 0.067538206880719445
+ 0.067541020328995824
+ 0.067543833810430026
+ 0.067546647325022705
+ 0.067549460872773942
+ 0.06755227445368428
+ 0.067555088067754121
+ 0.067557901714983784
+ 0.067560715395373699
+ 0.067563529108924172
+ 0.06756634285563555
+ 0.067569156635508332
+ 0.067571970448542906
+ 0.067574784294739496
+ 0.067577598174098696
+ 0.067580412086620703
+ 0.067583226032305946
+ 0.067586040011154896
+ 0.067588854023167833
+ 0.067591668068345198
+ 0.067594482146687243
+ 0.067597296258194564
+ 0.067600110402867425
+ 0.067602924580706256
+ 0.067605738791711306
+ 0.067608553035883104
+ 0.06761136731322194
+ 0.067614181623728356
+ 0.067616995967402574
+ 0.067619810344244982
+ 0.067622624754256039
+ 0.067625439197436188
+ 0.067628253673785596
+ 0.06763106818330486
+ 0.06763388272599434
+ 0.067636697301854287
+ 0.067639511910885214
+ 0.06764232655308744
+ 0.067645141228461381
+ 0.067647955937007453
+ 0.067650770678725949
+ 0.067653585453617354
+ 0.067656400261682015
+ 0.067659215102920334
+ 0.06766202997733263
+ 0.067664844884919514
+ 0.067667659825681098
+ 0.067670474799617839
+ 0.067673289806730277
+ 0.067676104847018692
+ 0.067678919920483416
+ 0.067681735027124934
+ 0.067684550166943636
+ 0.067687365339939853
+ 0.067690180546114045
+ 0.067692995785466489
+ 0.06769581105799774
+ 0.067698626363707978
+ 0.0677014417025978
+ 0.067704257074667526
+ 0.067707072479917488
+ 0.067709887918348116
+ 0.06771270338995998
+ 0.067715518894753135
+ 0.067718334432728275
+ 0.067721150003885552
+ 0.06772396560822555
+ 0.067726781245748532
+ 0.067729596916454984
+ 0.067732412620345267
+ 0.067735228357419769
+ 0.067738044127678892
+ 0.067740859931123068
+ 0.067743675767752601
+ 0.067746491637568004
+ 0.067749307540569528
+ 0.067752123476757659
+ 0.067754939446132811
+ 0.067757755448695486
+ 0.067760571484445767
+ 0.067763387553384333
+ 0.06776620365551142
+ 0.06776901979082757
+ 0.067771835959333046
+ 0.067774652161028293
+ 0.067777468395913726
+ 0.067780284663989818
+ 0.067783100965256762
+ 0.06778591729971517
+ 0.067788733667365292
+ 0.067791550068207654
+ 0.067794366502242562
+ 0.06779718296947046
+ 0.067799999469891695
+ 0.06780281600350678
+ 0.067805632570315966
+ 0.067808449170319793
+ 0.067811265803518497
+ 0.067814082469912745
+ 0.067816899169502662
+ 0.067819715902288816
+ 0.06782253266827154
+ 0.067825349467451279
+ 0.067828166299828407
+ 0.067830983165403397
+ 0.067833800064176469
+ 0.067836616996148263
+ 0.067839433961319084
+ 0.067842250959689224
+ 0.067845067991259209
+ 0.067847885056029428
+ 0.067850702154000367
+ 0.067853519285172234
+ 0.067856336449545626
+ 0.067859153647120876
+ 0.067861970877898276
+ 0.067864788141878435
+ 0.067867605439061673
+ 0.067870422769448269
+ 0.06787324013303879
+ 0.067876057529833708
+ 0.067878874959833232
+ 0.067881692423037876
+ 0.067884509919448111
+ 0.067887327449064158
+ 0.067890145011886532
+ 0.067892962607915761
+ 0.067895780237152092
+ 0.067898597899595903
+ 0.067901415595247816
+ 0.067904233324108054
+ 0.067907051086177034
+ 0.067909868881455296
+ 0.067912686709943104
+ 0.067915504571641014
+ 0.067918322466549261
+ 0.067921140394668372
+ 0.067923958355998737
+ 0.067926776350540841
+ 0.067929594378294988
+ 0.067932412439261555
+ 0.06793523053344111
+ 0.067938048660833986
+ 0.067940866821440613
+ 0.067943685015261338
+ 0.06794650324229666
+ 0.067949321502546914
+ 0.06795213979601257
+ 0.067954958122694017
+ 0.0679577764825917
+ 0.067960594875706021
+ 0.067963413302037354
+ 0.067966231761586185
+ 0.067969050254352861
+ 0.067971868780337827
+ 0.067974687339541637
+ 0.067977505931964444
+ 0.067980324557606747
+ 0.067983143216469116
+ 0.06798596190855187
+ 0.067988780633855384
+ 0.067991599392380059
+ 0.067994418184126437
+ 0.067997237009094838
+ 0.068000055867285636
+ 0.068002874758699428
+ 0.068005693683336546
+ 0.068008512641197338
+ 0.068011331632282263
+ 0.068014150656591679
+ 0.068016969714126199
+ 0.068019788804886086
+ 0.06802260792887177
+ 0.068025427086083737
+ 0.068028246276522292
+ 0.068031065500187962
+ 0.068033884757081303
+ 0.068036704047202384
+ 0.068039523370551816
+ 0.06804234272713014
+ 0.068045162116937619
+ 0.068047981539974628
+ 0.068050800996241834
+ 0.06805362048573943
+ 0.068056440008467875
+ 0.068059259564427696
+ 0.068062079153619226
+ 0.068064898776042868
+ 0.068067718431699176
+ 0.068070538120588456
+ 0.068073357842711166
+ 0.068076177598067764
+ 0.068078997386658666
+ 0.068081817208484219
+ 0.068084637063544923
+ 0.068087456951841305
+ 0.068090276873373531
+ 0.068093096828142158
+ 0.068095916816147753
+ 0.068098736837390525
+ 0.068101556891871057
+ 0.068104376979589654
+ 0.068107197100546843
+ 0.068110017254742986
+ 0.068112837442178636
+ 0.068115657662854004
+ 0.068118477916769671
+ 0.06812129820392604
+ 0.06812411852432354
+ 0.068126938877962645
+ 0.068129759264843631
+ 0.068132579684967123
+ 0.068135400138333441
+ 0.068138220624943027
+ 0.068141041144796369
+ 0.068143861697893812
+ 0.068146682284235829
+ 0.06814950290382274
+ 0.068152323556655223
+ 0.068155144242733529
+ 0.068157964962058157
+ 0.068160785714629524
+ 0.068163606500448018
+ 0.068166427319514125
+ 0.068169248171828289
+ 0.068172069057390844
+ 0.068174889976202385
+ 0.068177710928263205
+ 0.068180531913573747
+ 0.068183352932134608
+ 0.068186173983946066
+ 0.068188995069008537
+ 0.068191816187322618
+ 0.068194637338888545
+ 0.068197458523706872
+ 0.068200279741778003
+ 0.068203100993102478
+ 0.06820592227768052
+ 0.068208743595512808
+ 0.068211564946599551
+ 0.068214386330941332
+ 0.068217207748538594
+ 0.068220029199391616
+ 0.068222850683501118
+ 0.068225672200867199
+ 0.068228493751490607
+ 0.068231315335371565
+ 0.068234136952510627
+ 0.068236958602908085
+ 0.068239780286564675
+ 0.068242602003480521
+ 0.068245423753656262
+ 0.068248245537092245
+ 0.068251067353788913
+ 0.06825388920374674
+ 0.068256711086966182
+ 0.068259533003447739
+ 0.068262354953191606
+ 0.068265176936198463
+ 0.068267998952468614
+ 0.068270821002002643
+ 0.068273643084800925
+ 0.068276465200863834
+ 0.068279287350191911
+ 0.068282109532785532
+ 0.068284931748645153
+ 0.068287753997771261
+ 0.0682905762801643
+ 0.068293398595824575
+ 0.068296220944752697
+ 0.06829904332694911
+ 0.068301865742414147
+ 0.068304688191148405
+ 0.068307510673152161
+ 0.068310333188425915
+ 0.068313155736970207
+ 0.068315978318785317
+ 0.068318800933871784
+ 0.068321623582230165
+ 0.068324446263860708
+ 0.068327268978763928
+ 0.068330091726940378
+ 0.068332914508390338
+ 0.068335737323114404
+ 0.068338560171112936
+ 0.068341383052386365
+ 0.068344205966935204
+ 0.068347028914759966
+ 0.068349851895860902
+ 0.068352674910238637
+ 0.06835549795789353
+ 0.068358321038826025
+ 0.068361144153036624
+ 0.068363967300525796
+ 0.068366790481293904
+ 0.068369613695341544
+ 0.068372436942668965
+ 0.068375260223276779
+ 0.068378083537165346
+ 0.068380906884335194
+ 0.068383730264786696
+ 0.06838655367852034
+ 0.068389377125536707
+ 0.068392200605835993
+ 0.068395024119418793
+ 0.068397847666285636
+ 0.068400671246436839
+ 0.068403494859872974
+ 0.068406318506594371
+ 0.068409142186601574
+ 0.068411965899894997
+ 0.068414789646475113
+ 0.068417613426342352
+ 0.068420437239497173
+ 0.068423261085940074
+ 0.068426084965671416
+ 0.068428908878691769
+ 0.068431732825001576
+ 0.068434556804601254
+ 0.068437380817491275
+ 0.068440204863672041
+ 0.068443028943144135
+ 0.068445853055907904
+ 0.068448677201963765
+ 0.068451501381312313
+ 0.068454325593953938
+ 0.068457149839889153
+ 0.068459974119118347
+ 0.068462798431641936
+ 0.068465622777460489
+ 0.068468447156574394
+ 0.068471271568984082
+ 0.068474096014690178
+ 0.068476920493692986
+ 0.068479745005993076
+ 0.068482569551590752
+ 0.06848539413048664
+ 0.068488218742681045
+ 0.068491043388174577
+ 0.068493868066967625
+ 0.068496692779060703
+ 0.068499517524454157
+ 0.068502342303148625
+ 0.068505167115144372
+ 0.068507991960441939
+ 0.068510816839041797
+ 0.06851364175094446
+ 0.068516466696150413
+ 0.068519291674660018
+ 0.068522116686473789
+ 0.068524941731592223
+ 0.068527766810015669
+ 0.068530591921744724
+ 0.068533417066779762
+ 0.068536242245121282
+ 0.068539067456769756
+ 0.068541892701725601
+ 0.0685447179799894
+ 0.068547543291561527
+ 0.068550368636442469
+ 0.068553194014632682
+ 0.068556019426132625
+ 0.068558844870942798
+ 0.0685616703490637
+ 0.068564495860495733
+ 0.068567321405239398
+ 0.06857014698329511
+ 0.06857297259466337
+ 0.068575798239344732
+ 0.068578623917339529
+ 0.068581449628648344
+ 0.068584275373271608
+ 0.068587101151209695
+ 0.068589926962463202
+ 0.068592752807032531
+ 0.068595578684918224
+ 0.068598404596120627
+ 0.068601230540640337
+ 0.068604056518477799
+ 0.068606882529633428
+ 0.068609708574107808
+ 0.068612534651901244
+ 0.068615360763014346
+ 0.068618186907447504
+ 0.068621013085201257
+ 0.068623839296276037
+ 0.068626665540672302
+ 0.068629491818390606
+ 0.068632318129431394
+ 0.068635144473795068
+ 0.068637970851482169
+ 0.0686407972624931
+ 0.068643623706828499
+ 0.068646450184488603
+ 0.068649276695474049
+ 0.068652103239785309
+ 0.0686549298174228
+ 0.068657756428387048
+ 0.068660583072678499
+ 0.068663409750297624
+ 0.068666236461245006
+ 0.068669063205520936
+ 0.068671889983125983
+ 0.068674716794060717
+ 0.068677543638325497
+ 0.068680370515920769
+ 0.068683197426847031
+ 0.068686024371104937
+ 0.068688851348694777
+ 0.06869167835961705
+ 0.068694505403872327
+ 0.068697332481460996
+ 0.068700159592383597
+ 0.06870298673664052
+ 0.068705813914232403
+ 0.068708641125159606
+ 0.068711468369422643
+ 0.068714295647021972
+ 0.068717122957958107
+ 0.068719950302231506
+ 0.068722777679842639
+ 0.068725605090792036
+ 0.068728432535080153
+ 0.068731260012707546
+ 0.068734087523674547
+ 0.068736915067981685
+ 0.068739742645629556
+ 0.068742570256618438
+ 0.06874539790094901
+ 0.068748225578621716
+ 0.068751053289636904
+ 0.068753881033995309
+ 0.068756708811697223
+ 0.068759536622743075
+ 0.068762364467133547
+ 0.068765192344869025
+ 0.068768020255950038
+ 0.068770848200376988
+ 0.068773676178150306
+ 0.068776504189270754
+ 0.068779332233738569
+ 0.068782160311554305
+ 0.06878498842271849
+ 0.068787816567231583
+ 0.068790644745094026
+ 0.068793472956306431
+ 0.068796301200869145
+ 0.068799129478782597
+ 0.068801957790047538
+ 0.0688047861346643
+ 0.068807614512633342
+ 0.068810442923955217
+ 0.068813271368630427
+ 0.068816099846659456
+ 0.068818928358042639
+ 0.068821756902780667
+ 0.068824585480873987
+ 0.068827414092323083
+ 0.068830242737128317
+ 0.068833071415290367
+ 0.068835900126809596
+ 0.068838728871686655
+ 0.068841557649921808
+ 0.068844386461515666
+ 0.068847215306468826
+ 0.06885004418478155
+ 0.068852873096454589
+ 0.068855702041488206
+ 0.06885853101988304
+ 0.068861360031639535
+ 0.06886418907675812
+ 0.068867018155239462
+ 0.068869847267083881
+ 0.068872676412291903
+ 0.068875505590864125
+ 0.068878334802800964
+ 0.068881164048102933
+ 0.068883993326770546
+ 0.068886822638804288
+ 0.068889651984204575
+ 0.068892481362972088
+ 0.068895310775107063
+ 0.068898140220610249
+ 0.068900969699481951
+ 0.06890379921172278
+ 0.068906628757333305
+ 0.068909458336313886
+ 0.068912287948665024
+ 0.068915117594387176
+ 0.068917947273480995
+ 0.068920776985946897
+ 0.06892360673178545
+ 0.068926436510997016
+ 0.06892926632358222
+ 0.06893209616954149
+ 0.068934926048875356
+ 0.068937755961584302
+ 0.068940585907668897
+ 0.068943415887129517
+ 0.068946245899966729
+ 0.068949075946181021
+ 0.068951906025772919
+ 0.068954736138742923
+ 0.068957566285091518
+ 0.068960396464819274
+ 0.068963226677926467
+ 0.068966056924413946
+ 0.068968887204281945
+ 0.068971717517531089
+ 0.068974547864161767
+ 0.0689773782441747
+ 0.06898020865757018
+ 0.068983039104348789
+ 0.06898586958451107
+ 0.068988700098057534
+ 0.068991530644988516
+ 0.068994361225304696
+ 0.068997191839006503
+ 0.069000022486094534
+ 0.069002853166569234
+ 0.069005683880431032
+ 0.069008514627680567
+ 0.069011345408318159
+ 0.069014176222344611
+ 0.069017007069760217
+ 0.069019837950565502
+ 0.069022668864761036
+ 0.069025499812347207
+ 0.069028330793324641
+ 0.069031161807693905
+ 0.069033992855455292
+ 0.069036823936609593
+ 0.069039655051157042
+ 0.069042486199098266
+ 0.069045317380433763
+ 0.069048148595164116
+ 0.069050979843289728
+ 0.069053811124811196
+ 0.069056642439728935
+ 0.069059473788043571
+ 0.06906230516975552
+ 0.06906513658486535
+ 0.069067968033373506
+ 0.069070799515280543
+ 0.069073631030587029
+ 0.069076462579293368
+ 0.069079294161400157
+ 0.069082125776907893
+ 0.069084957425817092
+ 0.069087789108128142
+ 0.069090620823841764
+ 0.069093452572958361
+ 0.069096284355478432
+ 0.069099116171402561
+ 0.069101948020731177
+ 0.069104779903464905
+ 0.069107611819604065
+ 0.069110443769149335
+ 0.069113275752101272
+ 0.069116107768460319
+ 0.069118939818226907
+ 0.069121771901401674
+ 0.069124604017985064
+ 0.069127436167977618
+ 0.069130268351379878
+ 0.069133100568192413
+ 0.069135932818415596
+ 0.069138765102050012
+ 0.06914159741909616
+ 0.069144429769554719
+ 0.069147262153425954
+ 0.06915009457071053
+ 0.069152927021408961
+ 0.069155759505521705
+ 0.069158592023049387
+ 0.069161424573992339
+ 0.069164257158351283
+ 0.069167089776126719
+ 0.069169922427318994
+ 0.069172755111928733
+ 0.069175587829956572
+ 0.069178420581402778
+ 0.069181253366268167
+ 0.069184086184553073
+ 0.069186919036258052
+ 0.069189751921383616
+ 0.069192584839930238
+ 0.069195417791898597
+ 0.069198250777289125
+ 0.069201083796102292
+ 0.069203916848338737
+ 0.069206749933998862
+ 0.06920958305308321
+ 0.069212416205592431
+ 0.069215249391526901
+ 0.069218082610887244
+ 0.069220915863673918
+ 0.06922374914988752
+ 0.06922658246952848
+ 0.069229415822597409
+ 0.069232249209094793
+ 0.06923508262902113
+ 0.069237916082377018
+ 0.069240749569162985
+ 0.069243583089379432
+ 0.069246416643027012
+ 0.069249250230106196
+ 0.069252083850617541
+ 0.069254917504561572
+ 0.069257751191938818
+ 0.069260584912749737
+ 0.069263418666994939
+ 0.069266252454674923
+ 0.069269086275790259
+ 0.069271920130341419
+ 0.069274754018328957
+ 0.069277587939753374
+ 0.069280421894615252
+ 0.069283255882915118
+ 0.069286089904653458
+ 0.069288923959830717
+ 0.069291758048447588
+ 0.069294592170504682
+ 0.069297426326002304
+ 0.069300260514941092
+ 0.069303094737321477
+ 0.069305928993144181
+ 0.069308763282409563
+ 0.069311597605118277
+ 0.069314431961270739
+ 0.069317266350867601
+ 0.069320100773909307
+ 0.069322935230396454
+ 0.069325769720329472
+ 0.069328604243709083
+ 0.069331438800535619
+ 0.069334273390809706
+ 0.069337108014531926
+ 0.069339942671702751
+ 0.06934277736232268
+ 0.069345612086392353
+ 0.06934844684391217
+ 0.069351281634882841
+ 0.069354116459304727
+ 0.069356951317178464
+ 0.069359786208504581
+ 0.069362621133283647
+ 0.069365456091516162
+ 0.069368291083202527
+ 0.069371126108343478
+ 0.069373961166939557
+ 0.069376796258991152
+ 0.069379631384498819
+ 0.069382466543463236
+ 0.069385301735884919
+ 0.069388136961764255
+ 0.06939097222110191
+ 0.069393807513898453
+ 0.069396642840154218
+ 0.069399478199869954
+ 0.069402313593046161
+ 0.069405149019683365
+ 0.069407984479782053
+ 0.069410819973342808
+ 0.069413655500366211
+ 0.06941649106085275
+ 0.06941932665480291
+ 0.069422162282217398
+ 0.069424997943096631
+ 0.069427833637441164
+ 0.069430669365251649
+ 0.069433505126528419
+ 0.06943634092127221
+ 0.069439176749483425
+ 0.069442012611162715
+ 0.069444848506310566
+ 0.06944768443492752
+ 0.069450520397014215
+ 0.069453356392571053
+ 0.06945619242159877
+ 0.069459028484097615
+ 0.06946186458006845
+ 0.069464700709511523
+ 0.069467536872427599
+ 0.069470373068817259
+ 0.069473209298680824
+ 0.069476045562019001
+ 0.069478881858832345
+ 0.069481718189121272
+ 0.069484554552886463
+ 0.069487390950128444
+ 0.069490227380847758
+ 0.069493063845044792
+ 0.069495900342720338
+ 0.069498736873874881
+ 0.069501573438508879
+ 0.069504410036622943
+ 0.069507246668217615
+ 0.069510083333293435
+ 0.069512920031850944
+ 0.069515756763890657
+ 0.069518593529413253
+ 0.069521430328419162
+ 0.069524267160908967
+ 0.069527104026883266
+ 0.069529940926342501
+ 0.069532777859287381
+ 0.069535614825718392
+ 0.069538451825635991
+ 0.06954128885904079
+ 0.06954412592593337
+ 0.069546963026314287
+ 0.069549800160184028
+ 0.069552637327543215
+ 0.069555474528392447
+ 0.069558311762732083
+ 0.069561149030562847
+ 0.06956398633188525
+ 0.069566823666699876
+ 0.069569661035007266
+ 0.069572498436807906
+ 0.069575335872102378
+ 0.069578173340891378
+ 0.069581010843175223
+ 0.069583848378954608
+ 0.069586685948230143
+ 0.069589523551002216
+ 0.069592361187271523
+ 0.069595198857038604
+ 0.069598036560303916
+ 0.069600874297068183
+ 0.069603712067331791
+ 0.069606549871095436
+ 0.069609387708359588
+ 0.069612225579124859
+ 0.069615063483391665
+ 0.069617901421160824
+ 0.069620739392432643
+ 0.0696235773972078
+ 0.06962641543548688
+ 0.069629253507270408
+ 0.0696320916125589
+ 0.069634929751353006
+ 0.069637767923653227
+ 0.069640606129460103
+ 0.06964344436877426
+ 0.069646282641596211
+ 0.06964912094792651
+ 0.069651959287765769
+ 0.069654797661114501
+ 0.069657636067973247
+ 0.069660474508342674
+ 0.069663312982223294
+ 0.069666151489615566
+ 0.069668990030520211
+ 0.069671828604937688
+ 0.069674667212868607
+ 0.069677505854313565
+ 0.069680344529272978
+ 0.069683183237747554
+ 0.069686021979737903
+ 0.069688860755244303
+ 0.069691699564267656
+ 0.069694538406808365
+ 0.06969737728286704
+ 0.069700216192444209
+ 0.069703055135540412
+ 0.069705894112156344
+ 0.069708733122292463
+ 0.069711572165949365
+ 0.069714411243127425
+ 0.069717250353827628
+ 0.069720089498050183
+ 0.069722928675795867
+ 0.069725767887065096
+ 0.06972860713185855
+ 0.069731446410176659
+ 0.069734285722020145
+ 0.069737125067389438
+ 0.069739964446285246
+ 0.069742803858708138
+ 0.069745643304658544
+ 0.069748482784137103
+ 0.069751322297144425
+ 0.069754161843681051
+ 0.069757001423747592
+ 0.06975984103734445
+ 0.069762680684472445
+ 0.069765520365131922
+ 0.069768360079323646
+ 0.069771199827048005
+ 0.069774039608305749
+ 0.069776879423097363
+ 0.069779719271423277
+ 0.069782559153284268
+ 0.069785399068680878
+ 0.069788239017613662
+ 0.069791079000083217
+ 0.069793919016089945
+ 0.069796759065634636
+ 0.06979959914871782
+ 0.069802439265339994
+ 0.069805279415501659
+ 0.069808119599203688
+ 0.069810959816446416
+ 0.069813800067230342
+ 0.069816640351556297
+ 0.069819480669424713
+ 0.069822321020836187
+ 0.069825161405791217
+ 0.06982800182429047
+ 0.069830842276334515
+ 0.069833682761923949
+ 0.069836523281059396
+ 0.069839363833741161
+ 0.069842204419970161
+ 0.069845045039746825
+ 0.069847885693071682
+ 0.069850726379945396
+ 0.069853567100368455
+ 0.069856407854341551
+ 0.069859248641865213
+ 0.06986208946293998
+ 0.06986493031756652
+ 0.069867771205745222
+ 0.069870612127476958
+ 0.069873453082762077
+ 0.069876294071601286
+ 0.069879135093995084
+ 0.069881976149944056
+ 0.06988481723944881
+ 0.069887658362509944
+ 0.069890499519127985
+ 0.0698933407093036
+ 0.069896181933037344
+ 0.069899023190329715
+ 0.069901864481181408
+ 0.069904705805592965
+ 0.069907547163564884
+ 0.069910388555097874
+ 0.069913229980192448
+ 0.069916071438849273
+ 0.069918912931068763
+ 0.069921754456851726
+ 0.069924596016198548
+ 0.06992743760910991
+ 0.069930279235586368
+ 0.0699331208956286
+ 0.069935962589237038
+ 0.069938804316412376
+ 0.069941646077155098
+ 0.069944487871465955
+ 0.069947329699345334
+ 0.069950171560794083
+ 0.069953013455812452
+ 0.069955855384401341
+ 0.069958697346561113
+ 0.069961539342292461
+ 0.069964381371595913
+ 0.069967223434472245
+ 0.069970065530921818
+ 0.069972907660945313
+ 0.069975749824543299
+ 0.069978592021716329
+ 0.069981434252465058
+ 0.069984276516790095
+ 0.069987118814691968
+ 0.069989961146171259
+ 0.069992803511228607
+ 0.069995645909864637
+ 0.06999848834207982
+ 0.070001330807874823
+ 0.070004173307250311
+ 0.070007015840206688
+ 0.070009858406744618
+ 0.070012701006864811
+ 0.070015543640567723
+ 0.07001838630785405
+ 0.070021229008724359
+ 0.070024071743179025
+ 0.070026914511219049
+ 0.070029757312844679
+ 0.070032600148056678
+ 0.070035443016855561
+ 0.070038285919241966
+ 0.070041128855216489
+ 0.070043971824779672
+ 0.070046814827932249
+ 0.07004965786467468
+ 0.07005250093500752
+ 0.070055344038931461
+ 0.070058187176447129
+ 0.070061030347555051
+ 0.070063873552255851
+ 0.070066716790550043
+ 0.070069560062438391
+ 0.07007240336792131
+ 0.07007524670699955
+ 0.070078090079673652
+ 0.070080933485944172
+ 0.070083776925811761
+ 0.070086620399276947
+ 0.070089463906340396
+ 0.070092307447002677
+ 0.070095151021264512
+ 0.070097994629126248
+ 0.070100838270588647
+ 0.070103681945652335
+ 0.070106525654317756
+ 0.070109369396585797
+ 0.07011221317245668
+ 0.070115056981931295
+ 0.07011790082501014
+ 0.070120744701693785
+ 0.070123588611982896
+ 0.070126432555878068
+ 0.070129276533379942
+ 0.070132120544488974
+ 0.0701349645892059
+ 0.070137808667531193
+ 0.070140652779465629
+ 0.070143496925009638
+ 0.070146341104163984
+ 0.070149185316929152
+ 0.070152029563305823
+ 0.070154873843294524
+ 0.07015771815689581
+ 0.070160562504110541
+ 0.070163406884939064
+ 0.070166251299382087
+ 0.070169095747440194
+ 0.070171940229113994
+ 0.070174784744404112
+ 0.070177629293311117
+ 0.070180473875835564
+ 0.070183318491978314
+ 0.070186163141739658
+ 0.070189007825120289
+ 0.070191852542120917
+ 0.070194697292742109
+ 0.070197542076984434
+ 0.07020038689484849
+ 0.070203231746334929
+ 0.07020607663144432
+ 0.070208921550177369
+ 0.070211766502534551
+ 0.070214611488516557
+ 0.070217456508124013
+ 0.070220301561357376
+ 0.070223146648217452
+ 0.070225991768704699
+ 0.070228836922819823
+ 0.070231682110563437
+ 0.070234527331936109
+ 0.070237372586938365
+ 0.070240217875571054
+ 0.070243063197834521
+ 0.070245908553729544
+ 0.070248753943256761
+ 0.070251599366416617
+ 0.070254444823209819
+ 0.070257290313636991
+ 0.070260135837698759
+ 0.07026298139539576
+ 0.070265826986728425
+ 0.070268672611697586
+ 0.070271518270303743
+ 0.070274363962547576
+ 0.070277209688429584
+ 0.070280055447950546
+ 0.070282901241110862
+ 0.070285747067911408
+ 0.070288592928352642
+ 0.070291438822435062
+ 0.070294284750159572
+ 0.070297130711526615
+ 0.07029997670653676
+ 0.070302822735190756
+ 0.070305668797489118
+ 0.070308514893432469
+ 0.070311361023021463
+ 0.070314207186256708
+ 0.070317053383138886
+ 0.070319899613668566
+ 0.070322745877846232
+ 0.070325592175672663
+ 0.070328438507148483
+ 0.070331284872274233
+ 0.070334131271050537
+ 0.070336977703478049
+ 0.070339824169557391
+ 0.070342670669289134
+ 0.070345517202673971
+ 0.070348363769712541
+ 0.070351210370405301
+ 0.070354057004752973
+ 0.07035690367275621
+ 0.070359750374415581
+ 0.070362597109731778
+ 0.07036544387870533
+ 0.070368290681336917
+ 0.070371137517627191
+ 0.070373984387576638
+ 0.070376831291185965
+ 0.070379678228455908
+ 0.070382525199386856
+ 0.070385372203979613
+ 0.070388219242234706
+ 0.070391066314152942
+ 0.070393913419734638
+ 0.070396760558980628
+ 0.070399607731891536
+ 0.070402454938467918
+ 0.070405302178710411
+ 0.070408149452619556
+ 0.070410996760196146
+ 0.07041384410144072
+ 0.070416691476353932
+ 0.070419538884936378
+ 0.070422386327188669
+ 0.070425233803111484
+ 0.070428081312705421
+ 0.070430928855971103
+ 0.070433776432909156
+ 0.070436624043520302
+ 0.070439471687804942
+ 0.070442319365763867
+ 0.070445167077397702
+ 0.070448014822707128
+ 0.070450862601692574
+ 0.070453710414354873
+ 0.07045655826069451
+ 0.070459406140712208
+ 0.070462254054408521
+ 0.070465102001784241
+ 0.070467949982839756
+ 0.070470797997575829
+ 0.070473646045993113
+ 0.070476494128092287
+ 0.070479342243873769
+ 0.070482190393338376
+ 0.070485038576486692
+ 0.070487886793319257
+ 0.070490735043836905
+ 0.07049358332804008
+ 0.070496431645929572
+ 0.070499279997505798
+ 0.070502128382769577
+ 0.07050497680172145
+ 0.070507825254362083
+ 0.070510673740692101
+ 0.070513522260712211
+ 0.070516370814422941
+ 0.070519219401824956
+ 0.070522068022918855
+ 0.070524916677705357
+ 0.070527765366184977
+ 0.070530614088358631
+ 0.07053346284422661
+ 0.070536311633789622
+ 0.070539160457048458
+ 0.070542009314003673
+ 0.070544858204655864
+ 0.070547707129005724
+ 0.070550556087053795
+ 0.070553405078800868
+ 0.070556254104247429
+ 0.070559103163394296
+ 0.070561952256241914
+ 0.070564801382790948
+ 0.070567650543042162
+ 0.070570499736996001
+ 0.070573348964653365
+ 0.070576198226014741
+ 0.070579047521080657
+ 0.070581896849852027
+ 0.070584746212329227
+ 0.070587595608513021
+ 0.070590445038404045
+ 0.070593294502002982
+ 0.070596143999310315
+ 0.070598993530326754
+ 0.070601843095053046
+ 0.070604692693489832
+ 0.070607542325637554
+ 0.070610391991497032
+ 0.070613241691068793
+ 0.0706160914243536
+ 0.070618941191352064
+ 0.070621790992064754
+ 0.070624640826492308
+ 0.070627490694635545
+ 0.070630340596494853
+ 0.070633190532070997
+ 0.070636040501364697
+ 0.070638890504376564
+ 0.070641740541107209
+ 0.070644590611557173
+ 0.070647440715727164
+ 0.070650290853617986
+ 0.070653141025230182
+ 0.07065599123056425
+ 0.070658841469620967
+ 0.070661691742401
+ 0.07066454204890496
+ 0.070667392389133624
+ 0.070670242763087338
+ 0.070673093170767004
+ 0.070675943612173248
+ 0.070678794087306554
+ 0.070681644596167714
+ 0.070684495138757353
+ 0.070687345715076122
+ 0.070690196325124563
+ 0.070693046968903467
+ 0.070695897646413361
+ 0.070698748357655064
+ 0.070701599102629104
+ 0.070704449881336076
+ 0.070707300693776759
+ 0.070710151539951652
+ 0.070713002419861601
+ 0.070715853333507106
+ 0.070718704280888847
+ 0.070721555262007546
+ 0.070724406276863744
+ 0.070727257325458134
+ 0.070730108407791453
+ 0.0707329595238642
+ 0.070735810673677096
+ 0.070738661857230822
+ 0.070741513074526127
+ 0.070744364325563372
+ 0.070747215610343445
+ 0.070750066928866942
+ 0.070752918281134558
+ 0.070755769667146834
+ 0.070758621086904519
+ 0.070761472540408238
+ 0.070764324027658698
+ 0.070767175548656358
+ 0.070770027103402147
+ 0.070772878691896496
+ 0.070775730314140278
+ 0.070778581970133897
+ 0.070781433659878171
+ 0.070784285383373738
+ 0.070787137140621195
+ 0.07078998893162132
+ 0.070792840756374639
+ 0.070795692614881764
+ 0.070798544507143568
+ 0.070801396433160607
+ 0.07080424839293345
+ 0.070807100386462762
+ 0.070809952413749377
+ 0.070812804474793767
+ 0.070815656569596763
+ 0.070818508698158797
+ 0.070821360860480687
+ 0.070824213056563085
+ 0.070827065286406546
+ 0.070829917550011931
+ 0.07083276984737967
+ 0.070835622178510513
+ 0.070838474543405194
+ 0.07084132694206427
+ 0.070844179374488489
+ 0.070847031840678365
+ 0.070849884340634772
+ 0.070852736874358266
+ 0.070855589441849456
+ 0.070858442043108968
+ 0.070861294678137732
+ 0.070864147346936163
+ 0.070867000049504886
+ 0.070869852785844775
+ 0.070872705555956317
+ 0.07087555835984026
+ 0.070878411197497271
+ 0.070881264068927988
+ 0.070884116974133077
+ 0.070886969913113176
+ 0.070889822885868869
+ 0.070892675892401072
+ 0.070895528932710297
+ 0.070898382006797198
+ 0.070901235114662495
+ 0.070904088256306785
+ 0.070906941431730736
+ 0.070909794640935053
+ 0.070912647883920432
+ 0.070915501160687414
+ 0.07091835447123683
+ 0.070921207815569251
+ 0.070924061193685356
+ 0.070926914605585867
+ 0.070929768051271408
+ 0.070932621530742576
+ 0.070935475044000162
+ 0.070938328591044708
+ 0.07094118217187699
+ 0.070944035786497633
+ 0.070946889434907318
+ 0.070949743117106764
+ 0.070952596833096571
+ 0.070955450582877347
+ 0.070958304366449884
+ 0.070961158183814849
+ 0.070964012034972768
+ 0.070966865919924599
+ 0.070969719838670647
+ 0.070972573791211843
+ 0.070975427777548741
+ 0.070978281797682036
+ 0.070981135851612517
+ 0.070983989939340644
+ 0.070986844060867305
+ 0.070989698216192984
+ 0.070992552405318418
+ 0.070995406628244329
+ 0.070998260884971395
+ 0.071001115175500243
+ 0.071003969499831551
+ 0.071006823857965987
+ 0.071009678249904271
+ 0.071012532675646972
+ 0.071015387135194952
+ 0.071018241628548667
+ 0.071021096155708952
+ 0.071023950716676498
+ 0.071026805311451779
+ 0.071029659940035642
+ 0.071032514602428765
+ 0.071035369298631662
+ 0.071038224028645236
+ 0.071041078792470014
+ 0.071043933590106786
+ 0.071046788421556067
+ 0.071049643286818634
+ 0.071052498185895277
+ 0.071055353118786399
+ 0.071058208085492847
+ 0.071061063086015383
+ 0.071063918120354536
+ 0.071066773188511068
+ 0.07106962829048559
+ 0.071072483426278851
+ 0.071075338595891505
+ 0.071078193799324146
+ 0.071081049036577609
+ 0.071083904307652476
+ 0.071086759612549497
+ 0.071089614951269253
+ 0.071092470323812523
+ 0.071095325730179862
+ 0.071098181170372074
+ 0.071101036644389701
+ 0.071103892152233714
+ 0.071106747693904515
+ 0.071109603269402868
+ 0.071112458878729384
+ 0.071115314521884909
+ 0.071118170198870012
+ 0.071121025909685442
+ 0.071123881654331839
+ 0.071126737432809881
+ 0.071129593245120304
+ 0.071132449091263691
+ 0.071135304971240765
+ 0.071138160885052273
+ 0.071141016832698911
+ 0.071143872814181233
+ 0.071146728829500017
+ 0.071149584878655942
+ 0.071152440961649771
+ 0.071155297078482033
+ 0.071158153229153462
+ 0.071161009413664822
+ 0.071163865632016654
+ 0.07116672188420986
+ 0.071169578170244968
+ 0.071172434490122685
+ 0.071175290843843775
+ 0.071178147231408806
+ 0.071181003652818556
+ 0.071183860108073649
+ 0.071186716597174862
+ 0.071189573120122848
+ 0.071192429676918162
+ 0.071195286267561761
+ 0.071198142892054103
+ 0.071200999550395924
+ 0.071203856242588057
+ 0.071206712968631014
+ 0.071209569728525532
+ 0.071212426522272387
+ 0.071215283349872177
+ 0.071218140211325637
+ 0.071220997106633432
+ 0.071223854035796272
+ 0.071226710998814877
+ 0.071229567995689913
+ 0.071232425026422019
+ 0.071235282091011903
+ 0.071238139189460384
+ 0.07124099632176803
+ 0.071243853487935521
+ 0.071246710687963552
+ 0.071249567921852955
+ 0.071252425189604382
+ 0.071255282491218375
+ 0.071258139826695779
+ 0.071260997196037193
+ 0.071263854599243406
+ 0.071266712036315016
+ 0.071269569507252703
+ 0.071272427012057368
+ 0.071275284550729456
+ 0.0712781421232698
+ 0.071280999729679106
+ 0.071283857369957918
+ 0.071286715044107107
+ 0.071289572752127356
+ 0.071292430494019218
+ 0.071295288269783541
+ 0.071298146079420976
+ 0.071301003922932274
+ 0.071303861800317947
+ 0.071306719711578939
+ 0.071309577656715722
+ 0.071312435635729129
+ 0.07131529364861984
+ 0.071318151695388618
+ 0.071321009776036032
+ 0.071323867890562734
+ 0.071326726038969682
+ 0.071329584221257389
+ 0.071332442437426535
+ 0.071335300687477884
+ 0.071338158971412172
+ 0.071341017289230091
+ 0.071343875640932197
+ 0.071346734026519323
+ 0.071349592445992163
+ 0.071352450899351466
+ 0.071355309386597801
+ 0.071358167907731959
+ 0.071361026462754718
+ 0.07136388505166659
+ 0.07136674367446838
+ 0.071369602331160797
+ 0.071372461021744549
+ 0.071375319746220314
+ 0.071378178504588788
+ 0.071381037296850747
+ 0.071383896123006843
+ 0.071386754983057743
+ 0.071389613877004321
+ 0.071392472804846993
+ 0.071395331766586717
+ 0.071398190762224006
+ 0.071401049791759819
+ 0.071403908855194556
+ 0.071406767952529204
+ 0.071409627083764235
+ 0.07141248624890055
+ 0.071415345447938636
+ 0.07141820468087956
+ 0.071421063947723726
+ 0.071423923248471757
+ 0.071426782583124626
+ 0.071429641951682984
+ 0.071432501354147429
+ 0.071435360790518793
+ 0.071438220260797713
+ 0.071441079764984913
+ 0.071443939303081141
+ 0.071446798875086912
+ 0.071449658481003209
+ 0.07145251812083056
+ 0.071455377794569883
+ 0.071458237502221605
+ 0.071461097243786603
+ 0.071463957019265598
+ 0.071466816828659227
+ 0.071469676671968296
+ 0.071472536549193347
+ 0.071475396460335294
+ 0.071478256405394763
+ 0.071481116384372378
+ 0.071483976397269111
+ 0.071486836444085308
+ 0.071489696524821997
+ 0.071492556639479732
+ 0.071495416788059221
+ 0.071498276970561228
+ 0.071501137186986488
+ 0.071503997437335737
+ 0.071506857721609571
+ 0.071509718039808767
+ 0.071512578391934103
+ 0.071515438777986162
+ 0.071518299197965818
+ 0.071521159651873625
+ 0.071524020139710431
+ 0.071526880661476847
+ 0.071529741217173745
+ 0.071532601806801627
+ 0.071535462430361282
+ 0.071538323087853573
+ 0.071541183779279108
+ 0.07154404450463861
+ 0.071546905263932675
+ 0.07154976605716222
+ 0.071552626884327869
+ 0.071555487745430343
+ 0.071558348640470393
+ 0.071561209569448669
+ 0.071564070532365937
+ 0.071566931529222999
+ 0.071569792560020412
+ 0.071572653624758967
+ 0.071575514723439454
+ 0.07157837585606254
+ 0.071581237022628835
+ 0.071584098223139256
+ 0.071586959457594371
+ 0.071589820725994943
+ 0.07159268202834175
+ 0.071595543364635486
+ 0.071598404734876803
+ 0.07160126613906645
+ 0.071604127577205259
+ 0.071606989049293898
+ 0.071609850555332991
+ 0.071612712095323314
+ 0.071615573669265686
+ 0.071618435277160761
+ 0.07162129691900912
+ 0.07162415859481179
+ 0.071627020304569175
+ 0.071629882048282245
+ 0.071632743825951611
+ 0.071635605637578037
+ 0.071638467483162258
+ 0.071641329362704884
+ 0.071644191276206762
+ 0.071647053223668558
+ 0.071649915205091064
+ 0.071652777220474972
+ 0.071655639269820895
+ 0.071658501353129761
+ 0.071661363470402209
+ 0.071664225621638974
+ 0.071667087806840668
+ 0.071669950026008233
+ 0.071672812279142212
+ 0.071675674566243408
+ 0.071678536887312599
+ 0.071681399242350397
+ 0.071684261631357563
+ 0.07168712405433493
+ 0.071689986511283083
+ 0.071692849002202866
+ 0.07169571152709496
+ 0.07169857408596006
+ 0.071701436678798997
+ 0.071704299305612423
+ 0.071707161966401103
+ 0.071710024661165689
+ 0.071712887389907068
+ 0.071715750152625823
+ 0.071718612949322663
+ 0.071721475779998475
+ 0.071724338644653857
+ 0.071727201543289654
+ 0.071730064475906477
+ 0.071732927442505104
+ 0.071735790443086395
+ 0.071738653477650932
+ 0.071741516546199383
+ 0.071744379648732676
+ 0.071747242785251464
+ 0.071750105955756441
+ 0.071752969160248356
+ 0.071755832398728014
+ 0.071758695671196096
+ 0.071761558977653295
+ 0.071764422318100374
+ 0.071767285692538083
+ 0.071770149100967184
+ 0.071773012543388373
+ 0.071775876019802481
+ 0.071778739530210037
+ 0.071781603074611941
+ 0.071784466653008888
+ 0.0717873302654016
+ 0.071790193911790964
+ 0.071793057592177467
+ 0.071795921306561941
+ 0.071798785054945177
+ 0.071801648837327897
+ 0.071804512653710767
+ 0.071807376504094717
+ 0.071810240388480162
+ 0.071813104306868158
+ 0.071815968259259358
+ 0.071818832245654468
+ 0.071821696266054044
+ 0.071824560320459155
+ 0.071827424408870313
+ 0.071830288531288408
+ 0.071833152687714064
+ 0.071836016878148085
+ 0.071838881102591109
+ 0.07184174536104404
+ 0.071844609653507585
+ 0.071847473979982299
+ 0.071850338340469194
+ 0.071853202734968841
+ 0.071856067163481988
+ 0.071858931626009523
+ 0.071861796122551988
+ 0.071864660653110202
+ 0.071867525217684969
+ 0.071870389816276956
+ 0.071873254448886897
+ 0.071876119115515738
+ 0.071878983816163936
+ 0.071881848550832322
+ 0.071884713319521829
+ 0.071887578122232912
+ 0.071890442958966572
+ 0.071893307829723391
+ 0.071896172734504132
+ 0.071899037673309629
+ 0.071901902646140561
+ 0.071904767652997637
+ 0.071907632693881757
+ 0.071910497768793422
+ 0.071913362877733603
+ 0.071916228020702952
+ 0.071919093197702164
+ 0.07192195840873214
+ 0.071924823653793546
+ 0.071927688932887035
+ 0.071930554246013606
+ 0.071933419593173634
+ 0.071936284974368256
+ 0.071939150389597931
+ 0.071942015838863588
+ 0.07194488132216588
+ 0.071947746839505486
+ 0.071950612390883406
+ 0.071953477976300168
+ 0.071956343595756686
+ 0.071959209249253503
+ 0.071962074936791562
+ 0.071964940658371501
+ 0.071967806413994098
+ 0.071970672203660116
+ 0.071973538027370373
+ 0.071976403885125467
+ 0.0719792697769263
+ 0.071982135702773453
+ 0.071985001662667886
+ 0.071987867656610263
+ 0.071990733684601252
+ 0.071993599746641712
+ 0.071996465842732421
+ 0.071999331972874003
+ 0.072002198137067319
+ 0.072005064335313049
+ 0.072007930567612038
+ 0.072010796833965066
+ 0.072013663134372727
+ 0.072016529468835841
+ 0.072019395837355227
+ 0.072022262239931564
+ 0.0720251286765657
+ 0.072027995147258259
+ 0.072030861652010059
+ 0.072033728190821961
+ 0.072036594763694645
+ 0.072039461370628749
+ 0.072042328011625148
+ 0.072045194686684674
+ 0.072048061395807911
+ 0.072050928138995732
+ 0.072053794916248956
+ 0.072056661727568097
+ 0.072059528572954126
+ 0.072062395452407751
+ 0.072065262365929722
+ 0.072068129313520843
+ 0.072070996295181752
+ 0.072073863310913339
+ 0.072076730360716323
+ 0.072079597444591401
+ 0.072082464562539431
+ 0.072085331714561066
+ 0.072088198900657138
+ 0.072091066120828523
+ 0.072093933375075761
+ 0.072096800663399685
+ 0.072099667985801141
+ 0.072102535342280838
+ 0.072105402732839469
+ 0.072108270157477838
+ 0.072111137616196808
+ 0.072114005108997015
+ 0.072116872635879306
+ 0.072119740196844404
+ 0.072122607791893112
+ 0.072125475421026056
+ 0.072128343084244151
+ 0.072131210781548202
+ 0.072134078512938821
+ 0.072136946278416797
+ 0.072139814077982992
+ 0.072142681911638085
+ 0.072145549779382784
+ 0.072148417681218061
+ 0.072151285617144567
+ 0.072154153587162942
+ 0.072157021591274212
+ 0.072159889629478974
+ 0.072162757701777908
+ 0.072165625808172096
+ 0.072168493948661969
+ 0.072171362123248442
+ 0.072174230331932307
+ 0.072177098574714285
+ 0.072179966851595181
+ 0.072182835162575704
+ 0.072185703507656712
+ 0.072188571886838873
+ 0.072191440300123005
+ 0.072194308747509886
+ 0.072197177229000237
+ 0.072200045744594932
+ 0.072202914294294679
+ 0.072205782878100103
+ 0.072208651496012299
+ 0.072211520148031769
+ 0.072214388834159357
+ 0.072217257554395828
+ 0.072220126308742014
+ 0.07222299509719865
+ 0.072225863919766473
+ 0.072228732776446383
+ 0.072231601667238909
+ 0.072234470592145023
+ 0.072237339551165458
+ 0.07224020854430091
+ 0.072243077571552294
+ 0.072245946632920208
+ 0.072248815728405566
+ 0.072251684858009077
+ 0.072254554021731546
+ 0.072257423219573763
+ 0.072260292451536465
+ 0.072263161717620358
+ 0.072266031017826415
+ 0.072268900352155163
+ 0.072271769720607601
+ 0.072274639123184409
+ 0.072277508559886308
+ 0.072280378030714229
+ 0.072283247535668713
+ 0.07228611707475073
+ 0.072288986647961018
+ 0.072291856255300241
+ 0.07229472589676933
+ 0.072297595572369019
+ 0.072300465282100115
+ 0.072303335025963297
+ 0.072306204803959315
+ 0.072309074616089167
+ 0.072311944462353395
+ 0.072314814342752831
+ 0.07231768425728842
+ 0.072320554205960674
+ 0.072323424188770621
+ 0.0723262942057189
+ 0.072329164256806328
+ 0.072332034342033724
+ 0.072334904461401811
+ 0.072337774614911338
+ 0.072340644802563206
+ 0.072343515024358096
+ 0.072346385280296854
+ 0.072349255570380105
+ 0.072352125894608807
+ 0.072354996252983764
+ 0.0723578666455056
+ 0.072360737072175205
+ 0.072363607532993243
+ 0.072366478027960771
+ 0.072369348557078286
+ 0.072372219120346679
+ 0.072375089717766697
+ 0.072377960349339146
+ 0.072380831015064873
+ 0.072383701714944598
+ 0.072386572448979072
+ 0.072389443217169169
+ 0.072392314019515555
+ 0.072395184856019104
+ 0.072398055726680732
+ 0.072400926631500939
+ 0.072403797570480669
+ 0.072406668543620642
+ 0.072409539550921762
+ 0.072412410592384707
+ 0.072415281668010423
+ 0.07241815277779938
+ 0.072421023921752661
+ 0.072423895099870989
+ 0.072426766312155097
+ 0.072429637558605625
+ 0.072432508839223669
+ 0.072435380154009882
+ 0.072438251502965068
+ 0.072441122886089893
+ 0.072443994303385273
+ 0.072446865754852069
+ 0.072449737240490863
+ 0.0724526087603026
+ 0.072455480314288029
+ 0.072458351902447843
+ 0.072461223524782986
+ 0.07246409518129425
+ 0.072466966871982327
+ 0.072469838596847913
+ 0.072472710355892048
+ 0.072475582149115328
+ 0.072478453976518697
+ 0.072481325838102822
+ 0.072484197733868577
+ 0.072487069663816683
+ 0.072489941627948015
+ 0.072492813626263225
+ 0.072495685658763256
+ 0.072498557725448901
+ 0.072501429826320865
+ 0.072504301961379941
+ 0.072507174130627031
+ 0.072510046334062786
+ 0.072512918571688012
+ 0.072515790843503611
+ 0.072518663149510443
+ 0.072521535489708994
+ 0.072524407864100374
+ 0.072527280272685235
+ 0.072530152715464355
+ 0.072533025192438594
+ 0.072535897703608715
+ 0.072538770248975509
+ 0.072541642828539796
+ 0.072544515442302393
+ 0.072547388090264023
+ 0.072550260772425545
+ 0.072553133488787794
+ 0.07255600623935142
+ 0.072558879024117368
+ 0.072561751843086386
+ 0.072564624696259225
+ 0.072567497583636675
+ 0.07257037050521975
+ 0.072573243461008963
+ 0.072576116451005215
+ 0.072578989475209424
+ 0.072581862533622157
+ 0.07258473562624447
+ 0.072587608753077029
+ 0.072590481914120569
+ 0.072593355109376007
+ 0.07259622833884416
+ 0.072599101602525695
+ 0.072601974900421487
+ 0.072604848232532354
+ 0.072607721598859074
+ 0.072610594999402506
+ 0.072613468434163442
+ 0.072616341903142506
+ 0.072619215406340781
+ 0.072622088943758822
+ 0.072624962515397642
+ 0.072627836121257908
+ 0.072630709761340437
+ 0.072633583435646062
+ 0.072636457144175548
+ 0.072639330886929906
+ 0.072642204663909554
+ 0.072645078475115601
+ 0.072647952320548798
+ 0.07265082620020985
+ 0.072653700114099523
+ 0.072656574062218898
+ 0.072659448044568517
+ 0.072662322061149295
+ 0.072665196111962108
+ 0.072668070197007578
+ 0.072670944316286554
+ 0.072673818469799992
+ 0.072676692657548558
+ 0.072679566879533086
+ 0.072682441135754464
+ 0.072685315426213398
+ 0.072688189750910764
+ 0.072691064109847256
+ 0.072693938503023817
+ 0.07269681293044121
+ 0.072699687392100351
+ 0.072702561888001768
+ 0.072705436418146516
+ 0.072708310982535329
+ 0.072711185581168944
+ 0.07271406021404829
+ 0.0727169348811742
+ 0.072719809582547354
+ 0.07272268431816864
+ 0.072725559088038849
+ 0.072728433892158745
+ 0.072731308730529215
+ 0.072734183603151106
+ 0.072737058510025057
+ 0.072739933451152095
+ 0.072742808426532968
+ 0.072745683436168371
+ 0.072748558480059136
+ 0.072751433558206152
+ 0.072754308670610363
+ 0.072757183817272322
+ 0.072760058998192961
+ 0.072762934213373043
+ 0.072765809462813566
+ 0.07276868474651503
+ 0.072771560064478574
+ 0.072774435416704794
+ 0.072777310803194564
+ 0.07278018622394869
+ 0.072783061678968086
+ 0.072785937168253517
+ 0.072788812691805621
+ 0.072791688249625508
+ 0.072794563841713747
+ 0.072797439468071268
+ 0.072800315128698903
+ 0.072803190823597458
+ 0.072806066552767765
+ 0.072808942316210545
+ 0.07281181811392666
+ 0.072814693945917025
+ 0.072817569812182403
+ 0.072820445712723503
+ 0.072823321647541295
+ 0.072826197616636446
+ 0.072829073620009954
+ 0.072831949657662529
+ 0.07283482572959496
+ 0.072837701835808247
+ 0.072840577976302917
+ 0.072843454151080039
+ 0.07284633036014028
+ 0.072849206603484637
+ 0.072852082881113681
+ 0.072854959193028521
+ 0.072857835539229809
+ 0.072860711919718241
+ 0.072863588334494883
+ 0.072866464783560458
+ 0.072869341266915813
+ 0.072872217784561766
+ 0.072875094336498955
+ 0.072877970922728491
+ 0.072880847543251095
+ 0.072883724198067532
+ 0.072886600887178715
+ 0.072889477610585313
+ 0.072892354368288309
+ 0.07289523116028844
+ 0.072898107986586608
+ 0.07290098484718352
+ 0.072903861742080106
+ 0.072906738671277158
+ 0.072909615634775549
+ 0.072912492632575918
+ 0.072915369664679347
+ 0.072918246731086503
+ 0.072921123831798232
+ 0.07292400096681545
+ 0.072926878136138767
+ 0.072929755339769226
+ 0.072932632577707657
+ 0.072935509849954686
+ 0.072938387156511339
+ 0.07294126449737838
+ 0.072944141872556531
+ 0.072947019282046832
+ 0.072949896725849991
+ 0.072952774203966786
+ 0.072955651716398076
+ 0.072958529263144792
+ 0.072961406844207682
+ 0.072964284459587539
+ 0.072967162109285222
+ 0.072970039793301578
+ 0.072972917511637467
+ 0.072975795264293708
+ 0.072978673051271092
+ 0.072981550872570286
+ 0.072984428728192524
+ 0.072987306618138278
+ 0.072990184542408604
+ 0.072993062501004263
+ 0.072995940493925965
+ 0.072998818521174763
+ 0.073001696582751255
+ 0.073004574678656384
+ 0.073007452808891121
+ 0.07301033097345612
+ 0.073013209172352142
+ 0.073016087405580216
+ 0.073018965673141131
+ 0.073021843975035694
+ 0.073024722311264695
+ 0.073027600681828966
+ 0.073030479086729411
+ 0.073033357525966847
+ 0.07303623599954219
+ 0.073039114507456079
+ 0.073041993049709361
+ 0.073044871626303146
+ 0.073047750237238016
+ 0.073050628882514859
+ 0.073053507562134537
+ 0.073056386276097909
+ 0.073059265024405795
+ 0.073062143807058971
+ 0.073065022624058354
+ 0.073067901475404734
+ 0.073070780361098972
+ 0.073073659281141956
+ 0.073076538235534352
+ 0.073079417224277132
+ 0.073082296247371156
+ 0.073085175304817271
+ 0.073088054396616198
+ 0.073090933522768839
+ 0.073093812683276124
+ 0.073096691878138761
+ 0.073099571107357625
+ 0.073102450370933547
+ 0.07310532966886743
+ 0.07310820900116001
+ 0.073111088367812285
+ 0.073113967768824978
+ 0.073116847204198851
+ 0.073119726673934973
+ 0.073122606178034039
+ 0.07312548571649688
+ 0.073128365289324315
+ 0.073131244896517372
+ 0.073134124538076745
+ 0.073137004214003265
+ 0.07313988392429778
+ 0.073142763668961164
+ 0.073145643447994249
+ 0.073148523261397883
+ 0.073151403109172924
+ 0.073154282991320221
+ 0.073157162907840564
+ 0.073160042858734869
+ 0.073162922844004011
+ 0.073165802863648655
+ 0.0731686829176698
+ 0.07317156300606828
+ 0.073174443128844885
+ 0.073177323286000406
+ 0.073180203477535927
+ 0.073183083703452084
+ 0.073185963963749795
+ 0.073188844258429794
+ 0.073191724587493165
+ 0.073194604950940489
+ 0.073197485348772767
+ 0.073200365780990831
+ 0.073203246247595583
+ 0.073206126748587647
+ 0.073209007283968203
+ 0.07321188785373782
+ 0.073214768457897497
+ 0.073217649096448054
+ 0.073220529769390266
+ 0.073223410476725065
+ 0.073226291218453268
+ 0.073229171994575723
+ 0.073232052805093303
+ 0.073234933650006925
+ 0.073237814529317269
+ 0.073240695443025292
+ 0.073243576391131812
+ 0.073246457373637747
+ 0.073249338390543858
+ 0.073252219441851049
+ 0.073255100527560194
+ 0.073257981647672055
+ 0.073260862802187521
+ 0.073263743991107536
+ 0.073266625214432779
+ 0.073269506472164264
+ 0.073272387764302838
+ 0.073275269090849263
+ 0.073278150451804372
+ 0.073281031847169137
+ 0.073283913276944349
+ 0.073286794741130812
+ 0.073289676239729484
+ 0.073292557772741213
+ 0.073295439340166746
+ 0.073298320942007042
+ 0.073301202578262864
+ 0.073304084248935156
+ 0.073306965954024625
+ 0.073309847693532465
+ 0.073312729467459162
+ 0.073315611275805742
+ 0.073318493118573011
+ 0.073321374995761884
+ 0.073324256907373195
+ 0.073327138853407706
+ 0.073330020833866472
+ 0.0733329028487502
+ 0.073335784898059822
+ 0.073338666981796086
+ 0.073341549099959921
+ 0.073344431252552286
+ 0.073347313439573944
+ 0.073350195661025588
+ 0.073353077916908441
+ 0.073355960207223112
+ 0.07335884253197042
+ 0.073361724891151364
+ 0.073364607284766847
+ 0.073367489712817535
+ 0.073370372175304469
+ 0.073373254672228369
+ 0.07337613720359025
+ 0.073379019769390805
+ 0.073381902369631061
+ 0.073384785004311739
+ 0.073387667673433757
+ 0.073390550376997973
+ 0.073393433115005333
+ 0.073396315887456459
+ 0.073399198694352547
+ 0.073402081535694191
+ 0.073404964411482365
+ 0.073407847321717873
+ 0.073410730266401727
+ 0.073413613245534595
+ 0.073416496259117558
+ 0.073419379307151214
+ 0.073422262389636658
+ 0.073425145506574627
+ 0.073428028657966077
+ 0.073430911843811772
+ 0.073433795064112739
+ 0.073436678318869589
+ 0.073439561608083362
+ 0.073442444931755016
+ 0.073445328289885162
+ 0.073448211682474798
+ 0.073451095109524842
+ 0.07345397857103611
+ 0.073456862067009479
+ 0.07345974559744585
+ 0.073462629162345972
+ 0.073465512761710844
+ 0.073468396395541244
+ 0.073471280063838143
+ 0.073474163766602235
+ 0.073477047503834519
+ 0.07347993127553594
+ 0.073482815081707245
+ 0.073485698922349255
+ 0.073488582797462926
+ 0.073491466707049133
+ 0.073494350651108667
+ 0.07349723462964261
+ 0.073500118642651588
+ 0.073503002690136543
+ 0.073505886772098392
+ 0.073508770888538036
+ 0.073511655039456211
+ 0.073514539224853889
+ 0.073517423444731944
+ 0.073520307699091209
+ 0.073523191987932612
+ 0.073526076311256947
+ 0.073528960669065196
+ 0.07353184506135807
+ 0.073534729488136552
+ 0.073537613949401587
+ 0.073540498445153799
+ 0.073543382975394408
+ 0.073546267540123986
+ 0.073549152139343585
+ 0.073552036773053928
+ 0.073554921441256152
+ 0.073557806143950799
+ 0.073560690881138951
+ 0.073563575652821483
+ 0.073566460458999242
+ 0.073569345299672934
+ 0.073572230174843753
+ 0.07357511508451238
+ 0.07357800002867966
+ 0.073580885007346608
+ 0.073583770020514
+ 0.073586655068182738
+ 0.073589540150353586
+ 0.073592425267027681
+ 0.073595310418205676
+ 0.073598195603888625
+ 0.07360108082407725
+ 0.073603966078772468
+ 0.073606851367975179
+ 0.073609736691686342
+ 0.073612622049906665
+ 0.073615507442637132
+ 0.073618392869878646
+ 0.073621278331631998
+ 0.073624163827898145
+ 0.073627049358677948
+ 0.073629934923972198
+ 0.073632820523781992
+ 0.07363570615810805
+ 0.073638591826951205
+ 0.073641477530312513
+ 0.073644363268192625
+ 0.073647249040592624
+ 0.073650134847513357
+ 0.07365302068895567
+ 0.073655906564920423
+ 0.073658792475408505
+ 0.073661678420420817
+ 0.073664564399958277
+ 0.073667450414021715
+ 0.073670336462612021
+ 0.073673222545730124
+ 0.073676108663376774
+ 0.073678994815553026
+ 0.073681881002259711
+ 0.073684767223497677
+ 0.073687653479267826
+ 0.073690539769571003
+ 0.073693426094408196
+ 0.073696312453780208
+ 0.073699198847687927
+ 0.073702085276132298
+ 0.073704971739114084
+ 0.073707858236634297
+ 0.07371074476869377
+ 0.073713631335293447
+ 0.073716517936434162
+ 0.073719404572116745
+ 0.073722291242342183
+ 0.073725177947111337
+ 0.073728064686425107
+ 0.073730951460284314
+ 0.073733838268689955
+ 0.073736725111642781
+ 0.07373961198914375
+ 0.073742498901193776
+ 0.073745385847793762
+ 0.073748272828944486
+ 0.073751159844647002
+ 0.073754046894902045
+ 0.073756933979710559
+ 0.073759821099073503
+ 0.073762708252991693
+ 0.073765595441466145
+ 0.073768482664497495
+ 0.073771369922086771
+ 0.073774257214235028
+ 0.073777144540942835
+ 0.073780031902211413
+ 0.073782919298041427
+ 0.073785806728433781
+ 0.073788694193389501
+ 0.073791581692909294
+ 0.073794469226994314
+ 0.073797356795645128
+ 0.07380024439886293
+ 0.0738031320366484
+ 0.073806019709002621
+ 0.073808907415926356
+ 0.073811795157420507
+ 0.073814682933485989
+ 0.07381757074412372
+ 0.073820458589334545
+ 0.07382334646911938
+ 0.073826234383479156
+ 0.073829122332414759
+ 0.073832010315927038
+ 0.073834898334016907
+ 0.073837786386685172
+ 0.073840674473932957
+ 0.073843562595760998
+ 0.073846450752170195
+ 0.073849338943161494
+ 0.073852227168735796
+ 0.073855115428893919
+ 0.073858003723636836
+ 0.073860892052965449
+ 0.07386378041688052
+ 0.07386666881538323
+ 0.073869557248474216
+ 0.073872445716154492
+ 0.07387533421842489
+ 0.073878222755286355
+ 0.073881111326739829
+ 0.073883999932786187
+ 0.073886888573426276
+ 0.073889777248660984
+ 0.073892665958491255
+ 0.073895554702918032
+ 0.073898443481942216
+ 0.073901332295564615
+ 0.073904221143786114
+ 0.073907110026607714
+ 0.073909998944030372
+ 0.073912887896054755
+ 0.073915776882681999
+ 0.073918665903912967
+ 0.073921554959748392
+ 0.073924444050189331
+ 0.073927333175236615
+ 0.073930222334891257
+ 0.073933111529154175
+ 0.073936000758026033
+ 0.073938890021507969
+ 0.073941779319600803
+ 0.073944668652305409
+ 0.073947558019622717
+ 0.073950447421553656
+ 0.073953336858099072
+ 0.073956226329260022
+ 0.073959115835037198
+ 0.073962005375431614
+ 0.073964894950444199
+ 0.073967784560075939
+ 0.073970674204327444
+ 0.073973563883199853
+ 0.073976453596694053
+ 0.073979343344810961
+ 0.073982233127551408
+ 0.073985122944916368
+ 0.073988012796906727
+ 0.073990902683523291
+ 0.073993792604767211
+ 0.07399668256063914
+ 0.073999572551140175
+ 0.074002462576271091
+ 0.074005352636032792
+ 0.074008242730426346
+ 0.074011132859452503
+ 0.07401402302311226
+ 0.074016913221406494
+ 0.074019803454336175
+ 0.074022693721902094
+ 0.074025584024105237
+ 0.074028474360946436
+ 0.074031364732426816
+ 0.074034255138547014
+ 0.074037145579308142
+ 0.074040036054710892
+ 0.074042926564756459
+ 0.074045817109445508
+ 0.07404870768877915
+ 0.074051598302758176
+ 0.074054488951383557
+ 0.07405737963465614
+ 0.074060270352576937
+ 0.074063161105146713
+ 0.074066051892366522
+ 0.074068942714237182
+ 0.074071833570759665
+ 0.074074724461934902
+ 0.074077615387763696
+ 0.074080506348247047
+ 0.07408339734338594
+ 0.074086288373181208
+ 0.074089179437633684
+ 0.074092070536744339
+ 0.074094961670514256
+ 0.074097852838944128
+ 0.074100744042034983
+ 0.07410363527978775
+ 0.074106526552203261
+ 0.074109417859282364
+ 0.074112309201026197
+ 0.074115200577435536
+ 0.074118091988511409
+ 0.074120983434254592
+ 0.07412387491466603
+ 0.074126766429746777
+ 0.074129657979497568
+ 0.074132549563919403
+ 0.074135441183013212
+ 0.074138332836779994
+ 0.074141224525220428
+ 0.074144116248335695
+ 0.074147008006126475
+ 0.074149899798593891
+ 0.074152791625738831
+ 0.074155683487562116
+ 0.074158575384064743
+ 0.074161467315247545
+ 0.074164359281111619
+ 0.074167251281657728
+ 0.07417014331688683
+ 0.074173035386799854
+ 0.074175927491397703
+ 0.074178819630681306
+ 0.074181711804651634
+ 0.074184604013309507
+ 0.074187496256656035
+ 0.074190388534691995
+ 0.074193280847418289
+ 0.074196173194835874
+ 0.074199065576945708
+ 0.074201957993748652
+ 0.074204850445245718
+ 0.074207742931437753
+ 0.074210635452325688
+ 0.074213528007910576
+ 0.074216420598193167
+ 0.074219313223174446
+ 0.074222205882855302
+ 0.074225098577236789
+ 0.074227991306319699
+ 0.074230884070105016
+ 0.074233776868593601
+ 0.074236669701786384
+ 0.074239562569684531
+ 0.074242455472288693
+ 0.074245348409599857
+ 0.074248241381619035
+ 0.074251134388347059
+ 0.074254027429784861
+ 0.074256920505933438
+ 0.07425981361679368
+ 0.074262706762366515
+ 0.074265599942652874
+ 0.074268493157653631
+ 0.074271386407369841
+ 0.074274279691802267
+ 0.074277173010951963
+ 0.074280066364819888
+ 0.074282959753406833
+ 0.074285853176713823
+ 0.074288746634741831
+ 0.074291640127491704
+ 0.074294533654964301
+ 0.074297427217160761
+ 0.074300320814081791
+ 0.07430321444572853
+ 0.074306108112101754
+ 0.074309001813202477
+ 0.074311895549031545
+ 0.074314789319589986
+ 0.074317683124878742
+ 0.074320576964898549
+ 0.074323470839650671
+ 0.074326364749135759
+ 0.074329258693354855
+ 0.074332152672308915
+ 0.074335046685998801
+ 0.074337940734425456
+ 0.074340834817589893
+ 0.074343728935492931
+ 0.07434662308813568
+ 0.074349517275518945
+ 0.074352411497643614
+ 0.0743553057545107
+ 0.07435820004612112
+ 0.074361094372475914
+ 0.074363988733575803
+ 0.074366883129421898
+ 0.07436977756001506
+ 0.074372672025356162
+ 0.074375566525446385
+ 0.07437846106028638
+ 0.074381355629877244
+ 0.074384250234219892
+ 0.074387144873315159
+ 0.074390039547164166
+ 0.074392934255767693
+ 0.074395828999126709
+ 0.074398723777242257
+ 0.074401618590115182
+ 0.074404513437746414
+ 0.074407408320136897
+ 0.074410303237287645
+ 0.074413198189199586
+ 0.074416093175873457
+ 0.074418988197310465
+ 0.074421883253511456
+ 0.074424778344477319
+ 0.074427673470209052
+ 0.074430568630707516
+ 0.074433463825973781
+ 0.07443635905600865
+ 0.074439254320813206
+ 0.074442149620388295
+ 0.074445044954734835
+ 0.074447940323853837
+ 0.074450835727746204
+ 0.074453731166412948
+ 0.074456626639854889
+ 0.074459522148073082
+ 0.074462417691068358
+ 0.074465313268841787
+ 0.074468208881394313
+ 0.074471104528726739
+ 0.074474000210840038
+ 0.074476895927735348
+ 0.074479791679413404
+ 0.07448268746587508
+ 0.074485583287121584
+ 0.074488479143153832
+ 0.074491375033972518
+ 0.074494270959578821
+ 0.074497166919973518
+ 0.074500062915157775
+ 0.074502958945132286
+ 0.07450585500989812
+ 0.074508751109456262
+ 0.074511647243807641
+ 0.074514543412953105
+ 0.074517439616893763
+ 0.074520335855630504
+ 0.074523232129164063
+ 0.074526128437495731
+ 0.074529024780626299
+ 0.074531921158556669
+ 0.074534817571287756
+ 0.074537714018820714
+ 0.07454061050115629
+ 0.074543507018295457
+ 0.074546403570239353
+ 0.074549300156988699
+ 0.074552196778544563
+ 0.074555093434907779
+ 0.074557990126079471
+ 0.074560886852060429
+ 0.074563783612851778
+ 0.074566680408454239
+ 0.07456957723886902
+ 0.07457247410409687
+ 0.074575371004138843
+ 0.074578267938995815
+ 0.074581164908668771
+ 0.074584061913158681
+ 0.074586958952466573
+ 0.074589856026593224
+ 0.07459275313553973
+ 0.074595650279307021
+ 0.074598547457895958
+ 0.074601444671307554
+ 0.07460434191954278
+ 0.074607239202602593
+ 0.074610136520487896
+ 0.074613033873199758
+ 0.074615931260739024
+ 0.07461882868310668
+ 0.07462172614030356
+ 0.074624623632330869
+ 0.074627521159189428
+ 0.074630418720880096
+ 0.074633316317404025
+ 0.074636213948762006
+ 0.07463911161495515
+ 0.07464200931598422
+ 0.074644907051850354
+ 0.074647804822554328
+ 0.074650702628097323
+ 0.074653600468480144
+ 0.074656498343703789
+ 0.074659396253769203
+ 0.074662294198677329
+ 0.07466519217842911
+ 0.074668090193025574
+ 0.074670988242467581
+ 0.074673886326756284
+ 0.074676784445892375
+ 0.074679682599877048
+ 0.074682580788711136
+ 0.074685479012395639
+ 0.074688377270931416
+ 0.074691275564319579
+ 0.074694173892561
+ 0.074697072255656694
+ 0.07469997065360752
+ 0.074702869086414617
+ 0.074705767554078789
+ 0.074708666056601009
+ 0.074711564593982344
+ 0.074714463166223585
+ 0.074717361773325927
+ 0.074720260415290035
+ 0.074723159092117089
+ 0.074726057803808171
+ 0.074728956550363865
+ 0.074731855331785405
+ 0.074734754148073748
+ 0.074737652999229728
+ 0.074740551885254372
+ 0.074743450806148665
+ 0.074746349761913564
+ 0.074749248752549999
+ 0.074752147778058942
+ 0.074755046838441447
+ 0.074757945933698347
+ 0.07476084506383078
+ 0.074763744228839427
+ 0.074766643428725535
+ 0.074769542663489966
+ 0.074772441933133676
+ 0.074775341237657611
+ 0.074778240577062727
+ 0.074781139951350051
+ 0.074784039360520568
+ 0.074786938804575209
+ 0.074789838283514862
+ 0.074792737797340622
+ 0.074795637346053309
+ 0.074798536929654103
+ 0.074801436548143738
+ 0.074804336201523366
+ 0.074807235889793947
+ 0.074810135612956227
+ 0.074813035371011458
+ 0.074815935163960456
+ 0.074818834991804251
+ 0.074821734854543687
+ 0.074824634752179875
+ 0.074827534684713787
+ 0.074830434652146283
+ 0.074833334654478362
+ 0.074836234691711107
+ 0.074839134763845405
+ 0.07484203487088216
+ 0.074844935012822439
+ 0.074847835189667283
+ 0.074850735401417498
+ 0.074853635648074096
+ 0.074856535929638132
+ 0.074859436246110495
+ 0.07486233659749221
+ 0.074865236983784222
+ 0.07486813740498742
+ 0.074871037861103024
+ 0.074873938352131825
+ 0.074876838878074725
+ 0.074879739438932849
+ 0.074882640034707154
+ 0.074885540665398459
+ 0.074888441331008013
+ 0.074891342031536551
+ 0.074894242766985114
+ 0.074897143537354688
+ 0.074900044342646313
+ 0.074902945182860906
+ 0.074905846057999381
+ 0.074908746968062823
+ 0.07491164791305209
+ 0.074914548892968252
+ 0.074917449907812309
+ 0.074920350957585216
+ 0.074923252042287919
+ 0.074926153161921333
+ 0.074929054316486512
+ 0.074931955505984485
+ 0.074934856730416138
+ 0.074937757989782444
+ 0.074940659284084429
+ 0.074943560613323121
+ 0.074946461977499365
+ 0.074949363376614286
+ 0.074952264810668759
+ 0.074955166279663782
+ 0.07495806778360041
+ 0.074960969322479476
+ 0.074963870896301993
+ 0.074966772505069126
+ 0.074969674148781654
+ 0.074972575827440574
+ 0.074975477541047039
+ 0.074978379289601813
+ 0.07498128107310606
+ 0.0749841828915606
+ 0.074987084744966542
+ 0.074989986633324734
+ 0.074992888556636383
+ 0.074995790514902141
+ 0.074998692508123285
+ 0.075001594536300661
+ 0.075004496599435311
+ 0.075007398697528191
+ 0.075010300830580176
+ 0.075013202998592474
+ 0.075016105201565944
+ 0.075019007439501476
+ 0.075021909712400206
+ 0.075024812020263149
+ 0.07502771436309108
+ 0.075030616740885153
+ 0.075033519153646297
+ 0.075036421601375622
+ 0.07503932408407378
+ 0.075042226601742201
+ 0.075045129154381496
+ 0.075048031741992857
+ 0.075050934364577312
+ 0.075053837022135556
+ 0.075056739714668946
+ 0.075059642442178207
+ 0.075062545204664335
+ 0.075065448002128596
+ 0.075068350834571626
+ 0.07507125370199462
+ 0.075074156604398479
+ 0.075077059541784216
+ 0.075079962514152887
+ 0.075082865521505393
+ 0.075085768563842692
+ 0.075088671641165852
+ 0.075091574753475984
+ 0.07509447790077374
+ 0.075097381083060355
+ 0.075100284300336842
+ 0.075103187552604117
+ 0.075106090839863082
+ 0.075108994162114806
+ 0.075111897519360343
+ 0.075114800911600652
+ 0.075117704338836633
+ 0.075120607801069467
+ 0.075123511298299875
+ 0.075126414830529092
+ 0.075129318397758008
+ 0.075132221999987647
+ 0.075135125637218927
+ 0.075138029309452931
+ 0.075140933016690656
+ 0.07514383675893295
+ 0.075146740536180909
+ 0.075149644348435657
+ 0.075152548195697916
+ 0.075155452077968837
+ 0.07515835599524949
+ 0.075161259947540707
+ 0.075164163934843556
+ 0.075167067957159051
+ 0.07516997201448819
+ 0.075172876106831904
+ 0.075175780234191192
+ 0.075178684396567164
+ 0.075181588593960708
+ 0.075184492826372809
+ 0.075187397093804495
+ 0.075190301396256876
+ 0.07519320573373077
+ 0.075196110106227218
+ 0.075199014513747331
+ 0.075201918956291941
+ 0.075204823433862131
+ 0.075207727946458983
+ 0.075210632494083329
+ 0.075213537076736212
+ 0.075216441694418698
+ 0.075219346347131774
+ 0.075222251034876411
+ 0.075225155757653608
+ 0.075228060515464323
+ 0.075230965308309694
+ 0.07523387013619065
+ 0.075236774999107997
+ 0.075239679897063053
+ 0.07524258483005665
+ 0.075245489798089718
+ 0.075248394801163423
+ 0.075251299839278668
+ 0.075254204912436506
+ 0.075257110020637855
+ 0.075260015163883878
+ 0.075262920342175382
+ 0.075265825555513505
+ 0.075268730803899106
+ 0.075271636087333449
+ 0.075274541405817227
+ 0.075277446759351635
+ 0.075280352147937685
+ 0.075283257571576237
+ 0.075286163030268388
+ 0.075289068524015179
+ 0.075291974052817609
+ 0.075294879616676552
+ 0.075297785215593133
+ 0.075300690849568308
+ 0.075303596518603119
+ 0.075306502222698593
+ 0.075309407961855618
+ 0.075312313736075276
+ 0.075315219545358664
+ 0.075318125389706628
+ 0.075321031269120292
+ 0.075323937183600531
+ 0.075326843133148413
+ 0.075329749117765132
+ 0.075332655137451354
+ 0.075335561192208397
+ 0.075338467282036956
+ 0.075341373406938444
+ 0.075344279566913377
+ 0.075347185761963212
+ 0.075350091992088725
+ 0.075352998257290929
+ 0.075355904557570921
+ 0.075358810892929631
+ 0.075361717263368072
+ 0.075364623668887271
+ 0.075367530109488282
+ 0.075370436585172049
+ 0.075373343095939696
+ 0.075376249641792056
+ 0.075379156222730268
+ 0.075382062838755273
+ 0.075384969489868156
+ 0.075387876176069832
+ 0.075390782897361328
+ 0.075393689653743795
+ 0.075396596445218025
+ 0.075399503271785268
+ 0.075402410133446424
+ 0.075405317030202423
+ 0.075408223962054363
+ 0.075411130929003201
+ 0.075414037931050032
+ 0.07541694496819587
+ 0.07541985204044159
+ 0.075422759147788371
+ 0.075425666290237114
+ 0.075428573467788862
+ 0.07543148068044471
+ 0.075434387928205615
+ 0.075437295211072508
+ 0.075440202529046541
+ 0.075443109882128614
+ 0.075446017270319743
+ 0.075448924693621106
+ 0.075451832152033521
+ 0.075454739645558169
+ 0.075457647174195924
+ 0.075460554737947869
+ 0.075463462336815085
+ 0.075466369970798503
+ 0.075469277639899093
+ 0.075472185344117884
+ 0.075475093083455985
+ 0.075478000857914493
+ 0.075480908667494184
+ 0.075483816512196197
+ 0.075486724392021587
+ 0.07548963230697131
+ 0.075492540257046381
+ 0.075495448242247909
+ 0.075498356262576824
+ 0.075501264318034153
+ 0.075504172408621034
+ 0.075507080534338245
+ 0.075509988695186908
+ 0.075512896891168219
+ 0.075515805122283008
+ 0.075518713388532346
+ 0.075521621689917245
+ 0.075524530026438802
+ 0.07552743839809796
+ 0.075530346804895593
+ 0.075533255246833034
+ 0.075536163723911157
+ 0.075539072236130905
+ 0.075541980783493431
+ 0.075544889365999596
+ 0.075547797983650605
+ 0.075550706636447376
+ 0.075553615324390991
+ 0.075556524047482476
+ 0.075559432805722734
+ 0.075562341599112876
+ 0.075565250427653941
+ 0.075568159291346984
+ 0.075571068190192853
+ 0.075573977124192782
+ 0.075576886093347714
+ 0.075579795097658678
+ 0.075582704137126672
+ 0.075585613211752709
+ 0.075588522321537913
+ 0.075591431466483172
+ 0.075594340646589611
+ 0.075597249861858229
+ 0.07560015911229008
+ 0.075603068397886108
+ 0.07560597771864741
+ 0.075608887074575068
+ 0.0756117964656699
+ 0.07561470589193317
+ 0.075617615353365739
+ 0.075620524849968784
+ 0.075623434381743154
+ 0.075626343948690014
+ 0.075629253550810405
+ 0.075632163188105242
+ 0.075635072860575636
+ 0.075637982568222462
+ 0.075640892311047092
+ 0.07564380208905018
+ 0.075646711902232933
+ 0.075649621750596516
+ 0.075652531634141665
+ 0.075655441552869629
+ 0.075658351506781255
+ 0.075661261495877749
+ 0.075664171520160112
+ 0.0756670815796293
+ 0.075669991674286396
+ 0.075672901804132373
+ 0.075675811969168394
+ 0.075678722169395266
+ 0.075681632404814278
+ 0.075684542675426292
+ 0.075687452981232403
+ 0.075690363322233695
+ 0.075693273698431054
+ 0.075696184109825662
+ 0.075699094556418364
+ 0.075702005038210382
+ 0.075704915555202798
+ 0.075707826107396445
+ 0.075710736694792363
+ 0.075713647317391733
+ 0.075716557975195539
+ 0.075719468668204823
+ 0.075722379396420472
+ 0.07572529015984375
+ 0.075728200958475642
+ 0.075731111792317021
+ 0.075734022661369124
+ 0.075736933565632727
+ 0.075739844505109233
+ 0.075742755479799403
+ 0.07574566648970435
+ 0.07574857753482514
+ 0.075751488615162704
+ 0.075754399730718236
+ 0.075757310881492679
+ 0.075760222067487032
+ 0.075763133288702433
+ 0.075766044545139882
+ 0.075768955836800378
+ 0.075771867163685058
+ 0.075774778525794867
+ 0.075777689923130775
+ 0.075780601355693991
+ 0.075783512823485472
+ 0.075786424326506355
+ 0.075789335864757459
+ 0.075792247438240062
+ 0.07579515904695501
+ 0.075798070690903441
+ 0.075800982370086409
+ 0.075803894084504927
+ 0.075806805834159982
+ 0.075809717619052766
+ 0.075812629439184182
+ 0.075815541294555394
+ 0.075818453185167195
+ 0.075821365111020972
+ 0.075824277072117488
+ 0.075827189068457937
+ 0.075830101100043304
+ 0.075833013166874727
+ 0.075835925268952969
+ 0.075838837406279447
+ 0.075841749578854978
+ 0.075844661786680659
+ 0.075847574029757558
+ 0.075850486308086607
+ 0.075853398621669024
+ 0.075856310970505644
+ 0.075859223354597771
+ 0.075862135773946321
+ 0.075865048228552195
+ 0.07586796071841663
+ 0.075870873243540707
+ 0.075873785803925287
+ 0.075876698399571493
+ 0.075879611030480382
+ 0.075882523696653076
+ 0.075885436398090561
+ 0.075888349134793767
+ 0.07589126190676386
+ 0.075894174714001922
+ 0.075897087556509008
+ 0.07590000043428613
+ 0.075902913347334094
+ 0.075905826295654358
+ 0.075908739279247864
+ 0.075911652298115348
+ 0.075914565352258281
+ 0.075917478441677386
+ 0.075920391566373938
+ 0.075923304726348881
+ 0.075926217921603242
+ 0.075929131152138188
+ 0.07593204441795455
+ 0.075934957719053578
+ 0.075937871055436354
+ 0.075940784427103822
+ 0.075943697834056911
+ 0.075946611276296913
+ 0.075949524753824757
+ 0.075952438266641484
+ 0.075955351814748176
+ 0.075958265398145985
+ 0.075961179016835731
+ 0.075964092670818634
+ 0.075967006360095804
+ 0.075969920084668033
+ 0.075972833844536625
+ 0.075975747639702496
+ 0.075978661470166797
+ 0.075981575335930571
+ 0.075984489236994787
+ 0.075987403173360585
+ 0.075990317145028893
+ 0.075993231152000934
+ 0.075996145194277651
+ 0.075999059271860153
+ 0.076001973384749441
+ 0.076004887532946638
+ 0.076007801716452758
+ 0.076010715935268883
+ 0.07601363018939597
+ 0.076016544478835144
+ 0.076019458803587583
+ 0.076022373163654122
+ 0.076025287559035953
+ 0.076028201989734132
+ 0.076031116455749698
+ 0.076034030957083665
+ 0.076036945493737143
+ 0.076039860065711132
+ 0.076042774673006699
+ 0.076045689315625054
+ 0.07604860399356711
+ 0.076051518706833923
+ 0.076054433455426493
+ 0.076057348239346095
+ 0.076060263058593522
+ 0.076063177913170077
+ 0.076066092803076718
+ 0.076069007728314403
+ 0.076071922688884325
+ 0.076074837684787636
+ 0.076077752716025057
+ 0.076080667782597949
+ 0.076083582884507242
+ 0.076086498021754101
+ 0.076089413194339539
+ 0.076092328402264472
+ 0.076095243645530261
+ 0.076098158924137682
+ 0.076101074238087887
+ 0.07610398958738207
+ 0.076106904972021147
+ 0.076109820392006228
+ 0.076112735847338311
+ 0.07611565133801855
+ 0.076118566864047929
+ 0.076121482425427628
+ 0.076124398022158521
+ 0.076127313654241913
+ 0.076130229321678733
+ 0.076133145024470023
+ 0.076136060762616933
+ 0.076138976536120423
+ 0.076141892344981588
+ 0.076144808189201621
+ 0.076147724068781342
+ 0.076150639983722054
+ 0.076153555934024758
+ 0.076156471919690369
+ 0.076159387940720191
+ 0.076162303997115099
+ 0.076165220088876287
+ 0.076168136216004767
+ 0.076171052378501497
+ 0.076173968576367823
+ 0.076176884809604481
+ 0.076179801078212803
+ 0.076182717382193663
+ 0.076185633721548213
+ 0.07618855009627766
+ 0.076191466506382935
+ 0.076194382951864925
+ 0.076197299432725102
+ 0.076200215948964173
+ 0.07620313250058347
+ 0.076206049087583896
+ 0.07620896570996652
+ 0.076211882367732534
+ 0.076214799060882799
+ 0.076217715789418675
+ 0.07622063255334105
+ 0.076223549352651007
+ 0.076226466187349642
+ 0.076229383057438024
+ 0.07623229996291718
+ 0.076235216903788178
+ 0.076238133880052281
+ 0.076241050891710307
+ 0.076243967938763507
+ 0.076246885021212768
+ 0.076249802139059394
+ 0.076252719292304288
+ 0.076255636480948477
+ 0.076258553704993223
+ 0.07626147096443954
+ 0.076264388259288468
+ 0.076267305589541048
+ 0.076270222955198308
+ 0.076273140356261551
+ 0.076276057792731569
+ 0.076278975264609652
+ 0.076281892771896856
+ 0.076284810314594054
+ 0.076287727892702509
+ 0.076290645506223248
+ 0.07629356315515734
+ 0.076296480839505895
+ 0.076299398559269926
+ 0.076302316314450558
+ 0.076305234105048844
+ 0.076308151931065923
+ 0.076311069792502725
+ 0.076313987689360471
+ 0.076316905621640216
+ 0.076319823589342931
+ 0.076322741592469809
+ 0.076325659631021905
+ 0.076328577705000303
+ 0.076331495814406056
+ 0.076334413959240233
+ 0.076337332139503972
+ 0.076340250355198272
+ 0.076343168606324174
+ 0.076346086892882942
+ 0.07634900521487549
+ 0.076351923572302915
+ 0.07635484196516644
+ 0.076357760393466964
+ 0.076360678857205697
+ 0.076363597356383678
+ 0.076366515891001879
+ 0.076369434461061536
+ 0.076372353066563647
+ 0.076375271707509323
+ 0.076378190383899675
+ 0.076381109095735783
+ 0.076384027843018606
+ 0.076386946625749338
+ 0.076389865443929172
+ 0.076392784297558899
+ 0.07639570318663981
+ 0.076398622111172945
+ 0.076401541071159346
+ 0.076404460066600233
+ 0.076407379097496453
+ 0.076410298163849283
+ 0.076413217265659791
+ 0.076416136402928991
+ 0.076419055575658049
+ 0.076421974783847935
+ 0.076424894027499829
+ 0.076427813306614745
+ 0.076430732621193889
+ 0.076433651971238165
+ 0.076436571356748848
+ 0.076439490777726854
+ 0.076442410234173419
+ 0.076445329726089487
+ 0.076448249253476264
+ 0.076451168816334791
+ 0.076454088414666152
+ 0.076457008048471428
+ 0.076459927717751772
+ 0.076462847422508098
+ 0.076465767162741755
+ 0.076468686938453559
+ 0.076471606749644774
+ 0.076474526596316469
+ 0.076477446478469671
+ 0.076480366396105559
+ 0.076483286349225119
+ 0.076486206337829474
+ 0.076489126361919763
+ 0.076492046421497012
+ 0.076494966516562277
+ 0.076497886647116875
+ 0.076500806813161626
+ 0.076503727014697667
+ 0.07650664725172622
+ 0.076509567524248256
+ 0.076512487832264969
+ 0.0765154081757774
+ 0.076518328554786547
+ 0.076521248969293659
+ 0.076524169419299654
+ 0.076527089904805917
+ 0.0765300104258132
+ 0.076532930982322833
+ 0.076535851574335706
+ 0.076538772201853164
+ 0.076541692864876054
+ 0.076544613563405584
+ 0.076547534297442932
+ 0.076550455066989029
+ 0.07655337587204511
+ 0.07655629671261216
+ 0.076559217588691317
+ 0.076562138500283664
+ 0.07656505944739031
+ 0.07656798043001245
+ 0.076570901448150874
+ 0.076573822501806985
+ 0.076576743590981836
+ 0.076579664715676371
+ 0.076582585875891826
+ 0.0765855070716292
+ 0.076588428302889602
+ 0.076591349569674214
+ 0.076594270871984074
+ 0.076597192209820253
+ 0.076600113583183943
+ 0.076603034992076172
+ 0.076605956436497924
+ 0.076608877916450574
+ 0.07661179943193494
+ 0.0766147209829523
+ 0.076617642569503722
+ 0.076620564191590218
+ 0.076623485849212997
+ 0.076626407542373084
+ 0.076629329271071564
+ 0.076632251035309754
+ 0.076635172835088389
+ 0.07663809467040883
+ 0.076641016541272089
+ 0.07664393844767925
+ 0.076646860389631449
+ 0.076649782367129785
+ 0.076652704380175393
+ 0.07665562642876933
+ 0.076658548512912678
+ 0.076661470632606574
+ 0.076664392787852101
+ 0.076667314978650328
+ 0.076670237205002462
+ 0.076673159466909488
+ 0.076676081764372628
+ 0.076679004097392908
+ 0.076681926465971356
+ 0.076684848870109207
+ 0.076687771309807556
+ 0.076690693785067474
+ 0.076693616295890041
+ 0.076696538842276396
+ 0.076699461424227622
+ 0.076702384041744814
+ 0.076705306694829001
+ 0.076708229383481499
+ 0.076711152107703268
+ 0.076714074867495471
+ 0.07671699766285911
+ 0.076719920493795404
+ 0.076722843360305382
+ 0.076725766262390249
+ 0.076728689200051048
+ 0.076731612173288791
+ 0.076734535182104643
+ 0.076737458226499869
+ 0.076740381306475397
+ 0.076743304422032449
+ 0.076746227573171968
+ 0.076749150759895121
+ 0.076752073982203226
+ 0.07675499724009717
+ 0.076757920533578064
+ 0.076760843862647171
+ 0.076763767227305435
+ 0.076766690627554035
+ 0.076769614063394012
+ 0.076772537534826615
+ 0.076775461041852872
+ 0.076778384584473836
+ 0.076781308162690742
+ 0.076784231776504688
+ 0.076787155425916534
+ 0.076790079110927792
+ 0.076793002831539212
+ 0.076795926587752167
+ 0.076798850379567643
+ 0.076801774206986723
+ 0.076804698070010599
+ 0.076807621968640341
+ 0.076810545902877073
+ 0.076813469872721973
+ 0.076816393878176015
+ 0.076819317919240404
+ 0.076822241995916168
+ 0.076825166108204612
+ 0.07682809025610661
+ 0.076831014439623396
+ 0.076833938658756137
+ 0.076836862913505777
+ 0.076839787203873605
+ 0.076842711529860691
+ 0.076845635891468062
+ 0.076848560288696965
+ 0.076851484721548402
+ 0.076854409190023509
+ 0.076857333694123481
+ 0.07686025823384933
+ 0.076863182809202207
+ 0.076866107420183238
+ 0.076869032066793616
+ 0.076871956749034243
+ 0.076874881466906533
+ 0.076877806220411307
+ 0.07688073100954991
+ 0.076883655834323258
+ 0.07688658069473267
+ 0.076889505590779186
+ 0.076892430522463862
+ 0.076895355489787848
+ 0.076898280492752297
+ 0.07690120553135836
+ 0.076904130605606941
+ 0.076907055715499439
+ 0.0769099808610368
+ 0.076912906042220244
+ 0.076915831259050868
+ 0.076918756511529698
+ 0.076921681799657957
+ 0.076924607123436725
+ 0.076927532482867114
+ 0.076930457877950262
+ 0.076933383308687264
+ 0.076936308775079301
+ 0.076939234277127386
+ 0.07694215981483285
+ 0.076945085388196596
+ 0.076948010997219762
+ 0.076950936641903583
+ 0.076953862322249031
+ 0.076956788038257506
+ 0.076959713789929801
+ 0.076962639577267219
+ 0.076965565400270899
+ 0.076968491258941868
+ 0.076971417153281332
+ 0.076974343083290375
+ 0.076977269048970107
+ 0.076980195050321637
+ 0.076983121087346187
+ 0.076986047160044785
+ 0.076988973268418581
+ 0.076991899412468742
+ 0.076994825592196281
+ 0.076997751807602446
+ 0.077000678058688279
+ 0.07700360434545496
+ 0.077006530667903597
+ 0.077009457026035413
+ 0.077012383419851255
+ 0.077015309849352578
+ 0.077018236314540314
+ 0.077021162815415573
+ 0.077024089351979574
+ 0.077027015924233347
+ 0.077029942532178222
+ 0.07703286917581513
+ 0.077035795855145278
+ 0.077038722570169721
+ 0.077041649320889666
+ 0.077044576107306195
+ 0.077047502929420461
+ 0.077050429787233685
+ 0.077053356680746823
+ 0.077056283609961043
+ 0.077059210574877565
+ 0.077062137575497416
+ 0.077065064611821846
+ 0.077067991683851825
+ 0.077070918791588672
+ 0.077073845935033386
+ 0.077076773114187078
+ 0.077079700329050996
+ 0.077082627579626167
+ 0.07708555486591373
+ 0.077088482187914892
+ 0.077091409545630721
+ 0.077094336939062369
+ 0.077097264368210947
+ 0.077100191833077689
+ 0.077103119333663553
+ 0.077106046869969844
+ 0.077108974441997546
+ 0.077111902049747882
+ 0.07711482969322192
+ 0.077117757372420839
+ 0.077120685087345833
+ 0.077123612837997846
+ 0.077126540624378251
+ 0.077129468446488117
+ 0.077132396304328402
+ 0.077135324197900465
+ 0.077138252127205251
+ 0.077141180092244035
+ 0.077144108093017874
+ 0.077147036129527946
+ 0.077149964201775389
+ 0.077152892309761342
+ 0.077155820453486859
+ 0.077158748632953245
+ 0.077161676848161456
+ 0.07716460509911266
+ 0.077167533385808104
+ 0.077170461708248858
+ 0.077173390066436143
+ 0.077176318460370805
+ 0.077179246890054343
+ 0.07718217535548777
+ 0.077185103856672099
+ 0.077188032393608635
+ 0.077190960966298378
+ 0.077193889574742588
+ 0.077196818218942295
+ 0.077199746898898705
+ 0.077202675614612984
+ 0.077205604366086228
+ 0.077208533153319561
+ 0.077211461976314164
+ 0.077214390835071117
+ 0.077217319729591616
+ 0.077220248659876783
+ 0.077223177625927814
+ 0.077226106627745691
+ 0.077229035665331805
+ 0.07723196473868707
+ 0.077234893847812763
+ 0.077237822992709884
+ 0.077240752173379737
+ 0.077243681389823307
+ 0.077246610642041871
+ 0.077249539930036554
+ 0.077252469253808381
+ 0.077255398613358672
+ 0.077258328008688398
+ 0.077261257439798781
+ 0.077264186906690971
+ 0.077267116409366177
+ 0.077270045947825466
+ 0.077272975522069978
+ 0.077275905132100739
+ 0.077278834777919109
+ 0.07728176445952617
+ 0.077284694176923088
+ 0.077287623930110849
+ 0.077290553719090757
+ 0.077293483543863964
+ 0.077296413404431413
+ 0.077299343300794535
+ 0.077302273232954244
+ 0.077305203200911929
+ 0.077308133204668436
+ 0.077311063244225098
+ 0.077313993319583107
+ 0.077316923430743423
+ 0.077319853577707362
+ 0.077322783760476077
+ 0.077325713979050553
+ 0.077328644233432137
+ 0.077331574523621743
+ 0.077334504849620719
+ 0.077337435211430133
+ 0.077340365609051179
+ 0.077343296042484924
+ 0.077346226511732646
+ 0.077349157016795331
+ 0.077352087557674226
+ 0.077355018134370554
+ 0.077357948746885244
+ 0.077360879395219684
+ 0.077363810079374803
+ 0.077366740799352032
+ 0.077369671555152258
+ 0.077372602346776745
+ 0.077375533174226671
+ 0.077378464037503106
+ 0.077381394936607242
+ 0.077384325871540247
+ 0.077387256842303229
+ 0.077390187848897438
+ 0.077393118891323873
+ 0.077396049969583755
+ 0.07739898108367832
+ 0.077401912233608691
+ 0.077404843419375896
+ 0.077407774640981281
+ 0.077410705898425788
+ 0.07741363719171071
+ 0.077416568520837198
+ 0.077419499885806306
+ 0.077422431286619339
+ 0.077425362723277283
+ 0.077428294195781511
+ 0.07743122570413298
+ 0.077434157248332885
+ 0.077437088828382489
+ 0.077440020444282748
+ 0.077442952096034953
+ 0.07744588378364034
+ 0.077448815507099922
+ 0.077451747266414891
+ 0.077454679061586443
+ 0.07745761089261563
+ 0.0774605427595038
+ 0.077463474662251994
+ 0.077466406600861251
+ 0.077469338575332961
+ 0.077472270585668149
+ 0.077475202631867898
+ 0.077478134713933541
+ 0.077481066831866161
+ 0.077483998985666894
+ 0.077486931175336934
+ 0.077489863400877407
+ 0.077492795662289476
+ 0.077495727959574365
+ 0.077498660292733154
+ 0.077501592661766969
+ 0.077504525066677127
+ 0.077507457507464669
+ 0.077510389984130651
+ 0.077513322496676543
+ 0.077516255045103288
+ 0.077519187629411998
+ 0.077522120249603976
+ 0.077525052905680347
+ 0.077527985597642179
+ 0.07753091832549068
+ 0.077533851089227182
+ 0.077536783888852587
+ 0.077539716724368143
+ 0.077542649595775198
+ 0.077545582503074723
+ 0.077548515446267771
+ 0.077551448425355773
+ 0.077554381440339826
+ 0.077557314491220899
+ 0.07756024757800041
+ 0.077563180700679343
+ 0.077566113859258892
+ 0.077569047053740278
+ 0.077571980284124709
+ 0.077574913550413238
+ 0.077577846852607144
+ 0.07758078019070748
+ 0.077583713564715398
+ 0.077586646974632217
+ 0.077589580420458909
+ 0.077592513902196847
+ 0.077595447419847058
+ 0.077598380973410652
+ 0.07760131456288899
+ 0.077604248188283056
+ 0.077607181849594184
+ 0.077610115546823275
+ 0.077613049279971896
+ 0.077615983049040868
+ 0.077618916854031494
+ 0.077621850694944969
+ 0.077624784571782318
+ 0.07762771848454493
+ 0.077630652433233777
+ 0.077633586417850189
+ 0.077636520438395168
+ 0.077639454494869989
+ 0.077642388587275762
+ 0.077645322715613752
+ 0.077648256879885108
+ 0.077651191080090928
+ 0.077654125316232364
+ 0.07765705958831072
+ 0.077659993896327092
+ 0.077662928240282592
+ 0.077665862620178411
+ 0.077668797036015799
+ 0.07767173148779595
+ 0.077674665975519822
+ 0.077677600499188884
+ 0.077680535058804012
+ 0.077683469654366635
+ 0.077686404285877711
+ 0.077689338953338599
+ 0.077692273656750396
+ 0.077695208396114268
+ 0.077698143171431353
+ 0.07770107798270276
+ 0.077704012829929864
+ 0.077706947713113775
+ 0.077709882632255603
+ 0.077712817587356459
+ 0.077715752578417688
+ 0.077718687605440318
+ 0.077721622668425611
+ 0.077724557767374844
+ 0.077727492902288906
+ 0.077730428073169142
+ 0.077733363280016787
+ 0.077736298522832939
+ 0.077739233801618748
+ 0.077742169116375437
+ 0.077745104467104115
+ 0.077748039853806086
+ 0.077750975276482392
+ 0.077753910735134379
+ 0.077756846229762991
+ 0.077759781760369698
+ 0.077762717326955375
+ 0.077765652929521381
+ 0.077768588568068814
+ 0.077771524242598991
+ 0.077774459953112843
+ 0.077777395699611784
+ 0.077780331482096787
+ 0.077783267300569267
+ 0.077786203155030278
+ 0.077789139045480946
+ 0.077792074971922559
+ 0.077795010934356201
+ 0.077797946932783149
+ 0.077800882967204499
+ 0.077803819037621402
+ 0.077806755144035109
+ 0.077809691286446825
+ 0.077812627464857745
+ 0.077815563679268979
+ 0.077818499929681637
+ 0.077821436216097092
+ 0.077824372538516387
+ 0.077827308896940839
+ 0.077830245291371447
+ 0.077833181721809433
+ 0.07783611818825617
+ 0.077839054690712534
+ 0.077841991229180008
+ 0.077844927803659592
+ 0.07784786441415259
+ 0.077850801060660002
+ 0.077853737743183132
+ 0.077856674461723202
+ 0.077859611216281377
+ 0.077862548006858823
+ 0.07786548483345665
+ 0.077868421696076079
+ 0.077871358594718401
+ 0.077874295529384657
+ 0.077877232500076124
+ 0.077880169506793939
+ 0.077883106549539435
+ 0.07788604362831357
+ 0.077888980743117661
+ 0.077891917893952861
+ 0.077894855080820405
+ 0.077897792303721403
+ 0.077900729562657048
+ 0.077903666857628576
+ 0.07790660418863711
+ 0.077909541555684012
+ 0.077912478958770182
+ 0.077915416397897147
+ 0.077918353873065782
+ 0.077921291384277447
+ 0.077924228931533279
+ 0.077927166514834431
+ 0.077930104134182235
+ 0.077933041789577703
+ 0.077935979481022197
+ 0.077938917208516784
+ 0.077941854972062657
+ 0.077944792771661053
+ 0.077947730607313179
+ 0.077950668479020088
+ 0.077953606386783156
+ 0.07795654433060345
+ 0.077959482310482137
+ 0.077962420326420631
+ 0.077965358378419877
+ 0.077968296466481096
+ 0.077971234590605648
+ 0.07797417275079456
+ 0.077977110947049122
+ 0.077980049179370459
+ 0.077982987447759819
+ 0.077985925752218285
+ 0.077988864092747134
+ 0.077991802469347615
+ 0.077994740882020783
+ 0.077997679330768024
+ 0.078000617815590367
+ 0.078003556336488977
+ 0.078006494893465159
+ 0.078009433486520216
+ 0.07801237211565501
+ 0.078015310780871053
+ 0.078018249482169358
+ 0.078021188219551174
+ 0.078024126993017695
+ 0.078027065802570086
+ 0.078030004648209611
+ 0.078032943529937407
+ 0.078035882447754765
+ 0.078038821401662795
+ 0.078041760391662676
+ 0.078044699417755617
+ 0.07804763847994281
+ 0.078050577578225575
+ 0.078053516712604951
+ 0.078056455883082201
+ 0.078059395089658548
+ 0.078062334332335129
+ 0.07806527361111322
+ 0.078068212925993877
+ 0.078071152276978417
+ 0.078074091664068021
+ 0.078077031087264007
+ 0.078079970546567221
+ 0.078082910041979287
+ 0.078085849573501134
+ 0.078088789141134055
+ 0.078091728744879157
+ 0.078094668384737748
+ 0.078097608060711102
+ 0.078100547772800163
+ 0.07810348752100639
+ 0.078106427305330794
+ 0.078109367125774654
+ 0.078112306982339147
+ 0.078115246875025593
+ 0.078118186803835088
+ 0.078121126768768756
+ 0.078124066769827999
+ 0.07812700680701383
+ 0.078129946880327608
+ 0.078132886989770348
+ 0.078135827135343366
+ 0.078138767317047983
+ 0.078141707534885252
+ 0.078144647788856325
+ 0.078147588078962535
+ 0.078150528405205061
+ 0.078153468767585027
+ 0.078156409166103738
+ 0.078159349600762359
+ 0.078162290071562071
+ 0.078165230578504108
+ 0.07816817112158965
+ 0.07817111170081989
+ 0.078174052316196063
+ 0.078176992967719461
+ 0.078179933655391068
+ 0.078182874379212272
+ 0.078185815139184309
+ 0.07818875593530826
+ 0.078191696767585292
+ 0.078194637636016792
+ 0.078197578540603913
+ 0.078200519481347722
+ 0.07820346045824951
+ 0.078206401471310555
+ 0.078209342520531994
+ 0.078212283605915048
+ 0.078215224727460925
+ 0.078218165885170859
+ 0.078221107079046073
+ 0.078224048309087635
+ 0.078226989575296974
+ 0.078229930877675144
+ 0.078232872216223381
+ 0.078235813590942879
+ 0.078238755001834831
+ 0.078241696448900611
+ 0.078244637932141273
+ 0.078247579451558039
+ 0.078250521007152199
+ 0.07825346259892485
+ 0.078256404226877227
+ 0.078259345891010648
+ 0.078262287591326168
+ 0.07826522932782512
+ 0.078268171100508724
+ 0.078271112909378146
+ 0.078274054754434566
+ 0.078276996635679302
+ 0.078279938553113423
+ 0.078282880506738234
+ 0.078285822496554941
+ 0.078288764522564572
+ 0.078291706584768736
+ 0.07829464868316828
+ 0.078297590817764634
+ 0.078300532988558949
+ 0.078303475195552419
+ 0.078306417438746195
+ 0.078309359718141708
+ 0.078312302033739858
+ 0.078315244385542063
+ 0.078318186773549625
+ 0.078321129197763559
+ 0.078324071658185099
+ 0.078327014154815591
+ 0.078329956687656133
+ 0.078332899256708055
+ 0.078335841861972524
+ 0.078338784503450651
+ 0.078341727181143864
+ 0.078344669895053093
+ 0.078347612645179865
+ 0.078350555431525096
+ 0.078353498254090367
+ 0.078356441112876471
+ 0.07835938400788503
+ 0.078362326939116933
+ 0.07836526990657372
+ 0.078368212910256307
+ 0.078371155950165985
+ 0.078374099026304114
+ 0.078377042138671763
+ 0.078379985287270179
+ 0.078382928472100696
+ 0.078385871693164397
+ 0.07838881495046264
+ 0.078391758243996412
+ 0.078394701573767184
+ 0.078397644939776093
+ 0.078400588342024319
+ 0.078403531780513055
+ 0.078406475255243607
+ 0.078409418766217112
+ 0.078412362313435
+ 0.078415305896898171
+ 0.07841824951660803
+ 0.078421193172565837
+ 0.078424136864772689
+ 0.078427080593229864
+ 0.078430024357938652
+ 0.078432968158900149
+ 0.078435911996115798
+ 0.078438855869586502
+ 0.078441799779313787
+ 0.078444743725298624
+ 0.078447687707542416
+ 0.078450631726046285
+ 0.078453575780811594
+ 0.078456519871839353
+ 0.078459463999130938
+ 0.078462408162687652
+ 0.078465352362510399
+ 0.078468296598600773
+ 0.078471240870959719
+ 0.078474185179588665
+ 0.078477129524488834
+ 0.078480073905661293
+ 0.078483018323107306
+ 0.07848596277682815
+ 0.078488907266824975
+ 0.078491851793099157
+ 0.078494796355651916
+ 0.078497740954484321
+ 0.078500685589597635
+ 0.078503630260993204
+ 0.078506574968672208
+ 0.07850951971263577
+ 0.078512464492885209
+ 0.078515409309421802
+ 0.078518354162246645
+ 0.078521299051361113
+ 0.0785242439767663
+ 0.078527188938463513
+ 0.078530133936453958
+ 0.078533078970738968
+ 0.078536024041319541
+ 0.078538969148197108
+ 0.078541914291372764
+ 0.078544859470847925
+ 0.07854780468662359
+ 0.078550749938701175
+ 0.078553695227081805
+ 0.078556640551766768
+ 0.078559585912757218
+ 0.078562531310054501
+ 0.078565476743659809
+ 0.078568422213574268
+ 0.078571367719799293
+ 0.078574313262335993
+ 0.078577258841185646
+ 0.078580204456349376
+ 0.078583150107828612
+ 0.07858609579562445
+ 0.078589041519738084
+ 0.07859198728017093
+ 0.078594933076923987
+ 0.078597878909998656
+ 0.078600824779396103
+ 0.078603770685117647
+ 0.078606716627164411
+ 0.078609662605537672
+ 0.078612608620238666
+ 0.078615554671268739
+ 0.078618500758628876
+ 0.07862144688232052
+ 0.078624393042344781
+ 0.07862733923870302
+ 0.078630285471396402
+ 0.078633231740426177
+ 0.078636178045793523
+ 0.07863912438749987
+ 0.078642070765546232
+ 0.078645017179933885
+ 0.078647963630664106
+ 0.078650910117738129
+ 0.07865385664115726
+ 0.078656803200922637
+ 0.078659749797035494
+ 0.078662696429497136
+ 0.078665643098308868
+ 0.078668589803471717
+ 0.078671536544987083
+ 0.078674483322856079
+ 0.078677430137080104
+ 0.078680376987660353
+ 0.078683323874598005
+ 0.078686270797894281
+ 0.078689217757550473
+ 0.078692164753567814
+ 0.078695111785947569
+ 0.078698058854691
+ 0.078701005959799245
+ 0.078703953101273608
+ 0.078706900279115366
+ 0.078709847493325658
+ 0.078712794743905815
+ 0.078715742030857044
+ 0.078718689354180568
+ 0.078721636713877649
+ 0.078724584109949605
+ 0.078727531542397547
+ 0.078730479011222806
+ 0.078733426516426522
+ 0.078736374058010053
+ 0.078739321635974566
+ 0.078742269250321406
+ 0.07874521690105174
+ 0.078748164588166747
+ 0.078751112311667856
+ 0.078754060071556123
+ 0.078757007867832893
+ 0.078759955700499332
+ 0.078762903569556827
+ 0.078765851475006504
+ 0.078768799416849597
+ 0.07877174739508748
+ 0.078774695409721235
+ 0.078777643460752209
+ 0.078780591548181608
+ 0.078783539672010655
+ 0.078786487832240779
+ 0.078789436028872964
+ 0.078792384261908627
+ 0.078795332531348877
+ 0.078798280837195173
+ 0.078801229179448581
+ 0.078804177558110422
+ 0.078807125973181846
+ 0.078810074424664256
+ 0.078813022912558831
+ 0.078815971436866722
+ 0.07881891999758936
+ 0.078821868594727812
+ 0.078824817228283509
+ 0.078827765898257601
+ 0.078830714604651325
+ 0.078833663347465957
+ 0.078836612126702676
+ 0.078839560942362899
+ 0.078842509794447693
+ 0.07884545868295835
+ 0.078848407607896187
+ 0.078851356569262496
+ 0.0788543055670584
+ 0.078857254601285218
+ 0.078860203671944157
+ 0.078863152779036508
+ 0.078866101922563603
+ 0.078869051102526552
+ 0.078872000318926674
+ 0.078874949571765121
+ 0.078877898861043322
+ 0.078880848186762345
+ 0.07888379754892362
+ 0.078886746947528341
+ 0.078889696382577632
+ 0.078892645854072949
+ 0.078895595362015444
+ 0.078898544906406284
+ 0.078901494487246926
+ 0.078904444104538424
+ 0.078907393758282166
+ 0.078910343448479386
+ 0.078913293175131322
+ 0.078916242938239151
+ 0.078919192737804192
+ 0.07892214257382775
+ 0.07892509244631106
+ 0.07892804235525526
+ 0.078930992300661806
+ 0.078933942282531755
+ 0.078936892300866424
+ 0.078939842355667214
+ 0.078942792446935292
+ 0.07894574257467174
+ 0.078948692738878154
+ 0.078951642939555464
+ 0.078954593176705098
+ 0.078957543450328238
+ 0.078960493760426284
+ 0.078963444107000319
+ 0.078966394490051661
+ 0.078969344909581698
+ 0.078972295365591527
+ 0.078975245858082396
+ 0.078978196387055652
+ 0.07898114695251264
+ 0.078984097554454374
+ 0.078987048192882284
+ 0.078989998867797562
+ 0.078992949579201485
+ 0.0789959003270954
+ 0.078998851111480542
+ 0.079001801932357882
+ 0.079004752789729113
+ 0.079007703683595304
+ 0.079010654613957565
+ 0.079013605580817534
+ 0.079016556584176098
+ 0.079019507624034688
+ 0.079022458700394538
+ 0.079025409813256897
+ 0.079028360962623043
+ 0.079031312148494265
+ 0.079034263370871868
+ 0.079037214629757033
+ 0.079040165925151021
+ 0.07904311725705504
+ 0.079046068625470478
+ 0.079049020030398556
+ 0.079051971471840524
+ 0.079054922949797574
+ 0.079057874464271163
+ 0.079060826015262375
+ 0.079063777602772597
+ 0.07906672922680294
+ 0.079069680887354929
+ 0.079072632584429467
+ 0.079075584318028178
+ 0.079078536088152088
+ 0.079081487894802627
+ 0.079084439737980794
+ 0.079087391617688185
+ 0.079090343533925897
+ 0.079093295486695192
+ 0.07909624747599743
+ 0.079099199501833695
+ 0.079102151564205414
+ 0.079105103663113893
+ 0.079108055798560242
+ 0.079111007970545669
+ 0.079113960179071838
+ 0.079116912424139624
+ 0.07911986470575047
+ 0.079122817023905542
+ 0.079125769378606242
+ 0.07912872176985368
+ 0.079131674197649243
+ 0.07913462666199407
+ 0.07913757916288966
+ 0.079140531700337108
+ 0.079143484274337747
+ 0.07914643688489284
+ 0.079149389532003595
+ 0.07915234221567137
+ 0.079155294935897388
+ 0.079158247692682843
+ 0.079161200486029204
+ 0.079164153315937555
+ 0.079167106182409283
+ 0.079170059085445554
+ 0.079173012025047812
+ 0.079175965001217111
+ 0.07917891801395488
+ 0.079181871063262355
+ 0.079184824149140728
+ 0.079187777271591417
+ 0.079190730430615627
+ 0.079193683626214553
+ 0.079196636858389624
+ 0.079199590127141964
+ 0.079202543432472933
+ 0.079205496774383807
+ 0.079208450152875726
+ 0.079211403567950214
+ 0.079214357019608356
+ 0.079217310507851399
+ 0.079220264032680773
+ 0.079223217594097672
+ 0.07922617119210329
+ 0.07922912482669911
+ 0.07923207849788623
+ 0.079235032205665898
+ 0.079237985950039572
+ 0.079240939731008403
+ 0.07924389354857371
+ 0.079246847402736714
+ 0.079249801293498789
+ 0.079252755220861115
+ 0.07925570918482501
+ 0.079258663185391751
+ 0.079261617222562558
+ 0.079264571296338751
+ 0.079267525406721676
+ 0.079270479553712636
+ 0.079273433737312743
+ 0.079276387957523342
+ 0.079279342214345724
+ 0.079282296507781222
+ 0.079285250837831028
+ 0.079288205204496476
+ 0.079291159607778786
+ 0.079294114047679373
+ 0.079297068524199377
+ 0.079300023037340156
+ 0.079302977587102905
+ 0.079305932173488983
+ 0.079308886796499653
+ 0.07931184145613622
+ 0.079314796152399947
+ 0.079317750885291985
+ 0.07932070565481382
+ 0.079323660460966658
+ 0.079326615303751694
+ 0.079329570183170439
+ 0.079332525099223922
+ 0.079335480051913529
+ 0.079338435041240551
+ 0.079341390067206252
+ 0.079344345129811866
+ 0.079347300229058781
+ 0.079350255364948302
+ 0.079353210537481608
+ 0.07935616574665999
+ 0.079359120992484711
+ 0.079362076274957172
+ 0.079365031594078594
+ 0.079367986949850186
+ 0.079370942342273376
+ 0.079373897771349414
+ 0.079376853237079423
+ 0.07937980873946486
+ 0.07938276427850692
+ 0.079385719854206963
+ 0.079388675466566333
+ 0.079391631115586142
+ 0.079394586801267777
+ 0.079397542523612488
+ 0.079400498282621593
+ 0.079403454078296326
+ 0.079406409910638076
+ 0.079409365779648119
+ 0.079412321685327622
+ 0.07941527762767793
+ 0.079418233606700347
+ 0.079421189622396207
+ 0.079424145674766577
+ 0.079427101763813179
+ 0.079430057889536915
+ 0.079433014051939199
+ 0.079435970251021323
+ 0.079438926486784578
+ 0.07944188275923017
+ 0.079444839068359585
+ 0.079447795414173975
+ 0.079450751796674518
+ 0.079453708215862784
+ 0.079456664671739868
+ 0.079459621164307132
+ 0.079462577693565836
+ 0.07946553425951719
+ 0.079468490862162566
+ 0.079471447501503367
+ 0.079474404177540786
+ 0.079477360890276016
+ 0.079480317639710515
+ 0.079483274425845449
+ 0.079486231248682204
+ 0.079489188108222045
+ 0.079492145004466178
+ 0.079495101937415977
+ 0.079498058907072761
+ 0.079501015913437695
+ 0.07950397295651232
+ 0.079506930036297593
+ 0.079509887152795111
+ 0.079512844306005984
+ 0.079515801495931668
+ 0.079518758722573288
+ 0.079521715985932176
+ 0.079524673286009706
+ 0.079527630622807113
+ 0.07953058799632573
+ 0.07953354540656675
+ 0.079536502853531588
+ 0.079539460337221479
+ 0.079542417857637826
+ 0.07954537541478171
+ 0.079548333008654631
+ 0.079551290639257741
+ 0.079554248306592398
+ 0.079557206010659964
+ 0.079560163751461688
+ 0.079563121528998804
+ 0.079566079343272686
+ 0.0795690371942845
+ 0.079571995082035829
+ 0.079574953006527657
+ 0.079577910967761484
+ 0.07958086896573853
+ 0.0795838270004601
+ 0.079586785071927457
+ 0.07958974318014192
+ 0.079592701325104848
+ 0.079595659506817587
+ 0.079598617725281234
+ 0.079601575980497219
+ 0.079604534272466887
+ 0.079607492601191404
+ 0.079610450966672242
+ 0.079613409368910426
+ 0.079616367807907609
+ 0.079619326283664887
+ 0.079622284796183482
+ 0.079625243345464947
+ 0.079628201931510337
+ 0.079631160554321109
+ 0.079634119213898458
+ 0.07963707791024377
+ 0.07964003664335835
+ 0.07964299541324342
+ 0.079645954219900367
+ 0.079648913063330426
+ 0.079651871943534999
+ 0.079654830860515266
+ 0.079657789814272559
+ 0.079660748804808224
+ 0.079663707832123634
+ 0.079666666896219901
+ 0.079669625997098509
+ 0.079672585134760582
+ 0.079675544309207591
+ 0.079678503520440799
+ 0.079681462768461497
+ 0.079684422053271017
+ 0.079687381374870594
+ 0.079690340733261644
+ 0.079693300128445291
+ 0.079696259560422963
+ 0.079699219029196036
+ 0.079702178534765633
+ 0.079705138077133267
+ 0.079708097656300048
+ 0.079711057272267391
+ 0.079714016925036671
+ 0.079716976614608984
+ 0.07971993634098587
+ 0.079722896104168439
+ 0.079725855904158122
+ 0.07972881574095618
+ 0.079731775614564029
+ 0.079734735524982767
+ 0.079737695472213946
+ 0.079740655456258636
+ 0.079743615477118376
+ 0.079746575534794209
+ 0.079749535629287702
+ 0.079752495760599978
+ 0.079755455928732483
+ 0.079758416133686394
+ 0.079761376375463197
+ 0.079764336654063975
+ 0.079767296969490267
+ 0.079770257321743351
+ 0.079773217710824323
+ 0.079776178136734738
+ 0.079779138599475663
+ 0.079782099099048709
+ 0.079785059635454902
+ 0.07978802020869577
+ 0.079790980818772547
+ 0.079793941465686441
+ 0.079796902149438992
+ 0.079799862870031255
+ 0.0798028236274647
+ 0.079805784421740633
+ 0.079808745252860372
+ 0.079811706120825096
+ 0.079814667025636304
+ 0.079817627967295274
+ 0.079820588945803184
+ 0.079823549961161464
+ 0.07982651101337139
+ 0.079829472102434393
+ 0.079832433228351526
+ 0.079835394391124317
+ 0.07983835559075407
+ 0.079841316827242048
+ 0.079844278100589514
+ 0.079847239410797841
+ 0.079850200757868389
+ 0.079853162141802422
+ 0.079856123562601328
+ 0.079859085020266271
+ 0.079862046514798724
+ 0.079865008046199906
+ 0.079867969614471096
+ 0.079870931219613805
+ 0.0798738928616292
+ 0.07987685454051853
+ 0.079879816256283334
+ 0.07988277800892464
+ 0.079885739798444114
+ 0.079888701624842753
+ 0.079891663488122128
+ 0.079894625388283333
+ 0.079897587325327785
+ 0.079900549299256884
+ 0.079903511310071798
+ 0.079906473357774066
+ 0.079909435442364757
+ 0.079912397563845383
+ 0.079915359722217041
+ 0.0799183219174813
+ 0.079921284149639393
+ 0.079924246418692571
+ 0.079927208724642193
+ 0.079930171067489647
+ 0.079933133447236182
+ 0.079936095863883061
+ 0.079939058317431755
+ 0.079942020807883526
+ 0.079944983335239556
+ 0.079947945899501369
+ 0.079950908500670229
+ 0.079953871138747412
+ 0.079956833813734376
+ 0.079959796525632218
+ 0.07996275927444231
+ 0.079965722060166181
+ 0.07996868488280498
+ 0.079971647742360041
+ 0.079974610638832794
+ 0.079977573572224375
+ 0.079980536542536215
+ 0.079983499549769743
+ 0.079986462593926069
+ 0.079989425675006692
+ 0.079992388793012834
+ 0.079995351947945922
+ 0.07999831513980718
+ 0.080001278368597994
+ 0.080004241634319614
+ 0.080007204936973442
+ 0.080010168276560836
+ 0.080013131653083006
+ 0.080016095066541365
+ 0.080019058516937192
+ 0.0800220220042719
+ 0.080024985528546741
+ 0.080027949089762906
+ 0.08003091268792209
+ 0.080033876323025305
+ 0.080036839995073952
+ 0.080039803704069351
+ 0.080042767450012861
+ 0.080045731232905912
+ 0.080048695052749669
+ 0.080051658909545548
+ 0.080054622803294756
+ 0.080057586733998848
+ 0.080060550701658975
+ 0.080063514706276456
+ 0.080066478747852748
+ 0.080069442826389142
+ 0.080072406941886873
+ 0.080075371094347356
+ 0.080078335283771854
+ 0.080081299510161866
+ 0.080084263773518433
+ 0.080087228073843206
+ 0.08009019241113724
+ 0.080093156785402089
+ 0.080096121196638947
+ 0.080099085644849188
+ 0.0801020501300342
+ 0.080105014652195189
+ 0.080107979211333558
+ 0.08011094380745061
+ 0.080113908440547804
+ 0.080116873110626236
+ 0.080119837817687542
+ 0.080122802561732737
+ 0.080125767342763318
+ 0.080128732160780716
+ 0.080131697015786124
+ 0.08013466190778093
+ 0.080137626836766326
+ 0.080140591802743771
+ 0.080143556805714694
+ 0.08014652184568026
+ 0.080149486922642052
+ 0.080152452036601082
+ 0.080155417187558753
+ 0.080158382375516604
+ 0.080161347600475857
+ 0.080164312862437789
+ 0.080167278161403691
+ 0.080170243497375102
+ 0.080173208870353285
+ 0.080176174280339477
+ 0.080179139727335022
+ 0.080182105211341365
+ 0.080185070732359864
+ 0.080188036290391715
+ 0.080191001885438332
+ 0.080193967517501047
+ 0.080196933186581137
+ 0.080199898892680074
+ 0.080202864635799079
+ 0.080205830415939552
+ 0.0802087962331028
+ 0.08021176208729025
+ 0.080214727978503028
+ 0.080217693906742646
+ 0.080220659872010505
+ 0.080223625874307772
+ 0.080226591913635889
+ 0.080229557989996203
+ 0.080232524103389935
+ 0.080235490253818598
+ 0.080238456441283385
+ 0.080241422665785725
+ 0.080244388927326882
+ 0.080247355225908298
+ 0.080250321561531279
+ 0.080253287934197157
+ 0.080256254343907235
+ 0.080259220790662875
+ 0.080262187274465449
+ 0.080265153795316332
+ 0.080268120353216732
+ 0.080271086948168091
+ 0.080274053580171797
+ 0.080277020249229086
+ 0.080279986955341373
+ 0.080282953698509962
+ 0.080285920478736159
+ 0.080288887296021363
+ 0.080291854150367076
+ 0.080294821041774309
+ 0.080297787970244699
+ 0.080300754935779345
+ 0.080303721938379868
+ 0.080306688978047408
+ 0.080309656054783324
+ 0.080312623168588962
+ 0.080315590319465807
+ 0.080318557507414998
+ 0.080321524732438088
+ 0.080324491994536257
+ 0.080327459293710879
+ 0.080330426629963508
+ 0.0803333940032952
+ 0.080336361413707452
+ 0.080339328861201501
+ 0.080342296345778871
+ 0.080345263867440786
+ 0.080348231426188688
+ 0.080351199022023798
+ 0.08035416665494749
+ 0.080357134324961291
+ 0.080360102032066213
+ 0.080363069776263896
+ 0.080366037557555517
+ 0.080369005375942673
+ 0.080371973231426391
+ 0.08037494112400817
+ 0.080377909053689398
+ 0.080380877020471364
+ 0.080383845024355388
+ 0.080386813065342996
+ 0.080389781143435299
+ 0.080392749258633781
+ 0.080395717410939774
+ 0.080398685600354694
+ 0.080401653826879707
+ 0.080404622090516395
+ 0.080407590391265923
+ 0.080410558729129777
+ 0.080413527104109178
+ 0.080416495516205638
+ 0.080419463965420296
+ 0.080422432451754677
+ 0.080425400975210143
+ 0.080428369535787941
+ 0.080431338133489433
+ 0.080434306768316047
+ 0.080437275440269101
+ 0.080440244149349957
+ 0.080443212895559946
+ 0.080446181678900427
+ 0.080449150499372749
+ 0.080452119356978283
+ 0.080455088251718321
+ 0.080458057183594348
+ 0.080461026152607668
+ 0.080463995158759655
+ 0.080466964202051502
+ 0.080469933282484682
+ 0.080472902400060581
+ 0.080475871554780531
+ 0.080478840746645922
+ 0.080481809975658083
+ 0.080484779241818294
+ 0.080487748545127996
+ 0.080490717885588522
+ 0.08049368726320133
+ 0.080496656677967515
+ 0.080499626129888688
+ 0.08050259561896618
+ 0.080505565145201186
+ 0.080508534708595106
+ 0.080511504309149468
+ 0.080514473946865492
+ 0.080517443621744553
+ 0.080520413333788024
+ 0.080523383082997224
+ 0.080526352869373666
+ 0.080529322692918487
+ 0.080532292553633145
+ 0.080535262451518999
+ 0.080538232386577535
+ 0.080541202358809835
+ 0.080544172368217481
+ 0.080547142414801765
+ 0.080550112498564003
+ 0.080553082619505667
+ 0.080556052777628076
+ 0.080559022972932548
+ 0.08056199320542036
+ 0.080564963475093121
+ 0.080567933781951956
+ 0.080570904125998294
+ 0.080573874507233592
+ 0.080576844925659127
+ 0.080579815381276343
+ 0.080582785874086432
+ 0.08058575640409088
+ 0.08058872697129113
+ 0.080591697575688306
+ 0.080594668217283991
+ 0.080597638896079474
+ 0.080600609612076018
+ 0.080603580365275235
+ 0.080606551155678205
+ 0.080609521983286511
+ 0.080612492848101305
+ 0.080615463750124142
+ 0.080618434689356394
+ 0.080621405665799339
+ 0.080624376679454324
+ 0.080627347730322721
+ 0.080630318818405919
+ 0.080633289943705305
+ 0.080636261106222226
+ 0.080639232305958042
+ 0.080642203542914154
+ 0.080645174817091825
+ 0.080648146128492582
+ 0.080651117477117645
+ 0.080654088862968515
+ 0.080657060286046411
+ 0.080660031746352806
+ 0.080663003243889017
+ 0.08066597477865646
+ 0.080668946350656426
+ 0.080671917959890302
+ 0.080674889606359559
+ 0.080677861290065503
+ 0.080680833011009451
+ 0.080683804769192777
+ 0.080686776564617049
+ 0.080689748397283365
+ 0.080692720267193124
+ 0.080695692174347883
+ 0.080698664118748806
+ 0.080701636100397434
+ 0.080704608119295113
+ 0.080707580175443022
+ 0.0807105522688428
+ 0.080713524399495556
+ 0.080716496567402971
+ 0.080719468772566041
+ 0.080722441014986449
+ 0.080725413294665413
+ 0.080728385611604406
+ 0.080731357965804731
+ 0.080734330357267681
+ 0.080737302785994863
+ 0.080740275251987376
+ 0.0807432477552468
+ 0.080746220295774385
+ 0.080749192873571532
+ 0.080752165488639671
+ 0.080755138140980065
+ 0.080758110830594185
+ 0.080761083557483418
+ 0.080764056321649041
+ 0.080767029123092526
+ 0.080770001961815149
+ 0.080772974837818326
+ 0.080775947751103541
+ 0.080778920701671975
+ 0.08078189368952518
+ 0.080784866714664436
+ 0.080787839777091072
+ 0.080790812876806617
+ 0.080793786013812263
+ 0.080796759188109482
+ 0.080799732399699661
+ 0.080802705648584217
+ 0.080805678934764424
+ 0.080808652258241714
+ 0.080811625619017377
+ 0.080814599017092995
+ 0.080817572452469746
+ 0.080820545925149145
+ 0.080823519435132399
+ 0.080826492982421005
+ 0.080829466567016423
+ 0.080832440188919913
+ 0.080835413848132753
+ 0.080838387544656609
+ 0.080841361278492563
+ 0.080844335049642169
+ 0.080847308858106801
+ 0.080850282703887777
+ 0.080853256586986527
+ 0.080856230507404342
+ 0.080859204465142692
+ 0.080862178460203007
+ 0.080865152492586523
+ 0.080868126562294682
+ 0.080871100669328844
+ 0.080874074813690508
+ 0.080877048995380882
+ 0.080880023214401367
+ 0.08088299747075349
+ 0.080885971764438569
+ 0.080888946095457909
+ 0.080891920463812952
+ 0.08089489486950513
+ 0.080897869312535689
+ 0.08090084379290613
+ 0.080903818310617812
+ 0.08090679286567215
+ 0.080909767458070395
+ 0.080912742087814085
+ 0.080915716754904485
+ 0.080918691459342981
+ 0.080921666201131087
+ 0.080924640980270066
+ 0.080927615796761276
+ 0.080930590650606329
+ 0.080933565541806377
+ 0.080936540470362861
+ 0.080939515436277212
+ 0.080942490439550721
+ 0.080945465480184817
+ 0.080948440558180984
+ 0.080951415673540431
+ 0.080954390826264724
+ 0.080957366016355184
+ 0.080960341243813086
+ 0.080963316508640013
+ 0.080966291810837157
+ 0.080969267150405991
+ 0.080972242527347998
+ 0.08097521794166429
+ 0.080978193393356615
+ 0.08098116888242618
+ 0.080984144408874373
+ 0.08098711997270247
+ 0.080990095573911985
+ 0.080993071212504444
+ 0.080996046888480971
+ 0.080999022601843051
+ 0.081001998352592142
+ 0.081004974140729602
+ 0.081007949966256695
+ 0.081010925829175004
+ 0.08101390172948586
+ 0.081016877667190582
+ 0.081019853642290598
+ 0.081022829654787229
+ 0.081025805704682041
+ 0.081028781791976326
+ 0.081031757916671374
+ 0.081034734078768697
+ 0.081037710278269795
+ 0.081040686515175819
+ 0.081043662789488269
+ 0.081046639101208504
+ 0.081049615450337981
+ 0.081052591836878088
+ 0.081055568260830047
+ 0.081058544722195508
+ 0.081061521220975805
+ 0.081064497757172116
+ 0.081067474330786107
+ 0.081070450941819
+ 0.081073427590272307
+ 0.08107640427614736
+ 0.081079380999445436
+ 0.081082357760168006
+ 0.081085334558316596
+ 0.081088311393892512
+ 0.081091288266897155
+ 0.081094265177331842
+ 0.081097242125198074
+ 0.081100219110497182
+ 0.081103196133230582
+ 0.081106173193399661
+ 0.081109150291005891
+ 0.081112127426050576
+ 0.081115104598535062
+ 0.081118081808460862
+ 0.081121059055829267
+ 0.081124036340641872
+ 0.081127013662899761
+ 0.081129991022604667
+ 0.081132968419757687
+ 0.081135945854360417
+ 0.081138923326414286
+ 0.081141900835920447
+ 0.08114487838288055
+ 0.081147855967295845
+ 0.081150833589167817
+ 0.081153811248497798
+ 0.081156788945287273
+ 0.081159766679537476
+ 0.081162744451250005
+ 0.081165722260426079
+ 0.08116870010706724
+ 0.08117167799117482
+ 0.081174655912750304
+ 0.081177633871794899
+ 0.081180611868310146
+ 0.081183589902297459
+ 0.0811865679737582
+ 0.081189546082693714
+ 0.08119252422910557
+ 0.081195502412995002
+ 0.081198480634363385
+ 0.081201458893212314
+ 0.081204437189543149
+ 0.081207415523357071
+ 0.08121039389465573
+ 0.081213372303440348
+ 0.081216350749712354
+ 0.081219329233473317
+ 0.081222307754724513
+ 0.081225286313467357
+ 0.081228264909703279
+ 0.081231243543433626
+ 0.081234222214659854
+ 0.081237200923383338
+ 0.081240179669605464
+ 0.081243158453327732
+ 0.081246137274551378
+ 0.08124911613327794
+ 0.081252095029508836
+ 0.081255073963245383
+ 0.081258052934488997
+ 0.081261031943241163
+ 0.081264010989503227
+ 0.081266990073276577
+ 0.081269969194562683
+ 0.081272948353362878
+ 0.081275927549678537
+ 0.08127890678351124
+ 0.081281886054862182
+ 0.081284865363732944
+ 0.081287844710124832
+ 0.08129082409403926
+ 0.081293803515477686
+ 0.081296782974441428
+ 0.081299762470932069
+ 0.081302742004950815
+ 0.081305721576499082
+ 0.081308701185578466
+ 0.081311680832190245
+ 0.08131466051633586
+ 0.081317640238016645
+ 0.081320619997234042
+ 0.081323599793989537
+ 0.081326579628284518
+ 0.081329559500120288
+ 0.081332539409498361
+ 0.08133551935642018
+ 0.081338499340887077
+ 0.08134147936290044
+ 0.08134445942246174
+ 0.081347439519572254
+ 0.081350419654233674
+ 0.081353399826447126
+ 0.081356380036214107
+ 0.081359360283536145
+ 0.081362340568414557
+ 0.081365320890850773
+ 0.081368301250846112
+ 0.081371281648402044
+ 0.081374262083520055
+ 0.081377242556201546
+ 0.081380223066447765
+ 0.081383203614260366
+ 0.081386184199640596
+ 0.081389164822589843
+ 0.081392145483109649
+ 0.081395126181201455
+ 0.081398106916866483
+ 0.081401087690106302
+ 0.081404068500922272
+ 0.081407049349315821
+ 0.081410030235288255
+ 0.081413011158841198
+ 0.081415992119975814
+ 0.081418973118693755
+ 0.081421954154996409
+ 0.081424935228885026
+ 0.081427916340361145
+ 0.081430897489426099
+ 0.081433878676081387
+ 0.081436859900328423
+ 0.081439841162168666
+ 0.081442822461603268
+ 0.081445803798634003
+ 0.081448785173262123
+ 0.081451766585488888
+ 0.081454748035315966
+ 0.081457729522744632
+ 0.081460711047776468
+ 0.081463692610412683
+ 0.081466674210654733
+ 0.081469655848504269
+ 0.081472637523962332
+ 0.08147561923703063
+ 0.081478600987710467
+ 0.081481582776003328
+ 0.081484564601910531
+ 0.081487546465433616
+ 0.081490528366573819
+ 0.081493510305332806
+ 0.08149649228171188
+ 0.081499474295712276
+ 0.081502456347335703
+ 0.081505438436583547
+ 0.081508420563456974
+ 0.081511402727957705
+ 0.081514384930087003
+ 0.081517367169846242
+ 0.081520349447237017
+ 0.081523331762260579
+ 0.081526314114918522
+ 0.081529296505212109
+ 0.081532278933142771
+ 0.081535261398711978
+ 0.081538243901921187
+ 0.081541226442771841
+ 0.081544209021265246
+ 0.08154719163740283
+ 0.081550174291186217
+ 0.081553156982616504
+ 0.081556139711695411
+ 0.081559122478424298
+ 0.081562105282804401
+ 0.081565088124837412
+ 0.081568071004524526
+ 0.081571053921867337
+ 0.081574036876867137
+ 0.081577019869525355
+ 0.081580002899843573
+ 0.081582985967823027
+ 0.081585969073465298
+ 0.081588952216771732
+ 0.081591935397743717
+ 0.081594918616382836
+ 0.081597901872690309
+ 0.081600885166667594
+ 0.081603868498316232
+ 0.081606851867637692
+ 0.081609835274633252
+ 0.081612818719304425
+ 0.081615802201652501
+ 0.081618785721679077
+ 0.081621769279385567
+ 0.081624752874773193
+ 0.081627736507843676
+ 0.081630720178598293
+ 0.081633703887038347
+ 0.081636687633165589
+ 0.081639671416981169
+ 0.081642655238486572
+ 0.081645639097683326
+ 0.081648622994572803
+ 0.081651606929156267
+ 0.081654590901435467
+ 0.081657574911411623
+ 0.081660558959086207
+ 0.081663543044460704
+ 0.08166652716753646
+ 0.081669511328314917
+ 0.081672495526797534
+ 0.081675479762985781
+ 0.081678464036880949
+ 0.081681448348484648
+ 0.081684432697798265
+ 0.081687417084823022
+ 0.08169040150956064
+ 0.081693385972012408
+ 0.081696370472179772
+ 0.081699355010064201
+ 0.081702339585667111
+ 0.081705324198989904
+ 0.081708308850033926
+ 0.081711293538800814
+ 0.081714278265291873
+ 0.081717263029508574
+ 0.08172024783145232
+ 0.081723232671124579
+ 0.081726217548526714
+ 0.08172920246366025
+ 0.081732187416526672
+ 0.081735172407127285
+ 0.081738157435463449
+ 0.081741142501536815
+ 0.081744127605348701
+ 0.081747112746900608
+ 0.081750097926193852
+ 0.081753083143229918
+ 0.08175606839801032
+ 0.08175905369053639
+ 0.081762039020809793
+ 0.081765024388831584
+ 0.081768009794603427
+ 0.081770995238126754
+ 0.081773980719402978
+ 0.081776966238433502
+ 0.081779951795219838
+ 0.081782937389763347
+ 0.081785923022065568
+ 0.081788908692127724
+ 0.08179189439995159
+ 0.081794880145538235
+ 0.081797865928889324
+ 0.081800851750006356
+ 0.081803837608890595
+ 0.081806823505543497
+ 0.081809809439966574
+ 0.081812795412161243
+ 0.081815781422128905
+ 0.081818767469871129
+ 0.081821753555389121
+ 0.08182473967868456
+ 0.081827725839758739
+ 0.081830712038613154
+ 0.081833698275249264
+ 0.081836684549668443
+ 0.08183967086187216
+ 0.081842657211861999
+ 0.081845643599639084
+ 0.081848630025205121
+ 0.081851616488561527
+ 0.081854602989709563
+ 0.08185758952865084
+ 0.081860576105386745
+ 0.081863562719918737
+ 0.081866549372248257
+ 0.081869536062376791
+ 0.081872522790305644
+ 0.081875509556036383
+ 0.081878496359570438
+ 0.081881483200909169
+ 0.081884470080054131
+ 0.081887456997006697
+ 0.081890443951768324
+ 0.081893430944340428
+ 0.081896417974724536
+ 0.081899405042922091
+ 0.081902392148934341
+ 0.081905379292763023
+ 0.081908366474409341
+ 0.081911353693874867
+ 0.081914340951161027
+ 0.081917328246269253
+ 0.081920315579200931
+ 0.081923302949957644
+ 0.08192629035854071
+ 0.081929277804951683
+ 0.081932265289191897
+ 0.081935252811262918
+ 0.081938240371166038
+ 0.081941227968902852
+ 0.081944215604474735
+ 0.081947203277883268
+ 0.081950190989129618
+ 0.081953178738215504
+ 0.081956166525142163
+ 0.081959154349911106
+ 0.081962142212523945
+ 0.081965130112981968
+ 0.081968118051286704
+ 0.081971106027439483
+ 0.08197409404144175
+ 0.08197708209329517
+ 0.081980070183001061
+ 0.081983058310560811
+ 0.081986046475975877
+ 0.081989034679247827
+ 0.081992022920377994
+ 0.081995011199367848
+ 0.081997999516218945
+ 0.082000987870932532
+ 0.082003976263510331
+ 0.082006964693953549
+ 0.082009953162263741
+ 0.082012941668442293
+ 0.082015930212490915
+ 0.082018918794410672
+ 0.082021907414203246
+ 0.082024896071870093
+ 0.08202788476741249
+ 0.082030873500832158
+ 0.082033862272130276
+ 0.082036851081308523
+ 0.082039839928368219
+ 0.082042828813310847
+ 0.082045817736137838
+ 0.082048806696850732
+ 0.082051795695450916
+ 0.082054784731939834
+ 0.082057773806318887
+ 0.082060762918589769
+ 0.082063752068753618
+ 0.08206674125681207
+ 0.082069730482766556
+ 0.082072719746618478
+ 0.0820757090483695
+ 0.082078698388020704
+ 0.082081687765573924
+ 0.082084677181030324
+ 0.082087666634391529
+ 0.082090656125658898
+ 0.082093645654833888
+ 0.082096635221918152
+ 0.082099624826912812
+ 0.082102614469819715
+ 0.082105604150640013
+ 0.082108593869375246
+ 0.082111583626026899
+ 0.082114573420596332
+ 0.082117563253085182
+ 0.082120553123494838
+ 0.082123543031826687
+ 0.082126532978082242
+ 0.082129522962262974
+ 0.082132512984370312
+ 0.082135503044405728
+ 0.08213849314237065
+ 0.082141483278266536
+ 0.08214447345209501
+ 0.082147463663857154
+ 0.082150453913554869
+ 0.082153444201189321
+ 0.082156434526762051
+ 0.082159424890274557
+ 0.082162415291728269
+ 0.082165405731124658
+ 0.082168396208465166
+ 0.08217138672375128
+ 0.08217437727698447
+ 0.082177367868166054
+ 0.082180358497297712
+ 0.082183349164380873
+ 0.082186339869416744
+ 0.082189330612407074
+ 0.082192321393353238
+ 0.082195312212256733
+ 0.08219830306911885
+ 0.082201293963941269
+ 0.082204284896725224
+ 0.082207275867472382
+ 0.082210266876184268
+ 0.082213257922862132
+ 0.082216249007507444
+ 0.082219240130121829
+ 0.08222223129070666
+ 0.08222522248926338
+ 0.082228213725793503
+ 0.082231205000298416
+ 0.082234196312779742
+ 0.082237187663238717
+ 0.082240179051676993
+ 0.082243170478096012
+ 0.082246161942497106
+ 0.082249153444881956
+ 0.082252144985251838
+ 0.082255136563608278
+ 0.082258128179952802
+ 0.082261119834286772
+ 0.082264111526611741
+ 0.082267103256929042
+ 0.082270095025240325
+ 0.082273086831547063
+ 0.082276078675850503
+ 0.082279070558152284
+ 0.082282062478453863
+ 0.082285054436756599
+ 0.082288046433062159
+ 0.082291038467371819
+ 0.082294030539687188
+ 0.082297022650009488
+ 0.082300014798340523
+ 0.082303006984681515
+ 0.082305999209034128
+ 0.082308991471399667
+ 0.082311983771779604
+ 0.082314976110175547
+ 0.082317968486588955
+ 0.082320960901020951
+ 0.082323953353473561
+ 0.082326945843947841
+ 0.082329938372445427
+ 0.082332930938967763
+ 0.082335923543516307
+ 0.08233891618609257
+ 0.082341908866697913
+ 0.082344901585333988
+ 0.082347894342002043
+ 0.082350887136703799
+ 0.082353879969440463
+ 0.082356872840213757
+ 0.082359865749024916
+ 0.082362858695875674
+ 0.082365851680767252
+ 0.082368844703701344
+ 0.082371837764679226
+ 0.082374830863702536
+ 0.082377824000772579
+ 0.082380817175891061
+ 0.082383810389059148
+ 0.082386803640278561
+ 0.082389796929550715
+ 0.082392790256877055
+ 0.082395783622258995
+ 0.082398777025698158
+ 0.082401770467195934
+ 0.082404763946753681
+ 0.082407757464373205
+ 0.08241075102005567
+ 0.082413744613802617
+ 0.082416738245615559
+ 0.082419731915496036
+ 0.082422725623445395
+ 0.082425719369465245
+ 0.082428713153556973
+ 0.082431706975722066
+ 0.082434700835962021
+ 0.082437694734278255
+ 0.082440688670672418
+ 0.082443682645145788
+ 0.082446676657699919
+ 0.082449670708336184
+ 0.082452664797056305
+ 0.082455658923861627
+ 0.082458653088753567
+ 0.082461647291733664
+ 0.082464641532803334
+ 0.082467635811964313
+ 0.082470630129217681
+ 0.082473624484565217
+ 0.082476618878008306
+ 0.082479613309548283
+ 0.082482607779186909
+ 0.082485602286925488
+ 0.082488596832765493
+ 0.082491591416708532
+ 0.082494586038755896
+ 0.082497580698909195
+ 0.082500575397169956
+ 0.082503570133539442
+ 0.0825065649080194
+ 0.08250955972061115
+ 0.082512554571316232
+ 0.082515549460136006
+ 0.082518544387072221
+ 0.082521539352126083
+ 0.082524534355299189
+ 0.082527529396593011
+ 0.082530524476009032
+ 0.082533519593548821
+ 0.082536514749213738
+ 0.082539509943005324
+ 0.082542505174925021
+ 0.082545500444974412
+ 0.082548495753154719
+ 0.082551491099467814
+ 0.082554486483914863
+ 0.082557481906497476
+ 0.08256047736721718
+ 0.082563472866075363
+ 0.082566468403073578
+ 0.08256946397821327
+ 0.082572459591495923
+ 0.082575455242923132
+ 0.082578450932496272
+ 0.082581446660216759
+ 0.08258444242608616
+ 0.082587438230106086
+ 0.082590434072277785
+ 0.082593429952602965
+ 0.082596425871082943
+ 0.082599421827719288
+ 0.082602417822513471
+ 0.082605413855467047
+ 0.082608409926581278
+ 0.082611406035857982
+ 0.082614402183298366
+ 0.082617398368903985
+ 0.08262039459267656
+ 0.082623390854617257
+ 0.082626387154727698
+ 0.082629383493009426
+ 0.08263237986946384
+ 0.082635376284092357
+ 0.082638372736896726
+ 0.082641369227878181
+ 0.08264436575703836
+ 0.082647362324378651
+ 0.082650358929900691
+ 0.082653355573605716
+ 0.082656352255495502
+ 0.08265934897557134
+ 0.082662345733834838
+ 0.082665342530287483
+ 0.082668339364930676
+ 0.082671336237765874
+ 0.082674333148794826
+ 0.082677330098018684
+ 0.082680327085439195
+ 0.082683324111057679
+ 0.082686321174875843
+ 0.082689318276894935
+ 0.082692315417116552
+ 0.082695312595542192
+ 0.082698309812173368
+ 0.082701307067011579
+ 0.082704304360058253
+ 0.082707301691314891
+ 0.08271029906078306
+ 0.082713296468464259
+ 0.08271629391435982
+ 0.082719291398471409
+ 0.082722288920800482
+ 0.082725286481348387
+ 0.082728284080116871
+ 0.082731281717107322
+ 0.082734279392321114
+ 0.082737277105759829
+ 0.082740274857425022
+ 0.082743272647318178
+ 0.082746270475440642
+ 0.082749268341794149
+ 0.082752266246379977
+ 0.082755264189199748
+ 0.082758262170254948
+ 0.082761260189546951
+ 0.082764258247077491
+ 0.082767256342847748
+ 0.082770254476859512
+ 0.082773252649114115
+ 0.082776250859613182
+ 0.08277924910835803
+ 0.082782247395350242
+ 0.082785245720591483
+ 0.082788244084082932
+ 0.08279124248582638
+ 0.082794240925823145
+ 0.082797239404074782
+ 0.082800237920582789
+ 0.082803236475348568
+ 0.082806235068373882
+ 0.082809233699659923
+ 0.082812232369208386
+ 0.082815231077020685
+ 0.082818229823098485
+ 0.082821228607442954
+ 0.082824227430055908
+ 0.082827226290938735
+ 0.082830225190092796
+ 0.082833224127519881
+ 0.082836223103221224
+ 0.082839222117198449
+ 0.082842221169453084
+ 0.082845220259986557
+ 0.082848219388800437
+ 0.082851218555896153
+ 0.082854217761275314
+ 0.082857217004939226
+ 0.082860216286889651
+ 0.08286321560712781
+ 0.082866214965655549
+ 0.082869214362474006
+ 0.082872213797584901
+ 0.082875213270989706
+ 0.082878212782689906
+ 0.082881212332687013
+ 0.082884211920982484
+ 0.082887211547577846
+ 0.082890211212474751
+ 0.082893210915674351
+ 0.082896210657178587
+ 0.082899210436988682
+ 0.082902210255106135
+ 0.082905210111532665
+ 0.082908210006269495
+ 0.082911209939318345
+ 0.0829142099106807
+ 0.082917209920357907
+ 0.08292020996835156
+ 0.082923210054663202
+ 0.082926210179294413
+ 0.082929210342246457
+ 0.082932210543521179
+ 0.082935210783119717
+ 0.082938211061043862
+ 0.082941211377294932
+ 0.082944211731874593
+ 0.082947212124784189
+ 0.082950212556025402
+ 0.082953213025599618
+ 0.082956213533508391
+ 0.082959214079753277
+ 0.082962214664335565
+ 0.08296521528725706
+ 0.082968215948519136
+ 0.082971216648123181
+ 0.0829742173860709
+ 0.082977218162363711
+ 0.082980218977003278
+ 0.082983219829990768
+ 0.082986220721327997
+ 0.082989221651016354
+ 0.082992222619057338
+ 0.082995223625452516
+ 0.082998224670203388
+ 0.083001225753311439
+ 0.083004226874778139
+ 0.083007228034605099
+ 0.083010229232793761
+ 0.083013230469345681
+ 0.083016231744262287
+ 0.083019233057545258
+ 0.083022234409195844
+ 0.083025235799215835
+ 0.083028237227606536
+ 0.083031238694369625
+ 0.083034240199506421
+ 0.083037241743018686
+ 0.083040243324907628
+ 0.083043244945175038
+ 0.083046246603822274
+ 0.083049248300850989
+ 0.083052250036262515
+ 0.083055251810058364
+ 0.083058253622240216
+ 0.08306125547280957
+ 0.083064257361767813
+ 0.083067259289116527
+ 0.083070261254857156
+ 0.083073263258991392
+ 0.083076265301520624
+ 0.083079267382446378
+ 0.083082269501770112
+ 0.083085271659493518
+ 0.083088273855617845
+ 0.083091276090144911
+ 0.083094278363075952
+ 0.083097280674412632
+ 0.083100283024156535
+ 0.083103285412309089
+ 0.083106287838871834
+ 0.083109290303846159
+ 0.083112292807233729
+ 0.08311529534903607
+ 0.083118297929254611
+ 0.08312130054789095
+ 0.08312430320494657
+ 0.083127305900422957
+ 0.083130308634321637
+ 0.083133311406644164
+ 0.083136314217392024
+ 0.083139317066566826
+ 0.083142319954170013
+ 0.083145322880203085
+ 0.083148325844667498
+ 0.083151328847564904
+ 0.083154331888896871
+ 0.083157334968664703
+ 0.083160338086870109
+ 0.083163341243514474
+ 0.08316634443859941
+ 0.083169347672126553
+ 0.083172350944097098
+ 0.083175354254512848
+ 0.083178357603375205
+ 0.083181360990685696
+ 0.083184364416445986
+ 0.083187367880657226
+ 0.083190371383321415
+ 0.083193374924439775
+ 0.083196378504013777
+ 0.083199382122045196
+ 0.083202385778535434
+ 0.083205389473485922
+ 0.083208393206898365
+ 0.083211396978774124
+ 0.083214400789114698
+ 0.083217404637921821
+ 0.083220408525196854
+ 0.083223412450941309
+ 0.083226416415156795
+ 0.083229420417844799
+ 0.083232424459006915
+ 0.08323542853864449
+ 0.083238432656759259
+ 0.083241436813352485
+ 0.083244441008425943
+ 0.083247445241981077
+ 0.083250449514019401
+ 0.083253453824542439
+ 0.083256458173551803
+ 0.083259462561048755
+ 0.083262466987035086
+ 0.083265471451512293
+ 0.083268475954481794
+ 0.08327148049594521
+ 0.083274485075903973
+ 0.083277489694359733
+ 0.083280494351313836
+ 0.083283499046768045
+ 0.083286503780723678
+ 0.083289508553182331
+ 0.083292513364145712
+ 0.083295518213615055
+ 0.083298523101592081
+ 0.083301528028078178
+ 0.083304532993075039
+ 0.083307537996584011
+ 0.083310543038606855
+ 0.08331354811914489
+ 0.083316553238199725
+ 0.083319558395772875
+ 0.083322563591865906
+ 0.083325568826480303
+ 0.08332857409961765
+ 0.083331579411279347
+ 0.083334584761467087
+ 0.083337590150182328
+ 0.083340595577426624
+ 0.083343601043201446
+ 0.083346606547508417
+ 0.083349612090348954
+ 0.083352617671724707
+ 0.083355623291637107
+ 0.08335862895008779
+ 0.083361634647078187
+ 0.083364640382609878
+ 0.083367646156684419
+ 0.08337065196930328
+ 0.083373657820468072
+ 0.083376663710180279
+ 0.083379669638441387
+ 0.083382675605253045
+ 0.083385681610616727
+ 0.083388687654533819
+ 0.083391693737006167
+ 0.083394699858035007
+ 0.083397706017622114
+ 0.083400712215768849
+ 0.083403718452476766
+ 0.08340672472774753
+ 0.083409731041582599
+ 0.083412737393983416
+ 0.08341574378495159
+ 0.08341875021448876
+ 0.083421756682596271
+ 0.083424763189275761
+ 0.083427769734528728
+ 0.083430776318356797
+ 0.083433782940761439
+ 0.083436789601744249
+ 0.083439796301306546
+ 0.083442803039450161
+ 0.083445809816176456
+ 0.083448816631486997
+ 0.083451823485383353
+ 0.083454830377867134
+ 0.083457837308939603
+ 0.083460844278602647
+ 0.083463851286857627
+ 0.08346685833370604
+ 0.083469865419149455
+ 0.083472872543189372
+ 0.083475879705827621
+ 0.083478886907065286
+ 0.083481894146904295
+ 0.083484901425345939
+ 0.083487908742391773
+ 0.083490916098043516
+ 0.083493923492302613
+ 0.083496930925170534
+ 0.083499938396648876
+ 0.083502945906739109
+ 0.083505953455442927
+ 0.083508961042761856
+ 0.083511968668697284
+ 0.083514976333250876
+ 0.083517984036423992
+ 0.083520991778218451
+ 0.083523999558635625
+ 0.083527007377677015
+ 0.08353001523534434
+ 0.083533023131639017
+ 0.083536031066562558
+ 0.0835390390401166
+ 0.083542047052302629
+ 0.083545055103122115
+ 0.083548063192576821
+ 0.083551071320668011
+ 0.083554079487397528
+ 0.083557087692766679
+ 0.083560095936777046
+ 0.083563104219430251
+ 0.083566112540727794
+ 0.083569120900671243
+ 0.08357212929926211
+ 0.083575137736501992
+ 0.083578146212392429
+ 0.083581154726934753
+ 0.083584163280130908
+ 0.083587171871982141
+ 0.083590180502490077
+ 0.083593189171656229
+ 0.083596197879482192
+ 0.083599206625969535
+ 0.083602215411119674
+ 0.0836052242349343
+ 0.0836082330974149
+ 0.083611241998563027
+ 0.083614250938380263
+ 0.083617259916868053
+ 0.083620268934028116
+ 0.08362327798986173
+ 0.083626287084370768
+ 0.083629296217556492
+ 0.083632305389420639
+ 0.08363531459996465
+ 0.083638323849190149
+ 0.08364133313709865
+ 0.083644342463691665
+ 0.083647351828970803
+ 0.083650361232937592
+ 0.083653370675593586
+ 0.083656380156940269
+ 0.083659389676979376
+ 0.083662399235712268
+ 0.08366540883314047
+ 0.083668418469265676
+ 0.083671428144089469
+ 0.083674437857613249
+ 0.083677447609838543
+ 0.083680457400767017
+ 0.083683467230400196
+ 0.083686477098739678
+ 0.083689487005786961
+ 0.083692496951543516
+ 0.08369550693601098
+ 0.083698516959190908
+ 0.083701527021084951
+ 0.083704537121694469
+ 0.083707547261021142
+ 0.083710557439066371
+ 0.083713567655831836
+ 0.083716577911319118
+ 0.083719588205529674
+ 0.083722598538465198
+ 0.083725608910127092
+ 0.08372861932051702
+ 0.083731629769636315
+ 0.08373464025748685
+ 0.083737650784069986
+ 0.083740661349387263
+ 0.083743671953440388
+ 0.083746682596230762
+ 0.083749693277760093
+ 0.083752703998029671
+ 0.083755714757041314
+ 0.08375872555479652
+ 0.083761736391296832
+ 0.083764747266543677
+ 0.08376775818053879
+ 0.083770769133283532
+ 0.083773780124779706
+ 0.083776791155028646
+ 0.083779802224032057
+ 0.083782813331791439
+ 0.083785824478308318
+ 0.083788835663584374
+ 0.083791846887621035
+ 0.083794858150419815
+ 0.08379786945198249
+ 0.083800880792310281
+ 0.083803892171405103
+ 0.083806903589268331
+ 0.083809915045901601
+ 0.083812926541306329
+ 0.083815938075484209
+ 0.083818949648436752
+ 0.083821961260165528
+ 0.083824972910672091
+ 0.083827984599957897
+ 0.083830996328024793
+ 0.083834008094873985
+ 0.083837019900507292
+ 0.083840031744926116
+ 0.083843043628132136
+ 0.08384605555012685
+ 0.083849067510911784
+ 0.083852079510488689
+ 0.083855091548858895
+ 0.083858103626023903
+ 0.083861115741985529
+ 0.083864127896745244
+ 0.08386714009030459
+ 0.083870152322665134
+ 0.083873164593828375
+ 0.083876176903796035
+ 0.083879189252569514
+ 0.083882201640150353
+ 0.083885214066540398
+ 0.083888226531740842
+ 0.083891239035753407
+ 0.083894251578579701
+ 0.083897264160221252
+ 0.083900276780679656
+ 0.083903289439956397
+ 0.083906302138053154
+ 0.08390931487497133
+ 0.083912327650712618
+ 0.083915340465278529
+ 0.083918353318670744
+ 0.083921366210890622
+ 0.083924379141939787
+ 0.083927392111819987
+ 0.08393040512053257
+ 0.083933418168079171
+ 0.083936431254461333
+ 0.083939444379680719
+ 0.083942457543738774
+ 0.083945470746637177
+ 0.083948483988377495
+ 0.083951497268961131
+ 0.083954510588389777
+ 0.0839575239466651
+ 0.083960537343788361
+ 0.08396355077976142
+ 0.083966564254585707
+ 0.083969577768262874
+ 0.083972591320794321
+ 0.083975604912181839
+ 0.083978618542426775
+ 0.08398163221153096
+ 0.083984645919495726
+ 0.083987659666322698
+ 0.083990673452013553
+ 0.083993687276569681
+ 0.083996701139992802
+ 0.083999715042284456
+ 0.084002728983446212
+ 0.084005742963479554
+ 0.084008756982386149
+ 0.084011771040167535
+ 0.084014785136825171
+ 0.084017799272360846
+ 0.084020813446776033
+ 0.084023827660072201
+ 0.084026841912251141
+ 0.084029856203314171
+ 0.08403287053326304
+ 0.084035884902099303
+ 0.084038899309824472
+ 0.084041913756440115
+ 0.084044928241947855
+ 0.084047942766349221
+ 0.084050957329645723
+ 0.08405397193183918
+ 0.084056986572930856
+ 0.084060001252922525
+ 0.084063015971815661
+ 0.084066030729611912
+ 0.084069045526312836
+ 0.084072060361919929
+ 0.084075075236434857
+ 0.084078090149859119
+ 0.08408110510219427
+ 0.084084120093442072
+ 0.084087135123603968
+ 0.084090150192681457
+ 0.084093165300676259
+ 0.084096180447589763
+ 0.084099195633423746
+ 0.084102210858179718
+ 0.084105226121859195
+ 0.084108241424463825
+ 0.084111256765995054
+ 0.084114272146454616
+ 0.084117287565843996
+ 0.084120303024164914
+ 0.084123318521418688
+ 0.084126334057607069
+ 0.084129349632731582
+ 0.084132365246793919
+ 0.084135380899795498
+ 0.084138396591738066
+ 0.084141412322622941
+ 0.084144428092451984
+ 0.084147443901226499
+ 0.084150459748948289
+ 0.084153475635618938
+ 0.084156491561239805
+ 0.08415950752581261
+ 0.084162523529339006
+ 0.084165539571820394
+ 0.084168555653258537
+ 0.084171571773654877
+ 0.084174587933011052
+ 0.084177604131328618
+ 0.084180620368609196
+ 0.084183636644854301
+ 0.084186652960065556
+ 0.084189669314244583
+ 0.08419268570739287
+ 0.084195702139512052
+ 0.084198718610603643
+ 0.084201735120669349
+ 0.08420475166971067
+ 0.084207768257729174
+ 0.084210784884726483
+ 0.084213801550704195
+ 0.08421681825566385
+ 0.084219834999607016
+ 0.084222851782535177
+ 0.08422586860445018
+ 0.084228885465353578
+ 0.084231902365246566
+ 0.084234919304131226
+ 0.084237936282008846
+ 0.084240953298881108
+ 0.084243970354749467
+ 0.084246987449615701
+ 0.084250004583481267
+ 0.084253021756347746
+ 0.084256038968216818
+ 0.084259056219090009
+ 0.084262073508968846
+ 0.084265090837854911
+ 0.084268108205750036
+ 0.084271125612655498
+ 0.08427414305857292
+ 0.08427716054350412
+ 0.084280178067450418
+ 0.084283195630413615
+ 0.084286213232395157
+ 0.084289230873396626
+ 0.084292248553419699
+ 0.084295266272465877
+ 0.084298284030536755
+ 0.084301301827634012
+ 0.08430431966375912
+ 0.084307337538913771
+ 0.084310355453099395
+ 0.084313373406317796
+ 0.084316391398570376
+ 0.084319409429858772
+ 0.084322427500184538
+ 0.084325445609549493
+ 0.084328463757955011
+ 0.084331481945402589
+ 0.084334500171894089
+ 0.084337518437430883
+ 0.084340536742014652
+ 0.084343555085646921
+ 0.084346573468329272
+ 0.084349591890063538
+ 0.084352610350850912
+ 0.084355628850693351
+ 0.084358647389592242
+ 0.084361665967549071
+ 0.084364684584565725
+ 0.084367703240643632
+ 0.084370721935784335
+ 0.084373740669989511
+ 0.084376759443260771
+ 0.084379778255599613
+ 0.084382797107007593
+ 0.084385815997486527
+ 0.084388834927037762
+ 0.084391853895663102
+ 0.084394872903363949
+ 0.08439789195014194
+ 0.084400911035998685
+ 0.084403930160935808
+ 0.084406949324954988
+ 0.084409968528057641
+ 0.08441298777024539
+ 0.084416007051519901
+ 0.084419026371882727
+ 0.084422045731335535
+ 0.084425065129879795
+ 0.084428084567517173
+ 0.084431104044249292
+ 0.084434123560077637
+ 0.084437143115003971
+ 0.084440162709029695
+ 0.084443182342156656
+ 0.084446202014386115
+ 0.084449221725719906
+ 0.084452241476159609
+ 0.084455261265706683
+ 0.084458281094362889
+ 0.084461300962129782
+ 0.084464320869008791
+ 0.084467340815001679
+ 0.084470360800110084
+ 0.084473380824335406
+ 0.084476400887679576
+ 0.084479420990143717
+ 0.084482441131729841
+ 0.084485461312439378
+ 0.084488481532273882
+ 0.084491501791235046
+ 0.084494522089324411
+ 0.08449754242654367
+ 0.084500562802894225
+ 0.084503583218377948
+ 0.084506603672996047
+ 0.084509624166750522
+ 0.084512644699642731
+ 0.084515665271674464
+ 0.084518685882847097
+ 0.084521706533162336
+ 0.08452472722262179
+ 0.084527747951227153
+ 0.084530768718979701
+ 0.084533789525881392
+ 0.084536810371933696
+ 0.084539831257138168
+ 0.084542852181496556
+ 0.084545873145010192
+ 0.084548894147680825
+ 0.084551915189510163
+ 0.084554936270499689
+ 0.084557957390651001
+ 0.084560978549965776
+ 0.084563999748445501
+ 0.084567020986091881
+ 0.084570042262906486
+ 0.084573063578890786
+ 0.084576084934046683
+ 0.084579106328375481
+ 0.084582127761878984
+ 0.084585149234558704
+ 0.084588170746416239
+ 0.084591192297453169
+ 0.084594213887671188
+ 0.084597235517071795
+ 0.084600257185656738
+ 0.084603278893427447
+ 0.084606300640385684
+ 0.084609322426532893
+ 0.084612344251870794
+ 0.084615366116401011
+ 0.084618388020125085
+ 0.084621409963044625
+ 0.084624431945161199
+ 0.084627453966476543
+ 0.084630476026992099
+ 0.084633498126709616
+ 0.084636520265630691
+ 0.084639542443756655
+ 0.084642564661089603
+ 0.084645586917630716
+ 0.08464860921338177
+ 0.084651631548344444
+ 0.084654653922520251
+ 0.084657676335910689
+ 0.084660698788517633
+ 0.084663721280342497
+ 0.084666743811386766
+ 0.084669766381652467
+ 0.084672788991140793
+ 0.084675811639853604
+ 0.084678834327792413
+ 0.084681857054958731
+ 0.084684879821354295
+ 0.08468790262698081
+ 0.084690925471839679
+ 0.084693948355932649
+ 0.084696971279261263
+ 0.084699994241827017
+ 0.084703017243631801
+ 0.084706040284676973
+ 0.084709063364964324
+ 0.084712086484495297
+ 0.084715109643271627
+ 0.084718132841294924
+ 0.084721156078566645
+ 0.084724179355088636
+ 0.084727202670862312
+ 0.084730226025889435
+ 0.08473324942017145
+ 0.084736272853710118
+ 0.084739296326506994
+ 0.084742319838563659
+ 0.084745343389881753
+ 0.084748366980462883
+ 0.084751390610308702
+ 0.084754414279420834
+ 0.08475743798780068
+ 0.084760461735450154
+ 0.08476348552237073
+ 0.084766509348563904
+ 0.084769533214031523
+ 0.084772557118775085
+ 0.084775581062796201
+ 0.08477860504609637
+ 0.084781629068677436
+ 0.084784653130540899
+ 0.084787677231688369
+ 0.084790701372121455
+ 0.084793725551841767
+ 0.084796749770850985
+ 0.084799774029150649
+ 0.084802798326742382
+ 0.08480582266362785
+ 0.084808847039808705
+ 0.084811871455286361
+ 0.084814895910062679
+ 0.084817920404139116
+ 0.084820944937517406
+ 0.084823969510198993
+ 0.084826994122185612
+ 0.084830018773478927
+ 0.084833043464080424
+ 0.084836068193991879
+ 0.084839092963214763
+ 0.084842117771750755
+ 0.08484514261960148
+ 0.084848167506768504
+ 0.08485119243325355
+ 0.084854217399058157
+ 0.084857242404184019
+ 0.084860267448632523
+ 0.084863292532405599
+ 0.084866317655504675
+ 0.084869342817931404
+ 0.084872368019687422
+ 0.084875393260774437
+ 0.084878418541193879
+ 0.084881443860947509
+ 0.084884469220036896
+ 0.084887494618463705
+ 0.084890520056229407
+ 0.084893545533335862
+ 0.084896571049784542
+ 0.084899596605577027
+ 0.084902622200715067
+ 0.084905647835200229
+ 0.084908673509034013
+ 0.084911699222218265
+ 0.084914724974754538
+ 0.084917750766644276
+ 0.084920776597889269
+ 0.084923802468491183
+ 0.084926828378451502
+ 0.084929854327771864
+ 0.084932880316453949
+ 0.084935906344499365
+ 0.084938932411909876
+ 0.084941958518686841
+ 0.084944984664831968
+ 0.084948010850347005
+ 0.084951037075233396
+ 0.084954063339493013
+ 0.084957089643127121
+ 0.084960115986137813
+ 0.084963142368526298
+ 0.084966168790294283
+ 0.08496919525144353
+ 0.084972221751975566
+ 0.084975248291892139
+ 0.084978274871194678
+ 0.084981301489884989
+ 0.084984328147964541
+ 0.084987354845435084
+ 0.084990381582298241
+ 0.084993408358555567
+ 0.084996435174208698
+ 0.08499946202925926
+ 0.085002488923708902
+ 0.085005515857559388
+ 0.085008542830811981
+ 0.085011569843468707
+ 0.085014596895531008
+ 0.085017623987000357
+ 0.085020651117878696
+ 0.085023678288167454
+ 0.085026705497868366
+ 0.085029732746982958
+ 0.085032760035512883
+ 0.08503578736345975
+ 0.085038814730825363
+ 0.085041842137611026
+ 0.085044869583818766
+ 0.085047897069449888
+ 0.085050924594506111
+ 0.085053952158989185
+ 0.085056979762900581
+ 0.08506000740624195
+ 0.085063035089015082
+ 0.085066062811221421
+ 0.085069090572862618
+ 0.085072118373940353
+ 0.085075146214456429
+ 0.085078174094412082
+ 0.08508120201380924
+ 0.085084229972649431
+ 0.085087257970934443
+ 0.085090286008665639
+ 0.085093314085844876
+ 0.085096342202473571
+ 0.085099370358553666
+ 0.085102398554086453
+ 0.085105426789073818
+ 0.085108455063517288
+ 0.085111483377418501
+ 0.085114511730779094
+ 0.085117540123600705
+ 0.085120568555884957
+ 0.085123597027633474
+ 0.085126625538847825
+ 0.085129654089529869
+ 0.085132682679681104
+ 0.085135711309303003
+ 0.085138739978397535
+ 0.085141768686965935
+ 0.085144797435010258
+ 0.085147826222531822
+ 0.085150855049532501
+ 0.08515388391601364
+ 0.085156912821977113
+ 0.085159941767424557
+ 0.085162970752357389
+ 0.085165999776777482
+ 0.085169028840686431
+ 0.085172057944085625
+ 0.085175087086977033
+ 0.085178116269362128
+ 0.085181145491242657
+ 0.085184174752620023
+ 0.085187204053496016
+ 0.085190233393872355
+ 0.085193262773750528
+ 0.085196292193132309
+ 0.085199321652019183
+ 0.085202351150412886
+ 0.085205380688315097
+ 0.085208410265727383
+ 0.085211439882651369
+ 0.085214469539088705
+ 0.085217499235040961
+ 0.085220528970510009
+ 0.085223558745497252
+ 0.085226588560004549
+ 0.085229618414033259
+ 0.085232648307585146
+ 0.085235678240661986
+ 0.085238708213265152
+ 0.085241738225396518
+ 0.08524476827705775
+ 0.085247798368250319
+ 0.08525082849897582
+ 0.085253858669235974
+ 0.085256888879032613
+ 0.085259919128367126
+ 0.085262949417241232
+ 0.08526597974565657
+ 0.085269010113614846
+ 0.085272040521117726
+ 0.085275070968166597
+ 0.085278101454763361
+ 0.085281131980909614
+ 0.085284162546606965
+ 0.085287193151856955
+ 0.085290223796661402
+ 0.08529325448102186
+ 0.085296285204939981
+ 0.085299315968417444
+ 0.085302346771455859
+ 0.085305377614056765
+ 0.085308408496221996
+ 0.08531143941795323
+ 0.085314470379251814
+ 0.085317501380119717
+ 0.085320532420558287
+ 0.085323563500569383
+ 0.085326594620154628
+ 0.08532962577931559
+ 0.085332656978053992
+ 0.085335688216371344
+ 0.085338719494269411
+ 0.085341750811749925
+ 0.08534478216881429
+ 0.08534781356546435
+ 0.085350845001701675
+ 0.085353876477527901
+ 0.085356907992944681
+ 0.08535993954795365
+ 0.085362971142556629
+ 0.085366002776754893
+ 0.085369034450550441
+ 0.085372066163944799
+ 0.085375097916939549
+ 0.085378129709536441
+ 0.085381161541737083
+ 0.085384193413543003
+ 0.085387225324956129
+ 0.085390257275977918
+ 0.085393289266609954
+ 0.085396321296854011
+ 0.085399353366711811
+ 0.0854023854761847
+ 0.085405417625274677
+ 0.085408449813983184
+ 0.085411482042311845
+ 0.085414514310262521
+ 0.085417546617836626
+ 0.085420578965035923
+ 0.085423611351862078
+ 0.085426643778316672
+ 0.085429676244401537
+ 0.085432708750118061
+ 0.085435741295468076
+ 0.08543877388045315
+ 0.085441806505075032
+ 0.085444839169335221
+ 0.085447871873235395
+ 0.085450904616777401
+ 0.085453937399962682
+ 0.085456970222793013
+ 0.085460003085269853
+ 0.085463035987395103
+ 0.085466068929170275
+ 0.085469101910597076
+ 0.085472134931677199
+ 0.085475167992412143
+ 0.085478201092803657
+ 0.085481234232853281
+ 0.085484267412562903
+ 0.085487300631934104
+ 0.085490333890968398
+ 0.085493367189667602
+ 0.085496400528033215
+ 0.085499433906067082
+ 0.085502467323770634
+ 0.085505500781145716
+ 0.085508534278193826
+ 0.08551156781491677
+ 0.085514601391316086
+ 0.085517635007393483
+ 0.085520668663150654
+ 0.085523702358589138
+ 0.085526736093710809
+ 0.085529769868517
+ 0.085532803683009639
+ 0.08553583753719024
+ 0.085538871431060565
+ 0.085541905364622126
+ 0.085544939337876796
+ 0.085547973350826007
+ 0.085551007403471546
+ 0.085554041495815053
+ 0.085557075627858206
+ 0.085560109799602477
+ 0.085563144011049835
+ 0.085566178262201753
+ 0.085569212553059798
+ 0.085572246883625899
+ 0.085575281253901472
+ 0.085578315663888252
+ 0.085581350113587959
+ 0.085584384603002217
+ 0.085587419132132594
+ 0.085590453700980923
+ 0.085593488309548715
+ 0.085596522957837679
+ 0.085599557645849519
+ 0.085602592373585806
+ 0.085605627141048343
+ 0.085608661948238546
+ 0.085611696795158329
+ 0.08561473168180922
+ 0.085617766608192938
+ 0.085620801574311123
+ 0.085623836580165397
+ 0.085626871625757536
+ 0.085629906711089027
+ 0.085632941836161672
+ 0.085635977000976998
+ 0.085639012205536824
+ 0.085642047449842773
+ 0.08564508273389651
+ 0.085648118057699618
+ 0.085651153421253831
+ 0.085654188824560731
+ 0.085657224267622067
+ 0.085660259750439505
+ 0.085663295273014695
+ 0.085666330835349178
+ 0.085669366437444827
+ 0.085672402079303211
+ 0.085675437760925954
+ 0.085678473482314721
+ 0.085681509243471232
+ 0.085684545044397181
+ 0.085687580885094206
+ 0.085690616765563929
+ 0.085693652685807947
+ 0.085696688645828092
+ 0.085699724645625877
+ 0.085702760685203105
+ 0.085705796764561332
+ 0.085708832883702346
+ 0.085711869042627717
+ 0.085714905241339123
+ 0.085717941479838189
+ 0.085720977758126676
+ 0.08572401407620614
+ 0.085727050434078425
+ 0.085730086831745031
+ 0.08573312326920772
+ 0.085736159746468144
+ 0.085739196263527842
+ 0.085742232820388689
+ 0.085745269417052267
+ 0.085748306053520171
+ 0.085751342729794053
+ 0.085754379445875856
+ 0.085757416201766926
+ 0.085760452997469039
+ 0.085763489832983958
+ 0.085766526708313279
+ 0.085769563623458583
+ 0.08577260057842169
+ 0.085775637573204153
+ 0.08577867460780772
+ 0.085781711682234058
+ 0.085784748796484844
+ 0.085787785950561676
+ 0.085790823144466316
+ 0.085793860378200318
+ 0.085796897651765458
+ 0.085799934965163346
+ 0.085802972318395745
+ 0.085806009711464223
+ 0.085809047144370487
+ 0.085812084617116313
+ 0.085815122129703159
+ 0.085818159682132786
+ 0.085821197274406888
+ 0.085824234906527241
+ 0.085827272578495345
+ 0.085830310290312961
+ 0.085833348041981741
+ 0.085836385833503365
+ 0.085839423664879566
+ 0.0858424615361119
+ 0.085845499447201989
+ 0.085848537398151792
+ 0.085851575388962695
+ 0.085854613419636558
+ 0.085857651490174935
+ 0.085860689600579576
+ 0.085863727750852048
+ 0.085866765940994211
+ 0.085869804171007577
+ 0.085872842440893812
+ 0.085875880750654776
+ 0.085878919100291926
+ 0.085881957489807093
+ 0.085884995919201956
+ 0.085888034388478002
+ 0.085891072897637061
+ 0.08589411144668091
+ 0.085897150035610964
+ 0.085900188664429139
+ 0.085903227333136975
+ 0.085906266041736082
+ 0.085909304790228361
+ 0.085912343578615297
+ 0.085915382406898694
+ 0.085918421275080079
+ 0.085921460183161366
+ 0.085924499131143986
+ 0.08592753811902977
+ 0.085930577146820286
+ 0.085933616214517269
+ 0.085936655322122538
+ 0.085939694469637604
+ 0.085942733657064119
+ 0.085945772884403748
+ 0.085948812151658394
+ 0.085951851458829484
+ 0.085954890805918893
+ 0.085957930192928175
+ 0.085960969619859023
+ 0.085964009086713145
+ 0.085967048593492218
+ 0.085970088140197992
+ 0.085973127726831994
+ 0.085976167353395944
+ 0.085979207019891618
+ 0.085982246726320682
+ 0.08598528647268476
+ 0.085988326258985476
+ 0.085991366085224771
+ 0.085994405951403979
+ 0.085997445857525015
+ 0.086000485803589502
+ 0.086003525789599147
+ 0.086006565815555505
+ 0.086009605881460463
+ 0.086012645987315534
+ 0.086015686133122424
+ 0.086018726318882993
+ 0.086021766544598685
+ 0.086024806810271248
+ 0.086027847115902528
+ 0.086030887461493968
+ 0.086033927847047414
+ 0.086036968272564546
+ 0.08604000873804693
+ 0.086043049243496372
+ 0.086046089788914579
+ 0.08604913037430309
+ 0.086052170999663752
+ 0.086055211664997938
+ 0.086058252370307842
+ 0.086061293115594698
+ 0.086064333900860449
+ 0.086067374726106663
+ 0.086070415591335034
+ 0.086073456496547393
+ 0.086076497441745156
+ 0.086079538426930252
+ 0.086082579452104208
+ 0.086085620517268938
+ 0.08608866162242583
+ 0.086091702767576717
+ 0.086094743952723346
+ 0.086097785177867356
+ 0.086100826443010245
+ 0.086103867748154109
+ 0.086106909093300377
+ 0.086109950478450603
+ 0.086112991903606689
+ 0.086116033368770328
+ 0.086119074873943102
+ 0.086122116419126746
+ 0.086125158004323007
+ 0.086128199629533497
+ 0.08613124129475995
+ 0.086134283000004086
+ 0.086137324745267391
+ 0.086140366530551821
+ 0.08614340835585893
+ 0.086146450221190385
+ 0.086149492126547947
+ 0.086152534071933212
+ 0.08615557605734811
+ 0.086158618082793986
+ 0.086161660148272867
+ 0.086164702253786155
+ 0.086167744399335722
+ 0.08617078658492322
+ 0.086173828810550301
+ 0.086176871076218742
+ 0.086179913381930123
+ 0.086182955727686195
+ 0.086185998113488677
+ 0.086189040539339221
+ 0.086192083005239506
+ 0.086195125511191309
+ 0.086198168057196184
+ 0.086201210643255893
+ 0.086204253269372241
+ 0.086207295935546824
+ 0.086210338641781292
+ 0.08621338138807734
+ 0.086216424174436646
+ 0.086219467000861097
+ 0.086222509867352234
+ 0.086225552773911709
+ 0.086228595720541326
+ 0.086231638707242708
+ 0.086234681734017576
+ 0.086237724800867721
+ 0.086240767907794585
+ 0.086243811054800085
+ 0.08624685424188587
+ 0.08624989746905358
+ 0.086252940736304934
+ 0.086255984043641667
+ 0.08625902739106539
+ 0.086262070778577934
+ 0.086265114206180882
+ 0.086268157673876009
+ 0.086271201181664939
+ 0.086274244729549504
+ 0.086277288317531189
+ 0.086280331945611757
+ 0.086283375613793067
+ 0.086286419322076674
+ 0.086289463070464353
+ 0.086292506858957674
+ 0.086295550687558398
+ 0.086298594556268329
+ 0.086301638465089023
+ 0.086304682414022268
+ 0.086307726403069732
+ 0.086310770432233078
+ 0.086313814501514027
+ 0.086316858610914371
+ 0.086319902760435552
+ 0.086322946950079707
+ 0.086325991179848155
+ 0.086329035449742658
+ 0.086332079759764951
+ 0.086335124109916811
+ 0.086338168500200041
+ 0.086341212930616043
+ 0.086344257401166635
+ 0.086347301911853566
+ 0.086350346462678543
+ 0.086353391053643258
+ 0.086356435684749419
+ 0.086359480355998622
+ 0.08636252506739274
+ 0.086365569818933383
+ 0.086368614610622244
+ 0.086371659442460946
+ 0.086374704314451406
+ 0.086377749226595205
+ 0.086380794178894035
+ 0.086383839171349619
+ 0.086386884203963663
+ 0.086389929276737845
+ 0.086392974389673818
+ 0.086396019542773497
+ 0.08639906473603827
+ 0.086402109969470189
+ 0.086405155243070686
+ 0.086408200556841591
+ 0.086411245910784612
+ 0.086414291304901386
+ 0.086417336739193606
+ 0.086420382213663147
+ 0.086423427728311533
+ 0.086426473283140542
+ 0.086429518878151812
+ 0.086432564513347215
+ 0.086435610188728279
+ 0.086438655904296807
+ 0.086441701660054507
+ 0.086444747456002974
+ 0.086447793292143957
+ 0.086450839168479413
+ 0.086453885085010701
+ 0.086456931041739599
+ 0.086459977038668034
+ 0.086463023075797521
+ 0.086466069153129807
+ 0.08646911527066653
+ 0.086472161428409577
+ 0.086475207626360462
+ 0.086478253864521043
+ 0.086481300142892847
+ 0.08648434646147786
+ 0.086487392820277537
+ 0.086490439219293752
+ 0.086493485658528171
+ 0.086496532137982349
+ 0.086499578657658283
+ 0.086502625217557291
+ 0.086505671817681595
+ 0.086508718458032527
+ 0.086511765138611835
+ 0.086514811859421364
+ 0.086517858620462712
+ 0.086520905421737654
+ 0.086523952263247814
+ 0.086526999144995023
+ 0.086530046066980837
+ 0.086533093029207156
+ 0.086536140031675715
+ 0.08653918707438793
+ 0.086542234157345757
+ 0.086545281280550834
+ 0.086548328444004868
+ 0.086551375647709705
+ 0.086554422891666843
+ 0.086557470175878073
+ 0.086560517500345213
+ 0.086563564865069872
+ 0.086566612270053758
+ 0.086569659715298536
+ 0.086572707200806148
+ 0.086575754726578039
+ 0.086578802292616025
+ 0.086581849898921953
+ 0.086584897545497336
+ 0.086587945232343907
+ 0.086590992959463514
+ 0.086594040726857835
+ 0.086597088534528577
+ 0.086600136382477322
+ 0.086603184270705916
+ 0.086606232199216093
+ 0.086609280168009464
+ 0.086612328177087874
+ 0.086615376226452906
+ 0.086618424316106363
+ 0.086621472446049938
+ 0.086624520616285394
+ 0.086627568826814313
+ 0.086630617077638666
+ 0.086633665368759757
+ 0.086636713700179821
+ 0.086639762071900106
+ 0.086642810483922625
+ 0.086645858936249015
+ 0.086648907428880817
+ 0.086651955961820029
+ 0.08665500453506822
+ 0.086658053148627207
+ 0.086661101802498655
+ 0.086664150496684147
+ 0.086667199231185585
+ 0.086670248006004674
+ 0.086673296821143039
+ 0.086676345676602359
+ 0.086679394572384549
+ 0.086682443508491205
+ 0.086685492484924007
+ 0.086688541501684757
+ 0.086691590558775233
+ 0.086694639656196976
+ 0.086697688793951802
+ 0.086700737972041461
+ 0.08670378719046766
+ 0.086706836449231939
+ 0.086709885748336296
+ 0.086712935087782425
+ 0.08671598446757188
+ 0.086719033887706409
+ 0.086722083348187803
+ 0.086725132849017825
+ 0.086728182390198152
+ 0.086731231971730369
+ 0.086734281593616486
+ 0.086737331255857975
+ 0.086740380958456584
+ 0.086743430701414215
+ 0.086746480484732436
+ 0.086749530308412967
+ 0.086752580172457669
+ 0.08675563007686804
+ 0.086758680021646023
+ 0.086761730006793214
+ 0.086764780032311445
+ 0.086767830098202228
+ 0.086770880204467521
+ 0.086773930351109044
+ 0.086776980538128309
+ 0.086780030765527136
+ 0.08678308103330741
+ 0.086786131341470618
+ 0.086789181690018632
+ 0.08679223207895316
+ 0.086795282508275881
+ 0.086798332977988571
+ 0.086801383488092854
+ 0.08680443403859063
+ 0.086807484629483414
+ 0.086810535260773231
+ 0.086813585932461509
+ 0.086816636644550055
+ 0.086819687397040712
+ 0.086822738189935078
+ 0.086825789023234928
+ 0.086828839896942026
+ 0.086831890811058049
+ 0.086834941765584664
+ 0.086837992760523744
+ 0.08684104379587694
+ 0.086844094871646002
+ 0.086847145987832663
+ 0.086850197144438646
+ 0.086853248341465628
+ 0.086856299578915303
+ 0.086859350856789572
+ 0.086862402175090017
+ 0.086865453533818429
+ 0.08686850493297657
+ 0.08687155637256605
+ 0.086874607852588853
+ 0.086877659373046326
+ 0.086880710933940467
+ 0.086883762535272996
+ 0.086886814177045552
+ 0.086889865859259854
+ 0.086892917581917681
+ 0.086895969345020904
+ 0.086899021148570982
+ 0.086902072992569857
+ 0.086905124877018999
+ 0.086908176801920534
+ 0.086911228767275958
+ 0.086914280773087035
+ 0.086917332819355445
+ 0.08692038490608299
+ 0.086923437033271378
+ 0.086926489200922302
+ 0.086929541409037581
+ 0.086932593657618892
+ 0.086935645946667958
+ 0.086938698276186582
+ 0.086941750646176388
+ 0.086944803056639264
+ 0.086947855507576763
+ 0.086950907998990773
+ 0.086953960530882946
+ 0.086957013103255015
+ 0.086960065716108786
+ 0.086963118369445855
+ 0.08696617106326808
+ 0.086969223797577155
+ 0.086972276572374857
+ 0.086975329387662892
+ 0.086978382243442912
+ 0.086981435139716776
+ 0.086984488076486205
+ 0.086987541053752865
+ 0.08699059407151849
+ 0.08699364712978494
+ 0.086996700228553811
+ 0.086999753367826865
+ 0.087002806547605893
+ 0.087005859767892588
+ 0.087008913028688795
+ 0.087011966329996165
+ 0.087015019671816365
+ 0.087018073054151171
+ 0.087021126477002414
+ 0.087024179940371732
+ 0.087027233444260985
+ 0.08703028698867174
+ 0.087033340573605872
+ 0.087036394199065045
+ 0.087039447865051037
+ 0.087042501571565581
+ 0.087045555318610385
+ 0.087048609106187225
+ 0.087051662934297794
+ 0.087054716802943966
+ 0.087057770712127266
+ 0.087060824661849584
+ 0.087063878652112639
+ 0.087066932682918222
+ 0.087069986754267845
+ 0.08707304086616359
+ 0.0870760950186069
+ 0.087079149211599607
+ 0.08708220344514353
+ 0.087085257719240389
+ 0.087088312033891946
+ 0.087091366389099756
+ 0.087094420784865789
+ 0.08709747522119167
+ 0.087100529698079202
+ 0.087103584215529994
+ 0.087106638773546019
+ 0.087109693372128816
+ 0.087112748011280217
+ 0.08711580269100197
+ 0.087118857411295769
+ 0.087121912172163404
+ 0.087124966973606527
+ 0.087128021815627066
+ 0.087131076698226576
+ 0.087134131621406846
+ 0.087137186585169696
+ 0.087140241589516804
+ 0.087143296634449988
+ 0.087146351719970885
+ 0.087149406846081315
+ 0.087152462012783094
+ 0.087155517220077708
+ 0.087158572467967182
+ 0.087161627756453114
+ 0.087164683085537417
+ 0.087167738455221438
+ 0.087170793865507343
+ 0.087173849316396754
+ 0.087176904807891323
+ 0.087179960339992868
+ 0.08718301591270311
+ 0.087186071526023867
+ 0.087189127179956805
+ 0.08719218287450374
+ 0.087195238609666395
+ 0.08719829438544642
+ 0.087201350201845634
+ 0.087204406058865841
+ 0.087207461956508761
+ 0.087210517894776074
+ 0.087213573873669598
+ 0.087216629893191039
+ 0.087219685953342244
+ 0.087222742054124835
+ 0.087225798195540619
+ 0.087228854377591342
+ 0.087231910600278684
+ 0.087234966863604435
+ 0.087238023167570428
+ 0.087241079512178341
+ 0.087244135897430006
+ 0.087247192323327019
+ 0.087250248789871282
+ 0.087253305297064418
+ 0.087256361844908245
+ 0.087259418433404526
+ 0.087262475062554967
+ 0.087265531732361346
+ 0.087268588442825382
+ 0.087271645193948921
+ 0.087274701985733658
+ 0.08727775881818127
+ 0.087280815691293576
+ 0.087283872605072296
+ 0.087286929559519263
+ 0.087289986554636129
+ 0.087293043590424738
+ 0.087296100666886811
+ 0.08729915778402414
+ 0.087302214941838319
+ 0.087305272140331278
+ 0.087308329379504612
+ 0.087311386659360279
+ 0.087314443979899833
+ 0.087317501341125092
+ 0.087320558743037874
+ 0.087323616185639927
+ 0.087326673668932986
+ 0.08732973119291873
+ 0.087332788757598936
+ 0.087335846362975394
+ 0.087338904009049922
+ 0.087341961695824144
+ 0.087345019423299988
+ 0.087348077191478996
+ 0.087351135000363123
+ 0.087354192849953868
+ 0.087357250740253384
+ 0.08736030867126296
+ 0.087363366642984802
+ 0.087366424655420341
+ 0.087369482708571394
+ 0.087372540802439766
+ 0.087375598937027329
+ 0.087378657112335653
+ 0.087381715328366541
+ 0.087384773585121867
+ 0.087387831882603212
+ 0.087390890220812423
+ 0.087393948599751331
+ 0.087397007019421644
+ 0.087400065479824957
+ 0.087403123980963254
+ 0.087406182522838161
+ 0.087409241105451507
+ 0.087412299728805001
+ 0.087415358392900475
+ 0.087418417097739606
+ 0.087421475843324173
+ 0.087424534629655937
+ 0.087427593456736688
+ 0.087430652324568231
+ 0.087433711233152134
+ 0.087436770182490395
+ 0.087439829172584596
+ 0.087442888203436597
+ 0.087445947275048078
+ 0.087449006387420869
+ 0.087452065540556817
+ 0.087455124734457393
+ 0.087458183969124734
+ 0.087461243244560227
+ 0.087464302560765914
+ 0.087467361917743472
+ 0.087470421315494651
+ 0.08747348075402113
+ 0.087476540233324823
+ 0.087479599753407425
+ 0.087482659314270669
+ 0.087485718915916277
+ 0.087488778558346178
+ 0.087491838241562009
+ 0.087494897965565629
+ 0.087497957730358594
+ 0.08750101753594286
+ 0.087504077382320092
+ 0.087507137269492163
+ 0.087510197197460712
+ 0.087513257166227612
+ 0.087516317175794708
+ 0.087519377226163472
+ 0.087522437317335777
+ 0.087525497449313622
+ 0.087528557622098407
+ 0.087531617835692188
+ 0.087534678090096615
+ 0.08753773838531341
+ 0.087540798721344473
+ 0.087543859098191484
+ 0.087546919515856192
+ 0.087549979974340386
+ 0.087553040473645732
+ 0.087556101013774215
+ 0.08755916159472743
+ 0.087562222216507238
+ 0.087565282879115344
+ 0.087568343582553582
+ 0.087571404326823574
+ 0.087574465111927235
+ 0.087577525937866205
+ 0.087580586804642535
+ 0.087583647712257656
+ 0.0875867086607134
+ 0.087589769650011751
+ 0.087592830680154235
+ 0.087595891751142657
+ 0.087598952862978946
+ 0.087602014015664698
+ 0.087605075209201799
+ 0.087608136443591972
+ 0.087611197718837019
+ 0.087614259034938524
+ 0.087617320391898595
+ 0.087620381789718774
+ 0.087623443228400696
+ 0.087626504707946529
+ 0.087629566228357783
+ 0.087632627789636236
+ 0.087635689391783581
+ 0.087638751034801857
+ 0.087641812718692549
+ 0.087644874443457671
+ 0.087647936209098873
+ 0.087650998015617806
+ 0.087654059863016456
+ 0.087657121751296502
+ 0.087660183680459691
+ 0.087663245650507898
+ 0.087666307661442761
+ 0.087669369713266138
+ 0.087672431805979723
+ 0.087675493939585347
+ 0.087678556114084844
+ 0.087681618329479932
+ 0.087684680585772265
+ 0.08768774288296384
+ 0.087690805221056295
+ 0.087693867600051392
+ 0.087696930019950922
+ 0.087699992480756744
+ 0.087703054982470552
+ 0.087706117525094038
+ 0.087709180108629076
+ 0.087712242733077483
+ 0.08771530539844101
+ 0.087718368104721361
+ 0.087721430851920495
+ 0.087724493640039827
+ 0.087727556469081425
+ 0.087730619339047106
+ 0.087733682249938369
+ 0.087736745201757199
+ 0.087739808194505442
+ 0.08774287122818468
+ 0.087745934302796785
+ 0.08774899741834348
+ 0.087752060574826651
+ 0.087755123772247895
+ 0.087758187010609223
+ 0.087761250289912246
+ 0.087764313610158712
+ 0.087767376971350605
+ 0.087770440373489453
+ 0.087773503816577184
+ 0.087776567300615546
+ 0.087779630825606372
+ 0.087782694391551272
+ 0.087785757998452202
+ 0.087788821646310813
+ 0.08779188533512905
+ 0.087794949064908548
+ 0.08779801283565114
+ 0.08780107664735845
+ 0.087804140500032449
+ 0.087807204393674856
+ 0.087810268328287547
+ 0.087813332303872213
+ 0.087816396320430604
+ 0.087819460377964481
+ 0.087822524476475691
+ 0.087825588615966052
+ 0.087828652796437257
+ 0.087831717017891123
+ 0.087834781280329371
+ 0.087837845583753932
+ 0.087840909928166469
+ 0.087843974313568815
+ 0.087847038739962677
+ 0.087850103207349858
+ 0.08785316771573233
+ 0.087856232265111495
+ 0.08785929685548953
+ 0.087862361486867921
+ 0.087865426159248652
+ 0.087868490872633459
+ 0.087871555627024006
+ 0.087874620422422237
+ 0.087877685258829774
+ 0.087880750136248575
+ 0.087883815054680306
+ 0.087886880014126742
+ 0.087889945014589702
+ 0.087893010056071058
+ 0.087896075138572491
+ 0.087899140262095707
+ 0.087902205426642718
+ 0.087905270632215149
+ 0.087908335878814747
+ 0.087911401166443415
+ 0.087914466495102886
+ 0.087917531864794965
+ 0.087920597275521331
+ 0.087923662727284024
+ 0.087926728220084613
+ 0.087929793753924873
+ 0.087932859328806651
+ 0.087935924944731833
+ 0.08793899060170203
+ 0.087942056299719143
+ 0.087945122038784906
+ 0.087948187818901125
+ 0.087951253640069629
+ 0.087954319502292114
+ 0.087957385405570354
+ 0.087960451349906349
+ 0.087963517335301694
+ 0.087966583361758277
+ 0.087969649429277735
+ 0.087972715537861998
+ 0.087975781687512786
+ 0.087978847878231875
+ 0.087981914110021139
+ 0.087984980382882327
+ 0.08798804669681716
+ 0.08799111305182758
+ 0.087994179447915197
+ 0.087997245885081982
+ 0.0880003123633296
+ 0.088003378882659716
+ 0.088006445443074427
+ 0.088009512044575397
+ 0.08801257868716432
+ 0.08801564537084311
+ 0.088018712095613419
+ 0.088021778861477218
+ 0.088024845668436144
+ 0.088027912516492043
+ 0.08803097940564672
+ 0.088034046335902005
+ 0.088037113307259662
+ 0.088040180319721412
+ 0.088043247373289071
+ 0.088046314467964473
+ 0.088049381603749505
+ 0.088052448780645803
+ 0.088055515998655132
+ 0.088058583257779363
+ 0.088061650558020413
+ 0.088064717899379849
+ 0.088067785281859587
+ 0.088070852705461347
+ 0.088073920170187003
+ 0.088076987676038443
+ 0.088080055223017206
+ 0.088083122811125333
+ 0.088086190440364351
+ 0.088089258110736271
+ 0.088092325822242828
+ 0.088095393574885855
+ 0.088098461368667114
+ 0.088101529203588352
+ 0.088104597079651389
+ 0.088107664996857946
+ 0.088110732955210144
+ 0.088113800954709401
+ 0.088116868995357603
+ 0.088119937077156679
+ 0.088123005200108351
+ 0.08812607336421438
+ 0.088129141569476599
+ 0.088132209815896756
+ 0.088135278103476683
+ 0.088138346432218323
+ 0.088141414802123244
+ 0.08814448321319332
+ 0.088147551665430313
+ 0.088150620158836263
+ 0.088153688693412557
+ 0.088156757269161279
+ 0.0881598258860843
+ 0.088162894544183079
+ 0.088165963243459655
+ 0.088169031983915847
+ 0.088172100765553318
+ 0.088175169588373986
+ 0.088178238452379695
+ 0.088181307357572042
+ 0.088184376303952941
+ 0.088187445291524238
+ 0.088190514320287641
+ 0.088193583390245023
+ 0.088196652501398118
+ 0.0881997216537488
+ 0.088202790847298845
+ 0.088205860082049989
+ 0.088208929358004132
+ 0.088211998675163023
+ 0.08821506803352841
+ 0.088218137433102098
+ 0.088221206873886168
+ 0.088224276355881981
+ 0.088227345879091645
+ 0.088230415443516896
+ 0.088233485049159427
+ 0.088236554696021166
+ 0.088239624384103904
+ 0.088242694113409459
+ 0.08824576388393944
+ 0.088248833695695902
+ 0.088251903548680524
+ 0.08825497344289511
+ 0.08825804337834145
+ 0.088261113355021431
+ 0.088264183372936886
+ 0.088267253432089451
+ 0.088270323532480988
+ 0.088273393674113368
+ 0.088276463856988369
+ 0.088279534081107808
+ 0.088282604346473392
+ 0.088285674653087023
+ 0.08828874500095045
+ 0.088291815390065601
+ 0.088294885820434141
+ 0.088297956292057916
+ 0.088301026804938745
+ 0.088304097359078501
+ 0.088307167954478877
+ 0.088310238591141704
+ 0.088313309269068718
+ 0.088316379988261931
+ 0.08831945074872305
+ 0.088322521550453795
+ 0.088325592393456026
+ 0.088328663277731548
+ 0.088331734203282289
+ 0.088334805170109901
+ 0.088337876178216257
+ 0.088340947227603134
+ 0.088344018318272294
+ 0.088347089450225708
+ 0.088350160623465068
+ 0.088353231837992152
+ 0.088356303093808902
+ 0.08835937439091697
+ 0.088362445729318215
+ 0.08836551710901451
+ 0.088368588530007577
+ 0.088371659992299276
+ 0.088374731495891423
+ 0.088377803040785796
+ 0.088380874626984282
+ 0.088383946254488574
+ 0.088387017923300587
+ 0.088390089633422014
+ 0.088393161384854813
+ 0.088396233177600619
+ 0.088399305011661433
+ 0.088402376887038864
+ 0.088405448803734937
+ 0.088408520761751277
+ 0.088411592761089869
+ 0.088414664801752335
+ 0.088417736883740577
+ 0.088420809007056525
+ 0.088423881171701829
+ 0.088426953377678322
+ 0.088430025624987862
+ 0.088433097913632297
+ 0.088436170243613305
+ 0.088439242614932814
+ 0.088442315027592588
+ 0.088445387481594417
+ 0.088448459976940258
+ 0.088451532513631775
+ 0.08845460509167076
+ 0.088457677711059224
+ 0.088460750371798735
+ 0.088463823073891334
+ 0.088466895817338645
+ 0.088469968602142485
+ 0.088473041428304838
+ 0.088476114295827496
+ 0.088479187204712068
+ 0.088482260154960579
+ 0.088485333146574793
+ 0.088488406179556459
+ 0.088491479253907393
+ 0.088494552369629609
+ 0.088497625526724549
+ 0.088500698725194379
+ 0.088503771965040806
+ 0.088506845246265606
+ 0.088509918568870541
+ 0.088512991932857554
+ 0.088516065338228311
+ 0.088519138784984838
+ 0.088522212273128814
+ 0.088525285802662113
+ 0.088528359373586551
+ 0.088531432985903824
+ 0.088534506639615831
+ 0.088537580334724475
+ 0.088540654071231378
+ 0.088543727849138595
+ 0.088546801668447903
+ 0.088549875529160924
+ 0.08855294943127956
+ 0.088556023374805767
+ 0.088559097359741226
+ 0.088562171386087823
+ 0.088565245453847377
+ 0.088568319563021553
+ 0.088571393713612362
+ 0.088574467905621651
+ 0.088577542139051071
+ 0.088580616413902566
+ 0.088583690730177786
+ 0.088586765087878744
+ 0.088589839487007271
+ 0.088592913927565006
+ 0.088595988409553933
+ 0.088599062932975856
+ 0.088602137497832453
+ 0.088605212104125711
+ 0.088608286751857293
+ 0.088611361441029282
+ 0.088614436171643204
+ 0.088617510943700975
+ 0.088620585757204551
+ 0.088623660612155652
+ 0.08862673550855607
+ 0.088629810446407664
+ 0.088632885425712252
+ 0.088635960446471679
+ 0.088639035508687777
+ 0.088642110612362338
+ 0.08864518575749708
+ 0.088648260944094018
+ 0.088651336172154857
+ 0.088654411441681499
+ 0.088657486752675693
+ 0.088660562105139354
+ 0.088663637499074216
+ 0.088666712934482167
+ 0.088669788411364941
+ 0.088672863929724427
+ 0.088675939489562455
+ 0.088679015090880928
+ 0.088682090733681426
+ 0.088685166417965991
+ 0.088688242143736482
+ 0.088691317910994549
+ 0.088694393719742068
+ 0.088697469569980994
+ 0.088700545461712924
+ 0.088703621394939994
+ 0.088706697369663717
+ 0.088709773385886231
+ 0.08871284944360909
+ 0.088715925542834223
+ 0.088719001683563434
+ 0.088722077865798568
+ 0.088725154089541472
+ 0.088728230354793922
+ 0.088731306661557804
+ 0.088734383009834952
+ 0.088737459399627169
+ 0.088740535830936329
+ 0.088743612303764222
+ 0.088746688818112526
+ 0.088749765373983311
+ 0.08875284197137831
+ 0.088755918610299384
+ 0.088758995290748266
+ 0.088762072012726845
+ 0.088765148776236924
+ 0.088768225581280405
+ 0.088771302427859147
+ 0.088774379315974816
+ 0.088777456245629258
+ 0.088780533216824484
+ 0.088783610229562271
+ 0.088786687283844312
+ 0.088789764379672606
+ 0.088792841517048846
+ 0.088795918695974876
+ 0.088798995916452642
+ 0.088802073178483959
+ 0.088805150482070452
+ 0.088808227827214176
+ 0.088811305213916975
+ 0.0888143826421805
+ 0.088817460112006696
+ 0.088820537623397408
+ 0.088823615176354453
+ 0.088826692770879692
+ 0.088829770406974873
+ 0.088832848084641772
+ 0.08883592580388254
+ 0.088839003564698538
+ 0.088842081367092055
+ 0.088845159211064742
+ 0.088848237096618266
+ 0.088851315023754776
+ 0.088854392992475828
+ 0.088857471002783323
+ 0.088860549054679314
+ 0.088863627148165439
+ 0.088866705283243488
+ 0.088869783459915364
+ 0.088872861678183021
+ 0.088875939938048057
+ 0.088879018239512539
+ 0.088882096582578132
+ 0.088885174967246697
+ 0.088888253393520161
+ 0.088891331861400233
+ 0.088894410370888938
+ 0.088897488921987927
+ 0.088900567514699186
+ 0.088903646149024407
+ 0.088906724824965436
+ 0.088909803542524243
+ 0.08891288230170262
+ 0.088915961102502356
+ 0.088919039944925296
+ 0.088922118828973176
+ 0.088925197754648036
+ 0.088928276721951721
+ 0.088931355730885869
+ 0.088934434781452493
+ 0.088937513873653257
+ 0.088940593007490201
+ 0.088943672182965075
+ 0.088946751400079654
+ 0.088949830658835841
+ 0.088952909959235438
+ 0.088955989301280403
+ 0.088959068684972373
+ 0.088962148110313388
+ 0.08896522757730517
+ 0.088968307085949605
+ 0.088971386636248539
+ 0.088974466228203722
+ 0.088977545861817123
+ 0.088980625537090477
+ 0.088983705254025658
+ 0.088986785012624525
+ 0.08898986481288905
+ 0.088992944654820799
+ 0.0889960245384218
+ 0.088999104463693843
+ 0.089002184430638787
+ 0.089005264439258477
+ 0.089008344489554678
+ 0.08901142458152933
+ 0.089014504715184198
+ 0.089017584890521265
+ 0.089020665107542252
+ 0.089023745366248977
+ 0.089026825666643369
+ 0.089029906008727261
+ 0.089032986392502372
+ 0.089036066817970771
+ 0.089039147285134138
+ 0.089042227793994316
+ 0.089045308344553181
+ 0.089048388936812606
+ 0.089051469570774422
+ 0.089054550246440489
+ 0.08905763096381257
+ 0.089060711722892566
+ 0.08906379252368235
+ 0.089066873366183741
+ 0.089069954250398584
+ 0.089073035176328766
+ 0.089076116143976078
+ 0.089079197153342296
+ 0.08908227820442928
+ 0.089085359297239194
+ 0.089088440431773455
+ 0.08909152160803413
+ 0.089094602826022995
+ 0.089097684085742007
+ 0.089100765387192846
+ 0.089103846730377509
+ 0.089106928115297773
+ 0.089110009541955498
+ 0.089113091010352474
+ 0.089116172520490589
+ 0.089119254072371798
+ 0.089122335665997796
+ 0.089125417301370455
+ 0.089128498978491733
+ 0.089131580697363405
+ 0.089134662457987165
+ 0.089137744260365123
+ 0.089140826104499138
+ 0.089143907990390708
+ 0.089146989918042027
+ 0.089150071887454899
+ 0.089153153898631043
+ 0.089156235951572321
+ 0.089159318046280772
+ 0.089162400182757881
+ 0.089165482361005868
+ 0.089168564581026497
+ 0.0891716468428215
+ 0.089174729146392726
+ 0.089177811491742198
+ 0.089180893878871639
+ 0.089183976307782839
+ 0.08918705877847781
+ 0.089190141290958216
+ 0.08919322384522621
+ 0.089196306441283249
+ 0.089199389079131525
+ 0.089202471758772717
+ 0.089205554480208643
+ 0.089208637243441205
+ 0.089211720048472415
+ 0.08921480289530391
+ 0.089217885783937606
+ 0.089220968714375459
+ 0.089224051686619038
+ 0.089227134700670632
+ 0.089230217756531699
+ 0.089233300854204306
+ 0.08923638399369016
+ 0.08923946717499126
+ 0.08924255039810941
+ 0.0892456336630464
+ 0.089248716969804201
+ 0.089251800318384616
+ 0.089254883708789381
+ 0.089257967141020647
+ 0.089261050615079968
+ 0.089264134130969341
+ 0.089267217688690462
+ 0.089270301288245549
+ 0.089273384929636088
+ 0.089276468612864188
+ 0.089279552337931473
+ 0.089282636104840024
+ 0.089285719913591383
+ 0.089288803764187782
+ 0.089291887656630958
+ 0.089294971590922589
+ 0.089298055567064674
+ 0.089301139585059142
+ 0.08930422364490774
+ 0.08930730774661233
+ 0.089310391890174839
+ 0.089313476075597087
+ 0.089316560302880876
+ 0.089319644572028054
+ 0.089322728883040645
+ 0.08932581323592037
+ 0.089328897630669105
+ 0.089331982067288776
+ 0.08933506654578105
+ 0.089338151066147981
+ 0.089341235628391524
+ 0.089344320232513194
+ 0.089347404878515099
+ 0.089350489566399086
+ 0.089353574296166902
+ 0.089356659067820504
+ 0.089359743881361697
+ 0.089362828736792438
+ 0.089365913634114377
+ 0.08936899857332968
+ 0.089372083554440027
+ 0.089375168577447095
+ 0.089378253642353148
+ 0.08938133874915978
+ 0.089384423897868909
+ 0.089387509088482392
+ 0.089390594321002145
+ 0.089393679595429945
+ 0.089396764911767609
+ 0.089399850270017206
+ 0.089402935670180497
+ 0.089406021112259218
+ 0.089409106596255408
+ 0.089412192122170803
+ 0.089415277690007428
+ 0.089418363299766976
+ 0.089421448951451377
+ 0.089424534645062517
+ 0.08942762038060223
+ 0.089430706158072415
+ 0.08943379197747485
+ 0.089436877838811449
+ 0.089439963742084169
+ 0.089443049687294648
+ 0.089446135674444996
+ 0.08944922170353696
+ 0.089452307774572373
+ 0.089455393887553192
+ 0.08945848004248122
+ 0.089461566239358359
+ 0.089464652478186427
+ 0.089467738758967241
+ 0.089470825081702829
+ 0.08947391144639498
+ 0.089476997853045498
+ 0.08948008430165641
+ 0.089483170792229269
+ 0.089486257324766311
+ 0.089489343899269158
+ 0.089492430515739879
+ 0.089495517174180014
+ 0.089498603874591728
+ 0.089501690616976881
+ 0.089504777401337068
+ 0.089507864227674525
+ 0.089510951095990846
+ 0.089514038006288016
+ 0.089517124958567798
+ 0.08952021195283226
+ 0.089523298989083136
+ 0.089526386067322258
+ 0.089529473187551556
+ 0.089532560349772791
+ 0.089535647553988046
+ 0.089538734800199138
+ 0.089541822088407733
+ 0.08954490941861587
+ 0.08954799679082541
+ 0.089551084205038184
+ 0.089554171661256107
+ 0.089557259159481012
+ 0.089560346699714771
+ 0.089563434281959273
+ 0.08956652190621639
+ 0.08956960957248794
+ 0.08957269728077577
+ 0.089575785031081906
+ 0.089578872823408193
+ 0.089581960657756268
+ 0.08958504853412827
+ 0.089588136452526057
+ 0.089591224412951309
+ 0.089594312415405997
+ 0.089597400459892007
+ 0.089600488546411297
+ 0.089603576674965491
+ 0.089606664845556697
+ 0.08960975305818672
+ 0.089612841312857447
+ 0.089615929609570738
+ 0.089619017948328356
+ 0.089622106329132339
+ 0.08962519475198448
+ 0.089628283216886651
+ 0.089631371723840766
+ 0.089634460272848715
+ 0.0896375488639123
+ 0.089640637497033382
+ 0.089643726172213944
+ 0.08964681488945582
+ 0.089649903648760826
+ 0.089652992450130906
+ 0.089656081293567849
+ 0.089659170179073558
+ 0.089662259106649989
+ 0.089665348076298945
+ 0.089668437088022357
+ 0.089671526141822014
+ 0.089674615237699914
+ 0.089677704375657794
+ 0.089680793555697663
+ 0.089683882777821203
+ 0.089686972042030536
+ 0.089690061348327438
+ 0.089693150696713658
+ 0.089696240087191334
+ 0.089699329519762089
+ 0.089702418994427893
+ 0.08970550851119076
+ 0.089708598070052284
+ 0.089711687671014603
+ 0.08971477731407955
+ 0.089717866999248871
+ 0.089720956726524512
+ 0.089724046495908372
+ 0.089727136307402366
+ 0.089730226161008245
+ 0.089733316056728074
+ 0.089736405994563631
+ 0.089739495974516706
+ 0.089742585996589214
+ 0.089745676060783333
+ 0.089748766167100522
+ 0.089751856315542722
+ 0.089754946506112168
+ 0.089758036738810318
+ 0.089761127013639308
+ 0.089764217330600943
+ 0.089767307689697193
+ 0.08977039809092964
+ 0.089773488534300588
+ 0.08977657901981155
+ 0.089779669547464622
+ 0.089782760117261676
+ 0.089785850729204433
+ 0.089788941383295004
+ 0.089792032079535108
+ 0.089795122817926579
+ 0.089798213598471621
+ 0.089801304421171652
+ 0.089804395286028918
+ 0.089807486193045183
+ 0.089810577142222209
+ 0.089813668133562091
+ 0.089816759167066496
+ 0.089819850242737642
+ 0.089822941360577044
+ 0.089826032520586754
+ 0.089829123722768606
+ 0.089832214967124513
+ 0.089835306253656447
+ 0.08983839758236617
+ 0.089841488953255638
+ 0.089844580366326587
+ 0.08984767182158114
+ 0.089850763319021004
+ 0.089853854858648052
+ 0.089856946440464339
+ 0.089860038064471598
+ 0.089863129730671829
+ 0.089866221439066904
+ 0.089869313189658476
+ 0.089872404982448723
+ 0.089875496817439393
+ 0.089878588694632389
+ 0.089881680614029638
+ 0.089884772575633071
+ 0.089887864579444393
+ 0.089890956625465548
+ 0.089894048713698521
+ 0.089897140844145171
+ 0.089900233016807468
+ 0.089903325231687023
+ 0.089906417488786083
+ 0.089909509788106287
+ 0.089912602129649494
+ 0.089915694513417702
+ 0.089918786939412743
+ 0.089921879407636712
+ 0.08992497191809129
+ 0.08992806447077839
+ 0.089931157065699832
+ 0.089934249702857724
+ 0.089937342382253704
+ 0.089940435103889868
+ 0.08994352786776795
+ 0.08994662067388999
+ 0.089949713522257779
+ 0.089952806412873162
+ 0.089955899345738097
+ 0.089958992320854539
+ 0.089962085338224321
+ 0.089965178397849205
+ 0.089968271499731287
+ 0.089971364643872412
+ 0.089974457830274343
+ 0.089977551058939037
+ 0.08998064432986852
+ 0.089983737643064429
+ 0.089986830998528833
+ 0.089989924396263632
+ 0.089993017836270672
+ 0.089996111318551772
+ 0.089999204843109012
+ 0.09000229840994399
+ 0.090005392019058994
+ 0.090008485670455537
+ 0.090011579364135799
+ 0.090014673100101444
+ 0.090017766878354555
+ 0.090020860698896962
+ 0.090023954561730526
+ 0.090027048466857051
+ 0.090030142414278674
+ 0.090033236403997061
+ 0.090036330436014209
+ 0.090039424510332089
+ 0.090042518626952381
+ 0.090045612785877194
+ 0.090048706987108262
+ 0.090051801230647599
+ 0.09005489551649698
+ 0.090057989844658473
+ 0.090061084215133841
+ 0.090064178627924943
+ 0.090067273083033791
+ 0.090070367580462246
+ 0.090073462120212208
+ 0.09007655670228551
+ 0.090079651326684135
+ 0.090082745993409888
+ 0.09008584070246474
+ 0.090088935453850563
+ 0.090092030247569316
+ 0.090095125083622801
+ 0.090098219962012852
+ 0.090101314882741659
+ 0.090104409845810751
+ 0.090107504851222292
+ 0.090110599898978044
+ 0.090113694989079993
+ 0.090116790121529969
+ 0.09011988529632993
+ 0.090122980513481762
+ 0.090126075772987202
+ 0.090129171074848358
+ 0.090132266419067103
+ 0.090135361805645312
+ 0.090138457234584857
+ 0.090141552705887487
+ 0.090144648219555465
+ 0.090147743775590441
+ 0.090150839373994221
+ 0.090153935014768982
+ 0.090157030697916529
+ 0.090160126423438625
+ 0.090163222191337267
+ 0.090166318001614357
+ 0.090169413854271852
+ 0.090172509749311597
+ 0.09017560568673548
+ 0.090178701666545388
+ 0.090181797688743251
+ 0.090184893753330886
+ 0.090187989860310416
+ 0.090191086009683522
+ 0.090194182201452214
+ 0.09019727843561838
+ 0.090200374712183867
+ 0.090203471031150603
+ 0.090206567392520587
+ 0.090209663796295608
+ 0.090212760242477597
+ 0.090215856731068481
+ 0.090218953262070217
+ 0.090222049835484514
+ 0.090225146451313423
+ 0.090228243109558862
+ 0.09023133981022273
+ 0.090234436553306818
+ 0.090237533338813236
+ 0.090240630166743691
+ 0.090243727037100097
+ 0.090246823949884453
+ 0.090249920905098729
+ 0.090253017902744662
+ 0.090256114942824164
+ 0.090259212025339361
+ 0.090262309150291931
+ 0.090265406317683761
+ 0.090268503527516961
+ 0.090271600779793279
+ 0.0902746980745147
+ 0.090277795411683112
+ 0.09028089279130036
+ 0.090283990213368429
+ 0.090287087677889163
+ 0.090290185184864424
+ 0.090293282734296348
+ 0.090296380326186559
+ 0.090299477960537194
+ 0.090302575637350072
+ 0.09030567335662705
+ 0.090308771118370018
+ 0.090311868922581043
+ 0.090314966769261859
+ 0.090318064658414562
+ 0.090321162590040791
+ 0.090324260564142667
+ 0.090327358580722078
+ 0.090330456639780884
+ 0.090333554741320932
+ 0.090336652885344301
+ 0.090339751071852797
+ 0.090342849300848266
+ 0.090345947572332733
+ 0.090349045886308141
+ 0.090352144242776225
+ 0.090355242641739025
+ 0.090358341083198387
+ 0.09036143956715624
+ 0.09036453809361461
+ 0.09036763666257526
+ 0.090370735274040048
+ 0.090373833928011099
+ 0.090376932624490175
+ 0.090380031363479205
+ 0.090383130144980173
+ 0.090386228968994883
+ 0.090389327835525307
+ 0.090392426744573262
+ 0.090395525696140885
+ 0.09039862469022994
+ 0.090401723726842409
+ 0.090404822805979945
+ 0.090407921927644797
+ 0.090411021091838781
+ 0.090414120298563647
+ 0.090417219547821545
+ 0.090420318839614183
+ 0.090423418173943615
+ 0.09042651755081163
+ 0.090429616970220325
+ 0.090432716432171489
+ 0.090435815936667094
+ 0.090438915483708984
+ 0.09044201507329902
+ 0.09044511470543927
+ 0.090448214380131606
+ 0.090451314097377861
+ 0.090454413857180005
+ 0.090457513659540023
+ 0.090460613504459761
+ 0.090463713391941092
+ 0.090466813321985889
+ 0.090469913294596374
+ 0.090473013309774059
+ 0.090476113367521108
+ 0.090479213467839353
+ 0.090482313610730808
+ 0.090485413796197178
+ 0.090488514024240713
+ 0.090491614294862924
+ 0.090494714608066074
+ 0.090497814963851883
+ 0.090500915362222351
+ 0.090504015803179322
+ 0.090507116286724837
+ 0.0905102168128607
+ 0.090513317381588895
+ 0.090516417992911269
+ 0.090519518646829819
+ 0.090522619343346489
+ 0.090525720082462985
+ 0.0905288208641815
+ 0.090531921688503755
+ 0.090535022555431804
+ 0.090538123464967535
+ 0.090541224417112792
+ 0.090544325411869617
+ 0.090547426449239729
+ 0.090550527529225294
+ 0.090553628651828061
+ 0.090556729817050027
+ 0.090559831024893053
+ 0.090562932275359123
+ 0.090566033568450097
+ 0.090569134904168028
+ 0.090572236282514609
+ 0.090575337703491937
+ 0.090578439167101954
+ 0.090581540673346339
+ 0.090584642222227341
+ 0.090587743813746735
+ 0.090590845447906271
+ 0.090593947124708224
+ 0.090597048844154218
+ 0.090600150606246363
+ 0.090603252410986435
+ 0.090606354258376487
+ 0.090609456148418227
+ 0.090612558081113931
+ 0.090615660056465208
+ 0.090618762074474057
+ 0.09062186413514256
+ 0.090624966238472437
+ 0.090628068384465757
+ 0.090631170573124378
+ 0.090634272804450217
+ 0.090637375078445173
+ 0.09064047739511126
+ 0.090643579754450199
+ 0.090646682156464237
+ 0.090649784601155026
+ 0.090652887088524758
+ 0.090655989618575003
+ 0.090659092191307925
+ 0.090662194806725466
+ 0.090665297464829459
+ 0.090668400165621818
+ 0.090671502909104515
+ 0.090674605695279478
+ 0.090677708524148609
+ 0.090680811395713809
+ 0.090683914309977021
+ 0.09068701726694027
+ 0.090690120266605431
+ 0.090693223308974336
+ 0.09069632639404912
+ 0.090699429521831396
+ 0.090702532692323312
+ 0.090705635905526785
+ 0.090708739161443744
+ 0.090711842460075923
+ 0.09071494580142557
+ 0.090718049185494448
+ 0.090721152612284431
+ 0.090724256081797516
+ 0.090727359594035648
+ 0.090730463149000642
+ 0.090733566746694569
+ 0.0907366703871193
+ 0.090739774070276835
+ 0.090742877796168908
+ 0.090745981564797698
+ 0.090749085376165023
+ 0.090752189230272701
+ 0.090755293127122771
+ 0.090758397066717164
+ 0.090761501049057849
+ 0.090764605074146659
+ 0.090767709141985509
+ 0.090770813252576493
+ 0.090773917405921403
+ 0.090777021602022306
+ 0.090780125840880993
+ 0.090783230122499309
+ 0.090786334446879391
+ 0.090789438814023155
+ 0.090792543223932473
+ 0.090795647676609262
+ 0.090798752172055519
+ 0.090801856710273077
+ 0.090804961291263961
+ 0.090808065915029906
+ 0.090811170581573078
+ 0.09081427529089546
+ 0.090817380042998691
+ 0.090820484837884977
+ 0.090823589675556052
+ 0.090826694556013957
+ 0.090829799479260703
+ 0.090832904445297999
+ 0.09083600945412805
+ 0.090839114505752605
+ 0.090842219600173607
+ 0.090845324737393054
+ 0.090848429917412848
+ 0.090851535140235001
+ 0.090854640405861262
+ 0.090857745714293781
+ 0.090860851065534307
+ 0.090863956459584852
+ 0.090867061896447429
+ 0.090870167376123925
+ 0.0908732728986162
+ 0.090876378463926155
+ 0.090879484072056024
+ 0.090882589723007334
+ 0.090885695416782306
+ 0.090888801153382812
+ 0.090891906932810795
+ 0.090895012755068158
+ 0.09089811862015687
+ 0.090901224528078722
+ 0.090904330478835893
+ 0.0909074364724302
+ 0.090910542508863559
+ 0.090913648588137899
+ 0.09091675471025526
+ 0.090919860875217404
+ 0.090922967083026482
+ 0.090926073333684368
+ 0.090929179627192866
+ 0.090932285963554002
+ 0.090935392342769747
+ 0.090938498764841946
+ 0.090941605229772723
+ 0.090944711737563785
+ 0.090947818288217283
+ 0.090950924881734993
+ 0.090954031518118983
+ 0.090957138197371085
+ 0.090960244919493283
+ 0.090963351684487589
+ 0.090966458492355767
+ 0.090969565343099898
+ 0.090972672236721897
+ 0.090975779173223692
+ 0.090978886152607227
+ 0.090981993174874487
+ 0.090985100240027275
+ 0.090988207348067729
+ 0.090991314498997708
+ 0.090994421692819072
+ 0.090997528929533791
+ 0.091000636209143976
+ 0.091003743531651304
+ 0.091006850897057914
+ 0.091009958305365721
+ 0.0910130657565765
+ 0.091016173250692389
+ 0.091019280787715304
+ 0.091022388367647131
+ 0.091025495990489869
+ 0.091028603656245377
+ 0.091031711364915641
+ 0.09103481911650263
+ 0.09103792691100826
+ 0.091041034748434405
+ 0.091044142628783173
+ 0.09104725055205648
+ 0.091050358518256116
+ 0.091053466527384108
+ 0.091056574579442384
+ 0.091059682674433068
+ 0.091062790812357824
+ 0.091065898993218847
+ 0.091069007217017869
+ 0.091072115483756946
+ 0.091075223793438034
+ 0.091078332146063076
+ 0.091081440541633876
+ 0.091084548980152641
+ 0.091087657461621244
+ 0.09109076598604135
+ 0.091093874553415249
+ 0.091096983163744663
+ 0.0911000918170317
+ 0.091103200513278332
+ 0.091106309252486223
+ 0.091109418034657649
+ 0.091112526859794332
+ 0.091115635727898395
+ 0.091118744638971585
+ 0.091121853593016125
+ 0.091124962590033706
+ 0.091128071630026425
+ 0.091131180712996085
+ 0.091134289838944754
+ 0.09113739900787439
+ 0.091140508219786961
+ 0.091143617474684219
+ 0.091146726772568354
+ 0.091149836113441185
+ 0.091152945497304683
+ 0.091156054924160818
+ 0.091159164394011574
+ 0.091162273906858896
+ 0.091165383462704558
+ 0.091168493061550726
+ 0.091171602703399163
+ 0.091174712388252005
+ 0.091177822116111223
+ 0.091180931886978581
+ 0.091184041700856103
+ 0.091187151557745691
+ 0.091190261457649538
+ 0.09119337140056924
+ 0.091196481386507031
+ 0.091199591415464729
+ 0.091202701487444346
+ 0.091205811602447742
+ 0.091208921760476999
+ 0.091212031961533963
+ 0.091215142205620645
+ 0.091218252492739044
+ 0.091221362822890908
+ 0.091224473196078362
+ 0.091227583612303334
+ 0.091230694071567767
+ 0.091233804573873659
+ 0.09123691511922298
+ 0.091240025707617523
+ 0.091243136339059353
+ 0.091246247013550372
+ 0.091249357731092634
+ 0.091252468491688041
+ 0.091255579295338562
+ 0.091258690142046003
+ 0.091261801031812487
+ 0.09126491196464008
+ 0.091268022940530436
+ 0.091271133959485759
+ 0.091274245021507855
+ 0.091277356126598722
+ 0.091280467274760232
+ 0.091283578465994691
+ 0.091286689700303625
+ 0.091289800977689101
+ 0.0912929122981532
+ 0.091296023661697853
+ 0.091299135068324919
+ 0.091302246518036478
+ 0.091305358010834337
+ 0.091308469546720658
+ 0.091311581125697192
+ 0.091314692747766005
+ 0.091317804412929041
+ 0.091320916121188242
+ 0.09132402787254558
+ 0.091327139667002968
+ 0.091330251504562435
+ 0.091333363385225949
+ 0.09133647530899533
+ 0.091339587275872686
+ 0.091342699285859918
+ 0.091345811338958957
+ 0.091348923435171842
+ 0.09135203557450039
+ 0.091355147756946767
+ 0.091358259982512804
+ 0.091361372251200459
+ 0.091364484563011647
+ 0.091367596917948476
+ 0.091370709316012683
+ 0.091373821757206514
+ 0.091376934241531815
+ 0.091380046768990336
+ 0.091383159339584324
+ 0.091386271953315557
+ 0.091389384610186183
+ 0.091392497310198051
+ 0.091395610053352908
+ 0.091398722839653196
+ 0.091401835669100318
+ 0.091404948541696798
+ 0.09140806145744422
+ 0.091411174416344623
+ 0.091414287418400034
+ 0.091417400463612464
+ 0.09142051355198362
+ 0.091423626683515738
+ 0.091426739858210621
+ 0.091429853076070322
+ 0.09143296633709673
+ 0.09143607964129187
+ 0.091439192988657755
+ 0.091442306379196162
+ 0.091445419812909198
+ 0.091448533289798892
+ 0.091451646809867018
+ 0.091454760373115743
+ 0.091457873979546758
+ 0.091460987629162285
+ 0.091464101321964239
+ 0.091467215057954521
+ 0.091470328837135059
+ 0.091473442659508006
+ 0.091476556525075026
+ 0.091479670433838339
+ 0.091482784385799834
+ 0.091485898380961481
+ 0.091489012419325264
+ 0.09149212650089307
+ 0.091495240625666982
+ 0.091498354793648706
+ 0.091501469004840644
+ 0.091504583259244446
+ 0.091507697556862083
+ 0.091510811897695638
+ 0.091513926281747066
+ 0.091517040709018255
+ 0.091520155179511287
+ 0.091523269693227965
+ 0.091526384250170401
+ 0.091529498850340452
+ 0.091532613493740311
+ 0.091535728180371589
+ 0.091538842910236534
+ 0.091541957683337102
+ 0.091545072499675015
+ 0.091548187359252645
+ 0.091551302262071504
+ 0.09155441720813387
+ 0.091557532197441643
+ 0.091560647229996781
+ 0.091563762305801336
+ 0.091566877424857099
+ 0.091569992587166027
+ 0.091573107792730341
+ 0.091576223041551774
+ 0.091579338333632507
+ 0.091582453668974356
+ 0.09158556904757921
+ 0.091588684469449344
+ 0.091591799934586354
+ 0.091594915442992572
+ 0.091598030994669732
+ 0.091601146589619917
+ 0.091604262227844929
+ 0.091607377909346963
+ 0.091610493634127738
+ 0.091613609402189516
+ 0.091616725213534048
+ 0.091619841068163468
+ 0.091622956966079624
+ 0.091626072907284528
+ 0.091629188891780136
+ 0.091632304919568489
+ 0.091635420990651542
+ 0.091638537105031156
+ 0.091641653262709455
+ 0.091644769463688269
+ 0.091647885707969681
+ 0.091651001995555675
+ 0.091654118326448042
+ 0.091657234700649112
+ 0.091660351118160427
+ 0.09166346757898429
+ 0.091666584083122546
+ 0.091669700630577167
+ 0.091672817221350122
+ 0.091675933855443481
+ 0.091679050532859074
+ 0.091682167253598998
+ 0.09168528401766507
+ 0.091688400825059468
+ 0.091691517675784054
+ 0.091694634569840838
+ 0.091697751507231834
+ 0.091700868487958859
+ 0.091703985512024105
+ 0.091707102579429225
+ 0.091710219690176592
+ 0.091713336844267926
+ 0.091716454041705336
+ 0.091719571282490739
+ 0.091722688566626048
+ 0.091725805894113291
+ 0.091728923264954604
+ 0.091732040679151666
+ 0.091735158136706685
+ 0.09173827563762163
+ 0.091741393181898293
+ 0.091744510769538795
+ 0.091747628400545095
+ 0.091750746074919162
+ 0.09175386379266301
+ 0.091756981553778538
+ 0.091760099358267774
+ 0.091763217206132716
+ 0.091766335097375348
+ 0.091769453031997683
+ 0.091772571010001497
+ 0.091775689031388955
+ 0.091778807096162027
+ 0.091781925204322712
+ 0.091785043355872856
+ 0.091788161550814526
+ 0.091791279789149763
+ 0.091794398070880509
+ 0.091797516396008583
+ 0.09180063476453619
+ 0.091803753176465261
+ 0.091806871631797654
+ 0.091809990130535465
+ 0.091813108672680777
+ 0.091816227258235239
+ 0.091819345887201184
+ 0.091822464559580402
+ 0.091825583275374809
+ 0.091828702034586679
+ 0.091831820837217581
+ 0.091834939683269889
+ 0.091838058572745421
+ 0.091841177505646243
+ 0.091844296481974133
+ 0.091847415501731144
+ 0.091850534564919539
+ 0.0918536536715409
+ 0.091856772821597321
+ 0.091859892015090969
+ 0.09186301125202366
+ 0.091866130532397491
+ 0.091869249856214391
+ 0.091872369223476386
+ 0.091875488634185265
+ 0.091878608088343208
+ 0.091881727585952186
+ 0.09188484712701403
+ 0.09188796671153103
+ 0.091891086339504865
+ 0.091894206010937687
+ 0.091897325725831425
+ 0.091900445484188076
+ 0.091903565286009584
+ 0.09190668513129796
+ 0.091909805020055343
+ 0.091912924952283453
+ 0.091916044927984469
+ 0.091919164947160265
+ 0.091922285009812948
+ 0.091925405115944353
+ 0.091928525265556643
+ 0.091931645458651609
+ 0.091934765695231319
+ 0.091937885975297826
+ 0.091941006298853101
+ 0.091944126665899087
+ 0.091947247076437796
+ 0.091950367530471172
+ 0.091953488028001296
+ 0.091956608569029999
+ 0.091959729153559405
+ 0.091962849781591555
+ 0.091965970453128196
+ 0.091969091168171549
+ 0.091972211926723613
+ 0.091975332728786163
+ 0.09197845357436131
+ 0.091981574463451093
+ 0.091984695396057511
+ 0.091987816372182465
+ 0.091990937391827829
+ 0.091994058454995906
+ 0.091997179561688486
+ 0.092000300711907582
+ 0.092003421905655289
+ 0.09200654314293337
+ 0.092009664423743934
+ 0.092012785748089146
+ 0.092015907115970783
+ 0.092019028527390842
+ 0.092022149982351406
+ 0.092025271480854445
+ 0.092028393022901875
+ 0.09203151460849586
+ 0.092034636237638121
+ 0.092037757910330892
+ 0.092040879626576089
+ 0.092044001386375612
+ 0.092047123189731767
+ 0.092050245036646022
+ 0.092053366927120878
+ 0.092056488861158026
+ 0.092059610838759562
+ 0.092062732859927568
+ 0.09206585492466382
+ 0.092068977032970428
+ 0.09207209918484939
+ 0.092075221380302746
+ 0.092078343619332356
+ 0.092081465901940371
+ 0.092084588228128761
+ 0.092087710597899358
+ 0.092090833011254328
+ 0.092093955468195599
+ 0.092097077968725141
+ 0.092100200512845037
+ 0.092103323100557286
+ 0.092106445731863773
+ 0.092109568406766443
+ 0.092112691125267557
+ 0.092115813887368878
+ 0.092118936693072376
+ 0.092122059542380272
+ 0.092125182435294412
+ 0.092128305371816793
+ 0.092131428351949499
+ 0.092134551375694443
+ 0.092137674443053541
+ 0.092140797554029014
+ 0.092143920708622623
+ 0.092147043906836618
+ 0.092150167148672774
+ 0.0921532904341332
+ 0.092156413763219813
+ 0.092159537135934763
+ 0.092162660552279826
+ 0.09216578401225714
+ 0.092168907515868773
+ 0.092172031063116569
+ 0.092175154654002653
+ 0.092178278288528884
+ 0.092181401966697427
+ 0.092184525688510058
+ 0.092187649453969137
+ 0.092190773263076231
+ 0.092193897115833742
+ 0.092197021012243363
+ 0.092200144952307217
+ 0.092203268936027247
+ 0.092206392963405645
+ 0.092209517034444174
+ 0.092212641149144889
+ 0.092215765307509925
+ 0.092218889509541185
+ 0.09222201375524057
+ 0.092225138044610258
+ 0.092228262377652165
+ 0.092231386754368219
+ 0.092234511174760725
+ 0.092237635638831306
+ 0.09224076014658214
+ 0.092243884698015199
+ 0.092247009293132565
+ 0.092250133931936137
+ 0.092253258614427958
+ 0.092256383340610038
+ 0.092259508110484362
+ 0.092262632924052998
+ 0.092265757781317848
+ 0.09226888268228102
+ 0.092272007626944361
+ 0.092275132615309993
+ 0.092278257647379847
+ 0.092281382723156072
+ 0.09228450784264057
+ 0.092287633005835243
+ 0.092290758212742366
+ 0.092293883463363674
+ 0.092297008757701277
+ 0.092300134095757172
+ 0.092303259477533456
+ 0.092306384903031974
+ 0.092309510372254877
+ 0.092312635885204039
+ 0.092315761441881652
+ 0.092318887042289438
+ 0.092322012686429589
+ 0.0923251383743042
+ 0.092328264105915034
+ 0.092331389881264339
+ 0.09233451570035392
+ 0.092337641563185913
+ 0.092340767469762206
+ 0.092343893420084922
+ 0.092347019414156045
+ 0.092350145451977603
+ 0.092353271533551454
+ 0.092356397658879832
+ 0.092359523827964612
+ 0.09236265004080782
+ 0.092365776297411425
+ 0.092368902597777552
+ 0.092372028941908005
+ 0.092375155329804989
+ 0.092378281761470449
+ 0.092381408236906284
+ 0.092384534756114703
+ 0.092387661319097619
+ 0.092390787925857101
+ 0.092393914576394967
+ 0.092397041270713368
+ 0.092400168008814385
+ 0.092403294790699794
+ 0.092406421616371887
+ 0.092409548485832438
+ 0.09241267539908371
+ 0.092415802356127452
+ 0.092418929356965732
+ 0.092422056401600811
+ 0.092425183490034341
+ 0.0924283106222685
+ 0.092431437798305344
+ 0.092434565018146786
+ 0.092437692281794895
+ 0.09244081958925171
+ 0.092443946940519175
+ 0.0924470743355994
+ 0.092450201774494173
+ 0.092453329257205771
+ 0.092456456783736027
+ 0.09245958435408709
+ 0.092462711968260947
+ 0.092465839626259469
+ 0.092468967328084822
+ 0.092472095073738908
+ 0.092475222863223808
+ 0.092478350696541603
+ 0.092481478573694098
+ 0.09248460649468343
+ 0.092487734459511736
+ 0.092490862468180834
+ 0.092493990520692973
+ 0.092497118617049789
+ 0.092500246757253615
+ 0.092503374941306296
+ 0.092506503169210039
+ 0.092509631440966619
+ 0.092512759756578272
+ 0.09251588811604694
+ 0.09251901651937447
+ 0.092522144966563136
+ 0.092525273457614785
+ 0.092528401992531401
+ 0.092531530571315204
+ 0.092534659193968014
+ 0.092537787860491952
+ 0.09254091657088899
+ 0.092544045325161139
+ 0.092547174123310302
+ 0.092550302965338768
+ 0.092553431851248397
+ 0.092556560781041353
+ 0.092559689754719357
+ 0.092562818772284464
+ 0.092565947833739018
+ 0.092569076939084755
+ 0.092572206088323811
+ 0.092575335281458213
+ 0.092578464518489792
+ 0.092581593799420811
+ 0.092584723124253046
+ 0.092587852492988801
+ 0.092590981905629893
+ 0.092594111362178405
+ 0.092597240862636293
+ 0.092600370407005528
+ 0.092603499995288385
+ 0.092606629627486711
+ 0.092609759303602546
+ 0.092612889023637845
+ 0.092616018787594734
+ 0.092619148595475209
+ 0.092622278447281173
+ 0.09262540834301472
+ 0.092628538282677975
+ 0.092631668266272796
+ 0.092634798293801321
+ 0.09263792836526559
+ 0.09264105848066749
+ 0.092644188640009117
+ 0.092647318843292498
+ 0.092650449090519671
+ 0.092653579381692608
+ 0.092656709716813307
+ 0.092659840095883919
+ 0.092662970518906318
+ 0.092666100985882641
+ 0.092669231496814802
+ 0.092672362051704968
+ 0.092675492650555011
+ 0.092678623293367013
+ 0.092681753980143042
+ 0.092684884710885096
+ 0.092688015485595091
+ 0.092691146304275121
+ 0.09269427716692745
+ 0.0926974080735537
+ 0.092700539024156176
+ 0.092703670018736764
+ 0.092706801057297394
+ 0.092709932139840384
+ 0.092713063266367537
+ 0.092716194436881075
+ 0.092719325651382647
+ 0.092722456909874601
+ 0.092725588212358975
+ 0.092728719558837602
+ 0.092731850949312619
+ 0.092734982383786038
+ 0.092738113862259927
+ 0.09274124538473616
+ 0.092744376951216984
+ 0.092747508561704245
+ 0.092750640216200053
+ 0.092753771914706323
+ 0.092756903657225234
+ 0.092760035443758826
+ 0.092763167274308972
+ 0.092766299148877768
+ 0.09276943106746724
+ 0.0927725630300794
+ 0.092775695036716441
+ 0.09277882708738007
+ 0.092781959182072604
+ 0.092785091320795932
+ 0.092788223503552134
+ 0.092791355730343222
+ 0.092794488001171127
+ 0.092797620316038026
+ 0.09280075267494596
+ 0.092803885077896775
+ 0.092807017524892566
+ 0.092810150015935511
+ 0.092813282551027526
+ 0.092816415130170554
+ 0.09281954775336683
+ 0.092822680420618225
+ 0.092825813131926768
+ 0.092828945887294581
+ 0.09283207868672369
+ 0.092835211530215997
+ 0.092838344417773694
+ 0.092841477349398668
+ 0.092844610325093085
+ 0.09284774334485886
+ 0.092850876408698116
+ 0.09285400951661274
+ 0.092857142668604981
+ 0.092860275864676614
+ 0.092863409104829958
+ 0.092866542389066761
+ 0.092869675717389272
+ 0.092872809089799377
+ 0.092875942506299214
+ 0.092879075966890753
+ 0.092882209471576049
+ 0.0928853430203571
+ 0.092888476613236029
+ 0.092891610250214793
+ 0.092894743931295376
+ 0.092897877656479957
+ 0.092901011425770397
+ 0.092904145239168817
+ 0.092907279096677425
+ 0.092910412998297887
+ 0.092913546944032546
+ 0.092916680933883264
+ 0.09291981496785208
+ 0.092922949045941144
+ 0.092926083168152346
+ 0.092929217334487904
+ 0.092932351544949693
+ 0.092935485799539891
+ 0.09293862009826033
+ 0.092941754441113217
+ 0.092944888828100453
+ 0.092948023259224258
+ 0.092951157734486506
+ 0.092954292253889292
+ 0.092957426817434671
+ 0.092960561425124613
+ 0.092963696076961255
+ 0.092966830772946457
+ 0.092969965513082453
+ 0.092973100297371228
+ 0.092976235125814682
+ 0.092979369998415079
+ 0.092982504915174208
+ 0.092985639876094303
+ 0.092988774881177391
+ 0.092991909930425318
+ 0.092995045023840359
+ 0.092998180161424332
+ 0.093001315343179514
+ 0.093004450569107708
+ 0.093007585839211177
+ 0.093010721153491752
+ 0.093013856511951667
+ 0.093016991914592784
+ 0.09302012736141721
+ 0.093023262852427027
+ 0.093026398387624123
+ 0.093029533967010775
+ 0.093032669590588868
+ 0.093035805258360457
+ 0.093038940970327555
+ 0.093042076726492298
+ 0.093045212526856644
+ 0.093048348371422604
+ 0.093051484260192358
+ 0.093054620193167806
+ 0.093057756170350989
+ 0.093060892191744141
+ 0.093064028257349149
+ 0.09306716436716797
+ 0.093070300521202812
+ 0.093073436719455588
+ 0.093076572961928422
+ 0.093079709248623244
+ 0.093082845579542342
+ 0.093085981954687452
+ 0.093089118374060947
+ 0.093092254837664506
+ 0.093095391345500378
+ 0.093098527897570643
+ 0.093101664493877259
+ 0.093104801134422377
+ 0.093107937819207731
+ 0.093111074548235723
+ 0.093114211321508281
+ 0.093117348139027431
+ 0.093120485000795117
+ 0.093123621906813586
+ 0.093126758857084629
+ 0.093129895851610467
+ 0.093133032890393153
+ 0.093136169973434685
+ 0.093139307100737076
+ 0.093142444272302394
+ 0.09314558148813272
+ 0.093148718748230136
+ 0.093151856052596516
+ 0.093154993401234051
+ 0.093158130794144756
+ 0.093161268231330599
+ 0.09316440571279376
+ 0.09316754323853621
+ 0.093170680808559961
+ 0.093173818422867052
+ 0.093176956081459719
+ 0.093180093784339724
+ 0.09318323153150937
+ 0.093186369322970516
+ 0.093189507158725343
+ 0.09319264503877582
+ 0.093195782963123905
+ 0.093198920931771859
+ 0.093202058944721597
+ 0.093205197001975104
+ 0.093208335103534656
+ 0.093211473249402044
+ 0.093214611439579542
+ 0.093217749674068887
+ 0.093220887952872533
+ 0.093224026275992133
+ 0.093227164643430047
+ 0.093230303055188229
+ 0.093233441511268708
+ 0.093236580011673315
+ 0.093239718556404463
+ 0.093242857145463973
+ 0.093245995778854091
+ 0.093249134456576621
+ 0.093252273178633771
+ 0.093255411945027608
+ 0.093258550755760034
+ 0.093261689610833157
+ 0.093264828510249156
+ 0.093267967454009962
+ 0.093271106442117724
+ 0.093274245474574205
+ 0.093277384551381806
+ 0.093280523672542442
+ 0.093283662838058043
+ 0.093286802047930897
+ 0.093289941302162907
+ 0.093293080600756209
+ 0.093296219943712705
+ 0.093299359331034601
+ 0.093302498762723937
+ 0.093305638238782559
+ 0.093308777759212799
+ 0.093311917324016572
+ 0.093315056933195903
+ 0.093318196586752916
+ 0.093321336284689624
+ 0.093324476027008177
+ 0.093327615813710366
+ 0.093330755644798605
+ 0.093333895520274657
+ 0.093337035440140673
+ 0.093340175404398748
+ 0.093343315413050895
+ 0.09334645546609914
+ 0.093349595563545579
+ 0.093352735705392348
+ 0.093355875891641307
+ 0.09335901612229465
+ 0.093362156397354387
+ 0.093365296716822685
+ 0.093368437080701361
+ 0.093371577488992608
+ 0.093374717941698521
+ 0.093377858438821196
+ 0.093380998980362465
+ 0.093384139566324534
+ 0.093387280196709554
+ 0.0933904208715194
+ 0.093393561590756236
+ 0.093396702354422101
+ 0.09339984316251905
+ 0.093402984015049081
+ 0.093406124912014318
+ 0.093409265853416662
+ 0.093412406839258527
+ 0.093415547869541538
+ 0.093418688944268136
+ 0.093421830063440112
+ 0.093424971227059686
+ 0.093428112435128802
+ 0.093431253687649499
+ 0.093434394984623942
+ 0.093437536326054199
+ 0.093440677711942241
+ 0.093443819142290094
+ 0.09344696061709995
+ 0.093450102136373711
+ 0.093453243700113611
+ 0.093456385308321566
+ 0.093459526960999739
+ 0.093462668658150089
+ 0.093465810399774779
+ 0.093468952185875781
+ 0.093472094016455148
+ 0.093475235891515088
+ 0.0934783778110575
+ 0.093481519775084496
+ 0.093484661783598155
+ 0.093487803836600492
+ 0.093490945934093614
+ 0.093494088076079535
+ 0.093497230262560377
+ 0.093500372493538111
+ 0.093503514769015014
+ 0.093506657088992903
+ 0.093509799453473888
+ 0.093512941862459995
+ 0.09351608431595354
+ 0.093519226813956316
+ 0.093522369356470444
+ 0.093525511943498035
+ 0.09352865457504117
+ 0.093531797251101848
+ 0.093534939971682204
+ 0.093538082736784198
+ 0.093541225546409992
+ 0.093544368400561559
+ 0.093547511299241007
+ 0.093550654242450487
+ 0.093553797230191971
+ 0.093556940262467386
+ 0.093560083339278982
+ 0.09356322646062884
+ 0.093566369626518889
+ 0.093569512836951418
+ 0.093572656091928233
+ 0.093575799391451511
+ 0.093578942735523293
+ 0.093582086124145689
+ 0.093585229557320695
+ 0.093588373035050507
+ 0.09359151655733712
+ 0.093594660124182466
+ 0.093597803735588764
+ 0.093600947391558012
+ 0.093604091092092431
+ 0.093607234837193895
+ 0.093610378626864388
+ 0.093613522461106366
+ 0.093616666339921481
+ 0.093619810263312064
+ 0.093622954231280045
+ 0.093626098243827519
+ 0.093629242300956622
+ 0.093632386402669326
+ 0.09363553054896781
+ 0.093638674739854072
+ 0.093641818975330138
+ 0.093644963255398062
+ 0.093648107580060064
+ 0.093651251949318073
+ 0.093654396363174075
+ 0.093657540821630511
+ 0.093660685324689075
+ 0.093663829872351959
+ 0.093666974464621272
+ 0.093670119101499069
+ 0.093673263782987279
+ 0.093676408509088135
+ 0.093679553279803637
+ 0.093682698095136005
+ 0.093685842955087098
+ 0.09368898785965897
+ 0.093692132808853884
+ 0.093695277802673893
+ 0.093698422841120857
+ 0.093701567924197024
+ 0.093704713051904434
+ 0.093707858224245169
+ 0.093711003441221144
+ 0.093714148702834732
+ 0.093717294009087806
+ 0.093720439359982366
+ 0.093723584755520617
+ 0.093726730195704613
+ 0.093729875680536354
+ 0.093733021210018003
+ 0.093736166784151656
+ 0.093739312402939215
+ 0.093742458066382872
+ 0.093745603774484737
+ 0.093748749527246739
+ 0.093751895324671208
+ 0.093755041166759895
+ 0.093758187053515143
+ 0.093761332984938786
+ 0.093764478961033168
+ 0.093767624981800107
+ 0.093770771047241797
+ 0.093773917157360373
+ 0.093777063312157793
+ 0.093780209511636167
+ 0.093783355755797534
+ 0.093786502044644088
+ 0.093789648378177853
+ 0.093792794756400788
+ 0.09379594117931507
+ 0.093799087646922796
+ 0.093802234159225978
+ 0.09380538071622678
+ 0.093808527317927159
+ 0.09381167396432924
+ 0.093814820655435088
+ 0.093817967391246884
+ 0.093821114171766598
+ 0.093824260996996173
+ 0.093827407866937954
+ 0.093830554781593939
+ 0.093833701740966169
+ 0.093836848745056614
+ 0.093839995793867509
+ 0.093843142887400935
+ 0.093846290025658793
+ 0.093849437208643346
+ 0.093852584436356593
+ 0.093855731708800683
+ 0.093858879025977476
+ 0.093862026387889305
+ 0.093865173794538195
+ 0.093868321245926103
+ 0.093871468742055195
+ 0.093874616282927467
+ 0.093877763868545142
+ 0.093880911498910119
+ 0.093884059174024703
+ 0.093887206893890865
+ 0.093890354658510616
+ 0.093893502467886053
+ 0.093896650322019243
+ 0.093899798220912489
+ 0.093902946164567555
+ 0.093906094152986702
+ 0.093909242186171971
+ 0.093912390264125387
+ 0.093915538386849129
+ 0.093918686554345251
+ 0.093921834766615794
+ 0.093924983023662784
+ 0.093928131325488454
+ 0.093931279672094817
+ 0.093934428063483844
+ 0.093937576499657824
+ 0.093940724980618673
+ 0.093943873506368583
+ 0.093947022076909512
+ 0.093950170692243637
+ 0.093953319352372985
+ 0.093956468057299625
+ 0.093959616807025775
+ 0.093962765601553408
+ 0.093965914440884604
+ 0.093969063325021487
+ 0.093972212253966
+ 0.093975361227720461
+ 0.093978510246286756
+ 0.093981659309667204
+ 0.093984808417863622
+ 0.093987957570878092
+ 0.093991106768712959
+ 0.093994256011370111
+ 0.093997405298851616
+ 0.09400055463115968
+ 0.094003704008296274
+ 0.094006853430263604
+ 0.094010002897063655
+ 0.094013152408698578
+ 0.094016301965170343
+ 0.09401945156648113
+ 0.094022601212633033
+ 0.094025750903628108
+ 0.094028900639468449
+ 0.094032050420156069
+ 0.094035200245693229
+ 0.094038350116081706
+ 0.094041500031323957
+ 0.094044649991421841
+ 0.094047799996377565
+ 0.094050950046193085
+ 0.094054100140870595
+ 0.094057250280412105
+ 0.094060400464819727
+ 0.094063550694095555
+ 0.094066700968241684
+ 0.094069851287260281
+ 0.09407300165115326
+ 0.094076152059922771
+ 0.094079302513570953
+ 0.094082453012099859
+ 0.094085603555511599
+ 0.094088754143808268
+ 0.094091904776991864
+ 0.094095055455064636
+ 0.094098206178028623
+ 0.094101356945885686
+ 0.094104507758638239
+ 0.094107658616288198
+ 0.094110809518837601
+ 0.094113960466288726
+ 0.094117111458643557
+ 0.094120262495904203
+ 0.094123413578072565
+ 0.094126564705151045
+ 0.094129715877141612
+ 0.094132867094046266
+ 0.094136018355867268
+ 0.094139169662606534
+ 0.094142321014266242
+ 0.094145472410848405
+ 0.094148623852355298
+ 0.094151775338788782
+ 0.094154926870151118
+ 0.094158078446444304
+ 0.094161230067670465
+ 0.094164381733831709
+ 0.094167533444930077
+ 0.094170685200967677
+ 0.094173837001946717
+ 0.094176988847869139
+ 0.094180140738736984
+ 0.094183292674552499
+ 0.094186444655317836
+ 0.094189596681034965
+ 0.094192748751705843
+ 0.09419590086733283
+ 0.094199053027917853
+ 0.094202205233463093
+ 0.094205357483970534
+ 0.094208509779442326
+ 0.094211662119880607
+ 0.094214814505287472
+ 0.094217966935664851
+ 0.094221119411015186
+ 0.094224271931340087
+ 0.09422742449664212
+ 0.094230577106923202
+ 0.094233729762185262
+ 0.09423688246243056
+ 0.094240035207661207
+ 0.09424318799787923
+ 0.094246340833086639
+ 0.094249493713285823
+ 0.094252646638478668
+ 0.09425579960866716
+ 0.094258952623853698
+ 0.09426210568404006
+ 0.094265258789228576
+ 0.094268411939421259
+ 0.094271565134620164
+ 0.094274718374827482
+ 0.094277871660045143
+ 0.094281024990275422
+ 0.09428417836552036
+ 0.094287331785782094
+ 0.094290485251062553
+ 0.094293638761364013
+ 0.094296792316688471
+ 0.094299945917038247
+ 0.094303099562415074
+ 0.094306253252821229
+ 0.094309406988258904
+ 0.094312560768730083
+ 0.094315714594236932
+ 0.094318868464781491
+ 0.094322022380365772
+ 0.094325176340992051
+ 0.094328330346662284
+ 0.094331484397378748
+ 0.094334638493143455
+ 0.09433779263395832
+ 0.094340946819825813
+ 0.09434410105074767
+ 0.094347255326726165
+ 0.094350409647763395
+ 0.094353564013861552
+ 0.094356718425022468
+ 0.094359872881248488
+ 0.094363027382541584
+ 0.09436618192890385
+ 0.094369336520337591
+ 0.094372491156844651
+ 0.094375645838427225
+ 0.094378800565087462
+ 0.094381955336827458
+ 0.094385110153649268
+ 0.094388265015555001
+ 0.09439141992254671
+ 0.094394574874626561
+ 0.094397729871796718
+ 0.094400884914059194
+ 0.094404040001416098
+ 0.09440719513386954
+ 0.094410350311421573
+ 0.09441350553407446
+ 0.094416660801830199
+ 0.094419816114690802
+ 0.094422971472658518
+ 0.094426126875735483
+ 0.094429282323923613
+ 0.094432437817225073
+ 0.094435593355642139
+ 0.094438748939176656
+ 0.094441904567830873
+ 0.094445060241606898
+ 0.094448215960506829
+ 0.094451371724532759
+ 0.094454527533686897
+ 0.094457683387971017
+ 0.094460839287387591
+ 0.094463995231938533
+ 0.094467151221625953
+ 0.094470307256452071
+ 0.094473463336418845
+ 0.094476619461528549
+ 0.094479775631783197
+ 0.094482931847184759
+ 0.094486088107735594
+ 0.09448924441343759
+ 0.094492400764293161
+ 0.094495557160303945
+ 0.094498713601472425
+ 0.094501870087800699
+ 0.094505026619290597
+ 0.094508183195944478
+ 0.094511339817764398
+ 0.094514496484752436
+ 0.094517653196910648
+ 0.094520809954241211
+ 0.094523966756746153
+ 0.09452712360442779
+ 0.094530280497288038
+ 0.094533437435328965
+ 0.094536594418552763
+ 0.094539751446961653
+ 0.094542908520557564
+ 0.094546065639342688
+ 0.094549222803319163
+ 0.094552380012488918
+ 0.094555537266854353
+ 0.094558694566417259
+ 0.09456185191118005
+ 0.09456500930114467
+ 0.094568166736313283
+ 0.09457132421668793
+ 0.094574481742270775
+ 0.094577639313063844
+ 0.0945807969290694
+ 0.094583954590289482
+ 0.094587112296726159
+ 0.094590270048381525
+ 0.094593427845257774
+ 0.094596585687357085
+ 0.094599743574681344
+ 0.094602901507232773
+ 0.094606059485013577
+ 0.094609217508025784
+ 0.094612375576271487
+ 0.094615533689752784
+ 0.094618691848471936
+ 0.094621850052430873
+ 0.094625008301631675
+ 0.094628166596076674
+ 0.094631324935767994
+ 0.094634483320707397
+ 0.094637641750897311
+ 0.094640800226339777
+ 0.094643958747036863
+ 0.094647117312990664
+ 0.0946502759242034
+ 0.094653434580677112
+ 0.094656593282413826
+ 0.094659752029415956
+ 0.094662910821685292
+ 0.094666069659224084
+ 0.09466922854203437
+ 0.09467238747011833
+ 0.094675546443478129
+ 0.09467870546211575
+ 0.094681864526033568
+ 0.094685023635233415
+ 0.094688182789717537
+ 0.094691341989487948
+ 0.094694501234546938
+ 0.094697660524896463
+ 0.094700819860538674
+ 0.094703979241475736
+ 0.094707138667709703
+ 0.094710298139242782
+ 0.094713457656077013
+ 0.09471661721821456
+ 0.094719776825657478
+ 0.09472293647840789
+ 0.094726096176467947
+ 0.094729255919839883
+ 0.094732415708525641
+ 0.094735575542527373
+ 0.094738735421847228
+ 0.094741895346487262
+ 0.094745055316449653
+ 0.09474821533173651
+ 0.094751375392350012
+ 0.0947545354982922
+ 0.094757695649565224
+ 0.094760855846171027
+ 0.094764016088112038
+ 0.094767176375390227
+ 0.094770336708007649
+ 0.094773497085966524
+ 0.094776657509268919
+ 0.094779817977916986
+ 0.094782978491912848
+ 0.094786139051258503
+ 0.094789299655956075
+ 0.094792460306007992
+ 0.094795621001416142
+ 0.09479878174218262
+ 0.094801942528309563
+ 0.094805103359799067
+ 0.094808264236653519
+ 0.094811425158874571
+ 0.094814586126464789
+ 0.094817747139426062
+ 0.094820908197760442
+ 0.094824069301470221
+ 0.09482723045055752
+ 0.094830391645024395
+ 0.094833552884872899
+ 0.094836714170105335
+ 0.094839875500723564
+ 0.094843036876730041
+ 0.094846198298126627
+ 0.0948493597649155
+ 0.094852521277098811
+ 0.094855682834678712
+ 0.094858844437657366
+ 0.094862006086036663
+ 0.094865167779819098
+ 0.094868329519006395
+ 0.094871491303600938
+ 0.094874653133604797
+ 0.094877815009020178
+ 0.094880976929848967
+ 0.094884138896093498
+ 0.094887300907755823
+ 0.094890462964838065
+ 0.094893625067342266
+ 0.094896787215270728
+ 0.094899949408625381
+ 0.094903111647408625
+ 0.094906273931622362
+ 0.094909436261268673
+ 0.094912598636349821
+ 0.094915761056868025
+ 0.094918923522825133
+ 0.094922086034223488
+ 0.094925248591064965
+ 0.094928411193352089
+ 0.094931573841086719
+ 0.09493473653427098
+ 0.094937899272907064
+ 0.094941062056997164
+ 0.094944224886543208
+ 0.094947387761547444
+ 0.094950550682011983
+ 0.094953713647939003
+ 0.0949568766593306
+ 0.094960039716188854
+ 0.094963202818515988
+ 0.09496636596631404
+ 0.094969529159585175
+ 0.094972692398331518
+ 0.094975855682555219
+ 0.094979019012258456
+ 0.094982182387442993
+ 0.094985345808111549
+ 0.094988509274265831
+ 0.094991672785908102
+ 0.094994836343040373
+ 0.094997999945665074
+ 0.095001163593784063
+ 0.095004327287399534
+ 0.095007491026513707
+ 0.095010654811128498
+ 0.09501381864124632
+ 0.095016982516869061
+ 0.095020146437998887
+ 0.095023310404638142
+ 0.095026474416788714
+ 0.095029638474452782
+ 0.095032802577632622
+ 0.095035966726330176
+ 0.095039130920547679
+ 0.095042295160287296
+ 0.095045459445551136
+ 0.09504862377634124
+ 0.095051788152659716
+ 0.095054952574508911
+ 0.095058117041890738
+ 0.095061281554807475
+ 0.095064446113261175
+ 0.095067610717253961
+ 0.095070775366788027
+ 0.095073940061865425
+ 0.095077104802488377
+ 0.095080269588658978
+ 0.095083434420379337
+ 0.095086599297651606
+ 0.095089764220478018
+ 0.095092929188860503
+ 0.09509609420280131
+ 0.095099259262302602
+ 0.09510242436736642
+ 0.09510558951799504
+ 0.095108754714190447
+ 0.095111919955954832
+ 0.095115085243290404
+ 0.095118250576199145
+ 0.095121415954683361
+ 0.09512458137874498
+ 0.095127746848386346
+ 0.095130912363609488
+ 0.095134077924416582
+ 0.09513724353080974
+ 0.095140409182790986
+ 0.095143574880362625
+ 0.095146740623526821
+ 0.095149906412285531
+ 0.095153072246641004
+ 0.095156238126595363
+ 0.095159404052150828
+ 0.095162570023309301
+ 0.09516573604007314
+ 0.09516890210244433
+ 0.095172068210425217
+ 0.095175234364017619
+ 0.095178400563224005
+ 0.09518156680804632
+ 0.095184733098486796
+ 0.095187899434547488
+ 0.095191065816230616
+ 0.095194232243538068
+ 0.09519739871647237
+ 0.09520056523503552
+ 0.09520373179922946
+ 0.095206898409056523
+ 0.095210065064518748
+ 0.095213231765618453
+ 0.095216398512357678
+ 0.095219565304738463
+ 0.095222732142763014
+ 0.095225899026433372
+ 0.095229065955752021
+ 0.095232232930720709
+ 0.095235399951341837
+ 0.095238567017617279
+ 0.095241734129549477
+ 0.095244901287140277
+ 0.095248068490392065
+ 0.095251235739307008
+ 0.095254403033886936
+ 0.095257570374134362
+ 0.095260737760051117
+ 0.095263905191639409
+ 0.095267072668901498
+ 0.09527024019183955
+ 0.09527340776045555
+ 0.095276575374751704
+ 0.095279743034730122
+ 0.09528291074039312
+ 0.095286078491742587
+ 0.095289246288780882
+ 0.095292414131510045
+ 0.095295582019932171
+ 0.095298749954049453
+ 0.095301917933864069
+ 0.095305085959378089
+ 0.0953082540305938
+ 0.095311422147513133
+ 0.095314590310138392
+ 0.095317758518471699
+ 0.095320926772515149
+ 0.095324095072270812
+ 0.095327263417741004
+ 0.095330431808927793
+ 0.095333600245833275
+ 0.09533676872845967
+ 0.095339937256809143
+ 0.095343105830883748
+ 0.095346274450685636
+ 0.095349443116217028
+ 0.09535261182748006
+ 0.095355780584476815
+ 0.095358949387209346
+ 0.095362118235680055
+ 0.095365287129890911
+ 0.095368456069844149
+ 0.095371625055541892
+ 0.095374794086986181
+ 0.095377963164179236
+ 0.095381132287123221
+ 0.095384301455820275
+ 0.095387470670272617
+ 0.095390639930482177
+ 0.09539380923645141
+ 0.095396978588182219
+ 0.095400147985676795
+ 0.095403317428937304
+ 0.095406486917965966
+ 0.095409656452764793
+ 0.09541282603333609
+ 0.095415995659681854
+ 0.09541916533180439
+ 0.095422335049705709
+ 0.095425504813387962
+ 0.095428674622853482
+ 0.095431844478104239
+ 0.09543501437914241
+ 0.09543818432597001
+ 0.09544135431858948
+ 0.095444524357002916
+ 0.095447694441212261
+ 0.095450864571219762
+ 0.095454034747027544
+ 0.095457204968637993
+ 0.095460375236052941
+ 0.095463545549274664
+ 0.095466715908305244
+ 0.09546988631314697
+ 0.095473056763801856
+ 0.095476227260272231
+ 0.09547939780256004
+ 0.095482568390667627
+ 0.095485739024596908
+ 0.095488909704350283
+ 0.095492080429929724
+ 0.095495251201337436
+ 0.095498422018575585
+ 0.095501592881646405
+ 0.095504763790551866
+ 0.095507934745294232
+ 0.095511105745875638
+ 0.09551427679229825
+ 0.095517447884564247
+ 0.09552061902267571
+ 0.095523790206634748
+ 0.095526961436443639
+ 0.09553013271210456
+ 0.095533304033619565
+ 0.095536475400990736
+ 0.095539646814220336
+ 0.095542818273310529
+ 0.095545989778263507
+ 0.095549161329081395
+ 0.095552332925766176
+ 0.095555504568320251
+ 0.095558676256745537
+ 0.095561847991044488
+ 0.095565019771219006
+ 0.095568191597271313
+ 0.095571363469203627
+ 0.095574535387017989
+ 0.095577707350716593
+ 0.095580879360301615
+ 0.095584051415775251
+ 0.095587223517139677
+ 0.095590395664396921
+ 0.0955935678575493
+ 0.095596740096598798
+ 0.095599912381547789
+ 0.09560308471239802
+ 0.095606257089152144
+ 0.095609429511812047
+ 0.095612601980379824
+ 0.095615774494857822
+ 0.095618947055248149
+ 0.095622119661552887
+ 0.095625292313774299
+ 0.095628465011914396
+ 0.095631637755975482
+ 0.095634810545959542
+ 0.095637983381869004
+ 0.095641156263705729
+ 0.095644329191472144
+ 0.095647502165170192
+ 0.095650675184802025
+ 0.09565384825037003
+ 0.095657021361876177
+ 0.095660194519322714
+ 0.09566336772271164
+ 0.095666540972045272
+ 0.095669714267325678
+ 0.095672887608555204
+ 0.095676060995735807
+ 0.095679234428869817
+ 0.095682407907959149
+ 0.09568558143300615
+ 0.095688755004012874
+ 0.095691928620981651
+ 0.095695102283914424
+ 0.095698275992813595
+ 0.095701449747681078
+ 0.095704623548519274
+ 0.095707797395330058
+ 0.095710971288115704
+ 0.095714145226878669
+ 0.095717319211620674
+ 0.095720493242344079
+ 0.095723667319051103
+ 0.095726841441743843
+ 0.095730015610424324
+ 0.09573318982509503
+ 0.09573636408575785
+ 0.095739538392414975
+ 0.095742712745068723
+ 0.09574588714372112
+ 0.095749061588374415
+ 0.095752236079030606
+ 0.095755410615692108
+ 0.095758585198360766
+ 0.095761759827039133
+ 0.095764934501729113
+ 0.095768109222432785
+ 0.09577128398915255
+ 0.095774458801890505
+ 0.095777633660648717
+ 0.095780808565429462
+ 0.095783983516234822
+ 0.09578715851306692
+ 0.095790333555928073
+ 0.095793508644820391
+ 0.095796683779746053
+ 0.095799858960707043
+ 0.095803034187705707
+ 0.095806209460744196
+ 0.095809384779824688
+ 0.095812560144949308
+ 0.095815735556120121
+ 0.095818911013339628
+ 0.095822086516609534
+ 0.095825262065932365
+ 0.095828437661310092
+ 0.095831613302744881
+ 0.095834788990239048
+ 0.095837964723794702
+ 0.095841140503413955
+ 0.095844316329098997
+ 0.095847492200852008
+ 0.095850668118675111
+ 0.095853844082570569
+ 0.095857020092540504
+ 0.095860196148586901
+ 0.095863372250712342
+ 0.095866548398918561
+ 0.095869724593207958
+ 0.095872900833582769
+ 0.095876077120044909
+ 0.09587925345259668
+ 0.095882429831240387
+ 0.095885606255978056
+ 0.0958887827268117
+ 0.09589195924374383
+ 0.095895135806776319
+ 0.095898312415911499
+ 0.095901489071151508
+ 0.095904665772498565
+ 0.095907842519954684
+ 0.095911019313522194
+ 0.095914196153203193
+ 0.095917373038999845
+ 0.095920549970914412
+ 0.095923726948948934
+ 0.095926903973105576
+ 0.095930081043386628
+ 0.095933258159794144
+ 0.095936435322330496
+ 0.095939612530997545
+ 0.095942789785797747
+ 0.095945967086733114
+ 0.095949144433805963
+ 0.095952321827018197
+ 0.095955499266372132
+ 0.095958676751870142
+ 0.0959618542835141
+ 0.095965031861306255
+ 0.095968209485248854
+ 0.095971387155344104
+ 0.095974564871594045
+ 0.095977742634000995
+ 0.095980920442566883
+ 0.095984098297294138
+ 0.095987276198184826
+ 0.095990454145241252
+ 0.09599363213846529
+ 0.09599681017785941
+ 0.095999988263425595
+ 0.096003166395166165
+ 0.096006344573083185
+ 0.096009522797178892
+ 0.096012701067455311
+ 0.09601587938391494
+ 0.096019057746559666
+ 0.096022236155391669
+ 0.096025414610413348
+ 0.09602859311162662
+ 0.096031771659033885
+ 0.096034950252637113
+ 0.09603812889243861
+ 0.09604130757844058
+ 0.096044486310645036
+ 0.096047665089054296
+ 0.096050843913670539
+ 0.096054022784495804
+ 0.096057201701532355
+ 0.096060380664782424
+ 0.096063559674248122
+ 0.096066738729931683
+ 0.096069917831835244
+ 0.096073096979960956
+ 0.096076276174310998
+ 0.096079455414887577
+ 0.096082634701692871
+ 0.096085814034729017
+ 0.096088993413998278
+ 0.096092172839502707
+ 0.096095352311244553
+ 0.09609853182922605
+ 0.096101711393449279
+ 0.096104891003916462
+ 0.096108070660629777
+ 0.096111250363591458
+ 0.0961144301128036
+ 0.096117609908268342
+ 0.096120789749987931
+ 0.096123969637964574
+ 0.096127149572200449
+ 0.096130329552697624
+ 0.096133509579458445
+ 0.096136689652485036
+ 0.096139869771779407
+ 0.096143049937344016
+ 0.096146230149180861
+ 0.096149410407292163
+ 0.096152590711680058
+ 0.096155771062346782
+ 0.096158951459294525
+ 0.096162131902525538
+ 0.096165312392041791
+ 0.096168492927845572
+ 0.096171673509939201
+ 0.096174854138324689
+ 0.096178034813004215
+ 0.096181215533980083
+ 0.096184396301254374
+ 0.096187577114829281
+ 0.096190757974707039
+ 0.096193938880889743
+ 0.096197119833379668
+ 0.096200300832178925
+ 0.096203481877289845
+ 0.09620666296871444
+ 0.09620984410645475
+ 0.09621302529051344
+ 0.096216206520892272
+ 0.096219387797593633
+ 0.096222569120619508
+ 0.096225750489972284
+ 0.096228931905654055
+ 0.096232113367667071
+ 0.096235294876013372
+ 0.096238476430695261
+ 0.096241658031715041
+ 0.096244839679074559
+ 0.096248021372776327
+ 0.09625120311282237
+ 0.09625438489921484
+ 0.096257566731956012
+ 0.096260748611048039
+ 0.096263930536493167
+ 0.096267112508293465
+ 0.096270294526451181
+ 0.096273476590968535
+ 0.096276658701847637
+ 0.096279840859090762
+ 0.096283023062699952
+ 0.096286205312677536
+ 0.09628938760902557
+ 0.096292569951746398
+ 0.096295752340842089
+ 0.096298934776314946
+ 0.096302117258167064
+ 0.096305299786400608
+ 0.09630848236101773
+ 0.096311664982020817
+ 0.096314847649411783
+ 0.09631803036319303
+ 0.096321213123366764
+ 0.096324395929934997
+ 0.096327578782900047
+ 0.096330761682263982
+ 0.096333944628029133
+ 0.09633712762019768
+ 0.096340310658771702
+ 0.096343493743753394
+ 0.096346676875145074
+ 0.09634986005294878
+ 0.096353043277166817
+ 0.096356226547801224
+ 0.096359409864854445
+ 0.096362593228328436
+ 0.0963657766382255
+ 0.096368960094547762
+ 0.096372143597297483
+ 0.09637532714647673
+ 0.096378510742087906
+ 0.096381694384132965
+ 0.096384878072614352
+ 0.096388061807533995
+ 0.096391245588894253
+ 0.096394429416697236
+ 0.096397613290945164
+ 0.09640079721164023
+ 0.096403981178784653
+ 0.09640716519238067
+ 0.096410349252430305
+ 0.096413533358935821
+ 0.096416717511899411
+ 0.096419901711323405
+ 0.096423085957209775
+ 0.096426270249560894
+ 0.09642945458837883
+ 0.096432638973665774
+ 0.096435823405424156
+ 0.096439007883655864
+ 0.096442192408363214
+ 0.096445376979548303
+ 0.096448561597213489
+ 0.096451746261360938
+ 0.096454930971992828
+ 0.096458115729111171
+ 0.096461300532718425
+ 0.096464485382816559
+ 0.096467670279408058
+ 0.096470855222494836
+ 0.096474040212079226
+ 0.096477225248163309
+ 0.096480410330749458
+ 0.096483595459839602
+ 0.09648678063543624
+ 0.096489965857541368
+ 0.096493151126157223
+ 0.096496336441286079
+ 0.096499521802930102
+ 0.096502707211091304
+ 0.096505892665772183
+ 0.096509078166974821
+ 0.096512263714701202
+ 0.096515449308953782
+ 0.096518634949734589
+ 0.096521820637045994
+ 0.096525006370890079
+ 0.096528192151269121
+ 0.09653137797818527
+ 0.096534563851640567
+ 0.096537749771637441
+ 0.096540935738178055
+ 0.096544121751264464
+ 0.096547307810899
+ 0.096550493917083799
+ 0.09655368006982111
+ 0.096556866269113112
+ 0.096560052514962011
+ 0.096563238807369875
+ 0.096566425146339022
+ 0.096569611531871824
+ 0.096572797963970156
+ 0.096575984442636334
+ 0.096579170967872607
+ 0.096582357539681099
+ 0.096585544158064141
+ 0.096588730823023813
+ 0.096591917534562269
+ 0.096595104292681852
+ 0.09659829109738477
+ 0.096601477948673076
+ 0.096604664846549129
+ 0.096607851791014887
+ 0.096611038782072889
+ 0.096614225819725091
+ 0.096617412903973646
+ 0.09662060003482098
+ 0.096623787212269246
+ 0.096626974436320429
+ 0.096630161706976941
+ 0.096633349024240867
+ 0.096636536388114549
+ 0.096639723798600113
+ 0.096642911255699696
+ 0.096646098759415683
+ 0.096649286309749879
+ 0.096652473906705047
+ 0.096655661550282906
+ 0.096658849240485942
+ 0.096662036977316179
+ 0.096665224760776061
+ 0.096668412590867531
+ 0.096671600467592989
+ 0.096674788390954419
+ 0.096677976360954251
+ 0.096681164377594539
+ 0.096684352440877502
+ 0.096687540550805376
+ 0.096690728707380533
+ 0.096693916910604777
+ 0.096697105160480731
+ 0.096700293457010325
+ 0.096703481800195917
+ 0.096706670190039534
+ 0.09670985862654366
+ 0.096713047109710237
+ 0.096716235639541542
+ 0.096719424216039837
+ 0.096722612839207175
+ 0.096725801509046069
+ 0.096728990225558475
+ 0.096732178988746656
+ 0.096735367798612776
+ 0.096738556655159222
+ 0.096741745558387882
+ 0.096744934508301308
+ 0.096748123504901459
+ 0.09675131254819061
+ 0.096754501638170926
+ 0.096757690774844807
+ 0.096760879958214363
+ 0.096764069188281579
+ 0.09676725846504898
+ 0.096770447788518524
+ 0.096773637158692666
+ 0.096776826575573405
+ 0.096780016039163058
+ 0.096783205549463763
+ 0.096786395106477713
+ 0.096789584710207363
+ 0.09679277436065456
+ 0.096795964057821662
+ 0.096799153801711002
+ 0.09680234359232455
+ 0.096805533429664734
+ 0.096808723313733691
+ 0.096811913244533615
+ 0.096815103222066642
+ 0.096818293246335105
+ 0.09682148331734107
+ 0.096824673435086966
+ 0.096827863599574751
+ 0.096831053810806783
+ 0.09683424406878538
+ 0.096837434373512415
+ 0.096840624724990415
+ 0.096843815123221447
+ 0.096847005568207745
+ 0.096850196059951613
+ 0.096853386598455216
+ 0.096856577183720455
+ 0.096859767815750078
+ 0.096862958494545931
+ 0.096866149220110276
+ 0.096869339992445375
+ 0.096872530811553489
+ 0.096875721677436785
+ 0.096878912590097482
+ 0.09688210354953769
+ 0.096885294555759852
+ 0.096888485608765867
+ 0.096891676708558291
+ 0.096894867855138955
+ 0.096898059048510329
+ 0.09690125028867462
+ 0.096904441575634104
+ 0.096907632909390723
+ 0.096910824289946962
+ 0.096914015717304861
+ 0.09691720719146675
+ 0.096920398712434852
+ 0.096923590280211164
+ 0.0969267818947981
+ 0.09692997355619791
+ 0.09693316526441266
+ 0.096936357019444641
+ 0.096939548821296018
+ 0.096942740669969121
+ 0.096945932565466172
+ 0.096949124507789197
+ 0.096952316496940485
+ 0.096955508532922355
+ 0.096958700615736887
+ 0.096961892745386358
+ 0.096965084921873113
+ 0.096968277145199067
+ 0.096971469415366759
+ 0.096974661732378162
+ 0.096977854096235716
+ 0.096981046506941407
+ 0.096984238964497593
+ 0.096987431468906399
+ 0.096990624020170169
+ 0.096993816618290915
+ 0.096997009263271108
+ 0.097000201955112858
+ 0.097003394693818357
+ 0.097006587479389714
+ 0.097009780311829344
+ 0.097012973191139426
+ 0.097016166117322056
+ 0.097019359090379537
+ 0.097022552110314145
+ 0.097025745177127962
+ 0.097028938290823333
+ 0.097032131451402465
+ 0.097035324658867439
+ 0.097038517913220518
+ 0.097041711214464116
+ 0.097044904562600301
+ 0.097048097957631224
+ 0.097051291399559161
+ 0.097054484888386486
+ 0.097057678424115237
+ 0.097060872006747567
+ 0.097064065636285946
+ 0.09706725931273244
+ 0.09707045303608916
+ 0.097073646806358563
+ 0.09707684062354266
+ 0.097080034487643865
+ 0.097083228398664317
+ 0.097086422356606181
+ 0.097089616361471787
+ 0.097092810413263189
+ 0.097096004511982803
+ 0.097099198657632613
+ 0.097102392850215172
+ 0.097105587089732437
+ 0.097108781376186559
+ 0.097111975709580106
+ 0.097115170089915021
+ 0.097118364517193648
+ 0.097121558991418167
+ 0.097124753512590756
+ 0.097127948080713719
+ 0.097131142695789249
+ 0.097134337357819442
+ 0.097137532066806809
+ 0.097140726822753293
+ 0.097143921625661253
+ 0.097147116475533007
+ 0.097150311372370471
+ 0.097153506316176266
+ 0.097156701306952281
+ 0.097159896344700861
+ 0.097163091429424267
+ 0.097166286561124721
+ 0.097169481739804428
+ 0.097172676965465568
+ 0.097175872238110389
+ 0.097179067557741139
+ 0.097182262924359969
+ 0.097185458337969252
+ 0.097188653798571153
+ 0.097191849306167852
+ 0.097195044860761623
+ 0.097198240462354604
+ 0.097201436110949169
+ 0.097204631806547259
+ 0.097207827549151471
+ 0.097211023338763872
+ 0.097214219175386599
+ 0.097217415059021983
+ 0.097220610989672274
+ 0.09722380696733951
+ 0.097227002992026176
+ 0.097230199063734257
+ 0.097233395182466237
+ 0.097236591348224127
+ 0.097239787561010205
+ 0.097242983820826759
+ 0.09724618012767601
+ 0.097249376481560235
+ 0.097252572882481472
+ 0.097255769330442152
+ 0.097258965825444271
+ 0.097262162367490287
+ 0.097265358956582421
+ 0.097268555592722739
+ 0.097271752275913545
+ 0.097274949006157199
+ 0.0972781457834557
+ 0.09728134260781128
+ 0.097284539479226495
+ 0.097287736397703273
+ 0.097290933363243931
+ 0.097294130375850552
+ 0.097297327435525702
+ 0.097300524542271435
+ 0.097303721696089793
+ 0.097306918896983272
+ 0.097310116144953995
+ 0.097313313440004184
+ 0.097316510782136073
+ 0.097319708171351979
+ 0.097322905607653998
+ 0.097326103091044447
+ 0.097329300621525533
+ 0.097332498199099574
+ 0.097335695823768567
+ 0.097338893495534956
+ 0.097342091214400989
+ 0.097345288980368677
+ 0.097348486793440506
+ 0.097351684653618556
+ 0.097354882560905187
+ 0.097358080515302453
+ 0.097361278516812658
+ 0.097364476565438174
+ 0.097367674661181014
+ 0.097370872804043496
+ 0.09737407099402795
+ 0.09737726923113646
+ 0.097380467515371327
+ 0.097383665846734913
+ 0.097386864225229186
+ 0.097390062650856479
+ 0.097393261123619207
+ 0.097396459643519409
+ 0.097399658210559306
+ 0.097402856824741327
+ 0.097406055486067483
+ 0.097409254194540204
+ 0.097412452950161557
+ 0.097415651752933985
+ 0.097418850602859347
+ 0.097422049499940155
+ 0.097425248444178728
+ 0.097428447435577062
+ 0.097431646474137643
+ 0.097434845559862454
+ 0.097438044692753953
+ 0.097441243872814151
+ 0.097444443100045436
+ 0.097447642374450111
+ 0.097450841696030271
+ 0.097454041064788152
+ 0.097457240480726071
+ 0.097460439943846219
+ 0.097463639454150777
+ 0.097466839011642159
+ 0.097470038616322446
+ 0.097473238268193887
+ 0.097476437967258772
+ 0.097479637713519307
+ 0.097482837506977768
+ 0.097486037347636459
+ 0.097489237235497364
+ 0.097492437170562926
+ 0.097495637152835393
+ 0.097498837182316916
+ 0.097502037259009772
+ 0.097505237382916346
+ 0.097508437554038499
+ 0.09751163777237884
+ 0.097514838037939339
+ 0.097518038350722494
+ 0.097521238710730401
+ 0.097524439117965267
+ 0.097527639572429381
+ 0.097530840074124922
+ 0.097534040623054277
+ 0.097537241219219514
+ 0.097540441862623034
+ 0.097543642553267043
+ 0.097546843291153609
+ 0.097550044076285203
+ 0.097553244908663919
+ 0.097556445788292007
+ 0.097559646715171741
+ 0.097562847689305482
+ 0.097566048710695227
+ 0.097569249779343475
+ 0.097572450895252225
+ 0.097575652058423945
+ 0.097578853268860677
+ 0.097582054526564765
+ 0.097585255831538417
+ 0.097588457183783839
+ 0.097591658583303334
+ 0.097594860030099262
+ 0.097598061524173677
+ 0.097601263065528909
+ 0.097604464654167195
+ 0.097607666290090711
+ 0.097610867973301832
+ 0.097614069703802639
+ 0.097617271481595436
+ 0.09762047330668254
+ 0.09762367517906613
+ 0.097626877098748496
+ 0.097630079065731873
+ 0.097633281080018355
+ 0.097636483141610414
+ 0.09763968525051013
+ 0.097642887406719808
+ 0.097646089610241779
+ 0.097649291861078027
+ 0.097652494159231162
+ 0.09765569650470321
+ 0.097658898897496418
+ 0.097662101337613036
+ 0.097665303825055408
+ 0.097668506359825658
+ 0.097671708941926061
+ 0.097674911571358894
+ 0.097678114248126433
+ 0.097681316972230828
+ 0.097684519743674342
+ 0.097687722562459375
+ 0.097690925428588038
+ 0.09769412834206255
+ 0.097697331302885285
+ 0.097700534311058296
+ 0.097703737366584012
+ 0.097706940469464515
+ 0.097710143619702317
+ 0.097713346817299457
+ 0.09771655006225817
+ 0.097719753354580705
+ 0.097722956694269406
+ 0.097726160081326549
+ 0.097729363515754272
+ 0.097732566997554768
+ 0.097735770526730548
+ 0.097738974103283596
+ 0.097742177727216245
+ 0.097745381398530826
+ 0.097748585117229406
+ 0.097751788883314469
+ 0.097754992696788223
+ 0.097758196557652652
+ 0.097761400465910239
+ 0.09776460442156315
+ 0.097767808424613731
+ 0.097771012475064256
+ 0.097774216572916753
+ 0.097777420718173705
+ 0.09778062491083718
+ 0.097783829150909538
+ 0.097787033438392956
+ 0.097790237773289851
+ 0.097793442155602303
+ 0.097796646585332631
+ 0.097799851062483067
+ 0.097803055587055959
+ 0.097806260159053388
+ 0.097809464778477684
+ 0.097812669445331096
+ 0.097815874159615887
+ 0.097819078921334374
+ 0.097822283730488638
+ 0.097825488587081066
+ 0.097828693491113908
+ 0.097831898442589368
+ 0.097835103441509641
+ 0.097838308487877279
+ 0.097841513581694184
+ 0.097844718722962576
+ 0.09784792391168512
+ 0.097851129147863716
+ 0.097854334431500725
+ 0.097857539762598325
+ 0.097860745141158959
+ 0.097863950567184735
+ 0.097867156040677875
+ 0.097870361561640667
+ 0.097873567130075514
+ 0.097876772745984553
+ 0.097879978409369947
+ 0.097883184120234112
+ 0.097886389878579116
+ 0.097889595684407374
+ 0.097892801537721189
+ 0.097896007438522614
+ 0.097899213386814024
+ 0.097902419382597708
+ 0.097905625425875858
+ 0.097908831516650752
+ 0.09791203765492458
+ 0.097915243840699717
+ 0.097918450073978328
+ 0.097921656354762715
+ 0.097924862683055142
+ 0.097928069058857842
+ 0.097931275482173064
+ 0.097934481953003125
+ 0.09793768847135019
+ 0.097940895037216605
+ 0.097944101650604479
+ 0.097947308311516296
+ 0.097950515019954179
+ 0.097953721775920349
+ 0.097956928579417069
+ 0.097960135430446779
+ 0.097963342329011466
+ 0.097966549275113571
+ 0.097969756268755329
+ 0.097972963309938946
+ 0.097976170398666684
+ 0.097979377534940806
+ 0.097982584718763699
+ 0.097985791950137444
+ 0.097988999229064386
+ 0.097992206555546732
+ 0.097995413929586772
+ 0.097998621351186796
+ 0.098001828820349093
+ 0.098005036337075843
+ 0.09800824390136928
+ 0.098011451513231762
+ 0.098014659172665566
+ 0.098017866879672788
+ 0.098021074634255786
+ 0.098024282436416879
+ 0.098027490286158245
+ 0.098030698183482187
+ 0.098033906128390941
+ 0.098037114120886726
+ 0.098040322160971985
+ 0.0980435302486488
+ 0.098046738383919474
+ 0.098049946566786284
+ 0.09805315479725138
+ 0.098056363075317329
+ 0.098059571400986104
+ 0.098062779774260048
+ 0.09806598819514134
+ 0.098069196663632535
+ 0.098072405179735547
+ 0.098075613743452833
+ 0.098078822354786599
+ 0.098082031013739177
+ 0.0980852397203128
+ 0.098088448474509746
+ 0.098091657276332012
+ 0.098094866125782276
+ 0.098098075022862441
+ 0.098101283967575198
+ 0.098104492959922421
+ 0.098107701999906524
+ 0.098110911087529729
+ 0.098114120222794407
+ 0.098117329405702586
+ 0.098120538636256902
+ 0.098123747914459297
+ 0.098126957240312146
+ 0.098130166613817696
+ 0.09813337603497832
+ 0.09813658550379617
+ 0.098139795020273521
+ 0.098143004584412621
+ 0.098146214196215845
+ 0.098149423855685244
+ 0.09815263356282336
+ 0.098155843317632288
+ 0.098159053120114317
+ 0.098162262970271766
+ 0.098165472868106812
+ 0.098168682813621816
+ 0.098171892806818928
+ 0.098175102847700535
+ 0.098178312936268844
+ 0.098181523072526145
+ 0.09818473325647474
+ 0.098187943488116797
+ 0.098191153767454631
+ 0.098194364094490616
+ 0.098197574469226903
+ 0.098200784891665616
+ 0.098203995361809265
+ 0.098207205879660156
+ 0.098210416445220355
+ 0.09821362705849225
+ 0.098216837719478048
+ 0.098220048428180023
+ 0.098223259184600467
+ 0.098226469988741669
+ 0.098229680840605932
+ 0.098232891740195477
+ 0.098236102687512483
+ 0.098239313682559323
+ 0.098242524725338218
+ 0.098245735815851623
+ 0.098248946954101524
+ 0.098252158140090348
+ 0.0982553693738204
+ 0.098258580655293887
+ 0.098261791984512986
+ 0.098265003361480086
+ 0.098268214786197433
+ 0.098271426258667374
+ 0.098274637778892018
+ 0.09827784934687385
+ 0.098281060962614894
+ 0.098284272626117691
+ 0.098287484337384282
+ 0.098290696096417093
+ 0.098293907903218181
+ 0.098297119757790041
+ 0.098300331660134951
+ 0.09830354361025509
+ 0.098306755608152552
+ 0.09830996765383003
+ 0.098313179747289425
+ 0.098316391888533181
+ 0.098319604077563627
+ 0.098322816314382888
+ 0.098326028598993323
+ 0.098329240931397208
+ 0.098332453311596651
+ 0.09833566573959418
+ 0.098338878215391931
+ 0.098342090738992319
+ 0.098345303310397356
+ 0.09834851592960947
+ 0.09835172859663098
+ 0.098354941311464023
+ 0.098358154074111165
+ 0.098361366884574419
+ 0.098364579742855965
+ 0.098367792648958327
+ 0.098371005602883643
+ 0.098374218604634217
+ 0.098377431654212394
+ 0.098380644751620408
+ 0.098383857896860466
+ 0.098387071089934913
+ 0.09839028433084604
+ 0.098393497619596038
+ 0.098396710956187294
+ 0.098399924340621947
+ 0.098403137772902452
+ 0.098406351253030946
+ 0.09840956478100972
+ 0.098412778356841063
+ 0.098415991980527348
+ 0.098419205652070768
+ 0.09842241937147353
+ 0.09842563313873802
+ 0.098428846953866542
+ 0.098432060816861233
+ 0.098435274727724481
+ 0.09843848868645852
+ 0.098441702693065708
+ 0.098444916747548183
+ 0.098448130849908291
+ 0.098451345000148377
+ 0.09845455919827073
+ 0.098457773444277377
+ 0.098460987738170955
+ 0.098464202079953517
+ 0.098467416469627353
+ 0.098470630907194878
+ 0.098473845392658202
+ 0.098477059926019642
+ 0.098480274507281571
+ 0.098483489136446167
+ 0.098486703813515875
+ 0.098489918538492691
+ 0.098493133311379225
+ 0.098496348132177475
+ 0.098499563000889828
+ 0.098502777917518783
+ 0.098505992882066254
+ 0.098509207894534601
+ 0.098512422954926362
+ 0.09851563806324358
+ 0.098518853219488542
+ 0.098522068423663609
+ 0.098525283675771153
+ 0.098528498975813228
+ 0.098531714323792347
+ 0.098534929719710604
+ 0.098538145163570345
+ 0.098541360655373847
+ 0.098544576195123343
+ 0.098547791782821359
+ 0.098551007418469963
+ 0.098554223102071389
+ 0.098557438833628025
+ 0.098560654613142201
+ 0.098563870440616014
+ 0.098567086316051961
+ 0.098570302239452234
+ 0.098573518210819097
+ 0.098576734230154839
+ 0.098579950297461791
+ 0.098583166412742174
+ 0.098586382575998346
+ 0.098589598787232502
+ 0.098592815046447013
+ 0.09859603135364417
+ 0.098599247708826027
+ 0.098602464111995178
+ 0.098605680563153789
+ 0.098608897062304135
+ 0.098612113609448548
+ 0.09861533020458918
+ 0.098618546847728403
+ 0.098621763538868493
+ 0.098624980278011823
+ 0.098628197065160614
+ 0.098631413900317169
+ 0.098634630783483626
+ 0.098637847714662455
+ 0.098641064693855973
+ 0.098644281721066193
+ 0.098647498796295668
+ 0.09865071591954673
+ 0.098653933090821377
+ 0.098657150310122163
+ 0.098660367577451197
+ 0.098663584892810866
+ 0.098666802256203445
+ 0.098670019667631087
+ 0.09867323712709633
+ 0.098676454634601313
+ 0.098679672190148282
+ 0.098682889793739625
+ 0.098686107445377591
+ 0.09868932514506451
+ 0.098692542892802618
+ 0.098695760688594147
+ 0.098698978532441639
+ 0.098702196424347077
+ 0.098705414364312793
+ 0.098708632352341216
+ 0.098711850388434705
+ 0.098715068472595272
+ 0.098718286604825345
+ 0.098721504785127201
+ 0.098724723013503379
+ 0.098727941289955698
+ 0.098731159614486835
+ 0.098734377987098873
+ 0.098737596407794156
+ 0.098740814876575086
+ 0.098744033393443745
+ 0.09874725195840256
+ 0.098750470571453849
+ 0.09875368923259982
+ 0.098756907941842748
+ 0.098760126699184977
+ 0.098763345504628813
+ 0.098766564358176587
+ 0.098769783259830421
+ 0.098773002209592869
+ 0.098776221207465903
+ 0.098779440253452186
+ 0.098782659347553509
+ 0.098785878489772688
+ 0.098789097680111765
+ 0.098792316918573056
+ 0.098795536205158851
+ 0.098798755539871469
+ 0.098801974922713171
+ 0.098805194353686135
+ 0.098808413832792999
+ 0.098811633360035636
+ 0.098814852935416808
+ 0.098818072558938291
+ 0.098821292230602806
+ 0.098824511950412322
+ 0.098827731718369421
+ 0.098830951534476227
+ 0.098834171398735085
+ 0.098837391311148146
+ 0.098840611271718004
+ 0.098843831280446715
+ 0.098847051337336567
+ 0.098850271442389961
+ 0.098853491595609175
+ 0.098856711796996635
+ 0.098859932046554355
+ 0.098863152344284763
+ 0.098866372690190163
+ 0.098869593084273011
+ 0.09887281352653518
+ 0.098876034016979308
+ 0.098879254555607698
+ 0.09888247514242253
+ 0.09888569577742605
+ 0.098888916460620813
+ 0.098892137192008747
+ 0.098895357971592393
+ 0.098898578799374068
+ 0.09890179967535602
+ 0.098905020599540455
+ 0.098908241571929734
+ 0.098911462592526159
+ 0.098914683661332048
+ 0.098917904778349608
+ 0.098921125943581281
+ 0.098924347157029427
+ 0.09892756841869603
+ 0.098930789728583504
+ 0.098934011086694432
+ 0.098937232493030755
+ 0.098940453947594945
+ 0.098943675450389221
+ 0.098946897001415943
+ 0.098950118600677442
+ 0.098953340248175981
+ 0.098956561943913737
+ 0.098959783687893252
+ 0.098963005480116661
+ 0.098966227320586297
+ 0.09896944920930438
+ 0.098972671146273422
+ 0.098975893131495588
+ 0.09897911516497318
+ 0.098982337246708393
+ 0.098985559376703683
+ 0.09898878155496138
+ 0.098992003781483609
+ 0.098995226056272881
+ 0.098998448379331264
+ 0.09900167075066138
+ 0.099004893170265174
+ 0.099008115638145155
+ 0.09901133815430363
+ 0.099014560718742733
+ 0.09901778333146502
+ 0.099021005992472516
+ 0.099024228701767789
+ 0.099027451459352961
+ 0.099030674265230462
+ 0.0990338971194024
+ 0.0990371200218714
+ 0.099040342972639361
+ 0.099043565971708825
+ 0.099046789019082149
+ 0.099050012114761457
+ 0.099053235258749317
+ 0.099056458451047782
+ 0.099059681691659157
+ 0.099062904980585939
+ 0.099066128317830099
+ 0.099069351703394426
+ 0.099072575137280822
+ 0.099075798619491728
+ 0.099079022150029519
+ 0.099082245728896304
+ 0.099085469356094663
+ 0.099088693031626637
+ 0.099091916755494669
+ 0.099095140527701159
+ 0.099098364348248286
+ 0.099101588217138187
+ 0.099104812134373471
+ 0.099108036099956262
+ 0.099111260113888974
+ 0.099114484176173842
+ 0.0991177082868131
+ 0.099120932445809398
+ 0.099124156653164569
+ 0.099127380908881207
+ 0.099130605212961534
+ 0.099133829565407922
+ 0.099137053966222632
+ 0.099140278415407956
+ 0.099143502912966308
+ 0.099146727458899728
+ 0.099149952053210741
+ 0.099153176695901679
+ 0.099156401386974791
+ 0.099159626126432351
+ 0.099162850914276679
+ 0.099166075750510133
+ 0.099169300635135002
+ 0.099172525568153536
+ 0.099175750549568092
+ 0.09917897557938106
+ 0.099182200657594657
+ 0.099185425784210995
+ 0.09918865095923271
+ 0.099191876182662092
+ 0.099195101454501222
+ 0.099198326774752613
+ 0.099201552143418498
+ 0.099204777560501153
+ 0.099208003026002967
+ 0.099211228539926144
+ 0.099214454102273031
+ 0.099217679713046014
+ 0.099220905372247314
+ 0.099224131079879305
+ 0.099227356835944344
+ 0.099230582640444626
+ 0.099233808493382425
+ 0.099237034394760254
+ 0.099240260344580195
+ 0.099243486342844703
+ 0.099246712389556124
+ 0.09924993848471661
+ 0.099253164628328547
+ 0.09925639082039435
+ 0.099259617060916197
+ 0.099262843349896449
+ 0.099266069687337435
+ 0.099269296073241531
+ 0.099272522507610816
+ 0.09927574899044786
+ 0.099278975521754853
+ 0.099282202101534003
+ 0.099285428729787892
+ 0.099288655406518586
+ 0.09929188213172857
+ 0.099295108905420135
+ 0.099298335727595458
+ 0.099301562598257009
+ 0.099304789517407024
+ 0.099308016485047793
+ 0.099311243501181687
+ 0.099314470565811039
+ 0.09931769767893793
+ 0.099320924840565109
+ 0.0993241520506946
+ 0.099327379309328709
+ 0.099330606616469835
+ 0.099333833972120242
+ 0.099337061376282357
+ 0.099340288828958401
+ 0.099343516330150622
+ 0.099346743879861393
+ 0.09934997147809313
+ 0.099353199124847982
+ 0.099356426820128504
+ 0.099359654563936695
+ 0.099362882356275148
+ 0.099366110197146015
+ 0.099369338086551642
+ 0.099372566024494485
+ 0.099375794010976598
+ 0.099379022046000576
+ 0.099382250129568417
+ 0.099385478261682883
+ 0.099388706442345751
+ 0.099391934671559948
+ 0.099395162949327279
+ 0.099398391275650186
+ 0.099401619650531195
+ 0.09940484807397236
+ 0.099408076545976276
+ 0.0994113050665449
+ 0.099414533635680868
+ 0.099417762253386485
+ 0.099420990919663832
+ 0.099424219634515379
+ 0.099427448397943513
+ 0.099430677209950372
+ 0.099433906070538342
+ 0.099437134979709976
+ 0.099440363937467247
+ 0.099443592943812692
+ 0.099446821998748478
+ 0.099450051102277018
+ 0.099453280254400631
+ 0.099456509455121689
+ 0.099459738704442344
+ 0.09946296800236519
+ 0.09946619734889231
+ 0.099469426744025924
+ 0.099472656187768752
+ 0.099475885680122778
+ 0.099479115221090444
+ 0.099482344810674112
+ 0.099485574448876055
+ 0.099488804135698508
+ 0.099492033871143928
+ 0.099495263655214536
+ 0.099498493487912842
+ 0.099501723369240833
+ 0.099504953299201185
+ 0.099508183277796022
+ 0.099511413305027677
+ 0.099514643380898479
+ 0.099517873505410789
+ 0.099521103678566966
+ 0.099524333900369286
+ 0.09952756417082001
+ 0.099530794489921567
+ 0.099534024857676179
+ 0.099537255274086259
+ 0.099540485739154014
+ 0.099543716252881928
+ 0.099546946815272278
+ 0.099550177426327352
+ 0.099553408086049483
+ 0.099556638794440891
+ 0.099559869551504185
+ 0.099563100357241308
+ 0.099566331211654924
+ 0.099569562114747087
+ 0.099572793066520351
+ 0.099576024066976923
+ 0.099579255116119078
+ 0.099582486213949259
+ 0.099585717360469769
+ 0.099588948555682941
+ 0.09959217979959098
+ 0.099595411092196329
+ 0.099598642433501236
+ 0.099601873823508144
+ 0.09960510526221926
+ 0.099608336749637053
+ 0.099611568285763716
+ 0.099614799870601553
+ 0.099618031504152965
+ 0.099621263186420381
+ 0.099624494917405895
+ 0.09962772669711184
+ 0.099630958525540977
+ 0.099634190402695083
+ 0.099637422328576752
+ 0.099640654303188372
+ 0.099643886326532038
+ 0.09964711839861029
+ 0.099650350519425362
+ 0.099653582688979656
+ 0.099656814907275459
+ 0.099660047174314953
+ 0.099663279490100731
+ 0.099666511854634959
+ 0.099669744267919955
+ 0.09967297672995816
+ 0.099676209240751754
+ 0.099679441800303165
+ 0.099682674408614724
+ 0.099685907065688778
+ 0.099689139771527588
+ 0.099692372526133569
+ 0.099695605329508927
+ 0.099698838181656119
+ 0.099702071082577282
+ 0.099705304032275024
+ 0.099708537030751568
+ 0.099711770078009146
+ 0.099715003174050007
+ 0.099718236318876829
+ 0.099721469512491681
+ 0.099724702754896977
+ 0.09972793604609502
+ 0.0997311693860881
+ 0.099734402774878675
+ 0.099737636212468922
+ 0.099740869698861381
+ 0.099744103234058148
+ 0.099747336818061749
+ 0.099750570450874335
+ 0.099753804132498375
+ 0.099757037862936132
+ 0.099760271642189979
+ 0.099763505470262262
+ 0.099766739347155159
+ 0.099769973272871293
+ 0.099773207247412746
+ 0.099776441270782057
+ 0.099779675342981239
+ 0.09978290946401297
+ 0.099786143633879498
+ 0.099789377852583003
+ 0.099792612120125981
+ 0.099795846436510571
+ 0.099799080801739368
+ 0.099802315215814522
+ 0.09980554967873842
+ 0.099808784190513367
+ 0.099812018751141804
+ 0.099815253360625994
+ 0.099818488018968241
+ 0.099821722726170889
+ 0.099824957482236285
+ 0.09982819228716687
+ 0.099831427140964851
+ 0.099834662043632505
+ 0.099837896995172343
+ 0.099841131995586502
+ 0.099844367044877563
+ 0.099847602143047706
+ 0.099850837290099262
+ 0.099854072486034631
+ 0.099857307730856076
+ 0.099860543024565943
+ 0.099863778367166617
+ 0.099867013758660597
+ 0.099870249199049715
+ 0.0998734846883369
+ 0.099876720226524093
+ 0.099879955813613822
+ 0.099883191449608388
+ 0.099886427134510056
+ 0.09988966286832128
+ 0.099892898651044351
+ 0.099896134482681462
+ 0.099899370363235124
+ 0.099902606292707613
+ 0.099905842271101261
+ 0.099909078298418413
+ 0.099912314374661609
+ 0.09991555049983282
+ 0.099918786673934737
+ 0.099922022896969262
+ 0.099925259168939226
+ 0.099928495489846628
+ 0.099931731859693937
+ 0.099934968278483638
+ 0.099938204746217757
+ 0.099941441262898806
+ 0.09994467782852913
+ 0.099947914443111074
+ 0.099951151106646915
+ 0.099954387819139082
+ 0.099957624580589891
+ 0.099960861391001493
+ 0.099964098250376554
+ 0.099967335158717086
+ 0.099970572116025863
+ 0.099973809122304733
+ 0.099977046177556331
+ 0.099980283281782989
+ 0.099983520434986914
+ 0.099986757637170548
+ 0.099989994888336292
+ 0.099993232188486256
+ 0.09999646953762302
+ 0.099999706935748889
+ 0.10000294438286607
+ 0.10000618187897703
+ 0.10000941942408417
+ 0.10001265701818958
+ 0.1000158946612958
+ 0.10001913235340512
+ 0.10002237009451993
+ 0.10002560788464261
+ 0.10002884572377535
+ 0.10003208361192067
+ 0.10003532154908064
+ 0.10003855953525792
+ 0.10004179757045464
+ 0.10004503565467336
+ 0.1000482737879162
+ 0.10005151197018555
+ 0.10005475020148388
+ 0.10005798848181342
+ 0.10006122681117655
+ 0.10006446518957561
+ 0.10006770361701296
+ 0.10007094209349097
+ 0.10007418061901194
+ 0.10007741919357808
+ 0.10008065781719196
+ 0.10008389648985579
+ 0.10008713521157216
+ 0.10009037398234309
+ 0.10009361280217104
+ 0.10009685167105847
+ 0.1001000905890076
+ 0.1001033295560208
+ 0.10010656857210051
+ 0.10010980763724887
+ 0.1001130467514683
+ 0.10011628591476136
+ 0.10011952512713024
+ 0.10012276438857709
+ 0.1001260036991047
+ 0.10012924305871496
+ 0.10013248246741056
+ 0.10013572192519374
+ 0.10013896143206667
+ 0.10014220098803199
+ 0.1001454405930918
+ 0.10014868024724864
+ 0.10015191995050474
+ 0.10015515970286257
+ 0.10015839950432423
+ 0.10016163935489243
+ 0.10016487925456914
+ 0.10016811920335697
+ 0.10017135920125826
+ 0.1001745992482752
+ 0.1001778393444102
+ 0.10018107948966569
+ 0.10018431968404401
+ 0.10018755992754746
+ 0.10019080022017832
+ 0.1001940405619391
+ 0.10019728095283202
+ 0.10020052139285948
+ 0.10020376188202389
+ 0.1002070024203275
+ 0.1002102430077727
+ 0.10021348364436188
+ 0.10021672433009732
+ 0.10021996506498129
+ 0.10022320584901644
+ 0.1002264466822049
+ 0.100229687564549
+ 0.10023292849605119
+ 0.10023616947671384
+ 0.10023941050653913
+ 0.1002426515855296
+ 0.10024589271368751
+ 0.1002491338910152
+ 0.10025237511751525
+ 0.10025561639318958
+ 0.10025885771804093
+ 0.10026209909207144
+ 0.10026534051528346
+ 0.10026858198767946
+ 0.10027182350926191
+ 0.10027506508003284
+ 0.10027830669999471
+ 0.10028154836915003
+ 0.10028479008750089
+ 0.10028803185504997
+ 0.10029127367179937
+ 0.10029451553775172
+ 0.10029775745290896
+ 0.1003009994172739
+ 0.10030424143084836
+ 0.10030748349363511
+ 0.10031072560563654
+ 0.10031396776685471
+ 0.10031720997729229
+ 0.1003204522369513
+ 0.10032369454583441
+ 0.10032693690394368
+ 0.10033017931128171
+ 0.10033342176785071
+ 0.10033666427365309
+ 0.10033990682869132
+ 0.10034314943296754
+ 0.1003463920864842
+ 0.10034963478924375
+ 0.1003528775412484
+ 0.10035612034250056
+ 0.10035936319300259
+ 0.10036260609275686
+ 0.10036584904176581
+ 0.10036909204003154
+ 0.10037233508755672
+ 0.10037557818434359
+ 0.1003788213303943
+ 0.10038206452571155
+ 0.10038530777029737
+ 0.1003885510641544
+ 0.10039179440728489
+ 0.10039503779969122
+ 0.10039828124137566
+ 0.10040152473234054
+ 0.10040476827258843
+ 0.10040801186212153
+ 0.10041125550094228
+ 0.10041449918905287
+ 0.10041774292645597
+ 0.10042098671315362
+ 0.10042423054914829
+ 0.10042747443444239
+ 0.10043071836903823
+ 0.10043396235293821
+ 0.10043720638614471
+ 0.10044045046866001
+ 0.10044369460048647
+ 0.1004469387816266
+ 0.10045018301208263
+ 0.1004534272918569
+ 0.10045667162095182
+ 0.10045991599936979
+ 0.10046316042711299
+ 0.10046640490418407
+ 0.10046964943058513
+ 0.10047289400631869
+ 0.1004761386313871
+ 0.10047938330579267
+ 0.10048262802953777
+ 0.1004858728026248
+ 0.10048911762505595
+ 0.10049236249683383
+ 0.10049560741796064
+ 0.10049885238843879
+ 0.10050209740827079
+ 0.10050534247745867
+ 0.1005085875960051
+ 0.10051183276391226
+ 0.10051507798118257
+ 0.10051832324781851
+ 0.10052156856382231
+ 0.10052481392919638
+ 0.10052805934394292
+ 0.10053130480806458
+ 0.1005345503215635
+ 0.10053779588444214
+ 0.1005410414967029
+ 0.10054428715834811
+ 0.10054753286938015
+ 0.10055077862980118
+ 0.1005540244396138
+ 0.10055727029882047
+ 0.10056051620742318
+ 0.10056376216542461
+ 0.10056700817282706
+ 0.10057025422963273
+ 0.10057350033584435
+ 0.10057674649146386
+ 0.10057999269649388
+ 0.10058323895093675
+ 0.10058648525479484
+ 0.10058973160807055
+ 0.10059297801076594
+ 0.10059622446288373
+ 0.10059947096442617
+ 0.10060271751539558
+ 0.10060596411579444
+ 0.100609210765625
+ 0.10061245746488974
+ 0.10061570421359099
+ 0.10061895101173099
+ 0.1006221978593122
+ 0.10062544475633706
+ 0.10062869170280789
+ 0.10063193869872704
+ 0.10063518574409673
+ 0.10063843283891956
+ 0.10064167998319788
+ 0.10064492717693393
+ 0.1006481744201301
+ 0.10065142171278896
+ 0.10065466905491265
+ 0.10065791644650363
+ 0.10066116388756421
+ 0.10066441137809679
+ 0.10066765891810371
+ 0.10067090650758748
+ 0.10067415414655022
+ 0.10067740183499466
+ 0.10068064957292272
+ 0.10068389736033725
+ 0.10068714519724016
+ 0.10069039308363414
+ 0.10069364101952134
+ 0.10069688900490438
+ 0.10070013703978549
+ 0.10070338512416692
+ 0.10070663325805138
+ 0.10070988144144084
+ 0.100713129674338
+ 0.100716377956745
+ 0.10071962628866434
+ 0.10072287467009837
+ 0.10072612310104934
+ 0.10072937158151986
+ 0.10073262011151203
+ 0.10073586869102852
+ 0.10073911732007147
+ 0.10074236599864332
+ 0.10074561472674645
+ 0.10074886350438315
+ 0.10075211233155605
+ 0.10075536120826728
+ 0.10075861013451912
+ 0.10076185911031429
+ 0.10076510813565488
+ 0.10076835721054339
+ 0.10077160633498221
+ 0.10077485550897369
+ 0.10077810473252015
+ 0.10078135400562394
+ 0.10078460332828754
+ 0.10078785270051317
+ 0.1007911021223034
+ 0.10079435159366049
+ 0.10079760111458691
+ 0.10080085068508486
+ 0.10080410030515677
+ 0.10080734997480513
+ 0.10081059969403236
+ 0.10081384946284053
+ 0.10081709928123235
+ 0.10082034914920991
+ 0.10082359906677577
+ 0.10082684903393233
+ 0.1008300990506818
+ 0.10083334911702684
+ 0.10083659923296935
+ 0.10083984939851225
+ 0.10084309961365753
+ 0.10084634987840771
+ 0.10084960019276522
+ 0.10085285055673232
+ 0.10085610097031143
+ 0.10085935143350501
+ 0.10086260194631522
+ 0.10086585250874462
+ 0.10086910312079564
+ 0.10087235378247052
+ 0.10087560449377168
+ 0.1008788552547015
+ 0.10088210606526234
+ 0.1008853569254566
+ 0.10088860783528668
+ 0.10089185879475482
+ 0.10089510980386369
+ 0.10089836086261543
+ 0.10090161197101229
+ 0.10090486312905711
+ 0.10090811433675194
+ 0.10091136559409906
+ 0.10091461690110108
+ 0.10091786825776036
+ 0.10092111966407916
+ 0.10092437112006003
+ 0.10092762262570501
+ 0.10093087418101687
+ 0.10093412578599784
+ 0.10093737744065032
+ 0.10094062914497655
+ 0.10094388089897913
+ 0.10094713270266018
+ 0.10095038455602234
+ 0.10095363645906788
+ 0.10095688841179919
+ 0.10096014041421866
+ 0.1009633924663286
+ 0.10096664456813151
+ 0.10096989671962969
+ 0.1009731489208255
+ 0.10097640117172133
+ 0.1009796534723197
+ 0.10098290582262277
+ 0.1009861582226332
+ 0.10098941067235304
+ 0.1009926631717849
+ 0.10099591572093115
+ 0.10099916831979408
+ 0.10100242096837617
+ 0.10100567366667965
+ 0.10100892641470713
+ 0.10101217921246083
+ 0.10101543205994318
+ 0.10101868495715646
+ 0.1010219379041032
+ 0.10102519090078572
+ 0.10102844394720646
+ 0.10103169704336772
+ 0.101034950189272
+ 0.1010382033849215
+ 0.10104145663031878
+ 0.10104470992546613
+ 0.10104796327036603
+ 0.10105121666502066
+ 0.10105447010943261
+ 0.10105772360360429
+ 0.10106097714753778
+ 0.10106423074123587
+ 0.10106748438470059
+ 0.1010707380779346
+ 0.10107399182094012
+ 0.10107724561371968
+ 0.10108049945627542
+ 0.10108375334860988
+ 0.10108700729072553
+ 0.10109026128262473
+ 0.10109351532430974
+ 0.10109676941578295
+ 0.10110002355704689
+ 0.10110327774810376
+ 0.10110653198895618
+ 0.10110978627960646
+ 0.10111304062005681
+ 0.10111629501030973
+ 0.10111954945036761
+ 0.10112280394023292
+ 0.10112605847990797
+ 0.10112931306939509
+ 0.10113256770869684
+ 0.10113582239781535
+ 0.10113907713675335
+ 0.10114233192551292
+ 0.10114558676409666
+ 0.10114884165250669
+ 0.10115209659074564
+ 0.10115535157881593
+ 0.10115860661671976
+ 0.10116186170445958
+ 0.10116511684203792
+ 0.10116837202945693
+ 0.1011716272667192
+ 0.10117488255382701
+ 0.10117813789078277
+ 0.10118139327758892
+ 0.1011846487142478
+ 0.10118790420076186
+ 0.10119115973713343
+ 0.1011944153233649
+ 0.10119767095945863
+ 0.10120092664541708
+ 0.10120418238124264
+ 0.10120743816693771
+ 0.10121069400250457
+ 0.10121394988794573
+ 0.10121720582326361
+ 0.10122046180846045
+ 0.10122371784353867
+ 0.10122697392850084
+ 0.10123023006334912
+ 0.10123348624808609
+ 0.10123674248271398
+ 0.10123999876723543
+ 0.10124325510165248
+ 0.10124651148596789
+ 0.10124976792018364
+ 0.10125302440430246
+ 0.10125628093832661
+ 0.10125953752225852
+ 0.10126279415610064
+ 0.1012660508398552
+ 0.10126930757352474
+ 0.10127256435711166
+ 0.10127582119061818
+ 0.10127907807404682
+ 0.10128233500739998
+ 0.10128559199068009
+ 0.10128884902388949
+ 0.1012921061070305
+ 0.10129536324010556
+ 0.10129862042311714
+ 0.10130187765606768
+ 0.10130513493895935
+ 0.10130839227179476
+ 0.10131164965457606
+ 0.10131490708730601
+ 0.10131816456998673
+ 0.10132142210262074
+ 0.10132467968521028
+ 0.10132793731775788
+ 0.10133119500026601
+ 0.10133445273273689
+ 0.10133771051517293
+ 0.10134096834757651
+ 0.10134422622995023
+ 0.10134748416229632
+ 0.10135074214461727
+ 0.10135400017691541
+ 0.10135725825919306
+ 0.10136051639145272
+ 0.10136377457369668
+ 0.10136703280592761
+ 0.1013702910881477
+ 0.10137354942035932
+ 0.10137680780256486
+ 0.10138006623476679
+ 0.10138332471696755
+ 0.10138658324916945
+ 0.10138984183137491
+ 0.10139310046358642
+ 0.10139635914580614
+ 0.10139961787803678
+ 0.10140287666028051
+ 0.10140613549253974
+ 0.10140939437481709
+ 0.10141265330711459
+ 0.10141591228943504
+ 0.10141917132178056
+ 0.10142243040415365
+ 0.1014256895365566
+ 0.101428948718992
+ 0.10143220795146214
+ 0.10143546723396946
+ 0.10143872656651623
+ 0.10144198594910511
+ 0.10144524538173817
+ 0.10144850486441818
+ 0.10145176439714723
+ 0.10145502397992792
+ 0.10145828361276242
+ 0.10146154329565341
+ 0.10146480302860307
+ 0.10146806281161388
+ 0.1014713226446884
+ 0.10147458252782872
+ 0.10147784246103744
+ 0.10148110244431689
+ 0.10148436247766962
+ 0.10148762256109779
+ 0.10149088269460414
+ 0.10149414287819059
+ 0.10149740311186002
+ 0.10150066339561448
+ 0.10150392372945663
+ 0.10150718411338867
+ 0.10151044454741323
+ 0.10151370503153248
+ 0.101516965565749
+ 0.1015202261500651
+ 0.10152348678448311
+ 0.10152674746900558
+ 0.10153000820363481
+ 0.10153326898837337
+ 0.10153652982322345
+ 0.10153979070818749
+ 0.10154305164326805
+ 0.10154631262846736
+ 0.10154957366378793
+ 0.10155283474923217
+ 0.10155609588480238
+ 0.10155935707050109
+ 0.10156261830633063
+ 0.10156587959229342
+ 0.10156914092839189
+ 0.10157240231462843
+ 0.10157566375100537
+ 0.10157892523752515
+ 0.10158218677419036
+ 0.10158544836100306
+ 0.10158870999796606
+ 0.10159197168508148
+ 0.1015952334223518
+ 0.10159849520977939
+ 0.10160175704736671
+ 0.10160501893511609
+ 0.10160828087303014
+ 0.10161154286111113
+ 0.10161480489936132
+ 0.10161806698778338
+ 0.10162132912637954
+ 0.10162459131515224
+ 0.10162785355410399
+ 0.10163111584323703
+ 0.1016343781825539
+ 0.10163764057205704
+ 0.10164090301174868
+ 0.10164416550163137
+ 0.10164742804170743
+ 0.10165069063197942
+ 0.10165395327244951
+ 0.10165721596312029
+ 0.10166047870399421
+ 0.10166374149507344
+ 0.10166700433636072
+ 0.10167026722785824
+ 0.10167353016956839
+ 0.10167679316149354
+ 0.10168005620363628
+ 0.10168331929599898
+ 0.10168658243858399
+ 0.10168984563139379
+ 0.10169310887443066
+ 0.10169637216769704
+ 0.10169963551119549
+ 0.10170289890492823
+ 0.10170616234889775
+ 0.10170942584310652
+ 0.10171268938755694
+ 0.10171595298225135
+ 0.1017192166271922
+ 0.10172248032238176
+ 0.10172574406782281
+ 0.10172900786351737
+ 0.101732271709468
+ 0.10173553560567722
+ 0.10173879955214725
+ 0.10174206354888056
+ 0.10174532759587959
+ 0.10174859169314696
+ 0.10175185584068469
+ 0.10175512003849538
+ 0.10175838428658157
+ 0.10176164858494545
+ 0.10176491293358952
+ 0.10176817733251615
+ 0.10177144178172799
+ 0.10177470628122712
+ 0.10177797083101614
+ 0.10178123543109731
+ 0.10178450008147334
+ 0.10178776478214641
+ 0.10179102953311894
+ 0.10179429433439346
+ 0.10179755918597214
+ 0.10180082408785769
+ 0.10180408904005248
+ 0.10180735404255867
+ 0.10181061909537896
+ 0.10181388419851571
+ 0.10181714935197117
+ 0.10182041455574789
+ 0.1018236798098484
+ 0.10182694511427481
+ 0.10183021046902975
+ 0.10183347587411556
+ 0.10183674132953467
+ 0.10184000683528961
+ 0.10184327239138262
+ 0.10184653799781619
+ 0.10184980365459281
+ 0.10185306936171469
+ 0.10185633511918443
+ 0.10185960092700447
+ 0.10186286678517706
+ 0.10186613269370474
+ 0.10186939865258988
+ 0.10187266466183494
+ 0.10187593072144231
+ 0.1018791968314144
+ 0.1018824629917536
+ 0.1018857292024624
+ 0.10188899546354316
+ 0.10189226177499826
+ 0.1018955281368303
+ 0.10189879454904148
+ 0.10190206101163439
+ 0.1019053275246113
+ 0.10190859408797469
+ 0.10191186070172711
+ 0.10191512736587069
+ 0.10191839408040808
+ 0.10192166084534174
+ 0.10192492766067378
+ 0.101928194526407
+ 0.1019314614425435
+ 0.10193472840908598
+ 0.10193799542603664
+ 0.10194126249339801
+ 0.10194452961117242
+ 0.10194779677936246
+ 0.10195106399797033
+ 0.1019543312669985
+ 0.10195759858644954
+ 0.10196086595632575
+ 0.10196413337662966
+ 0.10196740084736353
+ 0.10197066836852997
+ 0.10197393594013128
+ 0.10197720356216981
+ 0.10198047123464797
+ 0.10198373895756846
+ 0.1019870067309335
+ 0.10199027455474541
+ 0.10199354242900675
+ 0.10199681035372006
+ 0.10200007832888762
+ 0.10200334635451172
+ 0.10200661443059497
+ 0.10200988255713966
+ 0.10201315073414839
+ 0.10201641896162368
+ 0.10201968723956747
+ 0.1020229555679826
+ 0.10202622394687137
+ 0.10202949237623618
+ 0.10203276085607937
+ 0.10203602938640358
+ 0.10203929796721108
+ 0.10204256659850441
+ 0.10204583528028589
+ 0.1020491040125579
+ 0.10205237279532299
+ 0.10205564162858352
+ 0.10205891051234195
+ 0.10206217944660066
+ 0.10206544843136209
+ 0.10206871746662864
+ 0.10207198655240274
+ 0.10207525568868688
+ 0.10207852487548337
+ 0.10208179411279476
+ 0.10208506340062362
+ 0.10208833273897193
+ 0.10209160212784242
+ 0.1020948715672374
+ 0.10209814105715946
+ 0.10210141059761088
+ 0.1021046801885942
+ 0.10210794983011165
+ 0.10211121952216587
+ 0.10211448926475912
+ 0.10211775905789394
+ 0.10212102890157279
+ 0.10212429879579793
+ 0.10212756874057197
+ 0.10213083873589718
+ 0.10213410878177602
+ 0.102137378878211
+ 0.10214064902520456
+ 0.10214391922275905
+ 0.10214718947087693
+ 0.10215045976956057
+ 0.10215373011881239
+ 0.10215700051863502
+ 0.10216027096903064
+ 0.10216354147000173
+ 0.10216681202155083
+ 0.10217008262368028
+ 0.10217335327639261
+ 0.10217662397969024
+ 0.10217989473357528
+ 0.10218316553805061
+ 0.10218643639311828
+ 0.10218970729878113
+ 0.10219297825504123
+ 0.10219624926190113
+ 0.10219952031936334
+ 0.10220279142743025
+ 0.10220606258610407
+ 0.10220933379538748
+ 0.10221260505528305
+ 0.10221587636579287
+ 0.10221914772691945
+ 0.10222241913866528
+ 0.10222569060103291
+ 0.10222896211402463
+ 0.10223223367764295
+ 0.10223550529189004
+ 0.10223877695676867
+ 0.10224204867228119
+ 0.10224532043842979
+ 0.10224859225521729
+ 0.10225186412264586
+ 0.10225513604071798
+ 0.10225840800943616
+ 0.10226168002880266
+ 0.10226495209882006
+ 0.10226822421949074
+ 0.10227149639081712
+ 0.10227476861280184
+ 0.10227804088544694
+ 0.10228131320875519
+ 0.10228458558272883
+ 0.10228785800737038
+ 0.10229113048268221
+ 0.10229440300866696
+ 0.10229767558532676
+ 0.10230094821266429
+ 0.10230422089068175
+ 0.1023074936193818
+ 0.10231076639876674
+ 0.10231403922883901
+ 0.10231731210960117
+ 0.1023205850410554
+ 0.10232385802320443
+ 0.10232713105605058
+ 0.10233040413959622
+ 0.10233367727384389
+ 0.10233695045879582
+ 0.1023402236944547
+ 0.10234349698082283
+ 0.10234677031790265
+ 0.10235004370569663
+ 0.10235331714420726
+ 0.1023565906334368
+ 0.10235986417338776
+ 0.10236313776406282
+ 0.10236641140546401
+ 0.10236968509759409
+ 0.10237295884045529
+ 0.1023762326340502
+ 0.10237950647838108
+ 0.1023827803734506
+ 0.10238605431926093
+ 0.10238932831581472
+ 0.10239260236311432
+ 0.10239587646116217
+ 0.1023991506099608
+ 0.10240242480951245
+ 0.10240569905981978
+ 0.10240897336088503
+ 0.10241224771271067
+ 0.10241552211529935
+ 0.10241879656865316
+ 0.10242207107277493
+ 0.10242534562766688
+ 0.10242862023333142
+ 0.10243189488977107
+ 0.10243516959698812
+ 0.10243844435498531
+ 0.10244171916376471
+ 0.10244499402332913
+ 0.10244826893368079
+ 0.10245154389482196
+ 0.10245481890675544
+ 0.10245809396948359
+ 0.10246136908300865
+ 0.1024646442473333
+ 0.1024679194624598
+ 0.10247119472839064
+ 0.10247447004512819
+ 0.10247774541267508
+ 0.10248102083103368
+ 0.10248429630020633
+ 0.10248757182019561
+ 0.10249084739100385
+ 0.10249412301263355
+ 0.10249739868508705
+ 0.10250067440836702
+ 0.10250395018247568
+ 0.10250722600741548
+ 0.10251050188318905
+ 0.10251377780979856
+ 0.10251705378724661
+ 0.10252032981553584
+ 0.10252360589466838
+ 0.10252688202464678
+ 0.10253015820547348
+ 0.10253343443715091
+ 0.10253671071968153
+ 0.10253998705306776
+ 0.10254326343731207
+ 0.10254653987241691
+ 0.10254981635838473
+ 0.10255309289521795
+ 0.10255636948291907
+ 0.10255964612149039
+ 0.10256292281093458
+ 0.10256619955125373
+ 0.10256947634245062
+ 0.10257275318452769
+ 0.10257603007748717
+ 0.10257930702133157
+ 0.10258258401606345
+ 0.10258586106168514
+ 0.10258913815819906
+ 0.10259241530560778
+ 0.1025956925039137
+ 0.10259896975311918
+ 0.10260224705322686
+ 0.10260552440423897
+ 0.102608801806158
+ 0.10261207925898649
+ 0.10261535676272687
+ 0.10261863431738157
+ 0.10262191192295293
+ 0.1026251895794435
+ 0.10262846728685571
+ 0.10263174504519208
+ 0.10263502285445487
+ 0.10263830071464675
+ 0.10264157862576997
+ 0.10264485658782718
+ 0.10264813460082063
+ 0.10265141266475285
+ 0.10265469077962623
+ 0.10265796894544342
+ 0.10266124716220666
+ 0.10266452542991844
+ 0.10266780374858125
+ 0.10267108211819738
+ 0.10267436053876958
+ 0.10267763901030016
+ 0.10268091753279149
+ 0.10268419610624599
+ 0.10268747473066622
+ 0.10269075340605457
+ 0.10269403213241365
+ 0.10269731090974564
+ 0.10270058973805328
+ 0.10270386861733877
+ 0.10270714754760457
+ 0.10271042652885333
+ 0.10271370556108733
+ 0.10271698464430916
+ 0.10272026377852109
+ 0.10272354296372561
+ 0.10272682219992522
+ 0.10273010148712246
+ 0.10273338082531971
+ 0.1027366602145194
+ 0.10273993965472392
+ 0.10274321914593583
+ 0.10274649868815747
+ 0.10274977828139145
+ 0.10275305792564011
+ 0.10275633762090591
+ 0.10275961736719126
+ 0.10276289716449871
+ 0.10276617701283061
+ 0.10276945691218967
+ 0.102772736862578
+ 0.10277601686399809
+ 0.10277929691645259
+ 0.1027825770199438
+ 0.10278585717447425
+ 0.1027891373800465
+ 0.1027924176366628
+ 0.10279569794432558
+ 0.10279897830303747
+ 0.10280225871280085
+ 0.10280553917361822
+ 0.10280881968549185
+ 0.1028121002484244
+ 0.10281538086241826
+ 0.10281866152747585
+ 0.10282194224359958
+ 0.10282522301079196
+ 0.10282850382905556
+ 0.10283178469839263
+ 0.10283506561880583
+ 0.10283834659029742
+ 0.10284162761286995
+ 0.10284490868652592
+ 0.10284818981126774
+ 0.10285147098709779
+ 0.10285475221401857
+ 0.10285803349203254
+ 0.10286131482114225
+ 0.10286459620135013
+ 0.10286787763265839
+ 0.10287115911506978
+ 0.1028744406485867
+ 0.10287772223321158
+ 0.10288100386894686
+ 0.10288428555579489
+ 0.10288756729375827
+ 0.10289084908283939
+ 0.10289413092304074
+ 0.10289741281436486
+ 0.10290069475681403
+ 0.10290397675039079
+ 0.10290725879509763
+ 0.10291054089093694
+ 0.10291382303791122
+ 0.10291710523602293
+ 0.10292038748527443
+ 0.10292366978566851
+ 0.10292695213720719
+ 0.10293023453989317
+ 0.10293351699372884
+ 0.10293679949871667
+ 0.10294008205485919
+ 0.10294336466215882
+ 0.10294664732061791
+ 0.10294993003023906
+ 0.10295321279102471
+ 0.10295649560297711
+ 0.10295977846609909
+ 0.10296306138039282
+ 0.10296634434586092
+ 0.10296962736250571
+ 0.10297291043032976
+ 0.10297619354933542
+ 0.10297947671952527
+ 0.1029827599409017
+ 0.10298604321346716
+ 0.10298932653722422
+ 0.10299260991217525
+ 0.10299589333832271
+ 0.102999176815669
+ 0.10300246034421678
+ 0.10300574392396832
+ 0.10300902755492615
+ 0.10301231123709265
+ 0.1030155949704704
+ 0.10301887875506184
+ 0.10302216259086946
+ 0.10302544647789569
+ 0.10302873041614281
+ 0.10303201440561358
+ 0.10303529844631029
+ 0.10303858253823549
+ 0.10304186668139154
+ 0.10304515087578098
+ 0.10304843512140612
+ 0.10305171941826963
+ 0.10305500376637396
+ 0.10305828816572148
+ 0.10306157261631474
+ 0.10306485711815597
+ 0.10306814167124806
+ 0.10307142627559303
+ 0.10307471093119357
+ 0.10307799563805212
+ 0.10308128039617104
+ 0.10308456520555292
+ 0.10308785006620033
+ 0.10309113497811545
+ 0.10309441994130103
+ 0.10309770495575919
+ 0.10310099002149273
+ 0.10310427513850402
+ 0.10310756030679544
+ 0.10311084552636944
+ 0.10311413079722855
+ 0.10311741611937528
+ 0.10312070149281209
+ 0.10312398691754139
+ 0.10312727239356556
+ 0.10313055792088718
+ 0.10313384349950878
+ 0.10313712912943272
+ 0.10314041481066155
+ 0.10314370054319746
+ 0.10314698632704342
+ 0.10315027216220143
+ 0.10315355804867413
+ 0.10315684398646414
+ 0.10316012997557363
+ 0.10316341601600527
+ 0.10316670210776138
+ 0.10316998825084481
+ 0.10317327444525751
+ 0.10317656069100208
+ 0.10317984698808129
+ 0.10318313333649742
+ 0.10318641973625284
+ 0.1031897061873501
+ 0.10319299268979169
+ 0.10319627924358006
+ 0.10319956584871749
+ 0.10320285250520682
+ 0.10320613921305037
+ 0.10320942597225038
+ 0.10321271278280968
+ 0.10321599964473063
+ 0.10321928655801538
+ 0.10322257352266684
+ 0.10322586053868719
+ 0.10322914760607917
+ 0.10323243472484496
+ 0.10323572189498718
+ 0.10323900911650831
+ 0.10324229638941072
+ 0.10324558371369698
+ 0.10324887108936943
+ 0.1032521585164308
+ 0.10325544599488332
+ 0.10325873352472946
+ 0.10326202110597184
+ 0.10326530873861296
+ 0.10326859642265503
+ 0.10327188415810068
+ 0.10327517194495248
+ 0.1032784597832128
+ 0.10328174767288407
+ 0.10328503561396882
+ 0.10328832360646954
+ 0.10329161165038854
+ 0.10329489974572863
+ 0.1032981878924918
+ 0.10330147609068102
+ 0.10330476434029845
+ 0.10330805264134675
+ 0.10331134099382817
+ 0.10331462939774542
+ 0.1033179178531007
+ 0.10332120635989674
+ 0.10332449491813599
+ 0.10332778352782079
+ 0.10333107218895356
+ 0.10333436090153703
+ 0.10333764966557345
+ 0.1033409384810655
+ 0.10334422734801532
+ 0.1033475162664258
+ 0.10335080523629903
+ 0.10335409425763777
+ 0.10335738333044438
+ 0.10336067245472129
+ 0.10336396163047103
+ 0.10336725085769606
+ 0.10337054013639894
+ 0.10337382946658195
+ 0.10337711884824777
+ 0.10338040828139881
+ 0.10338369776603744
+ 0.10338698730216617
+ 0.10339027688978773
+ 0.10339356652890432
+ 0.10339685621951845
+ 0.10340014596163254
+ 0.10340343575524921
+ 0.10340672560037097
+ 0.10341001549700024
+ 0.10341330544513934
+ 0.10341659544479098
+ 0.10341988549595749
+ 0.10342317559864139
+ 0.10342646575284517
+ 0.10342975595857121
+ 0.10343304621582215
+ 0.10343633652460039
+ 0.10343962688490839
+ 0.10344291729674865
+ 0.10344620776012357
+ 0.10344949827503577
+ 0.10345278884148768
+ 0.10345607945948174
+ 0.10345937012902044
+ 0.10346266085010619
+ 0.10346595162274162
+ 0.10346924244692914
+ 0.10347253332267126
+ 0.10347582424997021
+ 0.10347911522882884
+ 0.10348240625924941
+ 0.10348569734123461
+ 0.1034889884747867
+ 0.10349227965990815
+ 0.10349557089660144
+ 0.10349886218486928
+ 0.10350215352471397
+ 0.10350544491613788
+ 0.10350873635914382
+ 0.10351202785373391
+ 0.10351531939991074
+ 0.10351861099767705
+ 0.10352190264703501
+ 0.1035251943479872
+ 0.10352848610053617
+ 0.10353177790468428
+ 0.103535069760434
+ 0.10353836166778801
+ 0.10354165362674875
+ 0.10354494563731836
+ 0.10354823769949975
+ 0.1035515298132951
+ 0.10355482197870715
+ 0.1035581141957382
+ 0.10356140646439077
+ 0.10356469878466742
+ 0.10356799115657046
+ 0.10357128358010248
+ 0.10357457605526606
+ 0.10357786858206354
+ 0.10358116116049741
+ 0.10358445379057037
+ 0.10358774647228455
+ 0.10359103920564271
+ 0.10359433199064715
+ 0.10359762482730038
+ 0.10360091771560505
+ 0.10360421065556355
+ 0.10360750364717831
+ 0.1036107966904519
+ 0.10361408978538665
+ 0.10361738293198519
+ 0.10362067613025
+ 0.10362396938018351
+ 0.10362726268178826
+ 0.10363055603506661
+ 0.10363384944002114
+ 0.10363714289665432
+ 0.10364043640496884
+ 0.10364372996496686
+ 0.10364702357665094
+ 0.10365031724002362
+ 0.1036536109550875
+ 0.10365690472184479
+ 0.10366019854029823
+ 0.10366349241045023
+ 0.10366678633230327
+ 0.10367008030585971
+ 0.10367337433112228
+ 0.10367666840809342
+ 0.10367996253677535
+ 0.10368325671717088
+ 0.10368655094928222
+ 0.10368984523311203
+ 0.10369313956866286
+ 0.10369643395593703
+ 0.1036997283949371
+ 0.10370302288566553
+ 0.103706317428125
+ 0.10370961202231767
+ 0.10371290666824616
+ 0.10371620136591315
+ 0.10371949611532089
+ 0.10372279091647188
+ 0.10372608576936874
+ 0.10372938067401383
+ 0.10373267563040976
+ 0.10373597063855894
+ 0.10373926569846381
+ 0.10374256081012707
+ 0.103745855973551
+ 0.10374915118873819
+ 0.10375244645569109
+ 0.10375574177441203
+ 0.10375903714490378
+ 0.10376233256716887
+ 0.10376562804120942
+ 0.10376892356702813
+ 0.10377221914462768
+ 0.10377551477401034
+ 0.10377881045517839
+ 0.10378210618813483
+ 0.10378540197288179
+ 0.10378869780942185
+ 0.10379199369775753
+ 0.10379528963789127
+ 0.10379858562982568
+ 0.10380188167356301
+ 0.10380517776910603
+ 0.10380847391645713
+ 0.10381177011561855
+ 0.10381506636659328
+ 0.10381836266938346
+ 0.10382165902399156
+ 0.10382495543042036
+ 0.10382825188867204
+ 0.10383154839874915
+ 0.10383484496065441
+ 0.10383814157439007
+ 0.10384143823995873
+ 0.10384473495736285
+ 0.10384803172660508
+ 0.10385132854768753
+ 0.10385462542061305
+ 0.10385792234538389
+ 0.10386121932200276
+ 0.10386451635047204
+ 0.10386781343079432
+ 0.10387111056297202
+ 0.10387440774700754
+ 0.10387770498290361
+ 0.10388100227066233
+ 0.10388429961028661
+ 0.10388759700177884
+ 0.10389089444514141
+ 0.10389419194037676
+ 0.10389748948748762
+ 0.10390078708647629
+ 0.10390408473734525
+ 0.10390738244009722
+ 0.10391068019473444
+ 0.1039139780012595
+ 0.10391727585967504
+ 0.10392057376998333
+ 0.10392387173218694
+ 0.10392716974628841
+ 0.10393046781229021
+ 0.10393376593019486
+ 0.10393706410000478
+ 0.10394036232172259
+ 0.10394366059535065
+ 0.10394695892089152
+ 0.10395025729834777
+ 0.10395355572772169
+ 0.10395685420901611
+ 0.10396015274223322
+ 0.10396345132737561
+ 0.10396674996444585
+ 0.10397004865344638
+ 0.10397334739437972
+ 0.10397664618724826
+ 0.10397994503205474
+ 0.10398324392880148
+ 0.10398654287749091
+ 0.10398984187812566
+ 0.10399314093070816
+ 0.10399644003524097
+ 0.10399973919172648
+ 0.10400303840016743
+ 0.10400633766056605
+ 0.10400963697292497
+ 0.10401293633724663
+ 0.10401623575353375
+ 0.10401953522178846
+ 0.10402283474201353
+ 0.10402613431421123
+ 0.10402943393838444
+ 0.10403273361453522
+ 0.10403603334266633
+ 0.1040393331227803
+ 0.10404263295487946
+ 0.10404593283896639
+ 0.1040492327750436
+ 0.10405253276311369
+ 0.10405583280317902
+ 0.10405913289524205
+ 0.10406243303930542
+ 0.10406573323537149
+ 0.10406903348344296
+ 0.10407233378352214
+ 0.10407563413561161
+ 0.10407893453971387
+ 0.10408223499583154
+ 0.10408553550396678
+ 0.1040888360641225
+ 0.10409213667630103
+ 0.10409543734050465
+ 0.10409873805673625
+ 0.10410203882499813
+ 0.10410533964529281
+ 0.10410864051762278
+ 0.10411194144199061
+ 0.10411524241839867
+ 0.10411854344684961
+ 0.10412184452734589
+ 0.1041251456598899
+ 0.10412844684448429
+ 0.10413174808113163
+ 0.10413504936983428
+ 0.10413835071059471
+ 0.10414165210341535
+ 0.10414495354829902
+ 0.10414825504524804
+ 0.10415155659426491
+ 0.10415485819535214
+ 0.10415815984851216
+ 0.10416146155374759
+ 0.10416476331106095
+ 0.10416806512045464
+ 0.1041713669819313
+ 0.10417466889549322
+ 0.10417797086114317
+ 0.10418127287888349
+ 0.10418457494871665
+ 0.10418787707064531
+ 0.10419117924467186
+ 0.10419448147079882
+ 0.10419778374902872
+ 0.1042010860793641
+ 0.10420438846180737
+ 0.10420769089636124
+ 0.10421099338302788
+ 0.10421429592181007
+ 0.1042175985127103
+ 0.10422090115573092
+ 0.10422420385087461
+ 0.10422750659814367
+ 0.1042308093975409
+ 0.10423411224906855
+ 0.10423741515272934
+ 0.10424071810852549
+ 0.10424402111645986
+ 0.10424732417653448
+ 0.10425062728875245
+ 0.10425393045311573
+ 0.1042572336696274
+ 0.10426053693828945
+ 0.10426384025910446
+ 0.10426714363207522
+ 0.10427044705720422
+ 0.10427375053449361
+ 0.10427705406394613
+ 0.10428035764556441
+ 0.10428366127935082
+ 0.10428696496530783
+ 0.10429026870343805
+ 0.10429357249374396
+ 0.10429687633622793
+ 0.10430018023089262
+ 0.10430348417774052
+ 0.1043067881767742
+ 0.10431009222799609
+ 0.10431339633140878
+ 0.10431670048701444
+ 0.10432000469481621
+ 0.10432330895481604
+ 0.10432661326701663
+ 0.10432991763142063
+ 0.10433322204803039
+ 0.10433652651684838
+ 0.10433983103787738
+ 0.10434313561111946
+ 0.10434644023657752
+ 0.10434974491425406
+ 0.10435304964415126
+ 0.10435635442627199
+ 0.10435965926061856
+ 0.10436296414719347
+ 0.10436626908599939
+ 0.10436957407703867
+ 0.10437287912031398
+ 0.10437618421582764
+ 0.10437948936358243
+ 0.1043827945635806
+ 0.10438609981582476
+ 0.1043894051203175
+ 0.10439271047706133
+ 0.10439601588605857
+ 0.10439932134731179
+ 0.1044026268608237
+ 0.10440593242659664
+ 0.10440923804463319
+ 0.10441254371493595
+ 0.10441584943750723
+ 0.10441915521234967
+ 0.10442246103946577
+ 0.10442576691885795
+ 0.10442907285052892
+ 0.10443237883448114
+ 0.10443568487071694
+ 0.10443899095923911
+ 0.10444229710004999
+ 0.104445603293152
+ 0.10444890953854791
+ 0.10445221583624001
+ 0.10445552218623097
+ 0.10445882858852328
+ 0.10446213504311942
+ 0.1044654415500219
+ 0.1044687481092333
+ 0.10447205472075602
+ 0.10447536138459269
+ 0.10447866810074584
+ 0.1044819748692179
+ 0.10448528169001128
+ 0.10448858856312879
+ 0.10449189548857277
+ 0.10449520246634562
+ 0.10449850949645013
+ 0.10450181657888861
+ 0.10450512371366373
+ 0.1045084309007779
+ 0.10451173814023369
+ 0.10451504543203352
+ 0.10451835277618002
+ 0.10452166017267567
+ 0.10452496762152312
+ 0.10452827512272463
+ 0.10453158267628294
+ 0.1045348902822003
+ 0.1045381979404796
+ 0.10454150565112305
+ 0.10454481341413321
+ 0.10454812122951283
+ 0.10455142909726427
+ 0.10455473701738989
+ 0.10455804498989256
+ 0.10456135301477454
+ 0.10456466109203845
+ 0.10456796922168672
+ 0.10457127740372189
+ 0.1045745856381467
+ 0.10457789392496335
+ 0.10458120226417467
+ 0.10458451065578285
+ 0.10458781909979069
+ 0.10459112759620051
+ 0.10459443614501489
+ 0.10459774474623638
+ 0.10460105339986761
+ 0.10460436210591098
+ 0.10460767086436898
+ 0.10461097967524427
+ 0.10461428853853907
+ 0.10461759745425635
+ 0.10462090642239819
+ 0.10462421544296747
+ 0.10462752451596648
+ 0.10463083364139786
+ 0.104634142819264
+ 0.10463745204956763
+ 0.10464076133231111
+ 0.10464407066749698
+ 0.10464738005512791
+ 0.10465068949520617
+ 0.10465399898773455
+ 0.10465730853271538
+ 0.10466061813015118
+ 0.10466392778004459
+ 0.10466723748239817
+ 0.10467054723721425
+ 0.10467385704449551
+ 0.10467716690424443
+ 0.10468047681646352
+ 0.10468378678115529
+ 0.10468709679832235
+ 0.10469040686796716
+ 0.10469371699009226
+ 0.10469702716470013
+ 0.10470033739179328
+ 0.10470364767137437
+ 0.10470695800344573
+ 0.10471026838801017
+ 0.10471357882506997
+ 0.10471688931462766
+ 0.10472019985668594
+ 0.10472351045124714
+ 0.10472682109831388
+ 0.10473013179788872
+ 0.10473344254997413
+ 0.10473675335457276
+ 0.104740064211687
+ 0.10474337512131916
+ 0.10474668608347239
+ 0.1047499970981486
+ 0.10475330816535063
+ 0.10475661928508098
+ 0.10475993045734204
+ 0.10476324168213642
+ 0.10476655295946678
+ 0.10476986428933546
+ 0.10477317567174509
+ 0.10477648710669814
+ 0.10477979859419716
+ 0.10478311013424471
+ 0.10478642172684322
+ 0.10478973337199525
+ 0.10479304506970341
+ 0.10479635681997028
+ 0.10479966862279826
+ 0.1048029804781898
+ 0.10480629238614765
+ 0.10480960434667411
+ 0.10481291635977188
+ 0.10481622842544344
+ 0.10481954054369154
+ 0.10482285271451817
+ 0.10482616493792633
+ 0.10482947721391836
+ 0.10483278954249677
+ 0.10483610192366424
+ 0.10483941435742311
+ 0.10484272684377617
+ 0.10484603938272566
+ 0.10484935197427425
+ 0.10485266461842445
+ 0.10485597731517882
+ 0.10485929006453995
+ 0.10486260286651017
+ 0.10486591572109207
+ 0.10486922862828836
+ 0.10487254158810157
+ 0.10487585460053395
+ 0.10487916766558829
+ 0.10488248078326692
+ 0.10488579395357259
+ 0.10488910717650772
+ 0.10489242045207484
+ 0.10489573378027647
+ 0.10489904716111516
+ 0.10490236059459349
+ 0.10490567408071398
+ 0.10490898761947895
+ 0.10491230121089128
+ 0.10491561485495322
+ 0.10491892855166751
+ 0.10492224230103651
+ 0.10492555610306291
+ 0.10492886995774924
+ 0.10493218386509788
+ 0.1049354978251115
+ 0.10493881183779249
+ 0.10494212590314357
+ 0.10494544002116712
+ 0.10494875419186579
+ 0.10495206841524186
+ 0.10495538269129834
+ 0.10495869702003732
+ 0.10496201140146152
+ 0.10496532583557357
+ 0.10496864032237584
+ 0.10497195486187083
+ 0.10497526945406122
+ 0.10497858409894958
+ 0.10498189879653838
+ 0.10498521354682994
+ 0.10498852834982708
+ 0.1049918432055323
+ 0.10499515811394795
+ 0.10499847307507675
+ 0.10500178808892127
+ 0.10500510315548386
+ 0.10500841827476716
+ 0.10501173344677385
+ 0.10501504867150611
+ 0.10501836394896687
+ 0.10502167927915827
+ 0.10502499466208326
+ 0.10502831009774412
+ 0.10503162558614337
+ 0.10503494112728365
+ 0.10503825672116744
+ 0.10504157236779749
+ 0.105044888067176
+ 0.10504820381930566
+ 0.10505151962418897
+ 0.1050548354818287
+ 0.10505815139222696
+ 0.10506146735538675
+ 0.10506478337131021
+ 0.10506809944000019
+ 0.10507141556145891
+ 0.10507473173568936
+ 0.10507804796269368
+ 0.10508136424247441
+ 0.10508468057503439
+ 0.10508799696037584
+ 0.10509131339850158
+ 0.10509462988941394
+ 0.10509794643311564
+ 0.10510126302960905
+ 0.10510457967889678
+ 0.10510789638098145
+ 0.1051112131358654
+ 0.10511452994355136
+ 0.10511784680404176
+ 0.10512116371733916
+ 0.10512448068344617
+ 0.10512779770236517
+ 0.10513111477409896
+ 0.10513443189864985
+ 0.1051377490760206
+ 0.10514106630621359
+ 0.10514438358923124
+ 0.10514770092507639
+ 0.10515101831375134
+ 0.1051543357552587
+ 0.10515765324960115
+ 0.10516097079678113
+ 0.10516428839680113
+ 0.10516760604966367
+ 0.10517092375537142
+ 0.10517424151392672
+ 0.10517755932533247
+ 0.10518087718959095
+ 0.10518419510670463
+ 0.10518751307667636
+ 0.10519083109950829
+ 0.10519414917520327
+ 0.10519746730376379
+ 0.10520078548519234
+ 0.10520410371949124
+ 0.10520742200666361
+ 0.10521074034671132
+ 0.10521405873963745
+ 0.10521737718544436
+ 0.10522069568413453
+ 0.10522401423571044
+ 0.10522733284017488
+ 0.10523065149753019
+ 0.10523397020777901
+ 0.10523728897092381
+ 0.10524060778696724
+ 0.10524392665591163
+ 0.10524724557775977
+ 0.10525056455251419
+ 0.10525388358017733
+ 0.10525720266075178
+ 0.10526052179424009
+ 0.10526384098064473
+ 0.10526716021996829
+ 0.10527047951221336
+ 0.1052737988573824
+ 0.10527711825547809
+ 0.10528043770650296
+ 0.10528375721045942
+ 0.10528707676735014
+ 0.10529039637717753
+ 0.10529371603994436
+ 0.10529703575565298
+ 0.10530035552430593
+ 0.10530367534590598
+ 0.1053069952204555
+ 0.10531031514795688
+ 0.10531363512841306
+ 0.10531695516182633
+ 0.10532027524819923
+ 0.1053235953875345
+ 0.10532691557983437
+ 0.10533023582510177
+ 0.1053335561233389
+ 0.10533687647454858
+ 0.10534019687873322
+ 0.10534351733589539
+ 0.10534683784603752
+ 0.10535015840916245
+ 0.10535347902527255
+ 0.10535679969437035
+ 0.10536012041645831
+ 0.10536344119153911
+ 0.10536676201961538
+ 0.10537008290068955
+ 0.10537340383476423
+ 0.10537672482184192
+ 0.10538004586192509
+ 0.10538336695501652
+ 0.10538668810111862
+ 0.10539000930023389
+ 0.10539333055236494
+ 0.10539665185751437
+ 0.10539997321568478
+ 0.10540329462687847
+ 0.10540661609109811
+ 0.10540993760834651
+ 0.10541325917862569
+ 0.10541658080193865
+ 0.10541990247828788
+ 0.10542322420767587
+ 0.10542654599010501
+ 0.10542986782557807
+ 0.1054331897140975
+ 0.10543651165566598
+ 0.10543983365028589
+ 0.1054431556979598
+ 0.10544647779869046
+ 0.10544979995248024
+ 0.10545312215933163
+ 0.1054564444192474
+ 0.10545976673223
+ 0.10546308909828195
+ 0.10546641151740573
+ 0.10546973398960409
+ 0.10547305651487944
+ 0.10547637909323444
+ 0.10547970172467157
+ 0.10548302440919335
+ 0.1054863471468024
+ 0.10548966993750129
+ 0.10549299278129257
+ 0.1054963156781787
+ 0.10549963862816236
+ 0.10550296163124601
+ 0.10550628468743221
+ 0.10550960779672358
+ 0.10551293095912277
+ 0.10551625417463188
+ 0.10551957744325417
+ 0.10552290076499166
+ 0.10552622413984691
+ 0.1055295475678228
+ 0.10553287104892173
+ 0.10553619458314616
+ 0.10553951817049874
+ 0.10554284181098218
+ 0.10554616550459868
+ 0.10554948925135101
+ 0.10555281305124176
+ 0.10555613690427337
+ 0.10555946081044845
+ 0.10556278476976959
+ 0.10556610878223929
+ 0.1055694328478602
+ 0.10557275696663482
+ 0.10557608113856572
+ 0.10557940536365536
+ 0.10558272964190638
+ 0.10558605397332138
+ 0.10558937835790293
+ 0.10559270279565344
+ 0.10559602728657561
+ 0.10559935183067203
+ 0.10560267642794506
+ 0.1056060010783974
+ 0.10560932578203151
+ 0.10561265053885024
+ 0.10561597534885581
+ 0.10561930021205082
+ 0.10562262512843808
+ 0.10562595009801985
+ 0.10562927512079885
+ 0.1056326001967776
+ 0.10563592532595872
+ 0.10563925050834477
+ 0.10564257574393815
+ 0.10564590103274162
+ 0.10564922637475753
+ 0.10565255176998863
+ 0.10565587721843744
+ 0.10565920272010647
+ 0.10566252827499828
+ 0.10566585388311546
+ 0.10566917954446053
+ 0.10567250525903621
+ 0.10567583102684484
+ 0.10567915684788913
+ 0.10568248272217146
+ 0.10568580864969471
+ 0.10568913463046112
+ 0.10569246066447335
+ 0.10569578675173415
+ 0.10569911289224586
+ 0.10570243908601117
+ 0.10570576533303246
+ 0.10570909163331245
+ 0.1057124179868538
+ 0.10571574439365884
+ 0.10571907085373008
+ 0.10572239736707049
+ 0.10572572393368219
+ 0.10572905055356814
+ 0.10573237722673054
+ 0.10573570395317219
+ 0.10573903073289555
+ 0.10574235756590313
+ 0.1057456844521977
+ 0.10574901139178154
+ 0.1057523383846575
+ 0.10575566543082797
+ 0.10575899253029553
+ 0.10576231968306288
+ 0.10576564688913227
+ 0.10576897414850654
+ 0.10577230146118832
+ 0.10577562882717995
+ 0.10577895624648409
+ 0.10578228371910341
+ 0.10578561124504021
+ 0.10578893882429719
+ 0.10579226645687705
+ 0.10579559414278206
+ 0.10579892188201533
+ 0.10580224967457875
+ 0.10580557752047534
+ 0.10580890541970747
+ 0.10581223337227774
+ 0.1058155613781888
+ 0.10581888943744307
+ 0.10582221755004328
+ 0.10582554571599193
+ 0.10582887393529151
+ 0.10583220220794468
+ 0.10583553053395393
+ 0.10583885891332193
+ 0.1058421873460513
+ 0.10584551583214433
+ 0.10584884437160387
+ 0.10585217296443231
+ 0.10585550161063226
+ 0.10585883031020628
+ 0.10586215906315713
+ 0.10586548786948721
+ 0.10586881672919896
+ 0.10587214564229513
+ 0.10587547460877821
+ 0.10587880362865076
+ 0.10588213270191557
+ 0.10588546182857494
+ 0.10588879100863149
+ 0.10589212024208788
+ 0.10589544952894667
+ 0.10589877886921023
+ 0.10590210826288141
+ 0.10590543770996258
+ 0.10590876721045651
+ 0.10591209676436554
+ 0.10591542637169242
+ 0.10591875603243953
+ 0.10592208574660968
+ 0.10592541551420524
+ 0.10592874533522884
+ 0.10593207520968313
+ 0.10593540513757063
+ 0.10593873511889379
+ 0.10594206515365548
+ 0.10594539524185788
+ 0.10594872538350382
+ 0.10595205557859588
+ 0.10595538582713653
+ 0.10595871612912834
+ 0.10596204648457397
+ 0.10596537689347592
+ 0.10596870735583683
+ 0.10597203787165915
+ 0.10597536844094543
+ 0.1059786990636985
+ 0.10598202973992082
+ 0.10598536046961467
+ 0.10598869125278312
+ 0.10599202208942828
+ 0.10599535297955298
+ 0.10599868392315991
+ 0.10600201492025137
+ 0.10600534597083003
+ 0.10600867707489851
+ 0.10601200823245931
+ 0.10601533944351499
+ 0.10601867070806822
+ 0.10602200202612162
+ 0.10602533339767754
+ 0.10602866482273884
+ 0.10603199630130776
+ 0.10603532783338715
+ 0.10603865941897954
+ 0.10604199105808743
+ 0.10604532275071331
+ 0.10604865449685991
+ 0.10605198629652983
+ 0.10605531814972553
+ 0.10605865005644956
+ 0.10606198201670476
+ 0.10606531403049338
+ 0.10606864609781817
+ 0.10607197821868165
+ 0.10607531039308647
+ 0.10607864262103497
+ 0.10608197490252998
+ 0.10608530723757406
+ 0.10608863962616974
+ 0.10609197206831947
+ 0.10609530456402598
+ 0.10609863711329183
+ 0.1061019697161195
+ 0.10610530237251174
+ 0.1061086350824709
+ 0.10611196784599974
+ 0.10611530066310078
+ 0.10611863353377657
+ 0.10612196645802974
+ 0.10612529943586288
+ 0.1061286324672784
+ 0.10613196555227913
+ 0.10613529869086751
+ 0.10613863188304615
+ 0.10614196512881754
+ 0.10614529842818432
+ 0.1061486317811491
+ 0.10615196518771443
+ 0.10615529864788299
+ 0.10615863216165708
+ 0.10616196572903963
+ 0.10616529935003313
+ 0.1061686330246399
+ 0.10617196675286263
+ 0.1061753005347042
+ 0.10617863437016681
+ 0.10618196825925318
+ 0.10618530220196601
+ 0.10618863619830771
+ 0.10619197024828086
+ 0.10619530435188815
+ 0.10619863850913219
+ 0.10620197272001534
+ 0.10620530698454031
+ 0.10620864130270982
+ 0.10621197567452627
+ 0.10621531009999229
+ 0.1062186445791104
+ 0.10622197911188333
+ 0.10622531369831351
+ 0.10622864833840362
+ 0.10623198303215634
+ 0.10623531777957394
+ 0.10623865258065916
+ 0.10624198743541474
+ 0.106245322343843
+ 0.10624865730594665
+ 0.10625199232172851
+ 0.10625532739119066
+ 0.10625866251433615
+ 0.10626199769116726
+ 0.10626533292168668
+ 0.10626866820589687
+ 0.10627200354380073
+ 0.10627533893540052
+ 0.10627867438069891
+ 0.10628200987969859
+ 0.10628534543240209
+ 0.10628868103881187
+ 0.10629201669893061
+ 0.10629535241276106
+ 0.10629868818030545
+ 0.10630202400156677
+ 0.10630535987654725
+ 0.10630869580524965
+ 0.10631203178767655
+ 0.1063153678238305
+ 0.10631870391371423
+ 0.10632204005732993
+ 0.10632537625468047
+ 0.10632871250576857
+ 0.10633204881059663
+ 0.10633538516916716
+ 0.10633872158148289
+ 0.10634205804754632
+ 0.10634539456736025
+ 0.10634873114092684
+ 0.10635206776824904
+ 0.10635540444932923
+ 0.10635874118417021
+ 0.10636207797277443
+ 0.10636541481514446
+ 0.10636875171128288
+ 0.1063720886611923
+ 0.10637542566487551
+ 0.10637876272233475
+ 0.10638209983357279
+ 0.10638543699859218
+ 0.10638877421739565
+ 0.10639211148998541
+ 0.10639544881636442
+ 0.10639878619653521
+ 0.10640212363050018
+ 0.10640546111826209
+ 0.10640879865982358
+ 0.10641213625518695
+ 0.10641547390435513
+ 0.10641881160733041
+ 0.10642214936411556
+ 0.10642548717471315
+ 0.10642882503912572
+ 0.10643216295735596
+ 0.10643550092940623
+ 0.10643883895527946
+ 0.10644217703497795
+ 0.10644551516850446
+ 0.10644885335586131
+ 0.10645219159705156
+ 0.10645552989207734
+ 0.10645886824094158
+ 0.10646220664364651
+ 0.10646554510019512
+ 0.10646888361058973
+ 0.106472222174833
+ 0.10647556079292753
+ 0.10647889946487599
+ 0.10648223819068078
+ 0.10648557697034468
+ 0.10648891580387025
+ 0.10649225469125999
+ 0.10649559363251643
+ 0.10649893262764233
+ 0.10650227167664017
+ 0.10650561077951277
+ 0.10650894993626236
+ 0.10651228914689179
+ 0.10651562841140357
+ 0.10651896772980027
+ 0.10652230710208452
+ 0.10652564652825888
+ 0.106528986008326
+ 0.10653232554228841
+ 0.10653566513014867
+ 0.10653900477190946
+ 0.10654234446757344
+ 0.10654568421714307
+ 0.106549024020621
+ 0.10655236387800968
+ 0.10655570378931198
+ 0.10655904375453026
+ 0.10656238377366721
+ 0.10656572384672532
+ 0.1065690639737073
+ 0.10657240415461573
+ 0.1065757443894533
+ 0.1065790846782223
+ 0.10658242502092564
+ 0.10658576541756581
+ 0.10658910586814542
+ 0.10659244637266689
+ 0.10659578693113307
+ 0.10659912754354649
+ 0.10660246820990948
+ 0.10660580893022498
+ 0.10660914970449548
+ 0.10661249053272343
+ 0.1066158314149117
+ 0.10661917235106266
+ 0.10662251334117898
+ 0.10662585438526322
+ 0.10662919548331801
+ 0.10663253663534597
+ 0.10663587784134976
+ 0.10663921910133178
+ 0.10664256041529473
+ 0.10664590178324122
+ 0.10664924320517394
+ 0.10665258468109523
+ 0.10665592621100792
+ 0.10665926779491453
+ 0.10666260943281761
+ 0.10666595112471981
+ 0.1066692928706237
+ 0.10667263467053212
+ 0.10667597652444727
+ 0.10667931843237181
+ 0.10668266039430864
+ 0.10668600241026008
+ 0.10668934448022878
+ 0.10669268660421748
+ 0.10669602878222861
+ 0.1066993710142649
+ 0.10670271330032874
+ 0.10670605564042297
+ 0.10670939803455014
+ 0.10671274048271272
+ 0.10671608298491338
+ 0.10671942554115481
+ 0.10672276815143945
+ 0.10672611081576991
+ 0.10672945353414888
+ 0.10673279630657906
+ 0.1067361391330628
+ 0.10673948201360289
+ 0.10674282494820188
+ 0.10674616793686224
+ 0.10674951097958674
+ 0.10675285407637798
+ 0.1067561972272385
+ 0.10675954043217079
+ 0.10676288369117766
+ 0.10676622700426165
+ 0.10676957037142532
+ 0.10677291379267115
+ 0.10677625726800195
+ 0.10677960079742023
+ 0.10678294438092867
+ 0.1067862880185298
+ 0.10678963171022628
+ 0.10679297545602057
+ 0.10679631925591535
+ 0.10679966310991319
+ 0.10680300701801684
+ 0.10680635098022873
+ 0.10680969499655148
+ 0.10681303906698786
+ 0.10681638319154027
+ 0.10681972737021146
+ 0.10682307160300397
+ 0.10682641588992035
+ 0.1068297602309633
+ 0.10683310462613545
+ 0.10683644907543924
+ 0.10683979357887741
+ 0.10684313813645246
+ 0.10684648274816717
+ 0.10684982741402391
+ 0.10685317213402547
+ 0.10685651690817434
+ 0.10685986173647317
+ 0.10686320661892458
+ 0.10686655155553121
+ 0.10686989654629554
+ 0.10687324159122027
+ 0.10687658669030803
+ 0.10687993184356132
+ 0.1068832770509829
+ 0.10688662231257524
+ 0.10688996762834101
+ 0.1068933129982827
+ 0.10689665842240312
+ 0.10690000390070462
+ 0.10690334943319006
+ 0.10690669501986184
+ 0.10691004066072275
+ 0.10691338635577537
+ 0.10691673210502209
+ 0.10692007790846578
+ 0.10692342376610879
+ 0.10692676967795402
+ 0.106930115644004
+ 0.10693346166426108
+ 0.1069368077387281
+ 0.10694015386740763
+ 0.1069435000503024
+ 0.10694684628741474
+ 0.10695019257874742
+ 0.10695353892430313
+ 0.10695688532408422
+ 0.10696023177809347
+ 0.10696357828633364
+ 0.10696692484880711
+ 0.10697027146551649
+ 0.10697361813646435
+ 0.10697696486165348
+ 0.10698031164108661
+ 0.10698365847476601
+ 0.10698700536269429
+ 0.10699035230487432
+ 0.1069936993013086
+ 0.10699704635199968
+ 0.10700039345695016
+ 0.10700374061616275
+ 0.10700708782964
+ 0.10701043509738462
+ 0.10701378241939903
+ 0.10701712979568596
+ 0.10702047722624811
+ 0.10702382471108782
+ 0.10702717225020798
+ 0.10703051984361094
+ 0.1070338674912996
+ 0.1070372151932764
+ 0.10704056294954384
+ 0.10704391076010475
+ 0.10704725862496171
+ 0.10705060654411717
+ 0.10705395451757389
+ 0.10705730254533447
+ 0.10706065062740147
+ 0.10706399876377751
+ 0.10706734695446521
+ 0.10707069519946721
+ 0.10707404349878605
+ 0.10707739185242449
+ 0.107080740260385
+ 0.10708408872267013
+ 0.10708743723928271
+ 0.10709078581022519
+ 0.10709413443550027
+ 0.10709748311511044
+ 0.10710083184905853
+ 0.10710418063734692
+ 0.1071075294799784
+ 0.10711087837695543
+ 0.10711422732828083
+ 0.10711757633395688
+ 0.10712092539398657
+ 0.10712427450837218
+ 0.10712762367711659
+ 0.1071309729002224
+ 0.10713432217769202
+ 0.10713767150952823
+ 0.10714102089573348
+ 0.10714437033631063
+ 0.10714771983126202
+ 0.10715106938059057
+ 0.10715441898429874
+ 0.107157768642389
+ 0.10716111835486415
+ 0.10716446812172674
+ 0.10716781794297942
+ 0.10717116781862483
+ 0.10717451774866549
+ 0.1071778677331041
+ 0.10718121777194324
+ 0.10718456786518545
+ 0.10718791801283362
+ 0.10719126821488992
+ 0.10719461847135743
+ 0.10719796878223842
+ 0.10720131914753572
+ 0.10720466956725189
+ 0.10720802004138943
+ 0.1072113705699512
+ 0.10721472115293956
+ 0.10721807179035721
+ 0.10722142248220688
+ 0.10722477322849112
+ 0.10722812402921233
+ 0.10723147488437357
+ 0.10723482579397711
+ 0.10723817675802565
+ 0.10724152777652191
+ 0.10724487884946834
+ 0.1072482299768677
+ 0.10725158115872246
+ 0.10725493239503542
+ 0.10725828368580904
+ 0.10726163503104613
+ 0.10726498643074919
+ 0.10726833788492081
+ 0.10727168939356353
+ 0.1072750409566802
+ 0.10727839257427323
+ 0.10728174424634536
+ 0.10728509597289917
+ 0.10728844775393739
+ 0.10729179958946247
+ 0.10729515147947707
+ 0.10729850342398389
+ 0.10730185542298538
+ 0.10730520747648435
+ 0.10730855958448333
+ 0.10731191174698497
+ 0.10731526396399189
+ 0.10731861623550656
+ 0.10732196856153192
+ 0.10732532094207037
+ 0.10732867337712458
+ 0.10733202586669714
+ 0.10733537841079065
+ 0.10733873100940784
+ 0.10734208366255128
+ 0.10734543637022351
+ 0.10734878913242724
+ 0.10735214194916511
+ 0.10735549482043959
+ 0.10735884774625359
+ 0.10736220072660947
+ 0.10736555376150993
+ 0.10736890685095764
+ 0.10737225999495516
+ 0.10737561319350512
+ 0.10737896644661016
+ 0.10738231975427301
+ 0.10738567311649609
+ 0.10738902653328211
+ 0.10739238000463376
+ 0.10739573353055365
+ 0.10739908711104436
+ 0.10740244074610837
+ 0.10740579443574849
+ 0.10740914817996737
+ 0.10741250197876762
+ 0.10741585583215167
+ 0.10741920974012237
+ 0.1074225637026823
+ 0.1074259177198339
+ 0.1074292717915801
+ 0.10743262591792335
+ 0.10743598009886621
+ 0.1074393343344115
+ 0.10744268862456155
+ 0.10744604296931924
+ 0.10744939736868712
+ 0.10745275182266789
+ 0.10745610633126405
+ 0.1074594608944784
+ 0.10746281551231324
+ 0.1074661701847715
+ 0.10746952491185577
+ 0.10747287969356857
+ 0.10747623452991262
+ 0.10747958942089039
+ 0.10748294436650463
+ 0.10748629936675795
+ 0.10748965442165295
+ 0.10749300953119234
+ 0.10749636469537871
+ 0.10749971991421463
+ 0.10750307518770275
+ 0.10750643051584582
+ 0.10750978589864614
+ 0.10751314133610683
+ 0.10751649682822999
+ 0.1075198523750187
+ 0.10752320797647527
+ 0.10752656363260248
+ 0.10752991934340297
+ 0.10753327510887938
+ 0.10753663092903411
+ 0.1075399868038702
+ 0.10754334273338985
+ 0.10754669871759591
+ 0.10755005475649097
+ 0.10755341085007768
+ 0.10755676699835878
+ 0.10756012320133668
+ 0.10756347945901409
+ 0.1075668357713937
+ 0.10757019213847811
+ 0.10757354856026988
+ 0.10757690503677166
+ 0.10758026156798627
+ 0.10758361815391616
+ 0.10758697479456393
+ 0.10759033148993216
+ 0.10759368824002377
+ 0.10759704504484119
+ 0.10760040190438704
+ 0.10760375881866387
+ 0.10760711578767461
+ 0.10761047281142151
+ 0.10761382988990753
+ 0.10761718702313508
+ 0.10762054421110695
+ 0.10762390145382582
+ 0.10762725875129399
+ 0.1076306161035144
+ 0.10763397351048958
+ 0.10763733097222204
+ 0.10764068848871473
+ 0.10764404605997011
+ 0.10764740368599056
+ 0.10765076136677905
+ 0.10765411910233826
+ 0.10765747689267058
+ 0.10766083473777874
+ 0.10766419263766533
+ 0.107667550592333
+ 0.10767090860178452
+ 0.10767426666602227
+ 0.10767762478504916
+ 0.10768098295886765
+ 0.10768434118748037
+ 0.10768769947088994
+ 0.10769105780909914
+ 0.10769441620211051
+ 0.10769777464992658
+ 0.10770113315255023
+ 0.10770449170998396
+ 0.10770785032223032
+ 0.10771120898929208
+ 0.10771456771117172
+ 0.1077179264878721
+ 0.1077212853193957
+ 0.10772464420574514
+ 0.10772800314692312
+ 0.10773136214293232
+ 0.10773472119377522
+ 0.10773808029945459
+ 0.10774143945997311
+ 0.10774479867533324
+ 0.10774815794553756
+ 0.10775151727058911
+ 0.10775487665049015
+ 0.10775823608524347
+ 0.10776159557485163
+ 0.10776495511931725
+ 0.10776831471864316
+ 0.10777167437283183
+ 0.10777503408188593
+ 0.10777839384580806
+ 0.10778175366460083
+ 0.107785113538267
+ 0.10778847346680932
+ 0.10779183345023002
+ 0.10779519348853199
+ 0.10779855358171801
+ 0.10780191372979049
+ 0.10780527393275206
+ 0.10780863419060545
+ 0.10781199450335349
+ 0.10781535487099835
+ 0.10781871529354305
+ 0.10782207577099008
+ 0.1078254363033422
+ 0.10782879689060186
+ 0.10783215753277174
+ 0.10783551822985461
+ 0.1078388789818531
+ 0.10784223978876969
+ 0.10784560065060715
+ 0.10784896156736815
+ 0.10785232253905525
+ 0.10785568356567106
+ 0.10785904464721832
+ 0.10786240578369946
+ 0.10786576697511736
+ 0.10786912822147461
+ 0.10787248952277383
+ 0.10787585087901766
+ 0.10787921229020861
+ 0.10788257375634952
+ 0.10788593527744289
+ 0.10788929685349154
+ 0.1078926584844979
+ 0.10789602017046473
+ 0.10789938191139471
+ 0.10790274370729022
+ 0.10790610555815426
+ 0.1079094674639894
+ 0.10791282942479802
+ 0.107916191440583
+ 0.1079195535113469
+ 0.10792291563709235
+ 0.10792627781782214
+ 0.10792964005353854
+ 0.10793300234424463
+ 0.10793636468994286
+ 0.10793972709063589
+ 0.10794308954632634
+ 0.10794645205701674
+ 0.10794981462271007
+ 0.10795317724340875
+ 0.10795653991911525
+ 0.10795990264983264
+ 0.1079632654355631
+ 0.10796662827630953
+ 0.10796999117207469
+ 0.10797335412286103
+ 0.10797671712867121
+ 0.10798008018950785
+ 0.10798344330537371
+ 0.10798680647627133
+ 0.10799016970220356
+ 0.10799353298317278
+ 0.10799689631918163
+ 0.108000259710233
+ 0.1080036231563293
+ 0.10800698665747337
+ 0.10801035021366766
+ 0.10801371382491505
+ 0.10801707749121793
+ 0.1080204412125791
+ 0.1080238049890013
+ 0.10802716882048689
+ 0.10803053270703879
+ 0.10803389664865939
+ 0.10803726064535153
+ 0.10804062469711791
+ 0.10804398880396093
+ 0.10804735296588347
+ 0.108050717182888
+ 0.10805408145497733
+ 0.10805744578215401
+ 0.1080608101644206
+ 0.10806417460177997
+ 0.10806753909423471
+ 0.10807090364178729
+ 0.10807426824444057
+ 0.108077632902197
+ 0.10808099761505925
+ 0.10808436238303031
+ 0.10808772720611247
+ 0.10809109208430839
+ 0.1080944570176208
+ 0.1080978220060524
+ 0.10810118704960583
+ 0.10810455214828374
+ 0.10810791730208859
+ 0.10811128251102323
+ 0.10811464777509033
+ 0.10811801309429235
+ 0.10812137846863214
+ 0.10812474389811236
+ 0.10812810938273545
+ 0.10813147492250409
+ 0.10813484051742106
+ 0.10813820616748905
+ 0.10814157187271062
+ 0.10814493763308837
+ 0.10814830344862499
+ 0.10815166931932307
+ 0.10815503524518548
+ 0.10815840122621477
+ 0.10816176726241335
+ 0.10816513335378422
+ 0.10816849950032986
+ 0.10817186570205296
+ 0.10817523195895604
+ 0.10817859827104197
+ 0.10818196463831328
+ 0.10818533106077251
+ 0.10818869753842257
+ 0.10819206407126597
+ 0.10819543065930527
+ 0.10819879730254338
+ 0.10820216400098273
+ 0.10820553075462598
+ 0.10820889756347582
+ 0.10821226442753501
+ 0.10821563134680606
+ 0.10821899832129175
+ 0.10822236535099457
+ 0.10822573243591735
+ 0.10822909957606269
+ 0.10823246677143315
+ 0.10823583402203144
+ 0.10823920132786016
+ 0.108242568688922
+ 0.10824593610521971
+ 0.10824930357675595
+ 0.10825267110353311
+ 0.1082560386855542
+ 0.10825940632282161
+ 0.10826277401533818
+ 0.10826614176310627
+ 0.10826950956612888
+ 0.10827287742440843
+ 0.1082762453379478
+ 0.10827961330674944
+ 0.10828298133081604
+ 0.10828634941015038
+ 0.10828971754475487
+ 0.10829308573463248
+ 0.10829645397978566
+ 0.10829982228021699
+ 0.10830319063592936
+ 0.10830655904692532
+ 0.10830992751320753
+ 0.10831329603477848
+ 0.10831666461164113
+ 0.10832003324379802
+ 0.10832340193125164
+ 0.10832677067400498
+ 0.10833013947206034
+ 0.10833350832542053
+ 0.10833687723408815
+ 0.10834024619806602
+ 0.10834361521735678
+ 0.10834698429196292
+ 0.10835035342188706
+ 0.10835372260713222
+ 0.10835709184770054
+ 0.10836046114359514
+ 0.10836383049481844
+ 0.10836719990137304
+ 0.10837056936326184
+ 0.10837393888048738
+ 0.10837730845305231
+ 0.10838067808095929
+ 0.10838404776421086
+ 0.10838741750280974
+ 0.10839078729675881
+ 0.1083941571460605
+ 0.10839752705071756
+ 0.10840089701073261
+ 0.10840426702610816
+ 0.10840763709684723
+ 0.10841100722295215
+ 0.10841437740442578
+ 0.10841774764127063
+ 0.10842111793348945
+ 0.10842448828108495
+ 0.10842785868405959
+ 0.10843122914241615
+ 0.10843459965615761
+ 0.10843797022528606
+ 0.10844134084980443
+ 0.10844471152971534
+ 0.10844808226502166
+ 0.10845145305572579
+ 0.10845482390183044
+ 0.10845819480333836
+ 0.10846156576025215
+ 0.10846493677257443
+ 0.10846830784030798
+ 0.10847167896345539
+ 0.10847505014201929
+ 0.10847842137600236
+ 0.10848179266540736
+ 0.10848516401023683
+ 0.10848853541049346
+ 0.10849190686618
+ 0.10849527837729903
+ 0.10849864994385323
+ 0.10850202156584517
+ 0.10850539324327757
+ 0.10850876497615335
+ 0.10851213676447473
+ 0.10851550860824462
+ 0.10851888050746572
+ 0.10852225246214059
+ 0.10852562447227186
+ 0.10852899653786234
+ 0.10853236865891469
+ 0.10853574083543142
+ 0.10853911306741526
+ 0.10854248535486878
+ 0.10854585769779496
+ 0.1085492300961963
+ 0.10855260255007521
+ 0.10855597505943464
+ 0.10855934762427716
+ 0.10856272024460559
+ 0.10856609292042234
+ 0.10856946565173022
+ 0.1085728384385319
+ 0.10857621128082984
+ 0.10857958417862706
+ 0.10858295713192596
+ 0.10858633014072956
+ 0.10858970320503995
+ 0.10859307632486029
+ 0.10859644950019295
+ 0.1085998227310407
+ 0.10860319601740639
+ 0.10860656935929233
+ 0.10860994275670141
+ 0.10861331620963627
+ 0.10861668971809947
+ 0.10862006328209388
+ 0.10862343690162203
+ 0.1086268105766867
+ 0.1086301843072903
+ 0.10863355809343575
+ 0.10863693193512568
+ 0.10864030583236255
+ 0.10864367978514941
+ 0.10864705379348853
+ 0.10865042785738285
+ 0.10865380197683498
+ 0.10865717615184742
+ 0.10866055038242314
+ 0.10866392466856443
+ 0.10866729901027422
+ 0.10867067340755523
+ 0.10867404786041004
+ 0.10867742236884129
+ 0.1086807969328516
+ 0.10868417155244371
+ 0.10868754622762021
+ 0.10869092095838394
+ 0.10869429574473752
+ 0.10869767058668341
+ 0.10870104548422457
+ 0.10870442043736347
+ 0.1087077954461029
+ 0.10871117051044545
+ 0.10871454563039386
+ 0.10871792080595069
+ 0.10872129603711868
+ 0.1087246713239006
+ 0.10872804666629898
+ 0.10873142206431655
+ 0.10873479751795585
+ 0.10873817302721975
+ 0.10874154859211088
+ 0.10874492421263181
+ 0.10874829988878522
+ 0.10875167562057388
+ 0.10875505140800049
+ 0.10875842725106762
+ 0.10876180314977787
+ 0.10876517910413402
+ 0.10876855511413873
+ 0.10877193117979476
+ 0.1087753073011046
+ 0.1087786834780711
+ 0.10878205971069677
+ 0.10878543599898439
+ 0.10878881234293664
+ 0.10879218874255613
+ 0.1087955651978455
+ 0.10879894170880762
+ 0.10880231827544498
+ 0.10880569489776025
+ 0.10880907157575605
+ 0.10881244830943533
+ 0.10881582509880058
+ 0.10881920194385454
+ 0.10882257884459967
+ 0.10882595580103893
+ 0.10882933281317476
+ 0.10883270988100997
+ 0.10883608700454726
+ 0.1088394641837892
+ 0.10884284141873858
+ 0.10884621870939798
+ 0.10884959605577009
+ 0.10885297345785759
+ 0.10885635091566323
+ 0.10885972842918949
+ 0.10886310599843932
+ 0.10886648362341519
+ 0.10886986130411985
+ 0.10887323904055603
+ 0.10887661683272633
+ 0.10887999468063322
+ 0.10888337258427976
+ 0.10888675054366852
+ 0.10889012855880198
+ 0.10889350662968308
+ 0.10889688475631426
+ 0.10890026293869834
+ 0.10890364117683794
+ 0.10890701947073585
+ 0.10891039782039459
+ 0.1089137762258169
+ 0.10891715468700552
+ 0.10892053320396303
+ 0.10892391177669204
+ 0.10892729040519536
+ 0.10893066908947573
+ 0.10893404782953571
+ 0.10893742662537796
+ 0.10894080547700526
+ 0.10894418438442026
+ 0.10894756334762563
+ 0.10895094236662403
+ 0.10895432144141799
+ 0.10895770057201036
+ 0.10896107975840393
+ 0.10896445900060117
+ 0.10896783829860489
+ 0.10897121765241763
+ 0.10897459706204227
+ 0.10897797652748123
+ 0.10898135604873743
+ 0.10898473562581343
+ 0.1089881152587119
+ 0.10899149494743555
+ 0.10899487469198713
+ 0.10899825449236918
+ 0.10900163434858444
+ 0.10900501426063561
+ 0.10900839422852542
+ 0.10901177425225643
+ 0.10901515433183145
+ 0.10901853446725308
+ 0.10902191465852401
+ 0.10902529490564693
+ 0.1090286752086245
+ 0.10903205556745936
+ 0.10903543598215432
+ 0.10903881645271199
+ 0.10904219697913506
+ 0.10904557756142616
+ 0.10904895819958813
+ 0.10905233889362348
+ 0.1090557196435349
+ 0.10905910044932521
+ 0.10906248131099687
+ 0.10906586222855283
+ 0.10906924320199567
+ 0.10907262423132801
+ 0.1090760053165524
+ 0.10907938645767191
+ 0.10908276765468886
+ 0.10908614890760618
+ 0.10908953021642641
+ 0.10909291158115228
+ 0.10909629300178642
+ 0.10909967447833163
+ 0.10910305601079039
+ 0.10910643759916573
+ 0.10910981924346004
+ 0.10911320094367599
+ 0.10911658269981643
+ 0.10911996451188398
+ 0.10912334637988129
+ 0.10912672830381119
+ 0.1091301102836761
+ 0.10913349231947901
+ 0.10913687441122231
+ 0.10914025655890884
+ 0.10914363876254136
+ 0.10914702102212237
+ 0.10915040333765466
+ 0.10915378570914093
+ 0.10915716813658383
+ 0.10916055061998609
+ 0.10916393315935034
+ 0.10916731575467924
+ 0.10917069840597568
+ 0.1091740811132421
+ 0.10917746387648124
+ 0.10918084669569587
+ 0.10918422957088869
+ 0.10918761250206221
+ 0.10919099548921936
+ 0.10919437853236255
+ 0.10919776163149472
+ 0.10920114478661853
+ 0.10920452799773644
+ 0.10920791126485127
+ 0.10921129458796584
+ 0.10921467796708263
+ 0.10921806140220459
+ 0.10922144489333412
+ 0.109224828440474
+ 0.10922821204362701
+ 0.10923159570279574
+ 0.10923497941798295
+ 0.10923836318919139
+ 0.10924174701642352
+ 0.10924513089968224
+ 0.10924851483897008
+ 0.10925189883428985
+ 0.10925528288564418
+ 0.10925866699303577
+ 0.10926205115646748
+ 0.10926543537594166
+ 0.10926881965146119
+ 0.10927220398302877
+ 0.10927558837064716
+ 0.10927897281431877
+ 0.10928235731404665
+ 0.10928574186983316
+ 0.10928912648168121
+ 0.10929251114959336
+ 0.10929589587357254
+ 0.10929928065362111
+ 0.10930266548974205
+ 0.10930605038193779
+ 0.10930943533021123
+ 0.10931282033456501
+ 0.10931620539500174
+ 0.10931959051152415
+ 0.10932297568413502
+ 0.10932636091283687
+ 0.10932974619763258
+ 0.10933313153852464
+ 0.10933651693551585
+ 0.10933990238860913
+ 0.10934328789780676
+ 0.1093466734631116
+ 0.10935005908452644
+ 0.10935344476205397
+ 0.10935683049569656
+ 0.10936021628545731
+ 0.10936360213133882
+ 0.1093669880333436
+ 0.10937037399147446
+ 0.10937376000573418
+ 0.10937714607612534
+ 0.10938053220265058
+ 0.10938391838531267
+ 0.10938730462411438
+ 0.10939069091905843
+ 0.10939407727014727
+ 0.10939746367738376
+ 0.10940085014077051
+ 0.10940423666031032
+ 0.10940762323600584
+ 0.10941100986785982
+ 0.10941439655587491
+ 0.10941778330005367
+ 0.10942117010039897
+ 0.1094245569569135
+ 0.10942794386960004
+ 0.10943133083846093
+ 0.10943471786349919
+ 0.1094381049447174
+ 0.10944149208211822
+ 0.10944487927570448
+ 0.10944826652547873
+ 0.10945165383144374
+ 0.10945504119360228
+ 0.10945842861195684
+ 0.10946181608651027
+ 0.10946520361726525
+ 0.1094685912042245
+ 0.10947197884739071
+ 0.10947536654676637
+ 0.10947875430235446
+ 0.10948214211415756
+ 0.10948552998217843
+ 0.10948891790641974
+ 0.10949230588688405
+ 0.10949569392357421
+ 0.10949908201649294
+ 0.10950247016564273
+ 0.1095058583710265
+ 0.10950924663264683
+ 0.10951263495050649
+ 0.10951602332460815
+ 0.10951941175495455
+ 0.10952280024154823
+ 0.10952618878439208
+ 0.10952957738348872
+ 0.10953296603884081
+ 0.10953635475045101
+ 0.10953974351832224
+ 0.10954313234245704
+ 0.10954652122285807
+ 0.10954991015952806
+ 0.10955329915246971
+ 0.10955668820168582
+ 0.10956007730717898
+ 0.109563466468952
+ 0.10956685568700728
+ 0.10957024496134797
+ 0.10957363429197652
+ 0.10957702367889562
+ 0.10958041312210788
+ 0.10958380262161616
+ 0.10958719217742331
+ 0.10959058178953171
+ 0.10959397145794415
+ 0.10959736118266344
+ 0.10960075096369219
+ 0.10960414080103308
+ 0.109607530694689
+ 0.10961092064466253
+ 0.1096143106509562
+ 0.10961770071357295
+ 0.10962109083251527
+ 0.10962448100778609
+ 0.10962787123938803
+ 0.10963126152732366
+ 0.10963465187159603
+ 0.1096380422722074
+ 0.10964143272916081
+ 0.10964482324245869
+ 0.10964821381210393
+ 0.10965160443809926
+ 0.10965499512044724
+ 0.10965838585915069
+ 0.10966177665421221
+ 0.10966516750563453
+ 0.10966855841342046
+ 0.10967194937757266
+ 0.10967534039809379
+ 0.10967873147498657
+ 0.10968212260825359
+ 0.10968551379789777
+ 0.1096889050439217
+ 0.10969229634632809
+ 0.10969568770511956
+ 0.10969907912029898
+ 0.10970247059186906
+ 0.10970586211983226
+ 0.10970925370419161
+ 0.10971264534494936
+ 0.10971603704210876
+ 0.10971942879567223
+ 0.1097228206056424
+ 0.10972621247202209
+ 0.10972960439481402
+ 0.10973299637402101
+ 0.10973638840964543
+ 0.10973978050169034
+ 0.10974317265015809
+ 0.10974656485505185
+ 0.10974995711637396
+ 0.10975334943412712
+ 0.10975674180831432
+ 0.10976013423893792
+ 0.10976352672600088
+ 0.10976691926950587
+ 0.10977031186945543
+ 0.10977370452585246
+ 0.10977709723869961
+ 0.10978049000799958
+ 0.10978388283375511
+ 0.1097872757159687
+ 0.1097906686546435
+ 0.10979406164978175
+ 0.10979745470138638
+ 0.10980084780946009
+ 0.10980424097400551
+ 0.10980763419502547
+ 0.10981102747252257
+ 0.1098144208064997
+ 0.10981781419695937
+ 0.10982120764390416
+ 0.10982460114733715
+ 0.10982799470726089
+ 0.10983138832367799
+ 0.10983478199659132
+ 0.10983817572600341
+ 0.10984156951191711
+ 0.10984496335433505
+ 0.10984835725325999
+ 0.10985175120869467
+ 0.10985514522064181
+ 0.10985853928910388
+ 0.10986193341408385
+ 0.10986532759558448
+ 0.10986872183360825
+ 0.10987211612815798
+ 0.10987551047923635
+ 0.10987890488684615
+ 0.10988229935099007
+ 0.1098856938716707
+ 0.10988908844889081
+ 0.1098924830826533
+ 0.10989587777296073
+ 0.10989927251981557
+ 0.10990266732322089
+ 0.10990606218317937
+ 0.10990945709969348
+ 0.10991285207276619
+ 0.10991624710240012
+ 0.1099196421885979
+ 0.10992303733136224
+ 0.10992643253069606
+ 0.10992982778660187
+ 0.10993322309908243
+ 0.10993661846814048
+ 0.10994001389377875
+ 0.10994340937599989
+ 0.10994680491480664
+ 0.10995020051020177
+ 0.10995359616218799
+ 0.10995699187076775
+ 0.10996038763594414
+ 0.10996378345771973
+ 0.10996717933609718
+ 0.10997057527107927
+ 0.10997397126266877
+ 0.10997736731086803
+ 0.1099807634156803
+ 0.10998415957710787
+ 0.10998755579515369
+ 0.1099909520698204
+ 0.10999434840111079
+ 0.10999774478902749
+ 0.11000114123357316
+ 0.11000453773475061
+ 0.11000793429256263
+ 0.11001133090701172
+ 0.11001472757810069
+ 0.11001812430583234
+ 0.1100215210902093
+ 0.1100249179312344
+ 0.11002831482891018
+ 0.11003171178323957
+ 0.11003510879422497
+ 0.11003850586186936
+ 0.11004190298617536
+ 0.11004530016714577
+ 0.11004869740478318
+ 0.11005209469909041
+ 0.11005549205007012
+ 0.11005888945772493
+ 0.11006228692205791
+ 0.11006568444307135
+ 0.11006908202076822
+ 0.11007247965515128
+ 0.110075877346223
+ 0.11007927509398628
+ 0.11008267289844371
+ 0.11008607075959811
+ 0.11008946867745238
+ 0.11009286665200889
+ 0.11009626468327043
+ 0.11009966277123986
+ 0.11010306091591993
+ 0.11010645911731309
+ 0.11010985737542245
+ 0.11011325569025042
+ 0.11011665406179975
+ 0.11012005249007331
+ 0.1101234509750736
+ 0.11012684951680361
+ 0.11013024811526585
+ 0.11013364677046307
+ 0.11013704548239803
+ 0.1101404442510735
+ 0.1101438430764921
+ 0.11014724195865666
+ 0.11015064089756971
+ 0.11015403989323419
+ 0.11015743894565282
+ 0.110160838054828
+ 0.11016423722076282
+ 0.11016763644345984
+ 0.11017103572292179
+ 0.11017443505915137
+ 0.11017783445215135
+ 0.11018123390192451
+ 0.11018463340847338
+ 0.11018803297180078
+ 0.11019143259190951
+ 0.11019483226880231
+ 0.11019823200248167
+ 0.11020163179295041
+ 0.1102050316402115
+ 0.11020843154426742
+ 0.11021183150512086
+ 0.11021523152277461
+ 0.11021863159723141
+ 0.11022203172849405
+ 0.11022543191656506
+ 0.11022883216144738
+ 0.11023223246314356
+ 0.11023563282165653
+ 0.11023903323698868
+ 0.11024243370914305
+ 0.1102458342381222
+ 0.11024923482392902
+ 0.110252635466566
+ 0.11025603616603598
+ 0.11025943692234169
+ 0.11026283773548592
+ 0.11026623860547122
+ 0.11026963953230033
+ 0.11027304051597629
+ 0.1102764415565015
+ 0.11027984265387868
+ 0.11028324380811071
+ 0.11028664501920023
+ 0.11029004628715008
+ 0.11029344761196284
+ 0.11029684899364131
+ 0.11030025043218809
+ 0.11030365192760604
+ 0.11030705347989803
+ 0.11031045508906641
+ 0.1103138567551141
+ 0.11031725847804397
+ 0.11032066025785854
+ 0.1103240620945606
+ 0.11032746398815292
+ 0.1103308659386382
+ 0.1103342679460191
+ 0.11033767001029843
+ 0.11034107213147885
+ 0.11034447430956316
+ 0.11034787654455394
+ 0.11035127883645425
+ 0.11035468118526635
+ 0.11035808359099333
+ 0.11036148605363774
+ 0.11036488857320256
+ 0.1103682911496902
+ 0.11037169378310349
+ 0.11037509647344509
+ 0.11037849922071792
+ 0.11038190202492472
+ 0.11038530488606781
+ 0.11038870780415042
+ 0.11039211077917514
+ 0.11039551381114432
+ 0.11039891690006129
+ 0.11040232004592844
+ 0.11040572324874846
+ 0.11040912650852421
+ 0.1104125298252583
+ 0.11041593319895367
+ 0.11041933662961279
+ 0.1104227401172386
+ 0.11042614366183363
+ 0.11042954726340075
+ 0.11043295092194268
+ 0.11043635463746218
+ 0.11043975840996199
+ 0.11044316223944459
+ 0.11044656612591301
+ 0.11044997006936978
+ 0.11045337406981783
+ 0.11045677812725976
+ 0.11046018224169825
+ 0.11046358641313624
+ 0.11046699064157621
+ 0.11047039492702108
+ 0.11047379926947329
+ 0.1104772036689361
+ 0.11048060812541181
+ 0.11048401263890321
+ 0.11048741720941309
+ 0.11049082183694431
+ 0.11049422652149934
+ 0.1104976312630811
+ 0.11050103606169225
+ 0.11050444091733549
+ 0.11050784583001377
+ 0.1105112507997295
+ 0.11051465582648563
+ 0.11051806091028482
+ 0.11052146605112978
+ 0.11052487124902337
+ 0.11052827650396818
+ 0.11053168181596698
+ 0.11053508718502253
+ 0.11053849261113745
+ 0.11054189809431469
+ 0.11054530363455685
+ 0.11054870923186672
+ 0.11055211488624693
+ 0.11055552059770038
+ 0.11055892636622956
+ 0.11056233219183745
+ 0.11056573807452652
+ 0.11056914401429989
+ 0.11057255001115998
+ 0.11057595606510949
+ 0.11057936217615147
+ 0.11058276834428839
+ 0.11058617456952304
+ 0.11058958085185809
+ 0.11059298719129662
+ 0.11059639358784089
+ 0.11059980004149401
+ 0.11060320655225833
+ 0.11060661312013695
+ 0.1106100197451325
+ 0.11061342642724768
+ 0.11061683316648513
+ 0.11062023996284767
+ 0.11062364681633814
+ 0.11062705372695919
+ 0.11063046069471361
+ 0.110633867719604
+ 0.11063727480163309
+ 0.11064068194080388
+ 0.11064408913711886
+ 0.11064749639058073
+ 0.11065090370119254
+ 0.11065431106895667
+ 0.11065771849387622
+ 0.1106611259759535
+ 0.11066453351519154
+ 0.11066794111159295
+ 0.11067134876516052
+ 0.11067475647589707
+ 0.11067816424380533
+ 0.11068157206888786
+ 0.11068497995114743
+ 0.11068838789058694
+ 0.11069179588720905
+ 0.11069520394101655
+ 0.11069861205201198
+ 0.11070202022019844
+ 0.11070542844557826
+ 0.11070883672815439
+ 0.11071224506792955
+ 0.11071565346490646
+ 0.11071906191908801
+ 0.11072247043047663
+ 0.11072587899907528
+ 0.11072928762488672
+ 0.1107326963079137
+ 0.11073610504815878
+ 0.11073951384562462
+ 0.11074292270031438
+ 0.11074633161223055
+ 0.11074974058137581
+ 0.11075314960775309
+ 0.11075655869136497
+ 0.11075996783221412
+ 0.11076337703030359
+ 0.11076678628563573
+ 0.11077019559821366
+ 0.1107736049680399
+ 0.11077701439511717
+ 0.11078042387944838
+ 0.11078383342103604
+ 0.11078724301988324
+ 0.11079065267599227
+ 0.11079406238936616
+ 0.11079747216000774
+ 0.11080088198791947
+ 0.11080429187310427
+ 0.11080770181556471
+ 0.11081111181530381
+ 0.11081452187232421
+ 0.11081793198662857
+ 0.11082134215821966
+ 0.11082475238710011
+ 0.11082816267327299
+ 0.11083157301674076
+ 0.11083498341750639
+ 0.11083839387557239
+ 0.1108418043909415
+ 0.11084521496361668
+ 0.11084862559360051
+ 0.11085203628089579
+ 0.11085544702550516
+ 0.11085885782743152
+ 0.11086226868667766
+ 0.1108656796032461
+ 0.11086909057713967
+ 0.11087250160836126
+ 0.1108759126969134
+ 0.110879323842799
+ 0.11088273504602073
+ 0.11088614630658135
+ 0.11088955762448365
+ 0.11089296899973022
+ 0.11089638043232389
+ 0.11089979192226757
+ 0.11090320346956377
+ 0.11090661507421538
+ 0.11091002673622501
+ 0.11091343845559555
+ 0.11091685023232974
+ 0.11092026206643014
+ 0.11092367395789973
+ 0.11092708590674115
+ 0.11093049791295724
+ 0.11093390997655064
+ 0.11093732209752387
+ 0.11094073427588012
+ 0.11094414651162206
+ 0.11094755880475209
+ 0.11095097115527328
+ 0.11095438356318832
+ 0.11095779602849985
+ 0.11096120855121067
+ 0.11096462113132358
+ 0.11096803376884135
+ 0.11097144646376668
+ 0.11097485921610241
+ 0.110978272025851
+ 0.11098168489301544
+ 0.11098509781759838
+ 0.11098851079960266
+ 0.11099192383903103
+ 0.11099533693588631
+ 0.11099875009017099
+ 0.11100216330188793
+ 0.11100557657104004
+ 0.11100898989762978
+ 0.11101240328166022
+ 0.11101581672313379
+ 0.11101923022205347
+ 0.11102264377842191
+ 0.11102605739224204
+ 0.11102947106351635
+ 0.11103288479224774
+ 0.11103629857843889
+ 0.1110397124220925
+ 0.11104312632321153
+ 0.11104654028179856
+ 0.11104995429785644
+ 0.11105336837138777
+ 0.11105678250239538
+ 0.11106019669088218
+ 0.1110636109368506
+ 0.11106702524030365
+ 0.11107043960124399
+ 0.1110738540196744
+ 0.11107726849559757
+ 0.11108068302901644
+ 0.11108409761993349
+ 0.11108751226835167
+ 0.11109092697427356
+ 0.11109434173770212
+ 0.11109775655863997
+ 0.1111011714370899
+ 0.11110458637305458
+ 0.11110800136653691
+ 0.11111141641753959
+ 0.11111483152606531
+ 0.11111824669211687
+ 0.11112166191569707
+ 0.11112507719680845
+ 0.11112849253545407
+ 0.11113190793163646
+ 0.11113532338535845
+ 0.11113873889662296
+ 0.11114215446543241
+ 0.11114557009178971
+ 0.11114898577569779
+ 0.11115240151715905
+ 0.11115581731617656
+ 0.11115923317275296
+ 0.11116264908689097
+ 0.11116606505859331
+ 0.11116948108786284
+ 0.11117289717470231
+ 0.11117631331911443
+ 0.11117972952110189
+ 0.1111831457806674
+ 0.11118656209781415
+ 0.11118997847254444
+ 0.11119339490486113
+ 0.11119681139476696
+ 0.11120022794226482
+ 0.11120364454735726
+ 0.11120706121004721
+ 0.11121047793033748
+ 0.11121389470823061
+ 0.11121731154372962
+ 0.11122072843683696
+ 0.11122414538755557
+ 0.11122756239588827
+ 0.11123097946183758
+ 0.11123439658540639
+ 0.11123781376659761
+ 0.11124123100541378
+ 0.11124464830185771
+ 0.1112480656559322
+ 0.11125148306764003
+ 0.11125490053698379
+ 0.11125831806396642
+ 0.11126173564859071
+ 0.1112651532908593
+ 0.11126857099077495
+ 0.11127198874834048
+ 0.11127540656355858
+ 0.111278824436432
+ 0.11128224236696352
+ 0.111285660355156
+ 0.1112890784010121
+ 0.1112924965045346
+ 0.11129591466572633
+ 0.11129933288458983
+ 0.11130275116112805
+ 0.11130616949534367
+ 0.11130958788723957
+ 0.11131300633681838
+ 0.11131642484408301
+ 0.11131984340903597
+ 0.11132326203168022
+ 0.11132668071201847
+ 0.11133009945005334
+ 0.11133351824578799
+ 0.11133693709922479
+ 0.11134035601036657
+ 0.11134377497921626
+ 0.1113471940057764
+ 0.11135061309004987
+ 0.11135403223203957
+ 0.11135745143174797
+ 0.11136087068917801
+ 0.11136429000433239
+ 0.11136770937721388
+ 0.11137112880782532
+ 0.1113745482961693
+ 0.11137796784224875
+ 0.11138138744606649
+ 0.11138480710762509
+ 0.11138822682692728
+ 0.11139164660397601
+ 0.11139506643877405
+ 0.11139848633132383
+ 0.11140190628162859
+ 0.1114053262896908
+ 0.11140874635551332
+ 0.11141216647909885
+ 0.11141558666045005
+ 0.11141900689956999
+ 0.11142242719646123
+ 0.11142584755112644
+ 0.11142926796356868
+ 0.11143268843379044
+ 0.11143610896179457
+ 0.11143952954758385
+ 0.11144295019116107
+ 0.11144637089252886
+ 0.11144979165169029
+ 0.11145321246864778
+ 0.1114566333434043
+ 0.11146005427596246
+ 0.11146347526632518
+ 0.11146689631449522
+ 0.11147031742047527
+ 0.11147373858426805
+ 0.11147715980587634
+ 0.111480581085303
+ 0.11148400242255077
+ 0.11148742381762246
+ 0.11149084527052062
+ 0.11149426678124834
+ 0.11149768834980811
+ 0.11150110997620277
+ 0.11150453166043522
+ 0.11150795340250796
+ 0.11151137520242405
+ 0.11151479706018605
+ 0.11151821897579675
+ 0.11152164094925919
+ 0.11152506298057585
+ 0.11152848506974931
+ 0.11153190721678277
+ 0.11153532942167883
+ 0.11153875168444027
+ 0.11154217400506977
+ 0.11154559638357003
+ 0.11154901881994428
+ 0.11155244131419473
+ 0.11155586386632436
+ 0.11155928647633599
+ 0.11156270914423233
+ 0.11156613187001625
+ 0.1115695546536903
+ 0.11157297749525749
+ 0.11157640039472036
+ 0.11157982335208194
+ 0.11158324636734478
+ 0.11158666944051171
+ 0.11159009257158554
+ 0.11159351576056906
+ 0.11159693900746488
+ 0.11160036231227598
+ 0.11160378567500498
+ 0.11160720909565479
+ 0.11161063257422806
+ 0.1116140561107276
+ 0.11161747970515613
+ 0.11162090335751645
+ 0.11162432706781131
+ 0.11162775083604359
+ 0.11163117466221599
+ 0.11163459854633126
+ 0.11163802248839216
+ 0.11164144648840155
+ 0.11164487054636203
+ 0.11164829466227659
+ 0.1116517188361479
+ 0.11165514306797872
+ 0.11165856735777173
+ 0.11166199170552982
+ 0.11166541611125577
+ 0.1116688405749523
+ 0.11167226509662218
+ 0.11167568967626824
+ 0.11167911431389323
+ 0.11168253900949988
+ 0.11168596376309085
+ 0.11168938857466935
+ 0.11169281344423766
+ 0.11169623837179879
+ 0.1116996633573554
+ 0.11170308840091039
+ 0.11170651350246642
+ 0.11170993866202637
+ 0.11171336387959291
+ 0.11171678915516893
+ 0.11172021448875703
+ 0.11172363988036028
+ 0.1117270653299811
+ 0.11173049083762247
+ 0.11173391640328713
+ 0.11173734202697787
+ 0.11174076770869752
+ 0.11174419344844862
+ 0.11174761924623412
+ 0.11175104510205688
+ 0.11175447101591958
+ 0.11175789698782473
+ 0.11176132301777555
+ 0.11176474910577473
+ 0.11176817525182474
+ 0.11177160145592864
+ 0.11177502771808913
+ 0.11177845403830894
+ 0.1117818804165909
+ 0.11178530685293774
+ 0.1117887333473523
+ 0.11179215989983729
+ 0.11179558651039555
+ 0.11179901317902981
+ 0.11180243990574282
+ 0.11180586669053734
+ 0.1118092935334163
+ 0.1118127204343824
+ 0.1118161473934383
+ 0.11181957441058692
+ 0.11182300148583098
+ 0.11182642861917316
+ 0.11182985581061643
+ 0.11183328306016356
+ 0.11183671036781705
+ 0.11184013773357991
+ 0.11184356515745499
+ 0.11184699263944491
+ 0.11185042017955252
+ 0.11185384777778068
+ 0.11185727543413189
+ 0.11186070314860917
+ 0.11186413092121511
+ 0.11186755875195267
+ 0.11187098664082466
+ 0.11187441458783372
+ 0.11187784259298263
+ 0.11188127065627414
+ 0.1118846987777113
+ 0.11188812695729655
+ 0.11189155519503277
+ 0.11189498349092299
+ 0.11189841184496951
+ 0.1119018402571756
+ 0.11190526872754361
+ 0.11190869725607665
+ 0.11191212584277735
+ 0.11191555448764849
+ 0.11191898319069292
+ 0.11192241195191346
+ 0.11192584077131264
+ 0.11192926964889345
+ 0.11193269858465868
+ 0.11193612757861102
+ 0.11193955663075329
+ 0.11194298574108826
+ 0.11194641490961887
+ 0.11194984413634747
+ 0.11195327342127738
+ 0.11195670276441103
+ 0.11196013216575124
+ 0.11196356162530098
+ 0.11196699114306272
+ 0.11197042071903968
+ 0.11197385035323412
+ 0.11197728004564933
+ 0.11198070979628749
+ 0.11198413960515208
+ 0.11198756947224535
+ 0.11199099939757039
+ 0.11199442938112991
+ 0.1119978594229265
+ 0.1120012895229632
+ 0.11200471968124272
+ 0.11200814989776768
+ 0.11201158017254111
+ 0.11201501050556562
+ 0.11201844089684404
+ 0.11202187134637921
+ 0.11202530185417382
+ 0.11202873242023068
+ 0.11203216304455267
+ 0.11203559372714252
+ 0.11203902446800292
+ 0.1120424552671367
+ 0.1120458861245468
+ 0.11204931704023574
+ 0.11205274801420663
+ 0.11205617904646184
+ 0.11205961013700445
+ 0.1120630412858373
+ 0.11206647249296291
+ 0.11206990375838424
+ 0.11207333508210408
+ 0.1120767664641252
+ 0.11208019790445033
+ 0.11208362940308225
+ 0.11208706096002384
+ 0.11209049257527783
+ 0.11209392424884698
+ 0.11209735598073413
+ 0.11210078777094193
+ 0.11210421961947351
+ 0.11210765152633126
+ 0.11211108349151812
+ 0.1121145155150369
+ 0.1121179475968903
+ 0.11212137973708132
+ 0.11212481193561266
+ 0.11212824419248693
+ 0.112131676507707
+ 0.11213510888127572
+ 0.11213854131319589
+ 0.11214197380347024
+ 0.11214540635210166
+ 0.11214883895909275
+ 0.11215227162444648
+ 0.11215570434816551
+ 0.11215913713025273
+ 0.1121625699707109
+ 0.11216600286954279
+ 0.11216943582675107
+ 0.11217286884233872
+ 0.11217630191630845
+ 0.11217973504866308
+ 0.11218316823940543
+ 0.11218660148853817
+ 0.11219003479606413
+ 0.11219346816198614
+ 0.11219690158630699
+ 0.11220033506902957
+ 0.11220376861015635
+ 0.11220720220969035
+ 0.11221063586763437
+ 0.11221406958399116
+ 0.11221750335876353
+ 0.11222093719195424
+ 0.11222437108356596
+ 0.11222780503360177
+ 0.11223123904206431
+ 0.11223467310895632
+ 0.11223810723428061
+ 0.11224154141803994
+ 0.11224497566023722
+ 0.1122484099608753
+ 0.11225184431995669
+ 0.11225527873748437
+ 0.11225871321346124
+ 0.11226214774788978
+ 0.11226558234077291
+ 0.11226901699211356
+ 0.11227245170191445
+ 0.1122758864701783
+ 0.11227932129690797
+ 0.1122827561821063
+ 0.11228619112577601
+ 0.11228962612791984
+ 0.11229306118854046
+ 0.11229649630764117
+ 0.11229993148522432
+ 0.11230336672129282
+ 0.11230680201584946
+ 0.11231023736889705
+ 0.11231367278043837
+ 0.11231710825047619
+ 0.11232054377901335
+ 0.1123239793660526
+ 0.11232741501159685
+ 0.11233085071564858
+ 0.11233428647821099
+ 0.11233772229928661
+ 0.11234115817887842
+ 0.11234459411698899
+ 0.11234803011362134
+ 0.11235146616877804
+ 0.11235490228246213
+ 0.1123583384546761
+ 0.11236177468542313
+ 0.11236521097470557
+ 0.11236864732252656
+ 0.11237208372888896
+ 0.11237552019379508
+ 0.11237895671724828
+ 0.1123823932992509
+ 0.1123858299398061
+ 0.11238926663891655
+ 0.11239270339658475
+ 0.11239614021281392
+ 0.11239957708760673
+ 0.11240301402096591
+ 0.11240645101289433
+ 0.11240988806339475
+ 0.11241332517246981
+ 0.11241676234012254
+ 0.11242019956635571
+ 0.11242363685117206
+ 0.1124270741945743
+ 0.11243051159656538
+ 0.11243394905714799
+ 0.11243738657632497
+ 0.1124408241540992
+ 0.11244426179047329
+ 0.11244769948545028
+ 0.11245113723903279
+ 0.11245457505122351
+ 0.11245801292202552
+ 0.11246145085144135
+ 0.11246488883947407
+ 0.11246832688612633
+ 0.11247176499140087
+ 0.11247520315530059
+ 0.11247864137782826
+ 0.11248207965898679
+ 0.11248551799877869
+ 0.11248895639720712
+ 0.11249239485427454
+ 0.11249583336998387
+ 0.11249927194433808
+ 0.11250271057733983
+ 0.1125061492689918
+ 0.11250958801929703
+ 0.11251302682825813
+ 0.112516465695878
+ 0.11251990462215944
+ 0.1125233436071052
+ 0.11252678265071803
+ 0.11253022175300093
+ 0.11253366091395647
+ 0.11253710013358766
+ 0.11254053941189709
+ 0.11254397874888784
+ 0.11254741814456237
+ 0.11255085759892382
+ 0.11255429711197458
+ 0.11255773668371792
+ 0.11256117631415634
+ 0.11256461600329276
+ 0.11256805575112994
+ 0.11257149555767051
+ 0.11257493542291766
+ 0.11257837534687382
+ 0.11258181532954194
+ 0.11258525537092499
+ 0.1125886954710255
+ 0.11259213562984641
+ 0.11259557584739054
+ 0.11259901612366069
+ 0.11260245645865943
+ 0.11260589685238989
+ 0.11260933730485463
+ 0.11261277781605668
+ 0.11261621838599876
+ 0.11261965901468356
+ 0.112623099702114
+ 0.11262654044829296
+ 0.11262998125322288
+ 0.11263342211690702
+ 0.11263686303934797
+ 0.11264030402054839
+ 0.11264374506051139
+ 0.1126471861592396
+ 0.11265062731673581
+ 0.1126540685330029
+ 0.11265750980804358
+ 0.11266095114186075
+ 0.11266439253445708
+ 0.11266783398583571
+ 0.11267127549599902
+ 0.11267471706495001
+ 0.1126781586926915
+ 0.11268160037922637
+ 0.11268504212455728
+ 0.11268848392868702
+ 0.11269192579161867
+ 0.11269536771335456
+ 0.11269880969389792
+ 0.1127022517332513
+ 0.11270569383141765
+ 0.11270913598839979
+ 0.11271257820420047
+ 0.1127160204788224
+ 0.11271946281226851
+ 0.1127229052045416
+ 0.1127263476556445
+ 0.11272979016558002
+ 0.11273323273435076
+ 0.11273667536195989
+ 0.1127401180484099
+ 0.11274356079370366
+ 0.11274700359784415
+ 0.11275044646083408
+ 0.11275388938267618
+ 0.11275733236337325
+ 0.11276077540292828
+ 0.1127642185013439
+ 0.11276766165862299
+ 0.11277110487476844
+ 0.1127745481497829
+ 0.11277799148366931
+ 0.11278143487643033
+ 0.11278487832806887
+ 0.11278832183858772
+ 0.11279176540798981
+ 0.11279520903627781
+ 0.11279865272345442
+ 0.11280209646952266
+ 0.11280554027448524
+ 0.11280898413834502
+ 0.11281242806110488
+ 0.11281587204276738
+ 0.11281931608333558
+ 0.11282276018281208
+ 0.11282620434119996
+ 0.11282964855850179
+ 0.11283309283472054
+ 0.11283653716985889
+ 0.11283998156391969
+ 0.11284342601690579
+ 0.11284687052882002
+ 0.11285031509966503
+ 0.11285375972944378
+ 0.11285720441815922
+ 0.11286064916581377
+ 0.11286409397241066
+ 0.11286753883795252
+ 0.11287098376244206
+ 0.11287442874588209
+ 0.11287787378827566
+ 0.11288131888962551
+ 0.11288476404993421
+ 0.11288820926920468
+ 0.11289165454744003
+ 0.11289509988464264
+ 0.11289854528081565
+ 0.11290199073596185
+ 0.11290543625008372
+ 0.11290888182318441
+ 0.11291232745526662
+ 0.11291577314633305
+ 0.11291921889638681
+ 0.11292266470543043
+ 0.1129261105734668
+ 0.11292955650049895
+ 0.11293300248652927
+ 0.11293644853156093
+ 0.11293989463559663
+ 0.11294334079863913
+ 0.11294678702069127
+ 0.11295023330175605
+ 0.112953679641836
+ 0.11295712604093404
+ 0.11296057249905313
+ 0.11296401901619581
+ 0.11296746559236505
+ 0.11297091222756375
+ 0.11297435892179467
+ 0.11297780567506042
+ 0.11298125248736401
+ 0.11298469935870835
+ 0.11298814628909609
+ 0.11299159327853002
+ 0.11299504032701316
+ 0.11299848743454802
+ 0.11300193460113779
+ 0.11300538182678493
+ 0.11300882911149249
+ 0.11301227645526321
+ 0.11301572385809995
+ 0.11301917132000529
+ 0.11302261884098236
+ 0.11302606642103399
+ 0.11302951406016275
+ 0.1130329617583716
+ 0.11303640951566321
+ 0.11303985733204068
+ 0.11304330520750648
+ 0.11304675314206378
+ 0.11305020113571515
+ 0.11305364918846353
+ 0.1130570973003117
+ 0.11306054547126236
+ 0.11306399370131856
+ 0.11306744199048305
+ 0.1130708903387586
+ 0.11307433874614779
+ 0.11307778721265396
+ 0.11308123573827952
+ 0.11308468432302744
+ 0.11308813296690037
+ 0.11309158166990149
+ 0.11309503043203341
+ 0.11309847925329881
+ 0.11310192813370064
+ 0.11310537707324179
+ 0.11310882607192492
+ 0.11311227512975301
+ 0.11311572424672885
+ 0.1131191734228552
+ 0.11312262265813489
+ 0.11312607195257067
+ 0.11312952130616562
+ 0.11313297071892216
+ 0.11313642019084351
+ 0.11313986972193231
+ 0.11314331931219136
+ 0.11314676896162347
+ 0.11315021867023152
+ 0.11315366843801837
+ 0.11315711826498678
+ 0.11316056815113938
+ 0.11316401809647926
+ 0.11316746810100914
+ 0.11317091816473202
+ 0.11317436828765043
+ 0.11317781846976754
+ 0.11318126871108578
+ 0.11318471901160826
+ 0.11318816937133759
+ 0.1131916197902767
+ 0.11319507026842858
+ 0.11319852080579577
+ 0.1132019714023812
+ 0.11320542205818764
+ 0.11320887277321816
+ 0.11321232354747524
+ 0.11321577438096195
+ 0.11321922527368099
+ 0.11322267622563519
+ 0.11322612723682746
+ 0.11322957830726048
+ 0.11323302943693736
+ 0.11323648062586054
+ 0.11323993187403313
+ 0.11324338318145774
+ 0.11324683454813747
+ 0.11325028597407472
+ 0.11325373745927277
+ 0.11325718900373431
+ 0.11326064060746201
+ 0.1132640922704588
+ 0.1132675439927274
+ 0.11327099577427091
+ 0.11327444761509188
+ 0.11327789951519321
+ 0.11328135147457777
+ 0.1132848034932484
+ 0.11328825557120786
+ 0.11329170770845903
+ 0.11329515990500473
+ 0.11329861216084766
+ 0.11330206447599094
+ 0.11330551685043701
+ 0.11330896928418904
+ 0.11331242177724958
+ 0.11331587432962176
+ 0.11331932694130803
+ 0.11332277961231156
+ 0.11332623234263507
+ 0.11332968513228132
+ 0.11333313798125316
+ 0.1133365908895534
+ 0.11334004385718494
+ 0.11334349688415059
+ 0.11334694997045311
+ 0.11335040311609536
+ 0.11335385632108022
+ 0.1133573095854105
+ 0.11336076290908896
+ 0.11336421629211849
+ 0.11336766973450185
+ 0.11337112323624209
+ 0.11337457679734154
+ 0.1133780304178037
+ 0.11338148409763089
+ 0.11338493783682614
+ 0.11338839163539233
+ 0.11339184549333198
+ 0.11339529941064842
+ 0.11339875338734408
+ 0.11340220742342183
+ 0.11340566151888463
+ 0.11340911567373528
+ 0.1134125698879767
+ 0.11341602416161144
+ 0.11341947849464253
+ 0.11342293288707292
+ 0.11342638733890512
+ 0.11342984185014229
+ 0.11343329642078702
+ 0.11343675105084222
+ 0.11344020574031072
+ 0.11344366048919531
+ 0.113447115297499
+ 0.11345057016522442
+ 0.11345402509237446
+ 0.11345748007895194
+ 0.11346093512495971
+ 0.1134643902304006
+ 0.11346784539527754
+ 0.11347130061959312
+ 0.1134747559033505
+ 0.11347821124655229
+ 0.1134816666492013
+ 0.11348512211130035
+ 0.11348857763285256
+ 0.11349203321386023
+ 0.11349548885432682
+ 0.11349894455425467
+ 0.11350240031364688
+ 0.11350585613250626
+ 0.11350931201083542
+ 0.11351276794863749
+ 0.11351622394591504
+ 0.11351968000267119
+ 0.11352313611890862
+ 0.11352659229463002
+ 0.11353004852983849
+ 0.1135335048245367
+ 0.11353696117872739
+ 0.11354041759241369
+ 0.1135438740655984
+ 0.1135473305982839
+ 0.11355078719047347
+ 0.11355424384216987
+ 0.1135577005533759
+ 0.11356115732409433
+ 0.11356461415432817
+ 0.11356807104407994
+ 0.11357152799335284
+ 0.11357498500214949
+ 0.11357844207047267
+ 0.1135818991983254
+ 0.11358535638571049
+ 0.11358881363263064
+ 0.11359227093908872
+ 0.11359572830508763
+ 0.11359918573063019
+ 0.11360264321571931
+ 0.11360610076035765
+ 0.11360955836454817
+ 0.11361301602829381
+ 0.11361647375159706
+ 0.11361993153446093
+ 0.11362338937688851
+ 0.11362684727888235
+ 0.11363030524044537
+ 0.11363376326158034
+ 0.11363722134229029
+ 0.11364067948257783
+ 0.1136441376824458
+ 0.11364759594189736
+ 0.11365105426093482
+ 0.1136545126395616
+ 0.11365797107778014
+ 0.11366142957559333
+ 0.11366488813300413
+ 0.11366834675001539
+ 0.11367180542662969
+ 0.11367526416285026
+ 0.11367872295867956
+ 0.1136821818141206
+ 0.11368564072917632
+ 0.11368909970384948
+ 0.11369255873814275
+ 0.1136960178320594
+ 0.11369947698560172
+ 0.11370293619877289
+ 0.11370639547157561
+ 0.11370985480401292
+ 0.11371331419608743
+ 0.11371677364780217
+ 0.11372023315915981
+ 0.11372369273016332
+ 0.11372715236081533
+ 0.11373061205111905
+ 0.113734071801077
+ 0.11373753161069199
+ 0.11374099147996722
+ 0.11374445140890521
+ 0.11374791139750896
+ 0.11375137144578128
+ 0.11375483155372489
+ 0.11375829172134258
+ 0.11376175194863751
+ 0.11376521223561235
+ 0.11376867258226987
+ 0.11377213298861311
+ 0.11377559345464465
+ 0.1137790539803675
+ 0.11378251456578445
+ 0.11378597521089835
+ 0.11378943591571213
+ 0.11379289668022843
+ 0.11379635750445037
+ 0.11379981838838049
+ 0.11380327933202185
+ 0.11380674033537722
+ 0.11381020139844943
+ 0.11381366252124125
+ 0.11381712370375577
+ 0.11382058494599553
+ 0.11382404624796359
+ 0.1138275076096627
+ 0.1138309690310957
+ 0.11383443051226563
+ 0.113837892053175
+ 0.11384135365382672
+ 0.11384481531422386
+ 0.11384827703436906
+ 0.11385173881426541
+ 0.11385520065391552
+ 0.11385866255332215
+ 0.11386212451248849
+ 0.11386558653141707
+ 0.11386904861011087
+ 0.11387251074857267
+ 0.11387597294680545
+ 0.11387943520481197
+ 0.11388289752259496
+ 0.11388635990015746
+ 0.11388982233750221
+ 0.11389328483463199
+ 0.11389674739154984
+ 0.11390021000825856
+ 0.1139036726847608
+ 0.11390713542105965
+ 0.11391059821715788
+ 0.11391406107305815
+ 0.11391752398876351
+ 0.11392098696427684
+ 0.11392444999960082
+ 0.11392791309473844
+ 0.11393137624969242
+ 0.11393483946446584
+ 0.11393830273906112
+ 0.11394176607348157
+ 0.11394522946772982
+ 0.11394869292180865
+ 0.11395215643572099
+ 0.11395562000946965
+ 0.11395908364305775
+ 0.11396254733648768
+ 0.11396601108976263
+ 0.1139694749028853
+ 0.11397293877585851
+ 0.11397640270868527
+ 0.1139798667013683
+ 0.11398333075391034
+ 0.11398679486631448
+ 0.11399025903858349
+ 0.11399372327072026
+ 0.11399718756272741
+ 0.11400065191460797
+ 0.11400411632636487
+ 0.11400758079800075
+ 0.11401104532951875
+ 0.11401450992092141
+ 0.11401797457221166
+ 0.11402143928339248
+ 0.11402490405446647
+ 0.11402836888543684
+ 0.11403183377630621
+ 0.11403529872707741
+ 0.11403876373775342
+ 0.11404222880833696
+ 0.11404569393883099
+ 0.11404915912923823
+ 0.11405262437956173
+ 0.11405608968980416
+ 0.11405955505996841
+ 0.11406302049005741
+ 0.11406648598007385
+ 0.11406995153002079
+ 0.11407341713990091
+ 0.11407688280971726
+ 0.1140803485394724
+ 0.11408381432916938
+ 0.11408728017881106
+ 0.11409074608840018
+ 0.1140942120579397
+ 0.11409767808743258
+ 0.11410114417688147
+ 0.11410461032628907
+ 0.11410807653565866
+ 0.11411154280499272
+ 0.11411500913429436
+ 0.1141184755235663
+ 0.11412194197281141
+ 0.11412540848203252
+ 0.11412887505123261
+ 0.11413234168041435
+ 0.11413580836958076
+ 0.11413927511873449
+ 0.11414274192787871
+ 0.11414620879701604
+ 0.11414967572614929
+ 0.1141531427152815
+ 0.1141566097644153
+ 0.11416007687355381
+ 0.11416354404269968
+ 0.11416701127185587
+ 0.11417047856102516
+ 0.11417394591021043
+ 0.11417741331941457
+ 0.11418088078864051
+ 0.11418434831789084
+ 0.11418781590716874
+ 0.1141912835564768
+ 0.11419475126581813
+ 0.11419821903519525
+ 0.1142016868646113
+ 0.11420515475406909
+ 0.11420862270357135
+ 0.114212090713121
+ 0.11421555878272086
+ 0.11421902691237391
+ 0.11422249510208295
+ 0.1142259633518508
+ 0.11422943166168045
+ 0.11423290003157453
+ 0.11423636846153594
+ 0.11423983695156785
+ 0.11424330550167258
+ 0.11424677411185342
+ 0.11425024278211306
+ 0.11425371151245445
+ 0.11425718030288037
+ 0.11426064915339353
+ 0.11426411806399718
+ 0.11426758703469375
+ 0.11427105606548643
+ 0.11427452515637786
+ 0.11427799430737112
+ 0.11428146351846877
+ 0.1142849327896739
+ 0.1142884021209893
+ 0.11429187151241782
+ 0.11429534096396216
+ 0.11429881047562554
+ 0.11430228004741065
+ 0.11430574967932022
+ 0.11430921937135723
+ 0.11431268912352459
+ 0.11431615893582507
+ 0.11431962880826153
+ 0.11432309874083682
+ 0.11432656873355371
+ 0.11433003878641536
+ 0.11433350889942442
+ 0.11433697907258371
+ 0.11434044930589622
+ 0.11434391959936467
+ 0.11434738995299212
+ 0.1143508603667812
+ 0.11435433084073489
+ 0.11435780137485607
+ 0.11436127196914761
+ 0.11436474262361231
+ 0.11436821333825306
+ 0.11437168411307272
+ 0.11437515494807414
+ 0.11437862584326017
+ 0.11438209679863363
+ 0.11438556781419755
+ 0.11438903888995469
+ 0.11439251002590782
+ 0.11439598122205991
+ 0.11439945247841395
+ 0.1144029237949723
+ 0.11440639517173849
+ 0.11440986660871504
+ 0.11441333810590482
+ 0.11441680966331061
+ 0.11442028128093544
+ 0.11442375295878218
+ 0.11442722469685342
+ 0.11443069649515243
+ 0.11443416835368173
+ 0.11443764027244448
+ 0.11444111225144325
+ 0.11444458429068108
+ 0.11444805639016073
+ 0.11445152854988529
+ 0.11445500076985725
+ 0.11445847305007995
+ 0.11446194539055581
+ 0.11446541779128791
+ 0.11446889025227905
+ 0.11447236277353211
+ 0.11447583535505006
+ 0.11447930799683555
+ 0.11448278069889156
+ 0.11448625346122114
+ 0.11448972628382695
+ 0.11449319916671169
+ 0.11449667210987859
+ 0.11450014511333027
+ 0.11450361817706965
+ 0.11450709130109964
+ 0.11451056448542314
+ 0.11451403773004287
+ 0.11451751103496177
+ 0.11452098440018288
+ 0.11452445782570871
+ 0.11452793131154237
+ 0.11453140485768679
+ 0.11453487846414459
+ 0.11453835213091887
+ 0.11454182585801234
+ 0.11454529964542796
+ 0.11454877349316862
+ 0.11455224740123704
+ 0.11455572136963614
+ 0.11455919539836885
+ 0.11456266948743801
+ 0.11456614363684658
+ 0.11456961784659722
+ 0.11457309211669305
+ 0.11457656644713672
+ 0.11458004083793107
+ 0.11458351528907922
+ 0.11458698980058388
+ 0.11459046437244796
+ 0.11459393900467421
+ 0.11459741369726574
+ 0.11460088845022506
+ 0.1146043632635554
+ 0.11460783813725943
+ 0.11461131307134001
+ 0.11461478806580032
+ 0.11461826312064274
+ 0.11462173823587042
+ 0.1146252134114862
+ 0.11462868864749297
+ 0.11463216394389356
+ 0.11463563930069084
+ 0.11463911471788767
+ 0.11464259019548699
+ 0.1146460657334915
+ 0.11464954133190422
+ 0.11465301699072802
+ 0.1146564927099657
+ 0.11465996848962033
+ 0.11466344432969433
+ 0.11466692023019107
+ 0.11467039619111315
+ 0.11467387221246356
+ 0.11467734829424489
+ 0.11468082443646049
+ 0.11468430063911286
+ 0.11468777690220512
+ 0.11469125322573991
+ 0.11469472960972008
+ 0.11469820605414878
+ 0.11470168255902866
+ 0.11470515912436272
+ 0.11470863575015376
+ 0.11471211243640456
+ 0.11471558918311821
+ 0.11471906599029741
+ 0.11472254285794511
+ 0.11472601978606409
+ 0.11472949677465739
+ 0.11473297382372771
+ 0.11473645093327819
+ 0.11473992810331131
+ 0.11474340533383019
+ 0.11474688262483769
+ 0.1147503599763367
+ 0.11475383738832998
+ 0.11475731486082053
+ 0.11476079239381111
+ 0.1147642699873046
+ 0.11476774764130407
+ 0.11477122535581206
+ 0.11477470313083186
+ 0.11477818096636588
+ 0.11478165886241734
+ 0.11478513681898905
+ 0.1147886148360838
+ 0.11479209291370454
+ 0.11479557105185405
+ 0.11479904925053526
+ 0.11480252750975119
+ 0.11480600582950447
+ 0.11480948420979811
+ 0.11481296265063508
+ 0.11481644115201796
+ 0.11481991971394985
+ 0.11482339833643349
+ 0.1148268770194719
+ 0.11483035576306791
+ 0.11483383456722447
+ 0.11483731343194434
+ 0.11484079235723035
+ 0.11484427134308546
+ 0.1148477503895126
+ 0.11485122949651468
+ 0.11485470866409431
+ 0.11485818789225452
+ 0.11486166718099843
+ 0.11486514653032844
+ 0.11486862594024794
+ 0.11487210541075933
+ 0.11487558494186581
+ 0.11487906453357023
+ 0.11488254418587528
+ 0.11488602389878404
+ 0.11488950367229919
+ 0.11489298350642374
+ 0.11489646340116058
+ 0.11489994335651262
+ 0.11490342337248259
+ 0.11490690344907356
+ 0.11491038358628818
+ 0.11491386378412957
+ 0.11491734404260029
+ 0.1149208243617036
+ 0.11492430474144211
+ 0.11492778518181891
+ 0.11493126568283681
+ 0.11493474624449843
+ 0.11493822686680698
+ 0.11494170754976513
+ 0.11494518829337594
+ 0.11494866909764212
+ 0.11495214996256657
+ 0.1149556308881523
+ 0.11495911187440216
+ 0.114962592921319
+ 0.1149660740289056
+ 0.11496955519716499
+ 0.11497303642610011
+ 0.11497651771571349
+ 0.11497999906600835
+ 0.11498348047698748
+ 0.11498696194865375
+ 0.11499044348100994
+ 0.11499392507405924
+ 0.11499740672780406
+ 0.11500088844224772
+ 0.11500437021739283
+ 0.11500785205324249
+ 0.11501133394979929
+ 0.11501481590706639
+ 0.11501829792504648
+ 0.11502178000374266
+ 0.11502526214315752
+ 0.1150287443432942
+ 0.11503222660415542
+ 0.11503570892574422
+ 0.11503919130806331
+ 0.11504267375111565
+ 0.11504615625490421
+ 0.11504963881943156
+ 0.11505312144470113
+ 0.11505660413071531
+ 0.11506008687747718
+ 0.11506356968498954
+ 0.1150670525532554
+ 0.11507053548227753
+ 0.11507401847205893
+ 0.11507750152260252
+ 0.11508098463391088
+ 0.11508446780598718
+ 0.11508795103883424
+ 0.11509143433245488
+ 0.11509491768685201
+ 0.11509840110202872
+ 0.11510188457798751
+ 0.11510536811473154
+ 0.11510885171226365
+ 0.11511233537058656
+ 0.11511581908970332
+ 0.11511930286961694
+ 0.11512278671033016
+ 0.11512627061184577
+ 0.11512975457416678
+ 0.11513323859729586
+ 0.11513672268123624
+ 0.1151402068259906
+ 0.1151436910315619
+ 0.115147175297953
+ 0.11515065962516687
+ 0.1151541440132062
+ 0.11515762846207386
+ 0.11516111297177307
+ 0.1151645975423064
+ 0.11516808217367681
+ 0.11517156686588745
+ 0.11517505161894075
+ 0.1151785364328399
+ 0.11518202130758788
+ 0.11518550624318719
+ 0.11518899123964102
+ 0.11519247629695216
+ 0.11519596141512359
+ 0.11519944659415807
+ 0.11520293183405854
+ 0.11520641713482792
+ 0.11520990249646894
+ 0.11521338791898486
+ 0.11521687340237816
+ 0.11522035894665199
+ 0.11522384455180915
+ 0.11522733021785243
+ 0.11523081594478479
+ 0.11523430173260929
+ 0.11523778758132855
+ 0.11524127349094562
+ 0.11524475946146351
+ 0.11524824549288466
+ 0.11525173158521242
+ 0.11525521773844948
+ 0.11525870395259886
+ 0.11526219022766329
+ 0.11526567656364567
+ 0.11526916296054894
+ 0.1152726494183761
+ 0.11527613593712972
+ 0.11527962251681313
+ 0.11528310915742881
+ 0.11528659585898
+ 0.1152900826214695
+ 0.11529356944489993
+ 0.11529705632927437
+ 0.11530054327459592
+ 0.11530403028086715
+ 0.11530751734809107
+ 0.11531100447627055
+ 0.11531449166540861
+ 0.11531797891550798
+ 0.11532146622657155
+ 0.11532495359860237
+ 0.11532844103160324
+ 0.11533192852557703
+ 0.11533541608052662
+ 0.11533890369645494
+ 0.11534239137336488
+ 0.11534587911125929
+ 0.11534936691014119
+ 0.11535285477001338
+ 0.11535634269087876
+ 0.11535983067274025
+ 0.11536331871560049
+ 0.11536680681946285
+ 0.11537029498432991
+ 0.11537378321020471
+ 0.11537727149708998
+ 0.11538075984498852
+ 0.11538424825390352
+ 0.11538773672383784
+ 0.11539122525479424
+ 0.11539471384677574
+ 0.115398202499785
+ 0.11540169121382517
+ 0.11540517998889914
+ 0.11540866882500955
+ 0.11541215772215953
+ 0.11541564668035184
+ 0.11541913569958959
+ 0.11542262477987535
+ 0.1154261139212123
+ 0.11542960312360308
+ 0.11543309238705092
+ 0.11543658171155834
+ 0.11544007109712862
+ 0.11544356054376424
+ 0.11544705005146844
+ 0.11545053962024403
+ 0.11545402925009385
+ 0.1154575189410208
+ 0.11546100869302767
+ 0.11546449850611766
+ 0.11546798838029332
+ 0.11547147831555785
+ 0.11547496831191378
+ 0.11547845836936449
+ 0.11548194848791248
+ 0.11548543866756077
+ 0.11548892890831235
+ 0.11549241921017006
+ 0.11549590957313675
+ 0.11549939999721538
+ 0.11550289048240873
+ 0.11550638102871996
+ 0.11550987163615158
+ 0.1155133623047068
+ 0.11551685303438844
+ 0.11552034382519932
+ 0.11552383467714246
+ 0.11552732559022066
+ 0.11553081656443687
+ 0.11553430759979393
+ 0.11553779869629476
+ 0.11554128985394248
+ 0.11554478107273961
+ 0.11554827235268919
+ 0.11555176369379432
+ 0.11555525509605762
+ 0.11555874655948221
+ 0.11556223808407078
+ 0.11556572966982634
+ 0.11556922131675187
+ 0.1155727130248501
+ 0.11557620479412399
+ 0.11557969662457672
+ 0.11558318851621067
+ 0.11558668046902906
+ 0.11559017248303495
+ 0.11559366455823081
+ 0.1155971566946198
+ 0.11560064889220485
+ 0.11560414115098873
+ 0.11560763347097441
+ 0.1156111258521649
+ 0.11561461829456281
+ 0.11561811079817136
+ 0.11562160336299333
+ 0.11562509598903149
+ 0.11562858867628902
+ 0.11563208142476847
+ 0.11563557423447304
+ 0.11563906710540557
+ 0.11564256003756873
+ 0.11564605303096571
+ 0.11564954608559939
+ 0.11565303920147257
+ 0.115656532378588
+ 0.11566002561694902
+ 0.11566351891655803
+ 0.11566701227741838
+ 0.1156705056995327
+ 0.11567399918290394
+ 0.11567749272753514
+ 0.11568098633342895
+ 0.11568448000058838
+ 0.11568797372901653
+ 0.11569146751871602
+ 0.11569496136969001
+ 0.11569845528194107
+ 0.11570194925547242
+ 0.11570544329028684
+ 0.11570893738638735
+ 0.11571243154377661
+ 0.11571592576245765
+ 0.11571942004243334
+ 0.11572291438370684
+ 0.11572640878628072
+ 0.11572990325015804
+ 0.11573339777534158
+ 0.11573689236183456
+ 0.11574038700963953
+ 0.11574388171875957
+ 0.11574737648919754
+ 0.11575087132095628
+ 0.11575436621403891
+ 0.11575786116844805
+ 0.1157613561841869
+ 0.11576485126125813
+ 0.11576834639966475
+ 0.11577184159940976
+ 0.11577533686049586
+ 0.11577883218292612
+ 0.11578232756670326
+ 0.11578582301183037
+ 0.11578931851831036
+ 0.115792814086146
+ 0.11579630971534033
+ 0.11579980540589623
+ 0.11580330115781658
+ 0.11580679697110417
+ 0.11581029284576216
+ 0.11581378878179328
+ 0.11581728477920043
+ 0.11582078083798662
+ 0.11582427695815477
+ 0.11582777313970764
+ 0.11583126938264816
+ 0.11583476568697954
+ 0.11583826205270407
+ 0.11584175847982527
+ 0.11584525496834593
+ 0.11584875151826868
+ 0.11585224812959662
+ 0.11585574480233275
+ 0.11585924153647978
+ 0.11586273833204055
+ 0.11586623518901841
+ 0.11586973210741588
+ 0.11587322908723591
+ 0.11587672612848153
+ 0.11588022323115565
+ 0.115883720395261
+ 0.11588721762080065
+ 0.1158907149077775
+ 0.11589421225619449
+ 0.11589770966605446
+ 0.11590120713736034
+ 0.11590470467011492
+ 0.1159082022643214
+ 0.11591169991998244
+ 0.11591519763710104
+ 0.11591869541568006
+ 0.11592219325572246
+ 0.11592569115723107
+ 0.11592918912020911
+ 0.11593268714465917
+ 0.11593618523058422
+ 0.11593968337798714
+ 0.11594318158687084
+ 0.11594667985723847
+ 0.11595017818909271
+ 0.11595367658243655
+ 0.11595717503727281
+ 0.11596067355360463
+ 0.1159641721314347
+ 0.11596767077076592
+ 0.11597116947160145
+ 0.11597466823394385
+ 0.11597816705779633
+ 0.11598166594316174
+ 0.11598516489004294
+ 0.11598866389844274
+ 0.1159921629683643
+ 0.1159956620998103
+ 0.11599916129278373
+ 0.11600266054728767
+ 0.11600615986332476
+ 0.11600965924089812
+ 0.1160131586800105
+ 0.11601665818066501
+ 0.11602015774286445
+ 0.11602365736661162
+ 0.11602715705190973
+ 0.11603065679876134
+ 0.11603415660716983
+ 0.11603765647713754
+ 0.11604115640866786
+ 0.11604465640176349
+ 0.11604815645642731
+ 0.11605165657266227
+ 0.11605515675047144
+ 0.11605865698985751
+ 0.11606215729082364
+ 0.11606565765337251
+ 0.1160691580775072
+ 0.11607265856323044
+ 0.11607615911054543
+ 0.11607965971945487
+ 0.11608316038996161
+ 0.11608666112206892
+ 0.11609016191577924
+ 0.11609366277109587
+ 0.11609716368802149
+ 0.11610066466655937
+ 0.11610416570671196
+ 0.11610766680848236
+ 0.11611116797187361
+ 0.1161146691968884
+ 0.11611817048352997
+ 0.116121671831801
+ 0.11612517324170418
+ 0.1161286747132432
+ 0.11613217624642011
+ 0.11613567784123838
+ 0.11613917949770061
+ 0.11614268121581002
+ 0.11614618299556921
+ 0.11614968483698133
+ 0.11615318674004931
+ 0.11615668870477595
+ 0.1161601907311641
+ 0.11616369281921687
+ 0.11616719496893706
+ 0.11617069718032759
+ 0.11617419945339152
+ 0.11617770178813164
+ 0.1161812041845508
+ 0.11618470664265194
+ 0.11618820916243823
+ 0.11619171174391237
+ 0.11619521438707739
+ 0.11619871709193585
+ 0.11620221985849113
+ 0.11620572268674607
+ 0.11620922557670348
+ 0.11621272852836617
+ 0.11621623154173732
+ 0.11621973461681967
+ 0.11622323775361623
+ 0.1162267409521298
+ 0.11623024421236351
+ 0.11623374753432004
+ 0.11623725091800252
+ 0.11624075436341376
+ 0.11624425787055664
+ 0.11624776143943419
+ 0.11625126507004944
+ 0.11625476876240495
+ 0.11625827251650393
+ 0.11626177633234923
+ 0.11626528020994377
+ 0.11626878414929044
+ 0.11627228815039223
+ 0.11627579221325196
+ 0.11627929633787262
+ 0.1162828005242572
+ 0.11628630477240846
+ 0.11628980908232953
+ 0.11629331345402312
+ 0.1162968178874923
+ 0.11630032238273985
+ 0.11630382693976883
+ 0.11630733155858224
+ 0.11631083623918277
+ 0.11631434098157355
+ 0.11631784578575734
+ 0.11632135065173718
+ 0.11632485557951606
+ 0.11632836056909662
+ 0.11633186562048208
+ 0.11633537073367525
+ 0.11633887590867892
+ 0.11634238114549628
+ 0.11634588644413006
+ 0.11634939180458326
+ 0.11635289722685867
+ 0.11635640271095959
+ 0.11635990825688856
+ 0.11636341386464864
+ 0.11636691953424279
+ 0.11637042526567387
+ 0.11637393105894475
+ 0.11637743691405854
+ 0.11638094283101795
+ 0.11638444880982611
+ 0.11638795485048588
+ 0.11639146095300028
+ 0.11639496711737186
+ 0.11639847334360401
+ 0.11640197963169946
+ 0.11640548598166112
+ 0.11640899239349181
+ 0.11641249886719476
+ 0.11641600540277248
+ 0.11641951200022826
+ 0.11642301865956491
+ 0.11642652538078523
+ 0.11643003216389247
+ 0.11643353900888924
+ 0.11643704591577866
+ 0.11644055288456341
+ 0.11644405991524677
+ 0.11644756700783129
+ 0.11645107416232024
+ 0.11645458137871631
+ 0.1164580886570226
+ 0.11646159599724203
+ 0.1164651033993773
+ 0.11646861086343152
+ 0.11647211838940769
+ 0.11647562597730851
+ 0.11647913362713716
+ 0.11648264133889642
+ 0.11648614911258921
+ 0.11648965694821856
+ 0.11649316484578719
+ 0.11649667280529845
+ 0.11650018082675469
+ 0.11650368891015944
+ 0.11650719705551521
+ 0.11651070526282506
+ 0.11651421353209189
+ 0.11651772186331873
+ 0.11652123025650844
+ 0.11652473871166384
+ 0.11652824722878806
+ 0.11653175580788397
+ 0.11653526444895443
+ 0.11653877315200249
+ 0.11654228191703088
+ 0.11654579074404271
+ 0.11654929963304092
+ 0.11655280858402833
+ 0.11655631759700801
+ 0.11655982667198277
+ 0.11656333580895556
+ 0.11656684500792922
+ 0.11657035426890684
+ 0.11657386359189155
+ 0.11657737297688579
+ 0.11658088242389265
+ 0.11658439193291541
+ 0.11658790150395654
+ 0.11659141113701925
+ 0.11659492083210644
+ 0.11659843058922087
+ 0.11660194040836593
+ 0.11660545028954389
+ 0.11660896023275814
+ 0.11661247023801147
+ 0.11661598030530695
+ 0.11661949043464719
+ 0.11662300062603549
+ 0.11662651087947462
+ 0.11663002119496758
+ 0.11663353157251707
+ 0.11663704201212635
+ 0.11664055251379819
+ 0.11664406307753551
+ 0.11664757370334128
+ 0.11665108439121843
+ 0.11665459514117001
+ 0.11665810595319859
+ 0.11666161682730752
+ 0.11666512776349958
+ 0.11666863876177767
+ 0.11667214982214481
+ 0.11667566094460384
+ 0.1166791721291576
+ 0.11668268337580924
+ 0.11668619468456168
+ 0.11668970605541773
+ 0.11669321748838053
+ 0.11669672898345267
+ 0.11670024054063742
+ 0.11670375215993763
+ 0.11670726384135587
+ 0.11671077558489575
+ 0.1167142873905597
+ 0.11671779925835087
+ 0.11672131118827207
+ 0.11672482318032633
+ 0.11672833523451664
+ 0.11673184735084575
+ 0.1167353595293168
+ 0.11673887176993253
+ 0.11674238407269591
+ 0.11674589643761021
+ 0.11674940886467797
+ 0.11675292135390228
+ 0.11675643390528608
+ 0.11675994651883218
+ 0.11676345919454378
+ 0.11676697193242355
+ 0.11677048473247459
+ 0.11677399759469985
+ 0.11677751051910223
+ 0.11678102350568448
+ 0.11678453655444986
+ 0.11678804966540121
+ 0.11679156283854129
+ 0.11679507607387321
+ 0.11679858937139981
+ 0.11680210273112421
+ 0.11680561615304917
+ 0.11680912963717767
+ 0.1168126431835127
+ 0.11681615679205722
+ 0.11681967046281393
+ 0.11682318419578612
+ 0.11682669799097656
+ 0.11683021184838813
+ 0.11683372576802394
+ 0.11683723974988658
+ 0.11684075379397948
+ 0.11684426790030533
+ 0.11684778206886696
+ 0.11685129629966751
+ 0.11685481059270984
+ 0.11685832494799697
+ 0.11686183936553153
+ 0.11686535384531692
+ 0.11686886838735584
+ 0.1168723829916512
+ 0.11687589765820597
+ 0.11687941238702317
+ 0.11688292717810558
+ 0.11688644203145637
+ 0.11688995694707839
+ 0.11689347192497442
+ 0.11689698696514765
+ 0.11690050206760083
+ 0.11690401723233695
+ 0.11690753245935911
+ 0.11691104774867006
+ 0.11691456310027283
+ 0.11691807851417028
+ 0.1169215939903655
+ 0.11692510952886125
+ 0.11692862512966075
+ 0.11693214079276651
+ 0.11693565651818191
+ 0.11693917230590979
+ 0.11694268815595282
+ 0.11694620406831416
+ 0.11694972004299679
+ 0.11695323608000363
+ 0.1169567521793376
+ 0.11696026834100152
+ 0.11696378456499869
+ 0.11696730085133168
+ 0.11697081720000355
+ 0.11697433361101731
+ 0.11697785008437589
+ 0.11698136662008222
+ 0.11698488321813917
+ 0.11698839987854978
+ 0.11699191660131682
+ 0.11699543338644362
+ 0.11699895023393271
+ 0.11700246714378744
+ 0.11700598411601029
+ 0.11700950115060456
+ 0.11701301824757299
+ 0.11701653540691867
+ 0.1170200526286444
+ 0.11702356991275335
+ 0.11702708725924842
+ 0.11703060466813231
+ 0.11703412213940824
+ 0.11703763967307906
+ 0.11704115726914739
+ 0.11704467492761692
+ 0.1170481926484899
+ 0.11705171043176971
+ 0.11705522827745897
+ 0.11705874618556086
+ 0.11706226415607827
+ 0.11706578218901417
+ 0.11706930028437149
+ 0.11707281844215306
+ 0.11707633666236193
+ 0.11707985494500109
+ 0.11708337329007354
+ 0.11708689169758207
+ 0.11709041016752963
+ 0.11709392869991937
+ 0.1170974472947539
+ 0.11710096595203662
+ 0.11710448467176994
+ 0.11710800345395736
+ 0.1171115222986015
+ 0.11711504120570525
+ 0.11711856017527192
+ 0.11712207920730408
+ 0.11712559830180481
+ 0.11712911745877717
+ 0.11713263667822381
+ 0.11713615596014806
+ 0.11713967530455266
+ 0.11714319471144068
+ 0.1171467141808149
+ 0.11715023371267842
+ 0.11715375330703401
+ 0.11715727296388484
+ 0.11716079268323371
+ 0.11716431246508366
+ 0.11716783230943752
+ 0.11717135221629844
+ 0.11717487218566906
+ 0.11717839221755276
+ 0.11718191231195221
+ 0.11718543246887043
+ 0.11718895268831028
+ 0.11719247297027477
+ 0.11719599331476691
+ 0.11719951372178951
+ 0.11720303419134583
+ 0.11720655472343836
+ 0.11721007531807046
+ 0.11721359597524493
+ 0.11721711669496473
+ 0.11722063747723259
+ 0.11722415832205194
+ 0.11722767922942524
+ 0.1172312001993559
+ 0.11723472123184647
+ 0.11723824232690019
+ 0.1172417634845199
+ 0.11724528470470853
+ 0.11724880598746887
+ 0.11725232733280436
+ 0.11725584874071759
+ 0.11725937021121145
+ 0.117262891744289
+ 0.11726641333995334
+ 0.1172699349982073
+ 0.11727345671905391
+ 0.11727697850249588
+ 0.11728050034853633
+ 0.11728402225717842
+ 0.11728754422842469
+ 0.11729106626227837
+ 0.11729458835874247
+ 0.11729811051781969
+ 0.1173016327395132
+ 0.11730515502382595
+ 0.1173086773707607
+ 0.11731219978032058
+ 0.11731572225250844
+ 0.1173192447873274
+ 0.11732276738478023
+ 0.11732629004486986
+ 0.11732981276759974
+ 0.11733333555297205
+ 0.11733685840099026
+ 0.11734038131165719
+ 0.11734390428497589
+ 0.1173474273209491
+ 0.11735095041958009
+ 0.11735447358087159
+ 0.11735799680482632
+ 0.1173615200914478
+ 0.11736504344073866
+ 0.11736856685270192
+ 0.11737209032734054
+ 0.11737561386465743
+ 0.11737913746465564
+ 0.11738266112733797
+ 0.11738618485270758
+ 0.1173897086407672
+ 0.11739323249152005
+ 0.1173967564049689
+ 0.11740028038111675
+ 0.11740380441996644
+ 0.11740732852152132
+ 0.11741085268578381
+ 0.11741437691275729
+ 0.11741790120244457
+ 0.11742142555484857
+ 0.11742494996997231
+ 0.11742847444781887
+ 0.11743199898839086
+ 0.11743552359169154
+ 0.11743904825772383
+ 0.11744257298649061
+ 0.11744609777799485
+ 0.11744962263223947
+ 0.11745314754922755
+ 0.11745667252896197
+ 0.11746019757144575
+ 0.1174637226766817
+ 0.11746724784467297
+ 0.11747077307542252
+ 0.11747429836893319
+ 0.11747782372520793
+ 0.11748134914424979
+ 0.11748487462606153
+ 0.11748840017064648
+ 0.11749192577800729
+ 0.11749545144814721
+ 0.11749897718106889
+ 0.11750250297677539
+ 0.11750602883526974
+ 0.11750955475655478
+ 0.11751308074063373
+ 0.11751660678750921
+ 0.11752013289718446
+ 0.11752365906966229
+ 0.11752718530494585
+ 0.11753071160303773
+ 0.11753423796394132
+ 0.11753776438765921
+ 0.1175412908741946
+ 0.11754481742355039
+ 0.11754834403572968
+ 0.1175518707107351
+ 0.11755539744856991
+ 0.11755892424923682
+ 0.11756245111273914
+ 0.11756597803907952
+ 0.11756950502826118
+ 0.1175730320802869
+ 0.11757655919515957
+ 0.11758008637288234
+ 0.11758361361345832
+ 0.11758714091688995
+ 0.11759066828318061
+ 0.11759419571233326
+ 0.11759772320435065
+ 0.11760125075923589
+ 0.11760477837699213
+ 0.11760830605762199
+ 0.11761183380112834
+ 0.11761536160751455
+ 0.11761888947678342
+ 0.11762241740893796
+ 0.117625945403981
+ 0.11762947346191552
+ 0.1176330015827447
+ 0.11763652976647132
+ 0.11764005801309836
+ 0.11764358632262868
+ 0.1176471146950656
+ 0.1176506431304116
+ 0.11765417162867015
+ 0.11765770018984383
+ 0.11766122881393591
+ 0.11766475750094903
+ 0.11766828625088641
+ 0.11767181506375096
+ 0.11767534393954565
+ 0.11767887287827319
+ 0.11768240187993698
+ 0.11768593094453964
+ 0.11768946007208435
+ 0.11769298926257413
+ 0.11769651851601165
+ 0.11770004783240012
+ 0.11770357721174245
+ 0.11770710665404163
+ 0.11771063615930051
+ 0.11771416572752208
+ 0.11771769535870956
+ 0.11772122505286561
+ 0.11772475480999331
+ 0.11772828463009576
+ 0.11773181451317577
+ 0.1177353444592362
+ 0.11773887446828024
+ 0.11774240454031086
+ 0.11774593467533091
+ 0.1177494648733433
+ 0.11775299513435127
+ 0.11775652545835744
+ 0.11776005584536524
+ 0.11776358629537717
+ 0.11776711680839649
+ 0.11777064738442597
+ 0.11777417802346865
+ 0.11777770872552761
+ 0.11778123949060586
+ 0.11778477031870582
+ 0.11778830120983129
+ 0.11779183216398489
+ 0.11779536318116947
+ 0.11779889426138795
+ 0.11780242540464338
+ 0.11780595661093894
+ 0.11780948788027742
+ 0.11781301921266184
+ 0.11781655060809508
+ 0.1178200820665801
+ 0.11782361358812007
+ 0.11782714517271776
+ 0.11783067682037628
+ 0.11783420853109845
+ 0.11783774030488749
+ 0.11784127214174617
+ 0.11784480404167742
+ 0.11784833600468449
+ 0.11785186803077
+ 0.11785540011993705
+ 0.11785893227218873
+ 0.11786246448752791
+ 0.11786599676595755
+ 0.11786952910748071
+ 0.11787306151210043
+ 0.11787659397981935
+ 0.11788012651064075
+ 0.11788365910456756
+ 0.11788719176160259
+ 0.11789072448174898
+ 0.1178942572650097
+ 0.1178977901113878
+ 0.11790132302088596
+ 0.11790485599350733
+ 0.11790838902925489
+ 0.11791192212813179
+ 0.11791545529014059
+ 0.1179189885152845
+ 0.11792252180356655
+ 0.11792605515498965
+ 0.11792958856955692
+ 0.11793312204727098
+ 0.11793665558813517
+ 0.1179401891921522
+ 0.11794372285932526
+ 0.11794725658965721
+ 0.11795079038315109
+ 0.1179543242398097
+ 0.11795785815963618
+ 0.11796139214263353
+ 0.11796492618880459
+ 0.11796846029815254
+ 0.11797199447068007
+ 0.11797552870639048
+ 0.11797906300528659
+ 0.1179825973673712
+ 0.11798613179264753
+ 0.11798966628111859
+ 0.1179932008327871
+ 0.1179967354476564
+ 0.11800027012572901
+ 0.11800380486700823
+ 0.11800733967149707
+ 0.11801087453919835
+ 0.11801440947011492
+ 0.11801794446425004
+ 0.11802147952160656
+ 0.11802501464218759
+ 0.11802854982599599
+ 0.1180320850730347
+ 0.11803562038330664
+ 0.11803915575681513
+ 0.11804269119356277
+ 0.11804622669355275
+ 0.11804976225678776
+ 0.11805329788327115
+ 0.11805683357300582
+ 0.11806036932599465
+ 0.11806390514224055
+ 0.11806744102174677
+ 0.11807097696451595
+ 0.11807451297055133
+ 0.1180780490398556
+ 0.11808158517243221
+ 0.11808512136828368
+ 0.11808865762741319
+ 0.11809219394982387
+ 0.11809573033551829
+ 0.11809926678449982
+ 0.11810280329677136
+ 0.11810633987233575
+ 0.11810987651119602
+ 0.11811341321335518
+ 0.11811694997881619
+ 0.11812048680758215
+ 0.11812402369965587
+ 0.11812756065504038
+ 0.11813109767373867
+ 0.11813463475575385
+ 0.11813817190108857
+ 0.11814170910974628
+ 0.11814524638172968
+ 0.11814878371704166
+ 0.11815232111568534
+ 0.11815585857766378
+ 0.11815939610297987
+ 0.11816293369163643
+ 0.11816647134363679
+ 0.11817000905898363
+ 0.1181735468376801
+ 0.11817708467972918
+ 0.11818062258513354
+ 0.11818416055389667
+ 0.11818769858602135
+ 0.11819123668151038
+ 0.11819477484036688
+ 0.11819831306259407
+ 0.11820185134819443
+ 0.11820538969717138
+ 0.11820892810952779
+ 0.1182124665852666
+ 0.11821600512439061
+ 0.11821954372690298
+ 0.11822308239280692
+ 0.11822662112210498
+ 0.11823015991480043
+ 0.11823369877089621
+ 0.11823723769039531
+ 0.11824077667330067
+ 0.1182443157196152
+ 0.11824785482934207
+ 0.11825139400248416
+ 0.11825493323904446
+ 0.11825847253902588
+ 0.11826201190243148
+ 0.11826555132926445
+ 0.11826909081952736
+ 0.11827263037322344
+ 0.11827616999035574
+ 0.11827970967092701
+ 0.11828324941494066
+ 0.11828678922239912
+ 0.1182903290933057
+ 0.11829386902766341
+ 0.11829740902547517
+ 0.11830094908674386
+ 0.11830448921147264
+ 0.11830802939966448
+ 0.11831156965132217
+ 0.11831510996644894
+ 0.1183186503450476
+ 0.11832219078712128
+ 0.11832573129267296
+ 0.11832927186170557
+ 0.11833281249422201
+ 0.11833635319022535
+ 0.11833989394971857
+ 0.11834343477270479
+ 0.11834697565918674
+ 0.11835051660916764
+ 0.11835405762265029
+ 0.11835759869963798
+ 0.11836113984013337
+ 0.11836468104413947
+ 0.11836822231165946
+ 0.11837176364269623
+ 0.11837530503725284
+ 0.11837884649533217
+ 0.11838238801693723
+ 0.11838592960207101
+ 0.11838947125073662
+ 0.11839301296293689
+ 0.11839655473867487
+ 0.11840009657795354
+ 0.11840363848077597
+ 0.11840718044714506
+ 0.11841072247706386
+ 0.11841426457053532
+ 0.11841780672756237
+ 0.11842134894814811
+ 0.11842489123229541
+ 0.11842843358000744
+ 0.11843197599128708
+ 0.11843551846613727
+ 0.11843906100456124
+ 0.11844260360656161
+ 0.11844614627214156
+ 0.11844968900130416
+ 0.11845323179405227
+ 0.11845677465038887
+ 0.11846031757031722
+ 0.11846386055383998
+ 0.11846740360096025
+ 0.11847094671168111
+ 0.11847448988600551
+ 0.11847803312393627
+ 0.11848157642547674
+ 0.11848511979062971
+ 0.11848866321939801
+ 0.11849220671178486
+ 0.11849575026779313
+ 0.11849929388742587
+ 0.11850283757068619
+ 0.11850638131757676
+ 0.11850992512810093
+ 0.11851346900226156
+ 0.11851701294006145
+ 0.11852055694150397
+ 0.11852410100659164
+ 0.11852764513532803
+ 0.11853118932771557
+ 0.11853473358375768
+ 0.1185382779034571
+ 0.11854182228681692
+ 0.11854536673384021
+ 0.11854891124452974
+ 0.11855245581888876
+ 0.11855600045692023
+ 0.11855954515862678
+ 0.11856308992401186
+ 0.11856663475307823
+ 0.11857017964582908
+ 0.11857372460226707
+ 0.11857726962239568
+ 0.1185808147062174
+ 0.11858435985373547
+ 0.11858790506495291
+ 0.11859145033987263
+ 0.11859499567849774
+ 0.11859854108083115
+ 0.11860208654687583
+ 0.1186056320766348
+ 0.11860917767011098
+ 0.1186127233273076
+ 0.11861626904822743
+ 0.11861981483287354
+ 0.11862336068124918
+ 0.11862690659335681
+ 0.11863045256919989
+ 0.11863399860878114
+ 0.11863754471210375
+ 0.11864109087917056
+ 0.1186446371099848
+ 0.11864818340454913
+ 0.11865172976286682
+ 0.11865527618494061
+ 0.11865882267077399
+ 0.11866236922036921
+ 0.11866591583372994
+ 0.11866946251085893
+ 0.11867300925175904
+ 0.11867655605643357
+ 0.11868010292488523
+ 0.11868364985711725
+ 0.11868719685313232
+ 0.11869074391293384
+ 0.11869429103652454
+ 0.11869783822390755
+ 0.11870138547508578
+ 0.1187049327900622
+ 0.11870848016883984
+ 0.11871202761142162
+ 0.1187155751178109
+ 0.11871912268801024
+ 0.11872267032202295
+ 0.11872621801985184
+ 0.11872976578150005
+ 0.11873331360697034
+ 0.11873686149626597
+ 0.11874040944938986
+ 0.11874395746634492
+ 0.11874750554713433
+ 0.11875105369176084
+ 0.11875460190022774
+ 0.11875815017253777
+ 0.11876169850869413
+ 0.11876524690869975
+ 0.11876879537255759
+ 0.11877234390027075
+ 0.11877589249184209
+ 0.11877944114727469
+ 0.11878298986657143
+ 0.11878653864973557
+ 0.1187900874967701
+ 0.11879363640767768
+ 0.1187971853824616
+ 0.11880073442112475
+ 0.11880428352367019
+ 0.11880783269010096
+ 0.11881138192041991
+ 0.11881493121463024
+ 0.11881848057273472
+ 0.11882202999473666
+ 0.11882557948063875
+ 0.11882912903044424
+ 0.11883267864415588
+ 0.11883622832177686
+ 0.1188397780633102
+ 0.11884332786875888
+ 0.1188468777381257
+ 0.11885042767141413
+ 0.11885397766862664
+ 0.11885752772976653
+ 0.11886107785483668
+ 0.11886462804384014
+ 0.11886817829678008
+ 0.11887172861365924
+ 0.11887527899448078
+ 0.1188788294392477
+ 0.1188823799479629
+ 0.11888593052062947
+ 0.11888948115725056
+ 0.11889303185782893
+ 0.11889658262236757
+ 0.11890013345086961
+ 0.11890368434333809
+ 0.11890723529977588
+ 0.11891078632018616
+ 0.11891433740457191
+ 0.11891788855293596
+ 0.11892143976528152
+ 0.1189249910416114
+ 0.11892854238192858
+ 0.11893209378623637
+ 0.11893564525453755
+ 0.11893919678683514
+ 0.11894274838313219
+ 0.11894630004343176
+ 0.11894985176773683
+ 0.11895340355605029
+ 0.11895695540837528
+ 0.11896050732471472
+ 0.1189640593050717
+ 0.11896761134944914
+ 0.11897116345785015
+ 0.11897471563027753
+ 0.11897826786673453
+ 0.1189818201672241
+ 0.11898537253174916
+ 0.11898892496031274
+ 0.11899247745291798
+ 0.11899603000956761
+ 0.11899958263026497
+ 0.11900313531501291
+ 0.1190066880638144
+ 0.11901024087667249
+ 0.11901379375359032
+ 0.11901734669457065
+ 0.11902089969961652
+ 0.11902445276873122
+ 0.11902800590191739
+ 0.11903155909917836
+ 0.1190351123605167
+ 0.1190386656859361
+ 0.11904221907543894
+ 0.1190457725290287
+ 0.11904932604670786
+ 0.11905287962848003
+ 0.11905643327434778
+ 0.11905998698431426
+ 0.11906354075838255
+ 0.11906709459655558
+ 0.11907064849883638
+ 0.11907420246522789
+ 0.11907775649573325
+ 0.11908131059035536
+ 0.11908486474909742
+ 0.11908841897196225
+ 0.11909197325895284
+ 0.11909552761007215
+ 0.11909908202532354
+ 0.11910263650470984
+ 0.11910619104823389
+ 0.11910974565589873
+ 0.11911330032770774
+ 0.11911685506366351
+ 0.11912040986376914
+ 0.11912396472802787
+ 0.11912751965644255
+ 0.11913107464901608
+ 0.11913462970575167
+ 0.1191381848266521
+ 0.11914174001172068
+ 0.11914529526096036
+ 0.11914885057437413
+ 0.11915240595196473
+ 0.11915596139373529
+ 0.11915951689968919
+ 0.11916307246982909
+ 0.11916662810415808
+ 0.11917018380267909
+ 0.11917373956539541
+ 0.11917729539230976
+ 0.11918085128342527
+ 0.11918440723874496
+ 0.11918796325827186
+ 0.11919151934200885
+ 0.11919507548995925
+ 0.11919863170212565
+ 0.11920218797851148
+ 0.1192057443191195
+ 0.11920930072395269
+ 0.11921285719301429
+ 0.1192164137263072
+ 0.1192199703238345
+ 0.11922352698559903
+ 0.11922708371160383
+ 0.11923064050185204
+ 0.11923419735634667
+ 0.1192377542750907
+ 0.11924131125808711
+ 0.11924486830533899
+ 0.11924842541684935
+ 0.11925198259262107
+ 0.11925553983265742
+ 0.11925909713696102
+ 0.1192626545055354
+ 0.11926621193838313
+ 0.11926976943550753
+ 0.1192733269969114
+ 0.11927688462259783
+ 0.11928044231256996
+ 0.11928400006683065
+ 0.11928755788538289
+ 0.11929111576822993
+ 0.11929467371537447
+ 0.11929823172681979
+ 0.11930178980256892
+ 0.11930534794262448
+ 0.11930890614699004
+ 0.11931246441566826
+ 0.11931602274866231
+ 0.11931958114597516
+ 0.11932313960760975
+ 0.11932669813356907
+ 0.11933025672385647
+ 0.11933381537847458
+ 0.1193373740974266
+ 0.11934093288071553
+ 0.11934449172834445
+ 0.1193480506403162
+ 0.11935160961663403
+ 0.11935516865730074
+ 0.11935872776231952
+ 0.1193622869316934
+ 0.1193658461654252
+ 0.11936940546351812
+ 0.11937296482597516
+ 0.11937652425279928
+ 0.11938008374399342
+ 0.1193836432995608
+ 0.11938720291950436
+ 0.11939076260382692
+ 0.11939432235253197
+ 0.11939788216562201
+ 0.11940144204310049
+ 0.11940500198497012
+ 0.11940856199123406
+ 0.11941212206189535
+ 0.11941568219695688
+ 0.11941924239642182
+ 0.11942280266029322
+ 0.11942636298857395
+ 0.11942992338126709
+ 0.11943348383837568
+ 0.11943704435990272
+ 0.11944060494585131
+ 0.1194441655962243
+ 0.11944772631102488
+ 0.11945128709025597
+ 0.11945484793392069
+ 0.11945840884202201
+ 0.11946196981456306
+ 0.11946553085154663
+ 0.11946909195297582
+ 0.11947265311885365
+ 0.1194762143491834
+ 0.11947977564396772
+ 0.11948333700320983
+ 0.11948689842691285
+ 0.11949045991507949
+ 0.11949402146771314
+ 0.11949758308481655
+ 0.1195011447663929
+ 0.11950470651244501
+ 0.11950826832297617
+ 0.11951183019798928
+ 0.11951539213748741
+ 0.1195189541414734
+ 0.1195225162099505
+ 0.11952607834292174
+ 0.11952964054038999
+ 0.11953320280235828
+ 0.11953676512882981
+ 0.11954032751980731
+ 0.11954388997529421
+ 0.11954745249529315
+ 0.11955101507980749
+ 0.11955457772883979
+ 0.1195581404423936
+ 0.11956170322047156
+ 0.11956526606307705
+ 0.11956882897021266
+ 0.11957239194188181
+ 0.11957595497808747
+ 0.11957951807883248
+ 0.11958308124411998
+ 0.11958664447395288
+ 0.11959020776833426
+ 0.1195937711272675
+ 0.11959733455075491
+ 0.11960089803880014
+ 0.11960446159140588
+ 0.11960802520857541
+ 0.11961158889031151
+ 0.11961515263661741
+ 0.11961871644749592
+ 0.11962228032295037
+ 0.11962584426298349
+ 0.11962940826759855
+ 0.1196329723367983
+ 0.11963653647058591
+ 0.11964010066896456
+ 0.11964366493193705
+ 0.11964722925950658
+ 0.11965079365167612
+ 0.11965435810844866
+ 0.11965792262982715
+ 0.1196614872158147
+ 0.1196650518664145
+ 0.11966861658162924
+ 0.11967218136146236
+ 0.11967574620591666
+ 0.11967931111499512
+ 0.11968287608870083
+ 0.1196864411270368
+ 0.11969000623000606
+ 0.11969357139761173
+ 0.1196971366298567
+ 0.11970070192674422
+ 0.11970426728827709
+ 0.11970783271445838
+ 0.11971139820529129
+ 0.11971496376077863
+ 0.11971852938092359
+ 0.11972209506572916
+ 0.11972566081519813
+ 0.11972922662933394
+ 0.11973279250813934
+ 0.11973635845161751
+ 0.11973992445977147
+ 0.11974349053260418
+ 0.11974705667011869
+ 0.11975062287231793
+ 0.11975418913920517
+ 0.11975775547078328
+ 0.1197613218670554
+ 0.11976488832802447
+ 0.11976845485369333
+ 0.11977202144406533
+ 0.11977558809914364
+ 0.11977915481893069
+ 0.11978272160343004
+ 0.11978628845264458
+ 0.11978985536657728
+ 0.11979342234523116
+ 0.11979698938860939
+ 0.11980055649671476
+ 0.11980412366955069
+ 0.11980769090711978
+ 0.11981125820942543
+ 0.11981482557647039
+ 0.11981839300825782
+ 0.11982196050479098
+ 0.11982552806607243
+ 0.11982909569210538
+ 0.1198326633828931
+ 0.1198362311384384
+ 0.1198397989587444
+ 0.11984336684381419
+ 0.11984693479365056
+ 0.11985050280825674
+ 0.11985407088763568
+ 0.11985763903179047
+ 0.11986120724072426
+ 0.11986477551443994
+ 0.11986834385294051
+ 0.11987191225622905
+ 0.11987548072430859
+ 0.11987904925718229
+ 0.11988261785485319
+ 0.11988618651732394
+ 0.11988975524459788
+ 0.1198933240366781
+ 0.11989689289356766
+ 0.11990046181526946
+ 0.11990403080178644
+ 0.11990759985312194
+ 0.1199111689692787
+ 0.11991473815025991
+ 0.11991830739606858
+ 0.11992187670670781
+ 0.11992544608218045
+ 0.11992901552248972
+ 0.11993258502763864
+ 0.11993615459763017
+ 0.11993972423246736
+ 0.11994329393215321
+ 0.11994686369669097
+ 0.11995043352608327
+ 0.11995400342033365
+ 0.11995757337944486
+ 0.11996114340341996
+ 0.11996471349226205
+ 0.11996828364597406
+ 0.11997185386455914
+ 0.11997542414802025
+ 0.11997899449636035
+ 0.11998256490958274
+ 0.11998613538769021
+ 0.11998970593068597
+ 0.11999327653857307
+ 0.11999684721135438
+ 0.12000041794903291
+ 0.120003988751612
+ 0.12000755961909457
+ 0.12001113055148332
+ 0.12001470154878172
+ 0.12001827261099259
+ 0.12002184373811919
+ 0.12002541493016439
+ 0.12002898618713113
+ 0.1200325575090227
+ 0.12003612889584184
+ 0.12003970034759186
+ 0.12004327186427566
+ 0.12004684344589638
+ 0.12005041509245701
+ 0.12005398680396047
+ 0.12005755858041005
+ 0.12006113042180853
+ 0.12006470232815913
+ 0.12006827429946483
+ 0.12007184633572882
+ 0.12007541843695387
+ 0.12007899060314312
+ 0.12008256283429972
+ 0.12008613513042658
+ 0.12008970749152686
+ 0.12009327991760349
+ 0.12009685240865962
+ 0.1201004249646983
+ 0.12010399758572236
+ 0.12010757027173505
+ 0.1201111430227394
+ 0.12011471583873835
+ 0.12011828871973508
+ 0.12012186166573255
+ 0.12012543467673363
+ 0.1201290077527417
+ 0.12013258089375969
+ 0.12013615409979045
+ 0.12013972737083736
+ 0.12014330070690306
+ 0.12014687410799099
+ 0.12015044757410399
+ 0.12015402110524508
+ 0.12015759470141731
+ 0.12016116836262387
+ 0.1201647420888677
+ 0.12016831588015182
+ 0.1201718897364794
+ 0.12017546365785312
+ 0.12017903764427643
+ 0.1201826116957523
+ 0.12018618581228359
+ 0.12018975999387362
+ 0.12019333424052538
+ 0.12019690855224162
+ 0.12020048292902548
+ 0.12020405737088036
+ 0.12020763187780888
+ 0.12021120644981441
+ 0.1202147810868998
+ 0.12021835578906795
+ 0.1202219305563224
+ 0.12022550538866564
+ 0.12022908028610126
+ 0.12023265524863175
+ 0.12023623027626065
+ 0.12023980536899062
+ 0.12024338052682497
+ 0.12024695574976656
+ 0.12025053103781858
+ 0.12025410639098402
+ 0.12025768180926588
+ 0.12026125729266735
+ 0.12026483284119123
+ 0.12026840845484082
+ 0.12027198413361904
+ 0.1202755598775291
+ 0.12027913568657383
+ 0.12028271156075634
+ 0.12028628750007972
+ 0.120289863504547
+ 0.12029343957416132
+ 0.12029701570892561
+ 0.12030059190884278
+ 0.12030416817391626
+ 0.12030774450414872
+ 0.12031132089954354
+ 0.12031489736010349
+ 0.12031847388583167
+ 0.12032205047673146
+ 0.1203256271328053
+ 0.12032920385405679
+ 0.12033278064048879
+ 0.12033635749210422
+ 0.12033993440890621
+ 0.12034351139089798
+ 0.12034708843808231
+ 0.12035066555046255
+ 0.12035424272804132
+ 0.12035781997082218
+ 0.12036139727880789
+ 0.12036497465200145
+ 0.12036855209040605
+ 0.12037212959402477
+ 0.12037570716286049
+ 0.12037928479691641
+ 0.12038286249619543
+ 0.12038644026070078
+ 0.12039001809043541
+ 0.12039359598540249
+ 0.12039717394560487
+ 0.12040075197104566
+ 0.12040433006172806
+ 0.12040790821765501
+ 0.12041148643882955
+ 0.12041506472525476
+ 0.12041864307693369
+ 0.12042222149386943
+ 0.12042579997606495
+ 0.12042937852352327
+ 0.12043295713624759
+ 0.12043653581424094
+ 0.12044011455750626
+ 0.12044369336604667
+ 0.1204472722398654
+ 0.12045085117896513
+ 0.120454430183349
+ 0.12045800925302035
+ 0.12046158838798213
+ 0.12046516758823714
+ 0.12046874685378851
+ 0.1204723261846397
+ 0.12047590558079332
+ 0.12047948504225259
+ 0.12048306456902044
+ 0.12048664416110005
+ 0.12049022381849446
+ 0.1204938035412069
+ 0.12049738332924004
+ 0.12050096318259719
+ 0.12050454310128138
+ 0.12050812308529557
+ 0.12051170313464289
+ 0.12051528324932641
+ 0.12051886342934913
+ 0.12052244367471412
+ 0.12052602398542449
+ 0.12052960436148329
+ 0.12053318480289345
+ 0.12053676530965818
+ 0.12054034588178027
+ 0.1205439265192632
+ 0.1205475072221099
+ 0.12055108799032309
+ 0.12055466882390625
+ 0.12055824972286219
+ 0.12056183068719403
+ 0.12056541171690478
+ 0.12056899281199761
+ 0.12057257397247545
+ 0.12057615519834135
+ 0.12057973648959872
+ 0.12058331784625005
+ 0.12058689926829885
+ 0.12059048075574803
+ 0.12059406230860044
+ 0.12059764392685952
+ 0.12060122561052809
+ 0.1206048073596091
+ 0.12060838917410591
+ 0.12061197105402123
+ 0.12061555299935857
+ 0.12061913501012068
+ 0.12062271708631062
+ 0.12062629922793149
+ 0.1206298814349864
+ 0.12063346370747845
+ 0.12063704604541046
+ 0.1206406284487858
+ 0.12064421091760719
+ 0.12064779345187801
+ 0.12065137605160108
+ 0.12065495871677978
+ 0.12065854144741672
+ 0.12066212424351538
+ 0.12066570710507846
+ 0.12066929003210937
+ 0.1206728730246108
+ 0.12067645608258605
+ 0.12068003920603837
+ 0.12068362239497038
+ 0.12068720564938545
+ 0.12069078896928638
+ 0.12069437235467649
+ 0.12069795580555867
+ 0.12070153932193621
+ 0.12070512290381186
+ 0.12070870655118891
+ 0.12071229026407031
+ 0.12071587404245915
+ 0.12071945788635849
+ 0.12072304179577156
+ 0.12072662577070095
+ 0.1207302098111504
+ 0.12073379391712231
+ 0.12073737808862015
+ 0.12074096232564691
+ 0.12074454662820547
+ 0.12074813099629926
+ 0.12075171542993104
+ 0.12075529992910375
+ 0.12075888449382083
+ 0.12076246912408514
+ 0.12076605381989981
+ 0.1207696385812678
+ 0.12077322340819224
+ 0.12077680830067616
+ 0.12078039325872267
+ 0.12078397828233486
+ 0.12078756337151578
+ 0.12079114852626835
+ 0.12079473374659583
+ 0.12079831903250118
+ 0.12080190438398739
+ 0.12080548980105771
+ 0.12080907528371516
+ 0.12081266083196267
+ 0.1208162464458034
+ 0.1208198321252404
+ 0.12082341787027688
+ 0.12082700368091565
+ 0.12083058955715988
+ 0.12083417549901268
+ 0.12083776150647697
+ 0.12084134757955618
+ 0.1208449337182529
+ 0.12084851992257054
+ 0.1208521061925119
+ 0.12085569252808036
+ 0.12085927892927857
+ 0.12086286539611008
+ 0.12086645192857763
+ 0.12087003852668446
+ 0.12087362519043342
+ 0.12087721191982781
+ 0.12088079871487051
+ 0.12088438557556465
+ 0.12088797250191352
+ 0.12089155949391976
+ 0.12089514655158672
+ 0.12089873367491744
+ 0.12090232086391495
+ 0.12090590811858226
+ 0.12090949543892253
+ 0.12091308282493875
+ 0.12091667027663415
+ 0.12092025779401155
+ 0.12092384537707426
+ 0.12092743302582515
+ 0.1209310207402674
+ 0.12093460852040409
+ 0.12093819636623832
+ 0.12094178427777294
+ 0.12094537225501126
+ 0.12094896029795618
+ 0.12095254840661089
+ 0.12095613658097844
+ 0.12095972482106195
+ 0.12096331312686427
+ 0.12096690149838869
+ 0.12097048993563821
+ 0.1209740784386158
+ 0.12097766700732465
+ 0.12098125564176784
+ 0.12098484434194845
+ 0.12098843310786932
+ 0.12099202193953389
+ 0.12099561083694486
+ 0.12099919980010558
+ 0.12100278882901916
+ 0.12100637792368828
+ 0.12100996708411632
+ 0.12101355631030637
+ 0.12101714560226143
+ 0.12102073495998455
+ 0.12102432438347868
+ 0.12102791387274715
+ 0.12103150342779287
+ 0.12103509304861899
+ 0.12103868273522847
+ 0.12104227248762452
+ 0.12104586230581012
+ 0.12104945218978837
+ 0.12105304213956221
+ 0.12105663215513501
+ 0.12106022223650967
+ 0.12106381238368909
+ 0.12106740259667667
+ 0.12107099287547524
+ 0.12107458322008806
+ 0.12107817363051791
+ 0.12108176410676819
+ 0.12108535464884188
+ 0.1210889452567419
+ 0.12109253593047145
+ 0.12109612667003361
+ 0.12109971747543145
+ 0.12110330834666794
+ 0.12110689928374628
+ 0.12111049028666951
+ 0.12111408135544072
+ 0.1211176724900629
+ 0.12112126369053929
+ 0.12112485495687278
+ 0.12112844628906634
+ 0.12113203768712354
+ 0.12113562915104688
+ 0.12113922068083977
+ 0.12114281227650528
+ 0.12114640393804632
+ 0.12114999566546605
+ 0.12115358745876757
+ 0.12115717931795394
+ 0.12116077124302829
+ 0.12116436323399361
+ 0.12116795529085284
+ 0.12117154741360936
+ 0.12117513960226617
+ 0.12117873185682616
+ 0.12118232417729258
+ 0.12118591656366839
+ 0.12118950901595667
+ 0.12119310153416069
+ 0.12119669411828334
+ 0.12120028676832777
+ 0.12120387948429698
+ 0.12120747226619415
+ 0.12121106511402226
+ 0.12121465802778437
+ 0.12121825100748368
+ 0.12122184405312325
+ 0.12122543716470588
+ 0.12122903034223503
+ 0.12123262358571377
+ 0.1212362168951448
+ 0.12123981027053155
+ 0.12124340371187702
+ 0.12124699721918404
+ 0.12125059079245601
+ 0.12125418443169597
+ 0.12125777813690686
+ 0.12126137190809176
+ 0.12126496574525387
+ 0.12126855964839631
+ 0.12127215361752178
+ 0.12127574765263377
+ 0.12127934175373525
+ 0.1212829359208293
+ 0.12128653015391883
+ 0.1212901244530071
+ 0.1212937188180972
+ 0.12129731324919217
+ 0.1213009077462949
+ 0.1213045023094089
+ 0.12130809693853682
+ 0.12131169163368195
+ 0.12131528639484726
+ 0.12131888122203603
+ 0.12132247611525117
+ 0.12132607107449579
+ 0.12132966609977285
+ 0.12133326119108578
+ 0.1213368563484373
+ 0.12134045157183071
+ 0.12134404686126901
+ 0.12134764221675517
+ 0.12135123763829248
+ 0.12135483312588392
+ 0.12135842867953248
+ 0.12136202429924142
+ 0.12136561998501387
+ 0.12136921573685262
+ 0.12137281155476096
+ 0.12137640743874187
+ 0.12138000338879852
+ 0.12138359940493396
+ 0.12138719548715138
+ 0.12139079163545349
+ 0.12139438784984381
+ 0.12139798413032525
+ 0.12140158047690085
+ 0.12140517688957371
+ 0.12140877336834695
+ 0.12141236991322377
+ 0.12141596652420691
+ 0.12141956320129971
+ 0.12142315994450546
+ 0.12142675675382662
+ 0.12143035362926681
+ 0.12143395057082904
+ 0.12143754757851602
+ 0.12144114465233133
+ 0.12144474179227768
+ 0.12144833899835855
+ 0.12145193627057667
+ 0.12145553360893509
+ 0.12145913101343719
+ 0.12146272848408592
+ 0.12146632602088438
+ 0.12146992362383559
+ 0.12147352129294262
+ 0.1214771190282086
+ 0.12148071682963667
+ 0.12148431469722984
+ 0.12148791263099107
+ 0.12149151063092385
+ 0.12149510869703097
+ 0.12149870682931539
+ 0.12150230502778049
+ 0.12150590329242902
+ 0.12150950162326449
+ 0.12151310002028981
+ 0.12151669848350789
+ 0.12152029701292198
+ 0.12152389560853526
+ 0.12152749427035045
+ 0.12153109299837116
+ 0.1215346917926
+ 0.12153829065304031
+ 0.12154188957969518
+ 0.12154548857256738
+ 0.12154908763166045
+ 0.12155268675697728
+ 0.1215562859485209
+ 0.12155988520629453
+ 0.12156348453030105
+ 0.12156708392054384
+ 0.12157068337702578
+ 0.12157428289975002
+ 0.12157788248871945
+ 0.12158148214393751
+ 0.12158508186540712
+ 0.12158868165313126
+ 0.12159228150711313
+ 0.12159588142735599
+ 0.12159948141386255
+ 0.12160308146663625
+ 0.12160668158567994
+ 0.12161028177099682
+ 0.12161388202258995
+ 0.12161748234046241
+ 0.12162108272461727
+ 0.1216246831750576
+ 0.12162828369178666
+ 0.12163188427480749
+ 0.12163548492412286
+ 0.12163908563973631
+ 0.12164268642165074
+ 0.12164628726986908
+ 0.12164988818439475
+ 0.12165348916523056
+ 0.1216570902123796
+ 0.12166069132584524
+ 0.12166429250563031
+ 0.12166789375173803
+ 0.12167149506417141
+ 0.12167509644293358
+ 0.12167869788802743
+ 0.12168229939945648
+ 0.12168590097722357
+ 0.12168950262133157
+ 0.12169310433178408
+ 0.12169670610858394
+ 0.12170030795173413
+ 0.12170390986123775
+ 0.1217075118370981
+ 0.12171111387931803
+ 0.12171471598790083
+ 0.12171831816284957
+ 0.1217219204041671
+ 0.12172552271185684
+ 0.12172912508592165
+ 0.1217327275263647
+ 0.12173633003318908
+ 0.12173993260639805
+ 0.12174353524599439
+ 0.12174713795198144
+ 0.12175074072436214
+ 0.12175434356313962
+ 0.12175794646831722
+ 0.12176154943989757
+ 0.12176515247788414
+ 0.12176875558227983
+ 0.12177235875308762
+ 0.12177596199031104
+ 0.12177956529395285
+ 0.12178316866401616
+ 0.12178677210050422
+ 0.12179037560341989
+ 0.12179397917276652
+ 0.12179758280854701
+ 0.12180118651076459
+ 0.12180479027942219
+ 0.12180839411452316
+ 0.12181199801607029
+ 0.12181560198406681
+ 0.12181920601851602
+ 0.12182281011942066
+ 0.12182641428678402
+ 0.12183001852060911
+ 0.12183362282089923
+ 0.1218372271876572
+ 0.12184083162088627
+ 0.12184443612058973
+ 0.12184804068677012
+ 0.12185164531943107
+ 0.1218552500185755
+ 0.1218588547842064
+ 0.1218624596163268
+ 0.12186606451494017
+ 0.1218696694800494
+ 0.12187327451165751
+ 0.12187687960976755
+ 0.12188048477438289
+ 0.12188409000550646
+ 0.12188769530314121
+ 0.12189130066729043
+ 0.1218949060979572
+ 0.12189851159514478
+ 0.12190211715885574
+ 0.12190572278909383
+ 0.12190932848586154
+ 0.12191293424916248
+ 0.12191654007899945
+ 0.12192014597537569
+ 0.12192375193829412
+ 0.12192735796775804
+ 0.12193096406377039
+ 0.12193457022633436
+ 0.1219381764554531
+ 0.1219417827511295
+ 0.12194538911336707
+ 0.12194899554216845
+ 0.12195260203753702
+ 0.12195620859947565
+ 0.12195981522798771
+ 0.12196342192307591
+ 0.12196702868474385
+ 0.12197063551299445
+ 0.12197424240783056
+ 0.12197784936925561
+ 0.12198145639727238
+ 0.12198506349188426
+ 0.12198867065309411
+ 0.1219922778809053
+ 0.12199588517532078
+ 0.1219994925363436
+ 0.12200309996397694
+ 0.12200670745822387
+ 0.12201031501908749
+ 0.12201392264657099
+ 0.12201753034067728
+ 0.12202113810140958
+ 0.12202474592877104
+ 0.1220283538227647
+ 0.12203196178339368
+ 0.12203556981066101
+ 0.12203917790456989
+ 0.12204278606512335
+ 0.12204639429232453
+ 0.12205000258617667
+ 0.12205361094668248
+ 0.12205721937384537
+ 0.12206082786766845
+ 0.12206443642815476
+ 0.12206804505530737
+ 0.12207165374912943
+ 0.1220752625096241
+ 0.12207887133679425
+ 0.12208248023064319
+ 0.12208608919117396
+ 0.12208969821838975
+ 0.12209330731229354
+ 0.12209691647288852
+ 0.12210052570017771
+ 0.12210413499416439
+ 0.12210774435485142
+ 0.12211135378224199
+ 0.12211496327633931
+ 0.12211857283714635
+ 0.12212218246466629
+ 0.1221257921589023
+ 0.1221294019198573
+ 0.12213301174753451
+ 0.122136621641937
+ 0.12214023160306785
+ 0.12214384163093024
+ 0.12214745172552724
+ 0.12215106188686205
+ 0.12215467211493765
+ 0.12215828240975729
+ 0.12216189277132378
+ 0.12216550319964044
+ 0.12216911369471037
+ 0.12217272425653661
+ 0.12217633488512235
+ 0.12217994558047064
+ 0.12218355634258467
+ 0.12218716717146741
+ 0.12219077806712206
+ 0.12219438902955165
+ 0.12219800005875946
+ 0.1222016111547484
+ 0.12220522231752158
+ 0.12220883354708227
+ 0.12221244484343349
+ 0.1222160562065783
+ 0.12221966763651981
+ 0.12222327913326116
+ 0.12222689069680555
+ 0.12223050232715589
+ 0.1222341140243155
+ 0.12223772578828741
+ 0.12224133761907474
+ 0.1222449495166803
+ 0.12224856148110785
+ 0.12225217351235983
+ 0.1222557856104398
+ 0.12225939777535047
+ 0.12226301000709537
+ 0.12226662230567725
+ 0.1222702346710994
+ 0.12227384710336506
+ 0.12227745960247711
+ 0.12228107216843874
+ 0.12228468480125304
+ 0.12228829750092313
+ 0.12229191026745222
+ 0.12229552310084316
+ 0.1222991360010994
+ 0.12230274896822374
+ 0.12230636200221943
+ 0.12230997510308973
+ 0.1223135882708374
+ 0.12231720150546577
+ 0.12232081480697803
+ 0.1223244281753771
+ 0.12232804161066624
+ 0.12233165511284853
+ 0.12233526868192697
+ 0.12233888231790474
+ 0.12234249602078505
+ 0.12234610979057091
+ 0.12234972362726541
+ 0.12235333753087166
+ 0.12235695150139286
+ 0.12236056553883198
+ 0.12236417964319227
+ 0.12236779381447679
+ 0.12237140805268867
+ 0.12237502235783097
+ 0.12237863672990695
+ 0.12238225116891935
+ 0.12238586567487175
+ 0.12238948024776702
+ 0.12239309488760833
+ 0.12239670959439873
+ 0.12240032436814136
+ 0.12240393920883944
+ 0.12240755411649575
+ 0.12241116909111385
+ 0.12241478413269659
+ 0.12241839924124716
+ 0.12242201441676852
+ 0.12242562965926417
+ 0.12242924496873664
+ 0.12243286034518952
+ 0.12243647578862575
+ 0.12244009129904847
+ 0.12244370687646096
+ 0.12244732252086593
+ 0.12245093823226698
+ 0.12245455401066677
+ 0.12245816985606862
+ 0.12246178576847577
+ 0.12246540174789107
+ 0.12246901779431781
+ 0.1224726339077591
+ 0.12247625008821808
+ 0.12247986633569767
+ 0.1224834826502013
+ 0.12248709903173173
+ 0.12249071548029242
+ 0.12249433199588601
+ 0.12249794857851633
+ 0.12250156522818581
+ 0.12250518194489791
+ 0.12250879872865568
+ 0.12251241557946234
+ 0.12251603249732085
+ 0.1225196494822345
+ 0.12252326653420605
+ 0.12252688365323897
+ 0.12253050083933616
+ 0.12253411809250091
+ 0.12253773541273641
+ 0.12254135280004551
+ 0.12254497025443142
+ 0.12254858777589721
+ 0.12255220536444623
+ 0.12255582302008136
+ 0.12255944074280595
+ 0.12256305853262281
+ 0.12256667638953508
+ 0.1225702943135462
+ 0.12257391230465911
+ 0.12257753036287687
+ 0.12258114848820273
+ 0.12258476668063953
+ 0.12258838494019075
+ 0.12259200326685933
+ 0.12259562166064825
+ 0.12259924012156083
+ 0.12260285864960027
+ 0.12260647724476954
+ 0.1226100959070717
+ 0.12261371463650987
+ 0.12261733343308728
+ 0.12262095229680715
+ 0.12262457122767229
+ 0.12262819022568611
+ 0.12263180929085145
+ 0.12263542842317174
+ 0.12263904762265009
+ 0.1226426668892892
+ 0.12264628622309265
+ 0.12264990562406319
+ 0.12265352509220431
+ 0.12265714462751894
+ 0.12266076423001018
+ 0.12266438389968125
+ 0.122668003636535
+ 0.12267162344057493
+ 0.12267524331180406
+ 0.12267886325022527
+ 0.12268248325584194
+ 0.12268610332865708
+ 0.12268972346867371
+ 0.12269334367589511
+ 0.12269696395032438
+ 0.1227005842919648
+ 0.12270420470081912
+ 0.1227078251768908
+ 0.12271144572018275
+ 0.12271506633069816
+ 0.12271868700844017
+ 0.12272230775341195
+ 0.12272592856561643
+ 0.12272954944505683
+ 0.12273317039173649
+ 0.12273679140565823
+ 0.12274041248682541
+ 0.12274403363524099
+ 0.12274765485090801
+ 0.12275127613382975
+ 0.12275489748400949
+ 0.12275851890145
+ 0.12276214038615464
+ 0.12276576193812654
+ 0.12276938355736867
+ 0.12277300524388417
+ 0.1227766269976763
+ 0.12278024881874809
+ 0.1227838707071027
+ 0.12278749266274314
+ 0.12279111468567283
+ 0.12279473677589459
+ 0.12279835893341168
+ 0.12280198115822716
+ 0.12280560345034428
+ 0.12280922580976607
+ 0.1228128482364956
+ 0.12281647073053607
+ 0.12282009329189067
+ 0.1228237159205624
+ 0.12282733861655437
+ 0.1228309613798698
+ 0.1228345842105118
+ 0.12283820710848355
+ 0.12284183007378807
+ 0.12284545310642858
+ 0.12284907620640804
+ 0.1228526993737297
+ 0.12285632260839675
+ 0.12285994591041226
+ 0.12286356927977928
+ 0.12286719271650107
+ 0.12287081622058063
+ 0.12287443979202116
+ 0.12287806343082566
+ 0.12288168713699754
+ 0.12288531091053952
+ 0.12288893475145504
+ 0.12289255865974735
+ 0.12289618263541915
+ 0.12289980667847376
+ 0.12290343078891458
+ 0.12290705496674434
+ 0.12291067921196641
+ 0.1229143035245838
+ 0.12291792790459954
+ 0.12292155235201707
+ 0.12292517686683932
+ 0.12292880144906936
+ 0.12293242609871041
+ 0.12293605081576554
+ 0.12293967560023812
+ 0.12294330045213087
+ 0.12294692537144726
+ 0.1229505503581903
+ 0.12295417541236307
+ 0.12295780053396868
+ 0.12296142572301046
+ 0.12296505097949127
+ 0.12296867630341425
+ 0.12297230169478283
+ 0.12297592715359999
+ 0.12297955267986888
+ 0.12298317827359245
+ 0.12298680393477394
+ 0.12299042966341651
+ 0.12299405545952345
+ 0.12299768132309757
+ 0.12300130725414221
+ 0.12300493325266036
+ 0.1230085593186554
+ 0.12301218545213015
+ 0.12301581165308788
+ 0.12301943792153189
+ 0.123023064257465
+ 0.12302669066089045
+ 0.12303031713181163
+ 0.12303394367023132
+ 0.12303757027615282
+ 0.12304119694957917
+ 0.12304482369051359
+ 0.12304845049895918
+ 0.1230520773749192
+ 0.12305570431839653
+ 0.12305933132939453
+ 0.12306295840791623
+ 0.12306658555396453
+ 0.1230702127675431
+ 0.12307384004865463
+ 0.12307746739730238
+ 0.12308109481348958
+ 0.12308472229721923
+ 0.12308834984849448
+ 0.12309197746731863
+ 0.12309560515369455
+ 0.12309923290762562
+ 0.12310286072911472
+ 0.12310648861816516
+ 0.12311011657478013
+ 0.12311374459896259
+ 0.12311737269071585
+ 0.12312100085004288
+ 0.123124629076947
+ 0.12312825737143117
+ 0.12313188573349855
+ 0.12313551416315224
+ 0.12313914266039558
+ 0.12314277122523153
+ 0.12314639985766326
+ 0.12315002855769398
+ 0.12315365732532657
+ 0.12315728616056458
+ 0.12316091506341073
+ 0.12316454403386849
+ 0.12316817307194076
+ 0.12317180217763087
+ 0.12317543135094164
+ 0.12317906059187658
+ 0.12318268990043868
+ 0.12318631927663101
+ 0.12318994872045683
+ 0.12319357823191916
+ 0.12319720781102113
+ 0.12320083745776592
+ 0.12320446717215676
+ 0.1232080969541967
+ 0.12321172680388888
+ 0.12321535672123644
+ 0.12321898670624248
+ 0.12322261675891015
+ 0.12322624687924248
+ 0.12322987706724287
+ 0.12323350732291452
+ 0.12323713764626003
+ 0.12324076803728318
+ 0.12324439849598652
+ 0.12324802902237365
+ 0.12325165961644757
+ 0.12325529027821124
+ 0.12325892100766804
+ 0.12326255180482107
+ 0.12326618266967321
+ 0.12326981360222811
+ 0.12327344460248831
+ 0.12327707567045744
+ 0.12328070680613831
+ 0.12328433800953413
+ 0.12328796928064829
+ 0.12329160061948365
+ 0.12329523202604331
+ 0.12329886350033055
+ 0.12330249504234865
+ 0.12330612665210058
+ 0.1233097583295894
+ 0.12331339007481833
+ 0.12331702188779065
+ 0.12332065376850927
+ 0.12332428571697748
+ 0.12332791773319826
+ 0.12333154981717502
+ 0.12333518196891058
+ 0.12333881418840856
+ 0.12334244647567143
+ 0.12334607883070292
+ 0.1233497112535059
+ 0.12335334374408355
+ 0.12335697630243889
+ 0.12336060892857535
+ 0.1233642416224959
+ 0.12336787438420363
+ 0.12337150721370167
+ 0.12337514011099339
+ 0.12337877307608164
+ 0.12338240610896986
+ 0.1233860392096609
+ 0.12338967237815808
+ 0.12339330561446431
+ 0.12339693891858328
+ 0.12340057229051746
+ 0.12340420573027049
+ 0.12340783923784528
+ 0.12341147281324508
+ 0.12341510645647283
+ 0.12341874016753186
+ 0.1234223739464253
+ 0.12342600779315634
+ 0.12342964170772795
+ 0.12343327569014338
+ 0.12343690974040586
+ 0.12344054385851833
+ 0.12344417804448402
+ 0.12344781229830623
+ 0.12345144661998794
+ 0.1234550810095323
+ 0.12345871546694237
+ 0.12346234999222154
+ 0.12346598458537272
+ 0.12346961924639936
+ 0.12347325397530433
+ 0.1234768887720907
+ 0.12348052363676178
+ 0.12348415856932077
+ 0.12348779356977078
+ 0.12349142863811494
+ 0.12349506377435623
+ 0.12349869897849805
+ 0.12350233425054329
+ 0.1235059695904954
+ 0.12350960499835739
+ 0.12351324047413224
+ 0.12351687601782324
+ 0.12352051162943367
+ 0.12352414730896646
+ 0.12352778305642509
+ 0.12353141887181211
+ 0.12353505475513116
+ 0.12353869070638525
+ 0.12354232672557741
+ 0.12354596281271098
+ 0.12354959896778893
+ 0.12355323519081464
+ 0.12355687148179118
+ 0.12356050784072145
+ 0.12356414426760881
+ 0.12356778076245653
+ 0.12357141732526734
+ 0.12357505395604491
+ 0.12357869065479189
+ 0.12358232742151198
+ 0.12358596425620771
+ 0.12358960115888271
+ 0.12359323812953998
+ 0.12359687516818262
+ 0.12360051227481382
+ 0.12360414944943668
+ 0.12360778669205436
+ 0.12361142400266993
+ 0.12361506138128686
+ 0.12361869882790801
+ 0.1236223363425366
+ 0.12362597392517571
+ 0.12362961157582864
+ 0.12363324929449845
+ 0.12363688708118825
+ 0.12364052493590118
+ 0.12364416285864062
+ 0.12364780084940952
+ 0.12365143890821104
+ 0.12365507703504831
+ 0.12365871522992451
+ 0.12366235349284273
+ 0.12366599182380633
+ 0.12366963022281836
+ 0.12367326868988188
+ 0.12367690722500008
+ 0.12368054582817603
+ 0.12368418449941312
+ 0.12368782323871436
+ 0.12369146204608274
+ 0.12369510092152176
+ 0.12369873986503432
+ 0.12370237887662359
+ 0.12370601795629287
+ 0.12370965710404516
+ 0.12371329631988363
+ 0.12371693560381139
+ 0.12372057495583175
+ 0.1237242143759478
+ 0.12372785386416271
+ 0.12373149342047951
+ 0.12373513304490147
+ 0.12373877273743178
+ 0.12374241249807359
+ 0.12374605232682971
+ 0.12374969222370372
+ 0.12375333218869869
+ 0.1237569722218177
+ 0.12376061232306393
+ 0.12376425249244033
+ 0.12376789272995042
+ 0.12377153303559714
+ 0.12377517340938358
+ 0.12377881385131304
+ 0.12378245436138859
+ 0.1237860949396135
+ 0.12378973558599092
+ 0.12379337630052391
+ 0.12379701708321542
+ 0.12380065793406905
+ 0.12380429885308751
+ 0.12380793984027436
+ 0.12381158089563254
+ 0.12381522201916535
+ 0.12381886321087572
+ 0.1238225044707668
+ 0.12382614579884192
+ 0.12382978719510433
+ 0.1238334286595569
+ 0.12383707019220314
+ 0.12384071179304572
+ 0.12384435346208826
+ 0.12384799519933358
+ 0.12385163700478503
+ 0.12385527887844575
+ 0.12385892082031881
+ 0.12386256283040741
+ 0.12386620490871474
+ 0.12386984705524394
+ 0.12387348926999804
+ 0.12387713155298052
+ 0.12388077390419427
+ 0.12388441632364242
+ 0.12388805881132824
+ 0.1238917013672549
+ 0.12389534399142557
+ 0.12389898668384328
+ 0.12390262944451134
+ 0.12390627227343283
+ 0.1239099151706108
+ 0.12391355813604864
+ 0.12391720116974934
+ 0.12392084427171618
+ 0.12392448744195204
+ 0.12392813068046052
+ 0.12393177398724445
+ 0.12393541736230709
+ 0.12393906080565151
+ 0.12394270431728106
+ 0.12394634789719879
+ 0.1239499915454078
+ 0.12395363526191137
+ 0.12395727904671257
+ 0.12396092289981461
+ 0.12396456682122071
+ 0.1239682108109337
+ 0.12397185486895722
+ 0.12397549899529396
+ 0.12397914318994754
+ 0.12398278745292082
+ 0.12398643178421709
+ 0.12399007618383941
+ 0.123993720651791
+ 0.1239973651880749
+ 0.1240010097926947
+ 0.12400465446565287
+ 0.12400829920695318
+ 0.1240119440165984
+ 0.12401558889459197
+ 0.12401923384093684
+ 0.12402287885563637
+ 0.12402652393869348
+ 0.12403016909011159
+ 0.12403381430989374
+ 0.12403745959804287
+ 0.12404110495456255
+ 0.1240447503794557
+ 0.12404839587272555
+ 0.12405204143437522
+ 0.12405568706440792
+ 0.12405933276282673
+ 0.12406297852963487
+ 0.12406662436483561
+ 0.1240702702684318
+ 0.12407391624042705
+ 0.12407756228082423
+ 0.1240812083896265
+ 0.12408485456683717
+ 0.1240885008124591
+ 0.12409214712649587
+ 0.12409579350895045
+ 0.12409943995982581
+ 0.12410308647912546
+ 0.12410673306685237
+ 0.12411037972300978
+ 0.12411402644760063
+ 0.12411767324062843
+ 0.1241213201020961
+ 0.12412496703200675
+ 0.12412861403036399
+ 0.12413226109717058
+ 0.12413590823242966
+ 0.12413955543614461
+ 0.12414320270831843
+ 0.12414685004895434
+ 0.12415049745805551
+ 0.12415414493562522
+ 0.12415779248166654
+ 0.12416144009618259
+ 0.12416508777917643
+ 0.1241687355306515
+ 0.12417238335061082
+ 0.12417603123905757
+ 0.12417967919599499
+ 0.1241833272214259
+ 0.124186975315354
+ 0.12419062347778212
+ 0.1241942717087135
+ 0.1241979200081513
+ 0.12420156837609866
+ 0.12420521681255894
+ 0.12420886531753497
+ 0.12421251389103018
+ 0.12421616253304764
+ 0.12421981124359041
+ 0.12422346002266188
+ 0.12422710887026515
+ 0.12423075778640341
+ 0.12423440677107961
+ 0.12423805582429705
+ 0.12424170494605903
+ 0.12424535413636863
+ 0.1242490033952289
+ 0.12425265272264327
+ 0.12425630211861456
+ 0.12425995158314634
+ 0.12426360111624134
+ 0.12426725071790311
+ 0.12427090038813464
+ 0.12427455012693905
+ 0.1242781999343197
+ 0.12428184981027951
+ 0.12428549975482189
+ 0.12428914976794976
+ 0.12429279984966644
+ 0.12429644999997519
+ 0.12430010021887915
+ 0.12430375050638123
+ 0.12430740086248503
+ 0.12431105128719326
+ 0.12431470178050935
+ 0.12431835234243641
+ 0.12432200297297775
+ 0.12432565367213627
+ 0.12432930443991538
+ 0.1243329552763182
+ 0.12433660618134773
+ 0.12434025715500743
+ 0.1243439081973001
+ 0.1243475593082293
+ 0.12435121048779806
+ 0.12435486173600933
+ 0.12435851305286653
+ 0.12436216443837293
+ 0.12436581589253141
+ 0.12436946741534521
+ 0.12437311900681768
+ 0.12437677066695182
+ 0.12438042239575096
+ 0.12438407419321817
+ 0.12438772605935634
+ 0.12439137799416933
+ 0.12439502999765972
+ 0.12439868206983079
+ 0.12440233421068589
+ 0.12440598642022799
+ 0.1244096386984606
+ 0.12441329104538645
+ 0.12441694346100907
+ 0.12442059594533127
+ 0.12442424849835661
+ 0.12442790112008825
+ 0.12443155381052892
+ 0.1244352065696822
+ 0.12443885939755112
+ 0.12444251229413897
+ 0.12444616525944878
+ 0.12444981829348377
+ 0.12445347139624707
+ 0.12445712456774211
+ 0.12446077780797164
+ 0.12446443111693924
+ 0.1244680844946478
+ 0.12447173794110064
+ 0.12447539145630089
+ 0.12447904504025167
+ 0.12448269869295621
+ 0.12448635241441773
+ 0.12449000620463932
+ 0.12449366006362418
+ 0.12449731399137576
+ 0.12450096798789669
+ 0.12450462205319057
+ 0.12450827618726049
+ 0.12451193039010942
+ 0.12451558466174073
+ 0.12451923900215764
+ 0.12452289341136318
+ 0.12452654788936054
+ 0.12453020243615313
+ 0.12453385705174375
+ 0.12453751173613598
+ 0.12454116648933267
+ 0.12454482131133711
+ 0.12454847620215255
+ 0.12455213116178204
+ 0.12455578619022878
+ 0.12455944128749623
+ 0.12456309645358707
+ 0.12456675168850478
+ 0.1245704069922524
+ 0.1245740623648334
+ 0.12457771780625065
+ 0.12458137331650745
+ 0.12458502889560699
+ 0.12458868454355239
+ 0.12459234026034686
+ 0.12459599604599357
+ 0.12459965190049586
+ 0.12460330782385652
+ 0.12460696381607909
+ 0.12461061987716657
+ 0.12461427600712224
+ 0.12461793220594923
+ 0.12462158847365067
+ 0.12462524481022969
+ 0.12462890121568976
+ 0.12463255769003379
+ 0.12463621423326507
+ 0.12463987084538668
+ 0.12464352752640194
+ 0.12464718427631397
+ 0.12465084109512591
+ 0.12465449798284103
+ 0.12465815493946231
+ 0.12466181196499329
+ 0.12466546905943669
+ 0.12466912622279605
+ 0.12467278345507432
+ 0.12467644075627499
+ 0.12468009812640091
+ 0.12468375556545559
+ 0.12468741307344171
+ 0.12469107065036297
+ 0.12469472829622219
+ 0.12469838601102291
+ 0.12470204379476792
+ 0.1247057016474606
+ 0.12470935956910426
+ 0.12471301755970171
+ 0.12471667561925648
+ 0.12472033374777164
+ 0.12472399194525044
+ 0.12472765021169592
+ 0.12473130854711138
+ 0.12473496695149978
+ 0.12473862542486465
+ 0.12474228396720893
+ 0.12474594257853582
+ 0.12474960125884874
+ 0.1247532600081504
+ 0.1247569188264445
+ 0.12476057771373403
+ 0.12476423667002204
+ 0.12476789569531165
+ 0.12477155478960646
+ 0.1247752139529093
+ 0.12477887318522339
+ 0.12478253248655218
+ 0.12478619185689849
+ 0.12478985129626576
+ 0.124793510804657
+ 0.12479717038207563
+ 0.12480083002852439
+ 0.12480448974400687
+ 0.12480814952852622
+ 0.12481180938208553
+ 0.12481546930468787
+ 0.12481912929633664
+ 0.12482278935703504
+ 0.12482644948678598
+ 0.12483010968559305
+ 0.12483376995345905
+ 0.12483743029038744
+ 0.12484109069638115
+ 0.12484475117144352
+ 0.12484841171557765
+ 0.12485207232878705
+ 0.12485573301107436
+ 0.12485939376244327
+ 0.12486305458289673
+ 0.12486671547243788
+ 0.12487037643106996
+ 0.1248740374587963
+ 0.12487769855561975
+ 0.12488135972154391
+ 0.12488502095657165
+ 0.12488868226070637
+ 0.12489234363395102
+ 0.12489600507630912
+ 0.12489966658778361
+ 0.12490332816837758
+ 0.1249069898180945
+ 0.12491065153693748
+ 0.1249143133249096
+ 0.124917975182014
+ 0.12492163710825413
+ 0.12492529910363299
+ 0.12492896116815373
+ 0.12493262330181966
+ 0.12493628550463388
+ 0.12493994777659968
+ 0.12494361011772015
+ 0.12494727252799855
+ 0.12495093500743799
+ 0.12495459755604178
+ 0.12495826017381281
+ 0.12496192286075471
+ 0.12496558561687042
+ 0.12496924844216313
+ 0.12497291133663602
+ 0.12497657430029233
+ 0.1249802373331354
+ 0.12498390043516805
+ 0.12498756360639378
+ 0.12499122684681556
+ 0.12499489015643687
+ 0.12499855353526068
+ 0.12500221698329023
+ 0.12500588050052869
+ 0.1250095440869792
+ 0.12501320774264524
+ 0.12501687146752963
+ 0.1250205352616357
+ 0.12502419912496676
+ 0.12502786305752589
+ 0.12503152705931608
+ 0.12503519113034103
+ 0.12503885527060352
+ 0.12504251948010681
+ 0.1250461837588541
+ 0.1250498481068488
+ 0.12505351252409372
+ 0.12505717701059238
+ 0.12506084156634772
+ 0.12506450619136322
+ 0.1250681708856419
+ 0.12507183564918689
+ 0.12507550048200144
+ 0.12507916538408884
+ 0.1250828303554522
+ 0.12508649539609468
+ 0.12509016050601937
+ 0.12509382568522981
+ 0.12509749093372882
+ 0.12510115625151996
+ 0.12510482163860601
+ 0.12510848709499067
+ 0.12511215262067657
+ 0.12511581821566731
+ 0.12511948387996591
+ 0.12512314961357562
+ 0.12512681541649945
+ 0.12513048128874102
+ 0.12513414723030311
+ 0.12513781324118919
+ 0.12514147932140224
+ 0.12514514547094555
+ 0.12514881168982245
+ 0.12515247797803583
+ 0.12515614433558911
+ 0.12515981076248545
+ 0.12516347725872801
+ 0.12516714382432004
+ 0.12517081045926462
+ 0.1251744771635652
+ 0.12517814393722457
+ 0.12518181078024626
+ 0.12518547769263347
+ 0.1251891446743891
+ 0.12519281172551655
+ 0.12519647884601906
+ 0.12520014603589985
+ 0.12520381329516189
+ 0.12520748062380868
+ 0.1252111480218431
+ 0.12521481548926863
+ 0.12521848302608823
+ 0.12522215063230535
+ 0.12522581830792293
+ 0.12522948605294432
+ 0.12523315386737263
+ 0.12523682175121109
+ 0.12524048970446311
+ 0.12524415772713157
+ 0.12524782581921967
+ 0.12525149398073088
+ 0.1252551622116683
+ 0.12525883051203493
+ 0.12526249888183413
+ 0.12526616732106918
+ 0.12526983582974299
+ 0.12527350440785928
+ 0.12527717305542058
+ 0.12528084177243062
+ 0.12528451055889234
+ 0.12528817941480905
+ 0.12529184834018398
+ 0.12529551733502006
+ 0.12529918639932078
+ 0.12530285553308915
+ 0.1253065247363285
+ 0.12531019400904211
+ 0.12531386335123298
+ 0.12531753276290447
+ 0.12532120224405968
+ 0.12532487179470178
+ 0.12532854141483399
+ 0.12533221110445972
+ 0.12533588086358166
+ 0.12533955069220368
+ 0.12534322059032846
+ 0.12534689055795936
+ 0.12535056059509977
+ 0.12535423070175261
+ 0.12535790087792112
+ 0.12536157112360891
+ 0.12536524143881847
+ 0.12536891182355361
+ 0.1253725822778172
+ 0.1253762528016126
+ 0.12537992339494294
+ 0.12538359405781155
+ 0.12538726479022133
+ 0.12539093559217579
+ 0.125394606463678
+ 0.1253982774047312
+ 0.12540194841533847
+ 0.12540561949550325
+ 0.12540929064522857
+ 0.12541296186451756
+ 0.12541663315337365
+ 0.12542030451179995
+ 0.12542397593979956
+ 0.12542764743737572
+ 0.12543131900453167
+ 0.12543499064127067
+ 0.1254386623475959
+ 0.12544233412351055
+ 0.12544600596901784
+ 0.12544967788412095
+ 0.12545334986882295
+ 0.12545702192312719
+ 0.12546069404703697
+ 0.1254643662405554
+ 0.12546803850368551
+ 0.12547171083643069
+ 0.12547538323879417
+ 0.12547905571077902
+ 0.12548272825238863
+ 0.12548640086362617
+ 0.12549007354449451
+ 0.12549374629499727
+ 0.12549741911513757
+ 0.12550109200491832
+ 0.1255047649643431
+ 0.12550843799341491
+ 0.12551211109213725
+ 0.12551578426051282
+ 0.12551945749854532
+ 0.12552313080623759
+ 0.12552680418359297
+ 0.12553047763061478
+ 0.12553415114730604
+ 0.12553782473367012
+ 0.12554149838971013
+ 0.12554517211542909
+ 0.12554884591083063
+ 0.12555251977591755
+ 0.12555619371069346
+ 0.12555986771516128
+ 0.12556354178932413
+ 0.12556721593318559
+ 0.1255708901467486
+ 0.12557456443001633
+ 0.12557823878299215
+ 0.12558191320567916
+ 0.12558558769808065
+ 0.12558926226019976
+ 0.12559293689203976
+ 0.1255966115936038
+ 0.12560028636489504
+ 0.12560396120591671
+ 0.12560763611667222
+ 0.12561131109716445
+ 0.12561498614739705
+ 0.12561866126737273
+ 0.12562233645709503
+ 0.12562601171656698
+ 0.12562968704579189
+ 0.12563336244477288
+ 0.12563703791351341
+ 0.12564071345201633
+ 0.12564438906028516
+ 0.12564806473832291
+ 0.12565174048613284
+ 0.12565541630371824
+ 0.12565909219108209
+ 0.12566276814822785
+ 0.12566644417515879
+ 0.12567012027187774
+ 0.12567379643838836
+ 0.12567747267469354
+ 0.12568114898079652
+ 0.12568482535670064
+ 0.12568850180240915
+ 0.12569217831792509
+ 0.12569585490325183
+ 0.12569953155839239
+ 0.12570320828335005
+ 0.12570688507812822
+ 0.12571056194272995
+ 0.12571423887715838
+ 0.1257179158814169
+ 0.12572159295550847
+ 0.12572527009943654
+ 0.12572894731320425
+ 0.12573262459681478
+ 0.12573630195027141
+ 0.12573997937357728
+ 0.12574365686673553
+ 0.12574733442974947
+ 0.12575101206262249
+ 0.12575468976535742
+ 0.12575836753795774
+ 0.12576204538042671
+ 0.12576572329276733
+ 0.12576940127498298
+ 0.12577307932707668
+ 0.12577675744905198
+ 0.12578043564091165
+ 0.12578411390265931
+ 0.12578779223429809
+ 0.12579147063583088
+ 0.12579514910726125
+ 0.12579882764859229
+ 0.12580250625982714
+ 0.12580618494096923
+ 0.12580986369202149
+ 0.12581354251298751
+ 0.12581722140387006
+ 0.12582090036467267
+ 0.12582457939539846
+ 0.12582825849605084
+ 0.12583193766663245
+ 0.12583561690714712
+ 0.12583929621759771
+ 0.12584297559798768
+ 0.12584665504832002
+ 0.1258503345685982
+ 0.12585401415882505
+ 0.12585769381900413
+ 0.12586137354913857
+ 0.12586505334923162
+ 0.12586873321928635
+ 0.12587241315930614
+ 0.1258760931692941
+ 0.1258797732492534
+ 0.12588345339918752
+ 0.12588713361909926
+ 0.12589081390899209
+ 0.12589449426886934
+ 0.12589817469873396
+ 0.12590185519858949
+ 0.12590553576843877
+ 0.12590921640828534
+ 0.12591289711813217
+ 0.12591657789798255
+ 0.12592025874783988
+ 0.12592393966770718
+ 0.1259276206575877
+ 0.12593130171748468
+ 0.1259349828474014
+ 0.12593866404734103
+ 0.12594234531730669
+ 0.1259460266573017
+ 0.12594970806732927
+ 0.12595338954739266
+ 0.12595707109749496
+ 0.12596075271763946
+ 0.12596443440782956
+ 0.12596811616806816
+ 0.1259717979983587
+ 0.12597547989870422
+ 0.12597916186910812
+ 0.12598284390957351
+ 0.12598652602010371
+ 0.12599020820070178
+ 0.1259938904513711
+ 0.12599757277211474
+ 0.1260012551629362
+ 0.12600493762383838
+ 0.1260086201548247
+ 0.12601230275589814
+ 0.12601598542706222
+ 0.12601966816832005
+ 0.12602335097967476
+ 0.12602703386112959
+ 0.12603071681268796
+ 0.1260343998343528
+ 0.12603808292612756
+ 0.12604176608801534
+ 0.12604544932001935
+ 0.12604913262214298
+ 0.12605281599438931
+ 0.1260564994367615
+ 0.12606018294926288
+ 0.12606386653189658
+ 0.12606755018466606
+ 0.12607123390757424
+ 0.12607491770062454
+ 0.12607860156382003
+ 0.1260822854971641
+ 0.12608596950065981
+ 0.12608965357431048
+ 0.12609333771811945
+ 0.12609702193208971
+ 0.12610070621622449
+ 0.12610439057052719
+ 0.12610807499500096
+ 0.12611175948964903
+ 0.12611544405447458
+ 0.12611912868948078
+ 0.12612281339467105
+ 0.12612649817004845
+ 0.12613018301561629
+ 0.12613386793137765
+ 0.126137552917336
+ 0.12614123797349427
+ 0.12614492309985595
+ 0.12614860829642408
+ 0.12615229356320204
+ 0.12615597890019292
+ 0.12615966430739997
+ 0.12616334978482649
+ 0.12616703533247556
+ 0.12617072095035067
+ 0.12617440663845475
+ 0.12617809239679104
+ 0.12618177822536317
+ 0.12618546412417392
+ 0.1261891500932267
+ 0.12619283613252474
+ 0.12619652224207104
+ 0.1262002084218693
+ 0.12620389467192225
+ 0.1262075809922332
+ 0.1262112673828058
+ 0.12621495384364287
+ 0.12621864037474773
+ 0.12622232697612365
+ 0.1262260136477738
+ 0.12622970038970147
+ 0.12623338720190996
+ 0.12623707408440227
+ 0.12624076103718171
+ 0.12624444806025156
+ 0.12624813515361519
+ 0.12625182231727544
+ 0.12625550955123588
+ 0.12625919685549974
+ 0.12626288423007004
+ 0.12626657167495003
+ 0.12627025919014301
+ 0.1262739467756524
+ 0.12627763443148113
+ 0.12628132215763255
+ 0.12628500995410971
+ 0.1262886978209162
+ 0.1262923857580549
+ 0.12629607376552943
+ 0.12629976184334257
+ 0.12630344999149778
+ 0.1263071382099985
+ 0.12631082649884748
+ 0.12631451485804823
+ 0.1263182032876041
+ 0.12632189178751799
+ 0.1263255803577932
+ 0.12632926899843322
+ 0.1263329577094412
+ 0.12633664649082024
+ 0.12634033534257361
+ 0.12634402426470451
+ 0.12634771325721639
+ 0.12635140232011219
+ 0.12635509145339519
+ 0.12635878065706879
+ 0.12636246993113606
+ 0.12636615927560035
+ 0.12636984869046491
+ 0.12637353817573263
+ 0.12637722773140711
+ 0.12638091735749152
+ 0.12638460705398907
+ 0.12638829682090302
+ 0.12639198665823642
+ 0.12639567656599277
+ 0.12639936654417497
+ 0.12640305659278658
+ 0.12640674671183064
+ 0.12641043690131054
+ 0.12641412716122935
+ 0.12641781749159042
+ 0.12642150789239684
+ 0.12642519836365188
+ 0.12642888890535889
+ 0.1264325795175211
+ 0.12643627020014164
+ 0.12643996095322377
+ 0.12644365177677072
+ 0.1264473426707857
+ 0.12645103363527202
+ 0.12645472467023294
+ 0.12645841577567152
+ 0.12646210695159135
+ 0.12646579819799511
+ 0.1264694895148864
+ 0.12647318090226847
+ 0.12647687236014454
+ 0.12648056388851764
+ 0.12648425548739115
+ 0.12648794715676848
+ 0.12649163889665263
+ 0.12649533070704672
+ 0.12649902258795429
+ 0.12650271453937845
+ 0.12650640656132228
+ 0.12651009865378934
+ 0.12651379081678263
+ 0.12651748305030536
+ 0.12652117535436097
+ 0.12652486772895258
+ 0.12652856017408334
+ 0.12653225268975657
+ 0.12653594527597556
+ 0.12653963793274342
+ 0.12654333066006349
+ 0.12654702345793892
+ 0.12655071632637313
+ 0.12655440926536896
+ 0.12655810227493014
+ 0.1265617953550596
+ 0.12656548850576077
+ 0.12656918172703652
+ 0.12657287501889058
+ 0.12657656838132589
+ 0.12658026181434556
+ 0.12658395531795313
+ 0.12658764889215177
+ 0.12659134253694468
+ 0.12659503625233495
+ 0.12659873003832603
+ 0.12660242389492091
+ 0.12660611782212325
+ 0.12660981181993586
+ 0.12661350588836223
+ 0.12661720002740542
+ 0.12662089423706893
+ 0.12662458851735578
+ 0.1266282828682693
+ 0.12663197728981246
+ 0.12663567178198901
+ 0.12663936634480177
+ 0.12664306097825412
+ 0.12664675568234926
+ 0.12665045045709056
+ 0.12665414530248115
+ 0.12665784021852428
+ 0.12666153520522322
+ 0.12666523026258117
+ 0.12666892539060129
+ 0.12667262058928708
+ 0.12667631585864148
+ 0.12668001119866798
+ 0.12668370660936976
+ 0.12668740209074977
+ 0.1266910976428117
+ 0.12669479326555844
+ 0.12669848895899344
+ 0.12670218472311981
+ 0.12670588055794091
+ 0.1267095764634599
+ 0.12671327243968014
+ 0.12671696848660455
+ 0.12672066460423684
+ 0.12672436079257984
+ 0.12672805705163695
+ 0.12673175338141152
+ 0.12673544978190668
+ 0.1267391462531256
+ 0.12674284279507159
+ 0.12674653940774799
+ 0.12675023609115801
+ 0.12675393284530476
+ 0.12675762967019161
+ 0.12676132656582167
+ 0.12676502353219843
+ 0.12676872056932473
+ 0.12677241767720421
+ 0.12677611485583992
+ 0.12677981210523506
+ 0.12678350942539324
+ 0.12678720681631722
+ 0.12679090427801035
+ 0.12679460181047625
+ 0.12679829941371748
+ 0.12680199708773798
+ 0.12680569483254064
+ 0.12680939264812865
+ 0.12681309053450548
+ 0.12681678849167427
+ 0.12682048651963823
+ 0.12682418461840056
+ 0.12682788278796459
+ 0.1268315810283337
+ 0.12683527933951078
+ 0.12683897772149938
+ 0.12684267617430256
+ 0.12684637469792373
+ 0.126850073292366
+ 0.12685377195763273
+ 0.12685747069372699
+ 0.12686116950065213
+ 0.12686486837841157
+ 0.12686856732700838
+ 0.12687226634644549
+ 0.1268759654367268
+ 0.12687966459785502
+ 0.12688336382983376
+ 0.12688706313266609
+ 0.12689076250635531
+ 0.12689446195090448
+ 0.12689816146631713
+ 0.12690186105259624
+ 0.12690556070974537
+ 0.1269092604377674
+ 0.12691296023666604
+ 0.12691666010644398
+ 0.12692036004710483
+ 0.12692406005865173
+ 0.12692776014108792
+ 0.12693146029441696
+ 0.12693516051864154
+ 0.12693886081376524
+ 0.12694256117979127
+ 0.12694626161672287
+ 0.12694996212456328
+ 0.12695366270331576
+ 0.12695736335298358
+ 0.12696106407356988
+ 0.12696476486507802
+ 0.12696846572751119
+ 0.1269721666608726
+ 0.12697586766516564
+ 0.12697956874039365
+ 0.12698326988655934
+ 0.12698697110366655
+ 0.12699067239171835
+ 0.12699437375071781
+ 0.12699807518066844
+ 0.1270017766815732
+ 0.12700547825343561
+ 0.12700917989625882
+ 0.12701288161004609
+ 0.12701658339480068
+ 0.12702028525052575
+ 0.12702398717722474
+ 0.12702768917490054
+ 0.1270313912435567
+ 0.12703509338319655
+ 0.12703879559382319
+ 0.1270424978754397
+ 0.12704620022804963
+ 0.12704990265165603
+ 0.12705360514626224
+ 0.12705730771187174
+ 0.12706101034848721
+ 0.1270647130561125
+ 0.12706841583475043
+ 0.12707211868440446
+ 0.12707582160507785
+ 0.1270795245967738
+ 0.12708322765949548
+ 0.12708693079324621
+ 0.12709063399802925
+ 0.12709433727384803
+ 0.12709804062070548
+ 0.12710174403860511
+ 0.12710544752754993
+ 0.1271091510875435
+ 0.12711285471858869
+ 0.12711655842068917
+ 0.12712026219384792
+ 0.12712396603806825
+ 0.12712766995335339
+ 0.12713137393970672
+ 0.12713507799713139
+ 0.12713878212563048
+ 0.12714248632520761
+ 0.12714619059586585
+ 0.12714989493760839
+ 0.1271535993504386
+ 0.12715730383435966
+ 0.12716100838937497
+ 0.1271647130154876
+ 0.12716841771270063
+ 0.12717212248101781
+ 0.12717582732044211
+ 0.12717953223097686
+ 0.12718323721262509
+ 0.12718694226539029
+ 0.12719064738927571
+ 0.12719435258428458
+ 0.12719805785042015
+ 0.12720176318768556
+ 0.12720546859608417
+ 0.12720917407561927
+ 0.12721287962629402
+ 0.12721658524811177
+ 0.12722029094107584
+ 0.12722399670518916
+ 0.12722770254045532
+ 0.12723140844687739
+ 0.12723511442445887
+ 0.12723882047320265
+ 0.1272425265931123
+ 0.12724623278419092
+ 0.12724993904644186
+ 0.12725364537986822
+ 0.12725735178447359
+ 0.12726105826026074
+ 0.12726476480723325
+ 0.12726847142539433
+ 0.1272721781147472
+ 0.12727588487529523
+ 0.12727959170704134
+ 0.12728329860998916
+ 0.12728700558414208
+ 0.12729071262950273
+ 0.12729441974607486
+ 0.12729812693386164
+ 0.12730183419286625
+ 0.12730554152309209
+ 0.12730924892454223
+ 0.12731295639722001
+ 0.12731666394112878
+ 0.12732037155627157
+ 0.12732407924265191
+ 0.12732778700027289
+ 0.12733149482913786
+ 0.12733520272924995
+ 0.12733891070061248
+ 0.12734261874322891
+ 0.12734632685710218
+ 0.12735003504223572
+ 0.1273537432986328
+ 0.12735745162629661
+ 0.12736116002523046
+ 0.12736486849543754
+ 0.12736857703692117
+ 0.12737228564968456
+ 0.12737599433373112
+ 0.12737970308906391
+ 0.12738341191568642
+ 0.12738712081360171
+ 0.12739082978281308
+ 0.1273945388233238
+ 0.12739824793513721
+ 0.12740195711825644
+ 0.12740566637268494
+ 0.12740937569842575
+ 0.12741308509548219
+ 0.12741679456385771
+ 0.12742050410355535
+ 0.12742421371457854
+ 0.12742792339693021
+ 0.12743163315061401
+ 0.12743534297563311
+ 0.12743905287199067
+ 0.12744276283969003
+ 0.12744647287873434
+ 0.12745018298912708
+ 0.12745389317087136
+ 0.12745760342397033
+ 0.12746131374842748
+ 0.12746502414424588
+ 0.12746873461142913
+ 0.12747244514998007
+ 0.12747615575990215
+ 0.1274798664411988
+ 0.12748357719387293
+ 0.127487288017928
+ 0.12749099891336726
+ 0.12749470988019401
+ 0.12749842091841157
+ 0.12750213202802307
+ 0.12750584320903161
+ 0.12750955446144097
+ 0.1275132657852541
+ 0.12751697718047419
+ 0.12752068864710453
+ 0.12752440018514849
+ 0.12752811179460921
+ 0.12753182347549014
+ 0.12753553522779434
+ 0.12753924705152533
+ 0.12754295894668621
+ 0.12754667091328006
+ 0.12755038295131049
+ 0.12755409506078055
+ 0.1275578072416936
+ 0.12756151949405295
+ 0.12756523181786178
+ 0.12756894421312323
+ 0.12757265667984088
+ 0.12757636921801765
+ 0.12758008182765726
+ 0.12758379450876234
+ 0.12758750726133686
+ 0.12759122008538362
+ 0.12759493298090591
+ 0.12759864594790715
+ 0.12760235898639058
+ 0.12760607209635935
+ 0.12760978527781694
+ 0.12761349853076639
+ 0.12761721185521108
+ 0.12762092525115437
+ 0.1276246387185993
+ 0.12762835225754943
+ 0.12763206586800779
+ 0.12763577954997771
+ 0.12763949330346253
+ 0.12764320712846533
+ 0.12764692102498951
+ 0.12765063499303833
+ 0.12765434903261519
+ 0.12765806314372322
+ 0.12766177732636569
+ 0.12766549158054585
+ 0.1276692059062669
+ 0.12767292030353228
+ 0.12767663477234525
+ 0.127680349312709
+ 0.12768406392462672
+ 0.12768777860810188
+ 0.12769149336313765
+ 0.12769520818973734
+ 0.12769892308790418
+ 0.1277026380576412
+ 0.12770635309895212
+ 0.12771006821183989
+ 0.12771378339630801
+ 0.12771749865235951
+ 0.12772121397999792
+ 0.12772492937922622
+ 0.12772864485004798
+ 0.12773236039246608
+ 0.12773607600648432
+ 0.12773979169210556
+ 0.12774350744933327
+ 0.1277472232781704
+ 0.12775093917862071
+ 0.12775465515068718
+ 0.12775837119437319
+ 0.1277620873096818
+ 0.12776580349661659
+ 0.12776951975518064
+ 0.12777323608537719
+ 0.12777695248720961
+ 0.12778066896068113
+ 0.12778438550579507
+ 0.12778810212255468
+ 0.12779181881096305
+ 0.12779553557102388
+ 0.12779925240274018
+ 0.12780296930611507
+ 0.12780668628115194
+ 0.12781040332785432
+ 0.12781412044622517
+ 0.12781783763626789
+ 0.12782155489798569
+ 0.12782527223138168
+ 0.12782898963645981
+ 0.1278327071132225
+ 0.1278364246616735
+ 0.12784014228181609
+ 0.12784385997365333
+ 0.12784757773718872
+ 0.12785129557242522
+ 0.12785501347936648
+ 0.12785873145801557
+ 0.12786244950837569
+ 0.12786616763045033
+ 0.12786988582424275
+ 0.1278736040897559
+ 0.12787732242699346
+ 0.1278810408359583
+ 0.12788475931665413
+ 0.12788847786908397
+ 0.1278921964932512
+ 0.12789591518915913
+ 0.12789963395681081
+ 0.12790335279620954
+ 0.12790707170735888
+ 0.1279107906902619
+ 0.12791450974492186
+ 0.12791822887134213
+ 0.12792194806952603
+ 0.12792566733947663
+ 0.12792938668119735
+ 0.12793310609469152
+ 0.12793682557996222
+ 0.12794054513701278
+ 0.12794426476584669
+ 0.12794798446646716
+ 0.12795170423887739
+ 0.12795542408308042
+ 0.12795914399908004
+ 0.12796286398687898
+ 0.12796658404648109
+ 0.12797030417788918
+ 0.12797402438110675
+ 0.12797774465613707
+ 0.12798146500298332
+ 0.12798518542164875
+ 0.12798890591213688
+ 0.12799262647445075
+ 0.1279963471085937
+ 0.12800006781456899
+ 0.12800378859238004
+ 0.12800750944203004
+ 0.12801123036352219
+ 0.1280149513568597
+ 0.12801867242204615
+ 0.12802239355908457
+ 0.12802611476797837
+ 0.12802983604873086
+ 0.12803355740134512
+ 0.12803727882582472
+ 0.12804100032217255
+ 0.12804472189039234
+ 0.12804844353048703
+ 0.12805216524245996
+ 0.1280558870263144
+ 0.12805960888205378
+ 0.12806333080968149
+ 0.12806705280920036
+ 0.12807077488061405
+ 0.12807449702392565
+ 0.12807821923913854
+ 0.12808194152625585
+ 0.12808566388528111
+ 0.1280893863162173
+ 0.1280931088190681
+ 0.12809683139383657
+ 0.12810055404052575
+ 0.12810427675913943
+ 0.12810799954968044
+ 0.1281117224121523
+ 0.1281154453465583
+ 0.12811916835290152
+ 0.12812289143118541
+ 0.12812661458141333
+ 0.1281303378035884
+ 0.12813406109771383
+ 0.12813778446379315
+ 0.12814150790182963
+ 0.12814523141182624
+ 0.12814895499378653
+ 0.12815267864771379
+ 0.1281564023736112
+ 0.12816012617148212
+ 0.12816385004132969
+ 0.12816757398315726
+ 0.12817129799696833
+ 0.12817502208276588
+ 0.12817874624055342
+ 0.12818247047033401
+ 0.12818619477211105
+ 0.12818991914588782
+ 0.12819364359166777
+ 0.12819736810945384
+ 0.12820109269924959
+ 0.12820481736105824
+ 0.12820854209488297
+ 0.12821226690072726
+ 0.12821599177859433
+ 0.12821971672848739
+ 0.12822344175040959
+ 0.12822716684436444
+ 0.12823089201035529
+ 0.12823461724838509
+ 0.12823834255845756
+ 0.12824206794057572
+ 0.12824579339474287
+ 0.12824951892096215
+ 0.12825324451923717
+ 0.12825697018957102
+ 0.12826069593196721
+ 0.12826442174642871
+ 0.12826814763295902
+ 0.1282718735915612
+ 0.1282755996222387
+ 0.12827932572499498
+ 0.12828305189983305
+ 0.12828677814675618
+ 0.12829050446576787
+ 0.12829423085687128
+ 0.12829795732006977
+ 0.12830168385536656
+ 0.12830541046276486
+ 0.12830913714226813
+ 0.12831286389387975
+ 0.1283165907176026
+ 0.12832031761344023
+ 0.12832404458139601
+ 0.12832777162147316
+ 0.12833149873367486
+ 0.12833522591800445
+ 0.12833895317446523
+ 0.1283426805030605
+ 0.12834640790379379
+ 0.12835013537666787
+ 0.12835386292168641
+ 0.1283575905388524
+ 0.12836131822816971
+ 0.12836504598964102
+ 0.12836877382326986
+ 0.12837250172905948
+ 0.12837622970701321
+ 0.12837995775713423
+ 0.12838368587942614
+ 0.12838741407389193
+ 0.12839114234053492
+ 0.12839487067935837
+ 0.12839859909036583
+ 0.12840232757356035
+ 0.12840605612894521
+ 0.12840978475652393
+ 0.12841351345629962
+ 0.12841724222827547
+ 0.12842097107245498
+ 0.12842469998884137
+ 0.12842842897743792
+ 0.12843215803824787
+ 0.12843588717127474
+ 0.12843961637652146
+ 0.1284433456539916
+ 0.12844707500368829
+ 0.12845080442561499
+ 0.12845453391977488
+ 0.1284582634861712
+ 0.12846199312480733
+ 0.12846572283568644
+ 0.12846945261881204
+ 0.1284731824741874
+ 0.12847691240181561
+ 0.12848064240169996
+ 0.12848437247384409
+ 0.12848810261825086
+ 0.12849183283492385
+ 0.12849556312386629
+ 0.12849929348508149
+ 0.12850302391857257
+ 0.12850675442434303
+ 0.1285104850023959
+ 0.12851421565273491
+ 0.1285179463753631
+ 0.12852167717028365
+ 0.12852540803750007
+ 0.12852913897701554
+ 0.12853286998883323
+ 0.12853660107295672
+ 0.12854033222938913
+ 0.12854406345813377
+ 0.1285477947591939
+ 0.12855152613257301
+ 0.12855525757827405
+ 0.12855898909630062
+ 0.12856272068665586
+ 0.12856645234934325
+ 0.12857018408436596
+ 0.12857391589172718
+ 0.12857764777143027
+ 0.12858137972347863
+ 0.12858511174787543
+ 0.12858884384462418
+ 0.1285925760137277
+ 0.12859630825518989
+ 0.12860004056901364
+ 0.12860377295520231
+ 0.12860750541375923
+ 0.12861123794468785
+ 0.12861497054799137
+ 0.128618703223673
+ 0.128622435971736
+ 0.12862616879218372
+ 0.12862990168501964
+ 0.12863363465024691
+ 0.12863736768786876
+ 0.12864110079788849
+ 0.12864483398030954
+ 0.12864856723513521
+ 0.12865230056236857
+ 0.12865603396201317
+ 0.12865976743407212
+ 0.12866350097854881
+ 0.12866723459544654
+ 0.12867096828476857
+ 0.12867470204651837
+ 0.12867843588069905
+ 0.12868216978731395
+ 0.12868590376636621
+ 0.12868963781785939
+ 0.12869337194179675
+ 0.12869710613818147
+ 0.12870084040701699
+ 0.12870457474830632
+ 0.12870830916205314
+ 0.12871204364826055
+ 0.12871577820693189
+ 0.12871951283807043
+ 0.12872324754167958
+ 0.12872698231776233
+ 0.12873071716632237
+ 0.12873445208736267
+ 0.1287381870808868
+ 0.12874192214689789
+ 0.12874565728539947
+ 0.12874939249639442
+ 0.12875312777988651
+ 0.1287568631358787
+ 0.12876059856437433
+ 0.12876433406537702
+ 0.1287680696388897
+ 0.12877180528491569
+ 0.12877554100345853
+ 0.12877927679452153
+ 0.12878301265810749
+ 0.12878674859422037
+ 0.12879048460286316
+ 0.12879422068403901
+ 0.12879795683775153
+ 0.12880169306400385
+ 0.12880542936279935
+ 0.12880916573414125
+ 0.12881290217803293
+ 0.12881663869447765
+ 0.12882037528347867
+ 0.12882411194503943
+ 0.12882784867916305
+ 0.12883158548585288
+ 0.12883532236511247
+ 0.12883905931694487
+ 0.12884279634135337
+ 0.12884653343834129
+ 0.12885027060791213
+ 0.12885400785006901
+ 0.12885774516481521
+ 0.12886148255215404
+ 0.128865220012089
+ 0.12886895754462321
+ 0.12887269514976005
+ 0.12887643282750277
+ 0.12888017057785467
+ 0.12888390840081909
+ 0.12888764629639937
+ 0.12889138426459859
+ 0.12889512230542036
+ 0.12889886041886778
+ 0.12890259860494438
+ 0.12890633686365324
+ 0.12891007519499786
+ 0.12891381359898135
+ 0.12891755207560704
+ 0.12892129062487839
+ 0.12892502924679852
+ 0.12892876794137087
+ 0.12893250670859879
+ 0.12893624554848526
+ 0.128939984461034
+ 0.12894372344624816
+ 0.12894746250413103
+ 0.12895120163468576
+ 0.12895494083791589
+ 0.12895868011382466
+ 0.1289624194624153
+ 0.12896615888369131
+ 0.12896989837765568
+ 0.12897363794431213
+ 0.12897737758366348
+ 0.12898111729571357
+ 0.12898485708046534
+ 0.12898859693792195
+ 0.1289923368680872
+ 0.12899607687096423
+ 0.12899981694655613
+ 0.12900355709486619
+ 0.12900729731589822
+ 0.12901103760965485
+ 0.12901477797613994
+ 0.12901851841535639
+ 0.12902225892730776
+ 0.12902599951199742
+ 0.12902974016942853
+ 0.12903348089960437
+ 0.12903722170252815
+ 0.12904096257820349
+ 0.12904470352663355
+ 0.12904844454782155
+ 0.12905218564177087
+ 0.12905592680848499
+ 0.12905966804796687
+ 0.12906340936022009
+ 0.12906715074524783
+ 0.12907089220305343
+ 0.12907463373364045
+ 0.12907837533701166
+ 0.12908211701317085
+ 0.129085858762121
+ 0.1290896005838657
+ 0.12909334247840809
+ 0.12909708444575163
+ 0.12910082648589943
+ 0.12910456859885497
+ 0.12910831078462132
+ 0.12911205304320211
+ 0.12911579537460049
+ 0.12911953777881977
+ 0.12912328025586314
+ 0.12912702280573432
+ 0.12913076542843621
+ 0.12913450812397209
+ 0.12913825089234574
+ 0.12914199373356006
+ 0.12914573664761836
+ 0.12914947963452419
+ 0.12915322269428076
+ 0.12915696582689132
+ 0.12916070903235929
+ 0.12916445231068788
+ 0.12916819566188037
+ 0.12917193908594016
+ 0.12917568258287063
+ 0.12917942615267508
+ 0.1291831697953566
+ 0.1291869135109186
+ 0.1291906572993646
+ 0.12919440116069764
+ 0.12919814509492122
+ 0.12920188910203861
+ 0.12920563318205314
+ 0.12920937733496818
+ 0.12921312156078674
+ 0.12921686585951253
+ 0.12922061023114853
+ 0.12922435467569812
+ 0.12922809919316491
+ 0.12923184378355199
+ 0.12923558844686253
+ 0.12923933318310016
+ 0.12924307799226797
+ 0.12924682287436937
+ 0.12925056782940769
+ 0.12925431285738612
+ 0.12925805795830808
+ 0.12926180313217689
+ 0.12926554837899593
+ 0.12926929369876838
+ 0.12927303909149745
+ 0.1292767845571868
+ 0.12928053009583942
+ 0.12928427570745879
+ 0.12928802139204834
+ 0.12929176714961108
+ 0.12929551298015052
+ 0.12929925888367
+ 0.12930300486017263
+ 0.12930675090966207
+ 0.12931049703214131
+ 0.12931424322761392
+ 0.12931798949608297
+ 0.12932173583755208
+ 0.12932548225202425
+ 0.12932922873950306
+ 0.12933297529999163
+ 0.1293367219334933
+ 0.12934046864001164
+ 0.12934421541954969
+ 0.12934796227211076
+ 0.12935170919769831
+ 0.12935545619631555
+ 0.12935920326796604
+ 0.12936295041265278
+ 0.1293666976303792
+ 0.12937044492114871
+ 0.1293741922849643
+ 0.12937793972182995
+ 0.12938168723174842
+ 0.1293854348147232
+ 0.12938918247075748
+ 0.12939293019985484
+ 0.1293966780020184
+ 0.12940042587725153
+ 0.12940417382555755
+ 0.12940792184693981
+ 0.12941166994140144
+ 0.12941541810894622
+ 0.12941916634957706
+ 0.12942291466329731
+ 0.12942666305011052
+ 0.12943041151001963
+ 0.12943416004302843
+ 0.1294379086491399
+ 0.12944165732835747
+ 0.12944540608068439
+ 0.12944915490612419
+ 0.12945290380468003
+ 0.12945665277635524
+ 0.12946040182115304
+ 0.1294641509390769
+ 0.12946790013013024
+ 0.1294716493943161
+ 0.12947539873163799
+ 0.12947914814209929
+ 0.12948289762570309
+ 0.1294866471824529
+ 0.12949039681235192
+ 0.12949414651540361
+ 0.12949789629161121
+ 0.12950164614097792
+ 0.12950539606350742
+ 0.12950914605920266
+ 0.12951289612806702
+ 0.12951664627010412
+ 0.12952039648531696
+ 0.12952414677370908
+ 0.12952789713528365
+ 0.12953164757004404
+ 0.12953539807799352
+ 0.12953914865913552
+ 0.12954289931347335
+ 0.12954665004101018
+ 0.1295504008417496
+ 0.1295541517156947
+ 0.12955790266284892
+ 0.12956165368321565
+ 0.1295654047767979
+ 0.12956915594359938
+ 0.1295729071836233
+ 0.12957665849687275
+ 0.12958040988335129
+ 0.12958416134306233
+ 0.1295879128760089
+ 0.12959166448219464
+ 0.12959541616162251
+ 0.12959916791429615
+ 0.12960291974021881
+ 0.12960667163939363
+ 0.12961042361182445
+ 0.12961417565751379
+ 0.12961792777646575
+ 0.12962167996868321
+ 0.12962543223416956
+ 0.12962918457292816
+ 0.12963293698496248
+ 0.12963668947027571
+ 0.12964044202887104
+ 0.12964419466075205
+ 0.12964794736592206
+ 0.12965170014438418
+ 0.1296554529961417
+ 0.12965920592119834
+ 0.12966295891955729
+ 0.12966671199122146
+ 0.12967046513619468
+ 0.12967421835448015
+ 0.12967797164608103
+ 0.12968172501100075
+ 0.1296854784492425
+ 0.12968923196080995
+ 0.12969298554570621
+ 0.12969673920393465
+ 0.12970049293549851
+ 0.12970424674040115
+ 0.12970800061864596
+ 0.1297117545702364
+ 0.12971550859517542
+ 0.12971926269346684
+ 0.12972301686511331
+ 0.12972677111011893
+ 0.12973052542848651
+ 0.12973427982021948
+ 0.12973803428532135
+ 0.12974178882379533
+ 0.12974554343564448
+ 0.12974929812087271
+ 0.12975305287948299
+ 0.12975680771147854
+ 0.12976056261686283
+ 0.12976431759563936
+ 0.12976807264781123
+ 0.12977182777338184
+ 0.12977558297235453
+ 0.1297793382447327
+ 0.12978309359051929
+ 0.1297868490097184
+ 0.12979060450233249
+ 0.12979436006836551
+ 0.12979811570782063
+ 0.12980187142070104
+ 0.12980562720701019
+ 0.12980938306675138
+ 0.12981313899992797
+ 0.1298168950065432
+ 0.12982065108660065
+ 0.1298244072401033
+ 0.12982816346705475
+ 0.12983191976745828
+ 0.12983567614131705
+ 0.12983943258863465
+ 0.12984318910941417
+ 0.12984694570365912
+ 0.12985070237137292
+ 0.12985445911255836
+ 0.12985821592721961
+ 0.12986197281535936
+ 0.12986572977698108
+ 0.12986948681208818
+ 0.12987324392068411
+ 0.12987700110277181
+ 0.12988075835835527
+ 0.12988451568743711
+ 0.1298882730900211
+ 0.12989203056611059
+ 0.12989578811570857
+ 0.12989954573881868
+ 0.12990330343544412
+ 0.12990706120558826
+ 0.12991081904925433
+ 0.12991457696644601
+ 0.1299183349571662
+ 0.12992209302141863
+ 0.12992585115920613
+ 0.12992960937053269
+ 0.12993336765540109
+ 0.12993712601381482
+ 0.12994088444577739
+ 0.12994464295129196
+ 0.12994840153036197
+ 0.12995216018299066
+ 0.12995591890918146
+ 0.12995967770893754
+ 0.12996343658226234
+ 0.12996719552915939
+ 0.12997095454963162
+ 0.12997471364368274
+ 0.12997847281131591
+ 0.12998223205253434
+ 0.12998599136734168
+ 0.12998975075574087
+ 0.12999351021773581
+ 0.12999726975332937
+ 0.13000102936252497
+ 0.13000478904532595
+ 0.13000854880173582
+ 0.13001230863175778
+ 0.13001606853539513
+ 0.13001982851265134
+ 0.13002358856352952
+ 0.13002734868803315
+ 0.13003110888616573
+ 0.13003486915793036
+ 0.13003862950333053
+ 0.13004238992236927
+ 0.13004615041505024
+ 0.13004991098137683
+ 0.13005367162135223
+ 0.13005743233497968
+ 0.13006119312226264
+ 0.13006495398320447
+ 0.13006871491780861
+ 0.1300724759260779
+ 0.13007623700801632
+ 0.13007999816362703
+ 0.13008375939291306
+ 0.13008752069587798
+ 0.1300912820725251
+ 0.13009504352285781
+ 0.13009880504687937
+ 0.1301025666445931
+ 0.13010632831600255
+ 0.13011009006111088
+ 0.13011385187992133
+ 0.13011761377243744
+ 0.13012137573866264
+ 0.13012513777859985
+ 0.13012889989225279
+ 0.13013266207962473
+ 0.13013642434071893
+ 0.13014018667553862
+ 0.13014394908408747
+ 0.13014771156636848
+ 0.1301514741223852
+ 0.13015523675214108
+ 0.13015899945563911
+ 0.13016276223288284
+ 0.13016652508387569
+ 0.1301702880086209
+ 0.13017405100712173
+ 0.13017781407938164
+ 0.13018157722540386
+ 0.13018534044519187
+ 0.13018910373874898
+ 0.13019286710607847
+ 0.13019663054718364
+ 0.13020039406206799
+ 0.13020415765073476
+ 0.13020792131318756
+ 0.13021168504942918
+ 0.13021544885946337
+ 0.13021921274329326
+ 0.13022297670092245
+ 0.13022674073235416
+ 0.13023050483759172
+ 0.13023426901663832
+ 0.13023803326949751
+ 0.13024179759617266
+ 0.13024556199666698
+ 0.13024932647098383
+ 0.13025309101912669
+ 0.13025685564109871
+ 0.13026062033690342
+ 0.13026438510654401
+ 0.13026814995002378
+ 0.13027191486734632
+ 0.13027567985851476
+ 0.13027944492353269
+ 0.13028321006240301
+ 0.1302869752751295
+ 0.13029074056171541
+ 0.13029450592216385
+ 0.1302982713564784
+ 0.13030203686466255
+ 0.13030580244671905
+ 0.13030956810265176
+ 0.1303133338324641
+ 0.13031709963615909
+ 0.13032086551374022
+ 0.13032463146521089
+ 0.13032839749057426
+ 0.13033216358983366
+ 0.13033592976299269
+ 0.13033969601005474
+ 0.13034346233102284
+ 0.13034722872590049
+ 0.13035099519469107
+ 0.13035476173739777
+ 0.13035852835402417
+ 0.13036229504457358
+ 0.13036606180904911
+ 0.13036982864745436
+ 0.13037359555979258
+ 0.13037736254606716
+ 0.13038112960628132
+ 0.13038489674043865
+ 0.1303886639485422
+ 0.13039243123059552
+ 0.13039619858660187
+ 0.13039996601656462
+ 0.1304037335204872
+ 0.13040750109837279
+ 0.13041126875022491
+ 0.13041503647604694
+ 0.13041880427584213
+ 0.13042257214961378
+ 0.13042634009736512
+ 0.13043010811909983
+ 0.13043387621482097
+ 0.13043764438453218
+ 0.13044141262823655
+ 0.13044518094593746
+ 0.13044894933763851
+ 0.13045271780334272
+ 0.13045648634305354
+ 0.13046025495677449
+ 0.13046402364450879
+ 0.13046779240625964
+ 0.13047156124203069
+ 0.13047533015182514
+ 0.13047909913564623
+ 0.13048286819349747
+ 0.13048663732538221
+ 0.13049040653130381
+ 0.13049417581126543
+ 0.13049794516527063
+ 0.13050171459332283
+ 0.13050548409542495
+ 0.13050925367158081
+ 0.13051302332179365
+ 0.13051679304606661
+ 0.1305205628444033
+ 0.13052433271680686
+ 0.13052810266328088
+ 0.13053187268382846
+ 0.13053564277845306
+ 0.13053941294715801
+ 0.13054318318994687
+ 0.13054695350682274
+ 0.13055072389778899
+ 0.13055449436284911
+ 0.13055826490200625
+ 0.13056203551526402
+ 0.13056580620262562
+ 0.13056957696409432
+ 0.13057334779967353
+ 0.13057711870936678
+ 0.13058088969317724
+ 0.13058466075110839
+ 0.1305884318831636
+ 0.13059220308934588
+ 0.130595974369659
+ 0.13059974572410621
+ 0.13060351715269064
+ 0.13060728865541588
+ 0.13061106023228536
+ 0.130614831883302
+ 0.13061860360846964
+ 0.13062237540779134
+ 0.13062614728127073
+ 0.13062991922891082
+ 0.13063369125071522
+ 0.13063746334668727
+ 0.13064123551683007
+ 0.13064500776114724
+ 0.13064878007964206
+ 0.13065255247231802
+ 0.13065632493917814
+ 0.13066009748022606
+ 0.13066387009546504
+ 0.13066764278489831
+ 0.13067141554852968
+ 0.13067518838636202
+ 0.13067896129839865
+ 0.13068273428464347
+ 0.13068650734509926
+ 0.13069028047976977
+ 0.13069405368865819
+ 0.13069782697176777
+ 0.13070160032910202
+ 0.13070537376066435
+ 0.13070914726645788
+ 0.13071292084648634
+ 0.13071669450075277
+ 0.13072046822926056
+ 0.13072424203201302
+ 0.13072801590901387
+ 0.13073178986026607
+ 0.13073556388577315
+ 0.13073933798553858
+ 0.13074311215956544
+ 0.13074688640785714
+ 0.1307506607304173
+ 0.13075443512724902
+ 0.13075820959835577
+ 0.13076198414374085
+ 0.13076575876340774
+ 0.13076953345735959
+ 0.13077330822560004
+ 0.13077708306813215
+ 0.13078085798495936
+ 0.13078463297608534
+ 0.13078840804151295
+ 0.13079218318124589
+ 0.13079595839528743
+ 0.13079973368364095
+ 0.1308035090463098
+ 0.13080728448329731
+ 0.13081105999460671
+ 0.13081483558024173
+ 0.13081861124020533
+ 0.13082238697450121
+ 0.13082616278313253
+ 0.13082993866610271
+ 0.13083371462341498
+ 0.130837490655073
+ 0.13084126676107977
+ 0.13084504294143876
+ 0.13084881919615346
+ 0.13085259552522732
+ 0.13085637192866353
+ 0.1308601484064652
+ 0.13086392495863627
+ 0.13086770158517966
+ 0.13087147828609896
+ 0.13087525506139738
+ 0.1308790319110783
+ 0.13088280883514514
+ 0.13088658583360122
+ 0.13089036290644993
+ 0.13089414005369476
+ 0.13089791727533881
+ 0.13090169457138548
+ 0.13090547194183844
+ 0.13090924938670082
+ 0.13091302690597592
+ 0.13091680449966711
+ 0.13092058216777799
+ 0.13092435991031176
+ 0.13092813772727163
+ 0.13093191561866122
+ 0.13093569358448387
+ 0.13093947162474281
+ 0.13094324973944155
+ 0.13094702792858329
+ 0.13095080619217131
+ 0.13095458453020931
+ 0.13095836294270041
+ 0.13096214142964813
+ 0.13096591999105567
+ 0.13096969862692653
+ 0.13097347733726403
+ 0.13097725612207153
+ 0.13098103498135241
+ 0.13098481391510985
+ 0.13098859292334758
+ 0.1309923720060687
+ 0.1309961511632767
+ 0.13099993039497479
+ 0.13100370970116643
+ 0.13100748908185503
+ 0.13101126853704392
+ 0.13101504806673633
+ 0.13101882767093595
+ 0.13102260734964594
+ 0.13102638710286951
+ 0.13103016693061034
+ 0.13103394683287162
+ 0.13103772680965675
+ 0.13104150686096908
+ 0.13104528698681214
+ 0.13104906718718892
+ 0.13105284746210313
+ 0.131056627811558
+ 0.13106040823555692
+ 0.13106418873410328
+ 0.13106796930720035
+ 0.1310717499548518
+ 0.13107553067706046
+ 0.1310793114738302
+ 0.13108309234516424
+ 0.13108687329106583
+ 0.13109065431153824
+ 0.13109443540658539
+ 0.13109821657620996
+ 0.13110199782041573
+ 0.13110577913920604
+ 0.13110956053258413
+ 0.13111334200055336
+ 0.13111712354311733
+ 0.13112090516027916
+ 0.13112468685204234
+ 0.13112846861841004
+ 0.13113225045938598
+ 0.13113603237497334
+ 0.13113981436517549
+ 0.13114359642999579
+ 0.13114737856943745
+ 0.13115116078350411
+ 0.13115494307219916
+ 0.13115872543552567
+ 0.13116250787348741
+ 0.13116629038608735
+ 0.13117007297332908
+ 0.13117385563521605
+ 0.13117763837175139
+ 0.13118142118293857
+ 0.13118520406878112
+ 0.13118898702928225
+ 0.13119277006444535
+ 0.13119655317427378
+ 0.13120033635877087
+ 0.13120411961794015
+ 0.13120790295178469
+ 0.13121168636030825
+ 0.1312154698435142
+ 0.13121925340140553
+ 0.13122303703398563
+ 0.13122682074125844
+ 0.13123060452322646
+ 0.1312343883798939
+ 0.13123817231126389
+ 0.13124195631733934
+ 0.13124574039812437
+ 0.13124952455362174
+ 0.13125330878383493
+ 0.13125709308876762
+ 0.13126087746842294
+ 0.13126466192280423
+ 0.13126844645191516
+ 0.13127223105575853
+ 0.13127601573433836
+ 0.13127980048765764
+ 0.13128358531571985
+ 0.13128737021852843
+ 0.13129115519608653
+ 0.13129494024839775
+ 0.13129872537546555
+ 0.13130251057729289
+ 0.13130629585388345
+ 0.13131008120524065
+ 0.13131386663136776
+ 0.1313176521322679
+ 0.13132143770794513
+ 0.13132522335840213
+ 0.13132900908364253
+ 0.13133279488366989
+ 0.13133658075848723
+ 0.13134036670809832
+ 0.13134415273250605
+ 0.13134793883171431
+ 0.13135172500572612
+ 0.13135551125454489
+ 0.13135929757817424
+ 0.1313630839766175
+ 0.13136687044987774
+ 0.13137065699795855
+ 0.13137444362086337
+ 0.13137823031859533
+ 0.13138201709115813
+ 0.13138580393855484
+ 0.13138959086078902
+ 0.13139337785786412
+ 0.13139716492978318
+ 0.13140095207655
+ 0.13140473929816776
+ 0.13140852659463972
+ 0.1314123139659695
+ 0.13141610141216031
+ 0.13141988893321557
+ 0.13142367652913867
+ 0.13142746419993284
+ 0.13143125194560173
+ 0.13143503976614854
+ 0.13143882766157672
+ 0.13144261563188969
+ 0.13144640367709057
+ 0.13145019179718304
+ 0.13145397999217032
+ 0.13145776826205599
+ 0.13146155660684303
+ 0.13146534502653529
+ 0.13146913352113576
+ 0.13147292209064809
+ 0.1314767107350753
+ 0.13148049945442136
+ 0.1314842882486891
+ 0.13148807711788216
+ 0.13149186606200394
+ 0.13149565508105768
+ 0.13149944417504669
+ 0.13150323334397462
+ 0.13150702258784483
+ 0.13151081190666042
+ 0.13151460130042503
+ 0.13151839076914193
+ 0.13152218031281446
+ 0.13152596993144611
+ 0.13152975962504004
+ 0.13153354939360015
+ 0.13153733923712929
+ 0.1315411291556311
+ 0.13154491914910874
+ 0.13154870921756587
+ 0.13155249936100549
+ 0.13155628957943155
+ 0.1315600798728469
+ 0.13156387024125513
+ 0.13156766068465989
+ 0.13157145120306413
+ 0.13157524179647132
+ 0.13157903246488492
+ 0.1315828232083085
+ 0.13158661402674507
+ 0.13159040492019825
+ 0.13159419588867147
+ 0.13159798693216787
+ 0.13160177805069098
+ 0.13160556924424435
+ 0.13160936051283101
+ 0.13161315185645467
+ 0.13161694327511855
+ 0.13162073476882591
+ 0.13162452633758051
+ 0.13162831798138536
+ 0.131632109700244
+ 0.13163590149415971
+ 0.13163969336313616
+ 0.13164348530717643
+ 0.13164727732628395
+ 0.13165106942046226
+ 0.13165486158971462
+ 0.1316586538340444
+ 0.13166244615345518
+ 0.13166623854795009
+ 0.13167003101753266
+ 0.13167382356220614
+ 0.13167761618197418
+ 0.13168140887683977
+ 0.13168520164680667
+ 0.13168899449187815
+ 0.13169278741205739
+ 0.13169658040734819
+ 0.13170037347775354
+ 0.13170416662327697
+ 0.13170795984392178
+ 0.13171175313969172
+ 0.13171554651058973
+ 0.13171933995661936
+ 0.13172313347778397
+ 0.13172692707408717
+ 0.13173072074553205
+ 0.13173451449212215
+ 0.13173830831386085
+ 0.13174210221075133
+ 0.13174589618279739
+ 0.13174969023000191
+ 0.13175348435236878
+ 0.13175727854990102
+ 0.13176107282260224
+ 0.13176486717047556
+ 0.13176866159352482
+ 0.13177245609175292
+ 0.13177625066516352
+ 0.13178004531375984
+ 0.13178384003754554
+ 0.13178763483652381
+ 0.13179142971069802
+ 0.13179522466007165
+ 0.13179901968464808
+ 0.13180281478443065
+ 0.13180660995942275
+ 0.13181040520962778
+ 0.13181420053504916
+ 0.13181799593569027
+ 0.13182179141155442
+ 0.13182558696264518
+ 0.1318293825889657
+ 0.13183317829051946
+ 0.13183697406731013
+ 0.13184076991934068
+ 0.13184456584661464
+ 0.13184836184913551
+ 0.13185215792690655
+ 0.13185595407993131
+ 0.13185975030821301
+ 0.13186354661175506
+ 0.13186734299056097
+ 0.13187113944463386
+ 0.13187493597397751
+ 0.13187873257859509
+ 0.13188252925849001
+ 0.13188632601366546
+ 0.13189012284412543
+ 0.13189391974987263
+ 0.13189771673091086
+ 0.13190151378724335
+ 0.13190531091887356
+ 0.13190910812580478
+ 0.13191290540804065
+ 0.13191670276558434
+ 0.13192050019843923
+ 0.1319242977066088
+ 0.1319280952900965
+ 0.13193189294890545
+ 0.13193569068303934
+ 0.13193948849250148
+ 0.13194328637729516
+ 0.13194708433742391
+ 0.13195088237289093
+ 0.13195468048370002
+ 0.13195847866985416
+ 0.13196227693135687
+ 0.1319660752682115
+ 0.13196987368042168
+ 0.13197367216799047
+ 0.1319774707309215
+ 0.13198126936921806
+ 0.13198506808288341
+ 0.13198886687192121
+ 0.13199266573633478
+ 0.13199646467612744
+ 0.13200026369130272
+ 0.13200406278186383
+ 0.13200786194781422
+ 0.13201166118915741
+ 0.13201546050589669
+ 0.13201925989803542
+ 0.13202305936557701
+ 0.13202685890852492
+ 0.13203065852688245
+ 0.13203445822065302
+ 0.13203825798984023
+ 0.13204205783444734
+ 0.13204585775447752
+ 0.13204965774993449
+ 0.13205345782082148
+ 0.13205725796714188
+ 0.13206105818889929
+ 0.13206485848609673
+ 0.13206865885873792
+ 0.13207245930682615
+ 0.1320762598303647
+ 0.13208006042935722
+ 0.1320838611038069
+ 0.13208766185371712
+ 0.1320914626790915
+ 0.13209526357993337
+ 0.13209906455624579
+ 0.13210286560803269
+ 0.13210666673529697
+ 0.1321104679380424
+ 0.13211426921627226
+ 0.13211807056998986
+ 0.13212187199919864
+ 0.13212567350390186
+ 0.13212947508410336
+ 0.13213327673980602
+ 0.13213707847101375
+ 0.13214088027772949
+ 0.13214468215995684
+ 0.13214848411769906
+ 0.13215228615095986
+ 0.1321560882597424
+ 0.13215989044405002
+ 0.13216369270388642
+ 0.13216749503925457
+ 0.13217129745015824
+ 0.13217509993660065
+ 0.13217890249858527
+ 0.13218270513611549
+ 0.13218650784919456
+ 0.1321903106378261
+ 0.13219411350201338
+ 0.13219791644175996
+ 0.13220171945706902
+ 0.13220552254794404
+ 0.13220932571438854
+ 0.13221312895640575
+ 0.13221693227399905
+ 0.13222073566717205
+ 0.13222453913592805
+ 0.13222834268027031
+ 0.13223214630020247
+ 0.13223594999572777
+ 0.13223975376684979
+ 0.13224355761357159
+ 0.13224736153589681
+ 0.13225116553382887
+ 0.13225496960737118
+ 0.13225877375652706
+ 0.13226257798129998
+ 0.13226638228169316
+ 0.1322701866577102
+ 0.13227399110935437
+ 0.1322777956366292
+ 0.132281600239538
+ 0.13228540491808424
+ 0.13228920967227142
+ 0.13229301450210268
+ 0.1322968194075817
+ 0.13230062438871151
+ 0.13230442944549595
+ 0.13230823457793811
+ 0.13231203978604164
+ 0.13231584506980951
+ 0.13231965042924573
+ 0.13232345586435335
+ 0.13232726137513565
+ 0.13233106696159611
+ 0.13233487262373847
+ 0.13233867836156568
+ 0.13234248417508165
+ 0.13234629006428927
+ 0.1323500960291922
+ 0.13235390206979364
+ 0.13235770818609749
+ 0.13236151437810667
+ 0.13236532064582462
+ 0.13236912698925501
+ 0.13237293340840112
+ 0.13237673990326623
+ 0.13238054647385381
+ 0.13238435312016736
+ 0.13238815984221031
+ 0.13239196663998576
+ 0.13239577351349752
+ 0.13239958046274891
+ 0.13240338748774302
+ 0.1324071945884836
+ 0.13241100176497397
+ 0.13241480901721742
+ 0.1324186163452174
+ 0.1324224237489775
+ 0.13242623122850092
+ 0.13243003878379114
+ 0.13243384641485142
+ 0.13243765412168537
+ 0.1324414619042964
+ 0.13244526976268786
+ 0.13244907769686304
+ 0.13245288570682551
+ 0.13245669379257846
+ 0.13246050195412559
+ 0.13246431019147015
+ 0.13246811850461568
+ 0.13247192689356532
+ 0.13247573535832269
+ 0.13247954389889116
+ 0.13248335251527418
+ 0.13248716120747492
+ 0.13249096997549709
+ 0.13249477881934399
+ 0.13249858773901896
+ 0.13250239673452549
+ 0.13250620580586703
+ 0.13251001495304682
+ 0.1325138241760683
+ 0.13251763347493503
+ 0.13252144284965042
+ 0.13252525230021783
+ 0.13252906182664059
+ 0.13253287142892203
+ 0.13253668110706562
+ 0.13254049086107511
+ 0.13254430069095349
+ 0.13254811059670435
+ 0.13255192057833107
+ 0.13255573063583709
+ 0.13255954076922563
+ 0.13256335097850047
+ 0.13256716126366463
+ 0.13257097162472176
+ 0.13257478206167531
+ 0.13257859257452853
+ 0.13258240316328479
+ 0.13258621382794775
+ 0.1325900245685207
+ 0.13259383538500683
+ 0.1325976462774098
+ 0.13260145724573305
+ 0.13260526828997993
+ 0.13260907941015376
+ 0.13261289060625805
+ 0.13261670187829619
+ 0.1326205132262715
+ 0.13262432465018764
+ 0.13262813615004779
+ 0.13263194772585549
+ 0.1326357593776139
+ 0.13263957110532679
+ 0.13264338290899746
+ 0.13264719478862921
+ 0.13265100674422545
+ 0.13265481877578986
+ 0.13265863088332558
+ 0.13266244306683594
+ 0.13266625532632464
+ 0.13267006766179501
+ 0.13267388007325026
+ 0.13267769256069409
+ 0.13268150512412966
+ 0.13268531776356066
+ 0.1326891304789902
+ 0.13269294327042211
+ 0.13269675613785947
+ 0.13270056908130565
+ 0.13270438210076413
+ 0.13270819519623842
+ 0.13271200836773195
+ 0.13271582161524789
+ 0.13271963493879013
+ 0.13272344833836167
+ 0.13272726181396596
+ 0.13273107536560672
+ 0.13273488899328714
+ 0.13273870269701035
+ 0.13274251647678029
+ 0.13274633033260017
+ 0.13275014426447332
+ 0.13275395827240327
+ 0.1327577723563933
+ 0.13276158651644682
+ 0.13276540075256768
+ 0.13276921506475847
+ 0.13277302945302349
+ 0.13277684391736577
+ 0.13278065845778847
+ 0.13278447307429533
+ 0.13278828776688975
+ 0.13279210253557513
+ 0.13279591738035473
+ 0.13279973230123224
+ 0.13280354729821076
+ 0.13280736237129387
+ 0.13281117752048507
+ 0.13281499274578765
+ 0.132818808047205
+ 0.13282262342474063
+ 0.13282643887839801
+ 0.1328302544081803
+ 0.13283407001409148
+ 0.13283788569613422
+ 0.13284170145431246
+ 0.13284551728862937
+ 0.13284933319908862
+ 0.13285314918569338
+ 0.13285696524844726
+ 0.13286078138735347
+ 0.13286459760241556
+ 0.13286841389363691
+ 0.13287223026102102
+ 0.13287604670457123
+ 0.13287986322429102
+ 0.13288367982018354
+ 0.13288749649225259
+ 0.13289131324050146
+ 0.13289513006493356
+ 0.13289894696555221
+ 0.132902763942361
+ 0.13290658099536332
+ 0.13291039812456243
+ 0.13291421532996184
+ 0.13291803261156507
+ 0.13292184996937537
+ 0.13292566740339648
+ 0.13292948491363132
+ 0.13293330250008376
+ 0.13293712016275686
+ 0.13294093790165434
+ 0.13294475571677949
+ 0.13294857360813561
+ 0.13295239157572664
+ 0.13295620961955526
+ 0.13296002773962534
+ 0.13296384593594021
+ 0.13296766420850345
+ 0.13297148255731808
+ 0.132975300982388
+ 0.13297911948371632
+ 0.13298293806130651
+ 0.13298675671516202
+ 0.13299057544528628
+ 0.13299439425168269
+ 0.13299821313435484
+ 0.13300203209330586
+ 0.13300585112853941
+ 0.1330096702400588
+ 0.13301348942786753
+ 0.13301730869196887
+ 0.13302112803236635
+ 0.13302494744906346
+ 0.13302876694206348
+ 0.13303258651136998
+ 0.13303640615698625
+ 0.13304022587891581
+ 0.13304404567716202
+ 0.1330478655517284
+ 0.13305168550261834
+ 0.13305550552983508
+ 0.13305932563338244
+ 0.13306314581326339
+ 0.13306696606948154
+ 0.1330707864020404
+ 0.13307460681094346
+ 0.13307842729619379
+ 0.13308224785779535
+ 0.13308606849575105
+ 0.13308988921006462
+ 0.13309371000073922
+ 0.13309753086777865
+ 0.13310135181118612
+ 0.13310517283096499
+ 0.13310899392711872
+ 0.13311281509965078
+ 0.1331166363485648
+ 0.1331204576738638
+ 0.13312427907555155
+ 0.13312810055363139
+ 0.13313192210810643
+ 0.13313574373898063
+ 0.13313956544625713
+ 0.13314338722993921
+ 0.13314720909003053
+ 0.13315103102653447
+ 0.13315485303945454
+ 0.13315867512879395
+ 0.13316249729455626
+ 0.13316631953674476
+ 0.13317014185536319
+ 0.13317396425041472
+ 0.1331777867219027
+ 0.13318160926983111
+ 0.13318543189420257
+ 0.13318925459502098
+ 0.13319307737228986
+ 0.13319690022601233
+ 0.13320072315619205
+ 0.13320454616283223
+ 0.13320836924593663
+ 0.13321219240550841
+ 0.13321601564155097
+ 0.133219838954068
+ 0.13322366234306279
+ 0.13322748580853858
+ 0.13323130935049898
+ 0.13323513296894748
+ 0.13323895666388741
+ 0.13324278043532239
+ 0.13324660428325541
+ 0.13325042820769029
+ 0.13325425220863038
+ 0.13325807628607905
+ 0.13326190044003983
+ 0.13326572467051609
+ 0.1332695489775112
+ 0.1332733733610286
+ 0.13327719782107175
+ 0.13328102235764416
+ 0.13328484697074927
+ 0.1332886716603903
+ 0.13329249642657084
+ 0.13329632126929439
+ 0.13330014618856423
+ 0.13330397118438381
+ 0.13330779625675659
+ 0.13331162140568603
+ 0.13331544663117548
+ 0.13331927193322871
+ 0.1333230973118486
+ 0.13332692276703911
+ 0.13333074829880312
+ 0.13333457390714459
+ 0.13333839959206659
+ 0.1333422253535729
+ 0.13334605119166651
+ 0.13334987710635129
+ 0.13335370309763037
+ 0.13335752916550728
+ 0.13336135530998561
+ 0.13336518153106852
+ 0.13336900782875946
+ 0.13337283420306209
+ 0.13337666065397968
+ 0.13338048718151577
+ 0.13338431378567375
+ 0.13338814046645689
+ 0.13339196722386887
+ 0.13339579405791299
+ 0.13339962096859281
+ 0.1334034479559115
+ 0.13340727501987285
+ 0.13341110216047988
+ 0.13341492937773644
+ 0.13341875667164577
+ 0.13342258404221133
+ 0.13342641148943643
+ 0.13343023901332474
+ 0.13343406661387947
+ 0.1334378942911042
+ 0.13344172204500224
+ 0.13344554987557727
+ 0.13344937778283239
+ 0.13345320576677142
+ 0.13345703382739746
+ 0.13346086196471413
+ 0.13346469017872459
+ 0.1334685184694327
+ 0.13347234683684184
+ 0.13347617528095493
+ 0.13348000380177608
+ 0.13348383239930819
+ 0.13348766107355506
+ 0.13349148982452003
+ 0.13349531865220635
+ 0.1334991475566176
+ 0.13350297653775745
+ 0.133506805595629
+ 0.13351063473023575
+ 0.13351446394158115
+ 0.13351829322966866
+ 0.13352212259450191
+ 0.13352595203608417
+ 0.13352978155441877
+ 0.13353361114950929
+ 0.13353744082135893
+ 0.13354127056997162
+ 0.13354510039535028
+ 0.13354893029749865
+ 0.1335527602764201
+ 0.13355659033211817
+ 0.13356042046459604
+ 0.1335642506738573
+ 0.13356808095990552
+ 0.13357191132274376
+ 0.13357574176237588
+ 0.13357957227880518
+ 0.13358340287203493
+ 0.13358723354206894
+ 0.13359106428891016
+ 0.1335948951125624
+ 0.13359872601302902
+ 0.13360255699031323
+ 0.13360638804441879
+ 0.13361021917534902
+ 0.13361405038310747
+ 0.13361788166769734
+ 0.13362171302912215
+ 0.13362554446738542
+ 0.13362937598249069
+ 0.13363320757444114
+ 0.13363703924324036
+ 0.13364087098889174
+ 0.13364470281139887
+ 0.13364853471076488
+ 0.13365236668699357
+ 0.13365619874008816
+ 0.13366003087005218
+ 0.13366386307688902
+ 0.13366769536060213
+ 0.13367152772119498
+ 0.13367536015867101
+ 0.13367919267303355
+ 0.13368302526428616
+ 0.13368685793243243
+ 0.13369069067747544
+ 0.13369452349941885
+ 0.13369835639826627
+ 0.13370218937402087
+ 0.13370602242668611
+ 0.13370985555626555
+ 0.13371368876276257
+ 0.13371752204618065
+ 0.13372135540652325
+ 0.13372518884379364
+ 0.13372902235799547
+ 0.1337328559491322
+ 0.13373668961720692
+ 0.13374052336222358
+ 0.1337443571841854
+ 0.13374819108309569
+ 0.13375202505895803
+ 0.13375585911177593
+ 0.13375969324155274
+ 0.1337635274482919
+ 0.13376736173199688
+ 0.1337711960926711
+ 0.13377503053031797
+ 0.13377886504494102
+ 0.13378269963654366
+ 0.13378653430512938
+ 0.13379036905070171
+ 0.13379420387326371
+ 0.13379803877281912
+ 0.13380187374937164
+ 0.13380570880292419
+ 0.13380954393348041
+ 0.13381337914104396
+ 0.13381721442561789
+ 0.13382104978720596
+ 0.13382488522581165
+ 0.13382872074143823
+ 0.13383255633408914
+ 0.13383639200376807
+ 0.13384022775047788
+ 0.13384406357422271
+ 0.13384789947500583
+ 0.13385173545283033
+ 0.1338555715077
+ 0.13385940763961823
+ 0.1338632438485885
+ 0.13386708013461401
+ 0.13387091649769853
+ 0.13387475293784512
+ 0.13387858945505779
+ 0.1338824260493395
+ 0.13388626272069373
+ 0.13389009946912434
+ 0.13389393629463436
+ 0.13389777319722745
+ 0.13390161017690697
+ 0.13390544723367626
+ 0.13390928436753902
+ 0.13391312157849861
+ 0.13391695886655838
+ 0.13392079623172187
+ 0.13392463367399257
+ 0.13392847119337364
+ 0.13393230878986903
+ 0.13393614646348179
+ 0.13393998421421546
+ 0.13394382204207347
+ 0.13394765994705943
+ 0.13395149792917665
+ 0.13395533598842868
+ 0.13395917412481881
+ 0.13396301233835062
+ 0.13396685062902758
+ 0.13397068899685302
+ 0.13397452744183044
+ 0.13397836596396326
+ 0.13398220456325508
+ 0.13398604323970911
+ 0.13398988199332904
+ 0.13399372082411831
+ 0.13399755973208011
+ 0.13400139871721817
+ 0.13400523777953582
+ 0.13400907691903663
+ 0.13401291613572372
+ 0.13401675542960079
+ 0.13402059480067136
+ 0.13402443424893887
+ 0.1340282737744066
+ 0.13403211337707815
+ 0.13403595305695695
+ 0.13403979281404635
+ 0.13404363264834995
+ 0.13404747255987096
+ 0.13405131254861319
+ 0.1340551526145799
+ 0.1340589927577745
+ 0.13406283297820054
+ 0.13406667327586136
+ 0.13407051365076042
+ 0.13407435410290133
+ 0.13407819463228729
+ 0.13408203523892209
+ 0.13408587592280899
+ 0.13408971668395139
+ 0.13409355752235286
+ 0.1340973984380168
+ 0.13410123943094668
+ 0.13410508050114583
+ 0.13410892164861793
+ 0.13411276287336624
+ 0.13411660417539431
+ 0.13412044555470568
+ 0.13412428701130363
+ 0.13412812854519182
+ 0.13413197015637338
+ 0.13413581184485221
+ 0.13413965361063129
+ 0.1341434954537144
+ 0.13414733737410481
+ 0.13415117937180623
+ 0.13415502144682201
+ 0.13415886359915533
+ 0.13416270582880985
+ 0.1341665481357891
+ 0.13417039052009663
+ 0.13417423298173559
+ 0.13417807552070962
+ 0.13418191813702218
+ 0.13418576083067657
+ 0.13418960360167659
+ 0.13419344645002532
+ 0.13419728937572639
+ 0.13420113237878317
+ 0.13420497545919932
+ 0.13420881861697803
+ 0.13421266185212308
+ 0.13421650516463765
+ 0.13422034855452528
+ 0.13422419202178951
+ 0.13422803556643356
+ 0.13423187918846111
+ 0.13423572288787566
+ 0.13423956666468043
+ 0.13424341051887911
+ 0.13424725445047508
+ 0.13425109845947175
+ 0.1342549425458725
+ 0.13425878670968119
+ 0.1342626309509008
+ 0.13426647526953489
+ 0.13427031966558714
+ 0.1342741641390609
+ 0.13427800868995951
+ 0.13428185331828657
+ 0.13428569802404555
+ 0.13428954280723984
+ 0.13429338766787283
+ 0.13429723260594822
+ 0.1343010776214692
+ 0.13430492271443936
+ 0.13430876788486215
+ 0.13431261313274095
+ 0.1343164584580793
+ 0.13432030386088087
+ 0.13432414934114864
+ 0.13432799489888655
+ 0.13433184053409777
+ 0.13433568624678585
+ 0.13433953203695428
+ 0.13434337790460635
+ 0.13434722384974576
+ 0.13435106987237583
+ 0.13435491597250007
+ 0.1343587621501218
+ 0.13436260840524486
+ 0.13436645473787237
+ 0.1343703011480078
+ 0.13437414763565478
+ 0.13437799420081661
+ 0.13438184084349697
+ 0.13438568756369912
+ 0.13438953436142648
+ 0.1343933812366829
+ 0.13439722818947128
+ 0.13440107521979541
+ 0.13440492232765877
+ 0.13440876951306471
+ 0.13441261677601676
+ 0.13441646411651834
+ 0.13442031153457309
+ 0.1344241590301842
+ 0.13442800660335505
+ 0.13443185425408966
+ 0.13443570198239099
+ 0.13443954978826275
+ 0.13444339767170815
+ 0.13444724563273094
+ 0.13445109367133437
+ 0.13445494178752215
+ 0.13445878998129759
+ 0.13446263825266397
+ 0.134466486601625
+ 0.13447033502818412
+ 0.13447418353234478
+ 0.13447803211411027
+ 0.13448188077348441
+ 0.13448572951047039
+ 0.13448957832507188
+ 0.13449342721729202
+ 0.13449727618713447
+ 0.13450112523460278
+ 0.13450497435970027
+ 0.13450882356243055
+ 0.134512672842797
+ 0.13451652220080301
+ 0.13452037163645225
+ 0.13452422114974796
+ 0.13452807074069378
+ 0.13453192040929296
+ 0.13453577015554921
+ 0.13453961997946601
+ 0.13454346988104648
+ 0.13454731986029447
+ 0.13455116991721339
+ 0.13455502005180647
+ 0.13455887026407751
+ 0.13456272055402951
+ 0.13456657092166655
+ 0.13457042136699154
+ 0.13457427189000815
+ 0.1345781224907199
+ 0.13458197316913029
+ 0.13458582392524274
+ 0.13458967475906072
+ 0.13459352567058766
+ 0.13459737665982685
+ 0.13460122772678229
+ 0.13460507887145695
+ 0.13460893009385447
+ 0.13461278139397834
+ 0.13461663277183214
+ 0.13462048422741901
+ 0.13462433576074276
+ 0.1346281873718066
+ 0.13463203906061419
+ 0.13463589082716892
+ 0.13463974267147427
+ 0.13464359459353364
+ 0.13464744659335062
+ 0.13465129867092848
+ 0.13465515082627103
+ 0.13465900305938155
+ 0.13466285537026343
+ 0.13466670775892023
+ 0.13467056022535537
+ 0.13467441276957237
+ 0.13467826539157468
+ 0.1346821180913659
+ 0.13468597086894915
+ 0.13468982372432825
+ 0.13469367665750664
+ 0.13469752966848758
+ 0.13470138275727475
+ 0.13470523592387143
+ 0.13470908916828114
+ 0.13471294249050761
+ 0.13471679589055396
+ 0.13472064936842393
+ 0.13472450292412066
+ 0.13472835655764814
+ 0.13473221026900933
+ 0.13473606405820795
+ 0.13473991792524753
+ 0.13474377187013131
+ 0.13474762589286285
+ 0.13475147999344583
+ 0.13475533417188354
+ 0.13475918842817941
+ 0.13476304276233708
+ 0.13476689717435975
+ 0.1347707516642512
+ 0.13477460623201479
+ 0.13477846087765394
+ 0.13478231560117218
+ 0.13478617040257285
+ 0.13479002528185968
+ 0.13479388023903599
+ 0.13479773527410516
+ 0.13480159038707079
+ 0.13480544557793631
+ 0.13480930084670528
+ 0.13481315619338116
+ 0.13481701161796725
+ 0.13482086712046717
+ 0.13482472270088455
+ 0.13482857835922246
+ 0.13483243409548459
+ 0.13483628990967453
+ 0.13484014580179579
+ 0.13484400177185152
+ 0.13484785781984551
+ 0.13485171394578102
+ 0.13485557014966168
+ 0.13485942643149085
+ 0.13486328279127222
+ 0.13486713922900898
+ 0.13487099574470462
+ 0.13487485233836283
+ 0.13487870900998694
+ 0.13488256575958063
+ 0.13488642258714706
+ 0.13489027949268989
+ 0.13489413647621248
+ 0.13489799353771861
+ 0.13490185067721144
+ 0.1349057078946945
+ 0.13490956519017147
+ 0.13491342256364558
+ 0.13491728001512041
+ 0.13492113754459942
+ 0.13492499515208617
+ 0.13492885283758402
+ 0.13493271060109635
+ 0.134936568442627
+ 0.13494042636217923
+ 0.13494428435975642
+ 0.13494814243536221
+ 0.13495200058899995
+ 0.13495585882067321
+ 0.13495971713038543
+ 0.13496357551814023
+ 0.13496743398394068
+ 0.13497129252779083
+ 0.13497515114969375
+ 0.13497900984965305
+ 0.13498286862767209
+ 0.13498672748375468
+ 0.1349905864179039
+ 0.13499444543012343
+ 0.13499830452041686
+ 0.13500216368878737
+ 0.13500602293523875
+ 0.13500988225977426
+ 0.1350137416623976
+ 0.13501760114311187
+ 0.135021460701921
+ 0.13502532033882814
+ 0.13502918005383688
+ 0.13503303984695086
+ 0.13503689971817312
+ 0.13504075966750778
+ 0.13504461969495771
+ 0.13504847980052681
+ 0.13505233998421837
+ 0.13505620024603576
+ 0.13506006058598277
+ 0.13506392100406278
+ 0.13506778150027901
+ 0.13507164207463529
+ 0.13507550272713498
+ 0.1350793634577814
+ 0.13508322426657821
+ 0.13508708515352894
+ 0.13509094611863698
+ 0.13509480716190572
+ 0.13509866828333877
+ 0.13510252948293977
+ 0.13510639076071196
+ 0.1351102521166585
+ 0.13511411355078362
+ 0.1351179750630904
+ 0.13512183665358224
+ 0.13512569832226276
+ 0.13512956006913557
+ 0.13513342189420388
+ 0.13513728379747145
+ 0.13514114577894137
+ 0.13514500783861749
+ 0.13514886997650327
+ 0.13515273219260202
+ 0.13515659448691725
+ 0.13516045685945258
+ 0.13516431931021156
+ 0.13516818183919724
+ 0.13517204444641359
+ 0.1351759071318637
+ 0.13517976989555139
+ 0.13518363273748002
+ 0.13518749565765306
+ 0.13519135865607398
+ 0.13519522173274631
+ 0.13519908488767329
+ 0.13520294812085898
+ 0.13520681143230626
+ 0.13521067482201904
+ 0.13521453829000032
+ 0.13521840183625414
+ 0.13522226546078372
+ 0.13522612916359253
+ 0.1352299929446841
+ 0.13523385680406202
+ 0.1352377207417296
+ 0.13524158475769033
+ 0.13524544885194781
+ 0.13524931302450555
+ 0.13525317727536698
+ 0.13525704160453542
+ 0.1352609060120146
+ 0.13526477049780788
+ 0.13526863506191891
+ 0.13527249970435087
+ 0.13527636442510765
+ 0.13528022922419225
+ 0.13528409410160858
+ 0.13528795905735996
+ 0.13529182409144985
+ 0.13529568920388185
+ 0.13529955439465935
+ 0.13530341966378603
+ 0.13530728501126499
+ 0.1353111504371001
+ 0.1353150159412945
+ 0.13531888152385205
+ 0.13532274718477602
+ 0.13532661292406992
+ 0.13533047874173723
+ 0.13533434463778155
+ 0.13533821061220624
+ 0.13534207666501474
+ 0.13534594279621084
+ 0.13534980900579774
+ 0.13535367529377901
+ 0.13535754166015804
+ 0.13536140810493869
+ 0.13536527462812384
+ 0.13536914122971769
+ 0.13537300790972309
+ 0.13537687466814408
+ 0.13538074150498369
+ 0.13538460842024563
+ 0.13538847541393331
+ 0.13539234248605031
+ 0.13539620963660012
+ 0.13540007686558611
+ 0.13540394417301202
+ 0.13540781155888104
+ 0.13541167902319678
+ 0.13541554656596297
+ 0.13541941418718267
+ 0.13542328188685956
+ 0.13542714966499733
+ 0.13543101752159908
+ 0.13543488545666876
+ 0.13543875347020942
+ 0.13544262156222489
+ 0.13544648973271847
+ 0.13545035798169366
+ 0.13545422630915407
+ 0.1354580947151032
+ 0.13546196319954434
+ 0.13546583176248109
+ 0.13546970040391706
+ 0.13547356912385572
+ 0.13547743792230038
+ 0.13548130679925457
+ 0.13548517575472208
+ 0.13548904478870605
+ 0.13549291390121015
+ 0.13549678309223773
+ 0.13550065236179243
+ 0.13550452170987773
+ 0.1355083911364971
+ 0.13551226064165406
+ 0.13551613022535194
+ 0.1355199998875945
+ 0.13552386962838511
+ 0.1355277394477272
+ 0.13553160934562425
+ 0.1355354793220799
+ 0.13553934937709758
+ 0.13554321951068077
+ 0.13554708972283305
+ 0.13555096001355757
+ 0.13555483038285834
+ 0.13555870083073848
+ 0.13556257135720165
+ 0.13556644196225143
+ 0.13557031264589109
+ 0.13557418340812424
+ 0.13557805424895442
+ 0.13558192516838505
+ 0.13558579616641953
+ 0.13558966724306151
+ 0.13559353839831473
+ 0.13559740963218228
+ 0.13560128094466761
+ 0.13560515233577453
+ 0.13560902380550643
+ 0.13561289535386664
+ 0.13561676698085889
+ 0.13562063868648658
+ 0.13562451047075325
+ 0.13562838233366217
+ 0.13563225427521725
+ 0.13563612629542174
+ 0.13563999839427901
+ 0.13564387057179278
+ 0.13564774282796666
+ 0.1356516151628038
+ 0.13565548757630794
+ 0.13565936006848237
+ 0.13566323263933081
+ 0.13566710528885667
+ 0.13567097801706346
+ 0.13567485082395467
+ 0.13567872370953371
+ 0.13568259667380433
+ 0.13568646971676987
+ 0.1356903428384337
+ 0.13569421603879944
+ 0.1356980893178707
+ 0.13570196267565074
+ 0.13570583611214324
+ 0.13570970962735177
+ 0.13571358322127952
+ 0.13571745689393039
+ 0.1357213306453075
+ 0.1357252044754147
+ 0.13572907838425521
+ 0.13573295237183269
+ 0.1357368264381506
+ 0.13574070058321236
+ 0.13574457480702162
+ 0.1357484491095817
+ 0.13575232349089628
+ 0.13575619795096869
+ 0.1357600724898026
+ 0.1357639471074015
+ 0.1357678218037687
+ 0.135771696578908
+ 0.13577557143282254
+ 0.13577944636551606
+ 0.13578332137699212
+ 0.13578719646725407
+ 0.13579107163630541
+ 0.1357949468841497
+ 0.13579882221079051
+ 0.13580269761623129
+ 0.13580657310047536
+ 0.13581044866352648
+ 0.13581432430538809
+ 0.13581820002606368
+ 0.13582207582555658
+ 0.13582595170387066
+ 0.13582982766100907
+ 0.13583370369697537
+ 0.13583757981177333
+ 0.1358414560054062
+ 0.13584533227787748
+ 0.1358492086291907
+ 0.13585308505934965
+ 0.13585696156835736
+ 0.13586083815621774
+ 0.13586471482293414
+ 0.13586859156850992
+ 0.1358724683929487
+ 0.13587634529625411
+ 0.13588022227842955
+ 0.1358840993394784
+ 0.13588797647940434
+ 0.13589185369821077
+ 0.13589573099590135
+ 0.1358996083724793
+ 0.13590348582794851
+ 0.13590736336231224
+ 0.13591124097557411
+ 0.13591511866773739
+ 0.13591899643880567
+ 0.13592287428878272
+ 0.13592675221767178
+ 0.13593063022547647
+ 0.13593450831220022
+ 0.13593838647784665
+ 0.13594226472241905
+ 0.13594614304592131
+ 0.13595002144835647
+ 0.13595389992972837
+ 0.13595777849004032
+ 0.13596165712929598
+ 0.13596553584749871
+ 0.13596941464465234
+ 0.13597329352076001
+ 0.13597717247582525
+ 0.13598105150985174
+ 0.13598493062284298
+ 0.13598880981480252
+ 0.13599268908573361
+ 0.1359965684356399
+ 0.13600044786452492
+ 0.13600432737239224
+ 0.13600820695924531
+ 0.13601208662508765
+ 0.13601596636992261
+ 0.13601984619375385
+ 0.1360237260965852
+ 0.13602760607841957
+ 0.13603148613926058
+ 0.13603536627911211
+ 0.13603924649797736
+ 0.13604312679586006
+ 0.13604700717276344
+ 0.13605088762869127
+ 0.13605476816364689
+ 0.1360586487776341
+ 0.13606252947065589
+ 0.13606641024271604
+ 0.13607029109381824
+ 0.13607417202396585
+ 0.13607805303316242
+ 0.13608193412141117
+ 0.13608581528871611
+ 0.1360896965350803
+ 0.13609357786050752
+ 0.13609745926500122
+ 0.13610134074856492
+ 0.13610522231120212
+ 0.1361091039529162
+ 0.13611298567371088
+ 0.13611686747358959
+ 0.13612074935255583
+ 0.13612463131061317
+ 0.13612851334776493
+ 0.13613239546401493
+ 0.13613627765936642
+ 0.13614015993382289
+ 0.13614404228738816
+ 0.1361479247200654
+ 0.13615180723185838
+ 0.13615568982277043
+ 0.13615957249280525
+ 0.13616345524196613
+ 0.13616733807025666
+ 0.13617122097768047
+ 0.13617510396424101
+ 0.13617898702994155
+ 0.13618287017478609
+ 0.13618675339877781
+ 0.13619063670192028
+ 0.1361945200842169
+ 0.13619840354567142
+ 0.1362022870862872
+ 0.13620617070606783
+ 0.13621005440501682
+ 0.13621393818313765
+ 0.13621782204043384
+ 0.1362217059769088
+ 0.13622558999256618
+ 0.13622947408740968
+ 0.13623335826144242
+ 0.13623724251466801
+ 0.13624112684709019
+ 0.13624501125871233
+ 0.13624889574953805
+ 0.13625278031957064
+ 0.13625666496881361
+ 0.13626054969727067
+ 0.13626443450494527
+ 0.13626831939184109
+ 0.1362722043579612
+ 0.13627608940330965
+ 0.13627997452788962
+ 0.1362838597317047
+ 0.13628774501475838
+ 0.13629163037705433
+ 0.13629551581859586
+ 0.13629940133938667
+ 0.13630328693943003
+ 0.13630717261872968
+ 0.13631105837728916
+ 0.1363149442151117
+ 0.13631883013220122
+ 0.13632271612856087
+ 0.13632660220419437
+ 0.13633048835910525
+ 0.13633437459329681
+ 0.13633826090677292
+ 0.13634214729953689
+ 0.13634603377159218
+ 0.13634992032294235
+ 0.13635380695359101
+ 0.13635769366354161
+ 0.13636158045279775
+ 0.13636546732136259
+ 0.13636935426924021
+ 0.13637324129643383
+ 0.13637712840294702
+ 0.13638101558878316
+ 0.13638490285394589
+ 0.13638879019843883
+ 0.13639267762226531
+ 0.13639656512542883
+ 0.13640045270793319
+ 0.13640434036978163
+ 0.13640822811097778
+ 0.13641211593152505
+ 0.1364160038314273
+ 0.13641989181068762
+ 0.13642377986930973
+ 0.13642766800729716
+ 0.13643155622465342
+ 0.13643544452138198
+ 0.1364393328974865
+ 0.1364432213529703
+ 0.13644710988783687
+ 0.13645099850209019
+ 0.13645488719573326
+ 0.1364587759687696
+ 0.13646266482120326
+ 0.13646655375303737
+ 0.1364704427642755
+ 0.13647433185492105
+ 0.1364782210249777
+ 0.13648211027444898
+ 0.13648599960333835
+ 0.13648988901164938
+ 0.13649377849938571
+ 0.1364976680665505
+ 0.13650155771314745
+ 0.13650544743918042
+ 0.13650933724465247
+ 0.13651322712956721
+ 0.13651711709392841
+ 0.13652100713773929
+ 0.13652489726100361
+ 0.13652878746372468
+ 0.13653267774590624
+ 0.13653656810755174
+ 0.13654045854866451
+ 0.13654434906924831
+ 0.13654823966930665
+ 0.13655213034884289
+ 0.13655602110786072
+ 0.13655991194636355
+ 0.13656380286435515
+ 0.13656769386183862
+ 0.13657158493881777
+ 0.13657547609529619
+ 0.13657936733127712
+ 0.13658325864676429
+ 0.13658715004176128
+ 0.13659104151627144
+ 0.13659493307029827
+ 0.13659882470384568
+ 0.13660271641691671
+ 0.13660660820951517
+ 0.13661050008164433
+ 0.13661439203330822
+ 0.13661828406450982
+ 0.13662217617525288
+ 0.13662606836554084
+ 0.13662996063537736
+ 0.13663385298476585
+ 0.13663774541371013
+ 0.13664163792221318
+ 0.13664553051027906
+ 0.13664942317791107
+ 0.13665331592511276
+ 0.13665720875188747
+ 0.13666110165823894
+ 0.13666499464417067
+ 0.13666888770968627
+ 0.13667278085478904
+ 0.13667667407948278
+ 0.13668056738377068
+ 0.13668446076765658
+ 0.13668835423114387
+ 0.13669224777423608
+ 0.13669614139693667
+ 0.13670003509924933
+ 0.13670392888117749
+ 0.13670782274272464
+ 0.13671171668389456
+ 0.13671561070469035
+ 0.13671950480511599
+ 0.13672339898517458
+ 0.13672729324487001
+ 0.13673118758420566
+ 0.13673508200318488
+ 0.13673897650181152
+ 0.13674287108008895
+ 0.13674676573802069
+ 0.13675066047561041
+ 0.13675455529286126
+ 0.13675845018977714
+ 0.1367623451663616
+ 0.13676624022261813
+ 0.13677013535854993
+ 0.13677403057416088
+ 0.13677792586945431
+ 0.13678182124443378
+ 0.13678571669910308
+ 0.13678961223346556
+ 0.13679350784752453
+ 0.13679740354128386
+ 0.13680129931474697
+ 0.13680519516791728
+ 0.13680909110079839
+ 0.13681298711339382
+ 0.13681688320570731
+ 0.13682077937774209
+ 0.13682467562950182
+ 0.13682857196098996
+ 0.13683246837221036
+ 0.13683636486316614
+ 0.1368402614338608
+ 0.13684415808429823
+ 0.1368480548144817
+ 0.13685195162441502
+ 0.1368558485141016
+ 0.13685974548354468
+ 0.1368636425327481
+ 0.13686753966171536
+ 0.13687143687044975
+ 0.1368753341589552
+ 0.13687923152723497
+ 0.13688312897529276
+ 0.13688702650313195
+ 0.13689092411075607
+ 0.13689482179816884
+ 0.13689871956537347
+ 0.136902617412374
+ 0.13690651533917345
+ 0.13691041334577553
+ 0.13691431143218377
+ 0.13691820959840192
+ 0.13692210784443332
+ 0.13692600617028158
+ 0.13692990457595006
+ 0.13693380306144243
+ 0.136937701626762
+ 0.13694160027191263
+ 0.13694549899689792
+ 0.13694939780172102
+ 0.13695329668638578
+ 0.13695719565089545
+ 0.13696109469525383
+ 0.13696499381946456
+ 0.1369688930235308
+ 0.13697279230745615
+ 0.13697669167124435
+ 0.13698059111489891
+ 0.13698449063842319
+ 0.13698839024182094
+ 0.13699228992509546
+ 0.13699618968825056
+ 0.13700008953128956
+ 0.13700398945421607
+ 0.1370078894570336
+ 0.13701178953974566
+ 0.13701568970235603
+ 0.13701958994486788
+ 0.13702349026728514
+ 0.13702739066961089
+ 0.13703129115184909
+ 0.13703519171400289
+ 0.13703909235607617
+ 0.13704299307807236
+ 0.13704689387999489
+ 0.13705079476184734
+ 0.13705469572363341
+ 0.13705859676535656
+ 0.1370624978870201
+ 0.13706639908862786
+ 0.13707030037018331
+ 0.13707420173168974
+ 0.137078103173151
+ 0.13708200469457055
+ 0.13708590629595208
+ 0.13708980797729861
+ 0.13709370973861429
+ 0.13709761157990222
+ 0.13710151350116612
+ 0.13710541550240954
+ 0.13710931758363606
+ 0.13711321974484919
+ 0.13711712198605241
+ 0.13712102430724921
+ 0.13712492670844326
+ 0.13712882918963801
+ 0.13713273175083698
+ 0.1371366343920439
+ 0.13714053711326207
+ 0.13714443991449515
+ 0.13714834279574684
+ 0.13715224575702034
+ 0.13715614879831944
+ 0.13716005191964747
+ 0.13716395512100826
+ 0.13716785840240506
+ 0.13717176176384174
+ 0.1371756652053214
+ 0.13717956872684797
+ 0.1371834723284249
+ 0.13718737601005554
+ 0.13719127977174375
+ 0.13719518361349267
+ 0.13719908753530627
+ 0.13720299153718779
+ 0.13720689561914082
+ 0.13721079978116896
+ 0.13721470402327582
+ 0.13721860834546482
+ 0.13722251274773969
+ 0.13722641723010384
+ 0.13723032179256062
+ 0.13723422643511377
+ 0.13723813115776698
+ 0.13724203596052342
+ 0.13724594084338712
+ 0.13724984580636107
+ 0.13725375084944935
+ 0.13725765597265521
+ 0.13726156117598209
+ 0.13726546645943385
+ 0.13726937182301377
+ 0.13727327726672531
+ 0.13727718279057252
+ 0.13728108839455855
+ 0.13728499407868675
+ 0.13728889984296114
+ 0.13729280568738492
+ 0.13729671161196177
+ 0.13730061761669535
+ 0.13730452370158908
+ 0.13730842986664665
+ 0.13731233611187124
+ 0.13731624243726673
+ 0.13732014884283628
+ 0.13732405532858402
+ 0.13732796189451316
+ 0.13733186854062707
+ 0.13733577526692975
+ 0.13733968207342434
+ 0.13734358896011459
+ 0.1373474959270039
+ 0.13735140297409601
+ 0.13735531010139435
+ 0.1373592173089026
+ 0.13736312459662403
+ 0.13736703196456237
+ 0.13737093941272124
+ 0.13737484694110402
+ 0.13737875454971438
+ 0.13738266223855575
+ 0.13738657000763177
+ 0.13739047785694605
+ 0.13739438578650182
+ 0.13739829379630308
+ 0.13740220188635308
+ 0.1374061100566554
+ 0.13741001830721364
+ 0.13741392663803145
+ 0.13741783504911217
+ 0.13742174354045958
+ 0.13742565211207694
+ 0.13742956076396795
+ 0.13743346949613638
+ 0.13743737830858524
+ 0.13744128720131865
+ 0.1374451961743397
+ 0.13744910522765233
+ 0.1374530143612599
+ 0.13745692357516573
+ 0.1374608328693738
+ 0.13746474224388747
+ 0.13746865169871025
+ 0.13747256123384571
+ 0.1374764708492974
+ 0.137480380545069
+ 0.1374842903211638
+ 0.13748820017758556
+ 0.13749211011433785
+ 0.13749602013142401
+ 0.13749993022884771
+ 0.13750384040661254
+ 0.13750775066472212
+ 0.13751166100317969
+ 0.13751557142198922
+ 0.13751948192115385
+ 0.13752339250067749
+ 0.13752730316056339
+ 0.13753121390081557
+ 0.13753512472143689
+ 0.1375390356224315
+ 0.13754294660380267
+ 0.13754685766555391
+ 0.13755076880768882
+ 0.13755468003021107
+ 0.13755859133312406
+ 0.13756250271643161
+ 0.13756641418013693
+ 0.13757032572424377
+ 0.13757423734875576
+ 0.1375781490536761
+ 0.1375820608390087
+ 0.13758597270475692
+ 0.13758988465092448
+ 0.13759379667751467
+ 0.13759770878453134
+ 0.13760162097197787
+ 0.13760553323985797
+ 0.13760944558817492
+ 0.13761335801693256
+ 0.13761727052613421
+ 0.13762118311578347
+ 0.13762509578588403
+ 0.13762900853643939
+ 0.13763292136745306
+ 0.13763683427892853
+ 0.13764074727086958
+ 0.13764466034327957
+ 0.13764857349616202
+ 0.13765248672952071
+ 0.13765640004335908
+ 0.1376603134376804
+ 0.13766422691248881
+ 0.13766814046778736
+ 0.13767205410357983
+ 0.13767596781986985
+ 0.13767988161666064
+ 0.1376837954939561
+ 0.13768770945175954
+ 0.13769162349007483
+ 0.13769553760890521
+ 0.13769945180825427
+ 0.13770336608812594
+ 0.13770728044852323
+ 0.13771119488945002
+ 0.13771510941090984
+ 0.13771902401290623
+ 0.13772293869544272
+ 0.13772685345852295
+ 0.13773076830215017
+ 0.1377346832263284
+ 0.13773859823106088
+ 0.13774251331635132
+ 0.13774642848220306
+ 0.13775034372861991
+ 0.13775425905560523
+ 0.13775817446316296
+ 0.1377620899512961
+ 0.13776600552000862
+ 0.13776992116930389
+ 0.13777383689918543
+ 0.13777775270965714
+ 0.13778166860072197
+ 0.13778558457238399
+ 0.1377895006246467
+ 0.13779341675751353
+ 0.1377973329709879
+ 0.13780124926507367
+ 0.13780516563977432
+ 0.13780908209509324
+ 0.13781299863103424
+ 0.13781691524760067
+ 0.13782083194479608
+ 0.13782474872262415
+ 0.13782866558108853
+ 0.13783258252019256
+ 0.13783649953994009
+ 0.13784041664033406
+ 0.13784433382137887
+ 0.13784825108307749
+ 0.13785216842543366
+ 0.13785608584845074
+ 0.13786000335213289
+ 0.13786392093648295
+ 0.13786783860150498
+ 0.13787175634720236
+ 0.13787567417357852
+ 0.13787959208063719
+ 0.13788351006838204
+ 0.1378874281368162
+ 0.13789134628594385
+ 0.13789526451576795
+ 0.13789918282629232
+ 0.13790310121752078
+ 0.1379070196894564
+ 0.13791093824210315
+ 0.13791485687546423
+ 0.13791877558954363
+ 0.13792269438434457
+ 0.13792661325987077
+ 0.13793053221612583
+ 0.13793445125311296
+ 0.13793837037083623
+ 0.13794228956929883
+ 0.13794620884850456
+ 0.13795012820845692
+ 0.13795404764915942
+ 0.13795796717061537
+ 0.13796188677282889
+ 0.13796580645580314
+ 0.1379697262195419
+ 0.13797364606404849
+ 0.1379775659893267
+ 0.13798148599538007
+ 0.13798540608221208
+ 0.13798932624982629
+ 0.13799324649822622
+ 0.13799716682741556
+ 0.13800108723739804
+ 0.1380050077281767
+ 0.13800892829975564
+ 0.13801284895213808
+ 0.13801676968532764
+ 0.13802069049932802
+ 0.13802461139414282
+ 0.13802853236977541
+ 0.13803245342622958
+ 0.13803637456350859
+ 0.13804029578161617
+ 0.13804421708055609
+ 0.13804813846033143
+ 0.13805205992094624
+ 0.1380559814624038
+ 0.13805990308470772
+ 0.13806382478786175
+ 0.13806774657186924
+ 0.13807166843673399
+ 0.13807559038245934
+ 0.13807951240904889
+ 0.13808343451650618
+ 0.13808735670483488
+ 0.1380912789740385
+ 0.13809520132412073
+ 0.1380991237550851
+ 0.13810304626693506
+ 0.13810696885967411
+ 0.13811089153330597
+ 0.13811481428783434
+ 0.13811873712326231
+ 0.138122660039594
+ 0.13812658303683278
+ 0.13813050611498204
+ 0.13813442927404559
+ 0.13813835251402687
+ 0.13814227583492952
+ 0.13814619923675692
+ 0.13815012271951302
+ 0.13815404628320088
+ 0.13815796992782453
+ 0.13816189365338738
+ 0.13816581745989279
+ 0.13816974134734469
+ 0.13817366531574621
+ 0.13817758936510147
+ 0.13818151349541366
+ 0.13818543770668631
+ 0.1381893619989234
+ 0.13819328637212785
+ 0.13819721082630393
+ 0.13820113536145462
+ 0.13820505997758392
+ 0.13820898467469514
+ 0.13821290945279197
+ 0.1382168343118779
+ 0.13822075925195659
+ 0.13822468427303164
+ 0.13822860937510648
+ 0.13823253455818482
+ 0.13823645982227006
+ 0.138240385167366
+ 0.13824431059347603
+ 0.13824823610060386
+ 0.13825216168875284
+ 0.1382560873579268
+ 0.1382600131081291
+ 0.13826393893936348
+ 0.13826786485163342
+ 0.13827179084494245
+ 0.13827571691929422
+ 0.13827964307469237
+ 0.13828356931114036
+ 0.13828749562864184
+ 0.13829142202720027
+ 0.13829534850681929
+ 0.13829927506750253
+ 0.13830320170925348
+ 0.13830712843207568
+ 0.13831105523597284
+ 0.13831498212094845
+ 0.13831890908700603
+ 0.13832283613414917
+ 0.13832676326238155
+ 0.13833069047170679
+ 0.13833461776212827
+ 0.13833854513364954
+ 0.13834247258627441
+ 0.13834640012000632
+ 0.13835032773484887
+ 0.13835425543080551
+ 0.13835818320787999
+ 0.13836211106607596
+ 0.1383660390053966
+ 0.13836996702584586
+ 0.13837389512742704
+ 0.13837782331014398
+ 0.13838175157400029
+ 0.13838567991899925
+ 0.13838960834514455
+ 0.1383935368524398
+ 0.13839746544088866
+ 0.13840139411049454
+ 0.13840532286126106
+ 0.13840925169319199
+ 0.13841318060629079
+ 0.13841710960056075
+ 0.13842103867600583
+ 0.13842496783262939
+ 0.1384288970704351
+ 0.13843282638942664
+ 0.13843675578960749
+ 0.13844068527098097
+ 0.13844461483355106
+ 0.13844854447732119
+ 0.13845247420229492
+ 0.13845640400847584
+ 0.1384603338958672
+ 0.13846426386447336
+ 0.1384681939142971
+ 0.13847212404534243
+ 0.13847605425761284
+ 0.13847998455111199
+ 0.13848391492584317
+ 0.13848784538181039
+ 0.13849177591901665
+ 0.13849570653746593
+ 0.13849963723716197
+ 0.13850356801810801
+ 0.13850749888030781
+ 0.1385114298237648
+ 0.13851536084848259
+ 0.13851929195446494
+ 0.13852322314171531
+ 0.13852715441023705
+ 0.13853108576003412
+ 0.13853501719110986
+ 0.13853894870346811
+ 0.13854288029711206
+ 0.13854681197204563
+ 0.13855074372827225
+ 0.13855467556579534
+ 0.1385586074846189
+ 0.13856253948474628
+ 0.13856647156618074
+ 0.13857040372892654
+ 0.13857433597298663
+ 0.138578268298365
+ 0.13858220070506505
+ 0.13858613319309038
+ 0.13859006576244451
+ 0.13859399841313125
+ 0.13859793114515387
+ 0.13860186395851623
+ 0.13860579685322161
+ 0.13860972982927397
+ 0.13861366288667665
+ 0.13861759602543333
+ 0.1386215292455473
+ 0.13862546254702252
+ 0.13862939592986265
+ 0.13863332939407086
+ 0.13863726293965081
+ 0.1386411965666064
+ 0.13864513027494088
+ 0.1386490640646581
+ 0.13865299793576125
+ 0.13865693188825454
+ 0.13866086592214102
+ 0.13866480003742432
+ 0.13866873423410822
+ 0.13867266851219637
+ 0.13867660287169209
+ 0.13868053731259905
+ 0.13868447183492102
+ 0.13868840643866132
+ 0.13869234112382353
+ 0.13869627589041153
+ 0.13870021073842864
+ 0.13870414566787839
+ 0.13870808067876467
+ 0.13871201577109096
+ 0.13871595094486064
+ 0.13871988620007752
+ 0.13872382153674506
+ 0.13872775695486703
+ 0.13873169245444672
+ 0.13873562803548789
+ 0.13873956369799414
+ 0.13874349944196895
+ 0.13874743526741604
+ 0.13875137117433897
+ 0.13875530716274109
+ 0.13875924323262648
+ 0.13876317938399835
+ 0.13876711561686025
+ 0.13877105193121592
+ 0.13877498832706875
+ 0.13877892480442278
+ 0.13878286136328108
+ 0.1387867980036476
+ 0.13879073472552569
+ 0.13879467152891908
+ 0.13879860841383143
+ 0.13880254538026607
+ 0.13880648242822671
+ 0.13881041955771689
+ 0.13881435676874027
+ 0.13881829406130056
+ 0.13882223143540123
+ 0.13882616889104568
+ 0.13883010642823768
+ 0.13883404404698102
+ 0.13883798174727896
+ 0.13884191952913508
+ 0.13884585739255323
+ 0.13884979533753694
+ 0.13885373336408954
+ 0.13885767147221492
+ 0.13886160966191638
+ 0.13886554793319791
+ 0.13886948628606263
+ 0.13887342472051445
+ 0.13887736323655694
+ 0.13888130183419362
+ 0.1388852405134281
+ 0.13888917927426392
+ 0.1388931181167046
+ 0.13889705704075403
+ 0.13890099604641548
+ 0.13890493513369254
+ 0.13890887430258925
+ 0.13891281355310864
+ 0.13891675288525454
+ 0.13892069229903051
+ 0.13892463179444031
+ 0.13892857137148731
+ 0.13893251103017504
+ 0.13893645077050751
+ 0.13894039059248772
+ 0.13894433049611968
+ 0.13894827048140695
+ 0.13895221054835305
+ 0.13895615069696149
+ 0.13896009092723588
+ 0.13896403123918
+ 0.13896797163279717
+ 0.13897191210809118
+ 0.13897585266506574
+ 0.13897979330372412
+ 0.13898373402406994
+ 0.13898767482610708
+ 0.13899161570983889
+ 0.13899555667526914
+ 0.13899949772240117
+ 0.13900343885123875
+ 0.13900738006178556
+ 0.13901132135404498
+ 0.13901526272802045
+ 0.13901920418371638
+ 0.13902314572113542
+ 0.13902708734028163
+ 0.13903102903656733
+ 0.13903497081828933
+ 0.13903891269170685
+ 0.13904285465682406
+ 0.13904679671364439
+ 0.1390507388621712
+ 0.13905468110240832
+ 0.1390586234343596
+ 0.13906256585802837
+ 0.139066508373418
+ 0.13907045098053272
+ 0.13907439367937557
+ 0.13907833646995044
+ 0.13908227935226097
+ 0.1390862223263106
+ 0.13909016539210309
+ 0.13909410854964202
+ 0.13909805179893095
+ 0.13910199513997354
+ 0.13910593857277345
+ 0.13910988209733416
+ 0.13911382571365941
+ 0.13911776942175266
+ 0.13912171322161762
+ 0.13912565711325789
+ 0.13912960109667716
+ 0.13913354517187904
+ 0.13913748933886699
+ 0.13914143359764486
+ 0.13914537794821585
+ 0.139149322390584
+ 0.13915326692475277
+ 0.13915721155072577
+ 0.13916115626850648
+ 0.13916510107809885
+ 0.13916904597950616
+ 0.13917299097273222
+ 0.13917693605778048
+ 0.13918088123465477
+ 0.13918482650335845
+ 0.13918877186389542
+ 0.13919271731626892
+ 0.13919666286048307
+ 0.13920060849654101
+ 0.13920455422444664
+ 0.13920850004420343
+ 0.13921244595581514
+ 0.13921639195928517
+ 0.13922033805461728
+ 0.13922428424181513
+ 0.13922823052088221
+ 0.13923217689182218
+ 0.13923612335463867
+ 0.13924006990933532
+ 0.13924401655591584
+ 0.13924796329438352
+ 0.13925191012474233
+ 0.13925585704699561
+ 0.13925980406114727
+ 0.13926375116720063
+ 0.1392676983651594
+ 0.13927164565502737
+ 0.13927559303680795
+ 0.13927954051050476
+ 0.13928348807612156
+ 0.13928743573366195
+ 0.1392913834831295
+ 0.13929533132452757
+ 0.13929927925786018
+ 0.13930322728313085
+ 0.13930717540034296
+ 0.13931112360950049
+ 0.1393150719106068
+ 0.13931902030366561
+ 0.13932296878868025
+ 0.13932691736565481
+ 0.1393308660345926
+ 0.13933481479549753
+ 0.13933876364837286
+ 0.13934271259322226
+ 0.13934666163004966
+ 0.13935061075885838
+ 0.13935455997965204
+ 0.13935850929243448
+ 0.13936245869720904
+ 0.13936640819397958
+ 0.13937035778274956
+ 0.13937430746352264
+ 0.13937825723630248
+ 0.1393822071010927
+ 0.13938615705789709
+ 0.13939010710671873
+ 0.13939405724756165
+ 0.1393980074804296
+ 0.13940195780532585
+ 0.13940590822225432
+ 0.13940985873121831
+ 0.13941380933222175
+ 0.13941776002526787
+ 0.13942171081036078
+ 0.13942566168750387
+ 0.13942961265670045
+ 0.13943356371795479
+ 0.1394375148712699
+ 0.1394414661166499
+ 0.13944541745409803
+ 0.13944936888361806
+ 0.13945332040521358
+ 0.13945727201888836
+ 0.13946122372464573
+ 0.13946517552248952
+ 0.1394691274124232
+ 0.13947307939445067
+ 0.13947703146857518
+ 0.13948098363480088
+ 0.13948493589313074
+ 0.13948888824356889
+ 0.13949284068611861
+ 0.1394967932207837
+ 0.13950074584756786
+ 0.13950469856647466
+ 0.1395086513775074
+ 0.13951260428067022
+ 0.1395165572759664
+ 0.13952051036339963
+ 0.1395244635429736
+ 0.13952841681469191
+ 0.13953237017855816
+ 0.13953632363457588
+ 0.13954027718274878
+ 0.13954423082308051
+ 0.13954818455557469
+ 0.13955213838023495
+ 0.13955609229706503
+ 0.13956004630606814
+ 0.13956400040724842
+ 0.13956795460060903
+ 0.13957190888615403
+ 0.13957586326388657
+ 0.13957981773381062
+ 0.13958377229592969
+ 0.1395877269502476
+ 0.13959168169676772
+ 0.13959563653549359
+ 0.13959959146642917
+ 0.13960354648957782
+ 0.13960750160494323
+ 0.13961145681252912
+ 0.13961541211233891
+ 0.13961936750437659
+ 0.13962332298864538
+ 0.13962727856514914
+ 0.13963123423389143
+ 0.1396351899948759
+ 0.13963914584810599
+ 0.13964310179358577
+ 0.13964705783131831
+ 0.13965101396130769
+ 0.13965497018355716
+ 0.13965892649807077
+ 0.13966288290485179
+ 0.1396668394039039
+ 0.13967079599523088
+ 0.13967475267883633
+ 0.13967870945472366
+ 0.1396826663228968
+ 0.13968662328335915
+ 0.13969058033611439
+ 0.13969453748116625
+ 0.13969849471851817
+ 0.13970245204817403
+ 0.13970640947013716
+ 0.1397103669844115
+ 0.13971432459100017
+ 0.13971828228990765
+ 0.13972224008113657
+ 0.13972619796469141
+ 0.13973015594057514
+ 0.13973411400879179
+ 0.13973807216934497
+ 0.13974203042223812
+ 0.13974598876747493
+ 0.13974994720505915
+ 0.13975390573499427
+ 0.13975786435728402
+ 0.1397618230719318
+ 0.13976578187894151
+ 0.13976974077831683
+ 0.13977369977006088
+ 0.13977765885417795
+ 0.1397816180306711
+ 0.13978557729954441
+ 0.13978953666080129
+ 0.13979349611444544
+ 0.13979745566048046
+ 0.1398014152989098
+ 0.13980537502973728
+ 0.13980933485296659
+ 0.13981329476860133
+ 0.13981725477664494
+ 0.13982121487710131
+ 0.13982517506997369
+ 0.13982913535526625
+ 0.13983309573298205
+ 0.13983705620312512
+ 0.13984101676569913
+ 0.13984497742070748
+ 0.13984893816815364
+ 0.13985289900804163
+ 0.13985685994037492
+ 0.13986082096515712
+ 0.13986478208239186
+ 0.13986874329208276
+ 0.13987270459423345
+ 0.13987666598884771
+ 0.13988062747592897
+ 0.13988458905548093
+ 0.13988855072750725
+ 0.13989251249201154
+ 0.13989647434899741
+ 0.13990043629846863
+ 0.13990439834042859
+ 0.13990836047488114
+ 0.13991232270182966
+ 0.13991628502127801
+ 0.13992024743322976
+ 0.13992420993768856
+ 0.13992817253465809
+ 0.13993213522414166
+ 0.13993609800614334
+ 0.13994006088066654
+ 0.1399440238477149
+ 0.13994798690729213
+ 0.1399519500594017
+ 0.13995591330404744
+ 0.13995987664123283
+ 0.13996384007096163
+ 0.13996780359323732
+ 0.1399717672080637
+ 0.13997573091544438
+ 0.13997969471538288
+ 0.13998365860788281
+ 0.13998762259294795
+ 0.13999158667058184
+ 0.13999555084078802
+ 0.13999951510357031
+ 0.14000347945893241
+ 0.14000744390687772
+ 0.14001140844740997
+ 0.14001537308053269
+ 0.14001933780624978
+ 0.14002330262456456
+ 0.14002726753548111
+ 0.14003123253900243
+ 0.14003519763513281
+ 0.14003916282387532
+ 0.14004312810523406
+ 0.14004709347921235
+ 0.14005105894581385
+ 0.1400550245050424
+ 0.14005899015690143
+ 0.14006295590139456
+ 0.14006692173852578
+ 0.14007088766829814
+ 0.14007485369071571
+ 0.14007881980578202
+ 0.14008278601350077
+ 0.14008675231387546
+ 0.14009071870690978
+ 0.14009468519260748
+ 0.14009865177097189
+ 0.14010261844200708
+ 0.14010658520571628
+ 0.14011055206210329
+ 0.14011451901117181
+ 0.14011848605292543
+ 0.14012245318736791
+ 0.14012642041450254
+ 0.14013038773433317
+ 0.14013435514686365
+ 0.14013832265209725
+ 0.1401422902500376
+ 0.14014625794068877
+ 0.14015022572405395
+ 0.14015419360013701
+ 0.14015816156894154
+ 0.14016212963047128
+ 0.1401660977847296
+ 0.14017006603172036
+ 0.14017403437144707
+ 0.14017800280391349
+ 0.14018197132912322
+ 0.1401859399470797
+ 0.14018990865778674
+ 0.1401938774612482
+ 0.14019784635746743
+ 0.14020181534644807
+ 0.1402057844281939
+ 0.14020975360270835
+ 0.14021372286999523
+ 0.14021769223005817
+ 0.14022166168290087
+ 0.14022563122852671
+ 0.14022960086693961
+ 0.14023357059814312
+ 0.14023754042214073
+ 0.14024151033893623
+ 0.14024548034853326
+ 0.14024945045093537
+ 0.14025342064614635
+ 0.14025739093416975
+ 0.14026136131500919
+ 0.14026533178866835
+ 0.14026930235515081
+ 0.14027327301446038
+ 0.14027724376660036
+ 0.14028121461157486
+ 0.14028518554938707
+ 0.14028915658004082
+ 0.14029312770353983
+ 0.14029709891988759
+ 0.14030107022908783
+ 0.14030504163114418
+ 0.14030901312606026
+ 0.14031298471383979
+ 0.14031695639448641
+ 0.14032092816800359
+ 0.14032490003439507
+ 0.14032887199366453
+ 0.14033284404581564
+ 0.14033681619085189
+ 0.14034078842877692
+ 0.14034476075959471
+ 0.14034873318330868
+ 0.14035270569992223
+ 0.14035667830943932
+ 0.14036065101186349
+ 0.14036462380719841
+ 0.14036859669544766
+ 0.14037256967661485
+ 0.14037654275070374
+ 0.14038051591771822
+ 0.14038448917766119
+ 0.14038846253053702
+ 0.14039243597634904
+ 0.14039640951510096
+ 0.14040038314679634
+ 0.14040435687143871
+ 0.14040833068903211
+ 0.14041230459957979
+ 0.14041627860308575
+ 0.14042025269955324
+ 0.14042422688898626
+ 0.14042820117138832
+ 0.14043217554676285
+ 0.14043615001511389
+ 0.14044012457644481
+ 0.14044409923075923
+ 0.140448073978061
+ 0.14045204881835349
+ 0.14045602375164074
+ 0.14045999877792606
+ 0.14046397389721316
+ 0.14046794910950572
+ 0.14047192441480744
+ 0.14047589981312189
+ 0.14047987530445274
+ 0.14048385088880347
+ 0.14048782656617803
+ 0.1404918023365799
+ 0.14049577820001286
+ 0.14049975415648036
+ 0.140503730205986
+ 0.14050770634853371
+ 0.14051168258412705
+ 0.14051565891276951
+ 0.14051963533446465
+ 0.1405236118492165
+ 0.14052758845702831
+ 0.14053156515790419
+ 0.14053554195184734
+ 0.14053951883886148
+ 0.1405434958189504
+ 0.14054747289211783
+ 0.14055145005836708
+ 0.14055542731770201
+ 0.14055940467012659
+ 0.14056338211564381
+ 0.14056735965425782
+ 0.14057133728597188
+ 0.14057531501079004
+ 0.14057929282871559
+ 0.14058327073975241
+ 0.14058724874390419
+ 0.14059122684117417
+ 0.14059520503156658
+ 0.14059918331508481
+ 0.14060316169173229
+ 0.14060714016151293
+ 0.14061111872443025
+ 0.14061509738048791
+ 0.14061907612968974
+ 0.14062305497203925
+ 0.14062703390754
+ 0.14063101293619581
+ 0.14063499205801022
+ 0.14063897127298688
+ 0.14064295058112949
+ 0.14064692998244149
+ 0.14065090947692699
+ 0.14065488906458931
+ 0.14065886874543204
+ 0.14066284851945904
+ 0.14066682838667377
+ 0.1406708083470801
+ 0.14067478840068146
+ 0.14067876854748165
+ 0.14068274878748419
+ 0.14068672912069283
+ 0.14069070954711099
+ 0.14069469006674279
+ 0.14069867067959158
+ 0.1407026513856609
+ 0.14070663218495472
+ 0.14071061307747634
+ 0.14071459406322981
+ 0.14071857514221833
+ 0.1407225563144458
+ 0.14072653757991596
+ 0.14073051893863223
+ 0.14073450039059854
+ 0.14073848193581817
+ 0.14074246357429507
+ 0.14074644530603267
+ 0.14075042713103503
+ 0.14075440904930533
+ 0.14075839106084764
+ 0.14076237316566512
+ 0.14076635536376175
+ 0.14077033765514119
+ 0.14077432003980703
+ 0.14077830251776302
+ 0.14078228508901253
+ 0.14078626775355943
+ 0.14079025051140739
+ 0.14079423336255995
+ 0.14079821630702077
+ 0.14080219934479363
+ 0.14080618247588211
+ 0.14081016570029001
+ 0.1408141490180205
+ 0.14081813242907779
+ 0.1408221159334653
+ 0.14082609953118658
+ 0.14083008322224547
+ 0.14083406700664547
+ 0.1408380508843905
+ 0.14084203485548377
+ 0.14084601891992946
+ 0.14085000307773085
+ 0.14085398732889157
+ 0.14085797167341568
+ 0.14086195611130634
+ 0.14086594064256738
+ 0.14086992526720266
+ 0.14087390998521568
+ 0.14087789479660989
+ 0.14088187970138935
+ 0.14088586469955741
+ 0.1408898497911179
+ 0.14089383497607413
+ 0.14089782025443026
+ 0.14090180562618965
+ 0.14090579109135598
+ 0.14090977664993304
+ 0.14091376230192437
+ 0.14091774804733348
+ 0.14092173388616441
+ 0.14092571981842048
+ 0.14092970584410544
+ 0.14093369196322303
+ 0.14093767817577676
+ 0.14094166448177031
+ 0.1409456508812075
+ 0.14094963737409177
+ 0.1409536239604271
+ 0.14095761064021672
+ 0.14096159741346459
+ 0.14096558428017422
+ 0.1409695712403494
+ 0.14097355829399366
+ 0.14097754544111063
+ 0.14098153268170427
+ 0.14098552001577766
+ 0.14098950744333502
+ 0.14099349496437988
+ 0.14099748257891562
+ 0.14100147028694629
+ 0.14100545808847514
+ 0.14100944598350623
+ 0.14101343397204288
+ 0.14101742205408901
+ 0.14102141022964804
+ 0.14102539849872386
+ 0.14102938686131999
+ 0.14103337531744009
+ 0.14103736386708782
+ 0.14104135251026703
+ 0.14104534124698104
+ 0.14104933007723358
+ 0.14105331900102852
+ 0.14105730801836949
+ 0.14106129712925999
+ 0.14106528633370385
+ 0.14106927563170454
+ 0.14107326502326584
+ 0.1410772545083914
+ 0.14108124408708478
+ 0.14108523375934989
+ 0.14108922352519002
+ 0.14109321338460923
+ 0.14109720333761089
+ 0.14110119338419871
+ 0.14110518352437643
+ 0.14110917375814785
+ 0.14111316408551641
+ 0.14111715450648554
+ 0.14112114502105932
+ 0.14112513562924134
+ 0.14112912633103517
+ 0.14113311712644439
+ 0.14113710801547288
+ 0.1411410989981241
+ 0.14114509007440199
+ 0.14114908124430978
+ 0.14115307250785142
+ 0.14115706386503052
+ 0.14116105531585083
+ 0.14116504686031597
+ 0.14116903849842929
+ 0.14117303023019498
+ 0.14117702205561639
+ 0.14118101397469723
+ 0.14118500598744102
+ 0.14118899809385166
+ 0.14119299029393273
+ 0.14119698258768792
+ 0.14120097497512077
+ 0.14120496745623501
+ 0.14120896003103431
+ 0.14121295269952236
+ 0.14121694546170299
+ 0.14122093831757951
+ 0.14122493126715577
+ 0.14122892431043535
+ 0.14123291744742203
+ 0.14123691067811942
+ 0.14124090400253106
+ 0.14124489742066096
+ 0.14124889093251233
+ 0.14125288453808921
+ 0.14125687823739524
+ 0.14126087203043386
+ 0.14126486591720869
+ 0.14126885989772367
+ 0.1412728539719825
+ 0.14127684813998848
+ 0.14128084240174543
+ 0.14128483675725714
+ 0.14128883120652716
+ 0.14129282574955929
+ 0.14129682038635707
+ 0.14130081511692402
+ 0.14130480994126418
+ 0.14130880485938088
+ 0.14131279987127801
+ 0.14131679497695912
+ 0.14132079017642782
+ 0.14132478546968807
+ 0.14132878085674302
+ 0.14133277633759678
+ 0.14133677191225297
+ 0.14134076758071507
+ 0.14134476334298676
+ 0.14134875919907178
+ 0.14135275514897389
+ 0.14135675119269667
+ 0.1413607473302437
+ 0.14136474356161888
+ 0.14136873988682541
+ 0.14137273630586747
+ 0.14137673281874866
+ 0.14138072942547231
+ 0.1413847261260423
+ 0.14138872292046237
+ 0.14139271980873605
+ 0.14139671679086716
+ 0.1414007138668591
+ 0.14140471103671587
+ 0.14140870830044092
+ 0.1414127056580379
+ 0.14141670310951077
+ 0.14142070065486267
+ 0.14142469829409779
+ 0.14142869602721961
+ 0.14143269385423163
+ 0.14143669177513768
+ 0.14144068978994159
+ 0.14144468789864664
+ 0.1414486861012568
+ 0.1414526843977757
+ 0.14145668278820683
+ 0.14146068127255401
+ 0.14146467985082081
+ 0.14146867852301123
+ 0.14147267728912863
+ 0.14147667614917653
+ 0.14148067510315898
+ 0.14148467415107943
+ 0.14148867329294146
+ 0.141492672528749
+ 0.14149667185850581
+ 0.141500671282215
+ 0.14150467079988072
+ 0.14150867041150642
+ 0.14151267011709584
+ 0.14151666991665282
+ 0.14152066981018072
+ 0.1415246697976833
+ 0.14152866987916449
+ 0.14153267005462772
+ 0.14153667032407666
+ 0.14154067068751505
+ 0.14154467114494645
+ 0.14154867169637481
+ 0.14155267234180352
+ 0.14155667308123634
+ 0.14156067391467686
+ 0.14156467484212909
+ 0.14156867586359617
+ 0.1415726769790821
+ 0.1415766781885906
+ 0.14158067949212527
+ 0.1415846808896897
+ 0.14158868238128741
+ 0.14159268396692259
+ 0.14159668564659861
+ 0.14160068742031887
+ 0.14160468928808756
+ 0.14160869124990805
+ 0.14161269330578402
+ 0.141616695455719
+ 0.14162069769971711
+ 0.14162470003778174
+ 0.14162870246991649
+ 0.14163270499612515
+ 0.14163670761641145
+ 0.14164071033077871
+ 0.14164471313923133
+ 0.14164871604177215
+ 0.14165271903840537
+ 0.14165672212913466
+ 0.14166072531396334
+ 0.14166472859289542
+ 0.14166873196593432
+ 0.14167273543308415
+ 0.1416767389943481
+ 0.14168074264972988
+ 0.14168474639923348
+ 0.1416887502428622
+ 0.14169275418062027
+ 0.14169675821251057
+ 0.14170076233853762
+ 0.14170476655870451
+ 0.14170877087301531
+ 0.14171277528147333
+ 0.14171677978408229
+ 0.14172078438084623
+ 0.14172478907176839
+ 0.14172879385685261
+ 0.14173279873610273
+ 0.14173680370952227
+ 0.14174080877711484
+ 0.14174481393888413
+ 0.14174881919483395
+ 0.14175282454496788
+ 0.14175682998928976
+ 0.14176083552780303
+ 0.14176484116051136
+ 0.14176884688741864
+ 0.14177285270852857
+ 0.14177685862384448
+ 0.14178086463337033
+ 0.14178487073710974
+ 0.14178887693506631
+ 0.14179288322724398
+ 0.141796889613646
+ 0.14180089609427646
+ 0.14180490266913867
+ 0.14180890933823678
+ 0.14181291610157398
+ 0.14181692295915427
+ 0.14182092991098103
+ 0.14182493695705822
+ 0.14182894409738947
+ 0.14183295133197846
+ 0.14183695866082854
+ 0.14184096608394381
+ 0.14184497360132794
+ 0.14184898121298428
+ 0.1418529889189169
+ 0.14185699671912896
+ 0.14186100461362466
+ 0.14186501260240728
+ 0.14186902068548105
+ 0.14187302886284903
+ 0.14187703713451524
+ 0.1418810455004833
+ 0.14188505396075693
+ 0.14188906251533948
+ 0.14189307116423519
+ 0.1418970799074474
+ 0.14190108874497995
+ 0.14190509767683612
+ 0.14190910670302001
+ 0.14191311582353514
+ 0.14191712503838524
+ 0.14192113434757403
+ 0.14192514375110521
+ 0.14192915324898217
+ 0.1419331628412088
+ 0.14193717252778898
+ 0.14194118230872613
+ 0.14194519218402396
+ 0.14194920215368631
+ 0.14195321221771659
+ 0.14195722237611869
+ 0.14196123262889632
+ 0.14196524297605287
+ 0.14196925341759237
+ 0.14197326395351839
+ 0.14197727458383444
+ 0.14198128530854465
+ 0.14198529612765201
+ 0.1419893070411607
+ 0.14199331804907453
+ 0.1419973291513966
+ 0.14200134034813122
+ 0.14200535163928166
+ 0.1420093630248517
+ 0.14201337450484519
+ 0.14201738607926542
+ 0.14202139774811651
+ 0.14202540951140191
+ 0.14202942136912539
+ 0.14203343332129054
+ 0.14203744536790122
+ 0.14204145750896108
+ 0.14204546974447341
+ 0.1420494820744424
+ 0.14205349449887153
+ 0.14205750701776448
+ 0.14206151963112493
+ 0.14206553233895663
+ 0.14206954514126313
+ 0.14207355803804822
+ 0.14207757102931559
+ 0.14208158411506888
+ 0.14208559729531187
+ 0.14208961057004815
+ 0.14209362393928135
+ 0.14209763740301526
+ 0.14210165096125357
+ 0.14210566461399982
+ 0.14210967836125785
+ 0.14211369220303124
+ 0.14211770613932392
+ 0.14212172017013919
+ 0.14212573429548109
+ 0.14212974851535309
+ 0.14213376282975906
+ 0.14213777723870233
+ 0.14214179174218694
+ 0.14214580634021648
+ 0.1421498210327945
+ 0.14215383581992497
+ 0.14215785070161133
+ 0.14216186567785724
+ 0.14216588074866648
+ 0.14216989591404292
+ 0.14217391117398992
+ 0.14217792652851141
+ 0.14218194197761103
+ 0.14218595752129229
+ 0.14218997315955911
+ 0.142193988892415
+ 0.14219800471986382
+ 0.14220202064190923
+ 0.14220603665855461
+ 0.14221005276980409
+ 0.14221406897566108
+ 0.14221808527612931
+ 0.14222210167121244
+ 0.14222611816091435
+ 0.14223013474523855
+ 0.14223415142418877
+ 0.14223816819776886
+ 0.14224218506598224
+ 0.14224620202883259
+ 0.14225021908632379
+ 0.14225423623845954
+ 0.14225825348524349
+ 0.14226227082667917
+ 0.14226628826277044
+ 0.14227030579352096
+ 0.14227432341893426
+ 0.1422783411390143
+ 0.14228235895376462
+ 0.1422863768631889
+ 0.14229039486729098
+ 0.14229441296607429
+ 0.14229843115954269
+ 0.14230244944769985
+ 0.14230646783054937
+ 0.14231048630809509
+ 0.14231450488034061
+ 0.14231852354728966
+ 0.14232254230894598
+ 0.14232656116531309
+ 0.14233058011639482
+ 0.14233459916219471
+ 0.14233861830271671
+ 0.14234263753796428
+ 0.14234665686794118
+ 0.14235067629265125
+ 0.14235469581209795
+ 0.14235871542628498
+ 0.14236273513521625
+ 0.1423667549388952
+ 0.14237077483732583
+ 0.1423747948305116
+ 0.14237881491845622
+ 0.14238283510116337
+ 0.14238685537863693
+ 0.14239087575088014
+ 0.14239489621789736
+ 0.1423989167796916
+ 0.14240293743626697
+ 0.14240695818762727
+ 0.1424109790337757
+ 0.14241499997471643
+ 0.14241902101045284
+ 0.14242304214098891
+ 0.14242706336632802
+ 0.14243108468647422
+ 0.14243510610143079
+ 0.14243912761120167
+ 0.14244314921579071
+ 0.14244717091520112
+ 0.1424511927094371
+ 0.14245521459850208
+ 0.14245923658239976
+ 0.14246325866113391
+ 0.14246728083470828
+ 0.14247130310312625
+ 0.14247532546639194
+ 0.14247934792450873
+ 0.14248337047748039
+ 0.14248739312531078
+ 0.14249141586800346
+ 0.14249543870556211
+ 0.14249946163799046
+ 0.1425034846652922
+ 0.14250750778747101
+ 0.14251153100453046
+ 0.14251555431647464
+ 0.14251957772330695
+ 0.14252360122503088
+ 0.14252762482165043
+ 0.14253164851316927
+ 0.14253567229959122
+ 0.14253969618091969
+ 0.14254372015715849
+ 0.1425477442283114
+ 0.14255176839438202
+ 0.14255579265537405
+ 0.14255981701129125
+ 0.14256384146213721
+ 0.14256786600791574
+ 0.14257189064863057
+ 0.14257591538428516
+ 0.1425799402148834
+ 0.14258396514042898
+ 0.14258799016092577
+ 0.14259201527637691
+ 0.1425960404867867
+ 0.14260006579215848
+ 0.14260409119249623
+ 0.14260811668780318
+ 0.14261214227808353
+ 0.1426161679633409
+ 0.14262019374357846
+ 0.14262421961880073
+ 0.14262824558901074
+ 0.14263227165421266
+ 0.14263629781440981
+ 0.142640324069606
+ 0.14264435041980505
+ 0.14264837686501053
+ 0.14265240340522634
+ 0.14265643004045581
+ 0.14266045677070296
+ 0.14266448359597128
+ 0.14266851051626489
+ 0.14267253753158685
+ 0.14267656464194145
+ 0.14268059184733209
+ 0.14268461914776226
+ 0.14268864654323607
+ 0.14269267403375721
+ 0.14269670161932899
+ 0.14270072929995542
+ 0.14270475707564023
+ 0.14270878494638703
+ 0.14271281291219937
+ 0.14271684097308124
+ 0.14272086912903606
+ 0.14272489738006772
+ 0.14272892572617996
+ 0.14273295416737622
+ 0.1427369827036605
+ 0.14274101133503625
+ 0.14274504006150737
+ 0.1427490688830774
+ 0.14275309779975015
+ 0.1427571268115293
+ 0.14276115591841862
+ 0.14276518512042169
+ 0.14276921441754223
+ 0.14277324380978404
+ 0.14277727329715076
+ 0.14278130287964585
+ 0.14278533255727358
+ 0.1427893623300372
+ 0.14279339219794052
+ 0.1427974221609872
+ 0.14280145221918103
+ 0.14280548237252585
+ 0.14280951262102504
+ 0.14281354296468243
+ 0.14281757340350179
+ 0.14282160393748686
+ 0.14282563456664119
+ 0.14282966529096869
+ 0.14283369611047272
+ 0.14283772702515743
+ 0.14284175803502613
+ 0.14284578914008267
+ 0.14284982034033092
+ 0.14285385163577433
+ 0.14285788302641678
+ 0.14286191451226188
+ 0.14286594609331341
+ 0.14286997776957505
+ 0.14287400954105028
+ 0.14287804140774304
+ 0.14288207336965716
+ 0.14288610542679614
+ 0.14289013757916375
+ 0.14289416982676365
+ 0.14289820216959948
+ 0.14290223460767512
+ 0.1429062671409943
+ 0.14291029976956043
+ 0.14291433249337751
+ 0.14291836531244906
+ 0.14292239822677896
+ 0.14292643123637078
+ 0.14293046434122825
+ 0.14293449754135507
+ 0.14293853083675495
+ 0.14294256422743176
+ 0.14294659771338891
+ 0.14295063129463051
+ 0.14295466497115969
+ 0.14295869874298073
+ 0.14296273261009695
+ 0.14296676657251223
+ 0.14297080063023035
+ 0.14297483478325476
+ 0.14297886903158932
+ 0.14298290337523781
+ 0.14298693781420391
+ 0.14299097234849117
+ 0.14299500697810358
+ 0.1429990417030445
+ 0.1430030765233179
+ 0.14300711143892744
+ 0.14301114644987684
+ 0.14301518155616966
+ 0.14301921675780965
+ 0.1430232520548006
+ 0.14302728744714635
+ 0.14303132293485041
+ 0.14303535851791641
+ 0.14303939419634829
+ 0.14304342997014968
+ 0.14304746583932401
+ 0.14305150180387555
+ 0.14305553786380765
+ 0.14305957401912398
+ 0.14306361026982845
+ 0.14306764661592453
+ 0.14307168305741619
+ 0.14307571959430676
+ 0.14307975622660046
+ 0.14308379295430065
+ 0.14308782977741114
+ 0.14309186669593571
+ 0.14309590370987785
+ 0.14309994081924146
+ 0.14310397802403022
+ 0.14310801532424783
+ 0.14311205271989819
+ 0.14311609021098448
+ 0.14312012779751088
+ 0.14312416547948104
+ 0.14312820325689848
+ 0.14313224112976713
+ 0.14313627909809043
+ 0.14314031716187256
+ 0.14314435532111658
+ 0.14314839357582684
+ 0.14315243192600671
+ 0.14315647037165988
+ 0.1431605089127902
+ 0.14316454754940139
+ 0.14316858628149687
+ 0.14317262510908074
+ 0.14317666403215665
+ 0.14318070305072811
+ 0.14318474216479887
+ 0.14318878137437277
+ 0.14319282067945352
+ 0.14319686008004473
+ 0.14320089957615006
+ 0.14320493916777338
+ 0.14320897885491846
+ 0.1432130186375889
+ 0.14321705851578831
+ 0.14322109848952067
+ 0.14322513855878941
+ 0.14322917872359828
+ 0.14323321898395119
+ 0.14323725933985174
+ 0.14324129979130354
+ 0.14324534033831049
+ 0.14324938098087633
+ 0.14325342171900463
+ 0.14325746255269903
+ 0.14326150348196343
+ 0.14326554450680143
+ 0.14326958562721681
+ 0.1432736268432134
+ 0.14327766815479462
+ 0.14328170956196443
+ 0.14328575106472624
+ 0.14328979266308434
+ 0.14329383435704179
+ 0.14329787614660294
+ 0.143301918031771
+ 0.14330596001254967
+ 0.14331000208894307
+ 0.14331404426095465
+ 0.14331808652858827
+ 0.14332212889184739
+ 0.14332617135073586
+ 0.14333021390525766
+ 0.14333425655541612
+ 0.14333829930121508
+ 0.14334234214265848
+ 0.14334638507974959
+ 0.14335042811249252
+ 0.14335447124089087
+ 0.14335851446494832
+ 0.14336255778466855
+ 0.1433666012000554
+ 0.14337064471111252
+ 0.1433746883178435
+ 0.14337873202025228
+ 0.14338277581834255
+ 0.14338681971211786
+ 0.14339086370158211
+ 0.1433949077867388
+ 0.143398951967592
+ 0.1434029962441449
+ 0.1434070406164018
+ 0.1434110850843662
+ 0.14341512964804154
+ 0.14341917430743173
+ 0.14342321906254066
+ 0.14342726391337204
+ 0.1434313088599293
+ 0.14343535390221629
+ 0.14343939904023684
+ 0.14344344427399472
+ 0.14344748960349324
+ 0.14345153502873667
+ 0.14345558054972837
+ 0.14345962616647198
+ 0.14346367187897169
+ 0.14346771768723082
+ 0.14347176359125291
+ 0.14347580959104236
+ 0.14347985568660207
+ 0.14348390187793661
+ 0.14348794816504906
+ 0.14349199454794348
+ 0.14349604102662344
+ 0.14350008760109248
+ 0.14350413427135469
+ 0.14350818103741372
+ 0.14351222789927306
+ 0.14351627485693666
+ 0.14352032191040817
+ 0.1435243690596911
+ 0.14352841630478946
+ 0.14353246364570688
+ 0.14353651108244717
+ 0.14354055861501383
+ 0.14354460624341089
+ 0.1435486539676418
+ 0.14355270178771037
+ 0.14355674970362037
+ 0.14356079771537542
+ 0.14356484582297938
+ 0.14356889402643586
+ 0.14357294232574855
+ 0.14357699072092131
+ 0.14358103921195775
+ 0.14358508779886162
+ 0.14358913648163671
+ 0.14359318526028678
+ 0.14359723413481559
+ 0.14360128310522638
+ 0.14360533217152355
+ 0.14360938133371035
+ 0.14361343059179074
+ 0.14361747994576821
+ 0.14362152939564679
+ 0.14362557894143008
+ 0.14362962858312164
+ 0.14363367832072546
+ 0.14363772815424508
+ 0.14364177808368436
+ 0.14364582810904691
+ 0.14364987823033645
+ 0.14365392844755681
+ 0.14365797876071165
+ 0.14366202916980478
+ 0.1436660796748396
+ 0.14367013027582043
+ 0.14367418097275036
+ 0.14367823176563355
+ 0.14368228265447358
+ 0.14368633363927411
+ 0.14369038472003889
+ 0.1436944358967718
+ 0.14369848716947628
+ 0.14370253853815637
+ 0.14370659000281566
+ 0.14371064156345786
+ 0.14371469322008665
+ 0.14371874497270587
+ 0.14372279682131919
+ 0.14372684876593034
+ 0.14373090080654291
+ 0.14373495294316094
+ 0.143739005175788
+ 0.14374305750442767
+ 0.14374710992908371
+ 0.1437511624497603
+ 0.14375521506646055
+ 0.14375926777918852
+ 0.14376332058794775
+ 0.14376737349274216
+ 0.14377142649357547
+ 0.14377547959045128
+ 0.14377953278337333
+ 0.1437835860723454
+ 0.14378763945737122
+ 0.14379169293845467
+ 0.1437957465155992
+ 0.14379980018880861
+ 0.14380385395808684
+ 0.14380790782343728
+ 0.14381196178486372
+ 0.14381601584237014
+ 0.14382006999596034
+ 0.14382412424563759
+ 0.14382817859140606
+ 0.14383223303326909
+ 0.14383628757123085
+ 0.1438403422052946
+ 0.1438443969354645
+ 0.14384845176174402
+ 0.14385250668413688
+ 0.14385656170264693
+ 0.14386061681727783
+ 0.14386467202803338
+ 0.14386872733491726
+ 0.14387278273793316
+ 0.14387683823708494
+ 0.14388089383237618
+ 0.1438849495238107
+ 0.14388900531139212
+ 0.14389306119512438
+ 0.14389711717501116
+ 0.14390117325105611
+ 0.14390522942326273
+ 0.14390928569163522
+ 0.14391334205617706
+ 0.143917398516892
+ 0.14392145507378382
+ 0.14392551172685597
+ 0.14392956847611274
+ 0.1439336253215574
+ 0.14393768226319387
+ 0.1439417393010258
+ 0.14394579643505709
+ 0.14394985366529128
+ 0.14395391099173194
+ 0.14395796841438344
+ 0.14396202593324872
+ 0.14396608354833226
+ 0.14397014125963717
+ 0.14397419906716755
+ 0.14397825697092712
+ 0.14398231497091946
+ 0.1439863730671482
+ 0.14399043125961744
+ 0.14399448954833063
+ 0.1439985479332917
+ 0.14400260641450413
+ 0.1440066649919719
+ 0.14401072366569859
+ 0.14401478243568802
+ 0.14401884130194392
+ 0.14402290026446996
+ 0.14402695932326995
+ 0.14403101847834762
+ 0.14403507772970653
+ 0.14403913707735061
+ 0.14404319652128364
+ 0.14404725606150906
+ 0.14405131569803098
+ 0.14405537543085289
+ 0.1440594352599785
+ 0.14406349518541176
+ 0.14406755520715636
+ 0.14407161532521578
+ 0.14407567553959408
+ 0.14407973585029468
+ 0.14408379625732162
+ 0.14408785676067845
+ 0.14409191736036908
+ 0.14409597805639715
+ 0.1441000388487661
+ 0.14410409973748023
+ 0.14410816072254282
+ 0.14411222180395786
+ 0.14411628298172888
+ 0.14412034425585996
+ 0.14412440562635451
+ 0.14412846709321633
+ 0.14413252865644918
+ 0.14413659031605711
+ 0.14414065207204324
+ 0.14414471392441167
+ 0.14414877587316619
+ 0.14415283791831041
+ 0.14415690005984816
+ 0.14416096229778311
+ 0.14416502463211892
+ 0.14416908706285955
+ 0.14417314959000857
+ 0.14417721221356966
+ 0.14418127493354682
+ 0.14418533774994358
+ 0.14418940066276364
+ 0.14419346367201094
+ 0.14419752677768924
+ 0.14420158997980187
+ 0.14420565327835302
+ 0.14420971667334623
+ 0.14421378016478512
+ 0.14421784375267366
+ 0.14422190743701571
+ 0.14422597121781447
+ 0.14423003509507432
+ 0.14423409906879853
+ 0.14423816313899104
+ 0.1442422273056555
+ 0.14424629156879593
+ 0.14425035592841565
+ 0.14425442038451852
+ 0.14425848493710861
+ 0.14426254958618925
+ 0.14426661433176424
+ 0.14427067917383757
+ 0.14427474411241287
+ 0.14427880914749383
+ 0.14428287427908409
+ 0.14428693950718749
+ 0.14429100483180796
+ 0.14429507025294899
+ 0.14429913577061454
+ 0.14430320138480793
+ 0.14430726709553324
+ 0.14431133290279435
+ 0.14431539880659483
+ 0.14431946480693827
+ 0.14432353090382849
+ 0.14432759709726942
+ 0.14433166338726475
+ 0.14433572977381795
+ 0.14433979625693308
+ 0.14434386283661363
+ 0.14434792951286371
+ 0.1443519962856866
+ 0.14435606315508639
+ 0.14436013012106666
+ 0.14436419718363125
+ 0.14436826434278394
+ 0.14437233159852808
+ 0.14437639895086807
+ 0.14438046639980728
+ 0.14438453394534928
+ 0.14438860158749803
+ 0.1443926693262573
+ 0.14439673716163073
+ 0.14440080509362216
+ 0.14440487312223554
+ 0.144408941247474
+ 0.14441300946934207
+ 0.14441707778784282
+ 0.14442114620298022
+ 0.14442521471475819
+ 0.14442928332318017
+ 0.14443335202825039
+ 0.14443742082997207
+ 0.1444414897283493
+ 0.14444555872338552
+ 0.14444962781508477
+ 0.1444536970034507
+ 0.14445776628848703
+ 0.14446183567019744
+ 0.14446590514858582
+ 0.14446997472365566
+ 0.14447404439541103
+ 0.14447811416385559
+ 0.14448218402899304
+ 0.14448625399082682
+ 0.14449032404936143
+ 0.14449439420459986
+ 0.14449846445654629
+ 0.14450253480520442
+ 0.14450660525057771
+ 0.1445106757926703
+ 0.14451474643148557
+ 0.14451881716702761
+ 0.14452288799929996
+ 0.14452695892830641
+ 0.14453102995405065
+ 0.14453510107653647
+ 0.14453917229576779
+ 0.14454324361174828
+ 0.1445473150244814
+ 0.14455138653397109
+ 0.14455545814022122
+ 0.14455952984323561
+ 0.1445636016430176
+ 0.14456767353957123
+ 0.14457174553290017
+ 0.14457581762300831
+ 0.1445798898098993
+ 0.14458396209357668
+ 0.14458803447404459
+ 0.14459210695130659
+ 0.14459617952536641
+ 0.14460025219622782
+ 0.14460432496389442
+ 0.14460839782837034
+ 0.14461247078965894
+ 0.14461654384776423
+ 0.14462061700268972
+ 0.14462469025443939
+ 0.14462876360301682
+ 0.14463283704842611
+ 0.14463691059067041
+ 0.14464098422975405
+ 0.14464505796568042
+ 0.14464913179845335
+ 0.1446532057280768
+ 0.1446572797545542
+ 0.1446613538778895
+ 0.14466542809808636
+ 0.1446695024151485
+ 0.14467357682907994
+ 0.14467765133988422
+ 0.14468172594756495
+ 0.14468580065212611
+ 0.14468987545357151
+ 0.14469395035190463
+ 0.14469802534712931
+ 0.14470210043924944
+ 0.14470617562826868
+ 0.14471025091419104
+ 0.14471432629701969
+ 0.14471840177675901
+ 0.1447224773534124
+ 0.14472655302698359
+ 0.14473062879747647
+ 0.14473470466489455
+ 0.14473878062924198
+ 0.14474285669052234
+ 0.14474693284873924
+ 0.14475100910389668
+ 0.1447550854559983
+ 0.14475916190504773
+ 0.14476323845104885
+ 0.14476731509400537
+ 0.14477139183392135
+ 0.14477546867079988
+ 0.14477954560464532
+ 0.14478362263546127
+ 0.14478769976325123
+ 0.14479177698801921
+ 0.14479585430976913
+ 0.14479993172850422
+ 0.14480400924422854
+ 0.1448080868569461
+ 0.14481216456666021
+ 0.14481624237337479
+ 0.14482032027709368
+ 0.14482439827782059
+ 0.14482847637555921
+ 0.14483255457031358
+ 0.14483663286208692
+ 0.1448407112508833
+ 0.14484478973670667
+ 0.14484886831956037
+ 0.14485294699944859
+ 0.14485702577637458
+ 0.1448611046503426
+ 0.14486518362135609
+ 0.14486926268941916
+ 0.14487334185453504
+ 0.14487742111670776
+ 0.14488150047594114
+ 0.14488557993223894
+ 0.14488965948560489
+ 0.14489373913604262
+ 0.14489781888355602
+ 0.14490189872814874
+ 0.1449059786698246
+ 0.14491005870858742
+ 0.14491413884444088
+ 0.1449182190773888
+ 0.14492229940743495
+ 0.14492637983458281
+ 0.14493046035883669
+ 0.14493454098019981
+ 0.14493862169867608
+ 0.14494270251426961
+ 0.14494678342698361
+ 0.14495086443682212
+ 0.14495494554378921
+ 0.14495902674788783
+ 0.14496310804912249
+ 0.14496718944749665
+ 0.14497127094301404
+ 0.14497535253567873
+ 0.14497943422549386
+ 0.1449835160124639
+ 0.14498759789659202
+ 0.14499167987788231
+ 0.14499576195633854
+ 0.14499984413196432
+ 0.14500392640476339
+ 0.14500800877473974
+ 0.14501209124189698
+ 0.14501617380623882
+ 0.14502025646776906
+ 0.14502433922649161
+ 0.14502842208240996
+ 0.145032505035528
+ 0.1450365880858496
+ 0.14504067123337827
+ 0.14504475447811802
+ 0.14504883782007261
+ 0.14505292125924563
+ 0.14505700479564096
+ 0.14506108842926241
+ 0.14506517216011341
+ 0.14506925598819834
+ 0.14507333991352028
+ 0.14507742393608342
+ 0.14508150805589137
+ 0.14508559227294798
+ 0.14508967658725688
+ 0.14509376099882215
+ 0.14509784550764707
+ 0.14510193011373571
+ 0.14510601481709187
+ 0.14511009961771923
+ 0.14511418451562144
+ 0.14511826951080239
+ 0.14512235460326589
+ 0.14512643979301557
+ 0.14513052508005536
+ 0.14513461046438886
+ 0.14513869594601997
+ 0.14514278152495216
+ 0.14514686720118958
+ 0.14515095297473593
+ 0.14515503884559494
+ 0.14515912481376997
+ 0.14516321087926545
+ 0.14516729704208484
+ 0.14517138330223164
+ 0.14517546965971009
+ 0.14517955611452363
+ 0.14518364266667616
+ 0.14518772931617141
+ 0.14519181606301315
+ 0.14519590290720499
+ 0.14519998984875104
+ 0.14520407688765488
+ 0.14520816402392026
+ 0.14521225125755083
+ 0.14521633858855076
+ 0.14522042601692323
+ 0.14522451354267246
+ 0.14522860116580211
+ 0.14523268888631594
+ 0.14523677670421761
+ 0.14524086461951108
+ 0.14524495263219997
+ 0.14524904074228795
+ 0.14525312894977899
+ 0.14525721725467672
+ 0.14526130565698517
+ 0.14526539415670781
+ 0.14526948275384835
+ 0.14527357144841091
+ 0.14527766024039912
+ 0.14528174912981665
+ 0.14528583811666732
+ 0.14528992720095479
+ 0.14529401638268316
+ 0.14529810566185572
+ 0.14530219503847649
+ 0.14530628451254932
+ 0.14531037408407793
+ 0.14531446375306598
+ 0.14531855351951747
+ 0.14532264338343587
+ 0.14532673334482527
+ 0.14533082340368911
+ 0.14533491356003123
+ 0.1453390038138557
+ 0.145343094165166
+ 0.14534718461396587
+ 0.14535127516025931
+ 0.1453553658040499
+ 0.14535945654534152
+ 0.14536354738413793
+ 0.14536763832044278
+ 0.14537172935425993
+ 0.14537582048559308
+ 0.1453799117144462
+ 0.14538400304082288
+ 0.14538809446472689
+ 0.14539218598616227
+ 0.14539627760513243
+ 0.14540036932164127
+ 0.14540446113569253
+ 0.14540855304729011
+ 0.14541264505643772
+ 0.1454167371631391
+ 0.14542082936739797
+ 0.14542492166921808
+ 0.14542901406860342
+ 0.14543310656555766
+ 0.14543719916008452
+ 0.14544129185218782
+ 0.14544538464187132
+ 0.14544947752913859
+ 0.14545357051399371
+ 0.14545766359644044
+ 0.1454617567764824
+ 0.14546585005412327
+ 0.14546994342936728
+ 0.14547403690221775
+ 0.14547813047267849
+ 0.14548222414075329
+ 0.14548631790644626
+ 0.14549041176976088
+ 0.14549450573070094
+ 0.14549859978927024
+ 0.14550269394547252
+ 0.14550678819931162
+ 0.14551088255079109
+ 0.14551497699991511
+ 0.14551907154668739
+ 0.1455231661911113
+ 0.14552726093319093
+ 0.14553135577293017
+ 0.14553545071033239
+ 0.14553954574540184
+ 0.14554364087814209
+ 0.14554773610855659
+ 0.1455518314366496
+ 0.14555592686242472
+ 0.14556002238588547
+ 0.14556411800703606
+ 0.14556821372588019
+ 0.14557230954242137
+ 0.14557640545666353
+ 0.14558050146861043
+ 0.14558459757826592
+ 0.14558869378563372
+ 0.1455927900907176
+ 0.14559688649352132
+ 0.14560098299404858
+ 0.14560507959230337
+ 0.1456091762882892
+ 0.14561327308201011
+ 0.14561736997346975
+ 0.14562146696267209
+ 0.14562556404962046
+ 0.14562966123431911
+ 0.14563375851677149
+ 0.14563785589698147
+ 0.14564195337495303
+ 0.14564605095068978
+ 0.14565014862419515
+ 0.14565424639547353
+ 0.14565834426452842
+ 0.14566244223136365
+ 0.14566654029598294
+ 0.14567063845839004
+ 0.14567473671858883
+ 0.14567883507658308
+ 0.14568293353237635
+ 0.14568703208597283
+ 0.14569113073737594
+ 0.14569522948658967
+ 0.14569932833361759
+ 0.14570342727846369
+ 0.14570752632113163
+ 0.14571162546162514
+ 0.14571572469994823
+ 0.14571982403610445
+ 0.14572392347009774
+ 0.14572802300193183
+ 0.14573212263161048
+ 0.14573622235913719
+ 0.14574032218451646
+ 0.14574442210775135
+ 0.1457485221288459
+ 0.14575262224780403
+ 0.14575672246462931
+ 0.1457608227793257
+ 0.14576492319189691
+ 0.14576902370234668
+ 0.14577312431067874
+ 0.14577722501689702
+ 0.14578132582100523
+ 0.14578542672300709
+ 0.14578952772290649
+ 0.14579362882070709
+ 0.14579773001641286
+ 0.14580183131002747
+ 0.14580593270155479
+ 0.14581003419099842
+ 0.14581413577836225
+ 0.14581823746365014
+ 0.14582233924686555
+ 0.14582644112801271
+ 0.14583054310709506
+ 0.14583464518411668
+ 0.14583874735908106
+ 0.14584284963199209
+ 0.14584695200285375
+ 0.14585105447166954
+ 0.14585515703844329
+ 0.14585925970317887
+ 0.14586336246588022
+ 0.14586746532655082
+ 0.14587156828519468
+ 0.14587567134181534
+ 0.14587977449641676
+ 0.14588387774900263
+ 0.14588798109957704
+ 0.14589208454814334
+ 0.14589618809470559
+ 0.14590029173926747
+ 0.14590439548183276
+ 0.14590849932240524
+ 0.14591260326098879
+ 0.14591670729758727
+ 0.14592081143220423
+ 0.14592491566484353
+ 0.14592901999550897
+ 0.14593312442420422
+ 0.14593722895093336
+ 0.14594133357570008
+ 0.14594543829850801
+ 0.14594954311936109
+ 0.145953648038263
+ 0.14595775305521752
+ 0.14596185817022866
+ 0.14596596338329984
+ 0.1459700686944351
+ 0.14597417410363833
+ 0.14597827961091284
+ 0.14598238521626292
+ 0.14598649091969218
+ 0.14599059672120454
+ 0.14599470262080333
+ 0.14599880861849282
+ 0.14600291471427651
+ 0.14600702090815856
+ 0.14601112720014231
+ 0.1460152335902318
+ 0.1460193400784307
+ 0.14602344666474298
+ 0.14602755334917217
+ 0.14603166013172236
+ 0.14603576701239707
+ 0.14603987399120033
+ 0.14604398106813568
+ 0.146048088243207
+ 0.14605219551641824
+ 0.1460563028877728
+ 0.14606041035727482
+ 0.14606451792492822
+ 0.1460686255907363
+ 0.14607273335470339
+ 0.14607684121683276
+ 0.14608094917712855
+ 0.14608505723559445
+ 0.14608916539223415
+ 0.14609327364705171
+ 0.14609738200005054
+ 0.14610149045123477
+ 0.14610559900060802
+ 0.14610970764817408
+ 0.1461138163939367
+ 0.14611792523790004
+ 0.1461220341800675
+ 0.14612614322044284
+ 0.14613025235902991
+ 0.14613436159583282
+ 0.146138470930855
+ 0.14614258036410049
+ 0.14614668989557275
+ 0.14615079952527588
+ 0.14615490925321345
+ 0.14615901907938963
+ 0.14616312900380776
+ 0.14616723902647188
+ 0.14617134914738578
+ 0.14617545936655302
+ 0.14617956968397769
+ 0.1461836800996632
+ 0.14618779061361398
+ 0.14619190122583339
+ 0.14619601193632509
+ 0.14620012274509314
+ 0.14620423365214144
+ 0.14620834465747348
+ 0.14621245576109315
+ 0.14621656696300428
+ 0.1462206782632107
+ 0.14622478966171604
+ 0.14622890115852447
+ 0.14623301275363915
+ 0.14623712444706458
+ 0.14624123623880411
+ 0.14624534812886161
+ 0.14624946011724105
+ 0.14625357220394597
+ 0.14625768438898032
+ 0.14626179667234784
+ 0.1462659090540524
+ 0.14627002153409757
+ 0.14627413411248746
+ 0.14627824678922574
+ 0.14628235956431621
+ 0.14628647243776266
+ 0.14629058540956866
+ 0.1462946984797385
+ 0.14629881164827557
+ 0.14630292491518371
+ 0.14630703828046687
+ 0.14631115174412881
+ 0.14631526530617334
+ 0.14631937896660402
+ 0.14632349272542489
+ 0.14632760658263982
+ 0.14633172053825227
+ 0.14633583459226648
+ 0.14633994874468575
+ 0.14634406299551428
+ 0.1463481773447558
+ 0.14635229179241385
+ 0.14635640633849259
+ 0.14636052098299543
+ 0.14636463572592651
+ 0.14636875056728951
+ 0.1463728655070882
+ 0.14637698054532641
+ 0.14638109568200797
+ 0.14638521091713635
+ 0.14638932625071605
+ 0.14639344168274998
+ 0.14639755721324293
+ 0.14640167284219774
+ 0.14640578856961886
+ 0.14640990439550977
+ 0.14641402031987449
+ 0.14641813634271647
+ 0.14642225246403992
+ 0.14642636868384834
+ 0.14643048500214578
+ 0.1464346014189358
+ 0.14643871793422231
+ 0.14644283454800935
+ 0.14644695126030011
+ 0.14645106807109895
+ 0.14645518498040946
+ 0.14645930198823554
+ 0.14646341909458091
+ 0.1464675362994492
+ 0.14647165360284453
+ 0.14647577100477049
+ 0.146479888505231
+ 0.14648400610422976
+ 0.14648812380177059
+ 0.14649224159785748
+ 0.1464963594924939
+ 0.1465004774856839
+ 0.14650459557743115
+ 0.14650871376773955
+ 0.14651283205661275
+ 0.14651695044405463
+ 0.14652106893006922
+ 0.14652518751466018
+ 0.14652930619783106
+ 0.14653342497958607
+ 0.14653754385992851
+ 0.14654166283886252
+ 0.146545781916392
+ 0.14654990109252078
+ 0.14655402036725212
+ 0.14655813974059051
+ 0.14656225921253929
+ 0.14656637878310241
+ 0.1465704984522837
+ 0.1465746182200868
+ 0.14657873808651578
+ 0.14658285805157442
+ 0.14658697811526633
+ 0.14659109827759534
+ 0.14659521853856558
+ 0.14659933889818028
+ 0.14660345935644378
+ 0.14660757991335963
+ 0.1466117005689315
+ 0.1466158213231635
+ 0.14661994217605936
+ 0.14662406312762261
+ 0.14662818417785761
+ 0.14663230532676766
+ 0.14663642657435677
+ 0.14664054792062861
+ 0.14664466936558709
+ 0.14664879090923608
+ 0.14665291255157928
+ 0.14665703429262061
+ 0.14666115613236375
+ 0.1466652780708125
+ 0.14666940010797075
+ 0.1466735222438422
+ 0.14667764447843101
+ 0.14668176681174039
+ 0.14668588924377465
+ 0.14669001177453739
+ 0.14669413440403234
+ 0.14669825713226356
+ 0.14670237995923463
+ 0.14670650288494955
+ 0.14671062590941172
+ 0.14671474903262549
+ 0.14671887225459415
+ 0.14672299557532209
+ 0.14672711899481278
+ 0.1467312425130701
+ 0.14673536613009744
+ 0.14673948984589924
+ 0.146743613660479
+ 0.14674773757384066
+ 0.14675186158598785
+ 0.14675598569692455
+ 0.14676010990665433
+ 0.14676423421518128
+ 0.146768358622509
+ 0.1467724831286415
+ 0.14677660773358242
+ 0.14678073243733578
+ 0.14678485723990514
+ 0.14678898214129429
+ 0.14679310714150728
+ 0.14679723224054772
+ 0.14680135743841957
+ 0.14680548273512634
+ 0.14680960813067226
+ 0.14681373362506106
+ 0.14681785921829635
+ 0.14682198491038187
+ 0.14682611070132184
+ 0.14683023659111971
+ 0.14683436257977933
+ 0.1468384886673047
+ 0.14684261485369945
+ 0.14684674113896745
+ 0.14685086752311269
+ 0.14685499400613855
+ 0.1468591205880492
+ 0.14686324726884839
+ 0.14686737404853983
+ 0.14687150092712747
+ 0.14687562790461509
+ 0.14687975498100633
+ 0.14688388215630513
+ 0.14688800943051539
+ 0.14689213680364072
+ 0.1468962642756852
+ 0.14690039184665243
+ 0.14690451951654629
+ 0.14690864728537059
+ 0.14691277515312903
+ 0.14691690311982589
+ 0.14692103118546432
+ 0.14692515935004849
+ 0.14692928761358229
+ 0.14693341597606915
+ 0.14693754443751342
+ 0.14694167299791849
+ 0.14694580165728827
+ 0.14694993041562679
+ 0.14695405927293781
+ 0.14695818822922477
+ 0.14696231728449177
+ 0.1469664464387426
+ 0.14697057569198121
+ 0.14697470504421131
+ 0.14697883449543656
+ 0.14698296404566097
+ 0.14698709369488822
+ 0.14699122344312232
+ 0.14699535329036695
+ 0.14699948323662576
+ 0.14700361328190281
+ 0.14700774342620201
+ 0.14701187366952687
+ 0.14701600401188139
+ 0.14702013445326936
+ 0.14702426499369461
+ 0.14702839563316075
+ 0.14703252637167211
+ 0.14703665720923176
+ 0.14704078814584429
+ 0.14704491918151305
+ 0.14704905031624196
+ 0.14705318155003483
+ 0.14705731288289556
+ 0.14706144431482771
+ 0.14706557584583543
+ 0.14706970747592218
+ 0.14707383920509215
+ 0.14707797103334913
+ 0.14708210296069657
+ 0.14708623498713869
+ 0.14709036711267906
+ 0.14709449933732155
+ 0.14709863166107012
+ 0.14710276408392831
+ 0.14710689660590015
+ 0.14711102922698943
+ 0.14711516194720006
+ 0.14711929476653574
+ 0.14712342768500031
+ 0.14712756070259739
+ 0.14713169381933111
+ 0.14713582703520522
+ 0.14713996035022339
+ 0.14714409376438964
+ 0.14714822727770768
+ 0.14715236089018127
+ 0.14715649460181432
+ 0.14716062841261057
+ 0.14716476232257392
+ 0.14716889633170829
+ 0.14717303044001728
+ 0.14717716464750485
+ 0.14718129895417473
+ 0.14718543336003084
+ 0.14718956786507675
+ 0.14719370246931673
+ 0.14719783717275428
+ 0.14720197197539325
+ 0.14720610687723765
+ 0.14721024187829104
+ 0.14721437697855735
+ 0.14721851217804052
+ 0.14722264747674413
+ 0.14722678287467222
+ 0.14723091837182842
+ 0.14723505396821687
+ 0.14723918966384103
+ 0.14724332545870492
+ 0.14724746135281228
+ 0.14725159734616697
+ 0.14725573343877291
+ 0.14725986963063378
+ 0.14726400592175334
+ 0.14726814231213561
+ 0.14727227880178417
+ 0.14727641539070321
+ 0.14728055207889643
+ 0.14728468886636731
+ 0.14728882575312011
+ 0.14729296273915829
+ 0.14729709982448599
+ 0.14730123700910699
+ 0.1473053742930249
+ 0.14730951167624373
+ 0.14731364915876721
+ 0.14731778674059923
+ 0.14732192442174344
+ 0.14732606220220398
+ 0.14733020008198433
+ 0.14733433806108867
+ 0.14733847613952053
+ 0.14734261431728393
+ 0.14734675259438271
+ 0.14735089097082041
+ 0.14735502944660106
+ 0.14735916802172866
+ 0.14736330669620668
+ 0.14736744547003905
+ 0.14737158434322978
+ 0.14737572331578261
+ 0.14737986238770129
+ 0.14738400155898984
+ 0.14738814082965168
+ 0.14739228019969089
+ 0.14739641966911138
+ 0.14740055923791712
+ 0.14740469890611149
+ 0.14740883867369858
+ 0.14741297854068208
+ 0.1474171185070661
+ 0.14742125857285407
+ 0.14742539873805019
+ 0.14742953900265796
+ 0.14743367936668172
+ 0.14743781983012463
+ 0.1474419603929909
+ 0.14744610105528438
+ 0.14745024181700883
+ 0.14745438267816793
+ 0.14745852363876574
+ 0.1474626646988059
+ 0.14746680585829247
+ 0.1474709471172293
+ 0.14747508847561963
+ 0.14747922993346804
+ 0.14748337149077781
+ 0.14748751314755332
+ 0.1474916549037977
+ 0.14749579675951538
+ 0.14749993871471015
+ 0.14750408076938532
+ 0.14750822292354515
+ 0.14751236517719352
+ 0.14751650753033405
+ 0.14752064998297043
+ 0.147524792535107
+ 0.14752893518674706
+ 0.14753307793789486
+ 0.14753722078855405
+ 0.14754136373872823
+ 0.14754550678842168
+ 0.14754964993763781
+ 0.14755379318638082
+ 0.14755793653465418
+ 0.1475620799824621
+ 0.14756622352980814
+ 0.14757036717669608
+ 0.14757451092313009
+ 0.14757865476911372
+ 0.14758279871465083
+ 0.14758694275974538
+ 0.14759108690440106
+ 0.1475952311486218
+ 0.14759937549241151
+ 0.14760351993577367
+ 0.14760766447871235
+ 0.14761180912123159
+ 0.14761595386333504
+ 0.1476200987050264
+ 0.14762424364630963
+ 0.14762838868718842
+ 0.14763253382766686
+ 0.14763667906774858
+ 0.1476408244074377
+ 0.14764496984673764
+ 0.14764911538565231
+ 0.14765326102418594
+ 0.14765740676234188
+ 0.14766155260012445
+ 0.14766569853753708
+ 0.14766984457458374
+ 0.14767399071126827
+ 0.14767813694759449
+ 0.14768228328356631
+ 0.14768642971918716
+ 0.14769057625446153
+ 0.14769472288939295
+ 0.14769886962398529
+ 0.14770301645824221
+ 0.14770716339216763
+ 0.14771131042576546
+ 0.14771545755903942
+ 0.14771960479199378
+ 0.14772375212463165
+ 0.14772789955695742
+ 0.1477320470889748
+ 0.14773619472068747
+ 0.14774034245209935
+ 0.14774449028321446
+ 0.14774863821403619
+ 0.14775278624456911
+ 0.14775693437481621
+ 0.14776108260478185
+ 0.1477652309344698
+ 0.14776937936388368
+ 0.14777352789302783
+ 0.14777767652190554
+ 0.14778182525052075
+ 0.1477859740788775
+ 0.14779012300697952
+ 0.1477942720348307
+ 0.14779842116243494
+ 0.14780257038979566
+ 0.14780671971691722
+ 0.14781086914380337
+ 0.14781501867045752
+ 0.14781916829688416
+ 0.14782331802308665
+ 0.14782746784906889
+ 0.14783161777483483
+ 0.14783576780038832
+ 0.14783991792573317
+ 0.14784406815087311
+ 0.14784821847581214
+ 0.14785236890055406
+ 0.14785651942510269
+ 0.14786067004946199
+ 0.14786482077363547
+ 0.14786897159762724
+ 0.14787312252144119
+ 0.1478772735450809
+ 0.14788142466855025
+ 0.14788557589185347
+ 0.14788972721499399
+ 0.1478938786379756
+ 0.14789803016080255
+ 0.14790218178347839
+ 0.14790633350600704
+ 0.14791048532839227
+ 0.147914637250638
+ 0.14791878927274818
+ 0.14792294139472628
+ 0.1479270936165766
+ 0.14793124593830262
+ 0.14793539835990829
+ 0.1479395508813976
+ 0.14794370350277439
+ 0.14794785622404216
+ 0.14795200904520511
+ 0.14795616196626687
+ 0.14796031498723147
+ 0.14796446810810268
+ 0.14796862132888419
+ 0.14797277464958011
+ 0.14797692807019397
+ 0.14798108159072998
+ 0.14798523521119167
+ 0.14798938893158306
+ 0.14799354275190787
+ 0.14799769667216997
+ 0.14800185069237326
+ 0.14800600481252166
+ 0.14801015903261883
+ 0.14801431335266887
+ 0.14801846777267544
+ 0.14802262229264235
+ 0.1480267769125734
+ 0.14803093163247283
+ 0.1480350864523437
+ 0.14803924137219077
+ 0.14804339639201736
+ 0.14804755151182725
+ 0.14805170673162477
+ 0.14805586205141322
+ 0.14806001747119663
+ 0.14806417299097899
+ 0.14806832861076405
+ 0.14807248433055575
+ 0.1480766401503576
+ 0.14808079607017383
+ 0.14808495209000816
+ 0.14808910820986435
+ 0.1480932644297463
+ 0.14809742074965798
+ 0.14810157716960318
+ 0.1481057336895856
+ 0.148109890309609
+ 0.1481140470296777
+ 0.1481182038497949
+ 0.14812236076996521
+ 0.14812651779019187
+ 0.14813067491047893
+ 0.14813483213083034
+ 0.1481389894512497
+ 0.14814314687174107
+ 0.1481473043923083
+ 0.14815146201295512
+ 0.14815561973368538
+ 0.14815977755450288
+ 0.14816393547541171
+ 0.14816809349641566
+ 0.14817225161751829
+ 0.14817640983872368
+ 0.14818056816003583
+ 0.14818472658145823
+ 0.1481888851029951
+ 0.14819304372464986
+ 0.14819720244642684
+ 0.14820136126832945
+ 0.14820552019036187
+ 0.14820967921252773
+ 0.14821383833483098
+ 0.14821799755727563
+ 0.14822215687986512
+ 0.14822631630260355
+ 0.14823047582549492
+ 0.14823463544854282
+ 0.14823879517175131
+ 0.1482429549951241
+ 0.14824711491866488
+ 0.1482512749423778
+ 0.14825543506626671
+ 0.14825959529033542
+ 0.14826375561458746
+ 0.14826791603902711
+ 0.14827207656365807
+ 0.14827623718848393
+ 0.14828039791350911
+ 0.14828455873873694
+ 0.14828871966417176
+ 0.14829288068981678
+ 0.14829704181567635
+ 0.14830120304175412
+ 0.14830536436805403
+ 0.14830952579457982
+ 0.14831368732133565
+ 0.14831784894832492
+ 0.14832201067555173
+ 0.1483261725030201
+ 0.14833033443073368
+ 0.14833449645869606
+ 0.1483386585869117
+ 0.14834282081538394
+ 0.14834698314411687
+ 0.14835114557311446
+ 0.14835530810238018
+ 0.14835947073191827
+ 0.14836363346173234
+ 0.14836779629182628
+ 0.14837195922220398
+ 0.14837612225286942
+ 0.14838028538382617
+ 0.14838444861507846
+ 0.14838861194662989
+ 0.14839277537848433
+ 0.14839693891064554
+ 0.1484011025431177
+ 0.14840526627590442
+ 0.14840943010900967
+ 0.14841359404243709
+ 0.14841775807619073
+ 0.1484219222102745
+ 0.14842608644469205
+ 0.14843025077944744
+ 0.14843441521454429
+ 0.1484385797499867
+ 0.14844274438577842
+ 0.1484469091219234
+ 0.1484510739584253
+ 0.14845523889528831
+ 0.14845940393251578
+ 0.14846356907011199
+ 0.14846773430808066
+ 0.14847189964642557
+ 0.14847606508515065
+ 0.14848023062425977
+ 0.14848439626375701
+ 0.14848856200364571
+ 0.14849272784393011
+ 0.148496893784614
+ 0.14850105982570111
+ 0.14850522596719562
+ 0.14850939220910081
+ 0.14851355855142115
+ 0.14851772499416044
+ 0.14852189153732204
+ 0.14852605818091016
+ 0.14853022492492873
+ 0.14853439176938146
+ 0.14853855871427224
+ 0.14854272575960473
+ 0.14854689290538331
+ 0.14855106015161149
+ 0.14855522749829297
+ 0.14855939494543191
+ 0.14856356249303201
+ 0.1485677301410972
+ 0.1485718978896314
+ 0.1485760657386383
+ 0.14858023368812184
+ 0.14858440173808607
+ 0.1485885698885345
+ 0.14859273813947124
+ 0.1485969064909001
+ 0.14860107494282496
+ 0.14860524349524953
+ 0.14860941214817772
+ 0.14861358090161367
+ 0.14861774975556086
+ 0.14862191871002337
+ 0.14862608776500499
+ 0.1486302569205096
+ 0.14863442617654118
+ 0.14863859553310341
+ 0.14864276499020015
+ 0.14864693454783545
+ 0.14865110420601296
+ 0.14865527396473652
+ 0.14865944382401047
+ 0.14866361378383802
+ 0.14866778384422333
+ 0.1486719540051703
+ 0.14867612426668267
+ 0.14868029462876461
+ 0.14868446509141964
+ 0.14868863565465174
+ 0.14869280631846482
+ 0.1486969770828627
+ 0.14870114794784911
+ 0.14870531891342825
+ 0.14870948997960373
+ 0.14871366114637946
+ 0.14871783241375935
+ 0.1487220037817471
+ 0.14872617525034681
+ 0.14873034681956213
+ 0.14873451848939712
+ 0.14873869025985545
+ 0.14874286213094132
+ 0.1487470341026583
+ 0.14875120617501028
+ 0.14875537834800109
+ 0.14875955062163462
+ 0.148763722995915
+ 0.14876789547084576
+ 0.14877206804643101
+ 0.14877624072267448
+ 0.14878041349957979
+ 0.14878458637715139
+ 0.14878875935539293
+ 0.1487929324343078
+ 0.14879710561390039
+ 0.14880127889417455
+ 0.14880545227513395
+ 0.14880962575678255
+ 0.14881379933912417
+ 0.14881797302216271
+ 0.14882214680590178
+ 0.14882632069034593
+ 0.14883049467549825
+ 0.14883466876136317
+ 0.14883884294794422
+ 0.14884301723524537
+ 0.14884719162327056
+ 0.14885136611202363
+ 0.14885554070150842
+ 0.1488597153917289
+ 0.14886389018268864
+ 0.14886806507439171
+ 0.14887224006684222
+ 0.14887641516004363
+ 0.14888059035399992
+ 0.14888476564871511
+ 0.14888894104419287
+ 0.14889311654043733
+ 0.14889729213745226
+ 0.14890146783524127
+ 0.14890564363380865
+ 0.14890981953315791
+ 0.14891399553329299
+ 0.14891817163421803
+ 0.14892234783593655
+ 0.14892652413845281
+ 0.14893070054177018
+ 0.14893487704589306
+ 0.14893905365082477
+ 0.14894323035656973
+ 0.14894740716313154
+ 0.1489515840705137
+ 0.1489557610787208
+ 0.14895993818775649
+ 0.14896411539762419
+ 0.14896829270832834
+ 0.14897247011987264
+ 0.14897664763226073
+ 0.14898082524549677
+ 0.14898500295958453
+ 0.14898918077452775
+ 0.14899335869033059
+ 0.14899753670699681
+ 0.14900171482453001
+ 0.14900589304293455
+ 0.14901007136221359
+ 0.14901424978237168
+ 0.14901842830341272
+ 0.14902260692534014
+ 0.14902678564815811
+ 0.14903096447187014
+ 0.14903514339648039
+ 0.14903932242199286
+ 0.14904350154841126
+ 0.14904768077573954
+ 0.14905186010398133
+ 0.1490560395331407
+ 0.14906021906322162
+ 0.14906439869422783
+ 0.14906857842616317
+ 0.1490727582590316
+ 0.14907693819283679
+ 0.14908111822758308
+ 0.14908529836327389
+ 0.14908947859991342
+ 0.14909365893750523
+ 0.14909783937605325
+ 0.14910201991556152
+ 0.14910620055603407
+ 0.14911038129747428
+ 0.1491145621398865
+ 0.14911874308327441
+ 0.1491229241276418
+ 0.14912710527299264
+ 0.14913128651933069
+ 0.14913546786666029
+ 0.14913964931498461
+ 0.14914383086430802
+ 0.14914801251463436
+ 0.14915219426596729
+ 0.14915637611831079
+ 0.14916055807166875
+ 0.14916474012604522
+ 0.14916892228144363
+ 0.14917310453786831
+ 0.14917728689532297
+ 0.14918146935381149
+ 0.14918565191333769
+ 0.1491898345739055
+ 0.14919401733551876
+ 0.14919820019818125
+ 0.1492023831618973
+ 0.14920656622667028
+ 0.14921074939250431
+ 0.14921493265940308
+ 0.1492191160273709
+ 0.14922329949641117
+ 0.14922748306652797
+ 0.14923166673772523
+ 0.1492358505100066
+ 0.14924003438337632
+ 0.1492442183578381
+ 0.1492484024333956
+ 0.14925258661005303
+ 0.14925677088781425
+ 0.14926095526668279
+ 0.14926513974666297
+ 0.14926932432775822
+ 0.14927350900997291
+ 0.14927769379331049
+ 0.14928187867777526
+ 0.14928606366337074
+ 0.14929024875010097
+ 0.14929443393796971
+ 0.14929861922698101
+ 0.14930280461713863
+ 0.14930699010844659
+ 0.14931117570090854
+ 0.14931536139452889
+ 0.14931954718931073
+ 0.14932373308525856
+ 0.14932791908237589
+ 0.14933210518066678
+ 0.14933629138013521
+ 0.14934047768078504
+ 0.1493446640826199
+ 0.14934885058564384
+ 0.14935303718986082
+ 0.1493572238952745
+ 0.14936141070188907
+ 0.14936559760970791
+ 0.14936978461873562
+ 0.14937397172897568
+ 0.14937815894043185
+ 0.1493823462531082
+ 0.14938653366700866
+ 0.14939072118213698
+ 0.14939490879849696
+ 0.14939909651609279
+ 0.14940328433492805
+ 0.14940747225500697
+ 0.14941166027633329
+ 0.14941584839891053
+ 0.14942003662274303
+ 0.14942422494783444
+ 0.14942841337418875
+ 0.14943260190180988
+ 0.14943679053070158
+ 0.1494409792608678
+ 0.14944516809231245
+ 0.14944935702503964
+ 0.14945354605905264
+ 0.14945773519435607
+ 0.14946192443095316
+ 0.14946611376884819
+ 0.14947030320804514
+ 0.14947449274854749
+ 0.14947868239035958
+ 0.14948287213348482
+ 0.14948706197792752
+ 0.14949125192369131
+ 0.14949544197078016
+ 0.14949963211919792
+ 0.14950382236894844
+ 0.14950801272003594
+ 0.14951220317246383
+ 0.14951639372623643
+ 0.14952058438135721
+ 0.14952477513783027
+ 0.14952896599565951
+ 0.14953315695484876
+ 0.14953734801540206
+ 0.14954153917732324
+ 0.149545730440616
+ 0.14954992180528445
+ 0.14955411327133247
+ 0.14955830483876364
+ 0.14956249650758219
+ 0.14956668827779177
+ 0.14957088014939685
+ 0.14957507212240043
+ 0.14957926419680692
+ 0.14958345637262019
+ 0.14958764864984408
+ 0.1495918410284825
+ 0.14959603350853923
+ 0.14960022609001819
+ 0.14960441877292344
+ 0.14960861155725874
+ 0.14961280444302794
+ 0.1496169974302351
+ 0.14962119051888395
+ 0.14962538370897832
+ 0.14962957700052221
+ 0.14963377039351958
+ 0.14963796388797435
+ 0.14964215748389015
+ 0.14964635118127098
+ 0.14965054498012087
+ 0.1496547388804437
+ 0.14965893288224327
+ 0.1496631269855235
+ 0.14966732119028811
+ 0.14967151549654134
+ 0.14967570990428683
+ 0.14967990441352869
+ 0.14968409902427035
+ 0.14968829373651626
+ 0.14969248855026995
+ 0.14969668346553566
+ 0.14970087848231683
+ 0.14970507360061755
+ 0.14970926882044186
+ 0.14971346414179351
+ 0.14971765956467636
+ 0.14972185508909439
+ 0.14972605071505146
+ 0.1497302464425517
+ 0.14973444227159849
+ 0.14973863820219616
+ 0.14974283423434839
+ 0.14974703036805917
+ 0.14975122660333237
+ 0.14975542294017183
+ 0.14975961937858157
+ 0.14976381591856536
+ 0.14976801256012717
+ 0.14977220930327087
+ 0.14977640614800042
+ 0.14978060309431956
+ 0.14978480014223233
+ 0.1497889972917425
+ 0.1497931945428542
+ 0.14979739189557101
+ 0.14980158934989707
+ 0.14980578690583612
+ 0.1498099845633922
+ 0.14981418232256907
+ 0.14981838018337071
+ 0.14982257814580111
+ 0.14982677620986409
+ 0.14983097437556328
+ 0.1498351726429028
+ 0.14983937101188682
+ 0.14984356948251873
+ 0.14984776805480279
+ 0.14985196672874276
+ 0.14985616550434258
+ 0.14986036438160596
+ 0.14986456336053719
+ 0.14986876244113992
+ 0.1498729616234179
+ 0.14987716090737546
+ 0.14988136029301602
+ 0.1498855597803439
+ 0.14988975936936258
+ 0.14989395906007624
+ 0.14989815885248875
+ 0.14990235874660393
+ 0.1499065587424257
+ 0.14991075883995822
+ 0.14991495903920476
+ 0.14991915934016986
+ 0.14992335974285728
+ 0.14992756024727052
+ 0.14993176085341392
+ 0.14993596156129135
+ 0.14994016237090646
+ 0.14994436328226315
+ 0.14994856429536557
+ 0.14995276541021765
+ 0.14995696662682301
+ 0.14996116794518566
+ 0.14996536936530958
+ 0.14996957088719864
+ 0.1499737725108567
+ 0.14997797423628759
+ 0.14998217606349545
+ 0.14998637799248393
+ 0.14999058002325727
+ 0.14999478215581885
+ 0.14999898439017301
+ 0.15000318672632346
+ 0.15000738916427411
+ 0.150011591704029
+ 0.15001579434559176
+ 0.15001999708896654
+ 0.15002419993415717
+ 0.15002840288116762
+ 0.15003260593000156
+ 0.15003680908066336
+ 0.15004101233315625
+ 0.1500452156874848
+ 0.1500494191436525
+ 0.15005362270166347
+ 0.15005782636152143
+ 0.15006203012323019
+ 0.15006623398679422
+ 0.15007043795221661
+ 0.15007464201950202
+ 0.15007884618865394
+ 0.15008305045967621
+ 0.15008725483257321
+ 0.1500914593073481
+ 0.15009566388400561
+ 0.150099868562549
+ 0.15010407334298245
+ 0.15010827822530989
+ 0.15011248320953521
+ 0.15011668829566208
+ 0.15012089348369467
+ 0.15012509877363692
+ 0.15012930416549269
+ 0.15013350965926542
+ 0.15013771525495981
+ 0.15014192095257928
+ 0.15014612675212791
+ 0.15015033265360947
+ 0.15015453865702794
+ 0.15015874476238714
+ 0.15016295096969096
+ 0.1501671572789437
+ 0.15017136369014886
+ 0.1501755702033104
+ 0.15017977681843217
+ 0.15018398353551843
+ 0.15018819035457281
+ 0.15019239727559902
+ 0.1501966042986014
+ 0.15020081142358366
+ 0.15020501865054964
+ 0.15020922597950326
+ 0.15021343341044879
+ 0.15021764094338944
+ 0.15022184857832979
+ 0.15022605631527339
+ 0.15023026415422422
+ 0.15023447209518631
+ 0.1502386801381633
+ 0.15024288828315932
+ 0.15024709653017818
+ 0.15025130487922389
+ 0.15025551333030041
+ 0.15025972188341133
+ 0.15026393053856085
+ 0.15026813929575283
+ 0.15027234815499108
+ 0.15027655711627974
+ 0.15028076617962235
+ 0.15028497534502316
+ 0.15028918461248586
+ 0.15029339398201452
+ 0.15029760345361301
+ 0.15030181302728504
+ 0.15030602270303484
+ 0.15031023248086622
+ 0.15031444236078303
+ 0.15031865234278921
+ 0.15032286242688855
+ 0.15032707261308531
+ 0.15033128290138303
+ 0.15033549329178567
+ 0.1503397037842972
+ 0.15034391437892167
+ 0.15034812507566306
+ 0.15035233587452485
+ 0.15035654677551127
+ 0.15036075777862612
+ 0.15036496888387349
+ 0.15036918009125713
+ 0.1503733914007811
+ 0.15037760281244894
+ 0.15038181432626518
+ 0.15038602594223305
+ 0.15039023766035692
+ 0.15039444948064071
+ 0.15039866140308805
+ 0.15040287342770314
+ 0.15040708555448951
+ 0.15041129778345155
+ 0.15041551011459303
+ 0.15041972254791777
+ 0.15042393508342961
+ 0.15042814772113236
+ 0.15043236046103042
+ 0.15043657330312743
+ 0.15044078624742704
+ 0.15044499929393351
+ 0.15044921244265089
+ 0.15045342569358275
+ 0.15045763904673284
+ 0.15046185250210578
+ 0.15046606605970489
+ 0.15047027971953414
+ 0.1504744934815978
+ 0.15047870734589941
+ 0.15048292131244315
+ 0.15048713538123265
+ 0.15049134955227214
+ 0.15049556382556545
+ 0.15049977820111618
+ 0.15050399267892867
+ 0.15050820725900682
+ 0.15051242194135436
+ 0.15051663672597498
+ 0.15052085161287307
+ 0.15052506660205234
+ 0.15052928169351668
+ 0.15053349688727016
+ 0.15053771218331655
+ 0.1505419275816596
+ 0.15054614308230355
+ 0.15055035868525235
+ 0.15055457439050943
+ 0.15055879019807938
+ 0.15056300610796558
+ 0.15056722212017226
+ 0.15057143823470312
+ 0.15057565445156226
+ 0.15057987077075358
+ 0.1505840871922807
+ 0.15058830371614818
+ 0.15059252034235923
+ 0.15059673707091828
+ 0.1506009539018289
+ 0.15060517083509528
+ 0.1506093878707212
+ 0.15061360500871057
+ 0.15061782224906745
+ 0.15062203959179565
+ 0.15062625703689908
+ 0.15063047458438172
+ 0.1506346922342473
+ 0.15063890998650006
+ 0.15064312784114361
+ 0.15064734579818218
+ 0.15065156385761949
+ 0.15065578201945939
+ 0.15066000028370607
+ 0.15066421865036317
+ 0.15066843711943467
+ 0.15067265569092461
+ 0.15067687436483707
+ 0.1506810931411755
+ 0.15068531201994423
+ 0.15068953100114713
+ 0.15069375008478797
+ 0.15069796927087048
+ 0.15070218855939899
+ 0.15070640795037737
+ 0.15071062744380939
+ 0.15071484703969923
+ 0.15071906673805024
+ 0.15072328653886694
+ 0.15072750644215302
+ 0.15073172644791236
+ 0.15073594655614889
+ 0.15074016676686677
+ 0.15074438708006946
+ 0.15074860749576147
+ 0.15075282801394616
+ 0.15075704863462791
+ 0.15076126935781051
+ 0.1507654901834975
+ 0.15076971111169329
+ 0.15077393214240162
+ 0.15077815327562655
+ 0.15078237451137178
+ 0.15078659584964149
+ 0.15079081729043908
+ 0.15079503883376921
+ 0.15079926047963538
+ 0.15080348222804166
+ 0.1508077040789918
+ 0.15081192603248988
+ 0.15081614808853985
+ 0.15082037024714531
+ 0.15082459250831065
+ 0.15082881487203964
+ 0.15083303733833614
+ 0.15083725990720409
+ 0.1508414825786473
+ 0.15084570535266983
+ 0.15084992822927579
+ 0.15085415120846876
+ 0.15085837429025273
+ 0.15086259747463202
+ 0.15086682076161009
+ 0.1508710441511911
+ 0.15087526764337872
+ 0.1508794912381772
+ 0.15088371493559036
+ 0.15088793873562206
+ 0.15089216263827657
+ 0.1508963866435572
+ 0.15090061075146827
+ 0.15090483496201368
+ 0.1509090592751974
+ 0.150913283691023
+ 0.15091750820949507
+ 0.15092173283061691
+ 0.15092595755439289
+ 0.15093018238082673
+ 0.15093440730992222
+ 0.15093863234168373
+ 0.15094285747611469
+ 0.1509470827132193
+ 0.1509513080530013
+ 0.15095553349546501
+ 0.15095975904061415
+ 0.1509639846884524
+ 0.15096821043898404
+ 0.15097243629221285
+ 0.15097666224814274
+ 0.15098088830677769
+ 0.15098511446812182
+ 0.15098934073217857
+ 0.15099356709895245
+ 0.15099779356844692
+ 0.15100202014066619
+ 0.15100624681561423
+ 0.15101047359329467
+ 0.15101470047371165
+ 0.1510189274568691
+ 0.15102315454277085
+ 0.15102738173142105
+ 0.15103160902282339
+ 0.15103583641698182
+ 0.15104006391390049
+ 0.15104429151358337
+ 0.15104851921603404
+ 0.15105274702125659
+ 0.15105697492925499
+ 0.15106120294003331
+ 0.15106543105359538
+ 0.15106965926994489
+ 0.15107388758908591
+ 0.15107811601102258
+ 0.15108234453575875
+ 0.15108657316329835
+ 0.15109080189364515
+ 0.15109503072680319
+ 0.1510992596627766
+ 0.15110348870156887
+ 0.15110771784318433
+ 0.1511119470876269
+ 0.15111617643490005
+ 0.1511204058850083
+ 0.15112463543795548
+ 0.15112886509374535
+ 0.15113309485238172
+ 0.15113732471386881
+ 0.15114155467821044
+ 0.15114578474541063
+ 0.15115001491547314
+ 0.15115424518840206
+ 0.15115847556420134
+ 0.15116270604287466
+ 0.15116693662442629
+ 0.15117116730886002
+ 0.1511753980961798
+ 0.15117962898638945
+ 0.15118385997949313
+ 0.15118809107549455
+ 0.15119232227439786
+ 0.15119655357620687
+ 0.15120078498092562
+ 0.15120501648855797
+ 0.15120924809910777
+ 0.15121347981257918
+ 0.15121771162897585
+ 0.15122194354830201
+ 0.15122617557056151
+ 0.15123040769575816
+ 0.15123463992389596
+ 0.15123887225497895
+ 0.15124310468901098
+ 0.15124733722599593
+ 0.15125156986593796
+ 0.15125580260884069
+ 0.15126003545470834
+ 0.15126426840354493
+ 0.15126850145535389
+ 0.15127273461013965
+ 0.15127696786790595
+ 0.15128120122865688
+ 0.15128543469239622
+ 0.15128966825912793
+ 0.15129390192885597
+ 0.15129813570158435
+ 0.15130236957731685
+ 0.15130660355605755
+ 0.15131083763781045
+ 0.15131507182257931
+ 0.1513193061103682
+ 0.15132354050118099
+ 0.1513277749950217
+ 0.15133200959189427
+ 0.15133624429180245
+ 0.15134047909475037
+ 0.15134471400074193
+ 0.1513489490097811
+ 0.15135318412187188
+ 0.15135741933701816
+ 0.15136165465522355
+ 0.15136589007649262
+ 0.15137012560082885
+ 0.15137436122823641
+ 0.15137859695871905
+ 0.1513828327922809
+ 0.15138706872892591
+ 0.15139130476865756
+ 0.15139554091148047
+ 0.15139977715739841
+ 0.15140401350641508
+ 0.15140824995853447
+ 0.1514124865137608
+ 0.15141672317209742
+ 0.15142095993354907
+ 0.15142519679811905
+ 0.15142943376581172
+ 0.15143367083663084
+ 0.1514379080105803
+ 0.15144214528766417
+ 0.15144638266788618
+ 0.15145062015125058
+ 0.15145485773776118
+ 0.15145909542742186
+ 0.15146333322023664
+ 0.15146757111620951
+ 0.15147180911534427
+ 0.15147604721764499
+ 0.15148028542311559
+ 0.15148452373175988
+ 0.15148876214358223
+ 0.15149300065858612
+ 0.15149723927677558
+ 0.15150147799815486
+ 0.15150571682272748
+ 0.15150995575049783
+ 0.15151419478146946
+ 0.15151843391564648
+ 0.151522673153033
+ 0.15152691249363251
+ 0.15153115193744945
+ 0.15153539148448761
+ 0.15153963113475083
+ 0.15154387088824325
+ 0.15154811074496866
+ 0.15155235070493098
+ 0.15155659076813441
+ 0.15156083093458259
+ 0.1515650712042797
+ 0.15156931157722942
+ 0.15157355205343589
+ 0.15157779263290322
+ 0.15158203331563494
+ 0.15158627410163547
+ 0.15159051499090836
+ 0.15159475598345784
+ 0.15159899707928759
+ 0.15160323827840191
+ 0.15160747958080442
+ 0.15161172098649917
+ 0.15161596249549025
+ 0.15162020410778165
+ 0.15162444582337714
+ 0.15162868764228055
+ 0.15163292956449595
+ 0.1516371715900274
+ 0.15164141371887904
+ 0.15164565595105428
+ 0.15164989828655745
+ 0.15165414072539246
+ 0.15165838326756315
+ 0.15166262591307353
+ 0.15166686866192763
+ 0.15167111151412932
+ 0.1516753544696825
+ 0.15167959752859114
+ 0.15168384069085941
+ 0.15168808395649097
+ 0.1516923273254901
+ 0.15169657079786025
+ 0.15170081437360586
+ 0.15170505805273063
+ 0.15170930183523867
+ 0.15171354572113377
+ 0.15171778971041983
+ 0.15172203380310115
+ 0.15172627799918151
+ 0.15173052229866454
+ 0.15173476670155481
+ 0.1517390112078556
+ 0.15174325581757148
+ 0.15174750053070604
+ 0.15175174534726324
+ 0.15175599026724718
+ 0.15176023529066171
+ 0.15176448041751098
+ 0.15176872564779864
+ 0.15177297098152881
+ 0.15177721641870545
+ 0.15178146195933256
+ 0.15178570760341403
+ 0.15178995335095383
+ 0.15179419920195567
+ 0.15179844515642407
+ 0.15180269121436249
+ 0.15180693737577511
+ 0.1518111836406659
+ 0.15181543000903863
+ 0.15181967648089739
+ 0.15182392305624612
+ 0.15182816973508895
+ 0.15183241651742965
+ 0.15183666340327209
+ 0.15184091039262027
+ 0.15184515748547825
+ 0.15184940468185015
+ 0.15185365198173953
+ 0.15185789938515057
+ 0.1518621468920871
+ 0.15186639450255346
+ 0.15187064221655319
+ 0.15187489003409038
+ 0.15187913795516908
+ 0.15188338597979309
+ 0.15188763410796643
+ 0.15189188233969314
+ 0.15189613067497704
+ 0.15190037911382223
+ 0.15190462765623258
+ 0.15190887630221214
+ 0.15191312505176477
+ 0.15191737390489438
+ 0.15192162286160504
+ 0.15192587192190091
+ 0.15193012108578538
+ 0.1519343703532629
+ 0.15193861972433748
+ 0.15194286919901265
+ 0.15194711877729269
+ 0.15195136845918136
+ 0.15195561824468284
+ 0.151959868133801
+ 0.15196411812653998
+ 0.15196836822290319
+ 0.15197261842289531
+ 0.15197686872651972
+ 0.15198111913378073
+ 0.15198536964468209
+ 0.15198962025922774
+ 0.15199387097742204
+ 0.15199812179926844
+ 0.15200237272477127
+ 0.15200662375393431
+ 0.15201087488676149
+ 0.15201512612325699
+ 0.15201937746342456
+ 0.15202362890726831
+ 0.15202788045479196
+ 0.15203213210599981
+ 0.15203638386089563
+ 0.15204063571948331
+ 0.15204488768176708
+ 0.15204913974775053
+ 0.152053391917438
+ 0.15205764419083329
+ 0.15206189656794017
+ 0.15206614904876292
+ 0.15207040163330554
+ 0.15207465432157163
+ 0.15207890711356545
+ 0.15208316000929079
+ 0.15208741300875175
+ 0.15209166611195218
+ 0.15209591931889613
+ 0.15210017262958772
+ 0.15210442604403057
+ 0.15210867956222882
+ 0.15211293318418642
+ 0.15211718690990753
+ 0.15212144073939565
+ 0.15212569467265538
+ 0.15212994870969004
+ 0.152134202850504
+ 0.15213845709510118
+ 0.1521427114434854
+ 0.15214696589566085
+ 0.15215122045163135
+ 0.15215547511140065
+ 0.1521597298749732
+ 0.15216398474235257
+ 0.1521682397135429
+ 0.15217249478854822
+ 0.15217674996737232
+ 0.15218100525001926
+ 0.15218526063649315
+ 0.1521895161267976
+ 0.15219377172093684
+ 0.15219802741891483
+ 0.15220228322073545
+ 0.15220653912640289
+ 0.15221079513592078
+ 0.15221505124929327
+ 0.15221930746652435
+ 0.15222356378761798
+ 0.15222782021257814
+ 0.15223207674140871
+ 0.15223633337411369
+ 0.15224059011069707
+ 0.15224484695116275
+ 0.15224910389551488
+ 0.15225336094375735
+ 0.152257618095894
+ 0.15226187535192909
+ 0.15226613271186612
+ 0.15227039017570962
+ 0.15227464774346322
+ 0.15227890541513087
+ 0.15228316319071672
+ 0.15228742107022458
+ 0.15229167905365851
+ 0.15229593714102255
+ 0.15230019533232028
+ 0.15230445362755637
+ 0.15230871202673424
+ 0.15231297052985798
+ 0.15231722913693155
+ 0.15232148784795912
+ 0.15232574666294443
+ 0.15233000558189155
+ 0.1523342646048044
+ 0.15233852373168708
+ 0.15234278296254361
+ 0.15234704229737764
+ 0.15235130173619346
+ 0.15235556127899474
+ 0.15235982092578568
+ 0.15236408067657031
+ 0.15236834053135251
+ 0.1523726004901361
+ 0.15237686055292529
+ 0.15238112071972393
+ 0.15238538099053622
+ 0.15238964136536573
+ 0.15239390184421658
+ 0.152398162427093
+ 0.15240242311399865
+ 0.15240668390493761
+ 0.15241094479991407
+ 0.15241520579893153
+ 0.15241946690199451
+ 0.15242372810910673
+ 0.15242798942027186
+ 0.15243225083549444
+ 0.15243651235477806
+ 0.15244077397812686
+ 0.15244503570554482
+ 0.15244929753703576
+ 0.15245355947260389
+ 0.1524578215122529
+ 0.15246208365598707
+ 0.15246634590381017
+ 0.15247060825572611
+ 0.15247487071173912
+ 0.15247913327185314
+ 0.15248339593607199
+ 0.15248765870439965
+ 0.1524919215768403
+ 0.15249618455339781
+ 0.15250044763407597
+ 0.15250471081887915
+ 0.15250897410781086
+ 0.15251323750087545
+ 0.15251750099807668
+ 0.15252176459941877
+ 0.15252602830490528
+ 0.15253029211454056
+ 0.15253455602832872
+ 0.1525388200462732
+ 0.15254308416837847
+ 0.15254734839464823
+ 0.15255161272508647
+ 0.15255587715969746
+ 0.15256014169848478
+ 0.15256440634145271
+ 0.15256867108860492
+ 0.15257293593994573
+ 0.15257720089547913
+ 0.15258146595520872
+ 0.15258573111913898
+ 0.15258999638727325
+ 0.1525942617596161
+ 0.15259852723617121
+ 0.15260279281694278
+ 0.15260705850193451
+ 0.15261132429115062
+ 0.15261559018459483
+ 0.15261985618227147
+ 0.15262412228418418
+ 0.15262838849033733
+ 0.15263265480073446
+ 0.15263692121537997
+ 0.15264118773427743
+ 0.15264545435743104
+ 0.15264972108484479
+ 0.15265398791652274
+ 0.15265825485246901
+ 0.15266252189268692
+ 0.15266678903718114
+ 0.15267105628595529
+ 0.15267532363901337
+ 0.15267959109635951
+ 0.15268385865799777
+ 0.15268812632393197
+ 0.15269239409416618
+ 0.15269666196870418
+ 0.15270092994754994
+ 0.15270519803070789
+ 0.15270946621818174
+ 0.15271373450997544
+ 0.15271800290609294
+ 0.1527222714065381
+ 0.15272654001131544
+ 0.15273080872042849
+ 0.15273507753388135
+ 0.15273934645167772
+ 0.15274361547382201
+ 0.15274788460031818
+ 0.15275215383117008
+ 0.15275642316638166
+ 0.15276069260595698
+ 0.15276496214989993
+ 0.15276923179821461
+ 0.15277350155090491
+ 0.15277777140797497
+ 0.15278204136942874
+ 0.15278631143526988
+ 0.15279058160550288
+ 0.15279485188013134
+ 0.15279912225915959
+ 0.15280339274259114
+ 0.1528076633304305
+ 0.1528119340226812
+ 0.1528162048193476
+ 0.15282047572043342
+ 0.15282474672594287
+ 0.15282901783587974
+ 0.15283328905024823
+ 0.15283756036905216
+ 0.15284183179229552
+ 0.1528461033199823
+ 0.15285037495211665
+ 0.15285464668870227
+ 0.15285891852974348
+ 0.15286319047524405
+ 0.15286746252520816
+ 0.15287173467963941
+ 0.15287600693854203
+ 0.15288027930192027
+ 0.15288455176977758
+ 0.15288882434211851
+ 0.15289309701894674
+ 0.15289736980026628
+ 0.15290164268608111
+ 0.1529059156763953
+ 0.15291018877121274
+ 0.15291446197053735
+ 0.15291873527437352
+ 0.1529230086827249
+ 0.1529272821955954
+ 0.15293155581298923
+ 0.15293582953491042
+ 0.15294010336136274
+ 0.15294437729235036
+ 0.15294865132787705
+ 0.15295292546794706
+ 0.15295719971256438
+ 0.15296147406173285
+ 0.15296574851545644
+ 0.15297002307373941
+ 0.15297429773658525
+ 0.15297857250399857
+ 0.15298284737598286
+ 0.15298712235254242
+ 0.15299139743368101
+ 0.15299567261940294
+ 0.15299994790971175
+ 0.15300422330461197
+ 0.15300849880410722
+ 0.15301277440820146
+ 0.15301705011689878
+ 0.15302132593020323
+ 0.15302560184811892
+ 0.1530298778706497
+ 0.15303415399779963
+ 0.1530384302295725
+ 0.15304270656597241
+ 0.15304698300700348
+ 0.1530512595526696
+ 0.15305553620297488
+ 0.15305981295792312
+ 0.1530640898175184
+ 0.15306836678176478
+ 0.1530726438506663
+ 0.15307692102422676
+ 0.15308119830245018
+ 0.15308547568534081
+ 0.15308975317290241
+ 0.15309403076513883
+ 0.15309830846205458
+ 0.15310258626365322
+ 0.15310686416993874
+ 0.15311114218091548
+ 0.15311542029658706
+ 0.15311969851695784
+ 0.15312397684203152
+ 0.1531282552718122
+ 0.15313253380630387
+ 0.15313681244551056
+ 0.15314109118943628
+ 0.15314537003808493
+ 0.1531496489914605
+ 0.15315392804956715
+ 0.15315820721240883
+ 0.1531624864799894
+ 0.15316676585231301
+ 0.15317104532938358
+ 0.15317532491120517
+ 0.15317960459778179
+ 0.15318388438911734
+ 0.15318816428521589
+ 0.1531924442860812
+ 0.1531967243917178
+ 0.15320100460212929
+ 0.15320528491731972
+ 0.15320956533729291
+ 0.15321384586205336
+ 0.15321812649160485
+ 0.15322240722595118
+ 0.15322668806509659
+ 0.15323096900904487
+ 0.15323525005780017
+ 0.15323953121136627
+ 0.1532438124697475
+ 0.15324809383294777
+ 0.15325237530097099
+ 0.15325665687382117
+ 0.15326093855150238
+ 0.15326522033401865
+ 0.15326950222137381
+ 0.15327378421357185
+ 0.15327806631061694
+ 0.1532823485125131
+ 0.1532866308192643
+ 0.15329091323087443
+ 0.15329519574734748
+ 0.15329947836868763
+ 0.15330376109489885
+ 0.15330804392598499
+ 0.15331232686195007
+ 0.15331660990279858
+ 0.15332089304853355
+ 0.15332517629915984
+ 0.1533294596546812
+ 0.15333374311510159
+ 0.1533380266804249
+ 0.15334231035065526
+ 0.15334659412579674
+ 0.15335087800585323
+ 0.15335516199082883
+ 0.15335944608072738
+ 0.15336373027555306
+ 0.1533680145753098
+ 0.1533722989800016
+ 0.15337658348963246
+ 0.15338086810420656
+ 0.15338515282372756
+ 0.15338943764819968
+ 0.15339372257762707
+ 0.15339800761201339
+ 0.15340229275136286
+ 0.15340657799567944
+ 0.15341086334496723
+ 0.15341514879923013
+ 0.15341943435847208
+ 0.15342372002269716
+ 0.15342800579190952
+ 0.15343229166611294
+ 0.15343657764531157
+ 0.15344086372950941
+ 0.15344514991871025
+ 0.15344943621291848
+ 0.15345372261213772
+ 0.15345800911637225
+ 0.153462295725626
+ 0.15346658243990302
+ 0.15347086925920733
+ 0.15347515618354279
+ 0.15347944321291343
+ 0.15348373034732335
+ 0.1534880175867766
+ 0.15349230493127711
+ 0.15349659238082891
+ 0.15350087993543585
+ 0.15350516759510213
+ 0.15350945535983163
+ 0.15351374322962869
+ 0.15351803120449697
+ 0.15352231928444049
+ 0.15352660746946362
+ 0.15353089575956974
+ 0.15353518415476344
+ 0.15353947265504847
+ 0.15354376126042885
+ 0.15354804997090873
+ 0.15355233878649197
+ 0.15355662770718248
+ 0.15356091673298447
+ 0.15356520586390215
+ 0.15356949509993897
+ 0.15357378444109959
+ 0.15357807388738742
+ 0.15358236343880666
+ 0.15358665309536162
+ 0.15359094285705593
+ 0.1535952327238938
+ 0.15359952269587923
+ 0.15360381277301619
+ 0.15360810295530872
+ 0.15361239324276085
+ 0.15361668363537653
+ 0.15362097413315984
+ 0.15362526473611474
+ 0.15362955544424522
+ 0.15363384625755533
+ 0.1536381371760491
+ 0.15364242819973059
+ 0.15364671932860363
+ 0.15365101056267255
+ 0.15365530190194096
+ 0.15365959334641313
+ 0.15366388489609303
+ 0.15366817655098472
+ 0.15367246831109224
+ 0.15367676017641932
+ 0.15368105214697034
+ 0.15368534422274935
+ 0.15368963640375988
+ 0.15369392869000634
+ 0.15369822108149253
+ 0.15370251357822268
+ 0.15370680618020086
+ 0.15371109888743084
+ 0.15371539169991671
+ 0.15371968461766247
+ 0.15372397764067219
+ 0.15372827076894993
+ 0.15373256400249954
+ 0.15373685734132519
+ 0.1537411507854306
+ 0.15374544433482051
+ 0.15374973798949831
+ 0.15375403174946806
+ 0.15375832561473388
+ 0.15376261958529977
+ 0.1537669136611699
+ 0.15377120784234807
+ 0.15377550212883853
+ 0.15377979652064508
+ 0.15378409101777177
+ 0.15378838562022262
+ 0.15379268032800164
+ 0.15379697514111296
+ 0.1538012700595604
+ 0.15380556508334858
+ 0.15380986021248053
+ 0.15381415544696098
+ 0.1538184507867939
+ 0.15382274623198297
+ 0.15382704178253262
+ 0.15383133743844654
+ 0.15383563319972871
+ 0.15383992906638341
+ 0.15384422503841461
+ 0.15384852111582636
+ 0.15385281729862241
+ 0.15385711358680709
+ 0.15386140998038444
+ 0.15386570647935796
+ 0.1538700030837323
+ 0.15387429979351108
+ 0.15387859660869846
+ 0.15388289352929885
+ 0.15388719055531558
+ 0.15389148768675298
+ 0.15389578492361516
+ 0.15390008226590596
+ 0.15390437971362955
+ 0.15390867726679006
+ 0.15391297492539102
+ 0.15391727268943708
+ 0.15392157055893196
+ 0.15392586853387957
+ 0.15393016661428402
+ 0.15393446480014944
+ 0.15393876309147969
+ 0.15394306148827896
+ 0.15394735999055117
+ 0.1539516585983004
+ 0.15395595731153067
+ 0.15396025613024586
+ 0.15396455505445031
+ 0.15396885408414765
+ 0.15397315321934202
+ 0.15397745246003763
+ 0.15398175180623852
+ 0.15398605125794843
+ 0.15399035081517162
+ 0.15399465047791194
+ 0.1539989502461736
+ 0.15400325011996052
+ 0.15400755009927672
+ 0.15401185018412633
+ 0.15401615037451324
+ 0.15402045067044165
+ 0.15402475107191516
+ 0.15402905157893834
+ 0.15403335219151493
+ 0.15403765290964899
+ 0.15404195373334442
+ 0.15404625466260549
+ 0.15405055569743625
+ 0.15405485683784031
+ 0.15405915808382217
+ 0.15406345943538577
+ 0.15406776089253482
+ 0.15407206245527372
+ 0.15407636412360634
+ 0.15408066589753658
+ 0.15408496777706868
+ 0.15408926976220663
+ 0.15409357185295439
+ 0.15409787404931585
+ 0.15410217635129539
+ 0.15410647875889674
+ 0.15411078127212408
+ 0.15411508389098127
+ 0.15411938661547256
+ 0.15412368944560204
+ 0.15412799238137337
+ 0.1541322954227908
+ 0.15413659856985837
+ 0.15414090182258014
+ 0.15414520518096003
+ 0.15414950864500213
+ 0.15415381221471053
+ 0.15415811589008899
+ 0.15416241967114191
+ 0.15416672355787311
+ 0.15417102755028664
+ 0.15417533164838662
+ 0.15417963585217709
+ 0.15418394016166187
+ 0.15418824457684516
+ 0.15419254909773097
+ 0.15419685372432321
+ 0.15420115845662621
+ 0.15420546329464366
+ 0.1542097682383797
+ 0.15421407328783854
+ 0.15421837844302408
+ 0.15422268370394027
+ 0.15422698907059132
+ 0.15423129454298101
+ 0.15423560012111362
+ 0.15423990580499292
+ 0.1542442115946234
+ 0.15424851749000848
+ 0.15425282349115274
+ 0.15425712959805976
+ 0.15426143581073409
+ 0.15426574212917935
+ 0.15427004855339968
+ 0.15427435508339907
+ 0.1542786617191817
+ 0.15428296846075154
+ 0.1542872753081124
+ 0.15429158226126882
+ 0.15429588932022445
+ 0.15430019648498319
+ 0.15430450375554944
+ 0.15430881113192718
+ 0.15431311861412025
+ 0.15431742620213262
+ 0.15432173389596862
+ 0.15432604169563216
+ 0.15433034960112738
+ 0.1543346576124579
+ 0.1543389657296283
+ 0.15434327395264241
+ 0.15434758228150397
+ 0.1543518907162176
+ 0.15435619925678665
+ 0.15436050790321584
+ 0.15436481665550883
+ 0.15436912551366963
+ 0.15437343447770235
+ 0.15437774354761108
+ 0.15438205272339969
+ 0.1543863620050725
+ 0.15439067139263313
+ 0.15439498088608611
+ 0.1543992904854351
+ 0.1544036001906843
+ 0.15440791000183798
+ 0.15441221991889967
+ 0.15441652994187369
+ 0.1544208400707642
+ 0.15442515030557485
+ 0.15442946064630986
+ 0.15443377109297354
+ 0.15443808164556963
+ 0.15444239230410228
+ 0.15444670306857552
+ 0.15445101393899319
+ 0.15445532491535977
+ 0.15445963599767903
+ 0.15446394718595477
+ 0.15446825848019149
+ 0.15447256988039304
+ 0.15447688138656324
+ 0.15448119299870647
+ 0.15448550471682648
+ 0.15448981654092764
+ 0.15449412847101368
+ 0.15449844050708889
+ 0.15450275264915694
+ 0.15450706489722246
+ 0.15451137725128886
+ 0.15451568971136059
+ 0.15452000227744164
+ 0.15452431494953581
+ 0.15452862772764747
+ 0.15453294061178063
+ 0.15453725360193898
+ 0.15454156669812666
+ 0.15454587990034813
+ 0.15455019320860719
+ 0.15455450662290762
+ 0.15455882014325364
+ 0.15456313376964956
+ 0.15456744750209908
+ 0.15457176134060624
+ 0.15457607528517542
+ 0.15458038933581025
+ 0.15458470349251505
+ 0.15458901775529396
+ 0.15459333212415066
+ 0.15459764659908937
+ 0.15460196118011421
+ 0.15460627586722905
+ 0.15461059066043811
+ 0.1546149055597455
+ 0.15461922056515504
+ 0.15462353567667064
+ 0.15462785089429687
+ 0.15463216621803746
+ 0.15463648164789642
+ 0.15464079718387766
+ 0.15464511282598553
+ 0.15464942857422403
+ 0.15465374442859714
+ 0.15465806038910868
+ 0.15466237645576311
+ 0.15466669262856417
+ 0.15467100890751612
+ 0.15467532529262287
+ 0.1546796417838886
+ 0.15468395838131696
+ 0.15468827508491262
+ 0.15469259189467904
+ 0.15469690881062073
+ 0.15470122583274137
+ 0.15470554296104519
+ 0.15470986019553629
+ 0.15471417753621863
+ 0.15471849498309628
+ 0.15472281253617307
+ 0.15472713019545348
+ 0.15473144796094118
+ 0.15473576583264065
+ 0.1547400838105554
+ 0.15474440189468994
+ 0.15474872008504784
+ 0.15475303838163373
+ 0.15475735678445118
+ 0.15476167529350432
+ 0.15476599390879758
+ 0.15477031263033439
+ 0.15477463145811937
+ 0.15477895039215633
+ 0.15478326943244924
+ 0.15478758857900216
+ 0.15479190783181937
+ 0.15479622719090469
+ 0.15480054665626231
+ 0.15480486622789619
+ 0.15480918590581025
+ 0.15481350569000876
+ 0.15481782558049595
+ 0.15482214557727522
+ 0.15482646568035133
+ 0.1548307858897279
+ 0.15483510620540919
+ 0.15483942662739905
+ 0.15484374715570179
+ 0.15484806779032118
+ 0.15485238853126138
+ 0.15485670937852669
+ 0.15486103033212081
+ 0.15486535139204793
+ 0.15486967255831227
+ 0.15487399383091752
+ 0.15487831520986794
+ 0.15488263669516777
+ 0.15488695828682073
+ 0.15489127998483099
+ 0.15489560178920259
+ 0.15489992369993966
+ 0.15490424571704633
+ 0.15490856784052628
+ 0.15491289007038417
+ 0.15491721240662318
+ 0.15492153484924823
+ 0.15492585739826301
+ 0.15493018005367162
+ 0.15493450281547816
+ 0.15493882568368636
+ 0.15494314865830067
+ 0.15494747173932494
+ 0.15495179492676334
+ 0.15495611822061983
+ 0.15496044162089859
+ 0.15496476512760349
+ 0.15496908874073878
+ 0.15497341246030838
+ 0.15497773628631642
+ 0.15498206021876693
+ 0.15498638425766395
+ 0.15499070840301155
+ 0.15499503265481376
+ 0.15499935701307466
+ 0.15500368147779833
+ 0.15500800604898871
+ 0.1550123307266501
+ 0.15501665551078644
+ 0.15502098040140172
+ 0.1550253053984999
+ 0.15502963050208532
+ 0.15503395571216197
+ 0.1550382810287336
+ 0.15504260645180451
+ 0.15504693198137898
+ 0.15505125761746058
+ 0.15505558336005376
+ 0.15505990920916246
+ 0.15506423516479054
+ 0.1550685612269424
+ 0.15507288739562197
+ 0.15507721367083324
+ 0.1550815400525801
+ 0.15508586654086698
+ 0.15509019313569777
+ 0.15509451983707664
+ 0.15509884664500734
+ 0.15510317355949427
+ 0.15510750058054126
+ 0.15511182770815252
+ 0.15511615494233214
+ 0.15512048228308409
+ 0.15512480973041243
+ 0.15512913728432101
+ 0.15513346494481425
+ 0.15513779271189615
+ 0.15514212058557059
+ 0.15514644856584164
+ 0.15515077665271346
+ 0.15515510484619044
+ 0.15515943314627589
+ 0.15516376155297459
+ 0.1551680900662902
+ 0.15517241868622686
+ 0.15517674741278861
+ 0.15518107624597963
+ 0.15518540518580384
+ 0.15518973423226531
+ 0.15519406338536837
+ 0.15519839264511665
+ 0.15520272201151475
+ 0.15520705148456618
+ 0.15521138106427532
+ 0.15521571075064614
+ 0.15522004054368263
+ 0.15522437044338902
+ 0.15522870044976933
+ 0.15523303056282778
+ 0.15523736078256803
+ 0.15524169110899427
+ 0.1552460215421107
+ 0.15525035208192151
+ 0.15525468272843057
+ 0.15525901348164198
+ 0.15526334434155969
+ 0.15526767530818808
+ 0.15527200638153069
+ 0.15527633756159229
+ 0.15528066884837624
+ 0.15528500024188713
+ 0.15528933174212861
+ 0.15529366334910516
+ 0.15529799506282055
+ 0.15530232688327905
+ 0.15530665881048444
+ 0.15531099084444114
+ 0.15531532298515296
+ 0.15531965523262409
+ 0.15532398758685845
+ 0.15532832004786026
+ 0.15533265261563353
+ 0.15533698529018233
+ 0.15534131807151072
+ 0.15534565095962291
+ 0.15534998395452276
+ 0.15535431705621441
+ 0.15535865026470194
+ 0.15536298357998946
+ 0.15536731700208101
+ 0.15537165053098062
+ 0.15537598416669227
+ 0.15538031790922022
+ 0.15538465175856861
+ 0.15538898571474097
+ 0.15539331977774218
+ 0.15539765394757574
+ 0.15540198822424581
+ 0.1554063226077565
+ 0.155410657098112
+ 0.15541499169531631
+ 0.15541932639937336
+ 0.15542366121028728
+ 0.15542799612806221
+ 0.15543233115270219
+ 0.15543666628421127
+ 0.15544100152259374
+ 0.15544533686785339
+ 0.1554496723199944
+ 0.15545400787902081
+ 0.15545834354493676
+ 0.15546267931774613
+ 0.1554670151974531
+ 0.15547135118406186
+ 0.15547568727757646
+ 0.15548002347800072
+ 0.15548435978533917
+ 0.15548869619959543
+ 0.15549303272077358
+ 0.15549736934887806
+ 0.15550170608391276
+ 0.15550604292588174
+ 0.15551037987478927
+ 0.15551471693063865
+ 0.155519054093435
+ 0.15552339136318197
+ 0.1555277287398833
+ 0.15553206622354349
+ 0.15553640381416636
+ 0.15554074151175631
+ 0.15554507931631711
+ 0.15554941722785284
+ 0.15555375524636778
+ 0.15555809337186574
+ 0.15556243160435115
+ 0.1555667699438277
+ 0.15557110839029961
+ 0.15557544694377107
+ 0.15557978560424618
+ 0.15558412437172878
+ 0.15558846324622314
+ 0.15559280222773339
+ 0.15559714131626298
+ 0.15560148051181705
+ 0.15560581981439889
+ 0.15561015922401283
+ 0.15561449874066272
+ 0.15561883836435297
+ 0.15562317809508769
+ 0.15562751793287069
+ 0.15563185787770617
+ 0.15563619792959793
+ 0.15564053808855075
+ 0.15564487835456775
+ 0.15564921872765386
+ 0.15565355920781274
+ 0.15565789979504854
+ 0.15566224048936531
+ 0.15566658129076724
+ 0.15567092219925824
+ 0.15567526321484243
+ 0.15567960433752401
+ 0.15568394556730705
+ 0.15568828690419539
+ 0.15569262834819353
+ 0.15569696989930495
+ 0.15570131155753433
+ 0.1557056533228853
+ 0.15570999519536241
+ 0.1557143371749693
+ 0.15571867926171026
+ 0.15572302145558939
+ 0.1557273637566105
+ 0.15573170616477813
+ 0.15573604868009594
+ 0.1557403913025682
+ 0.15574473403219885
+ 0.15574907686899234
+ 0.15575341981295238
+ 0.15575776286408299
+ 0.1557621060223888
+ 0.15576644928787342
+ 0.15577079266054084
+ 0.15577513614039556
+ 0.15577947972744116
+ 0.1557838234216822
+ 0.1557881672231225
+ 0.15579251113176634
+ 0.15579685514761768
+ 0.15580119927068031
+ 0.15580554350095877
+ 0.15580988783845692
+ 0.15581423228317889
+ 0.15581857683512901
+ 0.15582292149431087
+ 0.15582726626072879
+ 0.15583161113438676
+ 0.15583595611528919
+ 0.15584030120343989
+ 0.15584464639884299
+ 0.15584899170150252
+ 0.15585333711142266
+ 0.15585768262860736
+ 0.15586202825306097
+ 0.15586637398478725
+ 0.1558707198237905
+ 0.15587506577007479
+ 0.15587941182364409
+ 0.15588375798450274
+ 0.15588810425265445
+ 0.15589245062810356
+ 0.15589679711085408
+ 0.15590114370090999
+ 0.15590549039827567
+ 0.15590983720295482
+ 0.15591418411495189
+ 0.15591853113427082
+ 0.15592287826091561
+ 0.15592722549489055
+ 0.15593157283619941
+ 0.15593592028484665
+ 0.15594026784083614
+ 0.15594461550417202
+ 0.15594896327485827
+ 0.15595331115289915
+ 0.15595765913829876
+ 0.15596200723106091
+ 0.15596635543118981
+ 0.15597070373868974
+ 0.15597505215356464
+ 0.15597940067581847
+ 0.15598374930545578
+ 0.15598809804248021
+ 0.15599244688689587
+ 0.15599679583870701
+ 0.15600114489791755
+ 0.1560054940645321
+ 0.15600984333855397
+ 0.15601419271998762
+ 0.15601854220883737
+ 0.15602289180510706
+ 0.15602724150880051
+ 0.15603159131992253
+ 0.15603594123847658
+ 0.15604029126446692
+ 0.1560446413978977
+ 0.15604899163877289
+ 0.15605334198709683
+ 0.15605769244287346
+ 0.15606204300610677
+ 0.15606639367680111
+ 0.1560707444549603
+ 0.1560750953405885
+ 0.15607944633368989
+ 0.15608379743426867
+ 0.1560881486423287
+ 0.156092499957874
+ 0.15609685138090879
+ 0.15610120291143739
+ 0.15610555454946365
+ 0.15610990629499147
+ 0.15611425814802551
+ 0.15611861010856942
+ 0.15612296217662716
+ 0.15612731435220345
+ 0.15613166663530176
+ 0.15613601902592647
+ 0.15614037152408161
+ 0.15614472412977135
+ 0.15614907684299947
+ 0.15615342966377066
+ 0.15615778259208846
+ 0.15616213562795719
+ 0.15616648877138101
+ 0.15617084202236381
+ 0.1561751953809099
+ 0.15617954884702318
+ 0.15618390242070795
+ 0.15618825610196835
+ 0.15619260989080797
+ 0.15619696378723166
+ 0.15620131779124277
+ 0.15620567190284584
+ 0.15621002612204501
+ 0.15621438044884411
+ 0.15621873488324728
+ 0.15622308942525898
+ 0.1562274440748829
+ 0.15623179883212299
+ 0.1562361536969839
+ 0.15624050866946954
+ 0.15624486374958357
+ 0.15624921893733063
+ 0.15625357423271466
+ 0.15625792963573959
+ 0.15626228514640961
+ 0.15626664076472913
+ 0.15627099649070178
+ 0.15627535232433173
+ 0.15627970826562324
+ 0.15628406431458042
+ 0.15628842047120733
+ 0.15629277673550812
+ 0.15629713310748666
+ 0.15630148958714721
+ 0.156305846174494
+ 0.15631020286953087
+ 0.15631455967226218
+ 0.15631891658269187
+ 0.15632327360082388
+ 0.15632763072666253
+ 0.15633198796021197
+ 0.15633634530147622
+ 0.15634070275045939
+ 0.15634506030716544
+ 0.1563494179715986
+ 0.15635377574376311
+ 0.15635813362366283
+ 0.15636249161130206
+ 0.15636684970668452
+ 0.15637120790981485
+ 0.1563755662206969
+ 0.15637992463933456
+ 0.1563842831657323
+ 0.15638864179989401
+ 0.15639300054182373
+ 0.15639735939152574
+ 0.15640171834900407
+ 0.1564060774142628
+ 0.15641043658730608
+ 0.15641479586813803
+ 0.1564191552567627
+ 0.1564235147531842
+ 0.15642787435740649
+ 0.15643223406943382
+ 0.15643659388927045
+ 0.15644095381692025
+ 0.15644531385238744
+ 0.15644967399567605
+ 0.15645403424679022
+ 0.15645839460573407
+ 0.15646275507251164
+ 0.15646711564712709
+ 0.1564714763295845
+ 0.15647583711988794
+ 0.15648019801804161
+ 0.1564845590240497
+ 0.15648892013791593
+ 0.15649328135964471
+ 0.15649764268924021
+ 0.15650200412670648
+ 0.15650636567204732
+ 0.15651072732526727
+ 0.15651508908637013
+ 0.15651945095536021
+ 0.1565238129322413
+ 0.1565281750170181
+ 0.15653253720969415
+ 0.15653689951027358
+ 0.15654126191876094
+ 0.15654562443516015
+ 0.15654998705947495
+ 0.15655434979170985
+ 0.15655871263186885
+ 0.15656307557995594
+ 0.15656743863597544
+ 0.15657180179993135
+ 0.15657616507182781
+ 0.15658052845166878
+ 0.15658489193945868
+ 0.15658925553520125
+ 0.15659361923890081
+ 0.1565979830505615
+ 0.15660234697018732
+ 0.15660671099778231
+ 0.15661107513335079
+ 0.15661543937689679
+ 0.15661980372842438
+ 0.15662416818793776
+ 0.15662853275544072
+ 0.15663289743093775
+ 0.15663726221443294
+ 0.15664162710593019
+ 0.15664599210543373
+ 0.15665035721294759
+ 0.15665472242847595
+ 0.15665908775202286
+ 0.15666345318359268
+ 0.15666781872318924
+ 0.15667218437081654
+ 0.15667655012647896
+ 0.15668091599018072
+ 0.15668528196192552
+ 0.15668964804171778
+ 0.15669401422956145
+ 0.15669838052546106
+ 0.15670274692941993
+ 0.15670711344144284
+ 0.1567114800615336
+ 0.15671584678969647
+ 0.15672021362593547
+ 0.15672458057025476
+ 0.15672894762265846
+ 0.15673331478315072
+ 0.15673768205173527
+ 0.15674204942841696
+ 0.15674641691319935
+ 0.15675078450608637
+ 0.15675515220708278
+ 0.15675952001619251
+ 0.15676388793341928
+ 0.15676825595876748
+ 0.1567726240922411
+ 0.15677699233384457
+ 0.15678136068358167
+ 0.1567857291414568
+ 0.15679009770747368
+ 0.15679446638163683
+ 0.1567988351639501
+ 0.15680320405441764
+ 0.15680757305304369
+ 0.15681194215983235
+ 0.1568163113747876
+ 0.15682068069791372
+ 0.15682505012921469
+ 0.15682941966869474
+ 0.15683378931635783
+ 0.1568381590722083
+ 0.15684252893624989
+ 0.1568468989084873
+ 0.15685126898892421
+ 0.15685563917756468
+ 0.15686000947441306
+ 0.15686437987947338
+ 0.15686875039274994
+ 0.1568731210142465
+ 0.15687749174396737
+ 0.1568818625819168
+ 0.15688623352809886
+ 0.15689060458251722
+ 0.15689497574517663
+ 0.15689934701608083
+ 0.15690371839523409
+ 0.15690808988264043
+ 0.15691246147830409
+ 0.15691683318222924
+ 0.15692120499441969
+ 0.15692557691487999
+ 0.15692994894361373
+ 0.15693432108062552
+ 0.15693869332591923
+ 0.15694306567949898
+ 0.15694743814136891
+ 0.15695181071153314
+ 0.15695618338999626
+ 0.15696055617676141
+ 0.1569649290718336
+ 0.15696930207521634
+ 0.15697367518691405
+ 0.15697804840693108
+ 0.15698242173527083
+ 0.15698679517193836
+ 0.15699116871693711
+ 0.15699554237027141
+ 0.15699991613194531
+ 0.15700429000196309
+ 0.15700866398032873
+ 0.1570130380670465
+ 0.15701741226212015
+ 0.15702178656555443
+ 0.15702616097735295
+ 0.15703053549752002
+ 0.15703491012605958
+ 0.15703928486297603
+ 0.15704365970827339
+ 0.15704803466195572
+ 0.15705240972402718
+ 0.15705678489449193
+ 0.15706116017335389
+ 0.15706553556061761
+ 0.15706991105628706
+ 0.15707428666036602
+ 0.15707866237285892
+ 0.15708303819376984
+ 0.15708741412310279
+ 0.15709179016086203
+ 0.15709616630705187
+ 0.15710054256167599
+ 0.15710491892473871
+ 0.15710929539624444
+ 0.15711367197619691
+ 0.15711804866460025
+ 0.15712242546145902
+ 0.15712680236677673
+ 0.15713117938055801
+ 0.15713555650280667
+ 0.15713993373352722
+ 0.15714431107272334
+ 0.15714868852039929
+ 0.15715306607655952
+ 0.15715744374120766
+ 0.15716182151434813
+ 0.15716619939598503
+ 0.15717057738612242
+ 0.15717495548476451
+ 0.15717933369191525
+ 0.15718371200757897
+ 0.1571880904317598
+ 0.15719246896446185
+ 0.15719684760568908
+ 0.15720122635544589
+ 0.15720560521373611
+ 0.15720998418056395
+ 0.1572143632559336
+ 0.15721874243984937
+ 0.15722312173231512
+ 0.15722750113333514
+ 0.1572318806429133
+ 0.15723626026105395
+ 0.15724063998776136
+ 0.15724501982303932
+ 0.15724939976689228
+ 0.15725377981932392
+ 0.15725815998033912
+ 0.15726254024994119
+ 0.15726692062813483
+ 0.15727130111492391
+ 0.15727568171031236
+ 0.15728006241430487
+ 0.1572844432269053
+ 0.15728882414811762
+ 0.15729320517794626
+ 0.15729758631639498
+ 0.15730196756346829
+ 0.15730634891916992
+ 0.1573107303835044
+ 0.15731511195647568
+ 0.15731949363808784
+ 0.15732387542834531
+ 0.15732825732725161
+ 0.15733263933481154
+ 0.15733702145102887
+ 0.15734140367590799
+ 0.15734578600945257
+ 0.15735016845166719
+ 0.15735455100255574
+ 0.15735893366212239
+ 0.15736331643037149
+ 0.15736769930730693
+ 0.1573720822929329
+ 0.15737646538725361
+ 0.1573808485902731
+ 0.15738523190199544
+ 0.15738961532242499
+ 0.15739399885156563
+ 0.15739838248942159
+ 0.15740276623599733
+ 0.15740715009129644
+ 0.15741153405532357
+ 0.15741591812808234
+ 0.15742030230957729
+ 0.15742468659981226
+ 0.15742907099879169
+ 0.15743345550651944
+ 0.15743784012299977
+ 0.15744222484823706
+ 0.15744660968223484
+ 0.15745099462499773
+ 0.15745537967652981
+ 0.1574597648368351
+ 0.15746415010591799
+ 0.15746853548378217
+ 0.15747292097043203
+ 0.15747730656587181
+ 0.15748169227010553
+ 0.15748607808313714
+ 0.15749046400497141
+ 0.15749485003561181
+ 0.15749923617506253
+ 0.15750362242332799
+ 0.15750800878041238
+ 0.15751239524631955
+ 0.15751678182105389
+ 0.15752116850461909
+ 0.15752555529701989
+ 0.15752994219826022
+ 0.15753432920834412
+ 0.15753871632727562
+ 0.15754310355505921
+ 0.15754749089169878
+ 0.15755187833719858
+ 0.15755626589156255
+ 0.15756065355479504
+ 0.15756504132690005
+ 0.15756942920788192
+ 0.15757381719774458
+ 0.15757820529649222
+ 0.15758259350412915
+ 0.15758698182065936
+ 0.15759137024608702
+ 0.15759575878041604
+ 0.15760014742365117
+ 0.15760453617579581
+ 0.15760892503685453
+ 0.15761331400683171
+ 0.15761770308573084
+ 0.15762209227355636
+ 0.1576264815703127
+ 0.15763087097600376
+ 0.15763526049063353
+ 0.1576396501142063
+ 0.15764403984672634
+ 0.15764842968819759
+ 0.15765281963862429
+ 0.15765720969801061
+ 0.15766159986636058
+ 0.15766599014367846
+ 0.15767038052996843
+ 0.15767477102523456
+ 0.15767916162948087
+ 0.15768355234271159
+ 0.15768794316493087
+ 0.15769233409614308
+ 0.15769672513635208
+ 0.15770111628556205
+ 0.15770550754377721
+ 0.15770989891100179
+ 0.15771429038723972
+ 0.15771868197249533
+ 0.15772307366677271
+ 0.15772746547007593
+ 0.15773185738240905
+ 0.15773624940377656
+ 0.15774064153418244
+ 0.15774503377363067
+ 0.15774942612212547
+ 0.15775381857967141
+ 0.15775821114627178
+ 0.15776260382193158
+ 0.15776699660665441
+ 0.15777138950044464
+ 0.15777578250330648
+ 0.15778017561524402
+ 0.15778456883626127
+ 0.15778896216636246
+ 0.15779335560555163
+ 0.15779774915383324
+ 0.15780214281121127
+ 0.15780653657768967
+ 0.15781093045327305
+ 0.15781532443796498
+ 0.15781971853177007
+ 0.15782411273469221
+ 0.15782850704673573
+ 0.15783290146790474
+ 0.15783729599820331
+ 0.15784169063763551
+ 0.15784608538620581
+ 0.15785048024391793
+ 0.15785487521077649
+ 0.15785927028678531
+ 0.15786366547194847
+ 0.15786806076627036
+ 0.15787245616975501
+ 0.15787685168240667
+ 0.15788124730422951
+ 0.15788564303522751
+ 0.15789003887540498
+ 0.15789443482476595
+ 0.15789883088331458
+ 0.15790322705105519
+ 0.15790762332799158
+ 0.1579120197141283
+ 0.15791641620946936
+ 0.1579208128140189
+ 0.15792520952778091
+ 0.15792960635075981
+ 0.15793400328295962
+ 0.1579384003243845
+ 0.15794279747503853
+ 0.15794719473492599
+ 0.15795159210405105
+ 0.15795598958241786
+ 0.15796038717003036
+ 0.15796478486689292
+ 0.15796918267300972
+ 0.15797358058838476
+ 0.15797797861302221
+ 0.15798237674692633
+ 0.15798677499010103
+ 0.15799117334255094
+ 0.15799557180427981
+ 0.15799997037529201
+ 0.15800436905559151
+ 0.1580087678451825
+ 0.15801316674406934
+ 0.15801756575225584
+ 0.1580219648697464
+ 0.15802636409654519
+ 0.15803076343265632
+ 0.15803516287808408
+ 0.15803956243283226
+ 0.15804396209690535
+ 0.15804836187030721
+ 0.15805276175304228
+ 0.15805716174511475
+ 0.15806156184652845
+ 0.15806596205728787
+ 0.15807036237739691
+ 0.15807476280685984
+ 0.15807916334568106
+ 0.15808356399386431
+ 0.15808796475141382
+ 0.15809236561833415
+ 0.15809676659462896
+ 0.15810116768030255
+ 0.15810556887535918
+ 0.15810997017980299
+ 0.15811437159363817
+ 0.15811877311686881
+ 0.15812317474949911
+ 0.15812757649153342
+ 0.15813197834297518
+ 0.15813638030382937
+ 0.15814078237409993
+ 0.15814518455379076
+ 0.15814958684290617
+ 0.15815398924145019
+ 0.1581583917494275
+ 0.15816279436684161
+ 0.15816719709369709
+ 0.15817159992999802
+ 0.15817600287574851
+ 0.15818040593095273
+ 0.15818480909561455
+ 0.15818921236973874
+ 0.15819361575332902
+ 0.15819801924638957
+ 0.15820242284892483
+ 0.15820682656093862
+ 0.15821123038243534
+ 0.15821563431341909
+ 0.15822003835389389
+ 0.15822444250386408
+ 0.15822884676333399
+ 0.15823325113230741
+ 0.15823765561078865
+ 0.1582420601987819
+ 0.15824646489629129
+ 0.15825086970332095
+ 0.15825527461987518
+ 0.15825967964595794
+ 0.15826408478157364
+ 0.1582684900267263
+ 0.15827289538142009
+ 0.15827730084565925
+ 0.1582817064194478
+ 0.15828611210279003
+ 0.15829051789568999
+ 0.15829492379815174
+ 0.15829932981017986
+ 0.15830373593177827
+ 0.15830814216295105
+ 0.15831254850370247
+ 0.15831695495403683
+ 0.15832136151395809
+ 0.15832576818347033
+ 0.1583301749625779
+ 0.15833458185128502
+ 0.15833898884959574
+ 0.1583433959575142
+ 0.1583478031750446
+ 0.15835221050219123
+ 0.15835661793895814
+ 0.15836102548534939
+ 0.15836543314136922
+ 0.15836984090702183
+ 0.15837424878231154
+ 0.15837865676724233
+ 0.15838306486181841
+ 0.1583874730660442
+ 0.15839188137992327
+ 0.15839628980346038
+ 0.15840069833665921
+ 0.15840510697952428
+ 0.15840951573205972
+ 0.15841392459426956
+ 0.15841833356615823
+ 0.1584227426477294
+ 0.15842715183898781
+ 0.15843156113993714
+ 0.15843597055058203
+ 0.15844038007092645
+ 0.15844478970097423
+ 0.15844919944073005
+ 0.15845360929019772
+ 0.15845801924938183
+ 0.15846242931828611
+ 0.15846683949691487
+ 0.15847124978527238
+ 0.15847566018336287
+ 0.15848007069119011
+ 0.15848448130875853
+ 0.15848889203607255
+ 0.15849330287313601
+ 0.15849771381995331
+ 0.15850212487652826
+ 0.15850653604286544
+ 0.15851094731896898
+ 0.15851535870484279
+ 0.15851977020049102
+ 0.15852418180591832
+ 0.1585285935211283
+ 0.15853300534612541
+ 0.15853741728091356
+ 0.15854182932549754
+ 0.15854624147988103
+ 0.15855065374406835
+ 0.15855506611806347
+ 0.15855947860187086
+ 0.15856389119549438
+ 0.15856830389893856
+ 0.1585727167122073
+ 0.15857712963530488
+ 0.15858154266823557
+ 0.15858595581100327
+ 0.15859036906361229
+ 0.15859478242606706
+ 0.15859919589837157
+ 0.15860360948052979
+ 0.15860802317254616
+ 0.1586124369744247
+ 0.15861685088616984
+ 0.15862126490778539
+ 0.15862567903927574
+ 0.15863009328064495
+ 0.15863450763189729
+ 0.15863892209303701
+ 0.15864333666406816
+ 0.15864775134499484
+ 0.15865216613582153
+ 0.15865658103655214
+ 0.15866099604719097
+ 0.15866541116774197
+ 0.15866982639820973
+ 0.15867424173859801
+ 0.1586786571889113
+ 0.15868307274915369
+ 0.15868748841932928
+ 0.15869190419944235
+ 0.15869632008949691
+ 0.15870073608949734
+ 0.15870515219944753
+ 0.15870956841935208
+ 0.15871398474921497
+ 0.15871840118904007
+ 0.15872281773883212
+ 0.1587272343985949
+ 0.15873165116833285
+ 0.15873606804804991
+ 0.15874048503775021
+ 0.15874490213743825
+ 0.15874931934711825
+ 0.15875373666679385
+ 0.15875815409646976
+ 0.15876257163614974
+ 0.15876698928583846
+ 0.15877140704553977
+ 0.15877582491525796
+ 0.15878024289499701
+ 0.15878466098476124
+ 0.15878907918455512
+ 0.15879349749438237
+ 0.15879791591424733
+ 0.15880233444415456
+ 0.15880675308410747
+ 0.15881117183411098
+ 0.15881559069416876
+ 0.15882000966428528
+ 0.15882442874446467
+ 0.15882884793471108
+ 0.15883326723502875
+ 0.15883768664542175
+ 0.15884210616589431
+ 0.15884652579645059
+ 0.15885094553709489
+ 0.1588553653878314
+ 0.15885978534866402
+ 0.15886420541959725
+ 0.15886862560063506
+ 0.15887304589178189
+ 0.15887746629304175
+ 0.15888188680441881
+ 0.15888630742591717
+ 0.15889072815754113
+ 0.15889514899929513
+ 0.15889956995118293
+ 0.15890399101320893
+ 0.15890841218537732
+ 0.15891283346769217
+ 0.1589172548601579
+ 0.15892167636277824
+ 0.15892609797555776
+ 0.15893051969850072
+ 0.15893494153161114
+ 0.15893936347489315
+ 0.15894378552835087
+ 0.1589482076919887
+ 0.15895262996581086
+ 0.15895705234982127
+ 0.15896147484402437
+ 0.15896589744842418
+ 0.15897032016302493
+ 0.15897474298783082
+ 0.15897916592284614
+ 0.15898358896807493
+ 0.15898801212352162
+ 0.15899243538918986
+ 0.15899685876508457
+ 0.15900128225120935
+ 0.15900570584756846
+ 0.15901012955416644
+ 0.15901455337100737
+ 0.15901897729809505
+ 0.15902340133543413
+ 0.15902782548302863
+ 0.1590322497408827
+ 0.15903667410900058
+ 0.15904109858738644
+ 0.15904552317604437
+ 0.15904994787497892
+ 0.15905437268419376
+ 0.15905879760369368
+ 0.15906322263348222
+ 0.15906764777356414
+ 0.15907207302394316
+ 0.15907649838462382
+ 0.15908092385561001
+ 0.1590853494369063
+ 0.1590897751285168
+ 0.1590942009304453
+ 0.15909862684269657
+ 0.15910305286527435
+ 0.15910747899818273
+ 0.15911190524142657
+ 0.15911633159500949
+ 0.15912075805893602
+ 0.15912518463320974
+ 0.15912961131783582
+ 0.15913403811281757
+ 0.15913846501815967
+ 0.15914289203386617
+ 0.15914731915994107
+ 0.15915174639638902
+ 0.15915617374321381
+ 0.15916060120041969
+ 0.15916502876801117
+ 0.1591694564459922
+ 0.15917388423436687
+ 0.15917831213313952
+ 0.15918274014231446
+ 0.15918716826189563
+ 0.15919159649188747
+ 0.15919602483229395
+ 0.15920045328311927
+ 0.15920488184436793
+ 0.15920931051604378
+ 0.15921373929815122
+ 0.1592181681906942
+ 0.15922259719367743
+ 0.15922702630710456
+ 0.15923145553097998
+ 0.15923588486530804
+ 0.15924031431009275
+ 0.15924474386533824
+ 0.15924917353104914
+ 0.15925360330722907
+ 0.15925803319388246
+ 0.15926246319101373
+ 0.15926689329862678
+ 0.15927132351672588
+ 0.15927575384531545
+ 0.15928018428439938
+ 0.15928461483398176
+ 0.15928904549406739
+ 0.15929347626466009
+ 0.15929790714576392
+ 0.15930233813738326
+ 0.15930676923952217
+ 0.15931120045218508
+ 0.15931563177537622
+ 0.15932006320909933
+ 0.15932449475335916
+ 0.1593289264081594
+ 0.15933335817350466
+ 0.15933779004939921
+ 0.15934222203584683
+ 0.15934665413285182
+ 0.15935108634041864
+ 0.15935551865855152
+ 0.15935995108725415
+ 0.15936438362653113
+ 0.15936881627638663
+ 0.15937324903682487
+ 0.15937768190785007
+ 0.15938211488946616
+ 0.15938654798167773
+ 0.15939098118448863
+ 0.15939541449790329
+ 0.15939984792192616
+ 0.15940428145656063
+ 0.15940871510181159
+ 0.1594131488576831
+ 0.15941758272417927
+ 0.15942201670130432
+ 0.1594264507890627
+ 0.15943088498745819
+ 0.15943531929649526
+ 0.15943975371617802
+ 0.15944418824651085
+ 0.15944862288749756
+ 0.15945305763914283
+ 0.1594574925014505
+ 0.159461927474425
+ 0.1594663625580704
+ 0.15947079775239115
+ 0.15947523305739106
+ 0.15947966847307452
+ 0.15948410399944607
+ 0.15948853963650925
+ 0.15949297538426871
+ 0.15949741124272848
+ 0.15950184721189309
+ 0.15950628329176622
+ 0.15951071948235265
+ 0.15951515578365599
+ 0.15951959219568101
+ 0.15952402871843152
+ 0.15952846535191187
+ 0.15953290209612644
+ 0.15953733895107899
+ 0.15954177591677418
+ 0.15954621299321595
+ 0.15955065018040868
+ 0.15955508747835626
+ 0.15955952488706354
+ 0.15956396240653384
+ 0.15956840003677228
+ 0.15957283777778231
+ 0.15957727562956853
+ 0.15958171359213519
+ 0.15958615166548631
+ 0.15959058984962612
+ 0.15959502814455898
+ 0.15959946655028909
+ 0.15960390506682035
+ 0.15960834369415733
+ 0.1596127824323042
+ 0.15961722128126493
+ 0.15962166024104396
+ 0.15962609931164534
+ 0.15963053849307335
+ 0.15963497778533237
+ 0.15963941718842636
+ 0.15964385670235945
+ 0.15964829632713615
+ 0.15965273606276048
+ 0.15965717590923689
+ 0.15966161586656927
+ 0.15966605593476194
+ 0.15967049611381912
+ 0.15967493640374514
+ 0.15967937680454417
+ 0.15968381731622033
+ 0.15968825793877786
+ 0.15969269867222094
+ 0.15969713951655401
+ 0.15970158047178085
+ 0.15970602153790608
+ 0.15971046271493364
+ 0.15971490400286786
+ 0.15971934540171304
+ 0.15972378691147338
+ 0.15972822853215293
+ 0.1597326702637559
+ 0.15973711210628672
+ 0.15974155405974935
+ 0.15974599612414833
+ 0.1597504382994876
+ 0.1597548805857715
+ 0.15975932298300427
+ 0.15976376549118987
+ 0.15976820811033277
+ 0.15977265084043707
+ 0.15977709368150717
+ 0.15978153663354708
+ 0.15978597969656089
+ 0.15979042287055342
+ 0.15979486615552821
+ 0.15979930955148963
+ 0.15980375305844219
+ 0.15980819667638999
+ 0.15981264040533708
+ 0.15981708424528754
+ 0.15982152819624623
+ 0.15982597225821668
+ 0.15983041643120355
+ 0.15983486071521091
+ 0.15983930511024283
+ 0.15984374961630379
+ 0.15984819423339777
+ 0.15985263896152926
+ 0.15985708380070227
+ 0.15986152875092077
+ 0.15986597381218953
+ 0.15987041898451251
+ 0.15987486426789374
+ 0.1598793096623379
+ 0.15988375516784886
+ 0.15988820078443089
+ 0.1598926465120882
+ 0.15989709235082497
+ 0.1599015383006456
+ 0.15990598436155423
+ 0.15991043053355508
+ 0.15991487681665228
+ 0.15991932321085031
+ 0.15992376971615277
+ 0.15992821633256471
+ 0.15993266306008977
+ 0.15993710989873222
+ 0.15994155684849667
+ 0.15994600390938696
+ 0.1599504510814074
+ 0.15995489836456225
+ 0.15995934575885573
+ 0.15996379326429208
+ 0.15996824088087544
+ 0.15997268860861025
+ 0.15997713644750042
+ 0.15998158439755025
+ 0.15998603245876447
+ 0.15999048063114635
+ 0.15999492891470077
+ 0.15999937730943178
+ 0.16000382581534392
+ 0.16000827443244095
+ 0.16001272316072726
+ 0.16001717200020707
+ 0.16002162095088462
+ 0.16002607001276412
+ 0.16003051918585001
+ 0.16003496847014598
+ 0.16003941786565698
+ 0.16004386737238674
+ 0.16004831699033939
+ 0.16005276671951948
+ 0.16005721655993108
+ 0.16006166651157852
+ 0.1600661165744659
+ 0.16007056674859738
+ 0.16007501703397745
+ 0.16007946743061013
+ 0.16008391793849974
+ 0.16008836855765043
+ 0.16009281928806623
+ 0.16009727012975211
+ 0.16010172108271137
+ 0.16010617214694878
+ 0.16011062332246856
+ 0.16011507460927482
+ 0.16011952600737153
+ 0.16012397751676336
+ 0.16012842913745431
+ 0.16013288086944877
+ 0.16013733271275074
+ 0.16014178466736437
+ 0.16014623673329426
+ 0.16015068891054454
+ 0.16015514119911928
+ 0.16015959359902274
+ 0.16016404611025925
+ 0.16016849873283284
+ 0.16017295146674806
+ 0.16017740431200864
+ 0.16018185726861925
+ 0.16018631033658431
+ 0.16019076351590747
+ 0.16019521680659321
+ 0.16019967020864576
+ 0.16020412372206946
+ 0.16020857734686828
+ 0.1602130310830466
+ 0.16021748493060881
+ 0.16022193888955902
+ 0.16022639295990132
+ 0.16023084714164001
+ 0.16023530143477963
+ 0.16023975583932379
+ 0.16024421035527728
+ 0.1602486649826442
+ 0.16025311972142867
+ 0.16025757457163481
+ 0.16026202953326707
+ 0.16026648460632967
+ 0.16027093979082674
+ 0.16027539508676253
+ 0.16027985049414134
+ 0.16028430601296745
+ 0.16028876164324496
+ 0.16029321738497823
+ 0.16029767323817132
+ 0.16030212920282855
+ 0.16030658527895414
+ 0.16031104146655253
+ 0.16031549776562765
+ 0.16031995417618397
+ 0.16032441069822548
+ 0.16032886733175644
+ 0.16033332407678122
+ 0.16033778093330411
+ 0.16034223790132915
+ 0.1603466949808609
+ 0.16035115217190338
+ 0.1603556094744607
+ 0.16036006688853721
+ 0.16036452441413721
+ 0.16036898205126485
+ 0.1603734397999243
+ 0.16037789766012009
+ 0.16038235563185613
+ 0.16038681371513686
+ 0.16039127190996624
+ 0.16039573021634906
+ 0.16040018863428895
+ 0.1604046471637903
+ 0.16040910580485773
+ 0.16041356455749514
+ 0.16041802342170683
+ 0.16042248239749687
+ 0.16042694148486975
+ 0.16043140068382955
+ 0.16043585999438062
+ 0.16044031941652726
+ 0.16044477895027362
+ 0.16044923859562382
+ 0.16045369835258222
+ 0.16045815822115286
+ 0.16046261820134039
+ 0.16046707829314877
+ 0.16047153849658219
+ 0.16047599881164523
+ 0.1604804592383417
+ 0.16048491977667606
+ 0.16048938042665256
+ 0.1604938411882752
+ 0.16049830206154869
+ 0.1605027630464769
+ 0.16050722414306406
+ 0.16051168535131444
+ 0.16051614667123265
+ 0.16052060810282259
+ 0.16052506964608831
+ 0.16052953130103451
+ 0.16053399306766522
+ 0.16053845494598445
+ 0.16054291693599684
+ 0.16054737903770633
+ 0.16055184125111749
+ 0.16055630357623421
+ 0.16056076601306105
+ 0.16056522856160188
+ 0.16056969122186129
+ 0.16057415399384337
+ 0.16057861687755215
+ 0.16058307987299242
+ 0.16058754298016803
+ 0.1605920061990832
+ 0.16059646952974238
+ 0.16060093297214958
+ 0.16060539652630912
+ 0.16060986019222556
+ 0.16061432396990263
+ 0.16061878785934497
+ 0.1606232518605567
+ 0.16062771597354186
+ 0.16063218019830494
+ 0.1606366445348501
+ 0.16064110898318165
+ 0.16064557354330378
+ 0.16065003821522086
+ 0.16065450299893705
+ 0.16065896789445622
+ 0.16066343290178323
+ 0.16066789802092199
+ 0.16067236325187698
+ 0.16067682859465207
+ 0.1606812940492518
+ 0.16068575961568032
+ 0.16069022529394195
+ 0.1606946910840408
+ 0.16069915698598111
+ 0.16070362299976748
+ 0.16070808912540363
+ 0.16071255536289411
+ 0.16071702171224322
+ 0.16072148817345511
+ 0.16072595474653414
+ 0.16073042143148419
+ 0.16073488822830997
+ 0.16073935513701551
+ 0.16074382215760494
+ 0.16074828929008272
+ 0.16075275653445301
+ 0.16075722389072011
+ 0.16076169135888824
+ 0.16076615893896171
+ 0.16077062663094474
+ 0.16077509443484134
+ 0.16077956235065607
+ 0.16078403037839303
+ 0.16078849851805654
+ 0.16079296676965082
+ 0.16079743513317998
+ 0.16080190360864868
+ 0.16080637219606075
+ 0.16081084089542069
+ 0.16081530970673272
+ 0.16081977863000088
+ 0.16082424766522965
+ 0.16082871681242311
+ 0.16083318607158556
+ 0.16083765544272149
+ 0.1608421249258348
+ 0.16084659452093014
+ 0.16085106422801113
+ 0.16085553404708261
+ 0.16086000397814884
+ 0.16086447402121368
+ 0.16086894417628161
+ 0.16087341444335673
+ 0.16087788482244361
+ 0.16088235531354617
+ 0.16088682591666881
+ 0.16089129663181581
+ 0.16089576745899151
+ 0.16090023839819995
+ 0.16090470944944538
+ 0.16090918061273218
+ 0.16091365188806467
+ 0.16091812327544705
+ 0.16092259477488338
+ 0.16092706638637819
+ 0.16093153810993555
+ 0.16093600994555987
+ 0.16094048189325516
+ 0.16094495395302588
+ 0.16094942612487625
+ 0.16095389840881044
+ 0.16095837080483308
+ 0.16096284331294783
+ 0.16096731593315938
+ 0.16097178866547174
+ 0.16097626150988928
+ 0.16098073446641642
+ 0.16098520753505716
+ 0.16098968071581579
+ 0.16099415400869665
+ 0.16099862741370383
+ 0.16100310093084211
+ 0.16100757456011516
+ 0.16101204830152735
+ 0.16101652215508311
+ 0.1610209961207868
+ 0.1610254701986423
+ 0.16102994438865426
+ 0.16103441869082644
+ 0.16103889310516356
+ 0.16104336763166988
+ 0.16104784227034938
+ 0.16105231702120645
+ 0.16105679188424527
+ 0.16106126685947045
+ 0.16106574194688567
+ 0.16107021714649561
+ 0.16107469245830458
+ 0.16107916788231635
+ 0.16108364341853576
+ 0.16108811906696657
+ 0.16109259482761348
+ 0.16109707070048068
+ 0.16110154668557208
+ 0.16110602278289224
+ 0.16111049899244537
+ 0.16111497531423594
+ 0.16111945174826761
+ 0.16112392829454517
+ 0.16112840495307293
+ 0.16113288172385462
+ 0.16113735860689513
+ 0.16114183560219819
+ 0.16114631270976842
+ 0.16115078992961002
+ 0.16115526726172713
+ 0.16115974470612396
+ 0.16116422226280511
+ 0.16116869993177455
+ 0.16117317771303674
+ 0.16117765560659555
+ 0.16118213361245576
+ 0.16118661173062138
+ 0.1611910899610966
+ 0.16119556830388573
+ 0.16120004675899324
+ 0.1612045253264231
+ 0.16120900400617982
+ 0.16121348279826742
+ 0.1612179617026904
+ 0.16122244071945285
+ 0.16122691984855908
+ 0.16123139909001358
+ 0.16123587844382034
+ 0.16124035790998367
+ 0.16124483748850779
+ 0.16124931717939728
+ 0.16125379698265602
+ 0.16125827689828845
+ 0.16126275692629879
+ 0.16126723706669127
+ 0.16127171731947035
+ 0.16127619768464013
+ 0.16128067816220484
+ 0.16128515875216903
+ 0.1612896394545367
+ 0.16129412026931211
+ 0.16129860119649952
+ 0.16130308223610346
+ 0.16130756338812791
+ 0.16131204465257742
+ 0.16131652602945593
+ 0.16132100751876788
+ 0.16132548912051767
+ 0.16132997083470915
+ 0.16133445266134702
+ 0.16133893460043547
+ 0.16134341665197854
+ 0.16134789881598077
+ 0.16135238109244607
+ 0.16135686348137937
+ 0.16136134598278415
+ 0.16136582859666496
+ 0.16137031132302654
+ 0.1613747941618727
+ 0.16137927711320768
+ 0.1613837601770359
+ 0.16138824335336174
+ 0.16139272664218907
+ 0.16139721004352259
+ 0.16140169355736619
+ 0.16140617718372463
+ 0.16141066092260195
+ 0.16141514477400215
+ 0.16141962873792975
+ 0.16142411281438906
+ 0.16142859700338436
+ 0.16143308130491979
+ 0.16143756571899964
+ 0.16144205024562822
+ 0.16144653488481003
+ 0.16145101963654887
+ 0.16145550450084936
+ 0.16145998947771578
+ 0.16146447456715227
+ 0.16146895976916292
+ 0.16147344508375253
+ 0.1614779305109251
+ 0.16148241605068459
+ 0.1614869017030359
+ 0.16149138746798261
+ 0.16149587334552964
+ 0.16150035933568083
+ 0.16150484543844074
+ 0.16150933165381343
+ 0.16151381798180334
+ 0.16151830442241441
+ 0.16152279097565148
+ 0.16152727764151842
+ 0.16153176442001943
+ 0.16153625131115915
+ 0.16154073831494148
+ 0.16154522543137109
+ 0.16154971266045198
+ 0.16155420000218848
+ 0.16155868745658483
+ 0.16156317502364537
+ 0.16156766270337436
+ 0.161572150495776
+ 0.16157663840085484
+ 0.16158112641861488
+ 0.16158561454906059
+ 0.16159010279219607
+ 0.16159459114802566
+ 0.16159907961655365
+ 0.16160356819778424
+ 0.16160805689172178
+ 0.16161254569837066
+ 0.1616170346177353
+ 0.16162152364981938
+ 0.1616260127946276
+ 0.16163050205216434
+ 0.16163499142243351
+ 0.16163948090543978
+ 0.16164397050118728
+ 0.1616484602096801
+ 0.16165295003092262
+ 0.16165743996491935
+ 0.16166193001167439
+ 0.16166642017119207
+ 0.16167091044347637
+ 0.16167540082853199
+ 0.16167989132636315
+ 0.16168438193697385
+ 0.16168887266036869
+ 0.16169336349655192
+ 0.16169785444552762
+ 0.1617023455073
+ 0.16170683668187374
+ 0.16171132796925283
+ 0.16171581936944154
+ 0.16172031088244446
+ 0.1617248025082654
+ 0.16172929424690918
+ 0.1617337860983796
+ 0.16173827806268118
+ 0.16174277013981822
+ 0.16174726232979478
+ 0.16175175463261546
+ 0.1617562470482842
+ 0.16176073957680565
+ 0.16176523221818406
+ 0.1617697249724234
+ 0.16177421783952822
+ 0.16177871081950249
+ 0.16178320391235093
+ 0.1617876971180775
+ 0.1617921904366868
+ 0.16179668386818266
+ 0.16180117741256986
+ 0.16180567106985233
+ 0.16181016484003466
+ 0.16181465872312065
+ 0.16181915271911509
+ 0.161823646828022
+ 0.16182814104984572
+ 0.16183263538459075
+ 0.16183712983226103
+ 0.1618416243928609
+ 0.16184611906639482
+ 0.161850613852867
+ 0.16185510875228171
+ 0.16185960376464309
+ 0.16186409888995598
+ 0.16186859412822402
+ 0.16187308947945198
+ 0.16187758494364371
+ 0.16188208052080358
+ 0.16188657621093633
+ 0.16189107201404584
+ 0.16189556793013635
+ 0.16190006395921244
+ 0.16190456010127829
+ 0.16190905635633818
+ 0.16191355272439625
+ 0.16191804920545691
+ 0.16192254579952434
+ 0.16192704250660325
+ 0.16193153932669724
+ 0.16193603625981129
+ 0.1619405333059494
+ 0.1619450304651156
+ 0.16194952773731466
+ 0.16195402512255058
+ 0.16195852262082769
+ 0.16196302023215026
+ 0.16196751795652251
+ 0.16197201579394907
+ 0.16197651374443375
+ 0.16198101180798138
+ 0.16198550998459582
+ 0.16199000827428137
+ 0.16199450667704285
+ 0.16199900519288365
+ 0.16200350382180906
+ 0.16200800256382264
+ 0.16201250141892889
+ 0.16201700038713232
+ 0.16202149946843708
+ 0.16202599866284725
+ 0.16203049797036737
+ 0.16203499739100183
+ 0.16203949692475456
+ 0.16204399657163016
+ 0.16204849633163271
+ 0.1620529962047669
+ 0.16205749619103646
+ 0.16206199629044613
+ 0.16206649650300006
+ 0.16207099682870241
+ 0.16207549726755774
+ 0.16207999781957
+ 0.16208449848474385
+ 0.16208899926308337
+ 0.16209350015459292
+ 0.16209800115927675
+ 0.16210250227713935
+ 0.16210700350818477
+ 0.16211150485241738
+ 0.1621160063098413
+ 0.1621205078804614
+ 0.16212500956428116
+ 0.16212951136130585
+ 0.16213401327153878
+ 0.16213851529498485
+ 0.16214301743164813
+ 0.16214751968153315
+ 0.16215202204464413
+ 0.16215652452098503
+ 0.16216102711056049
+ 0.16216552981337479
+ 0.16217003262943222
+ 0.1621745355587369
+ 0.16217903860129326
+ 0.16218354175710567
+ 0.16218804502617842
+ 0.16219254840851574
+ 0.16219705190412173
+ 0.16220155551300092
+ 0.16220605923515791
+ 0.16221056307059634
+ 0.16221506701932092
+ 0.16221957108133614
+ 0.16222407525664562
+ 0.16222857954525427
+ 0.16223308394716615
+ 0.16223758846238556
+ 0.16224209309091711
+ 0.16224659783276449
+ 0.16225110268793275
+ 0.16225560765642558
+ 0.16226011273824742
+ 0.16226461793340285
+ 0.1622691232418958
+ 0.1622736286637308
+ 0.16227813419891213
+ 0.16228263984744393
+ 0.16228714560933058
+ 0.16229165148457661
+ 0.16229615747318615
+ 0.16230066357516368
+ 0.16230516979051293
+ 0.1623096761192388
+ 0.16231418256134542
+ 0.162318689116837
+ 0.16232319578571794
+ 0.1623277025679925
+ 0.16233220946366486
+ 0.16233671647273978
+ 0.1623412235952211
+ 0.16234573083111317
+ 0.16235023818042063
+ 0.16235474564314736
+ 0.16235925321929795
+ 0.16236376090887655
+ 0.16236826871188764
+ 0.16237277662833532
+ 0.16237728465822404
+ 0.16238179280155812
+ 0.1623863010583417
+ 0.16239080942857909
+ 0.16239531791227507
+ 0.16239982650943319
+ 0.16240433522005834
+ 0.16240884404415459
+ 0.16241335298172641
+ 0.16241786203277764
+ 0.16242237119731331
+ 0.16242688047533715
+ 0.16243138986685379
+ 0.16243589937186725
+ 0.16244040899038209
+ 0.16244491872240258
+ 0.16244942856793301
+ 0.16245393852697765
+ 0.16245844859954073
+ 0.16246295878562694
+ 0.16246746908523987
+ 0.16247197949838471
+ 0.16247649002506484
+ 0.16248100066528531
+ 0.16248551141905024
+ 0.16249002228636383
+ 0.16249453326723018
+ 0.16249904436165422
+ 0.16250355556963966
+ 0.16250806689119121
+ 0.16251257832631286
+ 0.16251708987500901
+ 0.16252160153728426
+ 0.16252611331314265
+ 0.16253062520258826
+ 0.16253513720562596
+ 0.16253964932225984
+ 0.16254416155249404
+ 0.16254867389633285
+ 0.16255318635378097
+ 0.16255769892484218
+ 0.16256221160952117
+ 0.16256672440782238
+ 0.16257123731974968
+ 0.16257575034530752
+ 0.16258026348450047
+ 0.16258477673733263
+ 0.16258929010380835
+ 0.16259380358393197
+ 0.16259831717770784
+ 0.16260283088514013
+ 0.16260734470623325
+ 0.16261185864099154
+ 0.16261637268941923
+ 0.16262088685152057
+ 0.16262540112730026
+ 0.16262991551676206
+ 0.16263443001991074
+ 0.16263894463675044
+ 0.16264345936728561
+ 0.16264797421152014
+ 0.16265248916945885
+ 0.16265700424110577
+ 0.16266151942646509
+ 0.16266603472554156
+ 0.16267055013833939
+ 0.16267506566486253
+ 0.16267958130511576
+ 0.162684097059103
+ 0.16268861292682898
+ 0.16269312890829737
+ 0.16269764500351333
+ 0.1627021612124803
+ 0.16270667753520349
+ 0.16271119397168651
+ 0.16271571052193393
+ 0.16272022718595033
+ 0.16272474396373954
+ 0.16272926085530603
+ 0.16273377786065449
+ 0.16273829497978889
+ 0.16274281221271336
+ 0.16274732955943272
+ 0.16275184701995102
+ 0.16275636459427256
+ 0.16276088228240176
+ 0.1627654000843427
+ 0.16276991800009999
+ 0.16277443602967784
+ 0.16277895417308072
+ 0.16278347243031271
+ 0.1627879908013781
+ 0.16279250928628153
+ 0.1627970278850269
+ 0.16280154659761889
+ 0.16280606542406179
+ 0.16281058436435966
+ 0.16281510341851688
+ 0.16281962258653807
+ 0.16282414186842728
+ 0.16282866126418896
+ 0.16283318077382739
+ 0.16283770039734688
+ 0.16284222013475158
+ 0.16284673998604629
+ 0.16285125995123489
+ 0.16285578003032172
+ 0.16286030022331136
+ 0.16286482053020798
+ 0.16286934095101593
+ 0.16287386148573935
+ 0.16287838213438308
+ 0.16288290289695082
+ 0.1628874237734472
+ 0.16289194476387664
+ 0.16289646586824336
+ 0.16290098708655176
+ 0.16290550841880572
+ 0.16291002986501016
+ 0.16291455142516931
+ 0.16291907309928713
+ 0.16292359488736843
+ 0.16292811678941688
+ 0.1629326388054374
+ 0.16293716093543428
+ 0.16294168317941163
+ 0.16294620553737357
+ 0.16295072800932506
+ 0.16295525059526966
+ 0.16295977329521241
+ 0.16296429610915719
+ 0.1629688190371083
+ 0.16297334207907041
+ 0.16297786523504768
+ 0.16298238850504443
+ 0.16298691188906494
+ 0.16299143538711355
+ 0.16299595899919472
+ 0.16300048272531242
+ 0.1630050065654714
+ 0.16300953051967568
+ 0.16301405458792995
+ 0.16301857877023807
+ 0.16302310306660489
+ 0.16302762747703423
+ 0.16303215200153071
+ 0.16303667664009869
+ 0.16304120139274239
+ 0.16304572625946595
+ 0.16305025124027431
+ 0.16305477633517096
+ 0.16305930154416098
+ 0.16306382686724827
+ 0.16306835230443734
+ 0.16307287785573246
+ 0.16307740352113798
+ 0.16308192930065821
+ 0.16308645519429749
+ 0.16309098120206
+ 0.16309550732395031
+ 0.16310003355997288
+ 0.16310455991013154
+ 0.16310908637443094
+ 0.16311361295287555
+ 0.16311813964546948
+ 0.1631226664522171
+ 0.16312719337312259
+ 0.16313172040819077
+ 0.16313624755742534
+ 0.16314077482083117
+ 0.16314530219841233
+ 0.16314982969017308
+ 0.16315435729611794
+ 0.16315888501625117
+ 0.16316341285057712
+ 0.16316794079910013
+ 0.16317246886182446
+ 0.16317699703875457
+ 0.16318152532989474
+ 0.16318605373524911
+ 0.1631905822548223
+ 0.1631951108886186
+ 0.1631996396366423
+ 0.16320416849889763
+ 0.16320869747538905
+ 0.16321322656612089
+ 0.16321775577109765
+ 0.16322228509032305
+ 0.16322681452380211
+ 0.16323134407153878
+ 0.16323587373353779
+ 0.16324040350980298
+ 0.16324493340033913
+ 0.16324946340515012
+ 0.16325399352424053
+ 0.16325852375761493
+ 0.16326305410527728
+ 0.16326758456723206
+ 0.16327211514348353
+ 0.16327664583403628
+ 0.16328117663889452
+ 0.16328570755806238
+ 0.16329023859154437
+ 0.16329476973934509
+ 0.16329930100146833
+ 0.16330383237791907
+ 0.16330836386870104
+ 0.16331289547381875
+ 0.16331742719327666
+ 0.16332195902707897
+ 0.16332649097523053
+ 0.16333102303773486
+ 0.16333555521459686
+ 0.16334008750582094
+ 0.16334461991141097
+ 0.16334915243137163
+ 0.16335368506570716
+ 0.16335821781442192
+ 0.16336275067752021
+ 0.16336728365500652
+ 0.16337181674688511
+ 0.16337634995316005
+ 0.16338088327383612
+ 0.16338541670891743
+ 0.16338995025840836
+ 0.16339448392231334
+ 0.16339901770063664
+ 0.16340355159338243
+ 0.16340808560055539
+ 0.16341261972215951
+ 0.16341715395819945
+ 0.1634216883086792
+ 0.16342622277360358
+ 0.16343075735297644
+ 0.16343529204680254
+ 0.16343982685508587
+ 0.16344436177783112
+ 0.16344889681504218
+ 0.16345343196672391
+ 0.16345796723288039
+ 0.163462502613516
+ 0.16346703810863511
+ 0.16347157371824184
+ 0.16347610944234084
+ 0.16348064528093645
+ 0.16348518123403272
+ 0.16348971730163425
+ 0.16349425348374549
+ 0.16349878978037027
+ 0.16350332619151359
+ 0.16350786271717943
+ 0.16351239935737205
+ 0.16351693611209606
+ 0.16352147298135575
+ 0.16352600996515521
+ 0.16353054706349907
+ 0.1635350842763918
+ 0.16353962160383714
+ 0.16354415904584016
+ 0.16354869660240487
+ 0.16355323427353541
+ 0.16355777205923641
+ 0.16356230995951232
+ 0.16356684797436721
+ 0.16357138610380551
+ 0.16357592434783153
+ 0.16358046270644996
+ 0.16358500117966474
+ 0.16358953976748042
+ 0.16359407846990118
+ 0.16359861728693159
+ 0.16360315621857582
+ 0.16360769526483826
+ 0.16361223442572334
+ 0.16361677370123551
+ 0.16362131309137895
+ 0.16362585259615792
+ 0.16363039221557685
+ 0.16363493194964007
+ 0.16363947179835225
+ 0.16364401176171717
+ 0.16364855183973981
+ 0.16365309203242395
+ 0.16365763233977429
+ 0.16366217276179512
+ 0.1636667132984907
+ 0.16367125394986531
+ 0.16367579471592356
+ 0.16368033559666983
+ 0.16368487659210806
+ 0.16368941770224305
+ 0.163693958927079
+ 0.16369850026661997
+ 0.16370304172087088
+ 0.16370758328983562
+ 0.16371212497351872
+ 0.16371666677192451
+ 0.16372120868505735
+ 0.16372575071292148
+ 0.16373029285552143
+ 0.16373483511286169
+ 0.16373937748494624
+ 0.1637439199717797
+ 0.16374846257336631
+ 0.16375300528971046
+ 0.16375754812081644
+ 0.1637620910666886
+ 0.16376663412733147
+ 0.1637711773027494
+ 0.16377572059294643
+ 0.16378026399792725
+ 0.163784807517696
+ 0.16378935115225723
+ 0.163793894901615
+ 0.16379843876577405
+ 0.16380298274473865
+ 0.16380752683851282
+ 0.16381207104710147
+ 0.16381661537050823
+ 0.16382115980873824
+ 0.16382570436179519
+ 0.16383024902968399
+ 0.16383479381240856
+ 0.16383933870997358
+ 0.16384388372238332
+ 0.16384842884964185
+ 0.16385297409175387
+ 0.16385751944872382
+ 0.16386206492055572
+ 0.16386661050725418
+ 0.16387115620882328
+ 0.16387570202526783
+ 0.16388024795659178
+ 0.16388479400279971
+ 0.16388934016389578
+ 0.16389388643988451
+ 0.16389843283077021
+ 0.1639029793365574
+ 0.16390752595725031
+ 0.16391207269285316
+ 0.16391661954337058
+ 0.16392116650880661
+ 0.16392571358916594
+ 0.16393026078445283
+ 0.16393480809467126
+ 0.16393935551982625
+ 0.1639439030599219
+ 0.16394845071496256
+ 0.16395299848495229
+ 0.16395754636989582
+ 0.16396209436979742
+ 0.16396664248466153
+ 0.1639711907144922
+ 0.16397573905929413
+ 0.16398028751907173
+ 0.16398483609382894
+ 0.16398938478357056
+ 0.16399393358830058
+ 0.16399848250802374
+ 0.16400303154274415
+ 0.16400758069246626
+ 0.16401212995719466
+ 0.1640166793369332
+ 0.16402122883168643
+ 0.16402577844145907
+ 0.1640303281662551
+ 0.16403487800607908
+ 0.16403942796093554
+ 0.16404397803082821
+ 0.1640485282157621
+ 0.16405307851574122
+ 0.16405762893077022
+ 0.16406217946085316
+ 0.16406673010599451
+ 0.16407128086619871
+ 0.16407583174147003
+ 0.16408038273181319
+ 0.16408493383723186
+ 0.16408948505773113
+ 0.16409403639331502
+ 0.16409858784398776
+ 0.1641031394097541
+ 0.16410769109061812
+ 0.1641122428865841
+ 0.16411679479765667
+ 0.16412134682384014
+ 0.16412589896513874
+ 0.16413045122155717
+ 0.16413500359309946
+ 0.16413955607977002
+ 0.16414410868157323
+ 0.1641486613985137
+ 0.16415321423059545
+ 0.16415776717782304
+ 0.16416232024020083
+ 0.16416687341773342
+ 0.16417142671042459
+ 0.16417598011827914
+ 0.16418053364130153
+ 0.16418508727949593
+ 0.16418964103286654
+ 0.16419419490141793
+ 0.16419874888515468
+ 0.16420330298408084
+ 0.1642078571982008
+ 0.16421241152751936
+ 0.16421696597204027
+ 0.16422152053176839
+ 0.16422607520670765
+ 0.16423062999686275
+ 0.16423518490223815
+ 0.16423973992283789
+ 0.16424429505866664
+ 0.16424885030972852
+ 0.16425340567602811
+ 0.1642579611575696
+ 0.16426251675435741
+ 0.16426707246639624
+ 0.16427162829369002
+ 0.16427618423624321
+ 0.16428074029406028
+ 0.16428529646714585
+ 0.16428985275550373
+ 0.16429440915913862
+ 0.16429896567805505
+ 0.1643035223122572
+ 0.16430807906174938
+ 0.16431263592653622
+ 0.1643171929066217
+ 0.16432175000201046
+ 0.16432630721270688
+ 0.16433086453871523
+ 0.16433542198004028
+ 0.16433997953668578
+ 0.16434453720865652
+ 0.16434909499595668
+ 0.16435365289859077
+ 0.16435821091656325
+ 0.16436276904987823
+ 0.16436732729854026
+ 0.16437188566255365
+ 0.16437644414192279
+ 0.16438100273665213
+ 0.16438556144674579
+ 0.16439012027220873
+ 0.16439467921304474
+ 0.16439923826925837
+ 0.16440379744085412
+ 0.16440835672783627
+ 0.16441291613020897
+ 0.1644174756479774
+ 0.16442203528114491
+ 0.1644265950297166
+ 0.16443115489369656
+ 0.16443571487308911
+ 0.16444027496789893
+ 0.16444483517813011
+ 0.16444939550378712
+ 0.16445395594487433
+ 0.16445851650139631
+ 0.16446307717335695
+ 0.16446763796076119
+ 0.164472198863613
+ 0.16447675988191723
+ 0.16448132101567783
+ 0.16448588226489905
+ 0.16449044362958584
+ 0.16449500510974227
+ 0.16449956670537266
+ 0.16450412841648149
+ 0.16450869024307324
+ 0.164513252185152
+ 0.16451781424272238
+ 0.16452237641578879
+ 0.16452693870435531
+ 0.16453150110842676
+ 0.1645360636280073
+ 0.16454062626310129
+ 0.16454518901371312
+ 0.16454975187984722
+ 0.16455431486150801
+ 0.16455887795869967
+ 0.16456344117142682
+ 0.16456800449969397
+ 0.16457256794350508
+ 0.16457713150286474
+ 0.16458169517777749
+ 0.1645862589682473
+ 0.16459082287427895
+ 0.16459538689587677
+ 0.16459995103304506
+ 0.16460451528578823
+ 0.16460907965411073
+ 0.16461364413801677
+ 0.16461820873751104
+ 0.16462277345259754
+ 0.16462733828328086
+ 0.16463190322956553
+ 0.16463646829145553
+ 0.1646410334689557
+ 0.16464559876207008
+ 0.16465016417080333
+ 0.16465472969515996
+ 0.16465929533514367
+ 0.16466386109075953
+ 0.16466842696201164
+ 0.16467299294890433
+ 0.16467755905144249
+ 0.16468212526962972
+ 0.16468669160347096
+ 0.1646912580529703
+ 0.1646958246181324
+ 0.16470039129896152
+ 0.16470495809546204
+ 0.16470952500763855
+ 0.16471409203549497
+ 0.16471865917903605
+ 0.1647232264382662
+ 0.16472779381318964
+ 0.16473236130381097
+ 0.16473692891013422
+ 0.16474149663216422
+ 0.16474606446990514
+ 0.1647506324233613
+ 0.16475520049253725
+ 0.16475976867743714
+ 0.16476433697806558
+ 0.16476890539442698
+ 0.1647734739265258
+ 0.16477804257436598
+ 0.16478261133795252
+ 0.16478718021728944
+ 0.16479174921238107
+ 0.16479631832323208
+ 0.16480088754984676
+ 0.1648054568922295
+ 0.16481002635038461
+ 0.16481459592431655
+ 0.16481916561402976
+ 0.16482373541952841
+ 0.16482830534081727
+ 0.16483287537790048
+ 0.16483744553078239
+ 0.16484201579946747
+ 0.16484658618396039
+ 0.16485115668426487
+ 0.16485572730038611
+ 0.16486029803232796
+ 0.16486486888009491
+ 0.16486943984369154
+ 0.16487401092312221
+ 0.16487858211839101
+ 0.16488315342950263
+ 0.16488772485646147
+ 0.16489229639927183
+ 0.16489686805793816
+ 0.16490143983246489
+ 0.16490601172285613
+ 0.16491058372911677
+ 0.16491515585125072
+ 0.16491972808926272
+ 0.16492430044315701
+ 0.16492887291293812
+ 0.16493344549861033
+ 0.16493801820017798
+ 0.16494259101764569
+ 0.16494716395101749
+ 0.16495173700029805
+ 0.16495631016549189
+ 0.16496088344660309
+ 0.16496545684363634
+ 0.16497003035659591
+ 0.16497460398548602
+ 0.1649791777303114
+ 0.16498375159107609
+ 0.164988325567785
+ 0.16499289966044209
+ 0.16499747386905192
+ 0.16500204819361877
+ 0.16500662263414714
+ 0.16501119719064153
+ 0.16501577186310626
+ 0.16502034665154544
+ 0.1650249215559641
+ 0.16502949657636615
+ 0.16503407171275605
+ 0.16503864696513834
+ 0.16504322233351729
+ 0.1650477978178975
+ 0.16505237341828308
+ 0.16505694913467889
+ 0.1650615249670887
+ 0.16506610091551752
+ 0.16507067697996933
+ 0.16507525316044885
+ 0.16507982945696015
+ 0.16508440586950787
+ 0.16508898239809647
+ 0.16509355904272999
+ 0.16509813580341329
+ 0.1651027126801505
+ 0.16510728967294605
+ 0.16511186678180434
+ 0.1651164440067299
+ 0.16512102134772713
+ 0.16512559880480046
+ 0.16513017637795396
+ 0.16513475406719233
+ 0.16513933187251986
+ 0.16514390979394108
+ 0.1651484878314603
+ 0.16515306598508206
+ 0.16515764425481061
+ 0.16516222264065031
+ 0.16516680114260587
+ 0.16517137976068119
+ 0.16517595849488129
+ 0.16518053734521013
+ 0.16518511631167215
+ 0.165189695394272
+ 0.16519427459301395
+ 0.16519885390790226
+ 0.16520343333894177
+ 0.16520801288613626
+ 0.16521259254949067
+ 0.16521717232900934
+ 0.16522175222469629
+ 0.16522633223655642
+ 0.16523091236459375
+ 0.1652354926088129
+ 0.16524007296921842
+ 0.16524465344581427
+ 0.16524923403860534
+ 0.16525381474759562
+ 0.16525839557278998
+ 0.16526297651419228
+ 0.16526755757180739
+ 0.16527213874563967
+ 0.16527672003569335
+ 0.16528130144197273
+ 0.16528588296448266
+ 0.16529046460322702
+ 0.16529504635821077
+ 0.16529962822943783
+ 0.16530421021691308
+ 0.1653087923206405
+ 0.1653133745406247
+ 0.16531795687687006
+ 0.16532253932938101
+ 0.16532712189816173
+ 0.16533170458321733
+ 0.16533628738455133
+ 0.16534087030216879
+ 0.16534545333607376
+ 0.165350036486271
+ 0.16535461975276458
+ 0.16535920313555905
+ 0.16536378663465898
+ 0.16536837025006851
+ 0.16537295398179219
+ 0.16537753782983444
+ 0.16538212179419962
+ 0.16538670587489213
+ 0.16539129007191639
+ 0.16539587438527703
+ 0.16540045881497822
+ 0.16540504336102446
+ 0.16540962802342007
+ 0.16541421280216972
+ 0.16541879769727744
+ 0.16542338270874804
+ 0.16542796783658564
+ 0.16543255308079491
+ 0.16543713844138025
+ 0.16544172391834572
+ 0.16544630951169589
+ 0.16545089522143561
+ 0.16545548104756866
+ 0.16546006699009974
+ 0.16546465304903349
+ 0.16546923922437384
+ 0.16547382551612566
+ 0.16547841192429327
+ 0.1654829984488809
+ 0.16548758508989317
+ 0.16549217184733428
+ 0.16549675872120881
+ 0.16550134571152117
+ 0.16550593281827572
+ 0.16551052004147693
+ 0.16551510738112934
+ 0.16551969483723708
+ 0.16552428240980463
+ 0.16552887009883654
+ 0.16553345790433754
+ 0.16553804582631124
+ 0.16554263386476287
+ 0.16554722201969627
+ 0.1655518102911161
+ 0.16555639867902697
+ 0.16556098718343301
+ 0.16556557580433864
+ 0.1655701645417485
+ 0.16557475339566696
+ 0.16557934236609814
+ 0.1655839314530469
+ 0.16558852065651741
+ 0.16559310997651414
+ 0.16559769941304156
+ 0.16560228896610388
+ 0.16560687863570592
+ 0.16561146842185179
+ 0.16561605832454601
+ 0.16562064834379278
+ 0.1656252384795969
+ 0.16562982873196269
+ 0.16563441910089435
+ 0.16563900958639663
+ 0.16564360018847374
+ 0.1656481909071302
+ 0.16565278174237014
+ 0.16565737269419856
+ 0.16566196376261949
+ 0.16566655494763724
+ 0.16567114624925658
+ 0.16567573766748167
+ 0.16568032920231715
+ 0.16568492085376726
+ 0.1656895126218364
+ 0.16569410450652933
+ 0.16569869650785019
+ 0.16570328862580341
+ 0.1657078808603934
+ 0.16571247321162491
+ 0.1657170656795019
+ 0.16572165826402904
+ 0.1657262509652106
+ 0.16573084378305133
+ 0.16573543671755533
+ 0.16574002976872737
+ 0.16574462293657136
+ 0.1657492162210924
+ 0.16575380962229438
+ 0.16575840314018181
+ 0.16576299677475922
+ 0.1657675905260311
+ 0.16577218439400185
+ 0.1657767783786758
+ 0.1657813724800575
+ 0.16578596669815121
+ 0.16579056103296164
+ 0.16579515548449275
+ 0.16579975005274966
+ 0.16580434473773603
+ 0.16580893953945691
+ 0.16581353445791644
+ 0.16581812949311911
+ 0.1658227246450692
+ 0.16582731991377153
+ 0.16583191529923014
+ 0.16583651080144957
+ 0.1658411064204344
+ 0.16584570215618882
+ 0.16585029800871742
+ 0.16585489397802466
+ 0.16585949006411488
+ 0.16586408626699256
+ 0.1658686825866621
+ 0.16587327902312787
+ 0.16587787557639452
+ 0.16588247224646638
+ 0.16588706903334774
+ 0.16589166593704324
+ 0.16589626295755727
+ 0.16590086009489402
+ 0.16590545734905812
+ 0.16591005472005413
+ 0.16591465220788632
+ 0.16591924981255918
+ 0.16592384753407702
+ 0.16592844537244444
+ 0.1659330433276659
+ 0.16593764139974565
+ 0.16594223958868823
+ 0.16594683789449818
+ 0.16595143631717973
+ 0.16595603485673741
+ 0.16596063351317569
+ 0.16596523228649893
+ 0.16596983117671174
+ 0.16597443018381819
+ 0.1659790293078231
+ 0.16598362854873086
+ 0.16598822790654569
+ 0.165992827381272
+ 0.16599742697291461
+ 0.16600202668147762
+ 0.16600662650696557
+ 0.1660112264493829
+ 0.16601582650873406
+ 0.16602042668502351
+ 0.16602502697825566
+ 0.16602962738843488
+ 0.16603422791556574
+ 0.16603882855965252
+ 0.16604342932069971
+ 0.16604803019871178
+ 0.16605263119369332
+ 0.16605723230564839
+ 0.16606183353458201
+ 0.16606643488049788
+ 0.16607103634340128
+ 0.16607563792329583
+ 0.16608023962018637
+ 0.16608484143407762
+ 0.16608944336497347
+ 0.1660940454128785
+ 0.16609864757779741
+ 0.16610324985973457
+ 0.16610785225869429
+ 0.16611245477468098
+ 0.16611705740769925
+ 0.16612166015775334
+ 0.16612626302484801
+ 0.16613086600898738
+ 0.16613546911017604
+ 0.16614007232841849
+ 0.1661446756637189
+ 0.16614927911608185
+ 0.16615388268551212
+ 0.1661584863720138
+ 0.16616309017559108
+ 0.16616769409624921
+ 0.16617229813399173
+ 0.16617690228882387
+ 0.16618150656074945
+ 0.16618611094977323
+ 0.16619071545589978
+ 0.16619532007913299
+ 0.16619992481947807
+ 0.16620452967693869
+ 0.16620913465152004
+ 0.1662137397432259
+ 0.16621834495206134
+ 0.16622295027803013
+ 0.16622755572113723
+ 0.16623216128138699
+ 0.16623676695878398
+ 0.1662413727533319
+ 0.16624597866503621
+ 0.16625058469390078
+ 0.16625519083993012
+ 0.16625979710312888
+ 0.16626440348350122
+ 0.16626900998105168
+ 0.16627361659578493
+ 0.16627822332770523
+ 0.1662828301768168
+ 0.16628743714312466
+ 0.16629204422663274
+ 0.1662966514273457
+ 0.16630125874526816
+ 0.1663058661804041
+ 0.16631047373275862
+ 0.16631508140233545
+ 0.16631968918913947
+ 0.16632429709317484
+ 0.16632890511444653
+ 0.16633351325295875
+ 0.16633812150871552
+ 0.16634272988172172
+ 0.16634733837198182
+ 0.16635194697950026
+ 0.16635655570428132
+ 0.16636116454632952
+ 0.16636577350564954
+ 0.16637038258224521
+ 0.16637499177612156
+ 0.16637960108728309
+ 0.16638421051573382
+ 0.16638882006147851
+ 0.16639342972452134
+ 0.16639803950486709
+ 0.16640264940252017
+ 0.16640725941748483
+ 0.16641186954976545
+ 0.16641647979936669
+ 0.16642109016629314
+ 0.16642570065054904
+ 0.16643031125213881
+ 0.16643492197106707
+ 0.16643953280733792
+ 0.16644414376095643
+ 0.1664487548319265
+ 0.16645336602025285
+ 0.16645797732593981
+ 0.166462588748992
+ 0.16646720028941345
+ 0.16647181194720931
+ 0.16647642372238339
+ 0.16648103561494068
+ 0.16648564762488505
+ 0.16649025975222131
+ 0.16649487199695426
+ 0.16649948435908765
+ 0.16650409683862621
+ 0.16650870943557453
+ 0.166513322149937
+ 0.16651793498171805
+ 0.16652254793092217
+ 0.16652716099755374
+ 0.16653177418161738
+ 0.16653638748311733
+ 0.16654100090205814
+ 0.16654561443844448
+ 0.1665502280922804
+ 0.1665548418635707
+ 0.16655945575231967
+ 0.16656406975853166
+ 0.16656868388221152
+ 0.16657329812336316
+ 0.16657791248199166
+ 0.16658252695810102
+ 0.16658714155169588
+ 0.16659175626278061
+ 0.16659637109135977
+ 0.16660098603743781
+ 0.16660560110101899
+ 0.16661021628210795
+ 0.1666148315807093
+ 0.16661944699682726
+ 0.16662406253046635
+ 0.16662867818163088
+ 0.16663329395032578
+ 0.16663790983655499
+ 0.16664252584032321
+ 0.16664714196163491
+ 0.16665175820049449
+ 0.16665637455690657
+ 0.16666099103087539
+ 0.16666560762240526
+ 0.1666702243315013
+ 0.16667484115816736
+ 0.16667945810240822
+ 0.16668407516422798
+ 0.16668869234363165
+ 0.16669330964062329
+ 0.16669792705520739
+ 0.16670254458738856
+ 0.16670716223717127
+ 0.16671178000455972
+ 0.16671639788955861
+ 0.16672101589217231
+ 0.16672563401240542
+ 0.16673025225026242
+ 0.16673487060574749
+ 0.1667394890788654
+ 0.16674410766962042
+ 0.16674872637801696
+ 0.16675334520405996
+ 0.16675796414775321
+ 0.16676258320910162
+ 0.16676720238810958
+ 0.16677182168478152
+ 0.16677644109912179
+ 0.16678106063113501
+ 0.16678568028082555
+ 0.16679030004819817
+ 0.16679491993325687
+ 0.16679953993600646
+ 0.16680416005645129
+ 0.16680878029459562
+ 0.16681340065044437
+ 0.16681802112400176
+ 0.16682264171527225
+ 0.16682726242426013
+ 0.16683188325097031
+ 0.16683650419540685
+ 0.16684112525757444
+ 0.16684574643747754
+ 0.16685036773512038
+ 0.16685498915050784
+ 0.16685961068364413
+ 0.16686423233453371
+ 0.16686885410318111
+ 0.16687347598959076
+ 0.16687809799376704
+ 0.16688272011571481
+ 0.16688734235543803
+ 0.16689196471294146
+ 0.16689658718822947
+ 0.16690120978130657
+ 0.16690583249217747
+ 0.16691045532084625
+ 0.16691507826731755
+ 0.16691970133159578
+ 0.16692432451368558
+ 0.16692894781359138
+ 0.16693357123131738
+ 0.16693819476686833
+ 0.1669428184202488
+ 0.1669474421914629
+ 0.16695206608051513
+ 0.16695669008741032
+ 0.16696131421215271
+ 0.16696593845474697
+ 0.16697056281519723
+ 0.1669751872935081
+ 0.16697981188968425
+ 0.16698443660373
+ 0.16698906143564973
+ 0.16699368638544826
+ 0.1669983114531296
+ 0.16700293663869845
+ 0.16700756194215929
+ 0.16701218736351672
+ 0.16701681290277501
+ 0.16702143855993865
+ 0.16702606433501224
+ 0.1670306902280001
+ 0.1670353162389068
+ 0.16703994236773681
+ 0.16704456861449463
+ 0.1670491949791848
+ 0.16705382146181169
+ 0.16705844806237974
+ 0.16706307478089344
+ 0.16706770161735757
+ 0.16707232857177598
+ 0.16707695564415373
+ 0.16708158283449509
+ 0.1670862101428045
+ 0.16709083756908646
+ 0.16709546511334528
+ 0.16710009277558605
+ 0.16710472055581252
+ 0.16710934845402953
+ 0.16711397647024143
+ 0.16711860460445271
+ 0.16712323285666811
+ 0.16712786122689166
+ 0.16713248971512826
+ 0.16713711832138217
+ 0.16714174704565807
+ 0.16714637588796016
+ 0.16715100484829298
+ 0.16715563392666116
+ 0.16716026312306898
+ 0.16716489243752111
+ 0.16716952187002193
+ 0.1671741514205759
+ 0.16717878108918768
+ 0.16718341087586139
+ 0.16718804078060198
+ 0.16719267080341368
+ 0.16719730094430088
+ 0.16720193120326812
+ 0.16720656158032005
+ 0.16721119207546092
+ 0.16721582268869561
+ 0.16722045342002809
+ 0.16722508426946303
+ 0.16722971523700517
+ 0.1672343463226586
+ 0.167238977526428
+ 0.16724360884831782
+ 0.16724824028833263
+ 0.16725287184647683
+ 0.16725750352275495
+ 0.16726213531717141
+ 0.16726676722973083
+ 0.16727139926043746
+ 0.16727603140929592
+ 0.16728066367631078
+ 0.16728529606148629
+ 0.16728992856482713
+ 0.16729456118633795
+ 0.1672991939260231
+ 0.16730382678388642
+ 0.16730845975993344
+ 0.16731309285416812
+ 0.16731772606659492
+ 0.16732235939721848
+ 0.16732699284604308
+ 0.16733162641307336
+ 0.16733626009831409
+ 0.16734089390176929
+ 0.16734552782344336
+ 0.16735016186334153
+ 0.16735479602146752
+ 0.1673594302978261
+ 0.16736406469242171
+ 0.16736869920525899
+ 0.16737333383634229
+ 0.16737796858567608
+ 0.16738260345326492
+ 0.16738723843911321
+ 0.16739187354322568
+ 0.16739650876560666
+ 0.16740114410626059
+ 0.16740577956519195
+ 0.16741041514240532
+ 0.16741505083790514
+ 0.16741968665169588
+ 0.16742432258378229
+ 0.16742895863416835
+ 0.16743359480285894
+ 0.16743823108985842
+ 0.16744286749517154
+ 0.16744750401880229
+ 0.16745214066075556
+ 0.1674567774210356
+ 0.16746141429964714
+ 0.16746605129659461
+ 0.16747068841188217
+ 0.16747532564551482
+ 0.1674799629974966
+ 0.16748460046783253
+ 0.16748923805652655
+ 0.1674938757635836
+ 0.16749851358900766
+ 0.16750315153280385
+ 0.16750778959497623
+ 0.16751242777552947
+ 0.16751706607446801
+ 0.16752170449179601
+ 0.16752634302751848
+ 0.16753098168164005
+ 0.16753562045416445
+ 0.16754025934509695
+ 0.16754489835444153
+ 0.16754953748220297
+ 0.16755417672838549
+ 0.16755881609299375
+ 0.16756345557603244
+ 0.16756809517750604
+ 0.16757273489741858
+ 0.16757737473577486
+ 0.16758201469257958
+ 0.16758665476783685
+ 0.16759129496155145
+ 0.16759593527372763
+ 0.16760057570437026
+ 0.16760521625348332
+ 0.16760985692107166
+ 0.16761449770713999
+ 0.16761913861169234
+ 0.16762377963473341
+ 0.16762842077626772
+ 0.16763306203629966
+ 0.16763770341483392
+ 0.16764234491187488
+ 0.16764698652742682
+ 0.1676516282614948
+ 0.1676562701140826
+ 0.16766091208519537
+ 0.16766555417483708
+ 0.16767019638301278
+ 0.16767483870972649
+ 0.16767948115498321
+ 0.16768412371878694
+ 0.16768876640114233
+ 0.16769340920205375
+ 0.16769805212152616
+ 0.16770269515956379
+ 0.16770733831617093
+ 0.16771198159135237
+ 0.16771662498511258
+ 0.16772126849745594
+ 0.16772591212838708
+ 0.16773055587791033
+ 0.16773519974603043
+ 0.16773984373275166
+ 0.16774448783807858
+ 0.16774913206201586
+ 0.16775377640456762
+ 0.16775842086573886
+ 0.16776306544553385
+ 0.16776771014395692
+ 0.16777235496101284
+ 0.16777699989670586
+ 0.16778164495104084
+ 0.16778629012402188
+ 0.16779093541565396
+ 0.16779558082594095
+ 0.16780022635488795
+ 0.16780487200249922
+ 0.16780951776877912
+ 0.1678141636537327
+ 0.16781880965736365
+ 0.16782345577967714
+ 0.16782810202067736
+ 0.16783274838036877
+ 0.16783739485875618
+ 0.16784204145584369
+ 0.16784668817163617
+ 0.16785133500613819
+ 0.16785598195935361
+ 0.16786062903128762
+ 0.16786527622194455
+ 0.16786992353132893
+ 0.1678745709594448
+ 0.16787921850629739
+ 0.16788386617189072
+ 0.16788851395622958
+ 0.1678931618593183
+ 0.16789780988116132
+ 0.16790245802176329
+ 0.1679071062811287
+ 0.16791175465926217
+ 0.16791640315616796
+ 0.1679210517718509
+ 0.1679257005063152
+ 0.16793034935956547
+ 0.16793499833160605
+ 0.1679396474224418
+ 0.16794429663207716
+ 0.16794894596051643
+ 0.16795359540776408
+ 0.16795824497382494
+ 0.1679628946587034
+ 0.16796754446240375
+ 0.16797219438493102
+ 0.16797684442628896
+ 0.16798149458648282
+ 0.16798614486551655
+ 0.16799079526339503
+ 0.16799544578012254
+ 0.16800009641570393
+ 0.16800474717014333
+ 0.16800939804344528
+ 0.16801404903561448
+ 0.1680187001466556
+ 0.16802335137657273
+ 0.16802800272537061
+ 0.16803265419305366
+ 0.16803730577962664
+ 0.16804195748509376
+ 0.16804660930945961
+ 0.16805126125272885
+ 0.16805591331490602
+ 0.16806056549599527
+ 0.16806521779600142
+ 0.16806987021492906
+ 0.16807452275278253
+ 0.16807917540956635
+ 0.16808382818528494
+ 0.16808848107994304
+ 0.16809313409354529
+ 0.16809778722609575
+ 0.16810244047759923
+ 0.16810709384806011
+ 0.1681117473374831
+ 0.16811640094587271
+ 0.16812105467323302
+ 0.16812570851956923
+ 0.16813036248488528
+ 0.16813501656918603
+ 0.1681396707724758
+ 0.16814432509475927
+ 0.16814897953604083
+ 0.16815363409632517
+ 0.16815828877561645
+ 0.1681629435739195
+ 0.16816759849123877
+ 0.16817225352757897
+ 0.16817690868294402
+ 0.16818156395733927
+ 0.16818621935076866
+ 0.16819087486323661
+ 0.16819553049474839
+ 0.16820018624530744
+ 0.16820484211491946
+ 0.16820949810358787
+ 0.1682141542113178
+ 0.16821881043811393
+ 0.16822346678398026
+ 0.16822812324892158
+ 0.16823277983294241
+ 0.16823743653604722
+ 0.1682420933582407
+ 0.16824675029952707
+ 0.16825140735991118
+ 0.16825606453939745
+ 0.16826072183799023
+ 0.16826537925569407
+ 0.16827003679251346
+ 0.1682746944484533
+ 0.16827935222351789
+ 0.16828401011771163
+ 0.16828866813103915
+ 0.16829332626350507
+ 0.16829798451511341
+ 0.16830264288586938
+ 0.16830730137577718
+ 0.16831195998484125
+ 0.16831661871306658
+ 0.16832127756045703
+ 0.16832593652701736
+ 0.16833059561275227
+ 0.1683352548176662
+ 0.16833991414176377
+ 0.16834457358504945
+ 0.16834923314752734
+ 0.16835389282920266
+ 0.16835855263007954
+ 0.16836321255016265
+ 0.16836787258945635
+ 0.16837253274796529
+ 0.16837719302569393
+ 0.16838185342264697
+ 0.16838651393882853
+ 0.16839117457424366
+ 0.16839583532889654
+ 0.16840049620279177
+ 0.16840515719593396
+ 0.16840981830832757
+ 0.16841447953997732
+ 0.16841914089088728
+ 0.16842380236106241
+ 0.16842846395050701
+ 0.16843312565922577
+ 0.16843778748722299
+ 0.16844244943450346
+ 0.1684471115010715
+ 0.16845177368693179
+ 0.16845643599208884
+ 0.16846109841654711
+ 0.1684657609603111
+ 0.16847042362338552
+ 0.1684750864057748
+ 0.16847974930748347
+ 0.16848441232851577
+ 0.16848907546887684
+ 0.1684937387285706
+ 0.16849840210760203
+ 0.16850306560597544
+ 0.1685077292236955
+ 0.16851239296076656
+ 0.16851705681719317
+ 0.16852172079298008
+ 0.16852638488813165
+ 0.16853104910265246
+ 0.16853571343654714
+ 0.16854037788981993
+ 0.16854504246247531
+ 0.16854970715451839
+ 0.16855437196595321
+ 0.16855903689678473
+ 0.16856370194701684
+ 0.16856836711665477
+ 0.16857303240570243
+ 0.16857769781416485
+ 0.16858236334204624
+ 0.16858702898935118
+ 0.16859169475608432
+ 0.16859636064225042
+ 0.16860102664785356
+ 0.16860569277289839
+ 0.16861035901738963
+ 0.16861502538133186
+ 0.16861969186472917
+ 0.16862435846758642
+ 0.16862902518990822
+ 0.16863369203169906
+ 0.16863835899296337
+ 0.16864302607370565
+ 0.16864769327393064
+ 0.16865236059364283
+ 0.16865702803284657
+ 0.16866169559154673
+ 0.16866636326974738
+ 0.16867103106745318
+ 0.16867569898466922
+ 0.16868036702139924
+ 0.16868503517764849
+ 0.16868970345342099
+ 0.16869437184872152
+ 0.16869904036355449
+ 0.16870370899792442
+ 0.16870837775183617
+ 0.16871304662529396
+ 0.1687177156183024
+ 0.16872238473086607
+ 0.16872705396298948
+ 0.16873172331467728
+ 0.16873639278593386
+ 0.16874106237676376
+ 0.16874573208717161
+ 0.16875040191716192
+ 0.1687550718667391
+ 0.16875974193590812
+ 0.16876441212467305
+ 0.16876908243303859
+ 0.16877375286100926
+ 0.16877842340858965
+ 0.16878309407578421
+ 0.16878776486259772
+ 0.16879243576903444
+ 0.16879710679509913
+ 0.16880177794079629
+ 0.16880644920613033
+ 0.16881112059110581
+ 0.16881579209572747
+ 0.16882046371999962
+ 0.16882513546392691
+ 0.1688298073275139
+ 0.16883447931076506
+ 0.16883915141368505
+ 0.16884382363627842
+ 0.16884849597854959
+ 0.16885316844050305
+ 0.1688578410221436
+ 0.16886251372347569
+ 0.16886718654450361
+ 0.16887185948523231
+ 0.16887653254566612
+ 0.16888120572580964
+ 0.16888587902566718
+ 0.16889055244524365
+ 0.16889522598454351
+ 0.16889989964357097
+ 0.16890457342233092
+ 0.16890924732082796
+ 0.16891392133906644
+ 0.16891859547705101
+ 0.16892326973478611
+ 0.16892794411227649
+ 0.16893261860952635
+ 0.16893729322654041
+ 0.16894196796332347
+ 0.16894664281987967
+ 0.16895131779621389
+ 0.16895599289233076
+ 0.16896066810823426
+ 0.16896534344392938
+ 0.16897001889942073
+ 0.16897469447471272
+ 0.16897937016980974
+ 0.16898404598471642
+ 0.16898872191943762
+ 0.16899339797397753
+ 0.16899807414834081
+ 0.1690027504425318
+ 0.16900742685655551
+ 0.16901210339041642
+ 0.16901678004411888
+ 0.16902145681766723
+ 0.16902613371106651
+ 0.16903081072432091
+ 0.16903548785743494
+ 0.16904016511041364
+ 0.16904484248326099
+ 0.16904951997598192
+ 0.16905419758858084
+ 0.16905887532106212
+ 0.16906355317343075
+ 0.169068231145691
+ 0.16907290923784737
+ 0.16907758744990473
+ 0.16908226578186716
+ 0.16908694423373963
+ 0.16909162280552653
+ 0.1690963014972322
+ 0.16910098030886173
+ 0.16910565924041907
+ 0.16911033829190911
+ 0.16911501746333646
+ 0.16911969675470548
+ 0.169124376166021
+ 0.16912905569728709
+ 0.1691337353485087
+ 0.16913841511969055
+ 0.1691430950108366
+ 0.16914777502195197
+ 0.16915245515304095
+ 0.16915713540410801
+ 0.16916181577515793
+ 0.16916649626619498
+ 0.16917117687722411
+ 0.16917585760824974
+ 0.16918053845927622
+ 0.16918521943030831
+ 0.16918990052135047
+ 0.16919458173240709
+ 0.16919926306348332
+ 0.16920394451458307
+ 0.1692086260857113
+ 0.16921330777687241
+ 0.16921798958807097
+ 0.16922267151931153
+ 0.16922735357059851
+ 0.16923203574193674
+ 0.16923671803333071
+ 0.16924140044478511
+ 0.16924608297630395
+ 0.1692507656278924
+ 0.16925544839955484
+ 0.16926013129129552
+ 0.16926481430311946
+ 0.16926949743503109
+ 0.16927418068703445
+ 0.16927886405913489
+ 0.16928354755133682
+ 0.16928823116364436
+ 0.1692929148960621
+ 0.16929759874859535
+ 0.16930228272124767
+ 0.16930696681402435
+ 0.16931165102692969
+ 0.16931633535996829
+ 0.1693210198131446
+ 0.16932570438646338
+ 0.16933038907992892
+ 0.16933507389354599
+ 0.16933975882731922
+ 0.16934444388125303
+ 0.16934912905535185
+ 0.16935381434962049
+ 0.16935849976406359
+ 0.16936318529868544
+ 0.16936787095349071
+ 0.16937255672848406
+ 0.16937724262366999
+ 0.16938192863905294
+ 0.16938661477463771
+ 0.16939130103042865
+ 0.16939598740643041
+ 0.16940067390264762
+ 0.16940536051908481
+ 0.16941004725574665
+ 0.16941473411263727
+ 0.16941942108976166
+ 0.16942410818712428
+ 0.16942879540472983
+ 0.16943348274258255
+ 0.16943817020068747
+ 0.16944285777904852
+ 0.16944754547767094
+ 0.1694522332965589
+ 0.16945692123571707
+ 0.16946160929514983
+ 0.16946629747486208
+ 0.16947098577485822
+ 0.16947567419514267
+ 0.16948036273572042
+ 0.16948505139659559
+ 0.16948974017777313
+ 0.16949442907925732
+ 0.16949911810105281
+ 0.16950380724316422
+ 0.16950849650559607
+ 0.16951318588835282
+ 0.1695178753914395
+ 0.16952256501485996
+ 0.16952725475861941
+ 0.16953194462272217
+ 0.1695366346071728
+ 0.16954132471197594
+ 0.16954601493713581
+ 0.16955070528265762
+ 0.16955539574854531
+ 0.16956008633480404
+ 0.1695647770414378
+ 0.16956946786845173
+ 0.16957415881584989
+ 0.16957884988363725
+ 0.16958354107181797
+ 0.16958823238039714
+ 0.16959292380937893
+ 0.16959761535876797
+ 0.16960230702856915
+ 0.16960699881878671
+ 0.16961169072942511
+ 0.16961638276048929
+ 0.16962107491198369
+ 0.1696257671839129
+ 0.16963045957628139
+ 0.16963515208909369
+ 0.16963984472235472
+ 0.16964453747606847
+ 0.16964923035024013
+ 0.169653923344874
+ 0.16965861645997452
+ 0.16966330969554649
+ 0.1696680030515946
+ 0.16967269652812289
+ 0.16967739012513644
+ 0.16968208384263977
+ 0.1696867776806375
+ 0.16969147163913384
+ 0.16969616571813345
+ 0.16970085991764119
+ 0.16970555423766148
+ 0.16971024867819884
+ 0.16971494323925818
+ 0.16971963792084366
+ 0.16972433272295989
+ 0.16972902764561157
+ 0.16973372268880357
+ 0.16973841785253996
+ 0.16974311313682547
+ 0.16974780854166491
+ 0.16975250406706285
+ 0.16975719971302342
+ 0.16976189547955178
+ 0.16976659136665206
+ 0.16977128737432903
+ 0.16977598350258716
+ 0.16978067975143127
+ 0.16978537612086564
+ 0.16979007261089515
+ 0.1697947692215242
+ 0.16979946595275736
+ 0.16980416280459931
+ 0.16980885977705432
+ 0.16981355687012772
+ 0.16981825408382348
+ 0.16982295141814596
+ 0.1698276488731002
+ 0.16983234644869097
+ 0.16983704414492218
+ 0.16984174196179905
+ 0.16984643989932588
+ 0.16985113795750711
+ 0.16985583613634764
+ 0.16986053443585181
+ 0.1698652328560244
+ 0.1698699313968699
+ 0.1698746300583926
+ 0.16987932884059767
+ 0.16988402774348935
+ 0.16988872676707198
+ 0.16989342591135073
+ 0.16989812517632988
+ 0.16990282456201392
+ 0.16990752406840751
+ 0.16991222369551526
+ 0.16991692344334183
+ 0.16992162331189165
+ 0.16992632330116955
+ 0.16993102341117985
+ 0.16993572364192711
+ 0.16994042399341616
+ 0.16994512446565155
+ 0.16994982505863776
+ 0.16995452577237943
+ 0.16995922660688109
+ 0.16996392756214757
+ 0.16996862863818296
+ 0.16997332983499217
+ 0.16997803115257978
+ 0.16998273259095045
+ 0.16998743415010861
+ 0.1699921358300589
+ 0.16999683763080592
+ 0.17000153955235434
+ 0.17000624159470862
+ 0.1700109437578734
+ 0.17001564604185326
+ 0.17002034844665295
+ 0.17002505097227674
+ 0.17002975361872935
+ 0.17003445638601536
+ 0.17003915927413971
+ 0.17004386228310636
+ 0.17004856541292068
+ 0.17005326866358647
+ 0.17005797203510881
+ 0.17006267552749196
+ 0.17006737914074102
+ 0.17007208287485975
+ 0.1700767867298536
+ 0.17008149070572703
+ 0.17008619480248402
+ 0.17009089902012983
+ 0.17009560335866858
+ 0.17010030781810512
+ 0.17010501239844406
+ 0.17010971709968992
+ 0.17011442192184723
+ 0.17011912686492059
+ 0.17012383192891464
+ 0.17012853711383422
+ 0.1701332424196835
+ 0.17013794784646744
+ 0.17014265339419024
+ 0.17014735906285688
+ 0.17015206485247178
+ 0.17015677076303937
+ 0.17016147679456456
+ 0.17016618294705199
+ 0.1701708892205058
+ 0.17017559561493081
+ 0.17018030213033178
+ 0.17018500876671325
+ 0.1701897155240798
+ 0.17019442240243607
+ 0.17019912940178636
+ 0.17020383652213533
+ 0.17020854376348787
+ 0.17021325112584848
+ 0.17021795860922173
+ 0.17022266621361226
+ 0.17022737393902437
+ 0.17023208178546312
+ 0.17023678975293285
+ 0.17024149784143813
+ 0.17024620605098342
+ 0.17025091438157375
+ 0.17025562283321363
+ 0.17026033140590699
+ 0.17026504009965945
+ 0.17026974891447497
+ 0.17027445785035825
+ 0.17027916690731398
+ 0.17028387608534676
+ 0.17028858538446101
+ 0.17029329480466157
+ 0.17029800434595294
+ 0.17030271400833971
+ 0.17030742379182637
+ 0.17031213369641782
+ 0.17031684372211828
+ 0.17032155386893261
+ 0.17032626413686541
+ 0.17033097452592108
+ 0.17033568503610472
+ 0.17034039566742026
+ 0.17034510641987272
+ 0.17034981729346646
+ 0.17035452828820649
+ 0.170359239404097
+ 0.17036395064114271
+ 0.17036866199934828
+ 0.17037337347871834
+ 0.17037808507925736
+ 0.17038279680096999
+ 0.17038750864386104
+ 0.17039222060793488
+ 0.17039693269319622
+ 0.17040164489964946
+ 0.17040635722729952
+ 0.17041106967615083
+ 0.17041578224620801
+ 0.17042049493747558
+ 0.17042520774995831
+ 0.17042992068366072
+ 0.17043463373858739
+ 0.17043934691474302
+ 0.17044406021213215
+ 0.17044877363075955
+ 0.17045348717062955
+ 0.17045820083174676
+ 0.1704629146141162
+ 0.17046762851774191
+ 0.170472342542629
+ 0.17047705668878166
+ 0.1704817709562047
+ 0.17048648534490285
+ 0.17049119985488057
+ 0.17049591448614226
+ 0.17050062923869283
+ 0.17050534411253712
+ 0.17051005910767919
+ 0.17051477422412395
+ 0.17051948946187592
+ 0.17052420482093972
+ 0.17052892030132008
+ 0.1705336359030214
+ 0.17053835162604847
+ 0.17054306747040576
+ 0.17054778343609789
+ 0.17055249952312965
+ 0.17055721573150537
+ 0.17056193206123016
+ 0.17056664851230799
+ 0.17057136508474383
+ 0.17057608177854214
+ 0.1705807985937077
+ 0.17058551553024523
+ 0.170590232588159
+ 0.17059494976745379
+ 0.17059966706813409
+ 0.17060438449020474
+ 0.17060910203367052
+ 0.17061381969853531
+ 0.17061853748480441
+ 0.17062325539248216
+ 0.17062797342157299
+ 0.17063269157208219
+ 0.17063740984401357
+ 0.17064212823737221
+ 0.17064684675216243
+ 0.17065156538838924
+ 0.17065628414605702
+ 0.17066100302517026
+ 0.17066572202573399
+ 0.17067044114775234
+ 0.17067516039123007
+ 0.17067987975617196
+ 0.17068459924258259
+ 0.17068931885046643
+ 0.17069403857982818
+ 0.17069875843067245
+ 0.17070347840300396
+ 0.17070819849682697
+ 0.17071291871214653
+ 0.17071763904896714
+ 0.17072235950729331
+ 0.17072708008712975
+ 0.17073180078848085
+ 0.17073652161135169
+ 0.17074124255574635
+ 0.17074596362166983
+ 0.17075068480912683
+ 0.17075540611812121
+ 0.17076012754865869
+ 0.1707648491007431
+ 0.17076957077437935
+ 0.17077429256957202
+ 0.17077901448632585
+ 0.17078373652464504
+ 0.17078845868453466
+ 0.17079318096599913
+ 0.17079790336904319
+ 0.17080262589367118
+ 0.17080734853988808
+ 0.17081207130769827
+ 0.17081679419710641
+ 0.17082151720811722
+ 0.17082624034073543
+ 0.17083096359496522
+ 0.1708356869708117
+ 0.17084041046827922
+ 0.17084513408737248
+ 0.17084985782809603
+ 0.17085458169045439
+ 0.17085930567445259
+ 0.17086402978009488
+ 0.17086875400738599
+ 0.17087347835633052
+ 0.17087820282693328
+ 0.1708829274191988
+ 0.17088765213313148
+ 0.17089237696873602
+ 0.17089710192601704
+ 0.17090182700497974
+ 0.17090655220562775
+ 0.1709112775279665
+ 0.17091600297200021
+ 0.17092072853773357
+ 0.17092545422517144
+ 0.17093018003431817
+ 0.17093490596517852
+ 0.17093963201775683
+ 0.17094435819205805
+ 0.17094908448808699
+ 0.17095381090584774
+ 0.17095853744534523
+ 0.17096326410658411
+ 0.17096799088956888
+ 0.17097271779430429
+ 0.1709774448207948
+ 0.17098217196904525
+ 0.17098689923906008
+ 0.17099162663084402
+ 0.17099635414440173
+ 0.17100108177973766
+ 0.17100580953685685
+ 0.17101053741576344
+ 0.17101526541646223
+ 0.17101999353895789
+ 0.17102472178325503
+ 0.1710294501493583
+ 0.17103417863727233
+ 0.1710389072470018
+ 0.17104363597855138
+ 0.17104836483192537
+ 0.17105309380712869
+ 0.17105782290416588
+ 0.17106255212304156
+ 0.17106728146376057
+ 0.17107201092632723
+ 0.17107674051074634
+ 0.1710814702170225
+ 0.17108620004516045
+ 0.17109092999516468
+ 0.17109566006703966
+ 0.17110039026079035
+ 0.17110512057642113
+ 0.17110985101393714
+ 0.17111458157334219
+ 0.17111931225464158
+ 0.17112404305783963
+ 0.17112877398294105
+ 0.17113350502995056
+ 0.17113823619887247
+ 0.17114296748971192
+ 0.17114769890247311
+ 0.17115243043716083
+ 0.17115716209377996
+ 0.17116189387233449
+ 0.17116662577282976
+ 0.17117135779526998
+ 0.17117608993966005
+ 0.17118082220600447
+ 0.17118555459430773
+ 0.17119028710457462
+ 0.17119501973680987
+ 0.17119975249101818
+ 0.17120448536720362
+ 0.1712092183653714
+ 0.17121395148552593
+ 0.17121868472767196
+ 0.17122341809181407
+ 0.1712281515779569
+ 0.17123288518610494
+ 0.17123761891626307
+ 0.1712423527684358
+ 0.17124708674262787
+ 0.17125182083884358
+ 0.17125655505708801
+ 0.17126128939736568
+ 0.17126602385968118
+ 0.17127075844403908
+ 0.17127549315044369
+ 0.17128022797890058
+ 0.17128496292941361
+ 0.17128969800198773
+ 0.17129443319662724
+ 0.17129916851333749
+ 0.17130390395212225
+ 0.17130863951298672
+ 0.1713133751959354
+ 0.17131811100097283
+ 0.17132284692810384
+ 0.17132758297733283
+ 0.17133231914866479
+ 0.17133705544210412
+ 0.17134179185765536
+ 0.17134652839532341
+ 0.17135126505511269
+ 0.1713560018370282
+ 0.17136073874107399
+ 0.17136547576725528
+ 0.17137021291557655
+ 0.17137495018604218
+ 0.17137968757865696
+ 0.17138442509342561
+ 0.17138916273035279
+ 0.17139390048944306
+ 0.17139863837070116
+ 0.17140337637413147
+ 0.17140811449973892
+ 0.17141285274752813
+ 0.17141759111750376
+ 0.1714223296096701
+ 0.17142706822403231
+ 0.1714318069605946
+ 0.17143654581936207
+ 0.17144128480033904
+ 0.17144602390353009
+ 0.17145076312893995
+ 0.17145550247657321
+ 0.17146024194643486
+ 0.17146498153852904
+ 0.17146972125286097
+ 0.17147446108943501
+ 0.17147920104825543
+ 0.17148394112932761
+ 0.1714886813326556
+ 0.17149342165824427
+ 0.17149816210609822
+ 0.1715029026762222
+ 0.1715076433686209
+ 0.17151238418329864
+ 0.17151712512026035
+ 0.17152186617951054
+ 0.17152660736105416
+ 0.17153134866489558
+ 0.17153609009103959
+ 0.1715408316394906
+ 0.17154557331025344
+ 0.17155031510333263
+ 0.17155505701873305
+ 0.17155979905645927
+ 0.17156454121651601
+ 0.17156928349890752
+ 0.1715740259036389
+ 0.1715787684307146
+ 0.17158351108013914
+ 0.17158825385191748
+ 0.17159299674605433
+ 0.1715977397625538
+ 0.17160248290142111
+ 0.17160722616266053
+ 0.17161196954627694
+ 0.17161671305227488
+ 0.17162145668065909
+ 0.17162620043143426
+ 0.17163094430460479
+ 0.17163568830017564
+ 0.17164043241815111
+ 0.17164517665853626
+ 0.17164992102133558
+ 0.17165466550655348
+ 0.17165941011419508
+ 0.1716641548442647
+ 0.17166889969676694
+ 0.1716736446717067
+ 0.17167838976908847
+ 0.17168313498891705
+ 0.17168788033119689
+ 0.17169262579593275
+ 0.17169737138312943
+ 0.17170211709279132
+ 0.17170686292492315
+ 0.17171160887952985
+ 0.1717163549566158
+ 0.17172110115618561
+ 0.17172584747824421
+ 0.17173059392279574
+ 0.17173534048984546
+ 0.17174008717939787
+ 0.17174483399145732
+ 0.17174958092602888
+ 0.17175432798311674
+ 0.17175907516272595
+ 0.17176382246486119
+ 0.17176856988952682
+ 0.17177331743672752
+ 0.17177806510646831
+ 0.17178281289875338
+ 0.17178756081358784
+ 0.17179230885097604
+ 0.17179705701092263
+ 0.17180180529343264
+ 0.17180655369851006
+ 0.17181130222616028
+ 0.17181605087638757
+ 0.17182079964919658
+ 0.17182554854459214
+ 0.17183029756257864
+ 0.17183504670316097
+ 0.17183979596634391
+ 0.1718445453521317
+ 0.17184929486052927
+ 0.1718540444915414
+ 0.17185879424517267
+ 0.17186354412142735
+ 0.17186829412031066
+ 0.17187304424182698
+ 0.17187779448598101
+ 0.17188254485277746
+ 0.17188729534222111
+ 0.17189204595431623
+ 0.17189679668906799
+ 0.17190154754648057
+ 0.17190629852655892
+ 0.17191104962930756
+ 0.17191580085473129
+ 0.17192055220283486
+ 0.17192530367362252
+ 0.17193005526709934
+ 0.17193480698327007
+ 0.17193955882213866
+ 0.17194431078371084
+ 0.17194906286799014
+ 0.17195381507498236
+ 0.17195856740469134
+ 0.17196331985712182
+ 0.17196807243227885
+ 0.17197282513016687
+ 0.17197757795079044
+ 0.17198233089415471
+ 0.17198708396026358
+ 0.17199183714912236
+ 0.17199659046073554
+ 0.17200134389510743
+ 0.17200609745224343
+ 0.17201085113214737
+ 0.1720156049348246
+ 0.17202035886027958
+ 0.1720251129085166
+ 0.17202986707954096
+ 0.17203462137335684
+ 0.172039375789969
+ 0.17204413032938243
+ 0.17204888499160159
+ 0.17205363977663082
+ 0.17205839468447531
+ 0.17206314971513934
+ 0.17206790486862797
+ 0.17207266014494557
+ 0.17207741554409664
+ 0.17208217106608667
+ 0.1720869267109193
+ 0.17209168247859977
+ 0.17209643836913252
+ 0.17210119438252253
+ 0.17210595051877423
+ 0.17211070677789239
+ 0.1721154631598816
+ 0.17212021966474653
+ 0.17212497629249196
+ 0.17212973304312243
+ 0.17213448991664287
+ 0.17213924691305749
+ 0.17214400403237154
+ 0.17214876127458917
+ 0.17215351863971531
+ 0.17215827612775464
+ 0.17216303373871167
+ 0.17216779147259134
+ 0.17217254932939796
+ 0.17217730730913669
+ 0.17218206541181175
+ 0.17218682363742813
+ 0.17219158198599016
+ 0.17219634045750301
+ 0.17220109905197087
+ 0.17220585776939895
+ 0.17221061660979131
+ 0.17221537557315283
+ 0.17222013465948827
+ 0.17222489386880258
+ 0.17222965320110001
+ 0.17223441265638548
+ 0.17223917223466334
+ 0.17224393193593873
+ 0.17224869176021604
+ 0.17225345170750014
+ 0.1722582117777951
+ 0.17226297197110657
+ 0.1722677322874385
+ 0.17227249272679593
+ 0.17227725328918328
+ 0.17228201397460538
+ 0.17228677478306692
+ 0.17229153571457267
+ 0.17229629676912697
+ 0.17230105794673478
+ 0.1723058192474006
+ 0.1723105806711295
+ 0.17231534221792574
+ 0.17232010388779403
+ 0.17232486568073913
+ 0.17232962759676615
+ 0.17233438963587883
+ 0.17233915179808279
+ 0.17234391408338198
+ 0.17234867649178173
+ 0.17235343902328626
+ 0.17235820167790053
+ 0.17236296445562893
+ 0.17236772735647635
+ 0.17237249038044739
+ 0.17237725352754685
+ 0.17238201679777934
+ 0.17238678019114931
+ 0.17239154370766191
+ 0.17239630734732128
+ 0.17240107111013273
+ 0.17240583499610052
+ 0.1724105990052292
+ 0.17241536313752401
+ 0.17242012739298909
+ 0.17242489177162931
+ 0.17242965627344972
+ 0.17243442089845434
+ 0.17243918564664831
+ 0.17244395051803604
+ 0.17244871551262245
+ 0.17245348063041216
+ 0.17245824587140998
+ 0.17246301123562027
+ 0.17246777672304767
+ 0.17247254233369749
+ 0.17247730806757383
+ 0.17248207392468159
+ 0.17248683990502536
+ 0.17249160600861005
+ 0.17249637223543993
+ 0.17250113858552019
+ 0.17250590505885532
+ 0.17251067165544989
+ 0.17251543837530853
+ 0.17252020521843636
+ 0.17252497218483745
+ 0.17252973927451692
+ 0.17253450648747934
+ 0.17253927382372949
+ 0.17254404128327183
+ 0.17254880886611126
+ 0.17255357657225226
+ 0.17255834440169993
+ 0.17256311235445854
+ 0.17256788043053287
+ 0.17257264862992777
+ 0.17257741695264792
+ 0.1725821853986978
+ 0.17258695396808216
+ 0.17259172266080591
+ 0.17259649147687367
+ 0.17260126041628987
+ 0.17260602947905929
+ 0.1726107986651868
+ 0.17261556797467686
+ 0.17262033740753449
+ 0.17262510696376426
+ 0.17262987664337071
+ 0.17263464644635834
+ 0.1726394163727327
+ 0.17264418642249749
+ 0.17264895659565796
+ 0.17265372689221864
+ 0.17265849731218397
+ 0.17266326785555935
+ 0.17266803852234885
+ 0.17267280931255719
+ 0.1726775802261894
+ 0.1726823512632501
+ 0.17268712242374387
+ 0.17269189370767515
+ 0.17269666511504911
+ 0.17270143664587029
+ 0.17270620830014327
+ 0.17271098007787278
+ 0.1727157519790635
+ 0.1727205240037204
+ 0.17272529615184781
+ 0.17273006842345057
+ 0.17273484081853352
+ 0.17273961333710097
+ 0.17274438597915781
+ 0.17274915874470897
+ 0.17275393163375896
+ 0.17275870464631252
+ 0.17276347778237416
+ 0.17276825104194871
+ 0.17277302442504108
+ 0.17277779793165571
+ 0.17278257156179738
+ 0.17278734531547063
+ 0.17279211919268031
+ 0.17279689319343111
+ 0.17280166731772784
+ 0.17280644156557495
+ 0.17281121593697735
+ 0.17281599043193976
+ 0.17282076505046659
+ 0.17282553979256299
+ 0.17283031465823315
+ 0.17283508964748204
+ 0.17283986476031457
+ 0.17284463999673491
+ 0.17284941535674828
+ 0.17285419084035916
+ 0.17285896644757215
+ 0.17286374217839226
+ 0.17286851803282374
+ 0.17287329401087195
+ 0.17287807011254069
+ 0.17288284633783532
+ 0.17288762268676064
+ 0.17289239915932073
+ 0.17289717575552088
+ 0.17290195247536558
+ 0.17290672931885959
+ 0.17291150628600718
+ 0.17291628337681375
+ 0.17292106059128348
+ 0.17292583792942159
+ 0.1729306153912322
+ 0.17293539297672017
+ 0.17294017068589054
+ 0.17294494851874784
+ 0.17294972647529641
+ 0.17295450455554154
+ 0.17295928275948766
+ 0.17296406108713946
+ 0.17296883953850153
+ 0.17297361811357886
+ 0.17297839681237603
+ 0.17298317563489743
+ 0.17298795458114843
+ 0.17299273365113321
+ 0.17299751284485659
+ 0.17300229216232341
+ 0.17300707160353815
+ 0.17301185116850573
+ 0.1730166308572309
+ 0.17302141066971816
+ 0.17302619060597219
+ 0.17303097066599799
+ 0.17303575084980027
+ 0.17304053115738333
+ 0.17304531158875197
+ 0.17305009214391129
+ 0.17305487282286569
+ 0.1730596536256199
+ 0.17306443455217874
+ 0.1730692156025469
+ 0.17307399677672883
+ 0.17307877807472952
+ 0.1730835594965536
+ 0.17308834104220602
+ 0.17309312271169103
+ 0.17309790450501356
+ 0.17310268642217863
+ 0.17310746846319039
+ 0.17311225062805374
+ 0.17311703291677374
+ 0.17312181532935464
+ 0.17312659786580151
+ 0.17313138052611868
+ 0.17313616331031126
+ 0.17314094621838391
+ 0.1731457292503408
+ 0.17315051240618745
+ 0.173155295685928
+ 0.17316007908956729
+ 0.17316486261711023
+ 0.17316964626856143
+ 0.17317443004392541
+ 0.17317921394320721
+ 0.17318399796641112
+ 0.17318878211354219
+ 0.17319356638460529
+ 0.1731983507796048
+ 0.17320313529854528
+ 0.17320791994143189
+ 0.17321270470826927
+ 0.17321748959906175
+ 0.17322227461381462
+ 0.17322705975253208
+ 0.17323184501521929
+ 0.1732366304018805
+ 0.17324141591252065
+ 0.1732462015471446
+ 0.17325098730575683
+ 0.17325577318836233
+ 0.17326055919496558
+ 0.17326534532557131
+ 0.17327013158018437
+ 0.1732749179588095
+ 0.17327970446145111
+ 0.17328449108811411
+ 0.17328927783880343
+ 0.17329406471352357
+ 0.17329885171227913
+ 0.17330363883507521
+ 0.17330842608191621
+ 0.1733132134528069
+ 0.17331800094775213
+ 0.17332278856675626
+ 0.17332757630982437
+ 0.17333236417696127
+ 0.17333715216817161
+ 0.17334194028345962
+ 0.17334672852283073
+ 0.17335151688628908
+ 0.17335630537383975
+ 0.17336109398548744
+ 0.17336588272123665
+ 0.17337067158109221
+ 0.17337546056505901
+ 0.17338024967314158
+ 0.17338503890534468
+ 0.17338982826167315
+ 0.17339461774213139
+ 0.17339940734672443
+ 0.17340419707545701
+ 0.17340898692833362
+ 0.17341377690535917
+ 0.17341856700653846
+ 0.17342335723187599
+ 0.17342814758137656
+ 0.17343293805504473
+ 0.17343772865288573
+ 0.17344251937490379
+ 0.1734473102211038
+ 0.17345210119149049
+ 0.17345689228606856
+ 0.1734616835048429
+ 0.17346647484781788
+ 0.17347126631499871
+ 0.17347605790638965
+ 0.17348084962199567
+ 0.17348564146182155
+ 0.17349043342587173
+ 0.1734952255141512
+ 0.17350001772666465
+ 0.17350481006341661
+ 0.17350960252441242
+ 0.17351439510965597
+ 0.17351918781915257
+ 0.17352398065290661
+ 0.17352877361092278
+ 0.17353356669320627
+ 0.17353835989976146
+ 0.17354315323059324
+ 0.17354794668570594
+ 0.17355274026510492
+ 0.17355753396879453
+ 0.17356232779677941
+ 0.17356712174906452
+ 0.17357191582565448
+ 0.17357671002655412
+ 0.17358150435176811
+ 0.17358629880130086
+ 0.17359109337515788
+ 0.17359588807334286
+ 0.17360068289586159
+ 0.17360547784271813
+ 0.1736102729139174
+ 0.173615068109464
+ 0.17361986342936278
+ 0.1736246588736188
+ 0.17362945444223613
+ 0.17363425013522002
+ 0.17363904595257496
+ 0.17364384189430573
+ 0.17364863796041693
+ 0.17365343415091397
+ 0.17365823046580053
+ 0.17366302690508201
+ 0.17366782346876303
+ 0.1736726201568484
+ 0.17367741696934241
+ 0.17368221390625047
+ 0.17368701096757694
+ 0.1736918081533266
+ 0.17369660546350391
+ 0.1737014028981142
+ 0.17370620045716184
+ 0.17371099814065147
+ 0.17371579594858808
+ 0.17372059388097624
+ 0.17372539193782072
+ 0.17373019011912627
+ 0.17373498842489754
+ 0.17373978685513963
+ 0.17374458540985649
+ 0.17374938408905385
+ 0.17375418289273581
+ 0.17375898182090738
+ 0.17376378087357292
+ 0.17376858005073767
+ 0.1737733793524058
+ 0.17377817877858273
+ 0.17378297832927278
+ 0.1737877780044807
+ 0.1737925778042112
+ 0.17379737772846909
+ 0.1738021777772592
+ 0.17380697795058642
+ 0.17381177824845495
+ 0.17381657867086975
+ 0.17382137921783594
+ 0.17382617988935781
+ 0.17383098068544028
+ 0.17383578160608815
+ 0.17384058265130595
+ 0.17384538382109865
+ 0.17385018511547082
+ 0.17385498653442727
+ 0.17385978807797281
+ 0.1738645897461121
+ 0.17386939153884987
+ 0.17387419345619096
+ 0.17387899549814004
+ 0.17388379766470174
+ 0.17388859995588091
+ 0.17389340237168241
+ 0.17389820491211094
+ 0.17390300757717106
+ 0.17390781036686756
+ 0.1739126132812055
+ 0.17391741632018903
+ 0.17392221948382358
+ 0.17392702277211339
+ 0.17393182618506348
+ 0.17393662972267837
+ 0.17394143338496307
+ 0.17394623717192198
+ 0.1739510410835601
+ 0.1739558451198823
+ 0.17396064928089303
+ 0.17396545356659709
+ 0.17397025797699925
+ 0.17397506251210443
+ 0.17397986717191705
+ 0.17398467195644221
+ 0.17398947686568447
+ 0.17399428189964861
+ 0.17399908705833908
+ 0.17400389234176128
+ 0.17400869774991962
+ 0.17401350328281859
+ 0.17401830894046313
+ 0.17402311472285822
+ 0.17402792063000838
+ 0.17403272666191841
+ 0.17403753281859291
+ 0.17404233910003691
+ 0.17404714550625472
+ 0.17405195203725154
+ 0.17405675869303211
+ 0.17406156547360097
+ 0.17406637237896283
+ 0.17407117940912262
+ 0.17407598656408488
+ 0.1740807938438545
+ 0.17408560124843642
+ 0.17409040877783508
+ 0.17409521643205542
+ 0.17410002421110193
+ 0.17410483211497943
+ 0.17410964014369312
+ 0.17411444829724723
+ 0.17411925657564681
+ 0.1741240649788964
+ 0.17412887350700096
+ 0.17413368215996516
+ 0.17413849093779357
+ 0.17414329984049121
+ 0.17414810886806248
+ 0.17415291802051264
+ 0.17415772729784612
+ 0.1741625367000679
+ 0.17416734622718236
+ 0.17417215587919452
+ 0.17417696565610905
+ 0.17418177555793085
+ 0.17418658558466435
+ 0.17419139573631479
+ 0.17419620601288621
+ 0.17420101641438415
+ 0.17420582694081302
+ 0.1742106375921775
+ 0.17421544836848255
+ 0.17422025926973234
+ 0.17422507029593284
+ 0.17422988144708743
+ 0.17423469272320183
+ 0.17423950412428019
+ 0.17424431565032769
+ 0.17424912730134887
+ 0.17425393907734857
+ 0.17425875097833138
+ 0.17426356300430235
+ 0.17426837515526616
+ 0.17427318743122741
+ 0.17427799983219092
+ 0.17428281235816168
+ 0.17428762500914383
+ 0.17429243778514295
+ 0.17429725068616314
+ 0.17430206371220958
+ 0.17430687686328672
+ 0.17431169013939957
+ 0.17431650354055259
+ 0.17432131706675111
+ 0.17432613071799916
+ 0.17433094449430189
+ 0.17433575839566418
+ 0.17434057242209053
+ 0.17434538657358586
+ 0.17435020085015471
+ 0.17435501525180233
+ 0.17435982977853279
+ 0.17436464443035155
+ 0.17436945920726271
+ 0.17437427410927173
+ 0.1743790891363827
+ 0.17438390428860079
+ 0.1743887195659308
+ 0.17439353496837712
+ 0.17439835049594507
+ 0.17440316614863899
+ 0.17440798192646345
+ 0.17441279782942384
+ 0.17441761385752447
+ 0.17442243001077018
+ 0.17442724628916584
+ 0.17443206269271624
+ 0.17443687922142609
+ 0.17444169587529992
+ 0.17444651265434291
+ 0.17445132955855969
+ 0.17445614658795455
+ 0.174460963742533
+ 0.17446578102229943
+ 0.17447059842725859
+ 0.17447541595741523
+ 0.17448023361277434
+ 0.17448505139334058
+ 0.17448986929911842
+ 0.17449468733011314
+ 0.17449950548632909
+ 0.17450432376777109
+ 0.17450914217444441
+ 0.174513960706353
+ 0.17451877936350216
+ 0.17452359814589674
+ 0.17452841705354119
+ 0.17453323608644047
+ 0.17453805524459901
+ 0.17454287452802211
+ 0.17454769393671424
+ 0.17455251347068007
+ 0.17455733312992475
+ 0.17456215291445276
+ 0.17456697282426881
+ 0.17457179285937777
+ 0.17457661301978455
+ 0.17458143330549367
+ 0.17458625371651029
+ 0.17459107425283865
+ 0.17459589491448374
+ 0.17460071570145047
+ 0.17460553661374356
+ 0.17461035765136776
+ 0.17461517881432781
+ 0.1746200001026286
+ 0.1746248215162744
+ 0.17462964305527065
+ 0.17463446471962188
+ 0.17463928650933294
+ 0.17464410842440842
+ 0.17464893046485294
+ 0.17465375263067173
+ 0.1746585749218694
+ 0.1746633973384506
+ 0.17466821988042003
+ 0.1746730425477829
+ 0.17467786534054333
+ 0.17468268825870664
+ 0.1746875113022775
+ 0.17469233447126056
+ 0.17469715776566055
+ 0.17470198118548241
+ 0.17470680473073097
+ 0.17471162840141063
+ 0.17471645219752657
+ 0.17472127611908339
+ 0.17472610016608589
+ 0.1747309243385386
+ 0.17473574863644684
+ 0.17474057305981505
+ 0.17474539760864799
+ 0.17475022228295062
+ 0.17475504708272752
+ 0.1747598720079834
+ 0.17476469705872336
+ 0.17476952223495185
+ 0.17477434753667381
+ 0.1747791729638942
+ 0.17478399851661763
+ 0.17478882419484848
+ 0.17479364999859223
+ 0.17479847592785316
+ 0.17480330198263633
+ 0.17480812816294619
+ 0.174812954468788
+ 0.17481778090016623
+ 0.17482260745708569
+ 0.1748274341395511
+ 0.1748322609475674
+ 0.17483708788113908
+ 0.17484191494027149
+ 0.17484674212496892
+ 0.17485156943523644
+ 0.17485639687107848
+ 0.17486122443249999
+ 0.17486605211950587
+ 0.17487087993210088
+ 0.17487570787028972
+ 0.17488053593407704
+ 0.17488536412346806
+ 0.17489019243846687
+ 0.17489502087907899
+ 0.17489984944530884
+ 0.17490467813716115
+ 0.17490950695464086
+ 0.17491433589775271
+ 0.17491916496650148
+ 0.17492399416089174
+ 0.17492882348092872
+ 0.174933652926617
+ 0.17493848249796107
+ 0.17494331219496612
+ 0.17494814201763689
+ 0.17495297196597775
+ 0.17495780203999411
+ 0.1749626322396903
+ 0.17496746256507126
+ 0.17497229301614181
+ 0.17497712359290657
+ 0.17498195429537061
+ 0.1749867851235386
+ 0.17499161607741517
+ 0.17499644715700535
+ 0.17500127836231347
+ 0.17500610969334496
+ 0.17501094115010438
+ 0.17501577273259625
+ 0.17502060444082534
+ 0.17502543627479705
+ 0.17503026823451545
+ 0.17503510031998595
+ 0.17503993253121286
+ 0.17504476486820103
+ 0.17504959733095549
+ 0.17505442991948089
+ 0.17505926263378216
+ 0.17506409547386387
+ 0.17506892843973076
+ 0.17507376153138782
+ 0.17507859474884002
+ 0.17508342809209179
+ 0.17508826156114801
+ 0.17509309515601357
+ 0.17509792887669298
+ 0.17510276272319161
+ 0.17510759669551337
+ 0.17511243079366401
+ 0.17511726501764788
+ 0.17512209936746959
+ 0.1751269338431343
+ 0.17513176844464651
+ 0.17513660317201107
+ 0.17514143802523308
+ 0.17514627300431693
+ 0.17515110810926762
+ 0.17515594334008977
+ 0.17516077869678853
+ 0.17516561417936838
+ 0.17517044978783397
+ 0.17517528552219078
+ 0.17518012138244285
+ 0.17518495736859518
+ 0.17518979348065297
+ 0.17519462971862046
+ 0.17519946608250275
+ 0.17520430257230468
+ 0.17520913918803091
+ 0.17521397592968618
+ 0.1752188127972755
+ 0.17522364979080368
+ 0.17522848691027507
+ 0.17523332415569493
+ 0.17523816152706806
+ 0.17524299902439885
+ 0.17524783664769239
+ 0.17525267439695347
+ 0.17525751227218689
+ 0.17526235027339745
+ 0.17526718840058977
+ 0.17527202665376898
+ 0.17527686503293965
+ 0.17528170353810676
+ 0.17528654216927481
+ 0.17529138092644853
+ 0.17529621980963336
+ 0.17530105881883362
+ 0.17530589795405407
+ 0.17531073721529977
+ 0.17531557660257521
+ 0.17532041611588556
+ 0.17532525575523528
+ 0.17533009552062934
+ 0.17533493541207254
+ 0.17533977542956944
+ 0.17534461557312533
+ 0.17534945584274472
+ 0.17535429623843241
+ 0.17535913676019302
+ 0.17536397740803186
+ 0.17536881818195321
+ 0.17537365908196209
+ 0.1753785001080633
+ 0.17538334126026181
+ 0.17538818253856198
+ 0.17539302394296932
+ 0.17539786547348776
+ 0.17540270713012293
+ 0.17540754891287919
+ 0.1754123908217613
+ 0.17541723285677413
+ 0.17542207501792254
+ 0.17542691730521143
+ 0.17543175971864536
+ 0.17543660225822955
+ 0.17544144492396838
+ 0.17544628771586662
+ 0.17545113063392961
+ 0.17545597367816149
+ 0.17546081684856762
+ 0.17546566014515258
+ 0.17547050356792099
+ 0.17547534711687804
+ 0.1754801907920282
+ 0.17548503459337653
+ 0.17548987852092768
+ 0.17549472257468654
+ 0.17549956675465775
+ 0.17550441106084644
+ 0.1755092554932571
+ 0.17551410005189469
+ 0.17551894473676394
+ 0.1755237895478699
+ 0.17552863448521702
+ 0.17553347954881021
+ 0.17553832473865472
+ 0.17554317005475475
+ 0.1755480154971153
+ 0.17555286106574108
+ 0.17555770676063737
+ 0.17556255258180872
+ 0.17556739852925962
+ 0.17557224460299531
+ 0.17557709080302025
+ 0.17558193712933967
+ 0.17558678358195792
+ 0.17559163016088034
+ 0.17559647686611135
+ 0.17560132369765591
+ 0.17560617065551859
+ 0.1756110177397045
+ 0.17561586495021833
+ 0.17562071228706488
+ 0.17562555975024902
+ 0.17563040733977567
+ 0.17563525505564936
+ 0.17564010289787504
+ 0.17564495086645759
+ 0.17564979896140179
+ 0.17565464718271256
+ 0.17565949553039423
+ 0.1756643440044523
+ 0.17566919260489119
+ 0.17567404133171602
+ 0.1756788901849311
+ 0.1756837391645415
+ 0.1756885882705522
+ 0.17569343750296765
+ 0.17569828686179312
+ 0.17570313634703308
+ 0.17570798595869239
+ 0.17571283569677612
+ 0.17571768556128872
+ 0.17572253555223544
+ 0.17572738566962073
+ 0.17573223591344947
+ 0.17573708628372656
+ 0.17574193678045677
+ 0.17574678740364508
+ 0.17575163815329603
+ 0.17575648902941465
+ 0.17576134003200578
+ 0.17576619116107417
+ 0.17577104241662447
+ 0.17577589379866165
+ 0.17578074530719054
+ 0.17578559694221593
+ 0.17579044870374286
+ 0.17579530059177562
+ 0.17580015260631979
+ 0.17580500474737948
+ 0.17580985701495977
+ 0.17581470940906546
+ 0.17581956192970155
+ 0.17582441457687289
+ 0.17582926735058382
+ 0.17583412025083967
+ 0.17583897327764492
+ 0.17584382643100477
+ 0.17584867971092349
+ 0.17585353311740667
+ 0.17585838665045825
+ 0.17586324031008363
+ 0.17586809409628767
+ 0.17587294800907491
+ 0.1758778020484503
+ 0.17588265621441865
+ 0.17588751050698473
+ 0.17589236492615354
+ 0.1758972194719296
+ 0.17590207414431799
+ 0.17590692894332371
+ 0.17591178386895101
+ 0.17591663892120521
+ 0.17592149410009092
+ 0.175926349405613
+ 0.17593120483777633
+ 0.17593606039658563
+ 0.17594091608204601
+ 0.17594577189416175
+ 0.17595062783293836
+ 0.17595548389838009
+ 0.17596034009049188
+ 0.1759651964092788
+ 0.17597005285474573
+ 0.17597490942689706
+ 0.17597976612573801
+ 0.17598462295127315
+ 0.17598947990350755
+ 0.17599433698244582
+ 0.17599919418809301
+ 0.17600405152045362
+ 0.17600890897953297
+ 0.17601376656533538
+ 0.17601862427786605
+ 0.1760234821171297
+ 0.17602834008313084
+ 0.17603319817587482
+ 0.17603805639536615
+ 0.17604291474160971
+ 0.17604777321461049
+ 0.17605263181437322
+ 0.17605749054090264
+ 0.17606234939420337
+ 0.17606720837428086
+ 0.17607206748113952
+ 0.17607692671478414
+ 0.17608178607522001
+ 0.17608664556245127
+ 0.17609150517648331
+ 0.17609636491732056
+ 0.17610122478496823
+ 0.17610608477943107
+ 0.17611094490071372
+ 0.17611580514882114
+ 0.17612066552375799
+ 0.17612552602552942
+ 0.17613038665414002
+ 0.17613524740959474
+ 0.17614010829189838
+ 0.17614496930105569
+ 0.17614983043707164
+ 0.17615469169995113
+ 0.17615955308969863
+ 0.1761644146063196
+ 0.17616927624981824
+ 0.17617413802019952
+ 0.17617899991746885
+ 0.17618386194163002
+ 0.17618872409268893
+ 0.17619358637064986
+ 0.17619844877551769
+ 0.17620331130729727
+ 0.17620817396599339
+ 0.17621303675161107
+ 0.17621789966415513
+ 0.17622276270363027
+ 0.17622762587004132
+ 0.17623248916339343
+ 0.17623735258369075
+ 0.17624221613093879
+ 0.17624707980514207
+ 0.17625194360630564
+ 0.17625680753443426
+ 0.17626167158953271
+ 0.17626653577160578
+ 0.17627140008065839
+ 0.17627626451669537
+ 0.17628112907972149
+ 0.17628599376974174
+ 0.17629085858676086
+ 0.17629572353078368
+ 0.17630058860181513
+ 0.17630545379986012
+ 0.17631031912492298
+ 0.17631518457700934
+ 0.17632005015612337
+ 0.17632491586227025
+ 0.17632978169545488
+ 0.17633464765568177
+ 0.17633951374295612
+ 0.17634437995728278
+ 0.17634924629866613
+ 0.17635411276711138
+ 0.17635897936262321
+ 0.17636384608520692
+ 0.17636871293486672
+ 0.17637357991160776
+ 0.17637844701543487
+ 0.17638331424635306
+ 0.17638818160436687
+ 0.17639304908948106
+ 0.17639791670170094
+ 0.17640278444103105
+ 0.17640765230747638
+ 0.17641252030104143
+ 0.17641738842173141
+ 0.17642225666955125
+ 0.17642712504450539
+ 0.17643199354659897
+ 0.17643686217583676
+ 0.17644173093222348
+ 0.17644659981576427
+ 0.17645146882646381
+ 0.17645633796432672
+ 0.17646120722935837
+ 0.17646607662156305
+ 0.17647094614094591
+ 0.17647581578751195
+ 0.17648068556126587
+ 0.17648555546221217
+ 0.17649042549035612
+ 0.1764952956457026
+ 0.17650016592825615
+ 0.17650503633802186
+ 0.17650990687500462
+ 0.17651477753920886
+ 0.17651964833063999
+ 0.17652451924930243
+ 0.1765293902952014
+ 0.17653426146834134
+ 0.17653913276872743
+ 0.17654400419636437
+ 0.17654887575125711
+ 0.17655374743341037
+ 0.17655861924282906
+ 0.17656349117951825
+ 0.17656836324348235
+ 0.17657323543472658
+ 0.1765781077532555
+ 0.17658298019907434
+ 0.17658785277218772
+ 0.17659272547260046
+ 0.17659759830031749
+ 0.17660247125534351
+ 0.17660734433768363
+ 0.17661221754734249
+ 0.17661709088432506
+ 0.17662196434863614
+ 0.17662683794028061
+ 0.17663171165926334
+ 0.17663658550558931
+ 0.17664145947926307
+ 0.17664633358028964
+ 0.1766512078086741
+ 0.17665608216442083
+ 0.17666095664753489
+ 0.17666583125802132
+ 0.17667070599588486
+ 0.17667558086113039
+ 0.17668045585376269
+ 0.17668533097378669
+ 0.1766902062212071
+ 0.17669508159602895
+ 0.17669995709825695
+ 0.17670483272789614
+ 0.17670970848495121
+ 0.17671458436942714
+ 0.17671946038132863
+ 0.17672433652066083
+ 0.17672921278742834
+ 0.17673408918163599
+ 0.17673896570328898
+ 0.17674384235239168
+ 0.17674871912894949
+ 0.17675359603296681
+ 0.1767584730644485
+ 0.17676335022339995
+ 0.17676822750982529
+ 0.17677310492373002
+ 0.17677798246511853
+ 0.17678286013399624
+ 0.17678773793036734
+ 0.17679261585423714
+ 0.17679749390561023
+ 0.17680237208449195
+ 0.17680725039088663
+ 0.17681212882479916
+ 0.17681700738623471
+ 0.17682188607519805
+ 0.17682676489169399
+ 0.17683164383572716
+ 0.17683652290730295
+ 0.17684140210642593
+ 0.17684628143310077
+ 0.17685116088733283
+ 0.17685604046912626
+ 0.17686092017848692
+ 0.17686580001541868
+ 0.17687067997992709
+ 0.17687556007201644
+ 0.17688044029169195
+ 0.17688532063895859
+ 0.17689020111382084
+ 0.17689508171628412
+ 0.17689996244635284
+ 0.176904843304032
+ 0.17690972428932636
+ 0.1769146054022411
+ 0.17691948664278084
+ 0.17692436801095038
+ 0.17692924950675476
+ 0.1769341311301986
+ 0.17693901288128724
+ 0.17694389476002514
+ 0.17694877676641729
+ 0.17695365890046855
+ 0.17695854116218382
+ 0.17696342355156799
+ 0.17696830606862571
+ 0.17697318871336212
+ 0.17697807148578201
+ 0.17698295438589029
+ 0.1769878374136917
+ 0.17699272056919105
+ 0.17699760385239335
+ 0.17700248726330375
+ 0.17700737080192663
+ 0.17701225446826713
+ 0.17701713826232984
+ 0.17702202218412005
+ 0.17702690623364253
+ 0.17703179041090183
+ 0.17703667471590304
+ 0.1770415591486513
+ 0.17704644370915093
+ 0.17705132839740712
+ 0.1770562132134248
+ 0.17706109815720883
+ 0.17706598322876366
+ 0.17707086842809489
+ 0.17707575375520673
+ 0.17708063921010461
+ 0.17708552479279299
+ 0.17709041050327667
+ 0.1770952963415609
+ 0.17710018230765037
+ 0.17710506840155008
+ 0.17710995462326462
+ 0.17711484097279925
+ 0.17711972745015847
+ 0.17712461405534738
+ 0.17712950078837086
+ 0.17713438764923364
+ 0.17713927463794082
+ 0.17714416175449715
+ 0.17714904899890724
+ 0.17715393637117618
+ 0.17715882387130918
+ 0.17716371149931054
+ 0.17716859925518569
+ 0.17717348713893921
+ 0.17717837515057588
+ 0.17718326329010076
+ 0.17718815155751844
+ 0.17719303995283436
+ 0.17719792847605292
+ 0.17720281712717928
+ 0.17720770590621798
+ 0.17721259481317433
+ 0.177217483848053
+ 0.17722237301085872
+ 0.1772272623015963
+ 0.17723215172027132
+ 0.17723704126688763
+ 0.17724193094145099
+ 0.17724682074396581
+ 0.17725171067443707
+ 0.17725660073286978
+ 0.17726149091926863
+ 0.17726638123363866
+ 0.17727127167598461
+ 0.1772761622463114
+ 0.17728105294462398
+ 0.17728594377092738
+ 0.17729083472522594
+ 0.17729572580752515
+ 0.17730061701782959
+ 0.17730550835614428
+ 0.17731039982247393
+ 0.17731529141682353
+ 0.17732018313919803
+ 0.17732507498960207
+ 0.1773299669680406
+ 0.17733485907451874
+ 0.17733975130904134
+ 0.17734464367161301
+ 0.17734953616223878
+ 0.17735442878092364
+ 0.1773593215276725
+ 0.1773642144024902
+ 0.17736910740538148
+ 0.17737400053635111
+ 0.17737889379540414
+ 0.17738378718254566
+ 0.17738868069778047
+ 0.17739357434111322
+ 0.17739846811254897
+ 0.17740336201209261
+ 0.1774082560397488
+ 0.17741315019552301
+ 0.17741804447941956
+ 0.17742293889144348
+ 0.17742783343159985
+ 0.17743272809989333
+ 0.177437622896329
+ 0.17744251782091153
+ 0.1774474128736459
+ 0.17745230805453699
+ 0.17745720336358983
+ 0.17746209880080907
+ 0.17746699436619973
+ 0.17747189005976685
+ 0.17747678588151505
+ 0.17748168183144949
+ 0.17748657790957464
+ 0.17749147411589578
+ 0.17749637045041769
+ 0.17750126691314541
+ 0.1775061635040833
+ 0.17751106022323682
+ 0.17751595707061096
+ 0.1775208540462099
+ 0.17752575115003888
+ 0.17753064838210342
+ 0.17753554574240732
+ 0.17754044323095616
+ 0.17754534084775472
+ 0.17755023859280791
+ 0.17755513646612056
+ 0.1775600344676975
+ 0.17756493259754352
+ 0.17756983085566383
+ 0.17757472924206338
+ 0.17757962775674657
+ 0.17758452639971889
+ 0.17758942517098464
+ 0.1775943240705492
+ 0.17759922309841714
+ 0.17760412225459352
+ 0.17760902153908334
+ 0.17761392095189119
+ 0.17761882049302222
+ 0.17762372016248129
+ 0.17762861996027324
+ 0.1776335198864028
+ 0.17763841994087515
+ 0.17764332012369513
+ 0.17764822043486758
+ 0.17765312087439755
+ 0.17765802144228945
+ 0.17766292213854887
+ 0.17766782296317998
+ 0.17767272391618832
+ 0.17767762499757853
+ 0.17768252620735542
+ 0.17768742754552405
+ 0.17769232901208912
+ 0.17769723060705581
+ 0.1777021323304287
+ 0.1777070341822129
+ 0.17771193616241324
+ 0.1777168382710346
+ 0.1777217405080822
+ 0.17772664287356055
+ 0.17773154536747443
+ 0.17773644798982918
+ 0.17774135074062961
+ 0.17774625361988006
+ 0.17775115662758612
+ 0.17775605976375264
+ 0.17776096302838423
+ 0.17776586642148576
+ 0.17777076994306246
+ 0.17777567359311885
+ 0.17778057737166011
+ 0.17778548127869098
+ 0.1777903853142164
+ 0.17779528947824158
+ 0.17780019377077078
+ 0.17780509819180954
+ 0.17781000274136258
+ 0.17781490741943431
+ 0.17781981222603033
+ 0.17782471716115555
+ 0.17782962222481413
+ 0.17783452741701167
+ 0.17783943273775263
+ 0.17784433818704254
+ 0.17784924376488553
+ 0.17785414947128692
+ 0.1778590553062516
+ 0.17786396126978446
+ 0.17786886736189031
+ 0.17787377358257417
+ 0.17787867993184087
+ 0.17788358640969537
+ 0.17788849301614268
+ 0.1778933997511877
+ 0.17789830661483488
+ 0.17790321360708961
+ 0.17790812072795675
+ 0.17791302797744094
+ 0.1779179353555477
+ 0.17792284286228105
+ 0.17792775049764656
+ 0.17793265826164878
+ 0.1779375661542931
+ 0.17794247417558387
+ 0.17794738232552629
+ 0.17795229060412512
+ 0.17795719901138557
+ 0.17796210754731229
+ 0.17796701621191016
+ 0.17797192500518416
+ 0.17797683392713926
+ 0.17798174297778038
+ 0.17798665215711235
+ 0.17799156146514011
+ 0.17799647090186863
+ 0.17800138046730277
+ 0.17800629016144737
+ 0.17801119998430734
+ 0.17801610993588776
+ 0.17802102001619363
+ 0.17802593022522939
+ 0.17803084056300034
+ 0.17803575102951133
+ 0.1780406616247672
+ 0.17804557234877302
+ 0.17805048320153352
+ 0.17805539418305363
+ 0.17806030529333847
+ 0.17806521653239271
+ 0.17807012790022111
+ 0.17807503939682912
+ 0.17807995102222149
+ 0.17808486277640273
+ 0.17808977465937809
+ 0.1780946866711525
+ 0.17809959881173087
+ 0.17810451108111813
+ 0.17810942347931905
+ 0.17811433600633844
+ 0.17811924866218157
+ 0.17812416144685328
+ 0.17812907436035827
+ 0.1781339874027015
+ 0.17813890057388809
+ 0.17814381387392272
+ 0.17814872730281039
+ 0.17815364086055635
+ 0.17815855454716509
+ 0.1781634683626416
+ 0.17816838230699075
+ 0.17817329638021789
+ 0.1781782105823275
+ 0.17818312491332441
+ 0.17818803937321387
+ 0.17819295396200063
+ 0.17819786867968976
+ 0.17820278352628613
+ 0.17820769850179455
+ 0.1782126136062199
+ 0.17821752883956735
+ 0.17822244420184136
+ 0.17822735969304754
+ 0.17823227531319033
+ 0.17823719106227487
+ 0.17824210694030582
+ 0.17824702294728834
+ 0.17825193908322709
+ 0.17825685534812727
+ 0.17826177174199384
+ 0.17826668826483147
+ 0.17827160491664518
+ 0.17827652169743985
+ 0.17828143860722059
+ 0.17828635564599207
+ 0.17829127281375939
+ 0.17829619011052766
+ 0.17830110753630116
+ 0.17830602509108562
+ 0.17831094277488546
+ 0.17831586058770563
+ 0.17832077852955122
+ 0.17832569660042694
+ 0.17833061480033807
+ 0.17833553312928904
+ 0.17834045158728551
+ 0.17834537017433161
+ 0.17835028889043275
+ 0.17835520773559355
+ 0.17836012670981924
+ 0.17836504581311449
+ 0.1783699650454845
+ 0.17837488440693405
+ 0.1783798038974681
+ 0.17838472351709142
+ 0.17838964326580894
+ 0.17839456314362589
+ 0.1783994831505471
+ 0.17840440328657717
+ 0.17840932355172148
+ 0.17841424394598471
+ 0.17841916446937195
+ 0.17842408512188776
+ 0.17842900590353775
+ 0.17843392681432593
+ 0.1784388478542579
+ 0.17844376902333842
+ 0.17844869032157262
+ 0.17845361174896501
+ 0.17845853330552075
+ 0.17846345499124502
+ 0.17846837680614205
+ 0.17847329875021758
+ 0.17847822082347614
+ 0.17848314302592247
+ 0.17848806535756212
+ 0.17849298781839948
+ 0.17849791040843954
+ 0.17850283312768728
+ 0.17850775597614785
+ 0.178512678953826
+ 0.17851760206072653
+ 0.17852252529685464
+ 0.17852744866221515
+ 0.17853237215681306
+ 0.17853729578065317
+ 0.17854221953374047
+ 0.17854714341607983
+ 0.17855206742767643
+ 0.17855699156853508
+ 0.17856191583866035
+ 0.17856684023805772
+ 0.17857176476673195
+ 0.17857668942468774
+ 0.17858161421193061
+ 0.17858653912846495
+ 0.17859146417429572
+ 0.17859638934942818
+ 0.17860131465386694
+ 0.17860624008761694
+ 0.17861116565068361
+ 0.17861609134307119
+ 0.17862101716478523
+ 0.17862594311583024
+ 0.17863086919621135
+ 0.17863579540593358
+ 0.17864072174500165
+ 0.17864564821342055
+ 0.17865057481119528
+ 0.17865550153833071
+ 0.17866042839483212
+ 0.17866535538070386
+ 0.17867028249595157
+ 0.17867520974057952
+ 0.1786801371145931
+ 0.17868506461799674
+ 0.17868999225079618
+ 0.17869492001299558
+ 0.17869984790460047
+ 0.17870477592561526
+ 0.17870970407604525
+ 0.17871463235589555
+ 0.17871956076517043
+ 0.17872448930387533
+ 0.17872941797201533
+ 0.17873434676959526
+ 0.17873927569661979
+ 0.1787442047530938
+ 0.17874913393902289
+ 0.17875406325441137
+ 0.17875899269926432
+ 0.17876392227358676
+ 0.17876885197738382
+ 0.17877378181065992
+ 0.17877871177342083
+ 0.17878364186567067
+ 0.17878857208741483
+ 0.17879350243865794
+ 0.17879843291940545
+ 0.17880336352966189
+ 0.17880829426943215
+ 0.17881322513872175
+ 0.17881815613753479
+ 0.17882308726587712
+ 0.17882801852375282
+ 0.17883294991116763
+ 0.17883788142812587
+ 0.17884281307463257
+ 0.17884774485069327
+ 0.17885267675631208
+ 0.17885760879149476
+ 0.1788625409562454
+ 0.17886747325056984
+ 0.17887240567447227
+ 0.17887733822795826
+ 0.17888227091103223
+ 0.17888720372369943
+ 0.17889213666596479
+ 0.17889706973783312
+ 0.17890200293930947
+ 0.17890693627039875
+ 0.17891186973110601
+ 0.17891680332143625
+ 0.17892173704139414
+ 0.17892667089098488
+ 0.17893160487021328
+ 0.17893653897908443
+ 0.17894147321760295
+ 0.17894640758577418
+ 0.17895134208360314
+ 0.17895627671109424
+ 0.17896121146825295
+ 0.17896614635508393
+ 0.17897108137159259
+ 0.17897601651778317
+ 0.17898095179366097
+ 0.17898588719923125
+ 0.17899082273449848
+ 0.17899575839946794
+ 0.17900069419414447
+ 0.17900563011853277
+ 0.17901056617263811
+ 0.17901550235646546
+ 0.17902043867001971
+ 0.17902537511330571
+ 0.17903031168632838
+ 0.17903524838909293
+ 0.17904018522160423
+ 0.17904512218386709
+ 0.17905005927588644
+ 0.17905499649766779
+ 0.17905993384921517
+ 0.17906487133053428
+ 0.1790698089416298
+ 0.17907474668250678
+ 0.17907968455316997
+ 0.17908462255362453
+ 0.17908956068387544
+ 0.17909449894392748
+ 0.1790994373337858
+ 0.17910437585345501
+ 0.17910931450294063
+ 0.17911425328224698
+ 0.17911919219137964
+ 0.17912413123034329
+ 0.17912907039914258
+ 0.17913400969778293
+ 0.17913894912626929
+ 0.17914388868460621
+ 0.17914882837279916
+ 0.17915376819085274
+ 0.17915870813877191
+ 0.17916364821656192
+ 0.1791685884242275
+ 0.17917352876177356
+ 0.17917846922920524
+ 0.17918340982652761
+ 0.17918835055374516
+ 0.17919329141086332
+ 0.17919823239788671
+ 0.17920317351482043
+ 0.17920811476166965
+ 0.17921305613843913
+ 0.17921799764513388
+ 0.17922293928175886
+ 0.17922788104831894
+ 0.17923282294481901
+ 0.17923776497126451
+ 0.17924270712766002
+ 0.17924764941401039
+ 0.17925259183032083
+ 0.17925753437659608
+ 0.17926247705284157
+ 0.17926741985906186
+ 0.17927236279526196
+ 0.17927730586144686
+ 0.17928224905762136
+ 0.17928719238379098
+ 0.17929213583996001
+ 0.17929707942613404
+ 0.17930202314231755
+ 0.17930696698851559
+ 0.17931191096473345
+ 0.17931685507097569
+ 0.17932179930724759
+ 0.17932674367355397
+ 0.17933168816989975
+ 0.17933663279628992
+ 0.17934157755272959
+ 0.17934652243922364
+ 0.17935146745577704
+ 0.17935641260239474
+ 0.17936135787908147
+ 0.17936630328584288
+ 0.17937124882268313
+ 0.17937619448960784
+ 0.17938114028662136
+ 0.17938608621372959
+ 0.17939103227093642
+ 0.17939597845824748
+ 0.17940092477566752
+ 0.17940587122320165
+ 0.17941081780085477
+ 0.17941576450863184
+ 0.17942071134653789
+ 0.17942565831457774
+ 0.17943060541275652
+ 0.1794355526410791
+ 0.17944049999955061
+ 0.17944544748817587
+ 0.17945039510695987
+ 0.1794553428559077
+ 0.17946029073502404
+ 0.17946523874431433
+ 0.17947018688378311
+ 0.17947513515343552
+ 0.17948008355327671
+ 0.17948503208331121
+ 0.17948998074354458
+ 0.17949492953398111
+ 0.17949987845462656
+ 0.1795048275054853
+ 0.17950977668656237
+ 0.17951472599786303
+ 0.17951967543939212
+ 0.1795246250111546
+ 0.17952957471315528
+ 0.17953452454539945
+ 0.17953947450789207
+ 0.17954442460063796
+ 0.17954937482364197
+ 0.17955432517690931
+ 0.17955927566044472
+ 0.17956422627425359
+ 0.17956917701834046
+ 0.17957412789271074
+ 0.17957907889736882
+ 0.17958403003232035
+ 0.17958898129756989
+ 0.17959393269312246
+ 0.17959888421898298
+ 0.17960383587515683
+ 0.17960878766164845
+ 0.17961373957846324
+ 0.17961869162560617
+ 0.17962364380308163
+ 0.17962859611089535
+ 0.17963354854905189
+ 0.17963850111755636
+ 0.1796434538164137
+ 0.17964840664562892
+ 0.17965335960520709
+ 0.17965831269515301
+ 0.17966326591547163
+ 0.17966821926616827
+ 0.17967317274724764
+ 0.17967812635871477
+ 0.17968308010057465
+ 0.17968803397283223
+ 0.17969298797549246
+ 0.17969794210856038
+ 0.17970289637204115
+ 0.17970785076593934
+ 0.17971280529026062
+ 0.17971775994500924
+ 0.17972271473019061
+ 0.17972766964580947
+ 0.17973262469187082
+ 0.1797375798683799
+ 0.17974253517534169
+ 0.17974749061276074
+ 0.17975244618064251
+ 0.17975740187899183
+ 0.17976235770781346
+ 0.17976731366711274
+ 0.17977226975689448
+ 0.17977722597716386
+ 0.17978218232792545
+ 0.17978713880918462
+ 0.17979209542094618
+ 0.17979705216321526
+ 0.17980200903599655
+ 0.17980696603929536
+ 0.17981192317311659
+ 0.17981688043746524
+ 0.17982183783234626
+ 0.17982679535776439
+ 0.17983175301372503
+ 0.179836710800233
+ 0.17984166871729329
+ 0.1798466267649112
+ 0.17985158494309092
+ 0.17985654325183828
+ 0.17986150169115783
+ 0.1798664602610546
+ 0.17987141896153364
+ 0.17987637779259993
+ 0.17988133675425852
+ 0.17988629584651444
+ 0.17989125506937254
+ 0.17989621442283776
+ 0.17990117390691537
+ 0.17990613352161025
+ 0.17991109326692703
+ 0.17991605314287115
+ 0.17992101314944753
+ 0.17992597328666118
+ 0.17993093355451692
+ 0.1799358939530199
+ 0.17994085448217481
+ 0.17994581514198715
+ 0.17995077593246148
+ 0.17995573685360305
+ 0.17996069790541697
+ 0.17996565908790779
+ 0.17997062040108067
+ 0.17997558184494108
+ 0.17998054341949321
+ 0.1799855051247426
+ 0.17999046696069415
+ 0.17999542892735279
+ 0.18000039102601667
+ 0.18000535327542444
+ 0.18001031564580988
+ 0.18001527813717749
+ 0.18002024074953188
+ 0.18002520348287648
+ 0.18003016633721586
+ 0.18003512931255453
+ 0.18004009240889654
+ 0.18004505562624631
+ 0.18005001896460798
+ 0.18005498242398602
+ 0.18005994600438446
+ 0.18006490970580735
+ 0.18006987352825968
+ 0.18007483747174544
+ 0.18007980153626865
+ 0.18008476572183349
+ 0.18008973002844472
+ 0.1800946944561061
+ 0.18009965900482255
+ 0.18010462367459759
+ 0.18010958846543579
+ 0.18011455337734208
+ 0.18011951841031962
+ 0.18012448356437338
+ 0.18012944883950732
+ 0.18013441423572604
+ 0.18013937975303357
+ 0.18014434539143431
+ 0.18014931115093247
+ 0.18015427703153247
+ 0.18015924303323838
+ 0.18016420915605419
+ 0.18016917539998498
+ 0.18017414176503418
+ 0.18017910825120692
+ 0.18018407485850671
+ 0.18018904158693802
+ 0.18019400843650546
+ 0.180198975407213
+ 0.18020394249906516
+ 0.18020890971206602
+ 0.18021387704622002
+ 0.18021884450153086
+ 0.18022381207800389
+ 0.18022877977564219
+ 0.1802337475944509
+ 0.18023871553443438
+ 0.18024368359559584
+ 0.18024865177794069
+ 0.18025362008147292
+ 0.18025858850619622
+ 0.180263557052116
+ 0.18026852571923488
+ 0.18027349450755878
+ 0.18027846341709128
+ 0.18028343244783698
+ 0.18028840159979936
+ 0.18029337087298342
+ 0.18029834026739325
+ 0.18030330978303333
+ 0.18030827941990776
+ 0.18031324917802052
+ 0.18031821905737619
+ 0.18032318905797923
+ 0.18032815917983333
+ 0.18033312942294336
+ 0.18033809978731347
+ 0.18034307027294808
+ 0.18034804087985082
+ 0.18035301160802672
+ 0.18035798245747972
+ 0.18036295342821401
+ 0.18036792452023448
+ 0.18037289573354437
+ 0.18037786706814898
+ 0.18038283852405151
+ 0.1803878101012574
+ 0.1803927817997707
+ 0.18039775361959459
+ 0.18040272556073486
+ 0.18040769762319483
+ 0.18041266980697887
+ 0.18041764211209199
+ 0.18042261453853733
+ 0.18042758708632037
+ 0.18043255975544417
+ 0.1804375325459143
+ 0.18044250545773421
+ 0.18044747849090809
+ 0.18045245164544085
+ 0.1804574249213361
+ 0.18046239831859887
+ 0.18046737183723266
+ 0.18047234547724253
+ 0.18047731923863208
+ 0.18048229312140585
+ 0.18048726712556828
+ 0.18049224125112351
+ 0.18049721549807607
+ 0.18050218986642996
+ 0.1805071643561893
+ 0.18051213896735857
+ 0.18051711369994231
+ 0.18052208855394458
+ 0.18052706352936992
+ 0.18053203862622239
+ 0.18053701384450607
+ 0.18054198918422543
+ 0.18054696464538464
+ 0.18055194022798857
+ 0.1805569159320409
+ 0.18056189175754617
+ 0.18056686770450836
+ 0.18057184377293209
+ 0.18057681996282135
+ 0.18058179627418119
+ 0.18058677270701518
+ 0.18059174926132743
+ 0.18059672593712281
+ 0.18060170273440557
+ 0.18060667965317961
+ 0.18061165669344917
+ 0.18061663385521909
+ 0.18062161113849351
+ 0.18062658854327646
+ 0.18063156606957204
+ 0.1806365437173853
+ 0.18064152148671972
+ 0.18064649937758034
+ 0.18065147738997084
+ 0.18065645552389561
+ 0.18066143377935936
+ 0.18066641215636603
+ 0.18067139065491974
+ 0.18067636927502503
+ 0.18068134801668639
+ 0.18068632687990796
+ 0.18069130586469373
+ 0.18069628497104831
+ 0.18070126419897617
+ 0.180706243548481
+ 0.18071122301956768
+ 0.18071620261224039
+ 0.18072118232650319
+ 0.18072616216236057
+ 0.18073114211981661
+ 0.18073612219887586
+ 0.18074110239954244
+ 0.1807460827218208
+ 0.18075106316571504
+ 0.18075604373122978
+ 0.18076102441836897
+ 0.18076600522713721
+ 0.18077098615753862
+ 0.18077596720957717
+ 0.18078094838325795
+ 0.18078592967858412
+ 0.18079091109556106
+ 0.18079589263419288
+ 0.18080087429448322
+ 0.18080585607643754
+ 0.18081083798005854
+ 0.1808158200053521
+ 0.18082080215232138
+ 0.180825784420971
+ 0.18083076681130589
+ 0.18083574932332921
+ 0.18084073195704642
+ 0.18084571471246072
+ 0.18085069758957756
+ 0.18085568058840049
+ 0.18086066370893369
+ 0.18086564695118168
+ 0.18087063031514941
+ 0.18087561380084008
+ 0.18088059740825865
+ 0.18088558113740927
+ 0.180890564988296
+ 0.18089554896092386
+ 0.18090053305529638
+ 0.18090551727141818
+ 0.18091050160929337
+ 0.18091548606892646
+ 0.18092047065032199
+ 0.18092545535348353
+ 0.1809304401784162
+ 0.18093542512512398
+ 0.1809404101936106
+ 0.18094539538388141
+ 0.18095038069593966
+ 0.18095536612979074
+ 0.18096035168543795
+ 0.18096533736288661
+ 0.18097032316213993
+ 0.18097530908320297
+ 0.18098029512607974
+ 0.18098528129077443
+ 0.1809902675772915
+ 0.18099525398563551
+ 0.18100024051581054
+ 0.18100522716782078
+ 0.18101021394167061
+ 0.18101520083736419
+ 0.18102018785490614
+ 0.18102517499430096
+ 0.1810301622555523
+ 0.1810351496386646
+ 0.18104013714364253
+ 0.18104512477049015
+ 0.18105011251921202
+ 0.18105510038981174
+ 0.18106008838229479
+ 0.18106507649666437
+ 0.18107006473292545
+ 0.1810750530910821
+ 0.18108004157113849
+ 0.18108503017309915
+ 0.1810900188969686
+ 0.18109500774275047
+ 0.18109999671044982
+ 0.18110498580007028
+ 0.18110997501161633
+ 0.18111496434509261
+ 0.18111995380050358
+ 0.18112494337785295
+ 0.18112993307714528
+ 0.18113492289838509
+ 0.18113991284157607
+ 0.18114490290672358
+ 0.18114989309383087
+ 0.18115488340290251
+ 0.18115987383394347
+ 0.181164864386957
+ 0.18116985506194849
+ 0.18117484585892163
+ 0.18117983677788049
+ 0.18118482781883008
+ 0.18118981898177458
+ 0.18119481026671752
+ 0.1811998016736644
+ 0.18120479320261845
+ 0.18120978485358469
+ 0.18121477662656713
+ 0.18121976852156996
+ 0.18122476053859762
+ 0.18122975267765484
+ 0.18123474493874514
+ 0.1812397373218736
+ 0.18124472982704382
+ 0.1812497224542608
+ 0.18125471520352823
+ 0.18125970807485114
+ 0.18126470106823314
+ 0.18126969418367872
+ 0.18127468742119263
+ 0.18127968078077877
+ 0.18128467426244135
+ 0.18128966786618497
+ 0.18129466159201404
+ 0.18129965543993284
+ 0.18130464940994487
+ 0.18130964350205572
+ 0.18131463771626896
+ 0.18131963205258872
+ 0.18132462651102002
+ 0.18132962109156656
+ 0.18133461579423277
+ 0.18133961061902337
+ 0.18134460556594231
+ 0.18134960063499383
+ 0.18135459582618246
+ 0.18135959113951269
+ 0.18136458657498827
+ 0.18136958213261414
+ 0.18137457781239405
+ 0.18137957361433291
+ 0.18138456953843446
+ 0.18138956558470321
+ 0.18139456175314414
+ 0.18139955804376057
+ 0.18140455445655698
+ 0.18140955099153844
+ 0.18141454764870854
+ 0.18141954442807146
+ 0.18142454132963215
+ 0.18142953835339479
+ 0.18143453549936345
+ 0.18143953276754271
+ 0.18144453015793621
+ 0.18144952767054948
+ 0.18145452530538608
+ 0.18145952306245022
+ 0.18146452094174645
+ 0.18146951894327881
+ 0.18147451706705242
+ 0.18147951531307044
+ 0.18148451368133831
+ 0.18148951217185977
+ 0.18149451078463885
+ 0.18149950951968064
+ 0.18150450837698878
+ 0.18150950735656787
+ 0.1815145064584224
+ 0.18151950568255659
+ 0.18152450502897444
+ 0.18152950449768057
+ 0.18153450408867916
+ 0.1815395038019752
+ 0.18154450363757182
+ 0.18154950359547412
+ 0.18155450367568624
+ 0.1815595038782131
+ 0.18156450420305759
+ 0.18156950465022553
+ 0.18157450521972024
+ 0.18157950591154667
+ 0.18158450672570894
+ 0.18158950766221124
+ 0.18159450872105806
+ 0.18159950990225354
+ 0.18160451120580182
+ 0.18160951263170788
+ 0.18161451417997551
+ 0.18161951585060959
+ 0.18162451764361384
+ 0.1816295195589929
+ 0.18163452159675081
+ 0.18163952375689218
+ 0.18164452603942161
+ 0.18164952844434226
+ 0.18165453097165965
+ 0.18165953362137788
+ 0.18166453639350155
+ 0.18166953928803389
+ 0.18167454230497987
+ 0.18167954544434411
+ 0.18168454870613074
+ 0.1816895520903439
+ 0.18169455559698808
+ 0.18169955922606751
+ 0.18170456297758672
+ 0.18170956685154988
+ 0.18171457084796103
+ 0.18171957496682478
+ 0.18172457920814578
+ 0.18172958357192806
+ 0.1817345880581758
+ 0.18173959266689357
+ 0.18174459739808554
+ 0.18174960225175618
+ 0.18175460722790976
+ 0.18175961232655075
+ 0.18176461754768281
+ 0.1817696228913111
+ 0.1817746283574401
+ 0.18177963394607308
+ 0.18178463965721503
+ 0.18178964549087059
+ 0.1817946514470434
+ 0.18179965752573804
+ 0.18180466372695958
+ 0.18180967005071075
+ 0.18181467649699753
+ 0.18181968306582311
+ 0.18182468975719251
+ 0.18182969657110998
+ 0.18183470350757949
+ 0.18183971056660575
+ 0.1818447177481928
+ 0.18184972505234484
+ 0.18185473247906689
+ 0.18185974002836261
+ 0.18186474770023661
+ 0.18186975549469306
+ 0.18187476341173639
+ 0.18187977145137094
+ 0.18188477961360164
+ 0.18188978789843177
+ 0.18189479630586583
+ 0.18189980483590934
+ 0.18190481348856516
+ 0.18190982226383823
+ 0.18191483116173324
+ 0.18191984018225379
+ 0.18192484932540492
+ 0.1819298585911904
+ 0.18193486797961514
+ 0.18193987749068291
+ 0.18194488712439835
+ 0.18194989688076593
+ 0.18195490675978943
+ 0.18195991676147383
+ 0.18196492688582286
+ 0.18196993713284151
+ 0.18197494750253357
+ 0.18197995799490396
+ 0.18198496860995647
+ 0.18198997934769559
+ 0.18199499020812557
+ 0.18200000119125134
+ 0.18200501229707625
+ 0.18201002352560569
+ 0.18201503487684301
+ 0.18202004635079314
+ 0.18202505794746029
+ 0.18203006966684909
+ 0.18203508150896314
+ 0.18204009347380753
+ 0.18204510556138642
+ 0.18205011777170385
+ 0.1820551301047641
+ 0.18206014256057221
+ 0.18206515513913177
+ 0.18207016784044741
+ 0.18207518066452374
+ 0.18208019361136454
+ 0.18208520668097514
+ 0.18209021987335849
+ 0.18209523318851997
+ 0.18210024662646329
+ 0.18210526018719309
+ 0.18211027387071399
+ 0.18211528767703006
+ 0.18212030160614551
+ 0.18212531565806495
+ 0.18213032983279245
+ 0.18213534413033264
+ 0.18214035855068925
+ 0.18214537309386772
+ 0.18215038775987138
+ 0.18215540254870524
+ 0.18216041746037295
+ 0.1821654324948796
+ 0.18217044765222939
+ 0.1821754629324259
+ 0.18218047833547427
+ 0.18218549386137914
+ 0.18219050951014362
+ 0.18219552528177332
+ 0.18220054117627194
+ 0.18220555719364356
+ 0.18221057333389332
+ 0.18221558959702483
+ 0.18222060598304271
+ 0.18222562249195165
+ 0.1822306391237557
+ 0.18223565587845911
+ 0.18224067275606634
+ 0.18224568975658167
+ 0.18225070688000924
+ 0.18225572412635405
+ 0.18226074149561983
+ 0.18226575898781119
+ 0.18227077660293228
+ 0.18227579434098773
+ 0.18228081220198208
+ 0.18228583018591907
+ 0.18229084829280331
+ 0.1822958665226394
+ 0.18230088487543106
+ 0.18230590335118335
+ 0.1823109219498999
+ 0.18231594067158588
+ 0.18232095951624538
+ 0.18232597848388213
+ 0.18233099757450164
+ 0.18233601678810668
+ 0.18234103612470323
+ 0.18234605558429451
+ 0.1823510751668857
+ 0.18235609487248039
+ 0.18236111470108321
+ 0.1823661346526988
+ 0.18237115472733084
+ 0.18237617492498445
+ 0.18238119524566371
+ 0.18238621568937277
+ 0.18239123625611636
+ 0.18239625694589806
+ 0.18240127775872297
+ 0.18240629869459571
+ 0.18241131975351957
+ 0.18241634093550008
+ 0.18242136224054042
+ 0.18242638366864569
+ 0.18243140521982004
+ 0.18243642689406805
+ 0.182441448691394
+ 0.18244647061180191
+ 0.18245149265529609
+ 0.18245651482188149
+ 0.18246153711156229
+ 0.18246655952434226
+ 0.18247158206022637
+ 0.18247660471921884
+ 0.18248162750132435
+ 0.18248665040654649
+ 0.18249167343488995
+ 0.18249669658635892
+ 0.18250171986095834
+ 0.18250674325869207
+ 0.18251176677956513
+ 0.18251679042358074
+ 0.18252181419074398
+ 0.18252683808105905
+ 0.18253186209453054
+ 0.18253688623116265
+ 0.18254191049095955
+ 0.18254693487392576
+ 0.18255195938006558
+ 0.18255698400938353
+ 0.18256200876188386
+ 0.18256703363757065
+ 0.18257205863644904
+ 0.18257708375852275
+ 0.1825821090037959
+ 0.18258713437227353
+ 0.18259215986395946
+ 0.18259718547885828
+ 0.18260221121697504
+ 0.18260723707831253
+ 0.18261226306287631
+ 0.18261728917067058
+ 0.1826223154016994
+ 0.18262734175596754
+ 0.18263236823347864
+ 0.18263739483423772
+ 0.18264242155824906
+ 0.18264744840551678
+ 0.18265247537604504
+ 0.18265750246983942
+ 0.18266252968690222
+ 0.18266755702723994
+ 0.18267258449085533
+ 0.18267761207775393
+ 0.18268263978793947
+ 0.18268766762141572
+ 0.18269269557818812
+ 0.18269772365826092
+ 0.18270275186163829
+ 0.1827077801883239
+ 0.18271280863832332
+ 0.18271783721163984
+ 0.18272286590827849
+ 0.18272789472824347
+ 0.18273292367153893
+ 0.18273795273816953
+ 0.18274298192813992
+ 0.18274801124145376
+ 0.18275304067811571
+ 0.18275807023812995
+ 0.18276309992150114
+ 0.18276812972823384
+ 0.18277315965833182
+ 0.18277818971179971
+ 0.1827832198886421
+ 0.18278825018886322
+ 0.18279328061246769
+ 0.1827983111594588
+ 0.18280334182984251
+ 0.18280837262362162
+ 0.18281340354080169
+ 0.18281843458138644
+ 0.18282346574538058
+ 0.18282849703278858
+ 0.18283352844361431
+ 0.18283855997786236
+ 0.1828435916355369
+ 0.18284862341664301
+ 0.18285365532118444
+ 0.18285868734916538
+ 0.18286371950059091
+ 0.18286875177546472
+ 0.18287378417379146
+ 0.18287881669557582
+ 0.18288384934082191
+ 0.1828888821095335
+ 0.18289391500171615
+ 0.18289894801737314
+ 0.18290398115650947
+ 0.18290901441912938
+ 0.18291404780523707
+ 0.18291908131483672
+ 0.18292411494793342
+ 0.18292914870453086
+ 0.1829341825846342
+ 0.18293921658824669
+ 0.18294425071537385
+ 0.182949284966019
+ 0.18295431934018722
+ 0.18295935383788262
+ 0.18296438845910998
+ 0.18296942320387297
+ 0.1829744580721766
+ 0.18297949306402475
+ 0.18298452817942193
+ 0.18298956341837291
+ 0.18299459878088128
+ 0.18299963426695226
+ 0.1830046698765895
+ 0.18300970560979815
+ 0.18301474146658192
+ 0.18301977744694548
+ 0.18302481355089292
+ 0.18302984977842859
+ 0.18303488612955746
+ 0.18303992260428373
+ 0.18304495920261121
+ 0.18304999592454496
+ 0.18305503277008917
+ 0.18306006973924804
+ 0.18306510683202573
+ 0.18307014404842689
+ 0.18307518138845619
+ 0.18308021885211734
+ 0.18308525643941545
+ 0.18309029415035477
+ 0.18309533198493896
+ 0.18310036994317266
+ 0.18310540802506109
+ 0.18311044623060782
+ 0.18311548455981716
+ 0.18312052301269369
+ 0.18312556158924259
+ 0.18313060028946665
+ 0.18313563911337141
+ 0.18314067806096107
+ 0.18314571713223982
+ 0.18315075632721192
+ 0.18315579564588191
+ 0.18316083508825409
+ 0.18316587465433307
+ 0.183170914344123
+ 0.18317595415762861
+ 0.183180994094854
+ 0.18318603415580348
+ 0.18319107434048115
+ 0.18319611464889218
+ 0.18320115508104032
+ 0.18320619563693011
+ 0.18321123631656586
+ 0.1832162771199527
+ 0.1832213180470938
+ 0.18322635909799434
+ 0.18323140027265855
+ 0.18323644157109059
+ 0.18324148299329457
+ 0.18324652453927581
+ 0.18325156620903829
+ 0.18325660800258595
+ 0.18326164991992372
+ 0.18326669196105588
+ 0.18327173412598669
+ 0.18327677641472029
+ 0.18328181882726133
+ 0.18328686136361402
+ 0.18329190402378345
+ 0.18329694680777295
+ 0.18330198971558759
+ 0.18330703274723165
+ 0.18331207590270923
+ 0.18331711918202509
+ 0.1833221625851838
+ 0.18332720611218872
+ 0.18333224976304535
+ 0.18333729353775749
+ 0.1833423374363298
+ 0.18334738145876647
+ 0.18335242560507173
+ 0.18335746987525059
+ 0.1833625142693065
+ 0.18336755878724495
+ 0.18337260342906969
+ 0.18337764819478489
+ 0.18338269308439528
+ 0.18338773809790548
+ 0.18339278323531927
+ 0.1833978284966413
+ 0.1834028738818762
+ 0.18340791939102821
+ 0.18341296502410157
+ 0.18341801078110084
+ 0.18342305666203035
+ 0.18342810266689469
+ 0.18343314879569764
+ 0.18343819504844425
+ 0.18344324142513835
+ 0.1834482879257851
+ 0.18345333455038818
+ 0.18345838129895223
+ 0.18346342817148151
+ 0.18346847516798065
+ 0.18347352228845393
+ 0.18347856953290592
+ 0.18348361690134046
+ 0.18348866439376216
+ 0.18349371201017617
+ 0.18349875975058583
+ 0.18350380761499613
+ 0.18350885560341099
+ 0.1835139037158354
+ 0.18351895195227369
+ 0.18352400031272947
+ 0.18352904879720802
+ 0.18353409740571344
+ 0.18353914613825001
+ 0.18354419499482236
+ 0.18354924397543429
+ 0.18355429308009083
+ 0.18355934230879634
+ 0.18356439166155486
+ 0.18356944113837079
+ 0.18357449073924911
+ 0.18357954046419364
+ 0.18358459031320865
+ 0.18358964028629915
+ 0.18359469038346896
+ 0.18359974060472276
+ 0.18360479095006521
+ 0.18360984141950007
+ 0.18361489201303202
+ 0.18361994273066573
+ 0.18362499357240497
+ 0.18363004453825485
+ 0.18363509562821959
+ 0.18364014684230343
+ 0.18364519818051009
+ 0.1836502496428456
+ 0.18365530122931251
+ 0.18366035293991667
+ 0.18366540477466187
+ 0.18367045673355248
+ 0.18367550881659303
+ 0.1836805610237878
+ 0.18368561335514097
+ 0.18369066581065774
+ 0.18369571839034177
+ 0.1837007710941978
+ 0.18370582392222964
+ 0.18371087687444279
+ 0.18371592995084066
+ 0.18372098315142782
+ 0.18372603647620905
+ 0.18373108992518847
+ 0.18373614349837081
+ 0.18374119719575985
+ 0.18374625101736072
+ 0.18375130496317713
+ 0.18375635903321388
+ 0.18376141322747555
+ 0.18376646754596593
+ 0.18377152198869015
+ 0.18377657655565197
+ 0.18378163124685615
+ 0.18378668606230683
+ 0.18379174100200918
+ 0.18379679606596647
+ 0.18380185125418344
+ 0.18380690656666521
+ 0.1838119620034151
+ 0.18381701756443869
+ 0.18382207324973932
+ 0.18382712905932205
+ 0.18383218499319076
+ 0.18383724105135049
+ 0.18384229723380513
+ 0.18384735354055928
+ 0.18385240997161761
+ 0.1838574665269839
+ 0.18386252320666291
+ 0.18386758001065925
+ 0.18387263693897718
+ 0.18387769399162088
+ 0.18388275116859515
+ 0.1838878084699036
+ 0.18389286589555151
+ 0.18389792344554309
+ 0.18390298111988249
+ 0.18390803891857399
+ 0.1839130968416228
+ 0.18391815488903257
+ 0.18392321306080761
+ 0.18392827135695305
+ 0.18393332977747223
+ 0.18393838832237067
+ 0.18394344699165227
+ 0.18394850578532163
+ 0.18395356470338253
+ 0.18395862374584016
+ 0.18396368291269868
+ 0.18396874220396245
+ 0.18397380161963606
+ 0.18397886115972328
+ 0.18398392082422885
+ 0.18398898061315785
+ 0.18399404052651328
+ 0.18399910056430105
+ 0.18400416072652503
+ 0.18400922101318898
+ 0.18401428142429804
+ 0.18401934195985689
+ 0.18402440261986885
+ 0.18402946340433912
+ 0.18403452431327233
+ 0.18403958534667189
+ 0.18404464650454286
+ 0.18404970778688998
+ 0.18405476919371747
+ 0.1840598307250291
+ 0.18406489238082963
+ 0.18406995416112412
+ 0.18407501606591639
+ 0.18408007809521026
+ 0.18408514024901129
+ 0.18409020252732328
+ 0.18409526493015094
+ 0.18410032745749805
+ 0.18410539010936977
+ 0.18411045288577024
+ 0.18411551578670388
+ 0.18412057881217478
+ 0.18412564196218814
+ 0.18413070523674732
+ 0.18413576863585746
+ 0.18414083215952323
+ 0.18414589580774807
+ 0.18415095958053693
+ 0.18415602347789467
+ 0.18416108749982502
+ 0.18416615164633227
+ 0.18417121591742194
+ 0.18417628031309702
+ 0.18418134483336304
+ 0.18418640947822379
+ 0.18419147424768406
+ 0.18419653914174797
+ 0.18420160416042028
+ 0.1842066693037048
+ 0.18421173457160664
+ 0.18421679996412965
+ 0.18422186548127892
+ 0.18422693112305785
+ 0.18423199688947203
+ 0.18423706278052474
+ 0.18424212879622168
+ 0.18424719493656613
+ 0.18425226120156285
+ 0.18425732759121644
+ 0.18426239410553125
+ 0.18426746074451147
+ 0.18427252750816184
+ 0.18427759439648658
+ 0.18428266140949048
+ 0.18428772854717718
+ 0.18429279580955196
+ 0.18429786319661853
+ 0.18430293070838172
+ 0.1843079983448461
+ 0.18431306610601558
+ 0.18431813399189523
+ 0.18432320200248886
+ 0.18432827013780076
+ 0.18433333839783606
+ 0.18433840678259911
+ 0.18434347529209352
+ 0.1843485439263246
+ 0.18435361268529613
+ 0.18435868156901319
+ 0.1843637505774797
+ 0.18436881971070029
+ 0.18437388896867873
+ 0.18437895835142068
+ 0.18438402785892954
+ 0.18438909749121038
+ 0.18439416724826707
+ 0.18439923713010431
+ 0.18440430713672673
+ 0.18440937726813822
+ 0.18441444752434391
+ 0.18441951790534764
+ 0.18442458841115406
+ 0.18442965904176742
+ 0.18443472979719203
+ 0.18443980067743307
+ 0.18444487168249429
+ 0.18444994281238
+ 0.18445501406709527
+ 0.1844600854466445
+ 0.18446515695103094
+ 0.18447022858026021
+ 0.18447530033433662
+ 0.18448037221326435
+ 0.18448544421704735
+ 0.18449051634569111
+ 0.18449558859919896
+ 0.1845006609775762
+ 0.18450573348082702
+ 0.18451080610895521
+ 0.18451587886196594
+ 0.18452095173986349
+ 0.18452602474265214
+ 0.18453109787033656
+ 0.18453617112292059
+ 0.1845412445004094
+ 0.18454631800280724
+ 0.18455139163011794
+ 0.18455646538234663
+ 0.18456153925949761
+ 0.18456661326157514
+ 0.18457168738858346
+ 0.1845767616405273
+ 0.18458183601741096
+ 0.18458691051923909
+ 0.18459198514601596
+ 0.18459705989774591
+ 0.18460213477443319
+ 0.18460720977608286
+ 0.18461228490269932
+ 0.18461736015428587
+ 0.18462243553084812
+ 0.18462751103239036
+ 0.18463258665891644
+ 0.18463766241043147
+ 0.18464273828693931
+ 0.18464781428844468
+ 0.18465289041495181
+ 0.18465796666646542
+ 0.18466304304298983
+ 0.18466811954452925
+ 0.18467319617108843
+ 0.18467827292267169
+ 0.18468334979928319
+ 0.1846884268009282
+ 0.18469350392761
+ 0.1846985811793343
+ 0.18470365855610446
+ 0.18470873605792515
+ 0.18471381368480111
+ 0.18471889143673617
+ 0.18472396931373594
+ 0.18472904731580339
+ 0.1847341254429441
+ 0.18473920369516231
+ 0.18474428207246194
+ 0.18474936057484759
+ 0.18475443920232412
+ 0.18475951795489526
+ 0.18476459683256616
+ 0.18476967583534076
+ 0.18477475496322415
+ 0.18477983421621971
+ 0.18478491359433313
+ 0.18478999309756769
+ 0.18479507272592816
+ 0.18480015247941975
+ 0.18480523235804577
+ 0.18481031236181142
+ 0.18481539249072104
+ 0.18482047274477842
+ 0.1848255531239891
+ 0.18483063362835656
+ 0.1848357142578855
+ 0.18484079501258058
+ 0.18484587589244625
+ 0.1848509568974866
+ 0.1848560380277065
+ 0.18486111928310967
+ 0.1848662006637018
+ 0.18487128216948578
+ 0.18487636380046732
+ 0.18488144555665068
+ 0.18488652743803957
+ 0.18489160944463884
+ 0.18489669157645322
+ 0.18490177383348649
+ 0.18490685621574382
+ 0.18491193872322953
+ 0.18491702135594745
+ 0.18492210411390284
+ 0.18492718699709931
+ 0.1849322700055418
+ 0.18493735313923451
+ 0.18494243639818223
+ 0.18494751978238963
+ 0.18495260329186008
+ 0.18495768692659878
+ 0.18496277068661054
+ 0.1849678545718991
+ 0.18497293858246877
+ 0.18497802271832478
+ 0.18498310697947132
+ 0.18498819136591232
+ 0.18499327587765246
+ 0.18499836051469656
+ 0.18500344527704876
+ 0.1850085301647135
+ 0.18501361517769535
+ 0.18501870031599876
+ 0.18502378557962793
+ 0.18502887096858761
+ 0.18503395648288165
+ 0.18503904212251562
+ 0.18504412788749253
+ 0.18504921377781808
+ 0.18505429979349641
+ 0.18505938593453145
+ 0.18506447220092792
+ 0.18506955859269053
+ 0.18507464510982366
+ 0.18507973175233147
+ 0.18508481852021841
+ 0.18508990541348905
+ 0.18509499243214819
+ 0.18510007957619973
+ 0.18510516684564834
+ 0.18511025424049835
+ 0.18511534176075448
+ 0.18512042940642104
+ 0.18512551717750234
+ 0.18513060507400306
+ 0.18513569309592753
+ 0.18514078124328004
+ 0.18514586951606579
+ 0.18515095791428815
+ 0.18515604643795189
+ 0.18516113508706172
+ 0.18516622386162243
+ 0.18517131276163787
+ 0.18517640178711225
+ 0.18518149093805084
+ 0.18518658021445789
+ 0.18519166961633726
+ 0.18519675914369371
+ 0.18520184879653204
+ 0.18520693857485643
+ 0.18521202847867166
+ 0.1852171185079812
+ 0.18522220866279013
+ 0.18522729894310327
+ 0.18523238934892491
+ 0.18523747988025938
+ 0.18524257053711046
+ 0.18524766131948384
+ 0.18525275222738333
+ 0.18525784326081282
+ 0.18526293441977795
+ 0.18526802570428208
+ 0.18527311711433045
+ 0.18527820864992731
+ 0.18528330031107706
+ 0.18528839209778389
+ 0.18529348401005261
+ 0.18529857604788755
+ 0.18530366821129288
+ 0.18530876050027395
+ 0.18531385291483404
+ 0.18531894545497848
+ 0.18532403812071147
+ 0.18532913091203729
+ 0.18533422382896081
+ 0.1853393168714858
+ 0.18534441003961702
+ 0.18534950333335964
+ 0.18535459675271673
+ 0.18535969029769428
+ 0.18536478396829523
+ 0.18536987776452529
+ 0.18537497168638833
+ 0.18538006573388865
+ 0.18538515990703139
+ 0.1853902542058205
+ 0.18539534863026019
+ 0.18540044318035573
+ 0.18540553785611047
+ 0.18541063265752969
+ 0.18541572758461805
+ 0.18542082263737905
+ 0.1854259178158183
+ 0.18543101311993918
+ 0.18543610854974654
+ 0.18544120410524548
+ 0.18544629978643939
+ 0.18545139559333362
+ 0.18545649152593194
+ 0.18546158758423953
+ 0.18546668376826031
+ 0.18547178007799858
+ 0.18547687651345945
+ 0.18548197307464692
+ 0.1854870697615657
+ 0.18549216657422007
+ 0.18549726351261434
+ 0.18550236057675332
+ 0.18550745776664124
+ 0.1855125550822829
+ 0.18551765252368269
+ 0.18552275009084432
+ 0.1855278477837731
+ 0.1855329456024733
+ 0.18553804354694931
+ 0.18554314161720531
+ 0.1855482398132462
+ 0.18555333813507663
+ 0.18555843658270052
+ 0.1855635351561222
+ 0.18556863385534683
+ 0.1855737326803783
+ 0.1855788316312218
+ 0.18558393070788082
+ 0.18558902991036003
+ 0.1855941292386647
+ 0.18559922869279863
+ 0.18560432827276621
+ 0.18560942797857222
+ 0.18561452781022131
+ 0.18561962776771701
+ 0.1856247278510649
+ 0.18562982806026898
+ 0.18563492839533341
+ 0.18564002885626349
+ 0.18564512944306255
+ 0.18565023015573598
+ 0.18565533099428791
+ 0.18566043195872281
+ 0.18566553304904487
+ 0.18567063426525943
+ 0.18567573560737022
+ 0.18568083707538119
+ 0.18568593866929803
+ 0.18569104038912457
+ 0.18569614223486561
+ 0.1857012442065254
+ 0.18570634630410834
+ 0.18571144852761867
+ 0.18571655087706129
+ 0.18572165335244037
+ 0.18572675595376076
+ 0.18573185868102676
+ 0.18573696153424271
+ 0.18574206451341296
+ 0.18574716761854268
+ 0.18575227084963525
+ 0.18575737420669597
+ 0.18576247768972914
+ 0.1857675812987391
+ 0.18577268503373059
+ 0.18577778889470747
+ 0.18578289288167502
+ 0.18578799699463705
+ 0.18579310123359841
+ 0.18579820559856339
+ 0.18580331008953624
+ 0.18580841470652226
+ 0.18581351944952537
+ 0.18581862431854931
+ 0.18582372931359992
+ 0.18582883443468093
+ 0.18583393968179721
+ 0.18583904505495255
+ 0.18584415055415229
+ 0.18584925617940024
+ 0.18585436193070068
+ 0.1858594678080594
+ 0.18586457381147928
+ 0.18586967994096554
+ 0.18587478619652259
+ 0.18587989257815521
+ 0.18588499908586717
+ 0.18589010571966375
+ 0.1858952124795489
+ 0.18590031936552687
+ 0.18590542637760291
+ 0.18591053351578088
+ 0.18591564078006556
+ 0.18592074817046184
+ 0.18592585568697295
+ 0.18593096332960435
+ 0.18593607109836016
+ 0.18594117899324525
+ 0.18594628701426349
+ 0.18595139516141976
+ 0.1859565034347187
+ 0.18596161183416424
+ 0.18596672035976117
+ 0.18597182901151427
+ 0.18597693778942739
+ 0.18598204669350588
+ 0.18598715572375307
+ 0.18599226488017462
+ 0.18599737416277404
+ 0.18600248357155599
+ 0.18600759310652545
+ 0.18601270276768658
+ 0.18601781255504385
+ 0.18602292246860241
+ 0.18602803250836525
+ 0.18603314267433801
+ 0.18603825296652515
+ 0.18604336338493049
+ 0.18604847392955925
+ 0.18605358460041532
+ 0.1860586953975035
+ 0.18606380632082814
+ 0.18606891737039399
+ 0.18607402854620539
+ 0.18607913984826627
+ 0.18608425127658187
+ 0.18608936283115646
+ 0.18609447451199446
+ 0.18609958631910056
+ 0.18610469825247877
+ 0.18610981031213378
+ 0.18611492249807041
+ 0.18612003481029302
+ 0.18612514724880544
+ 0.186130259813613
+ 0.18613537250471998
+ 0.18614048532213032
+ 0.18614559826584914
+ 0.18615071133588093
+ 0.18615582453222945
+ 0.18616093785490009
+ 0.18616605130389707
+ 0.18617116487922433
+ 0.18617627858088709
+ 0.18618139240888926
+ 0.18618650636323564
+ 0.18619162044393101
+ 0.18619673465097925
+ 0.18620184898438472
+ 0.18620696344415311
+ 0.18621207803028744
+ 0.18621719274279286
+ 0.1862223075816743
+ 0.18622742254693558
+ 0.18623253763858147
+ 0.18623765285661589
+ 0.1862427682010446
+ 0.18624788367187051
+ 0.18625299926909974
+ 0.18625811499273545
+ 0.18626323084278268
+ 0.18626834681924592
+ 0.18627346292212943
+ 0.18627857915143856
+ 0.18628369550717666
+ 0.18628881198934849
+ 0.18629392859795899
+ 0.18629904533301198
+ 0.18630416219451321
+ 0.18630927918246556
+ 0.1863143962968748
+ 0.18631951353774442
+ 0.18632463090507964
+ 0.18632974839888478
+ 0.18633486601916419
+ 0.18633998376592267
+ 0.18634510163916418
+ 0.18635021963889398
+ 0.18635533776511581
+ 0.18636045601783424
+ 0.18636557439705431
+ 0.18637069290278013
+ 0.18637581153501587
+ 0.18638093029376684
+ 0.18638604917903701
+ 0.18639116819083065
+ 0.18639628732915306
+ 0.18640140659400772
+ 0.18640652598539975
+ 0.18641164550333367
+ 0.18641676514781372
+ 0.18642188491884476
+ 0.18642700481643115
+ 0.1864321248405767
+ 0.18643724499128678
+ 0.18644236526856567
+ 0.18644748567241778
+ 0.18645260620284743
+ 0.18645772685985945
+ 0.18646284764345816
+ 0.18646796855364794
+ 0.18647308959043357
+ 0.18647821075381948
+ 0.18648333204380999
+ 0.18648845346040938
+ 0.18649357500362299
+ 0.18649869667345428
+ 0.18650381846990891
+ 0.18650894039299037
+ 0.18651406244270349
+ 0.18651918461905304
+ 0.18652430692204294
+ 0.18652942935167799
+ 0.186534551907963
+ 0.18653967459090187
+ 0.18654479740049995
+ 0.18654992033676099
+ 0.18655504339968945
+ 0.18656016658929017
+ 0.18656528990556795
+ 0.18657041334852659
+ 0.186575536918171
+ 0.18658066061450557
+ 0.18658578443753457
+ 0.18659090838726333
+ 0.18659603246369527
+ 0.18660115666683569
+ 0.18660628099668847
+ 0.18661140545325886
+ 0.18661653003655079
+ 0.18662165474656917
+ 0.18662677958331775
+ 0.1866319045468019
+ 0.1866370296370255
+ 0.18664215485399333
+ 0.18664728019770987
+ 0.18665240566818025
+ 0.18665753126540757
+ 0.18666265698939752
+ 0.18666778284015398
+ 0.18667290881768184
+ 0.18667803492198543
+ 0.1866831611530691
+ 0.18668828751093766
+ 0.1866934139955955
+ 0.18669854060704702
+ 0.18670366734529698
+ 0.18670879421034928
+ 0.18671392120220928
+ 0.18671904832088126
+ 0.18672417556636922
+ 0.18672930293867787
+ 0.18673443043781165
+ 0.18673955806377587
+ 0.18674468581657397
+ 0.18674981369621113
+ 0.18675494170269133
+ 0.18676006983601945
+ 0.18676519809619976
+ 0.18677032648323716
+ 0.18677545499713599
+ 0.18678058363790059
+ 0.18678571240553585
+ 0.18679084130004514
+ 0.18679597032143477
+ 0.18680109946970766
+ 0.18680622874486955
+ 0.18681135814692393
+ 0.18681648767587561
+ 0.18682161733172986
+ 0.18682674711449021
+ 0.1868318770241614
+ 0.18683700706074827
+ 0.18684213722425475
+ 0.18684726751468617
+ 0.18685239793204642
+ 0.1868575284763398
+ 0.18686265914757169
+ 0.18686778994574596
+ 0.18687292087086751
+ 0.1868780519229401
+ 0.18688318310196922
+ 0.18688831440795911
+ 0.18689344584091369
+ 0.18689857740083785
+ 0.18690370908773637
+ 0.18690884090161319
+ 0.18691397284247366
+ 0.18691910491032113
+ 0.18692423710516143
+ 0.18692936942699795
+ 0.18693450187583605
+ 0.18693963445167958
+ 0.18694476715453343
+ 0.18694989998440201
+ 0.18695503294129007
+ 0.18696016602520152
+ 0.1869652992361413
+ 0.18697043257411416
+ 0.18697556603912407
+ 0.18698069963117636
+ 0.18698583335027433
+ 0.18699096719642339
+ 0.18699610116962792
+ 0.18700123526989235
+ 0.18700636949722091
+ 0.18701150385161902
+ 0.1870166383330901
+ 0.18702177294163899
+ 0.18702690767727057
+ 0.18703204253998909
+ 0.18703717752979909
+ 0.18704231264670579
+ 0.1870474478907122
+ 0.18705258326182414
+ 0.1870577187600454
+ 0.18706285438538092
+ 0.18706799013783512
+ 0.18707312601741222
+ 0.18707826202411726
+ 0.18708339815795449
+ 0.18708853441892828
+ 0.18709367080704312
+ 0.18709880732230377
+ 0.18710394396471514
+ 0.18710908073428062
+ 0.187114217631006
+ 0.18711935465489479
+ 0.18712449180595223
+ 0.18712962908418224
+ 0.18713476648958977
+ 0.18713990402217906
+ 0.18714504168195506
+ 0.18715017946892218
+ 0.18715531738308422
+ 0.18716045542444656
+ 0.1871655935930131
+ 0.18717073188878924
+ 0.18717587031177829
+ 0.18718100886198569
+ 0.18718614753941576
+ 0.18719128634407342
+ 0.18719642527596203
+ 0.187201564335087
+ 0.18720670352145263
+ 0.18721184283506384
+ 0.18721698227592448
+ 0.1872221218440395
+ 0.18722726153941327
+ 0.1872324013620501
+ 0.18723754131195533
+ 0.1872426813891325
+ 0.18724782159358686
+ 0.18725296192532229
+ 0.18725810238434373
+ 0.18726324297065605
+ 0.1872683836842631
+ 0.18727352452516979
+ 0.18727866549337999
+ 0.18728380658889951
+ 0.18728894781173183
+ 0.18729408916188137
+ 0.18729923063935386
+ 0.18730437224415231
+ 0.18730951397628245
+ 0.18731465583574833
+ 0.18731979782255423
+ 0.18732493993670463
+ 0.18733008217820529
+ 0.18733522454705875
+ 0.1873403670432712
+ 0.18734550966684665
+ 0.18735065241778942
+ 0.18735579529610399
+ 0.18736093830179512
+ 0.18736608143486735
+ 0.18737122469532488
+ 0.18737636808317273
+ 0.18738151159841526
+ 0.1873866552410568
+ 0.18739179901110223
+ 0.18739694290855557
+ 0.18740208693342159
+ 0.18740723108570517
+ 0.18741237536541075
+ 0.1874175197725422
+ 0.18742266430710444
+ 0.18742780896910227
+ 0.18743295375854013
+ 0.18743809867542241
+ 0.18744324371975354
+ 0.18744838889153834
+ 0.1874535341907812
+ 0.18745867961748658
+ 0.18746382517165927
+ 0.18746897085330322
+ 0.18747411666242383
+ 0.1874792625990245
+ 0.18748440866311103
+ 0.18748955485468732
+ 0.18749470117375747
+ 0.18749984762032712
+ 0.18750499419439975
+ 0.18751014089598073
+ 0.18751528772507356
+ 0.18752043468168356
+ 0.18752558176581555
+ 0.187530728977473
+ 0.18753587631666127
+ 0.1875410237833848
+ 0.18754617137764798
+ 0.18755131909945519
+ 0.18755646694881126
+ 0.18756161492572063
+ 0.18756676303018777
+ 0.18757191126221742
+ 0.18757705962181409
+ 0.18758220810898169
+ 0.18758735672372553
+ 0.18759250546605008
+ 0.18759765433595921
+ 0.18760280333345827
+ 0.18760795245855122
+ 0.18761310171124343
+ 0.18761825109153829
+ 0.18762340059944121
+ 0.18762855023495606
+ 0.18763369999808782
+ 0.1876388498888408
+ 0.18764399990721994
+ 0.1876491500532296
+ 0.18765430032687372
+ 0.18765945072815818
+ 0.18766460125708595
+ 0.18766975191366275
+ 0.18767490269789264
+ 0.18768005360977999
+ 0.18768520464932967
+ 0.18769035581654608
+ 0.18769550711143368
+ 0.18770065853399781
+ 0.18770581008424134
+ 0.18771096176217075
+ 0.18771611356778892
+ 0.18772126550110127
+ 0.18772641756211214
+ 0.18773156975082642
+ 0.18773672206724815
+ 0.18774187451138205
+ 0.18774702708323268
+ 0.18775217978280437
+ 0.18775733261010202
+ 0.18776248556513006
+ 0.18776763864789339
+ 0.18777279185839538
+ 0.18777794519664198
+ 0.18778309866263704
+ 0.18778825225638504
+ 0.18779340597789079
+ 0.18779855982715835
+ 0.18780371380419295
+ 0.18780886790899909
+ 0.18781402214158019
+ 0.1878191765019426
+ 0.1878243309900893
+ 0.18782948560602561
+ 0.18783464034975597
+ 0.18783979522128483
+ 0.18784495022061654
+ 0.18785010534775654
+ 0.18785526060270821
+ 0.18786041598547654
+ 0.18786557149606636
+ 0.18787072713448205
+ 0.18787588290072815
+ 0.18788103879480894
+ 0.18788619481672938
+ 0.18789135096649387
+ 0.18789650724410684
+ 0.18790166364957273
+ 0.18790682018289634
+ 0.1879119768440827
+ 0.1879171336331352
+ 0.18792229055005916
+ 0.18792744759485916
+ 0.1879326047675399
+ 0.18793776206810495
+ 0.1879429194965597
+ 0.1879480770529085
+ 0.18795323473715631
+ 0.18795839254930657
+ 0.18796355048936514
+ 0.18796870855733597
+ 0.18797386675322342
+ 0.18797902507703246
+ 0.187984183528767
+ 0.18798934210843246
+ 0.18799450081603269
+ 0.18799965965157225
+ 0.18800481861505638
+ 0.18800997770648908
+ 0.18801513692587526
+ 0.18802029627321892
+ 0.18802545574852528
+ 0.18803061535179802
+ 0.18803577508304273
+ 0.18804093494226318
+ 0.1880460949294645
+ 0.18805125504465078
+ 0.18805641528782635
+ 0.18806157565899623
+ 0.18806673615816519
+ 0.18807189678533778
+ 0.18807705754051787
+ 0.1880822184237104
+ 0.18808737943491974
+ 0.18809254057415081
+ 0.18809770184140812
+ 0.18810286323669601
+ 0.18810802476001939
+ 0.18811318641138222
+ 0.18811834819078946
+ 0.18812351009824596
+ 0.1881286721337557
+ 0.18813383429732353
+ 0.18813899658895389
+ 0.18814415900865128
+ 0.18814932155642008
+ 0.18815448423226569
+ 0.18815964703619195
+ 0.18816480996820348
+ 0.18816997302830513
+ 0.18817513621650078
+ 0.18818029953279583
+ 0.18818546297719424
+ 0.18819062654970145
+ 0.1881957902503209
+ 0.18820095407905751
+ 0.18820611803591619
+ 0.18821128212090132
+ 0.18821644633401741
+ 0.1882216106752688
+ 0.18822677514466052
+ 0.1882319397421969
+ 0.18823710446788242
+ 0.18824226932172156
+ 0.1882474343037196
+ 0.18825259941388006
+ 0.18825776465220792
+ 0.18826293001870797
+ 0.18826809551338428
+ 0.18827326113624218
+ 0.18827842688728569
+ 0.18828359276651913
+ 0.18828875877394755
+ 0.18829392490957572
+ 0.18829909117340771
+ 0.18830425756544797
+ 0.18830942408570178
+ 0.18831459073417267
+ 0.18831975751086613
+ 0.18832492441578644
+ 0.1883300914489377
+ 0.18833525861032518
+ 0.1883404258999534
+ 0.1883455933178263
+ 0.18835076086394878
+ 0.18835592853832528
+ 0.18836109634096079
+ 0.18836626427185965
+ 0.1883714323310263
+ 0.1883766005184653
+ 0.18838176883418192
+ 0.18838693727817923
+ 0.18839210585046309
+ 0.18839727455103741
+ 0.18840244337990725
+ 0.1884076123370769
+ 0.18841278142255088
+ 0.18841795063633404
+ 0.18842311997843048
+ 0.18842828944884549
+ 0.18843345904758302
+ 0.18843862877464757
+ 0.18844379863004404
+ 0.18844896861377691
+ 0.18845413872585057
+ 0.18845930896626997
+ 0.18846447933503951
+ 0.18846964983216324
+ 0.18847482045764696
+ 0.18847999121149378
+ 0.18848516209370941
+ 0.18849033310429755
+ 0.18849550424326386
+ 0.18850067551061206
+ 0.18850584690634642
+ 0.18851101843047283
+ 0.18851619008299444
+ 0.18852136186391649
+ 0.18852653377324355
+ 0.18853170581098044
+ 0.18853687797713126
+ 0.18854205027170035
+ 0.18854722269469315
+ 0.18855239524611361
+ 0.18855756792596667
+ 0.18856274073425633
+ 0.18856791367098755
+ 0.18857308673616513
+ 0.1885782599297931
+ 0.18858343325187646
+ 0.18858860670241956
+ 0.18859378028142737
+ 0.18859895398890392
+ 0.18860412782485403
+ 0.18860930178928217
+ 0.18861447588219338
+ 0.18861965010359152
+ 0.18862482445348155
+ 0.18862999893186841
+ 0.18863517353875561
+ 0.18864034827414902
+ 0.18864552313805211
+ 0.18865069813047031
+ 0.18865587325140762
+ 0.18866104850086848
+ 0.18866622387885831
+ 0.18867139938538102
+ 0.18867657502044116
+ 0.18868175078404406
+ 0.18868692667619333
+ 0.18869210269689379
+ 0.18869727884615034
+ 0.18870245512396761
+ 0.18870763153034989
+ 0.18871280806530175
+ 0.18871798472882806
+ 0.1887231615209328
+ 0.18872833844162093
+ 0.18873351549089734
+ 0.18873869266876653
+ 0.18874386997523249
+ 0.18874904741030016
+ 0.18875422497397445
+ 0.18875940266625926
+ 0.18876458048715972
+ 0.18876975843668015
+ 0.18877493651482546
+ 0.18878011472159972
+ 0.18878529305700786
+ 0.1887904715210543
+ 0.18879565011374355
+ 0.18880082883508092
+ 0.18880600768507003
+ 0.1888111866637158
+ 0.18881636577102265
+ 0.18882154500699597
+ 0.18882672437163939
+ 0.18883190386495768
+ 0.18883708348695594
+ 0.18884226323763809
+ 0.18884744311700902
+ 0.18885262312507375
+ 0.18885780326183577
+ 0.18886298352730094
+ 0.18886816392147279
+ 0.18887334444435674
+ 0.18887852509595679
+ 0.18888370587627781
+ 0.18888888678532395
+ 0.18889406782310042
+ 0.18889924898961141
+ 0.18890443028486173
+ 0.18890961170885587
+ 0.1889147932615983
+ 0.18891997494309401
+ 0.18892515675334692
+ 0.18893033869236203
+ 0.18893552076014425
+ 0.1889407029566971
+ 0.18894588528202649
+ 0.18895106773613643
+ 0.18895625031903088
+ 0.18896143303071572
+ 0.18896661587119445
+ 0.18897179884047163
+ 0.18897698193855314
+ 0.18898216516544195
+ 0.18898734852114357
+ 0.18899253200566235
+ 0.18899771561900286
+ 0.18900289936117048
+ 0.18900808323216833
+ 0.18901326723200171
+ 0.18901845136067563
+ 0.18902363561819413
+ 0.18902882000456209
+ 0.18903400451978403
+ 0.18903918916386436
+ 0.18904437393680756
+ 0.18904955883861915
+ 0.18905474386930213
+ 0.18905992902886279
+ 0.18906511431730427
+ 0.18907029973463246
+ 0.18907548528085083
+ 0.1890806709559649
+ 0.1890858567599781
+ 0.18909104269289642
+ 0.18909622875472376
+ 0.18910141494546465
+ 0.18910660126512313
+ 0.18911178771370502
+ 0.18911697429121435
+ 0.18912216099765564
+ 0.18912734783303334
+ 0.1891325347973524
+ 0.18913772189061726
+ 0.18914290911283241
+ 0.18914809646400238
+ 0.18915328394413211
+ 0.18915847155322604
+ 0.18916365929128873
+ 0.18916884715832499
+ 0.18917403515433895
+ 0.18917922327933503
+ 0.18918441153331872
+ 0.18918959991629439
+ 0.18919478842826615
+ 0.1891999770692385
+ 0.1892051658392167
+ 0.18921035473820497
+ 0.18921554376620814
+ 0.18922073292323072
+ 0.18922592220927673
+ 0.18923111162435152
+ 0.18923630116845969
+ 0.18924149084160521
+ 0.18924668064379349
+ 0.1892518705750281
+ 0.18925706063531486
+ 0.18926225082465742
+ 0.18926744114306066
+ 0.18927263159052912
+ 0.18927782216706768
+ 0.18928301287268043
+ 0.18928820370737276
+ 0.1892933946711487
+ 0.18929858576401268
+ 0.18930377698596929
+ 0.1893089683370239
+ 0.18931415981718053
+ 0.18931935142644415
+ 0.18932454316481878
+ 0.18932973503230932
+ 0.18933492702892032
+ 0.18934011915465671
+ 0.18934531140952299
+ 0.18935050379352319
+ 0.18935569630666227
+ 0.18936088894894518
+ 0.18936608172037592
+ 0.18937127462095993
+ 0.18937646765070085
+ 0.18938166080960392
+ 0.18938685409767336
+ 0.18939204751491398
+ 0.18939724106133035
+ 0.18940243473692694
+ 0.1894076285417087
+ 0.1894128224756802
+ 0.1894180165388458
+ 0.1894232107312101
+ 0.18942840505277753
+ 0.18943359950355312
+ 0.18943879408354175
+ 0.18944398879274707
+ 0.18944918363117441
+ 0.18945437859882786
+ 0.18945957369571287
+ 0.18946476892183337
+ 0.18946996427719395
+ 0.18947515976179949
+ 0.18948035537565414
+ 0.18948555111876325
+ 0.18949074699113086
+ 0.1894959429927619
+ 0.18950113912366046
+ 0.18950633538383196
+ 0.18951153177327992
+ 0.18951672829201024
+ 0.18952192494002654
+ 0.18952712171733421
+ 0.18953231862393688
+ 0.18953751565983992
+ 0.18954271282504778
+ 0.18954791011956512
+ 0.18955310754339577
+ 0.18955830509654575
+ 0.18956350277901865
+ 0.1895687005908194
+ 0.18957389853195245
+ 0.18957909660242289
+ 0.18958429480223413
+ 0.18958949313139264
+ 0.18959469158990153
+ 0.18959989017776568
+ 0.18960508889499017
+ 0.18961028774157948
+ 0.18961548671753803
+ 0.18962068582287037
+ 0.18962588505758107
+ 0.18963108442167501
+ 0.18963628391515713
+ 0.18964148353803112
+ 0.18964668329030235
+ 0.18965188317197534
+ 0.18965708318305458
+ 0.18966228332354415
+ 0.18966748359344937
+ 0.18967268399277487
+ 0.18967788452152465
+ 0.1896830851797042
+ 0.18968828596731746
+ 0.18969348688436943
+ 0.18969868793086422
+ 0.18970388910680672
+ 0.18970909041220146
+ 0.18971429184705338
+ 0.18971949341136712
+ 0.18972469510514661
+ 0.18972989692839778
+ 0.18973509888112375
+ 0.18974030096332944
+ 0.18974550317502037
+ 0.18975070551620055
+ 0.18975590798687444
+ 0.18976111058704714
+ 0.18976631331672256
+ 0.18977151617590621
+ 0.18977671916460215
+ 0.1897819222828149
+ 0.1897871255305493
+ 0.18979232890781003
+ 0.18979753241460154
+ 0.18980273605092882
+ 0.18980793981679589
+ 0.1898131437122077
+ 0.18981834773716882
+ 0.18982355189168421
+ 0.18982875617575798
+ 0.18983396058939495
+ 0.1898391651325998
+ 0.18984436980537692
+ 0.18984957460773091
+ 0.18985477953966717
+ 0.1898599846011893
+ 0.18986518979230271
+ 0.18987039511301154
+ 0.1898756005633202
+ 0.18988080614323424
+ 0.18988601185275714
+ 0.1898912176918944
+ 0.18989642366065007
+ 0.18990162975902913
+ 0.18990683598703656
+ 0.18991204234467599
+ 0.18991724883195274
+ 0.18992245544887101
+ 0.18992766219543619
+ 0.18993286907165188
+ 0.18993807607752344
+ 0.18994328321305551
+ 0.1899484904782521
+ 0.18995369787311864
+ 0.18995890539765875
+ 0.18996411305187835
+ 0.18996932083578047
+ 0.18997452874937118
+ 0.18997973679265442
+ 0.18998494496563523
+ 0.18999015326831761
+ 0.18999536170070658
+ 0.1900005702628067
+ 0.19000577895462295
+ 0.1900109877761593
+ 0.19001619672742034
+ 0.19002140580841151
+ 0.1900266150191369
+ 0.19003182435960142
+ 0.19003703382980924
+ 0.19004224342976528
+ 0.19004745315947402
+ 0.19005266301894005
+ 0.19005787300816837
+ 0.19006308312716347
+ 0.1900682933759299
+ 0.19007350375447213
+ 0.19007871426279468
+ 0.1900839249009027
+ 0.19008913566880054
+ 0.19009434656649321
+ 0.19009955759398439
+ 0.19010476875127993
+ 0.1901099800383835
+ 0.19011519145530004
+ 0.19012040300203409
+ 0.19012561467859057
+ 0.19013082648497415
+ 0.19013603842118876
+ 0.19014125048723995
+ 0.19014646268313176
+ 0.19015167500886868
+ 0.19015688746445619
+ 0.19016210004989789
+ 0.19016731276519933
+ 0.19017252561036438
+ 0.19017773858539821
+ 0.19018295169030527
+ 0.19018816492509011
+ 0.19019337828975724
+ 0.19019859178431167
+ 0.19020380540875798
+ 0.1902090191631006
+ 0.19021423304734414
+ 0.19021944706149307
+ 0.19022466120555298
+ 0.19022987547952733
+ 0.19023508988342117
+ 0.19024030441723955
+ 0.19024551908098641
+ 0.19025073387466684
+ 0.19025594879828545
+ 0.19026116385184658
+ 0.1902663790353554
+ 0.19027159434881638
+ 0.19027680979223352
+ 0.19028202536561242
+ 0.19028724106895659
+ 0.19029245690227198
+ 0.19029767286556223
+ 0.19030288895883227
+ 0.19030810518208721
+ 0.19031332153533057
+ 0.19031853801856832
+ 0.19032375463180404
+ 0.19032897137504318
+ 0.19033418824828988
+ 0.1903394052515486
+ 0.19034462238482441
+ 0.19034983964812185
+ 0.19035505704144542
+ 0.19036027456480009
+ 0.19036549221818999
+ 0.19037071000162062
+ 0.19037592791509553
+ 0.19038114595861974
+ 0.19038636413219823
+ 0.19039158243583565
+ 0.19039680086953589
+ 0.19040201943330456
+ 0.19040723812714569
+ 0.19041245695106387
+ 0.1904176759050645
+ 0.19042289498915124
+ 0.19042811420332956
+ 0.19043333354760347
+ 0.19043855302197807
+ 0.1904437726264574
+ 0.19044899236104693
+ 0.19045421222575071
+ 0.19045943222057379
+ 0.19046465234552026
+ 0.19046987260059509
+ 0.19047509298580334
+ 0.19048031350114855
+ 0.19048553414663624
+ 0.19049075492227147
+ 0.19049597582805775
+ 0.19050119686400063
+ 0.19050641803010368
+ 0.19051163932637286
+ 0.19051686075281177
+ 0.19052208230942597
+ 0.19052730399621945
+ 0.19053252581319671
+ 0.19053774776036292
+ 0.19054296983772304
+ 0.19054819204528056
+ 0.19055341438304066
+ 0.19055863685100874
+ 0.19056385944918799
+ 0.19056908217758475
+ 0.19057430503620221
+ 0.19057952802504585
+ 0.19058475114411977
+ 0.19058997439342901
+ 0.19059519777297854
+ 0.19060042128277194
+ 0.19060564492281523
+ 0.19061086869311156
+ 0.19061609259366685
+ 0.1906213166244852
+ 0.19062654078557159
+ 0.19063176507693019
+ 0.19063698949856545
+ 0.19064221405048293
+ 0.19064743873268666
+ 0.19065266354518123
+ 0.19065788848797166
+ 0.190663113561062
+ 0.19066833876445785
+ 0.19067356409816316
+ 0.19067878956218295
+ 0.19068401515652142
+ 0.1906892408811835
+ 0.1906944667361738
+ 0.19069969272149728
+ 0.19070491883715809
+ 0.19071014508316117
+ 0.19071537145951073
+ 0.19072059796621216
+ 0.19072582460326959
+ 0.19073105137068805
+ 0.19073627826847209
+ 0.19074150529662579
+ 0.19074673245515461
+ 0.1907519597440627
+ 0.19075718716335455
+ 0.19076241471303576
+ 0.19076764239311034
+ 0.1907728702035828
+ 0.19077809814445779
+ 0.19078332621574029
+ 0.19078855441743492
+ 0.19079378274954573
+ 0.19079901121207862
+ 0.1908042398050368
+ 0.19080946852842628
+ 0.19081469738225065
+ 0.19081992636651493
+ 0.19082515548122414
+ 0.19083038472638233
+ 0.19083561410199462
+ 0.19084084360806558
+ 0.19084607324459968
+ 0.1908513030116015
+ 0.19085653290907659
+ 0.19086176293702806
+ 0.19086699309546193
+ 0.19087222338438228
+ 0.19087745380379362
+ 0.19088268435370098
+ 0.19088791503410854
+ 0.19089314584502173
+ 0.19089837678644472
+ 0.19090360785838195
+ 0.19090883906083855
+ 0.19091407039381908
+ 0.19091930185732758
+ 0.19092453345137014
+ 0.19092976517594976
+ 0.190934997031072
+ 0.19094022901674151
+ 0.19094546113296276
+ 0.19095069337974038
+ 0.19095592575707934
+ 0.19096115826498375
+ 0.19096639090345871
+ 0.19097162367250919
+ 0.19097685657213889
+ 0.19098208960235366
+ 0.19098732276315675
+ 0.19099255605455423
+ 0.19099778947655
+ 0.19100302302914871
+ 0.191008256712355
+ 0.19101349052617381
+ 0.19101872447061025
+ 0.19102395854566787
+ 0.19102919275135227
+ 0.19103442708766752
+ 0.19103966155461863
+ 0.19104489615221015
+ 0.19105013088044631
+ 0.19105536573933246
+ 0.19106060072887326
+ 0.19106583584907333
+ 0.19107107109993662
+ 0.19107630648146881
+ 0.19108154199367386
+ 0.19108677763655643
+ 0.1910920134101215
+ 0.19109724931437372
+ 0.19110248534931809
+ 0.19110772151495825
+ 0.19111295781129972
+ 0.19111819423834708
+ 0.19112343079610483
+ 0.19112866748457769
+ 0.19113390430377006
+ 0.19113914125368714
+ 0.19114437833433343
+ 0.19114961554571303
+ 0.19115485288783152
+ 0.1911600903606929
+ 0.1911653279643023
+ 0.19117056569866378
+ 0.19117580356378244
+ 0.19118104155966328
+ 0.1911862796863105
+ 0.19119151794372852
+ 0.19119675633192248
+ 0.19120199485089692
+ 0.19120723350065646
+ 0.19121247228120619
+ 0.1912177111925501
+ 0.19122295023469288
+ 0.19122818940763997
+ 0.19123342871139554
+ 0.19123866814596413
+ 0.1912439077113508
+ 0.19124914740755966
+ 0.19125438723459623
+ 0.19125962719246417
+ 0.19126486728116898
+ 0.19127010750071477
+ 0.19127534785110661
+ 0.19128058833234909
+ 0.19128582894444721
+ 0.19129106968740467
+ 0.19129631056122651
+ 0.19130155156591819
+ 0.19130679270148349
+ 0.19131203396792779
+ 0.19131727536525522
+ 0.19132251689347049
+ 0.19132775855257853
+ 0.19133300034258396
+ 0.19133824226349136
+ 0.1913434843153054
+ 0.19134872649803097
+ 0.19135396881167283
+ 0.19135921125623498
+ 0.19136445383172246
+ 0.19136969653814045
+ 0.19137493937549291
+ 0.19138018234378454
+ 0.19138542544302087
+ 0.19139066867320548
+ 0.19139591203434392
+ 0.19140115552644035
+ 0.19140639914949981
+ 0.1914116429035263
+ 0.19141688678852559
+ 0.1914221308045016
+ 0.19142737495145892
+ 0.19143261922940227
+ 0.19143786363833712
+ 0.19144310817826707
+ 0.19144835284919767
+ 0.19145359765113312
+ 0.19145884258407792
+ 0.19146408764803713
+ 0.19146933284301587
+ 0.19147457816901778
+ 0.1914798236260484
+ 0.19148506921411176
+ 0.191490314933213
+ 0.19149556078335678
+ 0.191500806764547
+ 0.19150605287678996
+ 0.1915112991200886
+ 0.19151654549444855
+ 0.1915217919998749
+ 0.19152703863637124
+ 0.19153228540394265
+ 0.19153753230259421
+ 0.1915427793323306
+ 0.19154802649315575
+ 0.19155327378507489
+ 0.191558521208093
+ 0.19156376876221426
+ 0.1915690164474432
+ 0.19157426426378543
+ 0.19157951221124458
+ 0.19158476028982568
+ 0.19159000849953386
+ 0.19159525684037371
+ 0.19160050531234926
+ 0.19160575391546569
+ 0.19161100264972752
+ 0.19161625151513942
+ 0.19162150051170643
+ 0.19162674963943269
+ 0.19163199889832364
+ 0.19163724828838311
+ 0.19164249780961645
+ 0.19164774746202798
+ 0.19165299724562265
+ 0.19165824716040461
+ 0.19166349720637937
+ 0.19166874738355114
+ 0.19167399769192453
+ 0.1916792481315045
+ 0.19168449870229526
+ 0.19168974940430183
+ 0.19169500023752939
+ 0.19170025120198192
+ 0.19170550229766417
+ 0.19171075352458111
+ 0.19171600488273735
+ 0.19172125637213758
+ 0.19172650799278634
+ 0.19173175974468867
+ 0.19173701162784923
+ 0.19174226364227168
+ 0.19174751578796245
+ 0.19175276806492481
+ 0.19175802047316429
+ 0.19176327301268498
+ 0.19176852568349195
+ 0.19177377848558988
+ 0.19177903141898378
+ 0.19178428448367735
+ 0.19178953767967608
+ 0.19179479100698468
+ 0.19180004446560725
+ 0.19180529805554927
+ 0.19181055177681444
+ 0.19181580562940836
+ 0.19182105961333601
+ 0.19182631372860073
+ 0.19183156797520837
+ 0.19183682235316327
+ 0.19184207686246985
+ 0.1918473315031328
+ 0.19185258627515761
+ 0.19185784117854807
+ 0.19186309621330969
+ 0.19186835137944605
+ 0.19187360667696279
+ 0.19187886210586447
+ 0.19188411766615576
+ 0.19188937335784123
+ 0.19189462918092504
+ 0.19189988513541315
+ 0.19190514122130886
+ 0.19191039743861812
+ 0.19191565378734465
+ 0.19192091026749392
+ 0.19192616687907021
+ 0.19193142362207799
+ 0.19193668049652246
+ 0.19194193750240815
+ 0.19194719463973969
+ 0.19195245190852225
+ 0.19195770930875941
+ 0.19196296684045674
+ 0.19196822450361886
+ 0.19197348229825043
+ 0.19197874022435599
+ 0.19198399828194021
+ 0.19198925647100812
+ 0.19199451479156399
+ 0.1919997732436127
+ 0.19200503182715956
+ 0.19201029054220808
+ 0.19201554938876395
+ 0.19202080836683166
+ 0.19202606747641546
+ 0.19203132671752041
+ 0.19203658609015109
+ 0.19204184559431259
+ 0.19204710523000909
+ 0.19205236499724568
+ 0.19205762489602654
+ 0.19206288492635715
+ 0.19206814508824174
+ 0.19207340538168485
+ 0.19207866580669158
+ 0.19208392636326668
+ 0.19208918705141415
+ 0.19209444787113908
+ 0.19209970882244667
+ 0.19210496990534151
+ 0.19211023111982722
+ 0.19211549246590992
+ 0.19212075394359368
+ 0.19212601555288317
+ 0.19213127729378296
+ 0.19213653916629822
+ 0.192141801170433
+ 0.19214706330619302
+ 0.19215232557358183
+ 0.19215758797260504
+ 0.19216285050326684
+ 0.19216811316557225
+ 0.19217337595952544
+ 0.19217863888513206
+ 0.19218390194239568
+ 0.19218916513132242
+ 0.19219442845191542
+ 0.19219969190418032
+ 0.19220495548812169
+ 0.19221021920374426
+ 0.19221548305105249
+ 0.19222074703005163
+ 0.19222601114074572
+ 0.19223127538313997
+ 0.19223653975723889
+ 0.19224180426304674
+ 0.1922470689005695
+ 0.19225233366981045
+ 0.1922575985707751
+ 0.19226286360346806
+ 0.19226812876789401
+ 0.19227339406405755
+ 0.19227865949196335
+ 0.19228392505161651
+ 0.19228919074302159
+ 0.19229445656618277
+ 0.19229972252110525
+ 0.19230498860779399
+ 0.19231025482625325
+ 0.19231552117648809
+ 0.19232078765850272
+ 0.19232605427230212
+ 0.19233132101789105
+ 0.19233658789527414
+ 0.19234185490445641
+ 0.1923471220454426
+ 0.19235238931823676
+ 0.19235765672284405
+ 0.1923629242592691
+ 0.19236819192751703
+ 0.19237345972759193
+ 0.19237872765949857
+ 0.19238399572324238
+ 0.19238926391882713
+ 0.19239453224625844
+ 0.19239980070554036
+ 0.19240506929667767
+ 0.19241033801967533
+ 0.19241560687453807
+ 0.19242087586127046
+ 0.1924261449798772
+ 0.19243141423036292
+ 0.1924366836127327
+ 0.19244195312699122
+ 0.19244722277314261
+ 0.19245249255119243
+ 0.19245776246114488
+ 0.19246303250300456
+ 0.19246830267677667
+ 0.19247357298246576
+ 0.19247884342007607
+ 0.19248411398961313
+ 0.19248938469108062
+ 0.19249465552448464
+ 0.19249992648982839
+ 0.19250519758711798
+ 0.19251046881635747
+ 0.1925157401775511
+ 0.19252101167070451
+ 0.19252628329582175
+ 0.19253155505290803
+ 0.19253682694196791
+ 0.19254209896300614
+ 0.19254737111602724
+ 0.19255264340103601
+ 0.19255791581803686
+ 0.19256318836703565
+ 0.19256846104803585
+ 0.19257373386104268
+ 0.1925790068060608
+ 0.19258427988309482
+ 0.19258955309214981
+ 0.19259482643323053
+ 0.19260009990634105
+ 0.19260537351148704
+ 0.19261064724867219
+ 0.19261592111790199
+ 0.19262119511918072
+ 0.19262646925251345
+ 0.19263174351790485
+ 0.19263701791535956
+ 0.19264229244488226
+ 0.19264756710647798
+ 0.1926528419001505
+ 0.19265811682590592
+ 0.19266339188374826
+ 0.19266866707368183
+ 0.19267394239571223
+ 0.19267921784984304
+ 0.19268449343608049
+ 0.19268976915442818
+ 0.19269504500489124
+ 0.19270032098747436
+ 0.1927055971021821
+ 0.19271087334901923
+ 0.19271614972799084
+ 0.19272142623910155
+ 0.19272670288235552
+ 0.1927319796577584
+ 0.19273725656531429
+ 0.19274253360502797
+ 0.192747810776904
+ 0.19275308808094799
+ 0.1927583655171631
+ 0.19276364308555605
+ 0.19276892078612995
+ 0.19277419861888997
+ 0.19277947658384118
+ 0.19278475468098832
+ 0.19279003291033597
+ 0.19279531127188834
+ 0.19280058976565106
+ 0.1928058683916283
+ 0.19281114714982464
+ 0.19281642604024576
+ 0.19282170506289489
+ 0.19282698421777811
+ 0.19283226350489954
+ 0.19283754292426436
+ 0.19284282247587625
+ 0.19284810215974138
+ 0.19285338197586335
+ 0.1928586619242473
+ 0.19286394200489845
+ 0.19286922221782044
+ 0.19287450256301891
+ 0.19287978304049846
+ 0.19288506365026381
+ 0.19289034439231911
+ 0.19289562526666951
+ 0.19290090627332007
+ 0.19290618741227561
+ 0.19291146868353967
+ 0.19291675008711848
+ 0.19292203162301566
+ 0.1929273132912368
+ 0.19293259509178567
+ 0.19293787702466841
+ 0.19294315908988857
+ 0.19294844128745092
+ 0.1929537236173606
+ 0.19295900607962274
+ 0.19296428867424104
+ 0.19296957140122106
+ 0.19297485426056751
+ 0.19298013725228463
+ 0.19298542037637745
+ 0.19299070363285076
+ 0.19299598702170911
+ 0.19300127054295765
+ 0.19300655419660068
+ 0.19301183798264324
+ 0.19301712190108952
+ 0.1930224059519447
+ 0.1930276901352139
+ 0.19303297445090128
+ 0.19303825889901205
+ 0.19304354347954991
+ 0.19304882819252084
+ 0.19305411303792921
+ 0.19305939801577957
+ 0.19306468312607661
+ 0.19306996836882503
+ 0.19307525374402992
+ 0.19308053925169597
+ 0.19308582489182735
+ 0.19309111066442977
+ 0.19309639656950733
+ 0.19310168260706476
+ 0.19310696877710712
+ 0.19311225507963917
+ 0.19311754151466504
+ 0.19312282808218989
+ 0.19312811478221842
+ 0.19313340161475573
+ 0.19313868857980607
+ 0.19314397567737454
+ 0.19314926290746581
+ 0.19315455027008413
+ 0.19315983776523507
+ 0.19316512539292285
+ 0.19317041315315214
+ 0.19317570104592807
+ 0.19318098907125533
+ 0.19318627722913811
+ 0.193191565519582
+ 0.19319685394259081
+ 0.19320214249817055
+ 0.19320743118632458
+ 0.1932127200070588
+ 0.19321800896037714
+ 0.19322329804628466
+ 0.19322858726478603
+ 0.19323387661588598
+ 0.19323916609958958
+ 0.19324445571590157
+ 0.19324974546482609
+ 0.1932550353463684
+ 0.19326032536053306
+ 0.19326561550732521
+ 0.19327090578674919
+ 0.19327619619880951
+ 0.1932814867435115
+ 0.1932867774208597
+ 0.19329206823085884
+ 0.19329735917351357
+ 0.19330265024882862
+ 0.1933079414568091
+ 0.19331323279745971
+ 0.19331852427078461
+ 0.19332381587678904
+ 0.19332910761547761
+ 0.19333439948685499
+ 0.19333969149092639
+ 0.19334498362769603
+ 0.19335027589716947
+ 0.19335556829935002
+ 0.19336086083424373
+ 0.19336615350185485
+ 0.19337144630218805
+ 0.19337673923524848
+ 0.19338203230104084
+ 0.19338732549956936
+ 0.19339261883083911
+ 0.19339791229485487
+ 0.19340320589162124
+ 0.19340849962114348
+ 0.19341379348342574
+ 0.19341908747847311
+ 0.19342438160628991
+ 0.19342967586688178
+ 0.19343497026025286
+ 0.1934402647864078
+ 0.19344555944535141
+ 0.19345085423708874
+ 0.19345614916162457
+ 0.1934614442189635
+ 0.19346673940910977
+ 0.19347203473206909
+ 0.19347733018784549
+ 0.19348262577644434
+ 0.19348792149786975
+ 0.19349321735212735
+ 0.19349851333922086
+ 0.19350380945915552
+ 0.193509105711936
+ 0.19351440209756743
+ 0.193519698616054
+ 0.19352499526740097
+ 0.19353029205161293
+ 0.19353558896869461
+ 0.19354088601865072
+ 0.19354618320148589
+ 0.19355148051720536
+ 0.19355677796581325
+ 0.19356207554731483
+ 0.19356737326171478
+ 0.19357267110901769
+ 0.19357796908922839
+ 0.19358326720235147
+ 0.19358856544839209
+ 0.19359386382735505
+ 0.19359916233924446
+ 0.19360446098406556
+ 0.19360975976182296
+ 0.19361505867252193
+ 0.19362035771616659
+ 0.1936256568927617
+ 0.19363095620231241
+ 0.19363625564482348
+ 0.19364155522029947
+ 0.19364685492874514
+ 0.19365215477016523
+ 0.19365745474456439
+ 0.19366275485194778
+ 0.19366805509232013
+ 0.19367335546568612
+ 0.19367865597204995
+ 0.1936839566114178
+ 0.19368925738379233
+ 0.19369455828918034
+ 0.19369985932758543
+ 0.19370516049901285
+ 0.19371046180346682
+ 0.19371576324095241
+ 0.19372106481147489
+ 0.19372636651503894
+ 0.19373166835164835
+ 0.19373697032130863
+ 0.19374227242402464
+ 0.19374757465980103
+ 0.193752877028642
+ 0.19375817953055319
+ 0.19376348216553882
+ 0.19376878493360417
+ 0.19377408783475331
+ 0.19377939086899154
+ 0.19378469403632353
+ 0.19378999733675395
+ 0.19379530077028798
+ 0.19380060433692933
+ 0.19380590803668382
+ 0.19381121186955599
+ 0.19381651583555015
+ 0.1938218199346714
+ 0.19382712416692452
+ 0.19383242853231467
+ 0.19383773303084609
+ 0.19384303766252345
+ 0.19384834242735194
+ 0.19385364732533628
+ 0.19385895235648065
+ 0.19386425752079078
+ 0.19386956281827089
+ 0.19387486824892564
+ 0.19388017381276021
+ 0.19388547950977889
+ 0.19389078533998683
+ 0.19389609130338875
+ 0.19390139739998932
+ 0.1939067036297932
+ 0.19391200999280575
+ 0.19391731648903107
+ 0.19392262311847386
+ 0.19392792988113985
+ 0.19393323677703322
+ 0.19393854380615821
+ 0.19394385096851999
+ 0.19394915826412382
+ 0.19395446569297389
+ 0.19395977325507535
+ 0.19396508095043299
+ 0.19397038877905143
+ 0.19397569674093493
+ 0.19398100483608915
+ 0.19398631306451841
+ 0.19399162142622781
+ 0.19399692992122108
+ 0.19400223854950446
+ 0.19400754731108213
+ 0.19401285620595882
+ 0.19401816523413917
+ 0.19402347439562806
+ 0.19402878369043047
+ 0.19403409311855083
+ 0.19403940267999417
+ 0.19404471237476481
+ 0.19405002220286846
+ 0.19405533216430926
+ 0.19406064225909198
+ 0.19406595248722178
+ 0.19407126284870296
+ 0.19407657334354064
+ 0.19408188397173912
+ 0.19408719473330402
+ 0.19409250562823915
+ 0.1940978166565501
+ 0.19410312781824166
+ 0.19410843911331763
+ 0.19411375054178401
+ 0.19411906210364474
+ 0.19412437379890488
+ 0.19412968562756922
+ 0.19413499758964289
+ 0.19414030968512971
+ 0.19414562191403587
+ 0.19415093427636504
+ 0.19415624677212195
+ 0.19416155940131233
+ 0.19416687216393999
+ 0.19417218506001047
+ 0.19417749808952808
+ 0.19418281125249751
+ 0.19418812454892403
+ 0.19419343797881231
+ 0.19419875154216706
+ 0.19420406523899256
+ 0.1942093790692945
+ 0.19421469303307706
+ 0.19422000713034498
+ 0.19422532136110349
+ 0.19423063572535684
+ 0.19423595022311016
+ 0.19424126485436874
+ 0.1942465796191363
+ 0.19425189451741806
+ 0.19425720954921921
+ 0.19426252471454403
+ 0.19426784001339814
+ 0.19427315544578491
+ 0.19427847101171042
+ 0.19428378671117844
+ 0.19428910254419471
+ 0.19429441851076343
+ 0.1942997346108894
+ 0.19430505084457775
+ 0.19431036721183317
+ 0.19431568371266006
+ 0.19432100034706343
+ 0.19432631711504864
+ 0.19433163401661988
+ 0.19433695105178186
+ 0.1943422682205394
+ 0.19434758552289805
+ 0.19435290295886118
+ 0.19435822052843496
+ 0.19436353823162367
+ 0.19436885606843193
+ 0.19437417403886456
+ 0.19437949214292674
+ 0.19438481038062269
+ 0.19439012875195766
+ 0.19439544725693642
+ 0.1944007658955631
+ 0.19440608466784354
+ 0.19441140357378189
+ 0.19441672261338289
+ 0.19442204178665182
+ 0.19442736109359329
+ 0.19443268053421114
+ 0.19443800010851209
+ 0.19444331981649934
+ 0.19444863965817816
+ 0.19445395963355322
+ 0.1944592797426298
+ 0.19446459998541205
+ 0.1944699203619053
+ 0.19447524087211426
+ 0.19448056151604362
+ 0.19448588229369768
+ 0.19449120320508209
+ 0.19449652425020164
+ 0.19450184542906004
+ 0.19450716674166355
+ 0.19451248818801586
+ 0.19451780976812175
+ 0.19452313148198688
+ 0.1945284533296156
+ 0.19453377531101257
+ 0.19453909742618297
+ 0.19454441967513114
+ 0.1945497420578618
+ 0.19455506457438015
+ 0.19456038722469091
+ 0.19456571000879885
+ 0.19457103292670921
+ 0.19457635597842618
+ 0.19458167916395411
+ 0.19458700248329908
+ 0.19459232593646494
+ 0.19459764952345687
+ 0.19460297324427914
+ 0.19460829709893754
+ 0.19461362108743618
+ 0.1946189452097799
+ 0.19462426946597386
+ 0.19462959385602235
+ 0.19463491837993066
+ 0.19464024303770344
+ 0.19464556782934497
+ 0.19465089275486094
+ 0.19465621781425521
+ 0.19466154300753344
+ 0.19466686833470032
+ 0.19467219379576015
+ 0.1946775193907182
+ 0.19468284511957917
+ 0.19468817098234731
+ 0.19469349697902835
+ 0.19469882310962611
+ 0.19470414937414621
+ 0.19470947577259343
+ 0.19471480230497207
+ 0.19472012897128738
+ 0.19472545577154399
+ 0.19473078270574626
+ 0.19473610977389985
+ 0.1947414369760091
+ 0.19474676431207866
+ 0.19475209178211386
+ 0.1947574193861189
+ 0.19476274712409899
+ 0.19476807499605889
+ 0.19477340300200294
+ 0.19477873114193675
+ 0.19478405941586469
+ 0.19478938782379146
+ 0.19479471636572226
+ 0.1948000450416614
+ 0.19480537385161451
+ 0.19481070279558552
+ 0.1948160318735791
+ 0.19482136108560091
+ 0.19482669043165529
+ 0.19483201991174753
+ 0.1948373495258818
+ 0.19484267927406285
+ 0.19484800915629596
+ 0.19485333917258588
+ 0.19485866932293736
+ 0.19486399960735512
+ 0.194869330025844
+ 0.19487466057840908
+ 0.19487999126505481
+ 0.19488532208578582
+ 0.19489065304060738
+ 0.19489598412952422
+ 0.19490131535254113
+ 0.19490664670966287
+ 0.19491197820089423
+ 0.19491730982624034
+ 0.19492264158570508
+ 0.19492797347929461
+ 0.19493330550701274
+ 0.19493863766886471
+ 0.1949439699648548
+ 0.19494930239498867
+ 0.19495463495927073
+ 0.1949599676577056
+ 0.19496530049029812
+ 0.19497063345705343
+ 0.19497596655797642
+ 0.19498129979307127
+ 0.19498663316234374
+ 0.19499196666579766
+ 0.19499730030343868
+ 0.1950026340752706
+ 0.19500796798129921
+ 0.19501330202152878
+ 0.19501863619596496
+ 0.19502397050461115
+ 0.1950293049474735
+ 0.19503463952455632
+ 0.19503997423586383
+ 0.19504530908140189
+ 0.19505064406117456
+ 0.19505597917518733
+ 0.19506131442344429
+ 0.19506664980595079
+ 0.19507198532271111
+ 0.1950773209737309
+ 0.19508265675901404
+ 0.19508799267856619
+ 0.19509332873239169
+ 0.19509866492049532
+ 0.19510400124288224
+ 0.19510933769955729
+ 0.19511467429052465
+ 0.19512001101578974
+ 0.19512534787535765
+ 0.19513068486923224
+ 0.19513602199741881
+ 0.19514135925992251
+ 0.19514669665674766
+ 0.19515203418789956
+ 0.19515737185338244
+ 0.19516270965320201
+ 0.19516804758736211
+ 0.19517338565586803
+ 0.19517872385872498
+ 0.19518406219593673
+ 0.19518940066750959
+ 0.19519473927344674
+ 0.19520007801375408
+ 0.19520541688843623
+ 0.19521075589749801
+ 0.19521609504094423
+ 0.19522143431877961
+ 0.19522677373100897
+ 0.19523211327763754
+ 0.19523745295866909
+ 0.19524279277410991
+ 0.19524813272396374
+ 0.19525347280823585
+ 0.19525881302693099
+ 0.19526415338005404
+ 0.19526949386760967
+ 0.19527483448960267
+ 0.1952801752460383
+ 0.19528551613692083
+ 0.19529085716225558
+ 0.19529619832204678
+ 0.19530153961629967
+ 0.19530688104501912
+ 0.19531222260821032
+ 0.19531756430587704
+ 0.19532290613802511
+ 0.19532824810465879
+ 0.19533359020578328
+ 0.19533893244140296
+ 0.19534427481152303
+ 0.19534961731614833
+ 0.19535495995528351
+ 0.19536030272893348
+ 0.19536564563710296
+ 0.19537098867979721
+ 0.19537633185702058
+ 0.19538167516877772
+ 0.19538701861507399
+ 0.19539236219591416
+ 0.19539770591130301
+ 0.19540304976124526
+ 0.19540839374574526
+ 0.19541373786480928
+ 0.19541908211844056
+ 0.19542442650664485
+ 0.19542977102942652
+ 0.19543511568679078
+ 0.19544046047874242
+ 0.19544580540528625
+ 0.19545115046642703
+ 0.19545649566216952
+ 0.19546184099251851
+ 0.19546718645747876
+ 0.19547253205705609
+ 0.19547787779125383
+ 0.19548322366007764
+ 0.19548856966353237
+ 0.19549391580162273
+ 0.19549926207435361
+ 0.19550460848172976
+ 0.1955099550237564
+ 0.1955153017004374
+ 0.19552064851177847
+ 0.19552599545778446
+ 0.19553134253845958
+ 0.19553668975380914
+ 0.19554203710383791
+ 0.19554738458855073
+ 0.19555273220795283
+ 0.19555807996204802
+ 0.19556342785084205
+ 0.19556877587433924
+ 0.19557412403254493
+ 0.19557947232546324
+ 0.19558482075309963
+ 0.19559016931545881
+ 0.19559551801254604
+ 0.19560086684436517
+ 0.19560621581092139
+ 0.19561156491222007
+ 0.19561691414826551
+ 0.19562226351906295
+ 0.1956276130246167
+ 0.19563296266493202
+ 0.1956383124400137
+ 0.19564366234986658
+ 0.19564901239449545
+ 0.19565436257390548
+ 0.19565971288810055
+ 0.19566506333708653
+ 0.19567041392086801
+ 0.19567576463944944
+ 0.19568111549283612
+ 0.19568646648103269
+ 0.19569181760404358
+ 0.19569716886187452
+ 0.19570252025452986
+ 0.19570787178201429
+ 0.19571322344433317
+ 0.19571857524149081
+ 0.19572392717349194
+ 0.19572927924034239
+ 0.195734631442046
+ 0.19573998377860793
+ 0.19574533625003313
+ 0.19575068885632627
+ 0.19575604159749269
+ 0.19576139447353622
+ 0.1957667474844631
+ 0.19577210063027717
+ 0.1957774539109832
+ 0.19578280732658643
+ 0.19578816087709228
+ 0.19579351456250441
+ 0.19579886838282823
+ 0.19580422233806849
+ 0.19580957642823049
+ 0.19581493065331851
+ 0.19582028501333787
+ 0.19582563950829282
+ 0.19583099413818825
+ 0.19583634890302984
+ 0.19584170380282201
+ 0.19584705883756895
+ 0.19585241400727654
+ 0.19585776931194951
+ 0.19586312475159173
+ 0.19586848032620849
+ 0.19587383603580549
+ 0.19587919188038666
+ 0.19588454785995721
+ 0.19588990397452202
+ 0.19589526022408532
+ 0.19590061660865293
+ 0.19590597312822919
+ 0.19591132978281883
+ 0.1959166865724267
+ 0.19592204349705858
+ 0.19592740055671778
+ 0.19593275775141017
+ 0.19593811508114092
+ 0.19594347254591396
+ 0.19594883014573447
+ 0.19595418788060737
+ 0.19595954575053739
+ 0.19596490375552986
+ 0.19597026189558908
+ 0.1959756201707199
+ 0.19598097858092806
+ 0.19598633712621735
+ 0.19599169580659265
+ 0.19599705462205971
+ 0.19600241357262238
+ 0.19600777265828642
+ 0.19601313187905614
+ 0.19601849123493689
+ 0.19602385072593242
+ 0.19602921035204909
+ 0.19603457011329067
+ 0.19603993000966247
+ 0.19604529004116883
+ 0.19605065020781501
+ 0.19605601050960639
+ 0.19606137094654719
+ 0.19606673151864229
+ 0.1960720922258965
+ 0.19607745306831456
+ 0.19608281404590233
+ 0.19608817515866364
+ 0.19609353640660321
+ 0.19609889778972694
+ 0.19610425930803865
+ 0.19610962096154413
+ 0.19611498275024714
+ 0.19612034467415351
+ 0.19612570673326762
+ 0.19613106892759466
+ 0.19613643125713909
+ 0.19614179372190563
+ 0.19614715632190005
+ 0.19615251905712627
+ 0.19615788192759004
+ 0.19616324493329523
+ 0.19616860807424705
+ 0.19617397135045098
+ 0.19617933476191113
+ 0.19618469830863247
+ 0.19619006199062072
+ 0.1961954258078793
+ 0.19620078976041391
+ 0.19620615384822995
+ 0.19621151807133069
+ 0.19621688242972299
+ 0.19622224692341009
+ 0.19622761155239787
+ 0.19623297631669018
+ 0.19623834121629272
+ 0.19624370625121038
+ 0.19624907142144754
+ 0.19625443672700937
+ 0.19625980216790087
+ 0.19626516774412667
+ 0.19627053345569123
+ 0.19627589930260034
+ 0.19628126528485823
+ 0.19628663140246982
+ 0.19629199765544039
+ 0.19629736404377426
+ 0.1963027305674768
+ 0.19630809722655221
+ 0.19631346402100597
+ 0.19631883095084277
+ 0.19632419801606749
+ 0.19632956521668493
+ 0.19633493255269996
+ 0.1963403000241174
+ 0.19634566763094244
+ 0.19635103537317961
+ 0.19635640325083403
+ 0.19636177126391022
+ 0.19636713941241332
+ 0.19637250769634826
+ 0.19637787611571983
+ 0.19638324467053239
+ 0.19638861336079172
+ 0.19639398218650223
+ 0.19639935114766913
+ 0.19640472024429625
+ 0.19641008947638999
+ 0.19641545884395367
+ 0.19642082834699315
+ 0.19642619798551358
+ 0.19643156775951898
+ 0.19643693766901457
+ 0.19644230771400523
+ 0.19644767789449577
+ 0.1964530482104915
+ 0.19645841866199629
+ 0.19646378924901645
+ 0.19646915997155528
+ 0.19647453082961908
+ 0.19647990182321134
+ 0.1964852729523382
+ 0.1964906442170041
+ 0.19649601561721378
+ 0.19650138715297166
+ 0.19650675882428356
+ 0.19651213063115383
+ 0.19651750257358766
+ 0.19652287465158955
+ 0.19652824686516424
+ 0.19653361921431706
+ 0.1965389916990529
+ 0.19654436431937655
+ 0.19654973707529233
+ 0.19655510996680617
+ 0.19656048299392176
+ 0.19656585615664496
+ 0.19657122945498023
+ 0.19657660288893275
+ 0.19658197645850647
+ 0.1965873501637076
+ 0.19659272400454014
+ 0.1965980979810093
+ 0.19660347209311943
+ 0.19660884634087591
+ 0.19661422072428406
+ 0.19661959524334766
+ 0.19662496989807265
+ 0.19663034468846327
+ 0.19663571961452486
+ 0.1966410946762614
+ 0.19664646987367901
+ 0.19665184520678122
+ 0.19665722067557423
+ 0.19666259628006241
+ 0.19666797202025063
+ 0.19667334789614282
+ 0.19667872390774566
+ 0.19668410005506254
+ 0.19668947633809925
+ 0.19669485275686072
+ 0.19670022931135081
+ 0.19670560600157525
+ 0.19671098282753893
+ 0.19671635978924676
+ 0.19672173688670294
+ 0.19672711411991289
+ 0.19673249148888153
+ 0.19673786899361403
+ 0.19674324663411441
+ 0.19674862441038787
+ 0.19675400232243986
+ 0.1967593803702751
+ 0.19676475855389802
+ 0.19677013687331343
+ 0.19677551532852672
+ 0.1967808939195427
+ 0.19678627264636619
+ 0.19679165150900163
+ 0.19679703050745476
+ 0.19680240964172996
+ 0.19680778891183154
+ 0.19681316831776594
+ 0.1968185478595364
+ 0.19682392753714881
+ 0.19682930735060802
+ 0.19683468729991846
+ 0.19684006738508533
+ 0.1968454476061135
+ 0.19685082796300737
+ 0.19685620845577279
+ 0.19686158908441406
+ 0.19686696984893615
+ 0.1968723507493432
+ 0.19687773178564175
+ 0.19688311295783553
+ 0.19688849426592947
+ 0.19689387570992883
+ 0.19689925728983854
+ 0.19690463900566293
+ 0.19691002085740733
+ 0.19691540284507661
+ 0.19692078496867563
+ 0.19692616722820919
+ 0.19693154962368264
+ 0.19693693215509994
+ 0.19694231482246677
+ 0.19694769762578818
+ 0.19695308056506836
+ 0.19695846364031219
+ 0.19696384685152515
+ 0.1969692301987119
+ 0.19697461368187749
+ 0.19697999730102658
+ 0.19698538105616417
+ 0.19699076494729501
+ 0.19699614897442408
+ 0.19700153313755611
+ 0.19700691743669649
+ 0.19701230187184962
+ 0.19701768644302084
+ 0.19702307115021447
+ 0.19702845599343585
+ 0.19703384097268992
+ 0.197039226087981
+ 0.19704461133931483
+ 0.19704999672669596
+ 0.19705538225012867
+ 0.19706076790961877
+ 0.19706615370517067
+ 0.19707153963678972
+ 0.19707692570448021
+ 0.19708231190824713
+ 0.19708769824809619
+ 0.19709308472403086
+ 0.19709847133605748
+ 0.19710385808418038
+ 0.19710924496840398
+ 0.19711463198873355
+ 0.19712001914517446
+ 0.19712540643773066
+ 0.19713079386640792
+ 0.19713618143121064
+ 0.19714156913214415
+ 0.19714695696921286
+ 0.19715234494242215
+ 0.19715773305177628
+ 0.19716312129728072
+ 0.19716850967894026
+ 0.19717389819675976
+ 0.19717928685074415
+ 0.19718467564089823
+ 0.19719006456722693
+ 0.19719545362973553
+ 0.19720084282842795
+ 0.19720623216331007
+ 0.19721162163438669
+ 0.19721701124166224
+ 0.19722240098514152
+ 0.19722779086483047
+ 0.19723318088073286
+ 0.19723857103285417
+ 0.19724396132119915
+ 0.19724935174577279
+ 0.19725474230657988
+ 0.19726013300362524
+ 0.19726552383691437
+ 0.19727091480645154
+ 0.1972763059122416
+ 0.19728169715429
+ 0.19728708853260102
+ 0.19729248004718064
+ 0.19729787169803209
+ 0.19730326348516189
+ 0.19730865540857381
+ 0.19731404746827372
+ 0.19731943966426604
+ 0.19732483199655509
+ 0.19733022446514681
+ 0.19733561707004543
+ 0.19734100981125652
+ 0.19734640268878428
+ 0.19735179570263367
+ 0.19735718885281003
+ 0.19736258213931823
+ 0.19736797556216321
+ 0.19737336912134923
+ 0.19737876281688171
+ 0.19738415664876602
+ 0.19738955061700608
+ 0.19739494472160771
+ 0.19740033896257483
+ 0.19740573333991326
+ 0.19741112785362744
+ 0.19741652250372266
+ 0.19742191729020339
+ 0.19742731221307541
+ 0.19743270727234211
+ 0.19743810246800944
+ 0.19744349780008222
+ 0.19744889326856535
+ 0.19745428887346417
+ 0.19745968461478214
+ 0.19746508049252551
+ 0.19747047650669922
+ 0.19747587265730768
+ 0.19748126894435578
+ 0.19748666536784831
+ 0.1974920619277907
+ 0.19749745862418736
+ 0.19750285545704407
+ 0.19750825242636477
+ 0.19751364953215439
+ 0.19751904677441878
+ 0.19752444415316223
+ 0.19752984166838927
+ 0.19753523932010561
+ 0.19754063710831576
+ 0.19754603503302462
+ 0.19755143309423698
+ 0.1975568312919587
+ 0.19756222962619327
+ 0.1975676280969465
+ 0.19757302670422283
+ 0.19757842544802756
+ 0.1975838243283656
+ 0.1975892233452419
+ 0.19759462249866128
+ 0.19760002178862859
+ 0.19760542121514829
+ 0.19761082077822625
+ 0.19761622047786684
+ 0.1976216203140754
+ 0.19762702028685594
+ 0.1976324203962147
+ 0.1976378206421551
+ 0.19764322102468312
+ 0.197648621543804
+ 0.19765402219952127
+ 0.19765942299184125
+ 0.19766482392076778
+ 0.19767022498630638
+ 0.19767562618846174
+ 0.19768102752723946
+ 0.19768642900264327
+ 0.1976918306146791
+ 0.19769723236335088
+ 0.19770263424866497
+ 0.1977080362706253
+ 0.19771343842923664
+ 0.19771884072450452
+ 0.19772424315643325
+ 0.19772964572502824
+ 0.19773504843029485
+ 0.19774045127223652
+ 0.19774585425085967
+ 0.19775125736616855
+ 0.19775666061816821
+ 0.19776206400686341
+ 0.19776746753225913
+ 0.19777287119436077
+ 0.19777827499317216
+ 0.19778367892869969
+ 0.1977890830009473
+ 0.19779448720991988
+ 0.19779989155562283
+ 0.19780529603806096
+ 0.1978107006572388
+ 0.19781610541316214
+ 0.19782151030583489
+ 0.19782691533526248
+ 0.19783232050144975
+ 0.19783772580440212
+ 0.19784313124412356
+ 0.19784853682062037
+ 0.19785394253389593
+ 0.19785934838395575
+ 0.19786475437080508
+ 0.19787016049444894
+ 0.19787556675489174
+ 0.19788097315213871
+ 0.19788637968619494
+ 0.19789178635706467
+ 0.19789719316475346
+ 0.19790260010926602
+ 0.19790800719060792
+ 0.19791341440878293
+ 0.19791882176379705
+ 0.19792422925565412
+ 0.19792963688436058
+ 0.19793504464991973
+ 0.19794045255233764
+ 0.19794586059161853
+ 0.19795126876776795
+ 0.19795667708079015
+ 0.19796208553069072
+ 0.19796749411747491
+ 0.19797290284114613
+ 0.1979783117017109
+ 0.19798372069917294
+ 0.19798912983353834
+ 0.19799453910481143
+ 0.19799994851299704
+ 0.19800535805810018
+ 0.19801076774012566
+ 0.19801617755907902
+ 0.19802158751496451
+ 0.19802699760778755
+ 0.19803240783755269
+ 0.19803781820426519
+ 0.19804322870792951
+ 0.19804863934855158
+ 0.19805405012613472
+ 0.19805946104068539
+ 0.19806487209220805
+ 0.19807028328070755
+ 0.19807569460618873
+ 0.19808110606865661
+ 0.19808651766811608
+ 0.19809192940457249
+ 0.1980973412780303
+ 0.19810275328849439
+ 0.19810816543597015
+ 0.19811357772046254
+ 0.1981189901419754
+ 0.19812440270051523
+ 0.19812981539608587
+ 0.19813522822869326
+ 0.19814064119834077
+ 0.1981460543050349
+ 0.19815146754877991
+ 0.19815688092958089
+ 0.1981622944474426
+ 0.19816770810237
+ 0.19817312189436859
+ 0.19817853582344264
+ 0.19818394988959709
+ 0.19818936409283699
+ 0.1981947784331676
+ 0.19820019291059388
+ 0.19820560752512023
+ 0.19821102227675214
+ 0.19821643716549389
+ 0.19822185219135102
+ 0.19822726735432886
+ 0.19823268265443136
+ 0.19823809809166396
+ 0.19824351366603152
+ 0.19824892937753949
+ 0.19825434522619176
+ 0.19825976121199421
+ 0.19826517733495139
+ 0.1982705935950681
+ 0.19827600999234976
+ 0.19828142652680136
+ 0.19828684319842724
+ 0.19829226000723238
+ 0.19829767695322215
+ 0.19830309403640142
+ 0.19830851125677523
+ 0.19831392861434802
+ 0.19831934610912549
+ 0.19832476374111177
+ 0.19833018151031268
+ 0.19833559941673221
+ 0.19834101746037613
+ 0.1983464356412491
+ 0.19835185395935581
+ 0.1983572724147018
+ 0.19836269100729095
+ 0.19836810973712973
+ 0.19837352860422203
+ 0.19837894760857272
+ 0.19838436675018728
+ 0.19838978602907115
+ 0.19839520544522771
+ 0.19840062499866337
+ 0.19840604468938211
+ 0.19841146451738934
+ 0.19841688448268993
+ 0.19842230458528934
+ 0.19842772482519147
+ 0.19843314520240182
+ 0.19843856571692575
+ 0.19844398636876767
+ 0.19844940715793299
+ 0.19845482808442624
+ 0.19846024914825225
+ 0.19846567034941645
+ 0.19847109168792385
+ 0.19847651316377879
+ 0.19848193477698675
+ 0.19848735652755209
+ 0.19849277841548074
+ 0.19849820044077676
+ 0.1985036226034454
+ 0.19850904490349175
+ 0.19851446734092107
+ 0.19851988991573744
+ 0.19852531262794615
+ 0.19853073547755279
+ 0.19853615846456213
+ 0.19854158158897817
+ 0.19854700485080687
+ 0.19855242825005259
+ 0.19855785178672083
+ 0.19856327546081601
+ 0.19856869927234352
+ 0.1985741232213083
+ 0.19857954730771485
+ 0.19858497153156848
+ 0.19859039589287417
+ 0.1985958203916369
+ 0.19860124502786158
+ 0.19860666980155312
+ 0.19861209471271643
+ 0.1986175197613565
+ 0.19862294494747876
+ 0.19862837027108712
+ 0.19863379573218745
+ 0.19863922133078435
+ 0.19864464706688312
+ 0.19865007294048823
+ 0.19865549895160506
+ 0.19866092510023814
+ 0.19866635138639235
+ 0.19867177781007367
+ 0.19867720437128647
+ 0.19868263107003525
+ 0.19868805790632493
+ 0.19869348488016142
+ 0.1986989119915491
+ 0.19870433924049308
+ 0.19870976662699816
+ 0.19871519415106934
+ 0.19872062181271144
+ 0.19872604961192955
+ 0.19873147754872908
+ 0.19873690562311441
+ 0.19874233383509099
+ 0.19874776218466331
+ 0.19875319067183625
+ 0.19875861929661526
+ 0.1987640480590048
+ 0.19876947695901087
+ 0.19877490599663725
+ 0.19878033517188953
+ 0.19878576448477206
+ 0.19879119393529035
+ 0.19879662352344982
+ 0.19880205324925437
+ 0.19880748311270946
+ 0.19881291311382063
+ 0.19881834325259215
+ 0.19882377352902858
+ 0.19882920394313636
+ 0.19883463449491889
+ 0.19884006518438213
+ 0.19884549601153051
+ 0.19885092697636952
+ 0.19885635807890353
+ 0.19886178931913762
+ 0.19886722069707755
+ 0.1988726522127269
+ 0.19887808386609207
+ 0.19888351565717755
+ 0.19888894758598766
+ 0.19889437965252801
+ 0.19889981185680344
+ 0.19890524419881894
+ 0.19891067667857945
+ 0.19891610929608985
+ 0.1989215420513557
+ 0.19892697494438089
+ 0.19893240797517142
+ 0.19893784114373164
+ 0.19894327445006654
+ 0.19894870789418162
+ 0.19895414147608129
+ 0.19895957519577051
+ 0.19896500905325518
+ 0.19897044304853884
+ 0.19897587718162785
+ 0.19898131145252618
+ 0.19898674586123891
+ 0.19899218040777175
+ 0.19899761509212888
+ 0.19900304991431611
+ 0.19900848487433745
+ 0.19901391997219836
+ 0.19901935520790373
+ 0.19902479058145908
+ 0.19903022609286833
+ 0.19903566174213694
+ 0.19904109752927041
+ 0.19904653345427309
+ 0.19905196951715051
+ 0.19905740571790709
+ 0.19906284205654784
+ 0.19906827853307815
+ 0.19907371514750255
+ 0.19907915189982592
+ 0.19908458879005422
+ 0.19909002581819141
+ 0.19909546298424299
+ 0.19910090028821342
+ 0.19910633773010858
+ 0.19911177530993251
+ 0.19911721302769061
+ 0.19912265088338787
+ 0.19912808887702924
+ 0.19913352700862016
+ 0.1991389652781646
+ 0.19914440368566802
+ 0.19914984223113594
+ 0.19915528091457271
+ 0.19916071973598332
+ 0.19916615869537277
+ 0.19917159779274651
+ 0.19917703702810896
+ 0.19918247640146564
+ 0.19918791591282095
+ 0.19919335556218037
+ 0.19919879534954893
+ 0.19920423527493095
+ 0.19920967533833156
+ 0.19921511553975657
+ 0.19922055587921003
+ 0.19922599635669738
+ 0.19923143697222356
+ 0.19923687772579407
+ 0.19924231861741293
+ 0.19924775964708544
+ 0.19925320081481668
+ 0.19925864212061165
+ 0.1992640835644752
+ 0.19926952514641283
+ 0.19927496686642907
+ 0.19928040872452882
+ 0.19928585072071706
+ 0.19929129285499927
+ 0.19929673512738041
+ 0.19930217753786442
+ 0.1993076200864578
+ 0.19931306277316402
+ 0.1993185055979895
+ 0.1993239485609383
+ 0.1993293916620158
+ 0.19933483490122697
+ 0.19934027827857631
+ 0.19934572179406981
+ 0.19935116544771089
+ 0.19935660923950654
+ 0.19936205316946023
+ 0.19936749723757696
+ 0.19937294144386308
+ 0.19937838578832223
+ 0.19938383027095977
+ 0.19938927489178115
+ 0.19939471965079092
+ 0.19940016454799409
+ 0.19940560958339545
+ 0.19941105475700066
+ 0.19941650006881412
+ 0.19942194551884077
+ 0.19942739110708607
+ 0.19943283683355506
+ 0.1994382826982522
+ 0.1994437287011829
+ 0.19944917484235172
+ 0.19945462112176404
+ 0.19946006753942497
+ 0.19946551409533933
+ 0.19947096078951168
+ 0.19947640762194749
+ 0.19948185459265225
+ 0.19948730170162987
+ 0.19949274894888588
+ 0.19949819633442528
+ 0.19950364385825342
+ 0.19950909152037441
+ 0.19951453932079419
+ 0.19951998725951672
+ 0.19952543533654798
+ 0.19953088355189297
+ 0.19953633190555564
+ 0.19954178039754192
+ 0.1995472290278569
+ 0.19955267779650498
+ 0.19955812670349121
+ 0.199563575748821
+ 0.19956902493249876
+ 0.19957447425453012
+ 0.19957992371492003
+ 0.19958537331367343
+ 0.19959082305079431
+ 0.19959627292628909
+ 0.19960172294016237
+ 0.19960717309241902
+ 0.19961262338306363
+ 0.19961807381210206
+ 0.1996235243795384
+ 0.19962897508537811
+ 0.1996344259296266
+ 0.19963987691228793
+ 0.19964532803336804
+ 0.19965077929287137
+ 0.19965623069080304
+ 0.19966168222716793
+ 0.19966713390197108
+ 0.19967258571521787
+ 0.19967803766691292
+ 0.19968348975706163
+ 0.19968894198566853
+ 0.19969439435273903
+ 0.19969984685827769
+ 0.19970529950228949
+ 0.19971075228477991
+ 0.19971620520575437
+ 0.19972165826521648
+ 0.19972711146317212
+ 0.19973256479962628
+ 0.19973801827458407
+ 0.19974347188805031
+ 0.19974892564002963
+ 0.19975437953052744
+ 0.19975983355954871
+ 0.19976528772709898
+ 0.19977074203318224
+ 0.19977619647780395
+ 0.19978165106096962
+ 0.19978710578268322
+ 0.19979256064295078
+ 0.19979801564177671
+ 0.19980347077916558
+ 0.19980892605512388
+ 0.19981438146965502
+ 0.19981983702276507
+ 0.19982529271445904
+ 0.19983074854474134
+ 0.19983620451361694
+ 0.19984166062109149
+ 0.19984711686716936
+ 0.19985257325185604
+ 0.19985802977515604
+ 0.19986348643707488
+ 0.19986894323761759
+ 0.19987440017678854
+ 0.19987985725459334
+ 0.19988531447103694
+ 0.19989077182612433
+ 0.19989622931985998
+ 0.19990168695224994
+ 0.19990714472329818
+ 0.19991260263301072
+ 0.19991806068139151
+ 0.19992351886844612
+ 0.19992897719417946
+ 0.199934435658597
+ 0.19993989426170289
+ 0.19994535300350302
+ 0.19995081188400191
+ 0.19995627090320447
+ 0.19996173006111642
+ 0.19996718935774155
+ 0.19997264879308593
+ 0.19997810836715454
+ 0.19998356807995143
+ 0.19998902793148254
+ 0.19999448792175292
+ 0.19999994805076754
+ 0.20000540831853039
+ 0.20001086872504803
+ 0.20001632927032389
+ 0.20002178995436448
+ 0.20002725077717387
+ 0.20003271173875745
+ 0.20003817283912032
+ 0.20004363407826695
+ 0.20004909545620284
+ 0.20005455697293301
+ 0.20006001862846245
+ 0.20006548042279615
+ 0.20007094235593909
+ 0.20007640442789584
+ 0.20008186663867233
+ 0.20008732898827267
+ 0.20009279147670272
+ 0.20009825410396712
+ 0.20010371687007075
+ 0.20010917977501877
+ 0.20011464281881608
+ 0.20012010600146818
+ 0.20012556932297912
+ 0.20013103278335534
+ 0.20013649638260045
+ 0.20014196012071991
+ 0.2001474239977197
+ 0.20015288801360334
+ 0.20015835216837685
+ 0.20016381646204523
+ 0.20016928089461247
+ 0.2001747454660851
+ 0.2001802101764672
+ 0.20018567502576365
+ 0.20019114001398053
+ 0.20019660514112178
+ 0.20020207040719254
+ 0.20020753581219819
+ 0.20021300135614384
+ 0.20021846703903448
+ 0.20022393286087503
+ 0.20022939882167015
+ 0.2002348649214257
+ 0.20024033116014581
+ 0.20024579753783595
+ 0.20025126405450105
+ 0.20025673071014627
+ 0.20026219750477653
+ 0.20026766443839686
+ 0.20027313151101278
+ 0.20027859872262832
+ 0.20028406607324895
+ 0.20028953356288023
+ 0.20029500119152666
+ 0.20030046895919326
+ 0.20030593686588499
+ 0.20031140491160743
+ 0.20031687309636459
+ 0.20032234142016297
+ 0.20032780988300608
+ 0.20033327848489993
+ 0.20033874722584957
+ 0.20034421610585945
+ 0.20034968512493473
+ 0.20035515428308026
+ 0.20036062358030216
+ 0.20036609301660438
+ 0.20037156259199249
+ 0.20037703230647103
+ 0.20038250216004491
+ 0.20038797215272028
+ 0.20039344228450107
+ 0.2003989125553928
+ 0.20040438296540056
+ 0.20040985351452886
+ 0.20041532420278313
+ 0.20042079503016902
+ 0.20042626599668992
+ 0.20043173710235243
+ 0.20043720834716103
+ 0.20044267973112079
+ 0.20044815125423621
+ 0.20045362291651328
+ 0.20045909471795656
+ 0.20046456665857057
+ 0.20047003873836136
+ 0.20047551095733337
+ 0.20048098331549166
+ 0.20048645581284183
+ 0.20049192844938782
+ 0.20049740122513512
+ 0.20050287414008938
+ 0.20050834719425503
+ 0.20051382038763763
+ 0.20051929372024119
+ 0.20052476719207221
+ 0.20053024080313425
+ 0.20053571455343333
+ 0.200541188442974
+ 0.20054666247176178
+ 0.20055213663980115
+ 0.2005576109470977
+ 0.20056308539365589
+ 0.20056855997948081
+ 0.20057403470457849
+ 0.20057950956895287
+ 0.20058498457260907
+ 0.20059045971555253
+ 0.20059593499778841
+ 0.20060141041932164
+ 0.20060688598015627
+ 0.20061236168029886
+ 0.20061783751975393
+ 0.20062331349852644
+ 0.20062878961662101
+ 0.20063426587404312
+ 0.20063974227079789
+ 0.20064521880689018
+ 0.20065069548232467
+ 0.20065617229710733
+ 0.20066164925124275
+ 0.20066712634473535
+ 0.20067260357759126
+ 0.20067808094981451
+ 0.20068355846141103
+ 0.20068903611238553
+ 0.2006945139027424
+ 0.20069999183248771
+ 0.20070546990162599
+ 0.2007109481101623
+ 0.20071642645810217
+ 0.20072190494545014
+ 0.2007273835722107
+ 0.20073286233838997
+ 0.20073834124399292
+ 0.20074382028902357
+ 0.20074929947348802
+ 0.20075477879739076
+ 0.20076025826073735
+ 0.20076573786353233
+ 0.20077121760578068
+ 0.200776697487488
+ 0.20078217750865884
+ 0.20078765766929871
+ 0.20079313796941212
+ 0.20079861840900465
+ 0.20080409898808085
+ 0.20080957970664617
+ 0.20081506056470524
+ 0.20082054156226362
+ 0.20082602269932628
+ 0.20083150397589827
+ 0.20083698539198375
+ 0.20084246694758906
+ 0.20084794864271829
+ 0.20085343047737717
+ 0.20085891245157053
+ 0.20086439456530297
+ 0.20086987681858007
+ 0.20087535921140737
+ 0.20088084174378837
+ 0.20088632441572962
+ 0.20089180722723568
+ 0.20089729017831109
+ 0.20090277326896197
+ 0.20090825649919222
+ 0.20091373986900743
+ 0.20091922337841275
+ 0.20092470702741361
+ 0.20093019081601413
+ 0.20093567474421975
+ 0.20094115881203564
+ 0.20094664301946674
+ 0.20095212736651868
+ 0.20095761185319549
+ 0.20096309647950314
+ 0.20096858124544575
+ 0.20097406615102936
+ 0.20097955119625852
+ 0.20098503638113829
+ 0.20099052170567416
+ 0.20099600716987023
+ 0.20100149277373258
+ 0.20100697851726565
+ 0.20101246440047507
+ 0.20101795042336487
+ 0.2010234365859411
+ 0.20102892288820828
+ 0.20103440933017203
+ 0.20103989591183735
+ 0.20104538263320834
+ 0.20105086949429099
+ 0.20105635649508985
+ 0.20106184363561055
+ 0.20106733091585757
+ 0.20107281833583646
+ 0.20107830589555184
+ 0.20108379359500869
+ 0.20108928143421304
+ 0.20109476941316856
+ 0.20110025753188121
+ 0.20110574579035609
+ 0.20111123418859828
+ 0.20111672272661224
+ 0.20112221140440303
+ 0.20112770022197629
+ 0.20113318917933756
+ 0.20113867827649029
+ 0.20114416751344119
+ 0.20114965689019423
+ 0.20115514640675444
+ 0.20116063606312795
+ 0.20116612585931878
+ 0.20117161579533246
+ 0.2011771058711741
+ 0.20118259608684874
+ 0.20118808644236091
+ 0.20119357693771617
+ 0.20119906757291964
+ 0.20120455834797635
+ 0.20121004926289132
+ 0.20121554031766911
+ 0.20122103151231582
+ 0.20122652284683598
+ 0.20123201432123416
+ 0.20123750593551645
+ 0.20124299768968684
+ 0.20124848958375099
+ 0.20125398161771438
+ 0.2012594737915811
+ 0.20126496610535724
+ 0.20127045855904679
+ 0.20127595115265531
+ 0.20128144388618849
+ 0.20128693675965029
+ 0.20129242977304676
+ 0.20129792292638246
+ 0.20130341621966252
+ 0.20130890965289203
+ 0.20131440322607588
+ 0.20131989693921984
+ 0.20132539079232833
+ 0.20133088478540598
+ 0.20133637891845887
+ 0.20134187319149149
+ 0.2013473676045095
+ 0.20135286215751688
+ 0.20135835685052028
+ 0.20136385168352322
+ 0.20136934665653122
+ 0.20137484176954992
+ 0.20138033702258384
+ 0.20138583241563812
+ 0.20139132794871825
+ 0.20139682362182881
+ 0.20140231943497491
+ 0.2014078153881621
+ 0.20141331148139541
+ 0.20141880771467896
+ 0.20142430408801881
+ 0.20142980060141949
+ 0.2014352972548866
+ 0.20144079404842524
+ 0.20144629098203942
+ 0.20145178805573521
+ 0.20145728526951778
+ 0.2014627826233916
+ 0.20146828011736229
+ 0.20147377775143438
+ 0.20147927552561301
+ 0.20148477343990417
+ 0.20149027149431145
+ 0.2014957696888415
+ 0.20150126802349777
+ 0.201506766498287
+ 0.20151226511321307
+ 0.20151776386828171
+ 0.20152326276349738
+ 0.20152876179886575
+ 0.20153426097439137
+ 0.20153976029007969
+ 0.20154525974593598
+ 0.20155075934196473
+ 0.20155625907817198
+ 0.20156175895456138
+ 0.20156725897113942
+ 0.20157275912791023
+ 0.20157825942487942
+ 0.20158375986205149
+ 0.20158926043943254
+ 0.20159476115702668
+ 0.20160026201483899
+ 0.20160576301287544
+ 0.20161126415114028
+ 0.20161676542963902
+ 0.20162226684837667
+ 0.20162776840735835
+ 0.20163327010658871
+ 0.20163877194607321
+ 0.20164427392581752
+ 0.20164977604582521
+ 0.2016552783061028
+ 0.20166078070665497
+ 0.2016662832474862
+ 0.20167178592860213
+ 0.20167728875000776
+ 0.2016827917117083
+ 0.20168829481370881
+ 0.20169379805601426
+ 0.20169930143862985
+ 0.20170480496156062
+ 0.20171030862481112
+ 0.20171581242838749
+ 0.20172131637229379
+ 0.20172682045653562
+ 0.20173232468111849
+ 0.20173782904604656
+ 0.20174333355132545
+ 0.20174883819696016
+ 0.2017543429829558
+ 0.20175984790931745
+ 0.20176535297605072
+ 0.20177085818315968
+ 0.2017763635306499
+ 0.20178186901852649
+ 0.20178737464679461
+ 0.20179288041545923
+ 0.20179838632452546
+ 0.2018038923739989
+ 0.20180939856388366
+ 0.20181490489418583
+ 0.2018204113649095
+ 0.2018259179760602
+ 0.20183142472764354
+ 0.20183693161966415
+ 0.20184243865212664
+ 0.20184794582503707
+ 0.20185345313839995
+ 0.20185896059222047
+ 0.20186446818650366
+ 0.20186997592125469
+ 0.2018754837964786
+ 0.201880991812181
+ 0.20188649996836588
+ 0.20189200826503947
+ 0.20189751670220638
+ 0.20190302527987156
+ 0.20190853399803968
+ 0.20191404285671732
+ 0.20191955185590807
+ 0.20192506099561758
+ 0.20193057027585143
+ 0.20193607969661409
+ 0.20194158925791084
+ 0.20194709895974658
+ 0.20195260880212712
+ 0.2019581187850564
+ 0.2019636289085405
+ 0.20196913917258413
+ 0.20197464957719233
+ 0.20198016012237022
+ 0.20198567080812332
+ 0.20199118163445631
+ 0.20199669260137426
+ 0.20200220370888231
+ 0.20200771495698547
+ 0.20201322634568936
+ 0.20201873787499858
+ 0.20202424954491832
+ 0.20202976135545356
+ 0.20203527330660992
+ 0.2020407853983916
+ 0.20204629763080506
+ 0.202051810003854
+ 0.20205732251754399
+ 0.20206283517188062
+ 0.20206834796686848
+ 0.2020738609025127
+ 0.20207937397881889
+ 0.2020848871957916
+ 0.20209040055343591
+ 0.20209591405175703
+ 0.2021014276907605
+ 0.20210694147045044
+ 0.20211245539083292
+ 0.2021179694519131
+ 0.20212348365369501
+ 0.20212899799618481
+ 0.20213451247938755
+ 0.20214002710330736
+ 0.20214554186795042
+ 0.20215105677332121
+ 0.2021565718194249
+ 0.20216208700626709
+ 0.20216760233385245
+ 0.20217311780218594
+ 0.20217863341127276
+ 0.20218414916111849
+ 0.20218966505172775
+ 0.20219518108310613
+ 0.2022006972552578
+ 0.20220621356818883
+ 0.20221173002190379
+ 0.20221724661640827
+ 0.2022227633517065
+ 0.20222828022780492
+ 0.2022337972447073
+ 0.20223931440241963
+ 0.20224483170094659
+ 0.2022503491402933
+ 0.20225586672046481
+ 0.20226138444146674
+ 0.20226690230330377
+ 0.20227242030598139
+ 0.20227793844950384
+ 0.20228345673387713
+ 0.20228897515910638
+ 0.20229449372519576
+ 0.2023000124321514
+ 0.20230553127997786
+ 0.20231105026868074
+ 0.20231656939826412
+ 0.20232208866873425
+ 0.20232760808009609
+ 0.20233312763235387
+ 0.20233864732551363
+ 0.20234416715957998
+ 0.20234968713455861
+ 0.20235520725045356
+ 0.20236072750727099
+ 0.20236624790501601
+ 0.2023717684436927
+ 0.20237728912330721
+ 0.20238280994386415
+ 0.20238833090536865
+ 0.20239385200782628
+ 0.20239937325124169
+ 0.20240489463561995
+ 0.20241041616096631
+ 0.20241593782728623
+ 0.20242145963458438
+ 0.20242698158286596
+ 0.20243250367213594
+ 0.20243802590240007
+ 0.20244354827366293
+ 0.20244907078592958
+ 0.20245459343920522
+ 0.20246011623349544
+ 0.20246563916880486
+ 0.20247116224513859
+ 0.20247668546250172
+ 0.20248220882089998
+ 0.2024877323203374
+ 0.20249325596082005
+ 0.2024987797423527
+ 0.20250430366494082
+ 0.20250982772858866
+ 0.20251535193330233
+ 0.20252087627908635
+ 0.20252640076594589
+ 0.20253192539388612
+ 0.20253745016291266
+ 0.20254297507302957
+ 0.20254850012424297
+ 0.20255402531655756
+ 0.20255955064997844
+ 0.20256507612451122
+ 0.20257060174015998
+ 0.20257612749693096
+ 0.2025816533948287
+ 0.20258717943385829
+ 0.20259270561402495
+ 0.20259823193533377
+ 0.20260375839779038
+ 0.20260928500139888
+ 0.20261481174616489
+ 0.20262033863209414
+ 0.20262586565919113
+ 0.20263139282746104
+ 0.20263692013690904
+ 0.20264244758754019
+ 0.20264797517935959
+ 0.2026535029123725
+ 0.20265903078658451
+ 0.20266455880199966
+ 0.2026700869586241
+ 0.20267561525646202
+ 0.20268114369551954
+ 0.20268667227580131
+ 0.20269220099731186
+ 0.20269772986005744
+ 0.20270325886404256
+ 0.202708788009272
+ 0.20271431729575179
+ 0.20271984672348656
+ 0.20272537629248147
+ 0.20273090600274166
+ 0.20273643585427173
+ 0.20274196584707788
+ 0.2027474959811647
+ 0.20275302625653679
+ 0.20275855667320039
+ 0.20276408723115952
+ 0.20276961793042036
+ 0.20277514877098704
+ 0.20278067975286565
+ 0.20278621087606044
+ 0.20279174214057696
+ 0.20279727354642038
+ 0.2028028050935958
+ 0.20280833678210838
+ 0.20281386861196332
+ 0.20281940058316511
+ 0.20282493269571999
+ 0.20283046494963211
+ 0.20283599734490759
+ 0.20284152988155055
+ 0.20284706255956658
+ 0.20285259537896039
+ 0.20285812833973815
+ 0.2028636614419039
+ 0.20286919468546333
+ 0.20287472807042162
+ 0.20288026159678382
+ 0.20288579526455466
+ 0.20289132907374022
+ 0.20289686302434418
+ 0.2029023971163732
+ 0.20290793134983182
+ 0.2029134657247248
+ 0.20291900024105766
+ 0.20292453489883513
+ 0.20293006969806335
+ 0.20293560463874649
+ 0.20294113972088962
+ 0.20294667494449836
+ 0.2029522103095785
+ 0.20295774581613352
+ 0.20296328146416967
+ 0.20296881725369204
+ 0.2029743531847058
+ 0.20297988925721561
+ 0.20298542547122658
+ 0.20299096182674489
+ 0.20299649832377459
+ 0.203002034962321
+ 0.20300757174238962
+ 0.20301310866398564
+ 0.20301864572711373
+ 0.20302418293177896
+ 0.2030297202779871
+ 0.20303525776574324
+ 0.20304079539505202
+ 0.20304633316591905
+ 0.20305187107834857
+ 0.20305740913234713
+ 0.20306294732791894
+ 0.20306848566506916
+ 0.20307402414380335
+ 0.20307956276412631
+ 0.20308510152604356
+ 0.20309064042955982
+ 0.20309617947468017
+ 0.20310171866141036
+ 0.20310725798975499
+ 0.20311279745971916
+ 0.20311833707130861
+ 0.20312387682452795
+ 0.20312941671938237
+ 0.20313495675587742
+ 0.20314049693401737
+ 0.20314603725380881
+ 0.20315157771525538
+ 0.20315711831836325
+ 0.20316265906313669
+ 0.20316819994958166
+ 0.20317374097770344
+ 0.20317928214750611
+ 0.20318482345899588
+ 0.2031903649121769
+ 0.20319590650705585
+ 0.20320144824363578
+ 0.20320699012192397
+ 0.203212532141924
+ 0.20321807430364155
+ 0.20322361660708227
+ 0.20322915905225034
+ 0.20323470163915189
+ 0.20324024436779106
+ 0.2032457872381741
+ 0.20325133025030556
+ 0.20325687340419016
+ 0.20326241669983405
+ 0.20326796013724135
+ 0.20327350371641831
+ 0.20327904743736899
+ 0.20328459130009957
+ 0.20329013530461426
+ 0.20329567945091917
+ 0.20330122373901799
+ 0.20330676816891735
+ 0.20331231274062198
+ 0.20331785745413694
+ 0.20332340230946699
+ 0.20332894730661819
+ 0.20333449244559432
+ 0.20334003772640249
+ 0.20334558314904583
+ 0.20335112871353053
+ 0.20335667441986172
+ 0.20336222026804465
+ 0.20336776625808389
+ 0.20337331238998566
+ 0.20337885866375366
+ 0.20338440507939445
+ 0.2033899516369122
+ 0.20339549833631274
+ 0.20340104517760055
+ 0.20340659216078136
+ 0.2034121392858598
+ 0.20341768655284218
+ 0.20342323396173195
+ 0.20342878151253543
+ 0.20343432920525784
+ 0.20343987703990363
+ 0.20344542501647864
+ 0.20345097313498703
+ 0.20345652139543535
+ 0.20346206979782791
+ 0.20346761834216981
+ 0.20347316702846671
+ 0.20347871585672328
+ 0.20348426482694473
+ 0.20348981393913668
+ 0.20349536319330386
+ 0.20350091258945133
+ 0.20350646212758489
+ 0.20351201180770914
+ 0.20351756162982929
+ 0.20352311159395045
+ 0.20352866170007836
+ 0.20353421194821769
+ 0.20353976233837351
+ 0.20354531287055111
+ 0.2035508635447556
+ 0.2035564143609922
+ 0.20356196531926654
+ 0.20356751641958334
+ 0.20357306766194722
+ 0.20357861904636435
+ 0.20358417057283948
+ 0.2035897222413772
+ 0.20359527405198374
+ 0.20360082600466375
+ 0.20360637809942192
+ 0.20361193033626437
+ 0.20361748271519589
+ 0.20362303523622108
+ 0.20362858789934557
+ 0.20363414070457514
+ 0.20363969365191392
+ 0.20364524674136708
+ 0.20365079997294083
+ 0.20365635334663984
+ 0.20366190686246874
+ 0.20366746052043322
+ 0.20367301432053803
+ 0.20367856826278927
+ 0.20368412234719063
+ 0.20368967657374884
+ 0.20369523094246855
+ 0.20370078545335438
+ 0.20370634010641162
+ 0.20371189490164585
+ 0.20371744983906234
+ 0.20372300491866624
+ 0.20372856014046223
+ 0.20373411550445544
+ 0.20373967101065166
+ 0.20374522665905542
+ 0.20375078244967204
+ 0.20375633838250765
+ 0.20376189445756596
+ 0.20376745067485311
+ 0.20377300703437379
+ 0.20377856353613372
+ 0.2037841201801375
+ 0.20378967696639047
+ 0.20379523389489818
+ 0.20380079096566533
+ 0.20380634817869667
+ 0.20381190553399883
+ 0.20381746303157552
+ 0.20382302067143235
+ 0.20382857845357516
+ 0.20383413637800857
+ 0.20383969444473771
+ 0.20384525265376777
+ 0.20385081100510402
+ 0.20385636949875161
+ 0.20386192813471563
+ 0.20386748691300141
+ 0.2038730458336141
+ 0.2038786048965589
+ 0.20388416410184096
+ 0.20388972344946543
+ 0.20389528293943709
+ 0.20390084257176208
+ 0.20390640234644461
+ 0.20391196226349037
+ 0.20391752232290453
+ 0.20392308252469227
+ 0.20392864286885831
+ 0.20393420335540891
+ 0.20393976398434813
+ 0.20394532475568122
+ 0.20395088566941386
+ 0.20395644672555127
+ 0.20396200792409813
+ 0.20396756926506016
+ 0.20397313074844253
+ 0.20397869237424984
+ 0.203984254142488
+ 0.20398981605316147
+ 0.20399537810627558
+ 0.20400094030183602
+ 0.20400650263984793
+ 0.20401206512031556
+ 0.20401762774324508
+ 0.20402319050864168
+ 0.2040287534165095
+ 0.20403431646685488
+ 0.20403987965968243
+ 0.20404544299499786
+ 0.2040510064728058
+ 0.20405657009311159
+ 0.20406213385591979
+ 0.20406769776123715
+ 0.20407326180906737
+ 0.20407882599941624
+ 0.20408439033228926
+ 0.20408995480769077
+ 0.20409551942562693
+ 0.20410108418610245
+ 0.20410664908912207
+ 0.20411221413469141
+ 0.20411777932281569
+ 0.20412334465350015
+ 0.2041289101267505
+ 0.20413447574257088
+ 0.20414004150096654
+ 0.2041456074019436
+ 0.20415117344550643
+ 0.20415673963166051
+ 0.20416230596041127
+ 0.20416787243176324
+ 0.20417343904572222
+ 0.20417900580229281
+ 0.20418457270148085
+ 0.2041901397432915
+ 0.2041957069277299
+ 0.20420127425480028
+ 0.20420684172450937
+ 0.20421240933686091
+ 0.20421797709186151
+ 0.20422354498951498
+ 0.20422911302982741
+ 0.20423468121280414
+ 0.20424024953844924
+ 0.20424581800676905
+ 0.20425138661776815
+ 0.2042569553714523
+ 0.20426252426782626
+ 0.20426809330689519
+ 0.20427366248866424
+ 0.20427923181313876
+ 0.20428480128032381
+ 0.2042903708902247
+ 0.20429594064284712
+ 0.2043015105381952
+ 0.20430708057627525
+ 0.20431265075709146
+ 0.20431822108065001
+ 0.20432379154695512
+ 0.20432936215601252
+ 0.20433493290782739
+ 0.20434050380240498
+ 0.20434607483974995
+ 0.20435164601986858
+ 0.20435721734276499
+ 0.204362788808445
+ 0.20436836041691325
+ 0.20437393216817595
+ 0.20437950406223684
+ 0.20438507609910261
+ 0.20439064827877754
+ 0.20439622060126675
+ 0.20440179306657605
+ 0.20440736567471005
+ 0.20441293842567451
+ 0.20441851131947475
+ 0.20442408435611478
+ 0.20442965753560149
+ 0.20443523085793852
+ 0.20444080432313208
+ 0.20444637793118689
+ 0.20445195168210825
+ 0.20445752557590122
+ 0.20446309961257164
+ 0.20446867379212419
+ 0.20447424811456361
+ 0.20447982257989608
+ 0.20448539718812683
+ 0.20449097193926011
+ 0.20449654683330162
+ 0.20450212187025657
+ 0.20450769705013011
+ 0.20451327237292757
+ 0.20451884783865365
+ 0.20452442344731459
+ 0.20452999919891451
+ 0.20453557509345921
+ 0.20454115113095389
+ 0.20454672731140383
+ 0.20455230363481364
+ 0.20455788010118911
+ 0.20456345671053547
+ 0.2045690334628574
+ 0.20457461035816069
+ 0.20458018739644998
+ 0.20458576457773101
+ 0.20459134190200853
+ 0.20459691936928828
+ 0.20460249697957497
+ 0.20460807473287385
+ 0.20461365262919057
+ 0.20461923066852991
+ 0.20462480885089759
+ 0.20463038717629781
+ 0.20463596564473685
+ 0.20464154425621936
+ 0.20464712301075066
+ 0.2046527019083364
+ 0.20465828094898075
+ 0.20466386013268958
+ 0.20466943945946858
+ 0.20467501892932197
+ 0.2046805985422559
+ 0.20468617829827468
+ 0.20469175819738403
+ 0.20469733823958911
+ 0.2047029184248953
+ 0.20470849875330716
+ 0.20471407922483101
+ 0.20471965983947107
+ 0.20472524059723252
+ 0.20473082149812166
+ 0.20473640254214273
+ 0.20474198372930141
+ 0.2047475650596019
+ 0.20475314653305102
+ 0.20475872814965299
+ 0.20476430990941347
+ 0.20476989181233723
+ 0.20477547385842951
+ 0.204781056047696
+ 0.20478663838014152
+ 0.20479222085577126
+ 0.20479780347459089
+ 0.20480338623660474
+ 0.20480896914181898
+ 0.20481455219023895
+ 0.20482013538186825
+ 0.20482571871671418
+ 0.20483130219478041
+ 0.20483688581607332
+ 0.20484246958059699
+ 0.20484805348835727
+ 0.20485363753935931
+ 0.20485922173360843
+ 0.2048648060711098
+ 0.20487039055186818
+ 0.20487597517588926
+ 0.20488155994317839
+ 0.20488714485374074
+ 0.20489272990758103
+ 0.20489831510470499
+ 0.20490390044511742
+ 0.20490948592882449
+ 0.20491507155583005
+ 0.2049206573261402
+ 0.20492624323976028
+ 0.20493182929669448
+ 0.20493741549694908
+ 0.20494300184052927
+ 0.20494858832743984
+ 0.204954174957686
+ 0.20495976173127298
+ 0.20496534864820609
+ 0.20497093570849098
+ 0.20497652291213245
+ 0.20498211025913526
+ 0.20498769774950557
+ 0.20499328538324821
+ 0.20499887316036841
+ 0.20500446108087084
+ 0.20501004914476181
+ 0.20501563735204553
+ 0.20502122570272782
+ 0.20502681419681382
+ 0.20503240283430885
+ 0.20503799161521766
+ 0.20504358053954594
+ 0.20504916960729894
+ 0.20505475881848145
+ 0.20506034817309918
+ 0.20506593767115691
+ 0.20507152731266035
+ 0.20507711709761425
+ 0.20508270702602394
+ 0.20508829709789503
+ 0.20509388731323283
+ 0.20509947767204165
+ 0.20510506817432766
+ 0.20511065882009566
+ 0.20511624960935079
+ 0.20512184054209848
+ 0.20512743161834382
+ 0.20513302283809268
+ 0.20513861420134918
+ 0.20514420570811917
+ 0.20514979735840791
+ 0.20515538915222109
+ 0.20516098108956302
+ 0.20516657317043885
+ 0.20517216539485492
+ 0.20517775776281547
+ 0.20518335027432624
+ 0.20518894292939252
+ 0.20519453572801899
+ 0.20520012867021145
+ 0.20520572175597465
+ 0.20521131498531484
+ 0.20521690835823581
+ 0.20522250187474378
+ 0.20522809553484339
+ 0.20523368933854064
+ 0.2052392832858396
+ 0.20524487737674657
+ 0.20525047161126683
+ 0.2052560659894046
+ 0.20526166051116612
+ 0.20526725517655575
+ 0.20527284998557965
+ 0.20527844493824265
+ 0.20528404003454942
+ 0.20528963527450625
+ 0.20529523065811797
+ 0.2053008261853892
+ 0.20530642185632636
+ 0.20531201767093354
+ 0.20531761362921613
+ 0.20532320973118032
+ 0.2053288059768304
+ 0.20533440236617162
+ 0.20533999889921029
+ 0.20534559557595003
+ 0.20535119239639776
+ 0.20535678936055765
+ 0.20536238646843499
+ 0.20536798372003504
+ 0.20537358111536355
+ 0.20537917865442532
+ 0.20538477633722604
+ 0.20539037416377004
+ 0.20539597213406352
+ 0.20540157024811137
+ 0.20540716850591814
+ 0.2054127669074903
+ 0.20541836545283251
+ 0.20542396414195008
+ 0.20542956297484821
+ 0.20543516195153169
+ 0.20544076107200637
+ 0.20544636033627739
+ 0.20545195974435013
+ 0.20545755929622975
+ 0.20546315899192108
+ 0.20546875883142982
+ 0.20547435881476084
+ 0.20547995894191981
+ 0.20548555921291156
+ 0.20549115962774181
+ 0.20549676018641541
+ 0.20550236088893803
+ 0.20550796173531449
+ 0.20551356272555002
+ 0.20551916385964997
+ 0.20552476513761955
+ 0.20553036655946455
+ 0.20553596812518965
+ 0.20554156983479974
+ 0.20554717168830106
+ 0.20555277368569788
+ 0.2055583758269964
+ 0.20556397811220098
+ 0.20556958054131785
+ 0.2055751831143508
+ 0.2055807858313066
+ 0.20558638869218951
+ 0.20559199169700529
+ 0.20559759484575924
+ 0.20560319813845615
+ 0.2056088015751017
+ 0.20561440515570079
+ 0.20562000888025864
+ 0.20562561274878149
+ 0.20563121676127311
+ 0.20563682091773933
+ 0.2056424252181859
+ 0.20564802966261761
+ 0.20565363425103975
+ 0.2056592389834575
+ 0.20566484385987674
+ 0.2056704488803017
+ 0.20567605404473813
+ 0.20568165935319141
+ 0.20568726480566668
+ 0.20569287040216935
+ 0.20569847614270459
+ 0.20570408202727772
+ 0.20570968805589304
+ 0.2057152942285573
+ 0.20572090054527475
+ 0.20572650700605127
+ 0.20573211361089205
+ 0.2057377203598019
+ 0.2057433272527861
+ 0.20574893428985036
+ 0.20575454147099964
+ 0.20576014879623902
+ 0.20576575626557439
+ 0.20577136387900993
+ 0.20577697163655209
+ 0.20578257953820553
+ 0.20578818758397557
+ 0.2057937957738675
+ 0.20579940410788661
+ 0.20580501258603809
+ 0.20581062120832683
+ 0.20581622997475907
+ 0.20582183888533903
+ 0.20582744794007266
+ 0.20583305713896463
+ 0.20583866648202068
+ 0.2058442759692467
+ 0.20584988560064643
+ 0.20585549537622616
+ 0.20586110529599069
+ 0.20586671535994527
+ 0.20587232556809568
+ 0.20587793592044723
+ 0.20588354641700421
+ 0.20588915705777297
+ 0.20589476784275815
+ 0.20590037877196515
+ 0.20590598984539921
+ 0.20591160106306514
+ 0.20591721242496971
+ 0.20592282393111624
+ 0.20592843558151147
+ 0.20593404737616025
+ 0.20593965931506736
+ 0.20594527139823848
+ 0.20595088362567904
+ 0.2059564959973938
+ 0.20596210851338798
+ 0.20596772117366799
+ 0.20597333397823794
+ 0.20597894692710331
+ 0.2059845600202693
+ 0.20599017325774172
+ 0.20599578663952536
+ 0.20600140016562546
+ 0.20600701383604791
+ 0.20601262765079742
+ 0.20601824160987928
+ 0.20602385571329837
+ 0.20602946996106095
+ 0.20603508435317178
+ 0.20604069888963569
+ 0.20604631357045891
+ 0.20605192839564584
+ 0.20605754336520166
+ 0.20606315847913273
+ 0.20606877373744339
+ 0.20607438914013937
+ 0.2060800046872254
+ 0.20608562037870692
+ 0.20609123621459019
+ 0.20609685219487892
+ 0.20610246831957948
+ 0.2061080845886967
+ 0.20611370100223575
+ 0.2061193175602021
+ 0.20612493426260139
+ 0.20613055110943854
+ 0.20613616810071825
+ 0.20614178523644686
+ 0.20614740251662869
+ 0.20615301994127005
+ 0.20615863751037519
+ 0.20616425522394999
+ 0.20616987308199966
+ 0.20617549108452901
+ 0.2061811092315439
+ 0.20618672752304906
+ 0.20619234595905037
+ 0.20619796453955253
+ 0.20620358326456151
+ 0.20620920213408189
+ 0.20621482114811965
+ 0.20622044030667908
+ 0.20622605960976634
+ 0.20623167905738693
+ 0.20623729864954451
+ 0.20624291838624639
+ 0.20624853826749645
+ 0.20625415829330046
+ 0.20625977846366372
+ 0.20626539877859099
+ 0.20627101923808866
+ 0.20627663984216102
+ 0.20628226059081384
+ 0.20628788148405192
+ 0.20629350252188111
+ 0.20629912370430667
+ 0.2063047450313335
+ 0.20631036650296727
+ 0.20631598811921237
+ 0.20632160988007509
+ 0.20632723178556081
+ 0.20633285383567368
+ 0.20633847603042013
+ 0.2063440983698045
+ 0.20634972085383294
+ 0.20635534348251044
+ 0.20636096625584219
+ 0.20636658917383302
+ 0.20637221223648933
+ 0.20637783544381474
+ 0.20638345879581679
+ 0.20638908229249867
+ 0.20639470593386666
+ 0.20640032971992611
+ 0.20640595365068187
+ 0.20641157772613922
+ 0.20641720194630397
+ 0.20642282631118095
+ 0.20642845082077596
+ 0.20643407547509326
+ 0.20643970027413977
+ 0.20644532521791867
+ 0.20645095030643695
+ 0.20645657553969982
+ 0.20646220091771153
+ 0.20646782644047751
+ 0.20647345210800405
+ 0.20647907792029599
+ 0.20648470387735804
+ 0.20649032997919609
+ 0.20649595622581493
+ 0.20650158261722046
+ 0.20650720915341786
+ 0.20651283583441207
+ 0.20651846266020835
+ 0.20652408963081254
+ 0.20652971674622939
+ 0.20653534400646434
+ 0.20654097141152306
+ 0.20654659896141003
+ 0.20655222665613146
+ 0.20655785449569167
+ 0.20656348248009709
+ 0.20656911060935185
+ 0.20657473888346245
+ 0.20658036730243315
+ 0.20658599586626922
+ 0.20659162457497704
+ 0.20659725342856086
+ 0.20660288242702665
+ 0.20660851157037907
+ 0.20661414085862351
+ 0.20661977029176581
+ 0.20662539986981127
+ 0.20663102959276428
+ 0.20663665946063101
+ 0.2066422894734164
+ 0.20664791963112575
+ 0.20665354993376439
+ 0.20665918038133763
+ 0.20666481097385028
+ 0.2066704417113093
+ 0.20667607259371776
+ 0.20668170362108221
+ 0.20668733479340787
+ 0.20669296611070012
+ 0.20669859757296419
+ 0.20670422918020451
+ 0.20670986093242788
+ 0.20671549282963814
+ 0.20672112487184158
+ 0.2067267570590435
+ 0.2067323893912483
+ 0.20673802186846224
+ 0.20674365449069029
+ 0.20674928725793759
+ 0.20675492017020961
+ 0.20676055322751155
+ 0.20676618642984887
+ 0.20677181977722636
+ 0.20677745326965027
+ 0.20678308690712505
+ 0.20678872068965645
+ 0.20679435461724935
+ 0.20679998868990956
+ 0.20680562290764193
+ 0.20681125727045221
+ 0.20681689177834536
+ 0.20682252643132659
+ 0.20682816122940181
+ 0.20683379617257586
+ 0.20683943126085405
+ 0.20684506649424164
+ 0.2068507018727441
+ 0.20685633739636666
+ 0.2068619730651147
+ 0.20686760887899358
+ 0.20687324483800809
+ 0.20687888094216406
+ 0.20688451719146686
+ 0.20689015358592133
+ 0.20689579012553322
+ 0.20690142681030799
+ 0.20690706364024988
+ 0.20691270061536526
+ 0.20691833773565954
+ 0.20692397500113743
+ 0.20692961241180383
+ 0.2069352499676651
+ 0.20694088766872604
+ 0.20694652551499196
+ 0.20695216350646831
+ 0.20695780164316036
+ 0.20696343992507291
+ 0.20696907835221237
+ 0.206974716924583
+ 0.20698035564219017
+ 0.20698599450504029
+ 0.20699163351313715
+ 0.2069972726664871
+ 0.20700291196509546
+ 0.2070085514089666
+ 0.20701419099810736
+ 0.20701983073252153
+ 0.20702547061221493
+ 0.20703111063719357
+ 0.20703675080746167
+ 0.20704239112302503
+ 0.20704803158388962
+ 0.20705367219005968
+ 0.20705931294154056
+ 0.20706495383833867
+ 0.20707059488045834
+ 0.20707623606790537
+ 0.20708187740068465
+ 0.207087518878802
+ 0.20709316050226226
+ 0.20709880227107128
+ 0.20710444418523341
+ 0.20711008624475502
+ 0.20711572844964093
+ 0.20712137079989654
+ 0.2071270132955276
+ 0.20713265593653848
+ 0.2071382987229351
+ 0.20714394165472275
+ 0.20714958473190628
+ 0.20715522795449157
+ 0.20716087132248395
+ 0.2071665148358888
+ 0.20717215849471093
+ 0.20717780229895569
+ 0.20718344624862889
+ 0.20718909034373548
+ 0.20719473458428123
+ 0.2072003789702711
+ 0.20720602350170977
+ 0.20721166817860373
+ 0.20721731300095778
+ 0.20722295796877729
+ 0.20722860308206706
+ 0.20723424834083351
+ 0.20723989374508101
+ 0.20724553929481529
+ 0.20725118499004186
+ 0.20725683083076546
+ 0.20726247681699142
+ 0.20726812294872576
+ 0.20727376922597374
+ 0.20727941564873956
+ 0.20728506221703036
+ 0.2072907089308498
+ 0.20729635579020378
+ 0.20730200279509772
+ 0.20730764994553685
+ 0.20731329724152717
+ 0.20731894468307238
+ 0.20732459227017946
+ 0.20733024000285327
+ 0.20733588788109863
+ 0.20734153590492138
+ 0.20734718407432637
+ 0.20735283238931948
+ 0.2073584808499056
+ 0.20736412945609059
+ 0.20736977820787919
+ 0.20737542710527693
+ 0.20738107614828905
+ 0.2073867253369209
+ 0.20739237467117802
+ 0.20739802415106551
+ 0.20740367377658894
+ 0.20740932354775357
+ 0.20741497346456425
+ 0.20742062352702742
+ 0.20742627373514688
+ 0.20743192408892955
+ 0.20743757458837969
+ 0.20744322523350278
+ 0.20744887602430459
+ 0.20745452696078948
+ 0.20746017804296393
+ 0.20746582927083321
+ 0.20747148064440171
+ 0.20747713216367528
+ 0.20748278382865978
+ 0.20748843563935956
+ 0.20749408759578059
+ 0.20749973969792809
+ 0.20750539194580706
+ 0.20751104433942327
+ 0.20751669687878213
+ 0.20752234956388846
+ 0.2075280023947477
+ 0.20753365537136559
+ 0.20753930849374719
+ 0.20754496176189824
+ 0.20755061517582313
+ 0.20755626873552821
+ 0.20756192244101787
+ 0.20756757629229794
+ 0.20757323028937441
+ 0.2075788844322515
+ 0.20758453872093521
+ 0.20759019315543081
+ 0.20759584773574322
+ 0.20760150246187775
+ 0.20760715733384036
+ 0.20761281235163637
+ 0.20761846751527063
+ 0.20762412282474862
+ 0.20762977828007614
+ 0.20763543388125746
+ 0.20764108962829911
+ 0.20764674552120538
+ 0.20765240155998271
+ 0.20765805774463539
+ 0.20766371407516929
+ 0.2076693705515899
+ 0.20767502717390199
+ 0.20768068394211142
+ 0.20768634085622367
+ 0.20769199791624357
+ 0.20769765512217647
+ 0.20770331247402823
+ 0.20770896997180371
+ 0.20771462761550838
+ 0.20772028540514759
+ 0.20772594334072661
+ 0.20773160142225097
+ 0.20773725964972597
+ 0.207742918023157
+ 0.20774857654254938
+ 0.20775423520790806
+ 0.20775989401923892
+ 0.20776555297654678
+ 0.20777121207983759
+ 0.20777687132911668
+ 0.20778253072438843
+ 0.20778819026565923
+ 0.20779384995293398
+ 0.20779950978621803
+ 0.20780516976551675
+ 0.20781082989083613
+ 0.20781649016218035
+ 0.2078221505795555
+ 0.20782781114296681
+ 0.20783347185241927
+ 0.20783913270791868
+ 0.20784479370947048
+ 0.20785045485707951
+ 0.20785611615075164
+ 0.20786177759049135
+ 0.20786743917630537
+ 0.20787310090819777
+ 0.20787876278617431
+ 0.20788442481024089
+ 0.2078900869804024
+ 0.20789574929666371
+ 0.20790141175903074
+ 0.20790707436750885
+ 0.20791273712210348
+ 0.20791840002281992
+ 0.20792406306966313
+ 0.20792972626263853
+ 0.20793538960175187
+ 0.20794105308700814
+ 0.2079467167184133
+ 0.20795238049597156
+ 0.2079580444196894
+ 0.20796370848957166
+ 0.20796937270562385
+ 0.20797503706785125
+ 0.20798070157625931
+ 0.20798636623085284
+ 0.20799203103163777
+ 0.2079976959786195
+ 0.20800336107180298
+ 0.20800902631119397
+ 0.20801469169679751
+ 0.20802035722861936
+ 0.20802602290666442
+ 0.20803168873093819
+ 0.20803735470144599
+ 0.2080430208181932
+ 0.20804868708118521
+ 0.20805435349042745
+ 0.20806002004592533
+ 0.20806568674768416
+ 0.20807135359570894
+ 0.20807702059000549
+ 0.20808268773057917
+ 0.20808835501743495
+ 0.20809402245057826
+ 0.20809969003001483
+ 0.2081053577557492
+ 0.20811102562778833
+ 0.20811669364613591
+ 0.20812236181079791
+ 0.20812803012177983
+ 0.20813369857908701
+ 0.20813936718272472
+ 0.20814503593269856
+ 0.20815070482901332
+ 0.20815637387167438
+ 0.20816204306068817
+ 0.20816771239605858
+ 0.20817338187779255
+ 0.20817905150589397
+ 0.20818472128036913
+ 0.2081903912012226
+ 0.20819606126846066
+ 0.2082017314820882
+ 0.20820740184211073
+ 0.20821307234853306
+ 0.20821874300136112
+ 0.20822441380060028
+ 0.20823008474625598
+ 0.20823575583833315
+ 0.20824142707683707
+ 0.20824709846177375
+ 0.20825276999314862
+ 0.20825844167096599
+ 0.2082641134952323
+ 0.20826978546595251
+ 0.20827545758313137
+ 0.20828112984677546
+ 0.20828680225688956
+ 0.20829247481347862
+ 0.2082981475165486
+ 0.20830382036610479
+ 0.20830949336215218
+ 0.20831516650469672
+ 0.20832083979374316
+ 0.20832651322929754
+ 0.20833218681136415
+ 0.20833786053994954
+ 0.20834353441505848
+ 0.20834920843669655
+ 0.20835488260486898
+ 0.20836055691958122
+ 0.20836623138083876
+ 0.20837190598864641
+ 0.2083775807430101
+ 0.20838325564393534
+ 0.20838893069142689
+ 0.2083946058854908
+ 0.20840028122613186
+ 0.20840595671335554
+ 0.20841163234716725
+ 0.20841730812757236
+ 0.20842298405457682
+ 0.20842866012818556
+ 0.20843433634840342
+ 0.20844001271523638
+ 0.20844568922868983
+ 0.20845136588876867
+ 0.20845704269547882
+ 0.20846271964882568
+ 0.20846839674881421
+ 0.20847407399544973
+ 0.20847975138873828
+ 0.20848542892868469
+ 0.20849110661529444
+ 0.20849678444857231
+ 0.20850246242852483
+ 0.2085081405551569
+ 0.20851381882847392
+ 0.20851949724848085
+ 0.20852517581518351
+ 0.20853085452858691
+ 0.2085365333886969
+ 0.20854221239551893
+ 0.20854789154905737
+ 0.20855357084931875
+ 0.20855925029630784
+ 0.20856492989003017
+ 0.20857060963049162
+ 0.20857628951769658
+ 0.20858196955165101
+ 0.20858764973236038
+ 0.2085933300598295
+ 0.20859901053406432
+ 0.2086046911550703
+ 0.20861037192285231
+ 0.2086160528374158
+ 0.2086217338987667
+ 0.20862741510691046
+ 0.20863309646185088
+ 0.20863877796359551
+ 0.2086444596121482
+ 0.20865014140751484
+ 0.20865582334970098
+ 0.20866150543871193
+ 0.20866718767455317
+ 0.20867287005722912
+ 0.20867855258674664
+ 0.20868423526311022
+ 0.20868991808632531
+ 0.20869560105639776
+ 0.20870128417333203
+ 0.20870696743713452
+ 0.20871265084781018
+ 0.20871833440536444
+ 0.20872401810980268
+ 0.20872970196113041
+ 0.20873538595935248
+ 0.20874107010447482
+ 0.20874675439650239
+ 0.20875243883544117
+ 0.20875812342129599
+ 0.20876380815407278
+ 0.20876949303377651
+ 0.20877517806041263
+ 0.20878086323398651
+ 0.20878654855450357
+ 0.20879223402196931
+ 0.20879791963638916
+ 0.20880360539776846
+ 0.20880929130611223
+ 0.20881497736142635
+ 0.20882066356371573
+ 0.20882634991298635
+ 0.20883203640924317
+ 0.20883772305249149
+ 0.20884340984273744
+ 0.20884909677998525
+ 0.20885478386424144
+ 0.20886047109551101
+ 0.20886615847379875
+ 0.20887184599911068
+ 0.20887753367145223
+ 0.20888322149082891
+ 0.20888890945724545
+ 0.2088945975707075
+ 0.20890028583122083
+ 0.20890597423879045
+ 0.2089116627934223
+ 0.20891735149512078
+ 0.20892304034389239
+ 0.20892872933974149
+ 0.20893441848267405
+ 0.20894010777269603
+ 0.2089457972098113
+ 0.20895148679402692
+ 0.20895717652534718
+ 0.20896286640377754
+ 0.20896855642932408
+ 0.20897424660199157
+ 0.20897993692178604
+ 0.2089856273887119
+ 0.20899131800277509
+ 0.20899700876398156
+ 0.20900269967233573
+ 0.20900839072784358
+ 0.20901408193051044
+ 0.20901977328034194
+ 0.20902546477734285
+ 0.2090311564215187
+ 0.20903684821287538
+ 0.20904254015141835
+ 0.2090482322371521
+ 0.20905392447008297
+ 0.20905961685021549
+ 0.2090653093775561
+ 0.20907100205210916
+ 0.20907669487388067
+ 0.20908238784287611
+ 0.20908808095910034
+ 0.20909377422255992
+ 0.20909946763325868
+ 0.20910516119120309
+ 0.20911085489639816
+ 0.20911654874884975
+ 0.20912224274856231
+ 0.20912793689554235
+ 0.20913363118979431
+ 0.20913932563132462
+ 0.20914502022013767
+ 0.20915071495623946
+ 0.20915640983963546
+ 0.20916210487033049
+ 0.20916780004833016
+ 0.20917349537364036
+ 0.20917919084626602
+ 0.20918488646621261
+ 0.20919058223348602
+ 0.2091962781480913
+ 0.20920197421003334
+ 0.20920767041931806
+ 0.20921336677595095
+ 0.20921906327993747
+ 0.20922475993128251
+ 0.20923045672999213
+ 0.20923615367607165
+ 0.20924185076952564
+ 0.20924754801036047
+ 0.20925324539858106
+ 0.20925894293419295
+ 0.20926464061720162
+ 0.20927033844761242
+ 0.20927603642543086
+ 0.20928173455066237
+ 0.20928743282331189
+ 0.20929313124338547
+ 0.20929882981088796
+ 0.20930452852582529
+ 0.20931022738820249
+ 0.20931592639802502
+ 0.20932162555529879
+ 0.20932732486002831
+ 0.20933302431221998
+ 0.20933872391187827
+ 0.2093444236590091
+ 0.20935012355361801
+ 0.20935582359571045
+ 0.20936152378529074
+ 0.20936722412236602
+ 0.20937292460694068
+ 0.20937862523902012
+ 0.20938432601860985
+ 0.20939002694571529
+ 0.20939572802034248
+ 0.20940142924249577
+ 0.20940713061218122
+ 0.20941283212940423
+ 0.20941853379417028
+ 0.20942423560648435
+ 0.20942993756635184
+ 0.20943563967377876
+ 0.20944134192877056
+ 0.20944704433133168
+ 0.20945274688146867
+ 0.20945844957918633
+ 0.20946415242448974
+ 0.20946985541738533
+ 0.20947555855787811
+ 0.20948126184597246
+ 0.2094869652816754
+ 0.20949266886499193
+ 0.20949837259592635
+ 0.20950407647448527
+ 0.2095097805006742
+ 0.20951548467449743
+ 0.20952118899596156
+ 0.209526893465071
+ 0.20953259808183225
+ 0.20953830284624969
+ 0.2095440077583294
+ 0.20954971281807686
+ 0.2095554180254969
+ 0.20956112338059557
+ 0.2095668288833778
+ 0.20957253453384908
+ 0.20957824033201547
+ 0.20958394627788127
+ 0.20958965237145299
+ 0.20959535861273573
+ 0.20960106500173431
+ 0.20960677153845481
+ 0.20961247822290252
+ 0.2096181850550832
+ 0.20962389203500101
+ 0.20962959916266311
+ 0.20963530643807346
+ 0.20964101386123843
+ 0.20964672143216309
+ 0.20965242915085289
+ 0.20965813701731326
+ 0.20966384503154972
+ 0.2096695531935677
+ 0.20967526150337215
+ 0.20968096996096916
+ 0.20968667856636414
+ 0.20969238731956144
+ 0.20969809622056776
+ 0.20970380526938839
+ 0.2097095144660279
+ 0.20971522381049276
+ 0.20972093330278738
+ 0.20972664294291832
+ 0.20973235273089
+ 0.20973806266670839
+ 0.20974377275037848
+ 0.20974948298190624
+ 0.20975519336129717
+ 0.20976090388855573
+ 0.20976661456368834
+ 0.20977232538670015
+ 0.2097780363575964
+ 0.20978374747638281
+ 0.20978945874306465
+ 0.20979517015764756
+ 0.20980088172013639
+ 0.20980659343053715
+ 0.20981230528885539
+ 0.20981801729509605
+ 0.20982372944926456
+ 0.20982944175136697
+ 0.20983515420140778
+ 0.20984086679939329
+ 0.20984657954532876
+ 0.20985229243921891
+ 0.20985800548107039
+ 0.20986371867088766
+ 0.20986943200867605
+ 0.20987514549444231
+ 0.20988085912819016
+ 0.20988657290992624
+ 0.20989228683965552
+ 0.20989800091738342
+ 0.20990371514311543
+ 0.20990942951685704
+ 0.20991514403861433
+ 0.20992085870839117
+ 0.20992657352619462
+ 0.20993228849202911
+ 0.20993800360590009
+ 0.20994371886781363
+ 0.20994943427777471
+ 0.20995514983578925
+ 0.20996086554186183
+ 0.20996658139599886
+ 0.20997229739820536
+ 0.20997801354848625
+ 0.2099837298468476
+ 0.20998944629329491
+ 0.2099951628878331
+ 0.21000087963046823
+ 0.21000659652120521
+ 0.21001231356004957
+ 0.21001803074700731
+ 0.21002374808208343
+ 0.21002946556528332
+ 0.21003518319661207
+ 0.21004090097607619
+ 0.21004661890368012
+ 0.21005233697942985
+ 0.21005805520333035
+ 0.21006377357538764
+ 0.21006949209560674
+ 0.2100752107639931
+ 0.21008092958055272
+ 0.21008664854529011
+ 0.21009236765821171
+ 0.21009808691932208
+ 0.21010380632862771
+ 0.21010952588613308
+ 0.21011524559184361
+ 0.21012096544576539
+ 0.21012668544790342
+ 0.21013240559826363
+ 0.21013812589685107
+ 0.21014384634367114
+ 0.21014956693872944
+ 0.21015528768203151
+ 0.21016100857358269
+ 0.21016672961338856
+ 0.21017245080145411
+ 0.21017817213778531
+ 0.21018389362238721
+ 0.2101896152552658
+ 0.21019533703642554
+ 0.21020105896587343
+ 0.21020678104361354
+ 0.21021250326965174
+ 0.21021822564399367
+ 0.21022394816664478
+ 0.21022967083760996
+ 0.21023539365689592
+ 0.21024111662450648
+ 0.21024683974044819
+ 0.21025256300472658
+ 0.21025828641734612
+ 0.21026400997831332
+ 0.21026973368763324
+ 0.2102754575453108
+ 0.21028118155135259
+ 0.21028690570576294
+ 0.210292630008548
+ 0.21029835445971276
+ 0.21030407905926324
+ 0.21030980380720488
+ 0.21031552870354225
+ 0.21032125374828173
+ 0.21032697894142846
+ 0.21033270428298736
+ 0.21033842977296499
+ 0.21034415541136636
+ 0.21034988119819592
+ 0.21035560713346074
+ 0.21036133321716527
+ 0.2103670594493155
+ 0.21037278582991656
+ 0.21037851235897378
+ 0.21038423903649284
+ 0.21038996586247907
+ 0.21039569283693813
+ 0.21040141995987549
+ 0.21040714723129664
+ 0.21041287465120656
+ 0.21041860221961128
+ 0.21042432993651586
+ 0.21043005780192625
+ 0.2104357858158469
+ 0.21044151397828451
+ 0.21044724228924391
+ 0.21045297074873071
+ 0.21045869935675038
+ 0.21046442811330793
+ 0.2104701570184094
+ 0.21047588607206025
+ 0.21048161527426554
+ 0.2104873446250313
+ 0.21049307412436188
+ 0.21049880377226407
+ 0.21050453356874266
+ 0.21051026351380328
+ 0.21051599360745135
+ 0.21052172384969198
+ 0.2105274542405311
+ 0.21053318477997435
+ 0.21053891546802653
+ 0.21054464630469391
+ 0.21055037728998133
+ 0.21055610842389433
+ 0.21056183970643844
+ 0.21056757113761923
+ 0.21057330271744218
+ 0.21057903444591275
+ 0.21058476632303605
+ 0.21059049834881802
+ 0.21059623052326432
+ 0.21060196284637972
+ 0.21060769531816995
+ 0.21061342793864096
+ 0.21061916070779726
+ 0.21062489362564485
+ 0.21063062669218979
+ 0.21063635990743662
+ 0.21064209327139075
+ 0.21064782678405883
+ 0.21065356044544531
+ 0.21065929425555568
+ 0.21066502821439609
+ 0.21067076232197146
+ 0.2106764965782868
+ 0.21068223098334865
+ 0.21068796553716207
+ 0.21069370023973252
+ 0.21069943509106512
+ 0.21070517009116579
+ 0.2107109052400401
+ 0.2107166405376926
+ 0.21072237598412971
+ 0.21072811157935709
+ 0.21073384732337916
+ 0.21073958321620204
+ 0.21074531925783169
+ 0.21075105544827261
+ 0.21075679178753037
+ 0.21076252827561143
+ 0.21076826491252046
+ 0.21077400169826288
+ 0.21077973863284474
+ 0.21078547571627054
+ 0.21079121294854683
+ 0.21079695032967863
+ 0.21080268785967149
+ 0.21080842553853044
+ 0.21081416336626146
+ 0.21081990134287013
+ 0.21082563946836144
+ 0.21083137774274149
+ 0.21083711616601525
+ 0.21084285473818823
+ 0.21084859345926599
+ 0.21085433232925407
+ 0.21086007134815793
+ 0.21086581051598324
+ 0.21087154983273537
+ 0.21087728929841951
+ 0.21088302891304161
+ 0.21088876867660669
+ 0.21089450858912026
+ 0.21090024865058793
+ 0.21090598886101519
+ 0.21091172922040807
+ 0.21091746972877107
+ 0.21092321038611034
+ 0.2109289511924313
+ 0.21093469214773902
+ 0.21094043325203954
+ 0.2109461745053379
+ 0.21095191590763962
+ 0.21095765745895079
+ 0.21096339915927584
+ 0.21096914100862141
+ 0.21097488300699194
+ 0.21098062515439356
+ 0.21098636745083171
+ 0.21099210989631151
+ 0.21099785249083897
+ 0.21100359523441914
+ 0.21100933812705752
+ 0.21101508116875972
+ 0.21102082435953168
+ 0.211026567699378
+ 0.21103231118830471
+ 0.21103805482631735
+ 0.21104379861342093
+ 0.2110495425496216
+ 0.21105528663492476
+ 0.21106103086933503
+ 0.21106677525285888
+ 0.21107251978550148
+ 0.21107826446726824
+ 0.21108400929816473
+ 0.2110897542781961
+ 0.21109549940736877
+ 0.21110124468568731
+ 0.21110699011315723
+ 0.21111273568978417
+ 0.21111848141557404
+ 0.21112422729053257
+ 0.21112997331466418
+ 0.21113571948797488
+ 0.21114146581047027
+ 0.21114721228215594
+ 0.21115295890303684
+ 0.21115870567311909
+ 0.21116445259240768
+ 0.21117019966090869
+ 0.2111759468786272
+ 0.21118169424556812
+ 0.2111874417617382
+ 0.2111931894271423
+ 0.21119893724178607
+ 0.21120468520567454
+ 0.21121043331881378
+ 0.21121618158120931
+ 0.21122192999286613
+ 0.21122767855378988
+ 0.21123342726398656
+ 0.21123917612346069
+ 0.21124492513221887
+ 0.21125067429026564
+ 0.21125642359760699
+ 0.2112621730542486
+ 0.2112679226601954
+ 0.21127367241545353
+ 0.21127942232002797
+ 0.21128517237392433
+ 0.2112909225771481
+ 0.21129667292970536
+ 0.21130242343160066
+ 0.21130817408284014
+ 0.21131392488342918
+ 0.21131967583337347
+ 0.2113254269326775
+ 0.21133117818134833
+ 0.21133692957939004
+ 0.21134268112680915
+ 0.21134843282361079
+ 0.21135418466980044
+ 0.21135993666538366
+ 0.21136568881036552
+ 0.21137144110475212
+ 0.21137719354854895
+ 0.21138294614176109
+ 0.21138869888439454
+ 0.21139445177645394
+ 0.21140020481794586
+ 0.21140595800887529
+ 0.21141171134924736
+ 0.21141746483906856
+ 0.21142321847834342
+ 0.21142897226707807
+ 0.21143472620527759
+ 0.21144048029294749
+ 0.21144623453009387
+ 0.21145198891672168
+ 0.21145774345283713
+ 0.21146349813844467
+ 0.21146925297355043
+ 0.21147500795815941
+ 0.21148076309227767
+ 0.21148651837591084
+ 0.21149227380906396
+ 0.21149802939174306
+ 0.21150378512395271
+ 0.21150954100569949
+ 0.21151529703698851
+ 0.21152105321782469
+ 0.21152680954821423
+ 0.21153256602816317
+ 0.21153832265767547
+ 0.21154407943675779
+ 0.21154983636541574
+ 0.21155559344365382
+ 0.21156135067147852
+ 0.21156710804889456
+ 0.2115728655759084
+ 0.21157862325252466
+ 0.21158438107874933
+ 0.21159013905458809
+ 0.2115958971800459
+ 0.21160165545512888
+ 0.21160741387984161
+ 0.21161317245419065
+ 0.21161893117818098
+ 0.21162469005181833
+ 0.21163044907510811
+ 0.21163620824805551
+ 0.21164196757066656
+ 0.21164772704294685
+ 0.2116534866649008
+ 0.21165924643653569
+ 0.21166500635785551
+ 0.21167076642886626
+ 0.21167652664957362
+ 0.21168228701998359
+ 0.21168804754010082
+ 0.21169380820993075
+ 0.21169956902947953
+ 0.2117053299987523
+ 0.21171109111775555
+ 0.21171685238649277
+ 0.2117226138049712
+ 0.21172837537319583
+ 0.21173413709117231
+ 0.21173989895890608
+ 0.21174566097640227
+ 0.21175142314366699
+ 0.21175718546070532
+ 0.21176294792752332
+ 0.21176871054412549
+ 0.21177447331051852
+ 0.21178023622670741
+ 0.21178599929269784
+ 0.21179176250849469
+ 0.21179752587410419
+ 0.21180328938953191
+ 0.21180905305478293
+ 0.21181481686986275
+ 0.21182058083477748
+ 0.21182634494953231
+ 0.21183210921413206
+ 0.21183787362858364
+ 0.21184363819289131
+ 0.21184940290706139
+ 0.21185516777109942
+ 0.21186093278501034
+ 0.21186669794879981
+ 0.211872463262474
+ 0.21187822872603787
+ 0.21188399433949703
+ 0.21188976010285659
+ 0.2118955260161226
+ 0.2119012920793007
+ 0.21190705829239639
+ 0.21191282465541475
+ 0.21191859116836148
+ 0.21192435783124258
+ 0.21193012464406308
+ 0.21193589160682819
+ 0.21194165871954443
+ 0.21194742598221686
+ 0.21195319339485058
+ 0.2119589609574512
+ 0.21196472867002478
+ 0.21197049653257638
+ 0.21197626454511218
+ 0.21198203270763716
+ 0.21198780102015696
+ 0.21199356948267667
+ 0.21199933809520285
+ 0.21200510685774013
+ 0.21201087577029407
+ 0.21201664483287069
+ 0.21202241404547573
+ 0.21202818340811366
+ 0.21203395292079108
+ 0.21203972258351311
+ 0.21204549239628487
+ 0.21205126235911234
+ 0.21205703247200119
+ 0.21206280273495706
+ 0.21206857314798494
+ 0.21207434371109044
+ 0.21208011442427965
+ 0.2120858852875572
+ 0.21209165630092972
+ 0.21209742746440169
+ 0.21210319877797976
+ 0.21210897024166805
+ 0.21211474185547355
+ 0.21212051361940049
+ 0.21212628553345539
+ 0.21213205759764384
+ 0.21213782981197041
+ 0.21214360217644176
+ 0.21214937469106243
+ 0.21215514735583857
+ 0.21216092017077517
+ 0.21216669313587849
+ 0.21217246625115402
+ 0.21217823951660625
+ 0.21218401293224251
+ 0.21218978649806625
+ 0.21219556021408462
+ 0.21220133408030264
+ 0.21220710809672547
+ 0.21221288226335974
+ 0.21221865658020947
+ 0.21222443104728125
+ 0.21223020566458028
+ 0.21223598043211259
+ 0.21224175534988277
+ 0.21224753041789746
+ 0.21225330563616121
+ 0.21225908100468016
+ 0.21226485652345933
+ 0.21227063219250494
+ 0.21227640801182204
+ 0.21228218398141674
+ 0.21228796010129414
+ 0.21229373637145929
+ 0.21229951279191883
+ 0.21230528936267737
+ 0.21231106608374106
+ 0.21231684295511538
+ 0.21232261997680552
+ 0.21232839714881707
+ 0.21233417447115616
+ 0.21233995194382729
+ 0.21234572956683714
+ 0.21235150734019032
+ 0.21235728526389291
+ 0.2123630633379506
+ 0.21236884156236885
+ 0.21237461993715237
+ 0.21238039846230822
+ 0.21238617713784055
+ 0.21239195596375537
+ 0.21239773494005842
+ 0.21240351406675517
+ 0.21240929334385136
+ 0.21241507277135249
+ 0.21242085234926378
+ 0.21242663207759072
+ 0.21243241195633894
+ 0.21243819198551461
+ 0.21244397216512276
+ 0.21244975249516856
+ 0.21245553297565867
+ 0.21246131360659759
+ 0.21246709438799147
+ 0.21247287531984541
+ 0.21247865640216504
+ 0.21248443763495595
+ 0.21249021901822426
+ 0.21249600055197509
+ 0.21250178223621413
+ 0.21250756407094629
+ 0.21251334605617786
+ 0.21251912819191388
+ 0.21252491047816049
+ 0.21253069291492277
+ 0.21253647550220689
+ 0.21254225824001738
+ 0.21254804112836037
+ 0.21255382416724158
+ 0.21255960735666654
+ 0.21256539069664088
+ 0.21257117418716917
+ 0.21257695782825811
+ 0.21258274161991322
+ 0.21258852556213967
+ 0.21259430965494261
+ 0.21260009389832865
+ 0.21260587829230226
+ 0.2126116628368698
+ 0.21261744753203618
+ 0.21262323237780759
+ 0.21262901737418918
+ 0.21263480252118658
+ 0.21264058781880582
+ 0.21264637326705157
+ 0.21265215886592997
+ 0.21265794461544665
+ 0.21266373051560716
+ 0.21266951656641664
+ 0.21267530276788077
+ 0.21268108912000566
+ 0.21268687562279584
+ 0.21269266227625797
+ 0.21269844908039676
+ 0.21270423603521874
+ 0.21271002314072854
+ 0.2127158103969318
+ 0.21272159780383462
+ 0.21272738536144217
+ 0.21273317306976061
+ 0.21273896092879435
+ 0.21274474893855028
+ 0.21275053709903291
+ 0.21275632541024833
+ 0.21276211387220165
+ 0.21276790248489913
+ 0.21277369124834628
+ 0.21277948016254766
+ 0.21278526922751012
+ 0.21279105844323859
+ 0.21279684780973823
+ 0.21280263732701574
+ 0.21280842699507568
+ 0.21281421681392376
+ 0.21282000678356597
+ 0.2128257969040081
+ 0.21283158717525461
+ 0.21283737759731228
+ 0.21284316817018561
+ 0.21284895889388075
+ 0.21285474976840343
+ 0.21286054079375871
+ 0.21286633196995272
+ 0.21287212329699062
+ 0.21287791477487847
+ 0.2128837064036215
+ 0.21288949818322478
+ 0.21289529011369443
+ 0.21290108219503603
+ 0.21290687442725542
+ 0.2129126668103575
+ 0.21291845934434855
+ 0.21292425202923362
+ 0.2129300448650184
+ 0.21293583785170839
+ 0.21294163098930946
+ 0.21294742427782704
+ 0.21295321771726633
+ 0.21295901130763353
+ 0.21296480504893364
+ 0.2129705989411729
+ 0.21297639298435644
+ 0.21298218717848932
+ 0.21298798152357826
+ 0.21299377601962832
+ 0.21299957066664474
+ 0.21300536546463356
+ 0.21301116041360046
+ 0.21301695551355004
+ 0.21302275076448896
+ 0.21302854616642239
+ 0.21303434171935595
+ 0.21304013742329528
+ 0.21304593327824597
+ 0.21305172928421323
+ 0.21305752544120313
+ 0.21306332174922088
+ 0.21306911820827207
+ 0.21307491481836285
+ 0.21308071157949784
+ 0.21308650849168373
+ 0.21309230555492512
+ 0.21309810276922767
+ 0.21310390013459804
+ 0.2131096976510409
+ 0.21311549531856119
+ 0.21312129313716635
+ 0.21312709110686032
+ 0.21313288922764928
+ 0.2131386874995389
+ 0.21314448592253488
+ 0.2131502844966422
+ 0.21315608322186669
+ 0.21316188209821435
+ 0.2131676811256904
+ 0.213173480304301
+ 0.21317927963405076
+ 0.21318507911494522
+ 0.21319087874699127
+ 0.21319667853019392
+ 0.21320247846455767
+ 0.21320827855008948
+ 0.21321407878679477
+ 0.21321987917467822
+ 0.21322567971374601
+ 0.21323148040400378
+ 0.21323728124545716
+ 0.21324308223811134
+ 0.21324888338197245
+ 0.21325468467704617
+ 0.21326048612333709
+ 0.2132662877208519
+ 0.21327208946959572
+ 0.2132778913695737
+ 0.21328369342079251
+ 0.2132894956232568
+ 0.21329529797697222
+ 0.21330110048194487
+ 0.21330690313817999
+ 0.21331270594568319
+ 0.21331850890446008
+ 0.21332431201451643
+ 0.2133301152758578
+ 0.21333591868848983
+ 0.21334172225241768
+ 0.21334752596764711
+ 0.21335332983418412
+ 0.21335913385203395
+ 0.21336493802120227
+ 0.21337074234169418
+ 0.21337654681351634
+ 0.21338235143667345
+ 0.21338815621117163
+ 0.213393961137016
+ 0.21339976621421233
+ 0.2134055714427667
+ 0.21341137682268427
+ 0.21341718235397017
+ 0.21342298803663107
+ 0.21342879387067171
+ 0.21343459985609758
+ 0.21344040599291503
+ 0.21344621228112967
+ 0.21345201872074604
+ 0.21345782531177038
+ 0.2134636320542089
+ 0.21346943894806611
+ 0.21347524599334833
+ 0.21348105319006064
+ 0.21348686053820926
+ 0.21349266803779926
+ 0.21349847568883687
+ 0.21350428349132669
+ 0.21351009144527497
+ 0.21351589955068728
+ 0.21352170780756932
+ 0.21352751621592628
+ 0.21353332477576484
+ 0.21353913348708853
+ 0.21354494234990523
+ 0.21355075136421886
+ 0.21355656053003574
+ 0.21356236984736204
+ 0.21356817931620181
+ 0.21357398893656179
+ 0.2135797987084477
+ 0.2135856086318646
+ 0.21359141870681878
+ 0.21359722893331479
+ 0.21360303931135874
+ 0.21360884984095646
+ 0.21361466052211356
+ 0.2136204713548352
+ 0.21362628233912753
+ 0.2136320934749957
+ 0.21363790476244549
+ 0.21364371620148237
+ 0.21364952779211269
+ 0.21365533953434054
+ 0.21366115142817313
+ 0.21366696347361505
+ 0.21367277567067255
+ 0.21367858801935075
+ 0.21368440051965534
+ 0.21369021317159198
+ 0.2136960259751664
+ 0.21370183893038416
+ 0.21370765203725051
+ 0.21371346529577218
+ 0.2137192787059532
+ 0.21372509226780029
+ 0.21373090598131864
+ 0.21373671984651396
+ 0.2137425338633919
+ 0.21374834803195758
+ 0.2137541623522177
+ 0.2137599768241765
+ 0.21376579144784108
+ 0.21377160622321617
+ 0.21377742115030682
+ 0.21378323622911988
+ 0.2137890514596604
+ 0.21379486684193363
+ 0.21380068237594566
+ 0.21380649806170227
+ 0.21381231389920857
+ 0.21381812988847027
+ 0.21382394602949295
+ 0.21382976232228298
+ 0.21383557876684489
+ 0.21384139536318489
+ 0.21384721211130864
+ 0.2138530290112213
+ 0.21385884606292915
+ 0.21386466326643677
+ 0.21387048062175096
+ 0.21387629812887671
+ 0.21388211578781985
+ 0.21388793359858607
+ 0.21389375156118043
+ 0.21389956967560869
+ 0.213905387941877
+ 0.21391120635999111
+ 0.2139170249299556
+ 0.21392284365177672
+ 0.21392866252546014
+ 0.21393448155101152
+ 0.21394030072843664
+ 0.21394612005774055
+ 0.21395193953892902
+ 0.21395775917200816
+ 0.2139635789569827
+ 0.21396939889385877
+ 0.21397521898264274
+ 0.21398103922333903
+ 0.21398685961595348
+ 0.21399268016049283
+ 0.21399850085696115
+ 0.21400432170536457
+ 0.21401014270570945
+ 0.2140159638580004
+ 0.2140217851622441
+ 0.21402760661844525
+ 0.21403342822660948
+ 0.21403924998674304
+ 0.21404507189885114
+ 0.21405089396293991
+ 0.21405671617901403
+ 0.21406253854707974
+ 0.21406836106714272
+ 0.21407418373920864
+ 0.21408000656328263
+ 0.2140858295393705
+ 0.2140916526674784
+ 0.21409747594761153
+ 0.21410329937977551
+ 0.21410912296397611
+ 0.21411494670021844
+ 0.21412077058850931
+ 0.21412659462885281
+ 0.21413241882125572
+ 0.21413824316572308
+ 0.21414406766226129
+ 0.21414989231087483
+ 0.21415571711157008
+ 0.21416154206435262
+ 0.21416736716922768
+ 0.21417319242620148
+ 0.21417901783527915
+ 0.21418484339646643
+ 0.214190669109769
+ 0.21419649497519255
+ 0.21420232099274283
+ 0.21420814716242551
+ 0.21421397348424573
+ 0.21421979995820972
+ 0.21422562658432273
+ 0.21423145336258981
+ 0.21423728029301783
+ 0.21424310737561195
+ 0.21424893461037781
+ 0.21425476199732063
+ 0.21426058953644661
+ 0.21426641722776094
+ 0.21427224507126938
+ 0.21427807306697749
+ 0.21428390121489166
+ 0.2142897295150164
+ 0.21429555796735805
+ 0.21430138657192174
+ 0.21430721532871425
+ 0.21431304423773967
+ 0.21431887329900426
+ 0.21432470251251423
+ 0.21433053187827431
+ 0.21433636139629056
+ 0.21434219106656888
+ 0.21434802088911434
+ 0.21435385086393319
+ 0.21435968099103056
+ 0.21436551127041231
+ 0.21437134170208455
+ 0.21437717228605196
+ 0.21438300302232022
+ 0.21438883391089616
+ 0.21439466495178394
+ 0.21440049614499068
+ 0.21440632749052066
+ 0.21441215898838059
+ 0.21441799063857508
+ 0.21442382244111099
+ 0.21442965439599299
+ 0.21443548650322664
+ 0.2144413187628183
+ 0.21444715117477317
+ 0.21445298373909741
+ 0.21445881645579568
+ 0.21446464932487427
+ 0.2144704823463395
+ 0.2144763155201953
+ 0.21448214884644906
+ 0.21448798232510502
+ 0.21449381595616976
+ 0.21449964973964858
+ 0.21450548367554717
+ 0.21451131776387122
+ 0.21451715200462598
+ 0.21452298639781769
+ 0.21452882094345146
+ 0.21453465564153357
+ 0.2145404904920698
+ 0.21454632549506417
+ 0.21455216065052407
+ 0.21455799595845459
+ 0.2145638314188611
+ 0.21456966703174965
+ 0.21457550279712606
+ 0.21458133871499502
+ 0.21458717478536321
+ 0.2145930110082353
+ 0.21459884738361817
+ 0.21460468391151646
+ 0.2146105205919363
+ 0.21461635742488294
+ 0.2146221944103622
+ 0.21462803154838017
+ 0.21463386883894223
+ 0.21463970628205392
+ 0.21464554387772047
+ 0.21465138162594824
+ 0.21465721952674288
+ 0.21466305758010953
+ 0.21466889578605394
+ 0.21467473414458246
+ 0.21468057265569965
+ 0.2146864113194118
+ 0.21469225013572463
+ 0.21469808910464389
+ 0.21470392822617473
+ 0.21470976750032295
+ 0.21471560692709465
+ 0.21472144650649466
+ 0.21472728623852969
+ 0.21473312612320436
+ 0.21473896616052504
+ 0.21474480635049692
+ 0.21475064669312613
+ 0.21475648718841797
+ 0.21476232783637811
+ 0.2147681686370124
+ 0.21477400959032641
+ 0.21477985069632594
+ 0.21478569195501623
+ 0.21479153336640347
+ 0.21479737493049286
+ 0.21480321664729013
+ 0.21480905851680107
+ 0.21481490053903146
+ 0.21482074271398685
+ 0.21482658504167307
+ 0.21483242752209478
+ 0.21483827015525941
+ 0.21484411294117139
+ 0.21484995587983616
+ 0.21485579897126039
+ 0.21486164221544879
+ 0.21486748561240759
+ 0.21487332916214252
+ 0.21487917286465885
+ 0.2148850167199628
+ 0.21489086072805905
+ 0.21489670488895438
+ 0.21490254920265348
+ 0.21490839366916312
+ 0.21491423828848746
+ 0.21492008306063329
+ 0.21492592798560642
+ 0.21493177306341193
+ 0.21493761829405567
+ 0.2149434636775433
+ 0.21494930921388003
+ 0.21495515490307224
+ 0.21496100074512547
+ 0.21496684674004557
+ 0.2149726928878373
+ 0.21497853918850679
+ 0.21498438564206038
+ 0.21499023224850267
+ 0.21499607900784004
+ 0.21500192592007819
+ 0.21500777298522231
+ 0.21501362020327813
+ 0.21501946757425192
+ 0.21502531509814896
+ 0.21503116277497442
+ 0.21503701060473449
+ 0.21504285858743508
+ 0.21504870672308121
+ 0.2150545550116793
+ 0.21506040345323454
+ 0.21506625204775259
+ 0.21507210079523922
+ 0.21507794969570027
+ 0.21508379874914091
+ 0.21508964795556731
+ 0.21509549731498481
+ 0.21510134682739959
+ 0.21510719649281645
+ 0.21511304631124206
+ 0.21511889628268119
+ 0.21512474640714066
+ 0.21513059668462514
+ 0.2151364471151398
+ 0.21514229769869198
+ 0.21514814843528643
+ 0.21515399932492832
+ 0.21515985036762444
+ 0.21516570156337958
+ 0.21517155291219989
+ 0.21517740441409117
+ 0.21518325606905814
+ 0.2151891078771081
+ 0.21519495983824471
+ 0.21520081195247526
+ 0.21520666421980506
+ 0.21521251664023974
+ 0.21521836921378404
+ 0.21522422194044535
+ 0.21523007482022774
+ 0.21523592785313811
+ 0.21524178103918112
+ 0.21524763437836358
+ 0.21525348787069021
+ 0.21525934151616666
+ 0.21526519531479987
+ 0.21527104926659393
+ 0.21527690337155514
+ 0.21528275762968976
+ 0.21528861204100255
+ 0.21529446660549972
+ 0.21530032132318713
+ 0.21530617619406986
+ 0.21531203121815376
+ 0.21531788639544508
+ 0.21532374172594854
+ 0.21532959720967096
+ 0.21533545284661698
+ 0.21534130863679296
+ 0.21534716458020411
+ 0.21535302067685663
+ 0.2153588769267554
+ 0.21536473332990758
+ 0.21537058988631738
+ 0.2153764465959907
+ 0.21538230345893364
+ 0.21538816047515211
+ 0.21539401764465119
+ 0.21539987496743676
+ 0.21540573244351505
+ 0.21541159007289079
+ 0.21541744785557082
+ 0.21542330579155927
+ 0.21542916388086347
+ 0.21543502212348814
+ 0.21544088051943913
+ 0.21544673906872203
+ 0.21545259777134279
+ 0.21545845662730756
+ 0.21546431563662055
+ 0.21547017479928862
+ 0.21547603411531754
+ 0.21548189358471251
+ 0.21548775320747923
+ 0.21549361298362357
+ 0.21549947291315125
+ 0.21550533299606811
+ 0.21551119323237922
+ 0.21551705362209106
+ 0.21552291416520869
+ 0.21552877486173797
+ 0.2155346357116853
+ 0.21554049671505512
+ 0.215546357871854
+ 0.21555221918208703
+ 0.21555808064576051
+ 0.21556394226288028
+ 0.21556980403345097
+ 0.2155756659574789
+ 0.21558152803497038
+ 0.2155873902659301
+ 0.21559325265036447
+ 0.2155991151882786
+ 0.21560497787967872
+ 0.21561084072457032
+ 0.21561670372295896
+ 0.21562256687484999
+ 0.21562843018025016
+ 0.2156342936391642
+ 0.21564015725159849
+ 0.2156460210175582
+ 0.21565188493704962
+ 0.2156577490100775
+ 0.21566361323664815
+ 0.21566947761676725
+ 0.21567534215044074
+ 0.21568120683767425
+ 0.21568707167847256
+ 0.21569293667284248
+ 0.21569880182078929
+ 0.21570466712231925
+ 0.21571053257743655
+ 0.21571639818614863
+ 0.21572226394846006
+ 0.21572812986437676
+ 0.21573399593390491
+ 0.21573986215704991
+ 0.21574572853381688
+ 0.21575159506421271
+ 0.21575746174824206
+ 0.21576332858591132
+ 0.21576919557722568
+ 0.21577506272219096
+ 0.21578093002081347
+ 0.2157867974730984
+ 0.21579266507905101
+ 0.21579853283867767
+ 0.21580440075198412
+ 0.21581026881897508
+ 0.21581613703965788
+ 0.21582200541403679
+ 0.21582787394211864
+ 0.21583374262390814
+ 0.21583961145941152
+ 0.21584548044863466
+ 0.21585134959158231
+ 0.21585721888826118
+ 0.21586308833867721
+ 0.21586895794283495
+ 0.21587482770074087
+ 0.21588069761240064
+ 0.21588656767782011
+ 0.21589243789700455
+ 0.21589830826995912
+ 0.2159041787966913
+ 0.21591004947720521
+ 0.21591592031150716
+ 0.21592179129960304
+ 0.21592766244149855
+ 0.21593353373719842
+ 0.21593940518670954
+ 0.21594527679003764
+ 0.2159511485471875
+ 0.21595702045816537
+ 0.21596289252297707
+ 0.21596876474162791
+ 0.21597463711412415
+ 0.21598050964047102
+ 0.21598638232067438
+ 0.21599225515473999
+ 0.21599812814267424
+ 0.21600400128448119
+ 0.21600987458016774
+ 0.21601574802973972
+ 0.21602162163320238
+ 0.21602749539056207
+ 0.21603336930182293
+ 0.2160392433669929
+ 0.21604511758607559
+ 0.21605099195907851
+ 0.21605686648600628
+ 0.21606274116686422
+ 0.21606861600165914
+ 0.21607449099039691
+ 0.21608036613308221
+ 0.21608624142972077
+ 0.21609211688031907
+ 0.21609799248488276
+ 0.21610386824341712
+ 0.21610974415592807
+ 0.21611562022242131
+ 0.2161214964429026
+ 0.21612737281737723
+ 0.21613324934585215
+ 0.21613912602833149
+ 0.21614500286482208
+ 0.21615087985532924
+ 0.21615675699985876
+ 0.21616263429841587
+ 0.21616851175100743
+ 0.21617438935763822
+ 0.21618026711831406
+ 0.2161861450330412
+ 0.21619202310182492
+ 0.21619790132467054
+ 0.21620377970158491
+ 0.21620965823257279
+ 0.21621553691764042
+ 0.21622141575679313
+ 0.21622729475003671
+ 0.21623317389737759
+ 0.21623905319882028
+ 0.21624493265437136
+ 0.2162508122640365
+ 0.2162566920278215
+ 0.21626257194573167
+ 0.21626845201777228
+ 0.21627433224395076
+ 0.21628021262427119
+ 0.21628609315873953
+ 0.21629197384736257
+ 0.21629785469014501
+ 0.21630373568709274
+ 0.21630961683821212
+ 0.21631549814350826
+ 0.21632137960298664
+ 0.21632726121665399
+ 0.21633314298451509
+ 0.21633902490657572
+ 0.21634490698284228
+ 0.21635078921332002
+ 0.21635667159801475
+ 0.21636255413693226
+ 0.21636843683007836
+ 0.21637431967745838
+ 0.21638020267907854
+ 0.21638608583494429
+ 0.21639196914506179
+ 0.21639785260943586
+ 0.21640373622807293
+ 0.21640962000097869
+ 0.216415503928159
+ 0.21642138800961919
+ 0.2164272722453649
+ 0.21643315663540263
+ 0.21643904117973767
+ 0.21644492587837522
+ 0.21645081073132164
+ 0.2164566957385827
+ 0.21646258090016385
+ 0.21646846621607069
+ 0.21647435168630971
+ 0.21648023731088617
+ 0.21648612308980528
+ 0.21649200902307345
+ 0.2164978951106965
+ 0.21650378135267967
+ 0.21650966774902883
+ 0.2165155542997497
+ 0.21652144100484877
+ 0.21652732786433065
+ 0.21653321487820182
+ 0.21653910204646798
+ 0.21654498936913388
+ 0.21655087684620652
+ 0.21655676447769112
+ 0.21656265226359406
+ 0.21656854020391947
+ 0.21657442829867482
+ 0.21658031654786494
+ 0.21658620495149555
+ 0.21659209350957304
+ 0.21659798222210216
+ 0.21660387108908977
+ 0.21660976011054059
+ 0.21661564928646115
+ 0.21662153861685654
+ 0.21662742810173322
+ 0.21663331774109645
+ 0.21663920753495206
+ 0.21664509748330588
+ 0.21665098758616316
+ 0.21665687784353024
+ 0.21666276825541306
+ 0.21666865882181627
+ 0.21667454954274681
+ 0.21668044041820991
+ 0.21668633144821151
+ 0.21669222263275731
+ 0.21669811397185271
+ 0.21670400546550339
+ 0.21670989711371588
+ 0.21671578891649537
+ 0.21672168087384766
+ 0.21672757298577816
+ 0.21673346525229367
+ 0.21673935767339844
+ 0.21674525024909938
+ 0.21675114297940229
+ 0.21675703586431189
+ 0.21676292890383464
+ 0.21676882209797685
+ 0.21677471544674282
+ 0.21678060895013984
+ 0.21678650260817228
+ 0.21679239642084688
+ 0.21679829038816906
+ 0.2168041845101441
+ 0.21681007878677891
+ 0.21681597321807825
+ 0.2168218678040478
+ 0.21682776254469419
+ 0.21683365744002253
+ 0.2168395524900387
+ 0.21684544769474853
+ 0.21685134305415729
+ 0.21685723856827147
+ 0.21686313423709622
+ 0.21686903006063796
+ 0.21687492603890202
+ 0.21688082217189369
+ 0.21688671845961982
+ 0.21689261490208528
+ 0.21689851149929631
+ 0.21690440825125834
+ 0.2169103051579771
+ 0.21691620221945848
+ 0.21692209943570889
+ 0.21692799680673247
+ 0.21693389433253668
+ 0.21693979201312641
+ 0.21694568984850732
+ 0.21695158783868582
+ 0.21695748598366682
+ 0.2169633842834571
+ 0.21696928273806143
+ 0.21697518134748625
+ 0.21698108011173681
+ 0.21698697903081895
+ 0.21699287810473913
+ 0.21699877733350198
+ 0.21700467671711401
+ 0.21701057625558093
+ 0.21701647594890874
+ 0.21702237579710262
+ 0.2170282758001684
+ 0.217034175958112
+ 0.21704007627093927
+ 0.217045976738656
+ 0.21705187736126746
+ 0.21705777813878019
+ 0.21706367907119933
+ 0.21706958015853134
+ 0.2170754814007809
+ 0.21708138279795455
+ 0.21708728435005803
+ 0.21709318605709718
+ 0.21709908791907737
+ 0.21710498993600436
+ 0.21711089210788406
+ 0.2171167944347229
+ 0.21712269691652555
+ 0.21712859955329844
+ 0.21713450234504686
+ 0.21714040529177719
+ 0.2171463083934948
+ 0.21715221165020554
+ 0.21715811506191518
+ 0.21716401862862902
+ 0.21716992235035412
+ 0.21717582622709461
+ 0.21718173025885737
+ 0.21718763444564784
+ 0.21719353878747238
+ 0.21719944328433566
+ 0.21720534793624421
+ 0.21721125274320324
+ 0.21721715770521921
+ 0.21722306282229736
+ 0.21722896809444356
+ 0.21723487352166376
+ 0.21724077910396369
+ 0.21724668484134868
+ 0.21725259073382525
+ 0.21725849678139852
+ 0.21726440298407504
+ 0.21727030934186009
+ 0.2172762158547589
+ 0.21728212252277854
+ 0.21728802934592317
+ 0.21729393632419966
+ 0.21729984345761399
+ 0.21730575074617087
+ 0.21731165818987724
+ 0.21731756578873843
+ 0.2173234735427598
+ 0.21732938145194763
+ 0.21733528951630737
+ 0.21734119773584479
+ 0.21734710611056635
+ 0.21735301464047674
+ 0.21735892332558246
+ 0.21736483216588934
+ 0.21737074116140265
+ 0.21737665031212827
+ 0.21738255961807262
+ 0.21738846907924053
+ 0.21739437869563885
+ 0.21740028846727241
+ 0.2174061983941476
+ 0.21741210847626971
+ 0.21741801871364469
+ 0.21742392910627881
+ 0.21742983965417698
+ 0.21743575035734611
+ 0.21744166121579095
+ 0.21744757222951736
+ 0.21745348339853174
+ 0.21745939472283948
+ 0.21746530620244583
+ 0.21747121783735779
+ 0.2174771296275807
+ 0.21748304157311979
+ 0.21748895367398099
+ 0.21749486593017073
+ 0.21750077834169426
+ 0.21750669090855759
+ 0.21751260363076641
+ 0.21751851650832607
+ 0.2175244295412426
+ 0.21753034272952224
+ 0.21753625607317092
+ 0.21754216957219349
+ 0.21754808322659622
+ 0.21755399703638567
+ 0.21755991100156596
+ 0.21756582512214415
+ 0.21757173939812541
+ 0.21757765382951633
+ 0.21758356841632165
+ 0.21758948315854768
+ 0.2175953980562004
+ 0.21760131310928565
+ 0.21760722831780879
+ 0.21761314368177509
+ 0.21761905920119151
+ 0.21762497487606344
+ 0.21763089070639671
+ 0.21763680669219673
+ 0.21764272283346975
+ 0.21764863913022073
+ 0.21765455558245703
+ 0.21766047219018306
+ 0.21766638895340507
+ 0.21767230587212844
+ 0.21767822294635969
+ 0.21768414017610405
+ 0.21769005756136792
+ 0.21769597510215671
+ 0.21770189279847574
+ 0.21770781065033146
+ 0.21771372865772962
+ 0.21771964682067624
+ 0.21772556513917601
+ 0.21773148361323599
+ 0.21773740224286087
+ 0.21774332102805768
+ 0.21774923996883117
+ 0.21775515906518778
+ 0.21776107831713293
+ 0.2177669977246724
+ 0.21777291728781206
+ 0.21777883700655787
+ 0.21778475688091561
+ 0.2177906769108913
+ 0.21779659709649016
+ 0.21780251743771814
+ 0.21780843793458105
+ 0.21781435858708481
+ 0.21782027939523535
+ 0.21782620035903852
+ 0.21783212147849965
+ 0.21783804275362512
+ 0.21784396418441981
+ 0.21784988577089121
+ 0.21785580751304301
+ 0.21786172941088217
+ 0.21786765146441467
+ 0.21787357367364626
+ 0.21787949603858184
+ 0.21788541855922836
+ 0.21789134123559109
+ 0.21789726406767546
+ 0.21790318705548792
+ 0.21790911019903372
+ 0.21791503349831939
+ 0.21792095695335068
+ 0.21792688056413254
+ 0.21793280433067133
+ 0.21793872825297242
+ 0.21794465233104224
+ 0.21795057656488664
+ 0.21795650095451102
+ 0.2179624254999212
+ 0.21796835020112315
+ 0.21797427505812222
+ 0.21798020007092478
+ 0.2179861252395367
+ 0.21799205056396345
+ 0.21799797604421081
+ 0.21800390168028472
+ 0.21800982747219105
+ 0.2180157534199357
+ 0.21802167952352405
+ 0.21802760578296251
+ 0.21803353219825639
+ 0.21803945876941164
+ 0.21804538549643365
+ 0.21805131237932932
+ 0.21805723941810351
+ 0.21806316661276207
+ 0.21806909396331145
+ 0.21807502146975699
+ 0.21808094913210468
+ 0.2180868769503603
+ 0.21809280492452923
+ 0.21809873305461794
+ 0.21810466134063181
+ 0.21811058978257672
+ 0.21811651838045903
+ 0.21812244713428361
+ 0.21812837604405699
+ 0.21813430510978435
+ 0.21814023433147228
+ 0.21814616370912601
+ 0.21815209324275209
+ 0.21815802293235531
+ 0.21816395277794209
+ 0.21816988277951782
+ 0.21817581293708888
+ 0.21818174325066073
+ 0.21818767372023973
+ 0.21819360434583066
+ 0.21819953512744061
+ 0.21820546606507379
+ 0.21821139715873775
+ 0.21821732840843733
+ 0.21822325981417842
+ 0.21822919137596691
+ 0.21823512309380866
+ 0.21824105496770912
+ 0.21824698699767528
+ 0.21825291918371187
+ 0.21825885152582425
+ 0.21826478402402008
+ 0.21827071667830303
+ 0.21827664948868056
+ 0.21828258245515808
+ 0.21828851557774104
+ 0.21829444885643526
+ 0.21830038229124665
+ 0.21830631588218113
+ 0.21831224962924464
+ 0.21831818353244306
+ 0.21832411759178222
+ 0.21833005180726706
+ 0.21833598617890457
+ 0.21834192070670003
+ 0.21834785539065943
+ 0.21835379023078863
+ 0.21835972522709302
+ 0.218365660379579
+ 0.21837159568825198
+ 0.21837753115311798
+ 0.21838346677418272
+ 0.21838940255145167
+ 0.21839533848493184
+ 0.21840127457462802
+ 0.21840721082054612
+ 0.21841314722269209
+ 0.21841908378107233
+ 0.21842502049569176
+ 0.21843095736655674
+ 0.21843689439367267
+ 0.218442831577046
+ 0.21844876891668211
+ 0.21845470641258691
+ 0.21846064406476581
+ 0.21846658187322582
+ 0.21847251983797172
+ 0.21847845795900994
+ 0.21848439623634594
+ 0.21849033466998555
+ 0.21849627325993415
+ 0.21850221200619885
+ 0.21850815090878492
+ 0.21851408996769731
+ 0.21852002918294283
+ 0.21852596855452755
+ 0.21853190808245623
+ 0.2185378477667354
+ 0.21854378760737042
+ 0.21854972760436822
+ 0.21855566775773316
+ 0.2185616080674723
+ 0.21856754853359089
+ 0.21857348915609437
+ 0.21857942993498916
+ 0.21858537087028129
+ 0.21859131196197656
+ 0.21859725321007992
+ 0.21860319461459832
+ 0.21860913617553654
+ 0.21861507789290111
+ 0.21862101976669795
+ 0.21862696179693303
+ 0.2186329039836111
+ 0.21863884632673916
+ 0.21864478882632271
+ 0.21865073148236702
+ 0.21865667429487859
+ 0.21866261726386288
+ 0.21866856038932619
+ 0.21867450367127403
+ 0.21868044710971238
+ 0.21868639070464702
+ 0.21869233445608388
+ 0.2186982783640285
+ 0.21870422242848669
+ 0.21871016664946491
+ 0.21871611102696861
+ 0.21872205556100313
+ 0.21872800025157496
+ 0.21873394509868999
+ 0.21873989010235426
+ 0.21874583526257244
+ 0.21875178057935174
+ 0.21875772605269686
+ 0.21876367168261432
+ 0.21876961746911003
+ 0.2187755634121894
+ 0.21878150951185896
+ 0.218787455768124
+ 0.21879340218098994
+ 0.21879934875046386
+ 0.21880529547655048
+ 0.21881124235925639
+ 0.21881718939858641
+ 0.21882313659454755
+ 0.21882908394714523
+ 0.21883503145638528
+ 0.21884097912227374
+ 0.21884692694481597
+ 0.21885287492401789
+ 0.21885882305988597
+ 0.21886477135242566
+ 0.21887071980164235
+ 0.21887666840754244
+ 0.21888261717013194
+ 0.21888856608941618
+ 0.21889451516540118
+ 0.2189004643980933
+ 0.21890641378749751
+ 0.21891236333362024
+ 0.21891831303646747
+ 0.21892426289604455
+ 0.2189302129123579
+ 0.2189361630854125
+ 0.21894211341521477
+ 0.21894806390177124
+ 0.21895401454508612
+ 0.2189599653451671
+ 0.21896591630201842
+ 0.21897186741564706
+ 0.21897781868605801
+ 0.21898377011325817
+ 0.2189897216972525
+ 0.21899567343804738
+ 0.21900162533564829
+ 0.2190075773900611
+ 0.21901352960129181
+ 0.21901948196934637
+ 0.21902543449423018
+ 0.21903138717594969
+ 0.21903734001451086
+ 0.21904329300991857
+ 0.21904924616217983
+ 0.21905519947129953
+ 0.21906115293728462
+ 0.21906710656013947
+ 0.21907306033987173
+ 0.21907901427648552
+ 0.21908496836998811
+ 0.21909092262038415
+ 0.2190968770276803
+ 0.21910283159188243
+ 0.21910878631299593
+ 0.2191147411910267
+ 0.21912069622598138
+ 0.21912665141786478
+ 0.21913260676668328
+ 0.21913856227244297
+ 0.21914451793514914
+ 0.21915047375480839
+ 0.21915642973142552
+ 0.21916238586500761
+ 0.21916834215555947
+ 0.21917429860308765
+ 0.21918025520759751
+ 0.21918621196909555
+ 0.21919216888758722
+ 0.21919812596307783
+ 0.21920408319557461
+ 0.21921004058508223
+ 0.2192159981316073
+ 0.21922195583515516
+ 0.2192279136957318
+ 0.21923387171334319
+ 0.21923982988799531
+ 0.21924578821969404
+ 0.21925174670844486
+ 0.21925770535425415
+ 0.21926366415712747
+ 0.21926962311707016
+ 0.21927558223408924
+ 0.21928154150818965
+ 0.21928750093937782
+ 0.21929346052765977
+ 0.21929942027304036
+ 0.21930538017552653
+ 0.2193113402351233
+ 0.21931730045183709
+ 0.21932326082567391
+ 0.2193292213566391
+ 0.21933518204473873
+ 0.21934114288997916
+ 0.21934710389236536
+ 0.21935306505190383
+ 0.21935902636859991
+ 0.21936498784246022
+ 0.21937094947349015
+ 0.21937691126169614
+ 0.21938287320708308
+ 0.21938883530965747
+ 0.21939479756942484
+ 0.21940075998639152
+ 0.21940672256056309
+ 0.21941268529194599
+ 0.21941864818054505
+ 0.21942461122636683
+ 0.21943057442941732
+ 0.21943653778970185
+ 0.21944250130722648
+ 0.21944846498199772
+ 0.21945442881402033
+ 0.21946039280330093
+ 0.21946635694984545
+ 0.2194723212536599
+ 0.21947828571474909
+ 0.21948425033312008
+ 0.21949021510877834
+ 0.21949618004172927
+ 0.21950214513197941
+ 0.21950811037953466
+ 0.21951407578440052
+ 0.21952004134658287
+ 0.2195260070660878
+ 0.21953197294292112
+ 0.21953793897708901
+ 0.21954390516859618
+ 0.21954987151745026
+ 0.21955583802365561
+ 0.21956180468721931
+ 0.21956777150814624
+ 0.21957373848644293
+ 0.21957970562211535
+ 0.21958567291516887
+ 0.21959164036560944
+ 0.21959760797344313
+ 0.21960357573867587
+ 0.21960954366131305
+ 0.21961551174136132
+ 0.21962147997882653
+ 0.21962744837371406
+ 0.21963341692602953
+ 0.21963938563577981
+ 0.2196453545029699
+ 0.21965132352760577
+ 0.21965729270969447
+ 0.21966326204924033
+ 0.21966923154624984
+ 0.21967520120072906
+ 0.21968117101268389
+ 0.21968714098211978
+ 0.21969311110904333
+ 0.21969908139345984
+ 0.21970505183537542
+ 0.21971102243479593
+ 0.21971699319172688
+ 0.21972296410617534
+ 0.2197289351781456
+ 0.21973490640764476
+ 0.2197408777946783
+ 0.21974684933925162
+ 0.21975282104137173
+ 0.21975879290104303
+ 0.21976476491827265
+ 0.21977073709306644
+ 0.21977670942542996
+ 0.21978268191536857
+ 0.21978865456288887
+ 0.21979462736799676
+ 0.21980060033069776
+ 0.21980657345099774
+ 0.21981254672890335
+ 0.21981852016441941
+ 0.21982449375755245
+ 0.21983046750830795
+ 0.21983644141669245
+ 0.21984241548271133
+ 0.21984838970637122
+ 0.21985436408767689
+ 0.21986033862663493
+ 0.21986631332325074
+ 0.21987228817753099
+ 0.21987826318948098
+ 0.2198842383591067
+ 0.2198902136864142
+ 0.21989618917140952
+ 0.21990216481409791
+ 0.2199081406144861
+ 0.21991411657257945
+ 0.21992009268838394
+ 0.21992606896190567
+ 0.21993204539314987
+ 0.21993802198212326
+ 0.21994399872883177
+ 0.21994997563328084
+ 0.21995595269547646
+ 0.2199619299154246
+ 0.2199679072931307
+ 0.21997388482860139
+ 0.2199798625218426
+ 0.21998584037285981
+ 0.21999181838165838
+ 0.21999779654824544
+ 0.22000377487262651
+ 0.22000975335480694
+ 0.22001573199479277
+ 0.2200217107925905
+ 0.22002768974820514
+ 0.22003366886164361
+ 0.22003964813291094
+ 0.22004562756201368
+ 0.22005160714895777
+ 0.2200575868937481
+ 0.2200635667963918
+ 0.22006954685689373
+ 0.22007552707526049
+ 0.22008150745149807
+ 0.2200874879856119
+ 0.22009346867760846
+ 0.22009944952749333
+ 0.2201054305352719
+ 0.22011141170095072
+ 0.2201173930245352
+ 0.22012337450603253
+ 0.22012935614544699
+ 0.22013533794278514
+ 0.22014131989805305
+ 0.22014730201125662
+ 0.22015328428240188
+ 0.2201592667114943
+ 0.22016524929853992
+ 0.22017123204354466
+ 0.2201772149465146
+ 0.22018319800745564
+ 0.22018918122637338
+ 0.22019516460327426
+ 0.22020114813816383
+ 0.22020713183104793
+ 0.22021311568193275
+ 0.22021909969082368
+ 0.22022508385772718
+ 0.22023106818264943
+ 0.22023705266559518
+ 0.2202430373065716
+ 0.22024902210558367
+ 0.22025500706263834
+ 0.22026099217774067
+ 0.22026697745089602
+ 0.22027296288211204
+ 0.22027894847139315
+ 0.22028493421874645
+ 0.22029092012417631
+ 0.22029690618769027
+ 0.2203028924092934
+ 0.22030887878899161
+ 0.22031486532679095
+ 0.22032085202269747
+ 0.2203268388767165
+ 0.22033282588885475
+ 0.22033881305911812
+ 0.22034480038751156
+ 0.22035078787404222
+ 0.22035677551871499
+ 0.2203627633215364
+ 0.22036875128251249
+ 0.22037473940164864
+ 0.22038072767895103
+ 0.22038671611442562
+ 0.22039270470807834
+ 0.22039869345991464
+ 0.22040468236994182
+ 0.22041067143816401
+ 0.22041666066458848
+ 0.22042265004922018
+ 0.22042863959206604
+ 0.22043462929313062
+ 0.22044061915242141
+ 0.22044660916994349
+ 0.22045259934570277
+ 0.22045858967970536
+ 0.22046458017195664
+ 0.22047057082246316
+ 0.22047656163123103
+ 0.22048255259826569
+ 0.22048854372357313
+ 0.2204945350071599
+ 0.22050052644903048
+ 0.22050651804919236
+ 0.22051250980765064
+ 0.22051850172441126
+ 0.2205244937994808
+ 0.22053048603286413
+ 0.22053647842456789
+ 0.22054247097459809
+ 0.22054846368296013
+ 0.22055445654966016
+ 0.22056044957470469
+ 0.22056644275809859
+ 0.2205724360998485
+ 0.22057842959996041
+ 0.22058442325843983
+ 0.22059041707529281
+ 0.22059641105052527
+ 0.22060240518414381
+ 0.22060839947615346
+ 0.22061439392656063
+ 0.22062038853537094
+ 0.22062638330259038
+ 0.22063237822822493
+ 0.22063837331228064
+ 0.22064436855476358
+ 0.22065036395567969
+ 0.22065635951503398
+ 0.22066235523283406
+ 0.22066835110908437
+ 0.22067434714379092
+ 0.22068034333696082
+ 0.22068633968859896
+ 0.22069233619871201
+ 0.22069833286730489
+ 0.22070432969438464
+ 0.22071032667995685
+ 0.22071632382402692
+ 0.22072232112660142
+ 0.22072831858768535
+ 0.22073431620728634
+ 0.22074031398540886
+ 0.22074631192205935
+ 0.22075231001724394
+ 0.2207583082709681
+ 0.22076430668323779
+ 0.22077030525405977
+ 0.22077630398343875
+ 0.22078230287138201
+ 0.22078830191789448
+ 0.2207943011229821
+ 0.22080030048665153
+ 0.22080630000890825
+ 0.22081229968975774
+ 0.22081829952920715
+ 0.22082429952726138
+ 0.22083029968392703
+ 0.22083629999920903
+ 0.22084230047311454
+ 0.22084830110564907
+ 0.22085430189681857
+ 0.22086030284662855
+ 0.22086630395508514
+ 0.22087230522219478
+ 0.22087830664796318
+ 0.22088430823239616
+ 0.22089030997549927
+ 0.22089631187727915
+ 0.22090231393774176
+ 0.22090831615689219
+ 0.22091431853473739
+ 0.22092032107128301
+ 0.22092632376653443
+ 0.22093232662049833
+ 0.22093832963318014
+ 0.22094433280458586
+ 0.22095033613472162
+ 0.22095633962359348
+ 0.22096234327120745
+ 0.22096834707756893
+ 0.22097435104268462
+ 0.22098035516655998
+ 0.22098635944920056
+ 0.22099236389061347
+ 0.22099836849080354
+ 0.22100437324977756
+ 0.22101037816754035
+ 0.22101638324409908
+ 0.22102238847945926
+ 0.22102839387362688
+ 0.22103439942660813
+ 0.22104040513840778
+ 0.22104641100903308
+ 0.22105241703849005
+ 0.22105842322678368
+ 0.22106442957391995
+ 0.22107043607990606
+ 0.22107644274474697
+ 0.22108244956844861
+ 0.22108845655101722
+ 0.22109446369245869
+ 0.22110047099277916
+ 0.22110647845198403
+ 0.22111248607007949
+ 0.22111849384707202
+ 0.22112450178296716
+ 0.22113050987777108
+ 0.22113651813148905
+ 0.22114252654412789
+ 0.22114853511569346
+ 0.22115454384619093
+ 0.22116055273562668
+ 0.2211665617840069
+ 0.22117257099133764
+ 0.22117858035762433
+ 0.22118458988287371
+ 0.22119059956709111
+ 0.22119660941028213
+ 0.22120261941245392
+ 0.2212086295736114
+ 0.22121463989376122
+ 0.22122065037290839
+ 0.22122666101105992
+ 0.22123267180822145
+ 0.2212386827643989
+ 0.22124469387959789
+ 0.22125070515382453
+ 0.22125671658708526
+ 0.22126272817938566
+ 0.22126873993073184
+ 0.22127475184112927
+ 0.22128076391058449
+ 0.22128677613910372
+ 0.22129278852669174
+ 0.22129880107335589
+ 0.22130481377910102
+ 0.22131082664393373
+ 0.22131683966786009
+ 0.22132285285088563
+ 0.22132886619301645
+ 0.22133487969425858
+ 0.22134089335461804
+ 0.22134690717410035
+ 0.22135292115271221
+ 0.22135893529045905
+ 0.22136494958734695
+ 0.22137096404338255
+ 0.22137697865857084
+ 0.22138299343291776
+ 0.22138900836643058
+ 0.22139502345911374
+ 0.22140103871097375
+ 0.22140705412201728
+ 0.22141306969224928
+ 0.22141908542167585
+ 0.2214251013103036
+ 0.22143111735813806
+ 0.22143713356518577
+ 0.22144314993145178
+ 0.22144916645694265
+ 0.22145518314166399
+ 0.22146119998562175
+ 0.2214672169888226
+ 0.22147323415127212
+ 0.22147925147297623
+ 0.22148526895394063
+ 0.22149128659417122
+ 0.22149730439367529
+ 0.2215033223524572
+ 0.22150934047052359
+ 0.22151535874788053
+ 0.22152137718453357
+ 0.2215273957804893
+ 0.2215334145357532
+ 0.22153943345033147
+ 0.22154545252423061
+ 0.22155147175745565
+ 0.22155749115001258
+ 0.22156351070190813
+ 0.22156953041314728
+ 0.22157555028373771
+ 0.22158157031368325
+ 0.22158759050299165
+ 0.22159361085166795
+ 0.22159963135971866
+ 0.22160565202714888
+ 0.22161167285396577
+ 0.22161769384017424
+ 0.22162371498578087
+ 0.22162973629079188
+ 0.22163575775521274
+ 0.22164177937904889
+ 0.22164780116230767
+ 0.22165382310499446
+ 0.22165984520711482
+ 0.2216658674686755
+ 0.22167188988968189
+ 0.22167791247013957
+ 0.22168393521005567
+ 0.22168995810943581
+ 0.22169598116828548
+ 0.22170200438661131
+ 0.22170802776441825
+ 0.22171405130171354
+ 0.22172007499850208
+ 0.22172609885479061
+ 0.22173212287058511
+ 0.22173814704589112
+ 0.22174417138071487
+ 0.22175019587506223
+ 0.22175622052893942
+ 0.22176224534235248
+ 0.22176827031530699
+ 0.22177429544780894
+ 0.22178032073986509
+ 0.22178634619148027
+ 0.22179237180266131
+ 0.2217983975734141
+ 0.2218044235037443
+ 0.22181044959365792
+ 0.22181647584316111
+ 0.22182250225225991
+ 0.22182852882096046
+ 0.22183455554926879
+ 0.2218405824371899
+ 0.22184660948473106
+ 0.22185263669189767
+ 0.22185866405869595
+ 0.22186469158513131
+ 0.22187071927121046
+ 0.221876747116939
+ 0.22188277512232288
+ 0.22188880328736829
+ 0.22189483161208132
+ 0.22190086009646748
+ 0.22190688874053338
+ 0.2219129175442846
+ 0.22191894650772784
+ 0.22192497563086747
+ 0.22193100491371115
+ 0.22193703435626461
+ 0.22194306395853269
+ 0.22194909372052266
+ 0.22195512364224007
+ 0.22196115372369102
+ 0.22196718396488097
+ 0.2219732143658166
+ 0.22197924492650353
+ 0.22198527564694831
+ 0.22199130652715596
+ 0.22199733756713314
+ 0.22200336876688548
+ 0.22200940012641945
+ 0.22201543164574125
+ 0.22202146332485587
+ 0.22202749516376991
+ 0.22203352716248961
+ 0.22203955932102032
+ 0.22204559163936879
+ 0.22205162411754062
+ 0.22205765675554184
+ 0.22206368955337855
+ 0.22206972251105681
+ 0.22207575562858226
+ 0.222081788905961
+ 0.2220878223431996
+ 0.22209385594030309
+ 0.22209988969727809
+ 0.22210592361413076
+ 0.22211195769086667
+ 0.22211799192749249
+ 0.22212402632401357
+ 0.22213006088043569
+ 0.22213609559676548
+ 0.22214213047300888
+ 0.22214816550917163
+ 0.22215420070525968
+ 0.22216023606127927
+ 0.22216627157723692
+ 0.22217230725313719
+ 0.22217834308898776
+ 0.22218437908479319
+ 0.22219041524056055
+ 0.22219645155629555
+ 0.22220248803200357
+ 0.22220852466769142
+ 0.22221456146336513
+ 0.22222059841903025
+ 0.22222663553469235
+ 0.22223267281035866
+ 0.2222387102460342
+ 0.2222447478417256
+ 0.22225078559743836
+ 0.22225682351317924
+ 0.22226286158895378
+ 0.2222688998247675
+ 0.22227493822062705
+ 0.22228097677653805
+ 0.22228701549250712
+ 0.22229305436853983
+ 0.22229909340464227
+ 0.22230513260082005
+ 0.22231117195707978
+ 0.22231721147342753
+ 0.22232325114986903
+ 0.22232929098641027
+ 0.22233533098305677
+ 0.22234137113981584
+ 0.22234741145669248
+ 0.22235345193369277
+ 0.22235949257082338
+ 0.22236553336808931
+ 0.22237157432549726
+ 0.22237761544305332
+ 0.22238365672076368
+ 0.22238969815863324
+ 0.22239573975666921
+ 0.2224017815148773
+ 0.22240782343326296
+ 0.22241386551183284
+ 0.22241990775059314
+ 0.22242595014954883
+ 0.2224319927087072
+ 0.22243803542807372
+ 0.22244407830765392
+ 0.22245012134745407
+ 0.22245616454748129
+ 0.22246220790774004
+ 0.22246825142823712
+ 0.22247429510897848
+ 0.2224803389499698
+ 0.22248638295121764
+ 0.22249242711272821
+ 0.22249847143450652
+ 0.22250451591655929
+ 0.22251056055889251
+ 0.22251660536151191
+ 0.22252265032442453
+ 0.22252869544763448
+ 0.22253474073114937
+ 0.22254078617497494
+ 0.22254683177911719
+ 0.22255287754358166
+ 0.22255892346837458
+ 0.22256496955350263
+ 0.22257101579897076
+ 0.22257706220478565
+ 0.22258310877095352
+ 0.22258915549747985
+ 0.22259520238437128
+ 0.22260124943163298
+ 0.22260729663927209
+ 0.22261334400729302
+ 0.22261939153570373
+ 0.22262543922450909
+ 0.22263148707371522
+ 0.22263753508332837
+ 0.22264358325335454
+ 0.22264963158379944
+ 0.22265568007466965
+ 0.22266172872597079
+ 0.22266777753770894
+ 0.22267382650989029
+ 0.22267987564252098
+ 0.22268592493560707
+ 0.2226919743891537
+ 0.22269802400316796
+ 0.22270407377765553
+ 0.22271012371262255
+ 0.2227161738080751
+ 0.2227222240640182
+ 0.22272827448045973
+ 0.22273432505740406
+ 0.22274037579485789
+ 0.22274642669282743
+ 0.22275247775131876
+ 0.22275852897033749
+ 0.22276458034988969
+ 0.22277063188998156
+ 0.22277668359061981
+ 0.22278273545180891
+ 0.22278878747355596
+ 0.22279483965586733
+ 0.22280089199874836
+ 0.2228069445022054
+ 0.22281299716624448
+ 0.22281904999087113
+ 0.22282510297609162
+ 0.22283115612191262
+ 0.22283720942833968
+ 0.22284326289537887
+ 0.22284931652303588
+ 0.22285537031131789
+ 0.22286142426022942
+ 0.22286747836977772
+ 0.22287353263996784
+ 0.22287958707080699
+ 0.22288564166230018
+ 0.22289169641445361
+ 0.22289775132727396
+ 0.22290380640076679
+ 0.22290986163493773
+ 0.22291591702979405
+ 0.22292197258534069
+ 0.22292802830158442
+ 0.22293408417853025
+ 0.22294014021618538
+ 0.2229461964145556
+ 0.22295225277364628
+ 0.22295830929346364
+ 0.22296436597401445
+ 0.22297042281530424
+ 0.22297647981733909
+ 0.22298253698012524
+ 0.22298859430366888
+ 0.22299465178797487
+ 0.22300070943305067
+ 0.22300676723890173
+ 0.22301282520553425
+ 0.22301888333295439
+ 0.22302494162116773
+ 0.2230310000701804
+ 0.22303705867999912
+ 0.22304311745062902
+ 0.22304917638207719
+ 0.22305523547434819
+ 0.2230612947274499
+ 0.22306735414138673
+ 0.22307341371616596
+ 0.22307947345179263
+ 0.223085533348274
+ 0.22309159340561455
+ 0.22309765362382164
+ 0.22310371400290072
+ 0.22310977454285799
+ 0.22311583524369963
+ 0.22312189610543179
+ 0.22312795712806013
+ 0.22313401831159069
+ 0.22314007965602961
+ 0.22314614116138323
+ 0.22315220282765746
+ 0.22315826465485869
+ 0.22316432664299182
+ 0.22317038879206469
+ 0.22317645110208123
+ 0.2231825135730493
+ 0.22318857620497454
+ 0.2231946389978624
+ 0.22320070195171926
+ 0.2232067650665511
+ 0.22321282834236411
+ 0.22321889177916454
+ 0.22322495537695788
+ 0.22323101913575086
+ 0.22323708305554921
+ 0.22324314713635893
+ 0.22324921137818626
+ 0.22325527578103682
+ 0.22326134034491729
+ 0.2232674050698332
+ 0.22327346995579089
+ 0.22327953500279643
+ 0.223285600210856
+ 0.22329166557997515
+ 0.22329773111016113
+ 0.22330379680141807
+ 0.22330986265375355
+ 0.22331592866717337
+ 0.22332199484168366
+ 0.22332806117728995
+ 0.22333412767399849
+ 0.22334019433181534
+ 0.22334626115074679
+ 0.22335232813079889
+ 0.2233583952719779
+ 0.22336446257428941
+ 0.22337053003773957
+ 0.22337659766233453
+ 0.22338266544808044
+ 0.22338873339498355
+ 0.22339480150304941
+ 0.22340086977228418
+ 0.22340693820269469
+ 0.22341300679428638
+ 0.22341907554706494
+ 0.22342514446103667
+ 0.2234312135362081
+ 0.22343728277258551
+ 0.22344335217017389
+ 0.22344942172898002
+ 0.22345549144901003
+ 0.22346156133027015
+ 0.2234676313727654
+ 0.22347370157650312
+ 0.2234797719414888
+ 0.22348584246772812
+ 0.22349191315522793
+ 0.22349798400399365
+ 0.22350405501403212
+ 0.22351012618534838
+ 0.22351619751794977
+ 0.22352226901184125
+ 0.22352834066702956
+ 0.22353441248351988
+ 0.22354048446131999
+ 0.22354655660043377
+ 0.22355262890086916
+ 0.22355870136263112
+ 0.22356477398572652
+ 0.22357084677016092
+ 0.2235769197159399
+ 0.22358299282307076
+ 0.22358906609155865
+ 0.22359513952141025
+ 0.22360121311263109
+ 0.22360728686522752
+ 0.22361336077920557
+ 0.2236194348545715
+ 0.2236255090913315
+ 0.22363158348949058
+ 0.22363765804905608
+ 0.2236437327700336
+ 0.22364980765242937
+ 0.2236558826962495
+ 0.22366195790149909
+ 0.22366803326818599
+ 0.22367410879631469
+ 0.223680184485892
+ 0.22368626033692401
+ 0.22369233634941701
+ 0.22369841252337649
+ 0.22370448885880878
+ 0.22371056535572001
+ 0.22371664201411626
+ 0.22372271883400333
+ 0.22372879581538838
+ 0.22373487295827602
+ 0.22374095026267291
+ 0.22374702772858532
+ 0.22375310535601997
+ 0.22375918314498133
+ 0.22376526109547673
+ 0.2237713392075118
+ 0.22377741748109325
+ 0.22378349591622573
+ 0.22378957451291695
+ 0.22379565327117201
+ 0.22380173219099717
+ 0.22380781127239913
+ 0.22381389051538295
+ 0.2238199699199554
+ 0.22382604948612264
+ 0.22383212921388984
+ 0.22383820910326477
+ 0.22384428915425195
+ 0.22385036936685815
+ 0.22385644974108901
+ 0.22386253027695133
+ 0.22386861097445065
+ 0.22387469183359315
+ 0.22388077285438573
+ 0.22388685403683276
+ 0.22389293538094221
+ 0.22389901688671851
+ 0.22390509855416907
+ 0.22391118038329944
+ 0.22391726237411583
+ 0.22392334452662391
+ 0.22392942684082984
+ 0.22393550931674047
+ 0.22394159195436128
+ 0.22394767475369859
+ 0.22395375771475848
+ 0.22395984083754616
+ 0.22396592412206948
+ 0.22397200756833294
+ 0.22397809117634376
+ 0.22398417494610717
+ 0.22399025887762986
+ 0.22399634297091753
+ 0.22400242722597624
+ 0.22400851164281285
+ 0.22401459622143252
+ 0.22402068096184183
+ 0.22402676586404649
+ 0.22403285092805336
+ 0.22403893615386794
+ 0.2240450215414965
+ 0.2240511070909447
+ 0.22405719280221928
+ 0.22406327867532647
+ 0.22406936471027181
+ 0.22407545090706107
+ 0.22408153726570157
+ 0.22408762378619826
+ 0.224093710468558
+ 0.2240997973127859
+ 0.22410588431888925
+ 0.22411197148687423
+ 0.22411805881674543
+ 0.22412414630851013
+ 0.22413023396217457
+ 0.22413632177774429
+ 0.22414240975522509
+ 0.22414849789462421
+ 0.22415458619594678
+ 0.22416067465919953
+ 0.22416676328438812
+ 0.22417285207151871
+ 0.22417894102059704
+ 0.22418503013163044
+ 0.22419111940462391
+ 0.22419720883958422
+ 0.22420329843651657
+ 0.22420938819542766
+ 0.22421547811632431
+ 0.22422156819921149
+ 0.22422765844409551
+ 0.22423374885098318
+ 0.22423983941987952
+ 0.22424593015079186
+ 0.22425202104372527
+ 0.22425811209868657
+ 0.22426420331568148
+ 0.22427029469471607
+ 0.22427638623579663
+ 0.22428247793892886
+ 0.22428856980412001
+ 0.22429466183137514
+ 0.22430075402070007
+ 0.22430684637210202
+ 0.22431293888558668
+ 0.22431903156116018
+ 0.22432512439882774
+ 0.22433121739859666
+ 0.22433731056047307
+ 0.22434340388446214
+ 0.22434949737057069
+ 0.22435559101880434
+ 0.22436168482916988
+ 0.22436777880167288
+ 0.22437387293631963
+ 0.22437996723311646
+ 0.22438606169206882
+ 0.2243921563131836
+ 0.22439825109646641
+ 0.22440434604192364
+ 0.22441044114956124
+ 0.22441653641938561
+ 0.22442263185140243
+ 0.22442872744561784
+ 0.22443482320203861
+ 0.22444091912067046
+ 0.22444701520151902
+ 0.2244531114445911
+ 0.22445920784989229
+ 0.22446530441742948
+ 0.22447140114720771
+ 0.22447749803923436
+ 0.22448359509351454
+ 0.22448969231005436
+ 0.22449578968886075
+ 0.22450188722993936
+ 0.22450798493329627
+ 0.22451408279893789
+ 0.22452018082686981
+ 0.22452627901709818
+ 0.22453237736962994
+ 0.22453847588447062
+ 0.22454457456162599
+ 0.22455067340110274
+ 0.2245567724029072
+ 0.22456287156704446
+ 0.22456897089352179
+ 0.22457507038234492
+ 0.22458117003351949
+ 0.22458726984705285
+ 0.22459336982294967
+ 0.22459946996121655
+ 0.22460557026185982
+ 0.22461167072488572
+ 0.22461777135030048
+ 0.22462387213810972
+ 0.22462997308831975
+ 0.22463607420093726
+ 0.22464217547596743
+ 0.22464827691341707
+ 0.22465437851329181
+ 0.22466048027559793
+ 0.22466658220034216
+ 0.22467268428753023
+ 0.2246787865371678
+ 0.22468488894926161
+ 0.22469099152381747
+ 0.2246970942608415
+ 0.22470319716033993
+ 0.22470930022231961
+ 0.22471540344678509
+ 0.22472150683374373
+ 0.22472761038320169
+ 0.22473371409516421
+ 0.22473981796963857
+ 0.22474592200662938
+ 0.22475202620614443
+ 0.22475813056818897
+ 0.22476423509276922
+ 0.22477033977989086
+ 0.2247764446295612
+ 0.22478254964178546
+ 0.22478865481656968
+ 0.22479476015392091
+ 0.22480086565384463
+ 0.22480697131634661
+ 0.22481307714143428
+ 0.22481918312911206
+ 0.22482528927938736
+ 0.22483139559226592
+ 0.22483750206775341
+ 0.22484360870585712
+ 0.22484971550658225
+ 0.22485582246993499
+ 0.22486192959592219
+ 0.22486803688454951
+ 0.22487414433582265
+ 0.22488025194974781
+ 0.22488635972633236
+ 0.22489246766558094
+ 0.22489857576750086
+ 0.22490468403209726
+ 0.22491079245937692
+ 0.22491690104934556
+ 0.22492300980200994
+ 0.22492911871737584
+ 0.22493522779544939
+ 0.22494133703623642
+ 0.22494744643974363
+ 0.22495355600597666
+ 0.22495966573494247
+ 0.22496577562664613
+ 0.22497188568109436
+ 0.22497799589829351
+ 0.22498410627824925
+ 0.22499021682096843
+ 0.22499632752645607
+ 0.22500243839471967
+ 0.22500854942576365
+ 0.22501466061959607
+ 0.22502077197622208
+ 0.22502688349564778
+ 0.225032995177879
+ 0.22503910702292304
+ 0.22504521903078517
+ 0.22505133120147194
+ 0.22505744353498877
+ 0.22506355603134284
+ 0.2250696686905394
+ 0.22507578151258575
+ 0.22508189449748645
+ 0.22508800764524897
+ 0.22509412095587888
+ 0.22510023442938204
+ 0.22510634806576513
+ 0.22511246186503447
+ 0.22511857582719569
+ 0.22512468995225518
+ 0.22513080424021964
+ 0.22513691869109362
+ 0.22514303330488517
+ 0.22514914808159942
+ 0.22515526302124256
+ 0.22516137812382087
+ 0.22516749338934006
+ 0.22517360881780746
+ 0.22517972440922773
+ 0.22518584016360885
+ 0.22519195608095527
+ 0.22519807216127383
+ 0.22520418840457035
+ 0.22521030481085211
+ 0.22521642138012368
+ 0.22522253811239251
+ 0.2252286550076637
+ 0.22523477206594469
+ 0.22524088928723995
+ 0.22524700667155756
+ 0.22525312421890195
+ 0.22525924192928068
+ 0.22526535980269877
+ 0.22527147783916307
+ 0.22527759603867933
+ 0.22528371440125375
+ 0.22528983292689322
+ 0.22529595161560281
+ 0.22530207046738948
+ 0.22530818948225928
+ 0.22531430866021812
+ 0.22532042800127219
+ 0.22532654750542777
+ 0.22533266717269113
+ 0.22533878700306792
+ 0.22534490699656509
+ 0.22535102715318817
+ 0.22535714747294361
+ 0.22536326795583703
+ 0.2253693886018758
+ 0.22537550941106463
+ 0.22538163038341069
+ 0.22538775151891999
+ 0.22539387281759848
+ 0.22539999427945276
+ 0.22540611590448822
+ 0.22541223769271138
+ 0.2254183596441289
+ 0.22542448175874608
+ 0.22543060403656967
+ 0.22543672647760596
+ 0.22544284908186063
+ 0.22544897184934001
+ 0.22545509478005091
+ 0.22546121787399848
+ 0.22546734113118899
+ 0.22547346455162923
+ 0.22547958813532562
+ 0.22548571188228322
+ 0.22549183579250884
+ 0.22549795986600879
+ 0.22550408410278941
+ 0.22551020850285625
+ 0.22551633306621524
+ 0.22552245779287358
+ 0.22552858268283713
+ 0.22553470773611156
+ 0.22554083295270314
+ 0.22554695833261865
+ 0.2255530838758634
+ 0.22555920958244463
+ 0.22556533545236707
+ 0.22557146148563861
+ 0.22557758768226388
+ 0.22558371404225028
+ 0.22558984056560294
+ 0.22559596725232869
+ 0.22560209410243384
+ 0.22560822111592418
+ 0.22561434829280594
+ 0.22562047563308477
+ 0.22562660313676811
+ 0.22563273080386118
+ 0.22563885863437083
+ 0.22564498662830212
+ 0.22565111478566258
+ 0.22565724310645729
+ 0.22566337159069316
+ 0.2256695002383764
+ 0.22567562904951216
+ 0.22568175802410795
+ 0.22568788716216889
+ 0.22569401646370238
+ 0.22570014592871304
+ 0.22570627555720829
+ 0.22571240534919379
+ 0.22571853530467528
+ 0.22572466542366024
+ 0.22573079570615381
+ 0.22573692615216229
+ 0.22574305676169246
+ 0.22574918753474954
+ 0.22575531847134045
+ 0.22576144957147132
+ 0.225767580835148
+ 0.22577371226237675
+ 0.22577984385316444
+ 0.22578597560751618
+ 0.22579210752543891
+ 0.22579823960693826
+ 0.22580437185202062
+ 0.2258105042606928
+ 0.22581663683295997
+ 0.22582276956882902
+ 0.22582890246830614
+ 0.22583503553139725
+ 0.22584116875810786
+ 0.22584730214844609
+ 0.22585343570241592
+ 0.22585956942002491
+ 0.2258657033012792
+ 0.22587183734618455
+ 0.22587797155474676
+ 0.22588410592697319
+ 0.22589024046286904
+ 0.2258963751624406
+ 0.2259025100256947
+ 0.22590864505263722
+ 0.22591478024327372
+ 0.22592091559761104
+ 0.2259270511156557
+ 0.22593318679741325
+ 0.22593932264289007
+ 0.22594545865209242
+ 0.22595159482502658
+ 0.22595773116169837
+ 0.2259638676621146
+ 0.22597000432628045
+ 0.22597614115420336
+ 0.22598227814588842
+ 0.22598841530134267
+ 0.2259945526205723
+ 0.22600069010358251
+ 0.22600682775038064
+ 0.226012965560972
+ 0.22601910353536345
+ 0.22602524167356067
+ 0.22603137997557052
+ 0.22603751844139877
+ 0.2260436570710517
+ 0.22604979586453516
+ 0.22605593482185588
+ 0.22606207394301966
+ 0.22606821322803278
+ 0.22607435267690165
+ 0.22608049228963248
+ 0.22608663206623097
+ 0.22609277200670413
+ 0.22609891211105759
+ 0.22610505237929771
+ 0.22611119281143019
+ 0.22611733340746201
+ 0.22612347416739936
+ 0.22612961509124804
+ 0.22613575617901435
+ 0.22614189743070465
+ 0.22614803884632459
+ 0.22615418042588112
+ 0.22616032216938001
+ 0.22616646407682744
+ 0.22617260614822987
+ 0.2261787483835935
+ 0.22618489078292423
+ 0.22619103334622875
+ 0.22619717607351236
+ 0.22620331896478246
+ 0.2262094620200443
+ 0.22621560523930465
+ 0.22622174862256936
+ 0.22622789216984526
+ 0.22623403588113758
+ 0.22624017975645366
+ 0.22624632379579876
+ 0.22625246799917925
+ 0.22625861236660141
+ 0.22626475689807202
+ 0.22627090159359642
+ 0.22627704645318145
+ 0.22628319147683335
+ 0.22628933666455739
+ 0.22629548201636096
+ 0.22630162753224986
+ 0.22630777321223039
+ 0.22631391905630777
+ 0.2263200650644899
+ 0.22632621123678159
+ 0.22633235757318962
+ 0.22633850407372086
+ 0.22634465073837998
+ 0.22635079756717444
+ 0.22635694456010994
+ 0.22636309171719338
+ 0.22636923903842995
+ 0.22637538652382605
+ 0.22638153417338905
+ 0.22638768198712364
+ 0.22639382996503668
+ 0.22639997810713441
+ 0.22640612641342328
+ 0.22641227488390905
+ 0.22641842351859848
+ 0.22642457231749749
+ 0.22643072128061173
+ 0.22643687040794808
+ 0.22644301969951303
+ 0.2264491691553121
+ 0.22645531877535238
+ 0.22646146855963897
+ 0.22646761850817876
+ 0.22647376862097762
+ 0.22647991889804228
+ 0.22648606933937862
+ 0.22649221994499294
+ 0.22649837071489157
+ 0.22650452164908078
+ 0.22651067274756587
+ 0.22651682401035486
+ 0.22652297543745226
+ 0.22652912702886513
+ 0.22653527878459967
+ 0.22654143070466168
+ 0.22654758278905759
+ 0.22655373503779414
+ 0.22655988745087668
+ 0.22656604002831202
+ 0.22657219277010643
+ 0.22657834567626584
+ 0.22658449874679651
+ 0.22659065198170469
+ 0.22659680538099689
+ 0.22660295894467872
+ 0.22660911267275716
+ 0.22661526656523792
+ 0.22662142062212684
+ 0.22662757484343143
+ 0.22663372922915676
+ 0.22663988377930974
+ 0.22664603849389631
+ 0.22665219337292208
+ 0.22665834841639509
+ 0.2266645036243195
+ 0.22667065899670275
+ 0.22667681453355062
+ 0.22668297023486936
+ 0.22668912610066547
+ 0.22669528213094511
+ 0.22670143832571424
+ 0.22670759468497959
+ 0.22671375120874704
+ 0.22671990789702237
+ 0.22672606474981299
+ 0.2267322217671241
+ 0.22673837894896215
+ 0.22674453629533348
+ 0.2267506938062448
+ 0.22675685148170149
+ 0.22676300932171048
+ 0.22676916732627744
+ 0.22677532549540882
+ 0.22678148382911145
+ 0.2267876423273906
+ 0.22679380099025309
+ 0.22679995981770479
+ 0.22680611880975257
+ 0.22681227796640224
+ 0.22681843728765957
+ 0.22682459677353145
+ 0.22683075642402423
+ 0.2268369162391437
+ 0.22684307621889621
+ 0.22684923636328805
+ 0.22685539667232571
+ 0.22686155714601486
+ 0.22686771778436246
+ 0.22687387858737368
+ 0.22688003955505601
+ 0.22688620068741527
+ 0.22689236198445667
+ 0.22689852344618824
+ 0.22690468507261519
+ 0.22691084686374335
+ 0.2269170088195796
+ 0.22692317094013031
+ 0.22692933322540179
+ 0.22693549567539986
+ 0.22694165829013038
+ 0.22694782106960062
+ 0.22695398401381608
+ 0.22696014712278345
+ 0.22696631039650866
+ 0.22697247383499802
+ 0.2269786374382578
+ 0.22698480120629394
+ 0.22699096513911321
+ 0.22699712923672208
+ 0.22700329349912576
+ 0.22700945792633165
+ 0.22701562251834509
+ 0.227021787275173
+ 0.22702795219682101
+ 0.22703411728329567
+ 0.2270402825346037
+ 0.22704644795075055
+ 0.22705261353174247
+ 0.22705877927758641
+ 0.22706494518828862
+ 0.22707111126385446
+ 0.22707727750429085
+ 0.2270834439096035
+ 0.22708961047979989
+ 0.2270957772148848
+ 0.22710194411486517
+ 0.22710811117974775
+ 0.22711427840953785
+ 0.22712044580424195
+ 0.2271266133638668
+ 0.22713278108841831
+ 0.22713894897790227
+ 0.22714511703232609
+ 0.22715128525169509
+ 0.22715745363601564
+ 0.22716362218529404
+ 0.22716979089953723
+ 0.22717595977875044
+ 0.22718212882294014
+ 0.22718829803211307
+ 0.22719446740627525
+ 0.22720063694543341
+ 0.22720680664959289
+ 0.22721297651876007
+ 0.22721914655294181
+ 0.227225316752144
+ 0.22723148711637289
+ 0.227237657645635
+ 0.2272438283399365
+ 0.2272499991992834
+ 0.22725617022368197
+ 0.22726234141313911
+ 0.22726851276766014
+ 0.22727468428725198
+ 0.22728085597192033
+ 0.22728702782167226
+ 0.22729319983651353
+ 0.2272993720164499
+ 0.22730554436148889
+ 0.22731171687163582
+ 0.22731788954689697
+ 0.22732406238727873
+ 0.22733023539278804
+ 0.22733640856343018
+ 0.2273425818992115
+ 0.22734875540013888
+ 0.22735492906621829
+ 0.22736110289745642
+ 0.22736727689385877
+ 0.2273734510554315
+ 0.2273796253821817
+ 0.22738579987411511
+ 0.22739197453123819
+ 0.22739814935355718
+ 0.2274043243410786
+ 0.22741049949380812
+ 0.22741667481175221
+ 0.22742285029491724
+ 0.22742902594330952
+ 0.22743520175693552
+ 0.22744137773580095
+ 0.22744755387991289
+ 0.22745373018927706
+ 0.22745990666389984
+ 0.22746608330378704
+ 0.22747226010894572
+ 0.22747843707938151
+ 0.22748461421510091
+ 0.22749079151611024
+ 0.22749696898241598
+ 0.2275031466140244
+ 0.22750932441094135
+ 0.2275155023731727
+ 0.22752168050072644
+ 0.22752785879360674
+ 0.22753403725182117
+ 0.22754021587537598
+ 0.22754639466427709
+ 0.2275525736185309
+ 0.22755875273814372
+ 0.22756493202312136
+ 0.22757111147347089
+ 0.22757729108919794
+ 0.22758347087030914
+ 0.22758965081681062
+ 0.22759583092870839
+ 0.22760201120600931
+ 0.22760819164871926
+ 0.22761437225684511
+ 0.22762055303039222
+ 0.22762673396936747
+ 0.22763291507377667
+ 0.22763909634362681
+ 0.22764527777892374
+ 0.22765145937967379
+ 0.2276576411458828
+ 0.22766382307755778
+ 0.22767000517470506
+ 0.22767618743732984
+ 0.22768236986543922
+ 0.2276885524590401
+ 0.22769473521813718
+ 0.22770091814273846
+ 0.22770710123284874
+ 0.22771328448847497
+ 0.22771946790962408
+ 0.22772565149630078
+ 0.22773183524851257
+ 0.22773801916626585
+ 0.22774420324956587
+ 0.22775038749841961
+ 0.22775657191283347
+ 0.22776275649281327
+ 0.22776894123836544
+ 0.22777512614949685
+ 0.22778131122621295
+ 0.22778749646852101
+ 0.2277936818764259
+ 0.22779986744993519
+ 0.2278060531890545
+ 0.22781223909379045
+ 0.22781842516414877
+ 0.22782461140013638
+ 0.22783079780175977
+ 0.22783698436902422
+ 0.22784317110193658
+ 0.22784935800050329
+ 0.22785554506473085
+ 0.227861732294625
+ 0.22786791969019213
+ 0.22787410725143867
+ 0.22788029497837106
+ 0.22788648287099558
+ 0.22789267092931823
+ 0.22789885915334535
+ 0.22790504754308324
+ 0.22791123609853783
+ 0.22791742481971669
+ 0.22792361370662445
+ 0.22792980275926925
+ 0.22793599197765577
+ 0.22794218136179106
+ 0.2279483709116808
+ 0.22795456062733213
+ 0.22796075050875136
+ 0.2279669405559438
+ 0.22797313076891643
+ 0.22797932114767558
+ 0.22798551169222714
+ 0.22799170240257757
+ 0.22799789327873377
+ 0.22800408432070154
+ 0.22801027552848688
+ 0.22801646690209665
+ 0.22802265844153669
+ 0.22802885014681348
+ 0.22803504201793334
+ 0.22804123405490273
+ 0.2280474262577275
+ 0.22805361862641457
+ 0.22805981116096991
+ 0.22806600386139919
+ 0.22807219672771006
+ 0.22807838975990841
+ 0.22808458295799944
+ 0.22809077632199062
+ 0.22809696985188796
+ 0.22810316354769725
+ 0.22810935740942545
+ 0.22811555143707843
+ 0.22812174563066312
+ 0.22812793999018538
+ 0.22813413451565165
+ 0.22814032920706778
+ 0.22814652406444016
+ 0.22815271908777587
+ 0.22815891427708063
+ 0.22816510963236092
+ 0.22817130515362305
+ 0.22817750084087249
+ 0.22818369669411667
+ 0.22818989271336201
+ 0.22819608889861384
+ 0.22820228524987907
+ 0.22820848176716366
+ 0.22821467845047455
+ 0.22822087529981694
+ 0.22822707231519851
+ 0.22823326949662506
+ 0.22823946684410185
+ 0.22824566435763705
+ 0.2282518620372353
+ 0.22825805988290426
+ 0.22826425789464858
+ 0.22827045607247637
+ 0.22827665441639305
+ 0.22828285292640482
+ 0.22828905160251831
+ 0.22829525044473983
+ 0.22830144945307582
+ 0.22830764862753158
+ 0.22831384796811524
+ 0.22832004747483151
+ 0.22832624714768743
+ 0.22833244698668884
+ 0.22833864699184264
+ 0.22834484716315476
+ 0.22835104750063165
+ 0.22835724800427967
+ 0.22836344867410535
+ 0.2283696495101144
+ 0.22837585051231343
+ 0.22838205168070932
+ 0.22838825301530732
+ 0.22839445451611448
+ 0.22840065618313674
+ 0.228406858016381
+ 0.22841306001585313
+ 0.22841926218155897
+ 0.22842546451350618
+ 0.22843166701169998
+ 0.22843786967614679
+ 0.22844407250685306
+ 0.22845027550382532
+ 0.22845647866706983
+ 0.22846268199659311
+ 0.22846888549240099
+ 0.22847508915449946
+ 0.22848129298289643
+ 0.22848749697759624
+ 0.22849370113860645
+ 0.22849990546593341
+ 0.22850610995958298
+ 0.22851231461956112
+ 0.22851851944587534
+ 0.22852472443853097
+ 0.22853092959753446
+ 0.22853713492289271
+ 0.22854334041461169
+ 0.22854954607269728
+ 0.22855575189715699
+ 0.22856195788799552
+ 0.22856816404522057
+ 0.22857437036883727
+ 0.22858057685885336
+ 0.22858678351527406
+ 0.22859299033810634
+ 0.2285991973273562
+ 0.22860540448302996
+ 0.22861161180513412
+ 0.2286178192936745
+ 0.22862402694865816
+ 0.22863023477009151
+ 0.2286364427579799
+ 0.22864265091233024
+ 0.22864885923314909
+ 0.22865506772044283
+ 0.22866127637421679
+ 0.22866748519447846
+ 0.22867369418123382
+ 0.22867990333448873
+ 0.22868611265425071
+ 0.2286923221405246
+ 0.22869853179331728
+ 0.22870474161263593
+ 0.22871095159848565
+ 0.22871716175087364
+ 0.22872337206980572
+ 0.2287295825552883
+ 0.22873579320732779
+ 0.22874200402593073
+ 0.22874821501110354
+ 0.22875442616285205
+ 0.22876063748118278
+ 0.22876684896610211
+ 0.22877306061761657
+ 0.22877927243573198
+ 0.22878548442045529
+ 0.22879169657179252
+ 0.22879790888975007
+ 0.22880412137433431
+ 0.22881033402555184
+ 0.22881654684340844
+ 0.2288227598279105
+ 0.2288289729790646
+ 0.22883518629687713
+ 0.22884139978135459
+ 0.22884761343250273
+ 0.22885382725032874
+ 0.22886004123483844
+ 0.22886625538603769
+ 0.22887246970393355
+ 0.22887868418853238
+ 0.22888489883984017
+ 0.22889111365786338
+ 0.22889732864260837
+ 0.22890354379408107
+ 0.22890975911228856
+ 0.22891597459723714
+ 0.22892219024893234
+ 0.22892840606738163
+ 0.22893462205259035
+ 0.22894083820456554
+ 0.22894705452331246
+ 0.22895327100883933
+ 0.22895948766115093
+ 0.22896570448025419
+ 0.22897192146615514
+ 0.2289781386188606
+ 0.22898435593837665
+ 0.22899057342470969
+ 0.22899679107786558
+ 0.22900300889785147
+ 0.22900922688467359
+ 0.22901544503833804
+ 0.22902166335885116
+ 0.2290278818462195
+ 0.22903410050044887
+ 0.22904031932154575
+ 0.22904653830951727
+ 0.22905275746436918
+ 0.22905897678610812
+ 0.22906519627473979
+ 0.22907141593027128
+ 0.22907763575270856
+ 0.22908385574205797
+ 0.22909007589832611
+ 0.22909629622151881
+ 0.22910251671164311
+ 0.22910873736870493
+ 0.22911495819271072
+ 0.2291211791836669
+ 0.22912740034157997
+ 0.22913362166645584
+ 0.22913984315830155
+ 0.22914606481712299
+ 0.22915228664292667
+ 0.22915850863571779
+ 0.22916473079550467
+ 0.22917095312229258
+ 0.22917717561608791
+ 0.22918339827689729
+ 0.2291896211047271
+ 0.22919584409958332
+ 0.22920206726147285
+ 0.22920829059040165
+ 0.22921451408637561
+ 0.22922073774940244
+ 0.22922696157948733
+ 0.22923318557663688
+ 0.22923940974085805
+ 0.22924563407215615
+ 0.22925185857053834
+ 0.22925808323601099
+ 0.22926430806858003
+ 0.22927053306825196
+ 0.22927675823503324
+ 0.22928298356893034
+ 0.22928920906994968
+ 0.22929543473809727
+ 0.2293016605733795
+ 0.22930788657580348
+ 0.229314112745374
+ 0.22932033908209909
+ 0.22932656558598427
+ 0.22933279225703593
+ 0.22933901909526105
+ 0.22934524610066515
+ 0.22935147327325509
+ 0.22935770061303698
+ 0.22936392812001705
+ 0.22937015579420253
+ 0.22937638363559876
+ 0.2293826116442127
+ 0.22938883982005029
+ 0.22939506816311864
+ 0.22940129667342357
+ 0.22940752535097109
+ 0.2294137541957687
+ 0.22941998320782125
+ 0.22942621238713631
+ 0.22943244173372052
+ 0.22943867124757905
+ 0.22944490092871897
+ 0.22945113077714624
+ 0.22945736079286738
+ 0.22946359097588939
+ 0.22946982132621763
+ 0.22947605184385972
+ 0.22948228252882044
+ 0.22948851338110737
+ 0.22949474440072706
+ 0.22950097558768487
+ 0.22950720694198776
+ 0.22951343846364178
+ 0.22951967015265387
+ 0.22952590200903
+ 0.22953213403277661
+ 0.2295383662238997
+ 0.22954459858240625
+ 0.22955083110830291
+ 0.22955706380159532
+ 0.22956329666228964
+ 0.2295695296903934
+ 0.22957576288591192
+ 0.22958199624885178
+ 0.22958822977921997
+ 0.22959446347702187
+ 0.22960069734226515
+ 0.22960693137495505
+ 0.22961316557509823
+ 0.22961939994270159
+ 0.22962563447777054
+ 0.2296318691803127
+ 0.22963810405033347
+ 0.22964433908783935
+ 0.22965057429283736
+ 0.22965680966533342
+ 0.22966304520533401
+ 0.22966928091284508
+ 0.22967551678787376
+ 0.22968175283042533
+ 0.22968798904050741
+ 0.22969422541812656
+ 0.2297004619632875
+ 0.22970669867599794
+ 0.22971293555626374
+ 0.22971917260409147
+ 0.22972540981948755
+ 0.22973164720245851
+ 0.2297378847530103
+ 0.22974412247114995
+ 0.22975036035688343
+ 0.22975659841021664
+ 0.22976283663115721
+ 0.22976907501971053
+ 0.22977531357588316
+ 0.22978155229968147
+ 0.22978779119111201
+ 0.22979403025018127
+ 0.22980026947689527
+ 0.229806508871261
+ 0.22981274843328436
+ 0.22981898816297192
+ 0.22982522806032968
+ 0.22983146812536451
+ 0.22983770835808315
+ 0.22984394875849079
+ 0.22985018932659512
+ 0.2298564300624015
+ 0.22986267096591706
+ 0.22986891203714771
+ 0.22987515327609992
+ 0.22988139468278027
+ 0.2298876362571951
+ 0.2298938779993511
+ 0.22990011990925413
+ 0.22990636198691075
+ 0.22991260423232796
+ 0.22991884664551057
+ 0.2299250892264669
+ 0.22993133197520213
+ 0.22993757489172295
+ 0.2299438179760358
+ 0.22995006122814712
+ 0.22995630464806358
+ 0.22996254823579096
+ 0.22996879199133588
+ 0.22997503591470478
+ 0.22998128000590423
+ 0.22998752426494071
+ 0.22999376869182014
+ 0.23000001328654959
+ 0.23000625804913458
+ 0.23001250297958198
+ 0.23001874807789902
+ 0.23002499334409046
+ 0.23003123877816395
+ 0.23003748438012486
+ 0.23004373014998089
+ 0.23004997608773733
+ 0.23005622219340138
+ 0.23006246846697881
+ 0.23006871490847633
+ 0.23007496151790036
+ 0.2300812082952568
+ 0.23008745524055288
+ 0.23009370235379495
+ 0.2300999496349885
+ 0.23010619708414115
+ 0.2301124447012583
+ 0.23011869248634706
+ 0.23012494043941326
+ 0.230131188560463
+ 0.2301374368495038
+ 0.23014368530654172
+ 0.23014993393158326
+ 0.23015618272463373
+ 0.2301624316857003
+ 0.23016868081479006
+ 0.2301749301119089
+ 0.23018117957706227
+ 0.23018742921025775
+ 0.23019367901150192
+ 0.23019992898080016
+ 0.23020617911815952
+ 0.23021242942358666
+ 0.23021867989708736
+ 0.23022493053866824
+ 0.23023118134833576
+ 0.2302374323260965
+ 0.23024368347195645
+ 0.23024993478592262
+ 0.23025618626800098
+ 0.23026243791819817
+ 0.23026868973652051
+ 0.23027494172297416
+ 0.23028119387756604
+ 0.23028744620030231
+ 0.23029369869118932
+ 0.23029995135023362
+ 0.23030620417744124
+ 0.23031245717281928
+ 0.23031871033637366
+ 0.23032496366811089
+ 0.23033121716803759
+ 0.23033747083615957
+ 0.23034372467248404
+ 0.23034997867701701
+ 0.23035623284976489
+ 0.23036248719073418
+ 0.23036874169993163
+ 0.23037499637736294
+ 0.23038125122303488
+ 0.23038750623695378
+ 0.23039376141912629
+ 0.23040001676955887
+ 0.23040627228825816
+ 0.23041252797522949
+ 0.23041878383048053
+ 0.23042503985401666
+ 0.23043129604584559
+ 0.23043755240597263
+ 0.23044380893440392
+ 0.23045006563114695
+ 0.23045632249620784
+ 0.23046257952959304
+ 0.23046883673130852
+ 0.23047509410136077
+ 0.23048135163975703
+ 0.23048760934650259
+ 0.23049386722160459
+ 0.23050012526506961
+ 0.23050638347690353
+ 0.23051264185711298
+ 0.23051890040570444
+ 0.23052515912268387
+ 0.23053141800805899
+ 0.23053767706183462
+ 0.23054393628401848
+ 0.2305501956746159
+ 0.23055645523363405
+ 0.23056271496107936
+ 0.23056897485695796
+ 0.23057523492127682
+ 0.23058149515404147
+ 0.23058775555525893
+ 0.23059401612493585
+ 0.23060027686307749
+ 0.23060653776969217
+ 0.23061279884478472
+ 0.2306190600883623
+ 0.23062532150043086
+ 0.2306315830809969
+ 0.23063784483006816
+ 0.23064410674764887
+ 0.23065036883374729
+ 0.23065663108836887
+ 0.23066289351152069
+ 0.23066915610320873
+ 0.23067541886343948
+ 0.23068168179221907
+ 0.23068794488955505
+ 0.2306942081554523
+ 0.23070047158991858
+ 0.23070673519295976
+ 0.23071299896458183
+ 0.2307192629047925
+ 0.23072552701359667
+ 0.23073179129100199
+ 0.23073805573701445
+ 0.2307443203516405
+ 0.2307505851348863
+ 0.23075685008675884
+ 0.23076311520726417
+ 0.23076938049640877
+ 0.23077564595419922
+ 0.23078191158064157
+ 0.23078817737574345
+ 0.23079444333950977
+ 0.23080070947194756
+ 0.23080697577306339
+ 0.23081324224286387
+ 0.23081950888135497
+ 0.23082577568854376
+ 0.23083204266443574
+ 0.23083830980903852
+ 0.23084457712235762
+ 0.23085084460440006
+ 0.23085711225517189
+ 0.23086338007467908
+ 0.23086964806292934
+ 0.23087591621992865
+ 0.23088218454568299
+ 0.23088845304019892
+ 0.23089472170348357
+ 0.23090099053554242
+ 0.23090725953638253
+ 0.23091352870601042
+ 0.23091979804443158
+ 0.23092606755165368
+ 0.23093233722768278
+ 0.23093860707252534
+ 0.23094487708618741
+ 0.23095114726867558
+ 0.23095741761999689
+ 0.23096368814015686
+ 0.23096995882916319
+ 0.23097622968702064
+ 0.23098250071373691
+ 0.2309887719093181
+ 0.23099504327377082
+ 0.23100131480710145
+ 0.23100758650931666
+ 0.23101385838042238
+ 0.23102013042042527
+ 0.2310264026293313
+ 0.23103267500714819
+ 0.23103894755388124
+ 0.23104522026953775
+ 0.23105149315412307
+ 0.2310577662076449
+ 0.23106403943010934
+ 0.23107031282152224
+ 0.23107658638189019
+ 0.23108286011121987
+ 0.23108913400951833
+ 0.23109540807679163
+ 0.23110168231304568
+ 0.2311079567182871
+ 0.23111423129252245
+ 0.23112050603575895
+ 0.23112678094800196
+ 0.23113305602925854
+ 0.2311393312795354
+ 0.23114560669883791
+ 0.23115188228717326
+ 0.23115815804454853
+ 0.23116443397096922
+ 0.23117071006644183
+ 0.23117698633097294
+ 0.23118326276456974
+ 0.23118953936723763
+ 0.23119581613898443
+ 0.23120209307981485
+ 0.23120837018973667
+ 0.23121464746875531
+ 0.23122092491687851
+ 0.23122720253411175
+ 0.23123348032046212
+ 0.2312397582759356
+ 0.23124603640053878
+ 0.23125231469427834
+ 0.23125859315716016
+ 0.23126487178919142
+ 0.23127115059037825
+ 0.23127742956072755
+ 0.23128370870024503
+ 0.23128998800893705
+ 0.23129626748681095
+ 0.23130254713387313
+ 0.23130882695012975
+ 0.23131510693558666
+ 0.23132138709025177
+ 0.23132766741412986
+ 0.23133394790722861
+ 0.23134022856955408
+ 0.2313465094011129
+ 0.23135279040191162
+ 0.23135907157195557
+ 0.23136535291125318
+ 0.23137163441980993
+ 0.23137791609763167
+ 0.23138419794472562
+ 0.23139047996109849
+ 0.23139676214675611
+ 0.23140304450170521
+ 0.23140932702595224
+ 0.23141560971950334
+ 0.23142189258236623
+ 0.23142817561454571
+ 0.23143445881604952
+ 0.23144074218688312
+ 0.2314470257270537
+ 0.23145330943656792
+ 0.23145959331543162
+ 0.23146587736365204
+ 0.23147216158123463
+ 0.23147844596818656
+ 0.23148473052451449
+ 0.23149101525022373
+ 0.23149730014532208
+ 0.23150358520981554
+ 0.2315098704437108
+ 0.23151615584701427
+ 0.23152244141973211
+ 0.23152872716187031
+ 0.23153501307343663
+ 0.23154129915443644
+ 0.23154758540487758
+ 0.23155387182476483
+ 0.23156015841410604
+ 0.23156644517290709
+ 0.23157273210117413
+ 0.2315790191989143
+ 0.23158530646613359
+ 0.23159159390283912
+ 0.23159788150903701
+ 0.23160416928473326
+ 0.23161045722993504
+ 0.23161674534464835
+ 0.2316230336288804
+ 0.23162932208263715
+ 0.23163561070592464
+ 0.23164189949875011
+ 0.23164818846112015
+ 0.23165447759304009
+ 0.23166076689451784
+ 0.23166705636555882
+ 0.23167334600617062
+ 0.23167963581635834
+ 0.23168592579612957
+ 0.23169221594549042
+ 0.23169850626444688
+ 0.23170479675300673
+ 0.23171108741117485
+ 0.23171737823895897
+ 0.23172366923636509
+ 0.23172996040339985
+ 0.2317362517400699
+ 0.23174254324638063
+ 0.23174883492234036
+ 0.23175512676795404
+ 0.23176141878322881
+ 0.23176771096817128
+ 0.23177400332278739
+ 0.23178029584708393
+ 0.23178658854106793
+ 0.23179288140474494
+ 0.23179917443812215
+ 0.23180546764120605
+ 0.23181176101400275
+ 0.23181805455651891
+ 0.2318243482687605
+ 0.23183064215073518
+ 0.23183693620244863
+ 0.23184323042390736
+ 0.23184952481511789
+ 0.23185581937608754
+ 0.23186211410682114
+ 0.23186840900732703
+ 0.23187470407761004
+ 0.23188099931767805
+ 0.23188729472753702
+ 0.231893590307193
+ 0.2318998860566531
+ 0.23190618197592408
+ 0.23191247806501139
+ 0.23191877432392208
+ 0.23192507075266292
+ 0.23193136735124037
+ 0.23193766411965999
+ 0.23194396105792958
+ 0.23195025816605511
+ 0.23195655544404323
+ 0.23196285289189997
+ 0.23196915050963252
+ 0.23197544829724637
+ 0.23198174625474866
+ 0.23198804438214662
+ 0.23199434267944577
+ 0.23200064114665256
+ 0.23200693978377385
+ 0.2320132385908166
+ 0.2320195375677864
+ 0.23202583671468993
+ 0.23203213603153425
+ 0.23203843551832545
+ 0.23204473517507013
+ 0.23205103500177504
+ 0.23205733499844602
+ 0.2320636351650911
+ 0.2320699355017149
+ 0.23207623600832417
+ 0.23208253668492676
+ 0.23208883753152806
+ 0.23209513854813521
+ 0.23210143973475433
+ 0.23210774109139207
+ 0.23211404261805504
+ 0.23212034431474871
+ 0.23212664618148132
+ 0.23213294821825853
+ 0.23213925042508687
+ 0.23214555280197238
+ 0.23215185534892285
+ 0.2321581580659432
+ 0.23216446095304122
+ 0.23217076401022285
+ 0.23217706723749487
+ 0.23218337063486322
+ 0.23218967420233516
+ 0.23219597793991675
+ 0.23220228184761402
+ 0.23220858592543478
+ 0.23221489017338501
+ 0.23222119459147084
+ 0.23222749917969887
+ 0.23223380393807574
+ 0.23224010886660806
+ 0.23224641396530196
+ 0.23225271923416452
+ 0.23225902467320186
+ 0.23226533028242127
+ 0.23227163606182805
+ 0.23227794201142959
+ 0.23228424813123191
+ 0.23229055442124152
+ 0.23229686088146576
+ 0.23230316751191007
+ 0.23230947431258164
+ 0.23231578128348709
+ 0.23232208842463256
+ 0.23232839573602407
+ 0.23233470321766936
+ 0.23234101086957457
+ 0.23234731869174563
+ 0.2323536266841888
+ 0.23235993484691228
+ 0.23236624317992105
+ 0.23237255168322238
+ 0.23237886035682215
+ 0.23238516920072716
+ 0.23239147821494457
+ 0.23239778739947997
+ 0.23240409675434096
+ 0.23241040627953313
+ 0.23241671597506314
+ 0.23242302584093755
+ 0.23242933587716311
+ 0.23243564608374642
+ 0.23244195646069352
+ 0.23244826700801163
+ 0.2324545777257063
+ 0.23246088861378522
+ 0.2324671996722539
+ 0.23247351090111973
+ 0.23247982230038858
+ 0.23248613387006767
+ 0.23249244561016266
+ 0.23249875752068058
+ 0.23250506960162762
+ 0.23251138185301104
+ 0.23251769427483673
+ 0.23252400686711153
+ 0.23253031962984194
+ 0.23253663256303417
+ 0.23254294566669473
+ 0.23254925894083084
+ 0.23255557238544877
+ 0.23256188600055433
+ 0.23256819978615501
+ 0.23257451374225663
+ 0.23258082786886652
+ 0.23258714216599027
+ 0.23259345663363495
+ 0.23259977127180737
+ 0.23260608608051345
+ 0.23261240105975986
+ 0.23261871620955399
+ 0.23262503152990113
+ 0.23263134702080862
+ 0.23263766268228253
+ 0.23264397851432952
+ 0.23265029451695618
+ 0.2326566106901693
+ 0.23266292703397476
+ 0.23266924354838051
+ 0.23267556023339139
+ 0.23268187708901472
+ 0.23268819411525712
+ 0.2326945113121246
+ 0.23270082867962447
+ 0.23270714621776281
+ 0.23271346392654624
+ 0.23271978180598143
+ 0.23272609985607506
+ 0.23273241807683323
+ 0.23273873646826249
+ 0.23274505503036963
+ 0.23275137376316118
+ 0.23275769266664384
+ 0.23276401174082373
+ 0.2327703309857081
+ 0.23277665040130244
+ 0.23278296998761391
+ 0.23278928974464932
+ 0.23279560967241464
+ 0.23280192977091704
+ 0.2328082500401622
+ 0.23281457048015788
+ 0.23282089109090892
+ 0.23282721187242381
+ 0.23283353282470803
+ 0.23283985394776768
+ 0.23284617524161058
+ 0.23285249670624222
+ 0.2328588183416698
+ 0.2328651401478995
+ 0.23287146212493787
+ 0.23287778427279171
+ 0.23288410659146758
+ 0.2328904290809716
+ 0.23289675174131044
+ 0.23290307457249132
+ 0.23290939757451981
+ 0.23291572074740316
+ 0.23292204409114733
+ 0.23292836760575972
+ 0.23293469129124689
+ 0.23294101514761387
+ 0.2329473391748684
+ 0.23295366337301776
+ 0.23295998774206689
+ 0.23296631228202302
+ 0.23297263699289286
+ 0.232978961874683
+ 0.2329852869274002
+ 0.23299161215104996
+ 0.23299793754564066
+ 0.2330042631111767
+ 0.23301058884766634
+ 0.2330169147551153
+ 0.23302324083353015
+ 0.23302956708291753
+ 0.2330358935032848
+ 0.23304222009463735
+ 0.2330485468569819
+ 0.23305487379032638
+ 0.23306120089467555
+ 0.23306752817003684
+ 0.23307385561641683
+ 0.2330801832338216
+ 0.23308651102225847
+ 0.23309283898173294
+ 0.23309916711225281
+ 0.23310549541382419
+ 0.23311182388645321
+ 0.23311815253014659
+ 0.2331244813449114
+ 0.23313081033075342
+ 0.23313713948768025
+ 0.23314346881569753
+ 0.23314979831481195
+ 0.23315612798503016
+ 0.23316245782635941
+ 0.23316878783880524
+ 0.23317511802237434
+ 0.2331814483770745
+ 0.23318777890291076
+ 0.23319410959989031
+ 0.23320044046801983
+ 0.23320677150730601
+ 0.23321310271775497
+ 0.2332194340993734
+ 0.23322576565216793
+ 0.23323209737614531
+ 0.23323842927131222
+ 0.23324476133767472
+ 0.23325109357523949
+ 0.23325742598401325
+ 0.23326375856400272
+ 0.23327009131521451
+ 0.23327642423765474
+ 0.23328275733133022
+ 0.23328909059624797
+ 0.2332954240324138
+ 0.23330175763983424
+ 0.23330809141851711
+ 0.23331442536846739
+ 0.23332075948969244
+ 0.23332709378219937
+ 0.23333342824599387
+ 0.23333976288108252
+ 0.23334609768747261
+ 0.23335243266516975
+ 0.23335876781418174
+ 0.233365103134514
+ 0.23337143862617338
+ 0.23337777428916706
+ 0.23338411012350127
+ 0.23339044612918253
+ 0.23339678230621708
+ 0.23340311865461219
+ 0.23340945517437386
+ 0.23341579186550895
+ 0.23342212872802395
+ 0.2334284657619258
+ 0.23343480296722038
+ 0.23344114034391514
+ 0.23344747789201548
+ 0.23345381561152936
+ 0.23346015350246174
+ 0.23346649156482097
+ 0.23347282979861264
+ 0.2334791682038434
+ 0.23348550678052005
+ 0.23349184552864866
+ 0.23349818444823642
+ 0.23350452353929016
+ 0.23351086280181538
+ 0.23351720223581984
+ 0.23352354184130925
+ 0.23352988161829016
+ 0.23353622156676995
+ 0.23354256168675466
+ 0.23354890197825101
+ 0.23355524244126519
+ 0.23356158307580507
+ 0.23356792388187547
+ 0.23357426485948438
+ 0.23358060600863728
+ 0.23358694732934152
+ 0.23359328882160368
+ 0.23359963048543
+ 0.23360597232082719
+ 0.23361231432780247
+ 0.23361865650636138
+ 0.23362499885651067
+ 0.23363134137825764
+ 0.23363768407160834
+ 0.23364402693656952
+ 0.23365036997314789
+ 0.23365671318134956
+ 0.23366305656118128
+ 0.23366940011265025
+ 0.2336757438357627
+ 0.23368208773052532
+ 0.23368843179694415
+ 0.233694776035026
+ 0.23370112044477803
+ 0.23370746502620598
+ 0.23371380977931758
+ 0.23372015470411844
+ 0.23372649980061522
+ 0.23373284506881525
+ 0.23373919050872408
+ 0.23374553612034957
+ 0.23375188190369667
+ 0.23375822785877387
+ 0.23376457398558612
+ 0.23377092028414126
+ 0.23377726675444493
+ 0.23378361339650439
+ 0.23378996021032575
+ 0.23379630719591635
+ 0.23380265435328218
+ 0.23380900168242957
+ 0.23381534918336566
+ 0.23382169685609674
+ 0.23382804470062996
+ 0.23383439271697154
+ 0.23384074090512763
+ 0.23384708926510545
+ 0.23385343779691173
+ 0.2338597865005527
+ 0.23386613537603498
+ 0.2338724844233647
+ 0.23387883364254983
+ 0.23388518303359587
+ 0.23389153259650952
+ 0.23389788233129757
+ 0.23390423223796664
+ 0.23391058231652298
+ 0.2339169325669738
+ 0.23392328298932585
+ 0.23392963358358476
+ 0.23393598434975829
+ 0.23394233528785208
+ 0.23394868639787283
+ 0.23395503767982789
+ 0.23396138913372275
+ 0.23396774075956533
+ 0.23397409255736176
+ 0.23398044452711758
+ 0.2339867966688407
+ 0.23399314898253792
+ 0.23399950146821469
+ 0.23400585412587835
+ 0.2340122069555351
+ 0.23401855995719156
+ 0.23402491313085513
+ 0.23403126647653189
+ 0.23403761999422809
+ 0.23404397368395088
+ 0.23405032754570657
+ 0.2340566815795018
+ 0.2340630357853439
+ 0.23406939016323838
+ 0.23407574471319206
+ 0.23408209943521216
+ 0.23408845432930492
+ 0.23409480939547705
+ 0.2341011646337352
+ 0.234107520044085
+ 0.23411387562653499
+ 0.23412023138109067
+ 0.23412658730775812
+ 0.23413294340654534
+ 0.23413929967745784
+ 0.23414565612050239
+ 0.23415201273568578
+ 0.23415836952301516
+ 0.23416472648249628
+ 0.23417108361413577
+ 0.2341774409179409
+ 0.23418379839391856
+ 0.23419015604207419
+ 0.23419651386241519
+ 0.2342028718549482
+ 0.23420923001967892
+ 0.23421558835661574
+ 0.23422194686576372
+ 0.23422830554713006
+ 0.23423466440072099
+ 0.23424102342654385
+ 0.23424738262460482
+ 0.23425374199491059
+ 0.23426010153746787
+ 0.23426646125228348
+ 0.23427282113936343
+ 0.23427918119871463
+ 0.2342855414303438
+ 0.23429190183425758
+ 0.23429826241046275
+ 0.23430462315896552
+ 0.23431098407977255
+ 0.23431734517289074
+ 0.23432370643832659
+ 0.23433006787608704
+ 0.23433642948617817
+ 0.23434279126860735
+ 0.2343491532233801
+ 0.23435551535050381
+ 0.23436187764998517
+ 0.23436824012183094
+ 0.23437460276604724
+ 0.23438096558264035
+ 0.23438732857161815
+ 0.23439369173298608
+ 0.23440005506675163
+ 0.23440641857292091
+ 0.23441278225150067
+ 0.23441914610249767
+ 0.23442551012591858
+ 0.23443187432176971
+ 0.23443823869005764
+ 0.23444460323078983
+ 0.23445096794397186
+ 0.23445733282961093
+ 0.23446369788771396
+ 0.23447006311828647
+ 0.23447642852133635
+ 0.23448279409686973
+ 0.23448915984489346
+ 0.23449552576541369
+ 0.23450189185843709
+ 0.23450825812397105
+ 0.23451462456202121
+ 0.23452099117259542
+ 0.23452735795569865
+ 0.23453372491133892
+ 0.23454009203952239
+ 0.23454645934025573
+ 0.23455282681354575
+ 0.2345591944593986
+ 0.23456556227782169
+ 0.23457193026882109
+ 0.2345782984324036
+ 0.2345846667685754
+ 0.23459103527734382
+ 0.23459740395871564
+ 0.2346037728126964
+ 0.23461014183929413
+ 0.23461651103851427
+ 0.23462288041036428
+ 0.23462924995485032
+ 0.23463561967197907
+ 0.234641989561758
+ 0.23464835962419262
+ 0.23465472985929026
+ 0.23466110026705711
+ 0.23466747084749998
+ 0.23467384160062621
+ 0.23468021252644128
+ 0.23468658362495265
+ 0.23469295489616654
+ 0.23469932634008958
+ 0.23470569795672924
+ 0.23471206974609099
+ 0.23471844170818226
+ 0.23472481384300917
+ 0.23473118615057861
+ 0.23473755863089779
+ 0.23474393128397239
+ 0.23475030410980977
+ 0.23475667710841602
+ 0.23476305027979855
+ 0.23476942362396294
+ 0.23477579714091718
+ 0.23478217083066683
+ 0.23478854469321864
+ 0.23479491872857999
+ 0.23480129293675706
+ 0.23480766731775657
+ 0.23481404187158481
+ 0.23482041659824898
+ 0.2348267914977554
+ 0.23483316657011086
+ 0.23483954181532196
+ 0.23484591723339565
+ 0.23485229282433803
+ 0.23485866858815585
+ 0.23486504452485649
+ 0.23487142063444563
+ 0.23487779691693053
+ 0.23488417337231796
+ 0.23489055000061421
+ 0.23489692680182594
+ 0.23490330377596
+ 0.2349096809230225
+ 0.2349160582430215
+ 0.23492243573596186
+ 0.23492881340185165
+ 0.23493519124069648
+ 0.23494156925250365
+ 0.23494794743727998
+ 0.23495432579503167
+ 0.23496070432576541
+ 0.23496708302948868
+ 0.23497346190620641
+ 0.23497984095592714
+ 0.2349862201786565
+ 0.23499259957440133
+ 0.23499897914316836
+ 0.23500535888496374
+ 0.23501173879979487
+ 0.23501811888766858
+ 0.23502449914859097
+ 0.23503087958256824
+ 0.23503726018960847
+ 0.23504364096971714
+ 0.23505002192290117
+ 0.23505640304916775
+ 0.2350627843485226
+ 0.23506916582097356
+ 0.23507554746652648
+ 0.23508192928518792
+ 0.23508831127696533
+ 0.23509469344186429
+ 0.23510107577989284
+ 0.2351074582910565
+ 0.23511384097536214
+ 0.235120223832817
+ 0.2351266068634269
+ 0.23513299006719959
+ 0.23513937344414076
+ 0.23514575699425724
+ 0.23515214071755636
+ 0.23515852461404438
+ 0.23516490868372797
+ 0.23517129292661348
+ 0.23517767734270814
+ 0.23518406193201827
+ 0.23519044669455061
+ 0.23519683163031133
+ 0.23520321673930847
+ 0.23520960202154759
+ 0.23521598747703545
+ 0.23522237310577956
+ 0.23522875890778541
+ 0.23523514488306041
+ 0.2352415310316108
+ 0.23524791735344386
+ 0.23525430384856535
+ 0.2352606905169832
+ 0.235267077358703
+ 0.23527346437373209
+ 0.23527985156207673
+ 0.23528623892374428
+ 0.23529262645874041
+ 0.23529901416707247
+ 0.23530540204874661
+ 0.23531179010377032
+ 0.23531817833214969
+ 0.23532456673389107
+ 0.23533095530900228
+ 0.23533734405748907
+ 0.23534373297935821
+ 0.23535012207461706
+ 0.23535651134327118
+ 0.23536290078532807
+ 0.23536929040079452
+ 0.23537568018967667
+ 0.23538207015198132
+ 0.23538846028771596
+ 0.23539485059688606
+ 0.23540124107949861
+ 0.23540763173556081
+ 0.23541402256507907
+ 0.23542041356806004
+ 0.2354268047445105
+ 0.23543319609443739
+ 0.23543958761784681
+ 0.23544597931474562
+ 0.23545237118514059
+ 0.23545876322903861
+ 0.23546515544644578
+ 0.23547154783736957
+ 0.23547794040181622
+ 0.23548433313979242
+ 0.235490726051305
+ 0.23549711913636087
+ 0.2355035123949662
+ 0.23550990582712775
+ 0.23551629943285238
+ 0.23552269321214747
+ 0.23552908716501803
+ 0.23553548129147267
+ 0.23554187559151646
+ 0.23554827006515733
+ 0.235554664712401
+ 0.23556105953325468
+ 0.2355674545277254
+ 0.23557384969581871
+ 0.23558024503754249
+ 0.2355866405529031
+ 0.23559303624190675
+ 0.23559943210456077
+ 0.23560582814087147
+ 0.23561222435084617
+ 0.23561862073449055
+ 0.23562501729181198
+ 0.2356314140228167
+ 0.23563781092751215
+ 0.23564420800590455
+ 0.23565060525800005
+ 0.23565700268380674
+ 0.23566340028333016
+ 0.23566979805657717
+ 0.23567619600355524
+ 0.23568259412426995
+ 0.23568899241872862
+ 0.23569539088693817
+ 0.23570178952890483
+ 0.23570818834463544
+ 0.23571458733413675
+ 0.23572098649741555
+ 0.23572738583447878
+ 0.23573378534533199
+ 0.2357401850299832
+ 0.23574658488843866
+ 0.23575298492070509
+ 0.23575938512678887
+ 0.23576578550669733
+ 0.23577218606043676
+ 0.23577858678801383
+ 0.23578498768943554
+ 0.23579138876470804
+ 0.23579779001383874
+ 0.2358041914368339
+ 0.23581059303370033
+ 0.23581699480444482
+ 0.23582339674907365
+ 0.23582979886759423
+ 0.23583620116001278
+ 0.23584260362633672
+ 0.2358490062665711
+ 0.23585540908072453
+ 0.23586181206880258
+ 0.23586821523081222
+ 0.23587461856676073
+ 0.23588102207665387
+ 0.23588742576049898
+ 0.23589382961830235
+ 0.23590023365007132
+ 0.2359066378558122
+ 0.23591304223553122
+ 0.2359194467892364
+ 0.23592585151693329
+ 0.23593225641862883
+ 0.23593866149432979
+ 0.23594506674404306
+ 0.23595147216777543
+ 0.23595787776553317
+ 0.23596428353732363
+ 0.23597068948315253
+ 0.23597709560302785
+ 0.23598350189695527
+ 0.23598990836494282
+ 0.2359963150069955
+ 0.23600272182312074
+ 0.23600912881332603
+ 0.2360155359776169
+ 0.23602194331600093
+ 0.23602835082848431
+ 0.23603475851507377
+ 0.2360411663757763
+ 0.23604757441059868
+ 0.2360539826195471
+ 0.23606039100262907
+ 0.2360667995598508
+ 0.23607320829121961
+ 0.23607961719674136
+ 0.23608602627642281
+ 0.23609243553027134
+ 0.23609884495829322
+ 0.23610525456049533
+ 0.23611166433688444
+ 0.23611807428746678
+ 0.23612448441224992
+ 0.23613089471124002
+ 0.23613730518444445
+ 0.23614371583186902
+ 0.23615012665352109
+ 0.23615653764940678
+ 0.23616294881953317
+ 0.23616936016390755
+ 0.23617577168253559
+ 0.23618218337542471
+ 0.23618859524258187
+ 0.23619500728401316
+ 0.23620141949972492
+ 0.23620783188972519
+ 0.23621424445402026
+ 0.23622065719261626
+ 0.23622707010552008
+ 0.23623348319273865
+ 0.23623989645427868
+ 0.23624630989014775
+ 0.23625272350035087
+ 0.236259137284896
+ 0.23626555124378956
+ 0.23627196537703821
+ 0.23627837968464832
+ 0.23628479416662734
+ 0.2362912088229821
+ 0.23629762365371818
+ 0.23630403865884372
+ 0.23631045383836441
+ 0.23631686919228756
+ 0.23632328472061953
+ 0.23632970042336776
+ 0.23633611630053789
+ 0.23634253235213734
+ 0.23634894857817298
+ 0.23635536497865117
+ 0.23636178155357918
+ 0.23636819830296288
+ 0.23637461522680953
+ 0.236381032325126
+ 0.23638744959791869
+ 0.23639386704519438
+ 0.23640028466696045
+ 0.23640670246322268
+ 0.23641312043398846
+ 0.23641953857926468
+ 0.23642595689905696
+ 0.23643237539337283
+ 0.23643879406221968
+ 0.23644521290560316
+ 0.23645163192353072
+ 0.23645805111600871
+ 0.23646447048304392
+ 0.23647089002464267
+ 0.23647730974081296
+ 0.23648372963156042
+ 0.23649014969689197
+ 0.23649656993681512
+ 0.23650299035133546
+ 0.23650941094046041
+ 0.23651583170419696
+ 0.23652225264255064
+ 0.23652867375553016
+ 0.23653509504314013
+ 0.23654151650538902
+ 0.2365479381422825
+ 0.23655435995382812
+ 0.23656078194003161
+ 0.23656720410090082
+ 0.23657362643644161
+ 0.2365800489466614
+ 0.23658647163156701
+ 0.23659289449116411
+ 0.23659931752546021
+ 0.23660574073446278
+ 0.23661216411817684
+ 0.23661858767661106
+ 0.23662501140977052
+ 0.23663143531766334
+ 0.23663785940029519
+ 0.23664428365767343
+ 0.23665070808980443
+ 0.23665713269669564
+ 0.23666355747835272
+ 0.23666998243478315
+ 0.23667640756599373
+ 0.23668283287199143
+ 0.23668925835278193
+ 0.23669568400837324
+ 0.23670210983877168
+ 0.23670853584398344
+ 0.2367149620240161
+ 0.23672138837887591
+ 0.23672781490856962
+ 0.23673424161310427
+ 0.23674066849248607
+ 0.23674709554672307
+ 0.2367535227758204
+ 0.23675995017978604
+ 0.2367663777586258
+ 0.23677280551234708
+ 0.23677923344095675
+ 0.2367856615444611
+ 0.23679208982286765
+ 0.23679851827618198
+ 0.23680494690441112
+ 0.23681137570756294
+ 0.23681780468564273
+ 0.23682423383865897
+ 0.23683066316661691
+ 0.23683709266952338
+ 0.23684352234738645
+ 0.23684995220021113
+ 0.23685638222800559
+ 0.23686281243077614
+ 0.23686924280852897
+ 0.23687567336127158
+ 0.23688210408901095
+ 0.23688853499175319
+ 0.23689496606950536
+ 0.23690139732227422
+ 0.23690782875006611
+ 0.23691426035288851
+ 0.23692069213074771
+ 0.23692712408365055
+ 0.23693355621160395
+ 0.2369399885146142
+ 0.23694642099268878
+ 0.2369528536458346
+ 0.23695928647405728
+ 0.23696571947736497
+ 0.23697215265576335
+ 0.23697858600925925
+ 0.23698501953786022
+ 0.23699145324157198
+ 0.23699788712040251
+ 0.23700432117435821
+ 0.23701075540344527
+ 0.23701718980767061
+ 0.2370236243870418
+ 0.23703005914156444
+ 0.23703649407124608
+ 0.23704292917609351
+ 0.23704936445611313
+ 0.23705579991131179
+ 0.23706223554169636
+ 0.23706867134727383
+ 0.23707510732805095
+ 0.23708154348403415
+ 0.23708797981523017
+ 0.23709441632164607
+ 0.23710085300328865
+ 0.23710728986016474
+ 0.23711372689228083
+ 0.23712016409964368
+ 0.2371266014822602
+ 0.23713303904013722
+ 0.23713947677328179
+ 0.23714591468170007
+ 0.237152352765399
+ 0.23715879102438611
+ 0.23716522945866716
+ 0.23717166806824946
+ 0.23717810685313948
+ 0.23718454581334458
+ 0.23719098494887123
+ 0.23719742425972559
+ 0.23720386374591573
+ 0.23721030340744748
+ 0.23721674324432773
+ 0.23722318325656322
+ 0.23722962344416107
+ 0.23723606380712803
+ 0.23724250434547101
+ 0.23724894505919641
+ 0.23725538594831105
+ 0.23726182701282125
+ 0.23726826825273512
+ 0.23727470966805836
+ 0.23728115125879845
+ 0.23728759302496177
+ 0.23729403496655455
+ 0.23730047708358493
+ 0.23730691937605861
+ 0.23731336184398305
+ 0.23731980448736403
+ 0.23732624730620963
+ 0.23733269030052609
+ 0.23733913347031982
+ 0.23734557681559826
+ 0.23735202033636715
+ 0.23735846403263461
+ 0.2373649079044069
+ 0.23737135195169098
+ 0.23737779617449253
+ 0.23738424057282029
+ 0.23739068514667927
+ 0.23739712989607714
+ 0.23740357482102067
+ 0.23741001992151622
+ 0.23741646519757134
+ 0.23742291064919169
+ 0.23742935627638542
+ 0.23743580207915824
+ 0.2374422480575176
+ 0.23744869421146989
+ 0.23745514054102254
+ 0.23746158704618139
+ 0.23746803372695388
+ 0.23747448058334628
+ 0.23748092761536613
+ 0.23748737482302038
+ 0.23749382220631474
+ 0.23750026976525679
+ 0.23750671749985269
+ 0.23751316541010997
+ 0.23751961349603512
+ 0.23752606175763491
+ 0.23753251019491631
+ 0.23753895880788564
+ 0.23754540759655038
+ 0.23755185656091685
+ 0.23755830570099265
+ 0.2375647550167834
+ 0.23757120450829666
+ 0.23757765417553872
+ 0.23758410401851657
+ 0.23759055403723772
+ 0.23759700423170788
+ 0.23760345460193444
+ 0.23760990514792449
+ 0.23761635586968433
+ 0.23762280676722086
+ 0.23762925784054034
+ 0.2376357090896509
+ 0.23764216051455844
+ 0.23764861211527022
+ 0.23765506389179278
+ 0.23766151584413228
+ 0.23766796797229642
+ 0.23767442027629196
+ 0.23768087275612532
+ 0.23768732541180401
+ 0.23769377824333374
+ 0.23770023125072207
+ 0.23770668443397583
+ 0.23771313779310208
+ 0.23771959132810647
+ 0.23772604503899708
+ 0.23773249892577974
+ 0.23773895298846198
+ 0.23774540722705004
+ 0.23775186164155154
+ 0.23775831623197216
+ 0.23776477099832
+ 0.23777122594060085
+ 0.23777768105882222
+ 0.23778413635299039
+ 0.23779059182311177
+ 0.2377970474691945
+ 0.23780350329124483
+ 0.23780995928926912
+ 0.237816415463275
+ 0.23782287181326803
+ 0.23782932833925594
+ 0.23783578504124606
+ 0.23784224191924369
+ 0.23784869897325742
+ 0.23785515620329253
+ 0.23786161360935645
+ 0.23786807119145617
+ 0.23787452894959799
+ 0.23788098688379006
+ 0.23788744499403694
+ 0.23789390328034798
+ 0.23790036174272822
+ 0.23790682038118466
+ 0.23791327919572489
+ 0.23791973818635517
+ 0.23792619735308307
+ 0.23793265669591432
+ 0.2379391162148565
+ 0.23794557590991594
+ 0.2379520357810995
+ 0.23795849582841475
+ 0.23796495605186749
+ 0.23797141645146522
+ 0.23797787702721487
+ 0.23798433777912281
+ 0.237990798707196
+ 0.23799725981144079
+ 0.23800372109186521
+ 0.23801018254847514
+ 0.23801664418127802
+ 0.23802310599028023
+ 0.23802956797548813
+ 0.2380360301369093
+ 0.23804249247455062
+ 0.23804895498841902
+ 0.23805541767852029
+ 0.23806188054486258
+ 0.2380683435874516
+ 0.238074806806295
+ 0.23808127020139902
+ 0.23808773377277115
+ 0.23809419752041733
+ 0.23810066144434494
+ 0.23810712554456101
+ 0.2381135898210725
+ 0.23812005427388563
+ 0.23812651890300693
+ 0.23813298370844441
+ 0.23813944869020398
+ 0.23814591384829301
+ 0.23815237918271787
+ 0.23815884469348625
+ 0.23816531038060382
+ 0.23817177624407809
+ 0.23817824228391551
+ 0.23818470850012347
+ 0.23819117489270852
+ 0.23819764146167693
+ 0.2382041082070368
+ 0.23821057512879393
+ 0.23821704222695592
+ 0.23822350950152846
+ 0.23822997695251968
+ 0.23823644457993598
+ 0.23824291238378381
+ 0.23824938036406995
+ 0.23825584852080203
+ 0.23826231685398647
+ 0.2382687853636295
+ 0.23827525404973882
+ 0.23828172291232128
+ 0.23828819195138326
+ 0.23829466116693174
+ 0.23830113055897367
+ 0.23830760012751603
+ 0.23831406987256509
+ 0.23832053979412796
+ 0.23832700989221153
+ 0.23833348016682332
+ 0.23833995061796914
+ 0.23834642124565592
+ 0.23835289204989116
+ 0.23835936303068139
+ 0.238365834188034
+ 0.2383723055219549
+ 0.238378777032451
+ 0.23838524871952976
+ 0.23839172058319771
+ 0.23839819262346171
+ 0.23840466484032868
+ 0.23841113723380516
+ 0.23841760980389856
+ 0.23842408255061531
+ 0.23843055547396236
+ 0.23843702857394661
+ 0.23844350185057459
+ 0.23844997530385434
+ 0.238456448933791
+ 0.23846292274039288
+ 0.23846939672366563
+ 0.2384758708836168
+ 0.23848234522025283
+ 0.23848881973358135
+ 0.23849529442360853
+ 0.23850176929034153
+ 0.23850824433378662
+ 0.23851471955395137
+ 0.23852119495084281
+ 0.23852767052446672
+ 0.23853414627483119
+ 0.23854062220194203
+ 0.23854709830580678
+ 0.2385535745864325
+ 0.23856005104382488
+ 0.23856652767799211
+ 0.23857300448894
+ 0.23857948147667607
+ 0.23858595864120735
+ 0.2385924359825396
+ 0.23859891350068094
+ 0.23860539119563787
+ 0.2386118690674166
+ 0.23861834711602481
+ 0.23862482534146881
+ 0.23863130374375574
+ 0.23863778232289234
+ 0.23864426107888578
+ 0.23865074001174291
+ 0.23865721912146962
+ 0.23866369840807397
+ 0.23867017787156244
+ 0.23867665751194134
+ 0.23868313732921889
+ 0.2386896173234003
+ 0.23869609749449364
+ 0.23870257784250479
+ 0.23870905836744191
+ 0.23871553906931076
+ 0.23872201994811829
+ 0.23872850100387222
+ 0.23873498223657871
+ 0.23874146364624432
+ 0.23874794523287665
+ 0.2387544269964825
+ 0.23876090893706844
+ 0.23876739105464134
+ 0.23877387334920891
+ 0.23878035582077611
+ 0.23878683846935139
+ 0.23879332129494149
+ 0.2387998042975524
+ 0.23880628747719226
+ 0.23881277083386676
+ 0.23881925436758356
+ 0.23882573807834903
+ 0.23883222196617074
+ 0.2388387060310545
+ 0.23884519027300788
+ 0.23885167469203794
+ 0.23885815928815093
+ 0.23886464406135402
+ 0.23887112901165469
+ 0.2388776141390587
+ 0.23888409944357369
+ 0.23889058492520659
+ 0.23889707058396334
+ 0.23890355641985198
+ 0.23891004243287836
+ 0.23891652862305066
+ 0.23892301499037411
+ 0.23892950153485748
+ 0.23893598825650592
+ 0.2389424751553271
+ 0.23894896223132794
+ 0.23895544948451486
+ 0.23896193691489545
+ 0.23896842452247619
+ 0.23897491230726395
+ 0.23898140026926518
+ 0.23898788840848803
+ 0.23899437672493781
+ 0.2390008652186226
+ 0.23900735388954891
+ 0.23901384273772358
+ 0.23902033176315318
+ 0.23902682096584518
+ 0.23903331034580602
+ 0.23903979990304275
+ 0.2390462896375628
+ 0.23905277954937165
+ 0.23905926963847784
+ 0.23906575990488674
+ 0.23907225034860641
+ 0.23907874096964274
+ 0.23908523176800392
+ 0.23909172274369572
+ 0.2390982138967252
+ 0.23910470522709934
+ 0.23911119673482575
+ 0.23911768841991016
+ 0.23912418028236024
+ 0.23913067232218238
+ 0.23913716453938363
+ 0.23914365693397091
+ 0.23915014950595181
+ 0.23915664225533168
+ 0.23916313518211918
+ 0.2391696282863196
+ 0.23917612156794105
+ 0.23918261502699006
+ 0.23918910866347298
+ 0.23919560247739743
+ 0.23920209646876978
+ 0.23920859063759703
+ 0.23921508498388622
+ 0.23922157950764436
+ 0.2392280742088779
+ 0.23923456908759438
+ 0.23924106414380028
+ 0.23924755937750253
+ 0.23925405478870815
+ 0.23926055037742358
+ 0.23926704614365646
+ 0.23927354208741314
+ 0.23928003820870064
+ 0.23928653450752602
+ 0.2392930309838957
+ 0.23929952763781723
+ 0.23930602446929702
+ 0.23931252147834212
+ 0.23931901866495958
+ 0.2393255160291563
+ 0.23933201357093939
+ 0.23933851129031528
+ 0.23934500918729029
+ 0.23935150726187276
+ 0.23935800551406899
+ 0.23936450394388545
+ 0.23937100255132912
+ 0.23937750133640767
+ 0.23938400029912693
+ 0.23939049943949509
+ 0.23939699875751794
+ 0.23940349825320306
+ 0.23940999792655634
+ 0.23941649777758603
+ 0.23942299780629786
+ 0.23942949801270016
+ 0.23943599839679863
+ 0.23944249895860037
+ 0.23944899969811234
+ 0.2394555006153416
+ 0.23946200171029519
+ 0.23946850298297953
+ 0.23947500443340214
+ 0.23948150606156962
+ 0.23948800786748828
+ 0.23949450985116635
+ 0.23950101201260965
+ 0.23950751435182577
+ 0.23951401686882068
+ 0.23952051956360243
+ 0.23952702243617757
+ 0.23953352548655246
+ 0.23954002871473473
+ 0.23954653212073088
+ 0.23955303570454778
+ 0.23955953946619202
+ 0.23956604340567181
+ 0.23957254752299284
+ 0.23957905181816225
+ 0.23958555629118758
+ 0.23959206094207483
+ 0.2395985657708315
+ 0.2396050707774646
+ 0.23961157596198057
+ 0.23961808132438658
+ 0.23962458686469004
+ 0.23963109258289692
+ 0.23963759847901425
+ 0.2396441045530496
+ 0.23965061080501004
+ 0.23965711723490141
+ 0.23966362384273138
+ 0.23967013062850687
+ 0.23967663759223495
+ 0.23968314473392152
+ 0.23968965205357479
+ 0.23969615955120055
+ 0.23970266722680703
+ 0.23970917508040013
+ 0.23971568311198685
+ 0.23972219132157424
+ 0.23972869970916927
+ 0.23973520827477909
+ 0.23974171701841065
+ 0.23974822594007039
+ 0.23975473503976599
+ 0.23976124431750329
+ 0.23976775377328988
+ 0.23977426340713284
+ 0.2397807732190386
+ 0.23978728320901413
+ 0.23979379337706719
+ 0.23980030372320357
+ 0.23980681424743083
+ 0.23981332494975616
+ 0.2398198358301859
+ 0.23982634688872712
+ 0.23983285812538679
+ 0.23983936954017207
+ 0.23984588113308938
+ 0.23985239290414631
+ 0.23985890485334929
+ 0.2398654169807054
+ 0.23987192928622111
+ 0.23987844176990469
+ 0.23988495443176183
+ 0.23989146727179916
+ 0.23989798029002535
+ 0.2399044934864458
+ 0.23991100686106753
+ 0.23991752041389808
+ 0.23992403414494456
+ 0.23993054805421285
+ 0.23993706214171112
+ 0.23994357640744537
+ 0.23995009085142305
+ 0.23995660547365075
+ 0.23996312027413538
+ 0.23996963525288478
+ 0.23997615040990469
+ 0.23998266574520213
+ 0.23998918125878482
+ 0.23999569695065975
+ 0.24000221282083284
+ 0.24000872886931168
+ 0.24001524509610336
+ 0.2400217615012149
+ 0.24002827808465221
+ 0.24003479484642343
+ 0.24004131178653512
+ 0.24004782890499368
+ 0.24005434620180674
+ 0.24006086367698146
+ 0.24006738133052363
+ 0.24007389916244087
+ 0.24008041717274084
+ 0.24008693536142947
+ 0.24009345372851376
+ 0.24009997227400079
+ 0.24010649099789821
+ 0.24011300990021184
+ 0.24011952898094932
+ 0.24012604824011721
+ 0.24013256767772309
+ 0.24013908729377345
+ 0.24014560708827534
+ 0.24015212706123584
+ 0.24015864721266131
+ 0.24016516754255895
+ 0.24017168805093572
+ 0.2401782087377993
+ 0.24018472960315562
+ 0.24019125064701224
+ 0.24019777186937571
+ 0.24020429327025358
+ 0.24021081484965184
+ 0.2402173366075781
+ 0.24022385854404002
+ 0.24023038065904284
+ 0.24023690295259478
+ 0.24024342542470248
+ 0.24024994807537281
+ 0.24025647090461233
+ 0.24026299391242875
+ 0.24026951709882841
+ 0.24027604046381904
+ 0.24028256400740716
+ 0.24028908772959914
+ 0.24029561163040217
+ 0.24030213570982431
+ 0.24030865996787104
+ 0.24031518440455055
+ 0.24032170901986866
+ 0.24032823381383309
+ 0.24033475878645094
+ 0.240341283937728
+ 0.24034780926767257
+ 0.24035433477629117
+ 0.24036086046359076
+ 0.24036738632957791
+ 0.24037391237425967
+ 0.24038043859764371
+ 0.24038696499973589
+ 0.24039349158054385
+ 0.24040001834007529
+ 0.24040654527833555
+ 0.24041307239533219
+ 0.24041959969107299
+ 0.24042612716556369
+ 0.24043265481881212
+ 0.2404391826508252
+ 0.24044571066160894
+ 0.24045223885117153
+ 0.24045876721951956
+ 0.2404652957666599
+ 0.24047182449259921
+ 0.2404783533973445
+ 0.24048488248090347
+ 0.24049141174328253
+ 0.24049794118448822
+ 0.24050447080452819
+ 0.24051100060340888
+ 0.24051753058113812
+ 0.24052406073772162
+ 0.24053059107316779
+ 0.24053712158748239
+ 0.24054365228067323
+ 0.24055018315274665
+ 0.2405567142037098
+ 0.24056324543356986
+ 0.24056977684233366
+ 0.24057630843000796
+ 0.2405828401966002
+ 0.24058937214211704
+ 0.24059590426656499
+ 0.24060243656995214
+ 0.24060896905228452
+ 0.24061550171356977
+ 0.24062203455381434
+ 0.24062856757302539
+ 0.24063510077120995
+ 0.2406416341483745
+ 0.24064816770452677
+ 0.24065470143967388
+ 0.24066123535382161
+ 0.24066776944697826
+ 0.2406743037191498
+ 0.2406808381703433
+ 0.24068737280056643
+ 0.24069390760982623
+ 0.24070044259812859
+ 0.24070697776548131
+ 0.24071351311189138
+ 0.24072004863736532
+ 0.2407265843419108
+ 0.24073312022553378
+ 0.24073965628824248
+ 0.24074619253004273
+ 0.24075272895094241
+ 0.24075926555094782
+ 0.24076580233006617
+ 0.24077233928830449
+ 0.24077887642566997
+ 0.240785413742169
+ 0.24079195123780933
+ 0.24079848891259742
+ 0.24080502676654031
+ 0.24081156479964527
+ 0.24081810301191917
+ 0.24082464140336868
+ 0.24083117997400089
+ 0.24083771872382334
+ 0.24084425765284215
+ 0.2408507967610648
+ 0.24085733604849852
+ 0.24086387551514973
+ 0.24087041516102564
+ 0.24087695498613323
+ 0.24088349499047965
+ 0.24089003517407204
+ 0.24089657553691682
+ 0.24090311607902115
+ 0.24090965680039206
+ 0.24091619770103673
+ 0.24092273878096218
+ 0.24092928004017505
+ 0.24093582147868287
+ 0.2409423630964922
+ 0.24094890489360968
+ 0.24095544687004336
+ 0.24096198902579932
+ 0.2409685313608847
+ 0.24097507387530709
+ 0.24098161656907299
+ 0.24098815944218893
+ 0.24099470249466268
+ 0.24100124572650067
+ 0.24100778913771065
+ 0.24101433272829909
+ 0.24102087649827314
+ 0.2410274204476392
+ 0.24103396457640575
+ 0.24104050888457793
+ 0.24104705337216353
+ 0.24105359803917029
+ 0.24106014288560404
+ 0.24106668791147251
+ 0.24107323311678228
+ 0.24107977850154094
+ 0.24108632406575514
+ 0.24109286980943126
+ 0.24109941573257701
+ 0.241105961835199
+ 0.24111250811730553
+ 0.24111905457890129
+ 0.24112560121999507
+ 0.2411321480405936
+ 0.24113869504070379
+ 0.24114524222033171
+ 0.24115178957948563
+ 0.24115833711817203
+ 0.241164884836398
+ 0.2411714327341701
+ 0.24117798081149602
+ 0.24118452906838234
+ 0.24119107750483607
+ 0.2411976261208644
+ 0.24120417491647447
+ 0.24121072389167275
+ 0.24121727304646687
+ 0.24122382238086351
+ 0.24123037189486976
+ 0.24123692158849203
+ 0.24124347146173811
+ 0.24125002151461511
+ 0.24125657174712958
+ 0.24126312215928855
+ 0.24126967275109926
+ 0.24127622352256811
+ 0.24128277447370297
+ 0.24128932560451016
+ 0.24129587691499696
+ 0.24130242840517108
+ 0.2413089800750384
+ 0.24131553192460597
+ 0.24132208395388227
+ 0.24132863616287251
+ 0.24133518855158445
+ 0.24134174112002518
+ 0.24134829386820189
+ 0.2413548467961211
+ 0.24136139990379046
+ 0.24136795319121654
+ 0.24137450665840582
+ 0.24138106030536619
+ 0.24138761413210452
+ 0.24139416813862752
+ 0.24140072232494292
+ 0.24140727669105655
+ 0.24141383123697616
+ 0.24142038596270893
+ 0.24142694086826136
+ 0.24143349595364058
+ 0.24144005121885434
+ 0.24144660666390846
+ 0.24145316228881142
+ 0.24145971809356909
+ 0.24146627407818802
+ 0.24147283024267704
+ 0.24147938658704163
+ 0.2414859431112894
+ 0.24149249981542692
+ 0.24149905669946201
+ 0.24150561376340104
+ 0.24151217100725192
+ 0.24151872843102046
+ 0.24152528603471377
+ 0.24153184381834028
+ 0.24153840178190536
+ 0.24154495992541716
+ 0.24155151824888232
+ 0.24155807675230742
+ 0.24156463543570017
+ 0.24157119429906712
+ 0.24157775334241596
+ 0.24158431256575261
+ 0.24159087196908544
+ 0.24159743155242039
+ 0.24160399131576521
+ 0.24161055125912584
+ 0.24161711138251063
+ 0.24162367168592602
+ 0.24163023216937932
+ 0.2416367928328769
+ 0.24164335367642656
+ 0.24164991470003488
+ 0.24165647590370898
+ 0.24166303728745545
+ 0.24166959885128192
+ 0.24167616059519559
+ 0.24168272251920297
+ 0.24168928462331132
+ 0.24169584690752763
+ 0.24170240937185911
+ 0.24170897201631236
+ 0.24171553484089442
+ 0.24172209784561305
+ 0.24172866103047491
+ 0.24173522439548706
+ 0.24174178794065596
+ 0.24174835166598888
+ 0.24175491557149356
+ 0.24176147965717648
+ 0.24176804392304485
+ 0.2417746083691058
+ 0.24178117299536528
+ 0.24178773780183221
+ 0.24179430278851191
+ 0.24180086795541281
+ 0.24180743330254084
+ 0.24181399882990373
+ 0.24182056453750858
+ 0.24182713042536141
+ 0.24183369649347058
+ 0.241840262741842
+ 0.24184682917048408
+ 0.2418533957794021
+ 0.2418599625686044
+ 0.24186652953809756
+ 0.24187309668788881
+ 0.24187966401798516
+ 0.24188623152839395
+ 0.24189279921912149
+ 0.24189936709017518
+ 0.24190593514156197
+ 0.24191250337328915
+ 0.24191907178536384
+ 0.24192564037779318
+ 0.24193220915058317
+ 0.24193877810374206
+ 0.24194534723727587
+ 0.24195191655119305
+ 0.24195848604549941
+ 0.24196505572020216
+ 0.24197162557530907
+ 0.2419781956108267
+ 0.24198476582676165
+ 0.24199133622312219
+ 0.24199790679991368
+ 0.24200447755714519
+ 0.24201104849482202
+ 0.24201761961295185
+ 0.2420241909115414
+ 0.2420307623905989
+ 0.24203733405013031
+ 0.24204390589014288
+ 0.24205047791064374
+ 0.24205705011164003
+ 0.24206362249313892
+ 0.24207019505514701
+ 0.2420767677976714
+ 0.24208334072071991
+ 0.24208991382429845
+ 0.24209648710841483
+ 0.24210306057307626
+ 0.24210963421828918
+ 0.24211620804406142
+ 0.242122782050399
+ 0.24212935623731022
+ 0.24213593060480049
+ 0.24214250515287866
+ 0.24214907988155085
+ 0.24215565479082352
+ 0.24216222988070518
+ 0.24216880515120226
+ 0.24217538060232133
+ 0.24218195623406966
+ 0.24218853204645494
+ 0.24219510803948377
+ 0.24220168421316332
+ 0.24220826056750017
+ 0.24221483710250202
+ 0.24222141381817547
+ 0.2422279907145278
+ 0.24223456779156605
+ 0.24224114504929753
+ 0.24224772248772869
+ 0.24225430010686727
+ 0.24226087790672002
+ 0.24226745588729395
+ 0.24227403404859629
+ 0.24228061239063423
+ 0.24228719091341372
+ 0.24229376961694374
+ 0.24230034850123039
+ 0.24230692756628003
+ 0.24231350681210057
+ 0.24232008623869913
+ 0.24232666584608228
+ 0.24233324563425734
+ 0.24233982560323192
+ 0.24234640575301206
+ 0.2423529860836055
+ 0.2423595665950195
+ 0.24236614728726058
+ 0.24237272816033534
+ 0.24237930921425221
+ 0.24238589044901768
+ 0.24239247186463839
+ 0.24239905346112203
+ 0.2424056352384753
+ 0.24241221719670475
+ 0.24241879933581872
+ 0.24242538165582381
+ 0.24243196415672605
+ 0.24243854683853439
+ 0.24244512970125418
+ 0.24245171274489319
+ 0.24245829596945873
+ 0.24246487937495789
+ 0.24247146296139727
+ 0.24247804672878459
+ 0.24248463067712592
+ 0.24249121480642907
+ 0.24249779911670119
+ 0.24250438360794888
+ 0.24251096828017984
+ 0.24251755313340076
+ 0.24252413816761886
+ 0.24253072338284054
+ 0.24253730877907445
+ 0.24254389435632631
+ 0.24255048011460353
+ 0.2425570660539132
+ 0.24256365217426254
+ 0.24257023847565806
+ 0.24257682495810765
+ 0.24258341162161848
+ 0.24258999846619653
+ 0.24259658549185018
+ 0.24260317269858542
+ 0.24260976008641008
+ 0.24261634765533133
+ 0.24262293540535515
+ 0.24262952333648996
+ 0.24263611144874234
+ 0.24264269974211886
+ 0.24264928821662735
+ 0.24265587687227441
+ 0.24266246570906783
+ 0.24266905472701367
+ 0.24267564392612012
+ 0.24268223330639338
+ 0.24268882286784063
+ 0.24269541261046956
+ 0.24270200253428623
+ 0.242708592639299
+ 0.24271518292551392
+ 0.24272177339293885
+ 0.24272836404158085
+ 0.242734954871446
+ 0.24274154588254263
+ 0.24274813707487686
+ 0.24275472844845639
+ 0.24276132000328846
+ 0.24276791173937967
+ 0.24277450365673728
+ 0.24278109575536774
+ 0.24278768803527956
+ 0.24279428049647872
+ 0.24280087313897308
+ 0.24280746596276917
+ 0.24281405896787425
+ 0.2428206521542948
+ 0.24282724552203941
+ 0.242833839071114
+ 0.2428404328015257
+ 0.24284702671328184
+ 0.24285362080639011
+ 0.24286021508085665
+ 0.2428668095366886
+ 0.24287340417389433
+ 0.24287999899247922
+ 0.24288659399245119
+ 0.242893189173818
+ 0.24289978453658573
+ 0.2429063800807614
+ 0.24291297580635302
+ 0.24291957171336703
+ 0.24292616780181081
+ 0.24293276407169145
+ 0.24293936052301554
+ 0.24294595715579162
+ 0.24295255397002499
+ 0.2429591509657236
+ 0.24296574814289448
+ 0.24297234550154495
+ 0.24297894304168216
+ 0.24298554076331219
+ 0.24299213866644342
+ 0.24299873675108313
+ 0.24300533501723659
+ 0.24301193346491301
+ 0.24301853209411822
+ 0.24302513090485955
+ 0.24303172989714475
+ 0.24303832907097986
+ 0.24304492842637276
+ 0.24305152796333054
+ 0.24305812768185997
+ 0.24306472758196815
+ 0.24307132766366288
+ 0.24307792792695027
+ 0.24308452837183817
+ 0.24309112899833366
+ 0.24309772980644342
+ 0.24310433079617469
+ 0.24311093196753414
+ 0.24311753332053007
+ 0.24312413485516862
+ 0.24313073657145748
+ 0.24313733846940341
+ 0.24314394054901417
+ 0.24315054281029574
+ 0.24315714525325541
+ 0.24316374787790163
+ 0.24317035068423967
+ 0.24317695367227812
+ 0.24318355684202356
+ 0.24319016019348319
+ 0.24319676372666366
+ 0.24320336744157273
+ 0.24320997133821706
+ 0.24321657541660455
+ 0.24322317967674106
+ 0.24322978411863463
+ 0.24323638874229231
+ 0.2432429935477203
+ 0.24324959853492742
+ 0.24325620370391926
+ 0.24326280905470363
+ 0.24326941458728765
+ 0.24327602030167805
+ 0.24328262619788263
+ 0.24328923227590801
+ 0.24329583853576145
+ 0.24330244497744954
+ 0.24330905160098021
+ 0.24331565840636055
+ 0.24332226539359725
+ 0.24332887256269758
+ 0.2433354799136688
+ 0.24334208744651806
+ 0.24334869516125199
+ 0.24335530305787845
+ 0.24336191113640407
+ 0.24336851939683554
+ 0.24337512783918186
+ 0.24338173646344782
+ 0.24338834526964187
+ 0.24339495425777075
+ 0.2434015634278415
+ 0.24340817277986218
+ 0.24341478231383865
+ 0.24342139202977825
+ 0.24342800192768874
+ 0.24343461200757741
+ 0.24344122226945031
+ 0.24344783271331591
+ 0.24345444333918009
+ 0.24346105414705027
+ 0.24346766513693421
+ 0.24347427630883858
+ 0.24348088766277115
+ 0.24348749919873741
+ 0.2434941109167465
+ 0.24350072281680429
+ 0.24350733489891865
+ 0.24351394716309571
+ 0.24352055960934393
+ 0.24352717223766923
+ 0.24353378504807957
+ 0.2435403980405815
+ 0.2435470112151823
+ 0.24355362457188989
+ 0.24356023811071079
+ 0.24356685183165169
+ 0.24357346573471994
+ 0.24358007981992322
+ 0.24358669408726885
+ 0.24359330853676292
+ 0.2435999231684132
+ 0.24360653798222642
+ 0.24361315297821098
+ 0.24361976815637232
+ 0.24362638351671884
+ 0.24363299905925676
+ 0.24363961478399374
+ 0.2436462306909371
+ 0.24365284678009355
+ 0.2436594630514709
+ 0.2436660795050751
+ 0.24367269614091419
+ 0.24367931295899586
+ 0.2436859299593257
+ 0.24369254714191202
+ 0.24369916450676155
+ 0.2437057820538816
+ 0.2437123997832793
+ 0.24371901769496199
+ 0.24372563578893633
+ 0.24373225406520949
+ 0.24373887252378937
+ 0.243745491164682
+ 0.24375210998789537
+ 0.24375872899343656
+ 0.24376534818131232
+ 0.24377196755152988
+ 0.24377858710409711
+ 0.24378520683902008
+ 0.24379182675630662
+ 0.24379844685596339
+ 0.24380506713799829
+ 0.24381168760241792
+ 0.24381830824922957
+ 0.2438249290784405
+ 0.24383155009005794
+ 0.24383817128408861
+ 0.24384479266053971
+ 0.24385141421941917
+ 0.24385803596073297
+ 0.24386465788448908
+ 0.24387127999069466
+ 0.24387790227935632
+ 0.2438845247504815
+ 0.24389114740407739
+ 0.2438977702401518
+ 0.24390439325871019
+ 0.24391101645976174
+ 0.24391763984331241
+ 0.24392426340936951
+ 0.24393088715794028
+ 0.24393751108903197
+ 0.24394413520265201
+ 0.24395075949880679
+ 0.2439573839775038
+ 0.24396400863875073
+ 0.24397063348255385
+ 0.24397725850892082
+ 0.24398388371785909
+ 0.2439905091093752
+ 0.24399713468347711
+ 0.24400376044017086
+ 0.24401038637946482
+ 0.24401701250136523
+ 0.24402363880587985
+ 0.24403026529301541
+ 0.24403689196277972
+ 0.24404351881517888
+ 0.24405014585022083
+ 0.24405677306791274
+ 0.2440634004682613
+ 0.24407002805127437
+ 0.24407665581695873
+ 0.2440832837653216
+ 0.24408991189637017
+ 0.24409654021011118
+ 0.2441031687065526
+ 0.24410979738570091
+ 0.24411642624756358
+ 0.2441230552921477
+ 0.24412968451946071
+ 0.24413631392950919
+ 0.24414294352230106
+ 0.24414957329784295
+ 0.24415620325614221
+ 0.2441628333972061
+ 0.24416946372104129
+ 0.24417609422765613
+ 0.24418272491705631
+ 0.24418935578925025
+ 0.24419598684424451
+ 0.24420261808204594
+ 0.24420924950266223
+ 0.2442158811061009
+ 0.24422251289236843
+ 0.24422914486147218
+ 0.24423577701341939
+ 0.24424240934821748
+ 0.24424904186587351
+ 0.24425567456639438
+ 0.24426230744978725
+ 0.24426894051605946
+ 0.24427557376521827
+ 0.24428220719727092
+ 0.24428884081222421
+ 0.24429547461008583
+ 0.24430210859086274
+ 0.2443087427545626
+ 0.24431537710119158
+ 0.24432201163075695
+ 0.24432864634326662
+ 0.24433528123872791
+ 0.24434191631714677
+ 0.24434855157853189
+ 0.24435518702288986
+ 0.24436182265022727
+ 0.24436845846055158
+ 0.24437509445387054
+ 0.24438173063019089
+ 0.24438836698952002
+ 0.24439500353186513
+ 0.24440164025723346
+ 0.24440827716563179
+ 0.24441491425706735
+ 0.24442155153154752
+ 0.2444281889890795
+ 0.24443482662967064
+ 0.24444146445332762
+ 0.2444481024600583
+ 0.24445474064986941
+ 0.24446137902276824
+ 0.2444680175787621
+ 0.2444746563178577
+ 0.24448129524006285
+ 0.24448793434538488
+ 0.24449457363383056
+ 0.2445012131054066
+ 0.24450785276012071
+ 0.244514492597981
+ 0.2445211326189928
+ 0.24452777282316476
+ 0.24453441321050348
+ 0.24454105378101626
+ 0.24454769453471045
+ 0.24455433547159275
+ 0.24456097659167161
+ 0.24456761789495257
+ 0.24457425938144353
+ 0.24458090105115177
+ 0.24458754290408455
+ 0.2445941849402487
+ 0.24460082715965198
+ 0.2446074695623012
+ 0.24461411214820367
+ 0.24462075491736712
+ 0.24462739786979731
+ 0.24463404100550254
+ 0.24464068432449021
+ 0.24464732782676704
+ 0.24465397151234025
+ 0.24466061538121728
+ 0.24466725943340464
+ 0.24467390366891043
+ 0.24468054808774123
+ 0.24468719268990502
+ 0.24469383747540788
+ 0.24470048244425777
+ 0.24470712759646188
+ 0.24471377293202698
+ 0.24472041845096104
+ 0.24472706415327011
+ 0.24473371003896263
+ 0.24474035610804551
+ 0.2447470023605253
+ 0.2447536487964099
+ 0.24476029541570551
+ 0.24476694221842055
+ 0.24477358920456185
+ 0.24478023637413601
+ 0.24478688372715102
+ 0.24479353126361411
+ 0.24480017898353212
+ 0.24480682688691166
+ 0.2448134749737613
+ 0.24482012324408714
+ 0.24482677169789702
+ 0.24483342033519778
+ 0.24484006915599724
+ 0.24484671816030154
+ 0.24485336734811861
+ 0.24486001671945645
+ 0.24486666627432047
+ 0.24487331601271914
+ 0.2448799659346593
+ 0.24488661604014819
+ 0.24489326632919317
+ 0.24489991680180095
+ 0.24490656745797948
+ 0.24491321829773541
+ 0.24491986932107662
+ 0.24492652052800939
+ 0.24493317191854164
+ 0.24493982349268051
+ 0.24494647525043278
+ 0.24495312719180592
+ 0.24495977931680762
+ 0.24496643162544426
+ 0.24497308411772417
+ 0.24497973679365351
+ 0.24498638965323966
+ 0.24499304269648992
+ 0.2449996959234122
+ 0.24500634933401266
+ 0.24501300292829978
+ 0.24501965670627904
+ 0.24502631066795913
+ 0.24503296481334721
+ 0.24503961914244951
+ 0.24504627365527451
+ 0.24505292835182832
+ 0.24505958323211838
+ 0.24506623829615246
+ 0.24507289354393738
+ 0.24507954897548048
+ 0.24508620459078906
+ 0.24509286038987044
+ 0.24509951637273134
+ 0.24510617253937911
+ 0.24511282888982169
+ 0.24511948542406589
+ 0.24512614214211828
+ 0.24513279904398685
+ 0.24513945612967905
+ 0.24514611339920142
+ 0.24515277085256143
+ 0.24515942848976638
+ 0.24516608631082357
+ 0.24517274431573979
+ 0.24517940250452289
+ 0.24518606087718031
+ 0.24519271943371809
+ 0.24519937817414425
+ 0.24520603709846611
+ 0.24521269620669095
+ 0.24521935549882554
+ 0.24522601497487723
+ 0.24523267463485393
+ 0.24523933447876184
+ 0.24524599450660881
+ 0.24525265471840219
+ 0.24525931511414881
+ 0.24526597569385655
+ 0.24527263645753147
+ 0.2452792974051817
+ 0.24528595853681442
+ 0.245292619852437
+ 0.24529928135205617
+ 0.24530594303568001
+ 0.24531260490331447
+ 0.24531926695496759
+ 0.24532592919064672
+ 0.24533259161035859
+ 0.24533925421411118
+ 0.24534591700191111
+ 0.24535257997376581
+ 0.24535924312968271
+ 0.24536590646966894
+ 0.2453725699937315
+ 0.2453792337018775
+ 0.24538589759411508
+ 0.24539256167045084
+ 0.24539922593089158
+ 0.24540589037544588
+ 0.24541255500411924
+ 0.24541921981692028
+ 0.2454258848138563
+ 0.24543254999493333
+ 0.24543921536015956
+ 0.24544588090954217
+ 0.24545254664308799
+ 0.2454592125608043
+ 0.24546587866269909
+ 0.2454725449487791
+ 0.2454792114190511
+ 0.24548587807352359
+ 0.24549254491220221
+ 0.24549921193509541
+ 0.24550587914221009
+ 0.24551254653355339
+ 0.24551921410913291
+ 0.24552588186895521
+ 0.24553254981302827
+ 0.24553921794135897
+ 0.24554588625395454
+ 0.24555255475082235
+ 0.24555922343197045
+ 0.2455658922974043
+ 0.24557256134713248
+ 0.24557923058116232
+ 0.24558589999950006
+ 0.24559256960215423
+ 0.24559923938913086
+ 0.24560590936043805
+ 0.24561257951608256
+ 0.2456192498560717
+ 0.24562592038041348
+ 0.24563259108911392
+ 0.24563926198218114
+ 0.24564593305962243
+ 0.24565260432144459
+ 0.24565927576765556
+ 0.24566594739826206
+ 0.24567261921327085
+ 0.24567929121268997
+ 0.24568596339652676
+ 0.24569263576478792
+ 0.24569930831748152
+ 0.24570598105461361
+ 0.24571265397619282
+ 0.24571932708222533
+ 0.24572600037271908
+ 0.2457326738476808
+ 0.2457393475071179
+ 0.24574602135103835
+ 0.24575269537944827
+ 0.24575936959235567
+ 0.24576604398976726
+ 0.24577271857169175
+ 0.24577939333813451
+ 0.24578606828910368
+ 0.24579274342460652
+ 0.24579941874465047
+ 0.2458060942492428
+ 0.24581276993838977
+ 0.24581944581209997
+ 0.24582612187038011
+ 0.24583279811323816
+ 0.24583947454067973
+ 0.2458461511527133
+ 0.24585282794934643
+ 0.24585950493058567
+ 0.24586618209643857
+ 0.24587285944691178
+ 0.24587953698201395
+ 0.2458862147017512
+ 0.24589289260613101
+ 0.24589957069516116
+ 0.24590624896884863
+ 0.24591292742720008
+ 0.24591960607022351
+ 0.24592628489792634
+ 0.24593296391031524
+ 0.24593964310739772
+ 0.24594632248918105
+ 0.24595300205567328
+ 0.24595968180688052
+ 0.24596636174281014
+ 0.24597304186347027
+ 0.24597972216886746
+ 0.24598640265900928
+ 0.24599308333390243
+ 0.2459997641935556
+ 0.24600644523797474
+ 0.24601312646716736
+ 0.24601980788114153
+ 0.24602648947990391
+ 0.2460331712634613
+ 0.24603985323182179
+ 0.24604653538499255
+ 0.24605321772298058
+ 0.24605990024579308
+ 0.24606658295343817
+ 0.24607326584592207
+ 0.24607994892325261
+ 0.24608663218543658
+ 0.24609331563248216
+ 0.24609999926439596
+ 0.24610668308118541
+ 0.24611336708285789
+ 0.24612005126942021
+ 0.24612673564088028
+ 0.24613342019724568
+ 0.24614010493852242
+ 0.24614678986471913
+ 0.24615347497584203
+ 0.24616016027189969
+ 0.2461668457528976
+ 0.24617353141884452
+ 0.24618021726974781
+ 0.2461869033056136
+ 0.24619358952645051
+ 0.2462002759322641
+ 0.24620696252306354
+ 0.24621364929885459
+ 0.24622033625964559
+ 0.24622702340544353
+ 0.24623371073625575
+ 0.24624039825208954
+ 0.24624708595295186
+ 0.24625377383885061
+ 0.24626046190979259
+ 0.24626715016578457
+ 0.24627383860683524
+ 0.24628052723295069
+ 0.24628721604413906
+ 0.24629390504040694
+ 0.24630059422176248
+ 0.24630728358821249
+ 0.24631397313976364
+ 0.24632066287642401
+ 0.24632735279820042
+ 0.24633404290510078
+ 0.24634073319713262
+ 0.24634742367430204
+ 0.24635411433661769
+ 0.24636080518408504
+ 0.24636749621671353
+ 0.24637418743450917
+ 0.24638087883747942
+ 0.24638757042563164
+ 0.24639426219897337
+ 0.24640095415751187
+ 0.246407646301254
+ 0.2464143386302077
+ 0.24642103114437991
+ 0.24642772384377792
+ 0.24643441672840916
+ 0.24644110979828099
+ 0.24644780305340031
+ 0.2464544964937751
+ 0.24646119011941153
+ 0.24646788393031882
+ 0.24647457792650257
+ 0.24648127210797022
+ 0.24648796647472979
+ 0.2464946610267886
+ 0.2465013557641535
+ 0.2465080506868319
+ 0.24651474579483132
+ 0.24652144108815899
+ 0.24652813656682174
+ 0.2465348322308277
+ 0.24654152808018368
+ 0.24654822411489691
+ 0.24655492033497503
+ 0.24656161674042529
+ 0.24656831333125451
+ 0.24657501010747077
+ 0.24658170706908092
+ 0.24658840421609285
+ 0.24659510154851283
+ 0.24660179906634891
+ 0.2466084967696085
+ 0.24661519465829834
+ 0.24662189273242588
+ 0.24662859099199855
+ 0.2466352894370244
+ 0.24664198806750953
+ 0.24664868688346214
+ 0.24665538588488947
+ 0.24666208507179846
+ 0.24666878444419646
+ 0.24667548400209025
+ 0.24668218374548859
+ 0.24668888367439751
+ 0.2466955837888252
+ 0.24670228408877845
+ 0.24670898457426518
+ 0.24671568524529167
+ 0.24672238610186659
+ 0.24672908714399544
+ 0.24673578837168691
+ 0.2467424897849485
+ 0.24674919138378687
+ 0.24675589316820956
+ 0.24676259513822399
+ 0.24676929729383751
+ 0.24677599963505706
+ 0.24678270216188997
+ 0.24678940487434423
+ 0.24679610777242619
+ 0.2468028108561437
+ 0.246809514125505
+ 0.24681621758051553
+ 0.24682292122118468
+ 0.2468296250475179
+ 0.24683632905952332
+ 0.24684303325720902
+ 0.2468497376405811
+ 0.24685644220964706
+ 0.24686314696441558
+ 0.24686985190489216
+ 0.24687655703108491
+ 0.24688326234300123
+ 0.24688996784064851
+ 0.24689667352403433
+ 0.24690337939316542
+ 0.24691008544804921
+ 0.24691679168869371
+ 0.24692349811510522
+ 0.24693020472729169
+ 0.24693691152526062
+ 0.24694361850901878
+ 0.2469503256785737
+ 0.24695703303393327
+ 0.24696374057510448
+ 0.24697044830209405
+ 0.24697715621491007
+ 0.24698386431355995
+ 0.24699057259805057
+ 0.24699728106838931
+ 0.24700398972458365
+ 0.24701069856664037
+ 0.24701740759456819
+ 0.24702411680837327
+ 0.24703082620806313
+ 0.24703753579364571
+ 0.24704424556512727
+ 0.24705095552251655
+ 0.24705766566581899
+ 0.24706437599504408
+ 0.24707108651019788
+ 0.24707779721128784
+ 0.2470845080983215
+ 0.24709121917130686
+ 0.24709793043025011
+ 0.24710464187515876
+ 0.24711135350604077
+ 0.24711806532290309
+ 0.24712477732575308
+ 0.24713148951459821
+ 0.24713820188944594
+ 0.24714491445030309
+ 0.24715162719717768
+ 0.24715834013007665
+ 0.24716505324900725
+ 0.24717176655397718
+ 0.24717848004499374
+ 0.24718519372206438
+ 0.24719190758519538
+ 0.24719862163439602
+ 0.24720533586967183
+ 0.24721205029103099
+ 0.24721876489848144
+ 0.24722547969202952
+ 0.24723219467168256
+ 0.24723890983744876
+ 0.24724562518933421
+ 0.24725234072734772
+ 0.24725905645149601
+ 0.24726577236178601
+ 0.2472724884582258
+ 0.2472792047408221
+ 0.24728592120958309
+ 0.247292637864515
+ 0.24729935470562639
+ 0.24730607173292363
+ 0.24731278894641467
+ 0.24731950634610644
+ 0.24732622393200643
+ 0.24733294170412196
+ 0.24733965966246058
+ 0.2473463778070297
+ 0.24735309613783685
+ 0.24735981465488877
+ 0.24736653335819306
+ 0.24737325224775764
+ 0.24737997132358885
+ 0.24738669058569476
+ 0.2473934100340828
+ 0.24740012966876035
+ 0.24740684948973379
+ 0.24741356949701176
+ 0.24742028969060106
+ 0.24742701007050857
+ 0.24743373063674232
+ 0.2474404513893099
+ 0.247447172328218
+ 0.24745389345347482
+ 0.24746061476508657
+ 0.24746733626306122
+ 0.2474740579474064
+ 0.24748077981812949
+ 0.24748750187523677
+ 0.24749422411873684
+ 0.24750094654863666
+ 0.24750766916494354
+ 0.24751439196766514
+ 0.24752111495680887
+ 0.24752783813238094
+ 0.24753456149439002
+ 0.24754128504284359
+ 0.24754800877774796
+ 0.24755473269911055
+ 0.24756145680693997
+ 0.24756818110124262
+ 0.24757490558202652
+ 0.24758163024929791
+ 0.24758835510306484
+ 0.24759508014333537
+ 0.24760180537011586
+ 0.24760853078341372
+ 0.24761525638323706
+ 0.24762198216959272
+ 0.24762870814248816
+ 0.24763543430193086
+ 0.24764216064792827
+ 0.2476488871804873
+ 0.24765561389961546
+ 0.24766234080532071
+ 0.24766906789761003
+ 0.24767579517649083
+ 0.2476825226419706
+ 0.24768925029405628
+ 0.24769597813275579
+ 0.24770270615807616
+ 0.24770943437002482
+ 0.24771616276860917
+ 0.24772289135383679
+ 0.24772962012571456
+ 0.24773634908425041
+ 0.24774307822945202
+ 0.24774980756132547
+ 0.24775653707987957
+ 0.24776326678512062
+ 0.24776999667705663
+ 0.24777672675569506
+ 0.24778345702104285
+ 0.24779018747310738
+ 0.2477969181118963
+ 0.24780364893741691
+ 0.24781037994967683
+ 0.24781711114868357
+ 0.24782384253444384
+ 0.24783057410696518
+ 0.24783730586625513
+ 0.24784403781232184
+ 0.24785076994517136
+ 0.24785750226481143
+ 0.24786423477125055
+ 0.2478709674644945
+ 0.247877700344552
+ 0.24788443341142985
+ 0.24789116666513547
+ 0.24789790010567594
+ 0.24790463373305865
+ 0.24791136754729226
+ 0.24791810154838245
+ 0.24792483573633739
+ 0.24793157011116507
+ 0.24793830467287181
+ 0.24794503942146512
+ 0.24795177435695379
+ 0.24795850947934334
+ 0.24796524478864251
+ 0.24797198028485753
+ 0.24797871596799667
+ 0.24798545183806728
+ 0.24799218789507693
+ 0.2479989241390318
+ 0.24800566056994069
+ 0.24801239718781048
+ 0.2480191339926486
+ 0.24802587098446199
+ 0.24803260816325876
+ 0.24803934552904633
+ 0.24804608308183168
+ 0.24805282082162167
+ 0.24805955874842495
+ 0.2480662968622479
+ 0.24807303516309856
+ 0.24807977365098385
+ 0.24808651232591186
+ 0.24809325118788952
+ 0.24809999023692364
+ 0.24810672947302298
+ 0.24811346889619387
+ 0.24812020850644431
+ 0.24812694830378138
+ 0.24813368828821236
+ 0.24814042845974485
+ 0.248147168818387
+ 0.24815390936414439
+ 0.24816065009702637
+ 0.24816739101703941
+ 0.24817413212419071
+ 0.24818087341848799
+ 0.24818761489993868
+ 0.2481943565685503
+ 0.24820109842432975
+ 0.2482078404672857
+ 0.24821458269742391
+ 0.24822132511475245
+ 0.24822806771927883
+ 0.24823481051101115
+ 0.24824155348995577
+ 0.24824829665612008
+ 0.24825504000951235
+ 0.24826178355013928
+ 0.24826852727800855
+ 0.24827527119312759
+ 0.24828201529550392
+ 0.24828875958514443
+ 0.24829550406205733
+ 0.24830224872624942
+ 0.2483089935777282
+ 0.24831573861650122
+ 0.24832248384257605
+ 0.2483292292559601
+ 0.24833597485666031
+ 0.24834272064468482
+ 0.24834946662003993
+ 0.24835621278273431
+ 0.24836295913277434
+ 0.24836970567016811
+ 0.24837645239492309
+ 0.24838319930704689
+ 0.24838994640654574
+ 0.24839669369342834
+ 0.24840344116770102
+ 0.2484101888293726
+ 0.24841693667844925
+ 0.24842368471493853
+ 0.24843043293884864
+ 0.24843718135018639
+ 0.24844392994895931
+ 0.24845067873517504
+ 0.24845742770884033
+ 0.248464176869964
+ 0.24847092621855169
+ 0.24847767575461224
+ 0.24848442547815247
+ 0.24849117538917925
+ 0.2484979254877015
+ 0.24850467577372537
+ 0.24851142624725839
+ 0.24851817690830871
+ 0.24852492775688334
+ 0.24853167879298965
+ 0.24853843001663525
+ 0.24854518142782764
+ 0.2485519330265738
+ 0.24855868481288182
+ 0.24856543678675791
+ 0.24857218894821098
+ 0.24857894129724786
+ 0.24858569383387544
+ 0.24859244655810186
+ 0.24859919946993478
+ 0.24860595256938095
+ 0.24861270585644799
+ 0.24861945933114335
+ 0.24862621299347462
+ 0.24863296684344871
+ 0.24863972088107383
+ 0.24864647510635679
+ 0.24865322951930571
+ 0.24865998411992765
+ 0.24866673890823002
+ 0.2486734938842198
+ 0.24868024904790514
+ 0.24868700439929292
+ 0.24869375993839124
+ 0.24870051566520715
+ 0.24870727157974812
+ 0.24871402768202105
+ 0.2487207839720347
+ 0.24872754044979542
+ 0.24873429711531073
+ 0.24874105396858873
+ 0.24874781100963642
+ 0.24875456823846068
+ 0.24876132565506964
+ 0.24876808325947092
+ 0.2487748410516713
+ 0.2487815990316791
+ 0.24878835719950118
+ 0.248795115555145
+ 0.24880187409861762
+ 0.24880863282992763
+ 0.24881539174908152
+ 0.24882215085608678
+ 0.24882891015095154
+ 0.24883566963368203
+ 0.24884242930428724
+ 0.24884918916277324
+ 0.24885594920914833
+ 0.24886270944341943
+ 0.24886946986559469
+ 0.248876230475681
+ 0.24888299127368591
+ 0.24888975225961635
+ 0.24889651343348115
+ 0.24890327479528659
+ 0.24891003634504011
+ 0.24891679808275013
+ 0.2489235600084227
+ 0.24893032212206673
+ 0.24893708442368914
+ 0.24894384691329621
+ 0.24895060959089738
+ 0.24895737245649896
+ 0.24896413551010849
+ 0.24897089875173345
+ 0.24897766218138156
+ 0.24898442579906016
+ 0.24899118960477634
+ 0.24899795359853752
+ 0.24900471778035205
+ 0.2490114821502267
+ 0.24901824670816974
+ 0.24902501145418682
+ 0.24903177638828733
+ 0.24903854151047763
+ 0.2490453068207652
+ 0.24905207231915769
+ 0.2490588380056632
+ 0.24906560388028817
+ 0.24907236994304119
+ 0.24907913619392882
+ 0.24908590263295835
+ 0.24909266926013762
+ 0.24909943607547394
+ 0.24910620307897557
+ 0.24911297027064949
+ 0.24911973765050263
+ 0.24912650521854252
+ 0.24913327297477739
+ 0.24914004091921474
+ 0.24914680905186087
+ 0.24915357737272464
+ 0.24916034588181177
+ 0.2491671145791316
+ 0.24917388346469049
+ 0.24918065253849661
+ 0.24918742180055634
+ 0.24919419125087838
+ 0.2492009608894698
+ 0.24920773071633742
+ 0.24921450073148943
+ 0.2492212709349329
+ 0.24922804132667589
+ 0.24923481190672483
+ 0.24924158267508842
+ 0.24924835363177306
+ 0.24925512477678688
+ 0.24926189611013744
+ 0.24926866763183173
+ 0.24927543934187738
+ 0.2492822112402818
+ 0.24928898332705263
+ 0.24929575560219749
+ 0.24930252806572331
+ 0.24930930071763821
+ 0.24931607355794982
+ 0.24932284658666445
+ 0.24932961980379031
+ 0.24933639320933551
+ 0.24934316680330651
+ 0.24934994058571078
+ 0.24935671455655656
+ 0.24936348871585082
+ 0.24937026306360163
+ 0.24937703759981547
+ 0.24938381232450046
+ 0.24939058723766427
+ 0.2493973623393137
+ 0.24940413762945643
+ 0.24941091310810057
+ 0.24941768877525319
+ 0.24942446463092111
+ 0.24943124067511327
+ 0.2494380169078359
+ 0.24944479332909666
+ 0.2494515699389038
+ 0.24945834673726408
+ 0.24946512372418528
+ 0.2494719008996748
+ 0.24947867826373976
+ 0.24948545581638884
+ 0.24949223355762784
+ 0.24949901148746562
+ 0.24950578960590902
+ 0.24951256791296572
+ 0.24951934640864262
+ 0.249526125092948
+ 0.24953290396588931
+ 0.24953968302747428
+ 0.24954646227770916
+ 0.24955324171660218
+ 0.24956002134416153
+ 0.24956680116039354
+ 0.24957358116530584
+ 0.24958036135890724
+ 0.24958714174120342
+ 0.24959392231220326
+ 0.2496007030719137
+ 0.24960748402034166
+ 0.24961426515749549
+ 0.2496210464833826
+ 0.24962782799801073
+ 0.24963460970138607
+ 0.24964139159351759
+ 0.24964817367441222
+ 0.24965495594407686
+ 0.24966173840252037
+ 0.24966852104974854
+ 0.24967530388577017
+ 0.24968208691059282
+ 0.24968887012422344
+ 0.24969565352666906
+ 0.24970243711793788
+ 0.24970922089803743
+ 0.24971600486697479
+ 0.24972278902475809
+ 0.24972957337139431
+ 0.24973635790689103
+ 0.24974314263125594
+ 0.24974992754449593
+ 0.24975671264661919
+ 0.24976349793763339
+ 0.24977028341754542
+ 0.24977706908636355
+ 0.24978385494409422
+ 0.24979064099074547
+ 0.24979742722632495
+ 0.24980421365083971
+ 0.24981100026429737
+ 0.24981778706670663
+ 0.24982457405807332
+ 0.24983136123840563
+ 0.24983814860771117
+ 0.24984493616599751
+ 0.24985172391327165
+ 0.24985851184954183
+ 0.24986529997481444
+ 0.24987208828909821
+ 0.24987887679240026
+ 0.2498856654847281
+ 0.24989245436608867
+ 0.24989924343649028
+ 0.24990603269594053
+ 0.24991282214444568
+ 0.24991961178201472
+ 0.24992640160865393
+ 0.24993319162437219
+ 0.24993998182917521
+ 0.24994677222307241
+ 0.24995356280606967
+ 0.2499603535781757
+ 0.24996714453939761
+ 0.24997393568974285
+ 0.24998072702921853
+ 0.24998751855783355
+ 0.24999431027559346
+ 0.25000110218250726
+ 0.25000789427858189
+ 0.25001468656382497
+ 0.25002147903824407
+ 0.25002827170184688
+ 0.25003506455464031
+ 0.25004185759663206
+ 0.25004865082783029
+ 0.25005544424824255
+ 0.25006223785787535
+ 0.25006903165673683
+ 0.25007582564483405
+ 0.25008261982217578
+ 0.25008941418876784
+ 0.25009620874461902
+ 0.25010300348973641
+ 0.25010979842412756
+ 0.25011659354780003
+ 0.25012338886076091
+ 0.25013018436301843
+ 0.25013698005458013
+ 0.25014377593545245
+ 0.25015057200564361
+ 0.25015736826516188
+ 0.25016416471401415
+ 0.25017096135220751
+ 0.25017775817974958
+ 0.25018455519664856
+ 0.25019135240291146
+ 0.25019814979854654
+ 0.25020494738356014
+ 0.25021174515796057
+ 0.25021854312175473
+ 0.25022534127495155
+ 0.2502321396175568
+ 0.25023893814957865
+ 0.25024573687102536
+ 0.25025253578190404
+ 0.25025933488222157
+ 0.25026613417198623
+ 0.25027293365120501
+ 0.25027973331988618
+ 0.25028653317803679
+ 0.25029333322566433
+ 0.25030013346277658
+ 0.25030693388938102
+ 0.25031373450548478
+ 0.25032053531109599
+ 0.25032733630622178
+ 0.25033413749086963
+ 0.25034093886504732
+ 0.25034774042876301
+ 0.25035454218202252
+ 0.25036134412483524
+ 0.2503681462572076
+ 0.25037494857914738
+ 0.25038175109066196
+ 0.25038855379175917
+ 0.25039535668244711
+ 0.25040215976273228
+ 0.25040896303262222
+ 0.25041576649212594
+ 0.25042257014124908
+ 0.25042937397999993
+ 0.25043617800838675
+ 0.25044298222641598
+ 0.25044978663409573
+ 0.25045659123143382
+ 0.25046339601843648
+ 0.25047020099511336
+ 0.25047700616147073
+ 0.25048381151751564
+ 0.25049061706325632
+ 0.25049742279870046
+ 0.25050422872385569
+ 0.250511034838729
+ 0.25051784114332809
+ 0.25052464763766114
+ 0.25053145432173518
+ 0.25053826119555722
+ 0.25054506825913558
+ 0.25055187551247721
+ 0.25055868295559042
+ 0.25056549058848282
+ 0.25057229841116085
+ 0.25057910642363329
+ 0.25058591462590601
+ 0.25059272301798918
+ 0.25059953159988779
+ 0.25060634037161089
+ 0.25061314933316547
+ 0.2506199584845597
+ 0.25062676782580007
+ 0.25063357735689484
+ 0.25064038707785158
+ 0.25064719698867804
+ 0.25065400708938118
+ 0.25066081737996865
+ 0.25066762786044811
+ 0.25067443853082716
+ 0.25068124939111347
+ 0.25068806044131475
+ 0.250694871681438
+ 0.25070168311149144
+ 0.2507084947314821
+ 0.25071530654141827
+ 0.25072211854130638
+ 0.25072893073115471
+ 0.25073574311097085
+ 0.25074255568076181
+ 0.25074936844053597
+ 0.25075618139030031
+ 0.25076299453006246
+ 0.25076980785983005
+ 0.25077662137961076
+ 0.25078343508941231
+ 0.25079024898924163
+ 0.25079706307910704
+ 0.25080387735901555
+ 0.25081069182897481
+ 0.25081750648899254
+ 0.25082432133907634
+ 0.25083113637923382
+ 0.25083795160947209
+ 0.25084476702979946
+ 0.25085158264022284
+ 0.25085839844074997
+ 0.25086521443138915
+ 0.25087203061214675
+ 0.25087884698303098
+ 0.25088566354404901
+ 0.25089248029520911
+ 0.25089929723651822
+ 0.25090611436798405
+ 0.25091293168961487
+ 0.25091974920141713
+ 0.25092656690339915
+ 0.25093338479556782
+ 0.25094020287793217
+ 0.25094702115049794
+ 0.25095383961327344
+ 0.25096065826626696
+ 0.25096747710948492
+ 0.2509742961429362
+ 0.25098111536662665
+ 0.25098793478056569
+ 0.25099475438475927
+ 0.25100157417921615
+ 0.25100839416394349
+ 0.25101521433894886
+ 0.25102203470424006
+ 0.25102885525982399
+ 0.25103567600570836
+ 0.25104249694190156
+ 0.25104931806841108
+ 0.25105613938524346
+ 0.25106296089240698
+ 0.25106978258990931
+ 0.25107660447775809
+ 0.25108342655596039
+ 0.25109024882452385
+ 0.25109707128345682
+ 0.25110389393276628
+ 0.25111071677245933
+ 0.25111753980254486
+ 0.25112436302302932
+ 0.25113118643392102
+ 0.2511380100352269
+ 0.25114483382695474
+ 0.2511516578091128
+ 0.25115848198170759
+ 0.25116530634474793
+ 0.2511721308982402
+ 0.25117895564219223
+ 0.25118578057661217
+ 0.25119260570150725
+ 0.25119943101688497
+ 0.25120625652275369
+ 0.25121308221911987
+ 0.25121990810599115
+ 0.25122673418337649
+ 0.25123356045128231
+ 0.25124038690971623
+ 0.25124721355868601
+ 0.25125404039819993
+ 0.25126086742826381
+ 0.25126769464888715
+ 0.25127452206007705
+ 0.25128134966184057
+ 0.2512881774541853
+ 0.25129500543711975
+ 0.25130183361065017
+ 0.25130866197478485
+ 0.25131549052953228
+ 0.25132231927489812
+ 0.25132914821089197
+ 0.25133597733751967
+ 0.25134280665479009
+ 0.25134963616271028
+ 0.25135646586128807
+ 0.25136329575053035
+ 0.25137012583044616
+ 0.25137695610104127
+ 0.25138378656232463
+ 0.25139061721430389
+ 0.25139744805698555
+ 0.25140427909037849
+ 0.25141111031448921
+ 0.25141794172932597
+ 0.25142477333489588
+ 0.25143160513120716
+ 0.25143843711826702
+ 0.25144526929608307
+ 0.25145210166466359
+ 0.25145893422401505
+ 0.25146576697414585
+ 0.25147259991506293
+ 0.25147943304677467
+ 0.25148626636928817
+ 0.25149309988261098
+ 0.25149993358675166
+ 0.25150676748171641
+ 0.25151360156751373
+ 0.25152043584415118
+ 0.25152727031163596
+ 0.25153410496997625
+ 0.25154093981917858
+ 0.25154777485925195
+ 0.25155461009020325
+ 0.25156144551203974
+ 0.2515682811247697
+ 0.25157511692840073
+ 0.25158195292294
+ 0.25158878910839516
+ 0.25159562548477399
+ 0.25160246205208464
+ 0.25160929881033378
+ 0.25161613575952957
+ 0.25162297289967916
+ 0.25162981023079084
+ 0.25163664775287176
+ 0.25164348546593013
+ 0.25165032336997251
+ 0.25165716146500716
+ 0.25166399975104181
+ 0.25167083822808417
+ 0.25167767689614062
+ 0.25168451575522088
+ 0.25169135480533067
+ 0.25169819404647897
+ 0.25170503347867224
+ 0.25171187310191878
+ 0.25171871291622638
+ 0.25172555292160204
+ 0.25173239311805412
+ 0.25173923350558974
+ 0.25174607408421651
+ 0.25175291485394286
+ 0.25175975581477461
+ 0.25176659696672127
+ 0.25177343830978932
+ 0.25178027984398721
+ 0.25178712156932126
+ 0.25179396348580046
+ 0.25180080559343199
+ 0.25180764789222343
+ 0.25181449038218262
+ 0.2518213330633165
+ 0.2518281759356335
+ 0.25183501899914074
+ 0.25184186225384586
+ 0.25184870569975659
+ 0.25185554933688131
+ 0.25186239316522641
+ 0.25186923718480031
+ 0.25187608139561007
+ 0.25188292579766336
+ 0.2518897703909686
+ 0.2518966151755328
+ 0.25190346015136372
+ 0.25191030531846909
+ 0.25191715067685599
+ 0.25192399622653272
+ 0.25193084196750709
+ 0.25193768789978616
+ 0.25194453402337758
+ 0.25195138033828907
+ 0.25195822684452845
+ 0.25196507354210279
+ 0.25197192043102101
+ 0.25197876751128961
+ 0.25198561478291626
+ 0.25199246224590882
+ 0.25199930990027547
+ 0.25200615774602275
+ 0.25201300578315966
+ 0.25201985401169269
+ 0.2520267024316295
+ 0.25203355104297842
+ 0.25204039984574667
+ 0.25204724883994251
+ 0.25205409802557238
+ 0.25206094740264468
+ 0.25206779697116782
+ 0.25207464673114754
+ 0.2520814966825935
+ 0.25208834682551157
+ 0.25209519715991069
+ 0.25210204768579736
+ 0.25210889840318057
+ 0.25211574931206732
+ 0.25212260041246487
+ 0.25212945170438145
+ 0.25213630318782432
+ 0.25214315486280103
+ 0.25215000672932003
+ 0.25215685878738836
+ 0.25216371103701318
+ 0.25217056347820355
+ 0.25217741611096517
+ 0.25218426893530771
+ 0.25219112195123711
+ 0.25219797515876224
+ 0.25220482855789023
+ 0.25221168214862888
+ 0.25221853593098587
+ 0.25222538990496829
+ 0.25223224407058459
+ 0.25223909842784237
+ 0.25224595297674823
+ 0.25225280771731112
+ 0.25225966264953814
+ 0.25226651777343639
+ 0.25227337308901493
+ 0.25228022859628019
+ 0.25228708429523988
+ 0.25229394018590245
+ 0.2523007962682749
+ 0.2523076525423657
+ 0.25231450900818131
+ 0.25232136566573005
+ 0.25232822251501907
+ 0.25233507955605677
+ 0.25234193678885086
+ 0.25234879421340844
+ 0.25235565182973724
+ 0.25236250963784507
+ 0.25236936763773965
+ 0.25237622582942865
+ 0.25238308421291927
+ 0.25238994278821986
+ 0.2523968015553375
+ 0.25240366051428065
+ 0.25241051966505573
+ 0.25241737900767175
+ 0.25242423854213519
+ 0.2524310982684545
+ 0.25243795818663733
+ 0.25244481829669024
+ 0.25245167859862283
+ 0.25245853909244159
+ 0.25246539977815363
+ 0.252472260655768
+ 0.25247912172529113
+ 0.25248598298673153
+ 0.25249284444009618
+ 0.25249970608539346
+ 0.2525065679226306
+ 0.25251342995181592
+ 0.25252029217295585
+ 0.2525271545860589
+ 0.25253401719113278
+ 0.25254087998818453
+ 0.25254774297722266
+ 0.25255460615825426
+ 0.25256146953128761
+ 0.25256833309632931
+ 0.25257519685338836
+ 0.25258206080247125
+ 0.25258892494358637
+ 0.25259578927674081
+ 0.25260265380194302
+ 0.25260951851920005
+ 0.25261638342852039
+ 0.25262324852991042
+ 0.25263011382337863
+ 0.2526369793089327
+ 0.25264384498658043
+ 0.25265071085632962
+ 0.25265757691818669
+ 0.25266444317216069
+ 0.25267130961825879
+ 0.25267817625648875
+ 0.25268504308685824
+ 0.25269191010937447
+ 0.25269877732404583
+ 0.25270564473088003
+ 0.25271251232988429
+ 0.25271938012106632
+ 0.25272624810443389
+ 0.2527331162799954
+ 0.25273998464775732
+ 0.2527468532077275
+ 0.2527537219599148
+ 0.25276059090432534
+ 0.25276746004096862
+ 0.25277432936985045
+ 0.25278119889097939
+ 0.25278806860436315
+ 0.25279493851000945
+ 0.25280180860792612
+ 0.25280867889812025
+ 0.25281554938059964
+ 0.25282242005537264
+ 0.25282929092244649
+ 0.25283616198182823
+ 0.25284303323352703
+ 0.25284990467754981
+ 0.25285677631390391
+ 0.2528636481425976
+ 0.25287052016363754
+ 0.25287739237703322
+ 0.25288426478279064
+ 0.25289113738091812
+ 0.25289801017142355
+ 0.25290488315431464
+ 0.25291175632959911
+ 0.25291862969728418
+ 0.25292550325737762
+ 0.25293237700988713
+ 0.25293925095482123
+ 0.25294612509218639
+ 0.25295299942199101
+ 0.25295987394424285
+ 0.25296674865894975
+ 0.25297362356611874
+ 0.25298049866575772
+ 0.25298737395787441
+ 0.25299424944247723
+ 0.25300112511957268
+ 0.25300800098916987
+ 0.25301487705127523
+ 0.25302175330589655
+ 0.25302862975304174
+ 0.25303550639271971
+ 0.25304238322493633
+ 0.25304926024970015
+ 0.25305613746701883
+ 0.25306301487690025
+ 0.25306989247935208
+ 0.25307677027438091
+ 0.25308364826199642
+ 0.2530905264422052
+ 0.25309740481501486
+ 0.25310428338043273
+ 0.25311116213846774
+ 0.25311804108912705
+ 0.25312492023241795
+ 0.25313179956834808
+ 0.25313867909692594
+ 0.25314555881815931
+ 0.25315243873205462
+ 0.25315931883862042
+ 0.25316619913786442
+ 0.25317307962979446
+ 0.2531799603144177
+ 0.25318684119174251
+ 0.25319372226177672
+ 0.25320060352452745
+ 0.2532074849800019
+ 0.25321436662820851
+ 0.25322124846915567
+ 0.25322813050284992
+ 0.25323501272929966
+ 0.25324189514851214
+ 0.25324877776049565
+ 0.25325566056525745
+ 0.2532625435628047
+ 0.25326942675314645
+ 0.25327631013628976
+ 0.25328319371224195
+ 0.2532900774810114
+ 0.25329696144260588
+ 0.2533038455970319
+ 0.2533107299442986
+ 0.25331761448441309
+ 0.25332449921738315
+ 0.25333138414321665
+ 0.25333826926192138
+ 0.25334515457350376
+ 0.25335204007797363
+ 0.25335892577533747
+ 0.25336581166560307
+ 0.25337269774877824
+ 0.25337958402487082
+ 0.25338647049388857
+ 0.25339335715583861
+ 0.25340024401073008
+ 0.25340713105856888
+ 0.25341401829936411
+ 0.25342090573312287
+ 0.25342779335985299
+ 0.2534346811795623
+ 0.25344156919225858
+ 0.25344845739794958
+ 0.25345534579664264
+ 0.25346223438834536
+ 0.25346912317306636
+ 0.25347601215081272
+ 0.2534829013215929
+ 0.25348979068541344
+ 0.25349668024228217
+ 0.25350356999220813
+ 0.25351045993519783
+ 0.25351735007125981
+ 0.25352424040040117
+ 0.2535311309226298
+ 0.25353802163795341
+ 0.25354491254638051
+ 0.25355180364791702
+ 0.25355869494257255
+ 0.25356558643035382
+ 0.25357247811126915
+ 0.25357936998532571
+ 0.25358626205253143
+ 0.25359315431289459
+ 0.25360004676642189
+ 0.25360693941312173
+ 0.25361383225300188
+ 0.2536207252860696
+ 0.25362761851233329
+ 0.25363451193180014
+ 0.25364140554447795
+ 0.25364829935037514
+ 0.25365519334949904
+ 0.25366208754185665
+ 0.25366898192745657
+ 0.25367587650630591
+ 0.25368277127841315
+ 0.25368966624378608
+ 0.2536965614024313
+ 0.25370345675435779
+ 0.25371035229957289
+ 0.25371724803808371
+ 0.25372414396989873
+ 0.25373104009502567
+ 0.25373793641347187
+ 0.25374483292524569
+ 0.25375172963035436
+ 0.25375862652880565
+ 0.2537655236206075
+ 0.25377242090576763
+ 0.25377931838429324
+ 0.25378621605619284
+ 0.25379311392147419
+ 0.25380001198014457
+ 0.25380691023221169
+ 0.25381380867768411
+ 0.25382070731656842
+ 0.25382760614887356
+ 0.25383450517460621
+ 0.25384140439377478
+ 0.25384830380638651
+ 0.25385520341244927
+ 0.25386210321197206
+ 0.25386900320496081
+ 0.25387590339142402
+ 0.25388280377136957
+ 0.25388970434480518
+ 0.25389660511173817
+ 0.25390350607217693
+ 0.25391040722612868
+ 0.25391730857360184
+ 0.2539242101146037
+ 0.25393111184914202
+ 0.25393801377722464
+ 0.25394491589885887
+ 0.2539518182140536
+ 0.25395872072281556
+ 0.25396562342515261
+ 0.25397252632107309
+ 0.25397942941058427
+ 0.25398633269369403
+ 0.25399323617041014
+ 0.25400013984073982
+ 0.25400704370469157
+ 0.25401394776227382
+ 0.2540208520134925
+ 0.25402775645835679
+ 0.25403466109687384
+ 0.25404156592905153
+ 0.2540484709548983
+ 0.25405537617442064
+ 0.25406228158762723
+ 0.25406918719452509
+ 0.25407609299512279
+ 0.25408299898942754
+ 0.25408990517744778
+ 0.25409681155919006
+ 0.25410371813466359
+ 0.25411062490387548
+ 0.254117531866833
+ 0.25412443902354459
+ 0.25413134637401813
+ 0.25413825391826084
+ 0.25414516165628115
+ 0.25415206958808567
+ 0.25415897771368351
+ 0.25416588603308127
+ 0.25417279454628738
+ 0.25417970325331035
+ 0.25418661215415617
+ 0.25419352124883388
+ 0.25420043053735142
+ 0.25420734001971529
+ 0.25421424969593459
+ 0.25422115956601665
+ 0.25422806962996858
+ 0.25423497988779953
+ 0.25424189033951611
+ 0.25424880098512614
+ 0.25425571182463813
+ 0.25426262285805934
+ 0.25426953408539754
+ 0.25427644550666056
+ 0.2542833571218564
+ 0.25429026893099277
+ 0.2542971809340776
+ 0.25430409313111807
+ 0.2543110055221221
+ 0.25431791810709808
+ 0.25432483088605334
+ 0.25433174385899632
+ 0.25433865702593356
+ 0.25434557038687367
+ 0.25435248394182375
+ 0.25435939769079235
+ 0.25436631163378731
+ 0.25437322577081589
+ 0.25438014010188598
+ 0.25438705462700534
+ 0.25439396934618252
+ 0.25440088425942414
+ 0.25440779936673863
+ 0.25441471466813392
+ 0.25442163016361719
+ 0.2544285458531963
+ 0.25443546173687975
+ 0.25444237781467482
+ 0.25444929408658934
+ 0.25445621055263112
+ 0.25446312721280812
+ 0.25447004406712814
+ 0.25447696111559842
+ 0.25448387835822683
+ 0.25449079579502193
+ 0.25449771342599087
+ 0.25450463125114153
+ 0.25451154927048242
+ 0.25451846748402018
+ 0.25452538589176327
+ 0.25453230449371889
+ 0.25453922328989564
+ 0.25454614228030126
+ 0.2545530614649425
+ 0.25455998084382842
+ 0.25456690041696622
+ 0.25457382018436381
+ 0.25458074014602905
+ 0.25458766030196928
+ 0.25459458065219281
+ 0.25460150119670705
+ 0.25460842193552041
+ 0.25461534286864018
+ 0.25462226399607424
+ 0.25462918531783035
+ 0.25463610683391652
+ 0.25464302854434062
+ 0.25464995044910976
+ 0.2546568725482326
+ 0.25466379484171697
+ 0.25467071732956942
+ 0.25467764001179916
+ 0.25468456288841335
+ 0.25469148595942004
+ 0.25469840922482628
+ 0.25470533268464068
+ 0.25471225633887107
+ 0.25471918018752537
+ 0.25472610423061087
+ 0.25473302846813539
+ 0.25473995290010681
+ 0.25474687752653302
+ 0.25475380234742184
+ 0.25476072736278127
+ 0.25476765257261846
+ 0.25477457797694264
+ 0.25478150357575974
+ 0.25478842936907892
+ 0.25479535535690739
+ 0.25480228153925316
+ 0.25480920791612394
+ 0.25481613448752777
+ 0.25482306125347182
+ 0.25482998821396524
+ 0.2548369153690147
+ 0.25484384271862798
+ 0.25485077026281311
+ 0.25485769800157854
+ 0.25486462593493087
+ 0.25487155406287931
+ 0.25487848238543037
+ 0.25488541090259337
+ 0.25489233961437413
+ 0.25489926852078254
+ 0.25490619762182465
+ 0.2549131269175095
+ 0.25492005640784432
+ 0.25492698609283715
+ 0.25493391597249576
+ 0.25494084604682743
+ 0.25494777631584137
+ 0.25495470677954418
+ 0.2549616374379437
+ 0.25496856829104853
+ 0.25497549933886526
+ 0.25498243058140307
+ 0.25498936201866923
+ 0.25499629365067156
+ 0.25500322547741805
+ 0.25501015749891598
+ 0.25501708971517306
+ 0.25502402212619868
+ 0.25503095473199872
+ 0.25503788753258239
+ 0.2550448205279563
+ 0.25505175371812955
+ 0.25505868710310886
+ 0.25506562068290273
+ 0.25507255445751909
+ 0.25507948842696582
+ 0.25508642259124953
+ 0.25509335695037944
+ 0.2551002915043627
+ 0.25510722625320797
+ 0.25511416119692193
+ 0.25512109633551294
+ 0.25512803166898834
+ 0.2551349671973574
+ 0.255141902920626
+ 0.25514883883880335
+ 0.25515577495189673
+ 0.25516271125991469
+ 0.25516964776286444
+ 0.25517658446075331
+ 0.25518352135358985
+ 0.25519045844138194
+ 0.25519739572413686
+ 0.25520433320186314
+ 0.25521127087456807
+ 0.25521820874226014
+ 0.25522514680494607
+ 0.25523208506263495
+ 0.25523902351533417
+ 0.2552459621630509
+ 0.25525290100579373
+ 0.25525984004357061
+ 0.25526677927638874
+ 0.25527371870425603
+ 0.25528065832718044
+ 0.25528759814517055
+ 0.2552945381582335
+ 0.25530147836637673
+ 0.2553084187696093
+ 0.25531535936793792
+ 0.25532230016137053
+ 0.25532924114991562
+ 0.25533618233358113
+ 0.25534312371237361
+ 0.25535006528630244
+ 0.25535700705537406
+ 0.25536394901959786
+ 0.25537089117898032
+ 0.25537783353353011
+ 0.25538477608325438
+ 0.25539171882816181
+ 0.25539866176826026
+ 0.2554056049035564
+ 0.2554125482340594
+ 0.25541949175977591
+ 0.25542643548071514
+ 0.25543337939688376
+ 0.25544032350829021
+ 0.25544726781494198
+ 0.2554542123168474
+ 0.2554611570140139
+ 0.25546810190644936
+ 0.2554750469941624
+ 0.25548199227715951
+ 0.25548893775545012
+ 0.25549588342904062
+ 0.25550282929793916
+ 0.25550977536215486
+ 0.25551672162169436
+ 0.25552366807656551
+ 0.25553061472677641
+ 0.25553756157233487
+ 0.25554450861324945
+ 0.25555145584952677
+ 0.25555840328117552
+ 0.25556535090820354
+ 0.25557229873061821
+ 0.25557924674842797
+ 0.2555861949616402
+ 0.25559314337026273
+ 0.25560009197430428
+ 0.25560704077377139
+ 0.25561398976867267
+ 0.25562093895901605
+ 0.25562788834480948
+ 0.25563483792606018
+ 0.25564178770277679
+ 0.25564873767496665
+ 0.25565568784263826
+ 0.25566263820579821
+ 0.25566958876445589
+ 0.2556765395186178
+ 0.25568349046829258
+ 0.25569044161348814
+ 0.25569739295421245
+ 0.25570434449047219
+ 0.25571129622227712
+ 0.25571824814963395
+ 0.25572520027255008
+ 0.25573215259103454
+ 0.25573910510509479
+ 0.25574605781473803
+ 0.25575301071997286
+ 0.25575996382080723
+ 0.25576691711724847
+ 0.25577387060930518
+ 0.25578082429698445
+ 0.25578777818029452
+ 0.25579473225924321
+ 0.255801686533839
+ 0.25580864100408807
+ 0.25581559567000023
+ 0.2558225505315827
+ 0.25582950558884227
+ 0.25583646084178874
+ 0.25584341629042812
+ 0.25585037193476967
+ 0.25585732777482068
+ 0.25586428381058912
+ 0.25587124004208228
+ 0.25587819646930932
+ 0.25588515309227705
+ 0.25589210991099332
+ 0.25589906692546732
+ 0.25590602413570523
+ 0.2559129815417161
+ 0.25591993914350675
+ 0.25592689694108628
+ 0.25593385493446208
+ 0.25594081312364148
+ 0.25594777150863368
+ 0.25595473008944464
+ 0.25596168886608373
+ 0.25596864783855877
+ 0.25597560700687716
+ 0.25598256637104683
+ 0.25598952593107571
+ 0.25599648568697181
+ 0.25600344563874239
+ 0.25601040578639606
+ 0.25601736612994141
+ 0.25602432666938446
+ 0.25603128740473446
+ 0.25603824833599942
+ 0.25604520946318599
+ 0.25605217078630332
+ 0.25605913230535821
+ 0.25606609402035985
+ 0.25607305593131485
+ 0.25608001803823127
+ 0.25608698034111826
+ 0.2560939428399826
+ 0.25610090553483222
+ 0.25610786842567501
+ 0.25611483151251963
+ 0.25612179479537278
+ 0.25612875827424364
+ 0.25613572194913892
+ 0.25614268582006722
+ 0.25614964988703587
+ 0.25615661415005347
+ 0.25616357860912736
+ 0.25617054326426614
+ 0.25617750811547707
+ 0.25618447316276821
+ 0.25619143840614744
+ 0.2561984038456222
+ 0.25620536948120159
+ 0.25621233531289245
+ 0.2562193013407032
+ 0.25622626756464134
+ 0.25623323398471476
+ 0.25624020060093211
+ 0.25624716741330067
+ 0.25625413442182776
+ 0.25626110162652266
+ 0.25626806902739269
+ 0.25627503662444517
+ 0.25628200441768872
+ 0.25628897240713078
+ 0.2562959405927791
+ 0.25630290897464308
+ 0.25630987755272877
+ 0.25631684632704471
+ 0.25632381529759896
+ 0.25633078446439944
+ 0.25633775382745411
+ 0.25634472338677033
+ 0.25635169314235673
+ 0.25635866309422062
+ 0.25636563324237061
+ 0.25637260358681402
+ 0.25637957412755885
+ 0.2563865448646131
+ 0.25639351579798475
+ 0.25640048692768169
+ 0.25640745825371203
+ 0.25641442977608297
+ 0.25642140149480325
+ 0.25642837340988017
+ 0.25643534552132163
+ 0.25644231782913635
+ 0.25644929033333097
+ 0.25645626303391483
+ 0.25646323593089515
+ 0.25647020902427942
+ 0.25647718231407607
+ 0.25648415580029327
+ 0.25649112948293823
+ 0.25649810336201967
+ 0.25650507743754425
+ 0.25651205170952118
+ 0.25651902617795791
+ 0.25652600084286237
+ 0.25653297570424249
+ 0.25653995076210573
+ 0.25654692601646062
+ 0.25655390146731522
+ 0.25656087711467679
+ 0.25656785295855405
+ 0.25657482899895367
+ 0.25658180523588486
+ 0.25658878166935506
+ 0.2565957582993722
+ 0.25660273512594428
+ 0.25660971214907868
+ 0.25661668936878407
+ 0.25662366678506826
+ 0.25663064439793815
+ 0.25663762220740355
+ 0.25664460021347058
+ 0.25665157841614844
+ 0.25665855681544392
+ 0.25666553541136633
+ 0.25667251420392223
+ 0.25667949319312039
+ 0.25668647237896874
+ 0.25669345176147468
+ 0.2567004313406468
+ 0.25670741111649248
+ 0.25671439108901967
+ 0.25672137125823641
+ 0.2567283516241507
+ 0.25673533218677058
+ 0.25674231294610389
+ 0.25674929390215812
+ 0.25675627505494258
+ 0.25676325640446324
+ 0.25677023795072945
+ 0.2567772196937485
+ 0.25678420163352911
+ 0.25679118377007798
+ 0.25679816610340428
+ 0.25680514863351489
+ 0.25681213136041836
+ 0.2568191142841228
+ 0.25682609740463602
+ 0.25683308072196498
+ 0.25684006423611933
+ 0.25684704794710539
+ 0.25685403185493233
+ 0.25686101595960753
+ 0.25686800026113898
+ 0.25687498475953413
+ 0.25688196945480213
+ 0.2568889543469498
+ 0.25689593943598577
+ 0.25690292472191739
+ 0.25690991020475268
+ 0.25691689588450028
+ 0.25692388176116754
+ 0.25693086783476254
+ 0.25693785410529318
+ 0.25694484057276817
+ 0.25695182723719362
+ 0.2569588140985794
+ 0.25696580115693229
+ 0.25697278841226034
+ 0.25697977586457205
+ 0.25698676351387495
+ 0.25699375136017699
+ 0.25700073940348683
+ 0.25700772764381113
+ 0.25701471608115867
+ 0.25702170471553798
+ 0.25702869354695529
+ 0.25703568257541975
+ 0.25704267180093948
+ 0.2570496612235218
+ 0.25705665084317542
+ 0.25706364065990761
+ 0.25707063067372588
+ 0.25707762088463942
+ 0.25708461129265564
+ 0.25709160189778196
+ 0.257098592700027
+ 0.25710558369939873
+ 0.25711257489590467
+ 0.25711956628955335
+ 0.25712655788035155
+ 0.2571335496683092
+ 0.25714054165343242
+ 0.25714753383572986
+ 0.25715452621520951
+ 0.25716151879187943
+ 0.25716851156574766
+ 0.2571755045368222
+ 0.25718249770510981
+ 0.25718949107061972
+ 0.25719648463336003
+ 0.25720347839333807
+ 0.25721047235056194
+ 0.25721746650503963
+ 0.25722446085677847
+ 0.25723145540578785
+ 0.25723845015207447
+ 0.25724544509564762
+ 0.25725244023651345
+ 0.25725943557468123
+ 0.25726643111015901
+ 0.25727342684295418
+ 0.25728042277307411
+ 0.25728741890052814
+ 0.25729441522532359
+ 0.25730141174746796
+ 0.25730840846697045
+ 0.2573154053838379
+ 0.25732240249807892
+ 0.25732939980970093
+ 0.25733639731871261
+ 0.25734339502512132
+ 0.25735039292893447
+ 0.25735739103016203
+ 0.2573643893288094
+ 0.25737138782488728
+ 0.25737838651840172
+ 0.25738538540936073
+ 0.25739238449777307
+ 0.25739938378364674
+ 0.25740638326698906
+ 0.25741338294780819
+ 0.25742038282611268
+ 0.25742738290190947
+ 0.25743438317520767
+ 0.25744138364601477
+ 0.2574483843143382
+ 0.25745538518018724
+ 0.25746238624356799
+ 0.25746938750449044
+ 0.25747638896296071
+ 0.25748339061898873
+ 0.25749039247258071
+ 0.25749739452374587
+ 0.25750439677249165
+ 0.25751139921882543
+ 0.2575184018627566
+ 0.25752540470429186
+ 0.25753240774344049
+ 0.25753941098020877
+ 0.25754641441460585
+ 0.25755341804663989
+ 0.25756042187631822
+ 0.25756742590364895
+ 0.25757443012864006
+ 0.25758143455130028
+ 0.25758843917163637
+ 0.25759544398965706
+ 0.25760244900537033
+ 0.25760945421878362
+ 0.25761645962990559
+ 0.2576234652387443
+ 0.25763047104530717
+ 0.25763747704960227
+ 0.25764448325163758
+ 0.25765148965142126
+ 0.25765849624896187
+ 0.25766550304426628
+ 0.25767251003734315
+ 0.25767951722820054
+ 0.25768652461684582
+ 0.25769353220328772
+ 0.25770053998753367
+ 0.25770754796959233
+ 0.25771455614947109
+ 0.25772156452717809
+ 0.25772857310272135
+ 0.25773558187610884
+ 0.25774259084734874
+ 0.25774960001644903
+ 0.25775660938341716
+ 0.25776361894826177
+ 0.25777062871099038
+ 0.25777763867161158
+ 0.25778464883013286
+ 0.25779165918656288
+ 0.25779866974090843
+ 0.25780568049317892
+ 0.25781269144338098
+ 0.25781970259152343
+ 0.25782671393761492
+ 0.25783372548166161
+ 0.25784073722367279
+ 0.2578477491636566
+ 0.25785476130162044
+ 0.25786177363757301
+ 0.25786878617152104
+ 0.25787579890347395
+ 0.25788281183343847
+ 0.25788982496142399
+ 0.25789683828743726
+ 0.25790385181148701
+ 0.25791086553358122
+ 0.25791787945372813
+ 0.25792489357193438
+ 0.2579319078882093
+ 0.25793892240256105
+ 0.25794593711499642
+ 0.25795295202552465
+ 0.25795996713415331
+ 0.25796698244088972
+ 0.25797399794574261
+ 0.25798101364872073
+ 0.25798802954983019
+ 0.25799504564908099
+ 0.25800206194647929
+ 0.25800907844203441
+ 0.25801609513575452
+ 0.25802311202764633
+ 0.25803012911771916
+ 0.25803714640597986
+ 0.25804416389243773
+ 0.25805118157709966
+ 0.25805819945997427
+ 0.25806521754106904
+ 0.25807223582039335
+ 0.25807925429795325
+ 0.25808627297375825
+ 0.25809329184781626
+ 0.25810031092013419
+ 0.25810733019072074
+ 0.25811434965958457
+ 0.25812136932673257
+ 0.2581283891921734
+ 0.25813540925591516
+ 0.25814242951796523
+ 0.25814944997833306
+ 0.25815647063702468
+ 0.2581634914940496
+ 0.25817051254941525
+ 0.25817753380312958
+ 0.25818455525520079
+ 0.25819157690563749
+ 0.25819859875444656
+ 0.25820562080163678
+ 0.25821264304721614
+ 0.25821966549119274
+ 0.25822668813357341
+ 0.25823371097436809
+ 0.25824073401358372
+ 0.25824775725122823
+ 0.25825478068730978
+ 0.2582618043218371
+ 0.258268828154817
+ 0.25827585218625815
+ 0.25828287641616937
+ 0.25828990084455739
+ 0.25829692547143096
+ 0.25830395029679692
+ 0.25831097532066521
+ 0.25831800054304271
+ 0.25832502596393814
+ 0.25833205158335826
+ 0.25833907740131251
+ 0.25834610341780823
+ 0.25835312963285301
+ 0.25836015604645612
+ 0.25836718265862446
+ 0.25837420946936662
+ 0.25838123647869088
+ 0.25838826368660389
+ 0.25839529109311571
+ 0.25840231869823321
+ 0.25840934650196445
+ 0.25841637450431754
+ 0.25842340270530118
+ 0.2584304311049222
+ 0.25843745970318938
+ 0.2584444885001107
+ 0.25845151749569439
+ 0.25845854668994783
+ 0.25846557608287979
+ 0.25847260567449776
+ 0.2584796354648104
+ 0.25848666545382515
+ 0.25849369564155023
+ 0.25850072602799368
+ 0.25850775661316355
+ 0.25851478739706801
+ 0.25852181837971511
+ 0.25852884956111305
+ 0.25853588094126978
+ 0.2585429125201929
+ 0.25854994429789041
+ 0.25855697627437119
+ 0.2585640084496425
+ 0.25857104082371263
+ 0.25857807339659017
+ 0.25858510616828279
+ 0.25859213913879836
+ 0.2585991723081445
+ 0.25860620567633058
+ 0.25861323924336271
+ 0.258620273009251
+ 0.25862730697400227
+ 0.25863434113762518
+ 0.25864137550012728
+ 0.25864841006151668
+ 0.25865544482180142
+ 0.25866247978099033
+ 0.25866951493909024
+ 0.25867655029611047
+ 0.25868358585205853
+ 0.2586906216069419
+ 0.25869765756076929
+ 0.25870469371354821
+ 0.25871173006528742
+ 0.25871876661599441
+ 0.25872580336567785
+ 0.25873284031434529
+ 0.25873987746200483
+ 0.25874691480866452
+ 0.25875395235433324
+ 0.25876099009901699
+ 0.25876802804272603
+ 0.25877506618546769
+ 0.25878210452724953
+ 0.25878914306808026
+ 0.25879618180796798
+ 0.25880322074692025
+ 0.25881025988494505
+ 0.25881729922205066
+ 0.25882433875824501
+ 0.25883137849353705
+ 0.25883841842793348
+ 0.25884545856144381
+ 0.25885249889407486
+ 0.25885953942583528
+ 0.25886658015673264
+ 0.25887362108677636
+ 0.25888066221597261
+ 0.25888770354433077
+ 0.25889474507185839
+ 0.25890178679856418
+ 0.25890882872445564
+ 0.25891587084954082
+ 0.25892291317382737
+ 0.25892995569732391
+ 0.25893699842003931
+ 0.25894404134198035
+ 0.25895108446315579
+ 0.25895812778357313
+ 0.25896517130324048
+ 0.25897221502216733
+ 0.25897925894035978
+ 0.25898630305782666
+ 0.25899334737457674
+ 0.25900039189061752
+ 0.25900743660595704
+ 0.25901448152060291
+ 0.25902152663456446
+ 0.25902857194784856
+ 0.259035617460464
+ 0.25904266317241825
+ 0.2590497090837201
+ 0.2590567551943771
+ 0.25906380150439723
+ 0.25907084801378938
+ 0.25907789472256099
+ 0.25908494163072027
+ 0.25909198873827527
+ 0.25909903604523349
+ 0.25910608355160442
+ 0.25911313125739482
+ 0.2591201791626136
+ 0.25912722726726878
+ 0.25913427557136787
+ 0.25914132407491902
+ 0.25914837277793107
+ 0.25915542168041139
+ 0.25916247078236826
+ 0.25916952008380972
+ 0.25917656958474394
+ 0.25918361928517908
+ 0.25919066918512329
+ 0.25919771928458402
+ 0.25920476958357003
+ 0.25921182008208959
+ 0.25921887078015071
+ 0.25922592167776032
+ 0.25923297277492841
+ 0.2592400240716613
+ 0.25924707556796778
+ 0.25925412726385649
+ 0.25926117915933444
+ 0.25926823125441101
+ 0.25927528354909307
+ 0.25928233604338935
+ 0.25928938873730811
+ 0.25929644163085741
+ 0.25930349472404474
+ 0.25931054801687831
+ 0.25931760150936689
+ 0.25932465520151798
+ 0.25933170909333975
+ 0.25933876318484034
+ 0.25934581747602847
+ 0.25935287196691104
+ 0.25935992665749763
+ 0.25936698154779425
+ 0.25937403663781111
+ 0.25938109192755571
+ 0.25938814741703548
+ 0.25939520310625863
+ 0.259402258995234
+ 0.25940931508396903
+ 0.25941637137247253
+ 0.25942342786075206
+ 0.25943048454881507
+ 0.25943754143667103
+ 0.25944459852432744
+ 0.2594516558117918
+ 0.259458713299073
+ 0.25946577098617907
+ 0.25947282887311823
+ 0.25947988695989804
+ 0.25948694524652649
+ 0.25949400373301262
+ 0.25950106241936377
+ 0.25950812130558815
+ 0.25951518039169463
+ 0.25952223967769061
+ 0.25952929916358369
+ 0.25953635884938325
+ 0.25954341873509623
+ 0.2595504788207314
+ 0.25955753910629698
+ 0.25956459959180039
+ 0.25957166027725054
+ 0.25957872116265485
+ 0.25958578224802153
+ 0.25959284353335943
+ 0.25959990501867597
+ 0.25960696670397948
+ 0.25961402858927796
+ 0.25962109067457961
+ 0.25962815295989333
+ 0.25963521544522528
+ 0.25964227813058555
+ 0.25964934101598108
+ 0.2596564041014206
+ 0.25966346738691176
+ 0.25967053087246322
+ 0.25967759455808198
+ 0.25968465844377808
+ 0.2596917225295578
+ 0.25969878681542991
+ 0.25970585130140322
+ 0.25971291598748536
+ 0.2597199808736837
+ 0.25972704596000717
+ 0.25973411124646395
+ 0.25974117673306146
+ 0.25974824241980865
+ 0.25975530830671362
+ 0.25976237439378391
+ 0.2597694406810277
+ 0.2597765071684538
+ 0.25978357385606909
+ 0.25979064074388308
+ 0.25979770783190326
+ 0.25980477512013783
+ 0.25981184260859497
+ 0.25981891029728216
+ 0.25982597818620828
+ 0.25983304627538151
+ 0.25984011456480932
+ 0.25984718305450066
+ 0.25985425174446358
+ 0.25986132063470563
+ 0.25986838972523441
+ 0.25987545901605941
+ 0.25988252850718874
+ 0.25988959819862928
+ 0.25989666809038997
+ 0.25990373818247886
+ 0.25991080847490422
+ 0.25991787896767421
+ 0.25992494966079632
+ 0.25993202055427939
+ 0.25993909164813173
+ 0.25994616294236078
+ 0.25995323443697471
+ 0.25996030613198173
+ 0.25996737802739067
+ 0.25997445012320908
+ 0.25998152241944517
+ 0.2599885949161071
+ 0.25999566761320236
+ 0.26000274051074052
+ 0.2600098136087291
+ 0.26001688690717562
+ 0.26002396040608827
+ 0.26003103410547657
+ 0.26003810800534671
+ 0.26004518210570821
+ 0.26005225640656932
+ 0.26005933090793687
+ 0.26006640560982031
+ 0.26007348051222728
+ 0.26008055561516591
+ 0.2600876309186444
+ 0.26009470642267096
+ 0.26010178212725377
+ 0.2601088580323998
+ 0.26011593413811973
+ 0.26012301044441921
+ 0.26013008695130774
+ 0.26013716365879286
+ 0.26014424056688346
+ 0.26015131767558702
+ 0.26015839498491239
+ 0.26016547249486649
+ 0.26017255020545887
+ 0.26017962811669637
+ 0.26018670622858786
+ 0.26019378454114156
+ 0.26020086305436557
+ 0.26020794176826828
+ 0.26021502068285707
+ 0.26022209979814082
+ 0.26022917911412713
+ 0.26023625863082483
+ 0.26024333834824154
+ 0.26025041826638534
+ 0.26025749838526518
+ 0.26026457870488795
+ 0.26027165922526307
+ 0.26027873994639822
+ 0.26028582086830154
+ 0.2602929019909806
+ 0.26029998331444426
+ 0.2603070648387007
+ 0.26031414656375751
+ 0.26032122848962352
+ 0.26032831061630629
+ 0.26033539294381469
+ 0.26034247547215633
+ 0.26034955820133937
+ 0.26035664113137263
+ 0.26036372426226373
+ 0.26037080759402026
+ 0.26037789112665161
+ 0.26038497486016549
+ 0.26039205879456934
+ 0.26039914292987204
+ 0.26040622726608192
+ 0.26041331180320637
+ 0.26042039654125437
+ 0.26042748148023415
+ 0.26043456662015252
+ 0.26044165196101915
+ 0.26044873750284209
+ 0.26045582324562833
+ 0.26046290918938736
+ 0.26046999533412679
+ 0.26047708167985417
+ 0.26048416822657905
+ 0.26049125497430831
+ 0.26049834192305144
+ 0.26050542907281476
+ 0.2605125164236084
+ 0.26051960397543933
+ 0.26052669172831566
+ 0.26053377968224645
+ 0.26054086783723912
+ 0.26054795619330257
+ 0.26055504475044439
+ 0.26056213350867219
+ 0.26056922246799541
+ 0.2605763116284216
+ 0.26058340098995914
+ 0.26059049055261552
+ 0.26059758031640018
+ 0.26060467028132017
+ 0.26061176044738427
+ 0.26061885081460018
+ 0.26062594138297662
+ 0.26063303215252132
+ 0.26064012312324303
+ 0.2606472142951487
+ 0.2606543056682486
+ 0.26066139724254889
+ 0.26066848901805917
+ 0.26067558099478638
+ 0.26068267317273935
+ 0.26068976555192697
+ 0.26069685813235549
+ 0.2607039509140352
+ 0.26071104389697358
+ 0.26071813708117825
+ 0.26072523046665746
+ 0.26073232405342006
+ 0.26073941784147431
+ 0.2607465118308277
+ 0.26075360602148856
+ 0.26076070041346516
+ 0.26076779500676633
+ 0.2607748898013989
+ 0.26078198479737197
+ 0.26078907999469425
+ 0.26079617539337274
+ 0.26080327099341633
+ 0.26081036679483327
+ 0.26081746279763113
+ 0.26082455900181878
+ 0.26083165540740444
+ 0.26083875201439577
+ 0.26084584882280099
+ 0.26085294583262902
+ 0.26086004304388732
+ 0.26086714045658421
+ 0.26087423807072796
+ 0.26088133588632678
+ 0.26088843390338895
+ 0.26089553212192262
+ 0.2609026305419368
+ 0.26090972916343835
+ 0.26091682798643551
+ 0.26092392701093725
+ 0.26093102623695175
+ 0.2609381256644866
+ 0.26094522529355069
+ 0.26095232512415167
+ 0.26095942515629778
+ 0.26096652538999787
+ 0.26097362582525957
+ 0.26098072646209108
+ 0.26098782730050074
+ 0.2609949283404967
+ 0.26100202958208724
+ 0.26100913102528006
+ 0.26101623267008456
+ 0.26102333451650767
+ 0.26103043656455843
+ 0.26103753881424507
+ 0.26104464126557508
+ 0.26105174391855684
+ 0.26105884677319918
+ 0.2610659498295097
+ 0.26107305308749729
+ 0.26108015654716898
+ 0.26108726020853423
+ 0.26109436407160069
+ 0.26110146813637664
+ 0.26110857240286967
+ 0.26111567687108928
+ 0.26112278154104313
+ 0.26112988641273882
+ 0.26113699148618524
+ 0.26114409676139
+ 0.26115120223836269
+ 0.26115830791710959
+ 0.26116541379764019
+ 0.26117251987996226
+ 0.26117962616408458
+ 0.2611867326500148
+ 0.26119383933776108
+ 0.26120094622733192
+ 0.26120805331873537
+ 0.26121516061197975
+ 0.26122226810707333
+ 0.26122937580402439
+ 0.26123648370284119
+ 0.26124359180353129
+ 0.26125070010610363
+ 0.26125780861056652
+ 0.26126491731692686
+ 0.26127202622519491
+ 0.26127913533537755
+ 0.26128624464748318
+ 0.26129335416152061
+ 0.26130046387749756
+ 0.26130757379542219
+ 0.26131468391530277
+ 0.26132179423714763
+ 0.26132890476096499
+ 0.2613360154867625
+ 0.26134312641454976
+ 0.26135023754433434
+ 0.26135734887612383
+ 0.26136446040992717
+ 0.26137157214575202
+ 0.26137868408360732
+ 0.26138579622350055
+ 0.26139290856544078
+ 0.26140002110943561
+ 0.26140713385549325
+ 0.26141424680362202
+ 0.26142135995383081
+ 0.26142847330612728
+ 0.26143558686051971
+ 0.26144270061701569
+ 0.26144981457562483
+ 0.26145692873635401
+ 0.26146404309921295
+ 0.26147115766420853
+ 0.26147827243134902
+ 0.26148538740064342
+ 0.26149250257209999
+ 0.26149961794572629
+ 0.26150673352153064
+ 0.26151384929952204
+ 0.26152096527970797
+ 0.26152808146209683
+ 0.26153519784669749
+ 0.261542314433517
+ 0.2615494312225648
+ 0.26155654821384805
+ 0.26156366540737619
+ 0.26157078280315693
+ 0.26157790040119788
+ 0.26158501820150798
+ 0.26159213620409483
+ 0.26159925440896742
+ 0.2616063728161333
+ 0.2616134914256022
+ 0.26162061023738031
+ 0.26162772925147726
+ 0.26163484846790069
+ 0.26164196788665961
+ 0.26164908750776156
+ 0.26165620733121414
+ 0.26166332735702708
+ 0.26167044758520791
+ 0.26167756801576497
+ 0.26168468864870648
+ 0.26169180948404019
+ 0.26169893052177495
+ 0.26170605176191908
+ 0.26171317320448084
+ 0.26172029484946796
+ 0.26172741669688931
+ 0.26173453874675251
+ 0.26174166099906593
+ 0.2617487834538384
+ 0.26175590611107835
+ 0.26176302897079268
+ 0.26177015203299103
+ 0.26177727529768036
+ 0.26178439876487025
+ 0.26179152243456838
+ 0.26179864630678312
+ 0.26180577038152197
+ 0.26181289465879459
+ 0.26182001913860803
+ 0.26182714382097111
+ 0.26183426870589166
+ 0.2618413937933784
+ 0.26184851908343981
+ 0.26185564457608351
+ 0.26186277027131777
+ 0.26186989616915146
+ 0.26187702226959303
+ 0.26188414857264941
+ 0.26189127507832954
+ 0.26189840178664242
+ 0.26190552869759565
+ 0.26191265581119688
+ 0.26191978312745573
+ 0.26192691064637991
+ 0.26193403836797702
+ 0.26194116629225594
+ 0.26194829441922513
+ 0.26195542274889272
+ 0.2619625512812665
+ 0.2619696800163554
+ 0.26197680895416708
+ 0.26198393809470982
+ 0.26199106743799261
+ 0.26199819698402299
+ 0.26200532673281013
+ 0.26201245668436146
+ 0.26201958683868481
+ 0.2620267171957904
+ 0.26203384775568389
+ 0.2620409785183756
+ 0.26204810948387375
+ 0.26205524065218477
+ 0.26206237202331895
+ 0.2620695035972832
+ 0.26207663537408665
+ 0.26208376735373745
+ 0.26209089953624332
+ 0.26209803192161324
+ 0.26210516450985483
+ 0.26211229730097713
+ 0.26211943029498774
+ 0.26212656349189495
+ 0.26213369689170718
+ 0.26214083049443332
+ 0.26214796430008103
+ 0.26215509830865869
+ 0.26216223252017451
+ 0.26216936693463699
+ 0.26217650155205424
+ 0.26218363637243469
+ 0.26219077139578595
+ 0.26219790662211712
+ 0.26220504205143635
+ 0.2622121776837521
+ 0.26221931351907202
+ 0.26222644955740493
+ 0.26223358579875872
+ 0.26224072224314154
+ 0.26224785889056246
+ 0.26225499574102973
+ 0.26226213279455046
+ 0.26226927005113421
+ 0.26227640751078868
+ 0.2622835451735222
+ 0.26229068303934244
+ 0.26229782110825967
+ 0.26230495938027959
+ 0.26231209785541254
+ 0.26231923653366612
+ 0.26232637541504805
+ 0.26233351449956732
+ 0.26234065378723226
+ 0.26234779327805052
+ 0.26235493297203105
+ 0.26236207286918223
+ 0.2623692129695111
+ 0.26237635327302727
+ 0.26238349377973907
+ 0.26239063448965416
+ 0.26239777540278086
+ 0.26240491651912762
+ 0.26241205783870331
+ 0.26241919936151498
+ 0.26242634108757162
+ 0.26243348301688219
+ 0.26244062514945377
+ 0.26244776748529597
+ 0.26245491002441518
+ 0.26246205276682172
+ 0.2624691957125232
+ 0.26247633886152738
+ 0.26248348221384254
+ 0.26249062576947768
+ 0.26249776952844117
+ 0.26250491349074068
+ 0.26251205765638513
+ 0.26251920202538231
+ 0.26252634659774055
+ 0.26253349137346882
+ 0.26254063635257413
+ 0.26254778153506619
+ 0.26255492692095256
+ 0.26256207251024172
+ 0.26256921830294128
+ 0.26257636429906095
+ 0.26258351049860768
+ 0.26259065690159117
+ 0.26259780350801848
+ 0.2626049503178986
+ 0.26261209733123914
+ 0.26261924454804919
+ 0.26262639196833709
+ 0.2626335395921105
+ 0.2626406874193784
+ 0.26264783545014858
+ 0.26265498368442985
+ 0.26266213212223016
+ 0.26266928076355767
+ 0.2626764296084208
+ 0.26268357865682784
+ 0.26269072790878789
+ 0.26269787736430789
+ 0.26270502702339693
+ 0.26271217688606396
+ 0.26271932695231603
+ 0.2627264772221628
+ 0.26273362769561137
+ 0.26274077837267062
+ 0.26274792925334839
+ 0.26275508033765366
+ 0.26276223162559464
+ 0.26276938311717918
+ 0.26277653481241625
+ 0.26278368671131358
+ 0.2627908388138801
+ 0.26279799112012364
+ 0.26280514363005236
+ 0.26281229634367542
+ 0.26281944926100054
+ 0.26282660238203598
+ 0.26283375570678946
+ 0.26284090923527142
+ 0.26284806296748808
+ 0.2628552169034486
+ 0.26286237104316124
+ 0.26286952538663438
+ 0.26287667993387576
+ 0.26288383468489501
+ 0.26289098963969926
+ 0.26289814479829682
+ 0.2629053001606973
+ 0.26291245572690786
+ 0.26291961149693677
+ 0.26292676747079313
+ 0.26293392364848522
+ 0.2629410800300202
+ 0.26294823661540834
+ 0.26295539340465601
+ 0.26296255039777228
+ 0.26296970759476612
+ 0.26297686499564532
+ 0.26298402260041814
+ 0.26299118040909375
+ 0.26299833842167908
+ 0.26300549663818318
+ 0.26301265505861376
+ 0.26301981368298055
+ 0.2630269725112912
+ 0.26303413154355348
+ 0.26304129077977639
+ 0.26304845021996831
+ 0.2630556098641369
+ 0.26306276971229131
+ 0.26306992976443977
+ 0.26307709002058943
+ 0.26308425048075063
+ 0.2630914111449304
+ 0.26309857201313708
+ 0.26310573308537916
+ 0.26311289436166491
+ 0.26312005584200338
+ 0.26312721752640233
+ 0.26313437941487011
+ 0.26314154150741503
+ 0.26314870380404559
+ 0.26315586630477011
+ 0.26316302900959698
+ 0.26317019191853452
+ 0.26317735503159112
+ 0.2631845183487746
+ 0.26319168187009395
+ 0.26319884559555751
+ 0.26320600952517365
+ 0.26321317365895014
+ 0.26322033799689537
+ 0.26322750253901833
+ 0.26323466728532746
+ 0.26324183223583042
+ 0.26324899739053631
+ 0.26325616274945213
+ 0.26326332831258764
+ 0.26327049407995057
+ 0.2632776600515499
+ 0.26328482622739274
+ 0.26329199260748881
+ 0.26329915919184582
+ 0.26330632598047149
+ 0.26331349297337553
+ 0.26332066017056566
+ 0.26332782757204964
+ 0.26333499517783643
+ 0.26334216298793517
+ 0.2633493310023523
+ 0.26335649922109805
+ 0.26336366764417957
+ 0.26337083627160596
+ 0.26337800510338488
+ 0.26338517413952539
+ 0.26339234338003531
+ 0.26339951282492352
+ 0.26340668247419791
+ 0.2634138523278674
+ 0.26342102238593984
+ 0.2634281926484236
+ 0.263435363115327
+ 0.26344253378665922
+ 0.26344970466242718
+ 0.26345687574264071
+ 0.26346404702730747
+ 0.26347121851643529
+ 0.26347839021003389
+ 0.26348556210811086
+ 0.2634927342106741
+ 0.2634999065177332
+ 0.26350707902929532
+ 0.26351425174536885
+ 0.2635214246659634
+ 0.26352859779108623
+ 0.26353577112074633
+ 0.26354294465495209
+ 0.26355011839371123
+ 0.26355729233703212
+ 0.26356446648492393
+ 0.26357164083739432
+ 0.26357881539445238
+ 0.26358599015610584
+ 0.26359316512236314
+ 0.26360034029323259
+ 0.26360751566872337
+ 0.26361469124884318
+ 0.26362186703360041
+ 0.26362904302300283
+ 0.26363621921706076
+ 0.26364339561578076
+ 0.26365057221917176
+ 0.26365774902724154
+ 0.26366492603999991
+ 0.26367210325745455
+ 0.26367928067961321
+ 0.26368645830648496
+ 0.26369363613807822
+ 0.26370081417440072
+ 0.26370799241546156
+ 0.26371517086126917
+ 0.26372234951183127
+ 0.26372952836715624
+ 0.26373670742725319
+ 0.2637438866921305
+ 0.263751066161796
+ 0.26375824583625807
+ 0.26376542571552569
+ 0.2637726057996061
+ 0.26377978608850894
+ 0.26378696658224199
+ 0.26379414728081368
+ 0.26380132818423307
+ 0.26380850929250721
+ 0.2638156906056453
+ 0.26382287212365629
+ 0.2638300538465474
+ 0.26383723577432761
+ 0.26384441790700536
+ 0.26385160024458904
+ 0.26385878278708652
+ 0.26386596553450742
+ 0.26387314848685894
+ 0.26388033164414942
+ 0.26388751500638863
+ 0.26389469857358366
+ 0.26390188234574297
+ 0.26390906632287559
+ 0.26391625050498996
+ 0.26392343489209324
+ 0.26393061948419516
+ 0.26393780428130403
+ 0.26394498928342774
+ 0.26395217449057462
+ 0.26395935990275321
+ 0.26396654551997251
+ 0.26397373134223967
+ 0.26398091736956436
+ 0.26398810360195446
+ 0.2639952900394183
+ 0.26400247668196442
+ 0.26400966352960109
+ 0.26401685058233626
+ 0.26402403784017953
+ 0.26403122530313872
+ 0.2640384129712216
+ 0.26404560084443734
+ 0.26405278892279427
+ 0.26405997720630014
+ 0.26406716569496413
+ 0.26407435438879467
+ 0.26408154328780009
+ 0.2640887323919876
+ 0.26409592170136764
+ 0.26410311121594721
+ 0.26411030093573484
+ 0.26411749086073955
+ 0.26412468099096925
+ 0.26413187132643284
+ 0.26413906186713826
+ 0.26414625261309316
+ 0.26415344356430809
+ 0.26416063472078938
+ 0.26416782608254624
+ 0.26417501764958773
+ 0.26418220942192155
+ 0.26418940139955627
+ 0.26419659358249953
+ 0.26420378597076122
+ 0.26421097856434911
+ 0.26421817136327086
+ 0.26422536436753635
+ 0.26423255757715269
+ 0.26423975099212887
+ 0.2642469446124735
+ 0.26425413843819417
+ 0.26426133246930023
+ 0.26426852670579992
+ 0.26427572114770109
+ 0.26428291579501284
+ 0.26429011064774366
+ 0.26429730570590132
+ 0.2643045009694942
+ 0.26431169643853142
+ 0.2643188921130209
+ 0.26432608799297158
+ 0.2643332840783913
+ 0.26434048036928853
+ 0.26434767686567245
+ 0.26435487356755072
+ 0.26436207047493182
+ 0.26436926758782359
+ 0.26437646490623645
+ 0.2643836624301768
+ 0.26439086015965452
+ 0.2643980580946767
+ 0.26440525623525241
+ 0.26441245458139012
+ 0.26441965313309901
+ 0.26442685189038612
+ 0.26443405085325994
+ 0.2644412500217303
+ 0.26444844939580486
+ 0.26445564897549156
+ 0.26446284876079945
+ 0.26447004875173702
+ 0.26447724894831198
+ 0.26448444935053356
+ 0.26449164995840951
+ 0.2644988507719489
+ 0.26450605179116027
+ 0.26451325301605139
+ 0.2645204544466313
+ 0.2645276560829079
+ 0.26453485792488962
+ 0.26454205997258495
+ 0.264549262226003
+ 0.26455646468515215
+ 0.26456366735003961
+ 0.26457087022067521
+ 0.26457807329706667
+ 0.26458527657922248
+ 0.26459248006715114
+ 0.26459968376086107
+ 0.26460688766036133
+ 0.26461409176565925
+ 0.26462129607676382
+ 0.26462850059368354
+ 0.26463570531642749
+ 0.26464291024500292
+ 0.26465011537941879
+ 0.26465732071968312
+ 0.26466452626580556
+ 0.26467173201779393
+ 0.26467893797565606
+ 0.26468614413940039
+ 0.26469335050903675
+ 0.2647005570845723
+ 0.26470776386601613
+ 0.26471497085337609
+ 0.26472217804666132
+ 0.26472938544587954
+ 0.26473659305104064
+ 0.26474380086215099
+ 0.2647510088792206
+ 0.26475821710225705
+ 0.26476542553126903
+ 0.26477263416626617
+ 0.26477984300725499
+ 0.26478705205424469
+ 0.26479426130724432
+ 0.26480147076626182
+ 0.26480868043130557
+ 0.26481589030238467
+ 0.26482310037950646
+ 0.26483031066267987
+ 0.26483752115191411
+ 0.26484473184721707
+ 0.26485194274859652
+ 0.26485915385606218
+ 0.26486636516962203
+ 0.26487357668928374
+ 0.26488078841505719
+ 0.26488800034694954
+ 0.26489521248496989
+ 0.26490242482912679
+ 0.26490963737942869
+ 0.2649168501358834
+ 0.26492406309850008
+ 0.26493127626728713
+ 0.26493848964225253
+ 0.26494570322340599
+ 0.26495291701075402
+ 0.2649601310043071
+ 0.26496734520407239
+ 0.26497455961005845
+ 0.26498177422227426
+ 0.26498898904072776
+ 0.26499620406542818
+ 0.26500341929638316
+ 0.26501063473360192
+ 0.26501785037709169
+ 0.26502506622686295
+ 0.26503228228292214
+ 0.26503949854527903
+ 0.26504671501394156
+ 0.26505393168891817
+ 0.26506114857021734
+ 0.26506836565784825
+ 0.2650755829518181
+ 0.26508280045213661
+ 0.26509001815881172
+ 0.26509723607185187
+ 0.26510445419126483
+ 0.26511167251706119
+ 0.2651188910492468
+ 0.26512610978783208
+ 0.2651333287328248
+ 0.26514054788423297
+ 0.26514776724206629
+ 0.26515498680633193
+ 0.26516220657703909
+ 0.26516942655419629
+ 0.26517664673781138
+ 0.26518386712789405
+ 0.26519108772445099
+ 0.26519830852749254
+ 0.26520552953702592
+ 0.26521275075306039
+ 0.26521997217560433
+ 0.26522719380466564
+ 0.2652344156402528
+ 0.26524163768237496
+ 0.26524885993104069
+ 0.26525608238625781
+ 0.26526330504803541
+ 0.26527052791638139
+ 0.26527775099130424
+ 0.2652849742728125
+ 0.26529219776091534
+ 0.26529942145562119
+ 0.26530664535693732
+ 0.26531386946487351
+ 0.26532109377943836
+ 0.26532831830063885
+ 0.26533554302848439
+ 0.26534276796298395
+ 0.26534999310414553
+ 0.26535721845197757
+ 0.26536444400648862
+ 0.26537166976768706
+ 0.2653788957355816
+ 0.26538612191018063
+ 0.26539334829149269
+ 0.26540057487952623
+ 0.2654078016742899
+ 0.26541502867579209
+ 0.26542225588404134
+ 0.2654294832990462
+ 0.26543671092081456
+ 0.26544393874935612
+ 0.26545116678467823
+ 0.26545839502678997
+ 0.26546562347569924
+ 0.2654728521314158
+ 0.26548008099394693
+ 0.26548731006330117
+ 0.2654945393394883
+ 0.26550176882251619
+ 0.26550899851239196
+ 0.26551622840912625
+ 0.26552345851272557
+ 0.26553068882320036
+ 0.26553791934055787
+ 0.26554515006480661
+ 0.26555238099595574
+ 0.26555961213401374
+ 0.26556684347898796
+ 0.26557407503088876
+ 0.26558130678972275
+ 0.26558853875549976
+ 0.26559577092822767
+ 0.26560300330791564
+ 0.26561023589457156
+ 0.26561746868820391
+ 0.26562470168882196
+ 0.26563193489643278
+ 0.26563916831104639
+ 0.26564640193267053
+ 0.2656536357613144
+ 0.26566086979698528
+ 0.26566810403969232
+ 0.26567533848944463
+ 0.26568257314625027
+ 0.26568980801011688
+ 0.26569704308105446
+ 0.2657042783590709
+ 0.26571151384417463
+ 0.2657187495363742
+ 0.26572598543567821
+ 0.2657332215420945
+ 0.26574045785563288
+ 0.2657476943763013
+ 0.26575493110410758
+ 0.26576216803906094
+ 0.26576940518117054
+ 0.26577664253044297
+ 0.26578388008688875
+ 0.26579111785051507
+ 0.26579835582133182
+ 0.26580559399934617
+ 0.26581283238456671
+ 0.26582007097700322
+ 0.26582730977666302
+ 0.26583454878355456
+ 0.26584178799768776
+ 0.26584902741906979
+ 0.26585626704770932
+ 0.26586350688361537
+ 0.26587074692679652
+ 0.2658779871772608
+ 0.26588522763501721
+ 0.26589246830007379
+ 0.26589970917243894
+ 0.26590695025212202
+ 0.26591419153913148
+ 0.26592143303347521
+ 0.26592867473516174
+ 0.26593591664420035
+ 0.26594315876059887
+ 0.26595040108436652
+ 0.26595764361551116
+ 0.26596488635404131
+ 0.26597212929996561
+ 0.26597937245329328
+ 0.26598661581403205
+ 0.26599385938219061
+ 0.26600110315777747
+ 0.26600834714080185
+ 0.26601559133127095
+ 0.26602283572919466
+ 0.26603008033458087
+ 0.26603732514743877
+ 0.26604457016777566
+ 0.26605181539560063
+ 0.26605906083092301
+ 0.26606630647375001
+ 0.26607355232409141
+ 0.26608079838195525
+ 0.26608804464735003
+ 0.26609529112028352
+ 0.26610253780076576
+ 0.26610978468880397
+ 0.26611703178440788
+ 0.2661242790875849
+ 0.26613152659834483
+ 0.26613877431669425
+ 0.26614602224264439
+ 0.26615327037620173
+ 0.26616051871737562
+ 0.26616776726617386
+ 0.26617501602260574
+ 0.26618226498668041
+ 0.26618951415840514
+ 0.26619676353778926
+ 0.26620401312484043
+ 0.26621126291956809
+ 0.26621851292198073
+ 0.2662257631320869
+ 0.26623301354989448
+ 0.2662402641754128
+ 0.26624751500865029
+ 0.2662547660496149
+ 0.26626201729831589
+ 0.26626926875476115
+ 0.26627652041896055
+ 0.26628377229092071
+ 0.26629102437065211
+ 0.26629827665816141
+ 0.26630552915345845
+ 0.26631278185655177
+ 0.26632003476745009
+ 0.26632728788616045
+ 0.26633454121269362
+ 0.26634179474705594
+ 0.2663490484892575
+ 0.2663563024393068
+ 0.26636355659721178
+ 0.2663708109629816
+ 0.26637806553662358
+ 0.26638532031814754
+ 0.26639257530756216
+ 0.26639983050487526
+ 0.26640708591009549
+ 0.2664143415232314
+ 0.26642159734429216
+ 0.2664288533732857
+ 0.26643610961022068
+ 0.26644336605510632
+ 0.2664506227079505
+ 0.26645787956876177
+ 0.26646513663754867
+ 0.26647239391432059
+ 0.26647965139908536
+ 0.26648690909185085
+ 0.26649416699262768
+ 0.2665014251014225
+ 0.26650868341824441
+ 0.2665159419431028
+ 0.26652320067600482
+ 0.26653045961696042
+ 0.26653771876597754
+ 0.26654497812306471
+ 0.26655223768823055
+ 0.26655949746148361
+ 0.26656675744283248
+ 0.26657401763228578
+ 0.2665812780298521
+ 0.26658853863554
+ 0.26659579944935802
+ 0.26660306047131482
+ 0.26661032170141896
+ 0.26661758313967898
+ 0.26662484478610354
+ 0.26663210664070125
+ 0.26663936870348054
+ 0.26664663097445018
+ 0.26665389345361801
+ 0.26666115614099395
+ 0.26666841903658522
+ 0.26667568214040183
+ 0.26668294545245103
+ 0.26669020897274198
+ 0.26669747270128269
+ 0.26670473663808308
+ 0.26671200078315105
+ 0.26671926513649458
+ 0.26672652969812283
+ 0.26673379446804446
+ 0.26674105944626808
+ 0.26674832463280157
+ 0.26675559002765425
+ 0.26676285563083463
+ 0.26677012144235135
+ 0.26677738746221236
+ 0.26678465369042692
+ 0.26679192012700365
+ 0.26679918677195041
+ 0.26680645362527716
+ 0.26681372068699055
+ 0.26682098795710107
+ 0.26682825543561611
+ 0.26683552312254488
+ 0.26684279101789526
+ 0.26685005912167664
+ 0.26685732743389751
+ 0.26686459595456585
+ 0.26687186468369095
+ 0.26687913362128135
+ 0.26688640276734504
+ 0.26689367212189063
+ 0.26690094168492801
+ 0.26690821145646382
+ 0.26691548143650867
+ 0.26692275162506979
+ 0.26693002202215582
+ 0.26693729262777544
+ 0.2669445634419384
+ 0.26695183446465209
+ 0.26695910569592585
+ 0.26696637713576682
+ 0.26697364878418567
+ 0.26698092064118972
+ 0.26698819270678747
+ 0.26699546498098836
+ 0.26700273746380021
+ 0.26701001015523229
+ 0.26701728305529254
+ 0.26702455616398968
+ 0.26703182948133286
+ 0.26703910300733075
+ 0.26704637674199133
+ 0.26705365068532322
+ 0.2670609248373349
+ 0.26706819919803582
+ 0.26707547376743446
+ 0.26708274854553821
+ 0.26709002353235689
+ 0.26709729872789928
+ 0.2671045741321732
+ 0.26711184974518737
+ 0.26711912556695033
+ 0.26712640159747136
+ 0.2671336778367584
+ 0.26714095428482076
+ 0.26714823094166651
+ 0.26715550780730407
+ 0.26716278488174217
+ 0.26717006216499006
+ 0.26717733965705581
+ 0.26718461735794785
+ 0.26719189526767562
+ 0.26719917338624694
+ 0.26720645171367058
+ 0.26721373024995504
+ 0.2672210089951097
+ 0.2672282879491425
+ 0.26723556711206203
+ 0.26724284648387692
+ 0.26725012606459647
+ 0.26725740585422869
+ 0.26726468585278207
+ 0.26727196606026538
+ 0.26727924647668788
+ 0.26728652710205747
+ 0.2672938079363828
+ 0.26730108897967253
+ 0.26730837023193532
+ 0.26731565169318039
+ 0.26732293336341506
+ 0.26733021524264933
+ 0.26733749733089179
+ 0.26734477962814973
+ 0.26735206213443247
+ 0.26735934484974927
+ 0.26736662777410819
+ 0.26737391090751778
+ 0.26738119424998674
+ 0.26738847780152358
+ 0.26739576156213773
+ 0.26740304553183714
+ 0.26741032971063039
+ 0.26741761409852544
+ 0.26742489869553299
+ 0.26743218350165965
+ 0.26743946851691469
+ 0.2674467537413075
+ 0.26745403917484528
+ 0.26746132481753809
+ 0.26746861066939381
+ 0.26747589673042121
+ 0.26748318300062879
+ 0.26749046948002519
+ 0.26749775616861987
+ 0.26750504306642003
+ 0.26751233017343568
+ 0.26751961748967407
+ 0.26752690501514526
+ 0.26753419274985718
+ 0.26754148069381839
+ 0.26754876884703765
+ 0.26755605720952363
+ 0.26756334578128549
+ 0.26757063456233071
+ 0.26757792355266852
+ 0.26758521275230823
+ 0.26759250216125779
+ 0.26759979177952592
+ 0.26760708160712121
+ 0.26761437164405233
+ 0.26762166189032799
+ 0.26762895234595607
+ 0.26763624301094724
+ 0.26764353388530815
+ 0.26765082496904813
+ 0.26765811626217656
+ 0.26766540776470132
+ 0.26767269947663047
+ 0.26767999139797394
+ 0.26768728352873977
+ 0.26769457586893652
+ 0.26770186841857296
+ 0.2677091611776577
+ 0.26771645414619932
+ 0.26772374732420662
+ 0.26773104071168807
+ 0.26773833430865313
+ 0.26774562811510916
+ 0.267752922131066
+ 0.26776021635653102
+ 0.26776751079151428
+ 0.26777480543602378
+ 0.26778210029006805
+ 0.26778939535365587
+ 0.26779669062679579
+ 0.26780398610949663
+ 0.26781128180176689
+ 0.26781857770361528
+ 0.26782587381505119
+ 0.26783317013608254
+ 0.26784046666671729
+ 0.26784776340696492
+ 0.26785506035683465
+ 0.26786235751633447
+ 0.26786965488547304
+ 0.26787695246425908
+ 0.26788425025270124
+ 0.26789154825080885
+ 0.26789884645858919
+ 0.2679061448760523
+ 0.26791344350320545
+ 0.2679207423400588
+ 0.26792804138662019
+ 0.26793534064289837
+ 0.26794264010890195
+ 0.26794993978463966
+ 0.26795723967012081
+ 0.26796453976535273
+ 0.26797184007034541
+ 0.26797914058510625
+ 0.26798644130964511
+ 0.26799374224397016
+ 0.26800104338809
+ 0.26800834474201324
+ 0.26801564630574937
+ 0.26802294807930621
+ 0.26803025006269193
+ 0.26803755225591652
+ 0.26804485465898781
+ 0.26805215727191534
+ 0.26805946009470638
+ 0.26806676312737099
+ 0.26807406636991638
+ 0.26808136982235264
+ 0.26808867348468779
+ 0.26809597735693119
+ 0.26810328143909018
+ 0.26811058573117469
+ 0.26811789023319282
+ 0.26812519494515324
+ 0.26813249986706461
+ 0.26813980499893625
+ 0.26814711034077554
+ 0.26815441589259248
+ 0.26816172165439578
+ 0.26816902762619277
+ 0.26817633380799344
+ 0.26818364019980584
+ 0.26819094680163869
+ 0.26819825361350053
+ 0.26820556063540085
+ 0.2682128678673476
+ 0.2682201753093495
+ 0.26822748296141591
+ 0.26823479082355484
+ 0.26824209889577494
+ 0.26824940717808493
+ 0.26825671567049414
+ 0.26826402437301061
+ 0.26827133328564301
+ 0.26827864240840005
+ 0.26828595174129111
+ 0.26829326128432485
+ 0.26830057103750854
+ 0.26830788100085234
+ 0.26831519117436425
+ 0.26832250155805359
+ 0.26832981215192836
+ 0.26833712295599793
+ 0.26834443397026975
+ 0.26835174519475441
+ 0.26835905662945858
+ 0.26836636827439242
+ 0.26837368012956386
+ 0.26838099219498229
+ 0.2683883044706557
+ 0.26839561695659347
+ 0.26840292965280305
+ 0.26841024255929502
+ 0.26841755567607678
+ 0.26842486900315704
+ 0.26843218254054513
+ 0.26843949628824981
+ 0.26844681024627842
+ 0.26845412441464162
+ 0.26846143879334611
+ 0.268468753382402
+ 0.26847606818181796
+ 0.26848338319160192
+ 0.26849069841176337
+ 0.26849801384231103
+ 0.2685053294832529
+ 0.26851264533459762
+ 0.26851996139635453
+ 0.26852727766853185
+ 0.26853459415113951
+ 0.26854191084418416
+ 0.26854922774767659
+ 0.26855654486162411
+ 0.26856386218603551
+ 0.26857117972092004
+ 0.26857849746628654
+ 0.2685858154221436
+ 0.26859313358849934
+ 0.26860045196536309
+ 0.26860777055274299
+ 0.26861508935064826
+ 0.26862240835908774
+ 0.26862972757807002
+ 0.26863704700760321
+ 0.26864436664769675
+ 0.26865168649835924
+ 0.26865900655959885
+ 0.26866632683142483
+ 0.26867364731384591
+ 0.26868096800687086
+ 0.26868828891050844
+ 0.26869561002476655
+ 0.26870293134965467
+ 0.26871025288518152
+ 0.26871757463135576
+ 0.26872489658818549
+ 0.26873221875568071
+ 0.2687395411338489
+ 0.26874686372269929
+ 0.2687541865222407
+ 0.2687615095324819
+ 0.2687688327534315
+ 0.26877615618509826
+ 0.2687834798274909
+ 0.26879080368061742
+ 0.26879812774448802
+ 0.2688054520191106
+ 0.26881277650449331
+ 0.26882010120064614
+ 0.26882742610757654
+ 0.26883475122529449
+ 0.26884207655380749
+ 0.26884940209312547
+ 0.26885672784325659
+ 0.2688640538042088
+ 0.26887137997599225
+ 0.26887870635861499
+ 0.26888603295208574
+ 0.26889335975641321
+ 0.26890068677160611
+ 0.26890801399767389
+ 0.26891534143462387
+ 0.26892266908246615
+ 0.26892999694120884
+ 0.2689373250108606
+ 0.26894465329143014
+ 0.26895198178292695
+ 0.26895931048535832
+ 0.26896663939873505
+ 0.26897396852306321
+ 0.26898129785835412
+ 0.26898862740461532
+ 0.26899595716185543
+ 0.2690032871300832
+ 0.26901061730930803
+ 0.26901794769953802
+ 0.26902527830078254
+ 0.26903260911304894
+ 0.26903994013634813
+ 0.26904727137068668
+ 0.26905460281607468
+ 0.2690619344725203
+ 0.26906926634003281
+ 0.26907659841862097
+ 0.26908393070829301
+ 0.26909126320905746
+ 0.26909859592092389
+ 0.26910592884390028
+ 0.26911326197799595
+ 0.26912059532321919
+ 0.26912792887957926
+ 0.26913526264708498
+ 0.26914259662574436
+ 0.26914993081556682
+ 0.26915726521656047
+ 0.26916459982873464
+ 0.26917193465209821
+ 0.26917926968665912
+ 0.2691866049324268
+ 0.26919394038941014
+ 0.26920127605761773
+ 0.2692086119370577
+ 0.26921594802773946
+ 0.26922328432967174
+ 0.26923062084286264
+ 0.26923795756732222
+ 0.2692452945030579
+ 0.26925263165007918
+ 0.26925996900839466
+ 0.26926730657801257
+ 0.26927464435894283
+ 0.26928198235119305
+ 0.26928932055477317
+ 0.26929665896969129
+ 0.26930399759595552
+ 0.2693113364335753
+ 0.26931867548256005
+ 0.26932601474291712
+ 0.26933335421465598
+ 0.26934069389778609
+ 0.26934803379231481
+ 0.26935537389825226
+ 0.26936271421560648
+ 0.2693700547443863
+ 0.26937739548460038
+ 0.2693847364362576
+ 0.26939207759936662
+ 0.26939941897393688
+ 0.26940676055997587
+ 0.26941410235749363
+ 0.26942144436649818
+ 0.26942878658699909
+ 0.26943612901900366
+ 0.26944347166252208
+ 0.26945081451756309
+ 0.26945815758413405
+ 0.2694655008622458
+ 0.26947284435190505
+ 0.26948018805312185
+ 0.26948753196590447
+ 0.26949487609026218
+ 0.26950222042620314
+ 0.26950956497373679
+ 0.26951690973287118
+ 0.26952425470361513
+ 0.26953159988597869
+ 0.26953894527996936
+ 0.26954629088559579
+ 0.26955363670286753
+ 0.2695609827317933
+ 0.2695683289723812
+ 0.26957567542464
+ 0.26958302208857982
+ 0.26959036896420802
+ 0.26959771605153482
+ 0.26960506335056694
+ 0.2696124108613151
+ 0.26961975858378678
+ 0.26962710651799149
+ 0.26963445466393787
+ 0.26964180302163476
+ 0.26964915159109026
+ 0.26965650037231448
+ 0.26966384936531484
+ 0.26967119857010086
+ 0.26967854798668189
+ 0.26968589761506534
+ 0.2696932474552608
+ 0.2697005975072776
+ 0.26970794777112317
+ 0.26971529824680773
+ 0.26972264893433862
+ 0.26972999983372592
+ 0.26973735094497786
+ 0.26974470226810254
+ 0.26975205380310996
+ 0.26975940555000899
+ 0.26976675750880708
+ 0.26977410967951432
+ 0.26978146206213877
+ 0.2697888146566893
+ 0.26979616746317542
+ 0.26980352048160505
+ 0.26981087371198709
+ 0.2698182271543309
+ 0.26982558080864483
+ 0.26983293467493807
+ 0.26984028875321814
+ 0.26984764304349595
+ 0.26985499754577885
+ 0.26986235226007554
+ 0.26986970718639569
+ 0.26987706232474795
+ 0.26988441767514043
+ 0.26989177323758257
+ 0.26989912901208257
+ 0.26990648499864989
+ 0.26991384119729322
+ 0.2699211976080208
+ 0.26992855423084194
+ 0.26993591106576559
+ 0.26994326811280045
+ 0.2699506253719553
+ 0.2699579828432383
+ 0.26996534052665966
+ 0.26997269842222665
+ 0.26998005652994889
+ 0.26998741484983507
+ 0.26999477338189409
+ 0.27000213212613466
+ 0.27000949108256561
+ 0.27001685025119571
+ 0.27002420963203377
+ 0.27003156922508859
+ 0.27003892903036897
+ 0.27004628904788436
+ 0.27005364927764225
+ 0.27006100971965274
+ 0.27006837037392395
+ 0.2700757312404648
+ 0.27008309231928462
+ 0.27009045361039152
+ 0.27009781511379444
+ 0.27010517682950214
+ 0.27011253875752395
+ 0.27011990089786819
+ 0.27012726325054426
+ 0.27013462581556025
+ 0.27014198859292499
+ 0.27014935158264869
+ 0.27015671478473802
+ 0.27016407819920391
+ 0.27017144182605307
+ 0.2701788056652964
+ 0.27018616971694126
+ 0.27019353398099721
+ 0.27020089845747236
+ 0.27020826314637619
+ 0.27021562804771754
+ 0.27022299316150517
+ 0.2702303584877479
+ 0.27023772402645391
+ 0.27024508977763256
+ 0.27025245574129281
+ 0.27025982191744335
+ 0.27026718830609314
+ 0.27027455490725083
+ 0.2702819217209253
+ 0.27028928874712538
+ 0.27029665598585983
+ 0.2703040234371375
+ 0.27031139110096786
+ 0.27031875897735846
+ 0.27032612706631937
+ 0.27033349536785872
+ 0.27034086388198542
+ 0.27034823260870816
+ 0.27035560154803651
+ 0.27036297069997794
+ 0.2703703400645433
+ 0.27037770964173935
+ 0.27038507943157619
+ 0.27039244943406282
+ 0.27039981964920723
+ 0.27040719007701902
+ 0.27041456071750619
+ 0.27042193157067768
+ 0.27042930263654302
+ 0.27043667391511089
+ 0.27044404540639022
+ 0.27045141711038911
+ 0.27045878902711712
+ 0.27046616115658234
+ 0.27047353349879488
+ 0.27048090605376235
+ 0.27048827882149423
+ 0.2704956518019993
+ 0.27050302499528633
+ 0.27051039840136426
+ 0.27051777202024119
+ 0.27052514585192727
+ 0.27053251989643062
+ 0.27053989415376017
+ 0.27054726862392409
+ 0.27055464330693246
+ 0.27056201820279413
+ 0.27056939331151658
+ 0.27057676863311009
+ 0.27058414416758197
+ 0.27059151991494251
+ 0.27059889587520058
+ 0.27060627204836352
+ 0.2706136484344423
+ 0.27062102503344371
+ 0.27062840184537795
+ 0.27063577887025309
+ 0.27064315610807876
+ 0.27065053355886365
+ 0.2706579112226154
+ 0.27066528909934479
+ 0.27067266718905991
+ 0.27068004549176844
+ 0.27068742400748103
+ 0.27069480273620533
+ 0.27070218167795079
+ 0.27070956083272624
+ 0.27071694020054049
+ 0.27072431978140177
+ 0.27073169957532023
+ 0.27073907958230409
+ 0.27074645980236139
+ 0.27075384023550181
+ 0.27076122088173471
+ 0.2707686017410677
+ 0.27077598281351095
+ 0.27078336409907255
+ 0.27079074559776145
+ 0.27079812730958641
+ 0.27080550923455637
+ 0.27081289137268072
+ 0.27082027372396772
+ 0.2708276562884262
+ 0.27083503906606565
+ 0.27084242205689429
+ 0.27084980526092095
+ 0.27085718867815511
+ 0.27086457230860572
+ 0.27087195615228082
+ 0.27087934020918936
+ 0.27088672447934148
+ 0.27089410896274474
+ 0.27090149365940863
+ 0.27090887856934132
+ 0.27091626369255234
+ 0.27092364902905053
+ 0.27093103457884476
+ 0.27093842034194388
+ 0.27094580631835613
+ 0.27095319250809158
+ 0.27096057891115782
+ 0.27096796552756502
+ 0.2709753523573214
+ 0.27098273940043516
+ 0.27099012665691641
+ 0.27099751412677342
+ 0.27100490181001502
+ 0.2710122897066507
+ 0.27101967781668801
+ 0.27102706614013716
+ 0.27103445467700704
+ 0.27104184342730508
+ 0.27104923239104223
+ 0.27105662156822524
+ 0.27106401095886512
+ 0.27107140056296858
+ 0.27107879038054594
+ 0.27108618041160604
+ 0.27109357065615763
+ 0.27110096111420906
+ 0.27110835178576975
+ 0.27111574267084859
+ 0.27112313376945452
+ 0.27113052508159563
+ 0.27113791660728148
+ 0.27114530834652101
+ 0.27115270029932298
+ 0.27116009246569633
+ 0.27116748484565056
+ 0.27117487743919322
+ 0.27118227024633385
+ 0.27118966326708133
+ 0.2711970565014451
+ 0.27120444994943355
+ 0.27121184361105533
+ 0.2712192374863201
+ 0.27122663157523608
+ 0.27123402587781209
+ 0.27124142039405702
+ 0.27124881512398041
+ 0.27125621006759121
+ 0.27126360522489745
+ 0.27127100059590881
+ 0.27127839618063343
+ 0.27128579197908093
+ 0.27129318799126007
+ 0.27130058421717912
+ 0.27130798065684769
+ 0.27131537731027455
+ 0.27132277417746864
+ 0.27133017125843883
+ 0.27133756855319396
+ 0.27134496606174291
+ 0.27135236378409394
+ 0.27135976172025722
+ 0.27136715987024101
+ 0.27137455823405415
+ 0.27138195681170546
+ 0.27138935560320465
+ 0.27139675460855983
+ 0.27140415382777983
+ 0.27141155326087363
+ 0.27141895290785079
+ 0.2714263527687194
+ 0.27143375284348914
+ 0.27144115313216821
+ 0.27144855363476611
+ 0.27145595435129172
+ 0.27146335528175336
+ 0.27147075642616042
+ 0.27147815778452128
+ 0.27148555935684604
+ 0.27149296114314231
+ 0.27150036314341969
+ 0.27150776535768689
+ 0.27151516778595303
+ 0.27152257042822625
+ 0.27152997328451672
+ 0.27153737635483272
+ 0.27154477963918305
+ 0.27155218313757734
+ 0.27155958685002318
+ 0.27156699077653079
+ 0.27157439491710833
+ 0.27158179927176473
+ 0.2715892038405095
+ 0.27159660862335094
+ 0.27160401362029796
+ 0.2716114188313607
+ 0.27161882425654615
+ 0.27162622989586444
+ 0.27163363574932453
+ 0.27164104181693527
+ 0.27164844809870503
+ 0.2716558545946432
+ 0.27166326130475876
+ 0.27167066822906061
+ 0.27167807536755756
+ 0.271685482720258
+ 0.27169289028717208
+ 0.27170029806830737
+ 0.27170770606367406
+ 0.27171511427328049
+ 0.27172252269713543
+ 0.27172993133524787
+ 0.27173734018762741
+ 0.27174474925428216
+ 0.27175215853522117
+ 0.27175956803045326
+ 0.27176697773998798
+ 0.27177438766383433
+ 0.2717817978020004
+ 0.27178920815449525
+ 0.2717966187213291
+ 0.27180402950250943
+ 0.27181144049804584
+ 0.27181885170794662
+ 0.27182626313222202
+ 0.27183367477087955
+ 0.27184108662392886
+ 0.27184849869137878
+ 0.2718559109732383
+ 0.27186332346951625
+ 0.27187073618022156
+ 0.27187814910536384
+ 0.2718855622449507
+ 0.27189297559899234
+ 0.27190038916749698
+ 0.27190780295047356
+ 0.27191521694793164
+ 0.27192263115987958
+ 0.27193004558632683
+ 0.27193746022728166
+ 0.27194487508275367
+ 0.27195229015275113
+ 0.27195970543728432
+ 0.27196712093636005
+ 0.27197453664998933
+ 0.2719819525781797
+ 0.27198936872094143
+ 0.27199678507828212
+ 0.27200420165021133
+ 0.27201161843673799
+ 0.27201903543787098
+ 0.27202645265361924
+ 0.27203387008399249
+ 0.27204128772899816
+ 0.27204870558864652
+ 0.27205612366294585
+ 0.2720635419519058
+ 0.27207096045553447
+ 0.27207837917384103
+ 0.27208579810683481
+ 0.27209321725452423
+ 0.27210063661691952
+ 0.27210805619402761
+ 0.27211547598585872
+ 0.27212289599242179
+ 0.27213031621372574
+ 0.27213773664977958
+ 0.27214515730059213
+ 0.27215257816617172
+ 0.27215999924652856
+ 0.27216742054167026
+ 0.27217484205160714
+ 0.27218226377634741
+ 0.27218968571590002
+ 0.2721971078702739
+ 0.27220453023947855
+ 0.27221195282352245
+ 0.27221937562241433
+ 0.27222679863616395
+ 0.27223422186477947
+ 0.2722416453082705
+ 0.27224906896664597
+ 0.27225649283991427
+ 0.27226391692808483
+ 0.27227134123116603
+ 0.27227876574916809
+ 0.27228619048209862
+ 0.27229361542996727
+ 0.27230104059278293
+ 0.27230846597055453
+ 0.27231589156329172
+ 0.27232331737100202
+ 0.27233074339369584
+ 0.27233816963138135
+ 0.27234559608406755
+ 0.27235302275176332
+ 0.27236044963447836
+ 0.27236787673222085
+ 0.27237530404500038
+ 0.27238273157282533
+ 0.27239015931570532
+ 0.27239758727364921
+ 0.27240501544666523
+ 0.2724124438347631
+ 0.27241987243795174
+ 0.27242730125624015
+ 0.2724347302896365
+ 0.27244215953815115
+ 0.27244958900179228
+ 0.27245701868056826
+ 0.27246444857448937
+ 0.27247187868356393
+ 0.27247930900780143
+ 0.27248673954720953
+ 0.27249417030179862
+ 0.27250160127157685
+ 0.27250903245655395
+ 0.27251646385673878
+ 0.27252389547213901
+ 0.27253132730276552
+ 0.27253875934862609
+ 0.27254619160973015
+ 0.27255362408608674
+ 0.27256105677770415
+ 0.27256848968459274
+ 0.27257592280675996
+ 0.2725833561442163
+ 0.2725907896969692
+ 0.27259822346502904
+ 0.27260565744840343
+ 0.2726130916471034
+ 0.27262052606113574
+ 0.27262796069051093
+ 0.27263539553523708
+ 0.27264283059532335
+ 0.27265026587077923
+ 0.27265770136161366
+ 0.27266513706783507
+ 0.27267257298945297
+ 0.27268000912647633
+ 0.27268744547891344
+ 0.27269488204677467
+ 0.27270231883006762
+ 0.27270975582880191
+ 0.27271719304298647
+ 0.27272463047263035
+ 0.27273206811774309
+ 0.27273950597833302
+ 0.27274694405440847
+ 0.27275438234598037
+ 0.27276182085305573
+ 0.2727692595756448
+ 0.27277669851375652
+ 0.27278413766739934
+ 0.27279157703658202
+ 0.27279901662131512
+ 0.272806456421606
+ 0.27281389643746451
+ 0.2728213366688988
+ 0.2728287771159193
+ 0.27283621777853356
+ 0.27284365865675198
+ 0.27285109975058208
+ 0.27285854106003427
+ 0.2728659825851168
+ 0.27287342432583866
+ 0.27288086628220881
+ 0.27288830845423689
+ 0.27289575084193118
+ 0.27290319344530145
+ 0.27291063626435591
+ 0.27291807929910422
+ 0.27292552254955466
+ 0.27293296601571693
+ 0.27294040969759992
+ 0.27294785359521279
+ 0.27295529770856364
+ 0.27296274203766357
+ 0.27297018658251881
+ 0.27297763134314051
+ 0.27298507631953678
+ 0.27299252151171677
+ 0.27299996691968931
+ 0.27300741254346417
+ 0.2730148583830489
+ 0.2730223044384546
+ 0.27302975070968888
+ 0.27303719719676062
+ 0.27304464389968025
+ 0.27305209081845477
+ 0.27305953795309507
+ 0.27306698530360884
+ 0.27307443287000649
+ 0.27308188065229561
+ 0.27308932865048574
+ 0.27309677686458605
+ 0.2731042252946061
+ 0.27311167394055352
+ 0.27311912280243872
+ 0.27312657188026995
+ 0.27313402117405627
+ 0.27314147068380729
+ 0.27314892040953132
+ 0.27315637035123808
+ 0.27316382050893578
+ 0.27317127088263493
+ 0.27317872147234307
+ 0.27318617227806907
+ 0.2731936232998235
+ 0.27320107453761394
+ 0.27320852599145068
+ 0.27321597766134131
+ 0.27322342954729634
+ 0.2732308816493233
+ 0.27323833396743258
+ 0.27324578650163311
+ 0.27325323925193334
+ 0.27326069221834215
+ 0.27326814540086858
+ 0.27327559879952301
+ 0.27328305241431239
+ 0.2732905062452477
+ 0.27329796029233666
+ 0.27330541455558893
+ 0.27331286903501345
+ 0.27332032373061932
+ 0.27332777864241548
+ 0.27333523377041091
+ 0.27334268911461468
+ 0.27335014467503577
+ 0.27335760045168378
+ 0.27336505644456716
+ 0.27337251265369489
+ 0.27337996907907663
+ 0.27338742572072061
+ 0.27339488257863676
+ 0.27340233965283317
+ 0.27340979694331957
+ 0.27341725445010506
+ 0.27342471217319858
+ 0.27343217011260923
+ 0.27343962826834589
+ 0.27344708664041761
+ 0.27345454522883345
+ 0.27346200403360238
+ 0.27346946305473341
+ 0.27347692229223625
+ 0.27348438174611917
+ 0.27349184141639127
+ 0.27349930130306216
+ 0.273506761406141
+ 0.27351422172563594
+ 0.27352168226155676
+ 0.27352914301391251
+ 0.27353660398271212
+ 0.27354406516796403
+ 0.27355152656967852
+ 0.27355898818786323
+ 0.27356645002252866
+ 0.27357391207368309
+ 0.2735813743413355
+ 0.2735888368254949
+ 0.27359629952617109
+ 0.27360376244337226
+ 0.27361122557710826
+ 0.27361868892738805
+ 0.27362615249421995
+ 0.27363361627761296
+ 0.2736410802775775
+ 0.2736485444941219
+ 0.27365600892725456
+ 0.27366347357698512
+ 0.27367093844332258
+ 0.2736784035262767
+ 0.27368586882585583
+ 0.27369333434206894
+ 0.27370080007492509
+ 0.27370826602443399
+ 0.27371573219060397
+ 0.27372319857344474
+ 0.27373066517296535
+ 0.27373813198917407
+ 0.27374559902208073
+ 0.27375306627169432
+ 0.27376053373802312
+ 0.2737680014210776
+ 0.27377546932086599
+ 0.27378293743739751
+ 0.27379040577068031
+ 0.27379787432072494
+ 0.27380534308754034
+ 0.273812812071135
+ 0.2738202812715177
+ 0.27382775068869836
+ 0.27383522032268598
+ 0.27384269017348883
+ 0.27385016024111669
+ 0.27385763052557865
+ 0.27386510102688294
+ 0.27387257174504004
+ 0.27388004268005833
+ 0.27388751383194676
+ 0.2738949852007137
+ 0.27390245678636965
+ 0.27390992858892349
+ 0.27391740060838377
+ 0.27392487284475936
+ 0.27393234529806004
+ 0.2739398179682942
+ 0.2739472908554722
+ 0.27395476395960111
+ 0.27396223728069197
+ 0.27396971081875304
+ 0.27397718457379283
+ 0.27398465854582171
+ 0.27399213273484729
+ 0.27399960714088079
+ 0.27400708176392841
+ 0.27401455660400192
+ 0.27402203166110911
+ 0.27402950693525885
+ 0.27403698242646107
+ 0.27404445813472472
+ 0.27405193406005818
+ 0.27405941020247115
+ 0.27406688656197264
+ 0.27407436313857114
+ 0.27408183993227703
+ 0.27408931694309857
+ 0.27409679417104493
+ 0.27410427161612511
+ 0.27411174927834814
+ 0.27411922715772385
+ 0.27412670525426047
+ 0.27413418356796715
+ 0.27414166209885427
+ 0.27414914084692954
+ 0.27415661981220202
+ 0.27416409899468208
+ 0.27417157839437745
+ 0.27417905801129788
+ 0.2741865378454531
+ 0.27419401789685083
+ 0.27420149816550138
+ 0.27420897865141319
+ 0.27421645935459543
+ 0.27422394027505764
+ 0.27423142141280765
+ 0.27423890276785651
+ 0.27424638434021192
+ 0.27425386612988373
+ 0.2742613481368808
+ 0.2742688303612123
+ 0.27427631280288667
+ 0.27428379546191423
+ 0.27429127833830269
+ 0.2742987614320625
+ 0.27430624474320214
+ 0.27431372827173123
+ 0.27432121201765747
+ 0.27432869598099202
+ 0.2743361801617426
+ 0.27434366455991821
+ 0.27435114917552866
+ 0.27435863400858296
+ 0.2743661190590902
+ 0.27437360432705948
+ 0.2743810898124992
+ 0.27438857551541967
+ 0.2743960614358294
+ 0.27440354757373742
+ 0.2744110339291535
+ 0.27441852050208598
+ 0.27442600729254396
+ 0.27443349430053726
+ 0.27444098152607477
+ 0.27444846896916514
+ 0.27445595662981787
+ 0.27446344450804283
+ 0.27447093260384714
+ 0.27447842091724173
+ 0.27448590944823514
+ 0.27449339819683705
+ 0.27450088716305526
+ 0.27450837634690006
+ 0.27451586574837994
+ 0.27452335536750472
+ 0.27453084520428339
+ 0.27453833525872434
+ 0.2745458255308374
+ 0.27455331602063088
+ 0.27456080672811528
+ 0.27456829765329832
+ 0.27457578879619043
+ 0.27458328015679934
+ 0.27459077173513541
+ 0.2745982635312072
+ 0.27460575554502431
+ 0.27461324777659529
+ 0.2746207402259298
+ 0.27462823289303623
+ 0.27463572577792444
+ 0.27464321888060278
+ 0.27465071220108167
+ 0.27465820573936961
+ 0.27466569949547492
+ 0.27467319346940799
+ 0.27468068766117743
+ 0.27468818207079215
+ 0.27469567669826123
+ 0.27470317154359458
+ 0.27471066660680049
+ 0.2747181618878895
+ 0.27472565738686855
+ 0.27473315310374891
+ 0.27474064903853818
+ 0.27474814519124618
+ 0.27475564156188204
+ 0.27476313815045544
+ 0.27477063495697429
+ 0.27477813198144885
+ 0.27478562922388755
+ 0.27479312668430028
+ 0.2748006243626947
+ 0.27480812225908208
+ 0.2748156203734699
+ 0.27482311870586812
+ 0.27483061725628583
+ 0.2748381160247314
+ 0.27484561501121529
+ 0.27485311421574593
+ 0.27486061363833236
+ 0.27486811327898381
+ 0.27487561313770997
+ 0.2748831132145193
+ 0.27489061350942079
+ 0.27489811402242509
+ 0.27490561475353908
+ 0.27491311570277405
+ 0.27492061687013764
+ 0.27492811825563968
+ 0.27493561985928994
+ 0.27494312168109614
+ 0.27495062372106877
+ 0.2749581259792156
+ 0.27496562845554701
+ 0.27497313115007227
+ 0.2749806340627996
+ 0.27498813719373894
+ 0.27499564054289866
+ 0.27500314411028859
+ 0.27501064789591773
+ 0.27501815189979528
+ 0.27502565612193036
+ 0.27503316056233207
+ 0.27504066522100945
+ 0.27504817009797239
+ 0.27505567519322921
+ 0.27506318050678913
+ 0.27507068603866192
+ 0.27507819178885662
+ 0.27508569775738173
+ 0.27509320394424702
+ 0.27510071034946093
+ 0.27510821697303395
+ 0.27511572381497446
+ 0.27512323087529234
+ 0.27513073815399525
+ 0.27513824565109307
+ 0.27514575336659558
+ 0.27515326130051188
+ 0.2751607694528504
+ 0.27516827782362091
+ 0.27517578641283263
+ 0.2751832952204939
+ 0.27519080424661457
+ 0.27519831349120438
+ 0.27520582295427121
+ 0.27521333263582543
+ 0.27522084253587548
+ 0.27522835265443057
+ 0.27523586299150044
+ 0.27524337354709355
+ 0.27525088432121975
+ 0.27525839531388802
+ 0.27526590652510763
+ 0.27527341795488697
+ 0.27528092960323652
+ 0.27528844147016412
+ 0.2752959535556801
+ 0.27530346585979304
+ 0.27531097838251201
+ 0.27531849112384688
+ 0.27532600408380603
+ 0.2753335172623993
+ 0.27534103065963572
+ 0.27534854427552397
+ 0.27535605811007369
+ 0.27536357216329466
+ 0.27537108643519476
+ 0.27537860092578442
+ 0.27538611563507143
+ 0.27539363056306626
+ 0.27540114570977808
+ 0.27540866107521533
+ 0.27541617665938717
+ 0.27542369246230397
+ 0.27543120848397301
+ 0.275438724724406
+ 0.27544624118361016
+ 0.27545375786159521
+ 0.27546127475837029
+ 0.27546879187394457
+ 0.27547630920832789
+ 0.27548382676152866
+ 0.27549134453355673
+ 0.27549886252442052
+ 0.27550638073412986
+ 0.27551389916269398
+ 0.2755214178101219
+ 0.27552893667642214
+ 0.27553645576160518
+ 0.27554397506567951
+ 0.2755514945886543
+ 0.27555901433053853
+ 0.27556653429134226
+ 0.27557405447107447
+ 0.27558157486974366
+ 0.27558909548735971
+ 0.27559661632393101
+ 0.27560413737946809
+ 0.2756116586539788
+ 0.2756191801474735
+ 0.27562670185996085
+ 0.27563422379144981
+ 0.27564174594194968
+ 0.27564926831147024
+ 0.27565679090001993
+ 0.27566431370760924
+ 0.27567183673424528
+ 0.27567935997993936
+ 0.27568688344469922
+ 0.27569440712853521
+ 0.27570193103145607
+ 0.27570945515347067
+ 0.2757169794945884
+ 0.27572450405481902
+ 0.27573202883417092
+ 0.27573955383265408
+ 0.27574707905027679
+ 0.27575460448704908
+ 0.27576213014298062
+ 0.27576965601807935
+ 0.27577718211235508
+ 0.27578470842581682
+ 0.2757922349584746
+ 0.27579976171033677
+ 0.27580728868141258
+ 0.2758148158717118
+ 0.27582234328124361
+ 0.27582987091001648
+ 0.27583739875804025
+ 0.27584492682532419
+ 0.27585245511187728
+ 0.2758599836177088
+ 0.27586751234282852
+ 0.27587504128724505
+ 0.27588257045096748
+ 0.27589009983400486
+ 0.27589762943636786
+ 0.2759051592580643
+ 0.27591268929910323
+ 0.27592021955949531
+ 0.27592775003924824
+ 0.27593528073837259
+ 0.27594281165687679
+ 0.27595034279477004
+ 0.2759578741520623
+ 0.27596540572876194
+ 0.27597293752487811
+ 0.27598046954042144
+ 0.27598800177539967
+ 0.2759955342298227
+ 0.27600306690369963
+ 0.27601059979703968
+ 0.27601813290985194
+ 0.27602566624214575
+ 0.27603319979393082
+ 0.27604073356521575
+ 0.27604826755601025
+ 0.27605580176632366
+ 0.27606333619616436
+ 0.2760708708455416
+ 0.27607840571446585
+ 0.27608594080294563
+ 0.27609347611099083
+ 0.27610101163860923
+ 0.27610854738581136
+ 0.27611608335260646
+ 0.27612361953900227
+ 0.27613115594501009
+ 0.27613869257063767
+ 0.27614622941589489
+ 0.27615376648079099
+ 0.27616130376533504
+ 0.27616884126953634
+ 0.27617637899340469
+ 0.27618391693694855
+ 0.27619145510017723
+ 0.27619899348309979
+ 0.27620653208572682
+ 0.27621407090806616
+ 0.27622160995012768
+ 0.27622914921192049
+ 0.27623668869345386
+ 0.27624422839473767
+ 0.27625176831577969
+ 0.27625930845659047
+ 0.27626684881717856
+ 0.27627438939755378
+ 0.27628193019772534
+ 0.27628947121770181
+ 0.27629701245749294
+ 0.27630455391710801
+ 0.27631209559655617
+ 0.27631963749584737
+ 0.27632717961498998
+ 0.27633472195399328
+ 0.27634226451286653
+ 0.27634980729161951
+ 0.27635735029026137
+ 0.27636489350880145
+ 0.27637243694724811
+ 0.27637998060561203
+ 0.27638752448390097
+ 0.27639506858212554
+ 0.27640261290029416
+ 0.2764101574384169
+ 0.27641770219650202
+ 0.27642524717455963
+ 0.2764327923725981
+ 0.27644033779062743
+ 0.27644788342865667
+ 0.27645542928669586
+ 0.27646297536475273
+ 0.27647052166283714
+ 0.2764780681809591
+ 0.27648561491912704
+ 0.27649316187735085
+ 0.27650070905563978
+ 0.27650825645400229
+ 0.2765158040724483
+ 0.27652335191098704
+ 0.27653089996962765
+ 0.27653844824838003
+ 0.27654599674725272
+ 0.27655354546625432
+ 0.27656109440539595
+ 0.27656864356468558
+ 0.27657619294413294
+ 0.27658374254374746
+ 0.27659129236353747
+ 0.27659884240351362
+ 0.27660639266368442
+ 0.27661394314405913
+ 0.2766214938446469
+ 0.27662904476545763
+ 0.27663659590649992
+ 0.27664414726778352
+ 0.27665169884931784
+ 0.27665925065111197
+ 0.27666680267317439
+ 0.27667435491551579
+ 0.27668190737814469
+ 0.27668946006107026
+ 0.27669701296430238
+ 0.27670456608784966
+ 0.27671211943172197
+ 0.27671967299592781
+ 0.27672722678047779
+ 0.27673478078537977
+ 0.2767423350106436
+ 0.27674988945627921
+ 0.27675744412229453
+ 0.27676499900870077
+ 0.27677255411550505
+ 0.27678010944271869
+ 0.27678766499034951
+ 0.27679522075840679
+ 0.27680277674690107
+ 0.27681033295584095
+ 0.2768178893852356
+ 0.27682544603509429
+ 0.27683300290542617
+ 0.27684055999624119
+ 0.2768481173075486
+ 0.27685567483935691
+ 0.276863232591676
+ 0.27687079056451519
+ 0.27687834875788359
+ 0.27688590717179051
+ 0.27689346580624524
+ 0.27690102466125682
+ 0.2769085837368353
+ 0.27691614303298995
+ 0.27692370254972914
+ 0.27693126228706294
+ 0.27693882224500055
+ 0.27694638242355113
+ 0.27695394282272401
+ 0.27696150344252835
+ 0.27696906428297408
+ 0.27697662534406975
+ 0.27698418662582469
+ 0.27699174812824934
+ 0.27699930985135168
+ 0.27700687179514155
+ 0.27701443395962827
+ 0.27702199634482105
+ 0.27702955895072912
+ 0.27703712177736167
+ 0.27704468482472872
+ 0.2770522480928394
+ 0.27705981158170229
+ 0.27706737529132741
+ 0.27707493922172394
+ 0.27708250337290102
+ 0.27709006774486805
+ 0.27709763233763418
+ 0.2771051971512094
+ 0.27711276218560216
+ 0.27712032744082249
+ 0.27712789291687895
+ 0.2771354586137813
+ 0.27714302453153905
+ 0.27715059067016123
+ 0.27715815702965785
+ 0.27716572361003677
+ 0.27717329041130867
+ 0.27718085743348209
+ 0.27718842467656685
+ 0.27719599214057167
+ 0.27720355982550704
+ 0.2772111277313809
+ 0.27721869585820325
+ 0.27722626420598384
+ 0.2772338327747314
+ 0.27724140156445509
+ 0.27724897057516423
+ 0.27725653980686937
+ 0.27726410925957778
+ 0.27727167893330074
+ 0.27727924882804678
+ 0.27728681894382518
+ 0.27729438928064526
+ 0.27730195983851608
+ 0.27730953061744784
+ 0.27731710161744888
+ 0.2773246728385293
+ 0.2773322442806983
+ 0.27733981594396445
+ 0.27734738782833834
+ 0.27735495993382864
+ 0.27736253226044449
+ 0.27737010480819518
+ 0.27737767757709075
+ 0.2773852505671397
+ 0.27739282377835189
+ 0.27740039721073673
+ 0.27740797086430274
+ 0.27741554473906055
+ 0.27742311883501874
+ 0.27743069315218655
+ 0.27743826769057395
+ 0.27744584245018955
+ 0.27745341743104318
+ 0.27746099263314355
+ 0.27746856805650055
+ 0.27747614370112411
+ 0.27748371956702222
+ 0.27749129565420477
+ 0.27749887196268169
+ 0.27750644849246225
+ 0.27751402524355506
+ 0.27752160221596939
+ 0.27752917940971589
+ 0.27753675682480239
+ 0.27754433446123961
+ 0.27755191231903542
+ 0.27755949039820044
+ 0.27756706869874326
+ 0.27757464722067388
+ 0.27758222596400084
+ 0.27758980492873414
+ 0.27759738411488299
+ 0.27760496352245678
+ 0.27761254315146466
+ 0.27762012300191591
+ 0.27762770307382056
+ 0.27763528336718724
+ 0.2776428638820258
+ 0.27765044461834487
+ 0.2776580255761551
+ 0.27766560675546442
+ 0.27767318815628272
+ 0.27768076977861944
+ 0.27768835162248429
+ 0.27769593368788609
+ 0.27770351597483472
+ 0.2777110984833388
+ 0.27771868121340831
+ 0.27772626416505314
+ 0.27773384733828121
+ 0.27774143073310259
+ 0.27774901434952648
+ 0.27775659818756282
+ 0.27776418224722099
+ 0.27777176652850954
+ 0.27777935103143769
+ 0.27778693575601621
+ 0.27779452070225369
+ 0.2778021058701593
+ 0.27780969125974248
+ 0.27781727687101238
+ 0.27782486270397905
+ 0.27783244875865182
+ 0.27784003503503918
+ 0.27784762153315112
+ 0.27785520825299703
+ 0.27786279519458612
+ 0.27787038235792838
+ 0.27787796974303242
+ 0.27788555734990755
+ 0.27789314517856306
+ 0.2779007332290096
+ 0.27790832150125505
+ 0.27791590999531013
+ 0.27792349871118277
+ 0.27793108764888363
+ 0.27793867680842133
+ 0.27794626618980506
+ 0.27795385579304493
+ 0.27796144561815017
+ 0.27796903566512943
+ 0.27797662593399336
+ 0.27798421642474985
+ 0.27799180713740962
+ 0.27799939807198132
+ 0.27800698922847417
+ 0.27801458060689815
+ 0.27802217220726261
+ 0.27802976402957691
+ 0.27803735607384955
+ 0.27804494834009119
+ 0.27805254082831055
+ 0.27806013353851688
+ 0.2780677264707202
+ 0.2780753196249291
+ 0.27808291300115284
+ 0.27809050659940215
+ 0.27809810041968563
+ 0.278105694462012
+ 0.27811328872639179
+ 0.27812088321283374
+ 0.27812847792134771
+ 0.27813607285194242
+ 0.27814366800462786
+ 0.27815126337941332
+ 0.2781588589763081
+ 0.27816645479532154
+ 0.2781740508364629
+ 0.27818164709974152
+ 0.27818924358516744
+ 0.27819684029274988
+ 0.27820443722249755
+ 0.27821203437442038
+ 0.27821963174852776
+ 0.27822722934482891
+ 0.27823482716333325
+ 0.27824242520405074
+ 0.27825002346698996
+ 0.27825762195216097
+ 0.27826522065957232
+ 0.27827281958923478
+ 0.27828041874115633
+ 0.27828801811534754
+ 0.27829561771181716
+ 0.27830321753057441
+ 0.27831081757162934
+ 0.27831841783499062
+ 0.27832601832066817
+ 0.27833361902867138
+ 0.27834121995900951
+ 0.27834882111169196
+ 0.27835642248672876
+ 0.27836402408412836
+ 0.2783716259039003
+ 0.27837922794605446
+ 0.27838683021060018
+ 0.27839443269754682
+ 0.27840203540690373
+ 0.27840963833868015
+ 0.27841724149288549
+ 0.27842484486952973
+ 0.2784324484686222
+ 0.27844005229017144
+ 0.27844765633418767
+ 0.27845526060068004
+ 0.2784628650896579
+ 0.27847046980113138
+ 0.27847807473510838
+ 0.27848567989159961
+ 0.27849328527061434
+ 0.27850089087216195
+ 0.27850849669625105
+ 0.2785161027428924
+ 0.27852370901209395
+ 0.27853131550386639
+ 0.27853892221821902
+ 0.27854652915516054
+ 0.27855413631470027
+ 0.27856174369684894
+ 0.27856935130161442
+ 0.27857695912900687
+ 0.27858456717903624
+ 0.27859217545171111
+ 0.27859978394704166
+ 0.27860739266503642
+ 0.27861500160570474
+ 0.27862261076905742
+ 0.27863022015510303
+ 0.27863782976385093
+ 0.27864543959531046
+ 0.27865304964949167
+ 0.27866065992640254
+ 0.27866827042605441
+ 0.27867588114845593
+ 0.27868349209361587
+ 0.27869110326154484
+ 0.27869871465225149
+ 0.27870632626574532
+ 0.2787139381020361
+ 0.27872155016113276
+ 0.27872916244304513
+ 0.27873677494778265
+ 0.27874438767535398
+ 0.27875200062576982
+ 0.27875961379903952
+ 0.27876722719517111
+ 0.2787748408141752
+ 0.27878245465606122
+ 0.27879006872083917
+ 0.27879768300851643
+ 0.27880529751910427
+ 0.2788129122526114
+ 0.27882052720904726
+ 0.2788281423884218
+ 0.27883575779074438
+ 0.27884337341602378
+ 0.27885098926426982
+ 0.27885860533549278
+ 0.27886622162970043
+ 0.27887383814690364
+ 0.27888145488711102
+ 0.27888907185033268
+ 0.27889668903657716
+ 0.27890430644585534
+ 0.27891192407817517
+ 0.27891954193354729
+ 0.2789271600119797
+ 0.27893477831348396
+ 0.27894239683806787
+ 0.27895001558574095
+ 0.27895763455651312
+ 0.27896525375039449
+ 0.27897287316739311
+ 0.27898049280751891
+ 0.278988112670782
+ 0.27899573275719175
+ 0.27900335306675678
+ 0.27901097359948723
+ 0.27901859435539172
+ 0.27902621533448102
+ 0.27903383653676372
+ 0.27904145796225005
+ 0.27904907961094849
+ 0.27905670148286854
+ 0.27906432357802025
+ 0.27907194589641354
+ 0.27907956843805659
+ 0.27908719120295938
+ 0.27909481419113191
+ 0.27910243740258289
+ 0.27911006083732248
+ 0.27911768449535923
+ 0.27912530837670396
+ 0.27913293248136462
+ 0.27914055680935129
+ 0.27914818136067404
+ 0.27915580613534163
+ 0.27916343113336395
+ 0.27917105635475048
+ 0.27917868179950994
+ 0.27918630746765233
+ 0.2791939333591878
+ 0.27920155947412489
+ 0.27920918581247306
+ 0.2792168123742424
+ 0.27922443915944162
+ 0.27923206616808138
+ 0.27923969340016974
+ 0.27924732085571674
+ 0.27925494853473248
+ 0.27926257643722568
+ 0.27927020456320634
+ 0.27927783291268315
+ 0.27928546148566624
+ 0.27929309028216504
+ 0.27930071930218875
+ 0.27930834854574693
+ 0.27931597801285024
+ 0.27932360770350606
+ 0.2793312376177251
+ 0.27933886775551681
+ 0.27934649811689044
+ 0.27935412870185555
+ 0.27936175951042147
+ 0.27936939054259818
+ 0.27937702179839446
+ 0.27938465327782047
+ 0.27939228498088475
+ 0.27939991690759813
+ 0.27940754905796938
+ 0.27941518143200778
+ 0.2794228140297228
+ 0.27943044685112445
+ 0.27943807989622216
+ 0.27944571316502537
+ 0.27945334665754273
+ 0.27946098037378497
+ 0.27946861431376085
+ 0.27947624847747982
+ 0.27948388286495185
+ 0.27949151747618572
+ 0.27949915231119216
+ 0.27950678736997925
+ 0.27951442265255766
+ 0.27952205815893555
+ 0.27952969388912424
+ 0.27953732984313118
+ 0.27954496602096779
+ 0.27955260242264207
+ 0.27956023904816479
+ 0.27956787589754473
+ 0.27957551297079047
+ 0.27958315026791364
+ 0.27959078778892216
+ 0.27959842553382619
+ 0.27960606350263434
+ 0.27961370169535682
+ 0.27962134011200368
+ 0.27962897875258358
+ 0.27963661761710668
+ 0.27964425670558163
+ 0.27965189601801865
+ 0.27965953555442702
+ 0.27966717531481622
+ 0.27967481529919558
+ 0.27968245550757453
+ 0.2796900959399633
+ 0.27969773659637109
+ 0.27970537747680746
+ 0.27971301858128106
+ 0.27972065990980205
+ 0.27972830146238042
+ 0.27973594323902506
+ 0.27974358523974585
+ 0.27975122746455172
+ 0.27975886991345267
+ 0.27976651258645818
+ 0.27977415548357754
+ 0.27978179860482094
+ 0.27978944195019712
+ 0.27979708551971616
+ 0.27980472931338679
+ 0.27981237333121906
+ 0.27982001757322245
+ 0.27982766203940707
+ 0.27983530672978157
+ 0.27984295164435558
+ 0.27985059678313889
+ 0.27985824214614047
+ 0.27986588773337107
+ 0.27987353354483863
+ 0.27988117958055408
+ 0.2798888258405261
+ 0.27989647232476478
+ 0.27990411903327955
+ 0.27991176596607914
+ 0.2799194131231737
+ 0.27992706050457261
+ 0.27993470811028603
+ 0.27994235594032263
+ 0.27995000399469261
+ 0.27995765227340463
+ 0.27996530077646881
+ 0.27997294950389462
+ 0.27998059845569145
+ 0.27998824763187019
+ 0.27999589703243805
+ 0.28000354665740596
+ 0.28001119650678263
+ 0.2800188465805788
+ 0.28002649687880332
+ 0.28003414740146554
+ 0.2800417981485756
+ 0.28004944912014162
+ 0.28005710031617498
+ 0.28006475173668449
+ 0.28007240338167888
+ 0.28008005525116902
+ 0.28008770734516358
+ 0.28009535966367272
+ 0.28010301220670519
+ 0.28011066497427101
+ 0.28011831796637976
+ 0.28012597118304083
+ 0.28013362462426372
+ 0.28014127829005764
+ 0.28014893218043369
+ 0.28015658629539975
+ 0.28016424063496531
+ 0.28017189519914121
+ 0.28017954998793621
+ 0.28018720500135968
+ 0.28019486023942175
+ 0.28020251570213128
+ 0.28021017138949827
+ 0.28021782730153227
+ 0.28022548343824266
+ 0.28023313979963965
+ 0.28024079638573191
+ 0.28024845319652891
+ 0.28025611023204072
+ 0.28026376749227694
+ 0.28027142497724689
+ 0.28027908268696006
+ 0.28028674062142661
+ 0.28029439878065454
+ 0.28030205716465539
+ 0.28030971577343794
+ 0.28031737460701095
+ 0.2803250336653853
+ 0.28033269294856966
+ 0.28034035245657346
+ 0.28034801218940625
+ 0.28035567214707885
+ 0.2803633323295992
+ 0.28037099273697835
+ 0.28037865336922485
+ 0.2803863142263483
+ 0.28039397530835808
+ 0.28040163661526502
+ 0.28040929814707721
+ 0.28041695990380483
+ 0.28042462188545803
+ 0.28043228409204479
+ 0.28043994652357612
+ 0.28044760918006129
+ 0.28045527206150983
+ 0.28046293516793053
+ 0.2804705984993342
+ 0.28047826205572968
+ 0.28048592583712634
+ 0.28049358984353434
+ 0.28050125407496324
+ 0.28050891853142168
+ 0.28051658321292056
+ 0.28052424811946869
+ 0.28053191325107546
+ 0.28053957860775103
+ 0.28054724418950427
+ 0.28055490999634525
+ 0.28056257602828411
+ 0.28057024228532967
+ 0.28057790876749067
+ 0.28058557547477869
+ 0.28059324240720185
+ 0.28060090956477018
+ 0.28060857694749325
+ 0.28061624455537976
+ 0.28062391238844137
+ 0.28063158044668612
+ 0.28063924873012336
+ 0.28064691723876345
+ 0.28065458597261567
+ 0.28066225493169028
+ 0.2806699241159954
+ 0.28067759352554184
+ 0.28068526316033909
+ 0.28069293302039589
+ 0.28070060310572242
+ 0.28070827341632826
+ 0.28071594395222343
+ 0.28072361471341672
+ 0.28073128569991773
+ 0.2807389569117365
+ 0.28074662834888259
+ 0.28075430001136542
+ 0.28076197189919522
+ 0.28076964401238003
+ 0.28077731635093139
+ 0.28078498891485754
+ 0.28079266170416844
+ 0.28080033471887372
+ 0.28080800795898203
+ 0.28081568142450508
+ 0.28082335511545098
+ 0.28083102903182905
+ 0.28083870317365023
+ 0.28084637754092268
+ 0.28085405213365716
+ 0.28086172695186262
+ 0.28086940199554838
+ 0.28087707726472472
+ 0.28088475275940106
+ 0.2808924284795869
+ 0.28090010442529179
+ 0.28090778059652516
+ 0.28091545699329717
+ 0.28092313361561733
+ 0.28093081046349444
+ 0.28093848753693879
+ 0.2809461648359603
+ 0.28095384236056736
+ 0.28096152011077069
+ 0.28096919808657977
+ 0.28097687628800416
+ 0.28098455471505329
+ 0.28099223336773671
+ 0.28099991224606397
+ 0.28100759135004505
+ 0.2810152706796889
+ 0.28102295023500573
+ 0.28103063001600492
+ 0.28103831002269608
+ 0.2810459902550887
+ 0.28105367071319287
+ 0.28106135139701816
+ 0.28106903230657337
+ 0.28107671344186863
+ 0.28108439480291425
+ 0.28109207638971828
+ 0.28109975820229227
+ 0.28110744024064366
+ 0.28111512250478476
+ 0.28112280499472225
+ 0.28113048771046772
+ 0.28113817065203001
+ 0.28114585381941853
+ 0.2811535372126443
+ 0.28116122083171541
+ 0.28116890467664196
+ 0.28117658874743351
+ 0.2811842730440996
+ 0.28119195756665044
+ 0.28119964231509548
+ 0.28120732728944353
+ 0.28121501248970548
+ 0.28122269791589022
+ 0.2812303835680065
+ 0.28123806944606594
+ 0.28124575555007664
+ 0.28125344188004875
+ 0.28126112843599194
+ 0.28126881521791552
+ 0.28127650222582984
+ 0.28128418945974365
+ 0.28129187691966651
+ 0.28129956460560929
+ 0.28130725251758082
+ 0.2813149406555906
+ 0.28132262901964811
+ 0.28133031760976362
+ 0.28133800642594597
+ 0.28134569546820526
+ 0.2813533847365518
+ 0.28136107423099371
+ 0.28136876395154192
+ 0.28137645389820581
+ 0.28138414407099432
+ 0.28139183446991833
+ 0.28139952509498595
+ 0.28140721594620749
+ 0.28141490702359373
+ 0.28142259832715211
+ 0.28143028985689367
+ 0.28143798161282851
+ 0.28144567359496486
+ 0.28145336580331348
+ 0.28146105823788337
+ 0.28146875089868462
+ 0.28147644378572612
+ 0.2814841368990188
+ 0.28149183023857149
+ 0.28149952380439358
+ 0.28150721759649544
+ 0.2815149116148859
+ 0.28152260585957511
+ 0.28153030033057264
+ 0.28153799502788868
+ 0.2815456899515314
+ 0.28155338510151168
+ 0.28156108047783912
+ 0.28156877608052322
+ 0.28157647190957352
+ 0.28158416796499947
+ 0.28159186424681137
+ 0.28159956075501807
+ 0.28160725748962973
+ 0.28161495445065593
+ 0.28162265163810551
+ 0.28163034905199008
+ 0.28163804669231712
+ 0.28164574455909819
+ 0.28165344265234143
+ 0.28166114097205724
+ 0.28166883951825489
+ 0.2816765382909448
+ 0.28168423729013581
+ 0.28169193651583802
+ 0.28169963596806036
+ 0.28170733564681377
+ 0.28171503555210714
+ 0.28172273568395056
+ 0.28173043604235232
+ 0.28173813662732389
+ 0.28174583743887432
+ 0.28175353847701234
+ 0.28176123974174888
+ 0.28176894123309282
+ 0.28177664295105503
+ 0.28178434489564308
+ 0.28179204706686856
+ 0.28179974946474023
+ 0.28180745208926772
+ 0.28181515494046128
+ 0.2818228580183304
+ 0.28183056132288403
+ 0.28183826485413227
+ 0.2818459686120855
+ 0.28185367259675242
+ 0.28186137680814344
+ 0.28186908124626736
+ 0.28187678591113507
+ 0.28188449080275474
+ 0.2818921959211374
+ 0.28189990126629177
+ 0.28190760683822824
+ 0.28191531263695624
+ 0.28192301866248537
+ 0.28193072491482452
+ 0.28193843139398528
+ 0.28194613809997587
+ 0.28195384503280579
+ 0.28196155219248598
+ 0.28196925957902469
+ 0.28197696719243276
+ 0.28198467503271984
+ 0.28199238309989472
+ 0.28200009139396703
+ 0.28200779991494762
+ 0.28201550866284547
+ 0.2820232176376708
+ 0.28203092683943243
+ 0.28203863626813985
+ 0.28204634592380351
+ 0.28205405580643356
+ 0.28206176591603882
+ 0.28206947625262896
+ 0.28207718681621424
+ 0.28208489760680405
+ 0.28209260862440744
+ 0.28210031986903528
+ 0.28210803134069651
+ 0.28211574303940129
+ 0.28212345496515856
+ 0.28213116711797931
+ 0.28213887949787164
+ 0.28214659210484583
+ 0.28215430493891291
+ 0.28216201800008095
+ 0.28216973128835959
+ 0.28217744480375978
+ 0.28218515854628967
+ 0.28219287251596026
+ 0.28220058671278114
+ 0.2822083011367611
+ 0.28221601578791045
+ 0.28222373066623951
+ 0.28223144577175641
+ 0.28223916110447206
+ 0.28224687666439618
+ 0.2822545924515375
+ 0.28226230846590716
+ 0.28227002470751317
+ 0.28227774117636656
+ 0.28228545787247694
+ 0.28229317479585386
+ 0.2823008919465062
+ 0.28230860932444429
+ 0.28231632692967829
+ 0.28232404476221717
+ 0.28233176282207118
+ 0.28233948110924989
+ 0.2823471996237622
+ 0.28235491836561916
+ 0.28236263733483019
+ 0.2823703565314043
+ 0.28237807595535169
+ 0.28238579560668137
+ 0.2823935154854042
+ 0.28240123559152908
+ 0.28240895592506632
+ 0.28241667648602548
+ 0.28242439727441548
+ 0.28243211829024734
+ 0.28243983953352914
+ 0.28244756100427265
+ 0.28245528270248604
+ 0.28246300462817886
+ 0.2824707267813622
+ 0.28247844916204479
+ 0.28248617177023633
+ 0.28249389460594715
+ 0.28250161766918669
+ 0.28250934095996399
+ 0.28251706447828995
+ 0.28252478822417354
+ 0.28253251219762493
+ 0.28254023639865383
+ 0.28254796082726907
+ 0.28255568548348103
+ 0.28256341036729993
+ 0.28257113547873464
+ 0.28257886081779549
+ 0.28258658638449136
+ 0.2825943121788333
+ 0.28260203820083013
+ 0.28260976445049152
+ 0.28261749092782773
+ 0.2826252176328477
+ 0.28263294456556237
+ 0.28264067172598067
+ 0.2826483991141121
+ 0.28265612672996715
+ 0.28266385457355464
+ 0.28267158264488551
+ 0.28267931094396803
+ 0.28268703947081314
+ 0.28269476822542988
+ 0.28270249720782836
+ 0.28271022641801835
+ 0.28271795585600934
+ 0.28272568552181104
+ 0.28273341541543362
+ 0.28274114553688612
+ 0.28274887588617881
+ 0.28275660646332124
+ 0.28276433726832306
+ 0.28277206830119461
+ 0.28277979956194471
+ 0.28278753105058441
+ 0.28279526276712202
+ 0.28280299471156772
+ 0.28281072688393188
+ 0.28281845928422333
+ 0.28282619191245251
+ 0.28283392476862895
+ 0.28284165785276233
+ 0.28284939116486219
+ 0.28285712470493884
+ 0.28286485847300191
+ 0.2828725924690611
+ 0.28288032669312524
+ 0.28288806114520532
+ 0.28289579582531033
+ 0.28290353073345054
+ 0.28291126586963555
+ 0.28291900123387509
+ 0.28292673682617936
+ 0.2829344726465573
+ 0.28294220869501857
+ 0.28294994497157344
+ 0.28295768147623163
+ 0.28296541820900328
+ 0.28297315516989746
+ 0.28298089235892382
+ 0.28298862977609324
+ 0.28299636742141404
+ 0.28300410529489722
+ 0.28301184339655178
+ 0.28301958172638786
+ 0.28302732028441452
+ 0.28303505907064286
+ 0.28304279808508087
+ 0.28305053732773977
+ 0.28305827679862916
+ 0.28306601649775792
+ 0.28307375642513638
+ 0.28308149658077492
+ 0.28308923696468169
+ 0.28309697757686852
+ 0.28310471841734353
+ 0.28311245948611713
+ 0.28312020078319899
+ 0.28312794230859933
+ 0.28313568406232709
+ 0.28314342604439269
+ 0.28315116825480574
+ 0.28315891069357513
+ 0.28316665336071256
+ 0.28317439625622637
+ 0.28318213938012621
+ 0.28318988273242229
+ 0.28319762631312501
+ 0.28320537012224328
+ 0.28321311415978684
+ 0.28322085842576594
+ 0.28322860292019014
+ 0.28323634764306926
+ 0.2832440925944128
+ 0.28325183777423119
+ 0.28325958318253402
+ 0.2832673288193302
+ 0.28327507468463087
+ 0.28328282077844485
+ 0.28329056710078193
+ 0.28329831365165231
+ 0.28330606043106571
+ 0.28331380743903173
+ 0.2833215546755608
+ 0.28332930214066177
+ 0.28333704983434432
+ 0.28334479775661953
+ 0.28335254590749559
+ 0.28336029428698356
+ 0.28336804289509315
+ 0.28337579173183325
+ 0.28338354079721417
+ 0.28339129009124564
+ 0.28339903961393725
+ 0.28340678936529945
+ 0.28341453934534105
+ 0.28342228955407323
+ 0.28343003999150479
+ 0.28343779065764557
+ 0.28344554155250506
+ 0.2834532926760937
+ 0.28346104402842115
+ 0.283468795609497
+ 0.2834765474193317
+ 0.28348429945793341
+ 0.28349205172531394
+ 0.28349980422148219
+ 0.28350755694644786
+ 0.28351530990022067
+ 0.28352306308281083
+ 0.2835308164942274
+ 0.28353857013448081
+ 0.28354632400358126
+ 0.2835540781015371
+ 0.28356183242835936
+ 0.28356958698405837
+ 0.28357734176864186
+ 0.28358509678212207
+ 0.28359285202450735
+ 0.2836006074958074
+ 0.28360836319603261
+ 0.2836161191251918
+ 0.28362387528329619
+ 0.28363163167035527
+ 0.28363938828637753
+ 0.28364714513137457
+ 0.28365490220535544
+ 0.28366265950832975
+ 0.28367041704030721
+ 0.2836781748012982
+ 0.28368593279131238
+ 0.28369369101035929
+ 0.28370144945844877
+ 0.28370920813559042
+ 0.28371696704179467
+ 0.28372472617707112
+ 0.28373248554142944
+ 0.28374024513487928
+ 0.28374800495743119
+ 0.28375576500909394
+ 0.28376352528987869
+ 0.28377128579979366
+ 0.28377904653884933
+ 0.28378680750705593
+ 0.28379456870442332
+ 0.28380233013096101
+ 0.28381009178667804
+ 0.28381785367158552
+ 0.28382561578569304
+ 0.28383337812900972
+ 0.28384114070154653
+ 0.28384890350331171
+ 0.28385666653431652
+ 0.28386442979456972
+ 0.28387219328408186
+ 0.28387995700286256
+ 0.28388772095092146
+ 0.28389548512826901
+ 0.28390324953491419
+ 0.28391101417086728
+ 0.2839187790361381
+ 0.28392654413073698
+ 0.28393430945467224
+ 0.2839420750079556
+ 0.28394984079059538
+ 0.28395760680260196
+ 0.28396537304398572
+ 0.28397313951475567
+ 0.2839809062149215
+ 0.28398867314449427
+ 0.28399644030348298
+ 0.28400420769189733
+ 0.28401197530974703
+ 0.28401974315704243
+ 0.28402751123379394
+ 0.28403527954000984
+ 0.28404304807570124
+ 0.28405081684087713
+ 0.2840585858355486
+ 0.284066355059724
+ 0.28407412451341363
+ 0.28408189419662788
+ 0.28408966410937653
+ 0.28409743425166856
+ 0.2841052046235143
+ 0.28411297522492418
+ 0.28412074605590726
+ 0.2841285171164738
+ 0.28413628840663302
+ 0.28414405992639574
+ 0.28415183167577118
+ 0.28415960365476967
+ 0.28416737586340018
+ 0.2841751483016739
+ 0.28418292096959968
+ 0.28419069386718665
+ 0.28419846699444656
+ 0.2842062403513877
+ 0.28421401393802131
+ 0.28422178775435547
+ 0.28422956180040149
+ 0.28423733607616891
+ 0.28424511058166751
+ 0.28425288531690635
+ 0.28426066028189717
+ 0.28426843547664826
+ 0.28427621090116945
+ 0.28428398655547099
+ 0.28429176243956267
+ 0.28429953855345486
+ 0.28430731489715738
+ 0.28431509147067907
+ 0.28432286827403047
+ 0.28433064530722191
+ 0.28433842257026182
+ 0.28434620006316186
+ 0.28435397778593113
+ 0.28436175573857869
+ 0.28436953392111558
+ 0.28437731233355079
+ 0.28438509097589554
+ 0.28439286984815804
+ 0.28440064895034878
+ 0.28440842828247814
+ 0.28441620784455512
+ 0.28442398763659021
+ 0.28443176765859374
+ 0.28443954791057408
+ 0.28444732839254233
+ 0.2844551091045075
+ 0.28446289004648084
+ 0.28447067121847042
+ 0.28447845262048754
+ 0.28448623425254194
+ 0.28449401611464259
+ 0.28450179820679983
+ 0.28450958052902425
+ 0.28451736308132475
+ 0.28452514586371103
+ 0.28453292887619436
+ 0.28454071211878301
+ 0.28454849559148804
+ 0.2845562792943192
+ 0.28456406322728484
+ 0.28457184739039681
+ 0.28457963178366474
+ 0.28458741640709706
+ 0.28459520126070492
+ 0.28460298634449793
+ 0.28461077165848597
+ 0.28461855720267931
+ 0.28462634297708711
+ 0.28463412898171903
+ 0.28464191521658555
+ 0.28464970168169701
+ 0.28465748837706256
+ 0.28466527530269192
+ 0.28467306245859614
+ 0.28468084984478359
+ 0.28468863746126549
+ 0.28469642530805073
+ 0.28470421338514984
+ 0.28471200169257188
+ 0.28471979023032795
+ 0.28472757899842704
+ 0.28473536799687893
+ 0.28474315722569482
+ 0.28475094668488299
+ 0.28475873637445454
+ 0.28476652629441929
+ 0.28477431644478557
+ 0.28478210682556515
+ 0.28478989743676714
+ 0.28479768827840124
+ 0.28480547935047723
+ 0.28481327065300627
+ 0.28482106218599729
+ 0.2848288539494595
+ 0.28483664594340391
+ 0.28484443816784039
+ 0.28485223062277859
+ 0.28486002330822829
+ 0.28486781622419916
+ 0.28487560937070183
+ 0.28488340274774587
+ 0.28489119635534044
+ 0.28489899019349596
+ 0.28490678426222354
+ 0.28491457856153152
+ 0.28492237309143037
+ 0.28493016785192926
+ 0.28493796284303985
+ 0.28494575806477068
+ 0.28495355351713136
+ 0.28496134920013311
+ 0.28496914511378496
+ 0.28497694125809664
+ 0.28498473763307869
+ 0.28499253423874077
+ 0.28500033107509271
+ 0.28500812814214493
+ 0.28501592543990645
+ 0.2850237229683879
+ 0.2850315207275988
+ 0.28503931871754906
+ 0.28504711693824902
+ 0.28505491538970862
+ 0.28506271407193684
+ 0.28507051298494474
+ 0.28507831212874146
+ 0.28508611150333679
+ 0.28509391110874188
+ 0.28510171094496511
+ 0.28510951101201759
+ 0.28511731130990908
+ 0.28512511183864869
+ 0.28513291259824686
+ 0.28514071358871412
+ 0.28514851481005871
+ 0.2851563162622926
+ 0.28516411794542407
+ 0.28517191985946444
+ 0.28517972200442193
+ 0.28518752438030848
+ 0.2851953269871324
+ 0.28520312982490426
+ 0.28521093289363442
+ 0.28521873619333205
+ 0.28522653972400752
+ 0.28523434348567001
+ 0.2852421474783306
+ 0.28524995170199907
+ 0.28525775615668386
+ 0.28526556084239685
+ 0.28527336575914697
+ 0.28528117090694421
+ 0.28528897628579886
+ 0.28529678189572011
+ 0.28530458773671907
+ 0.28531239380880485
+ 0.28532020011198728
+ 0.28532800664627667
+ 0.28533581341168301
+ 0.28534362040821593
+ 0.28535142763588528
+ 0.28535923509470146
+ 0.28536704278467434
+ 0.2853748507058137
+ 0.2853826588581293
+ 0.28539046724163158
+ 0.28539827585633043
+ 0.28540608470223472
+ 0.28541389377935589
+ 0.28542170308770293
+ 0.28542951262728622
+ 0.2854373223981157
+ 0.28544513240020103
+ 0.28545294263355209
+ 0.28546075309818009
+ 0.28546856379409324
+ 0.28547637472130227
+ 0.28548418587981678
+ 0.2854919972696473
+ 0.28549980889080367
+ 0.285507620743295
+ 0.28551543282713238
+ 0.28552324514232569
+ 0.28553105768888404
+ 0.28553887046681775
+ 0.28554668347613754
+ 0.28555449671685162
+ 0.28556231018897205
+ 0.28557012389250708
+ 0.28557793782746732
+ 0.28558575199386316
+ 0.28559356639170375
+ 0.28560138102099958
+ 0.28560919588176042
+ 0.28561701097399683
+ 0.2856248262977179
+ 0.28563264185293408
+ 0.28564045763965523
+ 0.28564827365789108
+ 0.28565608990765146
+ 0.28566390638894684
+ 0.28567172310178712
+ 0.28567954004618201
+ 0.28568735722214206
+ 0.28569517462967631
+ 0.28570299226879603
+ 0.28571081013950961
+ 0.28571862824182825
+ 0.28572644657576035
+ 0.28573426514131844
+ 0.28574208393851042
+ 0.28574990296734665
+ 0.28575772222783757
+ 0.28576554171999247
+ 0.28577336144382315
+ 0.28578118139933667
+ 0.28578900158654558
+ 0.28579682200545831
+ 0.28580464265608541
+ 0.28581246353843665
+ 0.28582028465252252
+ 0.28582810599835218
+ 0.28583592757593618
+ 0.2858437493852849
+ 0.28585157142640694
+ 0.28585939369931401
+ 0.28586721620401462
+ 0.2858750389405193
+ 0.28588286190883855
+ 0.28589068510898152
+ 0.28589850854095872
+ 0.28590633220477984
+ 0.2859141561004549
+ 0.28592198022799425
+ 0.28592980458740785
+ 0.28593762917870469
+ 0.28594545400189603
+ 0.28595327905699108
+ 0.28596110434400018
+ 0.28596892986293398
+ 0.28597675561380098
+ 0.28598458159661155
+ 0.28599240781137619
+ 0.28600023425810556
+ 0.28600806093680803
+ 0.28601588784749482
+ 0.28602371499017576
+ 0.28603154236485995
+ 0.28603936997155793
+ 0.28604719781028026
+ 0.28605502588103665
+ 0.28606285418383637
+ 0.28607068271868996
+ 0.28607851148560781
+ 0.28608634048459913
+ 0.28609416971567447
+ 0.28610199917884355
+ 0.28610982887411707
+ 0.28611765880150403
+ 0.28612548896101431
+ 0.28613331935265912
+ 0.28614114997644768
+ 0.28614898083239043
+ 0.28615681192049647
+ 0.28616464324077645
+ 0.28617247479324082
+ 0.28618030657789878
+ 0.28618813859476011
+ 0.28619597084383608
+ 0.28620380332513579
+ 0.28621163603866906
+ 0.2862194689844465
+ 0.28622730216247799
+ 0.28623513557277319
+ 0.28624296921534287
+ 0.28625080309019668
+ 0.28625863719734379
+ 0.28626647153679485
+ 0.28627430610856031
+ 0.28628214091264925
+ 0.28628997594907241
+ 0.28629781121784015
+ 0.28630564671896175
+ 0.28631348245244692
+ 0.28632131841830638
+ 0.28632915461655045
+ 0.28633699104718846
+ 0.28634482771023018
+ 0.28635266460568615
+ 0.28636050173356697
+ 0.28636833909388104
+ 0.28637617668664034
+ 0.2863840145118533
+ 0.28639185256953043
+ 0.28639969085968237
+ 0.28640752938231823
+ 0.2864153681374485
+ 0.28642320712508318
+ 0.28643104634523198
+ 0.2864388857979055
+ 0.28644672548311362
+ 0.28645456540086611
+ 0.28646240555117297
+ 0.28647024593404463
+ 0.28647808654949103
+ 0.28648592739752121
+ 0.2864937684781465
+ 0.28650160979137612
+ 0.28650945133722122
+ 0.28651729311569035
+ 0.28652513512679467
+ 0.28653297737054273
+ 0.28654081984694713
+ 0.28654866255601569
+ 0.28655650549775891
+ 0.28656434867218661
+ 0.28657219207931017
+ 0.2865800357191387
+ 0.28658787959168136
+ 0.28659572369695013
+ 0.28660356803495346
+ 0.28661141260570189
+ 0.28661925740920602
+ 0.28662710244547501
+ 0.28663494771451942
+ 0.28664279321634911
+ 0.28665063895097392
+ 0.28665848491840457
+ 0.28666633111865064
+ 0.28667417755172164
+ 0.28668202421762856
+ 0.28668987111638072
+ 0.28669771824798868
+ 0.28670556561246291
+ 0.28671341320981197
+ 0.28672126104004719
+ 0.28672910910317828
+ 0.28673695739921523
+ 0.28674480592816792
+ 0.28675265469004679
+ 0.28676050368486189
+ 0.28676835291262232
+ 0.28677620237333934
+ 0.28678405206702284
+ 0.28679190199368199
+ 0.28679975215332743
+ 0.2868076025459696
+ 0.28681545317161777
+ 0.28682330403028261
+ 0.28683115512197455
+ 0.28683900644670202
+ 0.28684685800447651
+ 0.28685470979530775
+ 0.28686256181920566
+ 0.28687041407618086
+ 0.28687826656624249
+ 0.28688611928940039
+ 0.28689397224566665
+ 0.28690182543504894
+ 0.28690967885755869
+ 0.28691753251320562
+ 0.28692538640199905
+ 0.28693324052395086
+ 0.28694109487906966
+ 0.28694894946736593
+ 0.28695680428884957
+ 0.28696465934353049
+ 0.28697251463141932
+ 0.28698037015252587
+ 0.28698822590686007
+ 0.28699608189443254
+ 0.28700393811525315
+ 0.28701179456933107
+ 0.28701965125667689
+ 0.28702750817730127
+ 0.28703536533121327
+ 0.28704322271842431
+ 0.28705108033894355
+ 0.28705893819278089
+ 0.28706679627994691
+ 0.28707465460045151
+ 0.28708251315430455
+ 0.28709037194151665
+ 0.28709823096209708
+ 0.28710609021605699
+ 0.2871139497034057
+ 0.28712180942415311
+ 0.2871296693783098
+ 0.28713752956588562
+ 0.28714538998689121
+ 0.28715325064133573
+ 0.28716111152922985
+ 0.28716897265058344
+ 0.28717683400540639
+ 0.28718469559370929
+ 0.28719255741550215
+ 0.28720041947079478
+ 0.28720828175959701
+ 0.28721614428191961
+ 0.2872240070377724
+ 0.28723187002716533
+ 0.28723973325010815
+ 0.28724759670661171
+ 0.28725546039668581
+ 0.28726332432034102
+ 0.28727118847758587
+ 0.28727905286843242
+ 0.28728691749288909
+ 0.28729478235096723
+ 0.28730264744267614
+ 0.28731051276802627
+ 0.28731837832702695
+ 0.2873262441196901
+ 0.28733411014602439
+ 0.28734197640603959
+ 0.28734984289974708
+ 0.28735770962715601
+ 0.28736557658827638
+ 0.28737344378311946
+ 0.2873813112116938
+ 0.28738917887401066
+ 0.28739704677007932
+ 0.28740491489991099
+ 0.2874127832635151
+ 0.2874206518609006
+ 0.28742852069207975
+ 0.28743638975706159
+ 0.28744425905585619
+ 0.28745212858847335
+ 0.28745999835492381
+ 0.28746786835521732
+ 0.28747573858936465
+ 0.28748360905737502
+ 0.28749147975925826
+ 0.2874993506950258
+ 0.28750722186468675
+ 0.28751509326825186
+ 0.28752296490573098
+ 0.28753083677713337
+ 0.2875387088824703
+ 0.28754658122175175
+ 0.28755445379498695
+ 0.28756232660218722
+ 0.28757019964336183
+ 0.28757807291852133
+ 0.28758594642767565
+ 0.28759382017083479
+ 0.28760169414800862
+ 0.28760956835920859
+ 0.28761744280444307
+ 0.2876253174837235
+ 0.28763319239705976
+ 0.28764106754446039
+ 0.28764894292593823
+ 0.28765681854150094
+ 0.28766469439115994
+ 0.28767257047492523
+ 0.28768044679280663
+ 0.28768832334481487
+ 0.28769620013095981
+ 0.28770407715125079
+ 0.28771195440569836
+ 0.28771983189431322
+ 0.28772770961710525
+ 0.28773558757408441
+ 0.28774346576526066
+ 0.28775134419064463
+ 0.28775922285024558
+ 0.28776710174407483
+ 0.28777498087214165
+ 0.28778286023445665
+ 0.2877907398310291
+ 0.28779861966187037
+ 0.28780649972698963
+ 0.28781438002639753
+ 0.28782226056010413
+ 0.28783014132811924
+ 0.28783802233045291
+ 0.28784590356711642
+ 0.28785378503811837
+ 0.28786166674347008
+ 0.28786954868318082
+ 0.28787743085726192
+ 0.28788531326572259
+ 0.28789319590857221
+ 0.28790107878582272
+ 0.28790896189748266
+ 0.28791684524356348
+ 0.28792472882407433
+ 0.28793261263902598
+ 0.28794049668842825
+ 0.2879483809722912
+ 0.28795626549062547
+ 0.28796415024344102
+ 0.28797203523074766
+ 0.28797992045255555
+ 0.28798780590887529
+ 0.28799569159971611
+ 0.28800357752508937
+ 0.28801146368500502
+ 0.28801935007947232
+ 0.28802723670850194
+ 0.28803512357210465
+ 0.28804301067028948
+ 0.28805089800306732
+ 0.28805878557044801
+ 0.28806667337244152
+ 0.28807456140905852
+ 0.28808244968030899
+ 0.28809033818620361
+ 0.28809822692675086
+ 0.28810611590196294
+ 0.28811400511184837
+ 0.28812189455641846
+ 0.28812978423568253
+ 0.28813767414965114
+ 0.28814556429833516
+ 0.28815345468174303
+ 0.2881613452998868
+ 0.28816923615277507
+ 0.28817712724041861
+ 0.28818501856282858
+ 0.28819291012001308
+ 0.28820080191198399
+ 0.28820869393875076
+ 0.28821658620032392
+ 0.28822447869671347
+ 0.28823237142792874
+ 0.28824026439398109
+ 0.28824815759488048
+ 0.2882560510306369
+ 0.28826394470126027
+ 0.28827183860676131
+ 0.28827973274714935
+ 0.288287627122435
+ 0.28829552173262896
+ 0.28830341657774045
+ 0.28831131165778096
+ 0.28831920697275898
+ 0.28832710252268601
+ 0.28833499830757181
+ 0.28834289432742666
+ 0.28835079058226026
+ 0.28835868707208279
+ 0.28836658379690555
+ 0.28837448075673705
+ 0.28838237795158889
+ 0.28839027538147083
+ 0.28839817304639231
+ 0.28840607094636461
+ 0.28841396908139716
+ 0.28842186745150117
+ 0.2884297660566853
+ 0.28843766489696027
+ 0.28844556397233673
+ 0.28845346328282473
+ 0.28846136282843488
+ 0.28846926260917582
+ 0.28847716262505968
+ 0.28848506287609493
+ 0.28849296336229308
+ 0.28850086408366404
+ 0.28850876504021716
+ 0.28851666623196309
+ 0.2885245676589126
+ 0.2885324693210749
+ 0.28854037121846138
+ 0.28854827335108146
+ 0.28855617571894498
+ 0.28856407832206277
+ 0.28857198116044547
+ 0.28857988423410158
+ 0.28858778754304337
+ 0.28859569108727934
+ 0.28860359486682025
+ 0.28861149888167675
+ 0.2886194031318588
+ 0.28862730761737654
+ 0.28863521233823985
+ 0.28864311729445941
+ 0.28865102248604535
+ 0.28865892791300762
+ 0.28866683357535688
+ 0.28867473947310252
+ 0.28868264560625584
+ 0.28869055197482552
+ 0.28869845857882365
+ 0.28870636541825878
+ 0.28871427249314169
+ 0.28872217980348308
+ 0.28873008734929295
+ 0.28873799513058135
+ 0.28874590314735821
+ 0.28875381139963346
+ 0.28876171988741878
+ 0.28876962861072331
+ 0.28877753756955699
+ 0.2887854467639307
+ 0.28879335619385432
+ 0.28880126585933796
+ 0.28880917576039222
+ 0.28881708589702654
+ 0.28882499626925229
+ 0.28883290687707946
+ 0.2888408177205174
+ 0.28884872879957679
+ 0.28885664011426765
+ 0.28886455166460145
+ 0.28887246345058676
+ 0.28888037547223427
+ 0.28888828772955405
+ 0.28889620022255685
+ 0.28890411295125334
+ 0.28891202591565213
+ 0.28891993911576469
+ 0.28892785255160169
+ 0.2889357662231718
+ 0.28894368013048638
+ 0.28895159427355482
+ 0.28895950865238851
+ 0.28896742326699615
+ 0.28897533811738968
+ 0.28898325320357793
+ 0.28899116852557222
+ 0.28899908408338187
+ 0.28900699987701767
+ 0.28901491590648892
+ 0.28902283217180769
+ 0.28903074867298201
+ 0.28903866541002393
+ 0.28904658238294284
+ 0.28905449959174939
+ 0.28906241703645302
+ 0.28907033471706439
+ 0.28907825263359355
+ 0.28908617078605192
+ 0.28909408917444818
+ 0.28910200779879369
+ 0.28910992665909779
+ 0.28911784575537058
+ 0.28912576508762344
+ 0.28913368465586575
+ 0.28914160446010823
+ 0.28914952450036091
+ 0.2891574447766338
+ 0.28916536528893771
+ 0.28917328603728265
+ 0.28918120702167788
+ 0.28918912824213494
+ 0.28919704969866389
+ 0.28920497139127466
+ 0.28921289331997735
+ 0.28922081548478273
+ 0.2892287378857008
+ 0.28923666052274088
+ 0.28924458339591519
+ 0.28925250650523165
+ 0.28926042985070238
+ 0.28926835343233742
+ 0.28927627725014615
+ 0.28928420130413929
+ 0.28929212559432693
+ 0.28930005012071974
+ 0.28930797488332705
+ 0.2893158998821605
+ 0.28932382511722848
+ 0.28933175058854338
+ 0.2893396762961144
+ 0.28934760223995165
+ 0.28935552842006512
+ 0.28936345483646558
+ 0.28937138148916391
+ 0.28937930837816855
+ 0.28938723550349182
+ 0.289395162865143
+ 0.28940309046313217
+ 0.28941101829747012
+ 0.28941894636816612
+ 0.28942687467523165
+ 0.28943480321867604
+ 0.28944273199851017
+ 0.28945066101474398
+ 0.28945859026738829
+ 0.28946651975645243
+ 0.28947444948194717
+ 0.28948237944388328
+ 0.28949030964227007
+ 0.28949824007711839
+ 0.28950617074843826
+ 0.28951410165623964
+ 0.28952203280053412
+ 0.28952996418133037
+ 0.28953789579863981
+ 0.28954582765247178
+ 0.28955375974283776
+ 0.28956169206974719
+ 0.28956962463320929
+ 0.28957755743323632
+ 0.28958549046983767
+ 0.28959342374302416
+ 0.28960135725280495
+ 0.28960929099919164
+ 0.28961722498219367
+ 0.28962515920182091
+ 0.28963309365808437
+ 0.28964102835099398
+ 0.28964896328056122
+ 0.28965689844679404
+ 0.28966483384970465
+ 0.28967276948930243
+ 0.28968070536559887
+ 0.28968864147860263
+ 0.28969657782832448
+ 0.28970451441477513
+ 0.28971245123796474
+ 0.28972038829790336
+ 0.28972832559460182
+ 0.28973626312806944
+ 0.28974420089831759
+ 0.28975213890535589
+ 0.28976007714919422
+ 0.28976801562984417
+ 0.28977595434731507
+ 0.28978389330161769
+ 0.28979183249276147
+ 0.28979977192075784
+ 0.28980771158561691
+ 0.28981565148734806
+ 0.28982359162596205
+ 0.28983153200146966
+ 0.28983947261388104
+ 0.28984741346320553
+ 0.28985535454945455
+ 0.28986329587263759
+ 0.28987123743276538
+ 0.28987917922984874
+ 0.28988712126389704
+ 0.28989506353492112
+ 0.28990300604293168
+ 0.28991094878793738
+ 0.28991889176994984
+ 0.28992683498897981
+ 0.28993477844503596
+ 0.28994272213813044
+ 0.28995066606827202
+ 0.28995861023547215
+ 0.28996655463974025
+ 0.28997449928108709
+ 0.28998244415952273
+ 0.28999038927505805
+ 0.28999833462770236
+ 0.29000628021746722
+ 0.290014226044362
+ 0.29002217210839754
+ 0.29003011840958381
+ 0.29003806494793105
+ 0.29004601172345001
+ 0.29005395873615009
+ 0.29006190598604276
+ 0.29006985347313813
+ 0.29007780119744564
+ 0.29008574915897606
+ 0.29009369735774021
+ 0.2901016457937482
+ 0.2901095944670094
+ 0.29011754337753531
+ 0.29012549252533609
+ 0.29013344191042106
+ 0.2901413915328025
+ 0.29014934139248838
+ 0.29015729148949021
+ 0.29016524182381881
+ 0.29017319239548356
+ 0.29018114320449534
+ 0.2901890942508642
+ 0.29019704553460091
+ 0.29020499705571495
+ 0.29021294881421783
+ 0.2902209008101182
+ 0.29022885304342833
+ 0.29023680551415693
+ 0.29024475822231544
+ 0.29025271116791335
+ 0.29026066435096148
+ 0.29026861777147062
+ 0.2902765714294494
+ 0.29028452532491011
+ 0.2902924794578623
+ 0.29030043382831583
+ 0.29030838843628243
+ 0.29031634328177069
+ 0.29032429836479146
+ 0.29033225368535626
+ 0.29034020924347381
+ 0.290348165039155
+ 0.29035612107241049
+ 0.29036407734325126
+ 0.29037203385168597
+ 0.2903799905977254
+ 0.29038794758138115
+ 0.29039590480266264
+ 0.2904038622615806
+ 0.29041181995814452
+ 0.29041977789236517
+ 0.29042773606425348
+ 0.29043569447381884
+ 0.29044365312107273
+ 0.29045161200602387
+ 0.29045957112868453
+ 0.29046753048906421
+ 0.29047549008717211
+ 0.29048344992302072
+ 0.2904914099966186
+ 0.29049937030797668
+ 0.29050733085710567
+ 0.29051529164401585
+ 0.2905232526687172
+ 0.29053121393122067
+ 0.29053917543153562
+ 0.29054713716967367
+ 0.29055509914564415
+ 0.29056306135945725
+ 0.29057102381112454
+ 0.29057898650065539
+ 0.29058694942805996
+ 0.2905949125933498
+ 0.29060287599653428
+ 0.29061083963762441
+ 0.29061880351662939
+ 0.29062676763356088
+ 0.29063473198842837
+ 0.29064269658124264
+ 0.29065066141201451
+ 0.29065862648075347
+ 0.29066659178746967
+ 0.29067455733217457
+ 0.29068252311487769
+ 0.29069048913559059
+ 0.29069845539432188
+ 0.29070642189108264
+ 0.29071438862588345
+ 0.29072235559873533
+ 0.29073032280964695
+ 0.29073829025863063
+ 0.29074625794569497
+ 0.29075422587085098
+ 0.29076219403411013
+ 0.29077016243548121
+ 0.29077813107497497
+ 0.29078609995260313
+ 0.29079406906837363
+ 0.29080203842229863
+ 0.2908100080143885
+ 0.29081797784465252
+ 0.29082594791310229
+ 0.2908339182197473
+ 0.29084188876459838
+ 0.29084985954766568
+ 0.29085783056895936
+ 0.2908658018284902
+ 0.29087377332626924
+ 0.29088174506230507
+ 0.29088971703660926
+ 0.29089768924919279
+ 0.29090566170006421
+ 0.29091363438923606
+ 0.29092160731671685
+ 0.29092958048251821
+ 0.29093755388664971
+ 0.29094552752912206
+ 0.29095350140994625
+ 0.2909614755291316
+ 0.29096944988668916
+ 0.29097742448262887
+ 0.29098539931696177
+ 0.29099337438969719
+ 0.29100134970084685
+ 0.29100932525042011
+ 0.29101730103842854
+ 0.29102527706488096
+ 0.29103325332978885
+ 0.29104122983316177
+ 0.29104920657501127
+ 0.29105718355534671
+ 0.2910651607741791
+ 0.29107313823151859
+ 0.29108111592737523
+ 0.29108909386176002
+ 0.29109707203468382
+ 0.29110505044615537
+ 0.29111302909618619
+ 0.29112100798478718
+ 0.29112898711196722
+ 0.29113696647773779
+ 0.29114494608210972
+ 0.2911529259250919
+ 0.29116090600669581
+ 0.29116888632693239
+ 0.2911768668858104
+ 0.29118484768334135
+ 0.29119282871953556
+ 0.29120080999440379
+ 0.29120879150795487
+ 0.29121677326020101
+ 0.29122475525115177
+ 0.29123273748081735
+ 0.29124071994920925
+ 0.29124870265633696
+ 0.2912566856022108
+ 0.29126466878684143
+ 0.29127265221023918
+ 0.29128063587241493
+ 0.29128861977337811
+ 0.29129660391314033
+ 0.29130458829171108
+ 0.29131257290910123
+ 0.29132055776532173
+ 0.29132854286038135
+ 0.29133652819429229
+ 0.29134451376706333
+ 0.29135249957870618
+ 0.29136048562923106
+ 0.29136847191864795
+ 0.29137645844696725
+ 0.29138444521419971
+ 0.2913924322203556
+ 0.29140041946544581
+ 0.29140840694947984
+ 0.29141639467246916
+ 0.29142438263442272
+ 0.29143237083535273
+ 0.29144035927526807
+ 0.29144834795418023
+ 0.29145633687209949
+ 0.29146432602903521
+ 0.29147231542499918
+ 0.2914803050600015
+ 0.29148829493405171
+ 0.29149628504716202
+ 0.29150427539934126
+ 0.29151226599059965
+ 0.29152025682094884
+ 0.29152824789039894
+ 0.29153623919896027
+ 0.29154423074664293
+ 0.29155222253345786
+ 0.29156021455941522
+ 0.29156820682452522
+ 0.29157619932879891
+ 0.29158419207224628
+ 0.291592185054877
+ 0.29160017827670326
+ 0.29160817173773462
+ 0.29161616543798136
+ 0.29162415937745428
+ 0.29163215355616284
+ 0.2916401479741188
+ 0.29164814263133232
+ 0.29165613752781289
+ 0.29166413266357205
+ 0.29167212803862019
+ 0.29168012365296664
+ 0.29168811950662316
+ 0.29169611559959913
+ 0.29170411193190621
+ 0.29171210850355322
+ 0.29172010531455256
+ 0.29172810236491292
+ 0.29173609965464598
+ 0.29174409718376126
+ 0.29175209495226967
+ 0.29176009296018207
+ 0.2917680912075073
+ 0.29177608969425772
+ 0.29178408842044357
+ 0.29179208738607432
+ 0.29180008659116091
+ 0.29180808603571345
+ 0.2918160857197431
+ 0.29182408564325985
+ 0.29183208580627407
+ 0.29184008620879659
+ 0.29184808685083774
+ 0.29185608773240762
+ 0.29186408885351722
+ 0.29187209021417604
+ 0.2918800918143965
+ 0.29188809365418661
+ 0.29189609573355868
+ 0.29190409805252238
+ 0.29191210061108852
+ 0.29192010340926661
+ 0.29192810644706912
+ 0.29193610972450401
+ 0.29194411324158376
+ 0.29195211699831775
+ 0.29196012099471708
+ 0.29196812523079185
+ 0.29197612970655229
+ 0.29198413442200943
+ 0.2919921393771735
+ 0.29200014457205459
+ 0.29200815000666452
+ 0.29201615568101125
+ 0.29202416159510797
+ 0.29203216774896346
+ 0.29204017414258931
+ 0.29204818077599437
+ 0.29205618764919106
+ 0.29206419476218809
+ 0.29207220211499724
+ 0.29208020970762866
+ 0.29208821754009257
+ 0.29209622561239929
+ 0.29210423392455975
+ 0.29211224247658413
+ 0.2921202512684834
+ 0.29212826030026712
+ 0.29213626957194683
+ 0.2921442790835323
+ 0.2921522888350343
+ 0.29216029882646305
+ 0.2921683090578297
+ 0.29217631952914358
+ 0.2921843302404164
+ 0.29219234119165777
+ 0.29220035238287856
+ 0.29220836381408904
+ 0.29221637548530022
+ 0.29222438739652151
+ 0.29223239954776475
+ 0.29224041193904005
+ 0.29224842457035699
+ 0.29225643744172652
+ 0.29226445055316036
+ 0.29227246390466727
+ 0.29228047749625824
+ 0.29228849132794499
+ 0.29229650539973628
+ 0.29230451971164301
+ 0.29231253426367632
+ 0.29232054905584637
+ 0.2923285640881641
+ 0.29233657936063906
+ 0.29234459487328224
+ 0.29235261062610468
+ 0.29236062661911577
+ 0.2923686428523265
+ 0.29237665932574797
+ 0.29238467603938961
+ 0.29239269299326315
+ 0.29240071018737812
+ 0.29240872762174552
+ 0.29241674529637551
+ 0.29242476321127847
+ 0.292432781366466
+ 0.29244079976194698
+ 0.29244881839773312
+ 0.29245683727383459
+ 0.29246485639026176
+ 0.29247287574702557
+ 0.29248089534413552
+ 0.29248891518160336
+ 0.2924969352594386
+ 0.29250495557765221
+ 0.29251297613625521
+ 0.29252099693525718
+ 0.29252901797466974
+ 0.29253703925450175
+ 0.29254506077476489
+ 0.29255308253547024
+ 0.29256110453662648
+ 0.29256912677824543
+ 0.29257714926033801
+ 0.29258517198291312
+ 0.29259319494598318
+ 0.29260121814955764
+ 0.29260924159364687
+ 0.29261726527826187
+ 0.2926252892034128
+ 0.29263331336911075
+ 0.29264133777536516
+ 0.29264936242218798
+ 0.29265738730958851
+ 0.29266541243757788
+ 0.29267343780616628
+ 0.29268146341536472
+ 0.29268948926518362
+ 0.2926975153556331
+ 0.29270554168672414
+ 0.29271356825846706
+ 0.29272159507087225
+ 0.29272962212395059
+ 0.2927376494177123
+ 0.29274567695216852
+ 0.29275370472732876
+ 0.29276173274320394
+ 0.29276976099980523
+ 0.292777789497142
+ 0.29278581823522604
+ 0.29279384721406698
+ 0.29280187643367583
+ 0.29280990589406275
+ 0.29281793559523883
+ 0.29282596553721441
+ 0.29283399571999957
+ 0.29284202614360483
+ 0.29285005680804183
+ 0.29285808771332006
+ 0.29286611885944991
+ 0.29287415024644309
+ 0.29288218187430909
+ 0.29289021374305829
+ 0.29289824585270241
+ 0.29290627820325099
+ 0.29291431079471575
+ 0.29292234362710556
+ 0.29293037670043143
+ 0.29293841001470511
+ 0.29294644356993615
+ 0.29295447736613484
+ 0.29296251140331292
+ 0.29297054568147929
+ 0.29297858020064566
+ 0.29298661496082223
+ 0.29299464996202018
+ 0.29300268520424899
+ 0.29301072068751965
+ 0.29301875641184327
+ 0.29302679237722934
+ 0.29303482858368968
+ 0.29304286503123378
+ 0.2930509017198728
+ 0.29305893864961619
+ 0.29306697582047642
+ 0.2930750132324631
+ 0.29308305088558584
+ 0.29309108877985707
+ 0.29309912691528572
+ 0.29310716529188341
+ 0.29311520390965984
+ 0.29312324276862595
+ 0.29313128186879284
+ 0.29313932121017078
+ 0.29314736079276937
+ 0.29315540061660028
+ 0.29316344068167394
+ 0.29317148098800061
+ 0.29317952153559129
+ 0.29318756232445636
+ 0.29319560335460532
+ 0.2932036446260507
+ 0.29321168613880133
+ 0.29321972789286899
+ 0.29322776988826332
+ 0.293235812124996
+ 0.29324385460307667
+ 0.29325189732251555
+ 0.29325994028332453
+ 0.29326798348551386
+ 0.29327602692909316
+ 0.29328407061407341
+ 0.29329211454046566
+ 0.2933001587082803
+ 0.29330820311752759
+ 0.29331624776821857
+ 0.29332429266036358
+ 0.293332337793973
+ 0.29334038316905769
+ 0.29334842878562811
+ 0.2933564746436953
+ 0.2933645207432688
+ 0.29337256708435971
+ 0.29338061366697982
+ 0.29338866049113788
+ 0.29339670755684505
+ 0.29340475486411233
+ 0.29341280241295004
+ 0.29342085020336861
+ 0.29342889823537899
+ 0.29343694650899144
+ 0.29344499502421645
+ 0.29345304378106568
+ 0.29346109277954807
+ 0.29346914201967533
+ 0.29347719150145779
+ 0.29348524122490594
+ 0.29349329119003065
+ 0.29350134139684153
+ 0.29350939184535046
+ 0.29351744253556772
+ 0.29352549346750367
+ 0.29353354464116865
+ 0.29354159605657359
+ 0.29354964771372977
+ 0.29355769961264583
+ 0.29356575175333449
+ 0.29357380413580531
+ 0.2935818567600692
+ 0.29358990962613596
+ 0.29359796273401795
+ 0.2936060160837235
+ 0.29361406967526493
+ 0.29362212350865208
+ 0.29363017758389581
+ 0.29363823190100652
+ 0.29364628645999535
+ 0.29365434126087253
+ 0.29366239630364849
+ 0.29367045158833427
+ 0.2936785071149402
+ 0.29368656288347661
+ 0.2936946188939546
+ 0.29370267514638376
+ 0.29371073164077666
+ 0.2937187883771421
+ 0.29372684535549198
+ 0.2937349025758359
+ 0.2937429600381849
+ 0.29375101774255002
+ 0.29375907568894094
+ 0.29376713387736869
+ 0.29377519230784443
+ 0.29378325098037772
+ 0.29379130989498037
+ 0.29379936905166198
+ 0.29380742845043439
+ 0.29381548809130653
+ 0.29382354797429011
+ 0.29383160809939551
+ 0.2938396684666339
+ 0.29384772907601481
+ 0.29385578992754935
+ 0.29386385102124857
+ 0.2938719123571229
+ 0.29387997393518267
+ 0.29388803575543815
+ 0.29389609781790127
+ 0.29390416012258158
+ 0.29391222266949024
+ 0.29392028545863685
+ 0.29392834849003391
+ 0.29393641176369034
+ 0.29394447527961726
+ 0.29395253903782576
+ 0.29396060303832611
+ 0.2939686672811288
+ 0.29397673176624489
+ 0.29398479649368392
+ 0.29399286146345854
+ 0.29400092667557759
+ 0.29400899213005227
+ 0.29401705782689358
+ 0.29402512376611184
+ 0.29403318994771749
+ 0.29404125637172168
+ 0.29404932303813469
+ 0.2940573899469669
+ 0.2940654570982294
+ 0.29407352449193258
+ 0.29408159212808754
+ 0.29408966000670467
+ 0.29409772812779428
+ 0.29410579649136748
+ 0.29411386509743398
+ 0.29412193394600555
+ 0.2941300030370933
+ 0.29413807237070616
+ 0.29414614194685523
+ 0.29415421176555234
+ 0.29416228182680715
+ 0.29417035213062998
+ 0.29417842267703276
+ 0.29418649346602499
+ 0.29419456449761794
+ 0.29420263577182187
+ 0.29421070728864729
+ 0.29421877904810584
+ 0.29422685105020663
+ 0.29423492329496209
+ 0.29424299578238117
+ 0.29425106851247579
+ 0.29425914148525628
+ 0.29426721470073308
+ 0.29427528815891718
+ 0.29428336185981824
+ 0.29429143580344824
+ 0.29429950998981674
+ 0.29430758441893562
+ 0.29431565909081375
+ 0.2943237340054638
+ 0.29433180916289531
+ 0.29433988456311944
+ 0.29434796020614662
+ 0.29435603609198724
+ 0.29436411222065162
+ 0.29437218859215164
+ 0.29438026520649702
+ 0.29438834206369874
+ 0.29439641916376807
+ 0.29440449650671457
+ 0.29441257409254945
+ 0.29442065192128297
+ 0.29442872999292646
+ 0.29443680830749008
+ 0.29444488686498516
+ 0.29445296566542195
+ 0.29446104470881013
+ 0.2944691239951624
+ 0.29447720352448831
+ 0.29448528329679824
+ 0.29449336331210341
+ 0.29450144357041425
+ 0.29450952407174102
+ 0.29451760481609568
+ 0.29452568580348781
+ 0.29453376703392864
+ 0.29454184850742782
+ 0.29454993022399717
+ 0.29455801218364713
+ 0.29456609438638875
+ 0.29457417683223186
+ 0.29458225952118744
+ 0.29459034245326599
+ 0.2945984256284786
+ 0.29460650904683572
+ 0.2946145927083485
+ 0.29462267661302721
+ 0.29463076076088235
+ 0.29463884515192434
+ 0.29464692978616508
+ 0.29465501466361416
+ 0.29466309978428351
+ 0.29467118514818208
+ 0.29467927075532169
+ 0.29468735660571277
+ 0.29469544269936582
+ 0.29470352903629188
+ 0.29471161561650211
+ 0.2947197024400055
+ 0.29472778950681455
+ 0.29473587681693908
+ 0.29474396437039024
+ 0.29475205216717831
+ 0.29476014020731384
+ 0.29476822849080792
+ 0.29477631701767093
+ 0.29478440578791404
+ 0.29479249480154773
+ 0.29480058405858306
+ 0.29480867355902979
+ 0.29481676330289908
+ 0.29482485329020197
+ 0.29483294352094896
+ 0.29484103399515055
+ 0.29484912471281705
+ 0.294857215673961
+ 0.29486530687859092
+ 0.29487339832671838
+ 0.29488149001835467
+ 0.29488958195350951
+ 0.29489767413219481
+ 0.29490576655441941
+ 0.29491385922019603
+ 0.29492195212953365
+ 0.29493004528244476
+ 0.29493813867893853
+ 0.29494623231902667
+ 0.29495432620271966
+ 0.29496242033002723
+ 0.29497051470096131
+ 0.29497860931553294
+ 0.29498670417375117
+ 0.29499479927562866
+ 0.29500289462117435
+ 0.29501099021040006
+ 0.29501908604331634
+ 0.29502718211993278
+ 0.29503527844026212
+ 0.29504337500431405
+ 0.2950514718120989
+ 0.29505956886362794
+ 0.29506766615891156
+ 0.29507576369796101
+ 0.29508386148078658
+ 0.29509195950739886
+ 0.29510005777780968
+ 0.29510815629202797
+ 0.29511625505006572
+ 0.29512435405193332
+ 0.29513245329764126
+ 0.29514055278720069
+ 0.29514865252062206
+ 0.29515675249791651
+ 0.29516485271909448
+ 0.29517295318416575
+ 0.29518105389314292
+ 0.2951891548460357
+ 0.29519725604285457
+ 0.29520535748361137
+ 0.29521345916831587
+ 0.2952215610969785
+ 0.29522966326961048
+ 0.29523776568622295
+ 0.29524586834682631
+ 0.29525397125143116
+ 0.29526207440004854
+ 0.29527017779268894
+ 0.29527828142936285
+ 0.29528638531008139
+ 0.29529448943485515
+ 0.29530259380369511
+ 0.29531069841661189
+ 0.29531880327361665
+ 0.29532690837471898
+ 0.29533501371993098
+ 0.29534311930926227
+ 0.29535122514272411
+ 0.29535933122032759
+ 0.2953674375420825
+ 0.29537554410800082
+ 0.29538365091809216
+ 0.29539175797236777
+ 0.29539986527083889
+ 0.29540797281351583
+ 0.29541608060040847
+ 0.29542418863152942
+ 0.29543229690688771
+ 0.29544040542649447
+ 0.29544851419036167
+ 0.2954566231984983
+ 0.29546473245091698
+ 0.2954728419476268
+ 0.29548095168863964
+ 0.29548906167396521
+ 0.29549717190361552
+ 0.29550528237760021
+ 0.29551339309593055
+ 0.29552150405861771
+ 0.29552961526567145
+ 0.29553772671710371
+ 0.2955458384129242
+ 0.29555395035314408
+ 0.2955620625377739
+ 0.29557017496682486
+ 0.29557828764030813
+ 0.29558640055823343
+ 0.29559451372061207
+ 0.29560262712745444
+ 0.29561074077877175
+ 0.29561885467457527
+ 0.29562696881487466
+ 0.29563508319968046
+ 0.29564319782900528
+ 0.29565131270285816
+ 0.29565942782125038
+ 0.29566754318419303
+ 0.29567565879169672
+ 0.2956837746437726
+ 0.2956918907404304
+ 0.29570000708168132
+ 0.29570812366753663
+ 0.29571624049800682
+ 0.29572435757310306
+ 0.29573247489283511
+ 0.29574059245721418
+ 0.29574871026625149
+ 0.29575682831995753
+ 0.29576494661834357
+ 0.29577306516141927
+ 0.29578118394919672
+ 0.29578930298168549
+ 0.29579742225889766
+ 0.29580554178084228
+ 0.29581366154753191
+ 0.29582178155897637
+ 0.29582990181518626
+ 0.29583802231617334
+ 0.29584614306194751
+ 0.29585426405251991
+ 0.29586238528790115
+ 0.29587050676810306
+ 0.29587862849313473
+ 0.29588675046300744
+ 0.29589487267773301
+ 0.29590299513732127
+ 0.29591111784178276
+ 0.29591924079112941
+ 0.29592736398537178
+ 0.29593548742451947
+ 0.29594361110858391
+ 0.29595173503757688
+ 0.29595985921150764
+ 0.2959679836303879
+ 0.29597610829422832
+ 0.29598423320304007
+ 0.29599235835683296
+ 0.29600048375561899
+ 0.29600860939940782
+ 0.29601673528821082
+ 0.29602486142203915
+ 0.29603298780090254
+ 0.29604111442481301
+ 0.29604924129378041
+ 0.29605736840781588
+ 0.29606549576693064
+ 0.2960736233711353
+ 0.29608175122044028
+ 0.29608987931485681
+ 0.29609800765439553
+ 0.29610613623906679
+ 0.296114265068882
+ 0.29612239414385222
+ 0.29613052346398733
+ 0.29613865302929931
+ 0.29614678283979867
+ 0.29615491289549523
+ 0.29616304319640085
+ 0.29617117374252544
+ 0.29617930453388092
+ 0.296187435570477
+ 0.29619556685232507
+ 0.29620369837943633
+ 0.29621183015182123
+ 0.29621996216949043
+ 0.29622809443245507
+ 0.29623622694072566
+ 0.29624435969431273
+ 0.29625249269322762
+ 0.29626062593748148
+ 0.29626875942708419
+ 0.29627689316204764
+ 0.2962850271423817
+ 0.29629316136809758
+ 0.29630129583920578
+ 0.2963094305557184
+ 0.29631756551764438
+ 0.29632570072499648
+ 0.2963338361777838
+ 0.29634197187601835
+ 0.29635010781970983
+ 0.29635824400887101
+ 0.29636638044351099
+ 0.29637451712364027
+ 0.29638265404927155
+ 0.29639079122041395
+ 0.29639892863707945
+ 0.29640706629927849
+ 0.29641520420702183
+ 0.29642334236031975
+ 0.29643148075918357
+ 0.29643961940362468
+ 0.29644775829365355
+ 0.29645589742928141
+ 0.29646403681051742
+ 0.29647217643737495
+ 0.29648031630986238
+ 0.29648845642799243
+ 0.29649659679177487
+ 0.29650473740122107
+ 0.29651287825634082
+ 0.29652101935714675
+ 0.2965291607036481
+ 0.29653730229585745
+ 0.29654544413378392
+ 0.29655358621743882
+ 0.29656172854683344
+ 0.2965698711219783
+ 0.29657801394288463
+ 0.29658615700956303
+ 0.29659430032202405
+ 0.29660244388027895
+ 0.29661058768433823
+ 0.29661873173421327
+ 0.29662687602991378
+ 0.29663502057145258
+ 0.29664316535883872
+ 0.2966513103920842
+ 0.29665945567119889
+ 0.29666760119619479
+ 0.29667574696708165
+ 0.29668389298387082
+ 0.29669203924657361
+ 0.29670018575520046
+ 0.29670833250976131
+ 0.29671647951026886
+ 0.29672462675673295
+ 0.29673277424916406
+ 0.29674092198757362
+ 0.29674906997197203
+ 0.29675721820237144
+ 0.29676536667878084
+ 0.29677351540121305
+ 0.29678166436967718
+ 0.29678981358418516
+ 0.29679796304474693
+ 0.29680611275137442
+ 0.29681426270407824
+ 0.29682241290286898
+ 0.29683056334775709
+ 0.29683871403875473
+ 0.29684686497587243
+ 0.29685501615911919
+ 0.29686316758850861
+ 0.29687131926404975
+ 0.29687947118575397
+ 0.29688762335363245
+ 0.29689577576769582
+ 0.29690392842795466
+ 0.29691208133442026
+ 0.2969202344871032
+ 0.29692838788601478
+ 0.2969365415311655
+ 0.29694469542256668
+ 0.29695284956022827
+ 0.29696100394416297
+ 0.29696915857437911
+ 0.29697731345089029
+ 0.29698546857370545
+ 0.29699362394283607
+ 0.29700177955829266
+ 0.29700993542008652
+ 0.29701809152822894
+ 0.29702624788273052
+ 0.29703440448360191
+ 0.29704256133085349
+ 0.29705071842449754
+ 0.29705887576454371
+ 0.29706703335100337
+ 0.29707519118388792
+ 0.29708334926320706
+ 0.29709150758897224
+ 0.29709966616119543
+ 0.29710782497988575
+ 0.29711598404505529
+ 0.29712414335671455
+ 0.29713230291487353
+ 0.29714046271954553
+ 0.29714862277073911
+ 0.29715678306846555
+ 0.29716494361273688
+ 0.29717310440356365
+ 0.29718126544095574
+ 0.29718942672492521
+ 0.29719758825548198
+ 0.29720575003263805
+ 0.29721391205640318
+ 0.2972220743267896
+ 0.29723023684380701
+ 0.2972383996074669
+ 0.29724656261778043
+ 0.29725472587475754
+ 0.2972628893784095
+ 0.29727105312874852
+ 0.29727921712578353
+ 0.2972873813695267
+ 0.29729554585998857
+ 0.2973037105971798
+ 0.29731187558111172
+ 0.29732004081179558
+ 0.29732820628924134
+ 0.29733637201346025
+ 0.2973445379844637
+ 0.29735270420226223
+ 0.29736087066686645
+ 0.29736903737828774
+ 0.29737720433653669
+ 0.29738537154162531
+ 0.2973935389935628
+ 0.29740170669236121
+ 0.29740987463803115
+ 0.29741804283058387
+ 0.29742621127002938
+ 0.29743437995637972
+ 0.29744254888964461
+ 0.29745071806983631
+ 0.29745888749696464
+ 0.2974670571710416
+ 0.29747522709207719
+ 0.29748339726008194
+ 0.29749156767506862
+ 0.2974997383370464
+ 0.29750790924602671
+ 0.29751608040202071
+ 0.29752425180504
+ 0.29753242345509423
+ 0.29754059535219413
+ 0.29754876749635173
+ 0.29755693988757764
+ 0.29756511252588325
+ 0.29757328541127842
+ 0.29758145854377449
+ 0.29758963192338284
+ 0.29759780555011406
+ 0.29760597942397948
+ 0.29761415354498899
+ 0.29762232791315474
+ 0.2976305025284865
+ 0.29763867739099653
+ 0.29764685250069522
+ 0.29765502785759335
+ 0.29766320346170078
+ 0.297671379313031
+ 0.2976795554115933
+ 0.29768773175739816
+ 0.29769590835045773
+ 0.2977040851907819
+ 0.29771226227838277
+ 0.29772043961327099
+ 0.2977286171954564
+ 0.29773679502495104
+ 0.29774497310176568
+ 0.29775315142591158
+ 0.29776132999739868
+ 0.29776950881623832
+ 0.29777768788244258
+ 0.29778586719602063
+ 0.29779404675698462
+ 0.29780222656534505
+ 0.29781040662111347
+ 0.29781858692429963
+ 0.29782676747491571
+ 0.29783494827297152
+ 0.29784312931847928
+ 0.29785131061144954
+ 0.29785949215189228
+ 0.29786767393982022
+ 0.29787585597524263
+ 0.2978840382581715
+ 0.29789222078861682
+ 0.29790040356659075
+ 0.29790858659210379
+ 0.29791676986516669
+ 0.29792495338579006
+ 0.29793313715398601
+ 0.29794132116976513
+ 0.29794950543313731
+ 0.29795768994411476
+ 0.29796587470270736
+ 0.29797405970892715
+ 0.2979822449627848
+ 0.29799043046429102
+ 0.29799861621345719
+ 0.29800680221029313
+ 0.29801498845481172
+ 0.29802317494702218
+ 0.29803136168693661
+ 0.29803954867456561
+ 0.2980477359099199
+ 0.29805592339301001
+ 0.29806411112384895
+ 0.29807229910244509
+ 0.29808048732881126
+ 0.29808867580295811
+ 0.29809686452489559
+ 0.29810505349463584
+ 0.29811324271218942
+ 0.29812143217756709
+ 0.29812962189078024
+ 0.29813781185183935
+ 0.29814600206075603
+ 0.29815419251754155
+ 0.29816238322220512
+ 0.29817057417475962
+ 0.29817876537521493
+ 0.29818695682358248
+ 0.29819514851987367
+ 0.29820334046409835
+ 0.29821153265626876
+ 0.29821972509639472
+ 0.29822791778448848
+ 0.29823611072055983
+ 0.29824430390462098
+ 0.29825249733668108
+ 0.29826069101675307
+ 0.29826888494484755
+ 0.29827707912097445
+ 0.29828527354514522
+ 0.29829346821737124
+ 0.29830166313766382
+ 0.29830985830603307
+ 0.29831805372249093
+ 0.29832624938704749
+ 0.29833444529971331
+ 0.29834264146050138
+ 0.29835083786942079
+ 0.29835903452648371
+ 0.29836723143170008
+ 0.29837542858508204
+ 0.29838362598664031
+ 0.29839182363638472
+ 0.29840002153432826
+ 0.29840821968048081
+ 0.29841641807485303
+ 0.2984246167174564
+ 0.29843281560830148
+ 0.29844101474740059
+ 0.2984492141347635
+ 0.29845741377040086
+ 0.298465613654325
+ 0.29847381378654653
+ 0.29848201416707609
+ 0.29849021479592436
+ 0.29849841567310348
+ 0.2985066167986235
+ 0.29851481817249564
+ 0.29852301979473073
+ 0.29853122166534096
+ 0.29853942378433612
+ 0.29854762615172703
+ 0.29855582876752579
+ 0.29856403163174305
+ 0.29857223474438888
+ 0.29858043810547602
+ 0.29858864171501448
+ 0.29859684557301425
+ 0.2986050496794882
+ 0.298613254034447
+ 0.29862145863790063
+ 0.2986296634898612
+ 0.29863786859033947
+ 0.29864607393934606
+ 0.29865427953689172
+ 0.29866248538298856
+ 0.29867069147764658
+ 0.29867889782087792
+ 0.29868710441269258
+ 0.29869531125310195
+ 0.29870351834211745
+ 0.29871172567974907
+ 0.29871993326600965
+ 0.29872814110090773
+ 0.29873634918445624
+ 0.29874455751666656
+ 0.29875276609754792
+ 0.29876097492711184
+ 0.29876918400537111
+ 0.29877739333233427
+ 0.2987856029080142
+ 0.29879381273242095
+ 0.29880202280556584
+ 0.29881023312746041
+ 0.29881844369811528
+ 0.2988266545175412
+ 0.29883486558574962
+ 0.29884307690275119
+ 0.29885128846855746
+ 0.29885950028317892
+ 0.29886771234662651
+ 0.29887592465891238
+ 0.29888413722004709
+ 0.29889235003004067
+ 0.29890056308890539
+ 0.29890877639665181
+ 0.29891698995329152
+ 0.29892520375883441
+ 0.29893341781329269
+ 0.29894163211667707
+ 0.29894984666899749
+ 0.29895806147026693
+ 0.29896627652049534
+ 0.29897449181969343
+ 0.29898270736787336
+ 0.29899092316504516
+ 0.29899913921122095
+ 0.29900735550641083
+ 0.29901557205062612
+ 0.29902378884387765
+ 0.29903200588617673
+ 0.29904022317753493
+ 0.29904844071796222
+ 0.29905665850747076
+ 0.29906487654607133
+ 0.29907309483377453
+ 0.29908131337059118
+ 0.2990895321565335
+ 0.29909775119161142
+ 0.29910597047583709
+ 0.29911419000922052
+ 0.29912240979177324
+ 0.29913062982350669
+ 0.29913885010443081
+ 0.29914707063455787
+ 0.29915529141389852
+ 0.29916351244246353
+ 0.29917173372026507
+ 0.29917995524731245
+ 0.29918817702361783
+ 0.29919639904919265
+ 0.29920462132404696
+ 0.29921284384819219
+ 0.29922106662163983
+ 0.2992292896444006
+ 0.29923751291648598
+ 0.29924573643790592
+ 0.29925396020867273
+ 0.29926218422879775
+ 0.29927040849829106
+ 0.2992786330171634
+ 0.29928685778542696
+ 0.29929508280309242
+ 0.29930330807017064
+ 0.29931153358667295
+ 0.29931975935261018
+ 0.29932798536799382
+ 0.29933621163283458
+ 0.2993444381471439
+ 0.29935266491093254
+ 0.29936089192421134
+ 0.29936911918699227
+ 0.29937734669928562
+ 0.2993855744611027
+ 0.29939380247245506
+ 0.29940203073335336
+ 0.29941025924380854
+ 0.29941848800383181
+ 0.2994267170134341
+ 0.29943494627262679
+ 0.29944317578142149
+ 0.29945140553982807
+ 0.29945963554785882
+ 0.29946786580552381
+ 0.29947609631283517
+ 0.29948432706980294
+ 0.29949255807643865
+ 0.2995007893327537
+ 0.29950902083875963
+ 0.29951725259446577
+ 0.29952548459988498
+ 0.29953371685502811
+ 0.29954194935990514
+ 0.29955018211452822
+ 0.29955841511890746
+ 0.29956664837305513
+ 0.29957488187698261
+ 0.29958311563069923
+ 0.29959134963421719
+ 0.29959958388754809
+ 0.29960781839070189
+ 0.29961605314369
+ 0.29962428814652481
+ 0.29963252339921548
+ 0.29964075890177505
+ 0.2996489946542128
+ 0.29965723065654093
+ 0.29966546690877099
+ 0.29967370341091221
+ 0.29968194016297767
+ 0.29969017716497798
+ 0.2996984144169233
+ 0.29970665191882578
+ 0.29971488967069626
+ 0.29972312767254544
+ 0.29973136592438493
+ 0.2997396044262261
+ 0.29974784317807984
+ 0.29975608217995681
+ 0.2997643214318686
+ 0.29977256093382593
+ 0.29978080068584034
+ 0.29978904068792261
+ 0.29979728094008418
+ 0.29980552144233591
+ 0.29981376219468925
+ 0.29982200319715496
+ 0.29983024444974471
+ 0.29983848595246904
+ 0.2998467277053396
+ 0.29985496970836639
+ 0.29986321196156251
+ 0.29987145446493713
+ 0.29987969721850249
+ 0.29988794022226944
+ 0.29989618347624875
+ 0.29990442698045267
+ 0.2999126707348912
+ 0.29992091473957594
+ 0.29992915899451761
+ 0.29993740349972775
+ 0.29994564825521786
+ 0.29995389326099803
+ 0.29996213851708042
+ 0.29997038402347598
+ 0.29997862978019535
+ 0.29998687578725008
+ 0.29999512204465106
+ 0.30000336855240967
+ 0.30001161531053677
+ 0.30001986231904393
+ 0.30002810957794185
+ 0.30003635708724208
+ 0.30004460484695544
+ 0.30005285285709343
+ 0.30006110111766693
+ 0.30006934962868659
+ 0.30007759839016396
+ 0.30008584740211142
+ 0.30009409666453818
+ 0.30010234617745662
+ 0.30011059594087741
+ 0.30011884595481142
+ 0.30012709621927092
+ 0.3001353467342659
+ 0.30014359749980796
+ 0.30015184851590793
+ 0.30016009978257796
+ 0.30016835129982822
+ 0.30017660306766952
+ 0.30018485508611481
+ 0.30019310735517341
+ 0.30020135987485691
+ 0.30020961264517754
+ 0.30021786566614467
+ 0.30022611893777129
+ 0.30023437246006746
+ 0.30024262623304476
+ 0.30025088025671393
+ 0.3002591345310866
+ 0.30026738905617345
+ 0.3002756438319869
+ 0.30028389885853624
+ 0.30029215413583366
+ 0.3003004096638901
+ 0.30030866544271706
+ 0.30031692147232603
+ 0.30032517775272716
+ 0.30033343428393122
+ 0.30034169106595127
+ 0.30034994809879728
+ 0.30035820538248098
+ 0.30036646291701302
+ 0.30037472070240506
+ 0.30038297873866709
+ 0.30039123702581144
+ 0.30039949556384971
+ 0.30040775435279188
+ 0.30041601339264956
+ 0.30042427268343436
+ 0.30043253222515626
+ 0.30044079201782836
+ 0.30044905206145994
+ 0.30045731235606332
+ 0.30046557290164938
+ 0.30047383369822889
+ 0.30048209474581339
+ 0.30049035604441449
+ 0.30049861759404367
+ 0.30050687939471038
+ 0.30051514144642683
+ 0.30052340374920472
+ 0.30053166630305472
+ 0.30053992910798843
+ 0.30054819216401596
+ 0.30055645547114967
+ 0.3005647190294003
+ 0.3005729828387787
+ 0.30058124689929644
+ 0.30058951121096511
+ 0.30059777577379476
+ 0.30060604058779772
+ 0.30061430565298491
+ 0.30062257096936701
+ 0.30063083653695566
+ 0.30063910235576236
+ 0.30064736842579737
+ 0.30065563474707285
+ 0.30066390131959969
+ 0.30067216814338876
+ 0.30068043521845156
+ 0.3006887025447989
+ 0.30069697012244251
+ 0.30070523795139309
+ 0.30071350603166302
+ 0.30072177436326236
+ 0.30073004294620198
+ 0.30073831178049421
+ 0.3007465808661498
+ 0.30075485020317971
+ 0.30076311979159465
+ 0.30077138963140787
+ 0.30077965972262782
+ 0.30078793006526838
+ 0.30079620065933887
+ 0.30080447150485168
+ 0.30081274260181684
+ 0.30082101395024669
+ 0.30082928555015137
+ 0.3008375574015425
+ 0.30084582950443228
+ 0.30085410185883094
+ 0.30086237446475006
+ 0.30087064732219965
+ 0.30087892043119285
+ 0.30088719379173978
+ 0.30089546740385203
+ 0.30090374126754038
+ 0.30091201538281653
+ 0.30092028974969121
+ 0.30092856436817689
+ 0.30093683923828285
+ 0.30094511436002142
+ 0.3009533897334043
+ 0.30096166535844143
+ 0.30096994123514531
+ 0.30097821736352598
+ 0.30098649374359571
+ 0.30099477037536476
+ 0.30100304725884541
+ 0.30101132439404849
+ 0.30101960178098486
+ 0.30102787941966619
+ 0.30103615731010325
+ 0.30104443545230769
+ 0.3010527138462904
+ 0.30106099249206297
+ 0.30106927138963691
+ 0.30107755053902246
+ 0.30108582994023114
+ 0.30109410959327537
+ 0.30110238949816526
+ 0.30111066965491157
+ 0.30111895006352679
+ 0.3011272307240217
+ 0.30113551163640795
+ 0.30114379280069492
+ 0.30115207421689649
+ 0.30116035588502188
+ 0.30116863780508363
+ 0.30117691997709178
+ 0.30118520240105867
+ 0.30119348507699606
+ 0.30120176800491311
+ 0.3012100511848223
+ 0.30121833461673525
+ 0.30122661830066205
+ 0.30123490223661509
+ 0.30124318642460518
+ 0.30125147086464338
+ 0.30125975555674112
+ 0.30126804050091005
+ 0.30127632569716106
+ 0.30128461114550509
+ 0.30129289684595367
+ 0.30130118279851775
+ 0.30130946900320965
+ 0.30131775546003953
+ 0.30132604216901904
+ 0.30133432913015973
+ 0.30134261634347181
+ 0.30135090380896756
+ 0.30135919152665797
+ 0.30136747949655462
+ 0.30137576771866836
+ 0.30138405619301012
+ 0.30139234491959149
+ 0.30140063389842414
+ 0.30140892312951895
+ 0.30141721261288751
+ 0.30142550234854076
+ 0.30143379233648954
+ 0.30144208257674548
+ 0.30145037306932032
+ 0.30145866381422554
+ 0.30146695481147068
+ 0.30147524606106946
+ 0.30148353756303065
+ 0.3014918293173674
+ 0.30150012132409043
+ 0.30150841358321084
+ 0.30151670609474013
+ 0.30152499885868927
+ 0.30153329187506911
+ 0.30154158514389207
+ 0.30154987866516897
+ 0.30155817243891009
+ 0.30156646646512841
+ 0.30157476074383421
+ 0.30158305527503904
+ 0.30159135005875387
+ 0.3015996450949911
+ 0.30160794038376004
+ 0.3016162359250732
+ 0.30162453171894216
+ 0.30163282776537703
+ 0.30164112406439025
+ 0.30164942061599348
+ 0.3016577174201962
+ 0.30166601447701069
+ 0.3016743117864486
+ 0.30168260934852092
+ 0.30169090716323854
+ 0.30169920523061378
+ 0.30170750355065684
+ 0.3017158021233794
+ 0.30172410094879237
+ 0.30173240002690815
+ 0.30174069935773684
+ 0.30174899894129092
+ 0.30175729877757973
+ 0.30176559886661725
+ 0.30177389920841213
+ 0.30178219980297744
+ 0.3017905006503242
+ 0.30179880175046325
+ 0.3018071031034063
+ 0.30181540470916346
+ 0.30182370656774798
+ 0.30183200867916987
+ 0.301840311043441
+ 0.30184861366057214
+ 0.301856916530575
+ 0.30186521965346047
+ 0.30187352302924025
+ 0.30188182665792523
+ 0.30189013053952785
+ 0.30189843467405825
+ 0.3019067390615281
+ 0.30191504370194838
+ 0.30192334859533071
+ 0.30193165374168673
+ 0.3019399591410275
+ 0.30194826479336373
+ 0.30195657069870802
+ 0.30196487685707041
+ 0.30197318326846273
+ 0.30198148993289653
+ 0.30198979685038274
+ 0.30199810402093313
+ 0.30200641144455848
+ 0.30201471912126987
+ 0.30202302705107958
+ 0.30203133523399872
+ 0.30203964367003727
+ 0.30204795235920856
+ 0.30205626130152269
+ 0.30206457049699137
+ 0.30207287994562554
+ 0.30208118964743685
+ 0.30208949960243697
+ 0.30209780981063616
+ 0.30210612027204675
+ 0.30211443098667984
+ 0.30212274195454691
+ 0.30213105317565825
+ 0.30213936465002628
+ 0.30214767637766199
+ 0.30215598835857699
+ 0.30216430059278226
+ 0.3021726130802887
+ 0.30218092582110878
+ 0.30218923881525273
+ 0.30219755206273285
+ 0.30220586556356027
+ 0.30221417931774508
+ 0.30222249332530049
+ 0.30223080758623583
+ 0.30223912210056447
+ 0.30224743686829653
+ 0.3022557518894437
+ 0.30226406716401694
+ 0.30227238269202861
+ 0.3022806984734891
+ 0.30228901450840917
+ 0.3022973307968021
+ 0.30230564733867732
+ 0.30231396413404726
+ 0.30232228118292293
+ 0.30233059848531596
+ 0.3023389160412373
+ 0.30234723385069878
+ 0.30235555191371122
+ 0.30236387023028555
+ 0.30237218880043432
+ 0.30238050762416846
+ 0.30238882670149891
+ 0.30239714603243734
+ 0.30240546561699549
+ 0.3024137854551836
+ 0.3024221055470141
+ 0.30243042589249791
+ 0.30243874649164604
+ 0.30244706734447013
+ 0.30245538845098197
+ 0.30246370981119247
+ 0.30247203142511336
+ 0.30248035329275563
+ 0.30248867541413016
+ 0.30249699778924949
+ 0.3025053204181245
+ 0.30251364330076624
+ 0.30252196643718637
+ 0.30253028982739594
+ 0.30253861347140654
+ 0.30254693736922922
+ 0.30255526152087636
+ 0.30256358592635757
+ 0.30257191058568594
+ 0.30258023549887175
+ 0.30258856066592749
+ 0.3025968860868633
+ 0.30260521176169092
+ 0.3026135376904221
+ 0.30262186387306783
+ 0.30263019030963983
+ 0.30263851700014976
+ 0.30264684394460789
+ 0.30265517114302593
+ 0.30266349859541564
+ 0.30267182630178863
+ 0.30268015426215533
+ 0.30268848247652874
+ 0.30269681094491852
+ 0.30270513966733631
+ 0.30271346864379456
+ 0.30272179787430431
+ 0.30273012735887578
+ 0.30273845709752145
+ 0.30274678709025299
+ 0.30275511733708071
+ 0.30276344783801706
+ 0.30277177859307225
+ 0.30278010960225876
+ 0.3027884408655877
+ 0.3027967723830699
+ 0.30280510415471712
+ 0.30281343618054113
+ 0.30282176846055292
+ 0.30283010099476348
+ 0.30283843378318454
+ 0.30284676682582778
+ 0.30285510012270506
+ 0.30286343367382651
+ 0.30287176747920391
+ 0.3028801015388497
+ 0.3028884358527742
+ 0.30289677042098839
+ 0.30290510524350472
+ 0.30291344032033418
+ 0.30292177565148787
+ 0.30293011123697816
+ 0.30293844707681533
+ 0.30294678317101109
+ 0.30295511951957732
+ 0.3029634561225249
+ 0.30297179297986554
+ 0.30298013009161107
+ 0.30298846745777175
+ 0.3029968050783593
+ 0.30300514295338615
+ 0.30301348108286263
+ 0.30302181946679979
+ 0.30303015810521078
+ 0.30303849699810514
+ 0.30304683614549532
+ 0.3030551755473932
+ 0.30306351520380892
+ 0.30307185511475432
+ 0.30308019528024105
+ 0.30308853570028088
+ 0.30309687637488419
+ 0.30310521730406348
+ 0.3031135584878295
+ 0.30312189992619354
+ 0.30313024161916724
+ 0.30313858356676243
+ 0.30314692576898999
+ 0.30315526822586181
+ 0.30316361093738881
+ 0.30317195390358287
+ 0.30318029712445405
+ 0.30318864060001577
+ 0.30319698433027908
+ 0.30320532831525415
+ 0.30321367255495346
+ 0.30322201704938739
+ 0.30323036179856916
+ 0.30323870680250825
+ 0.30324705206121721
+ 0.30325539757470782
+ 0.30326374334299105
+ 0.30327208936607725
+ 0.30328043564397883
+ 0.30328878217670763
+ 0.30329712896427469
+ 0.30330547600669094
+ 0.30331382330396905
+ 0.3033221708561184
+ 0.30333051866315308
+ 0.30333886672508187
+ 0.30334721504191803
+ 0.3033555636136725
+ 0.30336391244035649
+ 0.30337226152198166
+ 0.30338061085855977
+ 0.30338896045010116
+ 0.30339731029661832
+ 0.30340566039812228
+ 0.30341401075462482
+ 0.30342236136613693
+ 0.30343071223267054
+ 0.30343906335423654
+ 0.30344741473084597
+ 0.30345576636251143
+ 0.30346411824924391
+ 0.30347247039105518
+ 0.30348082278795552
+ 0.30348917543995757
+ 0.30349752834707222
+ 0.30350588150931135
+ 0.30351423492668594
+ 0.30352258859920783
+ 0.303530942526888
+ 0.30353929670973906
+ 0.30354765114777049
+ 0.30355600584099562
+ 0.30356436078942473
+ 0.30357271599306962
+ 0.30358107145194124
+ 0.30358942716605303
+ 0.30359778313541447
+ 0.30360613936003655
+ 0.30361449583993261
+ 0.30362285257511368
+ 0.30363120956559009
+ 0.30363956681137444
+ 0.30364792431247756
+ 0.30365628206891071
+ 0.30366464008068633
+ 0.30367299834781486
+ 0.30368135687030862
+ 0.30368971564817882
+ 0.30369807468143656
+ 0.30370643397009273
+ 0.3037147935141607
+ 0.30372315331365002
+ 0.30373151336857329
+ 0.30373987367894151
+ 0.30374823424476655
+ 0.30375659506605934
+ 0.30376495614283255
+ 0.30377331747509567
+ 0.30378167906286135
+ 0.30379004090614198
+ 0.30379840300494648
+ 0.30380676535928897
+ 0.30381512796917887
+ 0.30382349083462962
+ 0.30383185395565143
+ 0.30384021733225536
+ 0.30384858096445477
+ 0.30385694485225928
+ 0.30386530899568059
+ 0.30387367339473126
+ 0.30388203804942171
+ 0.30389040295976438
+ 0.30389876812576971
+ 0.30390713354744947
+ 0.30391549922481542
+ 0.30392386515787945
+ 0.30393223134665259
+ 0.30394059779114585
+ 0.30394896449137193
+ 0.30395733144734105
+ 0.30396569865906586
+ 0.30397406612655659
+ 0.3039824338498251
+ 0.30399080182888399
+ 0.30399917006374283
+ 0.30400753855441565
+ 0.30401590730091127
+ 0.30402427630324308
+ 0.30403264556142134
+ 0.30404101507545866
+ 0.30404938484536542
+ 0.30405775487115405
+ 0.30406612515283576
+ 0.30407449569042155
+ 0.30408286648392407
+ 0.3040912375333536
+ 0.30409960883872272
+ 0.30410798040004172
+ 0.30411635221732258
+ 0.30412472429057696
+ 0.30413309661981675
+ 0.30414146920505308
+ 0.3041498420462978
+ 0.30415821514356189
+ 0.30416658849685652
+ 0.30417496210619427
+ 0.30418333597158542
+ 0.30419171009304258
+ 0.30420008447057689
+ 0.30420845910419936
+ 0.30421683399392263
+ 0.30422520913975704
+ 0.30423358454171512
+ 0.30424196019980732
+ 0.30425033611404606
+ 0.3042587122844419
+ 0.30426708871100722
+ 0.30427546539375405
+ 0.3042838423326919
+ 0.30429221952783408
+ 0.30430059697919171
+ 0.30430897468677587
+ 0.3043173526505985
+ 0.30432573087067133
+ 0.30433410934700472
+ 0.30434248807961206
+ 0.30435086706850295
+ 0.30435924631369005
+ 0.30436762581518428
+ 0.30437600557299843
+ 0.30438438558714198
+ 0.30439276585762837
+ 0.30440114638446786
+ 0.30440952716767311
+ 0.30441790820725445
+ 0.30442628950322453
+ 0.30443467105559358
+ 0.3044430528643744
+ 0.30445143492957716
+ 0.30445981725121535
+ 0.30446819982929851
+ 0.30447658266383926
+ 0.30448496575484946
+ 0.30449334910233949
+ 0.30450173270632191
+ 0.30451011656680788
+ 0.30451850068380848
+ 0.30452688505733638
+ 0.30453526968740185
+ 0.30454365457401678
+ 0.30455203971719308
+ 0.30456042511694259
+ 0.30456881077327641
+ 0.30457719668620564
+ 0.30458558285574294
+ 0.30459396928189869
+ 0.30460235596468477
+ 0.30461074290411289
+ 0.30461913010019515
+ 0.30462751755294248
+ 0.30463590526236606
+ 0.30464429322847858
+ 0.30465268145129032
+ 0.30466106993081388
+ 0.3046694586670598
+ 0.30467784766004052
+ 0.30468623690976648
+ 0.30469462641625111
+ 0.30470301617950468
+ 0.3047114061995384
+ 0.30471979647636488
+ 0.30472818700999438
+ 0.30473657780043967
+ 0.30474496884771191
+ 0.30475336015182286
+ 0.30476175171278369
+ 0.30477014353060627
+ 0.30477853560530177
+ 0.30478692793688206
+ 0.30479532052535896
+ 0.30480371337074291
+ 0.30481210647304652
+ 0.30482049983228166
+ 0.30482889344845876
+ 0.30483728732159049
+ 0.30484568145168789
+ 0.30485407583876217
+ 0.30486247048282589
+ 0.30487086538388941
+ 0.30487926054196479
+ 0.30488765595706457
+ 0.30489605162919831
+ 0.30490444755837948
+ 0.30491284374461852
+ 0.30492124018792799
+ 0.30492963688831831
+ 0.30493803384580209
+ 0.30494643106039054
+ 0.30495482853209471
+ 0.30496322626092581
+ 0.30497162424689728
+ 0.30498002249002015
+ 0.30498842099030415
+ 0.30499681974776344
+ 0.3050052187624076
+ 0.30501361803424926
+ 0.30502201756329966
+ 0.30503041734957065
+ 0.30503881739307331
+ 0.30504721769381898
+ 0.30505561825182087
+ 0.30506401906708869
+ 0.30507242013963515
+ 0.30508082146947207
+ 0.30508922305660996
+ 0.30509762490106063
+ 0.30510602700283601
+ 0.30511442936194871
+ 0.3051228319784085
+ 0.30513123485222793
+ 0.30513963798341825
+ 0.30514804137199125
+ 0.30515644501795819
+ 0.30516484892133167
+ 0.30517325308212212
+ 0.30518165750034221
+ 0.30519006217600242
+ 0.30519846710911525
+ 0.30520687229969196
+ 0.30521527774774371
+ 0.30522368345328238
+ 0.30523208941631996
+ 0.30524049563686828
+ 0.30524890211493777
+ 0.30525730885054109
+ 0.3052657158436895
+ 0.30527412309439406
+ 0.30528253060266747
+ 0.30529093836852095
+ 0.30529934639196638
+ 0.30530775467301408
+ 0.30531616321167615
+ 0.30532457200796509
+ 0.30533298106189222
+ 0.30534139037346864
+ 0.30534979994270628
+ 0.30535820976961703
+ 0.3053666198542121
+ 0.30537503019650269
+ 0.30538344079650143
+ 0.30539185165421956
+ 0.30540026276966736
+ 0.30540867414285922
+ 0.30541708577380461
+ 0.30542549766251564
+ 0.30543390980900414
+ 0.30544232221328121
+ 0.30545073487535968
+ 0.30545914779524996
+ 0.3054675609729639
+ 0.30547597440851348
+ 0.30548438810191064
+ 0.30549280205316587
+ 0.30550121626229165
+ 0.30550963072930015
+ 0.30551804545420169
+ 0.30552646043700815
+ 0.30553487567773169
+ 0.30554329117638401
+ 0.30555170693297634
+ 0.30556012294752
+ 0.30556853922002752
+ 0.30557695575051019
+ 0.30558537253897999
+ 0.30559378958544725
+ 0.30560220688992468
+ 0.30561062445242343
+ 0.30561904227295639
+ 0.30562746035153304
+ 0.30563587868816694
+ 0.30564429728286852
+ 0.30565271613565048
+ 0.30566113524652322
+ 0.30566955461549944
+ 0.30567797424259036
+ 0.30568639412780718
+ 0.30569481427116257
+ 0.3057032346726678
+ 0.30571165533233402
+ 0.30572007625017317
+ 0.30572849742619651
+ 0.30573691886041665
+ 0.30574534055284486
+ 0.30575376250349151
+ 0.30576218471237016
+ 0.305770607179492
+ 0.30577902990486744
+ 0.30578745288850995
+ 0.30579587613042997
+ 0.30580429963063949
+ 0.30581272338914967
+ 0.30582114740597327
+ 0.30582957168112074
+ 0.305837996214604
+ 0.30584642100643578
+ 0.30585484605662661
+ 0.30586327136518832
+ 0.30587169693213373
+ 0.30588012275747251
+ 0.3058885488412173
+ 0.30589697518338099
+ 0.30590540178397241
+ 0.30591382864300576
+ 0.30592225576049237
+ 0.30593068313644184
+ 0.30593911077086844
+ 0.30594753866378266
+ 0.30595596681519643
+ 0.30596439522512098
+ 0.30597282389356756
+ 0.30598125282054961
+ 0.30598968200607757
+ 0.30599811145016265
+ 0.30600654115281767
+ 0.30601497111405307
+ 0.30602340133388223
+ 0.30603183181231502
+ 0.30604026254936401
+ 0.30604869354504133
+ 0.30605712479935732
+ 0.30606555631232474
+ 0.30607398808395564
+ 0.30608242011426046
+ 0.30609085240325112
+ 0.30609928495094041
+ 0.30610771775733803
+ 0.30611615082245824
+ 0.30612458414631077
+ 0.30613301772890755
+ 0.30614145157026063
+ 0.30614988567038276
+ 0.3061583200292835
+ 0.30616675464697579
+ 0.30617518952347078
+ 0.30618362465878118
+ 0.30619206005291749
+ 0.30620049570589181
+ 0.30620893161771667
+ 0.30621736778840192
+ 0.30622580421796108
+ 0.30623424090640539
+ 0.3062426778537452
+ 0.30625111505999414
+ 0.30625955252516274
+ 0.30626799024926277
+ 0.3062764282323065
+ 0.30628486647430492
+ 0.30629330497527019
+ 0.30630174373521429
+ 0.30631018275414762
+ 0.30631862203208382
+ 0.30632706156903322
+ 0.3063355013650072
+ 0.30634394142001914
+ 0.30635238173407964
+ 0.30636082230719991
+ 0.30636926313939195
+ 0.30637770423066851
+ 0.3063861455810401
+ 0.30639458719051943
+ 0.30640302905911704
+ 0.3064114711868457
+ 0.30641991357371656
+ 0.30642835621974102
+ 0.30643679912493177
+ 0.30644524228930003
+ 0.30645368571285703
+ 0.30646212939561496
+ 0.30647057333758559
+ 0.30647901753878104
+ 0.3064874619992119
+ 0.30649590671888993
+ 0.30650435169782897
+ 0.30651279693603772
+ 0.30652124243352991
+ 0.30652968819031667
+ 0.30653813420641013
+ 0.30654658048182143
+ 0.3065550270165619
+ 0.30656347381064503
+ 0.30657192086408064
+ 0.30658036817688139
+ 0.30658881574905861
+ 0.30659726358062434
+ 0.30660571167159056
+ 0.30661416002196851
+ 0.30662260863176954
+ 0.30663105750100633
+ 0.30663950662969025
+ 0.30664795601783251
+ 0.30665640566544583
+ 0.30666485557254153
+ 0.30667330573913015
+ 0.30668175616522519
+ 0.30669020685083792
+ 0.30669865779597971
+ 0.30670710900066162
+ 0.30671556046489734
+ 0.30672401218869666
+ 0.30673246417207228
+ 0.3067409164150362
+ 0.30674936891759907
+ 0.30675782167977356
+ 0.30676627470157175
+ 0.30677472798300415
+ 0.30678318152408279
+ 0.30679163532482046
+ 0.30680008938522846
+ 0.30680854370531724
+ 0.30681699828510045
+ 0.30682545312458853
+ 0.30683390822379353
+ 0.30684236358272754
+ 0.30685081920140261
+ 0.30685927507982913
+ 0.30686773121802002
+ 0.30687618761598723
+ 0.3068846442737414
+ 0.30689310119129448
+ 0.30690155836865929
+ 0.30691001580584715
+ 0.30691847350286933
+ 0.30692693145973782
+ 0.30693538967646405
+ 0.30694384815306058
+ 0.30695230688953895
+ 0.30696076588591031
+ 0.30696922514218672
+ 0.30697768465838021
+ 0.30698614443450217
+ 0.30699460447056454
+ 0.30700306476657946
+ 0.30701152532255738
+ 0.30701998613851195
+ 0.3070284472144536
+ 0.30703690855039517
+ 0.30704537014634653
+ 0.30705383200232117
+ 0.30706229411833119
+ 0.30707075649438631
+ 0.30707921913050013
+ 0.30708768202668396
+ 0.30709614518294909
+ 0.30710460859930755
+ 0.30711307227577145
+ 0.30712153621235205
+ 0.30713000040906147
+ 0.30713846486591173
+ 0.30714692958291329
+ 0.30715539456007984
+ 0.30716385979742195
+ 0.30717232529495159
+ 0.30718079105268081
+ 0.307189257070621
+ 0.30719772334878342
+ 0.30720618988718168
+ 0.30721465668582632
+ 0.30722312374472854
+ 0.30723159106390135
+ 0.30724005864335596
+ 0.30724852648310441
+ 0.30725699458315736
+ 0.30726546294352908
+ 0.30727393156422855
+ 0.3072824004452695
+ 0.30729086958666307
+ 0.30729933898841993
+ 0.30730780865055374
+ 0.30731627857307564
+ 0.3073247487559978
+ 0.30733321919933076
+ 0.30734168990308736
+ 0.30735016086727895
+ 0.30735863209191677
+ 0.30736710357701447
+ 0.30737557532258186
+ 0.30738404732863173
+ 0.30739251959517616
+ 0.30740099212222655
+ 0.30740946490979415
+ 0.3074179379578918
+ 0.30742641126653009
+ 0.3074348848357219
+ 0.30744335866547845
+ 0.30745183275581189
+ 0.30746030710673433
+ 0.30746878171825631
+ 0.30747725659039138
+ 0.30748573172314936
+ 0.30749420711654396
+ 0.3075026827705849
+ 0.30751115868528661
+ 0.30751963486065881
+ 0.30752811129671442
+ 0.30753658799346473
+ 0.3075450649509211
+ 0.30755354216909636
+ 0.30756201964800184
+ 0.30757049738764969
+ 0.30757897538805112
+ 0.30758745364921836
+ 0.30759593217116277
+ 0.30760441095389701
+ 0.3076128899974318
+ 0.30762136930177997
+ 0.30762984886695283
+ 0.30763832869296254
+ 0.30764680877982037
+ 0.3076552891275392
+ 0.30766376973612891
+ 0.30767225060560383
+ 0.30768073173597371
+ 0.30768921312725078
+ 0.30769769477944786
+ 0.30770617669257627
+ 0.30771465886664734
+ 0.30772314130167322
+ 0.30773162399766674
+ 0.30774010695463777
+ 0.30774859017259915
+ 0.30775707365156368
+ 0.30776555739154138
+ 0.30777404139254483
+ 0.30778252565458636
+ 0.30779101017767729
+ 0.30779949496182968
+ 0.30780798000705489
+ 0.30781646531336582
+ 0.30782495088077305
+ 0.30783343670928942
+ 0.3078419227989263
+ 0.30785040914969508
+ 0.30785889576160858
+ 0.30786738263467817
+ 0.30787586976891529
+ 0.30788435716433271
+ 0.30789284482094176
+ 0.30790133273875397
+ 0.30790982091778124
+ 0.30791830935803588
+ 0.30792679805952994
+ 0.30793528702227402
+ 0.30794377624628172
+ 0.30795226573156281
+ 0.30796075547813112
+ 0.30796924548599797
+ 0.30797773575517462
+ 0.30798622628567257
+ 0.30799471707750531
+ 0.30800320813068283
+ 0.30801169944521867
+ 0.30802019102112349
+ 0.3080286828584094
+ 0.30803717495708854
+ 0.30804566731717231
+ 0.30805415993867347
+ 0.30806265282160283
+ 0.30807114596597313
+ 0.30807963937179578
+ 0.30808813303908217
+ 0.30809662696784518
+ 0.30810512115809613
+ 0.30811361560984651
+ 0.30812211032310916
+ 0.30813060529789466
+ 0.30813910053421595
+ 0.30814759603208436
+ 0.30815609179151282
+ 0.30816458781251121
+ 0.30817308409509314
+ 0.30818158063927004
+ 0.30819007744505328
+ 0.30819857451245497
+ 0.30820707184148721
+ 0.3082155694321615
+ 0.30822406728448992
+ 0.30823256539848459
+ 0.30824106377415689
+ 0.30824956241151896
+ 0.30825806131058386
+ 0.3082665604713612
+ 0.30827505989386406
+ 0.30828355957810377
+ 0.30829205952409328
+ 0.30830055973184395
+ 0.30830906020136717
+ 0.30831756093267504
+ 0.30832606192578055
+ 0.30833456318069352
+ 0.30834306469742767
+ 0.30835156647599432
+ 0.30836006851640491
+ 0.30836857081867158
+ 0.30837707338280579
+ 0.30838557620882112
+ 0.30839407929672746
+ 0.30840258264653775
+ 0.30841108625826336
+ 0.3084195901319165
+ 0.30842809426750928
+ 0.30843659866505313
+ 0.30844510332456021
+ 0.30845360824604262
+ 0.3084621134295118
+ 0.30847061887497923
+ 0.30847912458245846
+ 0.30848763055195944
+ 0.3084961367834958
+ 0.30850464327707827
+ 0.30851315003271895
+ 0.30852165705042928
+ 0.3085301643302229
+ 0.30853867187210976
+ 0.30854717967610273
+ 0.30855568774221404
+ 0.30856419607045504
+ 0.30857270466083786
+ 0.30858121351337403
+ 0.30858972262807566
+ 0.30859823200495412
+ 0.30860674164402313
+ 0.30861525154529262
+ 0.30862376170877548
+ 0.30863227213448313
+ 0.30864078282242774
+ 0.30864929377262151
+ 0.30865780498507583
+ 0.30866631645980291
+ 0.30867482819681491
+ 0.30868334019612315
+ 0.30869185245773995
+ 0.30870036498167674
+ 0.30870887776794631
+ 0.30871739081656019
+ 0.30872590412752976
+ 0.30873441770086796
+ 0.30874293153658555
+ 0.30875144563469531
+ 0.3087599599952095
+ 0.30876847461813806
+ 0.30877698950349541
+ 0.30878550465129218
+ 0.30879402006154072
+ 0.3088025357342522
+ 0.30881105166943895
+ 0.30881956786711323
+ 0.30882808432728709
+ 0.30883660104997207
+ 0.3088451180351795
+ 0.30885363528292309
+ 0.30886215279321289
+ 0.30887067056606171
+ 0.30887918860148184
+ 0.30888770689948386
+ 0.3088962254600815
+ 0.30890474428328474
+ 0.30891326336910724
+ 0.30892178271756043
+ 0.30893030232865576
+ 0.3089388222024062
+ 0.30894734233882243
+ 0.30895586273791664
+ 0.30896438339970178
+ 0.30897290432418856
+ 0.30898142551138985
+ 0.30898994696131721
+ 0.30899846867398273
+ 0.30900699064939718
+ 0.30901551288757428
+ 0.30902403538852535
+ 0.30903255815226277
+ 0.30904108117879708
+ 0.30904960446814139
+ 0.30905812802030774
+ 0.3090666518353069
+ 0.30907517591315187
+ 0.30908370025385479
+ 0.3090922248574271
+ 0.30910074972388035
+ 0.30910927485322748
+ 0.3091178002454798
+ 0.30912632590064898
+ 0.30913485181874778
+ 0.30914337799978858
+ 0.30915190444378193
+ 0.30916043115074016
+ 0.30916895812067541
+ 0.30917748535360001
+ 0.30918601284952602
+ 0.30919454060846502
+ 0.30920306863042835
+ 0.30921159691542827
+ 0.3092201254634786
+ 0.3092286542745884
+ 0.30923718334877154
+ 0.30924571268603934
+ 0.30925424228640414
+ 0.3092627721498773
+ 0.30927130227647182
+ 0.30927983266619852
+ 0.30928836331907028
+ 0.30929689423509771
+ 0.30930542541429473
+ 0.30931395685667201
+ 0.3093224885622417
+ 0.30933102053101608
+ 0.30933955276300656
+ 0.30934808525822627
+ 0.30935661801668579
+ 0.30936515103839807
+ 0.3093736843233747
+ 0.3093822178716279
+ 0.30939075168316904
+ 0.30939928575801118
+ 0.3094078200961658
+ 0.30941635469764361
+ 0.30942488956245834
+ 0.30943342469062146
+ 0.3094419600821452
+ 0.30945049573704031
+ 0.30945903165532057
+ 0.30946756783699658
+ 0.30947610428208144
+ 0.30948464099058587
+ 0.30949317796252362
+ 0.30950171519790459
+ 0.30951025269674182
+ 0.30951879045904757
+ 0.30952732848483333
+ 0.30953586677411127
+ 0.30954440532689365
+ 0.30955294414319201
+ 0.30956148322301863
+ 0.30957002256638561
+ 0.30957856217330448
+ 0.30958710204378759
+ 0.30959564217784707
+ 0.30960418257549449
+ 0.30961272323674283
+ 0.30962126416160196
+ 0.30962980535008661
+ 0.30963834680220736
+ 0.30964688851797567
+ 0.30965543049740474
+ 0.30966397274050583
+ 0.30967251524729134
+ 0.30968105801777274
+ 0.30968960105196225
+ 0.30969814434987292
+ 0.30970668791151551
+ 0.30971523173690213
+ 0.30972377582604521
+ 0.30973232017895613
+ 0.309740864795648
+ 0.30974940967613224
+ 0.3097579548204204
+ 0.30976650022852548
+ 0.30977504590045823
+ 0.30978359183623166
+ 0.30979213803585803
+ 0.30980068449934806
+ 0.30980923122671561
+ 0.30981777821797057
+ 0.30982632547312677
+ 0.3098348729921957
+ 0.30984342077518817
+ 0.3098519688221178
+ 0.30986051713299628
+ 0.30986906570783584
+ 0.30987761454664714
+ 0.30988616364944327
+ 0.3098947130162365
+ 0.30990326264703832
+ 0.30991181254186101
+ 0.30992036270071688
+ 0.30992891312361659
+ 0.30993746381057402
+ 0.30994601476159989
+ 0.30995456597670723
+ 0.30996311745590754
+ 0.30997166919921237
+ 0.30998022120663477
+ 0.30998877347818615
+ 0.30999732601387814
+ 0.31000587881372449
+ 0.31001443187773531
+ 0.31002298520592264
+ 0.31003153879830048
+ 0.31004009265487953
+ 0.31004864677567129
+ 0.31005720116068886
+ 0.31006575580994367
+ 0.31007431072344882
+ 0.31008286590121431
+ 0.31009142134325396
+ 0.31009997704958003
+ 0.31010853302020336
+ 0.31011708925513609
+ 0.31012564575439061
+ 0.31013420251797919
+ 0.31014275954591336
+ 0.31015131683820618
+ 0.31015987439486836
+ 0.31016843221591306
+ 0.31017699030135165
+ 0.31018554865119657
+ 0.31019410726546004
+ 0.31020266614415365
+ 0.31021122528728878
+ 0.31021978469487943
+ 0.31022834436693636
+ 0.31023690430347095
+ 0.31024546450449719
+ 0.31025402497002491
+ 0.31026258570006898
+ 0.31027114669463829
+ 0.31027970795374693
+ 0.31028826947740717
+ 0.31029683126562957
+ 0.31030539331842827
+ 0.31031395563581232
+ 0.31032251821779711
+ 0.31033108106439189
+ 0.31033964417561127
+ 0.31034820755146458
+ 0.31035677119196625
+ 0.31036533509712794
+ 0.31037389926696035
+ 0.31038246370147671
+ 0.31039102840068911
+ 0.31039959336460926
+ 0.31040815859324866
+ 0.31041672408662113
+ 0.31042528984473738
+ 0.31043385586760913
+ 0.31044242215524936
+ 0.31045098870767035
+ 0.31045955552488369
+ 0.31046812260690099
+ 0.31047668995373517
+ 0.31048525756539797
+ 0.31049382544190157
+ 0.31050239358325832
+ 0.31051096198947903
+ 0.31051953066057753
+ 0.31052809959656469
+ 0.31053666879745262
+ 0.3105452382632547
+ 0.31055380799398147
+ 0.31056237798964609
+ 0.31057094825026021
+ 0.31057951877583606
+ 0.31058808956638517
+ 0.31059666062192076
+ 0.31060523194245354
+ 0.31061380352799656
+ 0.31062237537856219
+ 0.31063094749416126
+ 0.31063951987480681
+ 0.31064809252051123
+ 0.31065666543128601
+ 0.31066523860714279
+ 0.31067381204809458
+ 0.31068238575415302
+ 0.3106909597253304
+ 0.31069953396163907
+ 0.3107081084630906
+ 0.31071668322969731
+ 0.31072525826147152
+ 0.3107338335584256
+ 0.31074240912057038
+ 0.31075098494791886
+ 0.31075956104048347
+ 0.3107681373982758
+ 0.31077671402130808
+ 0.31078529090959273
+ 0.31079386806314058
+ 0.31080244548196539
+ 0.31081102316607884
+ 0.31081960111549251
+ 0.31082817933021939
+ 0.31083675781027043
+ 0.31084533655565871
+ 0.31085391556639569
+ 0.3108624948424939
+ 0.3108710743839655
+ 0.3108796541908222
+ 0.31088823426307632
+ 0.31089681460074098
+ 0.31090539520382621
+ 0.31091397607234589
+ 0.31092255720631079
+ 0.3109311386057349
+ 0.31093972027062894
+ 0.31094830220100461
+ 0.31095688439687569
+ 0.31096546685825299
+ 0.31097404958514896
+ 0.31098263257757586
+ 0.3109912158355454
+ 0.31099979935907057
+ 0.31100838314816298
+ 0.31101696720283434
+ 0.31102555152309763
+ 0.31103413610896447
+ 0.31104272096044733
+ 0.31105130607755849
+ 0.31105989146030871
+ 0.31106847710871205
+ 0.3110770630227791
+ 0.31108564920252324
+ 0.31109423564795513
+ 0.31110282235908876
+ 0.31111140933593495
+ 0.31111999657850598
+ 0.31112858408681437
+ 0.31113717186087225
+ 0.31114575990069149
+ 0.31115434820628429
+ 0.3111629367776631
+ 0.31117152561484018
+ 0.31118011471782725
+ 0.31118870408663585
+ 0.31119729372127913
+ 0.31120588362176876
+ 0.31121447378811773
+ 0.31122306422033708
+ 0.31123165491843974
+ 0.31124024588243743
+ 0.31124883711234175
+ 0.31125742860816669
+ 0.31126602036992285
+ 0.31127461239762211
+ 0.31128320469127824
+ 0.31129179725090139
+ 0.31130039007650612
+ 0.31130898316810268
+ 0.31131757652570324
+ 0.31132617014932112
+ 0.31133476403896787
+ 0.31134335819465592
+ 0.31135195261639681
+ 0.31136054730420298
+ 0.31136914225808754
+ 0.31137773747806063
+ 0.31138633296413687
+ 0.31139492871632563
+ 0.31140352473464233
+ 0.31141212101909632
+ 0.31142071756970152
+ 0.3114293143864687
+ 0.31143791146941119
+ 0.31144650881854119
+ 0.3114551064338697
+ 0.31146370431540987
+ 0.31147230246317475
+ 0.3114809008771745
+ 0.31148949955742233
+ 0.31149809850392973
+ 0.31150669771671002
+ 0.3115152971957747
+ 0.31152389694113702
+ 0.31153249695280705
+ 0.31154109723079876
+ 0.31154969777512287
+ 0.31155829858579348
+ 0.31156689966282058
+ 0.31157550100621823
+ 0.31158410261599789
+ 0.3115927044921713
+ 0.31160130663475166
+ 0.31160990904375052
+ 0.31161851171917954
+ 0.31162711466105197
+ 0.31163571786937933
+ 0.31164432134417408
+ 0.3116529250854479
+ 0.31166152909321471
+ 0.31167013336748456
+ 0.31167873790826989
+ 0.31168734271558468
+ 0.31169594778943893
+ 0.31170455312984602
+ 0.31171315873681887
+ 0.31172176461036782
+ 0.31173037075050669
+ 0.31173897715724713
+ 0.31174758383060086
+ 0.3117561907705802
+ 0.31176479797719842
+ 0.31177340545046628
+ 0.31178201319039639
+ 0.31179062119700174
+ 0.31179922947029409
+ 0.31180783801028583
+ 0.31181644681698778
+ 0.31182505589041482
+ 0.31183366523057615
+ 0.31184227483748655
+ 0.31185088471115696
+ 0.31185949485159886
+ 0.31186810525882641
+ 0.31187671593284966
+ 0.31188532687368253
+ 0.31189393808133675
+ 0.31190254955582464
+ 0.31191116129715796
+ 0.31191977330534904
+ 0.31192838558041042
+ 0.3119369981223537
+ 0.31194561093119205
+ 0.31195422400693718
+ 0.31196283734960151
+ 0.31197145095919593
+ 0.31198006483573515
+ 0.31198867897922933
+ 0.31199729338969168
+ 0.31200590806713385
+ 0.31201452301156823
+ 0.31202313822300815
+ 0.31203175370146363
+ 0.31204036944694941
+ 0.31204898545947563
+ 0.31205760173905561
+ 0.31206621828570086
+ 0.31207483509942463
+ 0.31208345218023792
+ 0.3120920695281546
+ 0.31210068714318484
+ 0.31210930502534262
+ 0.3121179231746396
+ 0.31212654159108827
+ 0.31213516027469951
+ 0.31214377922548725
+ 0.31215239844346326
+ 0.31216101792863987
+ 0.31216963768102818
+ 0.31217825770064195
+ 0.31218687798749217
+ 0.31219549854159218
+ 0.3122041193629535
+ 0.3122127404515887
+ 0.31222136180751009
+ 0.31222998343073022
+ 0.31223860532126002
+ 0.31224722747911265
+ 0.31225584990430061
+ 0.31226447259683632
+ 0.31227309555673072
+ 0.31228171878399702
+ 0.31229034227864771
+ 0.31229896604069513
+ 0.31230759007015035
+ 0.31231621436702656
+ 0.31232483893133622
+ 0.3123334637630909
+ 0.31234208886230325
+ 0.3123507142289848
+ 0.31235933986314884
+ 0.31236796576480785
+ 0.31237659193397277
+ 0.31238521837065675
+ 0.31239384507487239
+ 0.31240247204663046
+ 0.31241109928594507
+ 0.31241972679282715
+ 0.31242835456728985
+ 0.31243698260934494
+ 0.31244561091900408
+ 0.31245423949628137
+ 0.31246286834118758
+ 0.31247149745373448
+ 0.31248012683393622
+ 0.31248875648180352
+ 0.31249738639734898
+ 0.31250601658058497
+ 0.31251464703152487
+ 0.31252327775017874
+ 0.31253190873656139
+ 0.31254053999068299
+ 0.31254917151255684
+ 0.31255780330219457
+ 0.31256643535960943
+ 0.31257506768481236
+ 0.31258370027781746
+ 0.31259233313863483
+ 0.31260096626727929
+ 0.31260959966376095
+ 0.31261823332809235
+ 0.31262686726028749
+ 0.31263550146035651
+ 0.31264413592831275
+ 0.31265277066416869
+ 0.31266140566793671
+ 0.3126700409396278
+ 0.31267867647925601
+ 0.31268731228683233
+ 0.31269594836236919
+ 0.31270458470587981
+ 0.312713221317376
+ 0.31272185819686937
+ 0.3127304953443733
+ 0.31273913275989867
+ 0.31274777044345958
+ 0.31275640839506685
+ 0.31276504661473387
+ 0.31277368510247228
+ 0.31278232385829469
+ 0.3127909628822127
+ 0.31279960217423958
+ 0.31280824173438637
+ 0.31281688156266702
+ 0.31282552165909261
+ 0.31283416202367631
+ 0.31284280265642905
+ 0.31285144355736488
+ 0.3128600847264949
+ 0.31286872616383227
+ 0.31287736786938791
+ 0.31288600984317594
+ 0.31289465208520728
+ 0.31290329459549454
+ 0.31291193737405082
+ 0.31292058042088799
+ 0.31292922373601773
+ 0.3129378673194525
+ 0.31294651117120487
+ 0.31295515529128737
+ 0.3129637996797125
+ 0.31297244433649268
+ 0.31298108926163898
+ 0.31298973445516542
+ 0.31299837991708218
+ 0.31300702564740407
+ 0.31301567164614141
+ 0.31302431791330732
+ 0.31303296444891443
+ 0.31304161125297436
+ 0.31305025832549982
+ 0.31305890566650396
+ 0.31306755327599772
+ 0.31307620115399365
+ 0.3130848493005044
+ 0.31309349771554307
+ 0.31310214639912076
+ 0.31311079535124997
+ 0.31311944457194313
+ 0.31312809406121367
+ 0.31313674381907247
+ 0.31314539384553286
+ 0.31315404414060583
+ 0.31316269470430547
+ 0.31317134553664266
+ 0.3131799966376308
+ 0.31318864800728163
+ 0.31319729964560761
+ 0.31320595155262138
+ 0.3132146037283346
+ 0.31322325617275981
+ 0.31323190888591035
+ 0.3132405618677972
+ 0.31324921511843362
+ 0.31325786863783134
+ 0.31326652242600306
+ 0.31327517648296038
+ 0.31328383080871669
+ 0.31329248540328447
+ 0.31330114026667555
+ 0.31330979539890164
+ 0.313318450799976
+ 0.31332710646991052
+ 0.31333576240871835
+ 0.31334441861641071
+ 0.3133530750930007
+ 0.31336173183850097
+ 0.31337038885292245
+ 0.31337904613627848
+ 0.31338770368858165
+ 0.31339636150984446
+ 0.31340501960007788
+ 0.31341367795929603
+ 0.31342233658751001
+ 0.31343099548473297
+ 0.31343965465097673
+ 0.3134483140862539
+ 0.31345697379057613
+ 0.31346563376395686
+ 0.31347429400640869
+ 0.31348295451794245
+ 0.31349161529857156
+ 0.31350027634830857
+ 0.31350893766716603
+ 0.31351759925515493
+ 0.3135262611122886
+ 0.31353492323857957
+ 0.31354358563403972
+ 0.3135522482986815
+ 0.31356091123251745
+ 0.31356957443556027
+ 0.31357823790782235
+ 0.3135869016493148
+ 0.3135955656600517
+ 0.313604229940044
+ 0.31361289448930518
+ 0.31362155930784691
+ 0.31363022439568178
+ 0.31363888975282234
+ 0.31364755537928041
+ 0.31365622127506926
+ 0.31366488744019999
+ 0.31367355387468671
+ 0.31368222057854112
+ 0.31369088755177432
+ 0.31369955479440043
+ 0.31370822230643114
+ 0.31371689008787917
+ 0.31372555813875624
+ 0.31373422645907484
+ 0.31374289504884845
+ 0.313751563908088
+ 0.31376023303680689
+ 0.31376890243501687
+ 0.31377757210273055
+ 0.31378624203996053
+ 0.31379491224671929
+ 0.31380358272301795
+ 0.31381225346887137
+ 0.31382092448428978
+ 0.31382959576928654
+ 0.31383826732387349
+ 0.31384693914806316
+ 0.313855611241869
+ 0.31386428360530272
+ 0.31387295623837608
+ 0.31388162914110179
+ 0.31389030231349313
+ 0.31389897575556119
+ 0.31390764946731919
+ 0.3139163234487799
+ 0.31392499769995424
+ 0.31393367222085633
+ 0.31394234701149731
+ 0.31395102207189041
+ 0.31395969740204754
+ 0.31396837300198205
+ 0.31397704887170497
+ 0.31398572501122962
+ 0.31399440142056789
+ 0.31400307809973227
+ 0.31401175504873541
+ 0.31402043226759002
+ 0.31402910975630843
+ 0.31403778751490269
+ 0.31404646554338445
+ 0.31405514384176803
+ 0.31406382241006436
+ 0.31407250124828684
+ 0.31408118035644722
+ 0.31408985973455816
+ 0.3140985393826316
+ 0.3141072193006807
+ 0.31411589948871743
+ 0.31412457994675508
+ 0.31413326067480468
+ 0.31414194167287901
+ 0.31415062294099128
+ 0.31415930447915336
+ 0.31416798628737785
+ 0.31417666836567737
+ 0.3141853507140645
+ 0.3141940333325503
+ 0.31420271622114898
+ 0.31421139937987153
+ 0.31422008280873137
+ 0.31422876650774112
+ 0.31423745047691176
+ 0.31424613471625751
+ 0.31425481922578941
+ 0.31426350400552089
+ 0.31427218905546372
+ 0.31428087437563057
+ 0.31428955996603408
+ 0.31429824582668675
+ 0.31430693195760045
+ 0.31431561835878791
+ 0.3143243050302616
+ 0.31433299197203418
+ 0.3143416791841176
+ 0.31435036666652588
+ 0.31435905441926865
+ 0.31436774244236071
+ 0.31437643073581406
+ 0.31438511929964047
+ 0.31439380813385254
+ 0.31440249723846297
+ 0.31441118661348427
+ 0.3144198762589292
+ 0.31442856617480947
+ 0.31443725636113784
+ 0.31444594681792604
+ 0.31445463754518832
+ 0.31446332854293568
+ 0.31447201981118161
+ 0.31448071134993799
+ 0.31448940315921659
+ 0.31449809523903155
+ 0.31450678758939327
+ 0.31451548021031589
+ 0.31452417310181124
+ 0.31453286626389204
+ 0.31454155969657005
+ 0.31455025339985876
+ 0.31455894737376999
+ 0.3145676416183163
+ 0.31457633613350972
+ 0.31458503091936352
+ 0.31459372597589036
+ 0.31460242130310134
+ 0.31461111690101073
+ 0.31461981276962947
+ 0.31462850890897032
+ 0.31463720531904665
+ 0.3146459019998703
+ 0.31465459895145315
+ 0.31466329617380939
+ 0.3146719936669502
+ 0.31468069143088734
+ 0.31468938946563502
+ 0.31469808777120517
+ 0.31470678634761029
+ 0.3147154851948617
+ 0.31472418431297339
+ 0.31473288370195734
+ 0.31474158336182539
+ 0.31475028329259103
+ 0.3147589834942669
+ 0.31476768396686394
+ 0.31477638471039648
+ 0.31478508572487568
+ 0.31479378701031485
+ 0.31480248856672588
+ 0.31481119039412153
+ 0.31481989249251435
+ 0.31482859486191622
+ 0.31483729750234141
+ 0.31484600041380023
+ 0.31485470359630613
+ 0.31486340704987165
+ 0.31487211077450955
+ 0.31488081477023178
+ 0.31488951903705159
+ 0.31489822357498032
+ 0.314906928384032
+ 0.3149156334642178
+ 0.31492433881555038
+ 0.31493304443804315
+ 0.31494175033170729
+ 0.31495045649655695
+ 0.31495916293260329
+ 0.31496786963985896
+ 0.31497657661833739
+ 0.31498528386804975
+ 0.31499399138901013
+ 0.31500269918122981
+ 0.31501140724472138
+ 0.31502011557949827
+ 0.3150288241855716
+ 0.3150375330629549
+ 0.31504624221166072
+ 0.31505495163170177
+ 0.31506366132308927
+ 0.31507237128583654
+ 0.31508108151995634
+ 0.31508979202546133
+ 0.31509850280236334
+ 0.31510721385067514
+ 0.31511592517041015
+ 0.31512463676157948
+ 0.31513334862419584
+ 0.31514206075827261
+ 0.31515077316382178
+ 0.31515948584085601
+ 0.31516819878938795
+ 0.31517691200943043
+ 0.3151856255009951
+ 0.31519433926409485
+ 0.31520305329874143
+ 0.31521176760494923
+ 0.31522048218273013
+ 0.31522919703209595
+ 0.31523791215305946
+ 0.31524662754563249
+ 0.31525534320982934
+ 0.31526405914566125
+ 0.31527277535314147
+ 0.31528149183228205
+ 0.31529020858309564
+ 0.31529892560559497
+ 0.31530764289979196
+ 0.31531636046570005
+ 0.31532507830333112
+ 0.31533379641269788
+ 0.31534251479381309
+ 0.31535123344668947
+ 0.31535995237133879
+ 0.31536867156777393
+ 0.31537739103600815
+ 0.31538611077605277
+ 0.31539483078792124
+ 0.31540355107162549
+ 0.31541227162717889
+ 0.31542099245459343
+ 0.31542971355388189
+ 0.31543843492505608
+ 0.31544715656812961
+ 0.31545587848311424
+ 0.31546460067002352
+ 0.31547332312886872
+ 0.31548204585966316
+ 0.31549076886241967
+ 0.31549949213715006
+ 0.31550821568386717
+ 0.31551693950258436
+ 0.31552566359331286
+ 0.31553438795606537
+ 0.31554311259085538
+ 0.31555183749769561
+ 0.31556056267659716
+ 0.31556928812757362
+ 0.31557801385063761
+ 0.31558673984580199
+ 0.31559546611307771
+ 0.31560419265247919
+ 0.31561291946401832
+ 0.31562164654770702
+ 0.31563037390355886
+ 0.31563910153158575
+ 0.31564782943180109
+ 0.31565655760421618
+ 0.31566528604884453
+ 0.31567401476569873
+ 0.31568274375479077
+ 0.31569147301613348
+ 0.31570020254974024
+ 0.31570893235562225
+ 0.31571766243379301
+ 0.31572639278426529
+ 0.31573512340705023
+ 0.31574385430216212
+ 0.31575258546961288
+ 0.31576131690941528
+ 0.31577004862158048
+ 0.31577878060612352
+ 0.31578751286305479
+ 0.31579624539238871
+ 0.31580497819413622
+ 0.31581371126831104
+ 0.31582244461492587
+ 0.31583117823399176
+ 0.31583991212552309
+ 0.31584864628953191
+ 0.31585738072603076
+ 0.31586611543503096
+ 0.3158748504165475
+ 0.31588358567059088
+ 0.31589232119717459
+ 0.31590105699631205
+ 0.31590979306801453
+ 0.31591852941229481
+ 0.31592726602916632
+ 0.31593600291864027
+ 0.31594474008073103
+ 0.31595347751544967
+ 0.31596221522280982
+ 0.31597095320282337
+ 0.31597969145550386
+ 0.31598842998086257
+ 0.31599716877891293
+ 0.31600590784966776
+ 0.31601464719313888
+ 0.31602338680933995
+ 0.31603212669828218
+ 0.31604086685997979
+ 0.31604960729444398
+ 0.31605834800168836
+ 0.3160670889817257
+ 0.31607583023456709
+ 0.31608457176022686
+ 0.31609331355871628
+ 0.31610205563004884
+ 0.3161107979742373
+ 0.31611954059129282
+ 0.31612828348122979
+ 0.31613702664406085
+ 0.31614577007979661
+ 0.316154513788452
+ 0.31616325777003834
+ 0.3161720020245683
+ 0.31618074655205469
+ 0.31618949135251023
+ 0.3161982364259478
+ 0.31620698177237999
+ 0.31621572739181814
+ 0.31622447328427727
+ 0.3162332194497679
+ 0.3162419658883035
+ 0.3162507125998969
+ 0.31625945958455998
+ 0.31626820684230639
+ 0.31627695437314729
+ 0.31628570217709706
+ 0.31629445025416764
+ 0.31630319860437106
+ 0.31631194722772088
+ 0.31632069612422903
+ 0.31632944529390838
+ 0.31633819473677161
+ 0.31634694445283229
+ 0.31635569444210088
+ 0.3163644447045918
+ 0.31637319524031771
+ 0.31638194604928982
+ 0.31639069713152251
+ 0.316399448487027
+ 0.31640820011581688
+ 0.31641695201790415
+ 0.31642570419330235
+ 0.31643445664202263
+ 0.31644320936407944
+ 0.31645196235948475
+ 0.31646071562825057
+ 0.31646946917038965
+ 0.3164782229859156
+ 0.31648697707483958
+ 0.31649573143717608
+ 0.31650448607293691
+ 0.31651324098213424
+ 0.31652199616478077
+ 0.31653075162089006
+ 0.31653950735047426
+ 0.31654826335354519
+ 0.31655701963011734
+ 0.31656577618020193
+ 0.31657453300381161
+ 0.31658329010096015
+ 0.31659204747165948
+ 0.31660080511592159
+ 0.31660956303376092
+ 0.31661832122518857
+ 0.31662707969021747
+ 0.31663583842886112
+ 0.31664459744113155
+ 0.31665335672704154
+ 0.31666211628660323
+ 0.3166708761198308
+ 0.3166796362267349
+ 0.31668839660732973
+ 0.31669715726162745
+ 0.31670591818964072
+ 0.31671467939138248
+ 0.31672344086686471
+ 0.31673220261610091
+ 0.31674096463910323
+ 0.31674972693588516
+ 0.31675848950645724
+ 0.31676725235083536
+ 0.31677601546903
+ 0.31678477886105399
+ 0.3167935425269201
+ 0.31680230646664204
+ 0.31681107068023162
+ 0.31681983516770107
+ 0.31682859992906465
+ 0.31683736496433368
+ 0.31684613027352093
+ 0.31685489585663928
+ 0.31686366171370228
+ 0.31687242784472119
+ 0.31688119424970962
+ 0.31688996092868027
+ 0.31689872788164541
+ 0.31690749510861771
+ 0.31691626260961081
+ 0.31692503038463593
+ 0.31693379843370745
+ 0.31694256675683591
+ 0.31695133535403569
+ 0.31696010422531956
+ 0.31696887337069968
+ 0.3169776427901887
+ 0.31698641248379877
+ 0.31699518245154429
+ 0.31700395269343645
+ 0.3170127232094882
+ 0.31702149399971224
+ 0.3170302650641223
+ 0.31703903640272951
+ 0.31704780801554761
+ 0.31705657990258934
+ 0.3170653520638676
+ 0.31707412449939371
+ 0.31708289720918187
+ 0.31709167019324352
+ 0.31710044345159305
+ 0.31710921698424166
+ 0.31711799079120301
+ 0.31712676487248914
+ 0.31713553922811294
+ 0.31714431385808711
+ 0.31715308876242465
+ 0.31716186394113915
+ 0.31717063939424106
+ 0.31717941512174475
+ 0.31718819112366237
+ 0.31719696740000747
+ 0.31720574395079137
+ 0.31721452077602852
+ 0.31722329787573011
+ 0.31723207524990982
+ 0.31724085289857973
+ 0.31724963082175262
+ 0.31725840901944147
+ 0.31726718749165972
+ 0.31727596623841881
+ 0.31728474525973155
+ 0.31729352455561233
+ 0.31730230412607163
+ 0.31731108397112395
+ 0.31731986409078133
+ 0.31732864448505654
+ 0.31733742515396179
+ 0.31734620609751141
+ 0.31735498731571593
+ 0.3173637688085898
+ 0.317372550576145
+ 0.31738133261839452
+ 0.31739011493535113
+ 0.31739889752702771
+ 0.31740768039343631
+ 0.31741646353459063
+ 0.31742524695050273
+ 0.31743403064118547
+ 0.31744281460665169
+ 0.31745159884691426
+ 0.31746038336198606
+ 0.31746916815187914
+ 0.31747795321660721
+ 0.31748673855618237
+ 0.31749552417061738
+ 0.31750431005992513
+ 0.31751309622411861
+ 0.31752188266320974
+ 0.31753066937721303
+ 0.31753945636613901
+ 0.31754824363000217
+ 0.31755703116881451
+ 0.3175658189825889
+ 0.31757460707133828
+ 0.31758339543507474
+ 0.31759218407381185
+ 0.31760097298756179
+ 0.31760976217633813
+ 0.31761855164015307
+ 0.31762734137901866
+ 0.31763613139294933
+ 0.3176449216819564
+ 0.31765371224605354
+ 0.31766250308525368
+ 0.31767129419956797
+ 0.31768008558901101
+ 0.3176888772535949
+ 0.31769766919333164
+ 0.317706461408235
+ 0.31771525389831862
+ 0.317724046663593
+ 0.31773283970407179
+ 0.31774163301976865
+ 0.31775042661069586
+ 0.31775922047686533
+ 0.31776801461829157
+ 0.31777680903498595
+ 0.31778560372696124
+ 0.31779439869423209
+ 0.31780319393680811
+ 0.31781198945470535
+ 0.31782078524793439
+ 0.3178295813165089
+ 0.31783837766044093
+ 0.31784717427974424
+ 0.31785597117443171
+ 0.3178647683445146
+ 0.31787356579000742
+ 0.31788236351092236
+ 0.31789116150727142
+ 0.31789995977906915
+ 0.31790875832632676
+ 0.31791755714905728
+ 0.31792635624727439
+ 0.31793515562098934
+ 0.31794395527021663
+ 0.31795275519496846
+ 0.31796155539525756
+ 0.31797035587109623
+ 0.31797915662249732
+ 0.31798795764947446
+ 0.31799675895203988
+ 0.31800556053020718
+ 0.31801436238398767
+ 0.31802316451339518
+ 0.31803196691844254
+ 0.31804076959914263
+ 0.31804957255550687
+ 0.31805837578755042
+ 0.318067179295284
+ 0.31807598307872115
+ 0.31808478713787564
+ 0.31809359147275879
+ 0.31810239608338431
+ 0.31811120096976436
+ 0.3181200061319126
+ 0.31812881156984119
+ 0.31813761728356299
+ 0.31814642327309106
+ 0.31815522953843817
+ 0.31816403607961735
+ 0.31817284289664066
+ 0.31818164998952181
+ 0.31819045735827373
+ 0.31819926500290785
+ 0.31820807292343856
+ 0.31821688111987723
+ 0.31822568959223846
+ 0.31823449834053352
+ 0.31824330736477607
+ 0.31825211666497916
+ 0.31826092624115404
+ 0.31826973609331527
+ 0.318278546221475
+ 0.31828735662564611
+ 0.31829616730584159
+ 0.31830497826207432
+ 0.31831378949435651
+ 0.31832260100270104
+ 0.31833141278712163
+ 0.31834022484763125
+ 0.31834903718424123
+ 0.3183578497969653
+ 0.3183666626858172
+ 0.31837547585080828
+ 0.31838428929195145
+ 0.31839310300926049
+ 0.31840191700274839
+ 0.31841073127242631
+ 0.318419545818309
+ 0.31842836064040847
+ 0.31843717573873692
+ 0.31844599111330807
+ 0.31845480676413568
+ 0.31846362269123035
+ 0.31847243889460652
+ 0.31848125537427641
+ 0.31849007213025377
+ 0.31849888916254987
+ 0.31850770647117854
+ 0.31851652405615272
+ 0.31852534191748533
+ 0.31853416005518853
+ 0.31854297846927609
+ 0.31855179715976017
+ 0.31856061612665376
+ 0.31856943536996973
+ 0.3185782548897218
+ 0.31858707468592073
+ 0.31859589475858163
+ 0.3186047151077161
+ 0.31861353573333839
+ 0.31862235663545857
+ 0.31863117781409261
+ 0.31863999926925118
+ 0.31864882100094877
+ 0.31865764300919674
+ 0.31866646529400972
+ 0.31867528785539823
+ 0.3186841106933776
+ 0.31869293380795921
+ 0.31870175719915605
+ 0.31871058086698106
+ 0.31871940481144806
+ 0.31872822903256842
+ 0.31873705353035581
+ 0.31874587830482332
+ 0.31875470335598377
+ 0.3187635286838495
+ 0.31877235428843331
+ 0.31878118016974916
+ 0.31879000632780907
+ 0.31879883276262605
+ 0.31880765947421313
+ 0.31881648646258243
+ 0.31882531372774853
+ 0.31883414126972287
+ 0.31884296908851828
+ 0.31885179718414869
+ 0.3188606255566262
+ 0.31886945420596458
+ 0.31887828313217531
+ 0.31888711233527206
+ 0.31889594181526781
+ 0.31890477157217562
+ 0.31891360160600762
+ 0.31892243191677766
+ 0.31893126250449855
+ 0.31894009336918183
+ 0.31894892451084211
+ 0.31895775592949149
+ 0.31896658762514213
+ 0.31897541959780873
+ 0.31898425184750256
+ 0.31899308437423746
+ 0.31900191717802567
+ 0.31901075025888009
+ 0.31901958361681454
+ 0.31902841725184128
+ 0.31903725116397402
+ 0.31904608535322415
+ 0.31905491981960554
+ 0.31906375456313107
+ 0.31907258958381313
+ 0.31908142488166524
+ 0.3190902604566998
+ 0.31909909630893057
+ 0.31910793243836971
+ 0.31911676884503026
+ 0.31912560552892516
+ 0.3191344424900675
+ 0.31914327972846934
+ 0.31915211724414544
+ 0.31916095503710712
+ 0.31916979310736732
+ 0.31917863145494002
+ 0.31918747007983728
+ 0.31919630898207207
+ 0.31920514816165757
+ 0.31921398761860742
+ 0.31922282735293311
+ 0.31923166736464847
+ 0.31924050765376566
+ 0.31924934822029849
+ 0.3192581890642599
+ 0.31926703018566149
+ 0.31927587158451853
+ 0.31928471326084162
+ 0.3192935552146447
+ 0.31930239744594058
+ 0.31931123995474242
+ 0.31932008274106322
+ 0.31932892580491523
+ 0.31933776914631218
+ 0.3193466127652671
+ 0.31935545666179149
+ 0.31936430083589984
+ 0.31937314528760452
+ 0.31938199001691842
+ 0.31939083502385462
+ 0.31939968030842614
+ 0.31940852587064511
+ 0.31941737171052631
+ 0.31942621782808028
+ 0.31943506422332169
+ 0.31944391089626345
+ 0.31945275784691718
+ 0.31946160507529725
+ 0.31947045258141604
+ 0.31947930036528666
+ 0.31948814842692197
+ 0.31949699676633425
+ 0.31950584538353738
+ 0.31951469427854434
+ 0.31952354345136741
+ 0.3195323929020204
+ 0.31954124263051553
+ 0.31955009263686579
+ 0.31955894292108433
+ 0.31956779348318404
+ 0.31957664432317806
+ 0.31958549544107945
+ 0.3195943468369003
+ 0.31960319851065461
+ 0.31961205046235536
+ 0.31962090269201471
+ 0.31962975519964654
+ 0.31963860798526239
+ 0.31964746104887681
+ 0.31965631439050207
+ 0.31966516801015121
+ 0.31967402190783645
+ 0.31968287608357249
+ 0.31969173053737066
+ 0.31970058526924494
+ 0.3197094402792075
+ 0.31971829556727216
+ 0.31972715113345124
+ 0.31973600697775778
+ 0.31974486310020478
+ 0.31975371950080611
+ 0.31976257617957321
+ 0.31977143313652001
+ 0.31978029037165945
+ 0.31978914788500462
+ 0.3197980056765678
+ 0.31980686374636286
+ 0.31981572209440201
+ 0.31982458072069903
+ 0.31983343962526561
+ 0.31984229880811693
+ 0.31985115826926303
+ 0.3198600180087201
+ 0.31986887802649805
+ 0.31987773832261224
+ 0.31988659889707427
+ 0.31989545974989786
+ 0.31990432088109616
+ 0.31991318229068139
+ 0.31992204397866741
+ 0.31993090594506574
+ 0.31993976818989106
+ 0.31994863071315549
+ 0.31995749351487224
+ 0.31996635659505435
+ 0.31997521995371486
+ 0.31998408359086677
+ 0.31999294750652246
+ 0.32000181170069575
+ 0.3200106761733989
+ 0.32001954092464585
+ 0.32002840595444881
+ 0.32003727126282089
+ 0.3200461368497759
+ 0.32005500271532616
+ 0.3200638688594839
+ 0.32007273528226382
+ 0.3200816019836783
+ 0.32009046896373944
+ 0.32009933622246123
+ 0.32010820375985671
+ 0.32011707157593816
+ 0.32012593967071867
+ 0.32013480804421218
+ 0.32014367669643162
+ 0.3201525456273886
+ 0.32016141483709698
+ 0.32017028432557054
+ 0.32017915409282094
+ 0.32018802413886266
+ 0.32019689446370742
+ 0.32020576506736892
+ 0.32021463594986033
+ 0.32022350711119391
+ 0.32023237855138276
+ 0.32024125027044076
+ 0.32025012226838095
+ 0.32025899454521495
+ 0.32026786710095728
+ 0.32027673993562045
+ 0.32028561304921738
+ 0.32029448644176117
+ 0.32030336011326416
+ 0.3203122340637411
+ 0.32032110829320332
+ 0.32032998280166486
+ 0.32033885758913799
+ 0.3203477326556366
+ 0.32035660800117299
+ 0.32036548362576106
+ 0.32037435952941229
+ 0.32038323571214133
+ 0.32039211217396141
+ 0.32040098891488317
+ 0.32040986593492204
+ 0.32041874323409042
+ 0.32042762081240134
+ 0.32043649866986801
+ 0.32044537680650259
+ 0.32045425522231835
+ 0.32046313391732989
+ 0.32047201289154786
+ 0.32048089214498715
+ 0.32048977167765996
+ 0.32049865148958012
+ 0.32050753158075934
+ 0.32051641195121211
+ 0.32052529260095086
+ 0.32053417352998875
+ 0.320543054738338
+ 0.32055193622601336
+ 0.32056081799302633
+ 0.32056970003939006
+ 0.32057858236511849
+ 0.32058746497022456
+ 0.32059634785472085
+ 0.32060523101862104
+ 0.32061411446193677
+ 0.32062299818468359
+ 0.32063188218687216
+ 0.32064076646851641
+ 0.32064965102963028
+ 0.32065853587022519
+ 0.3206674209903152
+ 0.32067630638991346
+ 0.3206851920690329
+ 0.32069407802768601
+ 0.32070296426588674
+ 0.32071185078364806
+ 0.32072073758098241
+ 0.32072962465790289
+ 0.32073851201442422
+ 0.32074739965055638
+ 0.32075628756631558
+ 0.32076517576171271
+ 0.32077406423676236
+ 0.32078295299147697
+ 0.32079184202586886
+ 0.32080073133995185
+ 0.32080962093373999
+ 0.32081851080724477
+ 0.3208274009604794
+ 0.32083629139345848
+ 0.32084518210619367
+ 0.32085407309869807
+ 0.32086296437098555
+ 0.32087185592306849
+ 0.32088074775496017
+ 0.32088963986667512
+ 0.3208985322582234
+ 0.32090742492962049
+ 0.3209163178808796
+ 0.32092521111201222
+ 0.32093410462303229
+ 0.32094299841395302
+ 0.3209518924847875
+ 0.32096078683554813
+ 0.32096968146624877
+ 0.32097857637690269
+ 0.32098747156752289
+ 0.32099636703812184
+ 0.32100526278871261
+ 0.32101415881930923
+ 0.32102305512992396
+ 0.32103195172057003
+ 0.32104084859126136
+ 0.32104974574201034
+ 0.32105864317283006
+ 0.32106754088373296
+ 0.32107643887473447
+ 0.3210853371458447
+ 0.32109423569707907
+ 0.32110313452844919
+ 0.32111203363996987
+ 0.32112093303165262
+ 0.32112983270351059
+ 0.32113873265555865
+ 0.3211476328878074
+ 0.32115653340027162
+ 0.32116543419296456
+ 0.32117433526589856
+ 0.32118323661908682
+ 0.32119213825254239
+ 0.32120104016627932
+ 0.32120994236031003
+ 0.32121884483464752
+ 0.32122774758930517
+ 0.32123665062429596
+ 0.32124555393963233
+ 0.32125445753532911
+ 0.32126336141139783
+ 0.32127226556785321
+ 0.32128117000470685
+ 0.32129007472197202
+ 0.32129897971966254
+ 0.32130788499779167
+ 0.3213167905563718
+ 0.32132569639541686
+ 0.32133460251493923
+ 0.32134350891495217
+ 0.32135241559546951
+ 0.32136132255650374
+ 0.32137022979806801
+ 0.32137913732017548
+ 0.32138804512283947
+ 0.3213969532060737
+ 0.32140586156988993
+ 0.3214147702143022
+ 0.32142367913932429
+ 0.32143258834496719
+ 0.32144149783124637
+ 0.32145040759817423
+ 0.32145931764576313
+ 0.32146822797402719
+ 0.32147713858297866
+ 0.32148604947263154
+ 0.32149496064299909
+ 0.32150387209409292
+ 0.32151278382592852
+ 0.3215216958385167
+ 0.32153060813187234
+ 0.3215395207060085
+ 0.32154843356093693
+ 0.32155734669667146
+ 0.32156626011322631
+ 0.32157517381061362
+ 0.32158408778884595
+ 0.32159300204793806
+ 0.32160191658790233
+ 0.32161083140875196
+ 0.32161974651049935
+ 0.32162866189315859
+ 0.32163757755674272
+ 0.32164649350126506
+ 0.32165540972673801
+ 0.32166432623317548
+ 0.3216732430205908
+ 0.32168216008899625
+ 0.32169107743840591
+ 0.32169999506883223
+ 0.32170891298028831
+ 0.32171783117278824
+ 0.3217267496463444
+ 0.32173566840097079
+ 0.321744587436679
+ 0.32175350675348391
+ 0.32176242635139796
+ 0.32177134623043419
+ 0.32178026639060675
+ 0.3217891868319272
+ 0.32179810755440963
+ 0.32180702855806714
+ 0.32181594984291384
+ 0.32182487140896132
+ 0.3218337932562228
+ 0.3218427153847131
+ 0.32185163779444464
+ 0.32186056048542977
+ 0.32186948345768179
+ 0.32187840671121554
+ 0.32188733024604255
+ 0.32189625406217615
+ 0.3219051781596311
+ 0.32191410253841901
+ 0.32192302719855315
+ 0.32193195214004672
+ 0.32194087736291371
+ 0.32194980286716662
+ 0.32195872865281944
+ 0.32196765471988464
+ 0.32197658106837534
+ 0.32198550769830486
+ 0.32199443460968646
+ 0.32200336180253408
+ 0.32201228927685943
+ 0.32202121703267733
+ 0.32203014507000016
+ 0.32203907338884113
+ 0.3220480019892128
+ 0.32205693087112996
+ 0.32206586003460497
+ 0.32207478947965029
+ 0.32208371920628004
+ 0.32209264921450742
+ 0.32210157950434559
+ 0.32211051007580715
+ 0.32211944092890604
+ 0.32212837206365541
+ 0.32213730348006792
+ 0.32214623517815744
+ 0.32215516715793646
+ 0.32216409941941987
+ 0.32217303196261843
+ 0.32218196478754785
+ 0.32219089789421895
+ 0.32219983128264662
+ 0.32220876495284323
+ 0.3222176989048221
+ 0.32222663313859806
+ 0.32223556765418199
+ 0.32224450245158781
+ 0.3222534375308298
+ 0.32226237289192011
+ 0.32227130853487229
+ 0.32228024445969944
+ 0.32228918066641482
+ 0.32229811715503254
+ 0.32230705392556419
+ 0.32231599097802388
+ 0.32232492831242565
+ 0.3223338659287811
+ 0.32234280382710523
+ 0.32235174200740957
+ 0.32236068046970823
+ 0.32236961921401525
+ 0.32237855824034151
+ 0.32238749754870272
+ 0.3223964371391112
+ 0.32240537701157956
+ 0.32241431716612179
+ 0.32242325760275126
+ 0.32243219832148023
+ 0.32244113932232382
+ 0.32245008060529268
+ 0.32245902217040262
+ 0.32246796401766525
+ 0.32247690614709462
+ 0.32248584855870321
+ 0.32249479125250435
+ 0.32250373422851208
+ 0.32251267748673962
+ 0.3225216210271995
+ 0.32253056484990578
+ 0.32253950895487093
+ 0.3225484533421083
+ 0.32255739801163186
+ 0.3225663429634541
+ 0.32257528819758835
+ 0.32258423371404865
+ 0.32259317951284749
+ 0.32260212559399815
+ 0.32261107195751471
+ 0.32262001860340972
+ 0.32262896553169629
+ 0.3226379127423879
+ 0.32264686023549771
+ 0.32265580801103988
+ 0.322664756069026
+ 0.32267370440947102
+ 0.32268265303238741
+ 0.32269160193778851
+ 0.32270055112568757
+ 0.32270950059609776
+ 0.32271845034903257
+ 0.3227274003845052
+ 0.32273635070252815
+ 0.32274530130311629
+ 0.32275425218628212
+ 0.3227632033520389
+ 0.32277215480040006
+ 0.32278110653137876
+ 0.32279005854498755
+ 0.32279901084124124
+ 0.32280796342015167
+ 0.32281691628173287
+ 0.32282586942599811
+ 0.32283482285296072
+ 0.32284377656263402
+ 0.32285273055503044
+ 0.32286168483016414
+ 0.32287063938804844
+ 0.32287959422869572
+ 0.32288854935212108
+ 0.32289750475833606
+ 0.32290646044735483
+ 0.32291541641918992
+ 0.32292437267385538
+ 0.32293332921136458
+ 0.32294228603173075
+ 0.32295124313496648
+ 0.32296020052108582
+ 0.3229691581901013
+ 0.32297811614202704
+ 0.32298707437687629
+ 0.32299603289466172
+ 0.32300499169539731
+ 0.3230139507790955
+ 0.32302291014577139
+ 0.3230318697954358
+ 0.32304082972810366
+ 0.32304978994378747
+ 0.32305875044250221
+ 0.3230677112242587
+ 0.323076672289072
+ 0.32308563363695519
+ 0.32309459526792106
+ 0.3231035571819828
+ 0.32311251937915453
+ 0.32312148185944956
+ 0.32313044462288043
+ 0.32313940766946053
+ 0.32314837099920468
+ 0.32315733461212304
+ 0.32316629850823225
+ 0.32317526268754382
+ 0.32318422715007211
+ 0.32319319189582946
+ 0.32320215692482923
+ 0.3232111222370857
+ 0.32322008783261125
+ 0.32322905371142002
+ 0.32323801987352463
+ 0.32324698631893839
+ 0.32325595304767529
+ 0.32326492005974811
+ 0.32327388735517076
+ 0.32328285493395592
+ 0.32329182279611685
+ 0.32330079094166775
+ 0.32330975937062106
+ 0.32331872808299023
+ 0.32332769707878933
+ 0.32333666635803099
+ 0.3233456359207284
+ 0.32335460576689579
+ 0.32336357589654574
+ 0.32337254630969237
+ 0.32338151700634732
+ 0.32339048798652648
+ 0.32339945925024072
+ 0.32340843079750498
+ 0.32341740262833185
+ 0.3234263747427355
+ 0.32343534714072841
+ 0.32344431982232386
+ 0.32345329278753543
+ 0.32346226603637707
+ 0.3234712395688622
+ 0.32348021338500338
+ 0.32348918748481309
+ 0.32349816186830721
+ 0.3235071365354974
+ 0.32351611148639703
+ 0.32352508672101948
+ 0.32353406223937892
+ 0.32354303804148793
+ 0.32355201412736057
+ 0.32356099049700943
+ 0.32356996715044789
+ 0.32357894408769011
+ 0.32358792130874869
+ 0.32359689881363773
+ 0.32360587660236978
+ 0.32361485467495832
+ 0.32362383303141656
+ 0.32363281167175961
+ 0.32364179059599907
+ 0.32365076980414842
+ 0.32365974929622104
+ 0.3236687290722311
+ 0.32367770913219107
+ 0.32368668947611517
+ 0.32369567010401606
+ 0.32370465101590773
+ 0.32371363221180294
+ 0.32372261369171568
+ 0.32373159545565872
+ 0.32374057750364604
+ 0.32374955983569037
+ 0.32375854245180502
+ 0.32376752535200493
+ 0.32377650853630113
+ 0.32378549200470941
+ 0.32379447575724146
+ 0.32380345979391073
+ 0.32381244411473142
+ 0.32382142871971681
+ 0.3238304136088796
+ 0.32383939878223389
+ 0.32384838423979234
+ 0.32385736998156905
+ 0.32386635600757746
+ 0.32387534231783011
+ 0.3238843289123412
+ 0.32389331579112418
+ 0.32390230295419153
+ 0.32391129040155753
+ 0.32392027813323548
+ 0.323929266149238
+ 0.32393825444958013
+ 0.32394724303427286
+ 0.32395623190333195
+ 0.32396522105676995
+ 0.32397421049459946
+ 0.3239832002168348
+ 0.32399219022348918
+ 0.32400118051457616
+ 0.32401017109010827
+ 0.32401916195010044
+ 0.32402815309456456
+ 0.32403714452351473
+ 0.32404613623696527
+ 0.32405512823492794
+ 0.3240641205174169
+ 0.32407311308444553
+ 0.32408210593602738
+ 0.32409109907217559
+ 0.32410009249290389
+ 0.32410908619822543
+ 0.32411808018815369
+ 0.32412707446270206
+ 0.32413606902188402
+ 0.32414506386571373
+ 0.32415405899420296
+ 0.32416305440736676
+ 0.32417205010521777
+ 0.32418104608776854
+ 0.32419004235503412
+ 0.32419903890702784
+ 0.3242080357437625
+ 0.3242170328652505
+ 0.32422603027150693
+ 0.32423502796254527
+ 0.32424402593837726
+ 0.32425302419901869
+ 0.32426202274448074
+ 0.32427102157477822
+ 0.32428002068992384
+ 0.32428902008993182
+ 0.32429801977481482
+ 0.32430701974458698
+ 0.32431601999926096
+ 0.32432502053885109
+ 0.32433402136336975
+ 0.32434302247283137
+ 0.32435202386724843
+ 0.32436102554663526
+ 0.32437002751100447
+ 0.32437902976037103
+ 0.32438803229474683
+ 0.3243970351141453
+ 0.32440603821858144
+ 0.32441504160806706
+ 0.32442404528261642
+ 0.32443304924224209
+ 0.3244420534869592
+ 0.32445105801678031
+ 0.32446006283171813
+ 0.32446906793178676
+ 0.32447807331700057
+ 0.3244870789873705
+ 0.32449608494291327
+ 0.3245050911836399
+ 0.32451409770956452
+ 0.32452310452070149
+ 0.32453211161706264
+ 0.32454111899866295
+ 0.32455012666551503
+ 0.32455913461763242
+ 0.32456814285502855
+ 0.32457715137771681
+ 0.3245861601857114
+ 0.32459516927902515
+ 0.32460417865767216
+ 0.32461318832166425
+ 0.32462219827101652
+ 0.3246312085057424
+ 0.32464021902585455
+ 0.32464922983136729
+ 0.32465824092229317
+ 0.32466725229864646
+ 0.32467626396043986
+ 0.32468527590768753
+ 0.32469428814040302
+ 0.32470330065859887
+ 0.32471231346228946
+ 0.32472132655148817
+ 0.32473033992620765
+ 0.324739353586463
+ 0.32474836753226605
+ 0.32475738176363111
+ 0.32476639628057152
+ 0.32477541108310082
+ 0.32478442617123249
+ 0.32479344154498074
+ 0.32480245720435741
+ 0.32481147314937686
+ 0.32482048938005254
+ 0.32482950589639858
+ 0.32483852269842695
+ 0.32484753978615349
+ 0.32485655715958933
+ 0.32486557481874939
+ 0.3248745927636465
+ 0.32488361099429408
+ 0.32489262951070635
+ 0.32490164831289592
+ 0.32491066740087721
+ 0.32491968677466282
+ 0.32492870643426702
+ 0.32493772637970336
+ 0.32494674661098438
+ 0.32495576712812441
+ 0.32496478793113692
+ 0.32497380902003464
+ 0.32498283039483178
+ 0.32499185205554182
+ 0.32500087400217825
+ 0.32500989623475462
+ 0.32501891875328431
+ 0.32502794155778086
+ 0.32503696464825765
+ 0.32504598802472834
+ 0.32505501168720624
+ 0.32506403563570574
+ 0.3250730598702386
+ 0.32508208439082009
+ 0.32509110919746359
+ 0.32510013429018092
+ 0.32510915966898818
+ 0.32511818533389619
+ 0.32512721128492017
+ 0.32513623752207282
+ 0.32514526404536925
+ 0.3251542908548205
+ 0.32516331795044162
+ 0.32517234533224698
+ 0.32518137300024769
+ 0.32519040095445961
+ 0.32519942919489458
+ 0.32520845772156776
+ 0.32521748653449106
+ 0.32522651563367871
+ 0.32523554501914503
+ 0.32524457469090196
+ 0.32525360464896452
+ 0.32526263489334467
+ 0.32527166542405755
+ 0.32528069624111577
+ 0.32528972734453371
+ 0.32529875873432312
+ 0.32530779041049929
+ 0.32531682237307569
+ 0.32532585462206498
+ 0.32533488715748143
+ 0.32534391997933781
+ 0.32535295308764839
+ 0.32536198648242665
+ 0.32537102016368535
+ 0.32538005413143967
+ 0.32538908838570141
+ 0.32539812292648485
+ 0.32540715775380358
+ 0.32541619286767115
+ 0.32542522826810094
+ 0.32543426395510661
+ 0.32544329992870158
+ 0.32545233618889935
+ 0.32546137273571429
+ 0.32547040956915918
+ 0.32547944668924816
+ 0.32548848409599329
+ 0.32549752178941044
+ 0.32550655976951076
+ 0.32551559803631008
+ 0.32552463658982045
+ 0.32553367543005612
+ 0.32554271455702988
+ 0.32555175397075592
+ 0.32556079367124785
+ 0.32556983365851921
+ 0.32557887393258345
+ 0.3255879144934542
+ 0.32559695534114497
+ 0.32560599647566918
+ 0.32561503789704049
+ 0.32562407960527312
+ 0.32563312160037983
+ 0.32564216388237421
+ 0.3256512064512706
+ 0.32566024930708165
+ 0.3256692924498209
+ 0.32567833587950362
+ 0.32568737959614075
+ 0.32569642359974832
+ 0.32570546789033827
+ 0.32571451246792499
+ 0.32572355733252184
+ 0.32573260248414254
+ 0.32574164792280058
+ 0.32575069364850945
+ 0.32575973966128274
+ 0.32576878596113401
+ 0.32577783254807674
+ 0.32578687942212531
+ 0.32579592658329243
+ 0.32580497403159175
+ 0.32581402176703822
+ 0.32582306978964315
+ 0.32583211809942164
+ 0.32584116669638724
+ 0.32585021558055277
+ 0.32585926475193244
+ 0.3258683142105398
+ 0.32587736395638939
+ 0.32588641398949297
+ 0.32589546430986499
+ 0.32590451491751893
+ 0.32591356581246839
+ 0.32592261699472774
+ 0.32593166846430888
+ 0.32594072022122705
+ 0.32594977226549571
+ 0.32595882459712772
+ 0.32596787721613735
+ 0.32597693012253737
+ 0.32598598331634221
+ 0.32599503679756459
+ 0.3260040905662196
+ 0.32601314462231934
+ 0.32602219896587803
+ 0.32603125359691015
+ 0.32604030851542759
+ 0.32604936372144561
+ 0.32605841921497597
+ 0.32606747499603406
+ 0.32607653106463258
+ 0.32608558742078586
+ 0.32609464406450667
+ 0.32610370099580938
+ 0.32611275821470681
+ 0.32612181572121407
+ 0.32613087351534242
+ 0.32613993159710775
+ 0.32614898996652281
+ 0.32615804862360048
+ 0.32616710756835587
+ 0.32617616680080175
+ 0.32618522632095087
+ 0.32619428612881929
+ 0.3262033462244181
+ 0.32621240660776257
+ 0.32622146727886542
+ 0.32623052823774101
+ 0.32623958948440296
+ 0.32624865101886408
+ 0.32625771284113869
+ 0.3262667749512404
+ 0.32627583734918197
+ 0.32628490003497868
+ 0.32629396300864233
+ 0.32630302627018831
+ 0.32631208981962934
+ 0.32632115365697889
+ 0.32633021778225146
+ 0.32633928219545988
+ 0.32634834689661846
+ 0.32635741188573997
+ 0.3263664771628389
+ 0.32637554272792801
+ 0.32638460858102236
+ 0.32639367472213332
+ 0.3264027411512776
+ 0.32641180786846646
+ 0.32642087487371418
+ 0.32642994216703525
+ 0.3264390097484417
+ 0.32644807761794864
+ 0.32645714577556889
+ 0.32646621422131683
+ 0.32647528295520611
+ 0.32648435197724962
+ 0.3264934212874615
+ 0.32650249088585559
+ 0.32651156077244536
+ 0.32652063094724371
+ 0.32652970141026583
+ 0.32653877216152444
+ 0.32654784320103242
+ 0.32655691452880575
+ 0.32656598614485566
+ 0.3265750580491974
+ 0.32658413024184446
+ 0.32659320272280973
+ 0.32660227549210763
+ 0.32661134854975177
+ 0.32662042189575491
+ 0.32662949553013226
+ 0.32663856945289593
+ 0.32664764366406107
+ 0.32665671816363973
+ 0.3266657929516471
+ 0.32667486802809675
+ 0.32668394339300083
+ 0.32669301904637515
+ 0.32670209498823194
+ 0.32671117121858556
+ 0.32672024773744873
+ 0.326729324544836
+ 0.3267384016407609
+ 0.32674747902523793
+ 0.32675655669827908
+ 0.32676563465989955
+ 0.3267747129101114
+ 0.32678379144893066
+ 0.3267928702763685
+ 0.32680194939244028
+ 0.32681102879716023
+ 0.32682010849053977
+ 0.32682918847259407
+ 0.32683826874333743
+ 0.32684734930278214
+ 0.32685643015094235
+ 0.3268655112878327
+ 0.32687459271346597
+ 0.32688367442785571
+ 0.32689275643101567
+ 0.32690183872296019
+ 0.32691092130370303
+ 0.32692000417325695
+ 0.32692908733163717
+ 0.32693817077885579
+ 0.32694725451492712
+ 0.326956338539865
+ 0.32696542285368285
+ 0.32697450745639534
+ 0.32698359234801433
+ 0.32699267752855599
+ 0.3270017629980323
+ 0.32701084875645686
+ 0.32701993480384423
+ 0.32702902114020804
+ 0.32703810776556097
+ 0.3270471946799185
+ 0.32705628188329339
+ 0.32706536937569924
+ 0.32707445715714972
+ 0.32708354522765931
+ 0.32709263358724083
+ 0.327101722235908
+ 0.32711081117367602
+ 0.32711990040055694
+ 0.32712898991656519
+ 0.32713807972171371
+ 0.32714716981601777
+ 0.32715626019949007
+ 0.32716535087214443
+ 0.32717444183399524
+ 0.32718353308505455
+ 0.32719262462533844
+ 0.32720171645485818
+ 0.32721080857362983
+ 0.32721990098166542
+ 0.32722899367898028
+ 0.32723808666558718
+ 0.3272471799414991
+ 0.3272562735067312
+ 0.32726536736129641
+ 0.32727446150520839
+ 0.3272835559384808
+ 0.32729265066112889
+ 0.32730174567316478
+ 0.32731084097460289
+ 0.3273199365654561
+ 0.32732903244573969
+ 0.32733812861546657
+ 0.32734722507465036
+ 0.32735632182330476
+ 0.32736541886144427
+ 0.3273745161890817
+ 0.3273836138062316
+ 0.32739271171290757
+ 0.3274018099091226
+ 0.32741090839489101
+ 0.32742000717022746
+ 0.32742910623514387
+ 0.32743820558965558
+ 0.32744730523377474
+ 0.32745640516751734
+ 0.3274655053908947
+ 0.32747460590392297
+ 0.32748370670661409
+ 0.32749280779898265
+ 0.32750190918104238
+ 0.32751101085280765
+ 0.32752011281429055
+ 0.3275292150655057
+ 0.32753831760646746
+ 0.32754742043718882
+ 0.32755652355768416
+ 0.32756562696796732
+ 0.32757473066805104
+ 0.32758383465794988
+ 0.32759293893767838
+ 0.32760204350724853
+ 0.32761114836667576
+ 0.32762025351597285
+ 0.32762935895515349
+ 0.3276384646842323
+ 0.32764757070322292
+ 0.32765667701213902
+ 0.32766578361099352
+ 0.32767489049980092
+ 0.32768399767857576
+ 0.32769310514733002
+ 0.3277022129060792
+ 0.32771132095483685
+ 0.32772042929361589
+ 0.32772953792243009
+ 0.32773864684129472
+ 0.32774775605022188
+ 0.32775686554922612
+ 0.32776597533832108
+ 0.32777508541752132
+ 0.32778419578683976
+ 0.32779330644629007
+ 0.32780241739588678
+ 0.32781152863564367
+ 0.32782064016557355
+ 0.32782975198569092
+ 0.32783886409601037
+ 0.32784797649654407
+ 0.32785708918730644
+ 0.32786620216831197
+ 0.32787531543957449
+ 0.32788442900110681
+ 0.32789354285292271
+ 0.32790265699503751
+ 0.32791177142746336
+ 0.32792088615021553
+ 0.32793000116330606
+ 0.32793911646675045
+ 0.32794823206056156
+ 0.3279573479447539
+ 0.32796646411934116
+ 0.32797558058433635
+ 0.32798469733975394
+ 0.32799381438560765
+ 0.3280029317219112
+ 0.32801204934867839
+ 0.32802116726592373
+ 0.32803028547366009
+ 0.32803940397190207
+ 0.3280485227606626
+ 0.32805764183995695
+ 0.32806676120979728
+ 0.32807588087019818
+ 0.32808500082117331
+ 0.32809412106273728
+ 0.32810324159490295
+ 0.32811236241768493
+ 0.32812148353109616
+ 0.32813060493515112
+ 0.32813972662986352
+ 0.32814884861524724
+ 0.32815797089131593
+ 0.32816709345808415
+ 0.32817621631556482
+ 0.32818533946377254
+ 0.32819446290271942
+ 0.32820358663242161
+ 0.32821271065289198
+ 0.32822183496414448
+ 0.3282309595661918
+ 0.32824008445905034
+ 0.32824920964273124
+ 0.32825833511724994
+ 0.32826746088262027
+ 0.32827658693885586
+ 0.32828571328596973
+ 0.3282948399239764
+ 0.32830396685289037
+ 0.32831309407272397
+ 0.32832222158349322
+ 0.32833134938520947
+ 0.32834047747788891
+ 0.32834960586154377
+ 0.32835873453618852
+ 0.32836786350183689
+ 0.32837699275850268
+ 0.32838612230619973
+ 0.32839525214494253
+ 0.32840438227474483
+ 0.32841351269561964
+ 0.32842264340758148
+ 0.32843177441064414
+ 0.32844090570482143
+ 0.32845003729012701
+ 0.32845916916657542
+ 0.32846830133417987
+ 0.32847743379295385
+ 0.32848656654291214
+ 0.32849569958406838
+ 0.3285048329164364
+ 0.32851396654003084
+ 0.32852310045486371
+ 0.3285322346609505
+ 0.32854136915830412
+ 0.32855050394693996
+ 0.32855963902686947
+ 0.32856877439810878
+ 0.32857791006067083
+ 0.32858704601456939
+ 0.32859618225981829
+ 0.32860531879643218
+ 0.32861445562442382
+ 0.32862359274380809
+ 0.32863273015459848
+ 0.32864186785680816
+ 0.32865100585045243
+ 0.32866014413554434
+ 0.32866928271209844
+ 0.32867842158012855
+ 0.32868756073964683
+ 0.32869670019066938
+ 0.32870583993320934
+ 0.32871497996727961
+ 0.32872412029289561
+ 0.32873326091007032
+ 0.32874240181881831
+ 0.3287515430191526
+ 0.32876068451108781
+ 0.32876982629463852
+ 0.3287789683698169
+ 0.32878811073663755
+ 0.32879725339511423
+ 0.32880639634526165
+ 0.32881553958709353
+ 0.32882468312062363
+ 0.32883382694586505
+ 0.32884297106283228
+ 0.32885211547154009
+ 0.3288612601720004
+ 0.32887040516422894
+ 0.32887955044824008
+ 0.3288886960240453
+ 0.32889784189166082
+ 0.32890698805109886
+ 0.32891613450237478
+ 0.3289252812455008
+ 0.32893442828049313
+ 0.32894357560736404
+ 0.32895272322612801
+ 0.3289618711367982
+ 0.32897101933938983
+ 0.32898016783391615
+ 0.32898931662039083
+ 0.32899846569882762
+ 0.32900761506924131
+ 0.32901676473164643
+ 0.32902591468605435
+ 0.32903506493248136
+ 0.32904421547094037
+ 0.32905336630144533
+ 0.32906251742401083
+ 0.32907166883865063
+ 0.32908082054537779
+ 0.32908997254420697
+ 0.32909912483515186
+ 0.3291082774182264
+ 0.3291174302934452
+ 0.32912658346082208
+ 0.32913573692037007
+ 0.32914489067210295
+ 0.32915404471603615
+ 0.32916319905218278
+ 0.32917235368055658
+ 0.32918150860117223
+ 0.32919066381404194
+ 0.32919981931918191
+ 0.3292089751166053
+ 0.32921813120632498
+ 0.32922728758835645
+ 0.32923644426271276
+ 0.32924560122940771
+ 0.32925475848845676
+ 0.32926391603987137
+ 0.32927307388366778
+ 0.32928223201985896
+ 0.32929139044845873
+ 0.32930054916948187
+ 0.32930970818294125
+ 0.32931886748885086
+ 0.32932802708722608
+ 0.32933718697807912
+ 0.32934634716142547
+ 0.32935550763727817
+ 0.3293646684056511
+ 0.32937382946655963
+ 0.32938299082001515
+ 0.32939215246603326
+ 0.32940131440462855
+ 0.32941047663581408
+ 0.32941963915960448
+ 0.32942880197601193
+ 0.3294379650850528
+ 0.32944712848673924
+ 0.32945629218108685
+ 0.32946545616810774
+ 0.32947462044781817
+ 0.32948378502022968
+ 0.32949294988535777
+ 0.32950211504321614
+ 0.32951128049381867
+ 0.32952044623717852
+ 0.32952961227331184
+ 0.32953877860223019
+ 0.32954794522394903
+ 0.3295571121384821
+ 0.32956627934584426
+ 0.32957544684604673
+ 0.32958461463910671
+ 0.3295937827250357
+ 0.32960295110384907
+ 0.32961211977556082
+ 0.32962128874018459
+ 0.32963045799773449
+ 0.32963962754822346
+ 0.32964879739166786
+ 0.32965796752807985
+ 0.32966713795747327
+ 0.32967630867986369
+ 0.32968547969526341
+ 0.32969465100368789
+ 0.32970382260515008
+ 0.32971299449966396
+ 0.32972216668724424
+ 0.32973133916790548
+ 0.32974051194165926
+ 0.32974968500852181
+ 0.32975885836850705
+ 0.32976803202162797
+ 0.32977720596789933
+ 0.3297863802073342
+ 0.32979555473994798
+ 0.32980472956575391
+ 0.3298139046847649
+ 0.3298230800969974
+ 0.32983225580246356
+ 0.32984143180117814
+ 0.3298506080931542
+ 0.3298597846784081
+ 0.32986896155695117
+ 0.32987813872879901
+ 0.32988731619396472
+ 0.32989649395246373
+ 0.3299056720043092
+ 0.32991485034951412
+ 0.32992402898809409
+ 0.32993320792006292
+ 0.32994238714543378
+ 0.32995156666422132
+ 0.32996074647643947
+ 0.32996992658210206
+ 0.3299791069812239
+ 0.32998828767381788
+ 0.32999746865989898
+ 0.33000664993948087
+ 0.33001583151257757
+ 0.33002501337920293
+ 0.33003419553937091
+ 0.33004337799309613
+ 0.33005256074039258
+ 0.33006174378127412
+ 0.33007092711575459
+ 0.33008011074384802
+ 0.33008929466556824
+ 0.33009847888093002
+ 0.33010766338994718
+ 0.33011684819263365
+ 0.33012603328900425
+ 0.3301352186790712
+ 0.33014440436284992
+ 0.33015359034035369
+ 0.3301627766115971
+ 0.33017196317659497
+ 0.33018115003535953
+ 0.33019033718790641
+ 0.3301995246342494
+ 0.33020871237440241
+ 0.33021790040837784
+ 0.33022708873619283
+ 0.33023627735785877
+ 0.3302454662733913
+ 0.3302546554828043
+ 0.33026384498611089
+ 0.33027303478332654
+ 0.33028222487446368
+ 0.33029141525953776
+ 0.33030060593856198
+ 0.33030979691155177
+ 0.33031898817851951
+ 0.33032817973947992
+ 0.33033737159444687
+ 0.33034656374343524
+ 0.33035575618645713
+ 0.33036494892352991
+ 0.33037414195466497
+ 0.33038333527987712
+ 0.33039252889918103
+ 0.330401722812589
+ 0.33041091702011743
+ 0.33042011152177869
+ 0.33042930631758827
+ 0.33043850140755926
+ 0.33044769679170571
+ 0.33045689247004223
+ 0.33046608844258291
+ 0.33047528470934157
+ 0.33048448127033214
+ 0.33049367812556857
+ 0.33050287527506572
+ 0.33051207271883665
+ 0.330521270456896
+ 0.33053046848925877
+ 0.33053966681593788
+ 0.33054886543694734
+ 0.33055806435230195
+ 0.33056726356201555
+ 0.33057646306610139
+ 0.33058566286457497
+ 0.33059486295744944
+ 0.33060406334474041
+ 0.33061326402645941
+ 0.33062246500262271
+ 0.33063166627324359
+ 0.33064086783833585
+ 0.33065006969791438
+ 0.33065927185199312
+ 0.33066847430058516
+ 0.33067767704370532
+ 0.33068688008136826
+ 0.33069608341358731
+ 0.33070528704037705
+ 0.33071449096175154
+ 0.33072369517772476
+ 0.33073289968831066
+ 0.33074210449352387
+ 0.33075130959337778
+ 0.33076051498788694
+ 0.33076972067706545
+ 0.33077892666092729
+ 0.33078813293948711
+ 0.33079733951275814
+ 0.33080654638075513
+ 0.33081575354349213
+ 0.33082496100098302
+ 0.33083416875324262
+ 0.33084337680028408
+ 0.33085258514212218
+ 0.33086179377877084
+ 0.33087100271024417
+ 0.33088021193655598
+ 0.33088942145772121
+ 0.33089863127375363
+ 0.33090784138466744
+ 0.3309170517904757
+ 0.33092626249119395
+ 0.33093547348683627
+ 0.33094468477741573
+ 0.33095389636294809
+ 0.33096310824344549
+ 0.33097232041892377
+ 0.33098153288939591
+ 0.33099074565487591
+ 0.33099995871538035
+ 0.33100917207091979
+ 0.3310183857215116
+ 0.33102759966716794
+ 0.33103681390790302
+ 0.33104602844373154
+ 0.33105524327466823
+ 0.3310644584007264
+ 0.33107367382191999
+ 0.33108288953826376
+ 0.3310921055497717
+ 0.33110132185645791
+ 0.33111053845833621
+ 0.33111975535542243
+ 0.33112897254772794
+ 0.33113819003526923
+ 0.33114740781805946
+ 0.33115662589611194
+ 0.33116584426944301
+ 0.33117506293806576
+ 0.33118428190199267
+ 0.33119350116124108
+ 0.33120272071582324
+ 0.33121194056575315
+ 0.33122116071104563
+ 0.33123038115171549
+ 0.33123960188777518
+ 0.33124882291923952
+ 0.33125804424612404
+ 0.33126726586844119
+ 0.33127648778620572
+ 0.33128570999943091
+ 0.33129493250813319
+ 0.33130415531232488
+ 0.33131337841202091
+ 0.33132260180723599
+ 0.33133182549798257
+ 0.33134104948427628
+ 0.3313502737661303
+ 0.33135949834355949
+ 0.33136872321657784
+ 0.33137794838520013
+ 0.33138717384943966
+ 0.33139639960931122
+ 0.33140562566482884
+ 0.33141485201600646
+ 0.33142407866285822
+ 0.33143330560539885
+ 0.33144253284364161
+ 0.33145176037760216
+ 0.33146098820729286
+ 0.33147021633272938
+ 0.33147944475392571
+ 0.33148867347089511
+ 0.33149790248365324
+ 0.33150713179221325
+ 0.33151636139658919
+ 0.3315255912967951
+ 0.33153482149284669
+ 0.33154405198475706
+ 0.33155328277254031
+ 0.33156251385621127
+ 0.33157174523578314
+ 0.33158097691127086
+ 0.33159020888268836
+ 0.33159944115005047
+ 0.33160867371337133
+ 0.3316179065726641
+ 0.33162713972794361
+ 0.33163637317922479
+ 0.33164560692652079
+ 0.33165484096984649
+ 0.3316640753092151
+ 0.33167330994464223
+ 0.33168254487614041
+ 0.33169178010372613
+ 0.33170101562741167
+ 0.33171025144721283
+ 0.33171948756314201
+ 0.3317287239752148
+ 0.3317379606834453
+ 0.33174719768784672
+ 0.33175643498843399
+ 0.33176567258522188
+ 0.33177491047822366
+ 0.33178414866745426
+ 0.33179338715292767
+ 0.33180262593465876
+ 0.33181186501265986
+ 0.33182110438694684
+ 0.33183034405753364
+ 0.33183958402443431
+ 0.33184882428766294
+ 0.33185806484723446
+ 0.33186730570316275
+ 0.3318765468554612
+ 0.3318857883041455
+ 0.33189503004922877
+ 0.33190427209072604
+ 0.33191351442865041
+ 0.33192275706301771
+ 0.3319319999938411
+ 0.33194124322113466
+ 0.33195048674491323
+ 0.33195973056519101
+ 0.33196897468198272
+ 0.33197821909530173
+ 0.33198746380516203
+ 0.3319967088115785
+ 0.33200595411456613
+ 0.33201519971413807
+ 0.33202444561030842
+ 0.33203369180309206
+ 0.33204293829250309
+ 0.3320521850785555
+ 0.33206143216126432
+ 0.33207067954064351
+ 0.33207992721670632
+ 0.33208917518946857
+ 0.33209842345894258
+ 0.33210767202514496
+ 0.33211692088808814
+ 0.33212617004778699
+ 0.33213541950425646
+ 0.33214466925751057
+ 0.33215391930756255
+ 0.3321631696544266
+ 0.33217242029811916
+ 0.33218167123865189
+ 0.33219092247604054
+ 0.33220017401029994
+ 0.33220942584144264
+ 0.33221867796948423
+ 0.33222793039443815
+ 0.33223718311631995
+ 0.33224643613514221
+ 0.33225568945091977
+ 0.33226494306366755
+ 0.33227419697339966
+ 0.3322834511801302
+ 0.33229270568387326
+ 0.33230196048464372
+ 0.33231121558245486
+ 0.33232047097732165
+ 0.33232972666925886
+ 0.33233898265827999
+ 0.33234823894439974
+ 0.33235749552763161
+ 0.3323667524079903
+ 0.33237600958549085
+ 0.33238526706014726
+ 0.33239452483197302
+ 0.3324037829009836
+ 0.33241304126719251
+ 0.33242229993061378
+ 0.3324315588912623
+ 0.33244081814915216
+ 0.33245007770429752
+ 0.33245933755671325
+ 0.33246859770641357
+ 0.33247785815341246
+ 0.33248711889772331
+ 0.33249637993936254
+ 0.33250564127834287
+ 0.33251490291467894
+ 0.3325241648483851
+ 0.33253342707947536
+ 0.33254268960796468
+ 0.33255195243386793
+ 0.33256121555719764
+ 0.33257047897796954
+ 0.33257974269619706
+ 0.33258900671189495
+ 0.33259827102507739
+ 0.33260753563575934
+ 0.33261680054395415
+ 0.33262606574967668
+ 0.33263533125294192
+ 0.33264459705376231
+ 0.33265386315215362
+ 0.33266312954812999
+ 0.33267239624170558
+ 0.33268166323289527
+ 0.33269093052171245
+ 0.3327001981081712
+ 0.33270946599228723
+ 0.33271873417407394
+ 0.33272800265354624
+ 0.33273727143071741
+ 0.33274654050560332
+ 0.33275580987821635
+ 0.33276507954857232
+ 0.33277434951668544
+ 0.33278361978256971
+ 0.33279289034624016
+ 0.33280216120771011
+ 0.33281143236699368
+ 0.33282070382410667
+ 0.33282997557906235
+ 0.33283924763187489
+ 0.33284851998255927
+ 0.33285779263112958
+ 0.33286706557760082
+ 0.33287633882198631
+ 0.33288561236430109
+ 0.33289488620455915
+ 0.33290416034277476
+ 0.33291343477896274
+ 0.33292270951313663
+ 0.3329319845453112
+ 0.33294125987550149
+ 0.33295053550372089
+ 0.33295981142998438
+ 0.33296908765430594
+ 0.33297836417670074
+ 0.33298764099718192
+ 0.33299691811576382
+ 0.33300619553246213
+ 0.33301547324729019
+ 0.33302475126026304
+ 0.33303402957139394
+ 0.33304330818069794
+ 0.33305258708818997
+ 0.33306186629388418
+ 0.3330711457977939
+ 0.33308042559993417
+ 0.33308970570031993
+ 0.33309898609896449
+ 0.33310826679588373
+ 0.33311754779109021
+ 0.33312682908459962
+ 0.33313611067642523
+ 0.3331453925665831
+ 0.33315467475508559
+ 0.33316395724194769
+ 0.33317324002718529
+ 0.3331825231108117
+ 0.33319180649284019
+ 0.33320109017328664
+ 0.33321037415216526
+ 0.3332196584294902
+ 0.33322894300527556
+ 0.33323822787953561
+ 0.33324751305228534
+ 0.33325679852353884
+ 0.33326608429331123
+ 0.3332753703616157
+ 0.33328465672846663
+ 0.33329394339387969
+ 0.33330323035786907
+ 0.33331251762044739
+ 0.33332180518163129
+ 0.33333109304143399
+ 0.33334038119986986
+ 0.33334966965695378
+ 0.33335895841269997
+ 0.33336824746712185
+ 0.33337753682023513
+ 0.33338682647205409
+ 0.33339611642259293
+ 0.33340540667186574
+ 0.33341469721988676
+ 0.33342398806667189
+ 0.33343327921223442
+ 0.33344257065658778
+ 0.33345186239974772
+ 0.33346115444172852
+ 0.33347044678254512
+ 0.33347973942221015
+ 0.3334890323607394
+ 0.33349832559814702
+ 0.33350761913444732
+ 0.33351691296965519
+ 0.33352620710378417
+ 0.33353550153684913
+ 0.33354479626886518
+ 0.3335540912998457
+ 0.33356338662980484
+ 0.33357268225875852
+ 0.33358197818672003
+ 0.33359127441370445
+ 0.33360057093972512
+ 0.33360986776479795
+ 0.33361916488893628
+ 0.33362846231215521
+ 0.33363776003446804
+ 0.33364705805589068
+ 0.33365635637643731
+ 0.33366565499612133
+ 0.33367495391495777
+ 0.33368425313296085
+ 0.33369355265014561
+ 0.33370285246652626
+ 0.33371215258211695
+ 0.33372145299693207
+ 0.33373075371098648
+ 0.3337400547242953
+ 0.33374935603687111
+ 0.33375865764872886
+ 0.33376795955988453
+ 0.33377726177035066
+ 0.33378656428014308
+ 0.33379586708927605
+ 0.33380517019776301
+ 0.33381447360561889
+ 0.33382377731285884
+ 0.33383308131949702
+ 0.33384238562554691
+ 0.33385169023102429
+ 0.33386099513594264
+ 0.33387030034031778
+ 0.33387960584416237
+ 0.33388891164749135
+ 0.33389821775032075
+ 0.333907524152663
+ 0.33391683085453316
+ 0.33392613785594644
+ 0.33393544515691698
+ 0.333944752757459
+ 0.33395406065758676
+ 0.33396336885731448
+ 0.33397267735665809
+ 0.33398198615563013
+ 0.33399129525424726
+ 0.33400060465252218
+ 0.33400991435046995
+ 0.33401922434810472
+ 0.33402853464544169
+ 0.33403784524249408
+ 0.33404715613927882
+ 0.33405646733580757
+ 0.33406577883209626
+ 0.33407509062815827
+ 0.3340844027240103
+ 0.33409371511966507
+ 0.33410302781513668
+ 0.33411234081044194
+ 0.33412165410559264
+ 0.33413096770060463
+ 0.33414028159549219
+ 0.33414959579026959
+ 0.33415891028495187
+ 0.33416822507955324
+ 0.33417754017408807
+ 0.33418685556857053
+ 0.33419617126301576
+ 0.33420548725743798
+ 0.3342148035518514
+ 0.33422412014627118
+ 0.33423343704071157
+ 0.33424275423518685
+ 0.33425207172971122
+ 0.33426138952429979
+ 0.33427070761896688
+ 0.33428002601372664
+ 0.33428934470859512
+ 0.33429866370358396
+ 0.33430798299871084
+ 0.33431730259398756
+ 0.33432662248943079
+ 0.33433594268505318
+ 0.33434526318086982
+ 0.3343545839768966
+ 0.33436390507314628
+ 0.33437322646963458
+ 0.33438254816637503
+ 0.33439187016338284
+ 0.33440119246067213
+ 0.33441051505825725
+ 0.33441983795615327
+ 0.33442916115437449
+ 0.33443848465293602
+ 0.33444780845185129
+ 0.33445713255113457
+ 0.33446645695080179
+ 0.33447578165086733
+ 0.33448510665134451
+ 0.33449443195224848
+ 0.33450375755359441
+ 0.33451308345539571
+ 0.33452240965766744
+ 0.33453173616042475
+ 0.33454106296368114
+ 0.33455039006745174
+ 0.3345597174717499
+ 0.33456904517659258
+ 0.33457837318199135
+ 0.33458770148796391
+ 0.33459703009452219
+ 0.33460635900168195
+ 0.33461568820945758
+ 0.33462501771786335
+ 0.3346343475269144
+ 0.33464367763662495
+ 0.33465300804700859
+ 0.33466233875808121
+ 0.33467166976985713
+ 0.3346810010823506
+ 0.33469033269557596
+ 0.33469966460954753
+ 0.33470899682428112
+ 0.33471832933979034
+ 0.33472766215608957
+ 0.33473699527319462
+ 0.33474632869111814
+ 0.3347556624098762
+ 0.33476499642948215
+ 0.33477433074995205
+ 0.33478366537129933
+ 0.33479300029353837
+ 0.33480233551668498
+ 0.33481167104075277
+ 0.33482100686575689
+ 0.33483034299171072
+ 0.33483967941862952
+ 0.33484901614652834
+ 0.33485835317542151
+ 0.33486769050532339
+ 0.3348770281362482
+ 0.33488636606821126
+ 0.33489570430122667
+ 0.33490504283530892
+ 0.33491438167047305
+ 0.33492372080673344
+ 0.3349330602441043
+ 0.334942399982601
+ 0.33495174002223682
+ 0.33496108036302868
+ 0.33497042100498836
+ 0.33497976194813189
+ 0.3349891031924736
+ 0.3349984447380277
+ 0.33500778658480945
+ 0.33501712873283407
+ 0.33502647118211409
+ 0.3350358139326664
+ 0.33504515698450366
+ 0.33505450033764184
+ 0.33506384399209449
+ 0.33507318794787672
+ 0.33508253220500284
+ 0.33509187676348812
+ 0.33510122162334677
+ 0.33511056678459239
+ 0.33511991224724091
+ 0.33512925801130672
+ 0.33513860407680496
+ 0.33514795044374918
+ 0.33515729711215364
+ 0.33516664408203356
+ 0.33517599135340409
+ 0.33518533892627878
+ 0.33519468680067271
+ 0.33520403497660117
+ 0.3352133834540777
+ 0.33522273223311727
+ 0.33523208131373522
+ 0.33524143069594503
+ 0.33525078037976191
+ 0.33526013036520019
+ 0.33526948065227502
+ 0.33527883124099994
+ 0.33528818213139089
+ 0.33529753332346157
+ 0.33530688481722609
+ 0.33531623661270149
+ 0.33532558870989959
+ 0.33533494110883638
+ 0.33534429380952618
+ 0.33535364681198426
+ 0.33536300011622483
+ 0.3353723537222616
+ 0.33538170763011049
+ 0.33539106183978512
+ 0.33540041635130136
+ 0.3354097711646728
+ 0.33541912627991388
+ 0.3354284816970397
+ 0.33543783741606548
+ 0.3354471934370048
+ 0.33545654975987366
+ 0.33546590638468471
+ 0.33547526331145405
+ 0.33548462054019601
+ 0.33549397807092496
+ 0.33550333590365611
+ 0.335512694038403
+ 0.33552205247518169
+ 0.33553141121400565
+ 0.3355407702548901
+ 0.33555012959785036
+ 0.33555948924289986
+ 0.33556884919005292
+ 0.33557820943932576
+ 0.33558756999073253
+ 0.33559693084428699
+ 0.33560629200000425
+ 0.33561565345789945
+ 0.33562501521798632
+ 0.33563437728028078
+ 0.33564373964479638
+ 0.33565310231154832
+ 0.3356624652805511
+ 0.33567182855181893
+ 0.33568119212536801
+ 0.335690556001211
+ 0.33569992017936395
+ 0.3357092846598404
+ 0.33571864944265639
+ 0.33572801452782469
+ 0.33573737991536223
+ 0.33574674560528245
+ 0.33575611159759972
+ 0.33576547789232947
+ 0.33577484448948586
+ 0.33578421138908426
+ 0.33579357859113829
+ 0.33580294609566302
+ 0.33581231390267285
+ 0.33582168201218393
+ 0.33583105042420974
+ 0.335840419138764
+ 0.33584978815586347
+ 0.33585915747552086
+ 0.33586852709775322
+ 0.33587789702257315
+ 0.33588726724999507
+ 0.33589663778003598
+ 0.33590600861270847
+ 0.33591537974802788
+ 0.33592475118600945
+ 0.33593412292666675
+ 0.33594349497001574
+ 0.33595286731607016
+ 0.33596223996484431
+ 0.3359716129163543
+ 0.33598098617061373
+ 0.33599035972763786
+ 0.33599973358744184
+ 0.3360091077500385
+ 0.33601848221544467
+ 0.33602785698367321
+ 0.33603723205474012
+ 0.33604660742865988
+ 0.33605598310544688
+ 0.33606535908511637
+ 0.33607473536768184
+ 0.33608411195315951
+ 0.33609348884156298
+ 0.33610286603290745
+ 0.33611224352720726
+ 0.33612162132447776
+ 0.3361309994247334
+ 0.33614037782798772
+ 0.33614975653425766
+ 0.33615913554355592
+ 0.33616851485589871
+ 0.33617789447129953
+ 0.33618727438977375
+ 0.33619665461133647
+ 0.33620603513600139
+ 0.33621541596378374
+ 0.33622479709469888
+ 0.33623417852876031
+ 0.33624356026598329
+ 0.33625294230638314
+ 0.33626232464997341
+ 0.33627170729676942
+ 0.33628109024678643
+ 0.33629047350003805
+ 0.33629985705654036
+ 0.33630924091630698
+ 0.33631862507935317
+ 0.33632800954569336
+ 0.33633739431534204
+ 0.33634677938831531
+ 0.33635616476462676
+ 0.33636555044429084
+ 0.33637493642732197
+ 0.33638432271373708
+ 0.33639370930354912
+ 0.33640309619677228
+ 0.33641248339342367
+ 0.33642187089351522
+ 0.33643125869706392
+ 0.3364406468040832
+ 0.33645003521458861
+ 0.33645942392859357
+ 0.33646881294611514
+ 0.33647820226716518
+ 0.33648759189176158
+ 0.33649698181991627
+ 0.33650637205164535
+ 0.33651576258696408
+ 0.33652515342588613
+ 0.33653454456842591
+ 0.33654393601460048
+ 0.33655332776442171
+ 0.33656271981790664
+ 0.33657211217506794
+ 0.33658150483592275
+ 0.33659089780048457
+ 0.33660029106876782
+ 0.33660968464078717
+ 0.33661907851655853
+ 0.33662847269609569
+ 0.33663786717941385
+ 0.33664726196652761
+ 0.33665665705745212
+ 0.3366660524522011
+ 0.33667544815079065
+ 0.33668484415323446
+ 0.33669424045954777
+ 0.33670363706974515
+ 0.33671303398384189
+ 0.3367224312018523
+ 0.33673182872379187
+ 0.33674122654967426
+ 0.33675062467951467
+ 0.33676002311332842
+ 0.33676942185112929
+ 0.33677882089293326
+ 0.33678822023875404
+ 0.33679761988860701
+ 0.33680701984250744
+ 0.33681642010046892
+ 0.33682582066250599
+ 0.33683522152863488
+ 0.33684462269886994
+ 0.33685402417322657
+ 0.33686342595171753
+ 0.33687282803435903
+ 0.33688223042116644
+ 0.33689163311215331
+ 0.33690103610733507
+ 0.33691043940672605
+ 0.33691984301034178
+ 0.33692924691819576
+ 0.3369386511303043
+ 0.33694805564668173
+ 0.33695746046734271
+ 0.3369668655923016
+ 0.33697627102157296
+ 0.33698567675517377
+ 0.33699508279311691
+ 0.3370044891354177
+ 0.33701389578209062
+ 0.33702330273315012
+ 0.33703270998861251
+ 0.33704211754849128
+ 0.33705152541280198
+ 0.33706093358155897
+ 0.33707034205477676
+ 0.3370797508324716
+ 0.33708915991465621
+ 0.33709856930134691
+ 0.33710797899255895
+ 0.33711738898830518
+ 0.3371267992886019
+ 0.33713620989346338
+ 0.33714562080290522
+ 0.33715503201694175
+ 0.33716444353558678
+ 0.33717385535885724
+ 0.33718326748676597
+ 0.33719267991932927
+ 0.33720209265656076
+ 0.33721150569847569
+ 0.33722091904508955
+ 0.33723033269641689
+ 0.33723974665247208
+ 0.33724916091326979
+ 0.33725857547882526
+ 0.33726799034915389
+ 0.33727740552426938
+ 0.33728682100418794
+ 0.33729623678892329
+ 0.33730565287848985
+ 0.33731506927290389
+ 0.3373244859721799
+ 0.3373339029763317
+ 0.33734332028537534
+ 0.33735273789932452
+ 0.33736215581819551
+ 0.33737157404200208
+ 0.33738099257075943
+ 0.33739041140448223
+ 0.3373998305431849
+ 0.33740924998688376
+ 0.33741866973559237
+ 0.33742808978932542
+ 0.33743751014809903
+ 0.33744693081192778
+ 0.33745635178082539
+ 0.33746577305480718
+ 0.33747519463388853
+ 0.33748461651808404
+ 0.33749403870740907
+ 0.33750346120187724
+ 0.33751288400150492
+ 0.33752230710630571
+ 0.33753173051629498
+ 0.33754115423148739
+ 0.33755057825189827
+ 0.3375600025775421
+ 0.33756942720843353
+ 0.33757885214458871
+ 0.3375882773860206
+ 0.33759770293274532
+ 0.33760712878477828
+ 0.33761655494213244
+ 0.33762598140482403
+ 0.33763540817286836
+ 0.33764483524627914
+ 0.33765426262507187
+ 0.33766369030926185
+ 0.33767311829886282
+ 0.33768254659389024
+ 0.33769197519435862
+ 0.33770140410028415
+ 0.33771083331168067
+ 0.33772026282856266
+ 0.33772969265094638
+ 0.33773912277884466
+ 0.3377485532122747
+ 0.33775798395125012
+ 0.33776741499578561
+ 0.33777684634589727
+ 0.33778627800159894
+ 0.33779570996290503
+ 0.33780514222983199
+ 0.33781457480239346
+ 0.33782400768060489
+ 0.33783344086448164
+ 0.33784287435403743
+ 0.33785230814928774
+ 0.3378617422502479
+ 0.33787117665693256
+ 0.33788061136935627
+ 0.33789004638753445
+ 0.33789948171148165
+ 0.33790891734121253
+ 0.33791835327674236
+ 0.33792778951808672
+ 0.3379372260652585
+ 0.33794666291827546
+ 0.33795610007714988
+ 0.33796553754189873
+ 0.33797497531253506
+ 0.33798441338907492
+ 0.3379938517715339
+ 0.33800329045992483
+ 0.33801272945426486
+ 0.3380221687545677
+ 0.33803160836084806
+ 0.3380410482731212
+ 0.33805048849140268
+ 0.33805992901570697
+ 0.3380693698460488
+ 0.33807881098244263
+ 0.33808825242490403
+ 0.33809769417344837
+ 0.33810713622809024
+ 0.33811657858884331
+ 0.33812602125572488
+ 0.33813546422874774
+ 0.33814490750792825
+ 0.33815435109328013
+ 0.33816379498481958
+ 0.33817323918256137
+ 0.33818268368651916
+ 0.33819212849670921
+ 0.33820157361314618
+ 0.33821101903584466
+ 0.33822046476481926
+ 0.3382299108000863
+ 0.33823935714165948
+ 0.3382488037895543
+ 0.33825825074378535
+ 0.33826769800436723
+ 0.33827714557131627
+ 0.33828659344464623
+ 0.33829604162437249
+ 0.33830549011050987
+ 0.33831493890307351
+ 0.33832438800207831
+ 0.33833383740753953
+ 0.33834328711947104
+ 0.33835273713788921
+ 0.33836218746280772
+ 0.33837163809424198
+ 0.33838108903220754
+ 0.33839054027671983
+ 0.33839999182779101
+ 0.33840944368543902
+ 0.33841889584967844
+ 0.33842834832052227
+ 0.33843780109798766
+ 0.33844725418208838
+ 0.33845670757283997
+ 0.33846616127025686
+ 0.33847561527435382
+ 0.33848506958514724
+ 0.33849452420265069
+ 0.33850397912687985
+ 0.33851343435784931
+ 0.33852288989557444
+ 0.33853234574006913
+ 0.33854180189134964
+ 0.33855125834943145
+ 0.33856071511432762
+ 0.33857017218605429
+ 0.33857962956462712
+ 0.33858908725005976
+ 0.33859854524236782
+ 0.33860800354156584
+ 0.33861746214766936
+ 0.33862692106069298
+ 0.33863638028065218
+ 0.33864583980756163
+ 0.33865529964143687
+ 0.33866475978229077
+ 0.33867422023014138
+ 0.33868368098500251
+ 0.338693142046888
+ 0.33870260341581326
+ 0.33871206509179552
+ 0.33872152707484693
+ 0.33873098936498375
+ 0.33874045196222069
+ 0.33874991486657324
+ 0.33875937807805601
+ 0.33876884159668369
+ 0.33877830542247178
+ 0.33878776955543577
+ 0.33879723399558948
+ 0.33880669874294839
+ 0.3388161637975281
+ 0.33882562915934311
+ 0.33883509482840901
+ 0.33884456080473963
+ 0.33885402708835044
+ 0.33886349367925783
+ 0.33887296057747468
+ 0.33888242778301664
+ 0.33889189529589997
+ 0.3389013631161385
+ 0.33891083124374777
+ 0.33892029967874243
+ 0.33892976842113715
+ 0.33893923747094834
+ 0.33894870682818973
+ 0.33895817649287768
+ 0.33896764646502525
+ 0.33897711674464875
+ 0.3389865873317629
+ 0.33899605822638318
+ 0.33900552942852424
+ 0.33901500093820086
+ 0.33902447275542924
+ 0.33903394488022254
+ 0.33904341731259785
+ 0.33905289005256822
+ 0.33906236310014998
+ 0.33907183645535793
+ 0.33908131011820741
+ 0.33909078408871318
+ 0.33910025836688912
+ 0.33910973295275249
+ 0.33911920784631616
+ 0.33912868304759736
+ 0.33913815855660923
+ 0.33914763437336798
+ 0.33915711049788749
+ 0.33916658693018426
+ 0.33917606367027286
+ 0.33918554071816803
+ 0.33919501807388441
+ 0.33920449573743838
+ 0.33921397370884399
+ 0.3392234519881156
+ 0.33923293057527071
+ 0.3392424094703213
+ 0.33925188867328565
+ 0.33926136818417568
+ 0.33927084800300966
+ 0.33928032812979964
+ 0.33928980856456209
+ 0.33929928930731251
+ 0.33930877035806556
+ 0.33931825171683605
+ 0.33932773338363859
+ 0.33933721535848888
+ 0.33934669764140307
+ 0.33935618023239439
+ 0.33936566313147831
+ 0.33937514633867033
+ 0.3393846298539861
+ 0.33939411367743944
+ 0.33940359780904672
+ 0.33941308224882188
+ 0.33942256699678125
+ 0.33943205205293792
+ 0.33944153741730904
+ 0.33945102308990854
+ 0.33946050907075209
+ 0.33946999535985423
+ 0.3394794819572306
+ 0.33948896886289592
+ 0.33949845607686574
+ 0.33950794359915393
+ 0.33951743142977686
+ 0.33952691956874936
+ 0.33953640801608603
+ 0.33954589677180258
+ 0.33955538583591366
+ 0.33956487520843481
+ 0.33957436488938075
+ 0.3395838548787663
+ 0.33959334517660772
+ 0.33960283578291905
+ 0.33961232669771585
+ 0.33962181792101187
+ 0.33963130945282533
+ 0.33964080129316843
+ 0.33965029344205672
+ 0.33965978589950657
+ 0.33966927866553198
+ 0.33967877174014932
+ 0.33968826512337247
+ 0.33969775881521702
+ 0.33970725281569686
+ 0.3397167471248293
+ 0.33972624174262817
+ 0.33973573666910911
+ 0.33974523190428685
+ 0.33975472744817603
+ 0.33976422330079242
+ 0.33977371946215151
+ 0.33978321593226885
+ 0.3397927127111568
+ 0.33980220979883413
+ 0.33981170719531323
+ 0.33982120490061035
+ 0.33983070291474043
+ 0.33984020123771813
+ 0.33984969986956076
+ 0.33985919881028043
+ 0.33986869805989378
+ 0.33987819761841626
+ 0.33988769748586184
+ 0.33989719766224774
+ 0.33990669814758623
+ 0.33991619894189462
+ 0.33992570004518768
+ 0.33993520145748007
+ 0.33994470317878667
+ 0.33995420520912306
+ 0.33996370754850475
+ 0.3399732101969466
+ 0.33998271315446327
+ 0.33999221642107053
+ 0.34000171999678386
+ 0.3400112238816172
+ 0.34002072807558703
+ 0.34003023257870729
+ 0.34003973739099358
+ 0.34004924251246149
+ 0.34005874794312574
+ 0.34006825368300209
+ 0.34007775973210436
+ 0.34008726609044904
+ 0.34009677275805089
+ 0.34010627973492463
+ 0.34011578702108602
+ 0.34012529461654972
+ 0.34013480252133138
+ 0.34014431073544582
+ 0.34015381925890859
+ 0.3401633280917345
+ 0.34017283723393921
+ 0.34018234668553654
+ 0.34019185644654321
+ 0.34020136651697369
+ 0.34021087689684382
+ 0.34022038758616746
+ 0.34022989858496105
+ 0.34023940989323864
+ 0.34024892151101671
+ 0.34025843343830908
+ 0.34026794567513224
+ 0.34027745822150024
+ 0.34028697107742861
+ 0.34029648424293307
+ 0.34030599771802839
+ 0.34031551150273021
+ 0.34032502559705319
+ 0.34033454000101149
+ 0.34034405471462237
+ 0.34035356973789971
+ 0.34036308507085916
+ 0.34037260071351644
+ 0.34038211666588547
+ 0.34039163292798275
+ 0.3404011494998222
+ 0.34041066638141942
+ 0.34042018357279019
+ 0.34042970107394921
+ 0.34043921888491219
+ 0.34044873700569306
+ 0.34045825543630914
+ 0.3404677741767736
+ 0.34047729322710291
+ 0.34048681258731101
+ 0.34049633225741438
+ 0.34050585223742791
+ 0.34051537252736636
+ 0.34052489312724543
+ 0.34053441403708073
+ 0.3405439352568862
+ 0.34055345678667748
+ 0.34056297862647045
+ 0.34057250077627965
+ 0.34058202323612086
+ 0.34059154600600899
+ 0.34060106908595861
+ 0.34061059247598646
+ 0.34062011617610644
+ 0.34062964018633501
+ 0.34063916450668547
+ 0.340648689137175
+ 0.34065821407781754
+ 0.34066773932862898
+ 0.34067726488962397
+ 0.3406867907608182
+ 0.34069631694222741
+ 0.34070584343386551
+ 0.3407153702357491
+ 0.34072489734789291
+ 0.34073442477031102
+ 0.3407439525030207
+ 0.3407534805460361
+ 0.34076300889937183
+ 0.34077253756304376
+ 0.34078206653706827
+ 0.34079159582145863
+ 0.34080112541623131
+ 0.34081065532140109
+ 0.34082018553698373
+ 0.34082971606299323
+ 0.34083924689944611
+ 0.34084877804635721
+ 0.34085830950374213
+ 0.34086784127161501
+ 0.34087737334999307
+ 0.3408869057388888
+ 0.34089643843831946
+ 0.34090597144830076
+ 0.3409155047688458
+ 0.34092503839997212
+ 0.34093457234169361
+ 0.34094410659402591
+ 0.34095364115698323
+ 0.34096317603058274
+ 0.34097271121483852
+ 0.34098224670976635
+ 0.34099178251538098
+ 0.34100131863169814
+ 0.34101085505873269
+ 0.34102039179650029
+ 0.3410299288450151
+ 0.34103946620429432
+ 0.34104900387435205
+ 0.34105854185520318
+ 0.34106808014686418
+ 0.34107761874934917
+ 0.34108715766267461
+ 0.34109669688685462
+ 0.34110623642190485
+ 0.34111577626784012
+ 0.34112531642467703
+ 0.34113485689242962
+ 0.34114439767111354
+ 0.34115393876074457
+ 0.34116348016133757
+ 0.34117302187290816
+ 0.34118256389547053
+ 0.34119210622904117
+ 0.34120164887363491
+ 0.34121119182926662
+ 0.34122073509595208
+ 0.34123027867370698
+ 0.3412398225625462
+ 0.34124936676248463
+ 0.34125891127353791
+ 0.34126845609572193
+ 0.34127800122905139
+ 0.34128754667354139
+ 0.34129709242920742
+ 0.34130663849606446
+ 0.34131618487412907
+ 0.34132573156341534
+ 0.34133527856393814
+ 0.34134482587571396
+ 0.3413543734987578
+ 0.3413639214330853
+ 0.34137346967871068
+ 0.34138301823565026
+ 0.34139256710391824
+ 0.34140211628353112
+ 0.34141166577450394
+ 0.34142121557685151
+ 0.3414307656905895
+ 0.34144031611573361
+ 0.34144986685229811
+ 0.34145941790029943
+ 0.34146896925975168
+ 0.34147852093067138
+ 0.34148807291307354
+ 0.34149762520697297
+ 0.34150717781238538
+ 0.34151673072932659
+ 0.34152628395781065
+ 0.34153583749785416
+ 0.34154539134947198
+ 0.34155494551267906
+ 0.34156449998749111
+ 0.34157405477392311
+ 0.34158360987199071
+ 0.34159316528170891
+ 0.34160272100309419
+ 0.34161227703616076
+ 0.34162183338092433
+ 0.34163139003739973
+ 0.34164094700560282
+ 0.34165050428554844
+ 0.34166006187725328
+ 0.34166961978073135
+ 0.3416791779959984
+ 0.3416887365230693
+ 0.34169829536196
+ 0.34170785451268604
+ 0.34171741397526251
+ 0.34172697374970423
+ 0.34173653383602703
+ 0.34174609423424662
+ 0.34175565494437715
+ 0.34176521596643511
+ 0.34177477730043554
+ 0.34178433894639421
+ 0.34179390090432599
+ 0.34180346317424581
+ 0.34181302575616951
+ 0.34182258865011278
+ 0.34183215185609056
+ 0.34184171537411873
+ 0.34185127920421121
+ 0.34186084334638556
+ 0.34187040780065509
+ 0.34187997256703628
+ 0.34188953764554419
+ 0.34189910303619458
+ 0.34190866873900144
+ 0.34191823475398236
+ 0.34192780108115139
+ 0.3419373677205243
+ 0.34194693467211518
+ 0.34195650193594163
+ 0.34196606951201752
+ 0.34197563740035802
+ 0.34198520560097956
+ 0.34199477411389728
+ 0.34200434293912602
+ 0.34201391207668064
+ 0.34202348152657797
+ 0.34203305128883282
+ 0.34204262136346109
+ 0.3420521917504768
+ 0.34206176244989661
+ 0.34207133346173463
+ 0.3420809047860075
+ 0.34209047642273022
+ 0.34210004837191849
+ 0.34210962063358652
+ 0.34211919320775086
+ 0.34212876609442744
+ 0.34213833929362941
+ 0.34214791280537438
+ 0.34215748662967632
+ 0.34216706076655196
+ 0.34217663521601543
+ 0.34218620997808258
+ 0.3421957850527691
+ 0.34220536044008998
+ 0.34221493614006104
+ 0.34222451215269739
+ 0.34223408847801468
+ 0.34224366511602788
+ 0.34225324206675284
+ 0.34226281933020541
+ 0.34227239690639966
+ 0.34228197479535227
+ 0.3422915529970782
+ 0.34230113151159242
+ 0.34231071033891086
+ 0.3423202894790483
+ 0.34232986893202155
+ 0.34233944869784472
+ 0.34234902877653361
+ 0.34235860916810401
+ 0.34236818987257095
+ 0.34237777088994942
+ 0.34238735222025601
+ 0.34239693386350578
+ 0.34240651581971371
+ 0.34241609808889473
+ 0.34242568067106555
+ 0.34243526356624115
+ 0.34244484677443571
+ 0.34245443029566669
+ 0.34246401412994826
+ 0.34247359827729623
+ 0.34248318273772643
+ 0.3424927675112539
+ 0.34250235259789363
+ 0.34251193799766233
+ 0.34252152371057321
+ 0.34253110973664375
+ 0.34254069607588916
+ 0.34255028272832427
+ 0.34255986969396496
+ 0.3425694569728262
+ 0.34257904456492305
+ 0.34258863247027305
+ 0.34259822068888862
+ 0.3426078092207881
+ 0.3426173980659849
+ 0.34262698722449558
+ 0.34263657669633452
+ 0.34264616648151819
+ 0.3426557565800617
+ 0.34266534699198176
+ 0.3426749377172908
+ 0.34268452875600719
+ 0.34269412010814509
+ 0.34270371177372044
+ 0.34271330375274828
+ 0.34272289604524336
+ 0.34273248865122358
+ 0.34274208157070196
+ 0.34275167480369456
+ 0.34276126835021803
+ 0.34277086221028652
+ 0.34278045638391591
+ 0.34279005087112202
+ 0.34279964567191995
+ 0.34280924078632463
+ 0.34281883621435277
+ 0.34282843195601864
+ 0.34283802801133895
+ 0.34284762438032856
+ 0.3428572210630027
+ 0.34286681805937708
+ 0.34287641536946684
+ 0.3428860129932878
+ 0.34289561093085663
+ 0.34290520918218675
+ 0.34291480774729405
+ 0.34292440662619517
+ 0.34293400581890515
+ 0.34294360532543905
+ 0.34295320514581279
+ 0.34296280528004131
+ 0.34297240572814053
+ 0.34298200649012639
+ 0.34299160756601299
+ 0.34300120895581715
+ 0.34301081065955374
+ 0.34302041267723887
+ 0.34303001500888741
+ 0.34303961765451535
+ 0.34304922061413767
+ 0.34305882388776937
+ 0.34306842747542815
+ 0.34307803137712728
+ 0.34308763559288358
+ 0.34309724012271109
+ 0.34310684496662663
+ 0.3431164501246462
+ 0.34312605559678389
+ 0.34313566138305557
+ 0.34314526748347723
+ 0.34315487389806465
+ 0.34316448062683214
+ 0.3431740876697964
+ 0.34318369502697166
+ 0.34319330269837461
+ 0.3432029106840212
+ 0.34321251898392569
+ 0.34322212759810383
+ 0.34323173652657168
+ 0.34324134576934429
+ 0.3432509553264374
+ 0.34326056519786707
+ 0.34327017538364751
+ 0.34327978588379543
+ 0.34328939669832587
+ 0.34329900782725475
+ 0.34330861927059642
+ 0.34331823102836823
+ 0.34332784310058462
+ 0.34333745548726058
+ 0.34334706818841376
+ 0.34335668120405743
+ 0.34336629453420842
+ 0.34337590817888103
+ 0.3433855221380927
+ 0.34339513641185698
+ 0.34340475100019047
+ 0.34341436590310925
+ 0.34342398112062827
+ 0.34343359665276191
+ 0.34344321249952764
+ 0.34345282866094057
+ 0.34346244513701496
+ 0.34347206192776841
+ 0.3434816790332143
+ 0.3434912964533704
+ 0.34350091418824985
+ 0.34351053223787043
+ 0.34352015060224628
+ 0.34352976928139345
+ 0.34353938827532782
+ 0.34354900758406443
+ 0.34355862720761843
+ 0.34356824714600659
+ 0.34357786739924395
+ 0.34358748796734567
+ 0.34359710885032768
+ 0.34360673004820586
+ 0.34361635156099529
+ 0.34362597338871126
+ 0.3436355955313703
+ 0.34364521798898762
+ 0.34365484076157832
+ 0.34366446384915833
+ 0.34367408725174364
+ 0.34368371096934841
+ 0.34369333500198951
+ 0.34370295934968287
+ 0.3437125840124427
+ 0.34372220899028588
+ 0.34373183428322662
+ 0.34374145989128174
+ 0.34375108581446628
+ 0.34376071205279618
+ 0.3437703386062867
+ 0.34377996547495365
+ 0.3437895926588122
+ 0.34379922015787751
+ 0.3438088479721671
+ 0.34381847610169447
+ 0.34382810454647728
+ 0.34383773330652889
+ 0.3438473623818662
+ 0.34385699177250512
+ 0.34386662147845987
+ 0.34387625149974732
+ 0.34388588183638252
+ 0.34389551248838157
+ 0.34390514345575862
+ 0.34391477473853144
+ 0.34392440633671417
+ 0.34393403825032287
+ 0.34394367047937263
+ 0.34395330302387944
+ 0.34396293588386012
+ 0.34397256905932805
+ 0.34398220255030015
+ 0.34399183635679226
+ 0.34400147047881879
+ 0.34401110491639741
+ 0.34402073966954144
+ 0.34403037473826775
+ 0.3440400101225915
+ 0.34404964582252867
+ 0.34405928183809525
+ 0.34406891816930552
+ 0.34407855481617622
+ 0.34408819177872346
+ 0.34409782905696151
+ 0.3441074666509063
+ 0.3441171045605747
+ 0.34412674278598016
+ 0.34413638132714031
+ 0.34414602018407031
+ 0.34415565935678533
+ 0.3441652988453005
+ 0.34417493864963272
+ 0.34418457876979702
+ 0.34419421920580945
+ 0.34420385995768515
+ 0.34421350102543929
+ 0.34422314240908874
+ 0.34423278410864855
+ 0.34424242612413397
+ 0.34425206845556089
+ 0.34426171110294546
+ 0.34427135406630355
+ 0.34428099734564949
+ 0.34429064094099932
+ 0.34430028485236908
+ 0.34430992907977465
+ 0.34431957362323212
+ 0.34432921848275583
+ 0.34433886365836169
+ 0.34434850915006665
+ 0.34435815495788413
+ 0.34436780108183185
+ 0.34437744752192495
+ 0.3443870942781786
+ 0.34439674135060883
+ 0.34440638873923074
+ 0.34441603644406127
+ 0.34442568446511473
+ 0.34443533280240712
+ 0.34444498145595442
+ 0.34445463042577273
+ 0.34446427971187632
+ 0.34447392931428289
+ 0.34448357923300593
+ 0.34449322946806238
+ 0.34450288001946811
+ 0.34451253088723849
+ 0.34452218207138852
+ 0.34453183357193429
+ 0.34454148538889184
+ 0.34455113752227634
+ 0.34456078997210465
+ 0.34457044273839116
+ 0.34458009582115184
+ 0.34458974922040181
+ 0.34459940293615898
+ 0.34460905696843674
+ 0.34461871131725103
+ 0.34462836598261887
+ 0.34463802096455454
+ 0.34464767626307574
+ 0.34465733187819514
+ 0.3446669878099306
+ 0.34467664405829712
+ 0.34468630062331079
+ 0.34469595750498772
+ 0.34470561470334216
+ 0.34471527221839027
+ 0.34472493005014881
+ 0.34473458819863306
+ 0.34474424666385733
+ 0.34475390544583945
+ 0.34476356454459361
+ 0.34477322396013682
+ 0.34478288369248256
+ 0.34479254374164942
+ 0.34480220410765089
+ 0.34481186479050391
+ 0.34482152579022279
+ 0.34483118710682531
+ 0.34484084874032578
+ 0.34485051069074035
+ 0.34486017295808413
+ 0.34486983554237322
+ 0.3448794984436237
+ 0.34488916166185074
+ 0.34489882519707121
+ 0.34490848904929955
+ 0.34491815321855179
+ 0.34492781770484399
+ 0.34493748250819134
+ 0.34494714762861084
+ 0.34495681306611592
+ 0.34496647882072434
+ 0.34497614489245138
+ 0.34498581128131223
+ 0.34499547798732383
+ 0.34500514501049961
+ 0.3450148123508574
+ 0.34502448000841252
+ 0.34503414798318083
+ 0.34504381627517694
+ 0.34505348488441762
+ 0.34506315381091807
+ 0.34507282305469528
+ 0.34508249261576279
+ 0.34509216249413838
+ 0.34510183268983641
+ 0.34511150320287387
+ 0.34512117403326581
+ 0.3451308451810276
+ 0.34514051664617623
+ 0.34515018842872591
+ 0.34515986052869374
+ 0.34516953294609404
+ 0.34517920568094457
+ 0.34518887873325882
+ 0.34519855210305472
+ 0.34520822579034655
+ 0.34521789979515044
+ 0.34522757411748162
+ 0.34523724875735695
+ 0.34524692371479188
+ 0.34525659898980149
+ 0.34526627458240278
+ 0.34527595049261006
+ 0.3452856267204395
+ 0.34529530326590807
+ 0.34530498012903016
+ 0.34531465730982269
+ 0.34532433480829999
+ 0.34533401262447916
+ 0.34534369075837529
+ 0.34535336921000459
+ 0.34536304797938233
+ 0.34537272706652455
+ 0.34538240647144658
+ 0.34539208619416523
+ 0.34540176623469593
+ 0.34541144659305295
+ 0.34542112726925417
+ 0.34543080826331485
+ 0.3454404895752502
+ 0.34545017120507637
+ 0.34545985315280947
+ 0.34546953541846392
+ 0.34547921800205755
+ 0.34548890090360468
+ 0.34549858412312157
+ 0.34550826766062337
+ 0.34551795151612702
+ 0.34552763568964789
+ 0.34553732018120131
+ 0.34554700499080404
+ 0.34555669011847068
+ 0.34556637556421721
+ 0.34557606132806074
+ 0.34558574741001563
+ 0.34559543381009888
+ 0.34560512052832565
+ 0.34561480756471136
+ 0.34562449491927211
+ 0.34563418259202483
+ 0.34564387058298313
+ 0.34565355889216481
+ 0.34566324751958438
+ 0.34567293646525782
+ 0.34568262572920228
+ 0.34569231531143207
+ 0.34570200521196426
+ 0.34571169543081331
+ 0.34572138596799523
+ 0.34573107682352705
+ 0.34574076799742409
+ 0.34575045948970168
+ 0.34576015130037585
+ 0.34576984342946204
+ 0.34577953587697707
+ 0.34578922864293549
+ 0.34579892172735427
+ 0.34580861513024957
+ 0.34581830885163578
+ 0.3458280028915291
+ 0.34583769724994651
+ 0.3458473919269025
+ 0.34585708692241396
+ 0.34586678223649547
+ 0.34587647786916481
+ 0.34588617382043557
+ 0.3458958700903248
+ 0.34590556667884859
+ 0.34591526358602226
+ 0.34592496081186208
+ 0.34593465835638321
+ 0.34594435621960185
+ 0.34595405440153421
+ 0.3459637529021955
+ 0.34597345172160199
+ 0.34598315085976977
+ 0.34599285031671495
+ 0.34600255009245218
+ 0.34601225018699744
+ 0.34602195060036695
+ 0.34603165133257779
+ 0.34604135238364425
+ 0.34605105375358275
+ 0.34606075544240933
+ 0.3460704574501392
+ 0.34608015977678869
+ 0.34608986242237388
+ 0.34609956538691022
+ 0.34610926867041369
+ 0.34611897227290062
+ 0.34612867619438542
+ 0.34613838043488676
+ 0.34614808499441674
+ 0.34615778987299473
+ 0.34616749507063449
+ 0.34617720058735302
+ 0.34618690642316563
+ 0.34619661257808854
+ 0.346206319052137
+ 0.34621602584532729
+ 0.34622573295767556
+ 0.34623544038919624
+ 0.34624514813990814
+ 0.34625485620982399
+ 0.34626456459896177
+ 0.34627427330733668
+ 0.3462839823349641
+ 0.34629369168186119
+ 0.34630340134804233
+ 0.34631311133352544
+ 0.34632282163832323
+ 0.34633253226245464
+ 0.34634224320593476
+ 0.34635195446877914
+ 0.34636166605100305
+ 0.34637137795262357
+ 0.34638109017365598
+ 0.34639080271411649
+ 0.34640051557401969
+ 0.34641022875338334
+ 0.346419942252223
+ 0.34642965607055376
+ 0.34643937020839199
+ 0.34644908466575391
+ 0.34645879944265473
+ 0.34646851453911087
+ 0.34647822995513755
+ 0.34648794569075175
+ 0.34649766174596902
+ 0.34650737812080462
+ 0.34651709481527559
+ 0.34652681182939643
+ 0.34653652916318428
+ 0.34654624681665452
+ 0.3465559647898232
+ 0.34656568308270674
+ 0.34657540169531947
+ 0.34658512062767943
+ 0.34659483987980116
+ 0.34660455945170077
+ 0.34661427934339456
+ 0.34662399955489792
+ 0.34663372008622778
+ 0.34664344093739879
+ 0.34665316210842717
+ 0.34666288359933001
+ 0.34667260541012257
+ 0.34668232754082029
+ 0.34669204999143943
+ 0.34670177276199621
+ 0.34671149585250594
+ 0.34672121926298588
+ 0.34673094299344948
+ 0.3467406670439156
+ 0.34675039141439801
+ 0.34676011610491458
+ 0.34676984111547982
+ 0.34677956644610913
+ 0.34678929209681963
+ 0.34679901806762758
+ 0.34680874435854825
+ 0.34681847096959711
+ 0.34682819790079128
+ 0.34683792515214612
+ 0.34684765272367785
+ 0.34685738061540194
+ 0.34686710882733446
+ 0.34687683735949176
+ 0.34688656621188935
+ 0.34689629538454331
+ 0.34690602487747085
+ 0.34691575469068553
+ 0.3469254848242046
+ 0.34693521527804422
+ 0.34694494605221982
+ 0.34695467714674844
+ 0.34696440856164479
+ 0.34697414029692575
+ 0.34698387235260697
+ 0.34699360472870366
+ 0.34700333742523304
+ 0.34701307044221047
+ 0.34702280377965222
+ 0.34703253743757362
+ 0.34704227141599109
+ 0.34705200571492079
+ 0.34706174033437898
+ 0.3470714752743802
+ 0.34708121053494256
+ 0.34709094611608049
+ 0.34710068201781019
+ 0.3471104182401481
+ 0.34712015478310954
+ 0.34712989164671082
+ 0.34713962883096905
+ 0.34714936633589794
+ 0.34715910416151541
+ 0.34716884230783779
+ 0.34717858077487879
+ 0.34718831956265639
+ 0.34719805867118519
+ 0.34720779810048219
+ 0.34721753785056386
+ 0.3472272779214447
+ 0.3472370183131418
+ 0.34724675902567143
+ 0.34725650005904823
+ 0.34726624141328843
+ 0.34727598308841001
+ 0.34728572508442679
+ 0.34729546740135581
+ 0.34730521003921339
+ 0.34731495299801413
+ 0.34732469627777512
+ 0.3473344398785127
+ 0.3473441838002414
+ 0.34735392804297927
+ 0.34736367260674084
+ 0.34737341749154244
+ 0.34738316269740044
+ 0.34739290822433011
+ 0.34740265407234872
+ 0.34741240024147085
+ 0.34742214673171357
+ 0.34743189354309245
+ 0.34744164067562455
+ 0.34745138812932452
+ 0.34746113590420857
+ 0.34747088400029308
+ 0.34748063241759436
+ 0.34749038115612779
+ 0.34750013021591064
+ 0.34750987959695739
+ 0.34751962929928526
+ 0.34752937932290884
+ 0.34753912966784611
+ 0.34754888033411174
+ 0.34755863132172199
+ 0.34756838263069328
+ 0.34757813426104084
+ 0.34758788621278208
+ 0.34759763848593228
+ 0.34760739108050787
+ 0.34761714399652427
+ 0.34762689723399687
+ 0.34763665079294387
+ 0.34764640467337971
+ 0.34765615887532075
+ 0.34766591339878344
+ 0.3476756682437831
+ 0.34768542341033609
+ 0.34769517889845958
+ 0.34770493470816738
+ 0.34771469083947831
+ 0.34772444729240615
+ 0.34773420406696814
+ 0.34774396116317968
+ 0.34775371858105719
+ 0.34776347632061683
+ 0.34777323438187424
+ 0.3477829927648457
+ 0.34779275146954758
+ 0.34780251049599609
+ 0.34781226984420771
+ 0.34782202951419616
+ 0.34783178950598026
+ 0.34784154981957477
+ 0.34785131045499595
+ 0.34786107141225925
+ 0.34787083269138197
+ 0.3478805942923795
+ 0.34789035621526826
+ 0.34790011846006369
+ 0.34790988102678205
+ 0.34791964391544072
+ 0.3479294071260543
+ 0.34793917065863983
+ 0.34794893451321213
+ 0.34795869868978829
+ 0.34796846318838381
+ 0.34797822800901596
+ 0.34798799315169937
+ 0.34799775861645121
+ 0.34800752440328703
+ 0.34801729051222313
+ 0.34802705694327585
+ 0.34803682369646072
+ 0.34804659077179412
+ 0.34805635816929237
+ 0.34806612588897101
+ 0.34807589393084726
+ 0.3480856622949357
+ 0.34809543098125356
+ 0.34810519998981559
+ 0.34811496932063984
+ 0.34812473897374169
+ 0.34813450894913756
+ 0.34814427924684227
+ 0.34815404986687282
+ 0.34816382080924563
+ 0.34817359207397636
+ 0.34818336366108033
+ 0.34819313557057485
+ 0.34820290780247715
+ 0.3482126803568002
+ 0.34822245323356293
+ 0.34823222643277996
+ 0.3482419999544677
+ 0.34825177379864342
+ 0.34826154796532166
+ 0.34827132245451892
+ 0.34828109726625156
+ 0.34829087240053591
+ 0.34830064785738751
+ 0.34831042363682369
+ 0.34832019973885986
+ 0.34832997616351163
+ 0.34833975291079528
+ 0.3483495299807281
+ 0.34835930737332482
+ 0.34836908508860259
+ 0.34837886312657707
+ 0.34838864148726362
+ 0.34839842017068051
+ 0.34840819917684235
+ 0.34841797850576472
+ 0.34842775815746563
+ 0.34843753813195977
+ 0.34844731842926363
+ 0.34845709904939354
+ 0.34846687999236675
+ 0.3484766612581971
+ 0.34848644284690189
+ 0.3484962247584974
+ 0.34850600699300022
+ 0.34851578955042567
+ 0.34852557243078952
+ 0.34853535563410976
+ 0.34854513916040014
+ 0.34855492300967894
+ 0.34856470718196164
+ 0.34857449167726468
+ 0.3485842764956027
+ 0.34859406163699391
+ 0.34860384710145287
+ 0.34861363288899705
+ 0.34862341899964178
+ 0.34863320543340276
+ 0.34864299219029804
+ 0.34865277927034238
+ 0.34866256667355217
+ 0.34867235439994387
+ 0.34868214244953294
+ 0.34869193082233585
+ 0.34870171951836992
+ 0.34871150853764982
+ 0.34872129788019196
+ 0.34873108754601362
+ 0.34874087753513039
+ 0.34875066784755787
+ 0.34876045848331233
+ 0.34877024944241125
+ 0.34878004072487007
+ 0.34878983233070354
+ 0.34879962425992989
+ 0.34880941651256453
+ 0.34881920908862396
+ 0.34882900198812383
+ 0.3488387952110813
+ 0.34884858875751118
+ 0.34885838262743074
+ 0.34886817682085552
+ 0.34887797133780291
+ 0.34888776617828754
+ 0.34889756134232669
+ 0.34890735682993512
+ 0.34891715264113193
+ 0.34892694877593083
+ 0.34893674523434837
+ 0.34894654201640102
+ 0.348956339122106
+ 0.34896613655147801
+ 0.34897593430453355
+ 0.34898573238128999
+ 0.34899553078176276
+ 0.34900532950596763
+ 0.34901512855392181
+ 0.34902492792563999
+ 0.34903472762113957
+ 0.34904452764043786
+ 0.34905432798354863
+ 0.3490641286504893
+ 0.34907392964127626
+ 0.3490837309559261
+ 0.34909353259445425
+ 0.3491033345568772
+ 0.34911313684321149
+ 0.3491229394534735
+ 0.34913274238767805
+ 0.34914254564584235
+ 0.34915234922798299
+ 0.34916215313411636
+ 0.34917195736425805
+ 0.34918176191842371
+ 0.3491915667966306
+ 0.34920137199889534
+ 0.3492111775252334
+ 0.34922098337566121
+ 0.34923078955019454
+ 0.3492405960488506
+ 0.34925040287164505
+ 0.34926021001859436
+ 0.34927001748971415
+ 0.34927982528502172
+ 0.34928963340453267
+ 0.34929944184826273
+ 0.34930925061623003
+ 0.3493190597084484
+ 0.3493288691249361
+ 0.34933867886570874
+ 0.34934848893078119
+ 0.34935829932017148
+ 0.34936811003389617
+ 0.34937792107197008
+ 0.34938773243441129
+ 0.34939754412123297
+ 0.34940735613245505
+ 0.34941716846809123
+ 0.34942698112815918
+ 0.34943679411267331
+ 0.34944660742165212
+ 0.34945642105511115
+ 0.34946623501306601
+ 0.34947604929553411
+ 0.34948586390253106
+ 0.3494956788340724
+ 0.34950549409017651
+ 0.3495153096708572
+ 0.34952512557613186
+ 0.3495349418060178
+ 0.34954475836052901
+ 0.34955457523968453
+ 0.34956439244349835
+ 0.34957420997198774
+ 0.34958402782516923
+ 0.34959384600305854
+ 0.34960366450567204
+ 0.34961348333302633
+ 0.34962330248513795
+ 0.34963312196202245
+ 0.34964294176369637
+ 0.3496527618901763
+ 0.34966258234147868
+ 0.34967240311761916
+ 0.34968222421861428
+ 0.34969204564448053
+ 0.34970186739523446
+ 0.34971168947089165
+ 0.3497215118714696
+ 0.34973133459698302
+ 0.34974115764744929
+ 0.34975098102288493
+ 0.34976080472330479
+ 0.34977062874872711
+ 0.34978045309916744
+ 0.34979027777464156
+ 0.34980010277516604
+ 0.34980992810075728
+ 0.34981975375143182
+ 0.34982957972720624
+ 0.34983940602809621
+ 0.34984923265411827
+ 0.3498590596052889
+ 0.3498688868816246
+ 0.34987871448314112
+ 0.34988854240985501
+ 0.34989837066178275
+ 0.34990819923894001
+ 0.34991802814134421
+ 0.34992785736901189
+ 0.34993768692195781
+ 0.34994751680019953
+ 0.34995734700375342
+ 0.34996717753263518
+ 0.34997700838686052
+ 0.34998683956644772
+ 0.34999667107141164
+ 0.35000650290176877
+ 0.35001633505753654
+ 0.35002616753872973
+ 0.35003600034536664
+ 0.35004583347746127
+ 0.35005566693503182
+ 0.35006550071809317
+ 0.35007533482666359
+ 0.35008516926075794
+ 0.35009500402039267
+ 0.35010483910558443
+ 0.3501146745163497
+ 0.35012451025270513
+ 0.35013434631466639
+ 0.35014418270224995
+ 0.35015401941547247
+ 0.35016385645435044
+ 0.35017369381889962
+ 0.3501835315091365
+ 0.35019336952507774
+ 0.35020320786674064
+ 0.35021304653413932
+ 0.35022288552729203
+ 0.35023272484621526
+ 0.350242564490923
+ 0.35025240446143452
+ 0.35026224475776452
+ 0.35027208537992971
+ 0.35028192632794652
+ 0.35029176760183162
+ 0.35030160920160158
+ 0.35031145112727208
+ 0.35032129337885964
+ 0.35033113595638099
+ 0.35034097885985171
+ 0.35035082208928847
+ 0.35036066564470941
+ 0.35037050952612875
+ 0.3503803537335638
+ 0.35039019826703027
+ 0.35040004312654566
+ 0.35040988831212566
+ 0.35041973382378599
+ 0.35042957966154503
+ 0.35043942582541754
+ 0.35044927231542011
+ 0.35045911913156946
+ 0.35046896627388202
+ 0.35047881374237361
+ 0.35048866153706165
+ 0.35049850965796275
+ 0.35050835810509173
+ 0.3505182068784653
+ 0.35052805597810083
+ 0.35053790540401486
+ 0.35054775515622322
+ 0.35055760523474166
+ 0.35056745563958758
+ 0.35057730637077761
+ 0.35058715742832747
+ 0.35059700881225375
+ 0.35060686052257312
+ 0.35061671255930116
+ 0.35062656492245553
+ 0.35063641761205194
+ 0.35064627062810688
+ 0.35065612397063617
+ 0.35066597763965818
+ 0.35067583163518684
+ 0.35068568595724059
+ 0.35069554060583508
+ 0.35070539558098612
+ 0.35071525088271116
+ 0.35072510651102601
+ 0.35073496246594715
+ 0.35074481874749136
+ 0.35075467535567517
+ 0.3507645322905143
+ 0.35077438955202539
+ 0.35078424714022605
+ 0.35079410505513092
+ 0.35080396329675778
+ 0.35081382186512305
+ 0.35082368076024167
+ 0.35083353998213201
+ 0.35084339953080984
+ 0.35085325940629097
+ 0.3508631196085919
+ 0.35087298013773016
+ 0.35088284099372163
+ 0.35089270217658192
+ 0.35090256368632861
+ 0.35091242552297836
+ 0.35092228768654687
+ 0.35093215017705087
+ 0.350942012994506
+ 0.35095187613892981
+ 0.35096173961033894
+ 0.35097160340874928
+ 0.35098146753417642
+ 0.35099133198663884
+ 0.35100119676615144
+ 0.35101106187273168
+ 0.3510209273063945
+ 0.35103079306715823
+ 0.35104065915503796
+ 0.35105052557005184
+ 0.35106039231221403
+ 0.3510702593815429
+ 0.35108012677805422
+ 0.3510899945017647
+ 0.3510998625526901
+ 0.3511097309308478
+ 0.35111959963625294
+ 0.35112946866892458
+ 0.35113933802887598
+ 0.35114920771612562
+ 0.35115907773069094
+ 0.35116894807258603
+ 0.35117881874182832
+ 0.35118868973843459
+ 0.35119856106242142
+ 0.35120843271380547
+ 0.35121830469260173
+ 0.35122817699882858
+ 0.35123804963250094
+ 0.35124792259363724
+ 0.35125779588225231
+ 0.35126766949836291
+ 0.35127754344198564
+ 0.35128741771313815
+ 0.35129729231183532
+ 0.35130716723809463
+ 0.35131704249193191
+ 0.35132691807336386
+ 0.35133679398240808
+ 0.35134667021907939
+ 0.35135654678339534
+ 0.35136642367537274
+ 0.35137630089502642
+ 0.3513861784423748
+ 0.3513960563174337
+ 0.35140593452021895
+ 0.35141581305074809
+ 0.351425691909037
+ 0.35143557109510315
+ 0.35144545060896148
+ 0.3514553304506296
+ 0.35146521062012409
+ 0.35147509111746089
+ 0.35148497194265754
+ 0.35149485309572898
+ 0.35150473457669357
+ 0.35151461638556636
+ 0.351524498522364
+ 0.35153438098710399
+ 0.35154426377980313
+ 0.35155414690047637
+ 0.35156403034914124
+ 0.35157391412581351
+ 0.35158379823051084
+ 0.35159368266324897
+ 0.35160356742404558
+ 0.35161345251291559
+ 0.35162333792987649
+ 0.35163322367494426
+ 0.35164310974813634
+ 0.3516529961494686
+ 0.35166288287895781
+ 0.35167276993662061
+ 0.35168265732247284
+ 0.35169254503653297
+ 0.35170243307881516
+ 0.35171232144933684
+ 0.35172221014811578
+ 0.35173209917516673
+ 0.35174198853050659
+ 0.35175187821415382
+ 0.35176176822612237
+ 0.35177165856643078
+ 0.35178154923509403
+ 0.35179144023212972
+ 0.3518013315575545
+ 0.35181122321138436
+ 0.35182111519363679
+ 0.35183100750432678
+ 0.35184090014347191
+ 0.35185079311108897
+ 0.35186068640719459
+ 0.35187058003180383
+ 0.35188047398493516
+ 0.35189036826660525
+ 0.35190026287682913
+ 0.35191015781562351
+ 0.35192005308300689
+ 0.35192994867899335
+ 0.35193984460360139
+ 0.35194974085684688
+ 0.35195963743874564
+ 0.35196953434931538
+ 0.3519794315885727
+ 0.35198932915653353
+ 0.35199922705321546
+ 0.35200912527863359
+ 0.35201902383280542
+ 0.35202892271574771
+ 0.35203882192747715
+ 0.35204872146800886
+ 0.35205862133736127
+ 0.35206852153555029
+ 0.3520784220625926
+ 0.352088322918505
+ 0.35209822410330333
+ 0.35210812561700433
+ 0.35211802745962567
+ 0.35212792963118322
+ 0.35213783213169364
+ 0.35214773496117296
+ 0.35215763811963874
+ 0.35216754160710767
+ 0.35217744542359491
+ 0.35218734956911879
+ 0.35219725404369445
+ 0.35220715884734033
+ 0.35221706398007147
+ 0.35222696944190462
+ 0.35223687523285829
+ 0.35224678135294663
+ 0.35225668780218644
+ 0.35226659458059617
+ 0.35227650168819163
+ 0.35228640912498893
+ 0.35229631689100466
+ 0.35230622498625658
+ 0.35231613341075962
+ 0.35232604216453239
+ 0.35233595124758976
+ 0.35234586065994949
+ 0.35235577040162758
+ 0.3523656804726415
+ 0.35237559087300629
+ 0.35238550160274146
+ 0.35239541266186025
+ 0.35240532405038116
+ 0.35241523576832001
+ 0.35242514781569462
+ 0.35243506019252169
+ 0.35244497289881627
+ 0.35245488593459595
+ 0.35246479929987767
+ 0.35247471299467803
+ 0.35248462701901312
+ 0.35249454137289959
+ 0.35250445605635428
+ 0.35251437106939482
+ 0.35252428641203631
+ 0.35253420208429725
+ 0.35254411808619263
+ 0.35255403441773941
+ 0.35256395107895416
+ 0.35257386806985391
+ 0.35258378539045615
+ 0.35259370304077603
+ 0.35260362102083115
+ 0.35261353933063833
+ 0.35262345797021349
+ 0.35263337693957353
+ 0.35264329623873597
+ 0.35265321586771592
+ 0.35266313582653114
+ 0.35267305611519828
+ 0.35268297673373339
+ 0.35269289768215417
+ 0.35270281896047651
+ 0.3527127405687171
+ 0.35272266250689294
+ 0.35273258477502073
+ 0.35274250737311735
+ 0.35275243030119863
+ 0.35276235355928154
+ 0.35277227714738357
+ 0.35278220106552088
+ 0.35279212531371013
+ 0.35280204989196812
+ 0.3528119748003109
+ 0.35282190003875613
+ 0.35283182560732063
+ 0.35284175150602026
+ 0.35285167773487197
+ 0.35286160429389252
+ 0.35287153118309794
+ 0.35288145840250662
+ 0.35289138595213376
+ 0.35290131383199713
+ 0.35291124204211249
+ 0.35292117058249683
+ 0.35293109945316697
+ 0.35294102865414051
+ 0.3529509581854326
+ 0.35296088804706011
+ 0.35297081823904153
+ 0.35298074876139118
+ 0.3529906796141275
+ 0.35300061079726663
+ 0.35301054231082607
+ 0.35302047415482024
+ 0.35303040632926941
+ 0.35304033883418595
+ 0.3530502716695903
+ 0.35306020483549844
+ 0.35307013833192535
+ 0.35308007215888892
+ 0.35309000631640675
+ 0.35309994080449392
+ 0.35310987562316815
+ 0.35311981077244553
+ 0.35312974625234372
+ 0.35313968206287955
+ 0.35314961820406804
+ 0.35315955467592708
+ 0.35316949147847437
+ 0.35317942861172485
+ 0.35318936607569645
+ 0.35319930387040593
+ 0.35320924199586839
+ 0.35321918045210332
+ 0.35322911923912503
+ 0.35323905835695196
+ 0.35324899780559937
+ 0.35325893758508581
+ 0.35326887769542642
+ 0.35327881813663892
+ 0.35328875890873845
+ 0.35329870001174446
+ 0.35330864144567126
+ 0.35331858321053733
+ 0.35332852530635794
+ 0.35333846773315158
+ 0.35334841049093352
+ 0.35335835357972128
+ 0.35336829699953115
+ 0.35337824075037982
+ 0.35338818483228496
+ 0.35339812924526282
+ 0.35340807398933005
+ 0.35341801906450276
+ 0.35342796447079955
+ 0.35343791020823551
+ 0.35344785627682845
+ 0.35345780267659532
+ 0.3534677494075511
+ 0.3534776964697145
+ 0.35348764386310066
+ 0.3534975915877282
+ 0.35350753964361226
+ 0.35351748803077143
+ 0.3535274367492201
+ 0.35353738579897676
+ 0.35354733518005832
+ 0.35355728489248089
+ 0.3535672349362613
+ 0.35357718531141646
+ 0.35358713601796327
+ 0.35359708705591864
+ 0.35360703842529845
+ 0.35361699012612152
+ 0.35362694215840201
+ 0.35363689452215863
+ 0.35364684721740741
+ 0.35365680024416613
+ 0.35366675360244987
+ 0.3536767072922774
+ 0.35368666131366377
+ 0.35369661566662591
+ 0.35370657035118247
+ 0.35371652536734854
+ 0.35372648071514118
+ 0.35373643639457725
+ 0.35374639240567446
+ 0.35375634874844886
+ 0.35376630542291743
+ 0.35377626242909699
+ 0.3537862197670037
+ 0.35379617743665526
+ 0.35380613543806855
+ 0.35381609377125972
+ 0.35382605243624565
+ 0.353836011433044
+ 0.35384597076167013
+ 0.35385593042214258
+ 0.35386589041447658
+ 0.35387585073869088
+ 0.35388581139480046
+ 0.35389577238282238
+ 0.35390573370277445
+ 0.35391569535467349
+ 0.3539256573385357
+ 0.35393561965437781
+ 0.35394558230221695
+ 0.35395554528206991
+ 0.35396550859395365
+ 0.35397547223788511
+ 0.35398543621388134
+ 0.35399540052195821
+ 0.35400536516213271
+ 0.3540153301344236
+ 0.35402529543884509
+ 0.35403526107541505
+ 0.35404522704415137
+ 0.35405519334506902
+ 0.35406515997818688
+ 0.354075126943521
+ 0.35408509424108742
+ 0.35409506187090301
+ 0.35410502983298653
+ 0.3541149981273532
+ 0.35412496675401905
+ 0.35413493571300364
+ 0.35414490500432128
+ 0.35415487462799072
+ 0.35416484458402808
+ 0.35417481487244934
+ 0.35418478549327237
+ 0.3541947564465141
+ 0.35420472773219147
+ 0.35421469935032063
+ 0.35422467130091845
+ 0.35423464358400286
+ 0.3542446161995898
+ 0.35425458914769636
+ 0.35426456242833948
+ 0.35427453604153697
+ 0.35428450998730399
+ 0.35429448426565846
+ 0.35430445887661638
+ 0.35431443382019573
+ 0.35432440909641338
+ 0.35433438470528628
+ 0.35434436064682961
+ 0.35435433692106222
+ 0.35436431352800019
+ 0.35437429046766034
+ 0.35438426774005977
+ 0.35439424534521546
+ 0.3544042232831443
+ 0.35441420155386333
+ 0.35442418015738864
+ 0.35443415909373799
+ 0.35444413836292848
+ 0.35445411796497622
+ 0.35446409789989813
+ 0.35447407816771115
+ 0.3544840587684332
+ 0.35449403970207949
+ 0.35450402096866879
+ 0.35451400256821719
+ 0.35452398450074163
+ 0.35453396676625826
+ 0.35454394936478495
+ 0.35455393229633775
+ 0.35456391556093553
+ 0.35457389915859339
+ 0.35458388308932748
+ 0.35459386735315745
+ 0.35460385195009769
+ 0.35461383688016695
+ 0.35462382214338123
+ 0.35463380773975683
+ 0.35464379366931231
+ 0.3546537799320631
+ 0.35466376652802778
+ 0.35467375345722163
+ 0.3546837407196618
+ 0.354693728315366
+ 0.35470371624435132
+ 0.35471370450663298
+ 0.35472369310222973
+ 0.35473368203115857
+ 0.3547436712934357
+ 0.35475366088907723
+ 0.35476365081810185
+ 0.35477364108052573
+ 0.35478363167636501
+ 0.35479362260563846
+ 0.35480361386836134
+ 0.35481360546455154
+ 0.3548235973942252
+ 0.35483358965740014
+ 0.35484358225409263
+ 0.35485357518432042
+ 0.35486356844809985
+ 0.35487356204544779
+ 0.35488355597638122
+ 0.35489355024091812
+ 0.35490354483907377
+ 0.35491353977086693
+ 0.3549235350363138
+ 0.35493353063543032
+ 0.35494352656823469
+ 0.35495352283474285
+ 0.35496351943497367
+ 0.35497351636894231
+ 0.35498351363666603
+ 0.35499351123816253
+ 0.35500350917344886
+ 0.35501350744254045
+ 0.35502350604545591
+ 0.35503350498221153
+ 0.35504350425282427
+ 0.35505350385731121
+ 0.35506350379569024
+ 0.35507350406797666
+ 0.35508350467418837
+ 0.35509350561434239
+ 0.35510350688845577
+ 0.35511350849654472
+ 0.35512351043862717
+ 0.35513351271471921
+ 0.35514351532483884
+ 0.3551535182690031
+ 0.35516352154722813
+ 0.35517352515953093
+ 0.35518352910592954
+ 0.35519353338644005
+ 0.35520353800107868
+ 0.35521354294986507
+ 0.35522354823281371
+ 0.35523355384994248
+ 0.35524355980126843
+ 0.35525356608680864
+ 0.35526357270658016
+ 0.35527357966059914
+ 0.35528358694888451
+ 0.35529359457145054
+ 0.35530360252831705
+ 0.35531361081949925
+ 0.35532361944501423
+ 0.35533362840488097
+ 0.35534363769911365
+ 0.35535364732773123
+ 0.35536365729074992
+ 0.35537366758818667
+ 0.35538367822005956
+ 0.35539368918638464
+ 0.35540370048717823
+ 0.35541371212245915
+ 0.3554237240922436
+ 0.35543373639654852
+ 0.35544374903539033
+ 0.35545376200878764
+ 0.35546377531675594
+ 0.35547378895931303
+ 0.35548380293647613
+ 0.3554938172482614
+ 0.35550383189468676
+ 0.35551384687576937
+ 0.35552386219152532
+ 0.35553387784197182
+ 0.3555438938271267
+ 0.35555391014700638
+ 0.35556392680162857
+ 0.35557394379100876
+ 0.35558396111516666
+ 0.35559397877411669
+ 0.35560399676787768
+ 0.35561401509646501
+ 0.35562403375989748
+ 0.35563405275819143
+ 0.35564407209136295
+ 0.35565409175943091
+ 0.3556641117624107
+ 0.35567413210032028
+ 0.35568415277317755
+ 0.35569417378099799
+ 0.35570419512379947
+ 0.35571421680159832
+ 0.3557242388144124
+ 0.35573426116225804
+ 0.355744283845154
+ 0.35575430686311571
+ 0.35576433021615939
+ 0.35577435390430473
+ 0.35578437792756717
+ 0.35579440228596454
+ 0.35580442697951326
+ 0.35581445200823042
+ 0.35582447737213302
+ 0.35583450307123909
+ 0.35584452910556491
+ 0.35585455547512757
+ 0.35586458217994421
+ 0.35587460922003278
+ 0.35588463659540864
+ 0.3558946643060899
+ 0.35590469235209443
+ 0.35591472073343761
+ 0.35592474945013847
+ 0.35593477850221217
+ 0.35594480788967675
+ 0.35595483761254954
+ 0.3559648676708474
+ 0.35597489806458671
+ 0.35598492879378552
+ 0.35599495985846086
+ 0.35600499125862994
+ 0.35601502299430893
+ 0.35602505506551596
+ 0.35603508747226803
+ 0.35604512021458157
+ 0.35605515329247434
+ 0.35606518670596282
+ 0.35607522045506496
+ 0.356085254539797
+ 0.35609528896017706
+ 0.35610532371622117
+ 0.3561153588079467
+ 0.35612539423537154
+ 0.35613542999851205
+ 0.35614546609738529
+ 0.35615550253200939
+ 0.35616553930240047
+ 0.35617557640857583
+ 0.35618561385055253
+ 0.3561956516283486
+ 0.35620568974197941
+ 0.35621572819146485
+ 0.35622576697681846
+ 0.3562358060980601
+ 0.35624584555520605
+ 0.35625588534827424
+ 0.35626592547728014
+ 0.35627596594224187
+ 0.35628600674317729
+ 0.35629604788010194
+ 0.35630608935303382
+ 0.35631613116199007
+ 0.3563261733069879
+ 0.35633621578804447
+ 0.35634625860517682
+ 0.35635630175840144
+ 0.35636634524773708
+ 0.35637638907319924
+ 0.35638643323480684
+ 0.35639647773257527
+ 0.35640652256652261
+ 0.35641656773666519
+ 0.35642661324302088
+ 0.35643665908560707
+ 0.35644670526444078
+ 0.35645675177953845
+ 0.35646679863091801
+ 0.35647684581859668
+ 0.35648689334259165
+ 0.3564969412029193
+ 0.35650698939959657
+ 0.35651703793264267
+ 0.35652708680207285
+ 0.35653713600790532
+ 0.35654718555015624
+ 0.35655723542884288
+ 0.3565672856439841
+ 0.35657733619559551
+ 0.35658738708369409
+ 0.35659743830829799
+ 0.35660748986942448
+ 0.35661754176708976
+ 0.35662759400131111
+ 0.35663764657210739
+ 0.35664769947949326
+ 0.3566577527234876
+ 0.35666780630410755
+ 0.3566778602213696
+ 0.35668791447529086
+ 0.35669796906589019
+ 0.35670802399318235
+ 0.35671807925718618
+ 0.35672813485791793
+ 0.35673819079539587
+ 0.3567482470696362
+ 0.35675830368065709
+ 0.35676836062847472
+ 0.35677841791310733
+ 0.35678847553457116
+ 0.35679853349288349
+ 0.3568085917880624
+ 0.35681865042012501
+ 0.35682870938908678
+ 0.35683876869496772
+ 0.35684882833778225
+ 0.35685888831754947
+ 0.35686894863428559
+ 0.35687900928800875
+ 0.35688907027873629
+ 0.35689913160648346
+ 0.35690919327127024
+ 0.35691925527311119
+ 0.35692931761202534
+ 0.35693938028802991
+ 0.3569494433011412
+ 0.35695950665137638
+ 0.35696957033875365
+ 0.35697963436328933
+ 0.35698969872500158
+ 0.3569997634239066
+ 0.35700982846002272
+ 0.35701989383336608
+ 0.35702995954395406
+ 0.35704002559180464
+ 0.35705009197693521
+ 0.35706015869936203
+ 0.35707022575910324
+ 0.35708029315617523
+ 0.35709036089059604
+ 0.35710042896238209
+ 0.35711049737155065
+ 0.35712056611811976
+ 0.35713063520210669
+ 0.35714070462352782
+ 0.35715077438240128
+ 0.3571608444787443
+ 0.35717091491257325
+ 0.35718098568390633
+ 0.35719105679275975
+ 0.35720112823915173
+ 0.35721120002309875
+ 0.35722127214461963
+ 0.35723134460372907
+ 0.35724141740044696
+ 0.35725149053478883
+ 0.35726156400677278
+ 0.35727163781641519
+ 0.35728171196373509
+ 0.35729178644874793
+ 0.3573018612714719
+ 0.35731193643192427
+ 0.35732201193012136
+ 0.35733208776608139
+ 0.35734216393982243
+ 0.35735224045136005
+ 0.3573623173007115
+ 0.35737239448789582
+ 0.35738247201292933
+ 0.35739254987582852
+ 0.35740262807661227
+ 0.35741270661529628
+ 0.35742278549189943
+ 0.35743286470643731
+ 0.35744294425892897
+ 0.35745302414938984
+ 0.35746310437783901
+ 0.35747318494429203
+ 0.35748326584876788
+ 0.357493347091283
+ 0.35750342867185464
+ 0.35751351059050007
+ 0.35752359284723662
+ 0.35753367544208248
+ 0.35754375837505303
+ 0.35755384164616744
+ 0.357563925255443
+ 0.35757400920289517
+ 0.35758409348854309
+ 0.35759417811240396
+ 0.35760426307449417
+ 0.35761434837483108
+ 0.35762443401343202
+ 0.35763451999031504
+ 0.35764460630549755
+ 0.35765469295899588
+ 0.35766477995082829
+ 0.35767486728101117
+ 0.35768495494956171
+ 0.35769504295649912
+ 0.3577051313018389
+ 0.35771521998559913
+ 0.35772530900779642
+ 0.35773539836844964
+ 0.3577454880675745
+ 0.35775557810518904
+ 0.35776566848130981
+ 0.35777575919595578
+ 0.35778585024914344
+ 0.35779594164088918
+ 0.35780603337121214
+ 0.35781612544012775
+ 0.35782621784765523
+ 0.35783631059380999
+ 0.35784640367861126
+ 0.35785649710207534
+ 0.35786659086421957
+ 0.35787668496506131
+ 0.35788677940461877
+ 0.35789687418290744
+ 0.35790696929994736
+ 0.35791706475575313
+ 0.3579271605503439
+ 0.35793725668373699
+ 0.35794735315594794
+ 0.35795744996699669
+ 0.35796754711689882
+ 0.35797764460567172
+ 0.35798774243333353
+ 0.3579978405999017
+ 0.35800793910539336
+ 0.35801803794982506
+ 0.35802813713321507
+ 0.35803823665558066
+ 0.35804833651693918
+ 0.35805843671730797
+ 0.35806853725670434
+ 0.35807863813514479
+ 0.3580887393526484
+ 0.35809884090923161
+ 0.3581089428049109
+ 0.35811904503970626
+ 0.3581291476136324
+ 0.35813925052670842
+ 0.35814935377895069
+ 0.35815945737037669
+ 0.35816956130100464
+ 0.3581796655708509
+ 0.35818977017993292
+ 0.35819987512826978
+ 0.35820998041587615
+ 0.35822008604277206
+ 0.3582301920089731
+ 0.35824029831449755
+ 0.35825040495936178
+ 0.35826051194358499
+ 0.35827061926718279
+ 0.35828072693017332
+ 0.35829083493257485
+ 0.35830094327440315
+ 0.35831105195567708
+ 0.35832116097641242
+ 0.3583312703366282
+ 0.35834138003634097
+ 0.35835149007556805
+ 0.35836160045432686
+ 0.35837171117263644
+ 0.35838182223051163
+ 0.35839193362797145
+ 0.35840204536503245
+ 0.3584121574417129
+ 0.35842226985803011
+ 0.35843238261400057
+ 0.35844249570964343
+ 0.3584526091449744
+ 0.3584627229200108
+ 0.35847283703477167
+ 0.35848295148927367
+ 0.35849306628353406
+ 0.35850318141757032
+ 0.35851329689140055
+ 0.35852341270504051
+ 0.35853352885850931
+ 0.35854364535182343
+ 0.35855376218500035
+ 0.35856387935805817
+ 0.35857399687101438
+ 0.35858411472388557
+ 0.35859423291668896
+ 0.35860435144944386
+ 0.35861447032216576
+ 0.35862458953487297
+ 0.35863470908758294
+ 0.35864482898031308
+ 0.35865494921308072
+ 0.35866506978590329
+ 0.35867519069879805
+ 0.35868531195178266
+ 0.35869543354487521
+ 0.3587055554780923
+ 0.3587156777514513
+ 0.35872580036497048
+ 0.35873592331866733
+ 0.35874604661255821
+ 0.35875617024666068
+ 0.35876629422099388
+ 0.35877641853557335
+ 0.35878654319041753
+ 0.35879666818554368
+ 0.35880679352096939
+ 0.35881691919671188
+ 0.35882704521278874
+ 0.35883717156921724
+ 0.3588472982660158
+ 0.35885742530320169
+ 0.35886755268079074
+ 0.35887768039880197
+ 0.35888780845725293
+ 0.35889793685616
+ 0.35890806559554073
+ 0.3589181946754143
+ 0.35892832409579728
+ 0.35893845385670603
+ 0.35894858395815993
+ 0.35895871440017457
+ 0.35896884518276923
+ 0.35897897630596026
+ 0.35898910776976528
+ 0.35899923957420249
+ 0.35900937171928854
+ 0.35901950420504164
+ 0.35902963703147833
+ 0.35903977019861705
+ 0.35904990370647427
+ 0.35906003755506921
+ 0.35907017174441752
+ 0.35908030627453752
+ 0.35909044114544758
+ 0.35910057635716336
+ 0.35911071190970406
+ 0.35912084780308623
+ 0.35913098403732818
+ 0.35914112061244646
+ 0.35915125752845861
+ 0.35916139478538289
+ 0.35917153238323668
+ 0.35918167032203763
+ 0.35919180860180211
+ 0.3592019472225485
+ 0.35921208618429518
+ 0.35922222548705784
+ 0.35923236513085571
+ 0.35924250511570527
+ 0.35925264544162488
+ 0.35926278610863122
+ 0.35927292711674169
+ 0.35928306846597458
+ 0.35929321015634741
+ 0.35930335218787668
+ 0.35931349456058176
+ 0.3593236372744783
+ 0.35933378032958535
+ 0.35934392372591889
+ 0.35935406746349796
+ 0.35936421154233922
+ 0.35937435596246009
+ 0.35938450072387984
+ 0.35939464582661418
+ 0.35940479127068059
+ 0.35941493705609734
+ 0.35942508318288208
+ 0.35943522965105207
+ 0.35944537646062402
+ 0.3594555236116172
+ 0.35946567110404903
+ 0.35947581893793523
+ 0.359485967113295
+ 0.359496115630146
+ 0.35950626448850376
+ 0.35951641368838849
+ 0.35952656322981669
+ 0.35953671311280516
+ 0.35954686333737296
+ 0.35955701390353589
+ 0.35956716481131318
+ 0.35957731606072069
+ 0.35958746765177829
+ 0.35959761958450109
+ 0.35960777185890824
+ 0.35961792447501711
+ 0.35962807743284447
+ 0.35963823073240964
+ 0.35964838437372815
+ 0.35965853835681938
+ 0.35966869268169904
+ 0.35967884734838634
+ 0.35968900235689805
+ 0.35969915770725153
+ 0.35970931339946521
+ 0.35971946943355654
+ 0.35972962580954226
+ 0.35973978252744071
+ 0.35974993958726936
+ 0.35976009698904576
+ 0.35977025473278829
+ 0.35978041281851258
+ 0.35979057124623809
+ 0.35980073001598228
+ 0.35981088912776171
+ 0.35982104858159386
+ 0.35983120837749732
+ 0.35984136851549026
+ 0.35985152899558859
+ 0.35986168981781069
+ 0.35987185098217495
+ 0.35988201248869706
+ 0.3598921743373964
+ 0.35990233652829035
+ 0.35991249906139572
+ 0.35992266193673078
+ 0.35993282515431319
+ 0.35994298871416036
+ 0.35995315261628896
+ 0.35996331686071831
+ 0.35997348144746594
+ 0.35998364637654851
+ 0.3599938116479835
+ 0.36000397726178845
+ 0.36001414321798181
+ 0.36002430951658199
+ 0.36003447615760481
+ 0.36004464314106849
+ 0.36005481046699078
+ 0.36006497813539007
+ 0.36007514614628294
+ 0.36008531449968784
+ 0.36009548319562057
+ 0.36010565223410218
+ 0.36011582161514666
+ 0.36012599133877432
+ 0.36013616140500077
+ 0.36014633181384542
+ 0.36015650256532583
+ 0.36016667365945776
+ 0.36017684509626136
+ 0.36018701687575244
+ 0.36019718899794867
+ 0.36020736146286919
+ 0.36021753427052994
+ 0.36022770742095012
+ 0.36023788091414644
+ 0.36024805475013733
+ 0.36025822892893866
+ 0.36026840345057054
+ 0.36027857831504884
+ 0.36028875352239198
+ 0.36029892907261746
+ 0.36030910496574287
+ 0.36031928120178675
+ 0.36032945778076575
+ 0.36033963470269736
+ 0.36034981196759913
+ 0.36035998957549048
+ 0.36037016752638718
+ 0.3603803458203077
+ 0.36039052445727049
+ 0.3604007034372913
+ 0.36041088276038963
+ 0.36042106242658284
+ 0.36043124243588781
+ 0.36044142278832197
+ 0.3604516034839047
+ 0.36046178452265193
+ 0.3604719659045828
+ 0.3604821476297142
+ 0.36049232969806366
+ 0.36050251210964956
+ 0.36051269486448867
+ 0.36052287796259946
+ 0.36053306140399949
+ 0.3605432451887064
+ 0.36055342931673862
+ 0.36056361378811191
+ 0.36057379860284577
+ 0.36058398376095679
+ 0.36059416926246346
+ 0.36060435510738348
+ 0.36061454129573334
+ 0.36062472782753263
+ 0.36063491470279802
+ 0.36064510192154697
+ 0.3606552894837981
+ 0.36066547738956806
+ 0.36067566563887532
+ 0.3606858542317376
+ 0.36069604316817239
+ 0.36070623244819727
+ 0.36071642207182997
+ 0.36072661203908879
+ 0.36073680234999156
+ 0.36074699300455482
+ 0.36075718400279716
+ 0.3607673753447353
+ 0.36077756703038855
+ 0.36078775905977378
+ 0.36079795143290938
+ 0.36080814414981205
+ 0.36081833721049944
+ 0.36082853061499098
+ 0.36083872436330333
+ 0.3608489184554533
+ 0.36085911289146028
+ 0.36086930767134084
+ 0.36087950279511366
+ 0.36088969826279549
+ 0.3608998940744047
+ 0.36091009022995907
+ 0.36092028672947696
+ 0.3609304835729743
+ 0.36094068076047048
+ 0.3609508782919823
+ 0.36096107616752821
+ 0.36097127438712578
+ 0.36098147295079275
+ 0.36099167185854669
+ 0.36100187111040533
+ 0.36101207070638619
+ 0.36102227064650877
+ 0.36103247093078794
+ 0.36104267155924408
+ 0.36105287253189389
+ 0.36106307384875419
+ 0.3610732755098443
+ 0.36108347751518194
+ 0.36109367986478386
+ 0.36110388255866854
+ 0.36111408559685282
+ 0.361124288979356
+ 0.36113449270619497
+ 0.36114469677738814
+ 0.36115490119295152
+ 0.36116510595290441
+ 0.36117531105726541
+ 0.36118551650605041
+ 0.36119572229927788
+ 0.36120592843696647
+ 0.36121613491913285
+ 0.36122634174579554
+ 0.36123654891697143
+ 0.36124675643267906
+ 0.36125696429293691
+ 0.3612671724977608
+ 0.36127738104717028
+ 0.3612875899411821
+ 0.3612977991798148
+ 0.361308008763086
+ 0.36131821869101349
+ 0.36132842896361483
+ 0.36133863958090767
+ 0.36134885054291149
+ 0.36135906184964139
+ 0.36136927350111669
+ 0.36137948549735505
+ 0.36138969783837421
+ 0.36139991052419279
+ 0.36141012355482743
+ 0.3614203369302959
+ 0.36143055065061763
+ 0.36144076471580855
+ 0.3614509791258872
+ 0.36146119388087211
+ 0.36147140898078012
+ 0.36148162442562892
+ 0.36149184021543795
+ 0.36150205635022314
+ 0.36151227283000298
+ 0.36152248965479611
+ 0.36153270682461941
+ 0.36154292433949048
+ 0.36155314219942875
+ 0.36156336040444925
+ 0.36157357895457332
+ 0.36158379784981592
+ 0.36159401709019656
+ 0.36160423667573199
+ 0.3616144566064417
+ 0.36162467688234157
+ 0.36163489750345029
+ 0.36164511846978553
+ 0.36165533978136583
+ 0.36166556143820888
+ 0.36167578344033158
+ 0.3616860057877524
+ 0.36169622848048916
+ 0.3617064515185604
+ 0.36171667490198295
+ 0.36172689863077451
+ 0.36173712270495456
+ 0.36174734712453993
+ 0.36175757188954738
+ 0.3617677969999965
+ 0.36177802245590412
+ 0.36178824825728872
+ 0.36179847440416812
+ 0.36180870089656003
+ 0.3618189277344821
+ 0.36182915491795298
+ 0.36183938244698949
+ 0.36184961032161028
+ 0.36185983854183207
+ 0.36187006710767539
+ 0.36188029601915522
+ 0.36189052527629018
+ 0.36190075487909973
+ 0.36191098482759992
+ 0.36192121512180842
+ 0.36193144576174557
+ 0.36194167674742656
+ 0.36195190807887079
+ 0.36196213975609604
+ 0.36197237177912001
+ 0.36198260414795957
+ 0.36199283686263417
+ 0.36200306992316172
+ 0.36201330332955889
+ 0.36202353708184437
+ 0.36203377118003582
+ 0.36204400562415118
+ 0.36205424041420892
+ 0.36206447555022586
+ 0.36207471103221989
+ 0.36208494686021042
+ 0.36209518303421429
+ 0.36210541955424935
+ 0.36211565642033416
+ 0.3621258936324856
+ 0.3621361311907223
+ 0.36214636909506204
+ 0.36215660734552341
+ 0.36216684594212328
+ 0.36217708488488037
+ 0.36218732417381144
+ 0.36219756380893608
+ 0.36220780379027029
+ 0.36221804411783354
+ 0.36222828479164276
+ 0.36223852581171656
+ 0.36224876717807364
+ 0.36225900889072982
+ 0.36226925094970486
+ 0.36227949335501552
+ 0.36228973610668047
+ 0.36229997920471757
+ 0.36231022264914442
+ 0.36232046643997884
+ 0.36233071057723953
+ 0.36234095506094427
+ 0.36235119989110998
+ 0.36236144506775608
+ 0.36237169059089946
+ 0.36238193646055805
+ 0.36239218267675039
+ 0.36240242923949428
+ 0.36241267614880751
+ 0.36242292340470872
+ 0.36243317100721484
+ 0.36244341895634363
+ 0.36245366725211381
+ 0.36246391589454313
+ 0.36247416488365014
+ 0.36248441421945282
+ 0.36249466390196794
+ 0.36250491393121337
+ 0.36251516430720859
+ 0.3625254150299706
+ 0.36253566609951798
+ 0.36254591751586857
+ 0.36255616927903928
+ 0.36256642138904877
+ 0.36257667384591574
+ 0.36258692664965714
+ 0.36259717980029149
+ 0.36260743329783685
+ 0.3626176871423108
+ 0.36262794133373122
+ 0.36263819587211676
+ 0.36264845075748525
+ 0.36265870598985372
+ 0.36266896156924155
+ 0.36267921749566573
+ 0.36268947376914501
+ 0.36269973038969627
+ 0.36270998735733906
+ 0.36272024467209041
+ 0.36273050233396709
+ 0.36274076034298969
+ 0.36275101869917514
+ 0.36276127740254027
+ 0.36277153645310478
+ 0.36278179585088549
+ 0.36279205559590205
+ 0.36280231568816962
+ 0.36281257612770956
+ 0.36282283691453704
+ 0.36283309804867164
+ 0.36284335953013119
+ 0.36285362135893268
+ 0.36286388353509552
+ 0.36287414605863688
+ 0.36288440892957535
+ 0.36289467214792875
+ 0.36290493571371502
+ 0.36291519962695185
+ 0.36292546388765712
+ 0.3629357284958496
+ 0.36294599345154704
+ 0.36295625875476828
+ 0.36296652440552923
+ 0.36297679040384961
+ 0.36298705674974724
+ 0.36299732344323993
+ 0.3630075904843455
+ 0.36301785787308277
+ 0.36302812560946857
+ 0.36303839369352175
+ 0.36304866212526093
+ 0.36305893090470226
+ 0.36306920003186621
+ 0.36307946950676795
+ 0.36308973932942812
+ 0.36310000949986437
+ 0.36311028001809376
+ 0.36312055088413414
+ 0.36313082209800435
+ 0.36314109365972203
+ 0.36315136556930605
+ 0.36316163782677335
+ 0.3631719104321427
+ 0.36318218338543201
+ 0.36319245668665989
+ 0.36320273033584333
+ 0.36321300433300036
+ 0.36322327867815046
+ 0.36323355337130969
+ 0.3632438284124978
+ 0.36325410380173262
+ 0.36326437953903196
+ 0.36327465562441291
+ 0.36328493205789492
+ 0.36329520883949612
+ 0.36330548596923329
+ 0.36331576344712524
+ 0.36332604127319085
+ 0.36333631944744693
+ 0.36334659796991231
+ 0.36335687684060403
+ 0.36336715605954162
+ 0.36337743562674218
+ 0.36338771554222443
+ 0.36339799580600629
+ 0.36340827641810469
+ 0.36341855737854023
+ 0.36342883868732812
+ 0.36343912034448889
+ 0.36344940235003953
+ 0.36345968470399792
+ 0.36346996740638199
+ 0.3634802504572105
+ 0.36349053385650221
+ 0.36350081760427322
+ 0.36351110170054324
+ 0.36352138614533019
+ 0.36353167093865096
+ 0.36354195608052531
+ 0.36355224157097021
+ 0.36356252741000444
+ 0.36357281359764598
+ 0.36358310013391265
+ 0.36359338701882327
+ 0.36360367425239393
+ 0.36361396183464517
+ 0.3636242497655951
+ 0.36363453804525953
+ 0.36364482667365833
+ 0.36365511565080938
+ 0.36366540497673067
+ 0.3636756946514399
+ 0.36368598467495605
+ 0.36369627504729696
+ 0.36370656576848054
+ 0.36371685683852473
+ 0.36372714825744829
+ 0.3637374400252692
+ 0.36374773214200445
+ 0.36375802460767465
+ 0.36376831742229493
+ 0.36377861058588601
+ 0.36378890409846398
+ 0.36379919796004856
+ 0.36380949217065678
+ 0.36381978673030746
+ 0.36383008163901942
+ 0.3638403768968087
+ 0.36385067250369513
+ 0.36386096845969662
+ 0.36387126476483106
+ 0.36388156141911732
+ 0.36389185842257232
+ 0.36390215577521506
+ 0.36391245347706241
+ 0.36392275152813508
+ 0.36393304992844838
+ 0.36394334867802275
+ 0.36395364777687539
+ 0.36396394722502412
+ 0.36397424702248699
+ 0.36398454716928369
+ 0.36399484766543116
+ 0.36400514851094756
+ 0.36401544970585148
+ 0.36402575125016012
+ 0.3640360531438932
+ 0.36404635538706764
+ 0.36405665797970255
+ 0.36406696092181567
+ 0.3640772642134249
+ 0.36408756785454843
+ 0.36409787184520487
+ 0.36410817618541313
+ 0.3641184808751895
+ 0.36412878591455361
+ 0.36413909130352246
+ 0.36414939704211591
+ 0.36415970313035101
+ 0.36417000956824652
+ 0.3641803163558196
+ 0.36419062349309
+ 0.36420093098007383
+ 0.36421123881679091
+ 0.36422154700325998
+ 0.36423185553949733
+ 0.36424216442552271
+ 0.36425247366135322
+ 0.36426278324700845
+ 0.36427309318250473
+ 0.36428340346786181
+ 0.36429371410309758
+ 0.36430402508822918
+ 0.36431433642327726
+ 0.36432464810825715
+ 0.36433496014318856
+ 0.36434527252809035
+ 0.36435558526297956
+ 0.36436589834787431
+ 0.36437621178279428
+ 0.36438652556775569
+ 0.36439683970277831
+ 0.36440715418787922
+ 0.36441746902307809
+ 0.36442778420839217
+ 0.36443809974383939
+ 0.36444841562943858
+ 0.36445873186520777
+ 0.36446904845116596
+ 0.36447936538733089
+ 0.36448968267371989
+ 0.36450000031035162
+ 0.36451031829724434
+ 0.36452063663441764
+ 0.36453095532188873
+ 0.36454127435967459
+ 0.36455159374779511
+ 0.36456191348626826
+ 0.36457223357511298
+ 0.36458255401434536
+ 0.36459287480398622
+ 0.36460319594405166
+ 0.36461351743456066
+ 0.3646238392755321
+ 0.36463416146698396
+ 0.36464448400893429
+ 0.36465480690140106
+ 0.36466513014440233
+ 0.36467545373795784
+ 0.36468577768208471
+ 0.36469610197680097
+ 0.3647064266221256
+ 0.36471675161807743
+ 0.36472707696467266
+ 0.36473740266193122
+ 0.36474772870987099
+ 0.36475805510851006
+ 0.36476838185786731
+ 0.36477870895795989
+ 0.36478903640880767
+ 0.3647993642104268
+ 0.36480969236283706
+ 0.36482002086605747
+ 0.3648303497201042
+ 0.36484067892499716
+ 0.36485100848075425
+ 0.3648613383873936
+ 0.3648716686449332
+ 0.36488199925339204
+ 0.36489233021278716
+ 0.36490266152313833
+ 0.36491299318446291
+ 0.36492332519677972
+ 0.36493365756010759
+ 0.36494399027446295
+ 0.36495432333986638
+ 0.36496465675633416
+ 0.36497499052388532
+ 0.36498532464253869
+ 0.36499565911231235
+ 0.36500599393322436
+ 0.36501632910529369
+ 0.36502666462853745
+ 0.36503700050297455
+ 0.36504733672862399
+ 0.36505767330550287
+ 0.36506801023363028
+ 0.36507834751302404
+ 0.3650886851437033
+ 0.36509902312568604
+ 0.36510936145898942
+ 0.36511970014363321
+ 0.36513003917963566
+ 0.3651403785670147
+ 0.36515071830578838
+ 0.36516105839597479
+ 0.36517139883759381
+ 0.36518173963066258
+ 0.36519208077519916
+ 0.36520242227122246
+ 0.3652127641187507
+ 0.36522310631780269
+ 0.36523344886839565
+ 0.3652437917705495
+ 0.36525413502428045
+ 0.36526447862960926
+ 0.36527482258655225
+ 0.36528516689512841
+ 0.36529551155535656
+ 0.36530585656725495
+ 0.36531620193084169
+ 0.36532654764613465
+ 0.36533689371315303
+ 0.36534724013191561
+ 0.3653575869024388
+ 0.36536793402474332
+ 0.36537828149884549
+ 0.36538862932476424
+ 0.36539897750251954
+ 0.36540932603212678
+ 0.36541967491360755
+ 0.36543002414697817
+ 0.36544037373225768
+ 0.36545072366946413
+ 0.36546107395861566
+ 0.36547142459973109
+ 0.36548177559282874
+ 0.36549212693792749
+ 0.36550247863504459
+ 0.36551283068419987
+ 0.36552318308540971
+ 0.3655335358386948
+ 0.36554388894407153
+ 0.3655542424015597
+ 0.36556459621117665
+ 0.3655749503729413
+ 0.36558530488687269
+ 0.36559565975298797
+ 0.36560601497130618
+ 0.36561637054184548
+ 0.3656267264646248
+ 0.36563708273966133
+ 0.36564743936697514
+ 0.36565779634658324
+ 0.36566815367850386
+ 0.36567851136275692
+ 0.36568886939936046
+ 0.36569922778833175
+ 0.36570958652968982
+ 0.36571994562345278
+ 0.36573030506963961
+ 0.36574066486826934
+ 0.3657510250193583
+ 0.36576138552292736
+ 0.36577174637899285
+ 0.36578210758757368
+ 0.36579246914868985
+ 0.36580283106235767
+ 0.36581319332859624
+ 0.36582355594742538
+ 0.36583391891886152
+ 0.36584428224292359
+ 0.36585464591963074
+ 0.36586500994900101
+ 0.36587537433105255
+ 0.36588573906580441
+ 0.36589610415327389
+ 0.36590646959348083
+ 0.36591683538644243
+ 0.36592720153217884
+ 0.36593756803070615
+ 0.36594793488204452
+ 0.36595830208621194
+ 0.36596866964322661
+ 0.36597903755310757
+ 0.36598940581587208
+ 0.36599977443154008
+ 0.36601014340012883
+ 0.36602051272165825
+ 0.36603088239614473
+ 0.3660412524236073
+ 0.36605162280406589
+ 0.36606199353753777
+ 0.36607236462404202
+ 0.36608273606359587
+ 0.36609310785621846
+ 0.36610348000192872
+ 0.36611385250074485
+ 0.36612422535268602
+ 0.36613459855776836
+ 0.36614497211601299
+ 0.36615534602743705
+ 0.36616572029205868
+ 0.36617609490989694
+ 0.36618646988097103
+ 0.3661968452052981
+ 0.36620722088289814
+ 0.36621759691378752
+ 0.36622797329798618
+ 0.36623835003551153
+ 0.36624872712638423
+ 0.36625910457062083
+ 0.36626948236823947
+ 0.36627986051926009
+ 0.36629023902370089
+ 0.36630061788157914
+ 0.36631099709291576
+ 0.36632137665772613
+ 0.36633175657603123
+ 0.36634213684784828
+ 0.36635251747319647
+ 0.36636289845209391
+ 0.36637327978455875
+ 0.36638366147061008
+ 0.36639404351026622
+ 0.3664044259035461
+ 0.36641480865046711
+ 0.36642519175104926
+ 0.36643557520530884
+ 0.36644595901326682
+ 0.36645634317494052
+ 0.36646672769034894
+ 0.36647711255950943
+ 0.366487497782442
+ 0.366497883359164
+ 0.36650826928969532
+ 0.36651865557405339
+ 0.36652904221225535
+ 0.36653942920432225
+ 0.36654981655027224
+ 0.36656020425012259
+ 0.36657059230389338
+ 0.366580980711601
+ 0.36659136947326543
+ 0.36660175858890581
+ 0.36661214805853942
+ 0.36662253788218546
+ 0.36663292805986203
+ 0.36664331859158827
+ 0.36665370947738157
+ 0.36666410071726185
+ 0.36667449231124649
+ 0.36668488425935464
+ 0.3666952765616045
+ 0.36670566921801601
+ 0.3667160622286057
+ 0.36672645559339345
+ 0.36673684931239769
+ 0.36674724338563564
+ 0.36675763781312731
+ 0.36676803259489099
+ 0.36677842773094482
+ 0.36678882322130796
+ 0.36679921906599872
+ 0.36680961526503436
+ 0.36682001181843582
+ 0.36683040872621953
+ 0.36684080598840557
+ 0.36685120360501217
+ 0.36686160157605746
+ 0.36687199990155989
+ 0.36688239858153843
+ 0.36689279761601135
+ 0.36690319700499785
+ 0.36691359674851615
+ 0.36692399684658444
+ 0.36693439729922195
+ 0.36694479810644687
+ 0.36695519926827747
+ 0.36696560078473295
+ 0.36697600265583141
+ 0.36698640488159218
+ 0.3669968074620325
+ 0.36700721039717249
+ 0.3670176136870294
+ 0.36702801733162344
+ 0.36703842133097186
+ 0.36704882568509295
+ 0.36705923039400584
+ 0.36706963545773069
+ 0.36708004087628382
+ 0.3670904466496836
+ 0.36710085277795096
+ 0.36711125926110322
+ 0.36712166609915869
+ 0.3671320732921366
+ 0.36714248084005502
+ 0.3671528887429325
+ 0.36716329700078804
+ 0.36717370561364082
+ 0.36718411458150818
+ 0.36719452390440938
+ 0.36720493358236261
+ 0.36721534361538721
+ 0.36722575400350127
+ 0.36723616474672405
+ 0.36724657584507381
+ 0.36725698729856882
+ 0.36726739910722739
+ 0.36727781127106873
+ 0.367288223790112
+ 0.3672986366643754
+ 0.36730904989387647
+ 0.3673194634786352
+ 0.36732987741867079
+ 0.36734029171399973
+ 0.36735070636464207
+ 0.36736112137061716
+ 0.36737153673194123
+ 0.36738195244863553
+ 0.36739236852071649
+ 0.367402784948205
+ 0.36741320173111763
+ 0.36742361886947444
+ 0.36743403636329292
+ 0.36744445421259309
+ 0.36745487241739233
+ 0.36746529097770997
+ 0.36747570989356415
+ 0.36748612916497514
+ 0.36749654879195931
+ 0.36750696877453687
+ 0.36751738911272508
+ 0.3675278098065442
+ 0.36753823085601156
+ 0.36754865226114647
+ 0.36755907402196802
+ 0.36756949613849454
+ 0.3675799186107444
+ 0.36759034143873592
+ 0.3676007646224892
+ 0.36761118816202171
+ 0.36762161205735161
+ 0.36763203630849922
+ 0.36764246091548264
+ 0.36765288587831951
+ 0.36766331119702977
+ 0.36767373687163102
+ 0.36768416290214329
+ 0.36769458928858401
+ 0.36770501603097239
+ 0.36771544312932675
+ 0.36772587058366735
+ 0.36773629839401056
+ 0.36774672656037666
+ 0.36775715508278384
+ 0.36776758396125048
+ 0.36777801319579589
+ 0.3677884427864383
+ 0.367798872733197
+ 0.3678093030360895
+ 0.36781973369513582
+ 0.36783016471035351
+ 0.36784059608176251
+ 0.36785102780938056
+ 0.36786145989322755
+ 0.36787189233332018
+ 0.36788232512967856
+ 0.36789275828232187
+ 0.36790319179126679
+ 0.36791362565653518
+ 0.3679240598781427
+ 0.36793449445610943
+ 0.36794492939045387
+ 0.36795536468119522
+ 0.3679658003283518
+ 0.36797623633194193
+ 0.36798667269198504
+ 0.36799710940849933
+ 0.36800754648150413
+ 0.36801798391101775
+ 0.36802842169705857
+ 0.3680388598396459
+ 0.36804929833879896
+ 0.36805973719453522
+ 0.36807017640687306
+ 0.36808061597583352
+ 0.36809105590143421
+ 0.36810149618369326
+ 0.36811193682262916
+ 0.36812237781826213
+ 0.36813281917060958
+ 0.36814326087969174
+ 0.36815370294552513
+ 0.36816414536813091
+ 0.36817458814752552
+ 0.36818503128373009
+ 0.36819547477676129
+ 0.36820591862663832
+ 0.36821636283338138
+ 0.36822680739700803
+ 0.36823725231753646
+ 0.36824769759498704
+ 0.36825814322937811
+ 0.36826858922072708
+ 0.36827903556905334
+ 0.36828948227437702
+ 0.36829992933671474
+ 0.36831037675608763
+ 0.36832082453251225
+ 0.36833127266600868
+ 0.36834172115659464
+ 0.3683521700042901
+ 0.36836261920911362
+ 0.36837306877108356
+ 0.36838351869021829
+ 0.36839396896653803
+ 0.36840441960006032
+ 0.36841487059080441
+ 0.36842532193878869
+ 0.36843577364403157
+ 0.36844622570655339
+ 0.36845667812637239
+ 0.36846713090350613
+ 0.36847758403797481
+ 0.36848803752979692
+ 0.36849849137898988
+ 0.3685089455855749
+ 0.36851940014956941
+ 0.36852985507099273
+ 0.3685403103498624
+ 0.36855076598619774
+ 0.36856122198001889
+ 0.36857167833134358
+ 0.36858213504019005
+ 0.36859259210657863
+ 0.36860304953052669
+ 0.36861350731205372
+ 0.36862396545117804
+ 0.36863442394791995
+ 0.36864488280229601
+ 0.36865534201432737
+ 0.36866580158403167
+ 0.36867626151142718
+ 0.36868672179653328
+ 0.36869718243936939
+ 0.36870764343995294
+ 0.36871810479830419
+ 0.36872856651444069
+ 0.36873902858838276
+ 0.3687494910201487
+ 0.36875995380975607
+ 0.36877041695722523
+ 0.36878088046257451
+ 0.36879134432582333
+ 0.36880180854698918
+ 0.36881227312609144
+ 0.36882273806315025
+ 0.36883320335818243
+ 0.36884366901120819
+ 0.36885413502224584
+ 0.368864601391314
+ 0.3688750681184319
+ 0.36888553520361905
+ 0.36889600264689287
+ 0.36890647044827363
+ 0.3689169386077798
+ 0.36892740712542893
+ 0.36893787600124139
+ 0.36894834523523634
+ 0.36895881482743059
+ 0.36896928477784441
+ 0.36897975508649705
+ 0.36899022575340712
+ 0.3690006967785921
+ 0.36901116816207308
+ 0.36902163990386783
+ 0.36903211200399466
+ 0.36904258446247296
+ 0.36905305727932219
+ 0.36906353045456075
+ 0.36907400398820711
+ 0.36908447788028065
+ 0.36909495213079996
+ 0.36910542673978425
+ 0.369115901707253
+ 0.36912637703322282
+ 0.3691368527177149
+ 0.36914732876074696
+ 0.36915780516233909
+ 0.369168281922509
+ 0.36917875904127506
+ 0.36918923651865776
+ 0.36919971435467536
+ 0.36921019254934651
+ 0.36922067110269052
+ 0.36923115001472595
+ 0.36924162928547211
+ 0.36925210891494753
+ 0.36926258890317065
+ 0.36927306925016101
+ 0.36928354995593787
+ 0.36929403102051889
+ 0.36930451244392526
+ 0.36931499422617364
+ 0.36932547636728352
+ 0.36933595886727422
+ 0.36934644172616421
+ 0.36935692494397221
+ 0.3693674085207182
+ 0.369377892456421
+ 0.36938837675109804
+ 0.36939886140476963
+ 0.36940934641745438
+ 0.36941983178917159
+ 0.36943031751993893
+ 0.36944080360977677
+ 0.36945129005870353
+ 0.36946177686673681
+ 0.36947226403389793
+ 0.36948275156020444
+ 0.36949323944567575
+ 0.36950372769033046
+ 0.36951421629418701
+ 0.36952470525726572
+ 0.36953519457958339
+ 0.36954568426116113
+ 0.36955617430201765
+ 0.36956666470217125
+ 0.36957715546164072
+ 0.36958764658044435
+ 0.36959813805860342
+ 0.36960862989613474
+ 0.36961912209305775
+ 0.3696296146493927
+ 0.36964010756515636
+ 0.3696506008403691
+ 0.3696610944750503
+ 0.36967158846921766
+ 0.36968208282289061
+ 0.36969257753608853
+ 0.36970307260882912
+ 0.36971356804113364
+ 0.36972406383301881
+ 0.36973455998450577
+ 0.3697450564956114
+ 0.36975555336635518
+ 0.36976605059675649
+ 0.36977654818683564
+ 0.3697870461366094
+ 0.3697975444460973
+ 0.36980804311531867
+ 0.36981854214429222
+ 0.36982904153303725
+ 0.36983954128157337
+ 0.36985004138991806
+ 0.36986054185809181
+ 0.36987104268611221
+ 0.3698815438739988
+ 0.36989204542177095
+ 0.36990254732944827
+ 0.36991304959704824
+ 0.36992355222459045
+ 0.36993405521209433
+ 0.36994455855957836
+ 0.36995506226706132
+ 0.3699655663345634
+ 0.36997607076210232
+ 0.3699865755496976
+ 0.36999708069736775
+ 0.37000758620513319
+ 0.37001809207301156
+ 0.3700285983010233
+ 0.37003910488918507
+ 0.37004961183751822
+ 0.37006011914604053
+ 0.37007062681477126
+ 0.37008113484372923
+ 0.3700916432329347
+ 0.37010215198240526
+ 0.37011266109215973
+ 0.37012317056221827
+ 0.37013368039259964
+ 0.37014419058332326
+ 0.37015470113440679
+ 0.37016521204587072
+ 0.37017572331773257
+ 0.37018623495001202
+ 0.37019674694272936
+ 0.37020725929590231
+ 0.37021777200955036
+ 0.37022828508369215
+ 0.37023879851834718
+ 0.37024931231353397
+ 0.37025982646927202
+ 0.37027034098558004
+ 0.3702808558624785
+ 0.37029137109998395
+ 0.37030188669811698
+ 0.37031240265689702
+ 0.37032291897634179
+ 0.37033343565647087
+ 0.37034395269730369
+ 0.37035447009885986
+ 0.37036498786115785
+ 0.37037550598421554
+ 0.37038602446805319
+ 0.3703965433126904
+ 0.37040706251814581
+ 0.37041758208443709
+ 0.37042810201158555
+ 0.37043862229960894
+ 0.37044914294852682
+ 0.37045966395835778
+ 0.37047018532912129
+ 0.37048070706083513
+ 0.37049122915352156
+ 0.37050175160719651
+ 0.37051227442188028
+ 0.3705227975975916
+ 0.37053332113435
+ 0.37054384503217508
+ 0.37055436929108443
+ 0.37056489391109859
+ 0.37057541889223616
+ 0.3705859442345158
+ 0.37059646993795703
+ 0.37060699600257846
+ 0.37061752242839968
+ 0.37062804921544018
+ 0.37063857636371772
+ 0.37064910387325284
+ 0.37065963174406402
+ 0.37067015997617098
+ 0.37068068856959135
+ 0.37069121752434558
+ 0.37070174684045243
+ 0.37071227651793043
+ 0.37072280655679912
+ 0.37073333695707816
+ 0.37074386771878615
+ 0.37075439884194267
+ 0.37076493032656543
+ 0.37077546217267482
+ 0.3707859943802907
+ 0.37079652694943049
+ 0.37080705988011392
+ 0.37081759317236052
+ 0.37082812682618888
+ 0.37083866084161782
+ 0.37084919521866772
+ 0.37085972995735633
+ 0.37087026505770504
+ 0.37088080051972988
+ 0.37089133634345206
+ 0.37090187252889051
+ 0.3709124090760636
+ 0.37092294598499109
+ 0.37093348325569248
+ 0.37094402088818568
+ 0.37095455888249101
+ 0.37096509723862631
+ 0.37097563595661204
+ 0.3709861750364678
+ 0.37099671447821048
+ 0.37100725428186149
+ 0.37101779444743949
+ 0.37102833497496218
+ 0.37103887586445017
+ 0.37104941711592215
+ 0.37105995872939845
+ 0.37107050070489617
+ 0.37108104304243567
+ 0.37109158574203566
+ 0.37110212880371574
+ 0.37111267222749467
+ 0.37112321601339193
+ 0.37113376016142718
+ 0.37114430467161824
+ 0.37115484954398648
+ 0.37116539477854882
+ 0.37117594037532481
+ 0.37118648633433504
+ 0.37119703265559717
+ 0.37120757933913101
+ 0.3712181263849551
+ 0.37122867379309088
+ 0.37123922156355532
+ 0.37124976969636708
+ 0.37126031819154759
+ 0.37127086704911466
+ 0.37128141626908878
+ 0.37129196585148688
+ 0.3713025157963295
+ 0.37131306610363618
+ 0.37132361677342579
+ 0.37133416780571693
+ 0.37134471920052914
+ 0.37135527095788229
+ 0.37136582307779481
+ 0.37137637556028741
+ 0.37138692840537613
+ 0.37139748161308322
+ 0.37140803518342652
+ 0.37141858911642572
+ 0.37142914341210026
+ 0.37143969807046823
+ 0.37145025309154994
+ 0.37146080847536522
+ 0.37147136422193083
+ 0.37148192033126742
+ 0.37149247680339548
+ 0.37150303363833281
+ 0.37151359083609825
+ 0.37152414839671138
+ 0.3715347063201927
+ 0.37154526460656012
+ 0.37155582325583236
+ 0.3715663822680309
+ 0.37157694164317256
+ 0.371587501381278
+ 0.37159806148236502
+ 0.37160862194645511
+ 0.37161918277356615
+ 0.37162974396371767
+ 0.37164030551692862
+ 0.3716508674332184
+ 0.37166142971260591
+ 0.37167199235511084
+ 0.37168255536075273
+ 0.37169311872955046
+ 0.37170368246152363
+ 0.37171424655669011
+ 0.37172481101507132
+ 0.3717353758366852
+ 0.3717459410215504
+ 0.37175650656968851
+ 0.37176707248111646
+ 0.37177763875585385
+ 0.37178820539392138
+ 0.37179877239533676
+ 0.37180933976011971
+ 0.37181990748829097
+ 0.37183047557986731
+ 0.37184104403487023
+ 0.37185161285331675
+ 0.37186218203522836
+ 0.37187275158062294
+ 0.37188332148952108
+ 0.37189389176194054
+ 0.37190446239790115
+ 0.37191503339742249
+ 0.37192560476052433
+ 0.37193617648722455
+ 0.37194674857754367
+ 0.37195732103150042
+ 0.37196789384911372
+ 0.37197846703040421
+ 0.37198904057538956
+ 0.37199961448408964
+ 0.37201018875652492
+ 0.37202076339271251
+ 0.37203133839267394
+ 0.37204191375642781
+ 0.37205248948399217
+ 0.37206306557538754
+ 0.37207364203063376
+ 0.37208421884974852
+ 0.37209479603275258
+ 0.37210537357966378
+ 0.37211595149050281
+ 0.37212652976528832
+ 0.37213710840404018
+ 0.37214768740677706
+ 0.37215826677351876
+ 0.37216884650428406
+ 0.37217942659909353
+ 0.37219000705796423
+ 0.37220058788091775
+ 0.37221116906797275
+ 0.3722217506191472
+ 0.3722323325344627
+ 0.37224291481393706
+ 0.37225349745759007
+ 0.37226408046544052
+ 0.37227466383750812
+ 0.37228524757381354
+ 0.37229583167437375
+ 0.37230641613921034
+ 0.37231700096834019
+ 0.37232758616178507
+ 0.37233817171956274
+ 0.37234875764169378
+ 0.37235934392819631
+ 0.37236993057909079
+ 0.37238051759439522
+ 0.37239110497413025
+ 0.3724016927183138
+ 0.37241228082696737
+ 0.37242286930010898
+ 0.37243345813775747
+ 0.3724440473399333
+ 0.37245463690665553
+ 0.37246522683794298
+ 0.37247581713381522
+ 0.3724864077942931
+ 0.37249699881939352
+ 0.3725075902091381
+ 0.3725181819635448
+ 0.3725287740826333
+ 0.3725393665664225
+ 0.37254995941493302
+ 0.37256055262818288
+ 0.37257114620619264
+ 0.37258174014898127
+ 0.37259233445656842
+ 0.37260292912897214
+ 0.37261352416621391
+ 0.37262411956831171
+ 0.37263471533528442
+ 0.37264531146715268
+ 0.37265590796393633
+ 0.37266650482565322
+ 0.37267710205232324
+ 0.37268769964396598
+ 0.37269829760060136
+ 0.37270889592224826
+ 0.37271949460892545
+ 0.37273009366065363
+ 0.37274069307745078
+ 0.37275129285933761
+ 0.37276189300633306
+ 0.37277249351845582
+ 0.37278309439572666
+ 0.3727936956381645
+ 0.37280429724578817
+ 0.37281489921861743
+ 0.37282550155667127
+ 0.37283610425997121
+ 0.37284670732853337
+ 0.37285731076237938
+ 0.37286791456152912
+ 0.37287851872599953
+ 0.37288912325581225
+ 0.37289972815098621
+ 0.37291033341154034
+ 0.37292093903749524
+ 0.37293154502886799
+ 0.37294215138568027
+ 0.37295275810795098
+ 0.37296336519569884
+ 0.37297397264894483
+ 0.37298458046770583
+ 0.37299518865200448
+ 0.37300579720185773
+ 0.37301640611728554
+ 0.37302701539830857
+ 0.3730376250449447
+ 0.37304823505721385
+ 0.37305884543513684
+ 0.37306945617873055
+ 0.37308006728801768
+ 0.37309067876301427
+ 0.37310129060374114
+ 0.37311190281021905
+ 0.37312251538246682
+ 0.37313312832050249
+ 0.37314374162434671
+ 0.37315435529401947
+ 0.37316496932953869
+ 0.37317558373092508
+ 0.37318619849819756
+ 0.37319681363137597
+ 0.37320742913048016
+ 0.37321804499552813
+ 0.37322866122654058
+ 0.3732392778235365
+ 0.37324989478653653
+ 0.37326051211555794
+ 0.37327112981062222
+ 0.37328174787174745
+ 0.3732923662989544
+ 0.37330298509226201
+ 0.37331360425169002
+ 0.37332422377725655
+ 0.37333484366898234
+ 0.37334546392688722
+ 0.37335608455099012
+ 0.37336670554130991
+ 0.37337732689786657
+ 0.37338794862068075
+ 0.37339857070977056
+ 0.37340919316515581
+ 0.37341981598685636
+ 0.3734304391748911
+ 0.3734410627292809
+ 0.37345168665004375
+ 0.37346231093719945
+ 0.37347293559076794
+ 0.37348356061076804
+ 0.37349418599722073
+ 0.37350481175014388
+ 0.37351543786955826
+ 0.37352606435548291
+ 0.37353669120793676
+ 0.37354731842694061
+ 0.37355794601251341
+ 0.37356857396467402
+ 0.37357920228344244
+ 0.37358983096883841
+ 0.37360046002088104
+ 0.37361108943959004
+ 0.37362171922498544
+ 0.37363234937708611
+ 0.373642979895912
+ 0.3736536107814829
+ 0.37366424203381782
+ 0.37367487365293578
+ 0.37368550563885833
+ 0.37369613799160184
+ 0.37370677071118896
+ 0.37371740379763768
+ 0.37372803725096787
+ 0.3737386710711994
+ 0.37374930525835137
+ 0.37375993981244354
+ 0.37377057473349501
+ 0.37378121002152642
+ 0.3737918456765551
+ 0.37380248169860353
+ 0.37381311808768902
+ 0.37382375484383318
+ 0.37383439196705409
+ 0.37384502945737086
+ 0.37385566731480413
+ 0.37386630553937389
+ 0.37387694413109823
+ 0.37388758308999792
+ 0.373898222416092
+ 0.37390886210940033
+ 0.37391950216994196
+ 0.37393014259773677
+ 0.37394078339280473
+ 0.37395142455516467
+ 0.37396206608483751
+ 0.3739727079818414
+ 0.37398335024619628
+ 0.37399399287792279
+ 0.37400463587703925
+ 0.37401527924356542
+ 0.37402592297752124
+ 0.37403656707892668
+ 0.3740472115477998
+ 0.37405785638416239
+ 0.37406850158803251
+ 0.37407914715943003
+ 0.37408979309837509
+ 0.37410043940488641
+ 0.37411108607898508
+ 0.37412173312068908
+ 0.37413238053001829
+ 0.37414302830699375
+ 0.37415367645163344
+ 0.3741643249639573
+ 0.37417497384398618
+ 0.37418562309173814
+ 0.37419627270723316
+ 0.37420692269049216
+ 0.37421757304153325
+ 0.37422822376037629
+ 0.37423887484704121
+ 0.37424952630154712
+ 0.37426017812391488
+ 0.37427083031416347
+ 0.37428148287231106
+ 0.37429213579838028
+ 0.37430278909238834
+ 0.37431344275435624
+ 0.37432409678430195
+ 0.37433475118224735
+ 0.37434540594821042
+ 0.37435606108221126
+ 0.37436671658426979
+ 0.37437737245440511
+ 0.37438802869263804
+ 0.37439868529898573
+ 0.374409342273471
+ 0.37441999961611194
+ 0.37443065732692854
+ 0.37444131540593883
+ 0.3744519738531647
+ 0.37446263266862523
+ 0.37447329185233941
+ 0.37448395140432728
+ 0.37449461132460782
+ 0.37450527161320291
+ 0.37451593227012964
+ 0.37452659329540905
+ 0.37453725468906113
+ 0.37454791645110386
+ 0.37455857858155833
+ 0.37456924108044437
+ 0.37457990394778018
+ 0.37459056718358763
+ 0.37460123078788482
+ 0.37461189476069079
+ 0.37462255910202746
+ 0.37463322381191294
+ 0.37464388889036709
+ 0.37465455433741007
+ 0.37466522015306097
+ 0.37467588633733961
+ 0.37468655289026609
+ 0.37469721981186044
+ 0.37470788710214165
+ 0.37471855476112892
+ 0.37472922278884302
+ 0.37473989118530315
+ 0.37475055995052931
+ 0.37476122908454046
+ 0.37477189858735771
+ 0.37478256845899904
+ 0.3747932386994855
+ 0.37480390930883611
+ 0.37481458028707093
+ 0.37482525163420993
+ 0.37483592335027133
+ 0.37484659543527699
+ 0.37485726788924589
+ 0.37486794071219637
+ 0.37487861390414923
+ 0.37488928746512451
+ 0.37489996139514231
+ 0.37491063569422073
+ 0.3749213103623808
+ 0.3749319853996424
+ 0.37494266080602384
+ 0.37495333658154695
+ 0.37496401272622898
+ 0.37497468924009175
+ 0.37498536612315447
+ 0.3749960433754353
+ 0.37500672099695698
+ 0.37501739898773684
+ 0.37502807734779486
+ 0.37503875607715204
+ 0.37504943517582656
+ 0.37506011464384031
+ 0.3750707944812105
+ 0.37508147468795905
+ 0.37509215526410422
+ 0.375102836209666
+ 0.37511351752466532
+ 0.37512419920912049
+ 0.37513488126305233
+ 0.37514556368647917
+ 0.37515624647942281
+ 0.37516692964190151
+ 0.37517761317393533
+ 0.37518829707554424
+ 0.37519898134674839
+ 0.37520966598756689
+ 0.3752203509980197
+ 0.37523103637812616
+ 0.37524172212790696
+ 0.37525240824738149
+ 0.37526309473656977
+ 0.3752737815954908
+ 0.37528446882416472
+ 0.37529515642261163
+ 0.37530584439085157
+ 0.3753165327289037
+ 0.37532722143678798
+ 0.37533791051452281
+ 0.37534859996213088
+ 0.37535928977963051
+ 0.37536997996704169
+ 0.37538067052438367
+ 0.37539136145167651
+ 0.37540205274894012
+ 0.37541274441619388
+ 0.37542343645345866
+ 0.37543412886075272
+ 0.37544482163809795
+ 0.37545551478551176
+ 0.37546620830301503
+ 0.3754769021906289
+ 0.37548759644837154
+ 0.37549829107626298
+ 0.37550898607432343
+ 0.37551968144257192
+ 0.37553037718102955
+ 0.37554107328971559
+ 0.37555176976864896
+ 0.37556246661785087
+ 0.37557316383734041
+ 0.37558386142713773
+ 0.37559455938726194
+ 0.37560525771773406
+ 0.37561595641857243
+ 0.3756266554897989
+ 0.3756373549314318
+ 0.37564805474349022
+ 0.37565875492599626
+ 0.37566945547896796
+ 0.37568015640242564
+ 0.37569085769639027
+ 0.37570155936087907
+ 0.37571226139591507
+ 0.3757229638015156
+ 0.37573366657770163
+ 0.37574436972449321
+ 0.37575507324190965
+ 0.37576577712997106
+ 0.37577648138869757
+ 0.37578718601810829
+ 0.37579789101822336
+ 0.37580859638906294
+ 0.37581930213064624
+ 0.37583000824299417
+ 0.37584071472612623
+ 0.3758514215800613
+ 0.37586212880482062
+ 0.37587283640042324
+ 0.37588354436688953
+ 0.37589425270423849
+ 0.37590496141249125
+ 0.37591567049166696
+ 0.37592637994178585
+ 0.3759370897628671
+ 0.37594779995493172
+ 0.37595851051799806
+ 0.37596922145208717
+ 0.37597993275721825
+ 0.37599064443341235
+ 0.37600135648068778
+ 0.37601206889906558
+ 0.37602278168856507
+ 0.37603349484920628
+ 0.37604420838100944
+ 0.37605492228399467
+ 0.37606563655818026
+ 0.37607635120358818
+ 0.3760870662202368
+ 0.37609778160814722
+ 0.37610849736733765
+ 0.37611921349783012
+ 0.37612992999964295
+ 0.3761406468727973
+ 0.37615136411731132
+ 0.3761620817332072
+ 0.37617279972050216
+ 0.37618351807921924
+ 0.37619423680937586
+ 0.3762049559109929
+ 0.3762156753840899
+ 0.37622639522868778
+ 0.37623711544480576
+ 0.37624783603246231
+ 0.3762585569916802
+ 0.37626927832247786
+ 0.37628000002487549
+ 0.37629072209889225
+ 0.37630144454454928
+ 0.3763121673618649
+ 0.3763228905508611
+ 0.37633361411155636
+ 0.37634433804397066
+ 0.37635506234812527
+ 0.37636578702403845
+ 0.37637651207173123
+ 0.37638723749122305
+ 0.37639796328253494
+ 0.37640868944568517
+ 0.37641941598069406
+ 0.37643014288758259
+ 0.37644087016637012
+ 0.37645159781707682
+ 0.37646232583972195
+ 0.3764730542343257
+ 0.37648378300090823
+ 0.37649451213948981
+ 0.37650524165009069
+ 0.37651597153272998
+ 0.37652670178742714
+ 0.37653743241420407
+ 0.37654816341307917
+ 0.37655889478407267
+ 0.37656962652720471
+ 0.37658035864249562
+ 0.37659109112996553
+ 0.37660182398963277
+ 0.37661255722151948
+ 0.376623290825644
+ 0.37663402480202746
+ 0.37664475915068907
+ 0.37665549387164921
+ 0.37666622896492791
+ 0.37667696443054555
+ 0.37668770026852039
+ 0.37669843647887363
+ 0.37670917306162638
+ 0.37671991001679711
+ 0.37673064734440592
+ 0.37674138504447313
+ 0.37675212311701889
+ 0.37676286156206346
+ 0.37677360037962615
+ 0.37678433956972723
+ 0.37679507913238686
+ 0.37680581906762439
+ 0.37681655937546088
+ 0.3768273000559158
+ 0.37683804110900837
+ 0.37684878253476078
+ 0.37685952433319131
+ 0.3768702665043201
+ 0.37688100904816763
+ 0.37689175196475311
+ 0.37690249525409764
+ 0.37691323891622064
+ 0.37692398295114321
+ 0.37693472735888289
+ 0.37694547213946267
+ 0.37695621729290091
+ 0.37696696281921793
+ 0.376977708718434
+ 0.37698845499056827
+ 0.37699920163564121
+ 0.37700994865367388
+ 0.37702069604468574
+ 0.37703144380869597
+ 0.37704219194572486
+ 0.37705294045579363
+ 0.37706368933892165
+ 0.37707443859512912
+ 0.37708518822443449
+ 0.37709593822686083
+ 0.37710668860242547
+ 0.37711743935115077
+ 0.37712819047305407
+ 0.3771389419681575
+ 0.37714969383648134
+ 0.37716044607804411
+ 0.37717119869286592
+ 0.37718195168096896
+ 0.37719270504237085
+ 0.37720345877709355
+ 0.37721421288515644
+ 0.37722496736657896
+ 0.37723572222138135
+ 0.37724647744958478
+ 0.37725723305120779
+ 0.37726798902627146
+ 0.37727874537479611
+ 0.37728950209680118
+ 0.37730025919230598
+ 0.3773110166613326
+ 0.37732177450389953
+ 0.37733253272002804
+ 0.37734329130973737
+ 0.37735405027304691
+ 0.37736480960997898
+ 0.37737556932055183
+ 0.37738632940478595
+ 0.37739708986270137
+ 0.37740785069431859
+ 0.37741861189965786
+ 0.37742937347873862
+ 0.377440135431582
+ 0.37745089775820656
+ 0.37746166045863333
+ 0.37747242353288285
+ 0.37748318698097444
+ 0.37749395080292925
+ 0.37750471499876581
+ 0.37751547956850529
+ 0.37752624451216721
+ 0.37753700982977267
+ 0.37754777552134117
+ 0.37755854158689295
+ 0.37756930802644745
+ 0.37758007484002587
+ 0.3775908420276477
+ 0.37760160958933403
+ 0.37761237752510352
+ 0.37762314583497636
+ 0.37763391451897382
+ 0.37764468357711628
+ 0.37765545300942216
+ 0.37766622281591372
+ 0.37767699299660934
+ 0.37768776355152944
+ 0.37769853448069429
+ 0.3777093057841252
+ 0.3777200774618415
+ 0.37773084951386177
+ 0.3777416219402091
+ 0.37775239474090094
+ 0.37776316791595965
+ 0.37777394146540366
+ 0.37778471538925518
+ 0.37779548968753168
+ 0.37780626436025544
+ 0.37781703940744593
+ 0.37782781482912242
+ 0.37783859062530634
+ 0.37784936679601705
+ 0.37786014334127582
+ 0.37787092026110214
+ 0.3778816975555162
+ 0.37789247522453762
+ 0.37790325326818758
+ 0.37791403168648552
+ 0.37792481047945181
+ 0.37793558964710589
+ 0.37794636918946994
+ 0.37795714910656253
+ 0.3779679293984049
+ 0.37797871006501566
+ 0.37798949110641594
+ 0.37800027252262719
+ 0.37801105431366694
+ 0.37802183647955728
+ 0.37803261902031787
+ 0.37804340193596897
+ 0.37805418522653095
+ 0.37806496889202329
+ 0.37807575293246737
+ 0.37808653734788156
+ 0.37809732213828912
+ 0.37810810730370659
+ 0.3781188928441564
+ 0.37812967875965975
+ 0.37814046505023424
+ 0.37815125171590119
+ 0.37816203875668197
+ 0.37817282617259501
+ 0.37818361396366074
+ 0.37819440212990052
+ 0.37820519067133374
+ 0.37821597958797998
+ 0.3782267688798614
+ 0.37823755854699748
+ 0.37824834858940765
+ 0.37825913900711333
+ 0.37826992980013296
+ 0.37828072096848797
+ 0.37829151251219867
+ 0.37830230443128465
+ 0.37831309672576796
+ 0.37832388939566647
+ 0.37833468244100127
+ 0.37834547586179296
+ 0.37835626965806191
+ 0.37836706382982754
+ 0.37837785837711119
+ 0.37838865329993243
+ 0.37839944859831165
+ 0.37841024427226821
+ 0.37842104032182355
+ 0.37843183674699815
+ 0.37844263354781138
+ 0.37845343072428378
+ 0.37846422827643567
+ 0.37847502620428747
+ 0.37848582450785873
+ 0.3784966231871717
+ 0.37850742224224315
+ 0.37851822167309712
+ 0.37852902147975126
+ 0.37853982166222705
+ 0.37855062222054486
+ 0.37856142315472413
+ 0.37857222446478533
+ 0.37858302615074985
+ 0.37859382821263626
+ 0.37860463065046585
+ 0.37861543346425919
+ 0.37862623665403566
+ 0.37863704021981676
+ 0.37864784416162101
+ 0.37865864847947067
+ 0.37866945317338524
+ 0.37868025824338342
+ 0.37869106368948835
+ 0.37870186951171775
+ 0.37871267571009481
+ 0.37872348228463626
+ 0.3787342892353654
+ 0.37874509656230165
+ 0.37875590426546468
+ 0.37876671234487475
+ 0.37877752080055249
+ 0.37878832963251918
+ 0.37879913884079353
+ 0.37880994842539772
+ 0.3788207583863496
+ 0.37883156872367224
+ 0.37884237943738336
+ 0.37885319052750449
+ 0.37886400199405679
+ 0.37887481383705907
+ 0.37888562605653259
+ 0.37889643865249711
+ 0.37890725162497368
+ 0.37891806497398217
+ 0.37892887869954289
+ 0.37893969280167633
+ 0.37895050728040208
+ 0.37896132213574241
+ 0.37897213736771512
+ 0.37898295297634244
+ 0.37899376896164394
+ 0.37900458532364006
+ 0.37901540206235146
+ 0.37902621917779844
+ 0.3790370366700006
+ 0.37904785453897849
+ 0.37905867278475353
+ 0.37906949140734519
+ 0.37908031040677403
+ 0.37909112978305959
+ 0.37910194953622423
+ 0.37911276966628654
+ 0.37912359017326708
+ 0.3791344110571872
+ 0.37914523231806568
+ 0.37915605395592472
+ 0.37916687597078302
+ 0.37917769836266202
+ 0.37918852113158136
+ 0.3791993442775633
+ 0.37921016780062555
+ 0.3792209917007896
+ 0.37923181597807692
+ 0.37924264063250612
+ 0.37925346566409862
+ 0.37926429107287496
+ 0.37927511685885468
+ 0.37928594302205831
+ 0.37929676956250641
+ 0.37930759648022033
+ 0.3793184237752189
+ 0.37932925144752438
+ 0.37934007949715443
+ 0.37935090792413245
+ 0.37936173672847623
+ 0.37937256591020807
+ 0.37938339546934757
+ 0.37939422540591528
+ 0.37940505571993077
+ 0.37941588641141649
+ 0.37942671748039103
+ 0.37943754892687503
+ 0.37944838075088982
+ 0.3794592129524551
+ 0.3794700455315913
+ 0.37948087848831913
+ 0.37949171182265895
+ 0.37950254553463042
+ 0.37951337962425508
+ 0.37952421409155246
+ 0.37953504893654411
+ 0.37954588415924967
+ 0.37955671975968858
+ 0.37956755573788337
+ 0.37957839209385358
+ 0.37958922882761897
+ 0.37960006593919998
+ 0.37961090342861903
+ 0.37962174129589488
+ 0.37963257954104712
+ 0.37964341816409808
+ 0.37965425716506651
+ 0.3796650965439749
+ 0.3796759363008419
+ 0.37968677643568888
+ 0.37969761694853571
+ 0.37970845783940366
+ 0.37971929910831254
+ 0.37973014075528283
+ 0.37974098278033502
+ 0.37975182518348888
+ 0.37976266796476676
+ 0.37977351112418739
+ 0.37978435466177224
+ 0.37979519857754107
+ 0.37980604287151432
+ 0.37981688754371357
+ 0.37982773259415842
+ 0.37983857802286947
+ 0.37984942382986631
+ 0.37986027001517153
+ 0.37987111657880368
+ 0.37988196352078346
+ 0.3798928108411323
+ 0.3799036585398699
+ 0.37991450661701687
+ 0.37992535507259462
+ 0.37993620390662208
+ 0.37994705311912058
+ 0.37995790271011076
+ 0.37996875267961328
+ 0.37997960302764766
+ 0.37999045375423557
+ 0.38000130485939565
+ 0.3800121563431505
+ 0.38002300820552054
+ 0.3800338604465246
+ 0.38004471306618415
+ 0.3800555660645199
+ 0.38006641944155234
+ 0.38007727319730122
+ 0.38008812733178809
+ 0.38009898184503249
+ 0.38010983673705523
+ 0.38012069200787768
+ 0.38013154765751866
+ 0.38014240368600066
+ 0.38015326009334333
+ 0.38016411687956636
+ 0.38017497404469131
+ 0.38018583158873875
+ 0.38019668951172841
+ 0.38020754781368188
+ 0.38021840649461885
+ 0.38022926555455983
+ 0.3802401249935255
+ 0.38025098481153641
+ 0.38026184500861432
+ 0.38027270558477694
+ 0.38028356654004769
+ 0.38029442787444528
+ 0.38030528958799142
+ 0.38031615168070565
+ 0.38032701415260961
+ 0.38033787700372301
+ 0.38034874023406751
+ 0.38035960384366163
+ 0.3803704678325272
+ 0.38038133220068465
+ 0.38039219694815574
+ 0.38040306207495822
+ 0.38041392758111553
+ 0.38042479346664648
+ 0.38043565973157162
+ 0.38044652637591264
+ 0.38045739339968926
+ 0.38046826080292212
+ 0.38047912858563271
+ 0.38048999674783984
+ 0.38050086528956611
+ 0.38051173421083029
+ 0.3805226035116539
+ 0.38053347319205771
+ 0.38054434325206221
+ 0.38055521369168727
+ 0.38056608451095353
+ 0.38057695570988254
+ 0.38058782728849411
+ 0.38059869924680878
+ 0.38060957158484821
+ 0.38062044430263126
+ 0.38063131740018036
+ 0.38064219087751433
+ 0.38065306473465582
+ 0.3806639389716226
+ 0.38067481358843813
+ 0.38068568858512225
+ 0.3806965639616946
+ 0.38070743971817589
+ 0.38071831585458682
+ 0.38072919237094899
+ 0.3807400692672831
+ 0.38075094654360692
+ 0.38076182419994503
+ 0.38077270223631526
+ 0.38078358065274004
+ 0.38079445944923745
+ 0.38080533862583088
+ 0.38081621818254002
+ 0.38082709811938481
+ 0.38083797843638667
+ 0.38084885913356553
+ 0.38085974021094293
+ 0.38087062166853858
+ 0.38088150350637429
+ 0.38089238572446865
+ 0.38090326832284443
+ 0.38091415130152129
+ 0.38092503466051997
+ 0.38093591839986118
+ 0.38094680251956464
+ 0.38095768701965305
+ 0.3809685719001451
+ 0.38097945716106246
+ 0.38099034280242589
+ 0.38100122882425519
+ 0.38101211522657191
+ 0.38102300200939587
+ 0.38103388917274877
+ 0.38104477671665038
+ 0.3810556646411204
+ 0.38106655294618241
+ 0.38107744163185531
+ 0.38108833069815878
+ 0.38109922014511549
+ 0.38111010997274425
+ 0.3811210001810677
+ 0.38113189077010462
+ 0.3811427817398777
+ 0.38115367309040482
+ 0.38116456482170952
+ 0.38117545693381061
+ 0.3811863494267298
+ 0.38119724230048785
+ 0.38120813555510363
+ 0.38121902919060063
+ 0.38122992320699678
+ 0.38124081760431477
+ 0.38125171238257427
+ 0.38126260754179614
+ 0.38127350308200203
+ 0.38128439900321165
+ 0.38129529530544592
+ 0.38130619198872445
+ 0.38131708905307005
+ 0.38132798649850147
+ 0.38133888432504143
+ 0.38134978253270774
+ 0.38136068112152505
+ 0.38137158009151023
+ 0.381382479442686
+ 0.3813933791750731
+ 0.38140427928869225
+ 0.38141517978356326
+ 0.38142608065970701
+ 0.38143698191714503
+ 0.38144788355589726
+ 0.38145878557598534
+ 0.38146968797742919
+ 0.38148059076025037
+ 0.38149149392446791
+ 0.38150239747010434
+ 0.38151330139717871
+ 0.38152420570571344
+ 0.38153511039572857
+ 0.38154601546724476
+ 0.38155692092028282
+ 0.3815678267548635
+ 0.38157873297100769
+ 0.3815896395687351
+ 0.38160054654806841
+ 0.38161145390902662
+ 0.38162236165163127
+ 0.38163326977590328
+ 0.38164417828186253
+ 0.38165508716953056
+ 0.3816659964389284
+ 0.38167690609007565
+ 0.38168781612299429
+ 0.38169872653770492
+ 0.38170963733422653
+ 0.38172054851258275
+ 0.38173146007279152
+ 0.38174237201487549
+ 0.38175328433885553
+ 0.38176419704475051
+ 0.38177511013258408
+ 0.38178602360237418
+ 0.38179693745414356
+ 0.38180785168791193
+ 0.38181876630370032
+ 0.3818296813015285
+ 0.38184059668142001
+ 0.38185151244339294
+ 0.38186242858746994
+ 0.38187334511366994
+ 0.38188426202201564
+ 0.38189517931252598
+ 0.38190609698522365
+ 0.38191701504012859
+ 0.38192793347726051
+ 0.38193885229664137
+ 0.3819497714982919
+ 0.38196069108223279
+ 0.38197161104848509
+ 0.38198253139706956
+ 0.38199345212800689
+ 0.38200437324131714
+ 0.382015294737022
+ 0.38202621661514236
+ 0.3820371388756979
+ 0.38204806151871157
+ 0.38205898454420228
+ 0.38206990795219081
+ 0.38208083174269986
+ 0.3820917559157484
+ 0.38210268047135726
+ 0.38211360540954825
+ 0.38212453073034236
+ 0.38213545643375918
+ 0.38214638251982158
+ 0.38215730898854761
+ 0.38216823583996001
+ 0.38217916307407962
+ 0.38219009069092624
+ 0.38220101869052187
+ 0.38221194707288619
+ 0.38222287583804015
+ 0.38223380498600557
+ 0.3822447345168033
+ 0.38225566443045328
+ 0.38226659472697627
+ 0.38227752540639409
+ 0.38228845646872767
+ 0.38229938791399687
+ 0.38231031974222263
+ 0.3823212519534257
+ 0.38233218454762796
+ 0.38234311752485028
+ 0.38235405088511254
+ 0.38236498462843566
+ 0.38237591875484145
+ 0.38238685326434879
+ 0.3823977881569815
+ 0.38240872343275856
+ 0.38241965909170073
+ 0.38243059513382904
+ 0.38244153155916527
+ 0.38245246836773023
+ 0.38246340555954383
+ 0.38247434313462714
+ 0.38248528109300084
+ 0.38249621943468681
+ 0.3825071581597051
+ 0.38251809726807739
+ 0.38252903675982375
+ 0.38253997663496492
+ 0.38255091689352294
+ 0.38256185753551758
+ 0.38257279856097071
+ 0.38258373996990236
+ 0.3825946817623343
+ 0.38260562393828645
+ 0.38261656649777975
+ 0.38262750944083612
+ 0.38263845276747538
+ 0.38264939647771945
+ 0.38266034057158832
+ 0.38267128504910375
+ 0.38268222991028583
+ 0.38269317515515622
+ 0.38270412078373506
+ 0.38271506679604406
+ 0.38272601319210331
+ 0.38273695997193469
+ 0.38274790713555795
+ 0.38275885468299514
+ 0.38276980261426624
+ 0.38278075092939295
+ 0.38279169962839638
+ 0.38280264871129638
+ 0.38281359817811489
+ 0.38282454802887278
+ 0.38283549826358998
+ 0.38284644888228847
+ 0.38285739988498907
+ 0.38286835127171193
+ 0.38287930304247964
+ 0.38289025519731046
+ 0.3829012077362281
+ 0.38291216065925254
+ 0.38292311396640377
+ 0.38293406765770377
+ 0.38294502173317324
+ 0.38295597619283339
+ 0.38296693103670493
+ 0.382977886264808
+ 0.38298884187716542
+ 0.38299979787379707
+ 0.38301075425472403
+ 0.38302171101996718
+ 0.38303266816954651
+ 0.38304362570348488
+ 0.38305458362180228
+ 0.38306554192451975
+ 0.38307650061165804
+ 0.38308745968323832
+ 0.38309841913928228
+ 0.38310937897981018
+ 0.38312033920484267
+ 0.38313129981440103
+ 0.38314226080850694
+ 0.38315322218718051
+ 0.38316418395044261
+ 0.38317514609831621
+ 0.38318610863081937
+ 0.38319707154797494
+ 0.38320803484980298
+ 0.38321899853632541
+ 0.38322996260756315
+ 0.38324092706353624
+ 0.38325189190426656
+ 0.3832628571297742
+ 0.38327382274008109
+ 0.38328478873520822
+ 0.38329575511517644
+ 0.38330672188000586
+ 0.38331768902971941
+ 0.38332865656433607
+ 0.38333962448387782
+ 0.3833505927883657
+ 0.38336156147782147
+ 0.38337253055226439
+ 0.38338350001171734
+ 0.38339446985619929
+ 0.38340544008573318
+ 0.38341641070033911
+ 0.38342738170003798
+ 0.3834383530848518
+ 0.38344932485480065
+ 0.38346029700990536
+ 0.38347126955018807
+ 0.38348224247566964
+ 0.38349321578636925
+ 0.38350418948230974
+ 0.38351516356351312
+ 0.38352613802999747
+ 0.38353711288178677
+ 0.38354808811889995
+ 0.38355906374135912
+ 0.38357003974918519
+ 0.38358101614239831
+ 0.38359199292102125
+ 0.38360297008507432
+ 0.38361394763457823
+ 0.38362492556955419
+ 0.38363590389002317
+ 0.38364688259600616
+ 0.38365786168752519
+ 0.38366884116460026
+ 0.3836798210272524
+ 0.38369080127550365
+ 0.38370178190937398
+ 0.38371276292888545
+ 0.38372374433405815
+ 0.38373472612491394
+ 0.38374570830147398
+ 0.38375669086375824
+ 0.38376767381178972
+ 0.38377865714558757
+ 0.3837896408651737
+ 0.38380062497056922
+ 0.3838116094617951
+ 0.38382259433887245
+ 0.38383357960182318
+ 0.38384456525066646
+ 0.3838555512854262
+ 0.38386653770612061
+ 0.38387752451277157
+ 0.38388851170540217
+ 0.38389949928403061
+ 0.38391048724868054
+ 0.38392147559937145
+ 0.38393246433612516
+ 0.3839434534589618
+ 0.38395444296790426
+ 0.38396543286297175
+ 0.38397642314418629
+ 0.38398741381157081
+ 0.3839984048651427
+ 0.3840093963049247
+ 0.38402038813093986
+ 0.38403138034320644
+ 0.38404237294174737
+ 0.38405336592658273
+ 0.38406435929773458
+ 0.38407535305522306
+ 0.38408634719907103
+ 0.38409734172929777
+ 0.38410833664592436
+ 0.38411933194897369
+ 0.38413032763846588
+ 0.38414132371442111
+ 0.38415232017686324
+ 0.38416331702581064
+ 0.38417431426128523
+ 0.38418531188330901
+ 0.38419630989190223
+ 0.38420730828708677
+ 0.38421830706888283
+ 0.38422930623731255
+ 0.38424030579239588
+ 0.38425130573415595
+ 0.38426230606261186
+ 0.38427330677778571
+ 0.38428430787969947
+ 0.38429530936837247
+ 0.38430631124382764
+ 0.38431731350608495
+ 0.38432831615516577
+ 0.38433931919109199
+ 0.38435032261388385
+ 0.38436132642356424
+ 0.38437233062015241
+ 0.38438333520366952
+ 0.38439434017413748
+ 0.38440534553157857
+ 0.38441635127601276
+ 0.38442735740746026
+ 0.38443836392594405
+ 0.38444937083148434
+ 0.38446037812410322
+ 0.38447138580382073
+ 0.38448239387065913
+ 0.38449340232463841
+ 0.38450441116578066
+ 0.38451542039410713
+ 0.38452643000963876
+ 0.38453744001239587
+ 0.38454845040240143
+ 0.38455946117967649
+ 0.3845704723442413
+ 0.38458148389611702
+ 0.38459249583532468
+ 0.38460350816188643
+ 0.38461452087582337
+ 0.38462553397715576
+ 0.38463654746590653
+ 0.38464756134209488
+ 0.38465857560574401
+ 0.38466959025687297
+ 0.38468060529550502
+ 0.38469162072166102
+ 0.38470263653536046
+ 0.38471365273662622
+ 0.38472466932547955
+ 0.38473568630194155
+ 0.38474670366603236
+ 0.38475772141777509
+ 0.38476873955718993
+ 0.3847797580842971
+ 0.38479077699911962
+ 0.38480179630167766
+ 0.38481281599199441
+ 0.38482383607008802
+ 0.3848348565359816
+ 0.38484587738969628
+ 0.38485689863125333
+ 0.38486792026067279
+ 0.38487894227797786
+ 0.38488996468318876
+ 0.38490098747632751
+ 0.38491201065741337
+ 0.3849230342264704
+ 0.38493405818351789
+ 0.3849450825285769
+ 0.38495610726167073
+ 0.38496713238281943
+ 0.38497815789204315
+ 0.38498918378936514
+ 0.3850002100748055
+ 0.38501123674838644
+ 0.38502226381012811
+ 0.3850332912600527
+ 0.38504431909818049
+ 0.3850553473245335
+ 0.3850663759391339
+ 0.38507740494200093
+ 0.38508843433315776
+ 0.38509946411262463
+ 0.38511049428042365
+ 0.38512152483657497
+ 0.38513255578109995
+ 0.38514358711402158
+ 0.38515461883535917
+ 0.38516565094513577
+ 0.38517668344337075
+ 0.38518771633008719
+ 0.38519874960530626
+ 0.3852097832690472
+ 0.38522081732133423
+ 0.38523185176218655
+ 0.38524288659162631
+ 0.38525392180967483
+ 0.38526495741635403
+ 0.38527599341168334
+ 0.38528702979568596
+ 0.38529806656838206
+ 0.38530910372979382
+ 0.38532014127994241
+ 0.38533117921884913
+ 0.38534221754653508
+ 0.38535325626302158
+ 0.38536429536832983
+ 0.38537533486248193
+ 0.38538637474549731
+ 0.38539741501739994
+ 0.38540845567821019
+ 0.38541949672794829
+ 0.38543053816663636
+ 0.38544157999429662
+ 0.38545262221094939
+ 0.38546366481661581
+ 0.38547470781131815
+ 0.38548575119507766
+ 0.38549679496791545
+ 0.38550783912985193
+ 0.38551888368091014
+ 0.38552992862111041
+ 0.38554097395047399
+ 0.38555201966902214
+ 0.38556306577677796
+ 0.38557411227376076
+ 0.38558515915999281
+ 0.3855962064354963
+ 0.38560725410029056
+ 0.38561830215439863
+ 0.38562935059784104
+ 0.38564039943063882
+ 0.38565144865281525
+ 0.38566249826439059
+ 0.38567354826538608
+ 0.38568459865582205
+ 0.38569564943572171
+ 0.3857067006051062
+ 0.3857177521639969
+ 0.385728804112414
+ 0.38573985645037884
+ 0.3857509091779146
+ 0.38576196229504245
+ 0.38577301580178192
+ 0.38578406969815598
+ 0.38579512398418608
+ 0.38580617865989242
+ 0.38581723372529725
+ 0.38582828918042278
+ 0.38583934502528938
+ 0.38585040125991832
+ 0.38586145788433185
+ 0.38587251489855018
+ 0.38588357230259568
+ 0.38589463009648955
+ 0.38590568828025401
+ 0.38591674685390848
+ 0.3859278058174761
+ 0.38593886517097831
+ 0.38594992491443525
+ 0.38596098504786924
+ 0.38597204557130255
+ 0.38598310648475453
+ 0.38599416778824835
+ 0.38600522948180538
+ 0.38601629156544592
+ 0.38602735403919219
+ 0.38603841690306551
+ 0.38604948015708718
+ 0.38606054380127952
+ 0.3860716078356628
+ 0.38608267226025933
+ 0.38609373707508932
+ 0.38610480228017613
+ 0.38611586787553914
+ 0.3861269338612015
+ 0.38613800023718364
+ 0.38614906700350876
+ 0.38616013416019523
+ 0.38617120170726732
+ 0.38618226964474539
+ 0.38619333797265065
+ 0.38620440669100459
+ 0.38621547579982929
+ 0.38622654529914624
+ 0.38623761518897665
+ 0.38624868546934182
+ 0.38625975614026314
+ 0.38627082720176292
+ 0.38628189865386148
+ 0.38629297049658112
+ 0.38630404272994312
+ 0.3863151153539689
+ 0.38632618836867971
+ 0.38633726177409788
+ 0.38634833557024467
+ 0.38635940975714061
+ 0.38637048433480786
+ 0.38638155930326873
+ 0.3863926346625427
+ 0.38640371041265298
+ 0.38641478655362094
+ 0.38642586308546795
+ 0.38643694000821527
+ 0.38644801732188422
+ 0.38645909502649634
+ 0.38647017312207371
+ 0.38648125160863789
+ 0.38649233048620901
+ 0.38650340975481057
+ 0.38651448941446287
+ 0.38652556946518823
+ 0.38653664990700703
+ 0.3865477307399417
+ 0.38655881196401343
+ 0.38656989357924365
+ 0.38658097558565374
+ 0.38659205798326601
+ 0.38660314077210178
+ 0.38661422395218153
+ 0.38662530752352847
+ 0.38663639148616313
+ 0.38664747584010672
+ 0.38665856058538167
+ 0.38666964572200929
+ 0.38668073125001107
+ 0.38669181716940826
+ 0.38670290348022324
+ 0.38671399018247637
+ 0.38672507727619004
+ 0.38673616476138567
+ 0.38674725263808457
+ 0.38675834090630917
+ 0.38676942956607974
+ 0.3867805186174178
+ 0.38679160806034663
+ 0.38680269789488658
+ 0.38681378812105915
+ 0.3868248787388866
+ 0.38683596974838935
+ 0.38684706114958989
+ 0.38685815294250947
+ 0.38686924512717052
+ 0.38688033770359348
+ 0.38689143067179965
+ 0.38690252403181241
+ 0.38691361778365219
+ 0.38692471192734051
+ 0.3869358064628986
+ 0.38694690139034887
+ 0.38695799670971276
+ 0.38696909242101168
+ 0.38698018852426702
+ 0.3869912850195012
+ 0.38700238190673458
+ 0.38701347918598955
+ 0.38702457685728853
+ 0.38703567492065094
+ 0.38704677337610116
+ 0.38705787222365773
+ 0.3870689714633449
+ 0.38708007109518305
+ 0.38709117111919378
+ 0.38710227153539839
+ 0.38711337234381932
+ 0.38712447354447793
+ 0.38713557513739671
+ 0.38714667712259504
+ 0.38715777950009639
+ 0.38716888226992213
+ 0.38717998543209364
+ 0.3871910889866324
+ 0.38720219293356084
+ 0.38721329727289849
+ 0.38722440200466962
+ 0.38723550712889465
+ 0.38724661264559512
+ 0.38725771855479335
+ 0.38726882485650993
+ 0.38727993155076712
+ 0.38729103863758652
+ 0.38730214611698943
+ 0.38731325398899841
+ 0.38732436225363376
+ 0.38733547091091902
+ 0.38734657996087463
+ 0.38735768940352194
+ 0.38736879923888351
+ 0.38737990946697975
+ 0.3873910200878341
+ 0.3874021311014661
+ 0.38741324250789994
+ 0.38742435430715533
+ 0.38743546649925464
+ 0.38744657908421937
+ 0.38745769206207076
+ 0.38746880543283158
+ 0.38747991919652308
+ 0.38749103335316581
+ 0.3875021479027842
+ 0.38751326284539667
+ 0.38752437818102681
+ 0.38753549390969594
+ 0.38754661003142654
+ 0.38755772654623821
+ 0.38756884345415527
+ 0.38757996075519729
+ 0.38759107844938767
+ 0.38760219653674594
+ 0.38761331501729557
+ 0.38762443389105794
+ 0.3876355531580537
+ 0.38764667281830711
+ 0.38765779287183688
+ 0.38766891331866632
+ 0.38768003415881702
+ 0.38769115539231042
+ 0.38770227701916893
+ 0.3877133990394131
+ 0.38772452145306546
+ 0.38773564426014751
+ 0.38774676746068154
+ 0.38775789105468728
+ 0.38776901504218914
+ 0.3877801394232076
+ 0.38779126419776411
+ 0.3878023893658803
+ 0.38781351492757854
+ 0.38782464088288132
+ 0.38783576723180824
+ 0.38784689397438277
+ 0.38785802111062639
+ 0.3878691486405596
+ 0.38788027656420587
+ 0.3878914048815858
+ 0.38790253359272087
+ 0.3879136626976345
+ 0.38792479219634723
+ 0.38793592208888078
+ 0.38794705237525734
+ 0.38795818305549862
+ 0.3879693141296261
+ 0.38798044559766121
+ 0.38799157745962665
+ 0.38800270971554285
+ 0.38801384236543324
+ 0.38802497540931846
+ 0.38803610884722101
+ 0.38804724267916135
+ 0.38805837690516315
+ 0.38806951152524677
+ 0.3880806465394348
+ 0.38809178194774785
+ 0.38810291775020928
+ 0.38811405394683984
+ 0.38812519053766181
+ 0.388136327522696
+ 0.38814746490196478
+ 0.38815860267549163
+ 0.38816974084329531
+ 0.38818087940540008
+ 0.38819201836182571
+ 0.38820315771259573
+ 0.38821429745773156
+ 0.38822543759725375
+ 0.38823657813118595
+ 0.38824771905954875
+ 0.38825886038236451
+ 0.3882700020996549
+ 0.38828114421144144
+ 0.38829228671774568
+ 0.38830342961859127
+ 0.38831457291399663
+ 0.38832571660398735
+ 0.38833686068858209
+ 0.38834800516780532
+ 0.38835915004167759
+ 0.38837029531022044
+ 0.38838144097345562
+ 0.38839258703140644
+ 0.38840373348409263
+ 0.3884148803315377
+ 0.38842602757376232
+ 0.38843717521078985
+ 0.38844832324264006
+ 0.38845947166933642
+ 0.38847062049090059
+ 0.38848176970735299
+ 0.38849291931871738
+ 0.3885040693250143
+ 0.38851521972626718
+ 0.38852637052249572
+ 0.38853752171372258
+ 0.38854867329997023
+ 0.38855982528126021
+ 0.38857097765761334
+ 0.38858213042905387
+ 0.38859328359560169
+ 0.38860443715727921
+ 0.38861559111410804
+ 0.38862674546611087
+ 0.38863790021330824
+ 0.38864905535572369
+ 0.38866021089337788
+ 0.38867136682629244
+ 0.38868252315448992
+ 0.38869367987799291
+ 0.38870483699682201
+ 0.38871599451099992
+ 0.38872715242054712
+ 0.38873831072548726
+ 0.38874946942584193
+ 0.38876062852163179
+ 0.38877178801287943
+ 0.38878294789960849
+ 0.38879410818183752
+ 0.3888052688595911
+ 0.38881642993288901
+ 0.38882759140175577
+ 0.38883875326621092
+ 0.38884991552627718
+ 0.38886107818197713
+ 0.38887224123333242
+ 0.3888834046803637
+ 0.38889456852309445
+ 0.3889057327615455
+ 0.38891689739573937
+ 0.38892806242569766
+ 0.38893922785144214
+ 0.38895039367299616
+ 0.38896155989037967
+ 0.38897272650361608
+ 0.38898389351272616
+ 0.38899506091773256
+ 0.38900622871865675
+ 0.38901739691552156
+ 0.38902856550834847
+ 0.38903973449715828
+ 0.3890509038819745
+ 0.38906207366281781
+ 0.38907324383971098
+ 0.38908441441267644
+ 0.389095585381735
+ 0.38910675674690925
+ 0.38911792850822086
+ 0.38912910066569245
+ 0.38914027321934475
+ 0.38915144616920033
+ 0.38916261951528186
+ 0.38917379325761009
+ 0.3891849673962085
+ 0.38919614193109692
+ 0.38920731686229898
+ 0.38921849218983529
+ 0.38922966791372954
+ 0.38924084403400339
+ 0.38925202055067748
+ 0.38926319746377458
+ 0.38927437477331622
+ 0.38928555247932523
+ 0.38929673058182407
+ 0.38930790908083263
+ 0.38931908797637355
+ 0.38933026726847036
+ 0.38934144695714384
+ 0.38935262704241663
+ 0.38936380752430949
+ 0.38937498840284601
+ 0.38938616967804696
+ 0.38939735134993392
+ 0.38940853341853071
+ 0.38941971588385788
+ 0.38943089874593728
+ 0.38944208200479236
+ 0.38945326566044403
+ 0.38946444971291394
+ 0.38947563416222569
+ 0.38948681900839904
+ 0.3894980042514587
+ 0.3895091898914243
+ 0.38952037592831962
+ 0.38953156236216435
+ 0.38954274919298321
+ 0.38955393642079672
+ 0.38956512404562682
+ 0.38957631206749621
+ 0.38958750048642732
+ 0.38959868930244013
+ 0.38960987851555928
+ 0.38962106812580449
+ 0.38963225813319946
+ 0.38964344853776489
+ 0.38965463933952449
+ 0.38966583053849896
+ 0.38967702213471106
+ 0.3896882141281815
+ 0.38969940651893403
+ 0.38971059930699026
+ 0.3897217924923711
+ 0.3897329860751001
+ 0.38974418005519901
+ 0.38975537443268871
+ 0.38976656920759273
+ 0.38977776437993195
+ 0.3897889599497299
+ 0.38980015591700656
+ 0.38981135228178559
+ 0.38982254904408864
+ 0.38983374620393846
+ 0.38984494376135587
+ 0.38985614171636362
+ 0.38986734006898333
+ 0.38987853881923779
+ 0.38988973796714876
+ 0.38990093751273702
+ 0.38991213745602721
+ 0.38992333779703925
+ 0.38993453853579674
+ 0.38994573967232055
+ 0.38995694120663421
+ 0.38996814313875772
+ 0.38997934546871565
+ 0.38999054819652795
+ 0.39000175132221715
+ 0.39001295484580617
+ 0.39002415876731678
+ 0.39003536308677161
+ 0.39004656780419056
+ 0.39005777291959826
+ 0.39006897843301658
+ 0.39008018434446629
+ 0.39009139065397003
+ 0.39010259736154967
+ 0.39011380446722799
+ 0.39012501197102772
+ 0.39013621987296865
+ 0.39014742817307557
+ 0.39015863687136731
+ 0.39016984596786947
+ 0.39018105546260295
+ 0.39019226535558948
+ 0.39020347564685093
+ 0.39021468633641004
+ 0.39022589742428859
+ 0.39023710891050928
+ 0.39024832079509397
+ 0.39025953307806355
+ 0.39027074575944265
+ 0.39028195883925104
+ 0.39029317231751265
+ 0.39030438619424823
+ 0.39031560046948049
+ 0.39032681514323236
+ 0.3903380302155246
+ 0.39034924568637985
+ 0.3903604615558211
+ 0.39037167782387006
+ 0.39038289449054758
+ 0.39039411155587739
+ 0.39040532901988145
+ 0.39041654688258143
+ 0.39042776514400013
+ 0.39043898380415931
+ 0.39045020286308008
+ 0.39046142232078684
+ 0.39047264217729971
+ 0.39048386243264233
+ 0.39049508308683667
+ 0.39050630413990345
+ 0.39051752559186742
+ 0.39052874744274751
+ 0.39053996969256849
+ 0.39055119234135227
+ 0.39056241538911957
+ 0.39057363883589424
+ 0.39058486268169706
+ 0.39059608692655101
+ 0.39060731157047873
+ 0.39061853661350221
+ 0.3906297620556422
+ 0.39064098789692253
+ 0.39065221413736412
+ 0.39066344077699161
+ 0.39067466781582405
+ 0.3906858952538852
+ 0.39069712309119786
+ 0.39070835132778386
+ 0.39071957996366419
+ 0.39073080899886259
+ 0.39074203843340083
+ 0.39075326826730084
+ 0.39076449850058448
+ 0.39077572913327557
+ 0.39078696016539405
+ 0.39079819159696455
+ 0.39080942342800712
+ 0.39082065565854557
+ 0.39083188828860171
+ 0.39084312131819743
+ 0.39085435474735469
+ 0.39086558857609621
+ 0.39087682280444491
+ 0.39088805743242155
+ 0.39089929246004917
+ 0.39091052788735053
+ 0.39092176371434745
+ 0.3909329999410619
+ 0.3909442365675167
+ 0.39095547359373273
+ 0.39096671101973385
+ 0.39097794884554199
+ 0.39098918707117797
+ 0.39100042569666665
+ 0.39101166472202797
+ 0.39102290414728574
+ 0.39103414397246089
+ 0.39104538419757628
+ 0.39105662482265474
+ 0.3910678658477183
+ 0.39107910727278777
+ 0.39109034909788798
+ 0.3911015913230389
+ 0.39111283394826429
+ 0.3911240769735862
+ 0.39113532039902649
+ 0.39114656422460792
+ 0.39115780845035159
+ 0.39116905307628125
+ 0.39118029810241783
+ 0.39119154352878527
+ 0.39120278935540448
+ 0.39121403558229922
+ 0.39122528220948954
+ 0.39123652923700031
+ 0.39124777666485144
+ 0.39125902449306682
+ 0.39127027272166837
+ 0.3912815213506789
+ 0.39129277038011856
+ 0.391304019810012
+ 0.39131526964038127
+ 0.39132651987124828
+ 0.39133777050263496
+ 0.39134902153456319
+ 0.39136027296705689
+ 0.39137152480013698
+ 0.3913827770338274
+ 0.39139402966814812
+ 0.39140528270312391
+ 0.39141653613877492
+ 0.39142778997512484
+ 0.39143904421219577
+ 0.39145029885000959
+ 0.39146155388858928
+ 0.39147280932795758
+ 0.39148406516813566
+ 0.39149532140914539
+ 0.39150657805101158
+ 0.39151783509375437
+ 0.39152909253739648
+ 0.39154035038196106
+ 0.39155160862746996
+ 0.39156286727394607
+ 0.39157412632141042
+ 0.39158538576988688
+ 0.39159664561939656
+ 0.39160790586996319
+ 0.39161916652160689
+ 0.39163042757435251
+ 0.391641689028222
+ 0.39165295088323643
+ 0.39166421313941868
+ 0.39167547579679068
+ 0.39168673885537647
+ 0.3916980023151978
+ 0.39170926617627594
+ 0.39172053043863464
+ 0.39173179510229494
+ 0.39174306016727983
+ 0.39175432563361123
+ 0.39176559150131307
+ 0.39177685777040638
+ 0.39178812444091515
+ 0.39179939151285925
+ 0.39181065898626183
+ 0.39182192686114664
+ 0.39183319513753495
+ 0.39184446381545041
+ 0.39185573289491415
+ 0.39186700237594824
+ 0.39187827225857558
+ 0.3918895425428201
+ 0.39190081322870185
+ 0.39191208431624486
+ 0.39192335580547005
+ 0.39193462769640136
+ 0.39194589998906082
+ 0.39195717268347047
+ 0.39196844577965329
+ 0.39197971927763026
+ 0.39199099317742636
+ 0.39200226747906153
+ 0.39201354218255891
+ 0.39202481728794147
+ 0.39203609279523211
+ 0.39204736870445189
+ 0.39205864501562387
+ 0.39206992172877098
+ 0.39208119884391424
+ 0.39209247636107764
+ 0.39210375428028327
+ 0.39211503260155306
+ 0.39212631132490999
+ 0.39213759045037616
+ 0.39214886997797466
+ 0.39216014990772635
+ 0.39217143023965523
+ 0.39218271097378438
+ 0.39219399211013389
+ 0.3922052736487277
+ 0.39221655558958884
+ 0.39222783793273841
+ 0.39223912067819933
+ 0.39225040382599469
+ 0.39226168737614647
+ 0.39227297132867678
+ 0.39228425568360858
+ 0.39229554044096493
+ 0.39230682560076685
+ 0.39231811116303739
+ 0.39232939712779952
+ 0.39234068349507639
+ 0.39235197026488894
+ 0.3923632574372603
+ 0.39237454501221253
+ 0.39238583298976953
+ 0.39239712136995147
+ 0.39240841015278333
+ 0.39241969933828624
+ 0.39243098892648309
+ 0.39244227891739508
+ 0.39245356931104719
+ 0.39246486010745962
+ 0.39247615130665719
+ 0.39248744290866
+ 0.3924987349134923
+ 0.39251002732117501
+ 0.39252132013173213
+ 0.39253261334518585
+ 0.39254390696155816
+ 0.39255520098087215
+ 0.39256649540314986
+ 0.39257779022841344
+ 0.39258908545668686
+ 0.39260038108799217
+ 0.39261167712235057
+ 0.39262297355978598
+ 0.39263427040032056
+ 0.39264556764397746
+ 0.39265686529077753
+ 0.39266816334074511
+ 0.39267946179390112
+ 0.39269076065026964
+ 0.39270205990987184
+ 0.39271335957273179
+ 0.39272465963887143
+ 0.39273596010831202
+ 0.39274726098107859
+ 0.39275856225719119
+ 0.3927698639366739
+ 0.39278116601954893
+ 0.39279246850583827
+ 0.39280377139556605
+ 0.39281507468875337
+ 0.39282637838542328
+ 0.39283768248559792
+ 0.39284898698930037
+ 0.3928602918965528
+ 0.39287159720737819
+ 0.39288290292179973
+ 0.39289420903983852
+ 0.39290551556151765
+ 0.39291682248686116
+ 0.39292812981588932
+ 0.39293943754862615
+ 0.39295074568509364
+ 0.3929620542253151
+ 0.39297336316931164
+ 0.39298467251710822
+ 0.39299598226872506
+ 0.39300729242418636
+ 0.39301860298351404
+ 0.39302991394673131
+ 0.39304122531385932
+ 0.39305253708492227
+ 0.39306384925994209
+ 0.39307516183894115
+ 0.39308647482194131
+ 0.3930977882089679
+ 0.39310910200004195
+ 0.39312041619518473
+ 0.39313173079442115
+ 0.3931430457977716
+ 0.39315436120526193
+ 0.39316567701691058
+ 0.39317699323274347
+ 0.39318830985278186
+ 0.39319962687704885
+ 0.39321094430556658
+ 0.39322226213835815
+ 0.39323358037544581
+ 0.39324489901685161
+ 0.3932562180625998
+ 0.39326753751271243
+ 0.39327885736721169
+ 0.39329017762611979
+ 0.39330149828946082
+ 0.39331281935725687
+ 0.39332414082952932
+ 0.3933354627063031
+ 0.39334678498759845
+ 0.39335810767343959
+ 0.39336943076384961
+ 0.39338075425884877
+ 0.39339207815846206
+ 0.39340340246271183
+ 0.39341472717162013
+ 0.39342605228521016
+ 0.39343737780350413
+ 0.39344870372652424
+ 0.39346003005429447
+ 0.39347135678683631
+ 0.39348268392417268
+ 0.39349401146632684
+ 0.39350533941332094
+ 0.39351666776517824
+ 0.39352799652192089
+ 0.39353932568357203
+ 0.39355065525015381
+ 0.39356198522168961
+ 0.39357331559820052
+ 0.39358464637971152
+ 0.39359597756624409
+ 0.39360730915782038
+ 0.39361864115446443
+ 0.39362997355619755
+ 0.3936413063630439
+ 0.39365263957502472
+ 0.39366397319216417
+ 0.39367530721448341
+ 0.39368664164200678
+ 0.39369797647475629
+ 0.39370931171275431
+ 0.39372064735602302
+ 0.39373198340458659
+ 0.39374331985846817
+ 0.39375465671768806
+ 0.39376599398227041
+ 0.39377733165223849
+ 0.3937886697276145
+ 0.39380000820841976
+ 0.39381134709467919
+ 0.39382268638641527
+ 0.3938340260836492
+ 0.39384536618640509
+ 0.39385670669470524
+ 0.3938680476085728
+ 0.39387938892803009
+ 0.39389073065309937
+ 0.39390207278380468
+ 0.39391341532016744
+ 0.39392475826221074
+ 0.39393610160995796
+ 0.39394744536343124
+ 0.39395878952265379
+ 0.39397013408764792
+ 0.39398147905843683
+ 0.39399282443504374
+ 0.3940041702174899
+ 0.39401551640579868
+ 0.39402686299999407
+ 0.39403821000009748
+ 0.39404955740613223
+ 0.39406090521812137
+ 0.39407225343608632
+ 0.39408360206005127
+ 0.39409495109003845
+ 0.39410630052607104
+ 0.39411765036817148
+ 0.39412900061636186
+ 0.3941403512706666
+ 0.3941517023311078
+ 0.39416305379770783
+ 0.39417440567048884
+ 0.39418575794947619
+ 0.39419711063468915
+ 0.39420846372615392
+ 0.39421981722389182
+ 0.39423117112792511
+ 0.39424252543827604
+ 0.39425388015496993
+ 0.39426523527802698
+ 0.39427659080747246
+ 0.39428794674332768
+ 0.394299303085615
+ 0.39431065983435853
+ 0.39432201698957975
+ 0.39433337455130274
+ 0.39434473251954993
+ 0.39435609089434354
+ 0.3943674496757078
+ 0.39437880886366322
+ 0.39439016845823482
+ 0.39440152845944498
+ 0.39441288886731607
+ 0.39442424968187123
+ 0.39443561090313295
+ 0.39444697253112343
+ 0.39445833456586699
+ 0.39446969700738582
+ 0.39448105985570331
+ 0.39449242311084176
+ 0.39450378677282349
+ 0.39451515084167177
+ 0.3945265153174099
+ 0.3945378802000602
+ 0.39454924548964604
+ 0.39456061118619057
+ 0.39457197728971521
+ 0.39458334380024429
+ 0.39459471071780006
+ 0.39460607804240594
+ 0.39461744577408314
+ 0.39462881391285609
+ 0.39464018245874788
+ 0.3946515514117801
+ 0.3946629207719769
+ 0.39467429053936071
+ 0.39468566071395367
+ 0.39469703129577943
+ 0.39470840228486098
+ 0.39471977368122091
+ 0.39473114548488236
+ 0.39474251769586771
+ 0.39475389031420038
+ 0.39476526333990269
+ 0.3947766367729989
+ 0.39478801061351038
+ 0.39479938486146043
+ 0.3948107595168715
+ 0.39482213457976884
+ 0.39483351005017181
+ 0.39484488592810574
+ 0.39485626221359404
+ 0.39486763890665699
+ 0.39487901600731989
+ 0.39489039351560529
+ 0.39490177143153432
+ 0.39491314975513248
+ 0.39492452848642101
+ 0.39493590762542247
+ 0.39494728717216193
+ 0.39495866712665995
+ 0.39497004748894088
+ 0.39498142825902699
+ 0.39499280943694265
+ 0.39500419102270823
+ 0.39501557301634921
+ 0.3950269554178869
+ 0.39503833822734463
+ 0.39504972144474576
+ 0.39506110507011261
+ 0.3950724891034687
+ 0.39508387354483732
+ 0.39509525839423987
+ 0.39510664365170167
+ 0.39511802931724321
+ 0.39512941539088875
+ 0.39514080187266171
+ 0.39515218876258362
+ 0.39516357606067759
+ 0.39517496376696926
+ 0.39518635188147777
+ 0.39519774040422867
+ 0.39520912933524427
+ 0.39522051867454716
+ 0.39523190842216049
+ 0.39524329857810775
+ 0.39525468914241041
+ 0.39526608011509368
+ 0.39527747149617914
+ 0.39528886328569007
+ 0.39530025548364994
+ 0.39531164809008112
+ 0.39532304110500605
+ 0.39533443452844907
+ 0.39534582836043264
+ 0.39535722260097911
+ 0.39536861725011202
+ 0.39538001230785463
+ 0.39539140777423049
+ 0.39540280364926078
+ 0.39541419993297022
+ 0.39542559662538013
+ 0.3954369937265157
+ 0.39544839123639858
+ 0.3954597891550512
+ 0.39547118748249782
+ 0.39548258621876109
+ 0.39549398536386421
+ 0.39550538491782977
+ 0.39551678488068109
+ 0.39552818525244066
+ 0.39553958603313188
+ 0.39555098722277821
+ 0.39556238882140299
+ 0.39557379082902777
+ 0.39558519324567604
+ 0.39559659607137204
+ 0.39560799930613838
+ 0.39561940294999637
+ 0.39563080700297154
+ 0.39564221146508538
+ 0.3956536163363612
+ 0.39566502161682249
+ 0.39567642730649272
+ 0.39568783340539332
+ 0.39569923991354788
+ 0.39571064683098067
+ 0.39572205415771416
+ 0.3957334618937699
+ 0.39574487003917425
+ 0.39575627859394674
+ 0.39576768755811276
+ 0.39577909693169377
+ 0.39579050671471439
+ 0.3958019169071969
+ 0.39581332750916481
+ 0.39582473852064065
+ 0.39583614994164684
+ 0.39584756177220887
+ 0.3958589740123481
+ 0.39587038666208718
+ 0.39588179972144949
+ 0.39589321319045945
+ 0.39590462706913859
+ 0.39591604135751046
+ 0.39592745605559848
+ 0.39593887116342608
+ 0.39595028668101573
+ 0.39596170260839014
+ 0.39597311894557341
+ 0.3959845356925884
+ 0.39599595284945738
+ 0.39600737041620387
+ 0.39601878839285143
+ 0.39603020677942347
+ 0.39604162557594252
+ 0.39605304478243208
+ 0.39606446439891363
+ 0.39607588442541264
+ 0.39608730486195076
+ 0.39609872570855131
+ 0.39611014696523877
+ 0.39612156863203479
+ 0.39613299070896191
+ 0.39614441319604543
+ 0.39615583609330696
+ 0.39616725940077008
+ 0.39617868311845816
+ 0.39619010724639381
+ 0.3962015317845996
+ 0.39621295673310086
+ 0.39622438209191824
+ 0.39623580786107615
+ 0.39624723404059836
+ 0.39625866063050608
+ 0.39627008763082494
+ 0.39628151504157655
+ 0.39629294286278338
+ 0.39630437109447098
+ 0.39631579973665976
+ 0.39632722878937443
+ 0.39633865825263931
+ 0.39635008812647515
+ 0.39636151841090528
+ 0.39637294910595544
+ 0.39638438021164596
+ 0.39639581172800253
+ 0.39640724365504559
+ 0.39641867599280078
+ 0.39643010874128953
+ 0.39644154190053649
+ 0.39645297547056407
+ 0.39646440945139499
+ 0.39647584384305268
+ 0.39648727864556071
+ 0.39649871385894359
+ 0.39651014948322189
+ 0.39652158551842026
+ 0.39653302196456119
+ 0.39654445882166922
+ 0.39655589608976582
+ 0.39656733376887576
+ 0.39657877185902135
+ 0.39659021036022646
+ 0.3966016492725134
+ 0.39661308859590577
+ 0.39662452833042722
+ 0.39663596847610022
+ 0.39664740903294948
+ 0.39665885000099632
+ 0.39667029138026466
+ 0.39668173317077876
+ 0.39669317537256032
+ 0.39670461798563306
+ 0.39671606101002027
+ 0.39672750444574567
+ 0.39673894829283196
+ 0.39675039255130351
+ 0.39676183722118197
+ 0.39677328230249004
+ 0.3967847277952532
+ 0.39679617369949399
+ 0.39680762001523501
+ 0.39681906674250006
+ 0.39683051388131141
+ 0.39684196143169298
+ 0.39685340939366909
+ 0.39686485776726244
+ 0.39687630655249467
+ 0.39688775574939034
+ 0.39689920535797307
+ 0.39691065537826542
+ 0.39692210581029097
+ 0.39693355665407348
+ 0.39694500790963533
+ 0.39695645957700026
+ 0.39696791165619094
+ 0.39697936414723189
+ 0.39699081705014566
+ 0.39700227036495495
+ 0.3970137240916834
+ 0.39702517823035549
+ 0.39703663278099305
+ 0.39704808774362055
+ 0.39705954311825964
+ 0.39707099890493491
+ 0.39708245510367002
+ 0.39709391171448671
+ 0.39710536873741031
+ 0.39711682617246175
+ 0.39712828401966643
+ 0.39713974227904619
+ 0.3971512009506255
+ 0.39716266003442702
+ 0.39717411953047443
+ 0.39718557943879035
+ 0.39719703975939846
+ 0.39720850049232331
+ 0.39721996163758561
+ 0.39723142319521093
+ 0.39724288516522199
+ 0.39725434754764138
+ 0.39726581034249375
+ 0.39727727354980086
+ 0.39728873716958713
+ 0.39730020120187554
+ 0.3973116656466894
+ 0.39732313050405355
+ 0.39733459577398855
+ 0.39734606145652018
+ 0.39735752755167003
+ 0.39736899405946174
+ 0.39738046097991997
+ 0.39739192831306736
+ 0.39740339605892672
+ 0.39741486421752154
+ 0.39742633278887662
+ 0.39743780177301347
+ 0.39744927116995588
+ 0.39746074097972756
+ 0.39747221120235199
+ 0.3974836818378521
+ 0.39749515288625137
+ 0.39750662434757444
+ 0.39751809622184225
+ 0.39752956850908022
+ 0.39754104120931022
+ 0.39755251432255767
+ 0.39756398784884356
+ 0.39757546178819236
+ 0.3975869361406279
+ 0.39759841090617376
+ 0.39760988608485165
+ 0.39762136167668732
+ 0.39763283768170238
+ 0.39764431409992057
+ 0.3976557909313656
+ 0.39766726817606018
+ 0.3976787458340289
+ 0.39769022390529452
+ 0.3977017023898799
+ 0.39771318128780941
+ 0.39772466059910605
+ 0.39773614032379351
+ 0.39774762046189521
+ 0.39775910101343415
+ 0.39777058197843296
+ 0.39778206335691729
+ 0.3977935451489088
+ 0.39780502735443141
+ 0.39781650997350776
+ 0.39782799300616245
+ 0.39783947645241929
+ 0.39785096031230099
+ 0.39786244458583037
+ 0.39787392927303183
+ 0.39788541437392749
+ 0.39789689988854182
+ 0.39790838581689975
+ 0.39791987215902169
+ 0.3979313589149337
+ 0.39794284608465635
+ 0.39795433366821642
+ 0.3979658216656346
+ 0.3979773100769366
+ 0.39798879890214423
+ 0.39800028814128124
+ 0.3980117777943723
+ 0.39802326786143821
+ 0.39803475834250568
+ 0.39804624923759641
+ 0.39805774054673432
+ 0.3980692322699419
+ 0.39808072440724407
+ 0.39809221695866359
+ 0.39810370992422311
+ 0.39811520330394751
+ 0.39812669709786042
+ 0.39813819130598366
+ 0.39814968592834299
+ 0.39816118096495906
+ 0.39817267641585785
+ 0.3981841722810619
+ 0.39819566856059413
+ 0.39820716525447925
+ 0.39821866236273995
+ 0.39823015988540011
+ 0.3982416578224835
+ 0.3982531561740118
+ 0.39826465494001084
+ 0.39827615412050338
+ 0.39828765371551217
+ 0.39829915372506208
+ 0.39831065414917471
+ 0.39832215498787604
+ 0.39833365624118677
+ 0.39834515790913261
+ 0.39835665999173636
+ 0.39836816248902196
+ 0.39837966540101205
+ 0.39839116872773039
+ 0.39840267246920097
+ 0.39841417662544731
+ 0.39842568119649341
+ 0.39843718618236101
+ 0.39844869158307483
+ 0.39846019739865868
+ 0.39847170362913548
+ 0.39848321027452993
+ 0.39849471733486386
+ 0.39850622481016201
+ 0.39851773270044827
+ 0.39852924100574449
+ 0.39854074972607634
+ 0.39855225886146567
+ 0.39856376841193625
+ 0.39857527837751305
+ 0.39858678875821774
+ 0.39859829955407516
+ 0.39860981076510915
+ 0.39862132239134157
+ 0.39863283443279712
+ 0.39864434688950068
+ 0.39865585976147311
+ 0.39866737304873923
+ 0.39867888675132374
+ 0.39869040086924856
+ 0.39870191540253863
+ 0.39871343035121659
+ 0.39872494571530542
+ 0.39873646149483077
+ 0.39874797768981463
+ 0.39875949430027985
+ 0.39877101132625203
+ 0.39878252876775433
+ 0.39879404662480944
+ 0.39880556489744207
+ 0.39881708358567525
+ 0.39882860268953174
+ 0.39884012220903653
+ 0.3988516421442112
+ 0.3988631624950828
+ 0.39887468326167219
+ 0.39888620444400402
+ 0.39889772604210139
+ 0.39890924805598793
+ 0.39892077048568764
+ 0.39893229333122437
+ 0.3989438165926209
+ 0.39895534026990115
+ 0.39896686436308898
+ 0.39897838887220832
+ 0.39898991379728282
+ 0.39900143913833547
+ 0.39901296489539023
+ 0.39902449106847082
+ 0.39903601765760022
+ 0.39904754466280323
+ 0.39905907208410279
+ 0.39907059992152261
+ 0.39908212817508681
+ 0.39909365684481807
+ 0.3991051859307404
+ 0.39911671543287758
+ 0.39912824535125452
+ 0.39913977568589215
+ 0.39915130643681729
+ 0.39916283760405086
+ 0.39917436918761873
+ 0.39918590118754183
+ 0.39919743360384702
+ 0.39920896643655618
+ 0.39922049968569223
+ 0.39923203335128099
+ 0.39924356743334544
+ 0.39925510193190755
+ 0.39926663684699298
+ 0.39927817217862488
+ 0.399289707926827
+ 0.39930124409162226
+ 0.39931278067303566
+ 0.39932431767108895
+ 0.39933585508580821
+ 0.39934739291721627
+ 0.399358931165336
+ 0.39937046983019131
+ 0.3993820089118062
+ 0.39939354841020447
+ 0.39940508832541022
+ 0.3994166286574462
+ 0.39942816940633641
+ 0.3994397105721057
+ 0.39945125215477606
+ 0.39946279415437241
+ 0.39947433657091858
+ 0.39948587940443658
+ 0.39949742265495247
+ 0.39950896632248889
+ 0.39952051040706893
+ 0.39953205490871663
+ 0.39954359982745669
+ 0.3995551451633112
+ 0.39956669091630609
+ 0.39957823708646328
+ 0.3995897836738066
+ 0.39960133067836123
+ 0.39961287810014989
+ 0.39962442593919661
+ 0.39963597419552443
+ 0.39964752286915711
+ 0.39965907196011963
+ 0.39967062146843513
+ 0.39968217139412737
+ 0.3996937217372194
+ 0.39970527249773613
+ 0.39971682367570049
+ 0.39972837527113653
+ 0.39973992728406915
+ 0.39975147971451924
+ 0.39976303256251294
+ 0.39977458582807412
+ 0.39978613951122471
+ 0.39979769361199069
+ 0.39980924813039403
+ 0.39982080306645973
+ 0.39983235842021081
+ 0.39984391419167209
+ 0.39985547038086566
+ 0.39986702698781745
+ 0.3998785840125485
+ 0.39989014145508567
+ 0.39990169931545105
+ 0.39991325759366758
+ 0.39992481628976023
+ 0.39993637540375404
+ 0.39994793493566999
+ 0.39995949488553395
+ 0.39997105525337001
+ 0.39998261603920016
+ 0.39999417724304936
+ 0.40000573886494173
+ 0.40001730090489995
+ 0.40002886336294841
+ 0.40004042623911179
+ 0.40005198953341325
+ 0.40006355324587578
+ 0.4000751173765234
+ 0.40008668192538199
+ 0.40009824689247281
+ 0.40010981227782144
+ 0.40012137808145032
+ 0.40013294430338425
+ 0.40014451094364722
+ 0.40015607800226233
+ 0.40016764547925354
+ 0.4001792133746459
+ 0.40019078168846145
+ 0.40020235042072511
+ 0.40021391957146002
+ 0.40022548914069112
+ 0.40023705912844149
+ 0.40024862953473411
+ 0.40026020035959498
+ 0.40027177160304717
+ 0.40028334326511372
+ 0.40029491534581862
+ 0.40030648784518691
+ 0.40031806076324072
+ 0.40032963410000599
+ 0.4003412078555047
+ 0.40035278202976199
+ 0.4003643566228009
+ 0.40037593163464641
+ 0.40038750706532056
+ 0.40039908291484944
+ 0.40041065918325514
+ 0.40042223587056258
+ 0.40043381297679487
+ 0.40044539050197703
+ 0.40045696844613227
+ 0.40046854680928445
+ 0.40048012559145663
+ 0.40049170479267499
+ 0.40050328441296151
+ 0.40051486445234025
+ 0.40052644491083533
+ 0.40053802578847175
+ 0.40054960708527154
+ 0.4005611888012599
+ 0.40057277093646076
+ 0.40058435349089822
+ 0.40059593646459435
+ 0.40060751985757531
+ 0.40061910366986403
+ 0.40063068790148465
+ 0.40064227255246027
+ 0.40065385762281597
+ 0.40066544311257574
+ 0.40067702902176272
+ 0.40068861535040107
+ 0.40070020209851476
+ 0.40071178926612688
+ 0.40072337685326354
+ 0.40073496485994681
+ 0.40074655328620185
+ 0.40075814213205163
+ 0.40076973139752037
+ 0.40078132108263309
+ 0.40079291118741184
+ 0.40080450171188087
+ 0.40081609265606616
+ 0.40082768401998975
+ 0.40083927580367584
+ 0.40085086800714959
+ 0.4008624606304339
+ 0.40087405367355211
+ 0.40088564713652913
+ 0.40089724101939023
+ 0.40090883532215643
+ 0.40092043004485378
+ 0.40093202518750554
+ 0.40094362075013673
+ 0.4009552167327694
+ 0.40096681313542992
+ 0.40097840995814016
+ 0.4009900072009252
+ 0.40100160486380843
+ 0.40101320294681375
+ 0.40102480144996733
+ 0.40103640037328941
+ 0.40104799971680799
+ 0.40105959948054326
+ 0.40107119966452232
+ 0.40108280026876725
+ 0.40109440129330332
+ 0.40110600273815356
+ 0.40111760460334311
+ 0.4011292068888942
+ 0.40114080959483278
+ 0.40115241272118124
+ 0.40116401626796555
+ 0.40117562023520781
+ 0.40118722462293233
+ 0.40119882943116419
+ 0.40121043465992651
+ 0.40122204030924447
+ 0.40123364637914016
+ 0.40124525286963886
+ 0.40125685978076564
+ 0.4012684671125426
+ 0.40128007486499401
+ 0.40129168303814594
+ 0.40130329163201961
+ 0.4013149006466411
+ 0.40132651008203374
+ 0.40133811993822149
+ 0.40134973021522863
+ 0.40136134091307935
+ 0.40137295203179768
+ 0.401384563571407
+ 0.40139617553193235
+ 0.40140778791339687
+ 0.40141940071582488
+ 0.40143101393924141
+ 0.40144262758366872
+ 0.4014542416491329
+ 0.40146585613565727
+ 0.40147747104326492
+ 0.40148908637198105
+ 0.40150070212182887
+ 0.40151231829283451
+ 0.40152393488501914
+ 0.40153555189840912
+ 0.40154716933302748
+ 0.40155878718889743
+ 0.40157040546604628
+ 0.40158202416449407
+ 0.401593643284268
+ 0.40160526282539044
+ 0.40161688278788654
+ 0.40162850317177934
+ 0.4016401239770942
+ 0.40165174520385422
+ 0.4016633668520837
+ 0.40167498892180786
+ 0.40168661141304884
+ 0.40169823432583185
+ 0.40170985766018114
+ 0.40172148141612091
+ 0.40173310559367448
+ 0.40174473019286677
+ 0.40175635521372227
+ 0.40176798065626418
+ 0.40177960652051664
+ 0.40179123280650386
+ 0.40180285951425121
+ 0.40181448664378072
+ 0.40182611419511871
+ 0.40183774216828744
+ 0.40184937056331205
+ 0.40186099938021691
+ 0.40187262861902512
+ 0.40188425827976199
+ 0.40189588836245077
+ 0.40190751886711656
+ 0.40191914979378285
+ 0.40193078114247366
+ 0.40194241291321425
+ 0.401954045106027
+ 0.40196567772093705
+ 0.40197731075796966
+ 0.40198894421714715
+ 0.40200057809849471
+ 0.40201221240203555
+ 0.40202384712779499
+ 0.40203548227579622
+ 0.40204711784606467
+ 0.40205875383862438
+ 0.40207039025349772
+ 0.40208202709071095
+ 0.40209366435028721
+ 0.40210530203225103
+ 0.40211694013662636
+ 0.40212857866343776
+ 0.40214021761270929
+ 0.40215185698446432
+ 0.40216349677872903
+ 0.40217513699552482
+ 0.40218677763487881
+ 0.40219841869681344
+ 0.40221006018135291
+ 0.40222170208852248
+ 0.40223334441834541
+ 0.40224498717084706
+ 0.40225663034604975
+ 0.40226827394397963
+ 0.40227991796466001
+ 0.40229156240811426
+ 0.40230320727436969
+ 0.4023148525634464
+ 0.40232649827537187
+ 0.40233814441016835
+ 0.40234979096786111
+ 0.40236143794847451
+ 0.40237308535203076
+ 0.40238473317855711
+ 0.40239638142807604
+ 0.40240803010061282
+ 0.40241967919619065
+ 0.40243132871483384
+ 0.40244297865656775
+ 0.40245462902141477
+ 0.40246627980940103
+ 0.40247793102054991
+ 0.40248958265488588
+ 0.4025012347124331
+ 0.40251288719321582
+ 0.40252454009725747
+ 0.40253619342458435
+ 0.40254784717521885
+ 0.40255950134918617
+ 0.40257115594651072
+ 0.40258281096721676
+ 0.40259446641132768
+ 0.40260612227886883
+ 0.40261777856986342
+ 0.40262943528433687
+ 0.40264109242231155
+ 0.40265274998381467
+ 0.40266440796886871
+ 0.40267606637749687
+ 0.40268772520972668
+ 0.40269938446557924
+ 0.40271104414508102
+ 0.4027227042482554
+ 0.40273436477512675
+ 0.40274602572571827
+ 0.40275768710005738
+ 0.40276934889816446
+ 0.40278101112006787
+ 0.40279267376578798
+ 0.40280433683535199
+ 0.4028160003287834
+ 0.4028276642461055
+ 0.40283932858734378
+ 0.4028509933525225
+ 0.40286265854166503
+ 0.40287432415479668
+ 0.40288599019194188
+ 0.40289765665312505
+ 0.40290932353836845
+ 0.4029209908476995
+ 0.40293265858114052
+ 0.40294432673871705
+ 0.40295599532045123
+ 0.40296766432637066
+ 0.40297933375649753
+ 0.40299100361085627
+ 0.40300267388947242
+ 0.40301434459236912
+ 0.40302601571957097
+ 0.40303768727110212
+ 0.40304935924698815
+ 0.40306103164725243
+ 0.40307270447191929
+ 0.40308437772101313
+ 0.40309605139455934
+ 0.40310772549258139
+ 0.40311940001510349
+ 0.40313107496215028
+ 0.40314275033374503
+ 0.40315442612991509
+ 0.40316610235068195
+ 0.40317777899607105
+ 0.40318945606610768
+ 0.40320113356081427
+ 0.40321281148021632
+ 0.40322448982433917
+ 0.40323616859320521
+ 0.40324784778683986
+ 0.4032595274052676
+ 0.4032712074485128
+ 0.40328288791659994
+ 0.40329456880955333
+ 0.4033062501273974
+ 0.40331793187015674
+ 0.40332961403785544
+ 0.40334129663051738
+ 0.40335297964816857
+ 0.40336466309083163
+ 0.40337634695853197
+ 0.40338803125129408
+ 0.40339971596914131
+ 0.40341140111210005
+ 0.40342308668019389
+ 0.40343477267344613
+ 0.40344645909188231
+ 0.40345814593552681
+ 0.40346983320440405
+ 0.4034815208985385
+ 0.4034932090179536
+ 0.40350489756267582
+ 0.40351658653272765
+ 0.40352827592813445
+ 0.40353996574891976
+ 0.40355165599510984
+ 0.40356334666672838
+ 0.40357503776379877
+ 0.40358672928634742
+ 0.40359842123439676
+ 0.40361011360797233
+ 0.40362180640709761
+ 0.4036334996317989
+ 0.40364519328209986
+ 0.4036568873580238
+ 0.40366858185959731
+ 0.40368027678684287
+ 0.4036919721397858
+ 0.40370366791845175
+ 0.40371536412286302
+ 0.40372706075304521
+ 0.4037387578090228
+ 0.40375045529082026
+ 0.40376215319846104
+ 0.40377385153197248
+ 0.40378555029137631
+ 0.40379724947669798
+ 0.40380894908796183
+ 0.40382064912519344
+ 0.4038323495884153
+ 0.40384405047765293
+ 0.40385575179293171
+ 0.40386745353427422
+ 0.40387915570170801
+ 0.40389085829525445
+ 0.40390256131493907
+ 0.40391426476078651
+ 0.4039259686328221
+ 0.40393767293106941
+ 0.40394937765555389
+ 0.40396108280629817
+ 0.40397278838332962
+ 0.40398449438666989
+ 0.40399620081634535
+ 0.4040079076723796
+ 0.40401961495479816
+ 0.40403132266362451
+ 0.40404303079888315
+ 0.40405473936060071
+ 0.40406644834879951
+ 0.40407815776350431
+ 0.40408986760474036
+ 0.40410157787253248
+ 0.40411328856690404
+ 0.40412499968788046
+ 0.4041367112354865
+ 0.40414842320974659
+ 0.4041601356106852
+ 0.40417184843832593
+ 0.40418356169269437
+ 0.40419527537381594
+ 0.40420698948171324
+ 0.40421870401641175
+ 0.40423041897793616
+ 0.4042421343663119
+ 0.40425385018156157
+ 0.40426556642371153
+ 0.4042772830927856
+ 0.4042890001888082
+ 0.40430071771180487
+ 0.4043124356617982
+ 0.40432415403881478
+ 0.40433587284287897
+ 0.40434759207401461
+ 0.40435931173224704
+ 0.40437103181759992
+ 0.40438275233009885
+ 0.4043944732697673
+ 0.40440619463663091
+ 0.40441791643071412
+ 0.40442963865204068
+ 0.40444136130063696
+ 0.40445308437652572
+ 0.40446480787973343
+ 0.40447653181028281
+ 0.40448825616819911
+ 0.40449998095350825
+ 0.40451170616623267
+ 0.40452343180639883
+ 0.40453515787403055
+ 0.4045468843691522
+ 0.4045586112917896
+ 0.40457033864196612
+ 0.40458206641970745
+ 0.40459379462503714
+ 0.40460552325798077
+ 0.40461725231856199
+ 0.4046289818068064
+ 0.40464071172273852
+ 0.40465244206638301
+ 0.40466417283776446
+ 0.40467590403690651
+ 0.40468763566383564
+ 0.40469936771857562
+ 0.40471110020115081
+ 0.40472283311158608
+ 0.40473456644990596
+ 0.40474630021613595
+ 0.40475803441029884
+ 0.40476976903242201
+ 0.40478150408252839
+ 0.40479323956064328
+ 0.40480497546679045
+ 0.40481671180099549
+ 0.40482844856328309
+ 0.40484018575367786
+ 0.40485192337220433
+ 0.40486366141888613
+ 0.40487539989374999
+ 0.40488713879681953
+ 0.40489887812811926
+ 0.40491061788767496
+ 0.40492235807551014
+ 0.40493409869164954
+ 0.40494583973611858
+ 0.40495758120894221
+ 0.40496932311014389
+ 0.40498106543974932
+ 0.40499280819778311
+ 0.40500455138426988
+ 0.40501629499923436
+ 0.40502803904270107
+ 0.40503978351469477
+ 0.40505152841524006
+ 0.40506327374436263
+ 0.40507501950208513
+ 0.40508676568843516
+ 0.40509851230343535
+ 0.40511025934711148
+ 0.40512200681948818
+ 0.40513375472058905
+ 0.40514550305043978
+ 0.40515725180906509
+ 0.40516900099649056
+ 0.40518075061273895
+ 0.40519250065783674
+ 0.40520425113180791
+ 0.40521600203467778
+ 0.40522775336647038
+ 0.40523950512721107
+ 0.40525125731692363
+ 0.40526300993563485
+ 0.40527476298336734
+ 0.4052865164601468
+ 0.40529827036599886
+ 0.40531002470094624
+ 0.40532177946501557
+ 0.40533353465823069
+ 0.40534529028061711
+ 0.4053570463321986
+ 0.40536880281300086
+ 0.40538055972304859
+ 0.4053923170623655
+ 0.40540407483097823
+ 0.40541583302890943
+ 0.40542759165618597
+ 0.40543935071283144
+ 0.40545111019887059
+ 0.40546287011432902
+ 0.4054746304592306
+ 0.40548639123360103
+ 0.40549815243746484
+ 0.40550991407084686
+ 0.40552167613377177
+ 0.40553343862626434
+ 0.40554520154834922
+ 0.40555696490005116
+ 0.40556872868139593
+ 0.40558049289240722
+ 0.40559225753311062
+ 0.40560402260353107
+ 0.40561578810369209
+ 0.40562755403362061
+ 0.40563932039334022
+ 0.40565108718287568
+ 0.40566285440225175
+ 0.40567462205149313
+ 0.40568639013062657
+ 0.40569815863967484
+ 0.40570992757866259
+ 0.40572169694761656
+ 0.40573346674655975
+ 0.40574523697551851
+ 0.40575700763451583
+ 0.40576877872357942
+ 0.40578055024273102
+ 0.40579232219199834
+ 0.40580409457140415
+ 0.40581586738097414
+ 0.40582764062073323
+ 0.40583941429070608
+ 0.40585118839091738
+ 0.4058629629213919
+ 0.40587473788215561
+ 0.40588651327323305
+ 0.40589828909464803
+ 0.40591006534642637
+ 0.40592184202859277
+ 0.40593361914117204
+ 0.40594539668418994
+ 0.40595717465766928
+ 0.40596895306163672
+ 0.40598073189611711
+ 0.40599251116113522
+ 0.40600429085671486
+ 0.40601607098288178
+ 0.40602785153966175
+ 0.40603963252707859
+ 0.40605141394515698
+ 0.40606319579392292
+ 0.40607497807339987
+ 0.40608676078361389
+ 0.40609854392459072
+ 0.40611032749635312
+ 0.40612211149892691
+ 0.40613389593233773
+ 0.40614568079660962
+ 0.40615746609176817
+ 0.40616925181783831
+ 0.40618103797484384
+ 0.40619282456281142
+ 0.40620461158176502
+ 0.4062163990317294
+ 0.40622818691273038
+ 0.40623997522479166
+ 0.40625176396793916
+ 0.4062635531421977
+ 0.40627534274759203
+ 0.40628713278414691
+ 0.40629892325188832
+ 0.40631071415083997
+ 0.40632250548102772
+ 0.40633429724247538
+ 0.40634608943520978
+ 0.40635788205925372
+ 0.40636967511463407
+ 0.40638146860137464
+ 0.4063932625195012
+ 0.40640505686903761
+ 0.40641685165000974
+ 0.40642864686244351
+ 0.40644044250636152
+ 0.40645223858179075
+ 0.40646403508875512
+ 0.40647583202728033
+ 0.4064876293973913
+ 0.40649942719911275
+ 0.40651122543246865
+ 0.40652302409748592
+ 0.40653482319418915
+ 0.40654662272260256
+ 0.40655842268275055
+ 0.4065702230746604
+ 0.40658202389835568
+ 0.40659382515386133
+ 0.40660562684120222
+ 0.40661742896040426
+ 0.40662923151149222
+ 0.40664103449449007
+ 0.40665283790942452
+ 0.40666464175631856
+ 0.40667644603519898
+ 0.40668825074609077
+ 0.40670005588901864
+ 0.40671186146400667
+ 0.40672366747108046
+ 0.4067354739102661
+ 0.40674728078158739
+ 0.40675908808506922
+ 0.40677089582073844
+ 0.40678270398861793
+ 0.40679451258873367
+ 0.40680632162111141
+ 0.40681813108577419
+ 0.40682994098274977
+ 0.40684175131206107
+ 0.40685356207373402
+ 0.40686537326779448
+ 0.40687718489426633
+ 0.40688899695317443
+ 0.40690080944454488
+ 0.4069126223684022
+ 0.40692443572477072
+ 0.40693624951367713
+ 0.40694806373514625
+ 0.40695987838920217
+ 0.40697169347586964
+ 0.40698350899517566
+ 0.40699532494714419
+ 0.40700714133179999
+ 0.40701895814916916
+ 0.4070307753992754
+ 0.40704259308214474
+ 0.40705441119780211
+ 0.40706622974627338
+ 0.40707804872758258
+ 0.40708986814175457
+ 0.40710168798881624
+ 0.40711350826879045
+ 0.40712532898170339
+ 0.40713715012758067
+ 0.40714897170644637
+ 0.40716079371832642
+ 0.40717261616324685
+ 0.40718443904123042
+ 0.40719626235230416
+ 0.40720808609649201
+ 0.40721991027381893
+ 0.40723173488431175
+ 0.40724355992799449
+ 0.4072553854048932
+ 0.40726721131503063
+ 0.40727903765843482
+ 0.4072908644351298
+ 0.40730269164513944
+ 0.40731451928849061
+ 0.4073263473652084
+ 0.40733817587531568
+ 0.40735000481884048
+ 0.40736183419580768
+ 0.40737366400624042
+ 0.4073854942501654
+ 0.40739732492760877
+ 0.4074091560385924
+ 0.40742098758314432
+ 0.40743281956128846
+ 0.4074446519730518
+ 0.40745648481845642
+ 0.40746831809753009
+ 0.4074801518102969
+ 0.40749198595678188
+ 0.4075038205370109
+ 0.40751565555100894
+ 0.40752749099880109
+ 0.40753932688041222
+ 0.40755116319586737
+ 0.40756299994519357
+ 0.40757483712841375
+ 0.40758667474555382
+ 0.40759851279663994
+ 0.40761035128169604
+ 0.40762219020074808
+ 0.40763402955382105
+ 0.40764586934094005
+ 0.40765770956212988
+ 0.4076695502174178
+ 0.40768139130682657
+ 0.40769323283038233
+ 0.40770507478811008
+ 0.40771691718003583
+ 0.40772876000618452
+ 0.40774060326658124
+ 0.40775244696125096
+ 0.40776429109021861
+ 0.4077761356535104
+ 0.40778798065115124
+ 0.40779982608316606
+ 0.40781167194958007
+ 0.40782351825041907
+ 0.40783536498570833
+ 0.40784721215547171
+ 0.4078590597597363
+ 0.40787090779852708
+ 0.4078827562718681
+ 0.40789460517978537
+ 0.40790645452230406
+ 0.40791830429944903
+ 0.40793015451124742
+ 0.40794200515772217
+ 0.4079538562388994
+ 0.40796570775480517
+ 0.40797755970546351
+ 0.40798941209090034
+ 0.40800126491114086
+ 0.408013118166211
+ 0.4080249718561339
+ 0.40803682598093766
+ 0.40804868054064619
+ 0.4080605355352836
+ 0.40807239096487796
+ 0.40808424682945238
+ 0.40809610312903277
+ 0.40810795986364429
+ 0.40811981703331313
+ 0.40813167463806405
+ 0.4081435326779223
+ 0.40815539115291205
+ 0.40816725006306115
+ 0.40817910940839169
+ 0.408190969188932
+ 0.40820282940470587
+ 0.40821469005573846
+ 0.40822655114205691
+ 0.40823841266368421
+ 0.40825027462064645
+ 0.40826213701296982
+ 0.40827399984067825
+ 0.408285863103799
+ 0.40829772680235504
+ 0.40830959093637348
+ 0.40832145550587928
+ 0.40833332051089777
+ 0.40834518595145386
+ 0.40835705182757276
+ 0.40836891813928045
+ 0.40838078488660212
+ 0.40839265206956388
+ 0.4084045196881898
+ 0.40841638774250488
+ 0.40842825623253642
+ 0.40844012515830841
+ 0.40845199451984693
+ 0.40846386431717613
+ 0.40847573455032316
+ 0.4084876052193111
+ 0.408499476324168
+ 0.40851134786491711
+ 0.40852321984158535
+ 0.40853509225419604
+ 0.4085469651027771
+ 0.40855883838735291
+ 0.40857071210794743
+ 0.40858258626458877
+ 0.40859446085730006
+ 0.40860633588610756
+ 0.40861821135103615
+ 0.40863008725211131
+ 0.40864196358935984
+ 0.40865384036280594
+ 0.408665717572475
+ 0.40867759521839286
+ 0.4086894733005848
+ 0.40870135181907591
+ 0.40871323077389138
+ 0.4087251101650573
+ 0.40873698999259989
+ 0.40874887025654222
+ 0.4087607509569125
+ 0.40877263209373282
+ 0.40878451366703239
+ 0.40879639567683329
+ 0.40880827812316278
+ 0.4088201610060469
+ 0.4088320443255089
+ 0.40884392808157594
+ 0.40885581227427309
+ 0.40886769690362568
+ 0.40887958196965968
+ 0.40889146747239941
+ 0.40890335341187084
+ 0.40891523978810046
+ 0.40892712660111213
+ 0.40893901385093223
+ 0.40895090153758484
+ 0.40896278966109811
+ 0.40897467822149525
+ 0.40898656721880255
+ 0.40899845665304502
+ 0.40901034652424895
+ 0.40902223683244038
+ 0.40903412757764168
+ 0.40904601875988195
+ 0.40905791037918449
+ 0.40906980243557634
+ 0.4090816949290817
+ 0.40909358785972588
+ 0.40910548122753493
+ 0.4091173750325352
+ 0.40912926927475074
+ 0.40914116395420785
+ 0.40915305907093175
+ 0.40916495462494856
+ 0.40917685061628251
+ 0.40918874704495989
+ 0.4092006439110068
+ 0.40921254121444756
+ 0.40922443895530825
+ 0.40923633713361524
+ 0.40924823574939251
+ 0.40926013480266654
+ 0.40927203429346237
+ 0.40928393422180631
+ 0.40929583458772251
+ 0.40930773539123833
+ 0.40931963663237791
+ 0.40933153831116736
+ 0.40934344042763116
+ 0.40935534298179627
+ 0.40936724597368807
+ 0.40937914940333187
+ 0.4093910532707527
+ 0.409402957575976
+ 0.40941486231902779
+ 0.40942676749993456
+ 0.4094386731187204
+ 0.40945057917541156
+ 0.40946248567003329
+ 0.40947439260261193
+ 0.40948629997317154
+ 0.40949820778173951
+ 0.40951011602834009
+ 0.40952202471299842
+ 0.40953393383574199
+ 0.40954584339659478
+ 0.4095577533955842
+ 0.40956966383273247
+ 0.40958157470806889
+ 0.40959348602161666
+ 0.40960539777340216
+ 0.40961730996345047
+ 0.40962922259178808
+ 0.40964113565844007
+ 0.4096530491634317
+ 0.40966496310678946
+ 0.40967687748853848
+ 0.40968879230870497
+ 0.40970070756731236
+ 0.4097126232643889
+ 0.40972453939995868
+ 0.40973645597404817
+ 0.40974837298668265
+ 0.40976029043788725
+ 0.40977220832768757
+ 0.40978412665611058
+ 0.40979604542318065
+ 0.40980796462892322
+ 0.40981988427336546
+ 0.40983180435653055
+ 0.409843724878447
+ 0.40985564583913803
+ 0.40986756723863099
+ 0.4098794890769501
+ 0.40989141135412172
+ 0.40990333407017204
+ 0.40991525722512551
+ 0.40992718081900836
+ 0.40993910485184698
+ 0.40995102932366662
+ 0.40996295423449158
+ 0.40997487958434919
+ 0.40998680537326376
+ 0.4099987316012626
+ 0.41001065826837013
+ 0.41002258537461256
+ 0.41003451292001519
+ 0.41004644090460352
+ 0.41005836932840362
+ 0.41007029819144103
+ 0.41008222749374296
+ 0.41009415723533282
+ 0.41010608741623583
+ 0.41011801803648046
+ 0.41012994909609007
+ 0.41014188059509182
+ 0.41015381253351019
+ 0.41016574491137137
+ 0.41017767772870195
+ 0.41018961098552603
+ 0.41020154468187114
+ 0.41021347881776155
+ 0.4102254133932226
+ 0.41023734840828163
+ 0.410249283862963
+ 0.41026121975729313
+ 0.41027315609129827
+ 0.41028509286500281
+ 0.41029703007843316
+ 0.41030896773161363
+ 0.4103209058245727
+ 0.41033284435733453
+ 0.41034478332992463
+ 0.4103567227423694
+ 0.41036866259469407
+ 0.41038060288692502
+ 0.41039254361908678
+ 0.41040448479120661
+ 0.41041642640330883
+ 0.41042836845542002
+ 0.41044031094756633
+ 0.41045225387977224
+ 0.41046419725206418
+ 0.41047614106446756
+ 0.41048808531700953
+ 0.41050003000971469
+ 0.4105119751426084
+ 0.41052392071571808
+ 0.410535866729067
+ 0.41054781318268263
+ 0.41055976007659045
+ 0.41057170741081661
+ 0.41058365518538681
+ 0.41059560340032525
+ 0.41060755205565941
+ 0.4106195011514156
+ 0.41063145068761742
+ 0.41064340066429206
+ 0.41065535108146606
+ 0.41066730193916384
+ 0.41067925323741067
+ 0.41069120497623407
+ 0.41070315715565953
+ 0.41071510977571224
+ 0.41072706283641791
+ 0.4107390163378028
+ 0.41075097027989221
+ 0.4107629246627118
+ 0.41077487948628794
+ 0.41078683475064792
+ 0.41079879045581419
+ 0.41081074660181532
+ 0.41082270318867475
+ 0.41083466021642179
+ 0.41084661768507891
+ 0.41085857559467354
+ 0.4108705339452311
+ 0.41088249273677807
+ 0.41089445196933894
+ 0.41090641164294106
+ 0.41091837175760987
+ 0.41093033231336989
+ 0.41094229331024856
+ 0.41095425474827141
+ 0.41096621662746363
+ 0.41097817894785083
+ 0.41099014170946052
+ 0.41100210491231709
+ 0.41101406855644712
+ 0.41102603264187576
+ 0.41103799716862977
+ 0.41104996213673461
+ 0.41106192754621551
+ 0.41107389339710015
+ 0.41108585968941286
+ 0.41109782642317927
+ 0.41110979359842575
+ 0.41112176121517868
+ 0.4111337292734637
+ 0.41114569777330628
+ 0.41115766671473281
+ 0.41116963609776869
+ 0.41118160592243963
+ 0.41119357618877295
+ 0.41120554689679217
+ 0.41121751804652584
+ 0.41122948963799733
+ 0.41124146167123526
+ 0.41125343414626292
+ 0.4112654070631081
+ 0.41127738042179601
+ 0.4112893542223523
+ 0.4113013284648035
+ 0.41131330314917397
+ 0.41132527827549137
+ 0.411337253843782
+ 0.41134922985406958
+ 0.41136120630638151
+ 0.41137318320074429
+ 0.41138516053718244
+ 0.4113971383157225
+ 0.41140911653639095
+ 0.41142109519921233
+ 0.41143307430421416
+ 0.41144505385142188
+ 0.41145703384086013
+ 0.41146901427255739
+ 0.41148099514653708
+ 0.41149297646282684
+ 0.41150495822145122
+ 0.41151694042243758
+ 0.41152892306581174
+ 0.411540906151599
+ 0.41155288967982584
+ 0.41156487365051703
+ 0.41157685806369987
+ 0.41158884291940007
+ 0.4116008282176431
+ 0.41161281395845545
+ 0.41162480014186281
+ 0.41163678676789156
+ 0.41164877383656734
+ 0.41166076134791568
+ 0.41167274930196324
+ 0.41168473769873626
+ 0.41169672653825967
+ 0.41170871582056073
+ 0.4117207055456652
+ 0.41173269571359744
+ 0.41174468632438521
+ 0.41175667737805499
+ 0.41176866887463026
+ 0.41178066081413972
+ 0.41179265319660785
+ 0.41180464602206129
+ 0.41181663929052453
+ 0.4118286330020261
+ 0.4118406271565907
+ 0.41185262175424392
+ 0.41186461679501324
+ 0.41187661227892325
+ 0.41188860820600054
+ 0.41190060457627065
+ 0.41191260138976027
+ 0.41192459864649494
+ 0.41193659634650115
+ 0.41194859448980564
+ 0.4119605930764329
+ 0.41197259210640952
+ 0.41198459157976119
+ 0.41199659149651541
+ 0.41200859185669675
+ 0.41202059266033192
+ 0.41203259390744745
+ 0.41204459559806794
+ 0.41205659773222003
+ 0.41206860030993125
+ 0.41208060333122531
+ 0.41209260679613074
+ 0.41210461070467119
+ 0.41211661505687419
+ 0.4121286198527655
+ 0.41214062509237165
+ 0.41215263077571718
+ 0.41216463690282978
+ 0.41217664347373517
+ 0.41218865048845887
+ 0.41220065794702843
+ 0.41221266584946764
+ 0.412224674195804
+ 0.4122366829860642
+ 0.41224869222027277
+ 0.41226070189845754
+ 0.41227271202064297
+ 0.41228472258685567
+ 0.41229673359712243
+ 0.41230874505146881
+ 0.41232075694992149
+ 0.41233276929250501
+ 0.41234478207924813
+ 0.41235679531017444
+ 0.41236880898531159
+ 0.41238082310468421
+ 0.41239283766831997
+ 0.41240485267624444
+ 0.41241686812848349
+ 0.41242888402506356
+ 0.41244090036601144
+ 0.41245291715135163
+ 0.41246493438111193
+ 0.41247695205531698
+ 0.41248897017399344
+ 0.41250098873716889
+ 0.41251300774486821
+ 0.41252502719711681
+ 0.41253704709394151
+ 0.41254906743536995
+ 0.41256108822142579
+ 0.41257310945213665
+ 0.41258513112752843
+ 0.41259715324762758
+ 0.41260917581245982
+ 0.41262119882205195
+ 0.4126332222764294
+ 0.41264524617561815
+ 0.41265727051964579
+ 0.41266929530853685
+ 0.41268132054231821
+ 0.4126933462210165
+ 0.41270537234465643
+ 0.41271739891326664
+ 0.41272942592687095
+ 0.41274145338549689
+ 0.41275348128917028
+ 0.41276550963791775
+ 0.41277753843176512
+ 0.41278956767073793
+ 0.41280159735486299
+ 0.41281362748416706
+ 0.41282565805867572
+ 0.41283768907841573
+ 0.41284972054341179
+ 0.41286175245369172
+ 0.41287378480928116
+ 0.41288581761020682
+ 0.41289785085649433
+ 0.41290988454816957
+ 0.41292191868526024
+ 0.41293395326779098
+ 0.41294598829578966
+ 0.41295802376928087
+ 0.41297005968829031
+ 0.41298209605284686
+ 0.41299413286297521
+ 0.41300617011870205
+ 0.41301820782005216
+ 0.41303024596705412
+ 0.41304228455973296
+ 0.41305432359811423
+ 0.41306636308222466
+ 0.41307840301209209
+ 0.4130904433877402
+ 0.41310248420919682
+ 0.41311452547648869
+ 0.41312656718964141
+ 0.41313860934868091
+ 0.41315065195363276
+ 0.41316269500452502
+ 0.41317473850138314
+ 0.41318678244423401
+ 0.41319882683310244
+ 0.41321087166801618
+ 0.41322291694900093
+ 0.41323496267608245
+ 0.41324700884928856
+ 0.413259055468644
+ 0.41327110253417559
+ 0.4132831500459101
+ 0.41329519800387327
+ 0.41330724640809086
+ 0.41331929525859074
+ 0.41333134455539861
+ 0.41334339429853922
+ 0.41335544448804151
+ 0.41336749512393012
+ 0.4133795462062318
+ 0.41339159773497253
+ 0.41340364971017995
+ 0.413415702131878
+ 0.41342775500009532
+ 0.41343980831485666
+ 0.413451862076189
+ 0.41346391628411905
+ 0.41347597093867267
+ 0.4134880260398765
+ 0.41350008158775658
+ 0.41351213758233957
+ 0.4135241940236512
+ 0.41353625091171758
+ 0.41354830824656713
+ 0.41356036602822399
+ 0.41357242425671575
+ 0.4135844829320684
+ 0.41359654205430768
+ 0.41360860162346141
+ 0.41362066163955441
+ 0.41363272210261348
+ 0.41364478301266544
+ 0.41365684436973721
+ 0.4136689061738536
+ 0.41368096842504237
+ 0.41369303112332828
+ 0.41370509426873936
+ 0.41371715786130236
+ 0.41372922190104211
+ 0.41374128638798535
+ 0.41375335132215918
+ 0.41376541670358924
+ 0.41377748253230229
+ 0.41378954880832441
+ 0.41380161553168238
+ 0.41381368270240287
+ 0.41382575032051094
+ 0.41383781838603545
+ 0.41384988689900015
+ 0.41386195585943381
+ 0.4138740252673605
+ 0.41388609512280899
+ 0.41389816542580404
+ 0.41391023617637163
+ 0.41392230737454061
+ 0.41393437902033492
+ 0.41394645111378325
+ 0.4139585236549097
+ 0.41397059664374186
+ 0.41398267008030676
+ 0.41399474396462932
+ 0.4140068182967373
+ 0.41401889307665668
+ 0.41403096830441433
+ 0.414043043980036
+ 0.41405512010354878
+ 0.41406719667497838
+ 0.41407927369435177
+ 0.41409135116169576
+ 0.4141034290770354
+ 0.41411550744039949
+ 0.41412758625181184
+ 0.41413966551130055
+ 0.41415174521889231
+ 0.41416382537461205
+ 0.41417590597848775
+ 0.41418798703054632
+ 0.41420006853081265
+ 0.41421215047931365
+ 0.41422423287607613
+ 0.41423631572112701
+ 0.4142483990144914
+ 0.41426048275619698
+ 0.41427256694627074
+ 0.41428465158473771
+ 0.41429673667162464
+ 0.41430882220695858
+ 0.41432090819076622
+ 0.41433299462307382
+ 0.41434508150390814
+ 0.41435716883329499
+ 0.41436925661126051
+ 0.41438134483783251
+ 0.41439343351303787
+ 0.41440552263690067
+ 0.41441761220945078
+ 0.41442970223071202
+ 0.41444179270071158
+ 0.41445388361947721
+ 0.41446597498703286
+ 0.41447806680340854
+ 0.41449015906862813
+ 0.41450225178271866
+ 0.41451434494570694
+ 0.41452643855762011
+ 0.414538532618484
+ 0.41455062712832552
+ 0.41456272208717071
+ 0.41457481749504654
+ 0.41458691335197995
+ 0.41459900965799679
+ 0.41461110641312321
+ 0.41462320361738703
+ 0.41463530127081538
+ 0.41464739937343198
+ 0.41465949792526602
+ 0.41467159692634237
+ 0.41468369637668895
+ 0.41469579627633285
+ 0.41470789662529806
+ 0.41471999742361337
+ 0.41473209867130495
+ 0.41474420036839871
+ 0.41475630251492163
+ 0.41476840511090068
+ 0.41478050815636192
+ 0.4147926116513323
+ 0.4148047155958387
+ 0.41481681998990727
+ 0.41482892483356393
+ 0.41484103012683571
+ 0.41485313586975053
+ 0.41486524206233444
+ 0.41487734870461251
+ 0.41488945579661263
+ 0.41490156333836187
+ 0.4149136713298861
+ 0.41492577977121259
+ 0.41493788866236719
+ 0.41494999800337579
+ 0.41496210779426657
+ 0.41497421803506657
+ 0.41498632872580066
+ 0.41499843986649698
+ 0.41501055145718047
+ 0.41502266349787914
+ 0.41503477598862015
+ 0.41504688892942937
+ 0.41505900232033199
+ 0.41507111616135783
+ 0.41508323045253104
+ 0.41509534519387864
+ 0.41510746038542756
+ 0.41511957602720606
+ 0.415131692119238
+ 0.41514380866155254
+ 0.41515592565417447
+ 0.41516804309713118
+ 0.41518016099044946
+ 0.41519227933415542
+ 0.41520439812827709
+ 0.41521651737284065
+ 0.415228637067872
+ 0.41524075721339726
+ 0.41525287780944542
+ 0.41526499885604157
+ 0.41527712035321285
+ 0.41528924230098513
+ 0.41530136469938667
+ 0.41531348754844244
+ 0.41532561084818048
+ 0.41533773459862788
+ 0.41534985879980973
+ 0.41536198345175307
+ 0.41537410855448598
+ 0.41538623410803355
+ 0.41539836011242387
+ 0.41541048656768198
+ 0.4154226134738368
+ 0.41543474083091375
+ 0.41544686863893865
+ 0.41545899689794069
+ 0.41547112560794497
+ 0.41548325476897752
+ 0.41549538438106637
+ 0.41550751444423878
+ 0.41551964495851967
+ 0.41553177592393725
+ 0.41554390734051755
+ 0.41555603920828765
+ 0.41556817152727488
+ 0.41558030429750392
+ 0.41559243751900421
+ 0.41560457119180066
+ 0.41561670531592054
+ 0.41562883989139082
+ 0.41564097491823776
+ 0.41565311039648928
+ 0.41566524632617163
+ 0.41567738270730986
+ 0.41568951953993311
+ 0.41570165682406757
+ 0.41571379455973917
+ 0.41572593274697517
+ 0.41573807138580371
+ 0.41575021047624883
+ 0.41576235001833978
+ 0.41577449001210148
+ 0.41578663045756231
+ 0.41579877135474819
+ 0.41581091270368631
+ 0.41582305450440288
+ 0.41583519675692598
+ 0.41584733946128083
+ 0.41585948261749545
+ 0.41587162622559504
+ 0.41588377028560969
+ 0.41589591479756266
+ 0.41590805976148199
+ 0.41592020517739492
+ 0.41593235104532839
+ 0.41594449736530886
+ 0.41595664413736327
+ 0.41596879136151887
+ 0.41598093903780187
+ 0.41599308716623817
+ 0.41600523574685716
+ 0.41601738477968297
+ 0.4160295342647447
+ 0.41604168420206761
+ 0.41605383459167983
+ 0.41606598543360751
+ 0.4160781367278768
+ 0.41609028847451596
+ 0.41610244067354996
+ 0.41611459332500927
+ 0.41612674642891689
+ 0.41613889998530101
+ 0.41615105399418889
+ 0.4161632084556075
+ 0.41617536336958333
+ 0.4161875187361434
+ 0.41619967455531387
+ 0.41621183082712304
+ 0.4162239875515969
+ 0.41623614472876191
+ 0.41624830235864607
+ 0.41626046044127574
+ 0.41627261897667794
+ 0.416284777964879
+ 0.41629693740590606
+ 0.41630909729978738
+ 0.41632125764654815
+ 0.41633341844621552
+ 0.41634557969881675
+ 0.41635774140437898
+ 0.41636990356292858
+ 0.41638206617449353
+ 0.4163942292390993
+ 0.41640639275677299
+ 0.41641855672754285
+ 0.41643072115143498
+ 0.41644288602847579
+ 0.41645505135869337
+ 0.41646721714211399
+ 0.41647938337876389
+ 0.41649155006867133
+ 0.41650371721186241
+ 0.41651588480836454
+ 0.41652805285820482
+ 0.41654022136140961
+ 0.41655239031800606
+ 0.41656455972802037
+ 0.41657672959148095
+ 0.41658889990841391
+ 0.4166010706788475
+ 0.41661324190280596
+ 0.41662541358031863
+ 0.41663758571141168
+ 0.41664975829611245
+ 0.41666193133444707
+ 0.4166741048264429
+ 0.41668627877212716
+ 0.41669845317152709
+ 0.41671062802467002
+ 0.41672280333158107
+ 0.41673497909228868
+ 0.41674715530681905
+ 0.41675933197520043
+ 0.41677150909745919
+ 0.41678368667362231
+ 0.41679586470371544
+ 0.4168080431877676
+ 0.41682022212580511
+ 0.41683240151785539
+ 0.41684458136394364
+ 0.41685676166409907
+ 0.4168689424183481
+ 0.41688112362671781
+ 0.4168933052892338
+ 0.41690548740592404
+ 0.41691766997681601
+ 0.41692985300193691
+ 0.41694203648131306
+ 0.41695422041497088
+ 0.41696640480293956
+ 0.41697858964524431
+ 0.41699077494191261
+ 0.41700296069297171
+ 0.41701514689844776
+ 0.41702733355836935
+ 0.41703952067276151
+ 0.41705170824165477
+ 0.41706389626507234
+ 0.41707608474304353
+ 0.4170882736755937
+ 0.41710046306275211
+ 0.41711265290454419
+ 0.41712484320099708
+ 0.41713703395213925
+ 0.41714922515799596
+ 0.41716141681859564
+ 0.41717360893396449
+ 0.41718580150412993
+ 0.41719799452911921
+ 0.41721018800895976
+ 0.41722238194367778
+ 0.4172345763333008
+ 0.41724677117785497
+ 0.41725896647736982
+ 0.41727116223186944
+ 0.41728335844138337
+ 0.41729555510593802
+ 0.41730775222555949
+ 0.41731994980027537
+ 0.41733214783011385
+ 0.41734434631510031
+ 0.41735654525526311
+ 0.41736874465062984
+ 0.41738094450122548
+ 0.41739314480707962
+ 0.41740534556821751
+ 0.41741754678466764
+ 0.41742974845645525
+ 0.41744195058360983
+ 0.41745415316615664
+ 0.4174663562041242
+ 0.41747855969753866
+ 0.41749076364642762
+ 0.41750296805081827
+ 0.41751517291073709
+ 0.41752737822621244
+ 0.4175395839972707
+ 0.41755179022393929
+ 0.41756399690624452
+ 0.41757620404421486
+ 0.41758841163787663
+ 0.41760061968725731
+ 0.41761282819238416
+ 0.4176250371532837
+ 0.41763724656998319
+ 0.41764945644251122
+ 0.417661666770893
+ 0.417673877555157
+ 0.41768608879532965
+ 0.41769830049143936
+ 0.41771051264351156
+ 0.41772272525157461
+ 0.41773493831565583
+ 0.41774715183578182
+ 0.41775936581197992
+ 0.41777158024427641
+ 0.41778379513270086
+ 0.41779601047727877
+ 0.41780822627803732
+ 0.41782044253500517
+ 0.41783265924820756
+ 0.41784487641767193
+ 0.41785709404342691
+ 0.4178693121254986
+ 0.41788153066391476
+ 0.41789374965870163
+ 0.41790596910988875
+ 0.4179181890175005
+ 0.41793040938156623
+ 0.41794263020211148
+ 0.41795485147916583
+ 0.4179670732127535
+ 0.41797929540290496
+ 0.41799151804964479
+ 0.41800374115300026
+ 0.41801596471300106
+ 0.4180281887296724
+ 0.41804041320304186
+ 0.41805263813313787
+ 0.41806486351998595
+ 0.41807708936361443
+ 0.41808931566405089
+ 0.4181015424213218
+ 0.41811376963545349
+ 0.41812599730647554
+ 0.41813822543441337
+ 0.41815045401929551
+ 0.41816268306114945
+ 0.4181749125600005
+ 0.4181871425158773
+ 0.41819937292880727
+ 0.41821160379881789
+ 0.41822383512593464
+ 0.418236066910187
+ 0.4182482991516015
+ 0.41826053185020551
+ 0.41827276500602562
+ 0.4182849986190903
+ 0.41829723268942615
+ 0.41830946721706042
+ 0.41832170220202081
+ 0.41833393764433374
+ 0.41834617354402764
+ 0.4183584099011291
+ 0.41837064671566676
+ 0.41838288398766588
+ 0.41839512171715498
+ 0.41840735990416178
+ 0.41841959854871252
+ 0.41843183765083497
+ 0.41844407721055643
+ 0.41845631722790461
+ 0.41846855770290675
+ 0.41848079863559073
+ 0.41849304002598187
+ 0.41850528187410962
+ 0.41851752418000066
+ 0.41852976694368244
+ 0.41854201016518144
+ 0.41855425384452632
+ 0.41856649798174345
+ 0.41857874257686045
+ 0.41859098762990488
+ 0.41860323314090431
+ 0.41861547910988617
+ 0.41862772553687705
+ 0.41863997242190448
+ 0.41865221976499706
+ 0.41866446756618131
+ 0.41867671582548371
+ 0.41868896454293281
+ 0.41870121371855529
+ 0.41871346335237963
+ 0.41872571344443232
+ 0.41873796399474089
+ 0.41875021500333315
+ 0.41876246647023541
+ 0.41877471839547631
+ 0.41878697077908245
+ 0.41879922362108229
+ 0.41881147692150145
+ 0.41882373068036965
+ 0.41883598489771229
+ 0.41884823957355799
+ 0.41886049470793324
+ 0.41887275030086668
+ 0.41888500635238396
+ 0.41889726286251455
+ 0.41890951983128405
+ 0.41892177725872221
+ 0.41893403514485333
+ 0.41894629348970724
+ 0.41895855229331147
+ 0.41897081155569149
+ 0.41898307127687595
+ 0.4189953314568936
+ 0.41900759209576977
+ 0.41901985319353224
+ 0.41903211475020857
+ 0.41904437676582729
+ 0.4190566392404152
+ 0.41906890217399961
+ 0.4190811655666084
+ 0.4190934294182691
+ 0.41910569372900713
+ 0.41911795849885336
+ 0.41913022372783332
+ 0.4191424894159736
+ 0.41915475556330378
+ 0.41916702216984952
+ 0.41917928923563952
+ 0.41919155676070124
+ 0.41920382474506246
+ 0.4192160931887487
+ 0.41922836209178865
+ 0.41924063145421192
+ 0.41925290127604209
+ 0.41926517155730991
+ 0.41927744229804093
+ 0.41928971349826272
+ 0.4193019851580051
+ 0.41931425727729255
+ 0.41932652985615476
+ 0.41933880289461745
+ 0.4193510763927103
+ 0.41936335035045874
+ 0.41937562476789153
+ 0.41938789964503537
+ 0.41940017498191889
+ 0.41941245077856876
+ 0.41942472703501255
+ 0.41943700375127901
+ 0.41944928092739375
+ 0.41946155856338552
+ 0.41947383665928184
+ 0.41948611521510942
+ 0.41949839423089708
+ 0.41951067370667133
+ 0.41952295364246078
+ 0.41953523403829129
+ 0.41954751489419245
+ 0.41955979621019096
+ 0.41957207798631352
+ 0.41958436022258866
+ 0.41959664291904419
+ 0.41960892607570571
+ 0.41962120969260414
+ 0.41963349376976494
+ 0.41964577830721483
+ 0.41965806330498345
+ 0.41967034876309767
+ 0.41968263468158407
+ 0.41969492106047124
+ 0.41970720789978705
+ 0.41971949519955931
+ 0.41973178295981434
+ 0.41974407118058021
+ 0.41975635986188448
+ 0.41976864900375582
+ 0.41978093860621996
+ 0.41979322866930668
+ 0.4198055191930416
+ 0.41981781017745345
+ 0.41983010162256906
+ 0.41984239352841696
+ 0.41985468589502506
+ 0.41986697872241996
+ 0.41987927201062941
+ 0.41989156575968117
+ 0.41990385996960289
+ 0.41991615464042337
+ 0.41992844977216837
+ 0.41994074536486647
+ 0.41995304141854561
+ 0.41996533793323243
+ 0.41997763490895557
+ 0.41998993234574195
+ 0.42000223024361916
+ 0.42001452860261601
+ 0.42002682742276032
+ 0.42003912670407667
+ 0.42005142644659599
+ 0.42006372665034586
+ 0.42007602731535215
+ 0.42008832844164262
+ 0.42010063002924697
+ 0.42011293207819089
+ 0.42012523458850332
+ 0.42013753756021088
+ 0.42014984099334135
+ 0.42016214488792364
+ 0.42017444924398423
+ 0.4201867540615512
+ 0.42019905934065321
+ 0.4202113650813149
+ 0.42022367128356819
+ 0.42023597794743778
+ 0.42024828507295253
+ 0.4202605926601391
+ 0.42027290070902645
+ 0.42028520921964224
+ 0.42029751819201322
+ 0.42030982762616836
+ 0.42032213752213415
+ 0.42033444787993968
+ 0.42034675869961052
+ 0.42035906998117661
+ 0.42037138172466576
+ 0.42038369393010266
+ 0.42039600659751808
+ 0.42040831972693904
+ 0.42042063331839297
+ 0.42043294737190817
+ 0.42044526188751097
+ 0.42045757686523155
+ 0.42046989230509446
+ 0.42048220820712967
+ 0.42049452457136494
+ 0.42050684139782812
+ 0.42051915868654594
+ 0.42053147643754629
+ 0.42054379465085695
+ 0.42055611332650583
+ 0.42056843246452263
+ 0.42058075206493128
+ 0.42059307212776365
+ 0.42060539265304336
+ 0.42061771364080242
+ 0.42063003509106567
+ 0.42064235700386082
+ 0.42065467937921885
+ 0.42066700221716363
+ 0.4206793255177258
+ 0.42069164928093122
+ 0.42070397350680788
+ 0.4207162981953857
+ 0.42072862334669031
+ 0.42074094896074965
+ 0.42075327503759263
+ 0.42076560157724702
+ 0.42077792857973872
+ 0.42079025604509862
+ 0.42080258397335146
+ 0.42081491236452828
+ 0.42082724121865378
+ 0.42083957053575688
+ 0.4208519003158665
+ 0.4208642305590094
+ 0.42087656126521256
+ 0.42088889243450578
+ 0.42090122406691605
+ 0.42091355616247217
+ 0.4209258887211999
+ 0.42093822174312834
+ 0.42095055522828423
+ 0.4209628891766975
+ 0.42097522358839601
+ 0.42098755846340463
+ 0.42099989380175334
+ 0.42101222960347101
+ 0.42102456586858339
+ 0.42103690259711946
+ 0.42104923978910624
+ 0.42106157744457251
+ 0.42107391556354612
+ 0.42108625414605516
+ 0.42109859319212634
+ 0.42111093270178868
+ 0.42112327267506999
+ 0.42113561311199627
+ 0.42114795401259847
+ 0.42116029537690336
+ 0.42117263720493686
+ 0.42118497949672906
+ 0.42119732225230777
+ 0.42120966547170091
+ 0.42122200915493424
+ 0.42123435330203807
+ 0.42124669791304004
+ 0.42125904298796718
+ 0.42127138852684837
+ 0.42128373452970952
+ 0.42129608099658156
+ 0.42130842792749057
+ 0.42132077532246437
+ 0.42133312318153088
+ 0.42134547150471907
+ 0.42135782029205687
+ 0.42137016954357026
+ 0.42138251925928921
+ 0.42139486943924054
+ 0.42140722008345338
+ 0.42141957119195561
+ 0.42143192276477309
+ 0.42144427480193586
+ 0.42145662730347083
+ 0.4214689802694071
+ 0.42148133369977037
+ 0.42149368759459188
+ 0.4215060419538964
+ 0.42151839677771508
+ 0.42153075206607266
+ 0.42154310781899929
+ 0.42155546403652289
+ 0.42156782071866938
+ 0.42158017786546881
+ 0.42159253547694808
+ 0.4216048935531363
+ 0.42161725209406131
+ 0.42162961109975028
+ 0.4216419705702309
+ 0.42165433050553136
+ 0.42166669090568171
+ 0.4216790517707078
+ 0.42169141310063757
+ 0.42170377489549915
+ 0.42171613715532263
+ 0.42172849988013378
+ 0.42174086306996067
+ 0.42175322672483334
+ 0.42176559084477688
+ 0.42177795542982105
+ 0.4217903204799951
+ 0.42180268599532394
+ 0.42181505197583852
+ 0.4218274184215639
+ 0.42183978533253219
+ 0.4218521527087673
+ 0.42186452055030033
+ 0.42187688885715718
+ 0.42188925762936696
+ 0.4219016268669577
+ 0.42191399656995732
+ 0.42192636673839395
+ 0.42193873737229559
+ 0.42195110847169037
+ 0.42196348003660517
+ 0.42197585206707106
+ 0.42198822456311308
+ 0.42200059752476027
+ 0.42201297095204077
+ 0.4220253448449835
+ 0.4220377192036156
+ 0.42205009402796506
+ 0.42206246931805985
+ 0.42207484507392917
+ 0.42208722129559995
+ 0.42209959798310026
+ 0.42211197513645932
+ 0.42212435275570392
+ 0.42213673084086339
+ 0.42214910939196565
+ 0.42216148840903767
+ 0.42217386789210865
+ 0.42218624784120562
+ 0.42219862825635873
+ 0.42221100913759391
+ 0.42222339048494029
+ 0.4222357722984259
+ 0.42224815457807896
+ 0.42226053732392743
+ 0.4222729205359993
+ 0.42228530421432187
+ 0.42229768835892606
+ 0.42231007296983702
+ 0.42232245804708479
+ 0.42233484359069662
+ 0.42234722960070037
+ 0.4223596160771253
+ 0.42237200301999833
+ 0.42238439042934778
+ 0.42239677830520361
+ 0.42240916664759193
+ 0.42242155545654086
+ 0.42243394473208051
+ 0.42244633447423685
+ 0.4224587246830393
+ 0.42247111535851573
+ 0.42248350650069527
+ 0.42249589810960408
+ 0.42250829018527125
+ 0.42252068272772592
+ 0.42253307573699422
+ 0.42254546921310626
+ 0.42255786315609006
+ 0.42257025756597288
+ 0.42258265244278281
+ 0.42259504778654899
+ 0.42260744359729946
+ 0.42261983987506146
+ 0.4226322366198651
+ 0.42264463383173645
+ 0.42265703151070472
+ 0.42266942965679799
+ 0.42268182827004558
+ 0.42269422735047324
+ 0.42270662689811156
+ 0.42271902691298735
+ 0.42273142739512898
+ 0.42274382834456553
+ 0.4227562297613251
+ 0.42276863164543488
+ 0.42278103399692396
+ 0.42279343681582066
+ 0.42280584010215305
+ 0.42281824385594824
+ 0.42283064807723647
+ 0.42284305276604484
+ 0.42285545792240159
+ 0.42286786354633482
+ 0.42288026963787373
+ 0.42289267619704546
+ 0.42290508322387932
+ 0.42291749071840223
+ 0.42292989868064362
+ 0.42294230711063263
+ 0.42295471600839529
+ 0.42296712537396086
+ 0.42297953520735759
+ 0.42299194550861363
+ 0.42300435627775812
+ 0.42301676751481826
+ 0.42302917921982336
+ 0.42304159139280051
+ 0.42305400403377891
+ 0.42306641714278576
+ 0.42307883071985136
+ 0.42309124476500165
+ 0.42310365927826721
+ 0.42311607425967485
+ 0.42312848970925304
+ 0.42314090562703
+ 0.42315332201303485
+ 0.42316573886729481
+ 0.42317815618984006
+ 0.42319057398069693
+ 0.42320299223989449
+ 0.42321541096746113
+ 0.42322783016342491
+ 0.42324024982781416
+ 0.42325266996065813
+ 0.42326509056198397
+ 0.42327751163182092
+ 0.4232899331701962
+ 0.42330235517713916
+ 0.42331477765267789
+ 0.42332720059684076
+ 0.42333962400965575
+ 0.42335204789115249
+ 0.42336447224135693
+ 0.42337689706030041
+ 0.42338932234800819
+ 0.42340174810451159
+ 0.42341417432983669
+ 0.42342660102401281
+ 0.42343902818706824
+ 0.42345145581903226
+ 0.423463883919932
+ 0.42347631248979595
+ 0.42348874152865318
+ 0.42350117103653195
+ 0.42351360101345958
+ 0.42352603145946549
+ 0.42353846237457765
+ 0.4235508937588256
+ 0.42356332561223536
+ 0.42357575793483843
+ 0.4235881907266611
+ 0.42360062398773135
+ 0.42361305771807878
+ 0.42362549191773252
+ 0.42363792658671895
+ 0.4236503617250682
+ 0.42366279733280671
+ 0.42367523340996577
+ 0.42368766995657153
+ 0.42370010697265337
+ 0.42371254445823969
+ 0.42372498241335749
+ 0.42373742083803845
+ 0.42374985973230767
+ 0.42376229909619439
+ 0.42377473892972911
+ 0.42378717923293785
+ 0.42379962000585025
+ 0.42381206124849441
+ 0.42382450296089874
+ 0.4238369451430915
+ 0.42384938779510195
+ 0.42386183091695856
+ 0.42387427450868853
+ 0.42388671857032134
+ 0.42389916310188502
+ 0.42391160810340822
+ 0.42392405357492113
+ 0.42393649951644902
+ 0.42394894592802224
+ 0.42396139280966816
+ 0.4239738401614172
+ 0.42398628798329652
+ 0.42399873627533463
+ 0.42401118503755969
+ 0.42402363427000134
+ 0.42403608397268755
+ 0.42404853414564597
+ 0.4240609847889068
+ 0.42407343590249735
+ 0.42408588748644604
+ 0.42409833954078235
+ 0.42411079206553343
+ 0.42412324506072874
+ 0.42413569852639771
+ 0.42414815246256649
+ 0.42416060686926566
+ 0.42417306174652353
+ 0.42418551709436625
+ 0.42419797291282552
+ 0.42421042920192858
+ 0.42422288596170371
+ 0.42423534319217943
+ 0.4242478008933851
+ 0.42426025906534792
+ 0.42427271770809849
+ 0.42428517682166311
+ 0.4242976364060711
+ 0.42431009646135193
+ 0.42432255698753407
+ 0.42433501798464479
+ 0.42434747945271334
+ 0.42435994139176841
+ 0.42437240380183927
+ 0.42438486668295228
+ 0.42439733003513885
+ 0.42440979385842548
+ 0.4244222581528414
+ 0.42443472291841522
+ 0.42444718815517612
+ 0.42445965386315176
+ 0.42447212004237134
+ 0.42448458669286232
+ 0.42449705381465525
+ 0.42450952140777737
+ 0.42452198947225728
+ 0.42453445800812417
+ 0.42454692701540669
+ 0.42455939649413316
+ 0.42457186644433204
+ 0.42458433686603159
+ 0.42459680775926251
+ 0.42460927912405011
+ 0.42462175096042576
+ 0.42463422326841599
+ 0.42464669604805222
+ 0.42465916929935976
+ 0.42467164302237032
+ 0.42468411721711014
+ 0.4246965918836087
+ 0.42470906702189548
+ 0.42472154263199896
+ 0.42473401871394545
+ 0.42474649526776659
+ 0.42475897229348963
+ 0.42477144979114423
+ 0.42478392776075674
+ 0.4247964062023587
+ 0.42480888511597747
+ 0.42482136450164054
+ 0.42483384435937838
+ 0.42484632468921946
+ 0.42485880549119132
+ 0.42487128676532343
+ 0.42488376851164517
+ 0.42489625073018406
+ 0.42490873342096847
+ 0.42492121658402809
+ 0.42493370021939131
+ 0.42494618432708758
+ 0.4249586689071434
+ 0.42497115395959029
+ 0.42498363948445467
+ 0.42499612548176713
+ 0.42500861195155404
+ 0.42502109889384604
+ 0.42503358630867255
+ 0.425046074196059
+ 0.42505856255603813
+ 0.42507105138863516
+ 0.42508354069388066
+ 0.42509603047180317
+ 0.42510852072243133
+ 0.42512101144579456
+ 0.42513350264191924
+ 0.42514599431083711
+ 0.42515848645257448
+ 0.42517097906716195
+ 0.4251834721546271
+ 0.4251959657149994
+ 0.42520845974830646
+ 0.42522095425457745
+ 0.42523344923384349
+ 0.42524594468612958
+ 0.4252584406114665
+ 0.42527093700988283
+ 0.42528343388140794
+ 0.42529593122606951
+ 0.42530842904389699
+ 0.42532092733491789
+ 0.42533342609916286
+ 0.42534592533665938
+ 0.42535842504743698
+ 0.42537092523152431
+ 0.4253834258889499
+ 0.42539592701974321
+ 0.4254084286239318
+ 0.4254209307015453
+ 0.42543343325261224
+ 0.4254459362771611
+ 0.42545843977522163
+ 0.42547094374682221
+ 0.42548344819199152
+ 0.42549595311075805
+ 0.42550845850315144
+ 0.42552096436919917
+ 0.42553347070893188
+ 0.42554597752237716
+ 0.4255584848095646
+ 0.42557099257052172
+ 0.42558350080527813
+ 0.42559600951386445
+ 0.42560851869630623
+ 0.42562102835263393
+ 0.42563353848287733
+ 0.42564604908706299
+ 0.42565856016522241
+ 0.42567107171738122
+ 0.42568358374357212
+ 0.42569609624382054
+ 0.42570860921815723
+ 0.42572112266661183
+ 0.42573363658921065
+ 0.42574615098598462
+ 0.42575866585696115
+ 0.42577118120217095
+ 0.42578369702164154
+ 0.42579621331540168
+ 0.42580873008347991
+ 0.42582124732590676
+ 0.42583376504270998
+ 0.42584628323391915
+ 0.42585880189956177
+ 0.42587132103966874
+ 0.42588384065426638
+ 0.4258963607433866
+ 0.42590888130705579
+ 0.42592140234530479
+ 0.42593392385816115
+ 0.42594644584565444
+ 0.42595896830781232
+ 0.42597149124466549
+ 0.42598401465624269
+ 0.42599653854257119
+ 0.42600906290368212
+ 0.42602158773960175
+ 0.42603411305036204
+ 0.42604663883598937
+ 0.42605916509651459
+ 0.42607169183196508
+ 0.42608421904237093
+ 0.42609674672776038
+ 0.42610927488816236
+ 0.42612180352360651
+ 0.42613433263412132
+ 0.42614686221973563
+ 0.42615939228047905
+ 0.42617192281637928
+ 0.42618445382746695
+ 0.42619698531376971
+ 0.42620951727531636
+ 0.4262220497121364
+ 0.42623458262425967
+ 0.42624711601171389
+ 0.42625964987452847
+ 0.42627218421273244
+ 0.42628471902635529
+ 0.4262972543154247
+ 0.42630979007997039
+ 0.42632232632002215
+ 0.42633486303560764
+ 0.42634740022675754
+ 0.42635993789349741
+ 0.42637247603586009
+ 0.42638501465387341
+ 0.42639755374756483
+ 0.42641009331696622
+ 0.42642263336210323
+ 0.42643517388300756
+ 0.42644771487970695
+ 0.42646025635223117
+ 0.42647279830060886
+ 0.42648534072486866
+ 0.42649788362503954
+ 0.42651042700115099
+ 0.42652297085323282
+ 0.42653551518131283
+ 0.42654805998542067
+ 0.42656060526558404
+ 0.4265731510218348
+ 0.42658569725419954
+ 0.42659824396270807
+ 0.42661079114738909
+ 0.42662333880827241
+ 0.42663588694538679
+ 0.42664843555876186
+ 0.42666098464842539
+ 0.42667353421440724
+ 0.42668608425673721
+ 0.42669863477544173
+ 0.42671118577055278
+ 0.42672373724209817
+ 0.42673628919010759
+ 0.4267488416146088
+ 0.42676139451563255
+ 0.4267739478932065
+ 0.4267865017473606
+ 0.42679905607812363
+ 0.42681161088552527
+ 0.42682416616959429
+ 0.42683672193035938
+ 0.42684927816784957
+ 0.42686183488209434
+ 0.42687439207312267
+ 0.42688694974096436
+ 0.42689950788564801
+ 0.42691206650720259
+ 0.42692462560565686
+ 0.42693718518104051
+ 0.42694974523338336
+ 0.42696230576271327
+ 0.42697486676905899
+ 0.42698742825245128
+ 0.42699999021291907
+ 0.42701255265049004
+ 0.42702511556519396
+ 0.42703767895706185
+ 0.42705024282612031
+ 0.42706280717239925
+ 0.42707537199592838
+ 0.42708793729673561
+ 0.42710050307485276
+ 0.42711306933030552
+ 0.42712563606312592
+ 0.42713820327334162
+ 0.42715077096098142
+ 0.42716333912607635
+ 0.427175907768654
+ 0.42718847688874423
+ 0.42720104648637602
+ 0.42721361656157819
+ 0.42722618711438048
+ 0.42723875814481177
+ 0.42725132965290175
+ 0.42726390163867956
+ 0.42727647410217273
+ 0.42728904704341347
+ 0.42730162046242826
+ 0.42731419435924711
+ 0.42732676873389985
+ 0.42733934358641634
+ 0.4273519189168235
+ 0.42736449472515209
+ 0.42737707101143202
+ 0.42738964777569011
+ 0.42740222501795821
+ 0.42741480273826321
+ 0.42742738093663712
+ 0.42743995961310655
+ 0.42745253876770251
+ 0.42746511840045287
+ 0.4274776985113875
+ 0.42749027910053633
+ 0.4275028601679281
+ 0.42751544171359074
+ 0.42752802373755522
+ 0.4275406062398503
+ 0.42755318922050489
+ 0.42756577267954904
+ 0.42757835661701143
+ 0.42759094103292211
+ 0.42760352592730888
+ 0.42761611130020155
+ 0.42762869715163027
+ 0.42764128348162378
+ 0.42765387029021085
+ 0.42766645757742061
+ 0.42767904534328288
+ 0.42769163358782858
+ 0.42770422231108463
+ 0.42771681151308083
+ 0.42772940119384623
+ 0.42774199135341184
+ 0.42775458199180527
+ 0.42776717310905665
+ 0.42777976470519485
+ 0.42779235678024985
+ 0.42780494933424951
+ 0.42781754236722475
+ 0.42783013587920349
+ 0.42784272987021577
+ 0.42785532434029239
+ 0.42786791928946033
+ 0.42788051471774963
+ 0.42789311062519003
+ 0.42790570701180958
+ 0.42791830387764029
+ 0.42793090122270899
+ 0.42794349904704676
+ 0.4279560973506813
+ 0.4279686961336428
+ 0.42798129539596119
+ 0.42799389513766534
+ 0.42800649535878321
+ 0.42801909605934679
+ 0.428031697239384
+ 0.42804429889892387
+ 0.42805690103799637
+ 0.42806950365663038
+ 0.42808210675485586
+ 0.42809471033270191
+ 0.42810731439019839
+ 0.42811991892737439
+ 0.42813252394425771
+ 0.42814512944088051
+ 0.42815773541727065
+ 0.42817034187345709
+ 0.42818294880947094
+ 0.42819555622534011
+ 0.42820816412109364
+ 0.42822077249676244
+ 0.42823338135237549
+ 0.42824599068796193
+ 0.42825860050355058
+ 0.42827121079917158
+ 0.42828382157485489
+ 0.42829643283062829
+ 0.42830904456652213
+ 0.42832165678256623
+ 0.42833426947878972
+ 0.42834688265522253
+ 0.42835949631189252
+ 0.428372110448831
+ 0.42838472506606579
+ 0.42839734016362796
+ 0.42840995574154545
+ 0.42842257179984838
+ 0.42843518833856686
+ 0.42844780535772981
+ 0.42846042285736607
+ 0.42847304083750498
+ 0.42848565929817739
+ 0.42849827823941145
+ 0.42851089766123712
+ 0.42852351756368545
+ 0.42853613794678241
+ 0.4285487588105612
+ 0.4285613801550488
+ 0.42857400198027512
+ 0.42858662428627031
+ 0.42859924707306357
+ 0.42861187034068471
+ 0.42862449408916187
+ 0.42863711831852608
+ 0.4286497430288066
+ 0.42866236822003212
+ 0.42867499389223301
+ 0.4286876200454382
+ 0.42870024667967788
+ 0.42871287379498091
+ 0.42872550139137744
+ 0.42873812946889567
+ 0.42875075802756757
+ 0.42876338706741912
+ 0.42877601658848363
+ 0.42878864659078791
+ 0.42880127707436222
+ 0.42881390803923664
+ 0.42882653948544119
+ 0.42883917141300398
+ 0.42885180382195504
+ 0.42886443671232355
+ 0.42887707008414061
+ 0.42888970393743431
+ 0.42890233827223462
+ 0.42891497308857079
+ 0.42892760838647281
+ 0.42894024416597093
+ 0.42895288042709306
+ 0.42896551716987052
+ 0.42897815439433123
+ 0.42899079210050534
+ 0.42900343028842414
+ 0.42901606895811445
+ 0.42902870810960769
+ 0.42904134774293168
+ 0.42905398785811882
+ 0.42906662845519494
+ 0.42907926953419356
+ 0.42909191109514244
+ 0.42910455313807083
+ 0.42911719566300888
+ 0.42912983866998583
+ 0.42914248215903161
+ 0.42915512613017542
+ 0.42916777058344746
+ 0.42918041551887692
+ 0.42919306093649473
+ 0.42920570683632825
+ 0.42921835321840851
+ 0.42923100008276471
+ 0.42924364742942595
+ 0.4292562952584234
+ 0.42926894356978629
+ 0.4292815923635438
+ 0.42929424163972485
+ 0.42930689139835981
+ 0.42931954163947772
+ 0.42933219236310982
+ 0.42934484356928432
+ 0.42935749525803141
+ 0.42937014742938107
+ 0.42938280008336266
+ 0.42939545322000627
+ 0.42940810683934005
+ 0.4294207609413942
+ 0.42943341552620007
+ 0.42944607059378559
+ 0.42945872614418101
+ 0.42947138217741654
+ 0.42948403869352042
+ 0.42949669569252386
+ 0.42950935317445593
+ 0.42952201113934596
+ 0.42953466958722392
+ 0.42954732851812033
+ 0.42955998793206318
+ 0.42957264782908372
+ 0.42958530820921109
+ 0.42959796907247561
+ 0.4296106304189054
+ 0.4296232922485318
+ 0.42963595456138387
+ 0.42964861735749083
+ 0.42966128063688297
+ 0.42967394439959056
+ 0.42968660864564268
+ 0.42969927337506869
+ 0.42971193858789875
+ 0.42972460428416304
+ 0.42973727046389082
+ 0.4297499371271124
+ 0.42976260427385587
+ 0.42977527190415254
+ 0.42978794001803172
+ 0.42980060861552349
+ 0.42981327769665723
+ 0.42982594726146311
+ 0.42983861730996931
+ 0.42985128784220838
+ 0.42986395885820816
+ 0.42987663035799811
+ 0.42988930234160944
+ 0.4299019748090705
+ 0.42991464776041244
+ 0.42992732119566457
+ 0.42993999511485614
+ 0.42995266951801731
+ 0.42996534440517753
+ 0.4299780197763669
+ 0.42999069563161585
+ 0.43000337197095351
+ 0.43001604879440924
+ 0.43002872610201326
+ 0.4300414038937958
+ 0.43005408216978624
+ 0.43006676093001495
+ 0.430079440174511
+ 0.43009211990330476
+ 0.43010480011642549
+ 0.4301174808139025
+ 0.43013016199576715
+ 0.43014284366204869
+ 0.43015552581277738
+ 0.43016820844798148
+ 0.43018089156769235
+ 0.4301935751719394
+ 0.43020625926075268
+ 0.43021894383416065
+ 0.43023162889219568
+ 0.43024431443488598
+ 0.43025700046226084
+ 0.43026968697435058
+ 0.43028237397118657
+ 0.43029506145279717
+ 0.43030774941921257
+ 0.43032043787046209
+ 0.43033312680657715
+ 0.43034581622758616
+ 0.43035850613352028
+ 0.43037119652440681
+ 0.43038388740027922
+ 0.43039657876116472
+ 0.43040927060709477
+ 0.43042196293809754
+ 0.43043465575420459
+ 0.43044734905544502
+ 0.43046004284184941
+ 0.43047273711344697
+ 0.43048543187026805
+ 0.43049812711234103
+ 0.43051082283969822
+ 0.43052351905236796
+ 0.4305362157503817
+ 0.43054891293376785
+ 0.43056161060255543
+ 0.43057430875677721
+ 0.43058700739646127
+ 0.4305997065216382
+ 0.4306124061323372
+ 0.43062510622858868
+ 0.43063780681042302
+ 0.43065050787786852
+ 0.43066320943095776
+ 0.43067591146971784
+ 0.43068861399418146
+ 0.43070131700437669
+ 0.43071402050033303
+ 0.43072672448208305
+ 0.43073942894965489
+ 0.43075213390307793
+ 0.43076483934238274
+ 0.43077754526760065
+ 0.43079025167876001
+ 0.43080295857589124
+ 0.43081566595902476
+ 0.43082837382818895
+ 0.43084108218341516
+ 0.43085379102473492
+ 0.4308665003521745
+ 0.43087921016576741
+ 0.43089192046554109
+ 0.43090463125152784
+ 0.43091734252375513
+ 0.43093005428225434
+ 0.43094276652705604
+ 0.43095547925818944
+ 0.43096819247568519
+ 0.43098090617957252
+ 0.43099362036988081
+ 0.43100633504664287
+ 0.43101905020988568
+ 0.43103176585964087
+ 0.43104448199593792
+ 0.4310571986188072
+ 0.43106991572827819
+ 0.43108263332438235
+ 0.43109535140714805
+ 0.43110806997660572
+ 0.43112078903278589
+ 0.43113350857571792
+ 0.43114622860543345
+ 0.43115894912196079
+ 0.43117167012533142
+ 0.4311843916155737
+ 0.43119711359271928
+ 0.43120983605679647
+ 0.43122255900783779
+ 0.43123528244587178
+ 0.43124800637092775
+ 0.43126073078303723
+ 0.4312734556822308
+ 0.43128618106853689
+ 0.43129890694198691
+ 0.4313116333026083
+ 0.43132436015043574
+ 0.43133708748549437
+ 0.43134981530781913
+ 0.43136254361743609
+ 0.43137527241437701
+ 0.43138800169867231
+ 0.43140073147035241
+ 0.43141346172944584
+ 0.43142619247598313
+ 0.4314389237099957
+ 0.4314516554315132
+ 0.43146438764056505
+ 0.43147712033718166
+ 0.43148985352139374
+ 0.43150258719323065
+ 0.43151532135272291
+ 0.43152805599990007
+ 0.43154079113479266
+ 0.43155352675743214
+ 0.43156626286784605
+ 0.43157899946606693
+ 0.43159173655212441
+ 0.43160447412604774
+ 0.43161721218786675
+ 0.43162995073761379
+ 0.43164268977531639
+ 0.43165542930100614
+ 0.43166816931471363
+ 0.43168090981646828
+ 0.43169365080630068
+ 0.43170639228424046
+ 0.43171913425031905
+ 0.43173187670456387
+ 0.43174461964700778
+ 0.43175736307768114
+ 0.43177010699661156
+ 0.43178285140383255
+ 0.4317955962993717
+ 0.43180834168325954
+ 0.43182108755552762
+ 0.43183383391620556
+ 0.43184658076532184
+ 0.43185932810291017
+ 0.43187207592899801
+ 0.4318848242436169
+ 0.43189757304679549
+ 0.4319103223385653
+ 0.43192307211895692
+ 0.43193582238800005
+ 0.43194857314572399
+ 0.43196132439216067
+ 0.43197407612733935
+ 0.43198682835129093
+ 0.43199958106404474
+ 0.4320123342656314
+ 0.43202508795608069
+ 0.43203784213542507
+ 0.43205059680369107
+ 0.4320633519609125
+ 0.43207610760711773
+ 0.43208886374233751
+ 0.43210162036660243
+ 0.43211437747994202
+ 0.43212713508238598
+ 0.43213989317396678
+ 0.43215265175471329
+ 0.43216541082465593
+ 0.43217817038382539
+ 0.4321909304322501
+ 0.43220369096996303
+ 0.43221645199699349
+ 0.43222921351337124
+ 0.43224197551912702
+ 0.43225473801429015
+ 0.43226750099889255
+ 0.4322802644729638
+ 0.43229302843653444
+ 0.43230579288963417
+ 0.43231855783229367
+ 0.43233132326454349
+ 0.43234408918641432
+ 0.43235685559793585
+ 0.43236962249913757
+ 0.4323823898900514
+ 0.4323951577707067
+ 0.43240792614113427
+ 0.43242069500136493
+ 0.43243346435142799
+ 0.43244623419135442
+ 0.43245900452117364
+ 0.43247177534091646
+ 0.43248454665061453
+ 0.43249731845029643
+ 0.43251009073999402
+ 0.43252286351973679
+ 0.43253563678955559
+ 0.4325484105494799
+ 0.43256118479954053
+ 0.43257395953976802
+ 0.43258673477019216
+ 0.43259951049084583
+ 0.43261228670175539
+ 0.43262506340295465
+ 0.43263784059447224
+ 0.43265061827633805
+ 0.43266339644858454
+ 0.43267617511124068
+ 0.4326889542643379
+ 0.43270173390790506
+ 0.43271451404197381
+ 0.43272729466657384
+ 0.43274007578173601
+ 0.43275285738748959
+ 0.43276563948386687
+ 0.43277842207089834
+ 0.43279120514861252
+ 0.43280398871704023
+ 0.43281677277621339
+ 0.43282955732616152
+ 0.43284234236691438
+ 0.43285512789850383
+ 0.43286791392095941
+ 0.43288070043431193
+ 0.43289348743859113
+ 0.43290627493382772
+ 0.4329190629200535
+ 0.43293185139729717
+ 0.43294464036559044
+ 0.43295742982496205
+ 0.43297021977544481
+ 0.43298301021706748
+ 0.4329958011498618
+ 0.43300859257385632
+ 0.43302138448908301
+ 0.43303417689557372
+ 0.43304696979335594
+ 0.43305976318246048
+ 0.43307255706292036
+ 0.43308535143476412
+ 0.43309814629802251
+ 0.43311094165272629
+ 0.43312373749890543
+ 0.43313653383659151
+ 0.4331493306658144
+ 0.43316212798660475
+ 0.43317492579899247
+ 0.43318772410300938
+ 0.43320052289868416
+ 0.43321332218604852
+ 0.43322612196513344
+ 0.4332389222359686
+ 0.43325172299858478
+ 0.43326452425301182
+ 0.43327732599928248
+ 0.43329012823742458
+ 0.43330293096746991
+ 0.43331573418944924
+ 0.43332853790339249
+ 0.43334134210933134
+ 0.43335414680729462
+ 0.43336695199731418
+ 0.43337975767941977
+ 0.43339256385364328
+ 0.43340537052001454
+ 0.43341817767856328
+ 0.4334309853293204
+ 0.4334437934723176
+ 0.4334566021075848
+ 0.43346941123515187
+ 0.43348222085505062
+ 0.43349503096731079
+ 0.43350784157196326
+ 0.43352065266903783
+ 0.43353346425856748
+ 0.43354627634057991
+ 0.43355908891510692
+ 0.43357190198217949
+ 0.43358471554182848
+ 0.4335975295940836
+ 0.43361034413897576
+ 0.43362315917653588
+ 0.43363597470679371
+ 0.43364879072978008
+ 0.43366160724552699
+ 0.43367442425406416
+ 0.43368724175542156
+ 0.433700059749631
+ 0.43371287823672239
+ 0.43372569721672549
+ 0.43373851668967334
+ 0.43375133665559468
+ 0.43376415711452043
+ 0.43377697806648252
+ 0.43378979951150959
+ 0.43380262144963377
+ 0.43381544388088494
+ 0.43382826680529496
+ 0.43384109022289252
+ 0.43385391413370972
+ 0.43386673853777641
+ 0.43387956343512446
+ 0.43389238882578485
+ 0.43390521470978527
+ 0.43391804108715876
+ 0.43393086795793628
+ 0.4339436953221476
+ 0.43395652317982369
+ 0.43396935153099558
+ 0.43398218037569397
+ 0.43399500971394778
+ 0.4340078395457902
+ 0.43402066987125082
+ 0.43403350069036073
+ 0.43404633200314979
+ 0.43405916380964993
+ 0.43407199610989006
+ 0.43408482890390321
+ 0.43409766219171814
+ 0.43411049597336704
+ 0.4341233302488795
+ 0.43413616501828667
+ 0.43414900028161951
+ 0.4341618360389089
+ 0.43417467229018464
+ 0.43418750903547904
+ 0.43420034627482162
+ 0.4342131840082426
+ 0.43422602223577489
+ 0.43423886095744629
+ 0.43425170017329101
+ 0.4342645398833368
+ 0.43427738008761574
+ 0.43429022078615981
+ 0.43430306197899776
+ 0.43431590366615969
+ 0.43432874584767966
+ 0.43434158852358545
+ 0.43435443169390919
+ 0.43436727535868075
+ 0.43438011951793321
+ 0.43439296417169554
+ 0.43440580931999756
+ 0.4344186549628713
+ 0.43443150110034789
+ 0.43444434773245821
+ 0.43445719485923223
+ 0.43447004248070104
+ 0.43448289059689654
+ 0.43449573920784773
+ 0.43450858831358669
+ 0.43452143791414327
+ 0.43453428800954857
+ 0.43454713859983457
+ 0.43455998968503029
+ 0.43457284126516876
+ 0.43458569334027891
+ 0.43459854591039176
+ 0.43461139897553946
+ 0.43462425253575182
+ 0.43463710659106009
+ 0.43464996114149407
+ 0.43466281618708585
+ 0.43467567172786653
+ 0.43468852776386602
+ 0.43470138429511546
+ 0.43471424132164471
+ 0.43472709884348709
+ 0.43473995686067129
+ 0.43475281537322963
+ 0.43476567438119201
+ 0.43477853388458948
+ 0.43479139388345422
+ 0.43480425437781506
+ 0.43481711536770312
+ 0.43482997685315039
+ 0.43484283883418817
+ 0.43485570131084622
+ 0.43486856428315579
+ 0.43488142775114791
+ 0.43489429171485244
+ 0.43490715617430159
+ 0.4349200211295266
+ 0.43493288658055729
+ 0.43494575252742479
+ 0.43495861897016008
+ 0.43497148590879442
+ 0.43498435334335894
+ 0.43499722127388341
+ 0.43501008970040012
+ 0.43502295862293905
+ 0.43503582804153129
+ 0.43504869795620804
+ 0.43506156836700033
+ 0.43507443927394029
+ 0.43508731067705586
+ 0.43510018257638033
+ 0.43511305497194358
+ 0.4351259278637768
+ 0.43513880125191223
+ 0.43515167513637981
+ 0.43516454951720973
+ 0.43517742439443396
+ 0.43519029976808377
+ 0.43520317563818806
+ 0.43521605200478025
+ 0.43522892886789122
+ 0.4352418062275501
+ 0.43525468408378909
+ 0.43526756243663933
+ 0.43528044128613191
+ 0.43529332063229687
+ 0.43530620047516538
+ 0.43531908081476961
+ 0.43533196165113974
+ 0.43534484298430681
+ 0.43535772481430202
+ 0.43537060714115638
+ 0.43538348996490017
+ 0.43539637328556552
+ 0.43540925710318251
+ 0.43542214141778329
+ 0.43543502622939906
+ 0.4354479115380579
+ 0.43546079734379411
+ 0.43547368364663758
+ 0.43548657044661976
+ 0.43549945774377058
+ 0.43551234553812235
+ 0.43552523382970515
+ 0.43553812261855013
+ 0.43555101190468959
+ 0.43556390168815351
+ 0.43557679196897331
+ 0.43558968274717991
+ 0.4356025740228035
+ 0.43561546579587757
+ 0.43562835806643091
+ 0.43564125083449484
+ 0.43565414410010173
+ 0.43566703786328154
+ 0.43567993212406658
+ 0.43569282688248584
+ 0.43570572213857178
+ 0.4357186178923565
+ 0.43573151414386913
+ 0.43574441089314186
+ 0.43575730814020497
+ 0.43577020588509069
+ 0.43578310412783017
+ 0.43579600286845255
+ 0.43580890210699225
+ 0.43582180184347719
+ 0.43583470207793978
+ 0.43584760281041229
+ 0.43586050404092375
+ 0.43587340576950645
+ 0.43588630799619166
+ 0.43589921072101068
+ 0.43591211394399249
+ 0.43592501766517155
+ 0.43593792188457692
+ 0.43595082660224105
+ 0.43596373181819298
+ 0.43597663753246602
+ 0.43598954374509041
+ 0.43600245045609731
+ 0.43601535766551819
+ 0.43602826537338407
+ 0.43604117357972522
+ 0.43605408228457498
+ 0.43606699148796263
+ 0.43607990118991924
+ 0.43609281139047723
+ 0.4361057220896678
+ 0.43611863328752126
+ 0.43613154498406881
+ 0.43614445717934291
+ 0.4361573698733725
+ 0.43617028306619093
+ 0.43618319675782768
+ 0.4361961109483159
+ 0.43620902563768588
+ 0.43622194082596888
+ 0.43623485651319505
+ 0.43624777269939691
+ 0.43626068938460566
+ 0.43627360656885256
+ 0.43628652425216685
+ 0.43629944243458302
+ 0.43631236111613003
+ 0.43632528029683948
+ 0.4363381999767435
+ 0.43635112015587246
+ 0.43636404083425767
+ 0.43637696201193032
+ 0.4363898836889229
+ 0.43640280586526564
+ 0.43641572854098876
+ 0.43642865171612566
+ 0.43644157539070561
+ 0.43645449956476201
+ 0.43646742423832408
+ 0.43648034941142416
+ 0.43649327508409363
+ 0.43650620125636391
+ 0.43651912792826503
+ 0.43653205509983062
+ 0.43654498277108877
+ 0.43655791094207402
+ 0.43657083961281457
+ 0.43658376878334371
+ 0.43659669845369298
+ 0.43660962862389263
+ 0.43662255929397387
+ 0.43663549046396927
+ 0.43664842213390909
+ 0.43666135430382452
+ 0.43667428697374822
+ 0.43668722014371031
+ 0.43670015381374222
+ 0.43671308798387531
+ 0.43672602265414096
+ 0.43673895782457156
+ 0.43675189349519633
+ 0.43676482966604885
+ 0.43677776633715831
+ 0.43679070350855814
+ 0.43680364118027881
+ 0.43681657935235052
+ 0.4368295180248058
+ 0.436842457197677
+ 0.4368553968709934
+ 0.4368683370447875
+ 0.43688127771909063
+ 0.43689421889393526
+ 0.43690716056934975
+ 0.43692010274536841
+ 0.43693304542202066
+ 0.43694598859933897
+ 0.43695893227735466
+ 0.43697187645609931
+ 0.43698482113560416
+ 0.43699776631589954
+ 0.43701071199701802
+ 0.43702365817898986
+ 0.43703660486184875
+ 0.43704955204562379
+ 0.43706249973034766
+ 0.43707544791605163
+ 0.43708839660276594
+ 0.43710134579052345
+ 0.43711429547935532
+ 0.43712724566929195
+ 0.43714019636036588
+ 0.43715314755260853
+ 0.43716609924605138
+ 0.43717905144072466
+ 0.43719200413666087
+ 0.43720495733389175
+ 0.43721791103244734
+ 0.43723086523236138
+ 0.43724381993366318
+ 0.43725677513638406
+ 0.43726973084055776
+ 0.43728268704621359
+ 0.43729564375338403
+ 0.43730860096210056
+ 0.43732155867239453
+ 0.43733451688429653
+ 0.43734747559784004
+ 0.43736043481305326
+ 0.43737339452997198
+ 0.43738635474862353
+ 0.43739931546904243
+ 0.43741227669125921
+ 0.43742523841530412
+ 0.43743820064121092
+ 0.43745116336900886
+ 0.43746412659873163
+ 0.4374770903304096
+ 0.43749005456407319
+ 0.43750301929975605
+ 0.43751598453748858
+ 0.43752895027730232
+ 0.4375419165192288
+ 0.43755488326329939
+ 0.43756785050954661
+ 0.43758081825800116
+ 0.4375937865086944
+ 0.43760675526165776
+ 0.43761972451692382
+ 0.43763269427452323
+ 0.43764566453448728
+ 0.43765863529684862
+ 0.43767160656163778
+ 0.43768457832888724
+ 0.43769755059862858
+ 0.43771052337089217
+ 0.4377234966457107
+ 0.43773647042311464
+ 0.43774944470313654
+ 0.43776241948580791
+ 0.43777539477116029
+ 0.43778837055922426
+ 0.4378013468500323
+ 0.43781432364361705
+ 0.43782730094000782
+ 0.43784027873923742
+ 0.43785325704133737
+ 0.43786623584634121
+ 0.4378792151542763
+ 0.43789219496517739
+ 0.43790517527907502
+ 0.43791815609600171
+ 0.43793113741598805
+ 0.43794411923906545
+ 0.43795710156526674
+ 0.43797008439462343
+ 0.43798306772716594
+ 0.43799605156292698
+ 0.43800903590193691
+ 0.43802202074422969
+ 0.43803500608983353
+ 0.4380479919387843
+ 0.4380609782911104
+ 0.43807396514684449
+ 0.43808695250601809
+ 0.43809994036866384
+ 0.43811292873481139
+ 0.43812591760449426
+ 0.43813890697774299
+ 0.43815189685459138
+ 0.43816488723506786
+ 0.43817787811920611
+ 0.43819086950703673
+ 0.43820386139859219
+ 0.43821685379390435
+ 0.43822984669300469
+ 0.43824284009592585
+ 0.43825583400269735
+ 0.43826882841335196
+ 0.43828182332792121
+ 0.43829481874643778
+ 0.43830781466893215
+ 0.43832081109543614
+ 0.43833380802598226
+ 0.43834680546060117
+ 0.43835980339932562
+ 0.43837280184218708
+ 0.43838580078921729
+ 0.43839880024044681
+ 0.43841180019591042
+ 0.4384248006556356
+ 0.43843780161965701
+ 0.43845080308800544
+ 0.43846380506071353
+ 0.43847680753781187
+ 0.438489810519333
+ 0.43850281400530777
+ 0.43851581799576883
+ 0.43852882249074771
+ 0.4385418274902762
+ 0.43855483299438591
+ 0.43856783900310847
+ 0.43858084551647564
+ 0.4385938525345201
+ 0.43860686005727245
+ 0.43861986808476533
+ 0.4386328766170296
+ 0.43864588565409679
+ 0.43865889519600065
+ 0.43867190524277172
+ 0.43868491579444202
+ 0.43869792685104186
+ 0.43871093841260633
+ 0.43872395047916479
+ 0.43873696305074911
+ 0.43874997612739081
+ 0.43876298970912392
+ 0.43877600379597781
+ 0.43878901838798534
+ 0.43880203348517827
+ 0.43881504908758812
+ 0.43882806519524786
+ 0.43884108180818809
+ 0.43885409892644045
+ 0.43886711655003774
+ 0.43888013467901171
+ 0.43889315331339401
+ 0.43890617245321539
+ 0.43891919209850966
+ 0.43893221224930745
+ 0.43894523290564164
+ 0.43895825406754163
+ 0.43897127573504252
+ 0.43898429790817384
+ 0.43899732058696855
+ 0.43901034377145809
+ 0.43902336746167447
+ 0.4390363916576504
+ 0.43904941635941536
+ 0.43906244156700341
+ 0.43907546728044733
+ 0.43908849349977563
+ 0.43910152022502325
+ 0.43911454745621986
+ 0.43912757519339923
+ 0.43914060343659228
+ 0.43915363218583159
+ 0.43916666144114797
+ 0.43917969120257427
+ 0.43919272147014121
+ 0.43920575224388259
+ 0.4392187835238292
+ 0.43923181531001271
+ 0.43924484760246607
+ 0.43925788040121994
+ 0.43927091370630728
+ 0.43928394751775962
+ 0.43929698183560906
+ 0.43931001665988706
+ 0.43932305199062566
+ 0.43933608782785766
+ 0.43934912417161365
+ 0.43936216102192777
+ 0.43937519837882949
+ 0.43938823624235174
+ 0.43940127461252748
+ 0.43941431348938725
+ 0.43942735287296308
+ 0.43944039276328878
+ 0.43945343316039409
+ 0.43946647406431183
+ 0.43947951547507369
+ 0.43949255739271287
+ 0.43950559981725995
+ 0.4395186427487478
+ 0.43953168618720817
+ 0.43954473013267187
+ 0.43955777458517303
+ 0.43957081954474225
+ 0.43958386501141233
+ 0.43959691098521425
+ 0.43960995746618192
+ 0.43962300445434499
+ 0.43963605194973748
+ 0.4396490999523901
+ 0.4396621484623347
+ 0.43967519747960426
+ 0.43968824700423059
+ 0.4397012970362445
+ 0.43971434757568101
+ 0.43972739862256888
+ 0.43974045017694185
+ 0.43975350223883303
+ 0.43976655480827115
+ 0.43977960788529108
+ 0.43979266146992479
+ 0.43980571556220305
+ 0.43981877016215781
+ 0.43983182526982306
+ 0.43984488088522838
+ 0.43985793700840797
+ 0.43987099363939258
+ 0.43988405077821507
+ 0.43989710842490748
+ 0.43991016657950049
+ 0.4399232252420282
+ 0.43993628441252142
+ 0.43994934409101194
+ 0.43996240427753397
+ 0.4399754649721172
+ 0.43998852617479561
+ 0.44000158788559995
+ 0.44001465010456242
+ 0.44002771283171571
+ 0.44004077606709185
+ 0.44005383981072271
+ 0.44006690406264132
+ 0.44007996882287842
+ 0.44009303409146711
+ 0.44010609986843918
+ 0.44011916615382668
+ 0.44013223294766146
+ 0.44014530024997656
+ 0.44015836806080383
+ 0.4401714363801752
+ 0.44018450520812274
+ 0.44019757454467823
+ 0.44021064438987367
+ 0.44022371474374317
+ 0.4402367856063174
+ 0.44024985697762864
+ 0.44026292885770962
+ 0.44027600124659128
+ 0.44028907414430668
+ 0.44030214755088781
+ 0.44031522146636765
+ 0.44032829589077699
+ 0.44034137082414893
+ 0.44035444626651443
+ 0.44036752221790848
+ 0.44038059867835994
+ 0.4403936756479031
+ 0.44040675312656963
+ 0.4404198311143927
+ 0.44043290961140208
+ 0.44044598861763196
+ 0.44045906813311425
+ 0.44047214815788099
+ 0.44048522869196416
+ 0.44049830973539672
+ 0.44051139128821082
+ 0.44052447335043604
+ 0.44053755592210891
+ 0.44055063900325919
+ 0.4405637225939199
+ 0.44057680669412203
+ 0.44058989130389964
+ 0.44060297642328367
+ 0.44061606205230736
+ 0.44062914819100141
+ 0.44064223483940002
+ 0.44065532199753421
+ 0.44066840966543597
+ 0.44068149784313942
+ 0.44069458653067334
+ 0.44070767572807412
+ 0.44072076543537264
+ 0.44073385565259987
+ 0.44074694637978779
+ 0.44076003761697169
+ 0.44077312936418139
+ 0.44078622162145015
+ 0.44079931438880876
+ 0.44081240766629254
+ 0.44082550145393024
+ 0.44083859575175716
+ 0.44085169055980328
+ 0.44086478587810263
+ 0.44087788170668735
+ 0.44089097804558852
+ 0.44090407489483896
+ 0.44091717225447213
+ 0.44093027012451869
+ 0.44094336850501314
+ 0.44095646739598521
+ 0.44096956679746918
+ 0.44098266670949599
+ 0.44099576713209987
+ 0.44100886806531181
+ 0.44102196950916384
+ 0.44103507146368914
+ 0.44104817392891876
+ 0.44106127690488794
+ 0.44107438039162661
+ 0.44108748438916684
+ 0.44110058889754294
+ 0.44111369391678573
+ 0.44112679944692856
+ 0.44113990548800242
+ 0.44115301204004143
+ 0.44116611910307774
+ 0.44117922667714143
+ 0.4411923347622686
+ 0.44120544335848844
+ 0.44121855246583497
+ 0.4412316620843415
+ 0.44124477221403674
+ 0.44125788285495737
+ 0.44127099400713321
+ 0.44128410567059739
+ 0.44129721784538306
+ 0.44131033053152147
+ 0.44132344372904669
+ 0.44133655743798872
+ 0.44134967165838196
+ 0.44136278639025733
+ 0.44137590163364915
+ 0.44138901738858738
+ 0.44140213365510744
+ 0.44141525043324037
+ 0.44142836772301708
+ 0.44144148552447204
+ 0.44145460383763729
+ 0.44146772266254619
+ 0.4414808419992286
+ 0.44149396184771983
+ 0.44150708220805007
+ 0.44152020308025341
+ 0.44153332446436111
+ 0.4415464463604063
+ 0.44155956876842223
+ 0.44157269168843999
+ 0.44158581512049289
+ 0.4415989390646119
+ 0.44161206352083243
+ 0.44162518848918453
+ 0.44163831396970249
+ 0.44165143996241751
+ 0.44166456646736163
+ 0.44167769348456926
+ 0.44169082101407148
+ 0.44170394905590044
+ 0.44171707761009049
+ 0.44173020667667179
+ 0.44174333625567952
+ 0.44175646634714394
+ 0.44176959695109808
+ 0.44178272806757646
+ 0.44179585969660912
+ 0.44180899183822936
+ 0.44182212449247038
+ 0.44183525765936432
+ 0.44184839133894355
+ 0.44186152553124008
+ 0.44187466023628735
+ 0.4418877954541176
+ 0.44190093118476403
+ 0.44191406742825884
+ 0.44192720418463438
+ 0.44194034145392269
+ 0.44195347923615819
+ 0.44196661753137106
+ 0.44197975633959558
+ 0.44199289566086403
+ 0.44200603549520745
+ 0.44201917584266154
+ 0.44203231670325616
+ 0.44204545807702472
+ 0.44205859996400049
+ 0.44207174236421581
+ 0.44208488527770284
+ 0.44209802870449383
+ 0.44211117264462318
+ 0.442124317098121
+ 0.44213746206502175
+ 0.44215060754535868
+ 0.44216375353916193
+ 0.44217690004646587
+ 0.44219004706730286
+ 0.44220319460170621
+ 0.44221634264970699
+ 0.44222949121133853
+ 0.44224264028663346
+ 0.44225578987562586
+ 0.44226893997834593
+ 0.44228209059482809
+ 0.44229524172510354
+ 0.4423083933692068
+ 0.44232154552716907
+ 0.44233469819902355
+ 0.44234785138480387
+ 0.44236100508454096
+ 0.4423741592982684
+ 0.44238731402601839
+ 0.44240046926782428
+ 0.44241362502371839
+ 0.44242678129373419
+ 0.44243993807790283
+ 0.44245309537625771
+ 0.4424662531888322
+ 0.44247941151565862
+ 0.44249257035676925
+ 0.44250572971219743
+ 0.44251888958197561
+ 0.4425320499661361
+ 0.44254521086471221
+ 0.44255837227773753
+ 0.44257153420524187
+ 0.44258469664726113
+ 0.44259785960382647
+ 0.44261102307497008
+ 0.44262418706072665
+ 0.44263735156112621
+ 0.44265051657620447
+ 0.44266368210599255
+ 0.44267684815052394
+ 0.44269001470982994
+ 0.44270318178394502
+ 0.44271634937290039
+ 0.44272951747673073
+ 0.44274268609546713
+ 0.44275585522914307
+ 0.44276902487779207
+ 0.44278219504144534
+ 0.44279536572013628
+ 0.44280853691389743
+ 0.44282170862276204
+ 0.4428348808467637
+ 0.44284805358593365
+ 0.44286122684030527
+ 0.44287440060991312
+ 0.44288757489478653
+ 0.4429007496949609
+ 0.4429139250104675
+ 0.44292710084134113
+ 0.44294027718761292
+ 0.4429534540493163
+ 0.44296663142648368
+ 0.44297980931914765
+ 0.44299298772734241
+ 0.44300616665109965
+ 0.44301934609045257
+ 0.44303252604543486
+ 0.44304570651607772
+ 0.44305888750241457
+ 0.4430720690044791
+ 0.44308525102230245
+ 0.44309843355591932
+ 0.44311161660536208
+ 0.44312480017066314
+ 0.44313798425185602
+ 0.4431511688489721
+ 0.44316435396204584
+ 0.44317753959110973
+ 0.44319072573619628
+ 0.44320391239733886
+ 0.44321709957457001
+ 0.44323028726792213
+ 0.44324347547742987
+ 0.44325666420312443
+ 0.4432698534450385
+ 0.44328304320320638
+ 0.44329623347766084
+ 0.44330942426843412
+ 0.44332261557555863
+ 0.44333580739906808
+ 0.44334899973899589
+ 0.44336219259537352
+ 0.4433753859682355
+ 0.44338857985761321
+ 0.44340177426354144
+ 0.44341496918605139
+ 0.44342816462517665
+ 0.44344136058094968
+ 0.44345455705340409
+ 0.44346775404257344
+ 0.44348095154849021
+ 0.44349414957118571
+ 0.4435073481106947
+ 0.44352054716705064
+ 0.44353374674028501
+ 0.44354694683043128
+ 0.44356014743752209
+ 0.44357334856159203
+ 0.44358655020267135
+ 0.4435997523607948
+ 0.44361295503599596
+ 0.44362615822830626
+ 0.44363936193775916
+ 0.44365256616438847
+ 0.44366577090822651
+ 0.44367897616930696
+ 0.44369218194766125
+ 0.44370538824332395
+ 0.44371859505632777
+ 0.44373180238670501
+ 0.44374501023448948
+ 0.44375821859971359
+ 0.44377142748241089
+ 0.44378463688261294
+ 0.44379784680035561
+ 0.4438110572356701
+ 0.44382426818858911
+ 0.44383747965914616
+ 0.4438506916473749
+ 0.44386390415330806
+ 0.44387711717697781
+ 0.44389033071841816
+ 0.44390354477766142
+ 0.4439167593547424
+ 0.4439299744496914
+ 0.4439431900625444
+ 0.44395640619333271
+ 0.44396962284208891
+ 0.44398284000884775
+ 0.44399605769364081
+ 0.44400927589650152
+ 0.44402249461746474
+ 0.44403571385656093
+ 0.44404893361382486
+ 0.44406215388928894
+ 0.44407537468298686
+ 0.44408859599495126
+ 0.4441018178252148
+ 0.44411504017381093
+ 0.44412826304077346
+ 0.4441414864261351
+ 0.4441547103299292
+ 0.44416793475218763
+ 0.44418115969294486
+ 0.4441943851522337
+ 0.44420761113008655
+ 0.44422083762653836
+ 0.44423406464162046
+ 0.44424729217536674
+ 0.44426052022780965
+ 0.44427374879898307
+ 0.44428697788892058
+ 0.4443002074976537
+ 0.44431343762521819
+ 0.44432666827164469
+ 0.44433989943696789
+ 0.44435313112121944
+ 0.44436636332443402
+ 0.44437959604664434
+ 0.44439282928788393
+ 0.44440606304818464
+ 0.44441929732758101
+ 0.44443253212610573
+ 0.44444576744379161
+ 0.44445900328067323
+ 0.4444722396367824
+ 0.44448547651215248
+ 0.44449871390681761
+ 0.44451195182081016
+ 0.44452519025416298
+ 0.44453842920691072
+ 0.44455166867908497
+ 0.44456490867071968
+ 0.44457814918184835
+ 0.44459139021250377
+ 0.44460463176271964
+ 0.44461787383252865
+ 0.44463111642196457
+ 0.44464435953106013
+ 0.44465760315984887
+ 0.44467084730836481
+ 0.44468409197663933
+ 0.44469733716470633
+ 0.44471058287260073
+ 0.44472382910035291
+ 0.44473707584799993
+ 0.44475032311557122
+ 0.44476357090310165
+ 0.44477681921062501
+ 0.44479006803817517
+ 0.44480331738578355
+ 0.44481656725348406
+ 0.44482981764130947
+ 0.44484306854929556
+ 0.44485631997747305
+ 0.44486957192587562
+ 0.44488282439453702
+ 0.44489607738349013
+ 0.44490933089276974
+ 0.44492258492240755
+ 0.44493583947243726
+ 0.44494909454289272
+ 0.44496235013380664
+ 0.44497560624521193
+ 0.44498886287714312
+ 0.44500212002963341
+ 0.44501537770271521
+ 0.44502863589642233
+ 0.44504189461078764
+ 0.4450551538458461
+ 0.44506841360162919
+ 0.44508167387817088
+ 0.44509493467550504
+ 0.44510819599366425
+ 0.44512145783268253
+ 0.44513472019259248
+ 0.44514798307342912
+ 0.44516124647522304
+ 0.44517451039801026
+ 0.44518777484182237
+ 0.4452010398066944
+ 0.44521430529265804
+ 0.4452275712997471
+ 0.44524083782799656
+ 0.44525410487743805
+ 0.44526737244810549
+ 0.44528064054003164
+ 0.44529390915325157
+ 0.44530717828779676
+ 0.44532044794370235
+ 0.44533371812100103
+ 0.44534698881972556
+ 0.44536026003991003
+ 0.44537353178158806
+ 0.44538680404479258
+ 0.4454000768295564
+ 0.44541335013591449
+ 0.44542662396389954
+ 0.44543989831354458
+ 0.44545317318488442
+ 0.44546644857795081
+ 0.44547972449277767
+ 0.44549300092939892
+ 0.44550627788784847
+ 0.44551955536815913
+ 0.44553283337036365
+ 0.44554611189449717
+ 0.44555939094059127
+ 0.4455726705086811
+ 0.44558595059879841
+ 0.44559923121097916
+ 0.44561251234525401
+ 0.44562579400165808
+ 0.44563907618022425
+ 0.44565235888098748
+ 0.44566564210397941
+ 0.44567892584923419
+ 0.4456922101167855
+ 0.44570549490666644
+ 0.44571878021891087
+ 0.44573206605355264
+ 0.44574535241062474
+ 0.44575863929016096
+ 0.4457719266921944
+ 0.44578521461675874
+ 0.44579850306388702
+ 0.44581179203361443
+ 0.4458250815259735
+ 0.44583837154099615
+ 0.44585166207871979
+ 0.44586495313917374
+ 0.4458782447223944
+ 0.44589153682841448
+ 0.445904829457267
+ 0.44591812260898578
+ 0.44593141628360605
+ 0.44594471048115836
+ 0.44595800520167794
+ 0.44597130044519978
+ 0.44598459621175357
+ 0.4459978925013765
+ 0.4460111893141015
+ 0.44602448664996036
+ 0.44603778450898823
+ 0.44605108289121914
+ 0.44606438179668478
+ 0.44607768122542024
+ 0.44609098117745866
+ 0.44610428165283378
+ 0.4461175826515798
+ 0.44613088417372843
+ 0.44614418621931479
+ 0.44615748878837302
+ 0.44617079188093595
+ 0.44618409549703653
+ 0.44619739963670979
+ 0.44621070429998783
+ 0.44622400948690549
+ 0.44623731519749588
+ 0.44625062143179295
+ 0.44626392818983068
+ 0.44627723547164216
+ 0.44629054327726042
+ 0.44630385160672026
+ 0.44631716046005387
+ 0.44633046983729724
+ 0.44634377973848249
+ 0.44635709016364239
+ 0.44637040111281318
+ 0.44638371258602677
+ 0.44639702458331626
+ 0.44641033710471767
+ 0.44642365015026197
+ 0.44643696371998526
+ 0.4464502778139196
+ 0.44646359243209888
+ 0.44647690757455738
+ 0.44649022324132781
+ 0.44650353943244564
+ 0.44651685614794356
+ 0.44653017338785478
+ 0.44654349115221337
+ 0.4465568094410533
+ 0.44657012825440873
+ 0.44658344759231267
+ 0.4465967674547992
+ 0.44661008784190137
+ 0.44662340875365314
+ 0.44663673019008887
+ 0.44665005215124232
+ 0.44666337463714678
+ 0.44667669764783507
+ 0.44669002118334372
+ 0.44670334524370336
+ 0.44671666982894931
+ 0.44672999493911558
+ 0.44674332057423527
+ 0.44675664673434251
+ 0.44676997341947139
+ 0.44678330062965388
+ 0.44679662836492628
+ 0.44680995662532158
+ 0.44682328541087191
+ 0.4468366147216134
+ 0.44684994455757804
+ 0.44686327491880107
+ 0.44687660580531446
+ 0.44688993721715464
+ 0.44690326915435336
+ 0.4469166016169438
+ 0.44692993460496244
+ 0.44694326811844198
+ 0.44695660215741478
+ 0.44696993672191587
+ 0.44698327181197939
+ 0.44699660742763847
+ 0.44700994356892737
+ 0.44702328023588012
+ 0.4470366174285299
+ 0.44704995514691076
+ 0.44706329339105705
+ 0.44707663216100274
+ 0.44708997145677992
+ 0.44710331127842395
+ 0.44711665162596886
+ 0.44712999249944785
+ 0.44714333389889616
+ 0.44715667582434582
+ 0.44717001827583097
+ 0.44718336125338592
+ 0.44719670475704476
+ 0.44721004878684173
+ 0.44722339334280997
+ 0.44723673842498357
+ 0.44725008403339689
+ 0.44726343016808284
+ 0.44727677682907585
+ 0.44729012401641011
+ 0.44730347173011864
+ 0.44731681997023565
+ 0.44733016873679654
+ 0.4473435180298333
+ 0.44735686784938128
+ 0.44737021819547362
+ 0.44738356906814447
+ 0.44739692046742702
+ 0.44741027239335668
+ 0.44742362484596543
+ 0.44743697782528852
+ 0.44745033133136131
+ 0.44746368536421388
+ 0.4474770399238846
+ 0.44749039501040344
+ 0.44750375062380687
+ 0.44751710676412904
+ 0.44753046343140218
+ 0.44754382062566156
+ 0.4475571783469402
+ 0.44757053659527263
+ 0.44758389537069293
+ 0.44759725467323547
+ 0.44761061450293338
+ 0.44762397485982081
+ 0.44763733574393222
+ 0.44765069715530081
+ 0.44766405909396073
+ 0.44767742155994733
+ 0.44769078455329397
+ 0.44770414807403269
+ 0.44771751212219979
+ 0.44773087669782979
+ 0.44774424180095468
+ 0.44775760743160875
+ 0.44777097358982743
+ 0.44778434027564401
+ 0.44779770748909153
+ 0.44781107523020547
+ 0.44782444349902001
+ 0.44783781229556857
+ 0.44785118161988435
+ 0.44786455147200271
+ 0.44787792185195674
+ 0.4478912927597809
+ 0.44790466419550945
+ 0.44791803615917691
+ 0.44793140865081615
+ 0.44794478167046176
+ 0.44795815521814802
+ 0.44797152929390932
+ 0.44798490389777867
+ 0.44799827902979178
+ 0.44801165468998067
+ 0.4480250308783808
+ 0.44803840759502644
+ 0.4480517848399509
+ 0.44806516261318852
+ 0.44807854091477478
+ 0.44809191974474072
+ 0.44810529910312291
+ 0.44811867898995461
+ 0.44813205940527007
+ 0.44814544034910386
+ 0.44815882182148908
+ 0.44817220382246131
+ 0.44818558635205369
+ 0.44819896941030068
+ 0.44821235299723561
+ 0.44822573711289382
+ 0.44823912175730762
+ 0.44825250693051344
+ 0.44826589263254474
+ 0.44827927886343466
+ 0.44829266562321879
+ 0.44830605291193043
+ 0.44831944072960384
+ 0.44833282907627359
+ 0.44834621795197288
+ 0.44835960735673613
+ 0.44837299729059882
+ 0.44838638775359313
+ 0.44839977874575582
+ 0.44841317026711885
+ 0.44842656231771694
+ 0.44843995489758537
+ 0.4484533480067564
+ 0.44846674164526562
+ 0.44848013581314738
+ 0.44849353051043511
+ 0.44850692573716311
+ 0.4485203214933659
+ 0.44853371777907775
+ 0.44854711459433333
+ 0.44856051193916585
+ 0.44857390981360973
+ 0.44858730821769943
+ 0.44860070715146944
+ 0.44861410661495421
+ 0.44862750660818695
+ 0.44864090713120336
+ 0.44865430818403562
+ 0.44866770976672044
+ 0.44868111187928994
+ 0.44869451452177994
+ 0.44870791769422352
+ 0.44872132139665638
+ 0.44873472562911082
+ 0.44874813039162348
+ 0.44876153568422655
+ 0.44877494150695457
+ 0.44878834785984317
+ 0.44880175474292661
+ 0.44881516215623646
+ 0.44882857009981014
+ 0.44884197857368008
+ 0.44885538757788296
+ 0.44886879711245098
+ 0.44888220717741772
+ 0.44889561777281867
+ 0.44890902889868939
+ 0.44892244055506225
+ 0.44893585274197273
+ 0.44894926545945329
+ 0.44896267870754059
+ 0.44897609248626907
+ 0.44898950679567001
+ 0.44900292163578115
+ 0.44901633700663601
+ 0.4490297529082668
+ 0.44904316934071031
+ 0.44905658630400003
+ 0.4490700037981703
+ 0.44908342182325584
+ 0.44909684037929093
+ 0.44911025946630928
+ 0.44912367908434525
+ 0.44913709923343337
+ 0.44915051991360944
+ 0.44916394112490676
+ 0.44917736286735882
+ 0.44919078514100125
+ 0.44920420794586752
+ 0.44921763128199327
+ 0.44923105514941192
+ 0.44924447954815805
+ 0.44925790447826625
+ 0.44927132993977098
+ 0.44928475593270584
+ 0.44929818245710745
+ 0.44931160951300725
+ 0.44932503710044192
+ 0.44933846521944376
+ 0.44935189387004959
+ 0.44936532305229299
+ 0.44937875276620731
+ 0.44939218301182937
+ 0.44940561378919047
+ 0.44941904509832736
+ 0.44943247693927363
+ 0.44944590931206363
+ 0.44945934221673228
+ 0.44947277565331506
+ 0.44948620962184438
+ 0.44949964412235488
+ 0.44951307915488226
+ 0.44952651471946115
+ 0.44953995081612397
+ 0.44955338744490747
+ 0.44956682460584518
+ 0.44958026229897158
+ 0.44959370052432157
+ 0.44960713928192847
+ 0.44962057857182808
+ 0.44963401839405492
+ 0.44964745874864276
+ 0.44966089963562589
+ 0.44967434105503917
+ 0.44968778300691825
+ 0.44970122549129565
+ 0.44971466850820702
+ 0.44972811205768698
+ 0.44974155613977024
+ 0.44975500075449032
+ 0.44976844590188297
+ 0.44978189158198167
+ 0.44979533779482239
+ 0.44980878454043738
+ 0.44982223181886233
+ 0.44983567963013321
+ 0.44984912797428345
+ 0.44986257685134673
+ 0.4498760262613587
+ 0.44988947620435293
+ 0.4499029266803653
+ 0.44991637768943032
+ 0.4499298292315817
+ 0.44994328130685407
+ 0.44995673391528213
+ 0.44997018705690051
+ 0.44998364073174502
+ 0.44999709493984819
+ 0.45001054968124582
+ 0.4500240049559725
+ 0.45003746076406298
+ 0.45005091710555084
+ 0.45006437398047189
+ 0.45007783138885976
+ 0.45009128933075027
+ 0.45010474780617699
+ 0.45011820681517345
+ 0.45013166635777779
+ 0.45014512643402144
+ 0.45015858704394107
+ 0.45017204818756945
+ 0.45018550986494238
+ 0.45019897207609555
+ 0.45021243482106055
+ 0.45022589809987523
+ 0.4502393619125723
+ 0.45025282625918739
+ 0.45026629113975425
+ 0.45027975655430769
+ 0.45029322250288345
+ 0.45030668898551629
+ 0.45032015600223863
+ 0.4503336235530877
+ 0.450347091638097
+ 0.45036056025730115
+ 0.45037402941073507
+ 0.45038749909843351
+ 0.45040096932043122
+ 0.45041444007676279
+ 0.45042791136746324
+ 0.4504413831925661
+ 0.45045485555210718
+ 0.45046832844612139
+ 0.45048180187464343
+ 0.45049527583770693
+ 0.45050875033534782
+ 0.45052222536759989
+ 0.45053570093449768
+ 0.45054917703607833
+ 0.4505626536723733
+ 0.45057613084341963
+ 0.45058960854925095
+ 0.45060308678990318
+ 0.45061656556540997
+ 0.4506300448758061
+ 0.45064352472112651
+ 0.45065700510140588
+ 0.45067048601667897
+ 0.45068396746698186
+ 0.45069744945234713
+ 0.45071093197281165
+ 0.4507244150284081
+ 0.45073789861917346
+ 0.45075138274514048
+ 0.45076486740634508
+ 0.45077835260282301
+ 0.4507918383346069
+ 0.45080532460173289
+ 0.45081881140423463
+ 0.45083229874214908
+ 0.45084578661551
+ 0.45085927502435119
+ 0.45087276396870846
+ 0.45088625344861688
+ 0.45089974346410994
+ 0.45091323401522487
+ 0.45092672510199311
+ 0.45094021672445284
+ 0.45095370888263681
+ 0.45096720157658088
+ 0.45098069480631992
+ 0.45099418857188778
+ 0.45100768287332021
+ 0.45102117771065231
+ 0.45103467308391787
+ 0.45104816899315264
+ 0.45106166543839155
+ 0.45107516241966855
+ 0.45108865993701941
+ 0.45110215799047804
+ 0.4511156565800804
+ 0.45112915570586248
+ 0.4511426553678558
+ 0.45115615556609756
+ 0.45116965630062267
+ 0.45118315757146582
+ 0.45119665937865999
+ 0.4512101617222431
+ 0.45122366460224922
+ 0.45123716801871189
+ 0.45125067197166741
+ 0.45126417646115041
+ 0.45127768148719488
+ 0.45129118704983784
+ 0.45130469314911209
+ 0.45131819978505361
+ 0.45133170695769631
+ 0.45134521466707711
+ 0.45135872291322893
+ 0.45137223169618873
+ 0.45138574101598938
+ 0.45139925087266702
+ 0.45141276126625629
+ 0.45142627219679232
+ 0.45143978366430998
+ 0.45145329566884435
+ 0.45146680821043023
+ 0.45148032128910365
+ 0.45149383490489747
+ 0.45150734905784878
+ 0.45152086374799039
+ 0.45153437897535942
+ 0.45154789473999085
+ 0.45156141104191738
+ 0.4515749278811762
+ 0.45158844525780234
+ 0.45160196317182855
+ 0.45161548162329201
+ 0.4516290006122276
+ 0.45164252013866929
+ 0.45165604020265315
+ 0.45166956080421311
+ 0.45168308194338513
+ 0.45169660362020314
+ 0.45171012583470438
+ 0.45172364858692271
+ 0.45173717187689094
+ 0.45175069570464849
+ 0.45176422007022704
+ 0.45177774497366263
+ 0.45179127041499029
+ 0.45180479639424509
+ 0.45181832291146318
+ 0.45183184996667725
+ 0.45184537755992443
+ 0.45185890569123999
+ 0.45187243436065661
+ 0.45188596356821253
+ 0.45189949331393958
+ 0.45191302359787505
+ 0.45192655442005392
+ 0.45194008578051109
+ 0.45195361767928177
+ 0.45196715011639976
+ 0.45198068309190126
+ 0.4519942166058224
+ 0.45200775065819604
+ 0.45202128524905832
+ 0.4520348203784455
+ 0.45204835604639126
+ 0.45206189225293086
+ 0.45207542899810033
+ 0.45208896628193385
+ 0.4521025041044674
+ 0.45211604246573595
+ 0.45212958136577369
+ 0.45214312080461655
+ 0.45215666078229982
+ 0.45217020129885854
+ 0.45218374235432773
+ 0.45219728394874237
+ 0.45221082608213881
+ 0.45222436875455085
+ 0.45223791196601376
+ 0.4522514557165625
+ 0.45226500000623449
+ 0.45227854483506252
+ 0.45229209020308159
+ 0.4523056361103292
+ 0.45231918255683812
+ 0.45233272954264575
+ 0.45234627706778591
+ 0.45235982513229389
+ 0.45237337373620479
+ 0.45238692287955468
+ 0.45240047256237764
+ 0.45241402278470993
+ 0.45242757354658658
+ 0.45244112484804294
+ 0.45245467668911271
+ 0.45246822906983331
+ 0.45248178199023786
+ 0.45249533545036469
+ 0.45250888945024542
+ 0.45252244398991764
+ 0.45253599906941538
+ 0.45254955468877583
+ 0.45256311084803214
+ 0.45257666754722031
+ 0.45259022478637556
+ 0.45260378256553313
+ 0.45261734088472927
+ 0.45263089974399795
+ 0.45264445914337426
+ 0.45265801908289471
+ 0.45267157956259424
+ 0.45268514058250814
+ 0.45269870214267149
+ 0.4527122642431195
+ 0.45272582688388741
+ 0.45273939006501124
+ 0.45275295378652425
+ 0.45276651804846485
+ 0.45278008285086707
+ 0.45279364819376489
+ 0.45280721407719488
+ 0.45282078050119307
+ 0.4528343474657936
+ 0.45284791497103172
+ 0.45286148301694384
+ 0.45287505160356489
+ 0.45288862073092911
+ 0.45290219039907292
+ 0.4529157606080324
+ 0.4529293313578418
+ 0.45294290264853632
+ 0.45295647448015108
+ 0.45297004685272363
+ 0.45298361976628687
+ 0.45299719322087828
+ 0.45301076721653089
+ 0.45302434175328105
+ 0.4530379168311649
+ 0.45305149245021797
+ 0.45306506861047413
+ 0.45307864531196995
+ 0.45309222255474141
+ 0.45310580033882192
+ 0.45311937866424884
+ 0.4531329575310562
+ 0.45314653693928031
+ 0.45316011688895658
+ 0.45317369738011909
+ 0.45318727841280537
+ 0.4532008599870494
+ 0.45321444210288764
+ 0.45322802476035434
+ 0.45324160795948565
+ 0.45325519170031714
+ 0.45326877598288368
+ 0.45328236080722084
+ 0.45329594617336499
+ 0.45330953208134911
+ 0.45332311853121288
+ 0.45333670552298833
+ 0.45335029305671176
+ 0.45336388113241854
+ 0.45337746975014492
+ 0.45339105890992643
+ 0.45340464861179819
+ 0.45341823885579446
+ 0.45343182964195272
+ 0.45344542097030716
+ 0.45345901284089418
+ 0.45347260525374794
+ 0.45348619820890496
+ 0.45349979170640053
+ 0.45351338574627098
+ 0.45352698032855171
+ 0.45354057545327575
+ 0.45355417112048174
+ 0.45356776733020393
+ 0.45358136408247773
+ 0.45359496137733835
+ 0.45360855921482224
+ 0.45362215759496471
+ 0.45363575651780119
+ 0.45364935598336692
+ 0.45366295599169731
+ 0.45367655654282868
+ 0.4536901576367966
+ 0.45370375927363621
+ 0.45371736145338298
+ 0.45373096417607328
+ 0.45374456744174141
+ 0.45375817125042373
+ 0.45377177560215576
+ 0.45378538049697281
+ 0.45379898593491014
+ 0.45381259191600554
+ 0.45382619844029187
+ 0.45383980550780467
+ 0.45385341311858274
+ 0.4538670212726591
+ 0.45388062997006917
+ 0.45389423921085043
+ 0.45390784899503617
+ 0.45392145932266398
+ 0.45393507019376927
+ 0.45394868160838631
+ 0.45396229356655149
+ 0.4539759060683014
+ 0.45398951911367036
+ 0.45400313270269482
+ 0.4540167468354091
+ 0.45403036151185083
+ 0.45404397673205432
+ 0.45405759249605493
+ 0.45407120880389029
+ 0.4540848256555936
+ 0.45409844305120267
+ 0.45411206099075158
+ 0.45412567947427684
+ 0.454139298501814
+ 0.45415291807339853
+ 0.45416653818906677
+ 0.45418015884885327
+ 0.45419378005279448
+ 0.45420740180092578
+ 0.45422102409328369
+ 0.45423464692990262
+ 0.45424827031082032
+ 0.45426189423606878
+ 0.454275518705689
+ 0.45428914371971202
+ 0.45430276927817559
+ 0.45431639538111501
+ 0.45433002202856693
+ 0.45434364922056569
+ 0.45435727695714789
+ 0.454370905238349
+ 0.45438453406420448
+ 0.45439816343475081
+ 0.45441179335002468
+ 0.45442542381005818
+ 0.45443905481489139
+ 0.45445268636455732
+ 0.45446631845909269
+ 0.45447995109853301
+ 0.45449358428291481
+ 0.45450721801227251
+ 0.45452085228664274
+ 0.45453448710606204
+ 0.45454812247056486
+ 0.45456175838018659
+ 0.45457539483496512
+ 0.45458903183493471
+ 0.45460266938013089
+ 0.45461630747059145
+ 0.45462994610634955
+ 0.45464358528744314
+ 0.45465722501390649
+ 0.45467086528577721
+ 0.45468450610308891
+ 0.45469814746587911
+ 0.45471178937418338
+ 0.45472543182803737
+ 0.45473907482747644
+ 0.45475271837253722
+ 0.4547663624632543
+ 0.45478000709966537
+ 0.45479365228180491
+ 0.45480729800970937
+ 0.45482094428341452
+ 0.45483459110295577
+ 0.45484823846836991
+ 0.45486188637969138
+ 0.45487553483695775
+ 0.45488918384020482
+ 0.45490283338946685
+ 0.4549164834847797
+ 0.45493013412618188
+ 0.45494378531370705
+ 0.45495743704739167
+ 0.45497108932727254
+ 0.45498474215338297
+ 0.45499839552576188
+ 0.45501204944444384
+ 0.45502570390946434
+ 0.45503935892086
+ 0.45505301447866658
+ 0.45506667058292072
+ 0.45508032723365677
+ 0.45509398443091165
+ 0.45510764217472083
+ 0.45512130046512106
+ 0.4551349593021467
+ 0.455148618685837
+ 0.45516227861622388
+ 0.45517593909334647
+ 0.45518960011723819
+ 0.45520326168793684
+ 0.45521692380547918
+ 0.45523058646989834
+ 0.45524424968123151
+ 0.45525791343951511
+ 0.45527157774478594
+ 0.45528524259707864
+ 0.45529890799642864
+ 0.45531257394287283
+ 0.45532624043644793
+ 0.45533990747718961
+ 0.45535357506513346
+ 0.45536724320031513
+ 0.45538091188277136
+ 0.45539458111253678
+ 0.4554082508896492
+ 0.45542192121414421
+ 0.45543559208605761
+ 0.45544926350542497
+ 0.45546293547228311
+ 0.45547660798666767
+ 0.45549028104861539
+ 0.45550395465816085
+ 0.45551762881534091
+ 0.45553130352019233
+ 0.45554497877274963
+ 0.45555865457304945
+ 0.45557233092112892
+ 0.45558600781702352
+ 0.45559968526076899
+ 0.45561336325240098
+ 0.4556270417919564
+ 0.45564072087947077
+ 0.45565440051498091
+ 0.45566808069852272
+ 0.45568176143013184
+ 0.4556954427098438
+ 0.4557091245376968
+ 0.45572280691372513
+ 0.45573648983796589
+ 0.45575017331045348
+ 0.45576385733122599
+ 0.45577754190031905
+ 0.45579122701776736
+ 0.45580491268360979
+ 0.45581859889788012
+ 0.45583228566061501
+ 0.45584597297185231
+ 0.45585966083162582
+ 0.45587334923997225
+ 0.45588703819692844
+ 0.45590072770253004
+ 0.45591441775681296
+ 0.45592810835981512
+ 0.45594179951157005
+ 0.45595549121211565
+ 0.45596918346148763
+ 0.455982876259722
+ 0.45599656960685547
+ 0.45601026350292384
+ 0.4560239579479628
+ 0.45603765294201037
+ 0.45605134848510126
+ 0.4560650445772701
+ 0.45607874121855702
+ 0.45609243840899466
+ 0.456106136148622
+ 0.45611983443747262
+ 0.45613353327558448
+ 0.45614723266299356
+ 0.45616093259973539
+ 0.45617463308584699
+ 0.45618833412136423
+ 0.45620203570632395
+ 0.4562157378407608
+ 0.45622944052471287
+ 0.45624314375821595
+ 0.4562568475413058
+ 0.45627055187401827
+ 0.45628425675639028
+ 0.4562979621884577
+ 0.45631166817025742
+ 0.45632537470182521
+ 0.45633908178319804
+ 0.4563527894144106
+ 0.45636649759550213
+ 0.456380206326505
+ 0.45639391560745857
+ 0.45640762543839741
+ 0.45642133581935956
+ 0.45643504675037977
+ 0.45644875823149506
+ 0.45646247026274023
+ 0.45647618284415431
+ 0.45648989597577094
+ 0.45650360965762826
+ 0.45651732388976207
+ 0.45653103867220945
+ 0.45654475400500505
+ 0.45655846988818582
+ 0.45657218632178886
+ 0.45658590330584881
+ 0.45659962084040484
+ 0.45661333892549077
+ 0.45662705756114347
+ 0.45664077674740106
+ 0.45665449648429729
+ 0.45666821677187003
+ 0.4566819376101553
+ 0.45669565899918912
+ 0.45670938093900831
+ 0.45672310342964995
+ 0.45673682647114883
+ 0.45675055006354304
+ 0.45676427420686738
+ 0.45677799890116005
+ 0.45679172414645458
+ 0.45680544994279032
+ 0.45681917629020308
+ 0.45683290318872782
+ 0.45684663063840147
+ 0.45686035863926105
+ 0.45687408719134365
+ 0.45688781629468289
+ 0.45690154594931925
+ 0.45691527615528632
+ 0.45692900691262006
+ 0.45694273822135884
+ 0.45695647008153933
+ 0.45697020249319548
+ 0.45698393545636651
+ 0.45699766897108618
+ 0.45701140303739268
+ 0.45702513765532288
+ 0.4570388728249119
+ 0.45705260854619773
+ 0.45706634481921526
+ 0.45708008164400149
+ 0.45709381902059254
+ 0.45710755694902649
+ 0.45712129542933821
+ 0.45713503446156478
+ 0.45714877404574328
+ 0.45716251418190867
+ 0.45717625487009789
+ 0.45718999611034916
+ 0.45720373790269631
+ 0.45721748024717868
+ 0.45723122314383102
+ 0.45724496659268948
+ 0.45725871059379203
+ 0.4572724551471738
+ 0.45728620025287303
+ 0.45729994591092432
+ 0.45731369212136508
+ 0.45732743888423227
+ 0.45734118619956188
+ 0.45735493406739119
+ 0.45736868248775603
+ 0.45738243146069252
+ 0.45739618098623774
+ 0.4574099310644289
+ 0.45742368169530195
+ 0.45743743287889282
+ 0.45745118461524004
+ 0.45746493690437712
+ 0.4574786897463447
+ 0.45749244314117549
+ 0.45750619708890872
+ 0.45751995158957842
+ 0.45753370664322485
+ 0.45754746224988091
+ 0.4575612184095858
+ 0.45757497512237466
+ 0.45758873238828457
+ 0.45760249020735272
+ 0.45761624857961386
+ 0.45763000750510657
+ 0.45764376698386783
+ 0.45765752701593271
+ 0.45767128760133818
+ 0.45768504874012178
+ 0.45769881043231808
+ 0.45771257267796572
+ 0.45772633547710051
+ 0.45774009882976086
+ 0.45775386273598073
+ 0.45776762719579828
+ 0.45778139220924963
+ 0.45779515777637203
+ 0.45780892389720151
+ 0.45782269057177538
+ 0.45783645780012966
+ 0.45785022558230154
+ 0.45786399391832833
+ 0.45787776280824488
+ 0.45789153225208962
+ 0.45790530224989756
+ 0.45791907280170813
+ 0.45793284390755518
+ 0.45794661556747601
+ 0.45796038778151016
+ 0.45797416054969015
+ 0.45798793387205572
+ 0.45800170774864163
+ 0.45801548217948523
+ 0.45802925716462506
+ 0.4580430327040948
+ 0.45805680879793398
+ 0.45807058544617774
+ 0.45808436264886315
+ 0.45809814040602642
+ 0.45811191871770496
+ 0.4581256975839359
+ 0.45813947700475538
+ 0.45815325698020071
+ 0.45816703751030802
+ 0.45818081859511456
+ 0.45819460023465663
+ 0.45820838242897138
+ 0.45822216517809511
+ 0.458235948482066
+ 0.45824973234091926
+ 0.45826351675469224
+ 0.45827730172342207
+ 0.45829108724714501
+ 0.45830487332589837
+ 0.45831865995971943
+ 0.45833244714864341
+ 0.45834623489270843
+ 0.4583600231919509
+ 0.45837381204640693
+ 0.45838760145611512
+ 0.4584013914211103
+ 0.45841518194143099
+ 0.45842897301711349
+ 0.45844276464819395
+ 0.45845655683470965
+ 0.45847034957669919
+ 0.45848414287419637
+ 0.45849793672723976
+ 0.45851173113586546
+ 0.45852552610011199
+ 0.45853932162001459
+ 0.45855311769561041
+ 0.45856691432693575
+ 0.45858071151402907
+ 0.45859450925692785
+ 0.4586083075556659
+ 0.45862210641028178
+ 0.45863590582081293
+ 0.45864970578729647
+ 0.45866350630976777
+ 0.45867730738826412
+ 0.45869110902282406
+ 0.45870491121348267
+ 0.4587187139602773
+ 0.45873251726324643
+ 0.45874632112242425
+ 0.45876012553785028
+ 0.45877393050955961
+ 0.45878773603758971
+ 0.45880154212197899
+ 0.45881534876276164
+ 0.45882915595997714
+ 0.45884296371366079
+ 0.45885677202385095
+ 0.45887058089058302
+ 0.45888439031389427
+ 0.45889820029382311
+ 0.45891201083040606
+ 0.45892582192367809
+ 0.45893963357367801
+ 0.45895344578044406
+ 0.45896725854401049
+ 0.45898107186441572
+ 0.45899488574169622
+ 0.45900870017588924
+ 0.45902251516703235
+ 0.45903633071516181
+ 0.45905014682031509
+ 0.45906396348252854
+ 0.45907778070183952
+ 0.45909159847828551
+ 0.45910541681190392
+ 0.45911923570272994
+ 0.45913305515080238
+ 0.45914687515615732
+ 0.45916069571883339
+ 0.45917451683886479
+ 0.45918833851629004
+ 0.45920216075114773
+ 0.45921598354347187
+ 0.45922980689330234
+ 0.45924363080067543
+ 0.45925745526562745
+ 0.45927128028819492
+ 0.45928510586841625
+ 0.45929893200632893
+ 0.45931275870196836
+ 0.45932658595537312
+ 0.45934041376657941
+ 0.45935424213562492
+ 0.45936807106254585
+ 0.45938190054738109
+ 0.4593957305901657
+ 0.45940956119093712
+ 0.45942339234973417
+ 0.45943722406659204
+ 0.45945105634154931
+ 0.45946488917464134
+ 0.45947872256590783
+ 0.45949255651538301
+ 0.45950639102310648
+ 0.45952022608911375
+ 0.45953406171344335
+ 0.45954789789613165
+ 0.45956173463721522
+ 0.45957557193673254
+ 0.45958940979471902
+ 0.45960324821121329
+ 0.45961708718625288
+ 0.45963092671987421
+ 0.4596447668121138
+ 0.45965860746300907
+ 0.45967244867259877
+ 0.45968629044091824
+ 0.45970013276800498
+ 0.45971397565389766
+ 0.4597278190986317
+ 0.45974166310224457
+ 0.45975550766477502
+ 0.45976935278625952
+ 0.45978319846673449
+ 0.45979704470623622
+ 0.45981089150480492
+ 0.45982473886247566
+ 0.45983858677928596
+ 0.45985243525527475
+ 0.45986628429047616
+ 0.4598801338849301
+ 0.45989398403867282
+ 0.45990783475174096
+ 0.45992168602417322
+ 0.45993553785600511
+ 0.45994939024727627
+ 0.45996324319802101
+ 0.45997709670827919
+ 0.45999095077808727
+ 0.46000480540748184
+ 0.46001866059650048
+ 0.46003251634518078
+ 0.4600463726535603
+ 0.4600602295216758
+ 0.46007408694956342
+ 0.46008794493726335
+ 0.46010180348481083
+ 0.46011566259224357
+ 0.46012952225959919
+ 0.46014338248691522
+ 0.4601572432742283
+ 0.46017110462157507
+ 0.46018496652899521
+ 0.4601988289965242
+ 0.46021269202419868
+ 0.46022655561205844
+ 0.46024041976013874
+ 0.46025428446847877
+ 0.46026814973711366
+ 0.46028201556608223
+ 0.46029588195542231
+ 0.46030974890517024
+ 0.46032361641536274
+ 0.46033748448603962
+ 0.46035135311723524
+ 0.46036522230898952
+ 0.46037909206133798
+ 0.46039296237431943
+ 0.46040683324797027
+ 0.46042070468232832
+ 0.46043457667743132
+ 0.46044844923331685
+ 0.46046232235002044
+ 0.460476196027581
+ 0.46049007026603728
+ 0.46050394506542347
+ 0.46051782042577982
+ 0.46053169634714275
+ 0.46054557282954778
+ 0.4605594498730371
+ 0.4605733274776429
+ 0.46058720564340611
+ 0.46060108437036235
+ 0.46061496365855048
+ 0.46062884350800698
+ 0.46064272391876865
+ 0.46065660489087423
+ 0.46067048642436143
+ 0.46068436851926703
+ 0.46069825117562863
+ 0.46071213439348291
+ 0.46072601817286873
+ 0.4607399025138228
+ 0.46075378741638168
+ 0.46076767288058534
+ 0.46078155890646938
+ 0.46079544549407159
+ 0.46080933264342966
+ 0.46082322035458134
+ 0.46083710862756444
+ 0.46085099746241459
+ 0.46086488685917165
+ 0.46087877681787243
+ 0.4608926673385535
+ 0.46090655842125383
+ 0.4609204500660089
+ 0.46093434227285868
+ 0.46094823504184002
+ 0.4609621283729895
+ 0.46097602226634493
+ 0.460989916721943
+ 0.46100381173982485
+ 0.4610177073200239
+ 0.46103160346257999
+ 0.4610455001675301
+ 0.46105939743491292
+ 0.46107329526476298
+ 0.46108719365712164
+ 0.46110109261202309
+ 0.46111499212950752
+ 0.46112889220961051
+ 0.4611427928523722
+ 0.46115669405782816
+ 0.46117059582601605
+ 0.46118449815697388
+ 0.46119840105073945
+ 0.46121230450735068
+ 0.46122620852684426
+ 0.46124011310925789
+ 0.46125401825463064
+ 0.46126792396299826
+ 0.46128183023439956
+ 0.4612957370688725
+ 0.46130964446645378
+ 0.46132355242717998
+ 0.46133746095109157
+ 0.46135137003822502
+ 0.46136527968861724
+ 0.46137918990230598
+ 0.46139310067933026
+ 0.46140701201972684
+ 0.46142092392353262
+ 0.46143483639078642
+ 0.46144874942152508
+ 0.46146266301578776
+ 0.46147657717360985
+ 0.46149049189503166
+ 0.46150440718008878
+ 0.46151832302882029
+ 0.46153223944126293
+ 0.46154615641745456
+ 0.4615600739574332
+ 0.46157399206123678
+ 0.46158791072890304
+ 0.46160182996046895
+ 0.46161574975597347
+ 0.46162967011545236
+ 0.46164359103894564
+ 0.46165751252648907
+ 0.46167143457812182
+ 0.46168535719388171
+ 0.46169928037380442
+ 0.46171320411793015
+ 0.46172712842629687
+ 0.46174105329894022
+ 0.46175497873589821
+ 0.46176890473720988
+ 0.46178283130291325
+ 0.46179675843304513
+ 0.46181068612764226
+ 0.46182461438674488
+ 0.46183854321038997
+ 0.46185247259861423
+ 0.46186640255145561
+ 0.46188033306895332
+ 0.46189426415114521
+ 0.46190819579806597
+ 0.46192212800975807
+ 0.46193606078625499
+ 0.46194999412759813
+ 0.46196392803382319
+ 0.46197786250496797
+ 0.46199179754107078
+ 0.46200573314216942
+ 0.46201966930830318
+ 0.4620336060395076
+ 0.46204754333582193
+ 0.46206148119728302
+ 0.46207541962393006
+ 0.46208935861579992
+ 0.46210329817293044
+ 0.46211723829535989
+ 0.46213117898312628
+ 0.46214512023626736
+ 0.46215906205482027
+ 0.46217300443882414
+ 0.46218694738831573
+ 0.46220089090333444
+ 0.46221483498391697
+ 0.46222877963010023
+ 0.46224272484192469
+ 0.4622566706194271
+ 0.46227061696264454
+ 0.46228456387161482
+ 0.4622985113463785
+ 0.46231245938697013
+ 0.46232640799342994
+ 0.46234035716579391
+ 0.46235430690410223
+ 0.46236825720839192
+ 0.46238220807870095
+ 0.46239615951506641
+ 0.46241011151752731
+ 0.4624240640861208
+ 0.4624380172208859
+ 0.46245197092185969
+ 0.4624659251890802
+ 0.46247988002258561
+ 0.46249383542241485
+ 0.46250779138860415
+ 0.46252174792119244
+ 0.4625357050202179
+ 0.46254966268571873
+ 0.46256362091773184
+ 0.46257757971629526
+ 0.46259153908144829
+ 0.46260549901322784
+ 0.46261945951167333
+ 0.46263342057682044
+ 0.46264738220870966
+ 0.46266134440737672
+ 0.46267530717286098
+ 0.46268927050520059
+ 0.4627032344044324
+ 0.46271719887059698
+ 0.46273116390373009
+ 0.46274512950387003
+ 0.46275909567105578
+ 0.46277306240532451
+ 0.46278702970671448
+ 0.46280099757526483
+ 0.46281496601101141
+ 0.46282893501399475
+ 0.46284290458425176
+ 0.46285687472181963
+ 0.46287084542673862
+ 0.46288481669904463
+ 0.46289878853877597
+ 0.462912760945973
+ 0.46292673392067163
+ 0.46294070746291105
+ 0.46295468157272851
+ 0.46296865625016326
+ 0.4629826314952511
+ 0.46299660730803371
+ 0.46301058368854586
+ 0.46302456063682806
+ 0.46303853815291729
+ 0.46305251623685173
+ 0.46306649488866969
+ 0.46308047410840925
+ 0.46309445389610865
+ 0.4631084342518062
+ 0.46312241517553987
+ 0.46313639666734707
+ 0.46315037872726805
+ 0.46316436135533867
+ 0.46317834455159856
+ 0.46319232831608581
+ 0.46320631264883744
+ 0.46322029754989291
+ 0.46323428301928932
+ 0.46324826905706712
+ 0.46326225566326112
+ 0.46327624283791075
+ 0.46329023058105651
+ 0.46330421889273443
+ 0.46331820777298255
+ 0.46333219722183933
+ 0.46334618723934412
+ 0.4633601778255339
+ 0.46337416898044825
+ 0.46338816070412425
+ 0.46340215299660004
+ 0.46341614585791407
+ 0.4634301392881045
+ 0.46344413328721062
+ 0.46345812785526863
+ 0.46347212299231894
+ 0.46348611869839884
+ 0.46350011497354654
+ 0.46351411181780144
+ 0.46352810923119953
+ 0.46354210721378025
+ 0.46355610576558309
+ 0.46357010488664513
+ 0.46358410457700461
+ 0.46359810483669894
+ 0.4636121056657696
+ 0.46362610706425045
+ 0.46364010903218306
+ 0.4636541115696049
+ 0.46366811467655394
+ 0.46368211835306994
+ 0.46369612259918874
+ 0.46371012741495093
+ 0.46372413280039282
+ 0.46373813875555353
+ 0.46375214528047382
+ 0.46376615237518753
+ 0.46378016003973632
+ 0.46379416827415754
+ 0.46380817707848915
+ 0.46382218645277107
+ 0.46383619639704021
+ 0.46385020691133405
+ 0.46386421799569294
+ 0.46387822965015424
+ 0.46389224187475747
+ 0.46390625466953966
+ 0.4639202680345394
+ 0.46393428196979497
+ 0.46394829647534586
+ 0.46396231155122936
+ 0.46397632719748372
+ 0.46399034341414969
+ 0.46400436020126223
+ 0.46401837755886188
+ 0.46403239548698605
+ 0.46404641398567542
+ 0.46406043305496475
+ 0.46407445269489489
+ 0.46408847290550415
+ 0.46410249368683093
+ 0.46411651503891244
+ 0.46413053696178846
+ 0.46414455945549721
+ 0.46415858252007691
+ 0.46417260615556521
+ 0.46418663036200258
+ 0.46420065513942638
+ 0.46421468048787384
+ 0.46422870640738562
+ 0.46424273289799911
+ 0.46425675995975257
+ 0.46427078759268581
+ 0.46428481579683584
+ 0.46429884457224141
+ 0.46431287391894066
+ 0.46432690383697334
+ 0.4643409343263778
+ 0.46435496538719145
+ 0.46436899701945383
+ 0.46438302922320218
+ 0.4643970619984773
+ 0.46441109534531427
+ 0.46442512926375479
+ 0.46443916375383648
+ 0.46445319881559749
+ 0.4644672344490765
+ 0.46448127065431305
+ 0.46449530743134332
+ 0.464509344780208
+ 0.46452338270094462
+ 0.46453742119359248
+ 0.46455146025818933
+ 0.4645654998947733
+ 0.46457954010338531
+ 0.46459358088406166
+ 0.46460762223684299
+ 0.46462166416176437
+ 0.46463570665886772
+ 0.46464974972819167
+ 0.46466379336977237
+ 0.4646778375836505
+ 0.46469188236986358
+ 0.46470592772845004
+ 0.4647199736594495
+ 0.46473402016290066
+ 0.46474806723884071
+ 0.46476211488731051
+ 0.4647761631083463
+ 0.46479021190198777
+ 0.46480426126827346
+ 0.46481831120724304
+ 0.46483236171893266
+ 0.46484641280338335
+ 0.46486046446063228
+ 0.4648745166907205
+ 0.46488856949368296
+ 0.46490262286956169
+ 0.46491667681839405
+ 0.46493073134021878
+ 0.46494478643507414
+ 0.46495884210299904
+ 0.46497289834403177
+ 0.46498695515821209
+ 0.46500101254557874
+ 0.46501507050616897
+ 0.46502912904002247
+ 0.46504318814717793
+ 0.46505724782767399
+ 0.46507130808154895
+ 0.46508536890884283
+ 0.46509943030959294
+ 0.4651134922838378
+ 0.46512755483161744
+ 0.4651416179529701
+ 0.46515568164793464
+ 0.46516974591654947
+ 0.46518381075885329
+ 0.46519787617488478
+ 0.46521194216468353
+ 0.46522600872828701
+ 0.46524007586573518
+ 0.46525414357706646
+ 0.4652682118623197
+ 0.46528228072153316
+ 0.46529635015474569
+ 0.4653104201619972
+ 0.46532449074332477
+ 0.46533856189876854
+ 0.46535263362836721
+ 0.4653667059321579
+ 0.46538077881018175
+ 0.46539485226247629
+ 0.46540892628908004
+ 0.46542300089003291
+ 0.46543707606537355
+ 0.46545115181513952
+ 0.46546522813937047
+ 0.46547930503810619
+ 0.46549338251138439
+ 0.46550746055924358
+ 0.46552153918172473
+ 0.4655356183788632
+ 0.46554969815070107
+ 0.46556377849727559
+ 0.46557785941862584
+ 0.46559194091479156
+ 0.46560602298581
+ 0.46562010563172135
+ 0.46563418885256397
+ 0.46564827264837688
+ 0.46566235701919856
+ 0.4656764419650678
+ 0.46569052748602557
+ 0.46570461358210818
+ 0.46571870025335571
+ 0.46573278749980779
+ 0.46574687532150094
+ 0.4657609637184762
+ 0.4657750526907723
+ 0.46578914223842666
+ 0.46580323236147936
+ 0.46581732305997015
+ 0.4658314143339376
+ 0.46584550618341841
+ 0.46585959860845472
+ 0.46587369160908287
+ 0.46588778518534396
+ 0.46590187933727562
+ 0.46591597406491647
+ 0.46593006936830761
+ 0.46594416524748544
+ 0.46595826170249005
+ 0.46597235873336118
+ 0.46598645634013652
+ 0.46600055452285472
+ 0.46601465328155689
+ 0.46602875261628074
+ 0.46604285252706484
+ 0.46605695301394934
+ 0.46607105407697175
+ 0.46608515571617198
+ 0.46609925793158991
+ 0.46611336072326337
+ 0.46612746409123096
+ 0.46614156803553275
+ 0.46615567255620738
+ 0.46616977765329254
+ 0.46618388332683058
+ 0.46619798957685787
+ 0.46621209640341454
+ 0.46622620380653917
+ 0.46624031178627184
+ 0.46625442034264908
+ 0.46626852947571296
+ 0.46628263918550023
+ 0.46629674947205196
+ 0.4663108603354057
+ 0.46632497177560039
+ 0.46633908379267597
+ 0.46635319638667244
+ 0.46636730955762751
+ 0.4663814233055788
+ 0.46639553763056851
+ 0.46640965253263456
+ 0.46642376801181668
+ 0.46643788406815162
+ 0.46645200070168047
+ 0.46646611791244202
+ 0.46648023570047631
+ 0.46649435406582102
+ 0.46650847300851517
+ 0.46652259252859857
+ 0.46653671262611124
+ 0.46655083330109109
+ 0.46656495455357677
+ 0.4665790763836084
+ 0.46659319879122613
+ 0.46660732177646624
+ 0.46662144533937128
+ 0.46663556947997792
+ 0.46664969419832703
+ 0.46666381949445546
+ 0.46667794536840546
+ 0.46669207182021366
+ 0.46670619884992115
+ 0.46672032645756467
+ 0.46673445464318652
+ 0.4667485834068244
+ 0.46676271274851611
+ 0.46677684266830416
+ 0.46679097316622487
+ 0.46680510424231847
+ 0.46681923589662394
+ 0.46683336812918114
+ 0.46684750094002814
+ 0.46686163432920597
+ 0.46687576829675237
+ 0.46688990284270748
+ 0.46690403796711039
+ 0.46691817366999872
+ 0.46693230995141488
+ 0.46694644681139552
+ 0.4669605842499796
+ 0.46697472226720949
+ 0.46698886086312191
+ 0.46700300003775691
+ 0.4670171397911535
+ 0.46703128012335049
+ 0.46704542103438818
+ 0.46705956252430547
+ 0.46707370459314129
+ 0.46708784724093694
+ 0.46710199046772799
+ 0.46711613427355786
+ 0.46713027865846224
+ 0.46714442362248354
+ 0.46715856916565951
+ 0.46717271528802817
+ 0.46718686198963172
+ 0.46720100927050706
+ 0.46721515713069528
+ 0.4672293055702344
+ 0.46724345458916461
+ 0.46725760418752582
+ 0.46727175436535606
+ 0.46728590512269558
+ 0.46730005645958311
+ 0.46731420837605792
+ 0.46732836087216012
+ 0.46734251394792875
+ 0.46735666760340383
+ 0.46737082183862333
+ 0.46738497665362749
+ 0.46739913204845657
+ 0.46741328802314819
+ 0.4674274445777426
+ 0.467441601712279
+ 0.46745575942679757
+ 0.46746991772133728
+ 0.46748407659593716
+ 0.46749823605063739
+ 0.46751239608547701
+ 0.46752655670049531
+ 0.46754071789573109
+ 0.46755487967122461
+ 0.46756904202701627
+ 0.46758320496314371
+ 0.46759736847964734
+ 0.46761153257656723
+ 0.46762569725394143
+ 0.46763986251181022
+ 0.46765402835021264
+ 0.46766819476918764
+ 0.46768236176877676
+ 0.4676965293490179
+ 0.46771069750995009
+ 0.4677248662516148
+ 0.46773903557404989
+ 0.4677532054772946
+ 0.46776737596139023
+ 0.46778154702637481
+ 0.46779571867228742
+ 0.46780989089916936
+ 0.46782406370705881
+ 0.46783823709599698
+ 0.46785241106602082
+ 0.46786658561717176
+ 0.46788076074948765
+ 0.46789493646301
+ 0.46790911275777686
+ 0.46792328963382834
+ 0.46793746709120493
+ 0.46795164512994453
+ 0.46796582375008744
+ 0.46798000295167391
+ 0.46799418273474308
+ 0.46800836309933308
+ 0.46802254404548632
+ 0.46803672557323983
+ 0.46805090768263385
+ 0.46806509037370875
+ 0.46807927364650365
+ 0.46809345750105874
+ 0.46810764193741222
+ 0.46812182695560556
+ 0.46813601255567666
+ 0.46815019873766595
+ 0.46816438550161255
+ 0.46817857284755687
+ 0.46819276077553917
+ 0.46820694928559631
+ 0.46822113837776996
+ 0.46823532805210027
+ 0.46824951830862543
+ 0.46826370914738691
+ 0.46827790056842267
+ 0.46829209257177323
+ 0.46830628515747652
+ 0.46832047832557522
+ 0.46833467207610741
+ 0.46834886640911227
+ 0.46836306132462907
+ 0.46837725682270048
+ 0.46839145290336232
+ 0.4684056495666572
+ 0.46841984681262322
+ 0.46843404464130078
+ 0.46844824305273014
+ 0.4684624420469497
+ 0.4684766416239996
+ 0.46849084178391909
+ 0.46850504252674985
+ 0.46851924385252869
+ 0.46853344576129841
+ 0.46854764825309708
+ 0.46856185132796396
+ 0.46857605498593952
+ 0.4685902592270641
+ 0.46860446405137701
+ 0.46861866945891745
+ 0.46863287544972593
+ 0.46864708202384053
+ 0.46866128918130295
+ 0.46867549692215221
+ 0.46868970524642906
+ 0.46870391415417256
+ 0.46871812364542098
+ 0.468732333720217
+ 0.46874654437859875
+ 0.46876075562060554
+ 0.46877496744627783
+ 0.46878917985565494
+ 0.46880339284877853
+ 0.46881760642568665
+ 0.46883182058641865
+ 0.46884603533101621
+ 0.46886025065951858
+ 0.46887446657196385
+ 0.46888868306839393
+ 0.46890290014884789
+ 0.4689171178133662
+ 0.46893133606198723
+ 0.46894555489475365
+ 0.46895977431170133
+ 0.46897399431287312
+ 0.46898821489830828
+ 0.46900243606804626
+ 0.46901665782212637
+ 0.46903088016059025
+ 0.46904510308347608
+ 0.46905932659082444
+ 0.46907355068267581
+ 0.46908777535906843
+ 0.46910200062004381
+ 0.46911622646564149
+ 0.46913045289590199
+ 0.46914467991086234
+ 0.46915890751056649
+ 0.46917313569505154
+ 0.46918736446435799
+ 0.46920159381852655
+ 0.46921582375759752
+ 0.46923005428160819
+ 0.46924428539060242
+ 0.46925851708461613
+ 0.46927274936369234
+ 0.46928698222786913
+ 0.46930121567718835
+ 0.4693154497116882
+ 0.4693296843314092
+ 0.46934391953639087
+ 0.46935815532667474
+ 0.46937239170229927
+ 0.46938662866330499
+ 0.4694008662097312
+ 0.46941510434161982
+ 0.46942934305900896
+ 0.46944358236193928
+ 0.46945782225045024
+ 0.46947206272458353
+ 0.46948630378437639
+ 0.46950054542987163
+ 0.4695147876611076
+ 0.46952903047812478
+ 0.4695432738809639
+ 0.46955751786966438
+ 0.46957176244426568
+ 0.46958600760480845
+ 0.4696002533513321
+ 0.46961449968387836
+ 0.46962874660248571
+ 0.46964299410719568
+ 0.46965724219804567
+ 0.46967149087507853
+ 0.4696857401383337
+ 0.46969998998784956
+ 0.46971424042366794
+ 0.4697284914458294
+ 0.4697427430543723
+ 0.46975699524933728
+ 0.46977124803076509
+ 0.46978550139869513
+ 0.46979975535316809
+ 0.46981400989422345
+ 0.46982826502190189
+ 0.46984252073624305
+ 0.4698567770372884
+ 0.46987103392507545
+ 0.46988529139964602
+ 0.46989954946104184
+ 0.46991380810930011
+ 0.4699280673444628
+ 0.46994232716656814
+ 0.46995658757565922
+ 0.46997084857177329
+ 0.46998511015495215
+ 0.46999937232523642
+ 0.47001363508266458
+ 0.47002789842727843
+ 0.47004216235911767
+ 0.47005642687822169
+ 0.47007069198463131
+ 0.47008495767838709
+ 0.4700992239595288
+ 0.47011349082809695
+ 0.47012775828413006
+ 0.47014202632767133
+ 0.47015629495875882
+ 0.47017056417743353
+ 0.47018483398373501
+ 0.4701991043777039
+ 0.47021337535938218
+ 0.47022764692880592
+ 0.47024191908601926
+ 0.47025619183106088
+ 0.47027046516397125
+ 0.47028473908479129
+ 0.47029901359355941
+ 0.47031328869031752
+ 0.4703275643751052
+ 0.47034184064796219
+ 0.47035611750893142
+ 0.47037039495805022
+ 0.47038467299535941
+ 0.47039895162090084
+ 0.47041323083471193
+ 0.47042751063683685
+ 0.47044179102731298
+ 0.47045607200618111
+ 0.4704703535734831
+ 0.47048463572925747
+ 0.47049891847354397
+ 0.47051320180638556
+ 0.47052748572782077
+ 0.47054177023789051
+ 0.47055605533663436
+ 0.47057034102409417
+ 0.47058462730030859
+ 0.47059891416531957
+ 0.47061320161916442
+ 0.47062748966188866
+ 0.47064177829352727
+ 0.47065606751412459
+ 0.47067035732371898
+ 0.47068464772235036
+ 0.4706989387100618
+ 0.47071323028689055
+ 0.47072752245287874
+ 0.47074181520806607
+ 0.47075610855249328
+ 0.47077040248620122
+ 0.47078469700922981
+ 0.47079899212161963
+ 0.47081328782341053
+ 0.47082758411464337
+ 0.47084188099535895
+ 0.47085617846559702
+ 0.47087047652539843
+ 0.47088477517480287
+ 0.47089907441385254
+ 0.47091337424258589
+ 0.47092767466104368
+ 0.4709419756692681
+ 0.47095627726729777
+ 0.47097057945517351
+ 0.47098488223293616
+ 0.4709991856006267
+ 0.47101348955828487
+ 0.47102779410595152
+ 0.47104209924366641
+ 0.4710564049714705
+ 0.47107071128940464
+ 0.4710850181975087
+ 0.47109932569582458
+ 0.47111363378438975
+ 0.47112794246324885
+ 0.47114225173243901
+ 0.47115656159200142
+ 0.47117087204197794
+ 0.47118518308240848
+ 0.47119949471333289
+ 0.47121380693479198
+ 0.47122811974682677
+ 0.47124243314947806
+ 0.47125674714278581
+ 0.47127106172678979
+ 0.4712853769015321
+ 0.47129969266705252
+ 0.47131400902339082
+ 0.47132832597059038
+ 0.47134264350868849
+ 0.47135696163772756
+ 0.47137128035774839
+ 0.47138559966878957
+ 0.47139991957089339
+ 0.47141424006410076
+ 0.47142856114845155
+ 0.4714428828239855
+ 0.4714572050907449
+ 0.4714715279487694
+ 0.47148585139810012
+ 0.47150017543877693
+ 0.47151450007084078
+ 0.47152882529433371
+ 0.47154315110929457
+ 0.47155747751576327
+ 0.47157180451378289
+ 0.47158613210339234
+ 0.4716004602846337
+ 0.47161478905754578
+ 0.47162911842217065
+ 0.47164344837854943
+ 0.47165777892672067
+ 0.47167211006672677
+ 0.47168644179860747
+ 0.47170077412240496
+ 0.47171510703815811
+ 0.47172944054590898
+ 0.47174377464569744
+ 0.47175810933756462
+ 0.47177244462155044
+ 0.47178678049769696
+ 0.47180111696604315
+ 0.47181545402663222
+ 0.47182979167950301
+ 0.47184412992469527
+ 0.47185846876225152
+ 0.47187280819221367
+ 0.47188714821461952
+ 0.47190148882951133
+ 0.47191583003692994
+ 0.47193017183691671
+ 0.47194451422951028
+ 0.47195885721475295
+ 0.47197320079268573
+ 0.47198754496334744
+ 0.47200188972678153
+ 0.47201623508302798
+ 0.47203058103212664
+ 0.47204492757411859
+ 0.47205927470904502
+ 0.47207362243694595
+ 0.47208797075786468
+ 0.47210231967183774
+ 0.47211666917890971
+ 0.47213101927911955
+ 0.47214536997250928
+ 0.47215972125911793
+ 0.47217407313898768
+ 0.47218842561215979
+ 0.47220277867867405
+ 0.47221713233857182
+ 0.47223148659189285
+ 0.47224584143867959
+ 0.47226019687897214
+ 0.47227455291281256
+ 0.47228890954023867
+ 0.47230326676129397
+ 0.4723176245760195
+ 0.47233198298445439
+ 0.47234634198664066
+ 0.47236070158261839
+ 0.47237506177242994
+ 0.47238942255611432
+ 0.47240378393371368
+ 0.4724181459052692
+ 0.47243250847082102
+ 0.47244687163041033
+ 0.47246123538407697
+ 0.47247559973186354
+ 0.4724899646738111
+ 0.47250433020995852
+ 0.47251869634034943
+ 0.47253306306502152
+ 0.4725474303840182
+ 0.47256179829738082
+ 0.47257616680514825
+ 0.47259053590736172
+ 0.47260490560406465
+ 0.4726192758952949
+ 0.47263364678109598
+ 0.47264801826150682
+ 0.47266239033656982
+ 0.47267676300632511
+ 0.47269113627081488
+ 0.47270551013007822
+ 0.47271988458415759
+ 0.4727342596330929
+ 0.47274863527692551
+ 0.47276301151569783
+ 0.47277738834944993
+ 0.47279176577822196
+ 0.47280614380205621
+ 0.47282052242099176
+ 0.47283490163507336
+ 0.47284928144433752
+ 0.47286366184882789
+ 0.47287804284858698
+ 0.47289242444365259
+ 0.47290680663406698
+ 0.47292118941987155
+ 0.47293557280110654
+ 0.47294995677781537
+ 0.47296434135003607
+ 0.47297872651781087
+ 0.47299311228118118
+ 0.47300749864018832
+ 0.47302188559487346
+ 0.47303627314527702
+ 0.4730506612914388
+ 0.47306505003340282
+ 0.47307943937120889
+ 0.4730938293048973
+ 0.47310821983451073
+ 0.47312261096008901
+ 0.47313700268167364
+ 0.47315139499930481
+ 0.4731657879130261
+ 0.47318018142287666
+ 0.47319457552889771
+ 0.47320897023113173
+ 0.47322336552961897
+ 0.47323776142439961
+ 0.47325215791551734
+ 0.47326655500301013
+ 0.47328095268692255
+ 0.47329535096729258
+ 0.47330974984416296
+ 0.47332414931757599
+ 0.47333854938757075
+ 0.47335295005418876
+ 0.47336735131747237
+ 0.47338175317746295
+ 0.47339615563419979
+ 0.4734105586877253
+ 0.47342496233808073
+ 0.47343936658530761
+ 0.47345377142944739
+ 0.47346817687053899
+ 0.47348258290862633
+ 0.47349698954374952
+ 0.47351139677594989
+ 0.47352580460526905
+ 0.47354021303174709
+ 0.47355462205542664
+ 0.47356903167634795
+ 0.47358344189455248
+ 0.47359785271008381
+ 0.47361226412297891
+ 0.47362667613328147
+ 0.47364108874103295
+ 0.47365550194627482
+ 0.47366991574904721
+ 0.47368433014939276
+ 0.47369874514735183
+ 0.47371316074296466
+ 0.4737275769362751
+ 0.47374199372732217
+ 0.47375641111614847
+ 0.47377082910279561
+ 0.47378524768730484
+ 0.47379966686971547
+ 0.4738140866500713
+ 0.47382850702841245
+ 0.47384292800478062
+ 0.4738573495792171
+ 0.47387177175176354
+ 0.47388619452246011
+ 0.47390061789135074
+ 0.47391504185847327
+ 0.47392946642387174
+ 0.47394389158758626
+ 0.47395831734965843
+ 0.47397274371013093
+ 0.47398717066904289
+ 0.47400159822643706
+ 0.47401602638235479
+ 0.47403045513683773
+ 0.47404488448992621
+ 0.47405931444166288
+ 0.47407374499208804
+ 0.47408817614124338
+ 0.47410260788917147
+ 0.47411704023591156
+ 0.47413147318150733
+ 0.47414590672599943
+ 0.4741603408694281
+ 0.47417477561183713
+ 0.47418921095326588
+ 0.47420364689375694
+ 0.47421808343335081
+ 0.4742325205720902
+ 0.4742469583100154
+ 0.47426139664716793
+ 0.47427583558359077
+ 0.47429027511932403
+ 0.47430471525440943
+ 0.47431915598888852
+ 0.47433359732280284
+ 0.47434803925619407
+ 0.47436248178910356
+ 0.47437692492157207
+ 0.47439136865364323
+ 0.47440581298535528
+ 0.47442025791675313
+ 0.47443470344787619
+ 0.47444914957876727
+ 0.47446359630946561
+ 0.47447804364001617
+ 0.47449249157045714
+ 0.47450694010083255
+ 0.47452138923118264
+ 0.47453583896155049
+ 0.47455028929197501
+ 0.47456474022249939
+ 0.47457919175316621
+ 0.47459364388401465
+ 0.4746080966150889
+ 0.47462254994642805
+ 0.47463700387807506
+ 0.47465145841007039
+ 0.47466591354245796
+ 0.47468036927527824
+ 0.47469482560857179
+ 0.47470928254238015
+ 0.47472374007674739
+ 0.4747381982117127
+ 0.47475265694731911
+ 0.47476711628360696
+ 0.47478157622061917
+ 0.47479603675839505
+ 0.47481049789697977
+ 0.47482495963641258
+ 0.47483942197673529
+ 0.47485388491799069
+ 0.4748683484602193
+ 0.47488281260346393
+ 0.47489727734776527
+ 0.47491174269316472
+ 0.47492620863970536
+ 0.47494067518742772
+ 0.47495514233637337
+ 0.47496961008658534
+ 0.47498407843810286
+ 0.47499854739097119
+ 0.47501301694522735
+ 0.47502748710091791
+ 0.47504195785808206
+ 0.47505642921676139
+ 0.47507090117699796
+ 0.47508537373883442
+ 0.4750998469023115
+ 0.47511432066747078
+ 0.47512879503435407
+ 0.47514327000300427
+ 0.47515774557346196
+ 0.4751722217457689
+ 0.47518669851996798
+ 0.47520117589609862
+ 0.47521565387420606
+ 0.47523013245432855
+ 0.47524461163651027
+ 0.4752590914207917
+ 0.4752735718072158
+ 0.4752880527958232
+ 0.47530253438665571
+ 0.47531701657975622
+ 0.47533149937516539
+ 0.475345982772926
+ 0.47536046677307892
+ 0.47537495137566693
+ 0.47538943658073191
+ 0.47540392238831436
+ 0.47541840879845626
+ 0.47543289581120152
+ 0.47544738342658988
+ 0.47546187164466291
+ 0.47547636046546482
+ 0.47549084988903628
+ 0.47550533991541799
+ 0.4755198305446528
+ 0.47553432177678262
+ 0.4755488136118492
+ 0.47556330604989444
+ 0.4755777990909601
+ 0.47559229273508818
+ 0.47560678698232151
+ 0.47562128183269964
+ 0.47563577728626671
+ 0.47565027334306342
+ 0.47566477000313279
+ 0.47567926726651555
+ 0.47569376513325468
+ 0.47570826360338975
+ 0.47572276267696595
+ 0.47573726235402292
+ 0.475751762634605
+ 0.47576626351875029
+ 0.47578076500650318
+ 0.47579526709790665
+ 0.47580976979300016
+ 0.47582427309182812
+ 0.47583877699443117
+ 0.47585328150085104
+ 0.47586778661112977
+ 0.47588229232530921
+ 0.47589679864343243
+ 0.47591130556554023
+ 0.47592581309167548
+ 0.47594032122188029
+ 0.47595482995619537
+ 0.47596933929466367
+ 0.47598384923732717
+ 0.47599835978422789
+ 0.47601287093540751
+ 0.47602738269090933
+ 0.47604189505077282
+ 0.47605640801504245
+ 0.47607092158375863
+ 0.47608543575696477
+ 0.47609995053470155
+ 0.4761144659170119
+ 0.4761289819039381
+ 0.47614349849552051
+ 0.47615801569180377
+ 0.47617253349282856
+ 0.47618705189863686
+ 0.4762015709092704
+ 0.47621609052477265
+ 0.47623061074518419
+ 0.47624513157054815
+ 0.47625965300090545
+ 0.47627417503629915
+ 0.47628869767677245
+ 0.47630322092236488
+ 0.47631774477312089
+ 0.47633226922907995
+ 0.47634679429028776
+ 0.47636131995678271
+ 0.47637584622861034
+ 0.47639037310581023
+ 0.4764049005884255
+ 0.47641942867649834
+ 0.47643395737007183
+ 0.47644848666918554
+ 0.47646301657388401
+ 0.47647754708420798
+ 0.47649207820020062
+ 0.47650660992190402
+ 0.4765211422493601
+ 0.47653567518260981
+ 0.47655020872169745
+ 0.47656474286666389
+ 0.47657927761755248
+ 0.47659381297440384
+ 0.47660834893726139
+ 0.4766228855061671
+ 0.47663742268116294
+ 0.47665196046229108
+ 0.47666649884959461
+ 0.47668103784311344
+ 0.47669557744289298
+ 0.47671011764897309
+ 0.47672465846139672
+ 0.4767391998802063
+ 0.47675374190544489
+ 0.47676828453715214
+ 0.4767828277753739
+ 0.47679737162014968
+ 0.47681191607152279
+ 0.47682646112953531
+ 0.47684100679422936
+ 0.47685555306564703
+ 0.4768700999438315
+ 0.4768846474288238
+ 0.4768991955206684
+ 0.47691374421940502
+ 0.4769282935250781
+ 0.47694284343772853
+ 0.4769573939573985
+ 0.47697194508413249
+ 0.47698649681796895
+ 0.47700104915895369
+ 0.47701560210712873
+ 0.47703015566253498
+ 0.4770447098252148
+ 0.47705926459521131
+ 0.4770738199725667
+ 0.47708837595732312
+ 0.47710293254952379
+ 0.47711748974920981
+ 0.47713204755642324
+ 0.47714660597120861
+ 0.477161164993607
+ 0.47717572462365926
+ 0.47719028486141102
+ 0.47720484570690236
+ 0.4772194071601763
+ 0.4772339692212752
+ 0.4772485318902413
+ 0.47726309516711779
+ 0.47727765905194691
+ 0.47729222354476958
+ 0.47730678864563053
+ 0.4773213543545694
+ 0.47733592067163089
+ 0.47735048759685705
+ 0.47736505513029143
+ 0.47737962327197259
+ 0.47739419202194733
+ 0.47740876138025568
+ 0.47742333134694098
+ 0.47743790192204433
+ 0.47745247310561018
+ 0.47746704489768077
+ 0.47748161729829586
+ 0.47749619030750262
+ 0.47751076392533859
+ 0.47752533815185039
+ 0.47753991298707815
+ 0.47755448843106396
+ 0.47756906448385261
+ 0.47758364114548496
+ 0.47759821841600336
+ 0.4776127962954525
+ 0.47762737478387213
+ 0.47764195388130559
+ 0.47765653358779664
+ 0.47767111390338607
+ 0.47768569482811862
+ 0.47770027636203422
+ 0.47771485850517631
+ 0.47772944125758937
+ 0.4777440246193147
+ 0.47775860859039332
+ 0.47777319317086986
+ 0.47778777836078667
+ 0.47780236416018473
+ 0.47781695056910872
+ 0.47783153758759989
+ 0.47784612521570036
+ 0.47786071345345488
+ 0.47787530230090342
+ 0.47788989175809177
+ 0.47790448182505985
+ 0.47791907250185006
+ 0.47793366378850827
+ 0.4779482556850731
+ 0.47796284819159052
+ 0.47797744130809944
+ 0.4779920350346466
+ 0.47800662937127342
+ 0.47802122431802085
+ 0.47803581987493254
+ 0.4780504160420509
+ 0.47806501281941927
+ 0.47807961020708006
+ 0.4780942082050757
+ 0.47810880681344964
+ 0.47812340603224418
+ 0.47813800586150063
+ 0.47815260630126366
+ 0.47816720735157553
+ 0.47818180901247753
+ 0.47819641128401441
+ 0.47821101416622741
+ 0.47822561765915983
+ 0.47824022176285441
+ 0.47825482647735429
+ 0.47826943180270109
+ 0.47828403773893818
+ 0.47829864428610785
+ 0.47831325144425396
+ 0.47832785921341864
+ 0.47834246759364435
+ 0.47835707658497478
+ 0.47837168618745102
+ 0.47838629640111685
+ 0.47840090722601558
+ 0.47841551866218873
+ 0.47843013070968082
+ 0.47844474336853338
+ 0.47845935663878852
+ 0.47847397052049007
+ 0.47848858501368163
+ 0.47850320011840441
+ 0.47851781583470304
+ 0.47853243216261787
+ 0.47854704910219348
+ 0.47856166665347255
+ 0.47857628481649739
+ 0.47859090359131035
+ 0.47860552297795533
+ 0.4786201429764757
+ 0.47863476358691293
+ 0.47864938480931057
+ 0.47866400664371106
+ 0.47867862909015807
+ 0.47869325214869418
+ 0.47870787581936186
+ 0.47872250010220346
+ 0.47873712499726262
+ 0.47875175050458191
+ 0.47876637662420513
+ 0.47878100335617335
+ 0.47879563070053155
+ 0.47881025865732219
+ 0.47882488722658662
+ 0.4788395164083698
+ 0.47885414620271283
+ 0.47886877660966076
+ 0.47888340762925363
+ 0.47889803926153757
+ 0.47891267150655281
+ 0.478927304364344
+ 0.47894193783495387
+ 0.47895657191842372
+ 0.47897120661479847
+ 0.47898584192412175
+ 0.47900047784643374
+ 0.47901511438177935
+ 0.47902975153020017
+ 0.47904438929174192
+ 0.47905902766644382
+ 0.47907366665435197
+ 0.47908830625550763
+ 0.47910294646995588
+ 0.47911758729773679
+ 0.47913222873889533
+ 0.4791468707934729
+ 0.47916151346151564
+ 0.47917615674306252
+ 0.47919080063815961
+ 0.47920544514684849
+ 0.47922009026917273
+ 0.47923473600517624
+ 0.47924938235490039
+ 0.47926402931838885
+ 0.47927867689568437
+ 0.4792933250868307
+ 0.47930797389187152
+ 0.47932262331084841
+ 0.47933727334380499
+ 0.47935192399078397
+ 0.47936657525182919
+ 0.47938122712698306
+ 0.47939587961628977
+ 0.47941053271979145
+ 0.47942518643753113
+ 0.47943984076955237
+ 0.47945449571589804
+ 0.47946915127661177
+ 0.47948380745173619
+ 0.4794984642413152
+ 0.47951312164539023
+ 0.47952777966400512
+ 0.47954243829720378
+ 0.47955709754502868
+ 0.47957175740752389
+ 0.47958641788473078
+ 0.47960107897669435
+ 0.47961574068345719
+ 0.4796304030050621
+ 0.47964506594155176
+ 0.4796597294929712
+ 0.47967439365936182
+ 0.47968905844076754
+ 0.47970372383723114
+ 0.47971838984879628
+ 0.47973305647550696
+ 0.47974772371740476
+ 0.47976239157453349
+ 0.47977706004693582
+ 0.47979172913465568
+ 0.47980639883773818
+ 0.47982106915622236
+ 0.47983574009015451
+ 0.47985041163957753
+ 0.4798650838045338
+ 0.47987975658506754
+ 0.47989442998122017
+ 0.47990910399303677
+ 0.47992377862056007
+ 0.47993845386383283
+ 0.47995312972290016
+ 0.47996780619780355
+ 0.47998248328858584
+ 0.47999716099529205
+ 0.48001183931796382
+ 0.48002651825664627
+ 0.48004119781138216
+ 0.48005587798221289
+ 0.48007055876918386
+ 0.48008524017233767
+ 0.4800999221917171
+ 0.48011460482736745
+ 0.48012928807933003
+ 0.48014397194764896
+ 0.48015865643236705
+ 0.48017334153352825
+ 0.48018802725117526
+ 0.48020271358535327
+ 0.48021740053610285
+ 0.48023208810347012
+ 0.48024677628749568
+ 0.48026146508822581
+ 0.48027615450570105
+ 0.48029084453996757
+ 0.48030553519106589
+ 0.48032022645904243
+ 0.48033491834393766
+ 0.48034961084579786
+ 0.48036430396466356
+ 0.4803789977005799
+ 0.48039369205358973
+ 0.48040838702373712
+ 0.48042308261106487
+ 0.480437778815617
+ 0.48045247563743632
+ 0.48046717307656561
+ 0.48048187113305035
+ 0.48049656980693306
+ 0.48051126909825559
+ 0.48052596900706451
+ 0.48054066953339997
+ 0.48055537067730741
+ 0.48057007243883204
+ 0.48058477481801315
+ 0.48059947781489598
+ 0.48061418142952589
+ 0.48062888566194317
+ 0.48064359051219435
+ 0.48065829598032117
+ 0.48067300206636782
+ 0.48068770877037698
+ 0.48070241609239273
+ 0.48071712403245942
+ 0.48073183259061841
+ 0.48074654176691639
+ 0.48076125156139393
+ 0.480775961974095
+ 0.48079067300506489
+ 0.48080538465434536
+ 0.48082009692198163
+ 0.48083480980801674
+ 0.48084952331249248
+ 0.48086423743545509
+ 0.48087895217694659
+ 0.4808936675370109
+ 0.48090838351569121
+ 0.4809231001130313
+ 0.48093781732907553
+ 0.48095253516386671
+ 0.48096725361744797
+ 0.48098197268986453
+ 0.48099669238115933
+ 0.48101141269137415
+ 0.48102613362055563
+ 0.48104085516874534
+ 0.48105557733598758
+ 0.48107030012232532
+ 0.48108502352780386
+ 0.48109974755246621
+ 0.48111447219635417
+ 0.48112919745951427
+ 0.48114392334198708
+ 0.48115864984381929
+ 0.48117337696505369
+ 0.4811881047057322
+ 0.48120283306590028
+ 0.48121756204560073
+ 0.48123229164487791
+ 0.48124702186377483
+ 0.48126175270233673
+ 0.48127648416060564
+ 0.48129121623862564
+ 0.48130594893644091
+ 0.48132068225409458
+ 0.48133541619163084
+ 0.4813501507490926
+ 0.48136488592652549
+ 0.48137962172397109
+ 0.48139435814147502
+ 0.48140909517907904
+ 0.48142383283682871
+ 0.4814385711147669
+ 0.48145331001293679
+ 0.48146804953138378
+ 0.48148278967015085
+ 0.48149753042927995
+ 0.48151227180881884
+ 0.48152701380880719
+ 0.48154175642929153
+ 0.48155649967031594
+ 0.48157124353192027
+ 0.48158598801415337
+ 0.48160073311705581
+ 0.48161547884067329
+ 0.48163022518504761
+ 0.48164497215022428
+ 0.48165971973624638
+ 0.4816744679431581
+ 0.48168921677100268
+ 0.48170396621982442
+ 0.48171871628966756
+ 0.48173346698057629
+ 0.48174821829259279
+ 0.4817629702257612
+ 0.48177772278012698
+ 0.48179247595573327
+ 0.48180722975262336
+ 0.48182198417084149
+ 0.48183673921043185
+ 0.4818514948714378
+ 0.48186625115390347
+ 0.48188100805787332
+ 0.48189576558339042
+ 0.48191052373049909
+ 0.48192528249924271
+ 0.48194004188966649
+ 0.4819548019018125
+ 0.48196956253572648
+ 0.4819843237914514
+ 0.4819990856690316
+ 0.48201384816851034
+ 0.48202861128993318
+ 0.48204337503334088
+ 0.48205813939878145
+ 0.48207290438629674
+ 0.48208766999592889
+ 0.48210243622772575
+ 0.4821172030817294
+ 0.48213197055798301
+ 0.48214673865653213
+ 0.48216150737741886
+ 0.48217627672068986
+ 0.48219104668638602
+ 0.4822058172745553
+ 0.4822205884852373
+ 0.48223536031847891
+ 0.48225013277432333
+ 0.4822649058528149
+ 0.48227967955399698
+ 0.48229445387791386
+ 0.48230922882460997
+ 0.48232400439412865
+ 0.48233878058651541
+ 0.48235355740181352
+ 0.48236833484006519
+ 0.48238311290131819
+ 0.48239789158561353
+ 0.48241267089299683
+ 0.48242745082351135
+ 0.48244223137720044
+ 0.48245701255411078
+ 0.4824717943542845
+ 0.48248657677776607
+ 0.48250135982460002
+ 0.48251614349482835
+ 0.48253092778849915
+ 0.48254571270565322
+ 0.48256049824633646
+ 0.48257528441059189
+ 0.48259007119846425
+ 0.48260485860999786
+ 0.48261964664523727
+ 0.4826344353042234
+ 0.48264922458700543
+ 0.48266401449362323
+ 0.48267880502412364
+ 0.4826935961785499
+ 0.48270838795694671
+ 0.48272318035935718
+ 0.48273797338582597
+ 0.48275276703639747
+ 0.48276756131111626
+ 0.48278235621002574
+ 0.48279715173317045
+ 0.48281194788059473
+ 0.48282674465234227
+ 0.48284154204845842
+ 0.48285634006898559
+ 0.48287113871397058
+ 0.48288593798345442
+ 0.48290073787748528
+ 0.48291553839610291
+ 0.48293033953935544
+ 0.48294514130728494
+ 0.48295994369993628
+ 0.48297474671735369
+ 0.48298955035958074
+ 0.48300435462666425
+ 0.48301915951864538
+ 0.48303396503556983
+ 0.48304877117748224
+ 0.48306357794442578
+ 0.48307838533644543
+ 0.48309319335358664
+ 0.48310800199589177
+ 0.48312281126340534
+ 0.48313762115617326
+ 0.48315243167423766
+ 0.48316724281764556
+ 0.48318205458643809
+ 0.48319686698066328
+ 0.48321168000036224
+ 0.48322649364558073
+ 0.48324130791636238
+ 0.48325612281275288
+ 0.4832709383347944
+ 0.48328575448253408
+ 0.48330057125601522
+ 0.48331538865528145
+ 0.48333020668037741
+ 0.4833450253313476
+ 0.48335984460823672
+ 0.48337466451108957
+ 0.48338948503994938
+ 0.48340430619486091
+ 0.48341912797586895
+ 0.48343395038301795
+ 0.48344877341635156
+ 0.48346359707591441
+ 0.48347842136175234
+ 0.48349324627390883
+ 0.48350807181242739
+ 0.48352289797735393
+ 0.48353772476873197
+ 0.48355255218660598
+ 0.48356738023102097
+ 0.48358220890202142
+ 0.48359703819965211
+ 0.48361186812395662
+ 0.48362669867497959
+ 0.48364152985276448
+ 0.48365636165735848
+ 0.48367119408880388
+ 0.4836860271471467
+ 0.48370086083243036
+ 0.48371569514469837
+ 0.48373053008399791
+ 0.4837453656503713
+ 0.48376020184386453
+ 0.48377503866452221
+ 0.48378987611238689
+ 0.48380471418750431
+ 0.4838195528899194
+ 0.48383439221967678
+ 0.48384923217682008
+ 0.48386407276139409
+ 0.48387891397344479
+ 0.48389375581301436
+ 0.48390859828015015
+ 0.4839234413748944
+ 0.48393828509729214
+ 0.48395312944738911
+ 0.48396797442522776
+ 0.48398282003085646
+ 0.48399766626431534
+ 0.48401251312565136
+ 0.4840273606149107
+ 0.48404220873213449
+ 0.48405705747736877
+ 0.48407190685065943
+ 0.48408675685205022
+ 0.48410160748158476
+ 0.48411645873931008
+ 0.48413131062526765
+ 0.48414616313950448
+ 0.48416101628206437
+ 0.48417587005299323
+ 0.48419072445233363
+ 0.48420557948013138
+ 0.48422043513643143
+ 0.48423529142127869
+ 0.48425014833471552
+ 0.48426500587678922
+ 0.48427986404754464
+ 0.48429472284702418
+ 0.48430958227527399
+ 0.48432444233234007
+ 0.48433930301826483
+ 0.4843541643330932
+ 0.48436902627687134
+ 0.48438388884964267
+ 0.48439875205145361
+ 0.4844136158823476
+ 0.48442848034236835
+ 0.48444334543156203
+ 0.48445821114997462
+ 0.48447307749764884
+ 0.48448794447463051
+ 0.48450281208096341
+ 0.48451768031669246
+ 0.48453254918186384
+ 0.48454741867652001
+ 0.48456228880070823
+ 0.48457715955447239
+ 0.48459203093785713
+ 0.48460690295090764
+ 0.48462177559366748
+ 0.48463664886618157
+ 0.48465152276849743
+ 0.48466639730065625
+ 0.48468127246270648
+ 0.48469614825468965
+ 0.48471102467665184
+ 0.48472590172863789
+ 0.48474077941069421
+ 0.48475565772286305
+ 0.48477053666519077
+ 0.48478541623772348
+ 0.48480029644050249
+ 0.4848151772735752
+ 0.48483005873698659
+ 0.48484494083078056
+ 0.48485982355500307
+ 0.48487470690969803
+ 0.48488959089491029
+ 0.48490447551068622
+ 0.48491936075706832
+ 0.484934246634104
+ 0.48494913314183585
+ 0.48496402028031127
+ 0.48497890804957405
+ 0.484993796449668
+ 0.48500868548063941
+ 0.48502357514253319
+ 0.48503846543539325
+ 0.48505335635926561
+ 0.48506824791419551
+ 0.48508314010022674
+ 0.48509803291740544
+ 0.48511292636577552
+ 0.48512782044538311
+ 0.485142715156271
+ 0.48515761049848771
+ 0.48517250647207477
+ 0.48518740307707964
+ 0.48520230031354494
+ 0.4852171981815192
+ 0.48523209668104406
+ 0.48524699581216574
+ 0.48526189557492921
+ 0.48527679596938078
+ 0.48529169699556329
+ 0.48530659865352399
+ 0.48532150094330567
+ 0.48533640386495575
+ 0.4853513074185169
+ 0.48536621160403554
+ 0.48538111642155662
+ 0.48539602187112529
+ 0.48541092795278673
+ 0.48542583466658601
+ 0.48544074201256676
+ 0.48545564999077689
+ 0.48547055860125887
+ 0.4854854678440591
+ 0.48550037771922266
+ 0.48551528822679352
+ 0.48553019936681918
+ 0.48554511113934229
+ 0.4855600235444093
+ 0.4855749365820653
+ 0.48558985025235535
+ 0.48560476455532353
+ 0.48561967949101598
+ 0.48563459505947815
+ 0.48564951126075501
+ 0.48566442809489158
+ 0.48567934556193204
+ 0.48569426366192386
+ 0.48570918239490984
+ 0.48572410176093628
+ 0.48573902176004841
+ 0.48575394239229136
+ 0.48576886365771033
+ 0.48578378555635054
+ 0.48579870808825709
+ 0.48581363125347521
+ 0.48582855505205003
+ 0.48584347948402684
+ 0.48585840454945073
+ 0.4858733302483671
+ 0.48588825658082208
+ 0.48590318354685857
+ 0.48591811114652433
+ 0.48593303937986448
+ 0.48594796824692177
+ 0.48596289774774382
+ 0.48597782788237476
+ 0.48599275865086095
+ 0.4860076900532464
+ 0.48602262208957747
+ 0.4860375547598984
+ 0.48605248806425549
+ 0.48606742200269271
+ 0.48608235657525667
+ 0.48609729178199385
+ 0.48611222762294676
+ 0.48612716409816231
+ 0.48614210120768547
+ 0.48615703895156037
+ 0.48617197732983464
+ 0.4861869163425524
+ 0.48620185598975896
+ 0.48621679627150072
+ 0.48623173718782053
+ 0.48624667873876615
+ 0.4862616209243828
+ 0.48627656374471462
+ 0.48629150719980818
+ 0.48630645128970856
+ 0.48632139601446001
+ 0.48633634137410897
+ 0.48635128736870081
+ 0.48636623399828072
+ 0.4863811812628942
+ 0.48639612916258745
+ 0.48641107769740383
+ 0.48642602686739067
+ 0.48644097667259228
+ 0.48645592711305519
+ 0.48647087818882456
+ 0.48648582989994471
+ 0.48650078224646209
+ 0.48651573522842217
+ 0.48653068884586886
+ 0.48654564309885134
+ 0.48656059798741003
+ 0.48657555351159515
+ 0.48659050967144835
+ 0.48660546646701747
+ 0.48662042389834792
+ 0.48663538196548489
+ 0.48665034066847279
+ 0.48666530000735914
+ 0.48668025998218711
+ 0.4866952205930033
+ 0.48671018183985415
+ 0.4867251437227838
+ 0.48674010624183911
+ 0.48675506939706409
+ 0.48677003318850404
+ 0.48678499761620814
+ 0.48679996268021691
+ 0.48681492838057938
+ 0.48682989471734095
+ 0.48684486169054347
+ 0.48685982930023819
+ 0.48687479754646595
+ 0.48688976642927573
+ 0.48690473594871053
+ 0.48691970610481677
+ 0.48693467689764147
+ 0.48694964832722742
+ 0.48696462039362359
+ 0.48697959309687205
+ 0.48699456643702171
+ 0.48700954041411565
+ 0.48702451502820165
+ 0.48703949027932297
+ 0.48705446616752718
+ 0.48706944269285873
+ 0.48708441985536433
+ 0.48709939765508936
+ 0.48711437609207914
+ 0.48712935516637945
+ 0.48714433487803438
+ 0.48715931522709305
+ 0.48717429621359859
+ 0.48718927783759763
+ 0.48720426009913442
+ 0.48721924299825703
+ 0.48723422653500953
+ 0.48724921070943761
+ 0.4872641955215879
+ 0.48727918097150591
+ 0.48729416705923584
+ 0.48730915378482592
+ 0.48732414114832018
+ 0.48733912914976424
+ 0.48735411778920479
+ 0.4873691070666874
+ 0.48738409698225632
+ 0.48739908753596078
+ 0.48741407872784281
+ 0.48742907055795015
+ 0.48744406302632842
+ 0.48745905613302204
+ 0.48747404987807758
+ 0.48748904426154194
+ 0.4875040392834607
+ 0.48751903494387816
+ 0.48753403124284123
+ 0.48754902818039514
+ 0.48756402575658692
+ 0.48757902397146091
+ 0.4875940228250627
+ 0.48760902231743913
+ 0.48762402244863678
+ 0.48763902321870023
+ 0.4876540246276761
+ 0.48766902667560891
+ 0.48768402936254551
+ 0.4876990326885326
+ 0.4877140366536134
+ 0.48772904125783711
+ 0.48774404650124703
+ 0.48775905238388989
+ 0.48777405890581249
+ 0.48778906606705924
+ 0.48780407386767705
+ 0.48781908230770926
+ 0.48783409138720724
+ 0.48784910110621188
+ 0.48786411146477138
+ 0.48787912246292997
+ 0.4878941341007359
+ 0.48790914637823352
+ 0.48792415929546967
+ 0.48793917285249
+ 0.48795418704933907
+ 0.4879692018860648
+ 0.48798421736271164
+ 0.48799923347932661
+ 0.48801425023595646
+ 0.48802926763264465
+ 0.48804428566943897
+ 0.48805930434638539
+ 0.48807432366352937
+ 0.48808934362091672
+ 0.48810436421859427
+ 0.48811938545660655
+ 0.48813440733500058
+ 0.48814942985382298
+ 0.4881644530131185
+ 0.48817947681293516
+ 0.48819450125331626
+ 0.48820952633430864
+ 0.48822455205596055
+ 0.48823957841831528
+ 0.48825460542142107
+ 0.48826963306532106
+ 0.48828466135006454
+ 0.48829969027569503
+ 0.4883147198422606
+ 0.48832975004980705
+ 0.48834478089837868
+ 0.48835981238802278
+ 0.4883748445187861
+ 0.48838987729071326
+ 0.48840491070385117
+ 0.48841994475824679
+ 0.48843497945394471
+ 0.48845001479099193
+ 0.48846505076943425
+ 0.48848008738931847
+ 0.48849512465068945
+ 0.48851016255359392
+ 0.48852520109807901
+ 0.48854024028418919
+ 0.48855528011197152
+ 0.48857032058147182
+ 0.48858536169273714
+ 0.48860040344581201
+ 0.48861544584074457
+ 0.48863048887757948
+ 0.48864553255636395
+ 0.48866057687714337
+ 0.48867562183996516
+ 0.48869066744487377
+ 0.48870571369191612
+ 0.48872076058113834
+ 0.48873580811258716
+ 0.48875085628630871
+ 0.48876590510234857
+ 0.48878095456075388
+ 0.48879600466157047
+ 0.48881105540484426
+ 0.48882610679062211
+ 0.48884115881895018
+ 0.4888562114898729
+ 0.48887126480343979
+ 0.48888631875969435
+ 0.48890137335868478
+ 0.48891642860045592
+ 0.48893148448505463
+ 0.48894654101252816
+ 0.48896159818292106
+ 0.48897665599628043
+ 0.48899171445265233
+ 0.48900677355208366
+ 0.48902183329462046
+ 0.48903689368030967
+ 0.48905195470919616
+ 0.48906701638132694
+ 0.48908207869674786
+ 0.48909714165550744
+ 0.48911220525764904
+ 0.489127269503221
+ 0.48914233439226923
+ 0.48915739992483975
+ 0.4891724661009797
+ 0.48918753292073358
+ 0.48920260038415003
+ 0.48921766849127474
+ 0.48923273724215272
+ 0.48924780663683204
+ 0.48926287667536
+ 0.48927794735778019
+ 0.48929301868413966
+ 0.48930809065448688
+ 0.48932316326886643
+ 0.4893382365273245
+ 0.48935331042990932
+ 0.48936838497666579
+ 0.489383460167641
+ 0.48939853600288097
+ 0.48941361248243276
+ 0.48942868960634134
+ 0.48944376737465622
+ 0.48945884578742094
+ 0.48947392484468283
+ 0.48948900454648769
+ 0.48950408489288422
+ 0.48951916588391819
+ 0.48953424751963437
+ 0.48954932980008026
+ 0.48956441272530166
+ 0.48957949629534703
+ 0.48959458051026117
+ 0.48960966537009143
+ 0.48962475087488372
+ 0.48963983702468533
+ 0.48965492381954223
+ 0.4896700112595006
+ 0.48968509934460763
+ 0.4897001880749105
+ 0.48971527745045407
+ 0.4897303674712869
+ 0.48974545813745379
+ 0.48976054944900199
+ 0.48977564140597757
+ 0.48979073400842782
+ 0.48980582725639993
+ 0.48982092114993891
+ 0.48983601568909196
+ 0.48985111087390637
+ 0.48986620670442832
+ 0.48988130318070378
+ 0.48989640030278131
+ 0.4899114980707045
+ 0.48992659648452319
+ 0.48994169554428108
+ 0.48995679525002778
+ 0.48997189560180587
+ 0.48998699659966743
+ 0.49000209824365376
+ 0.4900172005338147
+ 0.49003230347019744
+ 0.49004740705284572
+ 0.49006251128180817
+ 0.49007761615713197
+ 0.49009272167886347
+ 0.49010782784704743
+ 0.49012293466173251
+ 0.49013804212296597
+ 0.49015315023079159
+ 0.49016825898526045
+ 0.49018336838641485
+ 0.49019847843430353
+ 0.49021358912897384
+ 0.49022870047047196
+ 0.49024381245884402
+ 0.49025892509413749
+ 0.49027403837639949
+ 0.49028915230567532
+ 0.49030426688201229
+ 0.49031938210545878
+ 0.49033449797605999
+ 0.49034961449386211
+ 0.49036473165891359
+ 0.49037984947125973
+ 0.49039496793094872
+ 0.49041008703802591
+ 0.49042520679253981
+ 0.49044032719453545
+ 0.49045544824406018
+ 0.49047056994116262
+ 0.49048569228588673
+ 0.49050081527828104
+ 0.49051593891839185
+ 0.49053106320626649
+ 0.49054618814195128
+ 0.49056131372549361
+ 0.49057643995694106
+ 0.4905915668363372
+ 0.49060669436373228
+ 0.4906218225391723
+ 0.49063695136270352
+ 0.49065208083437345
+ 0.4906672109542296
+ 0.49068234172231706
+ 0.49069747313868323
+ 0.49071260520337678
+ 0.49072773791644164
+ 0.49074287127792771
+ 0.49075800528788011
+ 0.49077313994634614
+ 0.49078827525337354
+ 0.49080341120900844
+ 0.49081854781329726
+ 0.49083368506628738
+ 0.49084882296802657
+ 0.49086396151856071
+ 0.49087910071793772
+ 0.4908942405662049
+ 0.49090938106340742
+ 0.49092452220959282
+ 0.49093966400480998
+ 0.49095480644910255
+ 0.49096994954252077
+ 0.49098509328510942
+ 0.49100023767691758
+ 0.49101538271799017
+ 0.49103052840837486
+ 0.49104567474811922
+ 0.49106082173726956
+ 0.49107596937587467
+ 0.49109111766397834
+ 0.49110626660163087
+ 0.49112141618887839
+ 0.4911365664257662
+ 0.49115171731234297
+ 0.4911668688486564
+ 0.4911820210347515
+ 0.49119717387067718
+ 0.49121232735647991
+ 0.49122748149220724
+ 0.49124263627790415
+ 0.49125779171361977
+ 0.4912729477994015
+ 0.49128810453529587
+ 0.49130326192134915
+ 0.49131841995760905
+ 0.49133357864412208
+ 0.49134873798093681
+ 0.49136389796809998
+ 0.49137905860565895
+ 0.49139421989365917
+ 0.49140938183214927
+ 0.49142454442117584
+ 0.49143970766078654
+ 0.49145487155102885
+ 0.49147003609194828
+ 0.49148520128359346
+ 0.49150036712601208
+ 0.49151553361924954
+ 0.49153070076335337
+ 0.4915458685583724
+ 0.49156103700435216
+ 0.49157620610134006
+ 0.49159137584938506
+ 0.49160654624853245
+ 0.49162171729882997
+ 0.49163688900032521
+ 0.49165206135306477
+ 0.49166723435709625
+ 0.49168240801246627
+ 0.49169758231922361
+ 0.49171275727741492
+ 0.49172793288708766
+ 0.49174310914828739
+ 0.49175828606106287
+ 0.49177346362546076
+ 0.49178864184152993
+ 0.49180382070931555
+ 0.49181900022886688
+ 0.49183418040022892
+ 0.49184936122345208
+ 0.49186454269858026
+ 0.4918797248256615
+ 0.49189490760474558
+ 0.49191009103587824
+ 0.49192527511910566
+ 0.49194045985447704
+ 0.49195564524203889
+ 0.49197083128183899
+ 0.49198601797392405
+ 0.49200120531834146
+ 0.4920163933151393
+ 0.49203158196436414
+ 0.49204677126606478
+ 0.49206196122028678
+ 0.49207715182707912
+ 0.49209234308648714
+ 0.49210753499855975
+ 0.49212272756334491
+ 0.49213792078088803
+ 0.49215311465123923
+ 0.49216830917444382
+ 0.49218350435054875
+ 0.49219870017960382
+ 0.49221389666165488
+ 0.4922290937967494
+ 0.49224429158493532
+ 0.49225949002626052
+ 0.49227468912077055
+ 0.49228988886851421
+ 0.49230508926953953
+ 0.49232029032389418
+ 0.49233549203162374
+ 0.49235069439277723
+ 0.4923658974074
+ 0.49238110107554267
+ 0.49239630539725149
+ 0.4924115103725733
+ 0.49242671600155602
+ 0.4924419222842486
+ 0.4924571292206954
+ 0.49247233681094671
+ 0.49248754505504805
+ 0.49250275395304954
+ 0.49251796350499688
+ 0.49253317371093663
+ 0.49254838457091915
+ 0.4925635960849899
+ 0.49257880825319683
+ 0.49259402107558786
+ 0.49260923455221084
+ 0.4926244486831125
+ 0.49263966346834082
+ 0.49265487890794363
+ 0.49267009500196779
+ 0.49268531175046354
+ 0.4927005291534739
+ 0.49271574721105071
+ 0.49273096592323923
+ 0.49274618529008751
+ 0.49276140531164364
+ 0.49277662598795524
+ 0.49279184731907055
+ 0.49280706930503504
+ 0.49282229194589783
+ 0.49283751524170699
+ 0.49285273919251038
+ 0.49286796379835363
+ 0.49288318905928713
+ 0.49289841497535641
+ 0.49291364154660949
+ 0.49292886877309433
+ 0.49294409665486011
+ 0.49295932519195251
+ 0.49297455438441951
+ 0.49298978423231016
+ 0.49300501473567271
+ 0.49302024589455129
+ 0.49303547770899653
+ 0.49305071017905516
+ 0.49306594330477516
+ 0.49308117708620475
+ 0.49309641152339045
+ 0.49311164661638168
+ 0.49312688236522534
+ 0.49314211876996805
+ 0.49315735583066034
+ 0.49317259354734799
+ 0.49318783192007892
+ 0.4932030709489012
+ 0.49321831063386284
+ 0.49323355097501081
+ 0.49324879197239424
+ 0.49326403362605997
+ 0.49327927593605631
+ 0.49329451890243114
+ 0.4933097625252314
+ 0.49332500680450503
+ 0.49334025174030149
+ 0.49335549733266648
+ 0.49337074358164906
+ 0.49338599048729759
+ 0.49340123804965874
+ 0.49341648626878082
+ 0.49343173514471178
+ 0.49344698467749976
+ 0.49346223486719293
+ 0.49347748571383815
+ 0.49349273721748244
+ 0.4935079893781773
+ 0.49352324219596622
+ 0.49353849567090091
+ 0.49355374980302713
+ 0.49356900459239295
+ 0.49358426003904649
+ 0.49359951614303599
+ 0.49361477290440953
+ 0.49363003032321529
+ 0.49364528839950006
+ 0.49366054713331231
+ 0.4936758065247
+ 0.49369106657371248
+ 0.4937063272803956
+ 0.49372158864479754
+ 0.49373685066696754
+ 0.49375211334695279
+ 0.49376737668480236
+ 0.49378264068056238
+ 0.49379790533428203
+ 0.49381317064600955
+ 0.4938284366157919
+ 0.49384370324367738
+ 0.49385897052971539
+ 0.49387423847395273
+ 0.49388950707643786
+ 0.49390477633721763
+ 0.49392004625634156
+ 0.49393531683385783
+ 0.49395058806981357
+ 0.49396585996425679
+ 0.49398113251723574
+ 0.49399640572880016
+ 0.49401167959899561
+ 0.49402695412787151
+ 0.49404222931547498
+ 0.49405750516185559
+ 0.49407278166706026
+ 0.49408805883113738
+ 0.49410333665413486
+ 0.49411861513610256
+ 0.49413389427708621
+ 0.49414917407713521
+ 0.4941644545362967
+ 0.49417973565462014
+ 0.49419501743215261
+ 0.49421029986894238
+ 0.49422558296503905
+ 0.49424086672048961
+ 0.4942561511353411
+ 0.49427143620964442
+ 0.4942867219434452
+ 0.49430200833679322
+ 0.49431729538973529
+ 0.49433258310232114
+ 0.49434787147459791
+ 0.494363160506615
+ 0.49437845019841836
+ 0.49439374055005875
+ 0.49440903156158333
+ 0.49442432323303914
+ 0.49443961556447708
+ 0.49445490855594287
+ 0.494470202207485
+ 0.49448549651915302
+ 0.49450079149099518
+ 0.49451608712305872
+ 0.49453138341539327
+ 0.49454668036804472
+ 0.49456197798106366
+ 0.49457727625449766
+ 0.49459257518839467
+ 0.49460787478280333
+ 0.49462317503777203
+ 0.49463847595334898
+ 0.49465377752958151
+ 0.49466907976652041
+ 0.4946843826642115
+ 0.49469968622270344
+ 0.4947149904420457
+ 0.49473029532228541
+ 0.49474560086347358
+ 0.49476090706565479
+ 0.49477621392888005
+ 0.49479152145319522
+ 0.49480682963865241
+ 0.4948221384852966
+ 0.49483744799317714
+ 0.49485275816234381
+ 0.49486806899284375
+ 0.49488338048472563
+ 0.49489869263803654
+ 0.49491400545282721
+ 0.49492931892914516
+ 0.49494463306703745
+ 0.49495994786655495
+ 0.49497526332774383
+ 0.49499057945065372
+ 0.49500589623533309
+ 0.49502121368183027
+ 0.4950365317901928
+ 0.49505185056047019
+ 0.49506716999271089
+ 0.49508249008696231
+ 0.49509781084327414
+ 0.49511313226169484
+ 0.49512845434227282
+ 0.49514377708505541
+ 0.49515910049009138
+ 0.49517442455743121
+ 0.49518974928712128
+ 0.49520507467921138
+ 0.4952204007337474
+ 0.49523572745078165
+ 0.49525105483036136
+ 0.49526638287253388
+ 0.49528171157734774
+ 0.49529704094485272
+ 0.49531237097509739
+ 0.49532770166813017
+ 0.49534303302399857
+ 0.49535836504275221
+ 0.49537369772443851
+ 0.49538903106910714
+ 0.49540436507680685
+ 0.49541969974758604
+ 0.49543503508149328
+ 0.49545037107857615
+ 0.4954657077388831
+ 0.49548104506246499
+ 0.49549638304936938
+ 0.49551172169964469
+ 0.49552706101333854
+ 0.49554240099050179
+ 0.4955577416311806
+ 0.49557308293542485
+ 0.49558842490328442
+ 0.49560376753480528
+ 0.49561911083003873
+ 0.49563445478903195
+ 0.49564979941183379
+ 0.49566514469849271
+ 0.4956804906490585
+ 0.4956958372635788
+ 0.49571118454210211
+ 0.49572653248467824
+ 0.49574188109135464
+ 0.49575723036218128
+ 0.49577258029720672
+ 0.49578793089647843
+ 0.49580328216004627
+ 0.4958186340879589
+ 0.49583398668026502
+ 0.49584933993701197
+ 0.49586469385825094
+ 0.49588004844402939
+ 0.495895403694396
+ 0.49591075960939951
+ 0.49592611618908838
+ 0.4959414734335128
+ 0.49595683134272139
+ 0.49597218991676029
+ 0.49598754915568066
+ 0.49600290905953143
+ 0.49601826962836099
+ 0.49603363086221819
+ 0.49604899276115172
+ 0.49606435532520926
+ 0.49607971855444172
+ 0.49609508244889666
+ 0.49611044700862417
+ 0.49612581223367169
+ 0.49614117812408787
+ 0.49615654467992276
+ 0.49617191190122384
+ 0.49618727978804245
+ 0.4962026483404246
+ 0.49621801755842043
+ 0.49623338744208007
+ 0.49624875799144963
+ 0.49626412920658036
+ 0.49627950108751989
+ 0.49629487363431929
+ 0.49631024684702391
+ 0.49632562072568581
+ 0.49634099527035175
+ 0.49635637048107267
+ 0.49637174635789505
+ 0.49638712290087017
+ 0.4964025001100455
+ 0.49641787798547099
+ 0.49643325652719561
+ 0.49644863573526687
+ 0.49646401560973502
+ 0.49647939615064846
+ 0.49649477735805753
+ 0.49651015923200975
+ 0.49652554177255392
+ 0.49654092497974017
+ 0.49655630885361729
+ 0.49657169339423279
+ 0.49658707860163814
+ 0.49660246447588097
+ 0.49661785101700995
+ 0.49663323822507399
+ 0.49664862610012328
+ 0.49666401464220655
+ 0.49667940385137271
+ 0.49669479372767178
+ 0.49671018427115027
+ 0.49672557548185958
+ 0.49674096735984724
+ 0.49675635990516337
+ 0.49677175311785804
+ 0.49678714699797782
+ 0.4968025415455728
+ 0.49681793676069291
+ 0.49683333264338603
+ 0.49684872919370215
+ 0.49686412641169031
+ 0.49687952429740057
+ 0.49689492285087938
+ 0.49691032207217822
+ 0.49692572196134588
+ 0.49694112251843003
+ 0.4969565237434822
+ 0.4969719256365499
+ 0.49698732819768232
+ 0.49700273142692941
+ 0.49701813532434008
+ 0.49703353988996235
+ 0.49704894512384729
+ 0.49706435102604285
+ 0.49707975759659911
+ 0.49709516483556376
+ 0.49711057274298831
+ 0.49712598131892044
+ 0.49714139056340922
+ 0.49715680047650351
+ 0.4971722110582536
+ 0.49718762230870961
+ 0.49720303422791923
+ 0.49721844681593175
+ 0.49723386007279718
+ 0.49724927399856439
+ 0.49726468859328143
+ 0.49728010385699961
+ 0.49729551978976799
+ 0.49731093639163537
+ 0.49732635366264999
+ 0.49734177160286286
+ 0.49735719021232205
+ 0.49737260949107642
+ 0.49738802943917876
+ 0.4974034500566733
+ 0.49741887134361262
+ 0.49743429330004574
+ 0.49744971592602172
+ 0.49746513922158975
+ 0.49748056318679867
+ 0.49749598782169779
+ 0.49751141312633823
+ 0.49752683910076706
+ 0.49754226574503552
+ 0.49755769305919267
+ 0.49757312104328649
+ 0.49758854969736716
+ 0.49760397902148507
+ 0.4976194090156893
+ 0.49763483968002759
+ 0.49765027101455045
+ 0.49766570301930807
+ 0.49768113569434963
+ 0.49769656903972165
+ 0.4977120030554783
+ 0.49772743774166611
+ 0.49774287309833554
+ 0.49775830912553432
+ 0.49777374582331418
+ 0.49778918319172299
+ 0.49780462123081232
+ 0.49782005994062867
+ 0.4978354993212239
+ 0.49785093937264574
+ 0.49786638009494583
+ 0.49788182148817212
+ 0.49789726355237379
+ 0.4979127062876012
+ 0.49792814969390348
+ 0.49794359377132968
+ 0.49795903851993167
+ 0.4979744839397548
+ 0.49798993003085301
+ 0.49800537679327328
+ 0.49802082422706584
+ 0.49803627233227993
+ 0.49805172110896601
+ 0.49806717055717203
+ 0.49808262067694947
+ 0.49809807146834656
+ 0.49811352293141353
+ 0.49812897506619963
+ 0.49814442787275409
+ 0.49815988135112743
+ 0.49817533550136878
+ 0.49819079032352737
+ 0.49820624581765366
+ 0.49822170198379673
+ 0.49823715882200609
+ 0.49825261633233192
+ 0.49826807451482363
+ 0.49828353336952935
+ 0.4982989928965017
+ 0.49831445309578887
+ 0.49832991396744014
+ 0.49834537551150471
+ 0.4983608377280343
+ 0.49837630061707699
+ 0.49839176417868197
+ 0.49840722841289975
+ 0.4984226933197809
+ 0.49843815889937454
+ 0.49845362515172909
+ 0.49846909207689583
+ 0.49848455967492428
+ 0.49850002794586262
+ 0.49851549688976238
+ 0.49853096650667406
+ 0.49854643679664473
+ 0.49856190775972486
+ 0.49857737939596614
+ 0.4985928517054154
+ 0.49860832468812577
+ 0.49862379834414405
+ 0.49863927267352204
+ 0.4986547476763078
+ 0.49867022335255307
+ 0.49868569970230614
+ 0.49870117672561737
+ 0.49871665442253621
+ 0.49873213279311446
+ 0.49874761183739785
+ 0.49876309155544063
+ 0.49877857194728953
+ 0.49879405301299401
+ 0.49880953475260725
+ 0.49882501716617733
+ 0.49884050025375221
+ 0.49885598401538522
+ 0.49887146845112429
+ 0.49888695356101886
+ 0.49890243934511969
+ 0.49891792580347732
+ 0.49893341293613985
+ 0.4989489007431579
+ 0.49896438922458219
+ 0.49897987838046221
+ 0.49899536821084706
+ 0.49901085871578649
+ 0.49902634989533212
+ 0.49904184174953359
+ 0.49905733427844018
+ 0.49907282748210008
+ 0.49908832136056658
+ 0.49910381591388764
+ 0.49911931114211405
+ 0.49913480704529528
+ 0.49915030362348078
+ 0.49916580087672241
+ 0.49918129880506712
+ 0.49919679740856704
+ 0.49921229668727257
+ 0.4992277966412334
+ 0.49924329727049771
+ 0.49925879857511729
+ 0.49927430055514188
+ 0.49928980321062194
+ 0.49930530654160588
+ 0.49932081054814559
+ 0.49933631523028937
+ 0.49935182058808913
+ 0.49936732662159322
+ 0.49938283333085343
+ 0.49939834071591821
+ 0.4994138487768382
+ 0.49942935751366413
+ 0.49944486692644441
+ 0.49946037701523094
+ 0.49947588778007318
+ 0.4994913992210207
+ 0.49950691133812436
+ 0.49952242413143372
+ 0.49953793760099929
+ 0.49955345174687088
+ 0.4995689665690991
+ 0.49958448206773354
+ 0.49959999824282508
+ 0.49961551509442309
+ 0.49963103262257741
+ 0.49964655082733861
+ 0.49966206970875876
+ 0.49967758926688388
+ 0.49969310950176821
+ 0.49970863041346025
+ 0.49972415200200843
+ 0.49973967426746579
+ 0.49975519720988221
+ 0.49977072082930712
+ 0.49978624512578901
+ 0.49980177009938087
+ 0.49981729575013145
+ 0.49983282207809265
+ 0.49984834908331283
+ 0.49986387676584293
+ 0.49987940512573242
+ 0.49989493416303343
+ 0.49991046387779448
+ 0.49992599427006523
+ 0.49994152533989877
+ 0.49995705708734245
+ 0.49997258951244961
+ 0.49998812261526737
+ 0.50000365639584787
+ 0.50001919085424085
+ 0.50003472599049692
+ 0.50005026180466605
+ 0.50006579829679776
+ 0.50008133546694422
+ 0.50009687331515507
+ 0.50011241184147892
+ 0.50012795104596885
+ 0.5001434909286735
+ 0.50015903148964369
+ 0.50017457272893051
+ 0.50019011464658236
+ 0.5002056572426512
+ 0.5002212005171871
+ 0.50023674447024191
+ 0.50025228910186303
+ 0.50026783441210132
+ 0.50028338040100906
+ 0.50029892706863588
+ 0.50031447441503152
+ 0.50033002244024827
+ 0.50034557114433453
+ 0.50036112052734005
+ 0.50037667058931834
+ 0.50039222133031658
+ 0.50040777275038828
+ 0.50042332484958185
+ 0.50043887762794725
+ 0.50045443108553778
+ 0.50046998522240072
+ 0.50048554003858836
+ 0.50050109553415045
+ 0.50051665170913817
+ 0.50053220856360092
+ 0.50054776609759
+ 0.50056332431115647
+ 0.50057888320434984
+ 0.50059444277722009
+ 0.50061000302981962
+ 0.50062556396219793
+ 0.50064112557440499
+ 0.50065668786649176
+ 0.50067225083850941
+ 0.5006878144905077
+ 0.50070337882253879
+ 0.5007189438346501
+ 0.50073450952689413
+ 0.50075007589932286
+ 0.50076564295198389
+ 0.50078121068493064
+ 0.50079677909821052
+ 0.50081234819187714
+ 0.50082791796598014
+ 0.50084348842056958
+ 0.50085905955569643
+ 0.50087463137141175
+ 0.50089020386776573
+ 0.50090577704480777
+ 0.50092135090259049
+ 0.50093692544116375
+ 0.50095250066057728
+ 0.50096807656088482
+ 0.50098365314213378
+ 0.50099923040437522
+ 0.50101480834766143
+ 0.50103038697204239
+ 0.50104596627756803
+ 0.50106154626428956
+ 0.50107712693225792
+ 0.5010927082815243
+ 0.50110829031213755
+ 0.50112387302415107
+ 0.50113945641761259
+ 0.50115504049257409
+ 0.5011706252490884
+ 0.5011862106872027
+ 0.50120179680697075
+ 0.50121738360844126
+ 0.50123297109166554
+ 0.50124855925669443
+ 0.50126414810357933
+ 0.50127973763237021
+ 0.50129532784311936
+ 0.50131091873587463
+ 0.50132651031068931
+ 0.50134210256761347
+ 0.5013576955066984
+ 0.50137328912799273
+ 0.50138888343155019
+ 0.50140447841741964
+ 0.50142007408565348
+ 0.50143567043630044
+ 0.50145126746941415
+ 0.50146686518504358
+ 0.50148246358323967
+ 0.50149806266405272
+ 0.50151366242753515
+ 0.50152926287373689
+ 0.50154486400270915
+ 0.50156046581450209
+ 0.50157606830916812
+ 0.50159167148675743
+ 0.50160727534731975
+ 0.5016228798909067
+ 0.50163848511757048
+ 0.50165409102736014
+ 0.50166969762032809
+ 0.50168530489652319
+ 0.50170091285599927
+ 0.50171652149880497
+ 0.50173213082499168
+ 0.50174774083461193
+ 0.50176335152771467
+ 0.50177896290435231
+ 0.50179457496457502
+ 0.50181018770843278
+ 0.50182580113597819
+ 0.50184141524726278
+ 0.50185703004233628
+ 0.50187264552124899
+ 0.50188826168405354
+ 0.50190387853080121
+ 0.50191949606154096
+ 0.5019351142763252
+ 0.50195073317520411
+ 0.50196635275823032
+ 0.50198197302545389
+ 0.50199759397692512
+ 0.50201321561269652
+ 0.50202883793281805
+ 0.50204446093734134
+ 0.50206008462631768
+ 0.50207570899979725
+ 0.50209133405783257
+ 0.50210695980047271
+ 0.50212258622777017
+ 0.50213821333977648
+ 0.5021538411365416
+ 0.50216946961811593
+ 0.5021850987845532
+ 0.50220072863590248
+ 0.50221635917221641
+ 0.50223199039354494
+ 0.50224762229993858
+ 0.50226325489144974
+ 0.50227888816813016
+ 0.50229452213002967
+ 0.50231015677719881
+ 0.5023257921096913
+ 0.50234142812755622
+ 0.50235706483084486
+ 0.50237270221961006
+ 0.50238834029390089
+ 0.50240397905376977
+ 0.50241961849926853
+ 0.50243525863044702
+ 0.5024508994473571
+ 0.50246654095004861
+ 0.50248218313857584
+ 0.50249782601298765
+ 0.50251346957333565
+ 0.50252911381967236
+ 0.50254475875204829
+ 0.5025604043705123
+ 0.50257605067511968
+ 0.50259169766591938
+ 0.50260734534296303
+ 0.50262299370630203
+ 0.50263864275598813
+ 0.50265429249207139
+ 0.50266994291460465
+ 0.5026855940236381
+ 0.50270124581922349
+ 0.50271689830141342
+ 0.50273255147025597
+ 0.50274820532580478
+ 0.50276385986811178
+ 0.50277951509722696
+ 0.50279517101320226
+ 0.50281082761608764
+ 0.50282648490593729
+ 0.50284214288280038
+ 0.50285780154672954
+ 0.5028734608977754
+ 0.50288912093598925
+ 0.50290478166142283
+ 0.50292044307412653
+ 0.50293610517415432
+ 0.50295176796155416
+ 0.50296743143638123
+ 0.50298309559868359
+ 0.50299876044851521
+ 0.50301442598592527
+ 0.50303009221096795
+ 0.5030457591236922
+ 0.50306142672415111
+ 0.50307709501239362
+ 0.50309276398847536
+ 0.50310843365244384
+ 0.50312410400435237
+ 0.50313977504425356
+ 0.5031554467721967
+ 0.50317111918823343
+ 0.50318679229241781
+ 0.50320246608479913
+ 0.50321814056542769
+ 0.50323381573435777
+ 0.5032494915916409
+ 0.50326516813732514
+ 0.50328084537146722
+ 0.50329652329411367
+ 0.50331220190531867
+ 0.50332788120513539
+ 0.50334356119361146
+ 0.50335924187080128
+ 0.50337492323675537
+ 0.50339060529152402
+ 0.50340628803516152
+ 0.50342197146771961
+ 0.50343765558924614
+ 0.50345334039979672
+ 0.50346902589942177
+ 0.50348471208817047
+ 0.50350039896609844
+ 0.50351608653325475
+ 0.50353177478969136
+ 0.50354746373545978
+ 0.50356315337061319
+ 0.50357884369520201
+ 0.50359453470927795
+ 0.50361022641289288
+ 0.50362591880609719
+ 0.50364161188894541
+ 0.50365730566148648
+ 0.5036730001237737
+ 0.50368869527585858
+ 0.50370439111779186
+ 0.50372008764962661
+ 0.50373578487141324
+ 0.50375148278320481
+ 0.50376718138505194
+ 0.50378288067700761
+ 0.5037985806591212
+ 0.5038142813314469
+ 0.50382998269403545
+ 0.50384568474693858
+ 0.50386138749020937
+ 0.50387709092389721
+ 0.50389279504805506
+ 0.50390849986273478
+ 0.50392420536798832
+ 0.50393991156386853
+ 0.50395561845042502
+ 0.50397132602770955
+ 0.5039870342957764
+ 0.50400274325467631
+ 0.50401845290445857
+ 0.5040341632451788
+ 0.50404987427688763
+ 0.50406558599963569
+ 0.50408129841347604
+ 0.50409701151846065
+ 0.50411272531464002
+ 0.50412843980206745
+ 0.50414415498079479
+ 0.50415987085087266
+ 0.50417558741235424
+ 0.50419130466529016
+ 0.5042070226097336
+ 0.50422274124573518
+ 0.50423846057334798
+ 0.50425418059262539
+ 0.50426990130361538
+ 0.50428562270637256
+ 0.50430134480094879
+ 0.50431706758739481
+ 0.50433279106576356
+ 0.50434851523610713
+ 0.50436424009847636
+ 0.50437996565292442
+ 0.50439569189950295
+ 0.50441141883826313
+ 0.5044271464692589
+ 0.50444287479254024
+ 0.50445860380816021
+ 0.50447433351616922
+ 0.50449006391662221
+ 0.50450579500956949
+ 0.50452152679506213
+ 0.50453725927315318
+ 0.50455299244389606
+ 0.50456872630734007
+ 0.5045844608635397
+ 0.5046001961125447
+ 0.50461593205440936
+ 0.50463166868918452
+ 0.50464740601692337
+ 0.50466314403767565
+ 0.50467888275149564
+ 0.50469462215843541
+ 0.50471036225854471
+ 0.50472610305187904
+ 0.50474184453848803
+ 0.50475758671842497
+ 0.50477332959174204
+ 0.50478907315848998
+ 0.50480481741872196
+ 0.50482056237249018
+ 0.50483630801984658
+ 0.50485205436084346
+ 0.50486780139553267
+ 0.5048835491239676
+ 0.50489929754619789
+ 0.50491504666227927
+ 0.50493079647226013
+ 0.50494654697619501
+ 0.50496229817413607
+ 0.50497805006613417
+ 0.50499380265224392
+ 0.50500955593251484
+ 0.50502530990700023
+ 0.5050410645757526
+ 0.50505681993882356
+ 0.50507257599626665
+ 0.50508833274813292
+ 0.50510409019447444
+ 0.5051198483353444
+ 0.5051356071707952
+ 0.50515136670087868
+ 0.5051671269256448
+ 0.50518288784515042
+ 0.50519864945944426
+ 0.50521441176858073
+ 0.5052301747726109
+ 0.50524593847158794
+ 0.50526170286556304
+ 0.50527746795458828
+ 0.50529323373871815
+ 0.50530900021800396
+ 0.50532476739249632
+ 0.50534053526225009
+ 0.50535630382731611
+ 0.50537207308774668
+ 0.50538784304359641
+ 0.50540361369491504
+ 0.50541938504175477
+ 0.50543515708417031
+ 0.50545092982221262
+ 0.50546670325593401
+ 0.50548247738538787
+ 0.50549825221062505
+ 0.50551402773169929
+ 0.50552980394866265
+ 0.50554558086156742
+ 0.5055613584704659
+ 0.50557713677541138
+ 0.50559291577645393
+ 0.50560869547364928
+ 0.50562447586704862
+ 0.505640256956704
+ 0.50565603874266674
+ 0.50567182122499144
+ 0.50568760440373028
+ 0.50570338827893446
+ 0.50571917285065737
+ 0.50573495811895142
+ 0.50575074408386889
+ 0.50576653074546318
+ 0.50578231810378427
+ 0.50579810615888932
+ 0.50581389491082696
+ 0.50582968435964948
+ 0.50584547450541184
+ 0.505861265348166
+ 0.50587705688796336
+ 0.50589284912485744
+ 0.50590864205890052
+ 0.50592443569014611
+ 0.50594023001864541
+ 0.50595602504445059
+ 0.50597182076761671
+ 0.50598761718819363
+ 0.50600341430623597
+ 0.50601921212179513
+ 0.5060350106349244
+ 0.50605080984567641
+ 0.50606660975410334
+ 0.50608241036025781
+ 0.50609821166419311
+ 0.50611401366596065
+ 0.50612981636561516
+ 0.50614561976320671
+ 0.50616142385879115
+ 0.50617722865241743
+ 0.50619303414414152
+ 0.50620884033401337
+ 0.50622464722208904
+ 0.50624045480841739
+ 0.50625626309305449
+ 0.50627207207605029
+ 0.50628788175745953
+ 0.50630369213733495
+ 0.50631950321572761
+ 0.50633531499269102
+ 0.50635112746827771
+ 0.50636694064254151
+ 0.50638275451553472
+ 0.50639856908730885
+ 0.5064143843579183
+ 0.50643020032741592
+ 0.5064460169958529
+ 0.50646183436328285
+ 0.50647765242975951
+ 0.50649347119533428
+ 0.50650929066006056
+ 0.50652511082399121
+ 0.5065409316871784
+ 0.50655675324967731
+ 0.50657257551153778
+ 0.50658839847281367
+ 0.50660422213355871
+ 0.50662004649382431
+ 0.50663587155366407
+ 0.50665169731313164
+ 0.50666752377227842
+ 0.50668335093115957
+ 0.50669917878982351
+ 0.50671500734832819
+ 0.50673083660672469
+ 0.50674666656506417
+ 0.50676249722340194
+ 0.50677832858179039
+ 0.50679416064028082
+ 0.50680999339892818
+ 0.5068258268577841
+ 0.5068416610169022
+ 0.50685749587633366
+ 0.50687333143613511
+ 0.50688916769635639
+ 0.50690500465705268
+ 0.50692084231827517
+ 0.50693668068007658
+ 0.50695251974251077
+ 0.50696835950563157
+ 0.50698419996949029
+ 0.50700004113414199
+ 0.50701588299963685
+ 0.50703172556603116
+ 0.5070475688333751
+ 0.50706341280172385
+ 0.5070792574711287
+ 0.5070951028416435
+ 0.50711094891332087
+ 0.50712679568621488
+ 0.50714264316037783
+ 0.50715849133586266
+ 0.50717434021272312
+ 0.50719018979101205
+ 0.50720604007078185
+ 0.50722189105208648
+ 0.5072377427349799
+ 0.5072535951195124
+ 0.50726944820573905
+ 0.50728530199371247
+ 0.50730115648348661
+ 0.50731701167511289
+ 0.50733286756864659
+ 0.50734872416413912
+ 0.50736458146164432
+ 0.50738043946121625
+ 0.50739629816290632
+ 0.5074121575667685
+ 0.5074280176728555
+ 0.50744387848122241
+ 0.50745973999191962
+ 0.50747560220500243
+ 0.50749146512052334
+ 0.50750732873853521
+ 0.50752319305909188
+ 0.50753905808224631
+ 0.50755492380805112
+ 0.50757079023656027
+ 0.50758665736782782
+ 0.5076025252019053
+ 0.50761839373884665
+ 0.50763426297870584
+ 0.5076501329215346
+ 0.50766600356738667
+ 0.50768187491631755
+ 0.50769774696837744
+ 0.50771361972362028
+ 0.50772949318210148
+ 0.50774536734387266
+ 0.50776124220898633
+ 0.50777711777749679
+ 0.50779299404945921
+ 0.50780887102492278
+ 0.5078247487039439
+ 0.50784062708657662
+ 0.50785650617287148
+ 0.50787238596288242
+ 0.50788826645666474
+ 0.50790414765427128
+ 0.50792002955575366
+ 0.50793591216116718
+ 0.50795179547056346
+ 0.50796767948399657
+ 0.50798356420152191
+ 0.50799944962318988
+ 0.50801533574905566
+ 0.50803122257917233
+ 0.50804711011359238
+ 0.50806299835237045
+ 0.50807888729556039
+ 0.5080947769432137
+ 0.50811066729538479
+ 0.50812655835212761
+ 0.50814245011349635
+ 0.50815834257954151
+ 0.5081742357503195
+ 0.50819012962588228
+ 0.50820602420628491
+ 0.50822191949157935
+ 0.50823781548181968
+ 0.50825371217705873
+ 0.50826960957735079
+ 0.50828550768274983
+ 0.50830140649330779
+ 0.50831730600907998
+ 0.50833320623011813
+ 0.50834910715647774
+ 0.50836500878821023
+ 0.50838091112537132
+ 0.50839681416801275
+ 0.5084127179161898
+ 0.50842862236995423
+ 0.50844452752936165
+ 0.50846043339446345
+ 0.50847633996531549
+ 0.50849224724196929
+ 0.50850815522447912
+ 0.50852406391289928
+ 0.50853997330728384
+ 0.50855588340768465
+ 0.5085717942141561
+ 0.50858770572675227
+ 0.50860361794552611
+ 0.50861953087053213
+ 0.50863544450182319
+ 0.50865135883945478
+ 0.50866727388347743
+ 0.50868318963394676
+ 0.50869910609091695
+ 0.50871502325443985
+ 0.50873094112457107
+ 0.50874685970136346
+ 0.5087627789848701
+ 0.50877869897514683
+ 0.50879461967224515
+ 0.50881054107621937
+ 0.50882646318712277
+ 0.50884238600501075
+ 0.50885830952993649
+ 0.50887423376195295
+ 0.50889015870111332
+ 0.5089060843474732
+ 0.50892201070108545
+ 0.50893793776200469
+ 0.50895386553028255
+ 0.50896979400597486
+ 0.50898572318913449
+ 0.50900165307981593
+ 0.50901758367807237
+ 0.50903351498395799
+ 0.5090494469975273
+ 0.50906537971883092
+ 0.50908131314792693
+ 0.50909724728486716
+ 0.50911318212970613
+ 0.50912911768249558
+ 0.50914505394329257
+ 0.50916099091214884
+ 0.509176928589119
+ 0.50919286697425725
+ 0.50920880606761554
+ 0.50922474586925093
+ 0.50924068637921516
+ 0.50925662759756152
+ 0.50927256952434696
+ 0.50928851215962201
+ 0.5093044555034425
+ 0.50932039955586283
+ 0.50933634431693497
+ 0.50935228978671454
+ 0.50936823596525349
+ 0.509384182852609
+ 0.5094001304488327
+ 0.50941607875397932
+ 0.50943202776810315
+ 0.50944797749125625
+ 0.5094639279234956
+ 0.50947987906487202
+ 0.50949583091544226
+ 0.50951178347525972
+ 0.50952773674437646
+ 0.50954369072284933
+ 0.50955964541073029
+ 0.50957560080807529
+ 0.50959155691493496
+ 0.5096075137313677
+ 0.50962347125742535
+ 0.50963942949316121
+ 0.50965538843863123
+ 0.50967134809388726
+ 0.50968730845898513
+ 0.50970326953397938
+ 0.50971923131892216
+ 0.509735193813869
+ 0.50975115701887352
+ 0.50976712093399001
+ 0.50978308555927199
+ 0.50979905089477517
+ 0.50981501694055154
+ 0.50983098369665714
+ 0.50984695116314505
+ 0.50986291934007011
+ 0.50987888822748539
+ 0.50989485782544697
+ 0.50991082813400668
+ 0.50992679915321937
+ 0.50994277088314066
+ 0.50995874332382407
+ 0.50997471647532289
+ 0.50999069033769306
+ 0.51000666491098656
+ 0.51002264019525945
+ 0.51003861619056501
+ 0.51005459289695776
+ 0.51007057031449243
+ 0.51008654844322121
+ 0.51010252728320116
+ 0.51011850683448567
+ 0.51013448709712816
+ 0.51015046807118347
+ 0.51016644975670589
+ 0.51018243215375036
+ 0.51019841526236898
+ 0.51021439908261879
+ 0.51023038361455209
+ 0.51024636885822372
+ 0.51026235481368931
+ 0.51027834148100115
+ 0.5102943288602152
+ 0.51031031695138507
+ 0.51032630575456395
+ 0.51034229526980912
+ 0.51035828549717155
+ 0.51037427643670852
+ 0.51039026808847343
+ 0.5104062604525198
+ 0.51042225352890214
+ 0.51043824731767673
+ 0.51045424181889565
+ 0.51047023703261363
+ 0.51048623295888673
+ 0.51050222959776836
+ 0.51051822694931337
+ 0.51053422501357393
+ 0.51055022379060855
+ 0.5105662232804683
+ 0.51058222348320781
+ 0.51059822439888336
+ 0.51061422602754947
+ 0.51063022836925842
+ 0.51064623142406651
+ 0.51066223519202825
+ 0.51067823967319714
+ 0.51069424486762716
+ 0.51071025077537502
+ 0.51072625739649335
+ 0.51074226473103712
+ 0.51075827277906205
+ 0.51077428154062054
+ 0.51079029101576878
+ 0.51080630120456028
+ 0.51082231210704976
+ 0.51083832372329352
+ 0.51085433605334374
+ 0.51087034909725659
+ 0.51088636285508549
+ 0.51090237732688559
+ 0.51091839251271143
+ 0.51093440841261806
+ 0.51095042502665899
+ 0.51096644235488919
+ 0.51098246039736472
+ 0.5109984791541391
+ 0.51101449862526627
+ 0.51103051881080197
+ 0.51104653971080005
+ 0.51106256132531536
+ 0.51107858365440284
+ 0.51109460669811735
+ 0.5111106304565125
+ 0.51112665492964449
+ 0.51114268011756703
+ 0.51115870602033486
+ 0.51117473263800317
+ 0.51119075997062657
+ 0.51120678801825903
+ 0.51122281678095527
+ 0.51123884625877158
+ 0.51125487645176038
+ 0.51127090735997782
+ 0.51128693898347888
+ 0.5113029713223185
+ 0.5113190043765492
+ 0.51133503814622838
+ 0.51135107263140978
+ 0.51136710783214834
+ 0.51138314374849891
+ 0.51139918038051557
+ 0.51141521772825294
+ 0.5114312557917674
+ 0.51144729457111282
+ 0.51146333406634392
+ 0.51147937427751589
+ 0.51149541520468245
+ 0.51151145684789978
+ 0.51152749920722296
+ 0.51154354228270582
+ 0.51155958607440322
+ 0.51157563058237032
+ 0.51159167580666198
+ 0.51160772174733216
+ 0.51162376840443835
+ 0.51163981577803297
+ 0.5116558638681713
+ 0.51167191267490941
+ 0.51168796219830115
+ 0.51170401243840158
+ 0.51172006339526588
+ 0.511736115068949
+ 0.51175216745950602
+ 0.51176822056699089
+ 0.51178427439145968
+ 0.51180032893296645
+ 0.51181638419156739
+ 0.51183244016731644
+ 0.51184849686026856
+ 0.51186455427048028
+ 0.5118806123980042
+ 0.51189667124289651
+ 0.51191273080521238
+ 0.511928791085007
+ 0.51194485208233409
+ 0.51196091379725006
+ 0.51197697622980898
+ 0.51199303938006713
+ 0.51200910324807825
+ 0.51202516783389895
+ 0.51204123313758165
+ 0.51205729915918419
+ 0.5120733658987604
+ 0.51208943335636414
+ 0.51210550153205303
+ 0.51212157042588125
+ 0.51213764003790241
+ 0.51215371036817303
+ 0.5121697814167484
+ 0.51218585318368237
+ 0.51220192566903266
+ 0.51221799887285058
+ 0.51223407279519395
+ 0.51225014743611674
+ 0.51226622279567535
+ 0.51228229887392496
+ 0.51229837567091818
+ 0.51231445318671298
+ 0.5123305314213632
+ 0.51234661037492535
+ 0.51236269004745205
+ 0.51237877043900115
+ 0.51239485154962539
+ 0.51241093337938237
+ 0.51242701592832618
+ 0.5124430991965121
+ 0.51245918318399541
+ 0.5124752678908312
+ 0.51249135331707496
+ 0.51250743946278177
+ 0.51252352632800691
+ 0.51253961391280578
+ 0.51255570221723357
+ 0.51257179124134566
+ 0.51258788098519714
+ 0.51260397144884229
+ 0.51262006263233872
+ 0.51263615453574052
+ 0.51265224715910296
+ 0.51266834050248034
+ 0.51268443456592883
+ 0.51270052934950539
+ 0.51271662485326386
+ 0.51273272107725831
+ 0.51274881802154537
+ 0.51276491568618177
+ 0.51278101407122134
+ 0.51279711317671817
+ 0.51281321300273031
+ 0.51282931354931183
+ 0.51284541481651802
+ 0.51286151680440417
+ 0.51287761951302702
+ 0.5128937229424394
+ 0.51290982709269917
+ 0.51292593196386038
+ 0.51294203755597978
+ 0.51295814386911132
+ 0.51297425090331072
+ 0.51299035865863429
+ 0.51300646713513764
+ 0.51302257633287485
+ 0.51303868625190263
+ 0.51305479689227618
+ 0.51307090825404855
+ 0.51308702033728026
+ 0.51310313314202161
+ 0.51311924666833186
+ 0.51313536091626522
+ 0.51315147588587695
+ 0.51316759157722258
+ 0.51318370799035751
+ 0.51319982512533846
+ 0.51321594298221851
+ 0.5132320615610555
+ 0.51324818086190482
+ 0.51326430088482222
+ 0.51328042162986154
+ 0.51329654309707973
+ 0.51331266528653097
+ 0.51332878819827332
+ 0.51334491183235953
+ 0.51336103618884776
+ 0.51337716126779109
+ 0.51339328706924747
+ 0.5134094135932723
+ 0.51342554083991854
+ 0.51344166880924558
+ 0.5134577975013066
+ 0.51347392691615801
+ 0.51349005705385553
+ 0.51350618791445468
+ 0.51352231949801097
+ 0.51353845180457991
+ 0.51355458483421834
+ 0.51357071858698045
+ 0.51358685306292196
+ 0.51360298826209971
+ 0.51361912418456901
+ 0.51363526083038691
+ 0.51365139819960615
+ 0.51366753629228523
+ 0.51368367510847701
+ 0.51369981464823955
+ 0.51371595491162836
+ 0.51373209589869917
+ 0.51374823760950639
+ 0.51376438004410785
+ 0.51378052320255818
+ 0.51379666708491278
+ 0.5138128116912275
+ 0.51382895702155884
+ 0.51384510307596276
+ 0.51386124985449477
+ 0.51387739735721039
+ 0.51389354558416533
+ 0.51390969453541657
+ 0.51392584421101839
+ 0.51394199461102763
+ 0.51395814573549881
+ 0.51397429758449131
+ 0.513990450158057
+ 0.51400660345625282
+ 0.51402275747913562
+ 0.51403891222676112
+ 0.51405506769918385
+ 0.51407122389646176
+ 0.51408738081864946
+ 0.51410353846580392
+ 0.51411969683797931
+ 0.51413585593523281
+ 0.51415201575762137
+ 0.51416817630519818
+ 0.51418433757802129
+ 0.51420049957614533
+ 0.51421666229962715
+ 0.51423282574852269
+ 0.51424898992288859
+ 0.51426515482277957
+ 0.5142813204482527
+ 0.51429748679936216
+ 0.51431365387616523
+ 0.51432982167871866
+ 0.51434599020707716
+ 0.5143621594612976
+ 0.5143783294414358
+ 0.51439450014754751
+ 0.51441067157968856
+ 0.51442684373791459
+ 0.51444301662228398
+ 0.51445919023285125
+ 0.51447536456967213
+ 0.51449153963280247
+ 0.51450771542230045
+ 0.51452389193821846
+ 0.51454006918061679
+ 0.51455624714954917
+ 0.51457242584507124
+ 0.51458860526724126
+ 0.51460478541611254
+ 0.51462096629174359
+ 0.51463714789418891
+ 0.51465333022350679
+ 0.51466951327975174
+ 0.51468569706297973
+ 0.51470188157324792
+ 0.51471806681061183
+ 0.51473425277512774
+ 0.51475043946685239
+ 0.51476662688584074
+ 0.51478281503214962
+ 0.51479900390583633
+ 0.51481519350695537
+ 0.51483138383556404
+ 0.51484757489171795
+ 0.5148637666754744
+ 0.51487995918688823
+ 0.51489615242601627
+ 0.51491234639291572
+ 0.51492854108764141
+ 0.51494473651025041
+ 0.51496093266079856
+ 0.51497712953934183
+ 0.51499332714593737
+ 0.51500952548064127
+ 0.51502572454350937
+ 0.51504192433459861
+ 0.51505812485396529
+ 0.51507432610166515
+ 0.51509052807775424
+ 0.51510673078229097
+ 0.51512293421532884
+ 0.51513913837692626
+ 0.51515534326713919
+ 0.51517154888602357
+ 0.51518775523363547
+ 0.51520396231003218
+ 0.51522017011526944
+ 0.51523637864940341
+ 0.51525258791249251
+ 0.51526879790459035
+ 0.5152850086257541
+ 0.51530122007604107
+ 0.5153174322555083
+ 0.51533364516420965
+ 0.51534985880220341
+ 0.51536607316954686
+ 0.51538228826629495
+ 0.51539850409250354
+ 0.51541472064823124
+ 0.51543093793353145
+ 0.51544715594846424
+ 0.51546337469308423
+ 0.51547959416744871
+ 0.5154958143716124
+ 0.51551203530563428
+ 0.51552825696956861
+ 0.51554447936347303
+ 0.5155607024874036
+ 0.51557692634141883
+ 0.51559315092557245
+ 0.51560937623992154
+ 0.51562560228452481
+ 0.51564182905943723
+ 0.51565805656471475
+ 0.51567428480041477
+ 0.51569051376659469
+ 0.51570674346330825
+ 0.51572297389061617
+ 0.51573920504857118
+ 0.51575543693723302
+ 0.51577166955665654
+ 0.51578790290689802
+ 0.51580413698801586
+ 0.51582037180006535
+ 0.51583660734310344
+ 0.51585284361718664
+ 0.51586908062237213
+ 0.51588531835871609
+ 0.51590155682627614
+ 0.51591779602510701
+ 0.51593403595526743
+ 0.51595027661681225
+ 0.5159665180098002
+ 0.51598276013428623
+ 0.51599900299032797
+ 0.51601524657798137
+ 0.51603149089730527
+ 0.5160477359483544
+ 0.51606398173118528
+ 0.5160802282458552
+ 0.51609647549242166
+ 0.51611272347094095
+ 0.51612897218147036
+ 0.51614522162406506
+ 0.51616147179878369
+ 0.5161777227056813
+ 0.51619397434481662
+ 0.51621022671624583
+ 0.51622647982002401
+ 0.51624273365620998
+ 0.51625898822485983
+ 0.51627524352603127
+ 0.51629149955977915
+ 0.51630775632616233
+ 0.51632401382523707
+ 0.51634027205705968
+ 0.51635653102168766
+ 0.51637279071917741
+ 0.51638905114958633
+ 0.51640531231297082
+ 0.51642157420938839
+ 0.51643783683889544
+ 0.51645410020154936
+ 0.51647036429740545
+ 0.51648662912652354
+ 0.5165028946889576
+ 0.51651916098476647
+ 0.51653542801400643
+ 0.5165516957767351
+ 0.51656796427300888
+ 0.51658423350288407
+ 0.5166005034664195
+ 0.51661677416367024
+ 0.51663304559469414
+ 0.51664931775954714
+ 0.51666559065828865
+ 0.51668186429097329
+ 0.51669813865765901
+ 0.51671441375840343
+ 0.51673068959326274
+ 0.51674696616229354
+ 0.51676324346555591
+ 0.51677952150310236
+ 0.51679580027499206
+ 0.51681207978128374
+ 0.5168283600220327
+ 0.5168446409972951
+ 0.51686092270713024
+ 0.51687720515159297
+ 0.51689348833074256
+ 0.51690977224463508
+ 0.51692605689332849
+ 0.51694234227687785
+ 0.5169586283953409
+ 0.51697491524877792
+ 0.51699120283724143
+ 0.51700749116079192
+ 0.51702378021948558
+ 0.51704007001337904
+ 0.51705636054252868
+ 0.51707265180699369
+ 0.51708894380683035
+ 0.51710523654209661
+ 0.51712153001284755
+ 0.51713782421914201
+ 0.51715411916103804
+ 0.51717041483859094
+ 0.51718671125185944
+ 0.51720300840090017
+ 0.51721930628576973
+ 0.51723560490652709
+ 0.51725190426322765
+ 0.51726820435592891
+ 0.51728450518468894
+ 0.51730080674956547
+ 0.51731710905061368
+ 0.51733341208789407
+ 0.5173497158614605
+ 0.51736602037137214
+ 0.51738232561768682
+ 0.51739863160046107
+ 0.51741493831975138
+ 0.51743124577561717
+ 0.51744755396811326
+ 0.51746386289729907
+ 0.5174801725632312
+ 0.51749648296596751
+ 0.51751279410556317
+ 0.51752910598207857
+ 0.51754541859556935
+ 0.51756173194609434
+ 0.51757804603370894
+ 0.51759436085847099
+ 0.5176106764204399
+ 0.51762699271967083
+ 0.51764330975622275
+ 0.51765962753015149
+ 0.5176759460415159
+ 0.5176922652903726
+ 0.51770858527677965
+ 0.51772490600079368
+ 0.51774122746247253
+ 0.51775754966187548
+ 0.51777387259905661
+ 0.5177901962740763
+ 0.51780652068699007
+ 0.5178228458378572
+ 0.51783917172673422
+ 0.51785549835367783
+ 0.51787182571874613
+ 0.51788815382199938
+ 0.51790448266348943
+ 0.51792081224328046
+ 0.5179371425614242
+ 0.51795347361798105
+ 0.51796980541300908
+ 0.51798613794656501
+ 0.51800247121870546
+ 0.51801880522948995
+ 0.51803513997897366
+ 0.51805147546721719
+ 0.51806781169427618
+ 0.51808414866020835
+ 0.51810048636507211
+ 0.51811682480892385
+ 0.51813316399182308
+ 0.51814950391382519
+ 0.5181658445749896
+ 0.51818218597537302
+ 0.51819852811503464
+ 0.51821487099403019
+ 0.5182312146124175
+ 0.51824755897025609
+ 0.51826390406760148
+ 0.51828024990451294
+ 0.5182965964810472
+ 0.51831294379726245
+ 0.51832929185321663
+ 0.51834564064896682
+ 0.51836199018457096
+ 0.51837834046008702
+ 0.51839469147557338
+ 0.51841104323108644
+ 0.51842739572668484
+ 0.51844374896242629
+ 0.51846010293836908
+ 0.51847645765456873
+ 0.51849281311108597
+ 0.5185091693079763
+ 0.51852552624529924
+ 0.51854188392311162
+ 0.51855824234147152
+ 0.5185746015004371
+ 0.51859096140006522
+ 0.51860732204041549
+ 0.51862368342154341
+ 0.51864004554350962
+ 0.51865640840636973
+ 0.51867277201018203
+ 0.5186891363550048
+ 0.51870550144089589
+ 0.51872186726791381
+ 0.51873823383611528
+ 0.5187546011455586
+ 0.51877096919630195
+ 0.5187873379884036
+ 0.5188037075219204
+ 0.51882007779691175
+ 0.51883644881343338
+ 0.51885282057154636
+ 0.51886919307130586
+ 0.51888556631277061
+ 0.51890194029599968
+ 0.51891831502104913
+ 0.51893469048797958
+ 0.51895106669684665
+ 0.51896744364770886
+ 0.51898382134062548
+ 0.51900019977565359
+ 0.51901657895285025
+ 0.51903295887227496
+ 0.51904933953398602
+ 0.51906572093803904
+ 0.51908210308449509
+ 0.51909848597341091
+ 0.51911486960484499
+ 0.51913125397885296
+ 0.5191476390954971
+ 0.51916402495483316
+ 0.51918041155691796
+ 0.51919679890181258
+ 0.51921318698957275
+ 0.51922957582025686
+ 0.51924596539392553
+ 0.51926235571063362
+ 0.5192787467704405
+ 0.51929513857340581
+ 0.51931153111958539
+ 0.51932792440903774
+ 0.51934431844182227
+ 0.51936071321799748
+ 0.51937710873761911
+ 0.51939350500074688
+ 0.51940990200744042
+ 0.51942629975775545
+ 0.51944269825175049
+ 0.5194590974894866
+ 0.51947549747101796
+ 0.51949189819640462
+ 0.51950829966570611
+ 0.51952470187897948
+ 0.51954110483628202
+ 0.51955750853767468
+ 0.51957391298321187
+ 0.51959031817295609
+ 0.51960672410696174
+ 0.51962313078528999
+ 0.5196395382079978
+ 0.5196559463751439
+ 0.51967235528678635
+ 0.51968876494298388
+ 0.51970517534379379
+ 0.51972158648927547
+ 0.51973799837948642
+ 0.51975441101448605
+ 0.51977082439433309
+ 0.51978723851908348
+ 0.51980365338879819
+ 0.51982006900353306
+ 0.51983648536334925
+ 0.51985290246830396
+ 0.51986932031845334
+ 0.51988573891386047
+ 0.51990215825457931
+ 0.5199185783406719
+ 0.51993499917219299
+ 0.51995142074920497
+ 0.51996784307176269
+ 0.51998426613992688
+ 0.52000068995375504
+ 0.52001711451330568
+ 0.52003353981863865
+ 0.52004996586980989
+ 0.52006639266688048
+ 0.52008282020990659
+ 0.52009924849894906
+ 0.52011567753406429
+ 0.52013210731531168
+ 0.52014853784275017
+ 0.52016496911643706
+ 0.52018140113643196
+ 0.52019783390279362
+ 0.5202142674155793
+ 0.52023070167484897
+ 0.52024713668066114
+ 0.5202635724330732
+ 0.52028000893214377
+ 0.52029644617793269
+ 0.5203128841704987
+ 0.52032932290989897
+ 0.52034576239619235
+ 0.52036220262943855
+ 0.5203786436096951
+ 0.52039508533702061
+ 0.52041152781147493
+ 0.52042797103311544
+ 0.52044441500200211
+ 0.52046085971819234
+ 0.52047730518174484
+ 0.52049375139271814
+ 0.5205101983511724
+ 0.52052664605716492
+ 0.52054309451075564
+ 0.52055954371200197
+ 0.52057599366096263
+ 0.52059244435769636
+ 0.52060889580226311
+ 0.52062534799472171
+ 0.52064180093512924
+ 0.52065825462354609
+ 0.52067470906002822
+ 0.52069116424463824
+ 0.52070762017743233
+ 0.52072407685846933
+ 0.5207405342878102
+ 0.52075699246551033
+ 0.52077345139163189
+ 0.52078991106623129
+ 0.52080637148936859
+ 0.52082283266110252
+ 0.5208392945814917
+ 0.52085575725059385
+ 0.52087222066847016
+ 0.52088868483517814
+ 0.5209051497507754
+ 0.52092161541532322
+ 0.52093808182887913
+ 0.52095454899150195
+ 0.52097101690325165
+ 0.5209874855641845
+ 0.52100395497436347
+ 0.52102042513384428
+ 0.52103689604268622
+ 0.52105336770095045
+ 0.52106984010869328
+ 0.52108631326597354
+ 0.52110278717285274
+ 0.52111926182938828
+ 0.52113573723563789
+ 0.52115221339166284
+ 0.52116869029752078
+ 0.52118516795327186
+ 0.52120164635897359
+ 0.52121812551468494
+ 0.52123460542046729
+ 0.52125108607637582
+ 0.52126756748247316
+ 0.52128404963881547
+ 0.52130053254546438
+ 0.52131701620247761
+ 0.5213335006099139
+ 0.52134998576783342
+ 0.52136647167629269
+ 0.52138295833535431
+ 0.5213994457450748
+ 0.52141593390551422
+ 0.52143242281673141
+ 0.521448912478787
+ 0.52146540289173682
+ 0.52148189405564283
+ 0.52149838597056375
+ 0.52151487863655743
+ 0.52153137205368383
+ 0.521547866222001
+ 0.52156436114157012
+ 0.52158085681244903
+ 0.52159735323469814
+ 0.52161385040837482
+ 0.52163034833353827
+ 0.5216468470102501
+ 0.5216633464385666
+ 0.52167984661854816
+ 0.52169634755025496
+ 0.52171284923374484
+ 0.5217293516690793
+ 0.52174585485631353
+ 0.52176235879551036
+ 0.52177886348672642
+ 0.52179536893002321
+ 0.52181187512545835
+ 0.52182838207309223
+ 0.52184488977298404
+ 0.52186139822519262
+ 0.52187790742977735
+ 0.5218944173867982
+ 0.5219109280963119
+ 0.52192743955838128
+ 0.52194395177306419
+ 0.52196046474041957
+ 0.52197697846050672
+ 0.52199349293338571
+ 0.52201000815911469
+ 0.52202652413775397
+ 0.52204304086936359
+ 0.52205955835400175
+ 0.5220760765917275
+ 0.52209259558260113
+ 0.52210911532668169
+ 0.52212563582402993
+ 0.52214215707470202
+ 0.52215867907876112
+ 0.52217520183626387
+ 0.52219172534727176
+ 0.52220824961184298
+ 0.52222477463003636
+ 0.52224130040191252
+ 0.52225782692753053
+ 0.52227435420694956
+ 0.52229088224023024
+ 0.5223074110274315
+ 0.52232394056861142
+ 0.52234047086383173
+ 0.52235700191315015
+ 0.52237353371662731
+ 0.52239006627432238
+ 0.52240659958629465
+ 0.5224231336526044
+ 0.5224396684733098
+ 0.52245620404847104
+ 0.52247274037814906
+ 0.52248927746240137
+ 0.52250581530128881
+ 0.52252235389487034
+ 0.52253889324320668
+ 0.52255543334635579
+ 0.52257197420437684
+ 0.5225885158173329
+ 0.52260505818527947
+ 0.52262160130827817
+ 0.52263814518638874
+ 0.52265468981967111
+ 0.52267123520818382
+ 0.52268778135198712
+ 0.52270432825114155
+ 0.52272087590570404
+ 0.52273742431573644
+ 0.52275397348129926
+ 0.52277052340245045
+ 0.52278707407925051
+ 0.52280362551175774
+ 0.52282017770003397
+ 0.52283673064413716
+ 0.52285328434412914
+ 0.52286983880006799
+ 0.5228863940120132
+ 0.52290294998002529
+ 0.52291950670416354
+ 0.52293606418448857
+ 0.52295262242105867
+ 0.52296918141393556
+ 0.52298574116317864
+ 0.52300230166884598
+ 0.52301886293099831
+ 0.52303542494969635
+ 0.52305198772499928
+ 0.52306855125696539
+ 0.52308511554565773
+ 0.52310168059113338
+ 0.52311824639345395
+ 0.52313481295267927
+ 0.52315138026886721
+ 0.52316794834207858
+ 0.52318451717237391
+ 0.52320108675981269
+ 0.52321765710445578
+ 0.52323422820636112
+ 0.52325080006559099
+ 0.52326737268220203
+ 0.5232839460562575
+ 0.52330052018781581
+ 0.52331709507693625
+ 0.52333367072368076
+ 0.52335024712810774
+ 0.52336682429027792
+ 0.52338340221025048
+ 0.52339998088808537
+ 0.52341656032384298
+ 0.52343314051758416
+ 0.52344972146936719
+ 0.52346630317925291
+ 0.52348288564730194
+ 0.5234994688735739
+ 0.52351605285812708
+ 0.52353263760102464
+ 0.52354922310232499
+ 0.52356580936208885
+ 0.5235823963803744
+ 0.52359898415724282
+ 0.52361557269275572
+ 0.52363216198697049
+ 0.52364875203994898
+ 0.52366534285175081
+ 0.52368193442243693
+ 0.52369852675206563
+ 0.52371511984069874
+ 0.52373171368839622
+ 0.52374830829521613
+ 0.52376490366122064
+ 0.52378149978646937
+ 0.52379809667102328
+ 0.52381469431494054
+ 0.52383129271828344
+ 0.52384789188111147
+ 0.52386449180348438
+ 0.52388109248546288
+ 0.52389769392710672
+ 0.52391429612847562
+ 0.52393089908963153
+ 0.52394750281063296
+ 0.52396410729154208
+ 0.52398071253241596
+ 0.52399731853331821
+ 0.5240139252943069
+ 0.52403053281544332
+ 0.52404714109678696
+ 0.52406375013839868
+ 0.5240803599403383
+ 0.52409697050266679
+ 0.52411358182544499
+ 0.52413019390873139
+ 0.52414680675258707
+ 0.52416342035707397
+ 0.5241800347222495
+ 0.52419664984817582
+ 0.52421326573491267
+ 0.52422988238252111
+ 0.52424649979106064
+ 0.52426311796059255
+ 0.52427973689117768
+ 0.52429635658287455
+ 0.52431297703574409
+ 0.52432959824984726
+ 0.52434622022524424
+ 0.52436284296199553
+ 0.52437946646016109
+ 0.52439609071980209
+ 0.52441271574097936
+ 0.52442934152375154
+ 0.52444596806818089
+ 0.52446259537432727
+ 0.5244792234422504
+ 0.52449585227201134
+ 0.52451248186367128
+ 0.5245291122172886
+ 0.5245457433329257
+ 0.52456237521064364
+ 0.52457900785050104
+ 0.5245956412525602
+ 0.52461227541687971
+ 0.52462891034352199
+ 0.52464554603254554
+ 0.52466218248401275
+ 0.5246788196979848
+ 0.52469545767452019
+ 0.52471209641367877
+ 0.52472873591552427
+ 0.5247453761801153
+ 0.52476201720751281
+ 0.52477865899777698
+ 0.52479530155096887
+ 0.52481194486714944
+ 0.52482858894637752
+ 0.52484523378871673
+ 0.52486187939422568
+ 0.5248785257629669
+ 0.52489517289499765
+ 0.52491182079038179
+ 0.52492846944917781
+ 0.52494511887144824
+ 0.52496176905725189
+ 0.52497842000665107
+ 0.52499507171970561
+ 0.52501172419647701
+ 0.52502837743702491
+ 0.52504503144141079
+ 0.5250616862096944
+ 0.52507834174193968
+ 0.5250949980382027
+ 0.52511165509854729
+ 0.52512831292303341
+ 0.52514497151172101
+ 0.5251616308646726
+ 0.5251782909819469
+ 0.52519495186360776
+ 0.52521161350971146
+ 0.52522827592032284
+ 0.52524493909550218
+ 0.525261603035308
+ 0.52527826773980302
+ 0.52529493320904841
+ 0.52531159944310302
+ 0.52532826644202935
+ 0.52534493420588746
+ 0.52536160273473997
+ 0.5253782720286444
+ 0.52539494208766591
+ 0.52541161291186056
+ 0.52542828450129353
+ 0.52544495685602388
+ 0.52546162997611146
+ 0.52547830386161887
+ 0.52549497851260762
+ 0.52551165392913635
+ 0.52552833011126776
+ 0.52554500705906204
+ 0.52556168477258036
+ 0.52557836325188301
+ 0.52559504249703259
+ 0.52561172250809041
+ 0.52562840328511407
+ 0.52564508482816752
+ 0.52566176713731094
+ 0.52567845021260573
+ 0.52569513405411195
+ 0.52571181866189232
+ 0.52572850403600568
+ 0.52574519017651367
+ 0.52576187708347988
+ 0.52577856475696227
+ 0.52579525319702336
+ 0.52581194240372209
+ 0.52582863237712374
+ 0.52584532311728593
+ 0.5258620146242714
+ 0.52587870689814042
+ 0.52589539993895429
+ 0.52591209374677328
+ 0.52592878832166023
+ 0.52594548366367655
+ 0.52596217977288118
+ 0.52597887664933685
+ 0.52599557429310373
+ 0.52601227270424478
+ 0.52602897188281883
+ 0.52604567182888873
+ 0.52606237254251587
+ 0.52607907402375931
+ 0.52609577627268311
+ 0.52611247928934635
+ 0.52612918307381162
+ 0.52614588762613812
+ 0.52616259294638978
+ 0.52617929903462568
+ 0.52619600589090876
+ 0.52621271351529919
+ 0.52622942190785837
+ 0.52624613106864804
+ 0.52626284099772858
+ 0.52627955169516283
+ 0.52629626316100964
+ 0.52631297539533328
+ 0.52632968839819272
+ 0.5263464021696509
+ 0.52636311670976688
+ 0.52637983201860594
+ 0.52639654809622605
+ 0.52641326494268892
+ 0.52642998255805706
+ 0.5264467009423911
+ 0.52646342009575398
+ 0.52648014001820465
+ 0.52649686070980473
+ 0.5265135821706185
+ 0.52653030440070392
+ 0.52654702740012493
+ 0.52656375116894072
+ 0.52658047570721433
+ 0.52659720101500596
+ 0.52661392709238009
+ 0.52663065393939446
+ 0.5266473815561119
+ 0.52666410994259427
+ 0.52668083909890329
+ 0.52669756902509923
+ 0.52671429972124495
+ 0.52673103118740128
+ 0.52674776342362972
+ 0.5267644964299919
+ 0.52678123020654832
+ 0.52679796475336349
+ 0.52681470007049491
+ 0.5268314361580072
+ 0.52684817301596065
+ 0.52686491064441709
+ 0.52688164904343826
+ 0.52689838821308588
+ 0.52691512815342034
+ 0.52693186886450494
+ 0.52694861034639995
+ 0.52696535259916721
+ 0.52698209562286857
+ 0.52699883941756709
+ 0.52701558398332182
+ 0.52703232932019606
+ 0.52704907542825019
+ 0.52706582230754739
+ 0.52708256995814928
+ 0.52709931838011548
+ 0.52711606757351004
+ 0.52713281753839347
+ 0.52714956827482795
+ 0.52716631978287509
+ 0.52718307206259529
+ 0.52719982511405206
+ 0.52721657893730689
+ 0.52723333353242052
+ 0.52725008889945613
+ 0.52726684503847421
+ 0.52728360194953672
+ 0.52730035963270538
+ 0.52731711808804349
+ 0.52733387731561032
+ 0.52735063731546894
+ 0.52736739808768152
+ 0.52738415963230967
+ 0.52740092194941546
+ 0.5274176850390595
+ 0.52743444890130475
+ 0.52745121353621227
+ 0.5274679789438449
+ 0.52748474512426469
+ 0.52750151207753104
+ 0.52751827980370847
+ 0.52753504830285758
+ 0.52755181757504155
+ 0.52756858762031988
+ 0.52758535843875709
+ 0.52760213003041367
+ 0.52761890239535181
+ 0.52763567553363344
+ 0.52765244944531919
+ 0.52766922413047346
+ 0.5276859995891573
+ 0.52770277582143121
+ 0.52771955282735972
+ 0.52773633060700231
+ 0.52775310916042228
+ 0.52776988848768291
+ 0.5277866685888436
+ 0.52780344946396651
+ 0.52782023111311616
+ 0.52783701353635193
+ 0.52785379673373589
+ 0.52787058070533277
+ 0.52788736545120318
+ 0.52790415097140797
+ 0.52792093726601164
+ 0.52793772433507391
+ 0.52795451217865652
+ 0.52797130079682442
+ 0.52798809018963688
+ 0.52800488035715742
+ 0.5280216712994481
+ 0.5280384630165722
+ 0.52805525550858801
+ 0.52807204877556146
+ 0.52808884281755353
+ 0.52810563763462604
+ 0.52812243322684127
+ 0.52813922959426141
+ 0.52815602673694839
+ 0.52817282465496451
+ 0.52818962334837172
+ 0.52820642281723373
+ 0.52822322306161096
+ 0.52824002408156601
+ 0.52825682587716205
+ 0.52827362844845871
+ 0.52829043179552204
+ 0.52830723591841156
+ 0.52832404081719098
+ 0.52834084649192081
+ 0.52835765294266479
+ 0.52837446016948486
+ 0.52839126817244353
+ 0.52840807695160275
+ 0.52842488650702479
+ 0.52844169683877196
+ 0.52845850794690508
+ 0.5284753198314901
+ 0.52849213249258686
+ 0.52850894593025621
+ 0.52852576014456554
+ 0.52854257513557079
+ 0.52855939090334036
+ 0.52857620744793155
+ 0.52859302476941039
+ 0.52860984286783785
+ 0.52862666174327622
+ 0.52864348139578776
+ 0.52866030182543589
+ 0.52867712303228054
+ 0.52869394501638778
+ 0.52871076777781723
+ 0.52872759131663238
+ 0.52874441563289576
+ 0.52876124072666952
+ 0.52877806659801607
+ 0.52879489324699758
+ 0.52881172067367777
+ 0.52882854887811759
+ 0.52884537786038077
+ 0.52886220762052938
+ 0.52887903815862602
+ 0.52889586947473288
+ 0.52891270156891235
+ 0.5289295344412267
+ 0.52894636809173967
+ 0.52896320252051365
+ 0.52898003772760971
+ 0.52899687371309256
+ 0.52901371047702361
+ 0.52903054801946492
+ 0.52904738634048054
+ 0.5290642254401311
+ 0.52908106531848065
+ 0.52909790597559025
+ 0.52911474741152587
+ 0.52913158962634643
+ 0.52914843262011668
+ 0.52916527639289912
+ 0.52918212094475614
+ 0.52919896627574892
+ 0.52921581238594129
+ 0.52923265927539798
+ 0.52924950694417894
+ 0.52926635539234812
+ 0.52928320461996636
+ 0.52930005462709895
+ 0.52931690541380694
+ 0.52933375698015417
+ 0.52935060932620304
+ 0.52936746245201594
+ 0.52938431635765548
+ 0.52940117104318418
+ 0.52941802650866565
+ 0.52943488275416251
+ 0.52945173977973714
+ 0.52946859758545228
+ 0.52948545617137155
+ 0.52950231553755744
+ 0.52951917568407258
+ 0.52953603661097803
+ 0.5295528983183404
+ 0.52956976080621954
+ 0.52958662407467927
+ 0.52960348812378211
+ 0.529620352953592
+ 0.52963721856417012
+ 0.52965408495558042
+ 0.52967095212788651
+ 0.52968782008114856
+ 0.52970468881543187
+ 0.52972155833079992
+ 0.52973842862731435
+ 0.52975529970503765
+ 0.52977217156403356
+ 0.52978904420436346
+ 0.52980591762609264
+ 0.52982279182928371
+ 0.52983966681399786
+ 0.52985654258029902
+ 0.52987341912825126
+ 0.52989029645791574
+ 0.52990717456935765
+ 0.52992405346263716
+ 0.52994093313781954
+ 0.5299578135949673
+ 0.52997469483414317
+ 0.52999157685540976
+ 0.53000845965883114
+ 0.53002534324447104
+ 0.53004222761238973
+ 0.5300591127626525
+ 0.53007599869532063
+ 0.53009288541045951
+ 0.53010977290813022
+ 0.53012666118839846
+ 0.53014355025132531
+ 0.53016044009697261
+ 0.5301773307254064
+ 0.53019422213668843
+ 0.53021111433088142
+ 0.53022800730804931
+ 0.53024490106825484
+ 0.53026179561156206
+ 0.53027869093803237
+ 0.53029558704773117
+ 0.53031248394071984
+ 0.53032938161706256
+ 0.53034628007682194
+ 0.53036317932006083
+ 0.53038007934684328
+ 0.53039698015723336
+ 0.53041388175129245
+ 0.53043078412908362
+ 0.53044768729067315
+ 0.53046459123612033
+ 0.53048149596549166
+ 0.53049840147884997
+ 0.53051530777625666
+ 0.53053221485777602
+ 0.53054912272347077
+ 0.53056603137340497
+ 0.53058294080764301
+ 0.53059985102624607
+ 0.53061676202927976
+ 0.53063367381680449
+ 0.5306505863888854
+ 0.5306674997455868
+ 0.53068441388697163
+ 0.53070132881310117
+ 0.53071824452403993
+ 0.53073516101985319
+ 0.53075207830060112
+ 0.53076899636635078
+ 0.53078591521716234
+ 0.53080283485309998
+ 0.53081975527422776
+ 0.53083667648061006
+ 0.53085359847230851
+ 0.53087052124938849
+ 0.53088744481191041
+ 0.53090436915994099
+ 0.53092129429354207
+ 0.53093822021277648
+ 0.53095514691770951
+ 0.53097207440840444
+ 0.53098900268492277
+ 0.53100593174733135
+ 0.53102286159569057
+ 0.53103979223006592
+ 0.53105672365051915
+ 0.53107365585711597
+ 0.531090588849919
+ 0.53110752262899141
+ 0.53112445719439627
+ 0.53114139254619774
+ 0.53115832868446045
+ 0.5311752656092481
+ 0.53119220332062278
+ 0.53120914181864887
+ 0.53122608110338787
+ 0.53124302117490818
+ 0.53125996203326875
+ 0.53127690367853664
+ 0.53129384611077357
+ 0.5313107893300425
+ 0.53132773333640926
+ 0.53134467812993669
+ 0.53136162371068796
+ 0.53137857007872735
+ 0.53139551723411815
+ 0.53141246517692586
+ 0.53142941390721088
+ 0.53144636342503904
+ 0.53146331373047462
+ 0.53148026482358079
+ 0.5314972167044193
+ 0.53151416937305718
+ 0.53153112282955495
+ 0.53154807707397966
+ 0.53156503210639428
+ 0.53158198792686073
+ 0.53159894453544354
+ 0.5316159019322082
+ 0.53163286011721678
+ 0.53164981909053355
+ 0.53166677885222302
+ 0.53168373940234848
+ 0.53170070074097286
+ 0.53171766286816202
+ 0.53173462578397801
+ 0.53175158948848622
+ 0.53176855398175005
+ 0.53178551926383144
+ 0.53180248533479735
+ 0.53181945219470972
+ 0.5318364198436345
+ 0.53185338828163331
+ 0.53187035750877087
+ 0.53188732752511159
+ 0.53190429833071873
+ 0.5319212699256568
+ 0.53193824230999021
+ 0.53195521548378244
+ 0.53197218944709657
+ 0.5319891641999972
+ 0.53200613974254884
+ 0.53202311607481612
+ 0.53204009319686085
+ 0.53205707110875045
+ 0.53207404981054385
+ 0.53209102930231
+ 0.53210800958411186
+ 0.53212499065601149
+ 0.53214197251807371
+ 0.53215895517036405
+ 0.53217593861294599
+ 0.53219292284588293
+ 0.53220990786923916
+ 0.53222689368307841
+ 0.53224388028746628
+ 0.53226086768246494
+ 0.53227785586814036
+ 0.5322948448445558
+ 0.53231183461177567
+ 0.5323288251698638
+ 0.53234581651888446
+ 0.53236280865890251
+ 0.53237980158998111
+ 0.5323967953121852
+ 0.53241378982557785
+ 0.53243078513022402
+ 0.53244778122618808
+ 0.5324647781135351
+ 0.53248177579232803
+ 0.53249877426263059
+ 0.53251577352450874
+ 0.53253277357802564
+ 0.53254977442324647
+ 0.53256677606023417
+ 0.53258377848905358
+ 0.53260078170976966
+ 0.53261778572244556
+ 0.53263479052714746
+ 0.53265179612393765
+ 0.53266880251288184
+ 0.53268580969404355
+ 0.53270281766748651
+ 0.53271982643327653
+ 0.53273683599147847
+ 0.53275384634215439
+ 0.53277085748536923
+ 0.53278786942118894
+ 0.53280488214967703
+ 0.53282189567089844
+ 0.53283890998491656
+ 0.53285592509179613
+ 0.53287294099160065
+ 0.53288995768439762
+ 0.53290697517024799
+ 0.53292399344921781
+ 0.53294101252137316
+ 0.53295803238677508
+ 0.53297505304548964
+ 0.53299207449758301
+ 0.53300909674311603
+ 0.53302611978215764
+ 0.53304314361476879
+ 0.53306016824101421
+ 0.53307719366096129
+ 0.53309421987467132
+ 0.53311124688221012
+ 0.53312827468364288
+ 0.53314530327903431
+ 0.53316233266844804
+ 0.533179362851949
+ 0.53319639382960082
+ 0.53321342560146956
+ 0.53323045816761894
+ 0.5332474915281139
+ 0.53326452568301941
+ 0.53328156063239895
+ 0.53329859637631882
+ 0.53331563291484274
+ 0.53333267024803555
+ 0.53334970837596096
+ 0.53336674729868383
+ 0.53338378701627187
+ 0.5334008275287847
+ 0.53341786883629139
+ 0.53343491093885409
+ 0.53345195383653776
+ 0.53346899752940902
+ 0.53348604201752992
+ 0.53350308730096818
+ 0.53352013337978488
+ 0.53353718025404773
+ 0.53355422792382035
+ 0.53357127638916901
+ 0.53358832565015613
+ 0.53360537570684685
+ 0.53362242655930758
+ 0.53363947820760171
+ 0.53365653065179464
+ 0.53367358389195252
+ 0.53369063792813776
+ 0.53370769276041563
+ 0.53372474838885109
+ 0.53374180481351041
+ 0.53375886203445744
+ 0.53377592005175734
+ 0.53379297886547372
+ 0.53381003847567321
+ 0.53382709888242064
+ 0.53384416008577862
+ 0.53386122208581499
+ 0.53387828488259337
+ 0.53389534847617759
+ 0.53391241286663416
+ 0.53392947805402813
+ 0.53394654403842323
+ 0.5339636108198863
+ 0.5339806783984794
+ 0.53399774677427059
+ 0.53401481594732347
+ 0.53403188591770212
+ 0.53404895668547303
+ 0.53406602825069982
+ 0.53408310061344777
+ 0.53410017377378471
+ 0.53411724773177183
+ 0.53413432248747705
+ 0.5341513980409629
+ 0.53416847439229587
+ 0.53418555154154113
+ 0.53420262948876396
+ 0.5342197082340282
+ 0.53423678777740036
+ 0.53425386811894437
+ 0.53427094925872554
+ 0.53428803119681034
+ 0.53430511393326141
+ 0.53432219746814791
+ 0.5343392818015299
+ 0.53435636693347632
+ 0.53437345286405158
+ 0.53439053959331928
+ 0.53440762712134604
+ 0.53442471544819725
+ 0.53444180457393675
+ 0.53445889449863127
+ 0.53447598522234474
+ 0.53449307674514235
+ 0.53451016906709092
+ 0.53452726218825564
+ 0.53454435610869899
+ 0.53456145082848927
+ 0.53457854634769042
+ 0.5345956426663675
+ 0.53461273978458612
+ 0.53462983770241157
+ 0.53464693641990912
+ 0.53466403593714407
+ 0.5346811362541819
+ 0.53469823737108657
+ 0.53471533928792614
+ 0.53473244200476455
+ 0.53474954552166731
+ 0.53476664983869837
+ 0.53478375495592445
+ 0.53480086087341228
+ 0.53481796759122469
+ 0.53483507510942696
+ 0.53485218342808727
+ 0.53486929254726823
+ 0.53488640246703667
+ 0.53490351318745799
+ 0.53492062470859747
+ 0.53493773703052083
+ 0.53495485015329203
+ 0.53497196407697911
+ 0.53498907880164492
+ 0.5350061943273563
+ 0.53502331065417863
+ 0.53504042778217731
+ 0.53505754571141917
+ 0.53507466444196583
+ 0.5350917839738879
+ 0.53510890430724689
+ 0.53512602544210974
+ 0.53514314737854329
+ 0.53516027011661027
+ 0.53517739365637873
+ 0.53519451799791318
+ 0.53521164314128022
+ 0.53522876908654271
+ 0.53524589583377014
+ 0.53526302338302545
+ 0.5352801517343756
+ 0.5352972808878832
+ 0.53531441084361808
+ 0.53533154160164431
+ 0.53534867316202606
+ 0.53536580552483171
+ 0.53538293869012399
+ 0.53540007265796996
+ 0.53541720742843624
+ 0.5354343430015861
+ 0.53545147937748905
+ 0.53546861655620648
+ 0.53548575453780678
+ 0.53550289332235546
+ 0.53552003290991701
+ 0.53553717330055817
+ 0.53555431449434454
+ 0.53557145649134197
+ 0.53558859929161573
+ 0.53560574289523188
+ 0.53562288730225693
+ 0.5356400325127556
+ 0.53565717852679329
+ 0.53567432534443837
+ 0.53569147296575248
+ 0.53570862139080533
+ 0.53572577061966131
+ 0.53574292065238582
+ 0.53576007148904614
+ 0.53577722312970533
+ 0.53579437557443277
+ 0.53581152882329186
+ 0.53582868287634922
+ 0.53584583773367078
+ 0.5358629933953224
+ 0.53588014986136956
+ 0.53589730713187944
+ 0.53591446520691766
+ 0.5359316240865486
+ 0.53594878377083943
+ 0.53596594425985589
+ 0.53598310555366369
+ 0.53600026765233111
+ 0.53601743055591999
+ 0.53603459426449895
+ 0.5360517587781336
+ 0.53606892409688955
+ 0.5360860902208342
+ 0.53610325715003182
+ 0.53612042488454825
+ 0.536137593424452
+ 0.536154762769806
+ 0.53617193292067888
+ 0.53618910387713514
+ 0.53620627563924184
+ 0.53622344820706347
+ 0.53624062158066865
+ 0.53625779576012167
+ 0.53627497074548847
+ 0.53629214653683621
+ 0.53630932313423063
+ 0.53632650053773645
+ 0.53634367874742217
+ 0.53636085776335352
+ 0.53637803758559488
+ 0.53639521821421388
+ 0.53641239964927723
+ 0.53642958189084999
+ 0.53644676493899768
+ 0.53646394879378767
+ 0.53648113345528703
+ 0.53649831892356048
+ 0.53651550519867519
+ 0.53653269228069589
+ 0.53654988016969096
+ 0.53656706886572514
+ 0.53658425836886425
+ 0.53660144867917681
+ 0.53661863979672764
+ 0.53663583172158125
+ 0.53665302445380747
+ 0.53667021799346981
+ 0.53668741234063666
+ 0.53670460749537297
+ 0.53672180345774556
+ 0.53673900022782095
+ 0.53675619780566597
+ 0.53677339619134556
+ 0.53679059538492557
+ 0.53680779538647483
+ 0.53682499619605772
+ 0.53684219781374198
+ 0.53685940023959444
+ 0.53687660347367894
+ 0.53689380751606386
+ 0.53691101236681538
+ 0.53692821802599933
+ 0.53694542449368332
+ 0.53696263176993331
+ 0.53697983985481401
+ 0.53699704874839538
+ 0.53701425845074091
+ 0.53703146896191789
+ 0.53704868028199393
+ 0.53706589241103486
+ 0.53708310534910564
+ 0.53710031909627476
+ 0.53711753365260995
+ 0.53713474901817304
+ 0.53715196519303554
+ 0.53716918217726095
+ 0.53718639997091677
+ 0.53720361857407017
+ 0.53722083798678621
+ 0.53723805820913495
+ 0.53725527924117833
+ 0.53727250108298552
+ 0.53728972373462369
+ 0.53730694719615779
+ 0.5373241714676551
+ 0.53734139654918345
+ 0.53735862244080612
+ 0.53737584914259451
+ 0.53739307665461244
+ 0.53741030497692577
+ 0.53742753410960342
+ 0.53744476405271191
+ 0.53746199480631551
+ 0.53747922637048362
+ 0.53749645874528218
+ 0.53751369193077603
+ 0.53753092592703555
+ 0.53754816073412426
+ 0.53756539635211087
+ 0.53758263278106178
+ 0.53759987002104181
+ 0.53761710807212004
+ 0.53763434693436374
+ 0.53765158660783674
+ 0.53766882709260921
+ 0.53768606838874611
+ 0.5377033104963137
+ 0.53772055341538094
+ 0.53773779714601255
+ 0.53775504168827648
+ 0.53777228704223889
+ 0.53778953320796741
+ 0.53780678018552952
+ 0.5378240279749904
+ 0.53784127657641756
+ 0.53785852598987871
+ 0.53787577621544014
+ 0.53789302725316823
+ 0.53791027910313194
+ 0.53792753176539621
+ 0.53794478524002753
+ 0.53796203952709476
+ 0.53797929462666427
+ 0.53799655053880246
+ 0.53801380726357573
+ 0.53803106480105445
+ 0.5380483231513008
+ 0.5380655823143855
+ 0.53808284229037318
+ 0.53810010307933198
+ 0.53811736468132931
+ 0.53813462709643167
+ 0.53815189032470689
+ 0.53816915436622004
+ 0.53818641922104005
+ 0.53820368488923465
+ 0.53822095137086912
+ 0.53823821866600985
+ 0.53825548677472712
+ 0.53827275569708488
+ 0.53829002543315219
+ 0.53830729598299543
+ 0.53832456734668244
+ 0.53834183952427972
+ 0.53835911251585378
+ 0.53837638632147355
+ 0.53839366094120444
+ 0.53841093637511406
+ 0.53842821262327167
+ 0.53844548968574113
+ 0.53846276756259148
+ 0.53848004625389057
+ 0.53849732575970499
+ 0.53851460608010127
+ 0.53853188721514722
+ 0.53854916916490936
+ 0.53856645192945685
+ 0.53858373550885497
+ 0.53860101990317288
+ 0.53861830511247588
+ 0.53863559113683168
+ 0.53865287797630967
+ 0.53867016563097503
+ 0.53868745410089558
+ 0.53870474338613938
+ 0.53872203348677283
+ 0.53873932440286265
+ 0.53875661613447812
+ 0.53877390868168706
+ 0.53879120204455211
+ 0.53880849622314653
+ 0.53882579121753427
+ 0.53884308702778472
+ 0.53886038365396294
+ 0.53887768109613843
+ 0.53889497935437769
+ 0.53891227842874878
+ 0.53892957831931843
+ 0.53894687902615435
+ 0.53896418054932349
+ 0.53898148288889358
+ 0.53899878604493279
+ 0.53901609001751027
+ 0.53903339480668899
+ 0.53905070041254077
+ 0.53906800683512968
+ 0.53908531407452631
+ 0.53910262213079618
+ 0.53911993100400712
+ 0.53913724069422753
+ 0.539154551201525
+ 0.53917186252596527
+ 0.53918917466761762
+ 0.53920648762654999
+ 0.53922380140282922
+ 0.53924111599652214
+ 0.53925843140769669
+ 0.53927574763642239
+ 0.53929306468276583
+ 0.53931038254679253
+ 0.53932770122857332
+ 0.53934502072817359
+ 0.53936234104566272
+ 0.53937966218110778
+ 0.53939698413457648
+ 0.53941430690613446
+ 0.53943163049585385
+ 0.53944895490379752
+ 0.53946628013003739
+ 0.53948360617463798
+ 0.53950093303766833
+ 0.53951826071919695
+ 0.53953558921929068
+ 0.53955291853801746
+ 0.53957024867544423
+ 0.53958757963164039
+ 0.5396049114066731
+ 0.53962224400061021
+ 0.53963957741351876
+ 0.53965691164546836
+ 0.53967424669652442
+ 0.53969158256675642
+ 0.53970891925623143
+ 0.53972625676501873
+ 0.53974359509318426
+ 0.53976093424079741
+ 0.53977827420792501
+ 0.53979561499463524
+ 0.5398129566009966
+ 0.53983029902707713
+ 0.53984764227294391
+ 0.5398649863386652
+ 0.53988233122430906
+ 0.53989967692994267
+ 0.5399170234556343
+ 0.53993437080145334
+ 0.53995171896746563
+ 0.53996906795374211
+ 0.53998641776034706
+ 0.54000376838735142
+ 0.54002111983482082
+ 0.54003847210282507
+ 0.54005582519143236
+ 0.54007317910070962
+ 0.54009053383072536
+ 0.54010788938154775
+ 0.54012524575324405
+ 0.54014260294588368
+ 0.54015996095953389
+ 0.54017731979426276
+ 0.54019467945013888
+ 0.54021203992722933
+ 0.54022940122560359
+ 0.54024676334532895
+ 0.54026412628647369
+ 0.54028149004910619
+ 0.54029885463329497
+ 0.54031622003910695
+ 0.54033358626661054
+ 0.54035095331587557
+ 0.54036832118696787
+ 0.54038568987995839
+ 0.54040305939491284
+ 0.54042042973189997
+ 0.54043780089098925
+ 0.54045517287224665
+ 0.54047254567574321
+ 0.540489919301546
+ 0.54050729374972217
+ 0.54052466902034169
+ 0.54054204511347281
+ 0.5405594220291815
+ 0.54057679976753892
+ 0.54059417832861079
+ 0.54061155771246705
+ 0.54062893791917743
+ 0.54064631894880655
+ 0.54066370080142545
+ 0.54068108347710286
+ 0.5406984669759044
+ 0.54071585129790145
+ 0.54073323644316107
+ 0.54075062241175065
+ 0.54076800920374002
+ 0.54078539681919746
+ 0.54080278525819192
+ 0.54082017452078912
+ 0.54083756460706156
+ 0.54085495551707397
+ 0.54087234725089739
+ 0.540889739808598
+ 0.54090713319024564
+ 0.54092452739591002
+ 0.54094192242565742
+ 0.54095931827955757
+ 0.54097671495767774
+ 0.54099411246008788
+ 0.54101151078685683
+ 0.54102890993805164
+ 0.54104630991374092
+ 0.54106371071399362
+ 0.54108111233887934
+ 0.5410985147884656
+ 0.54111591806282111
+ 0.54113332216201449
+ 0.54115072708611422
+ 0.54116813283518928
+ 0.5411855394093068
+ 0.5412029468085382
+ 0.54122035503295085
+ 0.54123776408261204
+ 0.54125517395759182
+ 0.5412725846579578
+ 0.54128999618378093
+ 0.54130740853512627
+ 0.54132482171206642
+ 0.54134223571466877
+ 0.54135965054299939
+ 0.541377066197131
+ 0.54139448267712842
+ 0.54141189998306427
+ 0.54142931811500483
+ 0.5414467370730186
+ 0.54146415685717597
+ 0.54148157746754555
+ 0.54149899890419484
+ 0.54151642116719245
+ 0.54153384425660878
+ 0.54155126817251109
+ 0.5415686929149709
+ 0.54158611848405436
+ 0.54160354487983031
+ 0.54162097210236881
+ 0.54163840015173881
+ 0.54165582902800768
+ 0.54167325873124561
+ 0.54169068926152153
+ 0.54170812061890283
+ 0.54172555280346113
+ 0.54174298581526248
+ 0.54176041965437727
+ 0.54177785432087289
+ 0.54179528981482084
+ 0.54181272613628872
+ 0.5418301632853455
+ 0.54184760126206133
+ 0.54186504006650238
+ 0.54188247969874026
+ 0.54189992015884259
+ 0.54191736144687819
+ 0.54193480356291734
+ 0.54195224650702767
+ 0.54196969027927944
+ 0.54198713487974159
+ 0.54200458030848164
+ 0.54202202656557119
+ 0.54203947365107663
+ 0.54205692156506824
+ 0.54207437030761474
+ 0.54209181987878685
+ 0.54210927027865174
+ 0.54212672150727881
+ 0.54214417356473943
+ 0.54216162645109867
+ 0.54217908016642824
+ 0.54219653471079843
+ 0.54221399008427551
+ 0.54223144628692999
+ 0.54224890331883069
+ 0.54226636118004801
+ 0.54228381987064977
+ 0.54230127939070627
+ 0.54231873974028644
+ 0.54233620091945678
+ 0.54235366292829157
+ 0.54237112576685598
+ 0.54238858943522172
+ 0.54240605393345642
+ 0.54242351926162924
+ 0.54244098541981178
+ 0.54245845240807078
+ 0.54247592022647628
+ 0.54249338887509757
+ 0.5425108583540037
+ 0.54252832866326506
+ 0.54254579980295092
+ 0.54256327177313024
+ 0.54258074457387084
+ 0.54259821820524456
+ 0.54261569266731779
+ 0.5426331679601637
+ 0.54265064408384889
+ 0.54266812103844497
+ 0.54268559882401857
+ 0.54270307744064006
+ 0.54272055688838006
+ 0.54273803716730762
+ 0.54275551827749069
+ 0.54277300021899966
+ 0.54279048299190524
+ 0.54280796659627506
+ 0.5428254510321785
+ 0.54284293629968738
+ 0.54286042239886956
+ 0.54287790932979407
+ 0.54289539709253187
+ 0.54291288568715057
+ 0.54293037511372211
+ 0.5429478653723131
+ 0.54296535646299537
+ 0.54298284838583821
+ 0.54300034114091089
+ 0.54301783472828136
+ 0.54303532914802155
+ 0.54305282440020186
+ 0.5430703204848879
+ 0.54308781740215284
+ 0.54310531515206439
+ 0.5431228137346934
+ 0.54314031315010924
+ 0.5431578133983811
+ 0.54317531447957956
+ 0.5431928163937727
+ 0.54321031914103102
+ 0.54322782272142411
+ 0.54324532713502249
+ 0.54326283238189543
+ 0.5432803384621111
+ 0.54329784537574266
+ 0.54331535312285706
+ 0.54333286170352457
+ 0.5433503711178137
+ 0.54336788136579739
+ 0.54338539244754269
+ 0.54340290436312155
+ 0.54342041711260192
+ 0.54343793069605451
+ 0.54345544511354771
+ 0.54347296036515447
+ 0.54349047645094051
+ 0.5435079933709791
+ 0.54352551112533831
+ 0.54354302971408908
+ 0.54356054913730067
+ 0.5435780693950425
+ 0.54359559048738559
+ 0.5436131124143978
+ 0.54363063517615129
+ 0.54364815877271433
+ 0.54366568320415753
+ 0.54368320847055318
+ 0.54370073457196666
+ 0.54371826150847014
+ 0.54373578928013444
+ 0.54375331788702908
+ 0.54377084732922232
+ 0.54378837760678611
+ 0.54380590871979018
+ 0.5438234406683039
+ 0.54384097345239801
+ 0.54385850707214112
+ 0.54387604152760505
+ 0.54389357681885941
+ 0.54391111294597261
+ 0.54392864990901657
+ 0.54394618770806114
+ 0.54396372634317558
+ 0.54398126581442963
+ 0.54399880612189555
+ 0.54401634726564152
+ 0.54403388924573859
+ 0.54405143206225604
+ 0.54406897571526391
+ 0.54408652020483395
+ 0.54410406553103485
+ 0.54412161169393747
+ 0.54413915869361129
+ 0.54415670653012738
+ 0.54417425520355411
+ 0.54419180471396345
+ 0.54420935506142676
+ 0.54422690624601211
+ 0.54424445826778933
+ 0.54426201112683048
+ 0.54427956482320416
+ 0.54429711935698255
+ 0.54431467472823403
+ 0.54433223093702965
+ 0.54434978798344036
+ 0.54436734586753466
+ 0.54438490458938471
+ 0.54440246414906035
+ 0.54442002454663119
+ 0.54443758578216839
+ 0.54445514785574167
+ 0.54447271076742199
+ 0.54449027451727916
+ 0.54450783910538281
+ 0.54452540453180542
+ 0.54454297079661673
+ 0.54456053789988523
+ 0.54457810584168331
+ 0.54459567462208047
+ 0.54461324424114832
+ 0.54463081469895491
+ 0.54464838599557419
+ 0.54466595813107321
+ 0.54468353110552437
+ 0.5447011049189977
+ 0.54471867957156417
+ 0.54473625506329226
+ 0.54475383139425437
+ 0.54477140856452178
+ 0.54478898657416297
+ 0.54480656542324923
+ 0.54482414511185151
+ 0.54484172564003974
+ 0.54485930700788499
+ 0.54487688921545741
+ 0.54489447226282783
+ 0.54491205615006644
+ 0.54492964087724549
+ 0.5449472264444325
+ 0.54496481285170117
+ 0.54498240009912002
+ 0.54499998818676032
+ 0.54501757711469334
+ 0.54503516688299025
+ 0.54505275749171977
+ 0.54507034894095308
+ 0.54508794123076132
+ 0.54510553436121589
+ 0.54512312833238663
+ 0.5451407231443437
+ 0.54515831879715937
+ 0.54517591529090259
+ 0.54519351262564575
+ 0.54521111080145879
+ 0.54522870981841198
+ 0.54524630967657639
+ 0.54526391037602462
+ 0.54528151191682417
+ 0.54529911429904887
+ 0.54531671752276756
+ 0.54533432158805129
+ 0.54535192649497177
+ 0.54536953224360007
+ 0.54538713883400503
+ 0.54540474626625923
+ 0.54542235454043286
+ 0.54543996365659697
+ 0.54545757361482339
+ 0.54547518441518184
+ 0.54549279605774248
+ 0.54551040854257804
+ 0.54552802186975857
+ 0.54554563603935546
+ 0.54556325105143877
+ 0.54558086690607999
+ 0.5455984836033505
+ 0.54561610114331904
+ 0.54563371952605977
+ 0.5456513387516414
+ 0.54566895882013688
+ 0.54568657973161472
+ 0.54570420148614784
+ 0.54572182408380654
+ 0.54573944752466319
+ 0.54575707180878574
+ 0.54577469693624803
+ 0.54579232290712032
+ 0.54580994972147423
+ 0.54582757737937959
+ 0.5458452058809069
+ 0.54586283522613011
+ 0.54588046541511814
+ 0.54589809644794385
+ 0.54591572832467494
+ 0.54593336104538659
+ 0.54595099461014795
+ 0.54596862901902921
+ 0.54598626427210306
+ 0.54600390036944124
+ 0.54602153731111269
+ 0.54603917509719002
+ 0.54605681372774506
+ 0.54607445320284798
+ 0.54609209352257027
+ 0.54610973468698376
+ 0.54612737669615852
+ 0.54614501955016748
+ 0.54616266324907958
+ 0.54618030779296656
+ 0.54619795318190256
+ 0.54621559941595532
+ 0.54623324649519767
+ 0.54625089441970154
+ 0.5462685431895381
+ 0.54628619280477808
+ 0.54630384326549164
+ 0.54632149457175161
+ 0.5463391467236286
+ 0.54635679972119555
+ 0.54637445356452263
+ 0.54639210825368167
+ 0.54640976378874295
+ 0.5464274201697783
+ 0.54644507739686066
+ 0.5464627354700603
+ 0.54648039438944773
+ 0.546498054155096
+ 0.5465157147670755
+ 0.54653337622545783
+ 0.54655103853031617
+ 0.54656870168171823
+ 0.54658636567973984
+ 0.54660403052445006
+ 0.54662169621592038
+ 0.54663936275422165
+ 0.54665703013942801
+ 0.54667469837160865
+ 0.54669236745083671
+ 0.5467100373771826
+ 0.54672770815071825
+ 0.54674537977151516
+ 0.54676305223964661
+ 0.54678072555518065
+ 0.54679839971819144
+ 0.54681607472874971
+ 0.54683375058692829
+ 0.54685142729279668
+ 0.54686910484642792
+ 0.54688678324789519
+ 0.54690446249726632
+ 0.5469221425946158
+ 0.54693982354001558
+ 0.54695750533353493
+ 0.54697518797524813
+ 0.54699287146522457
+ 0.54701055580353886
+ 0.54702824099026004
+ 0.54704592702546007
+ 0.54706361390921354
+ 0.54708130164158852
+ 0.54709899022265807
+ 0.54711667965249544
+ 0.54713436993117126
+ 0.54715206105875736
+ 0.54716975303532589
+ 0.54718744586094736
+ 0.54720513953569505
+ 0.54722283405963945
+ 0.54724052943285417
+ 0.54725822565541082
+ 0.54727592272737891
+ 0.54729362064883302
+ 0.54731131941984512
+ 0.54732901904048459
+ 0.54734671951082481
+ 0.54736442083093895
+ 0.5473821230008965
+ 0.54739982602076942
+ 0.5474175298906323
+ 0.54743523461055599
+ 0.54745294018061119
+ 0.54747064660087097
+ 0.54748835387140637
+ 0.54750606199229213
+ 0.54752377096359595
+ 0.54754148078539289
+ 0.54755919145775356
+ 0.54757690298075135
+ 0.54759461535445708
+ 0.54761232857894404
+ 0.54763004265428306
+ 0.54764775758054629
+ 0.54766547335780569
+ 0.54768318998613486
+ 0.5477009074656044
+ 0.54771862579628661
+ 0.54773634497825618
+ 0.54775406501157986
+ 0.54777178589633391
+ 0.54778950763259049
+ 0.54780723022042022
+ 0.54782495365989547
+ 0.5478426779510881
+ 0.54786040309407202
+ 0.54787812908891764
+ 0.54789585593569889
+ 0.54791358363448495
+ 0.54793131218535085
+ 0.54794904158836866
+ 0.54796677184360942
+ 0.54798450295114653
+ 0.54800223491105227
+ 0.54801996772339612
+ 0.54803770138825436
+ 0.54805543590569661
+ 0.54807317127579624
+ 0.54809090749862432
+ 0.54810864457425579
+ 0.54812638250276147
+ 0.54814412128421364
+ 0.54816186091868335
+ 0.548179601406244
+ 0.54819734274696941
+ 0.54821508494093163
+ 0.54823282798820039
+ 0.54825057188885085
+ 0.54826831664295361
+ 0.54828606225058263
+ 0.54830380871181006
+ 0.54832155602670685
+ 0.54833930419534671
+ 0.54835705321780204
+ 0.54837480309414643
+ 0.54839255382444962
+ 0.54841030540878644
+ 0.54842805784722803
+ 0.54844581113984825
+ 0.54846356528671802
+ 0.54848132028791086
+ 0.54849907614349791
+ 0.54851683285355435
+ 0.54853459041815122
+ 0.5485523488373607
+ 0.54857010811125551
+ 0.54858786823990902
+ 0.54860562922339395
+ 0.54862339106178126
+ 0.54864115375514477
+ 0.54865891730355676
+ 0.54867668170709116
+ 0.54869444696581893
+ 0.54871221307981266
+ 0.54872998004914608
+ 0.54874774787389169
+ 0.54876551655412187
+ 0.54878328608990923
+ 0.54880105648132593
+ 0.54881882772844626
+ 0.54883659983134225
+ 0.54885437279008542
+ 0.54887214660475081
+ 0.54888992127540948
+ 0.54890769680213403
+ 0.5489254731849984
+ 0.54894325042407499
+ 0.54896102851943496
+ 0.54897880747115368
+ 0.54899658727930367
+ 0.54901436794395475
+ 0.54903214946518331
+ 0.54904993184306083
+ 0.54906771507765983
+ 0.54908549916905269
+ 0.54910328411731502
+ 0.54912106992251641
+ 0.54913885658473083
+ 0.54915664410403231
+ 0.54917443248049214
+ 0.54919222171418547
+ 0.54921001180518103
+ 0.54922780275355665
+ 0.54924559455938238
+ 0.54926338722273227
+ 0.54928118074367871
+ 0.54929897512229464
+ 0.54931677035865389
+ 0.54933456645282908
+ 0.54935236340489146
+ 0.54937016121491655
+ 0.54938795988297695
+ 0.54940575940914538
+ 0.54942355979349311
+ 0.54944136103609686
+ 0.54945916313702681
+ 0.54947696609635677
+ 0.54949476991415958
+ 0.54951257459050906
+ 0.54953038012547828
+ 0.5495481865191385
+ 0.54956599377156645
+ 0.54958380188283074
+ 0.54960161085300829
+ 0.54961942068217173
+ 0.54963723137039266
+ 0.54965504291774492
+ 0.54967285532430288
+ 0.54969066859013782
+ 0.54970848271532247
+ 0.54972629769993364
+ 0.5497441135440404
+ 0.54976193024772047
+ 0.54977974781104155
+ 0.54979756623408182
+ 0.54981538551691134
+ 0.54983320565960558
+ 0.54985102666223606
+ 0.54986884852487838
+ 0.54988667124760382
+ 0.54990449483048542
+ 0.54992231927359747
+ 0.5499401445770139
+ 0.54995797074080766
+ 0.54997579776505034
+ 0.54999362564981735
+ 0.55001145439518173
+ 0.55002928400121642
+ 0.55004711446799537
+ 0.5500649457955904
+ 0.55008277798407845
+ 0.55010061103352814
+ 0.55011844494401674
+ 0.55013627971561552
+ 0.55015411534840031
+ 0.55017195184244128
+ 0.55018978919781536
+ 0.55020762741459295
+ 0.55022546649285087
+ 0.55024330643265806
+ 0.5502611472340917
+ 0.55027898889722582
+ 0.55029683142213093
+ 0.55031467480888252
+ 0.55033251905755254
+ 0.5503503641682177
+ 0.55036821014094828
+ 0.55038605697582033
+ 0.55040390467290523
+ 0.55042175323227738
+ 0.55043960265401115
+ 0.55045745293817971
+ 0.55047530408485712
+ 0.55049315609411675
+ 0.55051100896603156
+ 0.5505288627006758
+ 0.55054671729812399
+ 0.55056457275844795
+ 0.55058242908172195
+ 0.55060028626802171
+ 0.55061814431741773
+ 0.55063600322998585
+ 0.55065386300579888
+ 0.550671723644933
+ 0.55068958514745703
+ 0.55070744751344947
+ 0.55072531074298214
+ 0.55074317483612956
+ 0.55076103979296342
+ 0.55077890561355958
+ 0.55079677229799262
+ 0.55081463984633416
+ 0.55083250825865893
+ 0.55085037753503985
+ 0.55086824767555287
+ 0.55088611868027115
+ 0.55090399054926809
+ 0.5509218632826165
+ 0.55093973688039111
+ 0.55095761134266785
+ 0.55097548666951712
+ 0.5509933628610163
+ 0.55101123991723588
+ 0.55102911783825292
+ 0.55104699662413947
+ 0.55106487627497147
+ 0.55108275679082086
+ 0.55110063817176069
+ 0.55111852041786846
+ 0.55113640352921578
+ 0.55115428750587636
+ 0.55117217234792582
+ 0.55119005805543742
+ 0.55120794462848466
+ 0.55122583206714204
+ 0.55124372037148406
+ 0.55126160954158432
+ 0.55127949957751743
+ 0.55129739047935777
+ 0.55131528224717763
+ 0.55133317488105271
+ 0.55135106838105652
+ 0.55136896274726244
+ 0.55138685797974785
+ 0.55140475407858336
+ 0.55142265104384491
+ 0.55144054887560456
+ 0.55145844757393991
+ 0.55147634713892268
+ 0.55149424757062782
+ 0.55151214886912991
+ 0.55153005103450248
+ 0.55154795406682022
+ 0.55156585796615643
+ 0.55158376273258602
+ 0.55160166836618507
+ 0.5516195748670254
+ 0.55163748223518083
+ 0.55165539047072853
+ 0.55167329957374078
+ 0.55169120954429229
+ 0.55170912038245778
+ 0.55172703208831098
+ 0.55174494466192769
+ 0.55176285810337888
+ 0.55178077241274204
+ 0.55179868759009187
+ 0.55181660363549945
+ 0.55183452054904214
+ 0.55185243833079467
+ 0.55187035698082798
+ 0.55188827649922101
+ 0.55190619688604436
+ 0.5519241181413761
+ 0.55194204026528637
+ 0.55195996325785324
+ 0.55197788711915008
+ 0.55199581184925062
+ 0.55201373744823079
+ 0.55203166391616432
+ 0.55204959125312481
+ 0.55206751945918842
+ 0.55208544853442887
+ 0.55210337847892088
+ 0.55212130929273828
+ 0.5521392409759559
+ 0.55215717352865001
+ 0.55217510695089422
+ 0.55219304124276214
+ 0.55221097640433014
+ 0.55222891243567052
+ 0.55224684933685941
+ 0.55226478710797211
+ 0.55228272574908199
+ 0.55230066526026411
+ 0.55231860564159219
+ 0.55233654689314393
+ 0.5523544890149904
+ 0.55237243200720776
+ 0.55239037586987239
+ 0.55240832060305678
+ 0.55242626620683721
+ 0.55244421268128618
+ 0.55246216002647996
+ 0.55248010824249494
+ 0.55249805732940349
+ 0.55251600728728079
+ 0.55253395811620187
+ 0.55255190981624169
+ 0.55256986238747541
+ 0.55258781582997696
+ 0.55260577014382262
+ 0.55262372532908599
+ 0.55264168138584258
+ 0.55265963831416587
+ 0.55267759611413236
+ 0.55269555478581722
+ 0.55271351432929283
+ 0.55273147474463724
+ 0.55274943603192406
+ 0.55276739819122722
+ 0.55278536122262301
+ 0.55280332512618557
+ 0.55282128990199109
+ 0.55283925555011237
+ 0.55285722207062704
+ 0.5528751894636077
+ 0.55289315772913228
+ 0.55291112686727195
+ 0.55292909687810443
+ 0.55294706776170388
+ 0.55296503951814535
+ 0.55298301214750545
+ 0.55300098564985667
+ 0.55301896002527573
+ 0.55303693527383635
+ 0.55305491139561536
+ 0.55307288839068647
+ 0.55309086625912496
+ 0.55310884500100754
+ 0.55312682461640816
+ 0.55314480510540076
+ 0.55316278646806316
+ 0.55318076870446808
+ 0.55319875181469236
+ 0.55321673579881092
+ 0.55323472065689672
+ 0.5532527063890289
+ 0.5532706929952802
+ 0.55328868047572599
+ 0.55330666883044155
+ 0.55332465805950226
+ 0.5533426481629834
+ 0.55336063914096167
+ 0.55337863099350992
+ 0.55339662372070464
+ 0.55341461732262143
+ 0.55343261179933556
+ 0.55345060715092098
+ 0.55346860337745452
+ 0.55348660047901044
+ 0.55350459845566635
+ 0.55352259730749553
+ 0.55354059703457303
+ 0.55355859763697435
+ 0.55357659911477763
+ 0.55359460146805584
+ 0.55361260469688267
+ 0.55363060880133785
+ 0.55364861378149421
+ 0.55366661963742569
+ 0.55368462636921201
+ 0.55370263397692565
+ 0.55372064246064245
+ 0.55373865182043769
+ 0.55375666205638807
+ 0.55377467316856821
+ 0.55379268515705449
+ 0.55381069802192129
+ 0.55382871176324411
+ 0.55384672638109977
+ 0.55386474187556256
+ 0.55388275824670796
+ 0.55390077549461292
+ 0.55391879361935281
+ 0.55393681262100214
+ 0.55395483249963751
+ 0.5539728532553333
+ 0.55399087488816645
+ 0.55400889739821246
+ 0.55402692078554572
+ 0.55404494505024438
+ 0.55406297019238138
+ 0.55408099621203366
+ 0.55409902310927683
+ 0.55411705088418661
+ 0.55413507953683849
+ 0.55415310906730963
+ 0.55417113947567398
+ 0.55418917076200758
+ 0.55420720292638581
+ 0.55422523596888595
+ 0.55424326988958339
+ 0.55426130468855384
+ 0.55427934036587045
+ 0.55429737692161274
+ 0.55431541435585507
+ 0.55433345266867473
+ 0.55435149186014443
+ 0.55436953193034277
+ 0.55438757287934404
+ 0.55440561470722394
+ 0.55442365741405952
+ 0.55444170099992662
+ 0.55445974546490084
+ 0.55447779080905812
+ 0.55449583703247396
+ 0.55451388413522573
+ 0.55453193211738627
+ 0.55454998097903541
+ 0.55456803072024641
+ 0.55458608134109633
+ 0.55460413284165955
+ 0.5546221852220159
+ 0.55464023848223731
+ 0.55465829262240063
+ 0.55467634764258456
+ 0.55469440354286359
+ 0.55471246032331223
+ 0.55473051798400752
+ 0.55474857652502663
+ 0.55476663594644426
+ 0.55478469624833748
+ 0.554802757430782
+ 0.55482081949385265
+ 0.5548388824376278
+ 0.55485694626218207
+ 0.55487501096759251
+ 0.55489307655393527
+ 0.55491114302128608
+ 0.55492921036972087
+ 0.55494727859931692
+ 0.55496534771014738
+ 0.55498341770229365
+ 0.55500148857582743
+ 0.55501956033082622
+ 0.55503763296736741
+ 0.55505570648552527
+ 0.55507378088537851
+ 0.55509185616700185
+ 0.55510993233047135
+ 0.55512800937586404
+ 0.5551460873032561
+ 0.55516416611272357
+ 0.55518224580434239
+ 0.55520032637819094
+ 0.55521840783434306
+ 0.5552364901728758
+ 0.55525457339386641
+ 0.55527265749738974
+ 0.55529074248352461
+ 0.55530882835234419
+ 0.55532691510392851
+ 0.55534500273835108
+ 0.55536309125568928
+ 0.55538118065602049
+ 0.55539927093941932
+ 0.55541736210596326
+ 0.55543545415572981
+ 0.55545354708879369
+ 0.55547164090523093
+ 0.55548973560512027
+ 0.55550783118853797
+ 0.55552592765555864
+ 0.55554402500625988
+ 0.55556212324071907
+ 0.55558022235901094
+ 0.55559832236121443
+ 0.55561642324740435
+ 0.55563452501765664
+ 0.55565262767205048
+ 0.55567073121066046
+ 0.55568883563356264
+ 0.55570694094083617
+ 0.55572504713255566
+ 0.5557431542087975
+ 0.55576126216964039
+ 0.55577937101515928
+ 0.55579748074543167
+ 0.55581559136053371
+ 0.55583370286054312
+ 0.55585181524553473
+ 0.55586992851558725
+ 0.55588804267077596
+ 0.55590615771117824
+ 0.55592427363687158
+ 0.55594239044793226
+ 0.55596050814443554
+ 0.55597862672645992
+ 0.5559967461940819
+ 0.55601486654737908
+ 0.55603298778642518
+ 0.55605110991130013
+ 0.55606923292208077
+ 0.55608735681884169
+ 0.55610548160166196
+ 0.55612360727061805
+ 0.55614173382578469
+ 0.55615986126724248
+ 0.55617798959506504
+ 0.55619611880932995
+ 0.55621424891011617
+ 0.55623237989749896
+ 0.55625051177155449
+ 0.55626864453236191
+ 0.55628677817999628
+ 0.5563049127145353
+ 0.5563230481360566
+ 0.55634118444463676
+ 0.55635932164035207
+ 0.55637745972328023
+ 0.55639559869349775
+ 0.55641373855108378
+ 0.55643187929611182
+ 0.55645002092866136
+ 0.55646816344880856
+ 0.55648630685663136
+ 0.55650445115220604
+ 0.55652259633561063
+ 0.55654074240692142
+ 0.556558889366215
+ 0.5565770372135691
+ 0.55659518594906288
+ 0.55661333557277026
+ 0.55663148608477042
+ 0.55664963748513852
+ 0.55666778977395481
+ 0.55668594295129492
+ 0.556704097017235
+ 0.55672225197185321
+ 0.55674040781522716
+ 0.55675856454743367
+ 0.55677672216855179
+ 0.55679488067865546
+ 0.55681304007782395
+ 0.55683120036613376
+ 0.55684936154366427
+ 0.55686752361048919
+ 0.55688568656668924
+ 0.5569038504123397
+ 0.55692201514751838
+ 0.55694018077230356
+ 0.5569583472867714
+ 0.55697651469100162
+ 0.55699468298506793
+ 0.55701285216904828
+ 0.55703102224302359
+ 0.5570491932070688
+ 0.55706736506126087
+ 0.5570855378056776
+ 0.55710371144039716
+ 0.5571218859654975
+ 0.55714006138105399
+ 0.5571582376871459
+ 0.55717641488384995
+ 0.5571945929712443
+ 0.55721277194940544
+ 0.55723095181841165
+ 0.55724913257834086
+ 0.55726731422926978
+ 0.55728549677127537
+ 0.55730368020443666
+ 0.55732186452883203
+ 0.55734004974453688
+ 0.55735823585162914
+ 0.55737642285018707
+ 0.55739461074028862
+ 0.55741279952201084
+ 0.55743098919543022
+ 0.55744917976062769
+ 0.55746737121767875
+ 0.55748556356666013
+ 0.55750375680765007
+ 0.55752195094072787
+ 0.55754014596597057
+ 0.5575583418834551
+ 0.55757653869325929
+ 0.55759473639546142
+ 0.55761293499013997
+ 0.55763113447737001
+ 0.55764933485723278
+ 0.55766753612980369
+ 0.55768573829516088
+ 0.55770394135338264
+ 0.55772214530454711
+ 0.55774035014873147
+ 0.55775855588601364
+ 0.55777676251647057
+ 0.55779497004018208
+ 0.55781317845722489
+ 0.55783138776767716
+ 0.55784959797161759
+ 0.55786780906912137
+ 0.55788602106026952
+ 0.55790423394513922
+ 0.55792244772380584
+ 0.55794066239635187
+ 0.55795887796285015
+ 0.55797709442338317
+ 0.55799531177802641
+ 0.55801353002685827
+ 0.55803174916995846
+ 0.55804996920740135
+ 0.55806819013926767
+ 0.55808641196563624
+ 0.55810463468658233
+ 0.55812285830218455
+ 0.55814108281252395
+ 0.5581593082176749
+ 0.55817753451771823
+ 0.55819576171272989
+ 0.55821398980278958
+ 0.5582322187879758
+ 0.55825044866836415
+ 0.55826867944403447
+ 0.55828691111506501
+ 0.55830514368153439
+ 0.55832337714351832
+ 0.55834161150109807
+ 0.55835984675435191
+ 0.55837808290335422
+ 0.55839631994818639
+ 0.55841455788892669
+ 0.55843279672565238
+ 0.55845103645844196
+ 0.55846927708737248
+ 0.55848751861252388
+ 0.55850576103397465
+ 0.55852400435180327
+ 0.55854224856608548
+ 0.55856049367690275
+ 0.55857873968433069
+ 0.55859698658844936
+ 0.55861523438933713
+ 0.5586334830870715
+ 0.55865173268173063
+ 0.55866998317339467
+ 0.55868823456213956
+ 0.55870648684804636
+ 0.55872474003119132
+ 0.55874299411165396
+ 0.55876124908951175
+ 0.55877950496484463
+ 0.55879776173772999
+ 0.55881601940824754
+ 0.55883427797647323
+ 0.55885253744248731
+ 0.5588707978063695
+ 0.55888905906819464
+ 0.55890732122804521
+ 0.5589255842859987
+ 0.55894384824213084
+ 0.55896211309652455
+ 0.55898037884925456
+ 0.55899864550040201
+ 0.5590169130500442
+ 0.55903518149826015
+ 0.55905345084512836
+ 0.55907172109072756
+ 0.55908999223513633
+ 0.55910826427843363
+ 0.55912653722069816
+ 0.5591448110620072
+ 0.5591630858024409
+ 0.55918136144207797
+ 0.55919963798099592
+ 0.55921791541927612
+ 0.5592361937569934
+ 0.55925447299422903
+ 0.55927275313106206
+ 0.55929103416756965
+ 0.55930931610383083
+ 0.55932759893992556
+ 0.55934588267593166
+ 0.55936416731192884
+ 0.55938245284799482
+ 0.55940073928420841
+ 0.5594190266206498
+ 0.55943731485739634
+ 0.5594556039945271
+ 0.55947389403212222
+ 0.5594921849702591
+ 0.559510476809018
+ 0.55952876954847663
+ 0.55954706318871361
+ 0.55956535772980931
+ 0.55958365317184133
+ 0.55960194951488984
+ 0.55962024675903244
+ 0.55963854490435072
+ 0.55965684395091952
+ 0.55967514389882056
+ 0.55969344474813409
+ 0.55971174649893485
+ 0.55973004915130609
+ 0.55974835270532386
+ 0.55976665716106999
+ 0.55978496251862209
+ 0.55980326877805753
+ 0.55982157593945836
+ 0.55983988400290052
+ 0.55985819296846751
+ 0.55987650283623369
+ 0.55989481360628124
+ 0.55991312527868753
+ 0.55993143785353305
+ 0.55994975133089708
+ 0.55996806571085822
+ 0.55998638099349429
+ 0.56000469717888723
+ 0.56002301426711332
+ 0.56004133225825425
+ 0.56005965115238754
+ 0.56007797094959411
+ 0.56009629164995123
+ 0.56011461325353951
+ 0.56013293576043821
+ 0.56015125917072484
+ 0.56016958348448131
+ 0.56018790870178548
+ 0.56020623482271747
+ 0.56022456184735414
+ 0.56024288977577841
+ 0.56026121860806677
+ 0.56027954834429983
+ 0.56029787898455796
+ 0.56031621052891756
+ 0.56033454297746077
+ 0.56035287633026654
+ 0.56037121058741268
+ 0.56038954574897992
+ 0.56040788181504864
+ 0.56042621878569676
+ 0.56044455666100346
+ 0.56046289544104932
+ 0.56048123512591208
+ 0.56049957571567399
+ 0.56051791721041122
+ 0.56053625961020737
+ 0.5605546029151387
+ 0.56057294712528605
+ 0.56059129224072857
+ 0.5606096382615442
+ 0.5606279851878162
+ 0.5606463330196213
+ 0.56066468175704143
+ 0.56068303140015308
+ 0.56070138194903829
+ 0.56071973340377501
+ 0.56073808576444395
+ 0.56075643903112449
+ 0.56077479320389589
+ 0.56079314828283888
+ 0.56081150426803272
+ 0.56082986115955669
+ 0.56084821895749037
+ 0.56086657766191417
+ 0.56088493727290789
+ 0.56090329779054915
+ 0.56092165921492021
+ 0.56094002154610034
+ 0.56095838478416915
+ 0.5609767489292059
+ 0.56099511398128998
+ 0.5610134799405021
+ 0.56103184680692186
+ 0.56105021458062854
+ 0.56106858326170439
+ 0.56108695285022459
+ 0.56110532334627428
+ 0.56112369474993007
+ 0.56114206706127134
+ 0.56116044028038037
+ 0.56117881440733519
+ 0.56119718944221808
+ 0.56121556538510575
+ 0.56123394223607925
+ 0.56125231999522041
+ 0.56127069866260637
+ 0.56128907823831908
+ 0.56130745872243837
+ 0.5613258401150435
+ 0.56134422241621418
+ 0.56136260562603113
+ 0.5613809897445754
+ 0.56139937477192514
+ 0.56141776070815985
+ 0.56143614755336191
+ 0.56145453530761091
+ 0.56147292397098481
+ 0.56149131354356618
+ 0.56150970402543454
+ 0.56152809541666959
+ 0.56154648771735083
+ 0.56156488092756041
+ 0.5615832750473756
+ 0.56160167007687845
+ 0.56162006601614878
+ 0.56163846286526742
+ 0.56165686062431408
+ 0.56167525929336726
+ 0.56169365887250888
+ 0.56171205936182045
+ 0.56173046076138
+ 0.5617488630712687
+ 0.56176726629156604
+ 0.56178567042235328
+ 0.56180407546371003
+ 0.56182248141571733
+ 0.56184088827845491
+ 0.56185929605200402
+ 0.56187770473644283
+ 0.56189611433185371
+ 0.56191452483831661
+ 0.56193293625591123
+ 0.56195134858471729
+ 0.56196976182481717
+ 0.5619881759762908
+ 0.5620065910392178
+ 0.56202500701367808
+ 0.56204342389975415
+ 0.56206184169752427
+ 0.56208026040706993
+ 0.56209868002847041
+ 0.56211710056180875
+ 0.56213552200716321
+ 0.56215394436461497
+ 0.56217236763424527
+ 0.56219079181613385
+ 0.56220921691036074
+ 0.562227642917007
+ 0.56224606983615377
+ 0.56226449766788111
+ 0.56228292641226885
+ 0.56230135606939813
+ 0.56231978663935034
+ 0.56233821812220519
+ 0.56235665051804418
+ 0.56237508382694701
+ 0.56239351804899507
+ 0.56241195318426829
+ 0.56243038923284772
+ 0.56244882619481362
+ 0.56246726407024705
+ 0.56248570285922961
+ 0.56250414256183956
+ 0.56252258317815984
+ 0.56254102470827161
+ 0.56255946715225347
+ 0.56257791051018691
+ 0.5625963547821532
+ 0.56261479996823371
+ 0.5626332460685084
+ 0.56265169308305729
+ 0.56267014101196311
+ 0.56268858985530457
+ 0.56270703961316448
+ 0.56272549028562269
+ 0.56274394187275945
+ 0.56276239437465736
+ 0.56278084779139514
+ 0.56279930212305573
+ 0.56281775736971751
+ 0.56283621353146507
+ 0.56285467060837679
+ 0.56287312860053285
+ 0.5628915875080176
+ 0.56291004733090821
+ 0.56292850806928751
+ 0.56294696972323721
+ 0.56296543229283713
+ 0.56298389577816765
+ 0.56300236017931005
+ 0.56302082549634869
+ 0.56303929172935974
+ 0.56305775887842724
+ 0.56307622694363146
+ 0.56309469592505379
+ 0.56311316582277471
+ 0.56313163663687538
+ 0.56315010836743629
+ 0.56316858101454159
+ 0.56318705457826879
+ 0.56320552905870092
+ 0.56322400445591803
+ 0.56324248077000316
+ 0.56326095800103648
+ 0.56327943614909703
+ 0.5632979152142702
+ 0.5633163951966339
+ 0.56333487609627075
+ 0.56335335791326124
+ 0.56337184064768708
+ 0.56339032429963098
+ 0.56340880886917066
+ 0.5634272943563905
+ 0.56344578076137086
+ 0.56346426808419348
+ 0.56348275632493972
+ 0.56350124548368874
+ 0.56351973556052493
+ 0.56353822655552732
+ 0.56355671846877753
+ 0.56357521130035859
+ 0.563593705050351
+ 0.56361219971883658
+ 0.56363069530589527
+ 0.56364919181161044
+ 0.56366768923606125
+ 0.56368618757933198
+ 0.56370468684150166
+ 0.56372318702265345
+ 0.5637416881228664
+ 0.56376019014222511
+ 0.56377869308080841
+ 0.56379719693869967
+ 0.56381570171598072
+ 0.56383420741273038
+ 0.56385271402903336
+ 0.56387122156496883
+ 0.56388973002061982
+ 0.56390823939606693
+ 0.56392674969139323
+ 0.56394526090667918
+ 0.56396377304200551
+ 0.5639822860974566
+ 0.5640008000731116
+ 0.56401931496905378
+ 0.5640378307853624
+ 0.56405634752212197
+ 0.56407486517941297
+ 0.5640933837573161
+ 0.56411190325591587
+ 0.56413042367529009
+ 0.56414894501552348
+ 0.56416746727669798
+ 0.56418599045889406
+ 0.56420451456219245
+ 0.56422303958667763
+ 0.56424156553242899
+ 0.56426009239952846
+ 0.56427862018806063
+ 0.56429714889810501
+ 0.56431567852974318
+ 0.56433420908305765
+ 0.56435274055813134
+ 0.56437127295504375
+ 0.56438980627387803
+ 0.56440834051471656
+ 0.56442687567764094
+ 0.56444541176273366
+ 0.564463948770075
+ 0.56448248669974854
+ 0.56450102555183512
+ 0.56451956532641645
+ 0.56453810602357635
+ 0.56455664764339519
+ 0.56457519018595514
+ 0.56459373365133991
+ 0.56461227803962843
+ 0.56463082335090597
+ 0.56464936958525147
+ 0.56466791674275008
+ 0.56468646482348128
+ 0.56470501382752825
+ 0.56472356375497335
+ 0.56474211460589996
+ 0.56476066638038747
+ 0.56477921907851825
+ 0.56479777270037568
+ 0.56481632724604336
+ 0.56483488271560056
+ 0.56485343910912966
+ 0.56487199642671415
+ 0.56489055466843752
+ 0.56490911383437947
+ 0.56492767392462329
+ 0.56494623493925011
+ 0.56496479687834333
+ 0.56498335974198499
+ 0.56500192353025791
+ 0.5650204882432438
+ 0.56503905388102516
+ 0.56505762044368302
+ 0.56507618793130199
+ 0.56509475634396322
+ 0.56511332568174755
+ 0.56513189594474011
+ 0.56515046713302175
+ 0.56516903924667483
+ 0.56518761228578152
+ 0.56520618625042551
+ 0.56522476114068798
+ 0.56524333695665108
+ 0.56526191369839862
+ 0.56528049136601277
+ 0.56529906995957457
+ 0.56531764947916929
+ 0.56533622992487498
+ 0.56535481129677834
+ 0.56537339359495997
+ 0.56539197681950282
+ 0.56541056097048881
+ 0.56542914604800054
+ 0.56544773205212306
+ 0.56546631898293487
+ 0.565484906840521
+ 0.56550349562496371
+ 0.56552208533634563
+ 0.56554067597474933
+ 0.56555926754025698
+ 0.56557786003295119
+ 0.56559645345291576
+ 0.56561504780023175
+ 0.56563364307498298
+ 0.56565223927725206
+ 0.56567083640712135
+ 0.56568943446467346
+ 0.56570803344998943
+ 0.56572663336315598
+ 0.56574523420425415
+ 0.5657638359733651
+ 0.56578243867057276
+ 0.56580104229595984
+ 0.56581964684960995
+ 0.56583825233160301
+ 0.56585685874202574
+ 0.5658754660809594
+ 0.56589407434848504
+ 0.56591268354468804
+ 0.56593129366964978
+ 0.56594990472345386
+ 0.5659685167061832
+ 0.56598712961791886
+ 0.56600574345874621
+ 0.56602435822874797
+ 0.56604297392800551
+ 0.56606159055660399
+ 0.56608020811462312
+ 0.56609882660214739
+ 0.56611744601926195
+ 0.56613606636604674
+ 0.56615468764258581
+ 0.56617330984896319
+ 0.56619193298526027
+ 0.56621055705156098
+ 0.56622918204794803
+ 0.56624780797450436
+ 0.56626643483131378
+ 0.56628506261845912
+ 0.56630369133602443
+ 0.56632232098408986
+ 0.56634095156274067
+ 0.56635958307205969
+ 0.56637821551213097
+ 0.56639684888303621
+ 0.56641548318485924
+ 0.56643411841768287
+ 0.56645275458158995
+ 0.56647139167666472
+ 0.56649002970298978
+ 0.56650866866064942
+ 0.56652730854972511
+ 0.56654594937030101
+ 0.56656459112245994
+ 0.56658323380628606
+ 0.5666018774218623
+ 0.56662052196927137
+ 0.56663916744859755
+ 0.56665781385992242
+ 0.56667646120333293
+ 0.56669510947890767
+ 0.56671375868673379
+ 0.56673240882689147
+ 0.56675105989946761
+ 0.56676971190454239
+ 0.56678836484220163
+ 0.56680701871252792
+ 0.56682567351560442
+ 0.56684432925151407
+ 0.56686298592034112
+ 0.56688164352216852
+ 0.56690030205708042
+ 0.56691896152516008
+ 0.56693762192649022
+ 0.56695628326115532
+ 0.56697494552923844
+ 0.56699360873082361
+ 0.5670122728659942
+ 0.56703093793483295
+ 0.56704960393742443
+ 0.56706827087385148
+ 0.56708693874419858
+ 0.56710560754854877
+ 0.56712427728698644
+ 0.5671429479595933
+ 0.56716161956645494
+ 0.56718029210765331
+ 0.56719896558327421
+ 0.56721763999339914
+ 0.56723631533811258
+ 0.56725499161750037
+ 0.5672736688316431
+ 0.56729234698062503
+ 0.56731102606453199
+ 0.56732970608344568
+ 0.5673483870374495
+ 0.56736706892662903
+ 0.56738575175106754
+ 0.56740443551084796
+ 0.56742312020605512
+ 0.56744180583677351
+ 0.56746049240308472
+ 0.56747917990507202
+ 0.56749786834282268
+ 0.56751655771641851
+ 0.56753524802594557
+ 0.56755393927148279
+ 0.56757263145311887
+ 0.56759132457093708
+ 0.56761001862501803
+ 0.56762871361545009
+ 0.56764740954231407
+ 0.56766610640569581
+ 0.56768480420567713
+ 0.56770350294234417
+ 0.56772220261577999
+ 0.56774090322606818
+ 0.56775960477329324
+ 0.56777830725754108
+ 0.56779701067889221
+ 0.56781571503743289
+ 0.56783442033324638
+ 0.56785312656641718
+ 0.56787183373702887
+ 0.5678905418451673
+ 0.5679092508909146
+ 0.5679279608743566
+ 0.56794667179557556
+ 0.5679653836546561
+ 0.56798409645168302
+ 0.56800281018674081
+ 0.56802152485991175
+ 0.56804024047128321
+ 0.56805895702093723
+ 0.5680776745089573
+ 0.56809639293543079
+ 0.56811511230043976
+ 0.56813383260406769
+ 0.56815255384639929
+ 0.56817127602752093
+ 0.56818999914751445
+ 0.56820872320646632
+ 0.56822744820445836
+ 0.56824617414157685
+ 0.56826490101790517
+ 0.56828362883352845
+ 0.5683023575885312
+ 0.56832108728299713
+ 0.56833981791700972
+ 0.56835854949065512
+ 0.56837728200401683
+ 0.56839601545717999
+ 0.56841474985022911
+ 0.56843348518324677
+ 0.56845222145631891
+ 0.56847095866953068
+ 0.56848969682296546
+ 0.5685084359167083
+ 0.56852717595084401
+ 0.56854591692545631
+ 0.56856465884063023
+ 0.56858340169645039
+ 0.56860214549299926
+ 0.56862089023036599
+ 0.56863963590863131
+ 0.5686583825278817
+ 0.5686771300881992
+ 0.56869587858967185
+ 0.56871462803238304
+ 0.56873337841641658
+ 0.5687521297418574
+ 0.56877088200879067
+ 0.56878963521730119
+ 0.56880838936747424
+ 0.56882714445939342
+ 0.56884590049314243
+ 0.56886465746880899
+ 0.56888341538647558
+ 0.56890217424622724
+ 0.56892093404814892
+ 0.56893969479232587
+ 0.5689584564788418
+ 0.56897721910778465
+ 0.5689959826792339
+ 0.56901474719328027
+ 0.56903351265000324
+ 0.56905227904949085
+ 0.56907104639182837
+ 0.56908981467709929
+ 0.56910858390538743
+ 0.56912735407678106
+ 0.56914612519136221
+ 0.56916489724921637
+ 0.56918367025042982
+ 0.56920244419508526
+ 0.56922121908327039
+ 0.56923999491506794
+ 0.56925877169056438
+ 0.56927754940984354
+ 0.5692963280729908
+ 0.56931510768009264
+ 0.56933388823123143
+ 0.56935266972649412
+ 0.56937145216596574
+ 0.56939023554973023
+ 0.56940901987787451
+ 0.56942780515048208
+ 0.56944659136763842
+ 0.5694653785294288
+ 0.56948416663593859
+ 0.56950295568725162
+ 0.56952174568345482
+ 0.56954053662463322
+ 0.5695593285108711
+ 0.5695781213422535
+ 0.56959691511886723
+ 0.56961570984079635
+ 0.56963450550812622
+ 0.5696533021209409
+ 0.56967209967932841
+ 0.5696908981833726
+ 0.56970969763315793
+ 0.56972849802877079
+ 0.56974729937029545
+ 0.56976610165781838
+ 0.56978490489142541
+ 0.56980370907119904
+ 0.5698225141972274
+ 0.56984132026959611
+ 0.56986012728838753
+ 0.56987893525369038
+ 0.56989774416558825
+ 0.56991655402416819
+ 0.56993536482951312
+ 0.56995417658170955
+ 0.56997298928084472
+ 0.56999180292700102
+ 0.57001061752026705
+ 0.5700294330607254
+ 0.57004824954846423
+ 0.57006706698356657
+ 0.57008588536611926
+ 0.57010470469620911
+ 0.57012352497392049
+ 0.57014234619933735
+ 0.57016116837254671
+ 0.57017999149363585
+ 0.57019881556268837
+ 0.57021764057978896
+ 0.57023646654502591
+ 0.57025529345848325
+ 0.57027412132024546
+ 0.57029295013040193
+ 0.57031177988903459
+ 0.57033061059623158
+ 0.57034944225207718
+ 0.57036827485665853
+ 0.57038710841005968
+ 0.57040594291236801
+ 0.57042477836366756
+ 0.57044361476404404
+ 0.57046245211358604
+ 0.57048129041237616
+ 0.57050012966050323
+ 0.57051896985805006
+ 0.5705378110051037
+ 0.57055665310174986
+ 0.57057549614807579
+ 0.57059434014416566
+ 0.57061318509010672
+ 0.57063203098598336
+ 0.57065087783188129
+ 0.57066972562788898
+ 0.57068857437408949
+ 0.57070742407056996
+ 0.57072627471741622
+ 0.57074512631471552
+ 0.57076397886255359
+ 0.57078283236101335
+ 0.57080168681018362
+ 0.57082054221014999
+ 0.57083939856099974
+ 0.57085825586281602
+ 0.57087711411568609
+ 0.5708959733196971
+ 0.57091483347493355
+ 0.57093369458148269
+ 0.57095255663943034
+ 0.57097141964886244
+ 0.57099028360986626
+ 0.57100914852252493
+ 0.57102801438692852
+ 0.57104688120316016
+ 0.57106574897130857
+ 0.57108461769145691
+ 0.57110348736369365
+ 0.57112235798810362
+ 0.57114122956477553
+ 0.57116010209379242
+ 0.57117897557524178
+ 0.57119785000921086
+ 0.57121672539578572
+ 0.57123560173505217
+ 0.57125447902709514
+ 0.57127335727200312
+ 0.57129223646986205
+ 0.57131111662075684
+ 0.57132999772477622
+ 0.57134887978200333
+ 0.57136776279252832
+ 0.57138664675643325
+ 0.57140553167380959
+ 0.57142441754474071
+ 0.57144330436931268
+ 0.57146219214761274
+ 0.57148108087972738
+ 0.57149997056574364
+ 0.57151886120574646
+ 0.57153775279982333
+ 0.57155664534806172
+ 0.57157553885054624
+ 0.57159443330736459
+ 0.57161332871860282
+ 0.57163222508434841
+ 0.57165112240468763
+ 0.57167002067970507
+ 0.57168891990948978
+ 0.57170782009412791
+ 0.5717267212337056
+ 0.57174562332830914
+ 0.57176452637802599
+ 0.57178343038294233
+ 0.57180233534314451
+ 0.57182124125872003
+ 0.57184014812975503
+ 0.57185905595633602
+ 0.57187796473855024
+ 0.57189687447648552
+ 0.57191578517022679
+ 0.57193469681986009
+ 0.5719536094254748
+ 0.5719725229871554
+ 0.57199143750498971
+ 0.57201035297906566
+ 0.57202926940946786
+ 0.57204818679628522
+ 0.57206710513960324
+ 0.57208602443950907
+ 0.57210494469608941
+ 0.57212386590943032
+ 0.57214278807962105
+ 0.57216171120674653
+ 0.57218063529089447
+ 0.57219956033215258
+ 0.57221848633060601
+ 0.5722374132863437
+ 0.57225634119945079
+ 0.57227527007001511
+ 0.5722941998981228
+ 0.5723131306838618
+ 0.57233206242731993
+ 0.57235099512858378
+ 0.5723699287877394
+ 0.57238886340487349
+ 0.57240779898007377
+ 0.57242673551342815
+ 0.57244567300502425
+ 0.57246461145494754
+ 0.57248355086328417
+ 0.57250249123012353
+ 0.57252143255555343
+ 0.57254037483965903
+ 0.5725593180825268
+ 0.57257826228424613
+ 0.57259720744490328
+ 0.57261615356458495
+ 0.57263510064338041
+ 0.57265404868137493
+ 0.57267299767865487
+ 0.57269194763531095
+ 0.57271089855142565
+ 0.57272985042709113
+ 0.57274880326239253
+ 0.57276775705741634
+ 0.57278671181225216
+ 0.57280566752698348
+ 0.57282462420170133
+ 0.57284358183649364
+ 0.57286254043144413
+ 0.5728814999866424
+ 0.57290046050217502
+ 0.57291942197812995
+ 0.57293838441459521
+ 0.57295734781165764
+ 0.57297631216940359
+ 0.57299527748792145
+ 0.57301424376730037
+ 0.57303321100762594
+ 0.5730521792089861
+ 0.57307114837146755
+ 0.57309011849515834
+ 0.57310908958014672
+ 0.57312806162652052
+ 0.57314703463436678
+ 0.57316600860377231
+ 0.57318498353482472
+ 0.5732039594276126
+ 0.57322293628222276
+ 0.57324191409874437
+ 0.57326089287726301
+ 0.57327987261786695
+ 0.57329885332064423
+ 0.57331783498568323
+ 0.57333681761307054
+ 0.57335580120289564
+ 0.57337478575524148
+ 0.57339377127020186
+ 0.57341275774786182
+ 0.57343174518830864
+ 0.57345073359163035
+ 0.57346972295791532
+ 0.57348871328725015
+ 0.57350770457972478
+ 0.57352669683542579
+ 0.57354569005443912
+ 0.5735646842368568
+ 0.57358367938276322
+ 0.57360267549224775
+ 0.57362167256539776
+ 0.57364067060230128
+ 0.57365966960304648
+ 0.57367866956772073
+ 0.5736976704964134
+ 0.57371667238921153
+ 0.57373567524620217
+ 0.57375467906747368
+ 0.57377368385311567
+ 0.57379268960321383
+ 0.57381169631785789
+ 0.57383070399713487
+ 0.57384971264113471
+ 0.57386872224994134
+ 0.57388773282364769
+ 0.57390674436233902
+ 0.57392575686610403
+ 0.573944770335031
+ 0.57396378476920717
+ 0.57398280016872227
+ 0.57400181653366322
+ 0.57402083386411873
+ 0.57403985216017717
+ 0.57405887142192547
+ 0.57407789164945255
+ 0.57409691284284792
+ 0.57411593500219715
+ 0.57413495812759197
+ 0.57415398221911662
+ 0.5741730072768636
+ 0.57419203330091728
+ 0.57421106029136781
+ 0.57423008824830357
+ 0.57424911717181182
+ 0.57426814706198248
+ 0.57428717791890405
+ 0.57430620974266378
+ 0.57432524253334882
+ 0.57434427629104912
+ 0.57436331101585358
+ 0.57438234670785027
+ 0.57440138336712687
+ 0.57442042099377189
+ 0.5744394595878739
+ 0.57445849914952152
+ 0.57447753967880488
+ 0.57449658117580826
+ 0.57451562364062481
+ 0.57453466707334011
+ 0.57455371147404299
+ 0.57457275684282361
+ 0.57459180317976766
+ 0.57461085048496818
+ 0.57462989875850956
+ 0.57464894800048205
+ 0.57466799821097292
+ 0.57468704939007365
+ 0.57470610153787027
+ 0.57472515465445284
+ 0.57474420873990872
+ 0.57476326379432685
+ 0.57478231981779848
+ 0.57480137681040833
+ 0.57482043477224798
+ 0.57483949370340492
+ 0.57485855360396654
+ 0.57487761447402552
+ 0.57489667631366692
+ 0.57491573912298077
+ 0.57493480290205723
+ 0.57495386765098233
+ 0.57497293336984645
+ 0.57499200005873841
+ 0.5750110677177469
+ 0.57503013634696098
+ 0.57504920594646947
+ 0.57506827651636117
+ 0.57508734805672501
+ 0.57510642056764871
+ 0.57512549404922353
+ 0.57514456850153595
+ 0.57516364392467756
+ 0.57518272031873441
+ 0.57520179768379698
+ 0.57522087601995409
+ 0.5752399553272961
+ 0.5752590356059093
+ 0.57527811685588393
+ 0.57529719907731036
+ 0.57531628227027487
+ 0.57533536643486916
+ 0.5753544515711807
+ 0.57537353767930155
+ 0.57539262475931507
+ 0.57541171281131576
+ 0.57543080183538975
+ 0.57544989183162631
+ 0.57546898280011582
+ 0.57548807474094721
+ 0.57550716765421106
+ 0.57552626153999231
+ 0.575545356398384
+ 0.57556445222947394
+ 0.57558354903335118
+ 0.5756026468101062
+ 0.5756217455598267
+ 0.57564084528260329
+ 0.57565994597852366
+ 0.57567904764767686
+ 0.57569815029015481
+ 0.57571725390604522
+ 0.57573635849543736
+ 0.57575546405842171
+ 0.57577457059508619
+ 0.57579367810551974
+ 0.57581278658981294
+ 0.57583189604805518
+ 0.57585100648033549
+ 0.57587011788674314
+ 0.5758892302673686
+ 0.57590834362229992
+ 0.57592745795162748
+ 0.57594657325544074
+ 0.57596568953382743
+ 0.57598480678688091
+ 0.57600392501468645
+ 0.57602304421733574
+ 0.57604216439491851
+ 0.57606128554752367
+ 0.57608040767524071
+ 0.57609953077816034
+ 0.57611865485637026
+ 0.5761377799099614
+ 0.57615690593902291
+ 0.57617603294364417
+ 0.57619516092391598
+ 0.57621428987992607
+ 0.5762334198117669
+ 0.57625255071952464
+ 0.57627168260329176
+ 0.57629081546315764
+ 0.57630994929921142
+ 0.57632908411154271
+ 0.57634821990024077
+ 0.57636735666539629
+ 0.57638649440709899
+ 0.57640563312543935
+ 0.57642477282050431
+ 0.57644391349238722
+ 0.57646305514117635
+ 0.57648219776696097
+ 0.576501341369832
+ 0.57652048594987748
+ 0.57653963150718979
+ 0.57655877804185829
+ 0.57657792555397114
+ 0.57659707404361904
+ 0.57661622351089303
+ 0.57663537395588271
+ 0.57665452537867745
+ 0.57667367777936684
+ 0.57669283115804182
+ 0.57671198551479186
+ 0.576731140849708
+ 0.57675029716287829
+ 0.57676945445439376
+ 0.57678861272434534
+ 0.57680777197282129
+ 0.57682693219991388
+ 0.57684609340571269
+ 0.5768652555903061
+ 0.57688441875378493
+ 0.57690358289624166
+ 0.57692274801776311
+ 0.57694191411844031
+ 0.57696108119836431
+ 0.57698024925762625
+ 0.57699941829631418
+ 0.57701858831451913
+ 0.57703775931233114
+ 0.57705693128984092
+ 0.57707610424713829
+ 0.57709527818431439
+ 0.57711445310145881
+ 0.57713362899866139
+ 0.57715280587601314
+ 0.57717198373360379
+ 0.57719116257152459
+ 0.57721034238986502
+ 0.57722952318871634
+ 0.57724870496816849
+ 0.57726788772831117
+ 0.57728707146923397
+ 0.57730625619103093
+ 0.5773254418937892
+ 0.57734462857760116
+ 0.57736381624255528
+ 0.57738300488874428
+ 0.57740219451625641
+ 0.57742138512518304
+ 0.57744057671561533
+ 0.57745976928764442
+ 0.57747896284135747
+ 0.57749815737684862
+ 0.57751735289420758
+ 0.57753654939352428
+ 0.57755574687488864
+ 0.57757494533839315
+ 0.57759414478412663
+ 0.57761334521218011
+ 0.5776325466226464
+ 0.57765174901561278
+ 0.57767095239117161
+ 0.57769015674941449
+ 0.57770936209042989
+ 0.57772856841431053
+ 0.57774777572114644
+ 0.57776698401102755
+ 0.57778619328404512
+ 0.5778054035402922
+ 0.57782461477985569
+ 0.57784382700282722
+ 0.57786304020930079
+ 0.57788225439936369
+ 0.5779014695731074
+ 0.57792068573062472
+ 0.57793990287200425
+ 0.57795912099733882
+ 0.57797834010671711
+ 0.57799756020023185
+ 0.57801678127797329
+ 0.57803600334003158
+ 0.57805522638649931
+ 0.5780744504174653
+ 0.57809367543302392
+ 0.57811290143326244
+ 0.57813212841827388
+ 0.57815135638814807
+ 0.57817058534297672
+ 0.57818981528285285
+ 0.57820904620786362
+ 0.57822827811810196
+ 0.57824751101365968
+ 0.57826674489462537
+ 0.57828597976109475
+ 0.57830521561315407
+ 0.57832445245089747
+ 0.57834369027441523
+ 0.57836292908379749
+ 0.57838216887913718
+ 0.57840140966052345
+ 0.57842065142805055
+ 0.57843989418180586
+ 0.57845913792188397
+ 0.57847838264837348
+ 0.57849762836136776
+ 0.57851687506095684
+ 0.57853612274723243
+ 0.57855537142028501
+ 0.57857462108020752
+ 0.57859387172708876
+ 0.57861312336102344
+ 0.57863237598210038
+ 0.57865162959041139
+ 0.57867088418604806
+ 0.57869013976910222
+ 0.57870939633966423
+ 0.57872865389782713
+ 0.57874791244368007
+ 0.57876717197731598
+ 0.57878643249882689
+ 0.57880569400830306
+ 0.57882495650583632
+ 0.57884421999151836
+ 0.57886348446543978
+ 0.57888274992769362
+ 0.57890201637837047
+ 0.57892128381756347
+ 0.57894055224536023
+ 0.57895982166185567
+ 0.57897909206714115
+ 0.57899836346130751
+ 0.57901763584444654
+ 0.57903690921664874
+ 0.57905618357800881
+ 0.57907545892861434
+ 0.57909473526856148
+ 0.57911401259793804
+ 0.5791332909168373
+ 0.57915257022535116
+ 0.57917185052357012
+ 0.57919113181158888
+ 0.57921041408949536
+ 0.57922969735738428
+ 0.5792489816153461
+ 0.57926826686347144
+ 0.5792875531018552
+ 0.57930684033058644
+ 0.57932612854975862
+ 0.57934541775946236
+ 0.579364707959791
+ 0.57938399915083527
+ 0.57940329133268709
+ 0.5794225845054386
+ 0.57944187866918184
+ 0.57946117382400875
+ 0.57948046997001013
+ 0.57949976710727946
+ 0.57951906523590868
+ 0.57953836435598849
+ 0.57955766446761259
+ 0.57957696557087146
+ 0.57959626766585881
+ 0.57961557075266379
+ 0.57963487483138143
+ 0.57965417990210233
+ 0.57967348596492019
+ 0.57969279301992427
+ 0.57971210106720827
+ 0.57973141010686413
+ 0.57975072013898421
+ 0.57977003116366199
+ 0.57978934318098696
+ 0.57980865619105271
+ 0.57982797019394994
+ 0.57984728518977369
+ 0.57986660117861333
+ 0.57988591816056267
+ 0.57990523613571399
+ 0.57992455510415919
+ 0.57994387506599088
+ 0.57996319602130109
+ 0.57998251797018086
+ 0.58000184091272533
+ 0.58002116484902366
+ 0.58004048977916978
+ 0.58005981570325738
+ 0.58007914262137728
+ 0.58009847053362051
+ 0.58011779944008224
+ 0.58013712934085315
+ 0.58015646023602585
+ 0.58017579212569403
+ 0.58019512500994719
+ 0.58021445888888179
+ 0.58023379376258633
+ 0.58025312963115705
+ 0.58027246649468378
+ 0.58029180435325878
+ 0.5803111432069773
+ 0.58033048305593038
+ 0.58034982390020906
+ 0.58036916573990849
+ 0.58038850857511981
+ 0.58040785240593529
+ 0.58042719723244773
+ 0.58044654305475207
+ 0.58046588987293801
+ 0.58048523768709948
+ 0.58050458649732772
+ 0.58052393630371779
+ 0.58054328710636105
+ 0.58056263890534976
+ 0.58058199170077796
+ 0.58060134549273801
+ 0.5806207002813214
+ 0.58064005606662183
+ 0.58065941284873324
+ 0.58067877062774542
+ 0.58069812940375531
+ 0.5807174891768524
+ 0.58073684994712949
+ 0.58075621171468184
+ 0.58077557447959927
+ 0.58079493824197725
+ 0.58081430300190851
+ 0.58083366875948539
+ 0.58085303551479928
+ 0.58087240326794554
+ 0.58089177201901565
+ 0.58091114176810332
+ 0.58093051251530159
+ 0.58094988426070138
+ 0.58096925700439839
+ 0.58098863074648521
+ 0.58100800548705323
+ 0.58102738122619646
+ 0.58104675796400906
+ 0.58106613570058241
+ 0.58108551443600909
+ 0.58110489417038469
+ 0.5811242749038007
+ 0.58114365663635115
+ 0.5811630393681273
+ 0.58118242309922352
+ 0.58120180782973385
+ 0.58122119355975121
+ 0.58124058028936676
+ 0.58125996801867641
+ 0.58127935674776987
+ 0.5812987464767444
+ 0.58131813720569125
+ 0.58133752893470492
+ 0.58135692166387642
+ 0.58137631539330181
+ 0.5813957101230709
+ 0.58141510585327949
+ 0.58143450258402185
+ 0.58145390031538924
+ 0.5814732990474748
+ 0.5814926987803728
+ 0.58151209951417748
+ 0.58153150124898179
+ 0.58155090398487863
+ 0.58157030772196106
+ 0.5815897124603232
+ 0.58160911820005812
+ 0.58162852494125883
+ 0.58164793268402082
+ 0.58166734142843601
+ 0.58168675117459867
+ 0.58170616192260027
+ 0.58172557367253686
+ 0.58174498642450112
+ 0.58176440017858622
+ 0.58178381493488662
+ 0.58180323069349527
+ 0.58182264745450674
+ 0.58184206521801252
+ 0.5818614839841072
+ 0.58188090375288648
+ 0.58190032452444074
+ 0.58191974629886589
+ 0.58193916907625631
+ 0.5819585928567037
+ 0.58197801764030144
+ 0.5819974434271451
+ 0.58201687021732784
+ 0.58203629801094281
+ 0.58205572680808471
+ 0.58207515660884646
+ 0.58209458741332154
+ 0.58211401922160688
+ 0.58213345203379174
+ 0.58215288584997205
+ 0.58217232067024371
+ 0.58219175649469856
+ 0.58221119332342974
+ 0.58223063115653206
+ 0.58225006999409989
+ 0.58226950983622527
+ 0.58228895068300546
+ 0.58230839253453237
+ 0.58232783539089927
+ 0.58234727925220209
+ 0.58236672411853296
+ 0.58238616998998771
+ 0.58240561686665826
+ 0.58242506474864086
+ 0.58244451363602723
+ 0.58246396352891505
+ 0.58248341442739326
+ 0.58250286633156079
+ 0.58252231924150977
+ 0.58254177315733335
+ 0.58256122807912769
+ 0.58258068400698482
+ 0.58260014094100077
+ 0.58261959888126924
+ 0.58263905782788317
+ 0.58265851778093913
+ 0.58267797874053029
+ 0.58269744070675022
+ 0.5827169036796922
+ 0.5827363676594538
+ 0.58275583264612585
+ 0.58277529863980571
+ 0.58279476564058585
+ 0.58281423364856055
+ 0.58283370266382517
+ 0.58285317268647308
+ 0.58287264371659897
+ 0.58289211575429789
+ 0.58291158879966332
+ 0.58293106285279006
+ 0.58295053791377305
+ 0.58297001398270454
+ 0.58298949105968223
+ 0.58300896914479805
+ 0.58302844823814859
+ 0.58304792833982599
+ 0.58306740944992652
+ 0.58308689156854498
+ 0.58310637469577387
+ 0.58312585883171086
+ 0.58314534397644668
+ 0.5831648301300778
+ 0.58318431729270059
+ 0.58320380546440731
+ 0.58322329464529288
+ 0.58324278483545267
+ 0.58326227603497982
+ 0.5832817682439726
+ 0.5833012614625217
+ 0.58332075569072495
+ 0.58334025092867325
+ 0.58335974717646455
+ 0.58337924443419398
+ 0.58339874270195369
+ 0.58341824197984038
+ 0.58343774226794753
+ 0.58345724356637052
+ 0.58347674587520437
+ 0.58349624919454557
+ 0.58351575352448504
+ 0.58353525886512103
+ 0.58355476521654692
+ 0.58357427257885686
+ 0.58359378095214853
+ 0.58361329033651443
+ 0.58363280073204982
+ 0.58365231213884983
+ 0.58367182455700972
+ 0.58369133798662487
+ 0.58371085242778875
+ 0.58373036788059685
+ 0.58374988434514585
+ 0.58376940182152948
+ 0.58378892030984308
+ 0.5838084398101806
+ 0.58382796032263851
+ 0.58384748184731095
+ 0.58386700438429451
+ 0.58388652793368157
+ 0.58390605249557048
+ 0.58392557807005518
+ 0.58394510465722926
+ 0.58396463225718986
+ 0.5839841608700308
+ 0.58400369049584866
+ 0.58402322113473748
+ 0.58404275278679296
+ 0.58406228545211014
+ 0.58408181913078594
+ 0.58410135382291295
+ 0.58412088952858787
+ 0.58414042624790485
+ 0.58415996398096204
+ 0.5841795027278508
+ 0.58419904248867072
+ 0.58421858326351295
+ 0.58423812505247719
+ 0.58425766785565481
+ 0.5842772116731425
+ 0.58429675650503887
+ 0.58431630235143484
+ 0.58433584921242754
+ 0.58435539708811235
+ 0.58437494597858497
+ 0.58439449588394221
+ 0.58441404680427678
+ 0.58443359873968714
+ 0.58445315169026579
+ 0.58447270565610987
+ 0.58449226063731508
+ 0.58451181663397678
+ 0.58453137364619068
+ 0.58455093167405225
+ 0.58457049071765865
+ 0.58459005077710113
+ 0.58460961185247962
+ 0.58462917394388825
+ 0.58464873705142439
+ 0.58466830117518043
+ 0.58468786631525493
+ 0.58470743247174095
+ 0.58472699964473673
+ 0.58474656783433687
+ 0.58476613704063818
+ 0.58478570726373491
+ 0.58480527850372299
+ 0.58482485076069934
+ 0.58484442403475845
+ 0.58486399832599867
+ 0.58488357363451315
+ 0.58490314996039749
+ 0.58492272730375017
+ 0.58494230566466565
+ 0.58496188504323976
+ 0.58498146543956819
+ 0.58500104685374676
+ 0.58502062928587262
+ 0.58504021273604034
+ 0.58505979720434687
+ 0.58507938269088966
+ 0.58509896919576176
+ 0.58511855671905877
+ 0.58513814526088082
+ 0.58515773482131972
+ 0.58517732540047396
+ 0.58519691699843945
+ 0.5852165096153108
+ 0.58523610325118647
+ 0.58525569790615983
+ 0.58527529358032937
+ 0.58529489027378967
+ 0.5853144879866381
+ 0.58533408671897047
+ 0.58535368647088282
+ 0.58537328724247106
+ 0.58539288903383135
+ 0.58541249184506061
+ 0.58543209567625532
+ 0.58545170052750961
+ 0.58547130639892397
+ 0.58549091329059
+ 0.58551052120260672
+ 0.58553013013506994
+ 0.58554974008807603
+ 0.58556935106172192
+ 0.58558896305610109
+ 0.585608576071314
+ 0.58562819010745493
+ 0.58564780516462034
+ 0.58566742124290727
+ 0.58568703834241076
+ 0.5857066564632295
+ 0.58572627560545842
+ 0.58574589576919323
+ 0.58576551695453316
+ 0.58578513916157304
+ 0.58580476239040868
+ 0.58582438664113778
+ 0.58584401191385649
+ 0.5858636382086625
+ 0.58588326552565029
+ 0.58590289386491767
+ 0.58592252322656058
+ 0.58594215361067703
+ 0.58596178501736285
+ 0.58598141744671439
+ 0.58600105089882915
+ 0.58602068537380225
+ 0.58604032087173374
+ 0.58605995739271599
+ 0.58607959493684803
+ 0.58609923350422732
+ 0.5861188730949487
+ 0.58613851370911152
+ 0.58615815534680915
+ 0.58617779800814207
+ 0.58619744169320365
+ 0.58621708640209325
+ 0.58623673213490701
+ 0.58625637889174287
+ 0.58627602667269407
+ 0.58629567547786143
+ 0.5863153253073411
+ 0.58633497616122821
+ 0.58635462803962035
+ 0.5863742809426169
+ 0.58639393487031144
+ 0.58641358982280289
+ 0.58643324580018663
+ 0.58645290280256157
+ 0.58647256083002441
+ 0.58649221988267131
+ 0.58651187996060028
+ 0.58653154106390781
+ 0.58655120319269161
+ 0.5865708663470468
+ 0.58659053052707277
+ 0.58661019573286588
+ 0.58662986196452405
+ 0.58664952922214242
+ 0.58666919750582014
+ 0.58668886681565391
+ 0.58670853715174032
+ 0.58672820851417706
+ 0.58674788090306085
+ 0.58676755431849104
+ 0.58678722876056122
+ 0.58680690422937098
+ 0.58682658072501959
+ 0.58684625824759951
+ 0.58686593679721155
+ 0.58688561637395342
+ 0.58690529697791927
+ 0.58692497860920989
+ 0.58694466126792044
+ 0.58696434495415017
+ 0.58698402966799323
+ 0.58700371540955187
+ 0.58702340217891957
+ 0.58704308997619492
+ 0.58706277880147706
+ 0.58708246865486002
+ 0.58710215953644462
+ 0.58712185144632756
+ 0.58714154438460575
+ 0.58716123835137568
+ 0.58718093334673693
+ 0.58720062937078643
+ 0.58722032642362199
+ 0.58724002450534085
+ 0.58725972361603929
+ 0.5872794237558171
+ 0.58729912492477243
+ 0.58731882712300076
+ 0.58733853035060035
+ 0.58735823460766912
+ 0.58737793989430542
+ 0.58739764621060631
+ 0.5874173535566698
+ 0.58743706193259282
+ 0.58745677133847629
+ 0.58747648177441303
+ 0.58749619324050406
+ 0.5875159057368462
+ 0.58753561926353781
+ 0.58755533382067715
+ 0.58757504940836125
+ 0.58759476602668825
+ 0.58761448367575642
+ 0.58763420235566299
+ 0.58765392206650469
+ 0.58767364280838275
+ 0.5876933645813941
+ 0.58771308738563288
+ 0.58773281122120302
+ 0.58775253608819755
+ 0.58777226198671728
+ 0.58779198891685958
+ 0.58781171687872258
+ 0.58783144587240332
+ 0.58785117589800207
+ 0.58787090695561373
+ 0.58789063904534011
+ 0.58791037216727682
+ 0.58793010632152198
+ 0.58794984150817586
+ 0.58796957772733394
+ 0.58798931497909601
+ 0.58800905326355934
+ 0.58802879258082241
+ 0.58804853293098502
+ 0.5880682743141431
+ 0.58808801673039646
+ 0.58810776017984212
+ 0.58812750466257879
+ 0.58814725017870506
+ 0.58816699672832085
+ 0.58818674431152196
+ 0.58820649292840677
+ 0.58822624257907419
+ 0.58824599326362392
+ 0.58826574498215345
+ 0.5882854977347598
+ 0.58830525152154312
+ 0.58832500634260199
+ 0.58834476219803367
+ 0.58836451908793819
+ 0.58838427701241147
+ 0.58840403597155488
+ 0.58842379596546435
+ 0.58844355699424
+ 0.58846331905798066
+ 0.58848308215678335
+ 0.58850284629074834
+ 0.58852261145997153
+ 0.58854237766455586
+ 0.58856214490459602
+ 0.58858191318019193
+ 0.58860168249144373
+ 0.58862145283844769
+ 0.58864122422130361
+ 0.58866099664011062
+ 0.58868077009496589
+ 0.58870054458596965
+ 0.58872032011322084
+ 0.5887400966768167
+ 0.58875987427685628
+ 0.58877965291343959
+ 0.58879943258666423
+ 0.58881921329663034
+ 0.58883899504343407
+ 0.58885877782717844
+ 0.58887856164795827
+ 0.58889834650587514
+ 0.58891813240102653
+ 0.58893791933351136
+ 0.58895770730342867
+ 0.58897749631087848
+ 0.58899728635595872
+ 0.58901707743876808
+ 0.58903686955940548
+ 0.58905666271797152
+ 0.58907645691456356
+ 0.58909625214928063
+ 0.58911604842222176
+ 0.58913584573348876
+ 0.58915564408317778
+ 0.5891754434713864
+ 0.58919524389821787
+ 0.58921504536376856
+ 0.58923484786813873
+ 0.58925465141142763
+ 0.58927445599373263
+ 0.58929426161515575
+ 0.58931406827579336
+ 0.58933387597574582
+ 0.58935368471511373
+ 0.58937349449399479
+ 0.58939330531248635
+ 0.58941311717069222
+ 0.58943293006870856
+ 0.58945274400663583
+ 0.58947255898457185
+ 0.58949237500261853
+ 0.58951219206087235
+ 0.58953201015943502
+ 0.58955182929840466
+ 0.58957164947788021
+ 0.58959147069796247
+ 0.58961129295875048
+ 0.58963111626034204
+ 0.58965094060283796
+ 0.58967076598633861
+ 0.58969059241094224
+ 0.58971041987674766
+ 0.58973024838385724
+ 0.58975007793236733
+ 0.58976990852237854
+ 0.58978974015399177
+ 0.58980957282730317
+ 0.58982940654241656
+ 0.5898492412994284
+ 0.58986907709844072
+ 0.58988891393955023
+ 0.58990875182286029
+ 0.58992859074846749
+ 0.58994843071647118
+ 0.58996827172697353
+ 0.58998811378007399
+ 0.59000795687587049
+ 0.59002780101446384
+ 0.59004764619595351
+ 0.59006749242043866
+ 0.59008733968802052
+ 0.59010718799879813
+ 0.59012703735287264
+ 0.5901468877503403
+ 0.5901667391913038
+ 0.59018659167586252
+ 0.59020644520411703
+ 0.59022629977616581
+ 0.59024615539210956
+ 0.59026601205204909
+ 0.59028586975608266
+ 0.59030572850430962
+ 0.59032558829683124
+ 0.59034544913374953
+ 0.59036531101515999
+ 0.5903851739411663
+ 0.5904050379118666
+ 0.59042490292736205
+ 0.590444768987752
+ 0.5904646360931376
+ 0.59048450424361709
+ 0.59050437343929119
+ 0.59052424368026124
+ 0.59054411496662529
+ 0.59056398729848592
+ 0.5905838606759426
+ 0.59060373509909359
+ 0.59062361056804158
+ 0.59064348708288461
+ 0.59066336464372537
+ 0.5906832432506619
+ 0.59070312290379534
+ 0.59072300360322705
+ 0.59074288534905361
+ 0.59076276814138073
+ 0.59078265198030344
+ 0.59080253686592621
+ 0.59082242279834851
+ 0.59084230977766727
+ 0.59086219780398797
+ 0.59088208687740762
+ 0.59090197699802727
+ 0.59092186816594816
+ 0.59094176038127022
+ 0.59096165364409448
+ 0.59098154795451951
+ 0.59100144331264781
+ 0.5910213397185794
+ 0.59104123717241541
+ 0.59106113567425433
+ 0.59108103522419875
+ 0.59110093582234735
+ 0.59112083746880406
+ 0.59114074016366591
+ 0.59116064390703438
+ 0.5911805486990106
+ 0.59120045453969616
+ 0.59122036142919077
+ 0.59124026936759444
+ 0.59126017835500855
+ 0.59128008839153434
+ 0.59129999947727185
+ 0.59131991161232111
+ 0.59133982479678482
+ 0.59135973903076167
+ 0.59137965431435446
+ 0.59139957064766313
+ 0.5914194880307877
+ 0.59143940646382964
+ 0.59145932594688899
+ 0.59147924648006855
+ 0.59149916806346847
+ 0.59151909069718889
+ 0.5915390143813295
+ 0.591558939115995
+ 0.59157886490128253
+ 0.59159879173729502
+ 0.59161871962413248
+ 0.59163864856189807
+ 0.59165857855069026
+ 0.59167850959061064
+ 0.59169844168176089
+ 0.59171837482424261
+ 0.59173830901815572
+ 0.59175824426360057
+ 0.59177818056068154
+ 0.59179811790949444
+ 0.59181805631014528
+ 0.59183799576273433
+ 0.59185793626736016
+ 0.59187787782412604
+ 0.59189782043313355
+ 0.59191776409448138
+ 0.59193770880827412
+ 0.59195765457461058
+ 0.59197760139359401
+ 0.59199754926532311
+ 0.59201749818989946
+ 0.59203744816742643
+ 0.59205739919800437
+ 0.59207735128173467
+ 0.59209730441871944
+ 0.59211725860905873
+ 0.59213721385285301
+ 0.59215717015020541
+ 0.59217712750121776
+ 0.59219708590599029
+ 0.59221704536462505
+ 0.59223700587722206
+ 0.59225696744388623
+ 0.59227693006471505
+ 0.59229689373981176
+ 0.59231685846927973
+ 0.59233682425321621
+ 0.59235679109172623
+ 0.59237675898491016
+ 0.59239672793287113
+ 0.59241669793570839
+ 0.59243666899352376
+ 0.59245664110642049
+ 0.59247661427449905
+ 0.59249658849786158
+ 0.59251656377660977
+ 0.59253654011084556
+ 0.59255651750066962
+ 0.59257649594618378
+ 0.5925964754474915
+ 0.59261645600469326
+ 0.59263643761788976
+ 0.59265642028718424
+ 0.59267640401267885
+ 0.59269638879447395
+ 0.59271637463267324
+ 0.59273636152737719
+ 0.59275634947868783
+ 0.59277633848670719
+ 0.59279632855153741
+ 0.59281631967327897
+ 0.592836311852037
+ 0.59285630508790921
+ 0.59287629938100184
+ 0.59289629473141436
+ 0.59291629113924882
+ 0.59293628860460712
+ 0.59295628712759296
+ 0.59297628670830582
+ 0.59299628734685039
+ 0.59301628904332759
+ 0.59303629179783801
+ 0.59305629561048689
+ 0.59307630048137328
+ 0.59309630641060096
+ 0.59311631339827209
+ 0.59313632144448891
+ 0.59315633054935224
+ 0.59317634071296566
+ 0.5931963519354313
+ 0.5932163642168502
+ 0.59323637755732583
+ 0.59325639195696211
+ 0.59327640741585685
+ 0.5932964239341153
+ 0.59331644151183971
+ 0.59333646014913077
+ 0.59335647984609396
+ 0.59337650060282854
+ 0.5933965224194383
+ 0.59341654529602561
+ 0.59343656923269117
+ 0.59345659422954056
+ 0.59347662028667447
+ 0.59349664740419394
+ 0.59351667558220411
+ 0.59353670482080612
+ 0.5935567351201021
+ 0.59357676648019597
+ 0.59359679890118899
+ 0.59361683238318319
+ 0.5936368669262827
+ 0.59365690253058989
+ 0.59367693919620568
+ 0.59369697692323553
+ 0.59371701571177904
+ 0.59373705556194001
+ 0.59375709647382247
+ 0.59377713844752744
+ 0.59379718148315752
+ 0.5938172255808164
+ 0.59383727074060688
+ 0.59385731696263144
+ 0.593877364246991
+ 0.59389741259379125
+ 0.59391746200313456
+ 0.59393751247512205
+ 0.59395756400985655
+ 0.59397761660744319
+ 0.593997670267982
+ 0.59401772499157668
+ 0.59403778077833158
+ 0.59405783762834929
+ 0.59407789554173085
+ 0.59409795451858038
+ 0.5941180145590006
+ 0.59413807566309573
+ 0.59415813783096671
+ 0.59417820106271935
+ 0.59419826535845321
+ 0.59421833071827412
+ 0.59423839714228321
+ 0.59425846463058318
+ 0.59427853318328117
+ 0.59429860280047409
+ 0.59431867348227041
+ 0.59433874522876995
+ 0.59435881804007729
+ 0.594378891916296
+ 0.59439896685752802
+ 0.59441904286387726
+ 0.59443911993544651
+ 0.59445919807234027
+ 0.59447927727465955
+ 0.59449935754250893
+ 0.59451943887599235
+ 0.5945395212752117
+ 0.59455960474027081
+ 0.59457968927127269
+ 0.59459977486832027
+ 0.59461986153151924
+ 0.59463994926097119
+ 0.59466003805677892
+ 0.59468012791904679
+ 0.59470021884787905
+ 0.59472031084337718
+ 0.59474040390564586
+ 0.5947604980347877
+ 0.59478059323090726
+ 0.59480068949410592
+ 0.59482078682448969
+ 0.59484088522216294
+ 0.59486098468722581
+ 0.594881085219784
+ 0.59490118681993931
+ 0.59492128948779754
+ 0.59494139322346173
+ 0.59496149802703335
+ 0.59498160389861998
+ 0.59500171083832165
+ 0.59502181884624428
+ 0.59504192792248967
+ 0.59506203806716362
+ 0.59508214928036773
+ 0.59510226156220825
+ 0.59512237491278652
+ 0.59514248933220737
+ 0.59516260482057526
+ 0.59518272137799189
+ 0.59520283900456328
+ 0.59522295770039257
+ 0.5952430774655828
+ 0.59526319830023899
+ 0.59528332020446528
+ 0.59530344317836359
+ 0.59532356722203883
+ 0.59534369233559525
+ 0.59536381851913778
+ 0.5953839457727681
+ 0.5954040740965908
+ 0.59542420349071223
+ 0.59544433395523411
+ 0.59546446549026089
+ 0.59548459809589627
+ 0.59550473177224472
+ 0.59552486651941106
+ 0.59554500233749719
+ 0.59556513922660903
+ 0.59558527718685172
+ 0.59560541621832697
+ 0.59562555632113956
+ 0.5956456974953942
+ 0.59566583974119724
+ 0.59568598305864773
+ 0.59570612744785478
+ 0.59572627290891889
+ 0.59574641944194784
+ 0.59576656704704345
+ 0.59578671572431063
+ 0.59580686547385286
+ 0.59582701629577639
+ 0.59584716819018324
+ 0.59586732115718133
+ 0.59588747519687091
+ 0.59590763030935867
+ 0.59592778649474798
+ 0.59594794375314342
+ 0.59596810208465056
+ 0.59598826148937245
+ 0.59600842196741566
+ 0.59602858351888222
+ 0.59604874614387859
+ 0.59606890984250671
+ 0.59608907461487326
+ 0.59610924046108305
+ 0.59612940738123821
+ 0.59614957537544688
+ 0.59616974444381099
+ 0.59618991458643433
+ 0.59621008580342594
+ 0.59623025809488528
+ 0.59625043146092049
+ 0.59627060590163483
+ 0.59629078141713232
+ 0.59631095800751932
+ 0.59633113567290108
+ 0.59635131441337952
+ 0.59637149422906144
+ 0.59639167512005187
+ 0.59641185708645461
+ 0.59643204012837481
+ 0.59645222424591615
+ 0.59647240943918511
+ 0.59649259570828705
+ 0.59651278305332422
+ 0.59653297147440476
+ 0.59655316097163091
+ 0.59657335154510782
+ 0.59659354319494373
+ 0.59661373592123812
+ 0.59663392972410056
+ 0.59665412460363465
+ 0.59667432055994452
+ 0.59669451759313663
+ 0.59671471570331502
+ 0.59673491489058494
+ 0.59675511515505142
+ 0.5967753164968187
+ 0.59679551891599347
+ 0.59681572241267944
+ 0.59683592698698351
+ 0.59685613263900961
+ 0.59687633936886297
+ 0.59689654717664908
+ 0.59691675606247319
+ 0.59693696602644097
+ 0.59695717706865459
+ 0.59697738918922394
+ 0.59699760238825161
+ 0.59701781666584419
+ 0.59703803202210448
+ 0.59705824845713951
+ 0.59707846597105585
+ 0.59709868456395609
+ 0.59711890423594882
+ 0.5971391249871365
+ 0.59715934681762606
+ 0.59717956972752162
+ 0.59719979371693144
+ 0.59722001878595821
+ 0.5972402449347074
+ 0.59726047216328626
+ 0.59728070047180004
+ 0.59730092986035432
+ 0.59732116032905203
+ 0.59734139187800128
+ 0.59736162450730779
+ 0.5973818582170759
+ 0.59740209300741098
+ 0.59742232887842017
+ 0.59744256583020761
+ 0.59746280386288053
+ 0.59748304297654276
+ 0.59750328317130175
+ 0.59752352444726309
+ 0.59754376680453081
+ 0.59756401024321226
+ 0.59758425476341148
+ 0.59760450036523594
+ 0.59762474704879087
+ 0.59764499481418243
+ 0.59766524366151463
+ 0.59768549359089618
+ 0.59770574460243131
+ 0.5977259966962245
+ 0.59774624987238423
+ 0.59776650413101629
+ 0.59778675947222504
+ 0.59780701589611496
+ 0.59782727340279596
+ 0.59784753199237262
+ 0.59786779166494908
+ 0.59788805242063281
+ 0.59790831425953095
+ 0.59792857718174808
+ 0.59794884118738989
+ 0.59796910627656374
+ 0.59798937244937256
+ 0.59800963970592669
+ 0.5980299080463306
+ 0.59805017747069
+ 0.59807044797911091
+ 0.59809071957170079
+ 0.59811099224856545
+ 0.59813126600980793
+ 0.59815154085553868
+ 0.59817181678586195
+ 0.59819209380088534
+ 0.59821237190071341
+ 0.59823265108545354
+ 0.59825293135521163
+ 0.59827321271009382
+ 0.59829349515020769
+ 0.59831377867565605
+ 0.59833406328654937
+ 0.59835434898299389
+ 0.59837463576509264
+ 0.59839492363295321
+ 0.5984152125866844
+ 0.59843550262639233
+ 0.59845579375218028
+ 0.59847608596415736
+ 0.59849637926242805
+ 0.59851667364710137
+ 0.59853696911828358
+ 0.5985572656760777
+ 0.59857756332059453
+ 0.59859786205193999
+ 0.59861816187022032
+ 0.59863846277554023
+ 0.59865876476800739
+ 0.59867906784772806
+ 0.59869937201481116
+ 0.59871967726936171
+ 0.59873998361148562
+ 0.59876029104129236
+ 0.59878059955888507
+ 0.5988009091643729
+ 0.59882121985786219
+ 0.59884153163945919
+ 0.59886184450927171
+ 0.59888215846740434
+ 0.59890247351396797
+ 0.59892278964906587
+ 0.59894310687280605
+ 0.59896342518529455
+ 0.59898374458664072
+ 0.59900406507694959
+ 0.59902438665632729
+ 0.59904470932488174
+ 0.59906503308272085
+ 0.59908535792995088
+ 0.59910568386667828
+ 0.59912601089301087
+ 0.59914633900905667
+ 0.59916666821492037
+ 0.59918699851070878
+ 0.59920732989653236
+ 0.59922766237249492
+ 0.59924799593870692
+ 0.59926833059527085
+ 0.59928866634229727
+ 0.59930900317989433
+ 0.59932934110816571
+ 0.59934968012722201
+ 0.5993700202371669
+ 0.59939036143811131
+ 0.59941070373015903
+ 0.59943104711341932
+ 0.5994513915880002
+ 0.59947173715400826
+ 0.59949208381155006
+ 0.59951243156073231
+ 0.59953278040166436
+ 0.59955313033445301
+ 0.59957348135920463
+ 0.5995938334760289
+ 0.59961418668503108
+ 0.59963454098631908
+ 0.59965489638000102
+ 0.59967525286618373
+ 0.5996956104449751
+ 0.59971596911648206
+ 0.59973632888081263
+ 0.5997566897380735
+ 0.59977705168837436
+ 0.5997974147318218
+ 0.59981777886852128
+ 0.59983814409858383
+ 0.59985851042211602
+ 0.59987887783922345
+ 0.59989924635001557
+ 0.59991961595459919
+ 0.59993998665308423
+ 0.59996035844557583
+ 0.59998073133218222
+ 0.60000110531301321
+ 0.60002148038817416
+ 0.60004185655777342
+ 0.60006223382192048
+ 0.60008261218071957
+ 0.60010299163428193
+ 0.60012337218271428
+ 0.60014375382612495
+ 0.60016413656462098
+ 0.60018452039831072
+ 0.60020490532730086
+ 0.60022529135170144
+ 0.60024567847161925
+ 0.60026606668716287
+ 0.60028645599843911
+ 0.60030684640555798
+ 0.60032723790862474
+ 0.60034763050775097
+ 0.60036802420304214
+ 0.60038841899460516
+ 0.6004088148825516
+ 0.60042921186698683
+ 0.60044960994802077
+ 0.60047000912576221
+ 0.60049040940031639
+ 0.60051081077179203
+ 0.60053121324030045
+ 0.60055161680594737
+ 0.60057202146884126
+ 0.60059242722909068
+ 0.60061283408680277
+ 0.60063324204208768
+ 0.60065365109505231
+ 0.60067406124580669
+ 0.60069447249445673
+ 0.60071488484111224
+ 0.60073529828588201
+ 0.6007557128288733
+ 0.6007761284701959
+ 0.60079654520995585
+ 0.6008169630482646
+ 0.60083738198522785
+ 0.60085780202095573
+ 0.60087822315555717
+ 0.60089864538913917
+ 0.60091906872181178
+ 0.60093949315368111
+ 0.60095991868485854
+ 0.60098034531545164
+ 0.60100077304556887
+ 0.60102120187531771
+ 0.6010416318048083
+ 0.60106206283414798
+ 0.6010824949634469
+ 0.60110292819281397
+ 0.60112336252235654
+ 0.60114379795218342
+ 0.60116423448240486
+ 0.60118467211312665
+ 0.60120511084446215
+ 0.60122555067651451
+ 0.60124599160939685
+ 0.60126643364321641
+ 0.60128687677808224
+ 0.60130732101410322
+ 0.60132776635138829
+ 0.60134821279004624
+ 0.6013686603301861
+ 0.60138910897191533
+ 0.60140955871534574
+ 0.60143000956058479
+ 0.60145046150774006
+ 0.60147091455692203
+ 0.60149136870824094
+ 0.60151182396180303
+ 0.60153228031771877
+ 0.60155273777609852
+ 0.60157319633704842
+ 0.60159365600068049
+ 0.60161411676710208
+ 0.60163457863642267
+ 0.60165504160875227
+ 0.60167550568419881
+ 0.60169597086287274
+ 0.60171643714488021
+ 0.60173690453033479
+ 0.60175737301934396
+ 0.6017778426120155
+ 0.60179831330846001
+ 0.6018187851087865
+ 0.60183925801310434
+ 0.60185973202152376
+ 0.60188020713415291
+ 0.6019006833511007
+ 0.60192116067247781
+ 0.6019416390983936
+ 0.60196211862895688
+ 0.60198259926427733
+ 0.60200308100446387
+ 0.6020235638496273
+ 0.60204404779987553
+ 0.60206453285531758
+ 0.60208501901606559
+ 0.60210550628222759
+ 0.60212599465391281
+ 0.60214648413123051
+ 0.60216697471429148
+ 0.60218746640320509
+ 0.60220795919808034
+ 0.60222845309902695
+ 0.60224894810615426
+ 0.60226944421957418
+ 0.60228994143939341
+ 0.60231043976572285
+ 0.6023309391986732
+ 0.60235143973835226
+ 0.60237194138487127
+ 0.60239244413833926
+ 0.60241294799886735
+ 0.60243345296656348
+ 0.60245395904153842
+ 0.60247446622390177
+ 0.60249497451376433
+ 0.60251548391123411
+ 0.60253599441642225
+ 0.60255650602943955
+ 0.60257701875039538
+ 0.60259753257939808
+ 0.60261804751655978
+ 0.60263856356198875
+ 0.60265908071579599
+ 0.60267959897809098
+ 0.60270011834898329
+ 0.6027206388285854
+ 0.60274116041700554
+ 0.60276168311435308
+ 0.60278220692073925
+ 0.60280273183627497
+ 0.60282325786106872
+ 0.60284378499523117
+ 0.60286431323887224
+ 0.60288484259210295
+ 0.60290537305503444
+ 0.60292590462777329
+ 0.60294643731043385
+ 0.60296697110312425
+ 0.60298750600595397
+ 0.60300804201903602
+ 0.6030285791424782
+ 0.60304911737639355
+ 0.60306965672088875
+ 0.60309019717607637
+ 0.60311073874206778
+ 0.60313128141897254
+ 0.60315182520689925
+ 0.60317237010596036
+ 0.60319291611626602
+ 0.60321346323792702
+ 0.60323401147105338
+ 0.60325456081575513
+ 0.60327511127214339
+ 0.60329566284032787
+ 0.60331621552042003
+ 0.60333676931253122
+ 0.60335732421676991
+ 0.60337788023325012
+ 0.60339843736207777
+ 0.6034189956033682
+ 0.60343955495722856
+ 0.60346011542377176
+ 0.60348067700310615
+ 0.6035012396953463
+ 0.60352180350059892
+ 0.60354236841897713
+ 0.60356293445059084
+ 0.60358350159555141
+ 0.60360406985396886
+ 0.60362463922595477
+ 0.6036452097116205
+ 0.60366578131107618
+ 0.60368635402443183
+ 0.60370692785179891
+ 0.60372750279329035
+ 0.60374807884901338
+ 0.60376865601908247
+ 0.60378923430360609
+ 0.60380981370269593
+ 0.60383039421646501
+ 0.6038509758450219
+ 0.60387155858847841
+ 0.60389214244694434
+ 0.60391272742053448
+ 0.60393331350935597
+ 0.60395390071352195
+ 0.60397448903314244
+ 0.60399507846832923
+ 0.60401566901919401
+ 0.60403626068584837
+ 0.60405685346840099
+ 0.60407744736696667
+ 0.60409804238165243
+ 0.6041186385125733
+ 0.60413923575983774
+ 0.60415983412356056
+ 0.60418043360384899
+ 0.60420103420081639
+ 0.60422163591457434
+ 0.60424223874523475
+ 0.60426284269290786
+ 0.60428344775770415
+ 0.60430405393973663
+ 0.60432466123911743
+ 0.60434526965595647
+ 0.604365879190366
+ 0.60438648984245602
+ 0.60440710161234024
+ 0.60442771450012867
+ 0.60444832850593344
+ 0.60446894362986636
+ 0.60448955987203923
+ 0.60451017723256262
+ 0.60453079571154678
+ 0.60455141530910816
+ 0.60457203602535448
+ 0.60459265786039729
+ 0.60461328081435028
+ 0.60463390488732516
+ 0.60465453007943137
+ 0.60467515639078329
+ 0.60469578382149047
+ 0.60471641237166629
+ 0.60473704204142242
+ 0.60475767283086956
+ 0.60477830474011995
+ 0.60479893776928551
+ 0.60481957191847979
+ 0.60484020718781306
+ 0.604860843577395
+ 0.60488148108734319
+ 0.60490211971776386
+ 0.60492275946877228
+ 0.60494340034047878
+ 0.60496404233299728
+ 0.60498468544643813
+ 0.60500532968091358
+ 0.60502597503653588
+ 0.60504662151341715
+ 0.60506726911167097
+ 0.60508791783140803
+ 0.60510856767273913
+ 0.60512921863577795
+ 0.60514987072063664
+ 0.60517052392742599
+ 0.60519117825626112
+ 0.60521183370725129
+ 0.6052324902805104
+ 0.6052531479761506
+ 0.60527380679428266
+ 0.60529446673502196
+ 0.60531512779847763
+ 0.60533578998476356
+ 0.60535645329399212
+ 0.60537711772627389
+ 0.60539778328172456
+ 0.60541844996045313
+ 0.60543911776257364
+ 0.60545978668819855
+ 0.60548045673744
+ 0.60550112791041188
+ 0.6055218002072239
+ 0.60554247362799107
+ 0.60556314817282453
+ 0.60558382384183651
+ 0.60560450063514126
+ 0.60562517855285081
+ 0.60564585759507505
+ 0.60566653776193069
+ 0.60568721905352862
+ 0.60570790146997999
+ 0.60572858501140014
+ 0.60574926967790022
+ 0.60576995546959422
+ 0.60579064238659164
+ 0.60581133042900948
+ 0.60583201959695721
+ 0.60585270989054907
+ 0.60587340130989742
+ 0.60589409385511506
+ 0.60591478752631589
+ 0.60593548232361094
+ 0.60595617824711612
+ 0.60597687529694066
+ 0.60599757347319905
+ 0.60601827277600362
+ 0.60603897320546851
+ 0.60605967476170663
+ 0.60608037744483056
+ 0.60610108125495277
+ 0.60612178619218615
+ 0.60614249225664329
+ 0.60616319944843988
+ 0.60618390776768727
+ 0.60620461721449814
+ 0.60622532778898652
+ 0.60624603949126388
+ 0.60626675232144434
+ 0.60628746627964225
+ 0.60630818136597031
+ 0.60632889758053987
+ 0.60634961492346662
+ 0.60637033339486202
+ 0.60639105299483886
+ 0.60641177372351274
+ 0.60643249558099521
+ 0.60645321856740053
+ 0.60647394268284149
+ 0.60649466792743112
+ 0.60651539430128232
+ 0.60653612180451066
+ 0.60655685043722929
+ 0.60657758019954811
+ 0.60659831109158435
+ 0.60661904311344972
+ 0.60663977626525845
+ 0.60666051054712189
+ 0.60668124595915629
+ 0.60670198250147589
+ 0.6067227201741906
+ 0.60674345897741522
+ 0.60676419891126554
+ 0.60678493997585303
+ 0.60680568217129216
+ 0.6068264254976975
+ 0.60684716995517929
+ 0.60686791554385489
+ 0.60688866226383575
+ 0.60690941011523669
+ 0.60693015909817061
+ 0.60695090921275219
+ 0.60697166045909579
+ 0.60699241283731331
+ 0.60701316634751923
+ 0.60703392098982678
+ 0.60705467676435199
+ 0.60707543367120642
+ 0.60709619171050488
+ 0.60711695088236195
+ 0.60713771118688942
+ 0.60715847262420342
+ 0.60717923519441708
+ 0.6071999988976452
+ 0.60722076373399936
+ 0.60724152970359746
+ 0.60726229680654809
+ 0.60728306504297058
+ 0.60730383441297664
+ 0.60732460491667961
+ 0.60734537655419563
+ 0.60736614932563671
+ 0.60738692323111743
+ 0.60740769827075425
+ 0.60742847444465886
+ 0.60744925175294606
+ 0.60747003019572954
+ 0.6074908097731252
+ 0.60751159048524661
+ 0.60753237233220569
+ 0.60755315531412013
+ 0.60757393943110205
+ 0.60759472468326758
+ 0.60761551107072898
+ 0.60763629859360235
+ 0.60765708725200118
+ 0.60767787704603915
+ 0.60769866797583239
+ 0.60771946004149313
+ 0.60774025324313918
+ 0.60776104758088245
+ 0.60778184305483662
+ 0.60780263966511827
+ 0.60782343741184197
+ 0.60784423629512174
+ 0.60786503631507072
+ 0.6078858374718058
+ 0.60790663976543868
+ 0.60792744319608771
+ 0.60794824776386491
+ 0.6079690534688853
+ 0.60798986031126401
+ 0.6080106682911145
+ 0.60803147740855357
+ 0.60805228766369479
+ 0.60807309905665341
+ 0.60809391158754433
+ 0.6081147252564798
+ 0.60813554006357806
+ 0.60815635600895279
+ 0.60817717309271746
+ 0.60819799131498764
+ 0.60821881067588113
+ 0.6082396311755075
+ 0.60826045281398622
+ 0.60828127559142964
+ 0.60830209950795311
+ 0.60832292456367321
+ 0.60834375075870373
+ 0.60836457809315858
+ 0.60838540656715578
+ 0.60840623618080647
+ 0.60842706693422877
+ 0.60844789882753503
+ 0.60846873186084505
+ 0.60848956603426829
+ 0.60851040134792445
+ 0.60853123780192586
+ 0.60855207539638823
+ 0.608572914131428
+ 0.60859375400715932
+ 0.60861459502369752
+ 0.60863543718115798
+ 0.60865628047965625
+ 0.60867712491930615
+ 0.608697970500226
+ 0.60871881722252863
+ 0.60873966508632915
+ 0.60876051409174481
+ 0.6087813642388894
+ 0.60880221552787983
+ 0.60882306795883034
+ 0.60884392153185485
+ 0.60886477624707336
+ 0.6088856321045969
+ 0.60890648910454415
+ 0.60892734724702746
+ 0.60894820653216408
+ 0.60896906696007091
+ 0.60898992853086076
+ 0.60901079124465196
+ 0.60903165510155888
+ 0.60905252010169542
+ 0.60907338624518037
+ 0.60909425353212632
+ 0.60911512196265194
+ 0.60913599153686981
+ 0.60915686225489873
+ 0.60917773411685427
+ 0.60919860712284912
+ 0.60921948127300063
+ 0.60924035656742581
+ 0.60926123300623902
+ 0.6092821105895575
+ 0.60930298931749527
+ 0.6093238691901699
+ 0.60934475020769552
+ 0.60936563237019081
+ 0.60938651567776869
+ 0.60940740013054651
+ 0.60942828572863983
+ 0.60944917247216612
+ 0.6094700603612383
+ 0.60949094939597515
+ 0.60951183957649235
+ 0.60953273090290438
+ 0.6095536233753287
+ 0.60957451699388254
+ 0.60959541175867893
+ 0.60961630766983665
+ 0.60963720472747007
+ 0.60965810293169675
+ 0.60967900228263117
+ 0.6096999027803921
+ 0.60972080442509258
+ 0.6097417072168515
+ 0.60976261115578489
+ 0.60978351624200877
+ 0.60980442247563749
+ 0.60982532985679017
+ 0.60984623838558139
+ 0.60986714806212861
+ 0.6098880588865464
+ 0.60990897085895357
+ 0.60992988397946502
+ 0.60995079824819809
+ 0.60997171366526892
+ 0.6099926302307922
+ 0.61001354794488838
+ 0.61003446680766926
+ 0.6100553868192552
+ 0.61007630797976087
+ 0.61009723028930407
+ 0.61011815374799938
+ 0.61013907835596448
+ 0.61016000411331706
+ 0.61018093102017312
+ 0.61020185907664914
+ 0.61022278828286103
+ 0.61024371863892535
+ 0.61026465014496101
+ 0.61028558280108436
+ 0.61030651660740876
+ 0.61032745156405477
+ 0.61034838767113875
+ 0.61036932492877538
+ 0.61039026333708413
+ 0.61041120289617967
+ 0.61043214360617981
+ 0.61045308546720101
+ 0.61047402847936094
+ 0.61049497264277597
+ 0.61051591795756399
+ 0.61053686442384125
+ 0.61055781204172288
+ 0.61057876081132945
+ 0.61059971073277608
+ 0.61062066180618058
+ 0.6106416140316594
+ 0.61066256740932878
+ 0.61068352193930697
+ 0.61070447762171032
+ 0.61072543445665806
+ 0.61074639244426387
+ 0.61076735158464879
+ 0.61078831187792759
+ 0.6108092733242183
+ 0.61083023592363761
+ 0.61085119967630352
+ 0.61087216458233096
+ 0.61089313064184081
+ 0.61091409785494843
+ 0.61093506622177174
+ 0.61095603574242874
+ 0.61097700641703456
+ 0.61099797824570756
+ 0.61101895122856686
+ 0.61103992536572793
+ 0.61106090065730878
+ 0.61108187710342754
+ 0.61110285470419945
+ 0.61112383345974541
+ 0.61114481337018101
+ 0.61116579443562402
+ 0.61118677665619137
+ 0.61120776003200261
+ 0.61122874456317156
+ 0.61124973024982088
+ 0.61127071709206438
+ 0.61129170509002173
+ 0.61131269424380952
+ 0.61133368455354642
+ 0.6113546760193489
+ 0.61137566864133686
+ 0.61139666241962398
+ 0.61141765735433307
+ 0.61143865344557824
+ 0.61145965069347907
+ 0.61148064909815369
+ 0.61150164865971779
+ 0.61152264937829115
+ 0.61154365125399224
+ 0.61156465428693763
+ 0.61158565847724444
+ 0.61160666382503248
+ 0.61162767033041876
+ 0.61164867799352152
+ 0.61166968681445932
+ 0.61169069679334931
+ 0.6117117079303096
+ 0.61173272022545877
+ 0.61175373367891395
+ 0.61177474829079481
+ 0.61179576406121861
+ 0.61181678099030379
+ 0.61183779907816882
+ 0.61185881832493094
+ 0.61187983873070828
+ 0.6119008602956183
+ 0.61192188301978379
+ 0.61194290690331743
+ 0.6119639319463408
+ 0.61198495814896958
+ 0.61200598551132512
+ 0.61202701403352489
+ 0.61204804371568577
+ 0.61206907455792781
+ 0.61209010656036844
+ 0.61211113972312614
+ 0.61213217404632103
+ 0.6121532095300688
+ 0.6121742461744899
+ 0.6121952839797028
+ 0.61221632294582484
+ 0.61223736307297449
+ 0.61225840436127077
+ 0.61227944681083379
+ 0.6123004904217807
+ 0.61232153519422905
+ 0.61234258112829876
+ 0.6123636282241105
+ 0.61238467648177819
+ 0.6124057259014255
+ 0.61242677648316646
+ 0.61244782822712451
+ 0.61246888113341547
+ 0.61248993520215822
+ 0.61251099043347179
+ 0.6125320468274762
+ 0.612553104384289
+ 0.61257416310402912
+ 0.61259522298681546
+ 0.61261628403276847
+ 0.61263734624200528
+ 0.61265840961464524
+ 0.6126794741508057
+ 0.61270053985061002
+ 0.61272160671417264
+ 0.61274267474161548
+ 0.61276374393305633
+ 0.61278481428861387
+ 0.61280588580840734
+ 0.61282695849255708
+ 0.61284803234118068
+ 0.61286910735439892
+ 0.61289018353232905
+ 0.61291126087509173
+ 0.61293233938280456
+ 0.61295341905558809
+ 0.61297449989356156
+ 0.61299558189684533
+ 0.61301666506555574
+ 0.61303774939981182
+ 0.61305883489973578
+ 0.61307992156544655
+ 0.61310100939706225
+ 0.61312209839470311
+ 0.61314318855848704
+ 0.61316427988853461
+ 0.61318537238496507
+ 0.6132064660478993
+ 0.61322756087745478
+ 0.61324865687375085
+ 0.61326975403690831
+ 0.61329085236704495
+ 0.61331195186428289
+ 0.61333305252874004
+ 0.61335415436053564
+ 0.61337525735979059
+ 0.61339636152662402
+ 0.61341746686115395
+ 0.6134385733635026
+ 0.61345968103378778
+ 0.61348078987213051
+ 0.61350189987864856
+ 0.6135230110534643
+ 0.61354412339669717
+ 0.61356523690846343
+ 0.61358635158888719
+ 0.61360746743808625
+ 0.61362858445618018
+ 0.61364970264328977
+ 0.61367082199953316
+ 0.61369194252503412
+ 0.61371306421990912
+ 0.61373418708427785
+ 0.6137553111182612
+ 0.61377643632198153
+ 0.61379756269555574
+ 0.61381869023910307
+ 0.61383981895274764
+ 0.61386094883660602
+ 0.61388207989079913
+ 0.61390321211544818
+ 0.61392434551067143
+ 0.61394548007659122
+ 0.61396661581332568
+ 0.61398775272099615
+ 0.61400889079972198
+ 0.61403003004962442
+ 0.61405117047082325
+ 0.61407231206343937
+ 0.61409345482759115
+ 0.6141145987633998
+ 0.61413574387098646
+ 0.61415689015047081
+ 0.6141780376019742
+ 0.61419918622561476
+ 0.61422033602151505
+ 0.61424148698979519
+ 0.61426263913057455
+ 0.61428379244397324
+ 0.61430494693011395
+ 0.6143261025891148
+ 0.61434725942109891
+ 0.61436841742618431
+ 0.61438957660449245
+ 0.61441073695614479
+ 0.61443189848125945
+ 0.61445306117995946
+ 0.61447422505236604
+ 0.61449539009859777
+ 0.61451655631877578
+ 0.61453772371302029
+ 0.61455889228145411
+ 0.61458006202419557
+ 0.61460123294136759
+ 0.61462240503308885
+ 0.61464357829948202
+ 0.61466475274066568
+ 0.61468592835676295
+ 0.61470710514789362
+ 0.61472828311417949
+ 0.61474946225574023
+ 0.61477064257269598
+ 0.61479182406516986
+ 0.61481300673328343
+ 0.61483419057715361
+ 0.61485537559690506
+ 0.61487656179265637
+ 0.61489774916453221
+ 0.61491893771264949
+ 0.61494012743713156
+ 0.61496131833809831
+ 0.61498251041567153
+ 0.61500370366997281
+ 0.61502489810112382
+ 0.61504609370924324
+ 0.6150672904944543
+ 0.61508848845687858
+ 0.61510968759663487
+ 0.61513088791384785
+ 0.6151520894086363
+ 0.61517329208112181
+ 0.61519449593142495
+ 0.61521570095967015
+ 0.61523690716597623
+ 0.61525811455046509
+ 0.61527932311325695
+ 0.61530053285447661
+ 0.61532174377424154
+ 0.61534295587267629
+ 0.6153641691499
+ 0.61538538360603579
+ 0.61540659924120555
+ 0.61542781605552821
+ 0.61544903404912721
+ 0.61547025322212423
+ 0.6154914735746414
+ 0.61551269510679896
+ 0.61553391781871913
+ 0.61555514171052195
+ 0.61557636678233263
+ 0.61559759303426997
+ 0.61561882046645766
+ 0.61564004907901448
+ 0.61566127887206556
+ 0.61568250984573114
+ 0.61570374200013367
+ 0.61572497533539328
+ 0.61574620985163375
+ 0.61576744554897556
+ 0.61578868242754214
+ 0.61580992048745431
+ 0.61583115972883384
+ 0.61585240015180176
+ 0.61587364175648274
+ 0.61589488454299757
+ 0.61591612851146693
+ 0.6159373736620144
+ 0.61595861999476054
+ 0.61597986750983069
+ 0.61600111620734255
+ 0.61602236608742111
+ 0.61604361715018696
+ 0.61606486939576421
+ 0.61608612282427178
+ 0.61610737743583499
+ 0.61612863323057609
+ 0.61614989020861421
+ 0.61617114837007481
+ 0.61619240771507844
+ 0.61621366824374757
+ 0.61623492995620599
+ 0.61625619285257283
+ 0.61627745693297353
+ 0.61629872219753046
+ 0.61631998864636273
+ 0.61634125627959613
+ 0.61636252509735256
+ 0.61638379509975161
+ 0.61640506628692016
+ 0.61642633865897767
+ 0.61644761221604638
+ 0.61646888695825175
+ 0.61649016288571334
+ 0.61651143999855507
+ 0.61653271829690071
+ 0.61655399778086983
+ 0.6165752784505879
+ 0.61659656030617604
+ 0.61661784334775649
+ 0.61663912757545347
+ 0.61666041298938934
+ 0.61668169958968533
+ 0.61670298737646678
+ 0.61672427634985483
+ 0.61674556650997059
+ 0.61676685785694252
+ 0.6167881503908873
+ 0.6168094441119305
+ 0.61683073902019481
+ 0.61685203511580267
+ 0.61687333239887843
+ 0.61689463086954299
+ 0.6169159305279206
+ 0.61693723137413403
+ 0.61695853340830742
+ 0.61697983663056188
+ 0.61700114104102022
+ 0.61702244663980654
+ 0.61704375342704498
+ 0.61706506140285711
+ 0.61708637056736682
+ 0.61710768092069557
+ 0.61712899246296904
+ 0.61715030519431013
+ 0.61717161911483986
+ 0.6171929342246828
+ 0.61721425052396173
+ 0.61723556801280244
+ 0.61725688669132461
+ 0.61727820655965271
+ 0.61729952761791118
+ 0.61732084986622282
+ 0.61734217330471053
+ 0.61736349793349865
+ 0.61738482375271009
+ 0.61740615076246785
+ 0.61742747896289485
+ 0.61744880835411675
+ 0.61747013893625546
+ 0.61749147070943344
+ 0.61751280367377714
+ 0.6175341378294078
+ 0.61755547317644988
+ 0.61757680971502793
+ 0.61759814744526353
+ 0.61761948636728115
+ 0.61764082648120533
+ 0.61766216778715766
+ 0.61768351028526414
+ 0.61770485397564789
+ 0.61772619885843205
+ 0.61774754493374107
+ 0.61776889220169817
+ 0.61779024066242638
+ 0.61781159031605204
+ 0.6178329411626966
+ 0.61785429320248464
+ 0.61787564643554105
+ 0.61789700086198884
+ 0.61791835648195137
+ 0.61793971329555308
+ 0.61796107130291889
+ 0.61798243050417045
+ 0.61800379089943558
+ 0.61802515248883438
+ 0.61804651527249321
+ 0.61806787925053674
+ 0.61808924442308677
+ 0.6181106107902683
+ 0.6181319783522059
+ 0.61815334710902292
+ 0.6181747170608457
+ 0.61819608820779626
+ 0.61821746054999904
+ 0.6182388340875794
+ 0.61826020882066024
+ 0.61828158474936667
+ 0.61830296187382361
+ 0.61832434019415294
+ 0.61834571971048258
+ 0.61836710042293441
+ 0.61838848233163346
+ 0.61840986543670451
+ 0.61843124973827124
+ 0.61845263523645844
+ 0.61847402193139134
+ 0.61849540982319151
+ 0.61851679891198885
+ 0.61853818919790227
+ 0.61855958068105976
+ 0.61858097336158635
+ 0.61860236723960427
+ 0.6186237623152383
+ 0.61864515858861369
+ 0.61866655605985554
+ 0.61868795472909044
+ 0.61870935459643883
+ 0.61873075566202751
+ 0.61875215792598326
+ 0.61877356138842643
+ 0.61879496604948536
+ 0.61881637190928362
+ 0.618837778967948
+ 0.61885918722559907
+ 0.61888059668236495
+ 0.61890200733836975
+ 0.61892341919373983
+ 0.61894483224859742
+ 0.61896624650306797
+ 0.61898766195727828
+ 0.6190090786113519
+ 0.61903049646541575
+ 0.6190519155195906
+ 0.61907333577400625
+ 0.61909475722878515
+ 0.61911617988405387
+ 0.61913760373993643
+ 0.61915902879655815
+ 0.6191804550540444
+ 0.61920188251252051
+ 0.61922331117211193
+ 0.61924474103294269
+ 0.61926617209513934
+ 0.61928760435882613
+ 0.61930903782412983
+ 0.61933047249117457
+ 0.61935190836008402
+ 0.61937334543098688
+ 0.61939478370400858
+ 0.61941622317927159
+ 0.61943766385690147
+ 0.61945910573702656
+ 0.6194805488197711
+ 0.61950199310525922
+ 0.61952343859361758
+ 0.61954488528497198
+ 0.61956633317944654
+ 0.61958778227716826
+ 0.61960923257826273
+ 0.61963068408285571
+ 0.61965213679107112
+ 0.61967359070303618
+ 0.61969504581887658
+ 0.61971650213871632
+ 0.61973795966268275
+ 0.61975941839090143
+ 0.61978087832349826
+ 0.61980233946059715
+ 0.61982380180232699
+ 0.6198452653488119
+ 0.61986673010017779
+ 0.61988819605655021
+ 0.61990966321805496
+ 0.61993113158481961
+ 0.61995260115696793
+ 0.61997407193462917
+ 0.61999554391792433
+ 0.62001701710698243
+ 0.62003849150192925
+ 0.62005996710289191
+ 0.62008144390999376
+ 0.62010292192336314
+ 0.62012440114312473
+ 0.62014588156940587
+ 0.6201673632023309
+ 0.62018884604203028
+ 0.62021033008862403
+ 0.62023181534224237
+ 0.6202533018030113
+ 0.62027478947105552
+ 0.62029627834650225
+ 0.62031776842947761
+ 0.62033925972010895
+ 0.62036075221852083
+ 0.62038224592484081
+ 0.62040374083919492
+ 0.62042523696170926
+ 0.62044673429250974
+ 0.62046823283172403
+ 0.6204897325794797
+ 0.62051123353589965
+ 0.62053273570111345
+ 0.6205542390752451
+ 0.62057574365842427
+ 0.62059724945077521
+ 0.62061875645242581
+ 0.62064026466350064
+ 0.62066177408413037
+ 0.62068328471443657
+ 0.62070479655454869
+ 0.62072630960459418
+ 0.62074782386469796
+ 0.62076933933498757
+ 0.62079085601558948
+ 0.62081237390663124
+ 0.6208338930082391
+ 0.62085541332053962
+ 0.62087693484366047
+ 0.6208984575777261
+ 0.62091998152286776
+ 0.62094150667920855
+ 0.62096303304687639
+ 0.62098456062599927
+ 0.62100608941670321
+ 0.62102761941911622
+ 0.62104915063336341
+ 0.62107068305957391
+ 0.62109221669787273
+ 0.62111375154838921
+ 0.62113528761124981
+ 0.62115682488657964
+ 0.62117836337450938
+ 0.62119990307516271
+ 0.62122144398866752
+ 0.62124298611515316
+ 0.62126452945474508
+ 0.62128607400757074
+ 0.62130761977375848
+ 0.62132916675343497
+ 0.62135071494672633
+ 0.62137226435376103
+ 0.62139381497466539
+ 0.62141536680957055
+ 0.62143691985859861
+ 0.62145847412188071
+ 0.62148002959954207
+ 0.62150158629171215
+ 0.62152314419851773
+ 0.62154470332008371
+ 0.62156626365654155
+ 0.62158782520801792
+ 0.62160938797463916
+ 0.6216309519565324
+ 0.62165251715382708
+ 0.62167408356665177
+ 0.62169565119512971
+ 0.62171722003939256
+ 0.62173879009956678
+ 0.6217603613757795
+ 0.62178193386816016
+ 0.62180350757683422
+ 0.62182508250193158
+ 0.62184665864357724
+ 0.62186823600190289
+ 0.62188981457703518
+ 0.62191139436909959
+ 0.62193297537822601
+ 0.62195455760454255
+ 0.62197614104817645
+ 0.62199772570925582
+ 0.62201931158790769
+ 0.6220408986842636
+ 0.62206248699844602
+ 0.62208407653058906
+ 0.62210566728081551
+ 0.62212725924925671
+ 0.62214885243603979
+ 0.62217044684129319
+ 0.62219204246514526
+ 0.62221363930772322
+ 0.62223523736915543
+ 0.62225683664957221
+ 0.62227843714909736
+ 0.62230003886786411
+ 0.62232164180599792
+ 0.62234324596362756
+ 0.62236485134088282
+ 0.62238645793788971
+ 0.62240806575477681
+ 0.62242967479167544
+ 0.62245128504871006
+ 0.62247289652601223
+ 0.62249450922371063
+ 0.62251612314192939
+ 0.62253773828080183
+ 0.62255935464045375
+ 0.62258097222101505
+ 0.62260259102261484
+ 0.62262421104538024
+ 0.62264583228943993
+ 0.62266745475492269
+ 0.62268907844195898
+ 0.62271070335067435
+ 0.62273232948120083
+ 0.62275395683366419
+ 0.62277558540819467
+ 0.62279721520492126
+ 0.62281884622397266
+ 0.62284047846547796
+ 0.62286211192956442
+ 0.62288374661636225
+ 0.62290538252600081
+ 0.62292701965860697
+ 0.62294865801431165
+ 0.62297029759324363
+ 0.62299193839553024
+ 0.62301358042130217
+ 0.6230352236706882
+ 0.62305686814381589
+ 0.62307851384081581
+ 0.62310016076181829
+ 0.62312180890694968
+ 0.62314345827633877
+ 0.62316510887011767
+ 0.62318676068841405
+ 0.62320841373135683
+ 0.62323006799907665
+ 0.62325172349169977
+ 0.62327338020935807
+ 0.62329503815218068
+ 0.6233166973202956
+ 0.62333835771383306
+ 0.62336001933292229
+ 0.62338168217769263
+ 0.62340334624827332
+ 0.62342501154479335
+ 0.62344667806738208
+ 0.62346834581617161
+ 0.62349001479128674
+ 0.62351168499286125
+ 0.62353335642102437
+ 0.62355502907590232
+ 0.62357670295762602
+ 0.62359837806632767
+ 0.62362005440213342
+ 0.62364173196517603
+ 0.6236634107555814
+ 0.62368509077348211
+ 0.62370677201900737
+ 0.62372845449228664
+ 0.62375013819344927
+ 0.62377182312262636
+ 0.62379350927994548
+ 0.62381519666553775
+ 0.62383688527953407
+ 0.62385857512206233
+ 0.62388026619325343
+ 0.62390195849323715
+ 0.62392365202214251
+ 0.62394534678010238
+ 0.62396704276724169
+ 0.62398873998369575
+ 0.62401043842959136
+ 0.62403213810505931
+ 0.62405383901022937
+ 0.62407554114523389
+ 0.6240972445101981
+ 0.62411894910525756
+ 0.62414065493053894
+ 0.6241623619861747
+ 0.62418407027229306
+ 0.6242057797890237
+ 0.62422749053649917
+ 0.62424920251484761
+ 0.62427091572420179
+ 0.62429263016468983
+ 0.62431434583644307
+ 0.62433606273959108
+ 0.62435778087426519
+ 0.62437950024059496
+ 0.62440122083871186
+ 0.62442294266874543
+ 0.62444466573082569
+ 0.62446639002508353
+ 0.62448811555165074
+ 0.62450984231065532
+ 0.62453157030223017
+ 0.62455329952650507
+ 0.62457502998360992
+ 0.62459676167367761
+ 0.62461849459683505
+ 0.6246402287532149
+ 0.62466196414295039
+ 0.62468370076616653
+ 0.62470543862299965
+ 0.62472717771357633
+ 0.62474891803802979
+ 0.62477065959649125
+ 0.6247924023890894
+ 0.62481414641595567
+ 0.62483589167722131
+ 0.62485763817301665
+ 0.62487938590347458
+ 0.62490113486872356
+ 0.62492288506889515
+ 0.62494463650412269
+ 0.62496638917453429
+ 0.62498814308026196
+ 0.62500989822143549
+ 0.62503165459818799
+ 0.62505341221064981
+ 0.62507517105895238
+ 0.62509693114322584
+ 0.62511869246360208
+ 0.62514045502021243
+ 0.62516221881318734
+ 0.62518398384265839
+ 0.62520575010875712
+ 0.6252275176116141
+ 0.6252492863513609
+ 0.62527105632812907
+ 0.62529282754205062
+ 0.62531459999325578
+ 0.62533637368187622
+ 0.62535814860804229
+ 0.62537992477188875
+ 0.62540170217354307
+ 0.62542348081313826
+ 0.62544526069080653
+ 0.62546704180667945
+ 0.62548882416088913
+ 0.62551060775356426
+ 0.62553239258483806
+ 0.62555417865484142
+ 0.6255759659637089
+ 0.62559775451156796
+ 0.62561954429855371
+ 0.62564133532479649
+ 0.62566312759042675
+ 0.62568492109557949
+ 0.62570671584038207
+ 0.62572851182496969
+ 0.62575030904947271
+ 0.62577210751402479
+ 0.62579390721875494
+ 0.62581570816379661
+ 0.62583751034928203
+ 0.62585931377534154
+ 0.62588111844210903
+ 0.62590292434971628
+ 0.62592473149829408
+ 0.62594653988797455
+ 0.62596834951888991
+ 0.62599016039117217
+ 0.62601197250495511
+ 0.62603378586036773
+ 0.62605560045754527
+ 0.62607741629661706
+ 0.62609923337771667
+ 0.62612105170097654
+ 0.62614287126653012
+ 0.62616469207450698
+ 0.62618651412504045
+ 0.62620833741826176
+ 0.62623016195430448
+ 0.62625198773330237
+ 0.62627381475538491
+ 0.62629564302068708
+ 0.62631747252933867
+ 0.6263393032814748
+ 0.6263611352772247
+ 0.62638296851672404
+ 0.62640480300010204
+ 0.6264266387274956
+ 0.62644847569903261
+ 0.62647031391484864
+ 0.62649215337507447
+ 0.62651399407984565
+ 0.62653583602929164
+ 0.62655767922354488
+ 0.62657952366274083
+ 0.6266013693470105
+ 0.62662321627648798
+ 0.62664506445130275
+ 0.62666691387159024
+ 0.62668876453748323
+ 0.62671061644911408
+ 0.62673246960661388
+ 0.62675432401011844
+ 0.62677617965975863
+ 0.62679803655567012
+ 0.62681989469798116
+ 0.62684175408682719
+ 0.62686361472234242
+ 0.6268854766046581
+ 0.62690733973391
+ 0.62692920411022601
+ 0.62695106973374359
+ 0.62697293660459374
+ 0.6269948047229108
+ 0.62701667408882755
+ 0.62703854470247533
+ 0.6270604165639897
+ 0.62708228967350343
+ 0.62710416403114955
+ 0.62712603963705904
+ 0.62714791649136958
+ 0.62716979459421218
+ 0.6271916739457184
+ 0.62721355454602401
+ 0.6272354363952618
+ 0.62725731949356478
+ 0.62727920384106572
+ 0.62730108943790064
+ 0.62732297628420086
+ 0.62734486438009951
+ 0.62736675372572914
+ 0.62738864432122765
+ 0.62741053616672471
+ 0.62743242926235476
+ 0.6274543236082526
+ 0.62747621920454955
+ 0.6274981160513815
+ 0.62752001414888026
+ 0.62754191349718014
+ 0.62756381409641737
+ 0.62758571594672197
+ 0.62760761904822848
+ 0.62762952340107281
+ 0.6276514290053854
+ 0.62767333586130369
+ 0.62769524396895948
+ 0.62771715332848721
+ 0.62773906394001866
+ 0.62776097580369139
+ 0.62778288891963718
+ 0.62780480328799082
+ 0.6278267189088852
+ 0.62784863578245376
+ 0.62787055390883273
+ 0.62789247328815556
+ 0.62791439392055648
+ 0.62793631580616771
+ 0.62795823894512537
+ 0.62798016333756279
+ 0.62800208898361343
+ 0.62802401588341328
+ 0.62804594403709435
+ 0.62806787344479309
+ 0.62808980410664272
+ 0.62811173602277681
+ 0.62813366919333147
+ 0.62815560361844014
+ 0.62817753929823639
+ 0.6281994762328551
+ 0.62822141442243129
+ 0.62824335386709818
+ 0.62826529456699087
+ 0.62828723652224439
+ 0.62830917973299361
+ 0.62833112419937065
+ 0.62835306992151196
+ 0.62837501689955111
+ 0.62839696513362442
+ 0.62841891462386446
+ 0.62844086537040722
+ 0.62846281737338661
+ 0.62848477063293751
+ 0.62850672514919537
+ 0.62852868092229341
+ 0.62855063795236699
+ 0.62857259623955275
+ 0.62859455578398282
+ 0.62861651658579232
+ 0.6286384786451179
+ 0.62866044196209181
+ 0.62868240653685237
+ 0.62870437236953158
+ 0.6287263394602649
+ 0.62874830780918889
+ 0.62877027741643587
+ 0.62879224828214419
+ 0.62881422040644608
+ 0.62883619378947675
+ 0.62885816843137465
+ 0.62888014433227057
+ 0.62890212149230118
+ 0.62892409991160214
+ 0.62894607959030857
+ 0.62896806052855592
+ 0.62899004272647641
+ 0.62901202618421026
+ 0.62903401090188971
+ 0.6290559968796503
+ 0.62907798411762716
+ 0.62909997261595751
+ 0.6291219623747738
+ 0.62914395339421458
+ 0.62916594567441209
+ 0.62918793921550353
+ 0.62920993401762426
+ 0.62923193008091005
+ 0.62925392740549468
+ 0.62927592599151527
+ 0.62929792583910604
+ 0.62931992694840544
+ 0.62934192931954624
+ 0.62936393295266524
+ 0.62938593784789831
+ 0.62940794400537947
+ 0.62942995142524594
+ 0.62945196010763327
+ 0.62947397005267569
+ 0.62949598126051198
+ 0.62951799373127471
+ 0.62954000746510252
+ 0.62956202246212845
+ 0.62958403872249091
+ 0.62960605624632426
+ 0.62962807503376439
+ 0.62965009508494674
+ 0.62967211640000897
+ 0.62969413897908666
+ 0.62971616282231424
+ 0.6297381879298305
+ 0.62976021430176832
+ 0.62978224193826648
+ 0.62980427083945933
+ 0.6298263010054812
+ 0.62984833243647276
+ 0.62987036513256811
+ 0.62989239909390338
+ 0.62991443432061434
+ 0.62993647081283699
+ 0.62995850857070745
+ 0.62998054759436295
+ 0.63000258788394092
+ 0.63002462943957471
+ 0.6300466722614031
+ 0.63006871634956063
+ 0.63009076170418621
+ 0.63011280832541317
+ 0.63013485621338039
+ 0.630156905368224
+ 0.63017895579007854
+ 0.6302010074790817
+ 0.63022306043537102
+ 0.63024511465908251
+ 0.63026717015035261
+ 0.63028922690931732
+ 0.63031128493611421
+ 0.63033334423087795
+ 0.63035540479374952
+ 0.63037746662486027
+ 0.6303995297243512
+ 0.63042159409235687
+ 0.63044365972901506
+ 0.63046572663446065
+ 0.63048779480883266
+ 0.63050986425226907
+ 0.63053193496490323
+ 0.63055400694687269
+ 0.63057608019831701
+ 0.63059815471937097
+ 0.63062023051017091
+ 0.63064230757085626
+ 0.63066438590156315
+ 0.63068646550242813
+ 0.63070854637358775
+ 0.6307306285151798
+ 0.63075271192734217
+ 0.63077479661020974
+ 0.63079688256392208
+ 0.63081896978861562
+ 0.63084105828442538
+ 0.63086314805149246
+ 0.63088523908995164
+ 0.63090733139994104
+ 0.6309294249815971
+ 0.63095151983505804
+ 0.63097361596046042
+ 0.63099571335794202
+ 0.63101781202763985
+ 0.63103991196969322
+ 0.63106201318423738
+ 0.63108411567141032
+ 0.6311062194313487
+ 0.63112832446419376
+ 0.63115043077007771
+ 0.63117253834914311
+ 0.63119464720152374
+ 0.63121675732735927
+ 0.63123886872678636
+ 0.63126098139994324
+ 0.63128309534696836
+ 0.63130521056799671
+ 0.63132732706316985
+ 0.63134944483262256
+ 0.63137156387649374
+ 0.63139368419491992
+ 0.63141580578804091
+ 0.63143792865599346
+ 0.63146005279891626
+ 0.6314821782169473
+ 0.63150430491022203
+ 0.63152643287888199
+ 0.63154856212306254
+ 0.63157069264290355
+ 0.63159282443854059
+ 0.63161495751011332
+ 0.63163709185776051
+ 0.63165922748161885
+ 0.63168136438182709
+ 0.63170350255852348
+ 0.63172564201184511
+ 0.63174778274193211
+ 0.63176992474892146
+ 0.63179206803295163
+ 0.63181421259415982
+ 0.63183635843268748
+ 0.63185850554866874
+ 0.63188065394224524
+ 0.63190280361355256
+ 0.63192495456273234
+ 0.63194710678992172
+ 0.63196926029525635
+ 0.63199141507887957
+ 0.63201357114092527
+ 0.63203572848153522
+ 0.63205788710084676
+ 0.63208004699899845
+ 0.63210220817612772
+ 0.63212437063237625
+ 0.63214653436787971
+ 0.63216869938277842
+ 0.63219086567720828
+ 0.6322130332513124
+ 0.63223520210522666
+ 0.63225737223909018
+ 0.63227954365304273
+ 0.63230171634722065
+ 0.63232389032176572
+ 0.63234606557681516
+ 0.63236824211250953
+ 0.63239041992898448
+ 0.63241259902638225
+ 0.63243477940483861
+ 0.63245696106449723
+ 0.6324791440054921
+ 0.63250132822796412
+ 0.63252351373205373
+ 0.63254570051789827
+ 0.63256788858563695
+ 0.63259007793541011
+ 0.63261226856735531
+ 0.6326344604816132
+ 0.63265665367832136
+ 0.63267884815762176
+ 0.63270104391965065
+ 0.63272324096454857
+ 0.63274543929245464
+ 0.63276763890350807
+ 0.63278983979784942
+ 0.63281204197561469
+ 0.63283424543694644
+ 0.63285645018198355
+ 0.63287865621086525
+ 0.63290086352373109
+ 0.63292307212072152
+ 0.63294528200197275
+ 0.63296749316762713
+ 0.63298970561782242
+ 0.63301191935270085
+ 0.6330341343724003
+ 0.63305635067706012
+ 0.63307856826682107
+ 0.63310078714182094
+ 0.63312300730220217
+ 0.63314522874810109
+ 0.63316745147966147
+ 0.63318967549701999
+ 0.63321190080031731
+ 0.63323412738969287
+ 0.63325635526528778
+ 0.63327858442724139
+ 0.63330081487569301
+ 0.63332304661078243
+ 0.63334527963265019
+ 0.63336751394143775
+ 0.63338974953728133
+ 0.63341198642032515
+ 0.63343422459070564
+ 0.63345646404856526
+ 0.63347870479404378
+ 0.63350094682728075
+ 0.63352319014841563
+ 0.63354543475759129
+ 0.63356768065494395
+ 0.63358992784061663
+ 0.63361217631475031
+ 0.63363442607748321
+ 0.6336566771289549
+ 0.63367892946930815
+ 0.63370118309868118
+ 0.63372343801721676
+ 0.63374569422505433
+ 0.63376795172233258
+ 0.63379021050919393
+ 0.63381247058577683
+ 0.63383473195222551
+ 0.63385699460867673
+ 0.63387925855527327
+ 0.6339015237921537
+ 0.63392379031946056
+ 0.63394605813733396
+ 0.63396832724591357
+ 0.63399059764534227
+ 0.63401286933575707
+ 0.6340351423173024
+ 0.63405741659011661
+ 0.63407969215434268
+ 0.63410196901011895
+ 0.63412424715758697
+ 0.63414652659688819
+ 0.63416880732816416
+ 0.63419108935155488
+ 0.63421337266719879
+ 0.63423565727524189
+ 0.6342579431758214
+ 0.63428023036908043
+ 0.63430251885515865
+ 0.63432480863419649
+ 0.63434709970633707
+ 0.63436939207171872
+ 0.63439168573048643
+ 0.63441398068277843
+ 0.63443627692873672
+ 0.63445857446850129
+ 0.63448087330221559
+ 0.63450317343001938
+ 0.63452547485205313
+ 0.63454777756846159
+ 0.63457008157938199
+ 0.63459238688495734
+ 0.63461469348532973
+ 0.63463700138063928
+ 0.63465931057102931
+ 0.63468162105663861
+ 0.6347039328376104
+ 0.63472624591408522
+ 0.6347485602862063
+ 0.63477087595411263
+ 0.63479319291794889
+ 0.63481551117785395
+ 0.6348378307339716
+ 0.63486015158644016
+ 0.63488247373540496
+ 0.6349047971810049
+ 0.63492712192338496
+ 0.63494944796268382
+ 0.63497177529904392
+ 0.6349941039326068
+ 0.63501643386351481
+ 0.63503876509191137
+ 0.63506109761793705
+ 0.63508343144173229
+ 0.63510576656344231
+ 0.63512810298320443
+ 0.63515044070116411
+ 0.63517277971746322
+ 0.63519512003224254
+ 0.63521746164564397
+ 0.63523980455780971
+ 0.63526214876888365
+ 0.63528449427900624
+ 0.63530684108831981
+ 0.63532918919696502
+ 0.63535153860508853
+ 0.63537388931282812
+ 0.63539624132032768
+ 0.63541859462772909
+ 0.63544094923517658
+ 0.63546330514280902
+ 0.63548566235077208
+ 0.63550802085920644
+ 0.63553038066825429
+ 0.63555274177805798
+ 0.63557510418876173
+ 0.63559746790050442
+ 0.63561983291343327
+ 0.63564219922768761
+ 0.63566456684341133
+ 0.6356869357607452
+ 0.63570930597983344
+ 0.63573167750081827
+ 0.63575405032384236
+ 0.63577642444904958
+ 0.63579879987657939
+ 0.63582117660657722
+ 0.63584355463918596
+ 0.63586593397454638
+ 0.63588831461280393
+ 0.63591069655409838
+ 0.63593307979857527
+ 0.63595546434637562
+ 0.63597785019764352
+ 0.63600023735252165
+ 0.6360226258111511
+ 0.63604501557367765
+ 0.63606740664024397
+ 0.63608979901099105
+ 0.63611219268606323
+ 0.63613458766560305
+ 0.63615698394975628
+ 0.63617938153866282
+ 0.63620178043246689
+ 0.63622418063131114
+ 0.63624658213533825
+ 0.63626898494469419
+ 0.63629138905951876
+ 0.63631379447995906
+ 0.63633620120615531
+ 0.63635860923825149
+ 0.63638101857639051
+ 0.63640342922071858
+ 0.63642584117137513
+ 0.63644825442850783
+ 0.63647066899225491
+ 0.63649308486276568
+ 0.63651550204017959
+ 0.63653792052464142
+ 0.63656034031629405
+ 0.63658276141528192
+ 0.63660518382174802
+ 0.63662760753583691
+ 0.6366500325576917
+ 0.63667245888745538
+ 0.6366948865252724
+ 0.63671731547128751
+ 0.63673974572564362
+ 0.63676217728848228
+ 0.63678461015995136
+ 0.63680704434019231
+ 0.63682947982934979
+ 0.63685191662756546
+ 0.63687435473498688
+ 0.63689679415175449
+ 0.63691923487801572
+ 0.63694167691391246
+ 0.63696412025958782
+ 0.63698656491518812
+ 0.63700901088085504
+ 0.6370314581567349
+ 0.63705390674297246
+ 0.63707635663970807
+ 0.63709880784708939
+ 0.63712126036525984
+ 0.63714371419436278
+ 0.63716616933454306
+ 0.63718862578594404
+ 0.63721108354871048
+ 0.63723354262298892
+ 0.63725600300892116
+ 0.63727846470665217
+ 0.6373009277163254
+ 0.6373233920380873
+ 0.6373458576720813
+ 0.63736832461845094
+ 0.63739079287734257
+ 0.63741326244889984
+ 0.63743573333326786
+ 0.63745820553058974
+ 0.63748067904101102
+ 0.63750315386467804
+ 0.63752563000173279
+ 0.6375481074523206
+ 0.63757058621658635
+ 0.63759306629467527
+ 0.63761554768673245
+ 0.63763803039290146
+ 0.63766051441332772
+ 0.63768299974815612
+ 0.637705486397532
+ 0.637727974361599
+ 0.63775046364050403
+ 0.63777295423438907
+ 0.637795446143401
+ 0.63781793936768638
+ 0.63784043390738787
+ 0.63786292976265047
+ 0.63788542693361938
+ 0.63790792542044172
+ 0.63793042522325971
+ 0.63795292634222156
+ 0.63797542877746993
+ 0.63799793252915138
+ 0.63802043759741001
+ 0.63804294398239259
+ 0.638065451684243
+ 0.6380879607031068
+ 0.63811047103913099
+ 0.63813298269245777
+ 0.63815549566323593
+ 0.63817800995160934
+ 0.63820052555772178
+ 0.63822304248172212
+ 0.6382455607237526
+ 0.63826808028396198
+ 0.6382906011624927
+ 0.63831312335949186
+ 0.63833564687510502
+ 0.63835817170947795
+ 0.63838069786275753
+ 0.63840322533508498
+ 0.63842575412661051
+ 0.63844828423747824
+ 0.63847081566783381
+ 0.6384933484178229
+ 0.63851588248759128
+ 0.63853841787728605
+ 0.63856095458705153
+ 0.63858349261703362
+ 0.63860603196738086
+ 0.63862857263823447
+ 0.638651114629745
+ 0.638673657942055
+ 0.63869620257531345
+ 0.63871874852966304
+ 0.63874129580525274
+ 0.63876384440222844
+ 0.63878639432073436
+ 0.6388089455609165
+ 0.63883149812292528
+ 0.63885405200690204
+ 0.63887660721299422
+ 0.63889916374134936
+ 0.63892172159211325
+ 0.63894428076543208
+ 0.63896684126145165
+ 0.63898940308031804
+ 0.63901196622218037
+ 0.63903453068718152
+ 0.63905709647546904
+ 0.6390796635871907
+ 0.63910223202249228
+ 0.63912480178151854
+ 0.63914737286441858
+ 0.63916994527133852
+ 0.63919251900242446
+ 0.63921509405782106
+ 0.63923767043767887
+ 0.63926024814214133
+ 0.63928282717135587
+ 0.63930540752547049
+ 0.63932798920463096
+ 0.63935057220898406
+ 0.63937315653867555
+ 0.63939574219385487
+ 0.63941832917466856
+ 0.63944091748125942
+ 0.63946350711378019
+ 0.63948609807237244
+ 0.63950869035718727
+ 0.63953128396836922
+ 0.6395538789060663
+ 0.63957647517042482
+ 0.63959907276159289
+ 0.63962167167971651
+ 0.639644271924944
+ 0.63966687349742313
+ 0.63968947639729745
+ 0.63971208062471774
+ 0.63973468617983065
+ 0.63975729306278106
+ 0.63977990127371853
+ 0.63980251081278972
+ 0.63982512168014238
+ 0.6398477338759232
+ 0.63987034740028037
+ 0.63989296225336045
+ 0.63991557843531133
+ 0.63993819594627976
+ 0.63996081478641542
+ 0.63998343495586185
+ 0.64000605645477027
+ 0.64002867928328722
+ 0.64005130344155958
+ 0.64007392892973547
+ 0.6400965557479632
+ 0.64011918389638911
+ 0.64014181337516185
+ 0.64016444418442819
+ 0.64018707632433614
+ 0.64020970979503555
+ 0.64023234459667033
+ 0.6402549807293918
+ 0.64027761819334672
+ 0.64030025698868187
+ 0.64032289711554724
+ 0.64034553857408827
+ 0.64036818136445461
+ 0.64039082548679471
+ 0.64041347094125578
+ 0.64043611772798437
+ 0.64045876584713213
+ 0.64048141529884295
+ 0.64050406608326849
+ 0.64052671820055551
+ 0.64054937165085113
+ 0.64057202643430533
+ 0.64059468255106511
+ 0.64061734000128057
+ 0.64063999878509736
+ 0.64066265890266538
+ 0.64068532035413184
+ 0.64070798313964672
+ 0.64073064725935736
+ 0.64075331271341385
+ 0.64077597950196163
+ 0.64079864762515115
+ 0.64082131708313084
+ 0.64084398787604802
+ 0.64086666000405446
+ 0.64088933346729426
+ 0.64091200826591921
+ 0.64093468440007662
+ 0.64095736186991525
+ 0.64098004067558378
+ 0.64100272081723109
+ 0.64102540229500604
+ 0.64104808510905731
+ 0.64107076925953388
+ 0.64109345474658463
+ 0.64111614157035823
+ 0.64113882973100389
+ 0.6411615192286686
+ 0.64118421006350312
+ 0.64120690223565613
+ 0.64122959574527849
+ 0.64125229059251565
+ 0.64127498677751849
+ 0.64129768430043577
+ 0.64132038316141637
+ 0.6413430833606113
+ 0.64136578489816765
+ 0.64138848777423307
+ 0.64141119198895979
+ 0.64143389754249669
+ 0.64145660443499142
+ 0.64147931266659619
+ 0.641502022237457
+ 0.64152473314772451
+ 0.64154744539754638
+ 0.64157015898707492
+ 0.64159287391645914
+ 0.6416155901858468
+ 0.64163830779538855
+ 0.64166102674523207
+ 0.64168374703552999
+ 0.641706468666431
+ 0.64172919163808173
+ 0.64175191595063452
+ 0.64177464160423847
+ 0.64179736859904279
+ 0.6418200969351987
+ 0.64184282661285541
+ 0.64186555763216058
+ 0.64188828999326519
+ 0.64191102369631858
+ 0.64193375874147185
+ 0.64195649512887576
+ 0.64197923285867686
+ 0.64200197193102748
+ 0.64202471234607705
+ 0.64204745410397512
+ 0.64207019720487135
+ 0.64209294164891662
+ 0.6421156874362618
+ 0.64213843456705355
+ 0.64216118304144765
+ 0.64218393285958719
+ 0.64220668402162828
+ 0.64222943652771858
+ 0.64225219037800796
+ 0.64227494557264586
+ 0.64229770211178516
+ 0.64232045999557552
+ 0.64234321922416482
+ 0.64236597979770593
+ 0.64238874171634708
+ 0.64241150498024246
+ 0.64243426958953875
+ 0.64245703554438738
+ 0.64247980284493789
+ 0.64250257149134316
+ 0.64252534148375295
+ 0.64254811282231561
+ 0.64257088550718544
+ 0.64259365953851078
+ 0.64261643491644149
+ 0.64263921164113058
+ 0.6426619897127277
+ 0.64268476913138128
+ 0.64270754989724588
+ 0.64273033201046992
+ 0.64275311547120462
+ 0.64277590027960152
+ 0.64279868643581084
+ 0.64282147393998235
+ 0.64284426279226903
+ 0.64286705299282099
+ 0.64288984454178977
+ 0.64291263743932381
+ 0.64293543168557787
+ 0.64295822728070029
+ 0.64298102422484293
+ 0.64300382251815869
+ 0.64302662216079465
+ 0.6430494231529057
+ 0.64307222549464016
+ 0.64309502918615158
+ 0.64311783422759128
+ 0.6431406406191098
+ 0.64316344836085559
+ 0.64318625745298497
+ 0.64320906789564525
+ 0.64323187968899109
+ 0.64325469283317138
+ 0.64327750732833766
+ 0.64330032317464358
+ 0.6433231403722377
+ 0.64334595892127344
+ 0.6433687788219028
+ 0.64339160007427576
+ 0.64341442267854465
+ 0.64343724663486102
+ 0.64346007194337707
+ 0.64348289860424446
+ 0.64350572661761218
+ 0.6435285559836369
+ 0.64355138670246581
+ 0.64357421877425258
+ 0.6435970521991492
+ 0.6436198869773091
+ 0.64364272310887982
+ 0.64366556059401647
+ 0.64368839943287104
+ 0.64371123962559429
+ 0.6437340811723381
+ 0.64375692407325613
+ 0.64377976832849904
+ 0.64380261393821903
+ 0.64382546090256809
+ 0.64384830922169844
+ 0.64387115889576241
+ 0.64389400992491208
+ 0.64391686230930112
+ 0.64393971604907874
+ 0.64396257114439881
+ 0.64398542759541366
+ 0.64400828540227528
+ 0.64403114456513777
+ 0.64405400508415023
+ 0.64407686695946798
+ 0.64409973019124189
+ 0.64412259477962441
+ 0.6441454607247693
+ 0.64416832802682888
+ 0.64419119668595271
+ 0.64421406670229764
+ 0.64423693807601312
+ 0.64425981080725303
+ 0.6442826848961698
+ 0.64430556034291597
+ 0.64432843714764565
+ 0.64435131531050971
+ 0.64437419483166203
+ 0.64439707571125371
+ 0.64441995794944062
+ 0.64444284154637188
+ 0.64446572650220324
+ 0.64448861281708592
+ 0.64451150049117556
+ 0.6445343895246215
+ 0.64455727991757805
+ 0.64458017167019943
+ 0.64460306478263663
+ 0.64462595925504396
+ 0.64464885508757563
+ 0.64467175228038132
+ 0.64469465083361832
+ 0.64471755074743797
+ 0.64474045202199115
+ 0.64476335465743551
+ 0.64478625865392059
+ 0.64480916401160249
+ 0.64483207073063076
+ 0.64485497881116449
+ 0.64487788825335179
+ 0.64490079905734721
+ 0.6449237112233065
+ 0.6449466247513812
+ 0.64496953964172576
+ 0.64499245589449283
+ 0.64501537350983562
+ 0.64503829248790845
+ 0.64506121282886442
+ 0.64508413453285962
+ 0.64510705760004217
+ 0.64512998203057137
+ 0.64515290782459878
+ 0.64517583498227893
+ 0.64519876350376337
+ 0.6452216933892081
+ 0.64524462463876475
+ 0.64526755725258811
+ 0.64529049123083404
+ 0.64531342657365454
+ 0.64533636328120381
+ 0.64535930135363551
+ 0.64538224079110407
+ 0.64540518159376425
+ 0.64542812376176928
+ 0.64545106729527224
+ 0.64547401219442824
+ 0.6454969584593917
+ 0.64551990609031784
+ 0.64554285508735787
+ 0.645565805450667
+ 0.64558875718040143
+ 0.64561171027671316
+ 0.6456346647397585
+ 0.64565762056969067
+ 0.64568057776666332
+ 0.64570353633083255
+ 0.64572649626235068
+ 0.64574945756137381
+ 0.64577242022805548
+ 0.64579538426255079
+ 0.64581834966501306
+ 0.64584131643559906
+ 0.64586428457446188
+ 0.64588725408175707
+ 0.64591022495763772
+ 0.64593319720225917
+ 0.64595617081577639
+ 0.64597914579834448
+ 0.6460021221501171
+ 0.64602509987125101
+ 0.64604807896189809
+ 0.6460710594222151
+ 0.64609404125235737
+ 0.64611702445247832
+ 0.64614000902273327
+ 0.64616299496327756
+ 0.64618598227426627
+ 0.64620897095585328
+ 0.6462319610081968
+ 0.64625495243144759
+ 0.64627794522576398
+ 0.64630093939129829
+ 0.64632393492820883
+ 0.64634693183664937
+ 0.64636993011677402
+ 0.6463929297687393
+ 0.64641593079269943
+ 0.64643893318881118
+ 0.64646193695722842
+ 0.64648494209810836
+ 0.64650794861160454
+ 0.64653095649787273
+ 0.64655396575706836
+ 0.6465769763893483
+ 0.64659998839486676
+ 0.64662300177377763
+ 0.64664601652623965
+ 0.64666903265240827
+ 0.64669205015243592
+ 0.64671506902647979
+ 0.64673808927469723
+ 0.64676111089724198
+ 0.64678413389427158
+ 0.64680715826593838
+ 0.64683018401240122
+ 0.64685321113381578
+ 0.64687623963033614
+ 0.64689926950211962
+ 0.646922300749322
+ 0.64694533337209892
+ 0.64696836737060637
+ 0.64699140274499833
+ 0.64701443949543536
+ 0.64703747762207009
+ 0.64706051712505686
+ 0.64708355800455619
+ 0.64710660026072386
+ 0.64712964389371119
+ 0.64715268890368016
+ 0.64717573529078376
+ 0.64719878305517753
+ 0.64722183219701934
+ 0.64724488271646652
+ 0.6472679346136736
+ 0.64729098788879791
+ 0.64731404254199409
+ 0.64733709857342103
+ 0.64736015598323193
+ 0.64738321477158711
+ 0.64740627493864145
+ 0.64742933648454937
+ 0.64745239940946986
+ 0.64747546371356079
+ 0.64749852939697516
+ 0.64752159645987206
+ 0.64754466490240614
+ 0.64756773472473672
+ 0.64759080592701845
+ 0.6476138785094091
+ 0.64763695247206476
+ 0.64766002781514309
+ 0.64768310453880074
+ 0.64770618264319513
+ 0.64772926212848114
+ 0.64775234299481665
+ 0.64777542524235932
+ 0.64779850887126578
+ 0.64782159388169358
+ 0.64784468027379916
+ 0.64786776804773916
+ 0.64789085720367112
+ 0.64791394774175159
+ 0.64793703966213878
+ 0.64796013296499022
+ 0.64798322765046257
+ 0.64800632371871081
+ 0.64802942116989604
+ 0.64805252000417135
+ 0.64807562022169996
+ 0.64809872182263328
+ 0.6481218248071311
+ 0.6481449291753516
+ 0.6481680349274529
+ 0.64819114206358841
+ 0.6482142505839209
+ 0.64823736048860392
+ 0.64826047177779567
+ 0.64828358445165579
+ 0.64830669851034106
+ 0.64832981395400813
+ 0.6483529307828152
+ 0.64837604899692047
+ 0.64839916859648095
+ 0.64842228958165449
+ 0.64844541195259964
+ 0.64846853570947316
+ 0.64849166085243348
+ 0.64851478738163859
+ 0.64853791529724725
+ 0.6485610445994161
+ 0.64858417528830192
+ 0.64860730736406647
+ 0.64863044082686327
+ 0.648653575676854
+ 0.6486767119141954
+ 0.64869984953904469
+ 0.64872298855156163
+ 0.64874612895190342
+ 0.64876927074022983
+ 0.64879241391669651
+ 0.64881555848146344
+ 0.64883870443468783
+ 0.64886185177652955
+ 0.64888500050714593
+ 0.64890815062669538
+ 0.64893130213533645
+ 0.64895445503322657
+ 0.64897760932052717
+ 0.6490007649973939
+ 0.64902392206398574
+ 0.64904708052046256
+ 0.64907024036698169
+ 0.64909340160370166
+ 0.64911656423078168
+ 0.64913972824838029
+ 0.64916289365665603
+ 0.6491860604557681
+ 0.64920922864587505
+ 0.6492323982271373
+ 0.64925556919971072
+ 0.64927874156375409
+ 0.64930191531942794
+ 0.64932509046689246
+ 0.64934826700630377
+ 0.64937144493782362
+ 0.6493946242616081
+ 0.64941780497781743
+ 0.64944098708661246
+ 0.64946417058814887
+ 0.64948735548258729
+ 0.64951054177008827
+ 0.64953372945081078
+ 0.64955691852491249
+ 0.64958010899255225
+ 0.64960330085389084
+ 0.64962649410908735
+ 0.64964968875830087
+ 0.64967288480168905
+ 0.649696082239414
+ 0.6497192810716349
+ 0.64974248129850953
+ 0.64976568292019843
+ 0.64978888593686102
+ 0.64981209034865639
+ 0.64983529615574531
+ 0.64985850335828399
+ 0.6498817119564364
+ 0.64990492195035865
+ 0.64992813334021315
+ 0.64995134612615935
+ 0.64997456030835643
+ 0.64999777588696217
+ 0.65002099286213766
+ 0.65004421123404521
+ 0.65006743100284126
+ 0.65009065216868667
+ 0.65011387473174242
+ 0.65013709869216652
+ 0.65016032405012147
+ 0.65018355080576662
+ 0.65020677895926016
+ 0.65023000851076296
+ 0.65025323946043623
+ 0.65027647180843939
+ 0.65029970555493355
+ 0.6503229407000769
+ 0.65034617724403032
+ 0.65036941518695357
+ 0.65039265452900952
+ 0.65041589527035593
+ 0.65043913741115422
+ 0.65046238095156406
+ 0.65048562589174652
+ 0.65050887223186316
+ 0.65053211997207017
+ 0.65055536911253242
+ 0.65057861965340924
+ 0.6506018715948606
+ 0.65062512493704616
+ 0.65064837968012901
+ 0.65067163582426712
+ 0.65069489336962216
+ 0.6507181523163571
+ 0.65074141266462837
+ 0.65076467441460073
+ 0.65078793756643261
+ 0.6508112021202852
+ 0.65083446807631851
+ 0.65085773543469572
+ 0.65088100419557671
+ 0.65090427435912301
+ 0.65092754592549307
+ 0.65095081889484985
+ 0.650974093267355
+ 0.65099736904316874
+ 0.65102064622245082
+ 0.65104392480536466
+ 0.65106720479207014
+ 0.65109048618272769
+ 0.65111376897749995
+ 0.65113705317654758
+ 0.65116033878003221
+ 0.65118362578811539
+ 0.65120691420095567
+ 0.65123020401871967
+ 0.6512534952415644
+ 0.65127678786965171
+ 0.6513000819031447
+ 0.65132337734220247
+ 0.65134667418698955
+ 0.65136997243766648
+ 0.65139327209439202
+ 0.65141657315733259
+ 0.65143987562664707
+ 0.65146317950249577
+ 0.65148648478504367
+ 0.65150979147444965
+ 0.65153309957087735
+ 0.65155640907448686
+ 0.65157971998544206
+ 0.65160303230390171
+ 0.65162634603003078
+ 0.65164966116399003
+ 0.65167297770594135
+ 0.65169629565604692
+ 0.65171961501446862
+ 0.65174293578136722
+ 0.65176625795690624
+ 0.65178958154124644
+ 0.65181290653455282
+ 0.65183623293698301
+ 0.65185956074870388
+ 0.65188288996987465
+ 0.65190622060065873
+ 0.6519295526412171
+ 0.65195288609171342
+ 0.65197622095230834
+ 0.65199955722316738
+ 0.65202289490444976
+ 0.65204623399631934
+ 0.65206957449893821
+ 0.65209291641246903
+ 0.65211625973707221
+ 0.6521396044729153
+ 0.6521629506201555
+ 0.65218629817895879
+ 0.65220964714948571
+ 0.65223299753190045
+ 0.65225634932636534
+ 0.65227970253304279
+ 0.65230305715209402
+ 0.652326413183686
+ 0.6523497706279765
+ 0.65237312948513293
+ 0.65239648975531461
+ 0.65241985143868719
+ 0.65244321453541021
+ 0.65246657904564931
+ 0.65248994496956725
+ 0.65251331230732668
+ 0.65253668105908991
+ 0.65256005122502148
+ 0.65258342280528403
+ 0.65260679580003855
+ 0.65263017020945102
+ 0.6526535460336842
+ 0.65267692327289917
+ 0.65270030192726181
+ 0.65272368199693487
+ 0.65274706348207978
+ 0.6527704463828623
+ 0.65279383069944519
+ 0.65281721643198987
+ 0.65284060358066243
+ 0.6528639921456254
+ 0.652887382127042
+ 0.65291077352507487
+ 0.65293416633989032
+ 0.65295756057164955
+ 0.65298095622051722
+ 0.65300435328665607
+ 0.65302775177023087
+ 0.65305115167140304
+ 0.65307455299034012
+ 0.65309795572720375
+ 0.65312135988215847
+ 0.65314476545536571
+ 0.65316817244699199
+ 0.65319158085720008
+ 0.65321499068615463
+ 0.65323840193402072
+ 0.65326181460095811
+ 0.65328522868713457
+ 0.65330864419271506
+ 0.65333206111785946
+ 0.65335547946273442
+ 0.65337889922750425
+ 0.65340232041233259
+ 0.65342574301738421
+ 0.6534491670428223
+ 0.65347259248881173
+ 0.65349601935551727
+ 0.65351944764310255
+ 0.65354287735173222
+ 0.65356630848157127
+ 0.65358974103278311
+ 0.65361317500553118
+ 0.65363661039998344
+ 0.65366004721630044
+ 0.65368348545464994
+ 0.65370692511519568
+ 0.6537303661981011
+ 0.65375380870353117
+ 0.6537772526316511
+ 0.65380069798262586
+ 0.65382414475662054
+ 0.6538475929537988
+ 0.65387104257432416
+ 0.65389449361836327
+ 0.65391794608608311
+ 0.65394139997764378
+ 0.65396485529321391
+ 0.65398831203295715
+ 0.6540117701970386
+ 0.65403522978562201
+ 0.65405869079887424
+ 0.65408215323696062
+ 0.65410561710004478
+ 0.65412908238829204
+ 0.65415254910186937
+ 0.65417601724093899
+ 0.65419948680566919
+ 0.65422295779622264
+ 0.65424643021276596
+ 0.65426990405546481
+ 0.65429337932448273
+ 0.65431685601998701
+ 0.65434033414214321
+ 0.6543638136911164
+ 0.65438729466707091
+ 0.65441077707017214
+ 0.65443426090058709
+ 0.65445774615848129
+ 0.6544812328440206
+ 0.65450472095736867
+ 0.65452821049869281
+ 0.65455170146815722
+ 0.65457519386593044
+ 0.65459868769217511
+ 0.65462218294705987
+ 0.65464567963074749
+ 0.65466917774340672
+ 0.65469267728519998
+ 0.65471617825629802
+ 0.65473968065686328
+ 0.65476318448706139
+ 0.65478668974706145
+ 0.65481019643702598
+ 0.6548337045571242
+ 0.65485721410751851
+ 0.65488072508837958
+ 0.65490423749986848
+ 0.65492775134215597
+ 0.65495126661540615
+ 0.65497478331978676
+ 0.65499830145546045
+ 0.65502182102259798
+ 0.65504534202136344
+ 0.65506886445192314
+ 0.65509238831444438
+ 0.65511591360909194
+ 0.65513944033603477
+ 0.6551629684954372
+ 0.65518649808746721
+ 0.65521002911229054
+ 0.65523356157007351
+ 0.65525709546098365
+ 0.65528063078518883
+ 0.65530416754285192
+ 0.65532770573414389
+ 0.65535124535922917
+ 0.65537478641827407
+ 0.65539832891144645
+ 0.6554218728389124
+ 0.65544541820084135
+ 0.65546896499739804
+ 0.6554925132287488
+ 0.65551606289506126
+ 0.65553961399650351
+ 0.6555631665332402
+ 0.65558672050544242
+ 0.65561027591327337
+ 0.65563383275690268
+ 0.65565739103649501
+ 0.65568095075221999
+ 0.65570451190424239
+ 0.65572807449273363
+ 0.65575163851785667
+ 0.6557752039797814
+ 0.65579877087867411
+ 0.65582233921470312
+ 0.65584590898803319
+ 0.65586948019883562
+ 0.65589305284727539
+ 0.65591662693352071
+ 0.65594020245773965
+ 0.65596377942009898
+ 0.65598735782076512
+ 0.65601093765990948
+ 0.65603451893769571
+ 0.65605810165429512
+ 0.65608168580987114
+ 0.65610527140459551
+ 0.65612885843863467
+ 0.65615244691215546
+ 0.65617603682532766
+ 0.65619962817831823
+ 0.65622322097129382
+ 0.65624681520442452
+ 0.65627041087787719
+ 0.65629400799181992
+ 0.65631760654642157
+ 0.65634120654184869
+ 0.65636480797827002
+ 0.65638841085585531
+ 0.6564120151747701
+ 0.65643562093518448
+ 0.65645922813726698
+ 0.65648283678118291
+ 0.65650644686710558
+ 0.65653005839519907
+ 0.65655367136563325
+ 0.65657728577857533
+ 0.65660090163419549
+ 0.65662451893266227
+ 0.65664813767414454
+ 0.6566717578588076
+ 0.65669537948682521
+ 0.65671900255836102
+ 0.65674262707358388
+ 0.65676625303266734
+ 0.65678988043577535
+ 0.65681350928308002
+ 0.65683713957474676
+ 0.65686077131094611
+ 0.65688440449184693
+ 0.65690803911761797
+ 0.6569316751884281
+ 0.65695531270444629
+ 0.65697895166584297
+ 0.65700259207278389
+ 0.65702623392543968
+ 0.65704987722398067
+ 0.65707352196857294
+ 0.6570971681593899
+ 0.65712081579659609
+ 0.65714446488036338
+ 0.65716811541086129
+ 0.65719176738825835
+ 0.65721542081272233
+ 0.65723907568442397
+ 0.6572627320035338
+ 0.65728638977021936
+ 0.6573100489846514
+ 0.657333709646996
+ 0.65735737175742859
+ 0.65738103531611358
+ 0.65740470032322174
+ 0.65742836677892402
+ 0.65745203468338775
+ 0.65747570403678579
+ 0.65749937483928556
+ 0.65752304709105802
+ 0.65754672079227094
+ 0.65757039594309497
+ 0.65759407254370139
+ 0.65761775059425764
+ 0.65764143009493337
+ 0.65766511104590264
+ 0.65768879344733155
+ 0.65771247729938964
+ 0.65773616260224965
+ 0.65775984935608078
+ 0.65778353756105101
+ 0.65780722721733309
+ 0.65783091832509499
+ 0.65785461088450914
+ 0.65787830489574384
+ 0.65790200035896984
+ 0.65792569727435712
+ 0.65794939564207666
+ 0.65797309546229965
+ 0.65799679673519407
+ 0.65802049946092978
+ 0.65804420363968097
+ 0.65806790927161585
+ 0.65809161635690405
+ 0.65811532489571867
+ 0.65813903488822745
+ 0.65816274633460214
+ 0.65818645923501373
+ 0.65821017358963241
+ 0.65823388939862759
+ 0.65825760666217237
+ 0.6582813253804366
+ 0.65830504555359026
+ 0.65832876718180466
+ 0.65835249026525122
+ 0.65837621480409991
+ 0.65839994079852238
+ 0.65842366824868837
+ 0.6584473971547693
+ 0.65847112751693715
+ 0.658494859335363
+ 0.65851859261021561
+ 0.65854232734166973
+ 0.65856606352989344
+ 0.65858980117505894
+ 0.65861354027733743
+ 0.65863728083689921
+ 0.65866102285391759
+ 0.65868476632856099
+ 0.65870851126100427
+ 0.65873225765141452
+ 0.65875600549996827
+ 0.65877975480683248
+ 0.65880350557218048
+ 0.65882725779618423
+ 0.65885101147901382
+ 0.65887476662084277
+ 0.65889852322183973
+ 0.65892228128217978
+ 0.65894604080203156
+ 0.65896980178156861
+ 0.65899356422096145
+ 0.65901732812038327
+ 0.65904109348000472
+ 0.65906486029999922
+ 0.65908862858053563
+ 0.65911239832178781
+ 0.65913616952392728
+ 0.65915994218712504
+ 0.65918371631155581
+ 0.65920749189739047
+ 0.65923126894479778
+ 0.65925504745395458
+ 0.65927882742503008
+ 0.6593026088581978
+ 0.65932639175362995
+ 0.65935017611149715
+ 0.65937396193197162
+ 0.65939774921522853
+ 0.65942153796143732
+ 0.65944532817077173
+ 0.65946911984340384
+ 0.65949291297950607
+ 0.65951670757924918
+ 0.65954050364280858
+ 0.65956430117035669
+ 0.65958810016206249
+ 0.65961190061810182
+ 0.65963570253864534
+ 0.65965950592386713
+ 0.65968331077393949
+ 0.65970711708903507
+ 0.65973092486932594
+ 0.65975473411498664
+ 0.65977854482618781
+ 0.65980235700310197
+ 0.65982617064590487
+ 0.65984998575476739
+ 0.65987380232986392
+ 0.65989762037136523
+ 0.65992143987944563
+ 0.65994526085427752
+ 0.65996908329603388
+ 0.65999290720489034
+ 0.66001673258101634
+ 0.66004055942458784
+ 0.66006438773577591
+ 0.66008821751475655
+ 0.66011204876170071
+ 0.66013588147678148
+ 0.66015971566017284
+ 0.66018355131204942
+ 0.6602073884325822
+ 0.66023122702194592
+ 0.66025506708031645
+ 0.66027890860786176
+ 0.66030275160476115
+ 0.66032659607118294
+ 0.66035044200730453
+ 0.66037428941329912
+ 0.66039813828933769
+ 0.66042198863559676
+ 0.66044584045225085
+ 0.66046969373947106
+ 0.6604935484974308
+ 0.66051740472630605
+ 0.66054126242626998
+ 0.66056512159749536
+ 0.66058898224015894
+ 0.66061284435443191
+ 0.6606367079404889
+ 0.660660572998505
+ 0.66068443952865474
+ 0.66070830753110799
+ 0.66073217700604447
+ 0.66075604795363418
+ 0.66077992037405353
+ 0.66080379426747737
+ 0.66082766963407724
+ 0.66085154647402977
+ 0.66087542478750805
+ 0.66089930457468726
+ 0.66092318583574039
+ 0.6609470685708444
+ 0.66097095278017071
+ 0.6609948384638975
+ 0.6610187256221951
+ 0.66104261425524169
+ 0.66106650436320913
+ 0.66109039594627406
+ 0.66111428900460978
+ 0.66113818353839149
+ 0.66116207954779427
+ 0.66118597703299187
+ 0.66120987599416214
+ 0.66123377643147585
+ 0.66125767834510951
+ 0.66128158173523854
+ 0.66130548660203792
+ 0.66132939294568138
+ 0.66135330076634558
+ 0.66137721006420291
+ 0.66140112083943159
+ 0.66142503309220535
+ 0.6614489468226995
+ 0.66147286203108957
+ 0.66149677871755053
+ 0.66152069688225479
+ 0.66154461652538243
+ 0.66156853764710555
+ 0.66159246024760143
+ 0.66161638432704373
+ 0.66164030988560951
+ 0.66166423692347265
+ 0.66168816544080855
+ 0.66171209543779463
+ 0.66173602691460431
+ 0.66175995987141512
+ 0.66178389430840079
+ 0.66180783022573852
+ 0.6618317676236023
+ 0.66185570650217118
+ 0.6618796468616156
+ 0.6619035887021163
+ 0.66192753202384713
+ 0.66195147682698219
+ 0.66197542311170054
+ 0.66199937087817762
+ 0.66202332012658638
+ 0.6620472708571068
+ 0.66207122306991195
+ 0.66209517676517893
+ 0.66211913194308358
+ 0.66214308860380333
+ 0.66216704674751092
+ 0.66219100637438677
+ 0.6622149674846054
+ 0.66223893007834089
+ 0.66226289415577411
+ 0.66228685971707768
+ 0.66231082676242914
+ 0.6623347952920029
+ 0.66235876530597959
+ 0.66238273680453374
+ 0.66240670978783978
+ 0.66243068425607698
+ 0.66245466020942112
+ 0.66247863764804693
+ 0.6625026165721335
+ 0.66252659698185712
+ 0.66255057887739377
+ 0.6625745622589212
+ 0.66259854712661403
+ 0.66262253348065148
+ 0.66264652132120827
+ 0.66267051064846383
+ 0.66269450146259268
+ 0.66271849376377268
+ 0.66274248755218168
+ 0.66276648282799444
+ 0.66279047959139037
+ 0.66281447784254577
+ 0.66283847758163694
+ 0.66286247880884042
+ 0.66288648152433716
+ 0.66291048572830047
+ 0.66293449142090821
+ 0.66295849860233846
+ 0.66298250727276931
+ 0.66300651743237726
+ 0.66303052908134019
+ 0.66305454221983307
+ 0.66307855684803729
+ 0.66310257296612773
+ 0.66312659057428247
+ 0.6631506096726798
+ 0.66317463026149448
+ 0.66319865234090813
+ 0.66322267591109729
+ 0.66324670097223692
+ 0.66327072752450844
+ 0.66329475556808715
+ 0.66331878510315256
+ 0.66334281612988022
+ 0.66336684864844964
+ 0.66339088265903789
+ 0.66341491816182463
+ 0.6634389551569867
+ 0.66346299364470118
+ 0.66348703362514772
+ 0.66351107509850338
+ 0.66353511806494636
+ 0.66355916252465696
+ 0.66358320847780883
+ 0.66360725592458347
+ 0.66363130486515964
+ 0.66365535529971253
+ 0.663679407228424
+ 0.66370346065146923
+ 0.66372751556902865
+ 0.66375157198128065
+ 0.66377562988840244
+ 0.66379968929057409
+ 0.66382375018797279
+ 0.66384781258077863
+ 0.66387187646916745
+ 0.66389594185332079
+ 0.66392000873341439
+ 0.66394407710963022
+ 0.66396814698214535
+ 0.66399221835113853
+ 0.66401629121678873
+ 0.66404036557927471
+ 0.66406444143877352
+ 0.66408851879546904
+ 0.66411259764953534
+ 0.66413667800115284
+ 0.66416075985050183
+ 0.6641848431977585
+ 0.66420892804310627
+ 0.66423301438672111
+ 0.66425710222878176
+ 0.66428119156946897
+ 0.66430528240896181
+ 0.66432937474743925
+ 0.66435346858508026
+ 0.66437756392206559
+ 0.66440166075857132
+ 0.66442575909477941
+ 0.66444985893086927
+ 0.66447396026701977
+ 0.66449806310341208
+ 0.66452216744022186
+ 0.66454627327763305
+ 0.66457038061582185
+ 0.66459448945496913
+ 0.66461859979525573
+ 0.66464271163686073
+ 0.66466682497996188
+ 0.66469093982474037
+ 0.66471505617137838
+ 0.66473917402005223
+ 0.66476329337094442
+ 0.66478741422423115
+ 0.66481153658009673
+ 0.66483566043871878
+ 0.66485978580027683
+ 0.6648839126649535
+ 0.66490804103292678
+ 0.66493217090437606
+ 0.66495630227948399
+ 0.66498043515842864
+ 0.66500456954139098
+ 0.66502870542855241
+ 0.66505284282009236
+ 0.66507698171619034
+ 0.66510112211702621
+ 0.66512526402278416
+ 0.66514940743364082
+ 0.66517355234977737
+ 0.66519769877137669
+ 0.6652218466986155
+ 0.6652459961316779
+ 0.66527014707074084
+ 0.66529429951599028
+ 0.66531845346760121
+ 0.6653426089257567
+ 0.66536676589063981
+ 0.66539092436242708
+ 0.66541508434130314
+ 0.6654392458274464
+ 0.66546340882103971
+ 0.66548757332226005
+ 0.66551173933129359
+ 0.66553590684831876
+ 0.66556007587351707
+ 0.66558424640706848
+ 0.66560841844915475
+ 0.66563259199995717
+ 0.66565676705965926
+ 0.66568094362843777
+ 0.66570512170647622
+ 0.66572930129395747
+ 0.66575348239105869
+ 0.66577766499796465
+ 0.6658018491148574
+ 0.66582603474191515
+ 0.66585022187932164
+ 0.66587441052725838
+ 0.66589860068590567
+ 0.66592279235544538
+ 0.66594698553605947
+ 0.66597118022793123
+ 0.66599537643123941
+ 0.66601957414616597
+ 0.666043773372896
+ 0.66606797411160668
+ 0.66609217636248308
+ 0.66611638012570573
+ 0.66614058540145671
+ 0.66616479218991942
+ 0.66618900049127427
+ 0.66621321030570357
+ 0.66623742163338773
+ 0.66626163447451181
+ 0.66628584882925657
+ 0.66631006469780407
+ 0.66633428208033663
+ 0.66635850097703453
+ 0.66638272138808319
+ 0.66640694331366501
+ 0.66643116675395897
+ 0.6664553917091488
+ 0.66647961817942003
+ 0.66650384616495029
+ 0.66652807566592476
+ 0.66655230668252441
+ 0.66657653921493476
+ 0.66660077326333478
+ 0.66662500882790854
+ 0.66664924590884023
+ 0.66667348450631037
+ 0.66669772462050159
+ 0.66672196625159941
+ 0.66674620939978313
+ 0.66677045406523683
+ 0.6667947002481448
+ 0.66681894794868768
+ 0.66684319716705132
+ 0.66686744790341512
+ 0.66689170015796484
+ 0.66691595393088154
+ 0.6669402092223492
+ 0.66696446603255244
+ 0.66698872436167189
+ 0.66701298420989208
+ 0.66703724557739574
+ 0.6670615084643654
+ 0.66708577287098703
+ 0.66711003879744191
+ 0.66713430624391257
+ 0.66715857521058375
+ 0.66718284569763953
+ 0.66720711770526109
+ 0.66723139123363473
+ 0.66725566628294164
+ 0.66727994285336623
+ 0.66730422094509301
+ 0.66732850055830484
+ 0.66735278169318468
+ 0.66737706434991884
+ 0.66740134852868682
+ 0.66742563422967671
+ 0.66744992145306958
+ 0.66747421019904873
+ 0.66749850046780179
+ 0.66752279225950895
+ 0.66754708557435616
+ 0.66757138041252662
+ 0.66759567677420506
+ 0.66761997465957623
+ 0.66764427406882176
+ 0.66766857500212795
+ 0.66769287745967631
+ 0.66771718144165493
+ 0.66774148694824553
+ 0.66776579397963276
+ 0.66779010253600168
+ 0.6678144126175356
+ 0.66783872422442081
+ 0.66786303735683916
+ 0.66788735201497729
+ 0.66791166819901837
+ 0.6679359859091476
+ 0.66796030514554816
+ 0.66798462590840835
+ 0.66800894819790835
+ 0.66803327201423512
+ 0.66805759735757497
+ 0.66808192422810997
+ 0.66810625262602519
+ 0.6681305825515057
+ 0.66815491400473837
+ 0.66817924698590514
+ 0.66820358149519288
+ 0.66822791753278654
+ 0.66825225509886998
+ 0.66827659419362995
+ 0.66830093481725017
+ 0.66832527696991584
+ 0.66834962065181236
+ 0.66837396586312503
+ 0.66839831260403915
+ 0.66842266087474
+ 0.66844701067541312
+ 0.6684713620062438
+ 0.66849571486741599
+ 0.66852006925911656
+ 0.6685444251815309
+ 0.66856878263484643
+ 0.66859314161924521
+ 0.66861750213491422
+ 0.66864186418203764
+ 0.66866622776080409
+ 0.66869059287139754
+ 0.66871495951400362
+ 0.66873932768880795
+ 0.66876369739599761
+ 0.66878806863575679
+ 0.66881244140827112
+ 0.66883681571372944
+ 0.66886119155231427
+ 0.66888556892421469
+ 0.66890994782961466
+ 0.66893432826869981
+ 0.66895871024165621
+ 0.6689830937486726
+ 0.66900747878993339
+ 0.66903186536562276
+ 0.66905625347593123
+ 0.66908064312104165
+ 0.66910503430114143
+ 0.66912942701641642
+ 0.66915382126705436
+ 0.66917821705324088
+ 0.66920261437516071
+ 0.66922701323300426
+ 0.66925141362695295
+ 0.66927581555719928
+ 0.66930021902392434
+ 0.66932462402731907
+ 0.66934903056756789
+ 0.66937343864485688
+ 0.66939784825937543
+ 0.66942225941130651
+ 0.6694466721008393
+ 0.66947108632816177
+ 0.6694955020934602
+ 0.66951991939691891
+ 0.66954433823872739
+ 0.66956875861907206
+ 0.66959318053814065
+ 0.66961760399611958
+ 0.66964202899319514
+ 0.66966645552955517
+ 0.66969088360538598
+ 0.66971531322087741
+ 0.66973974437621542
+ 0.66976417707158686
+ 0.66978861130717771
+ 0.66981304708317813
+ 0.66983748439977409
+ 0.66986192325715244
+ 0.66988636365550269
+ 0.66991080559500971
+ 0.66993524907586344
+ 0.66995969409825029
+ 0.6699841406623569
+ 0.67000858876837299
+ 0.67003303841648687
+ 0.67005748960688205
+ 0.67008194233975138
+ 0.67010639661527993
+ 0.67013085243365478
+ 0.67015530979506699
+ 0.67017976869970186
+ 0.6702042291477478
+ 0.67022869113939321
+ 0.6702531546748246
+ 0.67027761975423406
+ 0.67030208637780631
+ 0.67032655454572865
+ 0.67035102425819237
+ 0.67037549551538456
+ 0.67039996831749216
+ 0.6704244426647068
+ 0.67044891855721223
+ 0.67047339599520017
+ 0.67049787497885782
+ 0.67052235550837358
+ 0.67054683758393618
+ 0.67057132120573415
+ 0.67059580637395622
+ 0.67062029308879101
+ 0.67064478135042738
+ 0.67066927115905228
+ 0.67069376251485779
+ 0.67071825541802921
+ 0.67074274986875726
+ 0.67076724586723058
+ 0.67079174341363634
+ 0.67081624250816674
+ 0.67084074315100717
+ 0.67086524534234981
+ 0.67088974908238219
+ 0.67091425437129137
+ 0.6709387612092711
+ 0.67096326959650565
+ 0.67098777953318711
+ 0.67101229101950444
+ 0.67103680405564514
+ 0.67106131864179985
+ 0.67108583477815908
+ 0.67111035246491035
+ 0.67113487170224284
+ 0.67115939249034728
+ 0.67118391482941264
+ 0.67120843871962976
+ 0.67123296416118461
+ 0.67125749115426969
+ 0.67128201969907386
+ 0.67130654979578674
+ 0.67133108144459741
+ 0.67135561464569837
+ 0.67138014939927548
+ 0.67140468570552003
+ 0.67142922356462253
+ 0.67145376297677428
+ 0.67147830394216124
+ 0.67150284646097613
+ 0.67152739053340982
+ 0.67155193615965025
+ 0.67157648333988662
+ 0.67160103207431199
+ 0.67162558236311554
+ 0.67165013420648678
+ 0.67167468760461535
+ 0.67169924255769387
+ 0.67172379906590896
+ 0.67174835712945469
+ 0.67177291674851913
+ 0.67179747792329347
+ 0.67182204065396922
+ 0.67184660494073412
+ 0.67187117078378111
+ 0.67189573818330006
+ 0.67192030713948214
+ 0.67194487765251698
+ 0.67196944972259454
+ 0.67199402334990777
+ 0.67201859853464629
+ 0.67204317527700008
+ 0.67206775357716064
+ 0.67209233343531927
+ 0.67211691485166736
+ 0.6721414978263951
+ 0.67216608235969377
+ 0.67219066845175335
+ 0.67221525610276545
+ 0.67223984531292158
+ 0.67226443608241182
+ 0.67228902841142912
+ 0.67231362230016378
+ 0.67233821774880742
+ 0.67236281475755011
+ 0.67238741332658347
+ 0.6724120134561008
+ 0.67243661514629238
+ 0.67246121839734807
+ 0.67248582320945982
+ 0.67251042958282115
+ 0.67253503751762211
+ 0.67255964701405613
+ 0.67258425807231181
+ 0.67260887069258435
+ 0.67263348487506081
+ 0.67265810061993614
+ 0.67268271792740253
+ 0.67270733679765027
+ 0.67273195723087109
+ 0.67275657922725884
+ 0.67278120278700382
+ 0.67280582791029797
+ 0.67283045459733515
+ 0.67285508284830553
+ 0.67287971266339985
+ 0.6729043440428133
+ 0.67292897698673659
+ 0.67295361149536326
+ 0.67297824756888391
+ 0.67300288520749085
+ 0.6730275244113777
+ 0.67305216518073518
+ 0.67307680751575716
+ 0.67310145141663591
+ 0.67312609688356217
+ 0.67315074391673124
+ 0.67317539251633396
+ 0.67320004268256117
+ 0.67322469441560995
+ 0.67324934771566936
+ 0.67327400258293357
+ 0.67329865901759511
+ 0.67332331701984616
+ 0.67334797658988099
+ 0.67337263772789036
+ 0.67339730043406831
+ 0.67342196470860927
+ 0.67344663055170384
+ 0.67347129796354643
+ 0.6734959669443279
+ 0.67352063749424573
+ 0.67354530961348769
+ 0.67356998330225271
+ 0.67359465856072898
+ 0.67361933538911045
+ 0.67364401378759475
+ 0.67366869375637006
+ 0.67369337529563189
+ 0.67371805840557486
+ 0.67374274308639015
+ 0.67376742933827194
+ 0.67379211716141496
+ 0.67381680655601039
+ 0.67384149752225408
+ 0.67386619006033921
+ 0.67389088417046006
+ 0.67391557985280803
+ 0.67394027710757787
+ 0.67396497593496529
+ 0.67398967633516049
+ 0.6740143783083612
+ 0.6740390818547588
+ 0.67406378697454772
+ 0.67408849366792301
+ 0.67411320193507751
+ 0.67413791177620586
+ 0.67416262319150155
+ 0.67418733618116056
+ 0.67421205074537305
+ 0.67423676688433853
+ 0.67426148459824697
+ 0.67428620388729499
+ 0.67431092475167564
+ 0.6743356471915839
+ 0.67436037120721459
+ 0.67438509679876113
+ 0.67440982396641991
+ 0.67443455271038266
+ 0.67445928303084624
+ 0.67448401492800514
+ 0.67450874840205177
+ 0.67453348345318387
+ 0.6745582200815935
+ 0.67458295828747739
+ 0.67460769807102883
+ 0.67463243943244477
+ 0.67465718237191852
+ 0.67468192688964557
+ 0.67470667298581888
+ 0.67473142066063596
+ 0.67475616991429144
+ 0.67478092074698104
+ 0.6748056731588965
+ 0.67483042715023633
+ 0.67485518272119582
+ 0.67487993987196726
+ 0.67490469860274893
+ 0.67492945891373324
+ 0.67495422080512013
+ 0.67497898427710046
+ 0.67500374932987095
+ 0.67502851596362723
+ 0.67505328417856791
+ 0.67507805397488208
+ 0.67510282535277166
+ 0.67512759831242719
+ 0.67515237285404939
+ 0.67517714897783021
+ 0.6752019266839655
+ 0.67522670597265233
+ 0.67525148684408798
+ 0.67527626929846485
+ 0.67530105333598178
+ 0.67532583895683129
+ 0.675350626161214
+ 0.67537541494932218
+ 0.67540020532135336
+ 0.67542499727750338
+ 0.6754497908179693
+ 0.67547458594294563
+ 0.67549938265263132
+ 0.675524180947219
+ 0.67554898082690762
+ 0.67557378229189158
+ 0.67559858534237016
+ 0.67562338997853733
+ 0.67564819620058925
+ 0.67567300400872521
+ 0.67569781340313917
+ 0.67572262438402764
+ 0.6757474369515879
+ 0.6757722511060178
+ 0.67579706684751173
+ 0.67582188417627065
+ 0.67584670309248562
+ 0.67587152359635627
+ 0.67589634568808032
+ 0.67592116936785374
+ 0.67594599463587302
+ 0.67597082149233734
+ 0.67599564993743977
+ 0.67602047997138137
+ 0.67604531159435532
+ 0.6760701448065628
+ 0.6760949796081982
+ 0.67611981599945969
+ 0.67614465398054513
+ 0.67616949355165101
+ 0.67619433471297374
+ 0.67621917746471283
+ 0.67624402180706467
+ 0.67626886774022754
+ 0.67629371526439619
+ 0.67631856437977023
+ 0.67634341508654805
+ 0.67636826738492595
+ 0.67639312127510232
+ 0.67641797675727333
+ 0.67644283383163772
+ 0.67646769249839334
+ 0.67649255275773867
+ 0.6765174146098718
+ 0.67654227805498801
+ 0.67656714309328858
+ 0.6765920097249688
+ 0.67661687795022862
+ 0.67664174776926478
+ 0.676666619182274
+ 0.67669149218945956
+ 0.67671636679101366
+ 0.67674124298713756
+ 0.67676612077803011
+ 0.67679100016388816
+ 0.67681588114491165
+ 0.67684076372129609
+ 0.67686564789324155
+ 0.6768905336609482
+ 0.67691542102461133
+ 0.67694030998443311
+ 0.67696520054060716
+ 0.67699009269333688
+ 0.67701498644281954
+ 0.67703988178925212
+ 0.67706477873283488
+ 0.67708967727376668
+ 0.67711457741224468
+ 0.67713947914847084
+ 0.67716438248264088
+ 0.6771892874149551
+ 0.677214193945614
+ 0.67723910207481308
+ 0.67726401180275486
+ 0.67728892312963618
+ 0.6773138360556562
+ 0.67733875058101722
+ 0.67736366670591475
+ 0.6773885844305495
+ 0.67741350375512055
+ 0.67743842467982684
+ 0.67746334720486912
+ 0.67748827133044642
+ 0.67751319705675628
+ 0.67753812438400085
+ 0.67756305331237798
+ 0.67758798384208818
+ 0.67761291597333073
+ 0.67763784970630658
+ 0.67766278504121147
+ 0.67768772197824956
+ 0.67771266051761703
+ 0.67773760065951794
+ 0.67776254240414824
+ 0.67778748575171066
+ 0.67781243070240305
+ 0.67783737725642601
+ 0.67786232541398084
+ 0.67788727517526526
+ 0.67791222654048189
+ 0.67793717950982857
+ 0.67796213408350814
+ 0.67798709026171833
+ 0.67801204804466031
+ 0.67803700743253359
+ 0.67806196842554101
+ 0.67808693102388062
+ 0.67811189522775517
+ 0.67813686103736093
+ 0.67816182845290252
+ 0.67818679747457955
+ 0.6782117681025901
+ 0.67823674033713877
+ 0.67826171417842518
+ 0.67828668962664762
+ 0.67831166668200726
+ 0.67833664534470894
+ 0.67836162561494917
+ 0.678386607492931
+ 0.67841159097885262
+ 0.67843657607291885
+ 0.67846156277532943
+ 0.67848655108628275
+ 0.67851154100598365
+ 0.67853653253463198
+ 0.67856152567242778
+ 0.67858652041957424
+ 0.67861151677626974
+ 0.67863651474271769
+ 0.6786615143191197
+ 0.67868651550567582
+ 0.67871151830258936
+ 0.6787365227100588
+ 0.6787615287282891
+ 0.6787865363574791
+ 0.67881154559783197
+ 0.67883655644954954
+ 0.67886156891283045
+ 0.67888658298787996
+ 0.67891159867489803
+ 0.67893661597408672
+ 0.67896163488564976
+ 0.67898665540978553
+ 0.67901167754669944
+ 0.67903670129659033
+ 0.67906172665966158
+ 0.67908675363611704
+ 0.67911178222615542
+ 0.67913681242998047
+ 0.67916184424779424
+ 0.67918687767980068
+ 0.6792119127261983
+ 0.67923694938719292
+ 0.67926198766298473
+ 0.67928702755377623
+ 0.67931206905977104
+ 0.67933711218117154
+ 0.67936215691817825
+ 0.679387203270997
+ 0.67941225123982651
+ 0.67943730082487264
+ 0.67946235202633576
+ 0.67948740484442027
+ 0.67951245927932824
+ 0.67953751533126228
+ 0.67956257300042466
+ 0.67958763228701968
+ 0.67961269319124962
+ 0.67963775571331708
+ 0.67966281985342469
+ 0.67968788561177806
+ 0.67971295298857493
+ 0.67973802198402422
+ 0.67976309259832557
+ 0.67978816483168314
+ 0.6798132386843011
+ 0.67983831415638052
+ 0.67986339124812756
+ 0.67988846995974461
+ 0.67991355029143297
+ 0.67993863224339857
+ 0.67996371581584425
+ 0.67998880100897274
+ 0.68001388782298677
+ 0.68003897625809273
+ 0.68006406631449312
+ 0.68008915799239122
+ 0.6801142512919911
+ 0.68013934621349603
+ 0.68016444275711041
+ 0.68018954092303718
+ 0.68021464071148263
+ 0.68023974212264837
+ 0.68026484515673868
+ 0.68028994981395685
+ 0.68031505609451071
+ 0.68034016399859853
+ 0.68036527352642995
+ 0.68039038467820645
+ 0.68041549745413277
+ 0.68044061185441207
+ 0.68046572787925086
+ 0.68049084552885097
+ 0.68051596480342003
+ 0.68054108570316008
+ 0.68056620822827407
+ 0.68059133237897218
+ 0.68061645815545424
+ 0.68064158555792376
+ 0.68066671458659045
+ 0.68069184524165605
+ 0.68071697752332416
+ 0.68074211143180141
+ 0.68076724696729107
+ 0.68079238413000176
+ 0.68081752292013364
+ 0.680842663337895
+ 0.68086780538348946
+ 0.68089294905712061
+ 0.68091809435899686
+ 0.68094324128932027
+ 0.68096838984829922
+ 0.68099354003613577
+ 0.68101869185303543
+ 0.68104384529920481
+ 0.68106900037484952
+ 0.68109415708017296
+ 0.68111931541538417
+ 0.68114447538068501
+ 0.68116963697628263
+ 0.68119480020238266
+ 0.68121996505918858
+ 0.68124513154690935
+ 0.68127029966574726
+ 0.6812954694159109
+ 0.68132064079760446
+ 0.68134581381103498
+ 0.68137098845640653
+ 0.68139616473392617
+ 0.68142134264379961
+ 0.68144652218623269
+ 0.68147170336143081
+ 0.68149688616960169
+ 0.6815220706109506
+ 0.68154725668568195
+ 0.68157244439400477
+ 0.68159763373612459
+ 0.681622824712246
+ 0.68164801732257618
+ 0.68167321156732275
+ 0.68169840744668975
+ 0.68172360496088491
+ 0.68174880411011574
+ 0.68177400489458651
+ 0.68179920731450472
+ 0.68182441137007987
+ 0.68184961706151292
+ 0.6818748243890147
+ 0.68190003335279148
+ 0.68192524395304766
+ 0.68195045618999217
+ 0.68197567006383353
+ 0.6820008855747739
+ 0.68202610272302311
+ 0.68205132150879044
+ 0.68207654193227729
+ 0.68210176399369626
+ 0.68212698769325042
+ 0.68215221303114937
+ 0.68217744000759939
+ 0.68220266862280821
+ 0.68222789887698077
+ 0.68225313077032834
+ 0.68227836430305533
+ 0.68230359947537023
+ 0.68232883628748064
+ 0.68235407473959331
+ 0.68237931483191616
+ 0.68240455656465737
+ 0.68242979993802522
+ 0.68245504495222431
+ 0.68248029160746482
+ 0.68250553990395446
+ 0.68253078984189863
+ 0.68255604142150861
+ 0.68258129464299122
+ 0.68260654950655297
+ 0.68263180601240214
+ 0.68265706416074867
+ 0.68268232395179951
+ 0.68270758538576126
+ 0.68273284846284388
+ 0.6827581131832543
+ 0.68278337954720247
+ 0.68280864755489523
+ 0.68283391720654285
+ 0.68285918850234872
+ 0.68288446144252646
+ 0.68290973602728289
+ 0.68293501225682662
+ 0.68296029013136617
+ 0.68298556965110857
+ 0.68301085081626411
+ 0.68303613362704141
+ 0.68306141808364917
+ 0.68308670418629458
+ 0.68311199193518768
+ 0.68313728133053764
+ 0.6831625723725514
+ 0.6831878650614408
+ 0.68321315939741334
+ 0.68323845538067773
+ 0.68326375301144437
+ 0.68328905228992065
+ 0.68331435321631551
+ 0.68333965579083933
+ 0.68336496001370117
+ 0.68339026588510998
+ 0.68341557340527637
+ 0.68344088257440772
+ 0.68346619339271297
+ 0.68349150586040464
+ 0.68351681997768832
+ 0.68354213574477651
+ 0.6835674531618785
+ 0.68359277222920145
+ 0.68361809294695963
+ 0.68364341531535722
+ 0.68366873933460848
+ 0.68369406500491925
+ 0.68371939232650203
+ 0.68374472129956787
+ 0.68377005192432427
+ 0.68379538420098063
+ 0.6838207181297481
+ 0.68384605371083729
+ 0.68387139094445781
+ 0.68389672983082062
+ 0.68392207037013375
+ 0.68394741256260805
+ 0.68397275640845623
+ 0.68399810190788635
+ 0.68402344906110779
+ 0.6840487978683335
+ 0.68407414832977276
+ 0.68409950044563539
+ 0.68412485421613267
+ 0.68415020964147566
+ 0.68417556672187407
+ 0.6842009254575393
+ 0.68422628584868095
+ 0.68425164789551063
+ 0.68427701159823928
+ 0.68430237695707685
+ 0.68432774397223495
+ 0.68435311264392473
+ 0.6843784829723546
+ 0.68440385495773914
+ 0.68442922860028832
+ 0.68445460390021207
+ 0.68447998085772177
+ 0.68450535947302926
+ 0.68453073974634759
+ 0.68455612167788338
+ 0.68458150526785189
+ 0.68460689051646273
+ 0.68463227742392785
+ 0.68465766599045896
+ 0.68468305621626591
+ 0.68470844810156395
+ 0.68473384164656004
+ 0.68475923685146889
+ 0.68478463371649922
+ 0.68481003224186632
+ 0.68483543242778189
+ 0.68486083427445454
+ 0.6848862377820979
+ 0.68491164295092366
+ 0.68493704978114245
+ 0.68496245827296931
+ 0.68498786842661463
+ 0.68501328024228891
+ 0.68503869372020743
+ 0.68506410886057889
+ 0.68508952566361869
+ 0.68511494412953566
+ 0.68514036425854674
+ 0.68516578605085932
+ 0.68519120950668899
+ 0.68521663462624594
+ 0.68524206140974431
+ 0.68526748985739627
+ 0.68529291996941388
+ 0.68531835174600986
+ 0.6853437851873978
+ 0.68536922029379022
+ 0.68539465706539759
+ 0.68542009550243588
+ 0.6854455356051139
+ 0.68547097737364926
+ 0.68549642080825113
+ 0.685521865909135
+ 0.68554731267651192
+ 0.68557276111059595
+ 0.6855982112115997
+ 0.68562366297973565
+ 0.68564911641521975
+ 0.68567457151826117
+ 0.68570002828907595
+ 0.68572548672787836
+ 0.68575094683487769
+ 0.68577640861029165
+ 0.68580187205432974
+ 0.68582733716720934
+ 0.68585280394914183
+ 0.68587827240033994
+ 0.6859037425210196
+ 0.68592921431139209
+ 0.68595468777167212
+ 0.68598016290207553
+ 0.68600563970281203
+ 0.6860311181740979
+ 0.68605659831614763
+ 0.68608208012917249
+ 0.68610756361339054
+ 0.68613304876901293
+ 0.68615853559625295
+ 0.68618402409532675
+ 0.68620951426644572
+ 0.68623500610982813
+ 0.68626049962568525
+ 0.6862859948142318
+ 0.68631149167568284
+ 0.68633699021025307
+ 0.68636249041815556
+ 0.68638799229960534
+ 0.68641349585481726
+ 0.68643900108400624
+ 0.68646450798738556
+ 0.68649001656516861
+ 0.68651552681757533
+ 0.68654103874481553
+ 0.68656655234710451
+ 0.68659206762465896
+ 0.68661758457769395
+ 0.68664310320642274
+ 0.68666862351106062
+ 0.68669414549182262
+ 0.6867196691489259
+ 0.68674519448258009
+ 0.68677072149300755
+ 0.68679625018041845
+ 0.68682178054502951
+ 0.68684731258705445
+ 0.68687284630671186
+ 0.68689838170421391
+ 0.68692391877977732
+ 0.68694945753361947
+ 0.68697499796595207
+ 0.68700054007699252
+ 0.68702608386695607
+ 0.68705162933606156
+ 0.68707717648451783
+ 0.6871027253125469
+ 0.68712827582036118
+ 0.68715382800817781
+ 0.68717938187621397
+ 0.68720493742468192
+ 0.68723049465379915
+ 0.68725605356378272
+ 0.68728161415484823
+ 0.68730717642721162
+ 0.68733274038109016
+ 0.68735830601669634
+ 0.68738387333425066
+ 0.68740944233396761
+ 0.68743501301606247
+ 0.68746058538075328
+ 0.68748615942825542
+ 0.68751173515878516
+ 0.68753731257255968
+ 0.68756289166979678
+ 0.68758847245071064
+ 0.68761405491551741
+ 0.68763963906443615
+ 0.68766522489768289
+ 0.6876908124154737
+ 0.68771640161802639
+ 0.6877419925055569
+ 0.68776758507828317
+ 0.68779317933641937
+ 0.68781877528018687
+ 0.68784437290979827
+ 0.68786997222547497
+ 0.68789557322742978
+ 0.6879211759158822
+ 0.68794678029105016
+ 0.68797238635315006
+ 0.68799799410239804
+ 0.68802360353901226
+ 0.68804921466321212
+ 0.68807482747521242
+ 0.68810044197523146
+ 0.68812605816348693
+ 0.68815167604019556
+ 0.68817729560557706
+ 0.68820291685984614
+ 0.6882285398032244
+ 0.68825416443592657
+ 0.68827979075817103
+ 0.68830541877017593
+ 0.68833104847215787
+ 0.68835667986433857
+ 0.68838231294693109
+ 0.68840794772015723
+ 0.68843358418423373
+ 0.68845922233937884
+ 0.68848486218580951
+ 0.68851050372374722
+ 0.68853614695340548
+ 0.6885617918750061
+ 0.68858743848876769
+ 0.68861308679490696
+ 0.68863873679364251
+ 0.68866438848519274
+ 0.68869004186977811
+ 0.68871569694761559
+ 0.68874135371892342
+ 0.68876701218392067
+ 0.68879267234282737
+ 0.68881833419586069
+ 0.68884399774323946
+ 0.68886966298518382
+ 0.68889532992191105
+ 0.68892099855364153
+ 0.68894666888059408
+ 0.68897234090298753
+ 0.68899801462104082
+ 0.6890236900349711
+ 0.68904936714500209
+ 0.68907504595135116
+ 0.68910072645423415
+ 0.68912640865387476
+ 0.68915209255049192
+ 0.68917777814430159
+ 0.68920346543552768
+ 0.68922915442438581
+ 0.68925484511109847
+ 0.68928053749588325
+ 0.68930623157896065
+ 0.68933192736055171
+ 0.68935762484087393
+ 0.68938332402014968
+ 0.68940902489859501
+ 0.68943472747643231
+ 0.68946043175388272
+ 0.6894861377311623
+ 0.68951184540849486
+ 0.68953755478610024
+ 0.68956326586419425
+ 0.68958897864300284
+ 0.68961469312274237
+ 0.68964040930363535
+ 0.68966612718590126
+ 0.68969184676975803
+ 0.68971756805543016
+ 0.68974329104313381
+ 0.6897690157330949
+ 0.68979474212552849
+ 0.68982047022065884
+ 0.689846200018704
+ 0.68987193151988691
+ 0.68989766472442893
+ 0.68992339963254645
+ 0.68994913624446397
+ 0.68997487456040152
+ 0.69000061458058037
+ 0.69002635630522013
+ 0.69005209973454429
+ 0.69007784486877055
+ 0.69010359170812263
+ 0.69012934025282169
+ 0.69015509050308599
+ 0.69018084245914058
+ 0.69020659612120516
+ 0.69023235148950013
+ 0.69025810856424663
+ 0.69028386734566838
+ 0.6903096278339852
+ 0.6903353900294189
+ 0.69036115393219122
+ 0.69038691954252385
+ 0.69041268686063706
+ 0.6904384558867559
+ 0.69046422662109885
+ 0.69048999906388797
+ 0.69051577321534652
+ 0.69054154907569654
+ 0.6905673266451583
+ 0.6905931059239554
+ 0.69061888691230822
+ 0.69064466961044213
+ 0.69067045401857563
+ 0.69069624013693254
+ 0.69072202796573323
+ 0.69074781750520331
+ 0.69077360875556304
+ 0.69079940171703458
+ 0.6908251963898403
+ 0.69085099277420359
+ 0.69087679087034726
+ 0.69090259067849302
+ 0.69092839219886348
+ 0.69095419543168068
+ 0.69098000037716889
+ 0.69100580703555015
+ 0.69103161540704694
+ 0.69105742549188154
+ 0.6910832372902781
+ 0.69110905080245921
+ 0.69113486602864715
+ 0.69116068296906596
+ 0.69118650162393813
+ 0.69121232199348648
+ 0.69123814407793494
+ 0.6912639678775061
+ 0.69128979339242269
+ 0.69131562062290897
+ 0.69134144956918897
+ 0.69136728023148575
+ 0.69139311261002001
+ 0.69141894670501958
+ 0.69144478251670394
+ 0.69147062004530069
+ 0.69149645929102943
+ 0.69152230025411776
+ 0.69154814293478706
+ 0.69157398733325992
+ 0.6915998334497645
+ 0.69162568128452029
+ 0.69165153083775333
+ 0.69167738210968677
+ 0.69170323510054521
+ 0.69172908981055325
+ 0.69175494623993394
+ 0.69178080438891199
+ 0.69180666425771054
+ 0.69183252584655575
+ 0.69185838915567099
+ 0.69188425418527932
+ 0.69191012093560722
+ 0.69193598940687784
+ 0.69196185959931766
+ 0.69198773151314852
+ 0.69201360514859667
+ 0.6920394805058856
+ 0.69206535758524013
+ 0.69209123638688697
+ 0.69211711691104949
+ 0.69214299915795108
+ 0.69216888312781844
+ 0.6921947688208766
+ 0.69222065623735085
+ 0.69224654537746455
+ 0.6922724362414443
+ 0.69229832882951392
+ 0.69232422314190012
+ 0.69235011917882661
+ 0.69237601694051842
+ 0.69240191642720272
+ 0.69242781763910466
+ 0.69245372057644639
+ 0.69247962523945805
+ 0.69250553162836337
+ 0.69253143974338638
+ 0.69255734958475379
+ 0.69258326115269109
+ 0.69260917444742398
+ 0.6926350894691794
+ 0.69266100621818139
+ 0.69268692469465687
+ 0.69271284489883
+ 0.69273876683093127
+ 0.69276469049118128
+ 0.69279061587980739
+ 0.69281654299703688
+ 0.692842471843097
+ 0.69286840241821201
+ 0.6928943347226092
+ 0.69292026875651413
+ 0.69294620452015132
+ 0.69297214201375112
+ 0.69299808123753637
+ 0.69302402219173775
+ 0.69304996487657622
+ 0.69307590929228258
+ 0.69310185543908298
+ 0.69312780331720136
+ 0.69315375292686721
+ 0.69317970426830655
+ 0.69320565734174533
+ 0.69323161214741136
+ 0.69325756868553223
+ 0.69328352695633411
+ 0.69330948696004324
+ 0.69333544869688712
+ 0.69336141216709213
+ 0.69338737737088774
+ 0.69341334430849855
+ 0.69343931298015404
+ 0.69346528338607893
+ 0.6934912555265027
+ 0.69351722940165339
+ 0.69354320501175559
+ 0.69356918235703913
+ 0.69359516143773015
+ 0.69362114225405869
+ 0.69364712480624779
+ 0.69367310909453028
+ 0.69369909511912975
+ 0.69372508288027734
+ 0.693751072378198
+ 0.69377706361312175
+ 0.69380305658527497
+ 0.69382905129488615
+ 0.69385504774218498
+ 0.69388104592739663
+ 0.69390704585075103
+ 0.69393304751247664
+ 0.69395905091279997
+ 0.69398505605195138
+ 0.69401106293015746
+ 0.69403707154764671
+ 0.69406308190464916
+ 0.69408909400139185
+ 0.69411510783810326
+ 0.69414112341501355
+ 0.69416714073234953
+ 0.69419315979033847
+ 0.69421918058921384
+ 0.69424520312920079
+ 0.69427122741052993
+ 0.69429725343342641
+ 0.69432328119812403
+ 0.69434931070484995
+ 0.69437534195383122
+ 0.69440137494529997
+ 0.69442740967948346
+ 0.69445344615661031
+ 0.6944794843769112
+ 0.69450552434061519
+ 0.69453156604795097
+ 0.69455760949914758
+ 0.69458365469443561
+ 0.69460970163404401
+ 0.69463575031820202
+ 0.69466180074714012
+ 0.69468785292108592
+ 0.69471390684027001
+ 0.6947399625049232
+ 0.69476601991527476
+ 0.69479207907155205
+ 0.69481813997398756
+ 0.69484420262281066
+ 0.69487026701825227
+ 0.69489633316054156
+ 0.69492240104990777
+ 0.69494847068658039
+ 0.6949745420707919
+ 0.69500061520277012
+ 0.69502669008274776
+ 0.69505276671095251
+ 0.69507884508761708
+ 0.69510492521297118
+ 0.69513100708724418
+ 0.69515709071066711
+ 0.69518317608347135
+ 0.69520926320588472
+ 0.69523535207814191
+ 0.69526144270047074
+ 0.69528753507310259
+ 0.6953136291962686
+ 0.69533972507020037
+ 0.69536582269512759
+ 0.69539192207128142
+ 0.6954180231988919
+ 0.69544412607819206
+ 0.69547023070941161
+ 0.69549633709278225
+ 0.69552244522853524
+ 0.69554855511690061
+ 0.69557466675810986
+ 0.69560078015239823
+ 0.69562689529999189
+ 0.69565301220112441
+ 0.69567913085602573
+ 0.69570525126493088
+ 0.69573137342806834
+ 0.69575749734567149
+ 0.69578362301797037
+ 0.69580975044519855
+ 0.69583587962758597
+ 0.69586201056536634
+ 0.6958881432587698
+ 0.69591427770802838
+ 0.69594041391337547
+ 0.69596655187504297
+ 0.69599269159326149
+ 0.6960188330682644
+ 0.69604497630028395
+ 0.69607112128955029
+ 0.6960972680362989
+ 0.69612341654076049
+ 0.69614956680316664
+ 0.69617571882375162
+ 0.69620187260274569
+ 0.69622802814038298
+ 0.69625418543689699
+ 0.69628034449251863
+ 0.69630650530748006
+ 0.69633266788201509
+ 0.6963588322163563
+ 0.69638499831073764
+ 0.69641116616539123
+ 0.69643733578054801
+ 0.69646350715644378
+ 0.69648968029330915
+ 0.69651585519138026
+ 0.69654203185088748
+ 0.69656821027206539
+ 0.69659439045514782
+ 0.69662057240036612
+ 0.69664675610795412
+ 0.69667294157814652
+ 0.69669912881117568
+ 0.6967253178072742
+ 0.69675150856667822
+ 0.69677770108961901
+ 0.69680389537633247
+ 0.69683009142704966
+ 0.69685628924200671
+ 0.69688248882143489
+ 0.69690869016557022
+ 0.69693489327464564
+ 0.69696109814889595
+ 0.69698730478855353
+ 0.69701351319385352
+ 0.69703972336502862
+ 0.69706593530231531
+ 0.69709214900594652
+ 0.69711836447615694
+ 0.69714458171318139
+ 0.69717080071725124
+ 0.69719702148860463
+ 0.69722324402747293
+ 0.69724946833409285
+ 0.6972756944086993
+ 0.69730192225152521
+ 0.69732815186280572
+ 0.69735438324277577
+ 0.69738061639167015
+ 0.69740685130972246
+ 0.69743308799716908
+ 0.69745932645424358
+ 0.69748556668118433
+ 0.69751180867822149
+ 0.69753805244559342
+ 0.69756429798353348
+ 0.69759054529227704
+ 0.69761679437206092
+ 0.69764304522312026
+ 0.6976692978456871
+ 0.69769555224000002
+ 0.69772180840629416
+ 0.69774806634480491
+ 0.69777432605576606
+ 0.69780058753941465
+ 0.69782685079598594
+ 0.6978531158257153
+ 0.69787938262884019
+ 0.697905651205594
+ 0.69793192155621431
+ 0.69795819368093615
+ 0.69798446757999388
+ 0.69801074325362789
+ 0.69803702070206852
+ 0.69806329992555682
+ 0.6980895809243266
+ 0.69811586369861522
+ 0.69814214824865672
+ 0.69816843457469013
+ 0.69819472267694938
+ 0.69822101255567226
+ 0.69824730421109438
+ 0.6982735976434532
+ 0.69829989285298311
+ 0.69832618983992456
+ 0.69835248860451249
+ 0.69837878914698048
+ 0.69840509146756979
+ 0.69843139556651479
+ 0.69845770144405295
+ 0.69848400910042052
+ 0.69851031853585521
+ 0.69853662975059472
+ 0.69856294274487507
+ 0.69858925751893253
+ 0.69861557407300645
+ 0.69864189240733321
+ 0.69866821252214717
+ 0.69869453441769147
+ 0.69872085809419882
+ 0.69874718355190724
+ 0.69877351079105643
+ 0.6987998398118811
+ 0.69882617061462249
+ 0.69885250319951364
+ 0.69887883756679459
+ 0.69890517371670491
+ 0.69893151164947931
+ 0.69895785136535771
+ 0.69898419286457503
+ 0.69901053614737274
+ 0.69903688121398755
+ 0.69906322806465759
+ 0.69908957669961946
+ 0.6991159271191133
+ 0.69914227932337725
+ 0.69916863331264822
+ 0.69919498908716449
+ 0.69922134664716618
+ 0.6992477059928901
+ 0.69927406712457463
+ 0.69930043004245834
+ 0.69932679474678139
+ 0.69935316123778246
+ 0.69937952951569826
+ 0.69940589958076749
+ 0.69943227143323039
+ 0.69945864507332411
+ 0.69948502050129047
+ 0.69951139771736504
+ 0.69953777672178796
+ 0.69956415751479972
+ 0.69959054009663768
+ 0.6996169244675422
+ 0.69964331062775031
+ 0.69966969857750438
+ 0.69969608831703978
+ 0.69972247984660063
+ 0.69974887316642242
+ 0.6997752682767473
+ 0.69980166517781128
+ 0.69982806386985641
+ 0.69985446435312348
+ 0.6998808666278501
+ 0.69990727069427683
+ 0.69993367655264271
+ 0.69996008420318712
+ 0.6999864936461524
+ 0.70001290488177603
+ 0.70003931791029905
+ 0.70006573273196071
+ 0.70009214934700192
+ 0.70011856775566372
+ 0.70014498795818347
+ 0.70017140995480265
+ 0.70019783374576372
+ 0.70022425933130439
+ 0.70025068671166579
+ 0.70027711588708741
+ 0.70030354685781371
+ 0.70032997962407928
+ 0.70035641418612871
+ 0.70038285054420302
+ 0.70040928869854024
+ 0.70043572864938342
+ 0.70046217039697201
+ 0.70048861394154582
+ 0.70051505928334956
+ 0.70054150642262125
+ 0.70056795535960237
+ 0.70059440609453405
+ 0.70062085862765811
+ 0.70064731295921434
+ 0.70067376908944579
+ 0.70070022701859069
+ 0.70072668674689575
+ 0.70075314827459745
+ 0.70077961160193902
+ 0.7008060767291624
+ 0.70083254365650727
+ 0.70085901238421699
+ 0.70088548291253361
+ 0.70091195524169703
+ 0.70093842937195072
+ 0.70096490530353484
+ 0.7009913830366945
+ 0.70101786257166654
+ 0.7010443439086963
+ 0.70107082704802737
+ 0.70109731198989655
+ 0.70112379873455255
+ 0.70115028728223083
+ 0.70117677763317821
+ 0.70120326978763681
+ 0.701229763745847
+ 0.70125625950805259
+ 0.70128275707449406
+ 0.70130925644541697
+ 0.70133575762106148
+ 0.7013622606016704
+ 0.70138876538748873
+ 0.70141527197875553
+ 0.70144178037571658
+ 0.70146829057861426
+ 0.70149480258768893
+ 0.70152131640318816
+ 0.70154783202534943
+ 0.70157434945441988
+ 0.70160086869064209
+ 0.70162738973425853
+ 0.70165391258551013
+ 0.70168043724464435
+ 0.70170696371190033
+ 0.70173349198752577
+ 0.70176002207176147
+ 0.70178655396485023
+ 0.70181308766703621
+ 0.70183962317856563
+ 0.7018661604996792
+ 0.70189269963062162
+ 0.70191924057163391
+ 0.70194578332296376
+ 0.70197232788485409
+ 0.7019988742575477
+ 0.70202542244128918
+ 0.70205197243632311
+ 0.70207852424289241
+ 0.70210507786124154
+ 0.70213163329161532
+ 0.70215819053425665
+ 0.70218474958941035
+ 0.70221131045732266
+ 0.70223787313823505
+ 0.70226443763239232
+ 0.70229100394004096
+ 0.70231757206142575
+ 0.70234414199678818
+ 0.70237071374637505
+ 0.70239728731043094
+ 0.70242386268920098
+ 0.70245043988292843
+ 0.70247701889185821
+ 0.70250359971623699
+ 0.70253018235631004
+ 0.7025567668123206
+ 0.7025833530845137
+ 0.70260994117313458
+ 0.70263653107843005
+ 0.70266312280064536
+ 0.70268971634002375
+ 0.70271631169681081
+ 0.70274290887125324
+ 0.70276950786359638
+ 0.70279610867408571
+ 0.70282271130296636
+ 0.70284931575048371
+ 0.7028759220168832
+ 0.7029025301024121
+ 0.70292914000731388
+ 0.70295575173183744
+ 0.70298236527622682
+ 0.70300898064072737
+ 0.70303559782558456
+ 0.70306221683104753
+ 0.70308883765736008
+ 0.70311546030476957
+ 0.70314208477352158
+ 0.70316871106386192
+ 0.70319533917603783
+ 0.70322196911029522
+ 0.70324860086687813
+ 0.7032752344460389
+ 0.70330186984801857
+ 0.70332850707306627
+ 0.70335514612142946
+ 0.70338178699335241
+ 0.70340842968908279
+ 0.70343507420886819
+ 0.70346172055295453
+ 0.70348836872159115
+ 0.70351501871502098
+ 0.70354167053349481
+ 0.70356832417725557
+ 0.70359497964655426
+ 0.70362163694163893
+ 0.70364829606275225
+ 0.70367495701014382
+ 0.70370161978406309
+ 0.70372828438475477
+ 0.70375495081246686
+ 0.70378161906744718
+ 0.7038082891499422
+ 0.7038349610602016
+ 0.70386163479847175
+ 0.70388831036500232
+ 0.70391498776003836
+ 0.70394166698382943
+ 0.70396834803662212
+ 0.70399503091866622
+ 0.70402171563020843
+ 0.70404840217149711
+ 0.70407509054278028
+ 0.70410178074430618
+ 0.7041284727763234
+ 0.70415516663908029
+ 0.7041818623328252
+ 0.70420855985780639
+ 0.70423525921427077
+ 0.70426196040247013
+ 0.7042886634226514
+ 0.70431536827506136
+ 0.70434207495995016
+ 0.70436878347756982
+ 0.7043954938281638
+ 0.70442220601198424
+ 0.70444892002927817
+ 0.70447563588029583
+ 0.70450235356528601
+ 0.7045290730844973
+ 0.70455579443817873
+ 0.70458251762658042
+ 0.70460924264995162
+ 0.70463596950854079
+ 0.70466269820259719
+ 0.70468942873237117
+ 0.70471616109811164
+ 0.70474289530006762
+ 0.70476963133848991
+ 0.70479636921362732
+ 0.70482310892572908
+ 0.70484985047504567
+ 0.70487659386182477
+ 0.7049033390863223
+ 0.70493008614878028
+ 0.70495683504945506
+ 0.70498358578859222
+ 0.70501033836644444
+ 0.70503709278326099
+ 0.70506384903929298
+ 0.70509060713478944
+ 0.70511736706999972
+ 0.70514412884517685
+ 0.70517089246056841
+ 0.70519765791642719
+ 0.70522442521300244
+ 0.70525119435054562
+ 0.7052779653293062
+ 0.7053047381495352
+ 0.70533151281148398
+ 0.7053582893154039
+ 0.70538506766154441
+ 0.70541184785015709
+ 0.70543862988149131
+ 0.7054654137558003
+ 0.70549219947333541
+ 0.7055189870343449
+ 0.70554577643908334
+ 0.70557256768780074
+ 0.7055993607807467
+ 0.70562615571817311
+ 0.70565295250033455
+ 0.70567975112747794
+ 0.70570655159985807
+ 0.7057333539177264
+ 0.7057601580813333
+ 0.70578696409092867
+ 0.70581377194676753
+ 0.70584058164910179
+ 0.70586739319818148
+ 0.70589420659425839
+ 0.7059210218375862
+ 0.70594783892841484
+ 0.70597465786699809
+ 0.7060014786535862
+ 0.70602830128843463
+ 0.70605512577179164
+ 0.706081952103913
+ 0.70610878028505053
+ 0.70613561031545291
+ 0.70616244219537749
+ 0.70618927592507452
+ 0.70621611150479624
+ 0.70624294893479478
+ 0.70626978821532582
+ 0.70629662934663984
+ 0.70632347232899084
+ 0.70635031716262942
+ 0.70637716384781113
+ 0.70640401238478678
+ 0.7064308627738104
+ 0.70645771501513621
+ 0.70648456910901647
+ 0.70651142505570375
+ 0.70653828285545039
+ 0.70656514250851232
+ 0.70659200401514222
+ 0.70661886737559254
+ 0.70664573259011765
+ 0.70667259965896845
+ 0.7066994685824044
+ 0.70672633936067464
+ 0.70675321199403196
+ 0.70678008648273249
+ 0.7068069628270307
+ 0.70683384102717939
+ 0.70686072108343301
+ 0.70688760299604292
+ 0.70691448676526669
+ 0.70694137239135746
+ 0.70696825987456824
+ 0.7069951492151535
+ 0.70702204041336969
+ 0.70704893346946818
+ 0.7070758283837052
+ 0.7071027251563341
+ 0.70712962378761113
+ 0.70715652427778786
+ 0.70718342662712252
+ 0.70721033083586804
+ 0.70723723690427809
+ 0.70726414483261058
+ 0.70729105462111719
+ 0.70731796627005294
+ 0.70734487977967619
+ 0.70737179515023874
+ 0.70739871238199536
+ 0.70742563147520321
+ 0.70745255243011718
+ 0.70747947524699228
+ 0.707506399926084
+ 0.70753332646764577
+ 0.70756025487193608
+ 0.70758718513920693
+ 0.70761411726971857
+ 0.70764105126372323
+ 0.70766798712147583
+ 0.70769492484323371
+ 0.70772186442925389
+ 0.70774880587979017
+ 0.707775749195098
+ 0.70780269437543608
+ 0.70782964142105853
+ 0.7078565903322207
+ 0.70788354110917973
+ 0.70791049375219151
+ 0.70793744826151328
+ 0.70796440463739896
+ 0.70799136288010744
+ 0.70801832298989464
+ 0.70804528496701469
+ 0.70807224881172814
+ 0.7080992145242877
+ 0.7081261821049526
+ 0.70815315155397829
+ 0.70818012287162102
+ 0.70820709605813992
+ 0.70823407111378933
+ 0.70826104803882695
+ 0.70828802683351022
+ 0.70831500749809717
+ 0.70834199003284359
+ 0.70836897443800417
+ 0.7083959607138397
+ 0.7084229488606083
+ 0.70844993887856433
+ 0.70847693076796558
+ 0.70850392452907196
+ 0.7085309201621377
+ 0.70855791766742271
+ 0.708584917045183
+ 0.70861191829567693
+ 0.70863892141916407
+ 0.70866592641589921
+ 0.70869293328614036
+ 0.70871994203014899
+ 0.70874695264818011
+ 0.70877396514049162
+ 0.708800979507342
+ 0.70882799574898947
+ 0.70885501386569216
+ 0.70888203385770998
+ 0.70890905572530005
+ 0.70893607946871862
+ 0.70896310508822924
+ 0.70899013258408361
+ 0.70901716195654552
+ 0.7090441932058712
+ 0.70907122633232134
+ 0.70909826133615417
+ 0.70912529821762504
+ 0.70915233697699587
+ 0.70917937761452698
+ 0.70920642013047375
+ 0.70923346452509628
+ 0.70926051079865693
+ 0.70928755895141093
+ 0.70931460898361876
+ 0.70934166089553929
+ 0.70936871468743279
+ 0.7093957703595567
+ 0.70942282791217315
+ 0.70944988734554104
+ 0.70947694865991773
+ 0.70950401185556367
+ 0.70953107693273987
+ 0.70955814389170491
+ 0.70958521273271991
+ 0.7096122834560421
+ 0.70963935606193407
+ 0.70966643055065481
+ 0.70969350692246358
+ 0.70972058517762293
+ 0.70974766531638878
+ 0.70977474733902357
+ 0.70980183124579033
+ 0.70982891703694284
+ 0.70985600471274934
+ 0.70988309427346197
+ 0.70991018571934894
+ 0.70993727905066617
+ 0.70996437426767478
+ 0.70999147137063612
+ 0.7100185703598112
+ 0.71004567123546125
+ 0.71007277399784596
+ 0.71009987864722646
+ 0.71012698518386252
+ 0.71015409360801884
+ 0.71018120391995176
+ 0.71020831611992596
+ 0.71023543020820112
+ 0.71026254618503892
+ 0.71028966405070082
+ 0.71031678380544661
+ 0.71034390544954107
+ 0.71037102898324256
+ 0.71039815440681275
+ 0.71042528172051467
+ 0.71045241092461042
+ 0.71047954201935959
+ 0.71050667500502596
+ 0.71053380988187098
+ 0.71056094665015657
+ 0.71058808531014273
+ 0.71061522586209314
+ 0.71064236830626981
+ 0.71066951264293587
+ 0.71069665887235212
+ 0.71072380699477999
+ 0.71075095701048518
+ 0.71077810891972615
+ 0.71080526272276845
+ 0.71083241841987066
+ 0.71085957601130001
+ 0.71088673549731707
+ 0.71091389687818207
+ 0.71094106015416247
+ 0.71096822532551696
+ 0.71099539239251119
+ 0.71102256135540753
+ 0.71104973221446832
+ 0.71107690496995568
+ 0.71110407962213384
+ 0.71113125617126516
+ 0.7111584346176153
+ 0.71118561496144361
+ 0.71121279720301744
+ 0.71123998134259758
+ 0.71126716738044848
+ 0.71129435531683249
+ 0.71132154515201396
+ 0.71134873688625744
+ 0.71137593051982517
+ 0.71140312605298162
+ 0.71143032348599156
+ 0.71145752281911556
+ 0.71148472405262186
+ 0.71151192718677148
+ 0.71153913222182874
+ 0.71156633915805834
+ 0.71159354799572483
+ 0.7116207587350929
+ 0.71164797137642544
+ 0.71167518591998713
+ 0.71170240236604432
+ 0.71172962071485835
+ 0.711756840966694
+ 0.71178406312181786
+ 0.71181128718049469
+ 0.71183851314298741
+ 0.71186574100956124
+ 0.71189297078048253
+ 0.71192020245601484
+ 0.71194743603642097
+ 0.71197467152197147
+ 0.71200190891292758
+ 0.71202914820955288
+ 0.71205638941211746
+ 0.71208363252088314
+ 0.71211087753611502
+ 0.71213812445808
+ 0.71216537328704299
+ 0.71219262402326966
+ 0.71221987666702491
+ 0.71224713121857253
+ 0.71227438767818463
+ 0.71230164604612134
+ 0.71232890632264811
+ 0.71235616850803396
+ 0.71238343260254211
+ 0.71241069860644179
+ 0.71243796651999691
+ 0.7124652363434727
+ 0.71249250807713638
+ 0.71251978172125385
+ 0.71254705727609213
+ 0.71257433474191711
+ 0.71260161411899425
+ 0.71262889540759267
+ 0.71265617860797825
+ 0.71268346372041491
+ 0.71271075074517032
+ 0.7127380396825117
+ 0.71276533053270674
+ 0.71279262329601978
+ 0.71281991797272182
+ 0.71284721456307665
+ 0.71287451306735072
+ 0.71290181348581327
+ 0.71292911581873031
+ 0.71295642006636961
+ 0.71298372622899719
+ 0.71301103430688273
+ 0.71303834430029045
+ 0.71306565620949014
+ 0.71309297003474792
+ 0.71312028577633335
+ 0.71314760343451111
+ 0.71317492300955254
+ 0.7132022445017222
+ 0.71322956791128833
+ 0.7132568932385206
+ 0.71328422048368534
+ 0.71331154964705068
+ 0.71333888072888496
+ 0.71336621372945797
+ 0.7133935486490347
+ 0.71342088548788651
+ 0.71344822424627863
+ 0.71347556492448094
+ 0.71350290752276335
+ 0.71353025204139087
+ 0.7135575984806356
+ 0.7135849468407639
+ 0.71361229712204455
+ 0.71363964932474755
+ 0.71366700344914158
+ 0.71369435949549354
+ 0.71372171746407331
+ 0.7137490773551517
+ 0.71377643916899547
+ 0.71380380290587497
+ 0.71383116856605722
+ 0.71385853614981443
+ 0.71388590565741517
+ 0.71391327708912689
+ 0.7139406504452197
+ 0.71396802572596629
+ 0.71399540293163188
+ 0.71402278206248704
+ 0.71405016311880254
+ 0.71407754610084917
+ 0.71410493100889239
+ 0.7141323178432063
+ 0.71415970660406014
+ 0.71418709729172281
+ 0.71421448990646363
+ 0.7142418844485533
+ 0.71426928091826281
+ 0.71429667931586127
+ 0.71432407964161981
+ 0.71435148189580944
+ 0.71437888607869915
+ 0.71440629219056018
+ 0.71443370023166031
+ 0.71446111020227565
+ 0.71448852210267211
+ 0.71451593593312113
+ 0.71454335169389527
+ 0.71457076938526431
+ 0.71459818900749938
+ 0.71462561056087182
+ 0.71465303404565106
+ 0.71468045946210879
+ 0.71470788681051778
+ 0.71473531609114793
+ 0.71476274730427058
+ 0.71479018045015719
+ 0.71481761552907763
+ 0.7148450525413067
+ 0.71487249148711107
+ 0.71489993236676885
+ 0.71492737518054661
+ 0.71495481992871623
+ 0.71498226661155084
+ 0.71500971522932411
+ 0.71503716578230392
+ 0.71506461827076595
+ 0.71509207269497832
+ 0.71511952905521636
+ 0.71514698735175353
+ 0.71517444758485671
+ 0.71520190975480291
+ 0.7152293738618607
+ 0.7152568399063054
+ 0.71528430788840891
+ 0.71531177780844357
+ 0.7153392496666795
+ 0.71536672346339403
+ 0.71539419919885594
+ 0.71542167687333891
+ 0.71544915648711871
+ 0.71547663804046402
+ 0.71550412153364884
+ 0.71553160696694906
+ 0.71555909434063336
+ 0.71558658365497918
+ 0.71561407491025564
+ 0.71564156810674018
+ 0.71566906324470181
+ 0.71569656032441653
+ 0.71572405934615835
+ 0.71575156031019993
+ 0.71577906321681395
+ 0.71580656806627607
+ 0.71583407485885742
+ 0.71586158359483409
+ 0.715889094274477
+ 0.71591660689806569
+ 0.71594412146586772
+ 0.71597163797815944
+ 0.71599915643521683
+ 0.71602667683731136
+ 0.71605419918471891
+ 0.7160817234777126
+ 0.7161092497165672
+ 0.71613677790155872
+ 0.71616430803295872
+ 0.71619184011104509
+ 0.71621937413608949
+ 0.71624691010836827
+ 0.71627444802815443
+ 0.71630198789572641
+ 0.71632952971135377
+ 0.7163570734753133
+ 0.71638461918788332
+ 0.71641216684933695
+ 0.71643971645994597
+ 0.7164672680199905
+ 0.71649482152974209
+ 0.71652237698947918
+ 0.71654993439947556
+ 0.71657749376000424
+ 0.71660505507134398
+ 0.71663261833377012
+ 0.71666018354755778
+ 0.71668775071298063
+ 0.716715319830319
+ 0.716742890899843
+ 0.71677046392183164
+ 0.71679803889656191
+ 0.7168256158243077
+ 0.71685319470534759
+ 0.71688077553995233
+ 0.71690835832840383
+ 0.7169359430709763
+ 0.71696352976794686
+ 0.71699111841958951
+ 0.71701870902618148
+ 0.71704630158800209
+ 0.71707389610532335
+ 0.71710149257842637
+ 0.71712909100758504
+ 0.71715669139307692
+ 0.71718429373517978
+ 0.71721189803416741
+ 0.71723950429031935
+ 0.71726711250391306
+ 0.71729472267522298
+ 0.71732233480453034
+ 0.71734994889210912
+ 0.71737756493823712
+ 0.71740518294319233
+ 0.71743280290725076
+ 0.71746042483069195
+ 0.71748804871379224
+ 0.7175156745568293
+ 0.71754330236008113
+ 0.71757093212382594
+ 0.71759856384833975
+ 0.71762619753390078
+ 0.71765383318078868
+ 0.71768147078928168
+ 0.71770911035965423
+ 0.71773675189218833
+ 0.71776439538715853
+ 0.71779204084484816
+ 0.71781968826552867
+ 0.71784733764948516
+ 0.71787498899699265
+ 0.71790264230832934
+ 0.71793029758377536
+ 0.71795795482360925
+ 0.71798561402810768
+ 0.71801327519755076
+ 0.71804093833221694
+ 0.71806860343238665
+ 0.7180962704983368
+ 0.71812393953034748
+ 0.71815161052869747
+ 0.71817928349366711
+ 0.71820695842553339
+ 0.71823463532457676
+ 0.71826231419107589
+ 0.71828999502531143
+ 0.71831767782756206
+ 0.71834536259810844
+ 0.71837304933722945
+ 0.7184007380452021
+ 0.71842842872230916
+ 0.71845612136883086
+ 0.71848381598504663
+ 0.71851151257123358
+ 0.71853921112767583
+ 0.71856691165465103
+ 0.71859461415243797
+ 0.71862231862132142
+ 0.7186500250615766
+ 0.71867773347348662
+ 0.71870544385733237
+ 0.71873315621339295
+ 0.71876087054194793
+ 0.71878858684327973
+ 0.71881630511766803
+ 0.71884402536539393
+ 0.71887174758673866
+ 0.7188994717819831
+ 0.71892719795140714
+ 0.71895492609529177
+ 0.71898265621391844
+ 0.71901038830756847
+ 0.71903812237652298
+ 0.71906585842106185
+ 0.71909359644147008
+ 0.71912133643802534
+ 0.71914907841100928
+ 0.71917682236070524
+ 0.71920456828739443
+ 0.71923231619135697
+ 0.71926006607287607
+ 0.71928781793223362
+ 0.71931557176970917
+ 0.71934332758558639
+ 0.71937108538014871
+ 0.71939884515367614
+ 0.71942660690644866
+ 0.7194543706387535
+ 0.71948213635086877
+ 0.71950990404308002
+ 0.71953767371566746
+ 0.71956544536891287
+ 0.71959321900310014
+ 0.71962099461851115
+ 0.719648772215428
+ 0.71967655179413625
+ 0.71970433335491446
+ 0.71973211689805006
+ 0.71975990242382171
+ 0.7197876899325133
+ 0.7198154794244106
+ 0.71984327089979239
+ 0.7198710643589461
+ 0.71989885980215251
+ 0.71992665722969551
+ 0.71995445664185764
+ 0.71998225803892291
+ 0.72001006142117374
+ 0.72003786678889625
+ 0.72006567414237299
+ 0.72009348348188629
+ 0.72012129480772058
+ 0.7201491081201602
+ 0.7201769234194878
+ 0.72020474070598961
+ 0.72023255997994806
+ 0.72026038124164615
+ 0.72028820449136999
+ 0.72031602972940423
+ 0.72034385695602976
+ 0.72037168617153313
+ 0.72039951737620056
+ 0.72042735057031337
+ 0.7204551857541579
+ 0.72048302292801891
+ 0.72051086209217929
+ 0.7205387032469257
+ 0.72056654639254136
+ 0.72059439152931248
+ 0.72062223865752417
+ 0.72065008777745787
+ 0.7206779388894039
+ 0.72070579199364504
+ 0.72073364709046672
+ 0.72076150418015217
+ 0.7207893632629897
+ 0.72081722433926299
+ 0.72084508740925868
+ 0.72087295247326033
+ 0.7209008195315566
+ 0.72092868858443082
+ 0.72095655963216865
+ 0.72098443267505663
+ 0.72101230771338221
+ 0.72104018474742881
+ 0.72106806377748189
+ 0.72109594480383032
+ 0.72112382782675954
+ 0.72115171284655344
+ 0.72117959986350078
+ 0.72120748887788733
+ 0.72123537988999842
+ 0.72126327290012171
+ 0.72129116790854431
+ 0.72131906491555209
+ 0.72134696392143061
+ 0.72137486492646752
+ 0.72140276793095015
+ 0.72143067293516439
+ 0.72145857993939788
+ 0.72148648894393652
+ 0.72151439994906941
+ 0.72154231295508287
+ 0.72157022796226422
+ 0.72159814497089969
+ 0.72162606398127704
+ 0.72165398499368572
+ 0.72168190800841014
+ 0.72170983302573999
+ 0.72173776004596124
+ 0.721765689069362
+ 0.72179362009623171
+ 0.72182155312685692
+ 0.72184948816152561
+ 0.72187742520052556
+ 0.72190536424414509
+ 0.72193330529267064
+ 0.72196124834639375
+ 0.72198919340560086
+ 0.72201714047058019
+ 0.72204508954162006
+ 0.72207304061900857
+ 0.72210099370303416
+ 0.72212894879398692
+ 0.72215690589215353
+ 0.72218486499782408
+ 0.72221282611128701
+ 0.72224078923283086
+ 0.72226875436274396
+ 0.72229672150131852
+ 0.72232469064883964
+ 0.72235266180559754
+ 0.72238063497188254
+ 0.72240861014798174
+ 0.72243658733418903
+ 0.72246456653078783
+ 0.72249254773807237
+ 0.72252053095632751
+ 0.72254851618584781
+ 0.72257650342692004
+ 0.72260449267983495
+ 0.72263248394488167
+ 0.72266047722235049
+ 0.72268847251253243
+ 0.72271646981571469
+ 0.72274446913218993
+ 0.72277247046224691
+ 0.72280047380617518
+ 0.72282847916426707
+ 0.722856486536812
+ 0.72288449592410231
+ 0.7229125073264242
+ 0.72294052074407011
+ 0.72296853617733303
+ 0.7229965536265005
+ 0.72302457309186363
+ 0.7230525945737154
+ 0.72308061807234503
+ 0.72310864358804405
+ 0.72313667112110358
+ 0.72316470067181471
+ 0.72319273224046732
+ 0.72322076582735273
+ 0.72324880143276549
+ 0.72327683905699403
+ 0.723304878700331
+ 0.72333292036306662
+ 0.72336096404549377
+ 0.72338900974790243
+ 0.72341705747058604
+ 0.72344510721383604
+ 0.72347315897794418
+ 0.72350121276320356
+ 0.72352926856990296
+ 0.72355732639833703
+ 0.72358538624879809
+ 0.7236134481215758
+ 0.72364151201696558
+ 0.72366957793525777
+ 0.72369764587674579
+ 0.72372571584172163
+ 0.72375378783047728
+ 0.72378186184330651
+ 0.72380993788050307
+ 0.72383801594235553
+ 0.72386609602916119
+ 0.7238941781412106
+ 0.72392226227879752
+ 0.72395034844221418
+ 0.72397843663175465
+ 0.72400652684771105
+ 0.72403461909037758
+ 0.72406271336004802
+ 0.72409080965701345
+ 0.72411890798157119
+ 0.72414700833401013
+ 0.72417511071462648
+ 0.72420321512371433
+ 0.72423132156156622
+ 0.72425943002847648
+ 0.7242875405247392
+ 0.72431565305064916
+ 0.72434376760649721
+ 0.72437188419258092
+ 0.7244000028091917
+ 0.72442812345662555
+ 0.72445624613517712
+ 0.72448437084513917
+ 0.72451249758680791
+ 0.72454062636047489
+ 0.72456875716643798
+ 0.72459689000499006
+ 0.72462502487642777
+ 0.72465316178104244
+ 0.72468130071913039
+ 0.72470944169098861
+ 0.72473758469690974
+ 0.72476572973719067
+ 0.72479387681212459
+ 0.7248220259220064
+ 0.72485017706713462
+ 0.72487833024780091
+ 0.72490648546430358
+ 0.7249346427169362
+ 0.72496280200599383
+ 0.72499096333177515
+ 0.7250191266945718
+ 0.72504729209468255
+ 0.72507545953240449
+ 0.72510362900802938
+ 0.72513180052185588
+ 0.72515997407417787
+ 0.72518814966529399
+ 0.7252163272954999
+ 0.72524450696508924
+ 0.72527268867436256
+ 0.72530087242361396
+ 0.72532905821313887
+ 0.72535724604323626
+ 0.7253854359142019
+ 0.72541362782632979
+ 0.72544182177992056
+ 0.72547001777527031
+ 0.72549821581267282
+ 0.72552641589242928
+ 0.72555461801483356
+ 0.72558282218018533
+ 0.72561102838877833
+ 0.72563923664091423
+ 0.72566744693688678
+ 0.72569565927699575
+ 0.72572387366153546
+ 0.72575209009080699
+ 0.72578030856510489
+ 0.7258085290847287
+ 0.72583675164997619
+ 0.72586497626114554
+ 0.72589320291853299
+ 0.72592143162243816
+ 0.72594966237315739
+ 0.72597789517098887
+ 0.72600613001623404
+ 0.72603436690918588
+ 0.72606260585014781
+ 0.72609084683941449
+ 0.72611908987728613
+ 0.72614733496406081
+ 0.72617558210003863
+ 0.72620383128551447
+ 0.7262320825207903
+ 0.72626033580616434
+ 0.72628859114193678
+ 0.72631684852840284
+ 0.72634510796586449
+ 0.72637336945461828
+ 0.72640163299496652
+ 0.72642989858720786
+ 0.72645816623164083
+ 0.72648643592856399
+ 0.72651470767827819
+ 0.72654298148108187
+ 0.72657125733727568
+ 0.72659953524715837
+ 0.72662781521103059
+ 0.72665609722919133
+ 0.72668438130193935
+ 0.72671266742957719
+ 0.72674095561240393
+ 0.72676924585072011
+ 0.72679753814482306
+ 0.72682583249501742
+ 0.72685412890160028
+ 0.72688242736487441
+ 0.72691072788513711
+ 0.72693903046269137
+ 0.72696733509783618
+ 0.7269956417908745
+ 0.72702395054210567
+ 0.72705226135182899
+ 0.72708057422034911
+ 0.72710888914796368
+ 0.72713720613497568
+ 0.72716552518168287
+ 0.72719384628839179
+ 0.72722216945539864
+ 0.72725049468300973
+ 0.72727882197152305
+ 0.72730715132123835
+ 0.72733548273246229
+ 0.72736381620549118
+ 0.72739215174063165
+ 0.72742048933818193
+ 0.7274488289984451
+ 0.72747717072172302
+ 0.72750551450831713
+ 0.72753386035853118
+ 0.72756220827266482
+ 0.7275905582510217
+ 0.7276189102939038
+ 0.7276472644016142
+ 0.72767562057445356
+ 0.72770397881272531
+ 0.72773233911673296
+ 0.72776070148677852
+ 0.72778906592316261
+ 0.72781743242619201
+ 0.72784580099616736
+ 0.72787417163339074
+ 0.72790254433816581
+ 0.72793091911079666
+ 0.72795929595158548
+ 0.72798767486083449
+ 0.72801605583884954
+ 0.72804443888593096
+ 0.72807282400238482
+ 0.72810121118851345
+ 0.72812960044462105
+ 0.72815799177101159
+ 0.72818638516798595
+ 0.72821478063585021
+ 0.72824317817490858
+ 0.72827157778546359
+ 0.72829997946782155
+ 0.72832838322228488
+ 0.72835678904915635
+ 0.72838519694874226
+ 0.72841360692134705
+ 0.72844201896727345
+ 0.7284704330868278
+ 0.72849884928031317
+ 0.72852726754803387
+ 0.72855568789029657
+ 0.72858411030740577
+ 0.72861253479966459
+ 0.72864096136737788
+ 0.72866939001085218
+ 0.72869782073039047
+ 0.72872625352629938
+ 0.72875468839888569
+ 0.72878312534845258
+ 0.72881156437530503
+ 0.72884000547974803
+ 0.72886844866209022
+ 0.7288968939226329
+ 0.72892534126168507
+ 0.72895379067955179
+ 0.7289822421765364
+ 0.72901069575294775
+ 0.72903915140909092
+ 0.72906760914527136
+ 0.72909606896179435
+ 0.72912453085896878
+ 0.72915299483709661
+ 0.7291814608964885
+ 0.72920992903744797
+ 0.72923839926028433
+ 0.72926687156529935
+ 0.72929534595280421
+ 0.72932382242310412
+ 0.72935230097650505
+ 0.72938078161331421
+ 0.72940926433383746
+ 0.729437749138384
+ 0.72946623602725957
+ 0.72949472500077184
+ 0.72952321605922832
+ 0.72955170920293488
+ 0.72958020443219762
+ 0.72960870174732761
+ 0.72963720114863084
+ 0.72966570263641339
+ 0.7296942062109848
+ 0.72972271187265114
+ 0.72975121962172218
+ 0.72977972945850222
+ 0.72980824138330447
+ 0.72983675539643356
+ 0.72986527149819724
+ 0.72989378968890384
+ 0.72992230996886309
+ 0.72995083233838309
+ 0.72997935679777037
+ 0.73000788334733469
+ 0.73003641198738456
+ 0.73006494271822964
+ 0.73009347554017512
+ 0.73012201045353264
+ 0.7301505474586123
+ 0.73017908655571906
+ 0.73020762774516479
+ 0.73023617102725646
+ 0.73026471640230595
+ 0.73029326387061999
+ 0.73032181343250724
+ 0.73035036508827988
+ 0.73037891883824635
+ 0.73040747468271572
+ 0.73043603262199619
+ 0.73046459265640051
+ 0.73049315478623567
+ 0.73052171901181195
+ 0.73055028533344191
+ 0.73057885375143106
+ 0.73060742426609337
+ 0.73063599687773628
+ 0.73066457158667053
+ 0.73069314839320854
+ 0.73072172729765761
+ 0.73075030830032872
+ 0.7307788914015344
+ 0.73080747660158241
+ 0.73083606390078515
+ 0.73086465329945205
+ 0.73089324479789575
+ 0.73092183839642566
+ 0.73095043409535299
+ 0.73097903189499058
+ 0.7310076317956461
+ 0.7310362337976325
+ 0.73106483790126109
+ 0.73109344410684307
+ 0.73112205241468997
+ 0.7311506628251111
+ 0.73117927533842175
+ 0.73120788995492958
+ 0.73123650667495133
+ 0.7312651254987933
+ 0.73129374642677059
+ 0.73132236945919471
+ 0.73135099459637554
+ 0.73137962183862826
+ 0.73140825118626274
+ 0.73143688263959261
+ 0.73146551619892775
+ 0.73149415186458333
+ 0.73152278963687145
+ 0.73155142951610397
+ 0.73158007150259241
+ 0.73160871559665086
+ 0.73163736179859118
+ 0.73166601010872701
+ 0.73169466052737064
+ 0.73172331305483562
+ 0.73175196769143414
+ 0.73178062443748026
+ 0.73180928329328609
+ 0.73183794425916548
+ 0.73186660733543252
+ 0.73189527252239972
+ 0.73192393982037895
+ 0.7319526092296883
+ 0.73198128075063806
+ 0.73200995438354277
+ 0.73203863012871462
+ 0.73206730798646968
+ 0.73209598795712061
+ 0.73212467004098336
+ 0.73215335423837058
+ 0.73218204054959679
+ 0.7322107289749763
+ 0.73223941951482008
+ 0.73226811216944798
+ 0.73229680693917276
+ 0.73232550382430728
+ 0.73235420282516805
+ 0.7323829039420694
+ 0.73241160717532616
+ 0.73244031252525144
+ 0.73246901999216163
+ 0.73249772957637327
+ 0.73252644127819788
+ 0.73255515509795366
+ 0.73258387103595557
+ 0.7326125890925167
+ 0.73264130926795568
+ 0.7326700315625857
+ 0.73269875597672374
+ 0.73272748251068465
+ 0.73275621116478362
+ 0.73278494193933597
+ 0.7328136748346622
+ 0.73284240985107008
+ 0.73287114698888411
+ 0.73289988624841584
+ 0.73292862762998079
+ 0.73295737113389603
+ 0.73298611676048042
+ 0.73301486451004771
+ 0.7330436143829151
+ 0.73307236637939999
+ 0.7331011204998179
+ 0.73312987674448615
+ 0.73315863511372026
+ 0.73318739560783963
+ 0.73321615822715802
+ 0.73324492297199484
+ 0.73327368984266761
+ 0.73330245883949208
+ 0.73333122996278399
+ 0.73336000321286654
+ 0.73338877859005014
+ 0.7334175560946562
+ 0.73344633572700058
+ 0.73347511748740279
+ 0.73350390137618093
+ 0.73353268739365074
+ 0.73356147554012863
+ 0.73359026581593778
+ 0.73361905822139239
+ 0.73364785275681088
+ 0.73367664942251276
+ 0.73370544821881623
+ 0.73373424914603746
+ 0.73376305220449844
+ 0.73379185739451369
+ 0.73382066471640484
+ 0.73384947417049029
+ 0.73387828575708658
+ 0.73390709947651567
+ 0.73393591532909386
+ 0.73396473331513978
+ 0.73399355343497541
+ 0.73402237568891748
+ 0.73405120007728797
+ 0.73408002660040361
+ 0.73410885525858305
+ 0.7341376860521468
+ 0.73416651898141527
+ 0.73419535404670866
+ 0.73422419124834415
+ 0.73425303058664404
+ 0.73428187206192719
+ 0.73431071567451234
+ 0.73433956142472023
+ 0.73436840931287151
+ 0.73439725933928679
+ 0.73442611150428527
+ 0.73445496580818581
+ 0.73448382225131292
+ 0.7345126808339838
+ 0.73454154155651952
+ 0.73457040441924082
+ 0.73459926942247056
+ 0.73462813656652604
+ 0.73465700585173044
+ 0.73468587727840473
+ 0.73471475084686799
+ 0.73474362655744352
+ 0.7347725044104505
+ 0.73480138440621201
+ 0.73483026654504768
+ 0.73485915082728037
+ 0.73488803725323149
+ 0.73491692582322266
+ 0.73494581653757507
+ 0.73497470939661003
+ 0.73500360440064938
+ 0.73503250155001632
+ 0.73506140084503213
+ 0.7350903022860189
+ 0.73511920587329604
+ 0.73514811160719096
+ 0.73517701948802328
+ 0.73520592951611485
+ 0.7352348416917891
+ 0.73526375601536642
+ 0.73529267248717367
+ 0.73532159110752937
+ 0.73535051187675904
+ 0.73537943479518275
+ 0.73540835986312603
+ 0.73543728708091116
+ 0.73546621644886168
+ 0.73549514796729987
+ 0.73552408163654781
+ 0.73555301745693147
+ 0.7355819554287728
+ 0.73561089555239434
+ 0.73563983782812337
+ 0.73566878225627896
+ 0.73569772883718709
+ 0.73572667757117338
+ 0.73575562845855869
+ 0.73578458149966741
+ 0.73581353669482374
+ 0.73584249404435365
+ 0.73587145354857819
+ 0.73590041520782523
+ 0.73592937902241562
+ 0.73595834499267576
+ 0.73598731311893173
+ 0.73601628340150471
+ 0.736045255840721
+ 0.73607423043690523
+ 0.73610320719038402
+ 0.73613218610147835
+ 0.73616116717051816
+ 0.73619015039782321
+ 0.73621913578372344
+ 0.73624812332854028
+ 0.73627711303260202
+ 0.73630610489623383
+ 0.73633509891975868
+ 0.7363640951035052
+ 0.73639309344779669
+ 0.73642209395295799
+ 0.73645109661931829
+ 0.73648010144720222
+ 0.73650910843693529
+ 0.73653811758884258
+ 0.73656712890325304
+ 0.73659614238048998
+ 0.73662515802088258
+ 0.73665417582475234
+ 0.73668319579243213
+ 0.73671221792424357
+ 0.73674124222051407
+ 0.73677026868157247
+ 0.73679929730774474
+ 0.73682832809935628
+ 0.73685736105673438
+ 0.73688639618020857
+ 0.73691543347010424
+ 0.73694447292674736
+ 0.73697351455046545
+ 0.73700255834158779
+ 0.73703160430044223
+ 0.73706065242735275
+ 0.73708970272264873
+ 0.73711875518665992
+ 0.7371478098197104
+ 0.73717686662213178
+ 0.73720592559424802
+ 0.73723498673639087
+ 0.73726405004888629
+ 0.73729311553206256
+ 0.73732218318624732
+ 0.73735125301177074
+ 0.73738032500896067
+ 0.73740939917814363
+ 0.73743847551965114
+ 0.73746755403380981
+ 0.73749663472094795
+ 0.73752571758139707
+ 0.73755480261548412
+ 0.73758388982353895
+ 0.73761297920588997
+ 0.7376420707628657
+ 0.73767116449479631
+ 0.73770026040201053
+ 0.73772935848483845
+ 0.73775845874360868
+ 0.7377875611786533
+ 0.7378166657902977
+ 0.73784577257887396
+ 0.7378748815447127
+ 0.73790399268814078
+ 0.73793310600949402
+ 0.73796222150909441
+ 0.73799133918727966
+ 0.7380204590443733
+ 0.73804958108071139
+ 0.73807870529662123
+ 0.73810783169243532
+ 0.73813696026848108
+ 0.73816609102509101
+ 0.73819522396259629
+ 0.73822435908132589
+ 0.73825349638161075
+ 0.73828263586378573
+ 0.73831177752817645
+ 0.73834092137511753
+ 0.73837006740494027
+ 0.73839921561797406
+ 0.73842836601455175
+ 0.73845751859500297
+ 0.73848667335966067
+ 0.7385158303088547
+ 0.73854498944292146
+ 0.73857415076218724
+ 0.73860331426698533
+ 0.73863247995765058
+ 0.73866164783451127
+ 0.73869081789790225
+ 0.73871999014815515
+ 0.73874916458559992
+ 0.73877834121057018
+ 0.738807520023401
+ 0.73883670102442067
+ 0.7388658842139646
+ 0.73889506959236462
+ 0.73892425715995436
+ 0.73895344691706566
+ 0.73898263886403237
+ 0.73901183300118467
+ 0.73904102932886007
+ 0.73907022784738696
+ 0.73909942855710276
+ 0.73912863145833785
+ 0.73915783655142986
+ 0.73918704383670553
+ 0.73921625331450447
+ 0.73924546498515864
+ 0.73927467884900089
+ 0.73930389490636483
+ 0.73933311315758676
+ 0.73936233360299908
+ 0.73939155624293429
+ 0.73942078107772857
+ 0.73945000810771599
+ 0.73947923733323129
+ 0.73950846875460696
+ 0.7395377023721792
+ 0.73956693818628261
+ 0.7395961761972516
+ 0.73962541640542101
+ 0.73965465881112535
+ 0.73968390341469914
+ 0.73971315021647899
+ 0.73974239921679785
+ 0.73977165041599235
+ 0.73980090381439723
+ 0.73983015941234909
+ 0.739859417210181
+ 0.73988867720822982
+ 0.73991793940683237
+ 0.73994720380632339
+ 0.7399764704070364
+ 0.74000573920930979
+ 0.74003501021348073
+ 0.74006428341988073
+ 0.74009355882885042
+ 0.74012283644072485
+ 0.74015211625583766
+ 0.74018139827452767
+ 0.74021068249713207
+ 0.74023996892398447
+ 0.74026925755542383
+ 0.74029854839178755
+ 0.74032784143340924
+ 0.74035713668062786
+ 0.74038643413377936
+ 0.74041573379320269
+ 0.74044503565923536
+ 0.74047433973220955
+ 0.7405036460124681
+ 0.74053295450034506
+ 0.74056226519618151
+ 0.74059157810030984
+ 0.74062089321307134
+ 0.74065021053480362
+ 0.74067953006584275
+ 0.74070885180652646
+ 0.74073817575719625
+ 0.7407675019181863
+ 0.74079683028983478
+ 0.74082616087248288
+ 0.74085549366646708
+ 0.74088482867212713
+ 0.74091416588979753
+ 0.74094350531982178
+ 0.74097284696253618
+ 0.74100219081827889
+ 0.74103153688739021
+ 0.74106088517020807
+ 0.74109023566707255
+ 0.74111958837832059
+ 0.74114894330429382
+ 0.74117830044532906
+ 0.74120765980176828
+ 0.7412370213739482
+ 0.74126638516221099
+ 0.74129575116689506
+ 0.74132511938833756
+ 0.74135448982688223
+ 0.74138386248286614
+ 0.74141323735663167
+ 0.74144261444851733
+ 0.74147199375886397
+ 0.74150137528800852
+ 0.74153075903629706
+ 0.7415601450040652
+ 0.7415895331916551
+ 0.74161892359940784
+ 0.74164831622766225
+ 0.74167771107675962
+ 0.74170710814704399
+ 0.74173650743885111
+ 0.7417659089525257
+ 0.74179531268840515
+ 0.74182471864683575
+ 0.74185412682815355
+ 0.74188353723270306
+ 0.74191294986082545
+ 0.74194236471286046
+ 0.7419717817891508
+ 0.7420012010900362
+ 0.74203062261586328
+ 0.74206004636696832
+ 0.7420894723436976
+ 0.74211890054638974
+ 0.74214833097538746
+ 0.74217776363103427
+ 0.7422071985136719
+ 0.74223663562364361
+ 0.74226607496128949
+ 0.74229551652695269
+ 0.74232496032097706
+ 0.74235440634370609
+ 0.74238385459547984
+ 0.74241330507664183
+ 0.74244275778753599
+ 0.74247221272850605
+ 0.74250166989989375
+ 0.74253112930204135
+ 0.74256059093529425
+ 0.74259005479999496
+ 0.74261952089648531
+ 0.74264898922511113
+ 0.74267845978621649
+ 0.74270793258014367
+ 0.74273740760723495
+ 0.74276688486783804
+ 0.74279636436229346
+ 0.74282584609094748
+ 0.74285533005414406
+ 0.74288481625222591
+ 0.74291430468553898
+ 0.74294379535442601
+ 0.74297328825923314
+ 0.74300278340030479
+ 0.74303228077798378
+ 0.74306178039261828
+ 0.74309128224454901
+ 0.74312078633412437
+ 0.74315029266168731
+ 0.74317980122758409
+ 0.74320931203215956
+ 0.74323882507575856
+ 0.7432683403587258
+ 0.74329785788140978
+ 0.7433273776441518
+ 0.74335689964730223
+ 0.74338642389120224
+ 0.74341595037620078
+ 0.7434454791026408
+ 0.74347501007087125
+ 0.74350454328123883
+ 0.74353407873408706
+ 0.74356361642976287
+ 0.74359315636861156
+ 0.74362269855098206
+ 0.74365224297721955
+ 0.74368178964766962
+ 0.74371133856268112
+ 0.74374088972259966
+ 0.74377044312777063
+ 0.74379999877854486
+ 0.74382955667526629
+ 0.74385911681828409
+ 0.74388867920794199
+ 0.7439182438445896
+ 0.74394781072857596
+ 0.74397737986024504
+ 0.74400695123994653
+ 0.74403652486802963
+ 0.74406610074483848
+ 0.74409567887072259
+ 0.7441252592460299
+ 0.74415484187110981
+ 0.74418442674630692
+ 0.74421401387197395
+ 0.74424360324845573
+ 0.74427319487610022
+ 0.74430278875525868
+ 0.74433238488627762
+ 0.74436198326950886
+ 0.74439158390529492
+ 0.74442118679399116
+ 0.74445079193594221
+ 0.74448039933149834
+ 0.74451000898100961
+ 0.74453962088482406
+ 0.74456923504329031
+ 0.7445988514567603
+ 0.74462847012558075
+ 0.74465809105010194
+ 0.74468771423067248
+ 0.74471733966764453
+ 0.74474696736136825
+ 0.74477659731218915
+ 0.74480622952046094
+ 0.74483586398653256
+ 0.74486550071075464
+ 0.74489513969347765
+ 0.74492478093505066
+ 0.74495442443582416
+ 0.7449840701961491
+ 0.74501371821637608
+ 0.74504336849685771
+ 0.74507302103794149
+ 0.74510267583998002
+ 0.74513233290332237
+ 0.74516199222832324
+ 0.74519165381533004
+ 0.74522131766469557
+ 0.74525098377677279
+ 0.74528065215190931
+ 0.74531032279045983
+ 0.74533999569277554
+ 0.74536967085920613
+ 0.74539934829010468
+ 0.74542902798582233
+ 0.74545870994671415
+ 0.7454883941731264
+ 0.74551808066541747
+ 0.74554776942393386
+ 0.74557746044903206
+ 0.74560715374106223
+ 0.74563684930037766
+ 0.74566654712733182
+ 0.7456962472222749
+ 0.74572594958556182
+ 0.74575565421754475
+ 0.7457853611185753
+ 0.74581507028900917
+ 0.74584478172919633
+ 0.74587449543949258
+ 0.74590421142024965
+ 0.74593392967182159
+ 0.74596365019456223
+ 0.7459933729888254
+ 0.7460230980549617
+ 0.74605282539332873
+ 0.74608255500427845
+ 0.74611228688816522
+ 0.74614202104534144
+ 0.7461717574761646
+ 0.74620149618098575
+ 0.7462312371601606
+ 0.74626098041404354
+ 0.74629072594298729
+ 0.74632047374734789
+ 0.74635022382748162
+ 0.74637997618374097
+ 0.74640973081648254
+ 0.74643948772605717
+ 0.74646924691282313
+ 0.74649900837713667
+ 0.74652877211935076
+ 0.74655853813982198
+ 0.74658830643890328
+ 0.74661807701695304
+ 0.74664784987432598
+ 0.74667762501137547
+ 0.7467074024284599
+ 0.74673718212593421
+ 0.74676696410415511
+ 0.74679674836347787
+ 0.74682653490425754
+ 0.74685632372685273
+ 0.74688611483161693
+ 0.74691590821890885
+ 0.74694570388908388
+ 0.74697550184249906
+ 0.74700530207951155
+ 0.74703510460047495
+ 0.7470649094057501
+ 0.74709471649569059
+ 0.74712452587065736
+ 0.74715433753100413
+ 0.7471841514770885
+ 0.74721396770926773
+ 0.747243786227901
+ 0.74727360703334433
+ 0.74730343012595501
+ 0.74733325550609253
+ 0.74736308317411282
+ 0.74739291313037526
+ 0.74742274537523401
+ 0.74745257990905223
+ 0.74748241673218407
+ 0.74751225584498937
+ 0.74754209724782783
+ 0.74757194094105706
+ 0.74760178692503176
+ 0.74763163520011533
+ 0.74766148576666558
+ 0.747691338625039
+ 0.74772119377559565
+ 0.74775105121869545
+ 0.74778091095469645
+ 0.74781077298395704
+ 0.74784063730683747
+ 0.7478705039236978
+ 0.7479003728348963
+ 0.74793024404079345
+ 0.74796011754174574
+ 0.74798999333811733
+ 0.7480198714302646
+ 0.74804975181854838
+ 0.74807963450333059
+ 0.74810951948496829
+ 0.74813940676382396
+ 0.74816929634025597
+ 0.74819918821462539
+ 0.74822908238729269
+ 0.74825897885861847
+ 0.74828887762896357
+ 0.7483187786986889
+ 0.74834868206815341
+ 0.74837858773771959
+ 0.74840849570774859
+ 0.74843840597860134
+ 0.748468318550637
+ 0.74849823342422206
+ 0.74852815059971212
+ 0.74855807007747022
+ 0.74858799185785929
+ 0.7486179159412405
+ 0.74864784232797499
+ 0.74867777101842437
+ 0.74870770201295167
+ 0.74873763531191639
+ 0.74876757091568524
+ 0.74879750882461638
+ 0.74882744903907472
+ 0.74885739155941844
+ 0.74888733638601424
+ 0.74891728351922393
+ 0.74894723295940901
+ 0.74897718470693342
+ 0.74900713876215852
+ 0.74903709512544814
+ 0.74906705379716587
+ 0.74909701477767354
+ 0.74912697806733497
+ 0.74915694366651386
+ 0.74918691157557238
+ 0.74921688179487611
+ 0.7492468543247871
+ 0.74927682916566951
+ 0.74930680631788715
+ 0.74933678578180396
+ 0.7493667675577842
+ 0.74939675164619024
+ 0.74942673804738802
+ 0.7494567267617398
+ 0.74948671778961351
+ 0.74951671113137164
+ 0.74954670678737689
+ 0.74957670475799698
+ 0.74960670504359295
+ 0.74963670764453449
+ 0.74966671256118256
+ 0.74969671979390362
+ 0.74972672934306395
+ 0.74975674120902647
+ 0.74978675539215578
+ 0.74981677189282037
+ 0.74984679071138483
+ 0.74987681184821398
+ 0.74990683530367286
+ 0.74993686107812962
+ 0.74996688917194776
+ 0.74999691958549386
+ 0.75002695231913497
+ 0.75005698737323578
+ 0.75008702474816369
+ 0.75011706444428339
+ 0.75014710646196392
+ 0.75017715080156877
+ 0.75020719746346831
+ 0.7502372464480247
+ 0.75026729775560852
+ 0.75029735138658515
+ 0.75032740734132186
+ 0.75035746562018601
+ 0.7503875262235431
+ 0.7504175891517606
+ 0.75044765440521111
+ 0.75047772198425344
+ 0.75050779188926198
+ 0.75053786412060275
+ 0.75056793867864158
+ 0.75059801556374939
+ 0.75062809477629244
+ 0.75065817631663656
+ 0.75068826018515289
+ 0.75071834638220958
+ 0.75074843490817433
+ 0.75077852576341508
+ 0.75080861894829998
+ 0.7508387144631985
+ 0.75086881230848068
+ 0.75089891248451279
+ 0.75092901499166631
+ 0.75095911983030628
+ 0.75098922700080772
+ 0.75101933650353381
+ 0.75104944833885789
+ 0.75107956250714869
+ 0.75110967900877257
+ 0.75113979784410323
+ 0.75116991901350771
+ 0.75120004251735795
+ 0.75123016835602241
+ 0.75126029652986992
+ 0.75129042703927262
+ 0.751320559884601
+ 0.75135069506622365
+ 0.75138083258451149
+ 0.75141097243983512
+ 0.75144111463256491
+ 0.75147125916307167
+ 0.75150140603172466
+ 0.75153155523889792
+ 0.75156170678495882
+ 0.75159186067028194
+ 0.75162201689523633
+ 0.75165217546019314
+ 0.75168233636552317
+ 0.75171249961159936
+ 0.75174266519879285
+ 0.75177283312747478
+ 0.75180300339801809
+ 0.75183317601079247
+ 0.75186335096617074
+ 0.75189352826452605
+ 0.75192370790622809
+ 0.75195388989165202
+ 0.75198407422116731
+ 0.75201426089514722
+ 0.75204444991396702
+ 0.75207464127799462
+ 0.75210483498760727
+ 0.75213503104317281
+ 0.75216522944506858
+ 0.75219543019366431
+ 0.75222563328933567
+ 0.75225583873245438
+ 0.75228604652339426
+ 0.75231625666252888
+ 0.75234646915023051
+ 0.75237668398687274
+ 0.75240690117283138
+ 0.75243712070847679
+ 0.75246734259418646
+ 0.75249756683033087
+ 0.75252779341728759
+ 0.75255802235542901
+ 0.75258825364512938
+ 0.75261848728676106
+ 0.75264872328070176
+ 0.75267896162732395
+ 0.75270920232700389
+ 0.75273944538011595
+ 0.75276969078703282
+ 0.75279993854813232
+ 0.75283018866378737
+ 0.75286044113437434
+ 0.75289069596026947
+ 0.75292095314184404
+ 0.75295121267947784
+ 0.75298147457354403
+ 0.75301173882441741
+ 0.75304200543247612
+ 0.75307227439809543
+ 0.75310254572164992
+ 0.75313281940351839
+ 0.75316309544407212
+ 0.75319337384369323
+ 0.75322365460275353
+ 0.75325393772162974
+ 0.75328422320070065
+ 0.75331451104034164
+ 0.75334480124092951
+ 0.75337509380284162
+ 0.75340538872645335
+ 0.7534356860121435
+ 0.75346598566028755
+ 0.75349628767126309
+ 0.75352659204544892
+ 0.75355689878322085
+ 0.75358720788495626
+ 0.75361751935103238
+ 0.75364783318183071
+ 0.75367814937772326
+ 0.75370846793909119
+ 0.75373878886631418
+ 0.75376911215976605
+ 0.75379943781982828
+ 0.75382976584687678
+ 0.75386009624129136
+ 0.75389042900345149
+ 0.75392076413373355
+ 0.75395110163251711
+ 0.75398144150018198
+ 0.75401178373710642
+ 0.75404212834366846
+ 0.75407247532024801
+ 0.75410282466722334
+ 0.75413317638497424
+ 0.75416353047388118
+ 0.7541938869343241
+ 0.75422424576667957
+ 0.75425460697132962
+ 0.75428497054865296
+ 0.7543153364990276
+ 0.7543457048228398
+ 0.7543760755204626
+ 0.75440644859228012
+ 0.75443682403867274
+ 0.75446720186001925
+ 0.75449758205670014
+ 0.7545279646290981
+ 0.75455834957759182
+ 0.75458873690256201
+ 0.75461912660438968
+ 0.7546495186834572
+ 0.75467991314014371
+ 0.75471030997483013
+ 0.75474070918790115
+ 0.75477111077973558
+ 0.754801514750715
+ 0.75483192110122022
+ 0.75486232983163593
+ 0.75489274094233982
+ 0.75492315443371849
+ 0.75495357030614962
+ 0.75498398856001625
+ 0.75501440919570184
+ 0.75504483221358931
+ 0.75507525761405825
+ 0.75510568539749423
+ 0.75513611556427829
+ 0.75516654811479234
+ 0.75519698304942151
+ 0.75522742036854573
+ 0.75525786007255047
+ 0.75528830216181719
+ 0.75531874663672971
+ 0.75534919349767171
+ 0.75537964274502689
+ 0.75541009437917728
+ 0.75544054840050656
+ 0.75547100480940055
+ 0.75550146360624304
+ 0.7555319247914144
+ 0.75556238836530054
+ 0.75559285432828716
+ 0.75562332268075649
+ 0.75565379342309469
+ 0.75568426655568388
+ 0.75571474207890865
+ 0.75574521999315658
+ 0.75577570029881025
+ 0.75580618299625413
+ 0.75583666808587424
+ 0.75586715556805351
+ 0.75589764544317972
+ 0.7559281377116378
+ 0.755958632373812
+ 0.75598912943008723
+ 0.75601962888084973
+ 0.7560501307264863
+ 0.75608063496738165
+ 0.75611114160392046
+ 0.75614165063649141
+ 0.75617216206547744
+ 0.75620267589126722
+ 0.75623319211424589
+ 0.75626371073479826
+ 0.756294231753315
+ 0.75632475517017772
+ 0.75635528098577687
+ 0.75638580920049769
+ 0.75641633981472756
+ 0.75644687282885137
+ 0.7564774082432586
+ 0.75650794605833616
+ 0.75653848627446962
+ 0.75656902889204802
+ 0.75659957391145904
+ 0.75663012133308993
+ 0.75666067115732616
+ 0.75669122338455908
+ 0.75672177801517437
+ 0.75675233504956152
+ 0.75678289448810632
+ 0.75681345633119823
+ 0.75684402057922695
+ 0.75687458723257839
+ 0.75690515629164212
+ 0.75693572775680629
+ 0.75696630162846212
+ 0.75699687790699421
+ 0.75702745659279591
+ 0.75705803768625346
+ 0.75708862118775699
+ 0.75711920709769442
+ 0.75714979541645588
+ 0.75718038614443151
+ 0.75721097928201131
+ 0.75724157482958188
+ 0.757272172787537
+ 0.75730277315626349
+ 0.75733337593615146
+ 0.75736398112759329
+ 0.7573945887309772
+ 0.75742519874669401
+ 0.75745581117513394
+ 0.75748642601668781
+ 0.75751704327174429
+ 0.75754766294069753
+ 0.75757828502393632
+ 0.75760890952185167
+ 0.75763953643483595
+ 0.75767016576327662
+ 0.7577007975075678
+ 0.75773143166810064
+ 0.75776206824526615
+ 0.75779270723945524
+ 0.7578233486510626
+ 0.7578539924804738
+ 0.75788463872808753
+ 0.75791528739429104
+ 0.75794593847947755
+ 0.75797659198404022
+ 0.75800724790837026
+ 0.75803790625285916
+ 0.75806856701790193
+ 0.75809923020389003
+ 0.75812989581121693
+ 0.75816056384027219
+ 0.75819123429145119
+ 0.75822190716514559
+ 0.75825258246175076
+ 0.75828326018165837
+ 0.75831394032526389
+ 0.75834462289295557
+ 0.75837530788513086
+ 0.75840599530218333
+ 0.75843668514450702
+ 0.75846737741249193
+ 0.75849807210653575
+ 0.75852876922703238
+ 0.75855946877437408
+ 0.75859017074895663
+ 0.75862087515117416
+ 0.7586515819814208
+ 0.75868229124008901
+ 0.75871300292757826
+ 0.75874371704427956
+ 0.75877443359058883
+ 0.7588051525669004
+ 0.75883587397361074
+ 0.7588665978111141
+ 0.75889732407980515
+ 0.75892805278008024
+ 0.75895878391233573
+ 0.75898951747696641
+ 0.75902025347436519
+ 0.75905099190493386
+ 0.7590817327690621
+ 0.75911247606715015
+ 0.75914322179959459
+ 0.75917396996678865
+ 0.75920472056912902
+ 0.75923547360701282
+ 0.75926622908083696
+ 0.7592969869909999
+ 0.75932774733789521
+ 0.75935851012192168
+ 0.75938927534347667
+ 0.75942004300295352
+ 0.7594508131007548
+ 0.75948158563727419
+ 0.75951236061291083
+ 0.75954313802806028
+ 0.75957391788312179
+ 0.75960470017849446
+ 0.75963548491457411
+ 0.75966627209175808
+ 0.75969706171044604
+ 0.75972785377103536
+ 0.75975864827392403
+ 0.75978944521951131
+ 0.75982024460819497
+ 0.75985104644037316
+ 0.75988185071644698
+ 0.75991265743681291
+ 0.7599434666018704
+ 0.75997427821201768
+ 0.76000509226765633
+ 0.7600359087691827
+ 0.76006672771699701
+ 0.76009754911150063
+ 0.76012837295309033
+ 0.76015919924216802
+ 0.76019002797913193
+ 0.76022085916438231
+ 0.76025169279831939
+ 0.76028252888134373
+ 0.76031336741385547
+ 0.76034420839625338
+ 0.7603750518289395
+ 0.7604058977123126
+ 0.76043674604677702
+ 0.76046759683272958
+ 0.76049845007057282
+ 0.76052930576070576
+ 0.76056016390353243
+ 0.76059102449945215
+ 0.76062188754886739
+ 0.76065275305217916
+ 0.76068362100978659
+ 0.76071449142209602
+ 0.76074536428950501
+ 0.76077623961241636
+ 0.76080711739123297
+ 0.76083799762635618
+ 0.76086888031818889
+ 0.76089976546713267
+ 0.76093065307358854
+ 0.76096154313796172
+ 0.76099243566065355
+ 0.76102333064206729
+ 0.76105422808260448
+ 0.76108512798266681
+ 0.76111603034266129
+ 0.76114693516298781
+ 0.76117784244405162
+ 0.76120875218625295
+ 0.76123966438999868
+ 0.76127057905569295
+ 0.76130149618373544
+ 0.76133241577453192
+ 0.76136333782848631
+ 0.76139426234600249
+ 0.76142518932748426
+ 0.76145611877333752
+ 0.76148705068396449
+ 0.76151798505977097
+ 0.7615489219011613
+ 0.7615798612085376
+ 0.76161080298230777
+ 0.76164174722287625
+ 0.76167269393064729
+ 0.76170364310602712
+ 0.7617345947494164
+ 0.76176554886122705
+ 0.7617965054418615
+ 0.76182746449172289
+ 0.761858426011221
+ 0.76188939000075873
+ 0.76192035646074274
+ 0.76195132539157961
+ 0.76198229679367402
+ 0.76201327066743274
+ 0.76204424701326423
+ 0.76207522583157161
+ 0.762106207122764
+ 0.76213719088724408
+ 0.76216817712542262
+ 0.76219916583770675
+ 0.76223015702449959
+ 0.76226115068621025
+ 0.76229214682324753
+ 0.76232314543601509
+ 0.76235414652492395
+ 0.76238515009037922
+ 0.76241615613278835
+ 0.76244716465256246
+ 0.76247817565010534
+ 0.76250918912582788
+ 0.7625402050801362
+ 0.76257122351343742
+ 0.76260224442614311
+ 0.76263326781865903
+ 0.76266429369139477
+ 0.7626953220447581
+ 0.76272635287916035
+ 0.76275738619500588
+ 0.76278842199270802
+ 0.76281946027267311
+ 0.7628505010353106
+ 0.76288154428103072
+ 0.76291259001024159
+ 0.76294363822335487
+ 0.7629746889207788
+ 0.76300574210292171
+ 0.76303679777019562
+ 0.76306785592300885
+ 0.76309891656177153
+ 0.763129979686896
+ 0.76316104529879059
+ 0.76319211339786563
+ 0.7632231839845337
+ 0.76325425705920324
+ 0.76328533262228293
+ 0.76331641067418898
+ 0.76334749121532641
+ 0.76337857424611155
+ 0.76340965976695319
+ 0.7634407477782621
+ 0.76347183828045118
+ 0.7635029312739311
+ 0.76353402675911097
+ 0.76356512473640725
+ 0.76359622520622938
+ 0.76362732816898826
+ 0.76365843362509866
+ 0.76368954157497004
+ 0.76372065201901551
+ 0.76375176495764796
+ 0.76378288039127906
+ 0.76381399832032171
+ 0.76384511874519112
+ 0.76387624166629531
+ 0.76390736708405282
+ 0.76393849499887012
+ 0.76396962541116575
+ 0.76400075832135173
+ 0.76403189372984137
+ 0.76406303163704681
+ 0.76409417204338315
+ 0.7641253149492625
+ 0.76415646035510054
+ 0.76418760826131094
+ 0.76421875866830746
+ 0.76424991157650257
+ 0.76428106698631348
+ 0.76431222489815276
+ 0.76434338531243606
+ 0.7643745482295774
+ 0.76440571364999133
+ 0.76443688157409184
+ 0.76446805200229695
+ 0.76449922493501898
+ 0.76453040037267417
+ 0.76456157831567717
+ 0.76459275876444421
+ 0.76462394171938963
+ 0.76465512718092998
+ 0.7646863151494816
+ 0.76471750562545948
+ 0.76474869860928163
+ 0.76477989410136127
+ 0.76481109210211484
+ 0.76484229261195913
+ 0.76487349563131279
+ 0.76490470116059084
+ 0.76493590920020826
+ 0.76496711975058551
+ 0.76499833281213614
+ 0.76502954838527693
+ 0.76506076647042864
+ 0.76509198706800663
+ 0.76512321017842633
+ 0.76515443580210829
+ 0.7651856639394683
+ 0.76521689459092357
+ 0.76524812775689499
+ 0.76527936343779646
+ 0.7653106016340474
+ 0.76534184234606684
+ 0.76537308557427441
+ 0.76540433131908403
+ 0.7654355795809189
+ 0.76546683036019669
+ 0.76549808365733152
+ 0.76552933947274859
+ 0.76556059780686381
+ 0.76559185866009538
+ 0.76562312203286653
+ 0.76565438792558982
+ 0.76568565633869079
+ 0.76571692727258756
+ 0.76574820072769811
+ 0.76577947670444291
+ 0.7658107552032416
+ 0.76584203622451463
+ 0.76587331976868234
+ 0.7659046058361646
+ 0.76593589442738219
+ 0.76596718554275511
+ 0.76599847918270403
+ 0.76602977534765115
+ 0.76606107403801338
+ 0.76609237525421492
+ 0.76612367899667644
+ 0.76615498526581682
+ 0.7661862940620604
+ 0.76621760538582795
+ 0.76624891923753857
+ 0.76628023561761682
+ 0.7663115545264817
+ 0.76634287596455786
+ 0.76637419993226652
+ 0.76640552643002668
+ 0.76643685545826523
+ 0.76646818701740149
+ 0.76649952110785846
+ 0.76653085773006102
+ 0.76656219688442695
+ 0.76659353857138335
+ 0.76662488279134966
+ 0.76665622954475099
+ 0.76668757883201266
+ 0.76671893065355257
+ 0.7667502850097998
+ 0.76678164190117237
+ 0.76681300132809749
+ 0.76684436329099703
+ 0.76687572779029645
+ 0.76690709482641961
+ 0.76693846439978841
+ 0.76696983651082862
+ 0.76700121115996589
+ 0.76703258834762045
+ 0.76706396807422028
+ 0.76709535034018927
+ 0.7671267351459532
+ 0.7671581224919346
+ 0.76718951237856126
+ 0.76722090480625404
+ 0.7672522997754424
+ 0.76728369728654922
+ 0.76731509734000236
+ 0.76734649993622461
+ 0.76737790507564219
+ 0.76740931275868352
+ 0.76744072298577126
+ 0.76747213575733386
+ 0.7675035510737942
+ 0.7675349689355826
+ 0.76756638934312404
+ 0.7675978122968431
+ 0.76762923779716852
+ 0.76766066584452541
+ 0.76769209643934433
+ 0.76772352958204848
+ 0.76775496527306497
+ 0.76778640351282246
+ 0.76781784430174826
+ 0.76784928764026927
+ 0.76788073352881314
+ 0.76791218196780842
+ 0.76794363295768275
+ 0.7679750864988617
+ 0.76800654259177614
+ 0.76803800123685362
+ 0.76806946243452001
+ 0.76810092618520809
+ 0.76813239248934384
+ 0.76816386134735481
+ 0.76819533275967256
+ 0.76822680672672283
+ 0.76825828324893741
+ 0.76828976232674395
+ 0.76832124396057044
+ 0.76835272815084854
+ 0.76838421489800623
+ 0.76841570420247551
+ 0.76844719606468259
+ 0.76847869048506101
+ 0.76851018746403732
+ 0.76854168700204173
+ 0.76857318909950811
+ 0.76860469375686291
+ 0.76863620097453833
+ 0.76866771075296458
+ 0.76869922309257066
+ 0.76873073799379033
+ 0.76876225545705412
+ 0.76879377548279071
+ 0.76882529807143118
+ 0.7688568232234092
+ 0.76888835093915608
+ 0.76891988121910049
+ 0.76895141406367873
+ 0.76898294947331614
+ 0.76901448744845136
+ 0.7690460279895095
+ 0.76907757109692909
+ 0.76910911677113747
+ 0.76914066501256961
+ 0.7691722158216584
+ 0.76920376919883526
+ 0.76923532514453141
+ 0.76926688365918183
+ 0.76929844474321973
+ 0.7693300083970751
+ 0.7693615746211846
+ 0.76939314341597986
+ 0.76942471478189434
+ 0.76945628871936178
+ 0.7694878652288174
+ 0.76951944431069108
+ 0.76955102596542035
+ 0.7695826101934371
+ 0.76961419699517686
+ 0.7696457863710735
+ 0.76967737832156091
+ 0.76970897284707296
+ 0.76974056994804574
+ 0.76977216962491291
+ 0.76980377187811089
+ 0.76983537670807334
+ 0.7698669841152348
+ 0.76989859410003136
+ 0.76993020666289735
+ 0.76996182180427053
+ 0.76999343952458565
+ 0.77002505982427716
+ 0.77005668270378136
+ 0.77008830816353269
+ 0.77011993620397157
+ 0.77015156682553088
+ 0.77018320002864682
+ 0.77021483581375638
+ 0.7702464741812981
+ 0.77027811513170497
+ 0.7703097586654154
+ 0.7703414047828685
+ 0.77037305348449736
+ 0.77040470477074241
+ 0.77043635864203919
+ 0.77046801509882623
+ 0.77049967414153908
+ 0.77053133577061683
+ 0.77056299998649824
+ 0.77059466678961897
+ 0.77062633618041998
+ 0.77065800815933505
+ 0.77068968272680538
+ 0.77072135988327006
+ 0.77075303962916686
+ 0.77078472196493331
+ 0.77081640689100905
+ 0.77084809440783153
+ 0.7708797845158406
+ 0.7709114772154777
+ 0.77094317250717881
+ 0.77097487039138568
+ 0.77100657086853441
+ 0.77103827393906854
+ 0.77106997960342616
+ 0.77110168786204725
+ 0.77113339871537012
+ 0.77116511216383665
+ 0.77119682820788704
+ 0.77122854684796138
+ 0.77126026808449999
+ 0.77129199191794517
+ 0.77132371834873348
+ 0.77135544737730899
+ 0.77138717900411236
+ 0.77141891322958378
+ 0.77145065005416436
+ 0.77148238947829628
+ 0.7715141315024221
+ 0.77154587612698067
+ 0.77157762335241475
+ 0.77160937317916711
+ 0.7716411256076785
+ 0.77167288063839001
+ 0.77170463827174818
+ 0.77173639850819042
+ 0.77176816134816151
+ 0.77179992679210263
+ 0.77183169484045888
+ 0.77186346549367135
+ 0.77189523875218335
+ 0.7719270146164362
+ 0.77195879308687709
+ 0.77199057416394545
+ 0.7720223578480867
+ 0.77205414413974427
+ 0.77208593303936179
+ 0.77211772454738081
+ 0.77214951866424886
+ 0.77218131539040757
+ 0.77221311472630261
+ 0.77224491667237605
+ 0.77227672122907542
+ 0.77230852839684261
+ 0.77234033817612369
+ 0.77237215056736253
+ 0.77240396557100499
+ 0.77243578318749528
+ 0.7724676034172796
+ 0.77249942626080192
+ 0.77253125171850845
+ 0.77256307979084549
+ 0.77259491047825735
+ 0.77262674378119045
+ 0.772658579700091
+ 0.77269041823540374
+ 0.77272225938757688
+ 0.77275410315705506
+ 0.77278594954428503
+ 0.77281779854971333
+ 0.77284965017378848
+ 0.77288150441695358
+ 0.77291336127965715
+ 0.77294522076234817
+ 0.7729770828654734
+ 0.7730089475894778
+ 0.77304081493481058
+ 0.77307268490191683
+ 0.77310455749124907
+ 0.77313643270325094
+ 0.77316831053836976
+ 0.77320019099705828
+ 0.77323207407976025
+ 0.77326395978692664
+ 0.77329584811900309
+ 0.77332773907644092
+ 0.77335963265968954
+ 0.77339152886919282
+ 0.77342342770540584
+ 0.77345532916877291
+ 0.77348723325974511
+ 0.77351913997877253
+ 0.7735510493263027
+ 0.7735829613027877
+ 0.77361487590867528
+ 0.77364679314441365
+ 0.77367871301045643
+ 0.77371063550725361
+ 0.7737425606352516
+ 0.77377448839490426
+ 0.77380641878666023
+ 0.77383835181097127
+ 0.77387028746828779
+ 0.7739022257590602
+ 0.77393416668373893
+ 0.77396611024277628
+ 0.77399805643662289
+ 0.77403000526572918
+ 0.77406195673054967
+ 0.77409391083153134
+ 0.7741258675691306
+ 0.77415782694379609
+ 0.77418978895598101
+ 0.77422175360613765
+ 0.77425372089471745
+ 0.77428569082217291
+ 0.77431766338895724
+ 0.77434963859552353
+ 0.77438161644232462
+ 0.77441359692980993
+ 0.77444558005843644
+ 0.77447756582865557
+ 0.77450955424092061
+ 0.77454154529568475
+ 0.77457353899340353
+ 0.77460553533452814
+ 0.77463753431951254
+ 0.77466953594881183
+ 0.77470154022287985
+ 0.77473354714217002
+ 0.7747655567071382
+ 0.77479756891823626
+ 0.7748295837759217
+ 0.77486160128064485
+ 0.774893621432867
+ 0.77492564423303645
+ 0.77495766968161317
+ 0.77498969777904925
+ 0.77502172852580076
+ 0.77505376192232367
+ 0.7750857979690744
+ 0.77511783666650713
+ 0.77514987801507629
+ 0.77518192201524205
+ 0.77521396866745873
+ 0.77524601797218118
+ 0.77527806992986559
+ 0.77531012454097059
+ 0.77534218180595083
+ 0.77537424172526503
+ 0.77540630429936774
+ 0.77543836952871781
+ 0.77547043741377208
+ 0.77550250795498554
+ 0.7755345811528187
+ 0.77556665700772875
+ 0.77559873552017111
+ 0.7756308166906043
+ 0.77566290051948761
+ 0.77569498700727824
+ 0.77572707615443348
+ 0.77575916796141431
+ 0.77579126242867635
+ 0.77582335955667903
+ 0.77585545934588152
+ 0.77588756179674156
+ 0.77591966690971859
+ 0.77595177468527199
+ 0.77598388512385996
+ 0.77601599822594336
+ 0.77604811399198248
+ 0.77608023242243496
+ 0.77611235351776064
+ 0.77614447727841962
+ 0.77617660370487163
+ 0.77620873279757663
+ 0.7762408645569967
+ 0.77627299898359192
+ 0.77630513607782059
+ 0.77633727584014467
+ 0.77636941827102468
+ 0.77640156337092081
+ 0.77643371114029736
+ 0.77646586157961073
+ 0.77649801468932556
+ 0.77653017046990214
+ 0.77656232892180299
+ 0.77659449004548708
+ 0.77662665384142071
+ 0.77665882031006273
+ 0.77669098945187409
+ 0.77672316126731933
+ 0.77675533575686129
+ 0.77678751292096115
+ 0.77681969276008167
+ 0.77685187527468602
+ 0.77688406046523539
+ 0.77691624833219475
+ 0.77694843887602716
+ 0.77698063209719592
+ 0.77701282799616056
+ 0.77704502657339025
+ 0.7770772278293463
+ 0.77710943176449232
+ 0.77714163837929362
+ 0.77717384767421183
+ 0.77720605964971268
+ 0.77723827430625969
+ 0.77727049164431861
+ 0.77730271166435305
+ 0.77733493436682899
+ 0.77736715975220838
+ 0.77739938782095885
+ 0.77743161857354659
+ 0.77746385201043344
+ 0.77749608813208582
+ 0.77752832693897134
+ 0.77756056843155263
+ 0.77759281261029778
+ 0.77762505947567107
+ 0.77765730902814245
+ 0.77768956126817279
+ 0.77772181619623049
+ 0.77775407381278205
+ 0.77778633411829556
+ 0.77781859711323609
+ 0.77785086279807014
+ 0.77788313117326657
+ 0.7779154022392899
+ 0.77794767599661085
+ 0.77797995244569251
+ 0.77801223158700594
+ 0.77804451342101766
+ 0.77807679794819495
+ 0.77810908516900679
+ 0.77814137508392045
+ 0.77817366769340135
+ 0.77820596299792388
+ 0.77823826099795379
+ 0.7782705616939587
+ 0.77830286508640756
+ 0.77833517117576823
+ 0.77836747996251188
+ 0.77839979144710791
+ 0.77843210563002418
+ 0.77846442251172854
+ 0.77849674209269437
+ 0.77852906437338931
+ 0.77856138935428343
+ 0.77859371703584468
+ 0.7786260474185448
+ 0.77865838050285563
+ 0.77869071628924547
+ 0.77872305477818615
+ 0.77875539597014598
+ 0.77878773986559902
+ 0.77882008646501177
+ 0.7788524357688601
+ 0.77888478777761261
+ 0.7789171424917396
+ 0.77894949991171381
+ 0.77898186003800718
+ 0.77901422287109068
+ 0.77904658841143859
+ 0.7790789566595181
+ 0.77911132761580371
+ 0.77914370128076971
+ 0.7791760776548855
+ 0.77920845673862571
+ 0.7792408385324614
+ 0.77927322303686541
+ 0.7793056102523126
+ 0.77933800017927446
+ 0.77937039281822396
+ 0.77940278816963438
+ 0.77943518623397889
+ 0.77946758701173269
+ 0.77949999050336916
+ 0.77953239670935992
+ 0.77956480563018404
+ 0.77959721726630948
+ 0.77962963161821364
+ 0.77966204868637201
+ 0.77969446847125645
+ 0.77972689097334258
+ 0.77975931619310634
+ 0.77979174413102315
+ 0.77982417478756549
+ 0.7798566081632109
+ 0.77988904425843353
+ 0.77992148307370945
+ 0.77995392460951474
+ 0.77998636886632344
+ 0.78001881584461386
+ 0.78005126554486037
+ 0.78008371796753728
+ 0.78011617311312664
+ 0.78014863098209941
+ 0.78018109157493576
+ 0.78021355489211019
+ 0.78024602093409967
+ 0.78027848970138225
+ 0.78031096119443499
+ 0.78034343541373652
+ 0.78037591235976
+ 0.78040839203298606
+ 0.78044087443389343
+ 0.78047335956295916
+ 0.78050584742066043
+ 0.7805383380074743
+ 0.78057083132388005
+ 0.78060332737035654
+ 0.78063582614738303
+ 0.78066832765543714
+ 0.78070083189499795
+ 0.78073333886654306
+ 0.78076584857055376
+ 0.78079836100750777
+ 0.78083087617788627
+ 0.78086339408216532
+ 0.78089591472082853
+ 0.78092843809435342
+ 0.78096096420321992
+ 0.78099349304790988
+ 0.78102602462889925
+ 0.78105855894667386
+ 0.78109109600171167
+ 0.78112363579449118
+ 0.781156178325496
+ 0.78118872359520641
+ 0.78122127160410282
+ 0.78125382235266749
+ 0.78128637584138239
+ 0.78131893207072634
+ 0.78135149104118162
+ 0.78138405275323097
+ 0.78141661720735656
+ 0.78144918440403732
+ 0.78148175434376155
+ 0.78151432702700441
+ 0.78154690245425251
+ 0.7815794806259887
+ 0.78161206154269358
+ 0.78164464520485244
+ 0.78167723161294433
+ 0.78170982076745776
+ 0.78174241266887057
+ 0.78177500731766958
+ 0.78180760471433774
+ 0.78184020485935879
+ 0.78187280775321388
+ 0.7819054133963923
+ 0.78193802178937366
+ 0.78197063293264324
+ 0.78200324682668676
+ 0.78203586347198772
+ 0.78206848286903008
+ 0.7821011050183011
+ 0.78213372992028463
+ 0.78216635757546293
+ 0.78219898798432552
+ 0.78223162114735623
+ 0.78226425706503744
+ 0.78229689573785899
+ 0.78232953716630682
+ 0.78236218135086333
+ 0.78239482829201679
+ 0.78242747799025325
+ 0.782460130446061
+ 0.78249278565992264
+ 0.78252544363232657
+ 0.78255810436375939
+ 0.78259076785470927
+ 0.78262343410566315
+ 0.78265610311710743
+ 0.78268877488952737
+ 0.78272144942341493
+ 0.7827541267192536
+ 0.78278680677753398
+ 0.78281948959874292
+ 0.78285217518336969
+ 0.78288486353189923
+ 0.7829175546448246
+ 0.78295024852262918
+ 0.7829829451658058
+ 0.78301564457483996
+ 0.78304834675022295
+ 0.78308105169244435
+ 0.78311375940198935
+ 0.78314646987935355
+ 0.78317918312502055
+ 0.78321189913948186
+ 0.78324461792322719
+ 0.78327733947675027
+ 0.78331006380053492
+ 0.78334279089507508
+ 0.78337552076086214
+ 0.78340825339838271
+ 0.78344098880813051
+ 0.78347372699059359
+ 0.78350646794626599
+ 0.78353921167563789
+ 0.783571958179198
+ 0.78360470745744004
+ 0.78363745951085639
+ 0.78367021433993567
+ 0.78370297194517236
+ 0.78373573232705684
+ 0.78376849548608363
+ 0.78380126142274154
+ 0.78383403013752317
+ 0.78386680163092326
+ 0.78389957590343273
+ 0.7839323529555462
+ 0.78396513278775459
+ 0.78399791540055308
+ 0.7840307007944326
+ 0.7840634889698862
+ 0.78409627992741093
+ 0.7841290736674964
+ 0.7841618701906411
+ 0.78419466949733307
+ 0.78422747158806938
+ 0.78426027646334551
+ 0.78429308412365473
+ 0.78432589456949098
+ 0.78435870780134942
+ 0.78439152381972421
+ 0.7844243426251124
+ 0.78445716421800615
+ 0.7844899885989014
+ 0.78452281576829574
+ 0.78455564572668135
+ 0.78458847847455804
+ 0.78462131401241975
+ 0.78465415234076086
+ 0.78468699346007764
+ 0.78471983737086792
+ 0.78475268407362808
+ 0.78478553356885272
+ 0.78481838585704189
+ 0.7848512409386903
+ 0.78488409881429255
+ 0.7849169594843507
+ 0.78494982294935978
+ 0.78498268920981462
+ 0.78501555826621927
+ 0.78504843011906333
+ 0.78508130476885118
+ 0.78511418221607776
+ 0.78514706246124211
+ 0.78517994550484149
+ 0.78521283134737463
+ 0.78524571998934267
+ 0.78527861143124111
+ 0.78531150567356911
+ 0.78534440271682771
+ 0.78537730256151261
+ 0.7854102052081271
+ 0.78544311065717054
+ 0.78547601890914065
+ 0.78550892996453692
+ 0.78554184382385928
+ 0.78557476048760921
+ 0.78560767995628455
+ 0.7856406022303889
+ 0.78567352731042039
+ 0.78570645519688109
+ 0.7857393858902707
+ 0.78577231939108949
+ 0.78580525569983972
+ 0.78583819481702322
+ 0.78587113674314024
+ 0.78590408147869328
+ 0.78593702902418272
+ 0.78596997938011104
+ 0.78600293254698039
+ 0.78603588852529349
+ 0.78606884731555093
+ 0.78610180891825732
+ 0.78613477333391146
+ 0.78616774056302008
+ 0.78620071060608565
+ 0.78623368346360778
+ 0.78626665913609473
+ 0.78629963762404387
+ 0.78633261892796391
+ 0.78636560304835434
+ 0.78639858998572221
+ 0.78643157974057065
+ 0.78646457231340117
+ 0.7864975677047209
+ 0.78653056591503323
+ 0.78656356694484175
+ 0.78659657079465384
+ 0.78662957746497131
+ 0.78666258695630142
+ 0.78669559926914634
+ 0.78672861440401354
+ 0.78676163236140895
+ 0.78679465314183439
+ 0.78682767674579979
+ 0.78686070317380907
+ 0.78689373242637017
+ 0.7869267645039858
+ 0.78695979940716343
+ 0.78699283713641166
+ 0.78702587769223464
+ 0.78705892107513886
+ 0.78709196728563446
+ 0.78712501632422616
+ 0.78715806819142031
+ 0.78719112288772564
+ 0.78722418041364683
+ 0.78725724076969816
+ 0.78729030395637911
+ 0.78732336997420382
+ 0.78735643882367934
+ 0.78738951050530881
+ 0.78742258501960705
+ 0.78745566236707931
+ 0.78748874254823642
+ 0.78752182556358385
+ 0.78755491141363454
+ 0.78758800009889585
+ 0.78762109161987526
+ 0.78765418597708414
+ 0.78768728317103198
+ 0.78772038320222815
+ 0.78775348607118245
+ 0.78778659177840638
+ 0.78781970032440585
+ 0.78785281170969823
+ 0.78788592593478768
+ 0.787919043000188
+ 0.78795216290640901
+ 0.78798528565396109
+ 0.78801841124335592
+ 0.78805153967510566
+ 0.78808467094972068
+ 0.78811780506771312
+ 0.78815094202959513
+ 0.78818408183587552
+ 0.7882172244870701
+ 0.7882503699836898
+ 0.78828351832624699
+ 0.78831666951525248
+ 0.78834982355122063
+ 0.78838298043466426
+ 0.78841614016609629
+ 0.78844930274602743
+ 0.78848246817497458
+ 0.78851563645344691
+ 0.78854880758196289
+ 0.78858198156103232
+ 0.7886151583911718
+ 0.78864833807289281
+ 0.7886815206067106
+ 0.78871470599314031
+ 0.78874789423269531
+ 0.78878108532588942
+ 0.78881427927323977
+ 0.78884747607525996
+ 0.78888067573246201
+ 0.78891387824536696
+ 0.78894708361448707
+ 0.7889802918403378
+ 0.78901350292343519
+ 0.78904671686429528
+ 0.78907993366343376
+ 0.78911315332136678
+ 0.78914637583861069
+ 0.78917960121568131
+ 0.78921282945309712
+ 0.78924606055137214
+ 0.78927929451102519
+ 0.78931253133257406
+ 0.7893457710165338
+ 0.78937901356342244
+ 0.789412258973757
+ 0.78944550724805784
+ 0.78947875838683967
+ 0.78951201239062152
+ 0.78954526925992197
+ 0.78957852899526004
+ 0.78961179159715078
+ 0.78964505706611687
+ 0.78967832540267568
+ 0.78971159660734613
+ 0.78974487068064569
+ 0.78977814762309551
+ 0.78981142743521304
+ 0.78984471011752122
+ 0.78987799567053585
+ 0.78991128409477851
+ 0.78994457539077034
+ 0.78997786955903126
+ 0.79001116660007908
+ 0.79004446651443727
+ 0.79007776930262397
+ 0.79011107496515887
+ 0.79014438350256777
+ 0.79017769491536871
+ 0.79021100920408383
+ 0.79024432636923325
+ 0.79027764641133902
+ 0.79031096933092182
+ 0.79034429512850723
+ 0.79037762380461229
+ 0.79041095535976302
+ 0.79044428979448011
+ 0.79047762710928771
+ 0.79051096730470494
+ 0.79054431038125828
+ 0.7905776563394683
+ 0.79061100517985994
+ 0.7906443569029542
+ 0.79067771150927568
+ 0.79071106899934951
+ 0.79074442937369682
+ 0.79077779263284431
+ 0.79081115877731178
+ 0.79084452780762815
+ 0.79087789972431455
+ 0.79091127452789833
+ 0.7909446522189012
+ 0.7909780327978484
+ 0.79101141626526739
+ 0.79104480262168198
+ 0.79107819186761585
+ 0.7911115840035966
+ 0.79114497903014991
+ 0.79117837694779969
+ 0.79121177775707385
+ 0.79124518145849654
+ 0.79127858805259554
+ 0.79131199753989712
+ 0.79134540992092917
+ 0.79137882519621428
+ 0.79141224336628246
+ 0.7914456644316602
+ 0.79147908839287573
+ 0.79151251525045552
+ 0.79154594500492625
+ 0.79157937765681463
+ 0.79161281320665289
+ 0.79164625165496416
+ 0.7916796930022808
+ 0.79171313724912806
+ 0.79174658439603463
+ 0.79178003444353151
+ 0.79181348739214386
+ 0.79184694324240446
+ 0.79188040199484055
+ 0.79191386364998162
+ 0.79194732820835478
+ 0.79198079567049517
+ 0.7920142660369266
+ 0.79204773930818195
+ 0.79208121548479149
+ 0.79211469456728612
+ 0.79214817655619196
+ 0.79218166145204638
+ 0.7922151492553734
+ 0.79224863996670691
+ 0.79228213358657851
+ 0.79231563011551853
+ 0.79234912955405878
+ 0.79238263190273117
+ 0.79241613716206438
+ 0.79244964533259421
+ 0.79248315641484912
+ 0.79251667040936524
+ 0.79255018731667148
+ 0.79258370713730164
+ 0.79261722987178862
+ 0.79265075552066511
+ 0.79268428408446168
+ 0.79271781556371501
+ 0.79275134995895757
+ 0.79278488727072094
+ 0.79281842749953946
+ 0.79285197064594815
+ 0.79288551671048035
+ 0.79291906569366899
+ 0.79295261759604929
+ 0.79298617241815617
+ 0.79301973016052341
+ 0.79305329082368603
+ 0.7930868544081775
+ 0.7931204209145355
+ 0.79315399034329348
+ 0.79318756269498703
+ 0.79322113797014981
+ 0.79325471616932142
+ 0.79328829729303774
+ 0.79332188134182902
+ 0.79335546831623849
+ 0.79338905821679684
+ 0.79342265104404364
+ 0.79345624679851545
+ 0.79348984548074974
+ 0.79352344709127964
+ 0.79355705163064683
+ 0.79359065909938586
+ 0.79362426949803533
+ 0.79365788282713345
+ 0.79369149908721537
+ 0.79372511827882297
+ 0.79375874040249128
+ 0.7937923654587592
+ 0.79382599344816551
+ 0.79385962437124891
+ 0.7938932582285485
+ 0.7939268950206031
+ 0.79396053474795203
+ 0.79399417741113254
+ 0.79402782301068753
+ 0.79406147154715423
+ 0.79409512302107244
+ 0.79412877743298316
+ 0.79416243478342596
+ 0.79419609507293865
+ 0.79422975830206632
+ 0.79426342447134701
+ 0.79429709358132217
+ 0.79433076563252991
+ 0.79436444062551581
+ 0.79439811856081799
+ 0.79443179943897824
+ 0.7944654832605389
+ 0.79449917002604165
+ 0.79453285973602905
+ 0.79456655239104113
+ 0.79460024799162232
+ 0.79463394653831099
+ 0.79466764803165746
+ 0.79470135247219442
+ 0.79473505986047233
+ 0.79476877019703174
+ 0.79480248348241744
+ 0.79483619971716823
+ 0.79486991890183289
+ 0.79490364103695221
+ 0.79493736612307142
+ 0.79497109416073319
+ 0.79500482515048287
+ 0.79503855909286547
+ 0.79507229598842244
+ 0.79510603583770079
+ 0.79513977864124585
+ 0.79517352439960132
+ 0.79520727311331441
+ 0.7952410247829288
+ 0.79527477940899005
+ 0.79530853699204196
+ 0.79534229753263408
+ 0.7953760610313122
+ 0.79540982748862032
+ 0.79544359690510447
+ 0.79547736928131252
+ 0.79551114461779238
+ 0.79554492291508838
+ 0.79557870417375076
+ 0.79561248839432164
+ 0.79564627557735335
+ 0.79568006572339056
+ 0.79571385883298329
+ 0.79574765490667632
+ 0.79578145394502042
+ 0.79581525594856184
+ 0.79584906091784946
+ 0.79588286885343229
+ 0.79591667975586089
+ 0.79595049362568038
+ 0.79598431046343976
+ 0.79601813026969193
+ 0.79605195304498388
+ 0.79608577878986531
+ 0.79611960750488875
+ 0.79615343919059811
+ 0.79618727384754862
+ 0.79622111147628771
+ 0.79625495207736685
+ 0.79628879565133748
+ 0.79632264219874949
+ 0.79635649172015255
+ 0.79639034421609833
+ 0.79642419968713896
+ 0.79645805813382398
+ 0.79649191955670751
+ 0.79652578395634144
+ 0.79655965133327433
+ 0.79659352168806008
+ 0.79662739502125079
+ 0.79666127133340092
+ 0.79669515062505902
+ 0.79672903289677921
+ 0.79676291814911815
+ 0.79679680638262251
+ 0.79683069759785263
+ 0.79686459179535563
+ 0.79689848897568805
+ 0.79693238913940279
+ 0.79696629228705462
+ 0.79700019841919867
+ 0.79703410753638593
+ 0.79706801963917351
+ 0.79710193472811453
+ 0.79713585280376464
+ 0.79716977386668042
+ 0.79720369791741186
+ 0.79723762495652006
+ 0.79727155498455671
+ 0.79730548800207757
+ 0.79733942400964164
+ 0.79737336300780137
+ 0.79740730499711399
+ 0.7974412499781377
+ 0.7974751979514263
+ 0.79750914891753577
+ 0.79754310287702612
+ 0.79757705983045346
+ 0.79761101977837401
+ 0.79764498272134399
+ 0.79767894865992195
+ 0.79771291759466778
+ 0.79774688952613637
+ 0.79778086445488805
+ 0.7978148423814776
+ 0.79784882330646723
+ 0.79788280723041227
+ 0.79791679415387495
+ 0.79795078407741038
+ 0.79798477700157955
+ 0.79801877292694334
+ 0.79805277185405687
+ 0.79808677378348325
+ 0.79812077871578146
+ 0.79815478665150941
+ 0.79818879759122963
+ 0.79822281153550001
+ 0.79825682848488388
+ 0.79829084843994069
+ 0.79832487140123032
+ 0.7983588973693142
+ 0.79839292634475389
+ 0.79842695832810973
+ 0.79846099331994302
+ 0.79849503132081812
+ 0.79852907233129289
+ 0.79856311635193333
+ 0.79859716338329767
+ 0.79863121342595023
+ 0.79866526648045311
+ 0.79869932254737064
+ 0.79873338162726326
+ 0.79876744372069575
+ 0.79880150882822842
+ 0.79883557695042973
+ 0.79886964808785865
+ 0.79890372224107797
+ 0.79893779941065812
+ 0.79897187959715654
+ 0.79900596280113978
+ 0.79904004902317494
+ 0.79907413826382123
+ 0.79910823052364788
+ 0.79914232580321798
+ 0.79917642410309697
+ 0.79921052542385007
+ 0.79924462976604094
+ 0.79927873713023878
+ 0.79931284751700737
+ 0.79934696092691249
+ 0.79938107736052155
+ 0.79941519681839868
+ 0.7994493193011134
+ 0.79948344480922984
+ 0.79951757334331397
+ 0.7995517049039359
+ 0.79958583949166162
+ 0.79961997710705945
+ 0.79965411775069362
+ 0.79968826142313443
+ 0.79972240812495032
+ 0.79975655785670974
+ 0.79979071061897755
+ 0.79982486641232575
+ 0.79985902523732155
+ 0.79989318709453161
+ 0.79992735198452847
+ 0.79996151990788134
+ 0.7999956908651551
+ 0.80002986485692273
+ 0.80006404188375335
+ 0.80009822194621805
+ 0.80013240504488436
+ 0.80016659118032329
+ 0.80020078035310616
+ 0.80023497256380272
+ 0.80026916781298441
+ 0.80030336610122244
+ 0.80033756742908513
+ 0.8003717717971458
+ 0.80040597920597623
+ 0.80044018965614827
+ 0.80047440314823393
+ 0.80050861968280151
+ 0.80054283926042658
+ 0.80057706188168154
+ 0.80061128754713673
+ 0.80064551625736813
+ 0.80067974801294617
+ 0.8007139828144435
+ 0.80074822066243456
+ 0.80078246155749355
+ 0.80081670550019157
+ 0.80085095249110316
+ 0.80088520253080309
+ 0.80091945561986611
+ 0.80095371175886521
+ 0.80098797094837348
+ 0.80102223318896981
+ 0.8010564984812234
+ 0.80109076682571534
+ 0.80112503822301517
+ 0.801159312673702
+ 0.80119359017834946
+ 0.80122787073753454
+ 0.80126215435183323
+ 0.80129644102181907
+ 0.80133073074807171
+ 0.8013650235311649
+ 0.80139931937167852
+ 0.80143361827018444
+ 0.80146792022726265
+ 0.80150222524349102
+ 0.80153653331944585
+ 0.80157084445570348
+ 0.80160515865284376
+ 0.80163947591144324
+ 0.80167379623208046
+ 0.80170811961533361
+ 0.80174244606178136
+ 0.80177677557200033
+ 0.80181110814657308
+ 0.8018454437860727
+ 0.80187978249108549
+ 0.80191412426218489
+ 0.80194846909995332
+ 0.80198281700497032
+ 0.80201716797781453
+ 0.80205152201906749
+ 0.8020858791293084
+ 0.80212023930911647
+ 0.80215460255907689
+ 0.80218896887976365
+ 0.80222333827176184
+ 0.80225771073565322
+ 0.80229208627201754
+ 0.80232646488143633
+ 0.80236084656449169
+ 0.80239523132176327
+ 0.80242961915383726
+ 0.80246401006129331
+ 0.80249840404471406
+ 0.80253280110468117
+ 0.80256720124177916
+ 0.80260160445659035
+ 0.80263601074969726
+ 0.80267042012168399
+ 0.80270483257313507
+ 0.8027392481046316
+ 0.80277366671675787
+ 0.80280808841009876
+ 0.80284251318523903
+ 0.80287694104276164
+ 0.80291137198325335
+ 0.80294580600729559
+ 0.802980243115477
+ 0.80301468330837911
+ 0.80304912658659111
+ 0.80308357295069621
+ 0.80311802240127794
+ 0.80315247493892561
+ 0.80318693056422497
+ 0.80322138927776143
+ 0.80325585108012088
+ 0.80329031597189093
+ 0.80332478395365747
+ 0.80335925502600825
+ 0.80339372918952945
+ 0.80342820644480917
+ 0.80346268679243527
+ 0.80349717023299416
+ 0.80353165676707405
+ 0.80356614639526514
+ 0.80360063911815405
+ 0.80363513493632721
+ 0.80366963385037704
+ 0.80370413586089018
+ 0.80373864096845549
+ 0.80377314917366183
+ 0.80380766047710173
+ 0.80384217487936038
+ 0.80387669238103043
+ 0.8039112129826993
+ 0.80394573668496006
+ 0.80398026348840179
+ 0.80401479339361392
+ 0.80404932640118787
+ 0.80408386251171649
+ 0.80411840172578608
+ 0.80415294404399185
+ 0.80418748946692531
+ 0.80422203799517444
+ 0.80425658962933477
+ 0.80429114436999649
+ 0.80432570221775146
+ 0.80436026317319331
+ 0.80439482723691469
+ 0.80442939440950734
+ 0.80446396469156367
+ 0.80449853808367811
+ 0.80453311458644083
+ 0.80456769420045027
+ 0.80460227692629704
+ 0.80463686276457402
+ 0.80467145171587751
+ 0.80470604378080213
+ 0.80474063895993919
+ 0.80477523725388522
+ 0.80480983866323341
+ 0.80484444318858261
+ 0.80487905083052413
+ 0.80491366158965494
+ 0.80494827546657033
+ 0.80498289246186783
+ 0.80501751257613885
+ 0.8050521358099807
+ 0.805086762163993
+ 0.80512139163877139
+ 0.80515602423490973
+ 0.80519065995300565
+ 0.80522529879365889
+ 0.80525994075746354
+ 0.80529458584501967
+ 0.80532923405692125
+ 0.80536388539376835
+ 0.80539853985615939
+ 0.80543319744469255
+ 0.80546785815996425
+ 0.80550252200257499
+ 0.8055371889731231
+ 0.80557185907220541
+ 0.80560653230042445
+ 0.80564120865837707
+ 0.80567588814666402
+ 0.80571057076588426
+ 0.80574525651663664
+ 0.80577994539952424
+ 0.80581463741514425
+ 0.80584933256409796
+ 0.80588403084698834
+ 0.80591873226441102
+ 0.80595343681697329
+ 0.80598814450527079
+ 0.80602285532990869
+ 0.80605756929148709
+ 0.80609228639060748
+ 0.80612700662787173
+ 0.80616173000388358
+ 0.80619645651924321
+ 0.80623118617455447
+ 0.80626591897041755
+ 0.80630065490744041
+ 0.80633539398622156
+ 0.80637013620736708
+ 0.80640488157147949
+ 0.80643963007916142
+ 0.80647438173101715
+ 0.80650913652765333
+ 0.8065438944696689
+ 0.80657865555767427
+ 0.80661341979226864
+ 0.80664818717406073
+ 0.8066829577036555
+ 0.80671773138165614
+ 0.80675250820866762
+ 0.80678728818529932
+ 0.80682207131215067
+ 0.80685685758983483
+ 0.80689164701895322
+ 0.80692643960011168
+ 0.80696123533392128
+ 0.8069960342209842
+ 0.80703083626190986
+ 0.80706564145730442
+ 0.80710044980777562
+ 0.8071352613139311
+ 0.80717007597637946
+ 0.80720489379572469
+ 0.80723971477257872
+ 0.80727453890754997
+ 0.80730936620124505
+ 0.80734419665427415
+ 0.80737903026724389
+ 0.80741386704076479
+ 0.80744870697544735
+ 0.80748355007189865
+ 0.80751839633072942
+ 0.80755324575255039
+ 0.80758809833796863
+ 0.8076229540875991
+ 0.8076578130020472
+ 0.80769267508192588
+ 0.80772754032784644
+ 0.80776240874042027
+ 0.80779728032025677
+ 0.80783215506796946
+ 0.80786703298416807
+ 0.80790191406946399
+ 0.80793679832447107
+ 0.80797168574980127
+ 0.80800657634606421
+ 0.80804147011387617
+ 0.80807636705384878
+ 0.80811126716659454
+ 0.80814617045272541
+ 0.8081810769128559
+ 0.80821598654760018
+ 0.80825089935756889
+ 0.80828581534338206
+ 0.80832073450564867
+ 0.80835565684498534
+ 0.80839058236200467
+ 0.80842551105732163
+ 0.80846044293155295
+ 0.80849537798531379
+ 0.80853031621921689
+ 0.80856525763387976
+ 0.80860020222991924
+ 0.80863515000794894
+ 0.80867010096858394
+ 0.80870505511244373
+ 0.80874001244014393
+ 0.80877497295229994
+ 0.80880993664952772
+ 0.80884490353244864
+ 0.8088798736016749
+ 0.80891484685782811
+ 0.80894982330152232
+ 0.80898480293337971
+ 0.80901978575401412
+ 0.80905477176404617
+ 0.8090897609640938
+ 0.80912475335477541
+ 0.80915974893670961
+ 0.8091947477105168
+ 0.8092297496768156
+ 0.80926475483622273
+ 0.80929976318936281
+ 0.80933477473685478
+ 0.80936978947931359
+ 0.80940480741736409
+ 0.80943982855162555
+ 0.80947485288272081
+ 0.80950988041126537
+ 0.8095449111378844
+ 0.8095799450632013
+ 0.80961498218783157
+ 0.8096500225124007
+ 0.80968506603752821
+ 0.80972011276383793
+ 0.80975516269195358
+ 0.80979021582249511
+ 0.80982527215608435
+ 0.80986033169334726
+ 0.80989539443490388
+ 0.80993046038137861
+ 0.80996552953339562
+ 0.81000060189157896
+ 0.81003567745654936
+ 0.81007075622893499
+ 0.81010583820935667
+ 0.81014092339844113
+ 0.81017601179681265
+ 0.81021110340509439
+ 0.81024619822391297
+ 0.81028129625389356
+ 0.81031639749566109
+ 0.81035150194984085
+ 0.81038660961705977
+ 0.81042172049794325
+ 0.81045683459311835
+ 0.810491951903209
+ 0.81052707242884636
+ 0.81056219617065217
+ 0.81059732312925803
+ 0.81063245330528755
+ 0.81066758669937089
+ 0.81070272331213367
+ 0.81073786314420582
+ 0.81077300619621351
+ 0.81080815246878712
+ 0.81084330196255239
+ 0.81087845467813813
+ 0.81091361061617639
+ 0.81094876977729546
+ 0.8109839321621205
+ 0.81101909777128556
+ 0.81105426660541957
+ 0.81108943866515115
+ 0.81112461395111146
+ 0.81115979246392722
+ 0.81119497420423536
+ 0.81123015917266139
+ 0.81126534736983791
+ 0.81130053879639852
+ 0.8113357334529705
+ 0.81137093134018723
+ 0.81140613245868032
+ 0.81144133680908137
+ 0.81147654439202188
+ 0.81151175520813557
+ 0.81154696925805458
+ 0.81158218654241232
+ 0.81161740706184105
+ 0.81165263081697292
+ 0.81168785780844377
+ 0.81172308803688409
+ 0.81175832150293015
+ 0.81179355820721621
+ 0.8118287981503729
+ 0.81186404133303847
+ 0.81189928775584597
+ 0.81193453741942778
+ 0.81196979032442473
+ 0.81200504647146576
+ 0.81204030586119169
+ 0.81207556849423368
+ 0.81211083437123099
+ 0.81214610349281835
+ 0.81218137585963146
+ 0.8122166514723056
+ 0.81225193033147991
+ 0.81228721243779034
+ 0.81232249779187404
+ 0.81235778639436695
+ 0.81239307824591078
+ 0.81242837334713747
+ 0.81246367169868872
+ 0.81249897330120069
+ 0.81253427815531343
+ 0.81256958626166309
+ 0.81260489762088994
+ 0.81264021223363414
+ 0.81267553010053428
+ 0.81271085122222697
+ 0.81274617559935447
+ 0.81278150323255549
+ 0.81281683412246919
+ 0.81285216826973783
+ 0.81288750567500234
+ 0.81292284633889822
+ 0.81295819026207383
+ 0.81299353744516301
+ 0.81302888788881056
+ 0.81306424159365787
+ 0.81309959856034619
+ 0.81313495878951725
+ 0.81317032228181441
+ 0.8132056890378756
+ 0.81324105905834809
+ 0.81327643234387392
+ 0.81331180889509302
+ 0.81334718871265121
+ 0.81338257179719065
+ 0.81341795814935536
+ 0.81345334776978773
+ 0.81348874065913379
+ 0.81352413681803626
+ 0.81355953624713928
+ 0.81359493894708745
+ 0.81363034491852748
+ 0.81366575416210396
+ 0.81370116667845793
+ 0.81373658246823999
+ 0.81377200153209317
+ 0.81380742387066263
+ 0.81384284948459718
+ 0.81387827837454019
+ 0.81391371054114103
+ 0.81394914598504309
+ 0.81398458470689561
+ 0.8140200267073443
+ 0.81405547198703665
+ 0.81409092054662247
+ 0.81412637238674546
+ 0.81416182750805743
+ 0.81419728591120244
+ 0.8142327475968324
+ 0.81426821256559367
+ 0.8143036808181382
+ 0.81433915235511034
+ 0.81437462717716247
+ 0.81441010528494306
+ 0.81444558667910061
+ 0.81448107136028758
+ 0.81451655932915279
+ 0.81455205058634705
+ 0.81458754513251919
+ 0.81462304296832022
+ 0.8146585440944013
+ 0.81469404851141503
+ 0.81472955622001297
+ 0.81476506722084263
+ 0.81480058151455881
+ 0.81483609910181332
+ 0.81487161998325963
+ 0.81490714415954546
+ 0.81494267163132839
+ 0.81497820239926
+ 0.81501373646399056
+ 0.81504927382617576
+ 0.81508481448646963
+ 0.81512035844552444
+ 0.81515590570399621
+ 0.81519145626253553
+ 0.81522701012180032
+ 0.81526256728243951
+ 0.81529812774511512
+ 0.81533369151047819
+ 0.81536925857918341
+ 0.81540482895188737
+ 0.81544040262924511
+ 0.81547597961191343
+ 0.81551155990054747
+ 0.81554714349580437
+ 0.8155827303983374
+ 0.81561832060880757
+ 0.8156539141278687
+ 0.81568951095618003
+ 0.81572511109439905
+ 0.81576071454318133
+ 0.81579632130318502
+ 0.81583193137506749
+ 0.81586754475949075
+ 0.81590316145710884
+ 0.8159387814685819
+ 0.81597440479456795
+ 0.81601003143572903
+ 0.81604566139271983
+ 0.8160812946662046
+ 0.81611693125683982
+ 0.81615257116528606
+ 0.8161882143922059
+ 0.81622386093825428
+ 0.81625951080409587
+ 0.81629516399039148
+ 0.81633082049780048
+ 0.81636648032698556
+ 0.81640214347860807
+ 0.81643780995332937
+ 0.81647347975180862
+ 0.81650915287471126
+ 0.8165448293226989
+ 0.81658050909643309
+ 0.81661619219657766
+ 0.81665187862379596
+ 0.81668756837875023
+ 0.8167232614621025
+ 0.81675895787452035
+ 0.81679465761666414
+ 0.81683036068919823
+ 0.81686606709278853
+ 0.81690177682809784
+ 0.81693748989579218
+ 0.81697320629653647
+ 0.81700892603099329
+ 0.8170446490998311
+ 0.81708037550371482
+ 0.81711610524331135
+ 0.81715183831928373
+ 0.81718757473229908
+ 0.81722331448302443
+ 0.8172590575721288
+ 0.81729480400027577
+ 0.81733055376813291
+ 0.81736630687636735
+ 0.8174020633256508
+ 0.81743782311664492
+ 0.81747358625002164
+ 0.81750935272644865
+ 0.81754512254659184
+ 0.81758089571112513
+ 0.81761667222071277
+ 0.81765245207602322
+ 0.81768823527773005
+ 0.81772402182650028
+ 0.81775981172300405
+ 0.81779560496791193
+ 0.81783140156189249
+ 0.81786720150561854
+ 0.81790300479975886
+ 0.81793881144498637
+ 0.81797462144196975
+ 0.81801043479138047
+ 0.81804625149389154
+ 0.81808207155017409
+ 0.81811789496090137
+ 0.81815372172674306
+ 0.8181895518483725
+ 0.81822538532646327
+ 0.81826122216168895
+ 0.81829706235472133
+ 0.81833290590623242
+ 0.81836875281689814
+ 0.81840460308739416
+ 0.81844045671838694
+ 0.81847631371055862
+ 0.81851217406457932
+ 0.81854803778112561
+ 0.81858390486087185
+ 0.81861977530449259
+ 0.81865564911266442
+ 0.81869152628606023
+ 0.81872740682535861
+ 0.81876329073123644
+ 0.81879917800436697
+ 0.81883506864542721
+ 0.81887096265509596
+ 0.81890686003404689
+ 0.81894276078295936
+ 0.81897866490251048
+ 0.81901457239337805
+ 0.81905048325623953
+ 0.81908639749177248
+ 0.81912231510065681
+ 0.81915823608356853
+ 0.81919416044118931
+ 0.81923008817419563
+ 0.81926601928326714
+ 0.81930195376908432
+ 0.81933789163232562
+ 0.81937383287367127
+ 0.81940977749380151
+ 0.81944572549339545
+ 0.81948167687313522
+ 0.81951763163370195
+ 0.8195535897757763
+ 0.81958955130003741
+ 0.81962551620716995
+ 0.81966148449785148
+ 0.81969745617276901
+ 0.81973343123259967
+ 0.81976940967802903
+ 0.81980539150973841
+ 0.81984137672841151
+ 0.81987736533472988
+ 0.81991335732937742
+ 0.81994935271303782
+ 0.81998535148639506
+ 0.82002135365013307
+ 0.82005735920493594
+ 0.82009336815148803
+ 0.82012938049047335
+ 0.82016539622257645
+ 0.82020141534848179
+ 0.82023743786887982
+ 0.82027346378444932
+ 0.82030949309588086
+ 0.82034552580385733
+ 0.82038156190906553
+ 0.82041760141219466
+ 0.82045364431392764
+ 0.82048969061495358
+ 0.82052574031595815
+ 0.82056179341763213
+ 0.82059784992065743
+ 0.82063390982572726
+ 0.82066997313352741
+ 0.82070603984474555
+ 0.82074210996007169
+ 0.82077818348019349
+ 0.82081426040580097
+ 0.82085034073758012
+ 0.8208864244762254
+ 0.8209225116224228
+ 0.82095860217686489
+ 0.8209946961402379
+ 0.82103079351323638
+ 0.82106689429654711
+ 0.82110299849086665
+ 0.82113910609687979
+ 0.82117521711527974
+ 0.82121133154675907
+ 0.82124744939200911
+ 0.82128357065172286
+ 0.82131969532659166
+ 0.82135582341730695
+ 0.82139195492456218
+ 0.82142808984905058
+ 0.82146422819146425
+ 0.82150036995249842
+ 0.8215365151328452
+ 0.82157266373319826
+ 0.82160881575425382
+ 0.82164497119670388
+ 0.82168113006124466
+ 0.82171729234856838
+ 0.82175345805937317
+ 0.82178962719435
+ 0.82182579975420089
+ 0.82186197573961661
+ 0.82189815515129216
+ 0.82193433798992799
+ 0.82197052425621908
+ 0.82200671395085878
+ 0.82204290707454963
+ 0.8220791036279832
+ 0.82211530361186069
+ 0.82215150702687723
+ 0.82218771387373257
+ 0.82222392415312229
+ 0.82226013786574759
+ 0.82229635501230458
+ 0.82233257559349326
+ 0.82236879961001308
+ 0.82240502706256247
+ 0.82244125795184109
+ 0.82247749227854938
+ 0.82251373004338579
+ 0.82254997124705043
+ 0.82258621589024594
+ 0.82262246397366878
+ 0.82265871549802372
+ 0.8226949704640133
+ 0.82273122887233263
+ 0.82276749072368849
+ 0.82280375601877997
+ 0.8228400247583102
+ 0.82287629694298225
+ 0.82291257257349748
+ 0.82294885165055942
+ 0.82298513417486951
+ 0.82302142014713331
+ 0.82305770956805446
+ 0.82309400243833286
+ 0.82313029875867616
+ 0.82316659852978857
+ 0.82320290175236999
+ 0.82323920842713061
+ 0.82327551855477454
+ 0.82331183213600234
+ 0.82334814917152443
+ 0.82338446966204315
+ 0.82342079360826703
+ 0.82345712101089918
+ 0.82349345187065004
+ 0.8235297861882227
+ 0.82356612396432405
+ 0.82360246519966118
+ 0.82363880989494531
+ 0.82367515805087954
+ 0.82371150966817364
+ 0.82374786474753248
+ 0.82378422328967005
+ 0.82382058529529001
+ 0.82385695076510201
+ 0.82389331969981772
+ 0.82392969210014322
+ 0.82396606796678651
+ 0.82400244730046179
+ 0.82403883010187895
+ 0.82407521637174275
+ 0.82411160611076928
+ 0.82414799931966709
+ 0.82418439599914495
+ 0.82422079614991728
+ 0.82425719977269496
+ 0.82429360686818698
+ 0.8243300174371081
+ 0.82436643148016753
+ 0.82440284899808036
+ 0.82443926999155792
+ 0.8244756944613133
+ 0.82451212240806038
+ 0.82454855383251036
+ 0.824584988735377
+ 0.82462142711737607
+ 0.82465786897922122
+ 0.82469431432162643
+ 0.82473076314530391
+ 0.82476721545097142
+ 0.82480367123934151
+ 0.82484013051113214
+ 0.82487659326705798
+ 0.82491305950783334
+ 0.82494952923417497
+ 0.82498600244679943
+ 0.82502247914642157
+ 0.82505895933376006
+ 0.82509544300953219
+ 0.82513193017445285
+ 0.82516842082924113
+ 0.82520491497461435
+ 0.8252414126112898
+ 0.82527791373998716
+ 0.8253144183614235
+ 0.82535092647631703
+ 0.82538743808538717
+ 0.82542395318935369
+ 0.82546047178893656
+ 0.82549699388485409
+ 0.82553351947782594
+ 0.82557004856857263
+ 0.82560658115781638
+ 0.82564311724627348
+ 0.82567965683466871
+ 0.82571619992372236
+ 0.82575274651415342
+ 0.82578929660668843
+ 0.82582585020204247
+ 0.82586240730094429
+ 0.82589896790411121
+ 0.82593553201226844
+ 0.82597209962613682
+ 0.82600867074644235
+ 0.82604524537390789
+ 0.82608182350925363
+ 0.82611840515320667
+ 0.82615499030648898
+ 0.82619157896982642
+ 0.8262281711439412
+ 0.82626476682956285
+ 0.82630136602741
+ 0.82633796873821463
+ 0.82637457496269717
+ 0.82641118470158581
+ 0.82644779795560552
+ 0.82648441472548273
+ 0.82652103501194407
+ 0.82655765881571841
+ 0.82659428613752894
+ 0.82663091697810631
+ 0.82666755133817582
+ 0.82670418921846678
+ 0.82674083061970616
+ 0.82677747554262182
+ 0.82681412398794296
+ 0.82685077595639933
+ 0.82688743144871857
+ 0.82692409046562854
+ 0.8269607530078632
+ 0.82699741907614832
+ 0.82703408867121631
+ 0.82707076179379524
+ 0.8271074384446172
+ 0.82714411862441284
+ 0.82718080233391267
+ 0.827217489573849
+ 0.8272541803449508
+ 0.82729087464795281
+ 0.8273275724835859
+ 0.82736427385258093
+ 0.82740097875567309
+ 0.82743768719359168
+ 0.82747439916707366
+ 0.82751111467685079
+ 0.82754783372365426
+ 0.8275845563082217
+ 0.82762128243128286
+ 0.82765801209357759
+ 0.82769474529583542
+ 0.82773148203879476
+ 0.82776822232318537
+ 0.82780496614974963
+ 0.82784171351921765
+ 0.82787846443232593
+ 0.82791521888981479
+ 0.82795197689241495
+ 0.82798873844086707
+ 0.82802550353590565
+ 0.82806227217826589
+ 0.82809904436869064
+ 0.82813582010791298
+ 0.82817259939667387
+ 0.82820938223570684
+ 0.82824616862575506
+ 0.82828295856755418
+ 0.8283197520618456
+ 0.82835654910936518
+ 0.82839334971085254
+ 0.82843015386705154
+ 0.82846696157869804
+ 0.8285037728465322
+ 0.82854058767129635
+ 0.82857740605372854
+ 0.82861422799457318
+ 0.82865105349456669
+ 0.8286878825544558
+ 0.82872471517497903
+ 0.82876155135687912
+ 0.82879839110089704
+ 0.82883523440777573
+ 0.82887208127826006
+ 0.82890893171308955
+ 0.82894578571300725
+ 0.82898264327876037
+ 0.82901950441108885
+ 0.82905636911073977
+ 0.82909323737845508
+ 0.82913010921498032
+ 0.82916698462105765
+ 0.8292038635974367
+ 0.82924074614485799
+ 0.82927763226407125
+ 0.82931452195581901
+ 0.82935141522084965
+ 0.82938831205990726
+ 0.82942521247373902
+ 0.82946211646309131
+ 0.82949902402871289
+ 0.8295359351713486
+ 0.8295728498917494
+ 0.82960976819065857
+ 0.82964669006882918
+ 0.82968361552700653
+ 0.82972054456593791
+ 0.82975747718637494
+ 0.82979441338906512
+ 0.82983135317476042
+ 0.82986829654420602
+ 0.82990524349815453
+ 0.82994219403735547
+ 0.82997914816256124
+ 0.83001610587451968
+ 0.83005306717398353
+ 0.83009003206170273
+ 0.83012700053842814
+ 0.83016397260491426
+ 0.83020094826190993
+ 0.83023792751016967
+ 0.83027491035044476
+ 0.83031189678348793
+ 0.83034888681005226
+ 0.83038588043089134
+ 0.83042287764675804
+ 0.83045987845840818
+ 0.83049688286659307
+ 0.83053389087206853
+ 0.83057090247559007
+ 0.83060791767790965
+ 0.83064493647978321
+ 0.83068195888196883
+ 0.83071898488521856
+ 0.83075601449029279
+ 0.8307930476979396
+ 0.83083008450892581
+ 0.83086712492399983
+ 0.83090416894392216
+ 0.83094121656944997
+ 0.83097826780133965
+ 0.8310153226403485
+ 0.83105238108723545
+ 0.8310894431427599
+ 0.8311265088076788
+ 0.83116357808275165
+ 0.83120065096873608
+ 0.83123772746639368
+ 0.83127480757648187
+ 0.8313118912997608
+ 0.83134897863699209
+ 0.83138606958893602
+ 0.83142316415635054
+ 0.83146026233999792
+ 0.83149736414064235
+ 0.83153446955904053
+ 0.83157157859595676
+ 0.83160869125215164
+ 0.83164580752838824
+ 0.83168292742542893
+ 0.831720050944037
+ 0.8317571780849754
+ 0.83179430884900729
+ 0.83183144323689395
+ 0.83186858124940266
+ 0.83190572288729503
+ 0.83194286815133833
+ 0.83198001704229074
+ 0.83201716956092564
+ 0.83205432570800308
+ 0.83209148548428891
+ 0.83212864889054938
+ 0.83216581592755068
+ 0.83220298659605896
+ 0.83224016089683894
+ 0.8322773388306608
+ 0.83231452039828735
+ 0.83235170560048932
+ 0.83238889443803332
+ 0.83242608691168862
+ 0.83246328302221806
+ 0.8325004827703969
+ 0.8325376861569882
+ 0.83257489318276356
+ 0.83261210384849227
+ 0.83264931815494192
+ 0.83268653610288423
+ 0.83272375769308904
+ 0.83276098292632428
+ 0.83279821180336366
+ 0.83283544432497358
+ 0.83287268049193197
+ 0.83290992030500333
+ 0.83294716376496025
+ 0.8329844108725788
+ 0.83302166162862989
+ 0.83305891603388227
+ 0.83309617408911074
+ 0.83313343579509025
+ 0.83317070115258962
+ 0.83320797016238635
+ 0.8332452428252537
+ 0.83328251914196283
+ 0.83331979911329124
+ 0.83335708274001064
+ 0.83339437002289862
+ 0.83343166096272914
+ 0.83346895556027789
+ 0.83350625381631893
+ 0.83354355573162853
+ 0.83358086130698472
+ 0.83361817054316401
+ 0.83365548344094076
+ 0.83369280000109347
+ 0.83373012022439885
+ 0.83376744411163572
+ 0.8338047716635808
+ 0.83384210288101301
+ 0.83387943776470963
+ 0.83391677631544803
+ 0.83395411853401291
+ 0.83399146442117611
+ 0.83402881397772122
+ 0.8340661672044275
+ 0.834103524102075
+ 0.83414088467144343
+ 0.8341782489133126
+ 0.8342156168284669
+ 0.83425298841768203
+ 0.83429036368174658
+ 0.83432774262143483
+ 0.83436512523753137
+ 0.83440251153081868
+ 0.83443990150208136
+ 0.83447729515209834
+ 0.83451469248165655
+ 0.83455209349153703
+ 0.8345894981825227
+ 0.83462690655539729
+ 0.83466431861094947
+ 0.83470173434995709
+ 0.83473915377320984
+ 0.83477657688149109
+ 0.83481400367558289
+ 0.83485143415627683
+ 0.83488886832435516
+ 0.83492630618060382
+ 0.83496374772581106
+ 0.83500119296076136
+ 0.83503864188624299
+ 0.83507609450304054
+ 0.83511355081194671
+ 0.83515101081374421
+ 0.83518847450922373
+ 0.83522594189917265
+ 0.83526341298437967
+ 0.83530088776563438
+ 0.83533836624372371
+ 0.83537584841944124
+ 0.83541333429357245
+ 0.83545082386690905
+ 0.83548831714024085
+ 0.83552581411436144
+ 0.83556331479005697
+ 0.83560081916811957
+ 0.83563832724934317
+ 0.83567583903451637
+ 0.8357133545244334
+ 0.83575087371988488
+ 0.83578839662166526
+ 0.83582592323056748
+ 0.83586345354738023
+ 0.83590098757290043
+ 0.83593852530792334
+ 0.83597606675323799
+ 0.83601361190964174
+ 0.83605116077793185
+ 0.83608871335889601
+ 0.8361262696533337
+ 0.83616382966204073
+ 0.83620139338580879
+ 0.83623896082543803
+ 0.83627653198172436
+ 0.83631410685546204
+ 0.8363516854474472
+ 0.83638926775848044
+ 0.83642685378935611
+ 0.83646444354087091
+ 0.83650203701382542
+ 0.83653963420901667
+ 0.83657723512724358
+ 0.83661483976930495
+ 0.83665244813599637
+ 0.83669006022812276
+ 0.83672767604647957
+ 0.83676529559186652
+ 0.83680291886508906
+ 0.83684054586694079
+ 0.83687817659822383
+ 0.83691581105974189
+ 0.8369534492522952
+ 0.8369910911766858
+ 0.83702873683371404
+ 0.83706638622418039
+ 0.83710403934889133
+ 0.8371416962086472
+ 0.83717935680425315
+ 0.83721702113650953
+ 0.83725468920622181
+ 0.83729236101419291
+ 0.83733003656122584
+ 0.83736771584812808
+ 0.83740539887570087
+ 0.83744308564475178
+ 0.83748077615608651
+ 0.83751847041050687
+ 0.83755616840882241
+ 0.83759387015183728
+ 0.83763157564035962
+ 0.83766928487519365
+ 0.83770699785714753
+ 0.83774471458702993
+ 0.83778243506564698
+ 0.83782015929380549
+ 0.83785788727231636
+ 0.83789561900198639
+ 0.8379333544836246
+ 0.83797109371803791
+ 0.83800883670603776
+ 0.8380465834484353
+ 0.8380843339460361
+ 0.83812208819965361
+ 0.83815984621009754
+ 0.83819760797817955
+ 0.83823537350470767
+ 0.83827314279049592
+ 0.83831091583635642
+ 0.83834869264309719
+ 0.83838647321153481
+ 0.83842425754247962
+ 0.83846204563674442
+ 0.83849983749514156
+ 0.83853763311848595
+ 0.83857543250759059
+ 0.83861323566327051
+ 0.83865104258633894
+ 0.83868885327760878
+ 0.83872666773789584
+ 0.83876448596801723
+ 0.83880230796878474
+ 0.83884013374101818
+ 0.83887796328552922
+ 0.83891579660313786
+ 0.83895363369466025
+ 0.83899147456091028
+ 0.83902931920270662
+ 0.83906716762086742
+ 0.83910501981621122
+ 0.83914287578955282
+ 0.8391807355417148
+ 0.83921859907350993
+ 0.83925646638576346
+ 0.83929433747929227
+ 0.83933221235491184
+ 0.83937009101344717
+ 0.83940797345571794
+ 0.83944585968254148
+ 0.83948374969473971
+ 0.8395216434931343
+ 0.83955954107854724
+ 0.83959744245179635
+ 0.83963534761370984
+ 0.83967325656510394
+ 0.83971116930680334
+ 0.83974908583963004
+ 0.83978700616440882
+ 0.83982493028196059
+ 0.83986285819311179
+ 0.83990078989868378
+ 0.83993872539950132
+ 0.83997666469639176
+ 0.84001460779017445
+ 0.8400525546816785
+ 0.84009050537172969
+ 0.84012845986114959
+ 0.84016641815077009
+ 0.84020438024141075
+ 0.84024234613390392
+ 0.84028031582907348
+ 0.84031828932774766
+ 0.84035626663075302
+ 0.8403942477389198
+ 0.84043223265307265
+ 0.84047022137404015
+ 0.84050821390265329
+ 0.84054621023974108
+ 0.84058421038613018
+ 0.84062221434265416
+ 0.84066022211013824
+ 0.84069823368941354
+ 0.84073624908131372
+ 0.84077426828666857
+ 0.84081229130630564
+ 0.84085031814106093
+ 0.84088834879176233
+ 0.84092638325924396
+ 0.84096442154433604
+ 0.8410024636478749
+ 0.84104050957068921
+ 0.84107855931361519
+ 0.84111661287748385
+ 0.84115467026313162
+ 0.84119273147138984
+ 0.8412307965030954
+ 0.84126886535908141
+ 0.84130693804018319
+ 0.84134501454723609
+ 0.84138309488107577
+ 0.84142117904253577
+ 0.84145926703245577
+ 0.84149735885167187
+ 0.84153545450101785
+ 0.84157355398133393
+ 0.84161165729345433
+ 0.84164976443822137
+ 0.84168787541646961
+ 0.8417259902290396
+ 0.84176410887676589
+ 0.84180223136049148
+ 0.84184035768105314
+ 0.84187848783929231
+ 0.84191662183604787
+ 0.84195475967215716
+ 0.84199290134846561
+ 0.84203104686581087
+ 0.84206919622503451
+ 0.84210734942698007
+ 0.84214550647248398
+ 0.84218366736239392
+ 0.84222183209754797
+ 0.8422600006787927
+ 0.8422981731069662
+ 0.84233634938291524
+ 0.84237452950748204
+ 0.8424127134815097
+ 0.84245090130584299
+ 0.84248909298132679
+ 0.84252728850880432
+ 0.84256548788912289
+ 0.8426036911231255
+ 0.84264189821165991
+ 0.84268010915557157
+ 0.84271832395570423
+ 0.84275654261290778
+ 0.84279476512802609
+ 0.84283299150190927
+ 0.84287122173540141
+ 0.84290945582935273
+ 0.84294769378461198
+ 0.8429859356020255
+ 0.84302418128244205
+ 0.84306243082671228
+ 0.84310068423568318
+ 0.84313894151020796
+ 0.84317720265113349
+ 0.84321546765931121
+ 0.84325373653559033
+ 0.84329200928082471
+ 0.84333028589586168
+ 0.84336856638155511
+ 0.84340685073875687
+ 0.84344513896831719
+ 0.8434834310710918
+ 0.84352172704792916
+ 0.84356002689968568
+ 0.84359833062721379
+ 0.84363663823136603
+ 0.84367494971299728
+ 0.84371326507296229
+ 0.84375158431211628
+ 0.84378990743130999
+ 0.84382823443140487
+ 0.8438665653132521
+ 0.84390490007770746
+ 0.84394323872562826
+ 0.84398158125787237
+ 0.84401992767529543
+ 0.84405827797875366
+ 0.84409663216910502
+ 0.84413499024720773
+ 0.8441733522139182
+ 0.84421171807009665
+ 0.84425008781660182
+ 0.84428846145429048
+ 0.84432683898402527
+ 0.84436522040666129
+ 0.84440360572306161
+ 0.84444199493408734
+ 0.84448038804059766
+ 0.84451878504345235
+ 0.84455718594351281
+ 0.84459559074164248
+ 0.84463399943870165
+ 0.84467241203555188
+ 0.84471082853305746
+ 0.84474924893208037
+ 0.84478767323348292
+ 0.84482610143812753
+ 0.84486453354688096
+ 0.84490296956060584
+ 0.84494140948016694
+ 0.84497985330642511
+ 0.84501830104025144
+ 0.84505675268250713
+ 0.84509520823405948
+ 0.84513366769577369
+ 0.84517213106851385
+ 0.84521059835315293
+ 0.84524906955054924
+ 0.84528754466157674
+ 0.84532602368710108
+ 0.84536450662798868
+ 0.84540299348510761
+ 0.84544148425932852
+ 0.84547997895151816
+ 0.84551847756254883
+ 0.84555698009328339
+ 0.84559548654459893
+ 0.84563399691736019
+ 0.84567251121244058
+ 0.84571102943070953
+ 0.84574955157304021
+ 0.84578807764030006
+ 0.84582660763336337
+ 0.84586514155310111
+ 0.8459036794003878
+ 0.8459422211760913
+ 0.8459807668810897
+ 0.84601931651625362
+ 0.84605787008245692
+ 0.8460964275805728
+ 0.84613498901147743
+ 0.84617355437604402
+ 0.84621212367514731
+ 0.84625069690966404
+ 0.84628927408046828
+ 0.84632785518843623
+ 0.84636644023444219
+ 0.84640502921936744
+ 0.84644362214408375
+ 0.8464822190094704
+ 0.84652081981640426
+ 0.84655942456576483
+ 0.8465980332584282
+ 0.84663664589527321
+ 0.84667526247717984
+ 0.84671388300502692
+ 0.84675250747969122
+ 0.84679113590205513
+ 0.84682976827299805
+ 0.84686840459340096
+ 0.84690704486414325
+ 0.8469456890861059
+ 0.84698433726017053
+ 0.84702298938722109
+ 0.84706164546813656
+ 0.84710030550380178
+ 0.8471389694950956
+ 0.8471776374429052
+ 0.8472163093481121
+ 0.84725498521159892
+ 0.84729366503425019
+ 0.84733234881695052
+ 0.84737103656058677
+ 0.84740972826603966
+ 0.84744842393419595
+ 0.84748712356594547
+ 0.84752582716216684
+ 0.84756453472375171
+ 0.84760324625158368
+ 0.84764196174655027
+ 0.84768068120954121
+ 0.84771940464144069
+ 0.84775813204313866
+ 0.84779686341552285
+ 0.84783559875948022
+ 0.84787433807590262
+ 0.84791308136567722
+ 0.84795182862969398
+ 0.8479905798688423
+ 0.84802933508401501
+ 0.84806809427609875
+ 0.84810685744598524
+ 0.84814562459456766
+ 0.84818439572273541
+ 0.84822317083138421
+ 0.84826194992140147
+ 0.84830073299368158
+ 0.84833952004911584
+ 0.84837831108860118
+ 0.84841710611302901
+ 0.84845590512329228
+ 0.84849470812028505
+ 0.84853351510490427
+ 0.84857232607804278
+ 0.84861114104059521
+ 0.84864995999346071
+ 0.84868878293753036
+ 0.84872760987370166
+ 0.84876644080287367
+ 0.84880527572594022
+ 0.84884411464379905
+ 0.84888295755734966
+ 0.84892180446748811
+ 0.84896065537511245
+ 0.84899951028112108
+ 0.84903836918641407
+ 0.84907723209189023
+ 0.84911609899844953
+ 0.84915496990698924
+ 0.84919384481841231
+ 0.84923272373361935
+ 0.84927160665350732
+ 0.84931049357898214
+ 0.84934938451094255
+ 0.84938827945029249
+ 0.84942717839793136
+ 0.8494660813547632
+ 0.84950498832169163
+ 0.84954389929961871
+ 0.84958281428944871
+ 0.84962173329208612
+ 0.84966065630843335
+ 0.84969958333939444
+ 0.84973851438587855
+ 0.84977744944878475
+ 0.8498163885290233
+ 0.84985533162749793
+ 0.84989427874511569
+ 0.84993322988278375
+ 0.84997218504140792
+ 0.8500111442218955
+ 0.85005010742515641
+ 0.85008907465209471
+ 0.85012804590362046
+ 0.85016702118064325
+ 0.85020600048406991
+ 0.85024498381481117
+ 0.85028397117377663
+ 0.85032296256187589
+ 0.85036195798001923
+ 0.8504009574291197
+ 0.85043996091008467
+ 0.85047896842382531
+ 0.85051797997125678
+ 0.85055699555328845
+ 0.8505960151708345
+ 0.85063503882480407
+ 0.85067406651611555
+ 0.85071309824567698
+ 0.85075213401440608
+ 0.85079117382321578
+ 0.8508302176730197
+ 0.85086926556473308
+ 0.85090831749926865
+ 0.85094737347754668
+ 0.85098643350048064
+ 0.8510254975689856
+ 0.85106456568397859
+ 0.85110363784637511
+ 0.85114271405709652
+ 0.85118179431705676
+ 0.85122087862717355
+ 0.85125996698836848
+ 0.85129905940155604
+ 0.85133815586765627
+ 0.85137725638758954
+ 0.85141636096227591
+ 0.85145546959263263
+ 0.85149458227958408
+ 0.85153369902404485
+ 0.85157281982694066
+ 0.85161194468919188
+ 0.85165107361172032
+ 0.85169020659544747
+ 0.85172934364129438
+ 0.85176848475018474
+ 0.85180762992304304
+ 0.85184677916079066
+ 0.85188593246435174
+ 0.85192508983465254
+ 0.85196425127261577
+ 0.85200341677916358
+ 0.85204258635522445
+ 0.85208176000172375
+ 0.85212093771958775
+ 0.8521601195097398
+ 0.85219930537310917
+ 0.8522384953106209
+ 0.85227768932320291
+ 0.85231688741178235
+ 0.85235608957728892
+ 0.85239529582064877
+ 0.85243450614278993
+ 0.85247372054464254
+ 0.85251293902713865
+ 0.85255216159120462
+ 0.85259138823777147
+ 0.85263061896776748
+ 0.85266985378212568
+ 0.85270909268177697
+ 0.85274833566765429
+ 0.85278758274068522
+ 0.85282683390180491
+ 0.85286608915194495
+ 0.85290534849203925
+ 0.85294461192301918
+ 0.85298387944581866
+ 0.85302315106137216
+ 0.85306242677061572
+ 0.85310170657448148
+ 0.85314099047390435
+ 0.85318027846982059
+ 0.85321957056316522
+ 0.85325886675487483
+ 0.8532981670458849
+ 0.85333747143713423
+ 0.8533767799295563
+ 0.85341609252409267
+ 0.85345540922167862
+ 0.85349473002325227
+ 0.85353405492975332
+ 0.85357338394211968
+ 0.85361271706128972
+ 0.85365205428820556
+ 0.85369139562380592
+ 0.85373074106902891
+ 0.85377009062481979
+ 0.85380944429211314
+ 0.85384880207185765
+ 0.85388816396498923
+ 0.85392752997245247
+ 0.85396690009518905
+ 0.85400627433414422
+ 0.85404565269025612
+ 0.85408503516447276
+ 0.85412442175773529
+ 0.8541638124709886
+ 0.85420320730517862
+ 0.8542426062612497
+ 0.85428200934014431
+ 0.85432141654281146
+ 0.85436082787019596
+ 0.85440024332324427
+ 0.85443966290290418
+ 0.85447908661012029
+ 0.8545185144458427
+ 0.85455794641101823
+ 0.85459738250659301
+ 0.8546368227335186
+ 0.85467626709274291
+ 0.85471571558521631
+ 0.8547551682118828
+ 0.85479462497370096
+ 0.85483408587161303
+ 0.85487355090657402
+ 0.85491302007953662
+ 0.85495249339144941
+ 0.85499197084326384
+ 0.85503145243593115
+ 0.85507093817040847
+ 0.85511042804764359
+ 0.85514992206859386
+ 0.85518942023420941
+ 0.85522892254544625
+ 0.85526842900325784
+ 0.85530793960860085
+ 0.85534745436242599
+ 0.8553869732656928
+ 0.85542649631935697
+ 0.85546602352437062
+ 0.85550555488169489
+ 0.8555450903922831
+ 0.85558463005709384
+ 0.85562417387708523
+ 0.85566372185321637
+ 0.85570327398644319
+ 0.85574283027772502
+ 0.85578239072802209
+ 0.85582195533829253
+ 0.85586152410949445
+ 0.85590109704259243
+ 0.85594067413854469
+ 0.85598025539831224
+ 0.85601984082285554
+ 0.8560594304131377
+ 0.85609902417011774
+ 0.85613862209476299
+ 0.85617822418803302
+ 0.85621783045088895
+ 0.85625744088429878
+ 0.85629705548922408
+ 0.85633667426662896
+ 0.85637629721747743
+ 0.85641592434273772
+ 0.85645555564337028
+ 0.85649519112034389
+ 0.85653483077462489
+ 0.85657447460717628
+ 0.85661412261896919
+ 0.85665377481096827
+ 0.85669343118414309
+ 0.85673309173945922
+ 0.85677275647788598
+ 0.85681242540039082
+ 0.85685209850794619
+ 0.85689177580151776
+ 0.85693145728207576
+ 0.85697114295059429
+ 0.85701083280803791
+ 0.85705052685538119
+ 0.85709022509359678
+ 0.8571299275236538
+ 0.85716963414652292
+ 0.85720934496317769
+ 0.85724905997459522
+ 0.85728877918174284
+ 0.85732850258559423
+ 0.85736823018712904
+ 0.8574079619873155
+ 0.8574476979871295
+ 0.85748743818754725
+ 0.85752718258954475
+ 0.85756693119409688
+ 0.85760668400218021
+ 0.85764644101476928
+ 0.85768620223284142
+ 0.8577259676573773
+ 0.85776573728935024
+ 0.85780551112974202
+ 0.8578452891795274
+ 0.85788507143968873
+ 0.85792485791120332
+ 0.85796464859504973
+ 0.85800444349220761
+ 0.85804424260366108
+ 0.85808404593038479
+ 0.85812385347336528
+ 0.85816366523358334
+ 0.85820348121201562
+ 0.85824330140965144
+ 0.85828312582746757
+ 0.85832295446644924
+ 0.85836278732758042
+ 0.85840262441184434
+ 0.85844246572022453
+ 0.85848231125370322
+ 0.85852216101327061
+ 0.85856201499990858
+ 0.85860187321460124
+ 0.85864173565833768
+ 0.858681602332104
+ 0.85872147323688308
+ 0.85876134837366613
+ 0.85880122774344014
+ 0.8588411113471921
+ 0.85888099918590977
+ 0.85892089126058246
+ 0.85896078757219962
+ 0.85900068812174968
+ 0.85904059291022206
+ 0.85908050193860908
+ 0.85912041520789906
+ 0.85916033271908465
+ 0.85920025447315584
+ 0.85924018047110384
+ 0.85928011071392152
+ 0.85932004520260374
+ 0.85935998393813984
+ 0.85939992692152511
+ 0.859439874153751
+ 0.85947982563581304
+ 0.8595197813687051
+ 0.85955974135342306
+ 0.85959970559096333
+ 0.8596396740823179
+ 0.85967964682848308
+ 0.85971962383045974
+ 0.8597596050892381
+ 0.85979959060581912
+ 0.85983958038120045
+ 0.85987957441637819
+ 0.85991957271235253
+ 0.85995957527012057
+ 0.85999958209068184
+ 0.86003959317503631
+ 0.86007960852418375
+ 0.86011962813912424
+ 0.86015965202085576
+ 0.86019968017038306
+ 0.8602397125887048
+ 0.86027974927682493
+ 0.86031979023574501
+ 0.86035983546646777
+ 0.8603998849699942
+ 0.8604399387473276
+ 0.86047999679947573
+ 0.86052005912743978
+ 0.86056012573222163
+ 0.86060019661483333
+ 0.86064027177627289
+ 0.86068035121754827
+ 0.86072043493966799
+ 0.86076052294363448
+ 0.8608006152304587
+ 0.86084071180114496
+ 0.8608808126567028
+ 0.86092091779813906
+ 0.86096102722646095
+ 0.8610011409426801
+ 0.86104125894780403
+ 0.86108138124284228
+ 0.86112150782880503
+ 0.86116163870670204
+ 0.86120177387754782
+ 0.86124191334234657
+ 0.86128205710211481
+ 0.86132220515786517
+ 0.86136235751060664
+ 0.86140251416135405
+ 0.86144267511112071
+ 0.8614828403609196
+ 0.86152300991176456
+ 0.86156318376466889
+ 0.86160336192065023
+ 0.8616435443807211
+ 0.8616837311458968
+ 0.86172392221719407
+ 0.8617641175956311
+ 0.86180431728222029
+ 0.86184452127798483
+ 0.86188472958393691
+ 0.86192494220109406
+ 0.86196515913048133
+ 0.86200538037310981
+ 0.8620456059300009
+ 0.86208583580217679
+ 0.86212606999065455
+ 0.86216630849645681
+ 0.86220655132060098
+ 0.86224679846411201
+ 0.86228704992800764
+ 0.86232730571331284
+ 0.86236756582104834
+ 0.86240783025223677
+ 0.86244809900790131
+ 0.86248837208906526
+ 0.86252864949675401
+ 0.86256893123199085
+ 0.86260921729579965
+ 0.86264950768920778
+ 0.86268980241323789
+ 0.86273010146891771
+ 0.86277040485727363
+ 0.86281071257933195
+ 0.86285102463611951
+ 0.86289134102866516
+ 0.86293166175799352
+ 0.86297198682513598
+ 0.8630123162311214
+ 0.86305264997697761
+ 0.86309298806373391
+ 0.86313333049242236
+ 0.86317367726407024
+ 0.86321402837971228
+ 0.86325438384037378
+ 0.86329474364709213
+ 0.86333510780089728
+ 0.86337547630281986
+ 0.86341584915389502
+ 0.86345622635515551
+ 0.8634966079076325
+ 0.86353699381236537
+ 0.86357738407038365
+ 0.86361777868272294
+ 0.86365817765041886
+ 0.86369858097450947
+ 0.86373898865602694
+ 0.86377940069600956
+ 0.86381981709549582
+ 0.86386023785552191
+ 0.86390066297712309
+ 0.8639410924613401
+ 0.86398152630920988
+ 0.86402196452177382
+ 0.8640624071000691
+ 0.86410285404513543
+ 0.86414330535801276
+ 0.8641837610397447
+ 0.86422422109136721
+ 0.86426468551392877
+ 0.86430515430846333
+ 0.86434562747601562
+ 0.86438610501763036
+ 0.86442658693435082
+ 0.86446707322721916
+ 0.86450756389727701
+ 0.86454805894557174
+ 0.86458855837314674
+ 0.86462906218104774
+ 0.86466957037032022
+ 0.86471008294200857
+ 0.86475059989716119
+ 0.86479112123682556
+ 0.86483164696204451
+ 0.86487217707387121
+ 0.86491271157334748
+ 0.86495325046152682
+ 0.8649937937394564
+ 0.86503434140818336
+ 0.8650748934687611
+ 0.86511544992223743
+ 0.86515601076966364
+ 0.86519657601209021
+ 0.86523714565056908
+ 0.86527771968615041
+ 0.86531829811988836
+ 0.86535888095283398
+ 0.86539946818604185
+ 0.86544005982056293
+ 0.86548065585745215
+ 0.86552125629776488
+ 0.86556186114255429
+ 0.86560247039287819
+ 0.8656430840497884
+ 0.86568370211434242
+ 0.86572432458759663
+ 0.86576495147060717
+ 0.86580558276443453
+ 0.86584621847013088
+ 0.86588685858875747
+ 0.86592750312137279
+ 0.86596815206903399
+ 0.86600880543280245
+ 0.86604946321373522
+ 0.86609012541289798
+ 0.86613079203134458
+ 0.86617146307013881
+ 0.86621213853034273
+ 0.86625281841301638
+ 0.86629350271922434
+ 0.86633419145002699
+ 0.86637488460648904
+ 0.86641558218967341
+ 0.86645628420064325
+ 0.86649699064046348
+ 0.86653770151019982
+ 0.8665784168109173
+ 0.86661913654368017
+ 0.86665986070955592
+ 0.86670058930960858
+ 0.86674132234490875
+ 0.86678205981652034
+ 0.86682280172551218
+ 0.86686354807295474
+ 0.86690429885991305
+ 0.86694505408745981
+ 0.86698581375666051
+ 0.86702657786858872
+ 0.86706734642431171
+ 0.86710811942490318
+ 0.86714889687143093
+ 0.867189678764969
+ 0.86723046510658774
+ 0.86727125589736154
+ 0.86731205113836274
+ 0.86735285083066438
+ 0.86739365497533893
+ 0.86743446357346143
+ 0.86747527662610768
+ 0.86751609413435027
+ 0.86755691609926755
+ 0.86759774252193256
+ 0.86763857340342554
+ 0.86767940874481841
+ 0.86772024854719332
+ 0.86776109281162284
+ 0.86780194153918755
+ 0.86784279473096615
+ 0.86788365238803733
+ 0.86792451451148056
+ 0.86796538110237453
+ 0.86800625216180116
+ 0.86804712769083969
+ 0.86808800769057204
+ 0.868128892162078
+ 0.86816978110644194
+ 0.86821067452474388
+ 0.86825157241807005
+ 0.86829247478749949
+ 0.86833338163411888
+ 0.86837429295901081
+ 0.86841520876326073
+ 0.86845612904795577
+ 0.8684970538141753
+ 0.86853798306301122
+ 0.868578916795545
+ 0.86861985501286676
+ 0.86866079771606275
+ 0.86870174490621899
+ 0.86874269658442849
+ 0.86878365275177305
+ 0.86882461340934425
+ 0.86886557855823277
+ 0.86890654819952984
+ 0.86894752233432071
+ 0.86898850096369873
+ 0.86902948408875602
+ 0.86907047171058194
+ 0.86911146383027094
+ 0.86915246044891292
+ 0.86919346156760258
+ 0.8692344671874338
+ 0.86927547730949817
+ 0.86931649193488991
+ 0.86935751106470416
+ 0.86939853470003847
+ 0.8694395628419842
+ 0.86948059549164047
+ 0.86952163265010352
+ 0.86956267431846679
+ 0.86960372049783108
+ 0.86964477118929384
+ 0.86968582639395031
+ 0.86972688611290239
+ 0.8697679503472493
+ 0.86980901909808594
+ 0.86985009236651933
+ 0.86989117015364292
+ 0.86993225246056205
+ 0.86997333928837661
+ 0.87001443063818806
+ 0.87005552651109652
+ 0.87009662690821055
+ 0.87013773183062804
+ 0.87017884127945389
+ 0.87021995525579032
+ 0.8702610737607448
+ 0.87030219679542209
+ 0.87034332436092532
+ 0.87038445645835993
+ 0.87042559308883571
+ 0.87046673425345433
+ 0.87050787995332546
+ 0.87054903018955754
+ 0.87059018496325891
+ 0.87063134427553546
+ 0.87067250812749664
+ 0.87071367652025233
+ 0.87075484945491233
+ 0.8707960269325874
+ 0.8708372089543871
+ 0.87087839552142265
+ 0.87091958663480618
+ 0.87096078229565088
+ 0.87100198250506755
+ 0.87104318726416974
+ 0.87108439657406833
+ 0.87112561043588199
+ 0.87116682885072072
+ 0.87120805181970218
+ 0.87124927934394147
+ 0.87129051142455138
+ 0.87133174806264768
+ 0.87137298925935192
+ 0.87141423501577597
+ 0.87145548533303985
+ 0.87149674021226375
+ 0.87153799965455991
+ 0.87157926366105076
+ 0.87162053223285751
+ 0.87166180537109428
+ 0.87170308307688893
+ 0.87174436535135424
+ 0.87178565219561766
+ 0.87182694361079471
+ 0.87186823959801352
+ 0.87190954015839162
+ 0.87195084529305544
+ 0.87199215500312521
+ 0.87203346928972747
+ 0.87207478815398698
+ 0.87211611159702607
+ 0.8721574396199685
+ 0.87219877222394482
+ 0.87224010941007701
+ 0.87228145117949429
+ 0.87232279753332254
+ 0.8723641484726874
+ 0.8724055039987213
+ 0.87244686411254857
+ 0.87248822881529964
+ 0.87252959810810493
+ 0.87257097199209355
+ 0.87261235046839403
+ 0.87265373353814046
+ 0.87269512120246129
+ 0.87273651346248671
+ 0.87277791031935203
+ 0.87281931177418925
+ 0.8728607178281329
+ 0.87290212848231263
+ 0.87294354373786331
+ 0.87298496359592348
+ 0.87302638805762189
+ 0.87306781712409764
+ 0.87310925079648793
+ 0.87315068907592397
+ 0.8731921319635475
+ 0.87323357946049229
+ 0.87327503156789799
+ 0.87331648828690311
+ 0.87335794961864344
+ 0.87339941556426159
+ 0.87344088612489645
+ 0.87348236130168466
+ 0.87352384109577141
+ 0.87356532550829347
+ 0.87360681454039502
+ 0.87364830819321659
+ 0.87368980646790051
+ 0.87373130936559096
+ 0.87377281688743147
+ 0.8738143290345628
+ 0.87385584580813114
+ 0.87389736720928124
+ 0.87393889323915785
+ 0.87398042389890818
+ 0.87402195918967518
+ 0.8740634991126085
+ 0.87410504366885378
+ 0.87414659285955887
+ 0.87418814668587108
+ 0.87422970514893716
+ 0.87427126824991153
+ 0.87431283598994025
+ 0.8743544083701722
+ 0.87439598539175811
+ 0.8744375670558493
+ 0.87447915336359883
+ 0.87452074431615612
+ 0.87456233991467291
+ 0.87460394016030507
+ 0.87464554505420267
+ 0.87468715459752133
+ 0.87472876879141392
+ 0.87477038763703474
+ 0.87481201113554086
+ 0.87485363928808679
+ 0.87489527209582807
+ 0.87493690955992165
+ 0.87497855168152516
+ 0.87502019846179402
+ 0.87506184990188818
+ 0.87510350600296616
+ 0.87514516676618337
+ 0.87518683219270488
+ 0.8752285022836872
+ 0.87527017704029098
+ 0.87531185646367693
+ 0.87535354055500703
+ 0.87539522931544167
+ 0.87543692274614493
+ 0.87547862084827821
+ 0.8755203236230058
+ 0.87556203107148978
+ 0.87560374319489609
+ 0.87564545999438759
+ 0.87568718147113078
+ 0.87572890762629252
+ 0.87577063846103587
+ 0.87581237397653011
+ 0.87585411417393833
+ 0.87589585905443257
+ 0.87593760861917858
+ 0.87597936286934608
+ 0.8760211218061037
+ 0.87606288543062139
+ 0.87610465374406565
+ 0.8761464267476119
+ 0.87618820444242829
+ 0.87622998682968622
+ 0.87627177391055933
+ 0.87631356568621643
+ 0.87635536215783394
+ 0.87639716332658357
+ 0.87643896919364095
+ 0.87648077976017913
+ 0.87652259502737184
+ 0.87656441499639581
+ 0.87660623966842655
+ 0.87664806904464043
+ 0.87668990312621475
+ 0.87673174191432512
+ 0.87677358541015138
+ 0.87681543361486869
+ 0.87685728652965944
+ 0.87689914415570192
+ 0.87694100649417406
+ 0.87698287354625715
+ 0.8770247453131309
+ 0.87706662179597938
+ 0.87710850299597876
+ 0.87715038891431918
+ 0.8771922795521756
+ 0.87723417491073608
+ 0.87727607499118243
+ 0.8773179797946965
+ 0.87735988932246911
+ 0.87740180357567821
+ 0.87744372255551495
+ 0.87748564626316383
+ 0.87752757469981002
+ 0.87756950786664079
+ 0.87761144576484384
+ 0.87765338839561058
+ 0.87769533576012482
+ 0.8777372878595785
+ 0.87777924469515833
+ 0.87782120626805826
+ 0.87786317257946722
+ 0.8779051436305737
+ 0.87794711942257264
+ 0.87798909995665608
+ 0.87803108523401674
+ 0.87807307525584388
+ 0.878115070023334
+ 0.8781570695376808
+ 0.87819907380007822
+ 0.87824108281172331
+ 0.87828309657380987
+ 0.87832511508753286
+ 0.87836713835408975
+ 0.87840916637467892
+ 0.87845119915049641
+ 0.87849323668274137
+ 0.87853527897261174
+ 0.87857732602130512
+ 0.87861937783002397
+ 0.87866143439996658
+ 0.87870349573233142
+ 0.87874556182832531
+ 0.87878763268914295
+ 0.87882970831599183
+ 0.87887178871007088
+ 0.87891387387258568
+ 0.87895596380474028
+ 0.87899805850773394
+ 0.87904015798277746
+ 0.87908226223107078
+ 0.8791243712538227
+ 0.87916648505223738
+ 0.87920860362752395
+ 0.87925072698088569
+ 0.87929285511353372
+ 0.87933498802667354
+ 0.87937712572151694
+ 0.87941926819926985
+ 0.87946141546114198
+ 0.87950356750834613
+ 0.87954572434209255
+ 0.87958788596358761
+ 0.87963005237404868
+ 0.87967222357468677
+ 0.87971439956671271
+ 0.87975658035134052
+ 0.87979876592978357
+ 0.87984095630325776
+ 0.87988315147297536
+ 0.87992535144015249
+ 0.87996755620600542
+ 0.88000976577174927
+ 0.88005198013860275
+ 0.88009419930778077
+ 0.8801364232805029
+ 0.88017865205798818
+ 0.88022088564145284
+ 0.88026312403211826
+ 0.8803053672312029
+ 0.88034761523992666
+ 0.88038986805951447
+ 0.88043212569118068
+ 0.88047438813615231
+ 0.88051665539565227
+ 0.88055892747090225
+ 0.88060120436312128
+ 0.88064348607354137
+ 0.88068577260338043
+ 0.88072806395386605
+ 0.88077036012622523
+ 0.88081266112168
+ 0.88085496694146126
+ 0.88089727758679415
+ 0.88093959305890501
+ 0.88098191335902387
+ 0.88102423848837819
+ 0.8810665684481952
+ 0.88110890323970925
+ 0.88115124286414626
+ 0.88119358732274078
+ 0.88123593661672106
+ 0.88127829074731812
+ 0.88132064971576696
+ 0.88136301352330015
+ 0.8814053821711475
+ 0.88144775566054645
+ 0.88149013399273102
+ 0.88153251716893244
+ 0.88157490519039194
+ 0.88161729805833888
+ 0.88165969577401437
+ 0.88170209833865498
+ 0.88174450575349794
+ 0.88178691801978037
+ 0.88182933513873718
+ 0.88187175711161458
+ 0.88191418393964838
+ 0.88195661562407812
+ 0.88199905216614638
+ 0.88204149356709127
+ 0.8820839398281578
+ 0.88212639095058865
+ 0.88216884693562081
+ 0.8822113077845033
+ 0.882253773498478
+ 0.88229624407878848
+ 0.8823387195266803
+ 0.88238119984339991
+ 0.88242368503019142
+ 0.88246617508830116
+ 0.88250867001897804
+ 0.88255116982346693
+ 0.88259367450301895
+ 0.88263618405887934
+ 0.88267869849229974
+ 0.8827212178045275
+ 0.88276374199681307
+ 0.88280627107041054
+ 0.88284880502656793
+ 0.88289134386653589
+ 0.88293388759157154
+ 0.88297643620292132
+ 0.88301898970184289
+ 0.88306154808958948
+ 0.88310411136741451
+ 0.88314667953657411
+ 0.88318925259832015
+ 0.88323183055391485
+ 0.88327441340460866
+ 0.88331700115166223
+ 0.88335959379633244
+ 0.88340219133987863
+ 0.88344479378355745
+ 0.88348740112862689
+ 0.88353001337634862
+ 0.8835726305279844
+ 0.88361525258479234
+ 0.88365787954803698
+ 0.88370051141897488
+ 0.88374314819887445
+ 0.88378578988899481
+ 0.88382843649060117
+ 0.88387108800495706
+ 0.88391374443332593
+ 0.88395640577697543
+ 0.88399907203716788
+ 0.88404174321517348
+ 0.88408441931225457
+ 0.88412710032968378
+ 0.88416978626872422
+ 0.88421247713064666
+ 0.88425517291672051
+ 0.88429787362821122
+ 0.88434057926639476
+ 0.88438328983253467
+ 0.8844260053279116
+ 0.88446872575378743
+ 0.88451145111143881
+ 0.88455418140213882
+ 0.88459691662716011
+ 0.88463965678777634
+ 0.88468240188526237
+ 0.88472515192089241
+ 0.88476790689594365
+ 0.88481066681168885
+ 0.88485343166940578
+ 0.88489620147037329
+ 0.88493897621586981
+ 0.88498175590716843
+ 0.88502454054555202
+ 0.88506733013229844
+ 0.88511012466869088
+ 0.88515292415600533
+ 0.8851957285955232
+ 0.8852385379885277
+ 0.88528135233629834
+ 0.88532417164012245
+ 0.88536699590127854
+ 0.88540982512105371
+ 0.88545265930072936
+ 0.88549549844159259
+ 0.88553834254492569
+ 0.88558119161201854
+ 0.88562404564415287
+ 0.88566690464262132
+ 0.88570976860870854
+ 0.88575263754370115
+ 0.88579551144888835
+ 0.88583839032556133
+ 0.88588127417500939
+ 0.88592416299852261
+ 0.88596705679739041
+ 0.88600995557290518
+ 0.88605285932636102
+ 0.88609576805904688
+ 0.8861386817722593
+ 0.88618160046728889
+ 0.8862245241454314
+ 0.88626745280798203
+ 0.88631038645623439
+ 0.88635332509148645
+ 0.88639626871503419
+ 0.88643921732817399
+ 0.88648217093220438
+ 0.88652512952842166
+ 0.88656809311812745
+ 0.88661106170261839
+ 0.88665403528319409
+ 0.88669701386115629
+ 0.88673999743780652
+ 0.88678298601444505
+ 0.88682597959237419
+ 0.88686897817289612
+ 0.886911981757318
+ 0.88695499034693637
+ 0.8869980039430605
+ 0.8870410225469938
+ 0.88708404616004366
+ 0.88712707478351427
+ 0.88717010841871369
+ 0.88721314706694576
+ 0.88725619072952111
+ 0.88729923940774635
+ 0.88734229310293278
+ 0.88738535181638722
+ 0.8874284155494212
+ 0.8874714843033441
+ 0.88751455807947
+ 0.8875576368791066
+ 0.88760072070356866
+ 0.88764380955416611
+ 0.88768690343221579
+ 0.88773000233903065
+ 0.8877731062759262
+ 0.88781621524421306
+ 0.88785932924521382
+ 0.88790244828023923
+ 0.88794557235060811
+ 0.88798870145763864
+ 0.88803183560264465
+ 0.88807497478695163
+ 0.88811811901187199
+ 0.8881612682787291
+ 0.88820442258884258
+ 0.88824758194353359
+ 0.88829074634412208
+ 0.88833391579193244
+ 0.88837709028828471
+ 0.88842026983450351
+ 0.8884634544319111
+ 0.88850664408183277
+ 0.88854983878559402
+ 0.88859303854451988
+ 0.88863624335993607
+ 0.88867945323316844
+ 0.8887226681655449
+ 0.8887658881583963
+ 0.88880911321304468
+ 0.88885234333082297
+ 0.88889557851306022
+ 0.88893881876108538
+ 0.88898206407623026
+ 0.88902531445982425
+ 0.88906856991320338
+ 0.88911183043769382
+ 0.88915509603463361
+ 0.88919836670535601
+ 0.88924164245119108
+ 0.88928492327347852
+ 0.88932820917354904
+ 0.88937150015274236
+ 0.88941479621239217
+ 0.88945809735383652
+ 0.88950140357841345
+ 0.88954471488746156
+ 0.88958803128231745
+ 0.8896313527643237
+ 0.8896746793348177
+ 0.8897180109951407
+ 0.88976134774663629
+ 0.88980468959063996
+ 0.88984803652850009
+ 0.8898913885615567
+ 0.88993474569115638
+ 0.88997810791863807
+ 0.89002147524535002
+ 0.89006484767263594
+ 0.89010822520184318
+ 0.89015160783431735
+ 0.89019499557140602
+ 0.89023838841445557
+ 0.89028178636481647
+ 0.89032518942383476
+ 0.89036859759285936
+ 0.89041201087324362
+ 0.89045542926633681
+ 0.89049885277348773
+ 0.89054228139605063
+ 0.89058571513537954
+ 0.89062915399282228
+ 0.89067259796973752
+ 0.89071604706747542
+ 0.89075950128739378
+ 0.89080296063084474
+ 0.89084642509918588
+ 0.89088989469377522
+ 0.89093336941596812
+ 0.89097684926712295
+ 0.89102033424859761
+ 0.89106382436175069
+ 0.89110731960794098
+ 0.89115081998853174
+ 0.89119432550487943
+ 0.8912378361583484
+ 0.89128135195029967
+ 0.89132487288209539
+ 0.89136839895509956
+ 0.89141193017067455
+ 0.89145546653018526
+ 0.89149900803499627
+ 0.8915425546864727
+ 0.89158610648598202
+ 0.89162966343489181
+ 0.89167322553456552
+ 0.89171679278637528
+ 0.89176036519168533
+ 0.89180394275186847
+ 0.89184752546829327
+ 0.8918911133423284
+ 0.89193470637534755
+ 0.89197830456871763
+ 0.89202190792381697
+ 0.89206551644201471
+ 0.89210913012468585
+ 0.89215274897320196
+ 0.89219637298893828
+ 0.89224000217327137
+ 0.89228363652757425
+ 0.89232727605322859
+ 0.89237092075160585
+ 0.89241457062408547
+ 0.89245822567204613
+ 0.89250188589686574
+ 0.89254555129992674
+ 0.89258922188260614
+ 0.89263289764628273
+ 0.89267657859234217
+ 0.89272026472216559
+ 0.89276395603713266
+ 0.89280765253862937
+ 0.89285135422803608
+ 0.89289506110674155
+ 0.89293877317612558
+ 0.89298249043757794
+ 0.89302621289248341
+ 0.89306994054222943
+ 0.89311367338820169
+ 0.89315741143178762
+ 0.89320115467437833
+ 0.89324490311736338
+ 0.89328865676212954
+ 0.89333241561006993
+ 0.89337617966257543
+ 0.89341994892103549
+ 0.89346372338684332
+ 0.89350750306139315
+ 0.89355128794607919
+ 0.8935950780422911
+ 0.89363887335142989
+ 0.89368267387488609
+ 0.89372647961405915
+ 0.89377029057034174
+ 0.89381410674513384
+ 0.89385792813983511
+ 0.89390175475583944
+ 0.89394558659454904
+ 0.89398942365736445
+ 0.89403326594568266
+ 0.89407711346090823
+ 0.89412096620444093
+ 0.89416482417768361
+ 0.89420868738203818
+ 0.89425255581890639
+ 0.89429642948969923
+ 0.89434030839581424
+ 0.89438419253866042
+ 0.89442808191964074
+ 0.89447197654016675
+ 0.8945158764016411
+ 0.89455978150547411
+ 0.8946036918530752
+ 0.89464760744585103
+ 0.89469152828521159
+ 0.89473545437256985
+ 0.89477938570933202
+ 0.89482332229691419
+ 0.89486726413672713
+ 0.89491121014217379
+ 0.89495515973388962
+ 0.89499911291241607
+ 0.89504306967817293
+ 0.89508703003157408
+ 0.89513099397303519
+ 0.89517496150297493
+ 0.89521893262180618
+ 0.89526290732994784
+ 0.8953068856278138
+ 0.89535086751582427
+ 0.89539485299439325
+ 0.89543884206393687
+ 0.89548283472487378
+ 0.8955268309776202
+ 0.89557083082259037
+ 0.89561483426020483
+ 0.89565884129087603
+ 0.89570285191502463
+ 0.89574686613306731
+ 0.89579088394542017
+ 0.89583490535249821
+ 0.89587893035472443
+ 0.89592295895250895
+ 0.89596699114627532
+ 0.89601102693643819
+ 0.89605506632341425
+ 0.8960991093076206
+ 0.89614315588947824
+ 0.89618720606940228
+ 0.89623125984780971
+ 0.89627531722511999
+ 0.89631937820175023
+ 0.89636344277811764
+ 0.89640751095464122
+ 0.89645158273173919
+ 0.89649565810982812
+ 0.89653973708932766
+ 0.8965838196706557
+ 0.89662790585423147
+ 0.89667199564047062
+ 0.89671608902979283
+ 0.89676018602261554
+ 0.89680428661936129
+ 0.89684839082044521
+ 0.8968924986262834
+ 0.89693661003730163
+ 0.89698072505391191
+ 0.89702484367653612
+ 0.8970689659055946
+ 0.89711309174150333
+ 0.89715722118468244
+ 0.89720135423555203
+ 0.89724549089453065
+ 0.89728963116203408
+ 0.89733377503848921
+ 0.89737792252430826
+ 0.89742207361991355
+ 0.89746622832572343
+ 0.89751038664215899
+ 0.89755454856963823
+ 0.89759871410858227
+ 0.89764288325940944
+ 0.89768705602254284
+ 0.89773123239839681
+ 0.89777541238739456
+ 0.89781959598995686
+ 0.89786378320650073
+ 0.89790797403744693
+ 0.89795216848321868
+ 0.8979963665442352
+ 0.89804056822091305
+ 0.8980847735136761
+ 0.89812898242294348
+ 0.89817319494913594
+ 0.8982174110926755
+ 0.89826163085397892
+ 0.89830585423347198
+ 0.89835008123157223
+ 0.89839431184869922
+ 0.89843854608527629
+ 0.89848278394172298
+ 0.8985270254184613
+ 0.89857127051591101
+ 0.89861551923449567
+ 0.89865977157463062
+ 0.89870402753674494
+ 0.89874828712125576
+ 0.89879255032858307
+ 0.89883681715915098
+ 0.89888108761338192
+ 0.89892536169169135
+ 0.89896963939450791
+ 0.89901392072224984
+ 0.89905820567533923
+ 0.89910249425419819
+ 0.89914678645924784
+ 0.89919108229090983
+ 0.89923538174960893
+ 0.89927968483576382
+ 0.89932399154979881
+ 0.89936830189213446
+ 0.89941261586319388
+ 0.89945693346339939
+ 0.89950125469317388
+ 0.89954557955293846
+ 0.89958990804311734
+ 0.89963424016413007
+ 0.89967857591640121
+ 0.89972291530035386
+ 0.89976725831641158
+ 0.89981160496499479
+ 0.89985595524652684
+ 0.89990030916143127
+ 0.89994466671013318
+ 0.89998902789305146
+ 0.90003339271061222
+ 0.90007776116323623
+ 0.90012213325134949
+ 0.9001665089753752
+ 0.90021088833573304
+ 0.90025527133285033
+ 0.90029965796714928
+ 0.90034404823905312
+ 0.90038844214898583
+ 0.90043283969737142
+ 0.90047724088463343
+ 0.90052164571119375
+ 0.90056605417747848
+ 0.90061046628391173
+ 0.90065488203091781
+ 0.90069930141892007
+ 0.90074372444834117
+ 0.90078815111960753
+ 0.9008325814331406
+ 0.90087701538936771
+ 0.90092145298871285
+ 0.90096589423159801
+ 0.90101033911845008
+ 0.90105478764969349
+ 0.90109923982575257
+ 0.90114369564705055
+ 0.90118815511401562
+ 0.90123261822706846
+ 0.90127708498663794
+ 0.90132155539314507
+ 0.90136602944701849
+ 0.90141050714868109
+ 0.90145498849855998
+ 0.90149947349707593
+ 0.90154396214466048
+ 0.90158845444173419
+ 0.90163295038872671
+ 0.90167744998605892
+ 0.90172195323415838
+ 0.90176646013345008
+ 0.90181097068436145
+ 0.90185548488731593
+ 0.90190000274274107
+ 0.90194452425106475
+ 0.90198904941270774
+ 0.90203357822810037
+ 0.90207811069766364
+ 0.90212264682182985
+ 0.90216718660102069
+ 0.90221173003566579
+ 0.90225627712618683
+ 0.90230082787301646
+ 0.90234538227657568
+ 0.90238994033729325
+ 0.90243450205559683
+ 0.90247906743191086
+ 0.90252363646666112
+ 0.90256820916028058
+ 0.90261278551318647
+ 0.90265736552581388
+ 0.90270194919858693
+ 0.90274653653193204
+ 0.90279112752627544
+ 0.902835722182046
+ 0.9028803204996726
+ 0.90292492247957912
+ 0.90296952812219267
+ 0.90301413742794379
+ 0.90305875039725725
+ 0.90310336703056437
+ 0.90314798732828738
+ 0.90319261129085748
+ 0.90323723891870156
+ 0.90328187021224704
+ 0.90332650517192248
+ 0.90337114379815497
+ 0.90341578609137208
+ 0.9034604320520051
+ 0.90350508168047916
+ 0.90354973497722102
+ 0.90359439194266289
+ 0.90363905257722976
+ 0.90368371688135363
+ 0.90372838485545948
+ 0.90377305649997663
+ 0.90381773181533354
+ 0.90386241080196161
+ 0.90390709346028619
+ 0.90395177979073549
+ 0.90399646979374115
+ 0.90404116346973085
+ 0.90408586081913545
+ 0.90413056184237961
+ 0.90417526653989622
+ 0.90421997491211137
+ 0.90426468695945694
+ 0.90430940268236115
+ 0.90435412208125443
+ 0.90439884515656466
+ 0.9044435719087226
+ 0.9044883023381568
+ 0.90453303644529481
+ 0.90457777423057029
+ 0.9046225156944111
+ 0.90466726083724791
+ 0.90471200965950949
+ 0.90475676216162615
+ 0.90480151834402744
+ 0.90484627820714547
+ 0.90489104175140733
+ 0.90493580897724379
+ 0.90498057988508807
+ 0.90502535447536703
+ 0.90507013274851178
+ 0.90511491470495331
+ 0.90515970034512272
+ 0.90520448966945144
+ 0.90524928267836668
+ 0.90529407937230166
+ 0.90533887975168781
+ 0.90538368381695422
+ 0.905428491568531
+ 0.90547330300685125
+ 0.90551811813234662
+ 0.90556293694544454
+ 0.90560775944657912
+ 0.90565258563618145
+ 0.90569741551468197
+ 0.90574224908251422
+ 0.90578708634010574
+ 0.90583192728788886
+ 0.90587677192629956
+ 0.9059216202557635
+ 0.90596647227671512
+ 0.90601132798958883
+ 0.90605618739480986
+ 0.90610105049281719
+ 0.90614591728403682
+ 0.90619078776890549
+ 0.9062356619478531
+ 0.90628053982131007
+ 0.90632542138971117
+ 0.90637030665348861
+ 0.90641519561307349
+ 0.90646008826890023
+ 0.90650498462139706
+ 0.90654988467100139
+ 0.90659478841814156
+ 0.90663969586325455
+ 0.90668460700676923
+ 0.9067295218491207
+ 0.90677444039074206
+ 0.90681936263206386
+ 0.90686428857352164
+ 0.90690921821554649
+ 0.9069541515585734
+ 0.9069990886030338
+ 0.90704402934936079
+ 0.90708897379799014
+ 0.90713392194935283
+ 0.90717887380388251
+ 0.90722382936201473
+ 0.90726878862418103
+ 0.90731375159081473
+ 0.90735871826235215
+ 0.90740368863922449
+ 0.9074486627218652
+ 0.90749364051071091
+ 0.90753862200619517
+ 0.90758360720874998
+ 0.90762859611880897
+ 0.90767358873680826
+ 0.90771858506318215
+ 0.90776358509836463
+ 0.90780858884279003
+ 0.90785359629689233
+ 0.90789860746110629
+ 0.90794362233586534
+ 0.90798864092160703
+ 0.90803366321876278
+ 0.90807868922776946
+ 0.90812371894905974
+ 0.90816875238307226
+ 0.90821378953023735
+ 0.90825883039099375
+ 0.90830387496577447
+ 0.90834892325501648
+ 0.90839397525915189
+ 0.90843903097862011
+ 0.90848409041385203
+ 0.90852915356528685
+ 0.908574220433357
+ 0.90861929101850236
+ 0.90866436532115369
+ 0.90870944334174808
+ 0.90875452508072307
+ 0.90879961053851388
+ 0.90884469971555359
+ 0.9088897926122822
+ 0.90893488922913479
+ 0.90897998956654491
+ 0.9090250936249501
+ 0.90907020140478634
+ 0.90911531290649272
+ 0.90916042813050146
+ 0.90920554707724999
+ 0.90925066974717661
+ 0.90929579614071687
+ 0.90934092625830654
+ 0.90938606010038392
+ 0.90943119766738478
+ 0.90947633895974567
+ 0.90952148397790211
+ 0.90956663272229288
+ 0.90961178519335817
+ 0.90965694139152764
+ 0.90970210131724438
+ 0.90974726497094438
+ 0.90979243235306217
+ 0.90983760346403642
+ 0.90988277830430753
+ 0.90992795687430805
+ 0.90997313917447886
+ 0.91001832520525872
+ 0.91006351496708204
+ 0.91010870846038561
+ 0.91015390568561283
+ 0.91019910664319437
+ 0.91024431133357486
+ 0.91028951975718786
+ 0.91033473191447412
+ 0.91037994780586906
+ 0.91042516743181345
+ 0.91047039079274283
+ 0.91051561788909841
+ 0.91056084872131737
+ 0.9106060832898395
+ 0.91065132159509776
+ 0.91069656363753793
+ 0.91074180941759575
+ 0.91078705893570855
+ 0.91083231219231775
+ 0.91087756918785945
+ 0.9109228299227754
+ 0.91096809439750093
+ 0.91101336261247867
+ 0.91105863456814584
+ 0.91110391026494275
+ 0.91114918970330949
+ 0.91119447288368216
+ 0.9112397598065004
+ 0.91128505047220676
+ 0.91133034488123943
+ 0.91137564303403651
+ 0.91142094493104087
+ 0.91146625057268826
+ 0.91151155995942146
+ 0.91155687309168087
+ 0.91160218996990305
+ 0.91164751059452842
+ 0.91169283496600007
+ 0.91173816308475619
+ 0.91178349495123978
+ 0.91182883056588349
+ 0.9118741699291365
+ 0.91191951304143348
+ 0.91196485990321752
+ 0.91201021051492948
+ 0.91205556487700856
+ 0.91210092298989376
+ 0.91214628485402827
+ 0.91219165046985329
+ 0.91223701983780814
+ 0.91228239295833424
+ 0.9123277698318748
+ 0.91237315045886547
+ 0.91241853483975333
+ 0.91246392297497647
+ 0.91250931486497411
+ 0.9125547105101921
+ 0.91260010991106977
+ 0.91264551306804931
+ 0.91269091998157026
+ 0.91273633065207449
+ 0.91278174508000609
+ 0.91282716326580471
+ 0.91287258520991243
+ 0.9129180109127718
+ 0.91296344037482635
+ 0.91300887359651461
+ 0.91305431057827835
+ 0.9130997513205622
+ 0.91314519582380882
+ 0.91319064408846007
+ 0.91323609611495626
+ 0.91328155190374005
+ 0.91332701145525641
+ 0.91337247476994299
+ 0.91341794184824954
+ 0.91346341269061426
+ 0.9135088872974777
+ 0.91355436566928883
+ 0.91359984780648651
+ 0.91364533370951173
+ 0.91369082337881324
+ 0.91373631681482814
+ 0.91378181401800362
+ 0.91382731498878289
+ 0.91387281972760692
+ 0.91391832823491881
+ 0.91396384051116608
+ 0.91400935655678794
+ 0.91405487637222749
+ 0.91410039995793313
+ 0.9141459273143433
+ 0.91419145844190375
+ 0.91423699334106068
+ 0.91428253201225285
+ 0.9143280744559289
+ 0.91437362067253181
+ 0.91441917066250367
+ 0.91446472442629056
+ 0.91451028196433826
+ 0.91455584327708439
+ 0.91460140836498161
+ 0.91464697722846966
+ 0.9146925498679922
+ 0.91473812628399609
+ 0.9147837064769252
+ 0.91482929044722638
+ 0.91487487819533897
+ 0.91492046972171404
+ 0.91496606502679201
+ 0.9150116641110192
+ 0.91505726697484024
+ 0.91510287361870191
+ 0.9151484840430486
+ 0.91519409824832265
+ 0.91523971623497369
+ 0.91528533800344603
+ 0.91533096355418264
+ 0.91537659288763251
+ 0.91542222600423828
+ 0.91546786290444526
+ 0.91551350358870476
+ 0.91555914805745564
+ 0.91560479631114677
+ 0.91565044835022191
+ 0.91569610417513236
+ 0.915741763786319
+ 0.91578742718422967
+ 0.9158330943693096
+ 0.91587876534200618
+ 0.91592444010276552
+ 0.91597011865203448
+ 0.91601580099025948
+ 0.91606148711788549
+ 0.91610717703536115
+ 0.91615287074312934
+ 0.91619856824164236
+ 0.91624426953134264
+ 0.91628997461267947
+ 0.91633568348609917
+ 0.91638139615204772
+ 0.91642711261097343
+ 0.91647283286332049
+ 0.91651855690954109
+ 0.91656428475007945
+ 0.91661001638538209
+ 0.9166557518158992
+ 0.91670149104207543
+ 0.91674723406435943
+ 0.91679298088319949
+ 0.91683873149904249
+ 0.91688448591233696
+ 0.91693024412352964
+ 0.91697600613306951
+ 0.91702177194140089
+ 0.91706754154897729
+ 0.91711331495624349
+ 0.91715909216365044
+ 0.9172048731716429
+ 0.91725065798067063
+ 0.91729644659117993
+ 0.91734223900362499
+ 0.91738803521844858
+ 0.91743383523610211
+ 0.91747963905703256
+ 0.91752544668168778
+ 0.9175712581105212
+ 0.91761707334397669
+ 0.91766289238250509
+ 0.91770871522655684
+ 0.91775454187657701
+ 0.91780037233301948
+ 0.91784620659633043
+ 0.91789204466695729
+ 0.91793788654535458
+ 0.91798373223196961
+ 0.91802958172724858
+ 0.91807543503164568
+ 0.91812129214560723
+ 0.91816715306958496
+ 0.91821301780402531
+ 0.9182588863493828
+ 0.91830475870610362
+ 0.91835063487464019
+ 0.91839651485544049
+ 0.91844239864895594
+ 0.91848828625563439
+ 0.9185341776759286
+ 0.91858007291028987
+ 0.91862597195916607
+ 0.91867187482300616
+ 0.91871778150226302
+ 0.91876369199738805
+ 0.91880960630882924
+ 0.91885552443704077
+ 0.91890144638246851
+ 0.91894737214556843
+ 0.91899330172678906
+ 0.91903923512658015
+ 0.91908517234539477
+ 0.91913111338368203
+ 0.91917705824189555
+ 0.91922300692048231
+ 0.9192689594198985
+ 0.91931491574059332
+ 0.91936087588302051
+ 0.91940683984762717
+ 0.91945280763486781
+ 0.91949877924519119
+ 0.91954475467905417
+ 0.91959073393690394
+ 0.91963671701919447
+ 0.91968270392637819
+ 0.91972869465890461
+ 0.91977468921722783
+ 0.91982068760180036
+ 0.91986668981307229
+ 0.91991269585149538
+ 0.91995870571752658
+ 0.92000471941161366
+ 0.92005073693421169
+ 0.92009675828577253
+ 0.92014278346674694
+ 0.92018881247759143
+ 0.92023484531875466
+ 0.92028088199069336
+ 0.92032692249385606
+ 0.92037296682869751
+ 0.92041901499567291
+ 0.92046506699523511
+ 0.92051112282783243
+ 0.92055718249392504
+ 0.92060324599395871
+ 0.92064931332839328
+ 0.92069538449767985
+ 0.92074145950227149
+ 0.92078753834262173
+ 0.92083362101918353
+ 0.92087970753241466
+ 0.92092579788276396
+ 0.92097189207068542
+ 0.92101799009663654
+ 0.92106409196106898
+ 0.92111019766443825
+ 0.92115630720719788
+ 0.92120242058979995
+ 0.92124853781270222
+ 0.92129465887635642
+ 0.92134078378121664
+ 0.92138691252774074
+ 0.92143304511638091
+ 0.92147918154759079
+ 0.921525321821827
+ 0.92157146593954375
+ 0.92161761390119523
+ 0.92166376570723541
+ 0.92170992135812302
+ 0.92175608085430849
+ 0.92180224419624979
+ 0.92184841138440221
+ 0.92189458241921984
+ 0.92194075730115754
+ 0.92198693603067172
+ 0.92203311860821935
+ 0.9220793050342514
+ 0.92212549530922838
+ 0.92217168943360117
+ 0.92221788740783106
+ 0.9222640892323688
+ 0.92231029490767358
+ 0.92235650443420081
+ 0.92240271781240302
+ 0.92244893504274206
+ 0.9224951561256689
+ 0.92254138106164296
+ 0.92258760985111987
+ 0.92263384249455471
+ 0.92268007899240734
+ 0.92272631934512894
+ 0.92277256355317949
+ 0.92281881161701429
+ 0.92286506353709363
+ 0.92291131931386883
+ 0.92295757894779973
+ 0.92300384243934264
+ 0.92305010978895508
+ 0.92309638099709346
+ 0.92314265606421531
+ 0.92318893499077737
+ 0.92323521777723727
+ 0.92328150442405366
+ 0.92332779493168071
+ 0.92337408930058062
+ 0.9234203875312057
+ 0.92346668962401657
+ 0.92351299557946998
+ 0.923559305398024
+ 0.92360561908013528
+ 0.9236519366262651
+ 0.92369825803686767
+ 0.92374458331240383
+ 0.92379091245333023
+ 0.92383724546010415
+ 0.92388358233318435
+ 0.9239299230730319
+ 0.92397626768010177
+ 0.92402261615485526
+ 0.92406896849774722
+ 0.92411532470923907
+ 0.924161684789788
+ 0.92420804873985363
+ 0.92425441655989471
+ 0.92430078825037132
+ 0.92434716381173865
+ 0.92439354324445833
+ 0.9244399265489901
+ 0.92448631372579326
+ 0.92453270477532368
+ 0.92457909969804564
+ 0.92462549849441411
+ 0.92467190116489162
+ 0.92471830770993602
+ 0.9247647181300046
+ 0.92481113242556257
+ 0.92485755059706509
+ 0.92490397264497271
+ 0.92495039856974981
+ 0.92499682837184838
+ 0.92504326205173493
+ 0.92508969960986775
+ 0.92513614104670527
+ 0.92518258636270767
+ 0.92522903555834024
+ 0.92527548863405717
+ 0.92532194559032099
+ 0.92536840642759233
+ 0.92541487114633247
+ 0.92546133974700195
+ 0.92550781223006162
+ 0.92555428859597055
+ 0.92560076884519138
+ 0.92564725297818351
+ 0.92569374099540791
+ 0.92574023289732799
+ 0.92578672868440481
+ 0.92583322835709314
+ 0.92587973191586304
+ 0.92592623936117169
+ 0.92597275069348028
+ 0.92601926591325046
+ 0.92606578502094394
+ 0.92611230801702404
+ 0.92615883490195061
+ 0.92620536567618539
+ 0.92625190034019211
+ 0.92629843889442853
+ 0.92634498133936061
+ 0.92639152767544797
+ 0.92643807790315535
+ 0.92648463202294407
+ 0.92653119003527462
+ 0.92657775194060865
+ 0.92662431773941345
+ 0.92667088743214621
+ 0.92671746101927399
+ 0.92676403850125433
+ 0.92681061987855451
+ 0.92685720515163494
+ 0.92690379432095782
+ 0.92695038738698976
+ 0.92699698435018985
+ 0.92704358521102015
+ 0.92709018996995018
+ 0.92713679862743625
+ 0.92718341118394321
+ 0.92723002763993845
+ 0.92727664799588072
+ 0.92732327225223499
+ 0.92736990040946687
+ 0.92741653246803668
+ 0.92746316842841026
+ 0.92750980829105079
+ 0.92755645205642157
+ 0.92760309972498567
+ 0.92764975129720917
+ 0.92769640677355514
+ 0.92774306615448698
+ 0.92778972944047111
+ 0.92783639663197048
+ 0.92788306772944684
+ 0.92792974273337037
+ 0.92797642164419836
+ 0.92802310446240133
+ 0.92806979118844068
+ 0.92811648182278284
+ 0.92816317636589207
+ 0.92820987481823169
+ 0.92825657718026844
+ 0.92830328345246649
+ 0.92834999363529025
+ 0.92839670772920779
+ 0.92844342573467953
+ 0.92849014765217619
+ 0.92853687348215797
+ 0.92858360322509381
+ 0.92863033688144603
+ 0.92867707445168324
+ 0.92872381593626863
+ 0.92877056133567049
+ 0.92881731065035222
+ 0.92886406388078024
+ 0.92891082102741962
+ 0.92895758209073964
+ 0.92900434707120338
+ 0.92905111596927736
+ 0.92909788878542765
+ 0.92914466552012054
+ 0.92919144617382432
+ 0.92923823074700396
+ 0.92928501924012452
+ 0.92933181165365386
+ 0.9293786079880596
+ 0.92942540824380704
+ 0.9294722124213618
+ 0.92951902052119373
+ 0.92956583254376657
+ 0.92961264848955039
+ 0.9296594683590087
+ 0.92970629215261336
+ 0.92975311987082676
+ 0.92979995151411654
+ 0.92984678708295498
+ 0.92989362657780428
+ 0.92994046999913471
+ 0.92998731734741213
+ 0.9300341686231034
+ 0.93008102382668079
+ 0.93012788295860604
+ 0.93017474601935279
+ 0.93022161300938477
+ 0.93026848392917061
+ 0.93031535877917959
+ 0.93036223755987757
+ 0.93040912027173617
+ 0.93045600691521924
+ 0.93050289749080095
+ 0.93054979199894527
+ 0.93059669044012139
+ 0.93064359281479869
+ 0.93069049912344592
+ 0.93073740936653016
+ 0.93078432354452123
+ 0.93083124165788789
+ 0.93087816370710197
+ 0.93092508969262611
+ 0.93097201961493437
+ 0.93101895347449448
+ 0.9310658912717753
+ 0.93111283300724679
+ 0.93115977868137667
+ 0.93120672829463669
+ 0.93125368184749469
+ 0.93130063934042051
+ 0.93134760077388579
+ 0.93139456614835703
+ 0.93144153546430586
+ 0.93148850872220024
+ 0.93153548592251245
+ 0.93158246706571091
+ 0.93162945215226578
+ 0.93167644118265158
+ 0.93172343415733194
+ 0.93177043107677793
+ 0.93181743194146616
+ 0.93186443675185837
+ 0.93191144550843197
+ 0.93195845821165524
+ 0.93200547486199681
+ 0.93205249545992974
+ 0.93209952000592478
+ 0.93214654850045264
+ 0.9321935809439823
+ 0.93224061733698693
+ 0.93228765767993738
+ 0.93233470197330504
+ 0.93238175021755876
+ 0.93242880241317205
+ 0.93247585856061788
+ 0.93252291866036385
+ 0.93256998271288316
+ 0.93261705071864731
+ 0.93266412267812793
+ 0.93271119859179874
+ 0.93275827846012671
+ 0.93280536228359034
+ 0.93285245006265471
+ 0.93289954179779622
+ 0.93294663748948847
+ 0.93299373713819667
+ 0.93304084074439997
+ 0.93308794830856778
+ 0.93313505983117218
+ 0.93318217531268544
+ 0.93322929475358396
+ 0.93327641815433515
+ 0.93332354551541219
+ 0.93337067683729147
+ 0.93341781212044284
+ 0.93346495136534113
+ 0.93351209457245887
+ 0.93355924174226657
+ 0.93360639287524105
+ 0.93365354797185296
+ 0.9337007070325769
+ 0.93374787005788618
+ 0.93379503704825062
+ 0.93384220800415074
+ 0.93388938292605428
+ 0.93393656181443652
+ 0.93398374466977108
+ 0.93403093149253269
+ 0.93407812228319498
+ 0.93412531704223078
+ 0.93417251577011362
+ 0.93421971846731888
+ 0.93426692513432219
+ 0.93431413577159506
+ 0.9343613503796131
+ 0.93440856895884961
+ 0.93445579150977831
+ 0.93450301803287539
+ 0.93455024852861834
+ 0.93459748299747514
+ 0.93464472143992561
+ 0.93469196385644182
+ 0.93473921024749995
+ 0.93478646061357584
+ 0.93483371495514167
+ 0.93488097327267583
+ 0.93492823556665039
+ 0.93497550183754174
+ 0.93502277208582663
+ 0.93507004631197899
+ 0.93511732451647556
+ 0.93516460669978874
+ 0.93521189286239748
+ 0.93525918300477606
+ 0.93530647712739967
+ 0.9353537752307467
+ 0.9354010773152881
+ 0.93544838338150471
+ 0.93549569342987182
+ 0.93554300746086438
+ 0.93559032547495713
+ 0.93563764747262723
+ 0.93568497345435464
+ 0.93573230342060953
+ 0.93577963737187397
+ 0.93582697530862313
+ 0.93587431723133019
+ 0.9359216631404752
+ 0.93596901303653501
+ 0.93601636691998602
+ 0.93606372479130084
+ 0.9361110866509641
+ 0.93615845249944729
+ 0.93620582233723038
+ 0.93625319616478908
+ 0.93630057398260147
+ 0.93634795579114516
+ 0.93639534159089466
+ 0.93644273138233236
+ 0.93649012516593155
+ 0.93653752294217318
+ 0.93658492471153354
+ 0.93663233047448857
+ 0.93667974023151901
+ 0.93672715398310125
+ 0.9367745717297139
+ 0.93682199347183559
+ 0.93686941920994482
+ 0.9369168489445161
+ 0.93696428267603282
+ 0.93701172040497138
+ 0.93705916213180851
+ 0.9371066078570256
+ 0.93715405758109727
+ 0.93720151130450668
+ 0.93724896902773103
+ 0.93729643075124958
+ 0.93734389647553973
+ 0.93739136620107999
+ 0.9374388399283502
+ 0.93748631765783208
+ 0.93753379939000281
+ 0.93758128512534211
+ 0.93762877486432705
+ 0.93767626860743947
+ 0.93772376635515964
+ 0.93777126810796463
+ 0.93781877386633439
+ 0.9378662836307512
+ 0.93791379740169256
+ 0.93796131517963643
+ 0.93800883696506965
+ 0.93805636275846516
+ 0.9381038925603058
+ 0.93815142637107207
+ 0.9381989641912436
+ 0.93824650602130089
+ 0.93829405186172676
+ 0.9383416017129973
+ 0.93838915557559521
+ 0.93843671345000101
+ 0.93848427533669543
+ 0.93853184123615896
+ 0.93857941114887444
+ 0.93862698507531861
+ 0.93867456301597674
+ 0.93872214497132733
+ 0.93876973094185345
+ 0.93881732092803427
+ 0.93886491493035096
+ 0.93891251294928635
+ 0.93896011498532228
+ 0.93900772103893704
+ 0.93905533111061701
+ 0.93910294520083903
+ 0.93915056331008873
+ 0.93919818543884559
+ 0.93924581158759313
+ 0.93929344175681129
+ 0.93934107594698335
+ 0.93938871415859326
+ 0.93943635639211887
+ 0.93948400264804832
+ 0.93953165292685692
+ 0.93957930722903071
+ 0.93962696555505454
+ 0.93967462790540768
+ 0.93972229428057286
+ 0.93976996468103169
+ 0.93981763910727101
+ 0.93986531755977332
+ 0.93991300003901601
+ 0.93996068654548659
+ 0.94000837707966933
+ 0.94005607164204263
+ 0.94010377023309311
+ 0.94015147285330547
+ 0.94019917950315868
+ 0.94024689018313945
+ 0.94029460489373085
+ 0.94034232363541537
+ 0.9403900464086784
+ 0.94043777321400068
+ 0.94048550405186959
+ 0.94053323892276608
+ 0.94058097782717776
+ 0.94062872076558546
+ 0.94067646773847258
+ 0.94072421874632706
+ 0.94077197378962985
+ 0.94081973286886889
+ 0.94086749598452291
+ 0.94091526313708063
+ 0.94096303432702688
+ 0.94101080955484417
+ 0.94105858882101989
+ 0.94110637212603598
+ 0.9411541594703785
+ 0.94120195085453318
+ 0.94124974627898461
+ 0.9412975457442162
+ 0.94134534925071689
+ 0.94139315679896607
+ 0.94144096838945479
+ 0.94148878402266722
+ 0.94153660369908765
+ 0.94158442741920034
+ 0.94163225518349225
+ 0.94168008699245187
+ 0.94172792284656193
+ 0.9417757627463067
+ 0.94182360669217524
+ 0.94187145468465028
+ 0.94191930672422319
+ 0.94196716281137671
+ 0.94201502294659745
+ 0.94206288713037067
+ 0.94211075536318367
+ 0.94215862764552372
+ 0.94220650397787575
+ 0.94225438436072939
+ 0.9423022687945678
+ 0.94235015727987836
+ 0.9423980498171507
+ 0.94244594640686818
+ 0.94249384704951877
+ 0.94254175174559174
+ 0.94258966049557136
+ 0.94263757329994668
+ 0.94268549015920411
+ 0.94273341107383124
+ 0.94278133604431635
+ 0.94282926507114539
+ 0.9428771981548062
+ 0.94292513529578903
+ 0.9429730764945784
+ 0.94302102175166191
+ 0.94306897106753029
+ 0.94311692444267037
+ 0.94316488187756975
+ 0.9432128433727156
+ 0.94326080892859809
+ 0.94330877854570394
+ 0.94335675222452176
+ 0.94340472996554292
+ 0.94345271176925116
+ 0.94350069763613797
+ 0.94354868756669263
+ 0.94359668156140142
+ 0.94364467962075327
+ 0.94369268174523824
+ 0.94374068793534438
+ 0.94378869819156397
+ 0.94383671251438139
+ 0.94388473090429081
+ 0.94393275336177696
+ 0.94398077988733153
+ 0.94402881048144194
+ 0.94407684514460022
+ 0.94412488387729554
+ 0.94417292668001584
+ 0.94422097355325052
+ 0.94426902449749184
+ 0.94431707951322963
+ 0.9443651386009515
+ 0.94441320176114774
+ 0.94446126899431049
+ 0.94450934030092981
+ 0.94455741568149354
+ 0.94460549513649239
+ 0.94465357866642041
+ 0.94470166627176433
+ 0.94474975795301608
+ 0.94479785371066416
+ 0.9448459535452034
+ 0.94489405745712052
+ 0.94494216544690979
+ 0.94499027751505793
+ 0.94503839366206033
+ 0.94508651388840748
+ 0.94513463819458809
+ 0.94518276658109524
+ 0.94523089904841995
+ 0.94527903559705329
+ 0.94532717622748463
+ 0.94537532094021104
+ 0.94542346973571756
+ 0.94547162261450002
+ 0.94551977957705158
+ 0.94556794062385718
+ 0.94561610575541721
+ 0.94566427497221872
+ 0.94571244827475553
+ 0.94576062566351926
+ 0.94580880713899929
+ 0.94585699270169421
+ 0.94590518235209142
+ 0.94595337609068486
+ 0.94600157391796647
+ 0.94604977583443051
+ 0.94609798184056704
+ 0.94614619193687
+ 0.94619440612383632
+ 0.94624262440195117
+ 0.94629084677171393
+ 0.94633907323361466
+ 0.94638730378814773
+ 0.94643553843580586
+ 0.94648377717708154
+ 0.94653202001246928
+ 0.946580266942462
+ 0.94662851796755254
+ 0.94667677308823794
+ 0.94672503230500848
+ 0.94677329561835755
+ 0.94682156302878229
+ 0.9468698345367732
+ 0.94691811014282634
+ 0.94696638984743398
+ 0.94701467365109204
+ 0.94706296155429537
+ 0.94711125355753589
+ 0.94715954966130855
+ 0.94720784986610917
+ 0.94725615417243125
+ 0.94730446258076839
+ 0.94735277509161853
+ 0.94740109170547282
+ 0.94744941242282998
+ 0.94749773724418096
+ 0.94754606617002213
+ 0.94759439920084954
+ 0.94764273633715945
+ 0.94769107757944349
+ 0.94773942292819813
+ 0.94778777238392142
+ 0.94783612594710598
+ 0.94788448361824773
+ 0.9479328453978435
+ 0.94798121128638757
+ 0.94802958128437664
+ 0.94807795539230511
+ 0.948126333610672
+ 0.94817471593997149
+ 0.94822310238069907
+ 0.94827149293335078
+ 0.94831988759842456
+ 0.94836828637641435
+ 0.94841668926781764
+ 0.9484650962731338
+ 0.94851350739285323
+ 0.94856192262747807
+ 0.94861034197750294
+ 0.94865876544342587
+ 0.94870719302573925
+ 0.94875562472494535
+ 0.94880406054153732
+ 0.94885250047601477
+ 0.94890094452887586
+ 0.94894939270061351
+ 0.94899784499172801
+ 0.94904630140271706
+ 0.9490947619340766
+ 0.94914322658630434
+ 0.949191695359901
+ 0.94924016825535973
+ 0.94928864527318102
+ 0.94933712641386137
+ 0.9493856116779007
+ 0.9494341010657934
+ 0.94948259457804429
+ 0.94953109221514287
+ 0.94957959397759462
+ 0.94962809986589114
+ 0.94967660988053837
+ 0.94972512402202991
+ 0.94977364229086458
+ 0.94982216468754166
+ 0.94987069121256207
+ 0.94991922186642008
+ 0.94996775664961952
+ 0.9500162955626551
+ 0.95006483860602731
+ 0.95011338578023863
+ 0.95016193708578334
+ 0.9502104925231607
+ 0.95025905209287476
+ 0.95030761579542034
+ 0.95035618363129937
+ 0.9504047556010089
+ 0.95045333170505297
+ 0.95050191194392719
+ 0.95055049631813315
+ 0.95059908482817324
+ 0.95064767747454004
+ 0.95069627425774061
+ 0.95074487517827255
+ 0.95079348023663612
+ 0.95084208943333304
+ 0.95089070276885979
+ 0.95093932024372052
+ 0.95098794185841329
+ 0.95103656761344302
+ 0.95108519750930343
+ 0.95113383154650177
+ 0.95118246972553588
+ 0.95123111204690447
+ 0.95127975851111479
+ 0.95132840911866079
+ 0.95137706387004772
+ 0.95142572276577642
+ 0.9514743858063478
+ 0.95152305299226503
+ 0.95157172432402426
+ 0.95162039980213142
+ 0.95166907942708745
+ 0.9517177631993935
+ 0.95176645111955305
+ 0.95181514318806326
+ 0.95186383940543151
+ 0.95191253977215751
+ 0.95196124428874285
+ 0.95200995295568858
+ 0.95205866577350073
+ 0.95210738274267914
+ 0.95215610386372529
+ 0.95220482913714333
+ 0.95225355856343497
+ 0.95230229214310413
+ 0.9523510298766511
+ 0.95239977176457935
+ 0.95244851780739381
+ 0.95249726800559631
+ 0.95254602235968922
+ 0.95259478087017468
+ 0.95264354353755976
+ 0.95269231036234392
+ 0.95274108134503022
+ 0.95278985648612535
+ 0.95283863578612948
+ 0.95288741924554798
+ 0.95293620686488545
+ 0.95298499864464226
+ 0.95303379458532556
+ 0.95308259468743661
+ 0.95313139895148447
+ 0.95318020737796572
+ 0.95322901996738973
+ 0.95327783672025745
+ 0.9533266576370768
+ 0.95337548271834882
+ 0.95342431196458099
+ 0.95347314537627437
+ 0.95352198295393453
+ 0.95357082469806953
+ 0.95361967060918096
+ 0.95366852068777208
+ 0.95371737493435071
+ 0.95376623334942123
+ 0.95381509593348934
+ 0.95386396268705842
+ 0.95391283361063539
+ 0.95396170870472363
+ 0.95401058796982952
+ 0.95405947140645952
+ 0.95410835901511737
+ 0.95415725079631208
+ 0.95420614675054349
+ 0.9542550468783223
+ 0.95430395118015288
+ 0.95435285965653993
+ 0.95440177230799217
+ 0.95445068913501419
+ 0.95449961013811102
+ 0.95454853531779094
+ 0.95459746467455742
+ 0.95464639820892128
+ 0.95469533592138545
+ 0.95474427781245708
+ 0.95479322388264076
+ 0.95484217413245098
+ 0.95489112856238578
+ 0.95494008717295731
+ 0.95498904996466816
+ 0.95503801693803092
+ 0.95508698809354797
+ 0.95513596343172957
+ 0.95518494295308143
+ 0.9552339266581088
+ 0.95528291454732372
+ 0.95533190662123213
+ 0.95538090288033961
+ 0.95542990332515454
+ 0.95547890795618662
+ 0.95552791677394233
+ 0.95557692977892927
+ 0.95562594697165615
+ 0.9556749683526311
+ 0.95572399392236251
+ 0.95577302368135653
+ 0.95582205763012396
+ 0.95587109576917106
+ 0.95592013809900878
+ 0.95596918462014335
+ 0.95601823533308361
+ 0.95606729023834081
+ 0.95611634933642131
+ 0.95616541262783383
+ 0.95621448011309007
+ 0.95626355179269673
+ 0.95631262766716019
+ 0.95636170773699491
+ 0.9564107920027094
+ 0.95645988046480857
+ 0.956508973123809
+ 0.95655806998021298
+ 0.9566071710345343
+ 0.95665627628727823
+ 0.95670538573896124
+ 0.95675449939008816
+ 0.95680361724117335
+ 0.95685273929272241
+ 0.9569018655452447
+ 0.95695099599925471
+ 0.95700013065526024
+ 0.95704926951377112
+ 0.95709841257529804
+ 0.95714755984035249
+ 0.9571967113094455
+ 0.95724586698308689
+ 0.95729502686178691
+ 0.95734419094605605
+ 0.95739335923640512
+ 0.95744253173334648
+ 0.9574917084373884
+ 0.95754088934904624
+ 0.9575900744688286
+ 0.95763926379724573
+ 0.95768845733481101
+ 0.95773765508203534
+ 0.95778685703942956
+ 0.95783606320750458
+ 0.95788527358677622
+ 0.95793448817775084
+ 0.95798370698094248
+ 0.95803292999686362
+ 0.95808215722602652
+ 0.95813138866894187
+ 0.95818062432612139
+ 0.95822986419808109
+ 0.95827910828532825
+ 0.95832835658837845
+ 0.95837760910774361
+ 0.95842686584393555
+ 0.95847612679746863
+ 0.95852539196885178
+ 0.95857466135860192
+ 0.95862393496723086
+ 0.95867321279525042
+ 0.9587224948431734
+ 0.95877178111151573
+ 0.95882107160078778
+ 0.95887036631150158
+ 0.95891966524417438
+ 0.95896896839931822
+ 0.95901827577744347
+ 0.95906758737906961
+ 0.95911690320470466
+ 0.95916622325486789
+ 0.95921554753006733
+ 0.95926487603082056
+ 0.95931420875764084
+ 0.95936354571104454
+ 0.95941288689153881
+ 0.95946223229964545
+ 0.95951158193587516
+ 0.95956093580074342
+ 0.95961029389476338
+ 0.95965965621845062
+ 0.95970902277232073
+ 0.95975839355688719
+ 0.95980776857266548
+ 0.95985714782016951
+ 0.95990653129991288
+ 0.95995591901241561
+ 0.96000531095818709
+ 0.96005470713774799
+ 0.96010410755160958
+ 0.96015351220028811
+ 0.96020292108430039
+ 0.96025233420415956
+ 0.96030175156038233
+ 0.96035117315348739
+ 0.960400598983987
+ 0.96045002905239718
+ 0.96049946335923464
+ 0.96054890190501396
+ 0.96059834469025396
+ 0.96064779171547166
+ 0.96069724298117665
+ 0.96074669848789307
+ 0.96079615823613307
+ 0.9608456222264159
+ 0.96089509045925459
+ 0.96094456293516806
+ 0.96099403965467145
+ 0.96104352061828424
+ 0.96109300582652168
+ 0.96114249527990103
+ 0.96119198897893954
+ 0.9612414869241529
+ 0.96129098911606092
+ 0.96134049555517842
+ 0.96139000624202597
+ 0.96143952117711673
+ 0.96148904036097282
+ 0.96153856379410763
+ 0.96158809147704372
+ 0.96163762341029468
+ 0.96168715959437889
+ 0.96173670002981582
+ 0.96178624471712237
+ 0.96183579365681859
+ 0.96188534684942295
+ 0.96193490429544937
+ 0.96198446599542076
+ 0.96203403194985326
+ 0.96208360215926569
+ 0.96213317662417652
+ 0.96218275534510667
+ 0.96223233832257293
+ 0.9622819255570938
+ 0.96233151704918862
+ 0.9623811127993781
+ 0.96243071280817938
+ 0.96248031707611115
+ 0.96252992560369532
+ 0.96257953839144816
+ 0.96262915543989191
+ 0.96267877674954339
+ 0.96272840232092649
+ 0.96277803215455626
+ 0.96282766625095406
+ 0.96287730461063969
+ 0.96292694723413563
+ 0.96297659412195635
+ 0.96302624527462843
+ 0.96307590069266524
+ 0.96312556037659547
+ 0.96317522432693048
+ 0.96322489254419652
+ 0.96327456502891418
+ 0.96332424178160092
+ 0.96337392280277712
+ 0.96342360809296745
+ 0.9634732976526903
+ 0.96352299148246556
+ 0.96357268958281683
+ 0.96362239195426136
+ 0.96367209859732483
+ 0.96372180951252806
+ 0.96377152470038885
+ 0.96382124416143067
+ 0.96387096789617444
+ 0.96392069590514329
+ 0.96397042818885781
+ 0.96402016474783747
+ 0.96406990558260908
+ 0.96411965069369032
+ 0.96416940008160434
+ 0.96421915374687428
+ 0.96426891169002182
+ 0.96431867391156867
+ 0.96436844041203573
+ 0.96441821119194926
+ 0.96446798625182895
+ 0.96451776559219593
+ 0.96456754921357668
+ 0.96461733711649267
+ 0.96466712930146403
+ 0.96471692576901935
+ 0.96476672651967332
+ 0.96481653155395541
+ 0.96486634087238965
+ 0.96491615447549361
+ 0.96496597236379422
+ 0.96501579453781361
+ 0.96506562099807658
+ 0.96511545174510738
+ 0.96516528677942692
+ 0.96521512610155968
+ 0.96526496971203024
+ 0.96531481761136395
+ 0.96536466980008095
+ 0.96541452627870894
+ 0.96546438704777027
+ 0.96551425210778841
+ 0.96556412145928816
+ 0.96561399510279522
+ 0.9656638730388345
+ 0.96571375526792702
+ 0.96576364179060104
+ 0.96581353260737957
+ 0.96586342771878786
+ 0.96591332712535005
+ 0.96596323082759361
+ 0.9660131388260399
+ 0.96606305112121704
+ 0.96611296771364674
+ 0.96616288860385702
+ 0.96621281379237411
+ 0.96626274327971973
+ 0.96631267706642421
+ 0.96636261515301158
+ 0.96641255754000399
+ 0.96646250422793212
+ 0.9665124552173181
+ 0.9665624105086903
+ 0.9666123701025735
+ 0.96666233399949408
+ 0.96671230219997883
+ 0.96676227470455223
+ 0.9668122515137435
+ 0.96686223262807691
+ 0.96691221804807992
+ 0.96696220777427921
+ 0.96701220180719982
+ 0.96706220014737343
+ 0.96711220279531995
+ 0.96716220975156975
+ 0.96721222101665194
+ 0.96726223659108901
+ 0.96731225647541186
+ 0.96736228067014662
+ 0.9674123091758221
+ 0.96746234199296077
+ 0.96751237912209742
+ 0.96756242056375297
+ 0.96761246631845976
+ 0.96766251638674317
+ 0.96771257076913197
+ 0.9677626294661531
+ 0.9678126924783359
+ 0.96786275980620762
+ 0.96791283145029894
+ 0.96796290741113389
+ 0.96801298768924315
+ 0.96806307228515476
+ 0.96811316119939772
+ 0.96816325443250206
+ 0.96821335198499292
+ 0.96826345385740042
+ 0.9683135600502556
+ 0.96836367056408557
+ 0.96841378539941914
+ 0.96846390455678466
+ 0.96851402803671394
+ 0.96856415583973354
+ 0.96861428796637494
+ 0.96866442441716716
+ 0.96871456519263988
+ 0.9687647102933219
+ 0.9688148597197408
+ 0.96886501347243048
+ 0.96891517155192031
+ 0.96896533395873752
+ 0.96901550069341413
+ 0.96906567175648006
+ 0.96911584714846477
+ 0.9691660268699005
+ 0.96921621092131494
+ 0.9692663993032381
+ 0.96931659201620435
+ 0.96936678906074181
+ 0.96941699043738039
+ 0.96946719614665244
+ 0.96951740618908888
+ 0.96956762056521928
+ 0.9696178392755791
+ 0.96966806232069203
+ 0.96971828970109508
+ 0.96976852141731662
+ 0.96981875746988999
+ 0.96986899785934577
+ 0.96991924258621454
+ 0.96996949165102953
+ 0.97001974505432198
+ 0.97007000279662481
+ 0.97012026487846681
+ 0.97017053130038133
+ 0.9702208020629024
+ 0.97027107716655836
+ 0.97032135661188523
+ 0.97037164039941448
+ 0.97042192852967779
+ 0.97047222100320585
+ 0.97052251782053345
+ 0.97057281898219194
+ 0.97062312448871746
+ 0.97067343434063935
+ 0.97072374853848986
+ 0.97077406708280489
+ 0.9708243899741148
+ 0.97087471721295548
+ 0.97092504879985952
+ 0.97097538473535661
+ 0.97102572501998607
+ 0.9710760696542774
+ 0.97112641863876548
+ 0.97117677197398267
+ 0.97122712966046398
+ 0.97127749169874145
+ 0.97132785808935063
+ 0.97137822883282587
+ 0.97142860392970043
+ 0.97147898338051109
+ 0.97152936718578631
+ 0.97157975534606633
+ 0.9716301478618814
+ 0.97168054473376719
+ 0.97173094596226117
+ 0.97178135154789413
+ 0.97183176149120165
+ 0.97188217579271963
+ 0.97193259445298363
+ 0.97198301747252658
+ 0.97203344485188514
+ 0.97208387659159456
+ 0.97213431269218875
+ 0.97218475315420316
+ 0.97223519797817459
+ 0.97228564716463894
+ 0.97233610071412757
+ 0.9723865586271816
+ 0.97243702090433459
+ 0.97248748754612135
+ 0.9725379585530799
+ 0.97258843392574268
+ 0.97263891366465283
+ 0.97268939777033792
+ 0.9727398862433394
+ 0.97279037908419175
+ 0.97284087629343374
+ 0.97289137787160007
+ 0.97294188381922797
+ 0.97299239413685434
+ 0.97304290882501387
+ 0.97309342788424635
+ 0.97314395131508613
+ 0.973194479118071
+ 0.97324501129374053
+ 0.9732955478426295
+ 0.97334608876527606
+ 0.9733966340622171
+ 0.97344718373399064
+ 0.9734977377811318
+ 0.97354829620418315
+ 0.9735988590036776
+ 0.97364942618015782
+ 0.97369999773415516
+ 0.97375057366621398
+ 0.97380115397687028
+ 0.97385173866666008
+ 0.97390232773612118
+ 0.9739529211857969
+ 0.97400351901622073
+ 0.97405412122793555
+ 0.97410472782147539
+ 0.97415533879738114
+ 0.97420595415619127
+ 0.97425657389844667
+ 0.9743071980246818
+ 0.97435782653543968
+ 0.97440845943125687
+ 0.97445909671267472
+ 0.97450973838023003
+ 0.97456038443446646
+ 0.97461103487591583
+ 0.9746616897051269
+ 0.97471234892263214
+ 0.9747630125289749
+ 0.97481368052469486
+ 0.97486435291032703
+ 0.97491502968641786
+ 0.97496571085350625
+ 0.97501639641213056
+ 0.97506708636282968
+ 0.97511778070614386
+ 0.9751684794426192
+ 0.9752191825727895
+ 0.97526989009719889
+ 0.97532060201638526
+ 0.9753713183308933
+ 0.97542203904126046
+ 0.97547276414802986
+ 0.97552349365174151
+ 0.97557422755293599
+ 0.97562496585215319
+ 0.97567570854993646
+ 0.97572645564682858
+ 0.97577720714336746
+ 0.97582796304009667
+ 0.97587872333755843
+ 0.97592948803629231
+ 0.97598025713684078
+ 0.97603103063974495
+ 0.97608180854555071
+ 0.97613259085479409
+ 0.97618337756802342
+ 0.97623416868577551
+ 0.97628496420859334
+ 0.97633576413702328
+ 0.97638656847160454
+ 0.9764373772128806
+ 0.97648819036139289
+ 0.97653900791768578
+ 0.97658982988230292
+ 0.97664065625578411
+ 0.97669148703867292
+ 0.97674232223151425
+ 0.97679316183485132
+ 0.97684400584922471
+ 0.97689485427517853
+ 0.97694570711325701
+ 0.97699656436400717
+ 0.97704742602796435
+ 0.97709829210568011
+ 0.97714916259769458
+ 0.97720003750455009
+ 0.97725091682679377
+ 0.97730180056496829
+ 0.97735268871961622
+ 0.97740358129128524
+ 0.97745447828051524
+ 0.97750537968785434
+ 0.97755628551384732
+ 0.97760719575903499
+ 0.97765811042396278
+ 0.97770902950917848
+ 0.97775995301522278
+ 0.97781088094264357
+ 0.97786181329198685
+ 0.97791275006379297
+ 0.97796369125861071
+ 0.97801463687698331
+ 0.97806558691945888
+ 0.97811654138657922
+ 0.9781675002788941
+ 0.97821846359694364
+ 0.97826943134127786
+ 0.97832040351244121
+ 0.97837138011097946
+ 0.97842236113743741
+ 0.97847334659236307
+ 0.97852433647629855
+ 0.97857533078979764
+ 0.97862632953339956
+ 0.97867733270765345
+ 0.97872834031310407
+ 0.97877935235030034
+ 0.97883036881978891
+ 0.97888138972211258
+ 0.97893241505782247
+ 0.97898344482746136
+ 0.97903447903158114
+ 0.97908551767072416
+ 0.97913656074544242
+ 0.9791876082562786
+ 0.97923866020378258
+ 0.97928971658850172
+ 0.97934077741097925
+ 0.97939184267176926
+ 0.9794429123714149
+ 0.97949398651046637
+ 0.97954506508947159
+ 0.97959614810897588
+ 0.97964723556952749
+ 0.97969832747167662
+ 0.97974942381597363
+ 0.97980052460295963
+ 0.97985162983318752
+ 0.97990273950720808
+ 0.97995385362556475
+ 0.98000497218880889
+ 0.98005609519748826
+ 0.98010722265215167
+ 0.98015835455334988
+ 0.98020949090162957
+ 0.98026063169753952
+ 0.98031177694163063
+ 0.9803629266344519
+ 0.98041408077655212
+ 0.98046523936848062
+ 0.9805164024107863
+ 0.98056756990402072
+ 0.98061874184873055
+ 0.98066991824546756
+ 0.98072109909478344
+ 0.98077228439722286
+ 0.98082347415334015
+ 0.98087466836368487
+ 0.98092586702880624
+ 0.9809770701492545
+ 0.98102827772557877
+ 0.98107948975833204
+ 0.98113070624806575
+ 0.9811819271953256
+ 0.9812331526006659
+ 0.98128438246463745
+ 0.9813356167877918
+ 0.98138685557067518
+ 0.98143809881384458
+ 0.98148934651784825
+ 0.98154059868323862
+ 0.98159185531056425
+ 0.98164311640038004
+ 0.98169438195323444
+ 0.98174565196968266
+ 0.9817969264502735
+ 0.98184820539555939
+ 0.98189948880609179
+ 0.98195077668242181
+ 0.98200206902510456
+ 0.98205336583469116
+ 0.9821046671117335
+ 0.98215597285678202
+ 0.98220728307039062
+ 0.98225859775311086
+ 0.98230991690549851
+ 0.98236124052810092
+ 0.98241256862147563
+ 0.98246390118617322
+ 0.98251523822274678
+ 0.98256657973175066
+ 0.98261792571373441
+ 0.98266927616925681
+ 0.98272063109886532
+ 0.98277199050311426
+ 0.98282335438256274
+ 0.98287472273775811
+ 0.98292609556925759
+ 0.98297747287761084
+ 0.98302885466337475
+ 0.98308024092710478
+ 0.98313163166935258
+ 0.98318302689066905
+ 0.9832344265916132
+ 0.98328583077274068
+ 0.98333723943459939
+ 0.98338865257774899
+ 0.98344007020274238
+ 0.98349149231013311
+ 0.98354291890047563
+ 0.98359434997432837
+ 0.98364578553224202
+ 0.98369722557477435
+ 0.98374867010247669
+ 0.98380011911590914
+ 0.98385157261562506
+ 0.98390303060217565
+ 0.98395449307612171
+ 0.9840059600380191
+ 0.98405743148841918
+ 0.98410890742787815
+ 0.98416038785695426
+ 0.98421187277620192
+ 0.98426336218617694
+ 0.98431485608743596
+ 0.98436635448053544
+ 0.98441785736602982
+ 0.98446936474447733
+ 0.98452087661643517
+ 0.98457239298245536
+ 0.98462391384309911
+ 0.98467543919891909
+ 0.98472696905047619
+ 0.9847785033983234
+ 0.98483004224302195
+ 0.98488158558512251
+ 0.98493313342518862
+ 0.98498468576377329
+ 0.98503624260143652
+ 0.98508780393873252
+ 0.98513936977622185
+ 0.98519094011445918
+ 0.98524251495400483
+ 0.98529409429541637
+ 0.98534567813924934
+ 0.98539726648606352
+ 0.9854488593364148
+ 0.98550045669086328
+ 0.98555205854996697
+ 0.98560366491428408
+ 0.9856552757843704
+ 0.98570689116078647
+ 0.98575851104409273
+ 0.9858101354348453
+ 0.98586176433360051
+ 0.98591339774092368
+ 0.98596503565736637
+ 0.98601667808349391
+ 0.98606832501986308
+ 0.98611997646702998
+ 0.98617163242555639
+ 0.98622329289600286
+ 0.98627495787892638
+ 0.9863266273748883
+ 0.98637830138444738
+ 0.98642997990816339
+ 0.98648166294659523
+ 0.98653335050030433
+ 0.98658504256985047
+ 0.98663673915579053
+ 0.98668844025868874
+ 0.98674014587910464
+ 0.98679185601759578
+ 0.98684357067472417
+ 0.98689528985105146
+ 0.98694701354713799
+ 0.98699874176354363
+ 0.98705047450082806
+ 0.98710221175955171
+ 0.98715395354027946
+ 0.98720569984356865
+ 0.98725745066998227
+ 0.98730920602008065
+ 0.98736096589442379
+ 0.98741273029357535
+ 0.98746449921809731
+ 0.98751627266854847
+ 0.98756805064549147
+ 0.98761983314948965
+ 0.98767162018110399
+ 0.98772341174089506
+ 0.98777520782942596
+ 0.98782700844725846
+ 0.987878813594953
+ 0.98793062327307557
+ 0.98798243748218728
+ 0.9880342562228499
+ 0.98808607949562632
+ 0.98813790730107898
+ 0.98818973963977097
+ 0.98824157651226163
+ 0.98829341791911962
+ 0.98834526386090482
+ 0.98839711433818045
+ 0.98844896935151161
+ 0.98850082890145718
+ 0.98855269298858628
+ 0.98860456161345667
+ 0.98865643477663723
+ 0.9887083124786874
+ 0.98876019472017274
+ 0.98881208150165467
+ 0.98886397282370087
+ 0.98891586868687331
+ 0.98896776909173711
+ 0.98901967403885449
+ 0.98907158352879143
+ 0.98912349756211204
+ 0.98917541613938198
+ 0.98922733926116158
+ 0.98927926692802071
+ 0.98933119914051793
+ 0.98938313589922533
+ 0.98943507720470192
+ 0.98948702305751557
+ 0.98953897345823127
+ 0.98959092840741258
+ 0.98964288790562582
+ 0.98969485195343654
+ 0.98974682055141006
+ 0.98979879370011326
+ 0.98985077140010691
+ 0.98990275365196234
+ 0.98995474045624265
+ 0.99000673181351451
+ 0.99005872772434222
+ 0.99011072818929391
+ 0.99016273320893389
+ 0.99021474278383115
+ 0.99026675691454979
+ 0.9903187756016566
+ 0.99037079884572066
+ 0.99042282664730408
+ 0.99047485900697618
+ 0.9905268959253013
+ 0.99057893740285152
+ 0.99063098344018852
+ 0.9906830340378826
+ 0.99073508919650055
+ 0.99078714891660746
+ 0.99083921319877288
+ 0.99089128204356192
+ 0.99094335545154699
+ 0.99099543342329099
+ 0.99104751595936091
+ 0.99109960306032774
+ 0.99115169472675846
+ 0.99120379095922162
+ 0.99125589175828455
+ 0.99130799712451523
+ 0.99136010705848243
+ 0.99141222156075348
+ 0.99146434063189925
+ 0.99151646427248319
+ 0.99156859248308071
+ 0.99162072526425582
+ 0.99167286261657883
+ 0.9917250045406163
+ 0.99177715103694142
+ 0.99182930210612053
+ 0.99188145774872438
+ 0.99193361796532042
+ 0.99198578275647886
+ 0.99203795212276891
+ 0.99209012606476221
+ 0.99214230458302555
+ 0.99219448767812757
+ 0.99224667535064281
+ 0.99229886760113561
+ 0.99235106443018228
+ 0.99240326583834781
+ 0.99245547182620397
+ 0.9925076823943223
+ 0.99255989754326845
+ 0.99261211727361887
+ 0.99266434158594341
+ 0.99271657048080919
+ 0.99276880395878708
+ 0.99282104202045285
+ 0.99287328466637048
+ 0.99292553189711696
+ 0.99297778371326018
+ 0.99303004011537244
+ 0.99308230110402429
+ 0.99313456667978639
+ 0.9931868368432335
+ 0.99323911159493194
+ 0.99329139093545926
+ 0.99334367486538333
+ 0.99339596338527791
+ 0.99344825649571122
+ 0.99350055419726124
+ 0.9935528564904943
+ 0.99360516337598581
+ 0.99365747485430744
+ 0.9937097909260324
+ 0.99376211159173233
+ 0.99381443685198045
+ 0.99386676670734586
+ 0.99391910115840743
+ 0.99397144020573158
+ 0.99402378384989709
+ 0.99407613209147361
+ 0.99412848493103501
+ 0.99418084236915305
+ 0.99423320440640417
+ 0.99428557104335857
+ 0.99433794228059269
+ 0.99439031811867584
+ 0.9944426985581879
+ 0.99449508359969585
+ 0.99454747324377957
+ 0.99459986749100882
+ 0.99465226634196102
+ 0.99470466979720595
+ 0.99475707785732115
+ 0.99480949052288159
+ 0.9948619077944576
+ 0.99491432967262905
+ 0.99496675615796648
+ 0.99501918725104532
+ 0.99507162295244089
+ 0.99512406326273062
+ 0.99517650818248382
+ 0.9952289577122797
+ 0.99528141185269237
+ 0.99533387060429745
+ 0.99538633396766807
+ 0.99543880194338241
+ 0.99549127453201691
+ 0.99554375173414444
+ 0.99559623355033966
+ 0.99564871998118032
+ 0.99570121102724296
+ 0.99575370668910612
+ 0.99580620696733957
+ 0.9958587118625235
+ 0.9959112213752328
+ 0.99596373550604389
+ 0.99601625425553331
+ 0.99606877762428003
+ 0.99612130561285661
+ 0.99617383822184158
+ 0.99622637545181236
+ 0.99627891730334583
+ 0.99633146377701876
+ 0.99638401487340611
+ 0.99643657059309032
+ 0.99648913093664315
+ 0.99654169590464248
+ 0.99659426549767238
+ 0.9966468397163013
+ 0.99669941856111166
+ 0.99675200203268277
+ 0.99680459013159062
+ 0.99685718285841007
+ 0.99690978021372423
+ 0.99696238219810607
+ 0.99701498881214068
+ 0.99706760005639883
+ 0.99712021593146594
+ 0.99717283643791566
+ 0.99722546157632574
+ 0.99727809134727996
+ 0.99733072575135351
+ 0.99738336478912559
+ 0.99743600846117464
+ 0.99748865676808363
+ 0.99754130971042698
+ 0.99759396728878547
+ 0.99764662950373806
+ 0.99769929635586596
+ 0.99775196784574605
+ 0.99780464397396185
+ 0.99785732474108779
+ 0.99791001014770819
+ 0.9979627001944017
+ 0.99801539488174773
+ 0.99806809421032616
+ 0.99812079818071608
+ 0.99817350679350181
+ 0.99822622004925854
+ 0.99827893794857003
+ 0.99833166049201694
+ 0.99838438768017868
+ 0.99843711951363712
+ 0.99848985599297035
+ 0.99854259711876303
+ 0.99859534289159324
+ 0.99864809331204518
+ 0.99870084838069728
+ 0.99875360809813207
+ 0.99880637246492998
+ 0.99885914148167165
+ 0.99891191514894195
+ 0.99896469346732186
+ 0.9990174764373897
+ 0.99907026405973076
+ 0.99912305633492626
+ 0.99917585326355662
+ 0.99922865484620749
+ 0.99928146108345828
+ 0.99933427197588931
+ 0.99938708752408945
+ 0.999439907728635
+ 0.99949273259011417
+ 0.99954556210910395
+ 0.99959839628619052
+ 0.99965123512195508
+ 0.99970407861698207
+ 0.99975692677185291
+ 0.99980977958715211
+ 0.99986263706346346
+ 0.99991549920137102
+ 0.99996836600145511
+ 1.000021237464302
+ 1.000074113590494
+ 1.0001269943806155
+ 1.0001798798352493
+ 1.0002327699549816
+ 1.0002856647403933
+ 1.0003385641920708
+ 1.0003914683105972
+ 1.0004443770965574
+ 1.0004972905505389
+ 1.0005502086731195
+ 1.0006031314648869
+ 1.0006560589264288
+ 1.000708991058326
+ 1.0007619278611632
+ 1.0008148693355292
+ 1.0008678154820065
+ 1.000920766301181
+ 1.0009737217936361
+ 1.0010266819599623
+ 1.0010796468007381
+ 1.0011326163165521
+ 1.0011855905079903
+ 1.0012385693756385
+ 1.0012915529200828
+ 1.00134454114191
+ 1.0013975340417036
+ 1.0014505316200497
+ 1.0015035338775378
+ 1.0015565408147491
+ 1.001609552432275
+ 1.0016625687306999
+ 1.0017155897106105
+ 1.0017686153725913
+ 1.0018216457172338
+ 1.0018746807451224
+ 1.001927720456842
+ 1.0019807648529842
+ 1.0020338139341316
+ 1.0020868677008736
+ 1.002139926153798
+ 1.0021929892934915
+ 1.002246057120542
+ 1.0022991296355344
+ 1.0023522068390611
+ 1.0024052887317074
+ 1.0024583753140612
+ 1.0025114665867125
+ 1.0025645625502466
+ 1.0026176632052517
+ 1.0026707685523186
+ 1.0027238785920347
+ 1.0027769933249882
+ 1.0028301127517676
+ 1.002883236872959
+ 1.0029363656891574
+ 1.0029894992009447
+ 1.0030426374089161
+ 1.0030957803136558
+ 1.0031489279157546
+ 1.0032020802158039
+ 1.0032552372143921
+ 1.0033083989121059
+ 1.0033615653095367
+ 1.0034147364072736
+ 1.003467912205908
+ 1.003521092706027
+ 1.0035742779082235
+ 1.0036274678130861
+ 1.0036806624212051
+ 1.0037338617331708
+ 1.0037870657495729
+ 1.0038402744710002
+ 1.0038934878980477
+ 1.0039467060313028
+ 1.0039999288713553
+ 1.0040531564187993
+ 1.0041063886742234
+ 1.0041596256382193
+ 1.004212867311375
+ 1.0042661136942876
+ 1.0043193647875435
+ 1.0043726205917387
+ 1.0044258811074576
+ 1.0044791463352998
+ 1.0045324162758489
+ 1.0045856909297026
+ 1.0046389702974514
+ 1.0046922543796863
+ 1.0047455431770007
+ 1.0047988366899852
+ 1.004852134919231
+ 1.0049054378653337
+ 1.0049587455288822
+ 1.0050120579104727
+ 1.0050653750106959
+ 1.0051186968301438
+ 1.0051720233694077
+ 1.0052253546290857
+ 1.0052786906097653
+ 1.0053320313120451
+ 1.0053853767365144
+ 1.005438726883765
+ 1.005492081754396
+ 1.0055454413489946
+ 1.0055988056681571
+ 1.0056521747124787
+ 1.005705548482551
+ 1.0057589269789691
+ 1.0058123102023249
+ 1.0058656981532157
+ 1.0059190908322342
+ 1.0059724882399723
+ 1.0060258903770278
+ 1.006079297243994
+ 1.0061327088414649
+ 1.0061861251700337
+ 1.0062395462302987
+ 1.006292972022852
+ 1.0063464025482893
+ 1.0063998378072039
+ 1.0064532778001962
+ 1.0065067225278546
+ 1.0065601719907795
+ 1.0066136261895642
+ 1.0066670851248023
+ 1.0067205487970921
+ 1.0067740172070323
+ 1.0068274903552112
+ 1.0068809682422308
+ 1.0069344508686839
+ 1.0069879382351672
+ 1.0070414303422772
+ 1.0070949271906098
+ 1.0071484287807599
+ 1.0072019351133286
+ 1.0072554461889103
+ 1.0073089620080991
+ 1.0073624825714942
+ 1.0074160078796901
+ 1.0074695379332868
+ 1.0075230727328803
+ 1.0075766122790661
+ 1.0076301565724437
+ 1.0076837056136103
+ 1.0077372594031626
+ 1.0077908179416968
+ 1.0078443812298117
+ 1.0078979492681055
+ 1.007951522057176
+ 1.0080050995976226
+ 1.0080586818900388
+ 1.0081122689350248
+ 1.0081658607331807
+ 1.0082194572851046
+ 1.0082730585913924
+ 1.0083266646526443
+ 1.0083802754694586
+ 1.008433891042434
+ 1.0084875113721687
+ 1.0085411364592607
+ 1.0085947663043136
+ 1.0086484009079215
+ 1.008702040270685
+ 1.0087556843932057
+ 1.0088093332760795
+ 1.0088629869199057
+ 1.0089166453252878
+ 1.0089703084928225
+ 1.0090239764231115
+ 1.0090776491167515
+ 1.0091313265743465
+ 1.0091850087964935
+ 1.0092386957837916
+ 1.0092923875368454
+ 1.0093460840562523
+ 1.0093997853426135
+ 1.0094534913965298
+ 1.0095072022186022
+ 1.0095609178094294
+ 1.0096146381696125
+ 1.0096683632997547
+ 1.009722093200456
+ 1.0097758278723161
+ 1.0098295673159381
+ 1.0098833115319246
+ 1.0099370605208733
+ 1.0099908142833873
+ 1.0100445728200695
+ 1.0100983361315183
+ 1.0101521042183388
+ 1.0102058770811317
+ 1.0102596547205005
+ 1.0103134371370459
+ 1.0103672243313688
+ 1.0104210163040728
+ 1.0104748130557615
+ 1.0105286145870362
+ 1.0105824208984999
+ 1.0106362319907525
+ 1.0106900478644016
+ 1.0107438685200472
+ 1.010797693958295
+ 1.0108515241797422
+ 1.0109053591849977
+ 1.0109591989746627
+ 1.0110130435493421
+ 1.0110668929096354
+ 1.0111207470561518
+ 1.0111746059894884
+ 1.0112284697102545
+ 1.0112823382190526
+ 1.0113362115164846
+ 1.0113900896031558
+ 1.0114439724796729
+ 1.0114978601466365
+ 1.0115517526046516
+ 1.0116056498543253
+ 1.0116595518962581
+ 1.0117134587310577
+ 1.0117673703593295
+ 1.011821286781674
+ 1.0118752079987017
+ 1.0119291340110126
+ 1.0119830648192154
+ 1.0120370004239154
+ 1.0120909408257162
+ 1.0121448860252236
+ 1.0121988360230432
+ 1.0122527908197789
+ 1.0123067504160417
+ 1.0123607148124298
+ 1.0124146840095576
+ 1.0124686580080255
+ 1.012522636808441
+ 1.0125766204114095
+ 1.0126306088175381
+ 1.0126846020274334
+ 1.0127386000417042
+ 1.0127926028609526
+ 1.0128466104857898
+ 1.0129006229168185
+ 1.0129546401546476
+ 1.0130086621998868
+ 1.0130626890531378
+ 1.0131167207150114
+ 1.0131707571861135
+ 1.0132247984670548
+ 1.0132788445584373
+ 1.0133328954608716
+ 1.0133869511749665
+ 1.0134410117013282
+ 1.0134950770405642
+ 1.0135491471932847
+ 1.0136032221600948
+ 1.0136573019416075
+ 1.0137113865384237
+ 1.0137654759511583
+ 1.01381957018042
+ 1.013873669226812
+ 1.0139277730909473
+ 1.0139818817734343
+ 1.014035995274879
+ 1.0140901135958924
+ 1.0141442367370859
+ 1.0141983646990651
+ 1.0142524974824418
+ 1.014306635087824
+ 1.0143607775158217
+ 1.0144149247670431
+ 1.0144690768421001
+ 1.0145232337416015
+ 1.014577395466159
+ 1.0146315620163795
+ 1.0146857333928749
+ 1.0147399095962544
+ 1.0147940906271302
+ 1.0148482764861091
+ 1.0149024671738061
+ 1.0149566626908304
+ 1.0150108630377899
+ 1.0150650682152969
+ 1.0151192782239655
+ 1.0151734930644016
+ 1.01522771273722
+ 1.0152819372430331
+ 1.0153361665824463
+ 1.0153904007560752
+ 1.0154446397645325
+ 1.0154988836084258
+ 1.0155531322883686
+ 1.0156073858049763
+ 1.0156616441588546
+ 1.0157159073506192
+ 1.015770175380881
+ 1.0158244482502534
+ 1.0158787259593476
+ 1.0159330085087768
+ 1.015987295899152
+ 1.0160415881310876
+ 1.0160958852051942
+ 1.0161501871220884
+ 1.0162044938823793
+ 1.0162588054866806
+ 1.0163131219356061
+ 1.0163674432297709
+ 1.0164217693697835
+ 1.0164761003562612
+ 1.016530436189818
+ 1.0165847768710656
+ 1.0166391224006166
+ 1.0166934727790877
+ 1.0167478280070916
+ 1.01680218808524
+ 1.0168565530141509
+ 1.016910922794438
+ 1.0169652974267125
+ 1.0170196769115889
+ 1.0170740612496871
+ 1.0171284504416156
+ 1.0171828444879918
+ 1.0172372433894306
+ 1.0172916471465481
+ 1.0173460557599572
+ 1.0174004692302705
+ 1.0174548875581113
+ 1.0175093107440856
+ 1.0175637387888146
+ 1.0176181716929134
+ 1.0176726094569954
+ 1.0177270520816775
+ 1.0177814995675754
+ 1.0178359519153051
+ 1.0178904091254826
+ 1.0179448711987249
+ 1.0179993381356458
+ 1.0180538099368639
+ 1.0181082866029962
+ 1.0181627681346566
+ 1.0182172545324639
+ 1.0182717457970332
+ 1.0183262419289814
+ 1.0183807429289271
+ 1.0184352487974853
+ 1.0184897595352758
+ 1.018544275142913
+ 1.0185987956210165
+ 1.0186533209702013
+ 1.0187078511910876
+ 1.0187623862842901
+ 1.0188169262504312
+ 1.0188714710901212
+ 1.0189260208039854
+ 1.0189805753926389
+ 1.0190351348566997
+ 1.0190896991967855
+ 1.0191442684135148
+ 1.0191988425075076
+ 1.0192534214793798
+ 1.0193080053297545
+ 1.0193625940592455
+ 1.0194171876684732
+ 1.0194717861580587
+ 1.0195263895286202
+ 1.0195809977807746
+ 1.0196356109151425
+ 1.0196902289323428
+ 1.019744851832997
+ 1.0197994796177214
+ 1.0198541122871401
+ 1.0199087498418691
+ 1.0199633922825282
+ 1.0200180396097389
+ 1.0200726918241232
+ 1.0201273489262974
+ 1.0201820109168818
+ 1.0202366777965002
+ 1.0202913495657724
+ 1.0203460262253159
+ 1.0204007077757526
+ 1.020455394217705
+ 1.0205100855517908
+ 1.0205647817786367
+ 1.0206194828988584
+ 1.0206741889130779
+ 1.0207288998219166
+ 1.0207836156259988
+ 1.0208383363259423
+ 1.0208930619223711
+ 1.0209477924159069
+ 1.0210025278071686
+ 1.0210572680967815
+ 1.0211120132853668
+ 1.0211667633735451
+ 1.0212215183619395
+ 1.0212762782511713
+ 1.0213310430418665
+ 1.0213858127346414
+ 1.0214405873301244
+ 1.0214953668289368
+ 1.0215501512317005
+ 1.0216049405390364
+ 1.0216597347515708
+ 1.0217145338699261
+ 1.0217693378947257
+ 1.0218241468265916
+ 1.0218789606661463
+ 1.0219337794140178
+ 1.0219886030708267
+ 1.0220434316371949
+ 1.0220982651137493
+ 1.0221531035011122
+ 1.0222079467999081
+ 1.0222627950107621
+ 1.0223176481342993
+ 1.0223725061711397
+ 1.0224273691219108
+ 1.0224822369872375
+ 1.0225371097677427
+ 1.0225919874640546
+ 1.0226468700767928
+ 1.0227017576065862
+ 1.0227566500540599
+ 1.0228115474198369
+ 1.0228664497045432
+ 1.0229213569088047
+ 1.0229762690332489
+ 1.0230311860784951
+ 1.0230861080451743
+ 1.0231410349339123
+ 1.0231959667453328
+ 1.0232509034800619
+ 1.0233058451387287
+ 1.0233607917219547
+ 1.0234157432303708
+ 1.0234706996645995
+ 1.023525661025269
+ 1.0235806273130064
+ 1.0236355985284389
+ 1.0236905746721898
+ 1.023745555744892
+ 1.0238005417471674
+ 1.0238555326796428
+ 1.0239105285429504
+ 1.0239655293377123
+ 1.024020535064559
+ 1.0240755457241197
+ 1.0241305613170171
+ 1.0241855818438814
+ 1.0242406073053405
+ 1.0242956377020216
+ 1.0243506730345551
+ 1.0244057133035662
+ 1.0244607585096834
+ 1.0245158086535393
+ 1.0245708637357549
+ 1.0246259237569653
+ 1.0246809887177966
+ 1.0247360586188796
+ 1.0247911334608379
+ 1.024846213244307
+ 1.0249012979699108
+ 1.024956387638281
+ 1.0250114822500476
+ 1.0250665818058378
+ 1.0251216863062826
+ 1.0251767957520115
+ 1.0252319101436553
+ 1.0252870294818408
+ 1.0253421537671976
+ 1.0253972830003597
+ 1.0254524171819561
+ 1.0255075563126146
+ 1.0255627003929642
+ 1.0256178494236416
+ 1.0256730034052721
+ 1.0257281623384897
+ 1.0257833262239224
+ 1.0258384950622026
+ 1.0258936688539624
+ 1.0259488475998269
+ 1.0260040313004342
+ 1.0260592199564136
+ 1.0261144135683935
+ 1.0261696121370092
+ 1.0262248156628915
+ 1.0262800241466699
+ 1.026335237588976
+ 1.0263904559904451
+ 1.0264456793517076
+ 1.0265009076733949
+ 1.0265561409561377
+ 1.0266113792005718
+ 1.0266666224073284
+ 1.0267218705770387
+ 1.0267771237103367
+ 1.0268323818078531
+ 1.0268876448702244
+ 1.02694291289808
+ 1.0269981858920538
+ 1.0270534638527791
+ 1.027108746780891
+ 1.027164034677019
+ 1.0272193275418013
+ 1.0272746253758684
+ 1.0273299281798542
+ 1.0273852359543909
+ 1.0274405487001157
+ 1.027495866417661
+ 1.027551189107659
+ 1.0276065167707471
+ 1.0276618494075576
+ 1.0277171870187281
+ 1.027772529604889
+ 1.0278278771666753
+ 1.0278832297047225
+ 1.0279385872196656
+ 1.02799394971214
+ 1.0280493171827818
+ 1.0281046896322212
+ 1.0281600670610989
+ 1.0282154494700479
+ 1.0282708368597049
+ 1.0283262292307023
+ 1.0283816265836792
+ 1.0284370289192712
+ 1.0284924362381103
+ 1.0285478485408346
+ 1.0286032658280828
+ 1.0286586881004867
+ 1.0287141153586852
+ 1.0287695476033145
+ 1.0288249848350111
+ 1.0288804270544101
+ 1.0289358742621497
+ 1.0289913264588653
+ 1.0290467836451955
+ 1.0291022458217776
+ 1.0291577129892464
+ 1.0292131851482389
+ 1.0292686622993974
+ 1.0293241444433519
+ 1.0293796315807471
+ 1.029435123712215
+ 1.0294906208383967
+ 1.0295461229599268
+ 1.029601630077448
+ 1.0296571421915954
+ 1.0297126593030073
+ 1.0297681814123218
+ 1.0298237085201765
+ 1.0298792406272124
+ 1.0299347777340673
+ 1.0299903198413776
+ 1.0300458669497834
+ 1.0301014190599236
+ 1.0301569761724412
+ 1.0302125382879659
+ 1.0302681054071454
+ 1.0303236775306166
+ 1.0303792546590174
+ 1.0304348367929903
+ 1.0304904239331711
+ 1.0305460160802042
+ 1.0306016132347238
+ 1.0306572153973739
+ 1.0307128225687936
+ 1.0307684347496229
+ 1.030824051940501
+ 1.0308796741420698
+ 1.0309353013549694
+ 1.0309909335798413
+ 1.0310465708173233
+ 1.0311022130680576
+ 1.0311578603326867
+ 1.0312135126118505
+ 1.0312691699061893
+ 1.0313248322163462
+ 1.0313804995429603
+ 1.0314361718866756
+ 1.0314918492481293
+ 1.0315475316279672
+ 1.0316032190268301
+ 1.031658911445358
+ 1.0317146088841951
+ 1.031770311343984
+ 1.0318260188253632
+ 1.0318817313289765
+ 1.0319374488554696
+ 1.0319931714054813
+ 1.0320488989796555
+ 1.0321046315786357
+ 1.032160369203061
+ 1.032216111853578
+ 1.03227185953083
+ 1.032327612235457
+ 1.0323833699681055
+ 1.0324391327294169
+ 1.0324949005200337
+ 1.0325506733406018
+ 1.0326064511917643
+ 1.0326622340741654
+ 1.0327180219884449
+ 1.0327738149352521
+ 1.0328296129152299
+ 1.0328854159290206
+ 1.0329412239772691
+ 1.0329970370606227
+ 1.0330528551797198
+ 1.0331086783352099
+ 1.0331645065277362
+ 1.0332203397579438
+ 1.0332761780264765
+ 1.0333320213339814
+ 1.0333878696811023
+ 1.0334437230684845
+ 1.033499581496774
+ 1.0335554449666142
+ 1.0336113134786533
+ 1.0336671870335354
+ 1.0337230656319087
+ 1.0337789492744147
+ 1.0338348379617044
+ 1.0338907316944215
+ 1.0339466304732106
+ 1.03400253429872
+ 1.0340584431715945
+ 1.0341143570924827
+ 1.0341702760620315
+ 1.0342262000808857
+ 1.0342821291496918
+ 1.0343380632690995
+ 1.0343940024397531
+ 1.0344499466623001
+ 1.0345058959373903
+ 1.0345618502656679
+ 1.0346178096477836
+ 1.0346737740843823
+ 1.0347297435761136
+ 1.0347857181236229
+ 1.0348416977275603
+ 1.0348976823885743
+ 1.0349536721073094
+ 1.0350096668844166
+ 1.0350656667205462
+ 1.0351216716163418
+ 1.0351776815724558
+ 1.0352336965895348
+ 1.0352897166682291
+ 1.0353457418091878
+ 1.0354017720130588
+ 1.035457807280491
+ 1.0355138476121331
+ 1.0355698930086341
+ 1.0356259434706476
+ 1.0356819989988202
+ 1.0357380595937984
+ 1.0357941252562382
+ 1.0358501959867827
+ 1.0359062717860896
+ 1.0359623526548019
+ 1.0360184385935733
+ 1.036074529603054
+ 1.0361306256838956
+ 1.0361867268367431
+ 1.0362428330622533
+ 1.0362989443610739
+ 1.0363550607338572
+ 1.0364111821812507
+ 1.0364673087039096
+ 1.0365234403024839
+ 1.036579576977624
+ 1.0366357187299804
+ 1.036691865560208
+ 1.0367480174689527
+ 1.036804174456875
+ 1.0368603365246176
+ 1.0369165036728372
+ 1.0369726759021836
+ 1.0370288532133107
+ 1.0370850356068697
+ 1.0371412230835138
+ 1.0371974156438941
+ 1.0372536132886645
+ 1.0373098160184788
+ 1.0373660238339857
+ 1.0374222367358419
+ 1.0374784547246989
+ 1.0375346778012107
+ 1.0375909059660267
+ 1.0376471392198059
+ 1.0377033775631983
+ 1.0377596209968576
+ 1.0378158695214386
+ 1.0378721231375958
+ 1.0379283818459795
+ 1.0379846456472461
+ 1.0380409145420488
+ 1.0380971885310444
+ 1.0381534676148836
+ 1.038209751794221
+ 1.038266041069714
+ 1.0383223354420161
+ 1.0383786349117798
+ 1.038434939479663
+ 1.038491249146319
+ 1.0385475639124029
+ 1.0386038837785709
+ 1.0386602087454759
+ 1.038716538813774
+ 1.0387728739841233
+ 1.0388292142571776
+ 1.0388855596335929
+ 1.0389419101140229
+ 1.0389982656991263
+ 1.0390546263895573
+ 1.039110992185974
+ 1.0391673630890288
+ 1.039223739099385
+ 1.0392801202176922
+ 1.0393365064446098
+ 1.0393928977807942
+ 1.0394492942269005
+ 1.0395056957835898
+ 1.0395621024515149
+ 1.0396185142313346
+ 1.039674931123707
+ 1.0397313531292893
+ 1.0397877802487336
+ 1.0398442124827076
+ 1.039900649831861
+ 1.039957092296852
+ 1.040013539878343
+ 1.0400699925769894
+ 1.0401264503934466
+ 1.0401829133283775
+ 1.0402393813824375
+ 1.0402958545562879
+ 1.0403523328505815
+ 1.0404088162659835
+ 1.0404653048031487
+ 1.0405217984627366
+ 1.0405782972454067
+ 1.0406348011518198
+ 1.0406913101826301
+ 1.0407478243385031
+ 1.0408043436200931
+ 1.0408608680280615
+ 1.0409173975630701
+ 1.0409739322257729
+ 1.0410304720168364
+ 1.0410870169369175
+ 1.0411435669866758
+ 1.0412001221667728
+ 1.0412566824778688
+ 1.0413132479206202
+ 1.0413698184956923
+ 1.0414263942037467
+ 1.0414829750454366
+ 1.0415395610214311
+ 1.0415961521323884
+ 1.0416527483789659
+ 1.0417093497618286
+ 1.0417659562816399
+ 1.0418225679390545
+ 1.0418791847347408
+ 1.0419358066693543
+ 1.0419924337435627
+ 1.0420490659580222
+ 1.0421057033133982
+ 1.0421623458103522
+ 1.0422189934495445
+ 1.0422756462316389
+ 1.0423323041572987
+ 1.0423889672271858
+ 1.0424456354419633
+ 1.0425023088022909
+ 1.0425589873088339
+ 1.0426156709622547
+ 1.042672359763215
+ 1.0427290537123834
+ 1.0427857528104167
+ 1.04284245705798
+ 1.0428991664557368
+ 1.0429558810043551
+ 1.0430126007044913
+ 1.0430693255568126
+ 1.0431260555619843
+ 1.0431827907206688
+ 1.0432395310335305
+ 1.0432962765012348
+ 1.0433530271244438
+ 1.0434097829038234
+ 1.0434665438400383
+ 1.043523309933752
+ 1.0435800811856299
+ 1.0436368575963393
+ 1.0436936391665415
+ 1.0437504258969017
+ 1.0438072177880886
+ 1.0438640148407656
+ 1.0439208170555958
+ 1.0439776244332482
+ 1.0440344369743884
+ 1.0440912546796801
+ 1.0441480775497904
+ 1.0442049055853846
+ 1.04426173878713
+ 1.0443185771556924
+ 1.0443754206917393
+ 1.0444322693959343
+ 1.0444891232689444
+ 1.0445459823114385
+ 1.0446028465240818
+ 1.0446597159075433
+ 1.0447165904624856
+ 1.0447734701895803
+ 1.0448303550894924
+ 1.0448872451628899
+ 1.0449441404104418
+ 1.0450010408328136
+ 1.0450579464306706
+ 1.0451148572046853
+ 1.045171773155523
+ 1.0452286942838542
+ 1.0452856205903418
+ 1.0453425520756607
+ 1.0453994887404754
+ 1.045456430585453
+ 1.0455133776112646
+ 1.045570329818579
+ 1.0456272872080641
+ 1.0456842497803887
+ 1.0457412175362235
+ 1.0457981904762357
+ 1.0458551686010933
+ 1.04591215191147
+ 1.0459691404080307
+ 1.0460261340914487
+ 1.0460831329623907
+ 1.0461401370215264
+ 1.0461971462695299
+ 1.0462541607070677
+ 1.0463111803348095
+ 1.0463682051534278
+ 1.0464252351635914
+ 1.0464822703659711
+ 1.0465393107612355
+ 1.0465963563500604
+ 1.0466534071331131
+ 1.0467104631110635
+ 1.0467675242845842
+ 1.0468245906543459
+ 1.0468816622210206
+ 1.0469387389852793
+ 1.046995820947795
+ 1.0470529081092355
+ 1.0471100004702767
+ 1.0471670980315866
+ 1.0472242007938388
+ 1.0472813087577066
+ 1.0473384219238608
+ 1.0473955402929731
+ 1.0474526638657164
+ 1.0475097926427621
+ 1.0475669266247871
+ 1.0476240658124598
+ 1.0476812102064543
+ 1.0477383598074448
+ 1.0477955146161002
+ 1.0478526746331001
+ 1.0479098398591109
+ 1.0479670102948102
+ 1.0480241859408721
+ 1.0480813667979685
+ 1.0481385528667722
+ 1.0481957441479572
+ 1.048252940642199
+ 1.0483101423501719
+ 1.0483673492725492
+ 1.0484245614100032
+ 1.0484817787632137
+ 1.0485390013328488
+ 1.0485962291195889
+ 1.0486534621241046
+ 1.0487107003470706
+ 1.0487679437891637
+ 1.048825192451059
+ 1.0488824463334321
+ 1.0489397054369567
+ 1.0489969697623089
+ 1.0490542393101641
+ 1.0491115140811991
+ 1.049168794076087
+ 1.0492260792955073
+ 1.0492833697401334
+ 1.0493406654106416
+ 1.0493979663077067
+ 1.0494552724320094
+ 1.0495125837842223
+ 1.0495699003650241
+ 1.0496272221750897
+ 1.0496845492150979
+ 1.0497418814857213
+ 1.0497992189876419
+ 1.049856561721535
+ 1.0499139096880767
+ 1.0499712628879452
+ 1.0500286213218202
+ 1.050085984990375
+ 1.0501433538942908
+ 1.0502007280342422
+ 1.0502581074109083
+ 1.0503154920249695
+ 1.0503728818771016
+ 1.0504302769679832
+ 1.0504876772982916
+ 1.0505450828687057
+ 1.0506024936799059
+ 1.0506599097325708
+ 1.050717331027377
+ 1.0507747575650044
+ 1.0508321893461325
+ 1.0508896263714398
+ 1.0509470686416058
+ 1.0510045161573085
+ 1.0510619689192326
+ 1.0511194269280495
+ 1.0511768901844456
+ 1.0512343586890982
+ 1.0512918324426865
+ 1.0513493114458923
+ 1.0514067956993955
+ 1.0514642852038751
+ 1.0515217799600114
+ 1.0515792799684867
+ 1.0516367852299808
+ 1.0516942957451758
+ 1.0517518115147473
+ 1.0518093325393829
+ 1.0518668588197597
+ 1.0519243903565587
+ 1.0519819271504651
+ 1.0520394692021546
+ 1.0520970165123149
+ 1.0521545690816241
+ 1.0522121269107612
+ 1.0522696900004138
+ 1.0523272583512628
+ 1.0523848319639848
+ 1.0524424108392703
+ 1.0524999949777962
+ 1.0525575843802455
+ 1.0526151790473002
+ 1.052672778979646
+ 1.0527303841779625
+ 1.0527879946429335
+ 1.0528456103752439
+ 1.0529032313755744
+ 1.0529608576446106
+ 1.0530184891830332
+ 1.0530761259915276
+ 1.0531337680707755
+ 1.0531914154214645
+ 1.0532490680442743
+ 1.0533067259398894
+ 1.0533643891089952
+ 1.053422057552277
+ 1.0534797312704145
+ 1.0535374102640975
+ 1.0535950945340076
+ 1.0536527840808292
+ 1.053710478905248
+ 1.0537681790079498
+ 1.0538258843896151
+ 1.0538835950509347
+ 1.0539413109925919
+ 1.0539990322152704
+ 1.0540567587196559
+ 1.0541144905064348
+ 1.0541722275762928
+ 1.0542299699299165
+ 1.0542877175679901
+ 1.0543454704911996
+ 1.0544032287002316
+ 1.054460992195775
+ 1.054518760978512
+ 1.0545765350491298
+ 1.0546343144083163
+ 1.0546920990567576
+ 1.0547498889951397
+ 1.0548076842241525
+ 1.0548654847444783
+ 1.0549232905568098
+ 1.0549811016618313
+ 1.055038918060228
+ 1.0550967397526902
+ 1.0551545667399056
+ 1.0552123990225613
+ 1.055270236601346
+ 1.0553280794769448
+ 1.0553859276500479
+ 1.0554437811213437
+ 1.0555016398915231
+ 1.0555595039612666
+ 1.0556173733312699
+ 1.0556752480022193
+ 1.0557331279748037
+ 1.055791013249713
+ 1.0558489038276322
+ 1.0559067997092568
+ 1.0559647008952715
+ 1.0560226073863666
+ 1.0560805191832299
+ 1.0561384362865525
+ 1.056196358697028
+ 1.0562542864153395
+ 1.0563122194421803
+ 1.0563701577782407
+ 1.0564281014242103
+ 1.056486050380778
+ 1.0565440046486365
+ 1.0566019642284761
+ 1.0566599291209837
+ 1.0567178993268569
+ 1.0567758748467782
+ 1.0568338556814456
+ 1.0568918418315469
+ 1.0569498332977747
+ 1.0570078300808172
+ 1.0570658321813704
+ 1.0571238396001212
+ 1.0571818523377665
+ 1.0572398703949941
+ 1.0572978937724953
+ 1.0573559224709657
+ 1.0574139564910938
+ 1.0574719958335734
+ 1.0575300404990984
+ 1.0575880904883601
+ 1.0576461458020501
+ 1.0577042064408619
+ 1.0577622724054876
+ 1.0578203436966211
+ 1.0578784203149547
+ 1.0579365022611824
+ 1.0579945895359957
+ 1.0580526821400924
+ 1.0581107800741596
+ 1.0581688833388965
+ 1.0582269919349934
+ 1.0582851058631475
+ 1.0583432251240488
+ 1.0584013497183948
+ 1.0584594796468758
+ 1.0585176149101898
+ 1.0585757555090314
+ 1.0586339014440918
+ 1.0586920527160686
+ 1.0587502093256553
+ 1.0588083712735468
+ 1.0588665385604399
+ 1.0589247111870272
+ 1.0589828891540052
+ 1.0590410724620696
+ 1.0590992611119143
+ 1.0591574551042378
+ 1.0592156544397338
+ 1.0592738591190991
+ 1.0593320691430248
+ 1.0593902845122156
+ 1.0594485052273623
+ 1.0595067312891622
+ 1.0595649626983124
+ 1.0596231994555068
+ 1.0596814415614451
+ 1.0597396890168269
+ 1.0597979418223396
+ 1.0598561999786904
+ 1.0599144634865689
+ 1.0599727323466752
+ 1.0600310065597098
+ 1.0600892861263669
+ 1.0601475710473427
+ 1.0602058613233374
+ 1.0602641569550486
+ 1.0603224579431738
+ 1.0603807642884095
+ 1.0604390759914588
+ 1.0604973930530122
+ 1.060555715473775
+ 1.0606140432544444
+ 1.060672376395718
+ 1.0607307148982943
+ 1.0607890587628728
+ 1.0608474079901518
+ 1.06090576258083
+ 1.0609641225356095
+ 1.0610224878551866
+ 1.0610808585402625
+ 1.0611392345915345
+ 1.0611976160097067
+ 1.061256002795476
+ 1.0613143949495401
+ 1.0613727924726024
+ 1.0614311953653635
+ 1.0614896036285226
+ 1.06154801726278
+ 1.0616064362688356
+ 1.0616648606473915
+ 1.0617232903991485
+ 1.0617817255248068
+ 1.061840166025066
+ 1.0618986119006273
+ 1.0619570631521957
+ 1.0620155197804695
+ 1.0620739817861515
+ 1.0621324491699429
+ 1.0621909219325449
+ 1.0622494000746576
+ 1.0623078835969872
+ 1.062366372500233
+ 1.062424866785098
+ 1.0624833664522837
+ 1.0625418715024941
+ 1.0626003819364329
+ 1.0626588977547973
+ 1.0627174189582931
+ 1.0627759455476256
+ 1.0628344775234955
+ 1.062893014886608
+ 1.0629515576376598
+ 1.0630101057773629
+ 1.0630686593064174
+ 1.0631272182255256
+ 1.0631857825353921
+ 1.0632443522367214
+ 1.063302927330217
+ 1.063361507816581
+ 1.0634200936965215
+ 1.0634786849707407
+ 1.0635372816399447
+ 1.0635958837048338
+ 1.0636544911661181
+ 1.0637131040244991
+ 1.063771722280682
+ 1.0638303459353726
+ 1.0638889749892748
+ 1.0639476094430969
+ 1.0640062492975402
+ 1.0640648945533158
+ 1.0641235452111224
+ 1.0641822012716691
+ 1.0642408627356645
+ 1.0642995296038111
+ 1.0643582018768147
+ 1.0644168795553848
+ 1.0644755626402256
+ 1.0645342511320419
+ 1.0645929450315432
+ 1.0646516443394343
+ 1.0647103490564243
+ 1.0647690591832155
+ 1.0648277747205213
+ 1.0648864956690456
+ 1.0649452220294966
+ 1.0650039538025791
+ 1.0650626909890011
+ 1.0651214335894756
+ 1.0651801816047051
+ 1.0652389350353981
+ 1.0652976938822647
+ 1.0653564581460111
+ 1.0654152278273477
+ 1.0654740029269785
+ 1.0655327834456159
+ 1.0655915693839697
+ 1.0656503607427454
+ 1.0657091575226545
+ 1.0657679597244027
+ 1.0658267673487003
+ 1.0658855803962572
+ 1.0659443988677839
+ 1.0660032227639886
+ 1.0660620520855812
+ 1.0661208868332708
+ 1.0661797270077669
+ 1.0662385726097796
+ 1.0662974236400202
+ 1.066356280099199
+ 1.0664151419880259
+ 1.066474009307208
+ 1.0665328820574604
+ 1.0665917602394934
+ 1.0666506438540144
+ 1.0667095329017393
+ 1.0667684273833729
+ 1.0668273272996305
+ 1.0668862326512236
+ 1.0669451434388619
+ 1.0670040596632571
+ 1.0670629813251216
+ 1.0671219084251669
+ 1.0671808409641037
+ 1.0672397789426458
+ 1.0672987223615047
+ 1.0673576712213935
+ 1.067416625523022
+ 1.0674755852671034
+ 1.0675345504543519
+ 1.0675935210854794
+ 1.0676524971612003
+ 1.0677114786822237
+ 1.0677704656492664
+ 1.0678294580630383
+ 1.0678884559242585
+ 1.0679474592336322
+ 1.068006467991879
+ 1.0680654821997089
+ 1.0681245018578394
+ 1.0681835269669828
+ 1.068242557527852
+ 1.0683015935411626
+ 1.0683606350076291
+ 1.0684196819279626
+ 1.068478734302881
+ 1.0685377921330999
+ 1.0685968554193301
+ 1.0686559241622897
+ 1.0687149983626922
+ 1.0687740780212536
+ 1.0688331631386876
+ 1.0688922537157128
+ 1.0689513497530405
+ 1.0690104512513894
+ 1.069069558211474
+ 1.0691286706340102
+ 1.0691877885197145
+ 1.0692469118693018
+ 1.0693060406834913
+ 1.0693651749629942
+ 1.0694243147085309
+ 1.0694834599208156
+ 1.0695426106005679
+ 1.0696017667485029
+ 1.0696609283653373
+ 1.0697200954517896
+ 1.0697792680085763
+ 1.0698384460364134
+ 1.0698976295360179
+ 1.0699568185081108
+ 1.0700160129534071
+ 1.0700752128726252
+ 1.0701344182664827
+ 1.0701936291356979
+ 1.070252845480987
+ 1.070312067303073
+ 1.070371294602672
+ 1.0704305273805004
+ 1.0704897656372787
+ 1.070549009373726
+ 1.0706082585905587
+ 1.0706675132885006
+ 1.0707267734682662
+ 1.0707860391305786
+ 1.070845310276153
+ 1.0709045869057108
+ 1.0709638690199739
+ 1.0710231566196593
+ 1.0710824497054867
+ 1.0711417482781782
+ 1.0712010523384512
+ 1.0712603618870253
+ 1.0713196769246256
+ 1.0713789974519694
+ 1.0714383234697773
+ 1.071497654978772
+ 1.071556991979671
+ 1.0716163344731973
+ 1.0716756824600715
+ 1.0717350359410165
+ 1.0717943949167505
+ 1.0718537593879973
+ 1.0719131293554773
+ 1.0719725048199142
+ 1.0720318857820268
+ 1.0720912722425404
+ 1.0721506642021716
+ 1.0722100616616499
+ 1.072269464621691
+ 1.0723288730830194
+ 1.0723882870463612
+ 1.0724477065124363
+ 1.0725071314819636
+ 1.0725665619556748
+ 1.0726259979342847
+ 1.0726854394185203
+ 1.0727448864091063
+ 1.0728043389067625
+ 1.0728637969122141
+ 1.0729232604261827
+ 1.0729827294493965
+ 1.0730422039825782
+ 1.0731016840264476
+ 1.0731611695817329
+ 1.0732206606491594
+ 1.073280157229445
+ 1.0733396593233231
+ 1.0733991669315115
+ 1.0734586800547392
+ 1.0735181986937286
+ 1.0735777228492038
+ 1.0736372525218911
+ 1.0736967877125188
+ 1.0737563284218079
+ 1.0738158746504853
+ 1.0738754263992774
+ 1.0739349836689105
+ 1.0739945464601062
+ 1.0740541147735962
+ 1.0741136886101028
+ 1.0741732679703551
+ 1.0742328528550775
+ 1.0742924432649945
+ 1.0743520392008361
+ 1.0744116406633273
+ 1.0744712476531975
+ 1.0745308601711716
+ 1.0745904782179756
+ 1.0746501017943386
+ 1.0747097309009863
+ 1.074769365538649
+ 1.0748290057080523
+ 1.0748886514099243
+ 1.0749483026449924
+ 1.0750079594139834
+ 1.07506762171763
+ 1.075127289556653
+ 1.0751869629317887
+ 1.0752466418437585
+ 1.0753063262932954
+ 1.0753660162811287
+ 1.0754257118079844
+ 1.0754854128745921
+ 1.0755451194816803
+ 1.0756048316299831
+ 1.075664549320223
+ 1.0757242725531337
+ 1.0757840013294422
+ 1.075843735649878
+ 1.075903475515176
+ 1.075963220926061
+ 1.0760229718832652
+ 1.0760827283875161
+ 1.0761424904395485
+ 1.0762022580400896
+ 1.0762620311898707
+ 1.0763218098896239
+ 1.0763815941400747
+ 1.0764413839419633
+ 1.0765011792960135
+ 1.0765609802029552
+ 1.0766207866635271
+ 1.0766805986784553
+ 1.0767404162484728
+ 1.0768002393743108
+ 1.0768600680567029
+ 1.0769199022963778
+ 1.0769797420940694
+ 1.0770395874505092
+ 1.0770994383664312
+ 1.0771592948425672
+ 1.0772191568796483
+ 1.077279024478407
+ 1.0773388976395799
+ 1.0773987763638966
+ 1.0774586606520888
+ 1.0775185505048941
+ 1.0775784459230398
+ 1.0776383469072681
+ 1.0776982534583039
+ 1.0777581655768855
+ 1.0778180832637445
+ 1.0778780065196163
+ 1.0779379353452347
+ 1.0779978697413342
+ 1.0780578097086482
+ 1.0781177552479122
+ 1.078177706359857
+ 1.0782376630452235
+ 1.0782976253047423
+ 1.07835759313915
+ 1.0784175665491795
+ 1.0784775455355702
+ 1.078537530099053
+ 1.0785975202403646
+ 1.078657515960241
+ 1.0787175172594194
+ 1.078777524138633
+ 1.0788375365986196
+ 1.0788975546401129
+ 1.0789575782638507
+ 1.0790176074705717
+ 1.0790776422610082
+ 1.0791376826358978
+ 1.0791977285959775
+ 1.0792577801419876
+ 1.0793178372746575
+ 1.0793778999947308
+ 1.0794379683029418
+ 1.0794980422000313
+ 1.0795581216867296
+ 1.0796182067637825
+ 1.0796782974319201
+ 1.0797383936918861
+ 1.0797984955444158
+ 1.0798586029902475
+ 1.079918716030118
+ 1.0799788346647703
+ 1.0800389588949357
+ 1.0800990887213606
+ 1.0801592241447788
+ 1.0802193651659291
+ 1.080279511785553
+ 1.080339664004385
+ 1.0803998218231718
+ 1.0804599852426449
+ 1.0805201542635487
+ 1.0805803288866214
+ 1.0806405091126012
+ 1.0807006949422284
+ 1.0807608863762452
+ 1.080821083415392
+ 1.0808812860604036
+ 1.080941494312027
+ 1.0810017081709982
+ 1.0810619276380597
+ 1.0811221527139518
+ 1.0811823833994127
+ 1.0812426196951905
+ 1.0813028616020179
+ 1.0813631091206415
+ 1.0814233622518019
+ 1.0814836209962371
+ 1.0815438853546937
+ 1.0816041553279123
+ 1.0816644309166299
+ 1.0817247121215927
+ 1.0817849989435444
+ 1.0818452913832239
+ 1.0819055894413736
+ 1.0819658931187366
+ 1.0820262024160583
+ 1.0820865173340779
+ 1.0821468378735368
+ 1.0822071640351827
+ 1.082267495819758
+ 1.0823278332280022
+ 1.0823881762606626
+ 1.0824485249184821
+ 1.0825088792022008
+ 1.0825692391125659
+ 1.0826296046503205
+ 1.0826899758162079
+ 1.082750352610973
+ 1.0828107350353591
+ 1.082871123090112
+ 1.0829315167759777
+ 1.0829919160936965
+ 1.0830523210440146
+ 1.0831127316276785
+ 1.0831731478454312
+ 1.0832335696980195
+ 1.0832939971861899
+ 1.0833544303106835
+ 1.0834148690722489
+ 1.0834753134716315
+ 1.0835357635095768
+ 1.0835962191868325
+ 1.0836566805041403
+ 1.0837171474622471
+ 1.0837776200619049
+ 1.083838098303854
+ 1.0838985821888441
+ 1.0839590717176195
+ 1.0840195668909309
+ 1.0840800677095208
+ 1.0841405741741392
+ 1.084201086285532
+ 1.0842616040444464
+ 1.0843221274516281
+ 1.0843826565078305
+ 1.0844431912137937
+ 1.0845037315702721
+ 1.0845642775780107
+ 1.084624829237758
+ 1.0846853865502608
+ 1.0847459495162695
+ 1.084806518136531
+ 1.0848670924117965
+ 1.0849276723428121
+ 1.0849882579303247
+ 1.0850488491750887
+ 1.0851094460778481
+ 1.0851700486393572
+ 1.0852306568603607
+ 1.0852912707416109
+ 1.0853518902838568
+ 1.0854125154878462
+ 1.0854731463543312
+ 1.0855337828840621
+ 1.0855944250777887
+ 1.0856550729362584
+ 1.0857157264602246
+ 1.0857763856504368
+ 1.0858370505076489
+ 1.0858977210326033
+ 1.0859583972260607
+ 1.0860190790887647
+ 1.0860797666214732
+ 1.0861404598249322
+ 1.0862011586998934
+ 1.0862618632471095
+ 1.0863225734673323
+ 1.0863832893613155
+ 1.0864440109298079
+ 1.0865047381735611
+ 1.0865654710933317
+ 1.0866262096898667
+ 1.0866869539639226
+ 1.0867477039162514
+ 1.0868084595476026
+ 1.0868692208587309
+ 1.0869299878503911
+ 1.0869907605233349
+ 1.0870515388783131
+ 1.0871123229160846
+ 1.0871731126373982
+ 1.0872339080430085
+ 1.0872947091336707
+ 1.0873555159101354
+ 1.0874163283731604
+ 1.0874771465234967
+ 1.0875379703619021
+ 1.0875987998891277
+ 1.0876596351059287
+ 1.0877204760130619
+ 1.0877813226112782
+ 1.0878421749013363
+ 1.0879030328839892
+ 1.0879638965599918
+ 1.0880247659301028
+ 1.0880856409950708
+ 1.0881465217556581
+ 1.0882074082126163
+ 1.088268300366702
+ 1.088329198218672
+ 1.0883901017692843
+ 1.0884510110192902
+ 1.0885119259694498
+ 1.0885728466205176
+ 1.0886337729732516
+ 1.0886947050284066
+ 1.0887556427867404
+ 1.0888165862490105
+ 1.0888775354159748
+ 1.088938490288389
+ 1.0889994508670109
+ 1.0890604171525988
+ 1.0891213891459084
+ 1.0891823668476981
+ 1.089243350258726
+ 1.0893043393797515
+ 1.0893653342115297
+ 1.0894263347548223
+ 1.089487341010386
+ 1.0895483529789767
+ 1.0896093706613588
+ 1.0896703940582861
+ 1.0897314231705204
+ 1.0897924579988192
+ 1.0898534985439412
+ 1.0899145448066483
+ 1.0899755967876983
+ 1.0900366544878506
+ 1.0900977179078648
+ 1.0901587870485012
+ 1.0902198619105201
+ 1.0902809424946782
+ 1.0903420288017438
+ 1.0904031208324676
+ 1.0904642185876143
+ 1.0905253220679474
+ 1.0905864312742224
+ 1.0906475462072049
+ 1.0907086668676533
+ 1.0907697932563287
+ 1.0908309253739916
+ 1.0908920632214041
+ 1.0909532067993286
+ 1.0910143561085279
+ 1.0910755111497621
+ 1.0911366719237909
+ 1.091197838431381
+ 1.0912590106732913
+ 1.0913201886502839
+ 1.0913813723631229
+ 1.0914425618125705
+ 1.0915037569993888
+ 1.0915649579243425
+ 1.0916261645881913
+ 1.0916873769917028
+ 1.0917485951356347
+ 1.0918098190207517
+ 1.091871048647822
+ 1.0919322840176053
+ 1.0919935251308648
+ 1.092054771988366
+ 1.0921160245908723
+ 1.0921772829391492
+ 1.0922385470339573
+ 1.0922998168760654
+ 1.0923610924662337
+ 1.0924223738052321
+ 1.0924836608938211
+ 1.0925449537327667
+ 1.0926062523228335
+ 1.0926675566647901
+ 1.0927288667593982
+ 1.092790182607422
+ 1.0928515042096307
+ 1.0929128315667889
+ 1.0929741646796611
+ 1.0930355035490169
+ 1.0930968481756185
+ 1.0931581985602332
+ 1.0932195547036287
+ 1.0932809166065696
+ 1.0933422842698206
+ 1.0934036576941555
+ 1.093465036880334
+ 1.0935264218291292
+ 1.0935878125413012
+ 1.0936492090176237
+ 1.0937106112588622
+ 1.0937720192657825
+ 1.0938334330391526
+ 1.0938948525797416
+ 1.0939562778883181
+ 1.0940177089656482
+ 1.094079145812503
+ 1.0941405884296465
+ 1.0942020368178531
+ 1.0942634909778839
+ 1.0943249509105133
+ 1.0943864166165083
+ 1.0944478880966382
+ 1.0945093653516726
+ 1.0945708483823811
+ 1.0946323371895306
+ 1.0946938317738917
+ 1.094755332136236
+ 1.0948168382773313
+ 1.0948783501979478
+ 1.094939867898856
+ 1.0950013913808283
+ 1.0950629206446301
+ 1.0951244556910371
+ 1.0951859965208155
+ 1.0952475431347375
+ 1.0953090955335747
+ 1.0953706537180976
+ 1.0954322176890798
+ 1.0954937874472879
+ 1.0955553629934975
+ 1.0956169443284751
+ 1.0956785314529975
+ 1.095740124367836
+ 1.0958017230737573
+ 1.0958633275715404
+ 1.0959249378619527
+ 1.0959865539457705
+ 1.096048175823761
+ 1.0961098034966992
+ 1.0961714369653621
+ 1.0962330762305146
+ 1.0962947212929341
+ 1.0963563721533958
+ 1.0964180288126697
+ 1.0964796912715311
+ 1.0965413595307505
+ 1.0966030335911059
+ 1.0966647134533671
+ 1.0967263991183109
+ 1.0967880905867076
+ 1.0968497878593348
+ 1.0969114909369675
+ 1.0969731998203778
+ 1.0970349145103402
+ 1.097096635007631
+ 1.0971583613130238
+ 1.0972200934272949
+ 1.0972818313512192
+ 1.0973435750855696
+ 1.0974053246311264
+ 1.0974670799886586
+ 1.0975288411589459
+ 1.0975906081427649
+ 1.0976523809408882
+ 1.0977141595540936
+ 1.0977759439831598
+ 1.0978377342288599
+ 1.0978995302919716
+ 1.0979613321732702
+ 1.0980231398735332
+ 1.0980849533935384
+ 1.098146772734059
+ 1.0982085978958787
+ 1.0982704288797696
+ 1.0983322656865131
+ 1.0983941083168827
+ 1.0984559567716563
+ 1.0985178110516136
+ 1.0985796711575324
+ 1.0986415370901916
+ 1.0987034088503658
+ 1.0987652864388382
+ 1.0988271698563807
+ 1.0988890591037808
+ 1.098950954181809
+ 1.0990128550912479
+ 1.0990747618328773
+ 1.0991366744074766
+ 1.0991985928158206
+ 1.0992605170586938
+ 1.0993224471368739
+ 1.0993843830511383
+ 1.0994463248022703
+ 1.0995082723910494
+ 1.0995702258182536
+ 1.0996321850846635
+ 1.0996941501910624
+ 1.0997561211382256
+ 1.099818097926939
+ 1.0998800805579807
+ 1.0999420690321322
+ 1.1000040633501715
+ 1.1000660635128852
+ 1.1001280695210518
+ 1.100190081375453
+ 1.1002520990768676
+ 1.1003141226260849
+ 1.1003761520238784
+ 1.1004381872710336
+ 1.1005002283683307
+ 1.1005622753165558
+ 1.1006243281164905
+ 1.1006863867689143
+ 1.1007484512746122
+ 1.1008105216343638
+ 1.1008725978489569
+ 1.1009346799191715
+ 1.1009967678457906
+ 1.1010588616295993
+ 1.1011209612713801
+ 1.1011830667719167
+ 1.1012451781319923
+ 1.1013072953523919
+ 1.1013694184338969
+ 1.1014315473772955
+ 1.1014936821833692
+ 1.1015558228529012
+ 1.1016179693866779
+ 1.1016801217854855
+ 1.1017422800501055
+ 1.1018044441813273
+ 1.1018666141799294
+ 1.1019287900467043
+ 1.1019909717824332
+ 1.1020531593878988
+ 1.1021153528638929
+ 1.1021775522111996
+ 1.102239757430602
+ 1.1023019685228896
+ 1.1023641854888451
+ 1.1024264083292559
+ 1.1024886370449096
+ 1.1025508716365946
+ 1.1026131121050906
+ 1.1026753584511932
+ 1.1027376106756837
+ 1.1027998687793519
+ 1.1028621327629817
+ 1.1029244026273637
+ 1.1029866783732842
+ 1.1030489600015321
+ 1.1031112475128928
+ 1.1031735409081558
+ 1.1032358401881099
+ 1.1032981453535418
+ 1.1033604564052399
+ 1.1034227733439947
+ 1.103485096170592
+ 1.1035474248858217
+ 1.1036097594904761
+ 1.1036720999853369
+ 1.1037344463711991
+ 1.1037967986488502
+ 1.1038591568190799
+ 1.103921520882676
+ 1.1039838908404309
+ 1.1040462666931332
+ 1.1041086484415747
+ 1.1041710360865418
+ 1.1042334296288272
+ 1.1042958290692215
+ 1.1043582344085137
+ 1.1044206456474936
+ 1.1044830627869584
+ 1.1045454858276909
+ 1.104607914770485
+ 1.104670349616135
+ 1.1047327903654292
+ 1.1047952370191596
+ 1.1048576895781179
+ 1.1049201480430955
+ 1.1049826124148845
+ 1.1050450826942768
+ 1.1051075588820669
+ 1.1051700409790421
+ 1.1052325289859999
+ 1.1052950229037297
+ 1.1053575227330268
+ 1.1054200284746811
+ 1.1054825401294881
+ 1.1055450576982406
+ 1.1056075811817312
+ 1.1056701105807505
+ 1.1057326458960968
+ 1.1057951871285607
+ 1.1058577342789377
+ 1.1059202873480221
+ 1.1059828463366068
+ 1.1060454112454852
+ 1.106107982075454
+ 1.1061705588273076
+ 1.1062331415018363
+ 1.1062957300998395
+ 1.106358324622112
+ 1.1064209250694479
+ 1.1064835314426407
+ 1.1065461437424882
+ 1.1066087619697824
+ 1.1066713861253228
+ 1.1067340162099046
+ 1.106796652224322
+ 1.1068592941693707
+ 1.1069219420458503
+ 1.1069845958545514
+ 1.1070472555962743
+ 1.1071099212718192
+ 1.107172592881974
+ 1.1072352704275423
+ 1.1072979539093197
+ 1.1073606433280996
+ 1.1074233386846855
+ 1.1074860399798705
+ 1.1075487472144512
+ 1.1076114603892289
+ 1.1076741795049994
+ 1.1077369045625627
+ 1.1077996355627147
+ 1.107862372506252
+ 1.1079251153939769
+ 1.1079878642266856
+ 1.1080506190051786
+ 1.1081133797302523
+ 1.1081761464027067
+ 1.1082389190233415
+ 1.1083016975929543
+ 1.1083644821123473
+ 1.1084272725823161
+ 1.1084900690036628
+ 1.1085528713771886
+ 1.1086156797036888
+ 1.1086784939839684
+ 1.1087413142188234
+ 1.1088041404090572
+ 1.1088669725554681
+ 1.1089298106588572
+ 1.1089926547200277
+ 1.1090555047397761
+ 1.1091183607189092
+ 1.1091812226582198
+ 1.1092440905585181
+ 1.1093069644206
+ 1.1093698442452702
+ 1.1094327300333251
+ 1.1094956217855745
+ 1.1095585195028124
+ 1.1096214231858468
+ 1.1096843328354768
+ 1.1097472484525053
+ 1.1098101700377367
+ 1.1098730975919717
+ 1.1099360311160125
+ 1.1099989706106645
+ 1.1100619160767309
+ 1.1101248675150122
+ 1.1101878249263135
+ 1.1102507883114361
+ 1.1103137576711881
+ 1.1103767330063703
+ 1.1104397143177867
+ 1.1105027016062403
+ 1.110565694872538
+ 1.1106286941174832
+ 1.1106916993418803
+ 1.1107547105465332
+ 1.1108177277322457
+ 1.1108807508998251
+ 1.1109437800500783
+ 1.1110068151838044
+ 1.1110698563018135
+ 1.1111329034049102
+ 1.1111959564938991
+ 1.111259015569585
+ 1.1113220806327759
+ 1.1113851516842792
+ 1.1114482287248952
+ 1.1115113117554369
+ 1.111574400776707
+ 1.1116374957895143
+ 1.1117005967946607
+ 1.1117637037929604
+ 1.1118268167852143
+ 1.1118899357722329
+ 1.1119530607548205
+ 1.1120161917337903
+ 1.1120793287099411
+ 1.11214247168409
+ 1.1122056206570374
+ 1.1122687756295964
+ 1.1123319366025699
+ 1.1123951035767703
+ 1.1124582765530076
+ 1.1125214555320853
+ 1.1125846405148165
+ 1.1126478315020081
+ 1.1127110284944677
+ 1.1127742314930051
+ 1.1128374404984303
+ 1.1129006555115539
+ 1.1129638765331835
+ 1.1130271035641297
+ 1.1130903366052032
+ 1.1131535756572113
+ 1.1132168207209685
+ 1.1132800717972797
+ 1.1133433288869561
+ 1.1134065919908116
+ 1.1134698611096572
+ 1.1135331362442991
+ 1.113596417395551
+ 1.1136597045642254
+ 1.1137229977511303
+ 1.1137862969570804
+ 1.113849602182885
+ 1.1139129134293562
+ 1.113976230697306
+ 1.1140395539875463
+ 1.1141028833008897
+ 1.1141662186381456
+ 1.1142295600001322
+ 1.1142929073876564
+ 1.1143562608015318
+ 1.1144196202425751
+ 1.114482985711595
+ 1.1145463572094041
+ 1.1146097347368211
+ 1.1146731182946537
+ 1.1147365078837179
+ 1.114799903504827
+ 1.1148633051587951
+ 1.1149267128464353
+ 1.1149901265685616
+ 1.1150535463259881
+ 1.1151169721195309
+ 1.1151804039500022
+ 1.1152438418182204
+ 1.115307285724993
+ 1.115370735671144
+ 1.1154341916574813
+ 1.1154976536848258
+ 1.1155611217539856
+ 1.1156245958657829
+ 1.1156880760210326
+ 1.1157515622205447
+ 1.115815054465142
+ 1.1158785527556352
+ 1.1159420570928464
+ 1.1160055674775866
+ 1.1160690839106742
+ 1.1161326063929244
+ 1.1161961349251559
+ 1.116259669508187
+ 1.1163232101428313
+ 1.1163867568299077
+ 1.1164503095702345
+ 1.1165138683646261
+ 1.1165774332139036
+ 1.1166410041188837
+ 1.1167045810803806
+ 1.1167681640992189
+ 1.1168317531762104
+ 1.1168953483121797
+ 1.1169589495079388
+ 1.1170225567643124
+ 1.1170861700821155
+ 1.1171497894621685
+ 1.1172134149052881
+ 1.117277046412295
+ 1.1173406839840099
+ 1.1174043276212526
+ 1.1174679773248388
+ 1.117531633095592
+ 1.1175952949343297
+ 1.117658962841876
+ 1.1177226368190438
+ 1.1177863168666597
+ 1.1178500029855418
+ 1.1179136951765147
+ 1.1179773934403916
+ 1.1180410977779995
+ 1.1181048081901568
+ 1.118168524677686
+ 1.1182322472414059
+ 1.1182959758821416
+ 1.1183597106007122
+ 1.1184234513979396
+ 1.1184871982746467
+ 1.1185509512316554
+ 1.1186147102697885
+ 1.1186784753898662
+ 1.1187422465927108
+ 1.118806023879148
+ 1.1188698072500007
+ 1.1189335967060892
+ 1.1189973922482366
+ 1.119061193877267
+ 1.1191250015940029
+ 1.1191888153992704
+ 1.1192526352938907
+ 1.1193164612786881
+ 1.1193802933544854
+ 1.1194441315221098
+ 1.1195079757823823
+ 1.1195718261361276
+ 1.1196356825841745
+ 1.1196995451273426
+ 1.1197634137664563
+ 1.119827288502345
+ 1.1198911693358289
+ 1.1199550562677401
+ 1.1200189492988932
+ 1.1200828484301262
+ 1.1201467536622536
+ 1.120210664996109
+ 1.1202745824325149
+ 1.1203385059722988
+ 1.1204024356162845
+ 1.1204663713653027
+ 1.1205303132201732
+ 1.1205942611817303
+ 1.1206582152507951
+ 1.120722175428196
+ 1.1207861417147615
+ 1.120850114111321
+ 1.1209140926186949
+ 1.1209780772377163
+ 1.1210420679692106
+ 1.1211060648140079
+ 1.1211700677729319
+ 1.1212340768468154
+ 1.1212980920364852
+ 1.1213621133427685
+ 1.1214261407664952
+ 1.1214901743084924
+ 1.1215542139695882
+ 1.1216182597506152
+ 1.1216823116524011
+ 1.121746369675771
+ 1.1218104338215613
+ 1.1218745040905964
+ 1.1219385804837083
+ 1.1220026630017292
+ 1.122066751645481
+ 1.1221308464158042
+ 1.1221949473135202
+ 1.1222590543394626
+ 1.1223231674944654
+ 1.1223872867793554
+ 1.122451412194964
+ 1.1225155437421228
+ 1.1225796814216613
+ 1.1226438252344142
+ 1.1227079751812132
+ 1.1227721312628831
+ 1.122836293480264
+ 1.1229004618341829
+ 1.1229646363254724
+ 1.1230288169549649
+ 1.1230930037234936
+ 1.1231571966318914
+ 1.1232213956809884
+ 1.1232856008716203
+ 1.1233498122046182
+ 1.1234140296808146
+ 1.1234782533010459
+ 1.1235424830661431
+ 1.1236067189769374
+ 1.1236709610342674
+ 1.1237352092389616
+ 1.1237994635918576
+ 1.1238637240937881
+ 1.1239279907455906
+ 1.1239922635480943
+ 1.1240565425021365
+ 1.124120827608551
+ 1.1241851188681724
+ 1.1242494162818364
+ 1.1243137198503792
+ 1.1243780295746315
+ 1.124442345455436
+ 1.1245066674936224
+ 1.1245709956900261
+ 1.1246353300454881
+ 1.1246996705608381
+ 1.1247640172369173
+ 1.1248283700745618
+ 1.124892729074604
+ 1.1249570942378826
+ 1.1250214655652346
+ 1.1250858430574953
+ 1.1251502267155038
+ 1.1252146165400967
+ 1.1252790125321128
+ 1.1253434146923862
+ 1.1254078230217566
+ 1.1254722375210604
+ 1.1255366581911375
+ 1.1256010850328222
+ 1.125665518046957
+ 1.1257299572343764
+ 1.1257944025959232
+ 1.1258588541324321
+ 1.1259233118447436
+ 1.1259877757336978
+ 1.1260522458001327
+ 1.1261167220448836
+ 1.1261812044687967
+ 1.1262456930727094
+ 1.1263101878574555
+ 1.1263746888238835
+ 1.126439195972827
+ 1.1265037093051296
+ 1.1265682288216299
+ 1.1266327545231694
+ 1.1266972864105875
+ 1.1267618244847253
+ 1.1268263687464226
+ 1.1268909191965235
+ 1.1269554758358646
+ 1.1270200386652911
+ 1.1270846076856424
+ 1.1271491828977611
+ 1.1272137643024864
+ 1.1272783519006642
+ 1.1273429456931314
+ 1.1274075456807364
+ 1.1274721518643169
+ 1.1275367642447185
+ 1.1276013828227813
+ 1.1276660075993465
+ 1.1277306385752626
+ 1.1277952757513647
+ 1.1278599191285048
+ 1.1279245687075186
+ 1.1279892244892549
+ 1.1280538864745551
+ 1.1281185546642658
+ 1.128183229059224
+ 1.1282479096602807
+ 1.1283125964682783
+ 1.1283772894840582
+ 1.1284419887084685
+ 1.1285066941423503
+ 1.1285714057865539
+ 1.1286361236419193
+ 1.1287008477092939
+ 1.1287655779895229
+ 1.1288303144834517
+ 1.1288950571919225
+ 1.1289598061157871
+ 1.1290245612558849
+ 1.1290893226130696
+ 1.1291540901881796
+ 1.1292188639820653
+ 1.1292836439955711
+ 1.1293484302295476
+ 1.1294132226848361
+ 1.1294780213622859
+ 1.1295428262627458
+ 1.1296076373870623
+ 1.1296724547360824
+ 1.1297372783106527
+ 1.1298021081116205
+ 1.1298669441398348
+ 1.1299317863961409
+ 1.1299966348813908
+ 1.1300614895964318
+ 1.1301263505421122
+ 1.1301912177192788
+ 1.1302560911287822
+ 1.1303209707714679
+ 1.1303858566481912
+ 1.1304507487597952
+ 1.1305156471071309
+ 1.1305805516910492
+ 1.1306454625124005
+ 1.1307103795720286
+ 1.1307753028707901
+ 1.1308402324095335
+ 1.1309051681891047
+ 1.1309701102103615
+ 1.1310350584741466
+ 1.1311000129813154
+ 1.1311649737327194
+ 1.1312299407292055
+ 1.1312949139716282
+ 1.1313598934608347
+ 1.1314248791976802
+ 1.131489871183017
+ 1.1315548694176949
+ 1.1316198739025618
+ 1.1316848846384779
+ 1.1317499016262891
+ 1.1318149248668501
+ 1.1318799543610123
+ 1.1319449901096283
+ 1.1320100321135518
+ 1.1320750803736361
+ 1.1321401348907327
+ 1.1322051956656953
+ 1.1322702626993795
+ 1.1323353359926325
+ 1.1324004155463154
+ 1.1324655013612779
+ 1.1325305934383738
+ 1.1325956917784576
+ 1.1326607963823867
+ 1.1327259072510099
+ 1.1327910243851853
+ 1.1328561477857675
+ 1.1329212774536088
+ 1.1329864133895666
+ 1.1330515555944969
+ 1.1331167040692545
+ 1.1331818588146922
+ 1.133247019831666
+ 1.1333121871210337
+ 1.1333773606836537
+ 1.1334425405203743
+ 1.1335077266320568
+ 1.1335729190195598
+ 1.133638117683734
+ 1.1337033226254418
+ 1.1337685338455339
+ 1.1338337513448717
+ 1.1338989751243127
+ 1.1339642051847107
+ 1.1340294415269254
+ 1.1340946841518109
+ 1.1341599330602326
+ 1.1342251882530399
+ 1.1342904497310948
+ 1.1343557174952581
+ 1.1344209915463821
+ 1.1344862718853295
+ 1.1345515585129582
+ 1.1346168514301236
+ 1.1346821506376892
+ 1.1347474561365125
+ 1.1348127679274556
+ 1.1348780860113703
+ 1.1349434103891212
+ 1.1350087410615697
+ 1.1350740780295709
+ 1.1351394212939878
+ 1.1352047708556809
+ 1.1352701267155068
+ 1.135335488874333
+ 1.1354008573330108
+ 1.1354662320924096
+ 1.1355316131533846
+ 1.1355970005167975
+ 1.1356623941835133
+ 1.1357277941543873
+ 1.1357932004302893
+ 1.135858613012072
+ 1.1359240319006028
+ 1.1359894570967406
+ 1.13605488860135
+ 1.1361203264152924
+ 1.1361857705394278
+ 1.1362512209746229
+ 1.1363166777217382
+ 1.1363821407816377
+ 1.1364476101551824
+ 1.136513085843236
+ 1.1365785678466629
+ 1.1366440561663269
+ 1.1367095508030902
+ 1.1367750517578188
+ 1.1368405590313699
+ 1.1369060726246165
+ 1.1369715925384194
+ 1.1370371187736419
+ 1.1371026513311484
+ 1.137168190211804
+ 1.1372337354164745
+ 1.1372992869460241
+ 1.1373648448013192
+ 1.1374304089832217
+ 1.1374959794926036
+ 1.1375615563303214
+ 1.1376271394972479
+ 1.1376927289942478
+ 1.137758324822185
+ 1.1378239269819279
+ 1.137889535474341
+ 1.13795515030029
+ 1.1380207714606447
+ 1.1380863989562715
+ 1.138152032788037
+ 1.1382176729568059
+ 1.1382833194634472
+ 1.1383489723088287
+ 1.1384146314938199
+ 1.1384802970192827
+ 1.1385459688860904
+ 1.138611647095108
+ 1.1386773316472076
+ 1.1387430225432527
+ 1.1388087197841161
+ 1.1388744233706629
+ 1.1389401333037648
+ 1.1390058495842892
+ 1.1390715722131051
+ 1.1391373011910808
+ 1.1392030365190899
+ 1.1392687781979967
+ 1.1393345262286769
+ 1.1394002806119925
+ 1.1394660413488225
+ 1.1395318084400288
+ 1.1395975818864856
+ 1.1396633616890675
+ 1.1397291478486369
+ 1.1397949403660705
+ 1.139860739242236
+ 1.1399265444780082
+ 1.1399923560742546
+ 1.1400581740318483
+ 1.1401239983516622
+ 1.1401898290345662
+ 1.1402556660814311
+ 1.1403215094931332
+ 1.140387359270542
+ 1.1404532154145268
+ 1.1405190779259637
+ 1.140584946805729
+ 1.1406508220546885
+ 1.1407167036737185
+ 1.1407825916636907
+ 1.1408484860254822
+ 1.1409143867599589
+ 1.1409802938680031
+ 1.1410462073504848
+ 1.1411121272082752
+ 1.1411780534422524
+ 1.1412439860532879
+ 1.1413099250422596
+ 1.1413758704100379
+ 1.1414418221575
+ 1.1415077802855189
+ 1.1415737447949721
+ 1.1416397156867335
+ 1.1417056929616756
+ 1.14177167662068
+ 1.1418376666646166
+ 1.1419036630943644
+ 1.1419696659107972
+ 1.1420356751147935
+ 1.1421016907072277
+ 1.1421677126889755
+ 1.1422337410609169
+ 1.1422997758239255
+ 1.142365816978878
+ 1.1424318645266522
+ 1.1424979184681272
+ 1.1425639788041781
+ 1.1426300455356815
+ 1.1426961186635156
+ 1.1427621981885625
+ 1.1428282841116955
+ 1.1428943764337915
+ 1.1429604751557321
+ 1.1430265802783943
+ 1.1430926918026596
+ 1.1431588097294032
+ 1.143224934059504
+ 1.1432910647938421
+ 1.1433572019332952
+ 1.1434233454787457
+ 1.1434894954310708
+ 1.1435556517911518
+ 1.1436218145598649
+ 1.1436879837380949
+ 1.1437541593267186
+ 1.1438203413266157
+ 1.1438865297386704
+ 1.1439527245637597
+ 1.1440189258027669
+ 1.1440851334565738
+ 1.1441513475260554
+ 1.1442175680121001
+ 1.1442837949155822
+ 1.1443500282373904
+ 1.1444162679784027
+ 1.1444825141394996
+ 1.1445487667215672
+ 1.1446150257254837
+ 1.1446812911521327
+ 1.144747563002398
+ 1.1448138412771609
+ 1.1448801259773049
+ 1.144946417103712
+ 1.1450127146572664
+ 1.1450790186388495
+ 1.1451453290493461
+ 1.1452116458896402
+ 1.1452779691606148
+ 1.1453442988631535
+ 1.1454106349981421
+ 1.1454769775664606
+ 1.1455433265689985
+ 1.145609682006639
+ 1.145676043880262
+ 1.1457424121907587
+ 1.1458087869390119
+ 1.1458751681259045
+ 1.1459415557523227
+ 1.1460079498191549
+ 1.146074350327285
+ 1.1461407572775955
+ 1.1462071706709793
+ 1.1462735905083148
+ 1.1463400167904927
+ 1.1464064495183983
+ 1.1464728886929181
+ 1.1465393343149415
+ 1.1466057863853505
+ 1.1466722449050346
+ 1.1467387098748811
+ 1.1468051812957756
+ 1.1468716591686101
+ 1.1469381434942671
+ 1.1470046342736371
+ 1.1470711315076079
+ 1.1471376351970652
+ 1.1472041453429023
+ 1.1472706619460047
+ 1.1473371850072578
+ 1.147403714527556
+ 1.1474702505077825
+ 1.1475367929488334
+ 1.147603341851593
+ 1.1476698972169526
+ 1.147736459045799
+ 1.147803027339023
+ 1.1478696020975176
+ 1.1479361833221722
+ 1.1480027710138705
+ 1.1480693651735103
+ 1.1481359658019792
+ 1.1482025729001695
+ 1.1482691864689685
+ 1.1483358065092715
+ 1.1484024330219664
+ 1.148469066007944
+ 1.1485357054680967
+ 1.1486023514033179
+ 1.1486690038144989
+ 1.1487356627025302
+ 1.1488023280683057
+ 1.1488689999127137
+ 1.1489356782366504
+ 1.1490023630410078
+ 1.1490690543266768
+ 1.1491357520945518
+ 1.1492024563455279
+ 1.1492691670804931
+ 1.1493358843003454
+ 1.1494026080059743
+ 1.1494693381982795
+ 1.1495360748781482
+ 1.1496028180464755
+ 1.1496695677041595
+ 1.1497363238520952
+ 1.1498030864911701
+ 1.1498698556222826
+ 1.1499366312463284
+ 1.1500034133642034
+ 1.1500702019768003
+ 1.150136997085013
+ 1.1502037986897404
+ 1.150270606791876
+ 1.1503374213923188
+ 1.1504042424919598
+ 1.1504710700916989
+ 1.1505379041924269
+ 1.1506047447950492
+ 1.1506715919004546
+ 1.1507384455095429
+ 1.150805305623209
+ 1.1508721722423523
+ 1.1509390453678705
+ 1.1510059250006561
+ 1.1510728111416124
+ 1.1511397037916342
+ 1.1512066029516197
+ 1.1512735086224668
+ 1.151340420805071
+ 1.1514073395003388
+ 1.151474264709158
+ 1.1515411964324354
+ 1.1516081346710663
+ 1.1516750794259476
+ 1.1517420306979858
+ 1.1518089884880722
+ 1.1518759527971087
+ 1.1519429236259944
+ 1.1520099009756315
+ 1.1520768848469196
+ 1.1521438752407556
+ 1.1522108721580415
+ 1.1522778755996785
+ 1.1523448855665681
+ 1.152411902059608
+ 1.152478925079699
+ 1.1525459546277463
+ 1.1526129907046476
+ 1.1526800333113041
+ 1.1527470824486163
+ 1.1528141381174908
+ 1.1528812003188249
+ 1.1529482690535235
+ 1.1530153443224846
+ 1.1530824261266146
+ 1.153149514466816
+ 1.1532166093439866
+ 1.1532837107590344
+ 1.1533508187128607
+ 1.153417933206367
+ 1.1534850542404593
+ 1.1535521818160417
+ 1.1536193159340113
+ 1.1536864565952785
+ 1.1537536038007459
+ 1.153820757551316
+ 1.153887917847892
+ 1.1539550846913822
+ 1.1540222580826895
+ 1.1540894380227171
+ 1.1541566245123707
+ 1.1542238175525543
+ 1.154291017144176
+ 1.1543582232881375
+ 1.1544254359853476
+ 1.1544926552367103
+ 1.154559881043135
+ 1.1546271134055204
+ 1.154694352324779
+ 1.154761597801812
+ 1.1548288498375328
+ 1.1548961084328426
+ 1.1549633735886491
+ 1.1550306453058596
+ 1.1550979235853824
+ 1.1551652084281248
+ 1.1552324998349923
+ 1.1552997978068928
+ 1.1553671023447374
+ 1.1554344134494312
+ 1.1555017311218803
+ 1.1555690553629958
+ 1.1556363861736862
+ 1.1557037235548633
+ 1.1557710675074278
+ 1.1558384180322938
+ 1.1559057751303712
+ 1.155973138802566
+ 1.1560405090497901
+ 1.1561078858729534
+ 1.1561752692729628
+ 1.1562426592507309
+ 1.1563100558071642
+ 1.1563774589431786
+ 1.1564448686596818
+ 1.1565122849575806
+ 1.1565797078377913
+ 1.1566471373012217
+ 1.1567145733487847
+ 1.1567820159813889
+ 1.1568494651999501
+ 1.156916921005374
+ 1.1569843833985771
+ 1.1570518523804678
+ 1.1571193279519605
+ 1.1571868101139664
+ 1.1572542988673997
+ 1.1573217942131695
+ 1.1573892961521881
+ 1.1574568046853746
+ 1.1575243198136362
+ 1.1575918415378881
+ 1.1576593698590423
+ 1.1577269047780139
+ 1.1577944462957153
+ 1.1578619944130626
+ 1.1579295491309651
+ 1.1579971104503441
+ 1.1580646783721049
+ 1.1581322528971683
+ 1.1581998340264477
+ 1.1582674217608595
+ 1.1583350161013144
+ 1.1584026170487312
+ 1.1584702246040244
+ 1.1585378387681071
+ 1.1586054595418966
+ 1.1586730869263093
+ 1.1587407209222624
+ 1.1588083615306684
+ 1.1588760087524459
+ 1.1589436625885101
+ 1.1590113230397787
+ 1.1590789901071692
+ 1.1591466637915964
+ 1.1592143440939786
+ 1.1592820310152332
+ 1.1593497245562758
+ 1.1594174247180278
+ 1.1594851315014014
+ 1.1595528449073211
+ 1.1596205649366995
+ 1.1596882915904587
+ 1.1597560248695113
+ 1.1598237647747827
+ 1.1598915113071881
+ 1.1599592644676473
+ 1.1600270242570798
+ 1.1600947906764052
+ 1.1601625637265396
+ 1.1602303434084063
+ 1.1602981297229218
+ 1.1603659226710086
+ 1.1604337222535874
+ 1.1605015284715752
+ 1.1605693413258955
+ 1.1606371608174657
+ 1.1607049869472092
+ 1.1607728197160438
+ 1.1608406591248959
+ 1.160908505174681
+ 1.1609763578663255
+ 1.1610442172007454
+ 1.1611120831788668
+ 1.1611799558016096
+ 1.1612478350698967
+ 1.1613157209846481
+ 1.1613836135467901
+ 1.1614515127572431
+ 1.1615194186169282
+ 1.1615873311267706
+ 1.1616552502876929
+ 1.1617231761006173
+ 1.1617911085664685
+ 1.1618590476861674
+ 1.1619269934606415
+ 1.1619949458908141
+ 1.1620629049776054
+ 1.1621308707219415
+ 1.1621988431247483
+ 1.1622668221869488
+ 1.1623348079094671
+ 1.1624028002932321
+ 1.1624707993391623
+ 1.1625388050481895
+ 1.1626068174212323
+ 1.1626748364592232
+ 1.1627428621630838
+ 1.1628108945337383
+ 1.162878933572117
+ 1.1629469792791445
+ 1.1630150316557453
+ 1.1630830907028469
+ 1.1631511564213775
+ 1.1632192288122625
+ 1.163287307876429
+ 1.1633553936148031
+ 1.1634234860283181
+ 1.163491585117892
+ 1.1635596908844581
+ 1.1636278033289431
+ 1.1636959224522778
+ 1.1637640482553857
+ 1.1638321807391965
+ 1.1639003199046412
+ 1.1639684657526463
+ 1.1640366182841422
+ 1.1641047775000544
+ 1.1641729434013135
+ 1.1642411159888513
+ 1.1643092952635983
+ 1.1643774812264787
+ 1.1644456738784255
+ 1.1645138732203684
+ 1.1645820792532386
+ 1.1646502919779662
+ 1.1647185113954788
+ 1.1647867375067105
+ 1.1648549703125894
+ 1.1649232098140487
+ 1.1649914560120198
+ 1.1650597089074315
+ 1.1651279685012175
+ 1.1651962347943094
+ 1.1652645077876393
+ 1.1653327874821353
+ 1.1654010738787328
+ 1.1654693669783662
+ 1.1655376667819652
+ 1.1656059732904618
+ 1.1656742865047911
+ 1.1657426064258853
+ 1.165810933054678
+ 1.1658792663921014
+ 1.1659476064390879
+ 1.1660159531965739
+ 1.1660843066654925
+ 1.1661526668467763
+ 1.1662210337413621
+ 1.1662894073501808
+ 1.1663577876741711
+ 1.1664261747142639
+ 1.1664945684713963
+ 1.166562968946502
+ 1.1666313761405152
+ 1.1666997900543759
+ 1.1667682106890152
+ 1.1668366380453707
+ 1.1669050721243772
+ 1.1669735129269692
+ 1.1670419604540874
+ 1.1671104147066664
+ 1.1671788756856414
+ 1.1672473433919479
+ 1.1673158178265266
+ 1.1673842989903105
+ 1.1674527868842408
+ 1.1675212815092531
+ 1.1675897828662829
+ 1.1676582909562725
+ 1.1677268057801549
+ 1.1677953273388717
+ 1.1678638556333594
+ 1.1679323906645547
+ 1.1680009324334024
+ 1.1680694809408343
+ 1.1681380361877918
+ 1.1682065981752154
+ 1.1682751669040421
+ 1.1683437423752121
+ 1.1684123245896678
+ 1.1684809135483416
+ 1.1685495092521823
+ 1.1686181117021244
+ 1.1686867208991119
+ 1.1687553368440802
+ 1.168823959537975
+ 1.1688925889817323
+ 1.1689612251762964
+ 1.1690298681226077
+ 1.1690985178216058
+ 1.169167174274234
+ 1.1692358374814349
+ 1.1693045074441473
+ 1.1693731841633159
+ 1.1694418676398797
+ 1.169510557874784
+ 1.1695792548689707
+ 1.1696479586233828
+ 1.1697166691389598
+ 1.1697853864166472
+ 1.1698541104573903
+ 1.169922841262127
+ 1.1699915788318056
+ 1.1700603231673641
+ 1.1701290742697541
+ 1.1701978321399156
+ 1.1702665967787929
+ 1.1703353681873294
+ 1.1704041463664718
+ 1.1704729313171616
+ 1.1705417230403448
+ 1.1706105215369667
+ 1.1706793268079734
+ 1.1707481388543104
+ 1.1708169576769214
+ 1.1708857832767545
+ 1.1709546156547541
+ 1.1710234548118654
+ 1.1710923007490335
+ 1.1711611534672119
+ 1.1712300129673379
+ 1.1712988792503651
+ 1.1713677523172337
+ 1.1714366321688969
+ 1.1715055188062995
+ 1.1715744122303886
+ 1.1716433124421139
+ 1.1717122194424192
+ 1.1717811332322559
+ 1.1718500538125702
+ 1.1719189811843096
+ 1.1719879153484258
+ 1.1720568563058658
+ 1.1721258040575766
+ 1.1721947586045085
+ 1.1722637199476111
+ 1.1723326880878344
+ 1.1724016630261238
+ 1.172470644763435
+ 1.172539633300713
+ 1.1726086286389081
+ 1.1726776307789746
+ 1.1727466397218573
+ 1.1728156554685076
+ 1.1728846780198823
+ 1.1729537073769238
+ 1.1730227435405869
+ 1.173091786511826
+ 1.1731608362915871
+ 1.1732298928808247
+ 1.1732989562804881
+ 1.1733680264915325
+ 1.1734371035149067
+ 1.1735061873515633
+ 1.1735752780024578
+ 1.1736443754685397
+ 1.173713479750762
+ 1.1737825908500774
+ 1.1738517087674416
+ 1.1739208335038052
+ 1.173989965060124
+ 1.1740591034373458
+ 1.1741282486364302
+ 1.1741974006583302
+ 1.1742665595039967
+ 1.1743357251743898
+ 1.1744048976704575
+ 1.1744740769931565
+ 1.1745432631434447
+ 1.1746124561222728
+ 1.1746816559306015
+ 1.174750862569377
+ 1.1748200760395622
+ 1.1748892963421123
+ 1.1749585234779791
+ 1.1750277574481214
+ 1.1750969982534938
+ 1.1751662458950547
+ 1.1752355003737625
+ 1.175304761690567
+ 1.1753740298464301
+ 1.1754433048423076
+ 1.1755125866791558
+ 1.1755818753579355
+ 1.1756511708795985
+ 1.1757204732451094
+ 1.1757897824554189
+ 1.1758590985114923
+ 1.1759284214142809
+ 1.175997751164747
+ 1.1760670877638482
+ 1.1761364312125466
+ 1.176205781511795
+ 1.1762751386625556
+ 1.1763445026657888
+ 1.1764138735224505
+ 1.1764832512335059
+ 1.1765526357999108
+ 1.1766220272226227
+ 1.1766914255026093
+ 1.1767608306408255
+ 1.1768302426382298
+ 1.1768996614957896
+ 1.1769690872144605
+ 1.1770385197952016
+ 1.177107959238983
+ 1.1771774055467588
+ 1.1772468587194902
+ 1.1773163187581406
+ 1.1773857856636738
+ 1.1774552594370506
+ 1.177524740079233
+ 1.1775942275911842
+ 1.1776637219738637
+ 1.1777332232282374
+ 1.1778027313552664
+ 1.1778722463559157
+ 1.1779417682311468
+ 1.1780112969819228
+ 1.1780808326092096
+ 1.1781503751139697
+ 1.1782199244971683
+ 1.1782894807597646
+ 1.1783590439027281
+ 1.1784286139270228
+ 1.1784981908336116
+ 1.1785677746234602
+ 1.1786373652975344
+ 1.1787069628567961
+ 1.1787765673022128
+ 1.1788461786347524
+ 1.1789157968553772
+ 1.1789854219650557
+ 1.1790550539647504
+ 1.1791246928554322
+ 1.1791943386380643
+ 1.1792639913136131
+ 1.1793336508830465
+ 1.1794033173473313
+ 1.1794729907074359
+ 1.1795426709643244
+ 1.1796123581189659
+ 1.1796820521723272
+ 1.1797517531253805
+ 1.1798214609790874
+ 1.1798911757344202
+ 1.1799608973923461
+ 1.1800306259538327
+ 1.18010036141985
+ 1.1801701037913683
+ 1.1802398530693528
+ 1.1803096092547736
+ 1.1803793723486022
+ 1.1804491423518086
+ 1.1805189192653591
+ 1.1805887030902267
+ 1.1806584938273783
+ 1.1807282914777868
+ 1.1807980960424245
+ 1.1808679075222575
+ 1.1809377259182601
+ 1.1810075512314013
+ 1.1810773834626511
+ 1.1811472226129838
+ 1.1812170686833692
+ 1.1812869216747823
+ 1.1813567815881876
+ 1.1814266484245632
+ 1.1814965221848794
+ 1.1815664028701118
+ 1.1816362904812252
+ 1.181706185019201
+ 1.1817760864850047
+ 1.1818459948796149
+ 1.1819159102040027
+ 1.1819858324591415
+ 1.1820557616460057
+ 1.1821256977655692
+ 1.1821956408188032
+ 1.1822655908066875
+ 1.1823355477301885
+ 1.1824055115902863
+ 1.1824754823879553
+ 1.1825454601241705
+ 1.1826154447999044
+ 1.1826854364161343
+ 1.182755434973833
+ 1.1828254404739782
+ 1.1828954529175486
+ 1.1829654723055141
+ 1.1830354986388534
+ 1.1831055319185446
+ 1.1831755721455619
+ 1.1832456193208805
+ 1.1833156734454831
+ 1.18338573452034
+ 1.1834558025464332
+ 1.1835258775247339
+ 1.1835959594562275
+ 1.1836660483418882
+ 1.1837361441826901
+ 1.1838062469796182
+ 1.1838763567336457
+ 1.1839464734457543
+ 1.1840165971169165
+ 1.1840867277481186
+ 1.1841568653403354
+ 1.1842270098945478
+ 1.1842971614117341
+ 1.1843673198928724
+ 1.1844374853389461
+ 1.1845076577509317
+ 1.1845778371298081
+ 1.1846480234765591
+ 1.1847182167921635
+ 1.1847884170776009
+ 1.1848586243338555
+ 1.1849288385619043
+ 1.1849990597627296
+ 1.1850692879373133
+ 1.1851395230866355
+ 1.1852097652116789
+ 1.1852800143134232
+ 1.1853502703928545
+ 1.1854205334509522
+ 1.1854908034887006
+ 1.1855610805070769
+ 1.18563136450707
+ 1.1857016554896584
+ 1.185771953455828
+ 1.1858422584065602
+ 1.1859125703428417
+ 1.1859828892656512
+ 1.1860532151759728
+ 1.1861235480747958
+ 1.1861938879631004
+ 1.1862642348418682
+ 1.1863345887120911
+ 1.1864049495747473
+ 1.1864753174308238
+ 1.1865456922813058
+ 1.1866160741271783
+ 1.1866864629694274
+ 1.186756858809036
+ 1.1868272616469919
+ 1.1868976714842816
+ 1.1869680883218905
+ 1.1870385121608051
+ 1.187108943002009
+ 1.1871793808464937
+ 1.1872498256952431
+ 1.1873202775492415
+ 1.1873907364094838
+ 1.1874612022769508
+ 1.1875316751526304
+ 1.187602155037512
+ 1.1876726419325858
+ 1.1877431358388342
+ 1.18781363675725
+ 1.1878841446888209
+ 1.1879546596345347
+ 1.1880251815953793
+ 1.1880957105723433
+ 1.1881662465664173
+ 1.188236789578593
+ 1.1883073396098556
+ 1.1883778966611969
+ 1.1884484607336026
+ 1.1885190318280701
+ 1.1885896099455862
+ 1.188660195087142
+ 1.1887307872537223
+ 1.1888013864463272
+ 1.1888719926659406
+ 1.1889426059135577
+ 1.1890132261901663
+ 1.1890838534967612
+ 1.1891544878343301
+ 1.1892251292038691
+ 1.1892957776063686
+ 1.1893664330428215
+ 1.1894370955142188
+ 1.1895077650215518
+ 1.1895784415658159
+ 1.189649125148003
+ 1.1897198157691071
+ 1.1897905134301221
+ 1.1898612181320367
+ 1.1899319298758488
+ 1.1900026486625519
+ 1.1900733744931413
+ 1.1901441073686065
+ 1.1902148472899445
+ 1.1902855942581514
+ 1.1903563482742214
+ 1.1904271093391479
+ 1.1904978774539257
+ 1.1905686526195509
+ 1.1906394348370193
+ 1.1907102241073269
+ 1.1907810204314695
+ 1.1908518238104406
+ 1.1909226342452393
+ 1.1909934517368623
+ 1.1910642762863028
+ 1.1911351078945607
+ 1.1912059465626303
+ 1.1912767922915113
+ 1.1913476450822005
+ 1.1914185049356953
+ 1.1914893718529906
+ 1.1915602458350867
+ 1.1916311268829836
+ 1.191702014997674
+ 1.1917729101801611
+ 1.1918438124314408
+ 1.1919147217525135
+ 1.1919856381443779
+ 1.1920565616080321
+ 1.1921274921444753
+ 1.1921984297547061
+ 1.1922693744397264
+ 1.192340326200537
+ 1.1924112850381356
+ 1.1924822509535233
+ 1.1925532239476975
+ 1.1926242040216628
+ 1.1926951911764194
+ 1.1927661854129643
+ 1.1928371867323055
+ 1.1929081951354379
+ 1.1929792106233648
+ 1.1930502331970887
+ 1.1931212628576131
+ 1.1931922996059368
+ 1.1932633434430622
+ 1.1933343943699937
+ 1.1934054523877322
+ 1.1934765174972821
+ 1.1935475896996468
+ 1.1936186689958257
+ 1.1936897553868255
+ 1.1937608488736486
+ 1.1938319494572964
+ 1.1939030571387768
+ 1.1939741719190917
+ 1.1940452937992465
+ 1.1941164227802439
+ 1.1941875588630915
+ 1.1942587020487894
+ 1.1943298523383463
+ 1.1944010097327622
+ 1.1944721742330513
+ 1.1945433458402119
+ 1.1946145245552526
+ 1.1946857103791768
+ 1.1947569033129939
+ 1.1948281033577077
+ 1.1948993105143255
+ 1.194970524783856
+ 1.1950417461673015
+ 1.1951129746656717
+ 1.1951842102799737
+ 1.1952554530112123
+ 1.1953267028603984
+ 1.1953979598285387
+ 1.195469223916642
+ 1.1955404951257129
+ 1.1956117734567655
+ 1.1956830589108021
+ 1.1957543514888342
+ 1.1958256511918708
+ 1.1958969580209224
+ 1.1959682719769931
+ 1.1960395930610968
+ 1.1961109212742405
+ 1.196182256617438
+ 1.196253599091694
+ 1.196324948698021
+ 1.1963963054374303
+ 1.1964676693109302
+ 1.1965390403195324
+ 1.1966104184642476
+ 1.1966818037460885
+ 1.1967531961660658
+ 1.1968245957251868
+ 1.1968960024244677
+ 1.1969674162649195
+ 1.1970388372475531
+ 1.1971102653733823
+ 1.1971817006434153
+ 1.1972531430586693
+ 1.1973245926201528
+ 1.1973960493288829
+ 1.1974675131858714
+ 1.1975389841921302
+ 1.1976104623486719
+ 1.1976819476565128
+ 1.1977534401166665
+ 1.1978249397301448
+ 1.1978964464979636
+ 1.1979679604211375
+ 1.1980394815006803
+ 1.1981110097376071
+ 1.1981825451329313
+ 1.1982540876876715
+ 1.1983256374028359
+ 1.1983971942794489
+ 1.1984687583185218
+ 1.1985403295210681
+ 1.1986119078881099
+ 1.1986834934206563
+ 1.198755086119732
+ 1.1988266859863466
+ 1.1988982930215168
+ 1.1989699072262656
+ 1.1990415286016052
+ 1.1991131571485536
+ 1.199184792868131
+ 1.1992564357613502
+ 1.1993280858292346
+ 1.1993997430728001
+ 1.1994714074930644
+ 1.199543079091044
+ 1.1996147578677625
+ 1.1996864438242338
+ 1.1997581369614796
+ 1.1998298372805185
+ 1.1999015447823727
+ 1.1999732594680563
+ 1.2000449813385918
+ 1.2001167103950012
+ 1.200188446638299
+ 1.2002601900695136
+ 1.2003319406896564
+ 1.2004036984997566
+ 1.2004754635008308
+ 1.2005472356938975
+ 1.2006190150799858
+ 1.2006908016601103
+ 1.2007625954352925
+ 1.2008343964065586
+ 1.2009062045749277
+ 1.2009780199414257
+ 1.201049842507067
+ 1.2011216722728837
+ 1.2011935092398915
+ 1.201265353409116
+ 1.2013372047815818
+ 1.201409063358311
+ 1.201480929140323
+ 1.2015528021286486
+ 1.2016246823243053
+ 1.2016965697283242
+ 1.201768464341725
+ 1.2018403661655308
+ 1.2019122752007705
+ 1.2019841914484648
+ 1.2020561149096425
+ 1.2021280455853249
+ 1.2021999834765407
+ 1.202271928584314
+ 1.2023438809096714
+ 1.2024158404536349
+ 1.2024878072172367
+ 1.2025597812015012
+ 1.2026317624074532
+ 1.2027037508361202
+ 1.2027757464885276
+ 1.2028477493657048
+ 1.2029197594686805
+ 1.2029917767984797
+ 1.2030638013561286
+ 1.2031358331426576
+ 1.2032078721590953
+ 1.2032799184064678
+ 1.2033519718858039
+ 1.203424032598132
+ 1.203496100544482
+ 1.2035681757258854
+ 1.2036402581433634
+ 1.2037123477979532
+ 1.20378444469068
+ 1.2038565488225759
+ 1.2039286601946704
+ 1.2040007788079914
+ 1.2040729046635741
+ 1.2041450377624436
+ 1.2042171781056334
+ 1.2042893256941738
+ 1.2043614805290932
+ 1.2044336426114275
+ 1.2045058119422054
+ 1.2045779885224608
+ 1.2046501723532246
+ 1.2047223634355264
+ 1.2047945617704001
+ 1.20486676735888
+ 1.2049389802019956
+ 1.2050112003007791
+ 1.2050834276562676
+ 1.2051556622694943
+ 1.2052279041414855
+ 1.2053001532732794
+ 1.2053724096659124
+ 1.2054446733204163
+ 1.205516944237822
+ 1.2055892224191682
+ 1.2056615078654878
+ 1.205733800577812
+ 1.2058061005571798
+ 1.2058784078046281
+ 1.2059507223211874
+ 1.206023044107895
+ 1.2060953731657877
+ 1.2061677094958998
+ 1.2062400530992685
+ 1.2063124039769288
+ 1.2063847621299151
+ 1.2064571275592681
+ 1.2065295002660228
+ 1.2066018802512168
+ 1.2066742675158864
+ 1.2067466620610685
+ 1.2068190638878027
+ 1.2068914729971245
+ 1.2069638893900692
+ 1.2070363130676849
+ 1.2071087440309987
+ 1.2071811822810528
+ 1.2072536278188917
+ 1.2073260806455441
+ 1.2073985407620555
+ 1.2074710081694648
+ 1.2075434828688121
+ 1.2076159648611344
+ 1.2076884541474726
+ 1.207760950728866
+ 1.207833454606356
+ 1.2079059657809823
+ 1.207978484253786
+ 1.2080510100258048
+ 1.2081235430980861
+ 1.2081960834716672
+ 1.2082686311475872
+ 1.2083411861268933
+ 1.2084137484106212
+ 1.2084863179998175
+ 1.2085588948955197
+ 1.2086314790987778
+ 1.2087040706106251
+ 1.2087766694321096
+ 1.2088492755642741
+ 1.2089218890081608
+ 1.2089945097648127
+ 1.2090671378352722
+ 1.209139773220586
+ 1.2092124159217936
+ 1.2092850659399441
+ 1.2093577232760782
+ 1.209430387931242
+ 1.2095030599064798
+ 1.2095757392028352
+ 1.2096484258213549
+ 1.2097211197630831
+ 1.2097938210290666
+ 1.2098665296203479
+ 1.209939245537976
+ 1.2100119687829942
+ 1.210084699356452
+ 1.210157437259392
+ 1.2102301824928645
+ 1.2103029350579126
+ 1.2103756949555844
+ 1.2104484621869307
+ 1.2105212367529918
+ 1.2105940186548199
+ 1.210666807893463
+ 1.2107396044699674
+ 1.2108124083853826
+ 1.2108852196407549
+ 1.2109580382371361
+ 1.2110308641755678
+ 1.2111036974571081
+ 1.2111765380827983
+ 1.2112493860536941
+ 1.21132224137084
+ 1.2113951040352888
+ 1.2114679740480856
+ 1.2115408514102868
+ 1.2116137361229402
+ 1.2116866281870962
+ 1.2117595276038007
+ 1.2118324343741098
+ 1.2119053484990785
+ 1.2119782699797468
+ 1.212051198817174
+ 1.2121241350124126
+ 1.2121970785665086
+ 1.2122700294805169
+ 1.2123429877554923
+ 1.2124159533924816
+ 1.2124889263925429
+ 1.2125619067567233
+ 1.2126348944860807
+ 1.2127078895816659
+ 1.2127808920445342
+ 1.2128539018757363
+ 1.2129269190763248
+ 1.2129999436473597
+ 1.2130729755898917
+ 1.2131460149049713
+ 1.2132190615936584
+ 1.2132921156570071
+ 1.2133651770960712
+ 1.2134382459119026
+ 1.2135113221055609
+ 1.2135844056781016
+ 1.2136574966305762
+ 1.2137305949640476
+ 1.2138037006795637
+ 1.2138768137781841
+ 1.2139499342609703
+ 1.214023062128972
+ 1.2140961973832483
+ 1.214169340024857
+ 1.2142424900548519
+ 1.2143156474742969
+ 1.2143888122842457
+ 1.2144619844857552
+ 1.2145351640798838
+ 1.2146083510676919
+ 1.2146815454502358
+ 1.2147547472285756
+ 1.2148279564037709
+ 1.2149011729768766
+ 1.2149743969489524
+ 1.2150476283210621
+ 1.2151208670942628
+ 1.2151941132696154
+ 1.2152673668481782
+ 1.2153406278310117
+ 1.2154138962191772
+ 1.2154871720137306
+ 1.2155604552157413
+ 1.2156337458262627
+ 1.2157070438463593
+ 1.2157803492770927
+ 1.2158536621195251
+ 1.215926982374713
+ 1.2160003100437269
+ 1.2160736451276186
+ 1.2161469876274584
+ 1.216220337544309
+ 1.2162936948792287
+ 1.2163670596332792
+ 1.2164404318075301
+ 1.2165138114030385
+ 1.2165871984208745
+ 1.216660592862095
+ 1.2167339947277671
+ 1.2168074040189547
+ 1.2168808207367243
+ 1.2169542448821351
+ 1.2170276764562562
+ 1.2171011154601503
+ 1.2171745618948842
+ 1.2172480157615202
+ 1.217321477061128
+ 1.2173949457947684
+ 1.2174684219635141
+ 1.2175419055684225
+ 1.2176153966105676
+ 1.2176888950910116
+ 1.2177624010108214
+ 1.2178359143710646
+ 1.2179094351728084
+ 1.2179829634171209
+ 1.2180564991050662
+ 1.2181300422377168
+ 1.2182035928161363
+ 1.218277150841397
+ 1.2183507163145628
+ 1.2184242892367048
+ 1.2184978696088891
+ 1.2185714574321869
+ 1.2186450527076651
+ 1.2187186554363971
+ 1.2187922656194485
+ 1.21886588325789
+ 1.2189395083527899
+ 1.2190131409052214
+ 1.2190867809162533
+ 1.2191604283869577
+ 1.2192340833184001
+ 1.2193077457116552
+ 1.2193814155677918
+ 1.2194550928878878
+ 1.2195287776730042
+ 1.2196024699242214
+ 1.2196761696426042
+ 1.2197498768292327
+ 1.2198235914851692
+ 1.2198973136114948
+ 1.2199710432092794
+ 1.2200447802795944
+ 1.2201185248235122
+ 1.220192276842107
+ 1.2202660363364517
+ 1.2203398033076238
+ 1.2204135777566911
+ 1.2204873596847339
+ 1.2205611490928203
+ 1.2206349459820276
+ 1.2207087503534306
+ 1.2207825622081039
+ 1.2208563815471223
+ 1.2209302083715583
+ 1.2210040426824957
+ 1.2210778844810004
+ 1.2211517337681514
+ 1.2212255905450271
+ 1.2212994548127034
+ 1.2213733265722502
+ 1.2214472058247523
+ 1.2215210925712856
+ 1.2215949868129212
+ 1.2216688885507414
+ 1.221742797785822
+ 1.2218167145192407
+ 1.2218906387520772
+ 1.221964570485405
+ 1.2220385097203053
+ 1.2221124564578574
+ 1.2221864106991365
+ 1.2222603724452232
+ 1.2223343416972008
+ 1.2224083184561392
+ 1.2224823027231271
+ 1.2225562944992376
+ 1.2226302937855551
+ 1.2227043005831553
+ 1.2227783148931224
+ 1.2228523367165323
+ 1.22292636605447
+ 1.2230004029080148
+ 1.2230744472782458
+ 1.2231484991662454
+ 1.2232225585730963
+ 1.2232966254998783
+ 1.2233706999476766
+ 1.2234447819175687
+ 1.223518871410638
+ 1.2235929684279698
+ 1.2236670729706429
+ 1.2237411850397428
+ 1.2238153046363509
+ 1.2238894317615532
+ 1.223963566416429
+ 1.224037708602062
+ 1.2241118583195387
+ 1.2241860155699442
+ 1.2242601803543605
+ 1.224334352673869
+ 1.2244085325295604
+ 1.224482719922517
+ 1.2245569148538209
+ 1.2246311173245603
+ 1.2247053273358239
+ 1.2247795448886891
+ 1.2248537699842492
+ 1.224928002623588
+ 1.2250022428077891
+ 1.2250764905379408
+ 1.2251507458151296
+ 1.2252250086404426
+ 1.2252992790149693
+ 1.2253735569397928
+ 1.2254478424160014
+ 1.2255221354446839
+ 1.2255964360269289
+ 1.2256707441638226
+ 1.225745059856453
+ 1.2258193831059112
+ 1.2258937139132846
+ 1.2259680522796588
+ 1.2260423982061273
+ 1.2261167516937788
+ 1.2261911127437015
+ 1.2262654813569844
+ 1.226339857534716
+ 1.2264142412779941
+ 1.2264886325878994
+ 1.2265630314655291
+ 1.2266374379119678
+ 1.2267118519283124
+ 1.2267862735156512
+ 1.2268607026750786
+ 1.2269351394076795
+ 1.2270095837145498
+ 1.2270840355967829
+ 1.2271584950554657
+ 1.227232962091698
+ 1.2273074367065646
+ 1.2273819189011623
+ 1.2274564086765853
+ 1.2275309060339237
+ 1.2276054109742731
+ 1.2276799234987248
+ 1.2277544436083754
+ 1.2278289713043145
+ 1.2279035065876402
+ 1.2279780494594468
+ 1.2280525999208265
+ 1.2281271579728723
+ 1.2282017236166853
+ 1.2282762968533578
+ 1.2283508776839835
+ 1.2284254661096576
+ 1.2285000621314797
+ 1.228574665750545
+ 1.2286492769679453
+ 1.2287238957847819
+ 1.2287985222021494
+ 1.2288731562211415
+ 1.2289477978428633
+ 1.2290224470684039
+ 1.2290971038988634
+ 1.229171768335342
+ 1.2292464403789316
+ 1.2293211200307357
+ 1.2293958072918518
+ 1.2294705021633785
+ 1.2295452046464113
+ 1.2296199147420506
+ 1.2296946324513987
+ 1.2297693577755504
+ 1.2298440907156056
+ 1.2299188312726654
+ 1.2299935794478321
+ 1.2300683352422019
+ 1.2301430986568742
+ 1.230217869692952
+ 1.2302926483515373
+ 1.2303674346337299
+ 1.2304422285406278
+ 1.2305170300733357
+ 1.2305918392329549
+ 1.2306666560205857
+ 1.2307414804373289
+ 1.230816312484293
+ 1.2308911521625714
+ 1.2309659994732733
+ 1.2310408544174978
+ 1.2311157169963507
+ 1.2311905872109319
+ 1.2312654650623485
+ 1.2313403505516995
+ 1.2314152436800925
+ 1.2314901444486326
+ 1.2315650528584194
+ 1.2316399689105582
+ 1.2317148926061547
+ 1.231789823946317
+ 1.2318647629321458
+ 1.2319397095647464
+ 1.2320146638452252
+ 1.2320896257746889
+ 1.2321645953542433
+ 1.2322395725849924
+ 1.232314557468043
+ 1.2323895500045048
+ 1.2324645501954792
+ 1.2325395580420759
+ 1.2326145735454028
+ 1.2326895967065672
+ 1.2327646275266733
+ 1.2328396660068301
+ 1.2329147121481479
+ 1.2329897659517344
+ 1.2330648274186953
+ 1.2331398965501423
+ 1.2332149733471831
+ 1.233290057810922
+ 1.2333651499424754
+ 1.2334402497429497
+ 1.2335153572134516
+ 1.2335904723550961
+ 1.2336655951689899
+ 1.2337407256562452
+ 1.2338158638179693
+ 1.2338910096552744
+ 1.2339661631692693
+ 1.2340413243610713
+ 1.2341164932317854
+ 1.2341916697825259
+ 1.2342668540144028
+ 1.2343420459285301
+ 1.2344172455260158
+ 1.2344924528079777
+ 1.2345676677755233
+ 1.2346428904297702
+ 1.2347181207718243
+ 1.2347933588028064
+ 1.2348686045238253
+ 1.2349438579359959
+ 1.2350191190404309
+ 1.2350943878382428
+ 1.2351696643305521
+ 1.2352449485184638
+ 1.2353202404031021
+ 1.2353955399855765
+ 1.2354708472669982
+ 1.2355461622484922
+ 1.2356214849311655
+ 1.2356968153161352
+ 1.2357721534045241
+ 1.2358474991974369
+ 1.2359228526959964
+ 1.2359982139013204
+ 1.2360735828145228
+ 1.2361489594367214
+ 1.2362243437690312
+ 1.2362997358125725
+ 1.2363751355684607
+ 1.2364505430378134
+ 1.2365259582217498
+ 1.2366013811213874
+ 1.2366768117378457
+ 1.2367522500722399
+ 1.2368276961256919
+ 1.2369031498993206
+ 1.2369786113942431
+ 1.2370540806115806
+ 1.2371295575524508
+ 1.2372050422179757
+ 1.2372805346092726
+ 1.2373560347274639
+ 1.2374315425736702
+ 1.2375070581490089
+ 1.2375825814546058
+ 1.2376581124915762
+ 1.2377336512610466
+ 1.2378091977641377
+ 1.2378847520019678
+ 1.2379603139756612
+ 1.2380358836863421
+ 1.2381114611351265
+ 1.2381870463231417
+ 1.2382626392515097
+ 1.2383382399213525
+ 1.2384138483337948
+ 1.2384894644899593
+ 1.2385650883909685
+ 1.2386407200379452
+ 1.2387163594320176
+ 1.2387920065743063
+ 1.2388676614659371
+ 1.238943324108033
+ 1.2390189945017207
+ 1.2390946726481267
+ 1.2391703585483713
+ 1.2392460522035851
+ 1.2393217536148886
+ 1.239397462783415
+ 1.2394731797102829
+ 1.2395489043966199
+ 1.2396246368435586
+ 1.2397003770522192
+ 1.2397761250237285
+ 1.2398518807592185
+ 1.2399276442598135
+ 1.2400034155266428
+ 1.2400791945608318
+ 1.2401549813635084
+ 1.2402307759358029
+ 1.2403065782788456
+ 1.2403823883937584
+ 1.2404582062816758
+ 1.2405340319437268
+ 1.240609865381036
+ 1.2406857065947388
+ 1.240761555585959
+ 1.2408374123558301
+ 1.2409132769054823
+ 1.2409891492360461
+ 1.2410650293486483
+ 1.2411409172444239
+ 1.2412168129245027
+ 1.2412927163900165
+ 1.2413686276420957
+ 1.2414445466818698
+ 1.2415204735104755
+ 1.2415964081290387
+ 1.2416723505386971
+ 1.2417483007405827
+ 1.241824258735825
+ 1.2419002245255562
+ 1.2419761981109143
+ 1.2420521794930297
+ 1.2421281686730341
+ 1.2422041656520644
+ 1.2422801704312536
+ 1.2423561830117344
+ 1.2424322033946436
+ 1.242508231581114
+ 1.2425842675722809
+ 1.2426603113692793
+ 1.2427363629732449
+ 1.2428124223853108
+ 1.2428884896066148
+ 1.2429645646382943
+ 1.2430406474814808
+ 1.2431167381373149
+ 1.2431928366069323
+ 1.2432689428914674
+ 1.2433450569920592
+ 1.2434211789098426
+ 1.2434973086459562
+ 1.2435734462015418
+ 1.2436495915777295
+ 1.2437257447756611
+ 1.2438019057964762
+ 1.2438780746413134
+ 1.2439542513113073
+ 1.2440304358075971
+ 1.2441066281313282
+ 1.2441828282836325
+ 1.2442590362656525
+ 1.2443352520785289
+ 1.2444114757234015
+ 1.2444877072014089
+ 1.2445639465136911
+ 1.2446401936613896
+ 1.2447164486456452
+ 1.2447927114675996
+ 1.244868982128396
+ 1.2449452606291687
+ 1.2450215469710675
+ 1.2450978411552283
+ 1.2451741431827932
+ 1.2452504530549078
+ 1.2453267707727167
+ 1.2454030963373544
+ 1.2454794297499721
+ 1.2455557710117091
+ 1.2456321201237091
+ 1.2457084770871152
+ 1.2457848419030733
+ 1.2458612145727221
+ 1.2459375950972127
+ 1.2460139834776864
+ 1.2460903797152876
+ 1.2461667838111601
+ 1.2462431957664508
+ 1.2463196155823046
+ 1.2463960432598664
+ 1.246472478800283
+ 1.2465489222046975
+ 1.2466253734742629
+ 1.246701832610116
+ 1.2467782996134109
+ 1.2468547744852903
+ 1.2469312572269027
+ 1.2470077478393973
+ 1.2470842463239198
+ 1.2471607526816137
+ 1.2472372669136338
+ 1.2473137890211241
+ 1.2473903190052342
+ 1.2474668568671108
+ 1.2475434026079069
+ 1.2476199562287664
+ 1.247696517730843
+ 1.2477730871152837
+ 1.2478496643832364
+ 1.2479262495358545
+ 1.2480028425742868
+ 1.2480794434996836
+ 1.2481560523131932
+ 1.2482326690159673
+ 1.2483092936091604
+ 1.2483859260939181
+ 1.2484625664713951
+ 1.2485392147427437
+ 1.2486158709091133
+ 1.248692534971656
+ 1.2487692069315242
+ 1.2488458867898735
+ 1.2489225745478545
+ 1.2489992702066164
+ 1.2490759737673158
+ 1.2491526852311086
+ 1.2492294045991426
+ 1.2493061318725747
+ 1.249382867052558
+ 1.2494596101402498
+ 1.2495363611367984
+ 1.2496131200433636
+ 1.2496898868611002
+ 1.2497666615911571
+ 1.2498434442346948
+ 1.2499202347928706
+ 1.2499970332668346
+ 1.2500738396577473
+ 1.2501506539667646
+ 1.2502274761950383
+ 1.2503043063437282
+ 1.2503811444139923
+ 1.2504579904069846
+ 1.2505348443238631
+ 1.250611706165788
+ 1.2506885759339152
+ 1.2507654536294017
+ 1.2508423392534076
+ 1.2509192328070868
+ 1.2509961342916023
+ 1.2510730437081115
+ 1.2511499610577721
+ 1.2512268863417444
+ 1.251303819561189
+ 1.2513807607172647
+ 1.2514577098111288
+ 1.251534666843946
+ 1.2516116318168748
+ 1.2516886047310709
+ 1.2517655855877046
+ 1.2518425743879293
+ 1.251919571132907
+ 1.2519965758237996
+ 1.2520735884617704
+ 1.2521506090479808
+ 1.2522276375835886
+ 1.2523046740697619
+ 1.2523817185076644
+ 1.2524587708984527
+ 1.252535831243291
+ 1.2526128995433452
+ 1.2526899757997763
+ 1.2527670600137508
+ 1.2528441521864275
+ 1.2529212523189759
+ 1.2529983604125579
+ 1.2530754764683372
+ 1.2531526004874765
+ 1.2532297324711459
+ 1.2533068724205074
+ 1.2533840203367268
+ 1.2534611762209693
+ 1.2535383400743998
+ 1.2536155118981873
+ 1.253692691693495
+ 1.2537698794614915
+ 1.2538470752033424
+ 1.2539242789202121
+ 1.2540014906132728
+ 1.2540787102836874
+ 1.2541559379326264
+ 1.2542331735612566
+ 1.2543104171707451
+ 1.2543876687622617
+ 1.2544649283369718
+ 1.2545421958960485
+ 1.2546194714406567
+ 1.2546967549719665
+ 1.2547740464911501
+ 1.2548513459993726
+ 1.2549286534978077
+ 1.2550059689876218
+ 1.2550832924699866
+ 1.2551606239460731
+ 1.2552379634170514
+ 1.2553153108840933
+ 1.2553926663483683
+ 1.2554700298110486
+ 1.2555474012733043
+ 1.2556247807363081
+ 1.2557021682012337
+ 1.2557795636692533
+ 1.2558569671415349
+ 1.2559343786192549
+ 1.2560117981035868
+ 1.2560892255956992
+ 1.2561666610967679
+ 1.2562441046079682
+ 1.2563215561304741
+ 1.256399015665457
+ 1.2564764832140918
+ 1.2565539587775498
+ 1.2566314423570129
+ 1.2567089339536497
+ 1.2567864335686387
+ 1.2568639412031521
+ 1.256941456858369
+ 1.2570189805354648
+ 1.2570965122356101
+ 1.2571740519599892
+ 1.2572515997097706
+ 1.2573291554861357
+ 1.2574067192902618
+ 1.2574842911233255
+ 1.2575618709865009
+ 1.2576394588809676
+ 1.2577170548079009
+ 1.2577946587684861
+ 1.2578722707638927
+ 1.2579498907953044
+ 1.2580275188639016
+ 1.2581051549708542
+ 1.2581827991173524
+ 1.2582604513045652
+ 1.2583381115336802
+ 1.2584157798058735
+ 1.2584934561223242
+ 1.2585711404842166
+ 1.2586488328927252
+ 1.2587265333490347
+ 1.2588042418543246
+ 1.2588819584097783
+ 1.258959683016575
+ 1.2590374156758954
+ 1.2591151563889225
+ 1.25919290515684
+ 1.2592706619808252
+ 1.2593484268620647
+ 1.25942619980174
+ 1.2595039808010378
+ 1.2595817698611305
+ 1.259659566983214
+ 1.2597373721684646
+ 1.2598151854180675
+ 1.2598930067332061
+ 1.2599708361150641
+ 1.2600486735648286
+ 1.2601265190836857
+ 1.2602043726728143
+ 1.2602822343334039
+ 1.2603601040666401
+ 1.2604379818737057
+ 1.2605158677557875
+ 1.2605937617140719
+ 1.2606716637497475
+ 1.2607495738639933
+ 1.2608274920580049
+ 1.260905418332966
+ 1.2609833526900638
+ 1.2610612951304829
+ 1.2611392456554142
+ 1.2612172042660452
+ 1.2612951709635605
+ 1.2613731457491517
+ 1.2614511286240095
+ 1.2615291195893197
+ 1.2616071186462681
+ 1.2616851257960486
+ 1.2617631410398509
+ 1.2618411643788607
+ 1.2619191958142704
+ 1.2619972353472693
+ 1.26207528297905
+ 1.2621533387107993
+ 1.2622314025437102
+ 1.2623094744789727
+ 1.2623875545177825
+ 1.2624656426613217
+ 1.2625437389107925
+ 1.2626218432673804
+ 1.2626999557322749
+ 1.2627780763066747
+ 1.2628562049917724
+ 1.2629343417887575
+ 1.2630124866988219
+ 1.263090639723162
+ 1.2631688008629707
+ 1.2632469701194402
+ 1.263325147493765
+ 1.2634033329871408
+ 1.2634815266007604
+ 1.2635597283358195
+ 1.2636379381935108
+ 1.2637161561750336
+ 1.263794382281578
+ 1.2638726165143435
+ 1.2639508588745234
+ 1.2640291093633123
+ 1.2641073679819121
+ 1.2641856347315146
+ 1.264263909613319
+ 1.2643421926285183
+ 1.2644204837783148
+ 1.2644987830639012
+ 1.2645770904864777
+ 1.2646554060472426
+ 1.2647337297473913
+ 1.2648120615881251
+ 1.2648904015706397
+ 1.2649687496961339
+ 1.2650471059658119
+ 1.265125470380865
+ 1.2652038429424977
+ 1.2652822236519072
+ 1.265360612510295
+ 1.2654390095188612
+ 1.2655174146788062
+ 1.2655958279913271
+ 1.2656742494576296
+ 1.2657526790789118
+ 1.2658311168563767
+ 1.2659095627912227
+ 1.2659880168846538
+ 1.2660664791378731
+ 1.2661449495520798
+ 1.2662234281284781
+ 1.2663019148682695
+ 1.2663804097726592
+ 1.2664589128428461
+ 1.2665374240800378
+ 1.2666159434854343
+ 1.266694471060243
+ 1.2667730068056646
+ 1.2668515507229021
+ 1.2669301028131639
+ 1.2670086630776556
+ 1.2670872315175785
+ 1.2671658081341357
+ 1.2672443929285371
+ 1.2673229859019861
+ 1.2674015870556925
+ 1.2674801963908551
+ 1.2675588139086844
+ 1.2676374396103898
+ 1.2677160734971713
+ 1.2677947155702416
+ 1.2678733658308035
+ 1.2679520242800679
+ 1.2680306909192405
+ 1.2681093657495293
+ 1.2681880487721426
+ 1.2682667399882903
+ 1.268345439399178
+ 1.2684241470060178
+ 1.2685028628100159
+ 1.2685815868123826
+ 1.2686603190143266
+ 1.2687390594170587
+ 1.2688178080217911
+ 1.2688965648297286
+ 1.2689753298420847
+ 1.2690541030600695
+ 1.2691328844848966
+ 1.2692116741177717
+ 1.2692904719599112
+ 1.2693692780125234
+ 1.2694480922768201
+ 1.2695269147540154
+ 1.2696057454453216
+ 1.26968458435195
+ 1.2697634314751105
+ 1.2698422868160235
+ 1.2699211503758929
+ 1.27000002215594
+ 1.2700789021573751
+ 1.270157790381411
+ 1.2702366868292634
+ 1.2703155915021487
+ 1.2703945044012745
+ 1.270473425527864
+ 1.270552354883127
+ 1.2706312924682783
+ 1.2707102382845374
+ 1.2707891923331187
+ 1.2708681546152345
+ 1.2709471251321074
+ 1.2710261038849469
+ 1.2711050908749737
+ 1.2711840861034034
+ 1.2712630895714565
+ 1.2713421012803461
+ 1.271421121231288
+ 1.2715001494255067
+ 1.2715791858642156
+ 1.2716582305486364
+ 1.2717372834799832
+ 1.2718163446594748
+ 1.2718954140883343
+ 1.2719744917677784
+ 1.2720535776990276
+ 1.2721326718833017
+ 1.272211774321818
+ 1.2722908850157977
+ 1.2723700039664643
+ 1.2724491311750381
+ 1.2725282666427316
+ 1.2726074103707756
+ 1.2726865623603909
+ 1.2727657226127931
+ 1.2728448911292072
+ 1.2729240679108553
+ 1.2730032529589566
+ 1.2730824462747388
+ 1.2731616478594214
+ 1.2732408577142309
+ 1.2733200758403866
+ 1.273399302239111
+ 1.2734785369116284
+ 1.2735577798591671
+ 1.273637031082945
+ 1.2737162905841914
+ 1.2737955583641283
+ 1.2738748344239812
+ 1.2739541187649757
+ 1.274033411388338
+ 1.2741127122952902
+ 1.2741920214870601
+ 1.2742713389648725
+ 1.2743506647299554
+ 1.2744299987835341
+ 1.2745093411268369
+ 1.2745886917610894
+ 1.2746680506875174
+ 1.2747474179073499
+ 1.274826793421816
+ 1.2749061772321388
+ 1.2749855693395538
+ 1.2750649697452821
+ 1.275144378450553
+ 1.2752237954566024
+ 1.2753032207646515
+ 1.2753826543759337
+ 1.2754620962916765
+ 1.2755415465131077
+ 1.2756210050414643
+ 1.2757004718779705
+ 1.2757799470238582
+ 1.2758594304803588
+ 1.2759389222487005
+ 1.2760184223301179
+ 1.2760979307258431
+ 1.2761774474371026
+ 1.2762569724651338
+ 1.2763365058111666
+ 1.2764160474764306
+ 1.276495597462161
+ 1.2765751557695915
+ 1.2766547223999549
+ 1.2767342973544809
+ 1.27681388063441
+ 1.2768934722409691
+ 1.2769730721753954
+ 1.2770526804389224
+ 1.277132297032785
+ 1.2772119219582163
+ 1.2772915552164523
+ 1.2773711968087293
+ 1.27745084673628
+ 1.2775305050003452
+ 1.2776101716021542
+ 1.2776898465429478
+ 1.2777695298239595
+ 1.2778492214464303
+ 1.2779289214115905
+ 1.2780086297206816
+ 1.2780883463749406
+ 1.2781680713756003
+ 1.2782478047239068
+ 1.2783275464210935
+ 1.2784072964683972
+ 1.2784870548670586
+ 1.2785668216183146
+ 1.2786465967234086
+ 1.2787263801835729
+ 1.2788061720000534
+ 1.2788859721740824
+ 1.2789657807069077
+ 1.279045597599767
+ 1.2791254228538991
+ 1.2792052564705454
+ 1.2792850984509447
+ 1.2793649487963428
+ 1.2794448075079754
+ 1.2795246745870876
+ 1.2796045500349227
+ 1.2796844338527169
+ 1.2797643260417195
+ 1.2798442266031671
+ 1.2799241355383066
+ 1.2800040528483783
+ 1.2800839785346256
+ 1.2801639125982955
+ 1.280243855040629
+ 1.2803238058628672
+ 1.2804037650662603
+ 1.2804837326520471
+ 1.2805637086214778
+ 1.2806436929757921
+ 1.2807236857162372
+ 1.2808036868440589
+ 1.2808836963605055
+ 1.2809637142668164
+ 1.2810437405642405
+ 1.2811237752540265
+ 1.2812038183374208
+ 1.2812838698156666
+ 1.2813639296900134
+ 1.2814439979617076
+ 1.2815240746319994
+ 1.2816041597021324
+ 1.281684253173357
+ 1.2817643550469235
+ 1.2818444653240766
+ 1.281924584006064
+ 1.2820047110941388
+ 1.2820848465895502
+ 1.2821649904935455
+ 1.2822451428073738
+ 1.2823253035322864
+ 1.282405472669532
+ 1.2824856502203597
+ 1.2825658361860275
+ 1.2826460305677818
+ 1.282726233366869
+ 1.2828064445845475
+ 1.2828866642220675
+ 1.2829668922806765
+ 1.2830471287616325
+ 1.2831273736661835
+ 1.2832076269955832
+ 1.283287888751085
+ 1.2833681589339432
+ 1.283448437545408
+ 1.2835287245867348
+ 1.2836090200591774
+ 1.2836893239639877
+ 1.2837696363024258
+ 1.2838499570757389
+ 1.2839302862851865
+ 1.2840106239320197
+ 1.2840909700174985
+ 1.2841713245428767
+ 1.2842516875094065
+ 1.2843320589183498
+ 1.2844124387709579
+ 1.284492827068489
+ 1.284573223812197
+ 1.2846536290033448
+ 1.2847340426431866
+ 1.2848144647329789
+ 1.2848948952739796
+ 1.2849753342674455
+ 1.285055781714638
+ 1.2851362376168141
+ 1.2852167019752296
+ 1.2852971747911484
+ 1.2853776560658257
+ 1.2854581458005201
+ 1.2855386439964933
+ 1.2856191506550074
+ 1.2856996657773185
+ 1.2857801893646885
+ 1.2858607214183768
+ 1.2859412619396464
+ 1.2860218109297543
+ 1.2861023683899688
+ 1.2861829343215416
+ 1.2862635087257448
+ 1.2863440916038327
+ 1.2864246829570729
+ 1.286505282786722
+ 1.2865858910940478
+ 1.2866665078803117
+ 1.2867471331467775
+ 1.2868277668947072
+ 1.2869084091253655
+ 1.2869890598400144
+ 1.2870697190399221
+ 1.287150386726351
+ 1.2872310629005628
+ 1.2873117475638272
+ 1.2873924407174067
+ 1.2874731423625669
+ 1.2875538525005747
+ 1.2876345711326929
+ 1.2877152982601914
+ 1.2877960338843342
+ 1.287876778006388
+ 1.2879575306276227
+ 1.2880382917493027
+ 1.2881190613726925
+ 1.2881998394990659
+ 1.2882806261296877
+ 1.2883614212658261
+ 1.288442224908749
+ 1.2885230370597245
+ 1.2886038577200218
+ 1.2886846868909123
+ 1.288765524573662
+ 1.288846370769543
+ 1.2889272254798219
+ 1.2890080887057735
+ 1.2890889604486619
+ 1.2891698407097656
+ 1.2892507294903492
+ 1.2893316267916826
+ 1.2894125326150423
+ 1.2894934469616979
+ 1.2895743698329214
+ 1.2896553012299805
+ 1.2897362411541518
+ 1.2898171896067099
+ 1.2898981465889232
+ 1.2899791121020661
+ 1.290060086147411
+ 1.2901410687262327
+ 1.2902220598398029
+ 1.2903030594894005
+ 1.2903840676762948
+ 1.2904650844017618
+ 1.2905461096670743
+ 1.290627143473511
+ 1.2907081858223428
+ 1.2907892367148492
+ 1.2908702961523031
+ 1.2909513641359849
+ 1.2910324406671656
+ 1.2911135257471222
+ 1.2911946193771324
+ 1.2912757215584763
+ 1.291356832292426
+ 1.291437951580259
+ 1.2915190794232569
+ 1.2916002158226982
+ 1.2916813607798543
+ 1.2917625142960081
+ 1.2918436763724406
+ 1.2919248470104248
+ 1.2920060262112465
+ 1.2920872139761785
+ 1.2921684103065039
+ 1.292249615203505
+ 1.2923308286684563
+ 1.2924120507026433
+ 1.2924932813073402
+ 1.2925745204838373
+ 1.2926557682334086
+ 1.2927370245573353
+ 1.2928182894569009
+ 1.292899562933387
+ 1.2929808449880784
+ 1.2930621356222531
+ 1.2931434348371988
+ 1.2932247426341921
+ 1.2933060590145202
+ 1.2933873839794634
+ 1.2934687175303095
+ 1.2935500596683416
+ 1.293631410394839
+ 1.2937127697110915
+ 1.2937941376183821
+ 1.2938755141179907
+ 1.2939568992112107
+ 1.2940382928993253
+ 1.2941196951836127
+ 1.2942011060653686
+ 1.2942825255458723
+ 1.2943639536264138
+ 1.2944453903082775
+ 1.2945268355927517
+ 1.2946082894811239
+ 1.2946897519746774
+ 1.2947712230747059
+ 1.2948527027824925
+ 1.2949341910993282
+ 1.2950156880264967
+ 1.2950971935652926
+ 1.2951787077170003
+ 1.2952602304829115
+ 1.2953417618643159
+ 1.2954233018624981
+ 1.2955048504787534
+ 1.2955864077143697
+ 1.2956679735706367
+ 1.295749548048849
+ 1.2958311311502912
+ 1.295912722876257
+ 1.295994323228038
+ 1.2960759322069251
+ 1.2961575498142128
+ 1.296239176051188
+ 1.2963208109191477
+ 1.2964024544193842
+ 1.2964841065531867
+ 1.2965657673218509
+ 1.2966474367266725
+ 1.2967291147689384
+ 1.2968108014499478
+ 1.2968924967709936
+ 1.2969742007333693
+ 1.297055913338369
+ 1.2971376345872889
+ 1.2972193644814236
+ 1.2973011030220696
+ 1.2973828502105185
+ 1.2974646060480683
+ 1.2975463705360162
+ 1.2976281436756605
+ 1.2977099254682931
+ 1.2977917159152124
+ 1.2978735150177139
+ 1.2979553227771019
+ 1.2980371391946608
+ 1.2981189642717044
+ 1.2982007980095196
+ 1.2982826404094063
+ 1.2983644914726671
+ 1.2984463512005986
+ 1.2985282195945005
+ 1.2986100966556708
+ 1.2986919823854062
+ 1.298773876785013
+ 1.2988557798557896
+ 1.2989376915990334
+ 1.2990196120160458
+ 1.2991015411081279
+ 1.2991834788765813
+ 1.2992654253227076
+ 1.2993473804478115
+ 1.2994293442531863
+ 1.2995113167401431
+ 1.299593297909978
+ 1.2996752877639972
+ 1.2997572863035001
+ 1.2998392935297922
+ 1.2999213094441808
+ 1.3000033340479595
+ 1.3000853673424437
+ 1.3001674093289286
+ 1.3002494600087238
+ 1.3003315193831273
+ 1.3004135874534526
+ 1.300495664221001
+ 1.300577749687077
+ 1.3006598438529864
+ 1.3007419467200356
+ 1.3008240582895314
+ 1.3009061785627785
+ 1.3009883075410853
+ 1.3010704452257578
+ 1.3011525916181017
+ 1.3012347467194301
+ 1.301316910531042
+ 1.3013990830542539
+ 1.3014812642903661
+ 1.3015634542406944
+ 1.3016456529065437
+ 1.3017278602892202
+ 1.301810076390038
+ 1.301892301210305
+ 1.3019745347513283
+ 1.3020567770144225
+ 1.3021390280008953
+ 1.3022212877120556
+ 1.3023035561492182
+ 1.3023858333136884
+ 1.3024681192067813
+ 1.302550413829809
+ 1.302632717184081
+ 1.3027150292709098
+ 1.3027973500916112
+ 1.3028796796474924
+ 1.3029620179398658
+ 1.3030443649700481
+ 1.3031267207393529
+ 1.3032090852490881
+ 1.3032914585005757
+ 1.3033738404951247
+ 1.3034562312340487
+ 1.3035386307186652
+ 1.3036210389502867
+ 1.3037034559302267
+ 1.3037858816598074
+ 1.3038683161403368
+ 1.3039507593731343
+ 1.3040332113595154
+ 1.3041156721007954
+ 1.3041981415982933
+ 1.3042806198533223
+ 1.304363106867205
+ 1.3044456026412519
+ 1.3045281071767854
+ 1.3046106204751222
+ 1.304693142537577
+ 1.3047756733654761
+ 1.3048582129601305
+ 1.3049407613228643
+ 1.305023318454992
+ 1.3051058843578347
+ 1.3051884590327139
+ 1.3052710424809479
+ 1.3053536347038581
+ 1.3054362357027631
+ 1.3055188454789861
+ 1.3056014640338447
+ 1.3056840913686625
+ 1.3057667274847586
+ 1.3058493723834586
+ 1.3059320260660827
+ 1.3060146885339481
+ 1.3060973597883869
+ 1.3061800398307135
+ 1.3062627286622555
+ 1.3063454262843324
+ 1.3064281326982725
+ 1.3065108479053964
+ 1.306593571907029
+ 1.3066763047044947
+ 1.3067590462991157
+ 1.3068417966922192
+ 1.3069245558851317
+ 1.3070073238791744
+ 1.3070901006756768
+ 1.3071728862759642
+ 1.3072556806813571
+ 1.3073384838931903
+ 1.3074212959127847
+ 1.3075041167414689
+ 1.3075869463805705
+ 1.3076697848314163
+ 1.3077526320953334
+ 1.3078354881736491
+ 1.3079183530676943
+ 1.3080012267787935
+ 1.3080841093082776
+ 1.308167000657477
+ 1.3082499008277184
+ 1.3083328098203353
+ 1.3084157276366506
+ 1.3084986542779997
+ 1.308581589745708
+ 1.3086645340411109
+ 1.3087474871655382
+ 1.3088304491203195
+ 1.3089134199067876
+ 1.3089963995262723
+ 1.3090793879801039
+ 1.3091623852696159
+ 1.3092453913961453
+ 1.3093284063610193
+ 1.309411430165569
+ 1.3094944628111347
+ 1.3095775042990423
+ 1.3096605546306288
+ 1.3097436138072289
+ 1.3098266818301749
+ 1.309909758700802
+ 1.3099928444204452
+ 1.3100759389904375
+ 1.3101590424121143
+ 1.3102421546868148
+ 1.3103252758158717
+ 1.3104084058006189
+ 1.3104915446423984
+ 1.3105746923425408
+ 1.3106578489023839
+ 1.3107410143232667
+ 1.3108241886065273
+ 1.3109073717534998
+ 1.3109905637655253
+ 1.3110737646439381
+ 1.3111569743900795
+ 1.3112401930052877
+ 1.3113234204908983
+ 1.3114066568482561
+ 1.3114899020786963
+ 1.3115731561835586
+ 1.3116564191641817
+ 1.3117396910219119
+ 1.3118229717580816
+ 1.3119062613740373
+ 1.3119895598711191
+ 1.3120728672506643
+ 1.3121561835140154
+ 1.3122395086625198
+ 1.3123228426975126
+ 1.3124061856203371
+ 1.3124895374323373
+ 1.3125728981348581
+ 1.3126562677292377
+ 1.3127396462168246
+ 1.3128230335989566
+ 1.3129064298769826
+ 1.3129898350522418
+ 1.3130732491260826
+ 1.313156672099848
+ 1.3132401039748838
+ 1.3133235447525329
+ 1.313406994434142
+ 1.3134904530210543
+ 1.3135739205146195
+ 1.3136573969161822
+ 1.3137408822270884
+ 1.3138243764486861
+ 1.3139078795823196
+ 1.3139913916293393
+ 1.3140749125910907
+ 1.3141584424689212
+ 1.3142419812641795
+ 1.3143255289782143
+ 1.3144090856123738
+ 1.3144926511680037
+ 1.3145762256464568
+ 1.3146598090490846
+ 1.3147434013772306
+ 1.3148270026322482
+ 1.3149106128154864
+ 1.3149942319282957
+ 1.3150778599720261
+ 1.315161496948031
+ 1.3152451428576584
+ 1.3153287977022614
+ 1.3154124614831917
+ 1.3154961342018003
+ 1.3155798158594383
+ 1.3156635064574611
+ 1.3157472059972226
+ 1.3158309144800693
+ 1.3159146319073622
+ 1.3159983582804475
+ 1.3160820936006843
+ 1.316165837869425
+ 1.3162495910880232
+ 1.3163333532578338
+ 1.3164171243802112
+ 1.3165009044565119
+ 1.3165846934880923
+ 1.3166684914763034
+ 1.3167522984225057
+ 1.3168361143280536
+ 1.3169199391943041
+ 1.3170037730226125
+ 1.3170876158143363
+ 1.3171714675708308
+ 1.3172553282934578
+ 1.3173391979835751
+ 1.3174230766425359
+ 1.3175069642717021
+ 1.3175908608724296
+ 1.3176747664460811
+ 1.3177586809940125
+ 1.3178426045175844
+ 1.3179265370181561
+ 1.3180104784970876
+ 1.3180944289557373
+ 1.3181783883954703
+ 1.3182623568176421
+ 1.3183463342236166
+ 1.3184303206147516
+ 1.3185143159924149
+ 1.3185983203579645
+ 1.3186823337127589
+ 1.3187663560581668
+ 1.3188503873955471
+ 1.3189344277262651
+ 1.3190184770516797
+ 1.3191025353731571
+ 1.31918660269206
+ 1.319270679009755
+ 1.3193547643276016
+ 1.319438858646967
+ 1.3195229619692177
+ 1.3196070742957142
+ 1.319691195627827
+ 1.3197753259669145
+ 1.3198594653143496
+ 1.3199436136714944
+ 1.3200277710397137
+ 1.3201119374203787
+ 1.3201961128148545
+ 1.3202802972245069
+ 1.3203644906507015
+ 1.3204486930948127
+ 1.3205329045582013
+ 1.3206171250422392
+ 1.3207013545482926
+ 1.3207855930777344
+ 1.3208698406319259
+ 1.320954097212246
+ 1.3210383628200555
+ 1.3211226374567309
+ 1.3212069211236375
+ 1.321291213822146
+ 1.32137551555363
+ 1.3214598263194586
+ 1.3215441461210022
+ 1.3216284749596332
+ 1.3217128128367237
+ 1.3217971597536453
+ 1.3218815157117672
+ 1.3219658807124677
+ 1.3220502547571147
+ 1.3221346378470826
+ 1.3222190299837455
+ 1.3223034311684791
+ 1.322387841402648
+ 1.3224722606876382
+ 1.322556689024817
+ 1.3226411264155586
+ 1.322725572861241
+ 1.3228100283632382
+ 1.3228944929229247
+ 1.3229789665416785
+ 1.3230634492208748
+ 1.3231479409618858
+ 1.3232324417660959
+ 1.3233169516348751
+ 1.323401470569602
+ 1.3234859985716558
+ 1.3235705356424123
+ 1.3236550817832491
+ 1.3237396369955452
+ 1.3238242012806802
+ 1.3239087746400313
+ 1.3239933570749767
+ 1.324077948586899
+ 1.3241625491771729
+ 1.3242471588471827
+ 1.3243317775983035
+ 1.3244164054319194
+ 1.3245010423494117
+ 1.3245856883521536
+ 1.324670343441539
+ 1.3247550076189372
+ 1.3248396808857377
+ 1.324924363243319
+ 1.3250090546930644
+ 1.3250937552363538
+ 1.3251784648745757
+ 1.3252631836091058
+ 1.325347911441332
+ 1.325432648372636
+ 1.3255173944044045
+ 1.3256021495380188
+ 1.3256869137748657
+ 1.3257716871163243
+ 1.3258564695637851
+ 1.3259412611186336
+ 1.326026061782251
+ 1.3261108715560259
+ 1.3261956904413414
+ 1.3262805184395892
+ 1.3263653555521513
+ 1.326450201780415
+ 1.3265350571257688
+ 1.3266199215896
+ 1.3267047951732951
+ 1.326789677878244
+ 1.3268745697058306
+ 1.3269594706574488
+ 1.3270443807344825
+ 1.3271292999383235
+ 1.3272142282703618
+ 1.3272991657319866
+ 1.3273841123245849
+ 1.3274690680495498
+ 1.3275540329082691
+ 1.3276390069021351
+ 1.3277239900325375
+ 1.3278089823008707
+ 1.3278939837085222
+ 1.3279789942568871
+ 1.3280640139473532
+ 1.3281490427813192
+ 1.3282340807601698
+ 1.3283191278853046
+ 1.3284041841581113
+ 1.3284892495799869
+ 1.3285743241523258
+ 1.3286594078765195
+ 1.3287445007539624
+ 1.3288296027860498
+ 1.3289147139741737
+ 1.3289998343197349
+ 1.3290849638241229
+ 1.329170102488737
+ 1.3292552503149697
+ 1.3293404073042201
+ 1.3294255734578844
+ 1.3295107487773563
+ 1.3295959332640384
+ 1.3296811269193216
+ 1.3297663297446063
+ 1.3298515417412924
+ 1.3299367629107748
+ 1.3300219932544506
+ 1.3301072327737216
+ 1.3301924814699881
+ 1.3302777393446432
+ 1.3303630063990941
+ 1.3304482826347332
+ 1.3305335680529631
+ 1.3306188626551856
+ 1.3307041664428003
+ 1.3307894794172095
+ 1.3308748015798102
+ 1.3309601329320051
+ 1.3310454734752009
+ 1.3311308232107915
+ 1.3312161821401869
+ 1.3313015502647816
+ 1.3313869275859858
+ 1.3314723141051978
+ 1.3315577098238216
+ 1.3316431147432621
+ 1.3317285288649245
+ 1.3318139521902075
+ 1.3318993847205194
+ 1.3319848264572656
+ 1.3320702774018518
+ 1.3321557375556781
+ 1.3322412069201561
+ 1.3323266854966831
+ 1.3324121732866754
+ 1.332497670291533
+ 1.3325831765126657
+ 1.3326686919514783
+ 1.3327542166093773
+ 1.3328397504877707
+ 1.3329252935880693
+ 1.3330108459116781
+ 1.3330964074600047
+ 1.3331819782344612
+ 1.3332675582364524
+ 1.3333531474673874
+ 1.3334387459286781
+ 1.3335243536217345
+ 1.3336099705479645
+ 1.3336955967087818
+ 1.3337812321055931
+ 1.3338668767398079
+ 1.3339525306128428
+ 1.3340381937261054
+ 1.334123866081006
+ 1.3342095476789613
+ 1.3342952385213793
+ 1.3343809386096752
+ 1.3344666479452596
+ 1.3345523665295471
+ 1.3346380943639473
+ 1.3347238314498777
+ 1.3348095777887536
+ 1.3348953333819846
+ 1.3349810982309867
+ 1.3350668723371759
+ 1.3351526557019675
+ 1.3352384483267727
+ 1.3353242502130105
+ 1.3354100613620983
+ 1.3354958817754459
+ 1.3355817114544777
+ 1.3356675504006048
+ 1.3357533986152441
+ 1.3358392560998174
+ 1.3359251228557385
+ 1.3360109988844238
+ 1.3360968841872942
+ 1.3361827787657683
+ 1.336268682621262
+ 1.3363545957551943
+ 1.3364405181689878
+ 1.3365264498640614
+ 1.3366123908418326
+ 1.3366983411037201
+ 1.3367843006511479
+ 1.3368702694855361
+ 1.3369562476083021
+ 1.3370422350208699
+ 1.3371282317246602
+ 1.3372142377210943
+ 1.3373002530115963
+ 1.3373862775975878
+ 1.3374723114804876
+ 1.3375583546617213
+ 1.3376444071427132
+ 1.3377304689248828
+ 1.3378165400096593
+ 1.3379026203984623
+ 1.3379887100927177
+ 1.3380748090938517
+ 1.3381609174032847
+ 1.3382470350224438
+ 1.3383331619527552
+ 1.3384192981956466
+ 1.3385054437525388
+ 1.3385915986248629
+ 1.3386777628140401
+ 1.3387639363215016
+ 1.3388501191486721
+ 1.3389363112969808
+ 1.3390225127678521
+ 1.3391087235627186
+ 1.3391949436830064
+ 1.3392811731301413
+ 1.3393674119055554
+ 1.3394536600106728
+ 1.3395399174469327
+ 1.3396261842157551
+ 1.3397124603185737
+ 1.339798745756819
+ 1.3398850405319191
+ 1.3399713446453074
+ 1.3400576580984116
+ 1.3401439808926703
+ 1.3402303130295046
+ 1.3403166545103558
+ 1.3404030053366502
+ 1.3404893655098191
+ 1.3405757350313017
+ 1.3406621139025272
+ 1.340748502124925
+ 1.3408348996999377
+ 1.3409213066289924
+ 1.341007722913522
+ 1.341094148554967
+ 1.3411805835547579
+ 1.3412670279143311
+ 1.3413534816351216
+ 1.3414399447185639
+ 1.341526417166095
+ 1.3416128989791509
+ 1.3416993901591685
+ 1.3417858907075806
+ 1.3418724006258291
+ 1.3419589199153497
+ 1.342045448577581
+ 1.3421319866139592
+ 1.342218534025921
+ 1.3423050908149088
+ 1.3423916569823562
+ 1.3424782325297064
+ 1.3425648174584002
+ 1.342651411769868
+ 1.3427380154655606
+ 1.3428246285469114
+ 1.3429112510153631
+ 1.3429978828723532
+ 1.3430845241193292
+ 1.3431711747577271
+ 1.3432578347889885
+ 1.3433445042145589
+ 1.3434311830358772
+ 1.3435178712543865
+ 1.3436045688715292
+ 1.3436912758887489
+ 1.3437779923074884
+ 1.3438647181291907
+ 1.3439514533553034
+ 1.3440381979872635
+ 1.3441249520265219
+ 1.3442117154745195
+ 1.3442984883327065
+ 1.344385270602519
+ 1.3444720622854107
+ 1.344558863382824
+ 1.3446456738962038
+ 1.3447324938269998
+ 1.3448193231766561
+ 1.3449061619466232
+ 1.3449930101383436
+ 1.3450798677532669
+ 1.3451667347928429
+ 1.3452536112585183
+ 1.3453404971517366
+ 1.3454273924739553
+ 1.3455142972266183
+ 1.3456012114111762
+ 1.3456881350290768
+ 1.3457750680817719
+ 1.3458620105707091
+ 1.3459489624973437
+ 1.346035923863121
+ 1.3461228946694961
+ 1.3462098749179152
+ 1.3462968646098372
+ 1.346383863746708
+ 1.3464708723299841
+ 1.3465578903611124
+ 1.3466449178415492
+ 1.3467319547727477
+ 1.3468190011561623
+ 1.3469060569932434
+ 1.3469931222854454
+ 1.3470801970342257
+ 1.3471672812410356
+ 1.3472543749073305
+ 1.3473414780345678
+ 1.3474285906241974
+ 1.34751571267768
+ 1.3476028441964718
+ 1.3476899851820254
+ 1.3477771356358004
+ 1.3478642955592495
+ 1.3479514649538329
+ 1.3480386438210068
+ 1.3481258321622311
+ 1.348213029978961
+ 1.3483002372726556
+ 1.3483874540447762
+ 1.3484746802967778
+ 1.3485619160301179
+ 1.3486491612462614
+ 1.3487364159466659
+ 1.3488236801327884
+ 1.348910953806093
+ 1.3489982369680384
+ 1.3490855296200852
+ 1.349172831763698
+ 1.3492601434003337
+ 1.3493474645314563
+ 1.3494347951585244
+ 1.3495221352830056
+ 1.3496094849063571
+ 1.3496968440300494
+ 1.3497842126555364
+ 1.3498715907842866
+ 1.3499589784177672
+ 1.3500463755574335
+ 1.350133782204757
+ 1.3502211983611996
+ 1.3503086240282267
+ 1.3503960592073012
+ 1.3504835038998912
+ 1.3505709581074639
+ 1.350658421831485
+ 1.3507458950734177
+ 1.3508333778347292
+ 1.350920870116886
+ 1.3510083719213586
+ 1.3510958832496143
+ 1.3511834041031172
+ 1.3512709344833389
+ 1.3513584743917471
+ 1.3514460238298096
+ 1.3515335827989958
+ 1.3516211513007734
+ 1.3517087293366175
+ 1.3517963169079918
+ 1.3518839140163681
+ 1.3519715206632161
+ 1.3520591368500114
+ 1.352146762578222
+ 1.3522343978493132
+ 1.3523220426647662
+ 1.3524096970260506
+ 1.3524973609346347
+ 1.3525850343919927
+ 1.3526727173996016
+ 1.3527604099589272
+ 1.3528481120714497
+ 1.3529358237386386
+ 1.3530235449619692
+ 1.3531112757429165
+ 1.353199016082953
+ 1.3532867659835548
+ 1.3533745254461982
+ 1.353462294472356
+ 1.3535500730635051
+ 1.353637861221122
+ 1.3537256589466835
+ 1.3538134662416672
+ 1.353901283107547
+ 1.3539891095458041
+ 1.3540769455579096
+ 1.354164791145348
+ 1.3542526463095914
+ 1.3543405110521247
+ 1.354428385374423
+ 1.3545162692779653
+ 1.3546041627642311
+ 1.3546920658346995
+ 1.354779978490853
+ 1.3548679007341657
+ 1.3549558325661266
+ 1.3550437739882095
+ 1.3551317250018984
+ 1.355219685608674
+ 1.3553076558100199
+ 1.3553956356074142
+ 1.3554836250023414
+ 1.3555716239962863
+ 1.3556596325907271
+ 1.3557476507871491
+ 1.3558356785870349
+ 1.3559237159918727
+ 1.356011763003139
+ 1.3560998196223255
+ 1.35618788585091
+ 1.3562759616903817
+ 1.3563640471422267
+ 1.3564521422079261
+ 1.3565402468889669
+ 1.3566283611868388
+ 1.3567164851030276
+ 1.3568046186390164
+ 1.3568927617962943
+ 1.3569809145763456
+ 1.3570690769806653
+ 1.3571572490107353
+ 1.3572454306680417
+ 1.3573336219540801
+ 1.3574218228703328
+ 1.3575100334182955
+ 1.3575982535994491
+ 1.3576864834152895
+ 1.3577747228673036
+ 1.3578629719569846
+ 1.3579512306858208
+ 1.3580394990553051
+ 1.3581277770669262
+ 1.3582160647221777
+ 1.3583043620225488
+ 1.3583926689695336
+ 1.358480985564624
+ 1.3585693118093098
+ 1.3586576477050885
+ 1.3587459932534529
+ 1.3588343484558933
+ 1.358922713313905
+ 1.3590110878289818
+ 1.3590994720026199
+ 1.3591878658363132
+ 1.3592762693315552
+ 1.3593646824898435
+ 1.3594531053126719
+ 1.359541537801539
+ 1.3596299799579354
+ 1.3597184317833628
+ 1.3598068932793164
+ 1.3598953644472944
+ 1.3599838452887929
+ 1.3600723358053104
+ 1.3601608359983437
+ 1.3602493458693912
+ 1.3603378654199534
+ 1.3604263946515267
+ 1.3605149335656144
+ 1.3606034821637103
+ 1.3606920404473188
+ 1.3607806084179397
+ 1.360869186077071
+ 1.3609577734262142
+ 1.3610463704668709
+ 1.3611349772005394
+ 1.3612235936287271
+ 1.361312219752931
+ 1.3614008555746595
+ 1.3614895010954078
+ 1.3615781563166796
+ 1.3616668212399838
+ 1.3617554958668177
+ 1.36184418019869
+ 1.3619328742371024
+ 1.3620215779835552
+ 1.3621102914395609
+ 1.362199014606619
+ 1.3622877474862363
+ 1.3623764900799182
+ 1.3624652423891717
+ 1.3625540044154998
+ 1.3626427761604107
+ 1.3627315576254131
+ 1.3628203488120134
+ 1.3629091497217167
+ 1.3629979603560303
+ 1.3630867807164662
+ 1.3631756108045283
+ 1.3632644506217266
+ 1.3633533001695717
+ 1.3634421594495709
+ 1.3635310284632349
+ 1.3636199072120712
+ 1.3637087956975917
+ 1.3637976939213077
+ 1.3638866018847273
+ 1.3639755195893657
+ 1.364064447036726
+ 1.3641533842283291
+ 1.3642423311656819
+ 1.3643312878502971
+ 1.3644202542836881
+ 1.3645092304673669
+ 1.3645982164028483
+ 1.3646872120916422
+ 1.3647762175352682
+ 1.3648652327352322
+ 1.3649542576930542
+ 1.3650432924102458
+ 1.3651323368883246
+ 1.3652213911288058
+ 1.3653104551332047
+ 1.3653995289030336
+ 1.3654886124398145
+ 1.36557770574506
+ 1.3656668088202861
+ 1.365755921667013
+ 1.3658450442867531
+ 1.3659341766810305
+ 1.3660233188513555
+ 1.3661124707992547
+ 1.3662016325262427
+ 1.3662908040338371
+ 1.3663799853235585
+ 1.366469176396929
+ 1.3665583772554628
+ 1.3666475879006827
+ 1.3667368083341103
+ 1.366826038557265
+ 1.3669152785716681
+ 1.367004528378843
+ 1.3670937879803067
+ 1.3671830573775816
+ 1.3672723365721975
+ 1.3673616255656655
+ 1.3674509243595188
+ 1.367540232955275
+ 1.3676295513544583
+ 1.3677188795585931
+ 1.3678082175692012
+ 1.3678975653878105
+ 1.3679869230159458
+ 1.3680762904551298
+ 1.3681656677068876
+ 1.3682550547727457
+ 1.3683444516542296
+ 1.3684338583528619
+ 1.3685232748701799
+ 1.3686127012076994
+ 1.3687021373669517
+ 1.3687915833494666
+ 1.3688810391567678
+ 1.368970504790384
+ 1.3690599802518479
+ 1.3691494655426797
+ 1.3692389606644193
+ 1.3693284656185862
+ 1.3694179804067146
+ 1.3695075050303345
+ 1.3695970394909749
+ 1.3696865837901675
+ 1.3697761379294431
+ 1.3698657019103311
+ 1.3699552757343645
+ 1.370044859403071
+ 1.37013445291799
+ 1.3702240562806494
+ 1.3703136694925804
+ 1.3704032925553205
+ 1.3704929254704006
+ 1.3705825682393529
+ 1.3706722208637128
+ 1.3707618833450148
+ 1.3708515556847918
+ 1.3709412378845824
+ 1.3710309299459162
+ 1.3711206318703331
+ 1.3712103436593657
+ 1.3713000653145542
+ 1.3713897968374298
+ 1.3714795382295346
+ 1.3715692894924003
+ 1.3716590506275648
+ 1.3717488216365712
+ 1.3718386025209521
+ 1.3719283932822488
+ 1.3720181939219964
+ 1.3721080044417369
+ 1.3721978248430091
+ 1.3722876551273524
+ 1.372377495296303
+ 1.3724673453514065
+ 1.3725572052941997
+ 1.3726470751262227
+ 1.3727369548490194
+ 1.3728268444641298
+ 1.3729167439730952
+ 1.3730066533774588
+ 1.3730965726787627
+ 1.3731865018785478
+ 1.3732764409783562
+ 1.373366389979733
+ 1.3734563488842231
+ 1.3735463176933687
+ 1.3736362964087103
+ 1.3737262850317991
+ 1.3738162835641781
+ 1.3739062920073883
+ 1.3739963103629791
+ 1.3740863386324942
+ 1.3741763768174804
+ 1.3742664249194823
+ 1.3743564829400507
+ 1.3744465508807266
+ 1.374536628743062
+ 1.3746267165286048
+ 1.3747168142388968
+ 1.374806921875493
+ 1.3748970394399402
+ 1.3749871669337808
+ 1.3750773043585762
+ 1.3751674517158639
+ 1.3752576090072
+ 1.3753477762341348
+ 1.3754379533982157
+ 1.3755281405009927
+ 1.3756183375440232
+ 1.3757085445288522
+ 1.3757987614570335
+ 1.3758889883301157
+ 1.3759792251496568
+ 1.376069471917206
+ 1.3761597286343181
+ 1.3762499953025429
+ 1.3763402719234357
+ 1.3764305584985523
+ 1.3765208550294437
+ 1.3766111615176655
+ 1.3767014779647746
+ 1.376791804372322
+ 1.3768821407418639
+ 1.3769724870749591
+ 1.3770628433731644
+ 1.3771532096380286
+ 1.3772435858711156
+ 1.3773339720739779
+ 1.3774243682481773
+ 1.3775147743952656
+ 1.3776051905168087
+ 1.3776956166143539
+ 1.3777860526894719
+ 1.3778764987437107
+ 1.3779669547786366
+ 1.3780574207958032
+ 1.3781478967967771
+ 1.3782383827831133
+ 1.378328878756375
+ 1.3784193847181208
+ 1.3785099006699149
+ 1.3786004266133127
+ 1.3786909625498824
+ 1.3787815084811796
+ 1.3788720644087731
+ 1.378962630334222
+ 1.3790532062590926
+ 1.3791437921849412
+ 1.3792343881133373
+ 1.3793249940458412
+ 1.3794156099840202
+ 1.3795062359294379
+ 1.3795968718836582
+ 1.3796875178482464
+ 1.3797781738247659
+ 1.3798688398147883
+ 1.3799595158198759
+ 1.3800502018415906
+ 1.3801408978815104
+ 1.3802316039411919
+ 1.3803223200222074
+ 1.3804130461261233
+ 1.3805037822545088
+ 1.3805945284089274
+ 1.3806852845909527
+ 1.3807760508021554
+ 1.3808668270441022
+ 1.3809576133183612
+ 1.3810484096265001
+ 1.3811392159700964
+ 1.3812300323507156
+ 1.3813208587699288
+ 1.381411695229309
+ 1.3815025417304245
+ 1.3815933982748478
+ 1.381684264864155
+ 1.3817751414999158
+ 1.3818660281837032
+ 1.3819569249170909
+ 1.3820478317016491
+ 1.3821387485389549
+ 1.3822296754305818
+ 1.3823206123781022
+ 1.3824115593830928
+ 1.3825025164471316
+ 1.382593483571785
+ 1.3826844607586339
+ 1.3827754480092569
+ 1.3828664453252266
+ 1.3829574527081225
+ 1.3830484701595143
+ 1.3831394976809877
+ 1.3832305352741201
+ 1.3833215829404808
+ 1.3834126406816547
+ 1.383503708499221
+ 1.3835947863947551
+ 1.3836858743698379
+ 1.3837769724260469
+ 1.3838680805649641
+ 1.3839591987881683
+ 1.3840503270972406
+ 1.384141465493764
+ 1.3842326139793146
+ 1.3843237725554776
+ 1.3844149412238329
+ 1.3845061199859607
+ 1.3845973088434473
+ 1.3846885077978768
+ 1.3847797168508234
+ 1.38487093600388
+ 1.3849621652586226
+ 1.3850534046166407
+ 1.3851446540795171
+ 1.3852359136488361
+ 1.3853271833261835
+ 1.3854184631131414
+ 1.3855097530112952
+ 1.3856010530222345
+ 1.3856923631475455
+ 1.3857836833888111
+ 1.3858750137476212
+ 1.3859663542255602
+ 1.3860577048242182
+ 1.386149065545182
+ 1.3862404363900394
+ 1.3863318173603785
+ 1.3864232084577879
+ 1.3865146096838579
+ 1.3866060210401783
+ 1.3866974425283405
+ 1.3867888741499272
+ 1.3868803159065339
+ 1.3869717677997535
+ 1.3870632298311729
+ 1.3871547020023849
+ 1.387246184314983
+ 1.3873376767705548
+ 1.3874291793706965
+ 1.387520692117
+ 1.3876122150110564
+ 1.3877037480544596
+ 1.3877952912488021
+ 1.3878868445956842
+ 1.387978408096693
+ 1.3880699817534237
+ 1.3881615655674748
+ 1.3882531595404395
+ 1.3883447636739139
+ 1.3884363779694946
+ 1.3885280024287754
+ 1.388619637053353
+ 1.3887112818448246
+ 1.3888029368047909
+ 1.3888946019348436
+ 1.3889862772365866
+ 1.3890779627116119
+ 1.3891696583615241
+ 1.3892613641879159
+ 1.3893530801923883
+ 1.3894448063765454
+ 1.3895365427419819
+ 1.3896282892902978
+ 1.3897200460230967
+ 1.3898118129419748
+ 1.389903590048539
+ 1.3899953773443838
+ 1.3900871748311194
+ 1.3901789825103403
+ 1.3902708003836513
+ 1.3903626284526565
+ 1.3904544667189553
+ 1.3905463151841555
+ 1.3906381738498594
+ 1.3907300427176701
+ 1.3908219217891928
+ 1.3909138110660308
+ 1.3910057105497906
+ 1.3910976202420717
+ 1.3911895401444914
+ 1.3912814702586442
+ 1.3913734105861428
+ 1.3914653611285925
+ 1.3915573218875976
+ 1.3916492928647692
+ 1.391741274061713
+ 1.3918332654800372
+ 1.3919252671213502
+ 1.3920172789872589
+ 1.3921093010793748
+ 1.3922013333993073
+ 1.3922933759486611
+ 1.3923854287290511
+ 1.3924774917420819
+ 1.3925695649893737
+ 1.3926616484725267
+ 1.3927537421931597
+ 1.3928458461528828
+ 1.3929379603533043
+ 1.39303008479604
+ 1.3931222194826973
+ 1.393214364414896
+ 1.3933065195942447
+ 1.3933986850223588
+ 1.3934908607008492
+ 1.3935830466313341
+ 1.3936752428154247
+ 1.3937674492547369
+ 1.393859665950886
+ 1.3939518929054879
+ 1.3940441301201574
+ 1.3941363775965123
+ 1.3942286353361644
+ 1.3943209033407382
+ 1.3944131816118424
+ 1.3945054701510995
+ 1.3945977689601279
+ 1.3946900780405438
+ 1.3947823973939604
+ 1.394874727022007
+ 1.3949670669262975
+ 1.3950594171084483
+ 1.395151777570083
+ 1.3952441483128195
+ 1.395336529338282
+ 1.3954289206480881
+ 1.3955213222438565
+ 1.3956137341272148
+ 1.3957061562997783
+ 1.395798588763173
+ 1.3958910315190207
+ 1.3959834845689418
+ 1.3960759479145612
+ 1.3961684215575025
+ 1.3962609054993922
+ 1.3963533997418476
+ 1.3964459042864961
+ 1.3965384191349639
+ 1.3966309442888765
+ 1.3967234797498544
+ 1.3968160255195297
+ 1.3969085815995235
+ 1.3970011479914615
+ 1.3970937246969755
+ 1.3971863117176913
+ 1.3972789090552316
+ 1.3973715167112293
+ 1.3974641346873078
+ 1.3975567629851
+ 1.39764940160623
+ 1.3977420505523312
+ 1.3978347098250312
+ 1.3979273794259581
+ 1.3980200593567425
+ 1.398112749619016
+ 1.398205450214407
+ 1.3982981611445513
+ 1.3983908824110736
+ 1.3984836140156105
+ 1.3985763559597908
+ 1.3986691082452509
+ 1.3987618708736205
+ 1.3988546438465304
+ 1.3989474271656195
+ 1.3990402208325168
+ 1.3991330248488585
+ 1.399225839216276
+ 1.3993186639364104
+ 1.3994114990108899
+ 1.3995043444413506
+ 1.399597200229433
+ 1.39969006637677
+ 1.3997829428849975
+ 1.3998758297557485
+ 1.3999687269906691
+ 1.4000616345913888
+ 1.4001545525595513
+ 1.40024748089679
+ 1.4003404196047435
+ 1.4004333686850508
+ 1.4005263281393512
+ 1.4006192979692884
+ 1.4007122781764942
+ 1.4008052687626138
+ 1.4008982697292864
+ 1.4009912810781504
+ 1.4010843028108519
+ 1.4011773349290271
+ 1.4012703774343187
+ 1.4013634303283737
+ 1.4014564936128253
+ 1.4015495672893241
+ 1.4016426513595108
+ 1.4017357458250297
+ 1.4018288506875189
+ 1.4019219659486324
+ 1.402015091610002
+ 1.4021082276732839
+ 1.4022013741401156
+ 1.4022945310121471
+ 1.4023876982910204
+ 1.4024808759783824
+ 1.4025740640758819
+ 1.4026672625851664
+ 1.4027604715078761
+ 1.4028536908456677
+ 1.402946920600179
+ 1.4030401607730643
+ 1.4031334113659748
+ 1.4032266723805515
+ 1.4033199438184474
+ 1.4034132256813134
+ 1.4035065179707982
+ 1.4035998206885485
+ 1.4036931338362195
+ 1.4037864574154586
+ 1.4038797914279211
+ 1.4039731358752516
+ 1.4040664907591089
+ 1.4041598560811388
+ 1.4042532318429977
+ 1.4043466180463395
+ 1.4044400146928138
+ 1.4045334217840775
+ 1.4046268393217798
+ 1.4047202673075789
+ 1.4048137057431309
+ 1.4049071546300851
+ 1.405000613970097
+ 1.4050940837648274
+ 1.4051875640159284
+ 1.405281054725054
+ 1.4053745558938684
+ 1.4054680675240219
+ 1.4055615896171723
+ 1.4056551221749771
+ 1.4057486651990949
+ 1.4058422186911868
+ 1.4059357826529089
+ 1.4060293570859161
+ 1.4061229419918746
+ 1.4062165373724427
+ 1.4063101432292748
+ 1.4064037595640331
+ 1.4064973863783845
+ 1.4065910236739827
+ 1.4066846714524914
+ 1.406778329715572
+ 1.4068719984648888
+ 1.4069656777020991
+ 1.4070593674288687
+ 1.4071530676468651
+ 1.4072467783577409
+ 1.4073404995631689
+ 1.4074342312648072
+ 1.4075279734643229
+ 1.4076217261633821
+ 1.4077154893636474
+ 1.4078092630667833
+ 1.40790304727446
+ 1.4079968419883411
+ 1.4080906472100914
+ 1.4081844629413753
+ 1.4082782891838672
+ 1.4083721259392292
+ 1.4084659732091298
+ 1.4085598309952381
+ 1.4086536992992229
+ 1.4087475781227532
+ 1.4088414674674956
+ 1.4089353673351206
+ 1.409029277727297
+ 1.4091231986456998
+ 1.409217130091992
+ 1.4093110720678514
+ 1.4094050245749461
+ 1.4094989876149466
+ 1.4095929611895255
+ 1.4096869453003571
+ 1.4097809399491075
+ 1.4098749451374584
+ 1.4099689608670791
+ 1.41006298713964
+ 1.4101570239568202
+ 1.4102510713202925
+ 1.4103451292317279
+ 1.4104391976928035
+ 1.4105332767051997
+ 1.4106273662705842
+ 1.4107214663906353
+ 1.410815577067031
+ 1.4109096983014493
+ 1.4110038300955663
+ 1.4110979724510533
+ 1.4111921253695967
+ 1.4112862888528694
+ 1.4113804629025506
+ 1.4114746475203241
+ 1.4115688427078592
+ 1.411663048466844
+ 1.4117572647989518
+ 1.4118514917058669
+ 1.4119457291892674
+ 1.4120399772508376
+ 1.4121342358922531
+ 1.4122285051152017
+ 1.41232278492136
+ 1.412417075312413
+ 1.4125113762900428
+ 1.4126056878559305
+ 1.4127000100117615
+ 1.4127943427592193
+ 1.4128886860999874
+ 1.4129830400357506
+ 1.4130774045681891
+ 1.4131717796989907
+ 1.4132661654298466
+ 1.4133605617624323
+ 1.4134549686984421
+ 1.4135493862395554
+ 1.4136438143874677
+ 1.4137382531438554
+ 1.4138327025104136
+ 1.4139271624888261
+ 1.4140216330807864
+ 1.4141161142879748
+ 1.4142106061120845
+ 1.4143051085548031
+ 1.4143996216178258
+ 1.4144941453028328
+ 1.4145886796115228
+ 1.4146832245455814
+ 1.4147777801067001
+ 1.4148723462965709
+ 1.4149669231168864
+ 1.4150615105693365
+ 1.4151561086556144
+ 1.4152507173774098
+ 1.4153453367364224
+ 1.41543996673434
+ 1.4155346073728567
+ 1.4156292586536694
+ 1.4157239205784669
+ 1.4158185931489498
+ 1.4159132763668105
+ 1.4160079702337445
+ 1.4161026747514467
+ 1.4161973899216134
+ 1.4162921157459434
+ 1.4163868522261303
+ 1.4164815993638744
+ 1.4165763571608683
+ 1.4166711256188131
+ 1.4167659047394088
+ 1.4168606945243534
+ 1.4169554949753385
+ 1.4170503060940747
+ 1.4171451278822544
+ 1.417239960341576
+ 1.417334803473745
+ 1.4174296572804603
+ 1.4175245217634216
+ 1.4176193969243289
+ 1.4177142827648881
+ 1.4178091792867995
+ 1.4179040864917636
+ 1.4179990043814845
+ 1.4180939329576661
+ 1.41818887222201
+ 1.4182838221762204
+ 1.4183787828219996
+ 1.418473754161059
+ 1.4185687361950978
+ 1.4186637289258186
+ 1.4187587323549335
+ 1.4188537464841464
+ 1.4189487713151594
+ 1.4190438068496829
+ 1.4191388530894213
+ 1.4192339100360878
+ 1.419328977691384
+ 1.4194240560570173
+ 1.4195191451346989
+ 1.4196142449261406
+ 1.4197093554330444
+ 1.4198044766571261
+ 1.4198996086000915
+ 1.4199947512636493
+ 1.420089904649513
+ 1.4201850687593953
+ 1.4202802435950004
+ 1.4203754291580475
+ 1.4204706254502453
+ 1.4205658324733039
+ 1.4206610502289378
+ 1.4207562787188621
+ 1.4208515179447849
+ 1.4209467679084278
+ 1.4210420286114933
+ 1.4211373000557077
+ 1.4212325822427758
+ 1.4213278751744216
+ 1.4214231788523513
+ 1.4215184932782883
+ 1.4216138184539431
+ 1.4217091543810358
+ 1.421804501061285
+ 1.4218998584964011
+ 1.4219952266881088
+ 1.42209060563812
+ 1.422185995348157
+ 1.4222813958199347
+ 1.4223768070551761
+ 1.4224722290556004
+ 1.4225676618229202
+ 1.4226631053588652
+ 1.4227585596651533
+ 1.4228540247435004
+ 1.4229495005956316
+ 1.4230449872232669
+ 1.4231404846281244
+ 1.4232359928119358
+ 1.4233315117764158
+ 1.4234270415232895
+ 1.4235225820542803
+ 1.4236181333711124
+ 1.4237136954755063
+ 1.4238092683691914
+ 1.4239048520538906
+ 1.4240004465313245
+ 1.4240960518032233
+ 1.4241916678713111
+ 1.4242872947373153
+ 1.4243829324029609
+ 1.4244785808699756
+ 1.4245742401400847
+ 1.4246699102150171
+ 1.4247655910965011
+ 1.4248612827862628
+ 1.4249569852860318
+ 1.4250526985975378
+ 1.4251484227225109
+ 1.4252441576626804
+ 1.4253399034197713
+ 1.4254356599955202
+ 1.4255314273916555
+ 1.4256272056099109
+ 1.4257229946520116
+ 1.4258187945196927
+ 1.4259146052146869
+ 1.4260104267387286
+ 1.4261062590935449
+ 1.4262021022808775
+ 1.4262979563024503
+ 1.4263938211600062
+ 1.4264896968552725
+ 1.4265855833899863
+ 1.4266814807658814
+ 1.4267773889846991
+ 1.4268733080481673
+ 1.4269692379580243
+ 1.4270651787160087
+ 1.4271611303238587
+ 1.4272570927833044
+ 1.4273530660960907
+ 1.4274490502639512
+ 1.4275450452886285
+ 1.4276410511718529
+ 1.4277370679153745
+ 1.4278330955209213
+ 1.4279291339902433
+ 1.4280251833250719
+ 1.4281212435271553
+ 1.4282173145982253
+ 1.4283133965400299
+ 1.4284094893543082
+ 1.428505593042803
+ 1.4286017076072564
+ 1.4286978330494084
+ 1.4287939693710052
+ 1.4288901165737908
+ 1.4289862746595017
+ 1.4290824436298923
+ 1.4291786234867001
+ 1.4292748142316696
+ 1.4293710158665487
+ 1.4294672283930829
+ 1.4295634518130169
+ 1.429659686128097
+ 1.4297559313400685
+ 1.4298521874506784
+ 1.429948454461675
+ 1.4300447323748093
+ 1.4301410211918242
+ 1.4302373209144672
+ 1.4303336315444928
+ 1.4304299530836448
+ 1.4305262855336744
+ 1.4306226288963337
+ 1.4307189831733673
+ 1.4308153483665311
+ 1.4309117244775735
+ 1.4310081115082474
+ 1.4311045094603028
+ 1.431200918335489
+ 1.4312973381355627
+ 1.4313937688622775
+ 1.4314902105173843
+ 1.4315866631026342
+ 1.4316831266197838
+ 1.4317796010705888
+ 1.4318760864567979
+ 1.4319725827801721
+ 1.4320690900424637
+ 1.4321656082454293
+ 1.432262137390824
+ 1.4323586774804047
+ 1.4324552285159275
+ 1.4325517904991496
+ 1.4326483634318279
+ 1.4327449473157232
+ 1.43284154215259
+ 1.4329381479441856
+ 1.4330347646922754
+ 1.4331313923986149
+ 1.4332280310649614
+ 1.4333246806930786
+ 1.4334213412847217
+ 1.4335180128416598
+ 1.433614695365647
+ 1.4337113888584461
+ 1.4338080933218176
+ 1.4339048087575286
+ 1.4340015351673396
+ 1.4340982725530125
+ 1.4341950209163081
+ 1.4342917802589943
+ 1.434388550582834
+ 1.4344853318895918
+ 1.4345821241810306
+ 1.4346789274589162
+ 1.4347757417250118
+ 1.4348725669810902
+ 1.4349694032289093
+ 1.4350662504702412
+ 1.4351631087068546
+ 1.43525997794051
+ 1.4353568581729785
+ 1.4354537494060284
+ 1.4355506516414287
+ 1.435647564880947
+ 1.4357444891263529
+ 1.4358414243794155
+ 1.4359383706419042
+ 1.4360353279155926
+ 1.4361322962022467
+ 1.4362292755036408
+ 1.4363262658215419
+ 1.4364232671577268
+ 1.4365202795139644
+ 1.4366173028920288
+ 1.4367143372936919
+ 1.4368113827207289
+ 1.4369084391749083
+ 1.437005506658013
+ 1.4371025851718053
+ 1.4371996747180686
+ 1.4372967752985795
+ 1.4373938869151044
+ 1.4374910095694244
+ 1.4375881432633197
+ 1.4376852879985582
+ 1.4377824437769244
+ 1.4378796106001899
+ 1.4379767884701331
+ 1.438073977388536
+ 1.4381711773571746
+ 1.4382683883778247
+ 1.4383656104522724
+ 1.4384628435822877
+ 1.4385600877696607
+ 1.4386573430161649
+ 1.4387546093235808
+ 1.4388518866936932
+ 1.4389491751282795
+ 1.4390464746291247
+ 1.4391437851980102
+ 1.4392411068367152
+ 1.4393384395470246
+ 1.4394357833307247
+ 1.4395331381895946
+ 1.4396305041254212
+ 1.4397278811399843
+ 1.4398252692350744
+ 1.4399226684124746
+ 1.4400200786739661
+ 1.4401175000213404
+ 1.4402149324563787
+ 1.4403123759808754
+ 1.4404098305966067
+ 1.4405072963053669
+ 1.4406047731089426
+ 1.4407022610091231
+ 1.4407997600076916
+ 1.4408972701064406
+ 1.4409947913071608
+ 1.441092323611636
+ 1.4411898670216634
+ 1.4412874215390274
+ 1.4413849871655229
+ 1.4414825639029376
+ 1.4415801517530606
+ 1.4416777507176937
+ 1.441775360798619
+ 1.4418729819976297
+ 1.441970614316525
+ 1.4420682577570945
+ 1.4421659123211323
+ 1.442263578010428
+ 1.4423612548267832
+ 1.4424589427719883
+ 1.4425566418478377
+ 1.4426543520561301
+ 1.4427520733986565
+ 1.4428498058772197
+ 1.4429475494936117
+ 1.4430453042496314
+ 1.4431430701470755
+ 1.4432408471877407
+ 1.4433386353734261
+ 1.4434364347059323
+ 1.4435342451870539
+ 1.4436320668185914
+ 1.443729899602346
+ 1.4438277435401186
+ 1.443925598633705
+ 1.4440234648849104
+ 1.4441213422955339
+ 1.4442192308673767
+ 1.4443171306022435
+ 1.4444150415019295
+ 1.444512963568245
+ 1.4446108968029898
+ 1.4447088412079687
+ 1.4448067967849825
+ 1.4449047635358379
+ 1.4450027414623372
+ 1.4451007305662857
+ 1.4451987308494911
+ 1.4452967423137597
+ 1.4453947649608934
+ 1.4454927987926982
+ 1.4455908438109846
+ 1.4456889000175583
+ 1.4457869674142239
+ 1.4458850460027979
+ 1.4459831357850781
+ 1.4460812367628784
+ 1.4461793489380073
+ 1.4462774723122762
+ 1.4463756068874873
+ 1.4464737526654625
+ 1.4465719096480014
+ 1.4466700778369195
+ 1.4467682572340299
+ 1.4468664478411424
+ 1.4469646496600677
+ 1.4470628626926196
+ 1.4471610869406117
+ 1.4472593224058554
+ 1.4473575690901623
+ 1.4474558269953537
+ 1.4475540961232378
+ 1.4476523764756311
+ 1.4477506680543482
+ 1.4478489708612026
+ 1.4479472848980171
+ 1.4480456101665982
+ 1.4481439466687696
+ 1.4482422944063484
+ 1.4483406533811451
+ 1.4484390235949844
+ 1.4485374050496811
+ 1.4486357977470532
+ 1.4487342016889226
+ 1.4488326168771042
+ 1.4489310433134253
+ 1.4490294809996971
+ 1.4491279299377435
+ 1.4492263901293869
+ 1.4493248615764454
+ 1.4494233442807414
+ 1.4495218382441002
+ 1.4496203434683423
+ 1.4497188599552859
+ 1.4498173877067588
+ 1.4499159267245834
+ 1.4500144770105852
+ 1.4501130385665824
+ 1.450211611394409
+ 1.4503101954958806
+ 1.4504087908728271
+ 1.4505073975270757
+ 1.4506060154604503
+ 1.4507046446747773
+ 1.4508032851718831
+ 1.4509019369535971
+ 1.451000600021745
+ 1.4510992743781554
+ 1.4511979600246574
+ 1.451296656963079
+ 1.4513953651952509
+ 1.4514940847229991
+ 1.4515928155481566
+ 1.45169155767255
+ 1.4517903110980175
+ 1.4518890758263856
+ 1.4519878518594793
+ 1.4520866391991427
+ 1.4521854378472012
+ 1.4522842478054867
+ 1.4523830690758346
+ 1.4524819016600807
+ 1.4525807455600512
+ 1.4526796007775857
+ 1.4527784673145179
+ 1.4528773451726837
+ 1.4529762343539148
+ 1.453075134860055
+ 1.4531740466929284
+ 1.45327296985438
+ 1.4533719043462443
+ 1.453470850170361
+ 1.4535698073285614
+ 1.4536687758226918
+ 1.4537677556545809
+ 1.4538667468260764
+ 1.4539657493390139
+ 1.4540647631952339
+ 1.4541637883965741
+ 1.454262824944875
+ 1.4543618728419814
+ 1.4544609320897275
+ 1.4545600026899623
+ 1.454659084644524
+ 1.4547581779552514
+ 1.4548572826239945
+ 1.4549563986525889
+ 1.4550555260428839
+ 1.4551546647967204
+ 1.4552538149159422
+ 1.4553529764023958
+ 1.4554521492579264
+ 1.4555513334843744
+ 1.4556505290835915
+ 1.4557497360574225
+ 1.4558489544077107
+ 1.4559481841363071
+ 1.4560474252450544
+ 1.4561466777358028
+ 1.4562459416104052
+ 1.4563452168707018
+ 1.456444503518546
+ 1.4565438015557854
+ 1.4566431109842715
+ 1.4567424318058511
+ 1.456841764022377
+ 1.4569411076357
+ 1.4570404626476692
+ 1.4571398290601407
+ 1.45723920687496
+ 1.4573385960939809
+ 1.4574379967190623
+ 1.4575374087520514
+ 1.4576368321948052
+ 1.4577362670491718
+ 1.4578357133170119
+ 1.4579351710001762
+ 1.4580346401005242
+ 1.4581341206199068
+ 1.45823361256018
+ 1.4583331159232027
+ 1.4584326307108277
+ 1.458532156924915
+ 1.4586316945673243
+ 1.4587312436399096
+ 1.4588308041445277
+ 1.4589303760830397
+ 1.4590299594573062
+ 1.4591295542691829
+ 1.4592291605205343
+ 1.4593287782132123
+ 1.4594284073490891
+ 1.4595280479300143
+ 1.4596276999578539
+ 1.4597273634344716
+ 1.4598270383617262
+ 1.4599267247414798
+ 1.4600264225756012
+ 1.460126131865946
+ 1.4602258526143814
+ 1.4603255848227727
+ 1.4604253284929851
+ 1.4605250836268773
+ 1.460624850226321
+ 1.4607246282931796
+ 1.4608244178293157
+ 1.4609242188365998
+ 1.4610240313168983
+ 1.461123855272078
+ 1.4612236907040066
+ 1.461323537614549
+ 1.4614233960055791
+ 1.4615232658789628
+ 1.4616231472365675
+ 1.4617230400802632
+ 1.4618229444119248
+ 1.4619228602334158
+ 1.4620227875466123
+ 1.4621227263533807
+ 1.4622226766555955
+ 1.4623226384551293
+ 1.4624226117538541
+ 1.4625225965536375
+ 1.4626225928563574
+ 1.4627226006638889
+ 1.4628226199781011
+ 1.4629226508008724
+ 1.463022693134076
+ 1.463122746979584
+ 1.4632228123392774
+ 1.4633228892150287
+ 1.4634229776087151
+ 1.4635230775222079
+ 1.4636231889573947
+ 1.463723311916143
+ 1.4638234464003379
+ 1.4639235924118514
+ 1.4640237499525688
+ 1.4641239190243631
+ 1.4642240996291163
+ 1.4643242917687083
+ 1.4644244954450196
+ 1.4645247106599266
+ 1.4646249374153171
+ 1.4647251757130679
+ 1.4648254255550637
+ 1.4649256869431833
+ 1.4650259598793107
+ 1.4651262443653323
+ 1.4652265404031264
+ 1.4653268479945787
+ 1.4654271671415733
+ 1.4655274978459953
+ 1.4656278401097258
+ 1.4657281939346578
+ 1.4658285593226728
+ 1.4659289362756547
+ 1.4660293247954916
+ 1.4661297248840719
+ 1.4662301365432837
+ 1.4663305597750098
+ 1.4664309945811453
+ 1.4665314409635735
+ 1.4666318989241869
+ 1.4667323684648668
+ 1.4668328495875149
+ 1.4669333422940167
+ 1.4670338465862556
+ 1.4671343624661335
+ 1.4672348899355343
+ 1.4673354289963538
+ 1.4674359796504803
+ 1.4675365418998065
+ 1.4676371157462309
+ 1.4677377011916408
+ 1.4678382982379359
+ 1.4679389068870023
+ 1.4680395271407407
+ 1.4681401590010461
+ 1.4682408024698086
+ 1.4683414575489269
+ 1.4684421242403014
+ 1.4685428025458223
+ 1.4686434924673879
+ 1.4687441940068999
+ 1.4688449071662486
+ 1.4689456319473371
+ 1.4690463683520651
+ 1.4691471163823271
+ 1.469247876040026
+ 1.4693486473270601
+ 1.4694494302453271
+ 1.4695502247967351
+ 1.4696510309831763
+ 1.4697518488065555
+ 1.4698526782687755
+ 1.4699535193717395
+ 1.470054372117346
+ 1.4701552365074999
+ 1.470256112544106
+ 1.4703570002290669
+ 1.4704578995642856
+ 1.4705588105516674
+ 1.4706597331931195
+ 1.470760667490544
+ 1.4708616134458463
+ 1.4709625710609358
+ 1.4710635403377175
+ 1.4711645212780979
+ 1.4712655138839845
+ 1.4713665181572864
+ 1.471467534099911
+ 1.4715685617137628
+ 1.4716696010007586
+ 1.4717706519628009
+ 1.4718717146018039
+ 1.4719727889196765
+ 1.4720738749183271
+ 1.4721749725996724
+ 1.4722760819656147
+ 1.472377203018074
+ 1.4724783357589599
+ 1.4725794801901866
+ 1.4726806363136611
+ 1.4727818041313017
+ 1.4728829836450223
+ 1.4729841748567378
+ 1.4730853777683606
+ 1.4731865923818059
+ 1.4732878186989893
+ 1.4733890567218271
+ 1.4734903064522358
+ 1.4735915678921347
+ 1.4736928410434353
+ 1.4737941259080571
+ 1.4738954224879217
+ 1.4739967307849433
+ 1.4740980508010399
+ 1.4741993825381337
+ 1.47430072599814
+ 1.4744020811829872
+ 1.4745034480945862
+ 1.4746048267348617
+ 1.4747062171057341
+ 1.4748076192091277
+ 1.4749090330469592
+ 1.475010458621159
+ 1.4751118959336393
+ 1.4752133449863305
+ 1.475314805781158
+ 1.4754162783200406
+ 1.4755177626049008
+ 1.4756192586376704
+ 1.4757207664202705
+ 1.4758222859546293
+ 1.4759238172426683
+ 1.4760253602863169
+ 1.4761269150875036
+ 1.4762284816481488
+ 1.476330059970191
+ 1.4764316500555481
+ 1.476533251906156
+ 1.4766348655239363
+ 1.4767364909108252
+ 1.4768381280687493
+ 1.4769397769996377
+ 1.4770414377054246
+ 1.4771431101880366
+ 1.4772447944494047
+ 1.4773464904914664
+ 1.47744819831615
+ 1.477549917925387
+ 1.4776516493211096
+ 1.4777533925052564
+ 1.4778551474797597
+ 1.4779569142465494
+ 1.4780586928075623
+ 1.4781604831647348
+ 1.4782622853200003
+ 1.4783640992753
+ 1.4784659250325611
+ 1.4785677625937295
+ 1.4786696119607354
+ 1.4787714731355177
+ 1.4788733461200159
+ 1.4789752309161681
+ 1.4790771275259154
+ 1.4791790359511896
+ 1.4792809561939375
+ 1.4793828882560971
+ 1.4794848321396081
+ 1.4795867878464122
+ 1.479688755378447
+ 1.4797907347376575
+ 1.4798927259259855
+ 1.4799947289453734
+ 1.4800967437977637
+ 1.4801987704850994
+ 1.4803008090093228
+ 1.4804028593723813
+ 1.4805049215762185
+ 1.4806069956227754
+ 1.4807090815140027
+ 1.4808111792518448
+ 1.4809132888382435
+ 1.4810154102751503
+ 1.4811175435645088
+ 1.4812196887082694
+ 1.4813218457083799
+ 1.4814240145667863
+ 1.4815261952854382
+ 1.481628387866283
+ 1.4817305923112751
+ 1.4818328086223549
+ 1.4819350368014839
+ 1.4820372768506067
+ 1.4821395287716759
+ 1.4822417925666431
+ 1.4823440682374578
+ 1.4824463557860725
+ 1.4825486552144445
+ 1.4826509665245229
+ 1.4827532897182616
+ 1.4828556247976181
+ 1.4829579717645436
+ 1.4830603306209924
+ 1.4831627013689195
+ 1.483265084010287
+ 1.4833674785470403
+ 1.4834698849811456
+ 1.4835723033145554
+ 1.4836747335492255
+ 1.4837771756871174
+ 1.4838796297301873
+ 1.483982095680396
+ 1.4840845735396981
+ 1.4841870633100547
+ 1.4842895649934305
+ 1.4843920785917781
+ 1.4844946041070626
+ 1.4845971415412433
+ 1.4846996908962831
+ 1.484802252174142
+ 1.4849048253767865
+ 1.4850074105061772
+ 1.4851100075642745
+ 1.4852126165530437
+ 1.4853152374744483
+ 1.4854178703304572
+ 1.4855205151230293
+ 1.4856231718541328
+ 1.4857258405257345
+ 1.4858285211397972
+ 1.4859312136982898
+ 1.4860339182031801
+ 1.4861366346564311
+ 1.4862393630600181
+ 1.4863421034159008
+ 1.4864448557260515
+ 1.4865476199924419
+ 1.4866503962170368
+ 1.4867531844018087
+ 1.4868559845487275
+ 1.4869587966597655
+ 1.4870616207368894
+ 1.4871644567820759
+ 1.4872673047972924
+ 1.4873701647845168
+ 1.4874730367457132
+ 1.4875759206828658
+ 1.4876788165979404
+ 1.4877817244929126
+ 1.4878846443697575
+ 1.4879875762304515
+ 1.4880905200769672
+ 1.4881934759112851
+ 1.488296443735375
+ 1.4883994235512177
+ 1.4885024153607878
+ 1.4886054191660658
+ 1.4887084349690265
+ 1.4888114627716491
+ 1.4889145025759154
+ 1.4890175543838009
+ 1.4891206181972823
+ 1.4892236940183452
+ 1.4893267818489702
+ 1.489429881691134
+ 1.4895329935468209
+ 1.4896361174180117
+ 1.4897392533066878
+ 1.4898424012148306
+ 1.4899455611444286
+ 1.490048733097457
+ 1.4901519170759061
+ 1.4902551130817576
+ 1.4903583211169953
+ 1.4904615411836057
+ 1.4905647732835758
+ 1.4906680174188869
+ 1.4907712735915291
+ 1.4908745418034879
+ 1.4909778220567482
+ 1.4910811143533045
+ 1.4911844186951366
+ 1.4912877350842371
+ 1.4913910635225953
+ 1.4914944040121978
+ 1.491597756555038
+ 1.4917011211531033
+ 1.4918044978083844
+ 1.4919078865228754
+ 1.492011287298562
+ 1.492114700137442
+ 1.4922181250415039
+ 1.4923215620127377
+ 1.492425011053145
+ 1.4925284721647125
+ 1.4926319453494374
+ 1.4927354306093092
+ 1.4928389279463323
+ 1.4929424373624911
+ 1.4930459588597895
+ 1.4931494924402167
+ 1.4932530381057771
+ 1.4933565958584594
+ 1.4934601657002669
+ 1.4935637476331987
+ 1.4936673416592443
+ 1.4937709477804106
+ 1.4938745659986916
+ 1.493978196316091
+ 1.4940818387346066
+ 1.4941854932562368
+ 1.4942891598829893
+ 1.4943928386168568
+ 1.4944965294598442
+ 1.4946002324139578
+ 1.4947039474811936
+ 1.4948076746635588
+ 1.4949114139630526
+ 1.4950151653816832
+ 1.4951189289214541
+ 1.4952227045843667
+ 1.4953264923724292
+ 1.4954302922876501
+ 1.4955341043320278
+ 1.4956379285075685
+ 1.4957417648162876
+ 1.4958456132601861
+ 1.4959494738412726
+ 1.4960533465615582
+ 1.4961572314230462
+ 1.4962611284277492
+ 1.4963650375776762
+ 1.4964689588748341
+ 1.4965728923212369
+ 1.4966768379188944
+ 1.4967807956698151
+ 1.4968847655760125
+ 1.4969887476394954
+ 1.4970927418622852
+ 1.497196748246385
+ 1.4973007667938125
+ 1.4974047975065818
+ 1.497508840386705
+ 1.4976128954361931
+ 1.4977169626570721
+ 1.4978210420513443
+ 1.4979251336210389
+ 1.4980292373681618
+ 1.4981333532947303
+ 1.4982374814027677
+ 1.4983416216942853
+ 1.4984457741713064
+ 1.4985499388358461
+ 1.4986541156899227
+ 1.4987583047355579
+ 1.4988625059747709
+ 1.4989667194095806
+ 1.4990709450420032
+ 1.499175182874072
+ 1.4992794329077972
+ 1.4993836951452058
+ 1.4994879695883185
+ 1.4995922562391599
+ 1.4996965550997516
+ 1.4998008661721149
+ 1.4999051894582791
+ 1.5000095249602661
+ 1.5001138726800984
+ 1.5002182326198035
+ 1.5003226047814098
+ 1.5004269891669388
+ 1.5005313857784177
+ 1.500635794617877
+ 1.5007402156873417
+ 1.5008446489888398
+ 1.5009490945244031
+ 1.5010535522960542
+ 1.501158022305829
+ 1.5012625045557533
+ 1.501366999047854
+ 1.5014715057841714
+ 1.501576024766726
+ 1.5016805559975546
+ 1.501785099478689
+ 1.5018896552121603
+ 1.5019942232000008
+ 1.5020988034442453
+ 1.5022033959469303
+ 1.5023080007100809
+ 1.5024126177357375
+ 1.5025172470259371
+ 1.5026218885827125
+ 1.5027265424080989
+ 1.5028312085041329
+ 1.5029358868728495
+ 1.5030405775162874
+ 1.5031452804364882
+ 1.5032499956354808
+ 1.5033547231153115
+ 1.5034594628780165
+ 1.503564214925635
+ 1.5036689792602085
+ 1.5037737558837734
+ 1.5038785447983711
+ 1.5039833460060457
+ 1.5040881595088353
+ 1.5041929853087859
+ 1.5042978234079356
+ 1.50440267380833
+ 1.50450753651201
+ 1.5046124115210204
+ 1.5047172988374058
+ 1.5048221984632126
+ 1.5049271104004824
+ 1.5050320346512589
+ 1.5051369712175937
+ 1.5052419201015288
+ 1.505346881305113
+ 1.5054518548303948
+ 1.5055568406794178
+ 1.5056618388542311
+ 1.5057668493568845
+ 1.5058718721894291
+ 1.5059769073539082
+ 1.5060819548523798
+ 1.5061870146868892
+ 1.5062920868594869
+ 1.506397171372222
+ 1.5065022682271503
+ 1.5066073774263247
+ 1.5067124989717942
+ 1.5068176328656122
+ 1.5069227791098323
+ 1.5070279377065092
+ 1.5071331086576996
+ 1.5072382919654481
+ 1.5073434876318235
+ 1.5074486956588737
+ 1.5075539160486542
+ 1.5076591488032223
+ 1.5077643939246359
+ 1.507869651414955
+ 1.5079749212762308
+ 1.5080802035105296
+ 1.5081854981199028
+ 1.5082908051064114
+ 1.508396124472116
+ 1.5085014562190802
+ 1.5086068003493576
+ 1.5087121568650117
+ 1.5088175257681051
+ 1.5089229070607013
+ 1.5090283007448564
+ 1.5091337068226376
+ 1.5092391252961066
+ 1.5093445561673293
+ 1.5094499994383657
+ 1.5095554551112833
+ 1.5096609231881442
+ 1.5097664036710172
+ 1.5098718965619653
+ 1.5099774018630554
+ 1.5100829195763568
+ 1.5101884497039333
+ 1.5102939922478527
+ 1.5103995472101825
+ 1.510505114592994
+ 1.5106106943983522
+ 1.5107162866283281
+ 1.510821891284996
+ 1.5109275083704206
+ 1.5110331378866722
+ 1.5111387798358231
+ 1.5112444342199483
+ 1.5113501010411174
+ 1.5114557803013986
+ 1.5115614720028729
+ 1.5116671761476088
+ 1.5117728927376779
+ 1.5118786217751563
+ 1.5119843632621233
+ 1.5120901172006478
+ 1.5121958835928064
+ 1.5123016624406809
+ 1.5124074537463401
+ 1.5125132575118656
+ 1.512619073739329
+ 1.5127249024308183
+ 1.5128307435884019
+ 1.5129365972141651
+ 1.5130424633101844
+ 1.5131483418785359
+ 1.5132542329213061
+ 1.5133601364405753
+ 1.5134660524384174
+ 1.5135719809169195
+ 1.5136779218781631
+ 1.5137838753242268
+ 1.5138898412571986
+ 1.5139958196791579
+ 1.5141018105921897
+ 1.5142078139983779
+ 1.5143138298998087
+ 1.5144198582985653
+ 1.5145258991967316
+ 1.5146319525963958
+ 1.5147380184996415
+ 1.5148440969085606
+ 1.5149501878252349
+ 1.5150562912517571
+ 1.5151624071902092
+ 1.5152685356426869
+ 1.5153746766112748
+ 1.5154808300980649
+ 1.5155869961051422
+ 1.5156931746346036
+ 1.5157993656885334
+ 1.5159055692690269
+ 1.5160117853781792
+ 1.5161180140180721
+ 1.5162242551908089
+ 1.5163305088984784
+ 1.516436775143174
+ 1.5165430539269893
+ 1.5166493452520178
+ 1.5167556491203569
+ 1.516861965534102
+ 1.5169682944953502
+ 1.5170746360061944
+ 1.517180990068729
+ 1.5172873566850569
+ 1.5173937358572747
+ 1.5175001275874784
+ 1.5176065318777652
+ 1.5177129487302383
+ 1.517819378146996
+ 1.5179258201301358
+ 1.5180322746817623
+ 1.5181387418039707
+ 1.5182452214988635
+ 1.5183517137685467
+ 1.518458218615119
+ 1.518564736040684
+ 1.5186712660473456
+ 1.5187778086372075
+ 1.5188843638123699
+ 1.5189909315749379
+ 1.5190975119270225
+ 1.5192041048707234
+ 1.5193107104081442
+ 1.5194173285413994
+ 1.5195239592725907
+ 1.5196306026038249
+ 1.519737258537212
+ 1.5198439270748563
+ 1.5199506082188681
+ 1.5200573019713595
+ 1.5201640083344374
+ 1.5202707273102081
+ 1.5203774589007897
+ 1.5204842031082855
+ 1.5205909599348146
+ 1.5206977293824799
+ 1.520804511453399
+ 1.520911306149682
+ 1.5210181134734466
+ 1.5211249334268011
+ 1.5212317660118624
+ 1.5213386112307443
+ 1.5214454690855608
+ 1.5215523395784283
+ 1.5216592227114634
+ 1.5217661184867823
+ 1.5218730269064982
+ 1.5219799479727332
+ 1.5220868816876028
+ 1.5221938280532235
+ 1.5223007870717158
+ 1.5224077587451983
+ 1.5225147430757942
+ 1.5226217400656179
+ 1.5227287497167905
+ 1.5228357720314352
+ 1.5229428070116746
+ 1.5230498546596263
+ 1.5231569149774156
+ 1.5232639879671623
+ 1.5233710736309929
+ 1.5234781719710315
+ 1.5235852829893977
+ 1.5236924066882211
+ 1.5237995430696241
+ 1.5239066921357338
+ 1.5240138538886703
+ 1.5241210283305708
+ 1.5242282154635536
+ 1.5243354152897459
+ 1.5244426278112804
+ 1.5245498530302817
+ 1.5246570909488824
+ 1.5247643415692054
+ 1.5248716048933875
+ 1.5249788809235543
+ 1.5250861696618367
+ 1.5251934711103663
+ 1.5253007852712765
+ 1.5254081121466958
+ 1.5255154517387592
+ 1.5256228040495992
+ 1.5257301690813476
+ 1.5258375468361409
+ 1.5259449373161091
+ 1.5260523405233921
+ 1.5261597564601206
+ 1.5262671851284315
+ 1.5263746265304639
+ 1.526482080668351
+ 1.5265895475442293
+ 1.5266970271602402
+ 1.52680451951852
+ 1.5269120246212049
+ 1.5270195424704383
+ 1.5271270730683535
+ 1.527234616417094
+ 1.5273421725187979
+ 1.5274497413756098
+ 1.5275573229896711
+ 1.5276649173631209
+ 1.5277725244980971
+ 1.5278801443967502
+ 1.5279877770612191
+ 1.5280954224936472
+ 1.5282030806961819
+ 1.5283107516709635
+ 1.5284184354201393
+ 1.5285261319458516
+ 1.5286338412502511
+ 1.5287415633354842
+ 1.528849298203693
+ 1.5289570458570259
+ 1.529064806297634
+ 1.5291725795276629
+ 1.5292803655492611
+ 1.5293881643645777
+ 1.5294959759757614
+ 1.5296038003849703
+ 1.5297116375943431
+ 1.5298194876060383
+ 1.5299273504222046
+ 1.5300352260449921
+ 1.5301431144765609
+ 1.5302510157190536
+ 1.5303589297746318
+ 1.5304668566454456
+ 1.5305747963336498
+ 1.5306827488413994
+ 1.5307907141708492
+ 1.5308986923241557
+ 1.5310066833034708
+ 1.5311146871109613
+ 1.5312227037487731
+ 1.5313307332190704
+ 1.5314387755240069
+ 1.5315468306657436
+ 1.5316548986464424
+ 1.5317629794682577
+ 1.531871073133352
+ 1.5319791796438837
+ 1.5320872990020162
+ 1.5321954312099093
+ 1.5323035762697264
+ 1.532411734183627
+ 1.5325199049537763
+ 1.5326280885823347
+ 1.532736285071471
+ 1.5328444944233435
+ 1.5329527166401171
+ 1.5330609517239617
+ 1.53316919967704
+ 1.5332774605015187
+ 1.5333857341995647
+ 1.5334940207733447
+ 1.5336023202250233
+ 1.5337106325567722
+ 1.5338189577707555
+ 1.5339272958691494
+ 1.5340356468541154
+ 1.5341440107278268
+ 1.5342523874924563
+ 1.5343607771501706
+ 1.5344691797031407
+ 1.5345775951535428
+ 1.5346860235035422
+ 1.5347944647553204
+ 1.5349029189110417
+ 1.5350113859728858
+ 1.5351198659430247
+ 1.5352283588236282
+ 1.5353368646168821
+ 1.5354453833249508
+ 1.5355539149500177
+ 1.5356624594942572
+ 1.5357710169598435
+ 1.5358795873489586
+ 1.5359881706637777
+ 1.5360967669064762
+ 1.5362053760792374
+ 1.5363139981842397
+ 1.5364226332236648
+ 1.5365312811996878
+ 1.5366399421144945
+ 1.5367486159702615
+ 1.5368573027691705
+ 1.5369660025134066
+ 1.5370747152051523
+ 1.5371834408465899
+ 1.5372921794399046
+ 1.5374009309872776
+ 1.5375096954908949
+ 1.5376184729529376
+ 1.5377272633755994
+ 1.5378360667610582
+ 1.5379448831115063
+ 1.538053712429128
+ 1.5381625547161064
+ 1.5382714099746371
+ 1.538380278206906
+ 1.5384891594151011
+ 1.5385980536014081
+ 1.538706960768021
+ 1.5388158809171291
+ 1.5389248140509222
+ 1.5390337601715962
+ 1.5391427192813361
+ 1.5392516913823384
+ 1.5393606764767922
+ 1.5394696745668937
+ 1.5395786856548337
+ 1.5396877097428123
+ 1.5397967468330138
+ 1.5399057969276433
+ 1.5400148600288883
+ 1.540123936138952
+ 1.5402330252600251
+ 1.5403421273943083
+ 1.5404512425439976
+ 1.5405603707112889
+ 1.5406695118983871
+ 1.5407786661074825
+ 1.5408878333407765
+ 1.5409970136004734
+ 1.5411062068887718
+ 1.5412154132078704
+ 1.5413246325599728
+ 1.541433864947277
+ 1.5415431103719908
+ 1.5416523688363106
+ 1.5417616403424443
+ 1.541870924892595
+ 1.5419802224889652
+ 1.5420895331337594
+ 1.5421988568291829
+ 1.5423081935774454
+ 1.5424175433807452
+ 1.5425269062412967
+ 1.5426362821613027
+ 1.5427456711429701
+ 1.5428550731885069
+ 1.5429644883001243
+ 1.5430739164800302
+ 1.5431833577304335
+ 1.5432928120535427
+ 1.5434022794515709
+ 1.5435117599267276
+ 1.5436212534812266
+ 1.5437307601172743
+ 1.5438402798370878
+ 1.5439498126428792
+ 1.5440593585368592
+ 1.5441689175212463
+ 1.54427848959825
+ 1.5443880747700853
+ 1.5444976730389721
+ 1.5446072844071239
+ 1.5447169088767538
+ 1.5448265464500797
+ 1.544936197129325
+ 1.5450458609166982
+ 1.5451555378144211
+ 1.5452652278247159
+ 1.5453749309497977
+ 1.5454846471918866
+ 1.5455943765532021
+ 1.5457041190359675
+ 1.5458138746424002
+ 1.5459236433747241
+ 1.5460334252351646
+ 1.5461432202259391
+ 1.5462530283492697
+ 1.5463628496073856
+ 1.5464726840025058
+ 1.5465825315368569
+ 1.5466923922126623
+ 1.5468022660321494
+ 1.5469121529975416
+ 1.5470220531110703
+ 1.5471319663749568
+ 1.5472418927914304
+ 1.5473518323627222
+ 1.5474617850910557
+ 1.5475717509786637
+ 1.5476817300277721
+ 1.5477917222406152
+ 1.5479017276194167
+ 1.5480117461664147
+ 1.5481217778838336
+ 1.548231822773912
+ 1.5483418808388754
+ 1.5484519520809623
+ 1.5485620365024033
+ 1.5486721341054344
+ 1.5487822448922852
+ 1.5488923688651943
+ 1.5490025060263948
+ 1.5491126563781252
+ 1.5492228199226208
+ 1.5493329966621165
+ 1.5494431865988516
+ 1.5495533897350586
+ 1.5496636060729845
+ 1.5497738356148589
+ 1.549884078362926
+ 1.5499943343194265
+ 1.5501046034865986
+ 1.5502148858666835
+ 1.5503251814619201
+ 1.5504354902745507
+ 1.5505458123068212
+ 1.5506561475609684
+ 1.5507664960392389
+ 1.5508768577438792
+ 1.5509872326771279
+ 1.5510976208412315
+ 1.551208022238433
+ 1.5513184368709836
+ 1.5514288647411254
+ 1.5515393058511013
+ 1.551649760203164
+ 1.5517602277995612
+ 1.5518707086425387
+ 1.5519812027343447
+ 1.5520917100772298
+ 1.5522022306734393
+ 1.5523127645252284
+ 1.5524233116348458
+ 1.5525338720045443
+ 1.5526444456365698
+ 1.5527550325331789
+ 1.5528656326966228
+ 1.5529762461291545
+ 1.5530868728330294
+ 1.5531975128104982
+ 1.5533081660638166
+ 1.5534188325952398
+ 1.5535295124070232
+ 1.5536402055014209
+ 1.5537509118806914
+ 1.553861631547093
+ 1.5539723645028791
+ 1.5540831107503079
+ 1.5541938702916431
+ 1.5543046431291376
+ 1.5544154292650563
+ 1.5545262287016548
+ 1.5546370414411967
+ 1.5547478674859383
+ 1.5548587068381434
+ 1.5549695595000754
+ 1.5550804254739956
+ 1.5551913047621655
+ 1.5553021973668504
+ 1.5554131032903118
+ 1.5555240225348161
+ 1.5556349551026292
+ 1.5557459009960151
+ 1.5558568602172391
+ 1.5559678327685662
+ 1.5560788186522676
+ 1.5561898178706046
+ 1.5563008304258519
+ 1.5564118563202713
+ 1.5565228955561361
+ 1.5566339481357154
+ 1.5567450140612795
+ 1.5568560933350943
+ 1.556967185959435
+ 1.5570782919365713
+ 1.5571894112687721
+ 1.5573005439583156
+ 1.5574116900074706
+ 1.5575228494185134
+ 1.5576340221937155
+ 1.5577452083353511
+ 1.5578564078456967
+ 1.5579676207270265
+ 1.5580788469816154
+ 1.5581900866117437
+ 1.5583013396196834
+ 1.5584126060077133
+ 1.5585238857781163
+ 1.5586351789331614
+ 1.5587464854751352
+ 1.5588578054063151
+ 1.5589691387289779
+ 1.5590804854454041
+ 1.5591918455578795
+ 1.5593032190686822
+ 1.5594146059800933
+ 1.5595260062944003
+ 1.5596374200138778
+ 1.5597488471408132
+ 1.5598602876774932
+ 1.5599717416261984
+ 1.5600832089892169
+ 1.5601946897688297
+ 1.5603061839673247
+ 1.5604176915869921
+ 1.5605292126301091
+ 1.5606407470989734
+ 1.5607522949958712
+ 1.5608638563230828
+ 1.5609754310829089
+ 1.5610870192776263
+ 1.5611986209095343
+ 1.5613102359809243
+ 1.561421864494078
+ 1.561533506451295
+ 1.561645161854865
+ 1.5617568307070777
+ 1.5618685130102294
+ 1.5619802087666153
+ 1.5620919179785226
+ 1.5622036406482491
+ 1.5623153767780906
+ 1.5624271263703455
+ 1.562538889427306
+ 1.5626506659512693
+ 1.562762455944531
+ 1.5628742594093887
+ 1.5629860763481433
+ 1.5630979067630923
+ 1.5632097506565334
+ 1.5633216080307657
+ 1.563433478888091
+ 1.5635453632308096
+ 1.5636572610612232
+ 1.563769172381632
+ 1.5638810971943369
+ 1.5639930355016418
+ 1.564104987305851
+ 1.5642169526092662
+ 1.5643289314141922
+ 1.5644409237229353
+ 1.564552929537798
+ 1.564664948861086
+ 1.5647769816951105
+ 1.5648890280421708
+ 1.5650010879045781
+ 1.5651131612846374
+ 1.5652252481846596
+ 1.5653373486069535
+ 1.5654494625538284
+ 1.5655615900275934
+ 1.5656737310305548
+ 1.56578588556503
+ 1.5658980536333251
+ 1.5660102352377556
+ 1.5661224303806316
+ 1.5662346390642656
+ 1.5663468612909688
+ 1.5664590970630616
+ 1.566571346382855
+ 1.5666836092526601
+ 1.566795885674797
+ 1.5669081756515786
+ 1.5670204791853237
+ 1.5671327962783497
+ 1.5672451269329686
+ 1.5673574711515057
+ 1.5674698289362734
+ 1.5675822002895914
+ 1.567694585213782
+ 1.5678069837111637
+ 1.5679193957840598
+ 1.5680318214347839
+ 1.568144260665665
+ 1.5682567134790184
+ 1.5683691798771724
+ 1.5684816598624496
+ 1.5685941534371697
+ 1.568706660603659
+ 1.568819181364242
+ 1.5689317157212455
+ 1.5690442636769908
+ 1.5691568252338093
+ 1.5692694003940233
+ 1.5693819891599605
+ 1.569494591533952
+ 1.5696072075183196
+ 1.5697198371154009
+ 1.569832480327515
+ 1.5699451371569977
+ 1.5700578076061789
+ 1.5701704916773909
+ 1.5702831893729587
+ 1.5703959006952184
+ 1.5705086256465024
+ 1.5706213642291442
+ 1.5707341164454736
+ 1.5708468822978277
+ 1.5709596617885413
+ 1.5710724549199457
+ 1.5711852616943789
+ 1.5712980821141764
+ 1.5714109161816741
+ 1.5715237638992119
+ 1.5716366252691223
+ 1.5717495002937463
+ 1.5718623889754206
+ 1.5719752913164831
+ 1.5720882073192823
+ 1.5722011369861433
+ 1.5723140803194213
+ 1.5724270373214491
+ 1.5725400079945695
+ 1.5726529923411228
+ 1.5727659903634561
+ 1.5728790020639136
+ 1.5729920274448324
+ 1.5731050665085586
+ 1.573218119257443
+ 1.5733311856938224
+ 1.5734442658200485
+ 1.5735573596384649
+ 1.5736704671514183
+ 1.5737835883612594
+ 1.5738967232703327
+ 1.5740098718809856
+ 1.5741230341955665
+ 1.5742362102164311
+ 1.5743493999459222
+ 1.5744626033863924
+ 1.5745758205401947
+ 1.5746890514096796
+ 1.5748022959972015
+ 1.5749155543051072
+ 1.5750288263357519
+ 1.575142112091491
+ 1.5752554115746769
+ 1.5753687247876651
+ 1.5754820517328092
+ 1.5755953924124686
+ 1.5757087468289943
+ 1.57582211498475
+ 1.5759354968820869
+ 1.5760488925233602
+ 1.5761623019109356
+ 1.5762757250471715
+ 1.5763891619344208
+ 1.5765026125750472
+ 1.5766160769714139
+ 1.5767295551258742
+ 1.5768430470407973
+ 1.5769565527185392
+ 1.577070072161467
+ 1.5771836053719417
+ 1.577297152352326
+ 1.5774107131049864
+ 1.5775242876322826
+ 1.5776378759365859
+ 1.5777514780202591
+ 1.5778650938856638
+ 1.5779787235351754
+ 1.5780923669711555
+ 1.5782060241959728
+ 1.578319695211994
+ 1.5784333800215913
+ 1.5785470786271325
+ 1.5786607910309844
+ 1.5787745172355243
+ 1.5788882572431175
+ 1.5790020110561322
+ 1.5791157786769503
+ 1.5792295601079378
+ 1.5793433553514671
+ 1.5794571644099125
+ 1.5795709872856503
+ 1.5796848239810544
+ 1.5797986744984966
+ 1.5799125388403583
+ 1.580026417009011
+ 1.580140309006834
+ 1.5802542148361995
+ 1.5803681344994911
+ 1.5804820679990823
+ 1.5805960153373566
+ 1.5807099765166921
+ 1.5808239515394664
+ 1.5809379404080615
+ 1.5810519431248558
+ 1.5811659596922352
+ 1.581279990112576
+ 1.5813940343882686
+ 1.58150809252169
+ 1.5816221645152231
+ 1.5817362503712569
+ 1.5818503500921723
+ 1.5819644636803518
+ 1.5820785911381905
+ 1.5821927324680649
+ 1.5823068876723678
+ 1.5824210567534789
+ 1.5825352397137964
+ 1.5826494365557007
+ 1.5827636472815869
+ 1.5828778718938361
+ 1.582992110394847
+ 1.5831063627870035
+ 1.5832206290727
+ 1.5833349092543276
+ 1.5834492033342764
+ 1.5835635113149438
+ 1.5836778331987147
+ 1.5837921689879904
+ 1.5839065186851626
+ 1.5840208822926236
+ 1.5841352598127771
+ 1.5842496512480049
+ 1.5843640566007147
+ 1.5844784758733006
+ 1.5845929090681561
+ 1.5847073561876834
+ 1.5848218172342807
+ 1.5849362922103434
+ 1.5850507811182739
+ 1.585165283960472
+ 1.5852798007393381
+ 1.5853943314572758
+ 1.5855088761166829
+ 1.5856234347199631
+ 1.5857380072695149
+ 1.585852593767751
+ 1.585967194217067
+ 1.586081808619872
+ 1.5861964369785657
+ 1.586311079295559
+ 1.5864257355732556
+ 1.5865404058140604
+ 1.5866550900203842
+ 1.5867697881946321
+ 1.5868845003392138
+ 1.5869992264565314
+ 1.5871139665490051
+ 1.5872287206190343
+ 1.5873434886690372
+ 1.5874582707014167
+ 1.5875730667185888
+ 1.5876878767229683
+ 1.5878027007169635
+ 1.5879175387029874
+ 1.5880323906834559
+ 1.5881472566607793
+ 1.5882621366373744
+ 1.5883770306156555
+ 1.5884919385980365
+ 1.5886068605869401
+ 1.5887217965847746
+ 1.5888367465939652
+ 1.588951710616922
+ 1.5890666886560714
+ 1.5891816807138233
+ 1.5892966867926051
+ 1.5894117068948317
+ 1.5895267410229239
+ 1.5896417891793073
+ 1.5897568513663978
+ 1.5898719275866207
+ 1.5899870178423994
+ 1.5901021221361507
+ 1.5902172404703054
+ 1.5903323728472869
+ 1.5904475192695178
+ 1.5905626797394257
+ 1.5906778542594331
+ 1.590793042831969
+ 1.5909082454594594
+ 1.5910234621443318
+ 1.5911386928890157
+ 1.5912539376959396
+ 1.591369196567527
+ 1.5914844695062174
+ 1.5915997565144313
+ 1.5917150575946057
+ 1.5918303727491698
+ 1.5919457019805567
+ 1.5920610452911965
+ 1.5921764026835272
+ 1.5922917741599762
+ 1.5924071597229785
+ 1.5925225593749726
+ 1.5926379731183873
+ 1.5927534009556659
+ 1.5928688428892408
+ 1.5929842989215466
+ 1.5930997690550228
+ 1.5932152532921111
+ 1.5933307516352389
+ 1.5934462640868556
+ 1.5935617906493997
+ 1.593677331325307
+ 1.5937928861170207
+ 1.5939084550269778
+ 1.5940240380576252
+ 1.5941396352114037
+ 1.5942552464907551
+ 1.5943708718981242
+ 1.5944865114359534
+ 1.5946021651066844
+ 1.594717832912768
+ 1.5948335148566433
+ 1.594949210940765
+ 1.5950649211675731
+ 1.5951806455395126
+ 1.595296384059038
+ 1.5954121367285954
+ 1.5955279035506302
+ 1.5956436845275923
+ 1.5957594796619343
+ 1.5958752889561074
+ 1.5959911124125583
+ 1.5961069500337419
+ 1.5962228018221096
+ 1.5963386677801135
+ 1.5964545479102066
+ 1.5965704422148437
+ 1.5966863506964755
+ 1.5968022733575624
+ 1.5969182102005584
+ 1.5970341612279142
+ 1.5971501264420882
+ 1.5972661058455422
+ 1.5973820994407326
+ 1.5974981072301147
+ 1.5976141292161445
+ 1.597730165401287
+ 1.5978462157880016
+ 1.597962280378747
+ 1.59807835917598
+ 1.5981944521821674
+ 1.5983105593997702
+ 1.5984266808312513
+ 1.5985428164790714
+ 1.598658966345696
+ 1.5987751304335904
+ 1.5988913087452143
+ 1.5990075012830398
+ 1.5991237080495249
+ 1.5992399290471457
+ 1.5993561642783582
+ 1.5994724137456415
+ 1.5995886774514529
+ 1.5997049553982696
+ 1.5998212475885558
+ 1.5999375540247789
+ 1.6000538747094151
+ 1.6001702096449359
+ 1.6002865588338038
+ 1.6004029222784986
+ 1.6005192999814908
+ 1.6006356919452538
+ 1.6007520981722585
+ 1.6008685186649827
+ 1.6009849534258989
+ 1.6011014024574819
+ 1.6012178657622111
+ 1.6013343433425595
+ 1.601450835201004
+ 1.6015673413400209
+ 1.6016838617620959
+ 1.601800396469695
+ 1.6019169454653086
+ 1.6020335087514106
+ 1.6021500863304847
+ 1.6022666782050095
+ 1.6023832843774624
+ 1.6024999048503328
+ 1.6026165396260965
+ 1.6027331887072431
+ 1.6028498520962524
+ 1.6029665297956091
+ 1.6030832218077988
+ 1.6031999281353051
+ 1.6033166487806141
+ 1.6034333837462129
+ 1.6035501330345896
+ 1.6036668966482277
+ 1.6037836745896201
+ 1.6039004668612515
+ 1.6040172734656146
+ 1.6041340944051958
+ 1.6042509296824878
+ 1.6043677792999815
+ 1.6044846432601647
+ 1.6046015215655347
+ 1.6047184142185797
+ 1.6048353212217958
+ 1.6049522425776748
+ 1.6050691782887103
+ 1.6051861283573985
+ 1.6053030927862366
+ 1.6054200715777154
+ 1.6055370647343399
+ 1.6056540722585977
+ 1.6057710941529875
+ 1.6058881304200161
+ 1.606005181062172
+ 1.6061222460819591
+ 1.6062393254818814
+ 1.6063564192644286
+ 1.6064735274321134
+ 1.6065906499874298
+ 1.6067077869328803
+ 1.6068249382709705
+ 1.6069421040042005
+ 1.6070592841350766
+ 1.6071764786661054
+ 1.6072936875997854
+ 1.607410910938627
+ 1.6075281486851325
+ 1.6076454008418104
+ 1.6077626674111698
+ 1.6078799483957174
+ 1.6079972437979597
+ 1.6081145536204065
+ 1.608231877865566
+ 1.6083492165359534
+ 1.6084665696340728
+ 1.608583937162436
+ 1.6087013191235597
+ 1.6088187155199503
+ 1.6089361263541242
+ 1.6090535516285949
+ 1.6091709913458734
+ 1.6092884455084786
+ 1.609405914118921
+ 1.6095233971797167
+ 1.6096408946933847
+ 1.609758406662442
+ 1.6098759330894012
+ 1.6099934739767863
+ 1.6101110293271124
+ 1.6102285991428997
+ 1.6103461834266639
+ 1.6104637821809309
+ 1.6105813954082193
+ 1.610699023111049
+ 1.61081666529194
+ 1.6109343219534238
+ 1.6110519930980136
+ 1.6111696787282341
+ 1.6112873788466149
+ 1.6114050934556774
+ 1.6115228225579477
+ 1.6116405661559523
+ 1.6117583242522111
+ 1.6118760968492625
+ 1.6119938839496259
+ 1.6121116855558308
+ 1.6122295016704085
+ 1.6123473322958848
+ 1.6124651774347918
+ 1.6125830370896568
+ 1.6127009112630166
+ 1.6128187999573984
+ 1.612936703175333
+ 1.613054620919359
+ 1.6131725531920047
+ 1.6132904999958062
+ 1.6134084613332962
+ 1.6135264372070106
+ 1.6136444276194875
+ 1.6137624325732569
+ 1.6138804520708601
+ 1.6139984861148315
+ 1.6141165347077147
+ 1.6142345978520403
+ 1.6143526755503526
+ 1.6144707678051904
+ 1.6145888746190915
+ 1.6147069959946003
+ 1.6148251319342537
+ 1.6149432824405974
+ 1.6150614475161738
+ 1.6151796271635213
+ 1.6152978213851898
+ 1.6154160301837199
+ 1.6155342535616513
+ 1.6156524915215384
+ 1.6157707440659266
+ 1.6158890111973532
+ 1.6160072929183744
+ 1.616125589231536
+ 1.6162439001393814
+ 1.6163622256444634
+ 1.6164805657493331
+ 1.6165989204565345
+ 1.6167172897686222
+ 1.6168356736881486
+ 1.6169540722176592
+ 1.6170724853597132
+ 1.6171909131168605
+ 1.6173093554916538
+ 1.6174278124866452
+ 1.6175462841043953
+ 1.6176647703474556
+ 1.6177832712183806
+ 1.6179017867197238
+ 1.6180203168540508
+ 1.6181388616239119
+ 1.6182574210318665
+ 1.6183759950804766
+ 1.6184945837722995
+ 1.6186131871098897
+ 1.6187318050958135
+ 1.6188504377326332
+ 1.6189690850229042
+ 1.6190877469691909
+ 1.6192064235740564
+ 1.6193251148400654
+ 1.6194438207697821
+ 1.6195625413657655
+ 1.619681276630587
+ 1.6198000265668064
+ 1.6199187911769939
+ 1.6200375704637151
+ 1.6201563644295349
+ 1.6202751730770275
+ 1.6203939964087537
+ 1.6205128344272859
+ 1.6206316871351965
+ 1.6207505545350513
+ 1.6208694366294205
+ 1.6209883334208803
+ 1.6211072449119954
+ 1.6212261711053473
+ 1.6213451120035036
+ 1.6214640676090393
+ 1.621583037924524
+ 1.6217020229525407
+ 1.6218210226956593
+ 1.6219400371564563
+ 1.6220590663375103
+ 1.6221781102413988
+ 1.6222971688706962
+ 1.6224162422279822
+ 1.6225353303158354
+ 1.6226544331368393
+ 1.6227735506935705
+ 1.6228926829886063
+ 1.6230118300245342
+ 1.6231309918039321
+ 1.6232501683293856
+ 1.6233693596034737
+ 1.6234885656287823
+ 1.6236077864078977
+ 1.6237270219434006
+ 1.6238462722378746
+ 1.6239655372939146
+ 1.6240848171140987
+ 1.6242041117010155
+ 1.6243234210572575
+ 1.6244427451854073
+ 1.6245620840880557
+ 1.6246814377677923
+ 1.6248008062272083
+ 1.6249201894688916
+ 1.6250395874954342
+ 1.6251590003094314
+ 1.6252784279134729
+ 1.6253978703101506
+ 1.6255173275020596
+ 1.6256367994917926
+ 1.6257562862819446
+ 1.6258757878751129
+ 1.6259953042738906
+ 1.6261148354808763
+ 1.6262343814986695
+ 1.6263539423298596
+ 1.6264735179770542
+ 1.6265931084428435
+ 1.6267127137298363
+ 1.6268323338406263
+ 1.6269519687778136
+ 1.6270716185440033
+ 1.627191283141795
+ 1.6273109625737929
+ 1.6274306568426
+ 1.6275503659508139
+ 1.6276700899010466
+ 1.6277898286958927
+ 1.6279095823379719
+ 1.6280293508298793
+ 1.6281491341742256
+ 1.6282689323736173
+ 1.6283887454306625
+ 1.6285085733479676
+ 1.6286284161281452
+ 1.6287482737738006
+ 1.6288681462875463
+ 1.628988033671988
+ 1.6291079359297467
+ 1.6292278530634285
+ 1.6293477850756453
+ 1.6294677319690112
+ 1.6295876937461375
+ 1.6297076704096409
+ 1.6298276619621406
+ 1.6299476684062417
+ 1.6300676897445696
+ 1.6301877259797373
+ 1.6303077771143593
+ 1.6304278431510577
+ 1.630547924092451
+ 1.6306680199411543
+ 1.6307881306997909
+ 1.6309082563709776
+ 1.6310283969573389
+ 1.6311485524614906
+ 1.6312687228860627
+ 1.6313889082336683
+ 1.6315091085069413
+ 1.6316293237084971
+ 1.6317495538409623
+ 1.6318697989069637
+ 1.6319900589091283
+ 1.6321103338500742
+ 1.6322306237324367
+ 1.6323509285588369
+ 1.6324712483319115
+ 1.6325915830542761
+ 1.6327119327285711
+ 1.6328322973574236
+ 1.6329526769434572
+ 1.6330730714893111
+ 1.6331934809976161
+ 1.6333139054709982
+ 1.6334343449120929
+ 1.633554799323538
+ 1.6336752687079659
+ 1.6337957530680041
+ 1.6339162524062978
+ 1.634036766725474
+ 1.6341572960281727
+ 1.6342778403170324
+ 1.6343983995946889
+ 1.6345189738637804
+ 1.6346395631269459
+ 1.6347601673868277
+ 1.6348807866460591
+ 1.6350014209072861
+ 1.6351220701731444
+ 1.635242734446283
+ 1.6353634137293389
+ 1.6354841080249582
+ 1.6356048173357793
+ 1.6357255416644534
+ 1.6358462810136212
+ 1.6359670353859255
+ 1.6360878047840188
+ 1.6362085892105447
+ 1.6363293886681485
+ 1.6364502031594783
+ 1.6365710326871852
+ 1.6366918772539174
+ 1.63681273686232
+ 1.6369336115150488
+ 1.6370545012147526
+ 1.637175405964082
+ 1.6372963257656914
+ 1.6374172606222301
+ 1.6375382105363536
+ 1.6376591755107133
+ 1.6377801555479652
+ 1.6379011506507655
+ 1.6380221608217695
+ 1.6381431860636317
+ 1.638264226379009
+ 1.6383852817705591
+ 1.6385063522409444
+ 1.6386274377928158
+ 1.6387485384288363
+ 1.638869654151669
+ 1.6389907849639669
+ 1.6391119308683975
+ 1.6392330918676219
+ 1.6393542679642972
+ 1.6394754591610927
+ 1.6395966654606711
+ 1.639717886865691
+ 1.6398391233788228
+ 1.6399603750027301
+ 1.6400816417400763
+ 1.640202923593534
+ 1.6403242205657604
+ 1.6404455326594312
+ 1.640566859877217
+ 1.6406882022217788
+ 1.6408095596957915
+ 1.6409309323019214
+ 1.641052320042844
+ 1.6411737229212267
+ 1.6412951409397456
+ 1.6414165741010691
+ 1.6415380224078735
+ 1.6416594858628293
+ 1.641780964468617
+ 1.6419024582279038
+ 1.6420239671433714
+ 1.6421454912176945
+ 1.64226703045355
+ 1.6423885848536119
+ 1.6425101544205656
+ 1.6426317391570837
+ 1.6427533390658469
+ 1.6428749541495371
+ 1.6429965844108319
+ 1.6431182298524143
+ 1.6432398904769663
+ 1.6433615662871708
+ 1.643483257285709
+ 1.6436049634752641
+ 1.6437266848585284
+ 1.643848421438175
+ 1.6439701732168936
+ 1.6440919401973733
+ 1.644213722382301
+ 1.6443355197743588
+ 1.6444573323762384
+ 1.6445791601906272
+ 1.6447010032202163
+ 1.644822861467691
+ 1.6449447349357476
+ 1.6450666236270719
+ 1.6451885275443605
+ 1.6453104466903037
+ 1.6454323810675893
+ 1.6455543306789189
+ 1.6456762955269801
+ 1.6457982756144729
+ 1.6459202709440894
+ 1.6460422815185261
+ 1.6461643073404804
+ 1.6462863484126462
+ 1.6464084047377241
+ 1.6465304763184139
+ 1.6466525631574129
+ 1.6467746652574216
+ 1.6468967826211389
+ 1.6470189152512658
+ 1.6471410631505055
+ 1.6472632263215563
+ 1.6473854047671266
+ 1.6475075984899143
+ 1.6476298074926261
+ 1.6477520317779681
+ 1.6478742713486401
+ 1.6479965262073566
+ 1.6481187963568145
+ 1.6482410817997262
+ 1.6483633825388035
+ 1.6484856985767444
+ 1.6486080299162633
+ 1.6487303765600727
+ 1.64885273851088
+ 1.6489751157713926
+ 1.6490975083443251
+ 1.6492199162323937
+ 1.6493423394383029
+ 1.6494647779647731
+ 1.6495872318145135
+ 1.6497097009902377
+ 1.6498321854946678
+ 1.6499546853305103
+ 1.6500772005004916
+ 1.6501997310073195
+ 1.6503222768537171
+ 1.6504448380424017
+ 1.6505674145760927
+ 1.6506900064575081
+ 1.6508126136893655
+ 1.6509352362743897
+ 1.6510578742153035
+ 1.6511805275148257
+ 1.6513031961756797
+ 1.6514258802005892
+ 1.6515485795922746
+ 1.6516712943534673
+ 1.6517940244868892
+ 1.6519167699952615
+ 1.6520395308813178
+ 1.6521623071477807
+ 1.6522850987973769
+ 1.6524079058328371
+ 1.6525307282568931
+ 1.652653566072269
+ 1.6527764192816974
+ 1.6528992878879105
+ 1.6530221718936344
+ 1.6531450713016058
+ 1.6532679861145561
+ 1.6533909163352196
+ 1.6535138619663274
+ 1.6536368230106178
+ 1.6537597994708206
+ 1.653882791349679
+ 1.6540057986499257
+ 1.6541288213742944
+ 1.6542518595255236
+ 1.6543749131063576
+ 1.6544979821195323
+ 1.6546210665677861
+ 1.6547441664538551
+ 1.6548672817804901
+ 1.654990412550424
+ 1.6551135587664023
+ 1.6552367204311651
+ 1.6553598975474582
+ 1.655483090118028
+ 1.6556062981456134
+ 1.6557295216329642
+ 1.6558527605828242
+ 1.6559760149979417
+ 1.6560992848810612
+ 1.6562225702349267
+ 1.6563458710622989
+ 1.656469187365913
+ 1.6565925191485298
+ 1.6567158664128916
+ 1.6568392291617542
+ 1.6569626073978683
+ 1.6570860011239819
+ 1.6572094103428514
+ 1.6573328350572332
+ 1.6574562752698769
+ 1.6575797309835352
+ 1.6577032022009701
+ 1.6578266889249333
+ 1.6579501911581791
+ 1.6580737089034701
+ 1.6581972421635622
+ 1.6583207909412125
+ 1.6584443552391812
+ 1.6585679350602289
+ 1.6586915304071137
+ 1.6588151412826009
+ 1.6589387676894425
+ 1.6590624096304121
+ 1.6591860671082685
+ 1.6593097401257764
+ 1.6594334286856953
+ 1.6595571327907952
+ 1.6596808524438396
+ 1.6598045876475946
+ 1.6599283384048262
+ 1.660052104718305
+ 1.6601758865907938
+ 1.6602996840250639
+ 1.6604234970238902
+ 1.660547325590034
+ 1.6606711697262675
+ 1.6607950294353642
+ 1.6609189047200965
+ 1.6610427955832352
+ 1.6611667020275551
+ 1.6612906240558261
+ 1.6614145616708278
+ 1.6615385148753326
+ 1.6616624836721197
+ 1.6617864680639587
+ 1.6619104680536294
+ 1.6620344836439109
+ 1.6621585148375804
+ 1.6622825616374195
+ 1.6624066240462045
+ 1.6625307020667142
+ 1.6626547957017319
+ 1.6627789049540418
+ 1.6629030298264214
+ 1.6630271703216517
+ 1.6631513264425255
+ 1.663275498191817
+ 1.663399685572313
+ 1.6635238885868038
+ 1.6636481072380696
+ 1.6637723415289016
+ 1.6638965914620838
+ 1.6640208570404023
+ 1.6641451382666481
+ 1.664269435143616
+ 1.6643937476740844
+ 1.6645180758608551
+ 1.6646424197067109
+ 1.6647667792144472
+ 1.6648911543868565
+ 1.665015545226727
+ 1.665139951736859
+ 1.665264373920045
+ 1.6653888117790796
+ 1.6655132653167533
+ 1.6656377345358715
+ 1.6657622194392256
+ 1.6658867200296148
+ 1.6660112363098361
+ 1.6661357682826881
+ 1.6662603159509688
+ 1.6663848793174829
+ 1.6665094583850284
+ 1.6666340531564074
+ 1.6667586636344183
+ 1.6668832898218682
+ 1.6670079317215609
+ 1.6671325893362992
+ 1.6672572626688884
+ 1.6673819517221293
+ 1.667506656498835
+ 1.6676313770018076
+ 1.6677561132338528
+ 1.6678808651977817
+ 1.668005632896405
+ 1.6681304163325259
+ 1.6682552155089581
+ 1.6683800304285081
+ 1.6685048610939932
+ 1.6686297075082235
+ 1.6687545696740087
+ 1.6688794475941626
+ 1.6690043412714963
+ 1.6691292507088324
+ 1.6692541759089796
+ 1.6693791168747529
+ 1.669504073608973
+ 1.6696290461144536
+ 1.6697540343940154
+ 1.6698790384504689
+ 1.6700040582866476
+ 1.6701290939053555
+ 1.6702541453094186
+ 1.6703792125016621
+ 1.6705042954849005
+ 1.6706293942619634
+ 1.6707545088356681
+ 1.6708796392088399
+ 1.6710047853843042
+ 1.671129947364884
+ 1.6712551251534029
+ 1.6713803187526906
+ 1.6715055281655757
+ 1.6716307533948791
+ 1.6717559944434333
+ 1.6718812513140668
+ 1.6720065240096096
+ 1.6721318125328881
+ 1.6722571168867364
+ 1.6723824370739859
+ 1.6725077730974642
+ 1.6726331249600073
+ 1.6727584926644503
+ 1.6728838762136276
+ 1.6730092756103678
+ 1.6731346908575091
+ 1.6732601219578926
+ 1.6733855689143466
+ 1.6735110317297135
+ 1.673636510406832
+ 1.6737620049485396
+ 1.673887515357672
+ 1.6740130416370709
+ 1.6741385837895775
+ 1.6742641418180362
+ 1.6743897157252836
+ 1.6745153055141613
+ 1.6746409111875205
+ 1.6747665327481973
+ 1.67489217019904
+ 1.675017823542893
+ 1.6751434927826017
+ 1.6752691779210112
+ 1.6753948789609716
+ 1.6755205959053299
+ 1.6756463287569325
+ 1.6757720775186309
+ 1.6758978421932733
+ 1.6760236227837086
+ 1.6761494192927919
+ 1.676275231723374
+ 1.6764010600783039
+ 1.6765269043604396
+ 1.6766527645726323
+ 1.6767786407177336
+ 1.6769045327986021
+ 1.677030440818094
+ 1.6771563647790657
+ 1.6772823046843701
+ 1.6774082605368696
+ 1.6775342323394176
+ 1.6776602200948796
+ 1.677786223806111
+ 1.6779122434759717
+ 1.6780382791073245
+ 1.6781643307030338
+ 1.6782903982659532
+ 1.6784164817989584
+ 1.6785425813049
+ 1.6786686967866513
+ 1.6787948282470722
+ 1.678920975689032
+ 1.6790471391153949
+ 1.6791733185290292
+ 1.6792995139328024
+ 1.6794257253295806
+ 1.6795519527222358
+ 1.6796781961136344
+ 1.6798044555066505
+ 1.6799307309041549
+ 1.6800570223090152
+ 1.6801833297241064
+ 1.680309653152301
+ 1.6804359925964749
+ 1.6805623480594982
+ 1.6806887195442475
+ 1.6808151070536015
+ 1.6809415105904337
+ 1.6810679301576199
+ 1.6811943657580388
+ 1.6813208173945713
+ 1.6814472850700961
+ 1.6815737687874874
+ 1.6817002685496298
+ 1.6818267843594048
+ 1.6819533162196951
+ 1.6820798641333792
+ 1.6822064281033404
+ 1.6823330081324652
+ 1.6824596042236355
+ 1.6825862163797423
+ 1.6827128446036628
+ 1.6828394888982836
+ 1.6829661492665011
+ 1.6830928257111946
+ 1.6832195182352545
+ 1.6833462268415724
+ 1.6834729515330324
+ 1.6835996923125338
+ 1.6837264491829584
+ 1.6838532221472031
+ 1.6839800112081575
+ 1.6841068163687194
+ 1.6842336376317797
+ 1.6843604750002299
+ 1.684487328476969
+ 1.6846141980648894
+ 1.6847410837668912
+ 1.6848679855858717
+ 1.6849949035247245
+ 1.6851218375863513
+ 1.6852487877736504
+ 1.6853757540895242
+ 1.6855027365368689
+ 1.685629735118588
+ 1.6857567498375823
+ 1.6858837806967553
+ 1.686010827699006
+ 1.6861378908472497
+ 1.6862649701443788
+ 1.6863920655933027
+ 1.686519177196925
+ 1.686646304958161
+ 1.6867734488799073
+ 1.6869006089650798
+ 1.6870277852165836
+ 1.6871549776373245
+ 1.6872821862302203
+ 1.6874094109981732
+ 1.6875366519441024
+ 1.6876639090709116
+ 1.6877911823815237
+ 1.6879184718788438
+ 1.6880457775657884
+ 1.6881730994452711
+ 1.6883004375202095
+ 1.6884277917935213
+ 1.6885551622681176
+ 1.6886825489469182
+ 1.6888099518328461
+ 1.6889373709288127
+ 1.6890648062377402
+ 1.6891922577625527
+ 1.6893197255061636
+ 1.6894472094714994
+ 1.6895747096614826
+ 1.6897022260790322
+ 1.689829758727075
+ 1.6899573076085357
+ 1.6900848727263382
+ 1.6902124540834083
+ 1.6903400516826703
+ 1.6904676655270545
+ 1.6905952956194834
+ 1.6907229419628913
+ 1.6908506045602021
+ 1.690978283414351
+ 1.6911059785282629
+ 1.6912336899048737
+ 1.6913614175471126
+ 1.6914891614579104
+ 1.6916169216402035
+ 1.6917446980969209
+ 1.6918724908310032
+ 1.6920002998453834
+ 1.6921281251429938
+ 1.6922559667267776
+ 1.6923838245996656
+ 1.6925116987646014
+ 1.6926395892245167
+ 1.6927674959823569
+ 1.692895419041061
+ 1.693023358403565
+ 1.6931513140728125
+ 1.6932792860517516
+ 1.6934072743433159
+ 1.6935352789504539
+ 1.6936632998761079
+ 1.6937913371232243
+ 1.6939193906947496
+ 1.6940474605936233
+ 1.6941755468228006
+ 1.6943036493852262
+ 1.6944317682838455
+ 1.6945599035216101
+ 1.6946880551014669
+ 1.6948162230263701
+ 1.6949444072992699
+ 1.6950726079231133
+ 1.6952008249008597
+ 1.6953290582354543
+ 1.6954573079298567
+ 1.6955855739870203
+ 1.6957138564098986
+ 1.69584215520145
+ 1.6959704703646281
+ 1.6960988019023924
+ 1.6962271498176988
+ 1.6963555141135065
+ 1.6964838947927767
+ 1.6966122918584658
+ 1.6967407053135353
+ 1.6968691351609475
+ 1.696997581403668
+ 1.6971260440446523
+ 1.6972545230868681
+ 1.6973830185332779
+ 1.6975115303868511
+ 1.6976400586505482
+ 1.6977686033273347
+ 1.6978971644201806
+ 1.698025741932051
+ 1.6981543358659184
+ 1.6982829462247442
+ 1.6984115730115061
+ 1.6985402162291701
+ 1.6986688758807069
+ 1.6987975519690923
+ 1.6989262444972928
+ 1.6990549534682866
+ 1.6991836788850434
+ 1.6993124207505392
+ 1.6994411790677497
+ 1.6995699538396547
+ 1.6996987450692262
+ 1.6998275527594426
+ 1.6999563769132802
+ 1.7000852175337182
+ 1.7002140746237382
+ 1.7003429481863155
+ 1.7004718382244417
+ 1.7006007447410854
+ 1.7007296677392345
+ 1.7008586072218739
+ 1.7009875631919817
+ 1.7011165356525473
+ 1.701245524606557
+ 1.70137453005699
+ 1.701503552006834
+ 1.7016325904590812
+ 1.7017616454167188
+ 1.7018907168827291
+ 1.7020198048601047
+ 1.7021489093518358
+ 1.7022780303609124
+ 1.7024071678903263
+ 1.7025363219430716
+ 1.7026654925221374
+ 1.7027946796305191
+ 1.7029238832712066
+ 1.7030531034472034
+ 1.7031823401614974
+ 1.7033115934170859
+ 1.7034408632169673
+ 1.703570149564142
+ 1.7036994524616009
+ 1.703828771912353
+ 1.7039581079193862
+ 1.7040874604857106
+ 1.7042168296143239
+ 1.7043462153082278
+ 1.7044756175704212
+ 1.704605036403916
+ 1.704734471811707
+ 1.7048639237968035
+ 1.7049933923622129
+ 1.7051228775109339
+ 1.7052523792459831
+ 1.7053818975703592
+ 1.7055114324870768
+ 1.7056409839991393
+ 1.7057705521095581
+ 1.7059001368213456
+ 1.7060297381375102
+ 1.7061593560610691
+ 1.7062889905950245
+ 1.7064186417423983
+ 1.7065483095062011
+ 1.7066779938894481
+ 1.7068076948951509
+ 1.7069374125263335
+ 1.707067146786005
+ 1.7071968976771865
+ 1.7073266652028951
+ 1.7074564493661459
+ 1.7075862501699608
+ 1.7077160676173628
+ 1.7078459017113756
+ 1.7079757524550123
+ 1.7081056198513005
+ 1.708235503903262
+ 1.7083654046139212
+ 1.7084953219862979
+ 1.7086252560234256
+ 1.7087552067283203
+ 1.7088851741040199
+ 1.7090151581535429
+ 1.70914515887992
+ 1.7092751762861811
+ 1.7094052103753519
+ 1.7095352611504664
+ 1.7096653286145591
+ 1.7097954127706496
+ 1.7099255136217806
+ 1.7100556311709809
+ 1.7101857654212833
+ 1.7103159163757278
+ 1.7104460840373417
+ 1.7105762684091659
+ 1.7107064694942387
+ 1.7108366872955891
+ 1.7109669218162629
+ 1.7110971730592999
+ 1.7112274410277308
+ 1.7113577257246031
+ 1.7114880271529549
+ 1.7116183453158318
+ 1.7117486802162658
+ 1.7118790318573107
+ 1.7120094002420063
+ 1.7121397853733933
+ 1.7122701872545241
+ 1.7124006058884398
+ 1.7125310412781858
+ 1.7126614934268125
+ 1.7127919623373671
+ 1.7129224480128999
+ 1.7130529504564582
+ 1.7131834696710915
+ 1.7133140056598517
+ 1.713444558425788
+ 1.713575127971958
+ 1.7137057143014116
+ 1.7138363174172004
+ 1.7139669373223829
+ 1.7140975740200146
+ 1.7142282275131446
+ 1.7143588978048367
+ 1.7144895848981445
+ 1.7146202887961335
+ 1.7147510095018463
+ 1.7148817470183608
+ 1.715012501348725
+ 1.7151432724960032
+ 1.7152740604632581
+ 1.7154048652535516
+ 1.7155356868699481
+ 1.7156665253155097
+ 1.7157973805932996
+ 1.7159282527063835
+ 1.7160591416578288
+ 1.7161900474507068
+ 1.7163209700880748
+ 1.7164519095730133
+ 1.716582865908576
+ 1.7167138390978471
+ 1.7168448291438871
+ 1.7169758360497729
+ 1.7171068598185728
+ 1.7172379004533593
+ 1.7173689579572071
+ 1.7175000323331906
+ 1.7176311235843824
+ 1.7177622317138603
+ 1.717893356724699
+ 1.718024498619974
+ 1.718155657402767
+ 1.7182868330761556
+ 1.7184180256432153
+ 1.7185492351070233
+ 1.718680461470669
+ 1.7188117047372264
+ 1.718942964909782
+ 1.7190742419914151
+ 1.7192055359852125
+ 1.7193368468942543
+ 1.7194681747216298
+ 1.7195995194704192
+ 1.7197308811437124
+ 1.7198622597445994
+ 1.7199936552761588
+ 1.7201250677414892
+ 1.7202564971436709
+ 1.7203879434858034
+ 1.7205194067709679
+ 1.7206508870022612
+ 1.7207823841827727
+ 1.7209138983156009
+ 1.7210454294038287
+ 1.7211769774505623
+ 1.7213085424588899
+ 1.7214401244319122
+ 1.7215717233727172
+ 1.7217033392844103
+ 1.7218349721700894
+ 1.7219666220328449
+ 1.7220982888757832
+ 1.7222299727020038
+ 1.7223616735146063
+ 1.7224933913166949
+ 1.722625126111367
+ 1.7227568779017315
+ 1.7228886466908868
+ 1.723020432481942
+ 1.7231522352779973
+ 1.7232840550821673
+ 1.7234158918975484
+ 1.7235477457272568
+ 1.7236796165743937
+ 1.7238115044420723
+ 1.7239434093334023
+ 1.7240753312514947
+ 1.724207270199456
+ 1.7243392261804025
+ 1.7244711991974457
+ 1.7246031892536979
+ 1.724735196352277
+ 1.7248672204962958
+ 1.724999261688869
+ 1.7251313199331109
+ 1.7252633952321448
+ 1.7253954875890785
+ 1.7255275970070438
+ 1.7256597234891491
+ 1.7257918670385173
+ 1.7259240276582721
+ 1.7260562053515327
+ 1.7261884001214216
+ 1.7263206119710626
+ 1.7264528409035793
+ 1.7265850869220956
+ 1.7267173500297333
+ 1.7268496302296248
+ 1.7269819275248925
+ 1.7271142419186667
+ 1.7272465734140707
+ 1.727378922014239
+ 1.7275112877223007
+ 1.7276436705413791
+ 1.7277760704746163
+ 1.7279084875251334
+ 1.728040921696069
+ 1.7281733729905606
+ 1.7283058414117323
+ 1.7284383269627233
+ 1.7285708296466731
+ 1.7287033494667121
+ 1.7288358864259796
+ 1.7289684405276149
+ 1.7291010117747549
+ 1.7292336001705391
+ 1.729366205718107
+ 1.7294988284206017
+ 1.729631468281164
+ 1.7297641253029308
+ 1.7298967994890551
+ 1.7300294908426712
+ 1.7301621993669292
+ 1.7302949250649724
+ 1.7304276679399477
+ 1.7305604279949995
+ 1.7306932052332804
+ 1.7308259996579352
+ 1.7309588112721097
+ 1.731091640078958
+ 1.731224486081631
+ 1.731357349283279
+ 1.73149022968705
+ 1.7316231272961009
+ 1.7317560421135871
+ 1.7318889741426591
+ 1.732021923386474
+ 1.7321548898481827
+ 1.7322878735309473
+ 1.7324208744379235
+ 1.7325538925722668
+ 1.7326869279371386
+ 1.7328199805356987
+ 1.7329530503711053
+ 1.7330861374465201
+ 1.7332192417651056
+ 1.7333523633300247
+ 1.7334855021444415
+ 1.7336186582115118
+ 1.733751831534412
+ 1.7338850221162996
+ 1.7340182299603402
+ 1.7341514550697119
+ 1.7342846974475692
+ 1.7344179570970839
+ 1.734551234021428
+ 1.7346845282237728
+ 1.7348178397072882
+ 1.7349511684751424
+ 1.7350845145305069
+ 1.735217877876559
+ 1.7353512585164699
+ 1.7354846564534154
+ 1.7356180716905716
+ 1.735751504231114
+ 1.7358849540782169
+ 1.7360184212350578
+ 1.7361519057048185
+ 1.7362854074906742
+ 1.7364189265958072
+ 1.7365524630233977
+ 1.7366860167766265
+ 1.7368195878586776
+ 1.736953176272729
+ 1.7370867820219664
+ 1.7372204051095765
+ 1.7373540455387451
+ 1.7374877033126528
+ 1.7376213784344918
+ 1.7377550709074454
+ 1.7378887807347001
+ 1.7380225079194522
+ 1.738156252464885
+ 1.7382900143741886
+ 1.7384237936505622
+ 1.7385575902971859
+ 1.7386914043172594
+ 1.7388252357139762
+ 1.7389590844905292
+ 1.739092950650112
+ 1.7392268341959201
+ 1.7393607351311517
+ 1.7394946534590059
+ 1.739628589182679
+ 1.7397625423053684
+ 1.7398965128302746
+ 1.740030500760595
+ 1.7401645060995361
+ 1.7402985288502959
+ 1.7404325690160787
+ 1.7405666266000841
+ 1.7407007016055234
+ 1.7408347940355946
+ 1.7409689038935034
+ 1.741103031182462
+ 1.7412371759056737
+ 1.7413713380663463
+ 1.741505517667687
+ 1.7416397147129112
+ 1.7417739292052197
+ 1.7419081611478338
+ 1.7420424105439556
+ 1.7421766773968033
+ 1.7423109617095904
+ 1.7424452634855299
+ 1.7425795827278363
+ 1.7427139194397232
+ 1.7428482736244071
+ 1.7429826452851087
+ 1.7431170344250426
+ 1.743251441047428
+ 1.743385865155487
+ 1.7435203067524392
+ 1.7436547658415016
+ 1.7437892424258943
+ 1.7439237365088465
+ 1.7440582480935767
+ 1.7441927771833139
+ 1.7443273237812786
+ 1.7444618878906968
+ 1.7445964695147933
+ 1.7447310686568003
+ 1.7448656853199385
+ 1.7450003195074384
+ 1.7451349712225372
+ 1.7452696404684542
+ 1.7454043272484283
+ 1.7455390315656873
+ 1.7456737534234634
+ 1.7458084928249931
+ 1.7459432497735063
+ 1.7460780242722374
+ 1.7462128163244277
+ 1.7463476259333093
+ 1.7464824531021166
+ 1.7466172978340948
+ 1.746752160132476
+ 1.7468870400005012
+ 1.7470219374414124
+ 1.7471568524584482
+ 1.7472917850548548
+ 1.7474267352338679
+ 1.7475617029987351
+ 1.747696688352701
+ 1.7478316912990035
+ 1.7479667118408986
+ 1.7481017499816296
+ 1.7482368057244382
+ 1.7483718790725762
+ 1.7485069700292912
+ 1.7486420785978354
+ 1.748777204781454
+ 1.7489123485834035
+ 1.7490475100069343
+ 1.7491826890552935
+ 1.7493178857317395
+ 1.7494531000395273
+ 1.7495883319819097
+ 1.7497235815621437
+ 1.7498588487834821
+ 1.749994133649186
+ 1.7501294361625148
+ 1.7502647563267222
+ 1.7504000941450728
+ 1.7505354496208219
+ 1.7506708227572343
+ 1.7508062135575702
+ 1.7509416220250924
+ 1.751077048163066
+ 1.7512124919747547
+ 1.7513479534634204
+ 1.7514834326323288
+ 1.751618929484754
+ 1.7517544440239585
+ 1.7518899762532072
+ 1.7520255261757738
+ 1.7521610937949259
+ 1.7522966791139372
+ 1.7524322821360723
+ 1.7525679028646108
+ 1.7527035413028187
+ 1.7528391974539714
+ 1.752974871321348
+ 1.7531105629082191
+ 1.7532462722178623
+ 1.7533819992535551
+ 1.7535177440185716
+ 1.7536535065161936
+ 1.753789286749698
+ 1.7539250847223664
+ 1.7540609004374772
+ 1.7541967338983171
+ 1.7543325851081617
+ 1.7544684540702986
+ 1.7546043407880085
+ 1.7547402452645806
+ 1.754876167503296
+ 1.7550121075074412
+ 1.7551480652803035
+ 1.7552840408251693
+ 1.7554200341453343
+ 1.7555560452440793
+ 1.7556920741246973
+ 1.7558281207904816
+ 1.7559641852447185
+ 1.756100267490706
+ 1.7562363675317401
+ 1.7563724853711038
+ 1.7565086210120973
+ 1.756644774458022
+ 1.7567809457121668
+ 1.7569171347778303
+ 1.7570533416583105
+ 1.7571895663569101
+ 1.7573258088769292
+ 1.7574620692216598
+ 1.757598347394407
+ 1.7577346433984757
+ 1.7578709572371709
+ 1.758007288913789
+ 1.7581436384316353
+ 1.7582800057940218
+ 1.758416391004245
+ 1.7585527940656209
+ 1.758689214981447
+ 1.7588256537550411
+ 1.7589621103897051
+ 1.7590985848887541
+ 1.7592350772554957
+ 1.7593715874932458
+ 1.7595081156053094
+ 1.7596446615950023
+ 1.7597812254656435
+ 1.7599178072205428
+ 1.7600544068630148
+ 1.7601910243963748
+ 1.760327659823947
+ 1.7604643131490436
+ 1.7606009843749821
+ 1.7607376735050877
+ 1.7608743805426748
+ 1.761011105491066
+ 1.7611478483535843
+ 1.7612846091335499
+ 1.7614213878342913
+ 1.761558184459129
+ 1.7616949990113853
+ 1.761831831494389
+ 1.7619686819114719
+ 1.7621055502659531
+ 1.7622424365611642
+ 1.7623793408004336
+ 1.7625162629870943
+ 1.7626532031244717
+ 1.7627901612158994
+ 1.7629271372647122
+ 1.7630641312742379
+ 1.7632011432478156
+ 1.7633381731887743
+ 1.7634752211004538
+ 1.7636122869861928
+ 1.7637493708493199
+ 1.7638864726931791
+ 1.7640235925211081
+ 1.7641607303364435
+ 1.7642978861425296
+ 1.7644350599427037
+ 1.7645722517403133
+ 1.764709461538694
+ 1.7648466893411925
+ 1.7649839351511545
+ 1.7651211989719209
+ 1.7652584808068434
+ 1.7653957806592635
+ 1.7655330985325295
+ 1.7656704344299914
+ 1.7658077883549967
+ 1.7659451603108958
+ 1.7660825503010402
+ 1.7662199583287825
+ 1.7663573843974718
+ 1.7664948285104642
+ 1.7666322906711074
+ 1.7667697708827659
+ 1.7669072691487884
+ 1.7670447854725337
+ 1.7671823198573582
+ 1.767319872306615
+ 1.7674574428236722
+ 1.7675950314118818
+ 1.7677326380746119
+ 1.7678702628152154
+ 1.7680079056370552
+ 1.7681455665434993
+ 1.7682832455379127
+ 1.7684209426236495
+ 1.7685586578040859
+ 1.7686963910825777
+ 1.7688341424625
+ 1.7689719119472198
+ 1.769109699540101
+ 1.7692475052445173
+ 1.7693853290638299
+ 1.7695231710014241
+ 1.7696610310606629
+ 1.7697989092449169
+ 1.7699368055575664
+ 1.7700747200019751
+ 1.7702126525815278
+ 1.7703506032995979
+ 1.77048857215956
+ 1.7706265591647958
+ 1.7707645643186762
+ 1.7709025876245854
+ 1.7710406290858998
+ 1.7711786887060037
+ 1.7713167664882785
+ 1.7714548624361024
+ 1.771592976552866
+ 1.7717311088419445
+ 1.7718692593067253
+ 1.7720074279505964
+ 1.7721456147769432
+ 1.7722838197891548
+ 1.7724220429906132
+ 1.7725602843847132
+ 1.7726985439748417
+ 1.7728368217643902
+ 1.7729751177567477
+ 1.7731134319553108
+ 1.7732517643634644
+ 1.773390114984611
+ 1.7735284838221417
+ 1.7736668708794503
+ 1.7738052761599343
+ 1.7739436996669926
+ 1.7740821414040191
+ 1.7742206013744151
+ 1.774359079581578
+ 1.7744975760289112
+ 1.7746360907198135
+ 1.7747746236576891
+ 1.7749131748459384
+ 1.7750517442879625
+ 1.7751903319871698
+ 1.7753289379469677
+ 1.7754675621707547
+ 1.7756062046619459
+ 1.7757448654239414
+ 1.7758835444601577
+ 1.776022241773995
+ 1.7761609573688717
+ 1.7762996912481908
+ 1.7764384434153693
+ 1.7765772138738201
+ 1.7767160026269582
+ 1.7768548096781964
+ 1.7769936350309441
+ 1.7771324786886229
+ 1.7772713406546472
+ 1.7774102209324356
+ 1.7775491195254074
+ 1.7776880364369834
+ 1.777826971670579
+ 1.7779659252296167
+ 1.7781048971175175
+ 1.7782438873377078
+ 1.7783828958936077
+ 1.7785219227886386
+ 1.7786609680262346
+ 1.7788000316098116
+ 1.778939113542799
+ 1.7790782138286263
+ 1.779217332470725
+ 1.779356469472517
+ 1.779495624837435
+ 1.7796347985689138
+ 1.77977399067038
+ 1.7799132011452699
+ 1.7800524299970093
+ 1.7801916772290414
+ 1.7803309428447933
+ 1.7804702268477086
+ 1.7806095292412196
+ 1.7807488500287634
+ 1.7808881892137807
+ 1.781027546799707
+ 1.7811669227899845
+ 1.7813063171880554
+ 1.7814457299973574
+ 1.7815851612213374
+ 1.7817246108634333
+ 1.7818640789270948
+ 1.7820035654157671
+ 1.7821430703328864
+ 1.7822825936819113
+ 1.7824221354662817
+ 1.7825616956894508
+ 1.7827012743548631
+ 1.7828408714659683
+ 1.782980487026222
+ 1.7831201210390737
+ 1.7832597735079718
+ 1.7833994444363797
+ 1.7835391338277431
+ 1.7836788416855107
+ 1.7838185680131564
+ 1.7839583128141225
+ 1.7840980760918723
+ 1.7842378578498623
+ 1.7843776580915476
+ 1.7845174768203977
+ 1.784657314039866
+ 1.784797169753418
+ 1.7849370439645165
+ 1.7850769366766175
+ 1.7852168478931925
+ 1.7853567776177088
+ 1.7854967258536212
+ 1.78563669260441
+ 1.7857766778735307
+ 1.7859166816644605
+ 1.7860567039806601
+ 1.7861967448256122
+ 1.786336804202775
+ 1.7864768821156249
+ 1.7866169785676389
+ 1.7867570935622807
+ 1.7868972271030368
+ 1.7870373791933707
+ 1.7871775498367661
+ 1.7873177390366963
+ 1.7874579467966387
+ 1.7875981731200745
+ 1.7877384180104792
+ 1.7878786814713357
+ 1.7880189635061277
+ 1.7881592641183273
+ 1.7882995833114277
+ 1.7884399210889104
+ 1.7885802774542532
+ 1.7887206524109509
+ 1.7888610459624836
+ 1.7890014581123383
+ 1.7891418888640005
+ 1.7892823382209659
+ 1.7894228061867217
+ 1.7895632927647531
+ 1.7897037979585553
+ 1.7898443217716209
+ 1.7899848642074443
+ 1.790125425269512
+ 1.7902660049613237
+ 1.7904066032863781
+ 1.7905472202481658
+ 1.7906878558501855
+ 1.7908285100959336
+ 1.7909691829889103
+ 1.7911098745326197
+ 1.7912505847305558
+ 1.7913913135862216
+ 1.7915320611031222
+ 1.7916728272847584
+ 1.7918136121346333
+ 1.7919544156562521
+ 1.7920952378531234
+ 1.7922360787287492
+ 1.7923769382866392
+ 1.7925178165303013
+ 1.7926587134632428
+ 1.7927996290889798
+ 1.7929405634110125
+ 1.7930815164328633
+ 1.7932224881580379
+ 1.7933634785900501
+ 1.7935044877324158
+ 1.7936455155886504
+ 1.7937865621622706
+ 1.7939276274567897
+ 1.7940687114757283
+ 1.794209814222598
+ 1.7943509357009284
+ 1.7944920759142353
+ 1.7946332348660348
+ 1.7947744125598597
+ 1.7949156089992229
+ 1.7950568241876506
+ 1.7951980581286688
+ 1.7953393108258016
+ 1.795480582282575
+ 1.795621872502515
+ 1.7957631814891533
+ 1.7959045092460153
+ 1.7960458557766286
+ 1.7961872210845302
+ 1.7963286051732439
+ 1.7964700080463101
+ 1.7966114297072531
+ 1.7967528701596143
+ 1.7968943294069188
+ 1.7970358074527135
+ 1.7971773043005292
+ 1.7973188199539014
+ 1.7974603544163708
+ 1.7976019076914811
+ 1.7977434797827629
+ 1.7978850706937617
+ 1.7980266804280198
+ 1.798168308989077
+ 1.798309956380477
+ 1.7984516226057679
+ 1.7985933076684919
+ 1.7987350115721934
+ 1.7988767343204233
+ 1.7990184759167243
+ 1.7991602363646484
+ 1.7993020156677466
+ 1.7994438138295612
+ 1.7995856308536524
+ 1.799727466743567
+ 1.7998693215028629
+ 1.8000111951350879
+ 1.8001530876438006
+ 1.800294999032551
+ 1.8004369293049001
+ 1.8005788784644081
+ 1.8007208465146225
+ 1.8008628334591172
+ 1.8010048393014371
+ 1.8011468640451529
+ 1.8012889076938228
+ 1.8014309702510067
+ 1.8015730517202715
+ 1.8017151521051833
+ 1.8018572714092973
+ 1.80199940963619
+ 1.8021415667894249
+ 1.8022837428725638
+ 1.8024259378891874
+ 1.8025681518428551
+ 1.8027103847371375
+ 1.8028526365756055
+ 1.8029949073618401
+ 1.8031371970994015
+ 1.8032795057918709
+ 1.8034218334428271
+ 1.8035641800558357
+ 1.8037065456344761
+ 1.8038489301823293
+ 1.8039913337029705
+ 1.8041337561999768
+ 1.8042761976769306
+ 1.8044186581374142
+ 1.8045611375850057
+ 1.80470363602329
+ 1.8048461534558495
+ 1.8049886898862664
+ 1.8051312453181299
+ 1.8052738197550218
+ 1.8054164132005288
+ 1.8055590256582457
+ 1.8057016571317495
+ 1.805844307624644
+ 1.8059869771405062
+ 1.806129665682934
+ 1.8062723732555184
+ 1.8064150998618538
+ 1.8065578455055318
+ 1.8067006101901448
+ 1.8068433939192938
+ 1.8069861966965719
+ 1.8071290185255777
+ 1.80727185940991
+ 1.807414719353168
+ 1.8075575983589476
+ 1.8077004964308534
+ 1.8078434135724901
+ 1.8079863497874531
+ 1.8081293050793514
+ 1.8082722794517847
+ 1.8084152729083653
+ 1.8085582854526923
+ 1.8087013170883761
+ 1.8088443678190249
+ 1.8089874376482462
+ 1.8091305265796538
+ 1.8092736346168521
+ 1.8094167617634529
+ 1.8095599080230731
+ 1.8097030733993216
+ 1.8098462578958205
+ 1.8099894615161729
+ 1.8101326842640062
+ 1.8102759261429269
+ 1.8104191871565571
+ 1.8105624673085174
+ 1.8107057666024253
+ 1.8108490850419035
+ 1.8109924226305709
+ 1.8111357793720471
+ 1.8112791552699565
+ 1.811422550327928
+ 1.8115659645495827
+ 1.8117093979385435
+ 1.8118528504984368
+ 1.8119963222328945
+ 1.812139813145544
+ 1.812283323240014
+ 1.8124268525199345
+ 1.812570400988931
+ 1.8127139686506462
+ 1.812857555508707
+ 1.8130011615667458
+ 1.8131447868283987
+ 1.8132884312972986
+ 1.8134320949770841
+ 1.8135757778713961
+ 1.8137194799838636
+ 1.8138632013181362
+ 1.8140069418778439
+ 1.8141507016666341
+ 1.8142944806881454
+ 1.8144382789460234
+ 1.8145820964439074
+ 1.8147259331854448
+ 1.8148697891742791
+ 1.8150136644140553
+ 1.8151575589084268
+ 1.8153014726610357
+ 1.8154454056755289
+ 1.8155893579555609
+ 1.8157333295047835
+ 1.8158773203268419
+ 1.8160213304253929
+ 1.8161653598040868
+ 1.816309408466581
+ 1.8164534764165317
+ 1.8165975636575933
+ 1.8167416701934154
+ 1.8168857960276701
+ 1.8170299411640036
+ 1.8171741056060775
+ 1.8173182893575597
+ 1.8174624924221083
+ 1.817606714803377
+ 1.8177509565050414
+ 1.817895217530759
+ 1.8180394978841969
+ 1.8181837975690172
+ 1.8183281165888903
+ 1.8184724549474856
+ 1.8186168126484672
+ 1.8187611896955043
+ 1.8189055860922705
+ 1.8190500018424374
+ 1.8191944369496744
+ 1.8193388914176551
+ 1.8194833652500555
+ 1.8196278584505479
+ 1.8197723710228113
+ 1.8199169029705189
+ 1.8200614542973499
+ 1.8202060250069847
+ 1.820350615103099
+ 1.8204952245893742
+ 1.8206398534694914
+ 1.8207845017471334
+ 1.8209291694259861
+ 1.821073856509726
+ 1.8212185630020452
+ 1.8213632889066278
+ 1.8215080342271563
+ 1.8216527989673197
+ 1.8217975831308091
+ 1.8219423867213163
+ 1.8220872097425247
+ 1.8222320521981319
+ 1.8223769140918218
+ 1.8225217954272974
+ 1.8226666962082454
+ 1.8228116164383608
+ 1.8229565561213432
+ 1.8231015152608849
+ 1.823246493860688
+ 1.8233914919244494
+ 1.8235365094558686
+ 1.8236815464586436
+ 1.8238266029364751
+ 1.8239716788930669
+ 1.8241167743321243
+ 1.824261889257349
+ 1.8244070236724437
+ 1.8245521775811184
+ 1.8246973509870779
+ 1.8248425438940259
+ 1.8249877563056796
+ 1.8251329882257405
+ 1.8252782396579184
+ 1.8254235106059291
+ 1.825568801073487
+ 1.8257141110643007
+ 1.825859440582084
+ 1.8260047896305494
+ 1.8261501582134156
+ 1.8262955463344044
+ 1.8264409539972246
+ 1.8265863812055996
+ 1.8267318279632494
+ 1.8268772942738924
+ 1.8270227801412469
+ 1.827168285569047
+ 1.8273138105609994
+ 1.8274593551208376
+ 1.8276049192522852
+ 1.8277505029590673
+ 1.8278961062449106
+ 1.828041729113546
+ 1.8281873715686994
+ 1.8283330336140997
+ 1.8284787152534754
+ 1.8286244164905636
+ 1.8287701373290943
+ 1.8289158777727972
+ 1.829061637825409
+ 1.8292074174906681
+ 1.8293532167723034
+ 1.8294990356740564
+ 1.8296448741996649
+ 1.829790732352867
+ 1.8299366101374017
+ 1.8300825075570093
+ 1.8302284246154339
+ 1.8303743613164167
+ 1.830520317663699
+ 1.8306662936610281
+ 1.8308122893121461
+ 1.8309583046207971
+ 1.8311043395907372
+ 1.8312503942257077
+ 1.8313964685294581
+ 1.8315425625057389
+ 1.8316886761583011
+ 1.8318348094908925
+ 1.8319809625072765
+ 1.832127135211191
+ 1.8322733276064056
+ 1.8324195396966658
+ 1.8325657714857315
+ 1.8327120229773617
+ 1.832858294175308
+ 1.8330045850833367
+ 1.833150895705205
+ 1.8332972260446705
+ 1.8334435761055003
+ 1.8335899458914584
+ 1.8337363354063008
+ 1.8338827446538
+ 1.8340291736377139
+ 1.8341756223618173
+ 1.8343220908298719
+ 1.8344685790456494
+ 1.8346150870129145
+ 1.8347616147354435
+ 1.8349081622170067
+ 1.8350547294613699
+ 1.835201316472312
+ 1.8353479232536039
+ 1.8354945498090263
+ 1.8356411961423473
+ 1.8357878622573498
+ 1.8359345481578069
+ 1.8360812538475013
+ 1.8362279793302057
+ 1.8363747246097104
+ 1.8365214896897897
+ 1.836668274574228
+ 1.8368150792668083
+ 1.8369619037713132
+ 1.8371087480915336
+ 1.8372556122312547
+ 1.8374024961942561
+ 1.8375493999843318
+ 1.8376963236052684
+ 1.8378432670608598
+ 1.8379902303548898
+ 1.8381372134911551
+ 1.8382842164734521
+ 1.8384312393055653
+ 1.8385782819912946
+ 1.8387253445344374
+ 1.8388724269387857
+ 1.8390195292081357
+ 1.8391666513462921
+ 1.8393137933570525
+ 1.8394609552442105
+ 1.8396081370115736
+ 1.8397553386629451
+ 1.8399025602021208
+ 1.8400498016329141
+ 1.8401970629591218
+ 1.8403443441845546
+ 1.8404916453130151
+ 1.8406389663483154
+ 1.8407863072942621
+ 1.8409336681546653
+ 1.8410810489333347
+ 1.8412284496340836
+ 1.8413758702607237
+ 1.8415233108170659
+ 1.8416707713069302
+ 1.8418182517341266
+ 1.8419657521024713
+ 1.8421132724157874
+ 1.8422608126778857
+ 1.8424083728925897
+ 1.8425559530637194
+ 1.8427035531950913
+ 1.8428511732905324
+ 1.8429988133538633
+ 1.8431464733889076
+ 1.8432941533994935
+ 1.843441853389441
+ 1.8435895733625822
+ 1.8437373133227399
+ 1.8438850732737475
+ 1.8440328532194286
+ 1.8441806531636225
+ 1.8443284731101497
+ 1.8444763130628508
+ 1.8446241730255601
+ 1.8447720530021001
+ 1.8449199529963207
+ 1.8450678730120467
+ 1.8452158130531222
+ 1.8453637731233836
+ 1.8455117532266658
+ 1.8456597533668151
+ 1.8458077735476692
+ 1.8459558137730692
+ 1.8461038740468594
+ 1.8462519543728848
+ 1.846400054754987
+ 1.8465481751970165
+ 1.8466963157028129
+ 1.8468444762762277
+ 1.8469926569211133
+ 1.8471408576413118
+ 1.8472890784406795
+ 1.8474373193230607
+ 1.8475855802923178
+ 1.8477338613522982
+ 1.8478821625068558
+ 1.8480304837598465
+ 1.8481788251151252
+ 1.8483271865765547
+ 1.8484755681479899
+ 1.8486239698332834
+ 1.8487723916363066
+ 1.8489208335609142
+ 1.8490692956109633
+ 1.8492177777903298
+ 1.8493662801028683
+ 1.8495148025524428
+ 1.8496633451429272
+ 1.8498119078781738
+ 1.8499604907620693
+ 1.8501090937984679
+ 1.8502577169912464
+ 1.8504063603442678
+ 1.8505550238614139
+ 1.8507037075465542
+ 1.8508524114035543
+ 1.8510011354362939
+ 1.8511498796486565
+ 1.8512986440445063
+ 1.8514474286277238
+ 1.8515962334021916
+ 1.8517450583717878
+ 1.8518939035403876
+ 1.8520427689118784
+ 1.8521916544901369
+ 1.8523405602790524
+ 1.8524894862825028
+ 1.8526384325043781
+ 1.8527873989485619
+ 1.8529363856189422
+ 1.8530853925194035
+ 1.8532344196538426
+ 1.8533834670261382
+ 1.8535325346401927
+ 1.8536816224998935
+ 1.8538307306091286
+ 1.8539798589717986
+ 1.8541290075917931
+ 1.8542781764730094
+ 1.854427365619348
+ 1.854576575034707
+ 1.8547258047229751
+ 1.854875054688061
+ 1.8550243249338627
+ 1.8551736154642819
+ 1.8553229262832216
+ 1.8554722573945817
+ 1.8556216088022703
+ 1.8557709805101967
+ 1.8559203725222588
+ 1.8560697848423706
+ 1.8562192174744352
+ 1.8563686704223652
+ 1.8565181436900713
+ 1.8566676372814648
+ 1.8568171512004581
+ 1.8569666854509583
+ 1.8571162400368888
+ 1.8572658149621575
+ 1.857415410230685
+ 1.8575650258463887
+ 1.857714661813183
+ 1.8578643181349894
+ 1.858013994815729
+ 1.858163691859321
+ 1.8583134092696902
+ 1.8584631470507544
+ 1.85861290520644
+ 1.8587626837406739
+ 1.8589124826573831
+ 1.8590623019604888
+ 1.8592121416539191
+ 1.8593620017416124
+ 1.8595118822274872
+ 1.8596617831154825
+ 1.8598117044095255
+ 1.8599616461135537
+ 1.8601116082314917
+ 1.8602615907672853
+ 1.8604115937248615
+ 1.8605616171081638
+ 1.8607116609211236
+ 1.8608617251676862
+ 1.8610118098517847
+ 1.8611619149773651
+ 1.8613120405483661
+ 1.8614621865687317
+ 1.8616123530424022
+ 1.861762539973326
+ 1.8619127473654495
+ 1.862062975222714
+ 1.8622132235490749
+ 1.8623634923484724
+ 1.8625137816248627
+ 1.8626640913821904
+ 1.8628144216244102
+ 1.8629647723554763
+ 1.8631151435793396
+ 1.8632655352999565
+ 1.8634159475212795
+ 1.8635663802472657
+ 1.8637168334818737
+ 1.8638673072290659
+ 1.8640178014927939
+ 1.8641683162770259
+ 1.8643188515857148
+ 1.8644694074228265
+ 1.8646199837923305
+ 1.8647705806981825
+ 1.8649211981443539
+ 1.8650718361348047
+ 1.8652224946735088
+ 1.8653731737644279
+ 1.8655238734115362
+ 1.8656745936188055
+ 1.8658253343902036
+ 1.8659760957297022
+ 1.8661268776412798
+ 1.8662776801289021
+ 1.8664285031965522
+ 1.8665793468482013
+ 1.866730211087829
+ 1.8668810959194175
+ 1.867032001346935
+ 1.8671829273743734
+ 1.8673338740057106
+ 1.8674848412449228
+ 1.8676358290960025
+ 1.8677868375629261
+ 1.8679378666496844
+ 1.8680889163602563
+ 1.8682399866986403
+ 1.8683910776688124
+ 1.8685421892747696
+ 1.8686933215205062
+ 1.8688444744099981
+ 1.8689956479472507
+ 1.8691468421362545
+ 1.8692980569810012
+ 1.8694492924854886
+ 1.8696005486537146
+ 1.869751825489673
+ 1.8699031229973593
+ 1.8700544411807767
+ 1.8702057800439273
+ 1.870357139590807
+ 1.8705085198254225
+ 1.8706599207517762
+ 1.8708113423738715
+ 1.8709627846957126
+ 1.871114247721305
+ 1.8712657314546619
+ 1.8714172358997847
+ 1.8715687610606901
+ 1.8717203069413804
+ 1.8718718735458686
+ 1.8720234608781685
+ 1.8721750689422969
+ 1.872326697742261
+ 1.8724783472820838
+ 1.872630017565774
+ 1.8727817085973517
+ 1.8729334203808383
+ 1.873085152920253
+ 1.8732369062196097
+ 1.8733886802829365
+ 1.8735404751142535
+ 1.8736922907175817
+ 1.8738441270969517
+ 1.8739959842563809
+ 1.8741478621999013
+ 1.8742997609315371
+ 1.8744516804553202
+ 1.8746036207752761
+ 1.8747555818954389
+ 1.8749075638198363
+ 1.8750595665525032
+ 1.8752115900974717
+ 1.8753636344587794
+ 1.8755156996404601
+ 1.8756677856465471
+ 1.8758198924810812
+ 1.8759720201481007
+ 1.8761241686516472
+ 1.8762763379957539
+ 1.8764285281844704
+ 1.8765807392218365
+ 1.876732971111895
+ 1.8768852238586902
+ 1.8770374974662674
+ 1.877189791938676
+ 1.8773421072799623
+ 1.877494443494174
+ 1.8776468005853626
+ 1.8777991785575805
+ 1.877951577414869
+ 1.8781039971612945
+ 1.8782564378009043
+ 1.8784088993377532
+ 1.8785613817758928
+ 1.8787138851193896
+ 1.8788664093722962
+ 1.8790189545386753
+ 1.8791715206225781
+ 1.8793241076280724
+ 1.8794767155592189
+ 1.8796293444200791
+ 1.8797819942147187
+ 1.8799346649472004
+ 1.8800873566215963
+ 1.8802400692419661
+ 1.8803928028123793
+ 1.8805455573369088
+ 1.8806983328196218
+ 1.8808511292645895
+ 1.8810039466758832
+ 1.8811567850575801
+ 1.8813096444137491
+ 1.8814625247484689
+ 1.8816154260658182
+ 1.8817683483698679
+ 1.8819212916646983
+ 1.8820742559543917
+ 1.8822272412430248
+ 1.882380247534684
+ 1.8825332748334451
+ 1.8826863231433955
+ 1.8828393924686209
+ 1.8829924828132054
+ 1.8831455941812323
+ 1.8832987265767958
+ 1.8834518800039795
+ 1.8836050544668723
+ 1.8837582499695666
+ 1.8839114665161567
+ 1.8840647041107337
+ 1.8842179627573881
+ 1.8843712424602204
+ 1.8845245432233189
+ 1.8846778650507852
+ 1.884831207946718
+ 1.8849845719152118
+ 1.8851379569603752
+ 1.8852913630862993
+ 1.8854447902970906
+ 1.8855982385968546
+ 1.8857517079896897
+ 1.8859051984797035
+ 1.886058710071008
+ 1.8862122427676964
+ 1.8863657965738942
+ 1.8865193714936959
+ 1.8866729675312206
+ 1.8868265846905761
+ 1.8869802229758712
+ 1.8871338823912305
+ 1.8872875629407571
+ 1.8874412646285692
+ 1.8875949874587863
+ 1.887748731435529
+ 1.8879024965629065
+ 1.8880562828450442
+ 1.8882100902860606
+ 1.8883639188900838
+ 1.8885177686612247
+ 1.8886716396036163
+ 1.8888255317213809
+ 1.8889794450186439
+ 1.8891333794995324
+ 1.8892873351681747
+ 1.8894413120287028
+ 1.8895953100852418
+ 1.8897493293419221
+ 1.8899033698028824
+ 1.8900574314722458
+ 1.8902115143541569
+ 1.8903656184527438
+ 1.8905197437721493
+ 1.890673890316499
+ 1.8908280580899486
+ 1.890982247096622
+ 1.8911364573406677
+ 1.8912906888262238
+ 1.8914449415574353
+ 1.8915992155384413
+ 1.8917535107733945
+ 1.8919078272664303
+ 1.8920621650217064
+ 1.8922165240433646
+ 1.8923709043355512
+ 1.8925253059024227
+ 1.8926797287481216
+ 1.8928341728768108
+ 1.8929886382926302
+ 1.8931431249997466
+ 1.8932976330023079
+ 1.893452162304474
+ 1.8936067129103964
+ 1.8937612848242416
+ 1.8939158780501595
+ 1.8940704925923164
+ 1.8942251284548728
+ 1.8943797856419931
+ 1.8945344641578379
+ 1.8946891640065695
+ 1.8948438851923624
+ 1.8949986277193727
+ 1.8951533915917758
+ 1.8953081768137365
+ 1.895462983389425
+ 1.8956178113230153
+ 1.8957726606186758
+ 1.8959275312805766
+ 1.8960824233129037
+ 1.8962373367198229
+ 1.896392271505507
+ 1.8965472276741437
+ 1.8967022052299007
+ 1.8968572041769667
+ 1.8970122245195196
+ 1.8971672662617356
+ 1.8973223294078023
+ 1.8974774139619039
+ 1.8976325199282158
+ 1.8977876473109396
+ 1.897942796114249
+ 1.8980979663423379
+ 1.8982531579993904
+ 1.8984083710896023
+ 1.898563605617162
+ 1.8987188615862594
+ 1.8988741390010895
+ 1.8990294378658499
+ 1.8991847581847339
+ 1.8993400999619332
+ 1.8994954632016494
+ 1.8996508479080811
+ 1.8998062540854266
+ 1.8999616817378859
+ 1.9001171308696592
+ 1.900272601484956
+ 1.9004280935879738
+ 1.9005836071829194
+ 1.9007391422740008
+ 1.9008946988654174
+ 1.9010502769613868
+ 1.9012058765661106
+ 1.9013614976838029
+ 1.9015171403186755
+ 1.9016728044749405
+ 1.9018284901568103
+ 1.9019841973684948
+ 1.90213992611422
+ 1.9022956763981931
+ 1.902451448224634
+ 1.9026072415977635
+ 1.9027630565217988
+ 1.9029188930009662
+ 1.903074751039481
+ 1.9032306306415701
+ 1.9033865318114576
+ 1.9035424545533624
+ 1.9036983988715208
+ 1.9038543647701522
+ 1.9040103522534932
+ 1.9041663613257622
+ 1.9043223919911969
+ 1.9044784442540239
+ 1.9046345181184849
+ 1.9047906135888037
+ 1.9049467306692212
+ 1.9051028693639729
+ 1.9052590296772924
+ 1.9054152116134193
+ 1.9055714151765963
+ 1.9057276403710555
+ 1.9058838872010451
+ 1.9060401556708071
+ 1.9061964457845841
+ 1.9063527575466139
+ 1.90650909096115
+ 1.9066654460324401
+ 1.9068218227647258
+ 1.9069782211622608
+ 1.9071346412292887
+ 1.9072910829700687
+ 1.9074475463888454
+ 1.9076040314898803
+ 1.9077605382774192
+ 1.9079170667557204
+ 1.9080736169290404
+ 1.9082301888016391
+ 1.9083867823777694
+ 1.9085433976616968
+ 1.9087000346576819
+ 1.9088566933699778
+ 1.9090133738028576
+ 1.9091700759605827
+ 1.9093267998474142
+ 1.9094835454676233
+ 1.9096403128254731
+ 1.9097971019252351
+ 1.9099539127711751
+ 1.9101107453675661
+ 1.9102675997186782
+ 1.9104244758287834
+ 1.9105813737021615
+ 1.910738293343081
+ 1.9108952347558155
+ 1.9110521979446515
+ 1.9112091829138604
+ 1.9113661896677172
+ 1.9115232182105109
+ 1.9116802685465228
+ 1.9118373406800278
+ 1.9119944346153122
+ 1.912151550356664
+ 1.9123086879083677
+ 1.9124658472747089
+ 1.912623028459973
+ 1.9127802314684517
+ 1.9129374563044361
+ 1.913094702972219
+ 1.9132519714760858
+ 1.9134092618203336
+ 1.9135665740092582
+ 1.9137239080471593
+ 1.9138812639383205
+ 1.9140386416870507
+ 1.9141960412976453
+ 1.9143534627744057
+ 1.9145109061216281
+ 1.9146683713436159
+ 1.9148258584446798
+ 1.9149833674291161
+ 1.9151408983012319
+ 1.9152984510653348
+ 1.9154560257257336
+ 1.9156136222867315
+ 1.9157712407526446
+ 1.9159288811277817
+ 1.9160865434164551
+ 1.9162442276229725
+ 1.9164019337516587
+ 1.9165596618068204
+ 1.9167174117927706
+ 1.916875183713842
+ 1.9170329775743382
+ 1.9171907933785832
+ 1.9173486311309043
+ 1.9175064908356152
+ 1.9176643724970424
+ 1.9178222761195072
+ 1.9179802017073415
+ 1.918138149264863
+ 1.9182961187964032
+ 1.9184541103062915
+ 1.9186121237988534
+ 1.9187701592784245
+ 1.9189282167493358
+ 1.9190862962159203
+ 1.91924439768251
+ 1.9194025211534407
+ 1.9195606666330487
+ 1.9197188341256715
+ 1.9198770236356482
+ 1.9200352351673133
+ 1.9201934687250144
+ 1.9203517243130939
+ 1.9205100019358869
+ 1.9206683015977455
+ 1.920826623303008
+ 1.9209849670560264
+ 1.9211433328611454
+ 1.9213017207227103
+ 1.9214601306450758
+ 1.9216185626325928
+ 1.9217770166896089
+ 1.9219354928204775
+ 1.9220939910295549
+ 1.9222525113211917
+ 1.9224110536997516
+ 1.9225696181695864
+ 1.9227282047350602
+ 1.9228868134005224
+ 1.9230454441703433
+ 1.9232040970488786
+ 1.9233627720404951
+ 1.9235214691495548
+ 1.9236801883804218
+ 1.9238389297374665
+ 1.9239976932250529
+ 1.924156478847548
+ 1.9243152866093243
+ 1.9244741165147525
+ 1.9246329685682051
+ 1.9247918427740505
+ 1.924950739136668
+ 1.9251096576604301
+ 1.92526859834971
+ 1.9254275612088949
+ 1.9255865462423547
+ 1.9257455534544707
+ 1.925904582849622
+ 1.9260636344321953
+ 1.9262227082065715
+ 1.9263818041771312
+ 1.9265409223482697
+ 1.9267000627243589
+ 1.9268592253097974
+ 1.9270184101089707
+ 1.927177617126266
+ 1.9273368463660798
+ 1.9274960978328002
+ 1.9276553715308209
+ 1.927814667464536
+ 1.9279739856383367
+ 1.9281333260566271
+ 1.9282926887238001
+ 1.9284520736442565
+ 1.9286114808223955
+ 1.9287709102626158
+ 1.9289303619693259
+ 1.9290898359469215
+ 1.9292493321998132
+ 1.9294088507324028
+ 1.9295683915490971
+ 1.9297279546543009
+ 1.9298875400524313
+ 1.9300471477478931
+ 1.9302067777450971
+ 1.9303664300484586
+ 1.9305261046623894
+ 1.9306858015913027
+ 1.9308455208396162
+ 1.9310052624117395
+ 1.9311650263121047
+ 1.9313248125451161
+ 1.9314846211152061
+ 1.931644452026789
+ 1.931804305284287
+ 1.9319641808921273
+ 1.9321240788547338
+ 1.9322839991765328
+ 1.9324439418619441
+ 1.9326039069154048
+ 1.9327638943413439
+ 1.9329239041441832
+ 1.9330839363283672
+ 1.9332439908983181
+ 1.9334040678584701
+ 1.9335641672132633
+ 1.9337242889671333
+ 1.9338844331245144
+ 1.9340445996898472
+ 1.9342047886675711
+ 1.934365000062126
+ 1.9345252338779513
+ 1.9346854901194934
+ 1.9348457687911942
+ 1.9350060698974996
+ 1.935166393442858
+ 1.9353267394317182
+ 1.9354871078685205
+ 1.9356474987577241
+ 1.9358079121037757
+ 1.9359683479111267
+ 1.9361288061842294
+ 1.9362892869275425
+ 1.9364497901455151
+ 1.9366103158426107
+ 1.9367708640232846
+ 1.9369314346919948
+ 1.9370920278532016
+ 1.9372526435113677
+ 1.9374132816709524
+ 1.9375739423364196
+ 1.9377346255122383
+ 1.9378953312028697
+ 1.9380560594127847
+ 1.9382168101464463
+ 1.9383775834083272
+ 1.9385383792028994
+ 1.9386991975346288
+ 1.9388600384079948
+ 1.9390209018274687
+ 1.9391817877975217
+ 1.9393426963226357
+ 1.9395036274072841
+ 1.9396645810559459
+ 1.9398255572731007
+ 1.939986556063233
+ 1.9401475774308239
+ 1.9403086213803507
+ 1.940469687916301
+ 1.9406307770431583
+ 1.9407918887654154
+ 1.9409530230875531
+ 1.9411141800140661
+ 1.9412753595494407
+ 1.9414365616981646
+ 1.94159778646474
+ 1.9417590338536506
+ 1.9419203038693953
+ 1.9420815965164693
+ 1.9422429117993689
+ 1.9424042497225944
+ 1.9425656102906435
+ 1.9427269935080145
+ 1.9428883993792156
+ 1.943049827908742
+ 1.9432112791011029
+ 1.9433727529607956
+ 1.9435342494923395
+ 1.9436957687002301
+ 1.9438573105889791
+ 1.944018875163096
+ 1.9441804624270984
+ 1.9443420723854892
+ 1.944503705042784
+ 1.9446653604034994
+ 1.9448270384721491
+ 1.9449887392532501
+ 1.9451504627513225
+ 1.945312208970877
+ 1.9454739779164472
+ 1.9456357695925424
+ 1.9457975840036927
+ 1.9459594211544167
+ 1.9461212810492436
+ 1.9462831636926972
+ 1.9464450690892989
+ 1.9466069972435882
+ 1.9467689481600881
+ 1.9469309218433346
+ 1.9470929182978487
+ 1.9472549375281727
+ 1.9474169795388363
+ 1.9475790443343759
+ 1.9477411319193314
+ 1.9479032422982319
+ 1.9480653754756281
+ 1.94822753145605
+ 1.948389710244042
+ 1.9485519118441486
+ 1.9487141362609108
+ 1.9488763834988754
+ 1.9490386535625852
+ 1.9492009464565883
+ 1.9493632621854324
+ 1.949525600753673
+ 1.9496879621658509
+ 1.9498503464265269
+ 1.9500127535402476
+ 1.950175183511571
+ 1.9503376363450506
+ 1.9505001120452372
+ 1.9506626106166978
+ 1.9508251320639898
+ 1.9509876763916654
+ 1.9511502436042953
+ 1.9513128337064343
+ 1.9514754467026503
+ 1.951638082597507
+ 1.9518007413955707
+ 1.951963423101408
+ 1.9521261277195809
+ 1.9522888552546704
+ 1.9524516057112407
+ 1.9526143790938622
+ 1.9527771754071124
+ 1.9529399946555637
+ 1.9531028368437873
+ 1.9532657019763657
+ 1.9534285900578714
+ 1.9535915010928842
+ 1.9537544350859868
+ 1.9539173920417601
+ 1.9540803719647861
+ 1.9542433748596459
+ 1.9544064007309274
+ 1.9545694495832182
+ 1.9547325214210984
+ 1.9548956162491626
+ 1.9550587340719967
+ 1.9552218748941961
+ 1.9553850387203444
+ 1.9555482255550396
+ 1.9557114354028788
+ 1.9558746682684534
+ 1.9560379241563621
+ 1.9562012030712022
+ 1.9563645050175744
+ 1.9565278300000724
+ 1.9566911780233085
+ 1.9568545490918694
+ 1.957017943210376
+ 1.9571813603834263
+ 1.9573448006156222
+ 1.9575082639115755
+ 1.9576717502758936
+ 1.9578352597131856
+ 1.9579987922280662
+ 1.9581623478251413
+ 1.9583259265090263
+ 1.9584895282843424
+ 1.9586531531556983
+ 1.9588168011277121
+ 1.9589804722049986
+ 1.9591441663921867
+ 1.959307883693888
+ 1.9594716241147243
+ 1.959635387659322
+ 1.9597991743323093
+ 1.9599629841383046
+ 1.9601268170819346
+ 1.9602906731678276
+ 1.9604545524006205
+ 1.9606184547849304
+ 1.9607823803253954
+ 1.9609463290266524
+ 1.9611103008933233
+ 1.9612742959300515
+ 1.9614383141414726
+ 1.9616023555322237
+ 1.961766420106938
+ 1.9619305078702627
+ 1.9620946188268324
+ 1.9622587529812963
+ 1.9624229103382902
+ 1.9625870909024605
+ 1.9627512946784547
+ 1.9629155216709242
+ 1.9630797718845048
+ 1.9632440453238591
+ 1.9634083419936283
+ 1.9635726618984688
+ 1.9637370050430309
+ 1.9639013714319735
+ 1.9640657610699446
+ 1.9642301739616033
+ 1.9643946101116103
+ 1.9645590695246247
+ 1.9647235522053041
+ 1.9648880581583106
+ 1.9650525873883067
+ 1.9652171398999572
+ 1.9653817156979221
+ 1.9655463147868755
+ 1.9657109371714832
+ 1.9658755828564092
+ 1.9660402518463249
+ 1.9662049441459049
+ 1.9663696597598175
+ 1.9665343986927377
+ 1.9666991609493421
+ 1.9668639465343027
+ 1.9670287554523014
+ 1.9671935877080118
+ 1.9673584433061133
+ 1.9675233222512944
+ 1.9676882245482321
+ 1.9678531502016032
+ 1.9680180992160987
+ 1.9681830715964075
+ 1.9683480673472122
+ 1.9685130864731992
+ 1.9686781289790627
+ 1.9688431948694893
+ 1.9690082841491707
+ 1.9691733968228047
+ 1.9693385328950801
+ 1.9695036923706923
+ 1.9696688752543394
+ 1.9698340815507231
+ 1.969999311264536
+ 1.9701645644004804
+ 1.9703298409632632
+ 1.9704951409575762
+ 1.9706604643881358
+ 1.9708258112596402
+ 1.9709911815767955
+ 1.9711565753443134
+ 1.9713219925668974
+ 1.9714874332492618
+ 1.9716528973961158
+ 1.9718183850121698
+ 1.9719838961021448
+ 1.972149430670749
+ 1.9723149887226996
+ 1.9724805702627191
+ 1.9726461752955193
+ 1.972811803825824
+ 1.9729774558583542
+ 1.9731431313978274
+ 1.9733088304489796
+ 1.9734745530165179
+ 1.9736402991051869
+ 1.9738060687196961
+ 1.9739718618647881
+ 1.9741376785451863
+ 1.9743035187656219
+ 1.9744693825308248
+ 1.9746352698455369
+ 1.9748011807144845
+ 1.9749671151424082
+ 1.9751330731340391
+ 1.9752990546941243
+ 1.9754650598273973
+ 1.9756310885385975
+ 1.9757971408324733
+ 1.9759632167137655
+ 1.976129316187216
+ 1.9762954392575716
+ 1.9764615859295793
+ 1.9766277562079893
+ 1.9767939500975502
+ 1.976960167603012
+ 1.9771264087291311
+ 1.97729267348065
+ 1.9774589618623355
+ 1.9776252738789317
+ 1.9777916095352028
+ 1.9779579688359128
+ 1.9781243517858051
+ 1.9782907583896541
+ 1.9784571886522175
+ 1.9786236425782513
+ 1.9787901201725318
+ 1.9789566214398195
+ 1.979123146384876
+ 1.9792896950124772
+ 1.9794562673273906
+ 1.9796228633343844
+ 1.9797894830382285
+ 1.979956126443706
+ 1.9801227935555785
+ 1.9802894843786323
+ 1.9804561989176355
+ 1.9806229371773654
+ 1.9807896991626146
+ 1.98095648487815
+ 1.9811232943287609
+ 1.9812901275192276
+ 1.9814569844543304
+ 1.981623865138864
+ 1.9817907695776085
+ 1.981957697775357
+ 1.9821246497368923
+ 1.9822916254670095
+ 1.9824586249704956
+ 1.9826256482521476
+ 1.9827926953167649
+ 1.9829597661691321
+ 1.9831268608140535
+ 1.983293979256326
+ 1.9834611215007467
+ 1.9836282875521176
+ 1.9837954774152418
+ 1.9839626910949197
+ 1.9841299285959517
+ 1.984297189923157
+ 1.9844644750813294
+ 1.9846317840752841
+ 1.9847991169098265
+ 1.9849664735897656
+ 1.9851338541199208
+ 1.9853012585051024
+ 1.9854686867501188
+ 1.9856361388597912
+ 1.9858036148389377
+ 1.9859711146923729
+ 1.9861386384249171
+ 1.9863061860413911
+ 1.9864737575466156
+ 1.9866413529454188
+ 1.9868089722426188
+ 1.9869766154430442
+ 1.9871442825515251
+ 1.9873119735728824
+ 1.9874796885119528
+ 1.9876474273735631
+ 1.9878151901625463
+ 1.9879829768837409
+ 1.9881507875419693
+ 1.9883186221420794
+ 1.9884864806888993
+ 1.9886543631872748
+ 1.9888222696420403
+ 1.9889902000580391
+ 1.9891581544401113
+ 1.9893261327931064
+ 1.9894941351218616
+ 1.9896621614312291
+ 1.9898302117260476
+ 1.9899982860111751
+ 1.9901663842914563
+ 1.9903345065717419
+ 1.9905026528568885
+ 1.9906708231517429
+ 1.9908390174611683
+ 1.9910072357900135
+ 1.9911754781431383
+ 1.9913437445254074
+ 1.9915120349416688
+ 1.9916803493967929
+ 1.9918486878956387
+ 1.9920170504430734
+ 1.9921854370439591
+ 1.9923538477031602
+ 1.9925222824255471
+ 1.9926907412159882
+ 1.9928592240793557
+ 1.993027731020518
+ 1.9931962620443511
+ 1.9933648171557246
+ 1.9935333963595148
+ 1.9937019996606031
+ 1.9938706270638593
+ 1.9940392785741698
+ 1.9942079541964117
+ 1.9943766539354681
+ 1.9945453777962172
+ 1.9947141257835497
+ 1.9948828979023447
+ 1.9950516941575001
+ 1.9952205145538906
+ 1.9953893590964167
+ 1.9955582277899557
+ 1.9957271206394132
+ 1.9958960376496773
+ 1.996064978825643
+ 1.9962339441721995
+ 1.9964029336942559
+ 1.9965719473967003
+ 1.9967409852844387
+ 1.9969100473623655
+ 1.9970791336353921
+ 1.997248244108411
+ 1.9974173787863352
+ 1.9975865376740718
+ 1.9977557207765193
+ 1.997924928098594
+ 1.9980941596452053
+ 1.9982634154212626
+ 1.9984326954316773
+ 1.9986019996813653
+ 1.9987713281752386
+ 1.9989406809182202
+ 1.9991100579152192
+ 1.9992794591711607
+ 1.9994488846909642
+ 1.9996183344795475
+ 1.9997878085418406
+ 1.9999573068827599
+ 2.0001268295072321
+ 2.0002963764201871
+ 2.0004659476265516
+ 2.0006355431312604
+ 2.0008051629392325
+ 2.0009748070554094
+ 2.001144475484721
+ 2.0013141682321023
+ 2.001483885302485
+ 2.0016536267008131
+ 2.0018233924320215
+ 2.0019931825010469
+ 2.0021629969128343
+ 2.0023328356723278
+ 2.0025026987844674
+ 2.0026725862542016
+ 2.0028424980864723
+ 2.003012434286227
+ 2.0031823948584209
+ 2.003352379807998
+ 2.0035223891399059
+ 2.0036924228591091
+ 2.0038624809705512
+ 2.0040325634791958
+ 2.0042026703899922
+ 2.0043728017079046
+ 2.0045429574378852
+ 2.0047131375849001
+ 2.004883342153907
+ 2.0050535711498743
+ 2.005223824577762
+ 2.0053941024425388
+ 2.0055644047491725
+ 2.005734731502625
+ 2.0059050827078728
+ 2.0060754583698852
+ 2.0062458584936356
+ 2.0064162830840959
+ 2.0065867321462378
+ 2.0067572056850369
+ 2.0069277037054811
+ 2.0070982262125443
+ 2.0072687732112016
+ 2.0074393447064378
+ 2.0076099407032397
+ 2.0077805612065847
+ 2.0079512062214606
+ 2.0081218757528561
+ 2.0082925698057608
+ 2.0084632883851556
+ 2.0086340314960416
+ 2.0088047991434062
+ 2.0089755913322391
+ 2.009146408067537
+ 2.0093172493543006
+ 2.0094881151975259
+ 2.009659005602205
+ 2.0098299205733445
+ 2.0100008601159427
+ 2.0101718242350044
+ 2.0103428129355292
+ 2.0105138262225286
+ 2.0106848641010031
+ 2.0108559265759665
+ 2.0110270136524178
+ 2.0111981253353797
+ 2.011369261629854
+ 2.0115404225408597
+ 2.0117116080734108
+ 2.0118828182325244
+ 2.0120540530232134
+ 2.0122253124504939
+ 2.0123965965193951
+ 2.0125679052349295
+ 2.0127392386021268
+ 2.0129105966260026
+ 2.0130819793115839
+ 2.013253386663898
+ 2.0134248186879815
+ 2.0135962753888492
+ 2.0137677567715415
+ 2.0139392628410877
+ 2.0141107936025167
+ 2.0142823490608674
+ 2.0144539292211721
+ 2.0146255340884673
+ 2.0147971636677986
+ 2.0149688179641974
+ 2.0151404969827098
+ 2.0153122007283728
+ 2.015483929206237
+ 2.0156556824213445
+ 2.0158274603787385
+ 2.0159992630834709
+ 2.0161710905405874
+ 2.0163429427551391
+ 2.0165148197321798
+ 2.0166867214767592
+ 2.0168586479939385
+ 2.0170305992887632
+ 2.0172025753662965
+ 2.0173745762315987
+ 2.0175466018897268
+ 2.0177186523457356
+ 2.0178907276046991
+ 2.0180628276716739
+ 2.0182349525517242
+ 2.0184071022499257
+ 2.0185792767713306
+ 2.0187514761210217
+ 2.0189237003040619
+ 2.0190959493255254
+ 2.0192682231904833
+ 2.0194405219040146
+ 2.0196128454711935
+ 2.0197851938970923
+ 2.0199575671867938
+ 2.0201299653453786
+ 2.0203023883779263
+ 2.0204748362895146
+ 2.020647309085239
+ 2.0208198067701733
+ 2.0209923293494114
+ 2.0211648768280388
+ 2.0213374492111367
+ 2.0215100465038134
+ 2.0216826687111453
+ 2.0218553158382297
+ 2.0220279878901644
+ 2.0222006848720455
+ 2.0223734067889687
+ 2.0225461536460272
+ 2.0227189254483324
+ 2.0228917222009732
+ 2.0230645439090646
+ 2.0232373905776972
+ 2.0234102622119905
+ 2.0235831588170439
+ 2.0237560803979604
+ 2.0239290269598618
+ 2.0241019985078457
+ 2.0242749950470351
+ 2.0244480165825389
+ 2.0246210631194739
+ 2.0247941346629572
+ 2.0249672312180995
+ 2.025140352790026
+ 2.0253134993838571
+ 2.0254866710047148
+ 2.0256598676577178
+ 2.0258330893479939
+ 2.0260063360806675
+ 2.0261796078608652
+ 2.026352904693717
+ 2.0265262265843549
+ 2.0266995735379045
+ 2.0268729455595031
+ 2.0270463426542813
+ 2.027219764827378
+ 2.0273932120839278
+ 2.0275666844290705
+ 2.0277401818679417
+ 2.0279137044056808
+ 2.0280872520474404
+ 2.0282608247983509
+ 2.0284344226635658
+ 2.0286080456482294
+ 2.0287816937574901
+ 2.028955366996493
+ 2.0291290653703897
+ 2.0293027888843391
+ 2.0294765375434816
+ 2.0296503113529791
+ 2.0298241103179895
+ 2.0299979344436654
+ 2.0301717837351667
+ 2.0303456581976542
+ 2.0305195578362878
+ 2.03069348265623
+ 2.0308674326626446
+ 2.0310414078607031
+ 2.0312154082555622
+ 2.0313894338523988
+ 2.0315634846563757
+ 2.0317375606726671
+ 2.0319116619064479
+ 2.0320857883628842
+ 2.0322599400471582
+ 2.032434116964442
+ 2.0326083191199142
+ 2.0327825465187583
+ 2.032956799166147
+ 2.033131077067269
+ 2.0333053802273029
+ 2.0334797086514418
+ 2.0336540623448589
+ 2.0338284413127456
+ 2.0340028455603001
+ 2.0341772750927021
+ 2.0343517299151466
+ 2.0345262100328281
+ 2.0347007154509367
+ 2.0348752461746713
+ 2.0350498022092292
+ 2.0352243835598065
+ 2.0353989902316072
+ 2.0355736222298288
+ 2.0357482795596735
+ 2.0359229622263491
+ 2.0360976702350593
+ 2.0362724035910063
+ 2.0364471622994076
+ 2.0366219463654631
+ 2.0367967557943887
+ 2.0369715905913992
+ 2.0371464507617021
+ 2.0373213363105163
+ 2.0374962472430593
+ 2.0376711835645427
+ 2.0378461452801946
+ 2.0380211323952295
+ 2.0381961449148722
+ 2.0383711828443429
+ 2.0385462461888699
+ 2.0387213349536797
+ 2.0388964491439974
+ 2.0390715887650548
+ 2.0392467538220758
+ 2.0394219443202988
+ 2.0395971602649583
+ 2.0397724016612817
+ 2.0399476685145124
+ 2.0401229608298812
+ 2.0402982786126298
+ 2.0404736218680024
+ 2.0406489906012308
+ 2.0408243848175687
+ 2.0409998045222513
+ 2.0411752497205344
+ 2.0413507204176566
+ 2.0415262166188697
+ 2.0417017383294183
+ 2.0418772855545639
+ 2.0420528582995541
+ 2.0422284565696431
+ 2.0424040803700811
+ 2.0425797297061359
+ 2.04275540458306
+ 2.0429311050061107
+ 2.0431068309805558
+ 2.0432825825116505
+ 2.043458359604664
+ 2.0436341622648566
+ 2.0438099904975005
+ 2.0439858443078633
+ 2.0441617237012095
+ 2.0443376286828174
+ 2.0445135592579526
+ 2.0446895154318967
+ 2.0448654972099169
+ 2.0450415045972967
+ 2.045217537599306
+ 2.0453935962212331
+ 2.0455696804683501
+ 2.0457457903459488
+ 2.045921925859302
+ 2.046098087013708
+ 2.0462742738144377
+ 2.0464504862667905
+ 2.0466267243760572
+ 2.0468029881475189
+ 2.0469792775864746
+ 2.0471555926982199
+ 2.0473319334880413
+ 2.04750829996124
+ 2.0476846921231169
+ 2.0478611099789652
+ 2.0480375535340931
+ 2.0482140227937933
+ 2.0483905177633783
+ 2.0485670384481431
+ 2.0487435848534021
+ 2.0489201569844657
+ 2.0490967548466323
+ 2.0492733784452195
+ 2.0494500277855412
+ 2.0496267028729012
+ 2.0498034037126271
+ 2.0499801303100278
+ 2.0501568826704197
+ 2.0503336607991272
+ 2.0505104647014631
+ 2.0506872943827608
+ 2.0508641498483331
+ 2.0510410311035097
+ 2.0512179381536169
+ 2.0513948710039775
+ 2.0515718296599315
+ 2.0517488141267988
+ 2.0519258244099134
+ 2.0521028605146117
+ 2.0522799224462283
+ 2.0524570102100967
+ 2.0526341238115551
+ 2.0528112632559465
+ 2.0529884285486073
+ 2.0531656196948815
+ 2.053342836700109
+ 2.05352007956964
+ 2.0536973483088192
+ 2.0538746429229913
+ 2.0540519634175025
+ 2.054229309797718
+ 2.0544066820689717
+ 2.0545840802366269
+ 2.0547615043060383
+ 2.0549389542825596
+ 2.055116430171549
+ 2.0552939319783672
+ 2.055471459708373
+ 2.055649013366931
+ 2.0558265929594004
+ 2.0560041984911486
+ 2.0561818299675414
+ 2.056359487393947
+ 2.0565371707757381
+ 2.0567148801182769
+ 2.0568926154269422
+ 2.0570703767071055
+ 2.0572481639641409
+ 2.0574259772034309
+ 2.0576038164303454
+ 2.057781681650265
+ 2.0579595728685711
+ 2.0581374900906493
+ 2.0583154333218801
+ 2.058493402567652
+ 2.0586713978333449
+ 2.0588494191243543
+ 2.0590274664460639
+ 2.059205539803866
+ 2.0593836392031588
+ 2.0595617646493234
+ 2.0597399161477696
+ 2.0599180937038803
+ 2.0600962973230668
+ 2.0602745270107197
+ 2.0604527827722414
+ 2.0606310646130352
+ 2.0608093725385048
+ 2.0609877065540547
+ 2.0611660666650979
+ 2.0613444528770337
+ 2.0615228651952768
+ 2.0617013036252394
+ 2.0618797681723287
+ 2.062058258841962
+ 2.0622367756395557
+ 2.0624153185705225
+ 2.0625938876402894
+ 2.0627724828542688
+ 2.0629511042178876
+ 2.0631297517365614
+ 2.0633084254157228
+ 2.0634871252607905
+ 2.0636658512771939
+ 2.0638446034703626
+ 2.064023381845729
+ 2.0642021864087186
+ 2.0643810171647665
+ 2.0645598741193094
+ 2.0647387572777851
+ 2.0649176666456266
+ 2.065096602228274
+ 2.0652755640311669
+ 2.065454552059748
+ 2.0656335663194634
+ 2.0658126068157525
+ 2.065991673554064
+ 2.0661707665398477
+ 2.0663498857785503
+ 2.066529031275619
+ 2.0667082030365118
+ 2.066887401066678
+ 2.0670666253715773
+ 2.0672458759566652
+ 2.0674251528273948
+ 2.0676044559892288
+ 2.0677837854476264
+ 2.0679631412080508
+ 2.0681425232759691
+ 2.0683219316568429
+ 2.06850136635614
+ 2.0686808273793291
+ 2.0688603147318751
+ 2.0690398284192582
+ 2.0692193684469404
+ 2.0693989348204043
+ 2.0695785275451226
+ 2.0697581466265715
+ 2.0699377920702302
+ 2.07011746388158
+ 2.0702971620661033
+ 2.0704768866292795
+ 2.0706566375765925
+ 2.0708364149135283
+ 2.0710162186455818
+ 2.0711960487782353
+ 2.071375905316978
+ 2.0715557882673044
+ 2.0717356976347081
+ 2.0719156334246778
+ 2.0720955956427223
+ 2.0722755842943275
+ 2.0724555993850005
+ 2.0726356409202378
+ 2.0728157089055399
+ 2.0729958033464144
+ 2.0731759242483676
+ 2.0733560716169004
+ 2.0735362454575257
+ 2.0737164457757511
+ 2.0738966725770922
+ 2.0740769258670535
+ 2.0742572056511528
+ 2.0744375119349048
+ 2.0746178447238344
+ 2.0747982040234505
+ 2.0749785898392736
+ 2.0751590021768296
+ 2.075339441041641
+ 2.0755199064392302
+ 2.075700398375123
+ 2.0758809168548518
+ 2.0760614618839401
+ 2.0762420334679188
+ 2.076422631612318
+ 2.0766032563226777
+ 2.0767839076045318
+ 2.0769645854634131
+ 2.0771452899048577
+ 2.0773260209344135
+ 2.0775067785576096
+ 2.0776875627800009
+ 2.0778683736071226
+ 2.0780492110445232
+ 2.0782300750977485
+ 2.07841096577235
+ 2.0785918830738748
+ 2.0787728270078758
+ 2.0789537975799028
+ 2.0791347947955114
+ 2.0793158186602625
+ 2.079496869179708
+ 2.0796779463594115
+ 2.0798590502049228
+ 2.0800401807218161
+ 2.0802213379156531
+ 2.0804025217919957
+ 2.0805837323564034
+ 2.0807649696144583
+ 2.0809462335717179
+ 2.0811275242337608
+ 2.0813088416061563
+ 2.0814901856944767
+ 2.0816715565043058
+ 2.0818529540412092
+ 2.0820343783107678
+ 2.0822158293185691
+ 2.0823973070701904
+ 2.0825788115712158
+ 2.0827603428272261
+ 2.0829419008438075
+ 2.083123485626551
+ 2.0833050971810452
+ 2.0834867355128801
+ 2.0836684006276487
+ 2.0838500925309438
+ 2.0840318112283525
+ 2.0842135567254862
+ 2.0843953290279353
+ 2.0845771281412993
+ 2.0847589540711788
+ 2.0849408068231816
+ 2.0851226864029102
+ 2.0853045928159641
+ 2.0854865260679532
+ 2.0856684861644927
+ 2.0858504731111855
+ 2.0860324869136444
+ 2.0862145275774884
+ 2.0863965951083268
+ 2.0865786895117764
+ 2.086760810793459
+ 2.0869429589589918
+ 2.0871251340139905
+ 2.0873073359640846
+ 2.0874895648148986
+ 2.0876718205720546
+ 2.0878541032411779
+ 2.0880364128279005
+ 2.0882187493378535
+ 2.0884011127766668
+ 2.0885835031499687
+ 2.0887659204634015
+ 2.0889483647225986
+ 2.0891308359331999
+ 2.0893133341008383
+ 2.0894958592311599
+ 2.0896784113298073
+ 2.0898609904024195
+ 2.0900435964546467
+ 2.0902262294921359
+ 2.0904088895205319
+ 2.0905915765454899
+ 2.0907742905726585
+ 2.0909570316076871
+ 2.0911397996562324
+ 2.0913225947239513
+ 2.0915054168165073
+ 2.0916882659395535
+ 2.0918711420987464
+ 2.0920540452997565
+ 2.0922369755482455
+ 2.0924199328498725
+ 2.0926029172103155
+ 2.0927859286352306
+ 2.0929689671303029
+ 2.0931520327011861
+ 2.0933351253535672
+ 2.093518245093116
+ 2.0937013919255043
+ 2.0938845658564196
+ 2.094067766891528
+ 2.094250995036524
+ 2.0944342502970805
+ 2.0946175326788818
+ 2.0948008421876225
+ 2.0949841788289767
+ 2.095167542608642
+ 2.0953509335323033
+ 2.095534351605655
+ 2.0957177968343856
+ 2.0959012692242003
+ 2.0960847687807838
+ 2.09626829550984
+ 2.0964518494170696
+ 2.0966354305081638
+ 2.0968190387888361
+ 2.0970026742647883
+ 2.0971863369417174
+ 2.0973700268253417
+ 2.0975537439213632
+ 2.0977374882354956
+ 2.0979212597734471
+ 2.098105058540932
+ 2.098288884543662
+ 2.0984727377873624
+ 2.0986566182777464
+ 2.0988405260205285
+ 2.0990244610214379
+ 2.0992084232861945
+ 2.0993924128205173
+ 2.0995764296301371
+ 2.0997604737207793
+ 2.0999445450981771
+ 2.1001286437680537
+ 2.1003127697361488
+ 2.1004969230081869
+ 2.1006811035899116
+ 2.1008653114870572
+ 2.1010495467053567
+ 2.1012338092505547
+ 2.1014180991283915
+ 2.1016024163446101
+ 2.1017867609049552
+ 2.1019711328151742
+ 2.1021555320810092
+ 2.1023399587082174
+ 2.102524412702544
+ 2.1027088940697394
+ 2.1028934028155644
+ 2.1030779389457668
+ 2.10326250246611
+ 2.1034470933823486
+ 2.1036317117002472
+ 2.1038163574255586
+ 2.1040010305640551
+ 2.1041857311214986
+ 2.1043704591036474
+ 2.1045552145162829
+ 2.1047399973651699
+ 2.1049248076560745
+ 2.1051096453947764
+ 2.1052945105870493
+ 2.1054794032386641
+ 2.1056643233553998
+ 2.105849270943037
+ 2.1060342460073556
+ 2.1062192485541353
+ 2.1064042785891623
+ 2.106589336118224
+ 2.1067744211471027
+ 2.1069595336815929
+ 2.1071446737274799
+ 2.1073298412905506
+ 2.1075150363766104
+ 2.1077002589914402
+ 2.1078855091408517
+ 2.1080707868306314
+ 2.1082560920665823
+ 2.108441424854504
+ 2.1086267852002019
+ 2.1088121731094751
+ 2.1089975885881391
+ 2.1091830316419906
+ 2.1093685022768471
+ 2.1095540004985174
+ 2.1097395263128074
+ 2.1099250797255364
+ 2.1101106607425213
+ 2.1102962693695759
+ 2.1104819056125144
+ 2.1106675694771653
+ 2.1108532609693511
+ 2.1110389800948832
+ 2.1112247268596001
+ 2.1114105012693209
+ 2.1115963033298746
+ 2.1117821330470945
+ 2.1119679904268027
+ 2.1121538754748461
+ 2.1123397881970454
+ 2.1125257285992456
+ 2.1127116966872781
+ 2.1128976924669907
+ 2.1130837159442177
+ 2.1132697671247986
+ 2.1134558460145829
+ 2.1136419526194188
+ 2.1138280869451482
+ 2.1140142489976208
+ 2.1142004387826905
+ 2.1143866563062041
+ 2.1145729015740149
+ 2.1147591745919838
+ 2.1149454753659658
+ 2.115131803901821
+ 2.1153181602054016
+ 2.1155045442825786
+ 2.1156909561392077
+ 2.1158773957811552
+ 2.1160638632142938
+ 2.1162503584444847
+ 2.1164368814776044
+ 2.1166234323195181
+ 2.1168100109761001
+ 2.1169966174532258
+ 2.1171832517567721
+ 2.1173699138926128
+ 2.1175566038666309
+ 2.1177433216847072
+ 2.1179300673527273
+ 2.1181168408765636
+ 2.1183036422621146
+ 2.1184904715152637
+ 2.1186773286418967
+ 2.1188642136479103
+ 2.1190511265391874
+ 2.1192380673216307
+ 2.1194250360011351
+ 2.119612032583591
+ 2.1197990570749012
+ 2.1199861094809678
+ 2.1201731898076885
+ 2.1203602980609708
+ 2.1205474342467188
+ 2.1207345983708406
+ 2.1209217904392381
+ 2.1211090104578267
+ 2.1212962584325168
+ 2.1214835343692231
+ 2.12167083827386
+ 2.1218581701523451
+ 2.1220455300105923
+ 2.1222329178545283
+ 2.1224203336900649
+ 2.1226077775231289
+ 2.1227952493596502
+ 2.1229827492055522
+ 2.1231702770667575
+ 2.1233578329492029
+ 2.1235454168588155
+ 2.1237330288015301
+ 2.1239206687832777
+ 2.1241083368099982
+ 2.1242960328876292
+ 2.1244837570221011
+ 2.1246715092193713
+ 2.1248592894853671
+ 2.1250470978260396
+ 2.1252349342473353
+ 2.1254227987551948
+ 2.1256106913555772
+ 2.125798612054429
+ 2.1259865608576973
+ 2.1261745377713446
+ 2.1263625428013211
+ 2.1265505759535865
+ 2.1267386372340971
+ 2.1269267266488159
+ 2.1271148442037013
+ 2.1273029899047229
+ 2.1274911637578415
+ 2.1276793657690245
+ 2.1278675959442435
+ 2.1280558542894634
+ 2.1282441408106592
+ 2.1284324555138117
+ 2.1286207984048837
+ 2.128809169489863
+ 2.1289975687747189
+ 2.1291859962654374
+ 2.1293744519679998
+ 2.1295629358883836
+ 2.1297514480325823
+ 2.1299399884065822
+ 2.1301285570163668
+ 2.1303171538679253
+ 2.130505778967255
+ 2.1306944323203449
+ 2.1308831139331903
+ 2.1310718238117921
+ 2.1312605619621396
+ 2.1314493283902438
+ 2.1316381231021007
+ 2.1318269461037156
+ 2.1320157974010856
+ 2.1322046770002334
+ 2.132393584907148
+ 2.132582521127854
+ 2.1327714856683544
+ 2.1329604785346645
+ 2.1331494997328071
+ 2.133338549268784
+ 2.1335276271486237
+ 2.133716733378344
+ 2.1339058679639624
+ 2.1340950309115065
+ 2.1342842222270031
+ 2.1344734419164766
+ 2.1346626899859502
+ 2.1348519664414565
+ 2.1350412712890305
+ 2.1352306045346969
+ 2.1354199661845015
+ 2.1356093562444736
+ 2.135798774720655
+ 2.135988221619082
+ 2.1361776969457948
+ 2.1363672007068408
+ 2.1365567329082618
+ 2.1367462935561088
+ 2.1369358826564246
+ 2.1371255002152587
+ 2.1373151462386661
+ 2.1375048207326968
+ 2.1376945237034093
+ 2.1378842551568553
+ 2.1380740150990962
+ 2.1382638035361898
+ 2.1384536204742006
+ 2.1386434659191886
+ 2.1388333398772157
+ 2.1390232423543583
+ 2.1392131733566702
+ 2.1394031328902363
+ 2.1395931209611216
+ 2.1397831375753942
+ 2.1399731827391313
+ 2.1401632564584117
+ 2.1403533587393158
+ 2.1405434895879241
+ 2.1407336490103095
+ 2.1409238370125614
+ 2.1411140536007678
+ 2.1413042987810051
+ 2.1414945725593704
+ 2.141684874941951
+ 2.1418752059348409
+ 2.1420655655441259
+ 2.1422559537759112
+ 2.1424463706362804
+ 2.1426368161313456
+ 2.1428272902671974
+ 2.1430177930499457
+ 2.1432083244856828
+ 2.1433988845805216
+ 2.1435894733405707
+ 2.1437800907719309
+ 2.1439707368807177
+ 2.1441614116730388
+ 2.1443521151550122
+ 2.1445428473327537
+ 2.1447336082123734
+ 2.1449243977999974
+ 2.1451152161017393
+ 2.1453060631237277
+ 2.1454969388720833
+ 2.1456878433529272
+ 2.1458787765723968
+ 2.1460697385366099
+ 2.1462607292516989
+ 2.1464517487238011
+ 2.1466427969590494
+ 2.1468338739635731
+ 2.1470249797435197
+ 2.1472161143050159
+ 2.1474072776542119
+ 2.1475984697972463
+ 2.1477896907402658
+ 2.1479809404894121
+ 2.1481722190508354
+ 2.1483635264306784
+ 2.1485548626351019
+ 2.1487462276702525
+ 2.1489376215422848
+ 2.1491290442573554
+ 2.1493204958216214
+ 2.1495119762412425
+ 2.149703485522382
+ 2.1498950236711969
+ 2.1500865906938595
+ 2.1502781865965277
+ 2.150469811385376
+ 2.1506614650665701
+ 2.1508531476462815
+ 2.1510448591306823
+ 2.1512365995259524
+ 2.1514283688382614
+ 2.1516201670737947
+ 2.151811994238721
+ 2.1520038503392325
+ 2.1521957353815089
+ 2.1523876493717373
+ 2.1525795923160937
+ 2.1527715642207839
+ 2.1529635650919854
+ 2.153155594935896
+ 2.1533476537587029
+ 2.153539741566604
+ 2.1537318583658021
+ 2.1539240041624925
+ 2.1541161789628664
+ 2.1543083827731397
+ 2.1545006155995061
+ 2.1546928774481802
+ 2.1548851683253627
+ 2.155077488237259
+ 2.1552698371900929
+ 2.1554622151900626
+ 2.1556546222433934
+ 2.1558470583562914
+ 2.1560395235349836
+ 2.1562320177856846
+ 2.156424541114617
+ 2.1566170935279976
+ 2.1568096750320582
+ 2.1570022856330215
+ 2.1571949253371172
+ 2.1573875941505745
+ 2.1575802920796257
+ 2.1577730191304982
+ 2.1579657753094357
+ 2.1581585606226725
+ 2.1583513750764403
+ 2.158544218676981
+ 2.1587370914305475
+ 2.1589299933433699
+ 2.1591229244217027
+ 2.1593158846717837
+ 2.1595088740998705
+ 2.1597018927122109
+ 2.1598949405150525
+ 2.1600880175146542
+ 2.1602811237172701
+ 2.160474259129157
+ 2.1606674237565815
+ 2.1608606176057892
+ 2.1610538406830555
+ 2.1612470929946404
+ 2.161440374546808
+ 2.1616336853458331
+ 2.1618270253979781
+ 2.1620203947095145
+ 2.1622137932867189
+ 2.1624072211358678
+ 2.1626006782632357
+ 2.1627941646750974
+ 2.1629876803777344
+ 2.1631812253774334
+ 2.1633747996804726
+ 2.1635684032931426
+ 2.1637620362217223
+ 2.163955698472511
+ 2.1641493900517887
+ 2.1643431109658531
+ 2.1645368612210012
+ 2.1647306408235178
+ 2.1649244497797113
+ 2.1651182880958801
+ 2.1653121557783255
+ 2.1655060528333405
+ 2.165699979267242
+ 2.1658939350863289
+ 2.1660879202969143
+ 2.1662819349053017
+ 2.1664759789178141
+ 2.1666700523407489
+ 2.166864155180432
+ 2.1670582874431763
+ 2.1672524491353014
+ 2.1674466402631314
+ 2.1676408608329836
+ 2.1678351108511813
+ 2.1680293903240515
+ 2.1682236992579251
+ 2.1684180376591282
+ 2.168612405533993
+ 2.1688068028888483
+ 2.1690012297300325
+ 2.1691956860638868
+ 2.1693901718967341
+ 2.1695846872349271
+ 2.1697792320848044
+ 2.1699738064527105
+ 2.170168410344985
+ 2.1703630437679835
+ 2.170557706728045
+ 2.170752399231525
+ 2.1709471212847755
+ 2.1711418728941472
+ 2.1713366540660006
+ 2.1715314648066943
+ 2.1717263051225797
+ 2.1719211750200236
+ 2.1721160745053858
+ 2.1723110035850377
+ 2.1725059622653382
+ 2.1727009505526573
+ 2.1728959684533642
+ 2.1730910159738364
+ 2.1732860931204363
+ 2.1734811998995491
+ 2.173676336317548
+ 2.1738715023808122
+ 2.1740666980957206
+ 2.1742619234686607
+ 2.1744571785060094
+ 2.1746524632141608
+ 2.1748477775994943
+ 2.1750431216684056
+ 2.1752384954272825
+ 2.1754338988825181
+ 2.1756293320405073
+ 2.1758247949076499
+ 2.1760202874903389
+ 2.1762158097949817
+ 2.1764113618279772
+ 2.176606943595722
+ 2.1768025551046271
+ 2.1769981963611094
+ 2.1771938673715603
+ 2.1773895681424023
+ 2.1775852986800435
+ 2.1777810589909015
+ 2.1779768490813933
+ 2.1781726689579362
+ 2.1783685186269448
+ 2.178564398094847
+ 2.1787603073680657
+ 2.178956246453021
+ 2.1791522153561491
+ 2.1793482140838667
+ 2.1795442426426166
+ 2.1797403010388252
+ 2.1799363892789207
+ 2.1801325073693514
+ 2.1803286553165497
+ 2.1805248331269556
+ 2.1807210408070086
+ 2.1809172783631547
+ 2.1811135458018343
+ 2.1813098431294988
+ 2.1815061703525997
+ 2.181702527477579
+ 2.1818989145108971
+ 2.1820953314589997
+ 2.1822917783283504
+ 2.1824882551254023
+ 2.182684761856621
+ 2.1828812985284607
+ 2.1830778651473861
+ 2.1832744617198632
+ 2.1834710882523596
+ 2.1836677447513382
+ 2.1838644312232782
+ 2.1840611476746465
+ 2.1842578941119233
+ 2.1844546705415739
+ 2.1846514769700822
+ 2.1848483134039269
+ 2.1850451798495865
+ 2.1852420763135534
+ 2.1854390028023016
+ 2.1856359593223229
+ 2.1858329458801022
+ 2.1860299624821331
+ 2.1862270091349094
+ 2.1864240858449215
+ 2.1866211926186656
+ 2.1868183294626449
+ 2.187015496383347
+ 2.1872126933872829
+ 2.1874099204809538
+ 2.1876071776708614
+ 2.1878044649635209
+ 2.1880017823654261
+ 2.1881991298830981
+ 2.1883965075230485
+ 2.1885939152917926
+ 2.1887913531958385
+ 2.1889888212417126
+ 2.1891863194359278
+ 2.1893838477850074
+ 2.189581406295479
+ 2.1897789949738553
+ 2.1899766138266781
+ 2.1901742628604697
+ 2.1903719420817609
+ 2.1905696514970807
+ 2.1907673911129675
+ 2.1909651609359582
+ 2.1911629609725871
+ 2.1913607912293913
+ 2.1915586517129202
+ 2.191756542429713
+ 2.1919544633863097
+ 2.1921524145892692
+ 2.1923503960451285
+ 2.1925484077604449
+ 2.1927464497417688
+ 2.192944521995654
+ 2.1931426245286589
+ 2.1933407573473436
+ 2.1935389204582592
+ 2.1937371138679747
+ 2.1939353375830515
+ 2.1941335916100573
+ 2.1943318759555561
+ 2.1945301906261179
+ 2.1947285356283142
+ 2.1949269109687171
+ 2.1951253166539004
+ 2.1953237526904434
+ 2.1955222190849231
+ 2.1957207158439171
+ 2.1959192429740133
+ 2.1961178004817872
+ 2.196316388373833
+ 2.1965150066567358
+ 2.1967136553370823
+ 2.1969123344214627
+ 2.197111043916478
+ 2.1973097838287146
+ 2.1975085541647728
+ 2.19770735493125
+ 2.1979061861347495
+ 2.1981050477818713
+ 2.1983039398792199
+ 2.1985028624334051
+ 2.1987018154510269
+ 2.1989007989387028
+ 2.1990998129030461
+ 2.1992988573506604
+ 2.1994979322881685
+ 2.1996970377221854
+ 2.1998961736593263
+ 2.2000953401062233
+ 2.2002945370694893
+ 2.2004937645557545
+ 2.2006930225716386
+ 2.2008923111237797
+ 2.2010916302188046
+ 2.20129097986334
+ 2.2014903600640272
+ 2.2016897708274938
+ 2.2018892121603875
+ 2.2020886840693423
+ 2.2022881865610002
+ 2.2024877196420052
+ 2.2026872833190039
+ 2.2028868775986377
+ 2.2030865024875643
+ 2.2032861579924328
+ 2.2034858441198897
+ 2.203685560876592
+ 2.2038853082692018
+ 2.2040850863043731
+ 2.204284894988763
+ 2.2044847343290419
+ 2.2046846043318684
+ 2.204884505003907
+ 2.2050844363518269
+ 2.2052843983823016
+ 2.2054843911019937
+ 2.2056844145175867
+ 2.2058844686357517
+ 2.2060845534631701
+ 2.2062846690065108
+ 2.2064848152724625
+ 2.2066849922677099
+ 2.2068851999989305
+ 2.2070854384728134
+ 2.2072857076960513
+ 2.2074860076753295
+ 2.207686338417342
+ 2.2078866999287849
+ 2.208087092216358
+ 2.2082875152867465
+ 2.2084879691466583
+ 2.2086884538027998
+ 2.2088889692618672
+ 2.2090895155305694
+ 2.2092900926156047
+ 2.2094907005237001
+ 2.2096913392615547
+ 2.2098920088358809
+ 2.2100927092533991
+ 2.2102934405208217
+ 2.2104942026448753
+ 2.2106949956322683
+ 2.2108958194897346
+ 2.2110966742239908
+ 2.2112975598417717
+ 2.2114984763497936
+ 2.2116994237547978
+ 2.2119004020635127
+ 2.2121014112826685
+ 2.2123024514190051
+ 2.2125035224792593
+ 2.2127046244701747
+ 2.2129057573984863
+ 2.2131069212709398
+ 2.2133081160942818
+ 2.2135093418752598
+ 2.2137105986206209
+ 2.2139118863371188
+ 2.2141132050315058
+ 2.2143145547105321
+ 2.2145159353809656
+ 2.2147173470495574
+ 2.214918789723066
+ 2.2151202634082581
+ 2.2153217681118949
+ 2.2155233038407469
+ 2.2157248706015809
+ 2.2159264684011708
+ 2.2161280972462825
+ 2.2163297571436904
+ 2.2165314481001781
+ 2.2167331701225135
+ 2.2169349232174826
+ 2.2171367073918655
+ 2.2173385226524451
+ 2.2175403690060103
+ 2.2177422464593457
+ 2.2179441550192385
+ 2.2181460946924854
+ 2.2183480654858756
+ 2.2185500674062095
+ 2.2187521004602786
+ 2.2189541646548854
+ 2.2191562599968231
+ 2.2193583864929081
+ 2.2195605441499371
+ 2.2197627329747167
+ 2.219964952974057
+ 2.2201672041547682
+ 2.2203694865236621
+ 2.2205718000875518
+ 2.2207741448532605
+ 2.2209765208275996
+ 2.2211789280173959
+ 2.2213813664294673
+ 2.221583836070633
+ 2.22178633694773
+ 2.221988869067578
+ 2.222191432437012
+ 2.2223940270628564
+ 2.2225966529519514
+ 2.2227993101111343
+ 2.2230019985472431
+ 2.2232047182671084
+ 2.2234074692775807
+ 2.2236102515855021
+ 2.223813065197711
+ 2.224015910121063
+ 2.2242187863624037
+ 2.2244216939285906
+ 2.2246246328264681
+ 2.2248276030628951
+ 2.2250306046447279
+ 2.2252336375788304
+ 2.2254367018720549
+ 2.2256397975312732
+ 2.225842924563346
+ 2.2260460829751354
+ 2.2262492727735212
+ 2.2264524939653647
+ 2.2266557465575407
+ 2.2268590305569287
+ 2.2270623459704022
+ 2.2272656928048362
+ 2.2274690710671141
+ 2.2276724807641188
+ 2.2278759219027382
+ 2.2280793944898543
+ 2.2282828985323544
+ 2.2284864340371264
+ 2.2286900010110746
+ 2.228893599461081
+ 2.2290972293940472
+ 2.2293008908168712
+ 2.2295045837364542
+ 2.229708308159692
+ 2.2299120640934964
+ 2.2301158515447668
+ 2.2303196705204131
+ 2.2305235210273513
+ 2.2307274030724851
+ 2.2309313166627329
+ 2.2311352618050102
+ 2.2313392385062287
+ 2.2315432467733207
+ 2.2317472866131971
+ 2.2319513580327817
+ 2.2321554610390071
+ 2.2323595956387963
+ 2.2325637618390792
+ 2.2327679596467864
+ 2.2329721890688545
+ 2.2331764501122175
+ 2.2333807427838108
+ 2.2335850670905795
+ 2.233789423039461
+ 2.2339938106373944
+ 2.2341982298913345
+ 2.2344026808082225
+ 2.2346071633950064
+ 2.2348116776586444
+ 2.235016223606082
+ 2.235220801244282
+ 2.235425410580191
+ 2.2356300516207797
+ 2.2358347243730057
+ 2.2360394288438288
+ 2.2362441650402163
+ 2.2364489329691368
+ 2.2366537326375573
+ 2.2368585640524494
+ 2.2370634272207872
+ 2.2372683221495446
+ 2.2374732488456983
+ 2.2376782073162347
+ 2.2378831975681188
+ 2.2380882196083496
+ 2.2382932734439005
+ 2.2384983590817722
+ 2.2387034765289391
+ 2.2389086257924018
+ 2.2391138068791481
+ 2.2393190197961741
+ 2.2395242645504805
+ 2.2397295411490625
+ 2.2399348495989178
+ 2.2401401899070579
+ 2.2403455620804844
+ 2.2405509661262024
+ 2.2407564020512205
+ 2.2409618698625504
+ 2.2411673695672083
+ 2.2413729011722014
+ 2.2415784646845598
+ 2.2417840601112893
+ 2.2419896874594154
+ 2.2421953467359645
+ 2.2424010379479586
+ 2.2426067611024281
+ 2.242812516206393
+ 2.2430183032668958
+ 2.2432241222909601
+ 2.2434299732856249
+ 2.2436358562579315
+ 2.2438417712149121
+ 2.2440477181636065
+ 2.2442536971110627
+ 2.2444597080643294
+ 2.2446657510304471
+ 2.2448718260164657
+ 2.2450779330294357
+ 2.2452840720764096
+ 2.2454902431644546
+ 2.2456964463006095
+ 2.2459026814919412
+ 2.2461089487455164
+ 2.246315248068393
+ 2.246521579467637
+ 2.2467279429503093
+ 2.2469343385234914
+ 2.2471407661942471
+ 2.2473472259696528
+ 2.2475537178567793
+ 2.247760241862709
+ 2.247966797994517
+ 2.248173386259289
+ 2.2483800066641053
+ 2.2485866592160511
+ 2.2487933439222152
+ 2.2490000607896881
+ 2.2492068098255578
+ 2.2494135910369222
+ 2.249620404430877
+ 2.2498272500145133
+ 2.2500341277949345
+ 2.2502410377792486
+ 2.2504479799745467
+ 2.2506549543879446
+ 2.2508619610265472
+ 2.2510689998974671
+ 2.2512760710078061
+ 2.2514831743646915
+ 2.2516903099752272
+ 2.2518974778465424
+ 2.2521046779857481
+ 2.2523119103999676
+ 2.2525191750963294
+ 2.2527264720819589
+ 2.2529338013639832
+ 2.2531411629495297
+ 2.253348556845729
+ 2.253555983059726
+ 2.2537634415986476
+ 2.2539709324696338
+ 2.2541784556798277
+ 2.2543860112363658
+ 2.2545935991463972
+ 2.2548012194170695
+ 2.2550088720555279
+ 2.2552165570689251
+ 2.2554242744644175
+ 2.2556320242491563
+ 2.2558398064302958
+ 2.2560476210149951
+ 2.256255468010421
+ 2.2564633474237294
+ 2.2566712592620903
+ 2.2568792035326672
+ 2.2570871802426304
+ 2.2572951893991524
+ 2.2575032310094021
+ 2.2577113050805622
+ 2.2579194116198065
+ 2.2581275506343115
+ 2.2583357221312599
+ 2.2585439261178433
+ 2.2587521626012337
+ 2.2589604315886271
+ 2.2591687330872112
+ 2.2593770671041749
+ 2.259585433646722
+ 2.2597938327220324
+ 2.2600022643373223
+ 2.2602107284997772
+ 2.2604192252166073
+ 2.2606277544950109
+ 2.2608363163422012
+ 2.2610449107653783
+ 2.2612535377717586
+ 2.2614621973685547
+ 2.2616708895629771
+ 2.2618796143622455
+ 2.2620883717735771
+ 2.2622971618041956
+ 2.2625059844613151
+ 2.2627148397521721
+ 2.2629237276839844
+ 2.2631326482639857
+ 2.2633416014994063
+ 2.263550587397483
+ 2.2637596059654395
+ 2.2639686572105235
+ 2.2641777411399739
+ 2.2643868577610289
+ 2.264596007080931
+ 2.2648051891069332
+ 2.2650144038462767
+ 2.2652236513062101
+ 2.2654329314939878
+ 2.2656422444168651
+ 2.2658515900820944
+ 2.2660609684969377
+ 2.2662703796686556
+ 2.2664798236045094
+ 2.2666893003117572
+ 2.2668988097976768
+ 2.267108352069529
+ 2.2673179271345858
+ 2.2675275350001245
+ 2.2677371756734113
+ 2.2679468491617261
+ 2.2681565554723555
+ 2.2683662946125742
+ 2.268576066589667
+ 2.2687858714109148
+ 2.2689957090836126
+ 2.269205579615047
+ 2.2694154830125055
+ 2.269625419283285
+ 2.269835388434688
+ 2.2700453904740008
+ 2.2702554254085281
+ 2.2704654932455743
+ 2.2706755939924426
+ 2.2708857276564389
+ 2.2710958942448696
+ 2.2713060937650487
+ 2.271516326224285
+ 2.2717265916298959
+ 2.2719368899891981
+ 2.2721472213095111
+ 2.2723575855981544
+ 2.2725679828624505
+ 2.2727784131097319
+ 2.2729888763473198
+ 2.273199372582543
+ 2.2734099018227352
+ 2.2736204640752251
+ 2.2738310593473576
+ 2.2740416876464646
+ 2.2742523489798847
+ 2.2744630433549662
+ 2.2746737707790508
+ 2.274884531259485
+ 2.2750953248036181
+ 2.2753061514187958
+ 2.2755170111123784
+ 2.2757279038917142
+ 2.2759388297641641
+ 2.2761497887370865
+ 2.2763607808178445
+ 2.2765718060137967
+ 2.2767828643323145
+ 2.2769939557807573
+ 2.2772050803665094
+ 2.2774162380969241
+ 2.2776274289793923
+ 2.2778386530212815
+ 2.2780499102299658
+ 2.2782612006128389
+ 2.278472524177273
+ 2.2786838809306551
+ 2.2788952708803709
+ 2.2791066940338101
+ 2.2793181503983693
+ 2.2795296399814333
+ 2.2797411627904012
+ 2.279952718832674
+ 2.280164308115646
+ 2.28037593064672
+ 2.2805875864333021
+ 2.2807992754827993
+ 2.2810109978026101
+ 2.2812227534001597
+ 2.2814345422828497
+ 2.2816463644580969
+ 2.2818582199333215
+ 2.2820701087159434
+ 2.2822820308133802
+ 2.2824939862330509
+ 2.282705974982389
+ 2.2829179970688172
+ 2.2831300524997675
+ 2.2833421412826742
+ 2.2835542634249593
+ 2.2837664189340732
+ 2.2839786078174455
+ 2.2841908300825207
+ 2.284403085736741
+ 2.2846153747875477
+ 2.2848276972423913
+ 2.2850400531087178
+ 2.2852524423939835
+ 2.2854648651056331
+ 2.2856773212511308
+ 2.2858898108379333
+ 2.2861023338734938
+ 2.286314890365281
+ 2.2865274803207516
+ 2.2867401037473778
+ 2.2869527606526274
+ 2.2871654510439767
+ 2.287378174928882
+ 2.2875909323148313
+ 2.2878037232093029
+ 2.2880165476197698
+ 2.2882294055537131
+ 2.2884422970186176
+ 2.2886552220219776
+ 2.2888681805712645
+ 2.2890811726739835
+ 2.2892941983376169
+ 2.2895072575696669
+ 2.2897203503776216
+ 2.2899334767689843
+ 2.2901466367512606
+ 2.2903598303319419
+ 2.290573057518547
+ 2.2907863183185762
+ 2.2909996127395398
+ 2.2912129407889505
+ 2.2914263024743184
+ 2.2916396978031637
+ 2.2918531267830038
+ 2.2920665894213568
+ 2.2922800857257517
+ 2.2924936157037061
+ 2.292707179362754
+ 2.2929207767104223
+ 2.2931344077542386
+ 2.2933480725017397
+ 2.293561770960459
+ 2.2937755031379368
+ 2.2939892690417105
+ 2.2942030686793324
+ 2.294416902058332
+ 2.2946307691862668
+ 2.2948446700706824
+ 2.295058604719129
+ 2.2952725731391612
+ 2.295486575338332
+ 2.2957006113242087
+ 2.2959146811043367
+ 2.2961287846862874
+ 2.2963429220776232
+ 2.2965570932859136
+ 2.2967712983187192
+ 2.296985537183617
+ 2.297199809888177
+ 2.2974141164399766
+ 2.2976284568465952
+ 2.2978428311156094
+ 2.2980572392546033
+ 2.2982716812711548
+ 2.2984861571728596
+ 2.2987006669672976
+ 2.2989152106620683
+ 2.2991297882647546
+ 2.2993443997829597
+ 2.2995590452242727
+ 2.2997737245963052
+ 2.2999884379066509
+ 2.3002031851629132
+ 2.3004179663726987
+ 2.3006327815436185
+ 2.3008476306832817
+ 2.3010625137992986
+ 2.3012774308992867
+ 2.3014923819908679
+ 2.3017073670816526
+ 2.3019223861792666
+ 2.3021374392913372
+ 2.3023525264254849
+ 2.3025676475893384
+ 2.302782802790531
+ 2.3029979920366954
+ 2.3032132153354676
+ 2.3034284726944789
+ 2.3036437641213761
+ 2.3038590896237952
+ 2.3040744492093861
+ 2.3042898428857828
+ 2.304505270660647
+ 2.3047207325416257
+ 2.3049362285363655
+ 2.3051517586525296
+ 2.305367322897768
+ 2.3055829212797474
+ 2.3057985538061208
+ 2.3060142204845615
+ 2.3062299213227266
+ 2.3064456563282931
+ 2.3066614255089242
+ 2.3068772288723012
+ 2.3070930664260851
+ 2.3073089381779699
+ 2.3075248441356209
+ 2.3077407843067279
+ 2.30795675869898
+ 2.3081727673200514
+ 2.308388810177632
+ 2.3086048872794209
+ 2.3088209986331045
+ 2.3090371442463806
+ 2.3092533241269448
+ 2.3094695382825003
+ 2.3096857867207476
+ 2.3099020694493873
+ 2.3101183864761272
+ 2.3103347378086827
+ 2.3105511234547591
+ 2.3107675434220685
+ 2.3109839977183295
+ 2.3112004863512534
+ 2.3114170093285669
+ 2.3116335666579926
+ 2.3118501583472506
+ 2.3120667844040725
+ 2.3122834448361811
+ 2.3125001396513114
+ 2.3127168688571982
+ 2.3129336324615704
+ 2.3131504304721764
+ 2.3133672628967452
+ 2.3135841297430306
+ 2.3138010310187656
+ 2.3140179667317051
+ 2.3142349368896005
+ 2.3144519415001943
+ 2.3146689805712475
+ 2.3148860541105147
+ 2.3151031621257592
+ 2.3153203046247248
+ 2.3155374816151921
+ 2.3157546931049184
+ 2.3159719391016731
+ 2.3161892196132245
+ 2.3164065346473453
+ 2.3166238842118094
+ 2.31684126831439
+ 2.3170586869628744
+ 2.3172761401650357
+ 2.3174936279286618
+ 2.3177111502615397
+ 2.3179287071714465
+ 2.3181462986661852
+ 2.3183639247535379
+ 2.3185815854413097
+ 2.3187992807372897
+ 2.319017010649278
+ 2.3192347751850813
+ 2.3194525743524972
+ 2.3196704081593351
+ 2.3198882766134021
+ 2.3201061797225146
+ 2.3203241174944713
+ 2.3205420899371041
+ 2.3207600970582209
+ 2.3209781388656432
+ 2.3211962153671872
+ 2.3214143265706904
+ 2.3216324724839708
+ 2.3218506531148613
+ 2.3220688684711863
+ 2.3222871185607876
+ 2.3225054033914936
+ 2.3227237229711473
+ 2.3229420773075891
+ 2.3231604664086634
+ 2.323378890282207
+ 2.3235973489360768
+ 2.3238158423781154
+ 2.3240343706161792
+ 2.3242529336581188
+ 2.3244715315117985
+ 2.3246901641850632
+ 2.324908831685784
+ 2.3251275340218229
+ 2.3253462712010511
+ 2.3255650432313222
+ 2.325783850120517
+ 2.3260026918765067
+ 2.3262215685071679
+ 2.3264404800203735
+ 2.3266594264240061
+ 2.3268784077259426
+ 2.3270974239340729
+ 2.3273164750562865
+ 2.3275355611004631
+ 2.3277546820744943
+ 2.3279738379862827
+ 2.3281930288437178
+ 2.3284122546546966
+ 2.3286315154271211
+ 2.3288508111689015
+ 2.3290701418879269
+ 2.3292895075921161
+ 2.3295089082893718
+ 2.3297283439876155
+ 2.3299478146947581
+ 2.3301673204187097
+ 2.3303868611673932
+ 2.3306064369487332
+ 2.3308260477706497
+ 2.3310456936410655
+ 2.331265374567915
+ 2.3314850905591267
+ 2.3317048416226349
+ 2.3319246277663708
+ 2.3321444489982768
+ 2.3323643053262875
+ 2.332584196758348
+ 2.3328041233024006
+ 2.3330240849663952
+ 2.3332440817582851
+ 2.3334641136860101
+ 2.3336841807575359
+ 2.333904282980809
+ 2.3341244203637967
+ 2.3343445929144511
+ 2.3345648006407425
+ 2.3347850435506365
+ 2.3350053216520918
+ 2.3352256349530931
+ 2.3354459834616015
+ 2.3356663671855933
+ 2.3358867861330492
+ 2.3361072403119492
+ 2.336327729730276
+ 2.3365482543960039
+ 2.3367688143171321
+ 2.3369894095016392
+ 2.3372100399575331
+ 2.3374307056927885
+ 2.3376514067154139
+ 2.3378721430334006
+ 2.3380929146547551
+ 2.3383137215874727
+ 2.338534563839568
+ 2.3387554414190395
+ 2.3389763543339086
+ 2.3391973025921788
+ 2.3394182862018691
+ 2.3396393051709956
+ 2.3398603595075751
+ 2.3400814492196336
+ 2.3403025743151953
+ 2.3405237348022827
+ 2.3407449306889307
+ 2.3409661619831681
+ 2.3411874286930243
+ 2.3414087308265459
+ 2.3416300683917592
+ 2.3418514413967162
+ 2.3420728498494543
+ 2.3422942937580196
+ 2.3425157731304584
+ 2.3427372879748236
+ 2.3429588382991655
+ 2.3431804241115404
+ 2.3434020454200115
+ 2.3436237022326325
+ 2.3438453945574649
+ 2.3440671224025724
+ 2.3442888857760331
+ 2.3445106846858983
+ 2.3447325191402562
+ 2.3449543891471696
+ 2.345176294714721
+ 2.3453982358509915
+ 2.3456202125640555
+ 2.3458422248619981
+ 2.3460642727529071
+ 2.346286356244875
+ 2.3465084753459835
+ 2.3467306300643336
+ 2.3469528204080201
+ 2.3471750463851322
+ 2.3473973080037807
+ 2.3476196052720657
+ 2.3478419381980911
+ 2.3480643067899636
+ 2.3482867110557915
+ 2.34850915100369
+ 2.3487316266417788
+ 2.3489541379781631
+ 2.349176685020971
+ 2.3493992677783244
+ 2.34962188625834
+ 2.3498445404691579
+ 2.3500672304188952
+ 2.3502899561156827
+ 2.3505127175676659
+ 2.3507355147829698
+ 2.3509583477697373
+ 2.3511812165361072
+ 2.3514041210902303
+ 2.3516270614402495
+ 2.3518500375943074
+ 2.352073049560556
+ 2.3522960973471565
+ 2.3525191809622568
+ 2.3527423004140151
+ 2.3529654557105952
+ 2.3531886468601622
+ 2.3534118738708716
+ 2.3536351367508952
+ 2.3538584355084105
+ 2.3540817701515784
+ 2.3543051406885804
+ 2.354528547127595
+ 2.3547519894767963
+ 2.3549754677443673
+ 2.3551989819385009
+ 2.355422532067375
+ 2.3556461181391786
+ 2.3558697401621083
+ 2.3560933981443588
+ 2.3563170920941223
+ 2.3565408220196065
+ 2.3567645879290002
+ 2.3569883898305108
+ 2.35721222773235
+ 2.3574361016427274
+ 2.3576600115698452
+ 2.3578839575219246
+ 2.3581079395071813
+ 2.3583319575338306
+ 2.3585560116100952
+ 2.3587801017441943
+ 2.3590042279443586
+ 2.3592283902188163
+ 2.3594525885757962
+ 2.3596768230235337
+ 2.3599010935702616
+ 2.3601254002242142
+ 2.3603497429936415
+ 2.3605741218867822
+ 2.3607985369118785
+ 2.361022988077182
+ 2.361247475390936
+ 2.3614719988614024
+ 2.3616965584968317
+ 2.3619211543054783
+ 2.3621457862956099
+ 2.3623704544754816
+ 2.3625951588533654
+ 2.3628198994375209
+ 2.3630446762362225
+ 2.3632694892577386
+ 2.3634943385103511
+ 2.363719224002327
+ 2.3639441457419577
+ 2.3641691037375168
+ 2.3643940979972844
+ 2.3646191285295624
+ 2.3648441953426249
+ 2.365069298444777
+ 2.3652944378443004
+ 2.3655196135494938
+ 2.3657448255686724
+ 2.3659700739101175
+ 2.3661953585821442
+ 2.3664206795930558
+ 2.3666460369511646
+ 2.3668714306647742
+ 2.3670968607422109
+ 2.36732232719178
+ 2.367547830021806
+ 2.3677733692406076
+ 2.3679989448565126
+ 2.3682245568778444
+ 2.3684502053129282
+ 2.3686758901701053
+ 2.3689016114576997
+ 2.3691273691840511
+ 2.3693531633575051
+ 2.3695789939863867
+ 2.3698048610790559
+ 2.370030764643849
+ 2.370256704689119
+ 2.3704826812232165
+ 2.370708694254493
+ 2.3709347437913069
+ 2.3711608298420135
+ 2.3713869524149791
+ 2.3716131115185681
+ 2.3718393071611343
+ 2.3720655393510541
+ 2.3722918080967084
+ 2.3725181134064548
+ 2.3727444552886765
+ 2.3729708337517508
+ 2.3731972488040576
+ 2.3734237004539858
+ 2.3736501887099122
+ 2.3738767135802319
+ 2.3741032750733368
+ 2.3743298731976159
+ 2.3745565079614694
+ 2.3747831793732885
+ 2.3750098874414816
+ 2.3752366321744494
+ 2.3754634135805994
+ 2.3756902316683335
+ 2.3759170864460679
+ 2.3761439779222147
+ 2.3763709061051981
+ 2.3765978710034212
+ 2.3768248726253183
+ 2.377051910979302
+ 2.3772789860738071
+ 2.3775060979172569
+ 2.3777332465180843
+ 2.3779604318847194
+ 2.3781876540256057
+ 2.3784149129491756
+ 2.378642208663869
+ 2.378869541178136
+ 2.3790969105004174
+ 2.3793243166391647
+ 2.3795517596028248
+ 2.3797792393998529
+ 2.3800067560387035
+ 2.3802343095278391
+ 2.3804618998757237
+ 2.3806895270908135
+ 2.3809171911815805
+ 2.3811448921564882
+ 2.3813726300240132
+ 2.3816004047926276
+ 2.3818282164708005
+ 2.3820560650670188
+ 2.3822839505897631
+ 2.3825118730475197
+ 2.3827398324487641
+ 2.3829678288019975
+ 2.3831958621157057
+ 2.3834239323983799
+ 2.3836520396585219
+ 2.3838801839046275
+ 2.3841083651452015
+ 2.3843365833887469
+ 2.3845648386437706
+ 2.3847931309187751
+ 2.3850214602222817
+ 2.385249826562799
+ 2.385478229948848
+ 2.3857066703889469
+ 2.3859351478916109
+ 2.3861636624653721
+ 2.3863922141187577
+ 2.3866208028602935
+ 2.3868494286985156
+ 2.3870780916419534
+ 2.3873067916991504
+ 2.3875355288786344
+ 2.3877643031889648
+ 2.3879931146386699
+ 2.3882219632363086
+ 2.3884508489904293
+ 2.3886797719095814
+ 2.3889087320023217
+ 2.389137729277206
+ 2.3893667637427889
+ 2.3895958354076474
+ 2.3898249442803357
+ 2.3900540903694245
+ 2.3902832736834871
+ 2.3905124942310962
+ 2.3907417520208187
+ 2.3909710470612469
+ 2.3912003793609458
+ 2.3914297489285103
+ 2.391659155772524
+ 2.3918885999015727
+ 2.3921180813242446
+ 2.392347600049141
+ 2.3925771560848537
+ 2.3928067494399814
+ 2.3930363801231254
+ 2.3932660481428876
+ 2.393495753507878
+ 2.3937254962267014
+ 2.3939552763079717
+ 2.394185093760306
+ 2.3944149485923192
+ 2.3946448408126195
+ 2.394874770429845
+ 2.3951047374526149
+ 2.3953347418895543
+ 2.395564783749295
+ 2.3957948630404675
+ 2.3960249797717013
+ 2.3962551339516431
+ 2.3964853255889285
+ 2.3967155546921992
+ 2.3969458212701005
+ 2.3971761253312787
+ 2.3974064668843891
+ 2.3976368459380808
+ 2.3978672625010118
+ 2.3980977165818351
+ 2.3983282081892225
+ 2.39855873733182
+ 2.3987893040183086
+ 2.3990199082573471
+ 2.39925055005761
+ 2.3994812294277752
+ 2.3997119463765113
+ 2.3999427009125029
+ 2.4001734930444267
+ 2.4004043227809682
+ 2.4006351901308229
+ 2.4008660951026619
+ 2.4010970377051954
+ 2.4013280179471082
+ 2.401559035837094
+ 2.4017900913838579
+ 2.4020211845961046
+ 2.4022523154825377
+ 2.4024834840518623
+ 2.4027146903127838
+ 2.402945934274026
+ 2.4031772159442943
+ 2.4034085353323156
+ 2.4036398924468023
+ 2.4038712872964849
+ 2.4041027198900813
+ 2.4043341902363249
+ 2.4045656983439456
+ 2.4047972442216765
+ 2.4050288278782563
+ 2.4052604493224163
+ 2.4054921085629086
+ 2.4057238056084729
+ 2.4059555404678594
+ 2.4061873131498079
+ 2.4064191236630768
+ 2.4066509720164229
+ 2.4068828582185988
+ 2.4071147822783701
+ 2.4073467442044891
+ 2.407578744005733
+ 2.4078107816908636
+ 2.4080428572686521
+ 2.408274970747867
+ 2.4085071221372898
+ 2.4087393114457023
+ 2.4089715386818744
+ 2.4092038038545969
+ 2.4094361069726569
+ 2.4096684480448438
+ 2.4099008270799454
+ 2.4101332440867589
+ 2.4103656990740783
+ 2.4105981920507018
+ 2.4108307230254362
+ 2.4110632920070838
+ 2.4112958990044544
+ 2.4115285440263579
+ 2.4117612270816053
+ 2.411993948179008
+ 2.412226707327386
+ 2.4124595045355695
+ 2.412692339812371
+ 2.4129252131666217
+ 2.4131581246071461
+ 2.4133910741427771
+ 2.4136240617823517
+ 2.4138570875347045
+ 2.4140901514086748
+ 2.4143232534131074
+ 2.4145563935568348
+ 2.4147895718487211
+ 2.4150227882976063
+ 2.4152560429123486
+ 2.4154893357017961
+ 2.4157226666748057
+ 2.4159560358402499
+ 2.4161894432069833
+ 2.4164228887838717
+ 2.4166563725797898
+ 2.4168898946036017
+ 2.4171234548641847
+ 2.4173570533704161
+ 2.4175906901311728
+ 2.4178243651553362
+ 2.4180580784517951
+ 2.4182918300294367
+ 2.4185256198971468
+ 2.4187594480638217
+ 2.4189933145383513
+ 2.4192272193296449
+ 2.4194611624465852
+ 2.419695143898096
+ 2.41992916369307
+ 2.4201632218404221
+ 2.4203973183490599
+ 2.4206314532279016
+ 2.4208656264858592
+ 2.4210998381318545
+ 2.4213340881748069
+ 2.4215683766236524
+ 2.4218027034873093
+ 2.4220370687747068
+ 2.4222714724947769
+ 2.422505914656464
+ 2.4227403952687014
+ 2.4229749143404273
+ 2.4232094718805901
+ 2.4234440678981364
+ 2.4236787024020079
+ 2.423913375401169
+ 2.4241480869045664
+ 2.4243828369211533
+ 2.4246176254598977
+ 2.424852452529763
+ 2.425087318139707
+ 2.4253222222987052
+ 2.4255571650157246
+ 2.4257921462997394
+ 2.4260271661597299
+ 2.426262224604669
+ 2.4264973216435357
+ 2.4267324572853268
+ 2.4269676315390147
+ 2.4272028444136007
+ 2.4274380959180748
+ 2.4276733860614317
+ 2.4279087148526663
+ 2.4281440823007814
+ 2.4283794884147807
+ 2.4286149332036695
+ 2.4288504166764557
+ 2.4290859388421557
+ 2.4293214997097792
+ 2.4295570992883446
+ 2.4297927375868769
+ 2.4300284146143878
+ 2.4302641303799128
+ 2.430499884892471
+ 2.4307356781611005
+ 2.430971510194829
+ 2.4312073810026957
+ 2.4314432905937453
+ 2.4316792389770048
+ 2.4319152261615358
+ 2.4321512521563706
+ 2.4323873169705705
+ 2.4326234206131772
+ 2.4328595630932552
+ 2.4330957444198598
+ 2.4333319646020501
+ 2.4335682236488894
+ 2.4338045215694493
+ 2.4340408583727933
+ 2.4342772340679972
+ 2.4345136486641272
+ 2.4347501021702671
+ 2.4349865945954985
+ 2.4352231259489079
+ 2.4354596962395658
+ 2.4356963054765779
+ 2.4359329536690226
+ 2.4361696408259994
+ 2.4364063669566005
+ 2.4366431320699351
+ 2.4368799361750932
+ 2.4371167792811872
+ 2.4373536613973226
+ 2.4375905825326138
+ 2.4378275426961644
+ 2.4380645418970999
+ 2.4383015801445316
+ 2.4385386574475834
+ 2.4387757738153857
+ 2.4390129292570562
+ 2.4392501237817279
+ 2.4394873573985332
+ 2.43972463011661
+ 2.4399619419450973
+ 2.4401992928931318
+ 2.4404366829698541
+ 2.4406741121844169
+ 2.4409115805459685
+ 2.4411490880636642
+ 2.4413866347466442
+ 2.4416242206040808
+ 2.4418618456451298
+ 2.4420995098789575
+ 2.4423372133147181
+ 2.4425749559615912
+ 2.4428127378287492
+ 2.4430505589253566
+ 2.443288419260595
+ 2.4435263188436513
+ 2.4437642576836964
+ 2.4440022357899207
+ 2.4442402531715142
+ 2.4444783098376672
+ 2.4447164057975712
+ 2.4449545410604205
+ 2.4451927156354225
+ 2.4454309295317693
+ 2.4456691827586714
+ 2.4459074753253396
+ 2.446145807240979
+ 2.4463841785148035
+ 2.4466225891560325
+ 2.4468610391738834
+ 2.4470995285775743
+ 2.4473380573763324
+ 2.4475766255793876
+ 2.4478152331959624
+ 2.4480538802352951
+ 2.4482925667066269
+ 2.4485312926191853
+ 2.4487700579822151
+ 2.4490088628049662
+ 2.4492477070966792
+ 2.4494865908666084
+ 2.4497255141240046
+ 2.4499644768781192
+ 2.4502034791382115
+ 2.4504425209135499
+ 2.4506816022133888
+ 2.4509207230470058
+ 2.4511598834236574
+ 2.4513990833526207
+ 2.4516383228431775
+ 2.4518776019045978
+ 2.4521169205461621
+ 2.4523562787771631
+ 2.4525956766068764
+ 2.4528351140445985
+ 2.4530745910996186
+ 2.4533141077812322
+ 2.4535536640987363
+ 2.4537932600614321
+ 2.454032895678619
+ 2.454272570959612
+ 2.4545122859137103
+ 2.4547520405502321
+ 2.4549918348784909
+ 2.4552316689078069
+ 2.4554715426475
+ 2.4557114561068882
+ 2.4559514092953036
+ 2.456191402222065
+ 2.4564314348965195
+ 2.4566715073279886
+ 2.4569116195258154
+ 2.4571517714993432
+ 2.457391963257904
+ 2.4576321948108593
+ 2.4578724661675508
+ 2.4581127773373264
+ 2.4583531283295437
+ 2.4585935191535597
+ 2.4588339498187395
+ 2.459074420334435
+ 2.4593149307100246
+ 2.4595554809548692
+ 2.4597960710783471
+ 2.4600367010898263
+ 2.4602773709986892
+ 2.460518080814309
+ 2.460758830546081
+ 2.4609996202033781
+ 2.4612404497955978
+ 2.4614813193321283
+ 2.4617222288223664
+ 2.4619631782757065
+ 2.462204167701552
+ 2.4624451971093055
+ 2.4626862665083742
+ 2.4629273759081651
+ 2.4631685253180868
+ 2.4634097147475584
+ 2.463650944205996
+ 2.4638922137028265
+ 2.4641335232474622
+ 2.4643748728493367
+ 2.4646162625178722
+ 2.4648576922625129
+ 2.4650991620926872
+ 2.4653406720178275
+ 2.4655822220473849
+ 2.4658238121907932
+ 2.4660654424575013
+ 2.4663071128569651
+ 2.4665488233986301
+ 2.4667905740919509
+ 2.4670323649463874
+ 2.4672741959714046
+ 2.4675160671764611
+ 2.4677579785710226
+ 2.4679999301645692
+ 2.4682419219665608
+ 2.4684839539864756
+ 2.4687260262337918
+ 2.4689681387179978
+ 2.4692102914485714
+ 2.469452484434997
+ 2.4696947176867683
+ 2.4699369912133791
+ 2.4701793050243204
+ 2.4704216591290966
+ 2.4706640535372117
+ 2.4709064882581591
+ 2.4711489633014567
+ 2.4713914786766069
+ 2.4716340343931265
+ 2.4718766304605317
+ 2.4721192668883396
+ 2.472361943686078
+ 2.4726046608632597
+ 2.4728474184294265
+ 2.4730902163941031
+ 2.4733330547668171
+ 2.4735759335571172
+ 2.4738188527745297
+ 2.4740618124286065
+ 2.4743048125288882
+ 2.4745478530849256
+ 2.4747909341062693
+ 2.4750340556024684
+ 2.4752772175830864
+ 2.4755204200576828
+ 2.4757636630358197
+ 2.4760069465270598
+ 2.4762502705409699
+ 2.4764936350871269
+ 2.4767370401751108
+ 2.4769804858144835
+ 2.4772239720148375
+ 2.4774674987857597
+ 2.4777110661368171
+ 2.477954674077619
+ 2.4781983226177524
+ 2.4784420117668002
+ 2.4786857415343797
+ 2.4789295119300814
+ 2.4791733229635051
+ 2.4794171746442681
+ 2.4796610669819739
+ 2.4799049999862377
+ 2.480148973666672
+ 2.4803929880329014
+ 2.4806370430945424
+ 2.4808811388612177
+ 2.4811252753425639
+ 2.4813694525482033
+ 2.4816136704877754
+ 2.4818579291709106
+ 2.4821022286072489
+ 2.4823465688064403
+ 2.4825909497781216
+ 2.4828353715319427
+ 2.4830798340775613
+ 2.4833243374246248
+ 2.4835688815827921
+ 2.4838134665617244
+ 2.4840580923710887
+ 2.484302759020542
+ 2.4845474665197576
+ 2.4847922148784121
+ 2.485037004106172
+ 2.4852818342127216
+ 2.485526705207739
+ 2.4857716171009065
+ 2.486016569901921
+ 2.4862615636204639
+ 2.4865065982662249
+ 2.4867516738489117
+ 2.4869967903782122
+ 2.4872419478638323
+ 2.4874871463154795
+ 2.4877323857428539
+ 2.4879776661556723
+ 2.4882229875636486
+ 2.4884683499764972
+ 2.4887137534039439
+ 2.4889591978557002
+ 2.4892046833415047
+ 2.4894502098710762
+ 2.4896957774541462
+ 2.4899413861004618
+ 2.4901870358197424
+ 2.4904327266217465
+ 2.4906784585162081
+ 2.4909242315128766
+ 2.4911700456214971
+ 2.4914159008518277
+ 2.4916617972136224
+ 2.4919077347166447
+ 2.4921537133706457
+ 2.4923997331853984
+ 2.4926457941706692
+ 2.4928918963362294
+ 2.4931380396918539
+ 2.4933842242473139
+ 2.4936304500123936
+ 2.4938767169968719
+ 2.4941230252105431
+ 2.4943693746631852
+ 2.4946157653646006
+ 2.4948621973245735
+ 2.4951086705529142
+ 2.49535518505941
+ 2.4956017408538762
+ 2.4958483379461192
+ 2.4960949763459386
+ 2.4963416560631542
+ 2.4965883771075852
+ 2.496835139489046
+ 2.4970819432173594
+ 2.4973287883023589
+ 2.4975756747538553
+ 2.4978226025816923
+ 2.498069571795706
+ 2.4983165824057272
+ 2.4985636344215969
+ 2.4988107278531602
+ 2.499057862710266
+ 2.4993050390027611
+ 2.4995522567404964
+ 2.4997995159333275
+ 2.5000468165911212
+ 2.5002941587237255
+ 2.5005415423410127
+ 2.5007889674528538
+ 2.5010364340691162
+ 2.5012839421996649
+ 2.5015314918543905
+ 2.5017790830431679
+ 2.5020267157758815
+ 2.5022743900624107
+ 2.5025221059126537
+ 2.5027698633364994
+ 2.5030176623438396
+ 2.503265502944573
+ 2.5035133851486053
+ 2.5037613089658386
+ 2.5040092744061835
+ 2.5042572814795419
+ 2.5045053301958369
+ 2.5047534205649753
+ 2.5050015525968856
+ 2.505249726301487
+ 2.505497941688708
+ 2.5057461987684722
+ 2.5059944975507147
+ 2.5062428380453716
+ 2.5064912202623821
+ 2.5067396442116792
+ 2.5069881099032174
+ 2.5072366173469387
+ 2.5074851665527969
+ 2.5077337575307386
+ 2.5079823902907314
+ 2.5082310648427257
+ 2.5084797811966828
+ 2.5087285393625782
+ 2.5089773393503738
+ 2.5092261811700474
+ 2.5094750648315642
+ 2.509723990344912
+ 2.5099729577200667
+ 2.5102219669670145
+ 2.5104710180957444
+ 2.510720111116242
+ 2.5109692460385067
+ 2.5112184228725334
+ 2.5114676416283186
+ 2.5117169023158676
+ 2.5119662049451872
+ 2.5122155495262852
+ 2.5124649360691786
+ 2.5127143645838803
+ 2.5129638350804031
+ 2.5132133475687763
+ 2.5134629020590187
+ 2.5137124985611616
+ 2.5139621370852328
+ 2.5142118176412684
+ 2.514461540239306
+ 2.5147113048893894
+ 2.514961111601552
+ 2.5152109603858523
+ 2.5154608512523251
+ 2.5157107842110356
+ 2.5159607592720379
+ 2.5162107764453898
+ 2.5164608357411451
+ 2.5167109371693814
+ 2.5169610807401619
+ 2.5172112664635571
+ 2.5174614943496358
+ 2.5177117644084879
+ 2.517962076650186
+ 2.5182124310848182
+ 2.5184628277224728
+ 2.5187132665732315
+ 2.5189637476471956
+ 2.5192142709544592
+ 2.5194648365051209
+ 2.5197154443092882
+ 2.5199660943770548
+ 2.5202167867185432
+ 2.520467521343861
+ 2.5207182982631182
+ 2.5209691174864388
+ 2.5212199790239476
+ 2.5214708828857613
+ 2.5217218290820131
+ 2.5219728176228307
+ 2.5222238485183515
+ 2.5224749217787115
+ 2.5227260374140483
+ 2.5229771954345108
+ 2.5232283958502424
+ 2.5234796386713914
+ 2.5237309239081149
+ 2.523982251570569
+ 2.5242336216689112
+ 2.5244850342133041
+ 2.5247364892139115
+ 2.5249879866809053
+ 2.5252395266244556
+ 2.5254911090547432
+ 2.5257427339819358
+ 2.5259944014162241
+ 2.5262461113677923
+ 2.5264978638468221
+ 2.5267496588635088
+ 2.5270014964280492
+ 2.5272533765506351
+ 2.5275052992414651
+ 2.5277572645107544
+ 2.5280092723686964
+ 2.5282613228255109
+ 2.5285134158914087
+ 2.5287655515766057
+ 2.5290177298913163
+ 2.5292699508457757
+ 2.5295222144501981
+ 2.5297745207148177
+ 2.5300268696498636
+ 2.5302792612655773
+ 2.5305316955721948
+ 2.5307841725799567
+ 2.5310366922991054
+ 2.5312892547398937
+ 2.5315418599125734
+ 2.5317945078273998
+ 2.53204719849463
+ 2.5322999319245185
+ 2.532552708127342
+ 2.5328055271133545
+ 2.5330583888928362
+ 2.5333112934760558
+ 2.533564240873293
+ 2.5338172310948317
+ 2.5340702641509503
+ 2.534323340051936
+ 2.5345764588080768
+ 2.5348296204296705
+ 2.5350828249270094
+ 2.5353360723104044
+ 2.5355893625901378
+ 2.5358426957765294
+ 2.5360960718798924
+ 2.5363494909105291
+ 2.5366029528787579
+ 2.5368564577949013
+ 2.5371100056692755
+ 2.5373635965122077
+ 2.5376172303340283
+ 2.53787090714507
+ 2.5381246269556628
+ 2.5383783897761534
+ 2.538632195616874
+ 2.5388860444881782
+ 2.5391399364004017
+ 2.5393938713639121
+ 2.5396478493890506
+ 2.5399018704861729
+ 2.540155934665651
+ 2.5404100419378439
+ 2.5406641923131237
+ 2.5409183858018478
+ 2.5411726224144036
+ 2.5414269021611626
+ 2.5416812250525007
+ 2.5419355910988108
+ 2.5421900003104723
+ 2.5424444526978762
+ 2.542698948271418
+ 2.542953487041498
+ 2.5432080690185037
+ 2.5434626942128542
+ 2.5437173626349381
+ 2.5439720742951843
+ 2.5442268292039874
+ 2.5444816273717783
+ 2.5447364688089675
+ 2.5449913535259752
+ 2.5452462815332368
+ 2.5455012528411709
+ 2.5457562674602232
+ 2.5460113254008157
+ 2.5462664266733945
+ 2.5465215712883968
+ 2.5467767592562711
+ 2.547031990587469
+ 2.5472872652924403
+ 2.5475425833816412
+ 2.5477979448655237
+ 2.5480533497545594
+ 2.5483087980592058
+ 2.5485642897899328
+ 2.5488198249572118
+ 2.5490754035715248
+ 2.5493310256433408
+ 2.5495866911831442
+ 2.5498424002014168
+ 2.5500981527086517
+ 2.5503539487153395
+ 2.5506097882319683
+ 2.5508656712690518
+ 2.5511215978370743
+ 2.5513775679465485
+ 2.5516335816079763
+ 2.5518896388318786
+ 2.552145739628759
+ 2.5524018840091376
+ 2.5526580719835446
+ 2.5529143035624928
+ 2.5531705787565127
+ 2.5534268975761414
+ 2.5536832600319088
+ 2.553939666134347
+ 2.5541961158940047
+ 2.5544526093214226
+ 2.554709146427145
+ 2.5549657272217283
+ 2.5552223517157255
+ 2.5554790199196908
+ 2.5557357318441878
+ 2.5559924874997764
+ 2.5562492868970277
+ 2.5565061300465071
+ 2.5567630169588011
+ 2.5570199476444682
+ 2.5572769221141045
+ 2.557533940378284
+ 2.5577910024476012
+ 2.5580481083326454
+ 2.5583052580439998
+ 2.5585624515922789
+ 2.5588196889880717
+ 2.5590769702419842
+ 2.559334295364621
+ 2.5595916643665997
+ 2.5598490772585274
+ 2.5601065340510258
+ 2.5603640347547079
+ 2.5606215793802103
+ 2.5608791679381491
+ 2.5611368004391548
+ 2.5613944768938706
+ 2.5616521973129256
+ 2.5619099617069607
+ 2.5621677700866221
+ 2.5624256224625537
+ 2.5626835188454109
+ 2.5629414592458435
+ 2.5631994436745167
+ 2.563457472142078
+ 2.5637155446592028
+ 2.5639736612365494
+ 2.5642318218848019
+ 2.5644900266146173
+ 2.5647482754366804
+ 2.5650065683616781
+ 2.5652649054002827
+ 2.5655232865631881
+ 2.5657817118610904
+ 2.5660401813046723
+ 2.5662986949046402
+ 2.5665572526716911
+ 2.5668158546165301
+ 2.5670745007498654
+ 2.5673331910824069
+ 2.5675919256248756
+ 2.567850704387971
+ 2.5681095273824357
+ 2.5683683946189824
+ 2.5686273061083433
+ 2.5688862618612518
+ 2.569145261888433
+ 2.5694043062006298
+ 2.5696633948085883
+ 2.5699225277230462
+ 2.570181704954758
+ 2.570440926514471
+ 2.5707001924129407
+ 2.5709595026609278
+ 2.5712188572691925
+ 2.5714782562484948
+ 2.5717376996096148
+ 2.5719971873633138
+ 2.5722567195203743
+ 2.5725162960915671
+ 2.5727759170876858
+ 2.5730355825195108
+ 2.5732952923978192
+ 2.5735550467334205
+ 2.573814845537103
+ 2.5740746888196666
+ 2.5743345765919061
+ 2.5745945088646431
+ 2.5748544856486788
+ 2.5751145069548254
+ 2.575374572793895
+ 2.5756346831767165
+ 2.5758948381141056
+ 2.5761550376168949
+ 2.5764152816959105
+ 2.5766755703619841
+ 2.576935903625952
+ 2.5771962814986558
+ 2.5774567039909457
+ 2.5777171711136591
+ 2.5779776828776444
+ 2.5782382392937695
+ 2.578498840372883
+ 2.5787594861258349
+ 2.5790201765635112
+ 2.579280911696761
+ 2.5795416915364693
+ 2.5798025160934954
+ 2.5800633853787289
+ 2.5803242994030495
+ 2.5805852581773387
+ 2.5808462617124834
+ 2.5811073100193807
+ 2.5813684031089243
+ 2.5816295409920076
+ 2.5818907236795328
+ 2.5821519511824147
+ 2.5824132235115553
+ 2.5826745406778611
+ 2.582935902692252
+ 2.5831973095656537
+ 2.5834587613089841
+ 2.58372025793317
+ 2.5839817994491443
+ 2.5842433858678273
+ 2.584505017200172
+ 2.5847666934571087
+ 2.5850284146495794
+ 2.5852901807885345
+ 2.5855519918849215
+ 2.5858138479497006
+ 2.586075748993828
+ 2.5863376950282526
+ 2.5865996860639529
+ 2.586861722111891
+ 2.5871238031830344
+ 2.5873859292883621
+ 2.5876481004388552
+ 2.5879103166454858
+ 2.5881725779192473
+ 2.588434884271126
+ 2.5886972357121079
+ 2.5889596322531974
+ 2.5892220739053933
+ 2.589484560679689
+ 2.5897470925870993
+ 2.590009669638627
+ 2.5902722918452863
+ 2.5905349592181004
+ 2.5907976717680774
+ 2.5910604295062525
+ 2.5913232324436462
+ 2.5915860805912927
+ 2.5918489739602206
+ 2.5921119125614704
+ 2.5923748964060813
+ 2.5926379255051013
+ 2.5929009998695771
+ 2.5931641195105497
+ 2.5934272844390893
+ 2.5936904946662498
+ 2.5939537502030849
+ 2.5942170510606757
+ 2.594480397250075
+ 2.5947437887823619
+ 2.5950072256686112
+ 2.5952707079199069
+ 2.5955342355473259
+ 2.5957978085619531
+ 2.5960614269748872
+ 2.596325090797218
+ 2.5965888000400406
+ 2.5968525547144603
+ 2.5971163548315697
+ 2.5973802004024873
+ 2.5976440914383203
+ 2.5979080279501878
+ 2.5981720099492001
+ 2.5984360374464823
+ 2.5987001104531604
+ 2.5989642289803681
+ 2.5992283930392257
+ 2.5994926026408778
+ 2.5997568577964656
+ 2.6000211585171313
+ 2.6002855048140101
+ 2.6005498966982667
+ 2.6008143341810457
+ 2.6010788172735095
+ 2.601343345986816
+ 2.6016079203321296
+ 2.6018725403206178
+ 2.6021372059634471
+ 2.6024019172718029
+ 2.602666674256858
+ 2.6029314769297969
+ 2.6031963253017953
+ 2.6034612193840561
+ 2.6037261591877643
+ 2.6039911447241204
+ 2.6042561760043146
+ 2.6045212530395574
+ 2.6047863758410563
+ 2.6050515444200255
+ 2.6053167587876707
+ 2.6055820189552104
+ 2.6058473249338676
+ 2.6061126767348717
+ 2.6063780743694469
+ 2.6066435178488185
+ 2.6069090071842331
+ 2.6071745423869284
+ 2.607440123468141
+ 2.607705750439119
+ 2.6079714233111133
+ 2.6082371420953785
+ 2.6085029068031695
+ 2.6087687174457446
+ 2.609034574034375
+ 2.6093004765803234
+ 2.6095664250948611
+ 2.6098324195892597
+ 2.6100984600748069
+ 2.6103645465627738
+ 2.6106306790644562
+ 2.6108968575911438
+ 2.6111630821541194
+ 2.6114293527646812
+ 2.6116956694341353
+ 2.6119620321737842
+ 2.612228440994933
+ 2.6124948959088941
+ 2.612761396926977
+ 2.6130279440605109
+ 2.613294537320809
+ 2.6135611767191986
+ 2.6138278622670006
+ 2.6140945939755618
+ 2.6143613718562126
+ 2.6146281959202895
+ 2.6148950661791424
+ 2.6151619826441075
+ 2.6154289453265469
+ 2.6156959542378106
+ 2.6159630093892536
+ 2.6162301107922432
+ 2.6164972584581392
+ 2.6167644523983076
+ 2.6170316926241286
+ 2.617298979146979
+ 2.6175663119782278
+ 2.6178336911292774
+ 2.6181011166114918
+ 2.6183685884362728
+ 2.6186361066150146
+ 2.6189036711591203
+ 2.6191712820799817
+ 2.6194389393890072
+ 2.6197066430976066
+ 2.6199743932171944
+ 2.620242189759181
+ 2.6205100327349884
+ 2.6207779221560408
+ 2.6210458580337685
+ 2.6213138403795968
+ 2.6215818692049617
+ 2.621849944521303
+ 2.6221180663400623
+ 2.6223862346726778
+ 2.6226544495306108
+ 2.6229227109253022
+ 2.6231910188682166
+ 2.6234593733708089
+ 2.6237277744445455
+ 2.623996222100891
+ 2.6242647163513211
+ 2.6245332572073048
+ 2.624801844680325
+ 2.6250704787818595
+ 2.6253391595233944
+ 2.6256078869164243
+ 2.6258766609724371
+ 2.6261454817029297
+ 2.626414349119405
+ 2.6266832632333661
+ 2.6269522240563199
+ 2.627221231599782
+ 2.6274902858752567
+ 2.6277593868942746
+ 2.6280285346683514
+ 2.6282977292090113
+ 2.6285669705277974
+ 2.6288362586362219
+ 2.6291055935458423
+ 2.6293749752681879
+ 2.6296444038148103
+ 2.6299138791972489
+ 2.6301834014270602
+ 2.6304529705158091
+ 2.6307225864750419
+ 2.6309922493163223
+ 2.6312619590512272
+ 2.6315317156913176
+ 2.6318015192481741
+ 2.632071369733366
+ 2.6323412671584858
+ 2.6326112115351123
+ 2.632881202874839
+ 2.6331512411892537
+ 2.6334213264899602
+ 2.6336914587885403
+ 2.6339616380966189
+ 2.6342318644258005
+ 2.6345021377876909
+ 2.6347724581939111
+ 2.6350428256560674
+ 2.6353132401857953
+ 2.635583701794717
+ 2.6358542104944571
+ 2.6361247662966583
+ 2.6363953692129511
+ 2.6366660192549825
+ 2.6369367164343922
+ 2.63720746076284
+ 2.6374782522519626
+ 2.6377490909134256
+ 2.6380199767588883
+ 2.6382909098000082
+ 2.6385618900484671
+ 2.6388329175159217
+ 2.6391039922140522
+ 2.6393751141545376
+ 2.6396462833490579
+ 2.6399174998093065
+ 2.6401887635469645
+ 2.6404600745737294
+ 2.6407314329012976
+ 2.6410028385413788
+ 2.6412742915056664
+ 2.6415457918058758
+ 2.6418173394537123
+ 2.6420889344608995
+ 2.6423605768391543
+ 2.6426322666002102
+ 2.6429040037557736
+ 2.6431757883175986
+ 2.6434476202974069
+ 2.6437194997069411
+ 2.6439914265579398
+ 2.6442634008621568
+ 2.6445354226313378
+ 2.6448074918772395
+ 2.6450796086116162
+ 2.6453517728462348
+ 2.6456239845928549
+ 2.6458962438632478
+ 2.6461685506691923
+ 2.6464409050224553
+ 2.6467133069348208
+ 2.6469857564180739
+ 2.6472582534840066
+ 2.647530798144405
+ 2.6478033904110716
+ 2.6480760302957971
+ 2.6483487178103875
+ 2.6486214529666565
+ 2.6488942357764049
+ 2.6491670662514553
+ 2.6494399444036292
+ 2.6497128702447386
+ 2.6499858437866122
+ 2.6502588650410859
+ 2.6505319340199875
+ 2.6508050507351606
+ 2.6510782151984422
+ 2.651351427421675
+ 2.6516246874167178
+ 2.6518979951954118
+ 2.6521713507696223
+ 2.6524447541512055
+ 2.6527182053520262
+ 2.6529917043839579
+ 2.6532652512588624
+ 2.6535388459886251
+ 2.6538124885851202
+ 2.654086179060235
+ 2.6543599174258548
+ 2.6546337036938668
+ 2.6549075378761722
+ 2.6551814199846646
+ 2.6554553500312537
+ 2.6557293280278387
+ 2.6560033539863359
+ 2.6562774279186572
+ 2.6565515498367156
+ 2.6568257197524492
+ 2.6570999376777591
+ 2.6573742036245944
+ 2.6576485176048821
+ 2.6579228796305565
+ 2.6581972897135655
+ 2.6584717478658471
+ 2.6587462540993538
+ 2.6590208084260416
+ 2.659295410857863
+ 2.6595700614067765
+ 2.6598447600847508
+ 2.6601195069037513
+ 2.6603943018757508
+ 2.6606691450127258
+ 2.6609440363266588
+ 2.6612189758295313
+ 2.6614939635333261
+ 2.6617689994500404
+ 2.662044083591673
+ 2.6623192159702089
+ 2.6625943965976635
+ 2.6628696254860391
+ 2.6631449026473493
+ 2.663420228093607
+ 2.6636956018368307
+ 2.6639710238890446
+ 2.6642464942622777
+ 2.6645220129685527
+ 2.6647975800199051
+ 2.6650731954283775
+ 2.6653488592060071
+ 2.6656245713648454
+ 2.665900331916935
+ 2.6661761408743381
+ 2.6664519982491073
+ 2.6667279040533005
+ 2.6670038582989908
+ 2.6672798609982462
+ 2.6675559121631292
+ 2.6678320118057299
+ 2.6681081599381247
+ 2.6683843565723988
+ 2.668660601720636
+ 2.6689368953949351
+ 2.6692132376073952
+ 2.6694896283701062
+ 2.6697660676951873
+ 2.6700425555947347
+ 2.6703190920808662
+ 2.6705956771656933
+ 2.6708723108613404
+ 2.6711489931799335
+ 2.6714257241335986
+ 2.6717025037344664
+ 2.6719793319946672
+ 2.6722562089263544
+ 2.6725331345416672
+ 2.6728101088527372
+ 2.6730871318717369
+ 2.6733642036108196
+ 2.6736413240821348
+ 2.6739184932978528
+ 2.674195711270138
+ 2.6744729780111607
+ 2.6747502935330973
+ 2.6750276578481325
+ 2.6753050709684425
+ 2.6755825329062182
+ 2.6758600436736515
+ 2.6761376032829323
+ 2.6764152117462641
+ 2.6766928690758527
+ 2.676970575283895
+ 2.6772483303826138
+ 2.677526134384216
+ 2.6778039873009196
+ 2.6780818891449529
+ 2.6783598399285431
+ 2.6786378396639141
+ 2.6789158883633091
+ 2.6791939860389618
+ 2.6794721327031108
+ 2.6797503283680122
+ 2.6800285730459121
+ 2.680306866749063
+ 2.680585209489728
+ 2.6808636012801683
+ 2.6811420421326475
+ 2.6814205320594375
+ 2.6816990710728135
+ 2.6819776591850562
+ 2.6822562964084469
+ 2.6825349827552669
+ 2.6828137182378127
+ 2.6830925028683823
+ 2.683371336659266
+ 2.6836502196227667
+ 2.6839291517711956
+ 2.6842081331168588
+ 2.6844871636720762
+ 2.6847662434491624
+ 2.6850453724604453
+ 2.6853245507182439
+ 2.685603778234892
+ 2.6858830550227286
+ 2.686162381094078
+ 2.6864417564613055
+ 2.6867211811367286
+ 2.6870006551327266
+ 2.6872801784616414
+ 2.6875597511358311
+ 2.6878393731676584
+ 2.6881190445694925
+ 2.6883987653537025
+ 2.6886785355326617
+ 2.6889583551187508
+ 2.6892382241243529
+ 2.6895181425618597
+ 2.6897981104436539
+ 2.6900781277821331
+ 2.6903581945896962
+ 2.6906383108787453
+ 2.6909184766616905
+ 2.691198691950945
+ 2.6914789567589188
+ 2.6917592710980349
+ 2.6920396349807083
+ 2.6923200484193748
+ 2.6926005114264648
+ 2.6928810240144117
+ 2.6931615861956537
+ 2.6934421979826415
+ 2.69372285938781
+ 2.6940035704236269
+ 2.694284331102534
+ 2.694565141436998
+ 2.6948460014394819
+ 2.695126911122447
+ 2.6954078704983782
+ 2.6956888795797425
+ 2.6959699383790188
+ 2.6962510469086958
+ 2.696532205181263
+ 2.6968134132092088
+ 2.6970946710050292
+ 2.697375978581233
+ 2.6976573359503107
+ 2.6979387431247823
+ 2.6982202001171562
+ 2.6985017069399504
+ 2.6987832636056823
+ 2.6990648701268838
+ 2.6993465265160776
+ 2.6996282327857992
+ 2.6999099889485874
+ 2.7001917950169805
+ 2.7004736510035254
+ 2.7007555569207704
+ 2.7010375127812711
+ 2.7013195185975905
+ 2.7016015743822783
+ 2.7018836801479136
+ 2.7021658359070515
+ 2.7024480416722767
+ 2.7027302974561724
+ 2.7030126032713113
+ 2.7032949591302762
+ 2.7035773650456685
+ 2.7038598210300804
+ 2.7041423270961085
+ 2.7044248832563502
+ 2.704707489523428
+ 2.7049901459099361
+ 2.7052728524285072
+ 2.7055556090917454
+ 2.7058384159122797
+ 2.7061212729027448
+ 2.7064041800757588
+ 2.7066871374439683
+ 2.7069701450200081
+ 2.7072532028165295
+ 2.7075363108461725
+ 2.7078194691215951
+ 2.7081026776554515
+ 2.7083859364604064
+ 2.7086692455491197
+ 2.7089526049342614
+ 2.7092360146285075
+ 2.709519474644539
+ 2.7098029849950254
+ 2.7100865456926644
+ 2.7103701567501384
+ 2.7106538181801492
+ 2.7109375299953835
+ 2.7112212922085548
+ 2.7115051048323684
+ 2.7117889678795284
+ 2.712072881362753
+ 2.7123568452947584
+ 2.7126408596882765
+ 2.7129249245560252
+ 2.7132090399107427
+ 2.7134932057651611
+ 2.7137774221320248
+ 2.7140616890240676
+ 2.7143460064540532
+ 2.7146303744347224
+ 2.7149147929788278
+ 2.7151992620991479
+ 2.7154837818084361
+ 2.7157683521194533
+ 2.7160529730449929
+ 2.7163376445978149
+ 2.7166223667907117
+ 2.7169071396364672
+ 2.7171919631478674
+ 2.7174768373377121
+ 2.7177617622187928
+ 2.7180467378039213
+ 2.7183317641058999
+ 2.7186168411375395
+ 2.7189019689116538
+ 2.7191871474410649
+ 2.7194723767385978
+ 2.7197576568170732
+ 2.7200429876893391
+ 2.7203283693682119
+ 2.7206138018665484
+ 2.7208992851971883
+ 2.7211848193729766
+ 2.7214704044067699
+ 2.7217560403114245
+ 2.7220417270998021
+ 2.7223274647847764
+ 2.7226132533792073
+ 2.7228990928959695
+ 2.7231849833479465
+ 2.7234709247480215
+ 2.7237569171090836
+ 2.7240429604440188
+ 2.7243290547657244
+ 2.7246152000870985
+ 2.7249013964210502
+ 2.7251876437804863
+ 2.7254739421783127
+ 2.7257602916274575
+ 2.7260466921408324
+ 2.7263331437313711
+ 2.7266196464119949
+ 2.7269062001956388
+ 2.7271928050952465
+ 2.7274794611237581
+ 2.7277661682941168
+ 2.7280529266192755
+ 2.7283397361121917
+ 2.7286265967858241
+ 2.7289135086531378
+ 2.7292004717270903
+ 2.7294874860206684
+ 2.729774551546841
+ 2.7300616683185894
+ 2.7303488363488997
+ 2.7306360556507587
+ 2.7309233262371682
+ 2.7312106481211158
+ 2.7314980213156077
+ 2.7317854458336486
+ 2.7320729216882582
+ 2.7323604488924391
+ 2.7326480274592151
+ 2.7329356574016135
+ 2.733223338732663
+ 2.7335110714653852
+ 2.7337988556128261
+ 2.7340866911880277
+ 2.7343745782040263
+ 2.7346625166738816
+ 2.7349505066106392
+ 2.7352385480273598
+ 2.7355266409371048
+ 2.7358147853529466
+ 2.7361029812879467
+ 2.7363912287551893
+ 2.7366795277677469
+ 2.736967878338707
+ 2.7372562804811618
+ 2.7375447342081927
+ 2.7378332395329119
+ 2.7381217964684037
+ 2.7384104050277847
+ 2.7386990652241607
+ 2.7389877770706441
+ 2.739276540580363
+ 2.7395653557664299
+ 2.7398542226419762
+ 2.740143141220122
+ 2.7404321115140284
+ 2.7407211335368116
+ 2.7410102073016245
+ 2.741299332821622
+ 2.7415885101099486
+ 2.7418777391797686
+ 2.7421670200442372
+ 2.7424563527165229
+ 2.7427457372098027
+ 2.7430351735372409
+ 2.7433246617120215
+ 2.7436142017473277
+ 2.7439037936563508
+ 2.7441934374522821
+ 2.7444831331483144
+ 2.7447728807576519
+ 2.7450626802935005
+ 2.745352531769067
+ 2.7456424351975697
+ 2.7459323905922171
+ 2.7462223979662479
+ 2.746512457332877
+ 2.7468025687053421
+ 2.7470927320968768
+ 2.7473829475207241
+ 2.7476732149901215
+ 2.747963534518326
+ 2.7482539061185896
+ 2.7485443298041696
+ 2.7488348055883307
+ 2.7491253334843284
+ 2.7494159135054521
+ 2.7497065456649628
+ 2.7499972299761422
+ 2.7502879664522863
+ 2.7505787551066705
+ 2.7508695959525866
+ 2.7511604890033499
+ 2.7514514342722438
+ 2.7517424317725805
+ 2.752033481517671
+ 2.7523245835208372
+ 2.7526157377953879
+ 2.7529069443546534
+ 2.7531982032119542
+ 2.7534895143806337
+ 2.7537808778740271
+ 2.754072293705474
+ 2.7543637618883152
+ 2.754655282435905
+ 2.7549468553616037
+ 2.7552384806787655
+ 2.755530158400755
+ 2.7558218885409445
+ 2.756113671112697
+ 2.7564055061293926
+ 2.7566973936044175
+ 2.7569893335511604
+ 2.7572813259829978
+ 2.7575733709133412
+ 2.7578654683555777
+ 2.7581576183231196
+ 2.758449820829366
+ 2.7587420758877386
+ 2.7590343835116489
+ 2.7593267437145195
+ 2.7596191565097778
+ 2.7599116219108475
+ 2.7602041399311719
+ 2.7604967105841869
+ 2.7607893338833467
+ 2.7610820098420765
+ 2.7613747384738532
+ 2.7616675197921174
+ 2.7619603538103368
+ 2.7622532405419808
+ 2.7625461800005153
+ 2.7628391721994165
+ 2.7631322171521613
+ 2.7634253148722374
+ 2.7637184653731337
+ 2.7640116686683429
+ 2.7643049247713654
+ 2.7645982336956942
+ 2.7648915954548419
+ 2.7651850100623241
+ 2.7654784775316403
+ 2.76577199787633
+ 2.7660655711099054
+ 2.7663591972458996
+ 2.7666528762978464
+ 2.7669466082792797
+ 2.7672403932037457
+ 2.7675342310847952
+ 2.7678281219359735
+ 2.7681220657708323
+ 2.7684160626029448
+ 2.7687101124458642
+ 2.769004215313168
+ 2.7692983712184254
+ 2.7695925801752184
+ 2.7698868421971294
+ 2.7701811572977424
+ 2.7704755254906503
+ 2.7707699467894593
+ 2.7710644212077531
+ 2.7713589487591532
+ 2.7716535294572577
+ 2.7719481633156962
+ 2.7722428503480736
+ 2.772537590568021
+ 2.7728323839891695
+ 2.7731272306251404
+ 2.7734221304895836
+ 2.7737170835961296
+ 2.7740120899584402
+ 2.7743071495901521
+ 2.7746022625049265
+ 2.7748974287164256
+ 2.7751926482383076
+ 2.7754879210842525
+ 2.7757832472679245
+ 2.776078626803006
+ 2.7763740597031772
+ 2.7766695459821293
+ 2.7769650856535577
+ 2.7772606787311465
+ 2.7775563252286082
+ 2.7778520251596439
+ 2.7781477785379676
+ 2.7784435853772855
+ 2.7787394456913344
+ 2.7790353594938213
+ 2.7793313267984816
+ 2.7796273476190474
+ 2.7799234219692579
+ 2.7802195498628635
+ 2.7805157313135926
+ 2.7808119663352073
+ 2.7811082549414694
+ 2.7814045971461296
+ 2.7817009929629579
+ 2.781997442405725
+ 2.7822939454882074
+ 2.7825905022241724
+ 2.7828871126274177
+ 2.7831837767117285
+ 2.7834804944908909
+ 2.783777265978713
+ 2.7840740911889923
+ 2.7843709701355324
+ 2.7846679028321439
+ 2.7849648892926493
+ 2.7852619295308667
+ 2.7855590235606216
+ 2.7858561713957415
+ 2.7861533730500625
+ 2.7864506285374238
+ 2.7867479378716755
+ 2.7870453010666556
+ 2.7873427181362187
+ 2.7876401890942288
+ 2.7879377139545398
+ 2.7882352927310263
+ 2.7885329254375599
+ 2.7888306120880095
+ 2.7891283526962654
+ 2.7894261472762065
+ 2.7897239958417299
+ 2.7900218984067204
+ 2.790319854985075
+ 2.7906178655907148
+ 2.790915930237539
+ 2.7912140489394606
+ 2.7915122217103967
+ 2.7918104485642692
+ 2.7921087295150091
+ 2.7924070645765497
+ 2.7927054537628209
+ 2.793003897087774
+ 2.793302394565345
+ 2.7936009462094917
+ 2.7938995520341687
+ 2.7941982120533315
+ 2.7944969262809525
+ 2.7947956947309889
+ 2.7950945174174286
+ 2.7953933943542428
+ 2.7956923255554131
+ 2.7959913110349333
+ 2.7962903508067969
+ 2.7965894448849977
+ 2.796888593283537
+ 2.7971877960164235
+ 2.7974870530976705
+ 2.797786364541289
+ 2.7980857303613043
+ 2.7983851505717472
+ 2.7986846251866395
+ 2.7989841542200193
+ 2.7992837376859301
+ 2.7995833755984112
+ 2.7998830679715163
+ 2.8001828148192907
+ 2.8004826161558074
+ 2.8007824719951189
+ 2.8010823823512956
+ 2.8013823472384072
+ 2.801682366670537
+ 2.8019824406617735
+ 2.8022825692261875
+ 2.8025827523778837
+ 2.8028829901309535
+ 2.8031832824994951
+ 2.8034836294976211
+ 2.8037840311394437
+ 2.8040844874390691
+ 2.8043849984106219
+ 2.8046855640682264
+ 2.804986184426022
+ 2.8052868594981244
+ 2.805587589298685
+ 2.805888373841853
+ 2.8061892131417641
+ 2.8064901072125767
+ 2.8067910560684526
+ 2.8070920597235514
+ 2.8073931181920426
+ 2.8076942314880937
+ 2.8079953996258937
+ 2.8082966226196096
+ 2.8085979004834396
+ 2.8088992332315663
+ 2.8092006208781983
+ 2.809502063437523
+ 2.8098035609237515
+ 2.8101051133511037
+ 2.8104067207337811
+ 2.81070838308601
+ 2.8110101004220143
+ 2.8113118727560273
+ 2.8116137001022841
+ 2.8119155824750184
+ 2.8122175198884709
+ 2.8125195123569053
+ 2.8128215598945636
+ 2.8131236625157081
+ 2.8134258202345985
+ 2.8137280330655101
+ 2.8140303010227141
+ 2.81433262412048
+ 2.8146350023731022
+ 2.8149374357948571
+ 2.8152399244000459
+ 2.8155424682029611
+ 2.8158450672179041
+ 2.8161477214591861
+ 2.8164504309411154
+ 2.8167531956780025
+ 2.8170560156841788
+ 2.8173588909739675
+ 2.817661821561694
+ 2.8179648074617045
+ 2.8182678486883272
+ 2.818570945255912
+ 2.8188740971788171
+ 2.8191773044713822
+ 2.8194805671479806
+ 2.8197838852229729
+ 2.82008725871072
+ 2.8203906876256108
+ 2.8206941719820127
+ 2.820997711794317
+ 2.8213013070769124
+ 2.8216049578441909
+ 2.8219086641105426
+ 2.8222124258903878
+ 2.8225162431981183
+ 2.8228201160481583
+ 2.8231240444549193
+ 2.8234280284328372
+ 2.8237320679963194
+ 2.8240361631598163
+ 2.8243403139377543
+ 2.8246445203445805
+ 2.8249487823947481
+ 2.825253100102695
+ 2.8255574734828905
+ 2.825861902549792
+ 2.8261663873178624
+ 2.8264709278015814
+ 2.8267755240154213
+ 2.8270801759738649
+ 2.8273848836913924
+ 2.8276896471825057
+ 2.8279944664616932
+ 2.8282993415434605
+ 2.8286042724423077
+ 2.828909259172756
+ 2.8292143017493134
+ 2.8295194001864976
+ 2.8298245544988432
+ 2.8301297647008736
+ 2.8304350308071258
+ 2.8307403528321471
+ 2.8310457307904686
+ 2.8313511646966547
+ 2.8316566545652546
+ 2.8319622004108225
+ 2.832267802247936
+ 2.8325734600911616
+ 2.8328791739550607
+ 2.8331849438542278
+ 2.8334907698032441
+ 2.8337966518166979
+ 2.834102589909187
+ 2.8344085840953017
+ 2.8347146343896528
+ 2.8350207408068577
+ 2.8353269033615116
+ 2.835633122068256
+ 2.8359393969416971
+ 2.8362457279964715
+ 2.8365521152472146
+ 2.8368585587085597
+ 2.8371650583951578
+ 2.8374716143216534
+ 2.8377782265027078
+ 2.8380848949529747
+ 2.838391619687116
+ 2.8386984007197982
+ 2.8390052380657065
+ 2.8393121317395087
+ 2.8396190817558948
+ 2.8399260881295474
+ 2.8402331508751661
+ 2.8405402700074522
+ 2.8408474455411006
+ 2.8411546774908296
+ 2.8414619658713418
+ 2.8417693106973658
+ 2.8420767119836232
+ 2.8423841697448378
+ 2.842691683995743
+ 2.8429992547510858
+ 2.8433068820256069
+ 2.8436145658340539
+ 2.8439223061911774
+ 2.8442301031117396
+ 2.8445379566105031
+ 2.8448458667022414
+ 2.8451538334017177
+ 2.8454618567237189
+ 2.8457699366830309
+ 2.8460780732944344
+ 2.84638626657273
+ 2.8466945165327089
+ 2.8470028231891842
+ 2.84731118655696
+ 2.847619606650849
+ 2.8479280834856735
+ 2.8482366170762576
+ 2.8485452074374265
+ 2.8488538545840161
+ 2.8491625585308729
+ 2.8494713192928298
+ 2.8497801368847386
+ 2.8500890113214572
+ 2.8503979426178434
+ 2.8507069307887609
+ 2.851015975849081
+ 2.8513250778136725
+ 2.851634236697425
+ 2.8519434525152136
+ 2.8522527252819354
+ 2.8525620550124775
+ 2.852871441721748
+ 2.8531808854246483
+ 2.853490386136079
+ 2.853799943870972
+ 2.8541095586442364
+ 2.854419230470802
+ 2.8547289593655965
+ 2.8550387453435513
+ 2.8553485884196173
+ 2.8556584886087322
+ 2.8559684459258436
+ 2.8562784603859117
+ 2.8565885320039066
+ 2.8568986607947799
+ 2.8572088467735073
+ 2.8575190899550686
+ 2.8578293903544423
+ 2.8581397479866091
+ 2.8584501628665704
+ 2.8587606350093187
+ 2.8590711644298503
+ 2.8593817511431774
+ 2.8596923951643141
+ 2.8600030965082661
+ 2.860313855190066
+ 2.860624671224743
+ 2.860935544627321
+ 2.8612464754128406
+ 2.8615574635963483
+ 2.8618685091928859
+ 2.8621796122175072
+ 2.8624907726852729
+ 2.8628019906112407
+ 2.8631132660104912
+ 2.8634245988980829
+ 2.8637359892891023
+ 2.8640474371986269
+ 2.8643589426417546
+ 2.8646705056335815
+ 2.8649821261891897
+ 2.8652938043236982
+ 2.8656055400522127
+ 2.8659173333898416
+ 2.8662291843517154
+ 2.8665410929529549
+ 2.8668530592086783
+ 2.8671650831340432
+ 2.8674771647441748
+ 2.8677893040542193
+ 2.8681015010793303
+ 2.8684137558346627
+ 2.8687260683353828
+ 2.8690384385966436
+ 2.8693508666336314
+ 2.8696633524615174
+ 2.8699758960954771
+ 2.8702884975507059
+ 2.8706011568423961
+ 2.8709138739857401
+ 2.8712266489959415
+ 2.8715394818882101
+ 2.8718523726777518
+ 2.8721653213797995
+ 2.8724783280095672
+ 2.8727913925822754
+ 2.8731045151131736
+ 2.8734176956174915
+ 2.8737309341104709
+ 2.874044230607371
+ 2.8743575851234424
+ 2.8746709976739444
+ 2.8749844682741337
+ 2.875297996939294
+ 2.8756115836846945
+ 2.8759252285256154
+ 2.8762389314773413
+ 2.876552692555165
+ 2.8768665117743866
+ 2.8771803891503032
+ 2.8774943246982225
+ 2.8778083184334649
+ 2.8781223703713339
+ 2.8784364805271627
+ 2.878750648916272
+ 2.8790648755539952
+ 2.8793791604556791
+ 2.8796935036366582
+ 2.8800079051122895
+ 2.8803223648979164
+ 2.8806368830089069
+ 2.8809514594606234
+ 2.8812660942684345
+ 2.8815807874477213
+ 2.8818955390138532
+ 2.8822103489822291
+ 2.8825252173682321
+ 2.882840144187254
+ 2.8831551294547046
+ 2.8834701731859873
+ 2.8837852753965181
+ 2.8841004361017082
+ 2.884415655316984
+ 2.8847309330577713
+ 2.8850462693395142
+ 2.8853616641776338
+ 2.8856771175875875
+ 2.8859926295848126
+ 2.8863082001847751
+ 2.8866238294029301
+ 2.8869395172547381
+ 2.8872552637556792
+ 2.8875710689212215
+ 2.8878869327668499
+ 2.8882028553080508
+ 2.8885188365603125
+ 2.8888348765391325
+ 2.8891509752600175
+ 2.8894671327384667
+ 2.8897833489900036
+ 2.8900996240301398
+ 2.8904159578744024
+ 2.8907323505383142
+ 2.8910488020374139
+ 2.8913653123872387
+ 2.8916818816033394
+ 2.8919985097012648
+ 2.892315196696567
+ 2.8926319426048011
+ 2.8929487474415514
+ 2.8932656112223731
+ 2.8935825339628445
+ 2.893899515678557
+ 2.8942165563850968
+ 2.8945336560980506
+ 2.8948508148330148
+ 2.8951680326056031
+ 2.8954853094314243
+ 2.8958026453260799
+ 2.896120040305203
+ 2.8964374943844153
+ 2.8967550075793453
+ 2.8970725799056298
+ 2.8973902113789127
+ 2.8977079020148384
+ 2.8980256518290619
+ 2.8983434608372343
+ 2.8986613290550296
+ 2.8989792564981007
+ 2.8992972431821387
+ 2.8996152891228095
+ 2.8999333943358057
+ 2.9002515588368127
+ 2.9005697826415218
+ 2.9008880657656446
+ 2.9012064082248794
+ 2.9015248100349429
+ 2.9018432712115469
+ 2.9021617917704159
+ 2.9024803717272798
+ 2.9027990110978692
+ 2.9031177098979217
+ 2.9034364681431857
+ 2.9037552858494071
+ 2.9040741630323463
+ 2.9043930997077552
+ 2.9047120958914023
+ 2.9050311515990699
+ 2.905350266846515
+ 2.9056694416495379
+ 2.9059886760239095
+ 2.9063079699854373
+ 2.9066273235499103
+ 2.9069467367331434
+ 2.9072662095509312
+ 2.9075857420191022
+ 2.9079053341534635
+ 2.9082249859698512
+ 2.9085446974840976
+ 2.908864468712026
+ 2.9091842996694934
+ 2.9095041903723438
+ 2.9098241408364229
+ 2.9101441510775978
+ 2.9104642211117215
+ 2.91078435095468
+ 2.9111045406223353
+ 2.9114247901305665
+ 2.9117450994952718
+ 2.9120654687323371
+ 2.9123858978576509
+ 2.9127063868871241
+ 2.9130269358366676
+ 2.9133475447221842
+ 2.9136682135596019
+ 2.9139889423648428
+ 2.9143097311538364
+ 2.9146305799425156
+ 2.9149514887468193
+ 2.9152724575827045
+ 2.9155934864661095
+ 2.915914575413006
+ 2.9162357244393458
+ 2.916556933561099
+ 2.916878202794237
+ 2.9171995321547515
+ 2.9175209216586242
+ 2.9178423713218349
+ 2.918163881160392
+ 2.9184854511902891
+ 2.9188070814275342
+ 2.9191287718881442
+ 2.9194505225881366
+ 2.9197723335435288
+ 2.9200942047703613
+ 2.9204161362846555
+ 2.9207381281024576
+ 2.9210601802398184
+ 2.9213822927127868
+ 2.9217044655374202
+ 2.9220266987297792
+ 2.9223489923059303
+ 2.9226713462819522
+ 2.9229937606739225
+ 2.9233162354979232
+ 2.923638770770046
+ 2.923961366506389
+ 2.924284022723056
+ 2.9246067394361495
+ 2.9249295166617864
+ 2.9252523544160787
+ 2.9255752527151522
+ 2.9258982115751442
+ 2.9262212310121818
+ 2.9265443110424085
+ 2.9268674516819688
+ 2.9271906529470222
+ 2.9275139148537148
+ 2.9278372374182151
+ 2.9281606206566906
+ 2.9284840645853234
+ 2.9288075692202802
+ 2.9291311345777573
+ 2.9294547606739472
+ 2.9297784475250346
+ 2.9301021951472284
+ 2.9304260035567427
+ 2.9307498727697801
+ 2.9310738028025658
+ 2.9313977936713282
+ 2.9317218453922949
+ 2.9320459579816998
+ 2.9323701314557846
+ 2.9326943658307965
+ 2.933018661122996
+ 2.9333430173486312
+ 2.9336674345239784
+ 2.9339919126652925
+ 2.9343164517888667
+ 2.9346410519109676
+ 2.9349657130478852
+ 2.9352904352159208
+ 2.9356152184313675
+ 2.9359400627105217
+ 2.9362649680697075
+ 2.9365899345252284
+ 2.9369149620934145
+ 2.9372400507905767
+ 2.9375652006330646
+ 2.9378904116372095
+ 2.9382156838193603
+ 2.9385410171958615
+ 2.9388664117830641
+ 2.9391918675973367
+ 2.9395173846550389
+ 2.9398429629725507
+ 2.9401686025662395
+ 2.9404943034524997
+ 2.9408200656477148
+ 2.9411458891682765
+ 2.9414717740305956
+ 2.9417977202510719
+ 2.9421237278461136
+ 2.9424497968321415
+ 2.9427759272255876
+ 2.9431021190428672
+ 2.9434283723004255
+ 2.9437546870146978
+ 2.9440810632021299
+ 2.944407500879183
+ 2.944734000062303
+ 2.9450605607679581
+ 2.9453871830126213
+ 2.9457138668127669
+ 2.9460406121848681
+ 2.9463674191454197
+ 2.946694287710907
+ 2.947021217897833
+ 2.9473482097227026
+ 2.9476752632020182
+ 2.9480023783523053
+ 2.9483295551900799
+ 2.9486567937318608
+ 2.9489840939941905
+ 2.9493114559936067
+ 2.949638879746654
+ 2.9499663652698773
+ 2.9502939125798324
+ 2.9506215216930842
+ 2.9509491926261977
+ 2.9512769253957498
+ 2.9516047200183171
+ 2.9519325765104805
+ 2.9522604948888347
+ 2.9525884751699727
+ 2.9529165173704977
+ 2.9532446215070172
+ 2.9535727875961451
+ 2.9539010156544969
+ 2.9542293056987008
+ 2.9545576577453905
+ 2.954886071811202
+ 2.9552145479127754
+ 2.955543086066756
+ 2.9558716862898069
+ 2.9562003485985762
+ 2.9565290730097407
+ 2.9568578595399586
+ 2.9571867082059238
+ 2.9575156190243126
+ 2.9578445920118073
+ 2.95817362718511
+ 2.9585027245609221
+ 2.9588318841559409
+ 2.9591611059868881
+ 2.959490390070481
+ 2.9598197364234511
+ 2.9601491450625077
+ 2.9604786160044023
+ 2.9608081492658682
+ 2.9611377448636635
+ 2.9614674028145358
+ 2.9617971231352342
+ 2.962126905842541
+ 2.9624567509532134
+ 2.9627866584840348
+ 2.9631166284517949
+ 2.9634466608732719
+ 2.9637767557652559
+ 2.9641069131445579
+ 2.9644371330279746
+ 2.9647674154323247
+ 2.9650977603744297
+ 2.9654281678711047
+ 2.9657586379391896
+ 2.9660891705955068
+ 2.9664197658569051
+ 2.9667504237402307
+ 2.9670811442623406
+ 2.9674119274400872
+ 2.967742773290341
+ 2.9680736818299707
+ 2.9684046530758517
+ 2.9687356870448718
+ 2.9690667837539144
+ 2.9693979432198754
+ 2.969729165459658
+ 2.9700604504901627
+ 2.9703917983283139
+ 2.9707232089910156
+ 2.9710546824952022
+ 2.9713862188577926
+ 2.9717178180957355
+ 2.9720494802259738
+ 2.972381205265441
+ 2.9727129932311032
+ 2.97304484413992
+ 2.9733767580088504
+ 2.9737087348548705
+ 2.9740407746949584
+ 2.974372877546092
+ 2.9747050434252689
+ 2.975037272349482
+ 2.9753695643357343
+ 2.9757019194010335
+ 2.9760343375623837
+ 2.9763668188368171
+ 2.9766993632413477
+ 2.9770319707930248
+ 2.9773646415088639
+ 2.9776973754059242
+ 2.9780301725012452
+ 2.9783630328118922
+ 2.9786959563549198
+ 2.9790289431473904
+ 2.9793619932063868
+ 2.9796951065489865
+ 2.9800282831922686
+ 2.9803615231533351
+ 2.9806948264492772
+ 2.9810281930972007
+ 2.9813616231142119
+ 2.9816951165174199
+ 2.9820286733239585
+ 2.9823622935509504
+ 2.9826959772155317
+ 2.9830297243348385
+ 2.9833635349260126
+ 2.9836974090062109
+ 2.9840313465925936
+ 2.9843653477023109
+ 2.9846994123525512
+ 2.9850335405604782
+ 2.9853677323432724
+ 2.9857019877181314
+ 2.9860363067022404
+ 2.9863706893128041
+ 2.98670513556702
+ 2.9870396454821129
+ 2.9873742190752881
+ 2.9877088563637777
+ 2.9880435573648132
+ 2.9883783220956284
+ 2.988713150573461
+ 2.9890480428155661
+ 2.9893829988391891
+ 2.9897180186616028
+ 2.9900531023000609
+ 2.9903882497718519
+ 2.990723461094241
+ 2.9910587362845167
+ 2.9913940753599682
+ 2.9917294783378958
+ 2.9920649452356067
+ 2.9924004760703982
+ 2.9927360708595976
+ 2.9930717296205209
+ 2.9934074523704912
+ 2.993743239126851
+ 2.9940790899069367
+ 2.9944150047280913
+ 2.9947509836076724
+ 2.9950870265630245
+ 2.99542313361153
+ 2.9957593047705475
+ 2.9960955400574609
+ 2.9964318394896488
+ 2.9967682030844971
+ 2.997104630859404
+ 2.9974411228317672
+ 2.9977776790190016
+ 2.9981142994385115
+ 2.9984509841077251
+ 2.9987877330440598
+ 2.9991245462649521
+ 2.9994614237878339
+ 2.9997983656301597
+ 3.0001353718093715
+ 3.0004724423429305
+ 3.0008095772482903
+ 3.0011467765429289
+ 3.0014840402443133
+ 3.0018213683699386
+ 3.002158760937276
+ 3.0024962179638344
+ 3.0028337394670972
+ 3.0031713254645815
+ 3.0035089759737921
+ 3.0038466910122525
+ 3.0041844705974801
+ 3.0045223147470139
+ 3.0048602234783908
+ 3.0051981968091459
+ 3.0055362347568289
+ 3.0058743373390007
+ 3.0062125045732202
+ 3.0065507364770547
+ 3.0068890330680826
+ 3.0072273943638801
+ 3.0075658203820339
+ 3.0079043111401327
+ 3.0082428666557774
+ 3.0085814869465763
+ 3.0089201720301375
+ 3.0092589219240851
+ 3.0095977366460342
+ 3.0099366162136216
+ 3.0102755606444771
+ 3.0106145699562461
+ 3.0109536441665772
+ 3.0112927832931291
+ 3.0116319873535535
+ 3.0119712563655283
+ 3.0123105903467193
+ 3.0126499893148124
+ 3.0129894532874983
+ 3.0133289822824545
+ 3.0136685763173836
+ 3.0140082354100022
+ 3.0143479595780089
+ 3.0146877488391324
+ 3.0150276032110885
+ 3.0153675227116103
+ 3.0157075073584356
+ 3.0160475571693
+ 3.0163876721619634
+ 3.0167278523541663
+ 3.0170680977636901
+ 3.0174084084082864
+ 3.0177487843057316
+ 3.0180892254738132
+ 3.0184297319303117
+ 3.0187703036930298
+ 3.0191109407797576
+ 3.0194516432082983
+ 3.0197924109964718
+ 3.0201332441620927
+ 3.0204741427229882
+ 3.0208151066969839
+ 3.0211561361019248
+ 3.0214972309556489
+ 3.0218383912760092
+ 3.0221796170808561
+ 3.0225209083880586
+ 3.0228622652154868
+ 3.0232036875810109
+ 3.0235451755025156
+ 3.0238867289978901
+ 3.0242283480850221
+ 3.0245700327818277
+ 3.0249117831061945
+ 3.0252535990760521
+ 3.025595480709304
+ 3.0259374280238949
+ 3.026279441037746
+ 3.0266215197688022
+ 3.0269636642349971
+ 3.0273058744543002
+ 3.0276481504446573
+ 3.0279904922240357
+ 3.0283328998104069
+ 3.0286753732217453
+ 3.029017912476037
+ 3.0293605175912708
+ 3.0297031885854464
+ 3.0300459254765606
+ 3.0303887282826341
+ 3.0307315970216711
+ 3.0310745317116994
+ 3.0314175323707446
+ 3.0317605990168475
+ 3.0321037316680353
+ 3.0324469303423713
+ 3.0327901950579084
+ 3.0331335258326915
+ 3.0334769226848062
+ 3.033820385632318
+ 3.0341639146933042
+ 3.0345075098858549
+ 3.0348511712280617
+ 3.035194898738022
+ 3.0355386924338474
+ 3.035882552333645
+ 3.036226478455534
+ 3.0365704708176406
+ 3.0369145294380986
+ 3.0372586543350368
+ 3.0376028455266089
+ 3.0379471030309642
+ 3.0382914268662571
+ 3.0386358170506513
+ 3.0389802736023177
+ 3.0393247965394381
+ 3.0396693858801909
+ 3.0400140416427615
+ 3.0403587638453531
+ 3.0407035525061725
+ 3.0410484076434199
+ 3.0413933292753081
+ 3.0417383174200689
+ 3.0420833720959268
+ 3.0424284933211196
+ 3.0427736811138848
+ 3.0431189354924699
+ 3.0434642564751386
+ 3.0438096440801403
+ 3.0441550983257533
+ 3.0445006192302397
+ 3.0448462068118869
+ 3.0451918610889845
+ 3.0455375820798323
+ 3.0458833698027168
+ 3.0462292242759461
+ 3.0465751455178447
+ 3.0469211335467281
+ 3.0472671883809186
+ 3.0476133100387517
+ 3.0479594985385625
+ 3.0483057538987088
+ 3.048652076137532
+ 3.0489984652733981
+ 3.0493449213246713
+ 3.0496914443097229
+ 3.0500380342469331
+ 3.0503846911546812
+ 3.050731415051366
+ 3.0510782059553896
+ 3.0514250638851452
+ 3.0517719888590622
+ 3.0521189808955422
+ 3.0524660400130159
+ 3.0528131662299178
+ 3.0531603595646866
+ 3.0535076200357598
+ 3.0538549476615953
+ 3.0542023424606572
+ 3.0545498044513941
+ 3.0548973336522893
+ 3.0552449300818143
+ 3.0555925937584529
+ 3.0559403247007078
+ 3.0562881229270609
+ 3.0566359884560295
+ 3.0569839213061143
+ 3.0573319214958414
+ 3.0576799890437325
+ 3.0580281239683145
+ 3.0583763262881196
+ 3.058724596021706
+ 3.0590729331876192
+ 3.0594213378044217
+ 3.0597698098906601
+ 3.0601183494649238
+ 3.0604669565457794
+ 3.0608156311518124
+ 3.0611643733016169
+ 3.0615131830137861
+ 3.0618620603069333
+ 3.0622110051996554
+ 3.0625600177105752
+ 3.0629090978583244
+ 3.0632582456615203
+ 3.0636074611388135
+ 3.0639567443088391
+ 3.0643060951902537
+ 3.0646555138017062
+ 3.0650050001618658
+ 3.0653545542894078
+ 3.0657041762030066
+ 3.0660538659213392
+ 3.0664036234631036
+ 3.0667534488469919
+ 3.0671033420917198
+ 3.0674533032159914
+ 3.0678033322385243
+ 3.0681534291780457
+ 3.0685035940532783
+ 3.0688538268829708
+ 3.0692041276858624
+ 3.0695544964807024
+ 3.069904933286256
+ 3.0702554381212814
+ 3.0706060110045534
+ 3.0709566519548446
+ 3.0713073609909483
+ 3.0716581381316588
+ 3.0720089833957611
+ 3.0723598968020682
+ 3.0727108783693984
+ 3.0730619281165552
+ 3.0734130460623827
+ 3.0737642322256988
+ 3.0741154866253511
+ 3.0744668092801795
+ 3.0748182002090418
+ 3.0751696594307951
+ 3.0755211869643078
+ 3.0758727828284473
+ 3.0762244470420987
+ 3.0765761796241438
+ 3.0769279805934886
+ 3.0772798499690173
+ 3.0776317877696422
+ 3.0779837940142829
+ 3.0783358687218549
+ 3.0786880119112898
+ 3.0790402236015115
+ 3.0793925038114747
+ 3.0797448525601165
+ 3.0800972698663984
+ 3.0804497557492811
+ 3.0808023102277229
+ 3.0811549333207138
+ 3.0815076250472346
+ 3.0818603854262605
+ 3.0822132144768037
+ 3.0825661122178487
+ 3.0829190786684282
+ 3.083272113847535
+ 3.0836252177742045
+ 3.0839783904674687
+ 3.0843316319463585
+ 3.0846849422299218
+ 3.0850383213372043
+ 3.0853917692872668
+ 3.0857452860991699
+ 3.086098871791997
+ 3.0864525263848095
+ 3.0868062498966995
+ 3.0871600423467562
+ 3.0875139037540928
+ 3.0878678341377932
+ 3.0882218335169793
+ 3.088575901910775
+ 3.088930039338305
+ 3.0892842458186953
+ 3.0896385213710849
+ 3.0899928660146383
+ 3.0903472797684923
+ 3.0907017626518143
+ 3.091056314683772
+ 3.0914109358835371
+ 3.0917656262702971
+ 3.0921203858632262
+ 3.0924752146815409
+ 3.0928301127444269
+ 3.0931850800710987
+ 3.0935401166807761
+ 3.0938952225926739
+ 3.0942503978260354
+ 3.0946056424000812
+ 3.094960956334071
+ 3.0953163396472467
+ 3.0956717923588628
+ 3.0960273144881962
+ 3.0963829060545094
+ 3.0967385670770859
+ 3.0970942975752056
+ 3.0974500975681671
+ 3.097805967075268
+ 3.0981619061158114
+ 3.0985179147091171
+ 3.0988739928745037
+ 3.0992301406313021
+ 3.0995863579988394
+ 3.0999426449964584
+ 3.1002990016435139
+ 3.1006554279593543
+ 3.1010119239633496
+ 3.1013684896748712
+ 3.1017251251132842
+ 3.102081830297974
+ 3.1024386052483406
+ 3.1027954499837782
+ 3.1031523645236887
+ 3.1035093488874863
+ 3.1038664030945937
+ 3.1042235271644243
+ 3.104580721116414
+ 3.1049379849700163
+ 3.1052953187446679
+ 3.1056527224598258
+ 3.1060101961349487
+ 3.1063677397895013
+ 3.1067253534429633
+ 3.1070830371148217
+ 3.1074407908245516
+ 3.1077986145916601
+ 3.1081565084356515
+ 3.1085144723760352
+ 3.1088725064323226
+ 3.1092306106240395
+ 3.1095887849707244
+ 3.1099470294919116
+ 3.110305344207148
+ 3.1106637291359829
+ 3.1110221842979855
+ 3.1113807097127126
+ 3.1117393053997433
+ 3.1120979713786476
+ 3.1124567076690388
+ 3.1128155142904976
+ 3.1131743912626244
+ 3.1135333386050297
+ 3.1138923563373342
+ 3.1142514444791622
+ 3.1146106030501399
+ 3.1149698320699097
+ 3.11532913155812
+ 3.1156885015344118
+ 3.1160479420184521
+ 3.1164074530299146
+ 3.1167670345884595
+ 3.1171266867137808
+ 3.1174864094255521
+ 3.1178462027434835
+ 3.1182060666872706
+ 3.1185660012766259
+ 3.1189260065312592
+ 3.119286082470905
+ 3.1196462291152867
+ 3.1200064464841422
+ 3.1203667345972184
+ 3.1207270934742777
+ 3.121087523135063
+ 3.1214480235993483
+ 3.1218085948869225
+ 3.1221692370175411
+ 3.1225299500110162
+ 3.1228907338871239
+ 3.1232515886656844
+ 3.1236125143664966
+ 3.1239735110093769
+ 3.1243345786141639
+ 3.1246957172006762
+ 3.1250569267887554
+ 3.1254182073982539
+ 3.1257795590490161
+ 3.1261409817609032
+ 3.1265024755538002
+ 3.1268640404475576
+ 3.1272256764620745
+ 3.127587383617243
+ 3.1279491619329414
+ 3.1283110114290946
+ 3.1286729321256002
+ 3.129034924042386
+ 3.1293969871993683
+ 3.1297591216164871
+ 3.1301213273136854
+ 3.1304836043109043
+ 3.1308459526281038
+ 3.13120837228524
+ 3.131570863302291
+ 3.1319334256992279
+ 3.132296059496035
+ 3.1326587647127062
+ 3.1330215413692364
+ 3.1333843894856384
+ 3.1337473090819179
+ 3.1341103001781017
+ 3.1344733627942101
+ 3.1348364969502938
+ 3.1351997026663754
+ 3.1355629799625131
+ 3.1359263288587695
+ 3.1362897493752002
+ 3.1366532415318895
+ 3.1370168053489018
+ 3.1373804408463295
+ 3.1377441480442716
+ 3.1381079269628191
+ 3.1384717776220898
+ 3.138835700042196
+ 3.1391996942432598
+ 3.1395637602454078
+ 3.139927898068791
+ 3.1402921077335386
+ 3.1406563892598154
+ 3.1410207426677732
+ 3.1413851679775866
+ 3.1417496652094217
+ 3.1421142343834734
+ 3.1424788755199131
+ 3.1428435886389501
+ 3.1432083737607894
+ 3.1435732309056377
+ 3.1439381600937089
+ 3.1443031613452423
+ 3.1446682346804611
+ 3.1450333801196164
+ 3.1453985976829451
+ 3.145763887390713
+ 3.1461292492631716
+ 3.1464946833206047
+ 3.1468601895832844
+ 3.147225768071495
+ 3.147591418805527
+ 3.1479571418056924
+ 3.1483229370922881
+ 3.1486888046856314
+ 3.1490547446060528
+ 3.1494207568738735
+ 3.1497868415094308
+ 3.1501529985330738
+ 3.1505192279651588
+ 3.1508855298260356
+ 3.1512519041360747
+ 3.1516183509156606
+ 3.1519848701851676
+ 3.1523514619649822
+ 3.1527181262755022
+ 3.1530848631371406
+ 3.1534516725703097
+ 3.1538185545954143
+ 3.1541855092329003
+ 3.1545525365031892
+ 3.1549196364267291
+ 3.1552868090239614
+ 3.1556540543153582
+ 3.1560213723213768
+ 3.1563887630624836
+ 3.1567562265591653
+ 3.15712376283191
+ 3.1574913719012012
+ 3.1578590537875542
+ 3.1582268085114755
+ 3.1585946360934707
+ 3.158962536554085
+ 3.1593305099138353
+ 3.159698556193268
+ 3.1600666754129296
+ 3.1604348675933771
+ 3.1608031327551624
+ 3.1611714709188665
+ 3.1615398821050635
+ 3.1619083663343419
+ 3.1622769236272812
+ 3.1626455540045026
+ 3.1630142574865943
+ 3.1633830340941884
+ 3.1637518838478891
+ 3.164120806768342
+ 3.1644898028761861
+ 3.1648588721920521
+ 3.1652280147366065
+ 3.1655972305305085
+ 3.1659665195944218
+ 3.1663358819490268
+ 3.1667053176150022
+ 3.1670748266130446
+ 3.1674444089638487
+ 3.1678140646881268
+ 3.1681837938065818
+ 3.1685535963399487
+ 3.1689234723089523
+ 3.1692934217343178
+ 3.169663444636805
+ 3.1700335410371601
+ 3.1704037109561467
+ 3.1707739544145261
+ 3.1711442714330791
+ 3.1715146620325805
+ 3.1718851262338266
+ 3.1722556640576172
+ 3.1726262755247556
+ 3.1729969606560569
+ 3.1733677194723344
+ 3.1737385519944246
+ 3.1741094582431653
+ 3.1744804382393941
+ 3.1748514920039628
+ 3.1752226195577404
+ 3.1755938209215806
+ 3.175965096116367
+ 3.1763364451629834
+ 3.1767078680823095
+ 3.17707936489525
+ 3.1774509356227156
+ 3.1778225802856115
+ 3.1781942989048653
+ 3.1785660915013914
+ 3.1789379580961445
+ 3.1793098987100579
+ 3.1796819133640861
+ 3.1800540020791859
+ 3.1804261648763288
+ 3.1807984017764914
+ 3.181170712800649
+ 3.181543097969795
+ 3.1819155573049316
+ 3.1822880908270621
+ 3.1826606985571879
+ 3.1830333805163562
+ 3.183406136725579
+ 3.1837789672058951
+ 3.1841518719783561
+ 3.1845248510640043
+ 3.1848979044839014
+ 3.1852710322591249
+ 3.1856442344107387
+ 3.1860175109598363
+ 3.1863908619275092
+ 3.1867642873348432
+ 3.187137787202964
+ 3.1875113615529664
+ 3.1878850104059864
+ 3.1882587337831585
+ 3.1886325317056032
+ 3.1890064041944859
+ 3.1893803512709411
+ 3.1897543729561426
+ 3.1901284692712619
+ 3.1905026402374745
+ 3.190876885875956
+ 3.1912512062079106
+ 3.1916256012545356
+ 3.192000071037032
+ 3.192374615576631
+ 3.1927492348945448
+ 3.1931239290120086
+ 3.1934986979502678
+ 3.1938735417305613
+ 3.1942484603741494
+ 3.1946234539022957
+ 3.1949985223362747
+ 3.1953736656973524
+ 3.195748884006834
+ 3.196124177286007
+ 3.1964995455561662
+ 3.1968749888386414
+ 3.197250507154731
+ 3.1976261005257736
+ 3.1980017689730911
+ 3.1983775125180425
+ 3.1987533311819729
+ 3.1991292249862324
+ 3.1995051939521946
+ 3.1998812381012378
+ 3.2002573574547326
+ 3.2006335520340743
+ 3.2010098218606604
+ 3.2013861669558961
+ 3.2017625873411979
+ 3.2021390830379839
+ 3.2025156540676862
+ 3.2028923004517353
+ 3.2032690222115843
+ 3.2036458193686852
+ 3.2040226919445014
+ 3.2043996399604953
+ 3.2047766634381518
+ 3.2051537623989499
+ 3.2055309368643843
+ 3.2059081868559618
+ 3.2062855123951755
+ 3.20666291350356
+ 3.2070403902026308
+ 3.2074179425139322
+ 3.2077955704589889
+ 3.2081732740593578
+ 3.2085510533366084
+ 3.2089289083122758
+ 3.209306839007966
+ 3.2096848454452358
+ 3.2100629276456885
+ 3.2104410856309156
+ 3.2108193194225185
+ 3.2111976290421169
+ 3.2115760145113339
+ 3.2119544758517864
+ 3.2123330130851273
+ 3.2127116262329842
+ 3.2130903153170247
+ 3.2134690803589105
+ 3.2138479213803017
+ 3.2142268384028752
+ 3.2146058314483268
+ 3.2149849005383495
+ 3.2153640456946309
+ 3.2157432669388912
+ 3.2161225642928533
+ 3.2165019377782356
+ 3.2168813874167701
+ 3.2172609132301981
+ 3.2176405152402796
+ 3.2180201934687616
+ 3.2183999479374124
+ 3.2187797786680199
+ 3.2191596856823446
+ 3.2195396690021947
+ 3.2199197286493635
+ 3.2202998646456482
+ 3.2206800770128807
+ 3.2210603657728729
+ 3.2214407309474584
+ 3.2218211725584767
+ 3.2222016906277786
+ 3.2225822851772077
+ 3.2229629562286441
+ 3.2233437038039519
+ 3.2237245279250102
+ 3.2241054286136994
+ 3.2244864058919327
+ 3.2248674597816018
+ 3.2252485903046293
+ 3.2256297974829233
+ 3.2260110813384224
+ 3.2263924418930632
+ 3.2267738791687877
+ 3.2271553931875445
+ 3.2275369839713108
+ 3.2279186515420437
+ 3.2283003959217176
+ 3.2286822171323304
+ 3.2290641151958694
+ 3.2294460901343482
+ 3.2298281419697612
+ 3.2302102707241285
+ 3.2305924764194995
+ 3.2309747590778772
+ 3.231357118721327
+ 3.2317395553718993
+ 3.2321220690516532
+ 3.2325046597826486
+ 3.2328873275869734
+ 3.2332700724867087
+ 3.2336528945039458
+ 3.2340357936607789
+ 3.2344187699793263
+ 3.2348018234817122
+ 3.2351849541900517
+ 3.2355681621264782
+ 3.2359514473131434
+ 3.2363348097721985
+ 3.23671824952579
+ 3.2371017665960973
+ 3.2374853610052874
+ 3.2378690327755542
+ 3.2382527819290798
+ 3.2386366084880756
+ 3.2390205124747351
+ 3.2394044939112909
+ 3.2397885528199657
+ 3.2401726892229901
+ 3.2405569031426036
+ 3.2409411946010591
+ 3.241325563620618
+ 3.2417100102235445
+ 3.2420945344321161
+ 3.2424791362686212
+ 3.2428638157553324
+ 3.2432485729145757
+ 3.2436334077686455
+ 3.244018320339852
+ 3.2444033106505401
+ 3.2447883787230341
+ 3.2451735245796716
+ 3.2455587482428117
+ 3.2459440497348084
+ 3.2463294290780245
+ 3.2467148862948441
+ 3.2471004214076533
+ 3.2474860344388321
+ 3.2478717254107914
+ 3.2482574943459386
+ 3.2486433412666895
+ 3.2490292661954681
+ 3.2494152691547122
+ 3.2498013501668641
+ 3.2501875092543773
+ 3.2505737464397102
+ 3.2509600617453263
+ 3.2513464551937079
+ 3.2517329268073367
+ 3.2521194766087085
+ 3.2525061046203221
+ 3.2528928108646911
+ 3.253279595364337
+ 3.2536664581417716
+ 3.2540533992195511
+ 3.254440418620197
+ 3.2548275163662832
+ 3.2552146924803562
+ 3.2556019469849962
+ 3.2559892799027734
+ 3.2563766912562815
+ 3.2567641810681054
+ 3.2571517493608551
+ 3.2575393961571391
+ 3.2579271214795824
+ 3.2583149253508066
+ 3.2587028077934521
+ 3.2590907688301693
+ 3.2594788084836037
+ 3.2598669267764286
+ 3.2602551237313127
+ 3.2606433993709198
+ 3.2610317537179614
+ 3.2614201867951231
+ 3.2618086986251091
+ 3.262197289230635
+ 3.2625859586344261
+ 3.2629747068592101
+ 3.2633635339277287
+ 3.263752439862726
+ 3.2641414246869611
+ 3.2645304884231998
+ 3.2649196310942199
+ 3.265308852722796
+ 3.2656981533317171
+ 3.2660875329437933
+ 3.2664769915818241
+ 3.2668665292686323
+ 3.2672561460270364
+ 3.2676458418798777
+ 3.2680356168499878
+ 3.2684254709602349
+ 3.2688154042334601
+ 3.2692054166925382
+ 3.2695955083603505
+ 3.269985679259777
+ 3.2703759294137176
+ 3.2707662588450712
+ 3.2711566675767463
+ 3.2715471556316627
+ 3.271937723032758
+ 3.2723283698029575
+ 3.2727190959652144
+ 3.2731099015424787
+ 3.2735007865577144
+ 3.2738917510338994
+ 3.2742827949940074
+ 3.2746739184610303
+ 3.2750651214579625
+ 3.2754564040078136
+ 3.2758477661336025
+ 3.276239207858346
+ 3.2766307292050767
+ 3.2770223301968335
+ 3.2774140108566781
+ 3.2778057712076549
+ 3.2781976112728364
+ 3.2785895310753079
+ 3.2789815306381396
+ 3.2793736099844284
+ 3.2797657691372808
+ 3.2801580081198107
+ 3.2805503269551153
+ 3.2809427256663519
+ 3.281335204276647
+ 3.2817277628091359
+ 3.282120401286988
+ 3.2825131197333559
+ 3.282905918171414
+ 3.2832987966243503
+ 3.2836917551153411
+ 3.2840847936675948
+ 3.2844779123043182
+ 3.284871111048715
+ 3.2852643899240217
+ 3.2856577489534673
+ 3.2860511881602905
+ 3.2864447075677519
+ 3.2868383071990999
+ 3.2872319870776128
+ 3.2876257472265564
+ 3.2880195876692238
+ 3.2884135084289063
+ 3.288807509528914
+ 3.2892015909925543
+ 3.2895957528431494
+ 3.2899899951040297
+ 3.2903843177985275
+ 3.2907787209500032
+ 3.2911732045817996
+ 3.2915677687172886
+ 3.2919624133798489
+ 3.2923571385928505
+ 3.2927519443797024
+ 3.2931468307637966
+ 3.2935417977685288
+ 3.2939368454173401
+ 3.2943319737336485
+ 3.294727182740889
+ 3.2951224724625066
+ 3.2955178429219543
+ 3.2959132941427027
+ 3.2963088261482074
+ 3.2967044389619629
+ 3.2971001326074543
+ 3.2974959071081806
+ 3.2978917624876454
+ 3.2982876987693768
+ 3.2986837159768769
+ 3.2990798141337025
+ 3.2994759932633859
+ 3.2998722533894842
+ 3.3002685945355514
+ 3.3006650167251546
+ 3.3010615199818849
+ 3.3014581043293214
+ 3.3018547697910536
+ 3.3022515163907018
+ 3.3026483441518795
+ 3.3030452530981926
+ 3.3034422432532917
+ 3.3038393146408049
+ 3.3042364672843942
+ 3.3046337012077123
+ 3.3050310164344308
+ 3.3054284129882143
+ 3.3058258908927702
+ 3.3062234501717755
+ 3.3066210908489402
+ 3.3070188129479843
+ 3.3074166164926173
+ 3.3078145015065887
+ 3.3082124680136187
+ 3.3086105160374673
+ 3.3090086456018857
+ 3.3094068567306452
+ 3.3098051494475262
+ 3.3102035237763108
+ 3.3106019797407922
+ 3.311000517364767
+ 3.3113991366720601
+ 3.3117978376864805
+ 3.3121966204318745
+ 3.3125954849320687
+ 3.3129944312109214
+ 3.3133934592922714
+ 3.313792569200011
+ 3.3141917609579972
+ 3.3145910345901215
+ 3.3149903901202769
+ 3.3153898275723659
+ 3.315789346970305
+ 3.3161889483380156
+ 3.3165886316994162
+ 3.3169883970784531
+ 3.3173882444990834
+ 3.3177881739852562
+ 3.3181881855609396
+ 3.3185882792501085
+ 3.3189884550767452
+ 3.3193887130648565
+ 3.3197890532384373
+ 3.3201894756214907
+ 3.3205899802380556
+ 3.3209905671121458
+ 3.3213912362678171
+ 3.3217919877291147
+ 3.3221928215200873
+ 3.3225937376648074
+ 3.3229947361873498
+ 3.3233958171118099
+ 3.3237969804622742
+ 3.3241982262628449
+ 3.3245995545376412
+ 3.3250009653107853
+ 3.3254024586064013
+ 3.3258040344486388
+ 3.326205692861643
+ 3.3266074338695675
+ 3.3270092574965942
+ 3.3274111637668948
+ 3.3278131527046528
+ 3.3282152243340666
+ 3.3286173786793443
+ 3.3290196157647012
+ 3.3294219356143491
+ 3.329824338252541
+ 3.330226823703506
+ 3.33062939199149
+ 3.3310320431407718
+ 3.3314347771755997
+ 3.3318375941202736
+ 3.3322404939990764
+ 3.3326434768362927
+ 3.3330465426562452
+ 3.3334496914832483
+ 3.3338529233416279
+ 3.3342562382557097
+ 3.3346596362498397
+ 3.3350631173483793
+ 3.3354666815756966
+ 3.3358703289561458
+ 3.3362740595141211
+ 3.3366778732740161
+ 3.3370817702602169
+ 3.3374857504971427
+ 3.3378898140092148
+ 3.3382939608208519
+ 3.3386981909565026
+ 3.3391025044406093
+ 3.3395069012976233
+ 3.3399113815520161
+ 3.3403159452282645
+ 3.3407205923508405
+ 3.3411253229442535
+ 3.3415301370330019
+ 3.341935034641589
+ 3.3423400157945449
+ 3.342745080516397
+ 3.3431502288316937
+ 3.3435554607649776
+ 3.3439607763408095
+ 3.3443661755837577
+ 3.3447716585184004
+ 3.3451772251693215
+ 3.3455828755611319
+ 3.3459886097184222
+ 3.3463944276658166
+ 3.3468003294279383
+ 3.3472063150294264
+ 3.3476123844949113
+ 3.3480185378490619
+ 3.3484247751165381
+ 3.3488310963220043
+ 3.3492375014901481
+ 3.349643990645665
+ 3.3500505638132427
+ 3.350457221017606
+ 3.3508639622834724
+ 3.351270787635563
+ 3.351677697098618
+ 3.3520846906973958
+ 3.3524917684566442
+ 3.3528989304011318
+ 3.3533061765556424
+ 3.3537135069449509
+ 3.3541209215938594
+ 3.3545284205271777
+ 3.3549360037697173
+ 3.3553436713462887
+ 3.3557514232817489
+ 3.3561592596009286
+ 3.3565671803286792
+ 3.3569751854898651
+ 3.3573832751093602
+ 3.3577914492120473
+ 3.3581997078228154
+ 3.3586080509665677
+ 3.35901647866821
+ 3.3594249909526632
+ 3.35983358784486
+ 3.3602422693697362
+ 3.3606510355522401
+ 3.3610598864173342
+ 3.3614688219899755
+ 3.3618778422951539
+ 3.3622869473578496
+ 3.3626961372030642
+ 3.3631054118557997
+ 3.3635147713410687
+ 3.3639242156839018
+ 3.3643337449093278
+ 3.3647433590423956
+ 3.3651530581081683
+ 3.3655628421316988
+ 3.365972711138054
+ 3.3663826651523365
+ 3.3667927041996246
+ 3.367202828305027
+ 3.3676130374936499
+ 3.3680233317906216
+ 3.3684337112210678
+ 3.3688441758101315
+ 3.3692547255829659
+ 3.3696653605647326
+ 3.3700760807805947
+ 3.3704868862557382
+ 3.3708977770153523
+ 3.3713087530846342
+ 3.3717198144887988
+ 3.3721309612530512
+ 3.3725421934026349
+ 3.3729535109627786
+ 3.3733649139587305
+ 3.373776402415757
+ 3.3741879763591109
+ 3.3745996358140866
+ 3.375011380805951
+ 3.3754232113600233
+ 3.3758351275015923
+ 3.3762471292559733
+ 3.3766592166485112
+ 3.3770713897045175
+ 3.3774836484493527
+ 3.3778959929083645
+ 3.3783084231069287
+ 3.3787209390704032
+ 3.3791335408241925
+ 3.3795462283936715
+ 3.3799590018042598
+ 3.380371861081362
+ 3.3807848062503991
+ 3.3811978373368143
+ 3.3816109543660446
+ 3.3820241573635519
+ 3.3824374463547859
+ 3.3828508213652206
+ 3.3832642824203543
+ 3.3836778295456549
+ 3.3840914627666465
+ 3.3845051821088332
+ 3.3849189875977381
+ 3.3853328792588977
+ 3.3857468571178404
+ 3.386160921200132
+ 3.3865750715313161
+ 3.3869893081369873
+ 3.387403631042714
+ 3.3878180402740838
+ 3.3882325358567051
+ 3.3886471178161863
+ 3.3890617861781513
+ 3.3894765409682188
+ 3.3898913822120442
+ 3.3903063099352733
+ 3.3907213241635592
+ 3.3911364249225837
+ 3.3915516122380192
+ 3.3919668861355623
+ 3.3923822466409108
+ 3.392797693779769
+ 3.3932132275778675
+ 3.3936288480609305
+ 3.3940445552546921
+ 3.3944603491849121
+ 3.3948762298773469
+ 3.3952921973577692
+ 3.3957082516519508
+ 3.3961243927856914
+ 3.3965406207847866
+ 3.39695693567504
+ 3.3973733374822808
+ 3.3977898262323403
+ 3.3982064019510498
+ 3.398623064664263
+ 3.3990398143978426
+ 3.3994566511776569
+ 3.3998735750295808
+ 3.4002905859795098
+ 3.400707684053343
+ 3.4011248692769933
+ 3.4015421416763756
+ 3.4019595012774206
+ 3.4023769481060682
+ 3.4027944821882752
+ 3.4032121035499983
+ 3.403629812217198
+ 3.4040476082158695
+ 3.404465491571993
+ 3.4048834623115876
+ 3.4053015204606387
+ 3.4057196660451829
+ 3.4061378990912479
+ 3.4065562196248744
+ 3.4069746276721053
+ 3.4073931232590153
+ 3.4078117064116697
+ 3.40823037715615
+ 3.4086491355185475
+ 3.4090679815249691
+ 3.4094869152015148
+ 3.4099059365743156
+ 3.4103250456695071
+ 3.4107442425132199
+ 3.4111635271316225
+ 3.4115828995508659
+ 3.4120023597971296
+ 3.4124219078965807
+ 3.4128415438754387
+ 3.4132612677598861
+ 3.4136810795761434
+ 3.4141009793504336
+ 3.4145209671089898
+ 3.414941042878064
+ 3.4153612066838983
+ 3.4157814585527633
+ 3.4162017985109299
+ 3.4166222265846975
+ 3.4170427428003438
+ 3.4174633471841811
+ 3.4178840397625292
+ 3.418304820561707
+ 3.4187256896080553
+ 3.4191466469279117
+ 3.4195676925476461
+ 3.4199888264936189
+ 3.4204100487922084
+ 3.4208313594698012
+ 3.4212527585527979
+ 3.4216742460675991
+ 3.4220958220406326
+ 3.4225174864983208
+ 3.4229392394671074
+ 3.4233610809734323
+ 3.4237830110437679
+ 3.4242050297045754
+ 3.4246271369823367
+ 3.4250493329035399
+ 3.4254716174946949
+ 3.4258939907823018
+ 3.426316452792888
+ 3.4267390035529819
+ 3.4271616430891392
+ 3.4275843714278849
+ 3.4280071885958043
+ 3.4284300946194732
+ 3.4288530895254512
+ 3.4292761733403605
+ 3.4296993460907865
+ 3.4301226078033484
+ 3.430545958504672
+ 3.4309693982214
+ 3.4313929269801728
+ 3.4318165448076439
+ 3.4322402517304722
+ 3.4326640477753534
+ 3.4330879329689625
+ 3.4335119073380009
+ 3.4339359709091779
+ 3.4343601237092121
+ 3.4347843657648305
+ 3.4352086971027753
+ 3.4356331177497954
+ 3.4360576277326524
+ 3.4364822270781161
+ 3.4369069158129713
+ 3.4373316939639933
+ 3.4377565615580106
+ 3.4381815186218203
+ 3.4386065651822486
+ 3.4390317012661287
+ 3.4394569269003101
+ 3.4398822421116471
+ 3.4403076469269931
+ 3.4407331413732396
+ 3.4411587254772584
+ 3.4415843992659636
+ 3.4420101627662487
+ 3.4424360160050318
+ 3.442861959009246
+ 3.4432879918058337
+ 3.4437141144217396
+ 3.4441403268839195
+ 3.4445666292193566
+ 3.4449930214550197
+ 3.4454195036179103
+ 3.4458460757350169
+ 3.4462727378333691
+ 3.4466994899399794
+ 3.4471263320818863
+ 3.447553264286134
+ 3.447980286579778
+ 3.4484073989898798
+ 3.4488346015435165
+ 3.4492618942677886
+ 3.4496892771897714
+ 3.4501167503365902
+ 3.4505443137353575
+ 3.4509719674132073
+ 3.4513997113972708
+ 3.4518275457147083
+ 3.4522554703926795
+ 3.4526834854583499
+ 3.4531115909389016
+ 3.4535397868615418
+ 3.4539680732534608
+ 3.4543964501418842
+ 3.4548249175540318
+ 3.4552534755171362
+ 3.4556821240584434
+ 3.4561108632052213
+ 3.4565396929847259
+ 3.4569686134242437
+ 3.4573976245510663
+ 3.4578267263924913
+ 3.4582559189758229
+ 3.4586852023283892
+ 3.4591145764775248
+ 3.4595440414505751
+ 3.4599735972748786
+ 3.4604032439778174
+ 3.4608329815867664
+ 3.4612628101290932
+ 3.4616927296322144
+ 3.462122740123533
+ 3.4625528416304592
+ 3.4629830341804224
+ 3.4634133178008746
+ 3.4638436925192653
+ 3.4642741583630396
+ 3.4647047153596833
+ 3.4651353635366897
+ 3.465566102921529
+ 3.4659969335417218
+ 3.4664278554247803
+ 3.4668588685982353
+ 3.4672899730896094
+ 3.4677211689264698
+ 3.4681524561363584
+ 3.4685838347468612
+ 3.4690153047855445
+ 3.4694468662800086
+ 3.4698785192578492
+ 3.4703102637466876
+ 3.4707420997741405
+ 3.4711740273678484
+ 3.4716060465554572
+ 3.4720381573646182
+ 3.4724703598230016
+ 3.4729026539582821
+ 3.4733350397981604
+ 3.4737675173703306
+ 3.4742000867025005
+ 3.4746327478223966
+ 3.4750655007577458
+ 3.4754983455363013
+ 3.4759312821858117
+ 3.4763643107340476
+ 3.4767974312087833
+ 3.477230643637804
+ 3.4776639480489107
+ 3.4780973444699108
+ 3.4785308329286355
+ 3.478964413452899
+ 3.4793980860705562
+ 3.4798318508094566
+ 3.4802657076974639
+ 3.4806996567624582
+ 3.4811336980323304
+ 3.4815678315349579
+ 3.4820020572982706
+ 3.4824363753501775
+ 3.482870785718613
+ 3.4833052884315179
+ 3.4837398835168432
+ 3.4841745710025513
+ 3.4846093509166272
+ 3.4850442232870376
+ 3.4854791881418028
+ 3.4859142455089072
+ 3.4863493954163909
+ 3.4867846378922693
+ 3.4872199729645912
+ 3.4876554006614033
+ 3.4880909210107687
+ 3.4885265340407643
+ 3.4889622397794859
+ 3.4893980382550116
+ 3.4898339294954548
+ 3.4902699135289463
+ 3.4907059903835953
+ 3.4911421600875663
+ 3.4915784226689892
+ 3.4920147781560438
+ 3.4924512265768852
+ 3.4928877679597208
+ 3.4933244023327403
+ 3.4937611297241489
+ 3.4941979501621638
+ 3.4946348636750204
+ 3.4950718702909516
+ 3.4955089700382223
+ 3.4959461629450828
+ 3.4963834490398211
+ 3.4968208283507103
+ 3.4972583009060547
+ 3.4976958667341695
+ 3.4981335258633606
+ 3.4985712783219634
+ 3.4990091241383285
+ 3.499447063340801
+ 3.4998850959577439
+ 3.5003232220175393
+ 3.5007614415485713
+ 3.501199754579233
+ 3.501638161137945
+ 3.5020766612531218
+ 3.5025152549531935
+ 3.5029539422666085
+ 3.5033927232218218
+ 3.5038315978472854
+ 3.504270566171495
+ 3.5047096282229342
+ 3.5051487840300943
+ 3.5055880336214975
+ 3.5060273770256547
+ 3.5064668142711111
+ 3.5069063453864087
+ 3.5073459704000989
+ 3.5077856893407424
+ 3.5082255022369417
+ 3.50866540911727
+ 3.5091054100103332
+ 3.5095455049447404
+ 3.5099856939491176
+ 3.5104259770521105
+ 3.5108663542823524
+ 3.5113068256685041
+ 3.5117473912392434
+ 3.5121880510232462
+ 3.5126288050492018
+ 3.513069653345831
+ 3.513510595941828
+ 3.5139516328659255
+ 3.5143927641468706
+ 3.5148339898134049
+ 3.5152753098942977
+ 3.5157167244183136
+ 3.5161582334142292
+ 3.5165998369108618
+ 3.5170415349370052
+ 3.5174833275214752
+ 3.5179252146931068
+ 3.5183671964807348
+ 3.5188092729132285
+ 3.5192514440194329
+ 3.5196937098282262
+ 3.520136070368503
+ 3.5205785256691677
+ 3.5210210757591147
+ 3.5214637206672785
+ 3.5219064604225876
+ 3.5223492950539943
+ 3.5227922245904324
+ 3.5232352490608974
+ 3.5236783684943558
+ 3.5241215829197912
+ 3.5245648923662172
+ 3.5250082968626435
+ 3.5254517964380958
+ 3.5258953911216113
+ 3.526339080942241
+ 3.526782865929043
+ 3.5272267461110896
+ 3.527670721517461
+ 3.528114792177254
+ 3.5285589581195773
+ 3.5290032193735539
+ 3.5294475759683039
+ 3.5298920279329677
+ 3.530336575296706
+ 3.5307812180886851
+ 3.531225956338071
+ 3.5316707900740583
+ 3.532115719325847
+ 3.5325607441226525
+ 3.5330058644936835
+ 3.5334510804681862
+ 3.5338963920754027
+ 3.5343417993445905
+ 3.534787302305022
+ 3.5352329009859744
+ 3.5356785954167522
+ 3.5361243856266409
+ 3.5365702716449725
+ 3.5370162535010632
+ 3.537462331224265
+ 3.5379085048439194
+ 3.5383547743893931
+ 3.5388011398900625
+ 3.5392476013753131
+ 3.5396941588745467
+ 3.5401408124171612
+ 3.5405875620325906
+ 3.5410344077502685
+ 3.5414813495996351
+ 3.5419283876101453
+ 3.5423755218112687
+ 3.5428227522325018
+ 3.5432700789033178
+ 3.5437175018532234
+ 3.544165021111743
+ 3.5446126367084005
+ 3.5450603486727266
+ 3.5455081570342917
+ 3.5459560618226433
+ 3.5464040630673725
+ 3.5468521607980459
+ 3.5473003550442774
+ 3.547748645835668
+ 3.5481970332018511
+ 3.5486455171724507
+ 3.5490940977771106
+ 3.5495427750455053
+ 3.5499915490072964
+ 3.5504404196921606
+ 3.5508893871297893
+ 3.5513384513499013
+ 3.5517876123822059
+ 3.5522368702564351
+ 3.5526862250023332
+ 3.553135676649644
+ 3.5535852252281424
+ 3.5540348707675897
+ 3.5544846132977956
+ 3.5549344528485469
+ 3.5553843894496731
+ 3.5558344231309795
+ 3.5562845539223087
+ 3.5567347818535087
+ 3.5571851069544556
+ 3.557635529255001
+ 3.5580860487850394
+ 3.5585366655744681
+ 3.5589873796531903
+ 3.5594381910511323
+ 3.559889099798236
+ 3.5603401059244195
+ 3.5607912094596617
+ 3.5612424104339295
+ 3.5616937088771983
+ 3.5621451048194559
+ 3.5625965982907193
+ 3.5630481893209986
+ 3.5634998779403229
+ 3.563951664178731
+ 3.564403548066287
+ 3.5648555296330389
+ 3.5653076089090772
+ 3.5657597859244845
+ 3.5662120607093692
+ 3.5666644332938358
+ 3.5671169037080173
+ 3.5675694719820528
+ 3.5680221381460786
+ 3.5684749022302711
+ 3.5689277642648021
+ 3.5693807242798492
+ 3.5698337823056239
+ 3.5702869383723215
+ 3.57074019251018
+ 3.5711935447494141
+ 3.5716469951202945
+ 3.5721005436530748
+ 3.572554190378014
+ 3.5730079353253932
+ 3.5734617785255329
+ 3.5739157200087104
+ 3.574369759805275
+ 3.5748238979455316
+ 3.5752781344598494
+ 3.5757324693785626
+ 3.5761869027320539
+ 3.5766414345507016
+ 3.5770960648648984
+ 3.5775507937050532
+ 3.5780056211015707
+ 3.5784605470849034
+ 3.5789155716854797
+ 3.5793706949337536
+ 3.57982591686019
+ 3.580281237495281
+ 3.5807366568695018
+ 3.5811921750133755
+ 3.5816477919573986
+ 3.5821035077321022
+ 3.5825593223680388
+ 3.5830152358957523
+ 3.583471248345814
+ 3.5839273597487975
+ 3.5843835701352864
+ 3.584839879535898
+ 3.5852962879812353
+ 3.5857527955019242
+ 3.5862094021286124
+ 3.5866661078919497
+ 3.5871229128225908
+ 3.5875798169512305
+ 3.5880368203085364
+ 3.5884939229252244
+ 3.5889511248320045
+ 3.5894084260595966
+ 3.5898658266387522
+ 3.5903233266002084
+ 3.5907809259747339
+ 3.5912386247931116
+ 3.5916964230861157
+ 3.5921543208845508
+ 3.5926123182192375
+ 3.5930704151210007
+ 3.5935286116206724
+ 3.593986907749092
+ 3.5944453035371504
+ 3.5949037990156998
+ 3.5953623942156376
+ 3.5958210891678601
+ 3.5962798839032866
+ 3.59673877845283
+ 3.5971977728474478
+ 3.5976568671180678
+ 3.5981160612956695
+ 3.5985753554112212
+ 3.599034749495702
+ 3.599494243580132
+ 3.5999538376955122
+ 3.6004135318728663
+ 3.6008733261432369
+ 3.6013332205376742
+ 3.6017932150872412
+ 3.6022533098230136
+ 3.6027135047760752
+ 3.6031737999775344
+ 3.6036341954585001
+ 3.6040946912501028
+ 3.6045552873834725
+ 3.6050159838897686
+ 3.6054767808001502
+ 3.6059376781457964
+ 3.6063986759578972
+ 3.6068597742676567
+ 3.6073209731062739
+ 3.6077822725049975
+ 3.6082436724950595
+ 3.6087051731077069
+ 3.6091667743742133
+ 3.6096284763258439
+ 3.6100902789939044
+ 3.6105521824096805
+ 3.6110141866045029
+ 3.6114762916097001
+ 3.6119384974566051
+ 3.6124008041765796
+ 3.6128632118009771
+ 3.6133257203611913
+ 3.6137883298886115
+ 3.6142510404146373
+ 3.6147138519706927
+ 3.6151767645881971
+ 3.6156397782986072
+ 3.6161028931333687
+ 3.6165661091239536
+ 3.6170294263018521
+ 3.6174928446985475
+ 3.6179563643455439
+ 3.6184199852743784
+ 3.6188837075165616
+ 3.619347531103656
+ 3.6198114560672114
+ 3.6202754824388101
+ 3.6207396102500149
+ 3.6212038395324417
+ 3.6216681703176925
+ 3.6221326026373899
+ 3.6225971365231668
+ 3.6230617720066807
+ 3.6235265091195878
+ 3.6239913478935573
+ 3.6244562883602751
+ 3.624921330551456
+ 3.6253864744987894
+ 3.6258517202340195
+ 3.6263170677888827
+ 3.6267825171951191
+ 3.6272480684845028
+ 3.6277137216888082
+ 3.628179476839827
+ 3.6286453339693603
+ 3.6291112931092218
+ 3.6295773542912495
+ 3.6300435175472678
+ 3.6305097829091522
+ 3.630976150408761
+ 3.6314426200779724
+ 3.6319091919486803
+ 3.6323758660527963
+ 3.6328426424222409
+ 3.633309521088941
+ 3.633776502084844
+ 3.6342435854419155
+ 3.6347107711921134
+ 3.6351780593674419
+ 3.6356454499998829
+ 3.6361129431214523
+ 3.6365805387641679
+ 3.6370482369600881
+ 3.6375160377412348
+ 3.637983941139693
+ 3.638451947187535
+ 3.6389200559168393
+ 3.6393882673597133
+ 3.639856581548282
+ 3.6403249985146653
+ 3.6407935182910007
+ 3.6412621409094545
+ 3.6417308664021872
+ 3.6421996948013788
+ 3.6426686261392303
+ 3.6431376604479442
+ 3.6436067977597455
+ 3.6440760381068595
+ 3.6445453815215401
+ 3.6450148280360515
+ 3.6454843776826524
+ 3.6459540304936433
+ 3.6464237865013174
+ 3.6468936457379901
+ 3.6473636082359837
+ 3.6478336740276425
+ 3.6483038431453148
+ 3.6487741156213707
+ 3.6492444914881852
+ 3.6497149707781493
+ 3.6501855535236682
+ 3.6506562397571707
+ 3.6511270295110796
+ 3.651597922817845
+ 3.6520689197099188
+ 3.65254002021977
+ 3.6530112243798993
+ 3.6534825322227866
+ 3.6539539437809601
+ 3.6544254590869376
+ 3.6548970781732475
+ 3.655368801072457
+ 3.6558406278171236
+ 3.6563125584398257
+ 3.6567845929731622
+ 3.657256731449722
+ 3.6577289739021404
+ 3.6582013203630352
+ 3.6586737708650654
+ 3.6591463254408754
+ 3.6596189841231461
+ 3.6600917469445551
+ 3.6605646139378099
+ 3.6610375851356238
+ 3.6615106605707064
+ 3.6619838402758127
+ 3.6624571242836801
+ 3.6629305126270877
+ 3.6634040053388168
+ 3.6638776024516431
+ 3.6643513039983868
+ 3.6648251100118578
+ 3.6652990205249001
+ 3.6657730355703473
+ 3.6662471551810656
+ 3.66672137938993
+ 3.6671957082298201
+ 3.6676701417336468
+ 3.6681446799343109
+ 3.6686193228647554
+ 3.6690940705579109
+ 3.6695689230467377
+ 3.6700438803641933
+ 3.670518942543266
+ 3.6709941096169509
+ 3.6714693816182598
+ 3.6719447585801985
+ 3.6724202405358266
+ 3.6728958275181767
+ 3.6733715195603129
+ 3.6738473166953169
+ 3.6743232189562742
+ 3.6747992263762903
+ 3.6752753389884849
+ 3.675751556825984
+ 3.6762278799219335
+ 3.6767043083094939
+ 3.677180842021837
+ 3.6776574810921394
+ 3.6781342255536047
+ 3.6786110754394588
+ 3.6790880307829066
+ 3.679565091617198
+ 3.6800422579755918
+ 3.6805195298913467
+ 3.6809969073977378
+ 3.6814743905280749
+ 3.6819519793156621
+ 3.6824296737938145
+ 3.6829074739958756
+ 3.6833853799551934
+ 3.6838633917051209
+ 3.6843415092790543
+ 3.6848197327103676
+ 3.6852980620324711
+ 3.6857764972787783
+ 3.6862550384827357
+ 3.6867336856777739
+ 3.6872124388973493
+ 3.6876912981749541
+ 3.6881702635440643
+ 3.6886493350381824
+ 3.6891285126908144
+ 3.6896077965355007
+ 3.6900871866057847
+ 3.6905666829352026
+ 3.6910462855573547
+ 3.6915259945058039
+ 3.6920058098141499
+ 3.6924857315160104
+ 3.6929657596450003
+ 3.6934458942347792
+ 3.6939261353189803
+ 3.6944064829312788
+ 3.694886937105347
+ 3.6953674978748969
+ 3.6958481652736284
+ 3.6963289393352627
+ 3.6968098200935389
+ 3.6972908075821951
+ 3.6977719018350159
+ 3.698253102885765
+ 3.6987344107682474
+ 3.6992158255162586
+ 3.699697347163617
+ 3.7001789757441679
+ 3.7006607112917593
+ 3.7011425538402407
+ 3.7016245034235005
+ 3.7021065600754204
+ 3.7025887238299062
+ 3.7030709947208869
+ 3.7035533727822787
+ 3.704035858048035
+ 3.7045184505521158
+ 3.7050011503284948
+ 3.705483957411166
+ 3.7059668718341312
+ 3.706449893631397
+ 3.7069330228370037
+ 3.7074162594849893
+ 3.7078996036094183
+ 3.708383055244358
+ 3.7088666144239029
+ 3.709350281182147
+ 3.7098340555532014
+ 3.710317937571213
+ 3.7108019272703081
+ 3.7112860246846564
+ 3.7117702298484163
+ 3.7122545427957911
+ 3.7127389635609589
+ 3.7132234921781522
+ 3.7137081286815894
+ 3.7141928731055178
+ 3.7146777254841985
+ 3.7151626858518929
+ 3.7156477542428932
+ 3.7161329306914856
+ 3.7166182152320051
+ 3.7171036078987605
+ 3.7175891087261048
+ 3.7180747177483942
+ 3.7185604349999899
+ 3.7190462605152903
+ 3.7195321943286763
+ 3.7200182364745804
+ 3.7205043869874186
+ 3.7209906459016326
+ 3.7214770132516866
+ 3.7219634890720421
+ 3.722450073397193
+ 3.7229367662616339
+ 3.723423567699867
+ 3.723910477746442
+ 3.7243974964358806
+ 3.72488462380276
+ 3.7253718598816237
+ 3.7258592047070818
+ 3.726346658313727
+ 3.7268342207361611
+ 3.727321892009027
+ 3.7278096721669538
+ 3.728297561244613
+ 3.7287855592766599
+ 3.7292736662978023
+ 3.729761882342725
+ 3.7302502074461432
+ 3.7307386416427879
+ 3.7312271849674019
+ 3.7317158374547423
+ 3.7322045991395916
+ 3.7326934700567187
+ 3.7331824502409368
+ 3.733671539727069
+ 3.7341607385499334
+ 3.7346500467443708
+ 3.7351394643452513
+ 3.7356289913874359
+ 3.7361186279058378
+ 3.736608373935328
+ 3.737098229510849
+ 3.7375881946673166
+ 3.7380782694396846
+ 3.73856845386292
+ 3.7390587479719901
+ 3.7395491518018793
+ 3.7400396653875965
+ 3.7405302887641767
+ 3.7410210219666347
+ 3.7415118650300165
+ 3.7420028179894063
+ 3.7424938808798616
+ 3.742985053736485
+ 3.7434763365943815
+ 3.743967729488674
+ 3.7444592324544868
+ 3.7449508455269847
+ 3.7454425687413297
+ 3.7459344021327059
+ 3.7464263457362934
+ 3.7469183995873165
+ 3.7474105637209925
+ 3.747902838172561
+ 3.7483952229772872
+ 3.748887718170415
+ 3.7493803237872454
+ 3.7498730398630764
+ 3.7503658664332127
+ 3.7508588035329775
+ 3.7513518511977315
+ 3.7518450094628095
+ 3.7523382783636015
+ 3.7528316579354768
+ 3.7533251482138517
+ 3.7538187492341351
+ 3.7543124610317582
+ 3.7548062836421616
+ 3.7553002171008139
+ 3.7557942614431776
+ 3.7562884167047637
+ 3.7567826829210569
+ 3.757277060127576
+ 3.757771548359881
+ 3.758266147653492
+ 3.7587608580439782
+ 3.7592556795669361
+ 3.7597506122579354
+ 3.7602456561526032
+ 3.7607408112865648
+ 3.761236077695445
+ 3.7617314554149033
+ 3.7622269444806107
+ 3.7627225449282458
+ 3.7632182567935066
+ 3.7637140801121114
+ 3.7642100149197817
+ 3.7647060612522716
+ 3.7652022191453183
+ 3.7656984886347207
+ 3.7661948697562417
+ 3.7666913625457115
+ 3.7671879670389212
+ 3.7676846832717188
+ 3.7681815112799488
+ 3.7686784510994671
+ 3.7691755027661693
+ 3.7696726663159321
+ 3.7701699417846624
+ 3.7706673292082971
+ 3.7711648286227719
+ 3.7716624400640293
+ 3.7721601635680382
+ 3.7726579991707934
+ 3.7731559469082878
+ 3.7736540068165247
+ 3.7741521789315522
+ 3.7746504632894005
+ 3.7751488599261318
+ 3.7756473688778258
+ 3.7761459901805572
+ 3.7766447238704348
+ 3.7771435699835942
+ 3.777642528556151
+ 3.778141599624266
+ 3.7786407832240947
+ 3.7791400793918246
+ 3.7796394881636539
+ 3.7801390095757745
+ 3.7806386436644339
+ 3.7811383904658622
+ 3.781638250016325
+ 3.782138222352077
+ 3.7826383075094152
+ 3.7831385055246467
+ 3.7836388164340793
+ 3.784139240274043
+ 3.7846397770808919
+ 3.7851404268909898
+ 3.7856411897407169
+ 3.7861420656664575
+ 3.7866430547046197
+ 3.7871441568916424
+ 3.787645372263952
+ 3.7881467008580043
+ 3.7886481427102732
+ 3.7891496978572441
+ 3.7896513663354172
+ 3.7901531481813038
+ 3.7906550434314443
+ 3.7911570521223692
+ 3.791659174290662
+ 3.7921614099728811
+ 3.7926637592056345
+ 3.793166222025528
+ 3.7936687984691706
+ 3.7941714885732285
+ 3.7946742923743284
+ 3.7951772099091556
+ 3.7956802412143946
+ 3.7961833863267418
+ 3.7966866452829215
+ 3.7971900181196521
+ 3.7976935048736924
+ 3.7981971055818002
+ 3.7987008202807608
+ 3.7992046490073581
+ 3.799708591798415
+ 3.8002126486907355
+ 3.8007168197211776
+ 3.8012211049265914
+ 3.80172550434385
+ 3.8022300180098392
+ 3.8027346459614595
+ 3.803239388235629
+ 3.8037442448692862
+ 3.8042492158993779
+ 3.8047543013628711
+ 3.8052595012967383
+ 3.8057648157379891
+ 3.8062702447236156
+ 3.8067757882906665
+ 3.8072814464761793
+ 3.8077872193171975
+ 3.8082931068508117
+ 3.8087991091141018
+ 3.8093052261441871
+ 3.8098114579781774
+ 3.8103178046532062
+ 3.8108242662064327
+ 3.8113308426750323
+ 3.8118375340961692
+ 3.8123443405070621
+ 3.8128512619449215
+ 3.8133582984469765
+ 3.8138654500504718
+ 3.8143727167926724
+ 3.8148800987108551
+ 3.8153875958423211
+ 3.8158952082243691
+ 3.8164029358943385
+ 3.8169107788895538
+ 3.81741873724738
+ 3.8179268110052011
+ 3.8184350002003935
+ 3.8189433048703689
+ 3.8194517250525428
+ 3.8199602607843475
+ 3.8204689121032422
+ 3.8209776790466958
+ 3.8214865616521831
+ 3.8219955599572213
+ 3.8225046739993092
+ 3.8230139038159896
+ 3.8235232494448046
+ 3.8240327109233054
+ 3.8245422882891011
+ 3.8250519815797626
+ 3.8255617908329054
+ 3.8260717160861697
+ 3.8265817573771828
+ 3.8270919147436091
+ 3.8276021882231337
+ 3.8281125778534246
+ 3.8286230836722162
+ 3.8291337057172048
+ 3.8296444440261501
+ 3.8301552986367908
+ 3.8306662695869202
+ 3.831177356914294
+ 3.831688560656739
+ 3.8321998808520772
+ 3.8327113175381187
+ 3.8332228707527336
+ 3.8337345405337881
+ 3.8342463269191631
+ 3.8347582299467589
+ 3.8352702496544815
+ 3.8357823860802802
+ 3.8362946392620856
+ 3.8368070092378739
+ 3.8373194960456178
+ 3.837832099723316
+ 3.8383448203089712
+ 3.838857657840637
+ 3.8393706123563276
+ 3.8398836838941177
+ 3.8403968724920885
+ 3.8409101781883224
+ 3.8414236010209404
+ 3.8419371410280578
+ 3.8424507982478207
+ 3.8429645727183934
+ 3.8434784644779367
+ 3.8439924735646467
+ 3.8445066000167278
+ 3.8450208438724074
+ 3.845535205169921
+ 3.8460496839475282
+ 3.8465642802434932
+ 3.8470789940961114
+ 3.8475938255436808
+ 3.8481087746245168
+ 3.8486238413769782
+ 3.8491390258393974
+ 3.8496543280501498
+ 3.8501697480476178
+ 3.8506852858702079
+ 3.8512009415563448
+ 3.8517167151444434
+ 3.852232606672982
+ 3.8527486161804023
+ 3.8532647437052021
+ 3.8537809892858754
+ 3.8542973529609523
+ 3.8548138347689407
+ 3.8553304347484234
+ 3.8558471529379417
+ 3.8563639893760797
+ 3.85688094410144
+ 3.8573980171526441
+ 3.8579152085683108
+ 3.8584325183871071
+ 3.8589499466476793
+ 3.8594674933887263
+ 3.8599851586489269
+ 3.8605029424670114
+ 3.8610208448817027
+ 3.8615388659317493
+ 3.8620570056559096
+ 3.8625752640929729
+ 3.8630936412817332
+ 3.8636121372609988
+ 3.8641307520696082
+ 3.8646494857464035
+ 3.8651683383302418
+ 3.8656873098600202
+ 3.8662064003746219
+ 3.8667256099129617
+ 3.8672449385139607
+ 3.8677643862165829
+ 3.8682839530597861
+ 3.86880363908254
+ 3.8693234443238516
+ 3.8698433688227269
+ 3.8703634126182016
+ 3.8708835757493141
+ 3.8714038582551353
+ 3.8719242601747372
+ 3.8724447815472303
+ 3.8729654224117125
+ 3.8734861828073206
+ 3.8740070627731966
+ 3.8745280623485061
+ 3.8750491815724319
+ 3.8755704204841712
+ 3.8760917791229339
+ 3.8766132575279504
+ 3.8771348557384697
+ 3.8776565737937538
+ 3.8781784117330971
+ 3.8787003695957747
+ 3.8792224474211081
+ 3.8797446452484392
+ 3.8802669631171045
+ 3.8807894010664725
+ 3.881311959135938
+ 3.8818346373648782
+ 3.8823574357927151
+ 3.8828803544588903
+ 3.8834033934028489
+ 3.8839265526640512
+ 3.8844498322819874
+ 3.884973232296157
+ 3.8854967527460724
+ 3.8860203936712736
+ 3.8865441551113027
+ 3.8870680371057298
+ 3.887592039694153
+ 3.8881161629161642
+ 3.8886404068113793
+ 3.8891647714194439
+ 3.8896892567799966
+ 3.8902138629327148
+ 3.8907385899172886
+ 3.8912634377734201
+ 3.8917884065408224
+ 3.892313496259256
+ 3.8928387069684489
+ 3.8933640387081869
+ 3.8938894915182569
+ 3.8944150654384675
+ 3.8949407605086432
+ 3.895466576768623
+ 3.895992514258261
+ 3.8965185730174303
+ 3.8970447530860302
+ 3.8975710545039695
+ 3.8980974773111656
+ 3.8986240215475765
+ 3.8991506872531461
+ 3.8996774744678606
+ 3.9002043832317179
+ 3.9007314135847229
+ 3.901258565566911
+ 3.901785839218324
+ 3.9023132345790348
+ 3.9028407516891135
+ 3.9033683905886676
+ 3.9038961513177992
+ 3.9044240339166492
+ 3.904952038425376
+ 3.9054801648841408
+ 3.906008413333117
+ 3.9065367838125162
+ 3.9070652763625637
+ 3.9075938910234846
+ 3.9081226278355397
+ 3.9086514868390059
+ 3.9091804680741582
+ 3.9097095715813004
+ 3.910238797400774
+ 3.9107681455729075
+ 3.9112976161380653
+ 3.911827209136614
+ 3.9123569246089516
+ 3.9128867625954826
+ 3.9134167231366499
+ 3.9139468062728833
+ 3.9144770120446446
+ 3.9150073404924313
+ 3.9155377916567256
+ 3.9160683655780399
+ 3.9165990622969176
+ 3.9171298818539064
+ 3.9176608242895679
+ 3.9181918896444938
+ 3.9187230779592785
+ 3.9192543892745459
+ 3.9197858236309377
+ 3.9203173810690992
+ 3.9208490616297174
+ 3.9213808653534667
+ 3.9219127922810588
+ 3.9224448424532259
+ 3.9229770159107078
+ 3.9235093126942679
+ 3.9240417328446733
+ 3.9245742764027201
+ 3.92510694340924
+ 3.925639733905042
+ 3.9261726479309891
+ 3.9267056855279492
+ 3.9272388467367989
+ 3.9277721315984344
+ 3.9283055401537856
+ 3.9288390724437816
+ 3.9293727285093842
+ 3.9299065083915585
+ 3.9304404121313015
+ 3.930974439769614
+ 3.9315085913475292
+ 3.932042866906083
+ 3.9325772664863359
+ 3.9331117901293777
+ 3.9336464378762965
+ 3.9341812097682127
+ 3.934716105846241
+ 3.9352511261515541
+ 3.9357862707253126
+ 3.9363215396086932
+ 3.9368569328429039
+ 3.9373924504691704
+ 3.9379280925287219
+ 3.9384638590628307
+ 3.9389997501127652
+ 3.9395357657198118
+ 3.9400719059252829
+ 3.9406081707705209
+ 3.9411445602968538
+ 3.9416810745456519
+ 3.9422177135583034
+ 3.9427544773761949
+ 3.9432913660407669
+ 3.9438283795934388
+ 3.9443655180756649
+ 3.9449027815289202
+ 3.9454401699947002
+ 3.9459776835145095
+ 3.9465153221298661
+ 3.947053085882327
+ 3.9475909748134459
+ 3.9481289889648106
+ 3.9486671283780108
+ 3.9492053930946684
+ 3.9497437831564093
+ 3.9502822986049035
+ 3.9508209394818028
+ 3.9513597058288061
+ 3.9518985976876131
+ 3.9524376150999654
+ 3.9529767581075812
+ 3.9535160267522387
+ 3.9540554210757115
+ 3.9545949411198045
+ 3.9551345869263206
+ 3.9556743585370966
+ 3.9562142559939932
+ 3.9567542793388757
+ 3.9572944286136318
+ 3.9578347038601662
+ 3.9583751051203948
+ 3.9589156324362897
+ 3.9594562858497815
+ 3.9599970654028724
+ 3.9605379711375441
+ 3.9610790030958163
+ 3.9616201613197348
+ 3.9621614458513315
+ 3.9627028567326974
+ 3.9632443940059052
+ 3.9637860577130781
+ 3.9643278478963317
+ 3.9648697645978102
+ 3.9654118078596787
+ 3.9659539777241184
+ 3.9664962742333274
+ 3.9670386974295244
+ 3.9675812473549481
+ 3.9681239240518447
+ 3.9686667275624985
+ 3.9692096579291869
+ 3.9697527151942364
+ 3.9702958993999622
+ 3.9708392105887209
+ 3.9713826488028587
+ 3.9719262140847831
+ 3.9724699064768876
+ 3.973013726021581
+ 3.9735576727613164
+ 3.9741017467385475
+ 3.9746459479957417
+ 3.9751902765754115
+ 3.975734732520054
+ 3.9762793158722105
+ 3.9768240266744228
+ 3.9773688649692684
+ 3.9779138307993289
+ 3.9784589242072212
+ 3.9790041452355451
+ 3.9795494939269682
+ 3.9800949703241426
+ 3.9806405744697497
+ 3.9811863064064923
+ 3.9817321661770828
+ 3.9822781538242573
+ 3.9828242693907696
+ 3.9833705129194019
+ 3.9839168844529449
+ 3.9844633840342052
+ 3.9850100117060014
+ 3.9855567675112082
+ 3.9861036514926784
+ 3.9866506636932963
+ 3.9871978041559681
+ 3.9877450729236119
+ 3.9882924700391933
+ 3.9888399955456464
+ 3.9893876494859613
+ 3.9899354319031359
+ 3.9904833428401933
+ 3.9910313823401622
+ 3.9915795504461076
+ 3.9921278472010933
+ 3.9926762726482123
+ 3.9932248268305841
+ 3.9937735097913252
+ 3.9943223215736046
+ 3.9948712622205771
+ 3.9954203317754402
+ 3.9959695302813936
+ 3.9965188577816608
+ 3.9970683143194892
+ 3.9976178999381409
+ 3.9981676146808951
+ 3.9987174585910576
+ 3.9992674317119437
+ 3.9998175340869073
+ 4.000367765759278
+ 4.0009181267724552
+ 4.0014686171698282
+ 4.002019236994812
+ 4.0025699862908359
+ 4.0031208651013674
+ 4.0036718734698633
+ 4.004223011439823
+ 4.0047742790547494
+ 4.0053256763581881
+ 4.0058772033936654
+ 4.0064288602047684
+ 4.0069806468350739
+ 4.0075325633281755
+ 4.0080846097277316
+ 4.0086367860773571
+ 4.0091890924207227
+ 4.0097415288015119
+ 4.0102940952634363
+ 4.0108467918502058
+ 4.0113996186055552
+ 4.011952575573261
+ 4.0125056627970901
+ 4.0130588803208349
+ 4.0136122281883253
+ 4.0141657064433973
+ 4.0147193151298985
+ 4.0152730542916979
+ 4.0158269239727078
+ 4.0163809242168291
+ 4.016935055067993
+ 4.0174893165701633
+ 4.0180437087673022
+ 4.0185982317034004
+ 4.0191528854224687
+ 4.0197076699685379
+ 4.0202625853856615
+ 4.0208176317178985
+ 4.0213728090093417
+ 4.0219281173040988
+ 4.0224835566462938
+ 4.0230391270800725
+ 4.0235948286495962
+ 4.0241506613990667
+ 4.024706625372664
+ 4.0252627206146299
+ 4.0258189471692027
+ 4.0263753050806352
+ 4.0269317943932341
+ 4.0274884151512689
+ 4.0280451673990889
+ 4.028602051181009
+ 4.029159066541415
+ 4.0297162135246642
+ 4.0302734921751755
+ 4.0308309025373541
+ 4.0313884446556436
+ 4.0319461185745133
+ 4.0325039243384202
+ 4.0330618619918752
+ 4.0336199315793912
+ 4.0341781331454998
+ 4.0347364667347625
+ 4.0352949323917597
+ 4.0358535301610852
+ 4.0364122600873458
+ 4.0369711222151778
+ 4.0375301165892452
+ 4.0380892432542259
+ 4.0386485022547882
+ 4.0392078936356812
+ 4.0397674174416114
+ 4.0403270737173393
+ 4.0408868625076408
+ 4.0414467838573209
+ 4.0420068378111642
+ 4.0425670244140308
+ 4.043127343710748
+ 4.0436877957462114
+ 4.0442483805653016
+ 4.0448090982129274
+ 4.0453699487340247
+ 4.0459309321735493
+ 4.0464920485764697
+ 4.0470532979877687
+ 4.0476146804524671
+ 4.0481761960155973
+ 4.0487378447222122
+ 4.0492996266173682
+ 4.0498615417461608
+ 4.0504235901537102
+ 4.0509857718851459
+ 4.0515480869856217
+ 4.0521105355002938
+ 4.0526731174743604
+ 4.0532358329530354
+ 4.0537986819815535
+ 4.0543616646051479
+ 4.054924780869106
+ 4.0554880308187187
+ 4.0560514144992927
+ 4.0566149319561573
+ 4.0571785832346654
+ 4.0577423683801932
+ 4.0583062874381257
+ 4.0588703404538657
+ 4.0594345274728703
+ 4.0599988485405678
+ 4.0605633037024402
+ 4.0611278930039738
+ 4.0616926164906921
+ 4.0622574742081206
+ 4.0628224662018138
+ 4.0633875925173379
+ 4.063952853200294
+ 4.0645182482962943
+ 4.0650837778509628
+ 4.0656494419099678
+ 4.0662152405189742
+ 4.0667811737236859
+ 4.0673472415698075
+ 4.0679134441030866
+ 4.0684797813692537
+ 4.0690462534141103
+ 4.0696128602834349
+ 4.0701796020230612
+ 4.070746478678811
+ 4.0713134902965438
+ 4.0718806369221392
+ 4.072447918601501
+ 4.0730153353805392
+ 4.0735828873051885
+ 4.0741505744214184
+ 4.074718396775209
+ 4.0752863544125519
+ 4.0758544473794744
+ 4.0764226757220046
+ 4.0769910394862192
+ 4.0775595387181935
+ 4.0781281734640258
+ 4.0786969437698524
+ 4.0792658496817999
+ 4.0798348912460458
+ 4.0804040685087548
+ 4.0809733815161522
+ 4.0815428303144659
+ 4.0821124149499211
+ 4.0826821354688008
+ 4.0832519919173906
+ 4.0838219843419887
+ 4.084392112788934
+ 4.0849623773045778
+ 4.0855327779352697
+ 4.0861033147274322
+ 4.0866739877274494
+ 4.0872447969817625
+ 4.0878157425368222
+ 4.0883868244391079
+ 4.0889580427351095
+ 4.0895293974713391
+ 4.0901008886943337
+ 4.0906725164506597
+ 4.0912442807868734
+ 4.0918161817495919
+ 4.092388219385418
+ 4.0929603937410031
+ 4.0935327048630024
+ 4.0941051527980905
+ 4.0946777375929839
+ 4.0952504592943999
+ 4.0958233179490655
+ 4.0963963136037727
+ 4.096969446305291
+ 4.0975427161004241
+ 4.0981161230360019
+ 4.0986896671588733
+ 4.0992633485159118
+ 4.0998371671540008
+ 4.1004111231200513
+ 4.1009852164609892
+ 4.1015594472237789
+ 4.1021338154553932
+ 4.1027083212028215
+ 4.1032829645130775
+ 4.103857745433209
+ 4.1044326640102637
+ 4.1050077202913196
+ 4.1055829143234828
+ 4.1061582461538713
+ 4.106733715829618
+ 4.1073093233978977
+ 4.1078850689058966
+ 4.1084609524008107
+ 4.109036973929868
+ 4.1096131335403205
+ 4.1101894312794345
+ 4.1107658671944938
+ 4.1113424413328215
+ 4.1119191537417343
+ 4.1124960044686034
+ 4.1130729935607846
+ 4.1136501210656977
+ 4.114227387030728
+ 4.1148047915033388
+ 4.1153823345309881
+ 4.1159600161611429
+ 4.1165378364413057
+ 4.1171157954190143
+ 4.1176938931417997
+ 4.118272129657246
+ 4.1188505050129125
+ 4.1194290192564313
+ 4.1200076724354213
+ 4.120586464597535
+ 4.1211653957904408
+ 4.1217444660618474
+ 4.122323675459449
+ 4.1229030240310083
+ 4.1234825118242684
+ 4.1240621388869991
+ 4.1246419052670173
+ 4.1252218110121373
+ 4.1258018561702103
+ 4.126382040789097
+ 4.126962364916686
+ 4.1275428286008786
+ 4.1281234318896161
+ 4.1287041748308519
+ 4.1292850574725311
+ 4.1298660798626896
+ 4.1304472420493106
+ 4.1310285440804462
+ 4.1316099860041522
+ 4.1321915678685199
+ 4.1327732897216345
+ 4.1333551516116289
+ 4.1339371535866549
+ 4.1345192956948678
+ 4.1351015779844538
+ 4.1356840005036455
+ 4.1362665633006559
+ 4.1368492664237451
+ 4.137432109921189
+ 4.1380150938412887
+ 4.138598218232346
+ 4.1391814831427283
+ 4.1397648886207783
+ 4.1403484347148929
+ 4.1409321214734689
+ 4.1415159489449405
+ 4.1420999171777559
+ 4.1426840262203877
+ 4.1432682761213284
+ 4.1438526669290958
+ 4.1444371986922199
+ 4.1450218714592699
+ 4.1456066852788132
+ 4.1461916401994632
+ 4.146776736269846
+ 4.1473619735386045
+ 4.147947352054409
+ 4.1485328718659424
+ 4.149118533021924
+ 4.1497043355710908
+ 4.1502902795621859
+ 4.1508763650440015
+ 4.1514625920653465
+ 4.1520489606750148
+ 4.1526354709218811
+ 4.153222122854781
+ 4.1538089165226308
+ 4.1543958519743303
+ 4.1549829292588045
+ 4.1555701484250269
+ 4.1561575095219432
+ 4.1567450125985834
+ 4.1573326577039573
+ 4.1579204448871083
+ 4.1585083741970994
+ 4.1590964456830219
+ 4.1596846593939807
+ 4.1602730153791159
+ 4.1608615136875668
+ 4.1614501543685236
+ 4.1620389374711753
+ 4.1626278630447544
+ 4.1632169311384919
+ 4.163806141801655
+ 4.1643954950835402
+ 4.1649849910334567
+ 4.1655746297007177
+ 4.1661644111346963
+ 4.1667543353847627
+ 4.1673444025003219
+ 4.1679346125307823
+ 4.1685249655256023
+ 4.1691154615342381
+ 4.1697061006061817
+ 4.1702968827909448
+ 4.1708878081380618
+ 4.1714788766970834
+ 4.1720700885175797
+ 4.1726614436491811
+ 4.1732529421414783
+ 4.1738445840441374
+ 4.1744363694068163
+ 4.1750282982792024
+ 4.1756203707110231
+ 4.1762125867519986
+ 4.176804946451897
+ 4.1773974498604982
+ 4.1779900970276076
+ 4.1785828880030333
+ 4.1791758228366502
+ 4.1797689015783082
+ 4.1803621242779112
+ 4.1809554909853723
+ 4.1815490017506276
+ 4.1821426566236486
+ 4.1827364556544095
+ 4.1833303988929158
+ 4.1839244863892082
+ 4.184518718193325
+ 4.1851130943553541
+ 4.1857076149253762
+ 4.1863022799535337
+ 4.1868970894899515
+ 4.1874920435848084
+ 4.1880871422882855
+ 4.1886823856505941
+ 4.1892777737219671
+ 4.189873306552669
+ 4.1904689841929734
+ 4.1910648066931913
+ 4.1916607741036414
+ 4.1922568864746612
+ 4.1928531438566479
+ 4.1934495462999717
+ 4.1940460938550617
+ 4.1946427865723628
+ 4.1952396245023182
+ 4.1958366076954405
+ 4.1964337362022199
+ 4.1970310100731831
+ 4.1976284293589083
+ 4.1982259941099551
+ 4.1988237043769345
+ 4.1994215602104576
+ 4.2000195616611791
+ 4.2006177087797711
+ 4.2012160016169258
+ 4.2018144402233562
+ 4.2024130246498022
+ 4.2030117549470303
+ 4.2036106311658141
+ 4.2042096533569762
+ 4.2048088215713486
+ 4.2054081358597726
+ 4.2060075962731345
+ 4.2066072028623358
+ 4.2072069556783021
+ 4.2078068547719774
+ 4.2084069001943307
+ 4.2090070919963578
+ 4.2096074302290853
+ 4.2102079149435374
+ 4.2108085461907869
+ 4.2114093240219255
+ 4.2120102484880597
+ 4.2126113196403123
+ 4.2132125375298592
+ 4.213813902207864
+ 4.2144154137255363
+ 4.2150170721341027
+ 4.215618877484828
+ 4.2162208298289672
+ 4.2168229292178179
+ 4.2174251757027168
+ 4.2180275693349909
+ 4.2186301101660151
+ 4.2192327982471856
+ 4.2198356336299065
+ 4.2204386163656187
+ 4.2210417465057866
+ 4.2216450241018979
+ 4.2222484492054484
+ 4.2228520218679924
+ 4.2234557421410566
+ 4.2240596100762415
+ 4.2246636257251442
+ 4.2252677891393908
+ 4.2258721003706334
+ 4.2264765594705347
+ 4.2270811664908043
+ 4.2276859214831575
+ 4.2282908244993447
+ 4.2288958755911183
+ 4.2295010748102868
+ 4.2301064222086557
+ 4.2307119178380761
+ 4.2313175617503953
+ 4.2319233539975132
+ 4.2325292946313331
+ 4.2331353837037886
+ 4.2337416212668364
+ 4.2343480073724704
+ 4.2349545420726766
+ 4.2355612254195032
+ 4.2361680574649929
+ 4.236775038261217
+ 4.2373821678602921
+ 4.2379894463143382
+ 4.2385968736754958
+ 4.2392044499959427
+ 4.2398121753278772
+ 4.2404200497235101
+ 4.2410280732350936
+ 4.2416362459149104
+ 4.2422445678152245
+ 4.2428530389883692
+ 4.2434616594866759
+ 4.2440704293625195
+ 4.2446793486682823
+ 4.2452884174563774
+ 4.2458976357792348
+ 4.2465070036893238
+ 4.247116521239132
+ 4.2477261884811508
+ 4.2483360054679338
+ 4.2489459722520282
+ 4.2495560888860009
+ 4.2501663554224836
+ 4.250776771914091
+ 4.2513873384134744
+ 4.2519980549733178
+ 4.2526089216463099
+ 4.2532199384851932
+ 4.2538311055427114
+ 4.2544424228716453
+ 4.2550538905247821
+ 4.2556655085549506
+ 4.2562772770150019
+ 4.2568891959577941
+ 4.2575012654362387
+ 4.2581134855032587
+ 4.2587258562117771
+ 4.2593383776147764
+ 4.2599510497652471
+ 4.2605638727162143
+ 4.261176846520712
+ 4.2617899712318126
+ 4.2624032469025925
+ 4.2630166735861881
+ 4.2636302513357212
+ 4.2642439802043652
+ 4.2648578602453187
+ 4.2654718915117646
+ 4.266086074056969
+ 4.2667004079341853
+ 4.2673148931966942
+ 4.2679295298978221
+ 4.2685443180908846
+ 4.2691592578292559
+ 4.2697743491663189
+ 4.2703895921554835
+ 4.2710049868501718
+ 4.2716205333038664
+ 4.2722362315700337
+ 4.2728520817021867
+ 4.2734680837538574
+ 4.2740842377785953
+ 4.2747005438300016
+ 4.2753170019616666
+ 4.27593361222723
+ 4.2765503746803457
+ 4.2771672893746908
+ 4.2777843563639832
+ 4.2784015757019427
+ 4.2790189474423288
+ 4.2796364716389217
+ 4.2802541483455316
+ 4.2808719776159814
+ 4.2814899595041203
+ 4.282108094063843
+ 4.2827263813490442
+ 4.2833448214136576
+ 4.2839634143116383
+ 4.2845821600969662
+ 4.2852010588236364
+ 4.2858201105456875
+ 4.2864393153171756
+ 4.287058673192166
+ 4.2876781842247826
+ 4.2882978484691483
+ 4.2889176659794028
+ 4.2895376368097429
+ 4.2901577610143722
+ 4.2907780386475034
+ 4.2913984697634184
+ 4.2920190544163734
+ 4.2926397926606681
+ 4.293260684550658
+ 4.2938817301406855
+ 4.294502929485132
+ 4.295124282638402
+ 4.2957457896549238
+ 4.296367450589166
+ 4.2969892654955864
+ 4.2976112344287127
+ 4.2982333574430713
+ 4.2988556345932061
+ 4.2994780659337097
+ 4.3001006515191929
+ 4.3007233914042855
+ 4.3013462856436426
+ 4.3019693342919512
+ 4.302592537403914
+ 4.3032158950342749
+ 4.3038394072377804
+ 4.3044630740692256
+ 4.3050868955834254
+ 4.3057108718351929
+ 4.306335002879413
+ 4.3069592887709529
+ 4.3075837295647483
+ 4.3082083253157224
+ 4.3088330760788267
+ 4.3094579819090777
+ 4.3100830428614589
+ 4.3107082589910277
+ 4.3113336303528511
+ 4.3119591570020175
+ 4.3125848389936356
+ 4.3132106763828562
+ 4.3138366692248384
+ 4.3144628175747792
+ 4.3150891214878948
+ 4.3157155810194379
+ 4.3163421962246762
+ 4.3169689671588971
+ 4.3175958938774333
+ 4.3182229764356217
+ 4.3188502148888315
+ 4.319477609292484
+ 4.3201051597019795
+ 4.320732866172782
+ 4.3213607287603661
+ 4.3219887475202245
+ 4.3226169225079003
+ 4.3232452537789303
+ 4.323873741388903
+ 4.3245023853934166
+ 4.3251311858481154
+ 4.3257601428086456
+ 4.3263892563306934
+ 4.3270185264699679
+ 4.3276479532821952
+ 4.3282775368231556
+ 4.3289072771486223
+ 4.3295371743143969
+ 4.3301672283763413
+ 4.3307974393903068
+ 4.331427807412191
+ 4.3320583324978941
+ 4.3326890147033783
+ 4.3333198540846096
+ 4.3339508506975726
+ 4.3345820045982899
+ 4.3352133158428234
+ 4.3358447844872403
+ 4.3364764105876246
+ 4.3371081942001224
+ 4.3377401353808676
+ 4.338372234186048
+ 4.3390044906718739
+ 4.339636904894566
+ 4.340269476910378
+ 4.3409022067756018
+ 4.3415350945465461
+ 4.3421681402795445
+ 4.3428013440309527
+ 4.343434705857173
+ 4.3440682258146008
+ 4.3447019039596908
+ 4.3453357403489026
+ 4.3459697350387403
+ 4.3466038880857107
+ 4.3472381995463714
+ 4.3478726694772893
+ 4.3485072979350647
+ 4.3491420849763189
+ 4.3497770306577186
+ 4.3504121350359233
+ 4.3510473981676467
+ 4.3516828201096285
+ 4.3523184009186133
+ 4.3529541406513914
+ 4.3535900393647742
+ 4.3542260971156042
+ 4.3548623139607363
+ 4.3554986899570753
+ 4.3561352251615189
+ 4.3567719196310275
+ 4.357408773422569
+ 4.3580457865931397
+ 4.3586829591997596
+ 4.3593202912994871
+ 4.3599577829494036
+ 4.3605954342065951
+ 4.3612332451282105
+ 4.3618712157714024
+ 4.3625093461933568
+ 4.3631476364512798
+ 4.3637860866024223
+ 4.3644246967040257
+ 4.3650634668134094
+ 4.3657023969878761
+ 4.3663414872847763
+ 4.3669807377614847
+ 4.3676201484753978
+ 4.368259719483941
+ 4.3688994508445695
+ 4.3695393426147628
+ 4.3701793948520384
+ 4.3708196076139103
+ 4.3714599809579555
+ 4.37210051494176
+ 4.3727412096229354
+ 4.3733820650591166
+ 4.374023081307989
+ 4.374664258427253
+ 4.3753055964746101
+ 4.3759470955078283
+ 4.3765887555846845
+ 4.3772305767629804
+ 4.3778725591005445
+ 4.3785147026552318
+ 4.3791570074849426
+ 4.3797994736475871
+ 4.3804421012011039
+ 4.3810848902034634
+ 4.3817278407126494
+ 4.382370952786693
+ 4.3830142264836542
+ 4.3836576618616041
+ 4.3843012589786321
+ 4.3849450178928935
+ 4.3855889386625364
+ 4.3862330213457401
+ 4.3868772660007318
+ 4.3875216726857511
+ 4.388166241459059
+ 4.3888109723789581
+ 4.3894558655037752
+ 4.3901009208918538
+ 4.3907461386015711
+ 4.3913915186913446
+ 4.3920370612196065
+ 4.3926827662448051
+ 4.3933286338254369
+ 4.3939746640200257
+ 4.3946208568870953
+ 4.3952672124852432
+ 4.3959137308730583
+ 4.3965604121091539
+ 4.3972072562521936
+ 4.3978542633608679
+ 4.3985014334938732
+ 4.3991487667099642
+ 4.3997962630678851
+ 4.4004439226264429
+ 4.4010917454444511
+ 4.4017397315807587
+ 4.4023878810942545
+ 4.4030361940438238
+ 4.4036846704884063
+ 4.4043333104869546
+ 4.4049821140984733
+ 4.4056310813819621
+ 4.4062802123964726
+ 4.406929507201065
+ 4.4075789658548494
+ 4.4082285884169474
+ 4.4088783749465179
+ 4.4095283255027331
+ 4.4101784401448176
+ 4.4108287189319881
+ 4.4114791619235421
+ 4.4121297691787484
+ 4.412780540756934
+ 4.41343147671747
+ 4.4140825771196956
+ 4.4147338420230557
+ 4.4153852714869677
+ 4.4160368655709057
+ 4.4166886243343413
+ 4.4173405478368055
+ 4.4179926361378508
+ 4.4186448892970418
+ 4.419297307373995
+ 4.4199498904283301
+ 4.4206026385197115
+ 4.4212555517078291
+ 4.4219086300523909
+ 4.4225618736131649
+ 4.423215282449898
+ 4.4238688566223976
+ 4.4245225961905064
+ 4.4251765012140698
+ 4.4258305717529831
+ 4.4264848078671575
+ 4.4271392096165352
+ 4.4277937770610967
+ 4.4284485102608233
+ 4.4291034092757595
+ 4.4297584741659559
+ 4.4304137049915031
+ 4.4310691018125112
+ 4.4317246646891242
+ 4.4323803936815098
+ 4.433036288849868
+ 4.4336923502544323
+ 4.4343485779554586
+ 4.4350049720132239
+}
diff --git a/release/datafiles/fonts/droidsans.ttf.gz b/release/datafiles/fonts/droidsans.ttf.gz
index b2eb31af4b9..439515e5bb4 100644
--- a/release/datafiles/fonts/droidsans.ttf.gz
+++ b/release/datafiles/fonts/droidsans.ttf.gz
Binary files differ
diff --git a/release/datafiles/preview.blend b/release/datafiles/preview.blend
index 807d1b08c4d..7eaa7a63eeb 100644
--- a/release/datafiles/preview.blend
+++ b/release/datafiles/preview.blend
Binary files differ
diff --git a/release/datafiles/prvicons b/release/datafiles/prvicons.png
index 364d9678f0b..364d9678f0b 100644
--- a/release/datafiles/prvicons
+++ b/release/datafiles/prvicons.png
Binary files differ
diff --git a/release/datafiles/splash.png b/release/datafiles/splash.png
index 2dab9257905..7f40ead3911 100644
--- a/release/datafiles/splash.png
+++ b/release/datafiles/splash.png
Binary files differ
diff --git a/release/datafiles/startup.blend b/release/datafiles/startup.blend
new file mode 100644
index 00000000000..8b0e052fad8
--- /dev/null
+++ b/release/datafiles/startup.blend
Binary files differ
diff --git a/release/scripts/modules/addon_utils.py b/release/scripts/modules/addon_utils.py
index 02d9cd2d1c6..ab68c9424cd 100644
--- a/release/scripts/modules/addon_utils.py
+++ b/release/scripts/modules/addon_utils.py
@@ -148,7 +148,7 @@ def modules(module_cache):
for path in path_list:
# force all contrib addons to be 'TESTING'
- if path.endswith("addons_contrib") or path.endswith("addons_extern"):
+ if path.endswith(("addons_contrib", "addons_extern")):
force_support = 'TESTING'
else:
force_support = None
@@ -275,6 +275,8 @@ def enable(module_name, default_set=True, persistent=False):
try:
mod.register()
except:
+ print("Exception in module register(): %r" %
+ getattr(mod, "__file__", module_name))
handle_error()
del sys.modules[module_name]
return None
@@ -316,6 +318,8 @@ def disable(module_name, default_set=True):
try:
mod.unregister()
except:
+ print("Exception in module unregister(): %r" %
+ getattr(mod, "__file__", module_name))
import traceback
traceback.print_exc()
else:
diff --git a/release/scripts/modules/bl_i18n_utils/bl_process_msg.py b/release/scripts/modules/bl_i18n_utils/bl_process_msg.py
index 353b911ab2c..cf545840b6f 100644
--- a/release/scripts/modules/bl_i18n_utils/bl_process_msg.py
+++ b/release/scripts/modules/bl_i18n_utils/bl_process_msg.py
@@ -16,7 +16,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-# <pep8-80 compliant>
+# <pep8 compliant>
# Write out messages.txt from Blender.
# XXX: This script is meant to be used from inside Blender!
@@ -25,8 +25,7 @@
import os
# XXX Relative import does not work here when used from Blender...
-#from . import settings
-import bl_i18n_utils.settings as settings
+from bl_i18n_utils import settings
#classes = set()
@@ -44,6 +43,7 @@ UNDOC_OPS_STR = settings.UNDOC_OPS_STR
NC_ALLOWED = settings.WARN_MSGID_NOT_CAPITALIZED_ALLOWED
+
def check(check_ctxt, messages, key, msgsrc):
if check_ctxt is None:
return
@@ -79,7 +79,8 @@ def dump_messages_rna(messages, check_ctxt):
import bpy
def classBlackList():
- blacklist_rna_class = [# core classes
+ blacklist_rna_class = [
+ # core classes
"Context", "Event", "Function", "UILayout",
"BlendData",
# registerable classes
@@ -271,7 +272,6 @@ def dump_messages_rna(messages, check_ctxt):
walk_keymap_hierarchy(KM_HIERARCHY, "KM_HIERARCHY")
-
def dump_messages_pytext(messages, check_ctxt):
""" dumps text inlined in the python user interface: eg.
@@ -292,13 +292,13 @@ def dump_messages_pytext(messages, check_ctxt):
# Break recursive nodes look up on some kind of nodes.
# E.g. we don’t want to get strings inside subscripts (blah["foo"])!
- stopper_nodes = {ast.Subscript,}
+ stopper_nodes = {ast.Subscript, }
for func_id, func in bpy.types.UILayout.bl_rna.functions.items():
# check it has a 'text' argument
for (arg_pos, (arg_kw, arg)) in enumerate(func.parameters.items()):
if ((arg_kw in translate_kw) and
- (arg.is_output == False) and
+ (arg.is_output is False) and
(arg.type == 'STRING')):
func_translate_args.setdefault(func_id, []).append((arg_kw,
@@ -435,10 +435,7 @@ def dump_messages(do_messages, do_checks):
# we could filter out different strings here
return False
- if hasattr(collections, 'OrderedDict'):
- messages = collections.OrderedDict()
- else:
- messages = {}
+ messages = getattr(collections, 'OrderedDict', dict)()
messages[(CONTEXT_DEFAULT, "")] = []
diff --git a/release/scripts/modules/bl_i18n_utils/check_po.py b/release/scripts/modules/bl_i18n_utils/check_po.py
index a688d38df88..2e82047bb95 100755
--- a/release/scripts/modules/bl_i18n_utils/check_po.py
+++ b/release/scripts/modules/bl_i18n_utils/check_po.py
@@ -26,8 +26,11 @@ import os
import sys
from codecs import open
-import settings
-import utils
+try:
+ import settings
+ import utils
+except:
+ from . import (settings, utils)
TRUNK_PO_DIR = settings.TRUNK_PO_DIR
BRANCHES_DIR = settings.BRANCHES_DIR
@@ -91,7 +94,6 @@ def main():
help="Restrict processed languages to those.")
args = parser.parse_args()
-
if args.pot:
global FILE_NAME_POT
FILE_NAME_POT = args.pot
@@ -142,27 +144,27 @@ def main():
ret = t
if args.stats and glob_stats["nbr"] != 0.0:
- nbr_contexts = len(glob_stats["contexts"]-{""})
+ nbr_contexts = len(glob_stats["contexts"] - {""})
if nbr_contexts != 1:
if nbr_contexts == 0:
nbr_contexts = "No"
_ctx_txt = "s are"
else:
_ctx_txt = " is"
- print("\nAverage stats for all {:.0f} processed files:\n" \
- " {:>6.1%} done!\n" \
- " {:>6.1%} of messages are tooltips.\n" \
- " {:>6.1%} of tooltips are translated.\n" \
- " {:>6.1%} of translated messages are tooltips.\n" \
- " {:>6.1%} of messages are commented.\n" \
- " The org msgids are currently made of {} signs.\n" \
- " All processed translations are currently made of {} signs.\n" \
- " {} specific context{} present:\n {}\n" \
- "".format(glob_stats["nbr"], glob_stats["lvl"]/glob_stats["nbr"],
- glob_stats["lvl_ttips"]/glob_stats["nbr"],
- glob_stats["lvl_trans_ttips"]/glob_stats["nbr"],
- glob_stats["lvl_ttips_in_trans"]/glob_stats["nbr"],
- glob_stats["lvl_comm"]/glob_stats["nbr"], glob_stats["nbr_signs"],
+ print("\nAverage stats for all {:.0f} processed files:\n"
+ " {:>6.1%} done!\n"
+ " {:>6.1%} of messages are tooltips.\n"
+ " {:>6.1%} of tooltips are translated.\n"
+ " {:>6.1%} of translated messages are tooltips.\n"
+ " {:>6.1%} of messages are commented.\n"
+ " The org msgids are currently made of {} signs.\n"
+ " All processed translations are currently made of {} signs.\n"
+ " {} specific context{} present:\n {}\n"
+ "".format(glob_stats["nbr"], glob_stats["lvl"] / glob_stats["nbr"],
+ glob_stats["lvl_ttips"] / glob_stats["nbr"],
+ glob_stats["lvl_trans_ttips"] / glob_stats["nbr"],
+ glob_stats["lvl_ttips_in_trans"] / glob_stats["nbr"],
+ glob_stats["lvl_comm"] / glob_stats["nbr"], glob_stats["nbr_signs"],
glob_stats["nbr_trans_signs"], nbr_contexts, _ctx_txt,
"\n ".join(glob_stats["contexts"]-{""})))
diff --git a/release/scripts/modules/bl_i18n_utils/clean_po.py b/release/scripts/modules/bl_i18n_utils/clean_po.py
index 7e91b41065c..2924ad9fb74 100755
--- a/release/scripts/modules/bl_i18n_utils/clean_po.py
+++ b/release/scripts/modules/bl_i18n_utils/clean_po.py
@@ -25,10 +25,13 @@
import os
import sys
import collections
-from codecs import open
-import settings
-import utils
+try:
+ import settings
+ import utils
+except:
+ from . import (settings, utils)
+
TRUNK_PO_DIR = settings.TRUNK_PO_DIR
BRANCHES_DIR = settings.BRANCHES_DIR
@@ -62,7 +65,6 @@ def main():
help="Restrict processed languages to those.")
args = parser.parse_args()
-
ret = 0
if args.langs:
diff --git a/release/scripts/modules/bl_i18n_utils/import_po_from_branches.py b/release/scripts/modules/bl_i18n_utils/import_po_from_branches.py
index 4739a98920f..a15bea9ef0d 100755
--- a/release/scripts/modules/bl_i18n_utils/import_po_from_branches.py
+++ b/release/scripts/modules/bl_i18n_utils/import_po_from_branches.py
@@ -28,9 +28,12 @@ import sys
import subprocess
from codecs import open
-import settings
-import utils
-import rtl_preprocess
+try:
+ import settings
+ import utils
+ import rtl_preprocess
+except:
+ from . import (settings, utils, rtl_preprocess)
TRUNK_PO_DIR = settings.TRUNK_PO_DIR
@@ -53,12 +56,11 @@ def main():
help="Restrict processed languages to those.")
args = parser.parse_args()
-
ret = 0
- threshold = float(settings.IMPORT_MIN_LEVEL)/100.0
+ threshold = float(settings.IMPORT_MIN_LEVEL) / 100.0
if args.threshold is not None:
- threshold = float(args.threshold)/100.0
+ threshold = float(args.threshold) / 100.0
for lang in os.listdir(BRANCHES_DIR):
if args.langs and lang not in args.langs:
@@ -71,7 +73,7 @@ def main():
trans_msgs = stats["trans_msg"]
lvl = 0.0
if tot_msgs:
- lvl = float(trans_msgs)/float(tot_msgs)
+ lvl = float(trans_msgs) / float(tot_msgs)
if lvl > threshold:
if state["is_broken"] and args.strict:
print("{:<10}: {:>6.1%} done, but BROKEN, skipped." \
diff --git a/release/scripts/modules/bl_i18n_utils/merge_po.py b/release/scripts/modules/bl_i18n_utils/merge_po.py
index 1a55cd670b0..baf67de2e81 100755
--- a/release/scripts/modules/bl_i18n_utils/merge_po.py
+++ b/release/scripts/modules/bl_i18n_utils/merge_po.py
@@ -21,7 +21,7 @@
# <pep8 compliant>
# Merge one or more .po files into the first dest one.
-# If a msgkey is present in more than one merged po, the one in the first file wins, unless
+# If a msgkey is present in more than one merged po, the one in the first file wins, unless
# it’s marked as fuzzy and one later is not.
# The fuzzy flag is removed if necessary.
# All other comments are never modified.
@@ -29,16 +29,19 @@
# never merged from sources.
import sys
-from codecs import open
-import utils
+try:
+ import settings
+ import utils
+except:
+ from . import (settings, utils)
def main():
import argparse
parser = argparse.ArgumentParser(description="" \
"Merge one or more .po files into the first dest one.\n" \
- "If a msgkey (msgid, msgctxt) is present in more than " \
+ "If a msgkey (msgctxt, msgid) is present in more than " \
"one merged po, the one in the first file wins, unless " \
"it’s marked as fuzzy and one later is not.\n" \
"The fuzzy flag is removed if necessary.\n" \
@@ -56,7 +59,6 @@ def main():
help="The po's to merge into the dst.po one.")
args = parser.parse_args()
-
ret = 0
done_msgkeys = set()
done_fuzzy_msgkeys = set()
@@ -75,7 +77,7 @@ def main():
# If we don’t want to replace existing valid translations, pre-populate
# done_msgkeys and done_fuzzy_msgkeys.
if not args.replace:
- done_msgkeys = dst_states["trans_msg"].copy()
+ done_msgkeys = dst_states["trans_msg"].copy()
done_fuzzy_msgkeys = dst_states["fuzzy_msg"].copy()
for po in args.src:
messages, states, stats = utils.parse_messages(po)
diff --git a/release/scripts/modules/bl_i18n_utils/rtl_preprocess.py b/release/scripts/modules/bl_i18n_utils/rtl_preprocess.py
index c6fc5fc787e..d28f87cf042 100755
--- a/release/scripts/modules/bl_i18n_utils/rtl_preprocess.py
+++ b/release/scripts/modules/bl_i18n_utils/rtl_preprocess.py
@@ -34,9 +34,14 @@
import sys
import ctypes
+import re
+
+try:
+ import settings
+ import utils
+except:
+ from . import (settings, utils)
-import settings
-import utils
FRIBIDI_LIB = settings.FRIBIDI_LIB
@@ -82,44 +87,65 @@ FRIBIDI_FLAGS_DEFAULT = FRIBIDI_FLAG_SHAPE_MIRRORING | \
FRIBIDI_FLAGS_ARABIC = FRIBIDI_FLAG_SHAPE_ARAB_PRES | \
FRIBIDI_FLAG_SHAPE_ARAB_LIGA
+
+MENU_DETECT_REGEX = re.compile("%x\\d+\\|")
+
+
##### Kernel processing funcs. #####
def protect_format_seq(msg):
"""
Find some specific escaping/formating sequences (like \", %s, etc.,
and protect them from any modification!
"""
+# LRM = "\u200E"
+# RLM = "\u200F"
LRE = "\u202A"
+ RLE = "\u202B"
PDF = "\u202C"
+ LRO = "\u202D"
+ RLO = "\u202E"
+ uctrl = {LRE, RLE, PDF, LRO, RLO}
# Most likely incomplete, but seems to cover current needs.
format_codes = set("tslfd")
digits = set(".0123456789")
+ if not msg:
+ return msg
+ elif MENU_DETECT_REGEX.search(msg):
+ # An ugly "menu" message, just force it whole LRE if not yet done.
+ if msg[0] not in {LRE, LRO}:
+ msg = LRE + msg
+
idx = 0
ret = []
ln = len(msg)
while idx < ln:
dlt = 1
+# # If we find a control char, skip any additional protection!
+# if msg[idx] in uctrl:
+# ret.append(msg[idx:])
+# break
# \" or \'
if idx < (ln - 1) and msg[idx] == '\\' and msg[idx + 1] in "\"\'":
dlt = 2
- # %x12
- elif idx < (ln - 2) and msg[idx] == '%' and msg[idx + 1] in "x" and \
- msg[idx + 2] in digits:
+ # %x12|
+ elif idx < (ln - 2) and msg[idx] == '%' and msg[idx + 1] in "x" and msg[idx + 2] in digits:
dlt = 2
- while (idx + dlt + 1) < ln and msg[idx + dlt + 1] in digits:
+ while (idx + dlt) < ln and msg[idx + dlt] in digits:
+ dlt += 1
+ if (idx + dlt) < ln and msg[idx + dlt] is '|':
dlt += 1
# %.4f
elif idx < (ln - 3) and msg[idx] == '%' and msg[idx + 1] in digits:
dlt = 2
- while (idx + dlt + 1) < ln and msg[idx + dlt + 1] in digits:
+ while (idx + dlt) < ln and msg[idx + dlt] in digits:
dlt += 1
- if (idx + dlt + 1) < ln and msg[idx + dlt + 1] in format_codes:
+ if (idx + dlt) < ln and msg[idx + dlt] in format_codes:
dlt += 1
else:
dlt = 1
# %s
- elif idx < (ln - 1) and msg[idx] == '%' and \
- msg[idx + 1] in format_codes:
+ elif idx < (ln - 1) and msg[idx] == '%' and msg[idx + 1] in format_codes:
dlt = 2
if dlt > 1:
@@ -181,6 +207,7 @@ def log2vis(msgs):
yield fbc_str.value
+
##### Command line stuff. #####
def main():
import argparse
@@ -204,7 +231,6 @@ def main():
help="The po's to pre-process messages.")
args = parser.parse_args()
-
msgs, state, u1 = utils.parse_messages(args.src)
if state["is_broken"]:
print("Source po is BROKEN, aborting.")
diff --git a/release/scripts/modules/bl_i18n_utils/settings.py b/release/scripts/modules/bl_i18n_utils/settings.py
index 7ee81c1dc47..d323dd37979 100644
--- a/release/scripts/modules/bl_i18n_utils/settings.py
+++ b/release/scripts/modules/bl_i18n_utils/settings.py
@@ -55,7 +55,7 @@ DOMAIN = "blender"
# Our own "gettext" stuff.
# File type (ext) to parse.
-PYGETTEXT_ALLOWED_EXTS = {".c", ".cpp", ".cxx", ".hpp", ".hxx", ".h"}
+PYGETTEXT_ALLOWED_EXTS = {".c", ".cpp", ".cxx", ".hpp", ".hxx", ".h"}
# Where to search contexts definitions, relative to SOURCE_DIR (defined below).
PYGETTEXT_CONTEXTS_DEFSRC = os.path.join("source", "blender", "blenfont",
@@ -97,11 +97,14 @@ _msg_re = r"(?P<msg_raw>" + _str_whole_re.format(_="_msg") + r")"
PYGETTEXT_KEYWORDS = (() +
tuple((r"{}\(\s*" + _msg_re + r"\s*\)").format(it)
for it in ("IFACE_", "TIP_", "N_")) +
- tuple((r"{}\(\s*" + _ctxt_re + r"\s*,\s*"+ _msg_re + r"\s*\)").format(it)
+ tuple((r"{}\(\s*" + _ctxt_re + r"\s*,\s*" + _msg_re + r"\s*\)").format(it)
for it in ("CTX_IFACE_", "CTX_TIP_", "CTX_N_"))
)
-#GETTEXT_KEYWORDS = ("IFACE_", "CTX_IFACE_:1c,2", "TIP_", "CTX_TIP_:1c,2",
-# "N_", "CTX_N_:1c,2")
+
+ESCAPE_RE = (
+ ('((?<!\\\\)"|(?<!\\\\)\\\\(?!\\\\|"))', r"\\\1"),
+ ('\t', r"\\t"),
+)
# Should po parser warn when finding a first letter not capitalized?
WARN_MSGID_NOT_CAPITALIZED = True
@@ -275,7 +278,7 @@ SPELL_CACHE = os.path.join("/tmp", ".spell_cache")
import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
try:
- from i18n_override_settings import *
+ from bl_i18n_override_settings import *
except ImportError: # If no i18n_override_settings available, it’s no error!
pass
diff --git a/release/scripts/modules/bl_i18n_utils/spell_check_utils.py b/release/scripts/modules/bl_i18n_utils/spell_check_utils.py
index e5b065c7ceb..46b369146b7 100644
--- a/release/scripts/modules/bl_i18n_utils/spell_check_utils.py
+++ b/release/scripts/modules/bl_i18n_utils/spell_check_utils.py
@@ -162,7 +162,7 @@ dict_uimsgs = {
"unspill",
"unstitchable",
"vectorscope",
- "whitespace",
+ "whitespace", "whitespaces",
"worldspace",
"workflow",
@@ -297,6 +297,7 @@ dict_uimsgs = {
"gimbal",
"grayscale",
"icosphere",
+ "inpaint",
"lightmap",
"lossless", "lossy",
"midtones",
@@ -328,6 +329,7 @@ dict_uimsgs = {
"bweight",
"colorband",
"datablock", "datablocks",
+ "despeckle",
"dopesheet",
"dupliface", "duplifaces",
"dupliframe", "dupliframes",
@@ -376,7 +378,7 @@ dict_uimsgs = {
"chebychev",
"kutta",
"lennard",
- "minkowsky",
+ "minkowski",
"minnaert",
"musgrave",
"nayar",
@@ -414,7 +416,7 @@ dict_uimsgs = {
"gpu", "gpus",
"hc",
"hdr",
- "hh", "mm", "ss", "ff", # hh:mm:ss:ff timecode
+ "hh", "mm", "ss", "ff", # hh:mm:ss:ff timecode
"hsv", "hsva",
"id",
"itu",
diff --git a/release/scripts/modules/bl_i18n_utils/update_branches.py b/release/scripts/modules/bl_i18n_utils/update_branches.py
index 1a856b14944..199b09aa13a 100755
--- a/release/scripts/modules/bl_i18n_utils/update_branches.py
+++ b/release/scripts/modules/bl_i18n_utils/update_branches.py
@@ -30,10 +30,15 @@ import os
import sys
import tempfile
-import settings
+try:
+ import settings
+except:
+ from . import settings
+
PY3 = settings.PYTHON3_EXEC
+
def main():
import argparse
parser = argparse.ArgumentParser(description="" \
@@ -55,7 +60,6 @@ def main():
help="Restrict processed languages to those.")
args = parser.parse_args()
-
ret = 0
# Generate a temp messages file.
diff --git a/release/scripts/modules/bl_i18n_utils/update_mo.py b/release/scripts/modules/bl_i18n_utils/update_mo.py
index 9804eb8ce34..4a68f19fab0 100755
--- a/release/scripts/modules/bl_i18n_utils/update_mo.py
+++ b/release/scripts/modules/bl_i18n_utils/update_mo.py
@@ -26,8 +26,11 @@ import subprocess
import os
import sys
-import settings
-import utils
+try:
+ import settings
+ import utils
+except:
+ from . import (settings, utils)
GETTEXT_MSGFMT_EXECUTABLE = settings.GETTEXT_MSGFMT_EXECUTABLE
@@ -39,17 +42,19 @@ TRUNK_PO_DIR = settings.TRUNK_PO_DIR
DOMAIN = settings.DOMAIN
-def process_po(po, lang):
- mo_dir = os.path.join(TRUNK_MO_DIR, lang, "LC_MESSAGES")
+def process_po(po, lang, mo=None):
+ if not mo:
+ mo_dir = os.path.join(TRUNK_MO_DIR, lang, "LC_MESSAGES")
+ # Create dirs if not existing!
+ if not os.path.isdir(mo_dir):
+ os.makedirs(mo_dir, exist_ok=True)
- # Create dirs if not existing!
- os.makedirs(mo_dir, exist_ok = True)
# show stats
cmd = (GETTEXT_MSGFMT_EXECUTABLE,
"--statistics",
po,
"-o",
- os.path.join(mo_dir, ".".join((DOMAIN, "mo"))),
+ mo or os.path.join(mo_dir, ".".join((DOMAIN, "mo"))),
)
print("Running ", " ".join(cmd))
@@ -64,11 +69,20 @@ def main():
"under {}.".format(TRUNK_MO_DIR))
parser.add_argument('langs', metavar='ISO_code', nargs='*',
help="Restrict processed languages to those.")
+ parser.add_argument('po', help="Only process that po file (implies --mo).",
+ nargs='?')
+ parser.add_argument('mo', help="Mo file to generate (implies --po).",
+ nargs='?')
args = parser.parse_args()
ret = 0
- if args.langs:
+ if args.po and args.mo:
+ if os.path.exists(args.po):
+ t = process_po(args.po, None, args.mo)
+ if t:
+ ret = t
+ elif args.langs:
for lang in args.langs:
po = os.path.join(TRUNK_PO_DIR, ".".join((lang, "po")))
if os.path.exists(po):
diff --git a/release/scripts/modules/bl_i18n_utils/update_msg.py b/release/scripts/modules/bl_i18n_utils/update_msg.py
index e5154632cfe..c1b0d636655 100755
--- a/release/scripts/modules/bl_i18n_utils/update_msg.py
+++ b/release/scripts/modules/bl_i18n_utils/update_msg.py
@@ -26,7 +26,10 @@ import os
import sys
import subprocess
-import settings
+try:
+ import settings
+except:
+ from . import settings
BLENDER_ARGS = [
diff --git a/release/scripts/modules/bl_i18n_utils/update_po.py b/release/scripts/modules/bl_i18n_utils/update_po.py
index 042b46c03f2..4c6495c5cfe 100755
--- a/release/scripts/modules/bl_i18n_utils/update_po.py
+++ b/release/scripts/modules/bl_i18n_utils/update_po.py
@@ -28,12 +28,16 @@ import sys
from codecs import open
import shutil
-import settings
-import utils
+try:
+ import settings
+ import utils
+except:
+ from . import (settings, utils)
+
GETTEXT_MSGMERGE_EXECUTABLE = settings.GETTEXT_MSGMERGE_EXECUTABLE
-BRANCHES_DIR = settings.BRANCHES_DIR
-TRUNK_PO_DIR = settings.TRUNK_PO_DIR
+BRANCHES_DIR = settings.BRANCHES_DIR
+TRUNK_PO_DIR = settings.TRUNK_PO_DIR
FILE_NAME_POT = settings.FILE_NAME_POT
@@ -71,6 +75,8 @@ def process_po(po, lang):
# update po file
cmd = (GETTEXT_MSGMERGE_EXECUTABLE,
"--update",
+ "-w", "1", # XXX Ugly hack to prevent msgmerge merging
+ # short source comments together!
"--no-wrap",
"--backup=none",
"--lang={}".format(lang),
diff --git a/release/scripts/modules/bl_i18n_utils/update_pot.py b/release/scripts/modules/bl_i18n_utils/update_pot.py
index ceef51aa072..f98fc5d7705 100755
--- a/release/scripts/modules/bl_i18n_utils/update_pot.py
+++ b/release/scripts/modules/bl_i18n_utils/update_pot.py
@@ -26,28 +26,27 @@ import subprocess
import os
import sys
import re
-#from codecs import open
import tempfile
import argparse
import time
import pickle
-import settings
-import utils
+try:
+ import settings
+ import utils
+except:
+ from . import (settings, utils)
COMMENT_PREFIX = settings.COMMENT_PREFIX
COMMENT_PREFIX_SOURCE = settings.COMMENT_PREFIX_SOURCE
CONTEXT_PREFIX = settings.CONTEXT_PREFIX
FILE_NAME_MESSAGES = settings.FILE_NAME_MESSAGES
-#FILE_NAME_POTFILES = settings.FILE_NAME_POTFILES
FILE_NAME_POT = settings.FILE_NAME_POT
SOURCE_DIR = settings.SOURCE_DIR
POTFILES_DIR = settings.POTFILES_SOURCE_DIR
SRC_POTFILES = settings.FILE_NAME_SRC_POTFILES
-#GETTEXT_XGETTEXT_EXECUTABLE = settings.GETTEXT_XGETTEXT_EXECUTABLE
-#GETTEXT_KEYWORDS = settings.GETTEXT_KEYWORDS
CONTEXT_DEFAULT = settings.CONTEXT_DEFAULT
PYGETTEXT_ALLOWED_EXTS = settings.PYGETTEXT_ALLOWED_EXTS
@@ -59,16 +58,6 @@ NC_ALLOWED = settings.WARN_MSGID_NOT_CAPITALIZED_ALLOWED
SPELL_CACHE = settings.SPELL_CACHE
-#def generate_valid_potfiles(final_potfiles):
-# "Generates a temp potfiles.in with aboslute paths."
-# with open(FILE_NAME_POTFILES, 'r', 'utf-8') as f, \
-# open(final_potfiles, 'w', 'utf-8') as w:
-# for line in f:
-# line = utils.stripeol(line)
-# if line:
-# w.write("".join((os.path.join(SOURCE_DIR,
-# os.path.normpath(line)), "\n")))
-
# Do this only once!
# Get contexts defined in blf.
CONTEXTS = {}
@@ -79,18 +68,19 @@ with open(os.path.join(SOURCE_DIR, settings.PYGETTEXT_CONTEXTS_DEFSRC)) as f:
# (key=C_macro_name, value=C_string).
CONTEXTS = dict(m.groups() for m in reg.finditer(f))
-# Build regexes to extract messages (with optinal contexts) from C source.
+# Build regexes to extract messages (with optional contexts) from C source.
pygettexts = tuple(re.compile(r).search
for r in settings.PYGETTEXT_KEYWORDS)
_clean_str = re.compile(settings.str_clean_re).finditer
clean_str = lambda s: "".join(m.group("clean") for m in _clean_str(s))
+
def check_file(path, rel_path, messages):
with open(path, encoding="utf-8") as f:
f = f.read()
for srch in pygettexts:
m = srch(f)
- line = pos =0
+ line = pos = 0
while m:
d = m.groupdict()
# Context.
@@ -160,6 +150,8 @@ from spell_check_utils import (dict_uimsgs,
)
_spell_checked = set()
+
+
def spell_check(txt, cache):
ret = []
@@ -203,6 +195,10 @@ def gen_empty_pot():
return utils.gen_empty_messages(blender_rev, time_str, year_str)
+escape_re = tuple(re.compile(r[0]) for r in settings.ESCAPE_RE)
+escape = lambda s, n: escape_re[n].sub(settings.ESCAPE_RE[n][1], s)
+
+
def merge_messages(msgs, states, messages, do_checks, spell_cache):
num_added = num_present = 0
for (context, msgid), srcs in messages.items():
@@ -214,9 +210,8 @@ def merge_messages(msgs, states, messages, do_checks, spell_cache):
print("\tFrom:\n\t\t" + "\n\t\t".join(srcs))
# Escape some chars in msgid!
- msgid = msgid.replace("\\", "\\\\")
- msgid = msgid.replace("\"", "\\\"")
- msgid = msgid.replace("\t", "\\t")
+ for n in range(len(escape_re)):
+ msgid = escape(msgid, n)
srcs = [COMMENT_PREFIX_SOURCE + s for s in srcs]
diff --git a/release/scripts/modules/bl_i18n_utils/update_trunk.py b/release/scripts/modules/bl_i18n_utils/update_trunk.py
index f4a2e0b3f8f..b7f8f375744 100755
--- a/release/scripts/modules/bl_i18n_utils/update_trunk.py
+++ b/release/scripts/modules/bl_i18n_utils/update_trunk.py
@@ -33,7 +33,10 @@ import os
import sys
import shutil
-import settings
+try:
+ import settings
+except:
+ from . import settings
TRUNK_PO_DIR = settings.TRUNK_PO_DIR
TRUNK_MO_DIR = settings.TRUNK_MO_DIR
@@ -62,7 +65,6 @@ def main():
help="Restrict processed languages to those.")
args = parser.parse_args()
-
ret = 0
failed = set()
diff --git a/release/scripts/modules/bl_i18n_utils/utils.py b/release/scripts/modules/bl_i18n_utils/utils.py
index dfed2088878..25b9daa99e5 100644
--- a/release/scripts/modules/bl_i18n_utils/utils.py
+++ b/release/scripts/modules/bl_i18n_utils/utils.py
@@ -23,9 +23,8 @@
import os
import sys
import collections
-from codecs import open
-import settings
+from bl_i18n_utils import settings
COMMENT_PREFIX = settings.COMMENT_PREFIX
@@ -41,6 +40,7 @@ def stripeol(s):
def is_tooltip(msgid):
return len(msgid) > 30
+
def parse_messages(fname):
"""
Returns a tupple (messages, states, stats).
@@ -83,7 +83,6 @@ def parse_messages(fname):
fuzzy_messages = set()
commented_messages = set()
-
def clean_vars():
nonlocal reading_msgid, reading_msgstr, reading_msgctxt, \
reading_comment, is_fuzzy, is_translated, is_commented, \
@@ -96,7 +95,6 @@ def parse_messages(fname):
msgctxt_lines = []
comment_lines = []
-
def finalize_message():
nonlocal reading_msgid, reading_msgstr, reading_msgctxt, \
reading_comment, is_fuzzy, is_translated, is_commented, \
@@ -144,8 +142,7 @@ def parse_messages(fname):
clean_vars()
-
- with open(fname, 'r', "utf-8") as f:
+ with open(fname, 'r', encoding="utf-8") as f:
for line_nr, line in enumerate(f):
line = stripeol(line)
if line == "":
@@ -157,7 +154,7 @@ def parse_messages(fname):
reading_ctxt = True
if line.startswith(COMMENT_PREFIX):
is_commented = True
- line = line[9+len(COMMENT_PREFIX):-1]
+ line = line[9 + len(COMMENT_PREFIX):-1]
else:
line = line[9:-1]
msgctxt_lines.append(line)
@@ -168,7 +165,7 @@ def parse_messages(fname):
reading_msgid = True
if line.startswith(COMMENT_PREFIX):
is_commented = True
- line = line[7+len(COMMENT_PREFIX):-1]
+ line = line[7 + len(COMMENT_PREFIX):-1]
else:
line = line[7:-1]
msgid_lines.append(line)
@@ -181,7 +178,7 @@ def parse_messages(fname):
reading_msgid = False
reading_msgstr = True
if line.startswith(COMMENT_PREFIX):
- line = line[8+len(COMMENT_PREFIX):-1]
+ line = line[8 + len(COMMENT_PREFIX):-1]
if not is_commented:
is_broken = True
else:
@@ -195,13 +192,13 @@ def parse_messages(fname):
elif line.startswith("#"):
if reading_msgid:
if is_commented:
- msgid_lines.append(line[1+len(COMMENT_PREFIX):-1])
+ msgid_lines.append(line[1 + len(COMMENT_PREFIX):-1])
else:
msgid_lines.append(line)
is_broken = True
elif reading_msgstr:
if is_commented:
- msgstr_lines.append(line[1+len(COMMENT_PREFIX):-1])
+ msgstr_lines.append(line[1 + len(COMMENT_PREFIX):-1])
else:
msgstr_lines.append(line)
is_broken = True
@@ -227,7 +224,6 @@ def parse_messages(fname):
if reading_msgstr:
finalize_message()
-
return (messages,
{"trans_msg": translated_messages,
"fuzzy_msg": fuzzy_messages,
@@ -248,7 +244,7 @@ def write_messages(fname, messages, commented, fuzzy):
"returned values). commented and fuzzy are two sets containing msgid. " \
"Returns the number of written messages."
num = 0
- with open(fname, 'w', "utf-8") as f:
+ with open(fname, 'w', encoding="utf-8") as f:
for msgkey, val in messages.items():
msgctxt, msgid = msgkey
f.write("\n".join(val["comment_lines"]))
@@ -339,13 +335,13 @@ def print_stats(stats, glob_stats=None, prefix=""):
lvl = lvl_ttips = lvl_trans_ttips = lvl_ttips_in_trans = lvl_comm = 0.0
if tot_msgs > 0:
- lvl = float(trans_msgs)/float(tot_msgs)
- lvl_ttips = float(tot_ttips)/float(tot_msgs)
- lvl_comm = float(comm_msgs)/float(tot_msgs+comm_msgs)
+ lvl = float(trans_msgs) / float(tot_msgs)
+ lvl_ttips = float(tot_ttips) / float(tot_msgs)
+ lvl_comm = float(comm_msgs) / float(tot_msgs+comm_msgs)
if tot_ttips > 0:
- lvl_trans_ttips = float(trans_ttips)/float(tot_ttips)
+ lvl_trans_ttips = float(trans_ttips) / float(tot_ttips)
if trans_msgs > 0:
- lvl_ttips_in_trans = float(trans_ttips)/float(trans_msgs)
+ lvl_ttips_in_trans = float(trans_ttips) / float(trans_msgs)
if glob_stats:
glob_stats["nbr"] += 1.0
@@ -369,9 +365,8 @@ def print_stats(stats, glob_stats=None, prefix=""):
"{:>6.1%} of translated messages are tooltips ({} over {}).\n"
"".format(lvl_ttips_in_trans, trans_ttips, trans_msgs),
"{:>6.1%} of messages are commented ({} over {}).\n"
- "".format(lvl_comm, comm_msgs, comm_msgs+tot_msgs),
+ "".format(lvl_comm, comm_msgs, comm_msgs + tot_msgs),
"This translation is currently made of {} signs.\n"
"".format(nbr_trans_signs))
print(prefix.join(lines))
return 0
-
diff --git a/release/scripts/modules/blend_render_info.py b/release/scripts/modules/blend_render_info.py
index 8762ea0e287..d08b9e09dda 100755
--- a/release/scripts/modules/blend_render_info.py
+++ b/release/scripts/modules/blend_render_info.py
@@ -86,6 +86,8 @@ def read_blend_rend_chunk(path):
scenes.append((start_frame, end_frame, scene_name))
+ blendfile.close()
+
return scenes
diff --git a/release/scripts/modules/bpy/path.py b/release/scripts/modules/bpy/path.py
index 7b54af944ad..d32b69b501c 100644
--- a/release/scripts/modules/bpy/path.py
+++ b/release/scripts/modules/bpy/path.py
@@ -133,9 +133,6 @@ def display_name(name):
mixed case names are kept as is. Intended for use with
filenames and module names.
"""
-
- name = _os.path.splitext(name)[0]
-
# string replacements
name = name.replace("_colon_", ":")
@@ -154,7 +151,6 @@ def display_name_from_filepath(name):
ensured to be utf8 compatible.
"""
- name = _os.path.splitext(basename(name))[0]
name = _clean_utf8(name)
return name
@@ -260,7 +256,7 @@ def module_names(path, recursive=False):
elif filename.endswith(".py") and filename != "__init__.py":
fullpath = join(path, filename)
modules.append((filename[0:-3], fullpath))
- elif ("." not in filename):
+ elif "." not in filename:
directory = join(path, filename)
fullpath = join(directory, "__init__.py")
if isfile(fullpath):
@@ -268,8 +264,8 @@ def module_names(path, recursive=False):
if recursive:
for mod_name, mod_path in module_names(directory, True):
modules.append(("%s.%s" % (filename, mod_name),
- mod_path,
- ))
+ mod_path,
+ ))
return modules
diff --git a/release/scripts/modules/bpy/utils.py b/release/scripts/modules/bpy/utils.py
index ad657284492..573694ff08e 100644
--- a/release/scripts/modules/bpy/utils.py
+++ b/release/scripts/modules/bpy/utils.py
@@ -33,14 +33,18 @@ __all__ = (
"refresh_script_paths",
"register_class",
"register_module",
+ "register_manual_map",
+ "unregister_manual_map",
+ "manual_map",
"resource_path",
+ "script_path_user",
+ "script_path_pref",
"script_paths",
"smpte_from_frame",
"smpte_from_seconds",
"unregister_class",
"unregister_module",
"user_resource",
- "user_script_path",
)
from _bpy import register_class, unregister_class, blend_paths, resource_path
@@ -252,15 +256,16 @@ _scripts = _os.path.join(_os.path.dirname(__file__),
_scripts = (_os.path.normpath(_scripts), )
-def user_script_path():
- # returns the env var and falls back to userprefs
+def script_path_user():
+ """returns the env var and falls back to home dir or None"""
path = _user_resource('SCRIPTS')
+ return _os.path.normpath(path) if path else None
- if path:
- path = _os.path.normpath(path)
- return path
- else:
- return None
+
+def script_path_pref():
+ """returns the user preference or None"""
+ path = _bpy.context.user_preferences.filepaths.script_directory
+ return _os.path.normpath(path) if path else None
def script_paths(subdir=None, user_pref=True, check_all=False):
@@ -278,10 +283,6 @@ def script_paths(subdir=None, user_pref=True, check_all=False):
:rtype: list
"""
scripts = list(_scripts)
- prefs = _bpy.context.user_preferences
-
- # add user scripts dir
- user_script = user_script_path()
if check_all:
# all possible paths
@@ -291,7 +292,7 @@ def script_paths(subdir=None, user_pref=True, check_all=False):
# only paths blender uses
base_paths = _bpy_script_paths()
- for path in base_paths + (user_script, ):
+ for path in base_paths + (script_path_user(), script_path_pref()):
if path:
path = _os.path.normpath(path)
if path not in scripts and _os.path.isdir(path):
@@ -597,3 +598,42 @@ def unregister_module(module, verbose=False):
traceback.print_exc()
if verbose:
print("done.\n")
+
+
+# -----------------------------------------------------------------------------
+# Manual lookups, each function has to return a basepath and a sequence
+# of...
+
+# we start with the built-in default mapping
+def _blender_default_map():
+ import sys
+ import rna_wiki_reference as ref_mod
+ ret = (ref_mod.url_manual_prefix, ref_mod.url_manual_mapping)
+ # avoid storing in memory
+ del sys.modules["rna_wiki_reference"]
+ return ret
+
+# hooks for doc lookups
+_manual_map = [_blender_default_map]
+
+
+def register_manual_map(manual_hook):
+ _manual_map.append(manual_hook)
+
+
+def unregister_manual_map(manual_hook):
+ _manual_map.remove(manual_hook)
+
+
+def manual_map():
+ # reverse so default is called last
+ for cb in reversed(_manual_map):
+ try:
+ prefix, url_manual_mapping = cb()
+ except:
+ print("Error calling %r" % cb)
+ import traceback
+ traceback.print_exc()
+ continue
+
+ yield prefix, url_manual_mapping
diff --git a/release/scripts/modules/bpy_extras/anim_utils.py b/release/scripts/modules/bpy_extras/anim_utils.py
index c4ec805a72d..b8d08628de4 100644
--- a/release/scripts/modules/bpy_extras/anim_utils.py
+++ b/release/scripts/modules/bpy_extras/anim_utils.py
@@ -181,6 +181,9 @@ def bake_action(frame_start,
while pbone.constraints:
pbone.constraints.remove(pbone.constraints[0])
+ # create compatible eulers
+ euler_prev = None
+
for f in frame_range:
f_step = (f - frame_start) // frame_step
matrix = pose_info[f_step][name]["matrix_key"]
@@ -198,8 +201,19 @@ def bake_action(frame_start,
elif rotation_mode == 'AXIS_ANGLE':
pbone.keyframe_insert("rotation_axis_angle", -1, f, name)
else: # euler, XYZ, ZXY etc
+
+ if euler_prev is not None:
+ euler = pbone.rotation_euler.copy()
+ euler.make_compatible(euler_prev)
+ pbone.rotation_euler = euler
+ euler_prev = euler
+ del euler
+
pbone.keyframe_insert("rotation_euler", -1, f, name)
+ if euler_prev is None:
+ euler_prev = pbone.rotation_euler.copy()
+
pbone.keyframe_insert("scale", -1, f, name)
# object. TODO. multiple objects
@@ -208,6 +222,9 @@ def bake_action(frame_start,
while obj.constraints:
obj.constraints.remove(obj.constraints[0])
+ # create compatible eulers
+ euler_prev = None
+
for f in frame_range:
matrix = obj_info[(f - frame_start) // frame_step]["matrix_key"]
obj.matrix_local = matrix
@@ -221,8 +238,18 @@ def bake_action(frame_start,
elif rotation_mode == 'AXIS_ANGLE':
obj.keyframe_insert("rotation_axis_angle", -1, f)
else: # euler, XYZ, ZXY etc
+ if euler_prev is not None:
+ euler = obj.rotation_euler.copy()
+ euler.make_compatible(euler_prev)
+ obj.rotation_euler = euler
+ euler_prev = euler
+ del euler
+
obj.keyframe_insert("rotation_euler", -1, f)
+ if euler_prev is None:
+ euler_prev = obj.rotation_euler.copy()
+
obj.keyframe_insert("scale", -1, f)
scene.frame_set(frame_back)
diff --git a/release/scripts/modules/bpy_extras/mesh_utils.py b/release/scripts/modules/bpy_extras/mesh_utils.py
index ad0fe06b68b..ad3cf8c08ec 100644
--- a/release/scripts/modules/bpy_extras/mesh_utils.py
+++ b/release/scripts/modules/bpy_extras/mesh_utils.py
@@ -232,7 +232,7 @@ def edge_loops_from_tessfaces(mesh, tessfaces=None, seams=()):
ed_adj = edges[context_loop[-1]]
if len(ed_adj) != 2:
# the original edge had 2 other edges
- if other_dir and flipped == False:
+ if other_dir and flipped is False:
flipped = True # only flip the list once
context_loop.reverse()
ed_adj[:] = []
diff --git a/release/scripts/modules/bpy_types.py b/release/scripts/modules/bpy_types.py
index 9ad9a7affc3..4cd823d9184 100644
--- a/release/scripts/modules/bpy_types.py
+++ b/release/scripts/modules/bpy_types.py
@@ -689,10 +689,10 @@ class Menu(StructRNA, _GenericUI, metaclass=RNAMeta):
files = []
for directory in searchpaths:
files.extend([(f, os.path.join(directory, f))
- for f in os.listdir(directory)
- if (not f.startswith("."))
- if ((filter_ext is None) or
- (filter_ext(os.path.splitext(f)[1])))
+ for f in os.listdir(directory)
+ if (not f.startswith("."))
+ if ((filter_ext is None) or
+ (filter_ext(os.path.splitext(f)[1])))
])
files.sort()
diff --git a/release/scripts/modules/bpyml.py b/release/scripts/modules/bpyml.py
index 42d2bf94fba..e942006010b 100644
--- a/release/scripts/modules/bpyml.py
+++ b/release/scripts/modules/bpyml.py
@@ -160,7 +160,7 @@ if __name__ == "__main__":
from bpyml_test import *
draw = [
- ui()[
+ ui()[
split()[
column()[
prop(data='context.scene.render', property='use_stamp_time', text='Time'),
diff --git a/release/scripts/modules/console_python.py b/release/scripts/modules/console_python.py
index 2aaadb17b71..18d448b764f 100644
--- a/release/scripts/modules/console_python.py
+++ b/release/scripts/modules/console_python.py
@@ -30,7 +30,7 @@ _BPY_MAIN_OWN = True
def add_scrollback(text, text_type):
for l in text.split("\n"):
bpy.ops.console.scrollback_append(text=l.replace("\t", " "),
- type=text_type)
+ type=text_type)
def replace_help(namespace):
@@ -195,7 +195,7 @@ def execute(context):
# insert a new blank line
bpy.ops.console.history_append(text="", current_character=0,
- remove_duplicates=True)
+ remove_duplicates=True)
# Insert the output into the editor
# not quite correct because the order might have changed,
@@ -290,6 +290,40 @@ def autocomplete(context):
return {'FINISHED'}
+def copy_as_script(context):
+ sc = context.space_data
+ lines = [
+ "import bpy",
+ "import bpy.context as C",
+ "import bpy.data as D",
+ "from mathutils import *",
+ "from math import *",
+ "",
+ ]
+
+ for line in sc.scrollback:
+ text = line.body
+ type = line.type
+
+ if type == 'INFO': # ignore autocomp.
+ continue
+ if type == 'INPUT':
+ if text.startswith(PROMPT):
+ text = text[len(PROMPT):]
+ elif text.startswith(PROMPT_MULTI):
+ text = text[len(PROMPT_MULTI):]
+ elif type == 'OUTPUT':
+ text = "#~ " + text
+ elif type == 'ERROR':
+ text = "#! " + text
+
+ lines.append(text)
+
+ context.window_manager.clipboard = "\n".join(lines)
+
+ return {'FINISHED'}
+
+
def banner(context):
sc = context.space_data
version_string = sys.version.strip().replace('\n', ' ')
@@ -308,7 +342,8 @@ def banner(context):
'OUTPUT')
add_scrollback("Convenience Imports: from mathutils import *; "
"from math import *", 'OUTPUT')
- add_scrollback("Convenience Variables: C = bpy.context, D = bpy.data", 'OUTPUT')
+ add_scrollback("Convenience Variables: C = bpy.context, D = bpy.data",
+ 'OUTPUT')
add_scrollback("", 'OUTPUT')
sc.prompt = PROMPT
diff --git a/release/scripts/modules/console_shell.py b/release/scripts/modules/console_shell.py
index c27524ffe44..42348f453cd 100644
--- a/release/scripts/modules/console_shell.py
+++ b/release/scripts/modules/console_shell.py
@@ -24,9 +24,9 @@ language_id = "shell"
def add_scrollback(text, text_type):
- for l in text.split('\n'):
- bpy.ops.console.scrollback_append(text=l.replace('\t', ' '),
- type=text_type)
+ for l in text.split("\n"):
+ bpy.ops.console.scrollback_append(text=l.replace("\t", " "),
+ type=text_type)
def shell_run(text):
@@ -40,7 +40,7 @@ def shell_run(text):
add_scrollback(output, style)
-PROMPT = '$ '
+PROMPT = "$ "
def execute(context):
@@ -57,7 +57,7 @@ def execute(context):
# insert a new blank line
bpy.ops.console.history_append(text="", current_character=0,
- remove_duplicates=True)
+ remove_duplicates=True)
sc.prompt = os.getcwd() + PROMPT
return {'FINISHED'}
diff --git a/release/scripts/modules/rna_info.py b/release/scripts/modules/rna_info.py
index 0ef2ac5164d..6f4b63fc99a 100644
--- a/release/scripts/modules/rna_info.py
+++ b/release/scripts/modules/rna_info.py
@@ -249,7 +249,7 @@ class InfoPropertyRNA:
def get_arg_default(self, force=True):
default = self.default_str
- if default and (force or self.is_required == False):
+ if default and (force or self.is_required is False):
return "%s=%s" % (self.identifier, default)
return self.identifier
@@ -493,7 +493,7 @@ def BuildRNAInfo():
# Arrange so classes are always defined in the correct order
deps_ok = False
- while deps_ok == False:
+ while deps_ok is False:
deps_ok = True
rna_done = set()
diff --git a/release/scripts/modules/rna_xml.py b/release/scripts/modules/rna_xml.py
index 5354fd1c776..fc8e3125228 100644
--- a/release/scripts/modules/rna_xml.py
+++ b/release/scripts/modules/rna_xml.py
@@ -99,11 +99,11 @@ def rna2xml(fw=print_ln,
subvalue = getattr(value, prop)
subvalue_type = type(subvalue)
- if subvalue_type in (int, bool, float):
+ if subvalue_type in {int, bool, float}:
node_attrs.append("%s=\"%s\"" % (prop, number_to_str(subvalue, subvalue_type)))
elif subvalue_type is str:
node_attrs.append("%s=%s" % (prop, quoteattr(subvalue)))
- elif subvalue_type == set:
+ elif subvalue_type is set:
node_attrs.append("%s=%s" % (prop, quoteattr("{" + ",".join(list(subvalue)) + "}")))
elif subvalue is None:
node_attrs.append("%s=\"NONE\"" % prop)
@@ -137,7 +137,7 @@ def rna2xml(fw=print_ln,
# default
def str_recursive(s):
subsubvalue_type = type(s)
- if subsubvalue_type in (int, float, bool):
+ if subsubvalue_type in {int, float, bool}:
return number_to_str(s, subsubvalue_type)
else:
return " ".join([str_recursive(si) for si in s])
@@ -250,14 +250,17 @@ def xml2rna(root_xml,
if value_xml.startswith("#"):
# read hexidecimal value as float array
value_xml_split = value_xml[1:]
- value_xml_coerce = [int(value_xml_split[i:i + 2], 16) / 255 for i in range(0, len(value_xml_split), 2)]
+ value_xml_coerce = [int(value_xml_split[i:i + 2], 16) / 255 for i in range(0, len(value_xml_split), 2)]
del value_xml_split
else:
value_xml_split = value_xml.split()
try:
value_xml_coerce = [int(v) for v in value_xml_split]
except ValueError:
- value_xml_coerce = [float(v) for v in value_xml_split]
+ try:
+ value_xml_coerce = [float(v) for v in value_xml_split]
+ except ValueError: # bool vector property
+ value_xml_coerce = [{'TRUE': True, 'FALSE': False}[v] for v in value_xml_split]
del value_xml_split
tp_name = 'ARRAY'
diff --git a/release/scripts/modules/sys_info.py b/release/scripts/modules/sys_info.py
index 6fc50bcfe0d..ea75bfde809 100644
--- a/release/scripts/modules/sys_info.py
+++ b/release/scripts/modules/sys_info.py
@@ -87,7 +87,8 @@ def write_sysinfo(op):
output.write("\nDirectories:\n")
output.write(lilies)
output.write("scripts: %r\n" % (bpy.utils.script_paths()))
- output.write("user scripts: %r\n" % (bpy.utils.user_script_path()))
+ output.write("user scripts: %r\n" % (bpy.utils.script_path_user()))
+ output.write("pref scripts: %r\n" % (bpy.utils.script_path_pref()))
output.write("datafiles: %r\n" % (bpy.utils.user_resource('DATAFILES')))
output.write("config: %r\n" % (bpy.utils.user_resource('CONFIG')))
output.write("scripts : %r\n" % (bpy.utils.user_resource('SCRIPTS')))
diff --git a/release/scripts/presets/interaction/blender.py b/release/scripts/presets/interaction/blender.py
index c5454e479a3..0c79a3fc909 100644
--- a/release/scripts/presets/interaction/blender.py
+++ b/release/scripts/presets/interaction/blender.py
@@ -1,7 +1,8 @@
# Configuration Blender
import bpy
-bpy.context.user_preferences.view.use_mouse_auto_depth = False
+bpy.context.user_preferences.view.use_mouse_depth_cursor = False
+bpy.context.user_preferences.view.use_mouse_depth_navigate = False
bpy.context.user_preferences.view.use_zoom_to_mouse = False
bpy.context.user_preferences.view.use_rotate_around_active = False
bpy.context.user_preferences.edit.use_drag_immediately = False
diff --git a/release/scripts/presets/interface_theme/back_to_black.xml b/release/scripts/presets/interface_theme/back_to_black.xml
index 24f135e8548..805aa9bd184 100644
--- a/release/scripts/presets/interface_theme/back_to_black.xml
+++ b/release/scripts/presets/interface_theme/back_to_black.xml
@@ -9,6 +9,7 @@
handle_auto="#909000"
handle_sel_auto="#f0ff40"
bone_pose="#50c8ff"
+ bone_pose_active="#8cffff"
bone_solid="#c8c8c8"
bundle_solid="#c8c8c8"
camera="#000000"
diff --git a/release/scripts/presets/interface_theme/blender_24x.xml b/release/scripts/presets/interface_theme/blender_24x.xml
index 79d1ed4ecf4..232276e300e 100644
--- a/release/scripts/presets/interface_theme/blender_24x.xml
+++ b/release/scripts/presets/interface_theme/blender_24x.xml
@@ -9,6 +9,7 @@
handle_auto="#909000"
handle_sel_auto="#f0ff40"
bone_pose="#50c8ff"
+ bone_pose_active="#8cffff"
bone_solid="#c8c8c8"
bundle_solid="#c8c8c8"
camera="#000000"
diff --git a/release/scripts/presets/interface_theme/elsyiun.xml b/release/scripts/presets/interface_theme/elsyiun.xml
index bfeb3a0175e..581f5ce82d6 100644
--- a/release/scripts/presets/interface_theme/elsyiun.xml
+++ b/release/scripts/presets/interface_theme/elsyiun.xml
@@ -9,6 +9,7 @@
handle_auto="#909000"
handle_sel_auto="#f0ff40"
bone_pose="#50c8ff"
+ bone_pose_active="#8cffff"
bone_solid="#c8c8c8"
bundle_solid="#c8c8c8"
camera="#000000"
@@ -282,7 +283,7 @@
<ThemeInfo>
<space>
<ThemeSpaceGeneric header="#3b3b3b"
- header_text="#8b8b8b"
+ header_text="#000000"
header_text_hi="#000000"
button="#3b3b3b"
button_text="#000000"
diff --git a/release/scripts/presets/interface_theme/hexagon.xml b/release/scripts/presets/interface_theme/hexagon.xml
index 7727d860a90..61730583396 100644
--- a/release/scripts/presets/interface_theme/hexagon.xml
+++ b/release/scripts/presets/interface_theme/hexagon.xml
@@ -9,6 +9,7 @@
handle_auto="#909000"
handle_sel_auto="#f0ff40"
bone_pose="#50c8ff"
+ bone_pose_active="#8cffff"
bone_solid="#c8c8c8"
bundle_solid="#c8c8c8"
camera="#000000"
diff --git a/release/scripts/presets/interface_theme/ubuntu_ambiance.xml b/release/scripts/presets/interface_theme/ubuntu_ambiance.xml
index 72852e27604..05075f06239 100644
--- a/release/scripts/presets/interface_theme/ubuntu_ambiance.xml
+++ b/release/scripts/presets/interface_theme/ubuntu_ambiance.xml
@@ -1,68 +1,69 @@
<bpy>
<Theme>
<view_3d>
- <ThemeView3D object_active="#f58032"
+ <ThemeView3D object_active="#f47421"
editmesh_active="#ffffff80"
act_spline="#ee4000"
- handle_align="#862074"
- handle_sel_align="#f090a0"
- handle_auto="#909000"
- handle_sel_auto="#f0ff40"
+ handle_align="#93237f"
+ handle_sel_align="#f47421"
+ handle_auto="#00c59a"
+ handle_sel_auto="#f47421"
bone_pose="#50c8ff"
+ bone_pose_active="#8cffff"
bone_solid="#c8c8c8"
bundle_solid="#c8c8c8"
- camera="#000000"
- camera_path="#000000"
+ camera="#159dce"
+ camera_path="#7dbd00"
frame_current="#60c040"
edge_crease="#ce33b8"
extra_edge_len="#200000"
edge_seam="#db4100"
- edge_select="#f68d46"
+ edge_select="#f47421"
edge_sharp="#ff4c00"
edge_facesel="#4b4b4b"
- empty="#000000"
+ empty="#93237f"
face="#75757512"
extra_face_angle="#002000"
extra_face_area="#0059ee"
- face_dot="#ff8500"
+ face_dot="#f47421"
facedot_size="3"
normal="#19b6ee"
- face_select="#ff85003c"
- handle_free="#000000"
- handle_sel_free="#000000"
+ face_select="#f474213c"
+ handle_free="#a5ca00"
+ handle_sel_free="#f47421"
grid="#3c3b37"
- lamp="#00000028"
+ lamp="#ffffff34"
lastsel_point="#ffffff"
nurb_uline="#909000"
nurb_vline="#862074"
nurb_sel_uline="#f0ff40"
nurb_sel_vline="#d15d85"
- object_grouped="#083008"
- object_grouped_active="#55bb55"
+ object_grouped="#117211"
+ object_grouped_active="#65d665"
object_selected="#f15800"
- outline_width="1"
+ outline_width="2"
panel="#a5a5a57f"
skin_root="#000000"
- speaker="#000000"
+ speaker="#93237f"
transform="#ffffff"
handle_vect="#409030"
handle_sel_vect="#82c036"
vertex="#c96cb8"
vertex_normal="#19b6ee"
- vertex_select="#f15800"
+ vertex_select="#f47421"
vertex_size="2"
- wire="#862074">
+ wire="#93237f">
<space>
<ThemeSpaceGeneric header="#464541"
- header_text="#000000"
+ header_text="#acacac"
header_text_hi="#ffffff"
button="#3c3b37"
button_text="#9c9c9c"
button_text_hi="#ffffff"
button_title="#9c9c9c"
- text="#000000"
+ text="#9c9c9c"
text_hi="#ffffff"
- title="#000000"
+ title="#9c9c9c"
back="#131311">
</ThemeSpaceGeneric>
</space>
@@ -70,7 +71,7 @@
</view_3d>
<clip_editor>
<ThemeClipEditor active_marker="#ffffff"
- frame_current="#c07100"
+ frame_current="#f47421"
disabled_marker="#7f0000"
grid="#302e2c"
handle_vertex="#000000"
@@ -85,16 +86,16 @@
strips="#0c0a0a"
strips_selected="#ff8c00">
<space>
- <ThemeSpaceGeneric header="#3c3b37"
- header_text="#000000"
+ <ThemeSpaceGeneric header="#464541"
+ header_text="#9c9c9c"
header_text_hi="#ffffff"
button="#3c3b37"
- button_text="#000000"
+ button_text="#ffffff"
button_text_hi="#ffffff"
- button_title="#000000"
- text="#000000"
+ button_title="#9c9c9c"
+ text="#9c9c9c"
text_hi="#ffffff"
- title="#000000"
+ title="#9c9c9c"
back="#131311">
</ThemeSpaceGeneric>
</space>
@@ -108,14 +109,14 @@
</ThemeClipEditor>
</clip_editor>
<console>
- <ThemeConsole cursor="#dc5a00"
- line_error="#dc0000"
- line_info="#85aa00"
- line_input="#828282"
- line_output="#f58032">
+ <ThemeConsole cursor="#f47421"
+ line_error="#ff0000"
+ line_info="#f47421"
+ line_input="#19b6ee"
+ line_output="#97f500">
<space>
<ThemeSpaceGeneric header="#464541"
- header_text="#000000"
+ header_text="#acacac"
header_text_hi="#ffffff"
button="#3c3b37"
button_text="#000000"
@@ -132,7 +133,7 @@
<dopesheet_editor>
<ThemeDopeSheet active_channels_group="#a2b15c"
channel_group="#4f6549"
- channels="#74736e"
+ channels="#9c9c9c"
channels_selected="#6592f5"
frame_current="#f58032"
dopesheet_channel="#64486e"
@@ -142,26 +143,26 @@
long_key_selected="#f47421"
summary="#00000000"
value_sliders="#000000"
- view_sliders="#969696">
+ view_sliders="#9c9c9c">
<space>
<ThemeSpaceGeneric header="#464541"
- header_text="#000000"
+ header_text="#cacaca"
header_text_hi="#ffffff"
button="#3c3b37"
- button_text="#000000"
+ button_text="#9c9c9c"
button_text_hi="#ffffff"
- button_title="#000000"
- text="#000000"
+ button_title="#9c9c9c"
+ text="#e7e7e7"
text_hi="#ffffff"
- title="#000000"
+ title="#9c9c9c"
back="#131311">
</ThemeSpaceGeneric>
</space>
<space_list>
<ThemeSpaceListGeneric list="#3c3b37"
- list_text="#000000"
- list_text_hi="#ffffff"
- list_title="#dddddd">
+ list_text="#e2e2e2"
+ list_text_hi="#f47421"
+ list_title="#ffffff">
</ThemeSpaceListGeneric>
</space_list>
</ThemeDopeSheet>
@@ -174,8 +175,8 @@
selected_file="#6b395a"
tiles="#3c3b37">
<space>
- <ThemeSpaceGeneric header="#3c3b37"
- header_text="#000000"
+ <ThemeSpaceGeneric header="#464541"
+ header_text="#acacac"
header_text_hi="#ffffff"
button="#727272"
button_text="#000000"
@@ -198,50 +199,50 @@
</file_browser>
<graph_editor>
<ThemeGraphEditor active_channels_group="#87b17d"
- handle_align="#803060"
- handle_sel_align="#f090a0"
- handle_auto="#909000"
- handle_sel_auto="#f0ff40"
- handle_auto_clamped="#994030"
- handle_sel_auto_clamped="#f0af90"
+ handle_align="#93237f"
+ handle_sel_align="#f49600"
+ handle_auto="#00c59a"
+ handle_sel_auto="#f49600"
+ handle_auto_clamped="#03aa60"
+ handle_sel_auto_clamped="#f49600"
channel_group="#4f6549"
channels_region="#707070"
frame_current="#f58032"
dopesheet_channel="#695c6e"
dopesheet_subchannel="#7c8996"
- handle_free="#000000"
- handle_sel_free="#000000"
+ handle_free="#a5ca00"
+ handle_sel_free="#f49600"
grid="#3c3b37"
- handle_vertex="#000000"
- handle_vertex_select="#f47421"
- handle_vertex_size="3"
- lastsel_point="#000000"
+ handle_vertex="#bbbbbb"
+ handle_vertex_select="#f49600"
+ handle_vertex_size="4"
+ lastsel_point="#fafafa"
panel="#ffffff"
handle_vect="#409030"
handle_sel_vect="#40c030"
- vertex="#000000"
- vertex_select="#ff8500"
- vertex_size="3"
+ vertex="#ffffff"
+ vertex_select="#f49600"
+ vertex_size="4"
window_sliders="#95948f">
<space>
<ThemeSpaceGeneric header="#464541"
- header_text="#000000"
+ header_text="#acacac"
header_text_hi="#ffffff"
button="#3c3b37"
- button_text="#c3c2bc"
+ button_text="#9c9c9c"
button_text_hi="#ffffff"
- button_title="#9e9d98"
- text="#000000"
+ button_title="#9c9c9c"
+ text="#e9e9e9"
text_hi="#ffffff"
- title="#000000"
+ title="#9c9c9c"
back="#131311">
</ThemeSpaceGeneric>
</space>
<space_list>
<ThemeSpaceListGeneric list="#3c3b37"
- list_text="#000000"
- list_text_hi="#ffffff"
- list_title="#000000">
+ list_text="#e2e2e2"
+ list_text_hi="#f47421"
+ list_title="#ffffff">
</ThemeSpaceListGeneric>
</space_list>
</ThemeGraphEditor>
@@ -264,7 +265,7 @@
vertex_size="3">
<space>
<ThemeSpaceGeneric header="#464541"
- header_text="#000000"
+ header_text="#acacac"
header_text_hi="#ffffff"
button="#3c3b37"
button_text="#b9b9b9"
@@ -300,16 +301,16 @@
<ThemeLogicEditor panel="#acacac">
<space>
<ThemeSpaceGeneric header="#464541"
- header_text="#000000"
+ header_text="#acacac"
header_text_hi="#ffffff"
- button="#131311"
+ button="#353430"
button_text="#acacac"
button_text_hi="#ffffff"
button_title="#7d7d7d"
text="#acacac"
text_hi="#ffffff"
title="#000000"
- back="#131311">
+ back="#29001b">
</ThemeSpaceGeneric>
</space>
</ThemeLogicEditor>
@@ -332,7 +333,7 @@
view_sliders="#969696">
<space>
<ThemeSpaceGeneric header="#464541"
- header_text="#000000"
+ header_text="#acacac"
header_text_hi="#ffffff"
button="#3c3b37"
button_text="#000000"
@@ -368,7 +369,7 @@
wire="#f45b00">
<space>
<ThemeSpaceGeneric header="#464541"
- header_text="#000000"
+ header_text="#acacac"
header_text_hi="#ffffff"
button="#353430"
button_text="#acacac"
@@ -394,7 +395,7 @@
selected_highlight="#6a3859">
<space>
<ThemeSpaceGeneric header="#464541"
- header_text="#000000"
+ header_text="#acacac"
header_text_hi="#ffffff"
button="#3c3b37"
button_text="#000000"
@@ -412,7 +413,7 @@
<ThemeProperties panel="#3c3b37">
<space>
<ThemeSpaceGeneric header="#464541"
- header_text="#000000"
+ header_text="#acacac"
header_text_hi="#ffffff"
button="#3c3b37"
button_text="#000000"
@@ -443,32 +444,32 @@
window_sliders="#a0a0a0">
<space>
<ThemeSpaceGeneric header="#464541"
- header_text="#000000"
+ header_text="#acacac"
header_text_hi="#ffffff"
button="#3c3b37"
- button_text="#000000"
+ button_text="#acacac"
button_text_hi="#ffffff"
- button_title="#000000"
- text="#000000"
+ button_title="#acacac"
+ text="#acacac"
text_hi="#ffffff"
- title="#000000"
+ title="#acacac"
back="#191919">
</ThemeSpaceGeneric>
</space>
</ThemeSequenceEditor>
</sequence_editor>
<text_editor>
- <ThemeTextEditor cursor="#df5106"
- syntax_special="#8c8c28"
+ <ThemeTextEditor cursor="#f47421"
+ syntax_special="#33a500"
line_numbers_background="#3c3b37"
- selected_text="#ffffff"
- syntax_builtin="#df3ac2"
+ selected_text="#641f44"
+ syntax_builtin="#d6ff01"
syntax_comment="#249d60"
- syntax_numbers="#3c68ff"
- syntax_string="#aa2694">
+ syntax_numbers="#972144"
+ syntax_string="#6e00ff">
<space>
<ThemeSpaceGeneric header="#464541"
- header_text="#000000"
+ header_text="#acacac"
header_text_hi="#ffffff"
button="#191919"
button_text="#95948f"
@@ -487,13 +488,13 @@
grid="#272727">
<space>
<ThemeSpaceGeneric header="#464541"
- header_text="#000000"
+ header_text="#acacac"
header_text_hi="#ffffff"
button="#3c3b37"
- button_text="#000000"
+ button_text="#9c9c9c"
button_text_hi="#ffffff"
- button_title="#000000"
- text="#949494"
+ button_title="#9c9c9c"
+ text="#9c9c9c"
text_hi="#ffffff"
title="#000000"
back="#131311">
@@ -531,13 +532,13 @@
<wcol_menu_back>
<ThemeWidgetColors inner="#131312db"
inner_sel="#2d2d2de6"
- item="#cbc3bbff"
+ item="#6a3859ff"
outline="#0d0d0d"
shadedown="-20"
shadetop="25"
show_shaded="FALSE"
- text="#7a7a7a"
- text_sel="#ffffff">
+ text="#dddddd"
+ text_sel="#dddddd">
</ThemeWidgetColors>
</wcol_menu_back>
<wcol_menu_item>
@@ -573,7 +574,7 @@
shadetop="20"
show_shaded="TRUE"
text="#dfdbcf"
- text_sel="#fffbed">
+ text_sel="#f47421">
</ThemeWidgetColors>
</wcol_num>
<wcol_option>
@@ -614,7 +615,7 @@
shadetop="25"
show_shaded="FALSE"
text="#dddddd"
- text_sel="#fff7fb">
+ text_sel="#ffffff">
</ThemeWidgetColors>
</wcol_pulldown>
<wcol_radio>
@@ -626,7 +627,7 @@
shadetop="5"
show_shaded="TRUE"
text="#dfdbcf"
- text_sel="#ffffff">
+ text_sel="#dfdbcf">
</ThemeWidgetColors>
</wcol_radio>
<wcol_regular>
@@ -638,16 +639,16 @@
shadetop="21"
show_shaded="TRUE"
text="#dfdfdf"
- text_sel="#ffffff">
+ text_sel="#dfdfdf">
</ThemeWidgetColors>
</wcol_regular>
<wcol_scroll>
- <ThemeWidgetColors inner="#020202b4"
+ <ThemeWidgetColors inner="#000000b4"
inner_sel="#646464c6"
- item="#2c2b28ff"
- outline="#0d0d0d"
- shadedown="-5"
- shadetop="5"
+ item="#2e2d2aff"
+ outline="#000000"
+ shadedown="-10"
+ shadetop="10"
show_shaded="TRUE"
text="#cbc3bb"
text_sel="#ffffff">
@@ -684,7 +685,7 @@
shadetop="-10"
show_shaded="TRUE"
text="#dfdbcf"
- text_sel="#fffaec">
+ text_sel="#ffffff">
</ThemeWidgetColors>
</wcol_text>
<wcol_toggle>
@@ -720,7 +721,7 @@
shadetop="25"
show_shaded="FALSE"
text="#ffffff"
- text_sel="#ffffff">
+ text_sel="#ff5d0d">
</ThemeWidgetColors>
</wcol_tooltip>
</ThemeUserInterface>
diff --git a/release/scripts/presets/tracking_settings/blurry_footage.py b/release/scripts/presets/tracking_settings/blurry_footage.py
index c06d4c3835b..de6f085f53d 100644
--- a/release/scripts/presets/tracking_settings/blurry_footage.py
+++ b/release/scripts/presets/tracking_settings/blurry_footage.py
@@ -1,14 +1,17 @@
import bpy
settings = bpy.context.edit_movieclip.tracking.settings
-settings.default_tracker = 'Hybrid'
-settings.default_pyramid_levels = 2
-settings.default_correlation_min = 0.75
-settings.default_pattern_size = 21
-settings.default_search_size = 100
+
+settings.default_pattern_size = 31
+settings.default_search_size = 91
+settings.default_motion_model = 'Loc'
+settings.use_default_brute = True
+settings.use_default_normalization = False
+settings.use_default_mask = False
settings.default_frames_limit = 0
settings.default_pattern_match = 'PREV_FRAME'
settings.default_margin = 0
settings.use_default_red_channel = True
settings.use_default_green_channel = True
settings.use_default_blue_channel = True
+settings.default_correlation_min = 0.6
diff --git a/release/scripts/presets/tracking_settings/blurry_movie.py b/release/scripts/presets/tracking_settings/blurry_movie.py
deleted file mode 100644
index 8a503bec9bd..00000000000
--- a/release/scripts/presets/tracking_settings/blurry_movie.py
+++ /dev/null
@@ -1,11 +0,0 @@
-import bpy
-settings = bpy.context.edit_movieclip.tracking.settings
-
-settings.default_tracker = 'KLT'
-settings.default_pyramid_levels = 4
-settings.default_correlation_min = 0.75
-settings.default_pattern_size = 11
-settings.default_search_size = 202
-settings.default_frames_limit = 25
-settings.default_pattern_match = 'KEYFRAME'
-settings.default_margin = 0
diff --git a/release/scripts/presets/tracking_settings/default.py b/release/scripts/presets/tracking_settings/default.py
index b9fd1928472..3c61ea7cd7f 100644
--- a/release/scripts/presets/tracking_settings/default.py
+++ b/release/scripts/presets/tracking_settings/default.py
@@ -1,14 +1,17 @@
import bpy
settings = bpy.context.edit_movieclip.tracking.settings
-settings.default_tracker = 'Hybrid'
-settings.default_pyramid_levels = 2
-settings.default_correlation_min = 0.75
-settings.default_pattern_size = 11
-settings.default_search_size = 61
+
+settings.default_pattern_size = 15
+settings.default_search_size = 51
+settings.default_motion_model = 'Loc'
+settings.use_default_brute = True
+settings.use_default_normalization = False
+settings.use_default_mask = False
settings.default_frames_limit = 0
settings.default_pattern_match = 'KEYFRAME'
settings.default_margin = 0
settings.use_default_red_channel = True
settings.use_default_green_channel = True
settings.use_default_blue_channel = True
+settings.default_correlation_min = 0.75
diff --git a/release/scripts/presets/tracking_settings/fast_motion.py b/release/scripts/presets/tracking_settings/fast_motion.py
index dce3304eddb..6051f235b0c 100644
--- a/release/scripts/presets/tracking_settings/fast_motion.py
+++ b/release/scripts/presets/tracking_settings/fast_motion.py
@@ -1,14 +1,17 @@
import bpy
settings = bpy.context.edit_movieclip.tracking.settings
-settings.default_tracker = 'Hybrid'
-settings.default_pyramid_levels = 2
-settings.default_correlation_min = 0.7
+
settings.default_pattern_size = 31
-settings.default_search_size = 300
+settings.default_search_size = 151
+settings.default_motion_model = 'LocRot'
+settings.use_default_brute = True
+settings.use_default_normalization = True
+settings.use_default_mask = False
settings.default_frames_limit = 0
settings.default_pattern_match = 'PREV_FRAME'
-settings.default_margin = 5
+settings.default_margin = 0
settings.use_default_red_channel = True
settings.use_default_green_channel = True
settings.use_default_blue_channel = True
+settings.default_correlation_min = 0.6
diff --git a/release/scripts/presets/tracking_settings/planar.py b/release/scripts/presets/tracking_settings/planar.py
new file mode 100644
index 00000000000..49a64046002
--- /dev/null
+++ b/release/scripts/presets/tracking_settings/planar.py
@@ -0,0 +1,17 @@
+import bpy
+settings = bpy.context.edit_movieclip.tracking.settings
+
+
+settings.default_pattern_size = 41
+settings.default_search_size = 91
+settings.default_motion_model = 'Perspective'
+settings.use_default_brute = False
+settings.use_default_normalization = False
+settings.use_default_mask = False
+settings.default_frames_limit = 0
+settings.default_pattern_match = 'KEYFRAME'
+settings.default_margin = 0
+settings.use_default_red_channel = True
+settings.use_default_green_channel = True
+settings.use_default_blue_channel = True
+settings.default_correlation_min = 0.75
diff --git a/release/scripts/startup/bl_operators/__init__.py b/release/scripts/startup/bl_operators/__init__.py
index 06b4429d25c..ecbbe34dbb4 100644
--- a/release/scripts/startup/bl_operators/__init__.py
+++ b/release/scripts/startup/bl_operators/__init__.py
@@ -29,6 +29,7 @@ _modules = (
"console",
"image",
"mesh",
+ "node",
"object_align",
"object",
"object_randomize_transform",
diff --git a/release/scripts/startup/bl_operators/add_mesh_torus.py b/release/scripts/startup/bl_operators/add_mesh_torus.py
index 6c48ae72e4b..7da4d8a480d 100644
--- a/release/scripts/startup/bl_operators/add_mesh_torus.py
+++ b/release/scripts/startup/bl_operators/add_mesh_torus.py
@@ -49,9 +49,9 @@ def add_torus(major_rad, minor_rad, major_seg, minor_seg):
angle = 2 * pi * minor_index / minor_seg
vec = quat * Vector((major_rad + (cos(angle) * minor_rad),
- 0.0,
- (sin(angle) * minor_rad),
- ))
+ 0.0,
+ (sin(angle) * minor_rad),
+ ))
verts.extend(vec[:])
@@ -133,7 +133,7 @@ class AddTorus(Operator, object_utils.AddObjectHelper):
)
def execute(self, context):
- if self.use_abso == True:
+ if self.use_abso is True:
extra_helper = (self.abso_major_rad - self.abso_minor_rad) * 0.5
self.major_radius = self.abso_minor_rad + extra_helper
self.minor_radius = extra_helper
diff --git a/release/scripts/startup/bl_operators/anim.py b/release/scripts/startup/bl_operators/anim.py
index 98bad276109..902c7007fb9 100644
--- a/release/scripts/startup/bl_operators/anim.py
+++ b/release/scripts/startup/bl_operators/anim.py
@@ -189,7 +189,7 @@ class BakeAction(Operator):
name="Only Selected",
default=True,
)
- clear_consraints = BoolProperty(
+ clear_constraints = BoolProperty(
name="Clear Constraints",
default=False,
)
@@ -212,9 +212,9 @@ class BakeAction(Operator):
self.only_selected,
'POSE' in self.bake_types,
'OBJECT' in self.bake_types,
- self.clear_consraints,
+ self.clear_constraints,
True,
- )
+ )
if action is None:
self.report({'INFO'}, "Nothing to bake")
@@ -252,8 +252,8 @@ class ClearUselessActions(Operator):
for action in bpy.data.actions:
# if only user is "fake" user...
- if ((self.only_unused is False) or
- (action.use_fake_user and action.users == 1)):
+ if ((self.only_unused is False) or
+ (action.use_fake_user and action.users == 1)):
# if it has F-Curves, then it's a "action library"
# (i.e. walk, wave, jump, etc.)
diff --git a/release/scripts/startup/bl_operators/clip.py b/release/scripts/startup/bl_operators/clip.py
index ffa66274f12..70967a01d1c 100644
--- a/release/scripts/startup/bl_operators/clip.py
+++ b/release/scripts/startup/bl_operators/clip.py
@@ -57,7 +57,7 @@ def CLIP_set_viewport_background(context, all_screens, clip, clip_user):
space_v3d.show_background_images = True
CLIP_spaces_walk(context, all_screens, 'VIEW_3D', 'VIEW_3D',
- set_background, clip, clip_user)
+ set_background, clip, clip_user)
def CLIP_camera_for_clip(context, clip):
@@ -90,14 +90,17 @@ def CLIP_track_view_selected(sc, track):
return False
-def CLIP_default_settings_from_track(clip, track):
+def CLIP_default_settings_from_track(clip, track, framenr):
settings = clip.tracking.settings
width = clip.size[0]
height = clip.size[1]
- pattern = track.pattern_max - track.pattern_min
- search = track.search_max - track.search_min
+ marker = track.markers.find_frame(framenr, False)
+ pattern_bb = marker.pattern_bound_box
+
+ pattern = Vector(pattern_bb[1]) - Vector(pattern_bb[0])
+ search = marker.search_max - marker.search_min
pattern[0] = pattern[0] * width
pattern[1] = pattern[1] * height
@@ -105,14 +108,16 @@ def CLIP_default_settings_from_track(clip, track):
search[0] = search[0] * width
search[1] = search[1] * height
- settings.default_tracker = track.tracker
- settings.default_pyramid_levels = track.pyramid_levels
settings.default_correlation_min = track.correlation_min
settings.default_pattern_size = max(pattern[0], pattern[1])
settings.default_search_size = max(search[0], search[1])
settings.default_frames_limit = track.frames_limit
settings.default_pattern_match = track.pattern_match
settings.default_margin = track.margin
+ settings.default_motion_model = track.motion_model
+ settings.use_default_brute = track.use_brute
+ settings.use_default_normalization = track.use_normalization
+ settings.use_default_mask = track.use_mask
settings.use_default_red_channel = track.use_red_channel
settings.use_default_green_channel = track.use_green_channel
settings.use_default_blue_channel = track.use_blue_channel
@@ -324,7 +329,7 @@ object's movement caused by this constraint"""
if not con:
self.report({'ERROR'},
- "Motion Tracking constraint to be converted not found")
+ "Motion Tracking constraint to be converted not found")
return {'CANCELLED'}
@@ -336,7 +341,7 @@ object's movement caused by this constraint"""
if not clip:
self.report({'ERROR'},
- "Movie clip to use tracking data from isn't set")
+ "Movie clip to use tracking data from isn't set")
return {'CANCELLED'}
@@ -456,9 +461,9 @@ class CLIP_OT_setup_tracking_scene(Operator):
scene.camera = camob
camob.matrix_local = (Matrix.Translation((7.481, -6.508, 5.344)) *
- Matrix.Rotation(0.815, 4, 'Z') *
- Matrix.Rotation(0.011, 4, 'Y') *
- Matrix.Rotation(1.109, 4, 'X'))
+ Matrix.Rotation(0.815, 4, 'Z') *
+ Matrix.Rotation(0.011, 4, 'Y') *
+ Matrix.Rotation(1.109, 4, 'X'))
return camob
@@ -497,7 +502,7 @@ class CLIP_OT_setup_tracking_scene(Operator):
fg = rlayers[0]
fg.name = 'Foreground'
else:
- fg = scene.render.layers.new('Foreground')
+ fg = scene.render.layers.new("Foreground")
fg.use_sky = False
fg.layers = [True] + [False] * 19
@@ -505,7 +510,7 @@ class CLIP_OT_setup_tracking_scene(Operator):
fg.use_pass_vector = True
if not scene.render.layers.get("Background"):
- bg = scene.render.layers.new('Background')
+ bg = scene.render.layers.new("Background")
bg.use_pass_shadow = True
bg.use_pass_ambient_occlusion = True
bg.layers = [False] * 10 + [True] + [False] * 9
@@ -560,7 +565,7 @@ class CLIP_OT_setup_tracking_scene(Operator):
space.show_backdrop = True
CLIP_spaces_walk(context, True, 'NODE_EDITOR', 'NODE_EDITOR',
- setup_space)
+ setup_space)
sc = context.space_data
scene = context.scene
@@ -612,46 +617,46 @@ class CLIP_OT_setup_tracking_scene(Operator):
add_shadow.blend_type = 'ADD'
mul_shadow.blend_type = 'MULTIPLY'
- mul_shadow.inputs['Fac'].default_value = 0.8
+ mul_shadow.inputs["Fac"].default_value = 0.8
mul_image.blend_type = 'MULTIPLY'
- mul_image.inputs['Fac'].default_value = 0.8
+ mul_image.inputs["Fac"].default_value = 0.8
vector_blur.factor = 0.75
# create links
- tree.links.new(movieclip.outputs['Image'], distortion.inputs['Image'])
+ tree.links.new(movieclip.outputs["Image"], distortion.inputs["Image"])
if need_stabilization:
- tree.links.new(distortion.outputs['Image'],
- stabilize.inputs['Image'])
- tree.links.new(stabilize.outputs['Image'], scale.inputs['Image'])
+ tree.links.new(distortion.outputs["Image"],
+ stabilize.inputs["Image"])
+ tree.links.new(stabilize.outputs["Image"], scale.inputs["Image"])
else:
- tree.links.new(distortion.outputs['Image'], scale.inputs['Image'])
+ tree.links.new(distortion.outputs["Image"], scale.inputs["Image"])
- tree.links.new(rlayer_bg.outputs['Alpha'], invert.inputs['Color'])
+ tree.links.new(rlayer_bg.outputs["Alpha"], invert.inputs["Color"])
- tree.links.new(invert.outputs['Color'], add_shadow.inputs[1])
- tree.links.new(rlayer_bg.outputs['Shadow'], add_shadow.inputs[2])
+ tree.links.new(invert.outputs["Color"], add_shadow.inputs[1])
+ tree.links.new(rlayer_bg.outputs["Shadow"], add_shadow.inputs[2])
- tree.links.new(invert.outputs['Color'], add_ao.inputs[1])
- tree.links.new(rlayer_bg.outputs['AO'], add_ao.inputs[2])
+ tree.links.new(invert.outputs["Color"], add_ao.inputs[1])
+ tree.links.new(rlayer_bg.outputs["AO"], add_ao.inputs[2])
- tree.links.new(add_ao.outputs['Image'], mul_shadow.inputs[1])
- tree.links.new(add_shadow.outputs['Image'], mul_shadow.inputs[2])
+ tree.links.new(add_ao.outputs["Image"], mul_shadow.inputs[1])
+ tree.links.new(add_shadow.outputs["Image"], mul_shadow.inputs[2])
- tree.links.new(scale.outputs['Image'], mul_image.inputs[1])
- tree.links.new(mul_shadow.outputs['Image'], mul_image.inputs[2])
+ tree.links.new(scale.outputs["Image"], mul_image.inputs[1])
+ tree.links.new(mul_shadow.outputs["Image"], mul_image.inputs[2])
- tree.links.new(rlayer_fg.outputs['Image'], vector_blur.inputs['Image'])
- tree.links.new(rlayer_fg.outputs['Z'], vector_blur.inputs['Z'])
- tree.links.new(rlayer_fg.outputs['Speed'], vector_blur.inputs['Speed'])
+ tree.links.new(rlayer_fg.outputs["Image"], vector_blur.inputs["Image"])
+ tree.links.new(rlayer_fg.outputs["Z"], vector_blur.inputs["Z"])
+ tree.links.new(rlayer_fg.outputs["Speed"], vector_blur.inputs["Speed"])
- tree.links.new(mul_image.outputs['Image'], alphaover.inputs[1])
- tree.links.new(vector_blur.outputs['Image'], alphaover.inputs[2])
+ tree.links.new(mul_image.outputs["Image"], alphaover.inputs[1])
+ tree.links.new(vector_blur.outputs["Image"], alphaover.inputs[2])
- tree.links.new(alphaover.outputs['Image'], composite.inputs['Image'])
- tree.links.new(alphaover.outputs['Image'], viewer.inputs['Image'])
+ tree.links.new(alphaover.outputs["Image"], composite.inputs["Image"])
+ tree.links.new(alphaover.outputs["Image"], viewer.inputs["Image"])
# place nodes
movieclip.location = Vector((-300.0, 350.0))
@@ -864,6 +869,9 @@ class CLIP_OT_track_settings_as_default(Operator):
sc = context.space_data
clip = sc.clip
- CLIP_default_settings_from_track(clip, clip.tracking.tracks.active)
+ track = clip.tracking.tracks.active
+ framenr = context.scene.frame_current - clip.frame_start + 1
+
+ CLIP_default_settings_from_track(clip, track, framenr)
return {'FINISHED'}
diff --git a/release/scripts/startup/bl_operators/console.py b/release/scripts/startup/bl_operators/console.py
index 82a54077bdc..307165a4d18 100644
--- a/release/scripts/startup/bl_operators/console.py
+++ b/release/scripts/startup/bl_operators/console.py
@@ -67,6 +67,25 @@ class ConsoleAutocomplete(Operator):
return {'FINISHED'}
+class ConsoleCopyAsScript(Operator):
+ """Copy the console contents for use in a script"""
+ bl_idname = "console.copy_as_script"
+ bl_label = "Copy to Clipboard (as script)"
+
+ def execute(self, context):
+ sc = context.space_data
+
+ module = _lang_module_get(sc)
+ copy_as_script = getattr(module, "copy_as_script", None)
+
+ if copy_as_script:
+ return copy_as_script(context)
+ else:
+ print("Error: copy_as_script - not found for %r" %
+ sc.language)
+ return {'FINISHED'}
+
+
class ConsoleBanner(Operator):
"""Print a message when the terminal initializes"""
bl_idname = "console.banner"
@@ -110,6 +129,6 @@ class ConsoleLanguage(Operator):
# insert a new blank line
bpy.ops.console.history_append(text="", current_character=0,
- remove_duplicates=True)
+ remove_duplicates=True)
return {'FINISHED'}
diff --git a/release/scripts/startup/bl_operators/mesh.py b/release/scripts/startup/bl_operators/mesh.py
index 3dc25d84aca..df21349da47 100644
--- a/release/scripts/startup/bl_operators/mesh.py
+++ b/release/scripts/startup/bl_operators/mesh.py
@@ -92,7 +92,7 @@ class MeshMirrorUV(Operator):
puvs[i] = tuple(uv.uv for uv in uv_loops[lstart:lend])
puvs_cpy[i] = tuple(uv.copy() for uv in puvs[i])
puvsel[i] = (False not in
- (uv.select for uv in uv_loops[lstart:lend]))
+ (uv.select for uv in uv_loops[lstart:lend]))
# Vert idx of the poly.
vidxs[i] = tuple(l.vertex_index for l in loops[lstart:lend])
# As we have no poly.center yet...
diff --git a/release/scripts/startup/bl_operators/node.py b/release/scripts/startup/bl_operators/node.py
new file mode 100644
index 00000000000..fb264cb3429
--- /dev/null
+++ b/release/scripts/startup/bl_operators/node.py
@@ -0,0 +1,185 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8-80 compliant>
+
+import bpy
+from bpy.types import Operator
+from bpy.props import EnumProperty
+
+# XXX These node item lists should actually be generated by a callback at
+# operator execution time (see node_type_items below),
+# using the active node tree from the context.
+# Due to a difficult bug in bpy this is not possible
+# (item list memory gets freed too early),
+# so for now just copy the static item lists to these global variables.
+#
+# In the custom_nodes branch, the static per-tree-type node items are replaced
+# by a single independent type list anyway (with a poll function to limit node
+# types to the respective trees). So this workaround is only temporary.
+
+# lazy init
+node_type_items_dict = {}
+
+# Prefixes used to distinguish base node types and node groups
+node_type_prefix = 'NODE_'
+node_group_prefix = 'GROUP_'
+
+
+# Generate a list of enum items for a given node class
+# Copy existing type enum, adding a prefix to distinguish from node groups
+# Skip the base node group type,
+# node groups will be added below for all existing group trees
+def node_type_items(node_class):
+ return [(node_type_prefix + item.identifier, item.name, item.description)
+ for item in node_class.bl_rna.properties['type'].enum_items
+ if item.identifier != 'GROUP']
+
+
+# Generate items for node group types
+# Filter by the given tree_type
+# Node group trees don't have a description property yet
+# (could add this as a custom property though)
+def node_group_items(tree_type):
+ return [(node_group_prefix + group.name, group.name, '')
+ for group in bpy.data.node_groups if group.type == tree_type]
+
+
+# Returns the enum item list for the edited tree in the context
+def node_type_items_cb(self, context):
+ snode = context.space_data
+ if not snode:
+ return ()
+ tree = snode.edit_tree
+ if not tree:
+ return ()
+
+ # Lists of basic node types for each
+ if not node_type_items_dict:
+ node_type_items_dict.update({
+ 'SHADER': node_type_items(bpy.types.ShaderNode),
+ 'COMPOSITING': node_type_items(bpy.types.CompositorNode),
+ 'TEXTURE': node_type_items(bpy.types.TextureNode),
+ })
+
+ # XXX Does not work correctly, see comment above
+ '''
+ return [(item.identifier, item.name, item.description, item.value)
+ for item in
+ tree.nodes.bl_rna.functions['new'].parameters['type'].enum_items]
+ '''
+
+ if tree.type in node_type_items_dict:
+ return node_type_items_dict[tree.type] + node_group_items(tree.type)
+ else:
+ return ()
+
+
+class NODE_OT_add_search(Operator):
+ '''Add a node to the active tree'''
+ bl_idname = "node.add_search"
+ bl_label = "Search and Add Node"
+ bl_options = {'REGISTER', 'UNDO'}
+
+ # XXX this should be called 'node_type' but the operator search
+ # property is hardcoded to 'type' by a hack in bpy_operator_wrap.c ...
+ type = EnumProperty(
+ name="Node Type",
+ description="Node type",
+ items=node_type_items_cb,
+ )
+
+ _node_type_items_dict = None
+
+ def create_node(self, context):
+ space = context.space_data
+ tree = space.edit_tree
+
+ # Enum item identifier has an additional prefix to
+ # distinguish base node types from node groups
+ item = self.type
+ if item.startswith(node_type_prefix):
+ # item means base node type
+ node = tree.nodes.new(type=item[len(node_type_prefix):])
+ elif item.startswith(node_group_prefix):
+ # item means node group type
+ node = tree.nodes.new(
+ type='GROUP',
+ group=bpy.data.node_groups[item[len(node_group_prefix):]])
+ else:
+ return None
+
+ for n in tree.nodes:
+ if n == node:
+ node.select = True
+ tree.nodes.active = node
+ else:
+ node.select = False
+ node.location = space.cursor_location
+ return node
+
+ @classmethod
+ def poll(cls, context):
+ space = context.space_data
+ # needs active node editor and a tree to add nodes to
+ return (space.type == 'NODE_EDITOR' and space.edit_tree)
+
+ def execute(self, context):
+ self.create_node(context)
+ return {'FINISHED'}
+
+ def invoke(self, context, event):
+ space = context.space_data
+ v2d = context.region.view2d
+
+ # convert mouse position to the View2D for later node placement
+ space.cursor_location = v2d.region_to_view(event.mouse_region_x,
+ event.mouse_region_y)
+
+ context.window_manager.invoke_search_popup(self)
+ return {'CANCELLED'}
+
+
+class NODE_OT_collapse_hide_unused_toggle(Operator):
+ '''Toggle collapsed nodes and hide unused sockets'''
+ bl_idname = "node.collapse_hide_unused_toggle"
+ bl_label = "Collapse and Hide Unused Sockets"
+ bl_options = {'REGISTER', 'UNDO'}
+
+ @classmethod
+ def poll(cls, context):
+ space = context.space_data
+ # needs active node editor and a tree
+ return (space.type == 'NODE_EDITOR' and space.edit_tree)
+
+ def execute(self, context):
+ space = context.space_data
+ tree = space.edit_tree
+
+ for node in tree.nodes:
+ if node.select:
+ hide = (not node.hide)
+
+ node.hide = hide
+ # Note: connected sockets are ignored internally
+ for socket in node.inputs:
+ socket.hide = hide
+ for socket in node.outputs:
+ socket.hide = hide
+
+ return {'FINISHED'}
diff --git a/release/scripts/startup/bl_operators/object.py b/release/scripts/startup/bl_operators/object.py
index 5000d718182..4e90f2e8585 100644
--- a/release/scripts/startup/bl_operators/object.py
+++ b/release/scripts/startup/bl_operators/object.py
@@ -408,13 +408,13 @@ class ShapeTransfer(Operator):
n2loc_to = v2_to + target_normals[i2] * edlen_to
pt = barycentric_transform(orig_shape_coords[i1],
- v2, v1, n1loc,
- v2_to, v1_to, n1loc_to)
+ v2, v1, n1loc,
+ v2_to, v1_to, n1loc_to)
median_coords[i1].append(pt)
pt = barycentric_transform(orig_shape_coords[i2],
- v1, v2, n2loc,
- v1_to, v2_to, n2loc_to)
+ v1, v2, n2loc,
+ v1_to, v2_to, n2loc_to)
median_coords[i2].append(pt)
# apply the offsets to the new shape
@@ -507,7 +507,7 @@ class JoinUVs(Operator):
if obj_other != obj and obj_other.type == 'MESH':
mesh_other = obj_other.data
if mesh_other != mesh:
- if mesh_other.tag == False:
+ if mesh_other.tag is False:
mesh_other.tag = True
if len(mesh_other.loops) != nbr_loops:
@@ -520,7 +520,7 @@ class JoinUVs(Operator):
len(mesh_other.polygons),
nbr_loops,
),
- )
+ )
else:
uv_other = mesh_other.uv_layers.active
if not uv_other:
diff --git a/release/scripts/startup/bl_operators/object_quick_effects.py b/release/scripts/startup/bl_operators/object_quick_effects.py
index 62844d11443..35b496b6dd0 100644
--- a/release/scripts/startup/bl_operators/object_quick_effects.py
+++ b/release/scripts/startup/bl_operators/object_quick_effects.py
@@ -510,6 +510,6 @@ class QuickFluid(Operator):
mat.raytrace_transparency.depth = 4
if self.start_baking:
- bpy.ops.fluid.bake()
+ bpy.ops.fluid.bake('INVOKE_DEFAULT')
return {'FINISHED'}
diff --git a/release/scripts/startup/bl_operators/object_randomize_transform.py b/release/scripts/startup/bl_operators/object_randomize_transform.py
index ec0b17b773b..a6efc9dfd85 100644
--- a/release/scripts/startup/bl_operators/object_randomize_transform.py
+++ b/release/scripts/startup/bl_operators/object_randomize_transform.py
@@ -120,7 +120,7 @@ class RandomizeLocRotSize(Operator):
)
loc = FloatVectorProperty(
name="Location",
- description=("Maximun distance the objects "
+ description=("Maximum distance the objects "
"can spread over each axis"),
min=-100.0,
max=100.0,
@@ -134,7 +134,7 @@ class RandomizeLocRotSize(Operator):
)
rot = FloatVectorProperty(
name="Rotation",
- description="Maximun rotation over each axis",
+ description="Maximum rotation over each axis",
min=-3.141592, # math.pi
max=+3.141592,
default=(0.0, 0.0, 0.0),
diff --git a/release/scripts/startup/bl_operators/presets.py b/release/scripts/startup/bl_operators/presets.py
index 0bd9a5065a2..db492450e28 100644
--- a/release/scripts/startup/bl_operators/presets.py
+++ b/release/scripts/startup/bl_operators/presets.py
@@ -436,17 +436,19 @@ class AddPresetTrackingSettings(AddPresetBase, Operator):
]
preset_values = [
- "settings.default_tracker",
- "settings.default_pyramid_levels",
- "settings.default_correlation_min",
- "settings.default_pattern_size",
- "settings.default_search_size",
- "settings.default_frames_limit",
- "settings.default_pattern_match",
- "settings.default_margin",
- "settings.use_default_red_channel",
- "settings.use_default_green_channel",
- "settings.use_default_blue_channel"
+ "default_correlation_min",
+ "default_pattern_size",
+ "default_search_size",
+ "default_frames_limit",
+ "default_pattern_match",
+ "default_margin",
+ "default_motion_model",
+ "use_default_brute",
+ "use_default_normalization",
+ "use_default_mask",
+ "use_default_red_channel",
+ "use_default_green_channel",
+ "use_default_blue_channel"
]
preset_subdir = "tracking_settings"
diff --git a/release/scripts/startup/bl_operators/screen_play_rendered_anim.py b/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
index 9cb9dfc708c..694412e51d7 100644
--- a/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
+++ b/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
@@ -28,7 +28,9 @@ import os
def guess_player_path(preset):
import sys
- if preset == 'BLENDER24':
+ if preset == 'INTERNAL':
+ return bpy.app.binary_path
+ elif preset == 'BLENDER24':
player_path = "blender"
if sys.platform == "darwin":
@@ -87,7 +89,7 @@ class PlayRenderedAnim(Operator):
if player_path == "":
player_path = guess_player_path(preset)
- if is_movie == False and preset in {'FRAMECYCLER', 'RV', 'MPLAYER'}:
+ if is_movie is False and preset in {'FRAMECYCLER', 'RV', 'MPLAYER'}:
# replace the number with '#'
file_a = rd.frame_path(frame=0)
@@ -102,40 +104,18 @@ class PlayRenderedAnim(Operator):
file = ("".join((c if file_b[i] == c else "#")
for i, c in enumerate(file_a)))
+ del file_a, file_b, frame_tmp
+ file = bpy.path.abspath(file) # expand '//'
else:
# works for movies and images
file = rd.frame_path(frame=scene.frame_start)
-
- file = bpy.path.abspath(file) # expand '//'
+ file = bpy.path.abspath(file) # expand '//'
+ if not os.path.exists(file):
+ self.report({'WARNING'}, "File %r not found" % file)
cmd = [player_path]
# extra options, fps controls etc.
- if preset == 'BLENDER24':
- # -----------------------------------------------------------------
- # Check blender is not 2.5x until it supports playback again
- try:
- process = subprocess.Popen([player_path, '--version'],
- stdout=subprocess.PIPE,
- )
- except:
- # ignore and allow the main execution to catch the problem.
- process = None
-
- if process is not None:
- process.wait()
- out = process.stdout.read()
- process.stdout.close()
- out_split = out.strip().split()
- if out_split[0] == b'Blender':
- if not out_split[1].startswith(b'2.4'):
- self.report({'ERROR'},
- "Blender %s doesn't support playback: %r" %
- (out_split[1].decode(), player_path))
- return {'CANCELLED'}
- del out, out_split
- del process
- # -----------------------------------------------------------------
-
+ if preset in {'BLENDER24', 'INTERNAL'}:
opts = ["-a", "-f", str(rd.fps), str(rd.fps_base),
"-j", str(scene.frame_step), file]
cmd.extend(opts)
@@ -166,8 +146,14 @@ class PlayRenderedAnim(Operator):
# launch it
print("Executing command:\n %r" % " ".join(cmd))
+ # workaround for boost 1.46, can be eventually removed. bug: [#32350]
+ env_copy = os.environ.copy()
+ if preset == 'INTERNAL':
+ env_copy["LC_ALL"] = "C"
+ # end workaround
+
try:
- subprocess.Popen(cmd)
+ subprocess.Popen(cmd, env=env_copy)
except Exception as e:
self.report({'ERROR'},
"Couldn't run external animation player with command "
diff --git a/release/scripts/startup/bl_operators/uvcalc_follow_active.py b/release/scripts/startup/bl_operators/uvcalc_follow_active.py
index bcab6f078c2..b60b5257984 100644
--- a/release/scripts/startup/bl_operators/uvcalc_follow_active.py
+++ b/release/scripts/startup/bl_operators/uvcalc_follow_active.py
@@ -232,7 +232,7 @@ class FollowActiveQuads(Operator):
mode = bpy.props.EnumProperty(
name="Edge Length Mode",
description="Method to space UV edge loops",
- items=(('EVEN', "Even", "Space all UVs evently"),
+ items=(('EVEN', "Even", "Space all UVs evenly"),
('LENGTH', "Length", "Average space UVs edge length of each loop")),
default='LENGTH',
)
diff --git a/release/scripts/startup/bl_operators/uvcalc_lightmap.py b/release/scripts/startup/bl_operators/uvcalc_lightmap.py
index 0a4c44cd52f..526d78c4c11 100644
--- a/release/scripts/startup/bl_operators/uvcalc_lightmap.py
+++ b/release/scripts/startup/bl_operators/uvcalc_lightmap.py
@@ -561,7 +561,7 @@ class LightMapPack(Operator):
PREF_CONTEXT = bpy.props.EnumProperty(
name="Selection",
- items=(('SEL_FACES', "Selected Faces", "Space all UVs evently"),
+ items=(('SEL_FACES', "Selected Faces", "Space all UVs evenly"),
('ALL_FACES', "All Faces", "Average space UVs edge length of each loop"),
('ALL_OBJECTS', "Selected Mesh Object", "Average space UVs edge length of each loop")
),
diff --git a/release/scripts/startup/bl_operators/uvcalc_smart_project.py b/release/scripts/startup/bl_operators/uvcalc_smart_project.py
index c9b41914419..9fa44cac812 100644
--- a/release/scripts/startup/bl_operators/uvcalc_smart_project.py
+++ b/release/scripts/startup/bl_operators/uvcalc_smart_project.py
@@ -709,7 +709,7 @@ def packIslands(islandList):
# with the islands.
#print '\tPacking UV Islands...'
-#XXX Window.DrawProgressBar(0.7, 'Packing %i UV Islands...' % len(packBoxes) )
+#XXX Window.DrawProgressBar(0.7, "Packing %i UV Islands..." % len(packBoxes) )
# time1 = time.time()
packWidth, packHeight = geometry.box_pack_2d(packBoxes)
@@ -720,7 +720,7 @@ def packIslands(islandList):
# raise "Error packed boxes differs from original length"
#print '\tWriting Packed Data to faces'
-#XXX Window.DrawProgressBar(0.8, 'Writing Packed Data to faces')
+#XXX Window.DrawProgressBar(0.8, "Writing Packed Data to faces")
# Sort by ID, so there in sync again
islandIdx = len(islandList)
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index 2ebc8e80b71..eac90a8b091 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -36,6 +36,10 @@ class MESH_OT_delete_edgeloop(Operator):
bl_idname = "mesh.delete_edgeloop"
bl_label = "Delete Edge Loop"
+ @classmethod
+ def poll(cls, context):
+ return bpy.ops.transform.edge_slide.poll()
+
def execute(self, context):
if 'FINISHED' in bpy.ops.transform.edge_slide(value=1.0):
bpy.ops.mesh.select_more()
@@ -46,7 +50,7 @@ class MESH_OT_delete_edgeloop(Operator):
rna_path_prop = StringProperty(
name="Context Attributes",
- description="rna context string",
+ description="RNA context string",
maxlen=1024,
)
@@ -97,7 +101,6 @@ def operator_value_is_undo(value):
return (isinstance(id_data, bpy.types.ID) and
(not isinstance(id_data, (bpy.types.WindowManager,
bpy.types.Screen,
- bpy.types.Scene,
bpy.types.Brush,
))))
@@ -372,8 +375,8 @@ class WM_OT_context_toggle_enum(Operator):
class WM_OT_context_cycle_int(Operator):
- """Set a context value. Useful for cycling active material, """ \
- """vertex keys, groups' etc"""
+ """Set a context value (useful for cycling active material, """ \
+ """vertex keys, groups, etc.)"""
bl_idname = "wm.context_cycle_int"
bl_label = "Context Int Cycle"
bl_options = {'UNDO', 'INTERNAL'}
@@ -605,9 +608,9 @@ class WM_OT_context_collection_boolean_set(Operator):
except:
continue
- if value_orig == True:
+ if value_orig is True:
is_set = True
- elif value_orig == False:
+ elif value_orig is False:
pass
else:
self.report({'WARNING'}, "Non boolean value found: %s[ ].%s" %
@@ -732,7 +735,7 @@ class WM_OT_context_modal_mouse(Operator):
if not self._values:
self.report({'WARNING'}, "Nothing to operate on: %s[ ].%s" %
- (self.data_path_iter, self.data_path_item))
+ (self.data_path_iter, self.data_path_item))
return {'CANCELLED'}
else:
@@ -787,7 +790,7 @@ class WM_OT_path_open(Operator):
return {'CANCELLED'}
if sys.platform[:3] == "win":
- subprocess.Popen(["start", filepath], shell=True)
+ os.startfile(filepath)
elif sys.platform == "darwin":
subprocess.Popen(["open", filepath])
else:
@@ -844,41 +847,46 @@ class WM_OT_doc_view_manual(Operator):
doc_id = doc_id
@staticmethod
- def _find_reference(rna_id, url_mapping):
- print("online manual check for: '%s'... " % rna_id)
+ def _find_reference(rna_id, url_mapping, verbose=True):
+ if verbose:
+ print("online manual check for: '%s'... " % rna_id)
from fnmatch import fnmatch
for pattern, url_suffix in url_mapping:
if fnmatch(rna_id, pattern):
- print(" match found: '%s' --> '%s'" % (pattern, url_suffix))
+ if verbose:
+ print(" match found: '%s' --> '%s'" % (pattern, url_suffix))
return url_suffix
- print("match not found")
+ if verbose:
+ print("match not found")
return None
+ @staticmethod
+ def _lookup_rna_url(rna_id, verbose=True):
+ url = None
+ for prefix, url_manual_mapping in bpy.utils.manual_map():
+ rna_ref = WM_OT_doc_view_manual._find_reference(rna_id, url_manual_mapping, verbose=verbose)
+ if rna_ref is not None:
+ url = prefix + rna_ref
+ break
+ return url
+
def execute(self, context):
rna_id = _wm_doc_get_id(self.doc_id, do_url=False)
if rna_id is None:
return {'PASS_THROUGH'}
- import rna_wiki_reference
- rna_ref = self._find_reference(rna_id, rna_wiki_reference.url_manual_mapping)
-
- if rna_ref is None:
- self.report({'WARNING'}, "No reference available '%s', "
- "Update info in %r" %
- (self.doc_id, rna_wiki_reference.__file__))
-
- import sys
- del sys.modules["rna_wiki_reference"]
+ url = self._lookup_rna_url(rna_id)
- if rna_ref is None:
+ if url is None:
+ self.report({'WARNING'}, "No reference available %r, "
+ "Update info in 'rna_wiki_reference.py' "
+ " or callback to bpy.utils.manual_map()" %
+ self.doc_id)
return {'CANCELLED'}
else:
- url = rna_wiki_reference.url_manual_prefix + rna_ref
-
- import webbrowser
- webbrowser.open(url)
-
- return {'FINISHED'}
+ import webbrowser
+ webbrowser.open(url)
+ return {'FINISHED'}
class WM_OT_doc_view(Operator):
@@ -1020,7 +1028,7 @@ class WM_OT_properties_edit(Operator):
min = rna_min
max = rna_max
description = StringProperty(
- name="Tip",
+ name="Tooltip",
)
def execute(self, context):
@@ -1395,8 +1403,8 @@ class WM_OT_keyconfig_export(Operator):
if not self.filepath:
raise Exception("Filepath not set")
- if not self.filepath.endswith('.py'):
- self.filepath += '.py'
+ if not self.filepath.endswith(".py"):
+ self.filepath += ".py"
wm = context.window_manager
@@ -1575,7 +1583,7 @@ class WM_OT_addon_enable(Operator):
"version %d.%d.%d and might not "
"function (correctly), "
"though it is enabled") %
- info_ver)
+ info_ver)
return {'FINISHED'}
else:
return {'CANCELLED'}
diff --git a/release/scripts/startup/bl_ui/__init__.py b/release/scripts/startup/bl_ui/__init__.py
index 84049e9f1fe..09d866c2ae5 100644
--- a/release/scripts/startup/bl_ui/__init__.py
+++ b/release/scripts/startup/bl_ui/__init__.py
@@ -38,6 +38,7 @@ _modules = (
"properties_data_modifier",
"properties_data_speaker",
"properties_game",
+ "properties_mask_common",
"properties_material",
"properties_object_constraint",
"properties_object",
@@ -94,7 +95,7 @@ def register():
items = [('All', "All", ""),
('Enabled', "Enabled", ""),
('Disabled', "Disabled", ""),
- ]
+ ]
items_unique = set()
@@ -119,7 +120,7 @@ def register():
items=[('OFFICIAL', "Official", "Officially supported"),
('COMMUNITY', "Community", "Maintained by community developers"),
('TESTING', "Testing", "Newly contributed scripts (excluded from release builds)"),
- ],
+ ],
name="Support",
description="Display support level",
default={'OFFICIAL', 'COMMUNITY'},
diff --git a/release/scripts/startup/bl_ui/properties_animviz.py b/release/scripts/startup/bl_ui/properties_animviz.py
index 3011f55fcb3..8308c7fc425 100644
--- a/release/scripts/startup/bl_ui/properties_animviz.py
+++ b/release/scripts/startup/bl_ui/properties_animviz.py
@@ -44,10 +44,10 @@ class MotionPathButtonsPanel():
col = split.column()
col.label(text="Display Range:")
sub = col.column(align=True)
- if (mps.type == 'CURRENT_FRAME'):
+ if mps.type == 'CURRENT_FRAME':
sub.prop(mps, "frame_before", text="Before")
sub.prop(mps, "frame_after", text="After")
- elif (mps.type == 'RANGE'):
+ elif mps.type == 'RANGE':
sub.prop(mps, "frame_start", text="Start")
sub.prop(mps, "frame_end", text="End")
@@ -65,10 +65,13 @@ class MotionPathButtonsPanel():
sub.prop(mpath, "frame_start", text="From")
sub.prop(mpath, "frame_end", text="To")
+ sub = col.row(align=True)
if bones:
- col.operator("pose.paths_update", text="Update Paths", icon='BONE_DATA')
+ sub.operator("pose.paths_update", text="Update Paths", icon='BONE_DATA')
+ sub.operator("pose.paths_clear", text="", icon='X')
else:
- col.operator("object.paths_update", text="Update Paths", icon='OBJECT_DATA')
+ sub.operator("object.paths_update", text="Update Paths", icon='OBJECT_DATA')
+ sub.operator("object.paths_clear", text="", icon='X')
else:
sub = col.column(align=True)
sub.label(text="Nothing to show yet...", icon='ERROR')
diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py b/release/scripts/startup/bl_ui/properties_data_armature.py
index 03aa41bb9aa..50c34be1414 100644
--- a/release/scripts/startup/bl_ui/properties_data_armature.py
+++ b/release/scripts/startup/bl_ui/properties_data_armature.py
@@ -285,10 +285,9 @@ class DATA_PT_iksolver_itasc(ArmatureButtonsPanel, Panel):
row.prop(itasc, "damping_max", text="Damp", slider=True)
row.prop(itasc, "damping_epsilon", text="Eps", slider=True)
-from bl_ui.properties_animviz import (
- MotionPathButtonsPanel,
- OnionSkinButtonsPanel,
- )
+from bl_ui.properties_animviz import (MotionPathButtonsPanel,
+ OnionSkinButtonsPanel,
+ )
class DATA_PT_motion_paths(MotionPathButtonsPanel, Panel):
@@ -323,6 +322,7 @@ class DATA_PT_onion_skinning(OnionSkinButtonsPanel): # , Panel): # inherit from
def draw(self, context):
ob = context.object
+
self.draw_settings(context, ob.pose.animation_visualization, bones=True)
diff --git a/release/scripts/startup/bl_ui/properties_data_bone.py b/release/scripts/startup/bl_ui/properties_data_bone.py
index e6d9affee93..1e70483864c 100644
--- a/release/scripts/startup/bl_ui/properties_data_bone.py
+++ b/release/scripts/startup/bl_ui/properties_data_bone.py
@@ -251,52 +251,52 @@ class BONE_PT_inverse_kinematics(BoneButtonsPanel, Panel):
split.active = pchan.is_in_ik_chain
row = split.row()
row.prop(pchan, "ik_stiffness_x", text="Stiffness", slider=True)
- row.active = pchan.lock_ik_x == False and pchan.is_in_ik_chain
+ row.active = pchan.lock_ik_x is False and pchan.is_in_ik_chain
split = layout.split(percentage=0.25)
sub = split.row()
sub.prop(pchan, "use_ik_limit_x", text="Limit")
- sub.active = pchan.lock_ik_x == False and pchan.is_in_ik_chain
+ sub.active = pchan.lock_ik_x is False and pchan.is_in_ik_chain
sub = split.row(align=True)
sub.prop(pchan, "ik_min_x", text="")
sub.prop(pchan, "ik_max_x", text="")
- sub.active = pchan.lock_ik_x == False and pchan.use_ik_limit_x and pchan.is_in_ik_chain
+ sub.active = pchan.lock_ik_x is False and pchan.use_ik_limit_x and pchan.is_in_ik_chain
split = layout.split(percentage=0.25)
split.prop(pchan, "lock_ik_y", icon='LOCKED' if pchan.lock_ik_y else 'UNLOCKED', text="Y")
split.active = pchan.is_in_ik_chain
row = split.row()
row.prop(pchan, "ik_stiffness_y", text="Stiffness", slider=True)
- row.active = pchan.lock_ik_y == False and pchan.is_in_ik_chain
+ row.active = pchan.lock_ik_y is False and pchan.is_in_ik_chain
split = layout.split(percentage=0.25)
sub = split.row()
sub.prop(pchan, "use_ik_limit_y", text="Limit")
- sub.active = pchan.lock_ik_y == False and pchan.is_in_ik_chain
+ sub.active = pchan.lock_ik_y is False and pchan.is_in_ik_chain
sub = split.row(align=True)
sub.prop(pchan, "ik_min_y", text="")
sub.prop(pchan, "ik_max_y", text="")
- sub.active = pchan.lock_ik_y == False and pchan.use_ik_limit_y and pchan.is_in_ik_chain
+ sub.active = pchan.lock_ik_y is False and pchan.use_ik_limit_y and pchan.is_in_ik_chain
split = layout.split(percentage=0.25)
split.prop(pchan, "lock_ik_z", icon='LOCKED' if pchan.lock_ik_z else 'UNLOCKED', text="Z")
split.active = pchan.is_in_ik_chain
sub = split.row()
sub.prop(pchan, "ik_stiffness_z", text="Stiffness", slider=True)
- sub.active = pchan.lock_ik_z == False and pchan.is_in_ik_chain
+ sub.active = pchan.lock_ik_z is False and pchan.is_in_ik_chain
split = layout.split(percentage=0.25)
sub = split.row()
sub.prop(pchan, "use_ik_limit_z", text="Limit")
- sub.active = pchan.lock_ik_z == False and pchan.is_in_ik_chain
+ sub.active = pchan.lock_ik_z is False and pchan.is_in_ik_chain
sub = split.row(align=True)
sub.prop(pchan, "ik_min_z", text="")
sub.prop(pchan, "ik_max_z", text="")
- sub.active = pchan.lock_ik_z == False and pchan.use_ik_limit_z and pchan.is_in_ik_chain
+ sub.active = pchan.lock_ik_z is False and pchan.use_ik_limit_z and pchan.is_in_ik_chain
split = layout.split(percentage=0.25)
split.label(text="Stretch:")
diff --git a/release/scripts/startup/bl_ui/properties_data_curve.py b/release/scripts/startup/bl_ui/properties_data_curve.py
index 1e9fd5dd8a9..a8f4aa30e95 100644
--- a/release/scripts/startup/bl_ui/properties_data_curve.py
+++ b/release/scripts/startup/bl_ui/properties_data_curve.py
@@ -106,7 +106,7 @@ class DATA_PT_shape_curve(CurveButtonsPanel, Panel):
sub.prop(curve, "resolution_v", text="Preview V")
sub.prop(curve, "render_resolution_v", text="Render V")
- if (is_curve or is_text):
+ if is_curve or is_text:
col.label(text="Fill:")
sub = col.column()
sub.active = (curve.dimensions == '2D' or (curve.bevel_object is None and curve.dimensions == '3D'))
diff --git a/release/scripts/startup/bl_ui/properties_data_lamp.py b/release/scripts/startup/bl_ui/properties_data_lamp.py
index 25b85591873..769715ef1b9 100644
--- a/release/scripts/startup/bl_ui/properties_data_lamp.py
+++ b/release/scripts/startup/bl_ui/properties_data_lamp.py
@@ -322,9 +322,9 @@ class DATA_PT_area(DataButtonsPanel, Panel):
col.row().prop(lamp, "shape", expand=True)
sub = col.row(align=True)
- if (lamp.shape == 'SQUARE'):
+ if lamp.shape == 'SQUARE':
sub.prop(lamp, "size")
- elif (lamp.shape == 'RECTANGLE'):
+ elif lamp.shape == 'RECTANGLE':
sub.prop(lamp, "size", text="Size X")
sub.prop(lamp, "size_y", text="Size Y")
diff --git a/release/scripts/startup/bl_ui/properties_data_mesh.py b/release/scripts/startup/bl_ui/properties_data_mesh.py
index 7ca464ce055..6125540d491 100644
--- a/release/scripts/startup/bl_ui/properties_data_mesh.py
+++ b/release/scripts/startup/bl_ui/properties_data_mesh.py
@@ -148,9 +148,10 @@ class DATA_PT_vertex_groups(MeshButtonsPanel, Panel):
col = row.column(align=True)
col.operator("object.vertex_group_add", icon='ZOOMIN', text="")
- col.operator("object.vertex_group_remove", icon='ZOOMOUT', text="")
+ col.operator("object.vertex_group_remove", icon='ZOOMOUT', text="").all = False
col.menu("MESH_MT_vertex_group_specials", icon='DOWNARROW_HLT', text="")
if group:
+ col.separator()
col.operator("object.vertex_group_move", icon='TRIA_UP', text="").direction = 'UP'
col.operator("object.vertex_group_move", icon='TRIA_DOWN', text="").direction = 'DOWN'
@@ -315,10 +316,31 @@ class DATA_PT_vertex_colors(MeshButtonsPanel, Panel):
layout.prop(lay, "name")
+class DATA_PT_customdata(MeshButtonsPanel, Panel):
+ bl_label = "Geometry Data"
+ bl_options = {'DEFAULT_CLOSED'}
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
+
+ def draw(self, context):
+ layout = self.layout
+
+ # me = context.mesh
+ col = layout.column()
+ # sticky has no UI access since 2.49 - we may remove
+ '''
+ row = col.row(align=True)
+ row.operator("mesh.customdata_create_sticky")
+ row.operator("mesh.customdata_clear_sticky", icon='X')
+ '''
+ col.operator("mesh.customdata_clear_mask", icon='X')
+ col.operator("mesh.customdata_clear_skin", icon='X')
+
+
class DATA_PT_custom_props_mesh(MeshButtonsPanel, PropertyPanel, Panel):
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
_context_path = "object.data"
_property_type = bpy.types.Mesh
+
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index abcd27c308e..0398cb36b18 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -215,6 +215,8 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
layout.label(text="Face Count" + ": %d" % md.face_count)
def DISPLACE(self, layout, ob, md):
+ has_texture = (md.texture is not None)
+
split = layout.split()
col = split.column()
@@ -226,12 +228,18 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col = split.column()
col.label(text="Direction:")
col.prop(md, "direction", text="")
- col.label(text="Texture Coordinates:")
- col.prop(md, "texture_coords", text="")
+ colsub = col.column()
+ colsub.active = has_texture
+ colsub.label(text="Texture Coordinates:")
+ colsub.prop(md, "texture_coords", text="")
if md.texture_coords == 'OBJECT':
- layout.prop(md, "texture_coords_object", text="Object")
+ row = layout.row()
+ row.active = has_texture
+ row.prop(md, "texture_coords_object", text="Object")
elif md.texture_coords == 'UV' and ob.type == 'MESH':
- layout.prop_search(md, "uv_layer", ob.data, "uv_textures")
+ row = layout.row()
+ row.active = has_texture
+ row.prop_search(md, "uv_layer", ob.data, "uv_textures")
layout.separator()
@@ -389,7 +397,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col = layout.column()
- if md.use_mirror_merge == True:
+ if md.use_mirror_merge is True:
col.prop(md, "merge_threshold")
col.label(text="Mirror Object:")
col.prop(md, "mirror_object", text="")
@@ -551,7 +559,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col = split.column()
row = col.row()
- row.active = (md.object is None or md.use_object_screw_offset == False)
+ row.active = (md.object is None or md.use_object_screw_offset is False)
row.prop(md, "screw_offset")
row = col.row()
row.active = (md.object is not None)
@@ -971,8 +979,8 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
split = layout.split()
col = split.column(align=True)
- col.operator("object.skin_loose_mark_clear", text="Mark Loose").action = "MARK"
- col.operator("object.skin_loose_mark_clear", text="Clear Loose").action = "CLEAR"
+ col.operator("object.skin_loose_mark_clear", text="Mark Loose").action = 'MARK'
+ col.operator("object.skin_loose_mark_clear", text="Clear Loose").action = 'CLEAR'
col = split.column()
col.operator("object.skin_root_mark", text="Mark Root")
diff --git a/release/scripts/startup/bl_ui/properties_data_speaker.py b/release/scripts/startup/bl_ui/properties_data_speaker.py
index 853c11c96c6..ca922dfb544 100644
--- a/release/scripts/startup/bl_ui/properties_data_speaker.py
+++ b/release/scripts/startup/bl_ui/properties_data_speaker.py
@@ -105,14 +105,13 @@ class DATA_PT_cone(DataButtonsPanel, Panel):
speaker = context.speaker
split = layout.split()
- col = split.column()
+ col = split.column()
col.label("Angle:")
col.prop(speaker, "cone_angle_outer", text="Outer")
col.prop(speaker, "cone_angle_inner", text="Inner")
col = split.column()
-
col.label("Volume:")
col.prop(speaker, "cone_volume_outer", text="Outer")
diff --git a/release/scripts/startup/bl_ui/properties_game.py b/release/scripts/startup/bl_ui/properties_game.py
index 0b6e4154050..5ff49a7d369 100644
--- a/release/scripts/startup/bl_ui/properties_game.py
+++ b/release/scripts/startup/bl_ui/properties_game.py
@@ -337,7 +337,6 @@ class RENDER_PT_game_stereo(RenderButtonsPanel, Panel):
if dome_type in {'FISHEYE', 'TRUNCATED_REAR', 'TRUNCATED_FRONT'}:
col = split.column()
-
col.prop(gs, "dome_buffer_resolution", text="Resolution", slider=True)
col.prop(gs, "dome_angle", slider=True)
@@ -347,14 +346,13 @@ class RENDER_PT_game_stereo(RenderButtonsPanel, Panel):
elif dome_type == 'PANORAM_SPH':
col = split.column()
-
col.prop(gs, "dome_buffer_resolution", text="Resolution", slider=True)
+
col = split.column()
col.prop(gs, "dome_tessellation", text="Tessellation")
else: # cube map
col = split.column()
-
col.prop(gs, "dome_buffer_resolution", text="Resolution", slider=True)
col = split.column()
@@ -396,6 +394,7 @@ class RENDER_PT_game_system(RenderButtonsPanel, Panel):
layout = self.layout
gs = context.scene.game_settings
+
row = layout.row()
row.prop(gs, "use_frame_rate")
row.prop(gs, "restrict_animation_updates")
@@ -415,10 +414,10 @@ class RENDER_PT_game_display(RenderButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
- row = layout.row()
- row.prop(context.scene.render, "fps", text="Animation Frame Rate", slider=False)
-
gs = context.scene.game_settings
+
+ layout.prop(context.scene.render, "fps", text="Animation Frame Rate", slider=False)
+
flow = layout.column_flow()
flow.prop(gs, "show_debug_properties", text="Debug Properties")
flow.prop(gs, "show_framerate_profile", text="Framerate and Profile")
@@ -454,7 +453,7 @@ class SCENE_PT_game_navmesh(SceneButtonsPanel, Panel):
rd = context.scene.game_settings.recast_data
- layout.operator("mesh.navmesh_make", text='Build navigation mesh')
+ layout.operator("mesh.navmesh_make", text="Build navigation mesh")
col = layout.column()
col.label(text="Rasterization:")
@@ -582,14 +581,14 @@ class WORLD_PT_game_mist(WorldButtonsPanel, Panel):
world = context.world
layout.active = world.mist_settings.use_mist
- row = layout.row()
- row.prop(world.mist_settings, "falloff")
+
+ layout.prop(world.mist_settings, "falloff")
row = layout.row(align=True)
row.prop(world.mist_settings, "start")
row.prop(world.mist_settings, "depth")
- row = layout.row()
- row.prop(world.mist_settings, "intensity", text="Minimum Intensity")
+
+ layout.prop(world.mist_settings, "intensity", text="Minimum Intensity")
class WORLD_PT_game_physics(WorldButtonsPanel, Panel):
diff --git a/release/scripts/startup/bl_ui/properties_mask_common.py b/release/scripts/startup/bl_ui/properties_mask_common.py
new file mode 100644
index 00000000000..208b0a63075
--- /dev/null
+++ b/release/scripts/startup/bl_ui/properties_mask_common.py
@@ -0,0 +1,327 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8-80 compliant>
+
+# panels get subclassed (not registered directly)
+# menus are referenced `as is`
+
+import bpy
+from bpy.types import Menu
+
+
+class MASK_PT_mask:
+ # subclasses must define...
+ #~ bl_space_type = 'CLIP_EDITOR'
+ #~ bl_region_type = 'UI'
+ bl_label = "Mask Settings"
+ bl_options = {'DEFAULT_CLOSED'}
+
+ @classmethod
+ def poll(cls, context):
+ space_data = context.space_data
+ return space_data.mask and space_data.mode == 'MASK'
+
+ def draw(self, context):
+ layout = self.layout
+
+ sc = context.space_data
+ mask = sc.mask
+
+ col = layout.column(align=True)
+ col.prop(mask, "frame_start")
+ col.prop(mask, "frame_end")
+
+
+class MASK_PT_layers:
+ # subclasses must define...
+ #~ bl_space_type = 'CLIP_EDITOR'
+ #~ bl_region_type = 'UI'
+ bl_label = "Mask Layers"
+
+ @classmethod
+ def poll(cls, context):
+ space_data = context.space_data
+ return space_data.mask and space_data.mode == 'MASK'
+
+ def draw(self, context):
+ layout = self.layout
+
+ sc = context.space_data
+ mask = sc.mask
+ active_layer = mask.layers.active
+
+ rows = 5 if active_layer else 2
+
+ row = layout.row()
+ row.template_list(mask, "layers",
+ mask, "active_layer_index", rows=rows)
+
+ sub = row.column(align=True)
+
+ sub.operator("mask.layer_new", icon='ZOOMIN', text="")
+ sub.operator("mask.layer_remove", icon='ZOOMOUT', text="")
+
+ if active_layer:
+ sub.separator()
+
+ props = sub.operator("mask.layer_move", icon='TRIA_UP', text="")
+ props.direction = 'UP'
+
+ props = sub.operator("mask.layer_move", icon='TRIA_DOWN', text="")
+ props.direction = 'DOWN'
+
+ layout.prop(active_layer, "name")
+
+ # blending
+ row = layout.row(align=True)
+ row.prop(active_layer, "alpha")
+ row.prop(active_layer, "invert", text="", icon='IMAGE_ALPHA')
+
+ layout.prop(active_layer, "blend")
+ layout.prop(active_layer, "falloff")
+
+
+class MASK_PT_spline():
+ # subclasses must define...
+ #~ bl_space_type = 'CLIP_EDITOR'
+ #~ bl_region_type = 'UI'
+ bl_label = "Active Spline"
+
+ @classmethod
+ def poll(cls, context):
+ sc = context.space_data
+ mask = sc.mask
+
+ if mask and sc.mode == 'MASK':
+ return mask.layers.active and mask.layers.active.splines.active
+
+ return False
+
+ def draw(self, context):
+ layout = self.layout
+
+ sc = context.space_data
+ mask = sc.mask
+ spline = mask.layers.active.splines.active
+
+ col = layout.column()
+ col.prop(spline, "offset_mode")
+ col.prop(spline, "weight_interpolation")
+
+ row = col.row()
+ row.prop(spline, "use_cyclic")
+ row.prop(spline, "use_fill")
+
+ col.prop(spline, "use_self_intersection_check")
+
+
+class MASK_PT_point():
+ # subclasses must define...
+ #~ bl_space_type = 'CLIP_EDITOR'
+ #~ bl_region_type = 'UI'
+ bl_label = "Active Point"
+
+ @classmethod
+ def poll(cls, context):
+ sc = context.space_data
+ mask = sc.mask
+
+ if mask and sc.mode == 'MASK':
+ mask_layer_active = mask.layers.active
+ return (mask_layer_active and
+ mask_layer_active.splines.active_point)
+
+ return False
+
+ def draw(self, context):
+ layout = self.layout
+
+ sc = context.space_data
+ mask = sc.mask
+ point = mask.layers.active.splines.active_point
+ parent = point.parent
+
+ col = layout.column()
+ col.prop(point, "handle_type")
+
+ col = layout.column()
+ # Currently only parenting yo movie clip is allowed, so do not
+ # ver-oplicate things for now and use single template_ID
+ #col.template_any_ID(parent, "id", "id_type", text="")
+
+ col.label("Parent:")
+ col.prop(parent, "id", text="")
+
+ if parent.id_type == 'MOVIECLIP' and parent.id:
+ clip = parent.id
+ tracking = clip.tracking
+
+ col.prop_search(parent, "parent", tracking,
+ "objects", icon='OBJECT_DATA', text="Object:")
+
+ if parent.parent in tracking.objects:
+ object = tracking.objects[parent.parent]
+ col.prop_search(parent, "sub_parent", object,
+ "tracks", icon='ANIM_DATA', text="Track:")
+ else:
+ col.prop_search(parent, "sub_parent", tracking,
+ "tracks", icon='ANIM_DATA', text="Track:")
+
+
+class MASK_PT_display():
+ # subclasses must define...
+ #~ bl_space_type = 'CLIP_EDITOR'
+ #~ bl_region_type = 'UI'
+ bl_label = "Mask Display"
+ bl_options = {'DEFAULT_CLOSED'}
+
+ @classmethod
+ def poll(cls, context):
+ space_data = context.space_data
+ return space_data.mask and space_data.mode == 'MASK'
+
+ def draw(self, context):
+ layout = self.layout
+
+ space_data = context.space_data
+
+ layout.prop(space_data, "mask_draw_type", text="")
+ layout.prop(space_data, "show_mask_smooth")
+
+
+class MASK_PT_tools():
+ # subclasses must define...
+ #~ bl_space_type = 'CLIP_EDITOR'
+ #~ bl_region_type = 'TOOLS'
+ bl_label = "Mask Tools"
+
+ @classmethod
+ def poll(cls, context):
+ space_data = context.space_data
+ return space_data.mask and space_data.mode == 'MASK'
+
+ def draw(self, context):
+ layout = self.layout
+
+ col = layout.column(align=True)
+ col.label(text="Transform:")
+ col.operator("transform.translate")
+ col.operator("transform.rotate")
+ col.operator("transform.resize", text="Scale")
+ props = col.operator("transform.transform", text="Scale Feather")
+ props.mode = 'MASK_SHRINKFATTEN'
+
+ col = layout.column(align=True)
+ col.label(text="Spline:")
+ col.operator("mask.delete")
+ col.operator("mask.cyclic_toggle")
+ col.operator("mask.switch_direction")
+
+ col = layout.column(align=True)
+ col.label(text="Parenting:")
+ col.operator("mask.parent_set")
+ col.operator("mask.parent_clear")
+
+ col = layout.column(align=True)
+ col.label(text="Animation:")
+ col.operator("mask.shape_key_clear")
+ col.operator("mask.shape_key_insert")
+ col.operator("mask.shape_key_feather_reset")
+ col.operator("mask.shape_key_rekey")
+
+
+class MASK_MT_mask(Menu):
+ bl_label = "Mask"
+
+ def draw(self, context):
+ layout = self.layout
+
+ layout.operator("mask.delete")
+
+ layout.separator()
+ layout.operator("mask.cyclic_toggle")
+ layout.operator("mask.switch_direction")
+ layout.operator("mask.normals_make_consistent")
+ layout.operator("mask.feather_weight_clear") # TODO, better place?
+
+ layout.separator()
+ layout.operator("mask.parent_clear")
+ layout.operator("mask.parent_set")
+
+ layout.separator()
+ layout.menu("MASK_MT_visibility")
+ layout.menu("MASK_MT_transform")
+ layout.menu("MASK_MT_animation")
+
+
+class MASK_MT_visibility(Menu):
+ bl_label = "Show/Hide"
+
+ def draw(self, context):
+ layout = self.layout
+
+ layout.operator("mask.hide_view_clear", text="Show Hidden")
+ layout.operator("mask.hide_view_set", text="Hide Selected")
+
+ props = layout.operator("mask.hide_view_set", text="Hide Unselected")
+ props.unselected = True
+
+
+class MASK_MT_transform(Menu):
+ bl_label = "Transform"
+
+ def draw(self, context):
+ layout = self.layout
+
+ layout.operator("transform.translate")
+ layout.operator("transform.rotate")
+ layout.operator("transform.resize")
+ props = layout.operator("transform.transform", text="Scale Feather")
+ props.mode = 'MASK_SHRINKFATTEN'
+
+
+class MASK_MT_animation(Menu):
+ bl_label = "Animation"
+
+ def draw(self, context):
+ layout = self.layout
+
+ layout.operator("mask.shape_key_clear")
+ layout.operator("mask.shape_key_insert")
+ layout.operator("mask.shape_key_feather_reset")
+ layout.operator("mask.shape_key_rekey")
+
+
+class MASK_MT_select(Menu):
+ bl_label = "Select"
+
+ def draw(self, context):
+ layout = self.layout
+ sc = context.space_data
+
+ layout.operator("mask.select_border")
+ layout.operator("mask.select_circle")
+
+ layout.separator()
+
+ layout.operator("mask.select_all").action = 'TOGGLE'
+ layout.operator("mask.select_all", text="Inverse").action = 'INVERT'
+
+if __name__ == "__main__": # only for live edit.
+ bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py
index 6e66bd0d98b..8eecbf4b604 100644
--- a/release/scripts/startup/bl_ui/properties_material.py
+++ b/release/scripts/startup/bl_ui/properties_material.py
@@ -350,7 +350,6 @@ class MATERIAL_PT_shading(MaterialButtonsPanel, Panel):
class MATERIAL_PT_transp(MaterialButtonsPanel, Panel):
bl_label = "Transparency"
- # bl_options = {'DEFAULT_CLOSED'}
COMPAT_ENGINES = {'BLENDER_RENDER'}
@classmethod
@@ -764,6 +763,7 @@ class MATERIAL_PT_options(MaterialButtonsPanel, Panel):
col.prop(mat, "use_vertex_color_paint")
col.prop(mat, "use_vertex_color_light")
col.prop(mat, "use_object_color")
+ col.prop(mat, "use_uv_project")
if simple_material(base_mat):
col.prop(mat, "pass_index")
diff --git a/release/scripts/startup/bl_ui/properties_object.py b/release/scripts/startup/bl_ui/properties_object.py
index 86fc1dac4fc..8a668b5d95b 100644
--- a/release/scripts/startup/bl_ui/properties_object.py
+++ b/release/scripts/startup/bl_ui/properties_object.py
@@ -185,7 +185,7 @@ class OBJECT_PT_groups(ObjectButtonsPanel, Panel):
split = col.box().split()
col = split.column()
- col.prop(group, "layers", text="Dupli")
+ col.prop(group, "layers", text="Dupli Visibility")
col = split.column()
col.prop(group, "dupli_offset", text="")
@@ -219,7 +219,7 @@ class OBJECT_PT_display(ObjectButtonsPanel, Panel):
col = split.column()
col.prop(ob, "show_name", text="Name")
col.prop(ob, "show_axis", text="Axis")
- if ob.type in {"MESH", "CURVE", "SURFACE", "META", "FONT"}:
+ if ob.type in {'MESH', 'CURVE', 'SURFACE', 'META', 'FONT'}:
# Makes no sense for cameras, armtures, etc.!
col.prop(ob, "show_wire", text="Wire")
# Only useful with object having faces/materials...
@@ -259,7 +259,6 @@ class OBJECT_PT_duplication(ObjectButtonsPanel, Panel):
layout.prop(ob, "use_dupli_vertices_rotation", text="Rotation")
elif ob.dupli_type == 'FACES':
-
row = layout.row()
row.prop(ob, "use_dupli_faces_scale", text="Scale")
row.prop(ob, "dupli_faces_scale", text="Inherit Scale")
@@ -291,10 +290,8 @@ class OBJECT_PT_relations_extras(ObjectButtonsPanel, Panel):
row.prop(ob, "slow_parent_offset", text="Offset")
-from bl_ui.properties_animviz import (
- MotionPathButtonsPanel,
- OnionSkinButtonsPanel,
- )
+from bl_ui.properties_animviz import (MotionPathButtonsPanel,
+ OnionSkinButtonsPanel)
class OBJECT_PT_motion_paths(MotionPathButtonsPanel, Panel):
diff --git a/release/scripts/startup/bl_ui/properties_object_constraint.py b/release/scripts/startup/bl_ui/properties_object_constraint.py
index e4da581ab83..fba7bd8712a 100644
--- a/release/scripts/startup/bl_ui/properties_object_constraint.py
+++ b/release/scripts/startup/bl_ui/properties_object_constraint.py
@@ -212,6 +212,7 @@ class ConstraintButtonsPanel():
def FOLLOW_PATH(self, context, layout, con):
self.target_template(layout, con)
+ layout.operator("constraint.followpath_path_animate", text="Animate Path", icon='ANIM_DATA')
split = layout.split()
@@ -773,16 +774,26 @@ class ConstraintButtonsPanel():
row.prop(con, "use_active_clip")
row.prop(con, "use_3d_position")
+ col = layout.column()
+
if not con.use_active_clip:
- layout.prop(con, "clip")
+ col.prop(con, "clip")
+
+ row = col.row()
+ row.prop(con, "frame_method", expand=True)
if clip:
- layout.prop_search(con, "object", clip.tracking, "objects", icon='OBJECT_DATA')
- layout.prop_search(con, "track", clip.tracking, "tracks", icon='ANIM_DATA')
+ tracking = clip.tracking
- layout.prop(con, "camera")
+ col.prop_search(con, "object", tracking, "objects", icon='OBJECT_DATA')
- row = layout.row()
+ tracking_object = tracking.objects.get(con.object, tracking.objects[0])
+
+ col.prop_search(con, "track", tracking_object, "tracks", icon='ANIM_DATA')
+
+ col.prop(con, "camera")
+
+ row = col.row()
row.active = not con.use_3d_position
row.prop(con, "depth_object")
diff --git a/release/scripts/startup/bl_ui/properties_particle.py b/release/scripts/startup/bl_ui/properties_particle.py
index a667125d4ea..f29589faa2d 100644
--- a/release/scripts/startup/bl_ui/properties_particle.py
+++ b/release/scripts/startup/bl_ui/properties_particle.py
@@ -21,12 +21,11 @@ import bpy
from bpy.types import Panel
from rna_prop_ui import PropertyPanel
-from bl_ui.properties_physics_common import (
- point_cache_ui,
- effector_weights_ui,
- basic_force_field_settings_ui,
- basic_force_field_falloff_ui,
- )
+from bl_ui.properties_physics_common import (point_cache_ui,
+ effector_weights_ui,
+ basic_force_field_settings_ui,
+ basic_force_field_falloff_ui,
+ )
def particle_panel_enabled(context, psys):
@@ -52,7 +51,7 @@ def particle_panel_poll(cls, context):
if not settings:
return False
- return settings.is_fluid == False and (engine in cls.COMPAT_ENGINES)
+ return settings.is_fluid is False and (engine in cls.COMPAT_ENGINES)
def particle_get_settings(context):
@@ -86,7 +85,7 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
- if context.scene.render.engine == "BLENDER_GAME":
+ if context.scene.render.engine == 'BLENDER_GAME':
layout.label("Not available in the Game Engine")
return
@@ -133,13 +132,13 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
split = layout.split(percentage=0.32)
col = split.column()
col.label(text="Name:")
- if part.is_fluid == False:
+ if part.is_fluid is False:
col.label(text="Settings:")
col.label(text="Type:")
col = split.column()
col.prop(psys, "name", text="")
- if part.is_fluid == False:
+ if part.is_fluid is False:
row = col.row()
row.enabled = particle_panel_enabled(context, psys)
row.template_ID(psys, "settings", new="particle.new")
@@ -279,7 +278,7 @@ class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, Panel):
cloth = psys.cloth.settings
- layout.enabled = psys.use_hair_dynamics and psys.point_cache.is_baked == False
+ layout.enabled = psys.use_hair_dynamics and psys.point_cache.is_baked is False
split = layout.split()
@@ -813,7 +812,7 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
sub.active = (part.use_strand_primitive is False)
sub.prop(part, "use_render_adaptive")
sub = col.column()
- sub.active = part.use_render_adaptive or part.use_strand_primitive == True
+ sub.active = part.use_render_adaptive or part.use_strand_primitive is True
sub.prop(part, "adaptive_angle")
sub = col.column()
sub.active = (part.use_render_adaptive is True and part.use_strand_primitive is False)
@@ -831,9 +830,9 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
row = layout.row()
col = row.column()
- if part.type == 'HAIR' and part.use_strand_primitive == True and part.child_type == 'INTERPOLATED':
+ if part.type == 'HAIR' and part.use_strand_primitive is True and part.child_type == 'INTERPOLATED':
layout.prop(part, "use_simplify")
- if part.use_simplify == True:
+ if part.use_simplify is True:
row = layout.row()
row.prop(part, "simplify_refsize")
row.prop(part, "simplify_rate")
@@ -841,7 +840,7 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
row = layout.row()
row.prop(part, "use_simplify_viewport")
sub = row.row()
- sub.active = part.use_simplify_viewport == True
+ sub.active = part.use_simplify_viewport is True
sub.prop(part, "simplify_viewport")
elif part.render_type == 'OBJECT':
@@ -849,6 +848,7 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
sub = col.row()
sub.prop(part, "use_global_dupli")
sub.prop(part, "use_rotation_dupli")
+ sub.prop(part, "use_scale_dupli")
elif part.render_type == 'GROUP':
col.prop(part, "dupli_group")
split = layout.split()
@@ -865,6 +865,7 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
sub.active = (part.use_whole_group is False)
sub.prop(part, "use_global_dupli")
sub.prop(part, "use_rotation_dupli")
+ sub.prop(part, "use_scale_dupli")
if part.use_group_count and not part.use_whole_group:
row = layout.row()
@@ -986,11 +987,11 @@ class PARTICLE_PT_draw(ParticleButtonsPanel, Panel):
if part.draw_percentage != 100 and psys is not None:
if part.type == 'HAIR':
- if psys.use_hair_dynamics and psys.point_cache.is_baked == False:
+ if psys.use_hair_dynamics and psys.point_cache.is_baked is False:
layout.row().label(text="Display percentage makes dynamics inaccurate without baking!")
else:
phystype = part.physics_type
- if phystype != 'NO' and phystype != 'KEYED' and psys.point_cache.is_baked == False:
+ if phystype != 'NO' and phystype != 'KEYED' and psys.point_cache.is_baked is False:
layout.row().label(text="Display percentage makes dynamics inaccurate without baking!")
row = layout.row()
@@ -1008,7 +1009,7 @@ class PARTICLE_PT_draw(ParticleButtonsPanel, Panel):
sub.active = (part.draw_color in {'VELOCITY', 'ACCELERATION'})
sub.prop(part, "color_maximum", text="Max")
- if (path):
+ if path:
col.prop(part, "draw_step")
diff --git a/release/scripts/startup/bl_ui/properties_physics_cloth.py b/release/scripts/startup/bl_ui/properties_physics_cloth.py
index 33b977b5f04..e5db1eec37e 100644
--- a/release/scripts/startup/bl_ui/properties_physics_cloth.py
+++ b/release/scripts/startup/bl_ui/properties_physics_cloth.py
@@ -20,10 +20,8 @@
import bpy
from bpy.types import Menu, Panel
-from bl_ui.properties_physics_common import (
- point_cache_ui,
- effector_weights_ui,
- )
+from bl_ui.properties_physics_common import (point_cache_ui,
+ effector_weights_ui)
def cloth_panel_enabled(md):
@@ -178,7 +176,7 @@ class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel, Panel):
ob = context.object
cloth = context.cloth.settings
- layout.active = cloth.use_stiffness_scale and cloth_panel_enabled(md)
+ layout.active = (cloth.use_stiffness_scale and cloth_panel_enabled(md))
split = layout.split()
diff --git a/release/scripts/startup/bl_ui/properties_physics_common.py b/release/scripts/startup/bl_ui/properties_physics_common.py
index 4db056e77a2..00a35b233da 100644
--- a/release/scripts/startup/bl_ui/properties_physics_common.py
+++ b/release/scripts/startup/bl_ui/properties_physics_common.py
@@ -160,7 +160,7 @@ def point_cache_ui(self, context, cache, enabled, cachetype):
col = split.column()
- if cache.is_baked == True:
+ if cache.is_baked is True:
col.operator("ptcache.free_bake", text="Free Bake")
else:
col.operator("ptcache.bake", text="Bake").bake = True
@@ -186,11 +186,8 @@ def effector_weights_ui(self, context, weights):
split = layout.split()
- col = split.column()
- col.prop(weights, "gravity", slider=True)
-
- col = split.column()
- col.prop(weights, "all", slider=True)
+ split.prop(weights, "gravity", slider=True)
+ split.prop(weights, "all", slider=True)
layout.separator()
diff --git a/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py b/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
index db0794d8a8a..fa37e9cd10f 100644
--- a/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
+++ b/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
@@ -20,10 +20,9 @@
import bpy
from bpy.types import Panel
-from bl_ui.properties_physics_common import (
- point_cache_ui,
- effector_weights_ui,
- )
+from bl_ui.properties_physics_common import (point_cache_ui,
+ effector_weights_ui,
+ )
class PhysicButtonsPanel():
diff --git a/release/scripts/startup/bl_ui/properties_physics_field.py b/release/scripts/startup/bl_ui/properties_physics_field.py
index 65603c65041..6b5612d7836 100644
--- a/release/scripts/startup/bl_ui/properties_physics_field.py
+++ b/release/scripts/startup/bl_ui/properties_physics_field.py
@@ -20,10 +20,9 @@
import bpy
from bpy.types import Panel
-from bl_ui.properties_physics_common import (
- basic_force_field_settings_ui,
- basic_force_field_falloff_ui,
- )
+from bl_ui.properties_physics_common import (basic_force_field_settings_ui,
+ basic_force_field_falloff_ui,
+ )
class PhysicButtonsPanel():
@@ -92,7 +91,7 @@ class PHYSICS_PT_field(PhysicButtonsPanel, Panel):
layout.separator()
layout.prop(field, "guide_kink_type")
- if (field.guide_kink_type != 'NONE'):
+ if field.guide_kink_type != 'NONE':
layout.prop(field, "guide_kink_axis")
split = layout.split()
@@ -168,7 +167,6 @@ class PHYSICS_PT_field(PhysicButtonsPanel, Panel):
class PHYSICS_PT_collision(PhysicButtonsPanel, Panel):
bl_label = "Collision"
- #bl_options = {'DEFAULT_CLOSED'}
@classmethod
def poll(cls, context):
diff --git a/release/scripts/startup/bl_ui/properties_physics_fluid.py b/release/scripts/startup/bl_ui/properties_physics_fluid.py
index a53c1c97336..08278c02693 100644
--- a/release/scripts/startup/bl_ui/properties_physics_fluid.py
+++ b/release/scripts/startup/bl_ui/properties_physics_fluid.py
@@ -227,10 +227,10 @@ class PHYSICS_PT_domain_gravity(PhysicButtonsPanel, Panel):
col.label(text="Use Scene Size Units", icon='SCENE_DATA')
sub = col.column()
sub.enabled = False
- sub.prop(fluid, "simulation_scale", text="Metres")
+ sub.prop(fluid, "simulation_scale", text="Meters")
else:
col.label(text="Real World Size:")
- col.prop(fluid, "simulation_scale", text="Metres")
+ col.prop(fluid, "simulation_scale", text="Meters")
col = split.column()
col.label(text="Viscosity Presets:")
diff --git a/release/scripts/startup/bl_ui/properties_physics_smoke.py b/release/scripts/startup/bl_ui/properties_physics_smoke.py
index 1b333f1e505..acbaad4f961 100644
--- a/release/scripts/startup/bl_ui/properties_physics_smoke.py
+++ b/release/scripts/startup/bl_ui/properties_physics_smoke.py
@@ -20,10 +20,8 @@
import bpy
from bpy.types import Panel
-from bl_ui.properties_physics_common import (
- point_cache_ui,
- effector_weights_ui,
- )
+from bl_ui.properties_physics_common import (point_cache_ui,
+ effector_weights_ui)
class PhysicButtonsPanel():
diff --git a/release/scripts/startup/bl_ui/properties_physics_softbody.py b/release/scripts/startup/bl_ui/properties_physics_softbody.py
index b043c1f9b68..a69e7955de5 100644
--- a/release/scripts/startup/bl_ui/properties_physics_softbody.py
+++ b/release/scripts/startup/bl_ui/properties_physics_softbody.py
@@ -20,10 +20,8 @@
import bpy
from bpy.types import Panel
-from bl_ui.properties_physics_common import (
- point_cache_ui,
- effector_weights_ui,
- )
+from bl_ui.properties_physics_common import (point_cache_ui,
+ effector_weights_ui)
def softbody_panel_enabled(md):
diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py
index 1ed3638080a..544462e1242 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -63,9 +63,10 @@ class RENDER_PT_render(RenderButtonsPanel, Panel):
rd = context.scene.render
- row = layout.row()
- row.operator("render.render", text="Image", icon='RENDER_STILL')
+ row = layout.row(align=True)
+ row.operator("render.render", text="Render", icon='RENDER_STILL')
row.operator("render.render", text="Animation", icon='RENDER_ANIMATION').animation = True
+ row.operator("render.play_rendered_anim", text="Play", icon='PLAY')
layout.prop(rd, "display_mode", text="Display")
@@ -224,7 +225,7 @@ class RENDER_PT_dimensions(RenderButtonsPanel, Panel):
# TODO: Change the following to iterate over existing presets
custom_framerate = (fps_rate not in {23.98, 24, 25, 29.97, 30, 50, 59.94, 60})
- if custom_framerate == True:
+ if custom_framerate is True:
fps_label_text = "Custom (" + str(fps_rate) + " fps)"
else:
fps_label_text = str(fps_rate) + " fps"
@@ -315,10 +316,6 @@ class RENDER_PT_shading(RenderButtonsPanel, Panel):
col = split.column()
col.prop(rd, "use_raytrace", text="Ray Tracing")
- col.prop(rd, "use_color_management")
- sub = col.row()
- sub.active = rd.use_color_management == True
- sub.prop(rd, "use_color_unpremultiply")
col.prop(rd, "alpha_mode", text="Alpha")
@@ -466,7 +463,7 @@ class RENDER_PT_output(RenderButtonsPanel, Panel):
flow.prop(rd, "use_placeholder")
flow.prop(rd, "use_file_extension")
- layout.template_image_settings(image_settings)
+ layout.template_image_settings(image_settings, color_management=False)
if file_format == 'QUICKTIME_CARBON':
layout.operator("scene.render_data_set_quicktime_codec")
diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py
index c9c9c36217b..518b253d0b0 100644
--- a/release/scripts/startup/bl_ui/properties_scene.py
+++ b/release/scripts/startup/bl_ui/properties_scene.py
@@ -39,6 +39,7 @@ class SCENE_PT_scene(SceneButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
+
scene = context.scene
layout.prop(scene, "camera")
@@ -52,6 +53,7 @@ class SCENE_PT_audio(SceneButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
+
scene = context.scene
rd = context.scene.render
ffmpeg = rd.ffmpeg
@@ -81,6 +83,7 @@ class SCENE_PT_unit(SceneButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
+
unit = context.scene.unit_settings
col = layout.column()
@@ -228,6 +231,34 @@ class SCENE_PT_simplify(SceneButtonsPanel, Panel):
col.prop(rd, "simplify_ao_sss", text="AO and SSS")
+class SCENE_PT_color_management(Panel):
+ bl_label = "Color Management"
+ bl_space_type = 'PROPERTIES'
+ bl_region_type = 'WINDOW'
+ bl_context = "scene"
+
+ def draw(self, context):
+ layout = self.layout
+
+ scene = context.scene
+ rd = scene.render
+
+ col = layout.column()
+ col.label(text="Display:")
+ col.prop(scene.display_settings, "display_device")
+
+ col = layout.column()
+ col.separator()
+ col.label(text="Render:")
+ col.template_colormanaged_view_settings(scene, "view_settings")
+ col.prop(rd, "use_color_unpremultiply")
+
+ col = layout.column()
+ col.separator()
+ col.label(text="Sequencer:")
+ col.prop(scene.sequencer_colorspace_settings, "name")
+
+
class SCENE_PT_custom_props(SceneButtonsPanel, PropertyPanel, Panel):
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
_context_path = "scene"
diff --git a/release/scripts/startup/bl_ui/properties_texture.py b/release/scripts/startup/bl_ui/properties_texture.py
index 5bde9538e54..9e6bfe6889e 100644
--- a/release/scripts/startup/bl_ui/properties_texture.py
+++ b/release/scripts/startup/bl_ui/properties_texture.py
@@ -111,11 +111,18 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel, Panel):
engine = context.scene.render.engine
if not (hasattr(context, "texture_slot") or hasattr(context, "texture_node")):
return False
- return ((context.material or context.world or context.lamp or context.brush or context.texture or context.particle_system or isinstance(context.space_data.pin_id, ParticleSettings))
- and (engine in cls.COMPAT_ENGINES))
+ return ((context.material or
+ context.world or
+ context.lamp or
+ context.brush or
+ context.texture or
+ context.particle_system or
+ isinstance(context.space_data.pin_id, ParticleSettings)) and
+ (engine in cls.COMPAT_ENGINES))
def draw(self, context):
layout = self.layout
+
slot = getattr(context, "texture_slot", None)
node = getattr(context, "texture_node", None)
space = context.space_data
diff --git a/release/scripts/startup/bl_ui/properties_world.py b/release/scripts/startup/bl_ui/properties_world.py
index 76d70aafc2e..0b8d8a45a08 100644
--- a/release/scripts/startup/bl_ui/properties_world.py
+++ b/release/scripts/startup/bl_ui/properties_world.py
@@ -82,6 +82,7 @@ class WORLD_PT_world(WorldButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
+
world = context.world
row = layout.row()
@@ -111,6 +112,7 @@ class WORLD_PT_ambient_occlusion(WorldButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
+
light = context.world.light_settings
layout.active = light.use_ambient_occlusion
@@ -130,6 +132,7 @@ class WORLD_PT_environment_lighting(WorldButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
+
light = context.world.light_settings
layout.active = light.use_environment_light
@@ -149,6 +152,7 @@ class WORLD_PT_indirect_lighting(WorldButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
+
light = context.world.light_settings
layout.active = light.use_indirect_light and light.gather_method == 'APPROXIMATE'
@@ -167,6 +171,7 @@ class WORLD_PT_gather(WorldButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
+
light = context.world.light_settings
layout.active = light.use_ambient_occlusion or light.use_environment_light or light.use_indirect_light
@@ -221,6 +226,7 @@ class WORLD_PT_mist(WorldButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
+
world = context.world
layout.active = world.mist_settings.use_mist
@@ -250,6 +256,7 @@ class WORLD_PT_stars(WorldButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
+
world = context.world
layout.active = world.star_settings.use_stars
diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py
index 374588939e2..7732a0c6400 100644
--- a/release/scripts/startup/bl_ui/space_clip.py
+++ b/release/scripts/startup/bl_ui/space_clip.py
@@ -115,11 +115,11 @@ class CLIP_HT_header(Header):
sub.menu("CLIP_MT_view")
if clip:
- sub.menu("CLIP_MT_select")
- sub.menu("CLIP_MT_clip")
- sub.menu("CLIP_MT_mask")
+ sub.menu("MASK_MT_select")
+ sub.menu("CLIP_MT_clip") # XXX - remove?
+ sub.menu("MASK_MT_mask")
else:
- sub.menu("CLIP_MT_clip")
+ sub.menu("CLIP_MT_clip") # XXX - remove?
row = layout.row()
row.template_ID(sc, "clip", open="clip.open")
@@ -161,16 +161,6 @@ class CLIP_PT_clip_view_panel:
return clip and sc.view == 'CLIP'
-class CLIP_PT_mask_view_panel:
-
- @classmethod
- def poll(cls, context):
- sc = context.space_data
- clip = sc.clip
-
- return clip and sc.view == 'CLIP' and sc.mode == 'MASKEDIT'
-
-
class CLIP_PT_tracking_panel:
@classmethod
@@ -197,10 +187,11 @@ class CLIP_PT_tools_marker(CLIP_PT_tracking_panel, Panel):
bl_label = "Marker"
def draw(self, context):
+ layout = self.layout
+
sc = context.space_data
clip = sc.clip
settings = clip.tracking.settings
- layout = self.layout
col = layout.column(align=True)
col.operator("clip.add_marker_move")
@@ -241,9 +232,9 @@ class CLIP_PT_tools_marker(CLIP_PT_tracking_panel, Panel):
col.label(text="Tracker:")
col.prop(settings, "default_motion_model")
- col.prop(settings, "default_use_brute")
- col.prop(settings, "default_use_normalization")
- col.prop(settings, "default_use_mask")
+ col.prop(settings, "use_default_brute")
+ col.prop(settings, "use_default_normalization")
+ col.prop(settings, "use_default_mask")
col.prop(settings, "default_correlation_min")
col.separator()
@@ -302,6 +293,7 @@ class CLIP_PT_tools_solve(CLIP_PT_tracking_panel, Panel):
def draw(self, context):
layout = self.layout
+
clip = context.space_data.clip
tracking = clip.tracking
settings = tracking.settings
@@ -422,34 +414,6 @@ class CLIP_PT_tools_object(CLIP_PT_reconstruction_panel, Panel):
col.prop(settings, "object_distance")
-class CLIP_PT_tools_mask(CLIP_PT_mask_view_panel, Panel):
- bl_space_type = 'CLIP_EDITOR'
- bl_region_type = 'TOOLS'
- bl_label = "Mask Tools"
-
- def draw(self, context):
- layout = self.layout
-
- col = layout.column(align=True)
- col.label(text="Transform:")
- col.operator("transform.translate")
- col.operator("transform.rotate")
- col.operator("transform.resize", text="Scale")
- props = col.operator("transform.transform", text="Shrink/Fatten")
- props.mode = 'MASK_SHRINKFATTEN'
-
- col = layout.column(align=True)
- col.label(text="Spline:")
- col.operator("mask.delete")
- col.operator("mask.cyclic_toggle")
- col.operator("mask.switch_direction")
-
- col = layout.column(align=True)
- col.label(text="Parenting:")
- col.operator("mask.parent_set")
- col.operator("mask.parent_clear")
-
-
class CLIP_PT_tools_grease_pencil(Panel):
bl_space_type = 'CLIP_EDITOR'
bl_region_type = 'TOOLS'
@@ -465,7 +429,7 @@ class CLIP_PT_tools_grease_pencil(Panel):
if sc.mode == 'DISTORTION':
return sc.view == 'CLIP'
- elif sc.mode == 'MASKEDIT':
+ elif sc.mode == 'MASK':
return True
return False
@@ -520,6 +484,7 @@ class CLIP_PT_track(CLIP_PT_tracking_panel, Panel):
def draw(self, context):
layout = self.layout
+
sc = context.space_data
clip = context.space_data.clip
act_track = clip.tracking.tracks.active
@@ -586,6 +551,7 @@ class CLIP_PT_track_settings(CLIP_PT_tracking_panel, Panel):
def draw(self, context):
layout = self.layout
+
clip = context.space_data.clip
settings = clip.tracking.settings
@@ -661,123 +627,6 @@ class CLIP_PT_tracking_camera(Panel):
col.prop(clip.tracking.camera, "k3")
-class CLIP_PT_mask_layers(Panel):
- bl_space_type = 'CLIP_EDITOR'
- bl_region_type = 'UI'
- bl_label = "Mask Layers"
-
- @classmethod
- def poll(cls, context):
- sc = context.space_data
-
- return sc.mask and sc.mode == 'MASKEDIT'
-
- def draw(self, context):
- layout = self.layout
-
- sc = context.space_data
- mask = sc.mask
-
- row = layout.row()
- row.template_list(mask, "layers",
- mask, "active_layer_index", rows=3)
-
- sub = row.column(align=True)
-
- sub.operator("mask.layer_new", icon='ZOOMIN', text="")
- sub.operator("mask.layer_remove", icon='ZOOMOUT', text="")
-
- active = mask.layers.active
- if active:
- layout.prop(active, "name")
-
- # blending
- row = layout.row(align=True)
- row.prop(active, "alpha")
- row.prop(active, "invert", text="", icon='IMAGE_ALPHA')
-
- layout.prop(active, "blend")
-
-
-class CLIP_PT_active_mask_spline(Panel):
- bl_space_type = 'CLIP_EDITOR'
- bl_region_type = 'UI'
- bl_label = "Active Spline"
-
- @classmethod
- def poll(cls, context):
- sc = context.space_data
- mask = sc.mask
-
- if mask and sc.mode == 'MASKEDIT':
- return mask.layers.active and mask.layers.active.splines.active
-
- return False
-
- def draw(self, context):
- layout = self.layout
-
- sc = context.space_data
- mask = sc.mask
- spline = mask.layers.active.splines.active
-
- col = layout.column()
- col.prop(spline, "weight_interpolation")
- col.prop(spline, "use_cyclic")
-
-
-class CLIP_PT_active_mask_point(Panel):
- bl_space_type = 'CLIP_EDITOR'
- bl_region_type = 'UI'
- bl_label = "Active Point"
-
- @classmethod
- def poll(cls, context):
- sc = context.space_data
- mask = sc.mask
-
- if mask and sc.mode == 'MASKEDIT':
- mask_layer_active = mask.layers.active
- return (mask_layer_active and
- mask_layer_active.splines.active_point)
-
- return False
-
- def draw(self, context):
- layout = self.layout
-
- sc = context.space_data
- mask = sc.mask
- point = mask.layers.active.splines.active_point
- parent = point.parent
-
- col = layout.column()
- col.prop(point, "handle_type")
-
- col = layout.column()
- # Currently only parenting yo movie clip is allowed, so do not
- # ver-oplicate things for now and use single template_ID
- #col.template_any_ID(parent, "id", "id_type", text="")
-
- col.label("Parent:")
- col.prop(parent, "id", text="")
-
- if parent.id_type == 'MOVIECLIP' and parent.id:
- clip = parent.id
- tracking = clip.tracking
-
- col.prop_search(parent, "parent", tracking,
- "objects", icon='OBJECT_DATA', text="Object:")
-
- if parent.parent in tracking.objects:
- object = tracking.objects[parent.parent]
- col.prop_search(parent, "sub_parent", object,
- "tracks", icon='ANIM_DATA', text="Track:")
- else:
- col.prop_search(parent, "sub_parent", tracking,
- "tracks", icon='ANIM_DATA', text="Track:")
-
-
class CLIP_PT_display(CLIP_PT_clip_view_panel, Panel):
bl_space_type = 'CLIP_EDITOR'
bl_region_type = 'UI'
@@ -822,29 +671,6 @@ class CLIP_PT_display(CLIP_PT_clip_view_panel, Panel):
row = col.row()
row.prop(clip, "display_aspect", text="")
- if sc.mode == 'MASKEDIT':
- col = layout.column()
- col.prop(sc, "mask_draw_type", text="")
- col.prop(sc, "show_mask_smooth")
-
-
-# TODO, move into its own file
-class CLIP_PT_mask(CLIP_PT_mask_view_panel, Panel):
- bl_space_type = 'CLIP_EDITOR'
- bl_region_type = 'UI'
- bl_label = "Mask Settings"
- bl_options = {'DEFAULT_CLOSED'}
-
- def draw(self, context):
- layout = self.layout
-
- sc = context.space_data
- mask = sc.mask
-
- col = layout.column(align=True)
- col.prop(mask, "frame_start")
- col.prop(mask, "frame_end")
-
class CLIP_PT_marker_display(CLIP_PT_clip_view_panel, Panel):
bl_space_type = 'CLIP_EDITOR'
@@ -855,7 +681,7 @@ class CLIP_PT_marker_display(CLIP_PT_clip_view_panel, Panel):
def poll(cls, context):
sc = context.space_data
- return sc.mode != 'MASKEDIT'
+ return sc.mode != 'MASK'
def draw(self, context):
layout = self.layout
@@ -960,45 +786,49 @@ class CLIP_PT_proxy(CLIP_PT_clip_view_panel, Panel):
def draw(self, context):
layout = self.layout
+
sc = context.space_data
clip = sc.clip
- layout.active = clip.use_proxy
+ col = layout.column()
+ col.active = clip.use_proxy
- layout.label(text="Build Original:")
+ col.label(text="Build Original:")
- row = layout.row(align=True)
+ row = col.row(align=True)
row.prop(clip.proxy, "build_25", toggle=True)
row.prop(clip.proxy, "build_50", toggle=True)
row.prop(clip.proxy, "build_75", toggle=True)
row.prop(clip.proxy, "build_100", toggle=True)
- layout.label(text="Build Undistorted:")
+ col.label(text="Build Undistorted:")
- row = layout.row(align=True)
+ row = col.row(align=True)
row.prop(clip.proxy, "build_undistorted_25", toggle=True)
row.prop(clip.proxy, "build_undistorted_50", toggle=True)
row.prop(clip.proxy, "build_undistorted_75", toggle=True)
row.prop(clip.proxy, "build_undistorted_100", toggle=True)
- layout.prop(clip.proxy, "quality")
+ col.prop(clip.proxy, "quality")
- layout.prop(clip, "use_proxy_custom_directory")
+ col.prop(clip, "use_proxy_custom_directory")
if clip.use_proxy_custom_directory:
- layout.prop(clip.proxy, "directory")
+ col.prop(clip.proxy, "directory")
- layout.operator("clip.rebuild_proxy", text="Build Proxy")
+ col.operator("clip.rebuild_proxy", text="Build Proxy")
if clip.source == 'MOVIE':
- col = layout.column()
+ col2 = col.column()
- col.label(text="Use timecode index:")
- col.prop(clip.proxy, "timecode", text="")
+ col2.label(text="Use timecode index:")
+ col2.prop(clip.proxy, "timecode", text="")
- col = layout.column()
- col.label(text="Proxy render size:")
+ col2 = col.column()
+ col2.label(text="Proxy render size:")
col.prop(sc.clip_user, "proxy_render_size", text="")
+
+ col = layout.column()
col.prop(sc.clip_user, "use_render_undistorted")
@@ -1016,7 +846,7 @@ class CLIP_PT_footage(CLIP_PT_clip_view_panel, Panel):
col = layout.column()
col.template_movieclip(sc, "clip", compact=True)
- col.prop(clip, "start_frame")
+ col.prop(clip, "frame_start")
col.prop(clip, "frame_offset")
@@ -1037,6 +867,7 @@ class CLIP_MT_view(Menu):
def draw(self, context):
layout = self.layout
+
sc = context.space_data
if sc.view == 'CLIP':
@@ -1111,7 +942,7 @@ class CLIP_MT_track(Menu):
props.action = 'UPTO'
props = layout.operator("clip.clear_track_path",
- text="Clear Track Path")
+ text="Clear Track Path")
props.action = 'ALL'
layout.separator()
@@ -1126,7 +957,7 @@ class CLIP_MT_track(Menu):
layout.separator()
props = layout.operator("clip.track_markers",
- text="Track Frame Backwards")
+ text="Track Frame Backwards")
props.backwards = True
props = layout.operator("clip.track_markers", text="Track Backwards")
@@ -1200,30 +1031,18 @@ class CLIP_MT_select(Menu):
def draw(self, context):
layout = self.layout
- sc = context.space_data
-
- if sc.mode == 'MASKEDIT':
- layout.operator("mask.select_border")
- layout.operator("mask.select_circle")
-
- layout.separator()
- layout.operator("mask.select_all"
- ).action = 'TOGGLE'
- layout.operator("mask.select_all",
- text="Inverse").action = 'INVERT'
- else:
- layout.operator("clip.select_border")
- layout.operator("clip.select_circle")
+ layout.operator("clip.select_border")
+ layout.operator("clip.select_circle")
- layout.separator()
+ layout.separator()
- layout.operator("clip.select_all"
- ).action = 'TOGGLE'
- layout.operator("clip.select_all",
- text="Inverse").action = 'INVERT'
+ layout.operator("clip.select_all"
+ ).action = 'TOGGLE'
+ layout.operator("clip.select_all",
+ text="Inverse").action = 'INVERT'
- layout.menu("CLIP_MT_select_grouped")
+ layout.menu("CLIP_MT_select_grouped")
class CLIP_MT_select_grouped(Menu):
@@ -1267,66 +1086,15 @@ class CLIP_MT_tracking_specials(Menu):
props.action = 'UNLOCK'
-class CLIP_MT_mask(Menu):
- bl_label = "Mask"
+class CLIP_MT_select_mode(Menu):
+ bl_label = "Select Mode"
def draw(self, context):
layout = self.layout
- layout.operator("mask.delete")
+ layout.operator_context = 'INVOKE_REGION_WIN'
- layout.separator()
- layout.operator("mask.cyclic_toggle")
- layout.operator("mask.switch_direction")
- layout.operator("mask.normals_make_consistent")
- layout.operator("mask.feather_weight_clear") # TODO, better place?
-
- layout.separator()
- layout.operator("mask.parent_clear")
- layout.operator("mask.parent_set")
-
- layout.separator()
- layout.menu("CLIP_MT_mask_visibility")
- layout.menu("CLIP_MT_mask_transform")
- layout.menu("CLIP_MT_mask_animation")
-
-
-class CLIP_MT_mask_visibility(Menu):
- bl_label = "Show/Hide"
-
- def draw(self, context):
- layout = self.layout
-
- layout.operator("mask.hide_view_clear", text="Show Hidden")
- layout.operator("mask.hide_view_set", text="Hide Selected")
-
- props = layout.operator("mask.hide_view_set", text="Hide Unselected")
- props.unselected = True
-
-
-class CLIP_MT_mask_transform(Menu):
- bl_label = "Transform"
-
- def draw(self, context):
- layout = self.layout
-
- layout.operator("transform.translate")
- layout.operator("transform.rotate")
- layout.operator("transform.resize")
- props = layout.operator("transform.transform", text="Shrink/Fatten")
- props.mode = 'MASK_SHRINKFATTEN'
-
-
-class CLIP_MT_mask_animation(Menu):
- bl_label = "Animation"
-
- def draw(self, context):
- layout = self.layout
-
- layout.operator("mask.shape_key_clear")
- layout.operator("mask.shape_key_insert")
- layout.operator("mask.shape_key_feather_reset")
- layout.operator("mask.shape_key_rekey")
+ layout.operator_enum("clip.mode_set", "mode")
class CLIP_MT_camera_presets(Menu):
@@ -1370,5 +1138,49 @@ class CLIP_MT_stabilize_2d_specials(Menu):
layout.operator("clip.stabilize_2d_select")
+
+# -----------------------------------------------------------------------------
+# Mask (similar code in space_image.py, keep in sync)
+
+
+from bl_ui.properties_mask_common import (MASK_PT_mask,
+ MASK_PT_layers,
+ MASK_PT_spline,
+ MASK_PT_point,
+ MASK_PT_display,
+ MASK_PT_tools)
+
+
+class CLIP_PT_mask(MASK_PT_mask, Panel):
+ bl_space_type = 'CLIP_EDITOR'
+ bl_region_type = 'UI'
+
+
+class CLIP_PT_mask_layers(MASK_PT_layers, Panel):
+ bl_space_type = 'CLIP_EDITOR'
+ bl_region_type = 'UI'
+
+
+class CLIP_PT_mask_display(MASK_PT_display, Panel):
+ bl_space_type = 'CLIP_EDITOR'
+ bl_region_type = 'UI'
+
+
+class CLIP_PT_active_mask_spline(MASK_PT_spline, Panel):
+ bl_space_type = 'CLIP_EDITOR'
+ bl_region_type = 'UI'
+
+
+class CLIP_PT_active_mask_point(MASK_PT_point, Panel):
+ bl_space_type = 'CLIP_EDITOR'
+ bl_region_type = 'UI'
+
+
+class CLIP_PT_tools_mask(MASK_PT_tools, Panel):
+ bl_space_type = 'CLIP_EDITOR'
+ bl_region_type = 'TOOLS'
+
+# --- end mask ---
+
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_console.py b/release/scripts/startup/bl_ui/space_console.py
index 5ec9d06ec89..5ff179902a3 100644
--- a/release/scripts/startup/bl_ui/space_console.py
+++ b/release/scripts/startup/bl_ui/space_console.py
@@ -51,6 +51,7 @@ class CONSOLE_MT_console(Menu):
layout.separator()
+ layout.operator("console.copy_as_script")
layout.operator("console.copy")
layout.operator("console.paste")
layout.menu("CONSOLE_MT_language")
@@ -74,7 +75,7 @@ class CONSOLE_MT_language(Menu):
languages = []
for modname, mod in sys.modules.items():
if modname.startswith("console_") and hasattr(mod, "execute"):
- languages.append(modname.split('_', 1)[-1])
+ languages.append(modname.split("_", 1)[-1])
languages.sort()
@@ -83,9 +84,9 @@ class CONSOLE_MT_language(Menu):
def add_scrollback(text, text_type):
- for l in text.split('\n'):
+ for l in text.split("\n"):
bpy.ops.console.scrollback_append(text=l.replace('\t', ' '),
- type=text_type)
+ type=text_type)
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py
index 44fb429ffe7..5302ad9b471 100644
--- a/release/scripts/startup/bl_ui/space_image.py
+++ b/release/scripts/startup/bl_ui/space_image.py
@@ -27,7 +27,7 @@ class ImagePaintPanel(UnifiedPaintPanel):
bl_region_type = 'UI'
-class BrushButtonsPanel():
+class BrushButtonsPanel:
bl_space_type = 'IMAGE_EDITOR'
bl_region_type = 'UI'
@@ -106,6 +106,10 @@ class IMAGE_MT_select(Menu):
layout.operator("uv.select_pinned")
layout.operator("uv.select_linked")
+ layout.separator()
+
+ layout.operator("uv.select_split")
+
class IMAGE_MT_image(Menu):
bl_label = "Image"
@@ -153,10 +157,6 @@ class IMAGE_MT_image(Menu):
if ima.source in {'FILE', 'GENERATED'} and ima.type != 'OPEN_EXR_MULTILAYER':
layout.operator("image.pack", text="Pack As PNG").as_png = True
- if not context.tool_settings.use_uv_sculpt:
- layout.separator()
- layout.prop(sima, "use_image_paint")
-
layout.separator()
@@ -217,6 +217,7 @@ class IMAGE_MT_uvs_snap(Menu):
def draw(self, context):
layout = self.layout
+
layout.operator_context = 'EXEC_REGION_WIN'
layout.operator("uv.snap_selected", text="Selected to Pixels").target = 'PIXELS'
@@ -234,6 +235,7 @@ class IMAGE_MT_uvs_mirror(Menu):
def draw(self, context):
layout = self.layout
+
layout.operator_context = 'EXEC_REGION_WIN'
layout.operator("transform.mirror", text="X Axis").constraint_axis[0] = True
@@ -353,10 +355,12 @@ class IMAGE_HT_header(Header):
ima = sima.image
iuser = sima.image_user
toolsettings = context.tool_settings
+ mode = sima.mode
show_render = sima.show_render
# show_paint = sima.show_paint
show_uvedit = sima.show_uvedit
+ show_maskedit = sima.show_maskedit
row = layout.row(align=True)
row.template_header()
@@ -381,11 +385,19 @@ class IMAGE_HT_header(Header):
if not show_render:
layout.prop(sima, "use_image_pin", text="")
+ layout.prop(sima, "mode", text="")
+
+ if show_maskedit:
+ row = layout.row()
+ row.template_ID(sima, "mask", new="mask.new")
+
+ if show_uvedit or show_maskedit:
+ layout.prop(sima, "pivot_point", text="", icon_only=True)
+
# uv editing
if show_uvedit:
uvedit = sima.uv_editor
- layout.prop(uvedit, "pivot_point", text="", icon_only=True)
layout.prop(toolsettings, "use_uv_select_sync", text="")
if toolsettings.use_uv_select_sync:
@@ -410,9 +422,6 @@ class IMAGE_HT_header(Header):
# layers
layout.template_image_layers(ima, iuser)
- # painting
- layout.prop(sima, "use_image_paint", text="")
-
# draw options
row = layout.row(align=True)
row.prop(sima, "draw_channels", text="", expand=True)
@@ -423,7 +432,7 @@ class IMAGE_HT_header(Header):
if ima.type == 'COMPOSITE' and ima.source in {'MOVIE', 'SEQUENCE'}:
row.operator("image.play_composite", icon='PLAY')
- if show_uvedit or sima.use_image_paint:
+ if show_uvedit or show_maskedit or mode == 'PAINT':
layout.prop(sima, "use_realtime_update", text="", icon_only=True, icon='LOCKED')
@@ -610,6 +619,7 @@ class IMAGE_PT_view_properties(Panel):
sima = context.space_data
ima = sima.image
show_uvedit = sima.show_uvedit
+ show_maskedit = sima.show_maskedit
uvedit = sima.uv_editor
split = layout.split()
@@ -628,12 +638,12 @@ class IMAGE_PT_view_properties(Panel):
col.label(text="Coordinates:")
col.prop(uvedit, "show_normalized_coords", text="Normalized")
- if show_uvedit:
-
+ if show_uvedit or show_maskedit:
col = layout.column()
col.label("Cursor Location:")
- col.row().prop(uvedit, "cursor_location", text="")
+ col.row().prop(sima, "cursor_location", text="")
+ if show_uvedit:
col.separator()
col.label(text="UVs:")
@@ -797,12 +807,12 @@ class IMAGE_UV_sculpt_curve(Panel):
layout.template_curve_mapping(brush, "curve")
row = layout.row(align=True)
- row.operator("brush.curve_preset", icon="SMOOTHCURVE", text="").shape = 'SMOOTH'
- row.operator("brush.curve_preset", icon="SPHERECURVE", text="").shape = 'ROUND'
- row.operator("brush.curve_preset", icon="ROOTCURVE", text="").shape = 'ROOT'
- row.operator("brush.curve_preset", icon="SHARPCURVE", text="").shape = 'SHARP'
- row.operator("brush.curve_preset", icon="LINCURVE", text="").shape = 'LINE'
- row.operator("brush.curve_preset", icon="NOCURVE", text="").shape = 'MAX'
+ row.operator("brush.curve_preset", icon='SMOOTHCURVE', text="").shape = 'SMOOTH'
+ row.operator("brush.curve_preset", icon='SPHERECURVE', text="").shape = 'ROUND'
+ row.operator("brush.curve_preset", icon='ROOTCURVE', text="").shape = 'ROOT'
+ row.operator("brush.curve_preset", icon='SHARPCURVE', text="").shape = 'SHARP'
+ row.operator("brush.curve_preset", icon='LINCURVE', text="").shape = 'LINE'
+ row.operator("brush.curve_preset", icon='NOCURVE', text="").shape = 'MAX'
class IMAGE_UV_sculpt(Panel, ImagePaintPanel):
@@ -834,20 +844,57 @@ class IMAGE_UV_sculpt(Panel, ImagePaintPanel):
self.prop_unified_strength(row, context, brush, "strength", slider=True, text="Strength")
self.prop_unified_strength(row, context, brush, "use_pressure_strength")
- split = layout.split()
- col = split.column()
-
+ col = layout.column()
col.prop(toolsettings, "uv_sculpt_lock_borders")
col.prop(toolsettings, "uv_sculpt_all_islands")
-
- split = layout.split()
- col = split.column()
-
col.prop(toolsettings, "uv_sculpt_tool")
if toolsettings.uv_sculpt_tool == 'RELAX':
col.prop(toolsettings, "uv_relax_method")
+# -----------------------------------------------------------------------------
+# Mask (similar code in space_clip.py, keep in sync)
+# note! - panel placement does _not_ fit well with image panels... need to fix
+
+from bl_ui.properties_mask_common import (MASK_PT_mask,
+ MASK_PT_layers,
+ MASK_PT_spline,
+ MASK_PT_point,
+ MASK_PT_display,
+ MASK_PT_tools)
+
+
+class IMAGE_PT_mask(MASK_PT_mask, Panel):
+ bl_space_type = 'IMAGE_EDITOR'
+ bl_region_type = 'PREVIEW'
+
+
+class IMAGE_PT_mask_layers(MASK_PT_layers, Panel):
+ bl_space_type = 'IMAGE_EDITOR'
+ bl_region_type = 'PREVIEW'
+
+
+class IMAGE_PT_mask_display(MASK_PT_display, Panel):
+ bl_space_type = 'IMAGE_EDITOR'
+ bl_region_type = 'PREVIEW'
+
+
+class IMAGE_PT_active_mask_spline(MASK_PT_spline, Panel):
+ bl_space_type = 'IMAGE_EDITOR'
+ bl_region_type = 'PREVIEW'
+
+
+class IMAGE_PT_active_mask_point(MASK_PT_point, Panel):
+ bl_space_type = 'IMAGE_EDITOR'
+ bl_region_type = 'PREVIEW'
+
+
+class IMAGE_PT_tools_mask(MASK_PT_tools, Panel):
+ bl_space_type = 'IMAGE_EDITOR'
+ bl_region_type = 'UI' # is 'TOOLS' in the clip editor
+
+# --- end mask ---
+
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_info.py b/release/scripts/startup/bl_ui/space_info.py
index 8ddb2df352a..9ab2a772df0 100644
--- a/release/scripts/startup/bl_ui/space_info.py
+++ b/release/scripts/startup/bl_ui/space_info.py
@@ -192,7 +192,7 @@ class INFO_MT_mesh_add(Menu):
def draw(self, context):
layout = self.layout
- layout.operator_context = 'INVOKE_REGION_WIN'
+ layout.operator_context = 'EXEC_REGION_WIN'
layout.operator("mesh.primitive_plane_add", icon='MESH_PLANE', text="Plane")
layout.operator("mesh.primitive_cube_add", icon='MESH_CUBE', text="Cube")
layout.operator("mesh.primitive_circle_add", icon='MESH_CIRCLE', text="Circle")
@@ -203,7 +203,7 @@ class INFO_MT_mesh_add(Menu):
layout.separator()
layout.operator("mesh.primitive_grid_add", icon='MESH_GRID', text="Grid")
layout.operator("mesh.primitive_monkey_add", icon='MESH_MONKEY', text="Monkey")
- layout.operator("mesh.primitive_torus_add", text="Torus", icon='MESH_TORUS')
+ layout.operator("mesh.primitive_torus_add", icon='MESH_TORUS', text="Torus")
class INFO_MT_curve_add(Menu):
@@ -213,7 +213,7 @@ class INFO_MT_curve_add(Menu):
def draw(self, context):
layout = self.layout
- layout.operator_context = 'INVOKE_REGION_WIN'
+ layout.operator_context = 'EXEC_REGION_WIN'
layout.operator("curve.primitive_bezier_curve_add", icon='CURVE_BEZCURVE', text="Bezier")
layout.operator("curve.primitive_bezier_circle_add", icon='CURVE_BEZCIRCLE', text="Circle")
layout.operator("curve.primitive_nurbs_curve_add", icon='CURVE_NCURVE', text="Nurbs Curve")
@@ -221,22 +221,6 @@ class INFO_MT_curve_add(Menu):
layout.operator("curve.primitive_nurbs_path_add", icon='CURVE_PATH', text="Path")
-class INFO_MT_edit_curve_add(Menu):
- bl_idname = "INFO_MT_edit_curve_add"
- bl_label = "Add"
-
- def draw(self, context):
- is_surf = context.active_object.type == 'SURFACE'
-
- layout = self.layout
- layout.operator_context = 'INVOKE_REGION_WIN'
-
- if is_surf:
- INFO_MT_surface_add.draw(self, context)
- else:
- INFO_MT_curve_add.draw(self, context)
-
-
class INFO_MT_surface_add(Menu):
bl_idname = "INFO_MT_surface_add"
bl_label = "Surface"
@@ -244,7 +228,7 @@ class INFO_MT_surface_add(Menu):
def draw(self, context):
layout = self.layout
- layout.operator_context = 'INVOKE_REGION_WIN'
+ layout.operator_context = 'EXEC_REGION_WIN'
layout.operator("surface.primitive_nurbs_surface_curve_add", icon='SURFACE_NCURVE', text="NURBS Curve")
layout.operator("surface.primitive_nurbs_surface_circle_add", icon='SURFACE_NCIRCLE', text="NURBS Circle")
layout.operator("surface.primitive_nurbs_surface_surface_add", icon='SURFACE_NSURFACE', text="NURBS Surface")
@@ -253,6 +237,22 @@ class INFO_MT_surface_add(Menu):
layout.operator("surface.primitive_nurbs_surface_torus_add", icon='SURFACE_NTORUS', text="NURBS Torus")
+class INFO_MT_edit_curve_add(Menu):
+ bl_idname = "INFO_MT_edit_curve_add"
+ bl_label = "Add"
+
+ def draw(self, context):
+ is_surf = context.active_object.type == 'SURFACE'
+
+ layout = self.layout
+ layout.operator_context = 'EXEC_REGION_WIN'
+
+ if is_surf:
+ INFO_MT_surface_add.draw(self, context)
+ else:
+ INFO_MT_curve_add.draw(self, context)
+
+
class INFO_MT_armature_add(Menu):
bl_idname = "INFO_MT_armature_add"
bl_label = "Armature"
@@ -260,7 +260,7 @@ class INFO_MT_armature_add(Menu):
def draw(self, context):
layout = self.layout
- layout.operator_context = 'INVOKE_REGION_WIN'
+ layout.operator_context = 'EXEC_REGION_WIN'
layout.operator("object.armature_add", text="Single Bone", icon='BONE_DATA')
@@ -272,7 +272,9 @@ class INFO_MT_add(Menu):
# note, don't use 'EXEC_SCREEN' or operators wont get the 'v3d' context.
- layout.operator_context = 'EXEC_AREA'
+ # Note: was EXEC_AREA, but this context does not have the 'rv3d', which prevents
+ # "align_view" to work on first call (see [#32719]).
+ layout.operator_context = 'EXEC_REGION_WIN'
#layout.operator_menu_enum("object.mesh_add", "type", text="Mesh", icon='OUTLINER_OB_MESH')
layout.menu("INFO_MT_mesh_add", icon='OUTLINER_OB_MESH')
@@ -282,20 +284,18 @@ class INFO_MT_add(Menu):
#layout.operator_menu_enum("object.surface_add", "type", text="Surface", icon='OUTLINER_OB_SURFACE')
layout.menu("INFO_MT_surface_add", icon='OUTLINER_OB_SURFACE')
layout.operator_menu_enum("object.metaball_add", "type", text="Metaball", icon='OUTLINER_OB_META')
- layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("object.text_add", text="Text", icon='OUTLINER_OB_FONT')
layout.separator()
layout.menu("INFO_MT_armature_add", icon='OUTLINER_OB_ARMATURE')
layout.operator("object.add", text="Lattice", icon='OUTLINER_OB_LATTICE').type = 'LATTICE'
- layout.operator("object.add", text="Empty", icon='OUTLINER_OB_EMPTY').type = 'EMPTY'
+ layout.operator_menu_enum("object.empty_add", "type", text="Empty", icon='OUTLINER_OB_EMPTY')
layout.separator()
layout.operator("object.speaker_add", text="Speaker", icon='OUTLINER_OB_SPEAKER')
layout.separator()
layout.operator("object.camera_add", text="Camera", icon='OUTLINER_OB_CAMERA')
- layout.operator_context = 'EXEC_AREA'
layout.operator_menu_enum("object.lamp_add", "type", text="Lamp", icon='OUTLINER_OB_LAMP')
layout.separator()
@@ -303,7 +303,7 @@ class INFO_MT_add(Menu):
layout.separator()
if(len(bpy.data.groups) > 10):
- layout.operator_context = 'INVOKE_DEFAULT'
+ layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("object.group_instance_add", text="Group Instance...", icon='OUTLINER_OB_EMPTY')
else:
layout.operator_menu_enum("object.group_instance_add", "group", text="Group Instance", icon='OUTLINER_OB_EMPTY')
@@ -372,7 +372,7 @@ class INFO_MT_help(Menu):
layout = self.layout
layout.operator("wm.url_open", text="Manual", icon='HELP').url = "http://wiki.blender.org/index.php/Doc:2.6/Manual"
- layout.operator("wm.url_open", text="Release Log", icon='URL').url = "http://www.blender.org/development/release-logs/blender-263"
+ layout.operator("wm.url_open", text="Release Log", icon='URL').url = "http://www.blender.org/development/release-logs/blender-264"
layout.separator()
layout.operator("wm.url_open", text="Blender Website", icon='URL').url = "http://www.blender.org"
diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py
index 40c7b632247..5b7ecbfb618 100644
--- a/release/scripts/startup/bl_ui/space_node.py
+++ b/release/scripts/startup/bl_ui/space_node.py
@@ -94,6 +94,10 @@ class NODE_HT_header(Header):
if toolsettings.snap_node_element != 'INCREMENT':
row.prop(toolsettings, "snap_target", text="")
+ row = layout.row(align=True)
+ row.operator("node.clipboard_copy", text="", icon='COPYDOWN')
+ row.operator("node.clipboard_paste", text="", icon='PASTEDOWN')
+
layout.template_running_jobs()
@@ -111,6 +115,7 @@ class NODE_MT_view(Menu):
layout.separator()
+ layout.operator("node.view_selected")
layout.operator("node.view_all")
if context.space_data.show_backdrop:
@@ -135,7 +140,8 @@ class NODE_MT_select(Menu):
layout.operator("node.select_border")
layout.separator()
- layout.operator("node.select_all")
+ layout.operator("node.select_all").action = 'TOGGLE'
+ layout.operator("node.select_all", text="Inverse").action = 'INVERT'
layout.operator("node.select_linked_from")
layout.operator("node.select_linked_to")
layout.operator("node.select_same_type")
@@ -176,6 +182,7 @@ class NODE_MT_node(Menu):
layout.operator("node.preview_toggle")
layout.operator("node.hide_socket_toggle")
layout.operator("node.options_toggle")
+ layout.operator("node.collapse_hide_unused_toggle")
layout.separator()
@@ -226,16 +233,21 @@ class NODE_PT_quality(bpy.types.Panel):
def draw(self, context):
layout = self.layout
+
snode = context.space_data
tree = snode.node_tree
- layout.prop(tree, "render_quality", text="Render")
- layout.prop(tree, "edit_quality", text="Edit")
- layout.prop(tree, "chunk_size")
- layout.prop(tree, "use_opencl")
- layout.prop(tree, "two_pass")
- layout.prop(snode, "show_highlight")
-
+ col = layout.column()
+ col.prop(tree, "render_quality", text="Render")
+ col.prop(tree, "edit_quality", text="Edit")
+ col.prop(tree, "chunk_size")
+
+ col = layout.column()
+ col.prop(tree, "use_opencl")
+ col.prop(tree, "two_pass")
+ col.prop(snode, "show_highlight")
+ col.prop(snode, "use_hidden_preview")
+
class NODE_MT_node_color_presets(Menu):
"""Predefined node color"""
diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index 76053987843..4a418698e26 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -28,6 +28,29 @@ def act_strip(context):
return None
+def draw_color_balance(layout, color_balance):
+ col = layout.column()
+ col.label(text="Lift:")
+ col.template_color_wheel(color_balance, "lift", value_slider=True, cubic=True)
+ row = col.row()
+ row.prop(color_balance, "lift", text="")
+ row.prop(color_balance, "invert_lift", text="Inverse")
+
+ col = layout.column()
+ col.label(text="Gamma:")
+ col.template_color_wheel(color_balance, "gamma", value_slider=True, lock_luminosity=True, cubic=True)
+ row = col.row()
+ row.prop(color_balance, "gamma", text="")
+ row.prop(color_balance, "invert_gamma", text="Inverse")
+
+ col = layout.column()
+ col.label(text="Gain:")
+ col.template_color_wheel(color_balance, "gain", value_slider=True, lock_luminosity=True, cubic=True)
+ row = col.row()
+ row.prop(color_balance, "gain", text="")
+ row.prop(color_balance, "invert_gain", text="Inverse")
+
+
class SEQUENCER_HT_header(Header):
bl_space_type = 'SEQUENCE_EDITOR'
@@ -60,11 +83,11 @@ class SEQUENCER_HT_header(Header):
layout.separator()
layout.operator("sequencer.refresh_all")
- elif st.view_type == 'SEQUENCER_PREVIEW':
- layout.separator()
- layout.operator("sequencer.refresh_all")
- layout.prop(st, "display_channel", text="Channel")
else:
+ if st.view_type == 'SEQUENCER_PREVIEW':
+ layout.separator()
+ layout.operator("sequencer.refresh_all")
+
layout.prop(st, "display_channel", text="Channel")
ed = context.scene.sequence_editor
@@ -75,12 +98,15 @@ class SEQUENCER_HT_header(Header):
row.prop(ed, "overlay_frame", text="")
row.prop(ed, "overlay_lock", text="", icon='LOCKED')
- row = layout.row(align=True)
- props = row.operator("render.opengl", text="", icon='RENDER_STILL')
- props.sequencer = True
- props = row.operator("render.opengl", text="", icon='RENDER_ANIMATION')
- props.animation = True
- props.sequencer = True
+ row = layout.row()
+ row.prop(st, "overlay_type", text="")
+
+ row = layout.row(align=True)
+ props = row.operator("render.opengl", text="", icon='RENDER_STILL')
+ props.sequencer = True
+ props = row.operator("render.opengl", text="", icon='RENDER_ANIMATION')
+ props.animation = True
+ props.sequencer = True
layout.template_running_jobs()
@@ -104,12 +130,19 @@ class SEQUENCER_MT_view(Menu):
st = context.space_data
+ if st.view_type in {'PREVIEW'}:
+ # Specifying the REGION_PREVIEW context is needed in preview-only
+ # mode, else the lookup for the shortcut will fail in
+ # wm_keymap_item_find_props() (see #32595).
+ layout.operator_context = 'INVOKE_REGION_PREVIEW'
layout.operator("sequencer.properties", icon='MENU_PANEL')
+ layout.operator_context = 'INVOKE_DEFAULT'
layout.separator()
if st.view_type in {'SEQUENCER', 'SEQUENCER_PREVIEW'}:
layout.operator("sequencer.view_all", text="View all Sequences")
+ layout.operator("sequencer.view_selected")
if st.view_type in {'PREVIEW', 'SEQUENCER_PREVIEW'}:
layout.operator_context = 'INVOKE_REGION_PREVIEW'
layout.operator("sequencer.view_all_preview", text="Fit preview in window")
@@ -117,21 +150,23 @@ class SEQUENCER_MT_view(Menu):
layout.operator_context = 'INVOKE_DEFAULT'
# # XXX, invokes in the header view
- # layout.operator("sequencer.view_ghost_border", text='Overlay Border')
+ # layout.operator("sequencer.view_ghost_border", text="Overlay Border")
- layout.operator("sequencer.view_selected")
-
- layout.prop(st, "show_seconds")
+ if st.view_type in {'SEQUENCER', 'SEQUENCER_PREVIEW'}:
+ layout.prop(st, "show_seconds")
+ layout.prop(st, "show_frame_indicator")
- layout.prop(st, "show_frame_indicator")
- if st.display_mode == 'IMAGE':
- layout.prop(st, "show_safe_margin")
- if st.display_mode == 'WAVEFORM':
- layout.prop(st, "show_separate_color")
+ if st.view_type in {'PREVIEW', 'SEQUENCER_PREVIEW'}:
+ if st.display_mode == 'IMAGE':
+ layout.prop(st, "show_safe_margin")
+ elif st.display_mode == 'WAVEFORM':
+ layout.prop(st, "show_separate_color")
layout.separator()
- layout.prop(st, "use_marker_sync")
- layout.separator()
+
+ if st.view_type in {'SEQUENCER', 'SEQUENCER_PREVIEW'}:
+ layout.prop(st, "use_marker_sync")
+ layout.separator()
layout.operator("screen.area_dupli")
layout.operator("screen.screen_full_area")
@@ -184,6 +219,7 @@ class SEQUENCER_MT_add(Menu):
def draw(self, context):
layout = self.layout
+
layout.operator_context = 'INVOKE_REGION_WIN'
if len(bpy.data.scenes) > 10:
@@ -216,6 +252,7 @@ class SEQUENCER_MT_add_effect(Menu):
def draw(self, context):
layout = self.layout
+
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("sequencer.effect_strip_add", text="Add").type = 'ADD'
@@ -421,12 +458,14 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
return strip.type in {'ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER',
'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'SPEED',
- 'MULTICAM', 'ADJUSTMENT'}
+ 'MULTICAM'}
def draw(self, context):
layout = self.layout
+ sequencer = context.scene.sequence_editor
strip = act_strip(context)
+
if strip.input_count > 0:
col = layout.column()
col.prop(strip, "input_1")
@@ -486,7 +525,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
col = layout.column(align=True)
col.prop(strip, "use_uniform_scale")
- if (strip.use_uniform_scale):
+ if strip.use_uniform_scale:
col = layout.column(align=True)
col.prop(strip, "scale_start_x", text="Scale")
else:
@@ -759,23 +798,6 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel, Panel):
col.prop(strip, "use_premultiply")
col.prop(strip, "use_float")
- layout.prop(strip, "use_color_balance")
- if strip.use_color_balance and strip.color_balance: # TODO - need to add this somehow
- row = layout.row()
- row.active = strip.use_color_balance
- col = row.column()
- col.template_color_wheel(strip.color_balance, "lift", value_slider=False, cubic=True)
- col.row().prop(strip.color_balance, "lift")
- col.prop(strip.color_balance, "invert_lift", text="Inverse")
- col = row.column()
- col.template_color_wheel(strip.color_balance, "gamma", value_slider=False, lock_luminosity=True, cubic=True)
- col.row().prop(strip.color_balance, "gamma")
- col.prop(strip.color_balance, "invert_gamma", text="Inverse")
- col = row.column()
- col.template_color_wheel(strip.color_balance, "gain", value_slider=False, lock_luminosity=True, cubic=True)
- col.row().prop(strip.color_balance, "gain")
- col.prop(strip.color_balance, "invert_gain", text="Inverse")
-
class SEQUENCER_PT_proxy(SequencerButtonsPanel, Panel):
bl_label = "Proxy / Timecode"
@@ -820,7 +842,7 @@ class SEQUENCER_PT_proxy(SequencerButtonsPanel, Panel):
col.label(text="Build JPEG quality")
col.prop(strip.proxy, "quality")
- if strip.type == "MOVIE":
+ if strip.type == 'MOVIE':
col = layout.column()
col.label(text="Use timecode index:")
@@ -834,6 +856,7 @@ class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, Panel):
def draw(self, context):
layout = self.layout
+
render = context.scene.render
col = layout.column()
@@ -860,5 +883,61 @@ class SEQUENCER_PT_view(SequencerButtonsPanel_Output, Panel):
col.prop(st, "show_separate_color")
col.prop(st, "proxy_render_size")
+
+class SEQUENCER_PT_modifiers(SequencerButtonsPanel, Panel):
+ bl_label = "Modifiers"
+
+ def draw(self, context):
+ layout = self.layout
+
+ strip = act_strip(context)
+ sequencer = context.scene.sequence_editor
+
+ layout.prop(strip, "use_linear_modifiers")
+
+ layout.operator_menu_enum("sequencer.strip_modifier_add", "type")
+
+ for mod in strip.modifiers:
+ box = layout.box()
+
+ row = box.row()
+ row.prop(mod, "show_expanded", text="", emboss=False)
+ row.prop(mod, "name", text="")
+
+ row.prop(mod, "mute", text="")
+
+ sub = row.row(align=True)
+ props = sub.operator("sequencer.strip_modifier_move", text="", icon='TRIA_UP')
+ props.name = mod.name
+ props.direction = 'UP'
+ props = sub.operator("sequencer.strip_modifier_move", text="", icon='TRIA_DOWN')
+ props.name = mod.name
+ props.direction = 'DOWN'
+
+ props = row.operator("sequencer.strip_modifier_remove", text="", icon='X', emboss=False)
+ props.name = mod.name
+
+ if mod.show_expanded:
+ row = box.row()
+ row.prop(mod, "input_mask_type", expand=True)
+
+ if mod.input_mask_type == 'STRIP':
+ box.prop_search(mod, "input_mask_strip", sequencer, "sequences", text="Mask")
+ else:
+ box.prop(mod, "input_mask_id")
+
+ if mod.type == 'COLOR_BALANCE':
+ box.prop(mod, "color_multiply")
+ draw_color_balance(box, mod.color_balance)
+ elif mod.type == 'CURVES':
+ box.template_curve_mapping(mod, "curve_mapping", type='COLOR')
+ elif mod.type == 'HUE_CORRECT':
+ box.template_curve_mapping(mod, "curve_mapping", type='HUE')
+ elif mod.type == 'BRIGHT_CONTRAST':
+ col = box.column()
+ col.prop(mod, "bright")
+ col.prop(mod, "contrast")
+
+
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_text.py b/release/scripts/startup/bl_ui/space_text.py
index 9c24e48300a..eca9bc22db9 100644
--- a/release/scripts/startup/bl_ui/space_text.py
+++ b/release/scripts/startup/bl_ui/space_text.py
@@ -302,6 +302,7 @@ class TEXT_MT_toolbox(Menu):
def draw(self, context):
layout = self.layout
+
layout.operator_context = 'INVOKE_DEFAULT'
layout.operator("text.cut")
diff --git a/release/scripts/startup/bl_ui/space_time.py b/release/scripts/startup/bl_ui/space_time.py
index 0f573c46d69..ed1d2a0ae24 100644
--- a/release/scripts/startup/bl_ui/space_time.py
+++ b/release/scripts/startup/bl_ui/space_time.py
@@ -160,8 +160,7 @@ class TIME_MT_frame(Menu):
layout.separator()
- sub = layout.row()
- sub.menu("TIME_MT_autokey")
+ layout.menu("TIME_MT_autokey")
class TIME_MT_playback(Menu):
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index 7a147bac38c..df30c3ee9ae 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Header, Menu, Panel
import os
-import addon_utils
def ui_items_general(col, context):
@@ -79,6 +78,7 @@ class USERPREF_HT_header(Header):
def draw(self, context):
layout = self.layout
+
layout.template_header(menus=False)
userpref = context.user_preferences
@@ -137,6 +137,7 @@ class USERPREF_MT_splash(Menu):
def draw(self, context):
layout = self.layout
+
split = layout.split()
row = split.row()
row.label("")
@@ -195,7 +196,8 @@ class USERPREF_PT_interface(Panel):
col = row.column()
col.label(text="View Manipulation:")
- col.prop(view, "use_mouse_auto_depth")
+ col.prop(view, "use_mouse_depth_cursor")
+ col.prop(view, "use_mouse_depth_navigate")
col.prop(view, "use_zoom_to_mouse")
col.prop(view, "use_rotate_around_active")
col.prop(view, "use_global_pivot")
@@ -322,6 +324,7 @@ class USERPREF_PT_edit(Panel):
col.separator()
col.prop(edit, "use_auto_keying", text="Auto Keyframing:")
+ col.prop(edit, "use_auto_keying_warning")
sub = col.column()
@@ -787,6 +790,7 @@ class USERPREF_PT_file(Panel):
sub.label(text="Scripts:")
sub.label(text="Sounds:")
sub.label(text="Temp:")
+ sub.label(text="I18n Branches:")
sub.label(text="Image Editor:")
sub.label(text="Animation Player:")
@@ -797,6 +801,7 @@ class USERPREF_PT_file(Panel):
sub.prop(paths, "script_directory", text="")
sub.prop(paths, "sound_directory", text="")
sub.prop(paths, "temporary_directory", text="")
+ sub.prop(paths, "i18n_branches_directory", text="")
sub.prop(paths, "image_editor", text="")
subsplit = sub.split(percentage=0.3)
subsplit.prop(paths, "animation_player_preset", text="")
@@ -848,10 +853,12 @@ class USERPREF_MT_ndof_settings(Menu):
def draw(self, context):
layout = self.layout
+
input_prefs = context.user_preferences.inputs
layout.separator()
layout.prop(input_prefs, "ndof_sensitivity")
+ layout.prop(input_prefs, "ndof_orbit_sensitivity")
if context.space_data.type == 'VIEW_3D':
layout.separator()
@@ -859,11 +866,10 @@ class USERPREF_MT_ndof_settings(Menu):
layout.separator()
layout.label(text="Orbit options")
- if input_prefs.view_rotate_method == 'TRACKBALL':
- layout.prop(input_prefs, "ndof_roll_invert_axis")
+ layout.row().prop(input_prefs, "ndof_view_rotate_method", text="")
+ layout.prop(input_prefs, "ndof_roll_invert_axis")
layout.prop(input_prefs, "ndof_tilt_invert_axis")
layout.prop(input_prefs, "ndof_rotate_invert_axis")
- layout.prop(input_prefs, "ndof_zoom_invert")
layout.separator()
layout.label(text="Pan options")
@@ -872,6 +878,7 @@ class USERPREF_MT_ndof_settings(Menu):
layout.prop(input_prefs, "ndof_panz_invert_axis")
layout.label(text="Zoom options")
+ layout.prop(input_prefs, "ndof_zoom_invert")
layout.prop(input_prefs, "ndof_zoom_updown")
layout.separator()
@@ -946,6 +953,8 @@ class USERPREF_PT_input(Panel, InputKeyMapPanel):
sub = col.column()
sub.label(text="NDOF Device:")
sub.prop(inputs, "ndof_sensitivity", text="NDOF Sensitivity")
+ sub.prop(inputs, "ndof_orbit_sensitivity", text="NDOF Orbit Sensitivity")
+ sub.row().prop(inputs, "ndof_view_rotate_method", expand=True)
row.separator()
@@ -977,6 +986,7 @@ class USERPREF_MT_addons_dev_guides(Menu):
# menu to open web-pages with addons development guides
def draw(self, context):
layout = self.layout
+
layout.operator("wm.url_open", text="API Concepts", icon='URL').url = "http://wiki.blender.org/index.php/Dev:2.5/Py/API/Intro"
layout.operator("wm.url_open", text="Addon Guidelines", icon='URL').url = "http://wiki.blender.org/index.php/Dev:2.5/Py/Scripts/Guidelines/Addons"
layout.operator("wm.url_open", text="How to share your addon", icon='URL').url = "http://wiki.blender.org/index.php/Dev:Py/Sharing"
@@ -1002,10 +1012,10 @@ class USERPREF_PT_addons(Panel):
@staticmethod
def is_user_addon(mod, user_addon_paths):
if not user_addon_paths:
- user_script_path = bpy.utils.user_script_path()
- if user_script_path is not None:
- user_addon_paths.append(os.path.join(user_script_path, "addons"))
- user_addon_paths.append(os.path.join(bpy.utils.resource_path('USER'), "scripts", "addons"))
+ for path in (bpy.utils.script_path_user(),
+ bpy.utils.script_path_pref()):
+ if path is not None:
+ user_addon_paths.append(os.path.join(path, "addons"))
for path in user_addon_paths:
if bpy.path.is_subdir(mod.__file__, path):
@@ -1023,6 +1033,8 @@ class USERPREF_PT_addons(Panel):
box.label(l)
def draw(self, context):
+ import addon_utils
+
layout = self.layout
userpref = context.user_preferences
@@ -1073,10 +1085,10 @@ class USERPREF_PT_addons(Panel):
continue
# check if addon should be visible with current filters
- if ((filter == "All") or
- (filter == info["category"]) or
- (filter == "Enabled" and is_enabled) or
- (filter == "Disabled" and not is_enabled)):
+ if ((filter == "All") or
+ (filter == info["category"]) or
+ (filter == "Enabled" and is_enabled) or
+ (filter == "Disabled" and not is_enabled)):
if search and search not in info["name"].lower():
if info["author"]:
diff --git a/release/scripts/startup/bl_ui/space_userpref_keymap.py b/release/scripts/startup/bl_ui/space_userpref_keymap.py
index 6646da4a91a..da498268b9b 100644
--- a/release/scripts/startup/bl_ui/space_userpref_keymap.py
+++ b/release/scripts/startup/bl_ui/space_userpref_keymap.py
@@ -218,8 +218,8 @@ class InputKeyMapPanel:
layout.context_pointer_set("keymap", km)
filtered_items = [kmi for kmi in km.keymap_items
- if filter_text in kmi.idname.lower() or
- filter_text in kmi.name.lower()]
+ if (filter_text in kmi.idname.lower() or
+ filter_text in kmi.name.lower())]
if filtered_items:
col = layout.column()
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 3819ae60b49..a21d8527158 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -64,28 +64,29 @@ class VIEW3D_HT_header(Header):
layout.template_header_3D()
if obj:
+ mode = obj.mode
# Particle edit
- if obj.mode == 'PARTICLE_EDIT':
+ if mode == 'PARTICLE_EDIT':
row.prop(toolsettings.particle_edit, "select_mode", text="", expand=True)
# Occlude geometry
- if view.viewport_shade not in {'BOUNDBOX', 'WIREFRAME'} and (obj.mode == 'PARTICLE_EDIT' or (obj.mode == 'EDIT' and obj.type == 'MESH')):
+ if view.viewport_shade not in {'BOUNDBOX', 'WIREFRAME'} and (mode == 'PARTICLE_EDIT' or (mode == 'EDIT' and obj.type == 'MESH')):
row.prop(view, "use_occlude_geometry", text="")
# Proportional editing
- if obj.mode in {'EDIT', 'PARTICLE_EDIT'}:
+ if mode in {'EDIT', 'PARTICLE_EDIT'}:
row = layout.row(align=True)
row.prop(toolsettings, "proportional_edit", text="", icon_only=True)
if toolsettings.proportional_edit != 'DISABLED':
row.prop(toolsettings, "proportional_edit_falloff", text="", icon_only=True)
- elif obj.mode == 'OBJECT':
+ elif mode == 'OBJECT':
row = layout.row(align=True)
row.prop(toolsettings, "use_proportional_edit_objects", text="", icon_only=True)
if toolsettings.use_proportional_edit_objects:
row.prop(toolsettings, "proportional_edit_falloff", text="", icon_only=True)
# Snap
- if not obj or obj.mode not in {'SCULPT', 'VERTEX_PAINT', 'WEIGHT_PAINT', 'TEXTURE_PAINT'}:
+ if not obj or mode not in {'SCULPT', 'VERTEX_PAINT', 'WEIGHT_PAINT', 'TEXTURE_PAINT'}:
snap_element = toolsettings.snap_element
row = layout.row(align=True)
row.prop(toolsettings, "use_snap", text="")
@@ -93,9 +94,9 @@ class VIEW3D_HT_header(Header):
if snap_element != 'INCREMENT':
row.prop(toolsettings, "snap_target", text="")
if obj:
- if obj.mode in {'OBJECT', 'POSE'} and snap_element != 'VOLUME':
+ if mode in {'OBJECT', 'POSE'} and snap_element != 'VOLUME':
row.prop(toolsettings, "use_snap_align_rotation", text="")
- elif obj.mode == 'EDIT':
+ elif mode == 'EDIT':
row.prop(toolsettings, "use_snap_self", text="")
if snap_element == 'VOLUME':
@@ -110,7 +111,7 @@ class VIEW3D_HT_header(Header):
props.animation = True
# Pose
- if obj and obj.mode == 'POSE':
+ if obj and mode == 'POSE':
row = layout.row(align=True)
row.operator("pose.copy", text="", icon='COPYDOWN')
row.operator("pose.paste", text="", icon='PASTEDOWN')
@@ -176,11 +177,12 @@ class VIEW3D_MT_transform(VIEW3D_MT_transform_base):
# Object-specific extensions to Transform menu
class VIEW3D_MT_transform_object(VIEW3D_MT_transform_base):
def draw(self, context):
+ layout = self.layout
+
# base menu
VIEW3D_MT_transform_base.draw(self, context)
# object-specific option follow...
- layout = self.layout
layout.separator()
layout.operator("transform.translate", text="Move Texture Space").texture_space = True
@@ -212,16 +214,17 @@ class VIEW3D_MT_transform_object(VIEW3D_MT_transform_base):
# Armature EditMode extensions to Transform menu
class VIEW3D_MT_transform_armature(VIEW3D_MT_transform_base):
def draw(self, context):
+ layout = self.layout
+
# base menu
VIEW3D_MT_transform_base.draw(self, context)
# armature specific extensions follow...
- layout = self.layout
layout.separator()
obj = context.object
- if (obj.type == 'ARMATURE' and obj.mode in {'EDIT', 'POSE'} and
- obj.data.draw_type in {'BBONE', 'ENVELOPE'}):
+ if (obj.type == 'ARMATURE' and obj.mode in {'EDIT', 'POSE'} and
+ obj.data.draw_type in {'BBONE', 'ENVELOPE'}):
layout.operator("transform.transform", text="Scale Envelope/BBone").mode = 'BONE_SIZE'
if context.edit_object and context.edit_object.type == 'ARMATURE':
@@ -429,18 +432,23 @@ class VIEW3D_MT_view_align_selected(Menu):
props = layout.operator("view3d.viewnumpad", text="Top")
props.align_active = True
props.type = 'TOP'
+
props = layout.operator("view3d.viewnumpad", text="Bottom")
props.align_active = True
props.type = 'BOTTOM'
+
props = layout.operator("view3d.viewnumpad", text="Front")
props.align_active = True
props.type = 'FRONT'
+
props = layout.operator("view3d.viewnumpad", text="Back")
props.align_active = True
props.type = 'BACK'
+
props = layout.operator("view3d.viewnumpad", text="Right")
props.align_active = True
props.type = 'RIGHT'
+
props = layout.operator("view3d.viewnumpad", text="Left")
props.align_active = True
props.type = 'LEFT'
@@ -572,10 +580,10 @@ class VIEW3D_MT_select_edit_mesh(Menu):
layout.separator()
layout.operator("mesh.select_by_number_vertices", text="By Number of Verts")
- if context.scene.tool_settings.mesh_select_mode[2] == False:
+ if context.scene.tool_settings.mesh_select_mode[2] is False:
layout.operator("mesh.select_non_manifold", text="Non Manifold")
layout.operator("mesh.select_loose_verts", text="Loose Verts/Edges")
- layout.operator("mesh.select_similar", text="Similar")
+ layout.operator_menu_enum("mesh.select_similar", "type", text="Similar")
layout.separator()
@@ -714,6 +722,7 @@ class VIEW3D_MT_select_edit_armature(Menu):
props.extend = True
props.direction = 'CHILD'
+ layout.operator_menu_enum("armature.select_similar", "type", text="Similar")
layout.operator("object.select_pattern", text="Select Pattern...")
@@ -798,7 +807,8 @@ class VIEW3D_MT_object_animation(Menu):
layout = self.layout
layout.operator("anim.keyframe_insert_menu", text="Insert Keyframe...")
- layout.operator("anim.keyframe_delete_v3d", text="Delete Keyframe...")
+ layout.operator("anim.keyframe_delete_v3d", text="Delete Keyframes...")
+ layout.operator("anim.keyframe_clear_v3d", text="Clear Keyframes...")
layout.operator("anim.keying_set_active_set", text="Change Keying Set...")
layout.separator()
@@ -1121,7 +1131,7 @@ class VIEW3D_MT_brush(Menu):
sculpt_tool = brush.sculpt_tool
layout.separator()
- layout.operator_menu_enum("brush.curve_preset", "shape", text='Curve Preset')
+ layout.operator_menu_enum("brush.curve_preset", "shape", text="Curve Preset")
layout.separator()
if sculpt_tool != 'GRAB':
@@ -1174,7 +1184,8 @@ class VIEW3D_MT_hook(Menu):
layout = self.layout
layout.operator_context = 'EXEC_AREA'
layout.operator("object.hook_add_newob")
- layout.operator("object.hook_add_selob")
+ layout.operator("object.hook_add_selob").use_bone = False
+ layout.operator("object.hook_add_selob", text="Hook to Selected Object Bone").use_bone = True
if [mod.type == 'HOOK' for mod in context.active_object.modifiers]:
layout.separator()
@@ -1191,6 +1202,7 @@ class VIEW3D_MT_vertex_group(Menu):
def draw(self, context):
layout = self.layout
+
layout.operator_context = 'EXEC_AREA'
layout.operator("object.vertex_group_assign", text="Assign to New Group").new = True
@@ -1349,6 +1361,7 @@ class VIEW3D_MT_particle_specials(Menu):
def draw(self, context):
layout = self.layout
+
particle_edit = context.tool_settings.particle_edit
layout.operator("particle.rekey")
@@ -1772,7 +1785,7 @@ class VIEW3D_MT_edit_mesh_vertices(Menu):
layout.operator("mesh.vertices_smooth")
layout.operator("mesh.remove_doubles")
- layout.operator("mesh.sort_elements", text="Sort Vertices").elements = {"VERT"}
+ layout.operator("mesh.sort_elements", text="Sort Vertices").elements = {'VERT'}
layout.operator("mesh.select_vertex_path")
@@ -1792,6 +1805,7 @@ class VIEW3D_MT_edit_mesh_edges(Menu):
def draw(self, context):
layout = self.layout
+
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("mesh.edge_face_add")
@@ -1822,19 +1836,13 @@ class VIEW3D_MT_edit_mesh_edges(Menu):
layout.operator("mesh.bevel")
layout.operator("mesh.edge_split")
layout.operator("mesh.bridge_edge_loops")
- layout.operator("mesh.sort_elements", text="Sort Edges").elements = {"EDGE"}
+ layout.operator("mesh.sort_elements", text="Sort Edges").elements = {'EDGE'}
layout.separator()
- layout.operator("TRANSFORM_OT_edge_slide")
- layout.operator("TRANSFORM_OT_edge_crease")
+ layout.operator("transform.edge_slide")
layout.operator("mesh.loop_multi_select", text="Edge Loop").ring = False
-
- #~ uiItemO(layout, "Loopcut", 0, "mesh.loop_cut"); // CutEdgeloop(em, 1);
- #~ uiItemO(layout, "Edge Slide", 0, "mesh.edge_slide"); // EdgeSlide(em, 0,0.0);
-
layout.operator("mesh.loop_multi_select", text="Edge Ring").ring = True
-
layout.operator("mesh.loop_to_region")
layout.operator("mesh.region_to_loop")
@@ -1845,6 +1853,7 @@ class VIEW3D_MT_edit_mesh_faces(Menu):
def draw(self, context):
layout = self.layout
+
layout.operator_context = 'INVOKE_REGION_WIN'
layout.operator("mesh.flip_normals")
@@ -1855,7 +1864,7 @@ class VIEW3D_MT_edit_mesh_faces(Menu):
layout.operator("mesh.bevel")
layout.operator("mesh.solidify")
layout.operator("mesh.wireframe")
- layout.operator("mesh.sort_elements", text="Sort Faces").elements = {"FACE"}
+ layout.operator("mesh.sort_elements", text="Sort Faces").elements = {'FACE'}
layout.separator()
@@ -1869,9 +1878,6 @@ class VIEW3D_MT_edit_mesh_faces(Menu):
layout.separator()
- # uiItemO(layout, NULL, 0, "mesh.face_mode"); // mesh_set_face_flags(em, 1);
- # uiItemBooleanO(layout, NULL, 0, "mesh.face_mode", "clear", 1); // mesh_set_face_flags(em, 0);
-
layout.operator("mesh.edge_rotate", text="Rotate Edge CW").direction = 'CW'
layout.separator()
@@ -2276,7 +2282,7 @@ class VIEW3D_PT_view3d_properties(Panel):
if lock_object.type == 'ARMATURE':
col.prop_search(view, "lock_bone", lock_object.data,
"edit_bones" if lock_object.mode == 'EDIT'
- else "bones",
+ else "bones",
text="")
else:
col.prop(view, "lock_cursor", text="Lock to Cursor")
@@ -2553,7 +2559,7 @@ class VIEW3D_PT_background_image(Panel):
if bg.source == 'IMAGE':
row = box.row()
row.template_ID(bg, "image", open="image.open")
- if (bg.image):
+ if bg.image is not None:
box.template_image(bg, "image", bg.image_user, compact=True)
has_bg = True
@@ -2641,6 +2647,7 @@ class VIEW3D_PT_etch_a_ton(Panel):
def draw(self, context):
layout = self.layout
+
toolsettings = context.scene.tool_settings
col = layout.column()
diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 4818d42c99f..efe99569a8e 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -228,7 +228,7 @@ class VIEW3D_PT_tools_curveedit(View3DPanel, Panel):
col = layout.column(align=True)
col.operator("transform.tilt", text="Tilt")
- col.operator("transform.transform", text="Shrink/Fatten").mode = 'CURVE_SHRINKFATTEN'
+ col.operator("transform.transform", text="Scale Feather").mode = 'CURVE_SHRINKFATTEN'
col = layout.column(align=True)
col.label(text="Curve:")
@@ -520,8 +520,8 @@ class VIEW3D_PT_tools_brush(Panel, View3DPaintPanel):
row = col.row(align=True)
ups = toolsettings.unified_paint_settings
- if ((ups.use_unified_size and ups.use_locked_size) or
- ((not ups.use_unified_size) and brush.use_locked_size)):
+ if ((ups.use_unified_size and ups.use_locked_size) or
+ ((not ups.use_unified_size) and brush.use_locked_size)):
self.prop_unified_size(row, context, brush, "use_locked_size", icon='LOCKED')
self.prop_unified_size(row, context, brush, "unprojected_radius", slider=True, text="Radius")
else:
@@ -707,8 +707,8 @@ class VIEW3D_PT_tools_brush_texture(Panel, View3DPaintPanel):
@classmethod
def poll(cls, context):
settings = cls.paint_settings(context)
- return (settings and settings.brush and (context.sculpt_object or
- context.image_paint_object))
+ return (settings and settings.brush and
+ (context.sculpt_object or context.image_paint_object))
def draw(self, context):
layout = self.layout
@@ -747,10 +747,12 @@ class VIEW3D_PT_tools_brush_stroke(Panel, View3DPaintPanel):
@classmethod
def poll(cls, context):
settings = cls.paint_settings(context)
- return (settings and settings.brush and (context.sculpt_object or
- context.vertex_paint_object or
- context.weight_paint_object or
- context.image_paint_object))
+ return (settings and
+ settings.brush and
+ (context.sculpt_object or
+ context.vertex_paint_object or
+ context.weight_paint_object or
+ context.image_paint_object))
def draw(self, context):
layout = self.layout
@@ -981,6 +983,7 @@ class VIEW3D_PT_tools_weightpaint_options(Panel, View3DPaintPanel):
col = layout.column()
+ col.prop(wpaint, "use_all_faces")
col.prop(wpaint, "use_normal")
col.prop(wpaint, "use_spray")
col.prop(wpaint, "use_group_restrict")
@@ -1125,6 +1128,7 @@ class VIEW3D_MT_tools_projectpaint_clone(Menu):
def draw(self, context):
layout = self.layout
+
for i, tex in enumerate(context.active_object.data.uv_textures):
props = layout.operator("wm.context_set_int", text=tex.name)
props.data_path = "active_object.data.uv_texture_clone_index"
diff --git a/release/scripts/startup/keyingsets_builtins.py b/release/scripts/startup/keyingsets_builtins.py
index b7693880f9c..6ad87375738 100644
--- a/release/scripts/startup/keyingsets_builtins.py
+++ b/release/scripts/startup/keyingsets_builtins.py
@@ -360,10 +360,10 @@ class BUILTIN_KSI_WholeCharacter(KeyingSetInfo):
# add rotation properties if they will
if bone.lock_rotations_4d:
# can check individually
- if (bone.lock_rotation == (False, False, False)) and (bone.lock_rotation_w == False):
+ if (bone.lock_rotation == (False, False, False)) and (bone.lock_rotation_w is False):
ksi.addProp(ks, bone, prop)
else:
- if bone.lock_rotation_w == False:
+ if bone.lock_rotation_w is False:
ksi.addProp(ks, bone, prop, 0) # w = 0
for i in range(3):
diff --git a/release/scripts/templates/addon_add_object.py b/release/scripts/templates/addon_add_object.py
index 3900f595584..a4df5fb7436 100644
--- a/release/scripts/templates/addon_add_object.py
+++ b/release/scripts/templates/addon_add_object.py
@@ -39,10 +39,9 @@ def add_object(self, context):
class OBJECT_OT_add_object(Operator, AddObjectHelper):
- """Add a Mesh Object"""
+ """Create a new Mesh Object"""
bl_idname = "mesh.add_object"
bl_label = "Add Mesh Object"
- bl_description = "Create a new Mesh Object"
bl_options = {'REGISTER', 'UNDO'}
scale = FloatVectorProperty(
@@ -65,16 +64,27 @@ def add_object_button(self, context):
self.layout.operator(
OBJECT_OT_add_object.bl_idname,
text="Add Object",
- icon="PLUGIN")
+ icon='PLUGIN')
+
+
+# This allows you to right click on a button and link to the manual
+def add_object_manual_map():
+ url_manual_prefix = "http://wiki.blender.org/index.php/Doc:2.6/Manual/"
+ url_manual_mapping = (
+ ("bpy.ops.mesh.add_object", "Modeling/Objects"),
+ )
+ return url_manual_prefix, url_manual_mapping
def register():
bpy.utils.register_class(OBJECT_OT_add_object)
+ bpy.utils.register_manual_map(add_object_manual_map)
bpy.types.INFO_MT_mesh_add.append(add_object_button)
def unregister():
bpy.utils.unregister_class(OBJECT_OT_add_object)
+ bpy.utils.unregister_manual_map(add_object_manual_map)
bpy.types.INFO_MT_mesh_add.remove(add_object_button)
diff --git a/release/scripts/templates/gamelogic.py b/release/scripts/templates/gamelogic.py
index c6d15850a4e..01ac27c56cd 100644
--- a/release/scripts/templates/gamelogic.py
+++ b/release/scripts/templates/gamelogic.py
@@ -21,23 +21,23 @@ def main():
# Some example functions, remove to write your own script.
# check for a positive sensor, will run on any object without errors.
- print('Logic info for KX_GameObject', own.name)
+ print("Logic info for KX_GameObject", own.name)
input = False
for sens in cont.sensors:
# The sensor can be on another object, we may want to use it
own_sens = sens.owner
- print(' sensor:', sens.name, end=' ')
+ print(" sensor:", sens.name, end=" ")
if sens.positive:
- print('(true)')
+ print("(true)")
input = True
else:
- print('(false)')
+ print("(false)")
for actu in cont.actuators:
# The actuator can be on another object, we may want to use it
own_actu = actu.owner
- print(' actuator:', actu.name)
+ print(" actuator:", actu.name)
# This runs the actuator or turns it off
# note that actuators will continue to run unless explicitly turned off.
@@ -49,25 +49,25 @@ def main():
# Its also good practice to get sensors and actuators by name
# rather then index so any changes to their order wont break the script.
- # sens_key = cont.sensors['key_sensor']
- # actu_motion = cont.actuators['motion']
+ # sens_key = cont.sensors["key_sensor"]
+ # actu_motion = cont.actuators["motion"]
# Loop through all other objects in the scene
sce = bge.logic.getCurrentScene()
- print('Scene Objects:', sce.name)
+ print("Scene Objects:", sce.name)
for ob in sce.objects:
- print(' ', ob.name, ob.worldPosition)
+ print(" ", ob.name, ob.worldPosition)
# Example where collision objects are checked for their properties
# adding to our objects "life" property
"""
- actu_collide = cont.sensors['collision_sens']
+ actu_collide = cont.sensors["collision_sens"]
for ob in actu_collide.objectHitList:
# Check to see the object has this property
- if ob.has_key('life'):
- own['life'] += ob['life']
- ob['life'] = 0
- print(own['life'])
+ if "life" in ob:
+ own["life"] += ob["life"]
+ ob["life"] = 0
+ print(own["life"])
"""
main()
diff --git a/release/scripts/templates/operator_mesh_add.py b/release/scripts/templates/operator_mesh_add.py
index f2bb231cb7a..fa248cb9005 100644
--- a/release/scripts/templates/operator_mesh_add.py
+++ b/release/scripts/templates/operator_mesh_add.py
@@ -78,9 +78,9 @@ class AddBox(bpy.types.Operator):
def execute(self, context):
verts_loc, faces = add_box(self.width,
- self.height,
- self.depth,
- )
+ self.height,
+ self.depth,
+ )
mesh = bpy.data.meshes.new("Box")
diff --git a/release/scripts/templates/operator_modal.py b/release/scripts/templates/operator_modal.py
index d8115bc95bf..88e5ee80590 100644
--- a/release/scripts/templates/operator_modal.py
+++ b/release/scripts/templates/operator_modal.py
@@ -26,9 +26,10 @@ class ModalOperator(bpy.types.Operator):
def invoke(self, context, event):
if context.object:
- context.window_manager.modal_handler_add(self)
self.first_mouse_x = event.mouse_x
self.first_value = context.object.location.x
+
+ context.window_manager.modal_handler_add(self)
return {'RUNNING_MODAL'}
else:
self.report({'WARNING'}, "No active object, could not finish")
diff --git a/release/scripts/templates/operator_modal_draw.py b/release/scripts/templates/operator_modal_draw.py
index f2d5ad8982b..f1c4e113b0a 100644
--- a/release/scripts/templates/operator_modal_draw.py
+++ b/release/scripts/templates/operator_modal_draw.py
@@ -53,14 +53,13 @@ class ModalDrawOperator(bpy.types.Operator):
def invoke(self, context, event):
if context.area.type == 'VIEW_3D':
- context.window_manager.modal_handler_add(self)
-
# Add the region OpenGL drawing callback
# draw in view space with 'POST_VIEW' and 'PRE_VIEW'
self._handle = context.region.callback_add(draw_callback_px, (self, context), 'POST_PIXEL')
self.mouse_path = []
+ context.window_manager.modal_handler_add(self)
return {'RUNNING_MODAL'}
else:
self.report({'WARNING'}, "View3D not found, cannot run operator")
diff --git a/release/scripts/templates/operator_modal_timer.py b/release/scripts/templates/operator_modal_timer.py
index 6d2ec95aedb..72c153df9d2 100644
--- a/release/scripts/templates/operator_modal_timer.py
+++ b/release/scripts/templates/operator_modal_timer.py
@@ -21,8 +21,8 @@ class ModalTimerOperator(bpy.types.Operator):
return {'PASS_THROUGH'}
def execute(self, context):
- context.window_manager.modal_handler_add(self)
self._timer = context.window_manager.event_timer_add(0.1, context.window)
+ context.window_manager.modal_handler_add(self)
return {'RUNNING_MODAL'}
def cancel(self, context):
diff --git a/release/scripts/templates/operator_modal_view3d.py b/release/scripts/templates/operator_modal_view3d.py
index 0babf169610..c870bbffdcf 100644
--- a/release/scripts/templates/operator_modal_view3d.py
+++ b/release/scripts/templates/operator_modal_view3d.py
@@ -45,14 +45,13 @@ class ViewOperator(bpy.types.Operator):
v3d = context.space_data
rv3d = v3d.region_3d
- context.window_manager.modal_handler_add(self)
-
if rv3d.view_perspective == 'CAMERA':
rv3d.view_perspective = 'PERSP'
self._initial_mouse = Vector((event.mouse_x, event.mouse_y, 0.0))
self._initial_location = rv3d.view_location.copy()
+ context.window_manager.modal_handler_add(self)
return {'RUNNING_MODAL'}
else:
self.report({'WARNING'}, "Active space must be a View3d")
diff --git a/release/scripts/templates/ui_panel.py b/release/scripts/templates/ui_panel.py
new file mode 100644
index 00000000000..9ffa0cbeeea
--- /dev/null
+++ b/release/scripts/templates/ui_panel.py
@@ -0,0 +1,56 @@
+import bpy
+
+
+class LayoutDemoPanel(bpy.types.Panel):
+ """Creates a Panel in the scene context of the properties editor"""
+ bl_label = "Layout Demo"
+ bl_idname = "SCENE_PT_layout"
+ bl_space_type = 'PROPERTIES'
+ bl_region_type = 'WINDOW'
+ bl_context = "scene"
+
+ def draw(self, context):
+ layout = self.layout
+
+ scene = context.scene
+
+ # Create a simple row.
+ layout.label(text=" Simple Row:")
+
+ row = layout.row()
+ row.prop(scene, "frame_start")
+ row.prop(scene, "frame_end")
+
+ # Create an row where the buttons are aligned to each other.
+ layout.label(text=" Aligned Row")
+
+ row = layout.row(align=True)
+ row.prop(scene, "frame_start")
+ row.prop(scene, "frame_end")
+
+ # Create two columns, by using a split layout.
+ split = layout.split()
+
+ # First column
+ col = split.column()
+ col.label(text="Column One:")
+ col.prop(scene, "frame_end")
+ col.prop(scene, "frame_start")
+
+ # Second column, aligned
+ col = split.column(align=True)
+ col.label(text="Column Two")
+ col.prop(scene, "frame_start")
+ col.prop(scene, "frame_end")
+
+
+def register():
+ bpy.utils.register_class(LayoutDemoPanel)
+
+
+def unregister():
+ bpy.utils.unregister_class(LayoutDemoPanel)
+
+
+if __name__ == "__main__":
+ register()
diff --git a/release/scripts/templates/ui_panel_simple.py b/release/scripts/templates/ui_panel_simple.py
index 6226240ff87..9bcc750560f 100644
--- a/release/scripts/templates/ui_panel_simple.py
+++ b/release/scripts/templates/ui_panel_simple.py
@@ -5,8 +5,8 @@ class HelloWorldPanel(bpy.types.Panel):
"""Creates a Panel in the Object properties window"""
bl_label = "Hello World Panel"
bl_idname = "OBJECT_PT_hello"
- bl_space_type = "PROPERTIES"
- bl_region_type = "WINDOW"
+ bl_space_type = 'PROPERTIES'
+ bl_region_type = 'WINDOW'
bl_context = "object"
def draw(self, context):
@@ -22,6 +22,9 @@ class HelloWorldPanel(bpy.types.Panel):
row = layout.row()
row.prop(obj, "name")
+ row = layout.row()
+ row.operator("mesh.primitive_cube_add")
+
def register():
bpy.utils.register_class(HelloWorldPanel)
diff --git a/release/text/readme.html b/release/text/readme.html
index 78ee25bb3ee..40ea9035835 100644
--- a/release/text/readme.html
+++ b/release/text/readme.html
@@ -12,18 +12,18 @@
</style>
</head>
<body>
-<p class="title"><b>Blender 2.63</b></p>
+<p class="title"><b>Blender 2.64</b></p>
<p><br></p>
<p class="header"><b>About</b></p>
<p class="body">Welcome to Blender, the free, open source 3D application for modeling, animation, rendering, compositing, video editing and game creation. Blender is available for Linux, Mac OS X, Windows and FreeBSD and has a large world-wide community.</p>
<p class="body">Blender can be used freely for any purpose, including commercial use and distribution. It's free and open-source software, released under the GNU GPL licence. The entire source code is available on our website.</p>
<p class="body">For more information, visit <a href="http://www.blender.org">blender.org</a>.</p>
<p><br></p>
-<p class="header"><b>2.63</b></p>
-<p class="body">The Blender Foundation and online developer community is proud to present Blender 2.63. This release is the fourth official stable release of the Blender 2.6 series, in which we will refine the 2.5 series and add exciting new features. <a href="http://www.blender.org/development/release-logs/blender-263/">More information about this release</a>.</p>
+<p class="header"><b>2.64</b></p>
+<p class="body">The Blender Foundation and online developer community is proud to present Blender 2.64. This release is the fifth official stable release of the Blender 2.6 series, in which we will refine the 2.5 series and add exciting new features. <a href="http://www.blender.org/development/release-logs/blender-264/">More information about this release</a>.</p>
<p><br></p>
<p class="header"><b>Bugs</b></p>
-<p class="body">Although Blender 2.63 is considered a stable release, you may encounter a bug. If you do, please help us by posting it in the bug tracker or using Help → Report a Bug from inside Blender. If it wasn’t reported yet, please log in (or register) and fill in detailed information about the error. Please post detailed instructions on how to reproduce it or post a .blend file showcasing the bug.</p>
+<p class="body">Although Blender 2.64 is considered a stable release, you may encounter a bug. If you do, please help us by posting it in the bug tracker or using Help → Report a Bug from inside Blender. If it wasn’t reported yet, please log in (or register) and fill in detailed information about the error. Please post detailed instructions on how to reproduce it or post a .blend file showcasing the bug.</p>
<p><br></p>
<p class="header"><b>Package Contents</b></p>
<p class="body">The downloaded Blender package includes:</p>
@@ -47,7 +47,7 @@
<p class="header"><b>Links</b></p>
<p class="body">Users:</p>
<p class="body"> General information <a href="http://www.blender.org">www.blender.org</a> <br>
- Full release log <a href="http://www.blender.org/development/release-logs/blender-263/">www.blender.org/development/release-logs/blender-263/</a><br>
+ Full release log <a href="http://www.blender.org/development/release-logs/blender-264/">www.blender.org/development/release-logs/blender-264/</a><br>
Tutorials <a href="http://www.blender.org/education-help/">www.blender.org/education-help/</a> <br>
Manual <a href="http://wiki.blender.org/index.php/Doc:2.6/Manual">wiki.blender.org/index.php/Doc:2.6/Manual</a><br>
User Forum <a href="http://www.blenderartists.org">www.blenderartists.org</a><br>
diff --git a/release/windows/contrib/vfapi/vfapi-plugin.c b/release/windows/contrib/vfapi/vfapi-plugin.c
index 81547b8bb1a..8d63baa0ce4 100644
--- a/release/windows/contrib/vfapi/vfapi-plugin.c
+++ b/release/windows/contrib/vfapi/vfapi-plugin.c
@@ -157,7 +157,8 @@ static int my_gets(SOCKET sock, char * line, int maxlen)
line++;
*line = 0;
break;
- } else {
+ }
+ else {
line++;
maxlen--;
}
@@ -187,7 +188,7 @@ HRESULT __stdcall VF_OpenFileFunc_Blen(
SOCKET s_in;
char buf[256];
struct sockaddr_in addr;
- FILE* fp;
+ FILE *fp;
p = lpFileName;
while (*p && *p != '.') p++;
@@ -228,7 +229,7 @@ HRESULT __stdcall VF_OpenFileFunc_Blen(
return VF_ERROR;
}
- rval = (conndesc*) malloc(sizeof(conndesc));
+ rval = (conndesc *) malloc(sizeof(conndesc));
rval->addr = addr;
@@ -251,15 +252,20 @@ HRESULT __stdcall VF_OpenFileFunc_Blen(
if (strcmp(key, "width") == 0) {
rval->width = atoi(val);
- } else if (strcmp(key, "height") == 0) {
+ }
+ else if (strcmp(key, "height") == 0) {
rval->height = atoi(val);
- } else if (strcmp(key, "start") == 0) {
+ }
+ else if (strcmp(key, "start") == 0) {
rval->start = atoi(val);
- } else if (strcmp(key, "end") == 0) {
+ }
+ else if (strcmp(key, "end") == 0) {
rval->end = atoi(val);
- } else if (strcmp(key, "rate") == 0) {
+ }
+ else if (strcmp(key, "rate") == 0) {
rval->rate = atoi(val);
- } else if (strcmp(key, "ratescale") == 0) {
+ }
+ else if (strcmp(key, "ratescale") == 0) {
rval->ratescale = atoi(val);
}
}
@@ -275,7 +281,7 @@ HRESULT __stdcall VF_OpenFileFunc_Blen(
HRESULT __stdcall VF_CloseFileFunc_Blen(
VF_FileHandle hFileHandle )
{
- free((conndesc*) hFileHandle);
+ free((conndesc *) hFileHandle);
return VF_OK;
}
@@ -284,7 +290,7 @@ HRESULT __stdcall VF_GetFileInfoFunc_Blen(
VF_FileHandle hFileHandle,
LPVF_FileInfo lpFileInfo )
{
- conndesc * c = (conndesc*) hFileHandle;
+ conndesc *c = (conndesc *) hFileHandle;
if (c == 0) {
return VF_ERROR;
}
@@ -379,10 +385,10 @@ HRESULT __stdcall VF_ReadDataFunc_Blen(
framebuf = (unsigned char*) v->lpData;
for (y = 0; y < height; y++) {
- unsigned char * p = framebuf + v->lPitch * y;
- unsigned char * e = p + width * 3;
+ unsigned char *p = framebuf + v->lPitch * y;
+ unsigned char *e = p + width * 3;
- my_recv(s_in, (char*) p, width * 3);
+ my_recv(s_in, (char *)p, width * 3);
while (p != e) {
unsigned char tmp = p[2];
p[2] = p[0];
diff --git a/source/blender/CMakeLists.txt b/source/blender/CMakeLists.txt
index 3c756668578..ae3f3dce396 100644
--- a/source/blender/CMakeLists.txt
+++ b/source/blender/CMakeLists.txt
@@ -89,6 +89,7 @@ set(SRC_DNA_INC
${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_mask_types.h
)
+add_subdirectory(datatoc)
add_subdirectory(editors)
add_subdirectory(windowmanager)
add_subdirectory(blenkernel)
@@ -100,7 +101,6 @@ add_subdirectory(blenloader)
add_subdirectory(ikplugin)
add_subdirectory(gpu)
add_subdirectory(imbuf)
-add_subdirectory(avi)
add_subdirectory(nodes)
add_subdirectory(modifiers)
add_subdirectory(makesdna)
@@ -123,6 +123,10 @@ if(WITH_IMAGE_CINEON)
add_subdirectory(imbuf/intern/cineon)
endif()
+if(WITH_CODEC_AVI)
+ add_subdirectory(avi)
+endif()
+
if(WITH_CODEC_QUICKTIME)
add_subdirectory(quicktime)
endif()
diff --git a/source/blender/avi/AVI_avi.h b/source/blender/avi/AVI_avi.h
index bdfdbc117ed..4dc52970119 100644
--- a/source/blender/avi/AVI_avi.h
+++ b/source/blender/avi/AVI_avi.h
@@ -178,7 +178,7 @@ typedef struct _AviStreamRec {
} AviStreamRec;
typedef struct _AviMovie {
- FILE *fp;
+ FILE *fp;
int type;
#define AVI_MOVIE_READ 0
diff --git a/source/blender/avi/CMakeLists.txt b/source/blender/avi/CMakeLists.txt
index 79422dff917..292206d8cb9 100644
--- a/source/blender/avi/CMakeLists.txt
+++ b/source/blender/avi/CMakeLists.txt
@@ -35,19 +35,19 @@ set(INC_SYS
set(SRC
intern/avi.c
- intern/avirgb.c
- intern/codecs.c
- intern/endian.c
- intern/mjpeg.c
- intern/options.c
- intern/rgb32.c
+ intern/avi_rgb.c
+ intern/avi_codecs.c
+ intern/avi_endian.c
+ intern/avi_mjpeg.c
+ intern/avi_options.c
+ intern/avi_rgb32.c
AVI_avi.h
intern/avi_intern.h
- intern/avirgb.h
- intern/endian.h
- intern/mjpeg.h
- intern/rgb32.h
+ intern/avi_rgb.h
+ intern/avi_endian.h
+ intern/avi_mjpeg.h
+ intern/avi_rgb32.h
)
blender_add_lib(bf_avi "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/source/blender/avi/intern/avi.c b/source/blender/avi/intern/avi.c
index 3d04db56d43..15d8702a5ec 100644
--- a/source/blender/avi/intern/avi.c
+++ b/source/blender/avi/intern/avi.c
@@ -32,7 +32,6 @@
* This is external code.
*/
-
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
@@ -49,7 +48,7 @@
#include "AVI_avi.h"
#include "avi_intern.h"
-#include "endian.h"
+#include "avi_endian.h"
static int AVI_DEBUG = 0;
static char DEBUG_FCC[4];
@@ -735,14 +734,14 @@ AviError AVI_close(AviMovie *movie)
fclose(movie->fp);
for (i = 0; i < movie->header->Streams; i++) {
- if (movie->streams[i].sf != NULL)
+ if (movie->streams[i].sf != NULL) {
MEM_freeN(movie->streams[i].sf);
+ }
}
- if (movie->header != NULL)
- MEM_freeN(movie->header);
- if (movie->streams != NULL)
- MEM_freeN(movie->streams);
+ MEM_freeN(movie->header);
+ MEM_freeN(movie->streams);
+
if (movie->entries != NULL)
MEM_freeN(movie->entries);
if (movie->offset_table != NULL)
@@ -857,9 +856,9 @@ AviError AVI_open_compress(char *name, AviMovie *movie, int streams, ...)
#if 0
if (movie->streams[i].format == AVI_FORMAT_MJPEG) {
AviMJPEGUnknown *tmp;
-
- tmp = (AviMJPEGUnknown *) ((char*) movie->streams[i].sf +sizeof(AviBitmapInfoHeader));
-
+
+ tmp = (AviMJPEGUnknown *)((char *) movie->streams[i].sf + sizeof(AviBitmapInfoHeader));
+
tmp->a = 44;
tmp->b = 24;
tmp->c = 0;
@@ -870,7 +869,7 @@ AviError AVI_open_compress(char *name, AviMovie *movie, int streams, ...)
}
}
else if (movie->streams[i].sh.Type == FCC("auds")) {
- // pass
+ /* pass */
}
#endif
}
@@ -965,11 +964,13 @@ AviError AVI_write_frame(AviMovie *movie, int frame_num, ...)
/* Allocate the new memory for the index entry */
if (frame_num + 1 > movie->index_entries) {
- temp = (AviIndexEntry *) MEM_mallocN((frame_num + 1) *
- (movie->header->Streams + 1) * sizeof(AviIndexEntry), "newidxentry");
+ const size_t entry_size = (movie->header->Streams + 1) * sizeof(AviIndexEntry);
+
if (movie->entries != NULL) {
- memcpy(temp, movie->entries, movie->index_entries * (movie->header->Streams + 1) * sizeof(AviIndexEntry));
- MEM_freeN(movie->entries);
+ temp = (AviIndexEntry *)MEM_recallocN(movie->entries, (frame_num + 1) * entry_size);
+ }
+ else {
+ temp = (AviIndexEntry *) MEM_callocN((frame_num + 1) * entry_size, "newidxentry");
}
movie->entries = temp;
@@ -1080,13 +1081,14 @@ AviError AVI_close_compress(AviMovie *movie)
fclose(movie->fp);
for (i = 0; i < movie->header->Streams; i++) {
- if (movie->streams[i].sf != NULL)
+ if (movie->streams && (movie->streams[i].sf != NULL)) {
MEM_freeN(movie->streams[i].sf);
+ }
}
- if (movie->header != NULL)
- MEM_freeN(movie->header);
- if (movie->entries != NULL)
- MEM_freeN(movie->entries);
+
+ MEM_freeN(movie->header);
+ MEM_freeN(movie->entries);
+
if (movie->streams != NULL)
MEM_freeN(movie->streams);
if (movie->offset_table != NULL)
diff --git a/source/blender/avi/intern/codecs.c b/source/blender/avi/intern/avi_codecs.c
index 01e228d570e..e43826064a6 100644
--- a/source/blender/avi/intern/codecs.c
+++ b/source/blender/avi/intern/avi_codecs.c
@@ -25,7 +25,7 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/** \file blender/avi/intern/codecs.c
+/** \file blender/avi/intern/avi_codecs.c
* \ingroup avi
*
* This is external code. Identify and convert different avi-files.
@@ -35,9 +35,9 @@
#include "AVI_avi.h"
#include "avi_intern.h"
-#include "avirgb.h"
-#include "mjpeg.h"
-#include "rgb32.h"
+#include "avi_rgb.h"
+#include "avi_mjpeg.h"
+#include "avi_rgb32.h"
void *avi_format_convert(AviMovie *movie, int stream, void *buffer, AviFormat from, AviFormat to, int *size)
{
diff --git a/source/blender/avi/intern/endian.c b/source/blender/avi/intern/avi_endian.c
index c9b95d25810..70add8bd90f 100644
--- a/source/blender/avi/intern/endian.c
+++ b/source/blender/avi/intern/avi_endian.c
@@ -26,7 +26,7 @@
*
*/
-/** \file blender/avi/intern/endian.c
+/** \file blender/avi/intern/avi_endian.c
* \ingroup avi
*
* This is external code. Streams bytes to output depending on the
@@ -36,9 +36,10 @@
#include <stdlib.h>
#include <string.h>
-#include <stdio.h>
+#include <stdio.h>
+
#include "AVI_avi.h"
-#include "endian.h"
+#include "avi_endian.h"
#include "avi_intern.h"
#ifdef __BIG_ENDIAN__
@@ -46,31 +47,22 @@
#endif
#ifdef __BIG_ENDIAN__
+
+/* copied from BLI_endian_switch_inline.h */
static void invert(int *num)
{
- int new = 0, i, j;
-
- for (j = 0; j < 4; j++) {
- for (i = 0; i < 8; i++) {
- new |= ((*num >> (j * 8 + i)) & 1) << ((3 - j) * 8 + i);
- }
- }
-
- *num = new;
+ int tval = *val;
+ *val = ((tval >> 24)) |
+ ((tval << 8) & 0x00ff0000) |
+ ((tval >> 8) & 0x0000ff00) |
+ ((tval << 24));
}
-static void sinvert(short int *num)
+static void sinvert(short int *val)
{
- short int new = 0;
- int i, j;
-
- for (j = 0; j < 2; j++) {
- for (i = 0; i < 8; i++) {
- new |= ((*num >> (j * 8 + i)) & 1) << ((1 - j) * 8 + i);
- }
- }
-
- *num = new;
+ short tval = *val;
+ *val = (tval >> 8) |
+ (tval << 8);
}
static void Ichunk(AviChunk *chunk)
diff --git a/source/blender/avi/intern/endian.h b/source/blender/avi/intern/avi_endian.h
index 7ef49cb1699..8cea283a553 100644
--- a/source/blender/avi/intern/endian.h
+++ b/source/blender/avi/intern/avi_endian.h
@@ -25,17 +25,14 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/** \file blender/avi/intern/endian.h
+/** \file blender/avi/intern/avi_endian.h
* \ingroup avi
*
* This is external code.
*/
-#ifndef __ENDIAN_H__
-#define __ENDIAN_H__
-
-#include <stdio.h>
-#include "AVI_avi.h"
+#ifndef __AVI_ENDIAN_H__
+#define __AVI_ENDIAN_H__
#define AVI_RAW 0
#define AVI_CHUNK 1
@@ -48,5 +45,4 @@
void awrite(AviMovie *movie, void *datain, int block, int size, FILE *fp, int type);
-#endif
-
+#endif /* __AVI_ENDIAN_H__ */
diff --git a/source/blender/avi/intern/mjpeg.c b/source/blender/avi/intern/avi_mjpeg.c
index a700284bf68..b98e03d6a19 100644
--- a/source/blender/avi/intern/mjpeg.c
+++ b/source/blender/avi/intern/avi_mjpeg.c
@@ -26,21 +26,23 @@
*
*/
-/** \file blender/avi/intern/mjpeg.c
+/** \file blender/avi/intern/avi_mjpeg.c
* \ingroup avi
*
* This is external code. Converts between avi and mpeg/jpeg.
*/
-
-#include "AVI_avi.h"
#include <stdlib.h>
#include <string.h>
+
+#include "AVI_avi.h"
+
+#include "MEM_guardedalloc.h"
+
#include "jpeglib.h"
#include "jerror.h"
-#include "MEM_guardedalloc.h"
-#include "mjpeg.h"
+#include "avi_mjpeg.h"
#define PADUP(num, amt) ((num + (amt - 1)) & ~(amt - 1))
diff --git a/source/blender/avi/intern/mjpeg.h b/source/blender/avi/intern/avi_mjpeg.h
index 75649891f2b..6ae0e56ffa4 100644
--- a/source/blender/avi/intern/mjpeg.h
+++ b/source/blender/avi/intern/avi_mjpeg.h
@@ -25,11 +25,14 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/** \file blender/avi/intern/mjpeg.h
+/** \file blender/avi/intern/avi_mjpeg.h
* \ingroup avi
*/
+#ifndef __AVI_MJPEG_H__
+#define __AVI_MJPEG_H__
void *avi_converter_from_mjpeg (AviMovie *movie, int stream, unsigned char *buffer, int *size);
void *avi_converter_to_mjpeg (AviMovie *movie, int stream, unsigned char *buffer, int *size);
+#endif /* __AVI_MJPEG_H__ */
diff --git a/source/blender/avi/intern/options.c b/source/blender/avi/intern/avi_options.c
index 7de91318ecf..f7759a1099f 100644
--- a/source/blender/avi/intern/options.c
+++ b/source/blender/avi/intern/avi_options.c
@@ -26,7 +26,7 @@
*
*/
-/** \file blender/avi/intern/options.c
+/** \file blender/avi/intern/avi_options.c
* \ingroup avi
*
* This is external code. Sets some compression related options
@@ -35,7 +35,7 @@
#include "AVI_avi.h"
#include "avi_intern.h"
-#include "endian.h"
+#include "avi_endian.h"
#ifdef WIN32
# include "BLI_winstuff.h"
diff --git a/source/blender/avi/intern/avirgb.c b/source/blender/avi/intern/avi_rgb.c
index 7a95972845a..61587e15e61 100644
--- a/source/blender/avi/intern/avirgb.c
+++ b/source/blender/avi/intern/avi_rgb.c
@@ -26,19 +26,19 @@
*
*/
-/** \file blender/avi/intern/avirgb.c
+/** \file blender/avi/intern/avi_rgb.c
* \ingroup avi
*
* This is external code. Converts rgb-type avi-s.
*/
-
-#include "AVI_avi.h"
#include <stdlib.h>
#include <string.h>
#include "MEM_guardedalloc.h"
-#include "avirgb.h"
+
+#include "AVI_avi.h"
+#include "avi_rgb.h"
/* implementation */
diff --git a/source/blender/avi/intern/avirgb.h b/source/blender/avi/intern/avi_rgb.h
index 20211d6ab2d..773166e9fab 100644
--- a/source/blender/avi/intern/avirgb.h
+++ b/source/blender/avi/intern/avi_rgb.h
@@ -25,11 +25,14 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/** \file blender/avi/intern/avirgb.h
+/** \file blender/avi/intern/avi_rgb.h
* \ingroup avi
*/
+#ifndef __AVI_RGB_H__
+#define __AVI_RGB_H__
-void *avi_converter_from_avi_rgb (AviMovie *movie, int stream, unsigned char *buffer, int *size);
-void *avi_converter_to_avi_rgb (AviMovie *movie, int stream, unsigned char *buffer, int *size);
+void *avi_converter_from_avi_rgb(AviMovie *movie, int stream, unsigned char *buffer, int *size);
+void *avi_converter_to_avi_rgb(AviMovie *movie, int stream, unsigned char *buffer, int *size);
+#endif /* __AVI_RGB_H__ */
diff --git a/source/blender/avi/intern/rgb32.c b/source/blender/avi/intern/avi_rgb32.c
index 84630f09fe5..5c7a4889d97 100644
--- a/source/blender/avi/intern/rgb32.c
+++ b/source/blender/avi/intern/avi_rgb32.c
@@ -26,18 +26,19 @@
*
*/
-/** \file blender/avi/intern/rgb32.c
+/** \file blender/avi/intern/avi_rgb32.c
* \ingroup avi
*
* This is external code. Converts between rgb32 and avi.
*/
-
-#include "AVI_avi.h"
#include <stdlib.h>
#include <string.h>
+
#include "MEM_guardedalloc.h"
-#include "rgb32.h"
+
+#include "AVI_avi.h"
+#include "avi_rgb32.h"
void *avi_converter_from_rgb32(AviMovie *movie, int stream, unsigned char *buffer, int *size)
{
diff --git a/source/blender/avi/intern/rgb32.h b/source/blender/avi/intern/avi_rgb32.h
index 55f9771a4df..523f9e795fd 100644
--- a/source/blender/avi/intern/rgb32.h
+++ b/source/blender/avi/intern/avi_rgb32.h
@@ -25,11 +25,14 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/** \file blender/avi/intern/rgb32.h
+/** \file blender/avi/intern/avi_rgb32.h
* \ingroup avi
*/
+#ifndef __AVI_RGB32_H__
+#define __AVI_RGB32_H__
-void *avi_converter_from_rgb32 (AviMovie *movie, int stream, unsigned char *buffer, int *size);
-void *avi_converter_to_rgb32 (AviMovie *movie, int stream, unsigned char *buffer, int *size);
+void *avi_converter_from_rgb32(AviMovie *movie, int stream, unsigned char *buffer, int *size);
+void *avi_converter_to_rgb32(AviMovie *movie, int stream, unsigned char *buffer, int *size);
+#endif /* __AVI_RGB32_H__ */
diff --git a/source/blender/blenfont/BLF_api.h b/source/blender/blenfont/BLF_api.h
index 18932ffdac8..ce10951d6ff 100644
--- a/source/blender/blenfont/BLF_api.h
+++ b/source/blender/blenfont/BLF_api.h
@@ -33,6 +33,7 @@
#define __BLF_API_H__
struct rctf;
+struct ColorManagedDisplay;
int BLF_init(int points, int dpi);
void BLF_exit(void);
@@ -40,10 +41,10 @@ void BLF_exit(void);
void BLF_cache_clear(void);
int BLF_load(const char *name);
-int BLF_load_mem(const char *name, unsigned char *mem, int mem_size);
+int BLF_load_mem(const char *name, const unsigned char *mem, int mem_size);
int BLF_load_unique(const char *name);
-int BLF_load_mem_unique(const char *name, unsigned char *mem, int mem_size);
+int BLF_load_mem_unique(const char *name, const unsigned char *mem, int mem_size);
void BLF_unload(const char *name);
@@ -145,13 +146,13 @@ void BLF_shadow_offset(int fontid, int x, int y);
/* Set the buffer, size and number of channels to draw, one thing to take care is call
* this function with NULL pointer when we finish, for example:
*
- * BLF_buffer(my_fbuf, my_cbuf, 100, 100, 4);
+ * BLF_buffer(my_fbuf, my_cbuf, 100, 100, 4, TRUE);
*
* ... set color, position and draw ...
*
- * BLF_buffer(NULL, NULL, 0, 0, 0);
+ * BLF_buffer(NULL, NULL, 0, 0, 0, FALSE);
*/
-void BLF_buffer(int fontid, float *fbuf, unsigned char *cbuf, int w, int h, int nch);
+void BLF_buffer(int fontid, float *fbuf, unsigned char *cbuf, int w, int h, int nch, struct ColorManagedDisplay *display);
/* Set the color to be used for text. */
void BLF_buffer_col(int fontid, float r, float g, float b, float a);
diff --git a/source/blender/blenfont/BLF_translation.h b/source/blender/blenfont/BLF_translation.h
index 2c786f87521..278c45dac52 100644
--- a/source/blender/blenfont/BLF_translation.h
+++ b/source/blender/blenfont/BLF_translation.h
@@ -54,6 +54,8 @@ void BLF_lang_init(void);
/* Set the current locale. */
void BLF_lang_set(const char *);
+/* Get the current locale (short code, e.g. es_ES). */
+const char *BLF_lang_get(void);
/* Set the current encoding name. */
void BLF_lang_encoding(const char *str);
@@ -95,6 +97,8 @@ const char *BLF_translate_do_tooltip(const char *contex, const char *msgid);
/* Default context for operator names/labels. */
#define BLF_I18NCONTEXT_OPERATOR_DEFAULT "Operator"
+/* Audio disambiguation context. */
+#define BLF_I18NCONTEXT_AUDIO "Audio"
#endif /* __BLF_TRANSLATION_H__ */
diff --git a/source/blender/blenfont/CMakeLists.txt b/source/blender/blenfont/CMakeLists.txt
index ebf9ff4db39..da60710a137 100644
--- a/source/blender/blenfont/CMakeLists.txt
+++ b/source/blender/blenfont/CMakeLists.txt
@@ -27,6 +27,7 @@ set(INC
../blenlib
../editors/include
../makesdna
+ ../imbuf
../../../intern/guardedalloc
)
diff --git a/source/blender/blenfont/SConscript b/source/blender/blenfont/SConscript
index c46960d2311..d3c7b1c2fcc 100644
--- a/source/blender/blenfont/SConscript
+++ b/source/blender/blenfont/SConscript
@@ -4,7 +4,7 @@ Import ('env')
sources = env.Glob('intern/*.c')
-incs = '. intern #/intern/guardedalloc ../blenkernel ../blenlib ../makesdna ../editors/include'
+incs = '. intern #/intern/guardedalloc ../blenkernel ../blenlib ../makesdna ../imbuf ../editors/include'
incs += ' #/extern/glew/include'
incs += ' ' + env['BF_FREETYPE_INC']
incs += ' ' + env['BF_GETTEXT_INC']
diff --git a/source/blender/blenfont/intern/blf.c b/source/blender/blenfont/intern/blf.c
index 70794a11ff2..92fcb576e7d 100644
--- a/source/blender/blenfont/intern/blf.c
+++ b/source/blender/blenfont/intern/blf.c
@@ -50,7 +50,6 @@
#include "blf_internal_types.h"
#include "blf_internal.h"
-
/* Max number of font in memory.
* Take care that now every font have a glyph cache per size/dpi,
* so we don't need load the same font with different size, just
@@ -227,7 +226,7 @@ void BLF_metrics_attach(int fontid, unsigned char *mem, int mem_size)
}
}
-int BLF_load_mem(const char *name, unsigned char *mem, int mem_size)
+int BLF_load_mem(const char *name, const unsigned char *mem, int mem_size)
{
FontBLF *font;
int i;
@@ -262,7 +261,7 @@ int BLF_load_mem(const char *name, unsigned char *mem, int mem_size)
return i;
}
-int BLF_load_mem_unique(const char *name, unsigned char *mem, int mem_size)
+int BLF_load_mem_unique(const char *name, const unsigned char *mem, int mem_size)
{
FontBLF *font;
int i;
@@ -746,16 +745,17 @@ void BLF_shadow_offset(int fontid, int x, int y)
}
}
-void BLF_buffer(int fontid, float *fbuf, unsigned char *cbuf, int w, int h, int nch)
+void BLF_buffer(int fontid, float *fbuf, unsigned char *cbuf, int w, int h, int nch, struct ColorManagedDisplay *display)
{
FontBLF *font = BLF_get(fontid);
if (font) {
- font->b_fbuf = fbuf;
- font->b_cbuf = cbuf;
- font->bw = w;
- font->bh = h;
- font->bch = nch;
+ font->buf_info.fbuf = fbuf;
+ font->buf_info.cbuf = cbuf;
+ font->buf_info.w = w;
+ font->buf_info.h = h;
+ font->buf_info.ch = nch;
+ font->buf_info.display = display;
}
}
@@ -764,10 +764,10 @@ void BLF_buffer_col(int fontid, float r, float g, float b, float a)
FontBLF *font = BLF_get(fontid);
if (font) {
- font->b_col[0] = r;
- font->b_col[1] = g;
- font->b_col[2] = b;
- font->b_col[3] = a;
+ font->buf_info.col[0] = r;
+ font->buf_info.col[1] = g;
+ font->buf_info.col[2] = b;
+ font->buf_info.col[3] = a;
}
}
@@ -775,7 +775,7 @@ void BLF_draw_buffer(int fontid, const char *str)
{
FontBLF *font = BLF_get(fontid);
- if (font && font->glyph_cache && (font->b_fbuf || font->b_cbuf)) {
+ if (font && font->glyph_cache && (font->buf_info.fbuf || font->buf_info.cbuf)) {
blf_font_buffer(font, str);
}
}
diff --git a/source/blender/blenfont/intern/blf_dir.c b/source/blender/blenfont/intern/blf_dir.c
index 4fde9fe6787..b6a98faa48c 100644
--- a/source/blender/blenfont/intern/blf_dir.c
+++ b/source/blender/blenfont/intern/blf_dir.c
@@ -41,9 +41,10 @@
#include "DNA_vec_types.h"
-#include "BKE_utildefines.h"
-
-#include "BLI_blenlib.h"
+#include "BLI_fileops.h"
+#include "BLI_listbase.h"
+#include "BLI_path_util.h"
+#include "BLI_string.h"
#include "BIF_gl.h"
diff --git a/source/blender/blenfont/intern/blf_font.c b/source/blender/blenfont/intern/blf_font.c
index 6ab942f4e4d..1900efa2dbc 100644
--- a/source/blender/blenfont/intern/blf_font.c
+++ b/source/blender/blenfont/intern/blf_font.c
@@ -43,14 +43,18 @@
#include "DNA_vec_types.h"
-
-#include "BLI_blenlib.h"
-#include "BLI_linklist.h" /* linknode */
+#include "BLI_listbase.h"
#include "BLI_math.h"
+#include "BLI_rect.h"
+#include "BLI_string.h"
+#include "BLI_string_utf8.h"
+#include "BLI_linklist.h" /* linknode */
#include "BIF_gl.h"
#include "BLF_api.h"
+#include "IMB_colormanagement.h"
+
#include "blf_internal_types.h"
#include "blf_internal.h"
@@ -152,12 +156,12 @@ static void blf_font_ensure_ascii_table(FontBLF *font)
_kern_mode, \
&(_delta)) == 0) \
{ \
- _pen_x += delta.x >> 6; \
+ _pen_x += _delta.x >> 6; \
} \
} \
} (void)0
-void blf_font_draw(FontBLF *font, const char *str, unsigned int len)
+void blf_font_draw(FontBLF *font, const char *str, size_t len)
{
unsigned int c;
GlyphBLF *g, *g_prev = NULL;
@@ -170,7 +174,7 @@ void blf_font_draw(FontBLF *font, const char *str, unsigned int len)
blf_font_ensure_ascii_table(font);
- while (str[i] && i < len) {
+ while ((i < len) && str[i]) {
BLF_UTF8_NEXT_FAST(font, g, str, i, c, glyph_ascii_table);
if (c == BLI_UTF8_ERR)
@@ -189,7 +193,7 @@ void blf_font_draw(FontBLF *font, const char *str, unsigned int len)
}
/* faster version of blf_font_draw, ascii only for view dimensions */
-void blf_font_draw_ascii(FontBLF *font, const char *str, unsigned int len)
+void blf_font_draw_ascii(FontBLF *font, const char *str, size_t len)
{
unsigned char c;
GlyphBLF *g, *g_prev = NULL;
@@ -225,11 +229,14 @@ void blf_font_buffer(FontBLF *font, const char *str)
size_t i = 0;
GlyphBLF **glyph_ascii_table = font->glyph_cache->glyph_ascii_table;
- /* buffer specific vars*/
- const unsigned char b_col_char[4] = {font->b_col[0] * 255,
- font->b_col[1] * 255,
- font->b_col[2] * 255,
- font->b_col[3] * 255};
+ /* buffer specific vars */
+ FontBufInfoBLF *buf_info = &font->buf_info;
+ float b_col_float[4];
+ const unsigned char b_col_char[4] = {buf_info->col[0] * 255,
+ buf_info->col[1] * 255,
+ buf_info->col[2] * 255,
+ buf_info->col[3] * 255};
+
unsigned char *cbuf;
int chx, chy;
int y, x;
@@ -239,6 +246,15 @@ void blf_font_buffer(FontBLF *font, const char *str)
blf_font_ensure_ascii_table(font);
+ /* another buffer specific call for color conversion */
+ if (buf_info->display) {
+ copy_v4_v4(b_col_float, buf_info->col);
+ IMB_colormanagement_display_to_scene_linear_v3(b_col_float, buf_info->display);
+ }
+ else {
+ srgb_to_linearrgb_v4(b_col_float, buf_info->col);
+ }
+
while (str[i]) {
BLF_UTF8_NEXT_FAST(font, g, str, i, c, glyph_ascii_table);
@@ -259,16 +275,16 @@ void blf_font_buffer(FontBLF *font, const char *str)
pen_y = (int)font->pos[1] - (g->height - (int)g->pos_y);
}
- if ((chx + g->width) >= 0 && chx < font->bw && (pen_y + g->height) >= 0 && pen_y < font->bh) {
+ if ((chx + g->width) >= 0 && chx < buf_info->w && (pen_y + g->height) >= 0 && pen_y < buf_info->h) {
/* don't draw beyond the buffer bounds */
int width_clip = g->width;
int height_clip = g->height;
int yb_start = g->pitch < 0 ? 0 : g->height - 1;
- if (width_clip + chx > font->bw)
- width_clip -= chx + width_clip - font->bw;
- if (height_clip + pen_y > font->bh)
- height_clip -= pen_y + height_clip - font->bh;
+ if (width_clip + chx > buf_info->w)
+ width_clip -= chx + width_clip - buf_info->w;
+ if (height_clip + pen_y > buf_info->h)
+ height_clip -= pen_y + height_clip - buf_info->h;
/* drawing below the image? */
if (pen_y < 0) {
@@ -277,7 +293,7 @@ void blf_font_buffer(FontBLF *font, const char *str)
pen_y = 0;
}
- if (font->b_fbuf) {
+ if (buf_info->fbuf) {
int yb = yb_start;
for (y = ((chy >= 0) ? 0 : -chy); y < height_clip; y++) {
for (x = ((chx >= 0) ? 0 : -chx); x < width_clip; x++) {
@@ -285,18 +301,18 @@ void blf_font_buffer(FontBLF *font, const char *str)
if (a > 0.0f) {
float alphatest;
- fbuf = font->b_fbuf + font->bch * ((chx + x) + ((pen_y + y) * font->bw));
+ fbuf = buf_info->fbuf + buf_info->ch * ((chx + x) + ((pen_y + y) * buf_info->w));
if (a >= 1.0f) {
- fbuf[0] = font->b_col[0];
- fbuf[1] = font->b_col[1];
- fbuf[2] = font->b_col[2];
- fbuf[3] = (alphatest = (fbuf[3] + (font->b_col[3]))) < 1.0f ? alphatest : 1.0f;
+ fbuf[0] = b_col_float[0];
+ fbuf[1] = b_col_float[1];
+ fbuf[2] = b_col_float[2];
+ fbuf[3] = (alphatest = (fbuf[3] + (b_col_float[3]))) < 1.0f ? alphatest : 1.0f;
}
else {
- fbuf[0] = (font->b_col[0] * a) + (fbuf[0] * (1 - a));
- fbuf[1] = (font->b_col[1] * a) + (fbuf[1] * (1 - a));
- fbuf[2] = (font->b_col[2] * a) + (fbuf[2] * (1 - a));
- fbuf[3] = (alphatest = (fbuf[3] + (font->b_col[3] * a))) < 1.0f ? alphatest : 1.0f;
+ fbuf[0] = (b_col_float[0] * a) + (fbuf[0] * (1.0f - a));
+ fbuf[1] = (b_col_float[1] * a) + (fbuf[1] * (1.0f - a));
+ fbuf[2] = (b_col_float[2] * a) + (fbuf[2] * (1.0f - a));
+ fbuf[3] = (alphatest = (fbuf[3] + (b_col_float[3] * a))) < 1.0f ? alphatest : 1.0f;
}
}
}
@@ -308,7 +324,7 @@ void blf_font_buffer(FontBLF *font, const char *str)
}
}
- if (font->b_cbuf) {
+ if (buf_info->cbuf) {
int yb = yb_start;
for (y = 0; y < height_clip; y++) {
for (x = 0; x < width_clip; x++) {
@@ -316,7 +332,7 @@ void blf_font_buffer(FontBLF *font, const char *str)
if (a > 0.0f) {
int alphatest;
- cbuf = font->b_cbuf + font->bch * ((chx + x) + ((pen_y + y) * font->bw));
+ cbuf = buf_info->cbuf + buf_info->ch * ((chx + x) + ((pen_y + y) * buf_info->w));
if (a >= 1.0f) {
cbuf[0] = b_col_char[0];
cbuf[1] = b_col_char[1];
@@ -324,10 +340,10 @@ void blf_font_buffer(FontBLF *font, const char *str)
cbuf[3] = (alphatest = ((int)cbuf[3] + (int)b_col_char[3])) < 255 ? alphatest : 255;
}
else {
- cbuf[0] = (b_col_char[0] * a) + (cbuf[0] * (1 - a));
- cbuf[1] = (b_col_char[1] * a) + (cbuf[1] * (1 - a));
- cbuf[2] = (b_col_char[2] * a) + (cbuf[2] * (1 - a));
- cbuf[3] = (alphatest = ((int)cbuf[3] + (int)((font->b_col[3] * a) * 255.0f))) <
+ cbuf[0] = (b_col_char[0] * a) + (cbuf[0] * (1.0f - a));
+ cbuf[1] = (b_col_char[1] * a) + (cbuf[1] * (1.0f - a));
+ cbuf[2] = (b_col_char[2] * a) + (cbuf[2] * (1.0f - a));
+ cbuf[3] = (alphatest = ((int)cbuf[3] + (int)((b_col_float[3] * a) * 255.0f))) <
255 ? alphatest : 255;
}
}
@@ -414,8 +430,8 @@ void blf_font_width_and_height(FontBLF *font, const char *str, float *width, flo
}
blf_font_boundbox(font, str, &box);
- *width = ((box.xmax - box.xmin) * xa);
- *height = ((box.ymax - box.ymin) * ya);
+ *width = (BLI_rctf_size_x(&box) * xa);
+ *height = (BLI_rctf_size_y(&box) * ya);
}
float blf_font_width(FontBLF *font, const char *str)
@@ -429,7 +445,7 @@ float blf_font_width(FontBLF *font, const char *str)
xa = 1.0f;
blf_font_boundbox(font, str, &box);
- return (box.xmax - box.xmin) * xa;
+ return BLI_rctf_size_x(&box) * xa;
}
float blf_font_height(FontBLF *font, const char *str)
@@ -443,7 +459,7 @@ float blf_font_height(FontBLF *font, const char *str)
ya = 1.0f;
blf_font_boundbox(font, str, &box);
- return (box.ymax - box.ymin) * ya;
+ return BLI_rctf_size_y(&box) * ya;
}
float blf_font_fixed_width(FontBLF *font)
@@ -507,15 +523,17 @@ static void blf_font_fill(FontBLF *font)
font->glyph_cache = NULL;
font->blur = 0;
font->max_tex_size = -1;
- font->b_fbuf = NULL;
- font->b_cbuf = NULL;
- font->bw = 0;
- font->bh = 0;
- font->bch = 0;
- font->b_col[0] = 0;
- font->b_col[1] = 0;
- font->b_col[2] = 0;
- font->b_col[3] = 0;
+
+ font->buf_info.fbuf = NULL;
+ font->buf_info.cbuf = NULL;
+ font->buf_info.w = 0;
+ font->buf_info.h = 0;
+ font->buf_info.ch = 0;
+ font->buf_info.col[0] = 0;
+ font->buf_info.col[1] = 0;
+ font->buf_info.col[2] = 0;
+ font->buf_info.col[3] = 0;
+
font->ft_lib = ft_lib;
}
@@ -560,12 +578,12 @@ void blf_font_attach_from_mem(FontBLF *font, const unsigned char *mem, int mem_s
FT_Open_Args open;
open.flags = FT_OPEN_MEMORY;
- open.memory_base = (FT_Byte *)mem;
+ open.memory_base = (const FT_Byte *)mem;
open.memory_size = mem_size;
FT_Attach_Stream(font->face, &open);
}
-FontBLF *blf_font_new_from_mem(const char *name, unsigned char *mem, int mem_size)
+FontBLF *blf_font_new_from_mem(const char *name, const unsigned char *mem, int mem_size)
{
FontBLF *font;
FT_Error err;
diff --git a/source/blender/blenfont/intern/blf_glyph.c b/source/blender/blenfont/intern/blf_glyph.c
index 39945bf19b0..91ecded88be 100644
--- a/source/blender/blenfont/intern/blf_glyph.c
+++ b/source/blender/blenfont/intern/blf_glyph.c
@@ -46,7 +46,8 @@
#include "DNA_vec_types.h"
#include "DNA_userdef_types.h"
-#include "BLI_blenlib.h"
+#include "BLI_listbase.h"
+#include "BLI_rect.h"
#include "BIF_gl.h"
#include "BLF_api.h"
@@ -314,13 +315,14 @@ static void blf_texture_draw(float uv[2][2], float dx, float y1, float dx1, floa
static void blf_texture5_draw(const float shadow_col[4], float uv[2][2], float x1, float y1, float x2, float y2)
{
- float soft[25] = {1 / 60.0f, 1 / 60.0f, 2 / 60.0f, 1 / 60.0f, 1 / 60.0f,
- 1 / 60.0f, 3 / 60.0f, 5 / 60.0f, 3 / 60.0f, 1 / 60.0f,
- 2 / 60.0f, 5 / 60.0f, 8 / 60.0f, 5 / 60.0f, 2 / 60.0f,
- 1 / 60.0f, 3 / 60.0f, 5 / 60.0f, 3 / 60.0f, 1 / 60.0f,
- 1 / 60.0f, 1 / 60.0f, 2 / 60.0f, 1 / 60.0f, 1 / 60.0f};
+ const float soft[25] = {1 / 60.0f, 1 / 60.0f, 2 / 60.0f, 1 / 60.0f, 1 / 60.0f,
+ 1 / 60.0f, 3 / 60.0f, 5 / 60.0f, 3 / 60.0f, 1 / 60.0f,
+ 2 / 60.0f, 5 / 60.0f, 8 / 60.0f, 5 / 60.0f, 2 / 60.0f,
+ 1 / 60.0f, 3 / 60.0f, 5 / 60.0f, 3 / 60.0f, 1 / 60.0f,
+ 1 / 60.0f, 1 / 60.0f, 2 / 60.0f, 1 / 60.0f, 1 / 60.0f};
- float color[4], *fp = soft;
+ const float *fp = soft;
+ float color[4];
int dx, dy;
color[0] = shadow_col[0];
@@ -340,11 +342,12 @@ static void blf_texture5_draw(const float shadow_col[4], float uv[2][2], float x
static void blf_texture3_draw(const float shadow_col[4], float uv[2][2], float x1, float y1, float x2, float y2)
{
- float soft[9] = {1 / 16.0f, 2 / 16.0f, 1 / 16.0f,
- 2 / 16.0f, 4 / 16.0f, 2 / 16.0f,
- 1 / 16.0f, 2 / 16.0f, 1 / 16.0f};
+ const float soft[9] = {1 / 16.0f, 2 / 16.0f, 1 / 16.0f,
+ 2 / 16.0f, 4 / 16.0f, 2 / 16.0f,
+ 1 / 16.0f, 2 / 16.0f, 1 / 16.0f};
- float color[4], *fp = soft;
+ const float *fp = soft;
+ float color[4];
int dx, dy;
color[0] = shadow_col[0];
@@ -412,7 +415,7 @@ int blf_glyph_render(FontBLF *font, GlyphBLF *g, float x, float y)
g->uv[1][1] = ((float)(g->yoff + g->height)) / ((float)gc->p2_height);
/* update the x offset for the next glyph. */
- gc->x_offs += (int)(g->box.xmax - g->box.xmin + gc->pad);
+ gc->x_offs += (int)(BLI_rctf_size_x(&g->box) + gc->pad);
gc->rem_glyphs--;
g->build_tex = 1;
@@ -434,13 +437,13 @@ int blf_glyph_render(FontBLF *font, GlyphBLF *g, float x, float y)
y2 = y + g->pos_y - g->height;
if (font->flags & BLF_CLIPPING) {
- if (!BLI_in_rctf(&font->clip_rec, dx + font->pos[0], y1 + font->pos[1]))
+ if (!BLI_rctf_isect_pt(&font->clip_rec, dx + font->pos[0], y1 + font->pos[1]))
return 0;
- if (!BLI_in_rctf(&font->clip_rec, dx + font->pos[0], y2 + font->pos[1]))
+ if (!BLI_rctf_isect_pt(&font->clip_rec, dx + font->pos[0], y2 + font->pos[1]))
return 0;
- if (!BLI_in_rctf(&font->clip_rec, dx1 + font->pos[0], y2 + font->pos[1]))
+ if (!BLI_rctf_isect_pt(&font->clip_rec, dx1 + font->pos[0], y2 + font->pos[1]))
return 0;
- if (!BLI_in_rctf(&font->clip_rec, dx1 + font->pos[0], y1 + font->pos[1]))
+ if (!BLI_rctf_isect_pt(&font->clip_rec, dx1 + font->pos[0], y1 + font->pos[1]))
return 0;
}
diff --git a/source/blender/blenfont/intern/blf_internal.h b/source/blender/blenfont/intern/blf_internal.h
index f43fa8a7458..65a54783978 100644
--- a/source/blender/blenfont/intern/blf_internal.h
+++ b/source/blender/blenfont/intern/blf_internal.h
@@ -47,12 +47,12 @@ int blf_font_init(void);
void blf_font_exit(void);
struct FontBLF *blf_font_new(const char *name, const char *filename);
-struct FontBLF *blf_font_new_from_mem(const char *name, unsigned char *mem, int mem_size);
+struct FontBLF *blf_font_new_from_mem(const char *name, const unsigned char *mem, int mem_size);
void blf_font_attach_from_mem(struct FontBLF *font, const unsigned char *mem, int mem_size);
void blf_font_size(struct FontBLF *font, int size, int dpi);
-void blf_font_draw(struct FontBLF *font, const char *str, unsigned int len);
-void blf_font_draw_ascii(struct FontBLF *font, const char *str, unsigned int len);
+void blf_font_draw(struct FontBLF *font, const char *str, size_t len);
+void blf_font_draw_ascii(struct FontBLF *font, const char *str, size_t len);
void blf_font_buffer(struct FontBLF *font, const char *str);
void blf_font_boundbox(struct FontBLF *font, const char *str, struct rctf *box);
void blf_font_width_and_height(struct FontBLF *font, const char *str, float *width, float *height);
diff --git a/source/blender/blenfont/intern/blf_internal_types.h b/source/blender/blenfont/intern/blf_internal_types.h
index bf9b9858348..1acc3dad4cf 100644
--- a/source/blender/blenfont/intern/blf_internal_types.h
+++ b/source/blender/blenfont/intern/blf_internal_types.h
@@ -131,6 +131,28 @@ typedef struct GlyphBLF {
short build_tex;
} GlyphBLF;
+typedef struct FontBufInfoBLF {
+ /* for draw to buffer, always set this to NULL after finish! */
+ float *fbuf;
+
+ /* the same but unsigned char */
+ unsigned char *cbuf;
+
+ /* buffer size, keep signed so comparisons with negative values work */
+ int w;
+ int h;
+
+ /* number of channels. */
+ int ch;
+
+ /* display device used for color management */
+ struct ColorManagedDisplay *display;
+
+ /* and the color, the alphas is get from the glyph!
+ * color is srgb space */
+ float col[4];
+} FontBufInfoBLF;
+
typedef struct FontBLF {
/* font name. */
char *name;
@@ -198,21 +220,8 @@ typedef struct FontBLF {
/* freetype2 face. */
FT_Face face;
- /* for draw to buffer, always set this to NULL after finish! */
- float *b_fbuf;
-
- /* the same but unsigned char */
- unsigned char *b_cbuf;
-
- /* buffer size, keep signed so comparisons with negative values work */
- int bw;
- int bh;
-
- /* number of channels. */
- int bch;
-
- /* and the color, the alphas is get from the glyph! */
- float b_col[4];
+ /* data for buffer usage (drawing into a texture buffer) */
+ FontBufInfoBLF buf_info;
} FontBLF;
typedef struct DirBLF {
diff --git a/source/blender/blenfont/intern/blf_lang.c b/source/blender/blenfont/intern/blf_lang.c
index 88d34b5e36f..b694f1fafa7 100644
--- a/source/blender/blenfont/intern/blf_lang.c
+++ b/source/blender/blenfont/intern/blf_lang.c
@@ -63,12 +63,12 @@
#define SYSTEM_ENCODING_DEFAULT "UTF-8"
#define FONT_SIZE_DEFAULT 12
-/* locale options. */
+/* Locale options. */
static char global_messagepath[1024];
static char global_language[32];
static char global_encoding_name[32];
-/* map from the rna_userdef.c:rna_def_userdef_system(BlenderRNA *brna):language_items */
+/* Map from the rna_userdef.c:rna_def_userdef_system(BlenderRNA *brna):language_items */
static const char *locales[] = {
"", "",
"english", "en_US",
@@ -82,7 +82,7 @@ static const char *locales[] = {
"spanish", "es",
"catalan", "ca_AD",
"czech", "cs_CZ",
- "ptb", "pt",
+ "portuguese", "pt_PT",
#if defined(_WIN32) && !defined(FREE_WINDOWS)
"Chinese (Simplified)_China.1252", "zh_CN",
"Chinese (Traditional)_China.1252", "zh_TW",
@@ -107,14 +107,16 @@ static const char *locales[] = {
"kyrgyz", "ky_KG",
"turkish", "tr_TR",
"hungarian", "hu_HU",
+ "portuguese-brazilian", "pt_BR",
+ "hebrew", "he_IL",
};
void BLF_lang_init(void)
{
char *messagepath = BLI_get_folder(BLENDER_DATAFILES, "locale");
-
+
BLI_strncpy(global_encoding_name, SYSTEM_ENCODING_DEFAULT, sizeof(global_encoding_name));
-
+
if (messagepath) {
BLI_strncpy(global_messagepath, messagepath, sizeof(global_messagepath));
}
@@ -122,31 +124,30 @@ void BLF_lang_init(void)
printf("%s: 'locale' data path for translations not found, continuing\n", __func__);
global_messagepath[0] = '\0';
}
-
}
-/* get LANG/LANGUAGE environment variable */
-static void get_language_variable(const char *varname, char *var, int maxlen)
+/* Get LANG/LANGUAGE environment variable. */
+static void get_language_variable(const char *varname, char *var, const size_t maxlen)
{
char *env = getenv(varname);
if (env) {
char *s;
- /* store defaul locale */
+ /* Store defaul locale. */
BLI_strncpy(var, env, maxlen);
- /* use first language as default */
+ /* Use first language as default. */
s = strchr(var, ':');
if (s)
s[0] = 0;
}
}
-/* get language to be used based on locale(which might be empty when using default language) and
- * LANG environment variable
+/* Get language to be used based on locale (which might be empty when using default language) and
+ * LANG environment variable.
*/
-static void get_language(const char *locale, const char *lang, char *language, int maxlen)
+static void get_language(const char *locale, const char *lang, char *language, const size_t maxlen)
{
if (locale[0]) {
BLI_strncpy(language, locale, maxlen);
@@ -162,7 +163,7 @@ static void get_language(const char *locale, const char *lang, char *language, i
}
}
-/* XXX WARNING!!! IN osx somehow the previous function call jumps in this one??? (ton, ppc) */
+/* XXX WARNING!!! In osx somehow the previous function call jumps in this one??? (ton, ppc) */
void BLF_lang_set(const char *str)
{
char *locreturn;
@@ -182,7 +183,7 @@ void BLF_lang_set(const char *str)
if (short_locale) {
char *envStr;
- if (U.language == 0) /* use system setting */
+ if (U.language == 0) /* Use system setting. */
envStr = BLI_sprintfN("LANG=%s", getenv("LANG"));
else
envStr = BLI_sprintfN("LANG=%s", short_locale);
@@ -249,7 +250,7 @@ void BLF_lang_set(const char *str)
printf("Fallback to LANG=%s and LANGUAGE=%s\n", default_lang, language);
}
- /* fallback to default settings */
+ /* Fallback to default settings. */
BLI_setenv("LANG", default_lang);
BLI_setenv("LANGUAGE", language);
@@ -276,6 +277,11 @@ void BLF_lang_set(const char *str)
bind_textdomain_codeset(TEXT_DOMAIN_NAME, global_encoding_name);
}
+const char *BLF_lang_get(void)
+{
+ return locales[2 * U.language + 1];
+}
+
void BLF_lang_encoding(const char *str)
{
BLI_strncpy(global_encoding_name, str, sizeof(global_encoding_name));
@@ -301,4 +307,9 @@ void BLF_lang_set(const char *str)
return;
}
+const char *BLF_lang_get(void)
+{
+ return "";
+}
+
#endif /* WITH_INTERNATIONAL */
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h
index 64512dcaac8..fa9223ba6e2 100644
--- a/source/blender/blenkernel/BKE_DerivedMesh.h
+++ b/source/blender/blenkernel/BKE_DerivedMesh.h
@@ -698,6 +698,7 @@ void DM_init_origspace(DerivedMesh *dm);
#ifndef NDEBUG
char *DM_debug_info(DerivedMesh *dm);
void DM_debug_print(DerivedMesh *dm);
+void DM_debug_print_cdlayers(CustomData *cdata);
#endif
#endif
diff --git a/source/blender/blenkernel/BKE_action.h b/source/blender/blenkernel/BKE_action.h
index 7df491c0fef..2d7030b2d42 100644
--- a/source/blender/blenkernel/BKE_action.h
+++ b/source/blender/blenkernel/BKE_action.h
@@ -203,7 +203,7 @@ void BKE_pose_ikparam_init(struct bPose *pose);
void BKE_pose_itasc_init(struct bItasc *itasc);
/* clears BONE_UNKEYED flags for frame changing */
-// XXX to be depreceated for a more general solution in animsys...
+// XXX to be deprecated for a more general solution in animsys...
void framechange_poses_clear_unkeyed(void);
/* Bone Groups API --------------------- */
diff --git a/source/blender/blenkernel/BKE_anim.h b/source/blender/blenkernel/BKE_anim.h
index acb9234b2d4..11537964e32 100644
--- a/source/blender/blenkernel/BKE_anim.h
+++ b/source/blender/blenkernel/BKE_anim.h
@@ -60,13 +60,13 @@ void animviz_calc_motionpaths(struct Scene *scene, ListBase *targets);
void free_path(struct Path *path);
void calc_curvepath(struct Object *ob);
-int interval_test(int min, int max, int p1, int cycl);
int where_on_path(struct Object *ob, float ctime, float vec[4], float dir[3], float quat[4], float *radius, float *weight);
/* ---------------------------------------------------- */
/* Dupli-Geometry */
-struct ListBase *object_duplilist(struct Scene *sce, struct Object *ob);
+struct ListBase *object_duplilist_ex(struct Scene *sce, struct Object *ob, int update, int for_render);
+struct ListBase *object_duplilist(struct Scene *sce, struct Object *ob, int for_render);
void free_object_duplilist(struct ListBase *lb);
int count_duplilist(struct Object *ob);
diff --git a/source/blender/blenkernel/BKE_armature.h b/source/blender/blenkernel/BKE_armature.h
index 44e47e779e7..6b9de47836e 100644
--- a/source/blender/blenkernel/BKE_armature.h
+++ b/source/blender/blenkernel/BKE_armature.h
@@ -101,8 +101,6 @@ void get_objectspace_bone_matrix(struct Bone *bone, float M_accumulatedMatrix[][
void vec_roll_to_mat3(const float vec[3], const float roll, float mat[][3]);
void mat3_to_vec_roll(float mat[][3], float *vec, float *roll);
-int get_selected_defgroups(struct Object *ob, char *defbase_sel, int defbase_len);
-
/* Common Conversions Between Co-ordinate Spaces */
void BKE_armature_mat_world_to_pose(struct Object *ob, float inmat[][4], float outmat[][4]);
void BKE_armature_loc_world_to_pose(struct Object *ob, const float inloc[3], float outloc[3]);
@@ -133,7 +131,14 @@ typedef struct Mat4 {
Mat4 *b_bone_spline_setup(struct bPoseChannel *pchan, int rest);
/* like EBONE_VISIBLE */
-#define PBONE_VISIBLE(arm, bone) (((bone)->layer & (arm)->layer) && !((bone)->flag & BONE_HIDDEN_P))
+#define PBONE_VISIBLE(arm, bone) ( \
+ CHECK_TYPE_INLINE(arm, bArmature), \
+ CHECK_TYPE_INLINE(bone, Bone), \
+ (((bone)->layer & (arm)->layer) && !((bone)->flag & BONE_HIDDEN_P)) \
+ )
+
+#define PBONE_SELECTABLE(arm, bone) \
+ (PBONE_VISIBLE(arm, bone) && !((bone)->flag & BONE_UNSELECTABLE))
#ifdef __cplusplus
}
diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h
index 171b62461a0..741a001142f 100644
--- a/source/blender/blenkernel/BKE_blender.h
+++ b/source/blender/blenkernel/BKE_blender.h
@@ -41,17 +41,19 @@ extern "C" {
/* these lines are grep'd, watch out for our not-so-awesome regex
* and keep comment above the defines.
* Use STRINGIFY() rather than defining with quotes */
-#define BLENDER_VERSION 263
-#define BLENDER_SUBVERSION 13
+#define BLENDER_VERSION 264
+#define BLENDER_SUBVERSION 1
-#define BLENDER_MINVERSION 250
+/* 262 was the last editmesh release but its has compatibility code for bmesh data,
+ * so set the minversion to 2.61 */
+#define BLENDER_MINVERSION 261
#define BLENDER_MINSUBVERSION 0
/* used by packaging tools */
/* can be left blank, otherwise a,b,c... etc with no quotes */
#define BLENDER_VERSION_CHAR a
/* alpha/beta/rc/release, docs use this */
-#define BLENDER_VERSION_CYCLE beta
+#define BLENDER_VERSION_CYCLE alpha
extern char versionstr[]; /* from blender.c */
@@ -81,6 +83,8 @@ void BKE_userdef_free(void);
void set_blender_test_break_cb(void (*func)(void) );
int blender_test_break(void);
+#define BKE_UNDO_STR_MAX 64
+
/* global undo */
extern void BKE_write_undo(struct bContext *C, const char *name);
extern void BKE_undo_step(struct bContext *C, int step);
diff --git a/source/blender/blenkernel/BKE_cdderivedmesh.h b/source/blender/blenkernel/BKE_cdderivedmesh.h
index 37763003099..d7882d8e7ec 100644
--- a/source/blender/blenkernel/BKE_cdderivedmesh.h
+++ b/source/blender/blenkernel/BKE_cdderivedmesh.h
@@ -61,12 +61,14 @@ DerivedMesh *CDDM_from_BMEditMesh(struct BMEditMesh *em, struct Mesh *me, int us
/* merge verts */
DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, const int *vtargetmap);
+DerivedMesh *CDDM_from_curve_orco(struct Scene *scene, struct Object *ob);
+
/* creates a CDDerivedMesh from the given curve object */
struct DerivedMesh *CDDM_from_curve(struct Object *ob);
/* creates a CDDerivedMesh from the given curve object and specified dispbase */
/* useful for OrcoDM creation for curves with constructive modifiers */
-DerivedMesh *CDDM_from_curve_customDB(struct Object *ob, struct ListBase *dispbase);
+DerivedMesh *CDDM_from_curve_displist(struct Object *ob, struct ListBase *dispbase, int **orco_index_ptr);
/* Copies the given DerivedMesh with verts, faces & edges stored as
* custom element data.
diff --git a/source/blender/blenkernel/BKE_cloth.h b/source/blender/blenkernel/BKE_cloth.h
index bcda970e60c..30b3ab38c6f 100644
--- a/source/blender/blenkernel/BKE_cloth.h
+++ b/source/blender/blenkernel/BKE_cloth.h
@@ -57,7 +57,6 @@ struct CollisionTree;
/* Bits to or into the ClothVertex.flags. */
#define CLOTH_VERT_FLAG_PINNED 1
#define CLOTH_VERT_FLAG_NOSELFCOLL 2 /* vertex NOT used for self collisions */
-#define CLOTH_VERT_FLAG_PINNED_EM 3
/**
* This structure describes a cloth object against which the
@@ -181,7 +180,7 @@ typedef enum {
////////////////////////////////////////////////
// needed for implicit.c
-int cloth_bvh_objcollision (struct Object *ob, struct ClothModifierData * clmd, float step, float dt );
+int cloth_bvh_objcollision (struct Object *ob, struct ClothModifierData *clmd, float step, float dt );
////////////////////////////////////////////////
diff --git a/source/blender/blenkernel/BKE_colortools.h b/source/blender/blenkernel/BKE_colortools.h
index f58af8f39a0..728f88b3c16 100644
--- a/source/blender/blenkernel/BKE_colortools.h
+++ b/source/blender/blenkernel/BKE_colortools.h
@@ -31,6 +31,9 @@
* \ingroup bke
*/
+struct ColorManagedColorspaceSettings;
+struct ColorManagedDisplaySettings;
+struct ColorManagedViewSettings;
struct CurveMapping;
struct CurveMap;
struct CurveMapPoint;
@@ -39,7 +42,7 @@ struct Histogram;
struct ImBuf;
struct rctf;
-#if defined _WIN32
+#if defined _MSC_VER
# define DO_INLINE __inline
#elif defined(__sun) || defined(__sun__)
# define DO_INLINE
@@ -47,15 +50,19 @@ struct rctf;
# define DO_INLINE static inline
#endif
+void curvemapping_set_defaults(struct CurveMapping *cumap, int tot, float minx, float miny, float maxx, float maxy);
struct CurveMapping *curvemapping_add(int tot, float minx, float miny, float maxx, float maxy);
+void curvemapping_free_data(struct CurveMapping *cumap);
void curvemapping_free(struct CurveMapping *cumap);
+void curvemapping_copy_data(struct CurveMapping *target, struct CurveMapping *cumap);
struct CurveMapping *curvemapping_copy(struct CurveMapping *cumap);
+void curvemapping_set_black_white_ex(const float black[3], const float white[3], float r_bwmul[3]);
void curvemapping_set_black_white(struct CurveMapping *cumap, const float black[3], const float white[3]);
#define CURVEMAP_SLOPE_NEGATIVE 0
#define CURVEMAP_SLOPE_POSITIVE 1
-void curvemap_reset(struct CurveMap *cuma, struct rctf *clipr, int preset, int slope);
-void curvemap_remove(struct CurveMap *cuma, int flag);
+void curvemap_reset(struct CurveMap *cuma, const struct rctf *clipr, int preset, int slope);
+void curvemap_remove(struct CurveMap *cuma, const short flag);
void curvemap_remove_point(struct CurveMap *cuma, struct CurveMapPoint *cmp);
struct CurveMapPoint *curvemap_insert(struct CurveMap *cuma, float x, float y);
void curvemap_sethandle(struct CurveMap *cuma, int type);
@@ -63,22 +70,47 @@ void curvemap_sethandle(struct CurveMap *cuma, int type);
void curvemapping_changed(struct CurveMapping *cumap, int rem_doubles);
void curvemapping_changed_all(struct CurveMapping *cumap);
+/* call before _all_ evaluation functions */
+void curvemapping_initialize(struct CurveMapping *cumap);
+
+/* keep these (const CurveMap) - to help with thread safety */
/* single curve, no table check */
-float curvemap_evaluateF(struct CurveMap *cuma, float value);
+float curvemap_evaluateF(const struct CurveMap *cuma, float value);
/* single curve, with table check */
-float curvemapping_evaluateF(struct CurveMapping *cumap, int cur, float value);
-void curvemapping_evaluate3F(struct CurveMapping *cumap, float vecout[3], const float vecin[3]);
-void curvemapping_evaluateRGBF(struct CurveMapping *cumap, float vecout[3], const float vecin[3]);
-void curvemapping_evaluate_premulRGBF(struct CurveMapping *cumap, float vecout[3], const float vecin[3]);
+float curvemapping_evaluateF(const struct CurveMapping *cumap, int cur, float value);
+void curvemapping_evaluate3F(const struct CurveMapping *cumap, float vecout[3], const float vecin[3]);
+void curvemapping_evaluateRGBF(const struct CurveMapping *cumap, float vecout[3], const float vecin[3]);
+void curvemapping_evaluate_premulRGB(const struct CurveMapping *cumap, unsigned char vecout_byte[3], const unsigned char vecin_byte[3]);
+void curvemapping_evaluate_premulRGBF_ex(const struct CurveMapping *cumap, float vecout[3], const float vecin[3],
+ const float black[3], const float bwmul[3]);
+void curvemapping_evaluate_premulRGBF(const struct CurveMapping *cumap, float vecout[3], const float vecin[3]);
+int curvemapping_RGBA_does_something(const struct CurveMapping *cumap);
+void curvemapping_table_RGBA(const struct CurveMapping *cumap, float **array, int *size);
+
+/* non-const, these modify the curve */
void curvemapping_do_ibuf(struct CurveMapping *cumap, struct ImBuf *ibuf);
void curvemapping_premultiply(struct CurveMapping *cumap, int restore);
-int curvemapping_RGBA_does_something(struct CurveMapping *cumap);
-void curvemapping_initialize(struct CurveMapping *cumap);
-void curvemapping_table_RGBA(struct CurveMapping *cumap, float **array, int *size);
-void BKE_histogram_update_sample_line(struct Histogram *hist, struct ImBuf *ibuf, const short use_color_management);
-void scopes_update(struct Scopes *scopes, struct ImBuf *ibuf, int use_color_management);
+
+
+void BKE_histogram_update_sample_line(struct Histogram *hist, struct ImBuf *ibuf,
+ const struct ColorManagedViewSettings *view_settings,
+ const struct ColorManagedDisplaySettings *display_settings);
+void scopes_update(struct Scopes *scopes, struct ImBuf *ibuf, const struct ColorManagedViewSettings *view_settings,
+ const struct ColorManagedDisplaySettings *display_settings);
void scopes_free(struct Scopes *scopes);
void scopes_new(struct Scopes *scopes);
-#endif
+void BKE_color_managed_display_settings_init(struct ColorManagedDisplaySettings *settings);
+void BKE_color_managed_display_settings_copy(struct ColorManagedDisplaySettings *new_settings,
+ const struct ColorManagedDisplaySettings *settings);
+
+void BKE_color_managed_view_settings_init(struct ColorManagedViewSettings *settings);
+void BKE_color_managed_view_settings_copy(struct ColorManagedViewSettings *new_settings,
+ const struct ColorManagedViewSettings *settings);
+void BKE_color_managed_view_settings_free(struct ColorManagedViewSettings *settings);
+void BKE_color_managed_colorspace_settings_init(struct ColorManagedColorspaceSettings *colorspace_settings);
+void BKE_color_managed_colorspace_settings_copy(struct ColorManagedColorspaceSettings *colorspace_settings,
+ const struct ColorManagedColorspaceSettings *settings);
+
+#endif
diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h
index 7a1172335d8..22b8f474cca 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -88,7 +88,7 @@ typedef struct bContextStore {
int used;
} bContextStore;
-/* for the conrtext's rna mode enum
+/* for the context's rna mode enum
* keep aligned with data_mode_strings in context.c */
enum {
CTX_MODE_EDIT_MESH = 0,
@@ -174,7 +174,7 @@ void CTX_wm_operator_poll_msg_set(struct bContext *C, const char *msg);
*
* - listbases consist of CollectionPointerLink items and must be
* freed with BLI_freelistN!
- * - the dir listbase consits of LinkData items */
+ * - the dir listbase consists of LinkData items */
/* data type, needed so we can tell between a NULL pointer and an empty list */
enum {
@@ -221,7 +221,7 @@ void CTX_data_list_add(bContextDataResult *result, void *data);
#define CTX_DATA_END \
} \
BLI_freelistN(&ctx_data_list); \
- }
+} (void)0
int ctx_data_list_count(const bContext *C, int (*func)(const bContext *, ListBase *));
diff --git a/source/blender/blenkernel/BKE_curve.h b/source/blender/blenkernel/BKE_curve.h
index a845ac10c9d..e6161cebf54 100644
--- a/source/blender/blenkernel/BKE_curve.h
+++ b/source/blender/blenkernel/BKE_curve.h
@@ -93,6 +93,8 @@ void BKE_curve_forward_diff_bezier(float q0, float q1, float q2, float q3, float
/* ** Nurbs ** */
+int BKE_nurbList_index_get_co(struct ListBase *editnurb, const int index, float r_co[3]);
+
int BKE_nurbList_verts_count(struct ListBase *nurb);
int BKE_nurbList_verts_count_without_handles(struct ListBase *nurb);
diff --git a/source/blender/blenkernel/BKE_customdata.h b/source/blender/blenkernel/BKE_customdata.h
index 3dc68edf12b..33361b9921c 100644
--- a/source/blender/blenkernel/BKE_customdata.h
+++ b/source/blender/blenkernel/BKE_customdata.h
@@ -73,6 +73,8 @@ extern const CustomDataMask CD_MASK_FACECORNERS;
#define CD_TYPE_AS_MASK(_type) (CustomDataMask)((CustomDataMask)1 << (CustomDataMask)(_type))
+void customData_mask_layers__print(CustomDataMask mask);
+
/**
* Checks if the layer at physical offset \a layer_n (in data->layers) support math
* the below operations.
@@ -124,8 +126,6 @@ void CustomData_free_temporary(struct CustomData *data, int totelem);
/* adds a data layer of the given type to the CustomData object, optionally
* backed by an external data array. the different allocation types are
* defined above. returns the data of the layer.
- *
- * in editmode, use EDBM_data_layer_add instead of this function
*/
void *CustomData_add_layer(struct CustomData *data, int type, int alloctype,
void *layer, int totelem);
@@ -310,7 +310,7 @@ int CustomData_layertype_is_singleton(int type);
/* make sure the name of layer at index is unique */
void CustomData_set_layer_unique_name(struct CustomData *data, int index);
-void CustomData_validate_layer_name(const struct CustomData *data, int type, char *name, char *outname);
+void CustomData_validate_layer_name(const struct CustomData *data, int type, const char *name, char *outname);
/* for file reading compatibility, returns false if the layer was freed,
* only after this test passes, layer->data should be assigned */
diff --git a/source/blender/blenkernel/BKE_deform.h b/source/blender/blenkernel/BKE_deform.h
index 25677165fc2..52a143ddf55 100644
--- a/source/blender/blenkernel/BKE_deform.h
+++ b/source/blender/blenkernel/BKE_deform.h
@@ -67,7 +67,8 @@ void defvert_remap(struct MDeformVert *dvert, int *map, const int map_len);
void defvert_flip(struct MDeformVert *dvert, const int *flip_map, const int flip_map_len);
void defvert_flip_merged(struct MDeformVert *dvert, const int *flip_map, const int flip_map_len);
void defvert_normalize(struct MDeformVert *dvert);
-void defvert_normalize_lock(struct MDeformVert *dvert, const int def_nr_lock);
+void defvert_normalize_lock_single(struct MDeformVert *dvert, const int def_nr_lock);
+void defvert_normalize_lock_map(struct MDeformVert *dvert, const char *lock_flags, const int defbase_tot);
/* utility function, note that MAX_VGROUP_NAME chars is the maximum string length since its only
* used with defgroups currently */
diff --git a/source/blender/blenkernel/BKE_fcurve.h b/source/blender/blenkernel/BKE_fcurve.h
index f7aa4470c19..bf2f1262eee 100644
--- a/source/blender/blenkernel/BKE_fcurve.h
+++ b/source/blender/blenkernel/BKE_fcurve.h
@@ -83,7 +83,7 @@ void bezt_add_to_cfra_elem(ListBase *lb, struct BezTriple *bezt);
/* tidy up for driver targets loopers */
#define DRIVER_TARGETS_LOOPER_END \
- }
+}
/* ---------------------- */
@@ -217,8 +217,8 @@ void calc_fcurve_range(struct FCurve *fcu, float *min, float *max,
const short do_sel_only, const short do_min_length);
/* get the bounding-box extents for F-Curve */
-void calc_fcurve_bounds(struct FCurve *fcu, float *xmin, float *xmax, float *ymin, float *ymax,
- const short do_sel_only, const short include_handles);
+short calc_fcurve_bounds(struct FCurve *fcu, float *xmin, float *xmax, float *ymin, float *ymax,
+ const short do_sel_only, const short include_handles);
/* .............. */
diff --git a/source/blender/blenkernel/BKE_font.h b/source/blender/blenkernel/BKE_font.h
index 6636a70e94d..cd52dd75f26 100644
--- a/source/blender/blenkernel/BKE_font.h
+++ b/source/blender/blenkernel/BKE_font.h
@@ -46,7 +46,7 @@ struct TmpFont;
struct CharInfo;
struct Main;
-struct chartrans {
+struct CharTrans {
float xof, yof;
float rot;
short linenr, charnr;
@@ -71,15 +71,15 @@ typedef struct EditFont {
} EditFont;
+int BKE_vfont_is_builtin(struct VFont *vfont);
void BKE_vfont_builtin_register(void *mem, int size);
+void BKE_vfont_free_data(struct VFont *vfont);
void BKE_vfont_free(struct VFont *sc);
-void BKE_vfont_free_global_ttf(void);
struct VFont *BKE_vfont_builtin_get(void);
struct VFont *BKE_vfont_load(struct Main *bmain, const char *name);
-struct TmpFont *BKE_vfont_find_tmpfont(struct VFont *vfont);
-struct chartrans *BKE_vfont_to_curve(struct Main *bmain, struct Scene *scene, struct Object *ob, int mode);
+struct CharTrans *BKE_vfont_to_curve(struct Main *bmain, struct Scene *scene, struct Object *ob, int mode);
int BKE_vfont_select_get(struct Object *ob, int *start, int *end);
diff --git a/source/blender/blenkernel/BKE_global.h b/source/blender/blenkernel/BKE_global.h
index 2d30844af80..2656495a918 100644
--- a/source/blender/blenkernel/BKE_global.h
+++ b/source/blender/blenkernel/BKE_global.h
@@ -60,20 +60,31 @@ typedef struct Global {
/* strings of recent opened files */
struct ListBase recent_files;
-
- short afbreek, moving, file_loaded;
+
+ /* has escape been pressed or Ctrl+C pressed in background mode, used for render quit */
+ short is_break;
+
+ short moving, file_loaded;
char background;
char factory_startup;
short winpos, displaymode; /* used to be in Render */
- short rendering; /* to indicate render is busy, prevent renderwindow events etc */
- short rt;
+ /* to indicate render is busy, prevent renderwindow events etc */
+ short is_rendering;
+
+ /* debug value, can be set from the UI and python, used for testing nonstandard features */
+ short debug_value;
+
+ /* saved to the blend file as FileGlobal.globalf,
+ * however this is now only used for runtime options */
int f;
+
+ /* debug flag, G_DEBUG, G_DEBUG_PYTHON & friends, set python or command line args */
int debug;
/* Used for BMesh transformations */
struct BME_Glob *editBMesh;
-
+
/* Frank's variables */
int save_over;
@@ -88,7 +99,7 @@ typedef struct Global {
/* this variable is written to / read from FileGlobal->fileflags */
int fileflags;
-
+
/* save the allowed windowstate of blender when using -W or -w */
int windowstate;
} Global;
@@ -123,7 +134,7 @@ enum {
G_DEBUG_JOBS = (1 << 5) /* jobs time profiling */
};
-#define G_DEBUG_ALL (G_DEBUG | G_DEBUG_FFMPEG | G_DEBUG_PYTHON | G_DEBUG_EVENTS | G_DEBUG_WM)
+#define G_DEBUG_ALL (G_DEBUG | G_DEBUG_FFMPEG | G_DEBUG_PYTHON | G_DEBUG_EVENTS | G_DEBUG_WM | G_DEBUG_JOBS)
/* G.fileflags */
diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h
index f3223fb4af1..3cb20ead39e 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -44,7 +44,7 @@ void free_gpencil_layers(struct ListBase *list);
void BKE_gpencil_free(struct bGPdata *gpd);
struct bGPDframe *gpencil_frame_addnew(struct bGPDlayer *gpl, int cframe);
-struct bGPDlayer *gpencil_layer_addnew(struct bGPdata *gpd);
+struct bGPDlayer *gpencil_layer_addnew(struct bGPdata *gpd, const char *name, int setactive);
struct bGPdata *gpencil_data_addnew(const char name[]);
struct bGPDframe *gpencil_frame_duplicate(struct bGPDframe *src);
@@ -62,6 +62,6 @@ struct bGPDframe *gpencil_layer_getframe(struct bGPDlayer *gpl, int cframe, shor
void gpencil_layer_delframe(struct bGPDlayer *gpl, struct bGPDframe *gpf);
struct bGPDlayer *gpencil_layer_getactive(struct bGPdata *gpd);
void gpencil_layer_setactive(struct bGPdata *gpd, struct bGPDlayer *active);
-void gpencil_layer_delactive(struct bGPdata *gpd);
+void gpencil_layer_delete(struct bGPdata *gpd, struct bGPDlayer *gpl);
#endif /* __BKE_GPENCIL_H__ */
diff --git a/source/blender/blenkernel/BKE_group.h b/source/blender/blenkernel/BKE_group.h
index 67cdee9fa07..3e9803a908b 100644
--- a/source/blender/blenkernel/BKE_group.h
+++ b/source/blender/blenkernel/BKE_group.h
@@ -52,10 +52,6 @@ int group_is_animated(struct Object *parent, struct Group *group);
void group_tag_recalc(struct Group *group);
void group_handle_recalc_and_update(struct Scene *scene, struct Object *parent, struct Group *group);
-#if 0 /* UNUSED */
-struct Object *group_get_member_with_action(struct Group *group, struct bAction *act);
-void group_relink_nla_objects(struct Object *ob);
-#endif
#endif
diff --git a/source/blender/blenkernel/BKE_idprop.h b/source/blender/blenkernel/BKE_idprop.h
index 2436ada9eaf..3cf4a2c5cdc 100644
--- a/source/blender/blenkernel/BKE_idprop.h
+++ b/source/blender/blenkernel/BKE_idprop.h
@@ -60,15 +60,33 @@ typedef union IDPropertyTemplate {
/* note: as a start to move away from the stupid IDP_New function, this type
* has it's own allocation function.*/
-IDProperty *IDP_NewIDPArray(const char *name);
-IDProperty *IDP_CopyIDPArray(IDProperty *array);
+IDProperty *IDP_NewIDPArray(const char *name)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
+IDProperty *IDP_CopyIDPArray(IDProperty *array)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
void IDP_FreeIDPArray(IDProperty *prop);
/* shallow copies item */
void IDP_SetIndexArray(struct IDProperty *prop, int index, struct IDProperty *item);
-struct IDProperty *IDP_GetIndexArray(struct IDProperty *prop, int index);
-struct IDProperty *IDP_AppendArray(struct IDProperty *prop, struct IDProperty *item);
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+struct IDProperty *IDP_GetIndexArray(struct IDProperty *prop, int index)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
+void IDP_AppendArray(struct IDProperty *prop, struct IDProperty *item);
void IDP_ResizeIDPArray(struct IDProperty *prop, int len);
/* ----------- Numeric Array Type ----------- */
@@ -77,11 +95,33 @@ void IDP_ResizeArray(struct IDProperty *prop, int newlen);
void IDP_FreeArray(struct IDProperty *prop);
/* ---------- String Type ------------ */
-IDProperty *IDP_NewString(const char *st, const char *name, int maxlen); /* maxlen excludes '\0' */
-void IDP_AssignString(struct IDProperty *prop, const char *st, int maxlen); /* maxlen excludes '\0' */
-void IDP_ConcatStringC(struct IDProperty *prop, const char *st);
-void IDP_ConcatString(struct IDProperty *str1, struct IDProperty *append);
-void IDP_FreeString(struct IDProperty *prop);
+IDProperty *IDP_NewString(const char *st, const char *name, int maxlen) /* maxlen excludes '\0' */
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull (2))) /* 'name' arg */
+#endif
+;
+
+void IDP_AssignString(struct IDProperty *prop, const char *st, int maxlen) /* maxlen excludes '\0' */
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
+void IDP_ConcatStringC(struct IDProperty *prop, const char *st)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
+void IDP_ConcatString(struct IDProperty *str1, struct IDProperty *append)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
+void IDP_FreeString(struct IDProperty *prop)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
/*-------- ID Type -------*/
void IDP_LinkID(struct IDProperty *prop, ID *id);
@@ -90,17 +130,29 @@ void IDP_UnlinkID(struct IDProperty *prop);
/*-------- Group Functions -------*/
/** Sync values from one group to another, only where they match */
-void IDP_SyncGroupValues(struct IDProperty *dest, struct IDProperty *src);
+void IDP_SyncGroupValues(struct IDProperty *dest, struct IDProperty *src)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
/**
* replaces all properties with the same name in a destination group from a source group.
*/
-void IDP_ReplaceGroupInGroup(struct IDProperty *dest, struct IDProperty *src);
+void IDP_ReplaceGroupInGroup(struct IDProperty *dest, struct IDProperty *src)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
/**
* Checks if a property with the same name as prop exists, and if so replaces it.
* Use this to preserve order!*/
-void IDP_ReplaceInGroup(struct IDProperty *group, struct IDProperty *prop);
+void IDP_ReplaceInGroup(struct IDProperty *group, struct IDProperty *prop)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
/**
* This function has a sanity check to make sure ID properties with the same name don't
@@ -117,12 +169,20 @@ void IDP_ReplaceInGroup(struct IDProperty *group, struct IDProperty *prop);
* struct. In the future this will just be IDP_FreeProperty and the code will
* be reorganized to work properly.
*/
-int IDP_AddToGroup(struct IDProperty *group, struct IDProperty *prop);
+int IDP_AddToGroup(struct IDProperty *group, struct IDProperty *prop)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
/** this is the same as IDP_AddToGroup, only you pass an item
* in the group list to be inserted after. */
int IDP_InsertToGroup(struct IDProperty *group, struct IDProperty *previous,
- struct IDProperty *pnew);
+ struct IDProperty *pnew)
+#ifdef __GNUC__
+__attribute__((nonnull (1, 3))) /* 'group', 'pnew' */
+#endif
+;
/** \note this does not free the property!!
*
@@ -130,18 +190,36 @@ int IDP_InsertToGroup(struct IDProperty *group, struct IDProperty *previous,
* IDP_FreeProperty(prop); //free all subdata
* MEM_freeN(prop); //free property struct itself
*/
-void IDP_RemFromGroup(struct IDProperty *group, struct IDProperty *prop);
+void IDP_RemFromGroup(struct IDProperty *group, struct IDProperty *prop)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
-IDProperty *IDP_GetPropertyFromGroup(struct IDProperty *prop, const char *name);
+IDProperty *IDP_GetPropertyFromGroup(struct IDProperty *prop, const char *name)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
/** same as above but ensure type match */
-IDProperty *IDP_GetPropertyTypeFromGroup(struct IDProperty *prop, const char *name, const char type);
+IDProperty *IDP_GetPropertyTypeFromGroup(struct IDProperty *prop, const char *name, const char type)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
/**
* Get an iterator to iterate over the members of an id property group.
* Note that this will automatically free the iterator once iteration is complete;
* if you stop the iteration before hitting the end, make sure to call
* IDP_FreeIterBeforeEnd(). */
-void *IDP_GetGroupIterator(struct IDProperty *prop);
+void *IDP_GetGroupIterator(struct IDProperty *prop)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+#endif
+;
/**
* Returns the next item in the iteration. To use, simple for a loop like the following:
@@ -149,21 +227,44 @@ void *IDP_GetGroupIterator(struct IDProperty *prop);
* ...
* }
*/
-IDProperty *IDP_GroupIterNext(void *vself);
+IDProperty *IDP_GroupIterNext(void *vself)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
/**
* Frees the iterator pointed to at vself, only use this if iteration is stopped early;
* when the iterator hits the end of the list it'll automatically free itself.*/
-void IDP_FreeIterBeforeEnd(void *vself);
+void IDP_FreeIterBeforeEnd(void *vself)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
/*-------- Main Functions --------*/
/** Get the Group property that contains the id properties for ID id. Set create_if_needed
* to create the Group property and attach it to id if it doesn't exist; otherwise
* the function will return NULL if there's no Group property attached to the ID.*/
-struct IDProperty *IDP_GetProperties(struct ID *id, int create_if_needed);
-struct IDProperty *IDP_CopyProperty(struct IDProperty *prop);
+struct IDProperty *IDP_GetProperties(struct ID *id, int create_if_needed)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
+struct IDProperty *IDP_CopyProperty(struct IDProperty *prop)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
-int IDP_EqualsProperties(struct IDProperty *prop1, struct IDProperty *prop2);
+int IDP_EqualsProperties(struct IDProperty *prop1, struct IDProperty *prop2)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+#endif
+;
/**
* Allocate a new ID.
@@ -190,7 +291,12 @@ int IDP_EqualsProperties(struct IDProperty *prop1, struct IDProperty *prop2);
* IDP_AddToGroup or MEM_freeN the property, doing anything else might result in
* a memory leak.
*/
-struct IDProperty *IDP_New(const int type, const IDPropertyTemplate *val, const char *name);
+struct IDProperty *IDP_New(const int type, const IDPropertyTemplate *val, const char *name)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
/** \note this will free all child properties of list arrays and groups!
* Also, note that this does NOT unlink anything! Plus it doesn't free
diff --git a/source/blender/blenkernel/BKE_image.h b/source/blender/blenkernel/BKE_image.h
index 909ed471081..5e5f58f73fe 100644
--- a/source/blender/blenkernel/BKE_image.h
+++ b/source/blender/blenkernel/BKE_image.h
@@ -46,6 +46,8 @@ struct Object;
struct ImageFormatData;
struct Main;
+#define IMA_MAX_SPACE 64
+
/* call from library */
void BKE_image_free(struct Image *me);
@@ -64,6 +66,7 @@ int BKE_imtype_is_movie(const char imtype);
int BKE_imtype_supports_zbuf(const char imtype);
int BKE_imtype_supports_compress(const char imtype);
int BKE_imtype_supports_quality(const char imtype);
+int BKE_imtype_requires_linear_float(const char imtype);
char BKE_imtype_valid_channels(const char imtype);
char BKE_imtype_valid_depths(const char imtype);
@@ -72,7 +75,7 @@ char BKE_imtype_from_arg(const char *arg);
void BKE_imformat_defaults(struct ImageFormatData *im_format);
void BKE_imbuf_to_image_format(struct ImageFormatData *im_format, const struct ImBuf *imbuf);
-struct anim *openanim(const char *name, int flags, int streamindex);
+struct anim *openanim(const char *name, int flags, int streamindex, char colorspace[IMA_MAX_SPACE]);
void BKE_image_de_interlace(struct Image *ima, int odd);
@@ -106,6 +109,12 @@ struct RenderResult;
#define IMA_TYPE_R_RESULT 4
#define IMA_TYPE_COMPOSITE 5
+enum {
+ IMA_GENTYPE_BLANK = 0,
+ IMA_GENTYPE_GRID = 1,
+ IMA_GENTYPE_GRID_COLOR = 2
+};
+
/* ima->ok */
#define IMA_OK 1
#define IMA_OK_LOADED 2
@@ -196,6 +205,10 @@ int BKE_image_scale(struct Image *image, int width, int height);
/* check if texture has alpha (depth=32) */
int BKE_image_has_alpha(struct Image *image);
+void BKE_image_get_size(struct Image *image, struct ImageUser *iuser, int *width, int *height);
+void BKE_image_get_size_fl(struct Image *image, struct ImageUser *iuser, float size[2]);
+void BKE_image_get_aspect(struct Image *image, float *aspx, float *aspy);
+
/* image_gen.c */
void BKE_image_buf_fill_color(unsigned char *rect, float *rect_float, int width, int height, const float color[4]);
void BKE_image_buf_fill_checker(unsigned char *rect, float *rect_float, int height, int width);
diff --git a/source/blender/blenkernel/BKE_key.h b/source/blender/blenkernel/BKE_key.h
index 1ad451b0937..01baf8feb2a 100644
--- a/source/blender/blenkernel/BKE_key.h
+++ b/source/blender/blenkernel/BKE_key.h
@@ -47,13 +47,13 @@ struct Mesh;
extern "C" {
#endif
-void BKE_key_free(struct Key *sc);
-void free_key_nolib(struct Key *key);
-struct Key *add_key(struct ID *id);
+void BKE_key_free(struct Key *sc);
+void BKE_key_free_nolib(struct Key *key);
+struct Key *BKE_key_add(struct ID *id);
struct Key *BKE_key_copy(struct Key *key);
-struct Key *copy_key_nolib(struct Key *key);
-void BKE_key_make_local(struct Key *key);
-void sort_keys(struct Key *key);
+struct Key *BKE_key_copy_nolib(struct Key *key);
+void BKE_key_make_local(struct Key *key);
+void BKE_key_sort(struct Key *key);
void key_curve_position_weights(float t, float data[4], int type);
void key_curve_tangent_weights(float t, float data[4], int type);
@@ -61,27 +61,29 @@ void key_curve_normal_weights(float t, float data[4], int type);
float *do_ob_key(struct Scene *scene, struct Object *ob);
-struct Key *ob_get_key(struct Object *ob);
-struct KeyBlock *add_keyblock(struct Key *key, const char *name);
-struct KeyBlock *add_keyblock_ctime(struct Key *key, const char *name, const short do_force);
-struct KeyBlock *ob_get_keyblock(struct Object *ob);
-struct KeyBlock *ob_get_reference_keyblock(struct Object *ob);
-struct KeyBlock *key_get_keyblock(struct Key *key, int index);
-struct KeyBlock *key_get_named_keyblock(struct Key *key, const char name[]);
-char *key_get_curValue_rnaPath(struct Key *key, struct KeyBlock *kb);
+struct Key *BKE_key_from_object(struct Object *ob);
+struct KeyBlock *BKE_keyblock_from_object(struct Object *ob);
+struct KeyBlock *BKE_keyblock_from_object_reference(struct Object *ob);
+
+struct KeyBlock *BKE_keyblock_add(struct Key *key, const char *name);
+struct KeyBlock *BKE_keyblock_add_ctime(struct Key *key, const char *name, const short do_force);
+struct KeyBlock *BKE_keyblock_from_key(struct Key *key, int index);
+struct KeyBlock *BKE_keyblock_find_name(struct Key *key, const char name[]);
+void BKE_keyblock_copy_settings(struct KeyBlock *kb_dst, const struct KeyBlock *kb_src);
+char *BKE_keyblock_curval_rnapath_get(struct Key *key, struct KeyBlock *kb);
// needed for the GE
-void do_rel_key(const int start, int end, const int tot, char *basispoin, struct Key *key, struct KeyBlock *actkb, const int mode);
+void BKE_key_evaluate_relative(const int start, int end, const int tot, char *basispoin, struct Key *key, struct KeyBlock *actkb, const int mode);
/* conversion functions */
-void key_to_mesh(struct KeyBlock *kb, struct Mesh *me);
-void mesh_to_key(struct Mesh *me, struct KeyBlock *kb);
-void key_to_latt(struct KeyBlock *kb, struct Lattice *lt);
-void latt_to_key(struct Lattice *lt, struct KeyBlock *kb);
-void key_to_curve(struct KeyBlock *kb, struct Curve *cu, struct ListBase *nurb);
-void curve_to_key(struct Curve *cu, struct KeyBlock *kb, struct ListBase *nurb);
-float (*key_to_vertcos(struct Object *ob, struct KeyBlock *kb))[3];
-void vertcos_to_key(struct Object *ob, struct KeyBlock *kb, float (*vertCos)[3]);
-void offset_to_key(struct Object *ob, struct KeyBlock *kb, float (*ofs)[3]);
+void BKE_key_convert_to_mesh(struct KeyBlock *kb, struct Mesh *me);
+void BKE_key_convert_from_mesh(struct Mesh *me, struct KeyBlock *kb);
+void BKE_key_convert_to_lattice(struct KeyBlock *kb, struct Lattice *lt);
+void BKE_key_convert_from_lattice(struct Lattice *lt, struct KeyBlock *kb);
+void BKE_key_convert_to_curve(struct KeyBlock *kb, struct Curve *cu, struct ListBase *nurb);
+void BKE_key_convert_from_curve(struct Curve *cu, struct KeyBlock *kb, struct ListBase *nurb);
+float (*BKE_key_convert_to_vertcos(struct Object *ob, struct KeyBlock *kb))[3];
+void BKE_key_convert_from_vertcos(struct Object *ob, struct KeyBlock *kb, float (*vertCos)[3]);
+void BKE_key_convert_from_offset(struct Object *ob, struct KeyBlock *kb, float (*ofs)[3]);
/* key.c */
extern int slurph_opt;
diff --git a/source/blender/blenkernel/BKE_lamp.h b/source/blender/blenkernel/BKE_lamp.h
index f9137e50d74..3acd4d1986e 100644
--- a/source/blender/blenkernel/BKE_lamp.h
+++ b/source/blender/blenkernel/BKE_lamp.h
@@ -38,9 +38,9 @@ extern "C" {
struct Lamp;
-void *BKE_lamp_add(const char *name);
-struct Lamp *BKE_lamp_copy(struct Lamp *la);
-struct Lamp *localize_lamp(struct Lamp *la);
+struct Lamp *BKE_lamp_add(const char *name) WARN_UNUSED;
+struct Lamp *BKE_lamp_copy(struct Lamp *la) WARN_UNUSED;
+struct Lamp *localize_lamp(struct Lamp *la) WARN_UNUSED;
void BKE_lamp_make_local(struct Lamp *la);
void BKE_lamp_free(struct Lamp *la);
diff --git a/source/blender/blenkernel/BKE_library.h b/source/blender/blenkernel/BKE_library.h
index 3248944dae8..91756448297 100644
--- a/source/blender/blenkernel/BKE_library.h
+++ b/source/blender/blenkernel/BKE_library.h
@@ -45,8 +45,18 @@ struct bContext;
struct PointerRNA;
struct PropertyRNA;
-void *BKE_libblock_alloc(struct ListBase *lb, short type, const char *name);
-void *BKE_libblock_copy(struct ID *id);
+void *BKE_libblock_alloc(struct ListBase *lb, short type, const char *name)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
+void *BKE_libblock_copy(struct ID *id)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
void BKE_libblock_copy_data(struct ID *id, const struct ID *id_from, const short do_action);
void BKE_id_lib_local_paths(struct Main *bmain, struct Library *lib, struct ID *id);
@@ -82,7 +92,12 @@ void name_uiprefix_id(char *name, struct ID *id);
void test_idbutton(char *name);
void text_idbutton(struct ID *id, char *text);
void BKE_library_make_local(struct Main *bmain, struct Library *lib, int untagged_only);
-struct ID *BKE_libblock_find_name(const short type, const char *name);
+struct ID *BKE_libblock_find_name(const short type, const char *name)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
void clear_id_newpoins(void);
void IDnames_to_pupstring(const char **str, const char *title, const char *extraops,
diff --git a/source/blender/blenkernel/BKE_main.h b/source/blender/blenkernel/BKE_main.h
index 3074e1c0e63..cfdcf1436bf 100644
--- a/source/blender/blenkernel/BKE_main.h
+++ b/source/blender/blenkernel/BKE_main.h
@@ -68,7 +68,7 @@ typedef struct Main {
ListBase latt;
ListBase lamp;
ListBase camera;
- ListBase ipo; // XXX depreceated
+ ListBase ipo; // XXX deprecated
ListBase key;
ListBase world;
ListBase screen;
diff --git a/source/blender/blenkernel/BKE_mask.h b/source/blender/blenkernel/BKE_mask.h
index ee7c13ba7cb..cc15ceecbac 100644
--- a/source/blender/blenkernel/BKE_mask.h
+++ b/source/blender/blenkernel/BKE_mask.h
@@ -19,7 +19,8 @@
* All rights reserved.
*
* Contributor(s): Blender Foundation,
- * Sergey Sharybin
+ * Sergey Sharybin,
+ * Campbell Barton
*
* ***** END GPL LICENSE BLOCK *****
*/
@@ -27,6 +28,8 @@
#ifndef __BKE_MASK_H__
#define __BKE_MASK_H__
+struct ImageUser;
+struct Image;
struct ListBase;
struct Main;
struct Mask;
@@ -63,19 +66,12 @@ void BKE_mask_layer_copy_list(struct ListBase *masklayers_new, struct ListBase *
/* splines */
struct MaskSpline *BKE_mask_spline_add(struct MaskLayer *masklay);
-
-float (*BKE_mask_spline_differentiate(struct MaskSpline *spline, int *tot_diff_point))[2];
-float (*BKE_mask_spline_feather_differentiated_points(struct MaskSpline *spline, int *tot_feather_point))[2];
-
-float (*BKE_mask_spline_differentiate_with_resolution(struct MaskSpline *spline, int width, int height, int *tot_diff_point))[2];
-float (*BKE_mask_spline_feather_differentiated_points_with_resolution(struct MaskSpline *spline,
- int width, int height, int *tot_feather_point))[2];
-
-float (*BKE_mask_spline_feather_points(struct MaskSpline *spline, int *tot_feather_point))[2];
-
void BKE_mask_point_direction_switch(struct MaskSplinePoint *point);
void BKE_mask_spline_direction_switch(struct MaskLayer *masklay, struct MaskSpline *spline);
+struct BezTriple *BKE_mask_spline_point_next_bezt(struct MaskSpline *spline, struct MaskSplinePoint *points_array,
+ struct MaskSplinePoint *point);
+
typedef enum {
MASK_PROJ_NEG = -1,
MASK_PROJ_ANY = 0,
@@ -90,17 +86,6 @@ void BKE_mask_point_handle(struct MaskSplinePoint *point, float handle[2]);
void BKE_mask_point_set_handle(struct MaskSplinePoint *point, float loc[2], int keep_direction,
float orig_handle[2], float orig_vec[3][3]);
-float *BKE_mask_point_segment_diff(struct MaskSpline *spline, struct MaskSplinePoint *point, int *tot_diff_point);
-float *BKE_mask_point_segment_feather_diff(struct MaskSpline *spline, struct MaskSplinePoint *point,
- int *tot_feather_point);
-
-float *BKE_mask_point_segment_diff_with_resolution(struct MaskSpline *spline, struct MaskSplinePoint *point,
- int width, int height, int *tot_diff_point);
-
-float *BKE_mask_point_segment_feather_diff_with_resolution(struct MaskSpline *spline, struct MaskSplinePoint *point,
- int width, int height,
- int *tot_feather_point);
-
void BKE_mask_point_segment_co(struct MaskSpline *spline, struct MaskSplinePoint *point, float u, float co[2]);
void BKE_mask_point_normal(struct MaskSpline *spline, struct MaskSplinePoint *point,
float u, float n[2]);
@@ -114,12 +99,18 @@ void BKE_mask_point_select_set_handle(struct MaskSplinePoint *point, const short
/* general */
struct Mask *BKE_mask_new(const char *name);
+struct Mask *BKE_mask_copy_nolib(struct Mask *mask);
+struct Mask *BKE_mask_copy(struct Mask *mask);
-void BKE_mask_free(struct Mask *mask);
-void BKE_mask_unlink(struct Main *bmain, struct Mask *mask);
+void BKE_mask_free_nolib(struct Mask *mask);
+void BKE_mask_free(struct Main *bmain, struct Mask *mask);
+void BKE_mask_coord_from_frame(float r_co[2], const float co[2], const float frame_size[2]);
void BKE_mask_coord_from_movieclip(struct MovieClip *clip, struct MovieClipUser *user, float r_co[2], const float co[2]);
+void BKE_mask_coord_from_image(struct Image *image, struct ImageUser *iuser, float r_co[2], const float co[2]);
+void BKE_mask_coord_to_frame(float r_co[2], const float co[2], const float frame_size[2]);
void BKE_mask_coord_to_movieclip(struct MovieClip *clip, struct MovieClipUser *user, float r_co[2], const float co[2]);
+void BKE_mask_coord_to_image(struct Image *image, struct ImageUser *iuser, float r_co[2], const float co[2]);
/* parenting */
@@ -140,7 +131,7 @@ void BKE_mask_get_handle_point_adjacent(struct MaskSpline *spline, struct MaskSp
void BKE_mask_layer_calc_handles(struct MaskLayer *masklay);
void BKE_mask_layer_calc_handles_deform(struct MaskLayer *masklay);
void BKE_mask_calc_handles(struct Mask *mask);
-void BKE_mask_calc_handles_deform(struct Mask *mask);
+void BKE_mask_update_deform(struct Mask *mask);
void BKE_mask_spline_ensure_deform(struct MaskSpline *spline);
/* animation */
@@ -166,28 +157,17 @@ int BKE_mask_layer_shape_spline_from_index(struct MaskLayer *masklay, int index,
struct MaskSpline **r_masklay_shape, int *r_index);
int BKE_mask_layer_shape_spline_to_index(struct MaskLayer *masklay, struct MaskSpline *spline);
-int BKE_mask_layer_shape_spline_index(struct MaskLayer *masklay, int index,
- struct MaskSpline **r_masklay_shape, int *r_index);
void BKE_mask_layer_shape_changed_add(struct MaskLayer *masklay, int index,
int do_init, int do_init_interpolate);
void BKE_mask_layer_shape_changed_remove(struct MaskLayer *masklay, int index, int count);
-/* rasterization */
int BKE_mask_get_duration(struct Mask *mask);
-void BKE_mask_rasterize_layers(struct ListBase *masklayers, int width, int height, float *buffer,
- const short do_aspect_correct, const short do_mask_aa,
- const short do_feather);
-
-void BKE_mask_rasterize(struct Mask *mask, int width, int height, float *buffer,
- const short do_aspect_correct, const short do_mask_aa,
- const short do_feather);
-
-#define MASKPOINT_ISSEL_ANY(p) ( ((p)->bezt.f1 | (p)->bezt.f2 | (p)->bezt.f2) & SELECT)
+#define MASKPOINT_ISSEL_ANY(p) ( ((p)->bezt.f1 | (p)->bezt.f2 | (p)->bezt.f3) & SELECT)
#define MASKPOINT_ISSEL_KNOT(p) ( (p)->bezt.f2 & SELECT)
-#define MASKPOINT_ISSEL_HANDLE_ONLY(p) ( (((p)->bezt.f1 | (p)->bezt.f2) & SELECT) && (((p)->bezt.f2 & SELECT) == 0) )
-#define MASKPOINT_ISSEL_HANDLE(p) ( (((p)->bezt.f1 | (p)->bezt.f2) & SELECT) )
+#define MASKPOINT_ISSEL_HANDLE_ONLY(p) ( (((p)->bezt.f1 | (p)->bezt.f3) & SELECT) && (((p)->bezt.f2 & SELECT) == 0) )
+#define MASKPOINT_ISSEL_HANDLE(p) ( (((p)->bezt.f1 | (p)->bezt.f3) & SELECT) )
#define MASKPOINT_SEL_ALL(p) { (p)->bezt.f1 |= SELECT; (p)->bezt.f2 |= SELECT; (p)->bezt.f3 |= SELECT; } (void)0
#define MASKPOINT_DESEL_ALL(p) { (p)->bezt.f1 &= ~SELECT; (p)->bezt.f2 &= ~SELECT; (p)->bezt.f3 &= ~SELECT; } (void)0
@@ -196,4 +176,55 @@ void BKE_mask_rasterize(struct Mask *mask, int width, int height, float *buffer,
#define MASKPOINT_SEL_HANDLE(p) { (p)->bezt.f1 |= SELECT; (p)->bezt.f3 |= SELECT; } (void)0
#define MASKPOINT_DESEL_HANDLE(p) { (p)->bezt.f1 &= ~SELECT; (p)->bezt.f3 &= ~SELECT; } (void)0
-#endif
+#define MASK_RESOL_MAX 128
+
+
+/* mask_evaluate.c */
+unsigned int BKE_mask_spline_resolution(struct MaskSpline *spline, int width, int height);
+unsigned int BKE_mask_spline_feather_resolution(struct MaskSpline *spline, int width, int height);
+int BKE_mask_spline_differentiate_calc_total(const struct MaskSpline *spline, const unsigned int resol);
+
+float (*BKE_mask_spline_differentiate(struct MaskSpline *spline, int *tot_diff_point))[2];
+float (*BKE_mask_spline_feather_differentiated_points(struct MaskSpline *spline, int *tot_feather_point))[2];
+
+float (*BKE_mask_spline_differentiate_with_resolution_ex(struct MaskSpline *spline, int *tot_diff_point,
+ const unsigned int resol))[2];
+void BKE_mask_spline_feather_collapse_inner_loops(struct MaskSpline *spline, float (*feather_points)[2], const int tot_feather_point);
+float (*BKE_mask_spline_differentiate_with_resolution(struct MaskSpline *spline, int width, int height, int *tot_diff_point))[2];
+float (*BKE_mask_spline_feather_differentiated_points_with_resolution_ex(struct MaskSpline *spline, int *tot_feather_point,
+ const unsigned int resol, const int do_feather_isect))[2];
+float (*BKE_mask_spline_feather_differentiated_points_with_resolution(struct MaskSpline *spline, int width, int height,
+ int *tot_feather_point, const int do_feather_isect))[2];
+/* *** mask point functions which involve evaluation *** */
+float (*BKE_mask_spline_feather_points(struct MaskSpline *spline, int *tot_feather_point))[2];
+
+float *BKE_mask_point_segment_diff(struct MaskSpline *spline, struct MaskSplinePoint *point,
+ unsigned int *tot_diff_point);
+float *BKE_mask_point_segment_feather_diff(struct MaskSpline *spline, struct MaskSplinePoint *point,
+ unsigned int *tot_feather_point);
+
+float *BKE_mask_point_segment_diff_with_resolution(struct MaskSpline *spline, struct MaskSplinePoint *point,
+ int width, int height,
+ unsigned int *tot_diff_point);
+
+float *BKE_mask_point_segment_feather_diff_with_resolution(struct MaskSpline *spline, struct MaskSplinePoint *point,
+ int width, int height,
+ unsigned int *tot_feather_point);
+
+/* mask_rasterize.c */
+struct MaskRasterHandle;
+typedef struct MaskRasterHandle MaskRasterHandle;
+
+MaskRasterHandle *BKE_maskrasterize_handle_new(void);
+void BKE_maskrasterize_handle_free(MaskRasterHandle *mr_handle);
+void BKE_maskrasterize_handle_init(MaskRasterHandle *mr_handle, struct Mask *mask,
+ const int width, const int height,
+ const short do_aspect_correct, const short do_mask_aa,
+ const short do_feather);
+float BKE_maskrasterize_handle_sample(MaskRasterHandle *mr_handle, const float xy[2]);
+
+void BKE_maskrasterize_buffer(MaskRasterHandle *mr_handle,
+ const unsigned int width, const unsigned int height,
+ float *buffer);
+
+#endif /* __BKE_MASK_H__ */
diff --git a/source/blender/blenkernel/BKE_material.h b/source/blender/blenkernel/BKE_material.h
index 2407330a237..dd1b1a7752b 100644
--- a/source/blender/blenkernel/BKE_material.h
+++ b/source/blender/blenkernel/BKE_material.h
@@ -48,6 +48,7 @@ struct Scene;
void init_def_material(void);
void BKE_material_free(struct Material *sc);
+void BKE_material_free_ex(struct Material *ma, int do_id_user);
void test_object_materials(struct ID *id);
void resize_object_material(struct Object *ob, const short totcol);
void init_material(struct Material *ma);
@@ -67,10 +68,16 @@ short *give_totcolp(struct Object *ob);
struct Material ***give_matarar_id(struct ID *id); /* same but for ID's */
short *give_totcolp_id(struct ID *id);
+enum {
+ BKE_MAT_ASSIGN_USERPREF,
+ BKE_MAT_ASSIGN_OBDATA,
+ BKE_MAT_ASSIGN_OBJECT
+};
+
struct Material *give_current_material(struct Object *ob, short act);
struct ID *material_from(struct Object *ob, short act);
void assign_material_id(struct ID *id, struct Material *ma, short act);
-void assign_material(struct Object *ob, struct Material *ma, short act);
+void assign_material(struct Object *ob, struct Material *ma, short act, int assign_type);
void assign_matarar(struct Object *ob, struct Material ***matar, short totcol);
short find_material_index(struct Object *ob, struct Material *ma);
diff --git a/source/blender/blenkernel/BKE_mball.h b/source/blender/blenkernel/BKE_mball.h
index 356f2c8901c..7a0eea1b009 100644
--- a/source/blender/blenkernel/BKE_mball.h
+++ b/source/blender/blenkernel/BKE_mball.h
@@ -57,10 +57,14 @@ float *BKE_mball_make_orco(struct Object *ob, struct ListBase *dispbase);
void BKE_mball_properties_copy(struct Scene *scene, struct Object *active_object);
int BKE_mball_minmax(struct MetaBall *mb, float min[3], float max[3]);
-int BKE_mball_center_median(struct MetaBall *mb, float cent[3]);
-int BKE_mball_center_bounds(struct MetaBall *mb, float cent[3]);
-void BKE_mball_translate(struct MetaBall *mb, float offset[3]);
+int BKE_mball_center_median(struct MetaBall *mb, float r_cent[3]);
+int BKE_mball_center_bounds(struct MetaBall *mb, float r_cent[3]);
+void BKE_mball_translate(struct MetaBall *mb, const float offset[3]);
struct MetaElem *BKE_mball_element_add(struct MetaBall *mb, const int type);
+void BKE_mball_select_all(struct MetaBall *mb);
+void BKE_mball_deselect_all(struct MetaBall *mb);
+void BKE_mball_select_swap(struct MetaBall *mb);
+
#endif
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index abd0c4d96db..c14085a559a 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -88,8 +88,8 @@ int BKE_mesh_mpoly_to_mface(struct CustomData *fdata, struct CustomData *ldata,
struct CustomData *pdata, int totface, int totloop, int totpoly);
/*calculates a face normal.*/
-void mesh_calc_poly_normal(struct MPoly *mpoly, struct MLoop *loopstart,
- struct MVert *mvarray, float no[3]);
+void BKE_mesh_calc_poly_normal(struct MPoly *mpoly, struct MLoop *loopstart,
+ struct MVert *mvarray, float no[3]);
void BKE_mesh_calc_poly_normal_coords(struct MPoly *mpoly, struct MLoop *loopstart,
const float (*vertex_coords)[3], float no[3]);
@@ -98,7 +98,7 @@ void BKE_mesh_calc_poly_center(struct MPoly *mpoly, struct MLoop *loopstart,
struct MVert *mvarray, float cent[3]);
float BKE_mesh_calc_poly_area(struct MPoly *mpoly, struct MLoop *loopstart,
- struct MVert *mvarray, float polynormal[3]);
+ struct MVert *mvarray, const float polynormal[3]);
/* Find the index of the loop in 'poly' which references vertex,
* returns -1 if not found */
@@ -141,10 +141,15 @@ void BKE_mesh_from_metaball(struct ListBase *lb, struct Mesh *me);
int BKE_mesh_nurbs_to_mdata(struct Object *ob, struct MVert **allvert, int *totvert,
struct MEdge **alledge, int *totedge, struct MLoop **allloop, struct MPoly **allpoly,
int *totloop, int *totpoly);
-int BKE_mesh_nurbs_to_mdata_customdb(struct Object *ob, struct ListBase *dispbase, struct MVert **allvert, int *_totvert,
+int BKE_mesh_nurbs_displist_to_mdata(struct Object *ob, struct ListBase *dispbase, struct MVert **allvert, int *_totvert,
struct MEdge **alledge, int *_totedge, struct MLoop **allloop, struct MPoly **allpoly,
- int *_totloop, int *_totpoly);
+ int *_totloop, int *_totpoly, int **orco_index_ptr);
+void BKE_mesh_nurbs_to_mdata_orco(struct MPoly *mpoly, int totpoly,
+ struct MLoop *mloops, struct MLoopUV *mloopuvs,
+ float (*orco)[3], int (*orco_index)[4]);
void BKE_mesh_from_nurbs(struct Object *ob);
+void BKE_mesh_from_nurbs_displist(struct Object *ob, struct ListBase *dispbase,
+ int **orco_index_ptr);
void BKE_mesh_from_curve(struct Scene *scene, struct Object *ob);
void free_dverts(struct MDeformVert *dvert, int totvert);
void copy_dverts(struct MDeformVert *dst, struct MDeformVert *src, int totvert); /* __NLA */
@@ -156,8 +161,8 @@ void BKE_mesh_convert_mfaces_to_mpolys_ex(struct ID *id,
struct CustomData *fdata, struct CustomData *ldata, struct CustomData *pdata,
int totedge_i, int totface_i, int totloop_i, int totpoly_i,
struct MEdge *medge, struct MFace *mface,
- int *totloop_r, int *totpoly_r,
- struct MLoop **mloop_r, struct MPoly **mpoly_r);
+ int *totloop_r, int *totpoly_r,
+ struct MLoop **mloop_r, struct MPoly **mpoly_r);
void BKE_mesh_calc_normals_tessface(struct MVert *mverts, int numVerts, struct MFace *mfaces, int numFaces, float (*faceNors_r)[3]);
diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h
index 551a31509a3..3b675f3b620 100644
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@ -345,6 +345,7 @@ void modifiers_clearErrors(struct Object *ob);
int modifiers_getCageIndex(struct Scene *scene, struct Object *ob,
int *lastPossibleCageIndex_r, int virtual_);
+int modifiers_isModifierEnabled(struct Object *ob, int modifierType);
int modifiers_isSoftbodyEnabled(struct Object *ob);
int modifiers_isClothEnabled(struct Object *ob);
int modifiers_isParticleEnabled(struct Object *ob);
diff --git a/source/blender/blenkernel/BKE_movieclip.h b/source/blender/blenkernel/BKE_movieclip.h
index 739b63ca174..25d2678ea47 100644
--- a/source/blender/blenkernel/BKE_movieclip.h
+++ b/source/blender/blenkernel/BKE_movieclip.h
@@ -51,9 +51,10 @@ struct ImBuf *BKE_movieclip_get_postprocessed_ibuf(struct MovieClip *clip, struc
struct ImBuf *BKE_movieclip_get_stable_ibuf(struct MovieClip *clip, struct MovieClipUser *user, float loc[2], float *scale, float *angle, int postprocess_flag);
struct ImBuf *BKE_movieclip_get_ibuf_flag(struct MovieClip *clip, struct MovieClipUser *user, int flag, int cache_flag);
void BKE_movieclip_get_size(struct MovieClip *clip, struct MovieClipUser *user, int *width, int *height);
-int BKE_movieclip_get_duration(struct MovieClip *clip);
-void BKE_movieclip_aspect(struct MovieClip *clip, float *aspx, float *aspy);
-int BKE_movieclip_has_frame(struct MovieClip *clip, struct MovieClipUser *user);
+void BKE_movieclip_get_size_fl(struct MovieClip *clip, struct MovieClipUser *user, float size[2]);
+int BKE_movieclip_get_duration(struct MovieClip *clip);
+void BKE_movieclip_get_aspect(struct MovieClip *clip, float *aspx, float *aspy);
+int BKE_movieclip_has_frame(struct MovieClip *clip, struct MovieClipUser *user);
void BKE_movieclip_user_set_frame(struct MovieClipUser *user, int framenr);
void BKE_movieclip_update_scopes(struct MovieClip *clip, struct MovieClipUser *user, struct MovieClipScopes *scopes);
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index b3f17c06d5c..acd6f120f93 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -64,6 +64,8 @@ struct Tex;
struct SpaceNode;
struct ARegion;
struct Object;
+struct ColorManagedViewSettings;
+struct ColorManagedDisplaySettings;
/* ************** NODE TYPE DEFINITIONS ***** */
@@ -88,8 +90,8 @@ typedef struct bNodeSocketTemplate {
} bNodeSocketTemplate;
typedef void (*NodeSocketButtonFunction)(const struct bContext *C, struct uiBlock *block,
- struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock,
- const char *name, int x, int y, int width);
+ struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock,
+ const char *name, int x, int y, int width);
/** Defines a socket type.
* Defines the appearance and behavior of a socket in the UI.
@@ -146,7 +148,7 @@ typedef struct bNodeType {
/// Additional parameters in the side panel.
void (*uifuncbut)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr);
/// Additional drawing on backdrop.
- void (*uibackdropfunc)(struct SpaceNode* snode, struct ImBuf* backdrop, struct bNode* node, int x, int y);
+ void (*uibackdropfunc)(struct SpaceNode *snode, struct ImBuf *backdrop, struct bNode *node, int x, int y);
/// Draw a node socket. Default draws the input value button.
NodeSocketButtonFunction drawinputfunc;
@@ -301,36 +303,44 @@ struct bNodeType *ntreeGetNodeType(struct bNodeTree *ntree);
struct bNodeSocketType *ntreeGetSocketType(int type);
struct bNodeTree *ntreeAddTree(const char *name, int type, int nodetype);
-void ntreeInitTypes(struct bNodeTree *ntree);
+void ntreeInitTypes(struct bNodeTree *ntree);
-void ntreeFreeTree(struct bNodeTree *ntree);
+/* copy/free funcs, need to manage ID users */
+void ntreeFreeTree_ex(struct bNodeTree *ntree, const short do_id_user);
+void ntreeFreeTree(struct bNodeTree *ntree);
+struct bNodeTree *ntreeCopyTree_ex(struct bNodeTree *ntree, const short do_id_user);
struct bNodeTree *ntreeCopyTree(struct bNodeTree *ntree);
-void ntreeSwitchID(struct bNodeTree *ntree, struct ID *sce_from, struct ID *sce_to);
-void ntreeMakeLocal(struct bNodeTree *ntree);
-int ntreeHasType(struct bNodeTree *ntree, int type);
+void ntreeSwitchID_ex(struct bNodeTree *ntree, struct ID *sce_from, struct ID *sce_to, const short do_id_user);
+void ntreeSwitchID(struct bNodeTree *ntree, struct ID *sce_from, struct ID *sce_to);
+/* node->id user count */
+void ntreeUserIncrefID(struct bNodeTree *ntree);
+void ntreeUserDecrefID(struct bNodeTree *ntree);
-void ntreeUpdateTree(struct bNodeTree *ntree);
+
+void ntreeMakeLocal(struct bNodeTree *ntree);
+int ntreeHasType(struct bNodeTree *ntree, int type);
+void ntreeUpdateTree(struct bNodeTree *ntree);
/* XXX Currently each tree update call does call to ntreeVerifyNodes too.
* Some day this should be replaced by a decent depsgraph automatism!
*/
-void ntreeVerifyNodes(struct Main *main, struct ID *id);
+void ntreeVerifyNodes(struct Main *main, struct ID *id);
-void ntreeGetDependencyList(struct bNodeTree *ntree, struct bNode ***deplist, int *totnodes);
+void ntreeGetDependencyList(struct bNodeTree *ntree, struct bNode ***deplist, int *totnodes);
/* XXX old trees handle output flags automatically based on special output node types and last active selection.
* new tree types have a per-output socket flag to indicate the final output to use explicitly.
*/
-void ntreeSetOutput(struct bNodeTree *ntree);
-void ntreeInitPreview(struct bNodeTree *, int xsize, int ysize);
-void ntreeClearPreview(struct bNodeTree *ntree);
+void ntreeSetOutput(struct bNodeTree *ntree);
+void ntreeInitPreview(struct bNodeTree *, int xsize, int ysize);
+void ntreeClearPreview(struct bNodeTree *ntree);
-void ntreeFreeCache(struct bNodeTree *ntree);
+void ntreeFreeCache(struct bNodeTree *ntree);
-int ntreeNodeExists(struct bNodeTree *ntree, struct bNode *testnode);
-int ntreeOutputExists(struct bNode *node, struct bNodeSocket *testsock);
+int ntreeNodeExists(struct bNodeTree *ntree, struct bNode *testnode);
+int ntreeOutputExists(struct bNode *node, struct bNodeSocket *testsock);
struct bNodeTree *ntreeLocalize(struct bNodeTree *ntree);
-void ntreeLocalSync(struct bNodeTree *localtree, struct bNodeTree *ntree);
-void ntreeLocalMerge(struct bNodeTree *localtree, struct bNodeTree *ntree);
+void ntreeLocalSync(struct bNodeTree *localtree, struct bNodeTree *ntree);
+void ntreeLocalMerge(struct bNodeTree *localtree, struct bNodeTree *ntree);
/* ************** GENERIC API, NODES *************** */
@@ -339,98 +349,109 @@ struct bNodeSocket *nodeInsertSocket(struct bNodeTree *ntree, struct bNode *node
void nodeRemoveSocket(struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock);
void nodeRemoveAllSockets(struct bNodeTree *ntree, struct bNode *node);
-void nodeAddToPreview(struct bNode *node, float col[4], int x, int y, int do_manage);
+void nodeAddToPreview(struct bNode *node, float col[4], int x, int y, int do_manage);
struct bNode *nodeAddNode(struct bNodeTree *ntree, struct bNodeTemplate *ntemp);
-void nodeUnlinkNode(struct bNodeTree *ntree, struct bNode *node);
-void nodeUniqueName(struct bNodeTree *ntree, struct bNode *node);
+void nodeUnlinkNode(struct bNodeTree *ntree, struct bNode *node);
+void nodeUniqueName(struct bNodeTree *ntree, struct bNode *node);
-void nodeRegisterType(struct bNodeTreeType *ttype, struct bNodeType *ntype);
-void nodeMakeDynamicType(struct bNode *node);
-int nodeDynamicUnlinkText(struct ID *txtid);
+void nodeRegisterType(struct bNodeTreeType *ttype, struct bNodeType *ntype);
+void nodeMakeDynamicType(struct bNode *node);
+int nodeDynamicUnlinkText(struct ID *txtid);
-void nodeFreeNode(struct bNodeTree *ntree, struct bNode *node);
+void nodeFreeNode(struct bNodeTree *ntree, struct bNode *node);
struct bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node);
struct bNodeLink *nodeAddLink(struct bNodeTree *ntree, struct bNode *fromnode, struct bNodeSocket *fromsock, struct bNode *tonode, struct bNodeSocket *tosock);
-void nodeRemLink(struct bNodeTree *ntree, struct bNodeLink *link);
-void nodeRemSocketLinks(struct bNodeTree *ntree, struct bNodeSocket *sock);
-void nodeInternalRelink(struct bNodeTree *ntree, struct bNode *node);
+void nodeRemLink(struct bNodeTree *ntree, struct bNodeLink *link);
+void nodeRemSocketLinks(struct bNodeTree *ntree, struct bNodeSocket *sock);
+void nodeInternalRelink(struct bNodeTree *ntree, struct bNode *node);
-void nodeToView(struct bNode *node, float x, float y, float *rx, float *ry);
-void nodeFromView(struct bNode *node, float x, float y, float *rx, float *ry);
-void nodeAttachNode(struct bNode *node, struct bNode *parent);
-void nodeDetachNode(struct bNode *node);
+void nodeToView(struct bNode *node, float x, float y, float *rx, float *ry);
+void nodeFromView(struct bNode *node, float x, float y, float *rx, float *ry);
+int nodeAttachNodeCheck(struct bNode *node, struct bNode *parent);
+void nodeAttachNode(struct bNode *node, struct bNode *parent);
+void nodeDetachNode(struct bNode *node);
-struct bNode *nodeFindNodebyName(struct bNodeTree *ntree, const char *name);
-int nodeFindNode(struct bNodeTree *ntree, struct bNodeSocket *sock, struct bNode **nodep, int *sockindex, int *in_out);
+struct bNode *nodeFindNodebyName(struct bNodeTree *ntree, const char *name);
+int nodeFindNode(struct bNodeTree *ntree, struct bNodeSocket *sock, struct bNode **nodep, int *sockindex, int *in_out);
struct bNodeLink *nodeFindLink(struct bNodeTree *ntree, struct bNodeSocket *from, struct bNodeSocket *to);
-int nodeCountSocketLinks(struct bNodeTree *ntree, struct bNodeSocket *sock);
-
-void nodeSetActive(struct bNodeTree *ntree, struct bNode *node);
-struct bNode *nodeGetActive(struct bNodeTree *ntree);
-struct bNode *nodeGetActiveID(struct bNodeTree *ntree, short idtype);
-int nodeSetActiveID(struct bNodeTree *ntree, short idtype, struct ID *id);
-void nodeClearActive(struct bNodeTree *ntree);
-void nodeClearActiveID(struct bNodeTree *ntree, short idtype);
-struct bNode *nodeGetActiveTexture(struct bNodeTree *ntree);
-
-void nodeUpdate(struct bNodeTree *ntree, struct bNode *node);
-int nodeUpdateID(struct bNodeTree *ntree, struct ID *id);
-
-void nodeFreePreview(struct bNode *node);
-
-int nodeSocketIsHidden(struct bNodeSocket *sock);
-void nodeSocketSetType(struct bNodeSocket *sock, int type);
+int nodeCountSocketLinks(struct bNodeTree *ntree, struct bNodeSocket *sock);
+
+void nodeSetActive(struct bNodeTree *ntree, struct bNode *node);
+struct bNode *nodeGetActive(struct bNodeTree *ntree);
+struct bNode *nodeGetActiveID(struct bNodeTree *ntree, short idtype);
+int nodeSetActiveID(struct bNodeTree *ntree, short idtype, struct ID *id);
+void nodeClearActive(struct bNodeTree *ntree);
+void nodeClearActiveID(struct bNodeTree *ntree, short idtype);
+struct bNode *nodeGetActiveTexture(struct bNodeTree *ntree);
+
+void nodeUpdate(struct bNodeTree *ntree, struct bNode *node);
+int nodeUpdateID(struct bNodeTree *ntree, struct ID *id);
+
+void nodeFreePreview(struct bNode *node);
+
+int nodeSocketIsHidden(struct bNodeSocket *sock);
+void nodeSocketSetType(struct bNodeSocket *sock, int type);
+
+/* Node Clipboard */
+void BKE_node_clipboard_init(struct bNodeTree *ntree);
+void BKE_node_clipboard_clear(void);
+int BKE_node_clipboard_validate(void);
+void BKE_node_clipboard_add_node(struct bNode *node);
+void BKE_node_clipboard_add_link(struct bNodeLink *link);
+const struct ListBase *BKE_node_clipboard_get_nodes(void);
+const struct ListBase *BKE_node_clipboard_get_links(void);
+int BKE_node_clipboard_get_type(void);
/* ************** NODE TYPE ACCESS *************** */
struct bNodeTemplate nodeMakeTemplate(struct bNode *node);
-int nodeValid(struct bNodeTree *ntree, struct bNodeTemplate *ntemp);
-const char* nodeLabel(struct bNode *node);
+int nodeValid(struct bNodeTree *ntree, struct bNodeTemplate *ntemp);
+const char *nodeLabel(struct bNode *node);
struct bNodeTree *nodeGroupEditGet(struct bNode *node);
struct bNodeTree *nodeGroupEditSet(struct bNode *node, int edit);
-void nodeGroupEditClear(struct bNode *node);
+void nodeGroupEditClear(struct bNode *node);
/* Init a new node type struct with default values and callbacks */
-void node_type_base(struct bNodeTreeType *ttype, struct bNodeType *ntype, int type,
+void node_type_base(struct bNodeTreeType *ttype, struct bNodeType *ntype, int type,
const char *name, short nclass, short flag);
-void node_type_socket_templates(struct bNodeType *ntype, struct bNodeSocketTemplate *inputs, struct bNodeSocketTemplate *outputs);
-void node_type_size(struct bNodeType *ntype, int width, int minwidth, int maxwidth);
-void node_type_init(struct bNodeType *ntype, void (*initfunc)(struct bNodeTree *ntree, struct bNode *node, struct bNodeTemplate *ntemp));
-void node_type_valid(struct bNodeType *ntype, int (*validfunc)(struct bNodeTree *ntree, struct bNodeTemplate *ntemp));
-void node_type_storage(struct bNodeType *ntype,
- const char *storagename,
- void (*freestoragefunc)(struct bNode *),
- void (*copystoragefunc)(struct bNode *, struct bNode *));
-void node_type_label(struct bNodeType *ntype, const char *(*labelfunc)(struct bNode *));
-void node_type_template(struct bNodeType *ntype, struct bNodeTemplate (*templatefunc)(struct bNode *));
-void node_type_update(struct bNodeType *ntype,
- void (*updatefunc)(struct bNodeTree *ntree, struct bNode *node),
- void (*verifyfunc)(struct bNodeTree *ntree, struct bNode *node, struct ID *id));
-void node_type_tree(struct bNodeType *ntype,
- void (*inittreefunc)(struct bNodeTree *),
- void (*updatetreefunc)(struct bNodeTree *));
-void node_type_group_edit(struct bNodeType *ntype,
- struct bNodeTree *(*group_edit_get)(struct bNode *node),
- struct bNodeTree *(*group_edit_set)(struct bNode *node, int edit),
- void (*group_edit_clear)(struct bNode *node));
-
-void node_type_exec(struct bNodeType *ntype, void (*execfunc)(void *data, struct bNode *, struct bNodeStack **,
+void node_type_socket_templates(struct bNodeType *ntype, struct bNodeSocketTemplate *inputs, struct bNodeSocketTemplate *outputs);
+void node_type_size(struct bNodeType *ntype, int width, int minwidth, int maxwidth);
+void node_type_init(struct bNodeType *ntype, void (*initfunc)(struct bNodeTree *ntree, struct bNode *node, struct bNodeTemplate *ntemp));
+void node_type_valid(struct bNodeType *ntype, int (*validfunc)(struct bNodeTree *ntree, struct bNodeTemplate *ntemp));
+void node_type_storage(struct bNodeType *ntype,
+ const char *storagename,
+ void (*freestoragefunc)(struct bNode *),
+ void (*copystoragefunc)(struct bNode *, struct bNode *));
+void node_type_label(struct bNodeType *ntype, const char *(*labelfunc)(struct bNode *));
+void node_type_template(struct bNodeType *ntype, struct bNodeTemplate (*templatefunc)(struct bNode *));
+void node_type_update(struct bNodeType *ntype,
+ void (*updatefunc)(struct bNodeTree *ntree, struct bNode *node),
+ void (*verifyfunc)(struct bNodeTree *ntree, struct bNode *node, struct ID *id));
+void node_type_tree(struct bNodeType *ntype,
+ void (*inittreefunc)(struct bNodeTree *),
+ void (*updatetreefunc)(struct bNodeTree *));
+void node_type_group_edit(struct bNodeType *ntype,
+ struct bNodeTree *(*group_edit_get)(struct bNode *node),
+ struct bNodeTree *(*group_edit_set)(struct bNode *node, int edit),
+ void (*group_edit_clear)(struct bNode *node));
+
+void node_type_exec(struct bNodeType *ntype, void (*execfunc)(void *data, struct bNode *, struct bNodeStack **,
struct bNodeStack **));
-void node_type_exec_new(struct bNodeType *ntype,
- void *(*initexecfunc)(struct bNode *node),
- void (*freeexecfunc)(struct bNode *node, void *nodedata),
- void (*newexecfunc)(void *data, int thread, struct bNode *, void *nodedata,
- struct bNodeStack **, struct bNodeStack **));
-void node_type_internal_connect(struct bNodeType *ntype, ListBase (*internal_connect)(struct bNodeTree *, struct bNode *));
-void node_type_gpu(struct bNodeType *ntype, int (*gpufunc)(struct GPUMaterial *mat, struct bNode *node,
+void node_type_exec_new(struct bNodeType *ntype,
+ void *(*initexecfunc)(struct bNode *node),
+ void (*freeexecfunc)(struct bNode *node, void *nodedata),
+ void (*newexecfunc)(void *data, int thread, struct bNode *, void *nodedata,
+ struct bNodeStack **, struct bNodeStack **));
+void node_type_internal_connect(struct bNodeType *ntype, ListBase (*internal_connect)(struct bNodeTree *, struct bNode *));
+void node_type_gpu(struct bNodeType *ntype, int (*gpufunc)(struct GPUMaterial *mat, struct bNode *node,
struct GPUNodeStack *in, struct GPUNodeStack *out));
-void node_type_gpu_ext(struct bNodeType *ntype, int (*gpuextfunc)(struct GPUMaterial *mat, struct bNode *node,
+void node_type_gpu_ext(struct bNodeType *ntype, int (*gpuextfunc)(struct GPUMaterial *mat, struct bNode *node,
void *nodedata, struct GPUNodeStack *in,
struct GPUNodeStack *out));
-void node_type_compatibility(struct bNodeType *ntype, short compatibility);
+void node_type_compatibility(struct bNodeType *ntype, short compatibility);
/* ************** COMMON NODES *************** */
@@ -454,6 +475,8 @@ struct bNodeSocket *node_group_add_extern_socket(struct bNodeTree *ntree, ListBa
void register_node_type_frame(struct bNodeTreeType *ttype);
void register_node_type_reroute(struct bNodeTreeType *ttype);
+void BKE_node_tree_unlink_id_cb(void *calldata, struct ID *owner_id, struct bNodeTree *ntree);
+
/* ************** SHADER NODES *************** */
struct ShadeInput;
@@ -527,6 +550,7 @@ struct ShadeResult;
#define SH_NODE_LIGHT_FALLOFF 166
#define SH_NODE_OBJECT_INFO 167
#define SH_NODE_PARTICLE_INFO 168
+#define SH_NODE_TEX_BRICK 169
/* custom defines options for Material node */
#define SH_NODE_MAT_DIFF 1
@@ -545,16 +569,16 @@ struct ShadeResult;
/* API */
struct bNodeTreeExec *ntreeShaderBeginExecTree(struct bNodeTree *ntree, int use_tree_data);
-void ntreeShaderEndExecTree(struct bNodeTreeExec *exec, int use_tree_data);
-void ntreeShaderExecTree(struct bNodeTree *ntree, struct ShadeInput *shi, struct ShadeResult *shr);
-void ntreeShaderGetTexcoMode(struct bNodeTree *ntree, int osa, short *texco, int *mode);
-void nodeShaderSynchronizeID(struct bNode *node, int copyto);
+void ntreeShaderEndExecTree(struct bNodeTreeExec *exec, int use_tree_data);
+void ntreeShaderExecTree(struct bNodeTree *ntree, struct ShadeInput *shi, struct ShadeResult *shr);
+void ntreeShaderGetTexcoMode(struct bNodeTree *ntree, int osa, short *texco, int *mode);
+void nodeShaderSynchronizeID(struct bNode *node, int copyto);
- /* switch material render loop */
+/* switch material render loop */
extern void (*node_shader_lamp_loop)(struct ShadeInput *, struct ShadeResult *);
-void set_node_shader_lamp_loop(void (*lamp_loop_func)(struct ShadeInput *, struct ShadeResult *));
+void set_node_shader_lamp_loop(void (*lamp_loop_func)(struct ShadeInput *, struct ShadeResult *));
-void ntreeGPUMaterialNodes(struct bNodeTree *ntree, struct GPUMaterial *mat);
+void ntreeGPUMaterialNodes(struct bNodeTree *ntree, struct GPUMaterial *mat);
/* ************** COMPOSITE NODES *************** */
@@ -660,6 +684,9 @@ void ntreeGPUMaterialNodes(struct bNodeTree *ntree, struct GPUMaterial *mat);
#define CMP_NODE_MASK 268
#define CMP_NODE_KEYINGSCREEN 269
#define CMP_NODE_KEYING 270
+#define CMP_NODE_TRACKPOS 271
+#define CMP_NODE_INPAINT 272
+#define CMP_NODE_DESPECKLE 273
#define CMP_NODE_GLARE 301
#define CMP_NODE_TONEMAP 302
@@ -702,7 +729,8 @@ void ntreeGPUMaterialNodes(struct bNodeTree *ntree, struct GPUMaterial *mat);
struct CompBuf;
struct bNodeTreeExec *ntreeCompositBeginExecTree(struct bNodeTree *ntree, int use_tree_data);
void ntreeCompositEndExecTree(struct bNodeTreeExec *exec, int use_tree_data);
-void ntreeCompositExecTree(struct bNodeTree *ntree, struct RenderData *rd, int rendering, int do_previews);
+void ntreeCompositExecTree(struct bNodeTree *ntree, struct RenderData *rd, int rendering, int do_previews,
+ const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings);
void ntreeCompositTagRender(struct Scene *sce);
int ntreeCompositTagAnimated(struct bNodeTree *ntree);
void ntreeCompositTagGenerators(struct bNodeTree *ntree);
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index b8ba3095905..ec0703248fd 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -54,7 +54,7 @@ void BKE_object_workob_clear(struct Object *workob);
void BKE_object_workob_calc_parent(struct Scene *scene, struct Object *ob, struct Object *workob);
void BKE_object_transform_copy(struct Object *ob_tar, const struct Object *ob_src);
-struct SoftBody *copy_softbody(struct SoftBody *sb);
+struct SoftBody *copy_softbody(struct SoftBody *sb, int copy_caches);
struct BulletSoftBody *copy_bulletsoftbody(struct BulletSoftBody *sb);
void BKE_object_copy_particlesystems(struct Object *obn, struct Object *ob);
void BKE_object_copy_softbody(struct Object *obn, struct Object *ob);
@@ -82,6 +82,7 @@ struct Object *BKE_object_add(struct Scene *scene, int type);
void *BKE_object_obdata_add_from_type(int type);
struct Object *BKE_object_copy(struct Object *ob);
+struct Object *BKE_object_copy_with_caches(struct Object *ob);
void BKE_object_make_local(struct Object *ob);
int BKE_object_is_libdata(struct Object *ob);
int BKE_object_obdata_is_libdata(struct Object *ob);
@@ -93,6 +94,7 @@ void BKE_object_to_mat3(struct Object *ob, float mat[][3]);
void BKE_object_to_mat4(struct Object *ob, float mat[][4]);
void BKE_object_apply_mat4(struct Object *ob, float mat[][4], const short use_compat, const short use_parent);
+int BKE_object_pose_context_check(struct Object *ob);
struct Object *BKE_object_pose_armature_get(struct Object *ob);
void BKE_object_where_is_calc(struct Scene *scene, struct Object *ob);
@@ -109,8 +111,8 @@ struct BoundBox *BKE_object_boundbox_get(struct Object *ob);
void BKE_object_dimensions_get(struct Object *ob, float vec[3]);
void BKE_object_dimensions_set(struct Object *ob, const float *value);
void BKE_object_boundbox_flag(struct Object *ob, int flag, int set);
-void BKE_object_minmax(struct Object *ob, float r_min[3], float r_max[3]);
-int BKE_object_minmax_dupli(struct Scene *scene, struct Object *ob, float r_min[3], float r_max[3]);
+void BKE_object_minmax(struct Object *ob, float r_min[3], float r_max[3], const short use_hidden);
+int BKE_object_minmax_dupli(struct Scene *scene, struct Object *ob, float r_min[3], float r_max[3], const short use_hidden);
/* sometimes min-max isn't enough, we need to loop over each point */
void BKE_object_foreach_display_point(struct Object *ob, float obmat[4][4],
@@ -177,6 +179,8 @@ typedef enum eObjectSet {
} eObjectSet;
struct LinkNode *BKE_object_relational_superset(struct Scene *scene, eObjectSet objectSet, eObRelationTypes includeFilter);
+struct LinkNode *BKE_object_groups(struct Object *ob);
+void BKE_object_groups_clear(struct Scene *scene, struct Base *base, struct Object *object);
#ifdef __cplusplus
}
diff --git a/source/blender/blenkernel/BKE_object_deform.h b/source/blender/blenkernel/BKE_object_deform.h
new file mode 100644
index 00000000000..ecc521a77fb
--- /dev/null
+++ b/source/blender/blenkernel/BKE_object_deform.h
@@ -0,0 +1,38 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef __BKE_OBJECT_DEFORM_H__
+#define __BKE_OBJECT_DEFORM_H__
+
+/** \file BKE_object_deform.h
+ * \ingroup bke
+ * \brief Functions for dealing with objects and deform verts,
+ * used by painting and tools.
+ */
+
+struct Object;
+
+char *BKE_objdef_lock_flags_get(struct Object *ob, const int defbase_tot);
+char *BKE_objdef_validmap_get(struct Object *ob, const int defbase_tot);
+char *BKE_objdef_selected_get(struct Object *ob, int defbase_tot, int *r_dg_flags_sel_tot);
+
+#endif /* __BKE_OBJECT_DEFORM_H__ */
diff --git a/source/blender/blenkernel/BKE_packedFile.h b/source/blender/blenkernel/BKE_packedFile.h
index 1891840f497..603cb1f22a6 100644
--- a/source/blender/blenkernel/BKE_packedFile.h
+++ b/source/blender/blenkernel/BKE_packedFile.h
@@ -43,6 +43,7 @@ struct ReportList;
struct VFont;
/* pack */
+struct PackedFile *dupPackedFile(const struct PackedFile *pf_src);
struct PackedFile *newPackedFile(struct ReportList *reports, const char *filename, const char *relabase);
struct PackedFile *newPackedFileMemory(void *mem, int memlen);
diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h
index 419fb4cedae..a93e542fe15 100644
--- a/source/blender/blenkernel/BKE_paint.h
+++ b/source/blender/blenkernel/BKE_paint.h
@@ -51,10 +51,11 @@ extern const char PAINT_CURSOR_VERTEX_PAINT[3];
extern const char PAINT_CURSOR_WEIGHT_PAINT[3];
extern const char PAINT_CURSOR_TEXTURE_PAINT[3];
-void paint_init(struct Paint *p, const char col[3]);
-void free_paint(struct Paint *p);
-void copy_paint(struct Paint *src, struct Paint *tar);
+void BKE_paint_init(struct Paint *p, const char col[3]);
+void BKE_paint_free(struct Paint *p);
+void BKE_paint_copy(struct Paint *src, struct Paint *tar);
+/* TODO, give these BKE_ prefix too */
struct Paint *paint_get_active(struct Scene *sce);
struct Paint *paint_get_active_from_context(const struct bContext *C);
struct Brush *paint_brush(struct Paint *paint);
diff --git a/source/blender/blenkernel/BKE_pointcache.h b/source/blender/blenkernel/BKE_pointcache.h
index d6ab9a35697..77b35e1a25c 100644
--- a/source/blender/blenkernel/BKE_pointcache.h
+++ b/source/blender/blenkernel/BKE_pointcache.h
@@ -303,7 +303,7 @@ struct PointCache *BKE_ptcache_add(struct ListBase *ptcaches);
void BKE_ptcache_free_mem(struct ListBase *mem_cache);
void BKE_ptcache_free(struct PointCache *cache);
void BKE_ptcache_free_list(struct ListBase *ptcaches);
-struct PointCache *BKE_ptcache_copy_list(struct ListBase *ptcaches_new, struct ListBase *ptcaches_old);
+struct PointCache *BKE_ptcache_copy_list(struct ListBase *ptcaches_new, struct ListBase *ptcaches_old, int copy_data);
/********************** Baking *********************/
diff --git a/source/blender/blenkernel/BKE_property.h b/source/blender/blenkernel/BKE_property.h
index a29dc0e7be4..e0eb8c04b60 100644
--- a/source/blender/blenkernel/BKE_property.h
+++ b/source/blender/blenkernel/BKE_property.h
@@ -35,19 +35,18 @@ struct bProperty;
struct ListBase;
struct Object;
-void free_property(struct bProperty *prop);
-void free_properties(struct ListBase *lb);
-struct bProperty *copy_property(struct bProperty *prop);
-void copy_properties(struct ListBase *lbn, struct ListBase *lbo);
-void init_property(struct bProperty *prop);
-struct bProperty *new_property(int type);
-void unique_property(struct bProperty *first, struct bProperty *prop, int force);
-struct bProperty *get_ob_property(struct Object *ob, const char *name);
-void set_ob_property(struct Object *ob, struct bProperty *propc);
-int compare_property(struct bProperty *prop, const char *str);
-void set_property(struct bProperty *prop, const char *str);
-void add_property(struct bProperty *prop, const char *str);
-void set_property_valstr(struct bProperty *prop, char *str);
-void cp_property(struct bProperty *prop1, struct bProperty *prop2);
+void BKE_bproperty_free(struct bProperty *prop);
+void BKE_bproperty_free_list(struct ListBase *lb);
+struct bProperty *BKE_bproperty_copy(struct bProperty *prop);
+void BKE_bproperty_copy_list(struct ListBase *lbn, struct ListBase *lbo);
+void BKE_bproperty_init(struct bProperty *prop);
+struct bProperty *BKE_bproperty_new(int type);
+void BKE_bproperty_unique(struct bProperty *first, struct bProperty *prop, int force);
+struct bProperty *BKE_bproperty_object_get(struct Object *ob, const char *name);
+void BKE_bproperty_object_set(struct Object *ob, struct bProperty *propc);
+// int BKE_bproperty_cmp(struct bProperty *prop, const char *str);
+void BKE_bproperty_set(struct bProperty *prop, const char *str);
+void BKE_bproperty_add(struct bProperty *prop, const char *str);
+void BKE_bproperty_set_valstr(struct bProperty *prop, char *str);
#endif
diff --git a/source/blender/blenkernel/BKE_sca.h b/source/blender/blenkernel/BKE_sca.h
index 22b44511195..d598a26fdf9 100644
--- a/source/blender/blenkernel/BKE_sca.h
+++ b/source/blender/blenkernel/BKE_sca.h
@@ -74,5 +74,7 @@ void sca_move_sensor(struct bSensor *sens_to_move, struct Object *ob, int move_u
void sca_move_controller(struct bController *cont_to_move, struct Object *ob, int move_up);
void sca_move_actuator(struct bActuator *act_to_move, struct Object *ob, int move_up);
+const char *sca_state_name_get(Object *ob, short bit);
+
#endif
diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h
index bce4243190a..c12e913be45 100644
--- a/source/blender/blenkernel/BKE_scene.h
+++ b/source/blender/blenkernel/BKE_scene.h
@@ -108,6 +108,9 @@ float get_render_aosss_error(struct RenderData *r, float error);
int BKE_scene_use_new_shading_nodes(struct Scene *scene);
+void BKE_scene_disable_color_management(struct Scene *scene);
+int BKE_scene_check_color_management_enabled(const struct Scene *scene);
+
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/blenkernel/BKE_screen.h b/source/blender/blenkernel/BKE_screen.h
index e99fc413ca1..8aa08beec57 100644
--- a/source/blender/blenkernel/BKE_screen.h
+++ b/source/blender/blenkernel/BKE_screen.h
@@ -55,7 +55,7 @@ struct wmWindowManager;
#include "RNA_types.h"
/* spacetype has everything stored to get an editor working, it gets initialized via
- * ED_spacetypes_init() in editors/area/spacetypes.c */
+ * ED_spacetypes_init() in editors/space_api/spacetypes.c */
/* an editor in Blender is a combined ScrArea + SpaceType + SpaceData */
#define BKE_ST_MAXNAME 64
diff --git a/source/blender/blenkernel/BKE_script.h b/source/blender/blenkernel/BKE_script.h
index 9976009c4c2..c3789733a04 100644
--- a/source/blender/blenkernel/BKE_script.h
+++ b/source/blender/blenkernel/BKE_script.h
@@ -40,8 +40,6 @@ extern "C" {
struct Script;
-void free_script(struct Script *script);
-
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h
index d6c1a26fdba..80431682d6f 100644
--- a/source/blender/blenkernel/BKE_sequencer.h
+++ b/source/blender/blenkernel/BKE_sequencer.h
@@ -31,11 +31,14 @@
*/
struct bContext;
+struct StripColorBalance;
struct Editing;
struct ImBuf;
struct Main;
+struct Mask;
struct Scene;
struct Sequence;
+struct SequenceModifierData;
struct Strip;
struct StripElem;
struct bSound;
@@ -61,26 +64,31 @@ typedef struct SeqIterator {
int valid;
} SeqIterator;
-void seq_begin(struct Editing *ed, SeqIterator *iter, int use_pointer);
-void seq_next(SeqIterator *iter);
-void seq_end(SeqIterator *iter);
-void seq_array(struct Editing *ed, struct Sequence ***seqarray, int *tot, int use_pointer);
+void BKE_sequence_iterator_begin(struct Editing *ed, SeqIterator *iter, int use_pointer);
+void BKE_sequence_iterator_next(SeqIterator *iter);
+void BKE_sequence_iterator_end(SeqIterator *iter);
#define SEQP_BEGIN(ed, _seq) \
{ \
SeqIterator iter; \
- for (seq_begin(ed, &iter, 1); iter.valid; seq_next(&iter)) { \
+ for (BKE_sequence_iterator_begin(ed, &iter, 1); \
+ iter.valid; \
+ BKE_sequence_iterator_next(&iter)) \
+ { \
_seq = iter.seq;
-
+
#define SEQ_BEGIN(ed, _seq) \
{ \
SeqIterator iter; \
- for (seq_begin(ed, &iter, 0); iter.valid; seq_next(&iter)) { \
+ for (BKE_sequence_iterator_begin(ed, &iter, 0); \
+ iter.valid; \
+ BKE_sequence_iterator_next(&iter)) \
+ { \
_seq = iter.seq;
#define SEQ_END \
} \
- seq_end(&iter); \
+ BKE_sequence_iterator_end(&iter); \
}
typedef struct SeqRenderData {
@@ -93,12 +101,8 @@ typedef struct SeqRenderData {
float motion_blur_shutter;
} SeqRenderData;
-SeqRenderData seq_new_render_data(
- struct Main *bmain, struct Scene *scene,
- int rectx, int recty, int preview_render_size);
-
-int seq_cmp_render_data(const SeqRenderData *a, const SeqRenderData *b);
-unsigned int seq_hash_render_data(const SeqRenderData *a);
+SeqRenderData BKE_sequencer_new_render_data(struct Main *bmain, struct Scene *scene, int rectx, int recty,
+ int preview_render_size);
/* Wipe effect */
enum {
@@ -110,8 +114,10 @@ enum {
DO_CLOCK_WIPE
};
-
struct SeqEffectHandle {
+ short multithreaded;
+ short supports_mask;
+
/* constructors & destructor */
/* init is _only_ called on first creation */
void (*init)(struct Sequence *seq);
@@ -147,27 +153,40 @@ struct SeqEffectHandle {
* float-rects or byte-rects
* (mixed cases are handled one layer up...) */
- struct ImBuf * (*execute)(SeqRenderData context,
- struct Sequence *seq, float cfra,
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3);
+ struct ImBuf * (*execute)(SeqRenderData context, struct Sequence *seq, float cfra, float facf0, float facf1,
+ struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3);
+
+ struct ImBuf * (*init_execution)(SeqRenderData context, struct ImBuf *ibuf1, struct ImBuf *ibuf2,
+ struct ImBuf *ibuf3);
+
+ void (*execute_slice)(SeqRenderData context, struct Sequence *seq, float cfra, float facf0, float facf1,
+ struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3,
+ int start_line, int total_lines, struct ImBuf *out);
};
/* ********************* prototypes *************** */
/* **********************************************************************
- * sequence.c
+ * sequencer.c
*
* sequencer render functions
* ********************************************************************** */
-struct ImBuf *give_ibuf_seq(SeqRenderData context, float cfra, int chanshown);
-struct ImBuf *give_ibuf_seq_threaded(SeqRenderData context, float cfra, int chanshown);
-struct ImBuf *give_ibuf_seq_direct(SeqRenderData context, float cfra, struct Sequence *seq);
-struct ImBuf *give_ibuf_seqbase(SeqRenderData context, float cfra, int chan_shown, struct ListBase *seqbasep);
-void give_ibuf_prefetch_request(SeqRenderData context, float cfra, int chan_shown);
+struct ImBuf *BKE_sequencer_give_ibuf(SeqRenderData context, float cfra, int chanshown);
+struct ImBuf *BKE_sequencer_give_ibuf_threaded(SeqRenderData context, float cfra, int chanshown);
+struct ImBuf *BKE_sequencer_give_ibuf_direct(SeqRenderData context, float cfra, struct Sequence *seq);
+struct ImBuf *BKE_sequencer_give_ibuf_seqbase(SeqRenderData context, float cfra, int chan_shown, struct ListBase *seqbasep);
+void BKE_sequencer_give_ibuf_prefetch_request(SeqRenderData context, float cfra, int chan_shown);
+/* **********************************************************************
+ * sequencer.c
+ *
+ * sequencer color space functions
+ * ********************************************************************** */
+
+void BKE_sequencer_imbuf_to_sequencer_space(struct Scene *scene, struct ImBuf *ibuf, int make_float);
+void BKE_sequencer_imbuf_from_sequencer_space(struct Scene *scene, struct ImBuf *ibuf);
+void BKE_sequencer_pixel_from_sequencer_space_v4(struct Scene *scene, float pixel[4]);
/* **********************************************************************
* sequencer scene functions
@@ -179,43 +198,35 @@ void BKE_sequencer_editing_free(struct Scene *scene);
void BKE_sequencer_sort(struct Scene *scene);
struct Sequence *BKE_sequencer_active_get(struct Scene *scene);
-int BKE_sequencer_active_get_pair(struct Scene *scene,
- struct Sequence **seq_act, struct Sequence **seq_other);
+int BKE_sequencer_active_get_pair(struct Scene *scene, struct Sequence **seq_act, struct Sequence **seq_other);
void BKE_sequencer_active_set(struct Scene *scene, struct Sequence *seq);
-
+struct Mask *BKE_sequencer_mask_get(struct Scene *scene);
/* apply functions recursively */
-int seqbase_recursive_apply(struct ListBase *seqbase, int (*apply_func)(struct Sequence *seq, void *), void *arg);
-int seq_recursive_apply(struct Sequence *seq, int (*apply_func)(struct Sequence *, void *), void *arg);
+int BKE_sequencer_base_recursive_apply(struct ListBase *seqbase, int (*apply_func)(struct Sequence *seq, void *), void *arg);
+int BKE_sequencer_recursive_apply(struct Sequence *seq, int (*apply_func)(struct Sequence *, void *), void *arg);
/* maintenance functions, mostly for RNA */
-// extern
-void seq_free_sequence(struct Scene *scene, struct Sequence *seq);
-void seq_free_sequence_recurse(struct Scene *scene, struct Sequence *seq);
-void seq_free_strip(struct Strip *strip);
-
-void seq_free_clipboard(void);
-const char *give_seqname(struct Sequence *seq);
-void calc_sequence(struct Scene *scene, struct Sequence *seq);
-void calc_sequence_disp(struct Scene *scene, struct Sequence *seq);
-void reload_sequence_new_file(struct Scene *scene, struct Sequence *seq, int lock_range);
-void build_seqar_cb(struct ListBase *seqbase, struct Sequence ***seqar, int *totseq,
- int (*test_func)(struct Sequence *seq));
-int evaluate_seq_frame(struct Scene *scene, int cfra);
-struct StripElem *give_stripelem(struct Sequence *seq, int cfra);
-
-// intern
-void printf_strip(struct Sequence *seq); // debugging function (unused)
-void update_changed_seq_and_deps(struct Scene *scene, struct Sequence *changed_seq, int len_change, int ibuf_change);
-
-int input_have_to_preprocess(
- SeqRenderData context, struct Sequence *seq, float cfra);
-
-struct SeqIndexBuildContext *seq_proxy_rebuild_context(struct Main *bmain, struct Scene *scene, struct Sequence *seq);
-void seq_proxy_rebuild(struct SeqIndexBuildContext *context,
- short *stop, short *do_update, float *progress);
-void seq_proxy_rebuild_finish(struct SeqIndexBuildContext *context, short stop);
+/* extern */
+
+void BKE_sequencer_free_clipboard(void);
+
+void BKE_sequence_free(struct Scene *scene, struct Sequence *seq);
+const char *BKE_sequence_give_name(struct Sequence *seq);
+void BKE_sequence_calc(struct Scene *scene, struct Sequence *seq);
+void BKE_sequence_calc_disp(struct Scene *scene, struct Sequence *seq);
+void BKE_sequence_reload_new_file(struct Scene *scene, struct Sequence *seq, int lock_range);
+int BKE_sequencer_evaluate_frame(struct Scene *scene, int cfra);
+struct StripElem *BKE_sequencer_give_stripelem(struct Sequence *seq, int cfra);
+
+/* intern */
+void BKE_sequencer_update_changed_seq_and_deps(struct Scene *scene, struct Sequence *changed_seq, int len_change, int ibuf_change);
+int BKE_sequencer_input_have_to_preprocess(SeqRenderData context, struct Sequence *seq, float cfra);
+
+struct SeqIndexBuildContext *BKE_sequencer_proxy_rebuild_context(struct Main *bmain, struct Scene *scene, struct Sequence *seq);
+void BKE_sequencer_proxy_rebuild(struct SeqIndexBuildContext *context, short *stop, short *do_update, float *progress);
+void BKE_sequencer_proxy_rebuild_finish(struct SeqIndexBuildContext *context, short stop);
/* **********************************************************************
* seqcache.c
@@ -230,20 +241,25 @@ typedef enum {
SEQ_STRIPELEM_IBUF_ENDSTILL
} seq_stripelem_ibuf_t;
-void seq_stripelem_cache_destruct(void);
-void seq_stripelem_cache_cleanup(void);
+void BKE_sequencer_cache_destruct(void);
+void BKE_sequencer_cache_cleanup(void);
/* returned ImBuf is properly refed and has to be freed */
-struct ImBuf *seq_stripelem_cache_get(SeqRenderData context, struct Sequence *seq,
- float cfra, seq_stripelem_ibuf_t type);
+struct ImBuf *BKE_sequencer_cache_get(SeqRenderData context, struct Sequence *seq, float cfra, seq_stripelem_ibuf_t type);
/* passed ImBuf is properly refed, so ownership is *not*
* transfered to the cache.
* you can pass the same ImBuf multiple times to the cache without problems.
*/
-
-void seq_stripelem_cache_put(SeqRenderData context, struct Sequence *seq,
- float cfra, seq_stripelem_ibuf_t type, struct ImBuf *nval);
+
+void BKE_sequencer_cache_put(SeqRenderData context, struct Sequence *seq, float cfra, seq_stripelem_ibuf_t type, struct ImBuf *nval);
+
+void BKE_sequencer_cache_cleanup_sequence(struct Sequence *seq);
+
+struct ImBuf *BKE_sequencer_preprocessed_cache_get(SeqRenderData context, struct Sequence *seq, float cfra, seq_stripelem_ibuf_t type);
+void BKE_sequencer_preprocessed_cache_put(SeqRenderData context, struct Sequence *seq, float cfra, seq_stripelem_ibuf_t type, struct ImBuf *ibuf);
+void BKE_sequencer_preprocessed_cache_cleanup(void);
+void BKE_sequencer_preprocessed_cache_cleanup_sequence(struct Sequence *seq);
/* **********************************************************************
* seqeffects.c
@@ -253,13 +269,13 @@ void seq_stripelem_cache_put(SeqRenderData context, struct Sequence *seq,
*/
/* intern */
-struct SeqEffectHandle get_sequence_blend(struct Sequence *seq);
-void sequence_effect_speed_rebuild_map(struct Scene *scene, struct Sequence *seq, int force);
+struct SeqEffectHandle BKE_sequence_get_blend(struct Sequence *seq);
+void BKE_sequence_effect_speed_rebuild_map(struct Scene *scene, struct Sequence *seq, int force);
/* extern */
-struct SeqEffectHandle get_sequence_effect(struct Sequence *seq);
-int get_sequence_effect_num_inputs(int seq_type);
-
+struct SeqEffectHandle BKE_sequence_get_effect(struct Sequence *seq);
+int BKE_sequence_effect_get_num_inputs(int seq_type);
+int BKE_sequence_effect_get_supports_mask(int seq_type);
/* **********************************************************************
* Sequencer editing functions
@@ -267,43 +283,47 @@ int get_sequence_effect_num_inputs(int seq_type);
*/
/* for transform but also could use elsewhere */
-int seq_tx_get_start(struct Sequence *seq);
-int seq_tx_get_end(struct Sequence *seq);
-int seq_tx_get_final_left(struct Sequence *seq, int metaclip);
-int seq_tx_get_final_right(struct Sequence *seq, int metaclip);
-void seq_tx_set_final_left(struct Sequence *seq, int val);
-void seq_tx_set_final_right(struct Sequence *seq, int val);
-void seq_tx_handle_xlimits(struct Sequence *seq, int leftflag, int rightflag);
-int seq_tx_test(struct Sequence *seq);
-int seq_single_check(struct Sequence *seq);
-void seq_single_fix(struct Sequence *seq);
-int seq_test_overlap(struct ListBase *seqbasep, struct Sequence *test);
-void seq_translate(struct Scene *scene, struct Sequence *seq, int delta);
-void seq_sound_init(struct Scene *scene, struct Sequence *seq);
-struct Sequence *seq_foreground_frame_get(struct Scene *scene, int frame);
-struct ListBase *seq_seqbase(struct ListBase *seqbase, struct Sequence *seq);
-struct Sequence *seq_metastrip(ListBase *seqbase /* = ed->seqbase */,
- struct Sequence *meta /* = NULL */, struct Sequence *seq);
-
-void seq_offset_animdata(struct Scene *scene, struct Sequence *seq, int ofs);
-void seq_dupe_animdata(struct Scene *scene, const char *name_src, const char *name_dst);
-int shuffle_seq(struct ListBase *seqbasep, struct Sequence *test, struct Scene *evil_scene);
-int shuffle_seq_time(ListBase *seqbasep, struct Scene *evil_scene);
-int seqbase_isolated_sel_check(struct ListBase *seqbase);
-void free_imbuf_seq(struct Scene *scene, struct ListBase *seqbasep, int check_mem_usage, int keep_file_handles);
-struct Sequence *seq_dupli_recursive(struct Scene *scene, struct Scene *scene_to, struct Sequence *seq, int dupe_flag);
-int seq_swap(struct Sequence *seq_a, struct Sequence *seq_b, const char **error_str);
-
-void seq_update_sound_bounds_all(struct Scene *scene);
-void seq_update_sound_bounds(struct Scene *scene, struct Sequence *seq);
-void seq_update_muting(struct Editing *ed);
-void seq_update_sound(struct Scene *scene, struct bSound *sound);
-void seqbase_unique_name_recursive(ListBase *seqbasep, struct Sequence *seq);
-void seqbase_dupli_recursive(struct Scene *scene, struct Scene *scene_to, ListBase *nseqbase, ListBase *seqbase, int dupe_flag);
-
-void clear_scene_in_allseqs(struct Main *bmain, struct Scene *sce);
-
-struct Sequence *get_seq_by_name(struct ListBase *seqbase, const char *name, int recursive);
+int BKE_sequence_tx_get_final_left(struct Sequence *seq, int metaclip);
+int BKE_sequence_tx_get_final_right(struct Sequence *seq, int metaclip);
+void BKE_sequence_tx_set_final_left(struct Sequence *seq, int val);
+void BKE_sequence_tx_set_final_right(struct Sequence *seq, int val);
+void BKE_sequence_tx_handle_xlimits(struct Sequence *seq, int leftflag, int rightflag);
+int BKE_sequence_tx_test(struct Sequence *seq);
+int BKE_sequence_single_check(struct Sequence *seq);
+void BKE_sequence_single_fix(struct Sequence *seq);
+int BKE_sequence_test_overlap(struct ListBase *seqbasep, struct Sequence *test);
+void BKE_sequence_translate(struct Scene *scene, struct Sequence *seq, int delta);
+void BKE_sequence_sound_init(struct Scene *scene, struct Sequence *seq);
+struct Sequence *BKE_sequencer_foreground_frame_get(struct Scene *scene, int frame);
+struct ListBase *BKE_sequence_seqbase(struct ListBase *seqbase, struct Sequence *seq);
+struct Sequence *BKE_sequence_metastrip(ListBase *seqbase /* = ed->seqbase */, struct Sequence *meta /* = NULL */, struct Sequence *seq);
+
+void BKE_sequencer_offset_animdata(struct Scene *scene, struct Sequence *seq, int ofs);
+void BKE_sequencer_dupe_animdata(struct Scene *scene, const char *name_src, const char *name_dst);
+int BKE_sequence_base_shuffle(struct ListBase *seqbasep, struct Sequence *test, struct Scene *evil_scene);
+int BKE_sequence_base_shuffle_time(ListBase *seqbasep, struct Scene *evil_scene);
+int BKE_sequence_base_isolated_sel_check(struct ListBase *seqbase);
+void BKE_sequencer_free_imbuf(struct Scene *scene, struct ListBase *seqbasep, int for_render);
+struct Sequence *BKE_sequence_dupli_recursive(struct Scene *scene, struct Scene *scene_to, struct Sequence *seq, int dupe_flag);
+int BKE_sequence_swap(struct Sequence *seq_a, struct Sequence *seq_b, const char **error_str);
+
+int BKE_sequence_check_depend(struct Sequence *seq, struct Sequence *cur);
+void BKE_sequence_invalidate_cache(struct Scene *scene, struct Sequence *seq);
+void BKE_sequence_invalidate_dependent(struct Scene *scene, struct Sequence *seq);
+void BKE_sequence_invalidate_cache_for_modifier(struct Scene *scene, struct Sequence *seq);
+
+void BKE_sequencer_update_sound_bounds_all(struct Scene *scene);
+void BKE_sequencer_update_sound_bounds(struct Scene *scene, struct Sequence *seq);
+void BKE_sequencer_update_muting(struct Editing *ed);
+void BKE_sequencer_update_sound(struct Scene *scene, struct bSound *sound);
+
+void BKE_sequence_base_unique_name_recursive(ListBase *seqbasep, struct Sequence *seq);
+void BKE_sequence_base_dupli_recursive(struct Scene *scene, struct Scene *scene_to, ListBase *nseqbase, ListBase *seqbase, int dupe_flag);
+int BKE_sequence_is_valid_check(struct Sequence *seq);
+
+void BKE_sequencer_clear_scene_in_allseqs(struct Main *bmain, struct Scene *sce);
+
+struct Sequence *BKE_sequence_get_by_name(struct ListBase *seqbase, const char *name, int recursive);
/* api for adding new sequence strips */
typedef struct SeqLoadInfo {
@@ -335,20 +355,62 @@ typedef struct SeqLoadInfo {
/* use as an api function */
typedef struct Sequence *(*SeqLoadFunc)(struct bContext *, ListBase *, struct SeqLoadInfo *);
-struct Sequence *alloc_sequence(ListBase *lb, int cfra, int machine);
+struct Sequence *BKE_sequence_alloc(ListBase *lb, int cfra, int machine);
-void seq_load_apply(struct Scene *scene, struct Sequence *seq, struct SeqLoadInfo *seq_load);
-
-struct Sequence *sequencer_add_image_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load);
-struct Sequence *sequencer_add_sound_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load);
-struct Sequence *sequencer_add_movie_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load);
+struct Sequence *BKE_sequencer_add_image_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load);
+struct Sequence *BKE_sequencer_add_sound_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load);
+struct Sequence *BKE_sequencer_add_movie_strip(struct bContext *C, ListBase *seqbasep, struct SeqLoadInfo *seq_load);
/* view3d draw callback, run when not in background view */
-typedef struct ImBuf *(*SequencerDrawView)(struct Scene *, struct Object *, int, int, unsigned int, int, int, char[256]);
+typedef struct ImBuf *(*SequencerDrawView)(struct Scene *, struct Object *, int, int, unsigned int, int, int, int, char[256]);
extern SequencerDrawView sequencer_view3d_cb;
/* copy/paste */
extern ListBase seqbase_clipboard;
extern int seqbase_clipboard_frame;
-#endif // __BKE_SEQUENCER_H__
+/* modifiers */
+typedef struct SequenceModifierTypeInfo {
+ /* default name for the modifier */
+ char name[64]; /* MAX_NAME */
+
+ /* DNA structure name used on load/save filed */
+ char struct_name[64]; /* MAX_NAME */
+
+ /* size of modifier data structure, used by allocation */
+ int struct_size;
+
+ /* data initialization */
+ void (*init_data) (struct SequenceModifierData *smd);
+
+ /* free data used by modifier,
+ * only modifier-specific data should be freed, modifier descriptor would
+ * be freed outside of this callback
+ */
+ void (*free_data) (struct SequenceModifierData *smd);
+
+ /* copy data from one modifier to another */
+ void (*copy_data) (struct SequenceModifierData *smd, struct SequenceModifierData *target);
+
+ /* apply modifier on a given image buffer */
+ void (*apply) (struct SequenceModifierData *smd, struct ImBuf *ibuf, struct ImBuf *mask);
+} SequenceModifierTypeInfo;
+
+struct SequenceModifierTypeInfo *BKE_sequence_modifier_type_info_get(int type);
+
+struct SequenceModifierData *BKE_sequence_modifier_new(struct Sequence *seq, const char *name, int type);
+int BKE_sequence_modifier_remove(struct Sequence *seq, struct SequenceModifierData *smd);
+void BKE_sequence_modifier_clear(struct Sequence *seq);
+void BKE_sequence_modifier_free(struct SequenceModifierData *smd);
+void BKE_sequence_modifier_unique_name(struct Sequence *seq, struct SequenceModifierData *smd);
+struct SequenceModifierData *BKE_sequence_modifier_find_by_name(struct Sequence *seq, char *name);
+struct ImBuf *BKE_sequence_modifier_apply_stack(SeqRenderData context, struct Sequence *seq, struct ImBuf *ibuf, int cfra);
+void BKE_sequence_modifier_list_copy(struct Sequence *seqn, struct Sequence *seq);
+
+int BKE_sequence_supports_modifiers(struct Sequence *seq);
+
+/* internal filters */
+struct ImBuf *BKE_sequencer_render_mask_input(SeqRenderData context, int mask_input_type, struct Sequence *mask_sequence, struct Mask *mask_id, int cfra, int make_float);
+void BKE_sequencer_color_balance_apply(struct StripColorBalance *cb, struct ImBuf *ibuf, float mul, short make_float, struct ImBuf *mask_input);
+
+#endif /* __BKE_SEQUENCER_H__ */
diff --git a/source/blender/blenkernel/BKE_shrinkwrap.h b/source/blender/blenkernel/BKE_shrinkwrap.h
index a7b03cef933..d1332ba937e 100644
--- a/source/blender/blenkernel/BKE_shrinkwrap.h
+++ b/source/blender/blenkernel/BKE_shrinkwrap.h
@@ -52,7 +52,7 @@ struct DerivedMesh *object_get_derived_final(struct Object *ob);
* the matrix calculation.
*
* A SpaceTransform is initialized using:
- * space_transform_setup( &data, ob1, ob2 )
+ * SPACE_TRANSFORM_SETUP( &data, ob1, ob2 )
*
* After that the following calls can be used:
* space_transform_apply (&data, co); //converts a coordinate in ob1 coords space to the corresponding ob2 coords
@@ -75,7 +75,7 @@ void space_transform_from_matrixs(struct SpaceTransform *data, float local[4][4]
void space_transform_apply(const struct SpaceTransform *data, float co[3]);
void space_transform_invert(const struct SpaceTransform *data, float co[3]);
-#define space_transform_setup(data, local, target) space_transform_from_matrixs(data, (local)->obmat, (target)->obmat)
+#define SPACE_TRANSFORM_SETUP(data, local, target) space_transform_from_matrixs(data, (local)->obmat, (target)->obmat)
/* Shrinkwrap stuff */
#include "BKE_bvhutils.h"
@@ -126,7 +126,7 @@ void shrinkwrapModifier_deform(struct ShrinkwrapModifierData *smd, struct Object
/*
* This function casts a ray in the given BVHTree.. but it takes into consideration the space_transform, that is:
*
- * if transf was configured with "space_transform_setup( &transf, ob1, ob2 )"
+ * if transf was configured with "SPACE_TRANSFORM_SETUP( &transf, ob1, ob2 )"
* then the input (vert, dir, BVHTreeRayHit) must be defined in ob1 coordinates space
* and the BVHTree must be built in ob2 coordinate space.
*
diff --git a/source/blender/blenkernel/BKE_tessmesh.h b/source/blender/blenkernel/BKE_tessmesh.h
index 3a806651d61..dea5e726671 100644
--- a/source/blender/blenkernel/BKE_tessmesh.h
+++ b/source/blender/blenkernel/BKE_tessmesh.h
@@ -72,10 +72,12 @@ typedef struct BMEditMesh {
short selectmode;
short mat_nr;
- /*Mesh structure this editmesh came from, if it came from one*/
- struct Mesh *me;
+ /* Object this editmesh came from (if it came from one) */
struct Object *ob;
+ /* Unused for now, we could bring it back and assign in the same way 'ob' is */
+ // struct Mesh *me;
+
/*temp variables for x-mirror editing*/
int mirror_cdlayer; /* -1 is invalid */
int mirr_free_arrays;
diff --git a/source/blender/blenkernel/BKE_tracking.h b/source/blender/blenkernel/BKE_tracking.h
index 2b30c845754..c14476a3b59 100644
--- a/source/blender/blenkernel/BKE_tracking.h
+++ b/source/blender/blenkernel/BKE_tracking.h
@@ -110,6 +110,8 @@ struct MovieTrackingMarker *BKE_tracking_marker_ensure(struct MovieTrackingTrack
void BKE_tracking_marker_pattern_minmax(const struct MovieTrackingMarker *marker, float min[2], float max[2]);
+void BKE_tracking_marker_get_subframe_position(struct MovieTrackingTrack *track, float framenr, float pos[2]);
+
/* **** Object **** */
struct MovieTrackingObject *BKE_tracking_object_add(struct MovieTracking *tracking, const char *name);
void BKE_tracking_object_delete(struct MovieTracking *tracking, struct MovieTrackingObject *object);
@@ -146,8 +148,8 @@ struct ImBuf *BKE_tracking_distortion_exec(struct MovieDistortion *distortion, s
struct ImBuf *ibuf, int width, int height, float overscan, int undistort);
void BKE_tracking_distortion_free(struct MovieDistortion *distortion);
-void BKE_tracking_distort_v2(struct MovieTracking *tracking, float co[2], float nco[2]);
-void BKE_tracking_undistort_v2(struct MovieTracking *tracking, float co[2], float nco[2]);
+void BKE_tracking_distort_v2(struct MovieTracking *tracking, const float co[2], float r_co[2]);
+void BKE_tracking_undistort_v2(struct MovieTracking *tracking, const float co[2], float r_co[2]);
struct ImBuf *BKE_tracking_undistort_frame(struct MovieTracking *tracking, struct ImBuf *ibuf,
int calibration_width, int calibration_height, float overscan);
diff --git a/source/blender/blenkernel/BKE_utildefines.h b/source/blender/blenkernel/BKE_utildefines.h
index 0ed2db2aad2..63f5ec59a0b 100644
--- a/source/blender/blenkernel/BKE_utildefines.h
+++ b/source/blender/blenkernel/BKE_utildefines.h
@@ -15,13 +15,6 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
* ***** END GPL LICENSE BLOCK *****
*/
@@ -39,48 +32,7 @@
extern "C" {
#endif
-/* these values need to be hardcoded in structs, dna does not recognize defines */
-/* also defined in DNA_space_types.h */
-#ifndef FILE_MAXDIR
-#define FILE_MAXDIR 768
-#define FILE_MAXFILE 256
-#define FILE_MAX 1024
-#endif
-
-/* this weirdo pops up in two places ... */
-#if !defined(WIN32)
-# ifndef O_BINARY
-# define O_BINARY 0
-# endif
-#endif
-
-/* INTEGER CODES */
-#ifdef __BIG_ENDIAN__
-/* Big Endian */
-# define MAKE_ID(a, b, c, d) ( (int)(a) << 24 | (int)(b) << 16 | (c) << 8 | (d) )
-#else
-/* Little Endian */
-# define MAKE_ID(a, b, c, d) ( (int)(d) << 24 | (int)(c) << 16 | (b) << 8 | (a) )
-#endif
-
-#define DATA MAKE_ID('D', 'A', 'T', 'A')
-#define GLOB MAKE_ID('G', 'L', 'O', 'B')
-
-#define DNA1 MAKE_ID('D', 'N', 'A', '1')
-#define TEST MAKE_ID('T', 'E', 'S', 'T') /* used as preview between 'REND' and 'GLOB' */
-#define REND MAKE_ID('R', 'E', 'N', 'D')
-#define USER MAKE_ID('U', 'S', 'E', 'R')
-
-#define ENDB MAKE_ID('E', 'N', 'D', 'B')
-
-/* Bit operations */
-#define BTST(a, b) ( ( (a) & 1 << (b) ) != 0)
-#define BNTST(a, b) ( ( (a) & 1 << (b) ) == 0)
-#define BTST2(a, b, c) (BTST( (a), (b) ) || BTST( (a), (c) ) )
-#define BSET(a, b) ( (a) | 1 << (b) )
-#define BCLR(a, b) ( (a) & ~(1 << (b)) )
-/* bit-row */
-#define BROW(min, max) (((max) >= 31 ? 0xFFFFFFFF : (1 << (max + 1)) - 1) - ((min) ? ((1 << (min)) - 1) : 0) )
+/* currently unused but we may want to add macros here for BKE later */
#ifdef __cplusplus
}
diff --git a/source/blender/blenkernel/BKE_world.h b/source/blender/blenkernel/BKE_world.h
index 67896fffc4d..7a23bff0184 100644
--- a/source/blender/blenkernel/BKE_world.h
+++ b/source/blender/blenkernel/BKE_world.h
@@ -35,7 +35,8 @@
struct World;
-void BKE_world_free(struct World *sc);
+void BKE_world_free(struct World *sc);
+void BKE_world_free_ex(struct World *sc, int do_id_user);
struct World *add_world(const char *name);
struct World *BKE_world_copy(struct World *wrld);
struct World *localize_world(struct World *wrld);
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index 056a6bf5866..2a1ff49881f 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -25,7 +25,6 @@
set(INC
.
- ../avi
../blenfont
../blenlib
../blenloader
@@ -44,6 +43,7 @@ set(INC
../../../intern/mikktspace
../../../intern/opennl/extern
../../../intern/raskter
+ ../../../intern/smoke/extern
# XXX - BAD LEVEL CALL WM_api.h
../windowmanager
@@ -101,6 +101,8 @@ set(SRC
intern/lamp.c
intern/lattice.c
intern/library.c
+ intern/mask_evaluate.c
+ intern/mask_rasterize.c
intern/mask.c
intern/material.c
intern/mball.c
@@ -113,6 +115,7 @@ set(SRC
intern/nla.c
intern/node.c
intern/object.c
+ intern/object_deform.c
intern/ocean.c
intern/packedFile.c
intern/paint.c
@@ -127,6 +130,7 @@ set(SRC
intern/script.c
intern/seqcache.c
intern/seqeffects.c
+ intern/seqmodifier.c
intern/sequencer.c
intern/shrinkwrap.c
intern/sketch.c
@@ -200,6 +204,7 @@ set(SRC
BKE_nla.h
BKE_node.h
BKE_object.h
+ BKE_object_deform.h
BKE_ocean.h
BKE_packedFile.h
BKE_paint.h
@@ -253,6 +258,7 @@ endif()
if(WITH_MOD_CLOTH_ELTOPO)
list(APPEND INC
../../../extern/eltopo
+ ../../../extern/eltopo/eltopo3d
)
add_definitions(-DWITH_ELTOPO)
endif()
@@ -285,6 +291,13 @@ if(WITH_IMAGE_HDR)
add_definitions(-DWITH_HDR)
endif()
+if(WITH_CODEC_AVI)
+ list(APPEND INC
+ ../avi
+ )
+ add_definitions(-DWITH_AVI)
+endif()
+
if(WITH_CODEC_QUICKTIME)
list(APPEND INC
../quicktime
@@ -317,9 +330,6 @@ if(WITH_PYTHON)
list(APPEND INC
../python
)
- list(APPEND INC_SYS
- ${PYTHON_INCLUDE_DIRS}
- )
add_definitions(-DWITH_PYTHON)
if(WITH_PYTHON_SECURITY)
@@ -339,9 +349,6 @@ if(WITH_MOD_FLUID)
endif()
if(WITH_MOD_SMOKE)
- list(APPEND INC
- ../../../intern/smoke/extern
- )
add_definitions(-DWITH_SMOKE)
endif()
diff --git a/source/blender/blenkernel/SConscript b/source/blender/blenkernel/SConscript
index 64544adb26d..d1a35b122e8 100644
--- a/source/blender/blenkernel/SConscript
+++ b/source/blender/blenkernel/SConscript
@@ -3,6 +3,10 @@ Import ('env')
import os
sources = env.Glob('intern/*.c')
+sources.remove('intern' + os.sep + 'mask_rasterize.c')
+sources.remove('intern' + os.sep + 'mask.c')
+
+sources_mask = env.Glob('intern/mask*.c')
incs = '. #/intern/guardedalloc #/intern/memutil'
incs += ' ../blenlib ../blenfont ../makesdna ../windowmanager'
@@ -32,13 +36,13 @@ if env['WITH_BF_FRAMESERVER']:
if env['WITH_BF_PYTHON']:
incs += ' ../python'
- incs += ' ' + env['BF_PYTHON_INC']
defs.append('WITH_PYTHON')
if env['BF_DEBUG']:
defs.append('DEBUG')
if env['WITH_BF_ELTOPO']:
- incs += ' ../../../extern/eltopo'
+ incs += ' #/extern/eltopo'
+ incs += ' #/extern/eltopo/eltopo3d'
defs.append('WITH_ELTOPO')
if env['WITH_BF_QUICKTIME']:
@@ -118,7 +122,10 @@ if env['WITH_BF_INTERNATIONAL']:
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc', 'win64-mingw'):
incs += ' ' + env['BF_PTHREADS_INC']
+
if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
env.BlenderLib ( libname = 'bf_blenkernel', sources = sources, includes = Split(incs), defines = defs, libtype=['core','player'], priority = [166,25]) #, cc_compileflags = env['CCFLAGS'].append('/WX') )
else:
env.BlenderLib ( libname = 'bf_blenkernel', sources = sources, includes = Split(incs), defines = defs, libtype=['core','player', 'player2'], priority = [166,25,0] )
+
+env.BlenderLib ( libname = 'bf_blenkernel_mask', sources = sources_mask, includes = Split(incs), defines = defs, libtype=['core','player', 'player2'], priority = [200,25,0] )
diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c
index 35bf4c0961f..82ac0736b07 100644
--- a/source/blender/blenkernel/intern/CCGSubSurf.c
+++ b/source/blender/blenkernel/intern/CCGSubSurf.c
@@ -1397,7 +1397,7 @@ CCGError ccgSubSurf_processSync(CCGSubSurf *ss)
return eCCGError_None;
}
-#define VERT_getNo(e, lvl) _vert_getNo(e, lvl, vertDataSize, normalDataOffset)
+#define VERT_getNo(e, lvl) _vert_getNo(v, lvl, vertDataSize, normalDataOffset)
#define EDGE_getNo(e, lvl, x) _edge_getNo(e, lvl, x, vertDataSize, normalDataOffset)
#define FACE_getIFNo(f, lvl, S, x, y) _face_getIFNo(f, lvl, S, x, y, subdivLevels, vertDataSize, normalDataOffset)
#define FACE_calcIFNo(f, lvl, S, x, y, no) _face_calcIFNo(f, lvl, S, x, y, no, subdivLevels, vertDataSize)
@@ -1491,7 +1491,7 @@ static void ccgSubSurf__calcVertNormals(CCGSubSurf *ss,
/* XXX can I reduce the number of normalisations here? */
for (ptrIdx = 0; ptrIdx < numEffectedV; ptrIdx++) {
CCGVert *v = (CCGVert *) effectedV[ptrIdx];
- float length, *no = _vert_getNo(v, lvl, vertDataSize, normalDataOffset);
+ float length, *no = VERT_getNo(v, lvl);
NormZero(no);
@@ -1798,7 +1798,7 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss,
if (seamEdges < 2 || seamEdges != v->numEdges)
seam = 0;
- if (!v->numEdges) {
+ if (!v->numEdges || ss->meshIFC.simpleSubdiv) {
VertDataCopy(nCo, co, ss);
}
else if (_vert_isBoundary(v)) {
@@ -2210,7 +2210,7 @@ static void ccgSubSurf__sync(CCGSubSurf *ss)
VertDataAdd(co, r, ss);
}
- // edge flags cleared later
+ /* edge flags cleared later */
}
for (ptrIdx = 0; ptrIdx < numEffectedV; ptrIdx++) {
CCGVert *v = effectedV[ptrIdx];
@@ -2246,7 +2246,7 @@ static void ccgSubSurf__sync(CCGSubSurf *ss)
if (seamEdges < 2 || seamEdges != v->numEdges)
seam = 0;
- if (!v->numEdges) {
+ if (!v->numEdges || ss->meshIFC.simpleSubdiv) {
VertDataCopy(nCo, co, ss);
}
else if (_vert_isBoundary(v)) {
@@ -2337,7 +2337,7 @@ static void ccgSubSurf__sync(CCGSubSurf *ss)
VertDataAdd(nCo, r, ss);
}
- // vert flags cleared later
+ /* vert flags cleared later */
}
if (ss->useAgeCounts) {
@@ -2827,6 +2827,11 @@ int ccgSubSurf_getGridLevelSize(const CCGSubSurf *ss, int level)
}
}
+int ccgSubSurf_getSimpleSubdiv(const CCGSubSurf *ss)
+{
+ return ss->meshIFC.simpleSubdiv;
+}
+
/* Vert accessors */
CCGVertHDL ccgSubSurf_getVertVertHandle(CCGVert *v)
diff --git a/source/blender/blenkernel/intern/CCGSubSurf.h b/source/blender/blenkernel/intern/CCGSubSurf.h
index 33b37ac281c..0f96bcf172d 100644
--- a/source/blender/blenkernel/intern/CCGSubSurf.h
+++ b/source/blender/blenkernel/intern/CCGSubSurf.h
@@ -17,6 +17,7 @@ typedef struct CCGMeshIFC {
int vertUserSize, edgeUserSize, faceUserSize;
int numLayers;
int vertDataSize;
+ int simpleSubdiv;
} CCGMeshIFC;
/***/
@@ -91,6 +92,7 @@ int ccgSubSurf_getEdgeSize (const CCGSubSurf *ss);
int ccgSubSurf_getEdgeLevelSize (const CCGSubSurf *ss, int level);
int ccgSubSurf_getGridSize (const CCGSubSurf *ss);
int ccgSubSurf_getGridLevelSize (const CCGSubSurf *ss, int level);
+int ccgSubSurf_getSimpleSubdiv (const CCGSubSurf *ss);
CCGVert* ccgSubSurf_getVert (CCGSubSurf *ss, CCGVertHDL v);
CCGVertHDL ccgSubSurf_getVertVertHandle (CCGVert *v);
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 3f28a4afe8d..9aaeb4c8baf 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -59,6 +59,7 @@
#include "BKE_modifier.h"
#include "BKE_mesh.h"
#include "BKE_object.h"
+#include "BKE_object_deform.h"
#include "BKE_paint.h"
#include "BKE_texture.h"
#include "BKE_multires.h"
@@ -74,7 +75,7 @@
static DerivedMesh *navmesh_dm_createNavMeshForVisualization(DerivedMesh *dm);
#endif
-#include "BLO_sys_types.h" // for intptr_t support
+#include "BLO_sys_types.h" /* for intptr_t support */
#include "GL/glew.h"
@@ -383,7 +384,7 @@ void DM_ensure_tessface(DerivedMesh *dm)
}
}
- else if (dm->dirty && DM_DIRTY_TESS_CDLAYERS) {
+ else if (dm->dirty & DM_DIRTY_TESS_CDLAYERS) {
BLI_assert(CustomData_has_layer(&dm->faceData, CD_POLYINDEX));
DM_update_tessface_data(dm);
}
@@ -498,7 +499,7 @@ void DM_to_mesh(DerivedMesh *dm, Mesh *me, Object *ob)
}
}
else {
- /*if no object, set to INT_MAX so we don't mess up any shapekey layers*/
+ /* if no object, set to INT_MAX so we don't mess up any shapekey layers */
uid = INT_MAX;
}
@@ -541,7 +542,7 @@ void DM_to_mesh(DerivedMesh *dm, Mesh *me, Object *ob)
CustomData_free(&me->pdata, me->totpoly);
/* ok, this should now use new CD shapekey data,
- * which shouuld be fed through the modifier
+ * which should be fed through the modifier
* stack*/
if (tmp.totvert != me->totvert && !did_shapekeys && me->key) {
printf("%s: YEEK! this should be recoded! Shape key loss!: ID '%s'\n", __func__, tmp.id.name);
@@ -577,6 +578,13 @@ void DM_set_only_copy(DerivedMesh *dm, CustomDataMask mask)
CustomData_set_only_copy(&dm->vertData, mask);
CustomData_set_only_copy(&dm->edgeData, mask);
CustomData_set_only_copy(&dm->faceData, mask);
+ /* this wasn't in 2.63 and is disabled for 2.64 because it gives problems with
+ * weight paint mode when there are modifiers applied, needs further investigation,
+ * see replies to r50969, Campbell */
+#if 0
+ CustomData_set_only_copy(&dm->loopData, mask);
+ CustomData_set_only_copy(&dm->polyData, mask);
+#endif
}
void DM_add_vert_layer(DerivedMesh *dm, int type, int alloctype, void *layer)
@@ -807,7 +815,7 @@ DerivedMesh *mesh_create_derived_for_modifier(Scene *scene, Object *ob,
if (mti->isDisabled && mti->isDisabled(md, 0)) return NULL;
if (build_shapekey_layers && me->key && (kb = BLI_findlink(&me->key->block, ob->shapenr - 1))) {
- key_to_mesh(kb, me);
+ BKE_key_convert_to_mesh(kb, me);
}
if (mti->type == eModifierTypeType_OnlyDeform) {
@@ -877,7 +885,7 @@ static void *get_orco_coords_dm(Object *ob, BMEditMesh *em, int layer, int *free
* by a more flexible customdata system, but not simple */
if (!em) {
ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
- KeyBlock *kb = key_get_keyblock(ob_get_key(ob), clmd->sim_parms->shapekey_rest);
+ KeyBlock *kb = BKE_keyblock_from_key(BKE_key_from_object(ob), clmd->sim_parms->shapekey_rest);
if (kb->data)
return kb->data;
@@ -956,22 +964,22 @@ void weight_to_rgb(float r_rgb[3], const float weight)
{
const float blend = ((weight / 2.0f) + 0.5f);
- if (weight <= 0.25f) { // blue->cyan
+ if (weight <= 0.25f) { /* blue->cyan */
r_rgb[0] = 0.0f;
r_rgb[1] = blend * weight * 4.0f;
r_rgb[2] = blend;
}
- else if (weight <= 0.50f) { // cyan->green
+ else if (weight <= 0.50f) { /* cyan->green */
r_rgb[0] = 0.0f;
r_rgb[1] = blend;
r_rgb[2] = blend * (1.0f - ((weight - 0.25f) * 4.0f));
}
- else if (weight <= 0.75f) { // green->yellow
+ else if (weight <= 0.75f) { /* green->yellow */
r_rgb[0] = blend * ((weight - 0.50f) * 4.0f);
r_rgb[1] = blend;
r_rgb[2] = 0.0f;
}
- else if (weight <= 1.0f) { // yellow->red
+ else if (weight <= 1.0f) { /* yellow->red */
r_rgb[0] = blend;
r_rgb[1] = blend * (1.0f - ((weight - 0.75f) * 4.0f));
r_rgb[2] = 0.0f;
@@ -1015,14 +1023,14 @@ static void calc_weightpaint_vert_color(
unsigned char r_col[4],
MDeformVert *dv, ColorBand *coba,
const int defbase_tot, const int defbase_act,
- const char *dg_flags,
- const int selected, const int draw_flag)
+ const char *defbase_sel, const int defbase_sel_tot,
+ const int draw_flag)
{
float input = 0.0f;
int make_black = FALSE;
- if ((selected > 1) && (draw_flag & CALC_WP_MULTIPAINT)) {
+ if ((defbase_sel_tot > 1) && (draw_flag & CALC_WP_MULTIPAINT)) {
int was_a_nonzero = FALSE;
unsigned int i;
@@ -1031,7 +1039,7 @@ static void calc_weightpaint_vert_color(
/* in multipaint, get the average if auto normalize is inactive
* get the sum if it is active */
if (dw->def_nr < defbase_tot) {
- if (dg_flags[dw->def_nr]) {
+ if (defbase_sel[dw->def_nr]) {
if (dw->weight) {
input += dw->weight;
was_a_nonzero = TRUE;
@@ -1045,7 +1053,7 @@ static void calc_weightpaint_vert_color(
make_black = TRUE;
}
else if ((draw_flag & CALC_WP_AUTO_NORMALIZE) == FALSE) {
- input /= selected; /* get the average */
+ input /= defbase_sel_tot; /* get the average */
}
}
else {
@@ -1090,14 +1098,21 @@ static unsigned char *calc_weightpaint_vert_array(Object *ob, DerivedMesh *dm, i
/* variables for multipaint */
const int defbase_tot = BLI_countlist(&ob->defbase);
const int defbase_act = ob->actdef - 1;
- char *dg_flags = MEM_mallocN(defbase_tot * sizeof(char), __func__);
- const int selected = get_selected_defgroups(ob, dg_flags, defbase_tot);
+
+ int defbase_sel_tot = 0;
+ char *defbase_sel = NULL;
+
+ if (draw_flag & CALC_WP_MULTIPAINT) {
+ defbase_sel = BKE_objdef_selected_get(ob, defbase_tot, &defbase_sel_tot);
+ }
for (i = numVerts; i != 0; i--, wc += 4, dv++) {
- calc_weightpaint_vert_color(wc, dv, coba, defbase_tot, defbase_act, dg_flags, selected, draw_flag);
+ calc_weightpaint_vert_color(wc, dv, coba, defbase_tot, defbase_act, defbase_sel, defbase_sel_tot, draw_flag);
}
- MEM_freeN(dg_flags);
+ if (defbase_sel) {
+ MEM_freeN(defbase_sel);
+ }
}
else {
int col_i;
@@ -1188,7 +1203,7 @@ void DM_update_weight_mcol(Object *ob, DerivedMesh *dm, int const draw_flag,
wtcol_v = calc_weightpaint_vert_array(ob, dm, draw_flag, coba);
/* Now copy colors in all face verts. */
- /*first add colors to the tessellation faces*/
+ /* first add colors to the tessellation faces */
/* XXX Why update that layer? We have to update WEIGHT_MLOOPCOL anyway,
* and tessellation recreates mface layers from mloop/mpoly ones, so no
* need to fill WEIGHT_MCOL here. */
@@ -1268,7 +1283,7 @@ static void shapekey_layers_to_keyblocks(DerivedMesh *dm, Mesh *me, int actshape
}
if (!kb) {
- kb = add_keyblock(me->key, layer->name);
+ kb = BKE_keyblock_add(me->key, layer->name);
kb->uid = layer->uid;
}
@@ -1793,7 +1808,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
{
finaldm->recalcTessellation(finaldm);
}
- /* Even if tessellation is not needed, some modifiers migh have modified CD layers
+ /* Even if tessellation is not needed, some modifiers might have modified CD layers
* (like mloopcol or mloopuv), hence we have to update those. */
else if (finaldm->dirty & DM_DIRTY_TESS_CDLAYERS) {
/* A tessellation already exists, it should always have a CD_POLYINDEX. */
@@ -2073,7 +2088,7 @@ static void editbmesh_calc_modifiers(Scene *scene, Object *ob, BMEditMesh *em, D
if ((*final_r)->type != DM_TYPE_EDITBMESH) {
DM_ensure_tessface(*final_r);
}
- if (cage_r) {
+ if (cage_r && *cage_r) {
if ((*cage_r)->type != DM_TYPE_EDITBMESH) {
if (*cage_r != *final_r) {
DM_ensure_tessface(*cage_r);
@@ -2379,16 +2394,16 @@ float *mesh_get_mapped_verts_nors(Scene *scene, Object *ob)
typedef struct {
float *precomputedFaceNormals;
- MTFace *mtface; // texture coordinates
- MFace *mface; // indices
- MVert *mvert; // vertices & normals
+ MTFace *mtface; /* texture coordinates */
+ MFace *mface; /* indices */
+ MVert *mvert; /* vertices & normals */
float (*orco)[3];
- float (*tangent)[4]; // destination
+ float (*tangent)[4]; /* destination */
int numTessFaces;
} SGLSLMeshToTangent;
-// interface
+/* interface */
#include "mikktspace.h"
static int GetNumFaces(const SMikkTSpaceContext *pContext)
@@ -2508,7 +2523,7 @@ void DM_add_tangent_layer(DerivedMesh *dm)
BLI_memarena_use_calloc(arena);
vtangents = MEM_callocN(sizeof(VertexTangent *) * totvert, "VertexTangent");
- // new computation method
+ /* new computation method */
iCalcNewMethod = 1;
if (iCalcNewMethod != 0) {
SGLSLMeshToTangent mesh2tangent = {0};
@@ -2532,7 +2547,7 @@ void DM_add_tangent_layer(DerivedMesh *dm)
sInterface.m_getNormal = GetNormal;
sInterface.m_setTSpaceBasic = SetTSpace;
- // 0 if failed
+ /* 0 if failed */
iCalcNewMethod = genTangSpaceDefault(&sContext);
}
@@ -2638,7 +2653,7 @@ void DM_calc_auto_bump_scale(DerivedMesh *dm)
tex_coords[3] = mtface[f].uv[3];
}
- // discard degenerate faces
+ /* discard degenerate faces */
is_degenerate = 0;
if (equals_v3v3(verts[0], verts[1]) || equals_v3v3(verts[0], verts[2]) || equals_v3v3(verts[1], verts[2]) ||
equals_v2v2(tex_coords[0], tex_coords[1]) || equals_v2v2(tex_coords[0], tex_coords[2]) || equals_v2v2(tex_coords[1], tex_coords[2]))
@@ -2646,7 +2661,7 @@ void DM_calc_auto_bump_scale(DerivedMesh *dm)
is_degenerate = 1;
}
- // verify last vertex as well if this is a quad
+ /* verify last vertex as well if this is a quad */
if (is_degenerate == 0 && nr_verts == 4) {
if (equals_v3v3(verts[3], verts[0]) || equals_v3v3(verts[3], verts[1]) || equals_v3v3(verts[3], verts[2]) ||
equals_v2v2(tex_coords[3], tex_coords[0]) || equals_v2v2(tex_coords[3], tex_coords[1]) || equals_v2v2(tex_coords[3], tex_coords[2]))
@@ -2654,7 +2669,7 @@ void DM_calc_auto_bump_scale(DerivedMesh *dm)
is_degenerate = 1;
}
- // verify the winding is consistent
+ /* verify the winding is consistent */
if (is_degenerate == 0) {
float prev_edge[2];
int is_signed = 0;
@@ -2681,11 +2696,11 @@ void DM_calc_auto_bump_scale(DerivedMesh *dm)
}
}
- // proceed if not a degenerate face
+ /* proceed if not a degenerate face */
if (is_degenerate == 0) {
int nr_tris_to_pile = 0;
- // quads split at shortest diagonal
- int offs = 0; // initial triangulation is 0,1,2 and 0, 2, 3
+ /* quads split at shortest diagonal */
+ int offs = 0; /* initial triangulation is 0,1,2 and 0, 2, 3 */
if (nr_verts == 4) {
float pos_len_diag0, pos_len_diag1;
float vtmp[3];
@@ -2743,7 +2758,7 @@ void DM_calc_auto_bump_scale(DerivedMesh *dm)
}
}
- // finalize
+ /* finalize */
{
const float avg_area_ratio = (nr_accumulated > 0) ? ((float)(dsum / nr_accumulated)) : 1.0f;
const float use_as_render_bump_scale = sqrtf(avg_area_ratio); // use width of average surface ratio as your bump scale
@@ -3187,4 +3202,25 @@ void DM_debug_print(DerivedMesh *dm)
MEM_freeN(str);
}
+void DM_debug_print_cdlayers(CustomData *data)
+{
+ int i;
+ CustomDataLayer *layer;
+
+ printf("{\n");
+
+ for (i = 0, layer = data->layers; i < data->totlayer; i++, layer++) {
+
+ const char *name = CustomData_layertype_name(layer->type);
+ const int size = CustomData_sizeof(layer->type);
+ const char *structname;
+ int structnum;
+ CustomData_file_write_info(layer->type, &structname, &structnum);
+ printf(" dict(name='%s', struct='%s', type=%d, ptr='%p', elem=%d, length=%d),\n",
+ name, structname, layer->type, (void *)layer->data, size, (int)(MEM_allocN_len(layer->data) / size));
+ }
+
+ printf("}\n");
+}
+
#endif /* NDEBUG */
diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c
index 8d1707725b5..66df7eccbd0 100644
--- a/source/blender/blenkernel/intern/action.c
+++ b/source/blender/blenkernel/intern/action.c
@@ -134,7 +134,7 @@ void BKE_action_make_local(bAction *act)
if (act->id.lib == NULL)
return;
- // XXX: double-check this; it used to be just single-user check, but that was when fake-users were still default
+ /* XXX: double-check this; it used to be just single-user check, but that was when fake-users were still default */
if ((act->id.flag & LIB_FAKEUSER) && (act->id.us <= 1)) {
id_clear_lib_data(bmain, &act->id);
return;
@@ -526,18 +526,12 @@ void BKE_pose_copy_data(bPose **dst, bPose *src, int copycon)
bPose *outPose;
bPoseChannel *pchan;
ListBase listb;
-
+
if (!src) {
*dst = NULL;
return;
}
- if (*dst == src) {
- printf("BKE_pose_copy_data source and target are the same\n");
- *dst = NULL;
- return;
- }
-
outPose = MEM_callocN(sizeof(bPose), "pose");
BLI_duplicatelist(&outPose->chanbase, &src->chanbase);
@@ -545,9 +539,10 @@ void BKE_pose_copy_data(bPose **dst, bPose *src, int copycon)
outPose->iksolver = src->iksolver;
outPose->ikdata = NULL;
outPose->ikparam = MEM_dupallocN(src->ikparam);
+ outPose->avs = src->avs;
for (pchan = outPose->chanbase.first; pchan; pchan = pchan->next) {
- // TODO: rename this argument...
+ /* TODO: rename this argument... */
if (copycon) {
copy_constraints(&listb, &pchan->constraints, TRUE); // copy_constraints NULLs listb
pchan->constraints = listb;
@@ -807,10 +802,10 @@ void framechange_poses_clear_unkeyed(void)
bPoseChannel *pchan;
/* This needs to be done for each object that has a pose */
- // TODO: proxies may/may not be correctly handled here... (this needs checking)
+ /* TODO: proxies may/may not be correctly handled here... (this needs checking) */
for (ob = G.main->object.first; ob; ob = ob->id.next) {
/* we only need to do this on objects with a pose */
- if ( (pose = ob->pose) ) {
+ if ((pose = ob->pose)) {
for (pchan = pose->chanbase.first; pchan; pchan = pchan->next) {
if (pchan->bone)
pchan->bone->flag &= ~BONE_UNKEYED;
@@ -907,7 +902,7 @@ void calc_action_range(const bAction *act, float *start, float *end, short incl_
float nmin, nmax;
/* get extents for this curve */
- // TODO: allow enabling/disabling this?
+ /* TODO: allow enabling/disabling this? */
calc_fcurve_range(fcu, &nmin, &nmax, FALSE, TRUE);
/* compare to the running tally */
@@ -949,7 +944,7 @@ void calc_action_range(const bAction *act, float *start, float *end, short incl_
}
break;
- // TODO: function modifier may need some special limits
+ /* TODO: function modifier may need some special limits */
default: /* all other standard modifiers are on the infinite range... */
min = MINAFRAMEF;
@@ -1129,7 +1124,7 @@ void BKE_pose_copy_result(bPose *to, bPose *from)
bPoseChannel *pchanto, *pchanfrom;
if (to == NULL || from == NULL) {
- printf("pose result copy error to:%p from:%p\n", (void *)to, (void *)from); // debug temp
+ printf("pose result copy error to:%p from:%p\n", (void *)to, (void *)from); /* debug temp */
return;
}
@@ -1220,475 +1215,3 @@ void what_does_obaction(Object *ob, Object *workob, bPose *pose, bAction *act, c
}
}
-/* ********** NLA with non-poses works with ipo channels ********** */
-
-#if 0 // XXX OLD ANIMATION SYSTEM (TO BE REMOVED)
-
-/* ************************ Blending with NLA *************** */
-
-static void blend_pose_strides(bPose *dst, bPose *src, float srcweight, short mode)
-{
- float dstweight;
-
- switch (mode) {
- case ACTSTRIPMODE_BLEND:
- dstweight = 1.0F - srcweight;
- break;
- case ACTSTRIPMODE_ADD:
- dstweight = 1.0F;
- break;
- default:
- dstweight = 1.0F;
- }
-
- interp_v3_v3v3(dst->stride_offset, dst->stride_offset, src->stride_offset, srcweight);
-}
-
-
-/*
- * bone matching diagram, strips A and B
- *
- * .------------------------.
- * | A |
- * '------------------------'
- * . . b2
- * . .-------------v----------.
- * . | B . |
- * . '------------------------'
- * . . .
- * . . .
- * offset: . 0 . A-B . A-b2+B
- * . . .
- *
- * */
-
-
-static void blend_pose_offset_bone(bActionStrip *strip, bPose *dst, bPose *src, float srcweight, short mode)
-{
- /* matching offset bones */
- /* take dst offset, and put src on on that location */
-
- if (strip->offs_bone[0] == 0)
- return;
-
- /* are we also blending with matching bones? */
- if (strip->prev && strip->start >= strip->prev->start) {
- bPoseChannel *dpchan = BKE_pose_channel_find_name(dst, strip->offs_bone);
- if (dpchan) {
- bPoseChannel *spchan = BKE_pose_channel_find_name(src, strip->offs_bone);
- if (spchan) {
- float vec[3];
-
- /* dst->ctime has the internal strip->prev action time */
- /* map this time to nla time */
-
- float ctime = get_actionstrip_frame(strip, src->ctime, 1);
-
- if (ctime > strip->prev->end) {
- bActionChannel *achan;
-
- /* add src to dest, minus the position of src on strip->prev->end */
-
- ctime = get_actionstrip_frame(strip, strip->prev->end, 0);
-
- achan = get_action_channel(strip->act, strip->offs_bone);
- if (achan && achan->ipo) {
- bPoseChannel pchan;
- /* Evaluates and sets the internal ipo value */
- calc_ipo(achan->ipo, ctime);
- /* This call also sets the pchan flags */
- execute_action_ipo(achan, &pchan);
-
- /* store offset that moves src to location of pchan */
- sub_v3_v3v3(vec, dpchan->loc, pchan.loc);
-
- mul_mat3_m4_v3(dpchan->bone->arm_mat, vec);
- }
- }
- else {
- /* store offset that moves src to location of dst */
-
- sub_v3_v3v3(vec, dpchan->loc, spchan->loc);
- mul_mat3_m4_v3(dpchan->bone->arm_mat, vec);
- }
-
- /* if blending, we only add with factor scrweight */
- mul_v3_fl(vec, srcweight);
-
- add_v3_v3(dst->cyclic_offset, vec);
- }
- }
- }
-
- add_v3_v3(dst->cyclic_offset, src->cyclic_offset);
-}
-
-/* added "sizecorr" here, to allow armatures to be scaled and still have striding.
- * Only works for uniform scaling. In general I'd advise against scaling armatures ever though! (ton)
- */
-static float stridechannel_frame(Object *ob, float sizecorr, bActionStrip *strip, Path *path, float pathdist, float *stride_offset)
-{
- bAction *act = strip->act;
- const char *name = strip->stridechannel;
- bActionChannel *achan = get_action_channel(act, name);
- int stride_axis = strip->stride_axis;
-
- if (achan && achan->ipo) {
- IpoCurve *icu = NULL;
- float minx = 0.0f, maxx = 0.0f, miny = 0.0f, maxy = 0.0f;
- int foundvert = 0;
-
- if (stride_axis == 0) stride_axis = AC_LOC_X;
- else if (stride_axis == 1) stride_axis = AC_LOC_Y;
- else stride_axis = AC_LOC_Z;
-
- /* calculate the min/max */
- for (icu = achan->ipo->curve.first; icu; icu = icu->next) {
- if (icu->adrcode == stride_axis) {
- if (icu->totvert > 1) {
- foundvert = 1;
- minx = icu->bezt[0].vec[1][0];
- maxx = icu->bezt[icu->totvert - 1].vec[1][0];
-
- miny = icu->bezt[0].vec[1][1];
- maxy = icu->bezt[icu->totvert - 1].vec[1][1];
- }
- break;
- }
- }
-
- if (foundvert && miny != maxy) {
- float stridelen = sizecorr * fabs(maxy - miny), striptime;
- float actiondist, pdist, pdistNewNormalized, offs;
- float vec1[4], vec2[4], dir[3];
-
- /* internal cycling, actoffs is in frames */
- offs = stridelen * strip->actoffs / (maxx - minx);
-
- /* amount path moves object */
- pdist = (float)fmod(pathdist + offs, stridelen);
- striptime = pdist / stridelen;
-
- /* amount stride bone moves */
- actiondist = sizecorr * eval_icu(icu, minx + striptime * (maxx - minx)) - miny;
-
- pdist = fabs(actiondist) - pdist;
- pdistNewNormalized = (pathdist + pdist) / path->totdist;
-
- /* now we need to go pdist further (or less) on cu path */
- where_on_path(ob, (pathdist) / path->totdist, vec1, dir); /* vec needs size 4 */
- if (pdistNewNormalized <= 1) {
- // search for correction in positive path-direction
- where_on_path(ob, pdistNewNormalized, vec2, dir); /* vec needs size 4 */
- sub_v3_v3v3(stride_offset, vec2, vec1);
- }
- else {
- // we reached the end of the path, search backwards instead
- where_on_path(ob, (pathdist - pdist) / path->totdist, vec2, dir); /* vec needs size 4 */
- sub_v3_v3v3(stride_offset, vec1, vec2);
- }
- mul_mat3_m4_v3(ob->obmat, stride_offset);
- return striptime;
- }
- }
- return 0.0f;
-}
-
-static void cyclic_offs_bone(Object *ob, bPose *pose, bActionStrip *strip, float time)
-{
- /* only called when strip has cyclic, so >= 1.0f works... */
- if (time >= 1.0f) {
- bActionChannel *achan = get_action_channel(strip->act, strip->offs_bone);
-
- if (achan && achan->ipo) {
- IpoCurve *icu = NULL;
- Bone *bone;
- float min[3] = {0.0f, 0.0f, 0.0f}, max[3] = {0.0f, 0.0f, 0.0f};
- int index = 0, foundvert = 0;
-
- /* calculate the min/max */
- for (icu = achan->ipo->curve.first; icu; icu = icu->next) {
- if (icu->totvert > 1) {
-
- if (icu->adrcode == AC_LOC_X)
- index = 0;
- else if (icu->adrcode == AC_LOC_Y)
- index = 1;
- else if (icu->adrcode == AC_LOC_Z)
- index = 2;
- else
- continue;
-
- foundvert = 1;
- min[index] = icu->bezt[0].vec[1][1];
- max[index] = icu->bezt[icu->totvert - 1].vec[1][1];
- }
- }
- if (foundvert) {
- /* bring it into armature space */
- sub_v3_v3v3(min, max, min);
- bone = BKE_armature_find_bone_name(ob->data, strip->offs_bone); /* weak */
- if (bone) {
- mul_mat3_m4_v3(bone->arm_mat, min);
-
- /* dominant motion, cyclic_offset was cleared in BKE_pose_rest */
- if (strip->flag & (ACTSTRIP_CYCLIC_USEX | ACTSTRIP_CYCLIC_USEY | ACTSTRIP_CYCLIC_USEZ)) {
- if (strip->flag & ACTSTRIP_CYCLIC_USEX) pose->cyclic_offset[0] = time * min[0];
- if (strip->flag & ACTSTRIP_CYCLIC_USEY) pose->cyclic_offset[1] = time * min[1];
- if (strip->flag & ACTSTRIP_CYCLIC_USEZ) pose->cyclic_offset[2] = time * min[2];
- }
- else {
- if (fabs(min[0]) >= fabs(min[1]) && fabs(min[0]) >= fabs(min[2]))
- pose->cyclic_offset[0] = time * min[0];
- else if (fabs(min[1]) >= fabs(min[0]) && fabs(min[1]) >= fabs(min[2]))
- pose->cyclic_offset[1] = time * min[1];
- else
- pose->cyclic_offset[2] = time * min[2];
- }
- }
- }
- }
- }
-}
-
-/* simple case for now; only the curve path with constraint value > 0.5 */
-/* blending we might do later... */
-static Object *get_parent_path(Object *ob)
-{
- bConstraint *con;
-
- if (ob->parent && ob->parent->type == OB_CURVE)
- return ob->parent;
-
- for (con = ob->constraints.first; con; con = con->next) {
- if (con->type == CONSTRAINT_TYPE_FOLLOWPATH) {
- if (con->enforce > 0.5f) {
- bFollowPathConstraint *data = con->data;
- return data->tar;
- }
- }
- }
- return NULL;
-}
-
-/* ************** do the action ************ */
-
-/* ----- nla, etc. --------- */
-
-static void do_nla(Scene *scene, Object *ob, int blocktype)
-{
- bPose *tpose = NULL;
- Key *key = NULL;
- ListBase tchanbase = {NULL, NULL}, chanbase = {NULL, NULL};
- bActionStrip *strip, *striplast = NULL, *stripfirst = NULL;
- float striptime, frametime, length, actlength;
- float blendfac, stripframe;
- float scene_cfra = BKE_scene_frame_get(scene);
- int doit, dostride;
-
- if (blocktype == ID_AR) {
- BKE_pose_copy_data(&tpose, ob->pose, 1);
- BKE_pose_rest(ob->pose); // potentially destroying current not-keyed pose
- }
- else {
- key = ob_get_key(ob);
- }
-
- /* check on extend to left or right, when no strip is hit by 'cfra' */
- for (strip = ob->nlastrips.first; strip; strip = strip->next) {
- /* escape loop on a hit */
- if (scene_cfra >= strip->start && scene_cfra <= strip->end + 0.1f) /* note 0.1 comes back below */
- break;
- if (scene_cfra < strip->start) {
- if (stripfirst == NULL)
- stripfirst = strip;
- else if (stripfirst->start > strip->start)
- stripfirst = strip;
- }
- else if (scene_cfra > strip->end) {
- if (striplast == NULL)
- striplast = strip;
- else if (striplast->end < strip->end)
- striplast = strip;
- }
- }
- if (strip == NULL) { /* extend */
- if (striplast)
- scene_cfra = striplast->end;
- else if (stripfirst)
- scene_cfra = stripfirst->start;
- }
-
- /* and now go over all strips */
- for (strip = ob->nlastrips.first; strip; strip = strip->next) {
- doit = dostride = 0;
-
- if (strip->act && !(strip->flag & ACTSTRIP_MUTE)) { /* so theres an action */
-
- /* Determine if the current frame is within the strip's range */
- length = strip->end - strip->start;
- actlength = strip->actend - strip->actstart;
- striptime = (scene_cfra - strip->start) / length;
- stripframe = (scene_cfra - strip->start);
-
- if (striptime >= 0.0) {
-
- if (blocktype == ID_AR)
- BKE_pose_rest(tpose);
-
- /* To handle repeat, we add 0.1 frame extra to make sure the last frame is included */
- if (striptime < 1.0f + 0.1f / length) {
-
- /* Handle path */
- if ((strip->flag & ACTSTRIP_USESTRIDE) && (blocktype == ID_AR) && (ob->ipoflag & OB_DISABLE_PATH) == 0) {
- Object *parent = get_parent_path(ob);
-
- if (parent) {
- Curve *cu = parent->data;
- float ctime, pdist;
-
- if (cu->flag & CU_PATH) {
- /* Ensure we have a valid path */
- if (cu->path == NULL || cu->path->data == NULL) makeDispListCurveTypes(scene, parent, 0);
- if (cu->path) {
-
- /* Find the position on the path */
- ctime = bsystem_time(scene, ob, scene_cfra, 0.0);
-
- if (calc_ipo_spec(cu->ipo, CU_SPEED, &ctime) == 0) {
- /* correct for actions not starting on zero */
- ctime = (ctime - strip->actstart) / cu->pathlen;
- CLAMP(ctime, 0.0, 1.0);
- }
- pdist = ctime * cu->path->totdist;
-
- if (tpose && strip->stridechannel[0]) {
- striptime = stridechannel_frame(parent, ob->size[0], strip, cu->path, pdist, tpose->stride_offset);
- }
- else {
- if (strip->stridelen) {
- striptime = pdist / strip->stridelen;
- striptime = (float)fmod(striptime + strip->actoffs, 1.0);
- }
- else
- striptime = 0;
- }
-
- frametime = (striptime * actlength) + strip->actstart;
- frametime = bsystem_time(scene, ob, frametime, 0.0);
-
- if (blocktype == ID_AR) {
- extract_pose_from_action(tpose, strip->act, frametime);
- }
- else if (blocktype == ID_OB) {
- extract_ipochannels_from_action(&tchanbase, &ob->id, strip->act, "Object", frametime);
- if (key)
- extract_ipochannels_from_action(&tchanbase, &key->id, strip->act, "Shape", frametime);
- }
- doit = dostride = 1;
- }
- }
- }
- }
- /* To handle repeat, we add 0.1 frame extra to make sure the last frame is included */
- else {
-
- /* Mod to repeat */
- if (strip->repeat != 1.0f) {
- float cycle = striptime * strip->repeat;
-
- striptime = (float)fmod(cycle, 1.0f + 0.1f / length);
- cycle -= striptime;
-
- if (blocktype == ID_AR)
- cyclic_offs_bone(ob, tpose, strip, cycle);
- }
-
- frametime = (striptime * actlength) + strip->actstart;
- frametime = nla_time(scene, frametime, (float)strip->repeat);
-
- if (blocktype == ID_AR) {
- extract_pose_from_action(tpose, strip->act, frametime);
- }
- else if (blocktype == ID_OB) {
- extract_ipochannels_from_action(&tchanbase, &ob->id, strip->act, "Object", frametime);
- if (key)
- extract_ipochannels_from_action(&tchanbase, &key->id, strip->act, "Shape", frametime);
- }
-
- doit = 1;
- }
- }
- /* Handle extend */
- else {
- if (strip->flag & ACTSTRIP_HOLDLASTFRAME) {
- /* we want the strip to hold on the exact fraction of the repeat value */
-
- frametime = actlength * (strip->repeat - (int)strip->repeat);
- if (frametime <= 0.000001f) frametime = actlength; /* rounding errors... */
- frametime = bsystem_time(scene, ob, frametime + strip->actstart, 0.0);
-
- if (blocktype == ID_AR)
- extract_pose_from_action(tpose, strip->act, frametime);
- else if (blocktype == ID_OB) {
- extract_ipochannels_from_action(&tchanbase, &ob->id, strip->act, "Object", frametime);
- if (key)
- extract_ipochannels_from_action(&tchanbase, &key->id, strip->act, "Shape", frametime);
- }
-
- /* handle cycle hold */
- if (strip->repeat != 1.0f) {
- if (blocktype == ID_AR)
- cyclic_offs_bone(ob, tpose, strip, strip->repeat - 1.0f);
- }
-
- doit = 1;
- }
- }
-
- /* Handle blendin & blendout */
- if (doit) {
- /* Handle blendin */
-
- if (strip->blendin > 0.0 && stripframe <= strip->blendin && scene_cfra >= strip->start) {
- blendfac = stripframe / strip->blendin;
- }
- else if (strip->blendout > 0.0 && stripframe >= (length - strip->blendout) && scene_cfra <= strip->end) {
- blendfac = (length - stripframe) / (strip->blendout);
- }
- else
- blendfac = 1;
-
- if (blocktype == ID_AR) { /* Blend this pose with the accumulated pose */
- /* offset bone, for matching cycles */
- blend_pose_offset_bone(strip, ob->pose, tpose, blendfac, strip->mode);
-
- blend_poses(ob->pose, tpose, blendfac, strip->mode);
- if (dostride)
- blend_pose_strides(ob->pose, tpose, blendfac, strip->mode);
- }
- else {
- blend_ipochannels(&chanbase, &tchanbase, blendfac, strip->mode);
- BLI_freelistN(&tchanbase);
- }
- }
- }
- }
- }
-
- if (blocktype == ID_OB) {
- execute_ipochannels(&chanbase);
- }
- else if (blocktype == ID_AR) {
- /* apply stride offset to object */
- add_v3_v3(ob->obmat[3], ob->pose->stride_offset);
- }
-
- /* free */
- if (tpose)
- BKE_pose_free(tpose);
- if (chanbase.first)
- BLI_freelistN(&chanbase);
-}
-
-#endif // XXX OLD ANIMATION SYSTEM (TO BE REMOVED)
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c
index 52399801691..58d20fff2bc 100644
--- a/source/blender/blenkernel/intern/anim.c
+++ b/source/blender/blenkernel/intern/anim.c
@@ -63,7 +63,6 @@
#include "BKE_object.h"
#include "BKE_particle.h"
#include "BKE_scene.h"
-#include "BKE_utildefines.h"
#include "BKE_tessmesh.h"
#include "BKE_depsgraph.h"
#include "BKE_anim.h"
@@ -75,7 +74,8 @@
/* --------------------- */
/* forward declarations */
-static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBase *duplilist, float par_space_mat[][4], int par_index, int level, int animated);
+static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBase *duplilist, float par_space_mat[][4], int par_index,
+ int level, short flag);
/* ******************************************************************** */
/* Animation Visualization */
@@ -86,24 +86,24 @@ void animviz_settings_init(bAnimVizSettings *avs)
/* sanity check */
if (avs == NULL)
return;
-
+
/* ghosting settings */
avs->ghost_bc = avs->ghost_ac = 10;
-
- avs->ghost_sf = 1; // xxx - take from scene instead?
- avs->ghost_ef = 250; // xxx - take from scene instead?
-
+
+ avs->ghost_sf = 1; /* xxx - take from scene instead? */
+ avs->ghost_ef = 250; /* xxx - take from scene instead? */
+
avs->ghost_step = 1;
-
-
+
+
/* path settings */
avs->path_bc = avs->path_ac = 10;
-
- avs->path_sf = 1; // xxx - take from scene instead?
- avs->path_ef = 250; // xxx - take from scene instead?
-
+
+ avs->path_sf = 1; /* xxx - take from scene instead? */
+ avs->path_ef = 250; /* xxx - take from scene instead? */
+
avs->path_viewflag = (MOTIONPATH_VIEW_KFRAS | MOTIONPATH_VIEW_KFNOS);
-
+
avs->path_step = 1;
}
@@ -246,7 +246,7 @@ typedef struct MPathTarget {
/* get list of motion paths to be baked for the given object
* - assumes the given list is ready to be used
*/
-// TODO: it would be nice in future to be able to update objects dependent on these bones too?
+/* TODO: it would be nice in future to be able to update objects dependent on these bones too? */
void animviz_get_object_motionpaths(Object *ob, ListBase *targets)
{
MPathTarget *mpt;
@@ -282,7 +282,7 @@ void animviz_get_object_motionpaths(Object *ob, ListBase *targets)
/* ........ */
-/* Note on evaluation optimisations:
+/* Note on evaluation optimizations:
* Optimisations currently used here play tricks with the depsgraph in order to try and
* evaluate as few objects as strictly necessary to get nicer performance under standard
* production conditions. For those people who really need the accurate version,
@@ -309,7 +309,9 @@ static void motionpaths_calc_optimise_depsgraph(Scene *scene, ListBase *targets)
BLI_addhead(&scene->base, base);
mpt->ob->flag |= BA_TEMP_TAG;
- break; // we really don't need to continue anymore once this happens, but this line might really 'break'
+
+ /* we really don't need to continue anymore once this happens, but this line might really 'break' */
+ break;
}
}
}
@@ -321,24 +323,24 @@ static void motionpaths_calc_optimise_depsgraph(Scene *scene, ListBase *targets)
/* update scene for current frame */
static void motionpaths_calc_update_scene(Scene *scene)
{
-#if 1 // 'production' optimisations always on
+#if 1 // 'production' optimizations always on
Base *base, *last = NULL;
/* only stuff that moves or needs display still */
DAG_scene_update_flags(G.main, scene, scene->lay, TRUE);
/* find the last object with the tag
- * - all those afterwards are assumed to not be relevant for our calculations
+ * - all those afterwards are assumed to not be relevant for our calculations
*/
- // optimize further by moving out...
+ /* optimize further by moving out... */
for (base = scene->base.first; base; base = base->next) {
if (base->object->flag & BA_TEMP_TAG)
last = base;
}
/* perform updates for tagged objects */
- // XXX: this will break if rigs depend on scene or other data that
- // is animated but not attached to/updatable from objects
+ /* XXX: this will break if rigs depend on scene or other data that
+ * is animated but not attached to/updatable from objects */
for (base = scene->base.first; base; base = base->next) {
/* update this object */
BKE_object_handle_update(scene, base->object);
@@ -353,7 +355,7 @@ static void motionpaths_calc_update_scene(Scene *scene)
* that doesn't force complete update, but for now, this is the
* most accurate way!
*/
- BKE_scene_update_for_newframe(G.main, scene, scene->lay); // XXX this is the best way we can get anything moving
+ BKE_scene_update_for_newframe(G.main, scene, scene->lay); /* XXX this is the best way we can get anything moving */
#endif
}
@@ -401,9 +403,9 @@ static void motionpaths_calc_bake_targets(Scene *scene, ListBase *targets)
/* Perform baking of the given object's and/or its bones' transforms to motion paths
* - scene: current scene
* - ob: object whose flagged motionpaths should get calculated
- * - recalc: whether we need to
+ * - recalc: whether we need to
*/
-// TODO: include reports pointer?
+/* TODO: include reports pointer? */
void animviz_calc_motionpaths(Scene *scene, ListBase *targets)
{
MPathTarget *mpt;
@@ -418,9 +420,9 @@ void animviz_calc_motionpaths(Scene *scene, ListBase *targets)
cfra = CFRA;
sfra = efra = cfra;
- // TODO: this method could be improved...
- // 1) max range for standard baking
- // 2) minimum range for recalc baking (i.e. between keyframes, but how?)
+ /* TODO: this method could be improved...
+ * 1) max range for standard baking
+ * 2) minimum range for recalc baking (i.e. between keyframes, but how?) */
for (mpt = targets->first; mpt; mpt = mpt->next) {
/* try to increase area to do (only as much as needed) */
sfra = MIN2(sfra, mpt->mpath->start_frame);
@@ -429,7 +431,7 @@ void animviz_calc_motionpaths(Scene *scene, ListBase *targets)
if (efra <= sfra) return;
/* optimize the depsgraph for faster updates */
- // TODO: whether this is used should depend on some setting for the level of optimisations used
+ /* TODO: whether this is used should depend on some setting for the level of optimizations used */
motionpaths_calc_optimise_depsgraph(scene, targets);
/* calculate path over requested range */
@@ -492,36 +494,42 @@ void calc_curvepath(Object *ob)
/* in a path vertices are with equal differences: path->len = number of verts */
/* NOW WITH BEVELCURVE!!! */
- if (ob == NULL || ob->type != OB_CURVE) return;
+ if (ob == NULL || ob->type != OB_CURVE) {
+ return;
+ }
cu = ob->data;
- nurbs = BKE_curve_nurbs_get(cu);
- nu = nurbs->first;
-
if (cu->path) free_path(cu->path);
cu->path = NULL;
+ /* weak! can only use first curve */
bl = cu->bev.first;
- if (bl == NULL || !bl->nr) return;
+ if (bl == NULL || !bl->nr) {
+ return;
+ }
+
+ nurbs = BKE_curve_nurbs_get(cu);
+ nu = nurbs->first;
cu->path = path = MEM_callocN(sizeof(Path), "calc_curvepath");
/* if POLY: last vertice != first vertice */
cycl = (bl->poly != -1);
- if (cycl) tot = bl->nr;
- else tot = bl->nr - 1;
+ tot = cycl ? bl->nr : bl->nr - 1;
path->len = tot + 1;
/* exception: vector handle paths and polygon paths should be subdivided at least a factor resolu */
- if (path->len < nu->resolu * SEGMENTSU(nu)) path->len = nu->resolu * SEGMENTSU(nu);
+ if (path->len < nu->resolu * SEGMENTSU(nu)) {
+ path->len = nu->resolu * SEGMENTSU(nu);
+ }
dist = (float *)MEM_mallocN((tot + 1) * 4, "calcpathdist");
/* all lengths in *dist */
bevp = bevpfirst = (BevPoint *)(bl + 1);
fp = dist;
- *fp = 0;
+ *fp = 0.0f;
for (a = 0; a < tot; a++) {
fp++;
if (cycl && a == tot - 1)
@@ -556,19 +564,16 @@ void calc_curvepath(Object *ob)
fp++;
if (bevp < bevplast) bevp++;
bevpn = bevp + 1;
- if (bevpn > bevplast) {
- if (cycl) bevpn = bevpfirst;
- else bevpn = bevplast;
+ if (UNLIKELY(bevpn > bevplast)) {
+ bevpn = cycl ? bevpfirst : bevplast;
}
}
- fac1 = *(fp) - *(fp - 1);
- fac2 = *(fp) - d;
- fac1 = fac2 / fac1;
+ fac1 = (*(fp) - d) / (*(fp) - *(fp - 1));
fac2 = 1.0f - fac1;
-
+
interp_v3_v3v3(pp->vec, bevp->vec, bevpn->vec, fac2);
- pp->vec[3] = fac1 * bevp->alfa + fac2 * bevpn->alfa;
+ pp->vec[3] = fac1 * bevp->alfa + fac2 * bevpn->alfa;
pp->radius = fac1 * bevp->radius + fac2 * bevpn->radius;
pp->weight = fac1 * bevp->weight + fac2 * bevpn->weight;
interp_qt_qtqt(pp->quat, bevp->quat, bevpn->quat, fac2);
@@ -580,18 +585,14 @@ void calc_curvepath(Object *ob)
MEM_freeN(dist);
}
-
-/* is this only used internally?*/
-int interval_test(int min, int max, int p1, int cycl)
+static int interval_test(const int min, const int max, int p1, const int cycl)
{
if (cycl) {
- if (p1 < min)
- p1 = ((p1 - min) % (max - min + 1)) + max + 1;
- else if (p1 > max)
- p1 = ((p1 - min) % (max - min + 1)) + min;
+ if (p1 < min) p1 = ((p1 - min) % (max - min + 1)) + max + 1;
+ else if (p1 > max) p1 = ((p1 - min) % (max - min + 1)) + min;
}
else {
- if (p1 < min) p1 = min;
+ if (p1 < min) p1 = min;
else if (p1 > max) p1 = max;
}
return p1;
@@ -699,7 +700,11 @@ int where_on_path(Object *ob, float ctime, float vec[4], float dir[3], float qua
/* ******************************************************************** */
/* Dupli-Geometry */
-static DupliObject *new_dupli_object(ListBase *lb, Object *ob, float mat[][4], int lay, int index, int par_index, int type, int animated)
+#define DUPLILIST_DO_UPDATE 1
+#define DUPLILIST_FOR_RENDER 2
+#define DUPLILIST_ANIMATED 4
+
+static DupliObject *new_dupli_object(ListBase *lb, Object *ob, float mat[][4], int lay, int index, int par_index, int type, short flag)
{
DupliObject *dob = MEM_callocN(sizeof(DupliObject), "dupliobject");
@@ -711,13 +716,14 @@ static DupliObject *new_dupli_object(ListBase *lb, Object *ob, float mat[][4], i
dob->index = index;
dob->particle_index = par_index;
dob->type = type;
- dob->animated = (type == OB_DUPLIGROUP) && animated;
+ dob->animated = (type == OB_DUPLIGROUP) && (flag & DUPLILIST_ANIMATED);
ob->lay = lay;
return dob;
}
-static void group_duplilist(ListBase *lb, Scene *scene, Object *ob, int par_index, int level, int animated)
+static void group_duplilist(ListBase *lb, Scene *scene, Object *ob, int par_index,
+ int level, short flag)
{
DupliObject *dob;
Group *group;
@@ -731,9 +737,16 @@ static void group_duplilist(ListBase *lb, Scene *scene, Object *ob, int par_inde
if (level > MAX_DUPLI_RECUR) return;
/* handles animated groups, and */
+
/* we need to check update for objects that are not in scene... */
- group_handle_recalc_and_update(scene, ob, group);
- animated = animated || group_is_animated(ob, group);
+ if (flag & DUPLILIST_DO_UPDATE) {
+ /* note: update is optional because we don't always need object
+ * transformations to be correct. Also fixes bug [#29616]. */
+ group_handle_recalc_and_update(scene, ob, group);
+ }
+
+ if (group_is_animated(ob, group))
+ flag |= DUPLILIST_ANIMATED;
for (go = group->gobject.first; go; go = go->next) {
/* note, if you check on layer here, render goes wrong... it still deforms verts and uses parent imat */
@@ -749,12 +762,12 @@ static void group_duplilist(ListBase *lb, Scene *scene, Object *ob, int par_inde
mult_m4_m4m4(mat, ob->obmat, go->ob->obmat);
}
- dob = new_dupli_object(lb, go->ob, mat, ob->lay, 0, par_index, OB_DUPLIGROUP, animated);
+ dob = new_dupli_object(lb, go->ob, mat, ob->lay, 0, par_index, OB_DUPLIGROUP, flag);
/* check the group instance and object layers match, also that the object visible flags are ok. */
if ((dob->origlay & group->layer) == 0 ||
- (G.rendering == 0 && dob->ob->restrictflag & OB_RESTRICT_VIEW) ||
- (G.rendering && dob->ob->restrictflag & OB_RESTRICT_RENDER))
+ ((G.is_rendering == FALSE) && dob->ob->restrictflag & OB_RESTRICT_VIEW) ||
+ ((G.is_rendering == TRUE) && dob->ob->restrictflag & OB_RESTRICT_RENDER))
{
dob->no_draw = TRUE;
}
@@ -764,14 +777,14 @@ static void group_duplilist(ListBase *lb, Scene *scene, Object *ob, int par_inde
if (go->ob->transflag & OB_DUPLI) {
copy_m4_m4(dob->ob->obmat, dob->mat);
- object_duplilist_recursive(&group->id, scene, go->ob, lb, ob->obmat, par_index, level + 1, animated);
+ object_duplilist_recursive(&group->id, scene, go->ob, lb, ob->obmat, par_index, level + 1, flag);
copy_m4_m4(dob->ob->obmat, dob->omat);
}
}
}
}
-static void frames_duplilist(ListBase *lb, Scene *scene, Object *ob, int par_index, int level, int animated)
+static void frames_duplilist(ListBase *lb, Scene *scene, Object *ob, int par_index, int level, short flag)
{
extern int enable_cu_speed; /* object.c */
Object copyob;
@@ -819,7 +832,7 @@ static void frames_duplilist(ListBase *lb, Scene *scene, Object *ob, int par_ind
BKE_animsys_evaluate_animdata(scene, &ob->id, ob->adt, (float)scene->r.cfra, ADT_RECALC_ANIM); /* ob-eval will do drivers, so we don't need to do them */
BKE_object_where_is_calc_time(scene, ob, (float)scene->r.cfra);
- dob = new_dupli_object(lb, ob, ob->obmat, ob->lay, scene->r.cfra, par_index, OB_DUPLIFRAMES, animated);
+ dob = new_dupli_object(lb, ob, ob->obmat, ob->lay, scene->r.cfra, par_index, OB_DUPLIFRAMES, flag);
copy_m4_m4(dob->omat, copyob.obmat);
}
}
@@ -843,7 +856,7 @@ static void frames_duplilist(ListBase *lb, Scene *scene, Object *ob, int par_ind
typedef struct VertexDupliData {
ID *id; /* scene or group, for recursive loops */
int level;
- int animated;
+ short flag;
ListBase *lb;
float pmat[4][4];
float obmat[4][4]; /* Only used for dupliverts inside dupligroups, where the ob->obmat is modified */
@@ -887,7 +900,7 @@ static void vertex_dupli__mapFunc(void *userData, int index, const float co[3],
origlay = vdd->ob->lay;
- dob = new_dupli_object(vdd->lb, vdd->ob, obmat, vdd->par->lay, index, vdd->par_index, OB_DUPLIVERTS, vdd->animated);
+ dob = new_dupli_object(vdd->lb, vdd->ob, obmat, vdd->par->lay, index, vdd->par_index, OB_DUPLIVERTS, vdd->flag);
/* restore the original layer so that each dupli will have proper dob->origlay */
vdd->ob->lay = origlay;
@@ -899,12 +912,13 @@ static void vertex_dupli__mapFunc(void *userData, int index, const float co[3],
float tmpmat[4][4];
copy_m4_m4(tmpmat, vdd->ob->obmat);
copy_m4_m4(vdd->ob->obmat, obmat); /* pretend we are really this mat */
- object_duplilist_recursive((ID *)vdd->id, vdd->scene, vdd->ob, vdd->lb, obmat, vdd->par_index, vdd->level + 1, vdd->animated);
+ object_duplilist_recursive((ID *)vdd->id, vdd->scene, vdd->ob, vdd->lb, obmat, vdd->par_index, vdd->level + 1, vdd->flag);
copy_m4_m4(vdd->ob->obmat, tmpmat);
}
}
-static void vertex_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, float par_space_mat[][4], int par_index, int level, int animated)
+static void vertex_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, float par_space_mat[][4], int par_index,
+ int level, short flag)
{
Object *ob, *ob_iter;
Mesh *me = par->data;
@@ -924,7 +938,7 @@ static void vertex_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, fl
/* simple preventing of too deep nested groups */
if (level > MAX_DUPLI_RECUR) return;
- em = me->edit_btmesh;
+ em = BMEdit_FromObject(par);
if (em) {
dm = editbmesh_get_derived_cage(scene, par, em, CD_MASK_BAREMESH);
@@ -932,7 +946,7 @@ static void vertex_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, fl
else
dm = mesh_get_derived_deform(scene, par, CD_MASK_BAREMESH);
- if (G.rendering) {
+ if (flag & DUPLILIST_FOR_RENDER) {
vdd.orco = (float(*)[3])BKE_mesh_orco_verts_get(par);
BKE_mesh_orco_verts_transform(me, vdd.orco, me->totvert, 0);
}
@@ -982,7 +996,7 @@ static void vertex_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, fl
vdd.id = id;
vdd.level = level;
- vdd.animated = animated;
+ vdd.flag = flag;
vdd.lb = lb;
vdd.ob = ob;
vdd.scene = scene;
@@ -1027,7 +1041,8 @@ static void vertex_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, fl
dm->release(dm);
}
-static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, float par_space_mat[][4], int par_index, int level, int animated)
+static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, float par_space_mat[][4], int par_index,
+ int level, short flag)
{
Object *ob, *ob_iter;
Base *base = NULL;
@@ -1050,7 +1065,7 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
if (level > MAX_DUPLI_RECUR) return;
copy_m4_m4(pmat, par->obmat);
- em = me->edit_btmesh;
+ em = BMEdit_FromObject(par);
if (em) {
dm = editbmesh_get_derived_cage(scene, par, em, CD_MASK_BAREMESH);
@@ -1064,8 +1079,7 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
mloop = dm->getLoopArray(dm);
mvert = dm->getVertArray(dm);
- if (G.rendering) {
-
+ if (flag & DUPLILIST_FOR_RENDER) {
orco = (float(*)[3])BKE_mesh_orco_verts_get(par);
BKE_mesh_orco_verts_transform(me, orco, me->totvert, 0);
mloopuv = me->mloopuv;
@@ -1128,21 +1142,17 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
float *v3;
/* float *v4; */ /* UNUSED */
float cent[3], quat[4], mat[3][3], mat3[3][3], tmat[4][4], obmat[4][4];
+ float f_no[3];
MLoop *loopstart = mloop + mp->loopstart;
- if (mp->totloop < 3) {
- /* highly unlikely but to be safe */
+ if (UNLIKELY(mp->totloop < 3)) {
continue;
}
else {
+ BKE_mesh_calc_poly_normal(mp, mloop + mp->loopstart, mvert, f_no);
v1 = mvert[(mv1 = loopstart[0].v)].co;
v2 = mvert[(mv2 = loopstart[1].v)].co;
v3 = mvert[(mv3 = loopstart[2].v)].co;
-#if 0
- if (mp->totloop > 3) {
- v4 = mvert[(mv4 = loopstart[3].v)].co;
- }
-#endif
}
/* translation */
@@ -1158,12 +1168,12 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
copy_v3_v3(obmat[3], cent);
/* rotation */
- tri_to_quat(quat, v1, v2, v3);
+ tri_to_quat_ex(quat, v1, v2, v3, f_no);
quat_to_mat3(mat, quat);
/* scale */
if (par->transflag & OB_DUPLIFACES_SCALE) {
- float size = BKE_mesh_calc_poly_area(mp, loopstart, mvert, NULL);
+ float size = BKE_mesh_calc_poly_area(mp, loopstart, mvert, f_no);
size = sqrtf(size) * par->dupfacesca;
mul_m3_fl(mat, size);
}
@@ -1174,8 +1184,8 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
copy_m4_m4(tmat, obmat);
mul_m4_m4m3(obmat, tmat, mat);
- dob = new_dupli_object(lb, ob, obmat, par->lay, a, par_index, OB_DUPLIFACES, animated);
- if (G.rendering) {
+ dob = new_dupli_object(lb, ob, obmat, par->lay, a, par_index, OB_DUPLIFACES, (flag & DUPLILIST_ANIMATED));
+ if (flag & DUPLILIST_FOR_RENDER) {
w = 1.0f / (float)mp->totloop;
if (orco) {
@@ -1197,7 +1207,7 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
float tmpmat[4][4];
copy_m4_m4(tmpmat, ob->obmat);
copy_m4_m4(ob->obmat, obmat); /* pretend we are really this mat */
- object_duplilist_recursive((ID *)id, scene, ob, lb, ob->obmat, par_index, level + 1, animated);
+ object_duplilist_recursive((ID *)id, scene, ob, lb, ob->obmat, par_index, level + 1, flag);
copy_m4_m4(ob->obmat, tmpmat);
}
}
@@ -1217,7 +1227,8 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
dm->release(dm);
}
-static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, float par_space_mat[][4], int UNUSED(par_index), ParticleSystem *psys, int level, int animated)
+static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, float par_space_mat[][4], int UNUSED(par_index), ParticleSystem *psys,
+ int level, short flag)
{
GroupObject *go;
Object *ob = NULL, **oblist = NULL, obcopy, *obcopylist = NULL;
@@ -1249,7 +1260,7 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p
if (!psys_check_enabled(par, psys))
return;
- if (G.rendering == 0)
+ if (G.is_rendering == FALSE)
no_draw_flag |= PARS_NO_DISP;
ctime = BKE_scene_frame_get(scene); /* NOTE: in old animsys, used parent object's timeoffset... */
@@ -1277,9 +1288,9 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p
if (part->dup_group == NULL || part->dup_group->gobject.first == NULL)
return;
- for (go = part->dup_group->gobject.first; go; go = go->next)
- if (go->ob == par)
- return;
+ if (BLI_findptr(&part->dup_group->gobject, par, offsetof(GroupObject, ob))) {
+ return;
+ }
}
/* if we have a hair particle system, use the path cache */
@@ -1300,7 +1311,9 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p
/* gather list of objects or single object */
if (part->ren_as == PART_DRAW_GR) {
- group_handle_recalc_and_update(scene, par, part->dup_group);
+ if (flag & DUPLILIST_DO_UPDATE) {
+ group_handle_recalc_and_update(scene, par, part->dup_group);
+ }
if (part->draw & PART_DRAW_COUNT_GR) {
for (dw = part->dupliweights.first; dw; dw = dw->next)
@@ -1441,9 +1454,9 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p
else
copy_m4_m4(mat, tmat);
- dob = new_dupli_object(lb, go->ob, mat, par->lay, counter, index, OB_DUPLIPARTS, animated);
+ dob = new_dupli_object(lb, go->ob, mat, par->lay, counter, index, OB_DUPLIPARTS, (flag & DUPLILIST_ANIMATED));
copy_m4_m4(dob->omat, obcopylist[b].obmat);
- if (G.rendering)
+ if (flag & DUPLILIST_FOR_RENDER)
psys_get_dupli_texture(psys, part, sim.psmd, pa, cpa, dob->uv, dob->orco);
}
}
@@ -1456,12 +1469,30 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p
/* particle rotation uses x-axis as the aligned axis, so pre-rotate the object accordingly */
if ((part->draw & PART_DRAW_ROTATE_OB) == 0) {
- float xvec[3], q[4];
+ float xvec[3], q[4], size_mat[4][4], original_size[3];
+
+ mat4_to_size(original_size, obmat);
+ size_to_mat4(size_mat, original_size);
+
xvec[0] = -1.f;
xvec[1] = xvec[2] = 0;
vec_to_quat(q, xvec, ob->trackflag, ob->upflag);
quat_to_mat4(obmat, q);
obmat[3][3] = 1.0f;
+
+ /* add scaling if requested */
+ if ((part->draw & PART_DRAW_NO_SCALE_OB) == 0)
+ mult_m4_m4m4(obmat, obmat, size_mat);
+ }
+ else if (part->draw & PART_DRAW_NO_SCALE_OB) {
+ /* remove scaling */
+ float size_mat[4][4], original_size[3];
+
+ mat4_to_size(original_size, obmat);
+ size_to_mat4(size_mat, original_size);
+ invert_m4(size_mat);
+
+ mult_m4_m4m4(obmat, obmat, size_mat);
}
/* Normal particles and cached hair live in global space so we need to
@@ -1483,9 +1514,9 @@ static void new_particle_duplilist(ListBase *lb, ID *id, Scene *scene, Object *p
if (part->draw & PART_DRAW_GLOBAL_OB)
add_v3_v3v3(mat[3], mat[3], vec);
- dob = new_dupli_object(lb, ob, mat, ob->lay, counter, index, GS(id->name) == ID_GR ? OB_DUPLIGROUP : OB_DUPLIPARTS, animated);
+ dob = new_dupli_object(lb, ob, mat, ob->lay, counter, index, GS(id->name) == ID_GR ? OB_DUPLIGROUP : OB_DUPLIPARTS, (flag & DUPLILIST_ANIMATED));
copy_m4_m4(dob->omat, oldobmat);
- if (G.rendering)
+ if (flag & DUPLILIST_FOR_RENDER)
psys_get_dupli_texture(psys, part, sim.psmd, pa, cpa, dob->uv, dob->orco);
}
@@ -1537,11 +1568,11 @@ static Object *find_family_object(Object **obar, char *family, char ch)
}
-static void font_duplilist(ListBase *lb, Scene *scene, Object *par, int par_index, int level, int animated)
+static void font_duplilist(ListBase *lb, Scene *scene, Object *par, int par_index, int level, short flag)
{
Object *ob, *obar[256] = {NULL};
Curve *cu;
- struct chartrans *ct, *chartransdata;
+ struct CharTrans *ct, *chartransdata;
float vec[3], obmat[4][4], pmat[4][4], fsize, xof, yof;
int slen, a;
@@ -1576,7 +1607,7 @@ static void font_duplilist(ListBase *lb, Scene *scene, Object *par, int par_inde
copy_m4_m4(obmat, par->obmat);
copy_v3_v3(obmat[3], vec);
- new_dupli_object(lb, ob, obmat, par->lay, a, par_index, OB_DUPLIVERTS, animated);
+ new_dupli_object(lb, ob, obmat, par->lay, a, par_index, OB_DUPLIVERTS, flag);
}
}
@@ -1585,13 +1616,14 @@ static void font_duplilist(ListBase *lb, Scene *scene, Object *par, int par_inde
/* ------------- */
-static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBase *duplilist, float par_space_mat[][4], int par_index, int level, int animated)
+static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBase *duplilist, float par_space_mat[][4], int par_index,
+ int level, short flag)
{
if ((ob->transflag & OB_DUPLI) == 0)
return;
/* Should the dupli's be generated for this object? - Respect restrict flags */
- if (G.rendering) {
+ if (G.is_rendering) {
if (ob->restrictflag & OB_RESTRICT_RENDER) {
return;
}
@@ -1605,31 +1637,31 @@ static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBas
if (ob->transflag & OB_DUPLIPARTS) {
ParticleSystem *psys = ob->particlesystem.first;
for (; psys; psys = psys->next)
- new_particle_duplilist(duplilist, id, scene, ob, par_space_mat, par_index, psys, level + 1, animated);
+ new_particle_duplilist(duplilist, id, scene, ob, par_space_mat, par_index, psys, level + 1, flag);
}
else if (ob->transflag & OB_DUPLIVERTS) {
if (ob->type == OB_MESH) {
- vertex_duplilist(duplilist, id, scene, ob, par_space_mat, par_index, level + 1, animated);
+ vertex_duplilist(duplilist, id, scene, ob, par_space_mat, par_index, level + 1, flag);
}
else if (ob->type == OB_FONT) {
if (GS(id->name) == ID_SCE) { /* TODO - support dupligroups */
- font_duplilist(duplilist, scene, ob, par_index, level + 1, animated);
+ font_duplilist(duplilist, scene, ob, par_index, level + 1, flag);
}
}
}
else if (ob->transflag & OB_DUPLIFACES) {
if (ob->type == OB_MESH)
- face_duplilist(duplilist, id, scene, ob, par_space_mat, par_index, level + 1, animated);
+ face_duplilist(duplilist, id, scene, ob, par_space_mat, par_index, level + 1, flag);
}
else if (ob->transflag & OB_DUPLIFRAMES) {
if (GS(id->name) == ID_SCE) { /* TODO - support dupligroups */
- frames_duplilist(duplilist, scene, ob, par_index, level + 1, animated);
+ frames_duplilist(duplilist, scene, ob, par_index, level + 1, flag);
}
}
else if (ob->transflag & OB_DUPLIGROUP) {
DupliObject *dob;
- group_duplilist(duplilist, scene, ob, par_index, level + 1, animated); /* now recursive */
+ group_duplilist(duplilist, scene, ob, par_index, level + 1, flag); /* now recursive */
if (level == 0) {
for (dob = duplilist->first; dob; dob = dob->next)
@@ -1641,14 +1673,27 @@ static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBas
/* Returns a list of DupliObject
* note; group dupli's already set transform matrix. see note in group_duplilist() */
-ListBase *object_duplilist(Scene *sce, Object *ob)
+ListBase *object_duplilist_ex(Scene *sce, Object *ob, int update, int for_render)
{
ListBase *duplilist = MEM_mallocN(sizeof(ListBase), "duplilist");
+ int flag = 0;
+
+ if(update) flag |= DUPLILIST_DO_UPDATE;
+ if(for_render) flag |= DUPLILIST_FOR_RENDER;
+
duplilist->first = duplilist->last = NULL;
- object_duplilist_recursive((ID *)sce, sce, ob, duplilist, NULL, 0, 0, 0);
+ object_duplilist_recursive((ID *)sce, sce, ob, duplilist, NULL, 0, 0, flag);
return duplilist;
}
+/* note: previously updating was always done, this is why it defaults to be on
+ * but there are likely places it can be called without updating */
+ListBase *object_duplilist(Scene *sce, Object *ob, int for_render)
+{
+ return object_duplilist_ex(sce, ob, TRUE, for_render);
+}
+
+
void free_object_duplilist(ListBase *lb)
{
DupliObject *dob;
diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c
index 943bad35cf2..5dae2035ab0 100644
--- a/source/blender/blenkernel/intern/anim_sys.c
+++ b/source/blender/blenkernel/intern/anim_sys.c
@@ -59,7 +59,6 @@
#include "BKE_main.h"
#include "BKE_library.h"
#include "BKE_report.h"
-#include "BKE_utildefines.h"
#include "RNA_access.h"
@@ -76,9 +75,9 @@ short id_type_can_have_animdata(ID *id)
/* sanity check */
if (id == NULL)
return 0;
-
+
/* Only some ID-blocks have this info for now */
- // TODO: finish adding this for the other blocktypes
+ /* TODO: finish adding this for the other blocktypes */
switch (GS(id->name)) {
/* has AnimData */
case ID_OB:
@@ -231,7 +230,7 @@ void BKE_free_animdata(ID *id)
free_fcurves(&adt->drivers);
/* free overrides */
- // TODO...
+ /* TODO... */
/* free animdata now */
MEM_freeN(adt);
@@ -334,7 +333,7 @@ void BKE_animdata_make_local(AnimData *adt)
if (adt->remap && adt->remap->target) BKE_action_make_local(adt->remap->target);
/* Drivers */
- // TODO: need to remap the ID-targets too?
+ /* TODO: need to remap the ID-targets too? */
/* NLA Data */
for (nlt = adt->nla_tracks.first; nlt; nlt = nlt->next)
@@ -505,8 +504,8 @@ void BKE_animdata_separate_by_basepath(ID *srcID, ID *dstID, ListBase *basepaths
else if (dstAdt->action == srcAdt->action) {
printf("Argh! Source and Destination share animation! ('%s' and '%s' both use '%s') Making new empty action\n",
srcID->name, dstID->name, srcAdt->action->id.name);
-
- // TODO: review this...
+
+ /* TODO: review this... */
id_us_min(&dstAdt->action->id);
dstAdt->action = add_empty_action(dstAdt->action->id.name + 2);
}
@@ -534,9 +533,9 @@ void BKE_animdata_separate_by_basepath(ID *srcID, ID *dstID, ListBase *basepaths
/* just need to change lists */
BLI_remlink(&srcAdt->drivers, fcu);
BLI_addtail(&dstAdt->drivers, fcu);
-
- // TODO: add depsgraph flushing calls?
-
+
+ /* TODO: add depsgraph flushing calls? */
+
/* can stop now, as moved already */
break;
}
@@ -603,7 +602,7 @@ static char *rna_path_rename_fix(ID *owner_id, const char *prefix, const char *o
BLI_dynstr_free(ds);
/* check if the new path will solve our problems */
- // TODO: will need to check whether this step really helps in practice
+ /* TODO: will need to check whether this step really helps in practice */
if (!verify_paths || check_rna_path_is_valid(owner_id, newPath)) {
/* free the old path, and return the new one, since we've solved the issues */
MEM_freeN(oldpath);
@@ -621,15 +620,30 @@ static char *rna_path_rename_fix(ID *owner_id, const char *prefix, const char *o
}
/* Check RNA-Paths for a list of F-Curves */
-static void fcurves_path_rename_fix(ID *owner_id, const char *prefix, char *oldName, char *newName, ListBase *curves, int verify_paths)
+static void fcurves_path_rename_fix(ID *owner_id, const char *prefix, const char *oldName, const char *newName,
+ const char *oldKey, const char *newKey, ListBase *curves, int verify_paths)
{
FCurve *fcu;
/* we need to check every curve... */
for (fcu = curves->first; fcu; fcu = fcu->next) {
- /* firstly, handle the F-Curve's own path */
- if (fcu->rna_path)
- fcu->rna_path = rna_path_rename_fix(owner_id, prefix, oldName, newName, fcu->rna_path, verify_paths);
+ if (fcu->rna_path) {
+ char *old_path = fcu->rna_path;
+
+ /* firstly, handle the F-Curve's own path */
+ fcu->rna_path = rna_path_rename_fix(owner_id, prefix, oldKey, newKey, fcu->rna_path, verify_paths);
+
+ /* if path changed and the F-Curve is grouped, check if its group also needs renaming
+ * (i.e. F-Curve is first of a bone's F-Curves; hence renaming this should also trigger rename)
+ */
+ if (fcu->rna_path != old_path) {
+ bActionGroup *agrp = fcu->grp;
+
+ if ((agrp) && strcmp(oldName, agrp->name) == 0) {
+ BLI_strncpy(agrp->name, newName, sizeof(agrp->name));
+ }
+ }
+ }
}
}
@@ -675,7 +689,8 @@ static void drivers_path_rename_fix(ID *owner_id, ID *ref_id, const char *prefix
}
/* Fix all RNA-Paths for Actions linked to NLA Strips */
-static void nlastrips_path_rename_fix(ID *owner_id, const char *prefix, char *oldName, char *newName, ListBase *strips, int verify_paths)
+static void nlastrips_path_rename_fix(ID *owner_id, const char *prefix, const char *oldName, const char *newName,
+ const char *oldKey, const char *newKey, ListBase *strips, int verify_paths)
{
NlaStrip *strip;
@@ -683,11 +698,11 @@ static void nlastrips_path_rename_fix(ID *owner_id, const char *prefix, char *ol
for (strip = strips->first; strip; strip = strip->next) {
/* fix strip's action */
if (strip->act)
- fcurves_path_rename_fix(owner_id, prefix, oldName, newName, &strip->act->curves, verify_paths);
+ fcurves_path_rename_fix(owner_id, prefix, oldName, newName, oldKey, newKey, &strip->act->curves, verify_paths);
/* ignore own F-Curves, since those are local... */
/* check sub-strips (if metas) */
- nlastrips_path_rename_fix(owner_id, prefix, oldName, newName, &strip->strips, verify_paths);
+ nlastrips_path_rename_fix(owner_id, prefix, oldName, newName, oldKey, newKey, &strip->strips, verify_paths);
}
}
@@ -717,16 +732,16 @@ void BKE_animdata_fix_paths_rename(ID *owner_id, AnimData *adt, ID *ref_id, cons
/* Active action and temp action */
if (adt->action)
- fcurves_path_rename_fix(owner_id, prefix, oldN, newN, &adt->action->curves, verify_paths);
+ fcurves_path_rename_fix(owner_id, prefix, oldName, newName, oldN, newN, &adt->action->curves, verify_paths);
if (adt->tmpact)
- fcurves_path_rename_fix(owner_id, prefix, oldN, newN, &adt->tmpact->curves, verify_paths);
+ fcurves_path_rename_fix(owner_id, prefix, oldName, newName, oldN, newN, &adt->tmpact->curves, verify_paths);
/* Drivers - Drivers are really F-Curves */
drivers_path_rename_fix(owner_id, ref_id, prefix, oldName, newName, oldN, newN, &adt->drivers, verify_paths);
/* NLA Data - Animation Data for Strips */
for (nlt = adt->nla_tracks.first; nlt; nlt = nlt->next)
- nlastrips_path_rename_fix(owner_id, prefix, oldN, newN, &nlt->strips, verify_paths);
+ nlastrips_path_rename_fix(owner_id, prefix, oldName, newName, oldN, newN, &nlt->strips, verify_paths);
/* free the temp names */
MEM_freeN(oldN);
@@ -907,7 +922,7 @@ void BKE_all_animdata_fix_paths_rename(ID *ref_id, const char *prefix, const cha
/* Finding Tools --------------------------- */
/* Find the first path that matches the given criteria */
-// TODO: do we want some method to perform partial matches too?
+/* TODO: do we want some method to perform partial matches too? */
KS_Path *BKE_keyingset_find_path(KeyingSet *ks, ID *id, const char group_name[], const char rna_path[], int array_index, int UNUSED(group_mode))
{
KS_Path *ksp;
@@ -936,7 +951,7 @@ KS_Path *BKE_keyingset_find_path(KeyingSet *ks, ID *id, const char group_name[],
/* group */
if (group_name) {
- // FIXME: these checks need to be coded... for now, it's not too important though
+ /* FIXME: these checks need to be coded... for now, it's not too important though */
}
/* if all aspects are ok, return */
@@ -1019,7 +1034,7 @@ KS_Path *BKE_keyingset_add_path(KeyingSet *ks, ID *id, const char group_name[],
ksp->idtype = GS(id->name);
/* just copy path info */
- // TODO: should array index be checked too?
+ /* TODO: should array index be checked too? */
ksp->rna_path = BLI_strdupn(rna_path, strlen(rna_path));
ksp->array_index = array_index;
@@ -1116,11 +1131,13 @@ void BKE_keyingsets_free(ListBase *list)
static short animsys_remap_path(AnimMapper *UNUSED(remap), char *path, char **dst)
{
/* is there a valid remapping table to use? */
- //if (remap) {
- /* find a matching entry... to use to remap */
- // ...TODO...
- //}
-
+#if 0
+ if (remap) {
+ /* find a matching entry... to use to remap */
+ /* ...TODO... */
+ }
+#endif
+
/* nothing suitable found, so just set dst to look at path (i.e. no alloc/free needed) */
*dst = path;
return 0;
@@ -1143,6 +1160,7 @@ static short animsys_write_rna_setting(PointerRNA *ptr, char *path, int array_in
/* set value - only for animatable numerical values */
if (RNA_property_animateable(&new_ptr, prop)) {
int array_len = RNA_property_array_length(&new_ptr, prop);
+ int written = FALSE;
if (array_len && array_index >= array_len) {
if (G.debug & G_DEBUG) {
@@ -1156,25 +1174,52 @@ static short animsys_write_rna_setting(PointerRNA *ptr, char *path, int array_in
switch (RNA_property_type(prop)) {
case PROP_BOOLEAN:
- if (array_len)
- RNA_property_boolean_set_index(&new_ptr, prop, array_index, ANIMSYS_FLOAT_AS_BOOL(value));
- else
- RNA_property_boolean_set(&new_ptr, prop, ANIMSYS_FLOAT_AS_BOOL(value));
+ if (array_len) {
+ if (RNA_property_boolean_get_index(&new_ptr, prop, array_index) != ANIMSYS_FLOAT_AS_BOOL(value)) {
+ RNA_property_boolean_set_index(&new_ptr, prop, array_index, ANIMSYS_FLOAT_AS_BOOL(value));
+ written = TRUE;
+ }
+ }
+ else {
+ if (RNA_property_boolean_get(&new_ptr, prop) != ANIMSYS_FLOAT_AS_BOOL(value)) {
+ RNA_property_boolean_set(&new_ptr, prop, ANIMSYS_FLOAT_AS_BOOL(value));
+ written = TRUE;
+ }
+ }
break;
case PROP_INT:
- if (array_len)
- RNA_property_int_set_index(&new_ptr, prop, array_index, (int)value);
- else
- RNA_property_int_set(&new_ptr, prop, (int)value);
+ if (array_len) {
+ if (RNA_property_int_get_index(&new_ptr, prop, array_index) != (int)value) {
+ RNA_property_int_set_index(&new_ptr, prop, array_index, (int)value);
+ written = TRUE;
+ }
+ }
+ else {
+ if (RNA_property_int_get(&new_ptr, prop) != (int)value) {
+ RNA_property_int_set(&new_ptr, prop, (int)value);
+ written = TRUE;
+ }
+ }
break;
case PROP_FLOAT:
- if (array_len)
- RNA_property_float_set_index(&new_ptr, prop, array_index, value);
- else
- RNA_property_float_set(&new_ptr, prop, value);
+ if (array_len) {
+ if (RNA_property_float_get_index(&new_ptr, prop, array_index) != value) {
+ RNA_property_float_set_index(&new_ptr, prop, array_index, value);
+ written = TRUE;
+ }
+ }
+ else {
+ if (RNA_property_float_get(&new_ptr, prop) != value) {
+ RNA_property_float_set(&new_ptr, prop, value);
+ written = TRUE;
+ }
+ }
break;
case PROP_ENUM:
- RNA_property_enum_set(&new_ptr, prop, (int)value);
+ if (RNA_property_enum_get(&new_ptr, prop) != (int)value) {
+ RNA_property_enum_set(&new_ptr, prop, (int)value);
+ written = TRUE;
+ }
break;
default:
/* nothing can be done here... so it is unsuccessful? */
@@ -1184,7 +1229,7 @@ static short animsys_write_rna_setting(PointerRNA *ptr, char *path, int array_in
/* RNA property update disabled for now - [#28525] [#28690] [#28774] [#28777] */
#if 0
/* buffer property update for later flushing */
- if (RNA_property_update_check(prop)) {
+ if (written && RNA_property_update_check(prop)) {
short skip_updates_hack = 0;
/* optimization hacks: skip property updates for those properties
@@ -1204,7 +1249,7 @@ static short animsys_write_rna_setting(PointerRNA *ptr, char *path, int array_in
/* as long as we don't do property update, we still tag datablock
* as having been updated. this flag does not cause any updates to
* be run, it's for e.g. render engines to synchronize data */
- if (new_ptr.id.data) {
+ if (written && new_ptr.id.data) {
ID *id = new_ptr.id.data;
id->flag |= LIB_ID_RECALC;
DAG_id_type_tag(G.main, GS(id->name));
@@ -1216,8 +1261,8 @@ static short animsys_write_rna_setting(PointerRNA *ptr, char *path, int array_in
}
else {
/* failed to get path */
- // XXX don't tag as failed yet though, as there are some legit situations (Action Constraint)
- // where some channels will not exist, but shouldn't lock up Action
+ /* XXX don't tag as failed yet though, as there are some legit situations (Action Constraint)
+ * where some channels will not exist, but shouldn't lock up Action */
if (G.debug & G_DEBUG) {
printf("Animato: Invalid path. ID = '%s', '%s[%d]'\n",
(ptr && ptr->id.data) ? (((ID *)ptr->id.data)->name + 2) : "<No ID>",
@@ -1425,11 +1470,11 @@ static void nlastrip_evaluate_controls(NlaStrip *strip, float ctime)
animsys_evaluate_fcurves(&strip_ptr, &strip->fcurves, NULL, ctime);
}
- /* if user can control the evaluation time (using F-Curves), consider the option which allows this time to be clamped
+ /* if user can control the evaluation time (using F-Curves), consider the option which allows this time to be clamped
* to lie within extents of the action-clip, so that a steady changing rate of progress through several cycles of the clip
* can be achieved easily
*/
- // NOTE: if we add any more of these special cases, we better group them up nicely...
+ /* NOTE: if we add any more of these special cases, we better group them up nicely... */
if ((strip->flag & NLASTRIP_FLAG_USR_TIME) && (strip->flag & NLASTRIP_FLAG_USR_TIME_CYCLIC))
strip->strip_time = fmod(strip->strip_time - strip->actstart, strip->actend - strip->actstart);
}
@@ -1511,7 +1556,7 @@ NlaEvalStrip *nlastrips_ctime_get_strip(ListBase *list, ListBase *strips, short
* - skip if no influence (i.e. same effect as muting the strip)
* - negative influence is not supported yet... how would that be defined?
*/
- // TODO: this sounds a bit hacky having a few isolated F-Curves stuck on some data it operates on...
+ /* TODO: this sounds a bit hacky having a few isolated F-Curves stuck on some data it operates on... */
nlastrip_evaluate_controls(estrip, ctime);
if (estrip->influence <= 0.0f)
return NULL;
@@ -1668,7 +1713,7 @@ static void nlaevalchan_accumulate(NlaEvalChannel *nec, NlaEvalStrip *nes, short
break;
case NLASTRIP_MODE_REPLACE:
- default: // TODO: do we really want to blend by default? it seems more uses might prefer add...
+ default: /* TODO: do we really want to blend by default? it seems more uses might prefer add... */
/* do linear interpolation
* - the influence of the accumulated data (elsewhere, that is called dstweight)
* is 1 - influence, since the strip's influence is srcweight
@@ -1864,7 +1909,7 @@ static void nlastrip_evaluate_transition(PointerRNA *ptr, ListBase *channels, Li
tmp_nes = *nes;
/* evaluate these strips into a temp-buffer (tmp_channels) */
- // FIXME: modifier evalation here needs some work...
+ /* FIXME: modifier evalation here needs some work... */
/* first strip */
tmp_nes.strip_mode = NES_TIME_TRANSITION_START;
tmp_nes.strip = s1;
@@ -1928,11 +1973,11 @@ static void nlastrip_evaluate_meta(PointerRNA *ptr, ListBase *channels, ListBase
void nlastrip_evaluate(PointerRNA *ptr, ListBase *channels, ListBase *modifiers, NlaEvalStrip *nes)
{
NlaStrip *strip = nes->strip;
-
+
/* to prevent potential infinite recursion problems (i.e. transition strip, beside meta strip containing a transition
* several levels deep inside it), we tag the current strip as being evaluated, and clear this when we leave
*/
- // TODO: be careful with this flag, since some edit tools may be running and have set this while animplayback was running
+ /* TODO: be careful with this flag, since some edit tools may be running and have set this while animplayback was running */
if (strip->flag & NLASTRIP_FLAG_EDIT_TOUCHED)
return;
strip->flag |= NLASTRIP_FLAG_EDIT_TOUCHED;
@@ -1997,7 +2042,7 @@ void nladata_flush_channels(ListBase *channels)
RNA_property_enum_set(ptr, prop, (int)value);
break;
default:
- // can't do anything with other types of property....
+ /* can't do anything with other types of property.... */
break;
}
}
@@ -2081,7 +2126,7 @@ static void animsys_evaluate_nla(ListBase *echannels, PointerRNA *ptr, AnimData
}
else {
/* special case - evaluate as if there isn't any NLA data */
- // TODO: this is really just a stop-gap measure...
+ /* TODO: this is really just a stop-gap measure... */
animsys_evaluate_action(ptr, adt->action, adt->remap, ctime);
return;
}
@@ -2107,10 +2152,10 @@ static void animsys_evaluate_nla(ListBase *echannels, PointerRNA *ptr, AnimData
static void animsys_calculate_nla(PointerRNA *ptr, AnimData *adt, float ctime)
{
ListBase echannels = {NULL, NULL};
-
- // TODO: need to zero out all channels used, otherwise we have problems with threadsafety
- // and also when the user jumps between different times instead of moving sequentially...
-
+
+ /* TODO: need to zero out all channels used, otherwise we have problems with threadsafety
+ * and also when the user jumps between different times instead of moving sequentially... */
+
/* evaluate the NLA stack, obtaining a set of values to flush */
animsys_evaluate_nla(&echannels, ptr, adt, ctime);
@@ -2130,9 +2175,9 @@ static void animsys_calculate_nla(PointerRNA *ptr, AnimData *adt, float ctime)
#if 0
AnimOverride *BKE_animsys_validate_override(PointerRNA *UNUSED(ptr), char *UNUSED(path), int UNUSED(array_index))
{
- // FIXME: need to define how to get overrides
+ /* FIXME: need to define how to get overrides */
return NULL;
-}
+}
#endif
/* -------------------- */
@@ -2202,7 +2247,7 @@ void BKE_animsys_evaluate_animdata(Scene *scene, ID *id, AnimData *adt, float ct
* - NLA before Active Action, as Active Action behaves as 'tweaking track'
* that overrides 'rough' work in NLA
*/
- // TODO: need to double check that this all works correctly
+ /* TODO: need to double check that this all works correctly */
if ((recalc & ADT_RECALC_ANIM) || (adt->recalc & ADT_RECALC_ANIM)) {
/* evaluate NLA data */
if ((adt->nla_tracks.first) && !(adt->flag & ADT_NLA_EVAL_OFF)) {
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index 5822b296a8a..b87342f85fa 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -210,7 +210,7 @@ bArmature *BKE_armature_copy(bArmature *arm)
newArm = BKE_libblock_copy(&arm->id);
BLI_duplicatelist(&newArm->bonebase, &arm->bonebase);
- /* Duplicate the childrens' lists*/
+ /* Duplicate the childrens' lists */
newBone = newArm->bonebase.first;
for (oldBone = arm->bonebase.first; oldBone; oldBone = oldBone->next) {
newBone->parent = NULL;
@@ -1463,7 +1463,7 @@ void vec_roll_to_mat3(const float vec[3], const float roll, float mat[][3])
*
* was 0.0000000000001, caused bug [#31333], smaller values give unstable
* roll when toggling editmode again...
- * No good value here, trying 0.000000001 as best compromize. :/
+ * No good value here, trying 0.000000001 as best compromise. :/
*/
if (dot_v3v3(axis, axis) > 1.0e-9f) {
/* if nor is *not* a multiple of target ... */
@@ -1551,7 +1551,7 @@ void BKE_armature_where_is(bArmature *arm)
static void pose_proxy_synchronize(Object *ob, Object *from, int layer_protected)
{
bPose *pose = ob->pose, *frompose = from->pose;
- bPoseChannel *pchan, *pchanp, pchanw;
+ bPoseChannel *pchan, *pchanp;
bConstraint *con;
int error = 0;
@@ -1587,31 +1587,32 @@ static void pose_proxy_synchronize(Object *ob, Object *from, int layer_protected
for (pchan = pose->chanbase.first; pchan; pchan = pchan->next) {
pchanp = BKE_pose_channel_find_name(frompose, pchan->name);
-
+
if (UNLIKELY(pchanp == NULL)) {
/* happens for proxies that become invalid because of a missing link
* for regulat cases it shouldn't happen at all */
}
else if (pchan->bone->layer & layer_protected) {
ListBase proxylocal_constraints = {NULL, NULL};
-
+ bPoseChannel pchanw = {NULL};
+
/* copy posechannel to temp, but restore important pointers */
pchanw = *pchanp;
pchanw.prev = pchan->prev;
pchanw.next = pchan->next;
pchanw.parent = pchan->parent;
pchanw.child = pchan->child;
-
+
/* this is freed so copy a copy, else undo crashes */
if (pchanw.prop) {
pchanw.prop = IDP_CopyProperty(pchanw.prop);
-
+
/* use the values from the the existing props */
if (pchan->prop) {
IDP_SyncGroupValues(pchanw.prop, pchan->prop);
}
}
-
+
/* constraints - proxy constraints are flushed... local ones are added after
* 1. extract constraints not from proxy (CONSTRAINT_PROXY_LOCAL) from pchan's constraints
* 2. copy proxy-pchan's constraints on-to new
@@ -1622,30 +1623,30 @@ static void pose_proxy_synchronize(Object *ob, Object *from, int layer_protected
extract_proxylocal_constraints(&proxylocal_constraints, &pchan->constraints);
copy_constraints(&pchanw.constraints, &pchanp->constraints, FALSE);
BLI_movelisttolist(&pchanw.constraints, &proxylocal_constraints);
-
+
/* constraints - set target ob pointer to own object */
for (con = pchanw.constraints.first; con; con = con->next) {
bConstraintTypeInfo *cti = constraint_get_typeinfo(con);
ListBase targets = {NULL, NULL};
bConstraintTarget *ct;
-
+
if (cti && cti->get_constraint_targets) {
cti->get_constraint_targets(con, &targets);
-
+
for (ct = targets.first; ct; ct = ct->next) {
if (ct->tar == from)
ct->tar = ob;
}
-
+
if (cti->flush_constraint_targets)
cti->flush_constraint_targets(con, &targets, 0);
}
}
-
+
/* free stuff from current channel */
BKE_pose_channel_free(pchan);
-
- /* the final copy */
+
+ /* copy data in temp back over to the cleaned-out (but still allocated) original channel */
*pchan = pchanw;
}
else {
@@ -2049,7 +2050,8 @@ static void splineik_evaluate_bone(tSplineIK_Tree *tree, Scene *scene, Object *o
cross_v3_v3v3(raxis, rmat[1], splineVec);
rangle = dot_v3v3(rmat[1], splineVec);
- rangle = acos(MAX2(-1.0f, MIN2(1.0f, rangle)));
+ CLAMP(rangle, -1.0f, 1.0f);
+ rangle = acosf(rangle);
/* multiply the magnitude of the angle by the influence of the constraint to
* control the influence of the SplineIK effect
@@ -2515,36 +2517,6 @@ void BKE_pose_where_is(Scene *scene, Object *ob)
}
}
-
-/* Returns total selected vgroups,
- * wpi.defbase_sel is assumed malloc'd, all values are set */
-int get_selected_defgroups(Object *ob, char *dg_selection, int defbase_tot)
-{
- bDeformGroup *defgroup;
- unsigned int i;
- Object *armob = BKE_object_pose_armature_get(ob);
- int dg_flags_sel_tot = 0;
-
- if (armob) {
- bPose *pose = armob->pose;
- for (i = 0, defgroup = ob->defbase.first; i < defbase_tot && defgroup; defgroup = defgroup->next, i++) {
- bPoseChannel *pchan = BKE_pose_channel_find_name(pose, defgroup->name);
- if (pchan && (pchan->bone->flag & BONE_SELECTED)) {
- dg_selection[i] = TRUE;
- dg_flags_sel_tot++;
- }
- else {
- dg_selection[i] = FALSE;
- }
- }
- }
- else {
- memset(dg_selection, FALSE, sizeof(char) * defbase_tot);
- }
-
- return dg_flags_sel_tot;
-}
-
/************** Bounding box ********************/
static int minmax_armature(Object *ob, float r_min[3], float r_max[3])
{
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
index 0def299c24a..197e38ac778 100644
--- a/source/blender/blenkernel/intern/blender.c
+++ b/source/blender/blenkernel/intern/blender.c
@@ -44,7 +44,8 @@
#include <stdio.h>
#include <stddef.h>
#include <string.h>
-#include <fcntl.h> // for open
+#include <fcntl.h> /* for open */
+#include <errno.h>
#include "MEM_guardedalloc.h"
@@ -80,19 +81,18 @@
#include "BKE_sound.h"
#include "RE_pipeline.h"
-
#include "BLO_undofile.h"
#include "BLO_readfile.h"
#include "BLO_writefile.h"
-#include "BKE_utildefines.h"
-
#include "RNA_access.h"
#include "WM_api.h" // XXXXX BAD, very BAD dependency (bad level call) - remove asap, elubie
+#include "IMB_colormanagement.h"
+
#ifdef WITH_PYTHON
-#include "BPY_extern.h"
+# include "BPY_extern.h"
#endif
Global G;
@@ -116,7 +116,7 @@ void free_blender(void)
BLI_callback_global_finalize();
- seq_stripelem_cache_destruct();
+ BKE_sequencer_cache_destruct();
IMB_moviecache_destruct();
free_nodesystem();
@@ -219,8 +219,6 @@ static void setup_app_data(bContext *C, BlendFileData *bfd, const char *filepath
/* no load screens? */
if (mode) {
/* comes from readfile.c */
- extern void lib_link_screen_restore(Main *, bScreen *, Scene *);
-
SWAP(ListBase, G.main->wm, bfd->main->wm);
SWAP(ListBase, G.main->screen, bfd->main->screen);
SWAP(ListBase, G.main->script, bfd->main->script);
@@ -234,7 +232,7 @@ static void setup_app_data(bContext *C, BlendFileData *bfd, const char *filepath
if (curscreen) curscreen->scene = curscene; /* can run in bgmode */
/* clear_global will free G.main, here we can still restore pointers */
- lib_link_screen_restore(bfd->main, curscreen, curscene);
+ blo_lib_link_screen_restore(bfd->main, curscreen, curscene);
}
/* free G.main Main database */
@@ -301,8 +299,8 @@ static void setup_app_data(bContext *C, BlendFileData *bfd, const char *filepath
//setscreen(G.curscreen);
}
- // FIXME: this version patching should really be part of the file-reading code,
- // but we still get too many unrelated data-corruption crashes otherwise...
+ /* FIXME: this version patching should really be part of the file-reading code,
+ * but we still get too many unrelated data-corruption crashes otherwise... */
if (G.main->versionfile < 250)
do_versions_ipos_to_animato(G.main);
@@ -324,7 +322,11 @@ static void setup_app_data(bContext *C, BlendFileData *bfd, const char *filepath
/* baseflags, groups, make depsgraph, etc */
BKE_scene_set_background(G.main, CTX_data_scene(C));
-
+
+ if (mode != 'u') {
+ IMB_colormanagement_check_file_config(G.main);
+ }
+
MEM_freeN(bfd);
(void)curscene; /* quiet warning */
@@ -457,7 +459,7 @@ int blender_test_break(void)
blender_test_break_cb();
}
- return (G.afbreek == 1);
+ return (G.is_break == TRUE);
}
@@ -465,11 +467,10 @@ int blender_test_break(void)
#define UNDO_DISK 0
-#define MAXUNDONAME 64
typedef struct UndoElem {
struct UndoElem *next, *prev;
char str[FILE_MAX];
- char name[MAXUNDONAME];
+ char name[BKE_UNDO_STR_MAX];
MemFile memfile;
uintptr_t undosize;
} UndoElem;
@@ -515,8 +516,13 @@ void BKE_write_undo(bContext *C, const char *name)
int nr /*, success */ /* UNUSED */;
UndoElem *uel;
- if ( (U.uiflag & USER_GLOBALUNDO) == 0) return;
- if (U.undosteps == 0) return;
+ if ((U.uiflag & USER_GLOBALUNDO) == 0) {
+ return;
+ }
+
+ if (U.undosteps == 0) {
+ return;
+ }
/* remove all undos after (also when curundo == NULL) */
while (undobase.last != curundo) {
@@ -615,7 +621,9 @@ void BKE_undo_step(bContext *C, int step)
}
else if (step == 1) {
/* curundo should never be NULL, after restart or load file it should call undo_save */
- if (curundo == NULL || curundo->prev == NULL) ; // XXX error("No undo available");
+ if (curundo == NULL || curundo->prev == NULL) {
+ // XXX error("No undo available");
+ }
else {
if (G.debug & G_DEBUG) printf("undo %s\n", curundo->name);
curundo = curundo->prev;
@@ -625,7 +633,9 @@ void BKE_undo_step(bContext *C, int step)
else {
/* curundo has to remain current situation! */
- if (curundo == NULL || curundo->next == NULL) ; // XXX error("No redo available");
+ if (curundo == NULL || curundo->next == NULL) {
+ // XXX error("No redo available");
+ }
else {
read_undosave(C, curundo->next);
curundo = curundo->next;
@@ -717,38 +727,60 @@ void BKE_undo_save_quit(void)
{
UndoElem *uel;
MemFileChunk *chunk;
- int file;
char str[FILE_MAX];
-
- if ( (U.uiflag & USER_GLOBALUNDO) == 0) return;
-
+ const int flag = O_BINARY + O_WRONLY + O_CREAT + O_TRUNC + O_EXCL;
+ int file;
+
+ if ((U.uiflag & USER_GLOBALUNDO) == 0) {
+ return;
+ }
+
uel = curundo;
if (uel == NULL) {
- printf("No undo buffer to save recovery file\n");
+ fprintf(stderr, "No undo buffer to save recovery file\n");
return;
}
-
+
/* no undo state to save */
- if (undobase.first == undobase.last) return;
-
+ if (undobase.first == undobase.last) {
+ return;
+ }
+
+ /* save the undo state as quit.blend */
BLI_make_file_string("/", str, BLI_temporary_dir(), "quit.blend");
- file = BLI_open(str, O_BINARY + O_WRONLY + O_CREAT + O_TRUNC, 0666);
+ /* first try create the file, if it exists call without 'O_CREAT',
+ * to avoid writing to a symlink - use 'O_EXCL' (CVE-2008-1103) */
+ errno = 0;
+ file = BLI_open(str, flag, 0666);
if (file == -1) {
- //XXX error("Unable to save %s, check you have permissions", str);
+ if (errno == EEXIST) {
+ errno = 0;
+ file = BLI_open(str, flag & ~O_CREAT, 0666);
+ }
+ }
+
+ if (file == -1) {
+ fprintf(stderr, "Unable to save '%s': %s\n",
+ str, errno ? strerror(errno) : "Unknown error opening file");
return;
}
- chunk = uel->memfile.chunks.first;
- while (chunk) {
- if (write(file, chunk->buf, chunk->size) != chunk->size) break;
- chunk = chunk->next;
+ for (chunk = uel->memfile.chunks.first; chunk; chunk = chunk->next) {
+ if (write(file, chunk->buf, chunk->size) != chunk->size) {
+ break;
+ }
}
-
+
close(file);
- if (chunk) ; //XXX error("Unable to save %s, internal error", str);
- else printf("Saved session recovery to %s\n", str);
+ if (chunk) {
+ fprintf(stderr, "Unable to save '%s': %s\n",
+ str, errno ? strerror(errno) : "Unknown error writing file");
+ }
+ else {
+ printf("Saved session recovery to '%s'\n", str);
+ }
}
/* sets curscene */
diff --git a/source/blender/blenkernel/intern/bmfont.c b/source/blender/blenkernel/intern/bmfont.c
index e1f4e45e9c3..a7d90f09160 100644
--- a/source/blender/blenkernel/intern/bmfont.c
+++ b/source/blender/blenkernel/intern/bmfont.c
@@ -75,7 +75,7 @@ void calcAlpha(ImBuf * ibuf)
if (ibuf) {
rect = (char *) ibuf->rect;
- for (i = ibuf->x * ibuf->y ; i > 0 ; i--) {
+ for (i = ibuf->x * ibuf->y; i > 0; i--) {
rect[3] = MAX3(rect[0], rect[1], rect[2]);
rect += 4;
}
@@ -96,9 +96,9 @@ void readBitmapFontVersion0(ImBuf * ibuf, unsigned char * rect, int step)
ysize = (bytes + (ibuf->x - 1)) / ibuf->x;
if (ysize < ibuf->y) {
- // we're first going to copy all data into a liniar buffer.
- // step can be 4 or 1 bytes, and the data is not sequential because
- // the bitmap was flipped vertically.
+ /* we're first going to copy all data into a linear buffer.
+ * step can be 4 or 1 bytes, and the data is not sequential because
+ * the bitmap was flipped vertically. */
buffer = MEM_mallocN(bytes, "readBitmapFontVersion0:buffer");
@@ -107,18 +107,18 @@ void readBitmapFontVersion0(ImBuf * ibuf, unsigned char * rect, int step)
buffer[i] = rect[index];
index += step;
if (index >= linelength) {
- // we've read one line, no skip to the line *before* that
+ /* we've read one line, no skip to the line *before* that */
rect -= linelength;
index -= linelength;
}
}
- // we're now going to endian convert the data
+ /* we're now going to endian convert the data */
bmfont = MEM_mallocN(bytes, "readBitmapFontVersion0:bmfont");
index = 0;
- // first read the header
+ /* first read the header */
bmfont->magic[0] = buffer[index++];
bmfont->magic[1] = buffer[index++];
bmfont->magic[2] = buffer[index++];
@@ -151,16 +151,16 @@ void readBitmapFontVersion0(ImBuf * ibuf, unsigned char * rect, int step)
printf("bytes = %d\n", bytes);
}
- // we've read the data from the image. Now we're going
- // to crop the image vertically so only the bitmap data
- // remains visible
-
+ /* we've read the data from the image. Now we're going
+ * to crop the image vertically so only the bitmap data
+ * remains visible */
+
ibuf->y -= ysize;
ibuf->userdata = bmfont;
ibuf->userflags |= IB_BITMAPFONT;
if (ibuf->planes < 32) {
- // we're going to fake alpha here:
+ /* we're going to fake alpha here: */
calcAlpha(ibuf);
}
}
@@ -176,32 +176,32 @@ void detectBitmapFont(ImBuf *ibuf)
int i;
if (ibuf != NULL && ibuf->rect != NULL) {
- // bitmap must have an x size that is a power of two
+ /* bitmap must have an x size that is a power of two */
if (is_power_of_two(ibuf->x)) {
rect = (unsigned char *) (ibuf->rect + (ibuf->x * (ibuf->y - 1)));
- // printf ("starts with: %s %c %c %c %c\n", rect, rect[0], rect[1], rect[2], rect[3]);
+ /* printf ("starts with: %s %c %c %c %c\n", rect, rect[0], rect[1], rect[2], rect[3]); */
if (rect[0] == 'B' && rect[1] == 'F' && rect[2] == 'N' && rect[3] == 'T') {
- // printf("found 8bit font !\n");
- // round y size down
- // do the 8 bit font stuff. (not yet)
+ /* printf("found 8bit font !\n");
+ * round y size down
+ * do the 8 bit font stuff. (not yet) */
}
else {
- // we try all 4 possible combinations
+ /* we try all 4 possible combinations */
for (i = 0; i < 4; i++) {
if (rect[0] == 'B' && rect[4] == 'F' && rect[8] == 'N' && rect[12] == 'T') {
- // printf("found 24bit font !\n");
- // We're going to parse the file:
-
+ /* printf("found 24bit font !\n");
+ * We're going to parse the file: */
+
version = (rect[16] << 8) | rect[20];
-
+
if (version == 0) {
readBitmapFontVersion0(ibuf, rect, 4);
}
else {
printf("detectBitmapFont :Unsupported version %d\n", version);
}
-
- // on succes ibuf->userdata points to the bitmapfont
+
+ /* on succes ibuf->userdata points to the bitmapfont */
if (ibuf->userdata) {
break;
}
@@ -221,23 +221,23 @@ int locateGlyph(bmFont *bmfont, unsigned short unicode)
min = 0;
max = bmfont->glyphcount;
while (1) {
- // look halfway for glyph
+ /* look halfway for glyph */
current = (min + max) >> 1;
if (bmfont->glyphs[current].unicode == unicode) {
break;
}
else if (bmfont->glyphs[current].unicode < unicode) {
- // have to move up
+ /* have to move up */
min = current;
}
else {
- // have to move down
+ /* have to move down */
max = current;
}
-
+
if (max - min <= 1) {
- // unable to locate glyph
+ /* unable to locate glyph */
current = 0;
break;
}
@@ -278,7 +278,7 @@ void matrixGlyph(ImBuf * ibuf, unsigned short unicode,
*centerx = bmfont->glyphs[0].locx / (float) ibuf->x;
*centery = (ibuf->y - bmfont->glyphs[0].locy) / (float) ibuf->y;
- // 2.0 units is the default size of an object
+ /* 2.0 units is the default size of an object */
*movey = 1.0f - *sizey + 2.0f * (bmfont->glyphs[index].ofsy - bmfont->glyphs[0].ofsy) / (float) bmfont->glyphs[0].sizey;
*movex = *sizex - 1.0f + 2.0f * (bmfont->glyphs[index].ofsx - bmfont->glyphs[0].ofsx) / (float) bmfont->glyphs[0].sizex;
diff --git a/source/blender/blenkernel/intern/boids.c b/source/blender/blenkernel/intern/boids.c
index edb3120cf87..79d5e092a10 100644
--- a/source/blender/blenkernel/intern/boids.c
+++ b/source/blender/blenkernel/intern/boids.c
@@ -425,7 +425,7 @@ static int rule_follow_leader(BoidRule *rule, BoidBrainData *bbd, BoidValues *va
if (flbr->ob) {
float vec2[3], t;
- /* first check we're not blocking the leader*/
+ /* first check we're not blocking the leader */
sub_v3_v3v3(vec, flbr->loc, flbr->oloc);
mul_v3_fl(vec, 1.0f/bbd->timestep);
@@ -1168,7 +1168,7 @@ void boid_body(BoidBrainData *bbd, ParticleData *pa)
/* constrain direction with maximum angular velocity */
angle = saacos(dot_v3v3(old_dir, wanted_dir));
- angle = MIN2(angle, val.max_ave);
+ angle = minf(angle, val.max_ave);
cross_v3_v3v3(nor, old_dir, wanted_dir);
axis_angle_to_quat(q, nor, angle);
diff --git a/source/blender/blenkernel/intern/booleanops_mesh.c b/source/blender/blenkernel/intern/booleanops_mesh.c
index 972793227a8..be79077bb58 100644
--- a/source/blender/blenkernel/intern/booleanops_mesh.c
+++ b/source/blender/blenkernel/intern/booleanops_mesh.c
@@ -44,19 +44,19 @@
CSG_DestroyMeshDescriptor(
CSG_MeshDescriptor *mesh
) {
- // Call mesh descriptors destroy function....
+ /* Call mesh descriptors destroy function.... */
mesh->m_destroy_func(mesh);
}
-
-// Destroy function for blender mesh internals.
+
+/* Destroy function for blender mesh internals. */
static
void
CSG_DestroyBlenderMeshInternals(
CSG_MeshDescriptor *mesh
) {
- // Free face and vertex iterators.
- FreeMeshDescriptors(&(mesh->m_face_iterator),&(mesh->m_vertex_iterator));
+ /* Free face and vertex iterators. */
+ FreeMeshDescriptors(&(mesh->m_face_iterator),&(mesh->m_vertex_iterator));
}
@@ -140,18 +140,18 @@ CSG_AddMeshToBlender(
invert_m4_m4(inv_mat,mesh->base->object->obmat);
- // Create a new blender mesh object - using 'base' as
- // a template for the new object.
+ /* Create a new blender mesh object - using 'base' as
+ * a template for the new object. */
ob_new= AddNewBlenderMesh(mesh->base);
me_new = ob_new->data;
- // make sure the iterators are reset.
+ /* make sure the iterators are reset. */
mesh->m_face_iterator.Reset(mesh->m_face_iterator.it);
mesh->m_vertex_iterator.Reset(mesh->m_vertex_iterator.it);
- // iterate through results of operation and insert into new object
- // see subsurf.c
+ /* iterate through results of operation and insert into new object
+ * see subsurf.c */
ConvertCSGDescriptorsToMeshObject(
ob_new,
@@ -195,8 +195,8 @@ CSG_PerformOp(
output->base = mesh1->base;
if (output->m_descriptor.user_face_vertex_data_size) {
- // Then use the only interp function supported
- success =
+ /* Then use the only interp function supported */
+ success =
CSG_PerformBooleanOperation(
bool_op,
op_type,
@@ -225,8 +225,8 @@ CSG_PerformOp(
bool_op = NULL;
return 0;
}
-
- // get the ouput mesh descriptors.
+
+ /* get the ouput mesh descriptors. */
CSG_OutputFaceDescriptor(bool_op,&(output->m_face_iterator));
CSG_OutputVertexDescriptor(bool_op,&(output->m_vertex_iterator));
diff --git a/source/blender/blenkernel/intern/brush.c b/source/blender/blenkernel/intern/brush.c
index 741d4b729ae..ce39eea5ceb 100644
--- a/source/blender/blenkernel/intern/brush.c
+++ b/source/blender/blenkernel/intern/brush.c
@@ -421,7 +421,7 @@ void BKE_brush_curve_preset(Brush *b, /*CurveMappingPreset*/ int preset)
b->curve->preset = preset;
curvemap_reset(cm, &b->curve->clipr, b->curve->preset, CURVEMAP_SLOPE_NEGATIVE);
- curvemapping_changed(b->curve, 0);
+ curvemapping_changed(b->curve, FALSE);
}
int BKE_brush_texture_set_nr(Brush *brush, int nr)
@@ -529,7 +529,7 @@ void BKE_brush_imbuf_new(const Scene *scene, Brush *brush, short flt, short texf
unsigned char *dst, crgb[3];
const float alpha = BKE_brush_alpha_get(scene, brush);
float brush_rgb[3];
-
+
imbflag = (flt) ? IB_rectfloat : IB_rect;
xoff = -bufsize / 2.0f + 0.5f;
yoff = -bufsize / 2.0f + 0.5f;
@@ -563,7 +563,7 @@ void BKE_brush_imbuf_new(const Scene *scene, Brush *brush, short flt, short texf
else {
BKE_brush_sample_tex(scene, brush, xy, rgba, 0);
mul_v3_v3v3(dstf, rgba, brush_rgb);
- dstf[3] = rgba[3] *alpha *BKE_brush_curve_strength_clamp(brush, len_v2(xy), radius);
+ dstf[3] = rgba[3] * alpha * BKE_brush_curve_strength_clamp(brush, len_v2(xy), radius);
}
}
}
@@ -594,7 +594,7 @@ void BKE_brush_imbuf_new(const Scene *scene, Brush *brush, short flt, short texf
else if (texfall == 2) {
BKE_brush_sample_tex(scene, brush, xy, rgba, 0);
mul_v3_v3(rgba, brush->rgb);
- alpha_f = rgba[3] *alpha *BKE_brush_curve_strength_clamp(brush, len_v2(xy), radius);
+ alpha_f = rgba[3] * alpha * BKE_brush_curve_strength_clamp(brush, len_v2(xy), radius);
rgb_float_to_uchar(dst, rgba);
@@ -602,7 +602,7 @@ void BKE_brush_imbuf_new(const Scene *scene, Brush *brush, short flt, short texf
}
else {
BKE_brush_sample_tex(scene, brush, xy, rgba, 0);
- alpha_f = rgba[3] *alpha *BKE_brush_curve_strength_clamp(brush, len_v2(xy), radius);
+ alpha_f = rgba[3] * alpha * BKE_brush_curve_strength_clamp(brush, len_v2(xy), radius);
dst[0] = crgb[0];
dst[1] = crgb[1];
@@ -1052,13 +1052,13 @@ void BKE_brush_painter_break_stroke(BrushPainter *painter)
static void brush_pressure_apply(BrushPainter *painter, Brush *brush, float pressure)
{
if (BKE_brush_use_alpha_pressure(painter->scene, brush))
- brush_alpha_set(painter->scene, brush, MAX2(0.0f, painter->startalpha * pressure));
+ brush_alpha_set(painter->scene, brush, maxf(0.0f, painter->startalpha * pressure));
if (BKE_brush_use_size_pressure(painter->scene, brush))
- BKE_brush_size_set(painter->scene, brush, MAX2(1.0f, painter->startsize * pressure));
+ BKE_brush_size_set(painter->scene, brush, maxf(1.0f, painter->startsize * pressure));
if (brush->flag & BRUSH_JITTER_PRESSURE)
- brush->jitter = MAX2(0.0f, painter->startjitter * pressure);
+ brush->jitter = maxf(0.0f, painter->startjitter * pressure);
if (brush->flag & BRUSH_SPACING_PRESSURE)
- brush->spacing = MAX2(1.0f, painter->startspacing * (1.5f - pressure));
+ brush->spacing = maxf(1.0f, painter->startspacing * (1.5f - pressure));
}
void BKE_brush_jitter_pos(const Scene *scene, Brush *brush, const float pos[2], float jitterpos[2])
@@ -1066,7 +1066,7 @@ void BKE_brush_jitter_pos(const Scene *scene, Brush *brush, const float pos[2],
int use_jitter = brush->jitter != 0;
/* jitter-ed brush gives weird and unpredictable result for this
- * kinds of stroke, so manyally disable jitter usage (sergey) */
+ * kinds of stroke, so manually disable jitter usage (sergey) */
use_jitter &= (brush->flag & (BRUSH_RESTORE_MESH | BRUSH_ANCHORED)) == 0;
if (use_jitter) {
@@ -1074,7 +1074,7 @@ void BKE_brush_jitter_pos(const Scene *scene, Brush *brush, const float pos[2],
const int radius = BKE_brush_size_get(scene, brush);
const int diameter = 2 * radius;
- // find random position within a circle of diameter 1
+ /* find random position within a circle of diameter 1 */
do {
rand_pos[0] = BLI_frand() - 0.5f;
rand_pos[1] = BLI_frand() - 0.5f;
@@ -1158,7 +1158,7 @@ int BKE_brush_painter_paint(BrushPainter *painter, BrushFunc func, const float p
/* compute brush spacing adapted to brush radius, spacing may depend
* on pressure, so update it */
brush_pressure_apply(painter, brush, painter->lastpressure);
- spacing = MAX2(1.0f, radius) * brush->spacing * 0.01f;
+ spacing = maxf(1.0f, radius) * brush->spacing * 0.01f;
/* setup starting distance, direction vector and accumulated distance */
startdistance = painter->accumdistance;
@@ -1176,7 +1176,7 @@ int BKE_brush_painter_paint(BrushPainter *painter, BrushFunc func, const float p
t = step / len;
press = (1.0f - t) * painter->lastpressure + t * pressure;
brush_pressure_apply(painter, brush, press);
- spacing = MAX2(1.0f, radius) * brush->spacing * 0.01f;
+ spacing = maxf(1.0f, radius) * brush->spacing * 0.01f;
BKE_brush_jitter_pos(scene, brush, paintpos, finalpos);
@@ -1253,7 +1253,9 @@ float BKE_brush_curve_strength_clamp(Brush *br, float p, const float len)
if (p >= len) return 0;
else p = p / len;
+ curvemapping_initialize(br->curve);
p = curvemapping_evaluateF(br->curve, 0, p);
+
if (p < 0.0f) p = 0.0f;
else if (p > 1.0f) p = 1.0f;
return p;
@@ -1267,6 +1269,7 @@ float BKE_brush_curve_strength(Brush *br, float p, const float len)
else
p = p / len;
+ curvemapping_initialize(br->curve);
return curvemapping_evaluateF(br->curve, 0, p);
}
diff --git a/source/blender/blenkernel/intern/bvhutils.c b/source/blender/blenkernel/intern/bvhutils.c
index 752bdab2c00..32ae6d04934 100644
--- a/source/blender/blenkernel/intern/bvhutils.c
+++ b/source/blender/blenkernel/intern/bvhutils.c
@@ -330,7 +330,7 @@ float nearest_point_in_tri_surface(const float v0[3], const float v1[3], const f
}
}
- // Account for numerical round-off error
+ /* Account for numerical round-off error */
if (sqrDist < FLT_EPSILON)
sqrDist = 0.0f;
@@ -345,7 +345,7 @@ float nearest_point_in_tri_surface(const float v0[3], const float v1[3], const f
add_v3_v3v3(z, z, y);
//sub_v3_v3v3(d, p, z);
copy_v3_v3(nearest, z);
- // d = p - ( v0 + S * e0 + T * e1 );
+ //d = p - ( v0 + S * e0 + T * e1 );
}
*v = lv;
*e = le;
diff --git a/source/blender/blenkernel/intern/camera.c b/source/blender/blenkernel/intern/camera.c
index e1cfcee1367..ed7ac0e1a32 100644
--- a/source/blender/blenkernel/intern/camera.c
+++ b/source/blender/blenkernel/intern/camera.c
@@ -57,8 +57,8 @@ void *BKE_camera_add(const char *name)
cam = BKE_libblock_alloc(&G.main->camera, ID_CA, name);
cam->lens = 35.0f;
- cam->sensor_x = 32.0f;
- cam->sensor_y = 18.0f;
+ cam->sensor_x = DEFAULT_SENSOR_WIDTH;
+ cam->sensor_y = DEFAULT_SENSOR_HEIGHT;
cam->clipsta = 0.1f;
cam->clipend = 100.0f;
cam->drawsize = 0.5f;
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c
index e5e73061d52..b176ed429f8 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -50,8 +50,8 @@
#include "BKE_global.h"
#include "BKE_mesh.h"
#include "BKE_paint.h"
-#include "BKE_utildefines.h"
#include "BKE_tessmesh.h"
+#include "BKE_curve.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
@@ -1709,10 +1709,49 @@ DerivedMesh *CDDM_from_mesh(Mesh *mesh, Object *UNUSED(ob))
DerivedMesh *CDDM_from_curve(Object *ob)
{
- return CDDM_from_curve_customDB(ob, &ob->disp);
+ return CDDM_from_curve_displist(ob, &ob->disp, NULL);
}
-DerivedMesh *CDDM_from_curve_customDB(Object *ob, ListBase *dispbase)
+DerivedMesh *CDDM_from_curve_orco(struct Scene *scene, Object *ob)
+{
+ int *orco_index_ptr = NULL;
+ int (*orco_index)[4] = NULL;
+ float (*orco)[3] = NULL;
+ DerivedMesh *dm = CDDM_from_curve_displist(ob, &ob->disp, &orco_index_ptr);
+
+ if (orco_index_ptr) {
+ orco = (float (*)[3])BKE_curve_make_orco(scene, ob);
+ }
+
+ if (orco && orco_index_ptr) {
+ const char *uvname = "Orco";
+
+ int totpoly = dm->getNumPolys(dm);
+
+ MPoly *mpolys = dm->getPolyArray(dm);
+ MLoop *mloops = dm->getLoopArray(dm);
+
+ MLoopUV *mloopuvs;
+
+ CustomData_add_layer_named(&dm->polyData, CD_MTEXPOLY, CD_DEFAULT, NULL, dm->numPolyData, uvname);
+ mloopuvs = CustomData_add_layer_named(&dm->loopData, CD_MLOOPUV, CD_DEFAULT, NULL, dm->numLoopData, uvname);
+
+ BKE_mesh_nurbs_to_mdata_orco(mpolys, totpoly,
+ mloops, mloopuvs,
+ orco, orco_index);
+ }
+
+ if (orco_index) {
+ MEM_freeN(orco_index);
+ }
+ if (orco) {
+ MEM_freeN(orco);
+ }
+
+ return dm;
+}
+
+DerivedMesh *CDDM_from_curve_displist(Object *ob, ListBase *dispbase, int **orco_index_ptr)
{
DerivedMesh *dm;
CDDerivedMesh *cddm;
@@ -1722,8 +1761,8 @@ DerivedMesh *CDDM_from_curve_customDB(Object *ob, ListBase *dispbase)
MPoly *allpoly;
int totvert, totedge, totloop, totpoly;
- if (BKE_mesh_nurbs_to_mdata_customdb(ob, dispbase, &allvert, &totvert, &alledge,
- &totedge, &allloop, &allpoly, &totloop, &totpoly) != 0)
+ if (BKE_mesh_nurbs_displist_to_mdata(ob, dispbase, &allvert, &totvert, &alledge,
+ &totedge, &allloop, &allpoly, &totloop, &totpoly, orco_index_ptr) != 0)
{
/* Error initializing mdata. This often happens when curve is empty */
return CDDM_new(0, 0, 0, 0, 0);
@@ -1829,7 +1868,7 @@ DerivedMesh *CDDM_from_BMEditMesh(BMEditMesh *em, Mesh *UNUSED(me), int use_mdis
dm->deformedOnly = 1;
- /*don't add origindex layer if one already exists*/
+ /* don't add origindex layer if one already exists */
add_orig = !CustomData_has_layer(&bm->pdata, CD_ORIGINDEX);
mask = use_mdisps ? CD_MASK_DERIVEDMESH | CD_MASK_MDISPS : CD_MASK_DERIVEDMESH;
@@ -1846,7 +1885,7 @@ DerivedMesh *CDDM_from_BMEditMesh(BMEditMesh *em, Mesh *UNUSED(me), int use_mdis
CustomData_merge(&bm->pdata, &dm->polyData, mask,
CD_CALLOC, dm->numPolyData);
- /*add tessellation mface layers*/
+ /* add tessellation mface layers */
if (use_tessface) {
CustomData_from_bmeshpoly(&dm->faceData, &dm->polyData, &dm->loopData, em->tottri);
}
@@ -2110,7 +2149,7 @@ void CDDM_calc_normals_mapping_ex(DerivedMesh *dm, const short only_face_normals
/* No tessellation on this mesh yet, need to calculate one.
*
* Important not to update face normals from polys since it
- * interfears with assigning the new normal layer in the following code.
+ * interferes with assigning the new normal layer in the following code.
*/
CDDM_recalc_tessellation_ex(dm, FALSE);
}
@@ -2220,7 +2259,7 @@ DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, const int *vtargetmap)
newe = MEM_callocN(sizeof(int) * dm->numEdgeData, "newv etable CDDM_merge_verts");
newl = MEM_callocN(sizeof(int) * totloop, "newv ltable CDDM_merge_verts");
- /*fill newl with destination vertex indices*/
+ /* fill newl with destination vertex indices */
mv = cddm->mvert;
c = 0;
for (i = 0; i < dm->numVertData; i++, mv++) {
@@ -2231,14 +2270,14 @@ DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, const int *vtargetmap)
}
}
- /*now link target vertices to destination indices*/
+ /* now link target vertices to destination indices */
for (i = 0; i < dm->numVertData; i++) {
if (vtargetmap[i] != -1) {
newv[i] = newv[vtargetmap[i]];
}
}
- /*find-replace merged vertices with target vertices*/
+ /* find-replace merged vertices with target vertices */
ml = cddm->mloop;
for (i = 0; i < totloop; i++, ml++) {
if (vtargetmap[ml->v] != -1) {
@@ -2246,7 +2285,7 @@ DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, const int *vtargetmap)
}
}
- /*now go through and fix edges and faces*/
+ /* now go through and fix edges and faces */
med = cddm->medge;
c = 0;
for (i = 0; i < dm->numEdgeData; i++, med++) {
diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c
index f9e72be4fc1..4241756a109 100644
--- a/source/blender/blenkernel/intern/cloth.c
+++ b/source/blender/blenkernel/intern/cloth.c
@@ -50,36 +50,7 @@
#include "BKE_modifier.h"
#include "BKE_pointcache.h"
-#ifdef _WIN32
-void tstart( void )
-{}
-void tend( void )
-{
-}
-double tval( void )
-{
- return 0;
-}
-#else
-#include <sys/time.h>
-static struct timeval _tstart, _tend;
-static struct timezone tz;
-void tstart( void )
-{
- gettimeofday(&_tstart, &tz);
-}
-void tend(void)
-{
- gettimeofday(&_tend, &tz);
-}
-double tval(void)
-{
- double t1, t2;
- t1 = ( double ) _tstart.tv_sec + ( double ) _tstart.tv_usec/ ( 1000*1000 );
- t2 = ( double ) _tend.tv_sec + ( double ) _tend.tv_usec/ ( 1000*1000 );
- return t2-t1;
-}
-#endif
+// #include "PIL_time.h" /* timing for debug prints */
/* Our available solvers. */
// 255 is the magic reserved number, so NEVER try to put 255 solvers in here!
@@ -96,6 +67,7 @@ static CM_SOLVER_DEF solvers [] =
static void cloth_to_object (Object *ob, ClothModifierData *clmd, float (*vertexCos)[3]);
static void cloth_from_mesh ( ClothModifierData *clmd, DerivedMesh *dm );
static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *dm, float framenr, int first);
+static void cloth_update_springs( ClothModifierData *clmd );
static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm );
static void cloth_apply_vgroup ( ClothModifierData *clmd, DerivedMesh *dm );
@@ -224,26 +196,26 @@ static BVHTree *bvhtree_build_from_cloth (ClothModifierData *clmd, float epsilon
verts = cloth->verts;
mfaces = cloth->mfaces;
- // in the moment, return zero if no faces there
+ /* in the moment, return zero if no faces there */
if (!cloth->numfaces)
return NULL;
-
- // create quadtree with k=26
+
+ /* create quadtree with k=26 */
bvhtree = BLI_bvhtree_new(cloth->numfaces, epsilon, 4, 26);
-
- // fill tree
+
+ /* fill tree */
for (i = 0; i < cloth->numfaces; i++, mfaces++) {
copy_v3_v3(&co[0*3], verts[mfaces->v1].xold);
copy_v3_v3(&co[1*3], verts[mfaces->v2].xold);
copy_v3_v3(&co[2*3], verts[mfaces->v3].xold);
-
+
if (mfaces->v4)
copy_v3_v3(&co[3*3], verts[mfaces->v4].xold);
-
+
BLI_bvhtree_insert(bvhtree, i, co, (mfaces->v4 ? 4 : 3));
}
-
- // balance tree
+
+ /* balance tree */
BLI_bvhtree_balance(bvhtree);
return bvhtree;
@@ -313,23 +285,23 @@ void bvhselftree_update_from_cloth(ClothModifierData *clmd, int moving)
return;
mfaces = cloth->mfaces;
-
+
// update vertex position in bvh tree
if (verts && mfaces) {
for (i = 0; i < cloth->numverts; i++, verts++) {
copy_v3_v3(&co[0*3], verts->txold);
-
+
// copy new locations into array
if (moving) {
// update moving positions
copy_v3_v3(&co_moving[0*3], verts->tx);
-
+
ret = BLI_bvhtree_update_node(bvhtree, i, co, co_moving, 1);
}
else {
ret = BLI_bvhtree_update_node(bvhtree, i, co, NULL, 1);
}
-
+
// check if tree is already full
if (!ret)
break;
@@ -404,14 +376,18 @@ static int do_step_cloth(Object *ob, ClothModifierData *clmd, DerivedMesh *resul
}
effectors = pdInitEffectors(clmd->scene, ob, NULL, clmd->sim_parms->effector_weights);
+
+ /* Support for dynamic vertex groups, changing from frame to frame */
+ cloth_apply_vgroup ( clmd, result );
+ cloth_update_springs( clmd );
- tstart();
+ // TIMEIT_START(cloth_step)
/* call the solver. */
if (solvers [clmd->sim_parms->solver_type].solver)
ret = solvers[clmd->sim_parms->solver_type].solver(ob, framenr, clmd, effectors);
- tend();
+ // TIMEIT_END(cloth_step)
pdEndEffectors(&effectors);
@@ -662,7 +638,7 @@ void cloth_free_modifier(ClothModifierData *clmd )
void cloth_free_modifier_extern(ClothModifierData *clmd )
{
Cloth *cloth = NULL;
- if (G.rt > 0)
+ if (G.debug_value > 0)
printf("cloth_free_modifier_extern\n");
if ( !clmd )
@@ -671,9 +647,9 @@ void cloth_free_modifier_extern(ClothModifierData *clmd )
cloth = clmd->clothObject;
if ( cloth ) {
- if (G.rt > 0)
+ if (G.debug_value > 0)
printf("cloth_free_modifier_extern in\n");
-
+
// If our solver provides a free function, call it
if ( solvers [clmd->sim_parms->solver_type].free ) {
solvers [clmd->sim_parms->solver_type].free ( clmd );
@@ -691,12 +667,12 @@ void cloth_free_modifier_extern(ClothModifierData *clmd )
LinkNode *search = cloth->springs;
while (search) {
ClothSpring *spring = search->link;
-
+
MEM_freeN ( spring );
search = search->next;
}
BLI_linklist_free(cloth->springs, NULL);
-
+
cloth->springs = NULL;
}
@@ -713,11 +689,11 @@ void cloth_free_modifier_extern(ClothModifierData *clmd )
// we save our faces for collision objects
if ( cloth->mfaces )
MEM_freeN ( cloth->mfaces );
-
+
if (cloth->edgehash)
BLI_edgehash_free ( cloth->edgehash, NULL );
-
-
+
+
/*
if (clmd->clothObject->facemarks)
MEM_freeN(clmd->clothObject->facemarks);
@@ -790,11 +766,21 @@ static void cloth_apply_vgroup ( ClothModifierData *clmd, DerivedMesh *dm )
if (cloth_uses_vgroup(clmd)) {
for ( i = 0; i < numverts; i++, verts++ ) {
+
+ /* Reset Goal values to standard */
+ if ( clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL )
+ verts->goal= clmd->sim_parms->defgoal;
+ else
+ verts->goal= 0.0f;
+
dvert = dm->getVertData ( dm, i, CD_MDEFORMVERT );
if ( dvert ) {
+
for ( j = 0; j < dvert->totweight; j++ ) {
+ verts->flags &= ~CLOTH_VERT_FLAG_PINNED;
if (( dvert->dw[j].def_nr == (clmd->sim_parms->vgroup_mass-1)) && (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL )) {
verts->goal = dvert->dw [j].weight;
+
/* goalfac= 1.0f; */ /* UNUSED */
/*
@@ -803,9 +789,8 @@ static void cloth_apply_vgroup ( ClothModifierData *clmd, DerivedMesh *dm )
*/
verts->goal = powf(verts->goal, 4.0f);
- if ( verts->goal >=SOFTGOALSNAP ) {
+ if ( verts->goal >=SOFTGOALSNAP )
verts->flags |= CLOTH_VERT_FLAG_PINNED;
- }
}
if (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_SCALING ) {
@@ -819,6 +804,7 @@ static void cloth_apply_vgroup ( ClothModifierData *clmd, DerivedMesh *dm )
}
}
+ verts->flags &= ~CLOTH_VERT_FLAG_NOSELFCOLL;
if (clmd->coll_parms->flags & CLOTH_COLLSETTINGS_FLAG_SELF ) {
if ( dvert->dw[j].def_nr == (clmd->coll_parms->vgroup_selfcol-1)) {
if (dvert->dw [j].weight > 0.0f) {
@@ -826,13 +812,6 @@ static void cloth_apply_vgroup ( ClothModifierData *clmd, DerivedMesh *dm )
}
}
}
- /*
- // for later
- if ( dvert->dw[j].def_nr == (clmd->sim_parms->vgroup_weight-1))
- {
- verts->mass = dvert->dw [j].weight;
- }
- */
}
}
}
@@ -852,7 +831,7 @@ static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *d
// If we have a clothObject, free it.
if ( clmd->clothObject != NULL ) {
cloth_free_modifier ( clmd );
- if (G.rt > 0)
+ if (G.debug_value > 0)
printf("cloth_free_modifier cloth_from_object\n");
}
@@ -875,10 +854,10 @@ static int cloth_from_object(Object *ob, ClothModifierData *clmd, DerivedMesh *d
cloth_from_mesh ( clmd, dm );
- // create springs
+ // create springs
clmd->clothObject->springs = NULL;
clmd->clothObject->numsprings = -1;
-
+
if ( clmd->sim_parms->shapekey_rest )
shapekey_rest = dm->getVertDataArray ( dm, CD_CLOTH_ORCO );
@@ -1058,6 +1037,51 @@ static void cloth_free_errorsprings(Cloth *cloth, EdgeHash *UNUSED(edgehash), Li
BLI_edgehash_free ( cloth->edgehash, NULL );
}
+/* update stiffness if vertex group values are changing from frame to frame */
+static void cloth_update_springs( ClothModifierData *clmd )
+{
+ Cloth *cloth = clmd->clothObject;
+ LinkNode *search = NULL;
+
+ search = cloth->springs;
+ while (search) {
+ ClothSpring *spring = search->link;
+
+ spring->stiffness = 0.0f;
+
+ if(spring->type == CLOTH_SPRING_TYPE_STRUCTURAL)
+ {
+ spring->stiffness = (cloth->verts[spring->kl].struct_stiff + cloth->verts[spring->ij].struct_stiff) / 2.0f;
+ }
+ else if(spring->type == CLOTH_SPRING_TYPE_SHEAR)
+ {
+ spring->stiffness = (cloth->verts[spring->kl].shear_stiff + cloth->verts[spring->ij].shear_stiff) / 2.0f;
+ }
+ else if(spring->type == CLOTH_SPRING_TYPE_BENDING)
+ {
+ spring->stiffness = (cloth->verts[spring->kl].bend_stiff + cloth->verts[spring->ij].bend_stiff) / 2.0f;
+ }
+ else if(spring->type == CLOTH_SPRING_TYPE_GOAL)
+ {
+ /* Warning: Appending NEW goal springs does not work because implicit solver would need reset! */
+
+ /* Activate / Deactivate existing springs */
+ if ((!(cloth->verts[spring->ij].flags & CLOTH_VERT_FLAG_PINNED)) && (cloth->verts[spring->ij].goal > ALMOST_ZERO))
+ {
+ spring->flags &= ~CLOTH_SPRING_FLAG_DEACTIVATE;
+ }
+ else
+ {
+ spring->flags |= CLOTH_SPRING_FLAG_DEACTIVATE;
+ }
+ }
+
+ search = search->next;
+ }
+
+
+}
+
static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm )
{
Cloth *cloth = clmd->clothObject;
@@ -1127,13 +1151,13 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm )
for (i = 0; i < numverts; i++) {
cloth->verts[i].avg_spring_len = cloth->verts[i].avg_spring_len * 0.49f / ((float)cloth->verts[i].spring_count);
}
-
+
// shear springs
for ( i = 0; i < numfaces; i++ ) {
// triangle faces already have shear springs due to structural geometry
if ( !mface[i].v4 )
- continue;
-
+ continue;
+
spring = ( ClothSpring *) MEM_callocN ( sizeof ( ClothSpring ), "cloth spring" );
if (!spring) {
@@ -1174,7 +1198,7 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm )
BLI_linklist_prepend ( &cloth->springs, spring );
}
-
+
if (numfaces) {
// bending springs
search2 = cloth->springs;
@@ -1187,14 +1211,14 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm )
while ( search ) {
tspring = search->link;
index2 = ( ( tspring->ij==tspring2->kl ) ? ( tspring->kl ) : ( tspring->ij ) );
-
+
// check for existing spring
// check also if startpoint is equal to endpoint
if (!BLI_edgehash_haskey(edgehash, MIN2(tspring2->ij, index2), MAX2(tspring2->ij, index2)) &&
(index2 != tspring2->ij))
{
spring = (ClothSpring *)MEM_callocN ( sizeof ( ClothSpring ), "cloth spring" );
-
+
if (!spring) {
cloth_free_errorsprings(cloth, edgehash, edgelist);
return 0;
@@ -1278,7 +1302,7 @@ static int cloth_build_springs ( ClothModifierData *clmd, DerivedMesh *dm )
cloth->edgehash = edgehash;
- if (G.rt > 0)
+ if (G.debug_value > 0)
printf("avg_len: %f\n", clmd->sim_parms->avg_spring_len);
return 1;
diff --git a/source/blender/blenkernel/intern/collision.c b/source/blender/blenkernel/intern/collision.c
index d99c36b6c91..6631afcddaf 100644
--- a/source/blender/blenkernel/intern/collision.c
+++ b/source/blender/blenkernel/intern/collision.c
@@ -161,8 +161,6 @@ void bvhtree_update_from_mvert(BVHTree * bvhtree, MFace *faces, int numfaces, MV
/***********************************
Collision modifier code end
***********************************/
-#define mySWAP(a, b) do { double tmp = b ; b = a ; a = tmp ; } while (0)
-
// w3 is not perfect
static void collision_compute_barycentric ( float pv[3], float p1[3], float p2[3], float p3[3], float *w1, float *w2, float *w3 )
@@ -226,69 +224,69 @@ static int cloth_collision_response_static ( ClothModifierData *clmd, CollisionM
zero_v3(i2);
zero_v3(i3);
- // only handle static collisions here
+ /* only handle static collisions here */
if ( collpair->flag & COLLISION_IN_FUTURE )
continue;
- // compute barycentric coordinates for both collision points
+ /* compute barycentric coordinates for both collision points */
collision_compute_barycentric ( collpair->pa,
cloth1->verts[collpair->ap1].txold,
cloth1->verts[collpair->ap2].txold,
cloth1->verts[collpair->ap3].txold,
&w1, &w2, &w3 );
- // was: txold
+ /* was: txold */
collision_compute_barycentric ( collpair->pb,
collmd->current_x[collpair->bp1].co,
collmd->current_x[collpair->bp2].co,
collmd->current_x[collpair->bp3].co,
&u1, &u2, &u3 );
- // Calculate relative "velocity".
+ /* Calculate relative "velocity". */
collision_interpolateOnTriangle ( v1, cloth1->verts[collpair->ap1].tv, cloth1->verts[collpair->ap2].tv, cloth1->verts[collpair->ap3].tv, w1, w2, w3 );
collision_interpolateOnTriangle ( v2, collmd->current_v[collpair->bp1].co, collmd->current_v[collpair->bp2].co, collmd->current_v[collpair->bp3].co, u1, u2, u3 );
sub_v3_v3v3(relativeVelocity, v2, v1);
- // Calculate the normal component of the relative velocity (actually only the magnitude - the direction is stored in 'normal').
+ /* Calculate the normal component of the relative velocity (actually only the magnitude - the direction is stored in 'normal'). */
magrelVel = dot_v3v3(relativeVelocity, collpair->normal);
- // printf("magrelVel: %f\n", magrelVel);
+ /* printf("magrelVel: %f\n", magrelVel); */
- // Calculate masses of points.
- // TODO
+ /* Calculate masses of points.
+ * TODO */
- // If v_n_mag < 0 the edges are approaching each other.
+ /* If v_n_mag < 0 the edges are approaching each other. */
if ( magrelVel > ALMOST_ZERO ) {
- // Calculate Impulse magnitude to stop all motion in normal direction.
+ /* Calculate Impulse magnitude to stop all motion in normal direction. */
float magtangent = 0, repulse = 0, d = 0;
double impulse = 0.0;
float vrel_t_pre[3];
float temp[3], spf;
- // calculate tangential velocity
+ /* calculate tangential velocity */
copy_v3_v3 ( temp, collpair->normal );
mul_v3_fl(temp, magrelVel);
sub_v3_v3v3(vrel_t_pre, relativeVelocity, temp);
- // Decrease in magnitude of relative tangential velocity due to coulomb friction
- // in original formula "magrelVel" should be the "change of relative velocity in normal direction"
- magtangent = MIN2(clmd->coll_parms->friction * 0.01f * magrelVel, sqrtf(dot_v3v3(vrel_t_pre, vrel_t_pre)));
+ /* Decrease in magnitude of relative tangential velocity due to coulomb friction
+ * in original formula "magrelVel" should be the "change of relative velocity in normal direction" */
+ magtangent = minf(clmd->coll_parms->friction * 0.01f * magrelVel, sqrtf(dot_v3v3(vrel_t_pre, vrel_t_pre)));
- // Apply friction impulse.
+ /* Apply friction impulse. */
if ( magtangent > ALMOST_ZERO ) {
normalize_v3(vrel_t_pre);
- impulse = magtangent / ( 1.0f + w1*w1 + w2*w2 + w3*w3 ); // 2.0 *
+ impulse = magtangent / ( 1.0f + w1*w1 + w2*w2 + w3*w3 ); /* 2.0 * */
VECADDMUL ( i1, vrel_t_pre, w1 * impulse );
VECADDMUL ( i2, vrel_t_pre, w2 * impulse );
VECADDMUL ( i3, vrel_t_pre, w3 * impulse );
}
- // Apply velocity stopping impulse
- // I_c = m * v_N / 2.0
- // no 2.0 * magrelVel normally, but looks nicer DG
+ /* Apply velocity stopping impulse
+ * I_c = m * v_N / 2.0
+ * no 2.0 * magrelVel normally, but looks nicer DG */
impulse = magrelVel / ( 1.0 + w1*w1 + w2*w2 + w3*w3 );
VECADDMUL ( i1, collpair->normal, w1 * impulse );
@@ -300,24 +298,24 @@ static int cloth_collision_response_static ( ClothModifierData *clmd, CollisionM
VECADDMUL ( i3, collpair->normal, w3 * impulse );
cloth1->verts[collpair->ap3].impulse_count++;
- // Apply repulse impulse if distance too short
- // I_r = -min(dt*kd, m(0, 1d/dt - v_n))
- // DG: this formula ineeds to be changed for this code since we apply impulses/repulses like this:
- // v += impulse; x_new = x + v;
- // We don't use dt!!
- // DG TODO: Fix usage of dt here!
+ /* Apply repulse impulse if distance too short
+ * I_r = -min(dt*kd, m(0, 1d/dt - v_n))
+ * DG: this formula ineeds to be changed for this code since we apply impulses/repulses like this:
+ * v += impulse; x_new = x + v;
+ * We don't use dt!!
+ * DG TODO: Fix usage of dt here! */
spf = (float)clmd->sim_parms->stepsPerFrame / clmd->sim_parms->timescale;
d = clmd->coll_parms->epsilon*8.0f/9.0f + epsilon2*8.0f/9.0f - collpair->distance;
if ( ( magrelVel < 0.1f*d*spf ) && ( d > ALMOST_ZERO ) ) {
repulse = MIN2 ( d*1.0f/spf, 0.1f*d*spf - magrelVel );
- // stay on the safe side and clamp repulse
+ /* stay on the safe side and clamp repulse */
if ( impulse > ALMOST_ZERO )
repulse = MIN2 ( repulse, 5.0*impulse );
repulse = MAX2 ( impulse, repulse );
- impulse = repulse / ( 1.0f + w1*w1 + w2*w2 + w3*w3 ); // original 2.0 / 0.25
+ impulse = repulse / ( 1.0f + w1*w1 + w2*w2 + w3*w3 ); /* original 2.0 / 0.25 */
VECADDMUL ( i1, collpair->normal, impulse );
VECADDMUL ( i2, collpair->normal, impulse );
VECADDMUL ( i3, collpair->normal, impulse );
@@ -326,19 +324,19 @@ static int cloth_collision_response_static ( ClothModifierData *clmd, CollisionM
result = 1;
}
else {
- // Apply repulse impulse if distance too short
- // I_r = -min(dt*kd, max(0, 1d/dt - v_n))
- // DG: this formula ineeds to be changed for this code since we apply impulses/repulses like this:
- // v += impulse; x_new = x + v;
- // We don't use dt!!
+ /* Apply repulse impulse if distance too short
+ * I_r = -min(dt*kd, max(0, 1d/dt - v_n))
+ * DG: this formula ineeds to be changed for this code since we apply impulses/repulses like this:
+ * v += impulse; x_new = x + v;
+ * We don't use dt!! */
float spf = (float)clmd->sim_parms->stepsPerFrame / clmd->sim_parms->timescale;
float d = clmd->coll_parms->epsilon*8.0f/9.0f + epsilon2*8.0f/9.0f - collpair->distance;
if ( d > ALMOST_ZERO) {
- // stay on the safe side and clamp repulse
+ /* stay on the safe side and clamp repulse */
float repulse = d*1.0f/spf;
- float impulse = repulse / ( 3.0 * ( 1.0f + w1*w1 + w2*w2 + w3*w3 )); // original 2.0 / 0.25
+ float impulse = repulse / ( 3.0 * ( 1.0f + w1*w1 + w2*w2 + w3*w3 )); /* original 2.0 / 0.25 */
VECADDMUL ( i1, collpair->normal, impulse );
VECADDMUL ( i2, collpair->normal, impulse );
@@ -414,8 +412,9 @@ static CollPair* cloth_collision(ModifierData *md1, ModifierData *md2,
collpair->bp2 = face2->v2;
collpair->bp3 = face2->v3;
}
- else
+ else {
i++;
+ }
}
if ( i == 2 ) {
if ( face2->v4 ) {
@@ -429,8 +428,9 @@ static CollPair* cloth_collision(ModifierData *md1, ModifierData *md2,
collpair->bp2 = face2->v4;
collpair->bp3 = face2->v3;
}
- else
+ else {
break;
+ }
}
else if ( i == 3 ) {
if ( face1->v4 && face2->v4 ) {
@@ -444,8 +444,9 @@ static CollPair* cloth_collision(ModifierData *md1, ModifierData *md2,
collpair->bp2 = face2->v3;
collpair->bp3 = face2->v4;
}
- else
+ else {
break;
+ }
}
#ifdef USE_BULLET
@@ -464,8 +465,7 @@ static CollPair* cloth_collision(ModifierData *md1, ModifierData *md2,
collpair->flag = 0;
collpair++;
}/*
- else
- {
+ else {
float w1, w2, w3, u1, u2, u3;
float v1[3], v2[3], relativeVelocity[3];
@@ -805,7 +805,7 @@ int cloth_bvh_objcollision(Object *ob, ClothModifierData * clmd, float step, flo
////////////////////////////////////////////////////////////
if ( clmd->coll_parms->flags & CLOTH_COLLSETTINGS_FLAG_SELF ) {
for (l = 0; l < (unsigned int)clmd->coll_parms->self_loop_count; l++) {
- // TODO: add coll quality rounds again
+ /* TODO: add coll quality rounds again */
BVHTreeOverlap *overlap = NULL;
unsigned int result = 0;
diff --git a/source/blender/blenkernel/intern/colortools.c b/source/blender/blenkernel/intern/colortools.c
index 6879ec506f0..1bd5786debd 100644
--- a/source/blender/blenkernel/intern/colortools.c
+++ b/source/blender/blenkernel/intern/colortools.c
@@ -49,6 +49,7 @@
#include "BKE_fcurve.h"
+#include "IMB_colormanagement.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -56,22 +57,20 @@
/* ***************** operations on full struct ************* */
-CurveMapping *curvemapping_add(int tot, float minx, float miny, float maxx, float maxy)
+void curvemapping_set_defaults(CurveMapping *cumap, int tot, float minx, float miny, float maxx, float maxy)
{
- CurveMapping *cumap;
int a;
float clipminx, clipminy, clipmaxx, clipmaxy;
- cumap = MEM_callocN(sizeof(CurveMapping), "new curvemap");
cumap->flag = CUMA_DO_CLIP;
if (tot == 4) cumap->cur = 3; /* rhms, hack for 'col' curve? */
- clipminx = MIN2(minx, maxx);
- clipminy = MIN2(miny, maxy);
- clipmaxx = MAX2(minx, maxx);
- clipmaxy = MAX2(miny, maxy);
+ clipminx = minf(minx, maxx);
+ clipminy = minf(miny, maxy);
+ clipmaxx = maxf(minx, maxx);
+ clipmaxy = maxf(miny, maxy);
- BLI_init_rctf(&cumap->curr, clipminx, clipmaxx, clipminy, clipmaxy);
+ BLI_rctf_init(&cumap->curr, clipminx, clipmaxx, clipminy, clipmaxy);
cumap->clipr = cumap->curr;
cumap->white[0] = cumap->white[1] = cumap->white[2] = 1.0f;
@@ -89,58 +88,94 @@ CurveMapping *curvemapping_add(int tot, float minx, float miny, float maxx, floa
}
cumap->changed_timestamp = 0;
+}
+
+CurveMapping *curvemapping_add(int tot, float minx, float miny, float maxx, float maxy)
+{
+ CurveMapping *cumap;
+
+ cumap = MEM_callocN(sizeof(CurveMapping), "new curvemap");
+
+ curvemapping_set_defaults(cumap, tot, minx, miny, maxx, maxy);
return cumap;
}
-void curvemapping_free(CurveMapping *cumap)
+void curvemapping_free_data(CurveMapping *cumap)
{
int a;
-
- if (cumap) {
- for (a = 0; a < CM_TOT; a++) {
- if (cumap->cm[a].curve) MEM_freeN(cumap->cm[a].curve);
- if (cumap->cm[a].table) MEM_freeN(cumap->cm[a].table);
- if (cumap->cm[a].premultable) MEM_freeN(cumap->cm[a].premultable);
+
+ for (a = 0; a < CM_TOT; a++) {
+ if (cumap->cm[a].curve) {
+ MEM_freeN(cumap->cm[a].curve);
+ cumap->cm[a].curve = NULL;
+ }
+ if (cumap->cm[a].table) {
+ MEM_freeN(cumap->cm[a].table);
+ cumap->cm[a].table = NULL;
+ }
+ if (cumap->cm[a].premultable) {
+ MEM_freeN(cumap->cm[a].premultable);
+ cumap->cm[a].premultable = NULL;
}
+ }
+}
+
+void curvemapping_free(CurveMapping *cumap)
+{
+ if (cumap) {
+ curvemapping_free_data(cumap);
MEM_freeN(cumap);
}
}
-CurveMapping *curvemapping_copy(CurveMapping *cumap)
+void curvemapping_copy_data(CurveMapping *target, CurveMapping *cumap)
{
int a;
-
+
+ *target = *cumap;
+
+ for (a = 0; a < CM_TOT; a++) {
+ if (cumap->cm[a].curve)
+ target->cm[a].curve = MEM_dupallocN(cumap->cm[a].curve);
+ if (cumap->cm[a].table)
+ target->cm[a].table = MEM_dupallocN(cumap->cm[a].table);
+ if (cumap->cm[a].premultable)
+ target->cm[a].premultable = MEM_dupallocN(cumap->cm[a].premultable);
+ }
+}
+
+CurveMapping *curvemapping_copy(CurveMapping *cumap)
+{
if (cumap) {
CurveMapping *cumapn = MEM_dupallocN(cumap);
- for (a = 0; a < CM_TOT; a++) {
- if (cumap->cm[a].curve)
- cumapn->cm[a].curve = MEM_dupallocN(cumap->cm[a].curve);
- if (cumap->cm[a].table)
- cumapn->cm[a].table = MEM_dupallocN(cumap->cm[a].table);
- if (cumap->cm[a].premultable)
- cumapn->cm[a].premultable = MEM_dupallocN(cumap->cm[a].premultable);
- }
+ curvemapping_copy_data(cumapn, cumap);
return cumapn;
}
return NULL;
}
-void curvemapping_set_black_white(CurveMapping *cumap, const float black[3], const float white[3])
+void curvemapping_set_black_white_ex(const float black[3], const float white[3], float r_bwmul[3])
{
int a;
-
- if (white)
+
+ for (a = 0; a < 3; a++) {
+ const float delta = maxf(white[a] - black[a], 1e-5f);
+ r_bwmul[a] = 1.0f / delta;
+ }
+}
+
+void curvemapping_set_black_white(CurveMapping *cumap, const float black[3], const float white[3])
+{
+ if (white) {
copy_v3_v3(cumap->white, white);
- if (black)
+ }
+ if (black) {
copy_v3_v3(cumap->black, black);
-
- for (a = 0; a < 3; a++) {
- if (cumap->white[a] == cumap->black[a])
- cumap->bwmul[a] = 0.0f;
- else
- cumap->bwmul[a] = 1.0f / (cumap->white[a] - cumap->black[a]);
- }
+ }
+
+ curvemapping_set_black_white_ex(cumap->black, cumap->white, cumap->bwmul);
+ cumap->changed_timestamp++;
}
/* ***************** operations on single curve ************* */
@@ -173,7 +208,7 @@ void curvemap_remove_point(CurveMap *cuma, CurveMapPoint *point)
}
/* removes with flag set */
-void curvemap_remove(CurveMap *cuma, int flag)
+void curvemap_remove(CurveMap *cuma, const short flag)
{
CurveMapPoint *cmp = MEM_mallocN((cuma->totpoint) * sizeof(CurveMapPoint), "curve points");
int a, b, removed = 0;
@@ -227,7 +262,7 @@ CurveMapPoint *curvemap_insert(CurveMap *cuma, float x, float y)
return newcmp;
}
-void curvemap_reset(CurveMap *cuma, rctf *clipr, int preset, int slope)
+void curvemap_reset(CurveMap *cuma, const rctf *clipr, int preset, int slope)
{
if (cuma->curve)
MEM_freeN(cuma->curve);
@@ -416,7 +451,7 @@ static void calchandle_curvemap(BezTriple *bezt, BezTriple *prev, BezTriple *nex
/* in X, out Y.
* X is presumed to be outside first or last */
-static float curvemap_calc_extend(CurveMap *cuma, float x, const float first[2], const float last[2])
+static float curvemap_calc_extend(const CurveMap *cuma, float x, const float first[2], const float last[2])
{
if (x <= first[0]) {
if ((cuma->flag & CUMA_EXTEND_EXTRAPOLATE) == 0) {
@@ -446,7 +481,7 @@ static float curvemap_calc_extend(CurveMap *cuma, float x, const float first[2],
}
/* only creates a table for a single channel in CurveMapping */
-static void curvemap_make_table(CurveMap *cuma, rctf *clipr)
+static void curvemap_make_table(CurveMap *cuma, const rctf *clipr)
{
CurveMapPoint *cmp = cuma->curve;
BezTriple *bezt;
@@ -463,8 +498,8 @@ static void curvemap_make_table(CurveMap *cuma, rctf *clipr)
bezt = MEM_callocN(cuma->totpoint * sizeof(BezTriple), "beztarr");
for (a = 0; a < cuma->totpoint; a++) {
- cuma->mintable = MIN2(cuma->mintable, cmp[a].x);
- cuma->maxtable = MAX2(cuma->maxtable, cmp[a].x);
+ cuma->mintable = minf(cuma->mintable, cmp[a].x);
+ cuma->maxtable = maxf(cuma->maxtable, cmp[a].x);
bezt[a].vec[1][0] = cmp[a].x;
bezt[a].vec[1][1] = cmp[a].y;
if (cmp[a].flag & CUMA_VECTOR)
@@ -644,7 +679,7 @@ void curvemapping_changed(CurveMapping *cumap, int rem_doubles)
CurveMap *cuma = cumap->cm + cumap->cur;
CurveMapPoint *cmp = cuma->curve;
rctf *clipr = &cumap->clipr;
- float thresh = 0.01f * (clipr->xmax - clipr->xmin);
+ float thresh = 0.01f * BLI_rctf_size_x(clipr);
float dx = 0.0f, dy = 0.0f;
int a;
@@ -655,13 +690,13 @@ void curvemapping_changed(CurveMapping *cumap, int rem_doubles)
for (a = 0; a < cuma->totpoint; a++) {
if (cmp[a].flag & CUMA_SELECT) {
if (cmp[a].x < clipr->xmin)
- dx = MIN2(dx, cmp[a].x - clipr->xmin);
+ dx = minf(dx, cmp[a].x - clipr->xmin);
else if (cmp[a].x > clipr->xmax)
- dx = MAX2(dx, cmp[a].x - clipr->xmax);
+ dx = maxf(dx, cmp[a].x - clipr->xmax);
if (cmp[a].y < clipr->ymin)
- dy = MIN2(dy, cmp[a].y - clipr->ymin);
+ dy = minf(dy, cmp[a].y - clipr->ymin);
else if (cmp[a].y > clipr->ymax)
- dy = MAX2(dy, cmp[a].y - clipr->ymax);
+ dy = maxf(dy, cmp[a].y - clipr->ymax);
}
}
for (a = 0; a < cuma->totpoint; a++) {
@@ -682,12 +717,12 @@ void curvemapping_changed(CurveMapping *cumap, int rem_doubles)
dy = cmp[a].y - cmp[a + 1].y;
if (sqrtf(dx * dx + dy * dy) < thresh) {
if (a == 0) {
- cmp[a + 1].flag |= 2;
+ cmp[a + 1].flag |= CUMA_VECTOR;
if (cmp[a + 1].flag & CUMA_SELECT)
cmp[a].flag |= CUMA_SELECT;
}
else {
- cmp[a].flag |= 2;
+ cmp[a].flag |= CUMA_VECTOR;
if (cmp[a].flag & CUMA_SELECT)
cmp[a + 1].flag |= CUMA_SELECT;
}
@@ -707,7 +742,7 @@ void curvemapping_changed_all(CurveMapping *cumap)
for (a = 0; a < CM_TOT; a++) {
if (cumap->cm[a].curve) {
cumap->cur = a;
- curvemapping_changed(cumap, 0);
+ curvemapping_changed(cumap, FALSE);
}
}
@@ -715,7 +750,7 @@ void curvemapping_changed_all(CurveMapping *cumap)
}
/* table should be verified */
-float curvemap_evaluateF(CurveMap *cuma, float value)
+float curvemap_evaluateF(const CurveMap *cuma, float value)
{
float fi;
int i;
@@ -737,49 +772,67 @@ float curvemap_evaluateF(CurveMap *cuma, float value)
}
/* works with curve 'cur' */
-float curvemapping_evaluateF(CurveMapping *cumap, int cur, float value)
+float curvemapping_evaluateF(const CurveMapping *cumap, int cur, float value)
{
- CurveMap *cuma = cumap->cm + cur;
-
- /* allocate or bail out */
- if (cuma->table == NULL) {
- curvemap_make_table(cuma, &cumap->clipr);
- if (cuma->table == NULL)
- return 1.0f - value;
- }
+ const CurveMap *cuma = cumap->cm + cur;
return curvemap_evaluateF(cuma, value);
}
/* vector case */
-void curvemapping_evaluate3F(CurveMapping *cumap, float vecout[3], const float vecin[3])
+void curvemapping_evaluate3F(const CurveMapping *cumap, float vecout[3], const float vecin[3])
{
- vecout[0] = curvemapping_evaluateF(cumap, 0, vecin[0]);
- vecout[1] = curvemapping_evaluateF(cumap, 1, vecin[1]);
- vecout[2] = curvemapping_evaluateF(cumap, 2, vecin[2]);
+ vecout[0] = curvemap_evaluateF(&cumap->cm[0], vecin[0]);
+ vecout[1] = curvemap_evaluateF(&cumap->cm[1], vecin[1]);
+ vecout[2] = curvemap_evaluateF(&cumap->cm[2], vecin[2]);
}
/* RGB case, no black/white points, no premult */
-void curvemapping_evaluateRGBF(CurveMapping *cumap, float vecout[3], const float vecin[3])
+void curvemapping_evaluateRGBF(const CurveMapping *cumap, float vecout[3], const float vecin[3])
{
- vecout[0] = curvemapping_evaluateF(cumap, 0, curvemapping_evaluateF(cumap, 3, vecin[0]));
- vecout[1] = curvemapping_evaluateF(cumap, 1, curvemapping_evaluateF(cumap, 3, vecin[1]));
- vecout[2] = curvemapping_evaluateF(cumap, 2, curvemapping_evaluateF(cumap, 3, vecin[2]));
+ vecout[0] = curvemap_evaluateF(&cumap->cm[0], curvemap_evaluateF(&cumap->cm[3], vecin[0]));
+ vecout[1] = curvemap_evaluateF(&cumap->cm[1], curvemap_evaluateF(&cumap->cm[3], vecin[1]));
+ vecout[2] = curvemap_evaluateF(&cumap->cm[2], curvemap_evaluateF(&cumap->cm[3], vecin[2]));
}
+/** same as #curvemapping_evaluate_premulRGBF
+ * but black/bwmul are passed as args for the compositor
+ * where they can change per pixel.
+ *
+ * Use in conjunction with #curvemapping_set_black_white_ex
+ *
+ * \param black Use instead of cumap->black
+ * \param bwmul Use instead of cumap->bwmul
+ */
+void curvemapping_evaluate_premulRGBF_ex(const CurveMapping *cumap, float vecout[3], const float vecin[3],
+ const float black[3], const float bwmul[3])
+{
+ vecout[0] = curvemap_evaluateF(&cumap->cm[0], (vecin[0] - black[0]) * bwmul[0]);
+ vecout[1] = curvemap_evaluateF(&cumap->cm[1], (vecin[1] - black[1]) * bwmul[1]);
+ vecout[2] = curvemap_evaluateF(&cumap->cm[2], (vecin[2] - black[2]) * bwmul[2]);
+}
/* RGB with black/white points and premult. tables are checked */
-void curvemapping_evaluate_premulRGBF(CurveMapping *cumap, float vecout[3], const float vecin[3])
+void curvemapping_evaluate_premulRGBF(const CurveMapping *cumap, float vecout[3], const float vecin[3])
{
- float fac;
-
- fac = (vecin[0] - cumap->black[0]) * cumap->bwmul[0];
- vecout[0] = curvemap_evaluateF(cumap->cm, fac);
-
- fac = (vecin[1] - cumap->black[1]) * cumap->bwmul[1];
- vecout[1] = curvemap_evaluateF(cumap->cm + 1, fac);
-
- fac = (vecin[2] - cumap->black[2]) * cumap->bwmul[2];
- vecout[2] = curvemap_evaluateF(cumap->cm + 2, fac);
+ vecout[0] = curvemap_evaluateF(&cumap->cm[0], (vecin[0] - cumap->black[0]) * cumap->bwmul[0]);
+ vecout[1] = curvemap_evaluateF(&cumap->cm[1], (vecin[1] - cumap->black[1]) * cumap->bwmul[1]);
+ vecout[2] = curvemap_evaluateF(&cumap->cm[2], (vecin[2] - cumap->black[2]) * cumap->bwmul[2]);
+}
+
+/* same as above, byte version */
+void curvemapping_evaluate_premulRGB(const CurveMapping *cumap, unsigned char vecout_byte[3], const unsigned char vecin_byte[3])
+{
+ float vecin[3], vecout[3];
+
+ vecin[0] = (float) vecin_byte[0] / 255.0f;
+ vecin[1] = (float) vecin_byte[1] / 255.0f;
+ vecin[2] = (float) vecin_byte[2] / 255.0f;
+
+ curvemapping_evaluate_premulRGBF(cumap, vecout, vecin);
+
+ vecout_byte[0] = FTOCHAR(vecout[0]);
+ vecout_byte[1] = FTOCHAR(vecout[1]);
+ vecout_byte[2] = FTOCHAR(vecout[2]);
}
@@ -840,7 +893,7 @@ void curvemapping_do_ibuf(CurveMapping *cumap, ImBuf *ibuf)
curvemapping_premultiply(cumap, 1);
}
-int curvemapping_RGBA_does_something(CurveMapping *cumap)
+int curvemapping_RGBA_does_something(const CurveMapping *cumap)
{
int a;
@@ -876,13 +929,12 @@ void curvemapping_initialize(CurveMapping *cumap)
}
}
-void curvemapping_table_RGBA(CurveMapping *cumap, float **array, int *size)
+void curvemapping_table_RGBA(const CurveMapping *cumap, float **array, int *size)
{
int a;
*size = CM_TABLE + 1;
*array = MEM_callocN(sizeof(float) * (*size) * 4, "CurveMapping");
- curvemapping_initialize(cumap);
for (a = 0; a < *size; a++) {
if (cumap->cm[0].table)
@@ -946,7 +998,8 @@ static void save_sample_line(Scopes *scopes, const int idx, const float fx, cons
}
}
-void BKE_histogram_update_sample_line(Histogram *hist, ImBuf *ibuf, const short use_color_management)
+void BKE_histogram_update_sample_line(Histogram *hist, ImBuf *ibuf, const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings)
{
int i, x, y;
float *fp;
@@ -958,13 +1011,18 @@ void BKE_histogram_update_sample_line(Histogram *hist, ImBuf *ibuf, const short
int y1 = 0.5f + hist->co[0][1] * ibuf->y;
int y2 = 0.5f + hist->co[1][1] * ibuf->y;
+ struct ColormanageProcessor *cm_processor = NULL;
+
hist->channels = 3;
hist->x_resolution = 256;
hist->xmax = 1.0f;
- hist->ymax = 1.0f;
+ /* hist->ymax = 1.0f; */ /* now do this on the operator _only_ */
if (ibuf->rect == NULL && ibuf->rect_float == NULL) return;
+ if (ibuf->rect_float)
+ cm_processor = IMB_colormanagement_display_processor_new(view_settings, display_settings);
+
/* persistent draw */
hist->flag |= HISTO_FLAG_SAMPLELINE; /* keep drawing the flag after */
@@ -979,10 +1037,8 @@ void BKE_histogram_update_sample_line(Histogram *hist, ImBuf *ibuf, const short
if (ibuf->rect_float) {
fp = (ibuf->rect_float + (ibuf->channels) * (y * ibuf->x + x));
- if (use_color_management)
- linearrgb_to_srgb_v3_v3(rgb, fp);
- else
- copy_v3_v3(rgb, fp);
+ copy_v3_v3(rgb, fp);
+ IMB_colormanagement_processor_apply_v3(cm_processor, rgb);
hist->data_luma[i] = rgb_to_luma(rgb);
hist->data_r[i] = rgb[0];
@@ -1000,9 +1056,13 @@ void BKE_histogram_update_sample_line(Histogram *hist, ImBuf *ibuf, const short
}
}
}
+
+ if (cm_processor)
+ IMB_colormanagement_processor_free(cm_processor);
}
-void scopes_update(Scopes *scopes, ImBuf *ibuf, int use_color_management)
+void scopes_update(Scopes *scopes, ImBuf *ibuf, const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings)
{
int x, y, c;
unsigned int n, nl;
@@ -1015,6 +1075,8 @@ void scopes_update(Scopes *scopes, ImBuf *ibuf, int use_color_management)
int ycc_mode = -1;
const short is_float = (ibuf->rect_float != NULL);
+ struct ColormanageProcessor *cm_processor = NULL;
+
if (ibuf->rect == NULL && ibuf->rect_float == NULL) return;
if (scopes->ok == 1) return;
@@ -1084,6 +1146,9 @@ void scopes_update(Scopes *scopes, ImBuf *ibuf, int use_color_management)
else
rc = (unsigned char *)ibuf->rect;
+ if (ibuf->rect_float)
+ cm_processor = IMB_colormanagement_display_processor_new(view_settings, display_settings);
+
for (y = 0; y < ibuf->y; y++) {
if (savedlines < scopes->sample_lines && y >= ((savedlines) * ibuf->y) / (scopes->sample_lines + 1)) {
saveline = 1;
@@ -1094,11 +1159,8 @@ void scopes_update(Scopes *scopes, ImBuf *ibuf, int use_color_management)
for (x = 0; x < ibuf->x; x++) {
if (is_float) {
- if (use_color_management)
- linearrgb_to_srgb_v3_v3(rgba, rf);
- else
- copy_v3_v3(rgba, rf);
- rgba[3] = rf[3];
+ copy_v4_v4(rgba, rf);
+ IMB_colormanagement_processor_apply_v4(cm_processor, rgba);
}
else {
for (c = 0; c < 4; c++)
@@ -1169,6 +1231,9 @@ void scopes_update(Scopes *scopes, ImBuf *ibuf, int use_color_management)
MEM_freeN(bin_b);
MEM_freeN(bin_a);
+ if (cm_processor)
+ IMB_colormanagement_processor_free(cm_processor);
+
scopes->ok = 1;
}
@@ -1207,3 +1272,58 @@ void scopes_new(Scopes *scopes)
scopes->waveform_3 = NULL;
scopes->vecscope = NULL;
}
+
+void BKE_color_managed_display_settings_init(ColorManagedDisplaySettings *settings)
+{
+ const char *display_name = IMB_colormanagement_display_get_default_name();
+
+ BLI_strncpy(settings->display_device, display_name, sizeof(settings->display_device));
+}
+
+void BKE_color_managed_display_settings_copy(ColorManagedDisplaySettings *new_settings,
+ const ColorManagedDisplaySettings *settings)
+{
+ BLI_strncpy(new_settings->display_device, settings->display_device, sizeof(new_settings->display_device));
+}
+
+void BKE_color_managed_view_settings_init(ColorManagedViewSettings *settings)
+{
+ /* OCIO_TODO: use default view transform here when OCIO is completely integrated
+ * and proper versioning stuff is added.
+ * for now use NONE to be compatible with all current files
+ */
+ BLI_strncpy(settings->view_transform, "Default", sizeof(settings->view_transform));
+
+ settings->gamma = 1.0f;
+ settings->exposure = 0.0f;
+}
+
+void BKE_color_managed_view_settings_copy(ColorManagedViewSettings *new_settings,
+ const ColorManagedViewSettings *settings)
+{
+ BLI_strncpy(new_settings->view_transform, settings->view_transform, sizeof(new_settings->view_transform));
+
+ new_settings->flag = settings->flag;
+ new_settings->exposure = settings->exposure;
+ new_settings->gamma = settings->gamma;
+
+ if (settings->curve_mapping)
+ new_settings->curve_mapping = curvemapping_copy(settings->curve_mapping);
+}
+
+void BKE_color_managed_view_settings_free(ColorManagedViewSettings *settings)
+{
+ if (settings->curve_mapping)
+ curvemapping_free(settings->curve_mapping);
+}
+
+void BKE_color_managed_colorspace_settings_init(ColorManagedColorspaceSettings *colorspace_settings)
+{
+ BLI_strncpy(colorspace_settings->name, "", sizeof(colorspace_settings->name));
+}
+
+void BKE_color_managed_colorspace_settings_copy(ColorManagedColorspaceSettings *colorspace_settings,
+ const ColorManagedColorspaceSettings *settings)
+{
+ BLI_strncpy(colorspace_settings->name, settings->name, sizeof(colorspace_settings->name));
+}
diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c
index c12e740958c..e3f7ae1b1c7 100644
--- a/source/blender/blenkernel/intern/constraint.c
+++ b/source/blender/blenkernel/intern/constraint.c
@@ -82,8 +82,6 @@
#include "BKE_tessmesh.h"
#include "BKE_tracking.h"
#include "BKE_movieclip.h"
-#include "BKE_tracking.h"
-#include "BKE_movieclip.h"
#ifdef WITH_PYTHON
#include "BPY_extern.h"
@@ -418,8 +416,7 @@ void constraint_mat_convertspace(Object *ob, bPoseChannel *pchan, float mat[][4]
static void contarget_get_mesh_mat(Object *ob, const char *substring, float mat[][4])
{
DerivedMesh *dm = NULL;
- Mesh *me = ob->data;
- BMEditMesh *em = me->edit_btmesh;
+ BMEditMesh *em = BMEdit_FromObject(ob);
float vec[3] = {0.0f, 0.0f, 0.0f};
float normal[3] = {0.0f, 0.0f, 0.0f}, plane[3];
float imat[3][3], tmat[3][3];
@@ -1033,7 +1030,6 @@ static void trackto_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *tar
if (VALID_CONS_TARGET(ct)) {
float size[3], vec[3];
float totmat[3][3];
- float tmat[4][4];
/* Get size property, since ob->size is only the object's own relative size, not its global one */
mat4_to_size(size, cob->matrix);
@@ -1056,9 +1052,8 @@ static void trackto_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *tar
vectomat(vec, ct->matrix[2],
(short)data->reserved1, (short)data->reserved2,
data->flags, totmat);
-
- copy_m4_m4(tmat, cob->matrix);
- mul_m4_m3m4(cob->matrix, totmat, tmat);
+
+ mul_m4_m3m4(cob->matrix, totmat, cob->matrix);
}
}
@@ -1316,7 +1311,7 @@ static void followpath_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *
bFollowPathConstraint *data = con->data;
/* get Object transform (loc/rot/size) to determine transformation from path */
- // TODO: this used to be local at one point, but is probably more useful as-is
+ /* TODO: this used to be local at one point, but is probably more useful as-is */
copy_m4_m4(obmat, cob->matrix);
/* get scaling of object before applying constraint */
@@ -2163,7 +2158,7 @@ static void actcon_get_tarmat(bConstraint *con, bConstraintOb *cob, bConstraintT
Object workob;
/* evaluate using workob */
- // FIXME: we don't have any consistent standards on limiting effects on object...
+ /* FIXME: we don't have any consistent standards on limiting effects on object... */
what_does_obaction(cob->ob, &workob, NULL, data->act, NULL, t);
BKE_object_to_mat4(&workob, ct->matrix);
}
@@ -2284,7 +2279,6 @@ static void locktrack_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *t
float totmat[3][3];
float tmpmat[3][3];
float invmat[3][3];
- float tmat[4][4];
float mdet;
/* Vector object -> target */
@@ -2512,8 +2506,6 @@ static void locktrack_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *t
totmat[1][0] = tmpmat[1][0]; totmat[1][1] = tmpmat[1][1]; totmat[1][2] = tmpmat[1][2];
totmat[2][0] = tmpmat[2][0]; totmat[2][1] = tmpmat[2][1]; totmat[2][2] = tmpmat[2][2];
- copy_m4_m4(tmat, cob->matrix);
-
mdet = determinant_m3(totmat[0][0], totmat[0][1], totmat[0][2],
totmat[1][0], totmat[1][1], totmat[1][2],
totmat[2][0], totmat[2][1], totmat[2][2]);
@@ -2522,7 +2514,7 @@ static void locktrack_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *t
}
/* apply out transformaton to the object */
- mul_m4_m3m4(cob->matrix, totmat, tmat);
+ mul_m4_m3m4(cob->matrix, totmat, cob->matrix);
}
}
@@ -2623,7 +2615,7 @@ static void distlimit_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *t
}
/* if soft-distance is enabled, start fading once owner is dist-soft from the target */
else if (data->flag & LIMITDIST_USESOFT) {
- // FIXME: there's a problem with "jumping" when this kicks in
+ /* FIXME: there's a problem with "jumping" when this kicks in */
if (dist >= (data->dist - data->soft)) {
sfac = (float)(data->soft * (1.0f - expf(-(dist - data->dist) / data->soft)) + data->dist);
if (dist != 0.0f) sfac /= dist;
@@ -2720,7 +2712,6 @@ static void stretchto_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *t
if (VALID_CONS_TARGET(ct)) {
float size[3], scale[3], vec[3], xx[3], zz[3], orth[3];
float totmat[3][3];
- float tmat[4][4];
float dist;
/* store scaling before destroying obmat */
@@ -2818,9 +2809,8 @@ static void stretchto_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *t
normalize_v3_v3(totmat[2], zz);
break;
} /* switch (data->plane) */
-
- copy_m4_m4(tmat, cob->matrix);
- mul_m4_m3m4(cob->matrix, totmat, tmat);
+
+ mul_m4_m3m4(cob->matrix, totmat, cob->matrix);
}
}
@@ -2989,7 +2979,7 @@ static void rbj_new_data(void *cdata)
{
bRigidBodyJointConstraint *data = (bRigidBodyJointConstraint *)cdata;
- // removed code which set target of this constraint
+ /* removed code which set target of this constraint */
data->type = 1;
}
@@ -3115,8 +3105,9 @@ static void clampto_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *tar
copy_m4_m4(obmat, cob->matrix);
copy_v3_v3(ownLoc, obmat[3]);
- INIT_MINMAX(curveMin, curveMax)
- BKE_object_minmax(ct->tar, curveMin, curveMax);
+ INIT_MINMAX(curveMin, curveMax);
+ /* XXX - don't think this is good calling this here - campbell */
+ BKE_object_minmax(ct->tar, curveMin, curveMax, TRUE);
/* get targetmatrix */
if (cu->path && cu->path->data) {
@@ -3608,7 +3599,7 @@ static void damptrack_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *t
if (normalize_v3(tarvec) == 0.0f) {
/* the target is sitting on the owner, so just make them use the same direction vectors */
- // FIXME: or would it be better to use the pure direction vector?
+ /* FIXME: or would it be better to use the pure direction vector? */
copy_v3_v3(tarvec, obvec);
//copy_v3_v3(tarvec, track_dir_vecs[data->trackflag]);
}
@@ -3624,7 +3615,7 @@ static void damptrack_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *t
cross_v3_v3v3(raxis, obvec, tarvec);
rangle = dot_v3v3(obvec, tarvec);
- rangle = acos(MAX2(-1.0f, MIN2(1.0f, rangle)) );
+ rangle = acos(maxf(-1.0f, minf(1.0f, rangle)));
/* construct rotation matrix from the axis-angle rotation found above
* - this call takes care to make sure that the axis provided is a unit vector first
@@ -3839,7 +3830,7 @@ static void pivotcon_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *ta
}
/* get rotation matrix representing the rotation of the owner */
- // TODO: perhaps we might want to include scaling based on the pivot too?
+ /* TODO: perhaps we might want to include scaling based on the pivot too? */
copy_m3_m4(rotMat, cob->matrix);
normalize_m3(rotMat);
@@ -3985,6 +3976,41 @@ static void followtrack_evaluate(bConstraint *con, bConstraintOb *cob, ListBase
add_v2_v2v2(pos, marker->pos, track->offset);
+ /* aspect correction */
+ if (data->frame_method != FOLLOWTRACK_FRAME_STRETCH) {
+ int width, height;
+ float w_src, h_src, w_dst, h_dst, asp_src, asp_dst;
+
+ BKE_movieclip_get_size(clip, NULL, &width, &height);
+
+ /* apply clip display aspect */
+ w_src = width * clip->aspx;
+ h_src = height * clip->aspy;
+
+ w_dst = scene->r.xsch * scene->r.xasp;
+ h_dst = scene->r.ysch * scene->r.yasp;
+
+ asp_src = w_src / h_src;
+ asp_dst = w_dst / h_dst;
+
+ if (fabsf(asp_src - asp_dst) >= FLT_EPSILON) {
+ if ((asp_src > asp_dst) == (data->frame_method == FOLLOWTRACK_FRAME_CROP)) {
+ /* fit X */
+ float div = asp_src / asp_dst;
+ float cent = (float) width / 2.0f;
+
+ pos[0] = (((pos[0] * width - cent) * div) + cent) / width;
+ }
+ else {
+ /* fit Y */
+ float div = asp_dst / asp_src;
+ float cent = (float) height / 2.0f;
+
+ pos[1] = (((pos[1] * height - cent) * div) + cent) / height;
+ }
+ }
+ }
+
BKE_camera_params_init(&params);
BKE_camera_params_from_object(&params, camob);
@@ -4028,32 +4054,36 @@ static void followtrack_evaluate(bConstraint *con, bConstraintOb *cob, ListBase
copy_v3_v3(cob->matrix[3], disp);
}
- if (data->depth_ob && data->depth_ob->derivedFinal) {
+ if (data->depth_ob) {
Object *depth_ob = data->depth_ob;
- BVHTreeFromMesh treeData = NULL_BVHTreeFromMesh;
- BVHTreeRayHit hit;
- float ray_start[3], ray_end[3], ray_nor[3], imat[4][4];
- int result;
+ DerivedMesh *target = object_get_derived_final(depth_ob);
+ if (target) {
+ BVHTreeFromMesh treeData = NULL_BVHTreeFromMesh;
+ BVHTreeRayHit hit;
+ float ray_start[3], ray_end[3], ray_nor[3], imat[4][4];
+ int result;
- invert_m4_m4(imat, depth_ob->obmat);
+ invert_m4_m4(imat, depth_ob->obmat);
- mul_v3_m4v3(ray_start, imat, camob->obmat[3]);
- mul_v3_m4v3(ray_end, imat, cob->matrix[3]);
+ mul_v3_m4v3(ray_start, imat, camob->obmat[3]);
+ mul_v3_m4v3(ray_end, imat, cob->matrix[3]);
- sub_v3_v3v3(ray_nor, ray_end, ray_start);
+ sub_v3_v3v3(ray_nor, ray_end, ray_start);
- bvhtree_from_mesh_faces(&treeData, depth_ob->derivedFinal, 0.0f, 4, 6);
+ bvhtree_from_mesh_faces(&treeData, target, 0.0f, 4, 6);
- hit.dist = FLT_MAX;
- hit.index = -1;
+ hit.dist = FLT_MAX;
+ hit.index = -1;
- result = BLI_bvhtree_ray_cast(treeData.tree, ray_start, ray_nor, 0.0f, &hit, treeData.raycast_callback, &treeData);
+ result = BLI_bvhtree_ray_cast(treeData.tree, ray_start, ray_nor, 0.0f, &hit, treeData.raycast_callback, &treeData);
- if (result != -1) {
- mul_v3_m4v3(cob->matrix[3], depth_ob->obmat, hit.co);
- }
+ if (result != -1) {
+ mul_v3_m4v3(cob->matrix[3], depth_ob->obmat, hit.co);
+ }
- free_bvhtree_from_mesh(&treeData);
+ free_bvhtree_from_mesh(&treeData);
+ target->release(target);
+ }
}
}
}
@@ -4258,8 +4288,8 @@ bConstraintTypeInfo *get_constraint_typeinfo(int type)
}
/* only return for valid types */
- if ( (type >= CONSTRAINT_TYPE_NULL) &&
- (type < NUM_CONSTRAINT_TYPES) )
+ if ((type >= CONSTRAINT_TYPE_NULL) &&
+ (type < NUM_CONSTRAINT_TYPES))
{
/* there shouldn't be any segfaults here... */
return constraintsTypeInfo[type];
@@ -4395,7 +4425,7 @@ static bConstraint *add_new_constraint_internal(const char *name, short type)
}
else {
/* if no name is provided, use the generic "Const" name */
- // NOTE: any constraint type that gets here really shouldn't get added...
+ /* NOTE: any constraint type that gets here really shouldn't get added... */
newName = (name && name[0]) ? name : "Const";
}
@@ -4435,9 +4465,9 @@ static bConstraint *add_new_constraint(Object *ob, bPoseChannel *pchan, const ch
/* make this constraint the active one */
constraints_set_active(list, con);
}
-
+
/* set type+owner specific immutable settings */
- // TODO: does action constraint need anything here - i.e. spaceonce?
+ /* TODO: does action constraint need anything here - i.e. spaceonce? */
switch (type) {
case CONSTRAINT_TYPE_CHILDOF:
{
@@ -4480,7 +4510,7 @@ static void con_relink_id_cb(bConstraint *UNUSED(con), ID **idpoin, short UNUSED
* since we've got the actual ID block, let's just inline this
* code.
*
- * See ID_NEW(a) in BKE_utildefines.h
+ * See ID_NEW(a) in DNA_ID.h
*/
if ((*idpoin) && (*idpoin)->newid)
(*idpoin) = (void *)(*idpoin)->newid;
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index ff2dd27e0c9..be81c70f261 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -242,6 +242,8 @@ static void *ctx_wm_python_context_get(const bContext *C, const char *member, vo
if (result.ptr.data)
return result.ptr.data;
}
+#else
+ (void)C, (void)member;
#endif
return fall_through;
@@ -370,8 +372,15 @@ PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, Stru
{
PointerRNA ptr = CTX_data_pointer_get(C, member);
- if (ptr.data && RNA_struct_is_a(ptr.type, type))
- return ptr;
+ if (ptr.data) {
+ if (RNA_struct_is_a(ptr.type, type)) {
+ return ptr;
+ }
+ else {
+ printf("%s: warning, member '%s' is '%s', not '%s'\n",
+ __func__, member, RNA_struct_identifier(ptr.type), RNA_struct_identifier(type));
+ }
+ }
return PointerRNA_NULL;
}
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index 674a2d98d07..0bda3b266b8 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -429,6 +429,33 @@ void BKE_curve_texspace_calc(Curve *cu)
}
}
+int BKE_nurbList_index_get_co(ListBase *nurb, const int index, float r_co[3])
+{
+ Nurb *nu;
+ int tot = 0;
+
+ for (nu = nurb->first; nu; nu = nu->next) {
+ int tot_nu;
+ if (nu->type == CU_BEZIER) {
+ tot_nu = nu->pntsu;
+ if (index - tot < tot_nu) {
+ copy_v3_v3(r_co, nu->bezt[index - tot].vec[1]);
+ return TRUE;
+ }
+ }
+ else {
+ tot_nu = nu->pntsu * nu->pntsv;
+ if (index - tot < tot_nu) {
+ copy_v3_v3(r_co, nu->bp[index - tot].vec);
+ return TRUE;
+ }
+ }
+ tot += tot_nu;
+ }
+
+ return FALSE;
+}
+
int BKE_nurbList_verts_count(ListBase *nurb)
{
Nurb *nu;
@@ -1165,7 +1192,7 @@ void BKE_curve_forward_diff_bezier(float q0, float q1, float q2, float q3, float
static void forward_diff_bezier_cotangent(const float p0[3], const float p1[3], const float p2[3], const float p3[3],
float p[3], int it, int stride)
{
- /* note that these are not purpendicular to the curve
+ /* note that these are not perpendicular to the curve
* they need to be rotated for this,
*
* This could also be optimized like BKE_curve_forward_diff_bezier */
@@ -1588,7 +1615,7 @@ static int cu_isectLL(const float v1[3], const float v2[3], const float v3[3], c
float *labda, float *mu, float vec[3])
{
/* return:
- * -1: colliniar
+ * -1: collinear
* 0: no intersection of segments
* 1: exact intersection of segments
* 2: cross-intersection of segments
@@ -1712,7 +1739,7 @@ static void calc_bevel_sin_cos(float x1, float y1, float x2, float y2, float *si
y2 /= t02;
t02 = x1 * x2 + y1 * y2;
- if (fabs(t02) >= 1.0)
+ if (fabsf(t02) >= 1.0f)
t02 = 0.5 * M_PI;
else
t02 = (saacos(t02)) / 2.0f;
@@ -2222,7 +2249,7 @@ void BKE_curve_bevelList_make(Object *ob)
bl->nr = 0;
}
else {
- if (G.rendering && cu->resolu_ren != 0)
+ if (G.is_rendering && cu->resolu_ren != 0)
resolu = cu->resolu_ren;
else
resolu = nu->resolu;
@@ -2366,9 +2393,9 @@ void BKE_curve_bevelList_make(Object *ob)
bevp0 = bevp1 + (nr - 1);
nr--;
while (nr--) {
- if (fabs(bevp0->vec[0] - bevp1->vec[0]) < 0.00001) {
- if (fabs(bevp0->vec[1] - bevp1->vec[1]) < 0.00001) {
- if (fabs(bevp0->vec[2] - bevp1->vec[2]) < 0.00001) {
+ if (fabsf(bevp0->vec[0] - bevp1->vec[0]) < 0.00001f) {
+ if (fabsf(bevp0->vec[1] - bevp1->vec[1]) < 0.00001f) {
+ if (fabsf(bevp0->vec[2] - bevp1->vec[2]) < 0.00001f) {
bevp0->dupe_tag = TRUE;
bl->dupe_nr++;
}
@@ -2741,7 +2768,7 @@ static void calchandleNurb_intern(BezTriple *bezt, BezTriple *prev, BezTriple *n
if (skip_align) {
/* handles need to be updated during animation and applying stuff like hooks,
- * but in such situatios it's quite difficult to distinguish in which order
+ * but in such situations it's quite difficult to distinguish in which order
* align handles should be aligned so skip them for now */
return;
}
@@ -3047,29 +3074,6 @@ void BKE_nurbList_handles_set(ListBase *editnurb, short code)
}
}
-static void swapdata(void *adr1, void *adr2, int len)
-{
-
- if (len <= 0) return;
-
- if (len < 65) {
- char adr[64];
-
- memcpy(adr, adr1, len);
- memcpy(adr1, adr2, len);
- memcpy(adr2, adr, len);
- }
- else {
- char *adr;
-
- adr = (char *)MEM_mallocN(len, "curve swap");
- memcpy(adr, adr1, len);
- memcpy(adr1, adr2, len);
- memcpy(adr2, adr, len);
- MEM_freeN(adr);
- }
-}
-
void BKE_nurb_direction_switch(Nurb *nu)
{
BezTriple *bezt1, *bezt2;
@@ -3077,7 +3081,9 @@ void BKE_nurb_direction_switch(Nurb *nu)
float *fp1, *fp2, *tempf;
int a, b;
- if (nu->pntsu == 1 && nu->pntsv == 1) return;
+ if (nu->pntsu == 1 && nu->pntsv == 1) {
+ return;
+ }
if (nu->type == CU_BEZIER) {
a = nu->pntsu;
@@ -3086,19 +3092,22 @@ void BKE_nurb_direction_switch(Nurb *nu)
if (a & 1) a += 1; /* if odd, also swap middle content */
a /= 2;
while (a > 0) {
- if (bezt1 != bezt2)
+ if (bezt1 != bezt2) {
SWAP(BezTriple, *bezt1, *bezt2);
+ }
- swapdata(bezt1->vec[0], bezt1->vec[2], 12);
- if (bezt1 != bezt2)
- swapdata(bezt2->vec[0], bezt2->vec[2], 12);
+ swap_v3_v3(bezt1->vec[0], bezt1->vec[2]);
+
+ if (bezt1 != bezt2) {
+ swap_v3_v3(bezt2->vec[0], bezt2->vec[2]);
+ }
SWAP(char, bezt1->h1, bezt1->h2);
- SWAP(short, bezt1->f1, bezt1->f3);
+ SWAP(char, bezt1->f1, bezt1->f3);
if (bezt1 != bezt2) {
SWAP(char, bezt2->h1, bezt2->h2);
- SWAP(short, bezt2->f1, bezt2->f3);
+ SWAP(char, bezt2->f1, bezt2->f3);
bezt1->alfa = -bezt1->alfa;
bezt2->alfa = -bezt2->alfa;
}
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c
index f551b2d18a4..efcc00c401d 100644
--- a/source/blender/blenkernel/intern/customdata.c
+++ b/source/blender/blenkernel/intern/customdata.c
@@ -51,7 +51,6 @@
#include "BLI_mempool.h"
#include "BLI_utildefines.h"
-#include "BKE_utildefines.h"
#include "BKE_customdata.h"
#include "BKE_customdata_file.h"
#include "BKE_global.h"
@@ -72,25 +71,29 @@ typedef struct LayerTypeInfo {
const char *structname; /* name of the struct used, for file writing */
int structnum; /* number of structs per element, for file writing */
- /* default layer name.
+ /**
+ * default layer name.
* note! when NULL this is a way to ensure there is only ever one item
* see: CustomData_layertype_is_singleton() */
const char *defaultname;
- /* a function to copy count elements of this layer's data
+ /**
+ * a function to copy count elements of this layer's data
* (deep copy if appropriate)
* if NULL, memcpy is used
*/
void (*copy)(const void *source, void *dest, int count);
- /* a function to free any dynamically allocated components of this
+ /**
+ * a function to free any dynamically allocated components of this
* layer's data (note the data pointer itself should not be freed)
* size should be the size of one element of this layer's data (e.g.
* LayerTypeInfo.size)
*/
void (*free)(void *data, int count, int size);
- /* a function to interpolate between count source elements of this
+ /**
+ * a function to interpolate between count source elements of this
* layer's data and store the result in dest
* if weights == NULL or sub_weights == NULL, they should default to 1
*
@@ -98,18 +101,24 @@ typedef struct LayerTypeInfo {
* sub_weights gives the sub-element weights for each element in sources
* (there should be (sub element count)^2 weights per element)
* count gives the number of elements in sources
+ *
+ * \note in some cases \a dest pointer is in \a sources
+ * so all functions have to take this into account and delay
+ * applying changes while reading from sources.
+ * See bug [#32395] - Campbell.
*/
- void (*interp)(void **sources, float *weights, float *sub_weights,
+ void (*interp)(void **sources, const float *weights, const float *sub_weights,
int count, void *dest);
- /* a function to swap the data in corners of the element */
+ /** a function to swap the data in corners of the element */
void (*swap)(void *data, const int *corner_indices);
- /* a function to set a layer's data to default values. if NULL, the
+ /**
+ * a function to set a layer's data to default values. if NULL, the
* default is assumed to be all zeros */
void (*set_default)(void *data, int count);
- /* functions necessary for geometry collapse*/
+ /** functions necessary for geometry collapse */
int (*equal)(void *data1, void *data2);
void (*multiply)(void *data, float fac);
void (*initminmax)(void *min, void *max);
@@ -117,13 +126,13 @@ typedef struct LayerTypeInfo {
void (*dominmax)(void *data1, void *min, void *max);
void (*copyvalue)(void *source, void *dest);
- /* a function to read data from a cdf file */
+ /** a function to read data from a cdf file */
int (*read)(CDataFile *cdf, void *data, int count);
- /* a function to write data to a cdf file */
+ /** a function to write data to a cdf file */
int (*write)(CDataFile *cdf, void *data, int count);
- /* a function to determine file size */
+ /** a function to determine file size */
size_t (*filesize)(CDataFile *cdf, void *data, int count);
} LayerTypeInfo;
@@ -203,8 +212,8 @@ static void linklist_free_simple(void *link)
MEM_freeN(link);
}
-static void layerInterp_mdeformvert(void **sources, float *weights,
- float *UNUSED(sub_weights), int count, void *dest)
+static void layerInterp_mdeformvert(void **sources, const float *weights,
+ const float *UNUSED(sub_weights), int count, void *dest)
{
MDeformVert *dvert = dest;
LinkNode *dest_dw = NULL; /* a list of lists of MDeformWeight pointers */
@@ -243,6 +252,8 @@ static void layerInterp_mdeformvert(void **sources, float *weights,
}
}
+ /* delay writing to the destination incase dest is in sources */
+
/* now we know how many unique deform weights there are, so realloc */
if (dvert->dw) MEM_freeN(dvert->dw);
@@ -260,27 +271,6 @@ static void layerInterp_mdeformvert(void **sources, float *weights,
BLI_linklist_free(dest_dw, linklist_free_simple);
}
-
-static void layerInterp_msticky(void **sources, float *weights,
- float *UNUSED(sub_weights), int count, void *dest)
-{
- float co[2], w;
- MSticky *mst;
- int i;
-
- co[0] = co[1] = 0.0f;
- for (i = 0; i < count; i++) {
- w = weights ? weights[i] : 1.0f;
- mst = (MSticky *)sources[i];
-
- madd_v2_v2fl(co, mst->co, w);
- }
-
- mst = (MSticky *)dest;
- copy_v2_v2(mst->co, co);
-}
-
-
static void layerCopy_tface(const void *source, void *dest, int count)
{
const MTFace *source_tf = (const MTFace *)source;
@@ -291,13 +281,13 @@ static void layerCopy_tface(const void *source, void *dest, int count)
dest_tf[i] = source_tf[i];
}
-static void layerInterp_tface(void **sources, float *weights,
- float *sub_weights, int count, void *dest)
+static void layerInterp_tface(void **sources, const float *weights,
+ const float *sub_weights, int count, void *dest)
{
MTFace *tf = dest;
int i, j, k;
float uv[4][2] = {{0.0f}};
- float *sub_weight;
+ const float *sub_weight;
if (count <= 0) return;
@@ -318,6 +308,7 @@ static void layerInterp_tface(void **sources, float *weights,
}
}
+ /* delay writing to the destination incase dest is in sources */
*tf = *(MTFace *)(*sources);
memcpy(tf->uv, uv, sizeof(tf->uv));
}
@@ -337,12 +328,12 @@ static void layerSwap_tface(void *data, const int *corner_indices)
copy_v2_v2(uv[j], tf->uv[source_index]);
- // swap pinning flags around
+ /* swap pinning flags around */
if (tf->unwrap & pin_flags[source_index]) {
unwrap |= pin_flags[j];
}
- // swap selection flags around
+ /* swap selection flags around */
if (tf->flag & sel_flags[source_index]) {
flag |= sel_flags[j];
}
@@ -392,13 +383,13 @@ static void layerCopy_origspace_face(const void *source, void *dest, int count)
dest_tf[i] = source_tf[i];
}
-static void layerInterp_origspace_face(void **sources, float *weights,
- float *sub_weights, int count, void *dest)
+static void layerInterp_origspace_face(void **sources, const float *weights,
+ const float *sub_weights, int count, void *dest)
{
OrigSpaceFace *osf = dest;
int i, j, k;
float uv[4][2] = {{0.0f}};
- float *sub_weight;
+ const float *sub_weight;
if (count <= 0) return;
@@ -419,6 +410,8 @@ static void layerInterp_origspace_face(void **sources, float *weights,
}
}
+ /* delay writing to the destination incase dest is in sources */
+
#if 0 /* no need, this ONLY contains UV's */
*osf = *(OrigSpaceFace *)(*sources);
#endif
@@ -680,12 +673,12 @@ static void layerDefault_mloopcol(void *data, int count)
}
-static void layerInterp_mloopcol(void **sources, float *weights,
- float *sub_weights, int count, void *dest)
+static void layerInterp_mloopcol(void **sources, const float *weights,
+ const float *sub_weights, int count, void *dest)
{
MLoopCol *mc = dest;
int i;
- float *sub_weight;
+ const float *sub_weight;
struct {
float a;
float r;
@@ -719,7 +712,8 @@ static void layerInterp_mloopcol(void **sources, float *weights,
CLAMP(col.r, 0.0f, 255.0f);
CLAMP(col.g, 0.0f, 255.0f);
CLAMP(col.b, 0.0f, 255.0f);
-
+
+ /* delay writing to the destination incase dest is in sources */
mc->r = (int)col.r;
mc->g = (int)col.g;
mc->b = (int)col.b;
@@ -768,11 +762,10 @@ static void layerAdd_mloopuv(void *data1, void *data2)
add_v2_v2(l1->uv, l2->uv);
}
-static void layerInterp_mloopuv(void **sources, float *weights,
- float *sub_weights, int count, void *dest)
+static void layerInterp_mloopuv(void **sources, const float *weights,
+ const float *sub_weights, int count, void *dest)
{
- MLoopUV *mluv = dest;
- float *uv = mluv->uv;
+ float uv[2];
int i;
zero_v2(uv);
@@ -793,6 +786,9 @@ static void layerInterp_mloopuv(void **sources, float *weights,
madd_v2_v2fl(uv, src->uv, weight);
}
}
+
+ /* delay writing to the destination incase dest is in sources */
+ copy_v2_v2(((MLoopUV *)dest)->uv, uv);
}
/* origspace is almost exact copy of mloopuv's, keep in sync */
@@ -838,11 +834,10 @@ static void layerAdd_mloop_origspace(void *data1, void *data2)
add_v2_v2(l1->uv, l2->uv);
}
-static void layerInterp_mloop_origspace(void **sources, float *weights,
- float *sub_weights, int count, void *dest)
+static void layerInterp_mloop_origspace(void **sources, const float *weights,
+ const float *sub_weights, int count, void *dest)
{
- OrigSpaceLoop *mluv = dest;
- float *uv = mluv->uv;
+ float uv[2];
int i;
zero_v2(uv);
@@ -858,16 +853,19 @@ static void layerInterp_mloop_origspace(void **sources, float *weights,
}
else {
for (i = 0; i < count; i++) {
- float weight = weights ? weights[i] : 1;
+ float weight = weights ? weights[i] : 1.0f;
OrigSpaceLoop *src = sources[i];
madd_v2_v2fl(uv, src->uv, weight);
}
}
+
+ /* delay writing to the destination incase dest is in sources */
+ copy_v2_v2(((OrigSpaceLoop *)dest)->uv, uv);
}
/* --- end copy */
-static void layerInterp_mcol(void **sources, float *weights,
- float *sub_weights, int count, void *dest)
+static void layerInterp_mcol(void **sources, const float *weights,
+ const float *sub_weights, int count, void *dest)
{
MCol *mc = dest;
int i, j, k;
@@ -878,7 +876,7 @@ static void layerInterp_mcol(void **sources, float *weights,
float b;
} col[4] = {{0.0f}};
- float *sub_weight;
+ const float *sub_weight;
if (count <= 0) return;
@@ -907,6 +905,7 @@ static void layerInterp_mcol(void **sources, float *weights,
}
}
+ /* delay writing to the destination incase dest is in sources */
for (j = 0; j < 4; ++j) {
/* Subdivide smooth or fractal can cause problems without clamping
@@ -946,33 +945,36 @@ static void layerDefault_mcol(void *data, int count)
}
}
-static void layerInterp_bweight(void **sources, float *weights,
- float *UNUSED(sub_weights), int count, void *dest)
+static void layerInterp_bweight(void **sources, const float *weights,
+ const float *UNUSED(sub_weights), int count, void *dest)
{
- float *f = dest;
+ float f;
float **in = (float **)sources;
int i;
if (count <= 0) return;
- *f = 0.0f;
+ f = 0.0f;
if (weights) {
for (i = 0; i < count; ++i) {
- *f += *in[i] * weights[i];
+ f += *in[i] * weights[i];
}
}
else {
for (i = 0; i < count; ++i) {
- *f += *in[i];
+ f += *in[i];
}
}
+
+ /* delay writing to the destination incase dest is in sources */
+ *((float *)dest) = f;
}
-static void layerInterp_shapekey(void **sources, float *weights,
- float *UNUSED(sub_weights), int count, void *dest)
+static void layerInterp_shapekey(void **sources, const float *weights,
+ const float *UNUSED(sub_weights), int count, void *dest)
{
- float *co = dest;
+ float co[3];
float **in = (float **)sources;
int i;
@@ -990,6 +992,9 @@ static void layerInterp_shapekey(void **sources, float *weights,
add_v3_v3(co, in[i]);
}
}
+
+ /* delay writing to the destination incase dest is in sources */
+ copy_v3_v3((float *)dest, co);
}
static void layerDefault_mvert_skin(void *data, int count)
@@ -1003,8 +1008,8 @@ static void layerDefault_mvert_skin(void *data, int count)
}
}
-static void layerInterp_mvert_skin(void **sources, float *weights,
- float *UNUSED(sub_weights),
+static void layerInterp_mvert_skin(void **sources, const float *weights,
+ const float *UNUSED(sub_weights),
int count, void *dest)
{
float radius[3], w;
@@ -1019,6 +1024,7 @@ static void layerInterp_mvert_skin(void **sources, float *weights,
madd_v3_v3fl(radius, vs->radius, w);
}
+ /* delay writing to the destination incase dest is in sources */
vs = dest;
copy_v3_v3(vs->radius, radius);
vs->flag &= ~MVERT_SKIN_ROOT;
@@ -1027,8 +1033,8 @@ static void layerInterp_mvert_skin(void **sources, float *weights,
static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = {
/* 0: CD_MVERT */
{sizeof(MVert), "MVert", 1, NULL, NULL, NULL, NULL, NULL, NULL},
- /* 1: CD_MSTICKY */
- {sizeof(MSticky), "MSticky", 1, NULL, NULL, NULL, layerInterp_msticky, NULL,
+ /* 1: CD_MSTICKY */ /* DEPRECATED */
+ {sizeof(float) * 2, "", 1, NULL, NULL, NULL, NULL, NULL,
NULL},
/* 2: CD_MDEFORMVERT */
{sizeof(MDeformVert), "MDeformVert", 1, NULL, layerCopy_mdeformvert,
@@ -1127,7 +1133,7 @@ static const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = {
{sizeof(GridPaintMask), "GridPaintMask", 1, NULL, layerCopy_grid_paint_mask,
layerFree_grid_paint_mask, NULL, NULL, NULL},
/* 36: CD_SKIN_NODE */
- {sizeof(MVertSkin), "MVertSkin", 1, "Skin", NULL, NULL,
+ {sizeof(MVertSkin), "MVertSkin", 1, NULL, NULL, NULL,
layerInterp_mvert_skin, NULL, layerDefault_mvert_skin}
};
@@ -1898,7 +1904,7 @@ void CustomData_copy_data(const CustomData *source, CustomData *dest,
* (this should work because layers are ordered by type)
*/
while (dest_i < dest->totlayer && dest->layers[dest_i].type < source->layers[src_i].type) {
- ++dest_i;
+ dest_i++;
}
/* if there are no more dest layers, we're done */
@@ -1936,7 +1942,7 @@ void CustomData_copy_data(const CustomData *source, CustomData *dest,
* we don't want to copy all source layers to the same dest, so
* increment dest_i
*/
- ++dest_i;
+ dest_i++;
}
}
}
@@ -1989,18 +1995,19 @@ void CustomData_interp(const CustomData *source, CustomData *dest,
* (this should work because layers are ordered by type)
*/
while (dest_i < dest->totlayer && dest->layers[dest_i].type < source->layers[src_i].type) {
- ++dest_i;
+ dest_i++;
}
/* if there are no more dest layers, we're done */
- if (dest_i >= dest->totlayer) return;
+ if (dest_i >= dest->totlayer) break;
/* if we found a matching layer, copy the data */
if (dest->layers[dest_i].type == source->layers[src_i].type) {
void *src_data = source->layers[src_i].data;
- for (j = 0; j < count; ++j)
+ for (j = 0; j < count; ++j) {
sources[j] = (char *)src_data + typeInfo->size * src_indices[j];
+ }
dest_offset = dest_index * typeInfo->size;
@@ -2011,7 +2018,7 @@ void CustomData_interp(const CustomData *source, CustomData *dest,
* we don't want to copy all source layers to the same dest, so
* increment dest_i
*/
- ++dest_i;
+ dest_i++;
}
}
@@ -2139,8 +2146,8 @@ void CustomData_set(const CustomData *data, int index, int type, void *source)
memcpy(dest, source, typeInfo->size);
}
-/*Bmesh functions*/
-/*needed to convert to/from different face reps*/
+/* BMesh functions */
+/* needed to convert to/from different face reps */
void CustomData_to_bmeshpoly(CustomData *fdata, CustomData *pdata, CustomData *ldata,
int totloop, int totpoly)
{
@@ -2401,7 +2408,7 @@ void CustomData_bmesh_copy_data(const CustomData *source, CustomData *dest,
* (this should work because layers are ordered by type)
*/
while (dest_i < dest->totlayer && dest->layers[dest_i].type < source->layers[src_i].type) {
- ++dest_i;
+ dest_i++;
}
/* if there are no more dest layers, we're done */
@@ -2425,7 +2432,7 @@ void CustomData_bmesh_copy_data(const CustomData *source, CustomData *dest,
* we don't want to copy all source layers to the same dest, so
* increment dest_i
*/
- ++dest_i;
+ dest_i++;
}
}
}
@@ -2590,8 +2597,9 @@ void CustomData_bmesh_interp(CustomData *data, void **src_blocks, float *weights
CustomDataLayer *layer = &data->layers[i];
const LayerTypeInfo *typeInfo = layerType_getInfo(layer->type);
if (typeInfo->interp) {
- for (j = 0; j < count; ++j)
+ for (j = 0; j < count; ++j) {
sources[j] = (char *)src_blocks[j] + layer->offset;
+ }
typeInfo->interp(sources, weights, sub_weights, count,
(char *)dest_block + layer->offset);
@@ -2637,7 +2645,7 @@ void CustomData_to_bmesh_block(const CustomData *source, CustomData *dest,
* (this should work because layers are ordered by type)
*/
while (dest_i < dest->totlayer && dest->layers[dest_i].type < source->layers[src_i].type) {
- ++dest_i;
+ dest_i++;
}
/* if there are no more dest layers, we're done */
@@ -2661,7 +2669,7 @@ void CustomData_to_bmesh_block(const CustomData *source, CustomData *dest,
* we don't want to copy all source layers to the same dest, so
* increment dest_i
*/
- ++dest_i;
+ dest_i++;
}
}
}
@@ -2680,7 +2688,7 @@ void CustomData_from_bmesh_block(const CustomData *source, CustomData *dest,
* (this should work because layers are ordered by type)
*/
while (dest_i < dest->totlayer && dest->layers[dest_i].type < source->layers[src_i].type) {
- ++dest_i;
+ dest_i++;
}
/* if there are no more dest layers, we're done */
@@ -2704,7 +2712,7 @@ void CustomData_from_bmesh_block(const CustomData *source, CustomData *dest,
* we don't want to copy all source layers to the same dest, so
* increment dest_i
*/
- ++dest_i;
+ dest_i++;
}
}
@@ -2793,7 +2801,7 @@ void CustomData_set_layer_unique_name(CustomData *data, int index)
BLI_uniquename_cb(customdata_unique_check, &data_arg, typeInfo->defaultname, '.', nlayer->name, sizeof(nlayer->name));
}
-void CustomData_validate_layer_name(const CustomData *data, int type, char *name, char *outname)
+void CustomData_validate_layer_name(const CustomData *data, int type, const char *name, char *outname)
{
int index = -1;
@@ -2858,7 +2866,9 @@ void CustomData_external_reload(CustomData *data, ID *UNUSED(id), CustomDataMask
layer = &data->layers[i];
typeInfo = layerType_getInfo(layer->type);
- if (!(mask & CD_TYPE_AS_MASK(layer->type))) ;
+ if (!(mask & CD_TYPE_AS_MASK(layer->type))) {
+ /* pass */
+ }
else if ((layer->flag & CD_FLAG_EXTERNAL) && (layer->flag & CD_FLAG_IN_MEMORY)) {
if (typeInfo->free)
typeInfo->free(layer->data, totelem, typeInfo->size);
@@ -2884,10 +2894,15 @@ void CustomData_external_read(CustomData *data, ID *id, CustomDataMask mask, int
layer = &data->layers[i];
typeInfo = layerType_getInfo(layer->type);
- if (!(mask & CD_TYPE_AS_MASK(layer->type))) ;
- else if (layer->flag & CD_FLAG_IN_MEMORY) ;
- else if ((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->read)
+ if (!(mask & CD_TYPE_AS_MASK(layer->type))) {
+ /* pass */
+ }
+ else if (layer->flag & CD_FLAG_IN_MEMORY) {
+ /* pass */
+ }
+ else if ((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->read) {
update = 1;
+ }
}
if (!update)
@@ -2905,15 +2920,23 @@ void CustomData_external_read(CustomData *data, ID *id, CustomDataMask mask, int
layer = &data->layers[i];
typeInfo = layerType_getInfo(layer->type);
- if (!(mask & CD_TYPE_AS_MASK(layer->type))) ;
- else if (layer->flag & CD_FLAG_IN_MEMORY) ;
+ if (!(mask & CD_TYPE_AS_MASK(layer->type))) {
+ /* pass */
+ }
+ else if (layer->flag & CD_FLAG_IN_MEMORY) {
+ /* pass */
+ }
else if ((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->read) {
blay = cdf_layer_find(cdf, layer->type, layer->name);
if (blay) {
if (cdf_read_layer(cdf, blay)) {
- if (typeInfo->read(cdf, layer->data, totelem)) ;
- else break;
+ if (typeInfo->read(cdf, layer->data, totelem)) {
+ /* pass */
+ }
+ else {
+ break;
+ }
layer->flag |= CD_FLAG_IN_MEMORY;
}
else
@@ -2944,9 +2967,12 @@ void CustomData_external_write(CustomData *data, ID *id, CustomDataMask mask, in
layer = &data->layers[i];
typeInfo = layerType_getInfo(layer->type);
- if (!(mask & CD_TYPE_AS_MASK(layer->type))) ;
- else if ((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->write)
+ if (!(mask & CD_TYPE_AS_MASK(layer->type))) {
+ /* pass */
+ }
+ else if ((layer->flag & CD_FLAG_EXTERNAL) && typeInfo->write) {
update = 1;
+ }
}
if (!update)
@@ -2987,11 +3013,16 @@ void CustomData_external_write(CustomData *data, ID *id, CustomDataMask mask, in
blay = cdf_layer_find(cdf, layer->type, layer->name);
if (cdf_write_layer(cdf, blay)) {
- if (typeInfo->write(cdf, layer->data, totelem)) ;
- else break;
+ if (typeInfo->write(cdf, layer->data, totelem)) {
+ /* pass */
+ }
+ else {
+ break;
+ }
}
- else
+ else {
break;
+ }
}
}
diff --git a/source/blender/blenkernel/intern/customdata_file.c b/source/blender/blenkernel/intern/customdata_file.c
index 71801c4729f..78449879f72 100644
--- a/source/blender/blenkernel/intern/customdata_file.c
+++ b/source/blender/blenkernel/intern/customdata_file.c
@@ -32,6 +32,7 @@
#include "BLI_fileops.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
+#include "BLI_endian_switch.h"
#include "BKE_customdata_file.h"
#include "BKE_global.h"
@@ -165,9 +166,9 @@ static int cdf_read_header(CDataFile *cdf)
header->endian = cdf_endian();
if (cdf->switchendian) {
- SWITCH_INT(header->type);
- SWITCH_INT(header->totlayer);
- SWITCH_INT(header->structbytes);
+ BLI_endian_switch_int32(&header->type);
+ BLI_endian_switch_int32(&header->totlayer);
+ BLI_endian_switch_int32(&header->structbytes);
}
if (!ELEM(header->type, CDF_TYPE_IMAGE, CDF_TYPE_MESH))
@@ -185,10 +186,10 @@ static int cdf_read_header(CDataFile *cdf)
return 0;
if (cdf->switchendian) {
- SWITCH_INT(image->width);
- SWITCH_INT(image->height);
- SWITCH_INT(image->tile_size);
- SWITCH_INT(image->structbytes);
+ BLI_endian_switch_int32(&image->width);
+ BLI_endian_switch_int32(&image->height);
+ BLI_endian_switch_int32(&image->tile_size);
+ BLI_endian_switch_int32(&image->structbytes);
}
offset += image->structbytes;
@@ -200,7 +201,7 @@ static int cdf_read_header(CDataFile *cdf)
return 0;
if (cdf->switchendian)
- SWITCH_INT(mesh->structbytes);
+ BLI_endian_switch_int32(&mesh->structbytes);
offset += mesh->structbytes;
mesh->structbytes = sizeof(CDataFileMeshHeader);
@@ -219,10 +220,10 @@ static int cdf_read_header(CDataFile *cdf)
return 0;
if (cdf->switchendian) {
- SWITCH_INT(layer->type);
- SWITCH_INT(layer->datatype);
- SWITCH_INT64(layer->datasize);
- SWITCH_INT(layer->structbytes);
+ BLI_endian_switch_int32(&layer->type);
+ BLI_endian_switch_int32(&layer->datatype);
+ BLI_endian_switch_uint64(&layer->datasize);
+ BLI_endian_switch_int32(&layer->structbytes);
}
if (layer->datatype != CDF_DATA_FLOAT)
@@ -317,20 +318,13 @@ int cdf_read_layer(CDataFile *cdf, CDataFileLayer *blay)
int cdf_read_data(CDataFile *cdf, unsigned int size, void *data)
{
- float *fdata;
- unsigned int a;
-
/* read data */
if (!fread(data, size, 1, cdf->readf))
return 0;
/* switch endian if necessary */
if (cdf->switchendian) {
- fdata = data;
-
- for (a = 0; a < size / sizeof(float); a++) {
- SWITCH_INT(fdata[a]);
- }
+ BLI_endian_switch_float_array(data, size / sizeof(float));
}
return 1;
diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.c
index 547a64a70d4..4110d4565b2 100644
--- a/source/blender/blenkernel/intern/deform.c
+++ b/source/blender/blenkernel/intern/deform.c
@@ -33,6 +33,7 @@
#include <string.h>
#include <math.h>
#include <ctype.h>
+#include <stdlib.h>
#include "MEM_guardedalloc.h"
@@ -41,7 +42,10 @@
#include "BKE_deform.h"
-#include "BLI_blenlib.h"
+#include "BLI_listbase.h"
+#include "BLI_math.h"
+#include "BLI_path_util.h"
+#include "BLI_string.h"
#include "BLI_utildefines.h"
@@ -204,13 +208,15 @@ void defvert_normalize(MDeformVert *dvert)
}
}
-void defvert_normalize_lock(MDeformVert *dvert, const int def_nr_lock)
+void defvert_normalize_lock_single(MDeformVert *dvert, const int def_nr_lock)
{
if (dvert->totweight <= 0) {
/* nothing */
}
else if (dvert->totweight == 1) {
- dvert->dw[0].weight = 1.0f;
+ if (def_nr_lock != 0) {
+ dvert->dw[0].weight = 1.0f;
+ }
}
else {
MDeformWeight *dw_lock = NULL;
@@ -246,6 +252,50 @@ void defvert_normalize_lock(MDeformVert *dvert, const int def_nr_lock)
}
}
+void defvert_normalize_lock_map(MDeformVert *dvert, const char *lock_flags, const int defbase_tot)
+{
+ if (dvert->totweight <= 0) {
+ /* nothing */
+ }
+ else if (dvert->totweight == 1) {
+ if (LIKELY(defbase_tot >= 1) && lock_flags[0]) {
+ dvert->dw[0].weight = 1.0f;
+ }
+ }
+ else {
+ MDeformWeight *dw;
+ unsigned int i;
+ float tot_weight = 0.0f;
+ float lock_iweight = 0.0f;
+
+ for (i = dvert->totweight, dw = dvert->dw; i != 0; i--, dw++) {
+ if ((dw->def_nr < defbase_tot) && (lock_flags[dw->def_nr] == FALSE)) {
+ tot_weight += dw->weight;
+ }
+ else {
+ /* invert after */
+ lock_iweight += dw->weight;
+ }
+ }
+
+ lock_iweight = maxf(0.0f, 1.0f - lock_iweight);
+
+ if (tot_weight > 0.0f) {
+ /* paranoid, should be 1.0 but in case of float error clamp anyway */
+
+ float scalar = (1.0f / tot_weight) * lock_iweight;
+ for (i = dvert->totweight, dw = dvert->dw; i != 0; i--, dw++) {
+ if ((dw->def_nr < defbase_tot) && (lock_flags[dw->def_nr] == FALSE)) {
+ dw->weight *= scalar;
+
+ /* in case of division errors with very low weights */
+ CLAMP(dw->weight, 0.0f, 1.0f);
+ }
+ }
+ }
+ }
+}
+
void defvert_flip(MDeformVert *dvert, const int *flip_map, const int flip_map_len)
{
MDeformWeight *dw;
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index a1553a24ad2..31a6f768f89 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -75,7 +75,6 @@
#include "BKE_scene.h"
#include "BKE_screen.h"
#include "BKE_tracking.h"
-#include "BKE_utildefines.h"
#include "depsgraph_private.h"
@@ -320,7 +319,7 @@ static void dag_add_driver_relation(AnimData *adt, DagForest *dag, DagNode *node
DRIVER_TARGETS_USED_LOOPER(dvar)
{
if (dtar->id) {
- // FIXME: other data types need to be added here so that they can work!
+ /* FIXME: other data types need to be added here so that they can work! */
if (GS(dtar->id->name) == ID_OB) {
Object *ob = (Object *)dtar->id;
@@ -355,7 +354,7 @@ static void dag_add_material_driver_relations(DagForest *dag, DagNode *node, Mat
static void dag_add_material_nodetree_driver_relations(DagForest *dag, DagNode *node, bNodeTree *ntree)
{
bNode *n;
-
+
/* nodetree itself */
if (ntree->adt) {
dag_add_driver_relation(ntree->adt, dag, node, 1);
@@ -363,11 +362,13 @@ static void dag_add_material_nodetree_driver_relations(DagForest *dag, DagNode *
/* nodetree's nodes... */
for (n = ntree->nodes.first; n; n = n->next) {
- if (n->id && GS(n->id->name) == ID_MA) {
- dag_add_material_driver_relations(dag, node, (Material *)n->id);
- }
- else if (n->type == NODE_GROUP && n->id) {
- dag_add_material_nodetree_driver_relations(dag, node, (bNodeTree *)n->id);
+ if (n->id) {
+ if (GS(n->id->name) == ID_MA) {
+ dag_add_material_driver_relations(dag, node, (Material *)n->id);
+ }
+ else if (n->type == NODE_GROUP) {
+ dag_add_material_nodetree_driver_relations(dag, node, (bNodeTree *)n->id);
+ }
}
}
}
@@ -375,15 +376,24 @@ static void dag_add_material_nodetree_driver_relations(DagForest *dag, DagNode *
/* recursive handling for material drivers */
static void dag_add_material_driver_relations(DagForest *dag, DagNode *node, Material *ma)
{
+ /* Prevent infinite recursion by checking (and tagging the material) as having been visited
+ * already (see build_dag()). This assumes ma->id.flag & LIB_DOIT isn't set by anything else
+ * in the meantime... [#32017]
+ */
+ if (ma->id.flag & LIB_DOIT)
+ return;
+ else
+ ma->id.flag |= LIB_DOIT;
+
/* material itself */
if (ma->adt) {
dag_add_driver_relation(ma->adt, dag, node, 1);
}
-
+
/* textures */
// TODO...
//dag_add_texture_driver_relations(DagForest *dag, DagNode *node, ID *id);
-
+
/* material's nodetree */
if (ma->nodetree) {
dag_add_material_nodetree_driver_relations(dag, node, ma->nodetree);
@@ -395,8 +405,8 @@ static void dag_add_collision_field_relation(DagForest *dag, Scene *scene, Objec
Base *base;
DagNode *node2;
- // would be nice to have a list of colliders here
- // so for now walk all objects in scene check 'same layer rule'
+ /* would be nice to have a list of colliders here
+ * so for now walk all objects in scene check 'same layer rule' */
for (base = scene->base.first; base; base = base->next) {
if ((base->lay & ob->lay) && base->object->pd) {
Object *ob1 = base->object;
@@ -491,7 +501,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O
if (ob->adt)
dag_add_driver_relation(ob->adt, dag, node, (ob->type == OB_ARMATURE)); // XXX isdata arg here doesn't give an accurate picture of situation
- key = ob_get_key(ob);
+ key = BKE_key_from_object(ob);
if (key && key->adt)
dag_add_driver_relation(key->adt, dag, node, 1);
@@ -559,8 +569,14 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O
/* softbody collision */
if ((ob->type == OB_MESH) || (ob->type == OB_CURVE) || (ob->type == OB_LATTICE)) {
- if (modifiers_isSoftbodyEnabled(ob) || modifiers_isClothEnabled(ob) || ob->particlesystem.first)
+ if (ob->particlesystem.first ||
+ modifiers_isModifierEnabled(ob, eModifierType_Softbody) ||
+ modifiers_isModifierEnabled(ob, eModifierType_Cloth) ||
+ modifiers_isModifierEnabled(ob, eModifierType_Smoke) ||
+ modifiers_isModifierEnabled(ob, eModifierType_DynamicPaint))
+ {
dag_add_collision_field_relation(dag, scene, ob, node); /* TODO: use effectorweight->group */
+ }
}
/* object data drivers */
@@ -664,7 +680,7 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O
* engine instancing assumes particular ordering of objects in list */
dag_add_relation(dag, node, node2, DAG_RL_OB_OB, "Particle Object Visualization");
if (part->dup_ob->type == OB_MBALL)
- dag_add_relation(dag, node2, node, DAG_RL_DATA_DATA, "Particle Object Visualization");
+ dag_add_relation(dag, node, node2, DAG_RL_DATA_DATA, "Particle Object Visualization");
}
if (part->ren_as == PART_DRAW_GR && part->dup_group) {
@@ -796,6 +812,9 @@ DagForest *build_dag(Main *bmain, Scene *sce, short mask)
sce->theDag = dag;
}
+ /* clear "LIB_DOIT" flag from all materials, to prevent infinite recursion problems later [#32017] */
+ tag_main_idcode(bmain, ID_MA, FALSE);
+
/* add base node for scene. scene is always the first node in DAG */
scenenode = dag_add_node(dag, sce);
@@ -850,7 +869,7 @@ DagForest *build_dag(Main *bmain, Scene *sce, short mask)
}
}
- // cycle detection and solving
+ /* cycle detection and solving */
// solve_cycles(dag);
return dag;
@@ -1559,7 +1578,7 @@ DagNodeQueue *get_first_ancestors(struct DagForest *dag, void *ob)
node = dag_find_node(dag, ob);
- // need to go over the whole dag for adj list
+ /* need to go over the whole dag for adj list */
nqueue = queue_create(node->ancestor_count);
node1 = dag->DagNode.first;
@@ -2197,8 +2216,8 @@ static int object_modifiers_use_time(Object *ob)
return 1;
}
- // XXX: also, should check NLA strips, though for now assume that nobody uses
- // that and we can omit that for performance reasons...
+ /* XXX: also, should check NLA strips, though for now assume that nobody uses
+ * that and we can omit that for performance reasons... */
}
return 0;
@@ -2578,7 +2597,8 @@ static void dag_id_flush_update(Scene *sce, ID *id)
if (id) {
idtype = GS(id->name);
- if (ELEM8(idtype, ID_ME, ID_CU, ID_MB, ID_LA, ID_LT, ID_CA, ID_AR, ID_SPK)) {
+
+ if (OB_DATA_SUPPORT_ID(idtype)) {
for (obt = bmain->object.first; obt; obt = obt->id.next) {
if (!(ob && obt == ob) && obt->data == id) {
obt->recalc |= OB_RECALC_DATA;
@@ -2630,7 +2650,7 @@ static void dag_id_flush_update(Scene *sce, ID *id)
/* set flags based on ShapeKey */
if (idtype == ID_KE) {
for (obt = bmain->object.first; obt; obt = obt->id.next) {
- Key *key = ob_get_key(obt);
+ Key *key = BKE_key_from_object(obt);
if (!(ob && obt == ob) && ((ID *)key == id)) {
obt->flag |= (OB_RECALC_OB | OB_RECALC_DATA);
lib_id_recalc_tag(bmain, &obt->id);
@@ -2828,6 +2848,18 @@ void DAG_id_tag_update(ID *id, short flag)
}
}
}
+ else if (idtype == ID_VF) {
+ /* this is weak still, should be done delayed as well */
+ for (ob = bmain->object.first; ob; ob = ob->id.next) {
+ if (ob->type == OB_FONT) {
+ Curve *cu = ob->data;
+
+ if (ELEM4((struct VFont *)id, cu->vfont, cu->vfontb, cu->vfonti, cu->vfontbi)) {
+ ob->recalc |= (flag & OB_RECALC_ALL);
+ }
+ }
+ }
+ }
else {
/* disable because this is called on various ID types automatically.
* where printing warning is not useful. for now just ignore */
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index 2493507dca4..10c9f30f5ee 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -299,7 +299,9 @@ static void curve_to_displist(Curve *cu, ListBase *nubase, ListBase *dispbase, i
else
resolu = nu->resolu;
- if (!BKE_nurb_check_valid_u(nu)) ;
+ if (!BKE_nurb_check_valid_u(nu)) {
+ /* pass */
+ }
else if (nu->type == CU_BEZIER) {
/* count */
len = 0;
@@ -499,16 +501,14 @@ void BKE_displist_fill(ListBase *dispbase, ListBase *to, int flipnormal)
/* vert data */
f1 = dlnew->verts;
totvert = 0;
- sf_vert = sf_ctx.fillvertbase.first;
- while (sf_vert) {
+
+ for (sf_vert = sf_ctx.fillvertbase.first; sf_vert; sf_vert = sf_vert->next) {
copy_v3_v3(f1, sf_vert->co);
f1 += 3;
/* index number */
sf_vert->tmp.l = totvert;
totvert++;
-
- sf_vert = sf_vert->next;
}
/* index data */
@@ -679,7 +679,7 @@ void BKE_displist_make_mball(Scene *scene, Object *ob)
/* XXX: mball stuff uses plenty of global variables
* while this is unchanged updating during render is unsafe
*/
- if (G.rendering)
+ if (G.is_rendering)
return;
BKE_displist_free(&(ob->disp));
@@ -950,7 +950,7 @@ static void curve_calc_modifiers_post(Scene *scene, Object *ob, ListBase *dispba
curve_to_filledpoly(cu, nurb, dispbase);
}
- dm = CDDM_from_curve_customDB(ob, dispbase);
+ dm = CDDM_from_curve_displist(ob, dispbase, NULL);
CDDM_calc_normals_mapping(dm);
}
@@ -1040,7 +1040,7 @@ static DerivedMesh *create_orco_dm(Scene *scene, Object *ob)
/* OrcoDM should be created from underformed disp lists */
BKE_displist_make_curveTypes_forOrco(scene, ob, &disp);
- dm = CDDM_from_curve_customDB(ob, &disp);
+ dm = CDDM_from_curve_displist(ob, &disp, NULL);
BKE_displist_free(&disp);
@@ -1386,17 +1386,18 @@ static void do_makeDispListCurveTypes(Scene *scene, Object *ob, ListBase *dispba
ListBase top_capbase = {NULL, NULL};
for (dlb = dlbev.first; dlb; dlb = dlb->next) {
- int i, start, steps;
- float bevfac1 = MIN2(cu->bevfac1, cu->bevfac2), bevfac2 = MAX2(cu->bevfac1, cu->bevfac2);
+ const float bevfac1 = minf(cu->bevfac1, cu->bevfac2);
+ const float bevfac2 = maxf(cu->bevfac1, cu->bevfac2);
float firstblend = 0.0f, lastblend = 0.0f;
+ int i, start, steps;
- if (cu->bevfac1 - cu->bevfac2 == 0.0f)
+ if (bevfac2 - bevfac1 == 0.0f)
continue;
start = (int)(bevfac1 * (bl->nr - 1));
steps = 2 + (int)((bevfac2) * (bl->nr - 1)) - start;
- firstblend = 1.0f - ((float)bevfac1 * (bl->nr - 1) - (int)((float)bevfac1 * (bl->nr - 1)));
- lastblend = (float)bevfac2 * (bl->nr - 1) - (int)((float)bevfac2 * (bl->nr - 1));
+ firstblend = 1.0f - (bevfac1 * (bl->nr - 1) - (int)(bevfac1 * (bl->nr - 1)));
+ lastblend = bevfac2 * (bl->nr - 1) - (int)(bevfac2 * (bl->nr - 1));
if (steps > bl->nr) {
steps = bl->nr;
diff --git a/source/blender/blenkernel/intern/dynamicpaint.c b/source/blender/blenkernel/intern/dynamicpaint.c
index dd5751c5d1f..d55848514cc 100644
--- a/source/blender/blenkernel/intern/dynamicpaint.c
+++ b/source/blender/blenkernel/intern/dynamicpaint.c
@@ -669,7 +669,7 @@ static void boundInsert(Bounds3D *b, float point[3])
}
}
-float getSurfaceDimension(PaintSurfaceData *sData)
+static float getSurfaceDimension(PaintSurfaceData *sData)
{
Bounds3D *mb = &sData->bData->mesh_bounds;
return MAX3((mb->max[0] - mb->min[0]), (mb->max[1] - mb->min[1]), (mb->max[2] - mb->min[2]));
@@ -910,7 +910,7 @@ static void free_bakeData(PaintSurfaceData *data)
}
/* free surface data if it's not used anymore */
-void surface_freeUnusedData(DynamicPaintSurface *surface)
+static void surface_freeUnusedData(DynamicPaintSurface *surface)
{
if (!surface->data) return;
@@ -1368,7 +1368,7 @@ static void dynamicPaint_initAdjacencyData(DynamicPaintSurface *surface, int for
MEM_freeN(temp_data);
}
-void dynamicPaint_setInitialColor(DynamicPaintSurface *surface)
+static void dynamicPaint_setInitialColor(DynamicPaintSurface *surface)
{
PaintSurfaceData *sData = surface->data;
PaintPoint *pPoint = (PaintPoint *)sData->type_data;
@@ -1605,7 +1605,7 @@ static void dynamicPaint_applySurfaceDisplace(DynamicPaintSurface *surface, Deri
/*
* Apply canvas data to the object derived mesh
*/
-struct DerivedMesh *dynamicPaint_Modifier_apply(DynamicPaintModifierData *pmd,
+static DerivedMesh *dynamicPaint_Modifier_apply(DynamicPaintModifierData *pmd,
Object *ob,
DerivedMesh *dm)
{
@@ -1830,9 +1830,12 @@ void dynamicPaint_cacheUpdateFrames(DynamicPaintSurface *surface)
}
}
-void canvas_copyDerivedMesh(DynamicPaintCanvasSettings *canvas, DerivedMesh *dm)
+static void canvas_copyDerivedMesh(DynamicPaintCanvasSettings *canvas, DerivedMesh *dm)
{
- if (canvas->dm) canvas->dm->release(canvas->dm);
+ if (canvas->dm) {
+ canvas->dm->release(canvas->dm);
+ }
+
canvas->dm = CDDM_copy(dm);
}
@@ -1941,7 +1944,7 @@ static int dynamicPaint_findNeighbourPixel(PaintUVPoint *tempPoints, DerivedMesh
{
/* Note: Current method only uses polygon edges to detect neighboring pixels.
* -> It doesn't always lead to the optimum pixel but is accurate enough
- * and faster/simplier than including possible face tip point links)
+ * and faster/simpler than including possible face tip point links)
*/
int x, y;
@@ -1997,7 +2000,10 @@ static int dynamicPaint_findNeighbourPixel(PaintUVPoint *tempPoints, DerivedMesh
/* Get closest edge to that subpixel on UV map */
{
- float pixel[2], dist, t_dist;
+ float pixel[2];
+ /* distances only used for comparison */
+ float dist_squared, t_dist_squared;
+
int i, uindex[3], edge1_index, edge2_index,
e1_index, e2_index, target_face;
float closest_point[2], lambda, dir_vec[2];
@@ -2019,17 +2025,17 @@ static int dynamicPaint_findNeighbourPixel(PaintUVPoint *tempPoints, DerivedMesh
/*
* Find closest edge to that pixel
*/
- /* Dist to first edge */
+ /* Dist to first edge */
e1_index = cPoint->v1; e2_index = cPoint->v2; edge1_index = uindex[0]; edge2_index = uindex[1];
- dist = dist_to_line_segment_v2(pixel, tface[cPoint->face_index].uv[edge1_index], tface[cPoint->face_index].uv[edge2_index]);
+ dist_squared = dist_squared_to_line_segment_v2(pixel, tface[cPoint->face_index].uv[edge1_index], tface[cPoint->face_index].uv[edge2_index]);
- /* Dist to second edge */
- t_dist = dist_to_line_segment_v2(pixel, tface[cPoint->face_index].uv[uindex[1]], tface[cPoint->face_index].uv[uindex[2]]);
- if (t_dist < dist) { e1_index = cPoint->v2; e2_index = cPoint->v3; edge1_index = uindex[1]; edge2_index = uindex[2]; dist = t_dist; }
+ /* Dist to second edge */
+ t_dist_squared = dist_squared_to_line_segment_v2(pixel, tface[cPoint->face_index].uv[uindex[1]], tface[cPoint->face_index].uv[uindex[2]]);
+ if (t_dist_squared < dist_squared) { e1_index = cPoint->v2; e2_index = cPoint->v3; edge1_index = uindex[1]; edge2_index = uindex[2]; dist_squared = t_dist_squared; }
- /* Dist to third edge */
- t_dist = dist_to_line_segment_v2(pixel, tface[cPoint->face_index].uv[uindex[2]], tface[cPoint->face_index].uv[uindex[0]]);
- if (t_dist < dist) { e1_index = cPoint->v3; e2_index = cPoint->v1; edge1_index = uindex[2]; edge2_index = uindex[0]; dist = t_dist; }
+ /* Dist to third edge */
+ t_dist_squared = dist_squared_to_line_segment_v2(pixel, tface[cPoint->face_index].uv[uindex[2]], tface[cPoint->face_index].uv[uindex[0]]);
+ if (t_dist_squared < dist_squared) { e1_index = cPoint->v3; e2_index = cPoint->v1; edge1_index = uindex[2]; edge2_index = uindex[0]; dist_squared = t_dist_squared; }
/*
@@ -2592,7 +2598,7 @@ void dynamicPaint_outputSurfaceImage(DynamicPaintSurface *surface, char *filenam
int format = (surface->image_fileformat & MOD_DPAINT_IMGFORMAT_OPENEXR) ? R_IMF_IMTYPE_OPENEXR : R_IMF_IMTYPE_PNG;
char output_file[FILE_MAX];
- if (!sData || !sData->type_data) { setError(surface->canvas, "Image save failed: Invalid surface."); return; }
+ if (!sData->type_data) { setError(surface->canvas, "Image save failed: Invalid surface."); return; }
/* if selected format is openexr, but current build doesnt support one */
#ifndef WITH_OPENEXR
if (format == R_IMF_IMTYPE_OPENEXR) format = R_IMF_IMTYPE_PNG;
@@ -2745,7 +2751,7 @@ static void dynamicPaint_freeBrushMaterials(BrushMaterials *bMats)
/*
* Get material diffuse color and alpha (including linked textures) in given coordinates
*/
-void dynamicPaint_doMaterialTex(BrushMaterials *bMats, float color[3], float *alpha, Object *brushOb, const float volume_co[3], const float surface_co[3], int faceIndex, short isQuad, DerivedMesh *orcoDm)
+static void dynamicPaint_doMaterialTex(BrushMaterials *bMats, float color[3], float *alpha, Object *brushOb, const float volume_co[3], const float surface_co[3], int faceIndex, short isQuad, DerivedMesh *orcoDm)
{
Material *mat = bMats->mat;
MFace *mface = orcoDm->getTessFaceArray(orcoDm);
@@ -2846,15 +2852,15 @@ static void mesh_faces_nearest_point_dp(void *userdata, int index, const float c
/***************************** Brush Painting Calls ******************************/
-/*
- * Mix color values to canvas point.
+/**
+ * Mix color values to canvas point.
*
- * surface : canvas surface
- * index : surface point index
- * paintFlags : paint object flags
- * paintColor,Alpha,Wetness : to be mixed paint values
- * timescale : value used to adjust time dependand
- * operations when using substeps
+ * \param surface canvas surface
+ * \param index surface point index
+ * \param paintFlags paint object flags
+ * \param paintColor,Alpha,Wetness to be mixed paint values
+ * \param timescale value used to adjust time dependent
+ * operations when using substeps
*/
static void dynamicPaint_mixPaintColors(DynamicPaintSurface *surface, int index, int paintFlags,
const float paintColor[3], float *paintAlpha, float *paintWetness, float *timescale)
@@ -3417,7 +3423,9 @@ static int dynamicPaint_paintMesh(DynamicPaintSurface *surface,
sampleStrength *= sample_factor;
}
- else continue;
+ else {
+ continue;
+ }
/* velocity brush, only do on main sample */
if (brush->flags & MOD_DPAINT_USES_VELOCITY && ss == 0 && brushVelocity) {
@@ -3948,7 +3956,7 @@ static void dynamicPaint_prepareAdjacencyData(DynamicPaintSurface *surface, int
}
/* find two adjacency points (closest_id) and influence (closest_d) to move paint towards when affected by a force */
-void surface_determineForceTargetPoints(PaintSurfaceData *sData, int index, float force[3], float closest_d[2], int closest_id[2])
+static void surface_determineForceTargetPoints(PaintSurfaceData *sData, int index, float force[3], float closest_d[2], int closest_id[2])
{
BakeAdjPoint *bNeighs = sData->bData->bNeighs;
int numOfNeighs = sData->adj_data->n_num[index];
@@ -3991,7 +3999,7 @@ void surface_determineForceTargetPoints(PaintSurfaceData *sData, int index, floa
float force_intersect;
float temp;
- /* project force vector on the plane determined by these two neightbour points
+ /* project force vector on the plane determined by these two neighbor points
* and calculate relative force angle from it*/
cross_v3_v3v3(tangent, bNeighs[closest_id[0]].dir, bNeighs[closest_id[1]].dir);
normalize_v3(tangent);
@@ -4153,7 +4161,7 @@ static int dynamicPaint_prepareEffectStep(DynamicPaintSurface *surface, Scene *s
pdEndEffectors(&effectors);
}
- /* Get number of required steps using averate point distance
+ /* Get number of required steps using average point distance
* so that just a few ultra close pixels wont up substeps to max */
/* adjust number of required substep by fastest active effect */
@@ -4216,7 +4224,7 @@ static void dynamicPaint_doEffectStep(DynamicPaintSurface *surface, float *force
/* Only continue if surrounding point has higher wetness */
if (ePoint->wetness < pPoint->wetness || ePoint->wetness < MIN_WETNESS) continue;
- w_factor = 1.0f / numOfNeighs *MIN2(ePoint->wetness, 1.0f) * speed_scale;
+ w_factor = 1.0f / numOfNeighs * MIN2(ePoint->wetness, 1.0f) * speed_scale;
CLAMP(w_factor, 0.0f, 1.0f);
/* mix new wetness and color */
@@ -4313,7 +4321,7 @@ static void dynamicPaint_doEffectStep(DynamicPaintSurface *surface, float *force
dir_factor = dir_dot * MIN2(speed_scale, 1.0f) * w_factor;
if (dir_factor > 0.5f) dir_factor = 0.5f;
- /* mix new wetness*/
+ /* mix new wetness */
ePoint->wetness += dir_factor;
CLAMP(ePoint->wetness, 0.0f, MAX_WETNESS);
@@ -4337,7 +4345,7 @@ static void dynamicPaint_doEffectStep(DynamicPaintSurface *surface, float *force
}
}
-void dynamicPaint_doWaveStep(DynamicPaintSurface *surface, float timescale)
+static void dynamicPaint_doWaveStep(DynamicPaintSurface *surface, float timescale)
{
PaintSurfaceData *sData = surface->data;
BakeAdjPoint *bNeighs = sData->bData->bNeighs;
@@ -4795,7 +4803,7 @@ static int dynamicPaint_doStep(Scene *scene, Object *ob, DynamicPaintSurface *su
PaintBakeData *bData = sData->bData;
DynamicPaintCanvasSettings *canvas = surface->canvas;
int ret = 1;
- if (!sData || sData->total_points < 1) return 0;
+ if (sData->total_points < 1) return 0;
dynamicPaint_surfacePreStep(surface, timescale);
/*
@@ -4870,7 +4878,7 @@ static int dynamicPaint_doStep(Scene *scene, Object *ob, DynamicPaintSurface *su
/* Apply brush on the surface depending on it's collision type */
/* Particle brush: */
if (brush->collision == MOD_DPAINT_COL_PSYS) {
- if (brush && brush->psys && brush->psys->part && brush->psys->part->type == PART_EMITTER &&
+ if (brush->psys && brush->psys->part && brush->psys->part->type == PART_EMITTER &&
psys_check_enabled(brushObj, brush->psys))
{
diff --git a/source/blender/blenkernel/intern/editderivedmesh.c b/source/blender/blenkernel/intern/editderivedmesh.c
index 32c6caffff7..8d430eb58b5 100644
--- a/source/blender/blenkernel/intern/editderivedmesh.c
+++ b/source/blender/blenkernel/intern/editderivedmesh.c
@@ -151,8 +151,8 @@ static void BMEdit_RecalcTessellation_intern(BMEditMesh *tm)
#endif
BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) {
- /*don't consider two-edged faces*/
- if (efa->len < 3) {
+ /* don't consider two-edged faces */
+ if (UNLIKELY(efa->len < 3)) {
/* do nothing */
}
@@ -198,7 +198,7 @@ static void BMEdit_RecalcTessellation_intern(BMEditMesh *tm)
/* scanfill time */
BM_ITER_ELEM_INDEX (l, &liter, efa, BM_LOOPS_OF_FACE, j) {
- /*mark order*/
+ /*mark order */
BM_elem_index_set(l, j); /* set_loop */
sf_vert = BLI_scanfill_vert_add(&sf_ctx, l->v->co);
@@ -334,7 +334,7 @@ typedef struct EditDerivedBMesh {
float (*polyNos)[3];
/* private variables, for number of verts/edges/faces
- * within the above hash/table members*/
+ * within the above hash/table members */
int tv, te, tf;
} EditDerivedBMesh;
@@ -1747,5 +1747,11 @@ DerivedMesh *getEditDerivedBMesh(BMEditMesh *em,
BMEditMesh *BMEdit_FromObject(Object *ob)
{
BLI_assert(ob->type == OB_MESH);
+ /* sanity check */
+#ifndef NDEBUG
+ if (((Mesh *)ob->data)->edit_btmesh) {
+ BLI_assert(((Mesh *)ob->data)->edit_btmesh->ob == ob);
+ }
+#endif
return ((Mesh *)ob->data)->edit_btmesh;
}
diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c
index b32ac24084f..4f4bafd00b4 100644
--- a/source/blender/blenkernel/intern/effect.c
+++ b/source/blender/blenkernel/intern/effect.c
@@ -29,7 +29,6 @@
* \ingroup bke
*/
-
#include <stddef.h>
#include <math.h>
@@ -98,8 +97,6 @@
#include <string.h>
#endif // WITH_MOD_FLUID
-//XXX #include "BIF_screen.h"
-
EffectorWeights *BKE_add_effector_weights(Group *group)
{
EffectorWeights *weights = MEM_callocN(sizeof(EffectorWeights), "EffectorWeights");
@@ -393,7 +390,7 @@ void pd_point_from_soft(Scene *scene, float *loc, float *vel, int index, Effecte
// triangle - ray callback function
static void eff_tri_ray_hit(void *UNUSED(userData), int UNUSED(index), const BVHTreeRay *UNUSED(ray), BVHTreeRayHit *hit)
{
- // whenever we hit a bounding box, we don't check further
+ /* whenever we hit a bounding box, we don't check further */
hit->dist = -1;
hit->index = 1;
}
@@ -418,24 +415,24 @@ static float eff_calc_visibility(ListBase *colliders, EffectorCache *eff, Effect
negate_v3_v3(norm, efd->vec_to_point);
len = normalize_v3(norm);
- // check all collision objects
+ /* check all collision objects */
for (col = colls->first; col; col = col->next) {
CollisionModifierData *collmd = col->collmd;
if (col->ob == eff->ob)
continue;
-
+
if (collmd->bvhtree) {
BVHTreeRayHit hit;
-
+
hit.index = -1;
hit.dist = len + FLT_EPSILON;
-
- // check if the way is blocked
+
+ /* check if the way is blocked */
if (BLI_bvhtree_ray_cast(collmd->bvhtree, point->loc, norm, 0.0f, &hit, eff_tri_ray_hit, NULL)>=0) {
absorption= col->ob->pd->absorption;
- // visibility is only between 0 and 1, calculated from 1-absorption
+ /* visibility is only between 0 and 1, calculated from 1-absorption */
visibility *= CLAMPIS(1.0f-absorption, 0.0f, 1.0f);
if (visibility <= 0.0f)
@@ -1006,7 +1003,7 @@ void pdDoEffectors(ListBase *effectors, ListBase *colliders, EffectorWeights *we
do_physical_effector(eff, &efd, point, force);
- // for softbody backward compatibility
+ /* for softbody backward compatibility */
if (point->flag & PE_WIND_AS_SPEED && impulse) {
sub_v3_v3v3(temp2, force, temp1);
sub_v3_v3v3(impulse, impulse, temp2);
diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c
index d072ffb72ec..2dbc63e6944 100644
--- a/source/blender/blenkernel/intern/fcurve.c
+++ b/source/blender/blenkernel/intern/fcurve.c
@@ -55,7 +55,6 @@
#include "BKE_curve.h"
#include "BKE_global.h"
#include "BKE_object.h"
-#include "BKE_utildefines.h"
#include "RNA_access.h"
@@ -75,12 +74,10 @@ void free_fcurve(FCurve *fcu)
{
if (fcu == NULL)
return;
-
+
/* free curve data */
- if (fcu) {
- if (fcu->bezt) MEM_freeN(fcu->bezt);
- if (fcu->fpt) MEM_freeN(fcu->fpt);
- }
+ if (fcu->bezt) MEM_freeN(fcu->bezt);
+ if (fcu->fpt) MEM_freeN(fcu->fpt);
/* free RNA-path, as this were allocated when getting the path string */
if (fcu->rna_path)
@@ -285,12 +282,12 @@ int list_find_data_fcurves(ListBase *dst, ListBase *src, const char *dataPrefix,
for (fcu = src->first; fcu; fcu = fcu->next) {
/* check if quoted string matches the path */
if ((fcu->rna_path) && strstr(fcu->rna_path, dataPrefix)) {
- char *quotedName = BLI_getQuotedStr(fcu->rna_path, dataPrefix);
+ char *quotedName = BLI_str_quoted_substrN(fcu->rna_path, dataPrefix);
if (quotedName) {
/* check if the quoted name matches the required name */
if (strcmp(quotedName, dataName) == 0) {
- LinkData *ld = MEM_callocN(sizeof(LinkData), "list_find_data_fcurves");
+ LinkData *ld = MEM_callocN(sizeof(LinkData), __func__);
ld->data = fcu;
BLI_addtail(dst, ld);
@@ -365,7 +362,7 @@ int binarysearch_bezt_index(BezTriple array[], float frame, int arraylen, short
/* initialize replace-flag first */
*replace = 0;
- /* sneaky optimisations (don't go through searching process if...):
+ /* sneaky optimizations (don't go through searching process if...):
* - keyframe to be added is to be added out of current bounds
* - keyframe to be added would replace one of the existing ones on bounds
*/
@@ -422,7 +419,7 @@ int binarysearch_bezt_index(BezTriple array[], float frame, int arraylen, short
if (loopbreaker == (maxloop - 1)) {
printf("Error: binarysearch_bezt_index() was taking too long\n");
- // include debug info
+ /* include debug info */
printf("\tround = %d: start = %d, end = %d, arraylen = %d\n", loopbreaker, start, end, arraylen);
}
@@ -433,16 +430,18 @@ int binarysearch_bezt_index(BezTriple array[], float frame, int arraylen, short
/* ...................................... */
/* helper for calc_fcurve_* functions -> find first and last BezTriple to be used */
-static void get_fcurve_end_keyframes(FCurve *fcu, BezTriple **first, BezTriple **last,
- const short do_sel_only)
+static short get_fcurve_end_keyframes(FCurve *fcu, BezTriple **first, BezTriple **last,
+ const short do_sel_only)
{
+ short found = FALSE;
+
/* init outputs */
*first = NULL;
*last = NULL;
/* sanity checks */
if (fcu->bezt == NULL)
- return;
+ return found;
/* only include selected items? */
if (do_sel_only) {
@@ -454,6 +453,7 @@ static void get_fcurve_end_keyframes(FCurve *fcu, BezTriple **first, BezTriple *
for (i = 0; i < fcu->totvert; bezt++, i++) {
if (BEZSELECTED(bezt)) {
*first = bezt;
+ found = TRUE;
break;
}
}
@@ -463,6 +463,7 @@ static void get_fcurve_end_keyframes(FCurve *fcu, BezTriple **first, BezTriple *
for (i = 0; i < fcu->totvert; bezt--, i++) {
if (BEZSELECTED(bezt)) {
*last = bezt;
+ found = TRUE;
break;
}
}
@@ -471,13 +472,16 @@ static void get_fcurve_end_keyframes(FCurve *fcu, BezTriple **first, BezTriple *
/* just full array */
*first = fcu->bezt;
*last = ARRAY_LAST_ITEM(fcu->bezt, BezTriple, sizeof(BezTriple), fcu->totvert);
+ found = TRUE;
}
+
+ return found;
}
/* Calculate the extents of F-Curve's data */
-void calc_fcurve_bounds(FCurve *fcu, float *xmin, float *xmax, float *ymin, float *ymax,
- const short do_sel_only, const short include_handles)
+short calc_fcurve_bounds(FCurve *fcu, float *xmin, float *xmax, float *ymin, float *ymax,
+ const short do_sel_only, const short include_handles)
{
float xminv = 999999999.0f, xmaxv = -999999999.0f;
float yminv = 999999999.0f, ymaxv = -999999999.0f;
@@ -490,7 +494,7 @@ void calc_fcurve_bounds(FCurve *fcu, float *xmin, float *xmax, float *ymin, floa
if (xmin || xmax) {
/* get endpoint keyframes */
- get_fcurve_end_keyframes(fcu, &bezt_first, &bezt_last, do_sel_only);
+ foundvert = get_fcurve_end_keyframes(fcu, &bezt_first, &bezt_last, do_sel_only);
if (bezt_first) {
BLI_assert(bezt_last != NULL);
@@ -500,8 +504,8 @@ void calc_fcurve_bounds(FCurve *fcu, float *xmin, float *xmax, float *ymin, floa
xmaxv = MAX3(xmaxv, bezt_last->vec[1][0], bezt_last->vec[2][0]);
}
else {
- xminv = MIN2(xminv, bezt_first->vec[1][0]);
- xmaxv = MAX2(xmaxv, bezt_last->vec[1][0]);
+ xminv = minf(xminv, bezt_first->vec[1][0]);
+ xmaxv = maxf(xmaxv, bezt_last->vec[1][0]);
}
}
}
@@ -517,8 +521,8 @@ void calc_fcurve_bounds(FCurve *fcu, float *xmin, float *xmax, float *ymin, floa
ymaxv = MAX4(ymaxv, bezt->vec[1][1], bezt->vec[0][1], bezt->vec[2][1]);
}
else {
- yminv = MIN2(yminv, bezt->vec[1][1]);
- ymaxv = MAX2(ymaxv, bezt->vec[1][1]);
+ yminv = minf(yminv, bezt->vec[1][1]);
+ ymaxv = maxf(ymaxv, bezt->vec[1][1]);
}
foundvert = TRUE;
@@ -529,8 +533,8 @@ void calc_fcurve_bounds(FCurve *fcu, float *xmin, float *xmax, float *ymin, floa
else if (fcu->fpt) {
/* frame range can be directly calculated from end verts */
if (xmin || xmax) {
- xminv = MIN2(xminv, fcu->fpt[0].vec[0]);
- xmaxv = MAX2(xmaxv, fcu->fpt[fcu->totvert - 1].vec[0]);
+ xminv = minf(xminv, fcu->fpt[0].vec[0]);
+ xmaxv = maxf(xmaxv, fcu->fpt[fcu->totvert - 1].vec[0]);
}
/* only loop over keyframes to find extents for values if needed */
@@ -566,6 +570,8 @@ void calc_fcurve_bounds(FCurve *fcu, float *xmin, float *xmax, float *ymin, floa
if (ymin) *ymin = 0.0f;
if (ymax) *ymax = 1.0f;
}
+
+ return foundvert;
}
/* Calculate the extents of F-Curve's keyframes */
@@ -585,15 +591,15 @@ void calc_fcurve_range(FCurve *fcu, float *start, float *end,
if (bezt_first) {
BLI_assert(bezt_last != NULL);
- min = MIN2(min, bezt_first->vec[1][0]);
- max = MAX2(max, bezt_last->vec[1][0]);
+ min = minf(min, bezt_first->vec[1][0]);
+ max = maxf(max, bezt_last->vec[1][0]);
foundvert = TRUE;
}
}
else if (fcu->fpt) {
- min = MIN2(min, fcu->fpt[0].vec[0]);
- max = MAX2(max, fcu->fpt[fcu->totvert - 1].vec[0]);
+ min = minf(min, fcu->fpt[0].vec[0]);
+ max = maxf(max, fcu->fpt[fcu->totvert - 1].vec[0]);
foundvert = TRUE;
}
@@ -634,9 +640,9 @@ short fcurve_are_keyframes_usable(FCurve *fcu)
/* if it has modifiers, none of these should "drastically" alter the curve */
if (fcu->modifiers.first) {
FModifier *fcm;
-
+
/* check modifiers from last to first, as last will be more influential */
- // TODO: optionally, only check modifier if it is the active one...
+ /* TODO: optionally, only check modifier if it is the active one... */
for (fcm = fcu->modifiers.last; fcm; fcm = fcm->prev) {
/* ignore if muted/disabled */
if (fcm->flag & (FMODIFIER_FLAG_DISABLED | FMODIFIER_FLAG_MUTED))
@@ -748,7 +754,7 @@ void fcurve_store_samples(FCurve *fcu, void *data, int start, int end, FcuSample
int cfra;
/* sanity checks */
- // TODO: make these tests report errors using reports not printf's
+ /* TODO: make these tests report errors using reports not printf's */
if (ELEM(NULL, fcu, sample_cb)) {
printf("Error: No F-Curve with F-Curve Modifiers to Bake\n");
return;
@@ -1018,7 +1024,7 @@ static float dtar_get_prop_val(ChannelDriver *driver, DriverTarget *dtar)
id = dtar_id_ensure_proxy_from(dtar->id);
/* error check for missing pointer... */
- // TODO: tag the specific target too as having issues
+ /* TODO: tag the specific target too as having issues */
if (id == NULL) {
printf("Error: driver has an invalid target to use\n");
if (G.debug & G_DEBUG) printf("\tpath = %s\n", dtar->rna_path);
@@ -1152,14 +1158,14 @@ static float dvar_eval_rotDiff(ChannelDriver *driver, DriverVar *dvar)
}
/* evaluate 'location difference' driver variable */
-// TODO: this needs to take into account space conversions...
+/* TODO: this needs to take into account space conversions... */
static float dvar_eval_locDiff(ChannelDriver *driver, DriverVar *dvar)
{
float loc1[3] = {0.0f, 0.0f, 0.0f};
float loc2[3] = {0.0f, 0.0f, 0.0f};
/* get two location values */
- // NOTE: for now, these are all just worldspace
+ /* NOTE: for now, these are all just worldspace */
DRIVER_TARGETS_USED_LOOPER(dvar)
{
/* get pointer to loc values to store in */
@@ -1206,7 +1212,7 @@ static float dvar_eval_locDiff(ChannelDriver *driver, DriverVar *dvar)
/* object */
if (dtar->flag & DTAR_FLAG_LOCALSPACE) {
if (dtar->flag & DTAR_FLAG_LOCAL_CONSTS) {
- // XXX: this should practically be the same as transform space...
+ /* XXX: this should practically be the same as transform space... */
float mat[4][4];
/* extract transform just like how the constraints do it! */
@@ -1796,7 +1802,7 @@ static int findzero(float x, float q0, float q1, float q2, float q3, float *o)
c = c0;
if (a != 0.0) {
- // discriminant
+ /* discriminant */
p = b * b - 4 * a * c;
if (p > 0) {
diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c
index f981ecaf810..68321076398 100644
--- a/source/blender/blenkernel/intern/fmodifier.c
+++ b/source/blender/blenkernel/intern/fmodifier.c
@@ -48,10 +48,6 @@
#include "BKE_fcurve.h"
#include "BKE_idprop.h"
-
-#define SMALL -1.0e-10
-#define SELECT 1
-
/* ******************************** F-Modifiers ********************************* */
/* Info ------------------------------- */
@@ -433,7 +429,7 @@ static void fcm_envelope_verify(FModifier *fcm)
/* if the are points, perform bubble-sort on them, as user may have changed the order */
if (env->data) {
- // XXX todo...
+ /* XXX todo... */
}
}
@@ -463,7 +459,7 @@ static void fcm_envelope_evaluate(FCurve *UNUSED(fcu), FModifier *fcm, float *cv
}
else {
/* evaltime occurs somewhere between segments */
- // TODO: implement binary search for this to make it faster?
+ /* TODO: implement binary search for this to make it faster? */
for (a = 0; prevfed && fed && (a < env->totvert - 1); a++, prevfed = fed, fed++) {
/* evaltime occurs within the interval defined by these two envelope points */
if ((prevfed->time <= evaltime) && (fed->time >= evaltime)) {
@@ -539,7 +535,7 @@ static float fcm_cycles_time(FCurve *fcu, FModifier *fcm, float UNUSED(cvalue),
int cycles = 0, ofs = 0;
/* check if modifier is first in stack, otherwise disable ourself... */
- // FIXME...
+ /* FIXME... */
if (fcm->prev) {
fcm->flag |= FMODIFIER_FLAG_DISABLED;
return evaltime;
@@ -883,7 +879,7 @@ static void fcm_stepped_new_data(void *mdata)
FMod_Stepped *data = (FMod_Stepped *)mdata;
/* just need to set the step-size to 2-frames by default */
- // XXX: or would 5 be more normal?
+ /* XXX: or would 5 be more normal? */
data->step_size = 2.0f;
}
@@ -965,8 +961,8 @@ FModifierTypeInfo *get_fmodifier_typeinfo(int type)
}
/* only return for valid types */
- if ( (type >= FMODIFIER_TYPE_NULL) &&
- (type <= FMODIFIER_NUM_TYPES) )
+ if ((type >= FMODIFIER_TYPE_NULL) &&
+ (type < FMODIFIER_NUM_TYPES))
{
/* there shouldn't be any segfaults here... */
return fmodifiersTypeInfo[type];
@@ -1005,7 +1001,7 @@ FModifier *add_fmodifier(ListBase *modifiers, int type)
/* special checks for whether modifier can be added */
if ((modifiers->first) && (type == FMODIFIER_TYPE_CYCLES)) {
/* cycles modifier must be first in stack, so for now, don't add if it can't be */
- // TODO: perhaps there is some better way, but for now,
+ /* TODO: perhaps there is some better way, but for now, */
printf("Error: Cannot add 'Cycles' modifier to F-Curve, as 'Cycles' modifier can only be first in stack.\n");
return NULL;
}
@@ -1104,7 +1100,7 @@ int remove_fmodifier(ListBase *modifiers, FModifier *fcm)
return 1;
}
else {
- // XXX this case can probably be removed some day, as it shouldn't happen...
+ /* XXX this case can probably be removed some day, as it shouldn't happen... */
printf("remove_fmodifier() - no modifier stack given\n");
MEM_freeN(fcm);
return 0;
@@ -1298,7 +1294,7 @@ float evaluate_time_fmodifiers(ListBase *modifiers, FCurve *fcu, float cvalue, f
return evaltime;
}
-/* Evalautes the given set of F-Curve Modifiers using the given data
+/* Evaluates the given set of F-Curve Modifiers using the given data
* Should only be called after evaluate_time_fmodifiers() has been called...
*/
void evaluate_value_fmodifiers(ListBase *modifiers, FCurve *fcu, float *cvalue, float evaltime)
@@ -1343,7 +1339,7 @@ void fcurve_bake_modifiers(FCurve *fcu, int start, int end)
ChannelDriver *driver;
/* sanity checks */
- // TODO: make these tests report errors using reports not printf's
+ /* TODO: make these tests report errors using reports not printf's */
if (ELEM(NULL, fcu, fcu->modifiers.first)) {
printf("Error: No F-Curve with F-Curve Modifiers to Bake\n");
return;
diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c
index 061530965ef..06b21fbbd29 100644
--- a/source/blender/blenkernel/intern/font.c
+++ b/source/blender/blenkernel/intern/font.c
@@ -50,7 +50,6 @@
#include "DNA_scene_types.h"
#include "DNA_object_types.h"
-#include "BKE_utildefines.h"
#include "BKE_packedFile.h"
#include "BKE_library.h"
#include "BKE_font.h"
@@ -60,30 +59,39 @@
#include "BKE_curve.h"
#include "BKE_displist.h"
-static ListBase ttfdata = {NULL, NULL};
/* The vfont code */
-void BKE_vfont_free(struct VFont *vf)
+void BKE_vfont_free_data(struct VFont *vfont)
{
- if (vf == NULL) return;
+ if (vfont->data) {
+ while (vfont->data->characters.first) {
+ VChar *che = vfont->data->characters.first;
- if (vf->data) {
- while (vf->data->characters.first) {
- VChar *che = vf->data->characters.first;
-
while (che->nurbsbase.first) {
Nurb *nu = che->nurbsbase.first;
if (nu->bezt) MEM_freeN(nu->bezt);
BLI_freelinkN(&che->nurbsbase, nu);
}
-
- BLI_freelinkN(&vf->data->characters, che);
+
+ BLI_freelinkN(&vfont->data->characters, che);
}
- MEM_freeN(vf->data);
- vf->data = NULL;
+ MEM_freeN(vfont->data);
+ vfont->data = NULL;
}
-
+
+ if (vfont->temp_pf) {
+ freePackedFile(vfont->temp_pf); /* NULL when the font file can't be found on disk */
+ vfont->temp_pf = NULL;
+ }
+}
+
+void BKE_vfont_free(struct VFont *vf)
+{
+ if (vf == NULL) return;
+
+ BKE_vfont_free_data(vf);
+
if (vf->packedfile) {
freePackedFile(vf->packedfile);
vf->packedfile = NULL;
@@ -93,6 +101,11 @@ void BKE_vfont_free(struct VFont *vf)
static void *builtin_font_data = NULL;
static int builtin_font_size = 0;
+int BKE_vfont_is_builtin(struct VFont *vfont)
+{
+ return (strcmp(vfont->name, FO_BUILTIN_NAME) == 0);
+}
+
void BKE_vfont_builtin_register(void *mem, int size)
{
builtin_font_data = mem;
@@ -115,86 +128,43 @@ static PackedFile *get_builtin_packedfile(void)
}
}
-void BKE_vfont_free_global_ttf(void)
-{
- struct TmpFont *tf;
-
- for (tf = ttfdata.first; tf; tf = tf->next) {
- if (tf->pf) freePackedFile(tf->pf); /* NULL when the font file can't be found on disk */
- tf->pf = NULL;
- tf->vfont = NULL;
- }
- BLI_freelistN(&ttfdata);
-}
-
-struct TmpFont *BKE_vfont_find_tmpfont(VFont *vfont)
+static VFontData *vfont_get_data(Main *bmain, VFont *vfont)
{
- struct TmpFont *tmpfnt = NULL;
-
- if (vfont == NULL) return NULL;
-
- // Try finding the font from font list
- tmpfnt = ttfdata.first;
- while (tmpfnt) {
- if (tmpfnt->vfont == vfont)
- break;
- tmpfnt = tmpfnt->next;
+ if (vfont == NULL) {
+ return NULL;
}
- return tmpfnt;
-}
-static VFontData *vfont_get_data(Main *bmain, VFont *vfont)
-{
- struct TmpFont *tmpfnt = NULL;
- PackedFile *tpf;
-
- if (vfont == NULL) return NULL;
-
- // Try finding the font from font list
- tmpfnt = BKE_vfont_find_tmpfont(vfont);
-
- // And then set the data
+ /* And then set the data */
if (!vfont->data) {
PackedFile *pf;
-
- if (strcmp(vfont->name, FO_BUILTIN_NAME) == 0) {
+
+ if (BKE_vfont_is_builtin(vfont)) {
pf = get_builtin_packedfile();
}
else {
if (vfont->packedfile) {
pf = vfont->packedfile;
-
- // We need to copy a tmp font to memory unless it is already there
- if (!tmpfnt) {
- tpf = MEM_callocN(sizeof(*tpf), "PackedFile");
- tpf->data = MEM_mallocN(pf->size, "packFile");
- tpf->size = pf->size;
- memcpy(tpf->data, pf->data, pf->size);
-
- // Add temporary packed file to globals
- tmpfnt = (struct TmpFont *) MEM_callocN(sizeof(struct TmpFont), "temp_font");
- tmpfnt->pf = tpf;
- tmpfnt->vfont = vfont;
- BLI_addtail(&ttfdata, tmpfnt);
+
+ /* We need to copy a tmp font to memory unless it is already there */
+ if (vfont->temp_pf == NULL) {
+ vfont->temp_pf = dupPackedFile(pf);
}
}
else {
pf = newPackedFile(NULL, vfont->name, ID_BLEND_PATH(bmain, &vfont->id));
- if (!tmpfnt) {
- tpf = newPackedFile(NULL, vfont->name, ID_BLEND_PATH(bmain, &vfont->id));
-
- // Add temporary packed file to globals
- tmpfnt = (struct TmpFont *) MEM_callocN(sizeof(struct TmpFont), "temp_font");
- tmpfnt->pf = tpf;
- tmpfnt->vfont = vfont;
- BLI_addtail(&ttfdata, tmpfnt);
+ if (vfont->temp_pf == NULL) {
+ vfont->temp_pf = newPackedFile(NULL, vfont->name, ID_BLEND_PATH(bmain, &vfont->id));
}
}
if (!pf) {
printf("Font file doesn't exist: %s\n", vfont->name);
+ /* DON'T DO THIS
+ * missing file shouldn't modifty path! - campbell */
+#if 0
strcpy(vfont->name, FO_BUILTIN_NAME);
+#endif
pf = get_builtin_packedfile();
}
}
@@ -215,15 +185,14 @@ VFont *BKE_vfont_load(Main *bmain, const char *name)
char filename[FILE_MAXFILE];
VFont *vfont = NULL;
PackedFile *pf;
- PackedFile *tpf = NULL;
+ PackedFile *temp_pf = NULL;
int is_builtin;
- struct TmpFont *tmpfnt;
if (strcmp(name, FO_BUILTIN_NAME) == 0) {
BLI_strncpy(filename, name, sizeof(filename));
pf = get_builtin_packedfile();
- is_builtin = 1;
+ is_builtin = TRUE;
}
else {
char dir[FILE_MAXDIR];
@@ -232,9 +201,9 @@ VFont *BKE_vfont_load(Main *bmain, const char *name)
BLI_splitdirstring(dir, filename);
pf = newPackedFile(NULL, name, bmain->name);
- tpf = newPackedFile(NULL, name, bmain->name);
+ temp_pf = newPackedFile(NULL, name, bmain->name);
- is_builtin = 0;
+ is_builtin = FALSE;
}
if (pf) {
@@ -251,26 +220,21 @@ VFont *BKE_vfont_load(Main *bmain, const char *name)
}
BLI_strncpy(vfont->name, name, sizeof(vfont->name));
- // if autopack is on store the packedfile in de font structure
+ /* if autopack is on store the packedfile in de font structure */
if (!is_builtin && (G.fileflags & G_AUTOPACK)) {
vfont->packedfile = pf;
}
-
- // Do not add FO_BUILTIN_NAME to temporary listbase
+
+ /* Do not add FO_BUILTIN_NAME to temporary listbase */
if (strcmp(filename, FO_BUILTIN_NAME)) {
- tmpfnt = (struct TmpFont *) MEM_callocN(sizeof(struct TmpFont), "temp_font");
- tmpfnt->pf = tpf;
- tmpfnt->vfont = vfont;
- BLI_addtail(&ttfdata, tmpfnt);
- }
+ vfont->temp_pf = temp_pf;
+ }
}
-
- // Free the packed file
+
+ /* Free the packed file */
if (!vfont || vfont->packedfile != pf) {
freePackedFile(pf);
}
-
- //XXX waitcursor(0);
}
return vfont;
@@ -280,23 +244,25 @@ static VFont *which_vfont(Curve *cu, CharInfo *info)
{
switch (info->flag & (CU_CHINFO_BOLD | CU_CHINFO_ITALIC)) {
case CU_CHINFO_BOLD:
- if (cu->vfontb) return(cu->vfontb); else return(cu->vfont);
+ return cu->vfontb ? cu->vfontb : cu->vfont;
case CU_CHINFO_ITALIC:
- if (cu->vfonti) return(cu->vfonti); else return(cu->vfont);
+ return cu->vfonti ? cu->vfonti : cu->vfont;
case (CU_CHINFO_BOLD | CU_CHINFO_ITALIC):
- if (cu->vfontbi) return(cu->vfontbi); else return(cu->vfont);
+ return cu->vfontbi ? cu->vfontbi : cu->vfont;
default:
- return(cu->vfont);
- }
+ return cu->vfont;
+ }
}
VFont *BKE_vfont_builtin_get(void)
{
- VFont *vf;
+ VFont *vfont;
- for (vf = G.main->vfont.first; vf; vf = vf->id.next)
- if (strcmp(vf->name, FO_BUILTIN_NAME) == 0)
- return vf;
+ for (vfont = G.main->vfont.first; vfont; vfont = vfont->id.next) {
+ if (BKE_vfont_is_builtin(vfont)) {
+ return vfont;
+ }
+ }
return BKE_vfont_load(G.main, FO_BUILTIN_NAME);
}
@@ -305,6 +271,7 @@ static VChar *find_vfont_char(VFontData *vfd, intptr_t character)
{
VChar *che = NULL;
+ /* TODO: use ghash */
for (che = vfd->characters.first; che; che = che->next) {
if (che->index == character)
break;
@@ -359,7 +326,8 @@ static void build_underline(Curve *cu, float x1, float y1, float x2, float y2, i
}
-static void buildchar(Main *bmain, Curve *cu, unsigned long character, CharInfo *info, float ofsx, float ofsy, float rot, int charidx)
+static void buildchar(Main *bmain, Curve *cu, unsigned long character, CharInfo *info,
+ float ofsx, float ofsy, float rot, int charidx)
{
BezTriple *bezt1, *bezt2;
Nurb *nu1 = NULL, *nu2 = NULL;
@@ -382,19 +350,19 @@ static void buildchar(Main *bmain, Curve *cu, unsigned long character, CharInfo
}
#endif
- /* make a copy at distance ofsx, ofsy with shear*/
+ /* make a copy at distance ofsx, ofsy with shear */
fsize = cu->fsize;
shear = cu->shear;
- si = (float)sin(rot);
- co = (float)cos(rot);
+ si = sinf(rot);
+ co = cosf(rot);
che = find_vfont_char(vfd, character);
- // Select the glyph data
+ /* Select the glyph data */
if (che)
nu1 = che->nurbsbase.first;
- // Create the character
+ /* Create the character */
while (nu1) {
bezt1 = nu1->bezt;
if (bezt1) {
@@ -508,7 +476,7 @@ int BKE_vfont_select_get(Object *ob, int *start, int *end)
static float char_width(Curve *cu, VChar *che, CharInfo *info)
{
- // The character wasn't found, propably ascii = 0, then the width shall be 0 as well
+ /* The character wasn't found, propably ascii = 0, then the width shall be 0 as well */
if (che == NULL) {
return 0.0f;
}
@@ -520,7 +488,7 @@ static float char_width(Curve *cu, VChar *che, CharInfo *info)
}
}
-struct chartrans *BKE_vfont_to_curve(Main *bmain, Scene *scene, Object *ob, int mode)
+struct CharTrans *BKE_vfont_to_curve(Main *bmain, Scene *scene, Object *ob, int mode)
{
VFont *vfont, *oldvfont;
VFontData *vfd = NULL;
@@ -528,7 +496,7 @@ struct chartrans *BKE_vfont_to_curve(Main *bmain, Scene *scene, Object *ob, int
CharInfo *info = NULL, *custrinfo;
TextBox *tb;
VChar *che;
- struct chartrans *chartransdata = NULL, *ct;
+ struct CharTrans *chartransdata = NULL, *ct;
float *f, xof, yof, xtrax, linedist, *linedata, *linedata2, *linedata3, *linedata4;
float twidth, maxlen = 0;
int i, slen, j;
@@ -538,25 +506,25 @@ struct chartrans *BKE_vfont_to_curve(Main *bmain, Scene *scene, Object *ob, int
short cnr = 0, lnr = 0, wsnr = 0;
wchar_t *mem, *tmp, ascii;
- /* renark: do calculations including the trailing '\0' of a string
+ /* remark: do calculations including the trailing '\0' of a string
* because the cursor can be at that location */
if (ob->type != OB_FONT) return NULL;
- // Set font data
+ /* Set font data */
cu = (Curve *) ob->data;
vfont = cu->vfont;
-
+
if (cu->str == NULL) return NULL;
if (vfont == NULL) return NULL;
- // Create unicode string
+ /* Create unicode string */
utf8len = BLI_strlen_utf8(cu->str);
mem = MEM_callocN(((utf8len + 1) * sizeof(wchar_t)), "convertedmem");
-
+
BLI_strncpy_wchar_from_utf8(mem, cu->str, utf8len + 1);
- // Count the wchar_t string length
+ /* Count the wchar_t string length */
slen = wcslen(mem);
if (cu->ulheight == 0.0f)
@@ -583,7 +551,7 @@ struct chartrans *BKE_vfont_to_curve(Main *bmain, Scene *scene, Object *ob, int
/* calc offset and rotation of each char */
ct = chartransdata =
- (struct chartrans *)MEM_callocN((slen + 1) * sizeof(struct chartrans), "buildtext");
+ (struct CharTrans *)MEM_callocN((slen + 1) * sizeof(struct CharTrans), "buildtext");
/* We assume the worst case: 1 character per line (is freed at end anyway) */
@@ -612,7 +580,7 @@ struct chartrans *BKE_vfont_to_curve(Main *bmain, Scene *scene, Object *ob, int
curbox = 0;
for (i = 0; i <= slen; i++) {
makebreak:
- // Characters in the list
+ /* Characters in the list */
info = &(custrinfo[i]);
ascii = mem[i];
if (info->flag & CU_CHINFO_SMALLCAPS) {
@@ -631,10 +599,10 @@ makebreak:
/*
* The character wasn't in the current curve base so load it
- * But if the font is FO_BUILTIN_NAME then do not try loading since
+ * But if the font is built-in then do not try loading since
* whole font is in the memory already
*/
- if (che == NULL && strcmp(vfont->name, FO_BUILTIN_NAME)) {
+ if (che == NULL && BKE_vfont_is_builtin(vfont) == FALSE) {
BLI_vfontchar_from_freetypefont(vfont, ascii);
}
@@ -664,8 +632,11 @@ makebreak:
twidth = char_width(cu, che, info);
- // Calculate positions
- if ((tb->w != 0.0f) && (ct->dobreak == 0) && ((xof - (tb->x / cu->fsize) + twidth) * cu->fsize) > tb->w + cu->xof * cu->fsize) {
+ /* Calculate positions */
+ if ((tb->w != 0.0f) &&
+ (ct->dobreak == 0) &&
+ (((xof - (tb->x / cu->fsize) + twidth) * cu->fsize) > tb->w + cu->xof * cu->fsize))
+ {
// fprintf(stderr, "linewidth exceeded: %c%c%c...\n", mem[i], mem[i+1], mem[i+2]);
for (j = i; j && (mem[j] != '\n') && (mem[j] != '\r') && (chartransdata[j].dobreak == 0); j--) {
if (mem[j] == ' ' || mem[j] == '-') {
@@ -691,6 +662,7 @@ makebreak:
}
}
}
+
if (ascii == '\n' || ascii == '\r' || ascii == 0 || ct->dobreak) {
ct->xof = xof;
ct->yof = yof;
@@ -699,7 +671,7 @@ makebreak:
yof -= linedist;
- maxlen = MAX2(maxlen, (xof - tb->x / cu->fsize));
+ maxlen = maxf(maxlen, (xof - tb->x / cu->fsize));
linedata[lnr] = xof - tb->x / cu->fsize;
linedata2[lnr] = cnr;
linedata3[lnr] = tb->w / cu->fsize;
@@ -760,15 +732,18 @@ makebreak:
wsfac = cu->wordspace;
wsnr++;
}
- else wsfac = 1.0f;
+ else {
+ wsfac = 1.0f;
+ }
- // Set the width of the character
+ /* Set the width of the character */
twidth = char_width(cu, che, info);
xof += (twidth * wsfac * (1.0f + (info->kern / 40.0f)) ) + xtrax;
- if (sb)
+ if (sb) {
sb->w = (xof * cu->fsize) - sb->w;
+ }
}
ct++;
}
@@ -781,10 +756,10 @@ makebreak:
if (ascii == '\n' || ascii == '\r' || ct->dobreak) cu->lines++;
}
- // linedata is now: width of line
- // linedata2 is now: number of characters
- // linedata3 is now: maxlen of that line
- // linedata4 is now: number of whitespaces of line
+ /* linedata is now: width of line
+ * linedata2 is now: number of characters
+ * linedata3 is now: maxlen of that line
+ * linedata4 is now: number of whitespaces of line */
if (cu->spacemode != CU_LEFT) {
ct = chartransdata;
@@ -812,7 +787,7 @@ makebreak:
/* do nothing */
}
-// if ((mem[j]!='\r') && (mem[j]!='\n') && (mem[j])) {
+// if ((mem[j] != '\r') && (mem[j] != '\n') && (mem[j])) {
ct->xof += ct->charnr * linedata[ct->linenr];
// }
ct++;
@@ -887,11 +862,14 @@ makebreak:
else if (cu->spacemode == CU_MIDDLE) {
timeofs = (1.0f - distfac) / 2.0f;
}
- else if (cu->spacemode == CU_FLUSH) distfac = 1.0f;
-
+ else if (cu->spacemode == CU_FLUSH) {
+ distfac = 1.0f;
+ }
}
- else distfac = 1.0;
-
+ else {
+ distfac = 1.0;
+ }
+
distfac /= (maxx - minx);
timeofs += distfac * cu->xof; /* not cyclic */
@@ -920,10 +898,10 @@ makebreak:
mul_v3_fl(vec, sizefac);
- ct->rot = (float)(M_PI - atan2(rotvec[1], rotvec[0]));
+ ct->rot = (float)M_PI - atan2f(rotvec[1], rotvec[0]);
- si = (float)sin(ct->rot);
- co = (float)cos(ct->rot);
+ si = sinf(ct->rot);
+ co = cosf(ct->rot);
yof = ct->yof;
@@ -950,8 +928,12 @@ makebreak:
* 3: curs down */
ct = chartransdata + cu->pos;
- if ((mode == FO_CURSUP || mode == FO_PAGEUP) && ct->linenr == 0) ;
- else if ((mode == FO_CURSDOWN || mode == FO_PAGEDOWN) && ct->linenr == lnr) ;
+ if ((mode == FO_CURSUP || mode == FO_PAGEUP) && ct->linenr == 0) {
+ /* pass */
+ }
+ else if ((mode == FO_CURSDOWN || mode == FO_PAGEDOWN) && ct->linenr == lnr) {
+ /* pass */
+ }
else {
switch (mode) {
case FO_CURSUP: lnr = ct->linenr - 1; break;
@@ -986,21 +968,21 @@ makebreak:
f = cu->editfont->textcurs[0];
f[0] = cu->fsize * (-0.1f * co + ct->xof);
- f[1] = cu->fsize * (0.1f * si + ct->yof);
+ f[1] = cu->fsize * ( 0.1f * si + ct->yof);
- f[2] = cu->fsize * (0.1f * co + ct->xof);
+ f[2] = cu->fsize * ( 0.1f * co + ct->xof);
f[3] = cu->fsize * (-0.1f * si + ct->yof);
- f[4] = cu->fsize * (0.1f * co + 0.8f * si + ct->xof);
+ f[4] = cu->fsize * ( 0.1f * co + 0.8f * si + ct->xof);
f[5] = cu->fsize * (-0.1f * si + 0.8f * co + ct->yof);
f[6] = cu->fsize * (-0.1f * co + 0.8f * si + ct->xof);
- f[7] = cu->fsize * (0.1f * si + 0.8f * co + ct->yof);
+ f[7] = cu->fsize * ( 0.1f * si + 0.8f * co + ct->yof);
}
MEM_freeN(linedata);
- MEM_freeN(linedata2);
+ MEM_freeN(linedata2);
MEM_freeN(linedata3);
MEM_freeN(linedata4);
@@ -1023,7 +1005,7 @@ makebreak:
/* printf("Error: Illegal material index (%d) in text object, setting to 0\n", info->mat_nr); */
info->mat_nr = 0;
}
- // We do not want to see any character for \n or \r
+ /* We do not want to see any character for \n or \r */
if (cha != '\n' && cha != '\r')
buildchar(bmain, cu, cha, info, ct->xof, ct->yof, ct->rot, i);
@@ -1031,12 +1013,13 @@ makebreak:
float ulwidth, uloverlap = 0.0f;
if ((i < (slen - 1)) && (mem[i + 1] != '\n') && (mem[i + 1] != '\r') &&
- ((mem[i + 1] != ' ') || (custrinfo[i + 1].flag & CU_CHINFO_UNDERLINE)) && ((custrinfo[i + 1].flag & CU_CHINFO_WRAP) == 0))
+ ((mem[i + 1] != ' ') || (custrinfo[i + 1].flag & CU_CHINFO_UNDERLINE)) &&
+ ((custrinfo[i + 1].flag & CU_CHINFO_WRAP) == 0))
{
uloverlap = xtrax + 0.1f;
}
- // Find the character, the characters has to be in the memory already
- // since character checking has been done earlier already.
+ /* Find the character, the characters has to be in the memory already
+ * since character checking has been done earlier already. */
che = find_vfont_char(vfd, cha);
twidth = char_width(cu, che, info);
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index c317dc63ef7..76b00ffdb1c 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -87,6 +87,7 @@ void free_gpencil_frames(bGPDlayer *gpl)
free_gpencil_strokes(gpf);
BLI_freelinkN(&gpl->frames, gpf);
}
+ gpl->actframe = NULL;
}
/* Free all of the gp-layers for a viewport (list should be &gpd->layers or so) */
@@ -97,7 +98,7 @@ void free_gpencil_layers(ListBase *list)
/* error checking */
if (list == NULL) return;
- /* delete layers*/
+ /* delete layers */
for (gpl = list->first; gpl; gpl = gpln) {
gpln = gpl->next;
@@ -163,7 +164,7 @@ bGPDframe *gpencil_frame_addnew(bGPDlayer *gpl, int cframe)
}
/* add a new gp-layer and make it the active layer */
-bGPDlayer *gpencil_layer_addnew(bGPdata *gpd)
+bGPDlayer *gpencil_layer_addnew(bGPdata *gpd, const char *name, int setactive)
{
bGPDlayer *gpl;
@@ -182,11 +183,12 @@ bGPDlayer *gpencil_layer_addnew(bGPdata *gpd)
gpl->thickness = 3;
/* auto-name */
- strcpy(gpl->info, "GP_Layer");
+ strcpy(gpl->info, name);
BLI_uniquename(&gpd->layers, gpl, "GP_Layer", '.', offsetof(bGPDlayer, info), sizeof(gpl->info));
/* make this one the active one */
- gpencil_layer_setactive(gpd, gpl);
+ if (setactive)
+ gpencil_layer_setactive(gpd, gpl);
/* return layer */
return gpl;
@@ -509,10 +511,8 @@ void gpencil_layer_setactive(bGPdata *gpd, bGPDlayer *active)
}
/* delete the active gp-layer */
-void gpencil_layer_delactive(bGPdata *gpd)
+void gpencil_layer_delete(bGPdata *gpd, bGPDlayer *gpl)
{
- bGPDlayer *gpl = gpencil_layer_getactive(gpd);
-
/* error checking */
if (ELEM(NULL, gpd, gpl))
return;
diff --git a/source/blender/blenkernel/intern/group.c b/source/blender/blenkernel/intern/group.c
index 0725b1732d3..634428d9194 100644
--- a/source/blender/blenkernel/intern/group.c
+++ b/source/blender/blenkernel/intern/group.c
@@ -110,16 +110,6 @@ void BKE_group_unlink(Group *group)
if (ob->dup_group == group) {
ob->dup_group = NULL;
-#if 0 /* XXX OLD ANIMSYS, NLASTRIPS ARE NO LONGER USED */
- {
- bActionStrip *strip;
- /* duplicator strips use a group object, we remove it */
- for (strip = ob->nlastrips.first; strip; strip = strip->next) {
- if (strip->object)
- strip->object = NULL;
- }
- }
-#endif
}
for (psys = ob->particlesystem.first; psys; psys = psys->next) {
@@ -161,11 +151,13 @@ static int add_to_group_internal(Group *group, Object *ob)
{
GroupObject *go;
- if (group == NULL || ob == NULL) return 0;
+ if (group == NULL || ob == NULL) {
+ return FALSE;
+ }
/* check if the object has been added already */
- for (go = group->gobject.first; go; go = go->next) {
- if (go->ob == ob) return 0;
+ if (BLI_findptr(&group->gobject, ob, offsetof(GroupObject, ob))) {
+ return FALSE;
}
go = MEM_callocN(sizeof(GroupObject), "groupobject");
@@ -173,7 +165,7 @@ static int add_to_group_internal(Group *group, Object *ob)
go->ob = ob;
- return 1;
+ return TRUE;
}
int add_to_group(Group *group, Object *object, Scene *scene, Base *base)
@@ -239,15 +231,11 @@ int rem_from_group(Group *group, Object *object, Scene *scene, Base *base)
int object_in_group(Object *ob, Group *group)
{
- GroupObject *go;
-
- if (group == NULL || ob == NULL) return 0;
-
- for (go = group->gobject.first; go; go = go->next) {
- if (go->ob == ob)
- return 1;
+ if (group == NULL || ob == NULL) {
+ return FALSE;
}
- return 0;
+
+ return (BLI_findptr(&group->gobject, ob, offsetof(GroupObject, ob)) != NULL);
}
Group *find_group(Object *ob, Group *group)
@@ -345,7 +333,7 @@ void group_handle_recalc_and_update(Scene *scene, Object *UNUSED(parent), Group
#if 0 /* warning, isn't clearing the recalc flag on the object which causes it to run all the time,
* not just on frame change.
- * This isn't working because the animation data is only re-evalyated on frame change so commenting for now
+ * This isn't working because the animation data is only re-evaluated on frame change so commenting for now
* but when its enabled at some point it will need to be changed so as not to update so much - campbell */
/* if animated group... */
@@ -385,57 +373,3 @@ void group_handle_recalc_and_update(Scene *scene, Object *UNUSED(parent), Group
}
}
}
-
-#if 0
-Object *group_get_member_with_action(Group *group, bAction *act)
-{
- GroupObject *go;
-
- if (group == NULL || act == NULL) return NULL;
-
- for (go = group->gobject.first; go; go = go->next) {
- if (go->ob) {
- if (go->ob->action == act)
- return go->ob;
- if (go->ob->nlastrips.first) {
- bActionStrip *strip;
-
- for (strip = go->ob->nlastrips.first; strip; strip = strip->next) {
- if (strip->act == act)
- return go->ob;
- }
- }
- }
- }
- return NULL;
-}
-
-/* if group has NLA, we try to map the used objects in NLA to group members */
-/* this assuming that object has received a new group link */
-void group_relink_nla_objects(Object *ob)
-{
- Group *group;
- GroupObject *go;
- bActionStrip *strip;
-
- if (ob == NULL || ob->dup_group == NULL) return;
- group = ob->dup_group;
-
- for (strip = ob->nlastrips.first; strip; strip = strip->next) {
- if (strip->object) {
- for (go = group->gobject.first; go; go = go->next) {
- if (go->ob) {
- if (strcmp(go->ob->id.name, strip->object->id.name) == 0)
- break;
- }
- }
- if (go)
- strip->object = go->ob;
- else
- strip->object = NULL;
- }
-
- }
-}
-
-#endif
diff --git a/source/blender/blenkernel/intern/icons.c b/source/blender/blenkernel/intern/icons.c
index 8a49cba7649..d8c3e260399 100644
--- a/source/blender/blenkernel/intern/icons.c
+++ b/source/blender/blenkernel/intern/icons.c
@@ -65,7 +65,7 @@ static void icon_free(void *val)
Icon *icon = val;
if (icon) {
- if (icon->drawinfo_free) {
+ if (icon->drawinfo_free) {
icon->drawinfo_free(icon->drawinfo);
}
else if (icon->drawinfo) {
@@ -255,7 +255,7 @@ void BKE_icon_changed(int id)
prv->changed_timestamp[i]++;
}
}
- }
+ }
}
int BKE_icon_getid(struct ID *id)
diff --git a/source/blender/blenkernel/intern/idprop.c b/source/blender/blenkernel/intern/idprop.c
index 42c7869a365..8ceaab56f83 100644
--- a/source/blender/blenkernel/intern/idprop.c
+++ b/source/blender/blenkernel/intern/idprop.c
@@ -33,11 +33,13 @@
#include <stddef.h>
#include <string.h>
+#include "BLI_utildefines.h"
+#include "BLI_string.h"
+#include "BLI_listbase.h"
+
#include "BKE_idprop.h"
#include "BKE_library.h"
-#include "BLI_blenlib.h"
-
#include "MEM_guardedalloc.h"
/* IDPropertyTemplate is a union in DNA_ID.h */
@@ -122,11 +124,10 @@ IDProperty *IDP_GetIndexArray(IDProperty *prop, int index)
return GETPROP(prop, index);
}
-IDProperty *IDP_AppendArray(IDProperty *prop, IDProperty *item)
+void IDP_AppendArray(IDProperty *prop, IDProperty *item)
{
IDP_ResizeIDPArray(prop, prop->len + 1);
IDP_SetIndexArray(prop, prop->len - 1, item);
- return item;
}
void IDP_ResizeIDPArray(IDProperty *prop, int newlen)
@@ -158,12 +159,12 @@ void IDP_ResizeIDPArray(IDProperty *prop, int newlen)
newarr = MEM_callocN(sizeof(IDProperty) * newsize, "idproperty array resized");
if (newlen >= prop->len) {
- /* newlen is bigger*/
+ /* newlen is bigger */
memcpy(newarr, prop->data.pointer, prop->len * sizeof(IDProperty));
}
else {
int i;
- /* newlen is smaller*/
+ /* newlen is smaller */
for (i = newlen; i < prop->len; i++) {
IDP_FreeProperty(GETPROP(prop, i));
}
@@ -232,12 +233,12 @@ void IDP_ResizeArray(IDProperty *prop, int newlen)
newarr = MEM_callocN(idp_size_table[(int)prop->subtype] * newsize, "idproperty array resized");
if (newlen >= prop->len) {
- /* newlen is bigger*/
+ /* newlen is bigger */
memcpy(newarr, prop->data.pointer, prop->len * idp_size_table[(int)prop->subtype]);
idp_resize_group_array(prop, newlen, newarr);
}
else {
- /* newlen is smaller*/
+ /* newlen is smaller */
idp_resize_group_array(prop, newlen, newarr);
memcpy(newarr, prop->data.pointer, newlen * idp_size_table[(int)prop->subtype]);
}
@@ -292,18 +293,6 @@ static IDProperty *IDP_CopyArray(IDProperty *prop)
return newp;
}
-/*taken from readfile.c*/
-#define SWITCH_LONGINT(a) { \
- char s_i, *p_i; \
- p_i = (char *)& (a); \
- s_i = p_i[0]; p_i[0] = p_i[7]; p_i[7] = s_i; \
- s_i = p_i[1]; p_i[1] = p_i[6]; p_i[6] = s_i; \
- s_i = p_i[2]; p_i[2] = p_i[5]; p_i[5] = s_i; \
- s_i = p_i[3]; p_i[3] = p_i[4]; p_i[4] = s_i; \
- } (void)0
-
-
-
/* ---------- String Type ------------ */
IDProperty *IDP_NewString(const char *st, const char *name, int maxlen)
{
@@ -495,7 +484,7 @@ void IDP_ReplaceInGroup(IDProperty *group, IDProperty *prop)
BLI_remlink(&group->data.group, loop);
IDP_FreeProperty(loop);
- MEM_freeN(loop);
+ MEM_freeN(loop);
}
else {
group->len++;
@@ -603,7 +592,9 @@ IDProperty *IDP_CopyProperty(IDProperty *prop)
IDProperty *IDP_GetProperties(ID *id, int create_if_needed)
{
- if (id->properties) return id->properties;
+ if (id->properties) {
+ return id->properties;
+ }
else {
if (create_if_needed) {
id->properties = MEM_callocN(sizeof(IDProperty), "IDProperty");
@@ -688,10 +679,10 @@ IDProperty *IDP_New(const int type, const IDPropertyTemplate *val, const char *n
case IDP_DOUBLE:
prop = MEM_callocN(sizeof(IDProperty), "IDProperty float");
*(double *)&prop->data.val = val->d;
- break;
+ break;
case IDP_ARRAY:
{
- /*for now, we only support float and int and double arrays*/
+ /* for now, we only support float and int and double arrays */
if ( (val->array.type == IDP_FLOAT) ||
(val->array.type == IDP_INT) ||
(val->array.type == IDP_DOUBLE) ||
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index d2a2412843a..c003a86a0b7 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -47,6 +47,7 @@
#include "MEM_guardedalloc.h"
+#include "IMB_colormanagement.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
@@ -70,6 +71,7 @@
#include "BLI_bpath.h"
#include "BKE_bmfont.h"
+#include "BKE_colortools.h"
#include "BKE_global.h"
#include "BKE_icons.h"
#include "BKE_image.h"
@@ -79,7 +81,6 @@
#include "BKE_scene.h"
#include "BKE_node.h"
#include "BKE_sequencer.h" /* seq_foreground_frame_get() */
-#include "BKE_utildefines.h"
#include "BLF_api.h"
@@ -244,6 +245,11 @@ static Image *image_alloc(const char *name, short source, short type)
ima->source = source;
ima->type = type;
+
+ if (source == IMA_SRC_VIEWER)
+ ima->flag |= IMA_VIEW_AS_RENDER;
+
+ BKE_color_managed_colorspace_settings_init(&ima->colorspace_settings);
}
return ima;
}
@@ -326,6 +332,8 @@ Image *BKE_image_copy(Image *ima)
nima->aspx = ima->aspx;
nima->aspy = ima->aspy;
+ BKE_color_managed_colorspace_settings_copy(&nima->colorspace_settings, &ima->colorspace_settings);
+
return nima;
}
@@ -595,7 +603,8 @@ Image *BKE_image_load_exists(const char *filepath)
return BKE_image_load(filepath);
}
-static ImBuf *add_ibuf_size(unsigned int width, unsigned int height, const char *name, int depth, int floatbuf, short uvtestgrid, float color[4])
+static ImBuf *add_ibuf_size(unsigned int width, unsigned int height, const char *name, int depth, int floatbuf, short gen_type,
+ float color[4], ColorManagedColorspaceSettings *colorspace_settings)
{
ImBuf *ibuf;
unsigned char *rect = NULL;
@@ -603,23 +612,37 @@ static ImBuf *add_ibuf_size(unsigned int width, unsigned int height, const char
if (floatbuf) {
ibuf = IMB_allocImBuf(width, height, depth, IB_rectfloat);
- rect_float = (float *)ibuf->rect_float;
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
+ rect_float = ibuf->rect_float;
+
+ if (colorspace_settings->name[0] == '\0') {
+ const char *colorspace = IMB_colormanagement_role_colorspace_name_get(COLOR_ROLE_DEFAULT_FLOAT);
+
+ BLI_strncpy(colorspace_settings->name, colorspace, sizeof(colorspace_settings->name));
+ }
+
+ IMB_colormanagement_check_is_data(ibuf, colorspace_settings->name);
}
else {
ibuf = IMB_allocImBuf(width, height, depth, IB_rect);
rect = (unsigned char *)ibuf->rect;
- ibuf->profile = IB_PROFILE_SRGB;
+
+ if (colorspace_settings->name[0] == '\0') {
+ const char *colorspace = IMB_colormanagement_role_colorspace_name_get(COLOR_ROLE_DEFAULT_BYTE);
+
+ BLI_strncpy(colorspace_settings->name, colorspace, sizeof(colorspace_settings->name));
+ }
+
+ IMB_colormanagement_assign_rect_colorspace(ibuf, colorspace_settings->name);
}
BLI_strncpy(ibuf->name, name, sizeof(ibuf->name));
ibuf->userflags |= IB_BITMAPDIRTY;
- switch (uvtestgrid) {
- case 1:
+ switch (gen_type) {
+ case IMA_GENTYPE_GRID:
BKE_image_buf_fill_checker(rect, rect_float, width, height);
break;
- case 2:
+ case IMA_GENTYPE_GRID_COLOR:
BKE_image_buf_fill_checker_color(rect, rect_float, width, height);
break;
default:
@@ -630,7 +653,7 @@ static ImBuf *add_ibuf_size(unsigned int width, unsigned int height, const char
}
/* adds new image block, creates ImBuf and initializes color */
-Image *BKE_image_add_generated(unsigned int width, unsigned int height, const char *name, int depth, int floatbuf, short uvtestgrid, float color[4])
+Image *BKE_image_add_generated(unsigned int width, unsigned int height, const char *name, int depth, int floatbuf, short gen_type, float color[4])
{
/* on save, type is changed to FILE in editsima.c */
Image *ima = image_alloc(name, IMA_SRC_GENERATED, IMA_TYPE_UV_TEST);
@@ -641,10 +664,10 @@ Image *BKE_image_add_generated(unsigned int width, unsigned int height, const ch
/* BLI_strncpy(ima->name, name, FILE_MAX); */ /* don't do this, this writes in ain invalid filepath! */
ima->gen_x = width;
ima->gen_y = height;
- ima->gen_type = uvtestgrid;
+ ima->gen_type = gen_type;
ima->gen_flag |= (floatbuf ? IMA_GEN_FLOAT : 0);
- ibuf = add_ibuf_size(width, height, ima->name, depth, floatbuf, uvtestgrid, color);
+ ibuf = add_ibuf_size(width, height, ima->name, depth, floatbuf, gen_type, color, &ima->colorspace_settings);
image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0);
ima->ok = IMA_OK_LOADED;
@@ -741,7 +764,7 @@ void free_old_images(void)
return;
/* of course not! */
- if (G.rendering)
+ if (G.is_rendering)
return;
lasttime = ctime;
@@ -969,7 +992,6 @@ int BKE_imtype_is_movie(const char imtype)
switch (imtype) {
case R_IMF_IMTYPE_AVIRAW:
case R_IMF_IMTYPE_AVIJPEG:
- case R_IMF_IMTYPE_AVICODEC:
case R_IMF_IMTYPE_QUICKTIME:
case R_IMF_IMTYPE_FFMPEG:
case R_IMF_IMTYPE_H264:
@@ -1011,6 +1033,19 @@ int BKE_imtype_supports_quality(const char imtype)
return 0;
}
+int BKE_imtype_requires_linear_float(const char imtype)
+{
+ switch (imtype) {
+ case R_IMF_IMTYPE_CINEON:
+ case R_IMF_IMTYPE_DPX:
+ case R_IMF_IMTYPE_RADHDR:
+ case R_IMF_IMTYPE_OPENEXR:
+ case R_IMF_IMTYPE_MULTILAYER:
+ return TRUE;
+ }
+ return 0;
+}
+
char BKE_imtype_valid_channels(const char imtype)
{
char chan_flag = IMA_CHAN_FLAG_RGB; /* assume all support rgb */
@@ -1084,7 +1119,6 @@ char BKE_imtype_from_arg(const char *imtype_arg)
else if (!strcmp(imtype_arg, "AVIRAW")) return R_IMF_IMTYPE_AVIRAW;
else if (!strcmp(imtype_arg, "AVIJPEG")) return R_IMF_IMTYPE_AVIJPEG;
else if (!strcmp(imtype_arg, "PNG")) return R_IMF_IMTYPE_PNG;
- else if (!strcmp(imtype_arg, "AVICODEC")) return R_IMF_IMTYPE_AVICODEC;
else if (!strcmp(imtype_arg, "QUICKTIME")) return R_IMF_IMTYPE_QUICKTIME;
else if (!strcmp(imtype_arg, "BMP")) return R_IMF_IMTYPE_BMP;
#ifdef WITH_HDR
@@ -1180,7 +1214,7 @@ int BKE_add_image_extension(char *string, const char imtype)
extension = ".jp2";
}
#endif
- else { // R_IMF_IMTYPE_AVICODEC, R_IMF_IMTYPE_AVIRAW, R_IMF_IMTYPE_AVIJPEG, R_IMF_IMTYPE_JPEG90, R_IMF_IMTYPE_QUICKTIME etc
+ else { // R_IMF_IMTYPE_AVIRAW, R_IMF_IMTYPE_AVIJPEG, R_IMF_IMTYPE_JPEG90, R_IMF_IMTYPE_QUICKTIME etc
if (!(BLI_testextensie(string, ".jpg") || BLI_testextensie(string, ".jpeg")))
extension = ".jpg";
}
@@ -1210,47 +1244,53 @@ void BKE_imformat_defaults(ImageFormatData *im_format)
im_format->imtype = R_IMF_IMTYPE_PNG;
im_format->quality = 90;
im_format->compress = 90;
+
+ BKE_color_managed_display_settings_init(&im_format->display_settings);
+ BKE_color_managed_view_settings_init(&im_format->view_settings);
}
void BKE_imbuf_to_image_format(struct ImageFormatData *im_format, const ImBuf *imbuf)
{
+ int ftype = imbuf->ftype & ~IB_CUSTOM_FLAGS_MASK;
+ int custom_flags = imbuf->ftype & IB_CUSTOM_FLAGS_MASK;
+
BKE_imformat_defaults(im_format);
- // file type
+ /* file type */
- if (imbuf->ftype == IMAGIC)
+ if (ftype == IMAGIC)
im_format->imtype = R_IMF_IMTYPE_IRIS;
#ifdef WITH_HDR
- else if (imbuf->ftype == RADHDR)
+ else if (ftype == RADHDR)
im_format->imtype = R_IMF_IMTYPE_RADHDR;
#endif
- else if (imbuf->ftype == PNG)
+ else if (ftype == PNG)
im_format->imtype = R_IMF_IMTYPE_PNG;
#ifdef WITH_DDS
- else if (imbuf->ftype == DDS)
+ else if (ftype == DDS)
im_format->imtype = R_IMF_IMTYPE_DDS;
#endif
- else if (imbuf->ftype == BMP)
+ else if (ftype == BMP)
im_format->imtype = R_IMF_IMTYPE_BMP;
#ifdef WITH_TIFF
- else if (imbuf->ftype & TIF) {
+ else if (ftype == TIF) {
im_format->imtype = R_IMF_IMTYPE_TIFF;
- if (imbuf->ftype & TIF_16BIT)
+ if (custom_flags & TIF_16BIT)
im_format->depth = R_IMF_CHAN_DEPTH_16;
}
#endif
#ifdef WITH_OPENEXR
- else if (imbuf->ftype & OPENEXR) {
+ else if (ftype == OPENEXR) {
im_format->imtype = R_IMF_IMTYPE_OPENEXR;
- if (imbuf->ftype & OPENEXR_HALF)
+ if (custom_flags & OPENEXR_HALF)
im_format->depth = R_IMF_CHAN_DEPTH_16;
- if (imbuf->ftype & OPENEXR_COMPRESS)
+ if (custom_flags & OPENEXR_COMPRESS)
im_format->exr_codec = R_IMF_EXR_CODEC_ZIP; // Can't determine compression
if (imbuf->zbuf_float)
im_format->flag |= R_IMF_FLAG_ZBUF;
@@ -1258,35 +1298,35 @@ void BKE_imbuf_to_image_format(struct ImageFormatData *im_format, const ImBuf *i
#endif
#ifdef WITH_CINEON
- else if (imbuf->ftype == CINEON)
+ else if (ftype == CINEON)
im_format->imtype = R_IMF_IMTYPE_CINEON;
- else if (imbuf->ftype == DPX)
+ else if (ftype == DPX)
im_format->imtype = R_IMF_IMTYPE_DPX;
#endif
- else if (imbuf->ftype == TGA) {
+ else if (ftype == TGA) {
im_format->imtype = R_IMF_IMTYPE_TARGA;
}
- else if (imbuf->ftype == RAWTGA) {
+ else if (ftype == RAWTGA) {
im_format->imtype = R_IMF_IMTYPE_RAWTGA;
}
#ifdef WITH_OPENJPEG
- else if (imbuf->ftype & JP2) {
+ else if (ftype & JP2) {
im_format->imtype = R_IMF_IMTYPE_JP2;
- im_format->quality = imbuf->ftype & ~JPG_MSK;
+ im_format->quality = custom_flags & ~JPG_MSK;
- if (imbuf->ftype & JP2_16BIT)
+ if (ftype & JP2_16BIT)
im_format->depth = R_IMF_CHAN_DEPTH_16;
- else if (imbuf->ftype & JP2_12BIT)
+ else if (ftype & JP2_12BIT)
im_format->depth = R_IMF_CHAN_DEPTH_12;
- if (imbuf->ftype & JP2_YCC)
+ if (ftype & JP2_YCC)
im_format->jp2_flag |= R_IMF_JP2_FLAG_YCC;
- if (imbuf->ftype & JP2_CINE) {
+ if (ftype & JP2_CINE) {
im_format->jp2_flag |= R_IMF_JP2_FLAG_CINE_PRESET;
- if (imbuf->ftype & JP2_CINE_48FPS)
+ if (ftype & JP2_CINE_48FPS)
im_format->jp2_flag |= R_IMF_JP2_FLAG_CINE_48;
}
}
@@ -1294,10 +1334,10 @@ void BKE_imbuf_to_image_format(struct ImageFormatData *im_format, const ImBuf *i
else {
im_format->imtype = R_IMF_IMTYPE_JPEG90;
- im_format->quality = imbuf->ftype & ~JPG_MSK;
+ im_format->quality = custom_flags & ~JPG_MSK;
}
- // planes
+ /* planes */
switch (imbuf->channels) {
case 0:
case 4: im_format->planes = R_IMF_PLANES_RGBA;
@@ -1312,6 +1352,31 @@ void BKE_imbuf_to_image_format(struct ImageFormatData *im_format, const ImBuf *i
}
+static void timecode_simple_string(char *text, size_t text_size, const int cfra, int const frs_sec)
+{
+ int f = (int)(cfra % frs_sec);
+ int s = (int)(cfra / frs_sec);
+ int h = 0;
+ int m = 0;
+
+ if (s) {
+ m = (int)(s / 60);
+ s %= 60;
+
+ if (m) {
+ h = (int)(m / 60);
+ m %= 60;
+ }
+ }
+
+ if (frs_sec < 100) {
+ BLI_snprintf(text, text_size, "%02d:%02d:%02d.%02d", h, m, s, f);
+ }
+ else {
+ BLI_snprintf(text, text_size, "%02d:%02d:%02d.%03d", h, m, s, f);
+ }
+}
+
/* could allow access externally - 512 is for long names, 64 is for id names */
typedef struct StampData {
char file[512];
@@ -1371,26 +1436,7 @@ static void stampdata(Scene *scene, Object *camera, StampData *stamp_data, int d
}
if (scene->r.stamp & R_STAMP_TIME) {
- int f = (int)(scene->r.cfra % scene->r.frs_sec);
- int s = (int)(scene->r.cfra / scene->r.frs_sec);
- int h = 0;
- int m = 0;
-
- if (s) {
- m = (int)(s / 60);
- s %= 60;
-
- if (m) {
- h = (int)(m / 60);
- m %= 60;
- }
- }
-
- if (scene->r.frs_sec < 100)
- BLI_snprintf(text, sizeof(text), "%02d:%02d:%02d.%02d", h, m, s, f);
- else
- BLI_snprintf(text, sizeof(text), "%02d:%02d:%02d.%03d", h, m, s, f);
-
+ timecode_simple_string(text, sizeof(text), scene->r.cfra, scene->r.frs_sec);
BLI_snprintf(stamp_data->time, sizeof(stamp_data->time), do_prefix ? "Time %s" : "%s", text);
}
else {
@@ -1438,7 +1484,7 @@ static void stampdata(Scene *scene, Object *camera, StampData *stamp_data, int d
}
if (scene->r.stamp & R_STAMP_SEQSTRIP) {
- Sequence *seq = seq_foreground_frame_get(scene, scene->r.cfra);
+ Sequence *seq = BKE_sequencer_foreground_frame_get(scene, scene->r.cfra);
if (seq) BLI_strncpy(text, seq->name + 2, sizeof(text));
else BLI_strncpy(text, "<none>", sizeof(text));
@@ -1471,6 +1517,11 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
int x, y, y_ofs;
float h_fixed;
const int mono = blf_mono_font_render; // XXX
+ struct ColorManagedDisplay *display;
+ const char *display_device;
+
+ /* this could be an argument if we want to operate on non linear float imbuf's
+ * for now though this is only used for renders which use scene settings */
#define BUFF_MARGIN_X 2
#define BUFF_MARGIN_Y 1
@@ -1478,6 +1529,9 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
if (!rect && !rectf)
return;
+ display_device = scene->display_settings.display_device;
+ display = IMB_colormanagement_display_get_named(display_device);
+
stampdata(scene, camera, &stamp_data, 1);
/* TODO, do_versions */
@@ -1487,7 +1541,7 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
/* set before return */
BLF_size(mono, scene->r.stamp_font_id, 72);
- BLF_buffer(mono, rectf, rect, width, height, channels);
+ BLF_buffer(mono, rectf, rect, width, height, channels, display);
BLF_buffer_col(mono, scene->r.fg_stamp[0], scene->r.fg_stamp[1], scene->r.fg_stamp[2], 1.0);
pad = BLF_width_max(mono);
@@ -1504,7 +1558,8 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
y -= h;
/* also a little of space to the background. */
- buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
+ buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, display,
+ x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
/* and draw the text. */
BLF_position(mono, x, y + y_ofs, 0.0);
@@ -1520,7 +1575,8 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
y -= h;
/* and space for background. */
- buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, 0, y - BUFF_MARGIN_Y, w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
+ buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, display,
+ 0, y - BUFF_MARGIN_Y, w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
BLF_position(mono, x, y + y_ofs, 0.0);
BLF_draw_buffer(mono, stamp_data.note);
@@ -1535,7 +1591,8 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
y -= h;
/* and space for background. */
- buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, 0, y - BUFF_MARGIN_Y, w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
+ buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, display,
+ 0, y - BUFF_MARGIN_Y, w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
BLF_position(mono, x, y + y_ofs, 0.0);
BLF_draw_buffer(mono, stamp_data.date);
@@ -1550,7 +1607,8 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
y -= h;
/* and space for background. */
- buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, 0, y - BUFF_MARGIN_Y, w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
+ buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, display,
+ 0, y - BUFF_MARGIN_Y, w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
BLF_position(mono, x, y + y_ofs, 0.0);
BLF_draw_buffer(mono, stamp_data.rendertime);
@@ -1564,7 +1622,8 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
BLF_width_and_height(mono, stamp_data.marker, &w, &h); h = h_fixed;
/* extra space for background. */
- buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
+ buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, display,
+ x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
/* and pad the text. */
BLF_position(mono, x, y + y_ofs, 0.0);
@@ -1579,7 +1638,8 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
BLF_width_and_height(mono, stamp_data.time, &w, &h); h = h_fixed;
/* extra space for background */
- buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, x - BUFF_MARGIN_X, y, x + w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
+ buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, display,
+ x - BUFF_MARGIN_X, y, x + w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
/* and pad the text. */
BLF_position(mono, x, y + y_ofs, 0.0);
@@ -1593,7 +1653,8 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
BLF_width_and_height(mono, stamp_data.frame, &w, &h); h = h_fixed;
/* extra space for background. */
- buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, x + w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
+ buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, display,
+ x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, x + w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
/* and pad the text. */
BLF_position(mono, x, y + y_ofs, 0.0);
@@ -1607,7 +1668,8 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
BLF_width_and_height(mono, stamp_data.camera, &w, &h); h = h_fixed;
/* extra space for background. */
- buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, x + w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
+ buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, display,
+ x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, x + w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
BLF_position(mono, x, y + y_ofs, 0.0);
BLF_draw_buffer(mono, stamp_data.camera);
@@ -1619,7 +1681,8 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
BLF_width_and_height(mono, stamp_data.cameralens, &w, &h); h = h_fixed;
/* extra space for background. */
- buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, x + w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
+ buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, display,
+ x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, x + w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
BLF_position(mono, x, y + y_ofs, 0.0);
BLF_draw_buffer(mono, stamp_data.cameralens);
}
@@ -1631,7 +1694,8 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
x = width - w - 2;
/* extra space for background. */
- buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, x + w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
+ buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, display,
+ x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, x + w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
/* and pad the text. */
BLF_position(mono, x, y + y_ofs, 0.0);
@@ -1646,14 +1710,15 @@ void BKE_stamp_buf(Scene *scene, Object *camera, unsigned char *rect, float *rec
y = height - h;
/* extra space for background. */
- buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, x + w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
+ buf_rectfill_area(rect, rectf, width, height, scene->r.bg_stamp, display,
+ x - BUFF_MARGIN_X, y - BUFF_MARGIN_Y, x + w + BUFF_MARGIN_X, y + h + BUFF_MARGIN_Y);
BLF_position(mono, x, y + y_ofs, 0.0);
BLF_draw_buffer(mono, stamp_data.strip);
}
/* cleanup the buffer. */
- BLF_buffer(mono, NULL, NULL, 0, 0, 0);
+ BLF_buffer(mono, NULL, NULL, 0, 0, 0, FALSE);
#undef BUFF_MARGIN_X
#undef BUFF_MARGIN_Y
@@ -1857,12 +1922,12 @@ void BKE_makepicstring(char *string, const char *base, const char *relbase, int
}
/* used by sequencer too */
-struct anim *openanim(const char *name, int flags, int streamindex)
+struct anim *openanim(const char *name, int flags, int streamindex, char colorspace[IMA_MAX_SPACE])
{
struct anim *anim;
struct ImBuf *ibuf;
- anim = IMB_open_anim(name, flags, streamindex);
+ anim = IMB_open_anim(name, flags, streamindex, colorspace);
if (anim == NULL) return NULL;
ibuf = IMB_anim_absolute(anim, 0, IMB_TC_NONE, IMB_PROXY_NONE);
@@ -2123,7 +2188,9 @@ RenderResult *BKE_image_acquire_renderresult(Scene *scene, Image *ima)
void BKE_image_release_renderresult(Scene *scene, Image *ima)
{
- if (ima->rr) ;
+ if (ima->rr) {
+ /* pass */
+ }
else if (ima->type == IMA_TYPE_R_RESULT) {
if (ima->render_slot == ima->last_render_slot)
RE_ReleaseResult(RE_GetRender(scene->id.name));
@@ -2154,8 +2221,10 @@ void BKE_image_backup_render(Scene *scene, Image *ima)
/* in that case we have to build a render-result */
static void image_create_multilayer(Image *ima, ImBuf *ibuf, int framenr)
{
+ const char *colorspace = ima->colorspace_settings.name;
+ int predivide = ima->flag & IMA_CM_PREDIVIDE;
- ima->rr = RE_MultilayerConvert(ibuf->userdata, ibuf->x, ibuf->y);
+ ima->rr = RE_MultilayerConvert(ibuf->userdata, colorspace, predivide, ibuf->x, ibuf->y);
#ifdef WITH_OPENEXR
IMB_exr_close(ibuf->userdata);
@@ -2203,7 +2272,7 @@ static ImBuf *image_load_sequence_file(Image *ima, ImageUser *iuser, int frame)
flag |= IB_premul;
/* read ibuf */
- ibuf = IMB_loadiffname(name, flag);
+ ibuf = IMB_loadiffname(name, flag, ima->colorspace_settings.name);
#if 0
if (ibuf) {
@@ -2281,7 +2350,6 @@ static ImBuf *image_load_sequence_multilayer(Image *ima, ImageUser *iuser, int f
ibuf->flags |= IB_rectfloat;
ibuf->mall = IB_rectfloat;
ibuf->channels = rpass->channels;
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
image_initialize_after_load(ima, ibuf);
image_assign_ibuf(ima, ibuf, iuser ? iuser->multi_index : 0, frame);
@@ -2311,7 +2379,7 @@ static ImBuf *image_load_movie_file(Image *ima, ImageUser *iuser, int frame)
BKE_image_user_file_path(iuser, ima, str);
/* FIXME: make several stream accessible in image editor, too*/
- ima->anim = openanim(str, IB_rect, 0);
+ ima->anim = openanim(str, IB_rect, 0, ima->colorspace_settings.name);
/* let's initialize this user */
if (ima->anim && iuser && iuser->frames == 0)
@@ -2362,8 +2430,8 @@ static ImBuf *image_load_image_file(Image *ima, ImageUser *iuser, int cfra)
flag = IB_rect | IB_multilayer;
if (ima->flag & IMA_DO_PREMUL) flag |= IB_premul;
- ibuf = IMB_ibImageFromMemory((unsigned char *)ima->packedfile->data,
- ima->packedfile->size, flag, "<packed data>");
+ ibuf = IMB_ibImageFromMemory((unsigned char *)ima->packedfile->data, ima->packedfile->size, flag,
+ ima->colorspace_settings.name, "<packed data>");
}
else {
flag = IB_rect | IB_multilayer | IB_metadata;
@@ -2375,7 +2443,7 @@ static ImBuf *image_load_image_file(Image *ima, ImageUser *iuser, int cfra)
BKE_image_user_file_path(iuser, ima, str);
/* read ibuf */
- ibuf = IMB_loadiffname(str, flag);
+ ibuf = IMB_loadiffname(str, flag, ima->colorspace_settings.name);
}
if (ibuf) {
@@ -2432,7 +2500,6 @@ static ImBuf *image_get_ibuf_multilayer(Image *ima, ImageUser *iuser)
ibuf->rect_float = rpass->rect;
ibuf->flags |= IB_rectfloat;
ibuf->channels = rpass->channels;
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
image_assign_ibuf(ima, ibuf, iuser ? iuser->multi_index : IMA_NO_INDEX, 0);
}
@@ -2496,14 +2563,16 @@ static ImBuf *image_get_render_result(Image *ima, ImageUser *iuser, void **lock_
*lock_r = re;
}
- /* this gives active layer, composite or seqence result */
+ /* this gives active layer, composite or sequence result */
rect = (unsigned int *)rres.rect32;
rectf = rres.rectf;
rectz = rres.rectz;
dither = iuser->scene->r.dither_intensity;
/* combined layer gets added as first layer */
- if (rres.have_combined && layer == 0) ;
+ if (rres.have_combined && layer == 0) {
+ /* pass */
+ }
else if (rres.layers.first) {
RenderLayer *rl = BLI_findlink(&rres.layers, layer - (rres.have_combined ? 1 : 0));
if (rl) {
@@ -2536,6 +2605,12 @@ static ImBuf *image_get_render_result(Image *ima, ImageUser *iuser, void **lock_
image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0);
}
+ /* invalidate color managed buffers if render result changed */
+ BLI_lock_thread(LOCK_COLORMANAGE);
+ if (ibuf->x != rres.rectx || ibuf->y != rres.recty || ibuf->rect_float != rectf) {
+ ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
+ }
+
ibuf->x = rres.rectx;
ibuf->y = rres.recty;
@@ -2567,8 +2642,8 @@ static ImBuf *image_get_render_result(Image *ima, ImageUser *iuser, void **lock_
ibuf->flags &= ~IB_zbuffloat;
}
- /* since its possible to access the buffer from the image directly, set the profile [#25073] */
- ibuf->profile = (iuser->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) ? IB_PROFILE_LINEAR_RGB : IB_PROFILE_NONE;
+ BLI_unlock_thread(LOCK_COLORMANAGE);
+
ibuf->dither = dither;
if (iuser->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT_PREDIVIDE) {
@@ -2725,7 +2800,8 @@ ImBuf *BKE_image_acquire_ibuf(Image *ima, ImageUser *iuser, void **lock_r)
/* UV testgrid or black or solid etc */
if (ima->gen_x == 0) ima->gen_x = 1024;
if (ima->gen_y == 0) ima->gen_y = 1024;
- ibuf = add_ibuf_size(ima->gen_x, ima->gen_y, ima->name, 24, (ima->gen_flag & IMA_GEN_FLOAT) != 0, ima->gen_type, color);
+ ibuf = add_ibuf_size(ima->gen_x, ima->gen_y, ima->name, 24, (ima->gen_flag & IMA_GEN_FLOAT) != 0, ima->gen_type,
+ color, &ima->colorspace_settings);
image_assign_ibuf(ima, ibuf, IMA_NO_INDEX, 0);
ima->ok = IMA_OK_LOADED;
}
@@ -2906,3 +2982,43 @@ int BKE_image_has_alpha(struct Image *image)
else
return 0;
}
+
+void BKE_image_get_size(Image *image, ImageUser *iuser, int *width, int *height)
+{
+ ImBuf *ibuf = NULL;
+ void *lock;
+
+ ibuf = BKE_image_acquire_ibuf(image, iuser, &lock);
+
+ if (ibuf && ibuf->x > 0 && ibuf->y > 0) {
+ *width = ibuf->x;
+ *height = ibuf->y;
+ }
+ else {
+ *width = IMG_SIZE_FALLBACK;
+ *height = IMG_SIZE_FALLBACK;
+ }
+
+ BKE_image_release_ibuf(image, lock);
+}
+
+void BKE_image_get_size_fl(Image *image, ImageUser *iuser, float size[2])
+{
+ int width, height;
+ BKE_image_get_size(image, iuser, &width, &height);
+
+ size[0] = (float)width;
+ size[1] = (float)height;
+
+}
+
+void BKE_image_get_aspect(Image *image, float *aspx, float *aspy)
+{
+ *aspx = 1.0;
+
+ /* x is always 1 */
+ if (image)
+ *aspy = image->aspy / image->aspx;
+ else
+ *aspy = 1.0f;
+}
diff --git a/source/blender/blenkernel/intern/image_gen.c b/source/blender/blenkernel/intern/image_gen.c
index d460368784a..37572eebed6 100644
--- a/source/blender/blenkernel/intern/image_gen.c
+++ b/source/blender/blenkernel/intern/image_gen.c
@@ -289,7 +289,11 @@ static void checker_board_text(unsigned char *rect, float *rect_float, int width
BLF_size(mono, 54, 72); /* hard coded size! */
- BLF_buffer(mono, rect_float, rect, width, height, 4);
+ /* OCIO_TODO: using NULL as display will assume using sRGB display
+ * this is correct since currently generated images are assumed to be in sRGB space,
+ * but this would probably needed to be fixed in some way
+ */
+ BLF_buffer(mono, rect_float, rect, width, height, 4, NULL);
for (y = 0; y < height; y += step) {
text[1] = '1';
@@ -330,7 +334,7 @@ static void checker_board_text(unsigned char *rect, float *rect_float, int width
}
/* cleanup the buffer. */
- BLF_buffer(mono, NULL, NULL, 0, 0, 0);
+ BLF_buffer(mono, NULL, NULL, 0, 0, 0, FALSE);
}
void BKE_image_buf_fill_checker_color(unsigned char *rect, float *rect_float, int width, int height)
diff --git a/source/blender/blenkernel/intern/implicit.c b/source/blender/blenkernel/intern/implicit.c
index 4755fccff99..2b23e8450ae 100644
--- a/source/blender/blenkernel/intern/implicit.c
+++ b/source/blender/blenkernel/intern/implicit.c
@@ -48,8 +48,11 @@
#include "BKE_global.h"
-#define CLOTH_OPENMP_LIMIT 512
+#ifdef _OPENMP
+# define CLOTH_OPENMP_LIMIT 512
+#endif
+#if 0 /* debug timing */
#ifdef _WIN32
#include <windows.h>
static LARGE_INTEGER _itstart, _itend;
@@ -81,7 +84,7 @@ double itval(void)
static struct timeval _itstart, _itend;
static struct timezone itz;
-void itstart(void)
+static void itstart(void)
{
gettimeofday(&_itstart, &itz);
}
@@ -89,7 +92,7 @@ static void itend(void)
{
gettimeofday(&_itend, &itz);
}
-double itval(void)
+static double itval(void)
{
double t1, t2;
t1 = (double)_itstart.tv_sec + (double)_itstart.tv_usec/(1000*1000);
@@ -97,6 +100,7 @@ double itval(void)
return t2-t1;
}
#endif
+#endif /* debug timing */
static float I[3][3] = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
static float ZERO[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};
@@ -120,7 +124,7 @@ typedef float lfVector[3];
typedef struct fmatrix3x3 {
float m[3][3]; /* 3x3 matrix */
unsigned int c, r; /* column and row number */
- int pinned; /* is this vertex allowed to move? */
+ /* int pinned; // is this vertex allowed to move? */
float n1, n2, n3; /* three normal vectors for collision constrains */
unsigned int vcount; /* vertex count */
unsigned int scount; /* spring count */
@@ -185,7 +189,7 @@ DO_INLINE void print_lfvector(float (*fLongVector)[3], unsigned int verts)
/* create long vector */
DO_INLINE lfVector *create_lfvector(unsigned int verts)
{
- // TODO: check if memory allocation was successfull */
+ /* TODO: check if memory allocation was successful */
return (lfVector *)MEM_callocN(verts * sizeof(lfVector), "cloth_implicit_alloc_vector");
// return (lfVector *)cloth_aligned_malloc(&MEMORY_BASE, verts * sizeof(lfVector));
}
@@ -193,7 +197,7 @@ DO_INLINE lfVector *create_lfvector(unsigned int verts)
DO_INLINE void del_lfvector(float (*fLongVector)[3])
{
if (fLongVector != NULL) {
- MEM_freeN (fLongVector);
+ MEM_freeN(fLongVector);
// cloth_aligned_free(&MEMORY_BASE, fLongVector);
}
}
@@ -513,7 +517,7 @@ static void print_bfmatrix(fmatrix3x3 *m3)
/* create big matrix */
DO_INLINE fmatrix3x3 *create_bfmatrix(unsigned int verts, unsigned int springs)
{
- // TODO: check if memory allocation was successfull */
+ // TODO: check if memory allocation was successful */
fmatrix3x3 *temp = (fmatrix3x3 *)MEM_callocN(sizeof(fmatrix3x3) * (verts + springs), "cloth_implicit_alloc_matrix");
temp[0].vcount = verts;
temp[0].scount = springs;
@@ -523,14 +527,14 @@ DO_INLINE fmatrix3x3 *create_bfmatrix(unsigned int verts, unsigned int springs)
DO_INLINE void del_bfmatrix(fmatrix3x3 *matrix)
{
if (matrix != NULL) {
- MEM_freeN (matrix);
+ MEM_freeN(matrix);
}
}
/* copy big matrix */
DO_INLINE void cp_bfmatrix(fmatrix3x3 *to, fmatrix3x3 *from)
-{
- // TODO bounds checking
+{
+ // TODO bounds checking
memcpy(to, from, sizeof(fmatrix3x3) * (from[0].vcount+from[0].scount));
}
@@ -700,17 +704,39 @@ typedef struct Implicit_Data {
fmatrix3x3 *A, *dFdV, *dFdX, *S, *P, *Pinv, *bigI, *M;
} Implicit_Data;
+/* Init constraint matrix */
+static void update_matrixS(ClothVertex *verts, int numverts, fmatrix3x3 *S)
+{
+ unsigned int pinned = 0;
+ int i = 0;
+
+ /* Clear matrix from old vertex constraints */
+ for(i = 0; i < S[0].vcount; i++)
+ S[i].c = S[i].r = 0;
+
+ /* Set new vertex constraints */
+ for (i = 0; i < numverts; i++) {
+ if (verts [i].flags & CLOTH_VERT_FLAG_PINNED) {
+ S[pinned].c = S[pinned].r = i;
+ pinned++;
+ }
+ }
+
+ // S is special and needs specific vcount and scount
+ S[0].vcount = pinned;
+ S[0].scount = 0;
+}
+
int implicit_init(Object *UNUSED(ob), ClothModifierData *clmd)
{
unsigned int i = 0;
- unsigned int pinned = 0;
Cloth *cloth = NULL;
ClothVertex *verts = NULL;
ClothSpring *spring = NULL;
Implicit_Data *id = NULL;
LinkNode *search = NULL;
- if (G.rt > 0)
+ if (G.debug_value > 0)
printf("implicit_init\n");
// init memory guard
@@ -743,24 +769,19 @@ int implicit_init(Object *UNUSED(ob), ClothModifierData *clmd)
id->dV = create_lfvector(cloth->numverts);
id->z = create_lfvector(cloth->numverts);
- for (i=0;i<cloth->numverts;i++) {
+ id->S[0].vcount = 0;
+
+ for (i = 0; i < cloth->numverts; i++) {
id->A[i].r = id->A[i].c = id->dFdV[i].r = id->dFdV[i].c = id->dFdX[i].r = id->dFdX[i].c = id->P[i].c = id->P[i].r = id->Pinv[i].c = id->Pinv[i].r = id->bigI[i].c = id->bigI[i].r = id->M[i].r = id->M[i].c = i;
- if (verts [i].flags & CLOTH_VERT_FLAG_PINNED) {
- id->S[pinned].pinned = 1;
- id->S[pinned].c = id->S[pinned].r = i;
- pinned++;
- }
+ update_matrixS(verts, cloth->numverts, id->S);
initdiag_fmatrixS(id->M[i].m, verts[i].mass);
}
- // S is special and needs specific vcount and scount
- id->S[0].vcount = pinned; id->S[0].scount = 0;
-
// init springs
search = cloth->springs;
- for (i=0;i<cloth->numsprings;i++) {
+ for (i = 0; i < cloth->numsprings; i++) {
spring = search->link;
// dFdV_start[i].r = big_I[i].r = big_zero[i].r =
@@ -784,6 +805,7 @@ int implicit_init(Object *UNUSED(ob), ClothModifierData *clmd)
return 1;
}
+
int implicit_free(ClothModifierData *clmd)
{
Implicit_Data *id;
@@ -1239,13 +1261,13 @@ DO_INLINE void cloth_calc_spring_force(ClothModifierData *clmd, ClothSpring *s,
s->flags |= CLOTH_SPRING_FLAG_NEEDED;
k = clmd->sim_parms->structural;
-
+
scaling = k + s->stiffness * ABS(clmd->sim_parms->max_struct-k);
-
+
k = scaling / (clmd->sim_parms->avg_spring_len + FLT_EPSILON);
-
+
// TODO: verify, half verified (couldn't see error)
- mul_fvector_S(stretch_force, dir, k*(length-L));
+ mul_fvector_S(stretch_force, dir, k*(length-L));
VECADD(s->f, s->f, stretch_force);
@@ -1428,7 +1450,7 @@ static void hair_velocity_smoothing(ClothModifierData *clmd, lfVector *lF, lfVec
i = HAIR_GRID_INDEX(lX[v], gmin, gmax, 0);
j = HAIR_GRID_INDEX(lX[v], gmin, gmax, 1);
k = HAIR_GRID_INDEX(lX[v], gmin, gmax, 2);
- if (i < 0 || j < 0 || k < 0 || i > 10 || j >= 10 || k >= 10)
+ if (i < 0 || j < 0 || k < 0 || i >= 10 || j >= 10 || k >= 10)
continue;
grid[i][j][k].velocity[0] += lV[v][0];
@@ -1640,8 +1662,9 @@ static void cloth_calc_force(ClothModifierData *clmd, float UNUSED(frame), lfVec
search = cloth->springs;
while (search) {
// only handle active springs
- // if (((clmd->sim_parms->flags & CSIMSETT_FLAG_TEARING_ENABLED) && !(springs[i].flags & CSPRING_FLAG_DEACTIVATE))|| !(clmd->sim_parms->flags & CSIMSETT_FLAG_TEARING_ENABLED)) {}
- cloth_calc_spring_force(clmd, search->link, lF, lX, lV, dFdV, dFdX, time);
+ ClothSpring *spring = search->link;
+ if( !(spring->flags & CLOTH_SPRING_FLAG_DEACTIVATE))
+ cloth_calc_spring_force(clmd, search->link, lF, lX, lV, dFdV, dFdX, time);
search = search->next;
}
@@ -1650,8 +1673,9 @@ static void cloth_calc_force(ClothModifierData *clmd, float UNUSED(frame), lfVec
search = cloth->springs;
while (search) {
// only handle active springs
- // if (((clmd->sim_parms->flags & CSIMSETT_FLAG_TEARING_ENABLED) && !(springs[i].flags & CSPRING_FLAG_DEACTIVATE))|| !(clmd->sim_parms->flags & CSIMSETT_FLAG_TEARING_ENABLED))
- cloth_apply_spring_force(clmd, search->link, lF, lX, lV, dFdV, dFdX);
+ ClothSpring *spring = search->link;
+ if (!(spring->flags & CLOTH_SPRING_FLAG_DEACTIVATE))
+ cloth_apply_spring_force(clmd, search->link, lF, lX, lV, dFdV, dFdX);
search = search->next;
}
// printf("\n");
@@ -1671,13 +1695,13 @@ static void simulate_implicit_euler(lfVector *Vnew, lfVector *UNUSED(lX), lfVect
mul_bfmatrix_lfvector(dFdXmV, dFdX, lV);
add_lfvectorS_lfvectorS(B, lF, dt, dFdXmV, (dt*dt), numverts);
-
- itstart();
-
+
+ // itstart();
+
cg_filtered(dV, A, B, z, S); /* conjugate gradient algorithm to solve Ax=b */
// cg_filtered_pre(dV, A, B, z, S, P, Pinv, bigI);
-
- itend();
+
+ // itend();
// printf("cg_filtered calc time: %f\n", (float)itval());
cp_lfvector(olddV, dV, numverts);
@@ -1693,7 +1717,7 @@ static void simulate_implicit_euler(lfVector *Vnew, lfVector *UNUSED(lX), lfVect
* (edge distance constraints) in a lagrangian solver. then add forces to help
* guide the implicit solver to that state. this function is called after
* collisions*/
-int cloth_calc_helper_forces(Object *UNUSED(ob), ClothModifierData * clmd, float (*initial_cos)[3], float UNUSED(step), float dt)
+static int UNUSED_FUNCTION(cloth_calc_helper_forces)(Object *UNUSED(ob), ClothModifierData * clmd, float (*initial_cos)[3], float UNUSED(step), float dt)
{
Cloth *cloth= clmd->clothObject;
float (*cos)[3] = MEM_callocN(sizeof(float)*3*cloth->numverts, "cos cloth_calc_helper_forces");
@@ -1781,6 +1805,10 @@ int implicit_solver(Object *ob, float frame, ClothModifierData *clmd, ListBase *
int do_extra_solve;
if (clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_GOAL) { /* do goal stuff */
+
+ /* Update vertex constraints for pinned vertices */
+ update_matrixS(verts, cloth->numverts, id->S);
+
for (i = 0; i < numverts; i++) {
// update velocities with constrained velocities from pinned verts
if (verts [i].flags & CLOTH_VERT_FLAG_PINNED) {
@@ -1833,11 +1861,11 @@ int implicit_solver(Object *ob, float frame, ClothModifierData *clmd, ListBase *
for (i=0, cv=cloth->verts; i<cloth->numverts; i++, cv++) {
copy_v3_v3(initial_cos[i], cv->tx);
}
-
+
// call collision function
// TODO: check if "step" or "step+dt" is correct - dg
do_extra_solve = cloth_bvh_objcollision(ob, clmd, step/clmd->sim_parms->timescale, dt/clmd->sim_parms->timescale);
-
+
// copy corrected positions back to simulation
for (i = 0; i < numverts; i++) {
// correct velocity again, just to be sure we had to change it due to adaptive collisions
@@ -1918,7 +1946,7 @@ void implicit_set_positions(ClothModifierData *clmd)
copy_v3_v3(id->X[i], verts[i].x);
copy_v3_v3(id->V[i], verts[i].v);
}
- if (G.rt > 0)
+ if (G.debug_value > 0)
printf("implicit_set_positions\n");
}
diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c
index f51fee674cf..5216aefab58 100644
--- a/source/blender/blenkernel/intern/ipo.c
+++ b/source/blender/blenkernel/intern/ipo.c
@@ -32,7 +32,7 @@
/* NOTE:
*
- * This file is no longer used to provide tools for the depreceated IPO system. Instead, it
+ * This file is no longer used to provide tools for the deprecated IPO system. Instead, it
* is only used to house the conversion code to the new system.
*
* -- Joshua Leung, Jan 2009
@@ -895,7 +895,7 @@ static char *get_rna_access(int blocktype, int adrcode, char actname[], char con
/* special case for rotdiff drivers... we don't need a property for this... */
break;
- // TODO... add other blocktypes...
+ /* TODO... add other blocktypes... */
default:
printf("IPO2ANIMATO WARNING: No path for blocktype %d, adrcode %d yet\n", blocktype, adrcode);
break;
@@ -1588,9 +1588,9 @@ static void action_to_animdata(ID *id, bAction *act)
/* ------------------------- */
-// TODO:
-// - NLA group duplicators info
-// - NLA curve/stride modifiers...
+/* TODO:
+ * - NLA group duplicators info
+ * - NLA curve/stride modifiers... */
/* Convert NLA-Strip to new system */
static void nlastrips_to_animdata(ID *id, ListBase *strips)
@@ -1757,16 +1757,15 @@ void do_versions_ipos_to_animato(Main *main)
{
/* If we have any empty action actuators, assume they were
- converted IPO Actuators using the object IPO */
+ * converted IPO Actuators using the object IPO */
bActuator *act;
bActionActuator *aa;
for (act = ob->actuators.first; act; act = act->next) {
/* Any actuators set to ACT_IPO at this point are actually Action Actuators that
- need this converted IPO to finish converting the actuator. */
- if (act->type == ACT_IPO)
- {
- aa = (bActionActuator*)act->data;
+ * need this converted IPO to finish converting the actuator. */
+ if (act->type == ACT_IPO) {
+ aa = (bActionActuator *)act->data;
aa->act = ob->adt->action;
act->type = ACT_ACTION;
}
@@ -2094,7 +2093,7 @@ void do_versions_ipos_to_animato(Main *main)
bAction *new_act;
/* add a new action for this, and convert all data into that action */
- new_act = add_empty_action("ConvIPO_Action"); // XXX need a better name...
+ new_act = add_empty_action(id->name+2);
ipo_to_animato(NULL, ipo, NULL, NULL, NULL, NULL, &new_act->curves, &drivers);
new_act->idroot = ipo->blocktype;
}
diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c
index bed70bbd780..b9bf2fd01a3 100644
--- a/source/blender/blenkernel/intern/key.c
+++ b/source/blender/blenkernel/intern/key.c
@@ -94,7 +94,7 @@ void BKE_key_free(Key *key)
}
-void free_key_nolib(Key *key)
+void BKE_key_free_nolib(Key *key)
{
KeyBlock *kb;
@@ -121,7 +121,7 @@ void free_key_nolib(Key *key)
/* from misc_util: flip the bytes from x */
/* #define GS(x) (((unsigned char *)(x))[0] << 8 | ((unsigned char *)(x))[1]) */
-Key *add_key(ID *id) /* common function */
+Key *BKE_key_add(ID *id) /* common function */
{
Key *key;
char *el;
@@ -133,7 +133,7 @@ Key *add_key(ID *id) /* common function */
key->uidgen = 1;
- /* XXX the code here uses some defines which will soon be depreceated... */
+ /* XXX the code here uses some defines which will soon be deprecated... */
switch (GS(id->name)) {
case ID_ME:
el = key->elemstr;
@@ -196,7 +196,7 @@ Key *BKE_key_copy(Key *key)
}
-Key *copy_key_nolib(Key *key)
+Key *BKE_key_copy_nolib(Key *key)
{
Key *keyn;
KeyBlock *kbn, *kb;
@@ -241,7 +241,7 @@ void BKE_key_make_local(Key *key)
* currently being called.
*/
-void sort_keys(Key *key)
+void BKE_key_sort(Key *key)
{
KeyBlock *kb;
KeyBlock *kb2;
@@ -377,7 +377,7 @@ static int setkeys(float fac, ListBase *lb, KeyBlock *k[], float t[4], int cycl)
k1 = k[0] = k[1] = k[2] = k[3] = firstkey;
t[0] = t[1] = t[2] = t[3] = k1->pos;
- /* if (fac<0.0 || fac>1.0) return 1; */
+ /* if (fac < 0.0 || fac > 1.0) return 1; */
if (k1->next == NULL) return 1;
@@ -691,8 +691,8 @@ static void cp_cu_key(Curve *cu, Key *key, KeyBlock *actkb, KeyBlock *kb, const
if (nu->bp) {
step = nu->pntsu * nu->pntsv;
- a1 = MAX2(a, start);
- a2 = MIN2(a + step, end);
+ a1 = maxi(a, start);
+ a2 = mini(a + step, end);
if (a1 < a2) cp_key(a1, a2, tot, out, key, actkb, kb, NULL, KEY_MODE_BPOINT);
}
@@ -700,8 +700,8 @@ static void cp_cu_key(Curve *cu, Key *key, KeyBlock *actkb, KeyBlock *kb, const
step = 3 * nu->pntsu;
/* exception because keys prefer to work with complete blocks */
- a1 = MAX2(a, start);
- a2 = MIN2(a + step, end);
+ a1 = maxi(a, start);
+ a2 = mini(a + step, end);
if (a1 < a2) cp_key(a1, a2, tot, out, key, actkb, kb, NULL, KEY_MODE_BEZTRIPLE);
}
@@ -711,7 +711,7 @@ static void cp_cu_key(Curve *cu, Key *key, KeyBlock *actkb, KeyBlock *kb, const
}
}
-void do_rel_key(const int start, int end, const int tot, char *basispoin, Key *key, KeyBlock *actkb, const int mode)
+void BKE_key_evaluate_relative(const int start, int end, const int tot, char *basispoin, Key *key, KeyBlock *actkb, const int mode)
{
KeyBlock *kb;
int *ofsp, ofs[3], elemsize, b;
@@ -1071,7 +1071,7 @@ static float *get_weights_array(Object *ob, char *vgroup)
static void do_mesh_key(Scene *scene, Object *ob, Key *key, char *out, const int tot)
{
- KeyBlock *k[4], *actkb = ob_get_keyblock(ob);
+ KeyBlock *k[4], *actkb = BKE_keyblock_from_object(ob);
float t[4];
int flag = 0;
@@ -1106,7 +1106,7 @@ static void do_mesh_key(Scene *scene, Object *ob, Key *key, char *out, const int
kb->weights = get_weights_array(ob, kb->vgroup);
}
- do_rel_key(0, tot, tot, (char *)out, key, actkb, KEY_MODE_DUMMY);
+ BKE_key_evaluate_relative(0, tot, tot, (char *)out, key, actkb, KEY_MODE_DUMMY);
for (kb = key->block.first; kb; kb = kb->next) {
if (kb->weights) MEM_freeN(kb->weights);
@@ -1154,11 +1154,11 @@ static void do_rel_cu_key(Curve *cu, Key *key, KeyBlock *actkb, char *out, const
for (a = 0, nu = cu->nurb.first; nu; nu = nu->next, a += step) {
if (nu->bp) {
step = nu->pntsu * nu->pntsv;
- do_rel_key(a, a + step, tot, out, key, actkb, KEY_MODE_BPOINT);
+ BKE_key_evaluate_relative(a, a + step, tot, out, key, actkb, KEY_MODE_BPOINT);
}
else if (nu->bezt) {
step = 3 * nu->pntsu;
- do_rel_key(a, a + step, tot, out, key, actkb, KEY_MODE_BEZTRIPLE);
+ BKE_key_evaluate_relative(a, a + step, tot, out, key, actkb, KEY_MODE_BEZTRIPLE);
}
else {
step = 0;
@@ -1169,7 +1169,7 @@ static void do_rel_cu_key(Curve *cu, Key *key, KeyBlock *actkb, char *out, const
static void do_curve_key(Scene *scene, Object *ob, Key *key, char *out, const int tot)
{
Curve *cu = ob->data;
- KeyBlock *k[4], *actkb = ob_get_keyblock(ob);
+ KeyBlock *k[4], *actkb = BKE_keyblock_from_object(ob);
float t[4];
int flag = 0;
@@ -1217,7 +1217,7 @@ static void do_curve_key(Scene *scene, Object *ob, Key *key, char *out, const in
remain = step;
}
- count = MIN2(remain, estep);
+ count = mini(remain, estep);
if (mode == KEY_MODE_BEZTRIPLE) {
count += 3 - count % 3;
}
@@ -1251,7 +1251,7 @@ static void do_curve_key(Scene *scene, Object *ob, Key *key, char *out, const in
static void do_latt_key(Scene *scene, Object *ob, Key *key, char *out, const int tot)
{
Lattice *lt = ob->data;
- KeyBlock *k[4], *actkb = ob_get_keyblock(ob);
+ KeyBlock *k[4], *actkb = BKE_keyblock_from_object(ob);
float t[4];
int flag;
@@ -1277,7 +1277,7 @@ static void do_latt_key(Scene *scene, Object *ob, Key *key, char *out, const int
for (kb = key->block.first; kb; kb = kb->next)
kb->weights = get_weights_array(ob, kb->vgroup);
- do_rel_key(0, tot, tot, out, key, actkb, KEY_MODE_DUMMY);
+ BKE_key_evaluate_relative(0, tot, tot, out, key, actkb, KEY_MODE_DUMMY);
for (kb = key->block.first; kb; kb = kb->next) {
if (kb->weights) MEM_freeN(kb->weights);
@@ -1302,8 +1302,8 @@ static void do_latt_key(Scene *scene, Object *ob, Key *key, char *out, const int
/* returns key coordinates (+ tilt) when key applied, NULL otherwise */
float *do_ob_key(Scene *scene, Object *ob)
{
- Key *key = ob_get_key(ob);
- KeyBlock *actkb = ob_get_keyblock(ob);
+ Key *key = BKE_key_from_object(ob);
+ KeyBlock *actkb = BKE_keyblock_from_object(ob);
char *out;
int tot = 0, size = 0;
@@ -1386,7 +1386,7 @@ float *do_ob_key(Scene *scene, Object *ob)
return (float *)out;
}
-Key *ob_get_key(Object *ob)
+Key *BKE_key_from_object(Object *ob)
{
if (ob == NULL) return NULL;
@@ -1405,7 +1405,7 @@ Key *ob_get_key(Object *ob)
return NULL;
}
-KeyBlock *add_keyblock(Key *key, const char *name)
+KeyBlock *BKE_keyblock_add(Key *key, const char *name)
{
KeyBlock *kb;
float curpos = -0.1;
@@ -1439,7 +1439,7 @@ KeyBlock *add_keyblock(Key *key, const char *name)
/**
* \note caller may want to set this to current time, but don't do it here since we need to sort
- * which could cause problems in some cases, see #add_keyblock_ctime */
+ * which could cause problems in some cases, see #BKE_keyblock_add_ctime */
kb->pos = curpos + 0.1f; /* only used for absolute shape keys */
return kb;
@@ -1449,24 +1449,26 @@ KeyBlock *add_keyblock(Key *key, const char *name)
* \note sorting is a problematic side effect in some cases,
* better only do this explicitly by having its own function,
*
+ * \param key The key datablock to add to.
+ * \param name Optional name for the new keyblock.
* \param do_force always use ctime even for relative keys.
*/
-KeyBlock *add_keyblock_ctime(Key *key, const char *name, const short do_force)
+KeyBlock *BKE_keyblock_add_ctime(Key *key, const char *name, const short do_force)
{
- KeyBlock *kb = add_keyblock(key, name);
+ KeyBlock *kb = BKE_keyblock_add(key, name);
if (do_force || (key->type != KEY_RELATIVE)) {
kb->pos = key->ctime / 100.0f;
- sort_keys(key);
+ BKE_key_sort(key);
}
return kb;
}
/* only the active keyblock */
-KeyBlock *ob_get_keyblock(Object *ob)
+KeyBlock *BKE_keyblock_from_object(Object *ob)
{
- Key *key = ob_get_key(ob);
+ Key *key = BKE_key_from_object(ob);
if (key) {
KeyBlock *kb = BLI_findlink(&key->block, ob->shapenr - 1);
@@ -1476,9 +1478,9 @@ KeyBlock *ob_get_keyblock(Object *ob)
return NULL;
}
-KeyBlock *ob_get_reference_keyblock(Object *ob)
+KeyBlock *BKE_keyblock_from_object_reference(Object *ob)
{
- Key *key = ob_get_key(ob);
+ Key *key = BKE_key_from_object(ob);
if (key)
return key->refkey;
@@ -1487,7 +1489,7 @@ KeyBlock *ob_get_reference_keyblock(Object *ob)
}
/* get the appropriate KeyBlock given an index */
-KeyBlock *key_get_keyblock(Key *key, int index)
+KeyBlock *BKE_keyblock_from_key(Key *key, int index)
{
KeyBlock *kb;
int i;
@@ -1507,18 +1509,29 @@ KeyBlock *key_get_keyblock(Key *key, int index)
}
/* get the appropriate KeyBlock given a name to search for */
-KeyBlock *key_get_named_keyblock(Key *key, const char name[])
+KeyBlock *BKE_keyblock_find_name(Key *key, const char name[])
{
- if (key && name)
- return BLI_findstring(&key->block, name, offsetof(KeyBlock, name));
-
- return NULL;
+ return BLI_findstring(&key->block, name, offsetof(KeyBlock, name));
+}
+
+/**
+ * \brief copy shape-key attributes, but not key data.or name/uid
+ */
+void BKE_keyblock_copy_settings(KeyBlock *kb_dst, const KeyBlock *kb_src)
+{
+ kb_dst->pos = kb_src->pos;
+ kb_dst->curval = kb_src->curval;
+ kb_dst->type = kb_src->type;
+ kb_dst->relative = kb_src->relative;
+ BLI_strncpy(kb_dst->vgroup, kb_src->vgroup, sizeof(kb_dst->vgroup));
+ kb_dst->slidermin = kb_src->slidermin;
+ kb_dst->slidermax = kb_src->slidermax;
}
/* Get RNA-Path for 'value' setting of the given ShapeKey
* NOTE: the user needs to free the returned string once they're finish with it
*/
-char *key_get_curValue_rnaPath(Key *key, KeyBlock *kb)
+char *BKE_keyblock_curval_rnapath_get(Key *key, KeyBlock *kb)
{
PointerRNA ptr;
PropertyRNA *prop;
@@ -1540,7 +1553,7 @@ char *key_get_curValue_rnaPath(Key *key, KeyBlock *kb)
/* conversion functions */
/************************* Lattice ************************/
-void latt_to_key(Lattice *lt, KeyBlock *kb)
+void BKE_key_convert_from_lattice(Lattice *lt, KeyBlock *kb)
{
BPoint *bp;
float *fp;
@@ -1561,7 +1574,7 @@ void latt_to_key(Lattice *lt, KeyBlock *kb)
}
}
-void key_to_latt(KeyBlock *kb, Lattice *lt)
+void BKE_key_convert_to_lattice(KeyBlock *kb, Lattice *lt)
{
BPoint *bp;
float *fp;
@@ -1571,7 +1584,7 @@ void key_to_latt(KeyBlock *kb, Lattice *lt)
fp = kb->data;
tot = lt->pntsu * lt->pntsv * lt->pntsw;
- tot = MIN2(kb->totelem, tot);
+ tot = mini(kb->totelem, tot);
for (a = 0; a < tot; a++, fp += 3, bp++) {
copy_v3_v3(bp->vec, fp);
@@ -1579,7 +1592,7 @@ void key_to_latt(KeyBlock *kb, Lattice *lt)
}
/************************* Curve ************************/
-void curve_to_key(Curve *cu, KeyBlock *kb, ListBase *nurb)
+void BKE_key_convert_from_curve(Curve *cu, KeyBlock *kb, ListBase *nurb)
{
Nurb *nu;
BezTriple *bezt;
@@ -1630,7 +1643,7 @@ void curve_to_key(Curve *cu, KeyBlock *kb, ListBase *nurb)
}
}
-void key_to_curve(KeyBlock *kb, Curve *UNUSED(cu), ListBase *nurb)
+void BKE_key_convert_to_curve(KeyBlock *kb, Curve *UNUSED(cu), ListBase *nurb)
{
Nurb *nu;
BezTriple *bezt;
@@ -1643,7 +1656,7 @@ void key_to_curve(KeyBlock *kb, Curve *UNUSED(cu), ListBase *nurb)
tot = BKE_nurbList_verts_count(nurb);
- tot = MIN2(kb->totelem, tot);
+ tot = mini(kb->totelem, tot);
while (nu && tot > 0) {
@@ -1681,7 +1694,7 @@ void key_to_curve(KeyBlock *kb, Curve *UNUSED(cu), ListBase *nurb)
}
/************************* Mesh ************************/
-void mesh_to_key(Mesh *me, KeyBlock *kb)
+void BKE_key_convert_from_mesh(Mesh *me, KeyBlock *kb)
{
MVert *mvert;
float *fp;
@@ -1702,7 +1715,7 @@ void mesh_to_key(Mesh *me, KeyBlock *kb)
}
}
-void key_to_mesh(KeyBlock *kb, Mesh *me)
+void BKE_key_convert_to_mesh(KeyBlock *kb, Mesh *me)
{
MVert *mvert;
float *fp;
@@ -1711,7 +1724,7 @@ void key_to_mesh(KeyBlock *kb, Mesh *me)
mvert = me->mvert;
fp = kb->data;
- tot = MIN2(kb->totelem, me->totvert);
+ tot = mini(kb->totelem, me->totvert);
for (a = 0; a < tot; a++, fp += 3, mvert++) {
copy_v3_v3(mvert->co, fp);
@@ -1719,7 +1732,7 @@ void key_to_mesh(KeyBlock *kb, Mesh *me)
}
/************************* vert coords ************************/
-float (*key_to_vertcos(Object * ob, KeyBlock * kb))[3]
+float (*BKE_key_convert_to_vertcos(Object * ob, KeyBlock * kb))[3]
{
float (*vertCos)[3], *co;
float *fp = kb->data;
@@ -1741,7 +1754,7 @@ float (*key_to_vertcos(Object * ob, KeyBlock * kb))[3]
if (tot == 0) return NULL;
- vertCos = MEM_callocN(tot * sizeof(*vertCos), "key_to_vertcos vertCos");
+ vertCos = MEM_callocN(tot * sizeof(*vertCos), "BKE_key_convert_to_vertcos vertCos");
/* Copy coords to array */
co = (float *)vertCos;
@@ -1795,7 +1808,7 @@ float (*key_to_vertcos(Object * ob, KeyBlock * kb))[3]
return vertCos;
}
-void vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3])
+void BKE_key_convert_from_vertcos(Object *ob, KeyBlock *kb, float (*vertCos)[3])
{
float *co = (float *)vertCos, *fp;
int tot = 0, a, elemsize;
@@ -1824,7 +1837,7 @@ void vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3])
return;
}
- fp = kb->data = MEM_callocN(tot * elemsize, "key_to_vertcos vertCos");
+ fp = kb->data = MEM_callocN(tot * elemsize, "BKE_key_convert_to_vertcos vertCos");
/* Copy coords to keyblock */
@@ -1875,7 +1888,7 @@ void vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3])
}
}
-void offset_to_key(Object *ob, KeyBlock *kb, float (*ofs)[3])
+void BKE_key_convert_from_offset(Object *ob, KeyBlock *kb, float (*ofs)[3])
{
int a;
float *co = (float *)ofs, *fp = kb->data;
diff --git a/source/blender/blenkernel/intern/lamp.c b/source/blender/blenkernel/intern/lamp.c
index 20e3edc7044..4782d09a7c8 100644
--- a/source/blender/blenkernel/intern/lamp.c
+++ b/source/blender/blenkernel/intern/lamp.c
@@ -51,7 +51,7 @@
#include "BKE_main.h"
#include "BKE_node.h"
-void *BKE_lamp_add(const char *name)
+Lamp *BKE_lamp_add(const char *name)
{
Lamp *la;
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c
index d5b1d3c98c8..bb871f0cfd4 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -29,8 +29,6 @@
* \ingroup bke
*/
-
-
#include <stdio.h>
#include <string.h>
#include <math.h>
@@ -65,7 +63,6 @@
#include "BKE_deform.h"
-//XXX #include "BIF_editdeform.h"
void calc_lat_fudu(int flag, int res, float *fu, float *du)
{
@@ -491,7 +488,7 @@ static int where_on_path_deform(Object *ob, float ctime, float vec[4], float dir
/* test for cyclic */
bl = cu->bev.first;
if (!bl->nr) return 0;
- if (bl && bl->poly > -1) cycl = 1;
+ if (bl->poly > -1) cycl = 1;
if (cycl == 0) {
ctime1 = CLAMPIS(ctime, 0.0f, 1.0f);
@@ -882,9 +879,10 @@ void outside_lattice(Lattice *lt)
for (v = 0; v < lt->pntsv; v++) {
for (u = 0; u < lt->pntsu; u++, bp++) {
- if (u == 0 || v == 0 || w == 0 || u == lt->pntsu - 1 || v == lt->pntsv - 1 || w == lt->pntsw - 1) ;
+ if (u == 0 || v == 0 || w == 0 || u == lt->pntsu - 1 || v == lt->pntsv - 1 || w == lt->pntsw - 1) {
+ /* pass */
+ }
else {
-
bp->hide = 1;
bp->f1 &= ~SELECT;
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index 6e6891684c9..45364f5aafa 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -107,7 +107,6 @@
#include "BKE_gpencil.h"
#include "BKE_fcurve.h"
#include "BKE_speaker.h"
-#include "BKE_utildefines.h"
#include "BKE_movieclip.h"
#include "BKE_mask.h"
@@ -360,6 +359,9 @@ int id_copy(ID *id, ID **newid, int test)
return 0; /* can't be copied from here */
case ID_GD:
return 0; /* not implemented */
+ case ID_MSK:
+ if (!test) *newid = (ID *)BKE_mask_copy((Mask *)id);
+ return 1;
}
return 0;
@@ -798,6 +800,7 @@ static void animdata_dtar_clear_cb(ID *UNUSED(id), AnimData *adt, void *userdata
/* used in headerbuttons.c image.c mesh.c screen.c sound.c and library.c */
void BKE_libblock_free(ListBase *lb, void *idv)
{
+ Main *bmain = G.main; /* should eventually be an arg */
ID *id = idv;
#ifdef WITH_PYTHON
@@ -860,7 +863,7 @@ void BKE_libblock_free(ListBase *lb, void *idv)
BKE_text_free((Text *)id);
break;
case ID_SCRIPT:
- //XXX free_script((Script *)id);
+ /* deprecated */
break;
case ID_SPK:
BKE_speaker_free((Speaker *)id);
@@ -897,7 +900,7 @@ void BKE_libblock_free(ListBase *lb, void *idv)
BKE_movieclip_free((MovieClip *)id);
break;
case ID_MSK:
- BKE_mask_free((Mask *)id);
+ BKE_mask_free(bmain, (Mask *)id);
break;
}
@@ -909,7 +912,7 @@ void BKE_libblock_free(ListBase *lb, void *idv)
BLI_remlink(lb, id);
/* this ID may be a driver target! */
- BKE_animdata_main_cb(G.main, animdata_dtar_clear_cb, (void *)id);
+ BKE_animdata_main_cb(bmain, animdata_dtar_clear_cb, (void *)id);
MEM_freeN(id);
}
@@ -944,9 +947,52 @@ void free_main(Main *mainvar)
ID *id;
while ( (id = lb->first) ) {
+#if 1
BKE_libblock_free(lb, id);
+#else
+ /* errors freeing ID's can be hard to track down,
+ * enable this so valgrind will give the line number in its error log */
+ switch (a) {
+ case 0: BKE_libblock_free(lb, id); break;
+ case 1: BKE_libblock_free(lb, id); break;
+ case 2: BKE_libblock_free(lb, id); break;
+ case 3: BKE_libblock_free(lb, id); break;
+ case 4: BKE_libblock_free(lb, id); break;
+ case 5: BKE_libblock_free(lb, id); break;
+ case 6: BKE_libblock_free(lb, id); break;
+ case 7: BKE_libblock_free(lb, id); break;
+ case 8: BKE_libblock_free(lb, id); break;
+ case 9: BKE_libblock_free(lb, id); break;
+ case 10: BKE_libblock_free(lb, id); break;
+ case 11: BKE_libblock_free(lb, id); break;
+ case 12: BKE_libblock_free(lb, id); break;
+ case 13: BKE_libblock_free(lb, id); break;
+ case 14: BKE_libblock_free(lb, id); break;
+ case 15: BKE_libblock_free(lb, id); break;
+ case 16: BKE_libblock_free(lb, id); break;
+ case 17: BKE_libblock_free(lb, id); break;
+ case 18: BKE_libblock_free(lb, id); break;
+ case 19: BKE_libblock_free(lb, id); break;
+ case 20: BKE_libblock_free(lb, id); break;
+ case 21: BKE_libblock_free(lb, id); break;
+ case 22: BKE_libblock_free(lb, id); break;
+ case 23: BKE_libblock_free(lb, id); break;
+ case 24: BKE_libblock_free(lb, id); break;
+ case 25: BKE_libblock_free(lb, id); break;
+ case 26: BKE_libblock_free(lb, id); break;
+ case 27: BKE_libblock_free(lb, id); break;
+ case 28: BKE_libblock_free(lb, id); break;
+ case 29: BKE_libblock_free(lb, id); break;
+ case 30: BKE_libblock_free(lb, id); break;
+ case 31: BKE_libblock_free(lb, id); break;
+ case 32: BKE_libblock_free(lb, id); break;
+ default:
+ BLI_assert(0);
+ }
+#endif
}
}
+ a = set_listbasepointers(mainvar, lbarray);
MEM_freeN(mainvar);
}
@@ -1342,7 +1388,7 @@ static void lib_indirect_test_id(ID *id, Library *lib)
int a;
#if 0 /* XXX OLD ANIMSYS, NLASTRIPS ARE NO LONGER USED */
- // XXX old animation system! --------------------------------------
+ /* XXX old animation system! -------------------------------------- */
{
bActionStrip *strip;
for (strip = ob->nlastrips.first; strip; strip = strip->next) {
@@ -1351,7 +1397,7 @@ static void lib_indirect_test_id(ID *id, Library *lib)
LIBTAG(strip->ipo);
}
}
- // XXX: new animation system needs something like this?
+ /* XXX: new animation system needs something like this? */
#endif
for (a = 0; a < ob->totcol; a++) {
@@ -1525,7 +1571,7 @@ void BKE_library_filepath_set(Library *lib, const char *filepath)
/* not essential but set filepath is an absolute copy of value which
* is more useful if its kept in sync */
- if (strncmp(lib->filepath, "//", 2) == 0) {
+ if (BLI_path_is_rel(lib->filepath)) {
/* note that the file may be unsaved, in this case, setting the
* filepath on an indirectly linked path is not allowed from the
* outliner, and its not really supported but allow from here for now
diff --git a/source/blender/blenkernel/intern/mask.c b/source/blender/blenkernel/intern/mask.c
index b400332db81..aa19350c456 100644
--- a/source/blender/blenkernel/intern/mask.c
+++ b/source/blender/blenkernel/intern/mask.c
@@ -19,7 +19,8 @@
* All rights reserved.
*
* Contributor(s): Blender Foundation,
- * Sergey Sharybin
+ * Sergey Sharybin,
+ * Campbell Barton
*
* ***** END GPL LICENSE BLOCK *****
*/
@@ -40,23 +41,21 @@
#include "BLI_math.h"
#include "DNA_mask_types.h"
-#include "DNA_scene_types.h"
-#include "DNA_object_types.h"
+#include "DNA_node_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
-#include "DNA_movieclip_types.h"
-#include "DNA_tracking_types.h"
+#include "DNA_sequence_types.h"
#include "BKE_curve.h"
#include "BKE_global.h"
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_mask.h"
+#include "BKE_node.h"
+#include "BKE_sequencer.h"
#include "BKE_tracking.h"
#include "BKE_movieclip.h"
-#include "BKE_utildefines.h"
-
-#include "raskter.h"
+#include "BKE_image.h"
static MaskSplinePoint *mask_spline_point_next(MaskSpline *spline, MaskSplinePoint *points_array, MaskSplinePoint *point)
{
@@ -88,7 +87,7 @@ static MaskSplinePoint *mask_spline_point_prev(MaskSpline *spline, MaskSplinePoi
}
}
-static BezTriple *mask_spline_point_next_bezt(MaskSpline *spline, MaskSplinePoint *points_array, MaskSplinePoint *point)
+BezTriple *BKE_mask_spline_point_next_bezt(MaskSpline *spline, MaskSplinePoint *points_array, MaskSplinePoint *point)
{
if (point == &points_array[spline->tot_point - 1]) {
if (spline->flag & MASK_SPLINE_CYCLIC) {
@@ -110,7 +109,7 @@ static BezTriple *mask_spline_point_prev_bezt(MaskSpline *spline, MaskSplinePoin
if (spline->flag & MASK_SPLINE_CYCLIC) {
return &(points_array[0].bezt);
}
- else {
+ else {
return NULL;
}
}
@@ -156,6 +155,7 @@ MaskLayer *BKE_mask_layer_new(Mask *mask, const char *name)
mask->masklay_tot++;
+ masklay->blend = MASK_BLEND_MERGE_ADD;
masklay->alpha = 1.0f;
return masklay;
@@ -188,28 +188,48 @@ void BKE_mask_layer_unique_name(Mask *mask, MaskLayer *masklay)
BLI_uniquename(&mask->masklayers, masklay, "MaskLayer", '.', offsetof(MaskLayer, name), sizeof(masklay->name));
}
-MaskLayer *BKE_mask_layer_copy(MaskLayer *layer)
+MaskLayer *BKE_mask_layer_copy(MaskLayer *masklay)
{
- MaskLayer *layer_new;
+ MaskLayer *masklay_new;
MaskSpline *spline;
- layer_new = MEM_callocN(sizeof(MaskLayer), "new mask layer");
+ masklay_new = MEM_callocN(sizeof(MaskLayer), "new mask layer");
- BLI_strncpy(layer_new->name, layer->name, sizeof(layer_new->name));
+ BLI_strncpy(masklay_new->name, masklay->name, sizeof(masklay_new->name));
- layer_new->alpha = layer->alpha;
- layer_new->blend = layer->blend;
- layer_new->blend_flag = layer->blend_flag;
- layer_new->flag = layer->flag;
- layer_new->restrictflag = layer->restrictflag;
+ masklay_new->alpha = masklay->alpha;
+ masklay_new->blend = masklay->blend;
+ masklay_new->blend_flag = masklay->blend_flag;
+ masklay_new->flag = masklay->flag;
+ masklay_new->restrictflag = masklay->restrictflag;
- for (spline = layer->splines.first; spline; spline = spline->next) {
+ for (spline = masklay->splines.first; spline; spline = spline->next) {
MaskSpline *spline_new = BKE_mask_spline_copy(spline);
- BLI_addtail(&layer_new->splines, spline_new);
+ BLI_addtail(&masklay_new->splines, spline_new);
+ }
+
+ /* correct animation */
+ if (masklay->splines_shapes.first) {
+ MaskLayerShape *masklay_shape;
+ MaskLayerShape *masklay_shape_new;
+
+ for (masklay_shape = masklay->splines_shapes.first;
+ masklay_shape;
+ masklay_shape = masklay_shape->next)
+ {
+ masklay_shape_new = MEM_callocN(sizeof(MaskLayerShape), "new mask layer shape");
+
+ masklay_shape_new->data = MEM_dupallocN(masklay_shape->data);
+ masklay_shape_new->tot_vert = masklay_shape->tot_vert;
+ masklay_shape_new->flag = masklay_shape->flag;
+ masklay_shape_new->frame = masklay_shape->frame;
+
+ BLI_addtail(&masklay_new->splines_shapes, masklay_shape_new);
+ }
}
- return layer_new;
+ return masklay_new;
}
void BKE_mask_layer_copy_list(ListBase *masklayers_new, ListBase *masklayers)
@@ -239,235 +259,13 @@ MaskSpline *BKE_mask_spline_add(MaskLayer *masklay)
/* cyclic shapes are more usually used */
// spline->flag |= MASK_SPLINE_CYCLIC; // disable because its not so nice for drawing. could be done differently
- spline->weight_interp = MASK_SPLINE_INTERP_LINEAR;
+ spline->weight_interp = MASK_SPLINE_INTERP_EASE;
BKE_mask_parent_init(&spline->parent);
return spline;
}
-static int BKE_mask_spline_resolution(MaskSpline *spline, int width, int height)
-{
- float max_segment = 0.01f;
- int i, resol = 1;
-
- if (width != 0 && height != 0) {
- if (width >= height)
- max_segment = 1.0f / (float) width;
- else
- max_segment = 1.0f / (float) height;
- }
-
- for (i = 0; i < spline->tot_point; i++) {
- MaskSplinePoint *point = &spline->points[i];
- BezTriple *bezt, *bezt_next;
- float a, b, c, len;
- int cur_resol;
-
- bezt = &point->bezt;
- bezt_next = mask_spline_point_next_bezt(spline, spline->points, point);
-
- if (bezt_next == NULL) {
- break;
- }
-
- a = len_v3v3(bezt->vec[1], bezt->vec[2]);
- b = len_v3v3(bezt->vec[2], bezt_next->vec[0]);
- c = len_v3v3(bezt_next->vec[0], bezt_next->vec[1]);
-
- len = a + b + c;
- cur_resol = len / max_segment;
-
- resol = MAX2(resol, cur_resol);
- }
-
- return resol;
-}
-
-static int BKE_mask_spline_feather_resolution(MaskSpline *spline, int width, int height)
-{
- const float max_segment = 0.005;
- int resol = BKE_mask_spline_resolution(spline, width, height);
- float max_jump = 0.0f;
- int i;
-
- for (i = 0; i < spline->tot_point; i++) {
- MaskSplinePoint *point = &spline->points[i];
- float prev_u, prev_w;
- int j;
-
- prev_u = 0.0f;
- prev_w = point->bezt.weight;
-
- for (j = 0; j < point->tot_uw; j++) {
- float jump = fabsf((point->uw[j].w - prev_w) / (point->uw[j].u - prev_u));
-
- max_jump = MAX2(max_jump, jump);
-
- prev_u = point->uw[j].u;
- prev_w = point->uw[j].w;
- }
- }
-
- resol += max_jump / max_segment;
-
- return resol;
-}
-
-float (*BKE_mask_spline_differentiate_with_resolution(MaskSpline *spline, int width, int height,
- int *tot_diff_point))[2]
-{
- MaskSplinePoint *points_array = BKE_mask_spline_point_array(spline);
-
- MaskSplinePoint *point, *prev;
- float (*diff_points)[2], (*fp)[2];
- int a, len, resol = BKE_mask_spline_resolution(spline, width, height);
-
- if (spline->tot_point <= 1) {
- /* nothing to differentiate */
- *tot_diff_point = 0;
- return NULL;
- }
-
- /* count */
- len = (spline->tot_point - 1) * resol;
-
- if (spline->flag & MASK_SPLINE_CYCLIC)
- len += resol;
- else
- len++;
-
- /* len+1 because of 'forward_diff_bezier' function */
- *tot_diff_point = len;
- diff_points = fp = MEM_mallocN((len + 1) * sizeof(*diff_points), "mask spline vets");
-
- a = spline->tot_point - 1;
- if (spline->flag & MASK_SPLINE_CYCLIC)
- a++;
-
- prev = points_array;
- point = prev + 1;
-
- while (a--) {
- BezTriple *prevbezt;
- BezTriple *bezt;
- int j;
-
- if (a == 0 && (spline->flag & MASK_SPLINE_CYCLIC))
- point = points_array;
-
- prevbezt = &prev->bezt;
- bezt = &point->bezt;
-
- for (j = 0; j < 2; j++) {
- BKE_curve_forward_diff_bezier(prevbezt->vec[1][j], prevbezt->vec[2][j],
- bezt->vec[0][j], bezt->vec[1][j],
- &(*fp)[j], resol, 2 * sizeof(float));
- }
-
- fp += resol;
-
- if (a == 0 && (spline->flag & MASK_SPLINE_CYCLIC) == 0) {
- copy_v2_v2(*fp, bezt->vec[1]);
- }
-
- prev = point;
- point++;
- }
-
- return diff_points;
-}
-
-float (*BKE_mask_spline_differentiate(MaskSpline *spline, int *tot_diff_point))[2]
-{
- return BKE_mask_spline_differentiate_with_resolution(spline, 0, 0, tot_diff_point);
-}
-
-float (*BKE_mask_spline_feather_differentiated_points_with_resolution(MaskSpline *spline, int width, int height,
- int *tot_feather_point))[2]
-{
- MaskSplinePoint *points_array = BKE_mask_spline_point_array(spline);
-
- float (*feather)[2], (*fp)[2];
- int i, j, tot, resol = BKE_mask_spline_feather_resolution(spline, width, height);
-
- tot = resol * spline->tot_point;
- feather = fp = MEM_mallocN(tot * sizeof(*feather), "mask spline feather diff points");
-
- for (i = 0; i < spline->tot_point; i++) {
- MaskSplinePoint *point = &points_array[i];
-
- for (j = 0; j < resol; j++, fp++) {
- float u = (float) j / resol, weight;
- float co[2], n[2];
-
- /* TODO - these calls all calculate similar things
- * could be unified for some speed */
- BKE_mask_point_segment_co(spline, point, u, co);
- BKE_mask_point_normal(spline, point, u, n);
- weight = BKE_mask_point_weight(spline, point, u);
-
- madd_v2_v2v2fl(*fp, co, n, weight);
- }
- }
-
- *tot_feather_point = tot;
-
- return feather;
-}
-
-float (*BKE_mask_spline_feather_differentiated_points(MaskSpline *spline, int *tot_feather_point))[2]
-{
- return BKE_mask_spline_feather_differentiated_points_with_resolution(spline, 0, 0, tot_feather_point);
-}
-
-float (*BKE_mask_spline_feather_points(MaskSpline *spline, int *tot_feather_point))[2]
-{
- MaskSplinePoint *points_array = BKE_mask_spline_point_array(spline);
-
- int i, tot = 0;
- float (*feather)[2], (*fp)[2];
-
- /* count */
- for (i = 0; i < spline->tot_point; i++) {
- MaskSplinePoint *point = &points_array[i];
-
- tot += point->tot_uw + 1;
- }
-
- /* create data */
- feather = fp = MEM_mallocN(tot * sizeof(*feather), "mask spline feather points");
-
- for (i = 0; i < spline->tot_point; i++) {
- MaskSplinePoint *point = &points_array[i];
- BezTriple *bezt = &point->bezt;
- float weight, n[2];
- int j;
-
- BKE_mask_point_normal(spline, point, 0.0f, n);
- weight = BKE_mask_point_weight(spline, point, 0.0f);
-
- madd_v2_v2v2fl(*fp, bezt->vec[1], n, weight);
- fp++;
-
- for (j = 0; j < point->tot_uw; j++) {
- float u = point->uw[j].u;
- float co[2];
-
- BKE_mask_point_segment_co(spline, point, u, co);
- BKE_mask_point_normal(spline, point, u, n);
- weight = BKE_mask_point_weight(spline, point, u);
-
- madd_v2_v2v2fl(*fp, co, n, weight);
- fp++;
- }
- }
-
- *tot_feather_point = tot;
-
- return feather;
-}
-
void BKE_mask_point_direction_switch(MaskSplinePoint *point)
{
const int tot_uw = point->tot_uw;
@@ -686,72 +484,6 @@ void BKE_mask_point_set_handle(MaskSplinePoint *point, float loc[2], int keep_di
}
}
-float *BKE_mask_point_segment_feather_diff_with_resolution(MaskSpline *spline, MaskSplinePoint *point,
- int width, int height,
- int *tot_feather_point)
-{
- float *feather, *fp;
- int i, resol = BKE_mask_spline_feather_resolution(spline, width, height);
-
- feather = fp = MEM_callocN(2 * resol * sizeof(float), "mask point spline feather diff points");
-
- for (i = 0; i < resol; i++, fp += 2) {
- float u = (float)(i % resol) / resol, weight;
- float co[2], n[2];
-
- BKE_mask_point_segment_co(spline, point, u, co);
- BKE_mask_point_normal(spline, point, u, n);
- weight = BKE_mask_point_weight(spline, point, u);
-
- fp[0] = co[0] + n[0] * weight;
- fp[1] = co[1] + n[1] * weight;
- }
-
- *tot_feather_point = resol;
-
- return feather;
-}
-
-float *BKE_mask_point_segment_feather_diff(MaskSpline *spline, MaskSplinePoint *point, int *tot_feather_point)
-{
- return BKE_mask_point_segment_feather_diff_with_resolution(spline, point, 0, 0, tot_feather_point);
-}
-
-float *BKE_mask_point_segment_diff_with_resolution(MaskSpline *spline, MaskSplinePoint *point,
- int width, int height, int *tot_diff_point)
-{
- MaskSplinePoint *points_array = BKE_mask_spline_point_array_from_point(spline, point);
-
- BezTriple *bezt, *bezt_next;
- float *diff_points, *fp;
- int j, resol = BKE_mask_spline_resolution(spline, width, height);
-
- bezt = &point->bezt;
- bezt_next = mask_spline_point_next_bezt(spline, points_array, point);
-
- if (!bezt_next)
- return NULL;
-
- /* resol+1 because of 'forward_diff_bezier' function */
- *tot_diff_point = resol + 1;
- diff_points = fp = MEM_callocN((resol + 1) * 2 * sizeof(float), "mask segment vets");
-
- for (j = 0; j < 2; j++) {
- BKE_curve_forward_diff_bezier(bezt->vec[1][j], bezt->vec[2][j],
- bezt_next->vec[0][j], bezt_next->vec[1][j],
- fp + j, resol, 2 * sizeof(float));
- }
-
- copy_v2_v2(fp + 2 * resol, bezt_next->vec[1]);
-
- return diff_points;
-}
-
-float *BKE_mask_point_segment_diff(MaskSpline *spline, MaskSplinePoint *point, int *tot_diff_point)
-{
- return BKE_mask_point_segment_diff_with_resolution(spline, point, 0, 0, tot_diff_point);
-}
-
void BKE_mask_point_segment_co(MaskSpline *spline, MaskSplinePoint *point, float u, float co[2])
{
MaskSplinePoint *points_array = BKE_mask_spline_point_array_from_point(spline, point);
@@ -759,7 +491,7 @@ void BKE_mask_point_segment_co(MaskSpline *spline, MaskSplinePoint *point, float
BezTriple *bezt = &point->bezt, *bezt_next;
float q0[2], q1[2], q2[2], r0[2], r1[2];
- bezt_next = mask_spline_point_next_bezt(spline, points_array, point);
+ bezt_next = BKE_mask_spline_point_next_bezt(spline, points_array, point);
if (!bezt_next) {
copy_v2_v2(co, bezt->vec[1]);
@@ -783,7 +515,7 @@ void BKE_mask_point_normal(MaskSpline *spline, MaskSplinePoint *point, float u,
BezTriple *bezt = &point->bezt, *bezt_next;
float q0[2], q1[2], q2[2], r0[2], r1[2], vec[2];
- bezt_next = mask_spline_point_next_bezt(spline, points_array, point);
+ bezt_next = BKE_mask_spline_point_next_bezt(spline, points_array, point);
if (!bezt_next) {
BKE_mask_point_handle(point, vec);
@@ -818,7 +550,7 @@ float BKE_mask_point_weight_scalar(MaskSpline *spline, MaskSplinePoint *point, c
MaskSplinePoint *points_array = BKE_mask_spline_point_array_from_point(spline, point);
BezTriple *bezt = &point->bezt, *bezt_next;
- bezt_next = mask_spline_point_next_bezt(spline, points_array, point);
+ bezt_next = BKE_mask_spline_point_next_bezt(spline, points_array, point);
if (!bezt_next) {
return bezt->weight;
@@ -839,7 +571,7 @@ float BKE_mask_point_weight(MaskSpline *spline, MaskSplinePoint *point, const fl
MaskSplinePoint *points_array = BKE_mask_spline_point_array_from_point(spline, point);
BezTriple *bezt = &point->bezt, *bezt_next;
- bezt_next = mask_spline_point_next_bezt(spline, points_array, point);
+ bezt_next = BKE_mask_spline_point_next_bezt(spline, points_array, point);
if (!bezt_next) {
return bezt->weight;
@@ -921,12 +653,13 @@ MaskSplinePointUW *BKE_mask_point_sort_uw(MaskSplinePoint *point, MaskSplinePoin
void BKE_mask_point_add_uw(MaskSplinePoint *point, float u, float w)
{
if (!point->uw)
- point->uw = MEM_callocN(sizeof(*point->uw), "mask point uw");
+ point->uw = MEM_mallocN(sizeof(*point->uw), "mask point uw");
else
point->uw = MEM_reallocN(point->uw, (point->tot_uw + 1) * sizeof(*point->uw));
point->uw[point->tot_uw].u = u;
point->uw[point->tot_uw].w = w;
+ point->uw[point->tot_uw].flag = 0;
point->tot_uw++;
@@ -971,6 +704,8 @@ static Mask *mask_alloc(const char *name)
mask = BKE_libblock_alloc(&G.main->mask, ID_MSK, name);
+ mask->id.flag |= LIB_FAKEUSER;
+
return mask;
}
@@ -993,6 +728,49 @@ Mask *BKE_mask_new(const char *name)
return mask;
}
+Mask *BKE_mask_copy_nolib(Mask *mask)
+{
+ Mask *mask_new;
+
+ mask_new = MEM_dupallocN(mask);
+
+ /*take care here! - we may want to copy anim data */
+ mask_new->adt = NULL;
+
+ mask_new->masklayers.first = NULL;
+ mask_new->masklayers.last = NULL;
+
+ BKE_mask_layer_copy_list(&mask_new->masklayers, &mask->masklayers);
+
+ /* enable fake user by default */
+ if (!(mask_new->id.flag & LIB_FAKEUSER)) {
+ mask_new->id.flag |= LIB_FAKEUSER;
+ mask_new->id.us++;
+ }
+
+ return mask_new;
+}
+
+Mask *BKE_mask_copy(Mask *mask)
+{
+ Mask *mask_new;
+
+ mask_new = BKE_libblock_copy(&mask->id);
+
+ mask_new->masklayers.first = NULL;
+ mask_new->masklayers.last = NULL;
+
+ BKE_mask_layer_copy_list(&mask_new->masklayers, &mask->masklayers);
+
+ /* enable fake user by default */
+ if (!(mask_new->id.flag & LIB_FAKEUSER)) {
+ mask_new->id.flag |= LIB_FAKEUSER;
+ mask_new->id.us++;
+ }
+
+ return mask_new;
+}
+
void BKE_mask_point_free(MaskSplinePoint *point)
{
if (point->uw)
@@ -1072,7 +850,9 @@ MaskLayerShape *BKE_mask_layer_shape_alloc(MaskLayer *masklay, const int frame)
void BKE_mask_layer_shape_free(MaskLayerShape *masklay_shape)
{
- MEM_freeN(masklay_shape->data);
+ if (masklay_shape->data) {
+ MEM_freeN(masklay_shape->data);
+ }
MEM_freeN(masklay_shape);
}
@@ -1130,75 +910,152 @@ void BKE_mask_layer_free_list(ListBase *masklayers)
}
}
-void BKE_mask_free(Mask *mask)
+/** free for temp copy, but don't manage unlinking from other pointers */
+void BKE_mask_free_nolib(Mask *mask)
{
BKE_mask_layer_free_list(&mask->masklayers);
}
-void BKE_mask_unlink(Main *bmain, Mask *mask)
+void BKE_mask_free(Main *bmain, Mask *mask)
{
bScreen *scr;
ScrArea *area;
SpaceLink *sl;
+ Scene *scene;
for (scr = bmain->screen.first; scr; scr = scr->id.next) {
for (area = scr->areabase.first; area; area = area->next) {
for (sl = area->spacedata.first; sl; sl = sl->next) {
- if (sl->spacetype == SPACE_CLIP) {
- SpaceClip *sc = (SpaceClip *) sl;
+ switch (sl->spacetype) {
+ case SPACE_CLIP:
+ {
+ SpaceClip *sc = (SpaceClip *)sl;
+
+ if (sc->mask_info.mask == mask) {
+ sc->mask_info.mask = NULL;
+ }
+ break;
+ }
+ case SPACE_IMAGE:
+ {
+ SpaceImage *sima = (SpaceImage *)sl;
- if (sc->mask == mask)
- sc->mask = NULL;
+ if (sima->mask_info.mask == mask) {
+ sima->mask_info.mask = NULL;
+ }
+ break;
+ }
}
}
}
}
- mask->id.us = 0;
-}
+ for (scene = bmain->scene.first; scene; scene = scene->id.next) {
+ if (scene->ed) {
+ Sequence *seq;
-void BKE_mask_coord_from_movieclip(MovieClip *clip, MovieClipUser *user, float r_co[2], const float co[2])
-{
- int width, height;
+ SEQ_BEGIN (scene->ed, seq)
+ {
+ if (seq->mask == mask) {
+ seq->mask = NULL;
+ }
+ }
+ SEQ_END
+ }
+ }
- /* scaling for the clip */
- BKE_movieclip_get_size(clip, user, &width, &height);
+ {
+ bNodeTreeType *treetype = ntreeGetType(NTREE_COMPOSIT);
+ treetype->foreach_nodetree(bmain, (void *)mask, &BKE_node_tree_unlink_id_cb);
+ }
- if (width == height) {
+ /* free mask data */
+ BKE_mask_layer_free_list(&mask->masklayers);
+}
+
+void BKE_mask_coord_from_frame(float r_co[2], const float co[2], const float frame_size[2])
+{
+ if (frame_size[0] == frame_size[1]) {
r_co[0] = co[0];
r_co[1] = co[1];
}
- else if (width < height) {
- r_co[0] = ((co[0] - 0.5f) * ((float)width / (float)height)) + 0.5f;
+ else if (frame_size[0] < frame_size[1]) {
+ r_co[0] = ((co[0] - 0.5f) * (frame_size[0] / frame_size[1])) + 0.5f;
r_co[1] = co[1];
}
- else { /* (width > height) */
+ else { /* (frame_size[0] > frame_size[1]) */
r_co[0] = co[0];
- r_co[1] = ((co[1] - 0.5f) * ((float)height / (float)width)) + 0.5f;
+ r_co[1] = ((co[1] - 0.5f) * (frame_size[1] / frame_size[0])) + 0.5f;
}
}
-
-/* as above but divide */
-void BKE_mask_coord_to_movieclip(MovieClip *clip, MovieClipUser *user, float r_co[2], const float co[2])
+void BKE_mask_coord_from_movieclip(MovieClip *clip, MovieClipUser *user, float r_co[2], const float co[2])
{
- int width, height;
+ float aspx, aspy;
+ float frame_size[2];
/* scaling for the clip */
- BKE_movieclip_get_size(clip, user, &width, &height);
+ BKE_movieclip_get_size_fl(clip, user, frame_size);
+ BKE_movieclip_get_aspect(clip, &aspx, &aspy);
+
+ frame_size[1] *= (aspy / aspx);
+
+ BKE_mask_coord_from_frame(r_co, co, frame_size);
+}
+void BKE_mask_coord_from_image(Image *image, ImageUser *iuser, float r_co[2], const float co[2])
+{
+ float aspx, aspy;
+ float frame_size[2];
+
+ BKE_image_get_size_fl(image, iuser, frame_size);
+ BKE_image_get_aspect(image, &aspx, &aspy);
- if (width == height) {
+ frame_size[1] *= (aspy / aspx);
+
+ BKE_mask_coord_from_frame(r_co, co, frame_size);
+}
+
+/* as above but divide */
+void BKE_mask_coord_to_frame(float r_co[2], const float co[2], const float frame_size[2])
+{
+ if (frame_size[0] == frame_size[1]) {
r_co[0] = co[0];
r_co[1] = co[1];
}
- else if (width < height) {
- r_co[0] = ((co[0] - 0.5f) / ((float)width / (float)height)) + 0.5f;
+ else if (frame_size[0] < frame_size[1]) {
+ r_co[0] = ((co[0] - 0.5f) / (frame_size[0] / frame_size[1])) + 0.5f;
r_co[1] = co[1];
}
- else { /* (width > height) */
+ else { /* (frame_size[0] > frame_size[1]) */
r_co[0] = co[0];
- r_co[1] = ((co[1] - 0.5f) / ((float)height / (float)width)) + 0.5f;
+ r_co[1] = ((co[1] - 0.5f) / (frame_size[1] / frame_size[0])) + 0.5f;
}
}
+void BKE_mask_coord_to_movieclip(MovieClip *clip, MovieClipUser *user, float r_co[2], const float co[2])
+{
+ float aspx, aspy;
+ float frame_size[2];
+
+ /* scaling for the clip */
+ BKE_movieclip_get_size_fl(clip, user, frame_size);
+ BKE_movieclip_get_aspect(clip, &aspx, &aspy);
+
+ frame_size[1] /= (aspy / aspx);
+
+ BKE_mask_coord_to_frame(r_co, co, frame_size);
+}
+void BKE_mask_coord_to_image(Image *image, ImageUser *iuser, float r_co[2], const float co[2])
+{
+ float aspx, aspy;
+ float frame_size[2];
+
+ /* scaling for the clip */
+ BKE_image_get_size_fl(image, iuser, frame_size);
+ BKE_image_get_aspect(image, &aspx, &aspy);
+
+ frame_size[1] /= (aspy / aspx);
+
+ BKE_mask_coord_to_frame(r_co, co, frame_size);
+}
static int BKE_mask_evaluate_parent(MaskParent *parent, float ctime, float r_co[2])
{
@@ -1219,9 +1076,8 @@ static int BKE_mask_evaluate_parent(MaskParent *parent, float ctime, float r_co[
user.framenr = ctime;
if (track) {
- MovieTrackingMarker *marker = BKE_tracking_marker_get(track, clip_framenr);
float marker_pos_ofs[2];
- add_v2_v2v2(marker_pos_ofs, marker->pos, track->offset);
+ BKE_tracking_marker_get_subframe_position(track, clip_framenr, marker_pos_ofs);
BKE_mask_coord_from_movieclip(clip, &user, r_co, marker_pos_ofs);
return TRUE;
@@ -1233,7 +1089,8 @@ static int BKE_mask_evaluate_parent(MaskParent *parent, float ctime, float r_co[
return FALSE;
}
-int BKE_mask_evaluate_parent_delta(MaskParent *parent, float ctime, float r_delta[2])
+/* could make external but for now its only used internally */
+static int mask_evaluate_parent_delta(MaskParent *parent, float ctime, float r_delta[2])
{
float parent_co[2];
@@ -1343,17 +1200,6 @@ void BKE_mask_calc_handle_point(MaskSpline *spline, MaskSplinePoint *point)
mask_calc_point_handle(point, point_prev, point_next);
}
-static void enforce_dist_v2_v2fl(float v1[2], const float v2[2], const float dist)
-{
- if (!equals_v2v2(v2, v1)) {
- float nor[2];
-
- sub_v2_v2v2(nor, v1, v2);
- normalize_v2(nor);
- madd_v2_v2v2fl(v1, v2, nor, dist);
- }
-}
-
void BKE_mask_calc_handle_adjacent_interp(MaskSpline *spline, MaskSplinePoint *point, const float u)
{
/* TODO! - make this interpolate between siblings - not always midpoint! */
@@ -1395,8 +1241,8 @@ void BKE_mask_calc_handle_adjacent_interp(MaskSpline *spline, MaskSplinePoint *p
length_average /= (float)length_tot;
weight_average /= (float)length_tot;
- enforce_dist_v2_v2fl(point->bezt.vec[0], point->bezt.vec[1], length_average);
- enforce_dist_v2_v2fl(point->bezt.vec[2], point->bezt.vec[1], length_average);
+ dist_ensure_v2_v2fl(point->bezt.vec[0], point->bezt.vec[1], length_average);
+ dist_ensure_v2_v2fl(point->bezt.vec[2], point->bezt.vec[1], length_average);
point->bezt.weight = weight_average;
}
}
@@ -1428,8 +1274,8 @@ void BKE_mask_calc_handle_point_auto(MaskSpline *spline, MaskSplinePoint *point,
/* preserve length by applying it back */
if (do_recalc_length == FALSE) {
- enforce_dist_v2_v2fl(point->bezt.vec[0], point->bezt.vec[1], length_average);
- enforce_dist_v2_v2fl(point->bezt.vec[2], point->bezt.vec[1], length_average);
+ dist_ensure_v2_v2fl(point->bezt.vec[0], point->bezt.vec[1], length_average);
+ dist_ensure_v2_v2fl(point->bezt.vec[2], point->bezt.vec[1], length_average);
}
}
@@ -1584,7 +1430,7 @@ void BKE_mask_layer_evaluate(MaskLayer *masklay, const float ctime, const int do
*point_deform = *point;
point_deform->uw = point->uw ? MEM_dupallocN(point->uw) : NULL;
- if (BKE_mask_evaluate_parent_delta(&point->parent, ctime, delta)) {
+ if (mask_evaluate_parent_delta(&point->parent, ctime, delta)) {
add_v2_v2(point_deform->bezt.vec[0], delta);
add_v2_v2(point_deform->bezt.vec[1], delta);
add_v2_v2(point_deform->bezt.vec[2], delta);
@@ -1679,7 +1525,7 @@ void BKE_mask_parent_init(MaskParent *parent)
}
-/* *** own animation/shapekey implimentation ***
+/* *** own animation/shapekey implementation ***
* BKE_mask_layer_shape_XXX */
int BKE_mask_layer_shape_totvert(MaskLayer *masklay)
@@ -2107,182 +1953,7 @@ void BKE_mask_layer_shape_changed_remove(MaskLayer *masklay, int index, int coun
}
}
-/* local functions */
-static void invert_vn_vn(float *array, const int size)
-{
- float *arr = array + (size - 1);
- int i = size;
- while (i--) {
- *(arr) = 1.0f - *(arr);
- arr--;
- }
-}
-
-static void m_invert_vn_vn(float *array, const float f, const int size)
-{
- float *arr = array + (size - 1);
- int i = size;
- while (i--) {
- *(arr) = 1.0f - (*(arr) * f);
- arr--;
- }
-}
-
-static void clamp_vn_vn(float *array, const int size)
-{
- float *arr = array + (size - 1);
-
- int i = size;
- while (i--) {
- if (*arr < 0.0f) *arr = 0.0f;
- else if (*arr > 1.0f) *arr = 1.0f;
- arr--;
- }
-}
-
int BKE_mask_get_duration(Mask *mask)
{
- return MAX2(1, mask->efra - mask->sfra);
-}
-
-/* rasterization */
-void BKE_mask_rasterize_layers(ListBase *masklayers, int width, int height, float *buffer,
- const short do_aspect_correct, const short do_mask_aa,
- const short do_feather)
-{
- MaskLayer *masklay;
-
- /* temp blending buffer */
- const int buffer_size = width * height;
- float *buffer_tmp = MEM_mallocN(sizeof(float) * buffer_size, __func__);
-
- for (masklay = masklayers->first; masklay; masklay = masklay->next) {
- MaskSpline *spline;
- float alpha;
-
- if (masklay->restrictflag & MASK_RESTRICT_RENDER) {
- continue;
- }
-
- memset(buffer_tmp, 0, sizeof(float) * buffer_size);
-
- for (spline = masklay->splines.first; spline; spline = spline->next) {
- float (*diff_points)[2];
- int tot_diff_point;
-
- float (*diff_feather_points)[2];
- int tot_diff_feather_points;
-
- diff_points = BKE_mask_spline_differentiate_with_resolution(spline, width, height,
- &tot_diff_point);
-
- if (tot_diff_point) {
- if (do_feather) {
- diff_feather_points =
- BKE_mask_spline_feather_differentiated_points_with_resolution(spline, width, height,
- &tot_diff_feather_points);
- }
- else {
- tot_diff_feather_points = 0;
- diff_feather_points = NULL;
- }
-
- if (do_aspect_correct) {
- if (width != height) {
- float *fp;
- float *ffp;
- int i;
- float asp;
-
- if (width < height) {
- fp = &diff_points[0][0];
- ffp = tot_diff_feather_points ? &diff_feather_points[0][0] : NULL;
- asp = (float)width / (float)height;
- }
- else {
- fp = &diff_points[0][1];
- ffp = tot_diff_feather_points ? &diff_feather_points[0][1] : NULL;
- asp = (float)height / (float)width;
- }
-
- for (i = 0; i < tot_diff_point; i++, fp += 2) {
- (*fp) = (((*fp) - 0.5f) / asp) + 0.5f;
- }
-
- if (tot_diff_feather_points) {
- for (i = 0; i < tot_diff_feather_points; i++, ffp += 2) {
- (*ffp) = (((*ffp) - 0.5f) / asp) + 0.5f;
- }
- }
- }
- }
-
- if (tot_diff_point) {
- PLX_raskterize(diff_points, tot_diff_point,
- buffer_tmp, width, height, do_mask_aa);
-
- if (tot_diff_feather_points) {
- PLX_raskterize_feather(diff_points, tot_diff_point,
- diff_feather_points, tot_diff_feather_points,
- buffer_tmp, width, height);
- MEM_freeN(diff_feather_points);
- }
-
- MEM_freeN(diff_points);
- }
- }
- }
-
- /* blend with original */
- if (masklay->blend_flag & MASK_BLENDFLAG_INVERT) {
- /* apply alpha multiply before inverting */
- if (masklay->alpha != 1.0f) {
- m_invert_vn_vn(buffer_tmp, masklay->alpha, buffer_size);
- }
- else {
- invert_vn_vn(buffer_tmp, buffer_size);
- }
-
- alpha = 1.0f;
- }
- else {
- alpha = masklay->alpha;
- }
-
- switch (masklay->blend) {
- case MASK_BLEND_SUBTRACT:
- {
- if (alpha == 1.0f) {
- sub_vn_vn(buffer, buffer_tmp, buffer_size);
- }
- else {
- msub_vn_vn(buffer, buffer_tmp, alpha, buffer_size);
- }
- break;
- }
- case MASK_BLEND_ADD:
- default:
- {
- if (alpha == 1.0f) {
- add_vn_vn(buffer, buffer_tmp, buffer_size);
- }
- else {
- madd_vn_vn(buffer, buffer_tmp, alpha, buffer_size);
- }
- break;
- }
- }
-
- /* clamp at the end */
- clamp_vn_vn(buffer, buffer_size);
- }
-
- MEM_freeN(buffer_tmp);
-}
-
-void BKE_mask_rasterize(Mask *mask, int width, int height, float *buffer,
- const short do_aspect_correct, const short do_mask_aa,
- const short do_feather)
-{
- BKE_mask_rasterize_layers(&mask->masklayers, width, height, buffer, do_aspect_correct, do_mask_aa, do_feather);
+ return maxi(1, mask->efra - mask->sfra);
}
diff --git a/source/blender/blenkernel/intern/mask_evaluate.c b/source/blender/blenkernel/intern/mask_evaluate.c
new file mode 100644
index 00000000000..4a8601df0b8
--- /dev/null
+++ b/source/blender/blenkernel/intern/mask_evaluate.c
@@ -0,0 +1,863 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2012 Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Blender Foundation,
+ * Sergey Sharybin,
+ * Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/blenkernel/intern/mask_evaluate.c
+ * \ingroup bke
+ *
+ * Functions for evaluating the mask beziers into points for the outline and feather.
+ */
+
+#include <stddef.h>
+#include <string.h>
+
+#include "MEM_guardedalloc.h"
+
+#include "BLI_utildefines.h"
+#include "BLI_path_util.h"
+#include "BLI_string.h"
+#include "BLI_listbase.h"
+#include "BLI_math.h"
+
+#include "DNA_mask_types.h"
+#include "DNA_node_types.h"
+#include "DNA_scene_types.h"
+#include "DNA_object_types.h"
+#include "DNA_screen_types.h"
+#include "DNA_space_types.h"
+#include "DNA_movieclip_types.h"
+#include "DNA_tracking_types.h"
+#include "DNA_sequence_types.h"
+
+#include "BKE_curve.h"
+#include "BKE_global.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_mask.h"
+#include "BKE_node.h"
+#include "BKE_sequencer.h"
+#include "BKE_tracking.h"
+#include "BKE_movieclip.h"
+
+
+unsigned int BKE_mask_spline_resolution(MaskSpline *spline, int width, int height)
+{
+ float max_segment = 0.01f;
+ unsigned int i, resol = 1;
+
+ if (width != 0 && height != 0) {
+ max_segment = 1.0f / (float)maxi(width, height);
+ }
+
+ for (i = 0; i < spline->tot_point; i++) {
+ MaskSplinePoint *point = &spline->points[i];
+ BezTriple *bezt_curr, *bezt_next;
+ float a, b, c, len;
+ unsigned int cur_resol;
+
+ bezt_curr = &point->bezt;
+ bezt_next = BKE_mask_spline_point_next_bezt(spline, spline->points, point);
+
+ if (bezt_next == NULL) {
+ break;
+ }
+
+ a = len_v3v3(bezt_curr->vec[1], bezt_curr->vec[2]);
+ b = len_v3v3(bezt_curr->vec[2], bezt_next->vec[0]);
+ c = len_v3v3(bezt_next->vec[0], bezt_next->vec[1]);
+
+ len = a + b + c;
+ cur_resol = len / max_segment;
+
+ resol = MAX2(resol, cur_resol);
+
+ if (resol >= MASK_RESOL_MAX) {
+ break;
+ }
+ }
+
+ return CLAMPIS(resol, 1, MASK_RESOL_MAX);
+}
+
+unsigned int BKE_mask_spline_feather_resolution(MaskSpline *spline, int width, int height)
+{
+ const float max_segment = 0.005;
+ unsigned int resol = BKE_mask_spline_resolution(spline, width, height);
+ float max_jump = 0.0f;
+ int i;
+
+ /* avoid checking the featrher if we already hit the maximum value */
+ if (resol >= MASK_RESOL_MAX) {
+ return MASK_RESOL_MAX;
+ }
+
+ for (i = 0; i < spline->tot_point; i++) {
+ MaskSplinePoint *point = &spline->points[i];
+ float prev_u, prev_w;
+ int j;
+
+ prev_u = 0.0f;
+ prev_w = point->bezt.weight;
+
+ for (j = 0; j < point->tot_uw; j++) {
+ const float w_diff = (point->uw[j].w - prev_w);
+ const float u_diff = (point->uw[j].u - prev_u);
+
+ /* avoid divide by zero and very high values,
+ * though these get clamped eventually */
+ if (u_diff > FLT_EPSILON) {
+ float jump = fabsf(w_diff / u_diff);
+
+ max_jump = MAX2(max_jump, jump);
+ }
+
+ prev_u = point->uw[j].u;
+ prev_w = point->uw[j].w;
+ }
+ }
+
+ resol += max_jump / max_segment;
+
+ return CLAMPIS(resol, 1, MASK_RESOL_MAX);
+}
+
+int BKE_mask_spline_differentiate_calc_total(const MaskSpline *spline, const unsigned int resol)
+{
+ if (spline->flag & MASK_SPLINE_CYCLIC) {
+ return spline->tot_point * resol;
+ }
+ else {
+ return ((spline->tot_point - 1) * resol) + 1;
+ }
+}
+
+float (*BKE_mask_spline_differentiate_with_resolution_ex(MaskSpline *spline,
+ int *tot_diff_point,
+ const unsigned int resol
+ ))[2]
+{
+ MaskSplinePoint *points_array = BKE_mask_spline_point_array(spline);
+
+ MaskSplinePoint *point_curr, *point_prev;
+ float (*diff_points)[2], (*fp)[2];
+ const int tot = BKE_mask_spline_differentiate_calc_total(spline, resol);
+ int a;
+
+ if (spline->tot_point <= 1) {
+ /* nothing to differentiate */
+ *tot_diff_point = 0;
+ return NULL;
+ }
+
+ /* len+1 because of 'forward_diff_bezier' function */
+ *tot_diff_point = tot;
+ diff_points = fp = MEM_mallocN((tot + 1) * sizeof(*diff_points), "mask spline vets");
+
+ a = spline->tot_point - 1;
+ if (spline->flag & MASK_SPLINE_CYCLIC)
+ a++;
+
+ point_prev = points_array;
+ point_curr = point_prev + 1;
+
+ while (a--) {
+ BezTriple *bezt_prev;
+ BezTriple *bezt_curr;
+ int j;
+
+ if (a == 0 && (spline->flag & MASK_SPLINE_CYCLIC))
+ point_curr = points_array;
+
+ bezt_prev = &point_prev->bezt;
+ bezt_curr = &point_curr->bezt;
+
+ for (j = 0; j < 2; j++) {
+ BKE_curve_forward_diff_bezier(bezt_prev->vec[1][j], bezt_prev->vec[2][j],
+ bezt_curr->vec[0][j], bezt_curr->vec[1][j],
+ &(*fp)[j], resol, 2 * sizeof(float));
+ }
+
+ fp += resol;
+
+ if (a == 0 && (spline->flag & MASK_SPLINE_CYCLIC) == 0) {
+ copy_v2_v2(*fp, bezt_curr->vec[1]);
+ }
+
+ point_prev = point_curr;
+ point_curr++;
+ }
+
+ return diff_points;
+}
+
+float (*BKE_mask_spline_differentiate_with_resolution(MaskSpline *spline, int width, int height,
+ int *tot_diff_point
+ ))[2]
+{
+ int unsigned resol = BKE_mask_spline_resolution(spline, width, height);
+
+ return BKE_mask_spline_differentiate_with_resolution_ex(spline, tot_diff_point, resol);
+}
+
+float (*BKE_mask_spline_differentiate(MaskSpline *spline, int *tot_diff_point))[2]
+{
+ return BKE_mask_spline_differentiate_with_resolution(spline, 0, 0, tot_diff_point);
+}
+
+/* ** feather points self-intersection collapse routine ** */
+
+typedef struct FeatherEdgesBucket {
+ int tot_segment;
+ int (*segments)[2];
+ int alloc_segment;
+} FeatherEdgesBucket;
+
+static void feather_bucket_add_edge(FeatherEdgesBucket *bucket, int start, int end)
+{
+ const int alloc_delta = 256;
+
+ if (bucket->tot_segment >= bucket->alloc_segment) {
+ if (!bucket->segments) {
+ bucket->segments = MEM_callocN(alloc_delta * sizeof(*bucket->segments), "feather bucket segments");
+ }
+ else {
+ bucket->segments = MEM_reallocN(bucket->segments,
+ (alloc_delta + bucket->tot_segment) * sizeof(*bucket->segments));
+ }
+
+ bucket->alloc_segment += alloc_delta;
+ }
+
+ bucket->segments[bucket->tot_segment][0] = start;
+ bucket->segments[bucket->tot_segment][1] = end;
+
+ bucket->tot_segment++;
+}
+
+static void feather_bucket_check_intersect(float (*feather_points)[2], int tot_feather_point, FeatherEdgesBucket *bucket,
+ int cur_a, int cur_b)
+{
+ int i;
+
+ float *v1 = (float *) feather_points[cur_a];
+ float *v2 = (float *) feather_points[cur_b];
+
+ for (i = 0; i < bucket->tot_segment; i++) {
+ int check_a = bucket->segments[i][0];
+ int check_b = bucket->segments[i][1];
+
+ float *v3 = (float *) feather_points[check_a];
+ float *v4 = (float *) feather_points[check_b];
+
+ if (check_a >= cur_a - 1 || cur_b == check_a)
+ continue;
+
+ if (isect_seg_seg_v2(v1, v2, v3, v4)) {
+ int k;
+ float p[2];
+ float min_a[2], max_a[2];
+ float min_b[2], max_b[2];
+
+ isect_seg_seg_v2_point(v1, v2, v3, v4, p);
+
+ INIT_MINMAX2(min_a, max_a);
+ INIT_MINMAX2(min_b, max_b);
+
+ /* collapse loop with smaller AABB */
+ for (k = 0; k < tot_feather_point; k++) {
+ if (k >= check_b && k <= cur_a) {
+ DO_MINMAX2(feather_points[k], min_a, max_a);
+ }
+ else {
+ DO_MINMAX2(feather_points[k], min_b, max_b);
+ }
+ }
+
+ if (max_a[0] - min_a[0] < max_b[0] - min_b[0] ||
+ max_a[1] - min_a[1] < max_b[1] - min_b[1])
+ {
+ for (k = check_b; k <= cur_a; k++) {
+ copy_v2_v2(feather_points[k], p);
+ }
+ }
+ else {
+ for (k = 0; k <= check_a; k++) {
+ copy_v2_v2(feather_points[k], p);
+ }
+
+ if (cur_b != 0) {
+ for (k = cur_b; k < tot_feather_point; k++) {
+ copy_v2_v2(feather_points[k], p);
+ }
+ }
+ }
+ }
+ }
+}
+
+static int feather_bucket_index_from_coord(float co[2], const float min[2], const float bucket_scale[2],
+ const int buckets_per_side)
+{
+ int x = (int) ((co[0] - min[0]) * bucket_scale[0]);
+ int y = (int) ((co[1] - min[1]) * bucket_scale[1]);
+
+ if (x == buckets_per_side)
+ x--;
+
+ if (y == buckets_per_side)
+ y--;
+
+ return y * buckets_per_side + x;
+}
+
+static void feather_bucket_get_diagonal(FeatherEdgesBucket *buckets, int start_bucket_index, int end_bucket_index,
+ int buckets_per_side, FeatherEdgesBucket **diagonal_bucket_a_r,
+ FeatherEdgesBucket **diagonal_bucket_b_r)
+{
+ int start_bucket_x = start_bucket_index % buckets_per_side;
+ int start_bucket_y = start_bucket_index / buckets_per_side;
+
+ int end_bucket_x = end_bucket_index % buckets_per_side;
+ int end_bucket_y = end_bucket_index / buckets_per_side;
+
+ int diagonal_bucket_a_index = start_bucket_y * buckets_per_side + end_bucket_x;
+ int diagonal_bucket_b_index = end_bucket_y * buckets_per_side + start_bucket_x;
+
+ *diagonal_bucket_a_r = &buckets[diagonal_bucket_a_index];
+ *diagonal_bucket_b_r = &buckets[diagonal_bucket_b_index];
+}
+
+void BKE_mask_spline_feather_collapse_inner_loops(MaskSpline *spline, float (*feather_points)[2], const int tot_feather_point)
+{
+#define BUCKET_INDEX(co) \
+ feather_bucket_index_from_coord(co, min, bucket_scale, buckets_per_side)
+
+ int buckets_per_side, tot_bucket;
+ float bucket_size, bucket_scale[2];
+
+ FeatherEdgesBucket *buckets;
+
+ int i;
+ float min[2], max[2];
+ float max_delta_x = -1.0f, max_delta_y = -1.0f, max_delta;
+
+ if (tot_feather_point < 4) {
+ /* self-intersection works only for quads at least,
+ * in other cases polygon can't be self-intersecting anyway
+ */
+
+ return;
+ }
+
+ /* find min/max corners of mask to build buckets in that space */
+ INIT_MINMAX2(min, max);
+
+ for (i = 0; i < tot_feather_point; i++) {
+ int next = i + 1;
+ float delta;
+
+ DO_MINMAX2(feather_points[i], min, max);
+
+ if (next == tot_feather_point) {
+ if (spline->flag & MASK_SPLINE_CYCLIC)
+ next = 0;
+ else
+ break;
+ }
+
+ delta = fabsf(feather_points[i][0] - feather_points[next][0]);
+ if (delta > max_delta_x)
+ max_delta_x = delta;
+
+ delta = fabsf(feather_points[i][1] - feather_points[next][1]);
+ if (delta > max_delta_y)
+ max_delta_y = delta;
+ }
+
+ /* prevent divisionsby zero by ensuring bounding box is not collapsed */
+ if (max[0] - min[0] < FLT_EPSILON) {
+ max[0] += 0.01f;
+ min[0] -= 0.01f;
+ }
+
+ if (max[1] - min[1] < FLT_EPSILON) {
+ max[1] += 0.01f;
+ min[1] -= 0.01f;
+ }
+
+ /* use dynamically calculated buckets per side, so we likely wouldn't
+ * run into a situation when segment doesn't fit two buckets which is
+ * pain collecting candidates for intersection
+ */
+
+ max_delta_x /= max[0] - min[0];
+ max_delta_y /= max[1] - min[1];
+
+ max_delta = MAX2(max_delta_x, max_delta_y);
+
+ buckets_per_side = MIN2(512, 0.9f / max_delta);
+
+ if (buckets_per_side == 0) {
+ /* happens when some segment fills the whole bounding box across some of dimension */
+
+ buckets_per_side = 1;
+ }
+
+ tot_bucket = buckets_per_side * buckets_per_side;
+ bucket_size = 1.0f / buckets_per_side;
+
+ /* pre-compute multipliers, to save mathematical operations in loops */
+ bucket_scale[0] = 1.0f / ((max[0] - min[0]) * bucket_size);
+ bucket_scale[1] = 1.0f / ((max[1] - min[1]) * bucket_size);
+
+ /* fill in buckets' edges */
+ buckets = MEM_callocN(sizeof(FeatherEdgesBucket) * tot_bucket, "feather buckets");
+
+ for (i = 0; i < tot_feather_point; i++) {
+ int start = i, end = i + 1;
+ int start_bucket_index, end_bucket_index;
+
+ if (end == tot_feather_point) {
+ if (spline->flag & MASK_SPLINE_CYCLIC)
+ end = 0;
+ else
+ break;
+ }
+
+ start_bucket_index = BUCKET_INDEX(feather_points[start]);
+ end_bucket_index = BUCKET_INDEX(feather_points[end]);
+
+ feather_bucket_add_edge(&buckets[start_bucket_index], start, end);
+
+ if (start_bucket_index != end_bucket_index) {
+ FeatherEdgesBucket *end_bucket = &buckets[end_bucket_index];
+ FeatherEdgesBucket *diagonal_bucket_a, *diagonal_bucket_b;
+
+ feather_bucket_get_diagonal(buckets, start_bucket_index, end_bucket_index, buckets_per_side,
+ &diagonal_bucket_a, &diagonal_bucket_b);
+
+ feather_bucket_add_edge(end_bucket, start, end);
+ feather_bucket_add_edge(diagonal_bucket_a, start, end);
+ feather_bucket_add_edge(diagonal_bucket_a, start, end);
+ }
+ }
+
+ /* check all edges for intersection with edges from their buckets */
+ for (i = 0; i < tot_feather_point; i++) {
+ int cur_a = i, cur_b = i + 1;
+ int start_bucket_index, end_bucket_index;
+
+ FeatherEdgesBucket *start_bucket;
+
+ if (cur_b == tot_feather_point)
+ cur_b = 0;
+
+ start_bucket_index = BUCKET_INDEX(feather_points[cur_a]);
+ end_bucket_index = BUCKET_INDEX(feather_points[cur_b]);
+
+ start_bucket = &buckets[start_bucket_index];
+
+ feather_bucket_check_intersect(feather_points, tot_feather_point, start_bucket, cur_a, cur_b);
+
+ if (start_bucket_index != end_bucket_index) {
+ FeatherEdgesBucket *end_bucket = &buckets[end_bucket_index];
+ FeatherEdgesBucket *diagonal_bucket_a, *diagonal_bucket_b;
+
+ feather_bucket_get_diagonal(buckets, start_bucket_index, end_bucket_index, buckets_per_side,
+ &diagonal_bucket_a, &diagonal_bucket_b);
+
+ feather_bucket_check_intersect(feather_points, tot_feather_point, end_bucket, cur_a, cur_b);
+ feather_bucket_check_intersect(feather_points, tot_feather_point, diagonal_bucket_a, cur_a, cur_b);
+ feather_bucket_check_intersect(feather_points, tot_feather_point, diagonal_bucket_b, cur_a, cur_b);
+ }
+ }
+
+ /* free buckets */
+ for (i = 0; i < tot_bucket; i++) {
+ if (buckets[i].segments)
+ MEM_freeN(buckets[i].segments);
+ }
+
+ MEM_freeN(buckets);
+
+#undef BUCKET_INDEX
+}
+
+/** only called from #BKE_mask_spline_feather_differentiated_points_with_resolution_ex() ! */
+static float (*mask_spline_feather_differentiated_points_with_resolution_ex__even(MaskSpline *spline,
+ int *tot_feather_point,
+ const unsigned int resol,
+ const int do_feather_isect
+ ))[2]
+{
+ MaskSplinePoint *points_array = BKE_mask_spline_point_array(spline);
+ MaskSplinePoint *point_curr, *point_prev;
+ float (*feather)[2], (*fp)[2];
+
+ const int tot = BKE_mask_spline_differentiate_calc_total(spline, resol);
+ int a;
+
+ /* tot+1 because of 'forward_diff_bezier' function */
+ feather = fp = MEM_mallocN((tot + 1) * sizeof(*feather), "mask spline feather diff points");
+
+ a = spline->tot_point - 1;
+ if (spline->flag & MASK_SPLINE_CYCLIC)
+ a++;
+
+ point_prev = points_array;
+ point_curr = point_prev + 1;
+
+ while (a--) {
+ /* BezTriple *bezt_prev; */ /* UNUSED */
+ /* BezTriple *bezt_curr; */ /* UNUSED */
+ int j;
+
+ if (a == 0 && (spline->flag & MASK_SPLINE_CYCLIC))
+ point_curr = points_array;
+
+
+ /* bezt_prev = &point_prev->bezt; */
+ /* bezt_curr = &point_curr->bezt; */
+
+ for (j = 0; j < resol; j++, fp++) {
+ float u = (float) j / resol, weight;
+ float co[2], n[2];
+
+ /* TODO - these calls all calculate similar things
+ * could be unified for some speed */
+ BKE_mask_point_segment_co(spline, point_prev, u, co);
+ BKE_mask_point_normal(spline, point_prev, u, n);
+ weight = BKE_mask_point_weight(spline, point_prev, u);
+
+ madd_v2_v2v2fl(*fp, co, n, weight);
+ }
+
+ if (a == 0 && (spline->flag & MASK_SPLINE_CYCLIC) == 0) {
+ float u = 1.0f, weight;
+ float co[2], n[2];
+
+ BKE_mask_point_segment_co(spline, point_prev, u, co);
+ BKE_mask_point_normal(spline, point_prev, u, n);
+ weight = BKE_mask_point_weight(spline, point_prev, u);
+
+ madd_v2_v2v2fl(*fp, co, n, weight);
+ }
+
+ point_prev = point_curr;
+ point_curr++;
+ }
+
+ *tot_feather_point = tot;
+
+ if ((spline->flag & MASK_SPLINE_NOINTERSECT) && do_feather_isect) {
+ BKE_mask_spline_feather_collapse_inner_loops(spline, feather, tot);
+ }
+
+ return feather;
+}
+
+/** only called from #BKE_mask_spline_feather_differentiated_points_with_resolution_ex() ! */
+static float (*mask_spline_feather_differentiated_points_with_resolution_ex__double(MaskSpline *spline,
+ int *tot_feather_point,
+ const unsigned int resol,
+ const int do_feather_isect
+ ))[2]
+{
+ MaskSplinePoint *points_array = BKE_mask_spline_point_array(spline);
+
+ MaskSplinePoint *point_curr, *point_prev;
+ float (*feather)[2], (*fp)[2];
+ const int tot = BKE_mask_spline_differentiate_calc_total(spline, resol);
+ int a;
+
+ if (spline->tot_point <= 1) {
+ /* nothing to differentiate */
+ *tot_feather_point = 0;
+ return NULL;
+ }
+
+ /* len+1 because of 'forward_diff_bezier' function */
+ *tot_feather_point = tot;
+ feather = fp = MEM_mallocN((tot + 1) * sizeof(*feather), "mask spline vets");
+
+ a = spline->tot_point - 1;
+ if (spline->flag & MASK_SPLINE_CYCLIC)
+ a++;
+
+ point_prev = points_array;
+ point_curr = point_prev + 1;
+
+ while (a--) {
+ BezTriple local_prevbezt;
+ BezTriple local_bezt;
+ float point_prev_n[2], point_curr_n[2], tvec[2];
+ float weight_prev, weight_curr;
+ float len_base, len_feather, len_scalar;
+
+ BezTriple *bezt_prev;
+ BezTriple *bezt_curr;
+ int j;
+
+ if (a == 0 && (spline->flag & MASK_SPLINE_CYCLIC))
+ point_curr = points_array;
+
+ bezt_prev = &point_prev->bezt;
+ bezt_curr = &point_curr->bezt;
+
+ /* modified copy for feather */
+ local_prevbezt = *bezt_prev;
+ local_bezt = *bezt_curr;
+
+ bezt_prev = &local_prevbezt;
+ bezt_curr = &local_bezt;
+
+ /* calc the normals */
+ sub_v2_v2v2(tvec, bezt_prev->vec[1], bezt_prev->vec[0]);
+ normalize_v2(tvec);
+ point_prev_n[0] = -tvec[1];
+ point_prev_n[1] = tvec[0];
+
+ sub_v2_v2v2(tvec, bezt_curr->vec[1], bezt_curr->vec[0]);
+ normalize_v2(tvec);
+ point_curr_n[0] = -tvec[1];
+ point_curr_n[1] = tvec[0];
+
+ weight_prev = bezt_prev->weight;
+ weight_curr = bezt_curr->weight;
+
+ mul_v2_fl(point_prev_n, weight_prev);
+ mul_v2_fl(point_curr_n, weight_curr);
+
+ /* before we transform verts */
+ len_base = len_v2v2(bezt_prev->vec[1], bezt_curr->vec[1]);
+
+ // add_v2_v2(bezt_prev->vec[0], point_prev_n); // not needed
+ add_v2_v2(bezt_prev->vec[1], point_prev_n);
+ add_v2_v2(bezt_prev->vec[2], point_prev_n);
+
+ add_v2_v2(bezt_curr->vec[0], point_curr_n);
+ add_v2_v2(bezt_curr->vec[1], point_curr_n);
+ // add_v2_v2(bezt_curr->vec[2], point_curr_n); // not needed
+
+ len_feather = len_v2v2(bezt_prev->vec[1], bezt_curr->vec[1]);
+
+ /* scale by chane in length */
+ len_scalar = len_feather / len_base;
+ dist_ensure_v2_v2fl(bezt_prev->vec[2], bezt_prev->vec[1], len_scalar * len_v2v2(bezt_prev->vec[2], bezt_prev->vec[1]));
+ dist_ensure_v2_v2fl(bezt_curr->vec[0], bezt_curr->vec[1], len_scalar * len_v2v2(bezt_curr->vec[0], bezt_curr->vec[1]));
+
+
+ for (j = 0; j < 2; j++) {
+ BKE_curve_forward_diff_bezier(bezt_prev->vec[1][j], bezt_prev->vec[2][j],
+ bezt_curr->vec[0][j], bezt_curr->vec[1][j],
+ &(*fp)[j], resol, 2 * sizeof(float));
+ }
+
+
+ /* scale by the uw's */
+ if (point_prev->tot_uw) {
+ for (j = 0; j < resol; j++, fp++) {
+ float u = (float) j / resol;
+ float weight_uw, weight_scalar;
+ float co[2];
+
+ /* TODO - these calls all calculate similar things
+ * could be unified for some speed */
+ BKE_mask_point_segment_co(spline, point_prev, u, co);
+
+ weight_uw = BKE_mask_point_weight(spline, point_prev, u);
+ weight_scalar = BKE_mask_point_weight_scalar(spline, point_prev, u);
+
+ dist_ensure_v2_v2fl(*fp, co, len_v2v2(*fp, co) * (weight_uw / weight_scalar));
+ }
+ }
+ else {
+ fp += resol;
+ }
+
+ if (a == 0 && (spline->flag & MASK_SPLINE_CYCLIC) == 0) {
+ copy_v2_v2(*fp, bezt_curr->vec[1]);
+ }
+
+ point_prev = point_curr;
+ point_curr++;
+ }
+
+ if ((spline->flag & MASK_SPLINE_NOINTERSECT) && do_feather_isect) {
+ BKE_mask_spline_feather_collapse_inner_loops(spline, feather, tot);
+ }
+
+ return feather;
+}
+
+/**
+ * values align with #BKE_mask_spline_differentiate_with_resolution_ex
+ * when \a resol arguments match.
+ */
+float (*BKE_mask_spline_feather_differentiated_points_with_resolution_ex(MaskSpline *spline,
+ int *tot_feather_point,
+ const unsigned int resol,
+ const int do_feather_isect
+ ))[2]
+{
+ switch (spline->offset_mode) {
+ case MASK_SPLINE_OFFSET_EVEN:
+ return mask_spline_feather_differentiated_points_with_resolution_ex__even(spline, tot_feather_point, resol, do_feather_isect);
+ break;
+ case MASK_SPLINE_OFFSET_SMOOTH:
+ default:
+ return mask_spline_feather_differentiated_points_with_resolution_ex__double(spline, tot_feather_point, resol, do_feather_isect);
+ break;
+ }
+}
+
+float (*BKE_mask_spline_feather_differentiated_points_with_resolution(MaskSpline *spline, int width, int height,
+ int *tot_feather_point, const int do_feather_isect))[2]
+{
+ unsigned int resol = BKE_mask_spline_feather_resolution(spline, width, height);
+
+ return BKE_mask_spline_feather_differentiated_points_with_resolution_ex(spline, tot_feather_point, resol, do_feather_isect);
+}
+
+float (*BKE_mask_spline_feather_differentiated_points(MaskSpline *spline, int *tot_feather_point))[2]
+{
+ return BKE_mask_spline_feather_differentiated_points_with_resolution(spline, 0, 0, tot_feather_point, TRUE);
+}
+
+float (*BKE_mask_spline_feather_points(MaskSpline *spline, int *tot_feather_point))[2]
+{
+ MaskSplinePoint *points_array = BKE_mask_spline_point_array(spline);
+
+ int i, tot = 0;
+ float (*feather)[2], (*fp)[2];
+
+ /* count */
+ for (i = 0; i < spline->tot_point; i++) {
+ MaskSplinePoint *point = &points_array[i];
+
+ tot += point->tot_uw + 1;
+ }
+
+ /* create data */
+ feather = fp = MEM_mallocN(tot * sizeof(*feather), "mask spline feather points");
+
+ for (i = 0; i < spline->tot_point; i++) {
+ MaskSplinePoint *point = &points_array[i];
+ BezTriple *bezt = &point->bezt;
+ float weight, n[2];
+ int j;
+
+ BKE_mask_point_normal(spline, point, 0.0f, n);
+ weight = BKE_mask_point_weight(spline, point, 0.0f);
+
+ madd_v2_v2v2fl(*fp, bezt->vec[1], n, weight);
+ fp++;
+
+ for (j = 0; j < point->tot_uw; j++) {
+ float u = point->uw[j].u;
+ float co[2];
+
+ BKE_mask_point_segment_co(spline, point, u, co);
+ BKE_mask_point_normal(spline, point, u, n);
+ weight = BKE_mask_point_weight(spline, point, u);
+
+ madd_v2_v2v2fl(*fp, co, n, weight);
+ fp++;
+ }
+ }
+
+ *tot_feather_point = tot;
+
+ return feather;
+}
+
+/* *** mask point functions which involve evaluation *** */
+float *BKE_mask_point_segment_feather_diff_with_resolution(MaskSpline *spline, MaskSplinePoint *point,
+ int width, int height,
+ unsigned int *tot_feather_point)
+{
+ float *feather, *fp;
+ unsigned int resol = BKE_mask_spline_feather_resolution(spline, width, height);
+ unsigned int i;
+
+ feather = fp = MEM_callocN(2 * resol * sizeof(float), "mask point spline feather diff points");
+
+ for (i = 0; i < resol; i++, fp += 2) {
+ float u = (float)(i % resol) / resol, weight;
+ float co[2], n[2];
+
+ BKE_mask_point_segment_co(spline, point, u, co);
+ BKE_mask_point_normal(spline, point, u, n);
+ weight = BKE_mask_point_weight(spline, point, u);
+
+ fp[0] = co[0] + n[0] * weight;
+ fp[1] = co[1] + n[1] * weight;
+ }
+
+ *tot_feather_point = resol;
+
+ return feather;
+}
+
+float *BKE_mask_point_segment_feather_diff(MaskSpline *spline, MaskSplinePoint *point, unsigned int *tot_feather_point)
+{
+ return BKE_mask_point_segment_feather_diff_with_resolution(spline, point, 0, 0, tot_feather_point);
+}
+
+float *BKE_mask_point_segment_diff_with_resolution(MaskSpline *spline, MaskSplinePoint *point,
+ int width, int height, unsigned int *tot_diff_point)
+{
+ MaskSplinePoint *points_array = BKE_mask_spline_point_array_from_point(spline, point);
+
+ BezTriple *bezt, *bezt_next;
+ float *diff_points, *fp;
+ int j, resol = BKE_mask_spline_resolution(spline, width, height);
+
+ bezt = &point->bezt;
+ bezt_next = BKE_mask_spline_point_next_bezt(spline, points_array, point);
+
+ if (!bezt_next)
+ return NULL;
+
+ /* resol+1 because of 'forward_diff_bezier' function */
+ *tot_diff_point = resol + 1;
+ diff_points = fp = MEM_callocN((resol + 1) * 2 * sizeof(float), "mask segment vets");
+
+ for (j = 0; j < 2; j++) {
+ BKE_curve_forward_diff_bezier(bezt->vec[1][j], bezt->vec[2][j],
+ bezt_next->vec[0][j], bezt_next->vec[1][j],
+ fp + j, resol, 2 * sizeof(float));
+ }
+
+ copy_v2_v2(fp + 2 * resol, bezt_next->vec[1]);
+
+ return diff_points;
+}
+
+float *BKE_mask_point_segment_diff(MaskSpline *spline, MaskSplinePoint *point, unsigned int *tot_diff_point)
+{
+ return BKE_mask_point_segment_diff_with_resolution(spline, point, 0, 0, tot_diff_point);
+}
diff --git a/source/blender/blenkernel/intern/mask_rasterize.c b/source/blender/blenkernel/intern/mask_rasterize.c
new file mode 100644
index 00000000000..13ad9962aff
--- /dev/null
+++ b/source/blender/blenkernel/intern/mask_rasterize.c
@@ -0,0 +1,1398 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2012 Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Blender Foundation,
+ * Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/blenkernel/intern/mask_rasterize.c
+ * \ingroup bke
+ *
+ * This module exposes a rasterizer that works as a black box - implementation details are confined to this file,
+ *
+ * The basic method to access is:
+ * - create & initialize a handle from a #Mask datablock.
+ * - execute pixel lookups.
+ * - free the handle.
+ *
+ * This file is admittedly a bit confusticated, in quite few areas speed was chosen over readability,
+ * though it is commented - so shouldn't be so hard to see whats going on.
+ *
+ *
+ * Implementation:
+ *
+ * To rasterize the mask its converted into geometry that use a ray-cast for each pixel lookup.
+ *
+ * Initially 'kdopbvh' was used but this ended up being too slow.
+ *
+ * To gain some extra speed we take advantage of a few shortcuts that can be made rasterizing masks specifically.
+ * - all triangles are known to be completely white - so no depth check is done on triangle intersection.
+ * - all quads are known to be feather outlines - the 1 and 0 depths are known by the vertex order in the quad,
+ * - there is no color - just a value for each mask pixel.
+ * - the mask spacial structure always maps to space 0-1 on X and Y axis.
+ * - bucketing is used to speed up lookups for geometry.
+ *
+ * Other Details:
+ * - used unsigned values all over for some extra speed on some arch's.
+ * - anti-aliasing is faked, just ensuring at least one pixel feather - avoids oversampling.
+ * - initializing the spacial structure doesn't need to be as optimized as pixel lookups are.
+ * - mask lookups need not be pixel aligned so any sub-pixel values from x/y (0 - 1), can be found.
+ * (perhaps masks can be used as a vector texture in 3D later on)
+ *
+ *
+ * Currently, to build the spacial structure we have to calculate the total number of faces ahead of time.
+ *
+ * This is getting a bit complicated with the addition of unfilled splines and end capping -
+ * If large changes are needed here we would be better off using an iterable
+ * BLI_mempool for triangles and converting to a contiguous array afterwards.
+ *
+ * - Campbell
+ */
+
+#include "MEM_guardedalloc.h"
+
+#include "DNA_vec_types.h"
+#include "DNA_mask_types.h"
+#include "DNA_scene_types.h"
+
+#include "BLI_utildefines.h"
+#include "BLI_scanfill.h"
+#include "BLI_memarena.h"
+
+#include "BLI_math.h"
+#include "BLI_rect.h"
+#include "BLI_listbase.h"
+#include "BLI_linklist.h"
+
+#include "BKE_mask.h"
+
+/* this is rather and annoying hack, use define to isolate it.
+ * problem is caused by scanfill removing edges on us. */
+#define USE_SCANFILL_EDGE_WORKAROUND
+
+#define SPLINE_RESOL_CAP_PER_PIXEL 2
+#define SPLINE_RESOL_CAP_MIN 8
+#define SPLINE_RESOL_CAP_MAX 64
+
+/* found this gives best performance for high detail masks, values between 2 and 8 work best */
+#define BUCKET_PIXELS_PER_CELL 4
+
+#define SF_EDGE_IS_BOUNDARY 0xff
+#define SF_KEYINDEX_TEMP_ID ((unsigned int) -1)
+
+#define TRI_TERMINATOR_ID ((unsigned int) -1)
+#define TRI_VERT ((unsigned int) -1)
+
+/* for debugging add... */
+#ifndef NDEBUG
+/* printf("%u %u %u %u\n", _t[0], _t[1], _t[2], _t[3]); \ */
+# define FACE_ASSERT(face, vert_max) \
+{ \
+ unsigned int *_t = face; \
+ BLI_assert(_t[0] < vert_max); \
+ BLI_assert(_t[1] < vert_max); \
+ BLI_assert(_t[2] < vert_max); \
+ BLI_assert(_t[3] < vert_max || _t[3] == TRI_VERT); \
+} (void)0
+#else
+ /* do nothing */
+# define FACE_ASSERT(face, vert_max)
+#endif
+
+static void rotate_point_v2(float r_p[2], const float p[2], const float cent[2], const float angle, const float asp[2])
+{
+ const float s = sinf(angle);
+ const float c = cosf(angle);
+ float p_new[2];
+
+ /* translate point back to origin */
+ r_p[0] = (p[0] - cent[0]) / asp[0];
+ r_p[1] = (p[1] - cent[1]) / asp[1];
+
+ /* rotate point */
+ p_new[0] = ((r_p[0] * c) - (r_p[1] * s)) * asp[0];
+ p_new[1] = ((r_p[0] * s) + (r_p[1] * c)) * asp[1];
+
+ /* translate point back */
+ r_p[0] = p_new[0] + cent[0];
+ r_p[1] = p_new[1] + cent[1];
+}
+
+BLI_INLINE unsigned int clampis_uint(const unsigned int v, const unsigned int min, const unsigned int max)
+{
+ return v < min ? min : (v > max ? max : v);
+}
+
+/* --------------------------------------------------------------------- */
+/* local structs for mask rasterizeing */
+/* --------------------------------------------------------------------- */
+
+/**
+ * A single #MaskRasterHandle contains multiple #MaskRasterLayer's,
+ * each #MaskRasterLayer does its own lookup which contributes to
+ * the final pixel with its own blending mode and the final pixel
+ * is blended between these.
+ */
+
+/* internal use only */
+typedef struct MaskRasterLayer {
+ /* geometry */
+ unsigned int face_tot;
+ unsigned int (*face_array)[4]; /* access coords tri/quad */
+ float (*face_coords)[3]; /* xy, z 0-1 (1.0 == filled) */
+
+
+ /* 2d bounds (to quickly skip bucket lookup) */
+ rctf bounds;
+
+
+ /* buckets */
+ unsigned int **buckets_face;
+ /* cache divide and subtract */
+ float buckets_xy_scalar[2]; /* (1.0 / (buckets_width + FLT_EPSILON)) * buckets_x */
+ unsigned int buckets_x;
+ unsigned int buckets_y;
+
+
+ /* copied direct from #MaskLayer.--- */
+ /* blending options */
+ float alpha;
+ char blend;
+ char blend_flag;
+ char falloff;
+
+} MaskRasterLayer;
+
+typedef struct MaskRasterSplineInfo {
+ /* body of the spline */
+ unsigned int vertex_offset;
+ unsigned int vertex_total;
+
+ /* capping for non-filled, non cyclic splines */
+ unsigned int vertex_total_cap_head;
+ unsigned int vertex_total_cap_tail;
+
+ unsigned int is_cyclic;
+} MaskRasterSplineInfo;
+
+/**
+ * opaque local struct for mask pixel lookup, each MaskLayer needs one of these
+ */
+struct MaskRasterHandle {
+ MaskRasterLayer *layers;
+ unsigned int layers_tot;
+
+ /* 2d bounds (to quickly skip bucket lookup) */
+ rctf bounds;
+};
+
+/* --------------------------------------------------------------------- */
+/* alloc / free functions */
+/* --------------------------------------------------------------------- */
+
+MaskRasterHandle *BKE_maskrasterize_handle_new(void)
+{
+ MaskRasterHandle *mr_handle;
+
+ mr_handle = MEM_callocN(sizeof(MaskRasterHandle), STRINGIFY(MaskRasterHandle));
+
+ return mr_handle;
+}
+
+void BKE_maskrasterize_handle_free(MaskRasterHandle *mr_handle)
+{
+ const unsigned int layers_tot = mr_handle->layers_tot;
+ unsigned int i;
+ MaskRasterLayer *layer = mr_handle->layers;
+
+ for (i = 0; i < layers_tot; i++, layer++) {
+
+ if (layer->face_array) {
+ MEM_freeN(layer->face_array);
+ }
+
+ if (layer->face_coords) {
+ MEM_freeN(layer->face_coords);
+ }
+
+ if (layer->buckets_face) {
+ const unsigned int bucket_tot = layer->buckets_x * layer->buckets_y;
+ unsigned int bucket_index;
+ for (bucket_index = 0; bucket_index < bucket_tot; bucket_index++) {
+ unsigned int *face_index = layer->buckets_face[bucket_index];
+ if (face_index) {
+ MEM_freeN(face_index);
+ }
+ }
+
+ MEM_freeN(layer->buckets_face);
+ }
+ }
+
+ MEM_freeN(mr_handle->layers);
+ MEM_freeN(mr_handle);
+}
+
+
+static void maskrasterize_spline_differentiate_point_outset(float (*diff_feather_points)[2], float (*diff_points)[2],
+ const unsigned int tot_diff_point, const float ofs,
+ const short do_test)
+{
+ unsigned int k_prev = tot_diff_point - 2;
+ unsigned int k_curr = tot_diff_point - 1;
+ unsigned int k_next = 0;
+
+ unsigned int k;
+
+ float d_prev[2];
+ float d_next[2];
+ float d[2];
+
+ const float *co_prev;
+ const float *co_curr;
+ const float *co_next;
+
+ const float ofs_squared = ofs * ofs;
+
+ co_prev = diff_points[k_prev];
+ co_curr = diff_points[k_curr];
+ co_next = diff_points[k_next];
+
+ /* precalc */
+ sub_v2_v2v2(d_prev, co_prev, co_curr);
+ normalize_v2(d_prev);
+
+ for (k = 0; k < tot_diff_point; k++) {
+
+ /* co_prev = diff_points[k_prev]; */ /* precalc */
+ co_curr = diff_points[k_curr];
+ co_next = diff_points[k_next];
+
+ /* sub_v2_v2v2(d_prev, co_prev, co_curr); */ /* precalc */
+ sub_v2_v2v2(d_next, co_curr, co_next);
+
+ /* normalize_v2(d_prev); */ /* precalc */
+ normalize_v2(d_next);
+
+ if ((do_test == FALSE) ||
+ (len_squared_v2v2(diff_feather_points[k], diff_points[k]) < ofs_squared))
+ {
+
+ add_v2_v2v2(d, d_prev, d_next);
+
+ normalize_v2(d);
+
+ diff_feather_points[k][0] = diff_points[k][0] + ( d[1] * ofs);
+ diff_feather_points[k][1] = diff_points[k][1] + (-d[0] * ofs);
+ }
+
+ /* use next iter */
+ copy_v2_v2(d_prev, d_next);
+
+ /* k_prev = k_curr; */ /* precalc */
+ k_curr = k_next;
+ k_next++;
+ }
+}
+
+/* this function is not exact, sometimes it returns false positives,
+ * the main point of it is to clear out _almost_ all bucket/face non-intersections,
+ * returning TRUE in corner cases is ok but missing an intersection is NOT.
+ *
+ * method used
+ * - check if the center of the buckets bounding box is intersecting the face
+ * - if not get the max radius to a corner of the bucket and see how close we
+ * are to any of the triangle edges.
+ */
+static int layer_bucket_isect_test(MaskRasterLayer *layer, unsigned int face_index,
+ const unsigned int bucket_x, const unsigned int bucket_y,
+ const float bucket_size_x, const float bucket_size_y,
+ const float bucket_max_rad_squared)
+{
+ unsigned int *face = layer->face_array[face_index];
+ float (*cos)[3] = layer->face_coords;
+
+ const float xmin = layer->bounds.xmin + (bucket_size_x * bucket_x);
+ const float ymin = layer->bounds.ymin + (bucket_size_y * bucket_y);
+ const float xmax = xmin + bucket_size_x;
+ const float ymax = ymin + bucket_size_y;
+
+ const float cent[2] = {(xmin + xmax) * 0.5f,
+ (ymin + ymax) * 0.5f};
+
+ if (face[3] == TRI_VERT) {
+ const float *v1 = cos[face[0]];
+ const float *v2 = cos[face[1]];
+ const float *v3 = cos[face[2]];
+
+ if (isect_point_tri_v2(cent, v1, v2, v3)) {
+ return TRUE;
+ }
+ else {
+ if ((dist_squared_to_line_segment_v2(cent, v1, v2) < bucket_max_rad_squared) ||
+ (dist_squared_to_line_segment_v2(cent, v2, v3) < bucket_max_rad_squared) ||
+ (dist_squared_to_line_segment_v2(cent, v3, v1) < bucket_max_rad_squared))
+ {
+ return TRUE;
+ }
+ else {
+ // printf("skip tri\n");
+ return FALSE;
+ }
+ }
+
+ }
+ else {
+ const float *v1 = cos[face[0]];
+ const float *v2 = cos[face[1]];
+ const float *v3 = cos[face[2]];
+ const float *v4 = cos[face[3]];
+
+ if (isect_point_tri_v2(cent, v1, v2, v3)) {
+ return TRUE;
+ }
+ else if (isect_point_tri_v2(cent, v1, v3, v4)) {
+ return TRUE;
+ }
+ else {
+ if ((dist_squared_to_line_segment_v2(cent, v1, v2) < bucket_max_rad_squared) ||
+ (dist_squared_to_line_segment_v2(cent, v2, v3) < bucket_max_rad_squared) ||
+ (dist_squared_to_line_segment_v2(cent, v3, v4) < bucket_max_rad_squared) ||
+ (dist_squared_to_line_segment_v2(cent, v4, v1) < bucket_max_rad_squared))
+ {
+ return TRUE;
+ }
+ else {
+ // printf("skip quad\n");
+ return FALSE;
+ }
+ }
+ }
+}
+
+static void layer_bucket_init_dummy(MaskRasterLayer *layer)
+{
+ layer->face_tot = 0;
+ layer->face_coords = NULL;
+ layer->face_array = NULL;
+
+ layer->buckets_x = 0;
+ layer->buckets_y = 0;
+
+ layer->buckets_xy_scalar[0] = 0.0f;
+ layer->buckets_xy_scalar[1] = 0.0f;
+
+ layer->buckets_face = NULL;
+
+ BLI_rctf_init(&layer->bounds, -1.0f, -1.0f, -1.0f, -1.0f);
+}
+
+static void layer_bucket_init(MaskRasterLayer *layer, const float pixel_size)
+{
+ MemArena *arena = BLI_memarena_new(1 << 16, __func__);
+
+ const float bucket_dim_x = BLI_rctf_size_x(&layer->bounds);
+ const float bucket_dim_y = BLI_rctf_size_y(&layer->bounds);
+
+ layer->buckets_x = (bucket_dim_x / pixel_size) / (float)BUCKET_PIXELS_PER_CELL;
+ layer->buckets_y = (bucket_dim_y / pixel_size) / (float)BUCKET_PIXELS_PER_CELL;
+
+// printf("bucket size %ux%u\n", layer->buckets_x, layer->buckets_y);
+
+ CLAMP(layer->buckets_x, 8, 512);
+ CLAMP(layer->buckets_y, 8, 512);
+
+ layer->buckets_xy_scalar[0] = (1.0f / (bucket_dim_x + FLT_EPSILON)) * layer->buckets_x;
+ layer->buckets_xy_scalar[1] = (1.0f / (bucket_dim_y + FLT_EPSILON)) * layer->buckets_y;
+
+ {
+ /* width and height of each bucket */
+ const float bucket_size_x = (bucket_dim_x + FLT_EPSILON) / layer->buckets_x;
+ const float bucket_size_y = (bucket_dim_y + FLT_EPSILON) / layer->buckets_y;
+ const float bucket_max_rad = (maxf(bucket_size_x, bucket_size_y) * M_SQRT2) + FLT_EPSILON;
+ const float bucket_max_rad_squared = bucket_max_rad * bucket_max_rad;
+
+ unsigned int *face = &layer->face_array[0][0];
+ float (*cos)[3] = layer->face_coords;
+
+ const unsigned int bucket_tot = layer->buckets_x * layer->buckets_y;
+ LinkNode **bucketstore = MEM_callocN(bucket_tot * sizeof(LinkNode *), __func__);
+ unsigned int *bucketstore_tot = MEM_callocN(bucket_tot * sizeof(unsigned int), __func__);
+
+ unsigned int face_index;
+
+ for (face_index = 0; face_index < layer->face_tot; face_index++, face += 4) {
+ float xmin;
+ float xmax;
+ float ymin;
+ float ymax;
+
+ if (face[3] == TRI_VERT) {
+ const float *v1 = cos[face[0]];
+ const float *v2 = cos[face[1]];
+ const float *v3 = cos[face[2]];
+
+ xmin = minf(v1[0], minf(v2[0], v3[0]));
+ xmax = maxf(v1[0], maxf(v2[0], v3[0]));
+ ymin = minf(v1[1], minf(v2[1], v3[1]));
+ ymax = maxf(v1[1], maxf(v2[1], v3[1]));
+ }
+ else {
+ const float *v1 = cos[face[0]];
+ const float *v2 = cos[face[1]];
+ const float *v3 = cos[face[2]];
+ const float *v4 = cos[face[3]];
+
+ xmin = minf(v1[0], minf(v2[0], minf(v3[0], v4[0])));
+ xmax = maxf(v1[0], maxf(v2[0], maxf(v3[0], v4[0])));
+ ymin = minf(v1[1], minf(v2[1], minf(v3[1], v4[1])));
+ ymax = maxf(v1[1], maxf(v2[1], maxf(v3[1], v4[1])));
+ }
+
+
+ /* not essential but may as will skip any faces outside the view */
+ if (!((xmax < 0.0f) || (ymax < 0.0f) || (xmin > 1.0f) || (ymin > 1.0f))) {
+
+ CLAMP(xmin, 0.0f, 1.0f);
+ CLAMP(ymin, 0.0f, 1.0f);
+ CLAMP(xmax, 0.0f, 1.0f);
+ CLAMP(ymax, 0.0f, 1.0f);
+
+ {
+ unsigned int xi_min = (unsigned int) ((xmin - layer->bounds.xmin) * layer->buckets_xy_scalar[0]);
+ unsigned int xi_max = (unsigned int) ((xmax - layer->bounds.xmin) * layer->buckets_xy_scalar[0]);
+ unsigned int yi_min = (unsigned int) ((ymin - layer->bounds.ymin) * layer->buckets_xy_scalar[1]);
+ unsigned int yi_max = (unsigned int) ((ymax - layer->bounds.ymin) * layer->buckets_xy_scalar[1]);
+ void *face_index_void = SET_UINT_IN_POINTER(face_index);
+
+ unsigned int xi, yi;
+
+ /* this should _almost_ never happen but since it can in extreme cases,
+ * we have to clamp the values or we overrun the buffer and crash */
+ CLAMP(xi_min, 0, layer->buckets_x - 1);
+ CLAMP(xi_max, 0, layer->buckets_x - 1);
+ CLAMP(yi_min, 0, layer->buckets_y - 1);
+ CLAMP(yi_max, 0, layer->buckets_y - 1);
+
+ for (yi = yi_min; yi <= yi_max; yi++) {
+ unsigned int bucket_index = (layer->buckets_x * yi) + xi_min;
+ for (xi = xi_min; xi <= xi_max; xi++, bucket_index++) {
+ // unsigned int bucket_index = (layer->buckets_x * yi) + xi; /* correct but do in outer loop */
+
+ BLI_assert(xi < layer->buckets_x);
+ BLI_assert(yi < layer->buckets_y);
+ BLI_assert(bucket_index < bucket_tot);
+
+ /* check if the bucket intersects with the face */
+ /* note: there is a tradeoff here since checking box/tri intersections isn't
+ * as optimal as it could be, but checking pixels against faces they will never intersect
+ * with is likely the greater slowdown here - so check if the cell intersects the face */
+ if (layer_bucket_isect_test(layer, face_index,
+ xi, yi,
+ bucket_size_x, bucket_size_y,
+ bucket_max_rad_squared))
+ {
+ BLI_linklist_prepend_arena(&bucketstore[bucket_index], face_index_void, arena);
+ bucketstore_tot[bucket_index]++;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (1) {
+ /* now convert linknodes into arrays for faster per pixel access */
+ unsigned int **buckets_face = MEM_mallocN(bucket_tot * sizeof(unsigned int **), __func__);
+ unsigned int bucket_index;
+
+ for (bucket_index = 0; bucket_index < bucket_tot; bucket_index++) {
+ if (bucketstore_tot[bucket_index]) {
+ unsigned int *bucket = MEM_mallocN((bucketstore_tot[bucket_index] + 1) * sizeof(unsigned int),
+ __func__);
+ LinkNode *bucket_node;
+
+ buckets_face[bucket_index] = bucket;
+
+ for (bucket_node = bucketstore[bucket_index]; bucket_node; bucket_node = bucket_node->next) {
+ *bucket = GET_UINT_FROM_POINTER(bucket_node->link);
+ bucket++;
+ }
+ *bucket = TRI_TERMINATOR_ID;
+ }
+ else {
+ buckets_face[bucket_index] = NULL;
+ }
+ }
+
+ layer->buckets_face = buckets_face;
+ }
+
+ MEM_freeN(bucketstore);
+ MEM_freeN(bucketstore_tot);
+ }
+
+ BLI_memarena_free(arena);
+}
+
+void BKE_maskrasterize_handle_init(MaskRasterHandle *mr_handle, struct Mask *mask,
+ const int width, const int height,
+ const short do_aspect_correct, const short do_mask_aa,
+ const short do_feather)
+{
+ const rctf default_bounds = {0.0f, 1.0f, 0.0f, 1.0f};
+ const float pixel_size = 1.0f / MIN2(width, height);
+ const float asp_xy[2] = {(do_aspect_correct && width > height) ? (float)height / (float)width : 1.0f,
+ (do_aspect_correct && width < height) ? (float)width / (float)height : 1.0f};
+
+ const float zvec[3] = {0.0f, 0.0f, 1.0f};
+ MaskLayer *masklay;
+ unsigned int masklay_index;
+
+ mr_handle->layers_tot = BLI_countlist(&mask->masklayers);
+ mr_handle->layers = MEM_mallocN(sizeof(MaskRasterLayer) * mr_handle->layers_tot, STRINGIFY(MaskRasterLayer));
+ BLI_rctf_init_minmax(&mr_handle->bounds);
+
+ for (masklay = mask->masklayers.first, masklay_index = 0; masklay; masklay = masklay->next, masklay_index++) {
+
+ /* we need to store vertex ranges for open splines for filling */
+ unsigned int tot_splines;
+ MaskRasterSplineInfo *open_spline_ranges;
+ unsigned int open_spline_index = 0;
+
+ MaskSpline *spline;
+
+ /* scanfill */
+ ScanFillContext sf_ctx;
+ ScanFillVert *sf_vert = NULL;
+ ScanFillVert *sf_vert_next = NULL;
+ ScanFillFace *sf_tri;
+
+ unsigned int sf_vert_tot = 0;
+ unsigned int tot_feather_quads = 0;
+
+#ifdef USE_SCANFILL_EDGE_WORKAROUND
+ unsigned int tot_boundary_used = 0;
+ unsigned int tot_boundary_found = 0;
+#endif
+
+ if (masklay->restrictflag & MASK_RESTRICT_RENDER) {
+ /* skip the layer */
+ mr_handle->layers_tot--;
+ masklay_index--;
+ continue;
+ }
+
+ tot_splines = BLI_countlist(&masklay->splines);
+ open_spline_ranges = MEM_callocN(sizeof(*open_spline_ranges) * tot_splines, __func__);
+
+ BLI_scanfill_begin(&sf_ctx);
+
+ for (spline = masklay->splines.first; spline; spline = spline->next) {
+ const unsigned int is_cyclic = (spline->flag & MASK_SPLINE_CYCLIC) != 0;
+ const unsigned int is_fill = (spline->flag & MASK_SPLINE_NOFILL) == 0;
+
+ float (*diff_points)[2];
+ int tot_diff_point;
+
+ float (*diff_feather_points)[2];
+ float (*diff_feather_points_flip)[2];
+ int tot_diff_feather_points;
+
+ const unsigned int resol_a = BKE_mask_spline_resolution(spline, width, height) / 4;
+ const unsigned int resol_b = BKE_mask_spline_feather_resolution(spline, width, height) / 4;
+ const unsigned int resol = CLAMPIS(MAX2(resol_a, resol_b), 4, 512);
+
+ diff_points = BKE_mask_spline_differentiate_with_resolution_ex(
+ spline, &tot_diff_point, resol);
+
+ if (do_feather) {
+ diff_feather_points = BKE_mask_spline_feather_differentiated_points_with_resolution_ex(
+ spline, &tot_diff_feather_points, resol, FALSE);
+ BLI_assert(diff_feather_points);
+ }
+ else {
+ tot_diff_feather_points = 0;
+ diff_feather_points = NULL;
+ }
+
+ if (tot_diff_point > 3) {
+ ScanFillVert *sf_vert_prev;
+ int j;
+
+ float co[3];
+ co[2] = 0.0f;
+
+ if (do_aspect_correct) {
+ if (width != height) {
+ float *fp;
+ float *ffp;
+ int i;
+ float asp;
+
+ if (width < height) {
+ fp = &diff_points[0][0];
+ ffp = tot_diff_feather_points ? &diff_feather_points[0][0] : NULL;
+ asp = (float)width / (float)height;
+ }
+ else {
+ fp = &diff_points[0][1];
+ ffp = tot_diff_feather_points ? &diff_feather_points[0][1] : NULL;
+ asp = (float)height / (float)width;
+ }
+
+ for (i = 0; i < tot_diff_point; i++, fp += 2) {
+ (*fp) = (((*fp) - 0.5f) / asp) + 0.5f;
+ }
+
+ if (tot_diff_feather_points) {
+ for (i = 0; i < tot_diff_feather_points; i++, ffp += 2) {
+ (*ffp) = (((*ffp) - 0.5f) / asp) + 0.5f;
+ }
+ }
+ }
+ }
+
+ /* fake aa, using small feather */
+ if (do_mask_aa == TRUE) {
+ if (do_feather == FALSE) {
+ tot_diff_feather_points = tot_diff_point;
+ diff_feather_points = MEM_mallocN(sizeof(*diff_feather_points) * tot_diff_feather_points,
+ __func__);
+ /* add single pixel feather */
+ maskrasterize_spline_differentiate_point_outset(diff_feather_points, diff_points,
+ tot_diff_point, pixel_size, FALSE);
+ }
+ else {
+ /* ensure single pixel feather, on any zero feather areas */
+ maskrasterize_spline_differentiate_point_outset(diff_feather_points, diff_points,
+ tot_diff_point, pixel_size, TRUE);
+ }
+ }
+
+ if (is_fill) {
+ /* applt intersections depending on fill settings */
+ if (spline->flag & MASK_SPLINE_NOINTERSECT) {
+ BKE_mask_spline_feather_collapse_inner_loops(spline, diff_feather_points, tot_diff_feather_points);
+ }
+
+ copy_v2_v2(co, diff_points[0]);
+ sf_vert_prev = BLI_scanfill_vert_add(&sf_ctx, co);
+ sf_vert_prev->tmp.u = sf_vert_tot;
+ sf_vert_prev->keyindex = sf_vert_tot + tot_diff_point; /* absolute index of feather vert */
+ sf_vert_tot++;
+
+ /* TODO, an alternate functions so we can avoid double vector copy! */
+ for (j = 1; j < tot_diff_point; j++) {
+ copy_v2_v2(co, diff_points[j]);
+ sf_vert = BLI_scanfill_vert_add(&sf_ctx, co);
+ sf_vert->tmp.u = sf_vert_tot;
+ sf_vert->keyindex = sf_vert_tot + tot_diff_point; /* absolute index of feather vert */
+ sf_vert_tot++;
+ }
+
+ sf_vert = sf_vert_prev;
+ sf_vert_prev = sf_ctx.fillvertbase.last;
+
+ for (j = 0; j < tot_diff_point; j++) {
+ ScanFillEdge *sf_edge = BLI_scanfill_edge_add(&sf_ctx, sf_vert_prev, sf_vert);
+
+#ifdef USE_SCANFILL_EDGE_WORKAROUND
+ if (diff_feather_points) {
+ sf_edge->tmp.c = SF_EDGE_IS_BOUNDARY;
+ tot_boundary_used++;
+ }
+#else
+ (void)sf_edge;
+#endif
+ sf_vert_prev = sf_vert;
+ sf_vert = sf_vert->next;
+ }
+
+ if (diff_feather_points) {
+ float co_feather[3];
+ co_feather[2] = 1.0f;
+
+ BLI_assert(tot_diff_feather_points == tot_diff_point);
+
+ /* note: only added for convenience, we don't infact use these to scanfill,
+ * only to create feather faces after scanfill */
+ for (j = 0; j < tot_diff_feather_points; j++) {
+ copy_v2_v2(co_feather, diff_feather_points[j]);
+ sf_vert = BLI_scanfill_vert_add(&sf_ctx, co_feather);
+
+ /* no need for these attrs */
+ #if 0
+ sf_vert->tmp.u = sf_vert_tot;
+ sf_vert->keyindex = sf_vert_tot + tot_diff_point; /* absolute index of feather vert */
+ #endif
+ sf_vert->keyindex = SF_KEYINDEX_TEMP_ID;
+ sf_vert_tot++;
+ }
+
+ tot_feather_quads += tot_diff_point;
+ }
+ }
+ else {
+ /* unfilled spline */
+ if (diff_feather_points) {
+
+ float co_diff[2];
+
+ float co_feather[3];
+ co_feather[2] = 1.0f;
+
+ if (spline->flag & MASK_SPLINE_NOINTERSECT) {
+ diff_feather_points_flip = MEM_mallocN(sizeof(float) * 2 * tot_diff_feather_points, "diff_feather_points_flip");
+
+ for (j = 0; j < tot_diff_point; j++) {
+ sub_v2_v2v2(co_diff, diff_points[j], diff_feather_points[j]);
+ add_v2_v2v2(diff_feather_points_flip[j], diff_points[j], co_diff);
+ }
+
+ BKE_mask_spline_feather_collapse_inner_loops(spline, diff_feather_points, tot_diff_feather_points);
+ BKE_mask_spline_feather_collapse_inner_loops(spline, diff_feather_points_flip, tot_diff_feather_points);
+ }
+ else {
+ diff_feather_points_flip = NULL;
+ }
+
+
+ open_spline_ranges[open_spline_index].vertex_offset = sf_vert_tot;
+ open_spline_ranges[open_spline_index].vertex_total = tot_diff_point;
+
+ /* TODO, an alternate functions so we can avoid double vector copy! */
+ for (j = 0; j < tot_diff_point; j++) {
+
+ /* center vert */
+ copy_v2_v2(co, diff_points[j]);
+ sf_vert = BLI_scanfill_vert_add(&sf_ctx, co);
+ sf_vert->tmp.u = sf_vert_tot;
+ sf_vert->keyindex = SF_KEYINDEX_TEMP_ID;
+ sf_vert_tot++;
+
+
+ /* feather vert A */
+ copy_v2_v2(co_feather, diff_feather_points[j]);
+ sf_vert = BLI_scanfill_vert_add(&sf_ctx, co_feather);
+ sf_vert->tmp.u = sf_vert_tot;
+ sf_vert->keyindex = SF_KEYINDEX_TEMP_ID;
+ sf_vert_tot++;
+
+
+ /* feather vert B */
+ if (diff_feather_points_flip) {
+ copy_v2_v2(co_feather, diff_feather_points_flip[j]);
+ }
+ else {
+ sub_v2_v2v2(co_diff, co, co_feather);
+ add_v2_v2v2(co_feather, co, co_diff);
+ }
+
+ sf_vert = BLI_scanfill_vert_add(&sf_ctx, co_feather);
+ sf_vert->tmp.u = sf_vert_tot;
+ sf_vert->keyindex = SF_KEYINDEX_TEMP_ID;
+ sf_vert_tot++;
+
+ tot_feather_quads += 2;
+ }
+
+ if (!is_cyclic) {
+ tot_feather_quads -= 2;
+ }
+
+ if (diff_feather_points_flip) {
+ MEM_freeN(diff_feather_points_flip);
+ diff_feather_points_flip = NULL;
+ }
+
+ /* cap ends */
+
+ /* dummy init value */
+ open_spline_ranges[open_spline_index].vertex_total_cap_head = 0;
+ open_spline_ranges[open_spline_index].vertex_total_cap_tail = 0;
+
+ if (!is_cyclic) {
+ float *fp_cent;
+ float *fp_turn;
+
+ unsigned int k;
+
+ fp_cent = diff_points[0];
+ fp_turn = diff_feather_points[0];
+
+#define CALC_CAP_RESOL \
+ clampis_uint((len_v2v2(fp_cent, fp_turn) / (pixel_size * SPLINE_RESOL_CAP_PER_PIXEL)), \
+ SPLINE_RESOL_CAP_MIN, \
+ SPLINE_RESOL_CAP_MAX)
+
+ {
+ const unsigned int vertex_total_cap = CALC_CAP_RESOL;
+
+ for (k = 1; k < vertex_total_cap; k++) {
+ const float angle = (float)k * (1.0f / vertex_total_cap) * (float)M_PI;
+ rotate_point_v2(co_feather, fp_turn, fp_cent, angle, asp_xy);
+
+ sf_vert = BLI_scanfill_vert_add(&sf_ctx, co_feather);
+ sf_vert->tmp.u = sf_vert_tot;
+ sf_vert->keyindex = SF_KEYINDEX_TEMP_ID;
+ sf_vert_tot++;
+ }
+ tot_feather_quads += vertex_total_cap;
+
+ open_spline_ranges[open_spline_index].vertex_total_cap_head = vertex_total_cap;
+ }
+
+ fp_cent = diff_points[tot_diff_point - 1];
+ fp_turn = diff_feather_points[tot_diff_point - 1];
+
+ {
+ const unsigned int vertex_total_cap = CALC_CAP_RESOL;
+
+ for (k = 1; k < vertex_total_cap; k++) {
+ const float angle = (float)k * (1.0f / vertex_total_cap) * (float)M_PI;
+ rotate_point_v2(co_feather, fp_turn, fp_cent, -angle, asp_xy);
+
+ sf_vert = BLI_scanfill_vert_add(&sf_ctx, co_feather);
+ sf_vert->tmp.u = sf_vert_tot;
+ sf_vert->keyindex = SF_KEYINDEX_TEMP_ID;
+ sf_vert_tot++;
+ }
+ tot_feather_quads += vertex_total_cap;
+
+ open_spline_ranges[open_spline_index].vertex_total_cap_tail = vertex_total_cap;
+ }
+ }
+
+ open_spline_ranges[open_spline_index].is_cyclic = is_cyclic;
+ open_spline_index++;
+
+#undef CALC_CAP_RESOL
+ /* end capping */
+
+ }
+ }
+ }
+
+ if (diff_points) {
+ MEM_freeN(diff_points);
+ }
+
+ if (diff_feather_points) {
+ MEM_freeN(diff_feather_points);
+ }
+ }
+
+ {
+ unsigned int (*face_array)[4], *face; /* access coords */
+ float (*face_coords)[3], *cos; /* xy, z 0-1 (1.0 == filled) */
+ int sf_tri_tot;
+ rctf bounds;
+ int face_index;
+
+ /* now we have all the splines */
+ face_coords = MEM_mallocN((sizeof(float) * 3) * sf_vert_tot, "maskrast_face_coords");
+
+ /* init bounds */
+ BLI_rctf_init_minmax(&bounds);
+
+ /* coords */
+ cos = (float *)face_coords;
+ for (sf_vert = sf_ctx.fillvertbase.first; sf_vert; sf_vert = sf_vert_next) {
+ sf_vert_next = sf_vert->next;
+ copy_v3_v3(cos, sf_vert->co);
+
+ /* remove so as not to interfere with fill (called after) */
+ if (sf_vert->keyindex == SF_KEYINDEX_TEMP_ID) {
+ BLI_remlink(&sf_ctx.fillvertbase, sf_vert);
+ }
+
+ /* bounds */
+ BLI_rctf_do_minmax_v(&bounds, cos);
+
+ cos += 3;
+ }
+
+ /* main scan-fill */
+ sf_tri_tot = BLI_scanfill_calc_ex(&sf_ctx, FALSE, zvec);
+
+ face_array = MEM_mallocN(sizeof(*face_array) * (sf_tri_tot + tot_feather_quads), "maskrast_face_index");
+ face_index = 0;
+
+ /* faces */
+ face = (unsigned int *)face_array;
+ for (sf_tri = sf_ctx.fillfacebase.first; sf_tri; sf_tri = sf_tri->next) {
+ *(face++) = sf_tri->v3->tmp.u;
+ *(face++) = sf_tri->v2->tmp.u;
+ *(face++) = sf_tri->v1->tmp.u;
+ *(face++) = TRI_VERT;
+ face_index++;
+ FACE_ASSERT(face - 4, sf_vert_tot);
+ }
+
+ /* start of feather faces... if we have this set,
+ * 'face_index' is kept from loop above */
+
+ BLI_assert(face_index == sf_tri_tot);
+
+ if (tot_feather_quads) {
+ ScanFillEdge *sf_edge;
+
+ for (sf_edge = sf_ctx.filledgebase.first; sf_edge; sf_edge = sf_edge->next) {
+ if (sf_edge->tmp.c == SF_EDGE_IS_BOUNDARY) {
+ *(face++) = sf_edge->v1->tmp.u;
+ *(face++) = sf_edge->v2->tmp.u;
+ *(face++) = sf_edge->v2->keyindex;
+ *(face++) = sf_edge->v1->keyindex;
+ face_index++;
+ FACE_ASSERT(face - 4, sf_vert_tot);
+
+#ifdef USE_SCANFILL_EDGE_WORKAROUND
+ tot_boundary_found++;
+#endif
+ }
+ }
+ }
+
+#ifdef USE_SCANFILL_EDGE_WORKAROUND
+ if (tot_boundary_found != tot_boundary_used) {
+ BLI_assert(tot_boundary_found < tot_boundary_used);
+ }
+#endif
+
+ /* feather only splines */
+ while (open_spline_index > 0) {
+ const unsigned int vertex_offset = open_spline_ranges[--open_spline_index].vertex_offset;
+ unsigned int vertex_total = open_spline_ranges[ open_spline_index].vertex_total;
+ unsigned int vertex_total_cap_head = open_spline_ranges[ open_spline_index].vertex_total_cap_head;
+ unsigned int vertex_total_cap_tail = open_spline_ranges[ open_spline_index].vertex_total_cap_tail;
+ unsigned int k, j;
+
+ j = vertex_offset;
+
+ /* subtract one since we reference next vertex triple */
+ for (k = 0; k < vertex_total - 1; k++, j += 3) {
+
+ BLI_assert(j == vertex_offset + (k * 3));
+
+ *(face++) = j + 3; /* next span */ /* z 1 */
+ *(face++) = j + 0; /* z 1 */
+ *(face++) = j + 1; /* z 0 */
+ *(face++) = j + 4; /* next span */ /* z 0 */
+ face_index++;
+ FACE_ASSERT(face - 4, sf_vert_tot);
+
+ *(face++) = j + 0; /* z 1 */
+ *(face++) = j + 3; /* next span */ /* z 1 */
+ *(face++) = j + 5; /* next span */ /* z 0 */
+ *(face++) = j + 2; /* z 0 */
+ face_index++;
+ FACE_ASSERT(face - 4, sf_vert_tot);
+ }
+
+ if (open_spline_ranges[open_spline_index].is_cyclic) {
+ *(face++) = vertex_offset + 0; /* next span */ /* z 1 */
+ *(face++) = j + 0; /* z 1 */
+ *(face++) = j + 1; /* z 0 */
+ *(face++) = vertex_offset + 1; /* next span */ /* z 0 */
+ face_index++;
+ FACE_ASSERT(face - 4, sf_vert_tot);
+
+ *(face++) = j + 0; /* z 1 */
+ *(face++) = vertex_offset + 0; /* next span */ /* z 1 */
+ *(face++) = vertex_offset + 2; /* next span */ /* z 0 */
+ *(face++) = j + 2; /* z 0 */
+ face_index++;
+ FACE_ASSERT(face - 4, sf_vert_tot);
+ }
+ else {
+ unsigned int midvidx = vertex_offset;
+
+ /***************
+ * cap end 'a' */
+ j = midvidx + (vertex_total * 3);
+
+ for (k = 0; k < vertex_total_cap_head - 2; k++, j++) {
+ *(face++) = midvidx + 0; /* z 1 */
+ *(face++) = midvidx + 0; /* z 1 */
+ *(face++) = j + 0; /* z 0 */
+ *(face++) = j + 1; /* z 0 */
+ face_index++;
+ FACE_ASSERT(face - 4, sf_vert_tot);
+ }
+
+ j = vertex_offset + (vertex_total * 3);
+
+ /* 2 tris that join the original */
+ *(face++) = midvidx + 0; /* z 1 */
+ *(face++) = midvidx + 0; /* z 1 */
+ *(face++) = midvidx + 1; /* z 0 */
+ *(face++) = j + 0; /* z 0 */
+ face_index++;
+ FACE_ASSERT(face - 4, sf_vert_tot);
+
+ *(face++) = midvidx + 0; /* z 1 */
+ *(face++) = midvidx + 0; /* z 1 */
+ *(face++) = j + vertex_total_cap_head - 2; /* z 0 */
+ *(face++) = midvidx + 2; /* z 0 */
+ face_index++;
+ FACE_ASSERT(face - 4, sf_vert_tot);
+
+
+ /***************
+ * cap end 'b' */
+ /* ... same as previous but v 2-3 flipped, and different initial offsets */
+
+ j = vertex_offset + (vertex_total * 3) + (vertex_total_cap_head - 1);
+
+ midvidx = vertex_offset + (vertex_total * 3) - 3;
+
+ for (k = 0; k < vertex_total_cap_tail - 2; k++, j++) {
+ *(face++) = midvidx; /* z 1 */
+ *(face++) = midvidx; /* z 1 */
+ *(face++) = j + 1; /* z 0 */
+ *(face++) = j + 0; /* z 0 */
+ face_index++;
+ FACE_ASSERT(face - 4, sf_vert_tot);
+ }
+
+ j = vertex_offset + (vertex_total * 3) + (vertex_total_cap_head - 1);
+
+ /* 2 tris that join the original */
+ *(face++) = midvidx + 0; /* z 1 */
+ *(face++) = midvidx + 0; /* z 1 */
+ *(face++) = j + 0; /* z 0 */
+ *(face++) = midvidx + 1; /* z 0 */
+ face_index++;
+ FACE_ASSERT(face - 4, sf_vert_tot);
+
+ *(face++) = midvidx + 0; /* z 1 */
+ *(face++) = midvidx + 0; /* z 1 */
+ *(face++) = midvidx + 2; /* z 0 */
+ *(face++) = j + vertex_total_cap_tail - 2; /* z 0 */
+ face_index++;
+ FACE_ASSERT(face - 4, sf_vert_tot);
+
+ }
+ }
+
+ MEM_freeN(open_spline_ranges);
+
+// fprintf(stderr, "%u %u (%u %u), %u\n", face_index, sf_tri_tot + tot_feather_quads, sf_tri_tot, tot_feather_quads, tot_boundary_used - tot_boundary_found);
+
+#ifdef USE_SCANFILL_EDGE_WORKAROUND
+ BLI_assert(face_index + (tot_boundary_used - tot_boundary_found) == sf_tri_tot + tot_feather_quads);
+#else
+ BLI_assert(face_index == sf_tri_tot + tot_feather_quads);
+#endif
+ {
+ MaskRasterLayer *layer = &mr_handle->layers[masklay_index];
+
+ if (BLI_rctf_isect(&default_bounds, &bounds, &bounds)) {
+#ifdef USE_SCANFILL_EDGE_WORKAROUND
+ layer->face_tot = (sf_tri_tot + tot_feather_quads) - (tot_boundary_used - tot_boundary_found);
+#else
+ layer->face_tot = (sf_tri_tot + tot_feather_quads);
+#endif
+ layer->face_coords = face_coords;
+ layer->face_array = face_array;
+ layer->bounds = bounds;
+
+ layer_bucket_init(layer, pixel_size);
+
+ BLI_rctf_union(&mr_handle->bounds, &bounds);
+ }
+ else {
+ MEM_freeN(face_coords);
+ MEM_freeN(face_array);
+
+ layer_bucket_init_dummy(layer);
+ }
+
+ /* copy as-is */
+ layer->alpha = masklay->alpha;
+ layer->blend = masklay->blend;
+ layer->blend_flag = masklay->blend_flag;
+ layer->falloff = masklay->falloff;
+ }
+
+ /* printf("tris %d, feather tris %d\n", sf_tri_tot, tot_feather_quads); */
+ }
+
+ /* add trianges */
+ BLI_scanfill_end(&sf_ctx);
+ }
+}
+
+
+/* --------------------------------------------------------------------- */
+/* functions that run inside the sampling thread (keep fast!) */
+/* --------------------------------------------------------------------- */
+
+/* 2D ray test */
+#if 0
+static float maskrasterize_layer_z_depth_tri(const float pt[2],
+ const float v1[3], const float v2[3], const float v3[3])
+{
+ float w[3];
+ barycentric_weights_v2(v1, v2, v3, pt, w);
+ return (v1[2] * w[0]) + (v2[2] * w[1]) + (v3[2] * w[2]);
+}
+#endif
+
+#if 1
+static float maskrasterize_layer_z_depth_quad(const float pt[2],
+ const float v1[3], const float v2[3], const float v3[3], const float v4[3])
+{
+ float w[4];
+ barycentric_weights_v2_quad(v1, v2, v3, v4, pt, w);
+ //return (v1[2] * w[0]) + (v2[2] * w[1]) + (v3[2] * w[2]) + (v4[2] * w[3]);
+ return w[2] + w[3]; /* we can make this assumption for small speedup */
+}
+#endif
+
+static float maskrasterize_layer_isect(unsigned int *face, float (*cos)[3], const float dist_orig, const float xy[2])
+{
+ /* we always cast from same place only need xy */
+ if (face[3] == TRI_VERT) {
+ /* --- tri --- */
+
+#if 0
+ /* not essential but avoids unneeded extra lookups */
+ if ((cos[0][2] < dist_orig) ||
+ (cos[1][2] < dist_orig) ||
+ (cos[2][2] < dist_orig))
+ {
+ if (isect_point_tri_v2_cw(xy, cos[face[0]], cos[face[1]], cos[face[2]])) {
+ /* we know all tris are close for now */
+ return maskrasterize_layer_z_depth_tri(xy, cos[face[0]], cos[face[1]], cos[face[2]]);
+ }
+ }
+#else
+ /* we know all tris are close for now */
+ if (1) {
+ if (isect_point_tri_v2_cw(xy, cos[face[0]], cos[face[1]], cos[face[2]])) {
+ return 0.0f;
+ }
+ }
+#endif
+ }
+ else {
+ /* --- quad --- */
+
+ /* not essential but avoids unneeded extra lookups */
+ if ((cos[0][2] < dist_orig) ||
+ (cos[1][2] < dist_orig) ||
+ (cos[2][2] < dist_orig) ||
+ (cos[3][2] < dist_orig))
+ {
+
+ /* needs work */
+#if 1
+ /* quad check fails for bow-tie, so keep using 2 tri checks */
+ //if (isect_point_quad_v2(xy, cos[face[0]], cos[face[1]], cos[face[2]], cos[face[3]]))
+ if (isect_point_tri_v2(xy, cos[face[0]], cos[face[1]], cos[face[2]]) ||
+ isect_point_tri_v2(xy, cos[face[0]], cos[face[2]], cos[face[3]]))
+ {
+ return maskrasterize_layer_z_depth_quad(xy, cos[face[0]], cos[face[1]], cos[face[2]], cos[face[3]]);
+ }
+#elif 1
+ /* don't use isect_point_tri_v2_cw because we could have bow-tie quads */
+
+ if (isect_point_tri_v2(xy, cos[face[0]], cos[face[1]], cos[face[2]])) {
+ return maskrasterize_layer_z_depth_tri(xy, cos[face[0]], cos[face[1]], cos[face[2]]);
+ }
+ else if (isect_point_tri_v2(xy, cos[face[0]], cos[face[2]], cos[face[3]])) {
+ return maskrasterize_layer_z_depth_tri(xy, cos[face[0]], cos[face[2]], cos[face[3]]);
+ }
+#else
+ /* cheat - we know first 2 verts are z0.0f and second 2 are z 1.0f */
+ /* ... worth looking into */
+#endif
+ }
+ }
+
+ return 1.0f;
+}
+
+BLI_INLINE unsigned int layer_bucket_index_from_xy(MaskRasterLayer *layer, const float xy[2])
+{
+ BLI_assert(BLI_rctf_isect_pt_v(&layer->bounds, xy));
+
+ return ( (unsigned int)((xy[0] - layer->bounds.xmin) * layer->buckets_xy_scalar[0])) +
+ (((unsigned int)((xy[1] - layer->bounds.ymin) * layer->buckets_xy_scalar[1])) * layer->buckets_x);
+}
+
+static float layer_bucket_depth_from_xy(MaskRasterLayer *layer, const float xy[2])
+{
+ unsigned int index = layer_bucket_index_from_xy(layer, xy);
+ unsigned int *face_index = layer->buckets_face[index];
+
+ if (face_index) {
+ unsigned int (*face_array)[4] = layer->face_array;
+ float (*cos)[3] = layer->face_coords;
+ float best_dist = 1.0f;
+ while (*face_index != TRI_TERMINATOR_ID) {
+ const float test_dist = maskrasterize_layer_isect(face_array[*face_index], cos, best_dist, xy);
+ if (test_dist < best_dist) {
+ best_dist = test_dist;
+ /* comparing with 0.0f is OK here because triangles are always zero depth */
+ if (best_dist == 0.0f) {
+ /* bail early, we're as close as possible */
+ return 0.0f;
+ }
+ }
+ face_index++;
+ }
+ return best_dist;
+ }
+ else {
+ return 1.0f;
+ }
+}
+
+float BKE_maskrasterize_handle_sample(MaskRasterHandle *mr_handle, const float xy[2])
+{
+ /* can't do this because some layers may invert */
+ /* if (BLI_rctf_isect_pt_v(&mr_handle->bounds, xy)) */
+
+ const unsigned int layers_tot = mr_handle->layers_tot;
+ unsigned int i;
+ MaskRasterLayer *layer = mr_handle->layers;
+
+ /* return value */
+ float value = 0.0f;
+
+ for (i = 0; i < layers_tot; i++, layer++) {
+ float value_layer;
+
+ /* also used as signal for unused layer (when render is disabled) */
+ if (layer->alpha != 0.0f && BLI_rctf_isect_pt_v(&layer->bounds, xy)) {
+ value_layer = 1.0f - layer_bucket_depth_from_xy(layer, xy);
+
+ switch (layer->falloff) {
+ case PROP_SMOOTH:
+ /* ease - gives less hard lines for dilate/erode feather */
+ value_layer = (3.0f * value_layer * value_layer - 2.0f * value_layer * value_layer * value_layer);
+ break;
+ case PROP_SPHERE:
+ value_layer = sqrtf(2.0f * value_layer - value_layer * value_layer);
+ break;
+ case PROP_ROOT:
+ value_layer = sqrtf(value_layer);
+ break;
+ case PROP_SHARP:
+ value_layer = value_layer * value_layer;
+ break;
+ case PROP_LIN:
+ default:
+ /* nothing */
+ break;
+ }
+
+ if (layer->blend != MASK_BLEND_REPLACE) {
+ value_layer *= layer->alpha;
+ }
+ }
+ else {
+ value_layer = 0.0f;
+ }
+
+ if (layer->blend_flag & MASK_BLENDFLAG_INVERT) {
+ value_layer = 1.0f - value_layer;
+ }
+
+ switch (layer->blend) {
+ case MASK_BLEND_MERGE_ADD:
+ value += value_layer * (1.0f - value);
+ break;
+ case MASK_BLEND_MERGE_SUBTRACT:
+ value -= value_layer * value;
+ break;
+ case MASK_BLEND_ADD:
+ value += value_layer;
+ break;
+ case MASK_BLEND_SUBTRACT:
+ value -= value_layer;
+ break;
+ case MASK_BLEND_LIGHTEN:
+ value = maxf(value, value_layer);
+ break;
+ case MASK_BLEND_DARKEN:
+ value = minf(value, value_layer);
+ break;
+ case MASK_BLEND_MUL:
+ value *= value_layer;
+ break;
+ case MASK_BLEND_REPLACE:
+ value = (value * (1.0f - layer->alpha)) + (value_layer * layer->alpha);
+ break;
+ case MASK_BLEND_DIFFERENCE:
+ value = fabsf(value - value_layer);
+ break;
+ default: /* same as add */
+ BLI_assert(0);
+ value += value_layer;
+ break;
+ }
+
+ /* clamp after applying each layer so we don't get
+ * issues subtracting after accumulating over 1.0f */
+ CLAMP(value, 0.0f, 1.0f);
+ }
+
+ return value;
+}
+
+/**
+ * \brief Rasterize a buffer from a single mask
+ *
+ * We could get some speedup by inlining #BKE_maskrasterize_handle_sample
+ * and calculating each layer then blending buffers, but this function is only
+ * used by the sequencer - so better have the caller thread.
+ *
+ * Since #BKE_maskrasterize_handle_sample is used threaded elsewhere,
+ * we can simply use openmp here for some speedup.
+ */
+void BKE_maskrasterize_buffer(MaskRasterHandle *mr_handle,
+ const unsigned int width, const unsigned int height,
+ float *buffer)
+{
+#ifdef _MSC_VER
+ int y; /* msvc requires signed for some reason */
+#else
+ unsigned int y;
+#endif
+
+#pragma omp parallel for private(y)
+ for (y = 0; y < height; y++) {
+ unsigned int i = y * width;
+ unsigned int x;
+ float xy[2];
+ xy[1] = (float)y / (float)height;
+ for (x = 0; x < width; x++, i++) {
+ xy[0] = (float)x / (float)width;
+
+ buffer[i] = BKE_maskrasterize_handle_sample(mr_handle, xy);
+ }
+ }
+}
diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c
index 23f197155a1..bea0e33da9a 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -80,12 +80,18 @@ void init_def_material(void)
/* not material itself */
void BKE_material_free(Material *ma)
{
+ BKE_material_free_ex(ma, TRUE);
+}
+
+/* not material itself */
+void BKE_material_free_ex(Material *ma, int do_id_user)
+{
MTex *mtex;
int a;
for (a = 0; a < MAX_MTEX; a++) {
mtex = ma->mtex[a];
- if (mtex && mtex->tex) mtex->tex->id.us--;
+ if (do_id_user && mtex && mtex->tex) mtex->tex->id.us--;
if (mtex) MEM_freeN(mtex);
}
@@ -101,7 +107,7 @@ void BKE_material_free(Material *ma)
/* is no lib link block, but material extension */
if (ma->nodetree) {
- ntreeFreeTree(ma->nodetree);
+ ntreeFreeTree_ex(ma->nodetree, do_id_user);
MEM_freeN(ma->nodetree);
}
@@ -235,7 +241,7 @@ Material *BKE_material_copy(Material *ma)
if (ma->preview) man->preview = BKE_previewimg_copy(ma->preview);
if (ma->nodetree) {
- man->nodetree = ntreeCopyTree(ma->nodetree); /* 0 == full new tree */
+ man->nodetree = ntreeCopyTree(ma->nodetree);
}
man->gpumaterial.first = man->gpumaterial.last = NULL;
@@ -494,6 +500,9 @@ short *give_totcolp(Object *ob)
/* same as above but for ID's */
Material ***give_matarar_id(ID *id)
{
+ /* ensure we don't try get materials from non-obdata */
+ BLI_assert(OB_DATA_SUPPORT_ID(GS(id->name)));
+
switch (GS(id->name)) {
case ID_ME:
return &(((Mesh *)id)->mat);
@@ -510,6 +519,9 @@ Material ***give_matarar_id(ID *id)
short *give_totcolp_id(ID *id)
{
+ /* ensure we don't try get materials from non-obdata */
+ BLI_assert(OB_DATA_SUPPORT_ID(GS(id->name)));
+
switch (GS(id->name)) {
case ID_ME:
return &(((Mesh *)id)->totcol);
@@ -526,6 +538,9 @@ short *give_totcolp_id(ID *id)
static void data_delete_material_index_id(ID *id, short index)
{
+ /* ensure we don't try get materials from non-obdata */
+ BLI_assert(OB_DATA_SUPPORT_ID(GS(id->name)));
+
switch (GS(id->name)) {
case ID_ME:
BKE_mesh_delete_material_index((Mesh *)id, index);
@@ -765,11 +780,12 @@ void assign_material_id(ID *id, Material *ma, short act)
test_object_materials(id);
}
-void assign_material(Object *ob, Material *ma, short act)
+void assign_material(Object *ob, Material *ma, short act, int assign_type)
{
Material *mao, **matar, ***matarar;
char *matbits;
short *totcolp;
+ char bit = 0;
if (act > MAXMAT) return;
if (act < 1) act = 1;
@@ -796,8 +812,29 @@ void assign_material(Object *ob, Material *ma, short act)
*matarar = matar;
*totcolp = act;
}
-
+
+ /* Determine the object/mesh linking */
+ if (assign_type == BKE_MAT_ASSIGN_USERPREF && ob->totcol && ob->actcol) {
+ /* copy from previous material */
+ bit = ob->matbits[ob->actcol - 1];
+ }
+ else {
+ switch (assign_type) {
+ case BKE_MAT_ASSIGN_OBDATA:
+ bit = 0;
+ break;
+ case BKE_MAT_ASSIGN_OBJECT:
+ bit = 1;
+ break;
+ case BKE_MAT_ASSIGN_USERPREF:
+ default:
+ bit = (U.flag & USER_MAT_ON_OB) ? 1 : 0;
+ break;
+ }
+ }
+
if (act > ob->totcol) {
+ /* Need more space in the material arrays */
matar = MEM_callocN(sizeof(void *) * act, "matarray2");
matbits = MEM_callocN(sizeof(char) * act, "matbits1");
if (ob->totcol) {
@@ -809,17 +846,12 @@ void assign_material(Object *ob, Material *ma, short act)
ob->mat = matar;
ob->matbits = matbits;
ob->totcol = act;
-
- /* copy object/mesh linking, or assign based on userpref */
- if (ob->actcol)
- ob->matbits[act - 1] = ob->matbits[ob->actcol - 1];
- else
- ob->matbits[act - 1] = (U.flag & USER_MAT_ON_OB) ? 1 : 0;
}
/* do it */
- if (ob->matbits[act - 1]) { /* in object */
+ ob->matbits[act - 1] = bit;
+ if (bit == 1) { /* in object */
mao = ob->mat[act - 1];
if (mao) mao->id.us--;
ob->mat[act - 1] = ma;
@@ -845,7 +877,7 @@ void assign_matarar(struct Object *ob, struct Material ***matar, short totcol)
/* now we have the right number of slots */
for (i = 0; i < totcol; i++)
- assign_material(ob, (*matar)[i], i + 1);
+ assign_material(ob, (*matar)[i], i + 1, BKE_MAT_ASSIGN_USERPREF);
if (actcol_orig > ob->totcol)
actcol_orig = ob->totcol;
@@ -879,7 +911,7 @@ int object_add_material_slot(Object *ob)
if (ob == NULL) return FALSE;
if (ob->totcol >= MAXMAT) return FALSE;
- assign_material(ob, NULL, ob->totcol + 1);
+ assign_material(ob, NULL, ob->totcol + 1, BKE_MAT_ASSIGN_USERPREF);
ob->actcol = ob->totcol;
return TRUE;
}
@@ -909,7 +941,7 @@ static void do_init_render_material(Material *ma, int r_mode, float *amb)
if (ma->texco & (TEXCO_ORCO | TEXCO_REFL | TEXCO_NORM | TEXCO_STRAND | TEXCO_STRESS)) needuv = 1;
else if (ma->texco & (TEXCO_GLOB | TEXCO_UV | TEXCO_OBJECT | TEXCO_SPEED)) needuv = 1;
- else if (ma->texco & (TEXCO_LAVECTOR | TEXCO_VIEW | TEXCO_STICKY)) needuv = 1;
+ else if (ma->texco & (TEXCO_LAVECTOR | TEXCO_VIEW)) needuv = 1;
if ((ma->mapto & MAP_NORM) && (mtex->normapspace == MTEX_NSPACE_TANGENT))
needtang = 1;
@@ -1030,13 +1062,18 @@ static int material_in_nodetree(bNodeTree *ntree, Material *mat)
bNode *node;
for (node = ntree->nodes.first; node; node = node->next) {
- if (node->id && GS(node->id->name) == ID_MA) {
- if (node->id == (ID *)mat)
- return 1;
+ if (node->id) {
+ if (GS(node->id->name) == ID_MA) {
+ if (node->id == (ID *)mat) {
+ return 1;
+ }
+ }
+ else if (node->type == NODE_GROUP) {
+ if (material_in_nodetree((bNodeTree *)node->id, mat)) {
+ return 1;
+ }
+ }
}
- else if (node->type == NODE_GROUP)
- if (material_in_nodetree((bNodeTree *)node->id, mat))
- return 1;
}
return 0;
@@ -1059,20 +1096,21 @@ int material_in_material(Material *parmat, Material *mat)
static void material_node_drivers_update(Scene *scene, bNodeTree *ntree, float ctime)
{
bNode *node;
-
+
/* nodetree itself */
if (ntree->adt && ntree->adt->drivers.first) {
BKE_animsys_evaluate_animdata(scene, &ntree->id, ntree->adt, ctime, ADT_RECALC_DRIVERS);
}
- /* nodes... */
+ /* nodes */
for (node = ntree->nodes.first; node; node = node->next) {
- if (node->id && GS(node->id->name) == ID_MA) {
- /* TODO: prevent infinite recursion here... */
- material_drivers_update(scene, (Material *)node->id, ctime);
- }
- else if (node->type == NODE_GROUP && node->id) {
- material_node_drivers_update(scene, (bNodeTree *)node->id, ctime);
+ if (node->id) {
+ if (GS(node->id->name) == ID_MA) {
+ material_drivers_update(scene, (Material *)node->id, ctime);
+ }
+ else if (node->type == NODE_GROUP) {
+ material_node_drivers_update(scene, (bNodeTree *)node->id, ctime);
+ }
}
}
}
@@ -1087,6 +1125,15 @@ void material_drivers_update(Scene *scene, Material *ma, float ctime)
//if (G.f & G_DEBUG)
// printf("material_drivers_update(%s, %s)\n", scene->id.name, ma->id.name);
+ /* Prevent infinite recursion by checking (and tagging the material) as having been visited already
+ * (see BKE_scene_update_tagged()). This assumes ma->id.flag & LIB_DOIT isn't set by anything else
+ * in the meantime... [#32017]
+ */
+ if (ma->id.flag & LIB_DOIT)
+ return;
+ else
+ ma->id.flag |= LIB_DOIT;
+
/* material itself */
if (ma->adt && ma->adt->drivers.first) {
BKE_animsys_evaluate_animdata(scene, &ma->id, ma->adt, ctime, ADT_RECALC_DRIVERS);
@@ -1280,9 +1327,9 @@ void ramp_blend(int type, float r_col[3], const float fac, const float col[3])
r_col[2] = facm * (r_col[2]) + fac * (r_col[2]) / col[2];
break;
case MA_RAMP_DIFF:
- r_col[0] = facm * (r_col[0]) + fac *fabsf(r_col[0] - col[0]);
- r_col[1] = facm * (r_col[1]) + fac *fabsf(r_col[1] - col[1]);
- r_col[2] = facm * (r_col[2]) + fac *fabsf(r_col[2] - col[2]);
+ r_col[0] = facm * (r_col[0]) + fac * fabsf(r_col[0] - col[0]);
+ r_col[1] = facm * (r_col[1]) + fac * fabsf(r_col[1] - col[1]);
+ r_col[2] = facm * (r_col[2]) + fac * fabsf(r_col[2] - col[2]);
break;
case MA_RAMP_DARK:
tmp = col[0] + ((1 - col[0]) * facm);
@@ -1442,7 +1489,11 @@ void ramp_blend(int type, float r_col[3], const float fac, const float col[3])
}
}
-/* copy/paste buffer, if we had a propper py api that would be better */
+/**
+ * \brief copy/paste buffer, if we had a proper py api that would be better
+ * \note matcopybuf.nodetree does _NOT_ use ID's
+ * \todo matcopybuf.nodetree's node->id's are NOT validated, this will crash!
+ */
static Material matcopybuf;
static short matcopied = 0;
@@ -1470,7 +1521,7 @@ void free_matcopybuf(void)
matcopybuf.ramp_spec = NULL;
if (matcopybuf.nodetree) {
- ntreeFreeTree(matcopybuf.nodetree);
+ ntreeFreeTree_ex(matcopybuf.nodetree, FALSE);
MEM_freeN(matcopybuf.nodetree);
matcopybuf.nodetree = NULL;
}
@@ -1496,7 +1547,7 @@ void copy_matcopybuf(Material *ma)
matcopybuf.mtex[a] = MEM_dupallocN(mtex);
}
}
- matcopybuf.nodetree = ntreeCopyTree(ma->nodetree);
+ matcopybuf.nodetree = ntreeCopyTree_ex(ma->nodetree, FALSE);
matcopybuf.preview = NULL;
matcopybuf.gpumaterial.first = matcopybuf.gpumaterial.last = NULL;
matcopied = 1;
@@ -1541,7 +1592,7 @@ void paste_matcopybuf(Material *ma)
}
}
- ma->nodetree = ntreeCopyTree(matcopybuf.nodetree);
+ ma->nodetree = ntreeCopyTree_ex(matcopybuf.nodetree, FALSE);
}
@@ -1582,7 +1633,7 @@ static void decode_tfaceflag(Material *ma, int flag, int convertall)
/* flag is shifted in 1 to make 0 != no flag yet (see encode_tfaceflag) */
flag -= 1;
- alphablend = flag >> 15; //encoded in the encode_tfaceflag function
+ alphablend = flag >> 15; /* encoded in the encode_tfaceflag function */
(*game).flag = 0;
/* General Material Options */
@@ -1613,13 +1664,13 @@ static void decode_tfaceflag(Material *ma, int flag, int convertall)
/* boolean check to see if the mesh needs a material */
static int check_tfaceneedmaterial(int flag)
{
- // check if the flags we have are not deprecated != than default material options
- // also if only flags are visible and collision see if all objects using this mesh have this option in physics
+ /* check if the flags we have are not deprecated != than default material options
+ * also if only flags are visible and collision see if all objects using this mesh have this option in physics */
/* flag is shifted in 1 to make 0 != no flag yet (see encode_tfaceflag) */
flag -= 1;
- // deprecated flags
+ /* deprecated flags */
flag &= ~TF_OBCOL;
flag &= ~TF_SHAREDVERT;
flag &= ~TF_SHAREDCOL;
@@ -1627,12 +1678,12 @@ static int check_tfaceneedmaterial(int flag)
/* light tface flag is ignored in GLSL mode */
flag &= ~TF_LIGHT;
- // automatic detected if tex image has alpha
+ /* automatic detected if tex image has alpha */
flag &= ~(TF_ALPHA << 15);
- // automatic detected if using texture
+ /* automatic detected if using texture */
flag &= ~TF_TEX;
- // settings for the default NoMaterial
+ /* settings for the default NoMaterial */
if (flag == TF_DYNAMIC)
return 0;
@@ -1641,7 +1692,7 @@ static int check_tfaceneedmaterial(int flag)
}
/* return number of digits of an integer */
-// XXX to be optmized or replaced by an equivalent blender internal function
+/* XXX to be optmized or replaced by an equivalent blender internal function */
static int integer_getdigits(int number)
{
int i = 0;
@@ -1656,9 +1707,9 @@ static int integer_getdigits(int number)
static void calculate_tface_materialname(char *matname, char *newname, int flag)
{
- // if flag has only light and collision and material matches those values
- // you can do strcpy(name, mat_name);
- // otherwise do:
+ /* if flag has only light and collision and material matches those values
+ * you can do strcpy(name, mat_name);
+ * otherwise do: */
int digits = integer_getdigits(flag);
/* clamp the old name, remove the MA prefix and add the .TF.flag suffix
* e.g. matname = "MALoooooooooooooongName"; newname = "Loooooooooooooon.TF.2" */
@@ -1731,9 +1782,9 @@ static short convert_tfacenomaterial(Main *main, Mesh *me, MTFace *tf, int flag)
set_facetexture_flags(ma, tf->tpage);
decode_tfaceflag(ma, flag, 1);
- // the final decoding will happen after, outside the main loop
- // for now store the flag into the material and change light/tex/collision
- // store the flag as a negative number
+ /* the final decoding will happen after, outside the main loop
+ * for now store the flag into the material and change light/tex/collision
+ * store the flag as a negative number */
ma->game.flag = -flag;
id_us_min((ID *)ma);
}
@@ -1982,8 +2033,7 @@ int do_version_tface(Main *main, int fileload)
nowarning = 0;
}
else
- convert_tfacematerial(main, ma);
- continue;
+ convert_tfacematerial(main, ma); continue;
}
/* no conflicts in this material - 90% of cases
diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c
index b5b03a8924f..592101fbd31 100644
--- a/source/blender/blenkernel/intern/mball.c
+++ b/source/blender/blenkernel/intern/mball.c
@@ -67,12 +67,9 @@
/* Data types */
-typedef struct point { /* a three-dimensional point */
- float x, y, z; /* its coordinates */
-} MB_POINT;
-
typedef struct vertex { /* surface vertex */
- MB_POINT position, normal; /* position and surface normal */
+ float co[3]; /* position and surface normal */
+ float no[3];
} VERTEX;
typedef struct vertices { /* list of vertices in polygonization */
@@ -82,7 +79,7 @@ typedef struct vertices { /* list of vertices in polygonization */
typedef struct corner { /* corner of a cube */
int i, j, k; /* (i, j, k) is index within lattice */
- float x, y, z, value; /* location and function value */
+ float co[3], value; /* location and function value */
struct corner *next;
} CORNER;
@@ -159,18 +156,20 @@ struct pgn_elements {
};
/* Forward declarations */
-static int vertid(CORNER *c1, CORNER *c2, PROCESS *p, MetaBall *mb);
-static int setcenter(CENTERLIST *table[], int i, int j, int k);
+static int vertid(const CORNER *c1, const CORNER *c2, PROCESS *p, MetaBall *mb);
+static int setcenter(CENTERLIST *table[], const int i, const int j, const int k);
static CORNER *setcorner(PROCESS *p, int i, int j, int k);
-static void converge(MB_POINT *p1, MB_POINT *p2, float v1, float v2,
- float (*function)(float, float, float), MB_POINT *p, MetaBall *mb, int f);
+static void converge(const float p1[3], const float p2[3], float v1, float v2,
+ float (*function)(float, float, float), float p[3], MetaBall *mb, int f);
/* Global variables */
+static struct {
+ float thresh;
+ int totelem;
+ MetaElem **mainb;
+ octal_tree *metaball_tree;
+} G_mb = {0};
-static float thresh = 0.6f;
-static int totelem = 0;
-static MetaElem **mainb;
-static octal_tree *metaball_tree = NULL;
/* Functions */
void BKE_mball_unlink(MetaBall *mb)
@@ -187,7 +186,7 @@ void BKE_mball_unlink(MetaBall *mb)
/* do not free mball itself */
void BKE_mball_free(MetaBall *mb)
{
- BKE_mball_unlink(mb);
+ BKE_mball_unlink(mb);
if (mb->adt) {
BKE_free_animdata((ID *)mb);
@@ -526,7 +525,7 @@ Object *BKE_mball_basis_find(Scene *scene, Object *basis)
char basisname[MAX_ID_NAME], obname[MAX_ID_NAME];
BLI_split_name_num(basisname, &basisnr, basis->id.name + 2, '.');
- totelem = 0;
+ G_mb.totelem = 0;
/* XXX recursion check, see scene.c, just too simple code this BKE_scene_base_iter_next() */
if (F_ERROR == BKE_scene_base_iter_next(&sce_iter, 0, NULL, NULL))
@@ -563,13 +562,14 @@ Object *BKE_mball_basis_find(Scene *scene, Object *basis)
basis = ob;
basisnr = obnr;
}
- }
+ }
}
}
- while (ml) {
- if (!(ml->flag & MB_HIDE)) totelem++;
- ml = ml->next;
+ for ( ; ml; ml = ml->next) {
+ if (!(ml->flag & MB_HIDE)) {
+ G_mb.totelem++;
+ }
}
}
}
@@ -631,77 +631,73 @@ static void calc_mballco(MetaElem *ml, float vec[3])
static float densfunc(MetaElem *ball, float x, float y, float z)
{
- float dist2 = 0.0, dx, dy, dz;
- float vec[3];
-
- vec[0] = x;
- vec[1] = y;
- vec[2] = z;
- mul_m4_v3((float (*)[4])ball->imat, vec);
- dx = vec[0];
- dy = vec[1];
- dz = vec[2];
-
- if (ball->type == MB_BALL) {
- }
- else if (ball->type == MB_TUBEX) {
- if (dx > ball->len) dx -= ball->len;
- else if (dx < -ball->len) dx += ball->len;
- else dx = 0.0;
- }
- else if (ball->type == MB_TUBEY) {
- if (dy > ball->len) dy -= ball->len;
- else if (dy < -ball->len) dy += ball->len;
- else dy = 0.0;
- }
- else if (ball->type == MB_TUBEZ) {
- if (dz > ball->len) dz -= ball->len;
- else if (dz < -ball->len) dz += ball->len;
- else dz = 0.0;
- }
- else if (ball->type == MB_TUBE) {
- if (dx > ball->expx) dx -= ball->expx;
- else if (dx < -ball->expx) dx += ball->expx;
- else dx = 0.0;
- }
- else if (ball->type == MB_PLANE) {
- if (dx > ball->expx) dx -= ball->expx;
- else if (dx < -ball->expx) dx += ball->expx;
- else dx = 0.0;
- if (dy > ball->expy) dy -= ball->expy;
- else if (dy < -ball->expy) dy += ball->expy;
- else dy = 0.0;
- }
- else if (ball->type == MB_ELIPSOID) {
- dx *= 1 / ball->expx;
- dy *= 1 / ball->expy;
- dz *= 1 / ball->expz;
- }
- else if (ball->type == MB_CUBE) {
- if (dx > ball->expx) dx -= ball->expx;
- else if (dx < -ball->expx) dx += ball->expx;
- else dx = 0.0;
- if (dy > ball->expy) dy -= ball->expy;
- else if (dy < -ball->expy) dy += ball->expy;
- else dy = 0.0;
- if (dz > ball->expz) dz -= ball->expz;
- else if (dz < -ball->expz) dz += ball->expz;
- else dz = 0.0;
- }
-
- dist2 = (dx * dx + dy * dy + dz * dz);
-
- if (ball->flag & MB_NEGATIVE) {
- dist2 = 1.0f - (dist2 / ball->rad2);
- if (dist2 < 0.0f) return 0.5f;
-
- return 0.5f - ball->s * dist2 * dist2 * dist2;
+ float dist2;
+ float dvec[3] = {x, y, z};
+
+ mul_m4_v3((float (*)[4])ball->imat, dvec);
+
+ switch (ball->type) {
+ case MB_BALL:
+ /* do nothing */
+ break;
+ case MB_TUBE:
+ if (dvec[0] > ball->expx) dvec[0] -= ball->expx;
+ else if (dvec[0] < -ball->expx) dvec[0] += ball->expx;
+ else dvec[0] = 0.0;
+ break;
+ case MB_PLANE:
+ if (dvec[0] > ball->expx) dvec[0] -= ball->expx;
+ else if (dvec[0] < -ball->expx) dvec[0] += ball->expx;
+ else dvec[0] = 0.0;
+ if (dvec[1] > ball->expy) dvec[1] -= ball->expy;
+ else if (dvec[1] < -ball->expy) dvec[1] += ball->expy;
+ else dvec[1] = 0.0;
+ break;
+ case MB_ELIPSOID:
+ dvec[0] /= ball->expx;
+ dvec[1] /= ball->expy;
+ dvec[2] /= ball->expz;
+ break;
+ case MB_CUBE:
+ if (dvec[0] > ball->expx) dvec[0] -= ball->expx;
+ else if (dvec[0] < -ball->expx) dvec[0] += ball->expx;
+ else dvec[0] = 0.0;
+
+ if (dvec[1] > ball->expy) dvec[1] -= ball->expy;
+ else if (dvec[1] < -ball->expy) dvec[1] += ball->expy;
+ else dvec[1] = 0.0;
+
+ if (dvec[2] > ball->expz) dvec[2] -= ball->expz;
+ else if (dvec[2] < -ball->expz) dvec[2] += ball->expz;
+ else dvec[2] = 0.0;
+ break;
+
+ /* *** deprecated, could be removed?, do-versioned at least *** */
+ case MB_TUBEX:
+ if (dvec[0] > ball->len) dvec[0] -= ball->len;
+ else if (dvec[0] < -ball->len) dvec[0] += ball->len;
+ else dvec[0] = 0.0;
+ break;
+ case MB_TUBEY:
+ if (dvec[1] > ball->len) dvec[1] -= ball->len;
+ else if (dvec[1] < -ball->len) dvec[1] += ball->len;
+ else dvec[1] = 0.0;
+ break;
+ case MB_TUBEZ:
+ if (dvec[2] > ball->len) dvec[2] -= ball->len;
+ else if (dvec[2] < -ball->len) dvec[2] += ball->len;
+ else dvec[2] = 0.0;
+ break;
+ /* *** end deprecated *** */
}
- else {
- dist2 = 1.0f - (dist2 / ball->rad2);
- if (dist2 < 0.0f) return -0.5f;
- return ball->s * dist2 * dist2 * dist2 - 0.5f;
+ dist2 = 1.0f - (len_squared_v3(dvec) / ball->rad2);
+
+ if ((ball->flag & MB_NEGATIVE) == 0) {
+ return (dist2 < 0.0f) ? -0.5f : (ball->s * dist2 * dist2 * dist2) - 0.5f;
+ }
+ else {
+ return (dist2 < 0.0f) ? 0.5f : 0.5f - (ball->s * dist2 * dist2 * dist2);
}
}
@@ -736,7 +732,7 @@ static octal_node *find_metaball_octal_node(octal_node *node, float x, float y,
return find_metaball_octal_node(node->nodes[2], x, y, z, depth--);
else
return node;
- }
+ }
}
}
else {
@@ -766,7 +762,7 @@ static octal_node *find_metaball_octal_node(octal_node *node, float x, float y,
return find_metaball_octal_node(node->nodes[6], x, y, z, depth--);
else
return node;
- }
+ }
}
}
@@ -781,30 +777,27 @@ static float metaball(float x, float y, float z)
float dens = 0;
int a;
- if (totelem > 1) {
- node = find_metaball_octal_node(metaball_tree->first, x, y, z, metaball_tree->depth);
+ if (G_mb.totelem > 1) {
+ node = find_metaball_octal_node(G_mb.metaball_tree->first, x, y, z, G_mb.metaball_tree->depth);
if (node) {
- ml_p = node->elems.first;
-
- while (ml_p) {
+ for (ml_p = node->elems.first; ml_p; ml_p = ml_p->next) {
dens += densfunc(ml_p->ml, x, y, z);
- ml_p = ml_p->next;
}
- dens += -0.5f * (metaball_tree->pos - node->pos);
- dens += 0.5f * (metaball_tree->neg - node->neg);
+ dens += -0.5f * (G_mb.metaball_tree->pos - node->pos);
+ dens += 0.5f * (G_mb.metaball_tree->neg - node->neg);
}
else {
- for (a = 0; a < totelem; a++) {
- dens += densfunc(mainb[a], x, y, z);
+ for (a = 0; a < G_mb.totelem; a++) {
+ dens += densfunc(G_mb.mainb[a], x, y, z);
}
}
}
else {
- dens += densfunc(mainb[0], x, y, z);
+ dens += densfunc(G_mb.mainb[0], x, y, z);
}
- return thresh - dens;
+ return G_mb.thresh - dens;
}
/* ******************************************** */
@@ -868,7 +861,7 @@ static void *new_pgn_element(int size)
}
BLI_freelistN(&lb);
- return NULL;
+ return NULL;
}
size = 4 * ( (size + 3) / 4);
@@ -1074,12 +1067,12 @@ static CORNER *setcorner(PROCESS *p, int i, int j, int k)
c = (CORNER *) new_pgn_element(sizeof(CORNER));
c->i = i;
- c->x = ((float)i - 0.5f) * p->size;
+ c->co[0] = ((float)i - 0.5f) * p->size;
c->j = j;
- c->y = ((float)j - 0.5f) * p->size;
+ c->co[1] = ((float)j - 0.5f) * p->size;
c->k = k;
- c->z = ((float)k - 0.5f) * p->size;
- c->value = p->function(c->x, c->y, c->z);
+ c->co[2] = ((float)k - 0.5f) * p->size;
+ c->value = p->function(c->co[0], c->co[1], c->co[2]);
c->next = p->corners[index];
p->corners[index] = c;
@@ -1204,7 +1197,7 @@ void BKE_mball_cubeTable_free(void)
/* setcenter: set (i, j, k) entry of table[]
* return 1 if already set; otherwise, set and return 0 */
-static int setcenter(CENTERLIST *table[], int i, int j, int k)
+static int setcenter(CENTERLIST *table[], const int i, const int j, const int k)
{
int index;
CENTERLIST *newc, *l, *q;
@@ -1324,72 +1317,46 @@ static void addtovertices(VERTICES *vertices, VERTEX v)
/* vnormal: compute unit length surface normal at point */
-static void vnormal(MB_POINT *point, PROCESS *p, MB_POINT *v)
+static void vnormal(const float point[3], PROCESS *p, float r_no[3])
{
float delta = 0.2f * p->delta;
- float f = p->function(point->x, point->y, point->z);
+ float f = p->function(point[0], point[1], point[2]);
- v->x = p->function(point->x + delta, point->y, point->z) - f;
- v->y = p->function(point->x, point->y + delta, point->z) - f;
- v->z = p->function(point->x, point->y, point->z + delta) - f;
- f = sqrtf(v->x * v->x + v->y * v->y + v->z * v->z);
-
- if (f != 0.0f) {
- v->x /= f;
- v->y /= f;
- v->z /= f;
- }
+ r_no[0] = p->function(point[0] + delta, point[1], point[2]) - f;
+ r_no[1] = p->function(point[0], point[1] + delta, point[2]) - f;
+ r_no[2] = p->function(point[0], point[1], point[2] + delta) - f;
+ f = normalize_v3(r_no);
- if (FALSE) {
- MB_POINT temp;
+ if (0) {
+ float tvec[3];
delta *= 2.0f;
- f = p->function(point->x, point->y, point->z);
+ f = p->function(point[0], point[1], point[2]);
- temp.x = p->function(point->x + delta, point->y, point->z) - f;
- temp.y = p->function(point->x, point->y + delta, point->z) - f;
- temp.z = p->function(point->x, point->y, point->z + delta) - f;
- f = sqrtf(temp.x * temp.x + temp.y * temp.y + temp.z * temp.z);
+ tvec[0] = p->function(point[0] + delta, point[1], point[2]) - f;
+ tvec[1] = p->function(point[0], point[1] + delta, point[2]) - f;
+ tvec[2] = p->function(point[0], point[1], point[2] + delta) - f;
- if (f != 0.0f) {
- temp.x /= f;
- temp.y /= f;
- temp.z /= f;
-
- v->x += temp.x;
- v->y += temp.y;
- v->z += temp.z;
-
- f = sqrtf(v->x * v->x + v->y * v->y + v->z * v->z);
-
- if (f != 0.0f) {
- v->x /= f;
- v->y /= f;
- v->z /= f;
- }
+ if (normalize_v3(tvec) != 0.0f) {
+ add_v3_v3(r_no, tvec);
+ normalize_v3(r_no);
}
}
-
}
-static int vertid(CORNER *c1, CORNER *c2, PROCESS *p, MetaBall *mb)
+static int vertid(const CORNER *c1, const CORNER *c2, PROCESS *p, MetaBall *mb)
{
VERTEX v;
- MB_POINT a, b;
int vid = getedge(p->edges, c1->i, c1->j, c1->k, c2->i, c2->j, c2->k);
- if (vid != -1) return vid; /* previously computed */
- a.x = c1->x;
- a.y = c1->y;
- a.z = c1->z;
- b.x = c2->x;
- b.y = c2->y;
- b.z = c2->z;
+ if (vid != -1) {
+ return vid; /* previously computed */
+ }
- converge(&a, &b, c1->value, c2->value, p->function, &v.position, mb, 1); /* position */
- vnormal(&v.position, p, &v.normal);
+ converge(c1->co, c2->co, c1->value, c2->value, p->function, v.co, mb, 1); /* position */
+ vnormal(v.co, p, v.no);
addtovertices(&p->vertices, v); /* save vertex */
vid = p->vertices.count - 1;
@@ -1403,101 +1370,95 @@ static int vertid(CORNER *c1, CORNER *c2, PROCESS *p, MetaBall *mb)
/* converge: from two points of differing sign, converge to zero crossing */
/* watch it: p1 and p2 are used to calculate */
-static void converge(MB_POINT *p1, MB_POINT *p2, float v1, float v2,
- float (*function)(float, float, float), MB_POINT *p, MetaBall *mb, int f)
+static void converge(const float p1[3], const float p2[3], float v1, float v2,
+ float (*function)(float, float, float), float p[3], MetaBall *mb, int f)
{
int i = 0;
- MB_POINT pos, neg;
+ float pos[3], neg[3];
float positive = 0.0f, negative = 0.0f;
- float dx = 0.0f, dy = 0.0f, dz = 0.0f;
+ float dvec[3];
if (v1 < 0) {
- pos = *p2;
- neg = *p1;
+ copy_v3_v3(pos, p2);
+ copy_v3_v3(neg, p1);
positive = v2;
negative = v1;
}
else {
- pos = *p1;
- neg = *p2;
+ copy_v3_v3(pos, p1);
+ copy_v3_v3(neg, p2);
positive = v1;
negative = v2;
}
- dx = pos.x - neg.x;
- dy = pos.y - neg.y;
- dz = pos.z - neg.z;
+ sub_v3_v3v3(dvec, pos, neg);
/* Approximation by linear interpolation is faster then binary subdivision,
* but it results sometimes (mb->thresh < 0.2) into the strange results */
if ((mb->thresh > 0.2f) && (f == 1)) {
- if ((dy == 0.0f) && (dz == 0.0f)) {
- p->x = neg.x - negative * dx / (positive - negative);
- p->y = neg.y;
- p->z = neg.z;
+ if ((dvec[1] == 0.0f) && (dvec[2] == 0.0f)) {
+ p[0] = neg[0] - negative * dvec[0] / (positive - negative);
+ p[1] = neg[1];
+ p[2] = neg[2];
return;
}
- if ((dx == 0.0f) && (dz == 0.0f)) {
- p->x = neg.x;
- p->y = neg.y - negative * dy / (positive - negative);
- p->z = neg.z;
+ if ((dvec[0] == 0.0f) && (dvec[2] == 0.0f)) {
+ p[0] = neg[0];
+ p[1] = neg[1] - negative * dvec[1] / (positive - negative);
+ p[2] = neg[2];
return;
}
- if ((dx == 0.0f) && (dy == 0.0f)) {
- p->x = neg.x;
- p->y = neg.y;
- p->z = neg.z - negative * dz / (positive - negative);
+ if ((dvec[0] == 0.0f) && (dvec[1] == 0.0f)) {
+ p[0] = neg[0];
+ p[1] = neg[1];
+ p[2] = neg[2] - negative * dvec[2] / (positive - negative);
return;
}
}
- if ((dy == 0.0f) && (dz == 0.0f)) {
- p->y = neg.y;
- p->z = neg.z;
+ if ((dvec[1] == 0.0f) && (dvec[2] == 0.0f)) {
+ p[1] = neg[1];
+ p[2] = neg[2];
while (1) {
if (i++ == RES) return;
- p->x = 0.5f * (pos.x + neg.x);
- if ((function(p->x, p->y, p->z)) > 0.0f) pos.x = p->x; else neg.x = p->x;
+ p[0] = 0.5f * (pos[0] + neg[0]);
+ if ((function(p[0], p[1], p[2])) > 0.0f) pos[0] = p[0]; else neg[0] = p[0];
}
}
- if ((dx == 0.0f) && (dz == 0.0f)) {
- p->x = neg.x;
- p->z = neg.z;
+ if ((dvec[0] == 0.0f) && (dvec[2] == 0.0f)) {
+ p[0] = neg[0];
+ p[2] = neg[2];
while (1) {
if (i++ == RES) return;
- p->y = 0.5f * (pos.y + neg.y);
- if ((function(p->x, p->y, p->z)) > 0.0f) pos.y = p->y; else neg.y = p->y;
+ p[1] = 0.5f * (pos[1] + neg[1]);
+ if ((function(p[0], p[1], p[2])) > 0.0f) pos[1] = p[1]; else neg[1] = p[1];
}
}
-
- if ((dx == 0.0f) && (dy == 0.0f)) {
- p->x = neg.x;
- p->y = neg.y;
+
+ if ((dvec[0] == 0.0f) && (dvec[1] == 0.0f)) {
+ p[0] = neg[0];
+ p[1] = neg[1];
while (1) {
if (i++ == RES) return;
- p->z = 0.5f * (pos.z + neg.z);
- if ((function(p->x, p->y, p->z)) > 0.0f) pos.z = p->z; else neg.z = p->z;
+ p[2] = 0.5f * (pos[2] + neg[2]);
+ if ((function(p[0], p[1], p[2])) > 0.0f) pos[2] = p[2]; else neg[2] = p[2];
}
}
/* This is necessary to find start point */
while (1) {
- p->x = 0.5f * (pos.x + neg.x);
- p->y = 0.5f * (pos.y + neg.y);
- p->z = 0.5f * (pos.z + neg.z);
-
- if (i++ == RES) return;
-
- if ((function(p->x, p->y, p->z)) > 0.0f) {
- pos.x = p->x;
- pos.y = p->y;
- pos.z = p->z;
+ mid_v3_v3v3(&p[0], pos, neg);
+
+ if (i++ == RES) {
+ return;
+ }
+
+ if ((function(p[0], p[1], p[2])) > 0.0f) {
+ copy_v3_v3(pos, &p[0]);
}
else {
- neg.x = p->x;
- neg.y = p->y;
- neg.z = p->z;
+ copy_v3_v3(neg, &p[0]);
}
}
}
@@ -1535,114 +1496,111 @@ static void add_cube(PROCESS *mbproc, int i, int j, int k, int count)
static void find_first_points(PROCESS *mbproc, MetaBall *mb, int a)
{
- MB_POINT IN, in, OUT, out; /*point;*/
MetaElem *ml;
- int i, j, k, c_i, c_j, c_k;
- int index[3] = {1, 0, -1};
float f = 0.0f;
- float in_v /*, out_v*/;
- MB_POINT workp;
- float tmp_v, workp_v, max_len, len, dx, dy, dz, nx, ny, nz, MAXN;
-
- ml = mainb[a];
- f = 1 - (mb->thresh / ml->s);
+ ml = G_mb.mainb[a];
+ f = 1.0 - (mb->thresh / ml->s);
/* Skip, when Stiffness of MetaElement is too small ... MetaElement can't be
* visible alone ... but still can influence others MetaElements :-) */
if (f > 0.0f) {
- OUT.x = IN.x = in.x = 0.0;
- OUT.y = IN.y = in.y = 0.0;
- OUT.z = IN.z = in.z = 0.0;
+ float IN[3] = {0.0f}, OUT[3] = {0.0f}, in[3] = {0.0f}, out[3];
+ int i, j, k, c_i, c_j, c_k;
+ int index[3] = {1, 0, -1};
+ float in_v /*, out_v*/;
+ float workp[3];
+ float dvec[3];
+ float tmp_v, workp_v, max_len, len, nx, ny, nz, MAXN;
- calc_mballco(ml, (float *)&in);
- in_v = mbproc->function(in.x, in.y, in.z);
+ calc_mballco(ml, in);
+ in_v = mbproc->function(in[0], in[1], in[2]);
for (i = 0; i < 3; i++) {
switch (ml->type) {
case MB_BALL:
- OUT.x = out.x = IN.x + index[i] * ml->rad;
+ OUT[0] = out[0] = IN[0] + index[i] * ml->rad;
break;
case MB_TUBE:
case MB_PLANE:
case MB_ELIPSOID:
case MB_CUBE:
- OUT.x = out.x = IN.x + index[i] * (ml->expx + ml->rad);
+ OUT[0] = out[0] = IN[0] + index[i] * (ml->expx + ml->rad);
break;
}
for (j = 0; j < 3; j++) {
switch (ml->type) {
case MB_BALL:
- OUT.y = out.y = IN.y + index[j] * ml->rad;
+ OUT[1] = out[1] = IN[1] + index[j] * ml->rad;
break;
case MB_TUBE:
case MB_PLANE:
case MB_ELIPSOID:
case MB_CUBE:
- OUT.y = out.y = IN.y + index[j] * (ml->expy + ml->rad);
+ OUT[1] = out[1] = IN[1] + index[j] * (ml->expy + ml->rad);
break;
}
for (k = 0; k < 3; k++) {
- out.x = OUT.x;
- out.y = OUT.y;
+ out[0] = OUT[0];
+ out[1] = OUT[1];
switch (ml->type) {
case MB_BALL:
case MB_TUBE:
case MB_PLANE:
- out.z = IN.z + index[k] * ml->rad;
+ out[2] = IN[2] + index[k] * ml->rad;
break;
case MB_ELIPSOID:
case MB_CUBE:
- out.z = IN.z + index[k] * (ml->expz + ml->rad);
+ out[2] = IN[2] + index[k] * (ml->expz + ml->rad);
break;
}
- calc_mballco(ml, (float *)&out);
+ calc_mballco(ml, out);
- /*out_v = mbproc->function(out.x, out.y, out.z);*/ /*UNUSED*/
+ /*out_v = mbproc->function(out[0], out[1], out[2]);*/ /*UNUSED*/
/* find "first points" on Implicit Surface of MetaElemnt ml */
- workp.x = in.x;
- workp.y = in.y;
- workp.z = in.z;
+ copy_v3_v3(workp, in);
workp_v = in_v;
- max_len = sqrtf((out.x - in.x) * (out.x - in.x) + (out.y - in.y) * (out.y - in.y) + (out.z - in.z) * (out.z - in.z));
+ max_len = len_v3v3(out, in);
- nx = abs((out.x - in.x) / mbproc->size);
- ny = abs((out.y - in.y) / mbproc->size);
- nz = abs((out.z - in.z) / mbproc->size);
+ nx = abs((out[0] - in[0]) / mbproc->size);
+ ny = abs((out[1] - in[1]) / mbproc->size);
+ nz = abs((out[2] - in[2]) / mbproc->size);
MAXN = MAX3(nx, ny, nz);
if (MAXN != 0.0f) {
- dx = (out.x - in.x) / MAXN;
- dy = (out.y - in.y) / MAXN;
- dz = (out.z - in.z) / MAXN;
+ dvec[0] = (out[0] - in[0]) / MAXN;
+ dvec[1] = (out[1] - in[1]) / MAXN;
+ dvec[2] = (out[2] - in[2]) / MAXN;
len = 0.0;
while (len <= max_len) {
- workp.x += dx;
- workp.y += dy;
- workp.z += dz;
+ workp[0] += dvec[0];
+ workp[1] += dvec[1];
+ workp[2] += dvec[2];
/* compute value of implicite function */
- tmp_v = mbproc->function(workp.x, workp.y, workp.z);
+ tmp_v = mbproc->function(workp[0], workp[1], workp[2]);
/* add cube to the stack, when value of implicite function crosses zero value */
if ((tmp_v < 0.0f && workp_v >= 0.0f) || (tmp_v > 0.0f && workp_v <= 0.0f)) {
/* indexes of CUBE, which includes "first point" */
- c_i = (int)floor(workp.x / mbproc->size);
- c_j = (int)floor(workp.y / mbproc->size);
- c_k = (int)floor(workp.z / mbproc->size);
+ c_i = (int)floor(workp[0] / mbproc->size);
+ c_j = (int)floor(workp[1] / mbproc->size);
+ c_k = (int)floor(workp[2] / mbproc->size);
/* add CUBE (with indexes c_i, c_j, c_k) to the stack,
* this cube includes found point of Implicit Surface */
- if (ml->flag & MB_NEGATIVE)
- add_cube(mbproc, c_i, c_j, c_k, 2);
- else
+ if ((ml->flag & MB_NEGATIVE) == 0) {
add_cube(mbproc, c_i, c_j, c_k, 1);
+ }
+ else {
+ add_cube(mbproc, c_i, c_j, c_k, 2);
+ }
}
- len = sqrtf((workp.x - in.x) * (workp.x - in.x) + (workp.y - in.y) * (workp.y - in.y) + (workp.z - in.z) * (workp.z - in.z));
+ len = len_v3v3(workp, in);
workp_v = tmp_v;
}
@@ -1667,10 +1625,10 @@ static void polygonize(PROCESS *mbproc, MetaBall *mb)
mbproc->edges = MEM_callocN(2 * HASHSIZE * sizeof(EDGELIST *), "mbproc->edges");
makecubetable();
- for (a = 0; a < totelem; a++) {
+ for (a = 0; a < G_mb.totelem; a++) {
/* try to find 8 points on the surface for each MetaElem */
- find_first_points(mbproc, mb, a);
+ find_first_points(mbproc, mb, a);
}
/* polygonize all MetaElems of current MetaBall */
@@ -1760,7 +1718,7 @@ static float init_meta(Scene *scene, Object *ob) /* return totsize */
ml_count++;
ml = ml->next;
}
- totelem -= ml_count;
+ G_mb.totelem -= ml_count;
}
else {
while (ml) {
@@ -1789,9 +1747,9 @@ static float init_meta(Scene *scene, Object *ob) /* return totsize */
mult_m4_m4m4(temp1, temp2, temp3);
/* make a copy because of duplicates */
- mainb[a] = new_pgn_element(sizeof(MetaElem));
- *(mainb[a]) = *ml;
- mainb[a]->bb = new_pgn_element(sizeof(BoundBox));
+ G_mb.mainb[a] = new_pgn_element(sizeof(MetaElem));
+ *(G_mb.mainb[a]) = *ml;
+ G_mb.mainb[a]->bb = new_pgn_element(sizeof(BoundBox));
mat = new_pgn_element(4 * 4 * sizeof(float));
imat = new_pgn_element(4 * 4 * sizeof(float));
@@ -1804,70 +1762,70 @@ static float init_meta(Scene *scene, Object *ob) /* return totsize */
invert_m4_m4(imat, mat);
- mainb[a]->rad2 = ml->rad * ml->rad;
+ G_mb.mainb[a]->rad2 = ml->rad * ml->rad;
- mainb[a]->mat = (float *) mat;
- mainb[a]->imat = (float *) imat;
+ G_mb.mainb[a]->mat = (float *) mat;
+ G_mb.mainb[a]->imat = (float *) imat;
/* untransformed Bounding Box of MetaElem */
/* 0 */
- mainb[a]->bb->vec[0][0] = -ml->expx;
- mainb[a]->bb->vec[0][1] = -ml->expy;
- mainb[a]->bb->vec[0][2] = -ml->expz;
+ G_mb.mainb[a]->bb->vec[0][0] = -ml->expx;
+ G_mb.mainb[a]->bb->vec[0][1] = -ml->expy;
+ G_mb.mainb[a]->bb->vec[0][2] = -ml->expz;
/* 1 */
- mainb[a]->bb->vec[1][0] = ml->expx;
- mainb[a]->bb->vec[1][1] = -ml->expy;
- mainb[a]->bb->vec[1][2] = -ml->expz;
+ G_mb.mainb[a]->bb->vec[1][0] = ml->expx;
+ G_mb.mainb[a]->bb->vec[1][1] = -ml->expy;
+ G_mb.mainb[a]->bb->vec[1][2] = -ml->expz;
/* 2 */
- mainb[a]->bb->vec[2][0] = ml->expx;
- mainb[a]->bb->vec[2][1] = ml->expy;
- mainb[a]->bb->vec[2][2] = -ml->expz;
+ G_mb.mainb[a]->bb->vec[2][0] = ml->expx;
+ G_mb.mainb[a]->bb->vec[2][1] = ml->expy;
+ G_mb.mainb[a]->bb->vec[2][2] = -ml->expz;
/* 3 */
- mainb[a]->bb->vec[3][0] = -ml->expx;
- mainb[a]->bb->vec[3][1] = ml->expy;
- mainb[a]->bb->vec[3][2] = -ml->expz;
+ G_mb.mainb[a]->bb->vec[3][0] = -ml->expx;
+ G_mb.mainb[a]->bb->vec[3][1] = ml->expy;
+ G_mb.mainb[a]->bb->vec[3][2] = -ml->expz;
/* 4 */
- mainb[a]->bb->vec[4][0] = -ml->expx;
- mainb[a]->bb->vec[4][1] = -ml->expy;
- mainb[a]->bb->vec[4][2] = ml->expz;
+ G_mb.mainb[a]->bb->vec[4][0] = -ml->expx;
+ G_mb.mainb[a]->bb->vec[4][1] = -ml->expy;
+ G_mb.mainb[a]->bb->vec[4][2] = ml->expz;
/* 5 */
- mainb[a]->bb->vec[5][0] = ml->expx;
- mainb[a]->bb->vec[5][1] = -ml->expy;
- mainb[a]->bb->vec[5][2] = ml->expz;
+ G_mb.mainb[a]->bb->vec[5][0] = ml->expx;
+ G_mb.mainb[a]->bb->vec[5][1] = -ml->expy;
+ G_mb.mainb[a]->bb->vec[5][2] = ml->expz;
/* 6 */
- mainb[a]->bb->vec[6][0] = ml->expx;
- mainb[a]->bb->vec[6][1] = ml->expy;
- mainb[a]->bb->vec[6][2] = ml->expz;
+ G_mb.mainb[a]->bb->vec[6][0] = ml->expx;
+ G_mb.mainb[a]->bb->vec[6][1] = ml->expy;
+ G_mb.mainb[a]->bb->vec[6][2] = ml->expz;
/* 7 */
- mainb[a]->bb->vec[7][0] = -ml->expx;
- mainb[a]->bb->vec[7][1] = ml->expy;
- mainb[a]->bb->vec[7][2] = ml->expz;
+ G_mb.mainb[a]->bb->vec[7][0] = -ml->expx;
+ G_mb.mainb[a]->bb->vec[7][1] = ml->expy;
+ G_mb.mainb[a]->bb->vec[7][2] = ml->expz;
/* transformation of Metalem bb */
for (i = 0; i < 8; i++)
- mul_m4_v3((float (*)[4])mat, mainb[a]->bb->vec[i]);
+ mul_m4_v3((float (*)[4])mat, G_mb.mainb[a]->bb->vec[i]);
/* find max and min of transformed bb */
for (i = 0; i < 8; i++) {
/* find maximums */
- if (mainb[a]->bb->vec[i][0] > max_x) max_x = mainb[a]->bb->vec[i][0];
- if (mainb[a]->bb->vec[i][1] > max_y) max_y = mainb[a]->bb->vec[i][1];
- if (mainb[a]->bb->vec[i][2] > max_z) max_z = mainb[a]->bb->vec[i][2];
+ if (G_mb.mainb[a]->bb->vec[i][0] > max_x) max_x = G_mb.mainb[a]->bb->vec[i][0];
+ if (G_mb.mainb[a]->bb->vec[i][1] > max_y) max_y = G_mb.mainb[a]->bb->vec[i][1];
+ if (G_mb.mainb[a]->bb->vec[i][2] > max_z) max_z = G_mb.mainb[a]->bb->vec[i][2];
/* find minimums */
- if (mainb[a]->bb->vec[i][0] < min_x) min_x = mainb[a]->bb->vec[i][0];
- if (mainb[a]->bb->vec[i][1] < min_y) min_y = mainb[a]->bb->vec[i][1];
- if (mainb[a]->bb->vec[i][2] < min_z) min_z = mainb[a]->bb->vec[i][2];
+ if (G_mb.mainb[a]->bb->vec[i][0] < min_x) min_x = G_mb.mainb[a]->bb->vec[i][0];
+ if (G_mb.mainb[a]->bb->vec[i][1] < min_y) min_y = G_mb.mainb[a]->bb->vec[i][1];
+ if (G_mb.mainb[a]->bb->vec[i][2] < min_z) min_z = G_mb.mainb[a]->bb->vec[i][2];
}
/* create "new" bb, only point 0 and 6, which are
* necessary for octal tree filling */
- mainb[a]->bb->vec[0][0] = min_x - ml->rad;
- mainb[a]->bb->vec[0][1] = min_y - ml->rad;
- mainb[a]->bb->vec[0][2] = min_z - ml->rad;
+ G_mb.mainb[a]->bb->vec[0][0] = min_x - ml->rad;
+ G_mb.mainb[a]->bb->vec[0][1] = min_y - ml->rad;
+ G_mb.mainb[a]->bb->vec[0][2] = min_z - ml->rad;
- mainb[a]->bb->vec[6][0] = max_x + ml->rad;
- mainb[a]->bb->vec[6][1] = max_y + ml->rad;
- mainb[a]->bb->vec[6][2] = max_z + ml->rad;
+ G_mb.mainb[a]->bb->vec[6][0] = max_x + ml->rad;
+ G_mb.mainb[a]->bb->vec[6][1] = max_y + ml->rad;
+ G_mb.mainb[a]->bb->vec[6][2] = max_z + ml->rad;
a++;
}
@@ -1880,13 +1838,13 @@ static float init_meta(Scene *scene, Object *ob) /* return totsize */
/* totsize (= 'manhattan' radius) */
totsize = 0.0;
- for (a = 0; a < totelem; a++) {
+ for (a = 0; a < G_mb.totelem; a++) {
- vec[0] = mainb[a]->x + mainb[a]->rad + mainb[a]->expx;
- vec[1] = mainb[a]->y + mainb[a]->rad + mainb[a]->expy;
- vec[2] = mainb[a]->z + mainb[a]->rad + mainb[a]->expz;
+ vec[0] = G_mb.mainb[a]->x + G_mb.mainb[a]->rad + G_mb.mainb[a]->expx;
+ vec[1] = G_mb.mainb[a]->y + G_mb.mainb[a]->rad + G_mb.mainb[a]->expy;
+ vec[2] = G_mb.mainb[a]->z + G_mb.mainb[a]->rad + G_mb.mainb[a]->expz;
- calc_mballco(mainb[a], vec);
+ calc_mballco(G_mb.mainb[a], vec);
size = fabsf(vec[0]);
if (size > totsize) totsize = size;
@@ -1895,11 +1853,11 @@ static float init_meta(Scene *scene, Object *ob) /* return totsize */
size = fabsf(vec[2]);
if (size > totsize) totsize = size;
- vec[0] = mainb[a]->x - mainb[a]->rad;
- vec[1] = mainb[a]->y - mainb[a]->rad;
- vec[2] = mainb[a]->z - mainb[a]->rad;
+ vec[0] = G_mb.mainb[a]->x - G_mb.mainb[a]->rad;
+ vec[1] = G_mb.mainb[a]->y - G_mb.mainb[a]->rad;
+ vec[2] = G_mb.mainb[a]->z - G_mb.mainb[a]->rad;
- calc_mballco(mainb[a], vec);
+ calc_mballco(G_mb.mainb[a], vec);
size = fabsf(vec[0]);
if (size > totsize) totsize = size;
@@ -1909,8 +1867,8 @@ static float init_meta(Scene *scene, Object *ob) /* return totsize */
if (size > totsize) totsize = size;
}
- for (a = 0; a < totelem; a++) {
- thresh += densfunc(mainb[a], 2.0f * totsize, 2.0f * totsize, 2.0f * totsize);
+ for (a = 0; a < G_mb.totelem; a++) {
+ G_mb.thresh += densfunc(G_mb.mainb[a], 2.0f * totsize, 2.0f * totsize, 2.0f * totsize);
}
return totsize;
@@ -1928,11 +1886,11 @@ static void fill_metaball_octal_node(octal_node *node, MetaElem *ml, short i)
BLI_addtail(&(node->nodes[i]->elems), ml_p);
node->count++;
- if (ml->flag & MB_NEGATIVE) {
- node->nodes[i]->neg++;
+ if ((ml->flag & MB_NEGATIVE) == 0) {
+ node->nodes[i]->pos++;
}
else {
- node->nodes[i]->pos++;
+ node->nodes[i]->neg++;
}
}
@@ -2080,7 +2038,7 @@ static void subdivide_metaball_octal_node(octal_node *node, float size_x, float
}
- /* ml belongs to the (4)5th node too */
+ /* ml belongs to the (4)5th node too */
if (ml->bb->vec[6][2] >= z) {
fill_metaball_octal_node(node, ml, 4);
}
@@ -2226,13 +2184,13 @@ static void init_metaball_octal_tree(int depth)
float size[3];
int a;
- metaball_tree = MEM_mallocN(sizeof(octal_tree), "metaball_octal_tree");
- metaball_tree->first = node = MEM_mallocN(sizeof(octal_node), "metaball_octal_node");
+ G_mb.metaball_tree = MEM_mallocN(sizeof(octal_tree), "metaball_octal_tree");
+ G_mb.metaball_tree->first = node = MEM_mallocN(sizeof(octal_node), "metaball_octal_node");
/* maximal depth of octree */
- metaball_tree->depth = depth;
+ G_mb.metaball_tree->depth = depth;
- metaball_tree->neg = node->neg = 0;
- metaball_tree->pos = node->pos = 0;
+ G_mb.metaball_tree->neg = node->neg = 0;
+ G_mb.metaball_tree->pos = node->pos = 0;
node->elems.first = NULL;
node->elems.last = NULL;
@@ -2245,36 +2203,36 @@ static void init_metaball_octal_tree(int depth)
node->x_max = node->y_max = node->z_max = -FLT_MAX;
/* size of octal tree scene */
- for (a = 0; a < totelem; a++) {
- if (mainb[a]->bb->vec[0][0] < node->x_min) node->x_min = mainb[a]->bb->vec[0][0];
- if (mainb[a]->bb->vec[0][1] < node->y_min) node->y_min = mainb[a]->bb->vec[0][1];
- if (mainb[a]->bb->vec[0][2] < node->z_min) node->z_min = mainb[a]->bb->vec[0][2];
+ for (a = 0; a < G_mb.totelem; a++) {
+ if (G_mb.mainb[a]->bb->vec[0][0] < node->x_min) node->x_min = G_mb.mainb[a]->bb->vec[0][0];
+ if (G_mb.mainb[a]->bb->vec[0][1] < node->y_min) node->y_min = G_mb.mainb[a]->bb->vec[0][1];
+ if (G_mb.mainb[a]->bb->vec[0][2] < node->z_min) node->z_min = G_mb.mainb[a]->bb->vec[0][2];
- if (mainb[a]->bb->vec[6][0] > node->x_max) node->x_max = mainb[a]->bb->vec[6][0];
- if (mainb[a]->bb->vec[6][1] > node->y_max) node->y_max = mainb[a]->bb->vec[6][1];
- if (mainb[a]->bb->vec[6][2] > node->z_max) node->z_max = mainb[a]->bb->vec[6][2];
+ if (G_mb.mainb[a]->bb->vec[6][0] > node->x_max) node->x_max = G_mb.mainb[a]->bb->vec[6][0];
+ if (G_mb.mainb[a]->bb->vec[6][1] > node->y_max) node->y_max = G_mb.mainb[a]->bb->vec[6][1];
+ if (G_mb.mainb[a]->bb->vec[6][2] > node->z_max) node->z_max = G_mb.mainb[a]->bb->vec[6][2];
ml_p = MEM_mallocN(sizeof(ml_pointer), "ml_pointer");
- ml_p->ml = mainb[a];
+ ml_p->ml = G_mb.mainb[a];
BLI_addtail(&node->elems, ml_p);
- if (mainb[a]->flag & MB_NEGATIVE) {
- /* number of negative MetaElem in scene */
- metaball_tree->neg++;
+ if ((G_mb.mainb[a]->flag & MB_NEGATIVE) == 0) {
+ /* number of positive MetaElem in scene */
+ G_mb.metaball_tree->pos++;
}
else {
- /* number of positive MetaElem in scene */
- metaball_tree->pos++;
+ /* number of negative MetaElem in scene */
+ G_mb.metaball_tree->neg++;
}
}
- /* size of first node */
+ /* size of first node */
size[0] = node->x_max - node->x_min;
size[1] = node->y_max - node->y_min;
size[2] = node->z_max - node->z_min;
/* first node is subdivided recursively */
- subdivide_metaball_octal_node(node, size[0], size[1], size[2], metaball_tree->depth);
+ subdivide_metaball_octal_node(node, size[0], size[1], size[2], G_mb.metaball_tree->depth);
}
void BKE_mball_polygonize(Scene *scene, Object *ob, ListBase *dispbase)
@@ -2283,59 +2241,59 @@ void BKE_mball_polygonize(Scene *scene, Object *ob, ListBase *dispbase)
MetaBall *mb;
DispList *dl;
int a, nr_cubes;
- float *ve, *no, totsize, width;
+ float *co, *no, totsize, width;
mb = ob->data;
- if (totelem == 0) return;
- if (!(G.rendering) && (mb->flag == MB_UPDATE_NEVER)) return;
+ if (G_mb.totelem == 0) return;
+ if ((G.is_rendering == FALSE) && (mb->flag == MB_UPDATE_NEVER)) return;
if (G.moving && mb->flag == MB_UPDATE_FAST) return;
curindex = totindex = 0;
indices = NULL;
- thresh = mb->thresh;
+ G_mb.thresh = mb->thresh;
/* total number of MetaElems (totelem) is precomputed in find_basis_mball() function */
- mainb = MEM_mallocN(sizeof(void *) * totelem, "mainb");
+ G_mb.mainb = MEM_mallocN(sizeof(void *) * G_mb.totelem, "mainb");
/* initialize all mainb (MetaElems) */
totsize = init_meta(scene, ob);
- if (metaball_tree) {
- free_metaball_octal_node(metaball_tree->first);
- MEM_freeN(metaball_tree);
- metaball_tree = NULL;
+ if (G_mb.metaball_tree) {
+ free_metaball_octal_node(G_mb.metaball_tree->first);
+ MEM_freeN(G_mb.metaball_tree);
+ G_mb.metaball_tree = NULL;
}
- /* if scene includes more then one MetaElem, then octal tree optimalisation is used */
- if ((totelem > 1) && (totelem <= 64)) init_metaball_octal_tree(1);
- if ((totelem > 64) && (totelem <= 128)) init_metaball_octal_tree(2);
- if ((totelem > 128) && (totelem <= 512)) init_metaball_octal_tree(3);
- if ((totelem > 512) && (totelem <= 1024)) init_metaball_octal_tree(4);
- if (totelem > 1024) init_metaball_octal_tree(5);
+ /* if scene includes more then one MetaElem, then octal tree optimization is used */
+ if ((G_mb.totelem > 1) && (G_mb.totelem <= 64)) init_metaball_octal_tree(1);
+ if ((G_mb.totelem > 64) && (G_mb.totelem <= 128)) init_metaball_octal_tree(2);
+ if ((G_mb.totelem > 128) && (G_mb.totelem <= 512)) init_metaball_octal_tree(3);
+ if ((G_mb.totelem > 512) && (G_mb.totelem <= 1024)) init_metaball_octal_tree(4);
+ if (G_mb.totelem > 1024) init_metaball_octal_tree(5);
/* don't polygonize metaballs with too high resolution (base mball to small)
* note: Eps was 0.0001f but this was giving problems for blood animation for durian, using 0.00001f */
- if (metaball_tree) {
- if (ob->size[0] <= 0.00001f * (metaball_tree->first->x_max - metaball_tree->first->x_min) ||
- ob->size[1] <= 0.00001f * (metaball_tree->first->y_max - metaball_tree->first->y_min) ||
- ob->size[2] <= 0.00001f * (metaball_tree->first->z_max - metaball_tree->first->z_min))
+ if (G_mb.metaball_tree) {
+ if (ob->size[0] <= 0.00001f * (G_mb.metaball_tree->first->x_max - G_mb.metaball_tree->first->x_min) ||
+ ob->size[1] <= 0.00001f * (G_mb.metaball_tree->first->y_max - G_mb.metaball_tree->first->y_min) ||
+ ob->size[2] <= 0.00001f * (G_mb.metaball_tree->first->z_max - G_mb.metaball_tree->first->z_min))
{
new_pgn_element(-1); /* free values created by init_meta */
- MEM_freeN(mainb);
+ MEM_freeN(G_mb.mainb);
/* free tree */
- free_metaball_octal_node(metaball_tree->first);
- MEM_freeN(metaball_tree);
- metaball_tree = NULL;
+ free_metaball_octal_node(G_mb.metaball_tree->first);
+ MEM_freeN(G_mb.metaball_tree);
+ G_mb.metaball_tree = NULL;
return;
}
}
/* width is size per polygonize cube */
- if (G.rendering) width = mb->rendersize;
+ if (G.is_rendering) width = mb->rendersize;
else {
width = mb->wiresize;
if (G.moving && mb->flag == MB_UPDATE_HALFRES) width *= 2;
@@ -2352,16 +2310,18 @@ void BKE_mball_polygonize(Scene *scene, Object *ob, ListBase *dispbase)
polygonize(&mbproc, mb);
- MEM_freeN(mainb);
+ MEM_freeN(G_mb.mainb);
/* free octal tree */
- if (totelem > 1) {
- free_metaball_octal_node(metaball_tree->first);
- MEM_freeN(metaball_tree);
- metaball_tree = NULL;
+ if (G_mb.totelem > 1) {
+ free_metaball_octal_node(G_mb.metaball_tree->first);
+ MEM_freeN(G_mb.metaball_tree);
+ G_mb.metaball_tree = NULL;
}
if (curindex) {
+ VERTEX *ptr = mbproc.vertices.ptr;
+
dl = MEM_callocN(sizeof(DispList), "mbaldisp");
BLI_addtail(dispbase, dl);
dl->type = DL_INDEX4;
@@ -2372,17 +2332,12 @@ void BKE_mball_polygonize(Scene *scene, Object *ob, ListBase *dispbase)
indices = NULL;
a = mbproc.vertices.count;
- dl->verts = ve = MEM_mallocN(sizeof(float) * 3 * a, "mballverts");
+ dl->verts = co = MEM_mallocN(sizeof(float) * 3 * a, "mballverts");
dl->nors = no = MEM_mallocN(sizeof(float) * 3 * a, "mballnors");
- for (a = 0; a < mbproc.vertices.count; a++, no += 3, ve += 3) {
- ve[0] = mbproc.vertices.ptr[a].position.x;
- ve[1] = mbproc.vertices.ptr[a].position.y;
- ve[2] = mbproc.vertices.ptr[a].position.z;
-
- no[0] = mbproc.vertices.ptr[a].normal.x;
- no[1] = mbproc.vertices.ptr[a].normal.y;
- no[2] = mbproc.vertices.ptr[a].normal.z;
+ for (a = 0; a < mbproc.vertices.count; ptr++, a++, no += 3, co += 3) {
+ copy_v3_v3(co, ptr->co);
+ copy_v3_v3(no, ptr->no);
}
}
@@ -2403,36 +2358,37 @@ int BKE_mball_minmax(MetaBall *mb, float min[3], float max[3])
return (mb->elems.first != NULL);
}
-int BKE_mball_center_median(MetaBall *mb, float cent[3])
+int BKE_mball_center_median(MetaBall *mb, float r_cent[3])
{
MetaElem *ml;
int total = 0;
- zero_v3(cent);
+ zero_v3(r_cent);
for (ml = mb->elems.first; ml; ml = ml->next) {
- add_v3_v3(cent, &ml->x);
+ add_v3_v3(r_cent, &ml->x);
}
- if (total)
- mul_v3_fl(cent, 1.0f / (float)total);
+ if (total) {
+ mul_v3_fl(r_cent, 1.0f / (float)total);
+ }
return (total != 0);
}
-int BKE_mball_center_bounds(MetaBall *mb, float cent[3])
+int BKE_mball_center_bounds(MetaBall *mb, float r_cent[3])
{
float min[3], max[3];
if (BKE_mball_minmax(mb, min, max)) {
- mid_v3_v3v3(cent, min, max);
+ mid_v3_v3v3(r_cent, min, max);
return 1;
}
return 0;
}
-void BKE_mball_translate(MetaBall *mb, float offset[3])
+void BKE_mball_translate(MetaBall *mb, const float offset[3])
{
MetaElem *ml;
@@ -2440,3 +2396,32 @@ void BKE_mball_translate(MetaBall *mb, float offset[3])
add_v3_v3(&ml->x, offset);
}
}
+
+/* *** select funcs *** */
+void BKE_mball_select_all(struct MetaBall *mb)
+{
+ MetaElem *ml;
+
+ for (ml = mb->editelems->first; ml; ml = ml->next) {
+ ml->flag |= SELECT;
+ }
+}
+
+void BKE_mball_deselect_all(MetaBall *mb)
+{
+ MetaElem *ml;
+
+ for (ml = mb->editelems->first; ml; ml = ml->next) {
+ ml->flag &= ~SELECT;
+ }
+}
+
+void BKE_mball_select_swap(struct MetaBall *mb)
+{
+ MetaElem *ml;
+
+ for (ml = mb->editelems->first; ml; ml = ml->next) {
+ ml->flag ^= SELECT;
+ }
+}
+
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index 6d47575b372..1aaeebf5109 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -167,7 +167,7 @@ static int customdata_compare(CustomData *c1, CustomData *c2, Mesh *m1, Mesh *m2
for (j = 0; j < vtot; j++, v1++, v2++) {
if (len_v3v3(v1->co, v2->co) > thresh)
return MESHCMP_VERTCOMISMATCH;
- /*I don't care about normals, let's just do coodinates*/
+ /* I don't care about normals, let's just do coodinates */
}
}
@@ -367,7 +367,6 @@ void mesh_update_customdata_pointers(Mesh *me, const short do_ensure_tess_cd)
me->mvert = CustomData_get_layer(&me->vdata, CD_MVERT);
me->dvert = CustomData_get_layer(&me->vdata, CD_MDEFORMVERT);
- me->msticky = CustomData_get_layer(&me->vdata, CD_MSTICKY);
me->medge = CustomData_get_layer(&me->edata, CD_MEDGE);
@@ -394,6 +393,7 @@ void BKE_mesh_unlink(Mesh *me)
if (me == NULL) return;
+ if (me->mat)
for (a = 0; a < me->totcol; a++) {
if (me->mat[a]) me->mat[a]->id.us--;
me->mat[a] = NULL;
@@ -788,7 +788,7 @@ int test_index_face(MFace *mface, CustomData *fdata, int mfindex, int nr)
nr--;
}
- /* check corrupt cases, bowtie geometry, cant handle these because edge data wont exist so just return 0 */
+ /* check corrupt cases, bow-tie geometry, cant handle these because edge data wont exist so just return 0 */
if (nr == 3) {
if (
/* real edges */
@@ -989,7 +989,7 @@ static void make_edges_mdata(MVert *UNUSED(allvert), MFace *allface, MLoop *alll
MEM_freeN(edsort);
- /*set edge members of mloops*/
+ /* set edge members of mloops */
medge = *alledge;
for (a = 0; a < *_totedge; a++, medge++) {
BLI_edgehash_insert(hash, medge->v1, medge->v2, SET_INT_IN_POINTER(a));
@@ -1230,23 +1230,25 @@ int BKE_mesh_nurbs_to_mdata(Object *ob, MVert **allvert, int *totvert,
MEdge **alledge, int *totedge, MLoop **allloop, MPoly **allpoly,
int *totloop, int *totpoly)
{
- return BKE_mesh_nurbs_to_mdata_customdb(ob, &ob->disp,
+ return BKE_mesh_nurbs_displist_to_mdata(ob, &ob->disp,
allvert, totvert,
alledge, totedge,
allloop, allpoly,
- totloop, totpoly);
+ totloop, totpoly, NULL);
}
/* BMESH: this doesn't calculate all edges from polygons,
* only free standing edges are calculated */
/* Initialize mverts, medges and, faces for converting nurbs to mesh and derived mesh */
-/* use specified dispbase */
-int BKE_mesh_nurbs_to_mdata_customdb(Object *ob, ListBase *dispbase,
+/* use specified dispbase */
+/* TODO: orco values for non DL_SURF types */
+int BKE_mesh_nurbs_displist_to_mdata(Object *ob, ListBase *dispbase,
MVert **allvert, int *_totvert,
MEdge **alledge, int *_totedge,
MLoop **allloop, MPoly **allpoly,
- int *_totloop, int *_totpoly)
+ int *_totloop, int *_totpoly,
+ int **orco_index_ptr)
{
DispList *dl;
Curve *cu;
@@ -1258,6 +1260,7 @@ int BKE_mesh_nurbs_to_mdata_customdb(Object *ob, ListBase *dispbase,
int a, b, ofs, vertcount, startvert, totvert = 0, totedge = 0, totloop = 0, totvlak = 0;
int p1, p2, p3, p4, *index;
int conv_polys = 0;
+ int (*orco_index)[4] = NULL;
cu = ob->data;
@@ -1308,6 +1311,11 @@ int BKE_mesh_nurbs_to_mdata_customdb(Object *ob, ListBase *dispbase,
/* verts and faces */
vertcount = 0;
+ if (orco_index_ptr) {
+ *orco_index_ptr = MEM_callocN(sizeof(int) * totvlak * 4, "nurbs_init orco");
+ orco_index = (int (*)[4]) *orco_index_ptr;
+ }
+
dl = dispbase->first;
while (dl) {
int smooth = dl->rt & CU_SMOOTH ? 1 : 0;
@@ -1385,8 +1393,6 @@ int BKE_mesh_nurbs_to_mdata_customdb(Object *ob, ListBase *dispbase,
mloop += 3;
index += 3;
}
-
-
}
else if (dl->type == DL_SURF) {
startvert = vertcount;
@@ -1431,6 +1437,15 @@ int BKE_mesh_nurbs_to_mdata_customdb(Object *ob, ListBase *dispbase,
mpoly->totloop = 4;
mpoly->mat_nr = dl->col;
+ if (orco_index) {
+ const int poly_index = mpoly - *allpoly;
+ const int p_orco_base = startvert + ((dl->nr + 1) * a) + b;
+ orco_index[poly_index][0] = p_orco_base + 1;
+ orco_index[poly_index][1] = p_orco_base + dl->nr + 2;
+ orco_index[poly_index][2] = p_orco_base + dl->nr + 1;
+ orco_index[poly_index][3] = p_orco_base;
+ }
+
if (smooth) mpoly->flag |= ME_SMOOTH;
mpoly++;
mloop += 4;
@@ -1461,8 +1476,34 @@ int BKE_mesh_nurbs_to_mdata_customdb(Object *ob, ListBase *dispbase,
return 0;
}
+
+MINLINE void copy_uv_orco_v2_v2(float r[2], const float a[2])
+{
+ r[0] = 0.5f + a[0] * 0.5f;
+ r[1] = 0.5f + a[1] * 0.5f;
+}
+
+/**
+ * orco is normally from #BKE_curve_make_orco
+ */
+void BKE_mesh_nurbs_to_mdata_orco(MPoly *mpoly, int totpoly,
+ MLoop *mloops, MLoopUV *mloopuvs,
+ float (*orco)[3], int (*orco_index)[4])
+{
+ MPoly *mp;
+
+ int i, j;
+ for (i = 0, mp = mpoly; i < totpoly; i++, mp++) {
+ MLoop *ml = mloops + mp->loopstart;
+ MLoopUV *mluv = mloopuvs + mp->loopstart;
+ for (j = 0; j < mp->totloop; j++, ml++, mluv++) {
+ copy_uv_orco_v2_v2(mluv->uv, orco[orco_index[i][j]]);
+ }
+ }
+}
+
/* this may fail replacing ob->data, be sure to check ob->type */
-void BKE_mesh_from_nurbs(Object *ob)
+void BKE_mesh_from_nurbs_displist(Object *ob, ListBase *dispbase, int **orco_index_ptr)
{
Main *bmain = G.main;
Object *ob1;
@@ -1478,9 +1519,9 @@ void BKE_mesh_from_nurbs(Object *ob)
cu = ob->data;
if (dm == NULL) {
- if (BKE_mesh_nurbs_to_mdata(ob, &allvert, &totvert,
- &alledge, &totedge, &allloop,
- &allpoly, &totloop, &totpoly) != 0)
+ if (BKE_mesh_nurbs_displist_to_mdata(ob, dispbase, &allvert, &totvert,
+ &alledge, &totedge, &allloop,
+ &allpoly, &totloop, &totpoly, orco_index_ptr) != 0)
{
/* Error initializing */
return;
@@ -1534,6 +1575,11 @@ void BKE_mesh_from_nurbs(Object *ob)
}
}
+void BKE_mesh_from_nurbs(Object *ob)
+{
+ BKE_mesh_from_nurbs_displist(ob, &ob->disp, NULL);
+}
+
typedef struct EdgeLink {
Link *next, *prev;
void *edge;
@@ -1799,7 +1845,7 @@ void BKE_mesh_calc_normals_mapping_ex(MVert *mverts, int numVerts,
return;
}
- /* if we are not calculating verts and no verts were passes thene we have nothign to do */
+ /* if we are not calculating verts and no verts were passes then we have nothing to do */
if ((only_face_normals == TRUE) && (polyNors_r == NULL) && (faceNors_r == NULL)) {
printf("%s: called with nothing to do\n", __func__);
return;
@@ -1818,7 +1864,7 @@ void BKE_mesh_calc_normals_mapping_ex(MVert *mverts, int numVerts,
/* only calc poly normals */
mp = mpolys;
for (i = 0; i < numPolys; i++, mp++) {
- mesh_calc_poly_normal(mp, mloop + mp->loopstart, mverts, pnors[i]);
+ BKE_mesh_calc_poly_normal(mp, mloop + mp->loopstart, mverts, pnors[i]);
}
}
@@ -1863,12 +1909,12 @@ void BKE_mesh_calc_normals(MVert *mverts, int numVerts, MLoop *mloop, MPoly *mpo
if (!pnors) pnors = MEM_callocN(sizeof(float) * 3 * numPolys, "poly_nors mesh.c");
- /*first go through and calculate normals for all the polys*/
+ /* first go through and calculate normals for all the polys */
tnorms = MEM_callocN(sizeof(float) * 3 * numVerts, "tnorms mesh.c");
mp = mpolys;
for (i = 0; i < numPolys; i++, mp++) {
- mesh_calc_poly_normal(mp, mloop + mp->loopstart, mverts, pnors[i]);
+ BKE_mesh_calc_poly_normal(mp, mloop + mp->loopstart, mverts, pnors[i]);
ml = mloop + mp->loopstart;
BLI_array_empty(vertcos);
@@ -1897,8 +1943,9 @@ void BKE_mesh_calc_normals(MVert *mverts, int numVerts, MLoop *mloop, MPoly *mpo
MVert *mv = &mverts[i];
float *no = tnorms[i];
- if (normalize_v3(no) == 0.0f)
+ if (UNLIKELY(normalize_v3(no) == 0.0f)) {
normalize_v3_v3(no, mv->co);
+ }
normal_float_to_short_v3(mv->no, no);
}
@@ -1934,8 +1981,9 @@ void BKE_mesh_calc_normals_tessface(MVert *mverts, int numVerts, MFace *mfaces,
MVert *mv = &mverts[i];
float *no = tnorms[i];
- if (normalize_v3(no) == 0.0f)
+ if (UNLIKELY(normalize_v3(no) == 0.0f)) {
normalize_v3_v3(no, mv->co);
+ }
normal_float_to_short_v3(mv->no, no);
}
@@ -1995,7 +2043,7 @@ static void bm_corners_to_loops_ex(ID *id, CustomData *fdata, CustomData *ldata,
int side, corners;
if (CustomData_external_test(fdata, CD_MDISPS)) {
- if (id) {
+ if (id && fdata->external) {
CustomData_external_add(ldata, id, CD_MDISPS,
totloop, fdata->external->filename);
}
@@ -2153,7 +2201,7 @@ void BKE_mesh_convert_mfaces_to_mpolys_ex(ID *id, CustomData *fdata, CustomData
}
}
- /* note, we don't convert FGons at all, these are not even real ngons,
+ /* note, we don't convert NGons at all, these are not even real ngons,
* they have their own UV's, colors etc - its more an editing feature. */
BLI_edgehash_free(eh, NULL);
@@ -2655,13 +2703,13 @@ int BKE_mesh_recalc_tessellation(CustomData *fdata,
#endif
{
/* sort loop indices to ensure winding is correct */
- if (mf->v1 > mf->v2) SWAP(int, mf->v1, mf->v2);
- if (mf->v2 > mf->v3) SWAP(int, mf->v2, mf->v3);
- if (mf->v1 > mf->v2) SWAP(int, mf->v1, mf->v2);
+ if (mf->v1 > mf->v2) SWAP(unsigned int, mf->v1, mf->v2);
+ if (mf->v2 > mf->v3) SWAP(unsigned int, mf->v2, mf->v3);
+ if (mf->v1 > mf->v2) SWAP(unsigned int, mf->v1, mf->v2);
- if (mf->v1 > mf->v2) SWAP(int, mf->v1, mf->v2);
- if (mf->v2 > mf->v3) SWAP(int, mf->v2, mf->v3);
- if (mf->v1 > mf->v2) SWAP(int, mf->v1, mf->v2);
+ if (mf->v1 > mf->v2) SWAP(unsigned int, mf->v1, mf->v2);
+ if (mf->v2 > mf->v3) SWAP(unsigned int, mf->v2, mf->v3);
+ if (mf->v1 > mf->v2) SWAP(unsigned int, mf->v1, mf->v2);
}
/* end abusing the edcode */
@@ -2773,7 +2821,7 @@ int BKE_mesh_mpoly_to_mface(struct CustomData *fdata, struct CustomData *ldata,
mf = &mface[k];
if (mf->edcode == 3) {
- /*sort loop indices to ensure winding is correct*/
+ /* sort loop indices to ensure winding is correct */
/* NO SORT - looks like we can skip this */
lindex[0] = mf->v1;
@@ -2781,7 +2829,7 @@ int BKE_mesh_mpoly_to_mface(struct CustomData *fdata, struct CustomData *ldata,
lindex[2] = mf->v3;
lindex[3] = 0; /* unused */
- /*transform loop indices to vert indices*/
+ /* transform loop indices to vert indices */
mf->v1 = mloop[mf->v1].v;
mf->v2 = mloop[mf->v2].v;
mf->v3 = mloop[mf->v3].v;
@@ -2792,7 +2840,7 @@ int BKE_mesh_mpoly_to_mface(struct CustomData *fdata, struct CustomData *ldata,
test_index_face(mf, fdata, k, 3);
}
else {
- /*sort loop indices to ensure winding is correct*/
+ /* sort loop indices to ensure winding is correct */
/* NO SORT - looks like we can skip this */
lindex[0] = mf->v1;
@@ -2800,7 +2848,7 @@ int BKE_mesh_mpoly_to_mface(struct CustomData *fdata, struct CustomData *ldata,
lindex[2] = mf->v3;
lindex[3] = mf->v4;
- /*transform loop indices to vert indices*/
+ /* transform loop indices to vert indices */
mf->v1 = mloop[mf->v1].v;
mf->v2 = mloop[mf->v2].v;
mf->v3 = mloop[mf->v3].v;
@@ -2852,8 +2900,8 @@ static void mesh_calc_ngon_normal(MPoly *mpoly, MLoop *loopstart,
}
}
-void mesh_calc_poly_normal(MPoly *mpoly, MLoop *loopstart,
- MVert *mvarray, float no[3])
+void BKE_mesh_calc_poly_normal(MPoly *mpoly, MLoop *loopstart,
+ MVert *mvarray, float no[3])
{
if (mpoly->totloop > 4) {
mesh_calc_ngon_normal(mpoly, loopstart, mvarray, no);
@@ -2968,7 +3016,7 @@ void BKE_mesh_calc_poly_center(MPoly *mpoly, MLoop *loopstart,
/* note, passing polynormal is only a speedup so we can skip calculating it */
float BKE_mesh_calc_poly_area(MPoly *mpoly, MLoop *loopstart,
- MVert *mvarray, float polynormal[3])
+ MVert *mvarray, const float polynormal[3])
{
if (mpoly->totloop == 3) {
return area_tri_v3(mvarray[loopstart[0].v].co,
@@ -2987,7 +3035,7 @@ float BKE_mesh_calc_poly_area(MPoly *mpoly, MLoop *loopstart,
int i;
MLoop *l_iter = loopstart;
float area, polynorm_local[3], (*vertexcos)[3];
- float *no = polynormal ? polynormal : polynorm_local;
+ const float *no = polynormal ? polynormal : polynorm_local;
BLI_array_fixedstack_declare(vertexcos, BM_NGON_STACK_SIZE, mpoly->totloop, __func__);
/* pack vertex cos into an array for area_poly_v3 */
@@ -2997,7 +3045,7 @@ float BKE_mesh_calc_poly_area(MPoly *mpoly, MLoop *loopstart,
/* need normal for area_poly_v3 as well */
if (polynormal == NULL) {
- mesh_calc_poly_normal(mpoly, loopstart, mvarray, no);
+ BKE_mesh_calc_poly_normal(mpoly, loopstart, mvarray, polynorm_local);
}
/* finally calculate the area */
diff --git a/source/blender/blenkernel/intern/mesh_validate.c b/source/blender/blenkernel/intern/mesh_validate.c
index 4528b748412..79e3fc19d20 100644
--- a/source/blender/blenkernel/intern/mesh_validate.c
+++ b/source/blender/blenkernel/intern/mesh_validate.c
@@ -223,7 +223,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
__func__, totvert, totedge, totloop, totpoly);
if (totedge == 0 && totpoly != 0) {
- PRINT(" logical error, %u polygons and 0 edges\n", totpoly);
+ PRINT("\tLogical error, %u polygons and 0 edges\n", totpoly);
do_edge_recalc = do_fixes;
}
@@ -233,7 +233,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
for (j = 0; j < 3; j++) {
if (!finite(mv->co[j])) {
- PRINT(" vertex %u: has invalid coordinate\n", i);
+ PRINT("\tVertex %u: has invalid coordinate\n", i);
if (do_fixes) {
zero_v3(mv->co);
@@ -247,7 +247,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
}
if (fix_normal) {
- PRINT(" vertex %u: has zero normal, assuming Z-up normal\n", i);
+ PRINT("\tVertex %u: has zero normal, assuming Z-up normal\n", i);
if (do_fixes) {
mv->no[2] = SHRT_MAX;
verts_fixed = TRUE;
@@ -258,20 +258,20 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
for (i = 0, me = medges; i < totedge; i++, me++) {
int remove = FALSE;
if (me->v1 == me->v2) {
- PRINT(" edge %u: has matching verts, both %u\n", i, me->v1);
+ PRINT("\tEdge %u: has matching verts, both %u\n", i, me->v1);
remove = do_fixes;
}
if (me->v1 >= totvert) {
- PRINT(" edge %u: v1 index out of range, %u\n", i, me->v1);
+ PRINT("\tEdge %u: v1 index out of range, %u\n", i, me->v1);
remove = do_fixes;
}
if (me->v2 >= totvert) {
- PRINT(" edge %u: v2 index out of range, %u\n", i, me->v2);
+ PRINT("\tEdge %u: v2 index out of range, %u\n", i, me->v2);
remove = do_fixes;
}
if (BLI_edgehash_haskey(edge_hash, me->v1, me->v2)) {
- PRINT(" edge %u: is a duplicate of %d\n", i,
+ PRINT("\tEdge %u: is a duplicate of %d\n", i,
GET_INT_FROM_POINTER(BLI_edgehash_lookup(edge_hash, me->v1, me->v2)));
remove = do_fixes;
}
@@ -296,7 +296,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
PRINT(" face %u: edge " STRINGIFY(a) "/" STRINGIFY(b) \
" (%u,%u) is missing egde data\n", i, mf->a, mf->b); \
do_edge_recalc = TRUE; \
- }
+ } (void)0
MFace *mf;
MFace *mf_prev;
@@ -306,6 +306,8 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
SortFace *sf_prev;
unsigned int totsortface = 0;
+ PRINT("No Polys, only tesselated Faces\n");
+
for (i = 0, mf = mfaces, sf = sort_faces; i < totface; i++, mf++) {
int remove = FALSE;
int fidx;
@@ -315,7 +317,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
do {
fv[fidx] = *(&(mf->v1) + fidx);
if (fv[fidx] >= totvert) {
- PRINT(" face %u: 'v%d' index out of range, %u\n", i, fidx + 1, fv[fidx]);
+ PRINT("\tFace %u: 'v%d' index out of range, %u\n", i, fidx + 1, fv[fidx]);
remove = do_fixes;
}
} while (fidx--);
@@ -392,12 +394,12 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
mf_prev = mfaces + sf_prev->index;
if (mf->v4) {
- PRINT(" face %u & %u: are duplicates (%u,%u,%u,%u) (%u,%u,%u,%u)\n",
+ PRINT("\tFace %u & %u: are duplicates (%u,%u,%u,%u) (%u,%u,%u,%u)\n",
sf->index, sf_prev->index, mf->v1, mf->v2, mf->v3, mf->v4,
mf_prev->v1, mf_prev->v2, mf_prev->v3, mf_prev->v4);
}
else {
- PRINT(" face %u & %u: are duplicates (%u,%u,%u) (%u,%u,%u)\n",
+ PRINT("\tFace %u & %u: are duplicates (%u,%u,%u) (%u,%u,%u)\n",
sf->index, sf_prev->index, mf->v1, mf->v2, mf->v3,
mf_prev->v1, mf_prev->v2, mf_prev->v3);
}
@@ -433,7 +435,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
*
* Also, loops not used by polys can be discarded.
* And "intersecting" loops (i.e. loops used by more than one poly) are invalid,
- * so be sure to leave at most one poly/loop!
+ * so be sure to leave at most one poly per loop!
*/
{
SortPoly *sort_polys = MEM_callocN(sizeof(SortPoly) * totpoly, "mesh validate's sort_polys");
@@ -444,12 +446,12 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
if (mp->loopstart < 0 || mp->totloop < 3) {
/* Invalid loop data. */
- PRINT(" poly %u is invalid (loopstart: %u, totloop: %u)\n", sp->index, mp->loopstart, mp->totloop);
+ PRINT("\tPoly %u is invalid (loopstart: %u, totloop: %u)\n", sp->index, mp->loopstart, mp->totloop);
sp->invalid = TRUE;
}
else if (mp->loopstart + mp->totloop > totloop) {
/* Invalid loop data. */
- PRINT(" poly %u uses loops out of range (loopstart: %u, loopend: %u, max nbr of loops: %u)\n",
+ PRINT("\tPoly %u uses loops out of range (loopstart: %u, loopend: %u, max nbr of loops: %u)\n",
sp->index, mp->loopstart, mp->loopstart + mp->totloop - 1, totloop - 1);
sp->invalid = TRUE;
}
@@ -465,7 +467,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
for (j = 0, ml = &mloops[sp->loopstart]; j < mp->totloop; j++, ml++, v++) {
if (ml->v >= totvert) {
/* Invalid vert idx. */
- PRINT(" loop %u has invalid vert reference (%u)\n", sp->loopstart + j, ml->v);
+ PRINT("\tLoop %u has invalid vert reference (%u)\n", sp->loopstart + j, ml->v);
sp->invalid = TRUE;
}
@@ -478,7 +480,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
v = sp->verts;
for (j = 0; j < mp->totloop; j++, v++) {
if ((mverts[*v].flag & ME_VERT_TMP_TAG) == 0) {
- PRINT(" poly %u has duplicate vert reference at corner (%u)\n", i, j);
+ PRINT("\tPoly %u has duplicate vert reference at corner (%u)\n", i, j);
sp->invalid = TRUE;
}
mverts[*v].flag &= ~ME_VERT_TMP_TAG;
@@ -494,7 +496,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
v2 = mloops[sp->loopstart + (j + 1) % mp->totloop].v;
if (!BLI_edgehash_haskey(edge_hash, v1, v2)) {
/* Edge not existing. */
- PRINT(" poly %u needs missing edge (%u, %u)\n", sp->index, v1, v2);
+ PRINT("\tPoly %u needs missing edge (%u, %u)\n", sp->index, v1, v2);
if (do_fixes)
do_edge_recalc = TRUE;
else
@@ -506,11 +508,11 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
if (do_fixes) {
int prev_e = ml->e;
ml->e = GET_INT_FROM_POINTER(BLI_edgehash_lookup(edge_hash, v1, v2));
- PRINT(" loop %u has invalid edge reference (%u), fixed using edge %u\n",
+ PRINT("\tLoop %u has invalid edge reference (%u), fixed using edge %u\n",
sp->loopstart + j, prev_e, ml->e);
}
else {
- PRINT(" loop %u has invalid edge reference (%u)\n", sp->loopstart + j, ml->e);
+ PRINT("\tLoop %u has invalid edge reference (%u)\n", sp->loopstart + j, ml->e);
sp->invalid = TRUE;
}
}
@@ -522,11 +524,11 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
if (do_fixes) {
int prev_e = ml->e;
ml->e = GET_INT_FROM_POINTER(BLI_edgehash_lookup(edge_hash, v1, v2));
- PRINT(" poly %u has invalid edge reference (%u), fixed using edge %u\n",
+ PRINT("\tPoly %u has invalid edge reference (%u), fixed using edge %u\n",
sp->index, prev_e, ml->e);
}
else {
- PRINT(" poly %u has invalid edge reference (%u)\n", sp->index, ml->e);
+ PRINT("\tPoly %u has invalid edge reference (%u)\n", sp->index, ml->e);
sp->invalid = TRUE;
}
}
@@ -544,7 +546,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
if (*v != *prev_v) {
int dlt = v - prev_v;
if (dlt > 1) {
- PRINT(" poly %u is invalid, it multi-uses vertex %u (%u times)\n",
+ PRINT("\tPoly %u is invalid, it multi-uses vertex %u (%u times)\n",
sp->index, *prev_v, dlt);
sp->invalid = TRUE;
}
@@ -552,7 +554,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
}
}
if (v - prev_v > 1) { /* Don't forget final verts! */
- PRINT(" poly %u is invalid, it multi-uses vertex %u (%u times)\n",
+ PRINT("\tPoly %u is invalid, it multi-uses vertex %u (%u times)\n",
sp->index, *prev_v, (int)(v - prev_v));
sp->invalid = TRUE;
}
@@ -610,17 +612,17 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
p2_sub = FALSE;
if (p1_sub && p2_sub) {
- PRINT(" polys %u and %u use same vertices, considering poly %u as invalid.\n",
+ PRINT("\tPolys %u and %u use same vertices, considering poly %u as invalid.\n",
prev_sp->index, sp->index, sp->index);
sp->invalid = TRUE;
}
/* XXX In fact, these might be valid? :/ */
else if (p1_sub) {
- PRINT(" %u is a sub-poly of %u, considering it as invalid.\n", sp->index, prev_sp->index);
+ PRINT("\t%u is a sub-poly of %u, considering it as invalid.\n", sp->index, prev_sp->index);
sp->invalid = TRUE;
}
else if (p2_sub) {
- PRINT(" %u is a sub-poly of %u, considering it as invalid.\n", prev_sp->index, sp->index);
+ PRINT("\t%u is a sub-poly of %u, considering it as invalid.\n", prev_sp->index, sp->index);
prev_sp->invalid = TRUE;
prev_sp = sp; /* sp is new reference poly. */
}
@@ -631,7 +633,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
}
if ((p1_nv == p2_nv) && (memcmp(p1_v, p2_v, p1_nv * sizeof(*p1_v)) == 0)) {
if (do_verbose) {
- PRINT(" polys %u and %u use same vertices (%u",
+ PRINT("\tPolys %u and %u use same vertices (%u",
prev_sp->index, sp->index, *p1_v);
for (j = 1; j < p1_nv; j++)
PRINT(", %u", p1_v[j]);
@@ -671,7 +673,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
/* Unused loops. */
if (prev_end < sp->loopstart) {
for (j = prev_end, ml = &mloops[prev_end]; j < sp->loopstart; j++, ml++) {
- PRINT(" loop %u is unused.\n", j);
+ PRINT("\tLoop %u is unused.\n", j);
if (do_fixes)
REMOVE_LOOP_TAG(ml);
}
@@ -680,7 +682,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
}
/* Multi-used loops. */
else if (prev_end > sp->loopstart) {
- PRINT(" polys %u and %u share loops from %u to %u, considering poly %u as invalid.\n",
+ PRINT("\tPolys %u and %u share loops from %u to %u, considering poly %u as invalid.\n",
prev_sp->index, sp->index, sp->loopstart, prev_end, sp->index);
if (do_fixes) {
REMOVE_POLY_TAG((&mpolys[sp->index]));
@@ -699,7 +701,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
/* We may have some remaining unused loops to get rid of! */
if (prev_end < totloop) {
for (j = prev_end, ml = &mloops[prev_end]; j < totloop; j++, ml++) {
- PRINT(" loop %u is unused.\n", j);
+ PRINT("\tLoop %u is unused.\n", j);
if (do_fixes)
REMOVE_LOOP_TAG(ml);
}
@@ -720,14 +722,14 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
for (j = 0, dw = dv->dw; j < dv->totweight; j++, dw++) {
/* note, greater then max defgroups is accounted for in our code, but not < 0 */
if (!finite(dw->weight)) {
- PRINT(" vertex deform %u, group %d has weight: %f\n", i, dw->def_nr, dw->weight);
+ PRINT("\tVertex deform %u, group %d has weight: %f\n", i, dw->def_nr, dw->weight);
if (do_fixes) {
dw->weight = 0.0f;
vert_weights_fixed = TRUE;
}
}
else if (dw->weight < 0.0f || dw->weight > 1.0f) {
- PRINT(" vertex deform %u, group %d has weight: %f\n", i, dw->def_nr, dw->weight);
+ PRINT("\tVertex deform %u, group %d has weight: %f\n", i, dw->def_nr, dw->weight);
if (do_fixes) {
CLAMP(dw->weight, 0.0f, 1.0f);
vert_weights_fixed = TRUE;
@@ -735,7 +737,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
}
if (dw->def_nr < 0) {
- PRINT(" vertex deform %u, has invalid group %d\n", i, dw->def_nr);
+ PRINT("\tVertex deform %u, has invalid group %d\n", i, dw->def_nr);
if (do_fixes) {
defvert_remove_group(dv, dw);
if (dv->dw) {
@@ -783,10 +785,10 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
int free_msel = FALSE;
for (i = 0, msel = mesh->mselect; i < mesh->totselect; i++, msel++) {
- int tot_elem;
+ int tot_elem = 0;
if (msel->index < 0) {
- PRINT("Mesh select element %d type %d index is negative, "
+ PRINT("\tMesh select element %d type %d index is negative, "
"resetting selection stack.\n", i, msel->type);
free_msel = TRUE;
break;
@@ -805,7 +807,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
}
if (msel->index > tot_elem) {
- PRINT("Mesh select element %d type %d index %d is larger than data array size %d, "
+ PRINT("\tMesh select element %d type %d index %d is larger than data array size %d, "
"resetting selection stack.\n", i, msel->type, msel->index, tot_elem);
free_msel = TRUE;
@@ -820,7 +822,7 @@ int BKE_mesh_validate_arrays(Mesh *mesh,
}
}
- PRINT("BKE_mesh_validate: finished\n\n");
+ PRINT("%s: finished\n\n", __func__);
return (verts_fixed || vert_weights_fixed || do_polyloop_free || do_edge_free || do_edge_recalc || msel_fixed);
}
@@ -829,13 +831,15 @@ static int mesh_validate_customdata(CustomData *data, short do_verbose, const sh
{
int i = 0, has_fixes = 0;
+ PRINT("%s: Checking %d CD layers...\n", __func__, data->totlayer);
+
while (i < data->totlayer) {
CustomDataLayer *layer = &data->layers[i];
CustomDataMask mask = CD_TYPE_AS_MASK(layer->type);
int ok = 1;
if ((mask & CD_MASK_MESH) == 0) {
- PRINT("CustomDataLayer type %d which isn't in CD_MASK_MESH is stored in Mehs structure\n", layer->type);
+ PRINT("\tCustomDataLayer type %d which isn't in CD_MASK_MESH is stored in Mesh structure\n", layer->type);
if (do_fixes) {
CustomData_free_layer(data, layer->type, 0, i);
@@ -848,6 +852,8 @@ static int mesh_validate_customdata(CustomData *data, short do_verbose, const sh
i++;
}
+ PRINT("%s: Finished\n\n", __func__);
+
return has_fixes;
}
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index b4c30203000..f072ed4009e 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -331,6 +331,13 @@ int modifiers_isClothEnabled(Object *ob)
return (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render));
}
+int modifiers_isModifierEnabled(Object *ob, int modifierType)
+{
+ ModifierData *md = modifiers_findByType(ob, modifierType);
+
+ return (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render));
+}
+
int modifiers_isParticleEnabled(Object *ob)
{
ModifierData *md = modifiers_findByType(ob, eModifierType_ParticleSystem);
@@ -475,7 +482,7 @@ ModifierData *modifiers_getVirtualModifierList(Object *ob)
}
/* shape key modifier, not yet for curves */
- if (ELEM(ob->type, OB_MESH, OB_LATTICE) && ob_get_key(ob)) {
+ if (ELEM(ob->type, OB_MESH, OB_LATTICE) && BKE_key_from_object(ob)) {
if (ob->type == OB_MESH && (ob->shapeflag & OB_SHAPE_EDIT_MODE))
smd.modifier.mode |= eModifierMode_Editmode | eModifierMode_OnCage;
else
@@ -567,10 +574,12 @@ int modifiers_isCorrectableDeformed(Object *ob)
ModifierData *md = modifiers_getVirtualModifierList(ob);
for (; md; md = md->next) {
- if (ob->mode == OB_MODE_EDIT && (md->mode & eModifierMode_Editmode) == 0) ;
- else
- if (modifier_isCorrectableDeformed(md))
+ if (ob->mode == OB_MODE_EDIT && (md->mode & eModifierMode_Editmode) == 0) {
+ /* pass */
+ }
+ else if (modifier_isCorrectableDeformed(md)) {
return 1;
+ }
}
return 0;
}
diff --git a/source/blender/blenkernel/intern/modifiers_bmesh.c b/source/blender/blenkernel/intern/modifiers_bmesh.c
index 72c3cda9272..dc3d4a89e62 100644
--- a/source/blender/blenkernel/intern/modifiers_bmesh.c
+++ b/source/blender/blenkernel/intern/modifiers_bmesh.c
@@ -49,7 +49,7 @@ void DM_to_bmesh_ex(DerivedMesh *dm, BMesh *bm)
MLoop *mloop, *ml;
BMVert *v, **vtable, **verts = NULL;
BMEdge *e, **etable, **edges = NULL;
- float has_face_normals;
+ float (*face_normals)[3];
BMFace *f;
BMIter liter;
BLI_array_declare(verts);
@@ -72,8 +72,8 @@ void DM_to_bmesh_ex(DerivedMesh *dm, BMesh *bm)
BM_data_layer_add(bm, &bm->edata, CD_BWEIGHT);
BM_data_layer_add(bm, &bm->vdata, CD_BWEIGHT);
- vtable = MEM_callocN(sizeof(void **) * totvert, "vert table in BMDM_Copy");
- etable = MEM_callocN(sizeof(void **) * totedge, "edge table in BMDM_Copy");
+ vtable = MEM_callocN(sizeof(void **) * totvert, __func__);
+ etable = MEM_callocN(sizeof(void **) * totedge, __func__);
/*do verts*/
mv = mvert = dm->dupVertArray(dm);
@@ -110,7 +110,7 @@ void DM_to_bmesh_ex(DerivedMesh *dm, BMesh *bm)
/*do faces*/
mp = dm->getPolyArray(dm);
mloop = dm->getLoopArray(dm);
- has_face_normals = CustomData_has_layer(&dm->polyData, CD_NORMAL);
+ face_normals = CustomData_get_layer(&dm->polyData, CD_NORMAL); /* can be NULL */
for (i = 0; i < dm->numPolyData; i++, mp++) {
BMLoop *l;
@@ -129,8 +129,9 @@ void DM_to_bmesh_ex(DerivedMesh *dm, BMesh *bm)
f = BM_face_create_ngon(bm, verts[0], verts[1], edges, mp->totloop, FALSE);
- if (!f)
+ if (UNLIKELY(f == NULL)) {
continue;
+ }
f->head.hflag = BM_face_flag_from_mflag(mp->flag);
f->mat_nr = mp->mat_nr;
@@ -143,11 +144,11 @@ void DM_to_bmesh_ex(DerivedMesh *dm, BMesh *bm)
CustomData_to_bmesh_block(&dm->polyData, &bm->pdata, i, &f->head.data);
- if (has_face_normals) {
- float *fno;
-
- fno = CustomData_bmesh_get(&bm->pdata, &f->head.data, CD_NORMAL);
- copy_v3_v3(f->no, fno);
+ if (face_normals) {
+ copy_v3_v3(f->no, face_normals[i]);
+ }
+ else {
+ BM_face_normal_update(f);
}
}
diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c
index 54e93f58307..0aa1f9e0822 100644
--- a/source/blender/blenkernel/intern/movieclip.c
+++ b/source/blender/blenkernel/intern/movieclip.c
@@ -52,6 +52,7 @@
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "DNA_movieclip_types.h"
+#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_view3d_types.h"
@@ -66,14 +67,16 @@
#include "BKE_animsys.h"
#include "BKE_constraint.h"
+#include "BKE_colortools.h"
#include "BKE_library.h"
#include "BKE_global.h"
#include "BKE_main.h"
-#include "BKE_utildefines.h"
#include "BKE_movieclip.h"
+#include "BKE_node.h"
#include "BKE_image.h" /* openanim */
#include "BKE_tracking.h"
+#include "IMB_colormanagement.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
#include "IMB_moviecache.h"
@@ -198,19 +201,25 @@ static ImBuf *movieclip_load_sequence_file(MovieClip *clip, MovieClipUser *user,
struct ImBuf *ibuf;
char name[FILE_MAX];
int loadflag, use_proxy = FALSE;
+ char *colorspace;
use_proxy = (flag & MCLIP_USE_PROXY) && user->render_size != MCLIP_PROXY_RENDER_SIZE_FULL;
if (use_proxy) {
int undistort = user->render_flag & MCLIP_PROXY_RENDER_UNDISTORT;
get_proxy_fname(clip, user->render_size, undistort, framenr, name);
+
+ /* proxies were built using default color space settings */
+ colorspace = NULL;
}
- else
+ else {
get_sequence_fname(clip, framenr, name);
+ colorspace = clip->colorspace_settings.name;
+ }
loadflag = IB_rect | IB_multilayer;
/* read ibuf */
- ibuf = IMB_loadiffname(name, loadflag);
+ ibuf = IMB_loadiffname(name, loadflag, colorspace);
return ibuf;
}
@@ -224,7 +233,7 @@ static void movieclip_open_anim_file(MovieClip *clip)
BLI_path_abs(str, ID_BLEND_PATH(G.main, &clip->id));
/* FIXME: make several stream accessible in image editor, too */
- clip->anim = openanim(str, IB_rect, 0);
+ clip->anim = openanim(str, IB_rect, 0, clip->colorspace_settings.name);
if (clip->anim) {
if (clip->flag & MCLIP_USE_PROXY_CUSTOM_DIR) {
@@ -285,11 +294,11 @@ static void movieclip_calc_length(MovieClip *clip)
clip->len = framenr + 1;
}
else {
- for (;; ) {
+ for (;;) {
get_sequence_fname(clip, framenr, name);
if (!BLI_exists(name)) {
- clip->len = framenr + 1;
+ clip->len = framenr;
break;
}
@@ -322,6 +331,8 @@ typedef struct MovieClipCache {
/* cache for stable shot */
struct {
+ ImBuf *reference_ibuf;
+
ImBuf *ibuf;
int framenr;
int postprocess_flag;
@@ -338,6 +349,10 @@ typedef struct MovieClipImBufCacheKey {
short render_flag;
} MovieClipImBufCacheKey;
+typedef struct MovieClipCachePriorityData {
+ int framenr;
+} MovieClipCachePriorityData;
+
static void moviecache_keydata(void *userkey, int *framenr, int *proxy, int *render_flags)
{
MovieClipImBufCacheKey *key = (MovieClipImBufCacheKey *)userkey;
@@ -378,6 +393,32 @@ static int moviecache_hashcmp(const void *av, const void *bv)
return 0;
}
+static void *moviecache_getprioritydata(void *key_v)
+{
+ MovieClipImBufCacheKey *key = (MovieClipImBufCacheKey *) key_v;
+ MovieClipCachePriorityData *priority_data;
+
+ priority_data = MEM_callocN(sizeof(priority_data), "movie cache clip priority data");
+ priority_data->framenr = key->framenr;
+
+ return priority_data;
+}
+
+static int moviecache_getitempriority(void *last_userkey_v, void *priority_data_v)
+{
+ MovieClipImBufCacheKey *last_userkey = (MovieClipImBufCacheKey *) last_userkey_v;
+ MovieClipCachePriorityData *priority_data = (MovieClipCachePriorityData *) priority_data_v;
+
+ return -abs(last_userkey->framenr - priority_data->framenr);
+}
+
+static void moviecache_prioritydeleter(void *priority_data_v)
+{
+ MovieClipCachePriorityData *priority_data = (MovieClipCachePriorityData *) priority_data_v;
+
+ MEM_freeN(priority_data);
+}
+
static ImBuf *get_imbuf_cache(MovieClip *clip, MovieClipUser *user, int flag)
{
if (clip->cache) {
@@ -405,10 +446,20 @@ static void put_imbuf_cache(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, i
MovieClipImBufCacheKey key;
if (!clip->cache) {
+ struct MovieCache *moviecache;
+
+ // char cache_name[64];
+ // BLI_snprintf(cache_name, sizeof(cache_name), "movie %s", clip->id.name);
+
clip->cache = MEM_callocN(sizeof(MovieClipCache), "movieClipCache");
- clip->cache->moviecache = IMB_moviecache_create(sizeof(MovieClipImBufCacheKey), moviecache_hashhash,
- moviecache_hashcmp, moviecache_keydata);
+ moviecache = IMB_moviecache_create("movieclip", sizeof(MovieClipImBufCacheKey), moviecache_hashhash, moviecache_hashcmp);
+
+ IMB_moviecache_set_getdata_callback(moviecache, moviecache_keydata);
+ IMB_moviecache_set_priority_callback(moviecache, moviecache_getprioritydata, moviecache_getitempriority,
+ moviecache_prioritydeleter);
+
+ clip->cache->moviecache = moviecache;
}
key.framenr = user->framenr;
@@ -437,6 +488,7 @@ static MovieClip *movieclip_alloc(const char *name)
clip->aspx = clip->aspy = 1.0f;
BKE_tracking_settings_init(&clip->tracking);
+ BKE_color_managed_colorspace_settings_init(&clip->colorspace_settings);
clip->proxy.build_size_flag = IMB_PROXY_25;
clip->proxy.build_tc_flag = IMB_TC_RECORD_RUN |
@@ -462,7 +514,9 @@ static void movieclip_load_get_szie(MovieClip *clip)
if (width && height) {
clip->tracking.camera.principal[0] = ((float)width) / 2.0f;
clip->tracking.camera.principal[1] = ((float)height) / 2.0f;
-
+ }
+ else {
+ clip->lastsize[0] = clip->lastsize[1] = IMG_SIZE_FALLBACK;
}
}
@@ -572,24 +626,22 @@ static ImBuf *get_undistorted_ibuf(MovieClip *clip, struct MovieDistortion *dist
return undistibuf;
}
-static int need_undistortion_postprocess(MovieClipUser *user, int flag)
+static int need_undistortion_postprocess(MovieClipUser *user)
{
int result = 0;
/* only full undistorted render can be used as on-fly undistorting image */
- if (flag & MCLIP_USE_PROXY) {
- result |= (user->render_size == MCLIP_PROXY_RENDER_SIZE_FULL) &&
- (user->render_flag & MCLIP_PROXY_RENDER_UNDISTORT) != 0;
- }
+ result |= (user->render_size == MCLIP_PROXY_RENDER_SIZE_FULL) &&
+ (user->render_flag & MCLIP_PROXY_RENDER_UNDISTORT) != 0;
return result;
}
-static int need_postprocessed_frame(MovieClipUser *user, int flag, int postprocess_flag)
+static int need_postprocessed_frame(MovieClipUser *user, int postprocess_flag)
{
int result = postprocess_flag;
- result |= need_undistortion_postprocess(user, flag);
+ result |= need_undistortion_postprocess(user);
return result;
}
@@ -636,7 +688,7 @@ static ImBuf *get_postprocessed_cached_frame(MovieClip *clip, MovieClipUser *use
if (cache->postprocessed.flag != postprocess_flag)
return NULL;
- if (need_undistortion_postprocess(user, flag)) {
+ if (need_undistortion_postprocess(user)) {
if (!check_undistortion_cache_flags(clip))
return NULL;
}
@@ -655,9 +707,6 @@ static ImBuf *put_postprocessed_frame_to_cache(MovieClip *clip, MovieClipUser *u
MovieTrackingCamera *camera = &clip->tracking.camera;
ImBuf *postproc_ibuf = NULL;
- if (cache->postprocessed.ibuf)
- IMB_freeImBuf(cache->postprocessed.ibuf);
-
cache->postprocessed.framenr = user->framenr;
cache->postprocessed.flag = postprocess_flag;
@@ -670,7 +719,7 @@ static ImBuf *put_postprocessed_frame_to_cache(MovieClip *clip, MovieClipUser *u
cache->postprocessed.render_flag = 0;
}
- if (need_undistortion_postprocess(user, flag)) {
+ if (need_undistortion_postprocess(user)) {
copy_v2_v2(cache->postprocessed.principal, camera->principal);
copy_v3_v3(&cache->postprocessed.k1, &camera->k1);
cache->postprocessed.undistortion_used = TRUE;
@@ -695,13 +744,10 @@ static ImBuf *put_postprocessed_frame_to_cache(MovieClip *clip, MovieClipUser *u
IMB_refImBuf(postproc_ibuf);
- cache->postprocessed.ibuf = postproc_ibuf;
+ if (cache->postprocessed.ibuf)
+ IMB_freeImBuf(cache->postprocessed.ibuf);
- if (cache->stabilized.ibuf) {
- /* force stable buffer be re-calculated */
- IMB_freeImBuf(cache->stabilized.ibuf);
- cache->stabilized.ibuf = NULL;
- }
+ cache->postprocessed.ibuf = postproc_ibuf;
return postproc_ibuf;
}
@@ -717,7 +763,7 @@ static ImBuf *movieclip_get_postprocessed_ibuf(MovieClip *clip, MovieClipUser *u
BLI_lock_thread(LOCK_MOVIECLIP);
/* try to obtain cached postprocessed frame first */
- if (need_postprocessed_frame(user, flag, postprocess_flag)) {
+ if (need_postprocessed_frame(user, postprocess_flag)) {
ibuf = get_postprocessed_cached_frame(clip, user, flag, postprocess_flag);
if (!ibuf)
@@ -777,7 +823,8 @@ ImBuf *BKE_movieclip_get_postprocessed_ibuf(MovieClip *clip, MovieClipUser *user
return movieclip_get_postprocessed_ibuf(clip, user, clip->flag, postprocess_flag, 0);
}
-static ImBuf *get_stable_cached_frame(MovieClip *clip, MovieClipUser *user, int framenr, int postprocess_flag)
+static ImBuf *get_stable_cached_frame(MovieClip *clip, MovieClipUser *user, ImBuf *reference_ibuf,
+ int framenr, int postprocess_flag)
{
MovieClipCache *cache = clip->cache;
MovieTracking *tracking = &clip->tracking;
@@ -796,6 +843,9 @@ static ImBuf *get_stable_cached_frame(MovieClip *clip, MovieClipUser *user, int
if (!cache->stabilized.ibuf || cache->stabilized.framenr != framenr)
return NULL;
+ if (cache->stabilized.reference_ibuf != reference_ibuf)
+ return NULL;
+
/* cached ibuf used different proxy settings */
if (cache->stabilized.render_flag != render_flag || cache->stabilized.proxy != proxy)
return NULL;
@@ -836,13 +886,8 @@ static ImBuf *put_stabilized_frame_to_cache(MovieClip *clip, MovieClipUser *user
float tloc[2], tscale, tangle;
int clip_framenr = BKE_movieclip_remap_scene_to_clip_frame(clip, framenr);
- if (cache->stabilized.ibuf)
- IMB_freeImBuf(cache->stabilized.ibuf);
-
stableibuf = BKE_tracking_stabilize_frame(&clip->tracking, clip_framenr, ibuf, tloc, &tscale, &tangle);
- cache->stabilized.ibuf = stableibuf;
-
copy_v2_v2(cache->stabilized.loc, tloc);
cache->stabilized.scale = tscale;
@@ -862,6 +907,11 @@ static ImBuf *put_stabilized_frame_to_cache(MovieClip *clip, MovieClipUser *user
cache->stabilized.postprocess_flag = postprocess_flag;
+ if (cache->stabilized.ibuf)
+ IMB_freeImBuf(cache->stabilized.ibuf);
+
+ cache->stabilized.ibuf = stableibuf;
+
IMB_refImBuf(stableibuf);
return stableibuf;
@@ -881,7 +931,7 @@ ImBuf *BKE_movieclip_get_stable_ibuf(MovieClip *clip, MovieClipUser *user, float
if (clip->tracking.stabilization.flag & TRACKING_2D_STABILIZATION) {
MovieClipCache *cache = clip->cache;
- stableibuf = get_stable_cached_frame(clip, user, framenr, postprocess_flag);
+ stableibuf = get_stable_cached_frame(clip, user, ibuf, framenr, postprocess_flag);
if (!stableibuf)
stableibuf = put_stabilized_frame_to_cache(clip, user, ibuf, framenr, postprocess_flag);
@@ -960,6 +1010,14 @@ void BKE_movieclip_get_size(MovieClip *clip, MovieClipUser *user, int *width, in
IMB_freeImBuf(ibuf);
}
}
+void BKE_movieclip_get_size_fl(MovieClip *clip, MovieClipUser *user, float size[2])
+{
+ int width, height;
+ BKE_movieclip_get_size(clip, user, &width, &height);
+
+ size[0] = (float)width;
+ size[1] = (float)height;
+}
int BKE_movieclip_get_duration(MovieClip *clip)
{
@@ -970,9 +1028,9 @@ int BKE_movieclip_get_duration(MovieClip *clip)
return clip->len;
}
-void BKE_movieclip_aspect(MovieClip *clip, float *aspx, float *aspy)
+void BKE_movieclip_get_aspect(MovieClip *clip, float *aspx, float *aspy)
{
- *aspx = *aspy = 1.0;
+ *aspx = 1.0;
/* x is always 1 */
*aspy = clip->aspy / clip->aspx / clip->tracking.camera.pixel_aspect;
@@ -1268,6 +1326,11 @@ void BKE_movieclip_unlink(Main *bmain, MovieClip *clip)
}
}
+ {
+ bNodeTreeType *treetype = ntreeGetType(NTREE_COMPOSIT);
+ treetype->foreach_nodetree(bmain, (void *)clip, &BKE_node_tree_unlink_id_cb);
+ }
+
clip->id.us = 0;
}
diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c
index 2bc5c37b41b..591524e5156 100644
--- a/source/blender/blenkernel/intern/multires.c
+++ b/source/blender/blenkernel/intern/multires.c
@@ -666,7 +666,9 @@ static void multires_del_higher(MultiresModifierData *mmd, Object *ob, int lvl)
mdisp->totdisp = totdisp;
mdisp->level = lvl;
- multires_grid_paint_mask_downsample(&gpm[g], lvl);
+ if (gpm) {
+ multires_grid_paint_mask_downsample(&gpm[g], lvl);
+ }
}
}
}
@@ -893,15 +895,16 @@ static void multires_subdivide(MultiresModifierData *mmd, Object *ob, int totlvl
CCGKey highGridKey, lowGridKey;
CCGSubSurf *ss;
int i, numGrids, highGridSize;
+ int has_mask = CustomData_has_layer(&me->ldata, CD_GRID_PAINT_MASK);
/* create subsurf DM from original mesh at high level */
cddm = CDDM_from_mesh(me, NULL);
DM_set_only_copy(cddm, CD_MASK_BAREMESH);
- highdm = subsurf_dm_create_local(ob, cddm, totlvl, simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv, TRUE);
+ highdm = subsurf_dm_create_local(ob, cddm, totlvl, simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv, has_mask);
ss = ((CCGDerivedMesh *)highdm)->ss;
/* create multires DM from original mesh at low level */
- lowdm = multires_dm_create_local(ob, cddm, lvl, lvl, simple, TRUE);
+ lowdm = multires_dm_create_local(ob, cddm, lvl, lvl, simple, has_mask);
cddm->release(cddm);
/* copy subsurf grids and replace them with low displaced grids */
@@ -992,6 +995,9 @@ static void grid_tangent_matrix(float mat[3][3], const CCGKey *key,
copy_v3_v3(mat[2], CCG_grid_elem_no(key, grid, x, y));
}
+/* XXX WARNING: subsurf elements from dm and oldGridData *must* be of the same format (size),
+ * because this code uses CCGKey's info from dm to access oldGridData's normals
+ * (through the call to grid_tangent_matrix())! */
static void multiresModifier_disp_run(DerivedMesh *dm, Mesh *me, DerivedMesh *dm2, DispOp op, CCGElem **oldGridData, int totlvl)
{
CCGDerivedMesh *ccgdm = (CCGDerivedMesh *)dm;
@@ -1064,9 +1070,12 @@ static void multiresModifier_disp_run(DerivedMesh *dm, Mesh *me, DerivedMesh *dm
/* if needed, reallocate multires paint mask */
if (gpm && gpm->level < key.level) {
gpm->level = key.level;
- if (gpm->data)
- MEM_freeN(gpm->data);
- gpm->data = MEM_callocN(sizeof(float) * key.grid_area, "gpm.data");
+ #pragma omp critical
+ {
+ if (gpm->data)
+ MEM_freeN(gpm->data);
+ gpm->data = MEM_callocN(sizeof(float) * key.grid_area, "gpm.data");
+ }
}
for (y = 0; y < gridSize; y++) {
@@ -1158,17 +1167,18 @@ void multires_modifier_update_mdisps(struct DerivedMesh *dm)
CCGKey highGridKey, lowGridKey;
CCGSubSurf *ss;
int i, j, numGrids, highGridSize, lowGridSize;
+ int has_mask = CustomData_has_layer(&me->ldata, CD_GRID_PAINT_MASK);
/* create subsurf DM from original mesh at high level */
if (ob->derivedDeform) cddm = CDDM_copy(ob->derivedDeform);
else cddm = CDDM_from_mesh(me, NULL);
DM_set_only_copy(cddm, CD_MASK_BAREMESH);
- highdm = subsurf_dm_create_local(ob, cddm, totlvl, mmd->simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv, TRUE);
+ highdm = subsurf_dm_create_local(ob, cddm, totlvl, mmd->simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv, has_mask);
ss = ((CCGDerivedMesh *)highdm)->ss;
/* create multires DM from original mesh and displacements */
- lowdm = multires_dm_create_local(ob, cddm, lvl, totlvl, mmd->simple, TRUE);
+ lowdm = multires_dm_create_local(ob, cddm, lvl, totlvl, mmd->simple, has_mask);
cddm->release(cddm);
/* gather grid data */
@@ -1220,12 +1230,13 @@ void multires_modifier_update_mdisps(struct DerivedMesh *dm)
}
else {
DerivedMesh *cddm, *subdm;
+ int has_mask = CustomData_has_layer(&me->ldata, CD_GRID_PAINT_MASK);
if (ob->derivedDeform) cddm = CDDM_copy(ob->derivedDeform);
else cddm = CDDM_from_mesh(me, NULL);
DM_set_only_copy(cddm, CD_MASK_BAREMESH);
- subdm = subsurf_dm_create_local(ob, cddm, mmd->totlvl, mmd->simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv, TRUE);
+ subdm = subsurf_dm_create_local(ob, cddm, mmd->totlvl, mmd->simple, 0, mmd->flags & eMultiresModifierFlag_PlainUv, has_mask);
cddm->release(cddm);
multiresModifier_disp_run(dm, me, NULL, CALC_DISPLACEMENTS, subdm->getGridData(subdm), mmd->totlvl);
@@ -1305,7 +1316,7 @@ void multires_set_space(DerivedMesh *dm, Object *ob, int from, int to)
memcpy(subGridData[i], gridData[i], key.elem_size * gridSize * gridSize);
}
- /*numGrids = ccgdm->dm->getNumGrids((DerivedMesh*)ccgdm);*/ /*UNUSED*/
+ /* numGrids = ccgdm->dm->getNumGrids((DerivedMesh *)ccgdm); */ /*UNUSED*/
gridSize = ccgdm->getGridSize((DerivedMesh *)ccgdm);
gridData = ccgdm->getGridData((DerivedMesh *)ccgdm);
gridOffset = ccgdm->getGridOffset((DerivedMesh *)ccgdm);
@@ -2069,6 +2080,21 @@ void multires_load_old(Object *ob, Mesh *me)
me->mface[i].mat_nr = lvl->faces[i].mat_nr;
}
+ /* Copy the first-level data to the mesh */
+ /* XXX We must do this before converting tessfaces to polys/lopps! */
+ for (i = 0, l = me->mr->vdata.layers; i < me->mr->vdata.totlayer; ++i, ++l)
+ CustomData_add_layer(&me->vdata, l->type, CD_REFERENCE, l->data, me->totvert);
+ for (i = 0, l = me->mr->fdata.layers; i < me->mr->fdata.totlayer; ++i, ++l)
+ CustomData_add_layer(&me->fdata, l->type, CD_REFERENCE, l->data, me->totface);
+ memset(&me->mr->vdata, 0, sizeof(CustomData));
+ memset(&me->mr->fdata, 0, sizeof(CustomData));
+
+ multires_load_old_vcols(me);
+ multires_load_old_face_flags(me);
+
+ /* multiresModifier_subdivide (actually, multires_subdivide) expects polys, not tessfaces! */
+ BKE_mesh_convert_mfaces_to_mpolys(me);
+
/* Add a multires modifier to the object */
md = ob->modifiers.first;
while (md && modifierType_getInfo(md->type)->type == eModifierTypeType_OnlyDeform)
@@ -2081,31 +2107,25 @@ void multires_load_old(Object *ob, Mesh *me)
mmd->lvl = mmd->totlvl;
orig = CDDM_from_mesh(me, NULL);
+ /* XXX We *must* alloc paint mask here, else we have some kind of mismatch in
+ * multires_modifier_update_mdisps() (called by dm->release(dm)), which always creates the
+ * reference subsurfed dm with this option, before calling multiresModifier_disp_run(),
+ * which implicitly expects both subsurfs from its first dm and oldGridData parameters to
+ * be of the same "format"! */
dm = multires_make_derived_from_derived(orig, mmd, ob, 0);
-
+
multires_load_old_dm(dm, me, mmd->totlvl + 1);
multires_dm_mark_as_modified(dm, MULTIRES_COORDS_MODIFIED);
dm->release(dm);
orig->release(orig);
- /* Copy the first-level data to the mesh */
- for (i = 0, l = me->mr->vdata.layers; i < me->mr->vdata.totlayer; ++i, ++l)
- CustomData_add_layer(&me->vdata, l->type, CD_REFERENCE, l->data, me->totvert);
- for (i = 0, l = me->mr->fdata.layers; i < me->mr->fdata.totlayer; ++i, ++l)
- CustomData_add_layer(&me->fdata, l->type, CD_REFERENCE, l->data, me->totface);
- memset(&me->mr->vdata, 0, sizeof(CustomData));
- memset(&me->mr->fdata, 0, sizeof(CustomData));
-
- multires_load_old_vcols(me);
- multires_load_old_face_flags(me);
-
/* Remove the old multires */
multires_free(me->mr);
me->mr = NULL;
}
-/* If 'ob' and 'to_ob' both have multires modifiers, syncronize them
+/* If 'ob' and 'to_ob' both have multires modifiers, synchronize them
* such that 'ob' has the same total number of levels as 'to_ob'. */
static void multires_sync_levels(Scene *scene, Object *ob, Object *to_ob)
{
diff --git a/source/blender/blenkernel/intern/nla.c b/source/blender/blenkernel/intern/nla.c
index fb15aa82fa2..9590160c8f3 100644
--- a/source/blender/blenkernel/intern/nla.c
+++ b/source/blender/blenkernel/intern/nla.c
@@ -407,7 +407,7 @@ static float nlastrip_get_frame_actionclip(NlaStrip *strip, float cframe, short
/* reversed = play strip backwards */
if (strip->flag & NLASTRIP_FLAG_REVERSE) {
- // FIXME: this won't work right with Graph Editor?
+ /* FIXME: this won't work right with Graph Editor? */
if (mode == NLATIME_CONVERT_MAP) {
return strip->end - scale * (cframe - strip->actstart);
}
@@ -764,7 +764,7 @@ void BKE_nlastrips_clear_metas(ListBase *strips, short onlySel, short onlyTemp)
}
/* Add the given NLA-Strip to the given Meta-Strip, assuming that the
- * strip isn't attached to anyy list of strips
+ * strip isn't attached to any list of strips
*/
short BKE_nlameta_add_strip(NlaStrip *mstrip, NlaStrip *strip)
{
@@ -1154,7 +1154,7 @@ static short nlastrip_is_first(AnimData *adt, NlaStrip *strip)
return 0;
/* check other tracks to see if they have a strip that's earlier */
- // TODO: or should we check that the strip's track is also the first?
+ /* TODO: or should we check that the strip's track is also the first? */
for (nlt = adt->nla_tracks.first; nlt; nlt = nlt->next) {
/* only check the first strip, assuming that they're all in order */
ns = nlt->strips.first;
@@ -1234,7 +1234,7 @@ void BKE_nlastrip_validate_fcurves(NlaStrip *strip)
/* store path - make copy, and store that */
fcu->rna_path = BLI_strdupn("influence", 9);
- // TODO: insert a few keyframes to ensure default behavior?
+ /* TODO: insert a few keyframes to ensure default behavior? */
}
}
@@ -1255,7 +1255,7 @@ void BKE_nlastrip_validate_fcurves(NlaStrip *strip)
/* store path - make copy, and store that */
fcu->rna_path = BLI_strdupn("strip_time", 10);
- // TODO: insert a few keyframes to ensure default behavior?
+ /* TODO: insert a few keyframes to ensure default behavior? */
}
}
}
@@ -1340,7 +1340,7 @@ static void nlastrip_get_endpoint_overlaps(NlaStrip *strip, NlaTrack *track, flo
/* find strips that overlap over the start/end of the given strip,
* but which don't cover the entire length
*/
- // TODO: this scheme could get quite slow for doing this on many strips...
+ /* TODO: this scheme could get quite slow for doing this on many strips... */
for (nls = track->strips.first; nls; nls = nls->next) {
/* check if strip overlaps (extends over or exactly on) the entire range of the strip we're validating */
if ((nls->start <= strip->start) && (nls->end >= strip->end)) {
@@ -1443,7 +1443,7 @@ void BKE_nla_validate_state(AnimData *adt)
/* apart from 'nothing' option which user has to explicitly choose, we don't really know if
* we should be overwriting the extend setting (but assume that's what the user wanted)
*/
- // TODO: 1 solution is to tie this in with auto-blending...
+ /* TODO: 1 solution is to tie this in with auto-blending... */
if (strip->extendmode != NLASTRIP_EXTEND_NOTHING) {
/* 1) First strip must be set to extend hold, otherwise, stuff before acts dodgy
* 2) Only overwrite extend mode if *not* changing it will most probably result in
@@ -1469,20 +1469,20 @@ void BKE_nla_validate_state(AnimData *adt)
* for normal editing only (i.e. not in editmode for some strip's action),
* so no checks for this are performed.
*/
-// TODO: maybe we should have checks for this too...
+/* TODO: maybe we should have checks for this too... */
void BKE_nla_action_pushdown(AnimData *adt)
{
NlaStrip *strip;
-
+
/* sanity checks */
- // TODO: need to report the error for this
+ /* TODO: need to report the error for this */
if (ELEM(NULL, adt, adt->action))
return;
-
- /* if the action is empty, we also shouldn't try to add to stack,
+
+ /* if the action is empty, we also shouldn't try to add to stack,
* as that will cause us grief down the track
*/
- // TODO: what about modifiers?
+ /* TODO: what about modifiers? */
if (action_has_motion(adt->action) == 0) {
printf("BKE_nla_action_pushdown(): action has no data\n");
return;
@@ -1505,7 +1505,7 @@ void BKE_nla_action_pushdown(AnimData *adt)
/* not first, so extend mode can only be NLASTRIP_EXTEND_HOLD_FORWARD not NLASTRIP_EXTEND_HOLD,
* so that it doesn't override strips in previous tracks
*/
- // FIXME: this needs to be more automated, since user can rearrange strips
+ /* FIXME: this needs to be more automated, since user can rearrange strips */
strip->extendmode = NLASTRIP_EXTEND_HOLD_FORWARD;
}
@@ -1632,8 +1632,8 @@ void BKE_nla_tweakmode_exit(AnimData *adt)
if ((adt->flag & ADT_NLA_EDIT_ON) == 0)
return;
- // TODO: need to sync the user-strip with the new state of the action!
-
+ /* TODO: need to sync the user-strip with the new state of the action! */
+
/* for all Tracks, clear the 'disabled' flag
* for all Strips, clear the 'tweak-user' flag
*/
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index a5e081d122d..60cb1049a35 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -58,8 +58,6 @@
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_node.h"
-#include "BKE_utildefines.h"
-#include "BKE_utildefines.h"
#include "RNA_access.h"
@@ -91,8 +89,8 @@ bNodeTreeType *ntreeGetType(int type)
static bNodeType *node_get_type(bNodeTree *ntree, int type)
{
bNodeType *ntype = ntreeGetType(ntree->type)->node_types.first;
- for (; ntype; ntype= ntype->next)
- if (ntype->type==type)
+ for (; ntype; ntype = ntype->next)
+ if (ntype->type == type)
return ntype;
return NULL;
@@ -105,12 +103,12 @@ bNodeType *ntreeGetNodeType(bNodeTree *ntree)
bNodeSocketType *ntreeGetSocketType(int type)
{
- static bNodeSocketType *types[NUM_SOCKET_TYPES]= {NULL};
+ static bNodeSocketType *types[NUM_SOCKET_TYPES] = {NULL};
static int types_init = 1;
if (types_init) {
node_socket_type_init(types);
- types_init= 0;
+ types_init = 0;
}
if (type < NUM_SOCKET_TYPES) {
@@ -125,8 +123,8 @@ void ntreeInitTypes(bNodeTree *ntree)
{
bNode *node, *next;
- for (node= ntree->nodes.first; node; node= next) {
- next= node->next;
+ for (node = ntree->nodes.first; node; node = next) {
+ next = node->next;
node->typeinfo = node_get_type(ntree, node->type);
@@ -143,11 +141,11 @@ static bNodeSocket *make_socket(bNodeTree *UNUSED(ntree), int in_out, const char
{
bNodeSocket *sock;
- sock= MEM_callocN(sizeof(bNodeSocket), "sock");
+ sock = MEM_callocN(sizeof(bNodeSocket), "sock");
BLI_strncpy(sock->name, name, NODE_MAXSTR);
- sock->limit = (in_out==SOCK_IN ? 1 : 0xFFF);
- sock->type= type;
+ sock->limit = (in_out == SOCK_IN ? 1 : 0xFFF);
+ sock->type = type;
sock->storage = NULL;
sock->default_value = node_socket_make_default_value(type);
@@ -159,9 +157,9 @@ static bNodeSocket *make_socket(bNodeTree *UNUSED(ntree), int in_out, const char
bNodeSocket *nodeAddSocket(bNodeTree *ntree, bNode *node, int in_out, const char *name, int type)
{
bNodeSocket *sock = make_socket(ntree, in_out, name, type);
- if (in_out==SOCK_IN)
+ if (in_out == SOCK_IN)
BLI_addtail(&node->inputs, sock);
- else if (in_out==SOCK_OUT)
+ else if (in_out == SOCK_OUT)
BLI_addtail(&node->outputs, sock);
node->update |= NODE_UPDATE;
@@ -172,9 +170,9 @@ bNodeSocket *nodeAddSocket(bNodeTree *ntree, bNode *node, int in_out, const char
bNodeSocket *nodeInsertSocket(bNodeTree *ntree, bNode *node, int in_out, bNodeSocket *next_sock, const char *name, int type)
{
bNodeSocket *sock = make_socket(ntree, in_out, name, type);
- if (in_out==SOCK_IN)
+ if (in_out == SOCK_IN)
BLI_insertlinkbefore(&node->inputs, next_sock, sock);
- else if (in_out==SOCK_OUT)
+ else if (in_out == SOCK_OUT)
BLI_insertlinkbefore(&node->outputs, next_sock, sock);
node->update |= NODE_UPDATE;
@@ -186,9 +184,9 @@ void nodeRemoveSocket(bNodeTree *ntree, bNode *node, bNodeSocket *sock)
{
bNodeLink *link, *next;
- for (link= ntree->links.first; link; link= next) {
- next= link->next;
- if (link->fromsock==sock || link->tosock==sock) {
+ for (link = ntree->links.first; link; link = next) {
+ next = link->next;
+ if (link->fromsock == sock || link->tosock == sock) {
nodeRemLink(ntree, link);
}
}
@@ -208,17 +206,17 @@ void nodeRemoveAllSockets(bNodeTree *ntree, bNode *node)
bNodeSocket *sock;
bNodeLink *link, *next;
- for (link= ntree->links.first; link; link= next) {
- next= link->next;
- if (link->fromnode==node || link->tonode==node) {
+ for (link = ntree->links.first; link; link = next) {
+ next = link->next;
+ if (link->fromnode == node || link->tonode == node) {
nodeRemLink(ntree, link);
}
}
- for (sock=node->inputs.first; sock; sock=sock->next)
+ for (sock = node->inputs.first; sock; sock = sock->next)
node_socket_free_default_value(sock->type, sock->default_value);
BLI_freelistN(&node->inputs);
- for (sock=node->outputs.first; sock; sock=sock->next)
+ for (sock = node->outputs.first; sock; sock = sock->next)
node_socket_free_default_value(sock->type, sock->default_value);
BLI_freelistN(&node->outputs);
@@ -236,20 +234,20 @@ int nodeFindNode(bNodeTree *ntree, bNodeSocket *sock, bNode **nodep, int *sockin
{
bNode *node;
bNodeSocket *tsock;
- int index= 0;
+ int index = 0;
- for (node= ntree->nodes.first; node; node= node->next) {
- for (index=0, tsock= node->inputs.first; tsock; tsock= tsock->next, index++) {
- if (tsock==sock) {
- if (in_out) *in_out= SOCK_IN;
+ for (node = ntree->nodes.first; node; node = node->next) {
+ for (index = 0, tsock = node->inputs.first; tsock; tsock = tsock->next, index++) {
+ if (tsock == sock) {
+ if (in_out) *in_out = SOCK_IN;
break;
}
}
if (tsock)
break;
- for (index=0, tsock= node->outputs.first; tsock; tsock= tsock->next, index++) {
- if (tsock==sock) {
- if (in_out) *in_out= SOCK_OUT;
+ for (index = 0, tsock = node->outputs.first; tsock; tsock = tsock->next, index++) {
+ if (tsock == sock) {
+ if (in_out) *in_out = SOCK_OUT;
break;
}
}
@@ -258,12 +256,12 @@ int nodeFindNode(bNodeTree *ntree, bNodeSocket *sock, bNode **nodep, int *sockin
}
if (node) {
- *nodep= node;
- if (sockindex) *sockindex= index;
+ *nodep = node;
+ if (sockindex) *sockindex = index;
return 1;
}
- *nodep= NULL;
+ *nodep = NULL;
return 0;
}
@@ -274,7 +272,7 @@ static void node_add_sockets_from_type(bNodeTree *ntree, bNode *node, bNodeType
/* bNodeSocket *sock; */ /* UNUSED */
if (ntype->inputs) {
- sockdef= ntype->inputs;
+ sockdef = ntype->inputs;
while (sockdef->type != -1) {
/* sock = */ node_add_input_from_template(ntree, node, sockdef);
@@ -282,7 +280,7 @@ static void node_add_sockets_from_type(bNodeTree *ntree, bNode *node, bNodeType
}
}
if (ntype->outputs) {
- sockdef= ntype->outputs;
+ sockdef = ntype->outputs;
while (sockdef->type != -1) {
/* sock = */ node_add_output_from_template(ntree, node, sockdef);
@@ -302,7 +300,7 @@ bNode *nodeAddNode(bNodeTree *ntree, struct bNodeTemplate *ntemp)
bNode *node;
bNodeType *ntype;
- ntype= node_get_type(ntree, ntemp->type);
+ ntype = node_get_type(ntree, ntemp->type);
if (ntype == NULL) {
printf("nodeAddNodeType() error: '%d' type invalid\n", ntemp->type);
return NULL;
@@ -311,25 +309,31 @@ bNode *nodeAddNode(bNodeTree *ntree, struct bNodeTemplate *ntemp)
if (!nodeValid(ntree, ntemp))
return NULL;
- node= MEM_callocN(sizeof(bNode), "new node");
- node->type= ntype->type;
- node->typeinfo= ntype;
- node->flag= NODE_SELECT|ntype->flag;
- node->width= ntype->width;
- node->miniwidth= 42.0f;
- node->height= ntype->height;
- node->color[0] = node->color[1] = node->color[2] = 0.608; /* default theme color */
+ node = MEM_callocN(sizeof(bNode), "new node");
+ node->type = ntype->type;
+ node->typeinfo = ntype;
+ node->flag = NODE_SELECT | ntype->flag;
+ node->width = ntype->width;
+ node->miniwidth = 42.0f;
+ node->height = ntype->height;
+ node->color[0] = node->color[1] = node->color[2] = 0.608; /* default theme color */
node_add_sockets_from_type(ntree, node, ntype);
-
- /* initialize the node name with the node label */
- BLI_strncpy(node->name, nodeLabel(node), NODE_MAXSTR);
- nodeUniqueName(ntree, node);
-
+
BLI_addtail(&ntree->nodes, node);
- if (ntype->initfunc!=NULL)
+ if (ntype->initfunc != NULL)
ntype->initfunc(ntree, node, ntemp);
+
+ /* initialize the node name with the node label.
+ * note: do this after the initfunc so nodes get their data set which may be used in naming
+ * (node groups for example) */
+ /* XXX Do not use nodeLabel() here, it returns translated content, which should *only* be used
+ * in UI, *never* in data...
+ * This solution may be a bit rougher than nodeLabel()'s returned string, but it's simpler
+ * than adding a "no translate" flag to this func (and labelfunc() as well). */
+ BLI_strncpy(node->name, node->typeinfo->name, NODE_MAXSTR);
+ nodeUniqueName(ntree, node);
ntree->update |= NTREE_UPDATE_NODES;
@@ -340,19 +344,22 @@ bNode *nodeAddNode(bNodeTree *ntree, struct bNodeTemplate *ntemp)
/* ntree is the target tree */
bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node)
{
- bNode *nnode= MEM_callocN(sizeof(bNode), "dupli node");
+ bNode *nnode = MEM_callocN(sizeof(bNode), "dupli node");
bNodeSocket *sock, *oldsock;
- *nnode= *node;
- nodeUniqueName(ntree, nnode);
-
- BLI_addtail(&ntree->nodes, nnode);
+ *nnode = *node;
+ /* can be called for nodes outside a node tree (e.g. clipboard) */
+ if (ntree) {
+ nodeUniqueName(ntree, nnode);
+
+ BLI_addtail(&ntree->nodes, nnode);
+ }
BLI_duplicatelist(&nnode->inputs, &node->inputs);
- oldsock= node->inputs.first;
- for (sock= nnode->inputs.first; sock; sock= sock->next, oldsock= oldsock->next) {
- oldsock->new_sock= sock;
- sock->stack_index= 0;
+ oldsock = node->inputs.first;
+ for (sock = nnode->inputs.first; sock; sock = sock->next, oldsock = oldsock->next) {
+ oldsock->new_sock = sock;
+ sock->stack_index = 0;
sock->default_value = node_socket_make_default_value(oldsock->type);
node_socket_copy_default_value(oldsock->type, sock->default_value, oldsock->default_value);
@@ -364,10 +371,10 @@ bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node)
}
BLI_duplicatelist(&nnode->outputs, &node->outputs);
- oldsock= node->outputs.first;
- for (sock= nnode->outputs.first; sock; sock= sock->next, oldsock= oldsock->next) {
- oldsock->new_sock= sock;
- sock->stack_index= 0;
+ oldsock = node->outputs.first;
+ for (sock = nnode->outputs.first; sock; sock = sock->next, oldsock = oldsock->next) {
+ oldsock->new_sock = sock;
+ sock->stack_index = 0;
sock->default_value = node_socket_make_default_value(oldsock->type);
node_socket_copy_default_value(oldsock->type, sock->default_value, oldsock->default_value);
@@ -383,11 +390,12 @@ bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node)
if (node->typeinfo->copystoragefunc)
node->typeinfo->copystoragefunc(node, nnode);
- node->new_node= nnode;
- nnode->new_node= NULL;
- nnode->preview= NULL;
+ node->new_node = nnode;
+ nnode->new_node = NULL;
+ nnode->preview = NULL;
- ntree->update |= NTREE_UPDATE_NODES;
+ if (ntree)
+ ntree->update |= NTREE_UPDATE_NODES;
return nnode;
}
@@ -396,108 +404,115 @@ bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node)
bNodeLink *nodeAddLink(bNodeTree *ntree, bNode *fromnode, bNodeSocket *fromsock, bNode *tonode, bNodeSocket *tosock)
{
bNodeSocket *sock;
- bNodeLink *link= NULL;
- int from= 0, to= 0;
+ bNodeLink *link = NULL;
+ int from = 0, to = 0;
if (fromnode) {
/* test valid input */
- for (sock= fromnode->outputs.first; sock; sock= sock->next)
- if (sock==fromsock)
+ for (sock = fromnode->outputs.first; sock; sock = sock->next)
+ if (sock == fromsock)
break;
if (sock)
- from= 1; /* OK */
+ from = 1; /* OK */
else {
- for (sock= fromnode->inputs.first; sock; sock= sock->next)
- if (sock==fromsock)
+ for (sock = fromnode->inputs.first; sock; sock = sock->next)
+ if (sock == fromsock)
break;
if (sock)
- from= -1; /* OK but flip */
+ from = -1; /* OK but flip */
}
}
- else {
+ else if (ntree) {
/* check tree sockets */
- for (sock= ntree->inputs.first; sock; sock= sock->next)
- if (sock==fromsock)
+ for (sock = ntree->inputs.first; sock; sock = sock->next)
+ if (sock == fromsock)
break;
if (sock)
- from= 1; /* OK */
+ from = 1; /* OK */
else {
- for (sock= ntree->outputs.first; sock; sock= sock->next)
- if (sock==fromsock)
+ for (sock = ntree->outputs.first; sock; sock = sock->next)
+ if (sock == fromsock)
break;
if (sock)
- from= -1; /* OK but flip */
+ from = -1; /* OK but flip */
}
}
if (tonode) {
- for (sock= tonode->inputs.first; sock; sock= sock->next)
- if (sock==tosock)
+ for (sock = tonode->inputs.first; sock; sock = sock->next)
+ if (sock == tosock)
break;
if (sock)
- to= 1; /* OK */
+ to = 1; /* OK */
else {
- for (sock= tonode->outputs.first; sock; sock= sock->next)
- if (sock==tosock)
+ for (sock = tonode->outputs.first; sock; sock = sock->next)
+ if (sock == tosock)
break;
if (sock)
- to= -1; /* OK but flip */
+ to = -1; /* OK but flip */
}
}
- else {
+ else if (ntree) {
/* check tree sockets */
- for (sock= ntree->outputs.first; sock; sock= sock->next)
- if (sock==tosock)
+ for (sock = ntree->outputs.first; sock; sock = sock->next)
+ if (sock == tosock)
break;
if (sock)
- to= 1; /* OK */
+ to = 1; /* OK */
else {
- for (sock= ntree->inputs.first; sock; sock= sock->next)
- if (sock==tosock)
+ for (sock = ntree->inputs.first; sock; sock = sock->next)
+ if (sock == tosock)
break;
if (sock)
- to= -1; /* OK but flip */
+ to = -1; /* OK but flip */
}
}
if (from >= 0 && to >= 0) {
- link= MEM_callocN(sizeof(bNodeLink), "link");
- BLI_addtail(&ntree->links, link);
- link->fromnode= fromnode;
- link->fromsock= fromsock;
- link->tonode= tonode;
- link->tosock= tosock;
+ link = MEM_callocN(sizeof(bNodeLink), "link");
+ if (ntree)
+ BLI_addtail(&ntree->links, link);
+ link->fromnode = fromnode;
+ link->fromsock = fromsock;
+ link->tonode = tonode;
+ link->tosock = tosock;
}
else if (from <= 0 && to <= 0) {
- link= MEM_callocN(sizeof(bNodeLink), "link");
- BLI_addtail(&ntree->links, link);
- link->fromnode= tonode;
- link->fromsock= tosock;
- link->tonode= fromnode;
- link->tosock= fromsock;
+ link = MEM_callocN(sizeof(bNodeLink), "link");
+ if (ntree)
+ BLI_addtail(&ntree->links, link);
+ link->fromnode = tonode;
+ link->fromsock = tosock;
+ link->tonode = fromnode;
+ link->tosock = fromsock;
}
- ntree->update |= NTREE_UPDATE_LINKS;
+ if (ntree)
+ ntree->update |= NTREE_UPDATE_LINKS;
return link;
}
void nodeRemLink(bNodeTree *ntree, bNodeLink *link)
{
- BLI_remlink(&ntree->links, link);
+ /* can be called for links outside a node tree (e.g. clipboard) */
+ if (ntree)
+ BLI_remlink(&ntree->links, link);
+
if (link->tosock)
- link->tosock->link= NULL;
+ link->tosock->link = NULL;
MEM_freeN(link);
- ntree->update |= NTREE_UPDATE_LINKS;
+ if (ntree)
+ ntree->update |= NTREE_UPDATE_LINKS;
}
void nodeRemSocketLinks(bNodeTree *ntree, bNodeSocket *sock)
{
bNodeLink *link, *next;
- for (link= ntree->links.first; link; link= next) {
- next= link->next;
- if (link->fromsock==sock || link->tosock==sock) {
+ for (link = ntree->links.first; link; link = next) {
+ next = link->next;
+ if (link->fromsock == sock || link->tosock == sock) {
nodeRemLink(ntree, link);
}
}
@@ -516,15 +531,15 @@ void nodeInternalRelink(bNodeTree *ntree, bNode *node)
intlinks = node->typeinfo->internal_connect(ntree, node);
/* store link pointers in output sockets, for efficient lookup */
- for (link=intlinks.first; link; link=link->next)
+ for (link = intlinks.first; link; link = link->next)
link->tosock->link = link;
/* redirect downstream links */
- for (link=ntree->links.first; link; link=link_next) {
+ for (link = ntree->links.first; link; link = link_next) {
link_next = link->next;
/* do we have internal link? */
- if (link->fromnode==node) {
+ if (link->fromnode == node) {
if (link->fromsock->link) {
/* get the upstream input link */
bNodeLink *fromlink = link->fromsock->link->fromsock->link;
@@ -544,10 +559,10 @@ void nodeInternalRelink(bNodeTree *ntree, bNode *node)
}
/* remove remaining upstream links */
- for (link=ntree->links.first; link; link=link_next) {
+ for (link = ntree->links.first; link; link = link_next) {
link_next = link->next;
- if (link->tonode==node)
+ if (link->tonode == node)
nodeRemLink(ntree, link);
}
@@ -578,9 +593,25 @@ void nodeFromView(bNode *node, float x, float y, float *rx, float *ry)
}
}
+int nodeAttachNodeCheck(bNode *node, bNode *parent)
+{
+ bNode *parent_recurse;
+ for (parent_recurse = node; parent_recurse; parent_recurse = parent_recurse->parent) {
+ if (parent_recurse == parent) {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
void nodeAttachNode(bNode *node, bNode *parent)
{
float locx, locy;
+
+ BLI_assert(parent->type == NODE_FRAME);
+ BLI_assert(nodeAttachNodeCheck(parent, node) == FALSE);
+
nodeToView(node, 0.0f, 0.0f, &locx, &locy);
node->parent = parent;
@@ -593,6 +624,9 @@ void nodeDetachNode(struct bNode *node)
float locx, locy;
if (node->parent) {
+
+ BLI_assert(node->parent->type == NODE_FRAME);
+
/* transform to view space */
nodeToView(node, 0.0f, 0.0f, &locx, &locy);
node->locx = locx;
@@ -609,15 +643,15 @@ bNodeTree *ntreeAddTree(const char *name, int type, int nodetype)
/* trees are created as local trees if they of compositor, material or texture type,
* node groups and other tree types are created as library data.
*/
- if (ELEM3(type, NTREE_COMPOSIT, NTREE_SHADER, NTREE_TEXTURE) && nodetype==0) {
- ntree= MEM_callocN(sizeof(bNodeTree), "new node tree");
- *( (short *)ntree->id.name )= ID_NT; /* not "type", as that is ntree->type */
- BLI_strncpy(ntree->id.name+2, name, sizeof(ntree->id.name));
+ if (ELEM3(type, NTREE_COMPOSIT, NTREE_SHADER, NTREE_TEXTURE) && nodetype == 0) {
+ ntree = MEM_callocN(sizeof(bNodeTree), "new node tree");
+ *( (short *)ntree->id.name) = ID_NT; /* not "type", as that is ntree->type */
+ BLI_strncpy(ntree->id.name + 2, name, sizeof(ntree->id.name));
}
else
- ntree= BKE_libblock_alloc(&G.main->nodetree, ID_NT, name);
+ ntree = BKE_libblock_alloc(&G.main->nodetree, ID_NT, name);
- ntree->type= type;
+ ntree->type = type;
ntree->nodetype = nodetype;
ntreeInitTypes(ntree);
@@ -633,56 +667,70 @@ bNodeTree *ntreeAddTree(const char *name, int type, int nodetype)
* - this gets called when executing compositing updates (for threaded previews)
* - when the nodetree datablock needs to be copied (i.e. when users get copied)
* - for scene duplication use ntreeSwapID() after so we don't have stale pointers.
+ *
+ * do_make_extern: keep enabled for general use, only reason _not_ to enable is when
+ * copying for internal use (threads for eg), where you wont want it to modify the
+ * scene data.
*/
-bNodeTree *ntreeCopyTree(bNodeTree *ntree)
+static bNodeTree *ntreeCopyTree_internal(bNodeTree *ntree, const short do_id_user, const short do_make_extern)
{
bNodeTree *newtree;
bNode *node /*, *nnode */ /* UNUSED */, *last;
bNodeLink *link;
bNodeSocket *gsock, *oldgsock;
- if (ntree==NULL) return NULL;
+ if (ntree == NULL) return NULL;
/* is ntree part of library? */
- for (newtree=G.main->nodetree.first; newtree; newtree= newtree->id.next)
- if (newtree==ntree) break;
+ for (newtree = G.main->nodetree.first; newtree; newtree = newtree->id.next)
+ if (newtree == ntree) break;
if (newtree) {
- newtree= BKE_libblock_copy(&ntree->id);
+ newtree = BKE_libblock_copy(&ntree->id);
}
else {
- newtree= MEM_dupallocN(ntree);
+ newtree = MEM_dupallocN(ntree);
BKE_libblock_copy_data(&newtree->id, &ntree->id, TRUE); /* copy animdata and ID props */
}
id_us_plus((ID *)newtree->gpd);
/* in case a running nodetree is copied */
- newtree->execdata= NULL;
+ newtree->execdata = NULL;
- newtree->nodes.first= newtree->nodes.last= NULL;
- newtree->links.first= newtree->links.last= NULL;
+ newtree->nodes.first = newtree->nodes.last = NULL;
+ newtree->links.first = newtree->links.last = NULL;
last = ntree->nodes.last;
- for (node= ntree->nodes.first; node; node= node->next) {
- node->new_node= NULL;
- /* nnode= */ nodeCopyNode(newtree, node); /* sets node->new */
+ for (node = ntree->nodes.first; node; node = node->next) {
+
+ /* ntreeUserDecrefID inline */
+ if (do_id_user) {
+ id_us_plus(node->id);
+ }
+
+ if (do_make_extern) {
+ id_lib_extern(node->id);
+ }
+
+ node->new_node = NULL;
+ /* nnode= */ nodeCopyNode(newtree, node); /* sets node->new */
/* make sure we don't copy new nodes again! */
- if (node==last)
+ if (node == last)
break;
}
/* socket definition for group usage */
BLI_duplicatelist(&newtree->inputs, &ntree->inputs);
- for (gsock= newtree->inputs.first, oldgsock= ntree->inputs.first; gsock; gsock=gsock->next, oldgsock=oldgsock->next) {
- oldgsock->new_sock= gsock;
+ for (gsock = newtree->inputs.first, oldgsock = ntree->inputs.first; gsock; gsock = gsock->next, oldgsock = oldgsock->next) {
+ oldgsock->new_sock = gsock;
gsock->groupsock = (oldgsock->groupsock ? oldgsock->groupsock->new_sock : NULL);
gsock->default_value = node_socket_make_default_value(oldgsock->type);
node_socket_copy_default_value(oldgsock->type, gsock->default_value, oldgsock->default_value);
}
BLI_duplicatelist(&newtree->outputs, &ntree->outputs);
- for (gsock= newtree->outputs.first, oldgsock= ntree->outputs.first; gsock; gsock=gsock->next, oldgsock=oldgsock->next) {
- oldgsock->new_sock= gsock;
+ for (gsock = newtree->outputs.first, oldgsock = ntree->outputs.first; gsock; gsock = gsock->next, oldgsock = oldgsock->next) {
+ oldgsock->new_sock = gsock;
gsock->groupsock = (oldgsock->groupsock ? oldgsock->groupsock->new_sock : NULL);
gsock->default_value = node_socket_make_default_value(oldgsock->type);
node_socket_copy_default_value(oldgsock->type, gsock->default_value, oldgsock->default_value);
@@ -690,7 +738,7 @@ bNodeTree *ntreeCopyTree(bNodeTree *ntree)
/* copy links */
BLI_duplicatelist(&newtree->links, &ntree->links);
- for (link= newtree->links.first; link; link= link->next) {
+ for (link = newtree->links.first; link; link = link->next) {
link->fromnode = (link->fromnode ? link->fromnode->new_node : NULL);
link->fromsock = (link->fromsock ? link->fromsock->new_sock : NULL);
link->tonode = (link->tonode ? link->tonode->new_node : NULL);
@@ -701,7 +749,7 @@ bNodeTree *ntreeCopyTree(bNodeTree *ntree)
}
/* update node->parent pointers */
- for (node=newtree->nodes.first; node; node=node->next) {
+ for (node = newtree->nodes.first; node; node = node->next) {
if (node->parent)
node->parent = node->parent->new_node;
}
@@ -709,17 +757,56 @@ bNodeTree *ntreeCopyTree(bNodeTree *ntree)
return newtree;
}
+bNodeTree *ntreeCopyTree_ex(bNodeTree *ntree, const short do_id_user)
+{
+ return ntreeCopyTree_internal(ntree, do_id_user, TRUE);
+}
+bNodeTree *ntreeCopyTree(bNodeTree *ntree)
+{
+ return ntreeCopyTree_ex(ntree, TRUE);
+}
+
/* use when duplicating scenes */
-void ntreeSwitchID(bNodeTree *ntree, ID *id_from, ID *id_to)
+void ntreeSwitchID_ex(bNodeTree *ntree, ID *id_from, ID *id_to, const short do_id_user)
{
bNode *node;
+
+ if (id_from == id_to) {
+ /* should never happen but may as well skip if it does */
+ return;
+ }
+
/* for scene duplication only */
- for (node= ntree->nodes.first; node; node= node->next) {
- if (node->id==id_from) {
- node->id= id_to;
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->id == id_from) {
+ if (do_id_user) {
+ id_us_min(id_from);
+ id_us_plus(id_to);
+ }
+
+ node->id = id_to;
}
}
}
+void ntreeSwitchID(bNodeTree *ntree, ID *id_from, ID *id_to)
+{
+ ntreeSwitchID_ex(ntree, id_from, id_to, TRUE);
+}
+
+void ntreeUserIncrefID(bNodeTree *ntree)
+{
+ bNode *node;
+ for (node = ntree->nodes.first; node; node = node->next) {
+ id_us_plus(node->id);
+ }
+}
+void ntreeUserDecrefID(bNodeTree *ntree)
+{
+ bNode *node;
+ for (node = ntree->nodes.first; node; node = node->next) {
+ id_us_min(node->id);
+ }
+}
/* *************** preview *********** */
/* if node->preview, then we assume the rect to exist */
@@ -730,34 +817,34 @@ void nodeFreePreview(bNode *node)
if (node->preview->rect)
MEM_freeN(node->preview->rect);
MEM_freeN(node->preview);
- node->preview= NULL;
+ node->preview = NULL;
}
}
static void node_init_preview(bNode *node, int xsize, int ysize)
{
- if (node->preview==NULL) {
- node->preview= MEM_callocN(sizeof(bNodePreview), "node preview");
+ if (node->preview == NULL) {
+ node->preview = MEM_callocN(sizeof(bNodePreview), "node preview");
// printf("added preview %s\n", node->name);
}
/* node previews can get added with variable size this way */
- if (xsize==0 || ysize==0)
+ if (xsize == 0 || ysize == 0)
return;
/* sanity checks & initialize */
if (node->preview->rect) {
- if (node->preview->xsize!=xsize && node->preview->ysize!=ysize) {
+ if (node->preview->xsize != xsize && node->preview->ysize != ysize) {
MEM_freeN(node->preview->rect);
- node->preview->rect= NULL;
+ node->preview->rect = NULL;
}
}
- if (node->preview->rect==NULL) {
- node->preview->rect= MEM_callocN(4*xsize + xsize*ysize*sizeof(char)*4, "node preview rect");
- node->preview->xsize= xsize;
- node->preview->ysize= ysize;
+ if (node->preview->rect == NULL) {
+ node->preview->rect = MEM_callocN(4 * xsize + xsize * ysize * sizeof(char) * 4, "node preview rect");
+ node->preview->xsize = xsize;
+ node->preview->ysize = ysize;
}
/* no clear, makes nicer previews */
}
@@ -766,13 +853,13 @@ void ntreeInitPreview(bNodeTree *ntree, int xsize, int ysize)
{
bNode *node;
- if (ntree==NULL)
+ if (ntree == NULL)
return;
- for (node= ntree->nodes.first; node; node= node->next) {
- if (node->typeinfo->flag & NODE_PREVIEW) /* hrms, check for closed nodes? */
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->typeinfo->flag & NODE_PREVIEW) /* hrms, check for closed nodes? */
node_init_preview(node, xsize, ysize);
- if (node->type==NODE_GROUP && (node->flag & NODE_GROUP_EDIT))
+ if (node->type == NODE_GROUP && (node->flag & NODE_GROUP_EDIT))
ntreeInitPreview((bNodeTree *)node->id, xsize, ysize);
}
}
@@ -788,13 +875,13 @@ void ntreeClearPreview(bNodeTree *ntree)
{
bNode *node;
- if (ntree==NULL)
+ if (ntree == NULL)
return;
- for (node= ntree->nodes.first; node; node= node->next) {
+ for (node = ntree->nodes.first; node; node = node->next) {
if (node->typeinfo->flag & NODE_PREVIEW)
nodeClearPreview(node);
- if (node->type==NODE_GROUP && (node->flag & NODE_GROUP_EDIT))
+ if (node->type == NODE_GROUP && (node->flag & NODE_GROUP_EDIT))
ntreeClearPreview((bNodeTree *)node->id);
}
}
@@ -804,11 +891,11 @@ void ntreeClearPreview(bNodeTree *ntree)
* add the color once. Preview gets cleared before it starts render though */
void nodeAddToPreview(bNode *node, float col[4], int x, int y, int do_manage)
{
- bNodePreview *preview= node->preview;
+ bNodePreview *preview = node->preview;
if (preview) {
- if (x>=0 && y>=0) {
- if (x<preview->xsize && y<preview->ysize) {
- unsigned char *tar= preview->rect+ 4*((preview->xsize*y) + x);
+ if (x >= 0 && y >= 0) {
+ if (x < preview->xsize && y < preview->ysize) {
+ unsigned char *tar = preview->rect + 4 * ((preview->xsize * y) + x);
if (do_manage) {
linearrgb_to_srgb_uchar4(tar, col);
@@ -832,22 +919,22 @@ void nodeUnlinkNode(bNodeTree *ntree, bNode *node)
bNodeSocket *sock;
ListBase *lb;
- for (link= ntree->links.first; link; link= next) {
- next= link->next;
+ for (link = ntree->links.first; link; link = next) {
+ next = link->next;
- if (link->fromnode==node) {
- lb= &node->outputs;
+ if (link->fromnode == node) {
+ lb = &node->outputs;
if (link->tonode)
link->tonode->update |= NODE_UPDATE;
}
- else if (link->tonode==node)
- lb= &node->inputs;
+ else if (link->tonode == node)
+ lb = &node->inputs;
else
- lb= NULL;
+ lb = NULL;
if (lb) {
- for (sock= lb->first; sock; sock= sock->next) {
- if (link->fromsock==sock || link->tosock==sock)
+ for (sock = lb->first; sock; sock = sock->next) {
+ if (link->fromsock == sock || link->tosock == sock)
break;
}
if (sock) {
@@ -860,37 +947,42 @@ void nodeUnlinkNode(bNodeTree *ntree, bNode *node)
static void node_unlink_attached(bNodeTree *ntree, bNode *parent)
{
bNode *node;
- for (node=ntree->nodes.first; node; node=node->next) {
+ for (node = ntree->nodes.first; node; node = node->next) {
if (node->parent == parent)
nodeDetachNode(node);
}
}
+/** \note caller needs to manage node->id user */
void nodeFreeNode(bNodeTree *ntree, bNode *node)
{
- bNodeTreeType *treetype= ntreeGetType(ntree->type);
bNodeSocket *sock, *nextsock;
- /* remove all references to this node */
- nodeUnlinkNode(ntree, node);
- node_unlink_attached(ntree, node);
-
- BLI_remlink(&ntree->nodes, node);
+ /* can be called for nodes outside a node tree (e.g. clipboard) */
+ if (ntree) {
+ bNodeTreeType *treetype = ntreeGetType(ntree->type);
+
+ /* remove all references to this node */
+ nodeUnlinkNode(ntree, node);
+ node_unlink_attached(ntree, node);
+
+ BLI_remlink(&ntree->nodes, node);
+
+ if (treetype->free_node_cache)
+ treetype->free_node_cache(ntree, node);
+ }
/* since it is called while free database, node->id is undefined */
- if (treetype->free_node_cache)
- treetype->free_node_cache(ntree, node);
-
if (node->typeinfo && node->typeinfo->freestoragefunc)
node->typeinfo->freestoragefunc(node);
- for (sock=node->inputs.first; sock; sock = nextsock) {
+ for (sock = node->inputs.first; sock; sock = nextsock) {
nextsock = sock->next;
node_socket_free_default_value(sock->type, sock->default_value);
MEM_freeN(sock);
}
- for (sock=node->outputs.first; sock; sock = nextsock) {
+ for (sock = node->outputs.first; sock; sock = nextsock) {
nextsock = sock->next;
node_socket_free_default_value(sock->type, sock->default_value);
MEM_freeN(sock);
@@ -900,16 +992,17 @@ void nodeFreeNode(bNodeTree *ntree, bNode *node)
MEM_freeN(node);
- ntree->update |= NTREE_UPDATE_NODES;
+ if (ntree)
+ ntree->update |= NTREE_UPDATE_NODES;
}
/* do not free ntree itself here, BKE_libblock_free calls this function too */
-void ntreeFreeTree(bNodeTree *ntree)
+void ntreeFreeTree_ex(bNodeTree *ntree, const short do_id_user)
{
bNode *node, *next;
bNodeSocket *sock;
- if (ntree==NULL) return;
+ if (ntree == NULL) return;
/* XXX hack! node trees should not store execution graphs at all.
* This should be removed when old tree types no longer require it.
@@ -918,15 +1011,15 @@ void ntreeFreeTree(bNodeTree *ntree)
*/
if (ntree->execdata) {
switch (ntree->type) {
- case NTREE_COMPOSIT:
- ntreeCompositEndExecTree(ntree->execdata, 1);
- break;
- case NTREE_SHADER:
- ntreeShaderEndExecTree(ntree->execdata, 1);
- break;
- case NTREE_TEXTURE:
- ntreeTexEndExecTree(ntree->execdata, 1);
- break;
+ case NTREE_COMPOSIT:
+ ntreeCompositEndExecTree(ntree->execdata, 1);
+ break;
+ case NTREE_SHADER:
+ ntreeShaderEndExecTree(ntree->execdata, 1);
+ break;
+ case NTREE_TEXTURE:
+ ntreeTexEndExecTree(ntree->execdata, 1);
+ break;
}
}
@@ -934,28 +1027,48 @@ void ntreeFreeTree(bNodeTree *ntree)
id_us_min((ID *)ntree->gpd);
- BLI_freelistN(&ntree->links); /* do first, then unlink_node goes fast */
+ BLI_freelistN(&ntree->links); /* do first, then unlink_node goes fast */
- for (node= ntree->nodes.first; node; node= next) {
- next= node->next;
+ for (node = ntree->nodes.first; node; node = next) {
+ next = node->next;
+
+ /* ntreeUserIncrefID inline */
+
+ /* XXX, this is correct, however when freeing the entire database
+ * this ends up accessing freed data which isn't properly unlinking
+ * its self from scene nodes, SO - for now prefer invalid usercounts
+ * on free rather then bad memory access - Campbell */
+#if 0
+ if (do_id_user) {
+ id_us_min(node->id);
+ }
+#else
+ (void)do_id_user;
+#endif
+
nodeFreeNode(ntree, node);
}
- for (sock=ntree->inputs.first; sock; sock=sock->next)
+ for (sock = ntree->inputs.first; sock; sock = sock->next)
node_socket_free_default_value(sock->type, sock->default_value);
BLI_freelistN(&ntree->inputs);
- for (sock=ntree->outputs.first; sock; sock=sock->next)
+ for (sock = ntree->outputs.first; sock; sock = sock->next)
node_socket_free_default_value(sock->type, sock->default_value);
BLI_freelistN(&ntree->outputs);
}
+/* same as ntreeFreeTree_ex but always manage users */
+void ntreeFreeTree(bNodeTree *ntree)
+{
+ ntreeFreeTree_ex(ntree, TRUE);
+}
void ntreeFreeCache(bNodeTree *ntree)
{
bNodeTreeType *treetype;
- if (ntree==NULL) return;
+ if (ntree == NULL) return;
- treetype= ntreeGetType(ntree->type);
+ treetype = ntreeGetType(ntree->type);
if (treetype->free_cache)
treetype->free_cache(ntree);
}
@@ -965,45 +1078,46 @@ void ntreeSetOutput(bNodeTree *ntree)
bNode *node;
/* find the active outputs, might become tree type dependent handler */
- for (node= ntree->nodes.first; node; node= node->next) {
- if (node->typeinfo->nclass==NODE_CLASS_OUTPUT) {
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->typeinfo->nclass == NODE_CLASS_OUTPUT) {
bNode *tnode;
- int output= 0;
+ int output = 0;
/* we need a check for which output node should be tagged like this, below an exception */
- if (node->type==CMP_NODE_OUTPUT_FILE)
+ if (node->type == CMP_NODE_OUTPUT_FILE)
continue;
/* there is more types having output class, each one is checked */
- for (tnode= ntree->nodes.first; tnode; tnode= tnode->next) {
- if (tnode->typeinfo->nclass==NODE_CLASS_OUTPUT) {
+ for (tnode = ntree->nodes.first; tnode; tnode = tnode->next) {
+ if (tnode->typeinfo->nclass == NODE_CLASS_OUTPUT) {
- if (ntree->type==NTREE_COMPOSIT) {
+ if (ntree->type == NTREE_COMPOSIT) {
/* same type, exception for viewer */
- if (tnode->type==node->type ||
- (ELEM(tnode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER) &&
- ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER))) {
+ if (tnode->type == node->type ||
+ (ELEM(tnode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER) &&
+ ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)))
+ {
if (tnode->flag & NODE_DO_OUTPUT) {
output++;
- if (output>1)
+ if (output > 1)
tnode->flag &= ~NODE_DO_OUTPUT;
}
}
}
else {
/* same type */
- if (tnode->type==node->type) {
+ if (tnode->type == node->type) {
if (tnode->flag & NODE_DO_OUTPUT) {
output++;
- if (output>1)
+ if (output > 1)
tnode->flag &= ~NODE_DO_OUTPUT;
}
}
}
}
}
- if (output==0)
+ if (output == 0)
node->flag |= NODE_DO_OUTPUT;
}
}
@@ -1020,28 +1134,32 @@ typedef struct MakeLocalCallData {
static void ntreeMakeLocal_CheckLocal(void *calldata, ID *owner_id, bNodeTree *ntree)
{
- MakeLocalCallData *cd= (MakeLocalCallData*)calldata;
+ MakeLocalCallData *cd = (MakeLocalCallData *)calldata;
bNode *node;
/* find if group is in tree */
- for (node= ntree->nodes.first; node; node= node->next) {
+ for (node = ntree->nodes.first; node; node = node->next) {
if (node->id == cd->group_id) {
- if (owner_id->lib) cd->lib= 1;
- else cd->local= 1;
+ if (owner_id->lib) {
+ cd->lib = TRUE;
+ }
+ else {
+ cd->local = TRUE;
+ }
}
}
}
static void ntreeMakeLocal_LinkNew(void *calldata, ID *owner_id, bNodeTree *ntree)
{
- MakeLocalCallData *cd= (MakeLocalCallData*)calldata;
+ MakeLocalCallData *cd = (MakeLocalCallData *)calldata;
bNode *node;
/* find if group is in tree */
- for (node= ntree->nodes.first; node; node= node->next) {
+ for (node = ntree->nodes.first; node; node = node->next) {
if (node->id == cd->group_id) {
- if (owner_id->lib==NULL) {
- node->id= cd->new_id;
+ if (owner_id->lib == NULL) {
+ node->id = cd->new_id;
cd->new_id->us++;
cd->group_id->us--;
}
@@ -1051,8 +1169,8 @@ static void ntreeMakeLocal_LinkNew(void *calldata, ID *owner_id, bNodeTree *ntre
void ntreeMakeLocal(bNodeTree *ntree)
{
- Main *bmain= G.main;
- bNodeTreeType *treetype= ntreeGetType(ntree->type);
+ Main *bmain = G.main;
+ bNodeTreeType *treetype = ntreeGetType(ntree->type);
MakeLocalCallData cd;
/* - only lib users: do nothing
@@ -1060,8 +1178,8 @@ void ntreeMakeLocal(bNodeTree *ntree)
* - mixed: make copy
*/
- if (ntree->id.lib==NULL) return;
- if (ntree->id.us==1) {
+ if (ntree->id.lib == NULL) return;
+ if (ntree->id.us == 1) {
id_clear_lib_data(bmain, (ID *)ntree);
return;
}
@@ -1075,14 +1193,14 @@ void ntreeMakeLocal(bNodeTree *ntree)
treetype->foreach_nodetree(G.main, &cd, &ntreeMakeLocal_CheckLocal);
/* if all users are local, we simply make tree local */
- if (cd.local && cd.lib==0) {
+ if (cd.local && cd.lib == 0) {
id_clear_lib_data(bmain, (ID *)ntree);
}
else if (cd.local && cd.lib) {
/* this is the mixed case, we copy the tree and assign it to local users */
- bNodeTree *newtree= ntreeCopyTree(ntree);
+ bNodeTree *newtree = ntreeCopyTree(ntree);
- newtree->id.us= 0;
+ newtree->id.us = 0;
cd.new_id = &newtree->id;
@@ -1092,18 +1210,18 @@ void ntreeMakeLocal(bNodeTree *ntree)
int ntreeNodeExists(bNodeTree *ntree, bNode *testnode)
{
- bNode *node= ntree->nodes.first;
- for (; node; node= node->next)
- if (node==testnode)
+ bNode *node = ntree->nodes.first;
+ for (; node; node = node->next)
+ if (node == testnode)
return 1;
return 0;
}
int ntreeOutputExists(bNode *node, bNodeSocket *testsock)
{
- bNodeSocket *sock= node->outputs.first;
- for (; sock; sock= sock->next)
- if (sock==testsock)
+ bNodeSocket *sock = node->outputs.first;
+ for (; sock; sock = sock->next)
+ if (sock == testsock)
return 1;
return 0;
}
@@ -1111,33 +1229,33 @@ int ntreeOutputExists(bNode *node, bNodeSocket *testsock)
/* returns localized tree for execution in threads */
bNodeTree *ntreeLocalize(bNodeTree *ntree)
{
- bNodeTreeType *ntreetype= ntreeGetType(ntree->type);
+ bNodeTreeType *ntreetype = ntreeGetType(ntree->type);
bNodeTree *ltree;
bNode *node;
- bAction *action_backup= NULL, *tmpact_backup= NULL;
+ bAction *action_backup = NULL, *tmpact_backup = NULL;
/* Workaround for copying an action on each render!
* set action to NULL so animdata actions don't get copied */
- AnimData *adt= BKE_animdata_from_id(&ntree->id);
+ AnimData *adt = BKE_animdata_from_id(&ntree->id);
if (adt) {
- action_backup= adt->action;
- tmpact_backup= adt->tmpact;
+ action_backup = adt->action;
+ tmpact_backup = adt->tmpact;
- adt->action= NULL;
- adt->tmpact= NULL;
+ adt->action = NULL;
+ adt->tmpact = NULL;
}
/* node copy func */
- ltree= ntreeCopyTree(ntree);
+ ltree = ntreeCopyTree_internal(ntree, FALSE, FALSE);
if (adt) {
- AnimData *ladt= BKE_animdata_from_id(&ltree->id);
+ AnimData *ladt = BKE_animdata_from_id(&ltree->id);
- adt->action= ladt->action= action_backup;
- adt->tmpact= ladt->tmpact= tmpact_backup;
+ adt->action = ladt->action = action_backup;
+ adt->tmpact = ladt->tmpact = tmpact_backup;
if (action_backup) action_backup->id.us++;
if (tmpact_backup) tmpact_backup->id.us++;
@@ -1148,9 +1266,9 @@ bNodeTree *ntreeLocalize(bNodeTree *ntree)
/* ensures only a single output node is enabled */
ntreeSetOutput(ntree);
- for (node= ntree->nodes.first; node; node= node->next) {
+ for (node = ntree->nodes.first; node; node = node->next) {
/* store new_node pointer to original */
- node->new_node->new_node= node;
+ node->new_node->new_node = node;
}
if (ntreetype->localize)
@@ -1164,7 +1282,7 @@ bNodeTree *ntreeLocalize(bNodeTree *ntree)
/* is called by jobs manager, outside threads, so it doesnt happen during draw */
void ntreeLocalSync(bNodeTree *localtree, bNodeTree *ntree)
{
- bNodeTreeType *ntreetype= ntreeGetType(ntree->type);
+ bNodeTreeType *ntreetype = ntreeGetType(ntree->type);
if (ntreetype->local_sync)
ntreetype->local_sync(localtree, ntree);
@@ -1174,16 +1292,16 @@ void ntreeLocalSync(bNodeTree *localtree, bNodeTree *ntree)
/* we have to assume the editor already changed completely */
void ntreeLocalMerge(bNodeTree *localtree, bNodeTree *ntree)
{
- bNodeTreeType *ntreetype= ntreeGetType(ntree->type);
+ bNodeTreeType *ntreetype = ntreeGetType(ntree->type);
bNode *lnode;
/* move over the compbufs and previews */
- for (lnode= localtree->nodes.first; lnode; lnode= lnode->next) {
+ for (lnode = localtree->nodes.first; lnode; lnode = lnode->next) {
if (ntreeNodeExists(ntree, lnode->new_node)) {
if (lnode->preview && lnode->preview->rect) {
nodeFreePreview(lnode->new_node);
- lnode->new_node->preview= lnode->preview;
- lnode->preview= NULL;
+ lnode->new_node->preview = lnode->preview;
+ lnode->preview = NULL;
}
}
}
@@ -1191,7 +1309,7 @@ void ntreeLocalMerge(bNodeTree *localtree, bNodeTree *ntree)
if (ntreetype->local_merge)
ntreetype->local_merge(localtree, ntree);
- ntreeFreeTree(localtree);
+ ntreeFreeTree_ex(localtree, FALSE);
MEM_freeN(localtree);
}
@@ -1202,7 +1320,7 @@ int ntreeHasType(bNodeTree *ntree, int type)
bNode *node;
if (ntree)
- for (node= ntree->nodes.first; node; node= node->next)
+ for (node = ntree->nodes.first; node; node = node->next)
if (node->type == type)
return 1;
return 0;
@@ -1212,10 +1330,10 @@ bNodeLink *nodeFindLink(bNodeTree *ntree, bNodeSocket *from, bNodeSocket *to)
{
bNodeLink *link;
- for (link= ntree->links.first; link; link= link->next) {
- if (link->fromsock==from && link->tosock==to)
+ for (link = ntree->links.first; link; link = link->next) {
+ if (link->fromsock == from && link->tosock == to)
return link;
- if (link->fromsock==to && link->tosock==from) /* hrms? */
+ if (link->fromsock == to && link->tosock == from) /* hrms? */
return link;
}
return NULL;
@@ -1224,10 +1342,10 @@ bNodeLink *nodeFindLink(bNodeTree *ntree, bNodeSocket *from, bNodeSocket *to)
int nodeCountSocketLinks(bNodeTree *ntree, bNodeSocket *sock)
{
bNodeLink *link;
- int tot= 0;
+ int tot = 0;
- for (link= ntree->links.first; link; link= link->next) {
- if (link->fromsock==sock || link->tosock==sock)
+ for (link = ntree->links.first; link; link = link->next) {
+ if (link->fromsock == sock || link->tosock == sock)
tot++;
}
return tot;
@@ -1237,9 +1355,9 @@ bNode *nodeGetActive(bNodeTree *ntree)
{
bNode *node;
- if (ntree==NULL) return NULL;
+ if (ntree == NULL) return NULL;
- for (node= ntree->nodes.first; node; node= node->next)
+ for (node = ntree->nodes.first; node; node = node->next)
if (node->flag & NODE_ACTIVE)
break;
return node;
@@ -1250,19 +1368,19 @@ bNode *nodeGetActiveID(bNodeTree *ntree, short idtype)
{
bNode *node;
- if (ntree==NULL) return NULL;
+ if (ntree == NULL) return NULL;
/* check for group edit */
- for (node= ntree->nodes.first; node; node= node->next)
+ for (node = ntree->nodes.first; node; node = node->next)
if (node->flag & NODE_GROUP_EDIT)
break;
if (node)
- ntree= (bNodeTree*)node->id;
+ ntree = (bNodeTree *)node->id;
/* now find active node with this id */
- for (node= ntree->nodes.first; node; node= node->next)
- if (node->id && GS(node->id->name)==idtype)
+ for (node = ntree->nodes.first; node; node = node->next)
+ if (node->id && GS(node->id->name) == idtype)
if (node->flag & NODE_ACTIVE_ID)
break;
@@ -1272,24 +1390,24 @@ bNode *nodeGetActiveID(bNodeTree *ntree, short idtype)
int nodeSetActiveID(bNodeTree *ntree, short idtype, ID *id)
{
bNode *node;
- int ok= FALSE;
+ int ok = FALSE;
- if (ntree==NULL) return ok;
+ if (ntree == NULL) return ok;
/* check for group edit */
- for (node= ntree->nodes.first; node; node= node->next)
+ for (node = ntree->nodes.first; node; node = node->next)
if (node->flag & NODE_GROUP_EDIT)
break;
if (node)
- ntree= (bNodeTree*)node->id;
+ ntree = (bNodeTree *)node->id;
/* now find active node with this id */
- for (node= ntree->nodes.first; node; node= node->next) {
- if (node->id && GS(node->id->name)==idtype) {
- if (id && ok==FALSE && node->id==id) {
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->id && GS(node->id->name) == idtype) {
+ if (id && ok == FALSE && node->id == id) {
node->flag |= NODE_ACTIVE_ID;
- ok= TRUE;
+ ok = TRUE;
}
else {
node->flag &= ~NODE_ACTIVE_ID;
@@ -1306,10 +1424,10 @@ void nodeClearActiveID(bNodeTree *ntree, short idtype)
{
bNode *node;
- if (ntree==NULL) return;
+ if (ntree == NULL) return;
- for (node= ntree->nodes.first; node; node= node->next)
- if (node->id && GS(node->id->name)==idtype)
+ for (node = ntree->nodes.first; node; node = node->next)
+ if (node->id && GS(node->id->name) == idtype)
node->flag &= ~NODE_ACTIVE_ID;
}
@@ -1317,9 +1435,9 @@ void nodeClearActive(bNodeTree *ntree)
{
bNode *node;
- if (ntree==NULL) return;
+ if (ntree == NULL) return;
- for (node= ntree->nodes.first; node; node= node->next)
+ for (node = ntree->nodes.first; node; node = node->next)
node->flag &= ~(NODE_ACTIVE | NODE_ACTIVE_ID);
}
@@ -1330,7 +1448,7 @@ void nodeSetActive(bNodeTree *ntree, bNode *node)
bNode *tnode;
/* make sure only one node is active, and only one per ID type */
- for (tnode= ntree->nodes.first; tnode; tnode= tnode->next) {
+ for (tnode = ntree->nodes.first; tnode; tnode = tnode->next) {
tnode->flag &= ~NODE_ACTIVE;
if (node->id && tnode->id) {
@@ -1366,6 +1484,160 @@ void nodeSocketSetType(bNodeSocket *sock, int type)
node_socket_free_default_value(old_type, old_default_value);
}
+/* ************** Node Clipboard *********** */
+
+#define USE_NODE_CB_VALIDATE
+
+#ifdef USE_NODE_CB_VALIDATE
+/**
+ * This data structure is to validate the node on creation,
+ * otherwise we may reference missing data.
+ *
+ * Currently its only used for ID's, but nodes may one day
+ * reference other pointers which need validation.
+ */
+typedef struct bNodeClipboardExtraInfo {
+ struct bNodeClipboardExtraInfo *next, *prev;
+ ID *id;
+ char id_name[MAX_ID_NAME];
+ char library_name[FILE_MAX];
+} bNodeClipboardExtraInfo;
+#endif /* USE_NODE_CB_VALIDATE */
+
+
+typedef struct bNodeClipboard {
+ ListBase nodes;
+
+#ifdef USE_NODE_CB_VALIDATE
+ ListBase nodes_extra_info;
+#endif
+
+ ListBase links;
+ int type;
+} bNodeClipboard;
+
+bNodeClipboard node_clipboard = {{0}};
+
+void BKE_node_clipboard_init(struct bNodeTree *ntree)
+{
+ node_clipboard.type = ntree->type;
+}
+
+void BKE_node_clipboard_clear(void)
+{
+ bNode *node, *node_next;
+ bNodeLink *link, *link_next;
+
+ for (link = node_clipboard.links.first; link; link = link_next) {
+ link_next = link->next;
+ nodeRemLink(NULL, link);
+ }
+ node_clipboard.links.first = node_clipboard.links.last = NULL;
+
+ for (node = node_clipboard.nodes.first; node; node = node_next) {
+ node_next = node->next;
+ nodeFreeNode(NULL, node);
+ }
+ node_clipboard.nodes.first = node_clipboard.nodes.last = NULL;
+
+#ifdef USE_NODE_CB_VALIDATE
+ BLI_freelistN(&node_clipboard.nodes_extra_info);
+#endif
+}
+
+/* return FALSE when one or more ID's are lost */
+int BKE_node_clipboard_validate(void)
+{
+ int ok = TRUE;
+
+#ifdef USE_NODE_CB_VALIDATE
+ bNodeClipboardExtraInfo *node_info;
+ bNode *node;
+
+
+ /* lists must be aligned */
+ BLI_assert(BLI_countlist(&node_clipboard.nodes) ==
+ BLI_countlist(&node_clipboard.nodes_extra_info));
+
+ for (node = node_clipboard.nodes.first, node_info = node_clipboard.nodes_extra_info.first;
+ node;
+ node = node->next, node_info = node_info->next)
+ {
+ /* validate the node against the stored node info */
+
+ /* re-assign each loop since we may clear,
+ * open a new file where the ID is valid, and paste again */
+ node->id = node_info->id;
+
+ /* currently only validate the ID */
+ if (node->id) {
+ ListBase *lb = which_libbase(G.main, GS(node_info->id_name));
+ BLI_assert(lb != NULL);
+
+ if (BLI_findindex(lb, node_info->id) == -1) {
+ /* may assign NULL */
+ node->id = BLI_findstring(lb, node_info->id_name + 2, offsetof(ID, name) + 2);
+
+ if (node->id == NULL) {
+ ok = FALSE;
+ }
+ }
+ }
+ }
+#endif /* USE_NODE_CB_VALIDATE */
+
+ return ok;
+}
+
+void BKE_node_clipboard_add_node(bNode *node)
+{
+#ifdef USE_NODE_CB_VALIDATE
+ /* add extra info */
+ bNodeClipboardExtraInfo *node_info = MEM_mallocN(sizeof(bNodeClipboardExtraInfo), STRINGIFY(bNodeClipboardExtraInfo));
+
+ node_info->id = node->id;
+ if (node->id) {
+ BLI_strncpy(node_info->id_name, node->id->name, sizeof(node_info->id_name));
+ if (node->id->lib) {
+ BLI_strncpy(node_info->library_name, node->id->lib->filepath, sizeof(node_info->library_name));
+ }
+ else {
+ node_info->library_name[0] = '\0';
+ }
+ }
+ else {
+ node_info->id_name[0] = '\0';
+ node_info->library_name[0] = '\0';
+ }
+ BLI_addtail(&node_clipboard.nodes_extra_info, node_info);
+ /* end extra info */
+#endif /* USE_NODE_CB_VALIDATE */
+
+ /* add node */
+ BLI_addtail(&node_clipboard.nodes, node);
+
+}
+
+void BKE_node_clipboard_add_link(bNodeLink *link)
+{
+ BLI_addtail(&node_clipboard.links, link);
+}
+
+const ListBase *BKE_node_clipboard_get_nodes(void)
+{
+ return &node_clipboard.nodes;
+}
+
+const ListBase *BKE_node_clipboard_get_links(void)
+{
+ return &node_clipboard.links;
+}
+
+int BKE_node_clipboard_get_type(void)
+{
+ return node_clipboard.type;
+}
+
/* ************** dependency stuff *********** */
/* node is guaranteed to be not checked before */
@@ -1378,12 +1650,12 @@ static int node_get_deplist_recurs(bNode *node, bNode ***nsort)
node->done = TRUE;
/* check linked nodes */
- for (sock= node->inputs.first; sock; sock= sock->next) {
+ for (sock = node->inputs.first; sock; sock = sock->next) {
if (sock->link) {
- fromnode= sock->link->fromnode;
+ fromnode = sock->link->fromnode;
if (fromnode) {
- if (fromnode->done==0)
- fromnode->level= node_get_deplist_recurs(fromnode, nsort);
+ if (fromnode->done == 0)
+ fromnode->level = node_get_deplist_recurs(fromnode, nsort);
if (fromnode->level <= level)
level = fromnode->level - 1;
}
@@ -1392,14 +1664,14 @@ static int node_get_deplist_recurs(bNode *node, bNode ***nsort)
/* check parent node */
if (node->parent) {
- if (node->parent->done==0)
- node->parent->level= node_get_deplist_recurs(node->parent, nsort);
+ if (node->parent->done == 0)
+ node->parent->level = node_get_deplist_recurs(node->parent, nsort);
if (node->parent->level <= level)
level = node->parent->level - 1;
}
if (nsort) {
- **nsort= node;
+ **nsort = node;
(*nsort)++;
}
@@ -1410,24 +1682,24 @@ void ntreeGetDependencyList(struct bNodeTree *ntree, struct bNode ***deplist, in
{
bNode *node, **nsort;
- *totnodes=0;
+ *totnodes = 0;
/* first clear data */
- for (node= ntree->nodes.first; node; node= node->next) {
+ for (node = ntree->nodes.first; node; node = node->next) {
node->done = FALSE;
(*totnodes)++;
}
- if (*totnodes==0) {
+ if (*totnodes == 0) {
*deplist = NULL;
return;
}
- nsort= *deplist= MEM_callocN((*totnodes)*sizeof(bNode*), "sorted node array");
+ nsort = *deplist = MEM_callocN((*totnodes) * sizeof(bNode *), "sorted node array");
/* recursive check */
- for (node= ntree->nodes.first; node; node= node->next) {
- if (node->done==0) {
- node->level= node_get_deplist_recurs(node, &nsort);
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->done == 0) {
+ node->level = node_get_deplist_recurs(node, &nsort);
}
}
}
@@ -1438,14 +1710,14 @@ static void ntree_update_node_level(bNodeTree *ntree)
bNode *node;
/* first clear tag */
- for (node= ntree->nodes.first; node; node= node->next) {
+ for (node = ntree->nodes.first; node; node = node->next) {
node->done = FALSE;
}
/* recursive check */
- for (node= ntree->nodes.first; node; node= node->next) {
- if (node->done==0) {
- node->level= node_get_deplist_recurs(node, NULL);
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->done == 0) {
+ node->level = node_get_deplist_recurs(node, NULL);
}
}
}
@@ -1457,25 +1729,25 @@ static void ntree_update_link_pointers(bNodeTree *ntree)
bNodeLink *link;
/* first clear data */
- for (node= ntree->nodes.first; node; node= node->next) {
- for (sock= node->inputs.first; sock; sock= sock->next) {
- sock->link= NULL;
+ for (node = ntree->nodes.first; node; node = node->next) {
+ for (sock = node->inputs.first; sock; sock = sock->next) {
+ sock->link = NULL;
sock->flag &= ~SOCK_IN_USE;
}
- for (sock= node->outputs.first; sock; sock= sock->next) {
+ for (sock = node->outputs.first; sock; sock = sock->next) {
sock->flag &= ~SOCK_IN_USE;
}
}
- for (sock= ntree->inputs.first; sock; sock= sock->next) {
+ for (sock = ntree->inputs.first; sock; sock = sock->next) {
sock->flag &= ~SOCK_IN_USE;
}
- for (sock= ntree->outputs.first; sock; sock= sock->next) {
- sock->link= NULL;
+ for (sock = ntree->outputs.first; sock; sock = sock->next) {
+ sock->link = NULL;
sock->flag &= ~SOCK_IN_USE;
}
- for (link= ntree->links.first; link; link= link->next) {
- link->tosock->link= link;
+ for (link = ntree->links.first; link; link = link->next) {
+ link->tosock->link = link;
link->fromsock->flag |= SOCK_IN_USE;
link->tosock->flag |= SOCK_IN_USE;
@@ -1500,10 +1772,10 @@ static void ntree_validate_links(bNodeTree *ntree)
static void ntree_verify_nodes_cb(void *calldata, struct ID *UNUSED(owner_id), struct bNodeTree *ntree)
{
- ID *id= (ID*)calldata;
+ ID *id = (ID *)calldata;
bNode *node;
- for (node=ntree->nodes.first; node; node=node->next)
+ for (node = ntree->nodes.first; node; node = node->next)
if (node->typeinfo->verifyfunc)
node->typeinfo->verifyfunc(ntree, node, id);
}
@@ -1514,21 +1786,21 @@ void ntreeVerifyNodes(struct Main *main, struct ID *id)
bNodeTree *ntree;
int n;
- for (n=0; n < NUM_NTREE_TYPES; ++n) {
- ntreetype= ntreeGetType(n);
+ for (n = 0; n < NUM_NTREE_TYPES; ++n) {
+ ntreetype = ntreeGetType(n);
if (ntreetype && ntreetype->foreach_nodetree)
ntreetype->foreach_nodetree(main, id, ntree_verify_nodes_cb);
}
- for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next)
+ for (ntree = main->nodetree.first; ntree; ntree = ntree->id.next)
ntree_verify_nodes_cb(id, NULL, ntree);
}
void ntreeUpdateTree(bNodeTree *ntree)
{
- bNodeTreeType *ntreetype= ntreeGetType(ntree->type);
+ bNodeTreeType *ntreetype = ntreeGetType(ntree->type);
bNode *node;
- if (ntree->update & (NTREE_UPDATE_LINKS|NTREE_UPDATE_NODES)) {
+ if (ntree->update & (NTREE_UPDATE_LINKS | NTREE_UPDATE_NODES)) {
/* set the bNodeSocket->link pointers */
ntree_update_link_pointers(ntree);
@@ -1537,7 +1809,7 @@ void ntreeUpdateTree(bNodeTree *ntree)
}
/* update individual nodes */
- for (node=ntree->nodes.first; node; node=node->next) {
+ for (node = ntree->nodes.first; node; node = node->next) {
/* node tree update tags override individual node update flags */
if ((node->update & NODE_UPDATE) || (ntree->update & NTREE_UPDATE)) {
if (ntreetype->update_node)
@@ -1545,12 +1817,10 @@ void ntreeUpdateTree(bNodeTree *ntree)
else if (node->typeinfo->updatefunc)
node->typeinfo->updatefunc(ntree, node);
}
- /* clear update flag */
- node->update = 0;
}
/* check link validity */
- if (ntree->update & (NTREE_UPDATE_LINKS|NTREE_UPDATE_NODES))
+ if (ntree->update & (NTREE_UPDATE_LINKS | NTREE_UPDATE_NODES))
ntree_validate_links(ntree);
/* generic tree update callback */
@@ -1560,7 +1830,7 @@ void ntreeUpdateTree(bNodeTree *ntree)
/* Trees can be associated with a specific node type (i.e. group nodes),
* in that case a tree update function may be defined by that node type.
*/
- bNodeType *ntype= node_get_type(ntree, ntree->nodetype);
+ bNodeType *ntype = node_get_type(ntree, ntree->nodetype);
if (ntype && ntype->updatetreefunc)
ntype->updatetreefunc(ntree);
}
@@ -1568,13 +1838,16 @@ void ntreeUpdateTree(bNodeTree *ntree)
/* XXX hack, should be done by depsgraph!! */
ntreeVerifyNodes(G.main, &ntree->id);
- /* clear the update flag */
+ /* clear update flags */
+ for (node = ntree->nodes.first; node; node = node->next) {
+ node->update = 0;
+ }
ntree->update = 0;
}
void nodeUpdate(bNodeTree *ntree, bNode *node)
{
- bNodeTreeType *ntreetype= ntreeGetType(ntree->type);
+ bNodeTreeType *ntreetype = ntreeGetType(ntree->type);
if (ntreetype->update_node)
ntreetype->update_node(ntree, node);
@@ -1596,8 +1869,8 @@ int nodeUpdateID(bNodeTree *ntree, ID *id)
ntreetype = ntreeGetType(ntree->type);
if (ntreetype->update_node) {
- for (node= ntree->nodes.first; node; node= node->next) {
- if (node->id==id) {
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->id == id) {
change = TRUE;
node->update |= NODE_UPDATE_ID;
ntreetype->update_node(ntree, node);
@@ -1607,8 +1880,8 @@ int nodeUpdateID(bNodeTree *ntree, ID *id)
}
}
else {
- for (node= ntree->nodes.first; node; node= node->next) {
- if (node->id==id) {
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->id == id) {
change = TRUE;
node->update |= NODE_UPDATE_ID;
if (node->typeinfo->updatefunc)
@@ -1627,7 +1900,7 @@ int nodeUpdateID(bNodeTree *ntree, ID *id)
int nodeValid(bNodeTree *ntree, bNodeTemplate *ntemp)
{
- bNodeType *ntype= node_get_type(ntree, ntemp->type);
+ bNodeType *ntype = node_get_type(ntree, ntemp->type);
if (ntype) {
if (ntype->validfunc)
return ntype->validfunc(ntree, ntemp);
@@ -1638,9 +1911,9 @@ int nodeValid(bNodeTree *ntree, bNodeTemplate *ntemp)
return 0;
}
-const char* nodeLabel(bNode *node)
+const char *nodeLabel(bNode *node)
{
- if (node->label[0]!='\0')
+ if (node->label[0] != '\0')
return node->label;
else if (node->typeinfo->labelfunc)
return node->typeinfo->labelfunc(node);
@@ -1752,8 +2025,8 @@ void node_type_template(struct bNodeType *ntype, struct bNodeTemplate (*template
}
void node_type_update(struct bNodeType *ntype,
- void (*updatefunc)(struct bNodeTree *ntree, struct bNode *node),
- void (*verifyfunc)(struct bNodeTree *ntree, struct bNode *node, struct ID *id))
+ void (*updatefunc)(struct bNodeTree *ntree, struct bNode *node),
+ void (*verifyfunc)(struct bNodeTree *ntree, struct bNode *node, struct ID *id))
{
ntype->updatefunc = updatefunc;
ntype->verifyfunc = verifyfunc;
@@ -1766,9 +2039,9 @@ void node_type_tree(struct bNodeType *ntype, void (*inittreefunc)(struct bNodeTr
}
void node_type_group_edit(struct bNodeType *ntype,
- struct bNodeTree *(*group_edit_get)(struct bNode *node),
- struct bNodeTree *(*group_edit_set)(struct bNode *node, int edit),
- void (*group_edit_clear)(struct bNode *node))
+ struct bNodeTree *(*group_edit_get)(struct bNode *node),
+ struct bNodeTree *(*group_edit_set)(struct bNode *node, int edit),
+ void (*group_edit_clear)(struct bNode *node))
{
ntype->group_edit_get = group_edit_get;
ntype->group_edit_set = group_edit_set;
@@ -1781,9 +2054,9 @@ void node_type_exec(struct bNodeType *ntype, void (*execfunc)(void *data, struct
}
void node_type_exec_new(struct bNodeType *ntype,
- void *(*initexecfunc)(struct bNode *node),
- void (*freeexecfunc)(struct bNode *node, void *nodedata),
- void (*newexecfunc)(void *data, int thread, struct bNode *, void *nodedata, struct bNodeStack **, struct bNodeStack **))
+ void *(*initexecfunc)(struct bNode *node),
+ void (*freeexecfunc)(struct bNode *node, void *nodedata),
+ void (*newexecfunc)(void *data, int thread, struct bNode *, void *nodedata, struct bNodeStack **, struct bNodeStack **))
{
ntype->initexecfunc = initexecfunc;
ntype->freeexecfunc = freeexecfunc;
@@ -1812,10 +2085,10 @@ void node_type_compatibility(struct bNodeType *ntype, short compatibility)
static bNodeType *is_nodetype_registered(ListBase *typelist, int type)
{
- bNodeType *ntype= typelist->first;
+ bNodeType *ntype = typelist->first;
- for (;ntype; ntype= ntype->next )
- if (ntype->type==type)
+ for (; ntype; ntype = ntype->next)
+ if (ntype->type == type)
return ntype;
return NULL;
@@ -1824,9 +2097,9 @@ static bNodeType *is_nodetype_registered(ListBase *typelist, int type)
void nodeRegisterType(bNodeTreeType *ttype, bNodeType *ntype)
{
ListBase *typelist = &(ttype->node_types);
- bNodeType *found= is_nodetype_registered(typelist, ntype->type);
+ bNodeType *found = is_nodetype_registered(typelist, ntype->type);
- if (found==NULL)
+ if (found == NULL)
BLI_addtail(typelist, ntype);
}
@@ -1875,6 +2148,8 @@ static void registerCompositNodes(bNodeTreeType *ttype)
register_node_type_cmp_bilateralblur(ttype);
register_node_type_cmp_vecblur(ttype);
register_node_type_cmp_dilateerode(ttype);
+ register_node_type_cmp_inpaint(ttype);
+ register_node_type_cmp_despeckle(ttype);
register_node_type_cmp_defocus(ttype);
register_node_type_cmp_valtorgb(ttype);
@@ -1925,6 +2200,7 @@ static void registerCompositNodes(bNodeTreeType *ttype)
register_node_type_cmp_switch(ttype);
register_node_type_cmp_mask(ttype);
+ register_node_type_cmp_trackpos(ttype);
}
static void registerShaderNodes(bNodeTreeType *ttype)
@@ -1999,6 +2275,7 @@ static void registerShaderNodes(bNodeTreeType *ttype)
register_node_type_sh_tex_gradient(ttype);
register_node_type_sh_tex_magic(ttype);
register_node_type_sh_tex_checker(ttype);
+ register_node_type_sh_tex_brick(ttype);
}
static void registerTextureNodes(bNodeTreeType *ttype)
@@ -2052,7 +2329,7 @@ static void registerTextureNodes(bNodeTreeType *ttype)
static void free_typeinfos(ListBase *list)
{
bNodeType *ntype, *next;
- for (ntype=list->first; ntype; ntype=next) {
+ for (ntype = list->first; ntype; ntype = next) {
next = ntype->next;
if (ntype->needs_free)
@@ -2062,6 +2339,10 @@ static void free_typeinfos(ListBase *list)
void init_nodesystem(void)
{
+ /* init clipboard */
+ node_clipboard.nodes.first = node_clipboard.nodes.last = NULL;
+ node_clipboard.links.first = node_clipboard.links.last = NULL;
+
registerCompositNodes(ntreeGetType(NTREE_COMPOSIT));
registerShaderNodes(ntreeGetType(NTREE_SHADER));
registerTextureNodes(ntreeGetType(NTREE_TEXTURE));
@@ -2084,14 +2365,14 @@ void clear_scene_in_nodes(Main *bmain, Scene *sce)
Scene *sce1;
bNode *node;
- for (sce1= bmain->scene.first; sce1; sce1=sce1->id.next) {
- if (sce1!=sce) {
+ for (sce1 = bmain->scene.first; sce1; sce1 = sce1->id.next) {
+ if (sce1 != sce) {
if (sce1->nodetree) {
- for (node= sce1->nodetree->nodes.first; node; node= node->next) {
- if (node->type==CMP_NODE_R_LAYERS) {
- Scene *nodesce= (Scene *)node->id;
+ for (node = sce1->nodetree->nodes.first; node; node = node->next) {
+ if (node->type == CMP_NODE_R_LAYERS) {
+ Scene *nodesce = (Scene *)node->id;
- if (nodesce==sce) node->id = NULL;
+ if (nodesce == sce) node->id = NULL;
}
}
}
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index f0d47791374..65ab97e0dad 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -210,7 +210,14 @@ void BKE_object_link_modifiers(struct Object *ob, struct Object *from)
for (md = from->modifiers.first; md; md = md->next) {
ModifierData *nmd = NULL;
- if (ELEM4(md->type, eModifierType_Hook, eModifierType_Softbody, eModifierType_ParticleInstance, eModifierType_Collision)) continue;
+ if (ELEM4(md->type,
+ eModifierType_Hook,
+ eModifierType_Softbody,
+ eModifierType_ParticleInstance,
+ eModifierType_Collision))
+ {
+ continue;
+ }
if (!BKE_object_support_modifier_type_check(ob, md->type))
continue;
@@ -223,7 +230,7 @@ void BKE_object_link_modifiers(struct Object *ob, struct Object *from)
BKE_object_copy_particlesystems(ob, from);
BKE_object_copy_softbody(ob, from);
- // TODO: smoke?, cloth?
+ /* TODO: smoke?, cloth? */
}
/* here we will collect all local displist stuff */
@@ -298,17 +305,27 @@ void BKE_object_free(Object *ob)
ID *id = ob->data;
id->us--;
if (id->us == 0) {
- if (ob->type == OB_MESH) BKE_mesh_unlink(ob->data);
- else if (ob->type == OB_CURVE) BKE_curve_unlink(ob->data);
- else if (ob->type == OB_MBALL) BKE_mball_unlink(ob->data);
+ switch (ob->type) {
+ case OB_MESH:
+ BKE_mesh_unlink((Mesh *)id);
+ break;
+ case OB_CURVE:
+ BKE_curve_unlink((Curve *)id);
+ break;
+ case OB_MBALL:
+ BKE_mball_unlink((MetaBall *)id);
+ break;
+ }
}
ob->data = NULL;
}
-
- for (a = 0; a < ob->totcol; a++) {
- if (ob->mat[a]) ob->mat[a]->id.us--;
+
+ if (ob->mat) {
+ for (a = 0; a < ob->totcol; a++) {
+ if (ob->mat[a]) ob->mat[a]->id.us--;
+ }
+ MEM_freeN(ob->mat);
}
- if (ob->mat) MEM_freeN(ob->mat);
if (ob->matbits) MEM_freeN(ob->matbits);
ob->mat = NULL;
ob->matbits = NULL;
@@ -323,7 +340,7 @@ void BKE_object_free(Object *ob)
BKE_pose_free(ob->pose);
if (ob->mpath)
animviz_free_motionpath(ob->mpath);
- free_properties(&ob->prop);
+ BKE_bproperty_free_list(&ob->prop);
BKE_object_free_modifiers(ob);
free_sensors(&ob->sensors);
@@ -376,7 +393,7 @@ void BKE_object_unlink(Object *ob)
unlink_actuators(&ob->actuators);
/* check all objects: parents en bevels and fields, also from libraries */
- // FIXME: need to check all animation blocks (drivers)
+ /* FIXME: need to check all animation blocks (drivers) */
obt = bmain->object.first;
while (obt) {
if (obt->proxy == ob)
@@ -872,23 +889,44 @@ Object *BKE_object_add(struct Scene *scene, int type)
return ob;
}
-SoftBody *copy_softbody(SoftBody *sb)
+SoftBody *copy_softbody(SoftBody *sb, int copy_caches)
{
SoftBody *sbn;
if (sb == NULL) return(NULL);
sbn = MEM_dupallocN(sb);
- sbn->totspring = sbn->totpoint = 0;
- sbn->bpoint = NULL;
- sbn->bspring = NULL;
+
+ if (copy_caches == FALSE) {
+ sbn->totspring = sbn->totpoint = 0;
+ sbn->bpoint = NULL;
+ sbn->bspring = NULL;
+ }
+ else {
+ sbn->totspring = sb->totspring;
+ sbn->totpoint = sb->totpoint;
+
+ if (sbn->bpoint) {
+ int i;
+
+ sbn->bpoint = MEM_dupallocN(sbn->bpoint);
+
+ for (i = 0; i < sbn->totpoint; i++) {
+ if (sbn->bpoint[i].springs)
+ sbn->bpoint[i].springs = MEM_dupallocN(sbn->bpoint[i].springs);
+ }
+ }
+
+ if (sb->bspring)
+ sbn->bspring = MEM_dupallocN(sb->bspring);
+ }
sbn->keys = NULL;
sbn->totkey = sbn->totpointkey = 0;
sbn->scratch = NULL;
- sbn->pointcache = BKE_ptcache_copy_list(&sbn->ptcaches, &sb->ptcaches);
+ sbn->pointcache = BKE_ptcache_copy_list(&sbn->ptcaches, &sb->ptcaches, copy_caches);
if (sb->effector_weights)
sbn->effector_weights = MEM_dupallocN(sb->effector_weights);
@@ -961,7 +999,7 @@ static ParticleSystem *copy_particlesystem(ParticleSystem *psys)
psysn->childcachebufs.first = psysn->childcachebufs.last = NULL;
psysn->renderdata = NULL;
- psysn->pointcache = BKE_ptcache_copy_list(&psysn->ptcaches, &psys->ptcaches);
+ psysn->pointcache = BKE_ptcache_copy_list(&psysn->ptcaches, &psys->ptcaches, FALSE);
/* XXX - from reading existing code this seems correct but intended usage of
* pointcache should /w cloth should be added in 'ParticleSystem' - campbell */
@@ -1022,7 +1060,7 @@ void BKE_object_copy_particlesystems(Object *obn, Object *ob)
void BKE_object_copy_softbody(Object *obn, Object *ob)
{
if (ob->soft)
- obn->soft = copy_softbody(ob->soft);
+ obn->soft = copy_softbody(ob->soft, FALSE);
}
static void copy_object_pose(Object *obn, Object *ob)
@@ -1062,12 +1100,12 @@ static void copy_object_pose(Object *obn, Object *ob)
}
}
-static int object_pose_context(Object *ob)
+int BKE_object_pose_context_check(Object *ob)
{
- if ( (ob) &&
- (ob->type == OB_ARMATURE) &&
- (ob->pose) &&
- (ob->mode & OB_MODE_POSE))
+ if ((ob) &&
+ (ob->type == OB_ARMATURE) &&
+ (ob->pose) &&
+ (ob->mode & OB_MODE_POSE))
{
return 1;
}
@@ -1081,12 +1119,12 @@ Object *BKE_object_pose_armature_get(Object *ob)
if (ob == NULL)
return NULL;
- if (object_pose_context(ob))
+ if (BKE_object_pose_context_check(ob))
return ob;
ob = modifiers_isDeformedByArmature(ob);
- if (object_pose_context(ob))
+ if (BKE_object_pose_context_check(ob))
return ob;
return NULL;
@@ -1103,7 +1141,7 @@ void BKE_object_transform_copy(Object *ob_tar, const Object *ob_src)
copy_v3_v3(ob_tar->size, ob_src->size);
}
-Object *BKE_object_copy(Object *ob)
+static Object *object_copy_do(Object *ob, int copy_caches)
{
Object *obn;
ModifierData *md;
@@ -1130,7 +1168,7 @@ Object *BKE_object_copy(Object *ob)
}
obn->prop.first = obn->prop.last = NULL;
- copy_properties(&obn->prop, &ob->prop);
+ BKE_bproperty_copy_list(&obn->prop, &ob->prop);
copy_sensors(&obn->sensors, &ob->sensors);
copy_controllers(&obn->controllers, &ob->controllers);
@@ -1164,7 +1202,7 @@ Object *BKE_object_copy(Object *ob)
if (obn->pd->rng)
obn->pd->rng = MEM_dupallocN(ob->pd->rng);
}
- obn->soft = copy_softbody(ob->soft);
+ obn->soft = copy_softbody(ob->soft, copy_caches);
obn->bsoft = copy_bulletsoftbody(ob->bsoft);
BKE_object_copy_particlesystems(obn, ob);
@@ -1180,6 +1218,18 @@ Object *BKE_object_copy(Object *ob)
return obn;
}
+/* copy objects, will re-initialize cached simulation data */
+Object *BKE_object_copy(Object *ob)
+{
+ return object_copy_do(ob, FALSE);
+}
+
+/* copy objects, will duplicate cached simulation data */
+Object *BKE_object_copy_with_caches(Object *ob)
+{
+ return object_copy_do(ob, TRUE);
+}
+
static void extern_local_object(Object *ob)
{
ParticleSystem *psys;
@@ -1318,7 +1368,8 @@ void BKE_object_copy_proxy_drivers(Object *ob, Object *target)
if ((Object *)dtar->id == target)
dtar->id = (ID *)ob;
else {
- /* only on local objects because this causes indirect links a -> b -> c, blend to point directly to a.blend
+ /* only on local objects because this causes indirect links
+ * 'a -> b -> c', blend to point directly to a.blend
* when a.blend has a proxy thats linked into c.blend */
if (ob->id.lib == NULL)
id_lib_extern((ID *)dtar->id);
@@ -1376,7 +1427,7 @@ void BKE_object_make_proxy(Object *ob, Object *target, Object *gob)
BKE_object_copy_proxy_drivers(ob, target);
/* skip constraints? */
- // FIXME: this is considered by many as a bug
+ /* FIXME: this is considered by many as a bug */
/* set object type and link to data */
ob->type = target->type;
@@ -1506,7 +1557,7 @@ void BKE_object_mat3_to_rot(Object *ob, float mat[][3], short use_compat)
/* end drot correction */
if (use_compat) mat3_to_compatible_eulO(ob->rot, ob->rot, ob->rotmode, tmat);
- else mat3_to_eulO(ob->rot, ob->rotmode, tmat);
+ else mat3_to_eulO(ob->rot, ob->rotmode, tmat);
}
}
}
@@ -1688,16 +1739,16 @@ static void ob_parcurve(Scene *scene, Object *ob, Object *par, float mat[][4])
if (cu->flag & CU_FOLLOW) {
#if 0
- float x1, q[4];
+ float si, q[4];
vec_to_quat(quat, dir, ob->trackflag, ob->upflag);
/* the tilt */
normalize_v3(dir);
q[0] = (float)cos(0.5 * vec[3]);
- x1 = (float)sin(0.5 * vec[3]);
- q[1] = -x1 * dir[0];
- q[2] = -x1 * dir[1];
- q[3] = -x1 * dir[2];
+ si = (float)sin(0.5 * vec[3]);
+ q[1] = -si * dir[0];
+ q[2] = -si * dir[1];
+ q[3] = -si * dir[2];
mul_qt_qtqt(quat, q, quat);
#else
quat_apply_track(quat, ob->trackflag, ob->upflag);
@@ -1748,9 +1799,8 @@ static void ob_parbone(Object *ob, Object *par, float mat[][4])
static void give_parvert(Object *par, int nr, float vec[3])
{
BMEditMesh *em;
- int a, count;
-
- vec[0] = vec[1] = vec[2] = 0.0f;
+
+ zero_v3(vec);
if (par->type == OB_MESH) {
Mesh *me = par->data;
@@ -1777,18 +1827,28 @@ static void give_parvert(Object *par, int nr, float vec[3])
dm = (em) ? em->derivedFinal : par->derivedFinal;
if (dm) {
- MVert *mvert = dm->getVertArray(dm);
- int *index = (int *)dm->getVertDataArray(dm, CD_ORIGINDEX);
- int i, vindex, numVerts = dm->getNumVerts(dm);
-
- /* get the average of all verts with (original index == nr) */
- count = 0;
- for (i = 0; i < numVerts; i++) {
- vindex = (index) ? index[i] : i;
-
- if (vindex == nr) {
- add_v3_v3(vec, mvert[i].co);
- count++;
+ int count = 0;
+ int numVerts = dm->getNumVerts(dm);
+
+ if (nr < numVerts) {
+ MVert *mvert = dm->getVertArray(dm);
+ int *index = (int *)dm->getVertDataArray(dm, CD_ORIGINDEX);
+ int i;
+
+ /* get the average of all verts with (original index == nr) */
+ if (index) {
+ for (i = 0; i < numVerts; i++) {
+ if (index[i] == nr) {
+ add_v3_v3(vec, mvert[i].co);
+ count++;
+ }
+ }
+ }
+ else {
+ if (nr < numVerts) {
+ add_v3_v3(vec, mvert[nr].co);
+ count++;
+ }
}
}
@@ -1803,74 +1863,38 @@ static void give_parvert(Object *par, int nr, float vec[3])
dm->getVertCo(dm, 0, vec);
}
}
- else fprintf(stderr, "%s: DerivedMesh is needed to solve parenting, object position can be wrong now\n", __func__);
+ else {
+ fprintf(stderr,
+ "%s: DerivedMesh is needed to solve parenting, "
+ "object position can be wrong now\n", __func__);
+ }
}
else if (ELEM(par->type, OB_CURVE, OB_SURF)) {
- Nurb *nu;
- Curve *cu;
- BPoint *bp;
- BezTriple *bezt;
- int found = 0;
- ListBase *nurbs;
-
- cu = par->data;
- nurbs = BKE_curve_nurbs_get(cu);
- nu = nurbs->first;
-
- count = 0;
- while (nu && !found) {
- if (nu->type == CU_BEZIER) {
- bezt = nu->bezt;
- a = nu->pntsu;
- while (a--) {
- if (count == nr) {
- found = 1;
- copy_v3_v3(vec, bezt->vec[1]);
- break;
- }
- count++;
- bezt++;
- }
- }
- else {
- bp = nu->bp;
- a = nu->pntsu * nu->pntsv;
- while (a--) {
- if (count == nr) {
- found = 1;
- memcpy(vec, bp->vec, sizeof(float) * 3);
- break;
- }
- count++;
- bp++;
- }
- }
- nu = nu->next;
- }
+ Curve *cu = par->data;
+ ListBase *nurb = BKE_curve_nurbs_get(cu);;
+ BKE_nurbList_index_get_co(nurb, nr, vec);
}
else if (par->type == OB_LATTICE) {
- Lattice *latt = par->data;
- BPoint *bp;
- DispList *dl = BKE_displist_find(&par->disp, DL_VERTS);
- float *co = dl ? dl->verts : NULL;
-
+ Lattice *latt = par->data;
+ DispList *dl = BKE_displist_find(&par->disp, DL_VERTS);
+ float (*co)[3] = dl ? (float (*)[3])dl->verts : NULL;
+ int tot;
+
if (latt->editlatt) latt = latt->editlatt->latt;
-
- a = latt->pntsu * latt->pntsv * latt->pntsw;
- count = 0;
- bp = latt->def;
- while (a--) {
- if (count == nr) {
- if (co)
- memcpy(vec, co, 3 * sizeof(float));
- else
- memcpy(vec, bp->vec, 3 * sizeof(float));
- break;
+
+ tot = latt->pntsu * latt->pntsv * latt->pntsw;
+
+ /* ensure dl is correct size */
+ BLI_assert(dl == NULL || dl->nr == tot);
+
+ if (nr < tot) {
+ if (co) {
+ copy_v3_v3(vec, co[nr]);
+ }
+ else {
+ copy_v3_v3(vec, latt->def[nr].vec);
}
- count++;
- if (co) co += 3;
- else bp++;
}
}
}
@@ -1958,8 +1982,8 @@ static void solve_parenting(Scene *scene, Object *ob, Object *par, float obmat[]
break;
}
- // total
- mul_serie_m4(tmat, totmat, ob->parentinv,
+ /* total */
+ mul_serie_m4(tmat, totmat, ob->parentinv,
NULL, NULL, NULL, NULL, NULL, NULL);
mul_serie_m4(obmat, tmat, locmat,
NULL, NULL, NULL, NULL, NULL, NULL);
@@ -1968,10 +1992,10 @@ static void solve_parenting(Scene *scene, Object *ob, Object *par, float obmat[]
}
else {
- // external usable originmat
+ /* external usable originmat */
copy_m3_m4(originmat, tmat);
- // origin, voor help line
+ /* origin, for help line */
if ((ob->partype & PARTYPE) == PARSKEL) {
copy_v3_v3(ob->orig, par->obmat[3]);
}
@@ -1987,7 +2011,7 @@ static int where_is_object_parslow(Object *ob, float obmat[4][4], float slowmat[
float fac1, fac2;
int a;
- // include framerate
+ /* include framerate */
fac1 = (1.0f / (1.0f + fabsf(ob->sf)) );
if (fac1 >= 1.0f) return 0;
fac2 = 1.0f - fac1;
@@ -2222,7 +2246,7 @@ void BKE_object_dimensions_set(Object *ob, const float *value)
}
}
-void BKE_object_minmax(Object *ob, float min_r[3], float max_r[3])
+void BKE_object_minmax(Object *ob, float min_r[3], float max_r[3], const short use_hidden)
{
BoundBox bb;
float vec[3];
@@ -2237,7 +2261,7 @@ void BKE_object_minmax(Object *ob, float min_r[3], float max_r[3])
Curve *cu = ob->data;
/* Use the object bounding box so that modifier output
- gets taken into account */
+ * gets taken into account */
if (ob->bb)
bb = *(ob->bb);
else {
@@ -2272,14 +2296,23 @@ void BKE_object_minmax(Object *ob, float min_r[3], float max_r[3])
break;
case OB_ARMATURE:
if (ob->pose) {
+ bArmature *arm = ob->data;
bPoseChannel *pchan;
+
for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) {
- mul_v3_m4v3(vec, ob->obmat, pchan->pose_head);
- minmax_v3v3_v3(min_r, max_r, vec);
- mul_v3_m4v3(vec, ob->obmat, pchan->pose_tail);
- minmax_v3v3_v3(min_r, max_r, vec);
+
+ if ((use_hidden == FALSE) && (PBONE_VISIBLE(arm, pchan->bone) == FALSE)) {
+ /* pass */
+ }
+ else {
+ mul_v3_m4v3(vec, ob->obmat, pchan->pose_head);
+ minmax_v3v3_v3(min_r, max_r, vec);
+ mul_v3_m4v3(vec, ob->obmat, pchan->pose_tail);
+ minmax_v3v3_v3(min_r, max_r, vec);
+
+ change = TRUE;
+ }
}
- change = TRUE;
}
break;
case OB_MESH:
@@ -2300,21 +2333,28 @@ void BKE_object_minmax(Object *ob, float min_r[3], float max_r[3])
}
if (change == FALSE) {
+ float size[3];
+
+ copy_v3_v3(size, ob->size);
+ if (ob->type == OB_EMPTY) {
+ mul_v3_fl(size, ob->empty_drawsize);
+ }
+
minmax_v3v3_v3(min_r, max_r, ob->obmat[3]);
copy_v3_v3(vec, ob->obmat[3]);
- add_v3_v3(vec, ob->size);
+ add_v3_v3(vec, size);
minmax_v3v3_v3(min_r, max_r, vec);
copy_v3_v3(vec, ob->obmat[3]);
- sub_v3_v3(vec, ob->size);
+ sub_v3_v3(vec, size);
minmax_v3v3_v3(min_r, max_r, vec);
}
}
-int BKE_object_minmax_dupli(Scene *scene, Object *ob, float r_min[3], float r_max[3])
+int BKE_object_minmax_dupli(Scene *scene, Object *ob, float r_min[3], float r_max[3], const short use_hidden)
{
- int ok = 0;
+ int ok = FALSE;
if ((ob->transflag & OB_DUPLI) == 0) {
return ok;
}
@@ -2322,9 +2362,12 @@ int BKE_object_minmax_dupli(Scene *scene, Object *ob, float r_min[3], float r_ma
ListBase *lb;
DupliObject *dob;
- lb = object_duplilist(scene, ob);
+ lb = object_duplilist(scene, ob, FALSE);
for (dob = lb->first; dob; dob = dob->next) {
- if (dob->no_draw == 0) {
+ if ((use_hidden == FALSE) && (dob->no_draw != 0)) {
+ /* pass */
+ }
+ else {
BoundBox *bb = BKE_object_boundbox_get(dob->ob);
if (bb) {
@@ -2335,7 +2378,7 @@ int BKE_object_minmax_dupli(Scene *scene, Object *ob, float r_min[3], float r_ma
minmax_v3v3_v3(r_min, r_max, vec);
}
- ok = 1;
+ ok = TRUE;
}
}
}
@@ -2396,7 +2439,7 @@ void BKE_scene_foreach_display_point(
ListBase *lb;
DupliObject *dob;
- lb = object_duplilist(scene, ob);
+ lb = object_duplilist(scene, ob, FALSE);
for (dob = lb->first; dob; dob = dob->next) {
if (dob->no_draw == 0) {
BKE_object_foreach_display_point(dob->ob, dob->mat, func_cb, user_data);
@@ -2503,7 +2546,7 @@ void BKE_object_handle_update(Scene *scene, Object *ob)
/* XXX new animsys warning: depsgraph tag OB_RECALC_DATA should not skip drivers,
* which is only in BKE_object_where_is_calc now */
- // XXX: should this case be OB_RECALC_OB instead?
+ /* XXX: should this case be OB_RECALC_OB instead? */
if (ob->recalc & OB_RECALC_ALL) {
if (G.debug & G_DEBUG)
@@ -2539,7 +2582,7 @@ void BKE_object_handle_update(Scene *scene, Object *ob)
if (adt) {
/* evaluate drivers - datalevel */
- // XXX: for mesh types, should we push this to derivedmesh instead?
+ /* XXX: for mesh types, should we push this to derivedmesh instead? */
BKE_animsys_evaluate_animdata(scene, data_id, adt, ctime, ADT_RECALC_DRIVERS);
}
@@ -2624,7 +2667,7 @@ void BKE_object_handle_update(Scene *scene, Object *ob)
while (psys) {
if (psys_check_enabled(ob, psys)) {
/* check use of dupli objects here */
- if (psys->part && (psys->part->draw_as == PART_DRAW_REND || G.rendering) &&
+ if (psys->part && (psys->part->draw_as == PART_DRAW_REND || G.is_rendering) &&
((psys->part->ren_as == PART_DRAW_OB && psys->part->dup_ob) ||
(psys->part->ren_as == PART_DRAW_GR && psys->part->dup_group)))
{
@@ -2644,7 +2687,7 @@ void BKE_object_handle_update(Scene *scene, Object *ob)
psys = psys->next;
}
- if (G.rendering && ob->transflag & OB_DUPLIPARTS) {
+ if (G.is_rendering && ob->transflag & OB_DUPLIPARTS) {
/* this is to make sure we get render level duplis in groups:
* the derivedmesh must be created before init_render_mesh,
* since object_duplilist does dupliparticles before that */
@@ -2669,7 +2712,7 @@ void BKE_object_handle_update(Scene *scene, Object *ob)
if (pid->cache->flag & PTCACHE_OUTDATED || (pid->cache->flag & PTCACHE_SIMULATION_VALID) == 0) {
scene->physics_settings.quick_cache_step =
scene->physics_settings.quick_cache_step ?
- MIN2(scene->physics_settings.quick_cache_step, pid->cache->step) :
+ mini(scene->physics_settings.quick_cache_step, pid->cache->step) :
pid->cache->step;
}
}
@@ -2858,22 +2901,22 @@ static KeyBlock *insert_meshkey(Scene *scene, Object *ob, const char *name, int
int newkey = 0;
if (key == NULL) {
- key = me->key = add_key((ID *)me);
+ key = me->key = BKE_key_add((ID *)me);
key->type = KEY_RELATIVE;
newkey = 1;
}
if (newkey || from_mix == FALSE) {
/* create from mesh */
- kb = add_keyblock_ctime(key, name, FALSE);
- mesh_to_key(me, kb);
+ kb = BKE_keyblock_add_ctime(key, name, FALSE);
+ BKE_key_convert_from_mesh(me, kb);
}
else {
/* copy from current values */
float *data = do_ob_key(scene, ob);
/* create new block with prepared data */
- kb = add_keyblock_ctime(key, name, FALSE);
+ kb = BKE_keyblock_add_ctime(key, name, FALSE);
kb->data = data;
kb->totelem = me->totvert;
}
@@ -2889,20 +2932,20 @@ static KeyBlock *insert_lattkey(Scene *scene, Object *ob, const char *name, int
int newkey = 0;
if (key == NULL) {
- key = lt->key = add_key((ID *)lt);
+ key = lt->key = BKE_key_add((ID *)lt);
key->type = KEY_RELATIVE;
newkey = 1;
}
if (newkey || from_mix == FALSE) {
- kb = add_keyblock_ctime(key, name, FALSE);
+ kb = BKE_keyblock_add_ctime(key, name, FALSE);
if (!newkey) {
KeyBlock *basekb = (KeyBlock *)key->block.first;
kb->data = MEM_dupallocN(basekb->data);
kb->totelem = basekb->totelem;
}
else {
- latt_to_key(lt, kb);
+ BKE_key_convert_from_lattice(lt, kb);
}
}
else {
@@ -2910,7 +2953,7 @@ static KeyBlock *insert_lattkey(Scene *scene, Object *ob, const char *name, int
float *data = do_ob_key(scene, ob);
/* create new block with prepared data */
- kb = add_keyblock_ctime(key, name, FALSE);
+ kb = BKE_keyblock_add_ctime(key, name, FALSE);
kb->totelem = lt->pntsu * lt->pntsv * lt->pntsw;
kb->data = data;
}
@@ -2927,21 +2970,21 @@ static KeyBlock *insert_curvekey(Scene *scene, Object *ob, const char *name, int
int newkey = 0;
if (key == NULL) {
- key = cu->key = add_key((ID *)cu);
+ key = cu->key = BKE_key_add((ID *)cu);
key->type = KEY_RELATIVE;
newkey = 1;
}
if (newkey || from_mix == FALSE) {
/* create from curve */
- kb = add_keyblock_ctime(key, name, FALSE);
+ kb = BKE_keyblock_add_ctime(key, name, FALSE);
if (!newkey) {
KeyBlock *basekb = (KeyBlock *)key->block.first;
kb->data = MEM_dupallocN(basekb->data);
kb->totelem = basekb->totelem;
}
else {
- curve_to_key(cu, kb, lb);
+ BKE_key_convert_from_curve(cu, kb, lb);
}
}
else {
@@ -2949,7 +2992,7 @@ static KeyBlock *insert_curvekey(Scene *scene, Object *ob, const char *name, int
float *data = do_ob_key(scene, ob);
/* create new block with prepared data */
- kb = add_keyblock_ctime(key, name, FALSE);
+ kb = BKE_keyblock_add_ctime(key, name, FALSE);
kb->totelem = BKE_nurbList_verts_count(lb);
kb->data = data;
}
@@ -2979,7 +3022,7 @@ int BKE_object_is_modified(Scene *scene, Object *ob)
{
int flag = 0;
- if (ob_get_key(ob)) {
+ if (BKE_key_from_object(ob)) {
flag |= eModifierMode_Render;
}
else {
@@ -3149,7 +3192,7 @@ static void obrel_list_add(LinkNode **links, Object *ob)
* If OB_SET_VISIBLE or OB_SET_SELECTED are collected,
* then also add related objects according to the given includeFilters.
*/
-struct LinkNode *BKE_object_relational_superset(struct Scene *scene, eObjectSet objectSet, eObRelationTypes includeFilter)
+LinkNode *BKE_object_relational_superset(struct Scene *scene, eObjectSet objectSet, eObRelationTypes includeFilter)
{
LinkNode *links = NULL;
@@ -3163,7 +3206,7 @@ struct LinkNode *BKE_object_relational_superset(struct Scene *scene, eObjectSet
/* iterate over all selected and visible objects */
for (base = scene->base.first; base; base = base->next) {
if (objectSet == OB_SET_ALL) {
- // as we get all anyways just add it
+ /* as we get all anyways just add it */
Object *ob = base->object;
obrel_list_add(&links, ob);
}
@@ -3228,3 +3271,32 @@ struct LinkNode *BKE_object_relational_superset(struct Scene *scene, eObjectSet
return links;
}
+
+/**
+ * return all groups this object is apart of, caller must free.
+ */
+struct LinkNode *BKE_object_groups(Object *ob)
+{
+ LinkNode *group_linknode = NULL;
+ Group *group = NULL;
+ while ((group = find_group(ob, group))) {
+ BLI_linklist_prepend(&group_linknode, group);
+ }
+
+ return group_linknode;
+}
+
+void BKE_object_groups_clear(Scene *scene, Base *base, Object *object)
+{
+ Group *group = NULL;
+
+ BLI_assert((base == NULL) || (base->object == object));
+
+ if (scene && base == NULL) {
+ base = BKE_scene_base_find(scene, object);
+ }
+
+ while ((group = find_group(base->object, group))) {
+ rem_from_group(group, object, scene, base);
+ }
+}
diff --git a/source/blender/blenkernel/intern/object_deform.c b/source/blender/blenkernel/intern/object_deform.c
new file mode 100644
index 00000000000..7f9578250f2
--- /dev/null
+++ b/source/blender/blenkernel/intern/object_deform.c
@@ -0,0 +1,156 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/blenkernel/intern/object_deform.c
+ * \ingroup bke
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "MEM_guardedalloc.h"
+
+#include "BLI_utildefines.h"
+#include "BLI_ghash.h"
+
+#include "BKE_action.h"
+#include "BKE_object_deform.h" /* own include */
+#include "BKE_object.h"
+#include "BKE_modifier.h"
+
+#include "DNA_armature_types.h"
+#include "DNA_modifier_types.h"
+#include "DNA_object_types.h"
+
+/* --- functions for getting vgroup aligned maps --- */
+
+/**
+ * gets the status of "flag" for each bDeformGroup
+ * in ob->defbase and returns an array containing them
+ */
+char *BKE_objdef_lock_flags_get(Object *ob, const int defbase_tot)
+{
+ char is_locked = FALSE;
+ int i;
+ //int defbase_tot = BLI_countlist(&ob->defbase);
+ char *lock_flags = MEM_mallocN(defbase_tot * sizeof(char), "defflags");
+ bDeformGroup *defgroup;
+
+ for (i = 0, defgroup = ob->defbase.first; i < defbase_tot && defgroup; defgroup = defgroup->next, i++) {
+ lock_flags[i] = ((defgroup->flag & DG_LOCK_WEIGHT) != 0);
+ is_locked |= lock_flags[i];
+ }
+ if (is_locked) {
+ return lock_flags;
+ }
+
+ MEM_freeN(lock_flags);
+ return NULL;
+}
+
+char *BKE_objdef_validmap_get(Object *ob, const int defbase_tot)
+{
+ bDeformGroup *dg;
+ ModifierData *md;
+ char *vgroup_validmap;
+ GHash *gh;
+ int i, step1 = 1;
+ //int defbase_tot = BLI_countlist(&ob->defbase);
+
+ if (ob->defbase.first == NULL) {
+ return NULL;
+ }
+
+ gh = BLI_ghash_str_new("BKE_objdef_validmap_get gh");
+
+ /* add all names to a hash table */
+ for (dg = ob->defbase.first; dg; dg = dg->next) {
+ BLI_ghash_insert(gh, dg->name, NULL);
+ }
+
+ BLI_assert(BLI_ghash_size(gh) == defbase_tot);
+
+ /* now loop through the armature modifiers and identify deform bones */
+ for (md = ob->modifiers.first; md; md = !md->next && step1 ? (step1 = 0), modifiers_getVirtualModifierList(ob) : md->next) {
+ if (!(md->mode & (eModifierMode_Realtime | eModifierMode_Virtual)))
+ continue;
+
+ if (md->type == eModifierType_Armature) {
+ ArmatureModifierData *amd = (ArmatureModifierData *) md;
+
+ if (amd->object && amd->object->pose) {
+ bPose *pose = amd->object->pose;
+ bPoseChannel *chan;
+
+ for (chan = pose->chanbase.first; chan; chan = chan->next) {
+ if (chan->bone->flag & BONE_NO_DEFORM)
+ continue;
+
+ if (BLI_ghash_remove(gh, chan->name, NULL, NULL)) {
+ BLI_ghash_insert(gh, chan->name, SET_INT_IN_POINTER(1));
+ }
+ }
+ }
+ }
+ }
+
+ vgroup_validmap = MEM_mallocN(defbase_tot, "wpaint valid map");
+
+ /* add all names to a hash table */
+ for (dg = ob->defbase.first, i = 0; dg; dg = dg->next, i++) {
+ vgroup_validmap[i] = (BLI_ghash_lookup(gh, dg->name) != NULL);
+ }
+
+ BLI_assert(i == BLI_ghash_size(gh));
+
+ BLI_ghash_free(gh, NULL, NULL);
+
+ return vgroup_validmap;
+}
+
+/* Returns total selected vgroups,
+ * wpi.defbase_sel is assumed malloc'd, all values are set */
+char *BKE_objdef_selected_get(Object *ob, int defbase_tot, int *r_dg_flags_sel_tot)
+{
+ char *dg_selection = MEM_mallocN(defbase_tot * sizeof(char), __func__);
+ bDeformGroup *defgroup;
+ unsigned int i;
+ Object *armob = BKE_object_pose_armature_get(ob);
+ (*r_dg_flags_sel_tot) = 0;
+
+ if (armob) {
+ bPose *pose = armob->pose;
+ for (i = 0, defgroup = ob->defbase.first; i < defbase_tot && defgroup; defgroup = defgroup->next, i++) {
+ bPoseChannel *pchan = BKE_pose_channel_find_name(pose, defgroup->name);
+ if (pchan && (pchan->bone->flag & BONE_SELECTED)) {
+ dg_selection[i] = TRUE;
+ (*r_dg_flags_sel_tot) += 1;
+ }
+ else {
+ dg_selection[i] = FALSE;
+ }
+ }
+ }
+ else {
+ memset(dg_selection, FALSE, sizeof(char) * defbase_tot);
+ }
+
+ return dg_selection;
+}
diff --git a/source/blender/blenkernel/intern/ocean.c b/source/blender/blenkernel/intern/ocean.c
index 13ea70d652d..4f3921936e8 100644
--- a/source/blender/blenkernel/intern/ocean.c
+++ b/source/blender/blenkernel/intern/ocean.c
@@ -37,8 +37,6 @@
#include "BKE_image.h"
#include "BKE_ocean.h"
-#include "BKE_utildefines.h"
-
#include "BKE_global.h" // XXX TESTING
#include "BLI_math_base.h"
@@ -834,7 +832,7 @@ void BKE_init_ocean(struct Ocean *o, int M, int N, float Lx, float Lz, float V,
o->_fft_in_nz = (fftw_complex *) MEM_mallocN(o->_M * (1 + o->_N / 2) * sizeof(fftw_complex), "ocean_fft_in_nz");
o->_N_x = (double *) MEM_mallocN(o->_M * o->_N * sizeof(double), "ocean_N_x");
- /*o->_N_y = (float*) fftwf_malloc(o->_M * o->_N * sizeof(float)); (MEM01)*/
+ /* o->_N_y = (float *) fftwf_malloc(o->_M * o->_N * sizeof(float)); (MEM01) */
o->_N_z = (double *) MEM_mallocN(o->_M * o->_N * sizeof(double), "ocean_N_z");
o->_N_x_plan = fftw_plan_dft_c2r_2d(o->_M, o->_N, o->_fft_in_nx, o->_N_x, FFTW_ESTIMATE);
@@ -1119,19 +1117,20 @@ void BKE_simulate_ocean_cache(struct OceanCache *och, int frame)
/* if image is already loaded in mem, return */
if (och->ibufs_disp[f] != NULL) return;
+ /* use default color spaces since we know for sure cache files were saved with default settings too */
cache_filename(string, och->bakepath, och->relbase, frame, CACHE_TYPE_DISPLACE);
- och->ibufs_disp[f] = IMB_loadiffname(string, 0);
+ och->ibufs_disp[f] = IMB_loadiffname(string, 0, NULL);
//if (och->ibufs_disp[f] == NULL) printf("error loading %s\n", string);
//else printf("loaded cache %s\n", string);
cache_filename(string, och->bakepath, och->relbase, frame, CACHE_TYPE_FOAM);
- och->ibufs_foam[f] = IMB_loadiffname(string, 0);
+ och->ibufs_foam[f] = IMB_loadiffname(string, 0, NULL);
//if (och->ibufs_foam[f] == NULL) printf("error loading %s\n", string);
//else printf("loaded cache %s\n", string);
cache_filename(string, och->bakepath, och->relbase, frame, CACHE_TYPE_NORMAL);
- och->ibufs_norm[f] = IMB_loadiffname(string, 0);
+ och->ibufs_norm[f] = IMB_loadiffname(string, 0, NULL);
//if (och->ibufs_norm[f] == NULL) printf("error loading %s\n", string);
//else printf("loaded cache %s\n", string);
}
@@ -1174,8 +1173,6 @@ void BKE_bake_ocean(struct Ocean *o, struct OceanCache *och, void (*update_cb)(v
ibuf_disp = IMB_allocImBuf(res_x, res_y, 32, IB_rectfloat);
ibuf_normal = IMB_allocImBuf(res_x, res_y, 32, IB_rectfloat);
- ibuf_disp->profile = ibuf_foam->profile = ibuf_normal->profile = IB_PROFILE_LINEAR_RGB;
-
BKE_simulate_ocean(o, och->time[i], och->wave_scale, och->chop_amount);
/* add new foam */
diff --git a/source/blender/blenkernel/intern/packedFile.c b/source/blender/blenkernel/intern/packedFile.c
index a2c89967f44..03342d0f6d1 100644
--- a/source/blender/blenkernel/intern/packedFile.c
+++ b/source/blender/blenkernel/intern/packedFile.c
@@ -50,13 +50,13 @@
#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
-#include "BKE_utildefines.h"
+#include "BKE_font.h"
#include "BKE_global.h"
-#include "BKE_main.h"
-#include "BKE_sound.h"
#include "BKE_image.h"
+#include "BKE_main.h"
#include "BKE_packedFile.h"
#include "BKE_report.h"
+#include "BKE_sound.h"
#ifdef _WIN32
#define open _open
@@ -132,7 +132,7 @@ int countPackedFiles(Main *bmain)
bSound *sound;
int count = 0;
- // let's check if there are packed files...
+ /* let's check if there are packed files... */
for (ima = bmain->image.first; ima; ima = ima->id.next)
if (ima->packedfile)
count++;
@@ -157,7 +157,17 @@ void freePackedFile(PackedFile *pf)
else
printf("freePackedFile: Trying to free a NULL pointer\n");
}
-
+
+PackedFile *dupPackedFile(const PackedFile *pf_src)
+{
+ PackedFile *pf_dst;
+
+ pf_dst = MEM_dupallocN(pf_src);
+ pf_dst->data = MEM_dupallocN(pf_src->data);
+
+ return pf_dst;
+}
+
PackedFile *newPackedFileMemory(void *mem, int memlen)
{
PackedFile *pf = MEM_callocN(sizeof(*pf), "PackedFile");
@@ -181,13 +191,13 @@ PackedFile *newPackedFile(ReportList *reports, const char *filename, const char
//XXX waitcursor(1);
- // convert relative filenames to absolute filenames
-
+ /* convert relative filenames to absolute filenames */
+
BLI_strncpy(name, filename, sizeof(name));
BLI_path_abs(name, basepath);
-
- // open the file
- // and create a PackedFile structure
+
+ /* open the file
+ * and create a PackedFile structure */
file = BLI_open(name, O_BINARY | O_RDONLY, 0);
if (file <= 0) {
@@ -197,8 +207,8 @@ PackedFile *newPackedFile(ReportList *reports, const char *filename, const char
filelen = BLI_file_descriptor_size(file);
if (filelen == 0) {
- // MEM_mallocN complains about MEM_mallocN(0, "bla");
- // we don't care....
+ /* MEM_mallocN complains about MEM_mallocN(0, "bla");
+ * we don't care.... */
data = MEM_mallocN(1, "packFile");
}
else {
@@ -219,7 +229,7 @@ PackedFile *newPackedFile(ReportList *reports, const char *filename, const char
void packAll(Main *bmain, ReportList *reports)
{
Image *ima;
- VFont *vf;
+ VFont *vfont;
bSound *sound;
for (ima = bmain->image.first; ima; ima = ima->id.next) {
@@ -233,9 +243,9 @@ void packAll(Main *bmain, ReportList *reports)
}
}
- for (vf = bmain->vfont.first; vf; vf = vf->id.next)
- if (vf->packedfile == NULL && vf->id.lib == NULL && strcmp(vf->name, FO_BUILTIN_NAME) != 0)
- vf->packedfile = newPackedFile(reports, vf->name, bmain->name);
+ for (vfont = bmain->vfont.first; vfont; vfont = vfont->id.next)
+ if (vfont->packedfile == NULL && vfont->id.lib == NULL && BKE_vfont_is_builtin(vfont) == FALSE)
+ vfont->packedfile = newPackedFile(reports, vfont->name, bmain->name);
for (sound = bmain->sound.first; sound; sound = sound->id.next)
if (sound->packedfile == NULL && sound->id.lib == NULL)
@@ -294,7 +304,7 @@ int writePackedFile(ReportList *reports, const char *filename, PackedFile *pf, i
}
}
- // make sure the path to the file exists...
+ /* make sure the path to the file exists... */
BLI_make_existing_file(name);
file = BLI_open(name, O_BINARY + O_WRONLY + O_CREAT + O_TRUNC, 0666);
@@ -354,23 +364,23 @@ int checkPackedFile(const char *filename, PackedFile *pf)
ret_val = PF_DIFFERS;
}
else {
- // we'll have to compare the two...
-
+ /* we'll have to compare the two... */
+
file = BLI_open(name, O_BINARY | O_RDONLY, 0);
if (file < 0) {
ret_val = PF_NOFILE;
}
else {
ret_val = PF_EQUAL;
-
+
for (i = 0; i < pf->size; i += sizeof(buf)) {
len = pf->size - i;
if (len > sizeof(buf)) {
len = sizeof(buf);
}
-
+
if (read(file, buf, len) != len) {
- // read error ...
+ /* read error ... */
ret_val = PF_DIFFERS;
break;
}
@@ -412,24 +422,24 @@ char *unpackFile(ReportList *reports, const char *abs_name, const char *local_na
temp = abs_name;
break;
case PF_USE_LOCAL:
- // if file exists use it
+ /* if file exists use it */
if (BLI_exists(local_name)) {
temp = local_name;
break;
}
- // else fall through and create it
+ /* else fall through and create it */
case PF_WRITE_LOCAL:
if (writePackedFile(reports, local_name, pf, 1) == RET_OK) {
temp = local_name;
}
break;
case PF_USE_ORIGINAL:
- // if file exists use it
+ /* if file exists use it */
if (BLI_exists(abs_name)) {
temp = abs_name;
break;
}
- // else fall through and create it
+ /* else fall through and create it */
case PF_WRITE_ORIGINAL:
if (writePackedFile(reports, abs_name, pf, 1) == RET_OK) {
temp = abs_name;
diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c
index ef3fd5c93d0..5a302cba2ab 100644
--- a/source/blender/blenkernel/intern/paint.c
+++ b/source/blender/blenkernel/intern/paint.c
@@ -168,7 +168,7 @@ int paint_vertsel_test(Object *ob)
);
}
-void paint_init(Paint *p, const char col[3])
+void BKE_paint_init(Paint *p, const char col[3])
{
Brush *brush;
@@ -184,16 +184,16 @@ void paint_init(Paint *p, const char col[3])
p->flags |= PAINT_SHOW_BRUSH;
}
-void free_paint(Paint *paint)
+void BKE_paint_free(Paint *paint)
{
id_us_min((ID *)paint->brush);
}
/* called when copying scene settings, so even if 'src' and 'tar' are the same
- * still do a id_us_plus(), rather then if we were copying betweem 2 existing
+ * still do a id_us_plus(), rather then if we were copying between 2 existing
* scenes where a matching value should decrease the existing user count as
* with paint_brush_set() */
-void copy_paint(Paint *src, Paint *tar)
+void BKE_paint_copy(Paint *src, Paint *tar)
{
tar->brush = src->brush;
id_us_plus((ID *)tar->brush);
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c
index a1fe1f7b8a9..89dadcd8dd5 100644
--- a/source/blender/blenkernel/intern/particle.c
+++ b/source/blender/blenkernel/intern/particle.c
@@ -97,8 +97,8 @@ int count_particles(ParticleSystem *psys)
int tot = 0;
LOOP_SHOWN_PARTICLES {
- if (pa->alive == PARS_UNBORN && (part->flag & PART_UNBORN) == 0) ;
- else if (pa->alive == PARS_DEAD && (part->flag & PART_DIED) == 0) ;
+ if (pa->alive == PARS_UNBORN && (part->flag & PART_UNBORN) == 0) {}
+ else if (pa->alive == PARS_DEAD && (part->flag & PART_DIED) == 0) {}
else tot++;
}
return tot;
@@ -110,13 +110,13 @@ int count_particles_mod(ParticleSystem *psys, int totgr, int cur)
int tot = 0;
LOOP_SHOWN_PARTICLES {
- if (pa->alive == PARS_UNBORN && (part->flag & PART_UNBORN) == 0) ;
- else if (pa->alive == PARS_DEAD && (part->flag & PART_DIED) == 0) ;
+ if (pa->alive == PARS_UNBORN && (part->flag & PART_UNBORN) == 0) {}
+ else if (pa->alive == PARS_DEAD && (part->flag & PART_DIED) == 0) {}
else if (p % totgr == cur) tot++;
}
return tot;
}
-/* we allocate path cache memory in chunks instead of a big continguous
+/* we allocate path cache memory in chunks instead of a big contiguous
* chunk, windows' memory allocater fails to find big blocks of memory often */
#define PATH_CACHE_BUF_SIZE 1024
@@ -276,7 +276,7 @@ int psys_check_enabled(Object *ob, ParticleSystem *psys)
return 0;
psmd = psys_get_modifier(ob, psys);
- if (psys->renderdata || G.rendering) {
+ if (psys->renderdata || G.is_rendering) {
if (!(psmd->modifier.mode & eModifierMode_Render))
return 0;
}
@@ -546,7 +546,7 @@ void psys_free(Object *ob, ParticleSystem *psys)
psys->totchild = 0;
}
- // check if we are last non-visible particle system
+ /* check if we are last non-visible particle system */
for (tpsys = ob->particlesystem.first; tpsys; tpsys = tpsys->next) {
if (tpsys->part) {
if (ELEM(tpsys->part->ren_as, PART_DRAW_OB, PART_DRAW_GR)) {
@@ -555,7 +555,7 @@ void psys_free(Object *ob, ParticleSystem *psys)
}
}
}
- // clear do-not-draw-flag
+ /* clear do-not-draw-flag */
if (!nr)
ob->transflag &= ~OB_DUPLIPARTS;
@@ -681,7 +681,7 @@ void psys_render_set(Object *ob, ParticleSystem *psys, float viewmat[][4], float
ParticleRenderData *data;
ParticleSystemModifierData *psmd = psys_get_modifier(ob, psys);
- if (!G.rendering)
+ if (G.is_rendering == FALSE)
return;
if (psys->renderdata)
return;
@@ -2356,7 +2356,7 @@ void psys_find_parents(ParticleSimulationData *sim)
int from = PART_FROM_FACE;
totparent = (int)(totchild * part->parents * 0.3f);
- if (G.rendering && part->child_nbr && part->ren_child_nbr)
+ if (G.is_rendering && part->child_nbr && part->ren_child_nbr)
totparent *= (float)part->child_nbr / (float)part->ren_child_nbr;
tree = BLI_kdtree_new(totparent);
@@ -2433,7 +2433,7 @@ static int psys_threads_init_path(ParticleThread *threads, Scene *scene, float c
if (totchild && part->childtype == PART_CHILD_FACES) {
totparent = (int)(totchild * part->parents * 0.3f);
- if (G.rendering && part->child_nbr && part->ren_child_nbr)
+ if (G.is_rendering && part->child_nbr && part->ren_child_nbr)
totparent *= (float)part->child_nbr / (float)part->ren_child_nbr;
/* part->parents could still be 0 so we can't test with totparent */
@@ -3400,6 +3400,12 @@ void psys_mat_hair_to_object(Object *UNUSED(ob), DerivedMesh *dm, short from, Pa
{
float vec[3];
+ /* can happen when called from a different object's modifier */
+ if (!dm) {
+ unit_m4(hairmat);
+ return;
+ }
+
psys_face_mat(0, dm, pa, hairmat, 0);
psys_particle_on_dm(dm, from, pa->num, pa->num_dmcache, pa->fuv, pa->foffset, vec, 0, 0, 0, 0, 0);
copy_v3_v3(hairmat[3], vec);
@@ -3770,7 +3776,7 @@ static void get_cpa_texture(DerivedMesh *dm, ParticleSystem *psys, ParticleSetti
ptex->gravity = ptex->field = ptex->time = ptex->clump = ptex->kink =
ptex->effector = ptex->rough1 = ptex->rough2 = ptex->roughe = 1.f;
- ptex->length = 1.0f - part->randlength *PSYS_FRAND(child_index + 26);
+ ptex->length = 1.0f - part->randlength * PSYS_FRAND(child_index + 26);
ptex->length *= part->clength_thres < PSYS_FRAND(child_index + 27) ? part->clength : 1.0f;
for (m = 0; m < MAX_MTEX; m++, mtexp++) {
@@ -3870,7 +3876,10 @@ void psys_get_texture(ParticleSimulationData *sim, ParticleData *pa, ParticleTex
case TEXCO_PARTICLE:
/* texture coordinates in range [-1, 1] */
texvec[0] = 2.f * (cfra - pa->time) / (pa->dietime - pa->time) - 1.f;
- texvec[1] = 0.f;
+ if (sim->psys->totpart > 0)
+ texvec[1] = 2.f * (float)(pa - sim->psys->particles) / (float)sim->psys->totpart - 1.f;
+ else
+ texvec[1] = 0.0f;
texvec[2] = 0.f;
break;
}
@@ -3959,7 +3968,7 @@ float psys_get_child_size(ParticleSystem *psys, ChildParticle *cpa, float UNUSED
size *= part->childsize;
if (part->childrandsize != 0.0f)
- size *= 1.0f - part->childrandsize *PSYS_FRAND(cpa - psys->child + 26);
+ size *= 1.0f - part->childrandsize * PSYS_FRAND(cpa - psys->child + 26);
return size;
}
@@ -4530,8 +4539,8 @@ void psys_make_billboard(ParticleBillboardData *bb, float xvec[3], float yvec[3]
/* can happen with bad pointcache or physics calculation
* since this becomes geometry, nan's and inf's crash raytrace code.
* better not allow this. */
- if (!finite(bb->vec[0]) || !finite(bb->vec[1]) || !finite(bb->vec[2]) ||
- !finite(bb->vel[0]) || !finite(bb->vel[1]) || !finite(bb->vel[2]) )
+ if ((!finite(bb->vec[0])) || (!finite(bb->vec[1])) || (!finite(bb->vec[2])) ||
+ (!finite(bb->vel[0])) || (!finite(bb->vel[1])) || (!finite(bb->vel[2])) )
{
zero_v3(bb->vec);
zero_v3(bb->vel);
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c
index 65f22ebc88f..154c8cca75d 100644
--- a/source/blender/blenkernel/intern/particle_system.c
+++ b/source/blender/blenkernel/intern/particle_system.c
@@ -797,8 +797,10 @@ static void distribute_threads_exec(ParticleThread *thread, ParticleData *pa, Ch
}
else {
ctx->jitoff[i] = fmod(ctx->jitoff[i],(float)ctx->jitlevel);
- psys_uv_to_w(ctx->jit[2*(int)ctx->jitoff[i]], ctx->jit[2*(int)ctx->jitoff[i]+1], mface->v4, pa->fuv);
- ctx->jitoff[i]++;
+ if (!isnan(ctx->jitoff[i])) {
+ psys_uv_to_w(ctx->jit[2*(int)ctx->jitoff[i]], ctx->jit[2*(int)ctx->jitoff[i]+1], mface->v4, pa->fuv);
+ ctx->jitoff[i]++;
+ }
}
break;
case PART_DISTR_RAND:
@@ -1576,7 +1578,7 @@ static void initialize_all_particles(ParticleSimulationData *sim)
}
}
-static void get_angular_velocity_vector(short avemode, ParticleKey *state, float *vec)
+static void get_angular_velocity_vector(short avemode, ParticleKey *state, float vec[3])
{
switch (avemode) {
case PART_AVE_VELOCITY:
@@ -2159,7 +2161,9 @@ static void integrate_particle(ParticleSettings *part, ParticleData *pa, float d
break;
}
- copy_particle_key(states, &pa->state, 1);
+ for (i=0; i<steps; i++) {
+ copy_particle_key(states + i, &pa->state, 1);
+ }
states->time = 0.f;
@@ -2441,7 +2445,8 @@ static void sph_particle_courant(SPHData *sphdata, SPHRangeData *pfr)
int i;
float flow[3], offset[3], dist;
- flow[0] = flow[1] = flow[2] = 0.0f;
+ zero_v3(flow);
+
dist = 0.0f;
if (pfr->tot_neighbors > 0) {
pa = pfr->pa;
@@ -2733,13 +2738,17 @@ static void basic_rotate(ParticleSettings *part, ParticleData *pa, float dfra, f
{
float rotfac, rot1[4], rot2[4]={1.0,0.0,0.0,0.0}, dtime=dfra*timestep, extrotfac;
- if ((part->flag & PART_ROTATIONS)==0) {
- pa->state.rot[0]=1.0f;
- pa->state.rot[1]=pa->state.rot[2]=pa->state.rot[3]=0;
+ if ((part->flag & PART_ROTATIONS) == 0) {
+ unit_qt(pa->state.rot);
return;
}
- extrotfac = len_v3(pa->state.ave);
+ if (part->flag & PART_ROT_DYN) {
+ extrotfac = len_v3(pa->state.ave);
+ }
+ else {
+ extrotfac = 0.0f;
+ }
if ((part->flag & PART_ROT_DYN) && ELEM3(part->avemode, PART_AVE_VELOCITY, PART_AVE_HORIZONTAL, PART_AVE_VERTICAL)) {
float angle;
@@ -2747,8 +2756,9 @@ static void basic_rotate(ParticleSettings *part, ParticleData *pa, float dfra, f
float len2 = len_v3(pa->state.vel);
float vec[3];
- if (len1==0.0f || len2==0.0f)
- pa->state.ave[0] = pa->state.ave[1] = pa->state.ave[2] = 0.0f;
+ if (len1 == 0.0f || len2 == 0.0f) {
+ zero_v3(pa->state.ave);
+ }
else {
cross_v3_v3v3(pa->state.ave, pa->prev_state.vel, pa->state.vel);
normalize_v3(pa->state.ave);
@@ -2761,9 +2771,8 @@ static void basic_rotate(ParticleSettings *part, ParticleData *pa, float dfra, f
}
rotfac = len_v3(pa->state.ave);
- if (rotfac == 0.0f || (part->flag & PART_ROT_DYN)==0 || extrotfac == 0.0f) { /* unit_qt(in VecRotToQuat) doesn't give unit quat [1,0,0,0]?? */
- rot1[0]=1.0f;
- rot1[1]=rot1[2]=rot1[3]=0;
+ if (rotfac == 0.0f || (part->flag & PART_ROT_DYN)==0 || extrotfac == 0.0f) {
+ unit_qt(rot1);
}
else {
axis_angle_to_quat(rot1,pa->state.ave,rotfac*dtime);
@@ -3750,8 +3759,10 @@ static void save_hair(ParticleSimulationData *sim, float UNUSED(cfra))
pa->totkey++;
/* root is always in the origin of hair space so we set it to be so after the last key is saved*/
- if (pa->totkey == psys->part->hair_step + 1)
- root->co[0] = root->co[1] = root->co[2] = 0.0f;
+ if (pa->totkey == psys->part->hair_step + 1) {
+ zero_v3(root->co);
+ }
+
}
}
@@ -3766,8 +3777,8 @@ static void save_hair(ParticleSimulationData *sim, float UNUSED(cfra))
/* Calculate the speed of the particle relative to the local scale of the
* simulation. This should be called once per particle during a simulation
* step, after the velocity has been updated. element_size defines the scale of
- * the simulation, and is typically the distance to neighbourning particles. */
-void update_courant_num(ParticleSimulationData *sim, ParticleData *pa,
+ * the simulation, and is typically the distance to neighboring particles. */
+static void update_courant_num(ParticleSimulationData *sim, ParticleData *pa,
float dtime, SPHData *sphdata)
{
float relative_vel[3];
@@ -3779,8 +3790,7 @@ void update_courant_num(ParticleSimulationData *sim, ParticleData *pa,
sim->courant_num = speed * dtime / sphdata->element_size;
}
/* Update time step size to suit current conditions. */
-float update_timestep(ParticleSystem *psys, ParticleSimulationData *sim,
- float t_frac)
+static float update_timestep(ParticleSystem *psys, ParticleSimulationData *sim, float t_frac)
{
if (sim->courant_num == 0.0f)
psys->dt_frac = 1.0f;
@@ -4095,7 +4105,7 @@ static void particles_fluid_step(ParticleSimulationData *sim, int UNUSED(cfra))
}
gzread(gzf, &totpart, sizeof(totpart));
- totpart = (G.rendering)?totpart:(part->disp*totpart)/100;
+ totpart = (G.is_rendering)?totpart:(part->disp*totpart) / 100;
part->totpart= totpart;
part->sta=part->end = 1.0f;
@@ -4130,9 +4140,8 @@ static void particles_fluid_step(ParticleSimulationData *sim, int UNUSED(cfra))
pa->state.vel[j] = wrf;
}
- pa->state.ave[0] = pa->state.ave[1] = pa->state.ave[2] = 0.0f;
- pa->state.rot[0] = 1.0;
- pa->state.rot[1] = pa->state.rot[2] = pa->state.rot[3] = 0.0;
+ zero_v3(pa->state.ave);
+ unit_qt(pa->state.rot);
pa->time = 1.f;
pa->dietime = sim->scene->r.efra + 1;
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c
index a3fa8f8be89..8c0d19ba1fd 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -69,7 +69,6 @@
#include "BKE_scene.h"
#include "BKE_smoke.h"
#include "BKE_softbody.h"
-#include "BKE_utildefines.h"
#include "BIK_api.h"
@@ -326,8 +325,7 @@ static void ptcache_particle_read(int index, void *psys_v, void **data, float cf
/* default to no rotation */
if (data[BPHYS_DATA_LOCATION] && !data[BPHYS_DATA_ROTATION]) {
- pa->state.rot[0]=1.0f;
- pa->state.rot[1]=pa->state.rot[2]=pa->state.rot[3]=0;
+ unit_qt(pa->state.rot);
}
}
static void ptcache_particle_interpolate(int index, void *psys_v, void **data, float cfra, float cfra1, float cfra2, float *old_data)
@@ -1031,7 +1029,8 @@ void BKE_ptcache_ids_from_object(ListBase *lb, Object *ob, Scene *scene, int dup
if (scene && (duplis-- > 0) && (ob->transflag & OB_DUPLI)) {
ListBase *lb_dupli_ob;
- if ((lb_dupli_ob=object_duplilist(scene, ob))) {
+ /* don't update the dupli groups, we only wan't their pid's */
+ if ((lb_dupli_ob = object_duplilist_ex(scene, ob, FALSE, FALSE))) {
DupliObject *dob;
for (dob= lb_dupli_ob->first; dob; dob= dob->next) {
if (dob->ob != ob) { /* avoids recursive loops with dupliframes: bug 22988 */
@@ -1068,8 +1067,9 @@ static int ptcache_path(PTCacheID *pid, char *filename)
if (pid->cache->flag & PTCACHE_EXTERNAL) {
strcpy(filename, pid->cache->path);
- if (strncmp(filename, "//", 2)==0)
+ if (BLI_path_is_rel(filename)) {
BLI_path_abs(filename, blendfilename);
+ }
return BLI_add_slash(filename); /* new strlen() */
}
@@ -2320,7 +2320,7 @@ void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startfra
* - simulation time is scaled by result of bsystem_time
* - for offsetting time only time offset is taken into account, since
* that's always the same and can't be animated. a timeoffset which
- * varies over time is not simpe to support.
+ * varies over time is not simple to support.
* - field and motion blur offsets are currently ignored, proper solution
* is probably to interpolate results from two frames for that ..
*/
@@ -2663,32 +2663,59 @@ void BKE_ptcache_free_list(ListBase *ptcaches)
}
}
-static PointCache *ptcache_copy(PointCache *cache)
+static PointCache *ptcache_copy(PointCache *cache, int copy_data)
{
PointCache *ncache;
ncache= MEM_dupallocN(cache);
- /* hmm, should these be copied over instead? */
ncache->mem_cache.first = NULL;
ncache->mem_cache.last = NULL;
- ncache->cached_frames = NULL;
- ncache->edit = NULL;
- ncache->flag= 0;
- ncache->simframe= 0;
+ if (copy_data == FALSE) {
+ ncache->mem_cache.first = NULL;
+ ncache->mem_cache.last = NULL;
+ ncache->cached_frames = NULL;
+
+ ncache->flag= 0;
+ ncache->simframe= 0;
+ }
+ else {
+ PTCacheMem *pm;
+
+ for (pm = cache->mem_cache.first; pm; pm = pm->next) {
+ PTCacheMem *pmn = MEM_dupallocN(pm);
+ int i;
+
+ for (i = 0; i < BPHYS_TOT_DATA; i++) {
+ if (pmn->data[i])
+ pmn->data[i] = MEM_dupallocN(pm->data[i]);
+ }
+
+ BKE_ptcache_mem_pointers_init(pm);
+
+ BLI_addtail(&ncache->mem_cache, pmn);
+ }
+
+ if (ncache->cached_frames)
+ ncache->cached_frames = MEM_dupallocN(cache->cached_frames);
+ }
+
+ /* hmm, should these be copied over instead? */
+ ncache->edit = NULL;
return ncache;
}
+
/* returns first point cache */
-PointCache *BKE_ptcache_copy_list(ListBase *ptcaches_new, ListBase *ptcaches_old)
+PointCache *BKE_ptcache_copy_list(ListBase *ptcaches_new, ListBase *ptcaches_old, int copy_data)
{
PointCache *cache = ptcaches_old->first;
ptcaches_new->first = ptcaches_new->last = NULL;
for (; cache; cache=cache->next)
- BLI_addtail(ptcaches_new, ptcache_copy(cache));
+ BLI_addtail(ptcaches_new, ptcache_copy(cache, copy_data));
return ptcaches_new->first;
}
@@ -2808,7 +2835,7 @@ void BKE_ptcache_bake(PTCacheBaker* baker)
thread_data.scene = baker->scene;
thread_data.main = baker->main;
- G.afbreek = 0;
+ G.is_break = FALSE;
/* set caches to baking mode and figure out start frame */
if (pid) {
diff --git a/source/blender/blenkernel/intern/property.c b/source/blender/blenkernel/intern/property.c
index b82521504dd..8da4f11fed3 100644
--- a/source/blender/blenkernel/intern/property.c
+++ b/source/blender/blenkernel/intern/property.c
@@ -27,9 +27,12 @@
/** \file blender/blenkernel/intern/property.c
* \ingroup bke
+ *
+ * This module deals with bProperty only,
+ * they are used on blender objects in the game engine
+ * (where they get converted into C++ classes - CValue and subclasses)
*/
-
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
@@ -45,7 +48,7 @@
#include "BKE_property.h"
-void free_property(bProperty *prop)
+void BKE_bproperty_free(bProperty *prop)
{
if (prop->poin && prop->poin != &prop->data) MEM_freeN(prop->poin);
@@ -53,17 +56,17 @@ void free_property(bProperty *prop)
}
-void free_properties(ListBase *lb)
+void BKE_bproperty_free_list(ListBase *lb)
{
bProperty *prop;
while ( (prop = lb->first) ) {
BLI_remlink(lb, prop);
- free_property(prop);
+ BKE_bproperty_free(prop);
}
}
-bProperty *copy_property(bProperty *prop)
+bProperty *BKE_bproperty_copy(bProperty *prop)
{
bProperty *propn;
@@ -76,13 +79,13 @@ bProperty *copy_property(bProperty *prop)
return propn;
}
-void copy_properties(ListBase *lbn, ListBase *lbo)
+void BKE_bproperty_copy_list(ListBase *lbn, ListBase *lbo)
{
bProperty *prop, *propn;
- free_properties(lbn); /* in case we are copying to an object with props */
+ BKE_bproperty_free_list(lbn); /* in case we are copying to an object with props */
prop = lbo->first;
while (prop) {
- propn = copy_property(prop);
+ propn = BKE_bproperty_copy(prop);
BLI_addtail(lbn, propn);
prop = prop->next;
}
@@ -90,7 +93,7 @@ void copy_properties(ListBase *lbn, ListBase *lbo)
}
-void init_property(bProperty *prop)
+void BKE_bproperty_init(bProperty *prop)
{
/* also use when property changes type */
@@ -113,22 +116,22 @@ void init_property(bProperty *prop)
}
-bProperty *new_property(int type)
+bProperty *BKE_bproperty_new(int type)
{
bProperty *prop;
prop = MEM_callocN(sizeof(bProperty), "property");
prop->type = type;
- init_property(prop);
+ BKE_bproperty_init(prop);
strcpy(prop->name, "prop");
return prop;
}
-/* used by unique_property() only */
-static bProperty *get_property__internal(bProperty *first, bProperty *self, const char *name)
+/* used by BKE_bproperty_unique() only */
+static bProperty *bproperty_get(bProperty *first, bProperty *self, const char *name)
{
bProperty *p;
for (p = first; p; p = p->next) {
@@ -137,7 +140,7 @@ static bProperty *get_property__internal(bProperty *first, bProperty *self, cons
}
return NULL;
}
-void unique_property(bProperty *first, bProperty *prop, int force)
+void BKE_bproperty_unique(bProperty *first, bProperty *prop, int force)
{
bProperty *p;
@@ -151,13 +154,13 @@ void unique_property(bProperty *first, bProperty *prop, int force)
if (force) {
/* change other names to make them unique */
- while ((p = get_property__internal(first, prop, prop->name))) {
- unique_property(first, p, 0);
+ while ((p = bproperty_get(first, prop, prop->name))) {
+ BKE_bproperty_unique(first, p, 0);
}
}
else {
/* change our own name until its unique */
- if (get_property__internal(first, prop, prop->name)) {
+ if (bproperty_get(first, prop, prop->name)) {
/* there is a collision */
char new_name[sizeof(prop->name)];
char base_name[sizeof(prop->name)];
@@ -175,33 +178,34 @@ void unique_property(bProperty *first, bProperty *prop, int force)
BLI_snprintf(num, sizeof(num), "%d", i++);
BLI_strncpy(new_name, base_name, sizeof(prop->name) - strlen(num));
strcat(new_name, num);
- } while (get_property__internal(first, prop, new_name));
+ } while (bproperty_get(first, prop, new_name));
BLI_strncpy(prop->name, new_name, sizeof(prop->name));
}
}
}
-bProperty *get_ob_property(Object *ob, const char *name)
+bProperty *BKE_bproperty_object_get(Object *ob, const char *name)
{
return BLI_findstring(&ob->prop, name, offsetof(bProperty, name));
}
-void set_ob_property(Object *ob, bProperty *propc)
+void BKE_bproperty_object_set(Object *ob, bProperty *propc)
{
bProperty *prop;
- prop = get_ob_property(ob, propc->name);
+ prop = BKE_bproperty_object_get(ob, propc->name);
if (prop) {
- free_property(prop);
+ BKE_bproperty_free(prop);
BLI_remlink(&ob->prop, prop);
}
- BLI_addtail(&ob->prop, copy_property(propc));
+ BLI_addtail(&ob->prop, BKE_bproperty_copy(propc));
}
/* negative: prop is smaller
* positive: prop is larger
*/
-int compare_property(bProperty *prop, const char *str)
+#if 0 /* UNUSED */
+int BKE_bproperty_cmp(bProperty *prop, const char *str)
{
// extern int Gdfra; /* sector.c */
float fvalue, ftest;
@@ -223,8 +227,8 @@ int compare_property(bProperty *prop, const char *str)
case GPROP_FLOAT:
case GPROP_TIME:
- // WARNING: untested for GPROP_TIME
- // function isn't used currently
+ /* WARNING: untested for GPROP_TIME
+ * function isn't used currently */
fvalue = *((float *)&prop->data);
ftest = (float)atof(str);
if (fvalue > ftest) return 1;
@@ -237,8 +241,9 @@ int compare_property(bProperty *prop, const char *str)
return 0;
}
+#endif
-void set_property(bProperty *prop, const char *str)
+void BKE_bproperty_set(bProperty *prop, const char *str)
{
// extern int Gdfra; /* sector.c */
@@ -262,7 +267,7 @@ void set_property(bProperty *prop, const char *str)
}
-void add_property(bProperty *prop, const char *str)
+void BKE_bproperty_add(bProperty *prop, const char *str)
{
// extern int Gdfra; /* sector.c */
@@ -282,7 +287,7 @@ void add_property(bProperty *prop, const char *str)
}
/* reads value of property, sets it in chars in str */
-void set_property_valstr(bProperty *prop, char *str)
+void BKE_bproperty_set_valstr(bProperty *prop, char *str)
{
// extern int Gdfra; /* sector.c */
@@ -303,11 +308,13 @@ void set_property_valstr(bProperty *prop, char *str)
}
}
+#if 0 /* UNUSED */
void cp_property(bProperty *prop1, bProperty *prop2)
{
char str[128];
- set_property_valstr(prop2, str);
+ BKE_bproperty_set_valstr(prop2, str);
- set_property(prop1, str);
+ BKE_bproperty_set(prop1, str);
}
+#endif
diff --git a/source/blender/blenkernel/intern/sca.c b/source/blender/blenkernel/intern/sca.c
index b5bb6b76c61..6c1fbbfa9a0 100644
--- a/source/blender/blenkernel/intern/sca.c
+++ b/source/blender/blenkernel/intern/sca.c
@@ -44,7 +44,6 @@
#include "DNA_object_types.h"
#include "BLI_blenlib.h"
-#include "BKE_utildefines.h"
#include "BKE_global.h"
#include "BKE_main.h"
#include "BKE_library.h"
@@ -211,7 +210,7 @@ void unlink_controllers(ListBase *lb)
bController *cont;
for (cont= lb->first; cont; cont= cont->next)
- unlink_controller(cont);
+ unlink_controller(cont);
}
void free_controller(bController *cont)
@@ -537,7 +536,7 @@ void clear_sca_new_poins(void)
ob= G.main->object.first;
while (ob) {
clear_sca_new_poins_ob(ob);
- ob= ob->id.next;
+ ob= ob->id.next;
}
}
@@ -625,7 +624,7 @@ void set_sca_new_poins(void)
ob= G.main->object.first;
while (ob) {
set_sca_new_poins_ob(ob);
- ob= ob->id.next;
+ ob= ob->id.next;
}
}
@@ -697,7 +696,7 @@ void sca_remove_ob_poin(Object *obt, Object *ob)
if (sta->target == ob) sta->target = NULL;
}
act= act->next;
- }
+ }
}
/* ******************** INTERFACE ******************* */
@@ -717,7 +716,7 @@ void sca_move_sensor(bSensor *sens_to_move, Object *ob, int move_up)
if (!sens) return;
/* move up */
- if ( val==1 && sens->prev) {
+ if (val == 1 && sens->prev) {
for (tmp=sens->prev; tmp; tmp=tmp->prev) {
if (tmp->flag & SENS_VISIBLE)
break;
@@ -728,7 +727,7 @@ void sca_move_sensor(bSensor *sens_to_move, Object *ob, int move_up)
}
}
/* move down */
- else if ( val==2 && sens->next) {
+ else if (val == 2 && sens->next) {
for (tmp=sens->next; tmp; tmp=tmp->next) {
if (tmp->flag & SENS_VISIBLE)
break;
@@ -756,7 +755,7 @@ void sca_move_controller(bController *cont_to_move, Object *ob, int move_up)
if (!cont) return;
/* move up */
- if ( val==1 && cont->prev) {
+ if (val == 1 && cont->prev) {
/* locate the controller that has the same state mask but is earlier in the list */
tmp = cont->prev;
while (tmp) {
@@ -771,7 +770,7 @@ void sca_move_controller(bController *cont_to_move, Object *ob, int move_up)
}
/* move down */
- else if ( val==2 && cont->next) {
+ else if (val == 2 && cont->next) {
tmp = cont->next;
while (tmp) {
if (tmp->state_mask & cont->state_mask)
@@ -799,7 +798,7 @@ void sca_move_actuator(bActuator *act_to_move, Object *ob, int move_up)
if (!act) return;
/* move up */
- if ( val==1 && act->prev) {
+ if (val == 1 && act->prev) {
/* locate the first visible actuators before this one */
for (tmp = act->prev; tmp; tmp=tmp->prev) {
if (tmp->flag & ACT_VISIBLE)
@@ -811,7 +810,7 @@ void sca_move_actuator(bActuator *act_to_move, Object *ob, int move_up)
}
}
/* move down */
- else if ( val==2 && act->next) {
+ else if (val == 2 && act->next) {
/* locate the first visible actuators after this one */
for (tmp=act->next; tmp; tmp=tmp->next) {
if (tmp->flag & ACT_VISIBLE)
@@ -876,3 +875,20 @@ void unlink_logicbricks(void **poin, void ***ppoin, short *tot)
return;
}
}
+
+const char *sca_state_name_get(Object *ob, short bit)
+{
+ bController *cont;
+ unsigned int mask;
+
+ mask = (1<<bit);
+ cont = ob->controllers.first;
+ while (cont) {
+ if (cont->state_mask & mask) {
+ return cont->name;
+ }
+ cont = cont->next;
+ }
+ return NULL;
+}
+
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 1113555e3bf..96e64f30156 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -54,9 +54,11 @@
#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
#include "BLI_callbacks.h"
+#include "BLI_string.h"
#include "BKE_anim.h"
#include "BKE_animsys.h"
+#include "BKE_colortools.h"
#include "BKE_depsgraph.h"
#include "BKE_global.h"
#include "BKE_group.h"
@@ -76,6 +78,8 @@
#include "RE_engine.h"
+#include "IMB_colormanagement.h"
+
//XXX #include "BIF_previewrender.h"
//XXX #include "BIF_editseq.h"
@@ -153,7 +157,8 @@ Scene *BKE_scene_copy(Scene *sce, int type)
BKE_keyingsets_copy(&(scen->keyingsets), &(sce->keyingsets));
if (sce->nodetree) {
- scen->nodetree = ntreeCopyTree(sce->nodetree); /* copies actions */
+ /* ID's are managed on both copy and switch */
+ scen->nodetree = ntreeCopyTree(sce->nodetree);
ntreeSwitchID(scen->nodetree, &sce->id, &scen->id);
}
@@ -166,6 +171,14 @@ Scene *BKE_scene_copy(Scene *sce, int type)
obase = obase->next;
base = base->next;
}
+
+ /* copy color management settings */
+ BKE_color_managed_display_settings_copy(&scen->display_settings, &sce->display_settings);
+ BKE_color_managed_view_settings_copy(&scen->view_settings, &sce->view_settings);
+ BKE_color_managed_view_settings_copy(&scen->r.im_format.view_settings, &sce->r.im_format.view_settings);
+
+ BLI_strncpy(scen->sequencer_colorspace_settings.name, sce->sequencer_colorspace_settings.name,
+ sizeof(scen->sequencer_colorspace_settings.name));
}
/* tool settings */
@@ -178,21 +191,21 @@ Scene *BKE_scene_copy(Scene *sce, int type)
ts->vpaint->paintcursor = NULL;
ts->vpaint->vpaint_prev = NULL;
ts->vpaint->wpaint_prev = NULL;
- copy_paint(&ts->vpaint->paint, &ts->vpaint->paint);
+ BKE_paint_copy(&ts->vpaint->paint, &ts->vpaint->paint);
}
if (ts->wpaint) {
ts->wpaint = MEM_dupallocN(ts->wpaint);
ts->wpaint->paintcursor = NULL;
ts->wpaint->vpaint_prev = NULL;
ts->wpaint->wpaint_prev = NULL;
- copy_paint(&ts->wpaint->paint, &ts->wpaint->paint);
+ BKE_paint_copy(&ts->wpaint->paint, &ts->wpaint->paint);
}
if (ts->sculpt) {
ts->sculpt = MEM_dupallocN(ts->sculpt);
- copy_paint(&ts->sculpt->paint, &ts->sculpt->paint);
+ BKE_paint_copy(&ts->sculpt->paint, &ts->sculpt->paint);
}
- copy_paint(&ts->imapaint.paint, &ts->imapaint.paint);
+ BKE_paint_copy(&ts->imapaint.paint, &ts->imapaint.paint);
ts->imapaint.paintcursor = NULL;
ts->particle.paintcursor = NULL;
}
@@ -237,7 +250,7 @@ Scene *BKE_scene_copy(Scene *sce, int type)
if (sce->ed) {
scen->ed = MEM_callocN(sizeof(Editing), "addseq");
scen->ed->seqbasep = &scen->ed->seqbase;
- seqbase_dupli_recursive(sce, scen, &scen->ed->seqbase, &sce->ed->seqbase, SEQ_DUPE_ALL);
+ BKE_sequence_base_dupli_recursive(sce, scen, &scen->ed->seqbase, &sce->ed->seqbase, SEQ_DUPE_ALL);
}
}
@@ -257,10 +270,10 @@ void BKE_scene_free(Scene *sce)
/* do not free objects! */
if (sce->gpd) {
-#if 0 // removed since this can be invalid memory when freeing everything
- // since the grease pencil data is freed before the scene.
- // since grease pencil data is not (yet?), shared between objects
- // its probably safe not to do this, some save and reload will free this.
+#if 0 /* removed since this can be invalid memory when freeing everything */
+ /* since the grease pencil data is freed before the scene.
+ * since grease pencil data is not (yet?), shared between objects
+ * its probably safe not to do this, some save and reload will free this. */
sce->gpd->id.us--;
#endif
sce->gpd = NULL;
@@ -294,22 +307,22 @@ void BKE_scene_free(Scene *sce)
if (sce->toolsettings) {
if (sce->toolsettings->vpaint) {
- free_paint(&sce->toolsettings->vpaint->paint);
+ BKE_paint_free(&sce->toolsettings->vpaint->paint);
MEM_freeN(sce->toolsettings->vpaint);
}
if (sce->toolsettings->wpaint) {
- free_paint(&sce->toolsettings->wpaint->paint);
+ BKE_paint_free(&sce->toolsettings->wpaint->paint);
MEM_freeN(sce->toolsettings->wpaint);
}
if (sce->toolsettings->sculpt) {
- free_paint(&sce->toolsettings->sculpt->paint);
+ BKE_paint_free(&sce->toolsettings->sculpt->paint);
MEM_freeN(sce->toolsettings->sculpt);
}
if (sce->toolsettings->uvsculpt) {
- free_paint(&sce->toolsettings->uvsculpt->paint);
+ BKE_paint_free(&sce->toolsettings->uvsculpt->paint);
MEM_freeN(sce->toolsettings->uvsculpt);
}
- free_paint(&sce->toolsettings->imapaint.paint);
+ BKE_paint_free(&sce->toolsettings->imapaint.paint);
MEM_freeN(sce->toolsettings);
sce->toolsettings = NULL;
@@ -331,6 +344,8 @@ void BKE_scene_free(Scene *sce)
MEM_freeN(sce->fps_info);
sound_destroy_scene(sce);
+
+ BKE_color_managed_view_settings_free(&sce->view_settings);
}
Scene *BKE_scene_add(const char *name)
@@ -339,6 +354,7 @@ Scene *BKE_scene_add(const char *name)
Scene *sce;
ParticleEditSettings *pset;
int a;
+ const char *colorspace_name;
sce = BKE_libblock_alloc(&bmain->scene, ID_SCE, name);
sce->lay = sce->layact = 1;
@@ -371,7 +387,14 @@ Scene *BKE_scene_add(const char *name)
sce->r.frs_sec_base = 1;
sce->r.edgeint = 10;
sce->r.ocres = 128;
+
+ /* OCIO_TODO: for forwards compatibility only, so if no tonecurve are used,
+ * images would look in the same way as in current blender
+ *
+ * perhaps at some point should be completely deprecated?
+ */
sce->r.color_mgt_flag |= R_COLOR_MANAGEMENT;
+
sce->r.gauss = 1.0;
/* deprecated but keep for upwards compat */
@@ -487,7 +510,7 @@ Scene *BKE_scene_add(const char *name)
BLI_strncpy(sce->r.pic, U.renderdir, sizeof(sce->r.pic));
- BLI_init_rctf(&sce->r.safety, 0.1f, 0.9f, 0.1f, 0.9f);
+ BLI_rctf_init(&sce->r.safety, 0.1f, 0.9f, 0.1f, 0.9f);
sce->r.osa = 8;
/* note; in header_info.c the scene copy happens..., if you add more to renderdata it has to be checked there */
@@ -545,19 +568,20 @@ Scene *BKE_scene_add(const char *name)
sound_create_scene(sce);
+ /* color management */
+ colorspace_name = IMB_colormanagement_role_colorspace_name_get(COLOR_ROLE_DEFAULT_SEQUENCER);
+
+ BKE_color_managed_display_settings_init(&sce->display_settings);
+ BKE_color_managed_view_settings_init(&sce->view_settings);
+ BLI_strncpy(sce->sequencer_colorspace_settings.name, colorspace_name,
+ sizeof(sce->sequencer_colorspace_settings.name));
+
return sce;
}
Base *BKE_scene_base_find(Scene *scene, Object *ob)
{
- Base *base;
-
- base = scene->base.first;
- while (base) {
- if (base->object == ob) return base;
- base = base->next;
- }
- return NULL;
+ return BLI_findptr(&scene->base, ob, offsetof(Base, object));
}
void BKE_scene_set_background(Main *bmain, Scene *scene)
@@ -582,10 +606,10 @@ void BKE_scene_set_background(Main *bmain, Scene *scene)
/* group flags again */
for (group = bmain->group.first; group; group = group->id.next) {
- go = group->gobject.first;
- while (go) {
- if (go->ob) go->ob->flag |= OB_FROMGROUP;
- go = go->next;
+ for (go = group->gobject.first; go; go = go->next) {
+ if (go->ob) {
+ go->ob->flag |= OB_FROMGROUP;
+ }
}
}
@@ -639,7 +663,7 @@ void BKE_scene_unlink(Main *bmain, Scene *sce, Scene *newsce)
sce1->set = NULL;
/* check all sequences */
- clear_scene_in_allseqs(bmain, sce);
+ BKE_sequencer_clear_scene_in_allseqs(bmain, sce);
/* check render layer nodes in other scenes */
clear_scene_in_nodes(bmain, sce);
@@ -730,7 +754,7 @@ int BKE_scene_base_iter_next(Scene **scene, int val, Base **base, Object **ob)
* this enters eternal loop because of
* makeDispListMBall getting called inside of group_duplilist */
if ((*base)->object->dup_group == NULL) {
- duplilist = object_duplilist((*scene), (*base)->object);
+ duplilist = object_duplilist((*scene), (*base)->object, FALSE);
dupob = duplilist->first;
@@ -952,9 +976,9 @@ static void scene_update_drivers(Main *UNUSED(bmain), Scene *scene)
if (scene->adt && scene->adt->drivers.first) {
BKE_animsys_evaluate_animdata(scene, &scene->id, scene->adt, ctime, ADT_RECALC_DRIVERS);
}
-
+
/* world */
- // TODO: what about world textures? but then those have nodes too...
+ /* TODO: what about world textures? but then those have nodes too... */
if (scene->world) {
ID *wid = (ID *)scene->world;
AnimData *adt = BKE_animdata_from_id(wid);
@@ -1018,6 +1042,11 @@ void BKE_scene_update_tagged(Main *bmain, Scene *scene)
DAG_ids_flush_tagged(bmain);
scene->physics_settings.quick_cache_step = 0;
+
+ /* clear "LIB_DOIT" flag from all materials, to prevent infinite recursion problems later
+ * when trying to find materials with drivers that need evaluating [#32017]
+ */
+ tag_main_idcode(bmain, ID_MA, FALSE);
/* update all objects: drivers, matrices, displists, etc. flags set
* by depgraph or manual, no layer check here, gets correct flushed
@@ -1060,7 +1089,7 @@ void BKE_scene_update_for_newframe(Main *bmain, Scene *sce, unsigned int lay)
sound_set_cfra(sce->r.cfra);
/* clear animation overrides */
- // XXX TODO...
+ /* XXX TODO... */
for (sce_iter = sce; sce_iter; sce_iter = sce_iter->set) {
if (sce_iter->theDag == NULL)
@@ -1241,3 +1270,26 @@ void BKE_scene_base_flag_from_objects(struct Scene *scene)
base = base->next;
}
}
+
+void BKE_scene_disable_color_management(Scene *scene)
+{
+ ColorManagedDisplaySettings *display_settings = &scene->display_settings;
+ ColorManagedViewSettings *view_settings = &scene->view_settings;
+ const char *view;
+ const char *none_display_name;
+
+ none_display_name = IMB_colormanagement_display_get_none_name();
+
+ BLI_strncpy(display_settings->display_device, none_display_name, sizeof(display_settings->display_device));
+
+ view = IMB_colormanagement_view_get_default_name(display_settings->display_device);
+
+ if (view) {
+ BLI_strncpy(view_settings->view_transform, view, sizeof(view_settings->view_transform));
+ }
+}
+
+int BKE_scene_check_color_management_enabled(const Scene *scene)
+{
+ return strcmp(scene->display_settings.display_device, "None") != 0;
+}
diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c
index 4dfa9f7e12e..56fddfdaa2b 100644
--- a/source/blender/blenkernel/intern/screen.c
+++ b/source/blender/blenkernel/intern/screen.c
@@ -356,7 +356,7 @@ ARegion *BKE_area_find_region_type(ScrArea *sa, int type)
/* note, using this function is generally a last resort, you really want to be
* using the context when you can - campbell
* -1 for any type */
-struct ScrArea *BKE_screen_find_big_area(struct bScreen *sc, const int spacetype, const short min)
+ScrArea *BKE_screen_find_big_area(bScreen *sc, const int spacetype, const short min)
{
ScrArea *sa, *big = NULL;
int size, maxsize = 0;
diff --git a/source/blender/blenkernel/intern/seqcache.c b/source/blender/blenkernel/intern/seqcache.c
index 582034ae623..e3f0226c863 100644
--- a/source/blender/blenkernel/intern/seqcache.c
+++ b/source/blender/blenkernel/intern/seqcache.c
@@ -37,6 +37,10 @@
#include "BKE_sequencer.h"
#include "IMB_moviecache.h"
+#include "IMB_imbuf.h"
+#include "IMB_imbuf_types.h"
+
+#include "BLI_listbase.h"
typedef struct SeqCacheKey {
struct Sequence *seq;
@@ -45,7 +49,92 @@ typedef struct SeqCacheKey {
seq_stripelem_ibuf_t type;
} SeqCacheKey;
+typedef struct SeqPreprocessCacheElem {
+ struct SeqPreprocessCacheElem *next, *prev;
+
+ struct Sequence *seq;
+ SeqRenderData context;
+ seq_stripelem_ibuf_t type;
+
+ ImBuf *ibuf;
+} SeqPreprocessCacheElem;
+
+typedef struct SeqPreprocessCache {
+ int cfra;
+ ListBase elems;
+} SeqPreprocessCache;
+
static struct MovieCache *moviecache = NULL;
+static struct SeqPreprocessCache *preprocess_cache = NULL;
+
+static void preprocessed_cache_destruct(void);
+
+static int seq_cmp_render_data(const SeqRenderData *a, const SeqRenderData *b)
+{
+ if (a->preview_render_size < b->preview_render_size) {
+ return -1;
+ }
+ if (a->preview_render_size > b->preview_render_size) {
+ return 1;
+ }
+
+ if (a->rectx < b->rectx) {
+ return -1;
+ }
+ if (a->rectx > b->rectx) {
+ return 1;
+ }
+
+ if (a->recty < b->recty) {
+ return -1;
+ }
+ if (a->recty > b->recty) {
+ return 1;
+ }
+
+ if (a->bmain < b->bmain) {
+ return -1;
+ }
+ if (a->bmain > b->bmain) {
+ return 1;
+ }
+
+ if (a->scene < b->scene) {
+ return -1;
+ }
+ if (a->scene > b->scene) {
+ return 1;
+ }
+
+ if (a->motion_blur_shutter < b->motion_blur_shutter) {
+ return -1;
+ }
+ if (a->motion_blur_shutter > b->motion_blur_shutter) {
+ return 1;
+ }
+
+ if (a->motion_blur_samples < b->motion_blur_samples) {
+ return -1;
+ }
+ if (a->motion_blur_samples > b->motion_blur_samples) {
+ return 1;
+ }
+
+ return 0;
+}
+
+static unsigned int seq_hash_render_data(const SeqRenderData *a)
+{
+ unsigned int rval = a->rectx + a->recty;
+
+ rval ^= a->preview_render_size;
+ rval ^= ((intptr_t) a->bmain) << 6;
+ rval ^= ((intptr_t) a->scene) << 6;
+ rval ^= (int)(a->motion_blur_shutter * 100.0f) << 10;
+ rval ^= a->motion_blur_samples << 24;
+
+ return rval;
+}
static unsigned int seqcache_hashhash(const void *key_)
{
@@ -88,26 +177,40 @@ static int seqcache_hashcmp(const void *a_, const void *b_)
return seq_cmp_render_data(&a->context, &b->context);
}
-void seq_stripelem_cache_destruct(void)
+void BKE_sequencer_cache_destruct(void)
{
if (moviecache)
IMB_moviecache_free(moviecache);
+
+ preprocessed_cache_destruct();
}
-void seq_stripelem_cache_cleanup(void)
+void BKE_sequencer_cache_cleanup(void)
{
if (moviecache) {
IMB_moviecache_free(moviecache);
- moviecache = IMB_moviecache_create(sizeof(SeqCacheKey), seqcache_hashhash,
- seqcache_hashcmp, NULL);
+ moviecache = IMB_moviecache_create("seqcache", sizeof(SeqCacheKey), seqcache_hashhash, seqcache_hashcmp);
}
+
+ BKE_sequencer_preprocessed_cache_cleanup();
}
-struct ImBuf *seq_stripelem_cache_get(
- SeqRenderData context, struct Sequence *seq,
- float cfra, seq_stripelem_ibuf_t type)
+static int seqcache_key_check_seq(void *userkey, void *userdata)
{
+ SeqCacheKey *key = (SeqCacheKey *) userkey;
+ Sequence *seq = (Sequence *) userdata;
+
+ return key->seq == seq;
+}
+
+void BKE_sequencer_cache_cleanup_sequence(Sequence *seq)
+{
+ if (moviecache)
+ IMB_moviecache_cleanup(moviecache, seqcache_key_check_seq, seq);
+}
+struct ImBuf *BKE_sequencer_cache_get(SeqRenderData context, Sequence *seq, float cfra, seq_stripelem_ibuf_t type)
+{
if (moviecache && seq) {
SeqCacheKey key;
@@ -122,9 +225,7 @@ struct ImBuf *seq_stripelem_cache_get(
return NULL;
}
-void seq_stripelem_cache_put(
- SeqRenderData context, struct Sequence *seq,
- float cfra, seq_stripelem_ibuf_t type, struct ImBuf *i)
+void BKE_sequencer_cache_put(SeqRenderData context, Sequence *seq, float cfra, seq_stripelem_ibuf_t type, ImBuf *i)
{
SeqCacheKey key;
@@ -133,8 +234,7 @@ void seq_stripelem_cache_put(
}
if (!moviecache) {
- moviecache = IMB_moviecache_create(sizeof(SeqCacheKey), seqcache_hashhash,
- seqcache_hashcmp, NULL);
+ moviecache = IMB_moviecache_create("seqcache", sizeof(SeqCacheKey), seqcache_hashhash, seqcache_hashcmp);
}
key.seq = seq;
@@ -144,3 +244,100 @@ void seq_stripelem_cache_put(
IMB_moviecache_put(moviecache, &key, i);
}
+
+void BKE_sequencer_preprocessed_cache_cleanup(void)
+{
+ SeqPreprocessCacheElem *elem;
+
+ if (!preprocess_cache)
+ return;
+
+ for (elem = preprocess_cache->elems.first; elem; elem = elem->next) {
+ IMB_freeImBuf(elem->ibuf);
+ }
+ BLI_freelistN(&preprocess_cache->elems);
+
+ preprocess_cache->elems.first = preprocess_cache->elems.last = NULL;
+}
+
+static void preprocessed_cache_destruct(void)
+{
+ if (!preprocess_cache)
+ return;
+
+ BKE_sequencer_preprocessed_cache_cleanup();
+
+ MEM_freeN(preprocess_cache);
+ preprocess_cache = NULL;
+}
+
+ImBuf *BKE_sequencer_preprocessed_cache_get(SeqRenderData context, Sequence *seq, float cfra, seq_stripelem_ibuf_t type)
+{
+ SeqPreprocessCacheElem *elem;
+
+ if (!preprocess_cache)
+ return NULL;
+
+ if (preprocess_cache->cfra != cfra)
+ return NULL;
+
+ for (elem = preprocess_cache->elems.first; elem; elem = elem->next) {
+ if (elem->seq != seq)
+ continue;
+
+ if (elem->type != type)
+ continue;
+
+ if (seq_cmp_render_data(&elem->context, &context) != 0)
+ continue;
+
+ IMB_refImBuf(elem->ibuf);
+ return elem->ibuf;
+ }
+
+ return NULL;
+}
+
+void BKE_sequencer_preprocessed_cache_put(SeqRenderData context, Sequence *seq, float cfra, seq_stripelem_ibuf_t type, ImBuf *ibuf)
+{
+ SeqPreprocessCacheElem *elem;
+
+ if (!preprocess_cache) {
+ preprocess_cache = MEM_callocN(sizeof(SeqPreprocessCache), "sequencer preprocessed cache");
+ }
+ else {
+ if (preprocess_cache->cfra != cfra)
+ BKE_sequencer_preprocessed_cache_cleanup();
+ }
+
+ elem = MEM_callocN(sizeof(SeqPreprocessCacheElem), "sequencer preprocessed cache element");
+
+ elem->seq = seq;
+ elem->type = type;
+ elem->context = context;
+ elem->ibuf = ibuf;
+
+ preprocess_cache->cfra = cfra;
+
+ IMB_refImBuf(ibuf);
+
+ BLI_addtail(&preprocess_cache->elems, elem);
+}
+
+void BKE_sequencer_preprocessed_cache_cleanup_sequence(Sequence *seq)
+{
+ SeqPreprocessCacheElem *elem, *elem_next;
+
+ if (!preprocess_cache)
+ return;
+
+ for (elem = preprocess_cache->elems.first; elem; elem = elem_next) {
+ elem_next = elem->next;
+
+ if (elem->seq == seq) {
+ IMB_freeImBuf(elem->ibuf);
+
+ BLI_freelinkN(&preprocess_cache->elems, elem);
+ }
+ }
+}
diff --git a/source/blender/blenkernel/intern/seqeffects.c b/source/blender/blenkernel/intern/seqeffects.c
index 6e5149d7924..33519483843 100644
--- a/source/blender/blenkernel/intern/seqeffects.c
+++ b/source/blender/blenkernel/intern/seqeffects.c
@@ -49,16 +49,47 @@
#include "BKE_main.h"
#include "BKE_sequencer.h"
#include "BKE_texture.h"
-#include "BKE_utildefines.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
+#include "IMB_colormanagement.h"
#include "RNA_access.h"
-/* **** XXX **** */
+static void slice_get_byte_buffers(const SeqRenderData *context, const ImBuf *ibuf1, const ImBuf *ibuf2,
+ const ImBuf *ibuf3, const ImBuf *out, int start_line, unsigned char **rect1,
+ unsigned char **rect2, unsigned char **rect3, unsigned char **rect_out)
+{
+ int offset = 4 * start_line * context->rectx;
+
+ *rect1 = (unsigned char*) ibuf1->rect + offset;
+ *rect_out = (unsigned char*) out->rect + offset;
+
+ if (ibuf2)
+ *rect2 = (unsigned char*) ibuf2->rect + offset;
+
+ if (ibuf3)
+ *rect3 = (unsigned char*) ibuf3->rect + offset;
+}
+
+static void slice_get_float_buffers(const SeqRenderData *context, const ImBuf *ibuf1, const ImBuf *ibuf2,
+ const ImBuf *ibuf3, const ImBuf *out, int start_line,
+ float **rect1, float **rect2, float **rect3, float **rect_out)
+{
+ int offset = 4 * start_line * context->rectx;
+
+ *rect1 = ibuf1->rect_float + offset;
+ *rect_out = out->rect_float + offset;
+
+ if (ibuf2)
+ *rect2 = ibuf2->rect_float + offset;
+
+ if (ibuf3)
+ *rect3 = ibuf3->rect_float + offset;
+}
+
+/*********************** Glow effect *************************/
-/* Glow effect */
enum {
GlowR = 0,
GlowG = 1,
@@ -66,12 +97,9 @@ enum {
GlowA = 3
};
-static ImBuf *prepare_effect_imbufs(
- SeqRenderData context,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3)
+static ImBuf *prepare_effect_imbufs(SeqRenderData context, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *ibuf3)
{
- struct ImBuf *out;
+ ImBuf *out;
int x = context.rectx;
int y = context.recty;
@@ -92,13 +120,13 @@ static ImBuf *prepare_effect_imbufs(
}
if (ibuf1 && !ibuf1->rect_float && out->rect_float) {
- IMB_float_from_rect_simple(ibuf1);
+ BKE_sequencer_imbuf_to_sequencer_space(context.scene, ibuf1, TRUE);
}
if (ibuf2 && !ibuf2->rect_float && out->rect_float) {
- IMB_float_from_rect_simple(ibuf2);
+ BKE_sequencer_imbuf_to_sequencer_space(context.scene, ibuf2, TRUE);
}
if (ibuf3 && !ibuf3->rect_float && out->rect_float) {
- IMB_float_from_rect_simple(ibuf3);
+ BKE_sequencer_imbuf_to_sequencer_space(context.scene, ibuf3, TRUE);
}
if (ibuf1 && !ibuf1->rect && !out->rect_float) {
@@ -110,13 +138,11 @@ static ImBuf *prepare_effect_imbufs(
if (ibuf3 && !ibuf3->rect && !out->rect_float) {
IMB_rect_from_float(ibuf3);
}
-
+
return out;
}
-/* **********************************************************************
- * ALPHA OVER
- * ********************************************************************** */
+/*********************** Alpha Over *************************/
static void init_alpha_over_or_under(Sequence *seq)
{
@@ -127,23 +153,21 @@ static void init_alpha_over_or_under(Sequence *seq)
seq->seq1 = seq2;
}
-static void do_alphaover_effect_byte(float facf0, float facf1, int x, int y,
- char *rect1, char *rect2, char *out)
+static void do_alphaover_effect_byte(float facf0, float facf1, int x, int y, char *rect1, char *rect2, char *out)
{
int fac2, mfac, fac, fac4;
int xo, tempc;
char *rt1, *rt2, *rt;
xo = x;
- rt1 = (char *)rect1;
- rt2 = (char *)rect2;
- rt = (char *)out;
+ rt1 = (char *) rect1;
+ rt2 = (char *) rect2;
+ rt = (char *) out;
- fac2 = (int)(256.0f * facf0);
- fac4 = (int)(256.0f * facf1);
+ fac2 = (int) (256.0f * facf0);
+ fac4 = (int) (256.0f * facf1);
while (y--) {
-
x = xo;
while (x--) {
@@ -152,8 +176,8 @@ static void do_alphaover_effect_byte(float facf0, float facf1, int x, int y,
fac = fac2;
mfac = 256 - ( (fac2 * rt1[3]) >> 8);
- if (fac == 0) *( (unsigned int *)rt) = *( (unsigned int *)rt2);
- else if (mfac == 0) *( (unsigned int *)rt) = *( (unsigned int *)rt1);
+ if (fac == 0) *( (unsigned int *) rt) = *( (unsigned int *) rt2);
+ else if (mfac == 0) *( (unsigned int *) rt) = *( (unsigned int *) rt1);
else {
tempc = (fac * rt1[0] + mfac * rt2[0]) >> 8;
if (tempc > 255) rt[0] = 255; else rt[0] = tempc;
@@ -172,12 +196,11 @@ static void do_alphaover_effect_byte(float facf0, float facf1, int x, int y,
x = xo;
while (x--) {
-
fac = fac4;
mfac = 256 - ( (fac4 * rt1[3]) >> 8);
- if (fac == 0) *( (unsigned int *)rt) = *( (unsigned int *)rt2);
- else if (mfac == 0) *( (unsigned int *)rt) = *( (unsigned int *)rt1);
+ if (fac == 0) *( (unsigned int *) rt) = *( (unsigned int *) rt2);
+ else if (mfac == 0) *( (unsigned int *) rt) = *( (unsigned int *) rt1);
else {
tempc = (fac * rt1[0] + mfac * rt2[0]) >> 8;
if (tempc > 255) rt[0] = 255; else rt[0] = tempc;
@@ -193,8 +216,7 @@ static void do_alphaover_effect_byte(float facf0, float facf1, int x, int y,
}
}
-static void do_alphaover_effect_float(float facf0, float facf1, int x, int y,
- float *rect1, float *rect2, float *out)
+static void do_alphaover_effect_float(float facf0, float facf1, int x, int y, float *rect1, float *rect2, float *out)
{
float fac2, mfac, fac, fac4;
int xo;
@@ -209,10 +231,8 @@ static void do_alphaover_effect_float(float facf0, float facf1, int x, int y,
fac4 = facf1;
while (y--) {
-
x = xo;
while (x--) {
-
/* rt = rt1 over rt2 (alpha from rt1) */
fac = fac2;
@@ -233,12 +253,12 @@ static void do_alphaover_effect_float(float facf0, float facf1, int x, int y,
rt1 += 4; rt2 += 4; rt += 4;
}
- if (y == 0) break;
+ if (y == 0)
+ break;
y--;
x = xo;
while (x--) {
-
fac = fac4;
mfac = 1.0f - (fac4 * rt1[3]);
@@ -259,37 +279,29 @@ static void do_alphaover_effect_float(float facf0, float facf1, int x, int y,
}
}
-static ImBuf *do_alphaover_effect(
- SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3)
+static void do_alphaover_effect(SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra), float facf0,
+ float facf1, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *UNUSED(ibuf3),
+ int start_line, int total_lines, ImBuf *out)
{
- struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
-
if (out->rect_float) {
- do_alphaover_effect_float(
- facf0, facf1, context.rectx, context.recty,
- ibuf1->rect_float, ibuf2->rect_float,
- out->rect_float);
+ float *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_float_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_alphaover_effect_float(facf0, facf1, context.rectx, total_lines, rect1, rect2, rect_out);
}
else {
- do_alphaover_effect_byte(
- facf0, facf1, context.rectx, context.recty,
- (char *) ibuf1->rect, (char *) ibuf2->rect,
- (char *) out->rect);
+ unsigned char *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_byte_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_alphaover_effect_byte(facf0, facf1, context.rectx, total_lines, (char *) rect1, (char *) rect2, (char *) rect_out);
}
- return out;
}
+/*********************** Alpha Under *************************/
-/* **********************************************************************
- * ALPHA UNDER
- * ********************************************************************** */
-
-static void do_alphaunder_effect_byte(
- float facf0, float facf1, int x, int y, char *rect1,
- char *rect2, char *out)
+static void do_alphaunder_effect_byte(float facf0, float facf1, int x, int y, char *rect1, char *rect2, char *out)
{
int fac2, mfac, fac, fac4;
int xo;
@@ -304,22 +316,20 @@ static void do_alphaunder_effect_byte(
fac4 = (int)(256.0f * facf1);
while (y--) {
-
x = xo;
while (x--) {
-
/* rt = rt1 under rt2 (alpha from rt2) */
- /* this complex optimalisation is because the
+ /* this complex optimization is because the
* 'skybuf' can be crossed in
*/
- if (rt2[3] == 0 && fac2 == 256) *( (unsigned int *)rt) = *( (unsigned int *)rt1);
- else if (rt2[3] == 255) *( (unsigned int *)rt) = *( (unsigned int *)rt2);
+ if (rt2[3] == 0 && fac2 == 256) *( (unsigned int *) rt) = *( (unsigned int *) rt1);
+ else if (rt2[3] == 255) *( (unsigned int *) rt) = *( (unsigned int *) rt2);
else {
mfac = rt2[3];
fac = (fac2 * (256 - mfac)) >> 8;
- if (fac == 0) *( (unsigned int *)rt) = *( (unsigned int *)rt2);
+ if (fac == 0) *( (unsigned int *) rt) = *( (unsigned int *) rt2);
else {
rt[0] = (fac * rt1[0] + mfac * rt2[0]) >> 8;
rt[1] = (fac * rt1[1] + mfac * rt2[1]) >> 8;
@@ -330,14 +340,14 @@ static void do_alphaunder_effect_byte(
rt1 += 4; rt2 += 4; rt += 4;
}
- if (y == 0) break;
+ if (y == 0)
+ break;
y--;
x = xo;
while (x--) {
-
- if (rt2[3] == 0 && fac4 == 256) *( (unsigned int *)rt) = *( (unsigned int *)rt1);
- else if (rt2[3] == 255) *( (unsigned int *)rt) = *( (unsigned int *)rt2);
+ if (rt2[3] == 0 && fac4 == 256) *( (unsigned int *) rt) = *( (unsigned int *) rt1);
+ else if (rt2[3] == 255) *( (unsigned int *) rt) = *( (unsigned int *) rt2);
else {
mfac = rt2[3];
fac = (fac4 * (256 - mfac)) >> 8;
@@ -355,10 +365,7 @@ static void do_alphaunder_effect_byte(
}
}
-
-static void do_alphaunder_effect_float(float facf0, float facf1, int x, int y,
- float *rect1, float *rect2,
- float *out)
+static void do_alphaunder_effect_float(float facf0, float facf1, int x, int y, float *rect1, float *rect2, float *out)
{
float fac2, mfac, fac, fac4;
int xo;
@@ -373,13 +380,11 @@ static void do_alphaunder_effect_float(float facf0, float facf1, int x, int y,
fac4 = facf1;
while (y--) {
-
x = xo;
while (x--) {
-
/* rt = rt1 under rt2 (alpha from rt2) */
- /* this complex optimalisation is because the
+ /* this complex optimization is because the
* 'skybuf' can be crossed in
*/
if (rt2[3] <= 0 && fac2 >= 1.0f) {
@@ -405,15 +410,14 @@ static void do_alphaunder_effect_float(float facf0, float facf1, int x, int y,
rt1 += 4; rt2 += 4; rt += 4;
}
- if (y == 0) break;
+ if (y == 0)
+ break;
y--;
x = xo;
while (x--) {
-
if (rt2[3] <= 0 && fac4 >= 1.0f) {
memcpy(rt, rt1, 4 * sizeof(float));
-
}
else if (rt2[3] >= 1.0f) {
memcpy(rt, rt2, 4 * sizeof(float));
@@ -437,38 +441,29 @@ static void do_alphaunder_effect_float(float facf0, float facf1, int x, int y,
}
}
-static ImBuf *do_alphaunder_effect(
- SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3)
+static void do_alphaunder_effect(SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
+ float facf0, float facf1, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *UNUSED(ibuf3),
+ int start_line, int total_lines, ImBuf *out)
{
- struct ImBuf *out = prepare_effect_imbufs(
- context, ibuf1, ibuf2, ibuf3);
-
if (out->rect_float) {
- do_alphaunder_effect_float(
- facf0, facf1, context.rectx, context.recty,
- ibuf1->rect_float, ibuf2->rect_float,
- out->rect_float);
+ float *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_float_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_alphaunder_effect_float(facf0, facf1, context.rectx, total_lines, rect1, rect2, rect_out);
}
else {
- do_alphaunder_effect_byte(
- facf0, facf1, context.rectx, context.recty,
- (char *) ibuf1->rect, (char *) ibuf2->rect,
- (char *) out->rect);
+ unsigned char *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_byte_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_alphaunder_effect_byte(facf0, facf1, context.rectx, total_lines, (char *) rect1, (char *) rect2, (char *) rect_out);
}
- return out;
}
+/*********************** Cross *************************/
-/* **********************************************************************
- * CROSS
- * ********************************************************************** */
-
-static void do_cross_effect_byte(float facf0, float facf1, int x, int y,
- char *rect1, char *rect2,
- char *out)
+static void do_cross_effect_byte(float facf0, float facf1, int x, int y, char *rect1, char *rect2, char *out)
{
int fac1, fac2, fac3, fac4;
int xo;
@@ -479,16 +474,14 @@ static void do_cross_effect_byte(float facf0, float facf1, int x, int y,
rt2 = rect2;
rt = out;
- fac2 = (int)(256.0f * facf0);
+ fac2 = (int) (256.0f * facf0);
fac1 = 256 - fac2;
- fac4 = (int)(256.0f * facf1);
+ fac4 = (int) (256.0f * facf1);
fac3 = 256 - fac4;
while (y--) {
-
x = xo;
while (x--) {
-
rt[0] = (fac1 * rt1[0] + fac2 * rt2[0]) >> 8;
rt[1] = (fac1 * rt1[1] + fac2 * rt2[1]) >> 8;
rt[2] = (fac1 * rt1[2] + fac2 * rt2[2]) >> 8;
@@ -497,12 +490,12 @@ static void do_cross_effect_byte(float facf0, float facf1, int x, int y,
rt1 += 4; rt2 += 4; rt += 4;
}
- if (y == 0) break;
+ if (y == 0)
+ break;
y--;
x = xo;
while (x--) {
-
rt[0] = (fac3 * rt1[0] + fac4 * rt2[0]) >> 8;
rt[1] = (fac3 * rt1[1] + fac4 * rt2[1]) >> 8;
rt[2] = (fac3 * rt1[2] + fac4 * rt2[2]) >> 8;
@@ -514,8 +507,7 @@ static void do_cross_effect_byte(float facf0, float facf1, int x, int y,
}
}
-static void do_cross_effect_float(float facf0, float facf1, int x, int y,
- float *rect1, float *rect2, float *out)
+static void do_cross_effect_float(float facf0, float facf1, int x, int y, float *rect1, float *rect2, float *out)
{
float fac1, fac2, fac3, fac4;
int xo;
@@ -532,10 +524,8 @@ static void do_cross_effect_float(float facf0, float facf1, int x, int y,
fac3 = 1.0f - fac4;
while (y--) {
-
x = xo;
while (x--) {
-
rt[0] = fac1 * rt1[0] + fac2 * rt2[0];
rt[1] = fac1 * rt1[1] + fac2 * rt2[1];
rt[2] = fac1 * rt1[2] + fac2 * rt2[2];
@@ -544,12 +534,12 @@ static void do_cross_effect_float(float facf0, float facf1, int x, int y,
rt1 += 4; rt2 += 4; rt += 4;
}
- if (y == 0) break;
+ if (y == 0)
+ break;
y--;
x = xo;
while (x--) {
-
rt[0] = fac3 * rt1[0] + fac4 * rt2[0];
rt[1] = fac3 * rt1[1] + fac4 * rt2[1];
rt[2] = fac3 * rt1[2] + fac4 * rt2[2];
@@ -561,36 +551,27 @@ static void do_cross_effect_float(float facf0, float facf1, int x, int y,
}
}
-/* careful: also used by speed effect! */
-
-static ImBuf *do_cross_effect(
- SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3)
+static void do_cross_effect(SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
+ float facf0, float facf1, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *UNUSED(ibuf3),
+ int start_line, int total_lines, ImBuf *out)
{
- struct ImBuf *out = prepare_effect_imbufs(
- context, ibuf1, ibuf2, ibuf3);
-
if (out->rect_float) {
- do_cross_effect_float(
- facf0, facf1, context.rectx, context.recty,
- ibuf1->rect_float, ibuf2->rect_float,
- out->rect_float);
+ float *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_float_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_cross_effect_float(facf0, facf1, context.rectx, total_lines, rect1, rect2, rect_out);
}
else {
- do_cross_effect_byte(
- facf0, facf1, context.rectx, context.recty,
- (char *) ibuf1->rect, (char *) ibuf2->rect,
- (char *) out->rect);
+ unsigned char *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_byte_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_cross_effect_byte(facf0, facf1, context.rectx, total_lines, (char *) rect1, (char *) rect2, (char *) rect_out);
}
- return out;
}
-
-/* **********************************************************************
- * GAMMA CROSS
- * ********************************************************************** */
+/*********************** Gamma Cross *************************/
/* copied code from initrender.c */
static unsigned short gamtab[65536];
@@ -614,39 +595,36 @@ static void makeGammaTables(float gamma)
/* we need two tables: one forward, one backward */
int i;
- valid_gamma = gamma;
- valid_inv_gamma = 1.0f / gamma;
+ valid_gamma = gamma;
+ valid_inv_gamma = 1.0f / gamma;
color_step = 1.0f / RE_GAMMA_TABLE_SIZE;
inv_color_step = (float) RE_GAMMA_TABLE_SIZE;
- /* We could squeeze out the two range tables to gain some memory. */
+ /* We could squeeze out the two range tables to gain some memory */
for (i = 0; i < RE_GAMMA_TABLE_SIZE; i++) {
- color_domain_table[i] = i * color_step;
- gamma_range_table[i] = pow(color_domain_table[i],
- valid_gamma);
- inv_gamma_range_table[i] = pow(color_domain_table[i],
- valid_inv_gamma);
- }
-
- /* The end of the table should match 1.0 carefully. In order to avoid */
- /* rounding errors, we just set this explicitly. The last segment may */
- /* have a different length than the other segments, but our */
- /* interpolation is insensitive to that. */
- color_domain_table[RE_GAMMA_TABLE_SIZE] = 1.0;
+ color_domain_table[i] = i * color_step;
+ gamma_range_table[i] = pow(color_domain_table[i], valid_gamma);
+ inv_gamma_range_table[i] = pow(color_domain_table[i], valid_inv_gamma);
+ }
+
+ /* The end of the table should match 1.0 carefully. In order to avoid
+ * rounding errors, we just set this explicitly. The last segment may
+ * have a different length than the other segments, but our
+ * interpolation is insensitive to that
+ */
+ color_domain_table[RE_GAMMA_TABLE_SIZE] = 1.0;
gamma_range_table[RE_GAMMA_TABLE_SIZE] = 1.0;
inv_gamma_range_table[RE_GAMMA_TABLE_SIZE] = 1.0;
- /* To speed up calculations, we make these calc factor tables. They are */
- /* multiplication factors used in scaling the interpolation. */
+ /* To speed up calculations, we make these calc factor tables. They are
+ * multiplication factors used in scaling the interpolation
+ */
for (i = 0; i < RE_GAMMA_TABLE_SIZE; i++) {
- gamfactor_table[i] = inv_color_step *
- (gamma_range_table[i + 1] - gamma_range_table[i]);
- inv_gamfactor_table[i] = inv_color_step *
- (inv_gamma_range_table[i + 1] - inv_gamma_range_table[i]);
+ gamfactor_table[i] = inv_color_step * (gamma_range_table[i + 1] - gamma_range_table[i]);
+ inv_gamfactor_table[i] = inv_color_step * (inv_gamma_range_table[i + 1] - inv_gamma_range_table[i]);
}
-} /* end of void makeGammaTables(float gamma) */
-
+}
static float gammaCorrect(float c)
{
@@ -654,17 +632,17 @@ static float gammaCorrect(float c)
float res = 0.0;
i = floor(c * inv_color_step);
- /* Clip to range [0, 1]: outside, just do the complete calculation. */
- /* We may have some performance problems here. Stretching up the LUT */
- /* may help solve that, by exchanging LUT size for the interpolation. */
- /* Negative colors are explicitly handled. */
+ /* Clip to range [0, 1]: outside, just do the complete calculation.
+ * We may have some performance problems here. Stretching up the LUT
+ * may help solve that, by exchanging LUT size for the interpolation.
+ * Negative colors are explicitly handled.
+ */
if (i < 0) res = -pow(abs(c), valid_gamma);
else if (i >= RE_GAMMA_TABLE_SIZE) res = pow(c, valid_gamma);
- else res = gamma_range_table[i] +
- ( (c - color_domain_table[i]) * gamfactor_table[i]);
+ else res = gamma_range_table[i] + ( (c - color_domain_table[i]) * gamfactor_table[i]);
return res;
-} /* end of float gammaCorrect(float col) */
+}
/* ------------------------------------------------------------------------- */
@@ -674,15 +652,13 @@ static float invGammaCorrect(float col)
float res = 0.0;
i = floor(col * inv_color_step);
- /* Negative colors are explicitly handled. */
+ /* Negative colors are explicitly handled */
if (i < 0) res = -pow(abs(col), valid_inv_gamma);
else if (i >= RE_GAMMA_TABLE_SIZE) res = pow(col, valid_inv_gamma);
- else res = inv_gamma_range_table[i] +
- ( (col - color_domain_table[i]) * inv_gamfactor_table[i]);
+ else res = inv_gamma_range_table[i] + ( (col - color_domain_table[i]) * inv_gamfactor_table[i]);
return res;
-} /* end of float invGammaCorrect(float col) */
-
+}
static void gamtabs(float gamma)
{
@@ -708,7 +684,6 @@ static void gamtabs(float gamma)
igamtab1[a - 1] = (65535.0 * pow(val, gamma)) - 1;
}
}
-
}
static void build_gammatabs(void)
@@ -732,29 +707,24 @@ static void free_gammacross(Sequence *UNUSED(seq))
{
}
-static void do_gammacross_effect_byte(float facf0, float UNUSED(facf1),
- int x, int y,
- unsigned char *rect1,
- unsigned char *rect2,
- unsigned char *out)
+static void do_gammacross_effect_byte(float facf0, float UNUSED(facf1), int x, int y, unsigned char *rect1,
+ unsigned char *rect2, unsigned char *out)
{
int fac1, fac2, col;
int xo;
unsigned char *rt1, *rt2, *rt;
xo = x;
- rt1 = (unsigned char *)rect1;
- rt2 = (unsigned char *)rect2;
- rt = (unsigned char *)out;
+ rt1 = (unsigned char *) rect1;
+ rt2 = (unsigned char *) rect2;
+ rt = (unsigned char *) out;
fac2 = (int)(256.0f * facf0);
fac1 = 256 - fac2;
while (y--) {
-
x = xo;
while (x--) {
-
col = (fac1 * igamtab1[rt1[0]] + fac2 * igamtab1[rt2[0]]) >> 8;
if (col > 65535) rt[0] = 255; else rt[0] = ( (char *)(gamtab + col))[MOST_SIG_BYTE];
col = (fac1 * igamtab1[rt1[1]] + fac2 * igamtab1[rt2[1]]) >> 8;
@@ -767,12 +737,12 @@ static void do_gammacross_effect_byte(float facf0, float UNUSED(facf1),
rt1 += 4; rt2 += 4; rt += 4;
}
- if (y == 0) break;
+ if (y == 0)
+ break;
y--;
x = xo;
while (x--) {
-
col = (fac1 * igamtab1[rt1[0]] + fac2 * igamtab1[rt2[0]]) >> 8;
if (col > 65535) rt[0] = 255; else rt[0] = ( (char *)(gamtab + col))[MOST_SIG_BYTE];
col = (fac1 * igamtab1[rt1[1]] + fac2 * igamtab1[rt2[1]]) >> 8;
@@ -785,13 +755,10 @@ static void do_gammacross_effect_byte(float facf0, float UNUSED(facf1),
rt1 += 4; rt2 += 4; rt += 4;
}
}
-
}
-static void do_gammacross_effect_float(float facf0, float UNUSED(facf1),
- int x, int y,
- float *rect1, float *rect2,
- float *out)
+static void do_gammacross_effect_float(float facf0, float UNUSED(facf1), int x, int y, float *rect1,
+ float *rect2, float *out)
{
float fac1, fac2;
int xo;
@@ -806,62 +773,56 @@ static void do_gammacross_effect_float(float facf0, float UNUSED(facf1),
fac1 = 1.0f - fac2;
while (y--) {
-
x = xo * 4;
while (x--) {
-
- *rt = gammaCorrect(
- fac1 * invGammaCorrect(*rt1) + fac2 * invGammaCorrect(*rt2));
+ *rt = gammaCorrect(fac1 * invGammaCorrect(*rt1) + fac2 * invGammaCorrect(*rt2));
rt1++; rt2++; rt++;
}
- if (y == 0) break;
+ if (y == 0)
+ break;
y--;
x = xo * 4;
while (x--) {
-
- *rt = gammaCorrect(
- fac1 * invGammaCorrect(*rt1) + fac2 * invGammaCorrect(*rt2));
+ *rt = gammaCorrect(fac1 * invGammaCorrect(*rt1) + fac2 * invGammaCorrect(*rt2));
rt1++; rt2++; rt++;
}
}
}
-static ImBuf *do_gammacross_effect(
- SeqRenderData context,
- Sequence *UNUSED(seq), float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3)
+static struct ImBuf *gammacross_init_execution(SeqRenderData context, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *ibuf3)
{
- struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
-
+ ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
build_gammatabs();
+ return out;
+}
+
+static void do_gammacross_effect(SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
+ float facf0, float facf1, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *UNUSED(ibuf3),
+ int start_line, int total_lines, ImBuf *out)
+{
if (out->rect_float) {
- do_gammacross_effect_float(
- facf0, facf1, context.rectx, context.recty,
- ibuf1->rect_float, ibuf2->rect_float,
- out->rect_float);
+ float *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_float_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_gammacross_effect_float(facf0, facf1, context.rectx, total_lines, rect1, rect2, rect_out);
}
else {
- do_gammacross_effect_byte(
- facf0, facf1, context.rectx, context.recty,
- (unsigned char *) ibuf1->rect, (unsigned char *) ibuf2->rect,
- (unsigned char *) out->rect);
+ unsigned char *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_byte_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_gammacross_effect_byte(facf0, facf1, context.rectx, total_lines, rect1, rect2, rect_out);
}
- return out;
}
+/*********************** Add *************************/
-/* **********************************************************************
- * ADD
- * ********************************************************************** */
-
-static void do_add_effect_byte(float facf0, float facf1, int x, int y,
- unsigned char *rect1, unsigned char *rect2,
+static void do_add_effect_byte(float facf0, float facf1, int x, int y, unsigned char *rect1, unsigned char *rect2,
unsigned char *out)
{
int col, xo, fac1, fac3;
@@ -876,10 +837,9 @@ static void do_add_effect_byte(float facf0, float facf1, int x, int y,
fac3 = (int)(256.0f * facf1);
while (y--) {
-
x = xo;
- while (x--) {
+ while (x--) {
col = rt1[0] + ((fac1 * rt2[0]) >> 8);
if (col > 255) rt[0] = 255; else rt[0] = col;
col = rt1[1] + ((fac1 * rt2[1]) >> 8);
@@ -892,12 +852,12 @@ static void do_add_effect_byte(float facf0, float facf1, int x, int y,
rt1 += 4; rt2 += 4; rt += 4;
}
- if (y == 0) break;
+ if (y == 0)
+ break;
y--;
x = xo;
while (x--) {
-
col = rt1[0] + ((fac3 * rt2[0]) >> 8);
if (col > 255) rt[0] = 255; else rt[0] = col;
col = rt1[1] + ((fac3 * rt2[1]) >> 8);
@@ -912,9 +872,7 @@ static void do_add_effect_byte(float facf0, float facf1, int x, int y,
}
}
-static void do_add_effect_float(float facf0, float facf1, int x, int y,
- float *rect1, float *rect2,
- float *out)
+static void do_add_effect_float(float facf0, float facf1, int x, int y, float *rect1, float *rect2, float *out)
{
int xo;
float fac1, fac3;
@@ -929,7 +887,6 @@ static void do_add_effect_float(float facf0, float facf1, int x, int y,
fac3 = facf1;
while (y--) {
-
x = xo * 4;
while (x--) {
*rt = *rt1 + fac1 * (*rt2);
@@ -937,7 +894,8 @@ static void do_add_effect_float(float facf0, float facf1, int x, int y,
rt1++; rt2++; rt++;
}
- if (y == 0) break;
+ if (y == 0)
+ break;
y--;
x = xo * 4;
@@ -949,54 +907,43 @@ static void do_add_effect_float(float facf0, float facf1, int x, int y,
}
}
-static ImBuf *do_add_effect(SeqRenderData context,
- Sequence *UNUSED(seq), float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3)
+static void do_add_effect(SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra), float facf0, float facf1,
+ ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *UNUSED(ibuf3), int start_line, int total_lines, ImBuf *out)
{
- struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
-
if (out->rect_float) {
- do_add_effect_float(
- facf0, facf1, context.rectx, context.recty,
- ibuf1->rect_float, ibuf2->rect_float,
- out->rect_float);
+ float *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_float_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_add_effect_float(facf0, facf1, context.rectx, total_lines, rect1, rect2, rect_out);
}
else {
- do_add_effect_byte(
- facf0, facf1, context.rectx, context.recty,
- (unsigned char *) ibuf1->rect, (unsigned char *) ibuf2->rect,
- (unsigned char *) out->rect);
+ unsigned char *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_byte_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_add_effect_byte(facf0, facf1, context.rectx, total_lines, rect1, rect2, rect_out);
}
- return out;
}
+/*********************** Sub *************************/
-/* **********************************************************************
- * SUB
- * ********************************************************************** */
-
-static void do_sub_effect_byte(float facf0, float facf1,
- int x, int y,
- char *rect1, char *rect2, char *out)
+static void do_sub_effect_byte(float facf0, float facf1, int x, int y, char *rect1, char *rect2, char *out)
{
int col, xo, fac1, fac3;
char *rt1, *rt2, *rt;
xo = x;
- rt1 = (char *)rect1;
- rt2 = (char *)rect2;
- rt = (char *)out;
+ rt1 = (char *) rect1;
+ rt2 = (char *) rect2;
+ rt = (char *) out;
- fac1 = (int)(256.0f * facf0);
- fac3 = (int)(256.0f * facf1);
+ fac1 = (int) (256.0f * facf0);
+ fac3 = (int) (256.0f * facf1);
while (y--) {
-
x = xo;
while (x--) {
-
col = rt1[0] - ((fac1 * rt2[0]) >> 8);
if (col < 0) rt[0] = 0; else rt[0] = col;
col = rt1[1] - ((fac1 * rt2[1]) >> 8);
@@ -1009,12 +956,12 @@ static void do_sub_effect_byte(float facf0, float facf1,
rt1 += 4; rt2 += 4; rt += 4;
}
- if (y == 0) break;
+ if (y == 0)
+ break;
y--;
x = xo;
while (x--) {
-
col = rt1[0] - ((fac3 * rt2[0]) >> 8);
if (col < 0) rt[0] = 0; else rt[0] = col;
col = rt1[1] - ((fac3 * rt2[1]) >> 8);
@@ -1029,9 +976,7 @@ static void do_sub_effect_byte(float facf0, float facf1,
}
}
-static void do_sub_effect_float(float facf0, float facf1, int x, int y,
- float *rect1, float *rect2,
- float *out)
+static void do_sub_effect_float(float facf0, float facf1, int x, int y, float *rect1, float *rect2, float *out)
{
int xo;
float fac1, fac3;
@@ -1046,7 +991,6 @@ static void do_sub_effect_float(float facf0, float facf1, int x, int y,
fac3 = facf1;
while (y--) {
-
x = xo * 4;
while (x--) {
*rt = *rt1 - fac1 * (*rt2);
@@ -1054,7 +998,8 @@ static void do_sub_effect_float(float facf0, float facf1, int x, int y,
rt1++; rt2++; rt++;
}
- if (y == 0) break;
+ if (y == 0)
+ break;
y--;
x = xo * 4;
@@ -1066,40 +1011,32 @@ static void do_sub_effect_float(float facf0, float facf1, int x, int y,
}
}
-static ImBuf *do_sub_effect(
- SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3)
+static void do_sub_effect(SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra), float facf0, float facf1,
+ ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *UNUSED(ibuf3), int start_line, int total_lines, ImBuf *out)
{
- struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
-
if (out->rect_float) {
- do_sub_effect_float(
- facf0, facf1, context.rectx, context.recty,
- ibuf1->rect_float, ibuf2->rect_float,
- out->rect_float);
+ float *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_float_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_sub_effect_float(facf0, facf1, context.rectx, total_lines, rect1, rect2, rect_out);
}
else {
- do_sub_effect_byte(
- facf0, facf1, context.rectx, context.recty,
- (char *) ibuf1->rect, (char *) ibuf2->rect,
- (char *) out->rect);
+ unsigned char *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_byte_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_sub_effect_byte(facf0, facf1, context.rectx, total_lines, (char *) rect1, (char *) rect2, (char *) rect_out);
}
- return out;
}
-/* **********************************************************************
- * DROP
- * ********************************************************************** */
+/*********************** Drop *************************/
/* Must be > 0 or add precopy, etc to the function */
#define XOFF 8
#define YOFF 8
-static void do_drop_effect_byte(float facf0, float facf1, int x, int y,
- char *rect2i, char *rect1i,
- char *outi)
+static void do_drop_effect_byte(float facf0, float facf1, int x, int y, char *rect2i, char *rect1i, char *outi)
{
int height, width, temp, fac, fac1, fac2;
char *rt1, *rt2, *out;
@@ -1108,8 +1045,8 @@ static void do_drop_effect_byte(float facf0, float facf1, int x, int y,
width = x;
height = y;
- fac1 = (int)(70.0f * facf0);
- fac2 = (int)(70.0f * facf1);
+ fac1 = (int) (70.0f * facf0);
+ fac2 = (int) (70.0f * facf1);
rt2 = (char *) (rect2i + YOFF * width);
rt1 = (char *) rect1i;
@@ -1137,9 +1074,7 @@ static void do_drop_effect_byte(float facf0, float facf1, int x, int y,
memcpy(out, rt1, sizeof(int) * YOFF * width);
}
-static void do_drop_effect_float(float facf0, float facf1, int x, int y,
- float *rect2i, float *rect1i,
- float *outi)
+static void do_drop_effect_float(float facf0, float facf1, int x, int y, float *rect2i, float *rect1i, float *outi)
{
int height, width;
float temp, fac, fac1, fac2;
@@ -1178,12 +1113,9 @@ static void do_drop_effect_float(float facf0, float facf1, int x, int y,
memcpy(out, rt1, 4 * sizeof(float) * YOFF * width);
}
-/* **********************************************************************
- * MUL
- * ********************************************************************** */
+/*********************** Mul *************************/
-static void do_mul_effect_byte(float facf0, float facf1, int x, int y,
- unsigned char *rect1, unsigned char *rect2,
+static void do_mul_effect_byte(float facf0, float facf1, int x, int y, unsigned char *rect1, unsigned char *rect2,
unsigned char *out)
{
int xo, fac1, fac3;
@@ -1231,9 +1163,7 @@ static void do_mul_effect_byte(float facf0, float facf1, int x, int y,
}
}
-static void do_mul_effect_float(float facf0, float facf1, int x, int y,
- float *rect1, float *rect2,
- float *out)
+static void do_mul_effect_float(float facf0, float facf1, int x, int y, float *rect1, float *rect2, float *out)
{
int xo;
float fac1, fac3;
@@ -1252,10 +1182,8 @@ static void do_mul_effect_float(float facf0, float facf1, int x, int y,
*/
while (y--) {
-
x = xo;
while (x--) {
-
rt[0] = rt1[0] + fac1 * rt1[0] * (rt2[0] - 1.0f);
rt[1] = rt1[1] + fac1 * rt1[1] * (rt2[1] - 1.0f);
rt[2] = rt1[2] + fac1 * rt1[2] * (rt2[2] - 1.0f);
@@ -1264,12 +1192,12 @@ static void do_mul_effect_float(float facf0, float facf1, int x, int y,
rt1 += 4; rt2 += 4; rt += 4;
}
- if (y == 0) break;
+ if (y == 0)
+ break;
y--;
x = xo;
while (x--) {
-
rt[0] = rt1[0] + fac3 * rt1[0] * (rt2[0] - 1.0f);
rt[1] = rt1[1] + fac3 * rt1[1] * (rt2[1] - 1.0f);
rt[2] = rt1[2] + fac3 * rt1[2] * (rt2[2] - 1.0f);
@@ -1280,33 +1208,26 @@ static void do_mul_effect_float(float facf0, float facf1, int x, int y,
}
}
-static ImBuf *do_mul_effect(
- SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3)
+static void do_mul_effect(SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra), float facf0, float facf1,
+ ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *UNUSED(ibuf3), int start_line, int total_lines, ImBuf *out)
{
- struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
-
if (out->rect_float) {
- do_mul_effect_float(
- facf0, facf1, context.rectx, context.recty,
- ibuf1->rect_float, ibuf2->rect_float,
- out->rect_float);
+ float *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_float_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_mul_effect_float(facf0, facf1, context.rectx, total_lines, rect1, rect2, rect_out);
}
else {
- do_mul_effect_byte(
- facf0, facf1, context.rectx, context.recty,
- (unsigned char *) ibuf1->rect, (unsigned char *) ibuf2->rect,
- (unsigned char *) out->rect);
- }
+ unsigned char *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
- return out;
+ slice_get_byte_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_mul_effect_byte(facf0, facf1, context.rectx, total_lines, rect1, rect2, rect_out);
+ }
}
-/* **********************************************************************
- * WIPE
- * ********************************************************************** */
+/*********************** Wipe *************************/
typedef struct WipeZone {
float angle;
@@ -1326,7 +1247,7 @@ static void precalc_wipe_zone(WipeZone *wipezone, WipeVars *wipe, int xo, int yo
wipezone->pythangle = 1.0f / sqrtf(wipezone->angle * wipezone->angle + 1.0f);
}
-// This function calculates the blur band for the wipe effects
+/* This function calculates the blur band for the wipe effects */
static float in_band(float width, float dist, int side, int dir)
{
float alpha;
@@ -1348,13 +1269,12 @@ static float in_band(float width, float dist, int side, int dir)
return alpha;
}
-static float check_zone(WipeZone *wipezone, int x, int y,
- Sequence *seq, float facf0)
+static float check_zone(WipeZone *wipezone, int x, int y, Sequence *seq, float facf0)
{
float posx, posy, hyp, hyp2, angle, hwidth, b1, b2, b3, pointdist;
/* some future stuff */
- // float hyp3, hyp4, b4, b5
- float temp1, temp2, temp3, temp4; //some placeholder variables
+ /* float hyp3, hyp4, b4, b5 */
+ float temp1, temp2, temp3, temp4; /* some placeholder variables */
int xo = wipezone->xo;
int yo = wipezone->yo;
float halfx = xo * 0.5f;
@@ -1412,9 +1332,9 @@ static float check_zone(WipeZone *wipezone, int x, int y,
case DO_DOUBLE_WIPE:
if (!wipe->forward)
- facf0 = 1.0f - facf0; // Go the other direction
+ facf0 = 1.0f - facf0; /* Go the other direction */
- width = wipezone->width; // calculate the blur width
+ width = wipezone->width; /* calculate the blur width */
hwidth = width * 0.5f;
if (angle == 0) {
b1 = posy * 0.5f;
@@ -1586,8 +1506,10 @@ static float check_zone(WipeZone *wipezone, int x, int y,
static void init_wipe_effect(Sequence *seq)
{
- if (seq->effectdata) MEM_freeN(seq->effectdata);
- seq->effectdata = MEM_callocN(sizeof(struct WipeVars), "wipevars");
+ if (seq->effectdata)
+ MEM_freeN(seq->effectdata);
+
+ seq->effectdata = MEM_callocN(sizeof(WipeVars), "wipevars");
}
static int num_inputs_wipe(void)
@@ -1597,7 +1519,9 @@ static int num_inputs_wipe(void)
static void free_wipe_effect(Sequence *seq)
{
- if (seq->effectdata) MEM_freeN(seq->effectdata);
+ if (seq->effectdata)
+ MEM_freeN(seq->effectdata);
+
seq->effectdata = NULL;
}
@@ -1606,9 +1530,7 @@ static void copy_wipe_effect(Sequence *dst, Sequence *src)
dst->effectdata = MEM_dupallocN(src->effectdata);
}
-static void do_wipe_effect_byte(Sequence *seq, float facf0, float UNUSED(facf1),
- int x, int y,
- unsigned char *rect1,
+static void do_wipe_effect_byte(Sequence *seq, float facf0, float UNUSED(facf1), int x, int y, unsigned char *rect1,
unsigned char *rect2, unsigned char *out)
{
WipeZone wipezone;
@@ -1667,9 +1589,7 @@ static void do_wipe_effect_byte(Sequence *seq, float facf0, float UNUSED(facf1),
}
}
-static void do_wipe_effect_float(Sequence *seq, float facf0, float UNUSED(facf1),
- int x, int y,
- float *rect1,
+static void do_wipe_effect_float(Sequence *seq, float facf0, float UNUSED(facf1), int x, int y, float *rect1,
float *rect2, float *out)
{
WipeZone wipezone;
@@ -1728,40 +1648,35 @@ static void do_wipe_effect_float(Sequence *seq, float facf0, float UNUSED(facf1)
}
}
-static ImBuf *do_wipe_effect(
- SeqRenderData context, Sequence *seq, float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3)
+static ImBuf *do_wipe_effect(SeqRenderData context, Sequence *seq, float UNUSED(cfra), float facf0, float facf1,
+ ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *ibuf3)
{
- struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
+ ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
if (out->rect_float) {
- do_wipe_effect_float(seq,
- facf0, facf1, context.rectx, context.recty,
- ibuf1->rect_float, ibuf2->rect_float,
- out->rect_float);
+ do_wipe_effect_float(seq, facf0, facf1, context.rectx, context.recty, ibuf1->rect_float,
+ ibuf2->rect_float, out->rect_float);
}
else {
- do_wipe_effect_byte(seq,
- facf0, facf1, context.rectx, context.recty,
- (unsigned char *) ibuf1->rect, (unsigned char *) ibuf2->rect,
- (unsigned char *) out->rect);
+ do_wipe_effect_byte(seq, facf0, facf1, context.rectx, context.recty, (unsigned char *) ibuf1->rect,
+ (unsigned char *) ibuf2->rect, (unsigned char *) out->rect);
}
return out;
}
-/* **********************************************************************
- * TRANSFORM
- * ********************************************************************** */
+
+/*********************** Transform *************************/
+
static void init_transform_effect(Sequence *seq)
{
TransformVars *transform;
- if (seq->effectdata) MEM_freeN(seq->effectdata);
- seq->effectdata = MEM_callocN(sizeof(struct TransformVars), "transformvars");
+ if (seq->effectdata)
+ MEM_freeN(seq->effectdata);
- transform = (TransformVars *)seq->effectdata;
+ seq->effectdata = MEM_callocN(sizeof(TransformVars), "transformvars");
+
+ transform = (TransformVars *) seq->effectdata;
transform->ScalexIni = 1.0f;
transform->ScaleyIni = 1.0f;
@@ -1792,9 +1707,8 @@ static void copy_transform_effect(Sequence *dst, Sequence *src)
dst->effectdata = MEM_dupallocN(src->effectdata);
}
-static void transform_image(int x, int y, struct ImBuf *ibuf1, struct ImBuf *out,
- float scale_x, float scale_y, float translate_x, float translate_y,
- float rotate, int interpolation)
+static void transform_image(int x, int y, ImBuf *ibuf1, ImBuf *out, float scale_x, float scale_y,
+ float translate_x, float translate_y, float rotate, int interpolation)
{
int xo, yo, xi, yi;
float xt, yt, xr, yr;
@@ -1803,30 +1717,29 @@ static void transform_image(int x, int y, struct ImBuf *ibuf1, struct ImBuf *out
xo = x;
yo = y;
- // Rotate
+ /* Rotate */
s = sin(rotate);
c = cos(rotate);
for (yi = 0; yi < yo; yi++) {
for (xi = 0; xi < xo; xi++) {
-
- //translate point
+ /* translate point */
xt = xi - translate_x;
yt = yi - translate_y;
- //rotate point with center ref
+ /* rotate point with center ref */
xr = c * xt + s * yt;
yr = -s * xt + c * yt;
- //scale point with center ref
+ /* scale point with center ref */
xt = xr / scale_x;
yt = yr / scale_y;
- //undo reference center point
+ /* undo reference center point */
xt += (xo / 2.0f);
yt += (yo / 2.0f);
- //interpolate
+ /* interpolate */
switch (interpolation) {
case 0:
neareast_interpolation(ibuf1, out, xt, yt, xi, yi);
@@ -1842,13 +1755,12 @@ static void transform_image(int x, int y, struct ImBuf *ibuf1, struct ImBuf *out
}
}
-static void do_transform(Scene *scene, Sequence *seq, float UNUSED(facf0), int x, int y,
- struct ImBuf *ibuf1, struct ImBuf *out)
+static void do_transform(Scene *scene, Sequence *seq, float UNUSED(facf0), int x, int y, ImBuf *ibuf1, ImBuf *out)
{
- TransformVars *transform = (TransformVars *)seq->effectdata;
+ TransformVars *transform = (TransformVars *) seq->effectdata;
float scale_x, scale_y, translate_x, translate_y, rotate_radians;
- // Scale
+ /* Scale */
if (transform->uniform_scale) {
scale_x = scale_y = transform->ScalexIni;
}
@@ -1857,7 +1769,7 @@ static void do_transform(Scene *scene, Sequence *seq, float UNUSED(facf0), int x
scale_y = transform->ScaleyIni;
}
- // Translate
+ /* Translate */
if (!transform->percent) {
float rd_s = (scene->r.size / 100.0f);
@@ -1868,36 +1780,27 @@ static void do_transform(Scene *scene, Sequence *seq, float UNUSED(facf0), int x
translate_x = x * (transform->xIni / 100.0f) + (x / 2.0f);
translate_y = y * (transform->yIni / 100.0f) + (y / 2.0f);
}
-
- // Rotate
+
+ /* Rotate */
rotate_radians = DEG2RADF(transform->rotIni);
transform_image(x, y, ibuf1, out, scale_x, scale_y, translate_x, translate_y, rotate_radians, transform->interpolation);
}
-static ImBuf *do_transform_effect(
- SeqRenderData context, Sequence *seq, float UNUSED(cfra),
- float facf0, float UNUSED(facf1),
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3)
+static ImBuf *do_transform_effect(SeqRenderData context, Sequence *seq, float UNUSED(cfra), float facf0,
+ float UNUSED(facf1), ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *ibuf3)
{
- struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
+ ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
- do_transform(context.scene, seq, facf0,
- context.rectx, context.recty, ibuf1, out);
+ do_transform(context.scene, seq, facf0, context.rectx, context.recty, ibuf1, out);
return out;
}
+/*********************** Glow *************************/
-/* **********************************************************************
- * GLOW
- * ********************************************************************** */
-
-static void RVBlurBitmap2_byte(unsigned char *map, int width, int height,
- float blur,
- int quality)
+static void RVBlurBitmap2_byte(unsigned char *map, int width, int height, float blur, int quality)
/* MUUUCCH better than the previous blur. */
/* We do the blurring in two passes which is a whole lot faster. */
/* I changed the math arount to implement an actual Gaussian */
@@ -1913,16 +1816,16 @@ static void RVBlurBitmap2_byte(unsigned char *map, int width, int height,
int index, ix, halfWidth;
float fval, k, curColor[3], curColor2[3], weight = 0;
- /* If we're not really blurring, bail out */
+ /* If we're not really blurring, bail out */
if (blur <= 0)
return;
- /* Allocate memory for the tempmap and the blur filter matrix */
+ /*Allocate memory for the tempmap and the blur filter matrix */
temp = MEM_mallocN((width * height * 4), "blurbitmaptemp");
if (!temp)
return;
- /* Allocate memory for the filter elements */
+ /*Allocate memory for the filter elements */
halfWidth = ((quality + 1) * blur);
filter = (float *)MEM_mallocN(sizeof(float) * halfWidth * 2, "blurbitmapfilter");
if (!filter) {
@@ -1930,11 +1833,10 @@ static void RVBlurBitmap2_byte(unsigned char *map, int width, int height,
return;
}
- /* Apparently we're calculating a bell curve */
- /* based on the standard deviation (or radius) */
- /* This code is based on an example */
- /* posted to comp.graphics.algorithms by */
- /* Blancmange (bmange@airdmhor.gen.nz) */
+ /* Apparently we're calculating a bell curve based on the standard deviation (or radius)
+ * This code is based on an example posted to comp.graphics.algorithms by
+ * Blancmange (bmange@airdmhor.gen.nz)
+ */
k = -1.0f / (2.0f * (float)M_PI * blur * blur);
for (ix = 0; ix < halfWidth; ix++) {
@@ -1944,7 +1846,7 @@ static void RVBlurBitmap2_byte(unsigned char *map, int width, int height,
}
filter[0] = weight;
- /* Normalize the array */
+ /* Normalize the array */
fval = 0;
for (ix = 0; ix < halfWidth * 2; ix++)
fval += filter[ix];
@@ -1952,9 +1854,9 @@ static void RVBlurBitmap2_byte(unsigned char *map, int width, int height,
for (ix = 0; ix < halfWidth * 2; ix++)
filter[ix] /= fval;
- /* Blur the rows */
+ /* Blur the rows */
for (y = 0; y < height; y++) {
- /* Do the left & right strips */
+ /* Do the left & right strips */
for (x = 0; x < halfWidth; x++) {
index = (x + y * width) * 4;
fx = 0;
@@ -1967,12 +1869,9 @@ static void RVBlurBitmap2_byte(unsigned char *map, int width, int height,
curColor[1] += map[(i + y * width) * 4 + GlowG] * filter[fx];
curColor[2] += map[(i + y * width) * 4 + GlowB] * filter[fx];
- curColor2[0] += map[(width - 1 - i + y * width) * 4 + GlowR] *
- filter[fx];
- curColor2[1] += map[(width - 1 - i + y * width) * 4 + GlowG] *
- filter[fx];
- curColor2[2] += map[(width - 1 - i + y * width) * 4 + GlowB] *
- filter[fx];
+ curColor2[0] += map[(width - 1 - i + y * width) * 4 + GlowR] * filter[fx];
+ curColor2[1] += map[(width - 1 - i + y * width) * 4 + GlowG] * filter[fx];
+ curColor2[2] += map[(width - 1 - i + y * width) * 4 + GlowB] * filter[fx];
}
fx++;
}
@@ -1985,7 +1884,8 @@ static void RVBlurBitmap2_byte(unsigned char *map, int width, int height,
temp[((width - 1 - x + y * width) * 4) + GlowB] = curColor2[2];
}
- /* Do the main body */
+
+ /* Do the main body */
for (x = halfWidth; x < width - halfWidth; x++) {
index = (x + y * width) * 4;
fx = 0;
@@ -2002,13 +1902,12 @@ static void RVBlurBitmap2_byte(unsigned char *map, int width, int height,
}
}
- /* Swap buffers */
+ /* Swap buffers */
swap = temp; temp = map; map = swap;
-
- /* Blur the columns */
+ /* Blur the columns */
for (x = 0; x < width; x++) {
- /* Do the top & bottom strips */
+ /* Do the top & bottom strips */
for (y = 0; y < halfWidth; y++) {
index = (x + y * width) * 4;
fy = 0;
@@ -2016,18 +1915,15 @@ static void RVBlurBitmap2_byte(unsigned char *map, int width, int height,
zero_v3(curColor2);
for (i = y - halfWidth; i < y + halfWidth; i++) {
if ((i >= 0) && (i < height)) {
- /* Bottom */
+ /* Bottom */
curColor[0] += map[(x + i * width) * 4 + GlowR] * filter[fy];
curColor[1] += map[(x + i * width) * 4 + GlowG] * filter[fy];
curColor[2] += map[(x + i * width) * 4 + GlowB] * filter[fy];
- /* Top */
- curColor2[0] += map[(x + (height - 1 - i) * width) *
- 4 + GlowR] * filter[fy];
- curColor2[1] += map[(x + (height - 1 - i) * width) *
- 4 + GlowG] * filter[fy];
- curColor2[2] += map[(x + (height - 1 - i) * width) *
- 4 + GlowB] * filter[fy];
+ /* Top */
+ curColor2[0] += map[(x + (height - 1 - i) * width) * 4 + GlowR] * filter[fy];
+ curColor2[1] += map[(x + (height - 1 - i) * width) * 4 + GlowG] * filter[fy];
+ curColor2[2] += map[(x + (height - 1 - i) * width) * 4 + GlowB] * filter[fy];
}
fy++;
}
@@ -2038,7 +1934,8 @@ static void RVBlurBitmap2_byte(unsigned char *map, int width, int height,
temp[((x + (height - 1 - y) * width) * 4) + GlowG] = curColor2[1];
temp[((x + (height - 1 - y) * width) * 4) + GlowB] = curColor2[2];
}
- /* Do the main body */
+
+ /* Do the main body */
for (y = halfWidth; y < height - halfWidth; y++) {
index = (x + y * width) * 4;
fy = 0;
@@ -2055,18 +1952,15 @@ static void RVBlurBitmap2_byte(unsigned char *map, int width, int height,
}
}
-
- /* Swap buffers */
+ /* Swap buffers */
swap = temp; temp = map; /* map = swap; */ /* UNUSED */
- /* Tidy up */
+ /* Tidy up */
MEM_freeN(filter);
MEM_freeN(temp);
}
-static void RVBlurBitmap2_float(float *map, int width, int height,
- float blur,
- int quality)
+static void RVBlurBitmap2_float(float *map, int width, int height, float blur, int quality)
/* MUUUCCH better than the previous blur. */
/* We do the blurring in two passes which is a whole lot faster. */
/* I changed the math arount to implement an actual Gaussian */
@@ -2077,21 +1971,21 @@ static void RVBlurBitmap2_float(float *map, int width, int height,
/*=============================== */
{
float *temp = NULL, *swap;
- float *filter = NULL;
+ float *filter = NULL;
int x, y, i, fx, fy;
int index, ix, halfWidth;
float fval, k, curColor[3], curColor2[3], weight = 0;
- /* If we're not really blurring, bail out */
+ /* If we're not really blurring, bail out */
if (blur <= 0)
return;
- /* Allocate memory for the tempmap and the blur filter matrix */
+ /* Allocate memory for the tempmap and the blur filter matrix */
temp = MEM_mallocN((width * height * 4 * sizeof(float)), "blurbitmaptemp");
if (!temp)
return;
- /* Allocate memory for the filter elements */
+ /* Allocate memory for the filter elements */
halfWidth = ((quality + 1) * blur);
filter = (float *)MEM_mallocN(sizeof(float) * halfWidth * 2, "blurbitmapfilter");
if (!filter) {
@@ -2099,11 +1993,10 @@ static void RVBlurBitmap2_float(float *map, int width, int height,
return;
}
- /* Apparently we're calculating a bell curve */
- /* based on the standard deviation (or radius) */
- /* This code is based on an example */
- /* posted to comp.graphics.algorithms by */
- /* Blancmange (bmange@airdmhor.gen.nz) */
+ /* Apparently we're calculating a bell curve based on the standard deviation (or radius)
+ * This code is based on an example posted to comp.graphics.algorithms by
+ * Blancmange (bmange@airdmhor.gen.nz)
+ */
k = -1.0f / (2.0f * (float)M_PI * blur * blur);
@@ -2114,7 +2007,7 @@ static void RVBlurBitmap2_float(float *map, int width, int height,
}
filter[0] = weight;
- /* Normalize the array */
+ /* Normalize the array */
fval = 0;
for (ix = 0; ix < halfWidth * 2; ix++)
fval += filter[ix];
@@ -2122,9 +2015,9 @@ static void RVBlurBitmap2_float(float *map, int width, int height,
for (ix = 0; ix < halfWidth * 2; ix++)
filter[ix] /= fval;
- /* Blur the rows */
+ /* Blur the rows */
for (y = 0; y < height; y++) {
- /* Do the left & right strips */
+ /* Do the left & right strips */
for (x = 0; x < halfWidth; x++) {
index = (x + y * width) * 4;
fx = 0;
@@ -2137,12 +2030,9 @@ static void RVBlurBitmap2_float(float *map, int width, int height,
curColor[1] += map[(i + y * width) * 4 + GlowG] * filter[fx];
curColor[2] += map[(i + y * width) * 4 + GlowB] * filter[fx];
- curColor2[0] += map[(width - 1 - i + y * width) * 4 + GlowR] *
- filter[fx];
- curColor2[1] += map[(width - 1 - i + y * width) * 4 + GlowG] *
- filter[fx];
- curColor2[2] += map[(width - 1 - i + y * width) * 4 + GlowB] *
- filter[fx];
+ curColor2[0] += map[(width - 1 - i + y * width) * 4 + GlowR] * filter[fx];
+ curColor2[1] += map[(width - 1 - i + y * width) * 4 + GlowG] * filter[fx];
+ curColor2[2] += map[(width - 1 - i + y * width) * 4 + GlowB] * filter[fx];
}
fx++;
}
@@ -2155,7 +2045,8 @@ static void RVBlurBitmap2_float(float *map, int width, int height,
temp[((width - 1 - x + y * width) * 4) + GlowB] = curColor2[2];
}
- /* Do the main body */
+
+ /* Do the main body */
for (x = halfWidth; x < width - halfWidth; x++) {
index = (x + y * width) * 4;
fx = 0;
@@ -2172,13 +2063,12 @@ static void RVBlurBitmap2_float(float *map, int width, int height,
}
}
- /* Swap buffers */
+ /* Swap buffers */
swap = temp; temp = map; map = swap;
-
- /* Blur the columns */
+ /* Blur the columns */
for (x = 0; x < width; x++) {
- /* Do the top & bottom strips */
+ /* Do the top & bottom strips */
for (y = 0; y < halfWidth; y++) {
index = (x + y * width) * 4;
fy = 0;
@@ -2186,18 +2076,15 @@ static void RVBlurBitmap2_float(float *map, int width, int height,
zero_v3(curColor2);
for (i = y - halfWidth; i < y + halfWidth; i++) {
if ((i >= 0) && (i < height)) {
- /* Bottom */
+ /* Bottom */
curColor[0] += map[(x + i * width) * 4 + GlowR] * filter[fy];
curColor[1] += map[(x + i * width) * 4 + GlowG] * filter[fy];
curColor[2] += map[(x + i * width) * 4 + GlowB] * filter[fy];
- /* Top */
- curColor2[0] += map[(x + (height - 1 - i) * width) *
- 4 + GlowR] * filter[fy];
- curColor2[1] += map[(x + (height - 1 - i) * width) *
- 4 + GlowG] * filter[fy];
- curColor2[2] += map[(x + (height - 1 - i) * width) *
- 4 + GlowB] * filter[fy];
+ /* Top */
+ curColor2[0] += map[(x + (height - 1 - i) * width) * 4 + GlowR] * filter[fy];
+ curColor2[1] += map[(x + (height - 1 - i) * width) * 4 + GlowG] * filter[fy];
+ curColor2[2] += map[(x + (height - 1 - i) * width) * 4 + GlowB] * filter[fy];
}
fy++;
}
@@ -2208,7 +2095,8 @@ static void RVBlurBitmap2_float(float *map, int width, int height,
temp[((x + (height - 1 - y) * width) * 4) + GlowG] = curColor2[1];
temp[((x + (height - 1 - y) * width) * 4) + GlowB] = curColor2[2];
}
- /* Do the main body */
+
+ /* Do the main body */
for (y = halfWidth; y < height - halfWidth; y++) {
index = (x + y * width) * 4;
fy = 0;
@@ -2225,11 +2113,10 @@ static void RVBlurBitmap2_float(float *map, int width, int height,
}
}
-
- /* Swap buffers */
+ /* Swap buffers */
swap = temp; temp = map; /* map = swap; */ /* UNUSED */
- /* Tidy up */
+ /* Tidy up */
MEM_freeN(filter);
MEM_freeN(temp);
}
@@ -2254,8 +2141,7 @@ static void RVAddBitmaps_byte(unsigned char *a, unsigned char *b, unsigned char
}
}
-static void RVAddBitmaps_float(float *a, float *b, float *c,
- int width, int height)
+static void RVAddBitmaps_float(float *a, float *b, float *c, int width, int height)
{
int x, y, index;
@@ -2270,21 +2156,20 @@ static void RVAddBitmaps_float(float *a, float *b, float *c,
}
}
-/* For each pixel whose total luminance exceeds the threshold, */
-/* Multiply it's value by BOOST and add it to the output map */
-static void RVIsolateHighlights_byte(unsigned char *in, unsigned char *out,
- int width, int height, int threshold,
+/* For each pixel whose total luminance exceeds the threshold,
+ * Multiply it's value by BOOST and add it to the output map
+ */
+static void RVIsolateHighlights_byte(unsigned char *in, unsigned char *out, int width, int height, int threshold,
float boost, float clamp)
{
int x, y, index;
int intensity;
-
for (y = 0; y < height; y++) {
for (x = 0; x < width; x++) {
index = (x + y * width) * 4;
- /* Isolate the intensity */
+ /* Isolate the intensity */
intensity = (in[index + GlowR] + in[index + GlowG] + in[index + GlowB] - threshold);
if (intensity > 0) {
out[index + GlowR] = MIN2(255 * clamp, (in[index + GlowR] * boost * intensity) / 255);
@@ -2302,19 +2187,16 @@ static void RVIsolateHighlights_byte(unsigned char *in, unsigned char *out,
}
}
-static void RVIsolateHighlights_float(float *in, float *out,
- int width, int height, float threshold,
- float boost, float clamp)
+static void RVIsolateHighlights_float(float *in, float *out, int width, int height, float threshold, float boost, float clamp)
{
int x, y, index;
float intensity;
-
for (y = 0; y < height; y++) {
for (x = 0; x < width; x++) {
index = (x + y * width) * 4;
- /* Isolate the intensity */
+ /* Isolate the intensity */
intensity = (in[index + GlowR] + in[index + GlowG] + in[index + GlowB] - threshold);
if (intensity > 0) {
out[index + GlowR] = MIN2(clamp, (in[index + GlowR] * boost * intensity));
@@ -2336,8 +2218,10 @@ static void init_glow_effect(Sequence *seq)
{
GlowVars *glow;
- if (seq->effectdata) MEM_freeN(seq->effectdata);
- seq->effectdata = MEM_callocN(sizeof(struct GlowVars), "glowvars");
+ if (seq->effectdata)
+ MEM_freeN(seq->effectdata);
+
+ seq->effectdata = MEM_callocN(sizeof(GlowVars), "glowvars");
glow = (GlowVars *)seq->effectdata;
glow->fMini = 0.25;
@@ -2355,7 +2239,9 @@ static int num_inputs_glow(void)
static void free_glow_effect(Sequence *seq)
{
- if (seq->effectdata) MEM_freeN(seq->effectdata);
+ if (seq->effectdata)
+ MEM_freeN(seq->effectdata);
+
seq->effectdata = NULL;
}
@@ -2364,10 +2250,8 @@ static void copy_glow_effect(Sequence *dst, Sequence *src)
dst->effectdata = MEM_dupallocN(src->effectdata);
}
-//void do_glow_effect(Cast *cast, float facf0, float facf1, int xo, int yo, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *outbuf, ImBuf *use)
-static void do_glow_effect_byte(Sequence *seq, int render_size, float facf0, float UNUSED(facf1),
- int x, int y, char *rect1,
- char *UNUSED(rect2), char *out)
+static void do_glow_effect_byte(Sequence *seq, int render_size, float facf0, float UNUSED(facf1), int x, int y,
+ char *rect1, char *UNUSED(rect2), char *out)
{
unsigned char *outbuf = (unsigned char *)out;
unsigned char *inbuf = (unsigned char *)rect1;
@@ -2379,8 +2263,7 @@ static void do_glow_effect_byte(Sequence *seq, int render_size, float facf0, flo
RVAddBitmaps_byte(inbuf, outbuf, outbuf, x, y);
}
-static void do_glow_effect_float(Sequence *seq, int render_size, float facf0, float UNUSED(facf1),
- int x, int y,
+static void do_glow_effect_float(Sequence *seq, int render_size, float facf0, float UNUSED(facf1), int x, int y,
float *rect1, float *UNUSED(rect2), float *out)
{
float *outbuf = out;
@@ -2393,44 +2276,35 @@ static void do_glow_effect_float(Sequence *seq, int render_size, float facf0, fl
RVAddBitmaps_float(inbuf, outbuf, outbuf, x, y);
}
-static ImBuf *do_glow_effect(
- SeqRenderData context, Sequence *seq, float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3)
+static ImBuf *do_glow_effect(SeqRenderData context, Sequence *seq, float UNUSED(cfra), float facf0, float facf1,
+ ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *ibuf3)
{
- struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
+ ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
int render_size = 100 * context.rectx / context.scene->r.xsch;
if (out->rect_float) {
- do_glow_effect_float(seq, render_size,
- facf0, facf1,
- context.rectx, context.recty,
- ibuf1->rect_float, ibuf2->rect_float,
- out->rect_float);
+ do_glow_effect_float(seq, render_size, facf0, facf1, context.rectx, context.recty,
+ ibuf1->rect_float, ibuf2->rect_float, out->rect_float);
}
else {
- do_glow_effect_byte(seq, render_size,
- facf0, facf1,
- context.rectx, context.recty,
- (char *) ibuf1->rect, (char *) ibuf2->rect,
- (char *) out->rect);
+ do_glow_effect_byte(seq, render_size, facf0, facf1, context.rectx, context.recty,
+ (char *) ibuf1->rect, (char *) ibuf2->rect, (char *) out->rect);
}
return out;
}
-/* **********************************************************************
- * SOLID COLOR
- * ********************************************************************** */
+/*********************** Solid color *************************/
static void init_solid_color(Sequence *seq)
{
SolidColorVars *cv;
- if (seq->effectdata) MEM_freeN(seq->effectdata);
- seq->effectdata = MEM_callocN(sizeof(struct SolidColorVars), "solidcolor");
+ if (seq->effectdata)
+ MEM_freeN(seq->effectdata);
+
+ seq->effectdata = MEM_callocN(sizeof(SolidColorVars), "solidcolor");
cv = (SolidColorVars *)seq->effectdata;
cv->col[0] = cv->col[1] = cv->col[2] = 0.5;
@@ -2443,7 +2317,9 @@ static int num_inputs_color(void)
static void free_solid_color(Sequence *seq)
{
- if (seq->effectdata) MEM_freeN(seq->effectdata);
+ if (seq->effectdata)
+ MEM_freeN(seq->effectdata);
+
seq->effectdata = NULL;
}
@@ -2452,19 +2328,15 @@ static void copy_solid_color(Sequence *dst, Sequence *src)
dst->effectdata = MEM_dupallocN(src->effectdata);
}
-static int early_out_color(struct Sequence *UNUSED(seq),
- float UNUSED(facf0), float UNUSED(facf1))
+static int early_out_color(Sequence *UNUSED(seq), float UNUSED(facf0), float UNUSED(facf1))
{
- return -1;
+ return EARLY_NO_INPUT;
}
-static ImBuf *do_solid_color(
- SeqRenderData context, Sequence *seq, float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1, struct ImBuf *ibuf2,
- struct ImBuf *ibuf3)
+static ImBuf *do_solid_color(SeqRenderData context, Sequence *seq, float UNUSED(cfra), float facf0, float facf1,
+ ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *ibuf3)
{
- struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
+ ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
SolidColorVars *cv = (SolidColorVars *)seq->effectdata;
@@ -2541,9 +2413,7 @@ static ImBuf *do_solid_color(
return out;
}
-/* **********************************************************************
- * MULTICAM
- * ********************************************************************** */
+/*********************** Mulitcam *************************/
/* no effect inputs for multicam, we use give_ibuf_seq */
static int num_inputs_multicam(void)
@@ -2551,19 +2421,16 @@ static int num_inputs_multicam(void)
return 0;
}
-static int early_out_multicam(struct Sequence *UNUSED(seq), float UNUSED(facf0), float UNUSED(facf1))
+static int early_out_multicam(Sequence *UNUSED(seq), float UNUSED(facf0), float UNUSED(facf1))
{
- return -1;
+ return EARLY_NO_INPUT;
}
-static ImBuf *do_multicam(
- SeqRenderData context, Sequence *seq, float cfra,
- float UNUSED(facf0), float UNUSED(facf1),
- struct ImBuf *UNUSED(ibuf1), struct ImBuf *UNUSED(ibuf2),
- struct ImBuf *UNUSED(ibuf3))
+static ImBuf *do_multicam(SeqRenderData context, Sequence *seq, float cfra, float UNUSED(facf0), float UNUSED(facf1),
+ ImBuf *UNUSED(ibuf1), ImBuf *UNUSED(ibuf2), ImBuf *UNUSED(ibuf3))
{
- struct ImBuf *i;
- struct ImBuf *out;
+ ImBuf *i;
+ ImBuf *out;
Editing *ed;
ListBase *seqbasep;
@@ -2575,17 +2442,17 @@ static ImBuf *do_multicam(
if (!ed) {
return NULL;
}
- seqbasep = seq_seqbase(&ed->seqbase, seq);
+ seqbasep = BKE_sequence_seqbase(&ed->seqbase, seq);
if (!seqbasep) {
return NULL;
}
- i = give_ibuf_seqbase(context, cfra, seq->multicam_source, seqbasep);
+ i = BKE_sequencer_give_ibuf_seqbase(context, cfra, seq->multicam_source, seqbasep);
if (!i) {
return NULL;
}
- if (input_have_to_preprocess(context, seq, cfra)) {
+ if (BKE_sequencer_input_have_to_preprocess(context, seq, cfra)) {
out = IMB_dupImBuf(i);
IMB_freeImBuf(i);
}
@@ -2596,9 +2463,7 @@ static ImBuf *do_multicam(
return out;
}
-/* **********************************************************************
- * ADJUSTMENT
- * ********************************************************************** */
+/*********************** Adjustment *************************/
/* no effect inputs for adjustment, we use give_ibuf_seq */
static int num_inputs_adjustment(void)
@@ -2606,35 +2471,34 @@ static int num_inputs_adjustment(void)
return 0;
}
-static int early_out_adjustment(struct Sequence *UNUSED(seq), float UNUSED(facf0), float UNUSED(facf1))
+static int early_out_adjustment(Sequence *UNUSED(seq), float UNUSED(facf0), float UNUSED(facf1))
{
- return -1;
+ return EARLY_NO_INPUT;
}
static ImBuf *do_adjustment_impl(SeqRenderData context, Sequence *seq, float cfra)
{
Editing *ed;
ListBase *seqbasep;
- struct ImBuf *i = NULL;
+ ImBuf *i = NULL;
ed = context.scene->ed;
- seqbasep = seq_seqbase(&ed->seqbase, seq);
+ seqbasep = BKE_sequence_seqbase(&ed->seqbase, seq);
- if (seq->machine > 0) {
- i = give_ibuf_seqbase(context, cfra,
- seq->machine - 1, seqbasep);
+ if (seq->machine > 1) {
+ i = BKE_sequencer_give_ibuf_seqbase(context, cfra, seq->machine - 1, seqbasep);
}
/* found nothing? so let's work the way up the metastrip stack, so
- * that it is possible to group a bunch of adjustment strips into
- * a metastrip and have that work on everything below the metastrip
+ * that it is possible to group a bunch of adjustment strips into
+ * a metastrip and have that work on everything below the metastrip
*/
if (!i) {
Sequence *meta;
- meta = seq_metastrip(&ed->seqbase, NULL, seq);
+ meta = BKE_sequence_metastrip(&ed->seqbase, NULL, seq);
if (meta) {
i = do_adjustment_impl(context, meta, cfra);
@@ -2644,14 +2508,11 @@ static ImBuf *do_adjustment_impl(SeqRenderData context, Sequence *seq, float cfr
return i;
}
-static ImBuf *do_adjustment(
- SeqRenderData context, Sequence *seq, float cfra,
- float UNUSED(facf0), float UNUSED(facf1),
- struct ImBuf *UNUSED(ibuf1), struct ImBuf *UNUSED(ibuf2),
- struct ImBuf *UNUSED(ibuf3))
+static ImBuf *do_adjustment(SeqRenderData context, Sequence *seq, float cfra, float UNUSED(facf0), float UNUSED(facf1),
+ ImBuf *UNUSED(ibuf1), ImBuf *UNUSED(ibuf2), ImBuf *UNUSED(ibuf3))
{
- struct ImBuf *i = NULL;
- struct ImBuf *out;
+ ImBuf *i = NULL;
+ ImBuf *out;
Editing *ed;
ed = context.scene->ed;
@@ -2662,7 +2523,7 @@ static ImBuf *do_adjustment(
i = do_adjustment_impl(context, seq, cfra);
- if (input_have_to_preprocess(context, seq, cfra)) {
+ if (BKE_sequencer_input_have_to_preprocess(context, seq, cfra)) {
out = IMB_dupImBuf(i);
IMB_freeImBuf(i);
}
@@ -2673,16 +2534,16 @@ static ImBuf *do_adjustment(
return out;
}
-/* **********************************************************************
- * SPEED
- * ********************************************************************** */
+/*********************** Speed *************************/
+
static void init_speed_effect(Sequence *seq)
{
SpeedControlVars *v;
- if (seq->effectdata) MEM_freeN(seq->effectdata);
- seq->effectdata = MEM_callocN(sizeof(struct SpeedControlVars),
- "speedcontrolvars");
+ if (seq->effectdata)
+ MEM_freeN(seq->effectdata);
+
+ seq->effectdata = MEM_callocN(sizeof(SpeedControlVars), "speedcontrolvars");
v = (SpeedControlVars *)seq->effectdata;
v->globalSpeed = 1.0;
@@ -2707,8 +2568,10 @@ static int num_inputs_speed(void)
static void free_speed_effect(Sequence *seq)
{
SpeedControlVars *v = (SpeedControlVars *)seq->effectdata;
- if (v->frameMap) MEM_freeN(v->frameMap);
- if (seq->effectdata) MEM_freeN(seq->effectdata);
+ if (v->frameMap)
+ MEM_freeN(v->frameMap);
+ if (seq->effectdata)
+ MEM_freeN(seq->effectdata);
seq->effectdata = NULL;
}
@@ -2721,19 +2584,17 @@ static void copy_speed_effect(Sequence *dst, Sequence *src)
v->length = 0;
}
-static int early_out_speed(struct Sequence *UNUSED(seq),
- float UNUSED(facf0), float UNUSED(facf1))
+static int early_out_speed(Sequence *UNUSED(seq), float UNUSED(facf0), float UNUSED(facf1))
{
- return 1;
+ return EARLY_USE_INPUT_1;
}
-static void store_icu_yrange_speed(struct Sequence *seq,
- short UNUSED(adrcode), float *ymin, float *ymax)
+static void store_icu_yrange_speed(Sequence *seq, short UNUSED(adrcode), float *ymin, float *ymax)
{
SpeedControlVars *v = (SpeedControlVars *)seq->effectdata;
/* if not already done, load / initialize data */
- get_sequence_effect(seq);
+ BKE_sequence_get_effect(seq);
if ((v->flags & SEQ_SPEED_INTEGRATE) != 0) {
*ymin = -100.0;
@@ -2750,16 +2611,17 @@ static void store_icu_yrange_speed(struct Sequence *seq,
}
}
}
-void sequence_effect_speed_rebuild_map(Scene *scene, Sequence *seq, int force)
+
+void BKE_sequence_effect_speed_rebuild_map(Scene *scene, Sequence *seq, int force)
{
int cfra;
float fallback_fac = 1.0f;
- SpeedControlVars *v = (SpeedControlVars *)seq->effectdata;
+ SpeedControlVars *v = (SpeedControlVars *) seq->effectdata;
FCurve *fcu = NULL;
int flags = v->flags;
/* if not already done, load / initialize data */
- get_sequence_effect(seq);
+ BKE_sequence_get_effect(seq);
if ((force == FALSE) &&
(seq->len == v->length) &&
@@ -2782,8 +2644,7 @@ void sequence_effect_speed_rebuild_map(Scene *scene, Sequence *seq, int force)
v->length = seq->len;
- v->frameMap = MEM_callocN(sizeof(float) * v->length,
- "speedcontrol frameMap");
+ v->frameMap = MEM_callocN(sizeof(float) * v->length, "speedcontrol frameMap");
}
fallback_fac = 1.0;
@@ -2792,8 +2653,7 @@ void sequence_effect_speed_rebuild_map(Scene *scene, Sequence *seq, int force)
if ((seq->seq1->enddisp != seq->seq1->start) &&
(seq->seq1->len != 0))
{
- fallback_fac = (float) seq->seq1->len /
- (float) (seq->seq1->enddisp - seq->seq1->start);
+ fallback_fac = (float) seq->seq1->len / (float) (seq->seq1->enddisp - seq->seq1->start);
flags = SEQ_SPEED_INTEGRATE;
fcu = NULL;
}
@@ -2861,22 +2721,61 @@ void sequence_effect_speed_rebuild_map(Scene *scene, Sequence *seq, int force)
}
}
-/* **********************************************************************
- * sequence effect factory
- * ********************************************************************** */
+static ImBuf *do_speed_effect(SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra),
+ float facf0, float facf1, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *ibuf3)
+{
+ ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
+
+ if (out->rect_float) {
+ do_cross_effect_float(facf0, facf1, context.rectx, context.recty,
+ ibuf1->rect_float, ibuf2->rect_float, out->rect_float);
+ }
+ else {
+ do_cross_effect_byte(facf0, facf1, context.rectx, context.recty,
+ (char *) ibuf1->rect, (char *) ibuf2->rect, (char *) out->rect);
+ }
+ return out;
+}
+
+/*********************** overdrop *************************/
+static void do_overdrop_effect(SeqRenderData context, Sequence *UNUSED(seq), float UNUSED(cfra), float facf0, float facf1,
+ ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *UNUSED(ibuf3), int start_line, int total_lines, ImBuf *out)
+{
+ int x = context.rectx;
+ int y = total_lines;
+
+ if (out->rect_float) {
+ float *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
+
+ slice_get_float_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_drop_effect_float(facf0, facf1, x, y, rect1, rect2, rect_out);
+ do_alphaover_effect_float(facf0, facf1, x, y, rect1, rect2, rect_out);
+ }
+ else {
+ unsigned char *rect1 = NULL, *rect2 = NULL, *rect_out = NULL;
-static void init_noop(struct Sequence *UNUSED(seq))
+ slice_get_byte_buffers(&context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out);
+
+ do_drop_effect_byte(facf0, facf1, x, y, (char *) rect1, (char *) rect2, (char *) rect_out);
+ do_alphaover_effect_byte(facf0, facf1, x, y, (char *) rect1, (char *) rect2, (char *) rect_out);
+ }
+}
+
+/*********************** sequence effect factory *************************/
+
+static void init_noop(Sequence *UNUSED(seq))
{
}
-static void load_noop(struct Sequence *UNUSED(seq))
+static void load_noop(Sequence *UNUSED(seq))
{
}
-static void free_noop(struct Sequence *UNUSED(seq))
+static void free_noop(Sequence *UNUSED(seq))
{
}
@@ -2886,47 +2785,41 @@ static int num_inputs_default(void)
return 2;
}
-static int early_out_noop(struct Sequence *UNUSED(seq),
- float UNUSED(facf0), float UNUSED(facf1))
+static int early_out_noop(Sequence *UNUSED(seq), float UNUSED(facf0), float UNUSED(facf1))
{
- return 0;
+ return EARLY_DO_EFFECT;
}
-static int early_out_fade(struct Sequence *UNUSED(seq),
- float facf0, float facf1)
+static int early_out_fade(Sequence *UNUSED(seq), float facf0, float facf1)
{
if (facf0 == 0.0f && facf1 == 0.0f) {
- return 1;
+ return EARLY_USE_INPUT_1;
}
else if (facf0 == 1.0f && facf1 == 1.0f) {
- return 2;
+ return EARLY_USE_INPUT_2;
}
- return 0;
+ return EARLY_DO_EFFECT;
}
-static int early_out_mul_input2(struct Sequence *UNUSED(seq),
- float facf0, float facf1)
+static int early_out_mul_input2(Sequence *UNUSED(seq), float facf0, float facf1)
{
if (facf0 == 0.0f && facf1 == 0.0f) {
- return 1;
+ return EARLY_USE_INPUT_1;
}
- return 0;
+ return EARLY_DO_EFFECT;
}
-static void store_icu_yrange_noop(struct Sequence *UNUSED(seq),
- short UNUSED(adrcode), float *UNUSED(ymin), float *UNUSED(ymax))
+static void store_icu_yrange_noop(Sequence *UNUSED(seq), short UNUSED(adrcode), float *UNUSED(ymin), float *UNUSED(ymax))
{
/* defaults are fine */
}
-static void get_default_fac_noop(struct Sequence *UNUSED(seq), float UNUSED(cfra),
- float *facf0, float *facf1)
+static void get_default_fac_noop(Sequence *UNUSED(seq), float UNUSED(cfra), float *facf0, float *facf1)
{
*facf0 = *facf1 = 1.0;
}
-static void get_default_fac_fade(struct Sequence *seq, float cfra,
- float *facf0, float *facf1)
+static void get_default_fac_fade(Sequence *seq, float cfra, float *facf0, float *facf1)
{
*facf0 = (float)(cfra - seq->startdisp);
*facf1 = (float)(*facf0 + 0.5f);
@@ -2934,39 +2827,9 @@ static void get_default_fac_fade(struct Sequence *seq, float cfra,
*facf1 /= seq->len;
}
-static ImBuf *do_overdrop_effect(SeqRenderData context,
- Sequence *UNUSED(seq),
- float UNUSED(cfra),
- float facf0, float facf1,
- struct ImBuf *ibuf1,
- struct ImBuf *ibuf2,
- struct ImBuf *ibuf3)
+static struct ImBuf *init_execution(SeqRenderData context, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *ibuf3)
{
- struct ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
- int x = context.rectx;
- int y = context.recty;
-
- if (out->rect_float) {
- do_drop_effect_float(
- facf0, facf1, x, y,
- ibuf1->rect_float, ibuf2->rect_float,
- out->rect_float);
- do_alphaover_effect_float(
- facf0, facf1, x, y,
- ibuf1->rect_float, ibuf2->rect_float,
- out->rect_float);
- }
- else {
- do_drop_effect_byte(
- facf0, facf1, x, y,
- (char *) ibuf1->rect,
- (char *) ibuf2->rect,
- (char *) out->rect);
- do_alphaover_effect_byte(
- facf0, facf1, x, y,
- (char *) ibuf1->rect, (char *) ibuf2->rect,
- (char *) out->rect);
- }
+ ImBuf *out = prepare_effect_imbufs(context, ibuf1, ibuf2, ibuf3);
return out;
}
@@ -2976,6 +2839,8 @@ static struct SeqEffectHandle get_sequence_effect_impl(int seq_type)
struct SeqEffectHandle rval;
int sequence_type = seq_type;
+ rval.multithreaded = FALSE;
+ rval.supports_mask = FALSE;
rval.init = init_noop;
rval.num_inputs = num_inputs_default;
rval.load = load_noop;
@@ -2984,44 +2849,55 @@ static struct SeqEffectHandle get_sequence_effect_impl(int seq_type)
rval.get_default_fac = get_default_fac_noop;
rval.store_icu_yrange = store_icu_yrange_noop;
rval.execute = NULL;
+ rval.init_execution = init_execution;
+ rval.execute_slice = NULL;
rval.copy = NULL;
switch (sequence_type) {
case SEQ_TYPE_CROSS:
- rval.execute = do_cross_effect;
+ rval.multithreaded = TRUE;
+ rval.execute_slice = do_cross_effect;
rval.early_out = early_out_fade;
rval.get_default_fac = get_default_fac_fade;
break;
case SEQ_TYPE_GAMCROSS:
+ rval.multithreaded = TRUE;
rval.init = init_gammacross;
rval.load = load_gammacross;
rval.free = free_gammacross;
rval.early_out = early_out_fade;
rval.get_default_fac = get_default_fac_fade;
- rval.execute = do_gammacross_effect;
+ rval.init_execution = gammacross_init_execution;
+ rval.execute_slice = do_gammacross_effect;
break;
case SEQ_TYPE_ADD:
- rval.execute = do_add_effect;
+ rval.multithreaded = TRUE;
+ rval.execute_slice = do_add_effect;
rval.early_out = early_out_mul_input2;
break;
case SEQ_TYPE_SUB:
- rval.execute = do_sub_effect;
+ rval.multithreaded = TRUE;
+ rval.execute_slice = do_sub_effect;
rval.early_out = early_out_mul_input2;
break;
case SEQ_TYPE_MUL:
- rval.execute = do_mul_effect;
+ rval.multithreaded = TRUE;
+ rval.execute_slice = do_mul_effect;
rval.early_out = early_out_mul_input2;
break;
case SEQ_TYPE_ALPHAOVER:
+ rval.multithreaded = TRUE;
rval.init = init_alpha_over_or_under;
- rval.execute = do_alphaover_effect;
+ rval.execute_slice = do_alphaover_effect;
break;
case SEQ_TYPE_OVERDROP:
- rval.execute = do_overdrop_effect;
+ rval.multithreaded = TRUE;
+ rval.execute_slice = do_overdrop_effect;
break;
case SEQ_TYPE_ALPHAUNDER:
+ rval.multithreaded = TRUE;
rval.init = init_alpha_over_or_under;
- rval.execute = do_alphaunder_effect;
+ rval.execute_slice = do_alphaunder_effect;
break;
case SEQ_TYPE_WIPE:
rval.init = init_wipe_effect;
@@ -3052,7 +2928,7 @@ static struct SeqEffectHandle get_sequence_effect_impl(int seq_type)
rval.load = load_speed_effect;
rval.free = free_speed_effect;
rval.copy = copy_speed_effect;
- rval.execute = do_cross_effect;
+ rval.execute = do_speed_effect;
rval.early_out = early_out_speed;
rval.store_icu_yrange = store_icu_yrange_speed;
break;
@@ -3070,6 +2946,7 @@ static struct SeqEffectHandle get_sequence_effect_impl(int seq_type)
rval.execute = do_multicam;
break;
case SEQ_TYPE_ADJUSTMENT:
+ rval.supports_mask = TRUE;
rval.num_inputs = num_inputs_adjustment;
rval.early_out = early_out_adjustment;
rval.execute = do_adjustment;
@@ -3079,10 +2956,9 @@ static struct SeqEffectHandle get_sequence_effect_impl(int seq_type)
return rval;
}
-
-struct SeqEffectHandle get_sequence_effect(Sequence *seq)
+struct SeqEffectHandle BKE_sequence_get_effect(Sequence *seq)
{
- struct SeqEffectHandle rval = {NULL};
+ struct SeqEffectHandle rval = {FALSE, FALSE, NULL};
if (seq->type & SEQ_TYPE_EFFECT) {
rval = get_sequence_effect_impl(seq->type);
@@ -3095,9 +2971,9 @@ struct SeqEffectHandle get_sequence_effect(Sequence *seq)
return rval;
}
-struct SeqEffectHandle get_sequence_blend(Sequence *seq)
+struct SeqEffectHandle BKE_sequence_get_blend(Sequence *seq)
{
- struct SeqEffectHandle rval = {NULL};
+ struct SeqEffectHandle rval = {FALSE, FALSE, NULL};
if (seq->blend_mode != 0) {
rval = get_sequence_effect_impl(seq->blend_mode);
@@ -3110,13 +2986,20 @@ struct SeqEffectHandle get_sequence_blend(Sequence *seq)
return rval;
}
-int get_sequence_effect_num_inputs(int seq_type)
+int BKE_sequence_effect_get_num_inputs(int seq_type)
{
struct SeqEffectHandle rval = get_sequence_effect_impl(seq_type);
int cnt = rval.num_inputs();
- if (rval.execute) {
+ if (rval.execute || (rval.execute_slice && rval.init_execution)) {
return cnt;
}
return 0;
}
+
+int BKE_sequence_effect_get_supports_mask(int seq_type)
+{
+ struct SeqEffectHandle rval = get_sequence_effect_impl(seq_type);
+
+ return rval.supports_mask;
+}
diff --git a/source/blender/blenkernel/intern/seqmodifier.c b/source/blender/blenkernel/intern/seqmodifier.c
new file mode 100644
index 00000000000..b0dcad64722
--- /dev/null
+++ b/source/blender/blenkernel/intern/seqmodifier.c
@@ -0,0 +1,641 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2012 Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Blender Foundation,
+ * Sergey Sharybin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/blenkernel/intern/seqmodifier.c
+ * \ingroup bke
+ */
+
+#include <stddef.h>
+#include <string.h>
+
+#include "MEM_guardedalloc.h"
+
+#include "BLI_listbase.h"
+#include "BLI_path_util.h"
+#include "BLI_string.h"
+#include "BLI_utildefines.h"
+#include "BLI_math.h"
+
+#include "DNA_sequence_types.h"
+
+#include "BKE_colortools.h"
+#include "BKE_sequencer.h"
+
+#include "IMB_imbuf.h"
+#include "IMB_imbuf_types.h"
+
+static SequenceModifierTypeInfo *modifiersTypes[NUM_SEQUENCE_MODIFIER_TYPES];
+static int modifierTypesInit = FALSE;
+
+/*********************** Modifiers *************************/
+
+typedef void (*modifier_apply_threaded_cb) (int width, int height, unsigned char *rect, float *rect_float,
+ unsigned char *mask_rect, float *mask_rect_float, void *data_v);
+
+typedef struct ModifierInitData {
+ ImBuf *ibuf;
+ ImBuf *mask;
+ void *user_data;
+
+ modifier_apply_threaded_cb apply_callback;
+} ModifierInitData;
+
+typedef struct ModifierThread {
+ int width, height;
+
+ unsigned char *rect, *mask_rect;
+ float *rect_float, *mask_rect_float;
+
+ void *user_data;
+
+ modifier_apply_threaded_cb apply_callback;
+} ModifierThread;
+
+
+static ImBuf *modifier_mask_get(SequenceModifierData *smd, SeqRenderData context, int cfra, int make_float)
+{
+ return BKE_sequencer_render_mask_input(context, smd->mask_input_type, smd->mask_sequence, smd->mask_id, cfra, make_float);
+}
+
+static void modifier_init_handle(void *handle_v, int start_line, int tot_line, void *init_data_v)
+{
+ ModifierThread *handle = (ModifierThread *) handle_v;
+ ModifierInitData *init_data = (ModifierInitData *) init_data_v;
+ ImBuf *ibuf = init_data->ibuf;
+ ImBuf *mask = init_data->mask;
+
+ int offset = 4 * start_line * ibuf->x;
+
+ memset(handle, 0, sizeof(ModifierThread));
+
+ handle->width = ibuf->x;
+ handle->height = tot_line;
+ handle->apply_callback = init_data->apply_callback;
+ handle->user_data = init_data->user_data;
+
+ if (ibuf->rect)
+ handle->rect = (unsigned char *) ibuf->rect + offset;
+
+ if (ibuf->rect_float)
+ handle->rect_float = ibuf->rect_float + offset;
+
+ if (mask) {
+ if (mask->rect)
+ handle->mask_rect = (unsigned char *) mask->rect + offset;
+
+ if (mask->rect_float)
+ handle->mask_rect_float = mask->rect_float + offset;
+ }
+ else {
+ handle->mask_rect = NULL;
+ handle->mask_rect_float = NULL;
+ }
+}
+
+static void *modifier_do_thread(void *thread_data_v)
+{
+ ModifierThread *td = (ModifierThread *) thread_data_v;
+
+ td->apply_callback(td->width, td->height, td->rect, td->rect_float, td->mask_rect, td->mask_rect_float, td->user_data);
+
+ return NULL;
+}
+
+static void modifier_apply_threaded(ImBuf *ibuf, ImBuf *mask, modifier_apply_threaded_cb apply_callback, void *user_data)
+{
+ ModifierInitData init_data;
+
+ init_data.ibuf = ibuf;
+ init_data.mask = mask;
+ init_data.user_data = user_data;
+
+ init_data.apply_callback = apply_callback;
+
+ IMB_processor_apply_threaded(ibuf->y, sizeof(ModifierThread), &init_data,
+ modifier_init_handle, modifier_do_thread);
+}
+
+/* **** Color Balance Modifier **** */
+
+static void colorBalance_init_data(SequenceModifierData *smd)
+{
+ ColorBalanceModifierData *cbmd = (ColorBalanceModifierData *) smd;
+ int c;
+
+ cbmd->color_multiply = 1.0f;
+
+ for (c = 0; c < 3; c++) {
+ cbmd->color_balance.lift[c] = 1.0f;
+ cbmd->color_balance.gamma[c] = 1.0f;
+ cbmd->color_balance.gain[c] = 1.0f;
+ }
+}
+
+static void colorBalance_apply(SequenceModifierData *smd, ImBuf *ibuf, ImBuf *mask)
+{
+ ColorBalanceModifierData *cbmd = (ColorBalanceModifierData *) smd;
+
+ BKE_sequencer_color_balance_apply(&cbmd->color_balance, ibuf, cbmd->color_multiply, FALSE, mask);
+}
+
+static SequenceModifierTypeInfo seqModifier_ColorBalance = {
+ "Color Balance", /* name */
+ "ColorBalanceModifierData", /* struct_name */
+ sizeof(ColorBalanceModifierData), /* struct_size */
+ colorBalance_init_data, /* init_data */
+ NULL, /* free_data */
+ NULL, /* copy_data */
+ colorBalance_apply /* apply */
+};
+
+/* **** Curves Modifier **** */
+
+static void curves_init_data(SequenceModifierData *smd)
+{
+ CurvesModifierData *cmd = (CurvesModifierData *) smd;
+
+ curvemapping_set_defaults(&cmd->curve_mapping, 4, 0.0f, 0.0f, 1.0f, 1.0f);
+}
+
+static void curves_free_data(SequenceModifierData *smd)
+{
+ CurvesModifierData *cmd = (CurvesModifierData *) smd;
+
+ curvemapping_free_data(&cmd->curve_mapping);
+}
+
+static void curves_copy_data(SequenceModifierData *target, SequenceModifierData *smd)
+{
+ CurvesModifierData *cmd = (CurvesModifierData *) smd;
+ CurvesModifierData *cmd_target = (CurvesModifierData *) target;
+
+ curvemapping_copy_data(&cmd_target->curve_mapping, &cmd->curve_mapping);
+}
+
+static void curves_apply_threaded(int width, int height, unsigned char *rect, float *rect_float,
+ unsigned char *mask_rect, float *mask_rect_float, void *data_v)
+{
+ CurveMapping *curve_mapping = (CurveMapping *) data_v;
+ int x, y;
+
+ for (y = 0; y < height; y++) {
+ for (x = 0; x < width; x++) {
+ int pixel_index = (y * width + x) * 4;
+
+ if (rect_float) {
+ float *pixel = rect_float + pixel_index;
+ float result[3];
+
+ curvemapping_evaluate_premulRGBF(curve_mapping, result, pixel);
+
+ if (mask_rect_float) {
+ float *m = mask_rect_float + pixel_index;
+
+ pixel[0] = pixel[0] * (1.0f - m[0]) + result[0] * m[0];
+ pixel[1] = pixel[1] * (1.0f - m[1]) + result[1] * m[1];
+ pixel[2] = pixel[2] * (1.0f - m[2]) + result[2] * m[2];
+ }
+ else {
+ pixel[0] = result[0];
+ pixel[1] = result[1];
+ pixel[2] = result[2];
+ }
+ }
+ if (rect) {
+ unsigned char *pixel = rect + pixel_index;
+ unsigned char result[3];
+
+ curvemapping_evaluate_premulRGB(curve_mapping, result, pixel);
+
+ if (mask_rect) {
+ float t[3];
+
+ rgb_uchar_to_float(t, mask_rect + pixel_index);
+
+ pixel[0] = pixel[0] * (1.0f - t[0]) + result[0] * t[0];
+ pixel[1] = pixel[1] * (1.0f - t[1]) + result[1] * t[1];
+ pixel[2] = pixel[2] * (1.0f - t[2]) + result[2] * t[2];
+ }
+ else {
+ pixel[0] = result[0];
+ pixel[1] = result[1];
+ pixel[2] = result[2];
+ }
+ }
+ }
+ }
+}
+
+static void curves_apply(struct SequenceModifierData *smd, ImBuf *ibuf, ImBuf *mask)
+{
+ CurvesModifierData *cmd = (CurvesModifierData *) smd;
+
+ float black[3] = {0.0f, 0.0f, 0.0f};
+ float white[3] = {1.0f, 1.0f, 1.0f};
+
+ curvemapping_initialize(&cmd->curve_mapping);
+
+ curvemapping_premultiply(&cmd->curve_mapping, 0);
+ curvemapping_set_black_white(&cmd->curve_mapping, black, white);
+
+ modifier_apply_threaded(ibuf, mask, curves_apply_threaded, &cmd->curve_mapping);
+
+ curvemapping_premultiply(&cmd->curve_mapping, 1);
+}
+
+static SequenceModifierTypeInfo seqModifier_Curves = {
+ "Curves", /* name */
+ "CurvesModifierData", /* struct_name */
+ sizeof(CurvesModifierData), /* struct_size */
+ curves_init_data, /* init_data */
+ curves_free_data, /* free_data */
+ curves_copy_data, /* copy_data */
+ curves_apply /* apply */
+};
+
+/* **** Hue Correct Modifier **** */
+
+static void hue_correct_init_data(SequenceModifierData *smd)
+{
+ HueCorrectModifierData *hcmd = (HueCorrectModifierData *) smd;
+ int c;
+
+ curvemapping_set_defaults(&hcmd->curve_mapping, 1, 0.0f, 0.0f, 1.0f, 1.0f);
+ hcmd->curve_mapping.preset = CURVE_PRESET_MID9;
+
+ for (c = 0; c < 3; c++) {
+ CurveMap *cuma = &hcmd->curve_mapping.cm[c];
+
+ curvemap_reset(cuma, &hcmd->curve_mapping.clipr, hcmd->curve_mapping.preset, CURVEMAP_SLOPE_POSITIVE);
+ }
+
+ /* default to showing Saturation */
+ hcmd->curve_mapping.cur = 1;
+}
+
+static void hue_correct_free_data(SequenceModifierData *smd)
+{
+ HueCorrectModifierData *hcmd = (HueCorrectModifierData *) smd;
+
+ curvemapping_free_data(&hcmd->curve_mapping);
+}
+
+static void hue_correct_copy_data(SequenceModifierData *target, SequenceModifierData *smd)
+{
+ HueCorrectModifierData *hcmd = (HueCorrectModifierData *) smd;
+ HueCorrectModifierData *hcmd_target = (HueCorrectModifierData *) target;
+
+ curvemapping_copy_data(&hcmd_target->curve_mapping, &hcmd->curve_mapping);
+}
+
+static void hue_correct_apply_threaded(int width, int height, unsigned char *rect, float *rect_float,
+ unsigned char *mask_rect, float *mask_rect_float, void *data_v)
+{
+ CurveMapping *curve_mapping = (CurveMapping *) data_v;
+ int x, y;
+
+ for (y = 0; y < height; y++) {
+ for (x = 0; x < width; x++) {
+ int pixel_index = (y * width + x) * 4;
+ float pixel[3], result[3], mask[3] = {1.0f, 1.0f, 1.0f};
+ float hsv[3], f;
+
+ if (rect_float)
+ copy_v3_v3(pixel, rect_float + pixel_index);
+ else
+ rgb_uchar_to_float(pixel, rect + pixel_index);
+
+ rgb_to_hsv(pixel[0], pixel[1], pixel[2], hsv, hsv + 1, hsv + 2);
+
+ /* adjust hue, scaling returned default 0.5 up to 1 */
+ f = curvemapping_evaluateF(curve_mapping, 0, hsv[0]);
+ hsv[0] += f - 0.5f;
+
+ /* adjust saturation, scaling returned default 0.5 up to 1 */
+ f = curvemapping_evaluateF(curve_mapping, 1, hsv[0]);
+ hsv[1] *= (f * 2.0f);
+
+ /* adjust value, scaling returned default 0.5 up to 1 */
+ f = curvemapping_evaluateF(curve_mapping, 2, hsv[0]);
+ hsv[2] *= (f * 2.f);
+
+ hsv[0] = hsv[0] - floorf(hsv[0]); /* mod 1.0 */
+ CLAMP(hsv[1], 0.0f, 1.0f);
+
+ /* convert back to rgb */
+ hsv_to_rgb(hsv[0], hsv[1], hsv[2], result, result + 1, result + 2);
+
+ if (mask_rect_float)
+ copy_v3_v3(mask, mask_rect_float + pixel_index);
+ else if (mask_rect)
+ rgb_uchar_to_float(mask, mask_rect + pixel_index);
+
+ result[0] = pixel[0] * (1.0f - mask[0]) + result[0] * mask[0];
+ result[1] = pixel[1] * (1.0f - mask[1]) + result[1] * mask[1];
+ result[2] = pixel[2] * (1.0f - mask[2]) + result[2] * mask[2];
+
+ if (rect_float)
+ copy_v3_v3(rect_float + pixel_index, result);
+ else
+ rgb_float_to_uchar(rect + pixel_index, result);
+ }
+ }
+}
+
+static void hue_correct_apply(struct SequenceModifierData *smd, ImBuf *ibuf, ImBuf *mask)
+{
+ HueCorrectModifierData *hcmd = (HueCorrectModifierData *) smd;
+
+ curvemapping_initialize(&hcmd->curve_mapping);
+
+ modifier_apply_threaded(ibuf, mask, hue_correct_apply_threaded, &hcmd->curve_mapping);
+}
+
+static SequenceModifierTypeInfo seqModifier_HueCorrect = {
+ "Hue Correct", /* name */
+ "HueCorrectModifierData", /* struct_name */
+ sizeof(HueCorrectModifierData), /* struct_size */
+ hue_correct_init_data, /* init_data */
+ hue_correct_free_data, /* free_data */
+ hue_correct_copy_data, /* copy_data */
+ hue_correct_apply /* apply */
+};
+
+/* **** Bright/Contrast Modifier **** */
+
+typedef struct BrightContrastThreadData {
+ float bright;
+ float contrast;
+} BrightContrastThreadData;
+
+static void brightcontrast_apply_threaded(int width, int height, unsigned char *rect, float *rect_float,
+ unsigned char *mask_rect, float *mask_rect_float, void *data_v)
+{
+ BrightContrastThreadData *data = (BrightContrastThreadData *) data_v;
+ int x, y;
+
+ float i;
+ int c;
+ float a, b, v;
+ float brightness = data->bright / 100.0f;
+ float contrast = data->contrast;
+ float delta = contrast / 200.0f;
+
+ a = 1.0f - delta * 2.0f;
+ /*
+ * The algorithm is by Werner D. Streidt
+ * (http://visca.com/ffactory/archives/5-99/msg00021.html)
+ * Extracted of OpenCV demhist.c
+ */
+ if (contrast > 0) {
+ a = 1.0f / a;
+ b = a * (brightness - delta);
+ }
+ else {
+ delta *= -1;
+ b = a * (brightness + delta);
+ }
+
+ for (y = 0; y < height; y++) {
+ for (x = 0; x < width; x++) {
+ int pixel_index = (y * width + x) * 4;
+
+ if (rect) {
+ unsigned char *pixel = rect + pixel_index;
+
+ for (c = 0; c < 3; c++) {
+ i = pixel[c];
+ v = a * i + b;
+
+ if (mask_rect) {
+ unsigned char *m = mask_rect + pixel_index;
+ float t = (float) m[c] / 255.0f;
+
+ pixel[c] = pixel[c] * (1.0f - t) + v * t;
+ }
+ else
+ pixel[c] = v;
+ }
+ }
+ else if (rect_float) {
+ float *pixel = rect_float + pixel_index;
+
+ for (c = 0; c < 3; c++) {
+ i = pixel[c];
+ v = a * i + b;
+
+ if (mask_rect_float) {
+ float *m = mask_rect_float + pixel_index;
+
+ pixel[c] = pixel[c] * (1.0f - m[c]) + v * m[c];
+ }
+ else
+ pixel[c] = v;
+ }
+ }
+ }
+ }
+}
+
+static void brightcontrast_apply(struct SequenceModifierData *smd, ImBuf *ibuf, ImBuf *mask)
+{
+ BrightContrastModifierData *bcmd = (BrightContrastModifierData *) smd;
+ BrightContrastThreadData data;
+
+ data.bright = bcmd->bright;
+ data.contrast = bcmd->contrast;
+
+ modifier_apply_threaded(ibuf, mask, brightcontrast_apply_threaded, &data);
+}
+
+static SequenceModifierTypeInfo seqModifier_BrightContrast = {
+ "Bright/Contrast", /* name */
+ "BrightContrastModifierData", /* struct_name */
+ sizeof(BrightContrastModifierData), /* struct_size */
+ NULL, /* init_data */
+ NULL, /* free_data */
+ NULL, /* copy_data */
+ brightcontrast_apply /* apply */
+};
+
+/*********************** Modifier functions *************************/
+
+static void sequence_modifier_type_info_init(void)
+{
+#define INIT_TYPE(typeName) (modifiersTypes[seqModifierType_##typeName] = &seqModifier_##typeName)
+
+ INIT_TYPE(ColorBalance);
+ INIT_TYPE(Curves);
+ INIT_TYPE(HueCorrect);
+ INIT_TYPE(BrightContrast);
+
+#undef INIT_TYPE
+}
+
+SequenceModifierTypeInfo *BKE_sequence_modifier_type_info_get(int type)
+{
+ if (!modifierTypesInit) {
+ sequence_modifier_type_info_init();
+ modifierTypesInit = TRUE;
+ }
+
+ return modifiersTypes[type];
+}
+
+SequenceModifierData *BKE_sequence_modifier_new(Sequence *seq, const char *name, int type)
+{
+ SequenceModifierData *smd;
+ SequenceModifierTypeInfo *smti = BKE_sequence_modifier_type_info_get(type);
+
+ smd = MEM_callocN(smti->struct_size, "sequence modifier");
+
+ smd->type = type;
+ smd->flag |= SEQUENCE_MODIFIER_EXPANDED;
+
+ if (!name || !name[0])
+ BLI_strncpy(smd->name, smti->name, sizeof(smd->name));
+ else
+ BLI_strncpy(smd->name, name, sizeof(smd->name));
+
+ BLI_addtail(&seq->modifiers, smd);
+
+ BKE_sequence_modifier_unique_name(seq, smd);
+
+ if (smti->init_data)
+ smti->init_data(smd);
+
+ return smd;
+}
+
+int BKE_sequence_modifier_remove(Sequence *seq, SequenceModifierData *smd)
+{
+ if (BLI_findindex(&seq->modifiers, smd) == -1)
+ return FALSE;
+
+ BLI_remlink(&seq->modifiers, smd);
+ BKE_sequence_modifier_free(smd);
+
+ return TRUE;
+}
+
+void BKE_sequence_modifier_clear(Sequence *seq)
+{
+ SequenceModifierData *smd, *smd_next;
+
+ for (smd = seq->modifiers.first; smd; smd = smd_next) {
+ smd_next = smd->next;
+ BKE_sequence_modifier_free(smd);
+ }
+
+ seq->modifiers.first = seq->modifiers.last = NULL;
+}
+
+void BKE_sequence_modifier_free(SequenceModifierData *smd)
+{
+ SequenceModifierTypeInfo *smti = BKE_sequence_modifier_type_info_get(smd->type);
+
+ if (smti && smti->free_data) {
+ smti->free_data(smd);
+ }
+
+ MEM_freeN(smd);
+}
+
+void BKE_sequence_modifier_unique_name(Sequence *seq, SequenceModifierData *smd)
+{
+ SequenceModifierTypeInfo *smti = BKE_sequence_modifier_type_info_get(smd->type);
+
+ BLI_uniquename(&seq->modifiers, smd, smti->name, '.', offsetof(SequenceModifierData, name), sizeof(smd->name));
+}
+
+SequenceModifierData *BKE_sequence_modifier_find_by_name(Sequence *seq, char *name)
+{
+ return BLI_findstring(&(seq->modifiers), name, offsetof(SequenceModifierData, name));
+}
+
+ImBuf *BKE_sequence_modifier_apply_stack(SeqRenderData context, Sequence *seq, ImBuf *ibuf, int cfra)
+{
+ SequenceModifierData *smd;
+ ImBuf *processed_ibuf = ibuf;
+
+ if (seq->modifiers.first && (seq->flag & SEQ_USE_LINEAR_MODIFIERS)) {
+ processed_ibuf = IMB_dupImBuf(ibuf);
+ BKE_sequencer_imbuf_from_sequencer_space(context.scene, processed_ibuf);
+ }
+
+ for (smd = seq->modifiers.first; smd; smd = smd->next) {
+ SequenceModifierTypeInfo *smti = BKE_sequence_modifier_type_info_get(smd->type);
+
+ /* could happen if modifier is being removed or not exists in current version of blender */
+ if (!smti)
+ continue;
+
+ /* modifier is muted, do nothing */
+ if (smd->flag & SEQUENCE_MODIFIER_MUTE)
+ continue;
+
+ if (smti->apply) {
+ ImBuf *mask = modifier_mask_get(smd, context, cfra, ibuf->rect_float != NULL);
+
+ if (processed_ibuf == ibuf)
+ processed_ibuf = IMB_dupImBuf(ibuf);
+
+ smti->apply(smd, processed_ibuf, mask);
+
+ if (mask)
+ IMB_freeImBuf(mask);
+ }
+ }
+
+ if (seq->modifiers.first && (seq->flag & SEQ_USE_LINEAR_MODIFIERS)) {
+ BKE_sequencer_imbuf_to_sequencer_space(context.scene, processed_ibuf, FALSE);
+ }
+
+ return processed_ibuf;
+}
+
+void BKE_sequence_modifier_list_copy(Sequence *seqn, Sequence *seq)
+{
+ SequenceModifierData *smd;
+
+ for (smd = seq->modifiers.first; smd; smd = smd->next) {
+ SequenceModifierData *smdn;
+ SequenceModifierTypeInfo *smti = BKE_sequence_modifier_type_info_get(smd->type);
+
+ smdn = MEM_dupallocN(smd);
+
+ if (smti && smti->copy_data)
+ smti->copy_data(smdn, smd);
+
+ smdn->next = smdn->prev = NULL;
+ BLI_addtail(&seqn->modifiers, smdn);
+ }
+}
+
+int BKE_sequence_supports_modifiers(Sequence *seq)
+{
+ return !ELEM(seq->type, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SOUND_HD);
+}
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index 78ccdc425e5..49ed7f80be3 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -62,7 +62,6 @@
#include "BKE_fcurve.h"
#include "BKE_scene.h"
#include "BKE_mask.h"
-#include "BKE_utildefines.h"
#include "RNA_access.h"
@@ -72,6 +71,7 @@
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
+#include "IMB_colormanagement.h"
#include "BKE_context.h"
#include "BKE_sound.h"
@@ -80,14 +80,10 @@
# include "AUD_C-API.h"
#endif
-static ImBuf *seq_render_strip_stack(
- SeqRenderData context, ListBase *seqbasep, float cfra, int chanshown);
-
-static ImBuf *seq_render_strip(
- SeqRenderData context, Sequence *seq, float cfra);
-
+static ImBuf *seq_render_strip_stack(SeqRenderData context, ListBase *seqbasep, float cfra, int chanshown);
+static ImBuf *seq_render_strip(SeqRenderData context, Sequence *seq, float cfra);
static void seq_free_animdata(Scene *scene, Sequence *seq);
-
+static ImBuf *seq_render_mask(SeqRenderData context, Mask *mask, float nr, short make_float);
/* **** XXX ******** */
#define SELECT 1
@@ -95,25 +91,30 @@ ListBase seqbase_clipboard;
int seqbase_clipboard_frame;
SequencerDrawView sequencer_view3d_cb = NULL; /* NULL in background mode */
-
-void printf_strip(Sequence *seq)
+#if 0 /* unused function */
+static void printf_strip(Sequence *seq)
{
- fprintf(stderr, "name: '%s', len:%d, start:%d, (startofs:%d, endofs:%d), (startstill:%d, endstill:%d), machine:%d, (startdisp:%d, enddisp:%d)\n",
- seq->name, seq->len, seq->start, seq->startofs, seq->endofs, seq->startstill, seq->endstill, seq->machine, seq->startdisp, seq->enddisp);
- fprintf(stderr, "\tseq_tx_set_final_left: %d %d\n\n", seq_tx_get_final_left(seq, 0), seq_tx_get_final_right(seq, 0));
+ fprintf(stderr, "name: '%s', len:%d, start:%d, (startofs:%d, endofs:%d), "
+ "(startstill:%d, endstill:%d), machine:%d, (startdisp:%d, enddisp:%d)\n",
+ seq->name, seq->len, seq->start, seq->startofs, seq->endofs, seq->startstill, seq->endstill, seq->machine,
+ seq->startdisp, seq->enddisp);
+
+ fprintf(stderr, "\tseq_tx_set_final_left: %d %d\n\n", seq_tx_get_final_left(seq, 0),
+ seq_tx_get_final_right(seq, 0));
}
+#endif
-int seqbase_recursive_apply(ListBase *seqbase, int (*apply_func)(Sequence *seq, void *), void *arg)
+int BKE_sequencer_base_recursive_apply(ListBase *seqbase, int (*apply_func)(Sequence *seq, void *), void *arg)
{
Sequence *iseq;
for (iseq = seqbase->first; iseq; iseq = iseq->next) {
- if (seq_recursive_apply(iseq, apply_func, arg) == -1)
+ if (BKE_sequencer_recursive_apply(iseq, apply_func, arg) == -1)
return -1; /* bail out */
}
return 1;
}
-int seq_recursive_apply(Sequence *seq, int (*apply_func)(Sequence *, void *), void *arg)
+int BKE_sequencer_recursive_apply(Sequence *seq, int (*apply_func)(Sequence *, void *), void *arg)
{
int ret = apply_func(seq, arg);
@@ -121,14 +122,12 @@ int seq_recursive_apply(Sequence *seq, int (*apply_func)(Sequence *, void *), vo
return -1; /* bail out */
if (ret && seq->seqbase.first)
- ret = seqbase_recursive_apply(&seq->seqbase, apply_func, arg);
+ ret = BKE_sequencer_base_recursive_apply(&seq->seqbase, apply_func, arg);
return ret;
}
-/* **********************************************************************
- * alloc / free functions
- * ********************************************************************** */
+/*********************** alloc / free functions *************************/
/* free */
@@ -140,10 +139,11 @@ static void free_proxy_seq(Sequence *seq)
}
}
-void seq_free_strip(Strip *strip)
+static void seq_free_strip(Strip *strip)
{
strip->us--;
- if (strip->us > 0) return;
+ if (strip->us > 0)
+ return;
if (strip->us < 0) {
printf("error: negative users in strip\n");
return;
@@ -166,21 +166,21 @@ void seq_free_strip(Strip *strip)
if (strip->transform) {
MEM_freeN(strip->transform);
}
- if (strip->color_balance) {
- MEM_freeN(strip->color_balance);
- }
MEM_freeN(strip);
}
-void seq_free_sequence(Scene *scene, Sequence *seq)
+/* only give option to skip cache locally (static func) */
+static void BKE_sequence_free_ex(Scene *scene, Sequence *seq, const int do_cache)
{
- if (seq->strip) seq_free_strip(seq->strip);
+ if (seq->strip)
+ seq_free_strip(seq->strip);
- if (seq->anim) IMB_free_anim(seq->anim);
+ if (seq->anim)
+ IMB_free_anim(seq->anim);
if (seq->type & SEQ_TYPE_EFFECT) {
- struct SeqEffectHandle sh = get_sequence_effect(seq);
+ struct SeqEffectHandle sh = BKE_sequence_get_effect(seq);
sh.free(seq);
}
@@ -202,18 +202,42 @@ void seq_free_sequence(Scene *scene, Sequence *seq)
seq_free_animdata(scene, seq);
}
+ /* free modifiers */
+ BKE_sequence_modifier_clear(seq);
+
+ /* free cached data used by this strip,
+ * also invalidate cache for all dependent sequences
+ *
+ * be _very_ careful here, invalidating cache loops over the scene sequences and
+ * assumes the listbase is valid for all strips, this may not be the case if lists are being freed.
+ * this is optional BKE_sequence_invalidate_cache
+ */
+ if (do_cache) {
+ if (scene) {
+ BKE_sequence_invalidate_cache(scene, seq);
+ }
+ }
+
MEM_freeN(seq);
}
-void seq_free_sequence_recurse(Scene *scene, Sequence *seq)
+void BKE_sequence_free(Scene *scene, Sequence *seq)
{
- Sequence *iseq;
+ BKE_sequence_free_ex(scene, seq, TRUE);
+}
+
+/* cache must be freed before calling this function
+ * since it leaves the seqbase in an invalid state */
+static void seq_free_sequence_recurse(Scene *scene, Sequence *seq)
+{
+ Sequence *iseq, *iseq_next;
- for (iseq = seq->seqbase.first; iseq; iseq = iseq->next) {
+ for (iseq = seq->seqbase.first; iseq; iseq = iseq_next) {
+ iseq_next = iseq->next;
seq_free_sequence_recurse(scene, iseq);
}
- seq_free_sequence(scene, seq);
+ BKE_sequence_free_ex(scene, seq, FALSE);
}
@@ -234,10 +258,10 @@ static void seq_free_clipboard_recursive(Sequence *seq_parent)
seq_free_clipboard_recursive(seq);
}
- seq_free_sequence(NULL, seq_parent);
+ BKE_sequence_free_ex(NULL, seq_parent, FALSE);
}
-void seq_free_clipboard(void)
+void BKE_sequencer_free_clipboard(void)
{
Sequence *seq, *nseq;
@@ -263,113 +287,117 @@ Editing *BKE_sequencer_editing_ensure(Scene *scene)
void BKE_sequencer_editing_free(Scene *scene)
{
Editing *ed = scene->ed;
- MetaStack *ms;
Sequence *seq;
if (ed == NULL)
return;
+ /* this may not be the active scene!, could be smarter about this */
+ BKE_sequencer_cache_cleanup();
+
SEQ_BEGIN (ed, seq)
{
- seq_free_sequence(scene, seq);
+ /* handle cache freeing above */
+ BKE_sequence_free_ex(scene, seq, FALSE);
}
SEQ_END
- while ((ms = ed->metastack.first)) {
- BLI_remlink(&ed->metastack, ms);
- MEM_freeN(ms);
- }
+ BLI_freelistN(&ed->metastack);
MEM_freeN(ed);
scene->ed = NULL;
}
-/* **********************************************************************
- * sequencer pipeline functions
- * ********************************************************************** */
+/*********************** Sequencer color space functions *************************/
-SeqRenderData seq_new_render_data(
- struct Main *bmain, struct Scene *scene,
- int rectx, int recty, int preview_render_size)
+static void sequencer_imbuf_assign_spaces(Scene *scene, ImBuf *ibuf)
{
- SeqRenderData rval;
-
- rval.bmain = bmain;
- rval.scene = scene;
- rval.rectx = rectx;
- rval.recty = recty;
- rval.preview_render_size = preview_render_size;
- rval.motion_blur_samples = 0;
- rval.motion_blur_shutter = 0;
-
- return rval;
+ IMB_colormanagement_assign_float_colorspace(ibuf, scene->sequencer_colorspace_settings.name);
}
-int seq_cmp_render_data(const SeqRenderData *a, const SeqRenderData *b)
+void BKE_sequencer_imbuf_to_sequencer_space(Scene *scene, ImBuf *ibuf, int make_float)
{
- if (a->preview_render_size < b->preview_render_size) {
- return -1;
- }
- if (a->preview_render_size > b->preview_render_size) {
- return 1;
- }
-
- if (a->rectx < b->rectx) {
- return -1;
- }
- if (a->rectx > b->rectx) {
- return 1;
- }
+ const char *from_colorspace = IMB_colormanagement_role_colorspace_name_get(COLOR_ROLE_SCENE_LINEAR);
+ const char *to_colorspace = scene->sequencer_colorspace_settings.name;
+ int predivide = ibuf->flags & IB_cm_predivide;
- if (a->recty < b->recty) {
- return -1;
- }
- if (a->recty > b->recty) {
- return 1;
- }
+ if (!ibuf->rect_float) {
+ if (make_float && ibuf->rect) {
+ /* when converting byte buffer to float in sequencer we need to make float
+ * buffer be in sequencer's working space, which is currently only doable
+ * from linear space.
+ *
+ */
- if (a->bmain < b->bmain) {
- return -1;
- }
- if (a->bmain > b->bmain) {
- return 1;
- }
+ /*
+ * OCIO_TODO: would be nice to support direct single transform from byte to sequencer's
+ */
- if (a->scene < b->scene) {
- return -1;
- }
- if (a->scene > b->scene) {
- return 1;
+ IMB_float_from_rect(ibuf);
+ }
+ else {
+ /* if there's only byte buffer in image it's already in compositor's working space,
+ * nothing to do here
+ */
+
+ return;
+ }
}
- if (a->motion_blur_shutter < b->motion_blur_shutter) {
- return -1;
+ if (from_colorspace && from_colorspace[0] != '\0') {
+ if (ibuf->rect)
+ imb_freerectImBuf(ibuf);
+
+ IMB_colormanagement_transform_threaded(ibuf->rect_float, ibuf->x, ibuf->y, ibuf->channels,
+ from_colorspace, to_colorspace, predivide);
}
- if (a->motion_blur_shutter > b->motion_blur_shutter) {
- return 1;
+}
+
+void BKE_sequencer_imbuf_from_sequencer_space(Scene *scene, ImBuf *ibuf)
+{
+ const char *from_colorspace = scene->sequencer_colorspace_settings.name;
+ const char *to_colorspace = IMB_colormanagement_role_colorspace_name_get(COLOR_ROLE_SCENE_LINEAR);
+
+ if (!ibuf->rect_float)
+ return;
+
+ if (to_colorspace && to_colorspace[0] != '\0') {
+ int predivide = ibuf->flags & IB_cm_predivide;
+
+ IMB_colormanagement_transform_threaded(ibuf->rect_float, ibuf->x, ibuf->y, ibuf->channels,
+ from_colorspace, to_colorspace, predivide);
}
+}
- if (a->motion_blur_samples < b->motion_blur_samples) {
- return -1;
+void BKE_sequencer_pixel_from_sequencer_space_v4(struct Scene *scene, float pixel[4])
+{
+ const char *from_colorspace = scene->sequencer_colorspace_settings.name;
+ const char *to_colorspace = IMB_colormanagement_role_colorspace_name_get(COLOR_ROLE_SCENE_LINEAR);
+
+ if (to_colorspace && to_colorspace[0] != '\0') {
+ IMB_colormanagement_transform_v4(pixel, from_colorspace, to_colorspace);
}
- if (a->motion_blur_samples > b->motion_blur_samples) {
- return 1;
+ else {
+ /* if no color management enables fallback to legacy conversion */
+ srgb_to_linearrgb_v4(pixel, pixel);
}
-
- return 0;
}
-unsigned int seq_hash_render_data(const SeqRenderData *a)
+/*********************** sequencer pipeline functions *************************/
+
+SeqRenderData BKE_sequencer_new_render_data(Main *bmain, Scene *scene, int rectx, int recty, int preview_render_size)
{
- unsigned int rval = a->rectx + a->recty;
+ SeqRenderData rval;
+
+ rval.bmain = bmain;
+ rval.scene = scene;
+ rval.rectx = rectx;
+ rval.recty = recty;
+ rval.preview_render_size = preview_render_size;
+ rval.motion_blur_samples = 0;
+ rval.motion_blur_shutter = 0;
- rval ^= a->preview_render_size;
- rval ^= ((intptr_t) a->bmain) << 6;
- rval ^= ((intptr_t) a->scene) << 6;
- rval ^= (int)(a->motion_blur_shutter * 100.0f) << 10;
- rval ^= a->motion_blur_samples << 24;
-
return rval;
}
@@ -378,7 +406,8 @@ unsigned int seq_hash_render_data(const SeqRenderData *a)
/* **************** use now SEQ_BEGIN () SEQ_END ***************** */
/* sequence strip iterator:
- * - builds a full array, recursively into meta strips */
+ * - builds a full array, recursively into meta strips
+ */
static void seq_count(ListBase *seqbase, int *tot)
{
@@ -407,7 +436,7 @@ static void seq_build_array(ListBase *seqbase, Sequence ***array, int depth)
}
}
-void seq_array(Editing *ed, Sequence ***seqarray, int *tot, int use_pointer)
+static void seq_array(Editing *ed, Sequence ***seqarray, int *tot, int use_pointer)
{
Sequence **array;
@@ -432,7 +461,7 @@ void seq_array(Editing *ed, Sequence ***seqarray, int *tot, int use_pointer)
seq_build_array(&ed->seqbase, &array, 0);
}
-void seq_begin(Editing *ed, SeqIterator *iter, int use_pointer)
+void BKE_sequence_iterator_begin(Editing *ed, SeqIterator *iter, int use_pointer)
{
memset(iter, 0, sizeof(*iter));
seq_array(ed, &iter->array, &iter->tot, use_pointer);
@@ -444,7 +473,7 @@ void seq_begin(Editing *ed, SeqIterator *iter, int use_pointer)
}
}
-void seq_next(SeqIterator *iter)
+void BKE_sequence_iterator_next(SeqIterator *iter)
{
if (++iter->cur < iter->tot)
iter->seq = iter->array[iter->cur];
@@ -452,7 +481,7 @@ void seq_next(SeqIterator *iter)
iter->valid = 0;
}
-void seq_end(SeqIterator *iter)
+void BKE_sequence_iterator_end(SeqIterator *iter)
{
if (iter->array)
MEM_freeN(iter->array);
@@ -460,73 +489,6 @@ void seq_end(SeqIterator *iter)
iter->valid = 0;
}
-/*
- * **********************************************************************
- * build_seqar
- * *********************************************************************
- * Build a complete array of _all_ sequencies (including those
- * in metastrips!)
- * *********************************************************************
- */
-
-static void do_seq_count_cb(ListBase *seqbase, int *totseq,
- int (*test_func)(Sequence *seq))
-{
- Sequence *seq;
-
- seq = seqbase->first;
- while (seq) {
- int test = test_func(seq);
- if (test & BUILD_SEQAR_COUNT_CURRENT) {
- (*totseq)++;
- }
- if (seq->seqbase.first && (test & BUILD_SEQAR_COUNT_CHILDREN)) {
- do_seq_count_cb(&seq->seqbase, totseq, test_func);
- }
- seq = seq->next;
- }
-}
-
-static void do_build_seqar_cb(ListBase *seqbase, Sequence ***seqar, int depth,
- int (*test_func)(Sequence *seq))
-{
- Sequence *seq;
-
- seq = seqbase->first;
- while (seq) {
- int test = test_func(seq);
- seq->depth = depth;
-
- if (seq->seqbase.first && (test & BUILD_SEQAR_COUNT_CHILDREN)) {
- do_build_seqar_cb(&seq->seqbase, seqar, depth + 1, test_func);
- }
- if (test & BUILD_SEQAR_COUNT_CURRENT) {
- **seqar = seq;
- (*seqar)++;
- }
- seq = seq->next;
- }
-}
-
-void build_seqar_cb(ListBase *seqbase, Sequence ***seqar, int *totseq,
- int (*test_func)(Sequence *seq))
-{
- Sequence **tseqar;
-
- *totseq = 0;
- do_seq_count_cb(seqbase, totseq, test_func);
-
- if (*totseq == 0) {
- *seqar = NULL;
- return;
- }
- *seqar = MEM_mallocN(sizeof(void *) * *totseq, "seqar");
- tseqar = *seqar;
-
- do_build_seqar_cb(seqbase, seqar, 0, test_func);
- *seqar = tseqar;
-}
-
static int metaseq_start(Sequence *metaseq)
{
return metaseq->start + metaseq->startofs;
@@ -545,7 +507,8 @@ static void seq_update_sound_bounds_recursive_rec(Scene *scene, Sequence *metase
* since sound is played outside of evaluating the imbufs, */
for (seq = metaseq->seqbase.first; seq; seq = seq->next) {
if (seq->type == SEQ_TYPE_META) {
- seq_update_sound_bounds_recursive_rec(scene, seq, MAX2(start, metaseq_start(seq)), MIN2(end, metaseq_end(seq)));
+ seq_update_sound_bounds_recursive_rec(scene, seq, maxi(start, metaseq_start(seq)),
+ mini(end, metaseq_end(seq)));
}
else if (ELEM(seq->type, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SCENE)) {
if (seq->scene_sound) {
@@ -556,7 +519,9 @@ static void seq_update_sound_bounds_recursive_rec(Scene *scene, Sequence *metase
if (seq->start + seq->len - seq->endofs > end)
endofs = seq->start + seq->len - end;
- sound_move_scene_sound(scene, seq->scene_sound, seq->start + startofs, seq->start + seq->len - endofs, startofs);
+
+ sound_move_scene_sound(scene, seq->scene_sound, seq->start + startofs,
+ seq->start + seq->len - endofs, startofs);
}
}
}
@@ -567,10 +532,12 @@ static void seq_update_sound_bounds_recursive(Scene *scene, Sequence *metaseq)
seq_update_sound_bounds_recursive_rec(scene, metaseq, metaseq_start(metaseq), metaseq_end(metaseq));
}
-void calc_sequence_disp(Scene *scene, Sequence *seq)
+void BKE_sequence_calc_disp(Scene *scene, Sequence *seq)
{
- if (seq->startofs && seq->startstill) seq->startstill = 0;
- if (seq->endofs && seq->endstill) seq->endstill = 0;
+ if (seq->startofs && seq->startstill)
+ seq->startstill = 0;
+ if (seq->endofs && seq->endstill)
+ seq->endstill = 0;
seq->startdisp = seq->start + seq->startofs - seq->startstill;
seq->enddisp = seq->start + seq->len - seq->endofs + seq->endstill;
@@ -584,13 +551,13 @@ void calc_sequence_disp(Scene *scene, Sequence *seq)
}
if (ELEM(seq->type, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SCENE)) {
- seq_update_sound_bounds(scene, seq);
+ BKE_sequencer_update_sound_bounds(scene, seq);
}
else if (seq->type == SEQ_TYPE_META)
seq_update_sound_bounds_recursive(scene, seq);
}
-void calc_sequence(Scene *scene, Sequence *seq)
+void BKE_sequence_calc(Scene *scene, Sequence *seq)
{
Sequence *seqm;
int min, max;
@@ -598,7 +565,7 @@ void calc_sequence(Scene *scene, Sequence *seq)
/* check all metas recursively */
seqm = seq->seqbase.first;
while (seqm) {
- if (seqm->seqbase.first) calc_sequence(scene, seqm);
+ if (seqm->seqbase.first) BKE_sequence_calc(scene, seqm);
seqm = seqm->next;
}
@@ -606,8 +573,10 @@ void calc_sequence(Scene *scene, Sequence *seq)
if (seq->type & SEQ_TYPE_EFFECT) {
/* pointers */
- if (seq->seq2 == NULL) seq->seq2 = seq->seq1;
- if (seq->seq3 == NULL) seq->seq3 = seq->seq1;
+ if (seq->seq2 == NULL)
+ seq->seq2 = seq->seq1;
+ if (seq->seq3 == NULL)
+ seq->seq3 = seq->seq1;
/* effecten go from seq1 -> seq2: test */
@@ -638,7 +607,7 @@ void calc_sequence(Scene *scene, Sequence *seq)
seq->len = seq->enddisp - seq->startdisp;
}
else {
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
}
}
else {
@@ -659,12 +628,12 @@ void calc_sequence(Scene *scene, Sequence *seq)
}
seq_update_sound_bounds_recursive(scene, seq);
}
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
}
}
/* note: caller should run calc_sequence(scene, seq) after */
-void reload_sequence_new_file(Scene *scene, Sequence *seq, int lock_range)
+void BKE_sequence_reload_new_file(Scene *scene, Sequence *seq, int lock_range)
{
char str[FILE_MAX];
int prev_startdisp = 0, prev_enddisp = 0;
@@ -679,7 +648,7 @@ void reload_sequence_new_file(Scene *scene, Sequence *seq, int lock_range)
if (lock_range) {
/* keep so we don't have to move the actual start and end points (only the data) */
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
prev_startdisp = seq->startdisp;
prev_enddisp = seq->enddisp;
}
@@ -688,7 +657,7 @@ void reload_sequence_new_file(Scene *scene, Sequence *seq, int lock_range)
case SEQ_TYPE_IMAGE:
{
/* Hack? */
- size_t olen = MEM_allocN_len(seq->strip->stripdata) / sizeof(struct StripElem);
+ size_t olen = MEM_allocN_len(seq->strip->stripdata) / sizeof(StripElem);
seq->len = olen;
seq->len -= seq->anim_startofs;
@@ -704,16 +673,15 @@ void reload_sequence_new_file(Scene *scene, Sequence *seq, int lock_range)
BLI_path_abs(str, G.main->name);
if (seq->anim) IMB_free_anim(seq->anim);
- seq->anim = openanim(str, IB_rect | ((seq->flag & SEQ_FILTERY) ? IB_animdeinterlace : 0), seq->streamindex);
+
+ /* OCIO_TODO: support configurable input space for strips */
+ seq->anim = openanim(str, IB_rect | ((seq->flag & SEQ_FILTERY) ? IB_animdeinterlace : 0), seq->streamindex, NULL);
if (!seq->anim) {
return;
}
- seq->len = IMB_anim_get_duration(seq->anim,
- seq->strip->proxy ?
- seq->strip->proxy->tc :
- IMB_TC_RECORD_RUN);
+ seq->len = IMB_anim_get_duration(seq->anim, seq->strip->proxy ? seq->strip->proxy->tc : IMB_TC_RECORD_RUN);
seq->anim_preseek = IMB_anim_get_preseek(seq->anim);
@@ -724,6 +692,9 @@ void reload_sequence_new_file(Scene *scene, Sequence *seq, int lock_range)
}
break;
case SEQ_TYPE_MOVIECLIP:
+ if (seq->clip == NULL)
+ return;
+
seq->len = BKE_movieclip_get_duration(seq->clip);
seq->len -= seq->anim_startofs;
@@ -733,8 +704,9 @@ void reload_sequence_new_file(Scene *scene, Sequence *seq, int lock_range)
}
break;
case SEQ_TYPE_MASK:
+ if (seq->mask == NULL)
+ return;
seq->len = BKE_mask_get_duration(seq->mask);
-
seq->len -= seq->anim_startofs;
seq->len -= seq->anim_endofs;
if (seq->len < 0) {
@@ -770,12 +742,12 @@ void reload_sequence_new_file(Scene *scene, Sequence *seq, int lock_range)
free_proxy_seq(seq);
if (lock_range) {
- seq_tx_set_final_left(seq, prev_startdisp);
- seq_tx_set_final_right(seq, prev_enddisp);
- seq_single_fix(seq);
+ BKE_sequence_tx_set_final_left(seq, prev_startdisp);
+ BKE_sequence_tx_set_final_right(seq, prev_enddisp);
+ BKE_sequence_single_fix(seq);
}
- calc_sequence(scene, seq);
+ BKE_sequence_calc(scene, seq);
}
void BKE_sequencer_sort(Scene *scene)
@@ -786,7 +758,8 @@ void BKE_sequencer_sort(Scene *scene)
Sequence *seq, *seqt;
- if (ed == NULL) return;
+ if (ed == NULL)
+ return;
seqbase.first = seqbase.last = NULL;
effbase.first = effbase.last = NULL;
@@ -803,7 +776,8 @@ void BKE_sequencer_sort(Scene *scene)
}
seqt = seqt->next;
}
- if (seqt == NULL) BLI_addtail(&effbase, seq);
+ if (seqt == NULL)
+ BLI_addtail(&effbase, seq);
}
else {
seqt = seqbase.first;
@@ -814,7 +788,8 @@ void BKE_sequencer_sort(Scene *scene)
}
seqt = seqt->next;
}
- if (seqt == NULL) BLI_addtail(&seqbase, seq);
+ if (seqt == NULL)
+ BLI_addtail(&seqbase, seq);
}
}
@@ -822,7 +797,6 @@ void BKE_sequencer_sort(Scene *scene)
*(ed->seqbasep) = seqbase;
}
-
static int clear_scene_in_allseqs_cb(Sequence *seq, void *arg_pt)
{
if (seq->scene == (Scene *)arg_pt)
@@ -830,14 +804,14 @@ static int clear_scene_in_allseqs_cb(Sequence *seq, void *arg_pt)
return 1;
}
-void clear_scene_in_allseqs(Main *bmain, Scene *scene)
+void BKE_sequencer_clear_scene_in_allseqs(Main *bmain, Scene *scene)
{
Scene *scene_iter;
/* when a scene is deleted: test all seqs */
for (scene_iter = bmain->scene.first; scene_iter; scene_iter = scene_iter->id.next) {
if (scene_iter != scene && scene_iter->ed) {
- seqbase_recursive_apply(&scene_iter->ed->seqbase, clear_scene_in_allseqs_cb, scene);
+ BKE_sequencer_base_recursive_apply(&scene_iter->ed->seqbase, clear_scene_in_allseqs_cb, scene);
}
}
}
@@ -850,13 +824,6 @@ typedef struct SeqUniqueInfo {
int match;
} SeqUniqueInfo;
-#if 0
-static void seqbase_unique_name(ListBase *seqbasep, Sequence *seq)
-{
- BLI_uniquename(seqbasep, seq, "Sequence", '.', offsetof(Sequence, name), SEQ_NAME_MAXSTR);
-}
-#endif
-
static void seqbase_unique_name(ListBase *seqbasep, SeqUniqueInfo *sui)
{
Sequence *seq;
@@ -876,7 +843,7 @@ static int seqbase_unique_name_recursive_cb(Sequence *seq, void *arg_pt)
return 1;
}
-void seqbase_unique_name_recursive(ListBase *seqbasep, struct Sequence *seq)
+void BKE_sequence_base_unique_name_recursive(ListBase *seqbasep, Sequence *seq)
{
SeqUniqueInfo sui;
char *dot;
@@ -899,7 +866,7 @@ void seqbase_unique_name_recursive(ListBase *seqbasep, struct Sequence *seq)
while (sui.match) {
sui.match = 0;
seqbase_unique_name(seqbasep, &sui);
- seqbase_recursive_apply(seqbasep, seqbase_unique_name_recursive_cb, &sui);
+ BKE_sequencer_base_recursive_apply(seqbasep, seqbase_unique_name_recursive_cb, &sui);
}
BLI_strncpy(seq->name + 2, sui.name_dest, sizeof(seq->name) - 2);
@@ -935,7 +902,7 @@ static const char *give_seqname_by_type(int type)
}
}
-const char *give_seqname(Sequence *seq)
+const char *BKE_sequence_give_name(Sequence *seq)
{
const char *name = give_seqname_by_type(seq->type);
@@ -950,7 +917,7 @@ const char *give_seqname(Sequence *seq)
return name;
}
-/* ***************** DO THE SEQUENCE ***************** */
+/*********************** DO THE SEQUENCE *************************/
static void make_black_ibuf(ImBuf *ibuf)
{
@@ -968,7 +935,7 @@ static void make_black_ibuf(ImBuf *ibuf)
rect_float = ibuf->rect_float;
if (rect) {
- memset(rect, 0, tot * sizeof(char) * 4);
+ memset(rect, 0, tot * sizeof(char) * 4);
}
if (rect_float) {
@@ -1051,18 +1018,19 @@ static float give_stripelem_index(Sequence *seq, float cfra)
return nr;
}
-StripElem *give_stripelem(Sequence *seq, int cfra)
+StripElem *BKE_sequencer_give_stripelem(Sequence *seq, int cfra)
{
StripElem *se = seq->strip->stripdata;
- if (seq->type == SEQ_TYPE_IMAGE) { /* only
- * IMAGE strips use the whole array,
- * MOVIE strips use only
- * the first element, all other strips
- * don't use this... */
- int nr = (int)give_stripelem_index(seq, cfra);
+ if (seq->type == SEQ_TYPE_IMAGE) {
+ /* only IMAGE strips use the whole array, MOVIE strips use only the first element,
+ * all other strips don't use this...
+ */
+
+ int nr = (int) give_stripelem_index(seq, cfra);
- if (nr == -1 || se == NULL) return NULL;
+ if (nr == -1 || se == NULL)
+ return NULL;
se += nr + seq->anim_startofs;
}
@@ -1088,12 +1056,14 @@ static int evaluate_seq_frame_gen(Sequence **seq_arr, ListBase *seqbase, int cfr
return totseq;
}
-int evaluate_seq_frame(Scene *scene, int cfra)
+int BKE_sequencer_evaluate_frame(Scene *scene, int cfra)
{
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
Sequence *seq_arr[MAXSEQ + 1];
- if (ed == NULL) return 0;
+ if (ed == NULL)
+ return 0;
+
return evaluate_seq_frame_gen(seq_arr, ed->seqbasep, cfra);
}
@@ -1142,10 +1112,7 @@ static int get_shown_sequences(ListBase *seqbasep, int cfra, int chanshown, Sequ
return cnt;
}
-
-/* **********************************************************************
- * proxy management
- * ********************************************************************** */
+/*********************** proxy management *************************/
typedef struct SeqIndexBuildContext {
struct IndexBuildContext *index_context;
@@ -1205,9 +1172,8 @@ static void seq_open_anim_file(Sequence *seq)
seq->strip->dir, seq->strip->stripdata->name);
BLI_path_abs(name, G.main->name);
- seq->anim = openanim(name, IB_rect |
- ((seq->flag & SEQ_FILTERY) ?
- IB_animdeinterlace : 0), seq->streamindex);
+ /* OCIO_TODO: support configurable input space for strips */
+ seq->anim = openanim(name, IB_rect | ((seq->flag & SEQ_FILTERY) ? IB_animdeinterlace : 0), seq->streamindex, NULL);
if (seq->anim == NULL) {
return;
@@ -1267,15 +1233,13 @@ static int seq_proxy_get_fname(Sequence *seq, int cfra, int render_size, char *n
/* generate a separate proxy directory for each preview size */
if (seq->type == SEQ_TYPE_IMAGE) {
- BLI_snprintf(name, PROXY_MAXFILE, "%s/images/%d/%s_proxy", dir,
- render_size,
- give_stripelem(seq, cfra)->name);
+ BLI_snprintf(name, PROXY_MAXFILE, "%s/images/%d/%s_proxy", dir, render_size,
+ BKE_sequencer_give_stripelem(seq, cfra)->name);
frameno = 1;
}
else {
frameno = (int)give_stripelem_index(seq, cfra) + seq->anim_startofs;
- BLI_snprintf(name, PROXY_MAXFILE, "%s/proxy_misc/%d/####", dir,
- render_size);
+ BLI_snprintf(name, PROXY_MAXFILE, "%s/proxy_misc/%d/####", dir, render_size);
}
BLI_path_abs(name, G.main->name);
@@ -1315,8 +1279,9 @@ static ImBuf *seq_proxy_fetch(SeqRenderData context, Sequence *seq, int cfra)
if (seq_proxy_get_fname(seq, cfra, render_size, name) == 0) {
return NULL;
}
-
- seq->strip->proxy->anim = openanim(name, IB_rect, 0);
+
+ /* proxies are generated in default color space */
+ seq->strip->proxy->anim = openanim(name, IB_rect, 0, NULL);
}
if (seq->strip->proxy->anim == NULL) {
return NULL;
@@ -1324,11 +1289,9 @@ static ImBuf *seq_proxy_fetch(SeqRenderData context, Sequence *seq, int cfra)
seq_open_anim_file(seq);
- frameno = IMB_anim_index_get_frame_index(seq->anim, seq->strip->proxy->tc,
- frameno);
+ frameno = IMB_anim_index_get_frame_index(seq->anim, seq->strip->proxy->tc, frameno);
- return IMB_anim_absolute(seq->strip->proxy->anim, frameno,
- IMB_TC_NONE, IMB_PROXY_NONE);
+ return IMB_anim_absolute(seq->strip->proxy->anim, frameno, IMB_TC_NONE, IMB_PROXY_NONE);
}
if (seq_proxy_get_fname(seq, cfra, render_size, name) == 0) {
@@ -1336,16 +1299,20 @@ static ImBuf *seq_proxy_fetch(SeqRenderData context, Sequence *seq, int cfra)
}
if (BLI_exists(name)) {
- return IMB_loadiffname(name, IB_rect);
+ /* OCIO_TODO: support configurable spaces for strips */
+ ImBuf *ibuf = IMB_loadiffname(name, IB_rect, NULL);
+
+ if (ibuf)
+ sequencer_imbuf_assign_spaces(context.scene, ibuf);
+
+ return ibuf;
}
else {
return NULL;
}
}
-static void seq_proxy_build_frame(SeqRenderData context,
- Sequence *seq, int cfra,
- int proxy_render_size)
+static void seq_proxy_build_frame(SeqRenderData context, Sequence *seq, int cfra, int proxy_render_size)
{
char name[PROXY_MAXFILE];
int quality;
@@ -1376,7 +1343,8 @@ static void seq_proxy_build_frame(SeqRenderData context,
ibuf->planes = 24;
BLI_make_existing_file(name);
-
+
+ /* OCIO_TODO: support per-strip color space settings */
ok = IMB_saveiff(ibuf, name, IB_rect | IB_zbuf | IB_zbuffloat);
if (ok == 0) {
perror(name);
@@ -1385,7 +1353,7 @@ static void seq_proxy_build_frame(SeqRenderData context,
IMB_freeImBuf(ibuf);
}
-struct SeqIndexBuildContext *seq_proxy_rebuild_context(Main *bmain, Scene *scene, Sequence *seq)
+SeqIndexBuildContext *BKE_sequencer_proxy_rebuild_context(Main *bmain, Scene *scene, Sequence *seq)
{
SeqIndexBuildContext *context;
Sequence *nseq;
@@ -1400,7 +1368,7 @@ struct SeqIndexBuildContext *seq_proxy_rebuild_context(Main *bmain, Scene *scene
context = MEM_callocN(sizeof(SeqIndexBuildContext), "seq proxy rebuild context");
- nseq = seq_dupli_recursive(scene, scene, seq, 0);
+ nseq = BKE_sequence_dupli_recursive(scene, scene, seq, 0);
context->tc_flags = nseq->strip->proxy->build_tc_flags;
context->size_flags = nseq->strip->proxy->build_size_flags;
@@ -1423,7 +1391,7 @@ struct SeqIndexBuildContext *seq_proxy_rebuild_context(Main *bmain, Scene *scene
return context;
}
-void seq_proxy_rebuild(SeqIndexBuildContext *context, short *stop, short *do_update, float *progress)
+void BKE_sequencer_proxy_rebuild(SeqIndexBuildContext *context, short *stop, short *do_update, float *progress)
{
SeqRenderData render_context;
Sequence *seq = context->seq;
@@ -1449,15 +1417,11 @@ void seq_proxy_rebuild(SeqIndexBuildContext *context, short *stop, short *do_upd
/* fail safe code */
- render_context = seq_new_render_data(
- context->bmain, context->scene,
- (scene->r.size * (float)scene->r.xsch) / 100.0f + 0.5f,
- (scene->r.size * (float)scene->r.ysch) / 100.0f + 0.5f,
- 100);
+ render_context = BKE_sequencer_new_render_data(context->bmain, context->scene,
+ (scene->r.size * (float) scene->r.xsch) / 100.0f + 0.5f,
+ (scene->r.size * (float) scene->r.ysch) / 100.0f + 0.5f, 100);
- for (cfra = seq->startdisp + seq->startstill;
- cfra < seq->enddisp - seq->endstill; cfra++)
- {
+ for (cfra = seq->startdisp + seq->startstill; cfra < seq->enddisp - seq->endstill; cfra++) {
if (context->size_flags & IMB_PROXY_25) {
seq_proxy_build_frame(render_context, seq, cfra, 25);
}
@@ -1471,16 +1435,15 @@ void seq_proxy_rebuild(SeqIndexBuildContext *context, short *stop, short *do_upd
seq_proxy_build_frame(render_context, seq, cfra, 100);
}
- *progress = (float)cfra / (seq->enddisp - seq->endstill -
- seq->startdisp + seq->startstill);
+ *progress = (float) cfra / (seq->enddisp - seq->endstill - seq->startdisp + seq->startstill);
*do_update = TRUE;
- if (*stop || G.afbreek)
+ if (*stop || G.is_break)
break;
}
}
-void seq_proxy_rebuild_finish(SeqIndexBuildContext *context, short stop)
+void BKE_sequencer_proxy_rebuild_finish(SeqIndexBuildContext *context, short stop)
{
if (context->index_context) {
IMB_close_anim_proxies(context->seq->anim);
@@ -1493,9 +1456,7 @@ void seq_proxy_rebuild_finish(SeqIndexBuildContext *context, short stop)
MEM_freeN(context);
}
-/* **********************************************************************
- * color balance
- * ********************************************************************** */
+/*********************** color balance *************************/
static StripColorBalance calc_cb(StripColorBalance *cb_)
{
@@ -1548,7 +1509,8 @@ MINLINE float color_balance_fl(float in, const float lift, const float gain, con
float x = (((in - 1.0f) * lift) + 1.0f) * gain;
/* prevent NaN */
- if (x < 0.f) x = 0.f;
+ if (x < 0.f)
+ x = 0.f;
return powf(x, gamma) * mul;
}
@@ -1560,6 +1522,7 @@ static void make_cb_table_byte(float lift, float gain, float gamma,
for (y = 0; y < 256; y++) {
float v = color_balance_fl((float)y * (1.0f / 255.0f), lift, gain, gamma, mul);
+
table[y] = FTOCHAR(v);
}
}
@@ -1571,47 +1534,58 @@ static void make_cb_table_float(float lift, float gain, float gamma,
for (y = 0; y < 256; y++) {
float v = color_balance_fl((float)y * (1.0f / 255.0f), lift, gain, gamma, mul);
+
table[y] = v;
}
}
-static void color_balance_byte_byte(Sequence *seq, ImBuf *ibuf, float mul)
+static void color_balance_byte_byte(StripColorBalance *cb_, unsigned char *rect, unsigned char *mask_rect, int width, int height, float mul)
{
unsigned char cb_tab[3][256];
int c;
- unsigned char *p = (unsigned char *) ibuf->rect;
- unsigned char *e = p + ibuf->x * 4 * ibuf->y;
+ unsigned char *p = rect;
+ unsigned char *e = p + width * 4 * height;
+ unsigned char *m = mask_rect;
- StripColorBalance cb = calc_cb(seq->strip->color_balance);
+ StripColorBalance cb = calc_cb(cb_);
for (c = 0; c < 3; c++) {
- make_cb_table_byte(cb.lift[c], cb.gain[c], cb.gamma[c],
- cb_tab[c], mul);
+ make_cb_table_byte(cb.lift[c], cb.gain[c], cb.gamma[c], cb_tab[c], mul);
}
while (p < e) {
- p[0] = cb_tab[0][p[0]];
- p[1] = cb_tab[1][p[1]];
- p[2] = cb_tab[2][p[2]];
+ if (m) {
+ float t[3] = {m[0] / 255.0f, m[1] / 255.0f, m[2] / 255.0f};
+
+ p[0] = p[0] * (1.0f - t[0]) + t[0] * cb_tab[0][p[0]];
+ p[1] = p[1] * (1.0f - t[1]) + t[1] * cb_tab[1][p[1]];
+ p[2] = p[2] * (1.0f - t[2]) + t[2] * cb_tab[2][p[2]];
+
+ m += 4;
+ }
+ else {
+ p[0] = cb_tab[0][p[0]];
+ p[1] = cb_tab[1][p[1]];
+ p[2] = cb_tab[2][p[2]];
+ }
p += 4;
}
}
-static void color_balance_byte_float(Sequence *seq, ImBuf *ibuf, float mul)
+static void color_balance_byte_float(StripColorBalance *cb_, unsigned char *rect, float *rect_float, unsigned char *mask_rect, int width, int height, float mul)
{
float cb_tab[4][256];
int c, i;
- unsigned char *p = (unsigned char *) ibuf->rect;
- unsigned char *e = p + ibuf->x * 4 * ibuf->y;
+ unsigned char *p = rect;
+ unsigned char *e = p + width * 4 * height;
+ unsigned char *m = mask_rect;
float *o;
StripColorBalance cb;
- imb_addrectfloatImBuf(ibuf);
-
- o = ibuf->rect_float;
+ o = rect_float;
- cb = calc_cb(seq->strip->color_balance);
+ cb = calc_cb(cb_);
for (c = 0; c < 3; c++) {
make_cb_table_float(cb.lift[c], cb.gain[c], cb.gamma[c], cb_tab[c], mul);
@@ -1622,41 +1596,179 @@ static void color_balance_byte_float(Sequence *seq, ImBuf *ibuf, float mul)
}
while (p < e) {
- o[0] = cb_tab[0][p[0]];
- o[1] = cb_tab[1][p[1]];
- o[2] = cb_tab[2][p[2]];
+ if (m) {
+ float t[3] = {m[0] / 255.0f, m[1] / 255.0f, m[2] / 255.0f};
+
+ p[0] = p[0] * (1.0f - t[0]) + t[0] * cb_tab[0][p[0]];
+ p[1] = p[1] * (1.0f - t[1]) + t[1] * cb_tab[1][p[1]];
+ p[2] = p[2] * (1.0f - t[2]) + t[2] * cb_tab[2][p[2]];
+
+ m += 4;
+ }
+ else {
+ o[0] = cb_tab[0][p[0]];
+ o[1] = cb_tab[1][p[1]];
+ o[2] = cb_tab[2][p[2]];
+ }
+
o[3] = cb_tab[3][p[3]];
p += 4; o += 4;
}
}
-static void color_balance_float_float(Sequence *seq, ImBuf *ibuf, float mul)
+static void color_balance_float_float(StripColorBalance *cb_, float *rect_float, float *mask_rect_float, int width, int height, float mul)
{
- float *p = ibuf->rect_float;
- float *e = ibuf->rect_float + ibuf->x * 4 * ibuf->y;
- StripColorBalance cb = calc_cb(seq->strip->color_balance);
+ float *p = rect_float;
+ float *e = rect_float + width * 4 * height;
+ float *m = mask_rect_float;
+ StripColorBalance cb = calc_cb(cb_);
while (p < e) {
int c;
for (c = 0; c < 3; c++) {
- p[c] = color_balance_fl(p[c], cb.lift[c], cb.gain[c], cb.gamma[c], mul);
+ float t = color_balance_fl(p[c], cb.lift[c], cb.gain[c], cb.gamma[c], mul);
+
+ if (m)
+ p[c] = p[c] * (1.0f - m[c]) + t * m[c];
+ else
+ p[c] = t;
}
+
p += 4;
+ if (m)
+ m += 4;
}
}
-static void color_balance(Sequence *seq, ImBuf *ibuf, float mul)
+typedef struct ColorBalanceInitData {
+ StripColorBalance *cb;
+ ImBuf *ibuf;
+ float mul;
+ ImBuf *mask;
+ short make_float;
+} ColorBalanceInitData;
+
+typedef struct ColorBalanceThread {
+ StripColorBalance *cb;
+ float mul;
+
+ int width, height;
+
+ unsigned char *rect, *mask_rect;
+ float *rect_float, *mask_rect_float;
+
+ short make_float;
+} ColorBalanceThread;
+
+static void color_balance_init_handle(void *handle_v, int start_line, int tot_line, void *init_data_v)
{
- if (ibuf->rect_float) {
- color_balance_float_float(seq, ibuf, mul);
+ ColorBalanceThread *handle = (ColorBalanceThread *) handle_v;
+ ColorBalanceInitData *init_data = (ColorBalanceInitData *) init_data_v;
+ ImBuf *ibuf = init_data->ibuf;
+ ImBuf *mask = init_data->mask;
+
+ int offset = 4 * start_line * ibuf->x;
+
+ memset(handle, 0, sizeof(ColorBalanceThread));
+
+ handle->cb = init_data->cb;
+ handle->mul = init_data->mul;
+ handle->width = ibuf->x;
+ handle->height = tot_line;
+ handle->make_float = init_data->make_float;
+
+ if (ibuf->rect)
+ handle->rect = (unsigned char *) ibuf->rect + offset;
+
+ if (ibuf->rect_float)
+ handle->rect_float = ibuf->rect_float + offset;
+
+ if (mask) {
+ if (mask->rect)
+ handle->mask_rect = (unsigned char *) mask->rect + offset;
+
+ if (mask->rect_float)
+ handle->mask_rect_float = mask->rect_float + offset;
}
- else if (seq->flag & SEQ_MAKE_FLOAT) {
- color_balance_byte_float(seq, ibuf, mul);
+ else {
+ handle->mask_rect = NULL;
+ handle->mask_rect_float = NULL;
+ }
+}
+
+static void *color_balance_do_thread(void *thread_data_v)
+{
+ ColorBalanceThread *thread_data = (ColorBalanceThread *) thread_data_v;
+ StripColorBalance *cb = thread_data->cb;
+ int width = thread_data->width, height = thread_data->height;
+ unsigned char *rect = thread_data->rect;
+ unsigned char *mask_rect = thread_data->mask_rect;
+ float *rect_float = thread_data->rect_float;
+ float *mask_rect_float = thread_data->mask_rect_float;
+ float mul = thread_data->mul;
+
+ if (rect_float) {
+ color_balance_float_float(cb, rect_float, mask_rect_float, width, height, mul);
+ }
+ else if (thread_data->make_float) {
+ color_balance_byte_float(cb, rect, rect_float, mask_rect, width, height, mul);
}
else {
- color_balance_byte_byte(seq, ibuf, mul);
+ color_balance_byte_byte(cb, rect, mask_rect, width, height, mul);
}
+
+ return NULL;
+}
+
+ImBuf *BKE_sequencer_render_mask_input(SeqRenderData context, int mask_input_type, Sequence *mask_sequence, Mask *mask_id, int cfra, int make_float)
+{
+ ImBuf *mask_input = NULL;
+
+ if (mask_input_type == SEQUENCE_MASK_INPUT_STRIP) {
+ if (mask_sequence) {
+ mask_input = seq_render_strip(context, mask_sequence, cfra);
+
+ if (make_float) {
+ if (!mask_input->rect_float)
+ IMB_float_from_rect(mask_input);
+ }
+ else {
+ if (!mask_input->rect)
+ IMB_rect_from_float(mask_input);
+ }
+ }
+ }
+ else if (mask_input_type == SEQUENCE_MASK_INPUT_ID) {
+ mask_input = seq_render_mask(context, mask_id, cfra, make_float);
+ }
+
+ return mask_input;
+}
+
+void BKE_sequencer_color_balance_apply(StripColorBalance *cb, ImBuf *ibuf, float mul, short make_float, ImBuf *mask_input)
+{
+ ColorBalanceInitData init_data;
+
+ if (!ibuf->rect_float && make_float)
+ imb_addrectfloatImBuf(ibuf);
+
+ init_data.cb = cb;
+ init_data.ibuf = ibuf;
+ init_data.mul = mul;
+ init_data.mask = NULL;
+ init_data.make_float = make_float;
+ init_data.mask = mask_input;
+
+ IMB_processor_apply_threaded(ibuf->y, sizeof(ColorBalanceThread), &init_data,
+ color_balance_init_handle, color_balance_do_thread);
+
+ /* color balance either happens on float buffer or byte buffer, but never on both,
+ * free byte buffer if there's float buffer since float buffer would be used for
+ * color balance in favor of byte buffer
+ */
+ if (ibuf->rect_float && ibuf->rect)
+ imb_freerectImBuf(ibuf);
}
/*
@@ -1677,14 +1789,11 @@ static void color_balance(Sequence *seq, ImBuf *ibuf, float mul)
* - Premultiply
*/
-int input_have_to_preprocess(
- SeqRenderData UNUSED(context), Sequence *seq, float UNUSED(cfra))
+int BKE_sequencer_input_have_to_preprocess(SeqRenderData UNUSED(context), Sequence *seq, float UNUSED(cfra))
{
float mul;
- if (seq->flag & (SEQ_FILTERY | SEQ_USE_CROP | SEQ_USE_TRANSFORM | SEQ_FLIPX |
- SEQ_FLIPY | SEQ_USE_COLOR_BALANCE | SEQ_MAKE_PREMUL))
- {
+ if (seq->flag & (SEQ_FILTERY | SEQ_USE_CROP | SEQ_USE_TRANSFORM | SEQ_FLIPX | SEQ_FLIPY | SEQ_MAKE_PREMUL | SEQ_MAKE_FLOAT)) {
return TRUE;
}
@@ -1701,13 +1810,16 @@ int input_have_to_preprocess(
if (seq->sat != 1.0f) {
return TRUE;
}
+
+ if (seq->modifiers.first) {
+ return TRUE;
+ }
return FALSE;
}
-static ImBuf *input_preprocess(
- SeqRenderData context, Sequence *seq, float UNUSED(cfra), ImBuf *ibuf,
- int is_proxy_image, int is_preprocessed)
+static ImBuf *input_preprocess(SeqRenderData context, Sequence *seq, float cfra, ImBuf *ibuf,
+ int is_proxy_image, int is_preprocessed)
{
float mul;
@@ -1723,16 +1835,12 @@ static ImBuf *input_preprocess(
StripCrop c = {0};
StripTransform t = {0};
int sx, sy, dx, dy;
- double xscale = 1.0;
- double yscale = 1.0;
if (is_proxy_image) {
- double f = seq_rendersize_to_scale_factor(
- context.preview_render_size);
+ double f = seq_rendersize_to_scale_factor(context.preview_render_size);
if (f != 1.0) {
- IMB_scalefastImBuf(
- ibuf, ibuf->x / f, ibuf->y / f);
+ IMB_scalefastImBuf(ibuf, ibuf->x / f, ibuf->y / f);
}
}
@@ -1743,18 +1851,6 @@ static ImBuf *input_preprocess(
t = *seq->strip->transform;
}
- xscale = context.scene->r.xsch ?
- ((double) context.rectx /
- (double) context.scene->r.xsch) : 1.0;
- yscale = context.scene->r.ysch ?
- ((double) context.recty /
- (double) context.scene->r.ysch) : 1.0;
-
- c.left *= xscale; c.right *= xscale;
- c.top *= yscale; c.bottom *= yscale;
-
- t.xofs *= xscale; t.yofs *= yscale;
-
sx = ibuf->x - c.left - c.right;
sy = ibuf->y - c.top - c.bottom;
dx = sx;
@@ -1778,12 +1874,9 @@ static ImBuf *input_preprocess(
make_black_ibuf(ibuf);
}
else {
- ImBuf *i = IMB_allocImBuf(
- dx, dy, 32,
- ibuf->rect_float ? IB_rectfloat : IB_rect);
+ ImBuf *i = IMB_allocImBuf(dx, dy, 32, ibuf->rect_float ? IB_rectfloat : IB_rect);
- IMB_rectcpy(i, ibuf,
- t.xofs, t.yofs, c.left, c.bottom, sx, sy);
+ IMB_rectcpy(i, ibuf, t.xofs, t.yofs, c.left, c.bottom, sx, sy);
IMB_freeImBuf(ibuf);
@@ -1809,14 +1902,10 @@ static ImBuf *input_preprocess(
mul *= seq->blend_opacity / 100.0f;
}
- if (seq->flag & SEQ_USE_COLOR_BALANCE && seq->strip->color_balance) {
- color_balance(seq, ibuf, mul);
- mul = 1.0;
- }
-
if (seq->flag & SEQ_MAKE_FLOAT) {
- if (!ibuf->rect_float)
- IMB_float_from_rect_simple(ibuf);
+ if (!ibuf->rect_float) {
+ BKE_sequencer_imbuf_to_sequencer_space(context.scene, ibuf, TRUE);
+ }
if (ibuf->rect) {
imb_freerectImBuf(ibuf);
@@ -1833,7 +1922,6 @@ static ImBuf *input_preprocess(
}
}
-
if (ibuf->x != context.rectx || ibuf->y != context.recty) {
if (context.scene->r.mode & R_OSA) {
IMB_scaleImBuf(ibuf, (short)context.rectx, (short)context.recty);
@@ -1842,24 +1930,29 @@ static ImBuf *input_preprocess(
IMB_scalefastImBuf(ibuf, (short)context.rectx, (short)context.recty);
}
}
+
+ if (seq->modifiers.first) {
+ ImBuf *ibuf_new = BKE_sequence_modifier_apply_stack(context, seq, ibuf, cfra);
+
+ if (ibuf_new != ibuf) {
+ IMB_freeImBuf(ibuf);
+ ibuf = ibuf_new;
+ }
+ }
+
return ibuf;
}
-static ImBuf *copy_from_ibuf_still(SeqRenderData context, Sequence *seq,
- float nr)
+static ImBuf *copy_from_ibuf_still(SeqRenderData context, Sequence *seq, float nr)
{
ImBuf *rval = NULL;
ImBuf *ibuf = NULL;
if (nr == 0) {
- ibuf = seq_stripelem_cache_get(
- context, seq, seq->start,
- SEQ_STRIPELEM_IBUF_STARTSTILL);
+ ibuf = BKE_sequencer_cache_get(context, seq, seq->start, SEQ_STRIPELEM_IBUF_STARTSTILL);
}
else if (nr == seq->len - 1) {
- ibuf = seq_stripelem_cache_get(
- context, seq, seq->start,
- SEQ_STRIPELEM_IBUF_ENDSTILL);
+ ibuf = BKE_sequencer_cache_get(context, seq, seq->start, SEQ_STRIPELEM_IBUF_ENDSTILL);
}
if (ibuf) {
@@ -1870,49 +1963,116 @@ static ImBuf *copy_from_ibuf_still(SeqRenderData context, Sequence *seq,
return rval;
}
-static void copy_to_ibuf_still(SeqRenderData context, Sequence *seq, float nr,
- ImBuf *ibuf)
+static void copy_to_ibuf_still(SeqRenderData context, Sequence *seq, float nr, ImBuf *ibuf)
{
+ /* warning: ibuf may be NULL if the video fails to load */
if (nr == 0 || nr == seq->len - 1) {
/* we have to store a copy, since the passed ibuf
* could be preprocessed afterwards (thereby silently
* changing the cached image... */
ibuf = IMB_dupImBuf(ibuf);
+ if (ibuf) {
+ sequencer_imbuf_assign_spaces(context.scene, ibuf);
+ }
+
if (nr == 0) {
- seq_stripelem_cache_put(
- context, seq, seq->start,
- SEQ_STRIPELEM_IBUF_STARTSTILL, ibuf);
+ BKE_sequencer_cache_put(context, seq, seq->start, SEQ_STRIPELEM_IBUF_STARTSTILL, ibuf);
}
if (nr == seq->len - 1) {
- seq_stripelem_cache_put(
- context, seq, seq->start,
- SEQ_STRIPELEM_IBUF_ENDSTILL, ibuf);
+ BKE_sequencer_cache_put(context, seq, seq->start, SEQ_STRIPELEM_IBUF_ENDSTILL, ibuf);
}
IMB_freeImBuf(ibuf);
}
}
-/* **********************************************************************
- * strip rendering functions
- * ********************************************************************** */
+/*********************** strip rendering functions *************************/
+
+typedef struct RenderEffectInitData {
+ struct SeqEffectHandle *sh;
+ SeqRenderData context;
+ Sequence *seq;
+ float cfra, facf0, facf1;
+ ImBuf *ibuf1, *ibuf2, *ibuf3;
+
+ ImBuf *out;
+} RenderEffectInitData;
+
+typedef struct RenderEffectThread {
+ struct SeqEffectHandle *sh;
+ SeqRenderData context;
+ Sequence *seq;
+ float cfra, facf0, facf1;
+ ImBuf *ibuf1, *ibuf2, *ibuf3;
+
+ ImBuf *out;
+ int start_line, tot_line;
+} RenderEffectThread;
+
+static void render_effect_execute_init_handle(void *handle_v, int start_line, int tot_line, void *init_data_v)
+{
+ RenderEffectThread *handle = (RenderEffectThread *) handle_v;
+ RenderEffectInitData *init_data = (RenderEffectInitData *) init_data_v;
+
+ handle->sh = init_data->sh;
+ handle->context = init_data->context;
+ handle->seq = init_data->seq;
+ handle->cfra = init_data->cfra;
+ handle->facf0 = init_data->facf0;
+ handle->facf1 = init_data->facf1;
+ handle->ibuf1 = init_data->ibuf1;
+ handle->ibuf2 = init_data->ibuf2;
+ handle->ibuf3 = init_data->ibuf3;
+ handle->out = init_data->out;
+
+ handle->start_line = start_line;
+ handle->tot_line = tot_line;
+}
+
+static void *render_effect_execute_do_thread(void *thread_data_v)
+{
+ RenderEffectThread *thread_data = (RenderEffectThread *) thread_data_v;
+
+ thread_data->sh->execute_slice(thread_data->context, thread_data->seq, thread_data->cfra,
+ thread_data->facf0, thread_data->facf1, thread_data->ibuf1,
+ thread_data->ibuf2, thread_data->ibuf3, thread_data->start_line,
+ thread_data->tot_line, thread_data->out);
-static ImBuf *seq_render_strip_stack(
- SeqRenderData context, ListBase *seqbasep, float cfra, int chanshown);
+ return NULL;
+}
+
+static ImBuf *seq_render_effect_execute_threaded(struct SeqEffectHandle *sh, SeqRenderData context, Sequence *seq,
+ float cfra, float facf0, float facf1,
+ ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *ibuf3)
+{
+ RenderEffectInitData init_data;
+ ImBuf *out = sh->init_execution(context, ibuf1, ibuf2, ibuf3);
-static ImBuf *seq_render_strip(
- SeqRenderData context, Sequence *seq, float cfra);
+ init_data.sh = sh;
+ init_data.context = context;
+ init_data.seq = seq;
+ init_data.cfra = cfra;
+ init_data.facf0 = facf0;
+ init_data.facf1 = facf1;
+ init_data.ibuf1 = ibuf1;
+ init_data.ibuf2 = ibuf2;
+ init_data.ibuf3 = ibuf3;
+ init_data.out = out;
+ IMB_processor_apply_threaded(out->y, sizeof(RenderEffectThread), &init_data,
+ render_effect_execute_init_handle, render_effect_execute_do_thread);
-static ImBuf *seq_render_effect_strip_impl(
- SeqRenderData context, Sequence *seq, float cfra)
+ return out;
+}
+
+static ImBuf *seq_render_effect_strip_impl(SeqRenderData context, Sequence *seq, float cfra)
{
float fac, facf;
int early_out;
int i;
- struct SeqEffectHandle sh = get_sequence_effect(seq);
+ struct SeqEffectHandle sh = BKE_sequence_get_effect(seq);
FCurve *fcu = NULL;
ImBuf *ibuf[3];
Sequence *input[3];
@@ -1922,7 +2082,8 @@ static ImBuf *seq_render_effect_strip_impl(
input[0] = seq->seq1; input[1] = seq->seq2; input[2] = seq->seq3;
- if (!sh.execute) { /* effect not supported in this version... */
+ if (!sh.execute && !(sh.execute_slice && sh.init_execution)) {
+ /* effect not supported in this version... */
out = IMB_allocImBuf(context.rectx, context.recty, 32, IB_rect);
return out;
}
@@ -1950,19 +2111,19 @@ static ImBuf *seq_render_effect_strip_impl(
switch (early_out) {
case EARLY_NO_INPUT:
- out = sh.execute(context, seq, cfra, fac, facf,
- NULL, NULL, NULL);
+ out = sh.execute(context, seq, cfra, fac, facf, NULL, NULL, NULL);
break;
case EARLY_DO_EFFECT:
for (i = 0; i < 3; i++) {
if (input[i])
- ibuf[i] = seq_render_strip(
- context, input[i], cfra);
+ ibuf[i] = seq_render_strip(context, input[i], cfra);
}
if (ibuf[0] && ibuf[1]) {
- out = sh.execute(context, seq, cfra, fac, facf,
- ibuf[0], ibuf[1], ibuf[2]);
+ if (sh.multithreaded)
+ out = seq_render_effect_execute_threaded(&sh, context, seq, cfra, fac, facf, ibuf[0], ibuf[1], ibuf[2]);
+ else
+ out = sh.execute(context, seq, cfra, fac, facf, ibuf[0], ibuf[1], ibuf[2]);
}
break;
case EARLY_USE_INPUT_1:
@@ -1970,7 +2131,7 @@ static ImBuf *seq_render_effect_strip_impl(
ibuf[0] = seq_render_strip(context, input[0], cfra);
}
if (ibuf[0]) {
- if (input_have_to_preprocess(context, seq, cfra)) {
+ if (BKE_sequencer_input_have_to_preprocess(context, seq, cfra)) {
out = IMB_dupImBuf(ibuf[0]);
}
else {
@@ -1984,7 +2145,7 @@ static ImBuf *seq_render_effect_strip_impl(
ibuf[1] = seq_render_strip(context, input[1], cfra);
}
if (ibuf[1]) {
- if (input_have_to_preprocess(context, seq, cfra)) {
+ if (BKE_sequencer_input_have_to_preprocess(context, seq, cfra)) {
out = IMB_dupImBuf(ibuf[1]);
}
else {
@@ -2006,8 +2167,7 @@ static ImBuf *seq_render_effect_strip_impl(
return out;
}
-static ImBuf *seq_render_movieclip_strip(
- SeqRenderData context, Sequence *seq, float nr)
+static ImBuf *seq_render_movieclip_strip(SeqRenderData context, Sequence *seq, float nr)
{
ImBuf *ibuf = NULL;
MovieClipUser user;
@@ -2019,7 +2179,7 @@ static ImBuf *seq_render_movieclip_strip(
memset(&user, 0, sizeof(MovieClipUser));
- BKE_movieclip_user_set_frame(&user, nr + seq->anim_startofs);
+ BKE_movieclip_user_set_frame(&user, nr + seq->anim_startofs + seq->clip->start_frame);
user.render_size = MCLIP_PROXY_RENDER_SIZE_FULL;
@@ -2046,50 +2206,56 @@ static ImBuf *seq_render_movieclip_strip(
}
if (seq->clip_flag & SEQ_MOVIECLIP_RENDER_STABILIZED) {
- ibuf = BKE_movieclip_get_stable_ibuf(
- seq->clip, &user, tloc, &tscale, &tangle,
- 0);
+ ibuf = BKE_movieclip_get_stable_ibuf(seq->clip, &user, tloc, &tscale, &tangle, 0);
}
else {
- ibuf = BKE_movieclip_get_ibuf_flag(
- seq->clip, &user, 0, MOVIECLIP_CACHE_SKIP);
+ ibuf = BKE_movieclip_get_ibuf_flag(seq->clip, &user, 0, MOVIECLIP_CACHE_SKIP);
}
return ibuf;
}
-static ImBuf *seq_render_mask_strip(
- SeqRenderData context, Sequence *seq, float nr)
+static ImBuf *seq_render_mask(SeqRenderData context, Mask *mask, float nr, short make_float)
{
/* TODO - add option to rasterize to alpha imbuf? */
ImBuf *ibuf = NULL;
float *maskbuf;
int i;
- if (!seq->mask) {
+ if (!mask) {
return NULL;
}
+ else {
+ Mask *mask_temp;
+ MaskRasterHandle *mr_handle;
- BKE_mask_evaluate(seq->mask, seq->mask->sfra + nr, TRUE);
+ mask_temp = BKE_mask_copy_nolib(mask);
- maskbuf = MEM_callocN(sizeof(float) * context.rectx * context.recty, __func__);
+ BKE_mask_evaluate(mask_temp, mask->sfra + nr, TRUE);
- if (seq->flag & SEQ_MAKE_FLOAT) {
+ maskbuf = MEM_mallocN(sizeof(float) * context.rectx * context.recty, __func__);
+
+ mr_handle = BKE_maskrasterize_handle_new();
+
+ BKE_maskrasterize_handle_init(mr_handle, mask_temp, context.rectx, context.recty, TRUE, TRUE, TRUE);
+
+ BKE_mask_free_nolib(mask_temp);
+ MEM_freeN(mask_temp);
+
+ BKE_maskrasterize_buffer(mr_handle, context.rectx, context.recty, maskbuf);
+
+ BKE_maskrasterize_handle_free(mr_handle);
+ }
+
+
+ if (make_float) {
/* pixels */
float *fp_src;
float *fp_dst;
ibuf = IMB_allocImBuf(context.rectx, context.recty, 32, IB_rectfloat);
- BKE_mask_rasterize(seq->mask,
- context.rectx, context.recty,
- maskbuf,
- TRUE,
- FALSE, /*XXX- TODO: make on/off for anti-aliasing */
- TRUE /*XXX- TODO: make on/off for feather */
- );
-
fp_src = maskbuf;
fp_dst = ibuf->rect_float;
i = context.rectx * context.recty;
@@ -2108,14 +2274,6 @@ static ImBuf *seq_render_mask_strip(
ibuf = IMB_allocImBuf(context.rectx, context.recty, 32, IB_rect);
- BKE_mask_rasterize(seq->mask,
- context.rectx, context.recty,
- maskbuf,
- TRUE,
- FALSE, /*XXX- TODO: make on/off for anti-aliasing */
- TRUE /*XXX- TODO: make on/off for feather */
- );
-
fp_src = maskbuf;
ub_dst = (unsigned char *)ibuf->rect;
i = context.rectx * context.recty;
@@ -2133,8 +2291,14 @@ static ImBuf *seq_render_mask_strip(
return ibuf;
}
-static ImBuf *seq_render_scene_strip(
- SeqRenderData context, Sequence *seq, float nr)
+static ImBuf *seq_render_mask_strip(SeqRenderData context, Sequence *seq, float nr)
+{
+ short make_float = seq->flag & SEQ_MAKE_FLOAT;
+
+ return seq_render_mask(context, seq->mask, nr, make_float);
+}
+
+static ImBuf *seq_render_scene_strip(SeqRenderData context, Sequence *seq, float nr)
{
ImBuf *ibuf = NULL;
float frame;
@@ -2152,7 +2316,7 @@ static ImBuf *seq_render_scene_strip(
* for display in render/imagewindow
*
* Hmm, don't see, why we can't do that all the time,
- * and since G.rendering is uhm, gone... (Peter)
+ * and since G.is_rendering is uhm, gone... (Peter)
*/
/* New info:
@@ -2173,9 +2337,9 @@ static ImBuf *seq_render_scene_strip(
* -jahka
*/
- int rendering = G.rendering;
+ int rendering = G.is_rendering;
int doseq;
- int doseq_gl = G.rendering ? /*(scene->r.seq_flag & R_SEQ_GL_REND)*/ 0 : /*(scene->r.seq_flag & R_SEQ_GL_PREV)*/ 1;
+ int doseq_gl = G.is_rendering ? /*(scene->r.seq_flag & R_SEQ_GL_REND)*/ 0 : /*(scene->r.seq_flag & R_SEQ_GL_PREV)*/ 1;
int have_seq = FALSE;
Scene *scene;
@@ -2221,12 +2385,12 @@ static ImBuf *seq_render_scene_strip(
/* for old scened this can be uninitialized,
* should probably be added to do_versions at some point if the functionality stays */
if (context.scene->r.seq_prev_type == 0)
- context.scene->r.seq_prev_type = 3 /* ==OB_SOLID */;
+ context.scene->r.seq_prev_type = 3 /* == OB_SOLID */;
/* opengl offscreen render */
BKE_scene_update_for_newframe(context.bmain, scene, scene->lay);
ibuf = sequencer_view3d_cb(scene, camera, context.rectx, context.recty,
- IB_rect, context.scene->r.seq_prev_type, TRUE, err_out);
+ IB_rect, context.scene->r.seq_prev_type, TRUE, FALSE, err_out);
if (ibuf == NULL) {
fprintf(stderr, "seq_render_scene_strip failed to get opengl buffer: %s\n", err_out);
}
@@ -2243,7 +2407,7 @@ static ImBuf *seq_render_scene_strip(
RE_BlenderFrame(re, context.bmain, scene, NULL, camera, scene->lay, frame, FALSE);
/* restore previous state after it was toggled on & off by RE_BlenderFrame */
- G.rendering = rendering;
+ G.is_rendering = rendering;
}
RE_AcquireResultImage(re, &rres);
@@ -2257,11 +2421,7 @@ static ImBuf *seq_render_scene_strip(
}
/* float buffers in the sequencer are not linear */
- if (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
- else
- ibuf->profile = IB_PROFILE_NONE;
- IMB_convert_profile(ibuf, IB_PROFILE_SRGB);
+ BKE_sequencer_imbuf_to_sequencer_space(context.scene, ibuf, FALSE);
}
else if (rres.rect32) {
ibuf = IMB_allocImBuf(rres.rectx, rres.recty, 32, IB_rect);
@@ -2289,165 +2449,149 @@ static ImBuf *seq_render_scene_strip(
return ibuf;
}
-static ImBuf *seq_render_strip(SeqRenderData context, Sequence *seq, float cfra)
+static ImBuf *do_render_strip_uncached(SeqRenderData context, Sequence *seq, float cfra)
{
ImBuf *ibuf = NULL;
- char name[FILE_MAX];
- int use_preprocess = input_have_to_preprocess(context, seq, cfra);
- int is_proxy_image = FALSE;
float nr = give_stripelem_index(seq, cfra);
- /* all effects are handled similarly with the exception of speed effect */
int type = (seq->type & SEQ_TYPE_EFFECT && seq->type != SEQ_TYPE_SPEED) ? SEQ_TYPE_EFFECT : seq->type;
- int is_preprocessed = !ELEM3(type, SEQ_TYPE_IMAGE, SEQ_TYPE_MOVIE, SEQ_TYPE_SCENE);
-
- ibuf = seq_stripelem_cache_get(context, seq, cfra, SEQ_STRIPELEM_IBUF);
-
- /* currently, we cache preprocessed images in SEQ_STRIPELEM_IBUF,
- * but not(!) on SEQ_STRIPELEM_IBUF_ENDSTILL and ..._STARTSTILL */
- if (ibuf)
- use_preprocess = FALSE;
-
- if (ibuf == NULL)
- ibuf = copy_from_ibuf_still(context, seq, nr);
-
- /* MOVIECLIPs have their own proxy management */
- if (ibuf == NULL && seq->type != SEQ_TYPE_MOVIECLIP) {
- ibuf = seq_proxy_fetch(context, seq, cfra);
- is_proxy_image = (ibuf != NULL);
- }
+ int use_preprocess = BKE_sequencer_input_have_to_preprocess(context, seq, cfra);
+ char name[FILE_MAX];
- if (ibuf == NULL) switch (type) {
- case SEQ_TYPE_META:
- {
- ImBuf *meta_ibuf = NULL;
+ switch (type) {
+ case SEQ_TYPE_META:
+ {
+ ImBuf *meta_ibuf = NULL;
- if (seq->seqbase.first)
- meta_ibuf = seq_render_strip_stack(
- context, &seq->seqbase,
- seq->start + nr, 0);
+ if (seq->seqbase.first)
+ meta_ibuf = seq_render_strip_stack(context, &seq->seqbase, seq->start + nr, 0);
- if (meta_ibuf) {
- ibuf = meta_ibuf;
- if (ibuf && use_preprocess) {
- ImBuf *i = IMB_dupImBuf(ibuf);
+ if (meta_ibuf) {
+ ibuf = meta_ibuf;
+ if (ibuf && use_preprocess) {
+ ImBuf *i = IMB_dupImBuf(ibuf);
- IMB_freeImBuf(ibuf);
+ IMB_freeImBuf(ibuf);
- ibuf = i;
- }
+ ibuf = i;
}
-
- break;
}
- case SEQ_TYPE_SPEED:
- {
- ImBuf *child_ibuf = NULL;
- float f_cfra;
- SpeedControlVars *s = (SpeedControlVars *)seq->effectdata;
+ break;
+ }
+
+ case SEQ_TYPE_SPEED:
+ {
+ ImBuf *child_ibuf = NULL;
- sequence_effect_speed_rebuild_map(context.scene, seq, 0);
+ float f_cfra;
+ SpeedControlVars *s = (SpeedControlVars *)seq->effectdata;
- /* weeek! */
- f_cfra = seq->start + s->frameMap[(int)nr];
+ BKE_sequence_effect_speed_rebuild_map(context.scene, seq, 0);
- child_ibuf = seq_render_strip(context, seq->seq1, f_cfra);
+ /* weeek! */
+ f_cfra = seq->start + s->frameMap[(int)nr];
- if (child_ibuf) {
- ibuf = child_ibuf;
- if (ibuf && use_preprocess) {
- ImBuf *i = IMB_dupImBuf(ibuf);
+ child_ibuf = seq_render_strip(context, seq->seq1, f_cfra);
- IMB_freeImBuf(ibuf);
+ if (child_ibuf) {
+ ibuf = child_ibuf;
+ if (ibuf && use_preprocess) {
+ ImBuf *i = IMB_dupImBuf(ibuf);
- ibuf = i;
- }
+ IMB_freeImBuf(ibuf);
+
+ ibuf = i;
}
- break;
}
- case SEQ_TYPE_EFFECT:
- {
- ibuf = seq_render_effect_strip_impl(
- context, seq, seq->start + nr);
- break;
- }
- case SEQ_TYPE_IMAGE:
- {
- StripElem *s_elem = give_stripelem(seq, cfra);
+ break;
+ }
- if (s_elem) {
- BLI_join_dirfile(name, sizeof(name), seq->strip->dir, s_elem->name);
- BLI_path_abs(name, G.main->name);
- }
+ case SEQ_TYPE_EFFECT:
+ {
+ ibuf = seq_render_effect_strip_impl(context, seq, seq->start + nr);
+ break;
+ }
- if (s_elem && (ibuf = IMB_loadiffname(name, IB_rect))) {
- /* we don't need both (speed reasons)! */
- if (ibuf->rect_float && ibuf->rect)
- imb_freerectImBuf(ibuf);
+ case SEQ_TYPE_IMAGE:
+ {
+ StripElem *s_elem = BKE_sequencer_give_stripelem(seq, cfra);
- /* all sequencer color is done in SRGB space, linear gives odd crossfades */
- if (ibuf->profile == IB_PROFILE_LINEAR_RGB)
- IMB_convert_profile(ibuf, IB_PROFILE_NONE);
+ if (s_elem) {
+ BLI_join_dirfile(name, sizeof(name), seq->strip->dir, s_elem->name);
+ BLI_path_abs(name, G.main->name);
+ }
- copy_to_ibuf_still(context, seq, nr, ibuf);
+ /* OCIO_TODO: support configurable space for image strips */
+ if (s_elem && (ibuf = IMB_loadiffname(name, IB_rect, NULL))) {
+ /* we don't need both (speed reasons)! */
+ if (ibuf->rect_float && ibuf->rect)
+ imb_freerectImBuf(ibuf);
+
+ /* all sequencer color is done in SRGB space, linear gives odd crossfades */
+ BKE_sequencer_imbuf_to_sequencer_space(context.scene, ibuf, FALSE);
- s_elem->orig_width = ibuf->x;
- s_elem->orig_height = ibuf->y;
- }
- break;
- }
- case SEQ_TYPE_MOVIE:
- {
- seq_open_anim_file(seq);
-
- if (seq->anim) {
- IMB_anim_set_preseek(seq->anim,
- seq->anim_preseek);
-
- ibuf = IMB_anim_absolute(
- seq->anim, nr + seq->anim_startofs,
- seq->strip->proxy ?
- seq->strip->proxy->tc :
- IMB_TC_RECORD_RUN,
- seq_rendersize_to_proxysize(
- context.preview_render_size));
-
- /* we don't need both (speed reasons)! */
- if (ibuf && ibuf->rect_float && ibuf->rect)
- imb_freerectImBuf(ibuf);
- if (ibuf) {
- seq->strip->stripdata->orig_width = ibuf->x;
- seq->strip->stripdata->orig_height = ibuf->y;
- }
- }
copy_to_ibuf_still(context, seq, nr, ibuf);
- break;
+
+ s_elem->orig_width = ibuf->x;
+ s_elem->orig_height = ibuf->y;
}
- case SEQ_TYPE_SCENE:
- { // scene can be NULL after deletions
- ibuf = seq_render_scene_strip(context, seq, nr);
+ break;
+ }
- /* Scene strips update all animation, so we need to restore original state.*/
- BKE_animsys_evaluate_all_animation(context.bmain, context.scene, cfra);
+ case SEQ_TYPE_MOVIE:
+ {
+ seq_open_anim_file(seq);
- copy_to_ibuf_still(context, seq, nr, ibuf);
- break;
+ if (seq->anim) {
+ IMB_anim_set_preseek(seq->anim, seq->anim_preseek);
+
+ ibuf = IMB_anim_absolute(seq->anim, nr + seq->anim_startofs,
+ seq->strip->proxy ? seq->strip->proxy->tc : IMB_TC_RECORD_RUN,
+ seq_rendersize_to_proxysize(context.preview_render_size));
+
+ /* we don't need both (speed reasons)! */
+ if (ibuf && ibuf->rect_float && ibuf->rect)
+ imb_freerectImBuf(ibuf);
+ if (ibuf) {
+ seq->strip->stripdata->orig_width = ibuf->x;
+ seq->strip->stripdata->orig_height = ibuf->y;
+ }
}
- case SEQ_TYPE_MOVIECLIP:
- {
- ibuf = seq_render_movieclip_strip(context, seq, nr);
+ copy_to_ibuf_still(context, seq, nr, ibuf);
+ break;
+ }
- if (ibuf && use_preprocess) {
- ImBuf *i = IMB_dupImBuf(ibuf);
+ case SEQ_TYPE_SCENE:
+ {
+ /* scene can be NULL after deletions */
+ ibuf = seq_render_scene_strip(context, seq, nr);
- IMB_freeImBuf(ibuf);
+ /* Scene strips update all animation, so we need to restore original state.*/
+ BKE_animsys_evaluate_all_animation(context.bmain, context.scene, cfra);
- ibuf = i;
- }
+ copy_to_ibuf_still(context, seq, nr, ibuf);
+ break;
+ }
+
+ case SEQ_TYPE_MOVIECLIP:
+ {
+ ibuf = seq_render_movieclip_strip(context, seq, nr);
+
+ if (ibuf) {
+ /* duplicate frame so movie cache wouldn't be confused by sequencer's stuff */
+ ImBuf *i = IMB_dupImBuf(ibuf);
+ IMB_freeImBuf(ibuf);
+ ibuf = i;
+
+ if (ibuf->rect_float)
+ BKE_sequencer_imbuf_to_sequencer_space(context.scene, ibuf, FALSE);
copy_to_ibuf_still(context, seq, nr, ibuf);
- break;
}
+
+ break;
+ }
+
case SEQ_TYPE_MASK:
{
/* ibuf is alwats new */
@@ -2456,26 +2600,69 @@ static ImBuf *seq_render_strip(SeqRenderData context, Sequence *seq, float cfra)
copy_to_ibuf_still(context, seq, nr, ibuf);
break;
}
- }
+ }
+
+ if (ibuf)
+ sequencer_imbuf_assign_spaces(context.scene, ibuf);
+
+ return ibuf;
+}
+
+static ImBuf *seq_render_strip(SeqRenderData context, Sequence *seq, float cfra)
+{
+ ImBuf *ibuf = NULL;
+ int use_preprocess = BKE_sequencer_input_have_to_preprocess(context, seq, cfra);
+ int is_proxy_image = FALSE;
+ float nr = give_stripelem_index(seq, cfra);
+ /* all effects are handled similarly with the exception of speed effect */
+ int type = (seq->type & SEQ_TYPE_EFFECT && seq->type != SEQ_TYPE_SPEED) ? SEQ_TYPE_EFFECT : seq->type;
+ int is_preprocessed = !ELEM3(type, SEQ_TYPE_IMAGE, SEQ_TYPE_MOVIE, SEQ_TYPE_SCENE);
+
+ ibuf = BKE_sequencer_cache_get(context, seq, cfra, SEQ_STRIPELEM_IBUF);
+
+ /* currently, we cache preprocessed images in SEQ_STRIPELEM_IBUF,
+ * but not(!) on SEQ_STRIPELEM_IBUF_ENDSTILL and ..._STARTSTILL */
+ if (ibuf)
+ use_preprocess = FALSE;
if (ibuf == NULL)
+ ibuf = copy_from_ibuf_still(context, seq, nr);
+
+ if (ibuf == NULL) {
+ ibuf = BKE_sequencer_preprocessed_cache_get(context, seq, cfra, SEQ_STRIPELEM_IBUF);
+
+ if (ibuf == NULL) {
+ /* MOVIECLIPs have their own proxy management */
+ if (ibuf == NULL && seq->type != SEQ_TYPE_MOVIECLIP) {
+ ibuf = seq_proxy_fetch(context, seq, cfra);
+ is_proxy_image = (ibuf != NULL);
+ }
+
+ if (ibuf == NULL)
+ ibuf = do_render_strip_uncached(context, seq, cfra);
+
+ if (ibuf)
+ BKE_sequencer_preprocessed_cache_put(context, seq, cfra, SEQ_STRIPELEM_IBUF, ibuf);
+ }
+ }
+
+ if (ibuf == NULL) {
ibuf = IMB_allocImBuf(context.rectx, context.recty, 32, IB_rect);
+ sequencer_imbuf_assign_spaces(context.scene, ibuf);
+ }
if (ibuf->x != context.rectx || ibuf->y != context.recty)
use_preprocess = TRUE;
if (use_preprocess)
- ibuf = input_preprocess(context, seq, cfra, ibuf,
- is_proxy_image, is_preprocessed);
+ ibuf = input_preprocess(context, seq, cfra, ibuf, is_proxy_image, is_preprocessed);
- seq_stripelem_cache_put(context, seq, cfra, SEQ_STRIPELEM_IBUF, ibuf);
+ BKE_sequencer_cache_put(context, seq, cfra, SEQ_STRIPELEM_IBUF, ibuf);
return ibuf;
}
-/* **********************************************************************
- * strip stack rendering functions
- * ********************************************************************** */
+/*********************** strip stack rendering functions *************************/
static int seq_must_swap_input_in_blend_mode(Sequence *seq)
{
@@ -2493,7 +2680,7 @@ static int seq_must_swap_input_in_blend_mode(Sequence *seq)
static int seq_get_early_out_for_blend_mode(Sequence *seq)
{
- struct SeqEffectHandle sh = get_sequence_blend(seq);
+ struct SeqEffectHandle sh = BKE_sequence_get_blend(seq);
float facf = seq->blend_opacity / 100.0f;
int early_out = sh.early_out(seq, facf, facf);
@@ -2512,8 +2699,7 @@ static int seq_get_early_out_for_blend_mode(Sequence *seq)
return early_out;
}
-static ImBuf *seq_render_strip_stack(
- SeqRenderData context, ListBase *seqbasep, float cfra, int chanshown)
+static ImBuf *seq_render_strip_stack(SeqRenderData context, ListBase *seqbasep, float cfra, int chanshown)
{
Sequence *seq_arr[MAXSEQ + 1];
int count;
@@ -2528,14 +2714,13 @@ static ImBuf *seq_render_strip_stack(
#if 0 /* commentind since this breaks keyframing, since it resets the value on draw */
if (scene->r.cfra != cfra) {
- // XXX for prefetch and overlay offset!..., very bad!!!
+ /* XXX for prefetch and overlay offset!..., very bad!!! */
AnimData *adt = BKE_animdata_from_id(&scene->id);
BKE_animsys_evaluate_animdata(scene, &scene->id, adt, cfra, ADT_RECALC_ANIM);
}
#endif
- out = seq_stripelem_cache_get(context, seq_arr[count - 1],
- cfra, SEQ_STRIPELEM_IBUF_COMP);
+ out = BKE_sequencer_cache_get(context, seq_arr[count - 1], cfra, SEQ_STRIPELEM_IBUF_COMP);
if (out) {
return out;
@@ -2543,19 +2728,17 @@ static ImBuf *seq_render_strip_stack(
if (count == 1) {
out = seq_render_strip(context, seq_arr[0], cfra);
- seq_stripelem_cache_put(context, seq_arr[0], cfra,
- SEQ_STRIPELEM_IBUF_COMP, out);
+
+ BKE_sequencer_cache_put(context, seq_arr[0], cfra, SEQ_STRIPELEM_IBUF_COMP, out);
return out;
}
-
for (i = count - 1; i >= 0; i--) {
int early_out;
Sequence *seq = seq_arr[i];
- out = seq_stripelem_cache_get(
- context, seq, cfra, SEQ_STRIPELEM_IBUF_COMP);
+ out = BKE_sequencer_cache_get(context, seq, cfra, SEQ_STRIPELEM_IBUF_COMP);
if (out) {
break;
@@ -2589,9 +2772,7 @@ static ImBuf *seq_render_strip_stack(
}
}
- seq_stripelem_cache_put(context, seq_arr[i], cfra,
- SEQ_STRIPELEM_IBUF_COMP, out);
-
+ BKE_sequencer_cache_put(context, seq_arr[i], cfra, SEQ_STRIPELEM_IBUF_COMP, out);
i++;
@@ -2599,7 +2780,7 @@ static ImBuf *seq_render_strip_stack(
Sequence *seq = seq_arr[i];
if (seq_get_early_out_for_blend_mode(seq) == EARLY_DO_EFFECT) {
- struct SeqEffectHandle sh = get_sequence_blend(seq);
+ struct SeqEffectHandle sh = BKE_sequence_get_blend(seq);
ImBuf *ibuf1 = out;
ImBuf *ibuf2 = seq_render_strip(context, seq, cfra);
@@ -2607,22 +2788,23 @@ static ImBuf *seq_render_strip_stack(
int swap_input = seq_must_swap_input_in_blend_mode(seq);
if (swap_input) {
- out = sh.execute(context, seq, cfra,
- facf, facf,
- ibuf2, ibuf1, NULL);
+ if (sh.multithreaded)
+ out = seq_render_effect_execute_threaded(&sh, context, seq, cfra, facf, facf, ibuf2, ibuf1, NULL);
+ else
+ out = sh.execute(context, seq, cfra, facf, facf, ibuf2, ibuf1, NULL);
}
else {
- out = sh.execute(context, seq, cfra,
- facf, facf,
- ibuf1, ibuf2, NULL);
+ if (sh.multithreaded)
+ out = seq_render_effect_execute_threaded(&sh, context, seq, cfra, facf, facf, ibuf1, ibuf2, NULL);
+ else
+ out = sh.execute(context, seq, cfra, facf, facf, ibuf1, ibuf2, NULL);
}
IMB_freeImBuf(ibuf1);
IMB_freeImBuf(ibuf2);
}
- seq_stripelem_cache_put(context, seq_arr[i], cfra,
- SEQ_STRIPELEM_IBUF_COMP, out);
+ BKE_sequencer_cache_put(context, seq_arr[i], cfra, SEQ_STRIPELEM_IBUF_COMP, out);
}
return out;
@@ -2633,7 +2815,7 @@ static ImBuf *seq_render_strip_stack(
* you have to free after usage!
*/
-ImBuf *give_ibuf_seq(SeqRenderData context, float cfra, int chanshown)
+ImBuf *BKE_sequencer_give_ibuf(SeqRenderData context, float cfra, int chanshown)
{
Editing *ed = BKE_sequencer_editing_get(context.scene, FALSE);
int count;
@@ -2653,30 +2835,17 @@ ImBuf *give_ibuf_seq(SeqRenderData context, float cfra, int chanshown)
return seq_render_strip_stack(context, seqbasep, cfra, chanshown);
}
-ImBuf *give_ibuf_seqbase(SeqRenderData context, float cfra, int chanshown, ListBase *seqbasep)
+ImBuf *BKE_sequencer_give_ibuf_seqbase(SeqRenderData context, float cfra, int chanshown, ListBase *seqbasep)
{
return seq_render_strip_stack(context, seqbasep, cfra, chanshown);
}
-ImBuf *give_ibuf_seq_direct(SeqRenderData context, float cfra, Sequence *seq)
+ImBuf *BKE_sequencer_give_ibuf_direct(SeqRenderData context, float cfra, Sequence *seq)
{
return seq_render_strip(context, seq, cfra);
}
-#if 0
-/* check used when we need to change seq->blend_mode but not to effect or audio strips */
-static int seq_can_blend(Sequence *seq)
-{
- if (ELEM4(seq->type, SEQ_TYPE_IMAGE, SEQ_TYPE_META, SEQ_TYPE_SCENE, SEQ_TYPE_MOVIE)) {
- return 1;
- }
- else {
- return 0;
- }
-}
-#endif
-
/* *********************** threading api ******************* */
static ListBase running_threads;
@@ -2721,152 +2890,7 @@ typedef struct PrefetchQueueElem {
ImBuf *ibuf;
} PrefetchQueueElem;
-#if 0
-static void *seq_prefetch_thread(void *This_)
-{
- PrefetchThread *This = This_;
-
- while (!seq_thread_shutdown) {
- PrefetchQueueElem *e;
- int s_last;
-
- pthread_mutex_lock(&queue_lock);
- e = prefetch_wait.first;
- if (e) {
- BLI_remlink(&prefetch_wait, e);
- }
- s_last = seq_last_given_monoton_cfra;
-
- This->current = e;
-
- pthread_mutex_unlock(&queue_lock);
-
- if (!e) {
- pthread_mutex_lock(&prefetch_ready_lock);
-
- This->running = FALSE;
-
- pthread_cond_signal(&prefetch_ready_cond);
- pthread_mutex_unlock(&prefetch_ready_lock);
-
- pthread_mutex_lock(&wakeup_lock);
- if (!seq_thread_shutdown) {
- pthread_cond_wait(&wakeup_cond, &wakeup_lock);
- }
- pthread_mutex_unlock(&wakeup_lock);
- continue;
- }
-
- This->running = TRUE;
-
- if (e->cfra >= s_last) {
- e->ibuf = give_ibuf_seq_impl(This->scene,
- e->rectx, e->recty, e->cfra, e->chanshown,
- e->preview_render_size);
- }
-
- pthread_mutex_lock(&queue_lock);
-
- BLI_addtail(&prefetch_done, e);
-
- for (e = prefetch_wait.first; e; e = e->next) {
- if (s_last > e->monoton_cfra) {
- BLI_remlink(&prefetch_wait, e);
- MEM_freeN(e);
- }
- }
-
- for (e = prefetch_done.first; e; e = e->next) {
- if (s_last > e->monoton_cfra) {
- BLI_remlink(&prefetch_done, e);
- MEM_freeN(e);
- }
- }
-
- pthread_mutex_unlock(&queue_lock);
-
- pthread_mutex_lock(&frame_done_lock);
- pthread_cond_signal(&frame_done_cond);
- pthread_mutex_unlock(&frame_done_lock);
- }
- return 0;
-}
-
-static void seq_start_threads(Scene *scene)
-{
- int i;
-
- running_threads.first = running_threads.last = NULL;
- prefetch_wait.first = prefetch_wait.last = NULL;
- prefetch_done.first = prefetch_done.last = NULL;
-
- seq_thread_shutdown = FALSE;
- seq_last_given_monoton_cfra = monoton_cfra = 0;
-
- /* since global structures are modified during the processing
- * of one frame, only one render thread is currently possible...
- *
- * (but we code, in the hope, that we can remove this restriction
- * soon...)
- */
-
- fprintf(stderr, "SEQ-THREAD: seq_start_threads\n");
-
- for (i = 0; i < 1; i++) {
- PrefetchThread *t = MEM_callocN(sizeof(PrefetchThread), "prefetch_thread");
- t->scene = scene;
- t->running = TRUE;
- BLI_addtail(&running_threads, t);
-
- pthread_create(&t->pthread, NULL, seq_prefetch_thread, t);
- }
-
- /* init malloc mutex */
- BLI_init_threads(0, 0, 0);
-}
-
-static void seq_stop_threads()
-{
- PrefetchThread *tslot;
- PrefetchQueueElem *e;
-
- fprintf(stderr, "SEQ-THREAD: seq_stop_threads()\n");
-
- if (seq_thread_shutdown) {
- fprintf(stderr, "SEQ-THREAD: ... already stopped\n");
- return;
- }
-
- pthread_mutex_lock(&wakeup_lock);
-
- seq_thread_shutdown = TRUE;
-
- pthread_cond_broadcast(&wakeup_cond);
- pthread_mutex_unlock(&wakeup_lock);
-
- for (tslot = running_threads.first; tslot; tslot = tslot->next) {
- pthread_join(tslot->pthread, NULL);
- }
-
-
- for (e = prefetch_wait.first; e; e = e->next) {
- BLI_remlink(&prefetch_wait, e);
- MEM_freeN(e);
- }
-
- for (e = prefetch_done.first; e; e = e->next) {
- BLI_remlink(&prefetch_done, e);
- MEM_freeN(e);
- }
-
- BLI_freelistN(&running_threads);
-
- /* deinit malloc mutex */
- BLI_end_threads(0);
-}
-#endif
-
-void give_ibuf_prefetch_request(SeqRenderData context, float cfra, int chanshown)
+void BKE_sequencer_give_ibuf_prefetch_request(SeqRenderData context, float cfra, int chanshown)
{
PrefetchQueueElem *e;
if (seq_thread_shutdown) {
@@ -2890,44 +2914,13 @@ void give_ibuf_prefetch_request(SeqRenderData context, float cfra, int chanshown
pthread_mutex_unlock(&wakeup_lock);
}
-#if 0
-static void seq_wait_for_prefetch_ready()
-{
- PrefetchThread *tslot;
-
- if (seq_thread_shutdown) {
- return;
- }
-
- fprintf(stderr, "SEQ-THREAD: rendering prefetch frames...\n");
-
- pthread_mutex_lock(&prefetch_ready_lock);
-
- for (;; ) {
- for (tslot = running_threads.first; tslot; tslot = tslot->next) {
- if (tslot->running) {
- break;
- }
- }
- if (!tslot) {
- break;
- }
- pthread_cond_wait(&prefetch_ready_cond, &prefetch_ready_lock);
- }
-
- pthread_mutex_unlock(&prefetch_ready_lock);
-
- fprintf(stderr, "SEQ-THREAD: prefetch done\n");
-}
-#endif
-
-ImBuf *give_ibuf_seq_threaded(SeqRenderData context, float cfra, int chanshown)
+ImBuf *BKE_sequencer_give_ibuf_threaded(SeqRenderData context, float cfra, int chanshown)
{
PrefetchQueueElem *e = NULL;
int found_something = FALSE;
if (seq_thread_shutdown) {
- return give_ibuf_seq(context, cfra, chanshown);
+ return BKE_sequencer_give_ibuf(context, cfra, chanshown);
}
while (!e) {
@@ -2993,9 +2986,7 @@ ImBuf *give_ibuf_seq_threaded(SeqRenderData context, float cfra, int chanshown)
e = NULL;
if (!found_something) {
- fprintf(stderr,
- "SEQ-THREAD: Requested frame "
- "not in queue ???\n");
+ fprintf(stderr, "SEQ-THREAD: Requested frame not in queue ???\n");
break;
}
pthread_mutex_lock(&frame_done_lock);
@@ -3017,47 +3008,110 @@ static void free_anim_seq(Sequence *seq)
}
}
-void free_imbuf_seq(Scene *scene, ListBase *seqbase, int check_mem_usage,
- int keep_file_handles)
+/* check whether sequence cur depends on seq */
+int BKE_sequence_check_depend(Sequence *seq, Sequence *cur)
{
- Sequence *seq;
+ if (cur->seq1 == seq || cur->seq2 == seq || cur->seq3 == seq)
+ return TRUE;
- if (check_mem_usage) {
- /* Let the cache limitor take care of this (schlaile) */
- /* While render let's keep all memory available for render
- * (ton)
- * At least if free memory is tight...
- * This can make a big difference in encoding speed
- * (it is around 4 times(!) faster, if we do not waste time
- * on freeing _all_ buffers every time on long timelines...)
- * (schlaile)
- */
-
- uintptr_t mem_in_use;
- uintptr_t mmap_in_use;
- uintptr_t max;
-
- mem_in_use = MEM_get_memory_in_use();
- mmap_in_use = MEM_get_mapped_memory_in_use();
- max = MEM_CacheLimiter_get_maximum();
-
- if (max == 0 || mem_in_use + mmap_in_use <= max) {
- return;
+ /* sequences are not intersecting in time, assume no dependency exists between them */
+ if (cur->enddisp < seq->startdisp || cur->startdisp > seq->enddisp)
+ return FALSE;
+
+ /* checking sequence is below reference one, not dependent on it */
+ if (cur->machine < seq->machine)
+ return FALSE;
+
+ /* sequence is not blending with lower machines, no dependency here occurs
+ * check for non-effects only since effect could use lower machines as input
+ */
+ if ((cur->type & SEQ_TYPE_EFFECT) == 0 &&
+ ((cur->blend_mode == SEQ_BLEND_REPLACE) ||
+ (cur->blend_mode == SEQ_TYPE_CROSS && cur->blend_opacity == 100.0f)))
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void sequence_do_invalidate_dependent(Sequence *seq, ListBase *seqbase)
+{
+ Sequence *cur;
+
+ for (cur = seqbase->first; cur; cur = cur->next) {
+ if (cur == seq)
+ continue;
+
+ if (BKE_sequence_check_depend(seq, cur)) {
+ BKE_sequencer_cache_cleanup_sequence(cur);
+ BKE_sequencer_preprocessed_cache_cleanup_sequence(cur);
}
+
+ if (cur->seqbase.first)
+ sequence_do_invalidate_dependent(seq, &cur->seqbase);
}
+}
+
+static void sequence_invalidate_cache(Scene *scene, Sequence *seq, int invalidate_self, int invalidate_preprocess)
+{
+ Editing *ed = scene->ed;
+
+ /* invalidate cache for current sequence */
+ if (invalidate_self)
+ BKE_sequencer_cache_cleanup_sequence(seq);
+
+ /* if invalidation is invoked from sequence free routine, effectdata would be NULL here */
+ if (seq->effectdata && seq->type == SEQ_TYPE_SPEED)
+ BKE_sequence_effect_speed_rebuild_map(scene, seq, TRUE);
+
+ if (invalidate_preprocess)
+ BKE_sequencer_preprocessed_cache_cleanup_sequence(seq);
+
+ /* invalidate cache for all dependent sequences */
+
+ /* NOTE: can not use SEQ_BEGIN/SEQ_END here because that macro will change sequence's depth,
+ * which makes transformation routines work incorrect
+ */
+ sequence_do_invalidate_dependent(seq, &ed->seqbase);
+}
+
+void BKE_sequence_invalidate_cache(Scene *scene, Sequence *seq)
+{
+ sequence_invalidate_cache(scene, seq, TRUE, TRUE);
+}
+
+void BKE_sequence_invalidate_dependent(Scene *scene, Sequence *seq)
+{
+ sequence_invalidate_cache(scene, seq, FALSE, TRUE);
+}
+
+void BKE_sequence_invalidate_cache_for_modifier(Scene *scene, Sequence *seq)
+{
+ sequence_invalidate_cache(scene, seq, TRUE, FALSE);
+}
+
+void BKE_sequencer_free_imbuf(Scene *scene, ListBase *seqbase, int for_render)
+{
+ Sequence *seq;
+
+ BKE_sequencer_cache_cleanup();
- seq_stripelem_cache_cleanup();
-
for (seq = seqbase->first; seq; seq = seq->next) {
+ if (for_render && CFRA >= seq->startdisp && CFRA <= seq->enddisp) {
+ continue;
+ }
+
if (seq->strip) {
- if (seq->type == SEQ_TYPE_MOVIE && !keep_file_handles)
+ if (seq->type == SEQ_TYPE_MOVIE) {
free_anim_seq(seq);
+ }
if (seq->type == SEQ_TYPE_SPEED) {
- sequence_effect_speed_rebuild_map(scene, seq, 1);
+ BKE_sequence_effect_speed_rebuild_map(scene, seq, 1);
}
}
if (seq->type == SEQ_TYPE_META) {
- free_imbuf_seq(scene, &seq->seqbase, FALSE, keep_file_handles);
+ BKE_sequencer_free_imbuf(scene, &seq->seqbase, for_render);
}
if (seq->type == SEQ_TYPE_SCENE) {
/* FIXME: recurs downwards,
@@ -3099,18 +3153,18 @@ static int update_changed_seq_recurs(Scene *scene, Sequence *seq, Sequence *chan
if (seq->type == SEQ_TYPE_MOVIE)
free_anim_seq(seq);
if (seq->type == SEQ_TYPE_SPEED) {
- sequence_effect_speed_rebuild_map(scene, seq, 1);
+ BKE_sequence_effect_speed_rebuild_map(scene, seq, 1);
}
}
if (len_change)
- calc_sequence(scene, seq);
+ BKE_sequence_calc(scene, seq);
}
return free_imbuf;
}
-void update_changed_seq_and_deps(Scene *scene, Sequence *changed_seq, int len_change, int ibuf_change)
+void BKE_sequencer_update_changed_seq_and_deps(Scene *scene, Sequence *changed_seq, int len_change, int ibuf_change)
{
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
Sequence *seq;
@@ -3127,38 +3181,38 @@ void update_changed_seq_and_deps(Scene *scene, Sequence *changed_seq, int len_ch
* left and right are the bounds at which the sequence is rendered,
* start and end are from the start and fixed length of the sequence.
*/
-int seq_tx_get_start(Sequence *seq)
+static int seq_tx_get_start(Sequence *seq)
{
return seq->start;
}
-int seq_tx_get_end(Sequence *seq)
+static int seq_tx_get_end(Sequence *seq)
{
return seq->start + seq->len;
}
-int seq_tx_get_final_left(Sequence *seq, int metaclip)
+int BKE_sequence_tx_get_final_left(Sequence *seq, int metaclip)
{
if (metaclip && seq->tmp) {
/* return the range clipped by the parents range */
- return MAX2(seq_tx_get_final_left(seq, 0), seq_tx_get_final_left((Sequence *)seq->tmp, 1) );
+ return maxi(BKE_sequence_tx_get_final_left(seq, 0), BKE_sequence_tx_get_final_left((Sequence *)seq->tmp, TRUE));
}
else {
return (seq->start - seq->startstill) + seq->startofs;
}
}
-int seq_tx_get_final_right(Sequence *seq, int metaclip)
+int BKE_sequence_tx_get_final_right(Sequence *seq, int metaclip)
{
if (metaclip && seq->tmp) {
/* return the range clipped by the parents range */
- return MIN2(seq_tx_get_final_right(seq, 0), seq_tx_get_final_right((Sequence *)seq->tmp, 1) );
+ return mini(BKE_sequence_tx_get_final_right(seq, 0), BKE_sequence_tx_get_final_right((Sequence *)seq->tmp, TRUE));
}
else {
return ((seq->start + seq->len) + seq->endstill) - seq->endofs;
}
}
-void seq_tx_set_final_left(Sequence *seq, int val)
+void BKE_sequence_tx_set_final_left(Sequence *seq, int val)
{
if (val < (seq)->start) {
seq->startstill = abs(val - (seq)->start);
@@ -3170,7 +3224,7 @@ void seq_tx_set_final_left(Sequence *seq, int val)
}
}
-void seq_tx_set_final_right(Sequence *seq, int val)
+void BKE_sequence_tx_set_final_right(Sequence *seq, int val)
{
if (val > (seq)->start + (seq)->len) {
seq->endstill = abs(val - (seq->start + (seq)->len));
@@ -3184,16 +3238,16 @@ void seq_tx_set_final_right(Sequence *seq, int val)
/* used so we can do a quick check for single image seq
* since they work a bit differently to normal image seq's (during transform) */
-int seq_single_check(Sequence *seq)
+int BKE_sequence_single_check(Sequence *seq)
{
return ((seq->len == 1) &&
(seq->type == SEQ_TYPE_IMAGE ||
((seq->type & SEQ_TYPE_EFFECT) &&
- get_sequence_effect_num_inputs(seq->type) == 0)));
+ BKE_sequence_effect_get_num_inputs(seq->type) == 0)));
}
/* check if the selected seq's reference unselected seq's */
-int seqbase_isolated_sel_check(ListBase *seqbase)
+int BKE_sequence_base_isolated_sel_check(ListBase *seqbase)
{
Sequence *seq;
/* is there more than 1 select */
@@ -3237,16 +3291,16 @@ int seqbase_isolated_sel_check(ListBase *seqbase)
/* use to impose limits when dragging/extending - so impossible situations don't happen
* Cant use the SEQ_LEFTSEL and SEQ_LEFTSEL directly because the strip may be in a metastrip */
-void seq_tx_handle_xlimits(Sequence *seq, int leftflag, int rightflag)
+void BKE_sequence_tx_handle_xlimits(Sequence *seq, int leftflag, int rightflag)
{
if (leftflag) {
- if (seq_tx_get_final_left(seq, 0) >= seq_tx_get_final_right(seq, 0)) {
- seq_tx_set_final_left(seq, seq_tx_get_final_right(seq, 0) - 1);
+ if (BKE_sequence_tx_get_final_left(seq, 0) >= BKE_sequence_tx_get_final_right(seq, 0)) {
+ BKE_sequence_tx_set_final_left(seq, BKE_sequence_tx_get_final_right(seq, 0) - 1);
}
- if (seq_single_check(seq) == 0) {
- if (seq_tx_get_final_left(seq, 0) >= seq_tx_get_end(seq)) {
- seq_tx_set_final_left(seq, seq_tx_get_end(seq) - 1);
+ if (BKE_sequence_single_check(seq) == 0) {
+ if (BKE_sequence_tx_get_final_left(seq, 0) >= seq_tx_get_end(seq)) {
+ BKE_sequence_tx_set_final_left(seq, seq_tx_get_end(seq) - 1);
}
/* dosnt work now - TODO */
@@ -3262,13 +3316,13 @@ void seq_tx_handle_xlimits(Sequence *seq, int leftflag, int rightflag)
}
if (rightflag) {
- if (seq_tx_get_final_right(seq, 0) <= seq_tx_get_final_left(seq, 0)) {
- seq_tx_set_final_right(seq, seq_tx_get_final_left(seq, 0) + 1);
+ if (BKE_sequence_tx_get_final_right(seq, 0) <= BKE_sequence_tx_get_final_left(seq, 0)) {
+ BKE_sequence_tx_set_final_right(seq, BKE_sequence_tx_get_final_left(seq, 0) + 1);
}
- if (seq_single_check(seq) == 0) {
- if (seq_tx_get_final_right(seq, 0) <= seq_tx_get_start(seq)) {
- seq_tx_set_final_right(seq, seq_tx_get_start(seq) + 1);
+ if (BKE_sequence_single_check(seq) == 0) {
+ if (BKE_sequence_tx_get_final_right(seq, 0) <= seq_tx_get_start(seq)) {
+ BKE_sequence_tx_set_final_right(seq, seq_tx_get_start(seq) + 1);
}
}
}
@@ -3280,27 +3334,27 @@ void seq_tx_handle_xlimits(Sequence *seq, int leftflag, int rightflag)
}
}
-void seq_single_fix(Sequence *seq)
+void BKE_sequence_single_fix(Sequence *seq)
{
int left, start, offset;
- if (!seq_single_check(seq))
+ if (!BKE_sequence_single_check(seq))
return;
/* make sure the image is always at the start since there is only one,
* adjusting its start should be ok */
- left = seq_tx_get_final_left(seq, 0);
+ left = BKE_sequence_tx_get_final_left(seq, 0);
start = seq->start;
if (start != left) {
offset = left - start;
- seq_tx_set_final_left(seq, seq_tx_get_final_left(seq, 0) - offset);
- seq_tx_set_final_right(seq, seq_tx_get_final_right(seq, 0) - offset);
+ BKE_sequence_tx_set_final_left(seq, BKE_sequence_tx_get_final_left(seq, 0) - offset);
+ BKE_sequence_tx_set_final_right(seq, BKE_sequence_tx_get_final_right(seq, 0) - offset);
seq->start += offset;
}
}
-int seq_tx_test(Sequence *seq)
+int BKE_sequence_tx_test(Sequence *seq)
{
- return (seq->type < SEQ_TYPE_EFFECT) || (get_sequence_effect_num_inputs(seq->type) == 0);
+ return (seq->type < SEQ_TYPE_EFFECT) || (BKE_sequence_effect_get_num_inputs(seq->type) == 0);
}
static int seq_overlap(Sequence *seq1, Sequence *seq2)
@@ -3309,7 +3363,7 @@ static int seq_overlap(Sequence *seq1, Sequence *seq2)
((seq1->enddisp <= seq2->startdisp) || (seq1->startdisp >= seq2->enddisp)) == 0);
}
-int seq_test_overlap(ListBase *seqbasep, Sequence *test)
+int BKE_sequence_test_overlap(ListBase *seqbasep, Sequence *test)
{
Sequence *seq;
@@ -3324,27 +3378,27 @@ int seq_test_overlap(ListBase *seqbasep, Sequence *test)
}
-void seq_translate(Scene *evil_scene, Sequence *seq, int delta)
+void BKE_sequence_translate(Scene *evil_scene, Sequence *seq, int delta)
{
- seq_offset_animdata(evil_scene, seq, delta);
+ BKE_sequencer_offset_animdata(evil_scene, seq, delta);
seq->start += delta;
if (seq->type == SEQ_TYPE_META) {
Sequence *seq_child;
for (seq_child = seq->seqbase.first; seq_child; seq_child = seq_child->next) {
- seq_translate(evil_scene, seq_child, delta);
+ BKE_sequence_translate(evil_scene, seq_child, delta);
}
}
- calc_sequence_disp(evil_scene, seq);
+ BKE_sequence_calc_disp(evil_scene, seq);
}
-void seq_sound_init(Scene *scene, Sequence *seq)
+void BKE_sequence_sound_init(Scene *scene, Sequence *seq)
{
if (seq->type == SEQ_TYPE_META) {
Sequence *seq_child;
for (seq_child = seq->seqbase.first; seq_child; seq_child = seq_child->next) {
- seq_sound_init(scene, seq_child);
+ BKE_sequence_sound_init(scene, seq_child);
}
}
else {
@@ -3357,7 +3411,7 @@ void seq_sound_init(Scene *scene, Sequence *seq)
}
}
-Sequence *seq_foreground_frame_get(Scene *scene, int frame)
+Sequence *BKE_sequencer_foreground_frame_get(Scene *scene, int frame)
{
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
Sequence *seq, *best_seq = NULL;
@@ -3380,17 +3434,17 @@ Sequence *seq_foreground_frame_get(Scene *scene, int frame)
}
/* return 0 if there werent enough space */
-int shuffle_seq(ListBase *seqbasep, Sequence *test, Scene *evil_scene)
+int BKE_sequence_base_shuffle(ListBase *seqbasep, Sequence *test, Scene *evil_scene)
{
int orig_machine = test->machine;
test->machine++;
- calc_sequence(evil_scene, test);
- while (seq_test_overlap(seqbasep, test) ) {
+ BKE_sequence_calc(evil_scene, test);
+ while (BKE_sequence_test_overlap(seqbasep, test) ) {
if (test->machine >= MAXSEQ) {
break;
}
test->machine++;
- calc_sequence(evil_scene, test); // XXX - I don't think this is needed since were only moving vertically, Campbell.
+ BKE_sequence_calc(evil_scene, test); // XXX - I don't think this is needed since were only moving vertically, Campbell.
}
@@ -3408,9 +3462,9 @@ int shuffle_seq(ListBase *seqbasep, Sequence *test, Scene *evil_scene)
test->machine = orig_machine;
new_frame = new_frame + (test->start - test->startdisp); /* adjust by the startdisp */
- seq_translate(evil_scene, test, new_frame - test->start);
+ BKE_sequence_translate(evil_scene, test, new_frame - test->start);
- calc_sequence(evil_scene, test);
+ BKE_sequence_calc(evil_scene, test);
return 0;
}
else {
@@ -3459,13 +3513,13 @@ static int shuffle_seq_time_offset(Scene *scene, ListBase *seqbasep, char dir)
for (seq = seqbasep->first; seq; seq = seq->next) {
if (seq->tmp)
- calc_sequence_disp(scene, seq); /* corrects dummy startdisp/enddisp values */
+ BKE_sequence_calc_disp(scene, seq); /* corrects dummy startdisp/enddisp values */
}
return tot_ofs;
}
-int shuffle_seq_time(ListBase *seqbasep, Scene *evil_scene)
+int BKE_sequence_base_shuffle_time(ListBase *seqbasep, Scene *evil_scene)
{
/* note: seq->tmp is used to tag strips to move */
@@ -3478,7 +3532,7 @@ int shuffle_seq_time(ListBase *seqbasep, Scene *evil_scene)
if (offset) {
for (seq = seqbasep->first; seq; seq = seq->next) {
if (seq->tmp) {
- seq_translate(evil_scene, seq, offset);
+ BKE_sequence_translate(evil_scene, seq, offset);
seq->flag &= ~SEQ_OVERLAP;
}
}
@@ -3487,7 +3541,7 @@ int shuffle_seq_time(ListBase *seqbasep, Scene *evil_scene)
return offset ? 0 : 1;
}
-void seq_update_sound_bounds_all(Scene *scene)
+void BKE_sequencer_update_sound_bounds_all(Scene *scene)
{
Editing *ed = scene->ed;
@@ -3499,13 +3553,13 @@ void seq_update_sound_bounds_all(Scene *scene)
seq_update_sound_bounds_recursive(scene, seq);
}
else if (ELEM(seq->type, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SCENE)) {
- seq_update_sound_bounds(scene, seq);
+ BKE_sequencer_update_sound_bounds(scene, seq);
}
}
}
}
-void seq_update_sound_bounds(Scene *scene, Sequence *seq)
+void BKE_sequencer_update_sound_bounds(Scene *scene, Sequence *seq)
{
sound_move_scene_sound_defaults(scene, seq);
/* mute is set in seq_update_muting_recursive */
@@ -3537,7 +3591,7 @@ static void seq_update_muting_recursive(ListBase *seqbasep, Sequence *metaseq, i
}
}
-void seq_update_muting(Editing *ed)
+void BKE_sequencer_update_muting(Editing *ed)
{
if (ed) {
/* mute all sounds up to current metastack list */
@@ -3566,7 +3620,7 @@ static void seq_update_sound_recursive(Scene *scene, ListBase *seqbasep, bSound
}
}
-void seq_update_sound(struct Scene *scene, struct bSound *sound)
+void BKE_sequencer_update_sound(Scene *scene, bSound *sound)
{
if (scene->ed) {
seq_update_sound_recursive(scene, &scene->ed->seqbase, sound);
@@ -3574,7 +3628,7 @@ void seq_update_sound(struct Scene *scene, struct bSound *sound)
}
/* in cases where we done know the sequence's listbase */
-ListBase *seq_seqbase(ListBase *seqbase, Sequence *seq)
+ListBase *BKE_sequence_seqbase(ListBase *seqbase, Sequence *seq)
{
Sequence *iseq;
ListBase *lb = NULL;
@@ -3583,7 +3637,7 @@ ListBase *seq_seqbase(ListBase *seqbase, Sequence *seq)
if (seq == iseq) {
return seqbase;
}
- else if (iseq->seqbase.first && (lb = seq_seqbase(&iseq->seqbase, seq))) {
+ else if (iseq->seqbase.first && (lb = BKE_sequence_seqbase(&iseq->seqbase, seq))) {
return lb;
}
}
@@ -3591,7 +3645,7 @@ ListBase *seq_seqbase(ListBase *seqbase, Sequence *seq)
return NULL;
}
-Sequence *seq_metastrip(ListBase *seqbase, Sequence *meta, Sequence *seq)
+Sequence *BKE_sequence_metastrip(ListBase *seqbase, Sequence *meta, Sequence *seq)
{
Sequence *iseq;
@@ -3602,7 +3656,7 @@ Sequence *seq_metastrip(ListBase *seqbase, Sequence *meta, Sequence *seq)
return meta;
}
else if (iseq->seqbase.first &&
- (rval = seq_metastrip(&iseq->seqbase, iseq, seq)))
+ (rval = BKE_sequence_metastrip(&iseq->seqbase, iseq, seq)))
{
return rval;
}
@@ -3611,7 +3665,7 @@ Sequence *seq_metastrip(ListBase *seqbase, Sequence *meta, Sequence *seq)
return NULL;
}
-int seq_swap(Sequence *seq_a, Sequence *seq_b, const char **error_str)
+int BKE_sequence_swap(Sequence *seq_a, Sequence *seq_b, const char **error_str)
{
char name[sizeof(seq_a->name)];
@@ -3634,7 +3688,7 @@ int seq_swap(Sequence *seq_a, Sequence *seq_b, const char **error_str)
}
if ((seq_a->type & SEQ_TYPE_EFFECT) && (seq_b->type & SEQ_TYPE_EFFECT)) {
- if (get_sequence_effect_num_inputs(seq_a->type) != get_sequence_effect_num_inputs(seq_b->type)) {
+ if (BKE_sequence_effect_get_num_inputs(seq_a->type) != BKE_sequence_effect_get_num_inputs(seq_b->type)) {
*error_str = "Strips must have the same number of inputs";
return 0;
}
@@ -3653,8 +3707,8 @@ int seq_swap(Sequence *seq_a, Sequence *seq_b, const char **error_str)
SWAP(float, seq_a->blend_opacity, seq_b->blend_opacity);
- SWAP(void *, seq_a->prev, seq_b->prev);
- SWAP(void *, seq_a->next, seq_b->next);
+ SWAP(Sequence *, seq_a->prev, seq_b->prev);
+ SWAP(Sequence *, seq_a->next, seq_b->next);
SWAP(int, seq_a->start, seq_b->start);
SWAP(int, seq_a->startofs, seq_b->startofs);
SWAP(int, seq_a->endofs, seq_b->endofs);
@@ -3668,7 +3722,7 @@ int seq_swap(Sequence *seq_a, Sequence *seq_b, const char **error_str)
}
/* XXX - hackish function needed for transforming strips! TODO - have some better solution */
-void seq_offset_animdata(Scene *scene, Sequence *seq, int ofs)
+void BKE_sequencer_offset_animdata(Scene *scene, Sequence *seq, int ofs)
{
char str[SEQ_NAME_MAXSTR + 3];
FCurve *fcu;
@@ -3691,7 +3745,7 @@ void seq_offset_animdata(Scene *scene, Sequence *seq, int ofs)
}
}
-void seq_dupe_animdata(Scene *scene, const char *name_src, const char *name_dst)
+void BKE_sequencer_dupe_animdata(Scene *scene, const char *name_src, const char *name_dst)
{
char str_from[SEQ_NAME_MAXSTR + 3];
FCurve *fcu;
@@ -3748,8 +3802,7 @@ static void seq_free_animdata(Scene *scene, Sequence *seq)
}
}
-
-Sequence *get_seq_by_name(ListBase *seqbase, const char *name, int recursive)
+Sequence *BKE_sequence_get_by_name(ListBase *seqbase, const char *name, int recursive)
{
Sequence *iseq = NULL;
Sequence *rseq = NULL;
@@ -3757,7 +3810,7 @@ Sequence *get_seq_by_name(ListBase *seqbase, const char *name, int recursive)
for (iseq = seqbase->first; iseq; iseq = iseq->next) {
if (strcmp(name, iseq->name + 2) == 0)
return iseq;
- else if (recursive && (iseq->seqbase.first) && (rseq = get_seq_by_name(&iseq->seqbase, name, 1))) {
+ else if (recursive && (iseq->seqbase.first) && (rseq = BKE_sequence_get_by_name(&iseq->seqbase, name, 1))) {
return rseq;
}
}
@@ -3769,14 +3822,19 @@ Sequence *get_seq_by_name(ListBase *seqbase, const char *name, int recursive)
Sequence *BKE_sequencer_active_get(Scene *scene)
{
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
- if (ed == NULL) return NULL;
+
+ if (ed == NULL)
+ return NULL;
+
return ed->act_seq;
}
void BKE_sequencer_active_set(Scene *scene, Sequence *seq)
{
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
- if (ed == NULL) return;
+
+ if (ed == NULL)
+ return;
ed->act_seq = seq;
}
@@ -3810,13 +3868,25 @@ int BKE_sequencer_active_get_pair(Scene *scene, Sequence **seq_act, Sequence **s
}
}
+Mask *BKE_sequencer_mask_get(Scene *scene)
+{
+ Sequence *seq_act = BKE_sequencer_active_get(scene);
+
+ if (seq_act && seq_act->type == SEQ_TYPE_MASK) {
+ return seq_act->mask;
+ }
+ else {
+ return NULL;
+ }
+}
+
/* api like funcs for adding */
-void seq_load_apply(Scene *scene, Sequence *seq, SeqLoadInfo *seq_load)
+static void seq_load_apply(Scene *scene, Sequence *seq, SeqLoadInfo *seq_load)
{
if (seq) {
BLI_strncpy(seq->name + 2, seq_load->name, sizeof(seq->name) - 2);
- seqbase_unique_name_recursive(&scene->ed->seqbase, seq);
+ BKE_sequence_base_unique_name_recursive(&scene->ed->seqbase, seq);
if (seq_load->flag & SEQ_LOAD_FRAME_ADVANCE) {
seq_load->start_frame += (seq->enddisp - seq->startdisp);
@@ -3839,7 +3909,7 @@ void seq_load_apply(Scene *scene, Sequence *seq, SeqLoadInfo *seq_load)
}
}
-Sequence *alloc_sequence(ListBase *lb, int cfra, int machine)
+Sequence *BKE_sequence_alloc(ListBase *lb, int cfra, int machine)
{
Sequence *seq;
@@ -3863,13 +3933,13 @@ Sequence *alloc_sequence(ListBase *lb, int cfra, int machine)
}
/* NOTE: this function doesn't fill in image names */
-Sequence *sequencer_add_image_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
+Sequence *BKE_sequencer_add_image_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
{
Scene *scene = CTX_data_scene(C); /* only for active seq */
Sequence *seq;
Strip *strip;
- seq = alloc_sequence(seqbasep, seq_load->start_frame, seq_load->channel);
+ seq = BKE_sequence_alloc(seqbasep, seq_load->start_frame, seq_load->channel);
seq->type = SEQ_TYPE_IMAGE;
seq->blend_mode = SEQ_TYPE_CROSS; /* so alpha adjustment fade to the strip below */
@@ -3887,7 +3957,7 @@ Sequence *sequencer_add_image_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
}
#ifdef WITH_AUDASPACE
-Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
+Sequence *BKE_sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C); /* only for sound */
@@ -3900,11 +3970,14 @@ Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
AUD_SoundInfo info;
- sound = sound_new_file(CTX_data_main(C), seq_load->path); /* handles relative paths */
+ sound = sound_new_file(bmain, seq_load->path); /* handles relative paths */
if (sound == NULL || sound->playback_handle == NULL) {
- //if (op)
- // BKE_report(op->reports, RPT_ERROR, "Unsupported audio format");
+#if 0
+ if (op)
+ BKE_report(op->reports, RPT_ERROR, "Unsupported audio format");
+#endif
+
return NULL;
}
@@ -3912,17 +3985,19 @@ Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
if (info.specs.channels == AUD_CHANNELS_INVALID) {
sound_delete(bmain, sound);
- //if (op)
- // BKE_report(op->reports, RPT_ERROR, "Unsupported audio format");
+#if 0
+ if (op)
+ BKE_report(op->reports, RPT_ERROR, "Unsupported audio format");
+#endif
return NULL;
}
- seq = alloc_sequence(seqbasep, seq_load->start_frame, seq_load->channel);
+ seq = BKE_sequence_alloc(seqbasep, seq_load->start_frame, seq_load->channel);
seq->type = SEQ_TYPE_SOUND_RAM;
seq->sound = sound;
BLI_strncpy(seq->name + 2, "Sound", SEQ_NAME_MAXSTR - 2);
- seqbase_unique_name_recursive(&scene->ed->seqbase, seq);
+ BKE_sequence_base_unique_name_recursive(&scene->ed->seqbase, seq);
/* basic defaults */
seq->strip = strip = MEM_callocN(sizeof(Strip), "strip");
@@ -3936,7 +4011,7 @@ Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
seq->scene_sound = sound_add_scene_sound(scene, seq, seq_load->start_frame, seq_load->start_frame + seq->len, 0);
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
/* last active name */
BLI_strncpy(ed->act_sounddir, strip->dir, FILE_MAXDIR);
@@ -3946,16 +4021,16 @@ Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
return seq;
}
#else // WITH_AUDASPACE
-Sequence *sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
+Sequence *BKE_sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
{
- (void)C;
- (void)seqbasep;
- (void)seq_load;
+ (void) C;
+ (void) seqbasep;
+ (void) seq_load;
return NULL;
}
#endif // WITH_AUDASPACE
-Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
+Sequence *BKE_sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
{
Scene *scene = CTX_data_scene(C); /* only for sound */
char path[sizeof(seq_load->path)];
@@ -3969,19 +4044,20 @@ Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
BLI_strncpy(path, seq_load->path, sizeof(path));
BLI_path_abs(path, G.main->name);
- an = openanim(path, IB_rect, 0);
+ /* OCIO_TODO: support configurable input space for strips */
+ an = openanim(path, IB_rect, 0, NULL);
if (an == NULL)
return NULL;
- seq = alloc_sequence(seqbasep, seq_load->start_frame, seq_load->channel);
+ seq = BKE_sequence_alloc(seqbasep, seq_load->start_frame, seq_load->channel);
seq->type = SEQ_TYPE_MOVIE;
seq->blend_mode = SEQ_TYPE_CROSS; /* so alpha adjustment fade to the strip below */
seq->anim = an;
seq->anim_preseek = IMB_anim_get_preseek(an);
BLI_strncpy(seq->name + 2, "Movie", SEQ_NAME_MAXSTR - 2);
- seqbase_unique_name_recursive(&scene->ed->seqbase, seq);
+ BKE_sequence_base_unique_name_recursive(&scene->ed->seqbase, seq);
/* basic defaults */
seq->strip = strip = MEM_callocN(sizeof(Strip), "strip");
@@ -3993,14 +4069,14 @@ Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
BLI_split_dirfile(seq_load->path, strip->dir, se->name, sizeof(strip->dir), sizeof(se->name));
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
if (seq_load->flag & SEQ_LOAD_MOVIE_SOUND) {
int start_frame_back = seq_load->start_frame;
seq_load->channel++;
- sequencer_add_sound_strip(C, seqbasep, seq_load);
+ BKE_sequencer_add_sound_strip(C, seqbasep, seq_load);
seq_load->start_frame = start_frame_back;
seq_load->channel--;
@@ -4015,8 +4091,7 @@ Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo
return seq;
}
-
-static Sequence *seq_dupli(struct Scene *scene, struct Scene *scene_to, Sequence *seq, int dupe_flag)
+static Sequence *seq_dupli(Scene *scene, Scene *scene_to, Sequence *seq, int dupe_flag)
{
Scene *sce_audio = scene_to ? scene_to : scene;
Sequence *seqn = MEM_dupallocN(seq);
@@ -4024,7 +4099,7 @@ static Sequence *seq_dupli(struct Scene *scene, struct Scene *scene_to, Sequence
seq->tmp = seqn;
seqn->strip = MEM_dupallocN(seq->strip);
- // XXX: add F-Curve duplication stuff?
+ /* XXX: add F-Curve duplication stuff? */
if (seq->strip->crop) {
seqn->strip->crop = MEM_dupallocN(seq->strip->crop);
@@ -4039,8 +4114,10 @@ static Sequence *seq_dupli(struct Scene *scene, struct Scene *scene_to, Sequence
seqn->strip->proxy->anim = NULL;
}
- if (seq->strip->color_balance) {
- seqn->strip->color_balance = MEM_dupallocN(seq->strip->color_balance);
+ if (seqn->modifiers.first) {
+ seqn->modifiers.first = seqn->modifiers.last = NULL;
+
+ BKE_sequence_modifier_list_copy(seqn, seq);
}
if (seq->type == SEQ_TYPE_META) {
@@ -4079,7 +4156,7 @@ static Sequence *seq_dupli(struct Scene *scene, struct Scene *scene_to, Sequence
if (seq->type & SEQ_TYPE_EFFECT) {
struct SeqEffectHandle sh;
- sh = get_sequence_effect(seq);
+ sh = BKE_sequence_get_effect(seq);
if (sh.copy)
sh.copy(seq, seqn);
}
@@ -4088,27 +4165,25 @@ static Sequence *seq_dupli(struct Scene *scene, struct Scene *scene_to, Sequence
}
else {
- fprintf(stderr, "Aiiiiekkk! sequence type not "
- "handled in duplicate!\nExpect a crash"
- " now...\n");
+ fprintf(stderr, "Aiiiiekkk! sequence type not handled in duplicate!\nExpect a crash now...\n");
}
if (dupe_flag & SEQ_DUPE_UNIQUE_NAME)
- seqbase_unique_name_recursive(&scene->ed->seqbase, seqn);
+ BKE_sequence_base_unique_name_recursive(&scene->ed->seqbase, seqn);
if (dupe_flag & SEQ_DUPE_ANIM)
- seq_dupe_animdata(scene, seq->name + 2, seqn->name + 2);
+ BKE_sequencer_dupe_animdata(scene, seq->name + 2, seqn->name + 2);
return seqn;
}
-Sequence *seq_dupli_recursive(struct Scene *scene, struct Scene *scene_to, Sequence *seq, int dupe_flag)
+Sequence *BKE_sequence_dupli_recursive(Scene *scene, Scene *scene_to, Sequence *seq, int dupe_flag)
{
Sequence *seqn = seq_dupli(scene, scene_to, seq, dupe_flag);
if (seq->type == SEQ_TYPE_META) {
Sequence *s;
for (s = seq->seqbase.first; s; s = s->next) {
- Sequence *n = seq_dupli_recursive(scene, scene_to, s, dupe_flag);
+ Sequence *n = BKE_sequence_dupli_recursive(scene, scene_to, s, dupe_flag);
if (n) {
BLI_addtail(&seqn->seqbase, n);
}
@@ -4117,7 +4192,7 @@ Sequence *seq_dupli_recursive(struct Scene *scene, struct Scene *scene_to, Seque
return seqn;
}
-void seqbase_dupli_recursive(Scene *scene, Scene *scene_to, ListBase *nseqbase, ListBase *seqbase, int dupe_flag)
+void BKE_sequence_base_dupli_recursive(Scene *scene, Scene *scene_to, ListBase *nseqbase, ListBase *seqbase, int dupe_flag)
{
Sequence *seq;
Sequence *seqn = NULL;
@@ -4135,7 +4210,7 @@ void seqbase_dupli_recursive(Scene *scene, Scene *scene_to, ListBase *nseqbase,
BLI_addtail(nseqbase, seqn);
if (seq->type == SEQ_TYPE_META)
- seqbase_dupli_recursive(scene, scene_to, &seqn->seqbase, &seq->seqbase, dupe_flag);
+ BKE_sequence_base_dupli_recursive(scene, scene_to, &seqn->seqbase, &seq->seqbase, dupe_flag);
if (dupe_flag & SEQ_DUPE_CONTEXT) {
if (seq == last_seq) {
@@ -4146,3 +4221,22 @@ void seqbase_dupli_recursive(Scene *scene, Scene *scene_to, ListBase *nseqbase,
}
}
}
+
+/* called on draw, needs to be fast,
+ * we could cache and use a flag if we want to make checks for file paths resolving for eg. */
+int BKE_sequence_is_valid_check(Sequence *seq)
+{
+ switch (seq->type) {
+ case SEQ_TYPE_MASK:
+ return (seq->mask != NULL);
+ case SEQ_TYPE_MOVIECLIP:
+ return (seq->clip != NULL);
+ case SEQ_TYPE_SCENE:
+ return (seq->scene != NULL);
+ case SEQ_TYPE_SOUND_RAM:
+ return (seq->sound != NULL);
+ }
+
+ return TRUE;
+}
+
diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c
index 464b7fda51d..9a8bcaabe0c 100644
--- a/source/blender/blenkernel/intern/shrinkwrap.c
+++ b/source/blender/blenkernel/intern/shrinkwrap.c
@@ -120,13 +120,13 @@ void space_transform_invert(const SpaceTransform *data, float co[3])
static void space_transform_apply_normal(const SpaceTransform *data, float no[3])
{
mul_mat3_m4_v3(((SpaceTransform *)data)->local2target, no);
- normalize_v3(no); // TODO: could we just determine de scale value from the matrix?
+ normalize_v3(no); /* TODO: could we just determine de scale value from the matrix? */
}
static void space_transform_invert_normal(const SpaceTransform *data, float no[3])
{
mul_mat3_m4_v3(((SpaceTransform *)data)->target2local, no);
- normalize_v3(no); // TODO: could we just determine de scale value from the matrix?
+ normalize_v3(no); /* TODO: could we just determine de scale value from the matrix? */
}
/*
@@ -313,7 +313,7 @@ static void shrinkwrap_calc_normal_projection(ShrinkwrapCalcData *calc)
auxMesh = object_get_derived_final(calc->smd->auxTarget);
if (!auxMesh)
return;
- space_transform_setup(&local2aux, calc->ob, calc->smd->auxTarget);
+ SPACE_TRANSFORM_SETUP(&local2aux, calc->ob, calc->smd->auxTarget);
}
//After sucessufuly build the trees, start projection vertexs
@@ -500,7 +500,7 @@ void shrinkwrapModifier_deform(ShrinkwrapModifierData *smd, Object *ob, DerivedM
//TODO there might be several "bugs" on non-uniform scales matrixs
//because it will no longer be nearest surface, not sphere projection
//because space has been deformed
- space_transform_setup(&calc.local2target, ob, smd->target);
+ SPACE_TRANSFORM_SETUP(&calc.local2target, ob, smd->target);
//TODO: smd->keepDist is in global units.. must change to local
calc.keepDist = smd->keepDist;
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index 32def1be647..5e67e094e43 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -80,10 +80,10 @@
/* UNUSED so far, may be enabled later */
/* #define USE_SMOKE_COLLISION_DM */
-#ifdef WITH_SMOKE
-
#include "smoke_API.h"
+#ifdef WITH_SMOKE
+
#ifdef _WIN32
#include <time.h>
#include <stdio.h>
@@ -141,14 +141,14 @@ struct SmokeModifierData;
/* forward declerations */
static void calcTriangleDivs(Object *ob, MVert *verts, int numverts, MFace *tris, int numfaces, int numtris, int **tridivs, float cell_len);
-static void get_cell(float *p0, int res[3], float dx, float *pos, int *cell, int correct);
+static void get_cell(const float p0[3], const int res[3], float dx, const float pos[3], int cell[3], int correct);
static void fill_scs_points(Object *ob, DerivedMesh *dm, SmokeCollSettings *scs);
#else /* WITH_SMOKE */
/* Stubs to use when smoke is disabled */
struct WTURBULENCE *smoke_turbulence_init(int *UNUSED(res), int UNUSED(amplify), int UNUSED(noisetype)) { return NULL; }
-struct FLUID_3D *smoke_init(int *UNUSED(res), float *UNUSED(p0)) { return NULL; }
+// struct FLUID_3D *smoke_init(int *UNUSED(res), float *UNUSED(p0)) { return NULL; }
void smoke_free(struct FLUID_3D *UNUSED(fluid)) {}
float *smoke_get_density(struct FLUID_3D *UNUSED(fluid)) { return NULL; }
void smoke_turbulence_free(struct WTURBULENCE *UNUSED(wt)) {}
@@ -1977,7 +1977,7 @@ static void bresenham_linie_3D(int x1, int y1, int z1, int x2, int y2, int z2, f
cb(result, input, res, pixel, tRay, correct);
}
-static void get_cell(float *p0, int res[3], float dx, float *pos, int *cell, int correct)
+static void get_cell(const float p0[3], const int res[3], float dx, const float pos[3], int cell[3], int correct)
{
float tmp[3];
diff --git a/source/blender/blenkernel/intern/softbody.c b/source/blender/blenkernel/intern/softbody.c
index 63f0a29821f..f47c931e309 100644
--- a/source/blender/blenkernel/intern/softbody.c
+++ b/source/blender/blenkernel/intern/softbody.c
@@ -78,9 +78,8 @@ variables on the UI for now
#include "BKE_DerivedMesh.h"
#include "BKE_pointcache.h"
#include "BKE_deform.h"
-#include "BKE_mesh.h"
-//XXX #include "BIF_editdeform.h"
-//XXX #include "BIF_graphics.h"
+#include "BKE_mesh.h"
+
#include "PIL_time.h"
// #include "ONL_opennl.h" remove linking to ONL for now
@@ -144,13 +143,15 @@ typedef struct SB_thread_context {
} SB_thread_context;
#define NLF_BUILD 1
-#define NLF_SOLVE 2
+#if 0
+# define NLF_SOLVE 2
+#endif
#define MID_PRESERVE 1
#define SOFTGOALSNAP 0.999f
/* if bp-> goal is above make it a *forced follow original* and skip all ODE stuff for this bp
- * removes *unnecessary* stiffnes from ODE system
+ * removes *unnecessary* stiffness from ODE system
*/
#define HEUNWARNLIMIT 1 /* 500 would be fine i think for detecting severe *stiff* stuff */
@@ -1718,15 +1719,15 @@ static int choose_winner(float*w, float* pos, float*a, float*b, float*c, float*c
{
float mindist, cp;
int winner =1;
- mindist = ABS(dot_v3v3(pos, a));
+ mindist = fabsf(dot_v3v3(pos, a));
- cp = ABS(dot_v3v3(pos, b));
+ cp = fabsf(dot_v3v3(pos, b));
if ( mindist < cp ) {
mindist = cp;
winner =2;
}
- cp = ABS(dot_v3v3(pos, c));
+ cp = fabsf(dot_v3v3(pos, c));
if (mindist < cp ) {
mindist = cp;
winner =3;
@@ -1942,7 +1943,7 @@ static int sb_detect_vertex_collisionCached(float opco[3], float facenormal[3],
}
}
- if ((deflected < 2)&& (G.rt != 444)) { /* we did not hit a face until now */
+ if ((deflected < 2)&& (G.debug_value != 444)) { /* we did not hit a face until now */
/* see if 'outer' hits an edge */
float dist;
@@ -2292,7 +2293,7 @@ static int _softbody_calc_forces_slice_in_a_thread(Scene *scene, Object *ob, flo
/* done goal stuff */
/* gravitation */
- if (sb && scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) {
+ if (scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) {
float gravity[3];
copy_v3_v3(gravity, scene->physics_settings.gravity);
mul_v3_fl(gravity, sb_grav_force_scale(ob)*_final_mass(ob, bp)*sb->effector_weights->global_gravity); /* individual mass of node here */
@@ -2494,7 +2495,7 @@ static void softbody_calc_forcesEx(Scene *scene, Object *ob, float forcetime, fl
static void softbody_calc_forces(Scene *scene, Object *ob, float forcetime, float timenow, int nl_flags)
{
/* redirection to the new threaded Version */
- if (!(G.rt & 0x10)) { // 16
+ if (!(G.debug_value & 0x10)) { // 16
softbody_calc_forcesEx(scene, ob, forcetime, timenow, nl_flags);
return;
}
@@ -2505,7 +2506,7 @@ static void softbody_calc_forces(Scene *scene, Object *ob, float forcetime, floa
/*backward compatibility note:
fixing bug [17428] which forces adaptive step size to tiny steps
in some situations
- .. keeping G.rt==17 0x11 option for old files 'needing' the bug*/
+ .. keeping G.debug_value==17 0x11 option for old files 'needing' the bug*/
/* rule we never alter free variables :bp->vec bp->pos in here !
* this will ruin adaptive stepsize AKA heun! (BM)
@@ -2757,9 +2758,9 @@ static void softbody_calc_forces(Scene *scene, Object *ob, float forcetime, floa
if (sb_deflect_face(ob, bp->pos, facenormal, defforce, &cf, timenow, vel, &intrusion)) {
if ((!nl_flags)&&(intrusion < 0.0f)) {
- if (G.rt & 0x01) { // 17 we did check for bit 0x10 before
+ if (G.debug_value & 0x01) { // 17 we did check for bit 0x10 before
/*fixing bug [17428] this forces adaptive step size to tiny steps
- in some situations .. keeping G.rt==17 option for old files 'needing' the bug
+ in some situations .. keeping G.debug_value==17 option for old files 'needing' the bug
*/
/*bjornmose: uugh.. what an evil hack
violation of the 'don't touch bp->pos in here' rule
@@ -2838,7 +2839,7 @@ static void softbody_calc_forces(Scene *scene, Object *ob, float forcetime, floa
nlEnd(NL_MATRIX);
nlEnd(NL_SYSTEM);
- if ((G.rt == 32) && (nl_flags & NLF_BUILD)) {
+ if ((G.debug_value == 32) && (nl_flags & NLF_BUILD)) {
printf("####MEE#####\n");
nlPrintMatrix();
}
@@ -2850,7 +2851,7 @@ static void softbody_calc_forces(Scene *scene, Object *ob, float forcetime, floa
float f;
int index =0;
/* for debug purpose .. anyhow cropping B vector looks like working */
- if (G.rt ==32)
+ if (G.debug_value ==32)
for (a=2*sb->totpoint, bp= sb->bpoint; a>0; a--, bp++) {
f=nlGetVariable(0, index);
printf("(%f ", f);index++;
@@ -2914,7 +2915,7 @@ static void softbody_apply_forces(Object *ob, float forcetime, int mode, float *
aabbmin[0]=aabbmin[1]=aabbmin[2] = 1e20f;
aabbmax[0]=aabbmax[1]=aabbmax[2] = -1e20f;
- /* old one with homogenous masses */
+ /* old one with homogeneous masses */
/* claim a minimum mass for vertex */
/*
if (sb->nodemass > 0.009999f) timeovermass = forcetime/sb->nodemass;
@@ -3297,7 +3298,7 @@ static void mesh_to_softbody(Scene *scene, Object *ob)
/* I'd like to have it .. if (sb->namedVG_Goal[0]) */
get_scalar_from_vertexgroup(ob, a, (short) (sb->vertgroup-1), &bp->goal);
- /* do this always, regardless successfull read from vertex group */
+ /* do this always, regardless successful read from vertex group */
/* this is where '2.5 every thing is animatable' goes wrong in the first place jow_go_for2_5 */
/* 1st coding action to take : move this to frame level */
/* reads: leave the bp->goal as it was read from vertex group / or default .. we will need it at per frame call */
@@ -3310,7 +3311,7 @@ static void mesh_to_softbody(Scene *scene, Object *ob)
if (ob->softflag & OB_SB_GOAL) {bp->goal = sb->defgoal;}
}
- /* to proove the concept
+ /* to proof the concept
* this enables per vertex *mass painting*
*/
@@ -3799,7 +3800,7 @@ static void softbody_update_positions(Object *ob, SoftBody *sb, float (*vertexCo
/* vertexCos came from local world, go global */
mul_m4_v3(ob->obmat, bp->origE);
/* just to be save give bp->origT a defined value
- * will be calulated in interpolate_exciter()*/
+ * will be calculated in interpolate_exciter() */
copy_v3_v3(bp->origT, bp->origE);
}
}
@@ -3811,7 +3812,7 @@ static void softbody_update_positions(Object *ob, SoftBody *sb, float (*vertexCo
* that is:
* a precise position vector denoting the motion of the center of mass
* give a rotation/scale matrix using averaging method, that's why estimate and not calculate
- * see: this is kind of reverse engeneering: having to states of a point cloud and recover what happend
+ * see: this is kind of reverse engineering: having to states of a point cloud and recover what happend
* our advantage here we know the identity of the vertex
* there are others methods giving other results.
* lloc, lrot, lscale are allowed to be NULL, just in case you don't need it.
@@ -3924,7 +3925,7 @@ static void softbody_step(Scene *scene, Object *ob, SoftBody *sb, float dtime)
sst=PIL_check_seconds_timer();
/* Integration back in time is possible in theory, but pretty useless here.
- * So we refuse to do so. Since we do not know anything about 'outside' canges
+ * So we refuse to do so. Since we do not know anything about 'outside' changes
* especially colliders we refuse to go more than 10 frames.
*/
if (dtime < 0 || dtime > 10.5f) return;
diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c
index 28fb75db41c..385d1bb6fc5 100644
--- a/source/blender/blenkernel/intern/sound.c
+++ b/source/blender/blenkernel/intern/sound.c
@@ -50,7 +50,6 @@
# include "AUD_C-API.h"
#endif
-#include "BKE_utildefines.h"
#include "BKE_global.h"
#include "BKE_main.h"
#include "BKE_sound.h"
@@ -524,7 +523,7 @@ void sound_update_sequencer(struct Main *main, bSound *sound)
struct Scene *scene;
for (scene = main->scene.first; scene; scene = scene->id.next) {
- seq_update_sound(scene, sound);
+ BKE_sequencer_update_sound(scene, sound);
}
}
@@ -774,37 +773,36 @@ void sound_force_device(int UNUSED(device)) {}
void sound_init_once(void) {}
void sound_init(struct Main *UNUSED(bmain)) {}
void sound_exit(void) {}
-void sound_cache(struct bSound* UNUSED(sound)) { }
-void sound_delete_cache(struct bSound* UNUSED(sound)) {}
-void sound_load(struct Main *UNUSED(bmain), struct bSound* UNUSED(sound)) {}
+void sound_cache(struct bSound *UNUSED(sound)) { }
+void sound_delete_cache(struct bSound *UNUSED(sound)) {}
+void sound_load(struct Main *UNUSED(bmain), struct bSound *UNUSED(sound)) {}
void sound_create_scene(struct Scene *UNUSED(scene)) {}
void sound_destroy_scene(struct Scene *UNUSED(scene)) {}
void sound_mute_scene(struct Scene *UNUSED(scene), int UNUSED(muted)) {}
-void* sound_scene_add_scene_sound(struct Scene *UNUSED(scene), struct Sequence* UNUSED(sequence), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) { return NULL; }
-void* sound_scene_add_scene_sound_defaults(struct Scene *UNUSED(scene), struct Sequence* UNUSED(sequence)) { return NULL; }
-void* sound_add_scene_sound(struct Scene *UNUSED(scene), struct Sequence* UNUSED(sequence), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) { return NULL; }
-void* sound_add_scene_sound_defaults(struct Scene *UNUSED(scene), struct Sequence* UNUSED(sequence)) { return NULL; }
-void sound_remove_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle)) {}
-void sound_mute_scene_sound(void* UNUSED(handle), char UNUSED(mute)) {}
-void sound_move_scene_sound(struct Scene *UNUSED(scene), void* UNUSED(handle), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) {}
+void *sound_scene_add_scene_sound(struct Scene *UNUSED(scene), struct Sequence *UNUSED(sequence), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) { return NULL; }
+void *sound_scene_add_scene_sound_defaults(struct Scene *UNUSED(scene), struct Sequence *UNUSED(sequence)) { return NULL; }
+void *sound_add_scene_sound(struct Scene *UNUSED(scene), struct Sequence *UNUSED(sequence), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) { return NULL; }
+void *sound_add_scene_sound_defaults(struct Scene *UNUSED(scene), struct Sequence *UNUSED(sequence)) { return NULL; }
+void sound_remove_scene_sound(struct Scene *UNUSED(scene), void *UNUSED(handle)) {}
+void sound_mute_scene_sound(void *UNUSED(handle), char UNUSED(mute)) {}
+void sound_move_scene_sound(struct Scene *UNUSED(scene), void *UNUSED(handle), int UNUSED(startframe), int UNUSED(endframe), int UNUSED(frameskip)) {}
void sound_move_scene_sound_defaults(struct Scene *UNUSED(scene), struct Sequence *UNUSED(sequence)) {}
void sound_play_scene(struct Scene *UNUSED(scene)) {}
void sound_stop_scene(struct Scene *UNUSED(scene)) {}
void sound_seek_scene(struct Main *UNUSED(bmain), struct Scene *UNUSED(scene)) {}
float sound_sync_scene(struct Scene *UNUSED(scene)) { return NAN_FLT; }
int sound_scene_playing(struct Scene *UNUSED(scene)) { return -1; }
-int sound_read_sound_buffer(struct bSound* UNUSED(sound), float* UNUSED(buffer), int UNUSED(length), float UNUSED(start), float UNUSED(end)) { return 0; }
-void sound_read_waveform(struct bSound* sound) { (void)sound; }
+void sound_read_waveform(struct bSound *sound) { (void)sound; }
void sound_init_main(struct Main *bmain) { (void)bmain; }
void sound_set_cfra(int cfra) { (void)cfra; }
-void sound_update_sequencer(struct Main* main, struct bSound* sound) { (void)main; (void)sound; }
-void sound_update_scene(struct Scene* scene) { (void)scene; }
-void sound_update_scene_sound(void* handle, struct bSound* sound) { (void)handle; (void)sound; }
+void sound_update_sequencer(struct Main *main, struct bSound *sound) { (void)main; (void)sound; }
+void sound_update_scene(struct Scene *scene) { (void)scene; }
+void sound_update_scene_sound(void *handle, struct bSound *sound) { (void)handle; (void)sound; }
void sound_update_scene_listener(struct Scene *scene) { (void)scene; }
void sound_update_fps(struct Scene *scene) { (void)scene; }
-void sound_set_scene_sound_volume(void* handle, float volume, char animated) { (void)handle; (void)volume; (void)animated; }
-void sound_set_scene_sound_pan(void* handle, float pan, char animated) { (void)handle; (void)pan; (void)animated; }
+void sound_set_scene_sound_volume(void *handle, float volume, char animated) { (void)handle; (void)volume; (void)animated; }
+void sound_set_scene_sound_pan(void *handle, float pan, char animated) { (void)handle; (void)pan; (void)animated; }
void sound_set_scene_volume(struct Scene *scene, float volume) { (void)scene; (void)volume; }
-void sound_set_scene_sound_pitch(void* handle, float pitch, char animated) { (void)handle; (void)pitch; (void)animated; }
-float sound_get_length(struct bSound* sound) { (void)sound; return 0; }
+void sound_set_scene_sound_pitch(void *handle, float pitch, char animated) { (void)handle; (void)pitch; (void)animated; }
+float sound_get_length(struct bSound *sound) { (void)sound; return 0; }
#endif // WITH_AUDASPACE
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index 5c387e8cee0..0d1e2276a9f 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -113,7 +113,8 @@ typedef enum {
CCG_USE_ARENA = 2,
CCG_CALC_NORMALS = 4,
/* add an extra four bytes for a mask layer */
- CCG_ALLOC_MASK = 8
+ CCG_ALLOC_MASK = 8,
+ CCG_SIMPLE_SUBDIV = 16
} CCGFlags;
static CCGSubSurf *_getSubSurf(CCGSubSurf *prevSS, int subdivLevels,
@@ -133,7 +134,10 @@ static CCGSubSurf *_getSubSurf(CCGSubSurf *prevSS, int subdivLevels,
ccgSubSurf_getUseAgeCounts(prevSS, &oldUseAging, NULL, NULL, NULL);
- if (oldUseAging != useAging) {
+ if ((oldUseAging != useAging) ||
+ (ccgSubSurf_getSimpleSubdiv(prevSS) !=
+ !!(flags & CCG_SIMPLE_SUBDIV)))
+ {
ccgSubSurf_free(prevSS);
}
else {
@@ -156,6 +160,7 @@ static CCGSubSurf *_getSubSurf(CCGSubSurf *prevSS, int subdivLevels,
ifc.vertDataSize += sizeof(float) * 3;
if (flags & CCG_ALLOC_MASK)
ifc.vertDataSize += sizeof(float);
+ ifc.simpleSubdiv = !!(flags & CCG_SIMPLE_SUBDIV);
if (useArena) {
CCGAllocatorIFC allocatorIFC;
@@ -508,10 +513,14 @@ static float *get_ss_weights(WeightTable *wtable, int gridCuts, int faceLen)
w2 = (1.0f - fx + fac2 * fx * -fac) * (fy);
w4 = (fx) * (1.0f - fy + -fac2 * fy * fac);
- fac2 = 1.0f - (w1 + w2 + w4);
- fac2 = fac2 / (float)(faceLen - 3);
- for (j = 0; j < faceLen; j++)
- w[j] = fac2;
+ /* these values aren't used for tri's and cause divide by zero */
+ if (faceLen > 3) {
+ fac2 = 1.0f - (w1 + w2 + w4);
+ fac2 = fac2 / (float)(faceLen - 3);
+ for (j = 0; j < faceLen; j++) {
+ w[j] = fac2;
+ }
+ }
w[i] = w1;
w[(i - 1 + faceLen) % faceLen] = w2;
@@ -1463,9 +1472,9 @@ static void ccgdm_getVertCos(DerivedMesh *dm, float (*cos)[3])
}
static void ccgDM_foreachMappedVert(
- DerivedMesh *dm,
- void (*func)(void *userData, int index, const float co[3], const float no_f[3], const short no_s[3]),
- void *userData)
+ DerivedMesh *dm,
+ void (*func)(void *userData, int index, const float co[3], const float no_f[3], const short no_s[3]),
+ void *userData)
{
CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm;
CCGVertIterator *vi;
@@ -1485,9 +1494,9 @@ static void ccgDM_foreachMappedVert(
}
static void ccgDM_foreachMappedEdge(
- DerivedMesh *dm,
- void (*func)(void *userData, int index, const float v0co[3], const float v1co[3]),
- void *userData)
+ DerivedMesh *dm,
+ void (*func)(void *userData, int index, const float v0co[3], const float v1co[3]),
+ void *userData)
{
CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm;
CCGSubSurf *ss = ccgdm->ss;
@@ -2487,9 +2496,9 @@ static void ccgDM_drawMappedEdgesInterp(DerivedMesh *dm,
}
static void ccgDM_foreachMappedFaceCenter(
- DerivedMesh *dm,
- void (*func)(void *userData, int index, const float co[3], const float no[3]),
- void *userData)
+ DerivedMesh *dm,
+ void (*func)(void *userData, int index, const float co[3], const float no[3]),
+ void *userData)
{
CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm;
CCGSubSurf *ss = ccgdm->ss;
@@ -3474,7 +3483,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived(
float (*vertCos)[3],
SubsurfFlags flags)
{
- int useSimple = smd->subdivType == ME_SIMPLE_SUBSURF;
+ int useSimple = (smd->subdivType == ME_SIMPLE_SUBSURF) ? CCG_SIMPLE_SUBDIV : 0;
CCGFlags useAging = smd->flags & eSubsurfModifierFlag_DebugIncr ? CCG_USE_AGING : 0;
int useSubsurfUv = smd->flags & eSubsurfModifierFlag_SubsurfUv;
int drawInteriorEdges = !(smd->flags & eSubsurfModifierFlag_ControlEdges);
@@ -3483,7 +3492,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived(
if (flags & SUBSURF_FOR_EDIT_MODE) {
int levels = (smd->modifier.scene) ? get_render_subsurf_level(&smd->modifier.scene->r, smd->levels) : smd->levels;
- smd->emCache = _getSubSurf(smd->emCache, levels, 3, useAging | CCG_CALC_NORMALS);
+ smd->emCache = _getSubSurf(smd->emCache, levels, 3, useSimple | useAging | CCG_CALC_NORMALS);
ss_sync_from_derivedmesh(smd->emCache, dm, vertCos, useSimple);
result = getCCGDerivedMesh(smd->emCache,
@@ -3498,7 +3507,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived(
if (levels == 0)
return dm;
- ss = _getSubSurf(NULL, levels, 3, CCG_USE_ARENA | CCG_CALC_NORMALS);
+ ss = _getSubSurf(NULL, levels, 3, useSimple | CCG_USE_ARENA | CCG_CALC_NORMALS);
ss_sync_from_derivedmesh(ss, dm, vertCos, useSimple);
@@ -3529,7 +3538,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived(
}
if (useIncremental && (flags & SUBSURF_IS_FINAL_CALC)) {
- smd->mCache = ss = _getSubSurf(smd->mCache, levels, 3, useAging | CCG_CALC_NORMALS);
+ smd->mCache = ss = _getSubSurf(smd->mCache, levels, 3, useSimple | useAging | CCG_CALC_NORMALS);
ss_sync_from_derivedmesh(ss, dm, vertCos, useSimple);
@@ -3538,7 +3547,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived(
useSubsurfUv, dm);
}
else {
- CCGFlags ccg_flags = CCG_USE_ARENA | CCG_CALC_NORMALS;
+ CCGFlags ccg_flags = useSimple | CCG_USE_ARENA | CCG_CALC_NORMALS;
if (smd->mCache && (flags & SUBSURF_IS_FINAL_CALC)) {
ccgSubSurf_free(smd->mCache);
diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c
index 7de5f97588b..05d0705107d 100644
--- a/source/blender/blenkernel/intern/text.c
+++ b/source/blender/blenkernel/intern/text.c
@@ -48,6 +48,7 @@
#include "DNA_constraint_types.h"
#include "DNA_controller_types.h"
+#include "DNA_actuator_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
@@ -528,6 +529,7 @@ void BKE_text_unlink(Main *bmain, Text *text)
SpaceLink *sl;
Object *ob;
bController *cont;
+ bActuator *act;
bConstraint *con;
short update;
@@ -541,6 +543,15 @@ void BKE_text_unlink(Main *bmain, Text *text)
if (pc->text == text) pc->text = NULL;
}
}
+ /* game actuators */
+ for (act = ob->actuators.first; act; act = act->next) {
+ if (act->type == ACT_2DFILTER) {
+ bTwoDFilterActuator *tfa;
+
+ tfa = act->data;
+ if (tfa->text == text) tfa->text = NULL;
+ }
+ }
/* pyconstraints */
update = 0;
@@ -1684,7 +1695,8 @@ void txt_print_undo(Text *text)
printf("%c%c%c", text->undo_buf[i], text->undo_buf[i + 1], text->undo_buf[i + 2]);
i += 3;
break;
- case UNDO_INSERT_4: case UNDO_BS_4: case UNDO_DEL_4: {
+ case UNDO_INSERT_4: case UNDO_BS_4: case UNDO_DEL_4:
+ {
unsigned int uc;
char c[BLI_UTF8_MAX + 1];
size_t c_len;
@@ -1918,6 +1930,7 @@ static unsigned int txt_undo_read_unicode(const char *undo_buf, int *undo_pos, s
break;
case 4: /* 32-bit unicode symbol */
unicode = txt_undo_read_uint32(undo_buf, undo_pos);
+ break;
default:
/* should never happen */
BLI_assert(0);
@@ -1969,6 +1982,7 @@ static unsigned int txt_redo_read_unicode(const char *undo_buf, int *undo_pos, s
break;
case 4: /* 32-bit unicode symbol */
unicode = txt_undo_read_uint32(undo_buf, undo_pos);
+ break;
default:
/* should never happen */
BLI_assert(0);
@@ -3030,30 +3044,6 @@ void txt_uncomment(Text *text)
}
}
-
-void txt_move_lines_up(struct Text *text)
-{
- TextLine *prev_line;
-
- if (!text || !text->curl || !text->sell) return;
-
- txt_order_cursors(text);
-
- prev_line = text->curl->prev;
-
- if (!prev_line) return;
-
- BLI_remlink(&text->lines, prev_line);
- BLI_insertlinkafter(&text->lines, text->sell, prev_line);
-
- txt_make_dirty(text);
- txt_clean_text(text);
-
- if (!undoing) {
- txt_undo_add_op(text, UNDO_MOVE_LINES_UP);
- }
-}
-
void txt_move_lines(struct Text *text, const int direction)
{
TextLine *line_other;
@@ -3093,7 +3083,6 @@ int setcurr_tab_spaces(Text *text, int space)
const char *comm = "#";
const char indent = (text->flags & TXT_TABSTOSPACES) ? ' ' : '\t';
static const char *back_words[] = {"return", "break", "continue", "pass", "yield", NULL};
- if (!text) return 0;
if (!text->curl) return 0;
while (text->curl->line[i] == indent) {
diff --git a/source/blender/blenkernel/intern/texture.c b/source/blender/blenkernel/intern/texture.c
index 7081a642b8a..9dd83181521 100644
--- a/source/blender/blenkernel/intern/texture.c
+++ b/source/blender/blenkernel/intern/texture.c
@@ -56,7 +56,6 @@
#include "IMB_imbuf.h"
-#include "BKE_utildefines.h"
#include "BKE_global.h"
#include "BKE_main.h"
#include "BKE_ocean.h"
@@ -339,7 +338,7 @@ void colorband_table_RGBA(ColorBand *coba, float **array, int *size)
do_colorband(coba, (float)a / (float)CM_TABLE, &(*array)[a * 4]);
}
-int vergcband(const void *a1, const void *a2)
+static int vergcband(const void *a1, const void *a2)
{
const CBData *x1 = a1, *x2 = a2;
@@ -1074,19 +1073,21 @@ void set_current_material_texture(Material *ma, Tex *newtex)
{
Tex *tex = NULL;
bNode *node;
-
- if (ma && ma->use_nodes && ma->nodetree) {
- node = nodeGetActiveID(ma->nodetree, ID_TE);
- if (node) {
- tex = (Tex *)node->id;
- id_us_min(&tex->id);
+ if ((ma->use_nodes && ma->nodetree) &&
+ (node = nodeGetActiveID(ma->nodetree, ID_TE)))
+ {
+ tex = (Tex *)node->id;
+ id_us_min(&tex->id);
+ if (newtex) {
node->id = &newtex->id;
id_us_plus(&newtex->id);
- ma = NULL;
+ }
+ else {
+ node->id = NULL;
}
}
- if (ma) {
+ else {
int act = (int)ma->texact;
tex = (ma->mtex[act]) ? ma->mtex[act]->tex : NULL;
@@ -1292,7 +1293,7 @@ PointDensity *BKE_add_pointdensity(void)
pd->falloff_curve->preset = CURVE_PRESET_LINE;
pd->falloff_curve->cm->flag &= ~CUMA_EXTEND_EXTRAPOLATE;
curvemap_reset(pd->falloff_curve->cm, &pd->falloff_curve->clipr, pd->falloff_curve->preset, CURVEMAP_SLOPE_POSITIVE);
- curvemapping_changed(pd->falloff_curve, 0);
+ curvemapping_changed(pd->falloff_curve, FALSE);
return pd;
}
@@ -1413,11 +1414,11 @@ int BKE_texture_dependsOnTime(const struct Tex *texture)
return 1;
}
else if (texture->adt) {
- // assume anything in adt means the texture is animated
+ /* assume anything in adt means the texture is animated */
return 1;
}
else if (texture->type == TEX_NOISE) {
- // noise always varies with time
+ /* noise always varies with time */
return 1;
}
return 0;
diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c
index 6167536fb9b..c9d7ec3964f 100644
--- a/source/blender/blenkernel/intern/tracking.c
+++ b/source/blender/blenkernel/intern/tracking.c
@@ -335,7 +335,7 @@ static void search_pixel_to_marker_unified(int frame_width, int frame_height,
}
/* Each marker has 5 coordinates associated with it that get warped with
- * tracking: the four corners ("pattern_corners"), and the cernter ("pos").
+ * tracking: the four corners ("pattern_corners"), and the center ("pos").
* This function puts those 5 points into the appropriate frame for tracking
* (the "search" coordinate frame).
*/
@@ -411,6 +411,8 @@ void BKE_tracking_clipboard_free(void)
track = next_track;
}
+
+ tracking_clipboard.tracks.first = tracking_clipboard.tracks.last = NULL;
}
void BKE_tracking_clipboard_copy_tracks(MovieTracking *tracking, MovieTrackingObject *object)
@@ -453,7 +455,7 @@ void BKE_tracking_clipboard_paste_tracks(MovieTracking *tracking, MovieTrackingO
/*********************** Tracks *************************/
-static void tracking_marker_insert_disabled(MovieTrackingTrack *track, MovieTrackingMarker *ref_marker,
+static void tracking_marker_insert_disabled(MovieTrackingTrack *track, const MovieTrackingMarker *ref_marker,
int before, int overwrite)
{
MovieTrackingMarker marker_new;
@@ -853,8 +855,8 @@ static void track_mask_gpencil_layer_rasterize(int frame_width, int frame_height
fp[1] = (stroke_points[i].y - marker->search_min[1]) * frame_height / mask_height;
}
- /* TODO: add an option to control wether AA is enabled or not */
- PLX_raskterize((float (*)[2])mask_points, stroke->totpoints, mask, mask_width, mask_height, FALSE);
+ /* TODO: add an option to control whether AA is enabled or not */
+ PLX_raskterize((float (*)[2])mask_points, stroke->totpoints, mask, mask_width, mask_height);
MEM_freeN(mask_points);
}
@@ -916,7 +918,7 @@ void BKE_tracking_track_deselect(MovieTrackingTrack *track, int area)
BKE_tracking_track_flag_clear(track, area, SELECT);
}
-/*********************** Marker *************************/
+/*********************** Marker *************************/
MovieTrackingMarker *BKE_tracking_marker_insert(MovieTrackingTrack *track, MovieTrackingMarker *marker)
{
@@ -995,8 +997,8 @@ void BKE_tracking_marker_clamp(MovieTrackingMarker *marker, int event)
if (event == CLAMP_PAT_DIM) {
for (a = 0; a < 2; a++) {
/* search shouldn't be resized smaller than pattern */
- marker->search_min[a] = MIN2(pat_min[a], marker->search_min[a]);
- marker->search_max[a] = MAX2(pat_max[a], marker->search_max[a]);
+ marker->search_min[a] = minf(pat_min[a], marker->search_min[a]);
+ marker->search_max[a] = maxf(pat_max[a], marker->search_max[a]);
}
}
else if (event == CLAMP_PAT_POS) {
@@ -1020,8 +1022,8 @@ void BKE_tracking_marker_clamp(MovieTrackingMarker *marker, int event)
else if (event == CLAMP_SEARCH_DIM) {
for (a = 0; a < 2; a++) {
/* search shouldn't be resized smaller than pattern */
- marker->search_min[a] = MIN2(pat_min[a], marker->search_min[a]);
- marker->search_max[a] = MAX2(pat_max[a], marker->search_max[a]);
+ marker->search_min[a] = minf(pat_min[a], marker->search_min[a]);
+ marker->search_max[a] = maxf(pat_max[a], marker->search_max[a]);
}
}
else if (event == CLAMP_SEARCH_POS) {
@@ -1041,14 +1043,6 @@ void BKE_tracking_marker_clamp(MovieTrackingMarker *marker, int event)
}
}
}
- else if (event == CLAMP_SEARCH_DIM) {
- float dim[2];
- sub_v2_v2v2(dim, pat_max, pat_min);
- for (a = 0; a < 2; a++) {
- marker->search_min[a] = pat_min[a];
- marker->search_max[a] = pat_max[a];
- }
- }
}
MovieTrackingMarker *BKE_tracking_marker_get(MovieTrackingTrack *track, int framenr)
@@ -1133,6 +1127,36 @@ void BKE_tracking_marker_pattern_minmax(const MovieTrackingMarker *marker, float
DO_MINMAX2(marker->pattern_corners[3], min, max);
}
+void BKE_tracking_marker_get_subframe_position(MovieTrackingTrack *track, float framenr, float pos[2])
+{
+ MovieTrackingMarker *marker = BKE_tracking_marker_get(track, (int) framenr);
+ MovieTrackingMarker *marker_last = track->markers + (track->markersnr - 1);
+
+ if (marker != marker_last) {
+ MovieTrackingMarker *marker_next = marker + 1;
+
+ if (marker_next->framenr == marker->framenr + 1) {
+ /* currently only do subframing inside tracked ranges, do not extrapolate tracked segments
+ * could be changed when / if mask parent would be interpolating position in-between
+ * tracked segments
+ */
+
+ float fac = (framenr - (int) framenr) / (marker_next->framenr - marker->framenr);
+
+ interp_v2_v2v2(pos, marker->pos, marker_next->pos, fac);
+ }
+ else {
+ copy_v2_v2(pos, marker->pos);
+ }
+ }
+ else {
+ copy_v2_v2(pos, marker->pos);
+ }
+
+ /* currently track offset is always wanted to be applied here, could be made an option later */
+ add_v2_v2(pos, track->offset);
+}
+
/*********************** Object *************************/
MovieTrackingObject *BKE_tracking_object_add(MovieTracking *tracking, const char *name)
@@ -1505,7 +1529,7 @@ void BKE_tracking_distortion_free(MovieDistortion *distortion)
MEM_freeN(distortion);
}
-void BKE_tracking_distort_v2(MovieTracking *tracking, float co[2], float nco[2])
+void BKE_tracking_distort_v2(MovieTracking *tracking, const float co[2], float r_co[2])
{
MovieTrackingCamera *camera = &tracking->camera;
@@ -1521,16 +1545,16 @@ void BKE_tracking_distort_v2(MovieTracking *tracking, float co[2], float nco[2])
camera->k1, camera->k2, camera->k3, x, y, &x, &y);
/* result is in image coords already */
- nco[0] = x;
- nco[1] = y;
+ r_co[0] = x;
+ r_co[1] = y;
#else
(void) camera;
(void) co;
- (void) nco;
+ zero_v2(r_co);
#endif
}
-void BKE_tracking_undistort_v2(MovieTracking *tracking, float co[2], float nco[2])
+void BKE_tracking_undistort_v2(MovieTracking *tracking, const float co[2], float r_co[2])
{
MovieTrackingCamera *camera = &tracking->camera;
@@ -1541,12 +1565,12 @@ void BKE_tracking_undistort_v2(MovieTracking *tracking, float co[2], float nco[2
libmv_InvertIntrinsics(camera->focal, camera->principal[0], camera->principal[1] * aspy,
camera->k1, camera->k2, camera->k3, x, y, &x, &y);
- nco[0] = x * camera->focal + camera->principal[0];
- nco[1] = y * camera->focal + camera->principal[1] * aspy;
+ r_co[0] = x * camera->focal + camera->principal[0];
+ r_co[1] = y * camera->focal + camera->principal[1] * aspy;
#else
(void) camera;
(void) co;
- (void) nco;
+ zero_v2(r_co);
#endif
}
@@ -1595,7 +1619,6 @@ ImBuf *BKE_tracking_sample_pattern(int frame_width, int frame_height, ImBuf *sea
float *mask = NULL;
pattern_ibuf = IMB_allocImBuf(num_samples_x, num_samples_y, 32, IB_rectfloat);
- pattern_ibuf->profile = IB_PROFILE_LINEAR_RGB;
if (!search_ibuf->rect_float) {
IMB_float_from_rect(search_ibuf);
@@ -1690,7 +1713,6 @@ ImBuf *BKE_tracking_get_search_imbuf(ImBuf *ibuf, MovieTrackingTrack *track, Mov
h = (marker->search_max[1] - marker->search_min[1]) * ibuf->y;
searchibuf = IMB_allocImBuf(w, h, 32, ibuf->rect_float ? IB_rectfloat : IB_rect);
- searchibuf->profile = ibuf->profile;
IMB_rectcpy(searchibuf, ibuf, 0, 0, x, y, w, h);
@@ -1999,7 +2021,7 @@ static void track_context_free(void *customdata)
{
TrackContext *track_context = (TrackContext *)customdata;
-#if WITH_LIBMV
+#ifdef WITH_LIBMV
if (track_context->search_area)
MEM_freeN(track_context->search_area);
@@ -2193,8 +2215,8 @@ static ImBuf *tracking_context_get_frame_ibuf(MovieTrackingContext *context, int
return ibuf;
}
-MovieTrackingMarker *tracking_context_get_keyframed_marker(MovieTrackingContext *context, MovieTrackingTrack *track,
- MovieTrackingMarker *marker)
+static MovieTrackingMarker *tracking_context_get_keyframed_marker(MovieTrackingContext *context, MovieTrackingTrack *track,
+ MovieTrackingMarker *marker)
{
int a = marker - track->markers;
MovieTrackingMarker *marker_keyed = marker;
@@ -2259,9 +2281,9 @@ static ImBuf *tracking_context_get_reference_ibuf(MovieTrackingContext *context,
return ibuf;
}
-static void track_context_update_reference(MovieTrackingContext *context, TrackContext *track_context,
- MovieTrackingTrack *track, MovieTrackingMarker *marker, int curfra,
- int frame_width, int frame_height)
+static int track_context_update_reference(MovieTrackingContext *context, TrackContext *track_context,
+ MovieTrackingTrack *track, MovieTrackingMarker *marker, int curfra,
+ int frame_width, int frame_height)
{
MovieTrackingMarker *marker_keyed = NULL;
ImBuf *reference_ibuf = NULL;
@@ -2269,6 +2291,10 @@ static void track_context_update_reference(MovieTrackingContext *context, TrackC
/* calculate patch for keyframed position */
reference_ibuf = tracking_context_get_reference_ibuf(context, track, marker, curfra, &marker_keyed);
+
+ if (!reference_ibuf)
+ return FALSE;
+
track_context->marker = *marker_keyed;
if (track_context->search_area) {
@@ -2287,6 +2313,8 @@ static void track_context_update_reference(MovieTrackingContext *context, TrackC
}
IMB_freeImBuf(reference_ibuf);
+
+ return TRUE;
}
static void tracking_configure_tracker(TrackContext *track_context, MovieTrackingTrack *track,
@@ -2315,10 +2343,10 @@ static int tracking_check_marker_margin(MovieTrackingTrack *track, MovieTracking
/* margin from frame boundaries */
BKE_tracking_marker_pattern_minmax(marker, pat_min, pat_max);
sub_v2_v2v2(dim, pat_max, pat_min);
- margin[0] = margin[1] = MAX2(dim[0], dim[1]) / 2.0f;
+ margin[0] = margin[1] = maxf(dim[0], dim[1]) / 2.0f;
- margin[0] = MAX2(margin[0], (float)track->margin / frame_width);
- margin[1] = MAX2(margin[1], (float)track->margin / frame_height);
+ margin[0] = maxf(margin[0], (float)track->margin / frame_width);
+ margin[1] = maxf(margin[1], (float)track->margin / frame_height);
/* do not track markers which are too close to boundary */
if (marker->pos[0] < margin[0] || marker->pos[0] > 1.0f - margin[0] ||
@@ -2372,7 +2400,7 @@ static void tracking_insert_new_marker(MovieTrackingContext *context, MovieTrack
* if so -- create disabled marker before currently tracking "segment"
*/
- tracking_marker_insert_disabled(track, &new_marker, !context->backwards, FALSE);
+ tracking_marker_insert_disabled(track, old_marker, !context->backwards, FALSE);
}
/* insert currently tracked marker */
@@ -2419,7 +2447,7 @@ int BKE_tracking_context_step(MovieTrackingContext *context)
frame_width = destination_ibuf->x;
frame_height = destination_ibuf->y;
- #pragma omp parallel for private(a) shared(destination_ibuf, ok) if (map_size>1)
+ #pragma omp parallel for private(a) shared(destination_ibuf, ok) if (map_size > 1)
for (a = 0; a < map_size; a++) {
TrackContext *track_context = NULL;
MovieTrackingTrack *track;
@@ -2451,8 +2479,12 @@ int BKE_tracking_context_step(MovieTrackingContext *context)
float *patch_new;
if (need_readjust) {
- track_context_update_reference(context, track_context, track, marker,
- curfra, frame_width, frame_height);
+ if (track_context_update_reference(context, track_context, track, marker,
+ curfra, frame_width, frame_height) == FALSE)
+ {
+ /* happens when reference frame fails to be loaded */
+ continue;
+ }
}
/* for now track to the same search area dimension as marker has got for current frame
@@ -2746,7 +2778,7 @@ static int reconstruct_count_tracks_on_both_keyframes(MovieTracking *tracking, L
int BKE_tracking_reconstruction_check(MovieTracking *tracking, MovieTrackingObject *object, char *error_msg, int error_size)
{
-#if WITH_LIBMV
+#ifdef WITH_LIBMV
ListBase *tracksbase = BKE_tracking_object_get_tracks(tracking, object);
if (tracking->settings.motion_flag & TRACKING_MOTION_MODAL) {
@@ -3242,7 +3274,7 @@ static float stabilization_calculate_autoscale_factor(MovieTracking *tracking, i
S = (-w * I - h * J) / (dx * I + dy * J + K);
- scale = MAX2(scale, S);
+ scale = maxf(scale, S);
}
}
}
@@ -3251,7 +3283,7 @@ static float stabilization_calculate_autoscale_factor(MovieTracking *tracking, i
stab->scale = scale;
if (stab->maxscale > 0.0f)
- stab->scale = MIN2(stab->scale, stab->maxscale);
+ stab->scale = minf(stab->scale, stab->maxscale);
}
else {
stab->scale = 1.0f;
@@ -3285,7 +3317,6 @@ static ImBuf *stabilization_allocate_ibuf(ImBuf *cacheibuf, ImBuf *srcibuf, int
}
else {
cacheibuf = IMB_allocImBuf(srcibuf->x, srcibuf->y, srcibuf->planes, flags);
- cacheibuf->profile = srcibuf->profile;
}
return cacheibuf;
diff --git a/source/blender/blenkernel/intern/unit.c b/source/blender/blenkernel/intern/unit.c
index df4d2d8cc38..46836b1f8d1 100644
--- a/source/blender/blenkernel/intern/unit.c
+++ b/source/blender/blenkernel/intern/unit.c
@@ -180,13 +180,13 @@ static struct bUnitDef buMetricVolDef[] = {
static struct bUnitCollection buMetricVolCollecton = {buMetricVolDef, 3, 0, sizeof(buMetricVolDef) / sizeof(bUnitDef)};
static struct bUnitDef buImperialVolDef[] = {
- {"cubic mile", "cubic miles", "cu mi", "cu m", "Cubic Miles", UN_SC_MI * UN_SC_MI * UN_SC_MI, 0.0, B_UNIT_DEF_NONE},
- {"cubic furlong", "cubic furlongs", "cu fur", NULL, "Cubic Furlongs", UN_SC_FUR * UN_SC_FUR * UN_SC_FUR, 0.0, B_UNIT_DEF_SUPPRESS},
- {"cubic chain", "cubic chains", "cu ch", NULL, "Cubic Chains", UN_SC_CH * UN_SC_CH * UN_SC_CH, 0.0, B_UNIT_DEF_SUPPRESS},
- {"cubic yard", "cubic yards", "cu yd", NULL, "Cubic Yards", UN_SC_YD * UN_SC_YD * UN_SC_YD, 0.0, B_UNIT_DEF_NONE},
- {"cubic foot", "cubic feet", "cu ft", NULL, "Cubic Feet", UN_SC_FT * UN_SC_FT * UN_SC_FT, 0.0, B_UNIT_DEF_NONE}, /* base unit */
- {"cubic inch", "cubic inches", "cu in", NULL , "Cubic Inches", UN_SC_IN * UN_SC_IN * UN_SC_IN, 0.0, B_UNIT_DEF_NONE},
- {"cubic thou", "cubic thous", "cu mil", NULL, "Cubic Thous", UN_SC_MIL * UN_SC_MIL * UN_SC_MIL, 0.0, B_UNIT_DEF_NONE},
+ {"cubic mile", "cubic miles", "cu mi", "cu m", "Cubic Miles", UN_SC_MI * UN_SC_MI * UN_SC_MI, 0.0, B_UNIT_DEF_NONE},
+ {"cubic furlong", "cubic furlongs", "cu fur", NULL, "Cubic Furlongs", UN_SC_FUR * UN_SC_FUR * UN_SC_FUR, 0.0, B_UNIT_DEF_SUPPRESS},
+ {"cubic chain", "cubic chains", "cu ch", NULL, "Cubic Chains", UN_SC_CH * UN_SC_CH * UN_SC_CH, 0.0, B_UNIT_DEF_SUPPRESS},
+ {"cubic yard", "cubic yards", "cu yd", NULL, "Cubic Yards", UN_SC_YD * UN_SC_YD * UN_SC_YD, 0.0, B_UNIT_DEF_NONE},
+ {"cubic foot", "cubic feet", "cu ft", NULL, "Cubic Feet", UN_SC_FT * UN_SC_FT * UN_SC_FT, 0.0, B_UNIT_DEF_NONE}, /* base unit */
+ {"cubic inch", "cubic inches", "cu in", NULL, "Cubic Inches", UN_SC_IN * UN_SC_IN * UN_SC_IN, 0.0, B_UNIT_DEF_NONE},
+ {"cubic thou", "cubic thous", "cu mil", NULL, "Cubic Thous", UN_SC_MIL * UN_SC_MIL * UN_SC_MIL, 0.0, B_UNIT_DEF_NONE},
{NULL, NULL, NULL, NULL, NULL, 0.0, 0.0}
};
static struct bUnitCollection buImperialVolCollecton = {buImperialVolDef, 4, 0, sizeof(buImperialVolDef) / sizeof(bUnitDef)};
@@ -350,7 +350,7 @@ static int unit_as_string(char *str, int len_max, double value, int prec, bUnitC
/* Add unit prefix and strip zeros */
/* replace trailing zero's with spaces
- * so the number is less complicated but allignment in a button wont
+ * so the number is less complicated but alignment in a button wont
* jump about while dragging */
i = len - 1;
diff --git a/source/blender/blenkernel/intern/world.c b/source/blender/blenkernel/intern/world.c
index 303098ea0bd..434bfe19c1f 100644
--- a/source/blender/blenkernel/intern/world.c
+++ b/source/blender/blenkernel/intern/world.c
@@ -51,14 +51,14 @@
#include "BKE_node.h"
#include "BKE_world.h"
-void BKE_world_free(World *wrld)
+void BKE_world_free_ex(World *wrld, int do_id_user)
{
MTex *mtex;
int a;
for (a = 0; a < MAX_MTEX; a++) {
mtex = wrld->mtex[a];
- if (mtex && mtex->tex) mtex->tex->id.us--;
+ if (do_id_user && mtex && mtex->tex) mtex->tex->id.us--;
if (mtex) MEM_freeN(mtex);
}
BKE_previewimg_free(&wrld->preview);
@@ -67,7 +67,7 @@ void BKE_world_free(World *wrld)
/* is no lib link block, but world extension */
if (wrld->nodetree) {
- ntreeFreeTree(wrld->nodetree);
+ ntreeFreeTree_ex(wrld->nodetree, do_id_user);
MEM_freeN(wrld->nodetree);
}
@@ -75,6 +75,10 @@ void BKE_world_free(World *wrld)
wrld->id.icon_id = 0;
}
+void BKE_world_free(World *wrld)
+{
+ BKE_world_free_ex(wrld, TRUE);
+}
World *add_world(const char *name)
{
@@ -128,8 +132,9 @@ World *BKE_world_copy(World *wrld)
}
}
- if (wrld->nodetree)
+ if (wrld->nodetree) {
wrldn->nodetree = ntreeCopyTree(wrld->nodetree);
+ }
if (wrld->preview)
wrldn->preview = BKE_previewimg_copy(wrld->preview);
diff --git a/source/blender/blenkernel/intern/writeavi.c b/source/blender/blenkernel/intern/writeavi.c
index cd19f8a987c..9f29cb8b137 100644
--- a/source/blender/blenkernel/intern/writeavi.c
+++ b/source/blender/blenkernel/intern/writeavi.c
@@ -47,7 +47,11 @@
#include "BKE_report.h"
#include "BKE_writeavi.h"
-#include "AVI_avi.h"
+
+/* ********************** general blender movie support ***************************** */
+
+#ifdef WITH_AVI
+# include "AVI_avi.h"
/* callbacks */
static int start_avi(Scene *scene, RenderData *rd, int rectx, int recty, ReportList *reports);
@@ -55,38 +59,32 @@ static void end_avi(void);
static int append_avi(RenderData *rd, int start_frame, int frame, int *pixels,
int rectx, int recty, ReportList *reports);
static void filepath_avi(char *string, RenderData *rd);
-
-/* ********************** general blender movie support ***************************** */
+#endif /* WITH_AVI */
#ifdef WITH_QUICKTIME
-#include "quicktime_export.h"
+# include "quicktime_export.h"
#endif
#ifdef WITH_FFMPEG
-#include "BKE_writeffmpeg.h"
+# include "BKE_writeffmpeg.h"
#endif
#include "BKE_writeframeserver.h"
bMovieHandle *BKE_movie_handle_get(const char imtype)
{
- static bMovieHandle mh;
+ static bMovieHandle mh = {0};
/* set the default handle, as builtin */
+#ifdef WITH_AVI
mh.start_movie = start_avi;
mh.append_movie = append_avi;
mh.end_movie = end_avi;
mh.get_next_frame = NULL;
mh.get_movie_path = filepath_avi;
-
- /* do the platform specific handles */
-#if defined(_WIN32) && !defined(FREE_WINDOWS)
- if (imtype == R_IMF_IMTYPE_AVICODEC) {
- //XXX mh.start_movie= start_avi_codec;
- //XXX mh.append_movie= append_avi_codec;
- //XXX mh.end_movie= end_avi_codec;
- }
#endif
+
+ /* do the platform specific handles */
#ifdef WITH_QUICKTIME
if (imtype == R_IMF_IMTYPE_QUICKTIME) {
mh.start_movie = start_qt;
@@ -121,6 +119,8 @@ bMovieHandle *BKE_movie_handle_get(const char imtype)
/* ****************************************************************** */
+#ifdef WITH_AVI
+
static AviMovie *avi = NULL;
static void filepath_avi(char *string, RenderData *rd)
@@ -226,6 +226,7 @@ static void end_avi(void)
MEM_freeN(avi);
avi = NULL;
}
+#endif /* WITH_AVI */
/* similar to BKE_makepicstring() */
void BKE_movie_filepath_get(char *string, RenderData *rd)
diff --git a/source/blender/blenkernel/intern/writeffmpeg.c b/source/blender/blenkernel/intern/writeffmpeg.c
index f72942df8b3..ff1fdebb728 100644
--- a/source/blender/blenkernel/intern/writeffmpeg.c
+++ b/source/blender/blenkernel/intern/writeffmpeg.c
@@ -69,8 +69,6 @@
#include "ffmpeg_compat.h"
-extern void do_init_ffmpeg(void);
-
static int ffmpeg_type = 0;
static int ffmpeg_codec = CODEC_ID_MPEG4;
static int ffmpeg_audio_codec = CODEC_ID_NONE;
@@ -101,6 +99,8 @@ static AUD_Device *audio_mixdown_device = 0;
#define FFMPEG_AUTOSPLIT_SIZE 2000000000
+#define PRINT if (G.debug & G_DEBUG_FFMPEG) printf
+
/* Delete a picture buffer */
static void delete_picture(AVFrame *f)
@@ -125,9 +125,7 @@ static int write_audio_frame(void)
AUD_readDevice(audio_mixdown_device, audio_input_buffer, audio_input_samples);
audio_time += (double) audio_input_samples / (double) c->sample_rate;
- pkt.size = avcodec_encode_audio(c, audio_output_buffer,
- audio_outbuf_size,
- (short *)audio_input_buffer);
+ pkt.size = avcodec_encode_audio(c, audio_output_buffer, audio_outbuf_size, (short *) audio_input_buffer);
if (pkt.size < 0) {
// XXX error("Error writing audio packet");
@@ -137,9 +135,8 @@ static int write_audio_frame(void)
pkt.data = audio_output_buffer;
if (c->coded_frame && c->coded_frame->pts != AV_NOPTS_VALUE) {
- pkt.pts = av_rescale_q(c->coded_frame->pts,
- c->time_base, audio_stream->time_base);
- fprintf(stderr, "Audio Frame PTS: %d\n", (int)pkt.pts);
+ pkt.pts = av_rescale_q(c->coded_frame->pts, c->time_base, audio_stream->time_base);
+ PRINT("Audio Frame PTS: %d\n", (int) pkt.pts);
}
pkt.stream_index = audio_stream->index;
@@ -180,59 +177,71 @@ static AVFrame *alloc_picture(int pix_fmt, int width, int height)
static const char **get_file_extensions(int format)
{
switch (format) {
- case FFMPEG_DV: {
+ case FFMPEG_DV:
+ {
static const char *rv[] = { ".dv", NULL };
return rv;
}
- case FFMPEG_MPEG1: {
+ case FFMPEG_MPEG1:
+ {
static const char *rv[] = { ".mpg", ".mpeg", NULL };
return rv;
}
- case FFMPEG_MPEG2: {
- static const char *rv[] = { ".dvd", ".vob", ".mpg", ".mpeg",
- NULL };
+ case FFMPEG_MPEG2:
+ {
+ static const char *rv[] = { ".dvd", ".vob", ".mpg", ".mpeg", NULL };
return rv;
}
- case FFMPEG_MPEG4: {
+ case FFMPEG_MPEG4:
+ {
static const char *rv[] = { ".mp4", ".mpg", ".mpeg", NULL };
return rv;
}
- case FFMPEG_AVI: {
+ case FFMPEG_AVI:
+ {
static const char *rv[] = { ".avi", NULL };
return rv;
}
- case FFMPEG_MOV: {
+ case FFMPEG_MOV:
+ {
static const char *rv[] = { ".mov", NULL };
return rv;
}
- case FFMPEG_H264: {
+ case FFMPEG_H264:
+ {
/* FIXME: avi for now... */
static const char *rv[] = { ".avi", NULL };
return rv;
}
- case FFMPEG_XVID: {
+ case FFMPEG_XVID:
+ {
/* FIXME: avi for now... */
static const char *rv[] = { ".avi", NULL };
return rv;
}
- case FFMPEG_FLV: {
+ case FFMPEG_FLV:
+ {
static const char *rv[] = { ".flv", NULL };
return rv;
}
- case FFMPEG_MKV: {
+ case FFMPEG_MKV:
+ {
static const char *rv[] = { ".mkv", NULL };
return rv;
}
- case FFMPEG_OGG: {
+ case FFMPEG_OGG:
+ {
static const char *rv[] = { ".ogg", ".ogv", NULL };
return rv;
}
- case FFMPEG_MP3: {
+ case FFMPEG_MP3:
+ {
static const char *rv[] = { ".mp3", NULL };
return rv;
}
- case FFMPEG_WAV: {
+ case FFMPEG_WAV:
+ {
static const char *rv[] = { ".wav", NULL };
return rv;
}
@@ -254,21 +263,18 @@ static int write_video_frame(RenderData *rd, int cfra, AVFrame *frame, ReportLis
frame->top_field_first = ((rd->mode & R_ODDFIELD) != 0);
}
- outsize = avcodec_encode_video(c, video_buffer, video_buffersize,
- frame);
+ outsize = avcodec_encode_video(c, video_buffer, video_buffersize, frame);
if (outsize > 0) {
AVPacket packet;
av_init_packet(&packet);
if (c->coded_frame->pts != AV_NOPTS_VALUE) {
- packet.pts = av_rescale_q(c->coded_frame->pts,
- c->time_base,
- video_stream->time_base);
- fprintf(stderr, "Video Frame PTS: %d\n", (int)packet.pts);
+ packet.pts = av_rescale_q(c->coded_frame->pts, c->time_base, video_stream->time_base);
+ PRINT("Video Frame PTS: %d\n", (int)packet.pts);
}
else {
- fprintf(stderr, "Video Frame PTS: not set\n");
+ PRINT("Video Frame PTS: not set\n");
}
if (c->coded_frame->key_frame)
packet.flags |= AV_PKT_FLAG_KEY;
@@ -364,7 +370,7 @@ static void set_ffmpeg_property_option(AVCodecContext *c, IDProperty *prop)
char *param;
const AVOption *rv = NULL;
- fprintf(stderr, "FFMPEG expert option: %s: ", prop->name);
+ PRINT("FFMPEG expert option: %s: ", prop->name);
BLI_strncpy(name, prop->name, sizeof(name));
@@ -376,15 +382,15 @@ static void set_ffmpeg_property_option(AVCodecContext *c, IDProperty *prop)
switch (prop->type) {
case IDP_STRING:
- fprintf(stderr, "%s.\n", IDP_String(prop));
+ PRINT("%s.\n", IDP_String(prop));
av_set_string3(c, prop->name, IDP_String(prop), 1, &rv);
break;
case IDP_FLOAT:
- fprintf(stderr, "%g.\n", IDP_Float(prop));
+ PRINT("%g.\n", IDP_Float(prop));
rv = av_set_double(c, prop->name, IDP_Float(prop));
break;
case IDP_INT:
- fprintf(stderr, "%d.\n", IDP_Int(prop));
+ PRINT("%d.\n", IDP_Int(prop));
if (param) {
if (IDP_Int(prop)) {
@@ -401,8 +407,7 @@ static void set_ffmpeg_property_option(AVCodecContext *c, IDProperty *prop)
}
if (!rv) {
- fprintf(stderr, "ffmpeg-option not supported: %s! Skipping.\n",
- prop->name);
+ PRINT("ffmpeg-option not supported: %s! Skipping.\n", prop->name);
}
}
@@ -446,11 +451,14 @@ static void set_ffmpeg_properties(RenderData *rd, AVCodecContext *c, const char
/* prepare a video stream for the output file */
static AVStream *alloc_video_stream(RenderData *rd, int codec_id, AVFormatContext *of,
- int rectx, int recty)
+ int rectx, int recty, char *error, int error_size)
{
AVStream *st;
AVCodecContext *c;
AVCodec *codec;
+
+ error[0] = '\0';
+
st = av_new_stream(of, 0);
if (!st) return NULL;
@@ -460,7 +468,6 @@ static AVStream *alloc_video_stream(RenderData *rd, int codec_id, AVFormatContex
c->codec_id = codec_id;
c->codec_type = AVMEDIA_TYPE_VIDEO;
-
/* Get some values from the current render settings */
c->width = rectx;
@@ -492,7 +499,8 @@ static AVStream *alloc_video_stream(RenderData *rd, int codec_id, AVFormatContex
c->me_method = ME_EPZS;
codec = avcodec_find_encoder(c->codec_id);
- if (!codec) return NULL;
+ if (!codec)
+ return NULL;
/* Be sure to use the correct pixel format(e.g. RGB, YUV) */
@@ -516,7 +524,7 @@ static AVStream *alloc_video_stream(RenderData *rd, int codec_id, AVFormatContex
c->qmax = 51;
}
- // Keep lossless encodes in the RGB domain.
+ /* Keep lossless encodes in the RGB domain. */
if (codec_id == CODEC_ID_HUFFYUV) {
/* HUFFYUV was PIX_FMT_YUV422P before */
c->pix_fmt = PIX_FMT_RGB32;
@@ -547,53 +555,46 @@ static AVStream *alloc_video_stream(RenderData *rd, int codec_id, AVFormatContex
// || !strcmp(of->oformat->name, "3gp")
)
{
- fprintf(stderr, "Using global header\n");
+ PRINT("Using global header\n");
c->flags |= CODEC_FLAG_GLOBAL_HEADER;
}
/* Determine whether we are encoding interlaced material or not */
if (rd->mode & R_FIELDS) {
- fprintf(stderr, "Encoding interlaced video\n");
+ PRINT("Encoding interlaced video\n");
c->flags |= CODEC_FLAG_INTERLACED_DCT;
c->flags |= CODEC_FLAG_INTERLACED_ME;
}
/* xasp & yasp got float lately... */
- st->sample_aspect_ratio = c->sample_aspect_ratio = av_d2q(
- ((double) rd->xasp / (double) rd->yasp), 255);
+ st->sample_aspect_ratio = c->sample_aspect_ratio = av_d2q(((double) rd->xasp / (double) rd->yasp), 255);
set_ffmpeg_properties(rd, c, "video");
if (avcodec_open(c, codec) < 0) {
- //
- //XXX error("Couldn't initialize codec");
+ BLI_strncpy(error, IMB_ffmpeg_last_error(), error_size);
return NULL;
}
if (codec_id == CODEC_ID_QTRLE) {
- // normally it should be enough to have buffer with actual image size,
- // but some codecs like QTRLE might store extra information in this buffer,
- // so it should be a way larger
+ /* normally it should be enough to have buffer with actual image size,
+ * but some codecs like QTRLE might store extra information in this buffer,
+ * so it should be a way larger */
- // maximum video buffer size is 6-bytes per pixel, plus DPX header size (1664)
- // (from FFmpeg sources)
+ /* maximum video buffer size is 6-bytes per pixel, plus DPX header size (1664)
+ * (from FFmpeg sources) */
int size = c->width * c->height;
video_buffersize = 7 * size + 10000;
}
else
video_buffersize = avpicture_get_size(c->pix_fmt, c->width, c->height);
- video_buffer = (uint8_t *)MEM_mallocN(video_buffersize * sizeof(uint8_t),
- "FFMPEG video buffer");
+ video_buffer = (uint8_t *)MEM_mallocN(video_buffersize * sizeof(uint8_t), "FFMPEG video buffer");
current_frame = alloc_picture(c->pix_fmt, c->width, c->height);
- img_convert_ctx = sws_getContext(c->width, c->height,
- PIX_FMT_BGR32,
- c->width, c->height,
- c->pix_fmt,
- SWS_BICUBIC,
+ img_convert_ctx = sws_getContext(c->width, c->height, PIX_FMT_BGR32, c->width, c->height, c->pix_fmt, SWS_BICUBIC,
NULL, NULL, NULL);
return st;
}
@@ -645,11 +646,9 @@ static AVStream *alloc_audio_stream(RenderData *rd, int codec_id, AVFormatContex
audio_outbuf_size = c->frame_size * c->channels * sizeof(int16_t) * 4;
}
- audio_output_buffer = (uint8_t *)av_malloc(
- audio_outbuf_size);
+ audio_output_buffer = (uint8_t *) av_malloc(audio_outbuf_size);
- audio_input_buffer = (uint8_t *)av_malloc(
- audio_input_samples * c->channels * sizeof(int16_t));
+ audio_input_buffer = (uint8_t *) av_malloc(audio_input_samples * c->channels * sizeof(int16_t));
audio_time = 0.0f;
@@ -672,7 +671,7 @@ static int start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty, Report
AVFormatContext *of;
AVOutputFormat *fmt;
AVDictionary *opts = NULL;
- char name[256];
+ char name[256], error[1024];
const char **exts;
ffmpeg_type = rd->ffcodecdata.type;
@@ -681,14 +680,11 @@ static int start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty, Report
ffmpeg_video_bitrate = rd->ffcodecdata.video_bitrate;
ffmpeg_audio_bitrate = rd->ffcodecdata.audio_bitrate;
ffmpeg_gop_size = rd->ffcodecdata.gop_size;
- ffmpeg_autosplit = rd->ffcodecdata.flags
- & FFMPEG_AUTOSPLIT_OUTPUT;
+ ffmpeg_autosplit = rd->ffcodecdata.flags & FFMPEG_AUTOSPLIT_OUTPUT;
- do_init_ffmpeg();
-
/* Determine the correct filename */
BKE_ffmpeg_filepath_get(name, rd);
- fprintf(stderr, "Starting output to %s(ffmpeg)...\n"
+ PRINT("Starting output to %s(ffmpeg)...\n"
" Using type=%d, codec=%d, audio_codec=%d,\n"
" video_bitrate=%d, audio_bitrate=%d,\n"
" gop_size=%d, autosplit=%d\n"
@@ -793,10 +789,14 @@ static int start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty, Report
}
if (fmt->video_codec != CODEC_ID_NONE) {
- video_stream = alloc_video_stream(rd, fmt->video_codec, of, rectx, recty);
- printf("alloc video stream %p\n", video_stream);
+ video_stream = alloc_video_stream(rd, fmt->video_codec, of, rectx, recty, error, sizeof(error));
+ PRINT("alloc video stream %p\n", video_stream);
if (!video_stream) {
- BKE_report(reports, RPT_ERROR, "Error initializing video stream.");
+ if (error[0])
+ BKE_report(reports, RPT_ERROR, error);
+ else
+ BKE_report(reports, RPT_ERROR, "Error initializing video stream.");
+
av_dict_free(&opts);
return 0;
}
@@ -839,7 +839,7 @@ static int start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty, Report
* inter-frames (H.264 B-frames, for example), it can output the frames
* in a different order from the one it was given.
* For example, when sending frames 1, 2, 3, 4 to the encoder, it may write
- * them in the order 1, 4, 2, 3 - first the two frames used for predition,
+ * them in the order 1, 4, 2, 3 - first the two frames used for prediction,
* and then the bidirectionally-predicted frames. What this means in practice
* is that the encoder may not immediately produce one output frame for each
* input frame. These delayed frames must be flushed before we close the
@@ -847,7 +847,7 @@ static int start_ffmpeg_impl(struct RenderData *rd, int rectx, int recty, Report
* parameter.
* </p>
*/
-void flush_ffmpeg(void)
+static void flush_ffmpeg(void)
{
int outsize = 0;
int ret = 0;
@@ -867,13 +867,11 @@ void flush_ffmpeg(void)
break;
}
if (c->coded_frame->pts != AV_NOPTS_VALUE) {
- packet.pts = av_rescale_q(c->coded_frame->pts,
- c->time_base,
- video_stream->time_base);
- fprintf(stderr, "Video Frame PTS: %d\n", (int)packet.pts);
+ packet.pts = av_rescale_q(c->coded_frame->pts, c->time_base, video_stream->time_base);
+ PRINT("Video Frame PTS: %d\n", (int) packet.pts);
}
else {
- fprintf(stderr, "Video Frame PTS: not set\n");
+ PRINT("Video Frame PTS: not set\n");
}
if (c->coded_frame->key_frame) {
packet.flags |= AV_PKT_FLAG_KEY;
@@ -916,9 +914,7 @@ void BKE_ffmpeg_filepath_get(char *string, RenderData *rd)
}
while (*fe) {
- if (BLI_strcasecmp(string + strlen(string) - strlen(*fe),
- *fe) == 0)
- {
+ if (BLI_strcasecmp(string + strlen(string) - strlen(*fe), *fe) == 0) {
break;
}
fe++;
@@ -962,6 +958,7 @@ int BKE_ffmpeg_start(struct Scene *scene, RenderData *rd, int rectx, int recty,
}
void BKE_ffmpeg_end(void);
+static void end_ffmpeg_impl(int is_autosplit);
#ifdef WITH_AUDASPACE
static void write_audio_frames(double to_pts)
@@ -983,9 +980,7 @@ int BKE_ffmpeg_append(RenderData *rd, int start_frame, int frame, int *pixels, i
AVFrame *avframe;
int success = 1;
- fprintf(stderr, "Writing frame %i, "
- "render width=%d, render height=%d\n", frame,
- rectx, recty);
+ PRINT("Writing frame %i, render width=%d, render height=%d\n", frame, rectx, recty);
// why is this done before writing the video frame and again at end_ffmpeg?
// write_audio_frames(frame / (((double)rd->frs_sec) / rd->frs_sec_base));
@@ -996,7 +991,7 @@ int BKE_ffmpeg_append(RenderData *rd, int start_frame, int frame, int *pixels, i
if (ffmpeg_autosplit) {
if (avio_tell(outfile->pb) > FFMPEG_AUTOSPLIT_SIZE) {
- BKE_ffmpeg_end();
+ end_ffmpeg_impl(TRUE);
ffmpeg_autosplit_count++;
success &= start_ffmpeg_impl(rd, rectx, recty, reports);
}
@@ -1009,11 +1004,11 @@ int BKE_ffmpeg_append(RenderData *rd, int start_frame, int frame, int *pixels, i
return success;
}
-void BKE_ffmpeg_end(void)
+static void end_ffmpeg_impl(int is_autosplit)
{
unsigned int i;
- fprintf(stderr, "Closing ffmpeg...\n");
+ PRINT("Closing ffmpeg...\n");
#if 0
if (audio_stream) { /* SEE UPPER */
@@ -1022,14 +1017,16 @@ void BKE_ffmpeg_end(void)
#endif
#ifdef WITH_AUDASPACE
- if (audio_mixdown_device) {
- AUD_closeReadDevice(audio_mixdown_device);
- audio_mixdown_device = 0;
+ if (is_autosplit == FALSE) {
+ if (audio_mixdown_device) {
+ AUD_closeReadDevice(audio_mixdown_device);
+ audio_mixdown_device = 0;
+ }
}
#endif
if (video_stream && video_stream->codec) {
- fprintf(stderr, "Flushing delayed frames...\n");
+ PRINT("Flushing delayed frames...\n");
flush_ffmpeg();
}
@@ -1041,7 +1038,7 @@ void BKE_ffmpeg_end(void)
if (video_stream && video_stream->codec) {
avcodec_close(video_stream->codec);
- printf("zero video stream %p\n", video_stream);
+ PRINT("zero video stream %p\n", video_stream);
video_stream = 0;
}
@@ -1087,6 +1084,11 @@ void BKE_ffmpeg_end(void)
}
}
+void BKE_ffmpeg_end(void)
+{
+ end_ffmpeg_impl(FALSE);
+}
+
/* properties */
void BKE_ffmpeg_property_del(RenderData *rd, void *type, void *prop_)
@@ -1142,8 +1144,7 @@ IDProperty *BKE_ffmpeg_property_add(RenderData *rd, const char *type, int opt_in
BLI_strncpy(name, o->name, sizeof(name));
}
- fprintf(stderr, "ffmpeg_property_add: %s %d %d %s\n",
- type, parent_index, opt_index, name);
+ PRINT("ffmpeg_property_add: %s %d %d %s\n", type, parent_index, opt_index, name);
prop = IDP_GetPropertyFromGroup(group, name);
if (prop) {
@@ -1181,8 +1182,7 @@ IDProperty *BKE_ffmpeg_property_add(RenderData *rd, const char *type, int opt_in
/* not all versions of ffmpeg include that, so here we go ... */
-static const AVOption *my_av_find_opt(void *v, const char *name,
- const char *unit, int mask, int flags)
+static const AVOption *my_av_find_opt(void *v, const char *name, const char *unit, int mask, int flags)
{
AVClass *c = *(AVClass **)v;
const AVOption *o = c->option;
@@ -1235,14 +1235,11 @@ int BKE_ffmpeg_property_add_string(RenderData *rd, const char *type, const char
if (param && o->type != FF_OPT_TYPE_CONST && o->unit) {
p = my_av_find_opt(&c, param, o->unit, 0, 0);
if (p) {
- prop = BKE_ffmpeg_property_add(rd,
- (char *) type, p - c.av_class->option,
- o - c.av_class->option);
+ prop = BKE_ffmpeg_property_add(rd, (char *) type, p - c.av_class->option, o - c.av_class->option);
}
}
else {
- prop = BKE_ffmpeg_property_add(rd,
- (char *) type, o - c.av_class->option, 0);
+ prop = BKE_ffmpeg_property_add(rd, (char *) type, o - c.av_class->option, 0);
}
@@ -1316,12 +1313,10 @@ static void ffmpeg_set_expert_options(RenderData *rd)
if (rd->ffcodecdata.flags & FFMPEG_LOSSLESS_OUTPUT)
BKE_ffmpeg_property_add_string(rd, "video", "cqp:0");
}
-#if 0 /* disabled for after release */
else if (codec_id == CODEC_ID_DNXHD) {
if (rd->ffcodecdata.flags & FFMPEG_LOSSLESS_OUTPUT)
- ffmpeg_property_add_string(rd, "video", "mbd:rd");
+ BKE_ffmpeg_property_add_string(rd, "video", "mbd:rd");
}
-#endif
}
void BKE_ffmpeg_preset_set(RenderData *rd, int preset)
diff --git a/source/blender/blenkernel/intern/writeframeserver.c b/source/blender/blenkernel/intern/writeframeserver.c
index b5965838a30..d8fddb9851a 100644
--- a/source/blender/blenkernel/intern/writeframeserver.c
+++ b/source/blender/blenkernel/intern/writeframeserver.c
@@ -128,7 +128,7 @@ int BKE_frameserver_start(struct Scene *scene, RenderData *UNUSED(rd), int rectx
return 0;
}
- setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char*) &arg, sizeof(arg));
+ setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *) &arg, sizeof(arg));
addr.sin_family = AF_INET;
addr.sin_port = htons(U.frameserverport);
@@ -177,7 +177,7 @@ static char good_bye[] =
"<body><pre>\n"
"Render stopped. Goodbye</pre></body></html>";
-static int safe_write(char * s, int tosend)
+static int safe_write(char *s, int tosend)
{
int total = tosend;
do {
@@ -192,15 +192,15 @@ static int safe_write(char * s, int tosend)
return total;
}
-static int safe_puts(char * s)
+static int safe_puts(char *s)
{
return safe_write(s, strlen(s));
}
-static int handle_request(RenderData *rd, char * req)
+static int handle_request(RenderData *rd, char *req)
{
- char * p;
- char * path;
+ char *p;
+ char *path;
int pathlen;
if (memcmp(req, "GET ", 4) != 0) {
@@ -230,29 +230,29 @@ static int handle_request(RenderData *rd, char * req)
char buf[4096];
sprintf(buf,
- "HTTP/1.1 200 OK\r\n"
- "Content-Type: text/html\r\n"
- "\r\n"
- "start %d\n"
- "end %d\n"
- "width %d\n"
- "height %d\n"
- "rate %d\n"
- "ratescale %d\n",
- rd->sfra,
- rd->efra,
- render_width,
- render_height,
- rd->frs_sec,
- 1
- );
+ "HTTP/1.1 200 OK\r\n"
+ "Content-Type: text/html\r\n"
+ "\r\n"
+ "start %d\n"
+ "end %d\n"
+ "width %d\n"
+ "height %d\n"
+ "rate %d\n"
+ "ratescale %d\n",
+ rd->sfra,
+ rd->efra,
+ render_width,
+ render_height,
+ rd->frs_sec,
+ 1
+ );
safe_puts(buf);
return -1;
}
if (strcmp(path, "/close.txt") == 0) {
safe_puts(good_bye);
- G.afbreek = 1; /* Abort render */
+ G.is_break = TRUE; /* Abort render */
return -1;
}
return -1;
@@ -262,7 +262,7 @@ int BKE_frameserver_loop(RenderData *rd, ReportList *UNUSED(reports))
{
fd_set readfds;
struct timeval tv;
- struct sockaddr_in addr;
+ struct sockaddr_in addr;
int len, rval;
#ifdef FREE_WINDOWS
int socklen;
@@ -305,7 +305,7 @@ int BKE_frameserver_loop(RenderData *rd, ReportList *UNUSED(reports))
tv.tv_sec = 10;
tv.tv_usec = 0;
- rval = select(connsock + 1, &readfds, NULL, NULL, &tv);
+ rval = select(connsock + 1, &readfds, NULL, NULL, &tv);
if (rval > 0) {
break;
}
@@ -332,30 +332,30 @@ int BKE_frameserver_loop(RenderData *rd, ReportList *UNUSED(reports))
static void serve_ppm(int *pixels, int rectx, int recty)
{
- unsigned char* rendered_frame;
- unsigned char* row = (unsigned char*) malloc(render_width * 3);
+ unsigned char *rendered_frame;
+ unsigned char *row = (unsigned char *) malloc(render_width * 3);
int y;
char header[1024];
sprintf(header,
- "HTTP/1.1 200 OK\r\n"
- "Content-Type: image/ppm\r\n"
- "Connection: close\r\n"
- "\r\n"
- "P6\n"
- "# Creator: blender frameserver v0.0.1\n"
- "%d %d\n"
- "255\n",
- rectx, recty);
+ "HTTP/1.1 200 OK\r\n"
+ "Content-Type: image/ppm\r\n"
+ "Connection: close\r\n"
+ "\r\n"
+ "P6\n"
+ "# Creator: blender frameserver v0.0.1\n"
+ "%d %d\n"
+ "255\n",
+ rectx, recty);
safe_puts(header);
rendered_frame = (unsigned char *)pixels;
for (y = recty - 1; y >= 0; y--) {
- unsigned char* target = row;
- unsigned char* src = rendered_frame + rectx * 4 * y;
- unsigned char* end = src + rectx * 4;
+ unsigned char *target = row;
+ unsigned char *src = rendered_frame + rectx * 4 * y;
+ unsigned char *end = src + rectx * 4;
while (src != end) {
target[2] = src[2];
target[1] = src[1];
@@ -364,7 +364,7 @@ static void serve_ppm(int *pixels, int rectx, int recty)
target += 3;
src += 4;
}
- safe_write((char*)row, 3 * rectx);
+ safe_write((char *)row, 3 * rectx);
}
free(row);
closesocket(connsock);
@@ -372,7 +372,7 @@ static void serve_ppm(int *pixels, int rectx, int recty)
}
int BKE_frameserver_append(RenderData *UNUSED(rd), int UNUSED(start_frame), int frame, int *pixels,
- int rectx, int recty, ReportList *UNUSED(reports))
+ int rectx, int recty, ReportList *UNUSED(reports))
{
fprintf(stderr, "Serving frame: %d\n", frame);
if (write_ppm) {
@@ -383,7 +383,7 @@ int BKE_frameserver_append(RenderData *UNUSED(rd), int UNUSED(start_frame), int
connsock = -1;
}
- return 0;
+ return 1;
}
void BKE_frameserver_end(void)
diff --git a/source/blender/blenlib/BLI_args.h b/source/blender/blenlib/BLI_args.h
index 7a240e0e08a..6758fa399a4 100644
--- a/source/blender/blenlib/BLI_args.h
+++ b/source/blender/blenlib/BLI_args.h
@@ -36,18 +36,31 @@
struct bArgs;
typedef struct bArgs bArgs;
-/* returns the number of extra arguments consumed by the function. 0 is normal value, -1 stops parsing arguments, other negative indicates skip */
+/**
+ * Returns the number of extra arguments consumed by the function.
+ * - 0 is normal value,
+ * - -1 stops parsing arguments, other negative indicates skip
+ */
typedef int (*BA_ArgCallback)(int argc, const char **argv, void *data);
struct bArgs *BLI_argsInit(int argc, const char **argv);
void BLI_argsFree(struct bArgs *ba);
-/* pass starts at 1, -1 means valid all the time
+/**
+ * Pass starts at 1, -1 means valid all the time
* short_arg or long_arg can be null to specify no short or long versions
- * */
-void BLI_argsAdd(struct bArgs *ba, int pass, const char *short_arg, const char *long_arg, const char *doc, BA_ArgCallback cb, void *data);
-/* short_case and long_case specify if those arguments are case specific */
-void BLI_argsAddCase(struct bArgs *ba, int pass, const char *short_arg, int short_case, const char *long_arg, int long_case, const char *doc, BA_ArgCallback cb, void *data);
+ */
+void BLI_argsAdd(struct bArgs *ba, int pass,
+ const char *short_arg, const char *long_arg,
+ const char *doc, BA_ArgCallback cb, void *data);
+
+/**
+ * Short_case and long_case specify if those arguments are case specific
+ */
+void BLI_argsAddCase(struct bArgs *ba, int pass,
+ const char *short_arg, int short_case,
+ const char *long_arg, int long_case,
+ const char *doc, BA_ArgCallback cb, void *data);
void BLI_argsParse(struct bArgs *ba, int pass, BA_ArgCallback default_cb, void *data);
diff --git a/source/blender/blenlib/BLI_array.h b/source/blender/blenlib/BLI_array.h
index 18258014529..84cfe89f1b8 100644
--- a/source/blender/blenlib/BLI_array.h
+++ b/source/blender/blenlib/BLI_array.h
@@ -46,7 +46,7 @@
* BLI_array_declare(arr);
* int i;
*
- * for (i=0; i<10; i++) {
+ * for (i = 0; i < 10; i++) {
* BLI_array_grow_one(arr);
* arr[i] = something;
* }
@@ -151,7 +151,7 @@
if (arr && (char *)arr != _##arr##_static) { \
BLI_array_fake_user(arr); \
MEM_freeN(arr); \
- }
+ } (void)0
#define BLI_array_pop(arr) ( \
(arr && _##arr##_count) ? \
@@ -162,12 +162,12 @@
/* resets the logical size of an array to zero, but doesn't
* free the memory. */
#define BLI_array_empty(arr) \
- _##arr##_count = 0
+ _##arr##_count = 0; (void)0
/* set the count of the array, doesn't actually increase the allocated array
* size. don't use this unless you know what you're doing. */
#define BLI_array_length_set(arr, count) \
- _##arr##_count = (count)
+ _##arr##_count = (count); (void)0
/* only to prevent unused warnings */
#define BLI_array_fake_user(arr) \
@@ -187,5 +187,7 @@
MEM_mallocN(sizeof(*(arr)) * (realsize), allocstr) \
) \
-#define BLI_array_fixedstack_free(arr) \
- if (_##arr##_is_static) MEM_freeN(arr)
+#define BLI_array_fixedstack_free(arr) \
+ if (_##arr##_is_static) { \
+ MEM_freeN(arr); \
+ } (void)0
diff --git a/source/blender/blenlib/BLI_dynstr.h b/source/blender/blenlib/BLI_dynstr.h
index 3b7f2d6bbaf..833c416c1c1 100644
--- a/source/blender/blenlib/BLI_dynstr.h
+++ b/source/blender/blenlib/BLI_dynstr.h
@@ -80,7 +80,11 @@ void BLI_dynstr_appendf(DynStr *ds, const char *format, ...)
__attribute__ ((format(printf, 2, 3)))
#endif
;
-void BLI_dynstr_vappendf(DynStr *ds, const char *format, va_list args);
+void BLI_dynstr_vappendf(DynStr *ds, const char *format, va_list args)
+#ifdef __GNUC__
+__attribute__ ((format(printf, 2, 0)))
+#endif
+;
/**
* Find the length of a DynStr.
@@ -107,7 +111,6 @@ char *BLI_dynstr_get_cstring(DynStr *ds);
*
* \param ds The DynStr of interest.
* \param str The string to fill.
- * \return The contents of \a ds as a c-string.
*/
void BLI_dynstr_get_cstring_ex(DynStr *ds, char *str);
diff --git a/source/blender/blenlib/BLI_endian_switch.h b/source/blender/blenlib/BLI_endian_switch.h
new file mode 100644
index 00000000000..7cb2790525d
--- /dev/null
+++ b/source/blender/blenlib/BLI_endian_switch.h
@@ -0,0 +1,62 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef __BLI_ENDIAN_SWITCH_H__
+#define __BLI_ENDIAN_SWITCH_H__
+
+/** \file BLI_endian_switch.h
+ * \ingroup bli
+ */
+
+#ifdef __GNUC__
+# define ATTR_ENDIAN_SWITCH \
+ __attribute__((nonnull(1))) \
+ __attribute__((pure))
+#else
+# define ATTR_ENDIAN_SWITCH
+#endif
+
+/* BLI_endian_switch_inline.h */
+BLI_INLINE void BLI_endian_switch_int16(short *val) ATTR_ENDIAN_SWITCH;
+BLI_INLINE void BLI_endian_switch_uint16(unsigned short *val) ATTR_ENDIAN_SWITCH;
+BLI_INLINE void BLI_endian_switch_int32(int *val) ATTR_ENDIAN_SWITCH;
+BLI_INLINE void BLI_endian_switch_uint32(unsigned int *val) ATTR_ENDIAN_SWITCH;
+BLI_INLINE void BLI_endian_switch_float(float *val) ATTR_ENDIAN_SWITCH;
+BLI_INLINE void BLI_endian_switch_int64(int64_t *val) ATTR_ENDIAN_SWITCH;
+BLI_INLINE void BLI_endian_switch_uint64(uint64_t *val) ATTR_ENDIAN_SWITCH;
+BLI_INLINE void BLI_endian_switch_double(double *val) ATTR_ENDIAN_SWITCH;
+
+/* endian_switch.c */
+void BLI_endian_switch_int16_array(short *val, const int size) ATTR_ENDIAN_SWITCH;
+void BLI_endian_switch_uint16_array(unsigned short *val, const int size) ATTR_ENDIAN_SWITCH;
+void BLI_endian_switch_int32_array(int *val, const int size) ATTR_ENDIAN_SWITCH;
+void BLI_endian_switch_uint32_array(unsigned int *val, const int size) ATTR_ENDIAN_SWITCH;
+void BLI_endian_switch_float_array(float *val, const int size) ATTR_ENDIAN_SWITCH;
+void BLI_endian_switch_int64_array(int64_t *val, const int size) ATTR_ENDIAN_SWITCH;
+void BLI_endian_switch_uint64_array(uint64_t *val, const int size) ATTR_ENDIAN_SWITCH;
+void BLI_endian_switch_double_array(double *val, const int size) ATTR_ENDIAN_SWITCH;
+
+#include "BLI_endian_switch_inline.h"
+
+#undef ATTR_ENDIAN_SWITCH
+
+#endif /* __BLI_ENDIAN_SWITCH_H__ */
diff --git a/source/blender/blenlib/BLI_endian_switch_inline.h b/source/blender/blenlib/BLI_endian_switch_inline.h
new file mode 100644
index 00000000000..6aa0405861e
--- /dev/null
+++ b/source/blender/blenlib/BLI_endian_switch_inline.h
@@ -0,0 +1,94 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/* only include from header */
+#ifndef __BLI_ENDIAN_SWITCH_H__
+# error "this file isnt to be directly included"
+#endif
+
+#ifndef __BLI_ENDIAN_SWITCH_INLINE_H__
+#define __BLI_ENDIAN_SWITCH_INLINE_H__
+
+/** \file blender/blenlib/BLI_endian_switch_inline.h
+ * \ingroup bli
+ */
+
+/* note: using a temp char to switch endian is a lot slower,
+ * use bit shifting instead. */
+
+/* *** 16 *** */
+BLI_INLINE void BLI_endian_switch_int16(short *val)
+{
+ short tval = *val;
+ *val = (tval >> 8) |
+ (tval << 8);
+
+}
+BLI_INLINE void BLI_endian_switch_uint16(unsigned short *val)
+{
+ BLI_endian_switch_int16((short *)val);
+}
+
+
+/* *** 32 *** */
+BLI_INLINE void BLI_endian_switch_int32(int *val)
+{
+ int tval = *val;
+ *val = ((tval >> 24)) |
+ ((tval << 8) & 0x00ff0000) |
+ ((tval >> 8) & 0x0000ff00) |
+ ((tval << 24));
+
+}
+BLI_INLINE void BLI_endian_switch_uint32(unsigned int *val)
+{
+ BLI_endian_switch_int32((int *)val);
+}
+BLI_INLINE void BLI_endian_switch_float(float *val)
+{
+ BLI_endian_switch_int32((int *)val);
+}
+
+
+/* *** 64 *** */
+BLI_INLINE void BLI_endian_switch_int64(int64_t *val)
+{
+ int64_t tval = *val;
+ *val = ((tval >> 56)) |
+ ((tval << 40) & 0x00ff000000000000l) |
+ ((tval << 24) & 0x0000ff0000000000l) |
+ ((tval << 8) & 0x000000ff00000000l) |
+ ((tval >> 8) & 0x00000000ff000000l) |
+ ((tval >> 24) & 0x0000000000ff0000l) |
+ ((tval >> 40) & 0x000000000000ff00l) |
+ ((tval << 56));
+}
+BLI_INLINE void BLI_endian_switch_uint64(uint64_t *val)
+{
+ BLI_endian_switch_int64((int64_t *)val);
+}
+BLI_INLINE void BLI_endian_switch_double(double *val)
+{
+ BLI_endian_switch_int64((int64_t *)val);
+}
+
+#endif /* __BLI_ENDIAN_SWITCH_INLINE_H__ */
diff --git a/source/blender/blenlib/BLI_fileops.h b/source/blender/blenlib/BLI_fileops.h
index ac0ec6a52a7..c278370d211 100644
--- a/source/blender/blenlib/BLI_fileops.h
+++ b/source/blender/blenlib/BLI_fileops.h
@@ -91,6 +91,15 @@ int BLI_file_older(const char *file1, const char *file2);
struct LinkNode *BLI_file_read_as_lines(const char *file);
void BLI_file_free_lines(struct LinkNode *lines);
+/* this weirdo pops up in two places ... */
+#if !defined(WIN32)
+# ifndef O_BINARY
+# define O_BINARY 0
+# endif
+#else
+void BLI_get_short_name(char short_name[256], const char *filename);
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/blenlib/BLI_fileops_types.h b/source/blender/blenlib/BLI_fileops_types.h
index a19909a8f26..1c6463eb6ea 100644
--- a/source/blender/blenlib/BLI_fileops_types.h
+++ b/source/blender/blenlib/BLI_fileops_types.h
@@ -46,7 +46,7 @@ struct direntry {
mode_t type;
char *relname;
char *path;
-#if (defined(WIN32) || defined(WIN64)) && (_MSC_VER >= 1500)
+#if (defined(WIN32) || defined(WIN64)) && !defined(__MINGW32__) && (_MSC_VER >= 1500)
struct _stat64 s;
#elif defined(__MINGW32__)
struct _stati64 s;
diff --git a/source/blender/blenlib/BLI_kdopbvh.h b/source/blender/blenlib/BLI_kdopbvh.h
index 5ec8247c03a..985b5af3b94 100644
--- a/source/blender/blenlib/BLI_kdopbvh.h
+++ b/source/blender/blenlib/BLI_kdopbvh.h
@@ -50,7 +50,7 @@ typedef struct BVHTreeOverlap {
} BVHTreeOverlap;
/* flags */
-#define BVH_ONQUAD (1<<0)
+#define BVH_ONQUAD (1 << 0)
typedef struct BVHTreeNearest {
int index; /* the index of the nearest found (untouched if none is found within a dist radius from the given coordinates) */
@@ -104,7 +104,7 @@ int BLI_bvhtree_find_nearest(BVHTree *tree, const float co[3], BVHTreeNearest *n
int BLI_bvhtree_ray_cast(BVHTree *tree, const float co[3], const float *dir, float radius, BVHTreeRayHit *hit, BVHTree_RayCastCallback callback, void *userdata);
-float BLI_bvhtree_bb_raycast(float *bv, const float light_start[3], const float light_end[3], float pos[3]);
+float BLI_bvhtree_bb_raycast(const float *bv, const float light_start[3], const float light_end[3], float pos[3]);
/* range query */
int BLI_bvhtree_range_query(BVHTree *tree, const float co[3], float radius, BVHTree_RangeQuery callback, void *userdata);
diff --git a/source/blender/blenlib/BLI_lasso.h b/source/blender/blenlib/BLI_lasso.h
index 85a000b000c..a7e90a51e86 100644
--- a/source/blender/blenlib/BLI_lasso.h
+++ b/source/blender/blenlib/BLI_lasso.h
@@ -34,8 +34,8 @@
struct rcti;
-void BLI_lasso_boundbox(struct rcti *rect, int mcords[][2], short moves);
-int BLI_lasso_is_point_inside(int mcords[][2], short moves, const int sx, const int sy, const int error_value);
-int BLI_lasso_is_edge_inside(int mcords[][2], short moves, int x0, int y0, int x1, int y1, const int error_value);
+void BLI_lasso_boundbox(struct rcti *rect, const int mcords[][2], const short moves);
+int BLI_lasso_is_point_inside(const int mcords[][2], const short moves, const int sx, const int sy, const int error_value);
+int BLI_lasso_is_edge_inside(const int mcords[][2], const short moves, int x0, int y0, int x1, int y1, const int error_value);
#endif
diff --git a/source/blender/blenlib/BLI_listbase.h b/source/blender/blenlib/BLI_listbase.h
index abe7eacb1ac..1330a74bea3 100644
--- a/source/blender/blenlib/BLI_listbase.h
+++ b/source/blender/blenlib/BLI_listbase.h
@@ -48,11 +48,13 @@ int BLI_findstringindex(const struct ListBase *listbase, const char *id, const i
void *BLI_findlink(const struct ListBase *listbase, int number);
void *BLI_findstring(const struct ListBase *listbase, const char *id, const int offset);
void *BLI_findstring_ptr(const struct ListBase *listbase, const char *id, const int offset);
+void *BLI_findptr(const struct ListBase *listbase, const void *ptr, const int offset);
/* find backwards */
void *BLI_rfindlink(const struct ListBase *listbase, int number);
void *BLI_rfindstring(const struct ListBase *listbase, const char *id, const int offset);
void *BLI_rfindstring_ptr(const struct ListBase *listbase, const char *id, const int offset);
+void *BLI_rfindptr(const struct ListBase *listbase, const void *ptr, const int offset);
void BLI_freelistN(struct ListBase *listbase);
void BLI_addtail(struct ListBase *listbase, void *vlink);
diff --git a/source/blender/blenlib/BLI_math_base.h b/source/blender/blenlib/BLI_math_base.h
index b0e0d3cbf19..6ee1498c855 100644
--- a/source/blender/blenlib/BLI_math_base.h
+++ b/source/blender/blenlib/BLI_math_base.h
@@ -30,8 +30,8 @@
* \ingroup bli
*/
-#ifdef WIN32
-#define _USE_MATH_DEFINES
+#ifdef _MSC_VER
+# define _USE_MATH_DEFINES
#endif
#include <math.h>
@@ -137,12 +137,37 @@
# endif
#endif
+/* Causes warning:
+ * incompatible types when assigning to type 'Foo' from type 'Bar'
+ * ... the compiler optimizes away the temp var */
+#ifndef CHECK_TYPE
+#ifdef __GNUC__
+#define CHECK_TYPE(var, type) { \
+ __typeof(var) *__tmp; \
+ __tmp = (type *)NULL; \
+ (void)__tmp; \
+} (void)0
+#else
+#define CHECK_TYPE(var, type)
+#endif
+#endif
+
#ifndef SWAP
-# define SWAP(type, a, b) { type sw_ap; sw_ap = (a); (a) = (b); (b) = sw_ap; } (void)0
+# define SWAP(type, a, b) { \
+ type sw_ap; \
+ CHECK_TYPE(a, type); \
+ CHECK_TYPE(b, type); \
+ sw_ap = (a); \
+ (a) = (b); \
+ (b) = sw_ap; \
+} (void)0
#endif
#ifndef CLAMP
-# define CLAMP(a, b, c) if ((a) < (b)) (a) = (b); else if ((a) > (c)) (a) = (c)
+# define CLAMP(a, b, c) { \
+ if ((a) < (b)) (a) = (b); \
+ else if ((a) > (c)) (a) = (c); \
+} (void)0
#endif
#ifdef __BLI_MATH_INLINE_H__
diff --git a/source/blender/blenlib/BLI_math_color.h b/source/blender/blenlib/BLI_math_color.h
index 7520f09fe95..7c8bf88943d 100644
--- a/source/blender/blenlib/BLI_math_color.h
+++ b/source/blender/blenlib/BLI_math_color.h
@@ -67,6 +67,8 @@ void rgb_to_yuv(float r, float g, float b, float *ly, float *lu, float *lv);
void rgb_to_ycc(float r, float g, float b, float *ly, float *lcb, float *lcr, int colorspace);
void rgb_to_hsv(float r, float g, float b, float *lh, float *ls, float *lv);
void rgb_to_hsv_v(const float rgb[3], float r_hsv[3]);
+void rgb_to_hsl(float r, float g, float b, float *lh, float *ls, float *ll);
+void rgb_to_hsl_v(const float rgb[3], float r_hsl[3]);
void rgb_to_hsv_compat(float r, float g, float b, float *lh, float *ls, float *lv);
void rgb_to_hsv_compat_v(const float rgb[3], float r_hsv[3]);
void rgb_to_lab(float r, float g, float b, float *ll, float *la, float *lb);
@@ -113,6 +115,8 @@ void rgba_float_to_uchar(unsigned char col_r[4], const float col_f[4]);
void xyz_to_lab(float x, float y, float z, float *l, float *a, float *b);
+MINLINE int compare_rgb_uchar(const unsigned char a[3], const unsigned char b[3], const int limit);
+
/***************** lift/gamma/gain / ASC-CDL conversion *****************/
void lift_gamma_gain_to_asc_cdl(float *lift, float *gamma, float *gain, float *offset, float *slope, float *power);
diff --git a/source/blender/blenlib/BLI_math_geom.h b/source/blender/blenlib/BLI_math_geom.h
index 93599dee63d..107b688b36a 100644
--- a/source/blender/blenlib/BLI_math_geom.h
+++ b/source/blender/blenlib/BLI_math_geom.h
@@ -55,11 +55,13 @@ float area_quad_v3(const float a[3], const float b[3], const float c[3], const f
float area_poly_v3(int nr, float verts[][3], const float normal[3]);
int is_quad_convex_v3(const float v1[3], const float v2[3], const float v3[3], const float v4[3]);
+int is_quad_convex_v2(const float v1[2], const float v2[2], const float v3[2], const float v4[2]);
/********************************* Distance **********************************/
float dist_to_line_v2(const float p[2], const float l1[2], const float l2[2]);
-float dist_to_line_segment_v2(const float p[2], const float l1[2], const float l2[2]);
+float dist_squared_to_line_segment_v2(const float p[2], const float l1[2], const float l2[2]);
+float dist_to_line_segment_v2(const float p[2], const float l1[2], const float l2[2]);
void closest_to_line_segment_v2(float closest[2], const float p[2], const float l1[2], const float l2[2]);
float dist_to_plane_normalized_v3(const float p[3], const float plane_co[3], const float plane_no_unit[3]);
@@ -85,11 +87,13 @@ void limit_dist_v3(float v1[3], float v2[3], const float dist);
#define ISECT_LINE_LINE_EXACT 1
#define ISECT_LINE_LINE_CROSS 2
+int isect_line_line_v2_point(const float v1[2], const float v2[2], const float v3[2], const float v4[2], float vi[2]);
int isect_line_line_v2(const float a1[2], const float a2[2], const float b1[2], const float b2[2]);
int isect_line_line_v2_int(const int a1[2], const int a2[2], const int b1[2], const int b2[2]);
int isect_line_sphere_v3(const float l1[3], const float l2[3], const float sp[3], const float r, float r_p1[3], float r_p2[3]);
int isect_line_sphere_v2(const float l1[2], const float l2[2], const float sp[2], const float r, float r_p1[2], float r_p2[2]);
int isect_seg_seg_v2_point(const float v1[2], const float v2[2], const float v3[2], const float v4[2], float vi[2]);
+int isect_seg_seg_v2(const float v1[2], const float v2[2], const float v3[2], const float v4[2]);
/* Returns the number of point of interests
* 0 - lines are colinear
@@ -151,6 +155,7 @@ int isect_ray_tri_epsilon_v3(const float p1[3], const float d[3],
int isect_point_quad_v2(const float p[2], const float a[2], const float b[2], const float c[2], const float d[2]);
int isect_point_tri_v2(const float v1[2], const float v2[2], const float v3[2], const float pt[2]);
+int isect_point_tri_v2_cw(const float pt[2], const float v1[2], const float v2[2], const float v3[2]);
int isect_point_tri_v2_int(const int x1, const int y1, const int x2, const int y2, const int a, const int b);
int isect_point_tri_prism_v3(const float p[3], const float v1[3], const float v2[3], const float v3[3]);
@@ -159,6 +164,18 @@ void isect_point_quad_uv_v2(const float v0[2], const float v1[2], const float v2
void isect_point_face_uv_v2(const int isquad, const float v0[2], const float v1[2], const float v2[2],
const float v3[2], const float pt[2], float r_uv[2]);
+/* axis-aligned bounding box */
+int isect_aabb_aabb_v3(const float min1[3], const float max1[3], const float min2[3], const float max2[3]);
+
+typedef struct {
+ float ray_start[3];
+ float ray_inv_dir[3];
+ int sign[3];
+} IsectRayAABBData;
+
+void isect_ray_aabb_initialize(IsectRayAABBData *data, const float ray_start[3], const float ray_direction[3]);
+int isect_ray_aabb(const IsectRayAABBData *data, const float bb_min[3], const float bb_max[3], float *tmin);
+
/* other */
int isect_sweeping_sphere_tri_v3(const float p1[3], const float p2[3], const float radius,
const float v0[3], const float v1[3], const float v2[3], float *r_lambda, float ipoint[3]);
@@ -166,8 +183,6 @@ int isect_sweeping_sphere_tri_v3(const float p1[3], const float p2[3], const flo
int isect_axial_line_tri_v3(const int axis, const float co1[3], const float co2[3],
const float v0[3], const float v1[3], const float v2[3], float *r_lambda);
-int isect_aabb_aabb_v3(const float min1[3], const float max1[3], const float min2[3], const float max2[3]);
-
int clip_line_plane(float p1[3], float p2[3], const float plane[4]);
void plot_line_v2v2i(const int p1[2], const int p2[2], int (*callback)(int, int, void *), void *userData);
@@ -177,7 +192,8 @@ void plot_line_v2v2i(const int p1[2], const int p2[2], int (*callback)(int, int,
/* tri or quad, d can be NULL */
void interp_weights_face_v3(float w[4],
const float a[3], const float b[3], const float c[3], const float d[3], const float p[3]);
-void interp_weights_poly_v3(float w[], float v[][3], const int n, const float p[3]);
+void interp_weights_poly_v3(float w[], float v[][3], const int n, const float co[3]);
+void interp_weights_poly_v2(float w[], float v[][2], const int n, const float co[2]);
void interp_cubic_v3(float x[3], float v[3],
const float x1[3], const float v1[3], const float x2[3], const float v2[3], const float t);
@@ -190,6 +206,8 @@ void barycentric_transform(float pt_tar[3], float const pt_src[3],
void barycentric_weights_v2(const float v1[2], const float v2[2], const float v3[2],
const float co[2], float w[3]);
+void barycentric_weights_v2_quad(const float v1[2], const float v2[2], const float v3[2], const float v4[2],
+ const float co[2], float w[4]);
int barycentric_coords_v2(const float v1[2], const float v2[2], const float v3[2], const float co[2], float w[3]);
int barycentric_inside_triangle_v2(const float w[3]);
diff --git a/source/blender/blenlib/BLI_math_rotation.h b/source/blender/blenlib/BLI_math_rotation.h
index 912534e0aca..652925fbe49 100644
--- a/source/blender/blenlib/BLI_math_rotation.h
+++ b/source/blender/blenlib/BLI_math_rotation.h
@@ -60,6 +60,7 @@ void sub_qt_qtqt(float q[4], const float a[4], const float b[4]);
void invert_qt(float q[4]);
void invert_qt_qt(float q1[4], const float q2[4]);
void conjugate_qt(float q[4]);
+void conjugate_qt_qt(float q1[4], const float q2[4]);
float dot_qtqt(const float a[4], const float b[4]);
float normalize_qt(float q[4]);
float normalize_qt_qt(float q1[4], const float q2[4]);
@@ -77,6 +78,8 @@ void quat_to_mat4(float mat[4][4], const float q[4]);
void mat3_to_quat(float q[4], float mat[3][3]);
void mat4_to_quat(float q[4], float mat[4][4]);
+void tri_to_quat_ex(float quat[4], const float v1[3], const float v2[3], const float v3[3],
+ const float no_orig[3]);
void tri_to_quat(float q[4], const float a[3], const float b[3], const float c[3]);
void vec_to_quat(float q[4], const float vec[3], short axis, const short upflag);
/* note: v1 and v2 must be normalized */
@@ -92,7 +95,7 @@ void print_qt(const char *str, const float q[4]);
/******************************** Axis Angle *********************************/
/* conversion */
-void axis_angle_to_quat(float r[4], const float axis[3], float angle);
+void axis_angle_to_quat(float r[4], const float axis[3], const float angle);
void axis_angle_to_mat3(float R[3][3], const float axis[3], const float angle);
void axis_angle_to_mat4(float R[4][4], const float axis[3], const float angle);
@@ -104,12 +107,10 @@ void single_axis_angle_to_mat3(float R[3][3], const char axis, const float angle
/****************************** Vector/Rotation ******************************/
/* old axis angle code */
-/* TODO: the following calls should probably be depreceated sometime */
+/* TODO: the following calls should probably be deprecated sometime */
/* conversion */
-void vec_rot_to_quat(float quat[4], const float vec[3], const float phi);
void vec_rot_to_mat3(float mat[3][3], const float vec[3], const float phi);
-void vec_rot_to_mat4(float mat[4][4], const float vec[3], const float phi);
/******************************** XYZ Eulers *********************************/
@@ -153,10 +154,10 @@ void mat3_to_eulO(float eul[3], const short order, float mat[3][3]);
void mat4_to_eulO(float eul[3], const short order, float mat[4][4]);
void axis_angle_to_eulO(float eul[3], const short order, const float axis[3], const float angle);
-void mat3_to_compatible_eulO(float eul[3], float old[3], short order, float mat[3][3]);
-void mat4_to_compatible_eulO(float eul[3], float old[3], short order, float mat[4][4]);
+void mat3_to_compatible_eulO(float eul[3], float old[3], const short order, float mat[3][3]);
+void mat4_to_compatible_eulO(float eul[3], float old[3], const short order, float mat[4][4]);
-void rotate_eulO(float eul[3], short order, char axis, float angle);
+void rotate_eulO(float eul[3], const short order, char axis, float angle);
/******************************* Dual Quaternions ****************************/
diff --git a/source/blender/blenlib/BLI_math_vector.h b/source/blender/blenlib/BLI_math_vector.h
index 8499a7f219c..de1d423bfad 100644
--- a/source/blender/blenlib/BLI_math_vector.h
+++ b/source/blender/blenlib/BLI_math_vector.h
@@ -81,6 +81,7 @@ MINLINE void copy_v4db_v4fl(double r[4], const float a[4]);
/********************************* Arithmetic ********************************/
+MINLINE void add_v2_fl(float r[2], float f);
MINLINE void add_v3_fl(float r[3], float f);
MINLINE void add_v4_fl(float r[4], float f);
MINLINE void add_v2_v2(float r[2], const float a[2]);
@@ -172,6 +173,7 @@ MINLINE int is_one_v3(const float a[3]);
MINLINE int equals_v2v2(const float v1[2], const float v2[2]);
MINLINE int equals_v3v3(const float a[3], const float b[3]);
+MINLINE int compare_v2v2(const float a[3], const float b[3], const float limit);
MINLINE int compare_v3v3(const float a[3], const float b[3], const float limit);
MINLINE int compare_len_v3v3(const float a[3], const float b[3], const float limit);
@@ -220,6 +222,9 @@ MINLINE void normal_float_to_short_v3(short r[3], const float n[3]);
void minmax_v3v3_v3(float min[3], float max[3], const float vec[3]);
+void dist_ensure_v3_v3fl(float v1[3], const float v2[3], const float dist);
+void dist_ensure_v2_v2fl(float v1[2], const float v2[2], const float dist);
+
/***************************** Array Functions *******************************/
/* attempted to follow fixed length vertex functions. names could be improved*/
double dot_vn_vn(const float *array_src_a, const float *array_src_b, const int size);
diff --git a/source/blender/blenlib/BLI_memarena.h b/source/blender/blenlib/BLI_memarena.h
index abba03ece9d..092bb639b91 100644
--- a/source/blender/blenlib/BLI_memarena.h
+++ b/source/blender/blenlib/BLI_memarena.h
@@ -47,19 +47,49 @@ extern "C" {
*/
#define BLI_MEMARENA_STD_BUFSIZE (1 << 14)
+/* some GNU attributes are only available from GCC 4.3 */
+#define MEM_GNU_ATTRIBUTES (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 403))
+
struct MemArena;
typedef struct MemArena MemArena;
+struct MemArena *BLI_memarena_new(const int bufsize, const char *name)
+#if MEM_GNU_ATTRIBUTES
+__attribute__((warn_unused_result))
+__attribute__((nonnull(2)))
+#endif
+;
-struct MemArena *BLI_memarena_new(int bufsize, const char *name);
-void BLI_memarena_free(struct MemArena *ma);
+void BLI_memarena_free(struct MemArena *ma)
+#if MEM_GNU_ATTRIBUTES
+__attribute__((nonnull(1)))
+#endif
+;
-void BLI_memarena_use_malloc(struct MemArena *ma);
-void BLI_memarena_use_calloc(struct MemArena *ma);
+void BLI_memarena_use_malloc(struct MemArena *ma)
+#if MEM_GNU_ATTRIBUTES
+__attribute__((nonnull(1)))
+#endif
+;
+void BLI_memarena_use_calloc(struct MemArena *ma)
+#if MEM_GNU_ATTRIBUTES
+__attribute__((nonnull(1)))
+#endif
+;
-void BLI_memarena_use_align(struct MemArena *ma, int align);
+void BLI_memarena_use_align(struct MemArena *ma, const int align)
+#if MEM_GNU_ATTRIBUTES
+__attribute__((nonnull(1)))
+#endif
+;
-void *BLI_memarena_alloc(struct MemArena *ma, int size);
+void *BLI_memarena_alloc(struct MemArena *ma, int size)
+#if MEM_GNU_ATTRIBUTES
+__attribute__((warn_unused_result))
+__attribute__((nonnull(1)))
+__attribute__((alloc_size(2)))
+#endif
+;
#ifdef __cplusplus
}
diff --git a/source/blender/blenlib/BLI_mempool.h b/source/blender/blenlib/BLI_mempool.h
index 9d7c7d496c8..8fd2166e6f8 100644
--- a/source/blender/blenlib/BLI_mempool.h
+++ b/source/blender/blenlib/BLI_mempool.h
@@ -31,7 +31,7 @@
/** \file BLI_mempool.h
* \ingroup bli
* \author Geoffrey Bantle
- * \brief Simple fast memory allocator.
+ * \brief Simple fast memory allocator for fixed size chunks.
*/
#ifdef __cplusplus
@@ -48,16 +48,47 @@ typedef struct BLI_mempool BLI_mempool;
* first four bytes of the elements never contain the character string
* 'free'. use with care.*/
-BLI_mempool *BLI_mempool_create(int esize, int totelem, int pchunk, int flag);
-void *BLI_mempool_alloc(BLI_mempool *pool);
-void *BLI_mempool_calloc(BLI_mempool *pool);
-void BLI_mempool_free(BLI_mempool *pool, void *addr);
-void BLI_mempool_destroy(BLI_mempool *pool);
-int BLI_mempool_count(BLI_mempool *pool);
-void *BLI_mempool_findelem(BLI_mempool *pool, int index);
+BLI_mempool *BLI_mempool_create(int esize, int totelem, int pchunk, int flag)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+#endif
+;
+void *BLI_mempool_alloc(BLI_mempool *pool)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull(1)))
+#endif
+;
+void *BLI_mempool_calloc(BLI_mempool *pool)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull(1)))
+#endif
+;
+void BLI_mempool_free(BLI_mempool *pool, void *addr)
+#ifdef __GNUC__
+__attribute__((nonnull(1, 2)))
+#endif
+;
+void BLI_mempool_destroy(BLI_mempool *pool)
+#ifdef __GNUC__
+__attribute__((nonnull(1)))
+#endif
+;
+int BLI_mempool_count(BLI_mempool *pool)
+#ifdef __GNUC__
+__attribute__((nonnull(1)))
+#endif
+;
+void *BLI_mempool_findelem(BLI_mempool *pool, int index)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull(1)))
+#endif
+;
/** iteration stuff. note: this may easy to produce bugs with **/
-/*private structure*/
+/* private structure */
typedef struct BLI_mempool_iter {
BLI_mempool *pool;
struct BLI_mempool_chunk *curchunk;
@@ -70,11 +101,20 @@ enum {
BLI_MEMPOOL_ALLOW_ITER = (1 << 1)
};
-void BLI_mempool_iternew(BLI_mempool *pool, BLI_mempool_iter *iter);
-void *BLI_mempool_iterstep(BLI_mempool_iter *iter);
+void BLI_mempool_iternew(BLI_mempool *pool, BLI_mempool_iter *iter)
+#ifdef __GNUC__
+__attribute__((nonnull(1, 2)))
+#endif
+;
+void *BLI_mempool_iterstep(BLI_mempool_iter *iter)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull(1)))
+#endif
+;
#ifdef __cplusplus
}
#endif
-#endif
+#endif /* __BLI_MEMPOOL_H__ */
diff --git a/source/blender/blenlib/BLI_path_util.h b/source/blender/blenlib/BLI_path_util.h
index 9b68406cc54..5e47adf25ef 100644
--- a/source/blender/blenlib/BLI_path_util.h
+++ b/source/blender/blenlib/BLI_path_util.h
@@ -97,7 +97,6 @@ typedef enum bli_rebase_state {
} bli_rebase_state;
int BLI_rebase_path(char *abs, size_t abs_len, char *rel, size_t rel_len, const char *base_dir, const char *src_dir, const char *dest_dir);
-#define BKE_rebase_path BLI_rebase_path /* remove after a 2012 */
char *BLI_last_slash(const char *string);
int BLI_add_slash(char *string);
@@ -154,6 +153,8 @@ int BLI_path_frame_range(char *path, int sta, int end, int digits);
int BLI_path_cwd(char *path);
void BLI_path_rel(char *file, const char *relfile);
+int BLI_path_is_rel(const char *path);
+
#ifdef WIN32
# define BLI_path_cmp BLI_strcasecmp
# define BLI_path_ncmp BLI_strncasecmp
@@ -191,6 +192,14 @@ void BLI_system_temporary_dir(char *dir);
void BLI_string_to_utf8(char *original, char *utf_8, const char *code);
#endif
+/* these values need to be hardcoded in structs, dna does not recognize defines */
+/* also defined in DNA_space_types.h */
+#ifndef FILE_MAXDIR
+# define FILE_MAXDIR 768
+# define FILE_MAXFILE 256
+# define FILE_MAX 1024
+#endif
+
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/blenlib/BLI_pbvh.h b/source/blender/blenlib/BLI_pbvh.h
index 6c0d547fe6f..810b3b56386 100644
--- a/source/blender/blenlib/BLI_pbvh.h
+++ b/source/blender/blenlib/BLI_pbvh.h
@@ -233,7 +233,7 @@ void pbvh_vertex_iter_init(PBVH *bvh, PBVHNode *node,
if (vi.grid) { \
vi.co = CCG_elem_co(vi.key, vi.grid); \
vi.fno = CCG_elem_no(vi.key, vi.grid); \
- vi.mask = CCG_elem_mask(vi.key, vi.grid); \
+ vi.mask = vi.key->has_mask ? CCG_elem_mask(vi.key, vi.grid) : NULL; \
vi.grid = CCG_elem_next(vi.key, vi.grid); \
if (vi.gh) { \
if (BLI_BITMAP_GET(vi.gh, vi.gy * vi.gridsize + vi.gx)) \
@@ -260,8 +260,8 @@ void BLI_pbvh_node_free_proxies(PBVHNode *node);
PBVHProxyNode *BLI_pbvh_node_add_proxy(PBVH *bvh, PBVHNode *node);
void BLI_pbvh_gather_proxies(PBVH *pbvh, PBVHNode ***nodes, int *totnode);
-//void BLI_pbvh_node_BB_reset(PBVHNode* node);
-//void BLI_pbvh_node_BB_expand(PBVHNode* node, float co[3]);
+//void BLI_pbvh_node_BB_reset(PBVHNode *node);
+//void BLI_pbvh_node_BB_expand(PBVHNode *node, float co[3]);
#endif /* __BLI_PBVH_H__ */
diff --git a/source/blender/blenlib/BLI_rect.h b/source/blender/blenlib/BLI_rect.h
index 0cf32eeb276..de4c2cf3a86 100644
--- a/source/blender/blenlib/BLI_rect.h
+++ b/source/blender/blenlib/BLI_rect.h
@@ -40,37 +40,68 @@ struct rcti;
extern "C" {
#endif
-/* BLI_rct.c */
-/**
- * Determine if a rect is empty. An empty
- * rect is one with a zero (or negative)
- * width or height.
- *
- * \return True if \a rect is empty.
- */
-int BLI_rcti_is_empty(struct rcti *rect);
-int BLI_rctf_is_empty(struct rctf *rect);
-void BLI_init_rctf(struct rctf *rect, float xmin, float xmax, float ymin, float ymax);
-void BLI_init_rcti(struct rcti *rect, int xmin, int xmax, int ymin, int ymax);
-void BLI_translate_rctf(struct rctf *rect, float x, float y);
-void BLI_translate_rcti(struct rcti *rect, int x, int y);
-void BLI_resize_rcti(struct rcti *rect, int x, int y);
-void BLI_resize_rctf(struct rctf *rect, float x, float y);
-int BLI_in_rcti(struct rcti *rect, int x, int y);
-int BLI_in_rctf(struct rctf *rect, float x, float y);
-int BLI_segment_in_rcti(struct rcti *rect, int s1[2], int s2[2]);
-// int BLI_segment_in_rctf(struct rcti *rect, int s1[2], int s2[2]); // NOT NEEDED YET
-int BLI_isect_rctf(struct rctf *src1, struct rctf *src2, struct rctf *dest);
-int BLI_isect_rcti(struct rcti *src1, struct rcti *src2, struct rcti *dest);
-void BLI_union_rctf(struct rctf *rcta, struct rctf *rctb);
-void BLI_union_rcti(struct rcti *rcti1, struct rcti *rcti2);
-void BLI_copy_rcti_rctf(struct rcti *tar, const struct rctf *src);
+int BLI_rcti_is_empty(const struct rcti *rect);
+int BLI_rctf_is_empty(const struct rctf *rect);
+void BLI_rctf_init(struct rctf *rect, float xmin, float xmax, float ymin, float ymax);
+void BLI_rcti_init(struct rcti *rect, int xmin, int xmax, int ymin, int ymax);
+void BLI_rcti_init_minmax(struct rcti *rect);
+void BLI_rctf_init_minmax(struct rctf *rect);
+void BLI_rcti_do_minmax_v(struct rcti *rect, const int xy[2]);
+void BLI_rctf_do_minmax_v(struct rctf *rect, const float xy[2]);
-void print_rctf(const char *str, struct rctf *rect);
-void print_rcti(const char *str, struct rcti *rect);
+void BLI_rctf_translate(struct rctf *rect, float x, float y);
+void BLI_rcti_translate(struct rcti *rect, int x, int y);
+void BLI_rcti_resize(struct rcti *rect, int x, int y);
+void BLI_rctf_resize(struct rctf *rect, float x, float y);
+void BLI_rctf_interp(struct rctf *rect, const struct rctf *rect_a, const struct rctf *rect_b, const float fac);
+//void BLI_rcti_interp(struct rctf *rect, struct rctf *rect_a, struct rctf *rect_b, float fac);
+int BLI_rctf_clamp_pt_v(const struct rctf *rect, float xy[2]);
+int BLI_rcti_clamp_pt_v(const struct rcti *rect, int xy[2]);
+int BLI_rctf_compare(const struct rctf *rect_a, const struct rctf *rect_b, const float limit);
+int BLI_rcti_compare(const struct rcti *rect_a, const struct rcti *rect_b);
+int BLI_rctf_isect(const struct rctf *src1, const struct rctf *src2, struct rctf *dest);
+int BLI_rcti_isect(const struct rcti *src1, const struct rcti *src2, struct rcti *dest);
+int BLI_rcti_isect_pt(const struct rcti *rect, const int x, const int y);
+int BLI_rcti_isect_pt_v(const struct rcti *rect, const int xy[2]);
+int BLI_rctf_isect_pt(const struct rctf *rect, const float x, const float y);
+int BLI_rctf_isect_pt_v(const struct rctf *rect, const float xy[2]);
+int BLI_rcti_isect_segment(const struct rcti *rect, const int s1[2], const int s2[2]);
+#if 0 /* NOT NEEDED YET */
+int BLI_rctf_isect_segment(struct rcti *rect, int s1[2], int s2[2]);
+#endif
+void BLI_rctf_union(struct rctf *rctf1, const struct rctf *rctf2);
+void BLI_rcti_union(struct rcti *rcti1, const struct rcti *rcti2);
+void BLI_rcti_rctf_copy(struct rcti *dst, const struct rctf *src);
+void BLI_rctf_rcti_copy(struct rctf *dst, const struct rcti *src);
+
+void print_rctf(const char *str, const struct rctf *rect);
+void print_rcti(const char *str, const struct rcti *rect);
+
+/* hrmf, we need to work out this inline stuff */
+#if defined(_MSC_VER)
+# define BLI_INLINE static __forceinline
+#elif defined(__GNUC__)
+# define BLI_INLINE static inline __attribute((always_inline))
+#else
+/* #warning "MSC/GNUC defines not found, inline non-functional" */
+# define BLI_INLINE static
+#endif
+
+#include "DNA_vec_types.h"
+BLI_INLINE float BLI_rcti_cent_x_fl(const struct rcti *rct) { return (float)(rct->xmin + rct->xmax) / 2.0f; }
+BLI_INLINE float BLI_rcti_cent_y_fl(const struct rcti *rct) { return (float)(rct->ymin + rct->ymax) / 2.0f; }
+BLI_INLINE int BLI_rcti_cent_x(const struct rcti *rct) { return (rct->xmin + rct->xmax) / 2; }
+BLI_INLINE int BLI_rcti_cent_y(const struct rcti *rct) { return (rct->ymin + rct->ymax) / 2; }
+BLI_INLINE float BLI_rctf_cent_x(const struct rctf *rct) { return (rct->xmin + rct->xmax) / 2.0f; }
+BLI_INLINE float BLI_rctf_cent_y(const struct rctf *rct) { return (rct->ymin + rct->ymax) / 2.0f; }
+
+BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct) { return (rct->xmax - rct->xmin); }
+BLI_INLINE int BLI_rcti_size_y(const struct rcti *rct) { return (rct->ymax - rct->ymin); }
+BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct) { return (rct->xmax - rct->xmin); }
+BLI_INLINE float BLI_rctf_size_y(const struct rctf *rct) { return (rct->ymax - rct->ymin); }
#ifdef __cplusplus
}
#endif
-#endif
+#endif /* __BLI_RECT_H__ */
diff --git a/source/blender/blenlib/BLI_scanfill.h b/source/blender/blenlib/BLI_scanfill.h
index ceef378358b..a6b1943cb4d 100644
--- a/source/blender/blenlib/BLI_scanfill.h
+++ b/source/blender/blenlib/BLI_scanfill.h
@@ -65,11 +65,12 @@ typedef struct ScanFillVert {
union {
struct ScanFillVert *v;
void *p;
- intptr_t l;
+ intptr_t l;
+ unsigned int u;
} tmp;
float co[3]; /* vertex location */
float xy[2]; /* 2D copy of vertex location (using dominant axis) */
- int keyindex; /* original index #, for restoring key information */
+ unsigned int keyindex; /* original index #, for restoring key information */
short poly_nr;
unsigned char f, h;
} ScanFillVert;
@@ -79,6 +80,9 @@ typedef struct ScanFillEdge {
struct ScanFillVert *v1, *v2;
short poly_nr;
unsigned char f;
+ union {
+ unsigned char c;
+ } tmp;
} ScanFillEdge;
typedef struct ScanFillFace {
diff --git a/source/blender/blenlib/BLI_stack.h b/source/blender/blenlib/BLI_stack.h
new file mode 100644
index 00000000000..9151e6ab93f
--- /dev/null
+++ b/source/blender/blenlib/BLI_stack.h
@@ -0,0 +1,54 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Nicholas Bishop
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ *
+ */
+
+#ifndef __BLI_STACK_H__
+#define __BLI_STACK_H__
+
+/** \file BLI_stack.h
+ * \ingroup bli
+ */
+
+typedef struct BLI_Stack BLI_Stack;
+
+/* Create a new homogeneous stack with elements of 'elem_size' bytes */
+BLI_Stack *BLI_stack_new(int elem_size, const char *description);
+
+/* Free the stack's data and the stack itself */
+void BLI_stack_free(BLI_Stack *stack);
+
+/* Copies the source value onto the stack (note that it copies
+ * elem_size bytes from 'src', the pointer itself is not stored) */
+void BLI_stack_push(BLI_Stack *stack, void *src);
+
+/* Retrieves and removes the top element from the stack. The value is
+ * copies to 'dst', which must be at least elem_size bytes.
+ *
+ * Does not reduce amount of allocated memory.
+ *
+ * If stack is empty, 'dst' will not be modified. */
+void BLI_stack_pop(BLI_Stack *stack, void *dst);
+
+/* Returns TRUE if the stack is empty, FALSE otherwise */
+int BLI_stack_empty(const BLI_Stack *stack);
+
+#endif
diff --git a/source/blender/blenlib/BLI_string.h b/source/blender/blenlib/BLI_string.h
index c8f439c677f..666c74ca36f 100644
--- a/source/blender/blenlib/BLI_string.h
+++ b/source/blender/blenlib/BLI_string.h
@@ -32,6 +32,8 @@
* \ingroup bli
*/
+#include <stdarg.h>
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -43,7 +45,12 @@ extern "C" {
* \param str The string to be duplicated
* \retval Returns the duplicated string
*/
-char *BLI_strdup(const char *str);
+char *BLI_strdup(const char *str)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
/**
* Duplicates the first \a len bytes of cstring \a str
@@ -54,7 +61,12 @@ char *BLI_strdup(const char *str);
* \param len The number of bytes to duplicate
* \retval Returns the duplicated string
*/
-char *BLI_strdupn(const char *str, const size_t len);
+char *BLI_strdupn(const char *str, const size_t len)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
/**
* Appends the two strings, and returns new mallocN'ed string
@@ -62,7 +74,12 @@ char *BLI_strdupn(const char *str, const size_t len);
* \param str2 second string for append
* \retval Returns dst
*/
-char *BLI_strdupcat(const char *str1, const char *str2);
+char *BLI_strdupcat(const char *str1, const char *str2)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
/**
* Like strncpy but ensures dst is always
@@ -74,9 +91,14 @@ char *BLI_strdupcat(const char *str1, const char *str2);
* the size of dst)
* \retval Returns dst
*/
-char *BLI_strncpy(char *dst, const char *src, const size_t maxncpy);
+char *BLI_strncpy(char *dst, const char *src, const size_t maxncpy)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
-/* Makes a copy of the text within the "" that appear after some text 'blahblah'
+/**
+ *Makes a copy of the text within the "" that appear after some text 'blahblah'
* i.e. for string 'pose["apples"]' with prefix 'pose[', it should grab "apples"
*
* - str: is the entire string to chop
@@ -85,7 +107,12 @@ char *BLI_strncpy(char *dst, const char *src, const size_t maxncpy);
* Assume that the strings returned must be freed afterwards, and that the inputs will contain
* data we want...
*/
-char *BLI_getQuotedStr(const char *str, const char *prefix);
+char *BLI_str_quoted_substrN(const char *str, const char *prefix)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
/**
* Returns a copy of the cstring \a str into a newly mallocN'd
@@ -97,7 +124,12 @@ char *BLI_getQuotedStr(const char *str, const char *prefix);
* \param newText The text in the string to find and replace
* \retval Returns the duplicated string
*/
-char *BLI_replacestr(char *str, const char *oldText, const char *newText);
+char *BLI_replacestr(char *str, const char *oldText, const char *newText)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
/*
* Replacement for snprintf
@@ -105,6 +137,16 @@ char *BLI_replacestr(char *str, const char *oldText, const char *newText);
size_t BLI_snprintf(char *buffer, size_t len, const char *format, ...)
#ifdef __GNUC__
__attribute__ ((format(printf, 3, 4)))
+__attribute__((nonnull))
+#endif
+;
+
+/*
+ * Replacement for vsnprintf
+ */
+size_t BLI_vsnprintf(char *buffer, size_t count, const char *format, va_list arg)
+#ifdef __GNUC__
+__attribute__ ((format(printf, 3, 0)))
#endif
;
@@ -115,27 +157,75 @@ __attribute__ ((format(printf, 3, 4)))
char *BLI_sprintfN(const char *format, ...)
#ifdef __GNUC__
__attribute__ ((format(printf, 1, 2)))
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
#endif
;
-size_t BLI_strescape(char *dst, const char *src, const size_t maxlen);
+size_t BLI_strescape(char *dst, const char *src, const size_t maxlen)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
/**
* Compare two strings without regard to case.
*
* \retval True if the strings are equal, false otherwise.
*/
-int BLI_strcaseeq(const char *a, const char *b);
+int BLI_strcaseeq(const char *a, const char *b)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
-char *BLI_strcasestr(const char *s, const char *find);
-int BLI_strcasecmp(const char *s1, const char *s2);
-int BLI_strncasecmp(const char *s1, const char *s2, size_t len);
-int BLI_natstrcmp(const char *s1, const char *s2);
-size_t BLI_strnlen(const char *str, size_t maxlen);
-void BLI_timestr(double _time, char *str); /* time var is global */
+char *BLI_strcasestr(const char *s, const char *find)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
+int BLI_strcasecmp(const char *s1, const char *s2)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
+int BLI_strncasecmp(const char *s1, const char *s2, size_t len)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
+int BLI_natstrcmp(const char *s1, const char *s2)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
+size_t BLI_strnlen(const char *str, size_t maxlen)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+__attribute__((nonnull))
+#endif
+;
+void BLI_timestr(double _time, char *str)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+; /* time var is global */
-void BLI_ascii_strtolower(char *str, int len);
-void BLI_ascii_strtoupper(char *str, int len);
+void BLI_ascii_strtolower(char *str, int len)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
+void BLI_ascii_strtoupper(char *str, int len)
+#ifdef __GNUC__
+__attribute__((nonnull))
+#endif
+;
#ifdef __cplusplus
}
diff --git a/source/blender/blenlib/BLI_threads.h b/source/blender/blenlib/BLI_threads.h
index fb8771722c1..9cd801f819d 100644
--- a/source/blender/blenlib/BLI_threads.h
+++ b/source/blender/blenlib/BLI_threads.h
@@ -31,6 +31,9 @@
/** \file BLI_threads.h
* \ingroup bli
*/
+#ifdef __cplusplus
+extern "C" {
+#endif
#include <pthread.h>
@@ -67,13 +70,14 @@ int BLI_system_thread_count(void); /* gets the number of threads the system
* One custom lock available now. can be extended. */
#define LOCK_IMAGE 0
-#define LOCK_PREVIEW 1
+#define LOCK_DRAW_IMAGE 1
#define LOCK_VIEWER 2
#define LOCK_CUSTOM1 3
#define LOCK_RCACHE 4
#define LOCK_OPENGL 5
#define LOCK_NODES 6
#define LOCK_MOVIECLIP 7
+#define LOCK_COLORMANAGE 8
void BLI_lock_thread(int type);
void BLI_unlock_thread(int type);
@@ -139,5 +143,9 @@ int BLI_thread_queue_size(ThreadQueue *queue);
void BLI_thread_queue_wait_finish(ThreadQueue *queue);
void BLI_thread_queue_nowait(ThreadQueue *queue);
+#ifdef __cplusplus
+}
+#endif
+
#endif
diff --git a/source/blender/blenlib/BLI_utildefines.h b/source/blender/blenlib/BLI_utildefines.h
index f761f2edcba..5321de4393b 100644
--- a/source/blender/blenlib/BLI_utildefines.h
+++ b/source/blender/blenlib/BLI_utildefines.h
@@ -81,7 +81,7 @@
#define INIT_MINMAX(min, max) { \
(min)[0] = (min)[1] = (min)[2] = 1.0e30f; \
(max)[0] = (max)[1] = (max)[2] = -1.0e30f; \
- }
+ } (void)0
#define INIT_MINMAX2(min, max) { \
(min)[0] = (min)[1] = 1.0e30f; \
(max)[0] = (max)[1] = -1.0e30f; \
@@ -113,8 +113,34 @@
/* some math and copy defines */
+/* Causes warning:
+ * incompatible types when assigning to type 'Foo' from type 'Bar'
+ * ... the compiler optimizes away the temp var */
+#ifndef CHECK_TYPE
+#ifdef __GNUC__
+#define CHECK_TYPE(var, type) { \
+ __typeof(var) *__tmp; \
+ __tmp = (type *)NULL; \
+ (void)__tmp; \
+} (void)0
+#else
+#define CHECK_TYPE(var, type)
+#endif
+#endif
+
+/* can be used in simple macros */
+#define CHECK_TYPE_INLINE(val, type) \
+ ((void)(((type *)0) != (val)))
+
#ifndef SWAP
-# define SWAP(type, a, b) { type sw_ap; sw_ap = (a); (a) = (b); (b) = sw_ap; } (void)0
+# define SWAP(type, a, b) { \
+ type sw_ap; \
+ CHECK_TYPE(a, type); \
+ CHECK_TYPE(b, type); \
+ sw_ap = (a); \
+ (a) = (b); \
+ (b) = sw_ap; \
+} (void)0
#endif
#define ABS(a) ( (a) < 0 ? (-(a)) : (a) )
@@ -176,7 +202,10 @@
#define INPR(v1, v2) ( (v1)[0] * (v2)[0] + (v1)[1] * (v2)[1] + (v1)[2] * (v2)[2])
/* some misc stuff.... */
-#define CLAMP(a, b, c) if ((a) < (b)) (a) = (b); else if ((a) > (c)) (a) = (c)
+#define CLAMP(a, b, c) { \
+ if ((a) < (b)) (a) = (b); \
+ else if ((a) > (c)) (a) = (c); \
+} (void)0
#define CLAMPIS(a, b, c) ((a) < (b) ? (b) : (a) > (c) ? (c) : (a))
#define CLAMPTEST(a, b, c) \
@@ -185,7 +214,7 @@
} \
else { \
CLAMP(a, c, b); \
- } (void)
+ } (void)0
#define IS_EQ(a, b) ((fabs((double)(a) - (b)) >= (double) FLT_EPSILON) ? 0 : 1)
#define IS_EQF(a, b) ((fabsf((float)(a) - (b)) >= (float) FLT_EPSILON) ? 0 : 1)
@@ -203,35 +232,15 @@
(item <= ARRAY_LAST_ITEM(arr_start, arr_dtype, elem_size, tot)) \
)
-/* This one rotates the bytes in an int64, int (32) and short (16) */
-#define SWITCH_INT64(a) { \
- char s_i, *p_i; \
- p_i = (char *)&(a); \
- s_i = p_i[0]; p_i[0] = p_i[7]; p_i[7] = s_i; \
- s_i = p_i[1]; p_i[1] = p_i[6]; p_i[6] = s_i; \
- s_i = p_i[2]; p_i[2] = p_i[5]; p_i[5] = s_i; \
- s_i = p_i[3]; p_i[3] = p_i[4]; p_i[4] = s_i; \
- } (void)0
-
-#define SWITCH_INT(a) { \
- char s_i, *p_i; \
- p_i = (char *)&(a); \
- s_i = p_i[0]; p_i[0] = p_i[3]; p_i[3] = s_i; \
- s_i = p_i[1]; p_i[1] = p_i[2]; p_i[2] = s_i; \
- } (void)0
-
-#define SWITCH_SHORT(a) { \
- char s_i, *p_i; \
- p_i = (char *)&(a); \
- s_i = p_i[0]; p_i[0] = p_i[1]; p_i[1] = s_i; \
- } (void)0
-
-
/* Warning-free macros for storing ints in pointers. Use these _only_
* for storing an int in a pointer, not a pointer in an int (64bit)! */
#define SET_INT_IN_POINTER(i) ((void *)(intptr_t)(i))
#define GET_INT_FROM_POINTER(i) ((int)(intptr_t)(i))
+#define SET_UINT_IN_POINTER(i) ((void *)(uintptr_t)(i))
+#define GET_UINT_FROM_POINTER(i) ((unsigned int)(uintptr_t)(i))
+
+
/* Macro to convert a value to string in the preprocessor
* STRINGIFY_ARG: gives the argument as a string
* STRINGIFY_APPEND: appends any argument 'b' onto the string argument 'a',
diff --git a/source/blender/blenlib/BLI_vfontdata.h b/source/blender/blenlib/BLI_vfontdata.h
index a63ec8e9f61..ed7d10ab257 100644
--- a/source/blender/blenlib/BLI_vfontdata.h
+++ b/source/blender/blenlib/BLI_vfontdata.h
@@ -39,14 +39,8 @@
struct PackedFile;
struct VFont;
-#define MAX_VF_CHARS 256
-
typedef struct VFontData {
ListBase characters;
- // ListBase nurbsbase[MAX_VF_CHARS];
- // float resol[MAX_VF_CHARS];
- // float width[MAX_VF_CHARS];
- // float *points[MAX_VF_CHARS];
char name[128];
} VFontData;
@@ -59,12 +53,6 @@ typedef struct VChar {
float *points;
} VChar;
-struct TmpFont {
- struct TmpFont *next, *prev;
- struct PackedFile *pf;
- struct VFont *vfont;
-};
-
/**
* Construct a new VFontData structure from
* Freetype font data in a PackedFile.
diff --git a/source/blender/blenlib/CMakeLists.txt b/source/blender/blenlib/CMakeLists.txt
index ac7681e3be7..2836174be73 100644
--- a/source/blender/blenlib/CMakeLists.txt
+++ b/source/blender/blenlib/CMakeLists.txt
@@ -55,6 +55,7 @@ set(SRC
intern/cpu.c
intern/dynlib.c
intern/edgehash.c
+ intern/endian_switch.c
intern/fileops.c
intern/fnmatch.c
intern/freetypefont.c
@@ -81,6 +82,7 @@ set(SRC
intern/rct.c
intern/scanfill.c
intern/smallhash.c
+ intern/stack.c
intern/storage.c
intern/string.c
intern/string_cursor_utf8.c
@@ -104,6 +106,8 @@ set(SRC
BLI_dynlib.h
BLI_dynstr.h
BLI_edgehash.h
+ BLI_endian_switch.h
+ BLI_endian_switch_inline.h
BLI_fileops.h
BLI_fileops_types.h
BLI_fnmatch.h
@@ -135,6 +139,7 @@ set(SRC
BLI_rect.h
BLI_scanfill.h
BLI_smallhash.h
+ BLI_stack.h
BLI_string.h
BLI_string_cursor_utf8.h
BLI_string_utf8.h
@@ -142,6 +147,7 @@ set(SRC
BLI_utildefines.h
BLI_uvproject.h
BLI_vfontdata.h
+ BLI_voronoi.h
BLI_voxel.h
BLI_winstuff.h
PIL_time.h
diff --git a/source/blender/blenlib/intern/BLI_args.c b/source/blender/blenlib/intern/BLI_args.c
index 785c9f9f32b..6a5952465fe 100644
--- a/source/blender/blenlib/intern/BLI_args.c
+++ b/source/blender/blenlib/intern/BLI_args.c
@@ -88,7 +88,7 @@ static unsigned int case_strhash(const void *ptr)
static unsigned int keyhash(const void *ptr)
{
const bAKey *k = ptr;
- return case_strhash(k->arg); // ^ BLI_ghashutil_inthash((void*)k->pass);
+ return case_strhash(k->arg); /* ^ BLI_ghashutil_inthash((void *)k->pass); */
}
static int keycmp(const void *a, const void *b)
@@ -173,7 +173,8 @@ static bArgDoc *internalDocs(struct bArgs *ba, const char *short_arg, const char
return d;
}
-static void internalAdd(struct bArgs *ba, const char *arg, int pass, int case_str, BA_ArgCallback cb, void *data, bArgDoc *d)
+static void internalAdd(struct bArgs *ba, const char *arg, int pass,
+ int case_str, BA_ArgCallback cb, void *data, bArgDoc *d)
{
bArgument *a;
bAKey *key;
@@ -182,8 +183,10 @@ static void internalAdd(struct bArgs *ba, const char *arg, int pass, int case_st
if (a) {
printf("WARNING: conflicting argument\n");
- printf("\ttrying to add '%s' on pass %i, %scase sensitive\n", arg, pass, case_str == 1 ? "not " : "");
- printf("\tconflict with '%s' on pass %i, %scase sensitive\n\n", a->key->arg, (int)a->key->pass, a->key->case_str == 1 ? "not " : "");
+ printf("\ttrying to add '%s' on pass %i, %scase sensitive\n",
+ arg, pass, case_str == 1 ? "not " : "");
+ printf("\tconflict with '%s' on pass %i, %scase sensitive\n\n",
+ a->key->arg, (int)a->key->pass, a->key->case_str == 1 ? "not " : "");
}
a = MEM_callocN(sizeof(bArgument), "bArgument");
@@ -201,7 +204,10 @@ static void internalAdd(struct bArgs *ba, const char *arg, int pass, int case_st
BLI_ghash_insert(ba->items, key, a);
}
-void BLI_argsAddCase(struct bArgs *ba, int pass, const char *short_arg, int short_case, const char *long_arg, int long_case, const char *doc, BA_ArgCallback cb, void *data)
+void BLI_argsAddCase(struct bArgs *ba, int pass,
+ const char *short_arg, int short_case,
+ const char *long_arg, int long_case,
+ const char *doc, BA_ArgCallback cb, void *data)
{
bArgDoc *d = internalDocs(ba, short_arg, long_arg, doc);
@@ -214,7 +220,9 @@ void BLI_argsAddCase(struct bArgs *ba, int pass, const char *short_arg, int shor
}
-void BLI_argsAdd(struct bArgs *ba, int pass, const char *short_arg, const char *long_arg, const char *doc, BA_ArgCallback cb, void *data)
+void BLI_argsAdd(struct bArgs *ba, int pass,
+ const char *short_arg, const char *long_arg,
+ const char *doc, BA_ArgCallback cb, void *data)
{
BLI_argsAddCase(ba, pass, short_arg, 0, long_arg, 0, doc, cb, data);
}
diff --git a/source/blender/blenlib/intern/BLI_ghash.c b/source/blender/blenlib/intern/BLI_ghash.c
index 4bcedb06fb0..844407f9e06 100644
--- a/source/blender/blenlib/intern/BLI_ghash.c
+++ b/source/blender/blenlib/intern/BLI_ghash.c
@@ -35,8 +35,6 @@
#include "MEM_guardedalloc.h"
-// #include "BLI_blenlib.h"
-
#include "BLI_utildefines.h"
#include "BLI_mempool.h"
#include "BLI_ghash.h"
diff --git a/source/blender/blenlib/intern/BLI_heap.c b/source/blender/blenlib/intern/BLI_heap.c
index c1175192434..ee7d93ea1a9 100644
--- a/source/blender/blenlib/intern/BLI_heap.c
+++ b/source/blender/blenlib/intern/BLI_heap.c
@@ -58,7 +58,7 @@ struct Heap {
#define HEAP_LEFT(i) ((i << 1) + 1)
#define HEAP_RIGHT(i) ((i << 1) + 2)
#define HEAP_COMPARE(a, b) (a->value < b->value)
-#define HEAP_EQUALS(a, b) (a->value == b->value)
+// #define HEAP_EQUALS(a, b) (a->value == b->value) // UNUSED
#define HEAP_SWAP(heap, i, j) \
{ \
SWAP(int, heap->tree[i]->index, heap->tree[j]->index); \
diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c
index 6a4ee64ebcd..a86783f3450 100644
--- a/source/blender/blenlib/intern/BLI_kdopbvh.c
+++ b/source/blender/blenlib/intern/BLI_kdopbvh.c
@@ -29,15 +29,11 @@
* \ingroup bli
*/
-
#include <assert.h>
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
-
-
-
#include "BLI_kdopbvh.h"
#include "BLI_math.h"
@@ -45,14 +41,11 @@
#include <omp.h>
#endif
-
-
#define MAX_TREETYPE 32
-#define DEFAULT_FIND_NEAREST_HEAP_SIZE 1024
typedef struct BVHNode {
struct BVHNode **children;
- struct BVHNode *parent; // some user defined traversed need that
+ struct BVHNode *parent; /* some user defined traversed need that */
struct BVHNode *skip[2];
float *bv; /* Bounding volume of all nodes, max 13 axis */
int index; /* face, edge, vertex index */
@@ -104,16 +97,15 @@ typedef struct BVHRayCastData {
BVHTreeRayHit hit;
} BVHRayCastData;
-////////////////////////////////////////m
-////////////////////////////////////////////////////////////////////////
-// Bounding Volume Hierarchy Definition
-//
-// Notes: From OBB until 26-DOP --> all bounding volumes possible, just choose type below
-// Notes: You have to choose the type at compile time ITM
-// Notes: You can choose the tree type --> binary, quad, octree, choose below
-////////////////////////////////////////////////////////////////////////
+/*
+ * Bounding Volume Hierarchy Definition
+ *
+ * Notes: From OBB until 26-DOP --> all bounding volumes possible, just choose type below
+ * Notes: You have to choose the type at compile time ITM
+ * Notes: You can choose the tree type --> binary, quad, octree, choose below
+ */
static float KDOP_AXES[13][3] = {
{1.0, 0, 0}, {0, 1.0, 0}, {0, 0, 1.0}, {1.0, 1.0, 1.0}, {1.0, -1.0, 1.0}, {1.0, 1.0, -1.0},
@@ -121,6 +113,8 @@ static float KDOP_AXES[13][3] = {
{0, 1.0, -1.0}
};
+#if 0
+
/*
* Generic push and pop heap
*/
@@ -160,7 +154,6 @@ static float KDOP_AXES[13][3] = {
heap[parent] = element; \
} (void)0
-#if 0
static int ADJUST_MEMORY(void *local_memblock, void **memblock, int new_size, int *max_size, int size_per_item)
{
int new_max_size = *max_size * 2;
@@ -188,13 +181,15 @@ static int ADJUST_MEMORY(void *local_memblock, void **memblock, int new_size, in
}
#endif
-//////////////////////////////////////////////////////////////////////////////////////////////////////
-// Introsort
-// with permission deriven from the following Java code:
-// http://ralphunden.net/content/tutorials/a-guide-to-introsort/
-// and he derived it from the SUN STL
-//////////////////////////////////////////////////////////////////////////////////////////////////////
+/*
+ * Introsort
+ * with permission deriven from the following Java code:
+ * http://ralphunden.net/content/tutorials/a-guide-to-introsort/
+ * and he derived it from the SUN STL
+ */
+
//static int size_threshold = 16;
+
/*
* Common methods for all algorithms
*/
@@ -336,9 +331,9 @@ static void sort_along_axis(BVHTree *tree, int start, int end, int axis)
}
#endif
-//after a call to this function you can expect one of:
-// every node to left of a[n] are smaller or equal to it
-// every node to the right of a[n] are greater or equal to it
+/* after a call to this function you can expect one of:
+ * - every node to left of a[n] are smaller or equal to it
+ * - every node to the right of a[n] are greater or equal to it */
static int partition_nth_element(BVHNode **a, int _begin, int _end, int n, int axis)
{
int begin = _begin, end = _end, cut;
@@ -354,7 +349,7 @@ static int partition_nth_element(BVHNode **a, int _begin, int _end, int n, int a
return n;
}
-//////////////////////////////////////////////////////////////////////////////////////////////////////
+/* --- */
static void build_skip_links(BVHTree *tree, BVHNode *node, BVHNode *left, BVHNode *right)
{
int i;
@@ -381,8 +376,8 @@ static void create_kdop_hull(BVHTree *tree, BVHNode *node, const float *co, int
float *bv = node->bv;
int i, k;
- // don't init boudings for the moving case
- if (!moving) {
+ /* don't init boudings for the moving case */
+ if (!moving) {
for (i = tree->start_axis; i < tree->stop_axis; i++) {
bv[2 * i] = FLT_MAX;
bv[2 * i + 1] = -FLT_MAX;
@@ -401,7 +396,7 @@ static void create_kdop_hull(BVHTree *tree, BVHNode *node, const float *co, int
}
}
-// depends on the fact that the BVH's for each face is already build
+/* depends on the fact that the BVH's for each face is already build */
static void refit_kdop_hull(BVHTree *tree, BVHNode *node, int start, int end)
{
float newmin, newmax;
@@ -429,31 +424,31 @@ static void refit_kdop_hull(BVHTree *tree, BVHNode *node, int start, int end)
}
-// only supports x,y,z axis in the moment
-// but we should use a plain and simple function here for speed sake
+/* only supports x,y,z axis in the moment
+ * but we should use a plain and simple function here for speed sake */
static char get_largest_axis(float *bv)
{
float middle_point[3];
- middle_point[0] = (bv[1]) - (bv[0]); // x axis
- middle_point[1] = (bv[3]) - (bv[2]); // y axis
- middle_point[2] = (bv[5]) - (bv[4]); // z axis
+ middle_point[0] = (bv[1]) - (bv[0]); /* x axis */
+ middle_point[1] = (bv[3]) - (bv[2]); /* y axis */
+ middle_point[2] = (bv[5]) - (bv[4]); /* z axis */
if (middle_point[0] > middle_point[1]) {
if (middle_point[0] > middle_point[2])
- return 1; // max x axis
+ return 1; /* max x axis */
else
- return 5; // max z axis
+ return 5; /* max z axis */
}
else {
if (middle_point[1] > middle_point[2])
- return 3; // max y axis
+ return 3; /* max y axis */
else
- return 5; // max z axis
+ return 5; /* max z axis */
}
}
-// bottom-up update of bvh node BV
-// join the children on the parent BV
+/* bottom-up update of bvh node BV
+ * join the children on the parent BV */
static void node_join(BVHTree *tree, BVHNode *node)
{
int i, j;
@@ -466,11 +461,11 @@ static void node_join(BVHTree *tree, BVHNode *node)
for (i = 0; i < tree->tree_type; i++) {
if (node->children[i]) {
for (j = tree->start_axis; j < tree->stop_axis; j++) {
- // update minimum
- if (node->children[i]->bv[(2 * j)] < node->bv[(2 * j)])
+ /* update minimum */
+ if (node->children[i]->bv[(2 * j)] < node->bv[(2 * j)])
node->bv[(2 * j)] = node->children[i]->bv[(2 * j)];
-
- // update maximum
+
+ /* update maximum */
if (node->children[i]->bv[(2 * j) + 1] > node->bv[(2 * j) + 1])
node->bv[(2 * j) + 1] = node->children[i]->bv[(2 * j) + 1];
}
@@ -523,7 +518,7 @@ static void verify_tree(BVHTree *tree)
{
int i, j, check = 0;
- // check the pointer list
+ /* check the pointer list */
for (i = 0; i < tree->totleaf; i++)
{
if (tree->nodes[i]->parent == NULL) {
@@ -543,7 +538,7 @@ static void verify_tree(BVHTree *tree)
}
}
- // check the leaf list
+ /* check the leaf list */
for (i = 0; i < tree->totleaf; i++)
{
if (tree->nodearray[i].parent == NULL) {
@@ -567,8 +562,8 @@ static void verify_tree(BVHTree *tree)
}
#endif
-//Helper data and structures to build a min-leaf generalized implicit tree
-//This code can be easily reduced (basicly this is only method to calculate pow(k, n) in O(1).. and stuff like that)
+/* Helper data and structures to build a min-leaf generalized implicit tree
+ * This code can be easily reduced (basicly this is only method to calculate pow(k, n) in O(1).. and stuff like that) */
typedef struct BVHBuildHelper {
int tree_type; /* */
int totleafs; /* */
@@ -589,7 +584,7 @@ static void build_implicit_tree_helper(BVHTree *tree, BVHBuildHelper *data)
data->totleafs = tree->totleaf;
data->tree_type = tree->tree_type;
- //Calculate the smallest tree_type^n such that tree_type^n >= num_leafs
+ /* Calculate the smallest tree_type^n such that tree_type^n >= num_leafs */
for (data->leafs_per_child[0] = 1;
data->leafs_per_child[0] < data->totleafs;
data->leafs_per_child[0] *= data->tree_type)
@@ -599,7 +594,7 @@ static void build_implicit_tree_helper(BVHTree *tree, BVHBuildHelper *data)
data->branches_on_level[0] = 1;
- //We could stop the loop first (but I am lazy to find out when)
+ /* We could stop the loop first (but I am lazy to find out when) */
for (depth = 1; depth < 32; depth++) {
data->branches_on_level[depth] = data->branches_on_level[depth - 1] * data->tree_type;
data->leafs_per_child[depth] = data->leafs_per_child[depth - 1] / data->tree_type;
@@ -653,7 +648,7 @@ static int implicit_leafs_index(BVHBuildHelper *data, int depth, int child_index
// This functions returns the number of branches needed to have the requested number of leafs.
static int implicit_needed_branches(int tree_type, int leafs)
{
- return MAX2(1, (leafs + tree_type - 3) / (tree_type - 1) );
+ return maxi(1, (leafs + tree_type - 3) / (tree_type - 1) );
}
/*
@@ -692,7 +687,7 @@ static void split_leafs(BVHNode **leafs_array, int *nth, int partitions, int spl
* The reason is that we can build level N+1 from level N without any data dependencies.. thus it allows
* to use multithread building.
*
- * To archieve this is necessary to find how much leafs are accessible from a certain branch, BVHBuildHelper
+ * To archive this is necessary to find how much leafs are accessible from a certain branch, BVHBuildHelper
* implicit_needed_branches and implicit_leafs_index are auxiliary functions to solve that "optimal-split".
*/
static void non_recursive_bvh_div_nodes(BVHTree *tree, BVHNode *branches_array, BVHNode **leafs_array, int num_leafs)
@@ -700,18 +695,18 @@ static void non_recursive_bvh_div_nodes(BVHTree *tree, BVHNode *branches_array,
int i;
const int tree_type = tree->tree_type;
- const int tree_offset = 2 - tree->tree_type; //this value is 0 (on binary trees) and negative on the others
+ const int tree_offset = 2 - tree->tree_type; /* this value is 0 (on binary trees) and negative on the others */
const int num_branches = implicit_needed_branches(tree_type, num_leafs);
BVHBuildHelper data;
int depth;
- // set parent from root node to NULL
+ /* set parent from root node to NULL */
BVHNode *tmp = branches_array + 0;
tmp->parent = NULL;
- //Most of bvhtree code relies on 1-leaf trees having at least one branch
- //We handle that special case here
+ /* Most of bvhtree code relies on 1-leaf trees having at least one branch
+ * We handle that special case here */
if (num_leafs == 1) {
BVHNode *root = branches_array + 0;
refit_kdop_hull(tree, root, 0, num_leafs);
@@ -722,17 +717,17 @@ static void non_recursive_bvh_div_nodes(BVHTree *tree, BVHNode *branches_array,
return;
}
- branches_array--; //Implicit trees use 1-based indexs
-
+ branches_array--; /* Implicit trees use 1-based indexs */
+
build_implicit_tree_helper(tree, &data);
- //Loop tree levels (log N) loops
+ /* Loop tree levels (log N) loops */
for (i = 1, depth = 1; i <= num_branches; i = i * tree_type + tree_offset, depth++) {
const int first_of_next_level = i * tree_type + tree_offset;
- const int end_j = MIN2(first_of_next_level, num_branches + 1); //index of last branch on this level
+ const int end_j = MIN2(first_of_next_level, num_branches + 1); /* index of last branch on this level */
int j;
- //Loop all branches on this level
+ /* Loop all branches on this level */
#pragma omp parallel for private(j) schedule(static)
for (j = i; j < end_j; j++) {
int k;
@@ -744,34 +739,34 @@ static void non_recursive_bvh_div_nodes(BVHTree *tree, BVHNode *branches_array,
int parent_leafs_begin = implicit_leafs_index(&data, depth, parent_level_index);
int parent_leafs_end = implicit_leafs_index(&data, depth, parent_level_index + 1);
- //This calculates the bounding box of this branch
- //and chooses the largest axis as the axis to divide leafs
+ /* This calculates the bounding box of this branch
+ * and chooses the largest axis as the axis to divide leafs */
refit_kdop_hull(tree, parent, parent_leafs_begin, parent_leafs_end);
split_axis = get_largest_axis(parent->bv);
- //Save split axis (this can be used on raytracing to speedup the query time)
+ /* Save split axis (this can be used on raytracing to speedup the query time) */
parent->main_axis = split_axis / 2;
- //Split the childs along the split_axis, note: its not needed to sort the whole leafs array
- //Only to assure that the elements are partioned on a way that each child takes the elements
- //it would take in case the whole array was sorted.
- //Split_leafs takes care of that "sort" problem.
+ /* Split the childs along the split_axis, note: its not needed to sort the whole leafs array
+ * Only to assure that the elements are partitioned on a way that each child takes the elements
+ * it would take in case the whole array was sorted.
+ * Split_leafs takes care of that "sort" problem. */
nth_positions[0] = parent_leafs_begin;
nth_positions[tree_type] = parent_leafs_end;
for (k = 1; k < tree_type; k++) {
int child_index = j * tree_type + tree_offset + k;
- int child_level_index = child_index - first_of_next_level; //child level index
+ int child_level_index = child_index - first_of_next_level; /* child level index */
nth_positions[k] = implicit_leafs_index(&data, depth + 1, child_level_index);
}
split_leafs(leafs_array, nth_positions, tree_type, split_axis);
- //Setup children and totnode counters
- //Not really needed but currently most of BVH code relies on having an explicit children structure
+ /* Setup children and totnode counters
+ * Not really needed but currently most of BVH code relies on having an explicit children structure */
for (k = 0; k < tree_type; k++) {
int child_index = j * tree_type + tree_offset + k;
- int child_level_index = child_index - first_of_next_level; //child level index
+ int child_level_index = child_index - first_of_next_level; /* child level index */
int child_leafs_begin = implicit_leafs_index(&data, depth + 1, child_level_index);
int child_leafs_end = implicit_leafs_index(&data, depth + 1, child_level_index + 1);
@@ -803,20 +798,20 @@ BVHTree *BLI_bvhtree_new(int maxsize, float epsilon, char tree_type, char axis)
BVHTree *tree;
int numnodes, i;
- // theres not support for trees below binary-trees :P
+ /* theres not support for trees below binary-trees :P */
if (tree_type < 2)
return NULL;
-
+
if (tree_type > MAX_TREETYPE)
return NULL;
tree = (BVHTree *)MEM_callocN(sizeof(BVHTree), "BVHTree");
- //tree epsilon must be >= FLT_EPSILON
- //so that tangent rays can still hit a bounding volume..
- //this bug would show up when casting a ray aligned with a kdop-axis and with an edge of 2 faces
+ /* tree epsilon must be >= FLT_EPSILON
+ * so that tangent rays can still hit a bounding volume..
+ * this bug would show up when casting a ray aligned with a kdop-axis and with an edge of 2 faces */
epsilon = MAX2(FLT_EPSILON, epsilon);
-
+
if (tree) {
tree->epsilon = epsilon;
tree->tree_type = tree_type;
@@ -910,59 +905,59 @@ void BLI_bvhtree_balance(BVHTree *tree)
BVHNode *branches_array = tree->nodearray + tree->totleaf;
BVHNode **leafs_array = tree->nodes;
- //This function should only be called once (some big bug goes here if its being called more than once per tree)
+ /* This function should only be called once (some big bug goes here if its being called more than once per tree) */
assert(tree->totbranch == 0);
- //Build the implicit tree
+ /* Build the implicit tree */
non_recursive_bvh_div_nodes(tree, branches_array, leafs_array, tree->totleaf);
- //current code expects the branches to be linked to the nodes array
- //we perform that linkage here
+ /*current code expects the branches to be linked to the nodes array
+ *we perform that linkage here */
tree->totbranch = implicit_needed_branches(tree->tree_type, tree->totleaf);
for (i = 0; i < tree->totbranch; i++)
tree->nodes[tree->totleaf + i] = branches_array + i;
build_skip_links(tree, tree->nodes[tree->totleaf], NULL, NULL);
- //bvhtree_info(tree);
+ /* bvhtree_info(tree); */
}
int BLI_bvhtree_insert(BVHTree *tree, int index, const float *co, int numpoints)
{
int i;
BVHNode *node = NULL;
-
- // insert should only possible as long as tree->totbranch is 0
+
+ /* insert should only possible as long as tree->totbranch is 0 */
if (tree->totbranch > 0)
return 0;
-
+
if (tree->totleaf + 1 >= MEM_allocN_len(tree->nodes) / sizeof(*(tree->nodes)))
return 0;
-
- // TODO check if have enough nodes in array
-
+
+ /* TODO check if have enough nodes in array */
+
node = tree->nodes[tree->totleaf] = &(tree->nodearray[tree->totleaf]);
tree->totleaf++;
-
+
create_kdop_hull(tree, node, co, numpoints, 0);
node->index = index;
-
- // inflate the bv with some epsilon
+
+ /* inflate the bv with some epsilon */
for (i = tree->start_axis; i < tree->stop_axis; i++) {
- node->bv[(2 * i)] -= tree->epsilon; // minimum
- node->bv[(2 * i) + 1] += tree->epsilon; // maximum
+ node->bv[(2 * i)] -= tree->epsilon; /* minimum */
+ node->bv[(2 * i) + 1] += tree->epsilon; /* maximum */
}
return 1;
}
-// call before BLI_bvhtree_update_tree()
+/* call before BLI_bvhtree_update_tree() */
int BLI_bvhtree_update_node(BVHTree *tree, int index, const float *co, const float *co_moving, int numpoints)
{
int i;
BVHNode *node = NULL;
- // check if index exists
+ /* check if index exists */
if (index > tree->totleaf)
return 0;
@@ -982,12 +977,12 @@ int BLI_bvhtree_update_node(BVHTree *tree, int index, const float *co, const flo
return 1;
}
-// call BLI_bvhtree_update_node() first for every node/point/triangle
+/* call BLI_bvhtree_update_node() first for every node/point/triangle */
void BLI_bvhtree_update_tree(BVHTree *tree)
{
- //Update bottom=>top
- //TRICKY: the way we build the tree all the childs have an index greater than the parent
- //This allows us todo a bottom up update by starting on the biger numbered branch
+ /* Update bottom=>top
+ * TRICKY: the way we build the tree all the childs have an index greater than the parent
+ * This allows us todo a bottom up update by starting on the bigger numbered branch */
BVHNode **root = tree->nodes + tree->totleaf;
BVHNode **index = tree->nodes + tree->totleaf + tree->totbranch - 1;
@@ -1004,8 +999,8 @@ float BLI_bvhtree_getepsilon(BVHTree *tree)
/*
* BLI_bvhtree_overlap
- */
-// overlap - is it possbile for 2 bv's to collide ?
+ *
+ * overlap - is it possible for 2 bv's to collide ? */
static int tree_overlap(BVHNode *node1, BVHNode *node2, int start_axis, int stop_axis)
{
float *bv1 = node1->bv;
@@ -1016,31 +1011,31 @@ static int tree_overlap(BVHNode *node1, BVHNode *node2, int start_axis, int stop
bv1 += start_axis << 1;
bv2 += start_axis << 1;
- // test all axis if min + max overlap
+ /* test all axis if min + max overlap */
for (; bv1 != bv1_end; bv1 += 2, bv2 += 2) {
- if ((*(bv1) > *(bv2 + 1)) || (*(bv2) > *(bv1 + 1)))
+ if ((*(bv1) > *(bv2 + 1)) || (*(bv2) > *(bv1 + 1)))
return 0;
}
-
+
return 1;
}
static void traverse(BVHOverlapData *data, BVHNode *node1, BVHNode *node2)
{
int j;
-
+
if (tree_overlap(node1, node2, data->start_axis, data->stop_axis)) {
- // check if node1 is a leaf
+ /* check if node1 is a leaf */
if (!node1->totnode) {
- // check if node2 is a leaf
+ /* check if node2 is a leaf */
if (!node2->totnode) {
-
+
if (node1 == node2) {
return;
}
-
+
if (data->i >= data->max_overlap) {
- // try to make alloc'ed memory bigger
+ /* try to make alloc'ed memory bigger */
data->overlap = realloc(data->overlap, sizeof(BVHTreeOverlap) * data->max_overlap * 2);
if (!data->overlap) {
@@ -1172,8 +1167,6 @@ typedef struct NodeDistance {
} NodeDistance;
-#define NodeDistance_priority(a, b) ( (a).dist < (b).dist)
-
// TODO: use a priority queue to reduce the number of nodes looked on
static void dfs_find_nearest_dfs(BVHNearestData *data, BVHNode *node)
{
@@ -1216,20 +1209,25 @@ static void dfs_find_nearest_begin(BVHNearestData *data, BVHNode *node)
#if 0
+
+#define DEFAULT_FIND_NEAREST_HEAP_SIZE 1024
+
+#define NodeDistance_priority(a, b) ( (a).dist < (b).dist)
+
static void NodeDistance_push_heap(NodeDistance *heap, int heap_size)
PUSH_HEAP_BODY(NodeDistance, NodeDistance_priority, heap, heap_size)
static void NodeDistance_pop_heap(NodeDistance *heap, int heap_size)
POP_HEAP_BODY(NodeDistance, NodeDistance_priority, heap, heap_size)
-//NN function that uses an heap.. this functions leads to an optimal number of min-distance
-//but for normal tri-faces and BV 6-dop.. a simple dfs with local heuristics (as implemented
-//in source/blender/blenkernel/intern/shrinkwrap.c) works faster.
-//
-//It may make sense to use this function if the callback queries are very slow.. or if its impossible
-//to get a nice heuristic
-//
-//this function uses "malloc/free" instead of the MEM_* because it intends to be openmp safe
+/* NN function that uses an heap.. this functions leads to an optimal number of min-distance
+ * but for normal tri-faces and BV 6-dop.. a simple dfs with local heuristics (as implemented
+ * in source/blender/blenkernel/intern/shrinkwrap.c) works faster.
+ *
+ * It may make sense to use this function if the callback queries are very slow.. or if its impossible
+ * to get a nice heuristic
+ *
+ * this function uses "malloc/free" instead of the MEM_* because it intends to be openmp safe */
static void bfs_find_nearest(BVHNearestData *data, BVHNode *node)
{
int i;
@@ -1327,11 +1325,11 @@ int BLI_bvhtree_find_nearest(BVHTree *tree, const float co[3], BVHTreeNearest *n
data.nearest.dist = FLT_MAX;
}
- //dfs search
+ /* dfs search */
if (root)
dfs_find_nearest_begin(&data, root);
- //copy back results
+ /* copy back results */
if (nearest) {
memcpy(nearest, &data.nearest, sizeof(*nearest));
}
@@ -1347,8 +1345,8 @@ int BLI_bvhtree_find_nearest(BVHTree *tree, const float co[3], BVHTreeNearest *n
*/
-//Determines the distance that the ray must travel to hit the bounding volume of the given node
-static float ray_nearest_hit(BVHRayCastData *data, float *bv)
+/* Determines the distance that the ray must travel to hit the bounding volume of the given node */
+static float ray_nearest_hit(BVHRayCastData *data, const float *bv)
{
int i;
@@ -1382,11 +1380,11 @@ static float ray_nearest_hit(BVHRayCastData *data, float *bv)
return low;
}
-//Determines the distance that the ray must travel to hit the bounding volume of the given node
-//Based on Tactical Optimization of Ray/Box Intersection, by Graham Fyffe
-//[http://tog.acm.org/resources/RTNews/html/rtnv21n1.html#art9]
-//
-//TODO this doens't has data->ray.radius in consideration
+/* Determines the distance that the ray must travel to hit the bounding volume of the given node
+ * Based on Tactical Optimization of Ray/Box Intersection, by Graham Fyffe
+ * [http://tog.acm.org/resources/RTNews/html/rtnv21n1.html#art9]
+ *
+ * TODO this doens't has data->ray.radius in consideration */
static float fast_ray_nearest_hit(const BVHRayCastData *data, const BVHNode *node)
{
const float *bv = node->bv;
@@ -1413,8 +1411,8 @@ static void dfs_raycast(BVHRayCastData *data, BVHNode *node)
{
int i;
- //ray-bv is really fast.. and simple tests revealed its worth to test it
- //before calling the ray-primitive functions
+ /* ray-bv is really fast.. and simple tests revealed its worth to test it
+ * before calling the ray-primitive functions */
/* XXX: temporary solution for particles until fast_ray_nearest_hit supports ray.radius */
float dist = (data->ray.radius > 0.0f) ? ray_nearest_hit(data, node->bv) : fast_ray_nearest_hit(data, node);
if (dist >= data->hit.dist) return;
@@ -1430,7 +1428,7 @@ static void dfs_raycast(BVHRayCastData *data, BVHNode *node)
}
}
else {
- //pick loop direction to dive into the tree (based on ray direction and split axis)
+ /* pick loop direction to dive into the tree (based on ray direction and split axis) */
if (data->ray_dot_axis[(int)node->main_axis] > 0.0f) {
for (i = 0; i != node->totnode; i++) {
dfs_raycast(data, node->children[i]);
@@ -1526,7 +1524,7 @@ int BLI_bvhtree_ray_cast(BVHTree *tree, const float co[3], const float dir[3], f
return data.hit.index;
}
-float BLI_bvhtree_bb_raycast(float *bv, const float light_start[3], const float light_end[3], float pos[3])
+float BLI_bvhtree_bb_raycast(const float *bv, const float light_start[3], const float light_end[3], float pos[3])
{
BVHRayCastData data;
float dist = 0.0;
diff --git a/source/blender/blenlib/intern/BLI_memarena.c b/source/blender/blenlib/intern/BLI_memarena.c
index 8c9993afee8..0ac6209fc95 100644
--- a/source/blender/blenlib/intern/BLI_memarena.c
+++ b/source/blender/blenlib/intern/BLI_memarena.c
@@ -46,7 +46,7 @@ struct MemArena {
LinkNode *bufs;
};
-MemArena *BLI_memarena_new(int bufsize, const char *name)
+MemArena *BLI_memarena_new(const int bufsize, const char *name)
{
MemArena *ma = MEM_callocN(sizeof(*ma), "memarena");
ma->bufsize = bufsize;
@@ -66,7 +66,7 @@ void BLI_memarena_use_malloc(MemArena *ma)
ma->use_calloc = 0;
}
-void BLI_memarena_use_align(struct MemArena *ma, int align)
+void BLI_memarena_use_align(struct MemArena *ma, const int align)
{
/* align should be a power of two */
ma->align = align;
diff --git a/source/blender/blenlib/intern/BLI_mempool.c b/source/blender/blenlib/intern/BLI_mempool.c
index c7e610edd9e..d98e63d88dd 100644
--- a/source/blender/blenlib/intern/BLI_mempool.c
+++ b/source/blender/blenlib/intern/BLI_mempool.c
@@ -45,7 +45,7 @@
#include <string.h>
#include <stdlib.h>
-/* note: copied from BKE_utildefines.h, don't use here because we're in BLI */
+/* note: copied from BLO_blend_defs.h, don't use here because we're in BLI */
#ifdef __BIG_ENDIAN__
/* Big Endian */
# define MAKE_ID(a, b, c, d) ( (int)(a) << 24 | (int)(b) << 16 | (c) << 8 | (d) )
diff --git a/source/blender/blenlib/intern/DLRB_tree.c b/source/blender/blenlib/intern/DLRB_tree.c
index bed5750ad44..858eef0b2df 100644
--- a/source/blender/blenlib/intern/DLRB_tree.c
+++ b/source/blender/blenlib/intern/DLRB_tree.c
@@ -134,12 +134,12 @@ DLRBT_Node *BLI_dlrbTree_search(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_cb, vo
{
DLRBT_Node *node = (tree) ? tree->root : NULL;
short found = 0;
-
+
/* check that there is a comparator to use */
- // TODO: if no comparator is supplied, try using the one supplied with the tree...
+ /* TODO: if no comparator is supplied, try using the one supplied with the tree... */
if (cmp_cb == NULL)
return NULL;
-
+
/* iteratively perform this search */
while (node && found == 0) {
/* check if traverse further or not
@@ -177,7 +177,7 @@ DLRBT_Node *BLI_dlrbTree_search_exact(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_
short found = 0;
/* check that there is a comparator to use */
- // TODO: if no comparator is supplied, try using the one supplied with the tree...
+ /* TODO: if no comparator is supplied, try using the one supplied with the tree... */
if (cmp_cb == NULL)
return NULL;
@@ -217,7 +217,7 @@ DLRBT_Node *BLI_dlrbTree_search_prev(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_c
DLRBT_Node *node;
/* check that there is a comparator to use */
- // TODO: if no comparator is supplied, try using the one supplied with the tree...
+ /* TODO: if no comparator is supplied, try using the one supplied with the tree... */
if (cmp_cb == NULL)
return NULL;
@@ -230,7 +230,7 @@ DLRBT_Node *BLI_dlrbTree_search_prev(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_c
return node;
/* return the previous node otherwise */
- // NOTE: what happens if there is no previous node?
+ /* NOTE: what happens if there is no previous node? */
return node->prev;
}
@@ -242,9 +242,9 @@ DLRBT_Node *BLI_dlrbTree_search_prev(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_c
DLRBT_Node *BLI_dlrbTree_search_next(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_cb, void *search_data)
{
DLRBT_Node *node;
-
+
/* check that there is a comparator to use */
- // TODO: if no comparator is supplied, try using the one supplied with the tree...
+ /* TODO: if no comparator is supplied, try using the one supplied with the tree... */
if (cmp_cb == NULL)
return NULL;
@@ -257,7 +257,7 @@ DLRBT_Node *BLI_dlrbTree_search_next(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_c
return node;
/* return the previous node otherwise */
- // NOTE: what happens if there is no previous node?
+ /* NOTE: what happens if there is no previous node? */
return node->next;
}
@@ -330,7 +330,7 @@ static void rotate_left(DLRBT_Tree *tree, DLRBT_Node *root)
root_slot = &root->parent->right;
}
else
- root_slot = ((DLRBT_Node **)&tree->root); //&((DLRBT_Node*)tree->root);
+ root_slot = ((DLRBT_Node **)&tree->root); /* &((DLRBT_Node *)tree->root); */
/* - pivot's left child becomes root's right child
* - root now becomes pivot's left child
@@ -364,7 +364,7 @@ static void rotate_right(DLRBT_Tree *tree, DLRBT_Node *root)
root_slot = &root->parent->right;
}
else
- root_slot = ((DLRBT_Node **)&tree->root); //&((DLRBT_Node*)tree->root);
+ root_slot = ((DLRBT_Node **)&tree->root); /* &((DLRBT_Node *)tree->root); */
/* - pivot's right child becomes root's left child
* - root now becomes pivot's right child
@@ -423,7 +423,7 @@ static void insert_check_2(DLRBT_Tree *tree, DLRBT_Node *node)
/* - make the grandparent red, so that we maintain alternating red/black property
* (it must exist, so no need to check for NULL here),
* - as the grandparent may now cause inconsistencies with the rest of the tree,
- * we must flush up the tree and perform checks/rebalancing/repainting, using the
+ * we must flush up the tree and perform checks/re-balancing/re-painting, using the
* grandparent as the node of interest
*/
gp->tree_col = DLRBT_RED;
@@ -512,18 +512,18 @@ DLRBT_Node *BLI_dlrbTree_add(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_cb,
/* sanity checks */
if (tree == NULL)
return NULL;
-
- // TODO: if no comparator is supplied, try using the one supplied with the tree...
+
+ /* TODO: if no comparator is supplied, try using the one supplied with the tree... */
if (cmp_cb == NULL)
return NULL;
- // TODO: if no allocator is supplied, try using the one supplied with the tree...
+ /* TODO: if no allocator is supplied, try using the one supplied with the tree... */
if (new_cb == NULL)
return NULL;
- // TODO: if no updater is supplied, try using the one supplied with the tree...
-
+ /* TODO: if no updater is supplied, try using the one supplied with the tree... */
+
/* try to find the nearest node to this one */
parNode = BLI_dlrbTree_search(tree, cmp_cb, data);
-
+
/* add new node to the BST in the 'standard way' as appropriate
* NOTE: we do not support duplicates in our tree...
*/
@@ -586,6 +586,6 @@ DLRBT_Node *BLI_dlrbTree_add(DLRBT_Tree *tree, DLRBT_Comparator_FP cmp_cb,
/* *********************************************** */
/* Remove */
-// TODO: this hasn't been coded yet, since this functionality was not needed by the author
+/* TODO: this hasn't been coded yet, since this functionality was not needed by the author */
/* *********************************************** */
diff --git a/source/blender/blenlib/intern/boxpack2d.c b/source/blender/blenlib/intern/boxpack2d.c
index 5da719cd500..1c70a612c4f 100644
--- a/source/blender/blenlib/intern/boxpack2d.c
+++ b/source/blender/blenlib/intern/boxpack2d.c
@@ -73,7 +73,9 @@ typedef struct BoxVert {
((b)->v[BR]->x = (b)->v[TR]->x)
#define UPDATE_V34Y(b) ((b)->v[TL]->y = (b)->v[TR]->y); \
((b)->v[BR]->y = (b)->v[BL]->y)
-#define UPDATE_V34(b) UPDATE_V34X(b); UPDATE_V34Y(b)
+
+/* UNUSED */
+// #define UPDATE_V34(b) UPDATE_V34X(b); UPDATE_V34Y(b)
#define SET_BOXLEFT(b, f) (b)->v[TR]->x = f + (b)->w; \
(b)->v[BL]->x = f; \
@@ -93,8 +95,8 @@ typedef struct BoxVert {
BOXRIGHT(b1) - EPSILON <= BOXLEFT(b2) || \
BOXTOP(b1) - EPSILON <= BOXBOTTOM(b2))
-#define MIN2(x, y) ((x) < (y) ? (x) : (y))
-#define MAX2(x, y) ((x) > (y) ? (x) : (y))
+/* compiler should inline */
+static float maxf(const float a, const float b) { return b > a ? b : a; }
#if 0
#define BOXDEBUG(b) \
@@ -131,8 +133,8 @@ static int vertex_sort(const void *p1, const void *p2)
v1 = vertarray + ((int *)p1)[0];
v2 = vertarray + ((int *)p2)[0];
- a1 = MAX2(v1->x + box_width, v1->y + box_height);
- a2 = MAX2(v2->x + box_width, v2->y + box_height);
+ a1 = maxf(v1->x + box_width, v1->y + box_height);
+ a2 = maxf(v2->x + box_width, v2->y + box_height);
/* sort largest to smallest */
if (a1 > a2) return 1;
@@ -312,8 +314,8 @@ void BLI_box_pack_2D(BoxPack *boxarray, const int len, float *tot_width, float *
if (!isect) {
/* maintain the total width and height */
- (*tot_width) = MAX2(BOXRIGHT(box), (*tot_width));
- (*tot_height) = MAX2(BOXTOP(box), (*tot_height));
+ (*tot_width) = maxf(BOXRIGHT(box), (*tot_width));
+ (*tot_height) = maxf(BOXTOP(box), (*tot_height));
/* Place the box */
vert->free &= ~quad_flags[j];
diff --git a/source/blender/blenlib/intern/bpath.c b/source/blender/blenlib/intern/bpath.c
index f458c158fb2..f72b5882f22 100644
--- a/source/blender/blenlib/intern/bpath.c
+++ b/source/blender/blenlib/intern/bpath.c
@@ -73,11 +73,11 @@
#include "BLI_bpath.h"
#include "BLI_utildefines.h"
+#include "BKE_font.h"
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_report.h"
#include "BKE_sequencer.h"
-#include "BKE_utildefines.h"
#include "BKE_image.h" /* so we can check the image's type */
static int checkMissingFiles_visit_cb(void *userdata, char *UNUSED(path_dst), const char *path_src)
@@ -112,13 +112,13 @@ static int makeFilesRelative_visit_cb(void *userdata, char *path_dst, const char
data->count_tot++;
- if (strncmp(path_src, "//", 2) == 0) {
+ if (BLI_path_is_rel(path_src)) {
return FALSE; /* already relative */
}
else {
strcpy(path_dst, path_src);
BLI_path_rel(path_dst, data->basedir);
- if (strncmp(path_dst, "//", 2) == 0) {
+ if (BLI_path_is_rel(path_dst)) {
data->count_changed++;
}
else {
@@ -154,13 +154,13 @@ static int makeFilesAbsolute_visit_cb(void *userdata, char *path_dst, const char
data->count_tot++;
- if (strncmp(path_src, "//", 2) != 0) {
+ if (BLI_path_is_rel(path_src) == FALSE) {
return FALSE; /* already absolute */
}
else {
strcpy(path_dst, path_src);
BLI_path_abs(path_dst, data->basedir);
- if (strncmp(path_dst, "//", 2) != 0) {
+ if (BLI_path_is_rel(path_dst) == FALSE) {
data->count_changed++;
}
else {
@@ -191,12 +191,14 @@ void BLI_bpath_absolute_convert(Main *bmain, const char *basedir, ReportList *re
data.count_tot, data.count_changed, data.count_failed);
}
-/* find this file recursively, use the biggest file so thumbnails don't get used by mistake
- * - dir: subdir to search
- * - filename: set this filename
- * - filesize: filesize for the file
+/**
+ * find this file recursively, use the biggest file so thumbnails don't get used by mistake
+ * \param filename_new: the path will be copied here, caller must initialize as empyu string.
+ * \param dirname: subdir to search
+ * \param filename: set this filename
+ * \param filesize: filesize for the file
*
- * return found: 1/0.
+ * \returns found: 1/0.
*/
#define MAX_RECUR 16
static int findFileRecursive(char *filename_new,
@@ -213,8 +215,6 @@ static int findFileRecursive(char *filename_new,
int size;
int found = FALSE;
- filename_new[0] = '\0';
-
dir = opendir(dirname);
if (dir == NULL)
@@ -271,6 +271,8 @@ static int findMissingFiles_visit_cb(void *userdata, char *path_dst, const char
int recur_depth = 0;
int found;
+ filename_new[0] = '\0';
+
found = findFileRecursive(filename_new,
data->searchdir, BLI_path_basename((char *)path_src),
&filesize, &recur_depth);
@@ -482,9 +484,9 @@ void BLI_bpath_traverse_id(Main *bmain, ID *id, BPathVisitor visit_cb, const int
break;
case ID_VF:
{
- VFont *vf = (VFont *)id;
- if (vf->packedfile == NULL || (flag & BLI_BPATH_TRAVERSE_SKIP_PACKED) == 0) {
- if (strcmp(vf->name, FO_BUILTIN_NAME) != 0) {
+ VFont *vfont = (VFont *)id;
+ if (vfont->packedfile == NULL || (flag & BLI_BPATH_TRAVERSE_SKIP_PACKED) == 0) {
+ if (BKE_vfont_is_builtin(vfont) == FALSE) {
rewrite_path_fixed(((VFont *)id)->name, visit_cb, absbase, bpath_user_data);
}
}
@@ -542,8 +544,8 @@ void BLI_bpath_traverse_id(Main *bmain, ID *id, BPathVisitor visit_cb, const int
case ID_ME:
{
Mesh *me = (Mesh *)id;
- if (me->fdata.external) {
- rewrite_path_fixed(me->fdata.external->filename, visit_cb, absbase, bpath_user_data);
+ if (me->ldata.external) {
+ rewrite_path_fixed(me->ldata.external->filename, visit_cb, absbase, bpath_user_data);
}
}
break;
@@ -593,7 +595,7 @@ int BLI_bpath_relocate_visitor(void *pathbase_v, char *path_dst, const char *pat
const char *base_new = ((char **)pathbase_v)[0];
const char *base_old = ((char **)pathbase_v)[1];
- if (strncmp(base_old, "//", 2) == 0) {
+ if (BLI_path_is_rel(base_old)) {
printf("%s: error, old base path '%s' is not absolute.\n",
__func__, base_old);
return FALSE;
diff --git a/source/blender/blenlib/intern/endian_switch.c b/source/blender/blenlib/intern/endian_switch.c
new file mode 100644
index 00000000000..b9b18136863
--- /dev/null
+++ b/source/blender/blenlib/intern/endian_switch.c
@@ -0,0 +1,118 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/blenlib/intern/endian_switch.c
+ * \ingroup bli
+ */
+
+#include "BLO_sys_types.h"
+#include "BLI_utildefines.h"
+#include "BLI_endian_switch.h"
+
+void BLI_endian_switch_int16_array(short *val, const int size)
+{
+ if (size > 0) {
+ int i = size;
+ val = val + (size - 1);
+ while (i--) {
+ BLI_endian_switch_int16(val--);
+ }
+ }
+}
+
+void BLI_endian_switch_uint16_array(unsigned short *val, const int size)
+{
+ if (size > 0) {
+ int i = size;
+ val = val + (size - 1);
+ while (i--) {
+ BLI_endian_switch_uint16(val--);
+ }
+ }
+}
+
+void BLI_endian_switch_int32_array(int *val, const int size)
+{
+ if (size > 0) {
+ int i = size;
+ val = val + (size - 1);
+ while (i--) {
+ BLI_endian_switch_int32(val--);
+ }
+ }
+}
+
+void BLI_endian_switch_uint32_array(unsigned int *val, const int size)
+{
+ if (size > 0) {
+ int i = size;
+ val = val + (size - 1);
+ while (i--) {
+ BLI_endian_switch_uint32(val--);
+ }
+ }
+}
+
+void BLI_endian_switch_float_array(float *val, const int size)
+{
+ if (size > 0) {
+ int i = size;
+ val = val + (size - 1);
+ while (i--) {
+ BLI_endian_switch_float(val--);
+ }
+ }
+}
+
+void BLI_endian_switch_int64_array(int64_t *val, const int size)
+{
+ if (size > 0) {
+ int i = size;
+ val = val + (size - 1);
+ while (i--) {
+ BLI_endian_switch_int64(val--);
+ }
+ }
+}
+
+void BLI_endian_switch_uint64_array(uint64_t *val, const int size)
+{
+ if (size > 0) {
+ int i = size;
+ val = val + (size - 1);
+ while (i--) {
+ BLI_endian_switch_uint64(val--);
+ }
+ }
+}
+
+
+void BLI_endian_switch_double_array(double *val, const int size)
+{
+ if (size > 0) {
+ int i = size;
+ val = val + (size - 1);
+ while (i--) {
+ BLI_endian_switch_double(val--);
+ }
+ }
+}
diff --git a/source/blender/blenlib/intern/fileops.c b/source/blender/blenlib/intern/fileops.c
index 5f564f71646..883cdfde426 100644
--- a/source/blender/blenlib/intern/fileops.c
+++ b/source/blender/blenlib/intern/fileops.c
@@ -42,6 +42,9 @@
#include "zlib.h"
#ifdef WIN32
+#ifdef __MINGW32__
+#include <ctype.h>
+#endif
#include <io.h>
# include "BLI_winstuff.h"
# include "BLI_callbacks.h"
@@ -60,8 +63,6 @@
#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
-#include "BKE_utildefines.h"
-
#include "BLO_sys_types.h" // for intptr_t support
@@ -139,6 +140,8 @@ char *BLI_file_ungzip_to_mem(const char *from_file, int *size_r)
}
else break;
}
+
+ gzclose(gzfile);
if (size == 0) {
MEM_freeN(mem);
@@ -209,6 +212,22 @@ FILE *BLI_fopen(const char *filename, const char *mode)
return ufopen(filename, mode);
}
+void BLI_get_short_name(char short_name[256], const char *filename)
+{
+ wchar_t short_name_16[256];
+ int i = 0;
+
+ UTF16_ENCODE(filename);
+
+ GetShortPathNameW(filename_16, short_name_16, 256);
+
+ for (i = 0; i < 256; i++) {
+ short_name[i] = (char)short_name_16[i];
+ }
+
+ UTF16_UN_ENCODE(filename);
+}
+
void *BLI_gzopen(const char *filename, const char *mode)
{
gzFile gzfile;
@@ -217,25 +236,15 @@ void *BLI_gzopen(const char *filename, const char *mode)
return 0;
}
else {
- wchar_t short_name_16[256];
char short_name[256];
- int i = 0;
/* xxx Creates file before transcribing the path */
if (mode[0] == 'w')
fclose(ufopen(filename, "a"));
- UTF16_ENCODE(filename);
-
- GetShortPathNameW(filename_16, short_name_16, 256);
-
- for (i = 0; i < 256; i++) {
- short_name[i] = (char)short_name_16[i];
- }
+ BLI_get_short_name(short_name, filename);
gzfile = gzopen(short_name, mode);
-
- UTF16_UN_ENCODE(filename);
}
return gzfile;
@@ -274,12 +283,12 @@ int BLI_move(const char *file, const char *to)
{
int err;
- // windows doesn't support moveing to a directory
- // it has to be 'mv filename filename' and not
- // 'mv filename destdir'
+ /* windows doesn't support moveing to a directory
+ * it has to be 'mv filename filename' and not
+ * 'mv filename destdir' */
BLI_strncpy(str, to, sizeof(str));
- // points 'to' to a directory ?
+ /* points 'to' to a directory ? */
if (BLI_last_slash(str) == (str + strlen(str) - 1)) {
if (BLI_last_slash(file) != NULL) {
strcat(str, BLI_last_slash(file) + 1);
@@ -305,12 +314,12 @@ int BLI_copy(const char *file, const char *to)
{
int err;
- // windows doesn't support copying to a directory
- // it has to be 'cp filename filename' and not
- // 'cp filename destdir'
+ /* windows doesn't support copying to a directory
+ * it has to be 'cp filename filename' and not
+ * 'cp filename destdir' */
BLI_strncpy(str, to, sizeof(str));
- // points 'to' to a directory ?
+ /* points 'to' to a directory ? */
if (BLI_last_slash(str) == (str + strlen(str) - 1)) {
if (BLI_last_slash(file) != NULL) {
strcat(str, BLI_last_slash(file) + 1);
@@ -343,7 +352,7 @@ void BLI_dir_create_recursive(const char *dirname)
{
char *lslash;
char tmp[MAXPATHLEN];
-
+
/* First remove possible slash at the end of the dirname.
* This routine otherwise tries to create
* blah1/blah2/ (with slash) after creating
@@ -351,23 +360,29 @@ void BLI_dir_create_recursive(const char *dirname)
BLI_strncpy(tmp, dirname, sizeof(tmp));
lslash = BLI_last_slash(tmp);
-
- if (lslash == tmp + strlen(tmp) - 1) {
- *lslash = 0;
+
+ if (lslash && (*(lslash + 1) == '\0')) {
+ *lslash = '\0';
}
-
+
+ /* check special case "c:\foo", don't try create "c:", harmless but prints an error below */
+ if (isalpha(tmp[0]) && (tmp[1] == ':') && tmp[2] == '\0') return;
+
if (BLI_exists(tmp)) return;
lslash = BLI_last_slash(tmp);
+
if (lslash) {
/* Split about the last slash and recurse */
*lslash = 0;
BLI_dir_create_recursive(tmp);
}
-
- if (dirname[0]) /* patch, this recursive loop tries to create a nameless directory */
- if (umkdir(dirname) == -1)
+
+ if (dirname[0]) { /* patch, this recursive loop tries to create a nameless directory */
+ if (umkdir(dirname) == -1) {
printf("Unable to create directory %s\n", dirname);
+ }
+ }
}
int BLI_rename(const char *from, const char *to)
@@ -510,8 +525,9 @@ static int recursive_operation(const char *startfrom, const char *startto, Recur
}
if (ret != 0) {
- while (i < n)
- free(dirlist[i]);
+ while (i < n) {
+ free(dirlist[i++]);
+ }
break;
}
}
diff --git a/source/blender/blenlib/intern/freetypefont.c b/source/blender/blenlib/intern/freetypefont.c
index eb2070bce76..85239270541 100644
--- a/source/blender/blenlib/intern/freetypefont.c
+++ b/source/blender/blenlib/intern/freetypefont.c
@@ -52,18 +52,12 @@
#include "BLI_math.h"
#include "BLI_utildefines.h"
-//XXX #include "BIF_toolbox.h"
-
#include "BKE_font.h"
-
#include "DNA_vfont_types.h"
#include "DNA_packedFile_types.h"
#include "DNA_curve_types.h"
-#define myMIN_ASCII 32
-#define myMAX_ASCII 255
-
/* local variables */
static FT_Library library;
static FT_Error err;
@@ -71,55 +65,55 @@ static FT_Error err;
static void freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData *vfd)
{
- // Blender
+ /* Blender */
struct Nurb *nu;
struct VChar *che;
struct BezTriple *bezt;
-
- // Freetype2
+
+ /* Freetype2 */
FT_GlyphSlot glyph;
FT_UInt glyph_index;
FT_Outline ftoutline;
float scale, height;
float dx, dy;
int j, k, l, m = 0;
-
- // adjust font size
+
+ /* adjust font size */
height = ((double) face->bbox.yMax - (double) face->bbox.yMin);
if (height != 0.0f)
scale = 1.0f / height;
else
scale = 1.0f / 1000.0f;
-
- //
- // Generate the character 3D data
- //
- // Get the FT Glyph index and load the Glyph
+
+ /*
+ * Generate the character 3D data
+ *
+ * Get the FT Glyph index and load the Glyph */
glyph_index = FT_Get_Char_Index(face, charcode);
err = FT_Load_Glyph(face, glyph_index, FT_LOAD_NO_SCALE | FT_LOAD_NO_BITMAP);
-
- // If loading succeeded, convert the FT glyph to the internal format
+
+ /* If loading succeeded, convert the FT glyph to the internal format */
if (!err) {
int *npoints;
int *onpoints;
-
- // First we create entry for the new character to the character list
+
+ /* First we create entry for the new character to the character list */
che = (VChar *) MEM_callocN(sizeof(struct VChar), "objfnt_char");
BLI_addtail(&vfd->characters, che);
-
- // Take some data for modifying purposes
+
+ /* Take some data for modifying purposes */
glyph = face->glyph;
ftoutline = glyph->outline;
-
- // Set the width and character code
+
+ /* Set the width and character code */
che->index = charcode;
che->width = glyph->advance.x * scale;
-
- // Start converting the FT data
+
+ /* Start converting the FT data */
npoints = (int *)MEM_callocN((ftoutline.n_contours) * sizeof(int), "endpoints");
onpoints = (int *)MEM_callocN((ftoutline.n_contours) * sizeof(int), "onpoints");
- // calculate total points of each contour
+ /* calculate total points of each contour */
for (j = 0; j < ftoutline.n_contours; j++) {
if (j == 0)
npoints[j] = ftoutline.contours[j] + 1;
@@ -127,7 +121,7 @@ static void freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData *vf
npoints[j] = ftoutline.contours[j] - ftoutline.contours[j - 1];
}
- // get number of on-curve points for beziertriples (including conic virtual on-points)
+ /* get number of on-curve points for beziertriples (including conic virtual on-points) */
for (j = 0; j < ftoutline.n_contours; j++) {
for (k = 0; k < npoints[j]; k++) {
l = (j > 0) ? (k + ftoutline.contours[j - 1] + 1) : k;
@@ -145,9 +139,9 @@ static void freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData *vf
}
}
- //contour loop, bezier & conic styles merged
+ /* contour loop, bezier & conic styles merged */
for (j = 0; j < ftoutline.n_contours; j++) {
- // add new curve
+ /* add new curve */
nu = (Nurb *)MEM_callocN(sizeof(struct Nurb), "objfnt_nurb");
bezt = (BezTriple *)MEM_callocN((onpoints[j]) * sizeof(BezTriple), "objfnt_bezt");
BLI_addtail(&che->nurbsbase, nu);
@@ -159,26 +153,26 @@ static void freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData *vf
nu->flagu = CU_NURB_CYCLIC;
nu->bezt = bezt;
- //individual curve loop, start-end
+ /* individual curve loop, start-end */
for (k = 0; k < npoints[j]; k++) {
if (j > 0) l = k + ftoutline.contours[j - 1] + 1; else l = k;
if (k == 0) m = l;
-
- //virtual conic on-curve points
+
+ /* virtual conic on-curve points */
if (k < npoints[j] - 1) {
if (ftoutline.tags[l] == FT_Curve_Tag_Conic && ftoutline.tags[l + 1] == FT_Curve_Tag_Conic) {
dx = (ftoutline.points[l].x + ftoutline.points[l + 1].x) * scale / 2.0f;
dy = (ftoutline.points[l].y + ftoutline.points[l + 1].y) * scale / 2.0f;
- //left handle
+ /* left handle */
bezt->vec[0][0] = (dx + (2 * ftoutline.points[l].x) * scale) / 3.0f;
bezt->vec[0][1] = (dy + (2 * ftoutline.points[l].y) * scale) / 3.0f;
- //midpoint (virtual on-curve point)
+ /* midpoint (virtual on-curve point) */
bezt->vec[1][0] = dx;
bezt->vec[1][1] = dy;
- //right handle
+ /* right handle */
bezt->vec[2][0] = (dx + (2 * ftoutline.points[l + 1].x) * scale) / 3.0f;
bezt->vec[2][1] = (dy + (2 * ftoutline.points[l + 1].y) * scale) / 3.0f;
@@ -188,9 +182,9 @@ static void freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData *vf
}
}
- //on-curve points
+ /* on-curve points */
if (ftoutline.tags[l] == FT_Curve_Tag_On) {
- //left handle
+ /* left handle */
if (k > 0) {
if (ftoutline.tags[l - 1] == FT_Curve_Tag_Cubic) {
bezt->vec[0][0] = ftoutline.points[l - 1].x * scale;
@@ -208,7 +202,7 @@ static void freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData *vf
bezt->h1 = HD_VECT;
}
}
- else { //first point on curve
+ else { /* first point on curve */
if (ftoutline.tags[ftoutline.contours[j]] == FT_Curve_Tag_Cubic) {
bezt->vec[0][0] = ftoutline.points[ftoutline.contours[j]].x * scale;
bezt->vec[0][1] = ftoutline.points[ftoutline.contours[j]].y * scale;
@@ -226,11 +220,11 @@ static void freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData *vf
}
}
- //midpoint (on-curve point)
+ /* midpoint (on-curve point) */
bezt->vec[1][0] = ftoutline.points[l].x * scale;
bezt->vec[1][1] = ftoutline.points[l].y * scale;
- //right handle
+ /* right handle */
if (k < (npoints[j] - 1)) {
if (ftoutline.tags[l + 1] == FT_Curve_Tag_Cubic) {
bezt->vec[2][0] = ftoutline.points[l + 1].x * scale;
@@ -248,7 +242,7 @@ static void freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData *vf
bezt->h2 = HD_VECT;
}
}
- else { //last point on curve
+ else { /* last point on curve */
if (ftoutline.tags[m] == FT_Curve_Tag_Cubic) {
bezt->vec[2][0] = ftoutline.points[m].x * scale;
bezt->vec[2][1] = ftoutline.points[m].y * scale;
@@ -266,17 +260,19 @@ static void freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData *vf
}
}
- // get the handles that are aligned, tricky...
- // dist_to_line_v2, check if the three beztriple points are on one line
- // len_squared_v2v2, see if there's a distance between the three points
- // len_squared_v2v2 again, to check the angle between the handles
- // finally, check if one of them is a vector handle
- if ((dist_to_line_v2(bezt->vec[0], bezt->vec[1], bezt->vec[2]) < 0.001f) &&
+ /* get the handles that are aligned, tricky...
+ * dist_to_line_v2, check if the three beztriple points are on one line
+ * len_squared_v2v2, see if there's a distance between the three points
+ * len_squared_v2v2 again, to check the angle between the handles
+ * finally, check if one of them is a vector handle */
+ if ((bezt->h1 != HD_VECT && bezt->h2 != HD_VECT) &&
+ (dist_to_line_v2(bezt->vec[0], bezt->vec[1], bezt->vec[2]) < 0.001f) &&
(len_squared_v2v2(bezt->vec[0], bezt->vec[1]) > 0.0001f * 0.0001f) &&
(len_squared_v2v2(bezt->vec[1], bezt->vec[2]) > 0.0001f * 0.0001f) &&
(len_squared_v2v2(bezt->vec[0], bezt->vec[2]) > 0.0002f * 0.0001f) &&
- (len_squared_v2v2(bezt->vec[0], bezt->vec[2]) > MAX2(len_squared_v2v2(bezt->vec[0], bezt->vec[1]), len_squared_v2v2(bezt->vec[1], bezt->vec[2]))) &&
- bezt->h1 != HD_VECT && bezt->h2 != HD_VECT)
+ (len_squared_v2v2(bezt->vec[0], bezt->vec[2]) >
+ maxf(len_squared_v2v2(bezt->vec[0], bezt->vec[1]),
+ len_squared_v2v2(bezt->vec[1], bezt->vec[2]))))
{
bezt->h1 = bezt->h2 = HD_ALIGN;
}
@@ -292,21 +288,14 @@ static void freetypechar_to_vchar(FT_Face face, FT_ULong charcode, VFontData *vf
static int objchr_to_ftvfontdata(VFont *vfont, FT_ULong charcode)
{
- // Freetype2
+ /* Freetype2 */
FT_Face face;
- struct TmpFont *tf;
-
- // Find the correct FreeType font
- tf = BKE_vfont_find_tmpfont(vfont);
-
- // What, no font found. Something strange here
- if (!tf) return FALSE;
-
- // Load the font to memory
- if (tf->pf) {
+
+ /* Load the font to memory */
+ if (vfont->temp_pf) {
err = FT_New_Memory_Face(library,
- tf->pf->data,
- tf->pf->size,
+ vfont->temp_pf->data,
+ vfont->temp_pf->size,
0,
&face);
if (err) return FALSE;
@@ -316,17 +305,17 @@ static int objchr_to_ftvfontdata(VFont *vfont, FT_ULong charcode)
return FALSE;
}
- // Read the char
+ /* Read the char */
freetypechar_to_vchar(face, charcode, vfont->data);
- // And everything went ok
+ /* And everything went ok */
return TRUE;
}
static VFontData *objfnt_to_ftvfontdata(PackedFile *pf)
{
- // Variables
+ /* Variables */
FT_Face face;
FT_ULong charcode = 0, lcode;
FT_UInt glyph_index;
@@ -341,7 +330,7 @@ static VFontData *objfnt_to_ftvfontdata(PackedFile *pf)
int n;
#endif
- // load the freetype font
+ /* load the freetype font */
err = FT_New_Memory_Face(library,
pf->data,
pf->size,
@@ -364,22 +353,22 @@ static VFontData *objfnt_to_ftvfontdata(PackedFile *pf)
if (!found) { return NULL; }
- // now, select the charmap for the face object
+ /* now, select the charmap for the face object */
err = FT_Set_Charmap(face, found);
if (err) { return NULL; }
#endif
- // allocate blender font
+ /* allocate blender font */
vfd = MEM_callocN(sizeof(*vfd), "FTVFontData");
- // get the name
+ /* get the name */
fontname = FT_Get_Postscript_Name(face);
BLI_strncpy(vfd->name, (fontname == NULL) ? "" : fontname, sizeof(vfd->name));
- // Extract the first 256 character from TTF
+ /* Extract the first 256 character from TTF */
lcode = charcode = FT_Get_First_Char(face, &glyph_index);
- // No charmap found from the ttf so we need to figure it out
+ /* No charmap found from the ttf so we need to figure it out */
if (glyph_index == 0) {
FT_CharMap found = NULL;
FT_CharMap charmap;
@@ -401,15 +390,15 @@ static VFontData *objfnt_to_ftvfontdata(PackedFile *pf)
lcode = charcode = FT_Get_First_Char(face, &glyph_index);
}
- // Load characters
+ /* Load characters */
while (charcode < 256) {
- // Generate the font data
+ /* Generate the font data */
freetypechar_to_vchar(face, charcode, vfd);
- // Next glyph
+ /* Next glyph */
charcode = FT_Get_Next_Char(face, charcode, &glyph_index);
- // Check that we won't start infinite loop
+ /* Check that we won't start infinite loop */
if (charcode <= lcode)
break;
lcode = charcode;
@@ -455,7 +444,7 @@ static int check_freetypefont(PackedFile *pf)
if (!found) { return 0; }
- // now, select the charmap for the face object
+ /* now, select the charmap for the face object */
err = FT_Set_Charmap(face, found);
if (err) { return 0; }
#endif
@@ -509,21 +498,21 @@ int BLI_vfontchar_from_freetypefont(VFont *vfont, unsigned long character)
if (!vfont) return FALSE;
- // Init Freetype
+ /* Init Freetype */
err = FT_Init_FreeType(&library);
if (err) {
- //XXX error("Failed to load the Freetype font library");
+ /* XXX error("Failed to load the Freetype font library"); */
return 0;
}
- // Load the character
+ /* Load the character */
success = objchr_to_ftvfontdata(vfont, character);
if (success == FALSE) return FALSE;
- // Free Freetype
+ /* Free Freetype */
FT_Done_FreeType(library);
- // Ahh everything ok
+ /* Ahh everything ok */
return TRUE;
}
@@ -557,7 +546,7 @@ typedef struct FT_Outline_
* Type1 format.
*
* Each arc is described through a series of start, end and control points. Each point of the outline
- * has a specific tag which indicates wether it is used to describe a line segment or an arc.
+ * has a specific tag which indicates whether it is used to describe a line segment or an arc.
*
*
* The following rules are applied to decompose the contour's points into segments and arcs :
diff --git a/source/blender/blenlib/intern/lasso.c b/source/blender/blenlib/intern/lasso.c
index 29b967fcd37..5cd8bb813a1 100644
--- a/source/blender/blenlib/intern/lasso.c
+++ b/source/blender/blenlib/intern/lasso.c
@@ -37,7 +37,7 @@
#include "BLI_lasso.h" /* own include */
-void BLI_lasso_boundbox(rcti *rect, int mcords[][2], short moves)
+void BLI_lasso_boundbox(rcti *rect, const int mcords[][2], const short moves)
{
short a;
@@ -53,14 +53,14 @@ void BLI_lasso_boundbox(rcti *rect, int mcords[][2], short moves)
}
-int BLI_lasso_is_point_inside(int mcords[][2], short moves,
+int BLI_lasso_is_point_inside(const int mcords[][2], const short moves,
const int sx, const int sy,
const int error_value)
{
/* we do the angle rule, define that all added angles should be about zero or (2 * PI) */
float angletot = 0.0, dot, ang, cross, fp1[2], fp2[2];
int a;
- int *p1, *p2;
+ const int *p1, *p2;
if (sx == error_value) {
return 0;
@@ -95,12 +95,12 @@ int BLI_lasso_is_point_inside(int mcords[][2], short moves,
p2 = mcords[a + 1];
}
- if (fabs(angletot) > 4.0) return 1;
+ if (fabsf(angletot) > 4.0f) return 1;
return 0;
}
/* edge version for lasso select. we assume boundbox check was done */
-int BLI_lasso_is_edge_inside(int mcords[][2], short moves,
+int BLI_lasso_is_edge_inside(const int mcords[][2], const short moves,
int x0, int y0, int x1, int y1,
const int error_value)
{
diff --git a/source/blender/blenlib/intern/listbase.c b/source/blender/blenlib/intern/listbase.c
index 8fe9a94b466..ad718ed8e11 100644
--- a/source/blender/blenlib/intern/listbase.c
+++ b/source/blender/blenlib/intern/listbase.c
@@ -439,6 +439,44 @@ void *BLI_rfindstring_ptr(const ListBase *listbase, const char *id, const int of
return NULL;
}
+void *BLI_findptr(const ListBase *listbase, const void *ptr, const int offset)
+{
+ Link *link = NULL;
+ const void *ptr_iter;
+
+ if (listbase == NULL) return NULL;
+
+ for (link = listbase->first; link; link = link->next) {
+ /* exact copy of BLI_findstring(), except for this line */
+ ptr_iter = *((const char **)(((const char *)link) + offset));
+
+ if (ptr == ptr_iter) {
+ return link;
+ }
+ }
+
+ return NULL;
+}
+/* same as above but find reverse */
+void *BLI_rfindptr(const ListBase *listbase, const void *ptr, const int offset)
+{
+ Link *link = NULL;
+ const void *ptr_iter;
+
+ if (listbase == NULL) return NULL;
+
+ for (link = listbase->last; link; link = link->prev) {
+ /* exact copy of BLI_rfindstring(), except for this line */
+ ptr_iter = *((const char **)(((const char *)link) + offset));
+
+ if (ptr == ptr_iter) {
+ return link;
+ }
+ }
+
+ return NULL;
+}
+
int BLI_findstringindex(const ListBase *listbase, const char *id, const int offset)
{
Link *link = NULL;
diff --git a/source/blender/blenlib/intern/math_base_inline.c b/source/blender/blenlib/intern/math_base_inline.c
index b2d5392c596..97fc431d8fa 100644
--- a/source/blender/blenlib/intern/math_base_inline.c
+++ b/source/blender/blenlib/intern/math_base_inline.c
@@ -143,12 +143,20 @@ MINLINE float minf(float a, float b)
{
return (a < b) ? a : b;
}
-
MINLINE float maxf(float a, float b)
{
return (a > b) ? a : b;
}
+MINLINE int mini(int a, int b)
+{
+ return (a < b) ? a : b;
+}
+MINLINE int maxi(int a, int b)
+{
+ return (b < a) ? a : b;
+}
+
MINLINE float signf(float f)
{
return (f < 0.f) ? -1.f : 1.f;
diff --git a/source/blender/blenlib/intern/math_color.c b/source/blender/blenlib/intern/math_color.c
index b93597bf107..64851dbf12c 100644
--- a/source/blender/blenlib/intern/math_color.c
+++ b/source/blender/blenlib/intern/math_color.c
@@ -293,6 +293,12 @@ void rgb_to_hsl(float r, float g, float b, float *lh, float *ls, float *ll)
*ll = l;
}
+/* convenience function for now */
+void rgb_to_hsl_v(const float rgb[3], float r_hsl[3])
+{
+ rgb_to_hsl(rgb[0], rgb[1], rgb[2], &r_hsl[0], &r_hsl[1], &r_hsl[2]);
+}
+
void rgb_to_hsv_compat(float r, float g, float b, float *lh, float *ls, float *lv)
{
float orig_h = *lh;
diff --git a/source/blender/blenlib/intern/math_color_inline.c b/source/blender/blenlib/intern/math_color_inline.c
index a3835b5bb4a..f520b2318e5 100644
--- a/source/blender/blenlib/intern/math_color_inline.c
+++ b/source/blender/blenlib/intern/math_color_inline.c
@@ -237,6 +237,10 @@ MINLINE float rgb_to_bw(const float rgb[3])
return 0.35f * rgb[0] + 0.45f * rgb[1] + 0.2f * rgb[2];
}
+/* non-linear luma from ITU-R BT.601-2
+ * see: http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html#RTFToC11
+ * note: the values used for are not exact matches to those documented above,
+ * but they are from the same */
MINLINE float rgb_to_grayscale(const float rgb[3])
{
return 0.3f * rgb[0] + 0.58f * rgb[1] + 0.12f * rgb[2];
@@ -269,5 +273,20 @@ MINLINE float rgb_to_luma_y(const float rgb[3])
return 0.212671f * rgb[0] + 0.71516f * rgb[1] + 0.072169f * rgb[2];
}
+MINLINE int compare_rgb_uchar(const unsigned char col_a[3], const unsigned char col_b[3], const int limit)
+{
+ int r = (int)col_a[0] - (int)col_b[0];
+ if (ABS(r) < limit) {
+ int g = (int)col_a[1] - (int)col_b[1];
+ if (ABS(g) < limit) {
+ int b = (int)col_a[2] - (int)col_b[2];
+ if (ABS(b) < limit) {
+ return 1;
+ }
+ }
+ }
+
+ return 0;
+}
#endif /* __MATH_COLOR_INLINE_C__ */
diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c
index e51d0d2645f..50cef039acf 100644
--- a/source/blender/blenlib/intern/math_geom.c
+++ b/source/blender/blenlib/intern/math_geom.c
@@ -162,52 +162,57 @@ float area_poly_v3(int nr, float verts[][3], const float normal[3])
/********************************* Distance **********************************/
-/* distance v1 to line v2-v3
+/* distance p to line v1-v2
* using Hesse formula, NO LINE PIECE! */
-float dist_to_line_v2(const float v1[2], const float v2[2], const float v3[2])
+float dist_to_line_v2(const float p[2], const float l1[2], const float l2[2])
{
float a[2], deler;
- a[0] = v2[1] - v3[1];
- a[1] = v3[0] - v2[0];
+ a[0] = l1[1] - l2[1];
+ a[1] = l2[0] - l1[0];
deler = (float)sqrt(a[0] * a[0] + a[1] * a[1]);
if (deler == 0.0f) return 0;
- return fabsf((v1[0] - v2[0]) * a[0] + (v1[1] - v2[1]) * a[1]) / deler;
+ return fabsf((p[0] - l1[0]) * a[0] + (p[1] - l1[1]) * a[1]) / deler;
}
-/* distance v1 to line-piece v2-v3 */
-float dist_to_line_segment_v2(const float v1[2], const float v2[2], const float v3[2])
+/* distance p to line-piece v1-v2 */
+float dist_squared_to_line_segment_v2(const float p[2], const float l1[2], const float l2[2])
{
float labda, rc[2], pt[2], len;
- rc[0] = v3[0] - v2[0];
- rc[1] = v3[1] - v2[1];
+ rc[0] = l2[0] - l1[0];
+ rc[1] = l2[1] - l1[1];
len = rc[0] * rc[0] + rc[1] * rc[1];
if (len == 0.0f) {
- rc[0] = v1[0] - v2[0];
- rc[1] = v1[1] - v2[1];
- return (float)(sqrt(rc[0] * rc[0] + rc[1] * rc[1]));
+ rc[0] = p[0] - l1[0];
+ rc[1] = p[1] - l1[1];
+ return (rc[0] * rc[0] + rc[1] * rc[1]);
}
- labda = (rc[0] * (v1[0] - v2[0]) + rc[1] * (v1[1] - v2[1])) / len;
+ labda = (rc[0] * (p[0] - l1[0]) + rc[1] * (p[1] - l1[1])) / len;
if (labda <= 0.0f) {
- pt[0] = v2[0];
- pt[1] = v2[1];
+ pt[0] = l1[0];
+ pt[1] = l1[1];
}
else if (labda >= 1.0f) {
- pt[0] = v3[0];
- pt[1] = v3[1];
+ pt[0] = l2[0];
+ pt[1] = l2[1];
}
else {
- pt[0] = labda * rc[0] + v2[0];
- pt[1] = labda * rc[1] + v2[1];
+ pt[0] = labda * rc[0] + l1[0];
+ pt[1] = labda * rc[1] + l1[1];
}
- rc[0] = pt[0] - v1[0];
- rc[1] = pt[1] - v1[1];
- return sqrtf(rc[0] * rc[0] + rc[1] * rc[1]);
+ rc[0] = pt[0] - p[0];
+ rc[1] = pt[1] - p[1];
+ return (rc[0] * rc[0] + rc[1] * rc[1]);
+}
+
+float dist_to_line_segment_v2(const float p[2], const float l1[2], const float l2[2])
+{
+ return sqrtf(dist_squared_to_line_segment_v2(p, l1, l2));
}
/* point closest to v1 on line v2-v3 in 2D */
@@ -312,6 +317,21 @@ int isect_line_line_v2_int(const int v1[2], const int v2[2], const int v3[2], co
return ISECT_LINE_LINE_NONE;
}
+/* intersect Line-Line, floats - gives intersection point */
+int isect_line_line_v2_point(const float v1[2], const float v2[2], const float v3[2], const float v4[2], float vi[2])
+{
+ float div;
+
+ div = (v2[0] - v1[0]) * (v4[1] - v3[1]) - (v2[1] - v1[1]) * (v4[0] - v3[0]);
+ if (div == 0.0f) return ISECT_LINE_LINE_COLINEAR;
+
+ vi[0] = ((v3[0] - v4[0]) * (v1[0] * v2[1] - v1[1] * v2[0]) - (v1[0] - v2[0]) * (v3[0] * v4[1] - v3[1] * v4[0])) / div;
+ vi[1] = ((v3[1] - v4[1]) * (v1[0] * v2[1] - v1[1] * v2[0]) - (v1[1] - v2[1]) * (v3[0] * v4[1] - v3[1] * v4[0])) / div;
+
+ return ISECT_LINE_LINE_CROSS;
+}
+
+
/* intersect Line-Line, floats */
int isect_line_line_v2(const float v1[2], const float v2[2], const float v3[2], const float v4[2])
{
@@ -332,7 +352,7 @@ int isect_line_line_v2(const float v1[2], const float v2[2], const float v3[2],
}
/* get intersection point of two 2D segments and return intersection type:
- * -1: colliniar
+ * -1: collinear
* 1: intersection
*/
int isect_seg_seg_v2_point(const float v1[2], const float v2[2], const float v3[2], const float v4[2], float vi[2])
@@ -390,7 +410,7 @@ int isect_seg_seg_v2_point(const float v1[2], const float v2[2], const float v3[
}
}
- /* lines are colliniar */
+ /* lines are collinear */
return -1;
}
@@ -406,6 +426,15 @@ int isect_seg_seg_v2_point(const float v1[2], const float v2[2], const float v3[
return -1;
}
+int isect_seg_seg_v2(const float v1[2], const float v2[2], const float v3[2], const float v4[2])
+{
+#define CCW(A, B, C) ((C[1] - A[1]) * (B[0] - A[0]) > (B[1]-A[1]) * (C[0]-A[0]))
+
+ return CCW(v1, v3, v4) != CCW(v2, v3, v4) && CCW(v1, v2, v3) != CCW(v1, v2, v4);
+
+#undef CCW
+}
+
int isect_line_sphere_v3(const float l1[3], const float l2[3],
const float sp[3], const float r,
float r_p1[3], float r_p2[3])
@@ -532,7 +561,7 @@ int isect_line_sphere_v2(const float l1[2], const float l2[2],
}
/*
- * -1: colliniar
+ * -1: collinear
* 1: intersection
*/
static short IsectLLPt2Df(const float x0, const float y0, const float x1, const float y1,
@@ -554,29 +583,29 @@ static short IsectLLPt2Df(const float x0, const float y0, const float x1, const
* compute slopes, note the cludge for infinity, however, this will
* be close enough
*/
- if (fabs(x1 - x0) > 0.000001)
+ if (fabsf(x1 - x0) > 0.000001f)
m1 = (y1 - y0) / (x1 - x0);
else
- return -1; /*m1 = (float)1e+10;*/ // close enough to infinity
+ return -1; /*m1 = (float)1e+10;*/ /* close enough to infinity */
- if (fabs(x3 - x2) > 0.000001)
+ if (fabsf(x3 - x2) > 0.000001f)
m2 = (y3 - y2) / (x3 - x2);
else
- return -1; /*m2 = (float)1e+10;*/ // close enough to infinity
+ return -1; /*m2 = (float)1e+10;*/ /* close enough to infinity */
- if (fabs(m1 - m2) < 0.000001)
+ if (fabsf(m1 - m2) < 0.000001f)
return -1; /* parallel lines */
- // compute constants
+ /* compute constants */
c1 = (y0 - m1 * x0);
c2 = (y2 - m2 * x2);
- // compute the inverse of the determinate
+ /* compute the inverse of the determinate */
det_inv = 1.0f / (-m1 + m2);
- // use Kramers rule to compute xi and yi
+ /* use Kramers rule to compute xi and yi */
*xi = ((-c2 + c1) * det_inv);
*yi = ((m2 * c1 - m1 * c2) * det_inv);
@@ -586,6 +615,20 @@ static short IsectLLPt2Df(const float x0, const float y0, const float x1, const
/* point in tri */
+/* only single direction */
+int isect_point_tri_v2_cw(const float pt[2], const float v1[2], const float v2[2], const float v3[2])
+{
+ if (line_point_side_v2(v1, v2, pt) >= 0.0f) {
+ if (line_point_side_v2(v2, v3, pt) >= 0.0f) {
+ if (line_point_side_v2(v3, v1, pt) >= 0.0f) {
+ return 1;
+ }
+ }
+ }
+
+ return 0;
+}
+
int isect_point_tri_v2(const float pt[2], const float v1[2], const float v2[2], const float v3[2])
{
if (line_point_side_v2(v1, v2, pt) >= 0.0f) {
@@ -690,7 +733,7 @@ int isect_ray_tri_v3(const float p1[3], const float d[3],
cross_v3_v3v3(p, d, e2);
a = dot_v3v3(e1, p);
/* note: these values were 0.000001 in 2.4x but for projection snapping on
- * a human head (1BU==1m), subsurf level 2, this gave many errors - campbell */
+ * a human head (1BU == 1m), subsurf level 2, this gave many errors - campbell */
if ((a > -0.00000001f) && (a < 0.00000001f)) return 0;
f = 1.0f / a;
@@ -729,7 +772,7 @@ int isect_ray_plane_v3(const float p1[3], const float d[3],
cross_v3_v3v3(p, d, e2);
a = dot_v3v3(e1, p);
/* note: these values were 0.000001 in 2.4x but for projection snapping on
- * a human head (1BU==1m), subsurf level 2, this gave many errors - campbell */
+ * a human head (1BU == 1m), subsurf level 2, this gave many errors - campbell */
if ((a > -0.00000001f) && (a < 0.00000001f)) return 0;
f = 1.0f / a;
@@ -1123,15 +1166,17 @@ int isect_axial_line_tri_v3(const int axis, const float p1[3], const float p2[3]
float u, v, f;
int a0 = axis, a1 = (axis + 1) % 3, a2 = (axis + 2) % 3;
- //return isect_line_tri_v3(p1,p2,v0,v1,v2,lambda);
+#if 0
+ return isect_line_tri_v3(p1,p2,v0,v1,v2,lambda);
- ///* first a simple bounding box test */
- //if (MIN3(v0[a1],v1[a1],v2[a1]) > p1[a1]) return 0;
- //if (MIN3(v0[a2],v1[a2],v2[a2]) > p1[a2]) return 0;
- //if (MAX3(v0[a1],v1[a1],v2[a1]) < p1[a1]) return 0;
- //if (MAX3(v0[a2],v1[a2],v2[a2]) < p1[a2]) return 0;
+ /* first a simple bounding box test */
+ if (MIN3(v0[a1],v1[a1],v2[a1]) > p1[a1]) return 0;
+ if (MIN3(v0[a2],v1[a2],v2[a2]) > p1[a2]) return 0;
+ if (MAX3(v0[a1],v1[a1],v2[a1]) < p1[a1]) return 0;
+ if (MAX3(v0[a2],v1[a2],v2[a2]) < p1[a2]) return 0;
- ///* then a full intersection test */
+ /* then a full intersection test */
+#endif
sub_v3_v3v3(e1, v1, v0);
sub_v3_v3v3(e2, v2, v0);
@@ -1284,8 +1329,65 @@ int isect_aabb_aabb_v3(const float min1[3], const float max1[3], const float min
min2[0] < max1[0] && min2[1] < max1[1] && min2[2] < max1[2]);
}
+void isect_ray_aabb_initialize(IsectRayAABBData *data, const float ray_start[3], const float ray_direction[3])
+{
+ copy_v3_v3(data->ray_start, ray_start);
+
+ data->ray_inv_dir[0] = 1.0f / ray_direction[0];
+ data->ray_inv_dir[1] = 1.0f / ray_direction[1];
+ data->ray_inv_dir[2] = 1.0f / ray_direction[2];
+
+ data->sign[0] = data->ray_inv_dir[0] < 0;
+ data->sign[1] = data->ray_inv_dir[1] < 0;
+ data->sign[2] = data->ray_inv_dir[2] < 0;
+}
+
+/* Adapted from http://www.gamedev.net/community/forums/topic.asp?topic_id=459973 */
+int isect_ray_aabb(const IsectRayAABBData *data, const float bb_min[3],
+ const float bb_max[3], float *tmin_out)
+{
+ float bbox[2][3];
+ float tmin, tmax, tymin, tymax, tzmin, tzmax;
+
+ copy_v3_v3(bbox[0], bb_min);
+ copy_v3_v3(bbox[1], bb_max);
+
+ tmin = (bbox[data->sign[0]][0] - data->ray_start[0]) * data->ray_inv_dir[0];
+ tmax = (bbox[1 - data->sign[0]][0] - data->ray_start[0]) * data->ray_inv_dir[0];
+
+ tymin = (bbox[data->sign[1]][1] - data->ray_start[1]) * data->ray_inv_dir[1];
+ tymax = (bbox[1 - data->sign[1]][1] - data->ray_start[1]) * data->ray_inv_dir[1];
+
+ if ((tmin > tymax) || (tymin > tmax))
+ return FALSE;
+
+ if (tymin > tmin)
+ tmin = tymin;
+
+ if (tymax < tmax)
+ tmax = tymax;
+
+ tzmin = (bbox[data->sign[2]][2] - data->ray_start[2]) * data->ray_inv_dir[2];
+ tzmax = (bbox[1 - data->sign[2]][2] - data->ray_start[2]) * data->ray_inv_dir[2];
+
+ if ((tmin > tzmax) || (tzmin > tmax))
+ return FALSE;
+
+ if (tzmin > tmin)
+ tmin = tzmin;
+
+ /* XXX jwilkins: tmax does not need to be updated since we don't use it
+ * keeping this here for future reference */
+ //if (tzmax < tmax) tmax = tzmax;
+
+ if (tmin_out)
+ (*tmin_out) = tmin;
+
+ return TRUE;
+}
+
/* find closest point to p on line through l1,l2 and return lambda,
- * where (0 <= lambda <= 1) when cp is in the line segement l1,l2
+ * where (0 <= lambda <= 1) when cp is in the line segment l1,l2
*/
float closest_to_line_v3(float cp[3], const float p[3], const float l1[3], const float l2[3])
{
@@ -1327,7 +1429,7 @@ float line_point_factor_v2(const float p[2], const float l1[2], const float l2[2
return (dot_v2v2(u, h) / dot_v2v2(u, u));
}
-/* ensyre the distance between these points is no greater then 'dist'
+/* ensure the distance between these points is no greater then 'dist'
* if it is, scale then both into the center */
void limit_dist_v3(float v1[3], float v2[3], const float dist)
{
@@ -1567,10 +1669,10 @@ static int point_in_slice(const float p[3], const float v1[3], const float l1[3]
* a line including l1,l2 and a point not on the line
* define a subset of R3 delimited by planes parallel to the line and orthogonal
* to the (point --> line) distance vector,one plane on the line one on the point,
- * the room inside usually is rather small compared to R3 though still infinte
+ * the room inside usually is rather small compared to R3 though still infinite
* useful for restricting (speeding up) searches
* e.g. all points of triangular prism are within the intersection of 3 'slices'
- * onother trivial case : cube
+ * another trivial case : cube
* but see a 'spat' which is a deformed cube with paired parallel planes needs only 3 slices too
*/
float h, rp[3], cp[3], q[3];
@@ -1883,6 +1985,61 @@ void barycentric_weights_v2(const float v1[2], const float v2[2], const float v3
}
}
+/* same as #barycentric_weights_v2 but works with a quad,
+ * note: untested for values outside the quad's bounds
+ * this is #interp_weights_poly_v2 expanded for quads only */
+void barycentric_weights_v2_quad(const float v1[2], const float v2[2], const float v3[2], const float v4[2],
+ const float co[2], float w[4])
+{
+ /* note: fabsf() here is not needed for convex quads (and not used in interp_weights_poly_v2).
+ * but in the case of concave/bow-tie quads for the mask rasterizer it gives unreliable results
+ * without adding absf(). If this becomes an issue for more general usage we could have
+ * this optional or use a different function - Campbell */
+#define MEAN_VALUE_HALF_TAN_V2(_area, i1, i2) \
+ ((_area = cross_v2v2(dirs[i1], dirs[i2])) != 0.0f ? \
+ fabsf(((lens[i1] * lens[i2]) - dot_v2v2(dirs[i1], dirs[i2])) / _area) : 0.0f)
+
+ float wtot, area;
+
+ const float dirs[4][2] = {
+ {v1[0] - co[0], v1[1] - co[1]},
+ {v2[0] - co[0], v2[1] - co[1]},
+ {v3[0] - co[0], v3[1] - co[1]},
+ {v4[0] - co[0], v4[1] - co[1]},
+ };
+
+ const float lens[4] = {
+ len_v2(dirs[0]),
+ len_v2(dirs[1]),
+ len_v2(dirs[2]),
+ len_v2(dirs[3]),
+ };
+
+ /* inline mean_value_half_tan four times here */
+ float t[4] = {
+ MEAN_VALUE_HALF_TAN_V2(area, 0, 1),
+ MEAN_VALUE_HALF_TAN_V2(area, 1, 2),
+ MEAN_VALUE_HALF_TAN_V2(area, 2, 3),
+ MEAN_VALUE_HALF_TAN_V2(area, 3, 0),
+ };
+
+#undef MEAN_VALUE_HALF_TAN_V2
+
+ w[0] = (t[3] + t[0]) / lens[0];
+ w[1] = (t[0] + t[1]) / lens[1];
+ w[2] = (t[1] + t[2]) / lens[2];
+ w[3] = (t[2] + t[3]) / lens[3];
+
+ wtot = w[0] + w[1] + w[2] + w[3];
+
+ if (wtot != 0.0f) {
+ mul_v4_fl(w, 1.0f / wtot);
+ }
+ else { /* dummy values for zero area face */
+ copy_v4_fl(w, 1.0f / 4.0f);
+ }
+}
+
/* given 2 triangles in 3D space, and a point in relation to the first triangle.
* calculate the location of a point in relation to the second triangle.
* Useful for finding relative positions with geometry */
@@ -2015,7 +2172,7 @@ int interp_sparse_array(float *array, int const list_size, const float skipval)
/* Mean value weights - smooth interpolation weights for polygons with
* more than 3 vertices */
-static float mean_value_half_tan(const float v1[3], const float v2[3], const float v3[3])
+static float mean_value_half_tan_v3(const float v1[3], const float v2[3], const float v3[3])
{
float d2[3], d3[3], cross[3], area, dot, len;
@@ -2027,14 +2184,37 @@ static float mean_value_half_tan(const float v1[3], const float v2[3], const flo
dot = dot_v3v3(d2, d3);
len = len_v3(d2) * len_v3(d3);
- if (area == 0.0f)
+ if (LIKELY(area != 0.0f)) {
+ return (len - dot) / area;
+ }
+ else {
return 0.0f;
- else
+ }
+}
+static float mean_value_half_tan_v2(const float v1[2], const float v2[2], const float v3[2])
+{
+ float d2[2], d3[2], area, dot, len;
+
+ sub_v2_v2v2(d2, v2, v1);
+ sub_v2_v2v2(d3, v3, v1);
+
+ /* different from the 3d version but still correct */
+ area = cross_v2v2(d2, d3);
+
+ dot = dot_v2v2(d2, d3);
+ len = len_v2(d2) * len_v2(d3);
+
+ if (LIKELY(area != 0.0f)) {
return (len - dot) / area;
+ }
+ else {
+ return 0.0f;
+ }
}
void interp_weights_poly_v3(float *w, float v[][3], const int n, const float co[3])
{
+ /* TODO: t1 and t2 overlap each iter, we could call this only once per iter and reuse previous value */
float totweight, t1, t2, len, *vmid, *vprev, *vnext;
int i;
@@ -2045,17 +2225,47 @@ void interp_weights_poly_v3(float *w, float v[][3], const int n, const float co[
vprev = (i == 0) ? v[n - 1] : v[i - 1];
vnext = (i == n - 1) ? v[0] : v[i + 1];
- t1 = mean_value_half_tan(co, vprev, vmid);
- t2 = mean_value_half_tan(co, vmid, vnext);
+ t1 = mean_value_half_tan_v3(co, vprev, vmid);
+ t2 = mean_value_half_tan_v3(co, vmid, vnext);
len = len_v3v3(co, vmid);
- w[i] = (t1 + t2) / len;
+ w[i] = (len != 0.0f)? (t1 + t2) / len: 0.0f;
totweight += w[i];
}
- if (totweight != 0.0f)
- for (i = 0; i < n; i++)
+ if (totweight != 0.0f) {
+ for (i = 0; i < n; i++) {
w[i] /= totweight;
+ }
+ }
+}
+
+void interp_weights_poly_v2(float *w, float v[][2], const int n, const float co[2])
+{
+ /* TODO: t1 and t2 overlap each iter, we could call this only once per iter and reuse previous value */
+ float totweight, t1, t2, len, *vmid, *vprev, *vnext;
+ int i;
+
+ totweight = 0.0f;
+
+ for (i = 0; i < n; i++) {
+ vmid = v[i];
+ vprev = (i == 0) ? v[n - 1] : v[i - 1];
+ vnext = (i == n - 1) ? v[0] : v[i + 1];
+
+ t1 = mean_value_half_tan_v2(co, vprev, vmid);
+ t2 = mean_value_half_tan_v2(co, vmid, vnext);
+
+ len = len_v2v2(co, vmid);
+ w[i] = (len != 0.0f)? (t1 + t2) / len: 0.0f;
+ totweight += w[i];
+ }
+
+ if (totweight != 0.0f) {
+ for (i = 0; i < n; i++) {
+ w[i] /= totweight;
+ }
+ }
}
/* (x1,v1)(t1=0)------(x2,v2)(t2=1), 0<t<1 --> (x,v)(t) */
@@ -2162,7 +2372,8 @@ void resolve_quad_uv(float r_uv[2], const float st[2], const float st0[2], const
/***************************** View & Projection *****************************/
-void orthographic_m4(float matrix[][4], const float left, const float right, const float bottom, const float top, const float nearClip, const float farClip)
+void orthographic_m4(float matrix[][4], const float left, const float right, const float bottom, const float top,
+ const float nearClip, const float farClip)
{
float Xdelta, Ydelta, Zdelta;
@@ -2181,7 +2392,8 @@ void orthographic_m4(float matrix[][4], const float left, const float right, con
matrix[3][2] = -(farClip + nearClip) / Zdelta;
}
-void perspective_m4(float mat[4][4], const float left, const float right, const float bottom, const float top, const float nearClip, const float farClip)
+void perspective_m4(float mat[4][4], const float left, const float right, const float bottom, const float top,
+ const float nearClip, const float farClip)
{
float Xdelta, Ydelta, Zdelta;
@@ -2638,7 +2850,7 @@ void vcloud_estimate_transform(int list_size, float (*pos)[3], float *weight, fl
if (lloc) copy_v3_v3(lloc, accu_com);
if (rloc) copy_v3_v3(rloc, accu_rcom);
if (lrot || lscale) { /* caller does not want rot nor scale, strange but legal */
- /*so now do some reverse engeneering and see if we can split rotation from scale ->Polardecompose*/
+ /*so now do some reverse engineering and see if we can split rotation from scale ->Polardecompose*/
/* build 'projection' matrix */
float m[3][3], mr[3][3], q[3][3], qi[3][3];
float va[3], vb[3], stunt[3];
@@ -2746,21 +2958,21 @@ static int ff_visible_quad(const float p[3], const float n[3],
if (sd[0] > 0) {
if (sd[1] > 0) {
if (sd[2] > 0) {
- // +++
+ /* +++ */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // ++-
+ /* ++- */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
vec_add_dir(q2, v1, v2, (sd[1] / (sd[1] - sd[2])));
vec_add_dir(q3, v0, v2, (sd[0] / (sd[0] - sd[2])));
}
else {
- // ++0
+ /* ++0 */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
@@ -2769,21 +2981,21 @@ static int ff_visible_quad(const float p[3], const float n[3],
}
else if (sd[1] < 0) {
if (sd[2] > 0) {
- // +-+
+ /* +-+ */
copy_v3_v3(q0, v0);
vec_add_dir(q1, v0, v1, (sd[0] / (sd[0] - sd[1])));
vec_add_dir(q2, v1, v2, (sd[1] / (sd[1] - sd[2])));
copy_v3_v3(q3, v2);
}
else if (sd[2] < 0) {
- // +--
+ /* +-- */
copy_v3_v3(q0, v0);
vec_add_dir(q1, v0, v1, (sd[0] / (sd[0] - sd[1])));
vec_add_dir(q2, v0, v2, (sd[0] / (sd[0] - sd[2])));
copy_v3_v3(q3, q2);
}
else {
- // +-0
+ /* +-0 */
copy_v3_v3(q0, v0);
vec_add_dir(q1, v0, v1, (sd[0] / (sd[0] - sd[1])));
copy_v3_v3(q2, v2);
@@ -2792,21 +3004,21 @@ static int ff_visible_quad(const float p[3], const float n[3],
}
else {
if (sd[2] > 0) {
- // +0+
+ /* +0+ */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // +0-
+ /* +0- */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
vec_add_dir(q2, v0, v2, (sd[0] / (sd[0] - sd[2])));
copy_v3_v3(q3, q2);
}
else {
- // +00
+ /* +00 */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
@@ -2817,21 +3029,21 @@ static int ff_visible_quad(const float p[3], const float n[3],
else if (sd[0] < 0) {
if (sd[1] > 0) {
if (sd[2] > 0) {
- // -++
+ /* -++ */
vec_add_dir(q0, v0, v1, (sd[0] / (sd[0] - sd[1])));
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
vec_add_dir(q3, v0, v2, (sd[0] / (sd[0] - sd[2])));
}
else if (sd[2] < 0) {
- // -+-
+ /* -+- */
vec_add_dir(q0, v0, v1, (sd[0] / (sd[0] - sd[1])));
copy_v3_v3(q1, v1);
vec_add_dir(q2, v1, v2, (sd[1] / (sd[1] - sd[2])));
copy_v3_v3(q3, q2);
}
else {
- // -+0
+ /* -+0 */
vec_add_dir(q0, v0, v1, (sd[0] / (sd[0] - sd[1])));
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
@@ -2840,35 +3052,35 @@ static int ff_visible_quad(const float p[3], const float n[3],
}
else if (sd[1] < 0) {
if (sd[2] > 0) {
- // --+
+ /* --+ */
vec_add_dir(q0, v0, v2, (sd[0] / (sd[0] - sd[2])));
vec_add_dir(q1, v1, v2, (sd[1] / (sd[1] - sd[2])));
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // ---
+ /* --- */
return 0;
}
else {
- // --0
+ /* --0 */
return 0;
}
}
else {
if (sd[2] > 0) {
- // -0+
+ /* -0+ */
vec_add_dir(q0, v0, v2, (sd[0] / (sd[0] - sd[2])));
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // -0-
+ /* -0- */
return 0;
}
else {
- // -00
+ /* -00 */
return 0;
}
}
@@ -2876,21 +3088,21 @@ static int ff_visible_quad(const float p[3], const float n[3],
else {
if (sd[1] > 0) {
if (sd[2] > 0) {
- // 0++
+ /* 0++ */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // 0+-
+ /* 0+- */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
vec_add_dir(q2, v1, v2, (sd[1] / (sd[1] - sd[2])));
copy_v3_v3(q3, q2);
}
else {
- // 0+0
+ /* 0+0 */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
@@ -2899,35 +3111,35 @@ static int ff_visible_quad(const float p[3], const float n[3],
}
else if (sd[1] < 0) {
if (sd[2] > 0) {
- // 0-+
+ /* 0-+ */
copy_v3_v3(q0, v0);
vec_add_dir(q1, v1, v2, (sd[1] / (sd[1] - sd[2])));
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // 0--
+ /* 0-- */
return 0;
}
else {
- // 0-0
+ /* 0-0 */
return 0;
}
}
else {
if (sd[2] > 0) {
- // 00+
+ /* 00+ */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // 00-
+ /* 00- */
return 0;
}
else {
- // 000
+ /* 000 */
return 0;
}
}
@@ -3179,3 +3391,10 @@ int is_quad_convex_v3(const float v1[3], const float v2[3], const float v3[3], c
/* linetests, the 2 diagonals have to instersect to be convex */
return (isect_line_line_v2(vec[0], vec[2], vec[1], vec[3]) > 0) ? TRUE : FALSE;
}
+
+int is_quad_convex_v2(const float v1[2], const float v2[2], const float v3[2], const float v4[2])
+{
+ /* linetests, the 2 diagonals have to instersect to be convex */
+ return (isect_line_line_v2(v1, v3, v2, v4) > 0) ? TRUE : FALSE;
+}
+
diff --git a/source/blender/blenlib/intern/math_matrix.c b/source/blender/blenlib/intern/math_matrix.c
index b3b58dca1a6..1f61b37a1af 100644
--- a/source/blender/blenlib/intern/math_matrix.c
+++ b/source/blender/blenlib/intern/math_matrix.c
@@ -195,7 +195,7 @@ void mul_m3_m3m3(float m1[][3], float m3_[][3], float m2_[][3])
m1[2][2] = m2[2][0] * m3[0][2] + m2[2][1] * m3[1][2] + m2[2][2] * m3[2][2];
}
-void mul_m4_m4m3(float (*m1)[4], float (*m3_)[4], float (*m2_)[3])
+void mul_m4_m4m3(float m1[][4], float m3_[][4], float m2_[][3])
{
float m2[3][3], m3[4][4];
@@ -215,8 +215,14 @@ void mul_m4_m4m3(float (*m1)[4], float (*m3_)[4], float (*m2_)[3])
}
/* m1 = m2 * m3, ignore the elements on the 4th row/column of m3 */
-void mult_m3_m3m4(float m1[][3], float m3[][4], float m2[][3])
+void mult_m3_m3m4(float m1[][3], float m3_[][4], float m2_[][3])
{
+ float m2[3][3], m3[4][4];
+
+ /* copy so it works when m1 is the same pointer as m2 or m3 */
+ copy_m3_m3(m2, m2_);
+ copy_m4_m4(m3, m3_);
+
/* m1[i][j] = m2[i][k] * m3[k][j] */
m1[0][0] = m2[0][0] * m3[0][0] + m2[0][1] * m3[1][0] + m2[0][2] * m3[2][0];
m1[0][1] = m2[0][0] * m3[0][1] + m2[0][1] * m3[1][1] + m2[0][2] * m3[2][1];
@@ -231,8 +237,14 @@ void mult_m3_m3m4(float m1[][3], float m3[][4], float m2[][3])
m1[2][2] = m2[2][0] * m3[0][2] + m2[2][1] * m3[1][2] + m2[2][2] * m3[2][2];
}
-void mul_m4_m3m4(float (*m1)[4], float (*m3)[3], float (*m2)[4])
+void mul_m4_m3m4(float m1[][4], float m3_[][3], float m2_[][4])
{
+ float m2[4][4], m3[3][3];
+
+ /* copy so it works when m1 is the same pointer as m2 or m3 */
+ copy_m4_m4(m2, m2_);
+ copy_m3_m3(m3, m3_);
+
m1[0][0] = m2[0][0] * m3[0][0] + m2[0][1] * m3[1][0] + m2[0][2] * m3[2][0];
m1[0][1] = m2[0][0] * m3[0][1] + m2[0][1] * m3[1][1] + m2[0][2] * m3[2][1];
m1[0][2] = m2[0][0] * m3[0][2] + m2[0][1] * m3[1][2] + m2[0][2] * m3[2][2];
@@ -1111,7 +1123,7 @@ void mat3_to_rot_size(float rot[3][3], float size[3], float mat3[3][3])
/* rotation & scale are linked, we need to create the mat's
* for these together since they are related. */
- /* so scale doesnt interfear with rotation [#24291] */
+ /* so scale doesn't interfere with rotation [#24291] */
/* note: this is a workaround for negative matrix not working for rotation conversion, FIXME */
normalize_m3_m3(mat3_n, mat3);
if (is_negative_m3(mat3)) {
@@ -1271,7 +1283,7 @@ int is_negative_m4(float mat[][4])
/* make a 4x4 matrix out of 3 transform components */
/* matrices are made in the order: scale * rot * loc */
-// TODO: need to have a version that allows for rotation order...
+/* TODO: need to have a version that allows for rotation order... */
void loc_eul_size_to_mat4(float mat[4][4], const float loc[3], const float eul[3], const float size[3])
{
diff --git a/source/blender/blenlib/intern/math_rotation.c b/source/blender/blenlib/intern/math_rotation.c
index f1e08993825..53f2c1cd0d9 100644
--- a/source/blender/blenlib/intern/math_rotation.c
+++ b/source/blender/blenlib/intern/math_rotation.c
@@ -34,8 +34,10 @@
/******************************** Quaternions ********************************/
-/* used to test is a quat is not normalized */
-#define QUAT_EPSILON 0.0001
+/* used to test is a quat is not normalized (only used for debug prints) */
+#ifdef DEBUG
+# define QUAT_EPSILON 0.0001
+#endif
/* convenience, avoids setting Y axis everywhere */
void unit_axis_angle(float axis[3], float *angle)
@@ -113,6 +115,14 @@ void mul_qt_v3(const float q[4], float v[3])
v[1] = t2;
}
+void conjugate_qt_qt(float q1[4], const float q2[4])
+{
+ q1[0] = q2[0];
+ q1[1] = -q2[1];
+ q1[2] = -q2[2];
+ q1[3] = -q2[3];
+}
+
void conjugate_qt(float q[4])
{
q[1] = -q[1];
@@ -166,10 +176,9 @@ void sub_qt_qtqt(float q[4], const float q1[4], const float q2[4])
/* angular mult factor */
void mul_fac_qt_fl(float q[4], const float fac)
{
- float angle = fac * saacos(q[0]); /* quat[0] = cos(0.5 * angle), but now the 0.5 and 2.0 rule out */
-
- float co = (float)cos(angle);
- float si = (float)sin(angle);
+ const float angle = fac * saacos(q[0]); /* quat[0] = cos(0.5 * angle), but now the 0.5 and 2.0 rule out */
+ const float co = cosf(angle);
+ const float si = sinf(angle);
q[0] = co;
normalize_v3(q + 1);
mul_v3_fl(q + 1, si);
@@ -342,8 +351,8 @@ void mat3_to_quat_is_ok(float q[4], float wmat[3][3])
co = mat[2][2];
angle = 0.5f * saacos(co);
- co = (float)cos(angle);
- si = (float)sin(angle);
+ co = cosf(angle);
+ si = sinf(angle);
q1[0] = co;
q1[1] = -nor[0] * si; /* negative here, but why? */
q1[2] = -nor[1] * si;
@@ -357,8 +366,8 @@ void mat3_to_quat_is_ok(float q[4], float wmat[3][3])
/* and align x-axes */
angle = (float)(0.5 * atan2(mat[0][1], mat[0][0]));
- co = (float)cos(angle);
- si = (float)sin(angle);
+ co = cosf(angle);
+ si = sinf(angle);
q2[0] = co;
q2[1] = 0.0f;
q2[2] = 0.0f;
@@ -371,7 +380,7 @@ float normalize_qt(float q[4])
{
float len;
- len = (float)sqrt(dot_qtqt(q, q));
+ len = sqrtf(dot_qtqt(q, q));
if (len != 0.0f) {
mul_qt_fl(q, 1.0f / len);
}
@@ -405,113 +414,110 @@ void rotation_between_vecs_to_quat(float q[4], const float v1[3], const float v2
void rotation_between_quats_to_quat(float q[4], const float q1[4], const float q2[4])
{
float tquat[4];
- double dot = 0.0f;
- int x;
- copy_qt_qt(tquat, q1);
- conjugate_qt(tquat);
- dot = 1.0f / dot_qtqt(tquat, tquat);
+ conjugate_qt_qt(tquat, q1);
- for (x = 0; x < 4; x++)
- tquat[x] *= dot;
+ mul_qt_fl(tquat, 1.0f / dot_qtqt(tquat, tquat));
mul_qt_qtqt(q, tquat, q2);
}
void vec_to_quat(float q[4], const float vec[3], short axis, const short upflag)
{
- float q2[4], nor[3], *fp, mat[3][3], angle, si, co, x2, y2, z2, len1;
+ float nor[3], tvec[3];
+ float angle, si, co, len;
assert(axis >= 0 && axis <= 5);
assert(upflag >= 0 && upflag <= 2);
- /* first rotate to axis */
+ /* first set the quat to unit */
+ unit_qt(q);
+
+ len = len_v3(vec);
+
+ if (UNLIKELY(len == 0.0f)) {
+ return;
+ }
+
+ /* rotate to axis */
if (axis > 2) {
- x2 = vec[0];
- y2 = vec[1];
- z2 = vec[2];
+ copy_v3_v3(tvec, vec);
axis -= 3;
}
else {
- x2 = -vec[0];
- y2 = -vec[1];
- z2 = -vec[2];
+ negate_v3_v3(tvec, vec);
}
- q[0] = 1.0;
- q[1] = q[2] = q[3] = 0.0;
-
- len1 = (float)sqrt(x2 * x2 + y2 * y2 + z2 * z2);
- if (len1 == 0.0f) return;
-
/* nasty! I need a good routine for this...
* problem is a rotation of an Y axis to the negative Y-axis for example.
*/
if (axis == 0) { /* x-axis */
- nor[0] = 0.0;
- nor[1] = -z2;
- nor[2] = y2;
+ nor[0] = 0.0;
+ nor[1] = -tvec[2];
+ nor[2] = tvec[1];
- if (fabs(y2) + fabs(z2) < 0.0001)
- nor[1] = 1.0;
+ if (fabsf(tvec[1]) + fabsf(tvec[2]) < 0.0001f)
+ nor[1] = 1.0f;
- co = x2;
+ co = tvec[0];
}
else if (axis == 1) { /* y-axis */
- nor[0] = z2;
- nor[1] = 0.0;
- nor[2] = -x2;
+ nor[0] = tvec[2];
+ nor[1] = 0.0;
+ nor[2] = -tvec[0];
- if (fabs(x2) + fabs(z2) < 0.0001)
- nor[2] = 1.0;
+ if (fabsf(tvec[0]) + fabsf(tvec[2]) < 0.0001f)
+ nor[2] = 1.0f;
- co = y2;
+ co = tvec[1];
}
else { /* z-axis */
- nor[0] = -y2;
- nor[1] = x2;
- nor[2] = 0.0;
+ nor[0] = -tvec[1];
+ nor[1] = tvec[0];
+ nor[2] = 0.0;
- if (fabs(x2) + fabs(y2) < 0.0001)
- nor[0] = 1.0;
+ if (fabsf(tvec[0]) + fabsf(tvec[1]) < 0.0001f)
+ nor[0] = 1.0f;
- co = z2;
+ co = tvec[2];
}
- co /= len1;
+ co /= len;
normalize_v3(nor);
angle = 0.5f * saacos(co);
- si = (float)sin(angle);
- q[0] = (float)cos(angle);
+ si = sinf(angle);
+ q[0] = cosf(angle);
q[1] = nor[0] * si;
q[2] = nor[1] * si;
q[3] = nor[2] * si;
if (axis != upflag) {
+ float mat[3][3];
+ float q2[4];
+ const float *fp = mat[2];
quat_to_mat3(mat, q);
- fp = mat[2];
if (axis == 0) {
- if (upflag == 1) angle = (float)(0.5 * atan2(fp[2], fp[1]));
- else angle = (float)(-0.5 * atan2(fp[1], fp[2]));
+ if (upflag == 1) angle = 0.5f * atan2f(fp[2], fp[1]);
+ else angle = -0.5f * atan2f(fp[1], fp[2]);
}
else if (axis == 1) {
- if (upflag == 0) angle = (float)(-0.5 * atan2(fp[2], fp[0]));
- else angle = (float)(0.5 * atan2(fp[0], fp[2]));
+ if (upflag == 0) angle = -0.5f * atan2f(fp[2], fp[0]);
+ else angle = 0.5f * atan2f(fp[0], fp[2]);
}
else {
- if (upflag == 0) angle = (float)(0.5 * atan2(-fp[1], -fp[0]));
- else angle = (float)(-0.5 * atan2(-fp[0], -fp[1]));
+ if (upflag == 0) angle = 0.5f * atan2f(-fp[1], -fp[0]);
+ else angle = -0.5f * atan2f(-fp[0], -fp[1]);
}
co = cosf(angle);
- si = sinf(angle) / len1;
+ si = sinf(angle) / len;
q2[0] = co;
- q2[1] = x2 * si;
- q2[2] = y2 * si;
- q2[3] = z2 * si;
+ q2[1] = tvec[0] * si;
+ q2[2] = tvec[1] * si;
+ q2[3] = tvec[2] * si;
mul_qt_qtqt(q, q2, q);
}
@@ -607,24 +613,34 @@ void add_qt_qtqt(float result[4], const float quat1[4], const float quat2[4], co
result[3] = quat1[3] + t * quat2[3];
}
-void tri_to_quat(float quat[4], const float v1[3], const float v2[3], const float v3[3])
+/* same as tri_to_quat() but takes pre-computed normal from the triangle
+ * used for ngons when we know their normal */
+void tri_to_quat_ex(float quat[4], const float v1[3], const float v2[3], const float v3[3],
+ const float no_orig[3])
{
/* imaginary x-axis, y-axis triangle is being rotated */
float vec[3], q1[4], q2[4], n[3], si, co, angle, mat[3][3], imat[3][3];
/* move z-axis to face-normal */
+#if 0
normal_tri_v3(vec, v1, v2, v3);
+#else
+ copy_v3_v3(vec, no_orig);
+ (void)v3;
+#endif
- n[0] = vec[1];
+ n[0] = vec[1];
n[1] = -vec[0];
- n[2] = 0.0f;
+ n[2] = 0.0f;
normalize_v3(n);
- if (n[0] == 0.0f && n[1] == 0.0f) n[0] = 1.0f;
+ if (n[0] == 0.0f && n[1] == 0.0f) {
+ n[0] = 1.0f;
+ }
angle = -0.5f * (float)saacos(vec[2]);
- co = (float)cos(angle);
- si = (float)sin(angle);
+ co = cosf(angle);
+ si = sinf(angle);
q1[0] = co;
q1[1] = n[0] * si;
q1[2] = n[1] * si;
@@ -641,8 +657,8 @@ void tri_to_quat(float quat[4], const float v1[3], const float v2[3], const floa
normalize_v3(vec);
angle = (float)(0.5 * atan2(vec[1], vec[0]));
- co = (float)cos(angle);
- si = (float)sin(angle);
+ co = cosf(angle);
+ si = sinf(angle);
q2[0] = co;
q2[1] = 0.0f;
q2[2] = 0.0f;
@@ -651,6 +667,13 @@ void tri_to_quat(float quat[4], const float v1[3], const float v2[3], const floa
mul_qt_qtqt(quat, q1, q2);
}
+void tri_to_quat(float quat[4], const float v1[3], const float v2[3], const float v3[3])
+{
+ float vec[3];
+ normal_tri_v3(vec, v1, v2, v3);
+ tri_to_quat_ex(quat, v1, v2, v3, vec);
+}
+
void print_qt(const char *str, const float q[4])
{
printf("%s: %.3f %.3f %.3f %.3f\n", str, q[0], q[1], q[2], q[3]);
@@ -659,22 +682,22 @@ void print_qt(const char *str, const float q[4])
/******************************** Axis Angle *********************************/
/* Axis angle to Quaternions */
-void axis_angle_to_quat(float q[4], const float axis[3], float angle)
+void axis_angle_to_quat(float q[4], const float axis[3], const float angle)
{
float nor[3];
- float si;
- if (normalize_v3_v3(nor, axis) == 0.0f) {
+ if (LIKELY(normalize_v3_v3(nor, axis) != 0.0f)) {
+ const float phi = angle / 2.0f;
+ float si;
+ si = sinf(phi);
+ q[0] = cosf(phi);
+ q[1] = nor[0] * si;
+ q[2] = nor[1] * si;
+ q[3] = nor[2] * si;
+ }
+ else {
unit_qt(q);
- return;
}
-
- angle /= 2;
- si = (float)sin(angle);
- q[0] = (float)cos(angle);
- q[1] = nor[0] * si;
- q[2] = nor[1] * si;
- q[3] = nor[2] * si;
}
/* Quaternions to Axis Angle */
@@ -689,14 +712,14 @@ void quat_to_axis_angle(float axis[3], float *angle, const float q[4])
#endif
/* calculate angle/2, and sin(angle/2) */
- ha = (float)acos(q[0]);
- si = (float)sin(ha);
+ ha = acosf(q[0]);
+ si = sinf(ha);
/* from half-angle to angle */
*angle = ha * 2;
/* prevent division by zero for axis conversion */
- if (fabs(si) < 0.0005)
+ if (fabsf(si) < 0.0005f)
si = 1.0f;
axis[0] = q[1] / si;
@@ -739,8 +762,8 @@ void axis_angle_to_mat3(float mat[3][3], const float axis[3], const float angle)
}
/* now convert this to a 3x3 matrix */
- co = (float)cos(angle);
- si = (float)sin(angle);
+ co = cosf(angle);
+ si = sinf(angle);
ico = (1.0f - co);
nsi[0] = nor[0] * si;
@@ -835,9 +858,9 @@ void single_axis_angle_to_mat3(float mat[3][3], const char axis, const float ang
}
/****************************** Vector/Rotation ******************************/
-/* TODO: the following calls should probably be depreceated sometime */
+/* TODO: the following calls should probably be deprecated sometime */
-/* ODO, replace use of this function with axis_angle_to_mat3() */
+/* TODO, replace use of this function with axis_angle_to_mat3() */
void vec_rot_to_mat3(float mat[][3], const float vec[3], const float phi)
{
/* rotation of phi radials around vec */
@@ -849,8 +872,8 @@ void vec_rot_to_mat3(float mat[][3], const float vec[3], const float phi)
vx2 = vx * vx;
vy2 = vy * vy;
vz2 = vz * vz;
- co = (float)cos(phi);
- si = (float)sin(phi);
+ co = cosf(phi);
+ si = sinf(phi);
mat[0][0] = vx2 + co * (1.0f - vx2);
mat[0][1] = vx * vy * (1.0f - co) + vz * si;
@@ -863,38 +886,6 @@ void vec_rot_to_mat3(float mat[][3], const float vec[3], const float phi)
mat[2][2] = vz2 + co * (1.0f - vz2);
}
-/* axis angle to 4x4 matrix */
-void vec_rot_to_mat4(float mat[][4], const float vec[3], const float phi)
-{
- float tmat[3][3];
-
- vec_rot_to_mat3(tmat, vec, phi);
- unit_m4(mat);
- copy_m4_m3(mat, tmat);
-}
-
-/* axis angle to quaternion */
-void vec_rot_to_quat(float *quat, const float vec[3], const float phi)
-{
- /* rotation of phi radials around vec */
- float si;
-
- quat[1] = vec[0];
- quat[2] = vec[1];
- quat[3] = vec[2];
-
- if (normalize_v3(quat + 1) == 0.0f) {
- unit_qt(quat);
- }
- else {
- quat[0] = (float)cos((double)phi / 2.0);
- si = (float)sin((double)phi / 2.0);
- quat[1] *= si;
- quat[2] *= si;
- quat[3] *= si;
- }
-}
-
/******************************** XYZ Eulers *********************************/
/* XYZ order */
@@ -998,7 +989,7 @@ void mat3_to_eul(float *eul, float tmat[][3])
mat3_to_eul2(tmat, eul1, eul2);
/* return best, which is just the one with lowest values it in */
- if (fabs(eul1[0]) + fabs(eul1[1]) + fabs(eul1[2]) > fabs(eul2[0]) + fabs(eul2[1]) + fabs(eul2[2])) {
+ if (fabsf(eul1[0]) + fabsf(eul1[1]) + fabsf(eul1[2]) > fabsf(eul2[0]) + fabsf(eul2[1]) + fabsf(eul2[2])) {
copy_v3_v3(eul, eul2);
}
else {
@@ -1071,84 +1062,46 @@ void rotate_eul(float *beul, const char axis, const float ang)
}
-/* exported to transform.c */
-
/* order independent! */
void compatible_eul(float eul[3], const float oldrot[3])
{
- float dx, dy, dz;
+ /* we could use M_PI as pi_thresh: which is correct but 5.1 gives better results.
+ * Checked with baking actions to fcurves - campbell */
+ const float pi_thresh = (5.1f);
+ const float pi_x2 = (2.0f * (float)M_PI);
+
+ float deul[3];
+ unsigned int i;
/* correct differences of about 360 degrees first */
- dx = eul[0] - oldrot[0];
- dy = eul[1] - oldrot[1];
- dz = eul[2] - oldrot[2];
-
- while (fabs(dx) > 5.1) {
- if (dx > 0.0f) eul[0] -= 2.0f * (float)M_PI;
- else eul[0] += 2.0f * (float)M_PI;
- dx = eul[0] - oldrot[0];
- }
- while (fabs(dy) > 5.1) {
- if (dy > 0.0f) eul[1] -= 2.0f * (float)M_PI;
- else eul[1] += 2.0f * (float)M_PI;
- dy = eul[1] - oldrot[1];
- }
- while (fabs(dz) > 5.1) {
- if (dz > 0.0f) eul[2] -= 2.0f * (float)M_PI;
- else eul[2] += 2.0f * (float)M_PI;
- dz = eul[2] - oldrot[2];
+ for (i = 0; i < 3; i++) {
+ deul[i] = eul[i] - oldrot[i];
+ if (deul[i] > pi_thresh) {
+ eul[i] -= floorf(( deul[i] / pi_x2) + 0.5) * pi_x2;
+ deul[i] = eul[i] - oldrot[i];
+ }
+ else if (deul[i] < -pi_thresh) {
+ eul[i] += floorf((-deul[i] / pi_x2) + 0.5) * pi_x2;
+ deul[i] = eul[i] - oldrot[i];
+ }
}
/* is 1 of the axis rotations larger than 180 degrees and the other small? NO ELSE IF!! */
- if (fabs(dx) > 3.2 && fabs(dy) < 1.6 && fabs(dz) < 1.6) {
- if (dx > 0.0f) eul[0] -= 2.0f * (float)M_PI;
- else eul[0] += 2.0f * (float)M_PI;
+ if (fabsf(deul[0]) > 3.2f && fabsf(deul[1]) < 1.6f && fabsf(deul[2]) < 1.6f) {
+ if (deul[0] > 0.0f) eul[0] -= pi_x2;
+ else eul[0] += pi_x2;
}
- if (fabs(dy) > 3.2 && fabs(dz) < 1.6 && fabs(dx) < 1.6) {
- if (dy > 0.0f) eul[1] -= 2.0f * (float)M_PI;
- else eul[1] += 2.0f * (float)M_PI;
+ if (fabsf(deul[1]) > 3.2f && fabsf(deul[2]) < 1.6f && fabsf(deul[0]) < 1.6f) {
+ if (deul[1] > 0.0f) eul[1] -= pi_x2;
+ else eul[1] += pi_x2;
}
- if (fabs(dz) > 3.2 && fabs(dx) < 1.6 && fabs(dy) < 1.6) {
- if (dz > 0.0f) eul[2] -= 2.0f * (float)M_PI;
- else eul[2] += 2.0f * (float)M_PI;
+ if (fabsf(deul[2]) > 3.2f && fabsf(deul[0]) < 1.6f && fabsf(deul[1]) < 1.6f) {
+ if (deul[2] > 0.0f) eul[2] -= pi_x2;
+ else eul[2] += pi_x2;
}
- /* the method below was there from ancient days... but why! probably because the code sucks :)
- */
-#if 0
- /* calc again */
- dx = eul[0] - oldrot[0];
- dy = eul[1] - oldrot[1];
- dz = eul[2] - oldrot[2];
-
- /* special case, tested for x-z */
-
- if ((fabs(dx) > 3.1 && fabs(dz) > 1.5) || (fabs(dx) > 1.5 && fabs(dz) > 3.1)) {
- if (dx > 0.0) eul[0] -= M_PI;
- else eul[0] += M_PI;
- if (eul[1] > 0.0) eul[1] = M_PI - eul[1];
- else eul[1] = -M_PI - eul[1];
- if (dz > 0.0) eul[2] -= M_PI;
- else eul[2] += M_PI;
-
- }
- else if ((fabs(dx) > 3.1 && fabs(dy) > 1.5) || (fabs(dx) > 1.5 && fabs(dy) > 3.1)) {
- if (dx > 0.0) eul[0] -= M_PI;
- else eul[0] += M_PI;
- if (dy > 0.0) eul[1] -= M_PI;
- else eul[1] += M_PI;
- if (eul[2] > 0.0) eul[2] = M_PI - eul[2];
- else eul[2] = -M_PI - eul[2];
- }
- else if ((fabs(dy) > 3.1 && fabs(dz) > 1.5) || (fabs(dy) > 1.5 && fabs(dz) > 3.1)) {
- if (eul[0] > 0.0) eul[0] = M_PI - eul[0];
- else eul[0] = -M_PI - eul[0];
- if (dy > 0.0) eul[1] -= M_PI;
- else eul[1] += M_PI;
- if (dz > 0.0) eul[2] -= M_PI;
- else eul[2] += M_PI;
- }
-#endif
+#undef PI_THRESH
+#undef PI_2F
}
/* uses 2 methods to retrieve eulers, and picks the closest */
@@ -1164,8 +1117,8 @@ void mat3_to_compatible_eul(float eul[3], const float oldrot[3], float mat[][3])
compatible_eul(eul1, oldrot);
compatible_eul(eul2, oldrot);
- d1 = (float)fabs(eul1[0] - oldrot[0]) + (float)fabs(eul1[1] - oldrot[1]) + (float)fabs(eul1[2] - oldrot[2]);
- d2 = (float)fabs(eul2[0] - oldrot[0]) + (float)fabs(eul2[1] - oldrot[1]) + (float)fabs(eul2[2] - oldrot[2]);
+ d1 = fabsf(eul1[0] - oldrot[0]) + fabsf(eul1[1] - oldrot[1]) + fabsf(eul1[2] - oldrot[2]);
+ d2 = fabsf(eul2[0] - oldrot[0]) + fabsf(eul2[1] - oldrot[1]) + fabsf(eul2[2] - oldrot[2]);
/* return best, which is just the one with lowest difference */
if (d1 > d2) {
@@ -1197,14 +1150,14 @@ typedef struct RotOrderInfo {
/* Array of info for Rotation Order calculations
* WARNING: must be kept in same order as eEulerRotationOrders
*/
-static RotOrderInfo rotOrders[] = {
+static const RotOrderInfo rotOrders[] = {
/* i, j, k, n */
- {{0, 1, 2}, 0}, // XYZ
- {{0, 2, 1}, 1}, // XZY
- {{1, 0, 2}, 1}, // YXZ
- {{1, 2, 0}, 0}, // YZX
- {{2, 0, 1}, 0}, // ZXY
- {{2, 1, 0}, 1} // ZYX
+ {{0, 1, 2}, 0}, /* XYZ */
+ {{0, 2, 1}, 1}, /* XZY */
+ {{1, 0, 2}, 1}, /* YXZ */
+ {{1, 2, 0}, 0}, /* YZX */
+ {{2, 0, 1}, 0}, /* ZXY */
+ {{2, 1, 0}, 1} /* ZYX */
};
/* Get relevant pointer to rotation order set from the array
@@ -1216,7 +1169,7 @@ static RotOrderInfo rotOrders[] = {
/* Construct quaternion from Euler angles (in radians). */
void eulO_to_quat(float q[4], const float e[3], const short order)
{
- RotOrderInfo *R = GET_ROTATIONORDER_INFO(order);
+ const RotOrderInfo *R = GET_ROTATIONORDER_INFO(order);
short i = R->axis[0], j = R->axis[1], k = R->axis[2];
double ti, tj, th, ci, cj, ch, si, sj, sh, cc, cs, sc, ss;
double a[3];
@@ -1261,7 +1214,7 @@ void quat_to_eulO(float e[3], short const order, const float q[4])
/* Construct 3x3 matrix from Euler angles (in radians). */
void eulO_to_mat3(float M[3][3], const float e[3], const short order)
{
- RotOrderInfo *R = GET_ROTATIONORDER_INFO(order);
+ const RotOrderInfo *R = GET_ROTATIONORDER_INFO(order);
short i = R->axis[0], j = R->axis[1], k = R->axis[2];
double ti, tj, th, ci, cj, ch, si, sj, sh, cc, cs, sc, ss;
@@ -1300,9 +1253,9 @@ void eulO_to_mat3(float M[3][3], const float e[3], const short order)
}
/* returns two euler calculation methods, so we can pick the best */
-static void mat3_to_eulo2(float M[3][3], float *e1, float *e2, short order)
+static void mat3_to_eulo2(float M[3][3], float *e1, float *e2, const short order)
{
- RotOrderInfo *R = GET_ROTATIONORDER_INFO(order);
+ const RotOrderInfo *R = GET_ROTATIONORDER_INFO(order);
short i = R->axis[0], j = R->axis[1], k = R->axis[2];
float m[3][3];
double cy;
@@ -1360,7 +1313,7 @@ void mat3_to_eulO(float eul[3], const short order, float M[3][3])
mat3_to_eulo2(M, eul1, eul2, order);
/* return best, which is just the one with lowest values it in */
- if (fabs(eul1[0]) + fabs(eul1[1]) + fabs(eul1[2]) > fabs(eul2[0]) + fabs(eul2[1]) + fabs(eul2[2])) {
+ if (fabsf(eul1[0]) + fabsf(eul1[1]) + fabsf(eul1[2]) > fabsf(eul2[0]) + fabsf(eul2[1]) + fabsf(eul2[2])) {
copy_v3_v3(eul, eul2);
}
else {
@@ -1380,7 +1333,7 @@ void mat4_to_eulO(float e[3], const short order, float M[4][4])
}
/* uses 2 methods to retrieve eulers, and picks the closest */
-void mat3_to_compatible_eulO(float eul[3], float oldrot[3], short order, float mat[3][3])
+void mat3_to_compatible_eulO(float eul[3], float oldrot[3], const short order, float mat[3][3])
{
float eul1[3], eul2[3];
float d1, d2;
@@ -1400,7 +1353,7 @@ void mat3_to_compatible_eulO(float eul[3], float oldrot[3], short order, float m
copy_v3_v3(eul, eul1);
}
-void mat4_to_compatible_eulO(float eul[3], float oldrot[3], short order, float M[4][4])
+void mat4_to_compatible_eulO(float eul[3], float oldrot[3], const short order, float M[4][4])
{
float m[3][3];
@@ -1412,7 +1365,7 @@ void mat4_to_compatible_eulO(float eul[3], float oldrot[3], short order, float M
/* rotate the given euler by the given angle on the specified axis */
// NOTE: is this safe to do with different axis orders?
-void rotate_eulO(float beul[3], short order, char axis, float ang)
+void rotate_eulO(float beul[3], const short order, char axis, float ang)
{
float eul[3], mat1[3][3], mat2[3][3], totmat[3][3];
@@ -1437,7 +1390,7 @@ void rotate_eulO(float beul[3], short order, char axis, float ang)
/* the matrix is written to as 3 axis vectors */
void eulO_to_gimbal_axis(float gmat[][3], const float eul[3], const short order)
{
- RotOrderInfo *R = GET_ROTATIONORDER_INFO(order);
+ const RotOrderInfo *R = GET_ROTATIONORDER_INFO(order);
float mat[3][3];
float teul[3];
@@ -1505,10 +1458,9 @@ void mat4_to_dquat(DualQuat *dq, float basemat[][4], float mat[][4])
mult_m4_m4m4(baseRS, mat, basemat);
mat4_to_size(scale, baseRS);
- copy_v3_v3(dscale, scale);
- dscale[0] -= 1.0f;
- dscale[1] -= 1.0f;
- dscale[2] -= 1.0f;
+ dscale[0] = scale[0] - 1.0f;
+ dscale[1] = scale[1] - 1.0f;
+ dscale[2] = scale[2] - 1.0f;
if ((determinant_m4(mat) < 0.0f) || len_v3(dscale) > 1e-4f) {
/* extract R and S */
@@ -1544,10 +1496,10 @@ void mat4_to_dquat(DualQuat *dq, float basemat[][4], float mat[][4])
/* dual part */
t = R[3];
q = dq->quat;
- dq->trans[0] = -0.5f * (t[0] * q[1] + t[1] * q[2] + t[2] * q[3]);
- dq->trans[1] = 0.5f * (t[0] * q[0] + t[1] * q[3] - t[2] * q[2]);
- dq->trans[2] = 0.5f * (-t[0] * q[3] + t[1] * q[0] + t[2] * q[1]);
- dq->trans[3] = 0.5f * (t[0] * q[2] - t[1] * q[1] + t[2] * q[0]);
+ dq->trans[0] = -0.5f * ( t[0] * q[1] + t[1] * q[2] + t[2] * q[3]);
+ dq->trans[1] = 0.5f * ( t[0] * q[0] + t[1] * q[3] - t[2] * q[2]);
+ dq->trans[2] = 0.5f * (-t[0] * q[3] + t[1] * q[0] + t[2] * q[1]);
+ dq->trans[3] = 0.5f * ( t[0] * q[2] - t[1] * q[1] + t[2] * q[0]);
}
void dquat_to_mat4(float mat[][4], DualQuat *dq)
@@ -1558,7 +1510,7 @@ void dquat_to_mat4(float mat[][4], DualQuat *dq)
copy_qt_qt(q0, dq->quat);
/* normalize */
- len = (float)sqrt(dot_qtqt(q0, q0));
+ len = sqrtf(dot_qtqt(q0, q0));
if (len != 0.0f)
mul_qt_fl(q0, 1.0f / len);
@@ -1691,12 +1643,12 @@ void quat_apply_track(float quat[4], short axis, short upflag)
{
/* rotations are hard coded to match vec_to_quat */
const float quat_track[][4] = {
- {0.70710676908493, 0.0, -0.70710676908493, 0.0}, /* pos-y90 */
+ {M_SQRT1_2, 0.0, -M_SQRT1_2, 0.0}, /* pos-y90 */
{0.5, 0.5, 0.5, 0.5}, /* Quaternion((1,0,0), radians(90)) * Quaternion((0,1,0), radians(90)) */
- {0.70710676908493, 0.0, 0.0, 0.70710676908493}, /* pos-z90 */
- {0.70710676908493, 0.0, 0.70710676908493, 0.0}, /* neg-y90 */
+ {M_SQRT1_2, 0.0, 0.0, M_SQRT1_2}, /* pos-z90 */
+ {M_SQRT1_2, 0.0, M_SQRT1_2, 0.0}, /* neg-y90 */
{0.5, -0.5, -0.5, 0.5}, /* Quaternion((1,0,0), radians(-90)) * Quaternion((0,1,0), radians(-90)) */
- {-3.0908619663705394e-08, 0.70710676908493, 0.70710676908493, 3.0908619663705394e-08} /* no rotation */
+ {0.0, M_SQRT1_2, M_SQRT1_2, 0.0} /* no rotation */
};
assert(axis >= 0 && axis <= 5);
@@ -1711,8 +1663,8 @@ void quat_apply_track(float quat[4], short axis, short upflag)
* up axis is used X->Y, Y->X, Z->X, if this first up axis isn used then rotate 90d
* the strange bit shift below just find the low axis {X:Y, Y:X, Z:X} */
if (upflag != (2 - axis) >> 1) {
- float q[4] = {0.70710676908493, 0.0, 0.0, 0.0}; /* assign 90d rotation axis */
- q[axis + 1] = ((axis == 1)) ? 0.70710676908493 : -0.70710676908493; /* flip non Y axis */
+ float q[4] = {M_SQRT1_2, 0.0, 0.0, 0.0}; /* assign 90d rotation axis */
+ q[axis + 1] = ((axis == 1)) ? M_SQRT1_2 : -M_SQRT1_2; /* flip non Y axis */
mul_qt_qtqt(quat, quat, q);
}
}
diff --git a/source/blender/blenlib/intern/math_vector.c b/source/blender/blenlib/intern/math_vector.c
index 5cda1c0b81f..4196bab0474 100644
--- a/source/blender/blenlib/intern/math_vector.c
+++ b/source/blender/blenlib/intern/math_vector.c
@@ -451,6 +451,29 @@ void minmax_v3v3_v3(float min[3], float max[3], const float vec[3])
if (max[2] < vec[2]) max[2] = vec[2];
}
+/** ensure \a v1 is \a dist from \a v2 */
+void dist_ensure_v3_v3fl(float v1[3], const float v2[3], const float dist)
+{
+ if (!equals_v3v3(v2, v1)) {
+ float nor[3];
+
+ sub_v3_v3v3(nor, v1, v2);
+ normalize_v3(nor);
+ madd_v3_v3v3fl(v1, v2, nor, dist);
+ }
+}
+
+void dist_ensure_v2_v2fl(float v1[2], const float v2[2], const float dist)
+{
+ if (!equals_v2v2(v2, v1)) {
+ float nor[2];
+
+ sub_v2_v2v2(nor, v1, v2);
+ normalize_v2(nor);
+ madd_v2_v2v2fl(v1, v2, nor, dist);
+ }
+}
+
/***************************** Array Functions *******************************/
double dot_vn_vn(const float *array_src_a, const float *array_src_b, const int size)
diff --git a/source/blender/blenlib/intern/math_vector_inline.c b/source/blender/blenlib/intern/math_vector_inline.c
index e89b2ece467..2cfe999e032 100644
--- a/source/blender/blenlib/intern/math_vector_inline.c
+++ b/source/blender/blenlib/intern/math_vector_inline.c
@@ -231,6 +231,13 @@ MINLINE void swap_v4_v4(float a[4], float b[4])
/********************************* Arithmetic ********************************/
+MINLINE void add_v2_fl(float r[2], float f)
+{
+ r[0] += f;
+ r[1] += f;
+}
+
+
MINLINE void add_v3_fl(float r[3], float f)
{
r[0] += f;
@@ -521,7 +528,7 @@ MINLINE void cross_v3_v3v3(float r[3], const float a[3], const float b[3])
}
/* Newell's Method */
-/* excuse this fairly spesific function,
+/* excuse this fairly specific function,
* its used for polygon normals all over the place
* could use a better name */
MINLINE void add_newell_cross_v3_v3v3(float n[3], const float v_prev[3], const float v_curr[3])
@@ -682,7 +689,7 @@ MINLINE void normal_float_to_short_v3(short out[3], const float in[3])
/********************************* Comparison ********************************/
-MINLINE int is_zero_v2(const float v[3])
+MINLINE int is_zero_v2(const float v[2])
{
return (v[0] == 0 && v[1] == 0);
}
@@ -717,6 +724,15 @@ MINLINE int equals_v4v4(const float v1[4], const float v2[4])
return ((v1[0] == v2[0]) && (v1[1] == v2[1]) && (v1[2] == v2[2]) && (v1[3] == v2[3]));
}
+MINLINE int compare_v2v2(const float v1[2], const float v2[2], const float limit)
+{
+ if (fabsf(v1[0] - v2[0]) < limit)
+ if (fabsf(v1[1] - v2[1]) < limit)
+ return 1;
+
+ return 0;
+}
+
MINLINE int compare_v3v3(const float v1[3], const float v2[3], const float limit)
{
if (fabsf(v1[0] - v2[0]) < limit)
diff --git a/source/blender/blenlib/intern/md5.c b/source/blender/blenlib/intern/md5.c
index a521d0e523b..4a09afe2e3d 100644
--- a/source/blender/blenlib/intern/md5.c
+++ b/source/blender/blenlib/intern/md5.c
@@ -2,6 +2,8 @@
* \ingroup imbuf
*/
+#include "BLI_md5.h" /* own include */
+
/* md5.c - Functions to compute MD5 message digest of files or memory blocks
according to the definition of MD5 in RFC 1321 from April 1992.
Copyright (C) 1995 Software Foundation, Inc.
diff --git a/source/blender/blenlib/intern/noise.c b/source/blender/blenlib/intern/noise.c
index 2ff0b564592..792bf929182 100644
--- a/source/blender/blenlib/intern/noise.c
+++ b/source/blender/blenlib/intern/noise.c
@@ -45,7 +45,8 @@ static float noise3_perlin(float vec[3]);
//static float turbulence_perlin(float *point, float lofreq, float hifreq);
//static float turbulencep(float noisesize, float x, float y, float z, int nr);
-#define HASHVEC(x, y, z) hashvectf + 3 * hash[(hash[(hash[(z) & 255] + (y)) & 255] + (x)) & 255]
+/* UNUSED */
+// #define HASHVEC(x, y, z) hashvectf + 3 * hash[(hash[(hash[(z) & 255] + (y)) & 255] + (x)) & 255]
/* needed for voronoi */
#define HASHPNT(x, y, z) hashpntf + 3 * hash[(hash[(hash[(z) & 255] + (y)) & 255] + (x)) & 255]
@@ -282,8 +283,8 @@ static float npfade(float t)
static float grad(int hash, float x, float y, float z)
{
- int h = hash & 15; // CONVERT LO 4 BITS OF HASH CODE
- float u = h < 8 ? x : y, // INTO 12 GRADIENT DIRECTIONS.
+ int h = hash & 15; /* CONVERT LO 4 BITS OF HASH CODE */
+ float u = h < 8 ? x : y, /* INTO 12 GRADIENT DIRECTIONS. */
v = h < 4 ? y : h == 12 || h == 14 ? x : z;
return ((h & 1) == 0 ? u : -u) + ((h & 2) == 0 ? v : -v);
}
@@ -293,21 +294,21 @@ static float newPerlin(float x, float y, float z)
{
int A, AA, AB, B, BA, BB;
float u = floor(x), v = floor(y), w = floor(z);
- int X = ((int)u) & 255, Y = ((int)v) & 255, Z = ((int)w) & 255; // FIND UNIT CUBE THAT CONTAINS POINT
- x -= u; // FIND RELATIVE X,Y,Z
- y -= v; // OF POINT IN CUBE.
+ int X = ((int)u) & 255, Y = ((int)v) & 255, Z = ((int)w) & 255; /* FIND UNIT CUBE THAT CONTAINS POINT */
+ x -= u; /* FIND RELATIVE X,Y,Z */
+ y -= v; /* OF POINT IN CUBE. */
z -= w;
- u = npfade(x); // COMPUTE FADE CURVES
- v = npfade(y); // FOR EACH OF X,Y,Z.
+ u = npfade(x); /* COMPUTE FADE CURVES */
+ v = npfade(y); /* FOR EACH OF X,Y,Z. */
w = npfade(z);
- A = hash[X ]+Y; AA = hash[A]+Z; AB = hash[A+1]+Z; // HASH COORDINATES OF
- B = hash[X+1]+Y; BA = hash[B]+Z; BB = hash[B+1]+Z; // THE 8 CUBE CORNERS,
- return lerp(w, lerp(v, lerp(u, grad(hash[AA ], x, y, z ), // AND ADD
- grad(hash[BA ], x - 1, y, z )), // BLENDED
- lerp(u, grad(hash[AB ], x, y - 1, z ), // RESULTS
- grad(hash[BB ], x - 1, y - 1, z ))), // FROM 8
- lerp(v, lerp(u, grad(hash[AA + 1], x, y, z - 1), // CORNERS
- grad(hash[BA + 1], x - 1, y, z - 1)), // OF CUBE
+ A = hash[X ]+Y; AA = hash[A]+Z; AB = hash[A+1]+Z; /* HASH COORDINATES OF */
+ B = hash[X+1]+Y; BA = hash[B]+Z; BB = hash[B+1]+Z; /* THE 8 CUBE CORNERS, */
+ return lerp(w, lerp(v, lerp(u, grad(hash[AA ], x, y, z ), /* AND ADD */
+ grad(hash[BA ], x - 1, y, z )), /* BLENDED */
+ lerp(u, grad(hash[AB ], x, y - 1, z ), /* RESULTS */
+ grad(hash[BB ], x - 1, y - 1, z ))), /* FROM 8 */
+ lerp(v, lerp(u, grad(hash[AA + 1], x, y, z - 1), /* CORNERS */
+ grad(hash[BA + 1], x - 1, y, z - 1)), /* OF CUBE */
lerp(u, grad(hash[AB + 1], x, y - 1, z - 1),
grad(hash[BB + 1], x - 1, y - 1, z - 1))));
}
@@ -1130,7 +1131,7 @@ static float turbulencep(float noisesize, float x, float y, float z, int nr)
/* VORONOI/WORLEY */
/******************/
-/* distance metrics for voronoi, e parameter only used in Minkovsky */
+/* distance metrics for voronoi, e parameter only used in Minkowski */
/* Camberra omitted, didn't seem useful */
/* distance squared */
@@ -1161,7 +1162,7 @@ static float dist_Chebychev(float x, float y, float z, float e)
return ((z > t) ? z : t);
}
-/* minkovsky preset exponent 0.5 */
+/* minkowski preset exponent 0.5 */
static float dist_MinkovskyH(float x, float y, float z, float e)
{
float d = sqrtf(fabsf(x)) + sqrtf(fabsf(y)) + sqrtf(fabsf(z));
@@ -1169,7 +1170,7 @@ static float dist_MinkovskyH(float x, float y, float z, float e)
return (d * d);
}
-/* minkovsky preset exponent 4 */
+/* minkowski preset exponent 4 */
static float dist_Minkovsky4(float x, float y, float z, float e)
{
(void)e;
@@ -1179,7 +1180,7 @@ static float dist_Minkovsky4(float x, float y, float z, float e)
return sqrtf(sqrtf(x * x + y * y + z * z));
}
-/* Minkovsky, general case, slow, maybe too slow to be useful */
+/* Minkowski, general case, slow, maybe too slow to be useful */
static float dist_Minkovsky(float x, float y, float z, float e)
{
return powf(powf(fabsf(x), e) + powf(fabsf(y), e) + powf(fabsf(z), e), 1.0f / e);
diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c
index c85efc1fd9a..cc482e2d3d8 100644
--- a/source/blender/blenlib/intern/path_util.c
+++ b/source/blender/blenlib/intern/path_util.c
@@ -47,7 +47,6 @@
#include "BLI_string_utf8.h"
#include "BLI_utildefines.h"
-#include "BKE_utildefines.h"
#include "BKE_blender.h" // BLENDER_VERSION
#include "GHOST_Path-api.h"
@@ -411,6 +410,11 @@ void BLI_cleanup_file(const char *relabase, char *dir)
BLI_del_slash(dir);
}
+int BLI_path_is_rel(const char *path)
+{
+ return path[0] == '/' && path[1] == '/';
+}
+
void BLI_path_rel(char *file, const char *relfile)
{
char *lslash;
@@ -418,10 +422,14 @@ void BLI_path_rel(char *file, const char *relfile)
char res[FILE_MAX];
/* if file is already relative, bail out */
- if (file[0] == '/' && file[1] == '/') return;
+ if (BLI_path_is_rel(file)) {
+ return;
+ }
/* also bail out if relative path is not set */
- if (relfile[0] == 0) return;
+ if (relfile[0] == '\0') {
+ return;
+ }
#ifdef WIN32
if (BLI_strnlen(relfile, 3) > 2 && relfile[1] != ':') {
@@ -630,7 +638,7 @@ int BLI_path_frame_range(char *path, int sta, int end, int digits)
int BLI_path_abs(char *path, const char *basepath)
{
- int wasrelative = (strncmp(path, "//", 2) == 0);
+ int wasrelative = BLI_path_is_rel(path);
char tmp[FILE_MAX];
char base[FILE_MAX];
#ifdef WIN32
@@ -1360,7 +1368,7 @@ int BLI_testextensie(const char *str, const char *ext)
retval = 0;
}
else if (BLI_strcasecmp(ext, str + a - b)) {
- retval = 0;
+ retval = 0;
}
else {
retval = 1;
@@ -1552,7 +1560,7 @@ char *BLI_path_basename(char *path)
* 0 if image filename is empty or if destination path
* matches image path (i.e. both are the same file).
* 2 if source is identical to destination.
- * 1 if rebase was successfull
+ * 1 if rebase was successful
* -------------------------------------------------------------
* Hint: Trailing slash in dest_dir is optional.
*
diff --git a/source/blender/blenlib/intern/pbvh.c b/source/blender/blenlib/intern/pbvh.c
index 409a9f88f39..d3d8d371f60 100644
--- a/source/blender/blenlib/intern/pbvh.c
+++ b/source/blender/blenlib/intern/pbvh.c
@@ -189,8 +189,8 @@ static void BB_expand(BB *bb, float co[3])
{
int i;
for (i = 0; i < 3; ++i) {
- bb->bmin[i] = MIN2(bb->bmin[i], co[i]);
- bb->bmax[i] = MAX2(bb->bmax[i], co[i]);
+ bb->bmin[i] = minf(bb->bmin[i], co[i]);
+ bb->bmax[i] = maxf(bb->bmax[i], co[i]);
}
}
@@ -199,8 +199,8 @@ static void BB_expand_with_bb(BB *bb, BB *bb2)
{
int i;
for (i = 0; i < 3; ++i) {
- bb->bmin[i] = MIN2(bb->bmin[i], bb2->bmin[i]);
- bb->bmax[i] = MAX2(bb->bmax[i], bb2->bmax[i]);
+ bb->bmin[i] = minf(bb->bmin[i], bb2->bmin[i]);
+ bb->bmax[i] = maxf(bb->bmax[i], bb2->bmax[i]);
}
}
@@ -260,12 +260,12 @@ static void update_node_vb(PBVH *bvh, PBVHNode *node)
node->vb = vb;
}
-//void BLI_pbvh_node_BB_reset(PBVHNode* node)
+//void BLI_pbvh_node_BB_reset(PBVHNode *node)
//{
// BB_reset(&node->vb);
//}
//
-//void BLI_pbvh_node_BB_expand(PBVHNode* node, float co[3])
+//void BLI_pbvh_node_BB_expand(PBVHNode *node, float co[3])
//{
// BB_expand(&node->vb, co);
//}
@@ -487,7 +487,7 @@ static void build_leaf(PBVH *bvh, int node_index, BBC *prim_bbc,
/* Return zero if all primitives in the node can be drawn with the
* same material (including flat/smooth shading), non-zerootherwise */
-int leaf_needs_material_split(PBVH *bvh, int offset, int count)
+static int leaf_needs_material_split(PBVH *bvh, int offset, int count)
{
int i, prim;
@@ -663,7 +663,7 @@ void BLI_pbvh_build_grids(PBVH *bvh, CCGElem **grids, DMGridAdjacency *gridadj,
bvh->totgrid = totgrid;
bvh->gridkey = *key;
bvh->grid_hidden = grid_hidden;
- bvh->leaf_limit = MAX2(LEAF_LIMIT / ((gridsize - 1) * (gridsize - 1)), 1);
+ bvh->leaf_limit = maxi(LEAF_LIMIT / ((gridsize - 1) * (gridsize - 1)), 1);
BB_reset(&cb);
@@ -1424,56 +1424,21 @@ void BLI_pbvh_node_get_proxies(PBVHNode *node, PBVHProxyNode **proxies, int *pro
/********************************* Raycast ***********************************/
typedef struct {
- /* Ray */
- float start[3];
- int sign[3];
- float inv_dir[3];
+ IsectRayAABBData ray;
int original;
} RaycastData;
-/* Adapted from here: http://www.gamedev.net/community/forums/topic.asp?topic_id=459973 */
static int ray_aabb_intersect(PBVHNode *node, void *data_v)
{
- RaycastData *ray = data_v;
- float bbox[2][3];
- float tmin, tmax, tymin, tymax, tzmin, tzmax;
+ RaycastData *rcd = data_v;
+ float bb_min[3], bb_max[3];
- if (ray->original)
- BLI_pbvh_node_get_original_BB(node, bbox[0], bbox[1]);
+ if (rcd->original)
+ BLI_pbvh_node_get_original_BB(node, bb_min, bb_max);
else
- BLI_pbvh_node_get_BB(node, bbox[0], bbox[1]);
-
- tmin = (bbox[ray->sign[0]][0] - ray->start[0]) * ray->inv_dir[0];
- tmax = (bbox[1 - ray->sign[0]][0] - ray->start[0]) * ray->inv_dir[0];
-
- tymin = (bbox[ray->sign[1]][1] - ray->start[1]) * ray->inv_dir[1];
- tymax = (bbox[1 - ray->sign[1]][1] - ray->start[1]) * ray->inv_dir[1];
-
- if ((tmin > tymax) || (tymin > tmax))
- return 0;
-
- if (tymin > tmin)
- tmin = tymin;
-
- if (tymax < tmax)
- tmax = tymax;
+ BLI_pbvh_node_get_BB(node, bb_min, bb_max);
- tzmin = (bbox[ray->sign[2]][2] - ray->start[2]) * ray->inv_dir[2];
- tzmax = (bbox[1 - ray->sign[2]][2] - ray->start[2]) * ray->inv_dir[2];
-
- if ((tmin > tzmax) || (tzmin > tmax))
- return 0;
-
- if (tzmin > tmin)
- tmin = tzmin;
-
- // XXX jwilkins: tmax does not need to be updated since we don't use it
- // keeping this here for future reference
- //if (tzmax < tmax) tmax = tzmax;
-
- node->tmin = tmin;
-
- return 1;
+ return isect_ray_aabb(&rcd->ray, bb_min, bb_max, &node->tmin);
}
void BLI_pbvh_raycast(PBVH *bvh, BLI_pbvh_HitOccludedCallback cb, void *data,
@@ -1482,13 +1447,7 @@ void BLI_pbvh_raycast(PBVH *bvh, BLI_pbvh_HitOccludedCallback cb, void *data,
{
RaycastData rcd;
- copy_v3_v3(rcd.start, ray_start);
- rcd.inv_dir[0] = 1.0f / ray_normal[0];
- rcd.inv_dir[1] = 1.0f / ray_normal[1];
- rcd.inv_dir[2] = 1.0f / ray_normal[2];
- rcd.sign[0] = rcd.inv_dir[0] < 0;
- rcd.sign[1] = rcd.inv_dir[1] < 0;
- rcd.sign[2] = rcd.inv_dir[2] < 0;
+ isect_ray_aabb_initialize(&rcd.ray, ray_start, ray_normal);
rcd.original = original;
BLI_pbvh_search_callback_occluded(bvh, ray_aabb_intersect, &rcd, cb, data);
diff --git a/source/blender/blenlib/intern/rct.c b/source/blender/blenlib/intern/rct.c
index b36c3c717c0..cab383b60f3 100644
--- a/source/blender/blenlib/intern/rct.c
+++ b/source/blender/blenlib/intern/rct.c
@@ -35,20 +35,30 @@
#include <stdio.h>
#include <math.h>
+#include <limits.h>
+#include <float.h>
+
#include "DNA_vec_types.h"
#include "BLI_rect.h"
-int BLI_rcti_is_empty(rcti *rect)
+/**
+ * Determine if a rect is empty. An empty
+ * rect is one with a zero (or negative)
+ * width or height.
+ *
+ * \return True if \a rect is empty.
+ */
+int BLI_rcti_is_empty(const rcti *rect)
{
return ((rect->xmax <= rect->xmin) || (rect->ymax <= rect->ymin));
}
-int BLI_rctf_is_empty(rctf *rect)
+int BLI_rctf_is_empty(const rctf *rect)
{
return ((rect->xmax <= rect->xmin) || (rect->ymax <= rect->ymin));
}
-int BLI_in_rcti(rcti *rect, int x, int y)
+int BLI_rcti_isect_pt(const rcti *rect, const int x, const int y)
{
if (x < rect->xmin) return 0;
if (x > rect->xmax) return 0;
@@ -57,7 +67,23 @@ int BLI_in_rcti(rcti *rect, int x, int y)
return 1;
}
-int BLI_in_rctf(rctf *rect, float x, float y)
+/**
+ * Determine if a rect is empty. An empty
+ * rect is one with a zero (or negative)
+ * width or height.
+ *
+ * \return True if \a rect is empty.
+ */
+int BLI_rcti_isect_pt_v(const rcti *rect, const int xy[2])
+{
+ if (xy[0] < rect->xmin) return 0;
+ if (xy[0] > rect->xmax) return 0;
+ if (xy[1] < rect->ymin) return 0;
+ if (xy[1] > rect->ymax) return 0;
+ return 1;
+}
+
+int BLI_rctf_isect_pt(const rctf *rect, const float x, const float y)
{
if (x < rect->xmin) return 0;
if (x > rect->xmax) return 0;
@@ -66,6 +92,15 @@ int BLI_in_rctf(rctf *rect, float x, float y)
return 1;
}
+int BLI_rctf_isect_pt_v(const rctf *rect, const float xy[2])
+{
+ if (xy[0] < rect->xmin) return 0;
+ if (xy[0] > rect->xmax) return 0;
+ if (xy[1] < rect->ymin) return 0;
+ if (xy[1] > rect->ymax) return 0;
+ return 1;
+}
+
/* based closely on 'isect_line_line_v2_int', but in modified so corner cases are treated as intersections */
static int isect_segments(const int v1[2], const int v2[2], const int v3[2], const int v4[2])
{
@@ -80,7 +115,7 @@ static int isect_segments(const int v1[2], const int v2[2], const int v3[2], con
}
}
-int BLI_segment_in_rcti(rcti *rect, int s1[2], int s2[2])
+int BLI_rcti_isect_segment(const rcti *rect, const int s1[2], const int s2[2])
{
/* first do outside-bounds check for both points of the segment */
if (s1[0] < rect->xmin && s2[0] < rect->xmin) return 0;
@@ -89,7 +124,7 @@ int BLI_segment_in_rcti(rcti *rect, int s1[2], int s2[2])
if (s1[1] > rect->ymax && s2[1] > rect->ymax) return 0;
/* if either points intersect then we definetly intersect */
- if (BLI_in_rcti(rect, s1[0], s1[1]) || BLI_in_rcti(rect, s2[0], s2[1])) {
+ if (BLI_rcti_isect_pt_v(rect, s1) || BLI_rcti_isect_pt_v(rect, s2)) {
return 1;
}
else {
@@ -115,7 +150,7 @@ int BLI_segment_in_rcti(rcti *rect, int s1[2], int s2[2])
}
}
-void BLI_union_rctf(rctf *rct1, rctf *rct2)
+void BLI_rctf_union(rctf *rct1, const rctf *rct2)
{
if (rct1->xmin > rct2->xmin) rct1->xmin = rct2->xmin;
if (rct1->xmax < rct2->xmax) rct1->xmax = rct2->xmax;
@@ -123,7 +158,7 @@ void BLI_union_rctf(rctf *rct1, rctf *rct2)
if (rct1->ymax < rct2->ymax) rct1->ymax = rct2->ymax;
}
-void BLI_union_rcti(rcti *rct1, rcti *rct2)
+void BLI_rcti_union(rcti *rct1, const rcti *rct2)
{
if (rct1->xmin > rct2->xmin) rct1->xmin = rct2->xmin;
if (rct1->xmax < rct2->xmax) rct1->xmax = rct2->xmax;
@@ -131,7 +166,7 @@ void BLI_union_rcti(rcti *rct1, rcti *rct2)
if (rct1->ymax < rct2->ymax) rct1->ymax = rct2->ymax;
}
-void BLI_init_rctf(rctf *rect, float xmin, float xmax, float ymin, float ymax)
+void BLI_rctf_init(rctf *rect, float xmin, float xmax, float ymin, float ymax)
{
if (xmin <= xmax) {
rect->xmin = xmin;
@@ -151,7 +186,7 @@ void BLI_init_rctf(rctf *rect, float xmin, float xmax, float ymin, float ymax)
}
}
-void BLI_init_rcti(rcti *rect, int xmin, int xmax, int ymin, int ymax)
+void BLI_rcti_init(rcti *rect, int xmin, int xmax, int ymin, int ymax)
{
if (xmin <= xmax) {
rect->xmin = xmin;
@@ -171,14 +206,42 @@ void BLI_init_rcti(rcti *rect, int xmin, int xmax, int ymin, int ymax)
}
}
-void BLI_translate_rcti(rcti *rect, int x, int y)
+void BLI_rcti_init_minmax(rcti *rect)
+{
+ rect->xmin = rect->ymin = INT_MAX;
+ rect->xmax = rect->ymax = INT_MIN;
+}
+
+void BLI_rctf_init_minmax(rctf *rect)
+{
+ rect->xmin = rect->ymin = FLT_MAX;
+ rect->xmax = rect->ymax = -FLT_MAX;
+}
+
+void BLI_rcti_do_minmax_v(rcti *rect, const int xy[2])
+{
+ if (xy[0] < rect->xmin) rect->xmin = xy[0];
+ if (xy[0] > rect->xmax) rect->xmax = xy[0];
+ if (xy[1] < rect->ymin) rect->ymin = xy[1];
+ if (xy[1] > rect->ymax) rect->ymax = xy[1];
+}
+
+void BLI_rctf_do_minmax_v(rctf *rect, const float xy[2])
+{
+ if (xy[0] < rect->xmin) rect->xmin = xy[0];
+ if (xy[0] > rect->xmax) rect->xmax = xy[0];
+ if (xy[1] < rect->ymin) rect->ymin = xy[1];
+ if (xy[1] > rect->ymax) rect->ymax = xy[1];
+}
+
+void BLI_rcti_translate(rcti *rect, int x, int y)
{
rect->xmin += x;
rect->ymin += y;
rect->xmax += x;
rect->ymax += y;
}
-void BLI_translate_rctf(rctf *rect, float x, float y)
+void BLI_rctf_translate(rctf *rect, float x, float y)
{
rect->xmin += x;
rect->ymin += y;
@@ -187,27 +250,81 @@ void BLI_translate_rctf(rctf *rect, float x, float y)
}
/* change width & height around the central location */
-void BLI_resize_rcti(rcti *rect, int x, int y)
+void BLI_rcti_resize(rcti *rect, int x, int y)
{
- rect->xmin = rect->xmax = (rect->xmax + rect->xmin) / 2;
- rect->ymin = rect->ymax = (rect->ymax + rect->ymin) / 2;
+ rect->xmin = rect->xmax = BLI_rcti_cent_x(rect);
+ rect->ymin = rect->ymax = BLI_rcti_cent_y(rect);
rect->xmin -= x / 2;
rect->ymin -= y / 2;
rect->xmax = rect->xmin + x;
rect->ymax = rect->ymin + y;
}
-void BLI_resize_rctf(rctf *rect, float x, float y)
+void BLI_rctf_resize(rctf *rect, float x, float y)
{
- rect->xmin = rect->xmax = (rect->xmax + rect->xmin) * 0.5f;
- rect->ymin = rect->ymax = (rect->ymax + rect->ymin) * 0.5f;
+ rect->xmin = rect->xmax = BLI_rctf_cent_x(rect);
+ rect->ymin = rect->ymax = BLI_rctf_cent_y(rect);
rect->xmin -= x * 0.5f;
rect->ymin -= y * 0.5f;
rect->xmax = rect->xmin + x;
rect->ymax = rect->ymin + y;
}
-int BLI_isect_rctf(rctf *src1, rctf *src2, rctf *dest)
+void BLI_rctf_interp(rctf *rect, const rctf *rect_a, const rctf *rect_b, const float fac)
+{
+ const float ifac = 1.0f - fac;
+ rect->xmin = (rect_a->xmin * ifac) + (rect_b->xmin * fac);
+ rect->xmax = (rect_a->xmax * ifac) + (rect_b->xmax * fac);
+ rect->ymin = (rect_a->ymin * ifac) + (rect_b->ymin * fac);
+ rect->ymax = (rect_a->ymax * ifac) + (rect_b->ymax * fac);
+}
+
+/* BLI_rcti_interp() not needed yet */
+
+
+int BLI_rctf_clamp_pt_v(const struct rctf *rect, float xy[2])
+{
+ int change = 0;
+ if (xy[0] < rect->xmin) { xy[0] = rect->xmin; change = 1; }
+ if (xy[0] > rect->xmax) { xy[0] = rect->xmax; change = 1; }
+ if (xy[1] < rect->ymin) { xy[1] = rect->ymin; change = 1; }
+ if (xy[1] > rect->ymax) { xy[1] = rect->ymax; change = 1; }
+ return change;
+}
+
+int BLI_rcti_clamp_pt_v(const struct rcti *rect, int xy[2])
+{
+ int change = 0;
+ if (xy[0] < rect->xmin) { xy[0] = rect->xmin; change = 1; }
+ if (xy[0] > rect->xmax) { xy[0] = rect->xmax; change = 1; }
+ if (xy[1] < rect->ymin) { xy[1] = rect->ymin; change = 1; }
+ if (xy[1] > rect->ymax) { xy[1] = rect->ymax; change = 1; }
+ return change;
+}
+
+int BLI_rctf_compare(const struct rctf *rect_a, const struct rctf *rect_b, const float limit)
+{
+ if (fabsf(rect_a->xmin - rect_b->xmin) < limit)
+ if (fabsf(rect_a->xmax - rect_b->xmax) < limit)
+ if (fabsf(rect_a->ymin - rect_b->ymin) < limit)
+ if (fabsf(rect_a->ymax - rect_b->ymax) < limit)
+ return 1;
+
+ return 0;
+}
+
+int BLI_rcti_compare(const struct rcti *rect_a, const struct rcti *rect_b)
+{
+ if (rect_a->xmin == rect_b->xmin)
+ if (rect_a->xmax == rect_b->xmax)
+ if (rect_a->ymin == rect_b->ymin)
+ if (rect_a->ymax == rect_b->ymax)
+ return 1;
+
+ return 0;
+}
+
+int BLI_rctf_isect(const rctf *src1, const rctf *src2, rctf *dest)
{
float xmin, xmax;
float ymin, ymax;
@@ -237,7 +354,7 @@ int BLI_isect_rctf(rctf *src1, rctf *src2, rctf *dest)
}
}
-int BLI_isect_rcti(rcti *src1, rcti *src2, rcti *dest)
+int BLI_rcti_isect(const rcti *src1, const rcti *src2, rcti *dest)
{
int xmin, xmax;
int ymin, ymax;
@@ -267,22 +384,30 @@ int BLI_isect_rcti(rcti *src1, rcti *src2, rcti *dest)
}
}
-void BLI_copy_rcti_rctf(rcti *tar, const rctf *src)
+void BLI_rcti_rctf_copy(rcti *dst, const rctf *src)
+{
+ dst->xmin = floorf(src->xmin + 0.5f);
+ dst->xmax = dst->xmin + floorf(BLI_rctf_size_x(src) + 0.5f);
+ dst->ymin = floorf(src->ymin + 0.5f);
+ dst->ymax = dst->ymin + floorf(BLI_rctf_size_y(src) + 0.5f);
+}
+
+void BLI_rctf_rcti_copy(rctf *dst, const rcti *src)
{
- tar->xmin = floor(src->xmin + 0.5f);
- tar->xmax = floor((src->xmax - src->xmin) + 0.5f);
- tar->ymin = floor(src->ymin + 0.5f);
- tar->ymax = floor((src->ymax - src->ymin) + 0.5f);
+ dst->xmin = src->xmin;
+ dst->xmax = src->xmax;
+ dst->ymin = src->ymin;
+ dst->ymax = src->ymax;
}
-void print_rctf(const char *str, rctf *rect)
+void print_rctf(const char *str, const rctf *rect)
{
printf("%s: xmin %.3f, xmax %.3f, ymin %.3f, ymax %.3f (%.3fx%.3f)\n", str,
- rect->xmin, rect->xmax, rect->ymin, rect->ymax, rect->xmax - rect->xmin, rect->ymax - rect->ymin);
+ rect->xmin, rect->xmax, rect->ymin, rect->ymax, BLI_rctf_size_x(rect), BLI_rctf_size_y(rect));
}
-void print_rcti(const char *str, rcti *rect)
+void print_rcti(const char *str, const rcti *rect)
{
printf("%s: xmin %d, xmax %d, ymin %d, ymax %d (%dx%d)\n", str,
- rect->xmin, rect->xmax, rect->ymin, rect->ymax, rect->xmax - rect->xmin, rect->ymax - rect->ymin);
+ rect->xmin, rect->xmax, rect->ymin, rect->ymax, BLI_rcti_size_x(rect), BLI_rcti_size_y(rect));
}
diff --git a/source/blender/blenlib/intern/scanfill.c b/source/blender/blenlib/intern/scanfill.c
index 1f0bd445831..7ae27b83e67 100644
--- a/source/blender/blenlib/intern/scanfill.c
+++ b/source/blender/blenlib/intern/scanfill.c
@@ -211,7 +211,7 @@ ScanFillVert *BLI_scanfill_vert_add(ScanFillContext *sf_ctx, const float vec[3])
copy_v3_v3(eve->co, vec);
- return eve;
+ return eve;
}
ScanFillEdge *BLI_scanfill_edge_add(ScanFillContext *sf_ctx, ScanFillVert *v1, ScanFillVert *v2)
@@ -415,7 +415,7 @@ static short boundinsideEV(ScanFillEdge *eed, ScanFillVert *eve)
static void testvertexnearedge(ScanFillContext *sf_ctx)
{
- /* only vertices with ->h==1 are being tested for
+ /* only vertices with (->h == 1) are being tested for
* being close to an edge, if true insert */
ScanFillVert *eve;
@@ -423,12 +423,16 @@ static void testvertexnearedge(ScanFillContext *sf_ctx)
for (eve = sf_ctx->fillvertbase.first; eve; eve = eve->next) {
if (eve->h == 1) {
- /* find the edge which has vertex eve */
- ed1 = sf_ctx->filledgebase.first;
- while (ed1) {
- if (ed1->v1 == eve || ed1->v2 == eve) break;
- ed1 = ed1->next;
+ /* find the edge which has vertex eve,
+ * note: we _know_ this will crash if 'ed1' becomes NULL
+ * but this will never happen. */
+ for (ed1 = sf_ctx->filledgebase.first;
+ !(ed1->v1 == eve || ed1->v2 == eve);
+ ed1 = ed1->next)
+ {
+ /* do nothing */
}
+
if (ed1->v1 == eve) {
ed1->v1 = ed1->v2;
ed1->v2 = eve;
@@ -517,7 +521,7 @@ static int scanfill(ScanFillContext *sf_ctx, PolyFill *pf)
while (eve) {
printf("vert: %x co: %f %f\n", eve, eve->xy[0], eve->xy[1]);
eve = eve->next;
- }
+ }
eed = sf_ctx->filledgebase.first;
while (eed) {
printf("edge: %x verts: %x %x\n", eed, eed->v1, eed->v2);
@@ -658,7 +662,7 @@ static int scanfill(ScanFillContext *sf_ctx, PolyFill *pf)
if (v1 == v2 || v2 == v3) break;
/* printf("test verts %x %x %x\n",v1,v2,v3); */
miny = minf(v1->xy[1], v3->xy[1]);
- /* miny= MIN2(v1->xy[1],v3->xy[1]); */
+ /* miny= minf(v1->xy[1],v3->xy[1]); */
sc1 = sc + 1;
test = 0;
@@ -947,7 +951,7 @@ int BLI_scanfill_calc_ex(ScanFillContext *sf_ctx, const short do_quad_tri_speedu
return 0;
}
- /* does it only for vertices with ->h==1 */
+ /* does it only for vertices with (->h == 1) */
testvertexnearedge(sf_ctx);
ok = 1;
diff --git a/source/blender/blenlib/intern/stack.c b/source/blender/blenlib/intern/stack.c
new file mode 100644
index 00000000000..5be2ed941a7
--- /dev/null
+++ b/source/blender/blenlib/intern/stack.c
@@ -0,0 +1,110 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Nicholas Bishop
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ *
+ */
+
+/** \file blender/blenlib/intern/stack.c
+ * \ingroup bli
+ */
+
+#include <string.h>
+#include <stdlib.h> /* abort() */
+
+#include "BLI_stack.h" /* own include */
+
+#include "BLI_utildefines.h"
+#include "MEM_guardedalloc.h"
+
+struct BLI_Stack {
+ void *data;
+
+ int totelem;
+ int maxelem;
+
+ int elem_size;
+};
+
+BLI_Stack *BLI_stack_new(int elem_size, const char *description)
+{
+ BLI_Stack *stack = MEM_callocN(sizeof(*stack), description);
+
+ stack->elem_size = elem_size;
+
+ return stack;
+}
+
+void BLI_stack_free(BLI_Stack *stack)
+{
+ if (stack) {
+ if (stack->data)
+ MEM_freeN(stack->data);
+ MEM_freeN(stack);
+ }
+}
+
+/* Gets the last element in the stack */
+#define STACK_LAST_ELEM(stack__) \
+ (((char *)(stack__)->data) + \
+ ((stack__)->elem_size * ((stack__)->totelem - 1)))
+
+void BLI_stack_push(BLI_Stack *stack, void *src)
+{
+ /* Ensure stack is large enough */
+ if (stack->totelem == stack->maxelem) {
+ if (stack->maxelem == 0) {
+ /* Initialize stack with space for a small hardcoded
+ * number of elements */
+ stack->maxelem = 32;
+ stack->data = MEM_mallocN((stack->elem_size *
+ stack->maxelem), AT);
+ }
+ else {
+ /* Double stack size */
+ int maxelem = stack->maxelem + stack->maxelem;
+ /* Check for overflow */
+ BLI_assert(maxelem > stack->maxelem);
+ stack->data = MEM_reallocN(stack->data,
+ (stack->elem_size *
+ maxelem));
+ stack->maxelem = maxelem;
+ }
+ }
+
+ BLI_assert(stack->totelem < stack->maxelem);
+
+ /* Copy source to end of stack */
+ stack->totelem++;
+ memcpy(STACK_LAST_ELEM(stack), src, stack->elem_size);
+}
+
+void BLI_stack_pop(BLI_Stack *stack, void *dst)
+{
+ BLI_assert(stack->totelem > 0);
+ if (stack->totelem > 0) {
+ memcpy(dst, STACK_LAST_ELEM(stack), stack->elem_size);
+ stack->totelem--;
+ }
+}
+
+int BLI_stack_empty(const BLI_Stack *stack)
+{
+ return stack->totelem == 0;
+}
diff --git a/source/blender/blenlib/intern/storage.c b/source/blender/blenlib/intern/storage.c
index 965e8b5eec3..0d3f6aee30f 100644
--- a/source/blender/blenlib/intern/storage.c
+++ b/source/blender/blenlib/intern/storage.c
@@ -34,7 +34,7 @@
#include <sys/types.h>
#include <stdio.h>
-#include <stdlib.h>
+#include <stdlib.h>
#ifndef WIN32
#include <dirent.h>
@@ -86,13 +86,10 @@
#include "BLI_listbase.h"
#include "BLI_linklist.h"
-#include "BLI_fileops.h"
-
-#include "BLI_fileops_types.h"
#include "BLI_string.h"
#include "BLI_fileops.h"
-
-#include "BKE_utildefines.h"
+#include "BLI_fileops_types.h"
+#include "BLI_path_util.h"
/* vars: */
static int totnum, actnum;
diff --git a/source/blender/blenlib/intern/string.c b/source/blender/blenlib/intern/string.c
index e73899ce929..8501db7c8b8 100644
--- a/source/blender/blenlib/intern/string.c
+++ b/source/blender/blenlib/intern/string.c
@@ -78,22 +78,31 @@ char *BLI_strncpy(char *dst, const char *src, const size_t maxncpy)
return dst;
}
-size_t BLI_snprintf(char *buffer, size_t count, const char *format, ...)
+size_t BLI_vsnprintf(char *buffer, size_t count, const char *format, va_list arg)
{
size_t n;
- va_list arg;
- va_start(arg, format);
n = vsnprintf(buffer, count, format, arg);
-
+
if (n != -1 && n < count) {
buffer[n] = '\0';
}
else {
buffer[count - 1] = '\0';
}
-
+
+ return n;
+}
+
+size_t BLI_snprintf(char *buffer, size_t count, const char *format, ...)
+{
+ size_t n;
+ va_list arg;
+
+ va_start(arg, format);
+ n = BLI_vsnprintf(buffer, count, format, arg);
va_end(arg);
+
return n;
}
@@ -168,8 +177,10 @@ escape_finish:
*
* Assume that the strings returned must be freed afterwards, and that the inputs will contain
* data we want...
+ *
+ * TODO, return the offset and a length so as to avoid doing an allocation.
*/
-char *BLI_getQuotedStr(const char *str, const char *prefix)
+char *BLI_str_quoted_substrN(const char *str, const char *prefix)
{
size_t prefixLen = strlen(prefix);
char *startMatch, *endMatch;
@@ -178,8 +189,8 @@ char *BLI_getQuotedStr(const char *str, const char *prefix)
startMatch = strstr(str, prefix) + prefixLen + 1;
/* get the end point (i.e. where the next occurance of " is after the starting point) */
- endMatch = strchr(startMatch, '"'); // " NOTE: this comment here is just so that my text editor still shows the functions ok...
-
+ endMatch = strchr(startMatch, '"'); /* " NOTE: this comment here is just so that my text editor still shows the functions ok... */
+
/* return the slice indicated */
return BLI_strdupn(startMatch, (size_t)(endMatch - startMatch));
}
@@ -187,8 +198,9 @@ char *BLI_getQuotedStr(const char *str, const char *prefix)
/* Replaces all occurrences of oldText with newText in str, returning a new string that doesn't
* contain the 'replaced' occurrences.
*/
-// A rather wasteful string-replacement utility, though this shall do for now...
-// Feel free to replace this with an even safe + nicer alternative
+
+/* A rather wasteful string-replacement utility, though this shall do for now...
+ * Feel free to replace this with an even safe + nicer alternative */
char *BLI_replacestr(char *str, const char *oldText, const char *newText)
{
DynStr *ds = NULL;
diff --git a/source/blender/blenlib/intern/string_cursor_utf8.c b/source/blender/blenlib/intern/string_cursor_utf8.c
index 422a600e51c..bab144266a4 100644
--- a/source/blender/blenlib/intern/string_cursor_utf8.c
+++ b/source/blender/blenlib/intern/string_cursor_utf8.c
@@ -147,7 +147,7 @@ void BLI_str_cursor_step_utf8(const char *str, size_t maxlen,
int *pos, strCursorJumpDirection direction,
strCursorJumpType jump)
{
- const short pos_prev = *pos;
+ const int pos_prev = *pos;
if (direction == STRCUR_DIR_NEXT) {
BLI_str_cursor_step_next_utf8(str, maxlen, pos);
diff --git a/source/blender/blenlib/intern/string_utf8.c b/source/blender/blenlib/intern/string_utf8.c
index ff234a971aa..17b9ed7ea8d 100644
--- a/source/blender/blenlib/intern/string_utf8.c
+++ b/source/blender/blenlib/intern/string_utf8.c
@@ -58,11 +58,11 @@ static const char trailingBytesForUTF8[256] = {
int BLI_utf8_invalid_byte(const char *str, int length)
{
- const unsigned char *p, *pend = (unsigned char*)str + length;
+ const unsigned char *p, *pend = (unsigned char *)str + length;
unsigned char c;
int ab;
- for (p = (unsigned char*)str; p < pend; p++) {
+ for (p = (unsigned char *)str; p < pend; p++) {
c = *p;
if (c < 128)
continue;
@@ -234,7 +234,7 @@ size_t BLI_wstrlen_utf8(const wchar_t *src)
// utf8slen
size_t BLI_strlen_utf8(const char *strc)
{
- int len=0;
+ int len = 0;
while (*strc) {
if ((*strc & 0xe0) == 0xc0) {
@@ -259,9 +259,11 @@ size_t BLI_strlen_utf8(const char *strc)
size_t BLI_strncpy_wchar_from_utf8(wchar_t *dst_w, const char *src_c, const size_t maxcpy)
{
- int len=0;
+ int len = 0;
- if (dst_w==NULL || src_c==NULL) return(0);
+ if (dst_w == NULL || src_c == NULL) {
+ return 0;
+ }
while (*src_c && len < maxcpy) {
size_t step= 0;
diff --git a/source/blender/blenlib/intern/threads.c b/source/blender/blenlib/intern/threads.c
index 348fa29eae7..66527b9b92a 100644
--- a/source/blender/blenlib/intern/threads.c
+++ b/source/blender/blenlib/intern/threads.c
@@ -106,13 +106,14 @@ static void *thread_tls_data;
************************************************ */
static pthread_mutex_t _malloc_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t _image_lock = PTHREAD_MUTEX_INITIALIZER;
-static pthread_mutex_t _preview_lock = PTHREAD_MUTEX_INITIALIZER;
+static pthread_mutex_t _image_draw_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t _viewer_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t _custom1_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t _rcache_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t _opengl_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t _nodes_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t _movieclip_lock = PTHREAD_MUTEX_INITIALIZER;
+static pthread_mutex_t _colormanage_lock = PTHREAD_MUTEX_INITIALIZER;
static pthread_t mainid;
static int thread_levels = 0; /* threads can be invoked inside threads */
@@ -337,8 +338,8 @@ void BLI_lock_thread(int type)
{
if (type == LOCK_IMAGE)
pthread_mutex_lock(&_image_lock);
- else if (type == LOCK_PREVIEW)
- pthread_mutex_lock(&_preview_lock);
+ else if (type == LOCK_DRAW_IMAGE)
+ pthread_mutex_lock(&_image_draw_lock);
else if (type == LOCK_VIEWER)
pthread_mutex_lock(&_viewer_lock);
else if (type == LOCK_CUSTOM1)
@@ -351,14 +352,16 @@ void BLI_lock_thread(int type)
pthread_mutex_lock(&_nodes_lock);
else if (type == LOCK_MOVIECLIP)
pthread_mutex_lock(&_movieclip_lock);
+ else if (type == LOCK_COLORMANAGE)
+ pthread_mutex_lock(&_colormanage_lock);
}
void BLI_unlock_thread(int type)
{
if (type == LOCK_IMAGE)
pthread_mutex_unlock(&_image_lock);
- else if (type == LOCK_PREVIEW)
- pthread_mutex_unlock(&_preview_lock);
+ else if (type == LOCK_DRAW_IMAGE)
+ pthread_mutex_unlock(&_image_draw_lock);
else if (type == LOCK_VIEWER)
pthread_mutex_unlock(&_viewer_lock);
else if (type == LOCK_CUSTOM1)
@@ -371,6 +374,8 @@ void BLI_unlock_thread(int type)
pthread_mutex_unlock(&_nodes_lock);
else if (type == LOCK_MOVIECLIP)
pthread_mutex_unlock(&_movieclip_lock);
+ else if (type == LOCK_COLORMANAGE)
+ pthread_mutex_unlock(&_colormanage_lock);
}
/* Mutex Locks */
diff --git a/source/blender/blenlib/intern/uvproject.c b/source/blender/blenlib/intern/uvproject.c
index 1b59dc6a3f5..05ebc9500a1 100644
--- a/source/blender/blenlib/intern/uvproject.c
+++ b/source/blender/blenlib/intern/uvproject.c
@@ -105,7 +105,7 @@ void BLI_uvproject_from_view(float target[2], float source[3], float persmat[4][
/* rotmat is the object matrix in this case */
mul_m4_v4(rotmat, pv4);
- /* almost project_short */
+ /* almost ED_view3d_project_short */
mul_m4_v4(persmat, pv4);
if (fabsf(pv4[3]) > 0.00001f) { /* avoid division by zero */
target[0] = winx / 2.0f + (winx / 2.0f) * pv4[0] / pv4[3];
diff --git a/source/blender/blenlib/intern/voronoi.c b/source/blender/blenlib/intern/voronoi.c
index eeb0187b74c..3030e54eb78 100644
--- a/source/blender/blenlib/intern/voronoi.c
+++ b/source/blender/blenlib/intern/voronoi.c
@@ -28,7 +28,7 @@
* http://blog.ivank.net/fortunes-algorithm-and-implementation.html
*/
-/** \file blender/blenkernel/intern/voronoi.c
+/** \file blender/blenlib/intern/voronoi.c
* \ingroup bli
*/
@@ -39,7 +39,7 @@
#include "BLI_voronoi.h"
#include "BLI_utildefines.h"
-#define VORONOI_EPS 1e-3
+#define VORONOI_EPS 1e-2
enum {
voronoiEventType_Site = 0,
@@ -259,9 +259,9 @@ static float voronoi_getXOfEdge(VoronoiProcess *process, VoronoiParabola *par, f
x2 = (-b - sqrtf(disc)) / (2 * a);
if (p[1] < r[1])
- ry = MAX2(x1, x2);
+ ry = maxf(x1, x2);
else
- ry = MIN2(x1, x2);
+ ry = minf(x1, x2);
return ry;
}
@@ -480,7 +480,7 @@ static void voronoi_removeParabola(VoronoiProcess *process, VoronoiEvent *event)
voronoi_checkCircle(process, p2);
}
-void voronoi_finishEdge(VoronoiProcess *process, VoronoiParabola *parabola)
+static void voronoi_finishEdge(VoronoiProcess *process, VoronoiParabola *parabola)
{
float mx;
@@ -503,12 +503,12 @@ void voronoi_finishEdge(VoronoiProcess *process, VoronoiParabola *parabola)
MEM_freeN(parabola);
}
-void voronoi_clampEdgeVertex(int width, int height, float *coord, float *other_coord)
+static void voronoi_clampEdgeVertex(int width, int height, float *coord, float *other_coord)
{
const float corners[4][2] = {{0.0f, 0.0f},
- {width - 1, 0.0f},
- {width - 1, height - 1},
- {0.0f, height - 1}};
+ {width - 1, 0.0f},
+ {width - 1, height - 1},
+ {0.0f, height - 1}};
int i;
if (IN_RANGE_INCL(coord[0], 0, width - 1) && IN_RANGE_INCL(coord[1], 0, height - 1)) {
@@ -541,7 +541,7 @@ void voronoi_clampEdgeVertex(int width, int height, float *coord, float *other_c
}
}
-void voronoi_clampEdges(ListBase *edges, int width, int height, ListBase *clamped_edges)
+static void voronoi_clampEdges(ListBase *edges, int width, int height, ListBase *clamped_edges)
{
VoronoiEdge *edge;
diff --git a/source/blender/blenlib/intern/voxel.c b/source/blender/blenlib/intern/voxel.c
index 3a8705bbbba..bc775cb8f0c 100644
--- a/source/blender/blenlib/intern/voxel.c
+++ b/source/blender/blenlib/intern/voxel.c
@@ -56,15 +56,18 @@ float BLI_voxel_sample_nearest(float *data, const int res[3], const float co[3])
return D(data, res, xi, yi, zi);
}
-// returns highest integer <= x as integer (slightly faster than floor())
+/* returns highest integer <= x as integer (slightly faster than floor()) */
BLI_INLINE int FLOORI(float x)
{
const int r = (int)x;
return ((x >= 0.f) || (float)r == x) ? r : (r - 1);
}
-// clamp function, cannot use the CLAMPIS macro, it sometimes returns unwanted results apparently related to gcc optimization flag -fstrict-overflow which is enabled at -O2
-// this causes the test (x + 2) < 0 with int x == 2147483647 to return false (x being an integer, x + 2 should wrap around to -2147483647 so the test < 0 should return true, which it doesn't)
+/* clamp function, cannot use the CLAMPIS macro, it sometimes returns unwanted results apparently related to
+ * gcc optimization flag -fstrict-overflow which is enabled at -O2
+ *
+ * this causes the test (x + 2) < 0 with int x == 2147483647 to return false (x being an integer,
+ * x + 2 should wrap around to -2147483647 so the test < 0 should return true, which it doesn't) */
BLI_INLINE int _clamp(int a, int b, int c)
{
return (a < b) ? b : ((a > c) ? c : a);
diff --git a/source/blender/blenlib/intern/winstuff.c b/source/blender/blenlib/intern/winstuff.c
index e34150ee4f2..a0b31f8d5b8 100644
--- a/source/blender/blenlib/intern/winstuff.c
+++ b/source/blender/blenlib/intern/winstuff.c
@@ -41,12 +41,12 @@
#include "BLI_path_util.h"
#include "BLI_string.h"
-#include "BKE_utildefines.h"
#include "BKE_global.h"
#define WIN32_SKIP_HKEY_PROTECTION // need to use HKEY
#include "BLI_winstuff.h"
#include "BLI_utildefines.h"
+#include "BLI_path_util.h"
#include "utf_winfunc.h"
#include "utfconv.h"
@@ -68,7 +68,7 @@ int BLI_getInstallationDir(char *str)
return 1;
}
-void RegisterBlendExtension_Fail(HKEY root)
+static void RegisterBlendExtension_Fail(HKEY root)
{
printf("failed\n");
if (root)
@@ -98,10 +98,10 @@ void RegisterBlendExtension(void)
printf("Registering file extension...");
GetModuleFileName(0, BlPath, MAX_PATH);
- // root is HKLM by default
+ /* root is HKLM by default */
lresult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Classes", 0, KEY_ALL_ACCESS, &root);
if (lresult != ERROR_SUCCESS) {
- // try HKCU on failure
+ /* try HKCU on failure */
usr_mode = TRUE;
lresult = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Classes", 0, KEY_ALL_ACCESS, &root);
if (lresult != ERROR_SUCCESS)
diff --git a/intern/boolop/intern/BOP_Splitter.h b/source/blender/blenloader/BLO_blend_defs.h
index 8d79b89aa91..8005be158ce 100644
--- a/intern/boolop/intern/BOP_Splitter.h
+++ b/source/blender/blenloader/BLO_blend_defs.h
@@ -15,32 +15,33 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
* ***** END GPL LICENSE BLOCK *****
*/
+#ifndef __BLO_BLEND_DEFS_H__
+#define __BLO_BLEND_DEFS_H__
-/** \file boolop/intern/BOP_Splitter.h
- * \ingroup boolopintern
+/** \file BLO_blend_defs.h
+ * \ingroup blenloader
+ * \brief defines for blendfile codes
*/
-
-#ifndef __BOP_SPLITTER_H__
-#define __BOP_SPLITTER_H__
+/* INTEGER CODES */
+#ifdef __BIG_ENDIAN__
+/* Big Endian */
+# define BLEND_MAKE_ID(a, b, c, d) ( (int)(a) << 24 | (int)(b) << 16 | (c) << 8 | (d) )
+#else
+/* Little Endian */
+# define BLEND_MAKE_ID(a, b, c, d) ( (int)(d) << 24 | (int)(c) << 16 | (b) << 8 | (a) )
+#endif
-#include "BOP_MathUtils.h"
-#include "BOP_Segment.h"
-#include "BOP_Mesh.h"
+#define DATA BLEND_MAKE_ID('D', 'A', 'T', 'A')
+#define GLOB BLEND_MAKE_ID('G', 'L', 'O', 'B')
-#include "MT_Plane3.h"
-#include "MT_Point3.h"
+#define DNA1 BLEND_MAKE_ID('D', 'N', 'A', '1')
+#define TEST BLEND_MAKE_ID('T', 'E', 'S', 'T') /* used as preview between 'REND' and 'GLOB' */
+#define REND BLEND_MAKE_ID('R', 'E', 'N', 'D')
+#define USER BLEND_MAKE_ID('U', 'S', 'E', 'R')
-MT_Point3 BOP_splitEdge(MT_Plane3 plane, BOP_Mesh *mesh, BOP_Face *face, unsigned int edge);
-BOP_Segment BOP_splitFace(MT_Plane3 plane, BOP_Mesh *mesh, BOP_Face *face);
+#define ENDB BLEND_MAKE_ID('E', 'N', 'D', 'B')
-#endif
+#endif /* __BLO_BLEND_DEFS_H__ */
diff --git a/source/blender/blenloader/BLO_readfile.h b/source/blender/blenloader/BLO_readfile.h
index f0bf7e99758..16a4d8d46ec 100644
--- a/source/blender/blenloader/BLO_readfile.h
+++ b/source/blender/blenloader/BLO_readfile.h
@@ -244,6 +244,9 @@ void *BLO_library_read_struct(struct FileData *fd, struct BHead *bh, const char
BlendFileData *blo_read_blendafterruntime(int file, const char *name, int actualsize, struct ReportList *reports);
+/* internal function but we need to expose it */
+void blo_lib_link_screen_restore(struct Main *newmain, struct bScreen *curscreen, struct Scene *curscene);
+
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/blenloader/CMakeLists.txt b/source/blender/blenloader/CMakeLists.txt
index a0fe042e7fb..74df5211dad 100644
--- a/source/blender/blenloader/CMakeLists.txt
+++ b/source/blender/blenloader/CMakeLists.txt
@@ -48,6 +48,7 @@ set(SRC
intern/versioning_legacy.c
intern/writefile.c
+ BLO_blend_defs.h
BLO_readfile.h
BLO_runtime.h
BLO_soundfile.h
diff --git a/source/blender/blenloader/intern/readblenentry.c b/source/blender/blenloader/intern/readblenentry.c
index eb12a7bd837..e917ccdf342 100644
--- a/source/blender/blenloader/intern/readblenentry.c
+++ b/source/blender/blenloader/intern/readblenentry.c
@@ -40,12 +40,13 @@
#include "MEM_guardedalloc.h"
+#include "BLI_utildefines.h"
+#include "BLI_path_util.h"
#include "BLI_fileops.h"
#include "BLI_ghash.h"
#include "BLI_linklist.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
-#include "BLI_utildefines.h"
#include "DNA_genfile.h"
#include "DNA_sdna_types.h"
@@ -55,10 +56,10 @@
#include "BKE_library.h" // for free_main
#include "BKE_idcode.h"
#include "BKE_report.h"
-#include "BKE_utildefines.h"
#include "BLO_readfile.h"
#include "BLO_undofile.h"
+#include "BLO_blend_defs.h"
#include "readfile.h"
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 7133f79f880..fdb68d4cc17 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -100,6 +100,7 @@
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
+#include "BLI_endian_switch.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_edgehash.h"
@@ -132,7 +133,7 @@
#include "BKE_paint.h"
#include "BKE_particle.h"
#include "BKE_pointcache.h"
-#include "BKE_property.h" // for get_ob_property
+#include "BKE_property.h" // for BKE_bproperty_object_get
#include "BKE_report.h"
#include "BKE_sca.h" // for init_actuator
#include "BKE_scene.h"
@@ -140,7 +141,6 @@
#include "BKE_sequencer.h"
#include "BKE_text.h" // for txt_extended_ascii_as_utf8
#include "BKE_tracking.h"
-#include "BKE_utildefines.h" // SWITCH_INT DATA ENDB DNA1 O_BINARY GLOB USER TEST REND
#include "BKE_sound.h"
#include "IMB_imbuf.h" // for proxy / timecode versioning stuff
@@ -149,6 +149,7 @@
#include "BLO_readfile.h"
#include "BLO_undofile.h"
+#include "BLO_blend_defs.h"
#include "RE_engine.h"
@@ -205,7 +206,7 @@
* - join all Mains
* - link all LibBlocks and indirect pointers to libblocks
* - initialize FileGlobal and copy pointers to Global
-*/
+ */
/* also occurs in library.c */
/* GS reads the memory pointed at in a specific ordering. There are,
@@ -221,16 +222,6 @@
/* from misc_util: flip the bytes from x */
/* #define GS(x) (((unsigned char *)(x))[0] << 8 | ((unsigned char *)(x))[1]) */
-// only used here in readfile.c
-#define SWITCH_LONGINT(a) { \
- char s_i, *p_i; \
- p_i= (char *)&(a); \
- s_i=p_i[0]; p_i[0]=p_i[7]; p_i[7]=s_i; \
- s_i=p_i[1]; p_i[1]=p_i[6]; p_i[6]=s_i; \
- s_i=p_i[2]; p_i[2]=p_i[5]; p_i[5]=s_i; \
- s_i=p_i[3]; p_i[3]=p_i[4]; p_i[4]=s_i; \
-} (void)0
-
/***/
typedef struct OldNew {
@@ -255,8 +246,14 @@ static void convert_tface_mt(FileData *fd, Main *main);
* in the case of libraray linking errors this is important!
*
* bit kludge but better then doubling up on prints,
- * we could alternatively have a versions of a report function which foces printing - campbell
+ * we could alternatively have a versions of a report function which forces printing - campbell
*/
+
+static void BKE_reportf_wrap(ReportList *reports, ReportType type, const char *format, ...)
+#ifdef __GNUC__
+__attribute__ ((format(printf, 3, 4)))
+#endif
+;
static void BKE_reportf_wrap(ReportList *reports, ReportType type, const char *format, ...)
{
char fixed_buf[1024]; /* should be long enough */
@@ -577,9 +574,9 @@ static void switch_endian_bh4(BHead4 *bhead)
if ((bhead->code & 0xFFFF)==0) bhead->code >>= 16;
if (bhead->code != ENDB) {
- SWITCH_INT(bhead->len);
- SWITCH_INT(bhead->SDNAnr);
- SWITCH_INT(bhead->nr);
+ BLI_endian_switch_int32(&bhead->len);
+ BLI_endian_switch_int32(&bhead->SDNAnr);
+ BLI_endian_switch_int32(&bhead->nr);
}
}
@@ -589,20 +586,16 @@ static void switch_endian_bh8(BHead8 *bhead)
if ((bhead->code & 0xFFFF)==0) bhead->code >>= 16;
if (bhead->code != ENDB) {
- SWITCH_INT(bhead->len);
- SWITCH_INT(bhead->SDNAnr);
- SWITCH_INT(bhead->nr);
+ BLI_endian_switch_int32(&bhead->len);
+ BLI_endian_switch_int32(&bhead->SDNAnr);
+ BLI_endian_switch_int32(&bhead->nr);
}
}
static void bh4_from_bh8(BHead *bhead, BHead8 *bhead8, int do_endian_swap)
{
BHead4 *bhead4 = (BHead4 *) bhead;
-#if defined(WIN32) && !defined(FREE_WINDOWS)
- __int64 old;
-#else
- long long old;
-#endif
+ int64_t old;
bhead4->code = bhead8->code;
bhead4->len = bhead8->len;
@@ -612,7 +605,7 @@ static void bh4_from_bh8(BHead *bhead, BHead8 *bhead8, int do_endian_swap)
* 0x0000000000000000000012345678 would become 0x12345678000000000000000000000000
*/
if (do_endian_swap) {
- SWITCH_LONGINT(bhead8->old);
+ BLI_endian_switch_int64(&bhead8->old);
}
/* this patch is to avoid a long long being read from not-eight aligned positions
@@ -761,7 +754,7 @@ BHead *blo_firstbhead(FileData *fd)
BHead *blo_prevbhead(FileData *UNUSED(fd), BHead *thisblock)
{
- BHeadN *bheadn = (BHeadN *) (((char *) thisblock) - GET_INT_FROM_POINTER( &((BHeadN*)0)->bhead) );
+ BHeadN *bheadn = (BHeadN *) (((char *) thisblock) - offsetof(BHeadN, bhead));
BHeadN *prev = bheadn->prev;
return (prev) ? &prev->bhead : NULL;
@@ -773,11 +766,11 @@ BHead *blo_nextbhead(FileData *fd, BHead *thisblock)
BHead *bhead = NULL;
if (thisblock) {
- // bhead is actually a sub part of BHeadN
- // We calculate the BHeadN pointer from the BHead pointer below
- new_bhead = (BHeadN *) (((char *) thisblock) - GET_INT_FROM_POINTER( &((BHeadN*)0)->bhead) );
+ /* bhead is actually a sub part of BHeadN
+ * We calculate the BHeadN pointer from the BHead pointer below */
+ new_bhead = (BHeadN *) (((char *) thisblock) - offsetof(BHeadN, bhead));
- // get the next BHeadN. If it doesn't exist we read in the next one
+ /* get the next BHeadN. If it doesn't exist we read in the next one */
new_bhead = new_bhead->next;
if (new_bhead == NULL) {
new_bhead = get_bhead(fd);
@@ -785,8 +778,8 @@ BHead *blo_nextbhead(FileData *fd, BHead *thisblock)
}
if (new_bhead) {
- // here we do the reverse:
- // go from the BHeadN pointer to the BHead pointer
+ /* here we do the reverse:
+ * go from the BHeadN pointer to the BHead pointer */
bhead = &new_bhead->bhead;
}
@@ -1006,7 +999,7 @@ FileData *blo_openblenderfile(const char *filepath, ReportList *reports)
gzfile = BLI_gzopen(filepath, "rb");
if (gzfile == (gzFile)Z_NULL) {
- BKE_reportf(reports, RPT_ERROR, "Unable to open \"%s\": %s.", filepath, errno ? strerror(errno) : "Unknown error reading file");
+ BKE_reportf(reports, RPT_WARNING, "Unable to open \"%s\": %s.", filepath, errno ? strerror(errno) : "Unknown error reading file");
return NULL;
}
else {
@@ -1024,7 +1017,7 @@ FileData *blo_openblenderfile(const char *filepath, ReportList *reports)
FileData *blo_openblendermemory(void *mem, int memsize, ReportList *reports)
{
if (!mem || memsize<SIZEOFBLENDERHEADER) {
- BKE_report(reports, RPT_ERROR, (mem)? "Unable to read": "Unable to open");
+ BKE_report(reports, RPT_WARNING, (mem)? "Unable to read": "Unable to open");
return NULL;
}
else {
@@ -1041,7 +1034,7 @@ FileData *blo_openblendermemory(void *mem, int memsize, ReportList *reports)
FileData *blo_openblendermemfile(MemFile *memfile, ReportList *reports)
{
if (!memfile) {
- BKE_report(reports, RPT_ERROR, "Unable to open blend <memory>");
+ BKE_report(reports, RPT_WARNING, "Unable to open blend <memory>");
return NULL;
}
else {
@@ -1476,11 +1469,7 @@ static void link_glob_list(FileData *fd, ListBase *lb) /* for glob data */
static void test_pointer_array(FileData *fd, void **mat)
{
-#if defined(WIN32) && !defined(FREE_WINDOWS)
- __int64 *lpoin, *lmat;
-#else
- long long *lpoin, *lmat;
-#endif
+ int64_t *lpoin, *lmat;
int *ipoin, *imat;
size_t len;
@@ -1497,7 +1486,7 @@ static void test_pointer_array(FileData *fd, void **mat)
while (len-- > 0) {
if ((fd->flags & FD_FLAGS_SWITCH_ENDIAN))
- SWITCH_LONGINT(*lpoin);
+ BLI_endian_switch_int64(lpoin);
*ipoin = (int)((*lpoin) >> 3);
ipoin++;
lpoin++;
@@ -1567,16 +1556,13 @@ static void IDP_DirectLinkArray(IDProperty *prop, int switch_endian, FileData *f
}
else if (prop->subtype == IDP_DOUBLE) {
if (switch_endian) {
- for (i = 0; i < prop->len; i++) {
- SWITCH_LONGINT(((double *)prop->data.pointer)[i]);
- }
+ BLI_endian_switch_double_array(prop->data.pointer, prop->len);
}
}
else {
if (switch_endian) {
- for (i = 0; i < prop->len; i++) {
- SWITCH_INT(((int *)prop->data.pointer)[i]);
- }
+ /* also used for floats */
+ BLI_endian_switch_int32_array(prop->data.pointer, prop->len);
}
}
}
@@ -1628,9 +1614,9 @@ static void IDP_DirectLinkProperty(IDProperty *prop, int switch_endian, FileData
*/
if (switch_endian) {
- SWITCH_INT(prop->data.val);
- SWITCH_INT(prop->data.val2);
- SWITCH_LONGINT(prop->data.val);
+ BLI_endian_switch_int32(&prop->data.val);
+ BLI_endian_switch_int32(&prop->data.val2);
+ BLI_endian_switch_int64((int64_t *)&prop->data.val);
}
break;
@@ -1667,8 +1653,8 @@ static void lib_link_brush(FileData *fd, Main *main)
/* only link ID pointers */
for (brush = main->brush.first; brush; brush = brush->id.next) {
- if (brush->id.flag & LIB_NEEDLINK) {
- brush->id.flag -= LIB_NEEDLINK;
+ if (brush->id.flag & LIB_NEED_LINK) {
+ brush->id.flag -= LIB_NEED_LINK;
brush->mtex.tex = newlibadr_us(fd, brush->id.lib, brush->mtex.tex);
brush->clone.image = newlibadr_us(fd, brush->id.lib, brush->clone.image);
@@ -1733,24 +1719,24 @@ static PreviewImage *direct_link_preview_image(FileData *fd, PreviewImage *old_p
/* Legacy Data Support (for Version Patching) ----------------------------- */
-// XXX depreceated - old animation system
+// XXX deprecated - old animation system
static void lib_link_ipo(FileData *fd, Main *main)
{
Ipo *ipo;
for (ipo = main->ipo.first; ipo; ipo = ipo->id.next) {
- if (ipo->id.flag & LIB_NEEDLINK) {
+ if (ipo->id.flag & LIB_NEED_LINK) {
IpoCurve *icu;
for (icu = ipo->curve.first; icu; icu = icu->next) {
if (icu->driver)
icu->driver->ob = newlibadr(fd, ipo->id.lib, icu->driver->ob);
}
- ipo->id.flag -= LIB_NEEDLINK;
+ ipo->id.flag -= LIB_NEED_LINK;
}
}
}
-// XXX depreceated - old animation system
+// XXX deprecated - old animation system
static void direct_link_ipo(FileData *fd, Ipo *ipo)
{
IpoCurve *icu;
@@ -1764,7 +1750,7 @@ static void direct_link_ipo(FileData *fd, Ipo *ipo)
}
}
-// XXX depreceated - old animation system
+// XXX deprecated - old animation system
static void lib_link_nlastrips(FileData *fd, ID *id, ListBase *striplist)
{
bActionStrip *strip;
@@ -1779,7 +1765,7 @@ static void lib_link_nlastrips(FileData *fd, ID *id, ListBase *striplist)
}
}
-// XXX depreceated - old animation system
+// XXX deprecated - old animation system
static void direct_link_nlastrips(FileData *fd, ListBase *strips)
{
bActionStrip *strip;
@@ -1790,7 +1776,7 @@ static void direct_link_nlastrips(FileData *fd, ListBase *strips)
link_list(fd, &strip->modifiers);
}
-// XXX depreceated - old animation system
+// XXX deprecated - old animation system
static void lib_link_constraint_channels(FileData *fd, ID *id, ListBase *chanbase)
{
bConstraintChannel *chan;
@@ -1871,9 +1857,7 @@ static void direct_link_fmodifiers(FileData *fd, ListBase *list)
data->coefficients = newdataadr(fd, data->coefficients);
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
- unsigned int a;
- for (a = 0; a < data->arraysize; a++)
- SWITCH_INT(data->coefficients[a]);
+ BLI_endian_switch_float_array(data->coefficients, data->arraysize);
}
}
break;
@@ -1913,14 +1897,25 @@ static void direct_link_fcurves(FileData *fd, ListBase *list)
/* group */
fcu->grp = newdataadr(fd, fcu->grp);
+ /* clear disabled flag - allows disabled drivers to be tried again ([#32155]),
+ * but also means that another method for "reviving disabled F-Curves" exists
+ */
+ fcu->flag &= ~FCURVE_DISABLED;
+
/* driver */
fcu->driver= newdataadr(fd, fcu->driver);
if (fcu->driver) {
ChannelDriver *driver= fcu->driver;
DriverVar *dvar;
+ /* compiled expression data will need to be regenerated (old pointer may still be set here) */
driver->expr_comp = NULL;
+ /* give the driver a fresh chance - the operating environment may be different now
+ * (addons, etc. may be different) so the driver namespace may be sane now [#32155]
+ */
+ driver->flag &= ~DRIVER_FLAG_INVALID;
+
/* relink variables, targets and their paths */
link_list(fd, &driver->variables);
for (dvar= driver->variables.first; dvar; dvar= dvar->next) {
@@ -1949,15 +1944,15 @@ static void lib_link_action(FileData *fd, Main *main)
bActionChannel *chan;
for (act = main->action.first; act; act = act->id.next) {
- if (act->id.flag & LIB_NEEDLINK) {
- act->id.flag -= LIB_NEEDLINK;
+ if (act->id.flag & LIB_NEED_LINK) {
+ act->id.flag -= LIB_NEED_LINK;
-// XXX depreceated - old animation system <<<
+// XXX deprecated - old animation system <<<
for (chan=act->chanbase.first; chan; chan=chan->next) {
chan->ipo = newlibadr_us(fd, act->id.lib, chan->ipo);
lib_link_constraint_channels(fd, &act->id, &chan->constraintChannels);
}
-// >>> XXX depreceated - old animation system
+// >>> XXX deprecated - old animation system
lib_link_fcurves(fd, &act->id, &act->curves);
}
@@ -1966,21 +1961,21 @@ static void lib_link_action(FileData *fd, Main *main)
static void direct_link_action(FileData *fd, bAction *act)
{
- bActionChannel *achan; // XXX depreceated - old animation system
+ bActionChannel *achan; // XXX deprecated - old animation system
bActionGroup *agrp;
link_list(fd, &act->curves);
- link_list(fd, &act->chanbase); // XXX depreceated - old animation system
+ link_list(fd, &act->chanbase); // XXX deprecated - old animation system
link_list(fd, &act->groups);
link_list(fd, &act->markers);
-// XXX depreceated - old animation system <<<
+// XXX deprecated - old animation system <<<
for (achan = act->chanbase.first; achan; achan=achan->next) {
achan->grp = newdataadr(fd, achan->grp);
link_list(fd, &achan->constraintChannels);
}
-// >>> XXX depreceated - old animation system
+// >>> XXX deprecated - old animation system
direct_link_fcurves(fd, &act->curves);
@@ -2176,8 +2171,8 @@ static void lib_link_nodetree(FileData *fd, Main *main)
/* only link ID pointers */
for (ntree = main->nodetree.first; ntree; ntree = ntree->id.next) {
- if (ntree->id.flag & LIB_NEEDLINK) {
- ntree->id.flag -= LIB_NEEDLINK;
+ if (ntree->id.flag & LIB_NEED_LINK) {
+ ntree->id.flag -= LIB_NEED_LINK;
lib_link_ntree(fd, &ntree->id, ntree);
}
}
@@ -2493,7 +2488,7 @@ static void lib_link_constraints(FileData *fd, ID *id, ListBase *conlist)
con->type = CONSTRAINT_TYPE_NULL;
}
/* own ipo, all constraints have it */
- con->ipo = newlibadr_us(fd, id->lib, con->ipo); // XXX depreceated - old animation system
+ con->ipo = newlibadr_us(fd, id->lib, con->ipo); // XXX deprecated - old animation system
}
/* relink all ID-blocks used by the constraints */
@@ -2599,14 +2594,14 @@ static void lib_link_armature(FileData *fd, Main *main)
bArmature *arm;
for (arm = main->armature.first; arm; arm = arm->id.next) {
- if (arm->id.flag & LIB_NEEDLINK) {
+ if (arm->id.flag & LIB_NEED_LINK) {
if (arm->adt) lib_link_animdata(fd, &arm->id, arm->adt);
- arm->id.flag -= LIB_NEEDLINK;
+ arm->id.flag -= LIB_NEED_LINK;
}
}
}
-static void direct_link_bones(FileData *fd, Bone* bone)
+static void direct_link_bones(FileData *fd, Bone *bone)
{
Bone *child;
@@ -2649,14 +2644,14 @@ static void lib_link_camera(FileData *fd, Main *main)
Camera *ca;
for (ca = main->camera.first; ca; ca = ca->id.next) {
- if (ca->id.flag & LIB_NEEDLINK) {
+ if (ca->id.flag & LIB_NEED_LINK) {
if (ca->adt) lib_link_animdata(fd, &ca->id, ca->adt);
- ca->ipo = newlibadr_us(fd, ca->id.lib, ca->ipo); // XXX depreceated - old animation system
+ ca->ipo = newlibadr_us(fd, ca->id.lib, ca->ipo); // XXX deprecated - old animation system
ca->dof_ob = newlibadr_us(fd, ca->id.lib, ca->dof_ob);
- ca->id.flag -= LIB_NEEDLINK;
+ ca->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -2677,7 +2672,7 @@ static void lib_link_lamp(FileData *fd, Main *main)
int a;
for (la = main->lamp.first; la; la = la->id.next) {
- if (la->id.flag & LIB_NEEDLINK) {
+ if (la->id.flag & LIB_NEED_LINK) {
if (la->adt) lib_link_animdata(fd, &la->id, la->adt);
for (a = 0; a < MAX_MTEX; a++) {
@@ -2688,12 +2683,12 @@ static void lib_link_lamp(FileData *fd, Main *main)
}
}
- la->ipo = newlibadr_us(fd, la->id.lib, la->ipo); // XXX depreceated - old animation system
+ la->ipo = newlibadr_us(fd, la->id.lib, la->ipo); // XXX deprecated - old animation system
if (la->nodetree)
lib_link_ntree(fd, &la->id, la->nodetree);
- la->id.flag -= LIB_NEEDLINK;
+ la->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -2722,6 +2717,16 @@ static void direct_link_lamp(FileData *fd, Lamp *la)
/* ************ READ keys ***************** */
+static void do_versions_key_uidgen(Key *key)
+{
+ KeyBlock *block;
+
+ key->uidgen = 1;
+ for (block = key->block.first; block; block = block->next) {
+ block->uid = key->uidgen++;
+ }
+}
+
static void lib_link_key(FileData *fd, Main *main)
{
Key *key;
@@ -2729,21 +2734,16 @@ static void lib_link_key(FileData *fd, Main *main)
for (key = main->key.first; key; key = key->id.next) {
/*check if we need to generate unique ids for the shapekeys*/
if (!key->uidgen) {
- KeyBlock *block;
-
- key->uidgen = 1;
- for (block=key->block.first; block; block=block->next) {
- block->uid = key->uidgen++;
- }
+ do_versions_key_uidgen(key);
}
- if (key->id.flag & LIB_NEEDLINK) {
+ if (key->id.flag & LIB_NEED_LINK) {
if (key->adt) lib_link_animdata(fd, &key->id, key->adt);
- key->ipo = newlibadr_us(fd, key->id.lib, key->ipo); // XXX depreceated - old animation system
+ key->ipo = newlibadr_us(fd, key->id.lib, key->ipo); // XXX deprecated - old animation system
key->from = newlibadr(fd, key->id.lib, key->from);
- key->id.flag -= LIB_NEEDLINK;
+ key->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -2766,11 +2766,8 @@ static void switch_endian_keyblock(Key *key, KeyBlock *kb)
case IPO_BPOINT:
case IPO_BEZTRIPLE:
b = cp[0];
-
- while (b--) {
- SWITCH_INT((*poin));
- poin += 4;
- }
+ BLI_endian_switch_float_array((float *)poin, b);
+ poin += sizeof(float) * b;
break;
}
@@ -2807,15 +2804,15 @@ static void lib_link_mball(FileData *fd, Main *main)
int a;
for (mb = main->mball.first; mb; mb = mb->id.next) {
- if (mb->id.flag & LIB_NEEDLINK) {
+ if (mb->id.flag & LIB_NEED_LINK) {
if (mb->adt) lib_link_animdata(fd, &mb->id, mb->adt);
for (a = 0; a < mb->totcol; a++)
mb->mat[a]= newlibadr_us(fd, mb->id.lib, mb->mat[a]);
- mb->ipo = newlibadr_us(fd, mb->id.lib, mb->ipo); // XXX depreceated - old animation system
+ mb->ipo = newlibadr_us(fd, mb->id.lib, mb->ipo); // XXX deprecated - old animation system
- mb->id.flag -= LIB_NEEDLINK;
+ mb->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -2846,10 +2843,10 @@ static void lib_link_world(FileData *fd, Main *main)
int a;
for (wrld = main->world.first; wrld; wrld = wrld->id.next) {
- if (wrld->id.flag & LIB_NEEDLINK) {
+ if (wrld->id.flag & LIB_NEED_LINK) {
if (wrld->adt) lib_link_animdata(fd, &wrld->id, wrld->adt);
- wrld->ipo = newlibadr_us(fd, wrld->id.lib, wrld->ipo); // XXX depreceated - old animation system
+ wrld->ipo = newlibadr_us(fd, wrld->id.lib, wrld->ipo); // XXX deprecated - old animation system
for (a=0; a < MAX_MTEX; a++) {
mtex = wrld->mtex[a];
@@ -2862,7 +2859,7 @@ static void lib_link_world(FileData *fd, Main *main)
if (wrld->nodetree)
lib_link_ntree(fd, &wrld->id, wrld->nodetree);
- wrld->id.flag -= LIB_NEEDLINK;
+ wrld->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -2893,8 +2890,8 @@ static void lib_link_vfont(FileData *UNUSED(fd), Main *main)
VFont *vf;
for (vf = main->vfont.first; vf; vf = vf->id.next) {
- if (vf->id.flag & LIB_NEEDLINK) {
- vf->id.flag -= LIB_NEEDLINK;
+ if (vf->id.flag & LIB_NEED_LINK) {
+ vf->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -2902,6 +2899,7 @@ static void lib_link_vfont(FileData *UNUSED(fd), Main *main)
static void direct_link_vfont(FileData *fd, VFont *vf)
{
vf->data = NULL;
+ vf->temp_pf = NULL;
vf->packedfile = direct_link_packedfile(fd, vf->packedfile);
}
@@ -2912,8 +2910,8 @@ static void lib_link_text(FileData *UNUSED(fd), Main *main)
Text *text;
for (text = main->text.first; text; text = text->id.next) {
- if (text->id.flag & LIB_NEEDLINK) {
- text->id.flag -= LIB_NEEDLINK;
+ if (text->id.flag & LIB_NEED_LINK) {
+ text->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -2965,10 +2963,10 @@ static void lib_link_image(FileData *fd, Main *main)
Image *ima;
for (ima = main->image.first; ima; ima = ima->id.next) {
- if (ima->id.flag & LIB_NEEDLINK) {
+ if (ima->id.flag & LIB_NEED_LINK) {
if (ima->id.properties) IDP_LibLinkProperty(ima->id.properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
- ima->id.flag -= LIB_NEEDLINK;
+ ima->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -3035,7 +3033,7 @@ static void lib_link_curve(FileData *fd, Main *main)
int a;
for (cu = main->curve.first; cu; cu = cu->id.next) {
- if (cu->id.flag & LIB_NEEDLINK) {
+ if (cu->id.flag & LIB_NEED_LINK) {
if (cu->adt) lib_link_animdata(fd, &cu->id, cu->adt);
for (a = 0; a < cu->totcol; a++)
@@ -3049,10 +3047,10 @@ static void lib_link_curve(FileData *fd, Main *main)
cu->vfonti = newlibadr_us(fd, cu->id.lib, cu->vfonti);
cu->vfontbi = newlibadr_us(fd, cu->id.lib, cu->vfontbi);
- cu->ipo = newlibadr_us(fd, cu->id.lib, cu->ipo); // XXX depreceated - old animation system
+ cu->ipo = newlibadr_us(fd, cu->id.lib, cu->ipo); // XXX deprecated - old animation system
cu->key = newlibadr_us(fd, cu->id.lib, cu->key);
- cu->id.flag -= LIB_NEEDLINK;
+ cu->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -3060,19 +3058,11 @@ static void lib_link_curve(FileData *fd, Main *main)
static void switch_endian_knots(Nurb *nu)
{
- int len;
-
if (nu->knotsu) {
- len = KNOTSU(nu);
- while (len--) {
- SWITCH_INT(nu->knotsu[len]);
- }
+ BLI_endian_switch_float_array(nu->knotsu, KNOTSU(nu));
}
if (nu->knotsv) {
- len = KNOTSV(nu);
- while (len--) {
- SWITCH_INT(nu->knotsv[len]);
- }
+ BLI_endian_switch_float_array(nu->knotsv, KNOTSV(nu));
}
}
@@ -3137,7 +3127,7 @@ static void lib_link_texture(FileData *fd, Main *main)
Tex *tex;
for (tex = main->tex.first; tex; tex = tex->id.next) {
- if (tex->id.flag & LIB_NEEDLINK) {
+ if (tex->id.flag & LIB_NEED_LINK) {
if (tex->adt) lib_link_animdata(fd, &tex->id, tex->adt);
tex->ima = newlibadr_us(fd, tex->id.lib, tex->ima);
@@ -3154,7 +3144,7 @@ static void lib_link_texture(FileData *fd, Main *main)
if (tex->nodetree)
lib_link_ntree(fd, &tex->id, tex->nodetree);
- tex->id.flag -= LIB_NEEDLINK;
+ tex->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -3213,7 +3203,7 @@ static void lib_link_material(FileData *fd, Main *main)
int a;
for (ma = main->mat.first; ma; ma = ma->id.next) {
- if (ma->id.flag & LIB_NEEDLINK) {
+ if (ma->id.flag & LIB_NEED_LINK) {
if (ma->adt) lib_link_animdata(fd, &ma->id, ma->adt);
/* Link ID Properties -- and copy this comment EXACTLY for easy finding
@@ -3234,7 +3224,7 @@ static void lib_link_material(FileData *fd, Main *main)
if (ma->nodetree)
lib_link_ntree(fd, &ma->id, ma->nodetree);
- ma->id.flag -= LIB_NEEDLINK;
+ ma->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -3290,11 +3280,10 @@ static void direct_link_pointcache(FileData *fd, PointCache *cache)
/* the cache saves non-struct data without DNA */
if (pm->data[i] && ptcache_data_struct[i][0]=='\0' && (fd->flags & FD_FLAGS_SWITCH_ENDIAN)) {
- int j, tot = (BKE_ptcache_data_size (i) * pm->totpoint)/4; /* data_size returns bytes */
+ int tot = (BKE_ptcache_data_size (i) * pm->totpoint) / sizeof(int); /* data_size returns bytes */
int *poin = pm->data[i];
- for (j = 0; j < tot; j++)
- SWITCH_INT(poin[j]);
+ BLI_endian_switch_int32_array(poin, tot);
}
}
@@ -3356,9 +3345,9 @@ static void lib_link_particlesettings(FileData *fd, Main *main)
int a;
for (part = main->particle.first; part; part = part->id.next) {
- if (part->id.flag & LIB_NEEDLINK) {
+ if (part->id.flag & LIB_NEED_LINK) {
if (part->adt) lib_link_animdata(fd, &part->id, part->adt);
- part->ipo = newlibadr_us(fd, part->id.lib, part->ipo); // XXX depreceated - old animation system
+ part->ipo = newlibadr_us(fd, part->id.lib, part->ipo); // XXX deprecated - old animation system
part->dup_ob = newlibadr(fd, part->id.lib, part->dup_ob);
part->dup_group = newlibadr(fd, part->id.lib, part->dup_group);
@@ -3438,7 +3427,7 @@ static void lib_link_particlesettings(FileData *fd, Main *main)
}
}
- part->id.flag -= LIB_NEEDLINK;
+ part->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -3578,10 +3567,10 @@ static void direct_link_particlesystems(FileData *fd, ListBase *particles)
psys->clmd->clothObject = NULL;
psys->clmd->sim_parms= newdataadr(fd, psys->clmd->sim_parms);
- psys->clmd->sim_parms->effector_weights = NULL;
psys->clmd->coll_parms= newdataadr(fd, psys->clmd->coll_parms);
if (psys->clmd->sim_parms) {
+ psys->clmd->sim_parms->effector_weights = NULL;
if (psys->clmd->sim_parms->presets > 10)
psys->clmd->sim_parms->presets = 0;
}
@@ -3651,7 +3640,7 @@ static void lib_link_mesh(FileData *fd, Main *main)
Mesh *me;
for (me = main->mesh.first; me; me = me->id.next) {
- if (me->id.flag & LIB_NEEDLINK) {
+ if (me->id.flag & LIB_NEED_LINK) {
int i;
/* Link ID Properties -- and copy this comment EXACTLY for easy finding
@@ -3676,7 +3665,14 @@ static void lib_link_mesh(FileData *fd, Main *main)
if (me->mr && me->mr->levels.first)
lib_link_customdata_mtface(fd, me, &me->mr->fdata,
((MultiresLevel*)me->mr->levels.first)->totface);
-
+ }
+ }
+
+ /* convert texface options to material */
+ convert_tface_mt(fd, main);
+
+ for (me = main->mesh.first; me; me = me->id.next) {
+ if (me->id.flag & LIB_NEED_LINK) {
/*check if we need to convert mfaces to mpolys*/
if (me->totface && !me->totpoly) {
/* temporarily switch main so that reading from
@@ -3688,7 +3684,7 @@ static void lib_link_mesh(FileData *fd, Main *main)
G.main = gmain;
}
-
+
/*
* Re-tessellate, even if the polys were just created from tessfaces, this
* is important because it:
@@ -3704,13 +3700,10 @@ static void lib_link_mesh(FileData *fd, Main *main)
#else
BKE_mesh_tessface_clear(me);
#endif
-
- me->id.flag -= LIB_NEEDLINK;
+
+ me->id.flag -= LIB_NEED_LINK;
}
}
-
- /* convert texface options to material */
- convert_tface_mt(fd, main);
}
static void direct_link_dverts(FileData *fd, int count, MDeformVert *mdverts)
@@ -3759,12 +3752,7 @@ static void direct_link_mdisps(FileData *fd, int count, MDisps *mdisps, int exte
if ((fd->flags & FD_FLAGS_SWITCH_ENDIAN) && (mdisps[i].disps)) {
/* DNA_struct_switch_endian doesn't do endian swap for (*disps)[] */
/* this does swap for data written at write_mdisps() - readfile.c */
- int x;
- float *tmpdisps = *mdisps[i].disps;
- for (x = 0; x < mdisps[i].totdisp * 3; x++) {
- SWITCH_INT(*tmpdisps);
- tmpdisps++;
- }
+ BLI_endian_switch_float_array(*mdisps[i].disps, mdisps[i].totdisp * 3);
}
if (!external && !mdisps[i].disps)
mdisps[i].totdisp = 0;
@@ -3833,7 +3821,6 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
mesh->tface = newdataadr(fd, mesh->tface);
mesh->mtface = newdataadr(fd, mesh->mtface);
mesh->mcol = newdataadr(fd, mesh->mcol);
- mesh->msticky = newdataadr(fd, mesh->msticky);
mesh->dvert = newdataadr(fd, mesh->dvert);
mesh->mloopcol = newdataadr(fd, mesh->mloopcol);
mesh->mloopuv = newdataadr(fd, mesh->mloopuv);
@@ -3854,35 +3841,6 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
direct_link_customdata(fd, &mesh->ldata, mesh->totloop);
direct_link_customdata(fd, &mesh->pdata, mesh->totpoly);
-
-#ifdef USE_BMESH_FORWARD_COMPAT
- /* NEVER ENABLE THIS CODE INTO BMESH!
- * THIS IS FOR LOADING BMESH INTO OLDER FILES ONLY */
- mesh->mpoly = newdataadr(fd, mesh->mpoly);
- mesh->mloop = newdataadr(fd, mesh->mloop);
-
- direct_link_customdata(fd, &mesh->pdata, mesh->totpoly);
- direct_link_customdata(fd, &mesh->ldata, mesh->totloop);
-
- if (mesh->mpoly) {
- /* be clever and load polygons as mfaces */
- mesh->totface= BKE_mesh_mpoly_to_mface(&mesh->fdata, &mesh->ldata, &mesh->pdata,
- mesh->totface, mesh->totloop, mesh->totpoly);
-
- CustomData_free(&mesh->pdata, mesh->totpoly);
- memset(&mesh->pdata, 0, sizeof(CustomData));
- mesh->totpoly = 0;
-
- CustomData_free(&mesh->ldata, mesh->totloop);
- memset(&mesh->ldata, 0, sizeof(CustomData));
- mesh->totloop = 0;
-
- mesh_update_customdata_pointers(mesh);
- }
-
-#endif
-
-
mesh->bb = NULL;
mesh->edit_btmesh = NULL;
@@ -3934,11 +3892,8 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
TFace *tf = mesh->tface;
int i;
- for (i = 0; i < (mesh->totface); i++, tf++) {
- SWITCH_INT(tf->col[0]);
- SWITCH_INT(tf->col[1]);
- SWITCH_INT(tf->col[2]);
- SWITCH_INT(tf->col[3]);
+ for (i = 0; i < mesh->totface; i++, tf++) {
+ BLI_endian_switch_uint32_array(tf->col, 4);
}
}
}
@@ -3950,13 +3905,13 @@ static void lib_link_latt(FileData *fd, Main *main)
Lattice *lt;
for (lt = main->latt.first; lt; lt = lt->id.next) {
- if (lt->id.flag & LIB_NEEDLINK) {
+ if (lt->id.flag & LIB_NEED_LINK) {
if (lt->adt) lib_link_animdata(fd, &lt->id, lt->adt);
- lt->ipo = newlibadr_us(fd, lt->id.lib, lt->ipo); // XXX depreceated - old animation system
+ lt->ipo = newlibadr_us(fd, lt->id.lib, lt->ipo); // XXX deprecated - old animation system
lt->key = newlibadr_us(fd, lt->id.lib, lt->key);
- lt->id.flag -= LIB_NEEDLINK;
+ lt->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -4003,14 +3958,14 @@ static void lib_link_object(FileData *fd, Main *main)
int warn=0, a;
for (ob = main->object.first; ob; ob = ob->id.next) {
- if (ob->id.flag & LIB_NEEDLINK) {
+ if (ob->id.flag & LIB_NEED_LINK) {
if (ob->id.properties) IDP_LibLinkProperty(ob->id.properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
if (ob->adt) lib_link_animdata(fd, &ob->id, ob->adt);
-// XXX depreceated - old animation system <<<
+// XXX deprecated - old animation system <<<
ob->ipo = newlibadr_us(fd, ob->id.lib, ob->ipo);
ob->action = newlibadr_us(fd, ob->id.lib, ob->action);
-// >>> XXX depreceated - old animation system
+// >>> XXX deprecated - old animation system
ob->parent = newlibadr(fd, ob->id.lib, ob->parent);
ob->track = newlibadr(fd, ob->id.lib, ob->track);
@@ -4082,17 +4037,17 @@ static void lib_link_object(FileData *fd, Main *main)
ob->gpd = newlibadr_us(fd, ob->id.lib, ob->gpd);
ob->duplilist = NULL;
- ob->id.flag -= LIB_NEEDLINK;
+ ob->id.flag -= LIB_NEED_LINK;
/* if id.us==0 a new base will be created later on */
/* WARNING! Also check expand_object(), should reflect the stuff below. */
lib_link_pose(fd, ob, ob->pose);
lib_link_constraints(fd, &ob->id, &ob->constraints);
-// XXX depreceated - old animation system <<<
+// XXX deprecated - old animation system <<<
lib_link_constraint_channels(fd, &ob->id, &ob->constraintChannels);
lib_link_nlastrips(fd, &ob->id, &ob->nlastrips);
-// >>> XXX depreceated - old animation system
+// >>> XXX deprecated - old animation system
for (paf = ob->effect.first; paf; paf = paf->next) {
if (paf->type == EFF_PARTICLE) {
@@ -4385,11 +4340,13 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb)
smd->domain = NULL;
smd->coll = newdataadr(fd, smd->coll);
if (smd->coll) {
+ smd->coll->smd = smd;
smd->coll->points = NULL;
smd->coll->numpoints = 0;
}
- else
+ else {
smd->type = 0;
+ }
}
}
else if (md->type == eModifierType_DynamicPaint) {
@@ -4463,10 +4420,7 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb)
hmd->indexar = newdataadr(fd, hmd->indexar);
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
- int a;
- for (a = 0; a < hmd->totindex; a++) {
- SWITCH_INT(hmd->indexar[a]);
- }
+ BLI_endian_switch_int32_array(hmd->indexar, hmd->totindex);
}
}
else if (md->type == eModifierType_ParticleSystem) {
@@ -4496,24 +4450,11 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb)
mmd->bindcos = newdataadr(fd, mmd->bindcos);
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
- int a;
-
- if (mmd->bindoffsets)
- for (a=0; a<mmd->totvert+1; a++)
- SWITCH_INT(mmd->bindoffsets[a]);
- if (mmd->bindcagecos)
- for (a=0; a<mmd->totcagevert*3; a++)
- SWITCH_INT(mmd->bindcagecos[a]);
- if (mmd->dynverts)
- for (a=0; a<mmd->totvert; a++)
- SWITCH_INT(mmd->dynverts[a]);
-
- if (mmd->bindweights)
- for (a=0; a<mmd->totcagevert*mmd->totvert; a++)
- SWITCH_INT(mmd->bindweights[a]);
- if (mmd->bindcos)
- for (a=0; a<mmd->totcagevert*3; a++)
- SWITCH_INT(mmd->bindcos[a]);
+ if (mmd->bindoffsets) BLI_endian_switch_int32_array(mmd->bindoffsets, mmd->totvert + 1);
+ if (mmd->bindcagecos) BLI_endian_switch_float_array(mmd->bindcagecos, mmd->totcagevert * 3);
+ if (mmd->dynverts) BLI_endian_switch_int32_array(mmd->dynverts, mmd->totvert);
+ if (mmd->bindweights) BLI_endian_switch_float_array(mmd->bindweights, mmd->totvert);
+ if (mmd->bindcos) BLI_endian_switch_float_array(mmd->bindcos, mmd->totcagevert * 3);
}
}
else if (md->type == eModifierType_Ocean) {
@@ -4568,10 +4509,10 @@ static void direct_link_object(FileData *fd, Object *ob)
direct_link_motionpath(fd, ob->mpath);
link_list(fd, &ob->defbase);
-// XXX depreceated - old animation system <<<
+// XXX deprecated - old animation system <<<
direct_link_nlastrips(fd, &ob->nlastrips);
link_list(fd, &ob->constraintChannels);
-// >>> XXX depreceated - old animation system
+// >>> XXX deprecated - old animation system
ob->mat= newdataadr(fd, ob->mat);
test_pointer_array(fd, (void **)&ob->mat);
@@ -4707,10 +4648,7 @@ static void direct_link_object(FileData *fd, Object *ob)
hook->indexar= newdataadr(fd, hook->indexar);
if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
- int a;
- for (a = 0; a < hook->totindex; a++) {
- SWITCH_INT(hook->indexar[a]);
- }
+ BLI_endian_switch_int32_array(hook->indexar, hook->totindex);
}
/* Do conversion here because if we have loaded
@@ -4769,6 +4707,16 @@ static void link_paint(FileData *fd, Scene *sce, Paint *p)
}
}
+static void lib_link_sequence_modifiers(FileData *fd, Scene *scene, ListBase *lb)
+{
+ SequenceModifierData *smd;
+
+ for (smd = lb->first; smd; smd = smd->next) {
+ if (smd->mask_id)
+ smd->mask_id = newlibadr_us(fd, scene->id.lib, smd->mask_id);
+ }
+}
+
static void lib_link_scene(FileData *fd, Main *main)
{
Scene *sce;
@@ -4778,7 +4726,7 @@ static void lib_link_scene(FileData *fd, Main *main)
TimeMarker *marker;
for (sce = main->scene.first; sce; sce = sce->id.next) {
- if (sce->id.flag & LIB_NEEDLINK) {
+ if (sce->id.flag & LIB_NEED_LINK) {
/* Link ID Properties -- and copy this comment EXACTLY for easy finding
* of library blocks that implement this.*/
if (sce->id.properties) IDP_LibLinkProperty(sce->id.properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
@@ -4805,7 +4753,7 @@ static void lib_link_scene(FileData *fd, Main *main)
base->object = newlibadr_us(fd, sce->id.lib, base->object);
if (base->object == NULL) {
- BKE_reportf_wrap(fd->reports, RPT_ERROR,
+ BKE_reportf_wrap(fd->reports, RPT_WARNING,
"LIB ERROR: Object lost from scene:'%s\'",
sce->id.name + 2);
BLI_remlink(&sce->base, base);
@@ -4826,25 +4774,35 @@ static void lib_link_scene(FileData *fd, Main *main)
}
if (seq->clip) {
seq->clip = newlibadr(fd, sce->id.lib, seq->clip);
- seq->clip->id.us++;
+ if (seq->clip) {
+ seq->clip->id.us++;
+ }
}
if (seq->mask) {
seq->mask = newlibadr(fd, sce->id.lib, seq->mask);
- seq->mask->id.us++;
+ if (seq->mask) {
+ seq->mask->id.us++;
+ }
+ }
+ if (seq->scene_camera) {
+ seq->scene_camera = newlibadr(fd, sce->id.lib, seq->scene_camera);
}
- if (seq->scene_camera) seq->scene_camera = newlibadr(fd, sce->id.lib, seq->scene_camera);
if (seq->sound) {
seq->scene_sound = NULL;
- if (seq->type == SEQ_TYPE_SOUND_HD)
+ if (seq->type == SEQ_TYPE_SOUND_HD) {
seq->type = SEQ_TYPE_SOUND_RAM;
- else
+ }
+ else {
seq->sound = newlibadr(fd, sce->id.lib, seq->sound);
+ }
if (seq->sound) {
seq->sound->id.us++;
seq->scene_sound = sound_add_scene_sound_defaults(sce, seq);
}
}
seq->anim = NULL;
+
+ lib_link_sequence_modifiers(fd, sce, &seq->modifiers);
}
SEQ_END
@@ -4858,8 +4816,8 @@ static void lib_link_scene(FileData *fd, Main *main)
(void)marker;
#endif
- seq_update_muting(sce->ed);
- seq_update_sound_bounds_all(sce);
+ BKE_sequencer_update_muting(sce->ed);
+ BKE_sequencer_update_sound_bounds_all(sce);
if (sce->nodetree) {
lib_link_ntree(fd, &sce->id, sce->nodetree);
@@ -4876,7 +4834,7 @@ static void lib_link_scene(FileData *fd, Main *main)
/* Motion Tracking */
sce->clip = newlibadr_us(fd, sce->id.lib, sce->clip);
- sce->id.flag -= LIB_NEEDLINK;
+ sce->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -4901,6 +4859,37 @@ static void direct_link_paint(FileData *fd, Paint **paint)
(*paint)->num_input_samples = 1;
}
+static void direct_link_sequence_modifiers(FileData *fd, ListBase *lb)
+{
+ SequenceModifierData *smd;
+
+ link_list(fd, lb);
+
+ for (smd = lb->first; smd; smd = smd->next) {
+ if (smd->mask_sequence)
+ smd->mask_sequence = newdataadr(fd, smd->mask_sequence);
+
+ if (smd->type == seqModifierType_Curves) {
+ CurvesModifierData *cmd = (CurvesModifierData *) smd;
+
+ direct_link_curvemapping(fd, &cmd->curve_mapping);
+ }
+ else if (smd->type == seqModifierType_HueCorrect) {
+ HueCorrectModifierData *hcmd = (HueCorrectModifierData *) smd;
+
+ direct_link_curvemapping(fd, &hcmd->curve_mapping);
+ }
+ }
+}
+
+static void direct_link_view_settings(FileData *fd, ColorManagedViewSettings *view_settings)
+{
+ view_settings->curve_mapping = newdataadr(fd, view_settings->curve_mapping);
+
+ if (view_settings->curve_mapping)
+ direct_link_curvemapping(fd, view_settings->curve_mapping);
+}
+
static void direct_link_scene(FileData *fd, Scene *sce)
{
Editing *ed;
@@ -5001,17 +4990,12 @@ static void direct_link_scene(FileData *fd, Scene *sce)
else {
seq->strip->proxy = NULL;
}
- if (seq->flag & SEQ_USE_COLOR_BALANCE) {
- seq->strip->color_balance = newdataadr(
- fd, seq->strip->color_balance);
- }
- else {
- seq->strip->color_balance = NULL;
- }
- if (seq->strip->color_balance) {
- // seq->strip->color_balance->gui = 0; // XXX - peter, is this relevant in 2.5?
- }
+
+ /* need to load color balance to it could be converted to modifier */
+ seq->strip->color_balance = newdataadr(fd, seq->strip->color_balance);
}
+
+ direct_link_sequence_modifiers(fd, &seq->modifiers);
}
SEQ_END
@@ -5083,6 +5067,8 @@ static void direct_link_scene(FileData *fd, Scene *sce)
sce->nodetree = newdataadr(fd, sce->nodetree);
if (sce->nodetree)
direct_link_nodetree(fd, sce->nodetree);
+
+ direct_link_view_settings(fd, &sce->view_settings);
}
/* ************ READ WM ***************** */
@@ -5137,11 +5123,11 @@ static void lib_link_windowmanager(FileData *fd, Main *main)
wmWindow *win;
for (wm = main->wm.first; wm; wm = wm->id.next) {
- if (wm->id.flag & LIB_NEEDLINK) {
+ if (wm->id.flag & LIB_NEED_LINK) {
for (win = wm->windows.first; win; win = win->next)
win->screen = newlibadr(fd, NULL, win->screen);
- wm->id.flag -= LIB_NEEDLINK;
+ wm->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -5209,7 +5195,7 @@ static void lib_link_screen(FileData *fd, Main *main)
ScrArea *sa;
for (sc = main->screen.first; sc; sc = sc->id.next) {
- if (sc->id.flag & LIB_NEEDLINK) {
+ if (sc->id.flag & LIB_NEED_LINK) {
sc->id.us = 1;
sc->scene = newlibadr(fd, sc->id.lib, sc->scene);
sc->animtimer = NULL; /* saved in rare cases */
@@ -5282,7 +5268,8 @@ static void lib_link_screen(FileData *fd, Main *main)
SpaceImage *sima = (SpaceImage *)sl;
sima->image = newlibadr_us(fd, sc->id.lib, sima->image);
-
+ sima->mask_info.mask = newlibadr_us(fd, sc->id.lib, sima->mask_info.mask);
+
/* NOTE: pre-2.5, this was local data not lib data, but now we need this as lib data
* so fingers crossed this works fine!
*/
@@ -5295,6 +5282,13 @@ static void lib_link_screen(FileData *fd, Main *main)
* so fingers crossed this works fine!
*/
sseq->gpd = newlibadr_us(fd, sc->id.lib, sseq->gpd);
+
+ sseq->scopes.reference_ibuf = NULL;
+ sseq->scopes.zebra_ibuf = NULL;
+ sseq->scopes.waveform_ibuf = NULL;
+ sseq->scopes.sep_waveform_ibuf = NULL;
+ sseq->scopes.vector_ibuf = NULL;
+ sseq->scopes.histogram_ibuf = NULL;
}
else if (sl->spacetype == SPACE_NLA) {
SpaceNla *snla= (SpaceNla *)sl;
@@ -5368,7 +5362,7 @@ static void lib_link_screen(FileData *fd, Main *main)
SpaceClip *sclip = (SpaceClip *)sl;
sclip->clip = newlibadr_us(fd, sc->id.lib, sclip->clip);
- sclip->mask = newlibadr_us(fd, sc->id.lib, sclip->mask);
+ sclip->mask_info.mask = newlibadr_us(fd, sc->id.lib, sclip->mask_info.mask);
sclip->scopes.track_search = NULL;
sclip->scopes.track_preview = NULL;
@@ -5382,7 +5376,7 @@ static void lib_link_screen(FileData *fd, Main *main)
}
}
}
- sc->id.flag -= LIB_NEEDLINK;
+ sc->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -5433,13 +5427,13 @@ static int lib_link_seq_clipboard_cb(Sequence *seq, void *arg_pt)
static void lib_link_clipboard_restore(Main *newmain)
{
/* update IDs stored in sequencer clipboard */
- seqbase_recursive_apply(&seqbase_clipboard, lib_link_seq_clipboard_cb, newmain);
+ BKE_sequencer_base_recursive_apply(&seqbase_clipboard, lib_link_seq_clipboard_cb, newmain);
}
/* called from kernel/blender.c */
/* used to link a file (without UI) to the current UI */
/* note that it assumes the old pointers in UI are still valid, so old Main is not freed */
-void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene)
+void blo_lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene)
{
wmWindow *win;
wmWindowManager *wm;
@@ -5582,6 +5576,7 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene)
* so assume that here we're doing for undo only...
*/
sima->gpd = restore_pointer_by_name(newmain, (ID *)sima->gpd, 1);
+ sima->mask_info.mask = restore_pointer_by_name(newmain, (ID *)sima->mask_info.mask, 1);
}
else if (sl->spacetype == SPACE_SEQ) {
SpaceSeq *sseq = (SpaceSeq *)sl;
@@ -5657,7 +5652,7 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene)
SpaceClip *sclip = (SpaceClip *)sl;
sclip->clip = restore_pointer_by_name(newmain, (ID *)sclip->clip, 1);
- sclip->mask = restore_pointer_by_name(newmain, (ID *)sclip->mask, 1);
+ sclip->mask_info.mask = restore_pointer_by_name(newmain, (ID *)sclip->mask_info.mask, 1);
sclip->scopes.ok = 0;
}
@@ -5706,6 +5701,7 @@ static void direct_link_region(FileData *fd, ARegion *ar, int spacetype)
ar->v2d.tab_offset = NULL;
ar->v2d.tab_num = 0;
ar->v2d.tab_cur = 0;
+ ar->v2d.sms = NULL;
ar->handlers.first = ar->handlers.last = NULL;
ar->uiblocks.first = ar->uiblocks.last = NULL;
ar->headerstr = NULL;
@@ -5745,7 +5741,6 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
ScrArea *sa;
ScrVert *sv;
ScrEdge *se;
- int a;
link_list(fd, &(sc->vertbase));
link_list(fd, &(sc->edgebase));
@@ -5755,16 +5750,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
sc->mainwin = sc->subwinactive= 0; /* indices */
sc->swap = 0;
-
- /* hacky patch... but people have been saving files with the verse-blender,
- * causing the handler to keep running for ever, with no means to disable it */
- for (a = 0; a < SCREEN_MAXHANDLER; a+=2) {
- if (sc->handler[a] == SCREEN_HANDLER_VERSE) {
- sc->handler[a] = 0;
- break;
- }
- }
-
+
/* edges */
for (se = sc->edgebase.first; se; se = se->next) {
se->v1 = newdataadr(fd, se->v1);
@@ -5915,7 +5901,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
}
else if (sl->spacetype == SPACE_SEQ) {
/* grease pencil data is not a direct data and can't be linked from direct_link*
- * functions, it should be linked from lib_link* funcrions instead
+ * functions, it should be linked from lib_link* functions instead
*
* otherwise it'll lead to lost grease data on open because it'll likely be
* read from file after all other users of grease pencil and newdataadr would
@@ -5944,7 +5930,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
//for (cl= sconsole->scrollback.first; cl; cl= cl->next)
// cl->line= newdataadr(fd, cl->line);
- /* comma expressions, (e.g. expr1, expr2, expr3) evalutate each expression,
+ /* comma expressions, (e.g. expr1, expr2, expr3) evaluate each expression,
* from left to right. the right-most expression sets the result of the comma
* expression as a whole*/
for (cl = sconsole->history.first; cl; cl = cl_next) {
@@ -6043,7 +6029,7 @@ static void fix_relpaths_library(const char *basepath, Main *main)
* it absolute. This can happen when appending an object with a relative
* link into an unsaved blend file. See [#27405].
* The remap relative option will make it relative again on save - campbell */
- if (strncmp(lib->name, "//", 2) == 0) {
+ if (BLI_path_is_rel(lib->name)) {
BLI_strncpy(lib->name, lib->filepath, sizeof(lib->name));
}
}
@@ -6052,7 +6038,7 @@ static void fix_relpaths_library(const char *basepath, Main *main)
for (lib = main->library.first; lib; lib = lib->id.next) {
/* Libraries store both relative and abs paths, recreate relative paths,
* relative to the blend file since indirectly linked libs will be relative to their direct linked library */
- if (strncmp(lib->name, "//", 2) == 0) { /* if this is relative to begin with? */
+ if (BLI_path_is_rel(lib->name)) { /* if this is relative to begin with? */
BLI_strncpy(lib->name, lib->filepath, sizeof(lib->name));
BLI_path_rel(lib->name, basepath);
}
@@ -6067,7 +6053,7 @@ static void lib_link_speaker(FileData *fd, Main *main)
Speaker *spk;
for (spk = main->speaker.first; spk; spk = spk->id.next) {
- if (spk->id.flag & LIB_NEEDLINK) {
+ if (spk->id.flag & LIB_NEED_LINK) {
if (spk->adt) lib_link_animdata(fd, &spk->id, spk->adt);
spk->sound= newlibadr(fd, spk->id.lib, spk->sound);
@@ -6075,7 +6061,7 @@ static void lib_link_speaker(FileData *fd, Main *main)
spk->sound->id.us++;
}
- spk->id.flag -= LIB_NEEDLINK;
+ spk->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -6114,9 +6100,9 @@ static void lib_link_sound(FileData *fd, Main *main)
bSound *sound;
for (sound = main->sound.first; sound; sound = sound->id.next) {
- if (sound->id.flag & LIB_NEEDLINK) {
- sound->id.flag -= LIB_NEEDLINK;
- sound->ipo = newlibadr_us(fd, sound->id.lib, sound->ipo); // XXX depreceated - old animation system
+ if (sound->id.flag & LIB_NEED_LINK) {
+ sound->id.flag -= LIB_NEED_LINK;
+ sound->ipo = newlibadr_us(fd, sound->id.lib, sound->ipo); // XXX deprecated - old animation system
sound_load(main, sound);
}
@@ -6136,8 +6122,8 @@ static void lib_link_group(FileData *fd, Main *main)
int add_us;
for (group = main->group.first; group; group = group->id.next) {
- if (group->id.flag & LIB_NEEDLINK) {
- group->id.flag -= LIB_NEEDLINK;
+ if (group->id.flag & LIB_NEED_LINK) {
+ group->id.flag -= LIB_NEED_LINK;
add_us = 0;
@@ -6226,7 +6212,7 @@ static void lib_link_movieclip(FileData *fd, Main *main)
MovieClip *clip;
for (clip = main->movieclip.first; clip; clip = clip->id.next) {
- if (clip->id.flag & LIB_NEEDLINK) {
+ if (clip->id.flag & LIB_NEED_LINK) {
MovieTracking *tracking = &clip->tracking;
MovieTrackingObject *object;
@@ -6241,7 +6227,7 @@ static void lib_link_movieclip(FileData *fd, Main *main)
lib_link_movieTracks(fd, clip, &object->tracks);
}
- clip->id.flag -= LIB_NEEDLINK;
+ clip->id.flag -= LIB_NEED_LINK;
}
}
}
@@ -6279,6 +6265,14 @@ static void direct_link_mask(FileData *fd, Mask *mask)
for (masklay_shape = masklay->splines_shapes.first; masklay_shape; masklay_shape = masklay_shape->next) {
masklay_shape->data = newdataadr(fd, masklay_shape->data);
+
+ if (masklay_shape->tot_vert) {
+ if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
+ BLI_endian_switch_float_array(masklay_shape->data,
+ masklay_shape->tot_vert * sizeof(float) * MASK_OBJECT_SHAPE_ELEM_SIZE);
+
+ }
+ }
}
masklay->act_spline = newdataadr(fd, masklay->act_spline);
@@ -6297,7 +6291,7 @@ static void lib_link_mask(FileData *fd, Main *main)
mask = main->mask.first;
while (mask) {
- if (mask->id.flag & LIB_NEEDLINK) {
+ if (mask->id.flag & LIB_NEED_LINK) {
MaskLayer *masklay;
if (mask->adt)
@@ -6322,7 +6316,7 @@ static void lib_link_mask(FileData *fd, Main *main)
}
}
- mask->id.flag -= LIB_NEEDLINK;
+ mask->id.flag -= LIB_NEED_LINK;
}
mask = mask->id.next;
}
@@ -6423,7 +6417,7 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID
BLI_addtail(lb, id);
/* clear first 8 bits */
- id->flag = (id->flag & 0xFF00) | flag | LIB_NEEDLINK;
+ id->flag = (id->flag & 0xFF00) | flag | LIB_NEED_LINK;
id->lib = main->curlib;
if (id->flag & LIB_FAKEUSER) id->us= 1;
else id->us = 0;
@@ -6692,7 +6686,7 @@ static void do_versions_nodetree_convert_angle(bNodeTree *ntree)
}
}
-void do_versions_image_settings_2_60(Scene *sce)
+static void do_versions_image_settings_2_60(Scene *sce)
{
/* note: rd->subimtype is moved into individual settings now and no longer
* exists */
@@ -7011,6 +7005,48 @@ static void do_version_ntree_dilateerode_264(void *UNUSED(data), ID *UNUSED(id),
}
}
+static void do_version_ntree_mask_264(void *UNUSED(data), ID *UNUSED(id), bNodeTree *ntree)
+{
+ bNode *node;
+
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->type == CMP_NODE_MASK) {
+ if (node->storage == NULL) {
+ NodeMask *data = MEM_callocN(sizeof(NodeMask), __func__);
+ /* move settings into own struct */
+ data->size_x = (int)node->custom3;
+ data->size_y = (int)node->custom4;
+ node->custom3 = 0.5f; /* default shutter */
+ node->storage = data;
+ }
+ }
+ }
+}
+
+static void do_version_ntree_keying_despill_balance(void *UNUSED(data), ID *UNUSED(id), bNodeTree *ntree)
+{
+ bNode *node;
+
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->type == CMP_NODE_KEYING) {
+ NodeKeyingData *data = node->storage;
+
+ if (data->despill_balance == 0.0f) {
+ data->despill_balance = 0.5f;
+ }
+ }
+ }
+}
+
+static void do_version_ntree_tex_coord_from_dupli_264(void *UNUSED(data), ID *UNUSED(id), bNodeTree *ntree)
+{
+ bNode *node;
+
+ for (node = ntree->nodes.first; node; node = node->next)
+ if (node->type == SH_NODE_TEX_COORD)
+ node->flag |= NODE_OPTIONS;
+}
+
static void do_versions(FileData *fd, Library *lib, Main *main)
{
/* WATCH IT!!!: pointers from libdata have not been converted */
@@ -7331,7 +7367,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
for (ob= main->object.first; ob; ob= ob->id.next) {
if (ob->type == OB_FONT) {
- prop = get_ob_property(ob, "Text");
+ prop = BKE_bproperty_object_get(ob, "Text");
if (prop) {
BKE_reportf_wrap(fd->reports, RPT_WARNING,
"Game property name conflict in object: \"%s\".\nText objects reserve the "
@@ -7784,7 +7820,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
MovieTrackingMarker *marker = &track->markers[i];
if (is_zero_v2(marker->pattern_corners[0]) && is_zero_v2(marker->pattern_corners[1]) &&
- is_zero_v2(marker->pattern_corners[3]) && is_zero_v2(marker->pattern_corners[3]))
+ is_zero_v2(marker->pattern_corners[2]) && is_zero_v2(marker->pattern_corners[3]))
{
marker->pattern_corners[0][0] = track->pat_min[0];
marker->pattern_corners[0][1] = track->pat_min[1];
@@ -7825,6 +7861,161 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
ntreetype->foreach_nodetree(main, NULL, do_version_ntree_dilateerode_264);
}
+ if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 14)) {
+ ParticleSettings *part;
+ bNodeTreeType *ntreetype = ntreeGetType(NTREE_COMPOSIT);
+
+ if (ntreetype && ntreetype->foreach_nodetree)
+ ntreetype->foreach_nodetree(main, NULL, do_version_ntree_keying_despill_balance);
+
+ /* keep compatibility for dupliobject particle size */
+ for (part=main->particle.first; part; part=part->id.next)
+ if (ELEM(part->ren_as, PART_DRAW_OB, PART_DRAW_GR))
+ if ((part->draw & PART_DRAW_ROTATE_OB) == 0)
+ part->draw |= PART_DRAW_NO_SCALE_OB;
+ }
+
+ if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 17)) {
+ bNodeTreeType *ntreetype = ntreeGetType(NTREE_COMPOSIT);
+
+ if (ntreetype && ntreetype->foreach_nodetree)
+ ntreetype->foreach_nodetree(main, NULL, do_version_ntree_mask_264);
+ }
+
+ if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 18)) {
+ Scene *scene;
+
+ for (scene = main->scene.first; scene; scene = scene->id.next) {
+ if (scene->ed) {
+ Sequence *seq;
+
+ SEQ_BEGIN (scene->ed, seq)
+ {
+ Strip *strip = seq->strip;
+
+ if (strip && strip->color_balance) {
+ SequenceModifierData *smd;
+ ColorBalanceModifierData *cbmd;
+
+ smd = BKE_sequence_modifier_new(seq, NULL, seqModifierType_ColorBalance);
+ cbmd = (ColorBalanceModifierData *) smd;
+
+ cbmd->color_balance = *strip->color_balance;
+
+ /* multiplication with color balance used is handled differently,
+ * so we need to move multiplication to modifier so files would be
+ * compatible
+ */
+ cbmd->color_multiply = seq->mul;
+ seq->mul = 1.0f;
+
+ MEM_freeN(strip->color_balance);
+ strip->color_balance = NULL;
+ }
+ }
+ SEQ_END
+ }
+ }
+ }
+
+ /* color management pipeline changes compatibility code */
+ if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 19)) {
+ Scene *scene;
+ Image *ima;
+ int colormanagement_disabled = FALSE;
+
+ /* make scenes which are not using color management have got None as display device,
+ * so they wouldn't perform linear-to-sRGB conversion on display
+ */
+ for (scene = main->scene.first; scene; scene = scene->id.next) {
+ if ((scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) == 0) {
+ ColorManagedDisplaySettings *display_settings = &scene->display_settings;
+
+ if (display_settings->display_device[0] == 0) {
+ BKE_scene_disable_color_management(scene);
+
+ }
+
+ colormanagement_disabled = TRUE;
+ }
+ }
+
+ for (ima = main->image.first; ima; ima = ima->id.next) {
+ if (ima->source == IMA_SRC_VIEWER) {
+ ima->flag |= IMA_VIEW_AS_RENDER;
+ }
+ else if (colormanagement_disabled) {
+ /* if colormanagement not used, set image's color space to raw, so no sRGB->linear conversion
+ * would happen on display and render
+ * there's no clear way to check whether color management is enabled or not in render engine
+ * so set all images to raw if there's at least one scene with color management disabled
+ * this would still behave incorrect in cases when color management was used for only some
+ * of scenes, but such a setup is crazy anyway and think it's fair enough to break compatibility
+ * in that cases
+ */
+
+ BLI_strncpy(ima->colorspace_settings.name, "Raw", sizeof(ima->colorspace_settings.name));
+ }
+ }
+ }
+
+ if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 20)) {
+ Key *key;
+ for (key = main->key.first; key; key = key->id.next) {
+ do_versions_key_uidgen(key);
+ }
+ }
+
+ /* remove texco */
+ if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 21)) {
+ Material *ma;
+ for (ma = main->mat.first; ma; ma = ma->id.next) {
+ int a;
+ for (a = 0; a < MAX_MTEX; a++) {
+ if (ma->mtex[a]) {
+ if (ma->mtex[a]->texco == TEXCO_STICKY_) {
+ ma->mtex[a]->texco = TEXCO_UV;
+ }
+ }
+ }
+ }
+
+ {
+ Mesh *me;
+ for (me = main->mesh.first; me; me = me->id.next) {
+ CustomData_free_layers(&me->vdata, CD_MSTICKY, me->totvert);
+ }
+ }
+ }
+
+ /* correction for files saved in blender version when BKE_pose_copy_data
+ * didn't copy animation visualization, which lead to deadlocks on motion
+ * path calculation for proxied armatures, see [#32742]
+ */
+ if (main->versionfile < 264) {
+ Object *ob;
+
+ for (ob = main->object.first; ob; ob = ob->id.next) {
+ if (ob->pose) {
+ if (ob->pose->avs.path_step == 0) {
+ animviz_settings_init(&ob->pose->avs);
+ }
+ }
+ }
+ }
+
+ if (main->versionfile < 264 || (main->versionfile == 264 && main->subversionfile < 1)) {
+ bNodeTreeType *ntreetype = ntreeGetType(NTREE_SHADER);
+ bNodeTree *ntree;
+
+ if (ntreetype && ntreetype->foreach_nodetree)
+ ntreetype->foreach_nodetree(main, NULL, do_version_ntree_tex_coord_from_dupli_264);
+
+ for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next)
+ if (ntree->type==NTREE_SHADER)
+ do_version_ntree_tex_coord_from_dupli_264(NULL, NULL, ntree);
+ }
+
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
/* WATCH IT 2!: Userdef struct init has to be in editors/interface/resources.c! */
@@ -7853,7 +8044,7 @@ static void lib_link_all(FileData *fd, Main *main)
lib_link_material(fd, main);
lib_link_texture(fd, main);
lib_link_image(fd, main);
- lib_link_ipo(fd, main); // XXX depreceated... still needs to be maintained for version patches still
+ lib_link_ipo(fd, main); // XXX deprecated... still needs to be maintained for version patches still
lib_link_key(fd, main);
lib_link_world(fd, main);
lib_link_lamp(fd, main);
@@ -8027,14 +8218,14 @@ BlendFileData *blo_read_file_internal(FileData *fd, const char *filepath)
/* ************* APPEND LIBRARY ************** */
-struct bheadsort {
+struct BHeadSort {
BHead *bhead;
void *old;
};
static int verg_bheadsort(const void *v1, const void *v2)
{
- const struct bheadsort *x1=v1, *x2=v2;
+ const struct BHeadSort *x1=v1, *x2=v2;
if (x1->old > x2->old) return 1;
else if (x1->old < x2->old) return -1;
@@ -8044,7 +8235,7 @@ static int verg_bheadsort(const void *v1, const void *v2)
static void sort_bhead_old_map(FileData *fd)
{
BHead *bhead;
- struct bheadsort *bhs;
+ struct BHeadSort *bhs;
int tot = 0;
for (bhead = blo_firstbhead(fd); bhead; bhead = blo_nextbhead(fd, bhead))
@@ -8053,14 +8244,14 @@ static void sort_bhead_old_map(FileData *fd)
fd->tot_bheadmap = tot;
if (tot == 0) return;
- bhs = fd->bheadmap = MEM_mallocN(tot*sizeof(struct bheadsort), "bheadsort");
+ bhs = fd->bheadmap = MEM_mallocN(tot*sizeof(struct BHeadSort), STRINGIFY(BHeadSort));
for (bhead = blo_firstbhead(fd); bhead; bhead = blo_nextbhead(fd, bhead), bhs++) {
bhs->bhead = bhead;
bhs->old = bhead->old;
}
- qsort(fd->bheadmap, tot, sizeof(struct bheadsort), verg_bheadsort);
+ qsort(fd->bheadmap, tot, sizeof(struct BHeadSort), verg_bheadsort);
}
static BHead *find_previous_lib(FileData *fd, BHead *bhead)
@@ -8082,7 +8273,7 @@ static BHead *find_bhead(FileData *fd, void *old)
#if 0
BHead *bhead;
#endif
- struct bheadsort *bhs, bhs_s;
+ struct BHeadSort *bhs, bhs_s;
if (!old)
return NULL;
@@ -8091,7 +8282,7 @@ static BHead *find_bhead(FileData *fd, void *old)
sort_bhead_old_map(fd);
bhs_s.old = old;
- bhs = bsearch(&bhs_s, fd->bheadmap, fd->tot_bheadmap, sizeof(struct bheadsort), verg_bheadsort);
+ bhs = bsearch(&bhs_s, fd->bheadmap, fd->tot_bheadmap, sizeof(struct BHeadSort), verg_bheadsort);
if (bhs)
return bhs->bhead;
@@ -8148,7 +8339,7 @@ static void expand_doit(FileData *fd, Main *mainvar, void *old)
* This line is NEEDED, the case is that you have 3 blend files...
* user.blend, lib.blend and lib_indirect.blend - if user.blend already references a "tree" from
* lib_indirect.blend but lib.blend does too, linking in a Scene or Group from lib.blend can result in an
- * empty without the dupli group referenced. Once you save and reload the group would appier. - Campbell */
+ * empty without the dupli group referenced. Once you save and reload the group would appear. - Campbell */
/* This crashes files, must look further into it */
/* Update: the issue is that in file reading, the oldnewmap is OK, but for existing data, it has to be
@@ -8189,7 +8380,7 @@ static void expand_doit(FileData *fd, Main *mainvar, void *old)
-// XXX depreceated - old animation system
+// XXX deprecated - old animation system
static void expand_ipo(FileData *fd, Main *mainvar, Ipo *ipo)
{
IpoCurve *icu;
@@ -8199,7 +8390,7 @@ static void expand_ipo(FileData *fd, Main *mainvar, Ipo *ipo)
}
}
-// XXX depreceated - old animation system
+// XXX deprecated - old animation system
static void expand_constraint_channels(FileData *fd, Main *mainvar, ListBase *chanbase)
{
bConstraintChannel *chan;
@@ -8255,7 +8446,7 @@ static void expand_action(FileData *fd, Main *mainvar, bAction *act)
{
bActionChannel *chan;
- // XXX depreceated - old animation system --------------
+ // XXX deprecated - old animation system --------------
for (chan=act->chanbase.first; chan; chan=chan->next) {
expand_doit(fd, mainvar, chan->ipo);
expand_constraint_channels(fd, mainvar, &chan->constraintChannels);
@@ -8345,7 +8536,7 @@ static void expand_group(FileData *fd, Main *mainvar, Group *group)
static void expand_key(FileData *fd, Main *mainvar, Key *key)
{
- expand_doit(fd, mainvar, key->ipo); // XXX depreceated - old animation system
+ expand_doit(fd, mainvar, key->ipo); // XXX deprecated - old animation system
if (key->adt)
expand_animdata(fd, mainvar, key->adt);
@@ -8371,7 +8562,7 @@ static void expand_nodetree(FileData *fd, Main *mainvar, bNodeTree *ntree)
static void expand_texture(FileData *fd, Main *mainvar, Tex *tex)
{
expand_doit(fd, mainvar, tex->ima);
- expand_doit(fd, mainvar, tex->ipo); // XXX depreceated - old animation system
+ expand_doit(fd, mainvar, tex->ipo); // XXX deprecated - old animation system
if (tex->adt)
expand_animdata(fd, mainvar, tex->adt);
@@ -8397,7 +8588,7 @@ static void expand_material(FileData *fd, Main *mainvar, Material *ma)
}
}
- expand_doit(fd, mainvar, ma->ipo); // XXX depreceated - old animation system
+ expand_doit(fd, mainvar, ma->ipo); // XXX deprecated - old animation system
if (ma->adt)
expand_animdata(fd, mainvar, ma->adt);
@@ -8420,7 +8611,7 @@ static void expand_lamp(FileData *fd, Main *mainvar, Lamp *la)
}
}
- expand_doit(fd, mainvar, la->ipo); // XXX depreceated - old animation system
+ expand_doit(fd, mainvar, la->ipo); // XXX deprecated - old animation system
if (la->adt)
expand_animdata(fd, mainvar, la->adt);
@@ -8431,7 +8622,7 @@ static void expand_lamp(FileData *fd, Main *mainvar, Lamp *la)
static void expand_lattice(FileData *fd, Main *mainvar, Lattice *lt)
{
- expand_doit(fd, mainvar, lt->ipo); // XXX depreceated - old animation system
+ expand_doit(fd, mainvar, lt->ipo); // XXX deprecated - old animation system
expand_doit(fd, mainvar, lt->key);
if (lt->adt)
@@ -8450,7 +8641,7 @@ static void expand_world(FileData *fd, Main *mainvar, World *wrld)
}
}
- expand_doit(fd, mainvar, wrld->ipo); // XXX depreceated - old animation system
+ expand_doit(fd, mainvar, wrld->ipo); // XXX deprecated - old animation system
if (wrld->adt)
expand_animdata(fd, mainvar, wrld->adt);
@@ -8485,7 +8676,7 @@ static void expand_curve(FileData *fd, Main *mainvar, Curve *cu)
expand_doit(fd, mainvar, cu->vfonti);
expand_doit(fd, mainvar, cu->vfontbi);
expand_doit(fd, mainvar, cu->key);
- expand_doit(fd, mainvar, cu->ipo); // XXX depreceated - old animation system
+ expand_doit(fd, mainvar, cu->ipo); // XXX deprecated - old animation system
expand_doit(fd, mainvar, cu->bevobj);
expand_doit(fd, mainvar, cu->taperobj);
expand_doit(fd, mainvar, cu->textoncurve);
@@ -8497,7 +8688,6 @@ static void expand_curve(FileData *fd, Main *mainvar, Curve *cu)
static void expand_mesh(FileData *fd, Main *mainvar, Mesh *me)
{
CustomDataLayer *layer;
- MTFace *mtf;
TFace *tf;
int a, i;
@@ -8519,14 +8709,34 @@ static void expand_mesh(FileData *fd, Main *mainvar, Mesh *me)
}
}
- for (a = 0; a < me->fdata.totlayer; a++) {
- layer = &me->fdata.layers[a];
-
- if (layer->type == CD_MTFACE) {
- mtf = (MTFace*)layer->data;
- for (i = 0; i < me->totface; i++, mtf++) {
- if (mtf->tpage)
- expand_doit(fd, mainvar, mtf->tpage);
+ if (me->mface && !me->mpoly) {
+ MTFace *mtf;
+
+ for (a = 0; a < me->fdata.totlayer; a++) {
+ layer = &me->fdata.layers[a];
+
+ if (layer->type == CD_MTFACE) {
+ mtf = (MTFace *) layer->data;
+ for (i = 0; i < me->totface; i++, mtf++) {
+ if (mtf->tpage)
+ expand_doit(fd, mainvar, mtf->tpage);
+ }
+ }
+ }
+ }
+ else {
+ MTexPoly *mtp;
+
+ for (a = 0; a < me->pdata.totlayer; a++) {
+ layer = &me->pdata.layers[a];
+
+ if (layer->type == CD_MTEXPOLY) {
+ mtp = (MTexPoly *) layer->data;
+
+ for (i = 0; i < me->totpoly; i++, mtp++) {
+ if (mtp->tpage)
+ expand_doit(fd, mainvar, mtp->tpage);
+ }
}
}
}
@@ -8555,10 +8765,10 @@ static void expand_constraints(FileData *fd, Main *mainvar, ListBase *lb)
id_loop_constraints(lb, expand_constraint_cb, &ced);
- /* depreceated manual expansion stuff */
+ /* deprecated manual expansion stuff */
for (curcon = lb->first; curcon; curcon = curcon->next) {
if (curcon->ipo)
- expand_doit(fd, mainvar, curcon->ipo); // XXX depreceated - old animation system
+ expand_doit(fd, mainvar, curcon->ipo); // XXX deprecated - old animation system
}
}
@@ -8640,7 +8850,7 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob)
expand_doit(fd, mainvar, ob->gpd);
-// XXX depreceated - old animation system (for version patching only)
+// XXX deprecated - old animation system (for version patching only)
expand_doit(fd, mainvar, ob->ipo);
expand_doit(fd, mainvar, ob->action);
@@ -8651,7 +8861,7 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob)
expand_doit(fd, mainvar, strip->act);
expand_doit(fd, mainvar, strip->ipo);
}
-// XXX depreceated - old animation system (for version patching only)
+// XXX deprecated - old animation system (for version patching only)
if (ob->adt)
expand_animdata(fd, mainvar, ob->adt);
@@ -8823,7 +9033,7 @@ static void expand_scene(FileData *fd, Main *mainvar, Scene *sce)
static void expand_camera(FileData *fd, Main *mainvar, Camera *ca)
{
- expand_doit(fd, mainvar, ca->ipo); // XXX depreceated - old animation system
+ expand_doit(fd, mainvar, ca->ipo); // XXX deprecated - old animation system
if (ca->adt)
expand_animdata(fd, mainvar, ca->adt);
@@ -8839,7 +9049,7 @@ static void expand_speaker(FileData *fd, Main *mainvar, Speaker *spk)
static void expand_sound(FileData *fd, Main *mainvar, bSound *snd)
{
- expand_doit(fd, mainvar, snd->ipo); // XXX depreceated - old animation system
+ expand_doit(fd, mainvar, snd->ipo); // XXX deprecated - old animation system
}
static void expand_movieclip(FileData *fd, Main *mainvar, MovieClip *clip)
@@ -8848,6 +9058,37 @@ static void expand_movieclip(FileData *fd, Main *mainvar, MovieClip *clip)
expand_animdata(fd, mainvar, clip->adt);
}
+static void expand_mask_parent(FileData *fd, Main *mainvar, MaskParent *parent)
+{
+ if (parent->id) {
+ expand_doit(fd, mainvar, parent->id);
+ }
+}
+
+static void expand_mask(FileData *fd, Main *mainvar, Mask *mask)
+{
+ MaskLayer *mask_layer;
+
+ if (mask->adt)
+ expand_animdata(fd, mainvar, mask->adt);
+
+ for (mask_layer = mask->masklayers.first; mask_layer; mask_layer = mask_layer->next) {
+ MaskSpline *spline;
+
+ for (spline = mask_layer->splines.first; spline; spline = spline->next) {
+ int i;
+
+ for (i = 0; i < spline->tot_point; i++) {
+ MaskSplinePoint *point = &spline->points[i];
+
+ expand_mask_parent(fd, mainvar, &point->parent);
+ }
+
+ expand_mask_parent(fd, mainvar, &spline->parent);
+ }
+ }
+}
+
static void expand_main(FileData *fd, Main *mainvar)
{
ListBase *lbarray[MAX_LIBARRAY];
@@ -8863,7 +9104,7 @@ static void expand_main(FileData *fd, Main *mainvar)
while (a--) {
id= lbarray[a]->first;
while (id) {
- if (id->flag & LIB_TEST) {
+ if (id->flag & LIB_NEED_EXPAND) {
switch (GS(id->name)) {
case ID_OB:
expand_object(fd, mainvar, (Object *)id);
@@ -8911,7 +9152,7 @@ static void expand_main(FileData *fd, Main *mainvar)
expand_armature(fd, mainvar, (bArmature *)id);
break;
case ID_AC:
- expand_action(fd, mainvar, (bAction *)id); // XXX depreceated - old animation system
+ expand_action(fd, mainvar, (bAction *)id); // XXX deprecated - old animation system
break;
case ID_GR:
expand_group(fd, mainvar, (Group *)id);
@@ -8923,7 +9164,7 @@ static void expand_main(FileData *fd, Main *mainvar)
expand_brush(fd, mainvar, (Brush *)id);
break;
case ID_IP:
- expand_ipo(fd, mainvar, (Ipo *)id); // XXX depreceated - old animation system
+ expand_ipo(fd, mainvar, (Ipo *)id); // XXX deprecated - old animation system
break;
case ID_PA:
expand_particlesettings(fd, mainvar, (ParticleSettings *)id);
@@ -8931,10 +9172,13 @@ static void expand_main(FileData *fd, Main *mainvar)
case ID_MC:
expand_movieclip(fd, mainvar, (MovieClip *)id);
break;
+ case ID_MSK:
+ expand_mask(fd, mainvar, (Mask *)id);
+ break;
}
do_it = TRUE;
- id->flag -= LIB_TEST;
+ id->flag -= LIB_NEED_EXPAND;
}
id = id->next;
@@ -9149,7 +9393,7 @@ static void append_id_part(FileData *fd, Main *mainvar, ID *id, ID **id_r)
if (strcmp(id->name, bhead_id_name(fd, bhead))==0) {
id->flag &= ~LIB_READ;
- id->flag |= LIB_TEST;
+ id->flag |= LIB_NEED_EXPAND;
// printf("read lib block %s\n", id->name);
read_libblock(fd, mainvar, bhead, id->flag, id_r);
@@ -9312,7 +9556,7 @@ static void read_libraries(FileData *basefd, ListBase *mainlist)
fd = blo_openblenderfile(mainptr->curlib->filepath, basefd->reports);
/* allow typing in a new lib path */
- if (G.rt == -666) {
+ if (G.debug_value == -666) {
while (fd == NULL) {
char newlib_path[FILE_MAX] = {0};
printf("Missing library...'\n");
@@ -9327,9 +9571,9 @@ static void read_libraries(FileData *basefd, ListBase *mainlist)
cleanup_path(G.main->name, mainptr->curlib->filepath);
fd = blo_openblenderfile(mainptr->curlib->filepath, basefd->reports);
- fd->mainlist = mainlist;
-
+
if (fd) {
+ fd->mainlist = mainlist;
printf("found: '%s', party on macuno!\n", mainptr->curlib->filepath);
}
}
@@ -9359,7 +9603,7 @@ static void read_libraries(FileData *basefd, ListBase *mainlist)
else mainptr->curlib->filedata = NULL;
if (fd == NULL) {
- BKE_reportf_wrap(basefd->reports, RPT_ERROR,
+ BKE_reportf_wrap(basefd->reports, RPT_WARNING,
"Can't find lib '%s'",
mainptr->curlib->filepath);
}
@@ -9378,7 +9622,7 @@ static void read_libraries(FileData *basefd, ListBase *mainlist)
append_id_part(fd, mainptr, id, &realid);
if (!realid) {
- BKE_reportf_wrap(fd->reports, RPT_ERROR,
+ BKE_reportf_wrap(fd->reports, RPT_WARNING,
"LIB ERROR: %s:'%s' missing from '%s'",
BKE_idcode_to_name(GS(id->name)),
id->name+2, mainptr->curlib->filepath);
@@ -9410,7 +9654,7 @@ static void read_libraries(FileData *basefd, ListBase *mainlist)
idn = id->next;
if (id->flag & LIB_READ) {
BLI_remlink(lbarray[a], id);
- BKE_reportf_wrap(basefd->reports, RPT_ERROR,
+ BKE_reportf_wrap(basefd->reports, RPT_WARNING,
"LIB ERROR: %s:'%s' unread libblock missing from '%s'",
BKE_idcode_to_name(GS(id->name)), id->name + 2, mainptr->curlib->filepath);
change_idid_adr(mainlist, basefd, id, NULL);
diff --git a/source/blender/blenloader/intern/readfile.h b/source/blender/blenloader/intern/readfile.h
index a3aa8e783a0..a979a16220d 100644
--- a/source/blender/blenloader/intern/readfile.h
+++ b/source/blender/blenloader/intern/readfile.h
@@ -84,7 +84,7 @@ typedef struct FileData {
struct OldNewMap *imamap;
struct OldNewMap *movieclipmap;
- struct bheadsort *bheadmap;
+ struct BHeadSort *bheadmap;
int tot_bheadmap;
ListBase *mainlist;
diff --git a/source/blender/blenloader/intern/runtime.c b/source/blender/blenloader/intern/runtime.c
index a7dae22cda2..eaf725dda9e 100644
--- a/source/blender/blenloader/intern/runtime.c
+++ b/source/blender/blenloader/intern/runtime.c
@@ -50,7 +50,6 @@
#include "BKE_blender.h"
#include "BKE_report.h"
-#include "BKE_utildefines.h"
#include "BLI_blenlib.h"
diff --git a/source/blender/blenloader/intern/undofile.c b/source/blender/blenloader/intern/undofile.c
index 21a9290968b..38fd6e9d32d 100644
--- a/source/blender/blenloader/intern/undofile.c
+++ b/source/blender/blenloader/intern/undofile.c
@@ -104,7 +104,7 @@ void add_memfilechunk(MemFile *compare, MemFile *current, const char *buf, unsig
static MemFileChunk *compchunk = NULL;
MemFileChunk *curchunk;
- /* this function inits when compare != NULL or when current==NULL */
+ /* this function inits when compare != NULL or when current == NULL */
if (compare) {
compchunk = compare->chunks.first;
return;
diff --git a/source/blender/blenloader/intern/versioning_250.c b/source/blender/blenloader/intern/versioning_250.c
index ca071e0cc25..a3cfa4413a8 100644
--- a/source/blender/blenloader/intern/versioning_250.c
+++ b/source/blender/blenloader/intern/versioning_250.c
@@ -89,7 +89,6 @@
#include "BKE_screen.h"
#include "BKE_sequencer.h"
#include "BKE_texture.h"
-#include "BKE_utildefines.h" // SWITCH_INT DATA ENDB DNA1 O_BINARY GLOB USER TEST REND
#include "BKE_sound.h"
#include "NOD_socket.h"
@@ -129,7 +128,7 @@ static void area_add_header_region(ScrArea *sa, ListBase *lb)
ar->v2d.flag = (V2D_PIXELOFS_X|V2D_PIXELOFS_Y);
}
-static void sequencer_init_preview_region(ARegion* ar)
+static void sequencer_init_preview_region(ARegion *ar)
{
// XXX a bit ugly still, copied from space_sequencer
/* NOTE: if you change values here, also change them in space_sequencer.c, sequencer_new */
@@ -653,7 +652,7 @@ static void do_versions_seq_unique_name_all_strips(Scene * sce, ListBase *seqbas
Sequence * seq = seqbasep->first;
while (seq) {
- seqbase_unique_name_recursive(&sce->ed->seqbase, seq);
+ BKE_sequence_base_unique_name_recursive(&sce->ed->seqbase, seq);
if (seq->seqbase.first) {
do_versions_seq_unique_name_all_strips(sce, &seq->seqbase);
}
@@ -1787,7 +1786,7 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *main)
SpaceLink *sl;
for (sl = sa->spacedata.first; sl; sl = sl->next) {
if (sl->spacetype == SPACE_VIEW3D) {
- View3D* v3d = (View3D *)sl;
+ View3D *v3d = (View3D *)sl;
v3d->flag2 &= ~V3D_RENDER_OVERRIDE;
}
}
@@ -2206,7 +2205,7 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *main)
bActuator *act;
for (act = ob->actuators.first; act; act = act->next) {
if (act->type == ACT_STEERING) {
- bSteeringActuator* stact = act->data;
+ bSteeringActuator *stact = act->data;
if (stact->facingaxis == 0) {
stact->facingaxis = 1;
}
@@ -2435,7 +2434,7 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *main)
tex->pd->falloff_curve->preset = CURVE_PRESET_LINE;
tex->pd->falloff_curve->cm->flag &= ~CUMA_EXTEND_EXTRAPOLATE;
curvemap_reset(tex->pd->falloff_curve->cm, &tex->pd->falloff_curve->clipr, tex->pd->falloff_curve->preset, CURVEMAP_SLOPE_POSITIVE);
- curvemapping_changed(tex->pd->falloff_curve, 0);
+ curvemapping_changed(tex->pd->falloff_curve, FALSE);
}
}
}
diff --git a/source/blender/blenloader/intern/versioning_legacy.c b/source/blender/blenloader/intern/versioning_legacy.c
index 46ef2716ade..d8333e7c8f4 100644
--- a/source/blender/blenloader/intern/versioning_legacy.c
+++ b/source/blender/blenloader/intern/versioning_legacy.c
@@ -92,10 +92,9 @@
#include "BKE_modifier.h"
#include "BKE_particle.h"
#include "BKE_pointcache.h"
-#include "BKE_property.h" // for get_ob_property
+#include "BKE_property.h" // for BKE_bproperty_object_get
#include "BKE_scene.h"
#include "BKE_sequencer.h"
-#include "BKE_utildefines.h" // SWITCH_INT DATA ENDB DNA1 O_BINARY GLOB USER TEST REND
#include "IMB_imbuf.h" // for proxy / timecode versioning stuff
@@ -388,8 +387,6 @@ static void customdata_version_242(Mesh *me)
if (!me->vdata.totlayer) {
CustomData_add_layer(&me->vdata, CD_MVERT, CD_ASSIGN, me->mvert, me->totvert);
- if (me->msticky)
- CustomData_add_layer(&me->vdata, CD_MSTICKY, CD_ASSIGN, me->msticky, me->totvert);
if (me->dvert)
CustomData_add_layer(&me->vdata, CD_MDEFORMVERT, CD_ASSIGN, me->dvert, me->totvert);
}
@@ -569,7 +566,7 @@ void blo_do_versions_pre250(FileData *fd, Library *lib, Main *main)
/* tex->extend and tex->imageflag have changed: */
Tex *tex = main->tex.first;
while (tex) {
- if (tex->id.flag & LIB_NEEDLINK) {
+ if (tex->id.flag & LIB_NEED_LINK) {
if (tex->extend == 0) {
if (tex->xrepeat || tex->yrepeat) {
@@ -946,7 +943,7 @@ void blo_do_versions_pre250(FileData *fd, Library *lib, Main *main)
while (act) {
if (act->type == ACT_IPO) {
ia = act->data;
- prop = get_ob_property(ob, ia->name);
+ prop = BKE_bproperty_object_get(ob, ia->name);
if (prop) {
ia->type = ACT_IPO_FROM_PROP;
}
@@ -1141,7 +1138,7 @@ void blo_do_versions_pre250(FileData *fd, Library *lib, Main *main)
}
if (main->versionfile <= 212) {
- bSound* sound;
+ bSound *sound;
bProperty *prop;
Object *ob;
Mesh *me;
@@ -1307,7 +1304,7 @@ void blo_do_versions_pre250(FileData *fd, Library *lib, Main *main)
}
if (main->versionfile <= 224) {
- bSound* sound;
+ bSound *sound;
Scene *sce;
Mesh *me;
bScreen *sc;
@@ -3107,7 +3104,7 @@ void blo_do_versions_pre250(FileData *fd, Library *lib, Main *main)
part->id.lib = ob->id.lib;
part->id.us--;
- part->id.flag |= (ob->id.flag & LIB_NEEDLINK);
+ part->id.flag |= (ob->id.flag & LIB_NEED_LINK);
psys->totpart = 0;
psys->flag = PSYS_ENABLED|PSYS_CURRENT;
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 02b4537e9c8..536376ac577 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -30,46 +30,46 @@
/*
-FILEFORMAT: IFF-style structure (but not IFF compatible!)
-
-start file:
- BLENDER_V100 12 bytes (versie 1.00)
- V = big endian, v = little endian
- _ = 4 byte pointer, - = 8 byte pointer
-
-datablocks: also see struct BHead
- <bh.code> 4 chars
- <bh.len> int, len data after BHead
- <bh.old> void, old pointer
- <bh.SDNAnr> int
- <bh.nr> int, in case of array: amount of structs
- data
- ...
- ...
-
-Almost all data in Blender are structures. Each struct saved
-gets a BHead header. With BHead the struct can be linked again
-and compared with StructDNA .
-
-WRITE
-
-Preferred writing order: (not really a must, but why would you do it random?)
-Any case: direct data is ALWAYS after the lib block
-
-(Local file data)
-- for each LibBlock
- - write LibBlock
- - write associated direct data
-(External file data)
-- per library
- - write library block
- - per LibBlock
- - write the ID of LibBlock
-- write TEST (128x128, blend file preview, optional)
-- write FileGlobal (some global vars)
-- write SDNA
-- write USER if filename is ~/X.XX/config/startup.blend
-*/
+ * FILEFORMAT: IFF-style structure (but not IFF compatible!)
+ *
+ * start file:
+ * BLENDER_V100 12 bytes (versie 1.00)
+ * V = big endian, v = little endian
+ * _ = 4 byte pointer, - = 8 byte pointer
+ *
+ * datablocks: also see struct BHead
+ * <bh.code> 4 chars
+ * <bh.len> int, len data after BHead
+ * <bh.old> void, old pointer
+ * <bh.SDNAnr> int
+ * <bh.nr> int, in case of array: amount of structs
+ * data
+ * ...
+ * ...
+ *
+ * Almost all data in Blender are structures. Each struct saved
+ * gets a BHead header. With BHead the struct can be linked again
+ * and compared with StructDNA .
+ *
+ * WRITE
+ *
+ * Preferred writing order: (not really a must, but why would you do it random?)
+ * Any case: direct data is ALWAYS after the lib block
+ *
+ * (Local file data)
+ * - for each LibBlock
+ * - write LibBlock
+ * - write associated direct data
+ * (External file data)
+ * - per library
+ * - write library block
+ * - per LibBlock
+ * - write the ID of LibBlock
+ * - write TEST (128x128, blend file preview, optional)
+ * - write FileGlobal (some global vars)
+ * - write SDNA
+ * - write USER if filename is ~/X.XX/config/startup.blend
+ */
#include <math.h>
@@ -154,7 +154,6 @@ Any case: direct data is ALWAYS after the lib block
#include "BKE_report.h"
#include "BKE_sequencer.h"
#include "BKE_subsurf.h"
-#include "BKE_utildefines.h"
#include "BKE_modifier.h"
#include "BKE_fcurve.h"
#include "BKE_pointcache.h"
@@ -163,6 +162,7 @@ Any case: direct data is ALWAYS after the lib block
#include "BLO_writefile.h"
#include "BLO_readfile.h"
#include "BLO_undofile.h"
+#include "BLO_blend_defs.h"
#include "readfile.h"
@@ -646,15 +646,21 @@ static void write_animdata(WriteData *wd, AnimData *adt)
write_nladata(wd, &adt->nla_tracks);
}
-static void write_curvemapping(WriteData *wd, CurveMapping *cumap)
+static void write_curvemapping_curves(WriteData *wd, CurveMapping *cumap)
{
int a;
-
- writestruct(wd, DATA, "CurveMapping", 1, cumap);
- for (a=0; a<CM_TOT; a++)
+
+ for (a = 0; a < CM_TOT; a++)
writestruct(wd, DATA, "CurveMapPoint", cumap->cm[a].totpoint, cumap->cm[a].curve);
}
+static void write_curvemapping(WriteData *wd, CurveMapping *cumap)
+{
+ writestruct(wd, DATA, "CurveMapping", 1, cumap);
+
+ write_curvemapping_curves(wd, cumap);
+}
+
static void write_node_socket(WriteData *wd, bNodeSocket *sock)
{
bNodeSocketType *stype= ntreeGetSocketType(sock->type);
@@ -1815,7 +1821,7 @@ static void write_meshs(WriteData *wd, ListBase *idbase)
/* backup */
- /* now fill in polys to mfaces*/
+ /* now fill in polys to mfaces */
mesh->totface = BKE_mesh_mpoly_to_mface(&mesh->fdata, &backup_mesh.ldata, &backup_mesh.pdata,
mesh->totface, backup_mesh.totloop, backup_mesh.totpoly);
@@ -2086,6 +2092,39 @@ static void write_lamps(WriteData *wd, ListBase *idbase)
}
}
+static void write_sequence_modifiers(WriteData *wd, ListBase *modbase)
+{
+ SequenceModifierData *smd;
+
+ for (smd = modbase->first; smd; smd = smd->next) {
+ SequenceModifierTypeInfo *smti = BKE_sequence_modifier_type_info_get(smd->type);
+
+ if (smti) {
+ writestruct(wd, DATA, smti->struct_name, 1, smd);
+
+ if (smd->type == seqModifierType_Curves) {
+ CurvesModifierData *cmd = (CurvesModifierData *) smd;
+
+ write_curvemapping(wd, &cmd->curve_mapping);
+ }
+ else if (smd->type == seqModifierType_HueCorrect) {
+ HueCorrectModifierData *hcmd = (HueCorrectModifierData *) smd;
+
+ write_curvemapping(wd, &hcmd->curve_mapping);
+ }
+ }
+ else {
+ writestruct(wd, DATA, "SequenceModifierData", 1, smd);
+ }
+ }
+}
+
+static void write_view_settings(WriteData *wd, ColorManagedViewSettings *view_settings)
+{
+ if (view_settings->curve_mapping) {
+ write_curvemapping(wd, view_settings->curve_mapping);
+ }
+}
static void write_scenes(WriteData *wd, ListBase *scebase)
{
@@ -2182,9 +2221,6 @@ static void write_scenes(WriteData *wd, ListBase *scebase)
if (seq->flag & SEQ_USE_PROXY && strip->proxy) {
writestruct(wd, DATA, "StripProxy", 1, strip->proxy);
}
- if (seq->flag & SEQ_USE_COLOR_BALANCE && strip->color_balance) {
- writestruct(wd, DATA, "StripColorBalance", 1, strip->color_balance);
- }
if (seq->type==SEQ_TYPE_IMAGE)
writestruct(wd, DATA, "StripElem", MEM_allocN_len(strip->stripdata) / sizeof(struct StripElem), strip->stripdata);
else if (seq->type==SEQ_TYPE_MOVIE || seq->type==SEQ_TYPE_SOUND_RAM || seq->type == SEQ_TYPE_SOUND_HD)
@@ -2192,6 +2228,8 @@ static void write_scenes(WriteData *wd, ListBase *scebase)
strip->done = TRUE;
}
+
+ write_sequence_modifiers(wd, &seq->modifiers);
}
SEQ_END
@@ -2230,7 +2268,9 @@ static void write_scenes(WriteData *wd, ListBase *scebase)
writestruct(wd, DATA, "bNodeTree", 1, sce->nodetree);
write_nodetree(wd, sce->nodetree);
}
-
+
+ write_view_settings(wd, &sce->view_settings);
+
sce= sce->id.next;
}
/* flush helps the compression for undo-save */
@@ -2491,7 +2531,7 @@ static void write_libraries(WriteData *wd, Main *main)
}
}
-static void write_bone(WriteData *wd, Bone* bone)
+static void write_bone(WriteData *wd, Bone *bone)
{
Bone* cbone;
diff --git a/source/blender/bmesh/bmesh.h b/source/blender/bmesh/bmesh.h
index ac002070484..955b1a729c5 100644
--- a/source/blender/bmesh/bmesh.h
+++ b/source/blender/bmesh/bmesh.h
@@ -196,6 +196,11 @@
*
* There may be a better place for this section, but adding here for now.
*
+ * \subsection bm_todo_api API
+ *
+ * - make crease and bevel weight optional, they come for free in meshes but are allocated layers
+ * in the bmesh data structure.
+ *
*
* \subsection bm_todo_tools Tools
*
diff --git a/source/blender/bmesh/bmesh_class.h b/source/blender/bmesh/bmesh_class.h
index 737efde8391..3bd99b748f6 100644
--- a/source/blender/bmesh/bmesh_class.h
+++ b/source/blender/bmesh/bmesh_class.h
@@ -198,8 +198,6 @@ typedef struct BMesh {
ListBase errorstack;
void *py_handle;
-
- int opflag; /* current operator flag */
} BMesh;
/* BMHeader->htype (char) */
diff --git a/source/blender/bmesh/intern/bmesh_construct.c b/source/blender/bmesh/intern/bmesh_construct.c
index 589a5fbaa66..bc121303046 100644
--- a/source/blender/bmesh/intern/bmesh_construct.c
+++ b/source/blender/bmesh/intern/bmesh_construct.c
@@ -380,7 +380,7 @@ BMFace *BM_face_create_ngon_vcloud(BMesh *bm, BMVert **vert_arr, int totv, int n
}
sub_v3_v3v3(far_vec, far, cent);
- far_dist = len_v3(far_vec); /* real dist */
+ // far_dist = len_v3(far_vec); /* real dist */ /* UNUSED */
/* --- */
@@ -539,8 +539,8 @@ void BMO_remove_tagged_verts(BMesh *bm, const short oflag)
}
}
-/*************************************************************/
-/* you need to make remove tagged verts/edges/faces
+/**
+ * you need to make remove tagged verts/edges/faces
* api functions that take a filter callback.....
* and this new filter type will be for opstack flags.
* This is because the BM_remove_taggedXXX functions bypass iterator API.
@@ -902,8 +902,9 @@ BMesh *BM_mesh_copy(BMesh *bm_old)
}
f2 = BM_face_create_ngon(bm_new, v, v2, edges, f->len, FALSE);
- if (!f2)
+ if (UNLIKELY(f2 == NULL)) {
continue;
+ }
/* use totface in case adding some faces fails */
BM_elem_index_set(f2, (bm_new->totface - 1)); /* set_inline */
diff --git a/source/blender/bmesh/intern/bmesh_core.c b/source/blender/bmesh/intern/bmesh_core.c
index a51d6bd2940..d50c94d5e6a 100644
--- a/source/blender/bmesh/intern/bmesh_core.c
+++ b/source/blender/bmesh/intern/bmesh_core.c
@@ -80,7 +80,15 @@ BMVert *BM_vert_create(BMesh *bm, const float co[3], const BMVert *example)
CustomData_bmesh_set_default(&bm->vdata, &v->head.data);
if (example) {
+ int *keyi;
+
BM_elem_attrs_copy(bm, bm, example, v);
+
+ /* exception: don't copy the original shapekey index */
+ keyi = CustomData_bmesh_get(&bm->vdata, v->head.data, CD_SHAPE_KEYINDEX);
+ if (keyi) {
+ *keyi = ORIGINDEX_NONE;
+ }
}
BM_CHECK_ELEMENT(v);
@@ -92,7 +100,7 @@ BMVert *BM_vert_create(BMesh *bm, const float co[3], const BMVert *example)
* \brief Main function for creating a new edge.
*
* \note Duplicate edges are supported by the API however users should _never_ see them.
- * so unless you need a unique edge or know the edge won't exist, you should call wih \a nodouble = TRUE
+ * so unless you need a unique edge or know the edge won't exist, you should call with \a nodouble = TRUE
*/
BMEdge *BM_edge_create(BMesh *bm, BMVert *v1, BMVert *v2, const BMEdge *example, int nodouble)
{
@@ -332,6 +340,8 @@ BMFace *BM_face_create(BMesh *bm, BMVert **verts, BMEdge **edges, const int len,
return f;
}
+#ifndef NDEBUG
+
/**
* Check the element is valid.
*
@@ -350,14 +360,16 @@ int bmesh_elem_check(void *element, const char htype)
return 2;
switch (htype) {
- case BM_VERT: {
+ case BM_VERT:
+ {
BMVert *v = element;
if (v->e && v->e->head.htype != BM_EDGE) {
err |= 4;
}
break;
}
- case BM_EDGE: {
+ case BM_EDGE:
+ {
BMEdge *e = element;
if (e->l && e->l->head.htype != BM_LOOP)
err |= 8;
@@ -376,7 +388,8 @@ int bmesh_elem_check(void *element, const char htype)
err |= 128;
break;
}
- case BM_LOOP: {
+ case BM_LOOP:
+ {
BMLoop *l = element, *l2;
int i;
@@ -416,7 +429,8 @@ int bmesh_elem_check(void *element, const char htype)
break;
}
- case BM_FACE: {
+ case BM_FACE:
+ {
BMFace *f = element;
BMLoop *l_iter;
BMLoop *l_first;
@@ -464,6 +478,8 @@ int bmesh_elem_check(void *element, const char htype)
return err;
}
+#endif /* NDEBUG */
+
/**
* low level function, only frees the vert,
* doesn't change or adjust surrounding geometry
@@ -820,8 +836,6 @@ static void bm_elements_systag_disable(void *veles, int tot, int flag)
}
}
-#define FACE_MARK (1 << 10)
-
static int count_flagged_radial(BMesh *bm, BMLoop *l, int flag)
{
BMLoop *l2 = l;
@@ -1007,7 +1021,7 @@ BMFace *BM_faces_join(BMesh *bm, BMFace **faces, int totface, const short do_del
/* create region face */
newf = BM_face_create_ngon(bm, v1, v2, edges, tote, FALSE);
- if (!newf || BMO_error_occurred(bm)) {
+ if (UNLIKELY(!newf || BMO_error_occurred(bm))) {
if (!BMO_error_occurred(bm))
err = "Invalid boundary region to join faces";
goto error;
@@ -1134,7 +1148,7 @@ static BMFace *bm_face_create__sfme(BMesh *bm, BMFace *UNUSED(example))
* The second region has a new face assigned to it.
*
* \par Examples:
- *
+ * <pre>
* Before: After:
* +--------+ +--------+
* | | | |
@@ -1143,6 +1157,7 @@ static BMFace *bm_face_create__sfme(BMesh *bm, BMFace *UNUSED(example))
* | | | f2 |
* | | | |
* +--------+ +--------+
+ * </pre>
*
* \note the input vertices can be part of the same edge. This will
* result in a two edged face. This is desirable for advanced construction
@@ -1302,12 +1317,13 @@ BMFace *bmesh_sfme(BMesh *bm, BMFace *f, BMVert *v1, BMVert *v2,
* will be attached to that end and is returned in \a r_e.
*
* \par Examples:
- *
+ * <pre>
* E
* Before: OV-------------TV
*
* E RE
* After: OV------NV-----TV
+ * </pre>
*
* \return The newly created BMVert pointer.
*/
@@ -1475,6 +1491,7 @@ BMVert *bmesh_semv(BMesh *bm, BMVert *tv, BMEdge *e, BMEdge **r_e)
*
* \par Examples:
*
+ * <pre>
* Before: OE KE
* ------- -------
* | || |
@@ -1485,6 +1502,7 @@ BMVert *bmesh_semv(BMesh *bm, BMVert *tv, BMEdge *e, BMEdge **r_e)
* ---------------
* | |
* OV TV
+ * </pre>
*
* \par Restrictions:
* KV is a vertex that must have a valance of exactly two. Furthermore
@@ -1636,7 +1654,7 @@ BMEdge *bmesh_jekv(BMesh *bm, BMEdge *ke, BMVert *kv, const short check_edge_dou
* Both faces in its radial cycle
*
* \par Examples:
- *
+ * <pre>
* A B
* +--------+ +--------+
* | | | |
@@ -1645,6 +1663,7 @@ BMEdge *bmesh_jekv(BMesh *bm, BMEdge *ke, BMVert *kv, const short check_edge_dou
* | f2 | | f2 |
* | | | |
* +--------+ +--------+
+ * </pre>
*
* In the example A, faces \a f1 and \a f2 are joined by a single edge,
* and the euler can safely be used.
@@ -1781,18 +1800,21 @@ BMFace *bmesh_jfke(BMesh *bm, BMFace *f1, BMFace *f2, BMEdge *e)
int BM_vert_splice(BMesh *bm, BMVert *v, BMVert *vtarget)
{
BMEdge *e;
- BMLoop *l;
- BMIter liter;
+
+ BMLoop **loops;
+ int i, loops_tot;
/* verts already spliced */
if (v == vtarget) {
return FALSE;
}
- /* retarget all the loops of v to vtarget */
- BM_ITER_ELEM (l, &liter, v, BM_LOOPS_OF_VERT) {
- l->v = vtarget;
+ /* we can't modify the vert while iterating so first allocate an array of loops */
+ loops = BM_iter_as_arrayN(bm, BM_LOOPS_OF_VERT, v, &loops_tot);
+ for (i = 0; i < loops_tot; i++) {
+ loops[i]->v = vtarget;
}
+ MEM_freeN(loops);
/* move all the edges from v's disk to vtarget's disk */
while ((e = v->e)) {
@@ -1942,7 +1964,7 @@ int bmesh_vert_separate(BMesh *bm, BMVert *v, BMVert ***r_vout, int *r_vout_len)
}
/**
- * High level function which wraps both #bm_vert_separate and #bm_edge_separate
+ * High level function which wraps both #bmesh_vert_separate and #bmesh_edge_separate
*/
int BM_vert_separate(BMesh *bm, BMVert *v, BMVert ***r_vout, int *r_vout_len,
BMEdge **e_in, int e_in_len)
diff --git a/source/blender/bmesh/intern/bmesh_error.h b/source/blender/bmesh/intern/bmesh_error.h
index 606e9eeb23b..2ef146c7b38 100644
--- a/source/blender/bmesh/intern/bmesh_error.h
+++ b/source/blender/bmesh/intern/bmesh_error.h
@@ -23,7 +23,7 @@
#ifndef __BMESH_ERROR_H__
#define __BMESH_ERROR_H__
-/** \file blender/bmesh/bmesh_error.h
+/** \file blender/bmesh/intern/bmesh_error.h
* \ingroup bmesh
*/
@@ -84,8 +84,8 @@ void BMO_error_clear(BMesh *bm);
(void)((!(a)) ? ( \
( \
fprintf(stderr, \
- "BMESH_ASSERT failed: %s, %s(), %d at \'%s\'\n", \
- __FILE__, __func__, __LINE__, STRINGIFY(a)), \
+ "BMESH_ASSERT failed: %s, %s(), %d at \'%s\'\n", \
+ __FILE__, __func__, __LINE__, STRINGIFY(a)), \
_BMESH_DUMMY_ABORT(), \
NULL)) : NULL)
diff --git a/source/blender/bmesh/intern/bmesh_interp.c b/source/blender/bmesh/intern/bmesh_interp.c
index c39096d0800..12fcd51c069 100644
--- a/source/blender/bmesh/intern/bmesh_interp.c
+++ b/source/blender/bmesh/intern/bmesh_interp.c
@@ -45,47 +45,67 @@
#include "bmesh.h"
#include "intern/bmesh_private.h"
-/**
- * \brief Data, Interp From Verts
- *
- * Interpolates per-vertex data from two sources to a target.
- */
-void BM_data_interp_from_verts(BMesh *bm, BMVert *v1, BMVert *v2, BMVert *v, const float fac)
+/* edge and vertex share, currently theres no need to have different logic */
+static void bm_data_interp_from_elem(CustomData *data_layer, BMElem *ele1, BMElem *ele2, BMElem *ele_dst, const float fac)
{
- if (v1->head.data && v2->head.data) {
+ if (ele1->head.data && ele2->head.data) {
/* first see if we can avoid interpolation */
if (fac <= 0.0f) {
- if (v1 == v) {
+ if (ele1 == ele_dst) {
/* do nothing */
}
else {
- CustomData_bmesh_free_block(&bm->vdata, &v->head.data);
- CustomData_bmesh_copy_data(&bm->vdata, &bm->vdata, v1->head.data, &v->head.data);
+ CustomData_bmesh_free_block(data_layer, &ele_dst->head.data);
+ CustomData_bmesh_copy_data(data_layer, data_layer, ele1->head.data, &ele_dst->head.data);
}
}
else if (fac >= 1.0f) {
- if (v2 == v) {
+ if (ele2 == ele_dst) {
/* do nothing */
}
else {
- CustomData_bmesh_free_block(&bm->vdata, &v->head.data);
- CustomData_bmesh_copy_data(&bm->vdata, &bm->vdata, v2->head.data, &v->head.data);
+ CustomData_bmesh_free_block(data_layer, &ele_dst->head.data);
+ CustomData_bmesh_copy_data(data_layer, data_layer, ele2->head.data, &ele_dst->head.data);
}
}
else {
void *src[2];
float w[2];
- src[0] = v1->head.data;
- src[1] = v2->head.data;
+ src[0] = ele1->head.data;
+ src[1] = ele2->head.data;
w[0] = 1.0f - fac;
w[1] = fac;
- CustomData_bmesh_interp(&bm->vdata, src, w, NULL, 2, v->head.data);
+ CustomData_bmesh_interp(data_layer, src, w, NULL, 2, ele_dst->head.data);
}
}
}
/**
+ * \brief Data, Interp From Verts
+ *
+ * Interpolates per-vertex data from two sources to a target.
+ *
+ * \note This is an exact match to #BM_data_interp_from_edges
+ */
+void BM_data_interp_from_verts(BMesh *bm, BMVert *v1, BMVert *v2, BMVert *v, const float fac)
+{
+ bm_data_interp_from_elem(&bm->vdata, (BMElem *)v1, (BMElem *)v2, (BMElem *)v, fac);
+}
+
+/**
+ * \brief Data, Interp From Edges
+ *
+ * Interpolates per-edge data from two sources to a target.
+ *
+ * \note This is an exact match to #BM_data_interp_from_verts
+ */
+void BM_data_interp_from_edges(BMesh *bm, BMEdge *e1, BMEdge *e2, BMEdge *e, const float fac)
+{
+ bm_data_interp_from_elem(&bm->edata, (BMElem *)e1, (BMElem *)e2, (BMElem *)e, fac);
+}
+
+/**
* \brief Data Vert Average
*
* Sets all the customdata (e.g. vert, loop) associated with a vert
@@ -186,7 +206,7 @@ void BM_face_interp_from_face(BMesh *bm, BMFace *target, BMFace *source)
* \brief Multires Interpolation
*
* mdisps is a grid of displacements, ordered thus:
- *
+ * <pre>
* v1/center----v4/next -> x
* | |
* | |
@@ -194,6 +214,7 @@ void BM_face_interp_from_face(BMesh *bm, BMFace *target, BMFace *source)
* |
* V
* y
+ * </pre>
*/
static int compute_mdisp_quad(BMLoop *l, float v1[3], float v2[3], float v3[3], float v4[3],
float e1[3], float e2[3])
@@ -236,7 +257,7 @@ static float quad_coord(float aa[3], float bb[3], float cc[3], float dd[3], int
f1 = fabsf(f1);
f2 = fabsf(f2);
- f1 = MIN2(f1, f2);
+ f1 = minf(f1, f2);
CLAMP(f1, 0.0f, 1.0f + FLT_EPSILON);
}
else {
@@ -403,7 +424,7 @@ static void bm_loop_interp_mdisps(BMesh *bm, BMLoop *target, BMFace *source)
float axis_x[3], axis_y[3];
/* ignore 2-edged faces */
- if (target->f->len < 3)
+ if (UNLIKELY(target->f->len < 3))
return;
if (!CustomData_has_layer(&bm->ldata, CD_MDISPS))
diff --git a/source/blender/bmesh/intern/bmesh_interp.h b/source/blender/bmesh/intern/bmesh_interp.h
index 3380a3e6b1b..8be963f5798 100644
--- a/source/blender/bmesh/intern/bmesh_interp.h
+++ b/source/blender/bmesh/intern/bmesh_interp.h
@@ -31,6 +31,7 @@ void BM_loop_interp_multires(BMesh *bm, BMLoop *target, BMFace *source);
void BM_vert_interp_from_face(BMesh *bm, BMVert *v, BMFace *source);
void BM_data_interp_from_verts(BMesh *bm, BMVert *v1, BMVert *v2, BMVert *v, const float fac);
+void BM_data_interp_from_edges(BMesh *bm, BMEdge *e1, BMEdge *e2, BMEdge *e, const float fac);
void BM_data_interp_face_vert_edge(BMesh *bm, BMVert *v1, BMVert *v2, BMVert *v, BMEdge *e1, const float fac);
void BM_data_layer_add(BMesh *em, CustomData *data, int type);
void BM_data_layer_add_named(BMesh *bm, CustomData *data, int type, const char *name);
diff --git a/source/blender/bmesh/intern/bmesh_iterators.c b/source/blender/bmesh/intern/bmesh_iterators.c
index 8103ae1ee11..726127fdcad 100644
--- a/source/blender/bmesh/intern/bmesh_iterators.c
+++ b/source/blender/bmesh/intern/bmesh_iterators.c
@@ -28,6 +28,8 @@
* See: bmesh_iterators_inlin.c too, some functions are here for speed reasons.
*/
+#include "MEM_guardedalloc.h"
+
#include "BLI_utildefines.h"
#include "bmesh.h"
@@ -105,6 +107,38 @@ int BM_iter_as_array(BMesh *bm, const char itype, void *data, void **array, cons
}
/**
+ * \brief Iterator as Array
+ *
+ * Allocates a new array, has the advantage that you dont need to know the size ahead of time.
+ *
+ * Takes advantage of less common iterator usage to avoid counting twice,
+ * which you might end up doing when #BM_iter_as_array is used.
+ *
+ * Caller needs to free the array.
+ */
+void *BM_iter_as_arrayN(BMesh *bm, const char itype, void *data, int *r_len)
+{
+ BMIter iter;
+
+ if (BM_iter_init(&iter, bm, itype, data) && iter.count > 0) {
+ BMElem *ele;
+ BMElem **array = MEM_mallocN(sizeof(ele) * iter.count, __func__);
+ int i = 0;
+
+ *r_len = iter.count; /* set before iterating */
+
+ while ((ele = BM_iter_step(&iter))) {
+ array[i++] = ele;
+ }
+ return array;
+ }
+ else {
+ *r_len = 0;
+ return NULL;
+ }
+}
+
+/**
* \brief Elem Iter Flag Count
*
* Counts how many flagged / unflagged items are found in this element.
diff --git a/source/blender/bmesh/intern/bmesh_iterators.h b/source/blender/bmesh/intern/bmesh_iterators.h
index 1361a91a692..8d0eeca31ed 100644
--- a/source/blender/bmesh/intern/bmesh_iterators.h
+++ b/source/blender/bmesh/intern/bmesh_iterators.h
@@ -115,10 +115,19 @@ typedef struct BMIter {
char itype;
} BMIter;
-void *BM_iter_at_index(BMesh *bm, const char itype, void *data, int index);
-int BM_iter_as_array(BMesh *bm, const char itype, void *data, void **array, const int len);
-int BM_iter_elem_count_flag(const char itype, void *data, const char hflag, const short value);
-int BM_iter_mesh_count_flag(const char itype, BMesh *bm, const char hflag, const short value);
+void *BM_iter_at_index(BMesh *bm, const char itype, void *data, int index)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+#endif
+;
+int BM_iter_as_array(BMesh *bm, const char itype, void *data, void **array, const int len);
+void *BM_iter_as_arrayN(BMesh *bm, const char itype, void *data, int *r_len)
+#ifdef __GNUC__
+__attribute__((warn_unused_result))
+#endif
+;
+int BM_iter_elem_count_flag(const char itype, void *data, const char hflag, const short value);
+int BM_iter_mesh_count_flag(const char itype, BMesh *bm, const char hflag, const short value);
/* private for bmesh_iterators_inline.c */
void bmiter__vert_of_mesh_begin(struct BMIter *iter);
diff --git a/source/blender/bmesh/intern/bmesh_marking.c b/source/blender/bmesh/intern/bmesh_marking.c
index 59817043eed..e4a838fe893 100644
--- a/source/blender/bmesh/intern/bmesh_marking.c
+++ b/source/blender/bmesh/intern/bmesh_marking.c
@@ -31,6 +31,8 @@
* that should be addressed eventually.
*/
+#include <stddef.h>
+
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
@@ -71,7 +73,7 @@ static void recount_totsels(BMesh *bm)
* (ie: all verts of an edge selects the edge and so on).
* This should only be called by system and not tool authors.
*/
-void BM_mesh_select_mode_flush(BMesh *bm)
+void BM_mesh_select_mode_flush_ex(BMesh *bm, const short selectmode)
{
BMEdge *e;
BMLoop *l_iter;
@@ -83,7 +85,7 @@ void BM_mesh_select_mode_flush(BMesh *bm)
int ok;
- if (bm->selectmode & SCE_SELECT_VERTEX) {
+ if (selectmode & SCE_SELECT_VERTEX) {
BM_ITER_MESH (e, &eiter, bm, BM_EDGES_OF_MESH) {
if (BM_elem_flag_test(e->v1, BM_ELEM_SELECT) &&
BM_elem_flag_test(e->v2, BM_ELEM_SELECT) &&
@@ -113,7 +115,7 @@ void BM_mesh_select_mode_flush(BMesh *bm)
BM_elem_flag_set(f, BM_ELEM_SELECT, ok);
}
}
- else if (bm->selectmode & SCE_SELECT_EDGE) {
+ else if (selectmode & SCE_SELECT_EDGE) {
BM_ITER_MESH (f, &fiter, bm, BM_FACES_OF_MESH) {
ok = TRUE;
if (!BM_elem_flag_test(f, BM_ELEM_HIDDEN)) {
@@ -139,6 +141,11 @@ void BM_mesh_select_mode_flush(BMesh *bm)
recount_totsels(bm);
}
+void BM_mesh_select_mode_flush(BMesh *bm)
+{
+ BM_mesh_select_mode_flush_ex(bm, bm->selectmode);
+}
+
/**
* mode independent flushing up/down
*/
@@ -520,9 +527,9 @@ void BM_active_face_set(BMesh *bm, BMFace *efa)
bm->act_face = efa;
}
-BMFace *BM_active_face_get(BMesh *bm, int sloppy)
+BMFace *BM_active_face_get(BMesh *bm, int sloppy, int selected)
{
- if (bm->act_face) {
+ if (bm->act_face && (!selected || BM_elem_flag_test(bm->act_face, BM_ELEM_SELECT))) {
return bm->act_face;
}
else if (sloppy) {
@@ -539,6 +546,9 @@ BMFace *BM_active_face_get(BMesh *bm, int sloppy)
if (BM_elem_flag_test(f, BM_ELEM_HIDDEN)) {
f = NULL;
}
+ else if (selected && !BM_elem_flag_test(f, BM_ELEM_SELECT)) {
+ f = NULL;
+ }
else {
break;
}
@@ -562,9 +572,9 @@ BMFace *BM_active_face_get(BMesh *bm, int sloppy)
* These functions were written to be used by the Modifier widget
* when in Rotate about active mode, but can be used anywhere.
*
- * - #EM_editselection_center
- * - #EM_editselection_normal
- * - #EM_editselection_plane
+ * - #BM_editselection_center
+ * - #BM_editselection_normal
+ * - #BM_editselection_plane
*/
void BM_editselection_center(BMEditSelection *ese, float r_center[3])
{
@@ -662,7 +672,7 @@ void BM_editselection_plane(BMEditSelection *ese, float r_plane[3])
* we cant make a crossvec from a vec thats the same as the vec
* unlikely but possible, so make sure if the normal is (0, 0, 1)
* that vec isn't the same or in the same direction even. */
- if (efa->len < 3) {
+ if (UNLIKELY(efa->len < 3)) {
/* crappy fallback method */
if (efa->no[0] < 0.5f) vec[0] = 1.0f;
else if (efa->no[1] < 0.5f) vec[1] = 1.0f;
@@ -703,28 +713,19 @@ void BM_editselection_plane(BMEditSelection *ese, float r_plane[3])
/* --- macro wrapped funcs --- */
int _bm_select_history_check(BMesh *bm, const BMHeader *ele)
{
- BMEditSelection *ese;
-
- for (ese = bm->selected.first; ese; ese = ese->next) {
- if (ese->ele == (BMElem *)ele) {
- return TRUE;
- }
- }
-
- return FALSE;
+ return (BLI_findptr(&bm->selected, ele, offsetof(BMEditSelection, ele)) != NULL);
}
int _bm_select_history_remove(BMesh *bm, BMHeader *ele)
{
- BMEditSelection *ese;
- for (ese = bm->selected.first; ese; ese = ese->next) {
- if (ese->ele == (BMElem *)ele) {
- BLI_freelinkN(&(bm->selected), ese);
- return TRUE;
- }
+ BMEditSelection *ese = BLI_findptr(&bm->selected, ele, offsetof(BMEditSelection, ele));
+ if (ese) {
+ BLI_freelinkN(&bm->selected, ese);
+ return TRUE;
+ }
+ else {
+ return FALSE;
}
-
- return FALSE;
}
void _bm_select_history_store_notest(BMesh *bm, BMHeader *ele)
@@ -770,7 +771,7 @@ void BM_select_history_validate(BMesh *bm)
int BM_select_history_active_get(BMesh *bm, BMEditSelection *ese)
{
BMEditSelection *ese_last = bm->selected.last;
- BMFace *efa = BM_active_face_get(bm, FALSE);
+ BMFace *efa = BM_active_face_get(bm, FALSE, FALSE);
ese->next = ese->prev = NULL;
@@ -880,7 +881,7 @@ void BM_mesh_elem_hflag_enable_test(BMesh *bm, const char htype, const char hfla
/* note, better not attempt a fast path for selection as done with de-select
* because hidden geometry and different selection modes can give different results,
- * we could of course check for no hiddent faces and then use quicker method but its not worth it. */
+ * we could of course check for no hidden faces and then use quicker method but its not worth it. */
for (i = 0; i < 3; i++) {
if (htype & flag_types[i]) {
diff --git a/source/blender/bmesh/intern/bmesh_marking.h b/source/blender/bmesh/intern/bmesh_marking.h
index 406971652dc..8d4397794d5 100644
--- a/source/blender/bmesh/intern/bmesh_marking.h
+++ b/source/blender/bmesh/intern/bmesh_marking.h
@@ -60,6 +60,7 @@ void BM_edge_select_set(BMesh *bm, BMEdge *e, int select);
void BM_face_select_set(BMesh *bm, BMFace *f, int select);
void BM_mesh_select_mode_set(BMesh *bm, int selectmode);
+void BM_mesh_select_mode_flush_ex(BMesh *bm, const short selectmode);
void BM_mesh_select_mode_flush(BMesh *bm);
void BM_mesh_deselect_flush(BMesh *bm);
@@ -70,7 +71,7 @@ int BM_mesh_elem_hflag_count_disabled(BMesh *bm, const char htype, const char hf
/* edit selection stuff */
void BM_active_face_set(BMesh *bm, BMFace *f);
-BMFace *BM_active_face_get(BMesh *bm, int sloppy);
+BMFace *BM_active_face_get(BMesh *bm, int sloppy, int selected);
void BM_editselection_center(BMEditSelection *ese, float r_center[3]);
void BM_editselection_normal(BMEditSelection *ese, float r_normal[3]);
diff --git a/source/blender/bmesh/intern/bmesh_mesh.c b/source/blender/bmesh/intern/bmesh_mesh.c
index 385572cceff..0d072da5327 100644
--- a/source/blender/bmesh/intern/bmesh_mesh.c
+++ b/source/blender/bmesh/intern/bmesh_mesh.c
@@ -282,7 +282,7 @@ void BM_mesh_normals_update(BMesh *bm, const short skip_hidden)
if (skip_hidden && BM_elem_flag_test(v, BM_ELEM_HIDDEN))
continue;
- if (normalize_v3(v->no) == 0.0f) {
+ if (UNLIKELY(normalize_v3(v->no) == 0.0f)) {
normalize_v3_v3(v->no, v->co);
}
}
@@ -290,47 +290,6 @@ void BM_mesh_normals_update(BMesh *bm, const short skip_hidden)
MEM_freeN(edgevec);
}
-/*
- * This function ensures correct normals for the mesh, but
- * sets the flag BM_ELEM_TAG in flipped faces, to allow restoration
- * of original normals.
- *
- * if undo is 0: calculate right normals
- * if undo is 1: restore original normals
- */
-
-//keep in sycn with utils.c!
-#define FACE_FLIP 8
-static void bm_rationalize_normals(BMesh *bm, int undo)
-{
- BMOperator bmop;
- BMFace *f;
- BMIter iter;
-
- if (undo) {
- BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) {
- if (BM_elem_flag_test(f, BM_ELEM_TAG)) {
- BM_face_normal_flip(bm, f);
- }
- BM_elem_flag_disable(f, BM_ELEM_TAG);
- }
-
- return;
- }
-
- BMO_op_initf(bm, &bmop, "recalc_face_normals faces=%af do_flip=%b", FALSE);
-
- BMO_push(bm, &bmop);
- bmo_recalc_face_normals_exec(bm, &bmop);
-
- BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) {
- BM_elem_flag_set(f, BM_ELEM_TAG, BMO_elem_flag_test(bm, f, FACE_FLIP));
- }
-
- BMO_pop(bm);
- BMO_op_finish(bm, &bmop);
-}
-
static void UNUSED_FUNCTION(bm_mdisps_space_set)(Object *ob, BMesh *bm, int from, int to)
{
/* switch multires data out of tangent space */
@@ -390,41 +349,32 @@ static void UNUSED_FUNCTION(bm_mdisps_space_set)(Object *ob, BMesh *bm, int from
* the editing operations are done. These are called by the tools/operator
* API for each time a tool is executed.
*/
-void bmesh_edit_begin(BMesh *bm, int flag)
+void bmesh_edit_begin(BMesh *UNUSED(bm), int UNUSED(type_flag))
{
- bm->opflag = flag;
-
/* Most operators seem to be using BMO_OP_FLAG_UNTAN_MULTIRES to change the MDisps to
* absolute space during mesh edits. With this enabled, changes to the topology
* (loop cuts, edge subdivides, etc) are not reflected in the higher levels of
* the mesh at all, which doesn't seem right. Turning off completely for now,
* until this is shown to be better for certain types of mesh edits. */
-#if BMOP_UNTAN_MULTIRES_ENABLED
+#ifdef BMOP_UNTAN_MULTIRES_ENABLED
/* switch multires data out of tangent space */
- if ((flag & BMO_OP_FLAG_UNTAN_MULTIRES) && CustomData_has_layer(&bm->ldata, CD_MDISPS)) {
+ if ((type_flag & BMO_OP_FLAG_UNTAN_MULTIRES) && CustomData_has_layer(&bm->ldata, CD_MDISPS)) {
bmesh_mdisps_space_set(bm, MULTIRES_SPACE_TANGENT, MULTIRES_SPACE_ABSOLUTE);
/* ensure correct normals, if possible */
bmesh_rationalize_normals(bm, 0);
BM_mesh_normals_update(bm);
}
- else if (flag & BMO_OP_FLAG_RATIONALIZE_NORMALS) {
- bmesh_rationalize_normals(bm, 0);
- }
-#else
- if (flag & BMO_OP_FLAG_RATIONALIZE_NORMALS) {
- bm_rationalize_normals(bm, 0);
- }
#endif
}
/**
* \brief BMesh End Edit
*/
-void bmesh_edit_end(BMesh *bm, int flag)
+void bmesh_edit_end(BMesh *bm, int UNUSED(flag))
{
/* BMO_OP_FLAG_UNTAN_MULTIRES disabled for now, see comment above in bmesh_edit_begin. */
-#if BMOP_UNTAN_MULTIRES_ENABLED
+#ifdef BMOP_UNTAN_MULTIRES_ENABLED
/* switch multires data into tangent space */
if ((flag & BMO_OP_FLAG_UNTAN_MULTIRES) && CustomData_has_layer(&bm->ldata, CD_MDISPS)) {
/* set normals to their previous winding */
@@ -434,14 +384,8 @@ void bmesh_edit_end(BMesh *bm, int flag)
else if (flag & BMO_OP_FLAG_RATIONALIZE_NORMALS) {
bmesh_rationalize_normals(bm, 1);
}
-#else
- if (flag & BMO_OP_FLAG_RATIONALIZE_NORMALS) {
- bm_rationalize_normals(bm, 1);
- }
#endif
- bm->opflag = 0;
-
/* compute normals, clear temp flags and flush selections */
BM_mesh_normals_update(bm, TRUE);
BM_mesh_select_mode_flush(bm);
@@ -721,7 +665,7 @@ void BM_mesh_remap(BMesh *bm, int *vert_idx, int *edge_idx, int *face_idx)
/* Verts' pointers, only edge pointers... */
if (eptr_map) {
BM_ITER_MESH (ve, &iter, bm, BM_VERTS_OF_MESH) {
-/* printf("Vert e: %p -> %p\n", ve->e, BLI_ghash_lookup(eptr_map, (const void*)ve->e));*/
+/* printf("Vert e: %p -> %p\n", ve->e, BLI_ghash_lookup(eptr_map, (const void *)ve->e));*/
ve->e = BLI_ghash_lookup(eptr_map, (const void *)ve->e);
}
}
@@ -731,20 +675,20 @@ void BM_mesh_remap(BMesh *bm, int *vert_idx, int *edge_idx, int *face_idx)
if (vptr_map || eptr_map) {
BM_ITER_MESH (ed, &iter, bm, BM_EDGES_OF_MESH) {
if (vptr_map) {
-/* printf("Edge v1: %p -> %p\n", ed->v1, BLI_ghash_lookup(vptr_map, (const void*)ed->v1));*/
-/* printf("Edge v2: %p -> %p\n", ed->v2, BLI_ghash_lookup(vptr_map, (const void*)ed->v2));*/
+/* printf("Edge v1: %p -> %p\n", ed->v1, BLI_ghash_lookup(vptr_map, (const void *)ed->v1));*/
+/* printf("Edge v2: %p -> %p\n", ed->v2, BLI_ghash_lookup(vptr_map, (const void* )ed->v2));*/
ed->v1 = BLI_ghash_lookup(vptr_map, (const void *)ed->v1);
ed->v2 = BLI_ghash_lookup(vptr_map, (const void *)ed->v2);
}
if (eptr_map) {
/* printf("Edge v1_disk_link prev: %p -> %p\n", ed->v1_disk_link.prev,*/
-/* BLI_ghash_lookup(eptr_map, (const void*)ed->v1_disk_link.prev));*/
+/* BLI_ghash_lookup(eptr_map, (const void *)ed->v1_disk_link.prev));*/
/* printf("Edge v1_disk_link next: %p -> %p\n", ed->v1_disk_link.next,*/
-/* BLI_ghash_lookup(eptr_map, (const void*)ed->v1_disk_link.next));*/
+/* BLI_ghash_lookup(eptr_map, (const void *)ed->v1_disk_link.next));*/
/* printf("Edge v2_disk_link prev: %p -> %p\n", ed->v2_disk_link.prev,*/
-/* BLI_ghash_lookup(eptr_map, (const void*)ed->v2_disk_link.prev));*/
+/* BLI_ghash_lookup(eptr_map, (const void *)ed->v2_disk_link.prev));*/
/* printf("Edge v2_disk_link next: %p -> %p\n", ed->v2_disk_link.next,*/
-/* BLI_ghash_lookup(eptr_map, (const void*)ed->v2_disk_link.next));*/
+/* BLI_ghash_lookup(eptr_map, (const void *)ed->v2_disk_link.next));*/
ed->v1_disk_link.prev = BLI_ghash_lookup(eptr_map, (const void *)ed->v1_disk_link.prev);
ed->v1_disk_link.next = BLI_ghash_lookup(eptr_map, (const void *)ed->v1_disk_link.next);
ed->v2_disk_link.prev = BLI_ghash_lookup(eptr_map, (const void *)ed->v2_disk_link.prev);
@@ -757,15 +701,15 @@ void BM_mesh_remap(BMesh *bm, int *vert_idx, int *edge_idx, int *face_idx)
BM_ITER_MESH (fa, &iter, bm, BM_FACES_OF_MESH) {
BM_ITER_ELEM (lo, &iterl, fa, BM_LOOPS_OF_FACE) {
if (vptr_map) {
-/* printf("Loop v: %p -> %p\n", lo->v, BLI_ghash_lookup(vptr_map, (const void*)lo->v));*/
+/* printf("Loop v: %p -> %p\n", lo->v, BLI_ghash_lookup(vptr_map, (const void *)lo->v));*/
lo->v = BLI_ghash_lookup(vptr_map, (const void *)lo->v);
}
if (eptr_map) {
-/* printf("Loop e: %p -> %p\n", lo->e, BLI_ghash_lookup(eptr_map, (const void*)lo->e));*/
+/* printf("Loop e: %p -> %p\n", lo->e, BLI_ghash_lookup(eptr_map, (const void *)lo->e));*/
lo->e = BLI_ghash_lookup(eptr_map, (const void *)lo->e);
}
if (fptr_map) {
-/* printf("Loop f: %p -> %p\n", lo->f, BLI_ghash_lookup(fptr_map, (const void*)lo->f));*/
+/* printf("Loop f: %p -> %p\n", lo->f, BLI_ghash_lookup(fptr_map, (const void *)lo->f));*/
lo->f = BLI_ghash_lookup(fptr_map, (const void *)lo->f);
}
}
diff --git a/source/blender/bmesh/intern/bmesh_mesh.h b/source/blender/bmesh/intern/bmesh_mesh.h
index 0441f38b429..8b6ef9aa3e0 100644
--- a/source/blender/bmesh/intern/bmesh_mesh.h
+++ b/source/blender/bmesh/intern/bmesh_mesh.h
@@ -37,8 +37,8 @@ void BM_mesh_clear(BMesh *bm);
void BM_mesh_normals_update(BMesh *bm, const short skip_hidden);
-void bmesh_edit_begin(BMesh *bm, int flag);
-void bmesh_edit_end(BMesh *bm, int flag);
+void bmesh_edit_begin(BMesh *bm, int type_flag);
+void bmesh_edit_end(BMesh *bm, int type_flag);
void BM_mesh_elem_index_ensure(BMesh *bm, const char hflag);
void BM_mesh_elem_index_validate(BMesh *bm, const char *location, const char *func,
diff --git a/source/blender/bmesh/intern/bmesh_mesh_conv.c b/source/blender/bmesh/intern/bmesh_mesh_conv.c
index 123eb6829a3..b0a9168ffda 100644
--- a/source/blender/bmesh/intern/bmesh_mesh_conv.c
+++ b/source/blender/bmesh/intern/bmesh_mesh_conv.c
@@ -314,7 +314,7 @@ void BM_mesh_bm_from_me(BMesh *bm, Mesh *me, int set_key, int act_key_nr)
f = BM_face_create(bm, verts, fedges, mpoly->totloop, FALSE);
- if (!f) {
+ if (UNLIKELY(f == NULL)) {
printf("%s: Warning! Bad face in mesh"
" \"%s\" at index %d!, skipping\n",
__func__, me->id.name + 2, i);
@@ -758,7 +758,7 @@ void BM_mesh_bm_to_me(BMesh *bm, Mesh *me, int dotess)
}
if (!currkey) {
- currkey = add_keyblock(me->key, bm->vdata.layers[i].name);
+ currkey = BKE_keyblock_add(me->key, bm->vdata.layers[i].name);
currkey->uid = bm->vdata.layers[i].uid;
}
@@ -793,6 +793,15 @@ void BM_mesh_bm_to_me(BMesh *bm, Mesh *me, int dotess)
if (keyi && *keyi != ORIGINDEX_NONE) {
sub_v3_v3v3(ofs[i], mvert->co, fp[*keyi]);
}
+ else {
+ /* if there are new vertices in the mesh, we can't propagate the offset
+ * because it will only work for the existing vertices and not the new
+ * ones, creating a mess when doing e.g. subdivide + translate */
+ MEM_freeN(ofs);
+ ofs = NULL;
+ break;
+ }
+
mvert++;
}
}
diff --git a/source/blender/bmesh/intern/bmesh_mods.c b/source/blender/bmesh/intern/bmesh_mods.c
index b29970dc886..3195899ef01 100644
--- a/source/blender/bmesh/intern/bmesh_mods.c
+++ b/source/blender/bmesh/intern/bmesh_mods.c
@@ -45,20 +45,21 @@
* Turns the face region surrounding a manifold vertex into a single polygon.
*
* \par Example:
- *
+ * <pre>
* +---------+ +---------+
* | \ / | | |
* Before: | v | After: | |
* | / \ | | |
* +---------+ +---------+
- *
+ * </pre>
*
* This function can also collapse edges too
* in cases when it cant merge into faces.
*
* \par Example:
- *
+ * <pre>
* Before: +----v----+ After: +---------+
+ * </pre>
*
* \note dissolves vert, in more situations then BM_disk_dissolve
* (e.g. if the vert is part of a wire edge, etc).
@@ -173,7 +174,7 @@ int BM_disk_dissolve(BMesh *bm, BMVert *v)
f = BM_faces_join_pair(bm, e->l->f, e->l->radial_next->f, e, TRUE);
/* return if couldn't join faces in manifold
* conditions */
- //!disabled for testing why bad things happen
+ /* !disabled for testing why bad things happen */
if (!f) {
return FALSE;
}
@@ -383,7 +384,7 @@ BMFace *BM_face_split(BMesh *bm, BMFace *f, BMVert *v1, BMVert *v2, BMLoop **r_l
* \param bm The bmesh
* \param f the original face
* \param v1, v2 vertices which define the split edge, must be different
- * \param co Array of coordinates for intermediate points
+ * \param cos Array of coordinates for intermediate points
* \param n Length of \a cos (must be > 0)
* \param r_l pointer which will receive the BMLoop for the first split edge (from \a v1) in the new face
* \param example Edge used for attributes of splitting edge, if non-NULL
@@ -557,7 +558,7 @@ BMEdge *BM_vert_collapse_faces(BMesh *bm, BMEdge *ke, BMVert *kv, float fac,
/* cant kill data we loop on, build a list and remove those */
BLI_array_empty(bad_faces);
BM_ITER_ELEM (f, &fiter, verts[i], BM_FACES_OF_VERT) {
- if (f->len < 3) {
+ if (UNLIKELY(f->len < 3)) {
BLI_array_append(bad_faces, f);
}
}
@@ -887,6 +888,7 @@ int BM_edge_rotate_check(BMEdge *e)
* 1) does the newly forms edge form a flipped face (compare with previous cross product)
* 2) does the newly formed edge cause a zero area corner (or close enough to be almost zero)
*
+ * \param e The edge to test rotation.
* \param l1,l2 are the loops of the proposed verts to rotate too and should
* be the result of calling #BM_edge_calc_rotate
*/
diff --git a/source/blender/bmesh/intern/bmesh_mods.h b/source/blender/bmesh/intern/bmesh_mods.h
index 802c6cca05d..790f0cb6267 100644
--- a/source/blender/bmesh/intern/bmesh_mods.h
+++ b/source/blender/bmesh/intern/bmesh_mods.h
@@ -47,9 +47,9 @@ BMFace *BM_face_split_n(BMesh *bm, BMFace *f,
float cos[][3], int n,
BMLoop **r_l, BMEdge *example);
-BMEdge* BM_vert_collapse_faces(BMesh *bm, BMEdge *ke, BMVert *kv, float fac,
+BMEdge *BM_vert_collapse_faces(BMesh *bm, BMEdge *ke, BMVert *kv, float fac,
const short join_faces, const short kill_degenerate_faces);
-BMEdge* BM_vert_collapse_edge(BMesh *bm, BMEdge *ke, BMVert *kv,
+BMEdge *BM_vert_collapse_edge(BMesh *bm, BMEdge *ke, BMVert *kv,
const short kill_degenerate_faces);
diff --git a/source/blender/bmesh/intern/bmesh_opdefines.c b/source/blender/bmesh/intern/bmesh_opdefines.c
index b6d9fbc85a2..362157ad71b 100644
--- a/source/blender/bmesh/intern/bmesh_opdefines.c
+++ b/source/blender/bmesh/intern/bmesh_opdefines.c
@@ -99,11 +99,14 @@
*/
static BMOpDefine bmo_smooth_vert_def = {
"smooth_vert",
- {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, //input vertices
- {BMO_OP_SLOT_BOOL, "mirror_clip_x"}, //set vertices close to the x axis before the operation to 0
- {BMO_OP_SLOT_BOOL, "mirror_clip_y"}, //set vertices close to the y axis before the operation to 0
- {BMO_OP_SLOT_BOOL, "mirror_clip_z"}, //set vertices close to the z axis before the operation to 0
- {BMO_OP_SLOT_FLT, "clipdist"}, //clipping threshod for the above three slots
+ {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */
+ {BMO_OP_SLOT_BOOL, "mirror_clip_x"}, /* set vertices close to the x axis before the operation to 0 */
+ {BMO_OP_SLOT_BOOL, "mirror_clip_y"}, /* set vertices close to the y axis before the operation to 0 */
+ {BMO_OP_SLOT_BOOL, "mirror_clip_z"}, /* set vertices close to the z axis before the operation to 0 */
+ {BMO_OP_SLOT_FLT, "clipdist"}, /* clipping threshod for the above three slots */
+ {BMO_OP_SLOT_BOOL, "use_axis_x"}, /* smooth vertices along X axis */
+ {BMO_OP_SLOT_BOOL, "use_axis_y"}, /* smooth vertices along Y axis */
+ {BMO_OP_SLOT_BOOL, "use_axis_z"}, /* smooth vertices along Z axis */
{0} /* null-terminating sentinel */,
},
bmo_smooth_vert_exec,
@@ -119,7 +122,7 @@ static BMOpDefine bmo_smooth_vert_def = {
static BMOpDefine bmo_recalc_face_normals_def = {
"recalc_face_normals",
{{BMO_OP_SLOT_ELEMENT_BUF, "faces"},
- {BMO_OP_SLOT_BOOL, "do_flip"}, //internal flag, used by bmesh_rationalize_normals
+ {BMO_OP_SLOT_BOOL, "do_flip"}, /* internal flag, used by bmesh_rationalize_normals */
{0} /* null-terminating sentinel */,
},
bmo_recalc_face_normals_exec,
@@ -138,10 +141,10 @@ static BMOpDefine bmo_recalc_face_normals_def = {
*/
static BMOpDefine bmo_region_extend_def = {
"region_extend",
- {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, //input geometry
- {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, //output slot, computed boundary geometry.
- {BMO_OP_SLOT_BOOL, "constrict"}, //find boundary inside the regions, not outside.
- {BMO_OP_SLOT_BOOL, "use_faces"}, //extend from faces instead of edges
+ {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, /* input geometry */
+ {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, /* output slot, computed boundary geometry. */
+ {BMO_OP_SLOT_BOOL, "constrict"}, /* find boundary inside the regions, not outside. */
+ {BMO_OP_SLOT_BOOL, "use_faces"}, /* extend from faces instead of edges */
{0} /* null-terminating sentinel */,
},
bmo_region_extend_exec,
@@ -156,9 +159,9 @@ static BMOpDefine bmo_region_extend_def = {
*/
static BMOpDefine bmo_rotate_edges_def = {
"rotate_edges",
- {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, //input edges
- {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, //newly spun edges
- {BMO_OP_SLOT_BOOL, "ccw"}, //rotate edge counter-clockwise if true, othewise clockwise
+ {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input edges */
+ {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* newly spun edges */
+ {BMO_OP_SLOT_BOOL, "ccw"}, /* rotate edge counter-clockwise if true, othewise clockwise */
{0} /* null-terminating sentinel */,
},
bmo_rotate_edges_exec,
@@ -173,7 +176,7 @@ static BMOpDefine bmo_rotate_edges_def = {
*/
static BMOpDefine bmo_reverse_faces_def = {
"reverse_faces",
- {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, //input faces
+ {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input faces */
{0} /* null-terminating sentinel */,
},
bmo_reverse_faces_exec,
@@ -188,9 +191,9 @@ static BMOpDefine bmo_reverse_faces_def = {
*/
static BMOpDefine bmo_bisect_edges_def = {
"bisect_edges",
- {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, //input edges
- {BMO_OP_SLOT_INT, "numcuts"}, //number of cuts
- {BMO_OP_SLOT_ELEMENT_BUF, "outsplit"}, //newly created vertices and edges
+ {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input edges */
+ {BMO_OP_SLOT_INT, "numcuts"}, /* number of cuts */
+ {BMO_OP_SLOT_ELEMENT_BUF, "outsplit"}, /* newly created vertices and edges */
{0} /* null-terminating sentinel */,
},
bmo_bisect_edges_exec,
@@ -207,13 +210,13 @@ static BMOpDefine bmo_bisect_edges_def = {
static BMOpDefine bmo_mirror_def = {
"mirror",
- {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, //input geometry
- {BMO_OP_SLOT_MAT, "mat"}, //matrix defining the mirror transformation
- {BMO_OP_SLOT_FLT, "mergedist"}, //maximum distance for merging. does no merging if 0.
- {BMO_OP_SLOT_ELEMENT_BUF, "newout"}, //output geometry, mirrored
- {BMO_OP_SLOT_INT, "axis"}, //the axis to use, 0, 1, or 2 for x, y, z
- {BMO_OP_SLOT_BOOL, "mirror_u"}, //mirror UVs across the u axis
- {BMO_OP_SLOT_BOOL, "mirror_v"}, //mirror UVs across the v axis
+ {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, /* input geometry */
+ {BMO_OP_SLOT_MAT, "mat"}, /* matrix defining the mirror transformation */
+ {BMO_OP_SLOT_FLT, "mergedist"}, /* maximum distance for merging. does no merging if 0. */
+ {BMO_OP_SLOT_ELEMENT_BUF, "newout"}, /* output geometry, mirrored */
+ {BMO_OP_SLOT_INT, "axis"}, /* the axis to use, 0, 1, or 2 for x, y, z */
+ {BMO_OP_SLOT_BOOL, "mirror_u"}, /* mirror UVs across the u axis */
+ {BMO_OP_SLOT_BOOL, "mirror_v"}, /* mirror UVs across the v axis */
{0, /* null-terminating sentinel */}},
bmo_mirror_exec,
0,
@@ -230,9 +233,9 @@ static BMOpDefine bmo_mirror_def = {
*/
static BMOpDefine bmo_find_doubles_def = {
"find_doubles",
- {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, //input vertices
- {BMO_OP_SLOT_ELEMENT_BUF, "keep_verts"}, //list of verts to keep
- {BMO_OP_SLOT_FLT, "dist"}, //minimum distance
+ {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */
+ {BMO_OP_SLOT_ELEMENT_BUF, "keep_verts"}, /* list of verts to keep */
+ {BMO_OP_SLOT_FLT, "dist"}, /* minimum distance */
{BMO_OP_SLOT_MAPPING, "targetmapout"},
{0, /* null-terminating sentinel */}},
bmo_find_doubles_exec,
@@ -247,8 +250,8 @@ static BMOpDefine bmo_find_doubles_def = {
*/
static BMOpDefine bmo_remove_doubles_def = {
"remove_doubles",
- {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, //input verts
- {BMO_OP_SLOT_FLT, "dist"}, //minimum distance
+ {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input verts */
+ {BMO_OP_SLOT_FLT, "dist"}, /* minimum distance */
{0, /* null-terminating sentinel */}},
bmo_remove_doubles_exec,
BMO_OP_FLAG_UNTAN_MULTIRES,
@@ -263,8 +266,8 @@ static BMOpDefine bmo_remove_doubles_def = {
*/
static BMOpDefine bmo_automerge_def = {
"automerge",
- {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, //input verts
- {BMO_OP_SLOT_FLT, "dist"}, //minimum distance
+ {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input verts */
+ {BMO_OP_SLOT_FLT, "dist"}, /* minimum distance */
{0, /* null-terminating sentinel */}},
bmo_automerge_exec,
BMO_OP_FLAG_UNTAN_MULTIRES,
@@ -363,8 +366,8 @@ static BMOpDefine bmo_weld_verts_def = {
*/
static BMOpDefine bmo_create_vert_def = {
"create_vert",
- {{BMO_OP_SLOT_VEC, "co"}, //the coordinate of the new vert
- {BMO_OP_SLOT_ELEMENT_BUF, "newvertout"}, //the new vert
+ {{BMO_OP_SLOT_VEC, "co"}, /* the coordinate of the new vert */
+ {BMO_OP_SLOT_ELEMENT_BUF, "newvertout"}, /* the new vert */
{0, /* null-terminating sentinel */}},
bmo_create_vert_exec,
0,
@@ -378,8 +381,8 @@ static BMOpDefine bmo_create_vert_def = {
*/
static BMOpDefine bmo_join_triangles_def = {
"join_triangles",
- {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, //input geometry.
- {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, //joined faces
+ {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input geometry. */
+ {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* joined faces */
{BMO_OP_SLOT_BOOL, "cmp_sharp"},
{BMO_OP_SLOT_BOOL, "cmp_uvs"},
{BMO_OP_SLOT_BOOL, "cmp_vcols"},
@@ -403,8 +406,10 @@ static BMOpDefine bmo_join_triangles_def = {
*/
static BMOpDefine bmo_contextual_create_def = {
"contextual_create",
- {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, //input geometry.
+ {{BMO_OP_SLOT_ELEMENT_BUF, "geom"}, /* input geometry. */
{BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* newly-made face(s) */
+ /* note, this is for stand-alone edges only, not edges which are apart of newly created faces */
+ {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* newly-made edge(s) */
{BMO_OP_SLOT_INT, "mat_nr"}, /* material to use */
{BMO_OP_SLOT_BOOL, "use_smooth"}, /* material to use */
{0, /* null-terminating sentinel */}},
@@ -419,6 +424,8 @@ static BMOpDefine bmo_bridge_loops_def = {
"bridge_loops",
{{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input edge */
{BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* new face */
+ {BMO_OP_SLOT_BOOL, "use_merge"},
+ {BMO_OP_SLOT_FLT, "merge_factor"},
{0, /* null-terminating sentinel */}},
bmo_bridge_loops_exec,
0,
@@ -452,8 +459,8 @@ static BMOpDefine bmo_edgenet_fill_def = {
*/
static BMOpDefine bmo_edgenet_prepare_def = {
"edgenet_prepare",
- {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, //input edges
- {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, //new edges
+ {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input edges */
+ {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* new edges */
{0, /* null-terminating sentinel */}},
bmo_edgenet_prepare,
0,
@@ -467,9 +474,9 @@ static BMOpDefine bmo_edgenet_prepare_def = {
*/
static BMOpDefine bmo_rotate_def = {
"rotate",
- {{BMO_OP_SLOT_VEC, "cent"}, //center of rotation
- {BMO_OP_SLOT_MAT, "mat"}, //matrix defining rotation
- {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, //input vertices
+ {{BMO_OP_SLOT_VEC, "cent"}, /* center of rotation */
+ {BMO_OP_SLOT_MAT, "mat"}, /* matrix defining rotation */
+ {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */
{0, /* null-terminating sentinel */}},
bmo_rotate_exec,
0,
@@ -483,8 +490,8 @@ static BMOpDefine bmo_rotate_def = {
*/
static BMOpDefine bmo_translate_def = {
"translate",
- {{BMO_OP_SLOT_VEC, "vec"}, //translation offset
- {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, //input vertices
+ {{BMO_OP_SLOT_VEC, "vec"}, /* translation offset */
+ {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */
{0, /* null-terminating sentinel */}},
bmo_translate_exec,
0,
@@ -497,8 +504,8 @@ static BMOpDefine bmo_translate_def = {
*/
static BMOpDefine bmo_scale_def = {
"scale",
- {{BMO_OP_SLOT_VEC, "vec"}, //scale factor
- {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, //input vertices
+ {{BMO_OP_SLOT_VEC, "vec"}, /* scale factor */
+ {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */
{0, /* null-terminating sentinel */}},
bmo_scale_exec,
0,
@@ -513,8 +520,8 @@ static BMOpDefine bmo_scale_def = {
*/
static BMOpDefine bmo_transform_def = {
"transform",
- {{BMO_OP_SLOT_MAT, "mat"}, //transform matrix
- {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, //input vertices
+ {{BMO_OP_SLOT_MAT, "mat"}, /* transform matrix */
+ {BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */
{0, /* null-terminating sentinel */}},
bmo_transform_exec,
0,
@@ -543,9 +550,9 @@ static BMOpDefine bmo_object_load_bmesh_def = {
*/
static BMOpDefine bmo_bmesh_to_mesh_def = {
"bmesh_to_mesh",
- {{BMO_OP_SLOT_PTR, "mesh"}, //pointer to a mesh structure to fill in
- {BMO_OP_SLOT_PTR, "object"}, //pointer to an object structure
- {BMO_OP_SLOT_BOOL, "notessellation"}, //don't calculate mfaces
+ {{BMO_OP_SLOT_PTR, "mesh"}, /* pointer to a mesh structure to fill in */
+ {BMO_OP_SLOT_PTR, "object"}, /* pointer to an object structure */
+ {BMO_OP_SLOT_BOOL, "notessellation"}, /* don't calculate mfaces */
{0, /* null-terminating sentinel */}},
bmo_bmesh_to_mesh_exec,
0,
@@ -559,9 +566,9 @@ static BMOpDefine bmo_bmesh_to_mesh_def = {
*/
static BMOpDefine bmo_mesh_to_bmesh_def = {
"mesh_to_bmesh",
- {{BMO_OP_SLOT_PTR, "mesh"}, //pointer to a Mesh structure
- {BMO_OP_SLOT_PTR, "object"}, //pointer to an Object structure
- {BMO_OP_SLOT_BOOL, "set_shapekey"}, //load active shapekey coordinates into verts
+ {{BMO_OP_SLOT_PTR, "mesh"}, /* pointer to a Mesh structure */
+ {BMO_OP_SLOT_PTR, "object"}, /* pointer to an Object structure */
+ {BMO_OP_SLOT_BOOL, "set_shapekey"}, /* load active shapekey coordinates into verts */
{0, /* null-terminating sentinel */}},
bmo_mesh_to_bmesh_exec,
0
@@ -574,9 +581,9 @@ static BMOpDefine bmo_mesh_to_bmesh_def = {
*/
static BMOpDefine bmo_extrude_discrete_faces_def = {
"extrude_discrete_faces",
- {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, //input faces
- {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, //output faces
- {BMO_OP_SLOT_ELEMENT_BUF, "skirtout"}, //output skirt geometry, faces and edges
+ {{BMO_OP_SLOT_ELEMENT_BUF, "faces"}, /* input faces */
+ {BMO_OP_SLOT_ELEMENT_BUF, "faceout"}, /* output faces */
+ {BMO_OP_SLOT_ELEMENT_BUF, "skirtout"}, /* output skirt geometry, faces and edges */
{0} /* null-terminating sentinel */},
bmo_extrude_discrete_faces_exec,
0
@@ -590,8 +597,8 @@ static BMOpDefine bmo_extrude_discrete_faces_def = {
*/
static BMOpDefine bmo_extrude_edge_only_def = {
"extrude_edge_only",
- {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, //input vertices
- {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, //output geometry
+ {{BMO_OP_SLOT_ELEMENT_BUF, "edges"}, /* input vertices */
+ {BMO_OP_SLOT_ELEMENT_BUF, "geomout"}, /* output geometry */
{0} /* null-terminating sentinel */},
bmo_extrude_edge_only_exec,
0
@@ -604,9 +611,9 @@ static BMOpDefine bmo_extrude_edge_only_def = {
*/
static BMOpDefine bmo_extrude_vert_indiv_def = {
"extrude_vert_indiv",
- {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, //input vertices
- {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, //output wire edges
- {BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, //output vertices
+ {{BMO_OP_SLOT_ELEMENT_BUF, "verts"}, /* input vertices */
+ {BMO_OP_SLOT_ELEMENT_BUF, "edgeout"}, /* output wire edges */
+ {BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output vertices */
{0} /* null-terminating sentinel */},
bmo_extrude_vert_indiv_exec,
0
@@ -644,7 +651,7 @@ static BMOpDefine bmo_dissolve_edges_def = {
"dissolve_edges",
{{BMO_OP_SLOT_ELEMENT_BUF, "edges"},
{BMO_OP_SLOT_ELEMENT_BUF, "regionout"},
- {BMO_OP_SLOT_BOOL, "use_verts"}, // dissolve verts left between only 2 edges.
+ {BMO_OP_SLOT_BOOL, "use_verts"}, /* dissolve verts left between only 2 edges. */
{0} /* null-terminating sentinel */},
bmo_dissolve_edges_exec,
BMO_OP_FLAG_UNTAN_MULTIRES
@@ -663,7 +670,7 @@ static BMOpDefine bmo_dissolve_faces_def = {
"dissolve_faces",
{{BMO_OP_SLOT_ELEMENT_BUF, "faces"},
{BMO_OP_SLOT_ELEMENT_BUF, "regionout"},
- {BMO_OP_SLOT_BOOL, "use_verts"}, // dissolve verts left between only 2 edges.
+ {BMO_OP_SLOT_BOOL, "use_verts"}, /* dissolve verts left between only 2 edges. */
{0} /* null-terminating sentinel */},
bmo_dissolve_faces_exec,
BMO_OP_FLAG_UNTAN_MULTIRES
@@ -916,11 +923,11 @@ static BMOpDefine bmo_split_edges_def = {
*/
static BMOpDefine bmo_create_grid_def = {
"create_grid",
- {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, //output verts
- {BMO_OP_SLOT_INT, "xsegments"}, //number of x segments
- {BMO_OP_SLOT_INT, "ysegments"}, //number of y segments
- {BMO_OP_SLOT_FLT, "size"}, //size of the grid
- {BMO_OP_SLOT_MAT, "mat"}, //matrix to multiply the new geometry with
+ {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */
+ {BMO_OP_SLOT_INT, "xsegments"}, /* number of x segments */
+ {BMO_OP_SLOT_INT, "ysegments"}, /* number of y segments */
+ {BMO_OP_SLOT_FLT, "size"}, /* size of the grid */
+ {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with */
{0, /* null-terminating sentinel */}},
bmo_create_grid_exec,
0,
@@ -933,11 +940,11 @@ static BMOpDefine bmo_create_grid_def = {
*/
static BMOpDefine bmo_create_uvsphere_def = {
"create_uvsphere",
- {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, //output verts
- {BMO_OP_SLOT_INT, "segments"}, //number of u segments
- {BMO_OP_SLOT_INT, "revolutions"}, //number of v segment
- {BMO_OP_SLOT_FLT, "diameter"}, //diameter
- {BMO_OP_SLOT_MAT, "mat"}, //matrix to multiply the new geometry with--
+ {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */
+ {BMO_OP_SLOT_INT, "segments"}, /* number of u segments */
+ {BMO_OP_SLOT_INT, "revolutions"}, /* number of v segment */
+ {BMO_OP_SLOT_FLT, "diameter"}, /* diameter */
+ {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with-- */
{0, /* null-terminating sentinel */}},
bmo_create_uvsphere_exec,
0,
@@ -950,10 +957,10 @@ static BMOpDefine bmo_create_uvsphere_def = {
*/
static BMOpDefine bmo_create_icosphere_def = {
"create_icosphere",
- {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, //output verts
- {BMO_OP_SLOT_INT, "subdivisions"}, //how many times to recursively subdivide the sphere
- {BMO_OP_SLOT_FLT, "diameter"}, //diameter
- {BMO_OP_SLOT_MAT, "mat"}, //matrix to multiply the new geometry with
+ {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */
+ {BMO_OP_SLOT_INT, "subdivisions"}, /* how many times to recursively subdivide the sphere */
+ {BMO_OP_SLOT_FLT, "diameter"}, /* diameter */
+ {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with */
{0, /* null-terminating sentinel */}},
bmo_create_icosphere_exec,
0,
@@ -966,8 +973,8 @@ static BMOpDefine bmo_create_icosphere_def = {
*/
static BMOpDefine bmo_create_monkey_def = {
"create_monkey",
- {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, //output verts
- {BMO_OP_SLOT_MAT, "mat"}, //matrix to multiply the new geometry with--
+ {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */
+ {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with-- */
{0, /* null-terminating sentinel */}},
bmo_create_monkey_exec,
0,
@@ -980,14 +987,14 @@ static BMOpDefine bmo_create_monkey_def = {
*/
static BMOpDefine bmo_create_cone_def = {
"create_cone",
- {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, //output verts
- {BMO_OP_SLOT_BOOL, "cap_ends"}, //wheter or not to fill in the ends with faces
- {BMO_OP_SLOT_BOOL, "cap_tris"}, //fill ends with triangles instead of ngons
+ {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */
+ {BMO_OP_SLOT_BOOL, "cap_ends"}, /* wheter or not to fill in the ends with faces */
+ {BMO_OP_SLOT_BOOL, "cap_tris"}, /* fill ends with triangles instead of ngons */
{BMO_OP_SLOT_INT, "segments"},
- {BMO_OP_SLOT_FLT, "diameter1"}, //diameter of one end
- {BMO_OP_SLOT_FLT, "diameter2"}, //diameter of the opposite
- {BMO_OP_SLOT_FLT, "depth"}, //distance between ends
- {BMO_OP_SLOT_MAT, "mat"}, //matrix to multiply the new geometry with--
+ {BMO_OP_SLOT_FLT, "diameter1"}, /* diameter of one end */
+ {BMO_OP_SLOT_FLT, "diameter2"}, /* diameter of the opposite */
+ {BMO_OP_SLOT_FLT, "depth"}, /* distance between ends */
+ {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with-- */
{0, /* null-terminating sentinel */}},
bmo_create_cone_exec,
0,
@@ -998,12 +1005,12 @@ static BMOpDefine bmo_create_cone_def = {
*/
static BMOpDefine bmo_create_circle_def = {
"create_circle",
- {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, //output verts
- {BMO_OP_SLOT_BOOL, "cap_ends"}, //wheter or not to fill in the ends with faces
- {BMO_OP_SLOT_BOOL, "cap_tris"}, //fill ends with triangles instead of ngons
+ {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */
+ {BMO_OP_SLOT_BOOL, "cap_ends"}, /* wheter or not to fill in the ends with faces */
+ {BMO_OP_SLOT_BOOL, "cap_tris"}, /* fill ends with triangles instead of ngons */
{BMO_OP_SLOT_INT, "segments"},
- {BMO_OP_SLOT_FLT, "diameter"}, //diameter of one end
- {BMO_OP_SLOT_MAT, "mat"}, //matrix to multiply the new geometry with--
+ {BMO_OP_SLOT_FLT, "diameter"}, /* diameter of one end */
+ {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with-- */
{0, /* null-terminating sentinel */}},
bmo_create_circle_exec,
0,
@@ -1016,9 +1023,9 @@ static BMOpDefine bmo_create_circle_def = {
*/
static BMOpDefine bmo_create_cube_def = {
"create_cube",
- {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, //output verts
- {BMO_OP_SLOT_FLT, "size"}, //size of the cube
- {BMO_OP_SLOT_MAT, "mat"}, //matrix to multiply the new geometry with--
+ {{BMO_OP_SLOT_ELEMENT_BUF, "vertout"}, /* output verts */
+ {BMO_OP_SLOT_FLT, "size"}, /* size of the cube */
+ {BMO_OP_SLOT_MAT, "mat"}, /* matrix to multiply the new geometry with-- */
{0, /* null-terminating sentinel */}},
bmo_create_cube_exec,
0,
diff --git a/source/blender/bmesh/intern/bmesh_operator_api.h b/source/blender/bmesh/intern/bmesh_operator_api.h
index 74087c00940..0674103162c 100644
--- a/source/blender/bmesh/intern/bmesh_operator_api.h
+++ b/source/blender/bmesh/intern/bmesh_operator_api.h
@@ -23,7 +23,7 @@
#ifndef __BMESH_OPERATOR_API_H__
#define __BMESH_OPERATOR_API_H__
-/** \file blender/bmesh/bmesh_operator_api.h
+/** \file blender/bmesh/intern/bmesh_operator_api.h
* \ingroup bmesh
*/
@@ -135,13 +135,19 @@ typedef struct BMOpSlot {
typedef struct BMOperator {
int type;
int slot_type;
- int needflag;
- int flag;
+ int type_flag;
+ int flag; /* runtime options */
struct BMOpSlot slot_args[BMO_OP_MAX_SLOTS];
void (*exec)(BMesh *bm, struct BMOperator *op);
struct MemArena *arena;
} BMOperator;
+enum {
+ BMO_FLAG_RESPECT_HIDE = 1,
+};
+
+#define BMO_FLAG_DEFAULTS BMO_FLAG_RESPECT_HIDE
+
#define MAX_SLOTNAME 32
typedef struct BMOSlotType {
@@ -153,17 +159,13 @@ typedef struct BMOpDefine {
const char *name;
BMOSlotType slot_types[BMO_OP_MAX_SLOTS];
void (*exec)(BMesh *bm, BMOperator *op);
- int flag;
+ int type_flag;
} BMOpDefine;
-/* BMOpDefine->flag */
-#define BMO_OP_FLAG_UNTAN_MULTIRES 1 /*switch from multires tangent space to absolute coordinates*/
-
-/* ensures consistent normals before operator execution,
- * restoring the original ones windings/normals afterwards.
- * keep in mind, this won't work if the input mesh isn't
- * manifold.*/
-#define BMO_OP_FLAG_RATIONALIZE_NORMALS 2
+/* BMOpDefine->type_flag */
+enum {
+ BMO_OP_FLAG_UNTAN_MULTIRES = 1 /*switch from multires tangent space to absolute coordinates*/
+};
/*------------- Operator API --------------*/
@@ -171,7 +173,7 @@ typedef struct BMOpDefine {
* have it set directly. and never use BMO_slot_ptr_set to
* pass in a list of edges or any arrays, really.*/
-void BMO_op_init(BMesh *bm, BMOperator *op, const char *opname);
+void BMO_op_init(BMesh *bm, BMOperator *op, const int flag, const char *opname);
/* executes an operator, pushing and popping a new tool flag
* layer as appropriate.*/
@@ -194,7 +196,7 @@ int BMO_mesh_disabled_flag_count(BMesh *bm, const char htype, const short oflag)
* this system is used to execute or initialize an operator,
* using a formatted-string system.
*
- * for example, BMO_op_callf(bm, "delete geom=%hf context=%i", BM_ELEM_SELECT, DEL_FACES);
+ * for example, BMO_op_callf(bm, BMO_FLAG_DEFAULTS, "delete geom=%hf context=%i", BM_ELEM_SELECT, DEL_FACES);
* . . .will execute the delete operator, feeding in selected faces, deleting them.
*
* the basic format for the format string is:
@@ -231,16 +233,16 @@ void BMO_push(BMesh *bm, BMOperator *op);
void BMO_pop(BMesh *bm);
/*executes an operator*/
-int BMO_op_callf(BMesh *bm, const char *fmt, ...);
+int BMO_op_callf(BMesh *bm, const int flag, const char *fmt, ...);
/* initializes, but doesn't execute an operator. this is so you can
* gain access to the outputs of the operator. note that you have
- * to execute/finitsh (BMO_op_exec and BMO_op_finish) yourself. */
-int BMO_op_initf(BMesh *bm, BMOperator *op, const char *fmt, ...);
+ * to execute/finish (BMO_op_exec and BMO_op_finish) yourself. */
+int BMO_op_initf(BMesh *bm, BMOperator *op, const int flag, const char *fmt, ...);
/* va_list version, used to implement the above two functions,
* plus EDBM_op_callf in editmesh_utils.c. */
-int BMO_op_vinitf(BMesh *bm, BMOperator *op, const char *fmt, va_list vlist);
+int BMO_op_vinitf(BMesh *bm, BMOperator *op, const int flag, const char *fmt, va_list vlist);
/* test whether a named slot exists */
int BMO_slot_exists(BMOperator *op, const char *slot_name);
@@ -287,7 +289,7 @@ void BMO_slot_vec_get(BMOperator *op, const char *slot_name, float r_vec[3]);
/* only supports square mats */
/* size must be 3 or 4; this api is meant only for transformation matrices.
* note that internally the matrix is stored in 4x4 form, and it's safe to
- * call whichever BMO_Get_Mat* function you want. */
+ * call whichever BMO_Get_MatXXX function you want. */
void BMO_slot_mat_set(BMOperator *op, const char *slot_name, const float *mat, int size);
void BMO_slot_mat4_get(BMOperator *op, const char *slot_name, float r_mat[4][4]);
void BMO_slot_mat3_set(BMOperator *op, const char *slot_name, float r_mat[3][3]);
diff --git a/source/blender/bmesh/intern/bmesh_operators.c b/source/blender/bmesh/intern/bmesh_operators.c
index 5447e6b5a55..2100cd2bd0b 100644
--- a/source/blender/bmesh/intern/bmesh_operators.c
+++ b/source/blender/bmesh/intern/bmesh_operators.c
@@ -126,7 +126,7 @@ void BMO_pop(BMesh *bm)
*
* Initializes an operator structure to a certain type
*/
-void BMO_op_init(BMesh *bm, BMOperator *op, const char *opname)
+void BMO_op_init(BMesh *bm, BMOperator *op, const int flag, const char *opname)
{
int i, opcode = bmo_opname_to_opcode(opname);
@@ -142,7 +142,8 @@ void BMO_op_init(BMesh *bm, BMOperator *op, const char *opname)
memset(op, 0, sizeof(BMOperator));
op->type = opcode;
- op->flag = opdefines[opcode]->flag;
+ op->type_flag = opdefines[opcode]->type_flag;
+ op->flag = flag;
/* initialize the operator slot types */
for (i = 0; opdefines[opcode]->slot_types[i].type; i++) {
@@ -173,11 +174,11 @@ void BMO_op_exec(BMesh *bm, BMOperator *op)
BMO_push(bm, op);
if (bm->stackdepth == 2)
- bmesh_edit_begin(bm, op->flag);
+ bmesh_edit_begin(bm, op->type_flag);
op->exec(bm, op);
if (bm->stackdepth == 2)
- bmesh_edit_end(bm, op->flag);
+ bmesh_edit_end(bm, op->type_flag);
BMO_pop(bm);
}
@@ -697,13 +698,14 @@ static void bmo_slot_buffer_from_hflag(BMesh *bm, BMOperator *op, const char *sl
{
BMOpSlot *output = BMO_slot_get(op, slot_name);
int totelement = 0, i = 0;
+ const int respecthide = (op->flag & BMO_FLAG_RESPECT_HIDE) != 0;
BLI_assert(ELEM(test_for_enabled, TRUE, FALSE));
if (test_for_enabled)
- totelement = BM_mesh_elem_hflag_count_enabled(bm, htype, hflag, TRUE);
+ totelement = BM_mesh_elem_hflag_count_enabled(bm, htype, hflag, respecthide);
else
- totelement = BM_mesh_elem_hflag_count_disabled(bm, htype, hflag, TRUE);
+ totelement = BM_mesh_elem_hflag_count_disabled(bm, htype, hflag, respecthide);
if (totelement) {
BMIter iter;
@@ -715,7 +717,7 @@ static void bmo_slot_buffer_from_hflag(BMesh *bm, BMOperator *op, const char *sl
if (htype & BM_VERT) {
BM_ITER_MESH (ele, &iter, bm, BM_VERTS_OF_MESH) {
- if (!BM_elem_flag_test(ele, BM_ELEM_HIDDEN) &&
+ if ((!respecthide || !BM_elem_flag_test(ele, BM_ELEM_HIDDEN)) &&
BM_elem_flag_test_bool(ele, hflag) == test_for_enabled)
{
((BMElem **)output->data.p)[i] = ele;
@@ -726,7 +728,7 @@ static void bmo_slot_buffer_from_hflag(BMesh *bm, BMOperator *op, const char *sl
if (htype & BM_EDGE) {
BM_ITER_MESH (ele, &iter, bm, BM_EDGES_OF_MESH) {
- if (!BM_elem_flag_test(ele, BM_ELEM_HIDDEN) &&
+ if ((!respecthide || !BM_elem_flag_test(ele, BM_ELEM_HIDDEN)) &&
BM_elem_flag_test_bool(ele, hflag) == test_for_enabled)
{
((BMElem **)output->data.p)[i] = ele;
@@ -737,7 +739,7 @@ static void bmo_slot_buffer_from_hflag(BMesh *bm, BMOperator *op, const char *sl
if (htype & BM_FACE) {
BM_ITER_MESH (ele, &iter, bm, BM_FACES_OF_MESH) {
- if (!BM_elem_flag_test(ele, BM_ELEM_HIDDEN) &&
+ if ((!respecthide || !BM_elem_flag_test(ele, BM_ELEM_HIDDEN)) &&
BM_elem_flag_test_bool(ele, hflag) == test_for_enabled)
{
((BMElem **)output->data.p)[i] = ele;
@@ -1251,7 +1253,7 @@ int BMO_error_occurred(BMesh *bm)
return bm->errorstack.first != NULL;
}
-/* returns error code or 0 if no erro */
+/* returns error code or 0 if no error */
int BMO_error_get(BMesh *bm, const char **msg, BMOperator **op)
{
BMOpError *err = bm->errorstack.first;
@@ -1320,7 +1322,7 @@ static int bmo_opname_to_opcode(const char *opname)
}
/* Example:
- * BMO_op_callf(bm, "delete %i %hv", DEL_ONLYFACES, BM_ELEM_SELECT);
+ * BMO_op_callf(bm, BMO_FLAG_DEFAULTS, "delete %i %hv", DEL_ONLYFACES, BM_ELEM_SELECT);
*
* i - int
* b - boolean (same as int but 1/0 only)
@@ -1336,7 +1338,7 @@ static int bmo_opname_to_opcode(const char *opname)
* Hv, He, Hf, Fv, Fe, Ff,
*/
-int BMO_op_vinitf(BMesh *bm, BMOperator *op, const char *_fmt, va_list vlist)
+int BMO_op_vinitf(BMesh *bm, BMOperator *op, const int flag, const char *_fmt, va_list vlist)
{
BMOpDefine *def;
char *opname, *ofmt, *fmt;
@@ -1376,7 +1378,7 @@ int BMO_op_vinitf(BMesh *bm, BMOperator *op, const char *_fmt, va_list vlist)
return FALSE;
}
- BMO_op_init(bm, op, opname);
+ BMO_op_init(bm, op, flag, opname);
def = opdefines[i];
i = 0;
@@ -1415,7 +1417,8 @@ int BMO_op_vinitf(BMesh *bm, BMOperator *op, const char *_fmt, va_list vlist)
case '=':
case '%':
break;
- case 'm': {
+ case 'm':
+ {
int size, c;
c = NEXT_CHAR(fmt);
@@ -1429,12 +1432,14 @@ int BMO_op_vinitf(BMesh *bm, BMOperator *op, const char *_fmt, va_list vlist)
state = 1;
break;
}
- case 'v': {
+ case 'v':
+ {
BMO_slot_vec_set(op, slot_name, va_arg(vlist, float *));
state = 1;
break;
}
- case 'e': {
+ case 'e':
+ {
BMHeader *ele = va_arg(vlist, void *);
BMOpSlot *slot = BMO_slot_get(op, slot_name);
@@ -1445,7 +1450,8 @@ int BMO_op_vinitf(BMesh *bm, BMOperator *op, const char *_fmt, va_list vlist)
state = 1;
break;
}
- case 's': {
+ case 's':
+ {
BMOperator *op2 = va_arg(vlist, void *);
const char *slot_name2 = va_arg(vlist, char *);
@@ -1556,12 +1562,12 @@ error:
}
-int BMO_op_initf(BMesh *bm, BMOperator *op, const char *fmt, ...)
+int BMO_op_initf(BMesh *bm, BMOperator *op, const int flag, const char *fmt, ...)
{
va_list list;
va_start(list, fmt);
- if (!BMO_op_vinitf(bm, op, fmt, list)) {
+ if (!BMO_op_vinitf(bm, op, flag, fmt, list)) {
printf("%s: failed\n", __func__);
va_end(list);
return FALSE;
@@ -1571,13 +1577,13 @@ int BMO_op_initf(BMesh *bm, BMOperator *op, const char *fmt, ...)
return TRUE;
}
-int BMO_op_callf(BMesh *bm, const char *fmt, ...)
+int BMO_op_callf(BMesh *bm, const int flag, const char *fmt, ...)
{
va_list list;
BMOperator op;
va_start(list, fmt);
- if (!BMO_op_vinitf(bm, &op, fmt, list)) {
+ if (!BMO_op_vinitf(bm, &op, flag, fmt, list)) {
printf("%s: failed, format is:\n \"%s\"\n", __func__, fmt);
va_end(list);
return FALSE;
diff --git a/source/blender/bmesh/intern/bmesh_polygon.c b/source/blender/bmesh/intern/bmesh_polygon.c
index 094b5af9a00..eb2b7721bdc 100644
--- a/source/blender/bmesh/intern/bmesh_polygon.c
+++ b/source/blender/bmesh/intern/bmesh_polygon.c
@@ -285,7 +285,7 @@ void calc_poly_plane(float (*verts)[3], const int nverts)
* the list that bridges a concave region of the face or intersects
* any of the faces's edges.
*/
-static void shrink_edgef(float v1[3], float v2[3], const float fac)
+static void scale_edge_v3f(float v1[3], float v2[3], const float fac)
{
float mid[3];
@@ -320,7 +320,14 @@ void poly_rotate_plane(const float normal[3], float (*verts)[3], const int nvert
angle = saacos(dot_v3v3(normal, up));
- if (angle == 0.0) return;
+ if (angle < FLT_EPSILON)
+ return;
+
+ if (len_v3(axis) < FLT_EPSILON) {
+ axis[0] = 0.0f;
+ axis[1] = 1.0f;
+ axis[2] = 0.0f;
+ }
axis_angle_to_quat(q, axis, (float)angle);
quat_to_mat3(mat, q);
@@ -495,13 +502,13 @@ void BM_face_normal_flip(BMesh *bm, BMFace *f)
/* detects if two line segments cross each other (intersects).
* note, there could be more winding cases then there needs to be. */
-static int linecrossesf(const float v1[2], const float v2[2], const float v3[2], const float v4[2])
+static int line_crosses_v2f(const float v1[2], const float v2[2], const float v3[2], const float v4[2])
{
#define GETMIN2_AXIS(a, b, ma, mb, axis) \
{ \
- ma[axis] = MIN2(a[axis], b[axis]); \
- mb[axis] = MAX2(a[axis], b[axis]); \
+ ma[axis] = minf(a[axis], b[axis]); \
+ mb[axis] = maxf(a[axis], b[axis]); \
} (void)0
#define GETMIN2(a, b, ma, mb) \
@@ -531,17 +538,17 @@ static int linecrossesf(const float v1[2], const float v2[2], const float v3[2],
/* do an interval test on the x and y axes */
/* first do x axis */
- if (ABS(v1[1] - v2[1]) < EPS &&
- ABS(v3[1] - v4[1]) < EPS &&
- ABS(v1[1] - v3[1]) < EPS)
+ if (fabsf(v1[1] - v2[1]) < EPS &&
+ fabsf(v3[1] - v4[1]) < EPS &&
+ fabsf(v1[1] - v3[1]) < EPS)
{
return (mv4[0] >= mv1[0] && mv3[0] <= mv2[0]);
}
/* now do y axis */
- if (ABS(v1[0] - v2[0]) < EPS &&
- ABS(v3[0] - v4[0]) < EPS &&
- ABS(v1[0] - v3[0]) < EPS)
+ if (fabsf(v1[0] - v2[0]) < EPS &&
+ fabsf(v3[0] - v4[0]) < EPS &&
+ fabsf(v1[0] - v3[0]) < EPS)
{
return (mv4[1] >= mv1[1] && mv3[1] <= mv2[1]);
}
@@ -599,51 +606,53 @@ int BM_face_point_inside_test(BMFace *f, const float co[3])
do {
float v1[2], v2[2];
- v1[0] = (l_iter->prev->v->co[ax] - cent[ax]) * onepluseps + cent[ax];
- v1[1] = (l_iter->prev->v->co[ay] - cent[ay]) * onepluseps + cent[ay];
+ v1[0] = (l_iter->prev->v->co[ax] - cent[0]) * onepluseps + cent[0];
+ v1[1] = (l_iter->prev->v->co[ay] - cent[1]) * onepluseps + cent[1];
- v2[0] = (l_iter->v->co[ax] - cent[ax]) * onepluseps + cent[ax];
- v2[1] = (l_iter->v->co[ay] - cent[ay]) * onepluseps + cent[ay];
+ v2[0] = (l_iter->v->co[ax] - cent[0]) * onepluseps + cent[0];
+ v2[1] = (l_iter->v->co[ay] - cent[1]) * onepluseps + cent[1];
- crosses += linecrossesf(v1, v2, co2, out) != 0;
+ crosses += line_crosses_v2f(v1, v2, co2, out) != 0;
} while ((l_iter = l_iter->next) != l_first);
return crosses % 2 != 0;
}
-static int bm_face_goodline(float const (*projectverts)[3], BMFace *f,
- int v1i, int v2i, int v3i,
- int UNUSED(nvert))
+static int bm_face_goodline(float const (*projectverts)[3], BMFace *f, int v1i, int v2i, int v3i)
{
BMLoop *l_iter;
BMLoop *l_first;
- float v1[3], v2[3], v3[3], pv1[3], pv2[3];
+ float v1[3], v2[3], v3[3], pv1[3];
int i;
copy_v3_v3(v1, projectverts[v1i]);
copy_v3_v3(v2, projectverts[v2i]);
copy_v3_v3(v3, projectverts[v3i]);
-
+
+ /* v3 must be on the left side of [v1, v2] line, else we know [v1, v3] is outside of f! */
if (testedgesidef(v1, v2, v3)) {
return FALSE;
}
- //for (i = 0; i < nvert; i++) {
l_iter = l_first = BM_FACE_FIRST_LOOP(f);
do {
i = BM_elem_index_get(l_iter->v);
- if (i == v1i || i == v2i || i == v3i) {
+ copy_v3_v3(pv1, projectverts[i]);
+
+ if (ELEM3(i, v1i, v2i, v3i)) {
+#if 0
+ printf("%d in (%d, %d, %d) tri (from indices!), continuing\n", i, v1i, v2i, v3i);
+#endif
continue;
}
-
- copy_v3_v3(pv1, projectverts[BM_elem_index_get(l_iter->v)]);
- copy_v3_v3(pv2, projectverts[BM_elem_index_get(l_iter->next->v)]);
-
- //if (linecrossesf(pv1, pv2, v1, v3)) return FALSE;
- if (isect_point_tri_v2(pv1, v1, v2, v3) ||
- isect_point_tri_v2(pv2, v3, v2, v1))
- {
+ if (isect_point_tri_v2(pv1, v1, v2, v3) || isect_point_tri_v2(pv1, v3, v2, v1)) {
+#if 0
+ if (isect_point_tri_v2(pv1, v1, v2, v3))
+ printf("%d in (%d, %d, %d)\n", v3i, i, v1i, v2i);
+ else
+ printf("%d in (%d, %d, %d)\n", v1i, i, v3i, v2i);
+#endif
return FALSE;
}
} while ((l_iter = l_iter->next) != l_first);
@@ -653,15 +662,14 @@ static int bm_face_goodline(float const (*projectverts)[3], BMFace *f,
/**
* \brief Find Ear
*
- * Used by tessellator to find
- * the next triangle to 'clip off'
- * of a polygon while tessellating.
- *
+ * Used by tessellator to find the next triangle to 'clip off' of a polygon while tessellating.
+ * \param f The face to search.
+ * \param verts an array of face vert coords.
* \param use_beauty Currently only applies to quads, can be extended later on.
* \param abscoss Must be allocated by caller, and at least f->len length
* (allow to avoid allocating a new one for each tri!).
*/
-static BMLoop *find_ear(BMFace *f, float (*verts)[3], const int nvert, const int use_beauty, float *abscoss)
+static BMLoop *find_ear(BMFace *f, float (*verts)[3], const int use_beauty, float *abscoss)
{
BMLoop *bestear = NULL;
@@ -704,10 +712,10 @@ static BMLoop *find_ear(BMFace *f, float (*verts)[3], const int nvert, const int
}
}
/* Last check we do not get overlapping triangles
- * (as much as possible, ther are some cases with no good solution!) */
+ * (as much as possible, there are some cases with no good solution!) */
i4 = (i + 3) % 4;
- if (!bm_face_goodline((float const (*)[3])verts, f, BM_elem_index_get(larr[i4]->v), BM_elem_index_get(larr[i]->v),
- BM_elem_index_get(larr[i + 1]->v), nvert))
+ if (!bm_face_goodline((float const (*)[3])verts, f, BM_elem_index_get(larr[i4]->v),
+ BM_elem_index_get(larr[i]->v), BM_elem_index_get(larr[i + 1]->v)))
{
i = !i;
}
@@ -750,10 +758,13 @@ static BMLoop *find_ear(BMFace *f, float (*verts)[3], const int nvert, const int
if (BM_edge_exists(v1, v3)) {
isear = FALSE;
}
- else if (!bm_face_goodline((float const (*)[3])verts, f,
- BM_elem_index_get(v1), BM_elem_index_get(v2), BM_elem_index_get(v3),
- nvert))
+ else if (!bm_face_goodline((float const (*)[3])verts, f, BM_elem_index_get(v1),
+ BM_elem_index_get(v2), BM_elem_index_get(v3)))
{
+#if 0
+ printf("(%d, %d, %d) would not be a valid tri!\n",
+ BM_elem_index_get(v1), BM_elem_index_get(v2), BM_elem_index_get(v3));
+#endif
isear = FALSE;
}
@@ -836,9 +847,8 @@ static BMLoop *find_ear(BMFace *f, float (*verts)[3], const int nvert, const int
*
* \note newedgeflag sets a flag layer flag, obviously not the header flag.
*/
-void BM_face_triangulate(BMesh *bm, BMFace *f, float (*projectverts)[3],
- const short newedge_oflag, const short newface_oflag, BMFace **newfaces,
- const short use_beauty)
+void BM_face_triangulate(BMesh *bm, BMFace *f, float (*projectverts)[3], const short newedge_oflag,
+ const short newface_oflag, BMFace **newfaces, const short use_beauty)
{
int i, done, nvert, nf_i = 0;
BMLoop *newl;
@@ -847,7 +857,7 @@ void BM_face_triangulate(BMesh *bm, BMFace *f, float (*projectverts)[3],
float *abscoss = NULL;
BLI_array_fixedstack_declare(abscoss, 16, f->len, "BM_face_triangulate: temp absolute cosines of face corners");
- /* copy vertex coordinates to vertspace arra */
+ /* copy vertex coordinates to vertspace area */
i = 0;
l_iter = l_first = BM_FACE_FIRST_LOOP(f);
do {
@@ -873,13 +883,11 @@ void BM_face_triangulate(BMesh *bm, BMFace *f, float (*projectverts)[3],
done = FALSE;
while (!done && f->len > 3) {
done = TRUE;
- l_iter = find_ear(f, projectverts, nvert, use_beauty, abscoss);
+ l_iter = find_ear(f, projectverts, use_beauty, abscoss);
if (l_iter) {
done = FALSE;
/* printf("Subdividing face...\n");*/
- f = BM_face_split(bm, l_iter->f, l_iter->prev->v,
- l_iter->next->v,
- &newl, NULL, TRUE);
+ f = BM_face_split(bm, l_iter->f, l_iter->prev->v, l_iter->next->v, &newl, NULL, TRUE);
if (UNLIKELY(!f)) {
fprintf(stderr, "%s: triangulator failed to split face! (bmesh internal error)\n", __func__);
@@ -890,7 +898,8 @@ void BM_face_triangulate(BMesh *bm, BMFace *f, float (*projectverts)[3],
BMO_elem_flag_enable(bm, newl->e, newedge_oflag);
BMO_elem_flag_enable(bm, f, newface_oflag);
- if (newfaces) newfaces[nf_i++] = f;
+ if (newfaces)
+ newfaces[nf_i++] = f;
#if 0
l = f->loopbase;
@@ -933,7 +942,8 @@ void BM_face_triangulate(BMesh *bm, BMFace *f, float (*projectverts)[3],
BLI_array_fixedstack_free(abscoss);
/* NULL-terminate */
- if (newfaces) newfaces[nf_i] = NULL;
+ if (newfaces)
+ newfaces[nf_i] = NULL;
}
/**
@@ -949,7 +959,7 @@ void BM_face_legal_splits(BMesh *bm, BMFace *f, BMLoop *(*loops)[2], int len)
BMIter iter;
BMLoop *l;
float v1[3], v2[3], v3[3] /*, v4[3 */, no[3], mid[3], *p1, *p2, *p3, *p4;
- float out[3] = {-234324.0f, -234324.0f, 0.0f};
+ float out[3] = {-FLT_MAX, -FLT_MAX, 0.0f};
float (*projverts)[3];
float (*edgeverts)[3];
float fac1 = 1.0000001f, fac2 = 0.9f; //9999f; //0.999f;
@@ -970,7 +980,7 @@ void BM_face_legal_splits(BMesh *bm, BMFace *f, BMLoop *(*loops)[2], int len)
copy_v3_v3(v1, loops[i][0]->v->co);
copy_v3_v3(v2, loops[i][1]->v->co);
- shrink_edgef(v1, v2, fac2);
+ scale_edge_v3f(v1, v2, fac2);
copy_v3_v3(edgeverts[a], v1);
a++;
@@ -984,14 +994,16 @@ void BM_face_legal_splits(BMesh *bm, BMFace *f, BMLoop *(*loops)[2], int len)
for (i = 0, l = BM_FACE_FIRST_LOOP(f); i < f->len; i++, l = l->next) {
p1 = projverts[i];
- out[0] = MAX2(out[0], p1[0]) + 0.01f;
- out[1] = MAX2(out[1], p1[1]) + 0.01f;
- out[2] = 0.0f;
- p1[2] = 0.0f;
+ out[0] = maxf(out[0], p1[0]);
+ out[1] = maxf(out[1], p1[1]);
+ /* out[2] = 0.0f; */ /* keep at zero */
- //copy_v3_v3(l->v->co, p1);
+ p1[2] = 0.0f;
}
+ /* ensure we are well outside the face bounds (value is arbitrary) */
+ add_v2_fl(out, 1.0f);
+
for (i = 0; i < len; i++) {
edgeverts[i * 2][2] = 0.0f;
edgeverts[i * 2 + 1][2] = 0.0f;
@@ -1009,19 +1021,26 @@ void BM_face_legal_splits(BMesh *bm, BMFace *f, BMLoop *(*loops)[2], int len)
p1 = projverts[j];
p2 = projverts[(j + 1) % f->len];
+#if 0
copy_v3_v3(v1, p1);
copy_v3_v3(v2, p2);
- shrink_edgef(v1, v2, fac1);
-
- if (linecrossesf(p1, p2, mid, out)) clen++;
+ scale_edge_v3f(v1, v2, fac1);
+ if (line_crosses_v2f(v1, v2, mid, out)) {
+ clen++;
+ }
+#else
+ if (line_crosses_v2f(p1, p2, mid, out)) {
+ clen++;
+ }
+#endif
}
-
+
if (clen % 2 == 0) {
loops[i][0] = NULL;
}
}
-
+
/* do line crossing test */
for (i = 0; i < f->len; i++) {
p1 = projverts[i];
@@ -1030,7 +1049,7 @@ void BM_face_legal_splits(BMesh *bm, BMFace *f, BMLoop *(*loops)[2], int len)
copy_v3_v3(v1, p1);
copy_v3_v3(v2, p2);
- shrink_edgef(v1, v2, fac1);
+ scale_edge_v3f(v1, v2, fac1);
for (j = 0; j < len; j++) {
if (!loops[j][0]) {
@@ -1040,7 +1059,7 @@ void BM_face_legal_splits(BMesh *bm, BMFace *f, BMLoop *(*loops)[2], int len)
p3 = edgeverts[j * 2];
p4 = edgeverts[j * 2 + 1];
- if (linecrossesf(v1, v2, p3, p4)) {
+ if (line_crosses_v2f(v1, v2, p3, p4)) {
loops[j][0] = NULL;
}
}
@@ -1057,9 +1076,9 @@ void BM_face_legal_splits(BMesh *bm, BMFace *f, BMLoop *(*loops)[2], int len)
copy_v3_v3(v1, p1);
copy_v3_v3(v2, p2);
- shrink_edgef(v1, v2, fac1);
+ scale_edge_v3f(v1, v2, fac1);
- if (linecrossesf(v1, v2, p3, p4)) {
+ if (line_crosses_v2f(v1, v2, p3, p4)) {
loops[i][0] = NULL;
}
}
diff --git a/source/blender/bmesh/intern/bmesh_private.h b/source/blender/bmesh/intern/bmesh_private.h
index 0827901f5c2..b3fe3676ab8 100644
--- a/source/blender/bmesh/intern/bmesh_private.h
+++ b/source/blender/bmesh/intern/bmesh_private.h
@@ -37,21 +37,21 @@
*/
/* returns positive nonzero on error */
-int bmesh_elem_check(void *element, const char htype);
-#define BM_CHECK_ELEMENT(el) \
+#ifdef NDEBUG
+ /* no error checking for release,
+ * it can take most of the CPU time when running some tools */
+# define BM_CHECK_ELEMENT(el) (void)(el)
+#else
+int bmesh_elem_check(void *element, const char htype);
+# define BM_CHECK_ELEMENT(el) \
if (bmesh_elem_check(el, ((BMHeader *)el)->htype)) { \
printf("check_element failure, with code %i on line %i in file\n" \
" \"%s\"\n\n", \
- bmesh_elem_check(el, ((BMHeader *)el)->htype), \
+ bmesh_elem_check(el, ((BMHeader *)el)->htype), \
__LINE__, __FILE__); \
- }
-
-#define BM_DISK_EDGE_LINK_GET(e, v) ( \
- ((v) == ((BMEdge *)(e))->v1) ? \
- &((e)->v1_disk_link) : \
- &((e)->v2_disk_link) \
- )
+ } (void)0
+#endif
int bmesh_radial_length(BMLoop *l);
int bmesh_disk_count(BMVert *v);
diff --git a/source/blender/bmesh/intern/bmesh_queries.c b/source/blender/bmesh/intern/bmesh_queries.c
index b6a56e64dcf..d850eb34477 100644
--- a/source/blender/bmesh/intern/bmesh_queries.c
+++ b/source/blender/bmesh/intern/bmesh_queries.c
@@ -54,7 +54,7 @@ int BM_vert_in_edge(BMEdge *e, BMVert *v)
* \brief Other Loop in Face Sharing an Edge
*
* Finds the other loop that shares \a v with \a e loop in \a f.
- *
+ * <pre>
* +----------+
* | |
* | f |
@@ -64,7 +64,7 @@ int BM_vert_in_edge(BMEdge *e, BMVert *v)
* ^ ^ <------- These vert args define direction
* in the face to check.
* The faces loop direction is ignored.
- *
+ * </pre>
*/
BMLoop *BM_face_other_edge_loop(BMFace *f, BMEdge *e, BMVert *v)
{
@@ -92,8 +92,7 @@ BMLoop *BM_face_other_edge_loop(BMFace *f, BMEdge *e, BMVert *v)
* This function returns a loop in \a f that shares an edge with \a v
* The direction is defined by \a v_prev, where the return value is
* the loop of what would be 'v_next'
- *
- *
+ * <pre>
* +----------+ <-- return the face loop of this vertex.
* | |
* | f |
@@ -103,6 +102,7 @@ BMLoop *BM_face_other_edge_loop(BMFace *f, BMEdge *e, BMVert *v)
* ^^^^^^ ^ <-- These vert args define direction
* in the face to check.
* The faces loop direction is ignored.
+ * </pre>
*
* \note \a v_prev and \a v _implicitly_ define an edge.
*/
@@ -143,7 +143,7 @@ BMLoop *BM_face_other_vert_loop(BMFace *f, BMVert *v_prev, BMVert *v)
* \brief Other Loop in Face Sharing a Vert
*
* Finds the other loop that shares \a v with \a e loop in \a f.
- *
+ * <pre>
* +----------+ <-- return the face loop of this vertex.
* | |
* | |
@@ -153,6 +153,7 @@ BMLoop *BM_face_other_vert_loop(BMFace *f, BMVert *v_prev, BMVert *v)
* ^ <------- This loop defines both the face to search
* and the edge, in combination with 'v'
* The faces loop direction is ignored.
+ * </pre>
*/
BMLoop *BM_loop_other_vert_loop(BMLoop *l, BMVert *v)
@@ -193,22 +194,24 @@ BMLoop *BM_loop_other_vert_loop(BMLoop *l, BMVert *v)
* Get the first loop of a vert. Uses the same initialization code for the first loop of the
* iterator API
*/
-
BMLoop *BM_vert_find_first_loop(BMVert *v)
{
BMEdge *e;
- if(!v || !v->e)
+ if (!v || !v->e)
return NULL;
e = bmesh_disk_faceedge_find_first(v->e, v);
+
+ if (!e)
+ return NULL;
+
return bmesh_radial_faceloop_find_first(e->l, v);
}
/**
* Returns TRUE if the vertex is used in a given face.
*/
-
int BM_vert_in_face(BMFace *f, BMVert *v)
{
BMLoop *l_iter, *l_first;
@@ -467,31 +470,12 @@ int BM_edge_face_count(BMEdge *e)
}
/**
- * Returns the number of faces around this vert
+ * Returns the number of faces around this vert
+ * length matches #BM_LOOPS_OF_VERT iterator
*/
int BM_vert_face_count(BMVert *v)
{
- int count = 0;
- BMLoop *l;
- BMIter iter;
-
- BM_ITER_ELEM (l, &iter, v, BM_LOOPS_OF_VERT) {
- count++;
- }
-
- return count;
-#if 0 //this code isn't working
- BMEdge *curedge = NULL;
-
- if (v->e) {
- curedge = v->e;
- do {
- if (curedge->l) count += BM_edge_face_count(curedge);
- curedge = bmesh_disk_edge_next(curedge, v);
- } while (curedge != v->e);
- }
- return count;
-#endif
+ return bmesh_disk_facevert_count(v);
}
/**
@@ -500,22 +484,21 @@ int BM_vert_face_count(BMVert *v)
*/
int BM_vert_is_wire(BMVert *v)
{
- BMEdge *curedge;
+ if (v->e) {
+ BMEdge *e_first, *e_iter;
- if (v->e == NULL) {
+ e_first = e_iter = v->e;
+ do {
+ if (e_iter->l) {
+ return FALSE;
+ }
+ } while ((e_iter = bmesh_disk_edge_next(e_iter, v)) != e_first);
+
+ return TRUE;
+ }
+ else {
return FALSE;
}
-
- curedge = v->e;
- do {
- if (curedge->l) {
- return FALSE;
- }
-
- curedge = bmesh_disk_edge_next(curedge, v);
- } while (curedge != v->e);
-
- return TRUE;
}
/**
@@ -714,7 +697,7 @@ BMVert *BM_edge_share_vert(BMEdge *e1, BMEdge *e2)
*
* Finds the loop used which uses \a v in face loop \a l
*
- * \note currenly this just uses simple loop in future may be speeded up
+ * \note currently this just uses simple loop in future may be sped up
* using radial vars
*/
BMLoop *BM_face_vert_share_loop(BMFace *f, BMVert *v)
@@ -737,7 +720,7 @@ BMLoop *BM_face_vert_share_loop(BMFace *f, BMVert *v)
*
* Finds the loop used which uses \a e in face loop \a l
*
- * \note currenly this just uses simple loop in future may be speeded up
+ * \note currently this just uses simple loop in future may be sped up
* using radial vars
*/
BMLoop *BM_face_edge_share_loop(BMFace *f, BMEdge *e)
@@ -796,9 +779,8 @@ float BM_loop_calc_face_angle(BMLoop *l)
/**
* \brief BM_loop_calc_face_normal
*
- * Calculate the normal at this loop corner or fallback to the face normal on straignt lines.
+ * Calculate the normal at this loop corner or fallback to the face normal on straight lines.
*
- * \param bm The BMesh
* \param l The loop to calculate the normal at
* \param r_normal Resulting normal
*/
@@ -819,10 +801,9 @@ void BM_loop_calc_face_normal(BMLoop *l, float r_normal[3])
/**
* \brief BM_loop_calc_face_tangent
*
- * Calculate the tangent at this loop corner or fallback to the face normal on straignt lines.
+ * Calculate the tangent at this loop corner or fallback to the face normal on straight lines.
* This vector always points inward into the face.
*
- * \param bm The BMesh
* \param l The loop to calculate the tangent at
* \param r_tangent Resulting tangent
*/
@@ -875,13 +856,14 @@ float BM_edge_calc_face_angle(BMEdge *e)
/**
* \brief BMESH EDGE/FACE TANGENT
*
- * Calculate the tangent at this loop corner or fallback to the face normal on straignt lines.
+ * Calculate the tangent at this loop corner or fallback to the face normal on straight lines.
* This vector always points inward into the face.
*
* \brief BM_edge_calc_face_tangent
* \param e
* \param e_loop The loop to calculate the tangent at,
* used to get the face and winding direction.
+ * \param r_tangent The loop corner tangent to set
*/
void BM_edge_calc_face_tangent(BMEdge *e, BMLoop *e_loop, float r_tangent[3])
diff --git a/source/blender/bmesh/intern/bmesh_structure.c b/source/blender/bmesh/intern/bmesh_structure.c
index 7fcd6f39fb8..b58e61a3066 100644
--- a/source/blender/bmesh/intern/bmesh_structure.c
+++ b/source/blender/bmesh/intern/bmesh_structure.c
@@ -153,10 +153,22 @@ int bmesh_edge_swapverts(BMEdge *e, BMVert *orig, BMVert *newv)
* advantage is that no intrinsic properties of the data structures are dependent upon the
* cycle order and all non-manifold conditions are represented trivially.
*/
+
+BLI_INLINE BMDiskLink *bmesh_disk_edge_link_from_vert(BMEdge *e, BMVert *v)
+{
+ if (v == e->v1) {
+ return &e->v1_disk_link;
+ }
+ else {
+ BLI_assert(v == e->v2);
+ return &e->v2_disk_link;
+ }
+}
+
int bmesh_disk_edge_append(BMEdge *e, BMVert *v)
{
if (!v->e) {
- BMDiskLink *dl1 = BM_DISK_EDGE_LINK_GET(e, v);
+ BMDiskLink *dl1 = bmesh_disk_edge_link_from_vert(e, v);
v->e = e;
dl1->next = dl1->prev = e;
@@ -164,9 +176,9 @@ int bmesh_disk_edge_append(BMEdge *e, BMVert *v)
else {
BMDiskLink *dl1, *dl2, *dl3;
- dl1 = BM_DISK_EDGE_LINK_GET(e, v);
- dl2 = BM_DISK_EDGE_LINK_GET(v->e, v);
- dl3 = dl2->prev ? BM_DISK_EDGE_LINK_GET(dl2->prev, v) : NULL;
+ dl1 = bmesh_disk_edge_link_from_vert(e, v);
+ dl2 = bmesh_disk_edge_link_from_vert(v->e, v);
+ dl3 = dl2->prev ? bmesh_disk_edge_link_from_vert(dl2->prev, v) : NULL;
dl1->next = v->e;
dl1->prev = dl2->prev;
@@ -183,14 +195,14 @@ void bmesh_disk_edge_remove(BMEdge *e, BMVert *v)
{
BMDiskLink *dl1, *dl2;
- dl1 = BM_DISK_EDGE_LINK_GET(e, v);
+ dl1 = bmesh_disk_edge_link_from_vert(e, v);
if (dl1->prev) {
- dl2 = BM_DISK_EDGE_LINK_GET(dl1->prev, v);
+ dl2 = bmesh_disk_edge_link_from_vert(dl1->prev, v);
dl2->next = dl1->next;
}
if (dl1->next) {
- dl2 = BM_DISK_EDGE_LINK_GET(dl1->next, v);
+ dl2 = bmesh_disk_edge_link_from_vert(dl1->next, v);
dl2->prev = dl1->prev;
}
@@ -203,9 +215,9 @@ void bmesh_disk_edge_remove(BMEdge *e, BMVert *v)
/**
* \brief Next Disk Edge
*
- * Find the next edge in a disk cycle
+ * Find the next edge in a disk cycle
*
- * \return Pointer to the next edge in the disk cycle for the vertex v.
+ * \return Pointer to the next edge in the disk cycle for the vertex v.
*/
BMEdge *bmesh_disk_edge_next(BMEdge *e, BMVert *v)
{
diff --git a/source/blender/bmesh/intern/bmesh_structure.h b/source/blender/bmesh/intern/bmesh_structure.h
index 8b43f72c725..b19df4660b8 100644
--- a/source/blender/bmesh/intern/bmesh_structure.h
+++ b/source/blender/bmesh/intern/bmesh_structure.h
@@ -34,7 +34,7 @@
* The lowest level of functionality for manipulating bmesh structures.
* None of these functions should ever be exported to the rest of Blender.
*
- * in the vast majority of cases thes should not be used directly.
+ * in the vast majority of cases there shouldn't be used directly.
* if absolutely necessary, see function definitions in code for
* descriptive comments. but seriously, don't use this stuff.
*/
diff --git a/source/blender/bmesh/intern/bmesh_walkers_impl.c b/source/blender/bmesh/intern/bmesh_walkers_impl.c
index a72bfe47127..225ea6c2ef6 100644
--- a/source/blender/bmesh/intern/bmesh_walkers_impl.c
+++ b/source/blender/bmesh/intern/bmesh_walkers_impl.c
@@ -499,7 +499,7 @@ static void *bmw_LoopWalker_step(BMWalker *walker)
BMEdge *e = lwalk->cur, *nexte = NULL;
BMLoop *l;
BMVert *v;
- int i;
+ int i = 0;
owalk = *lwalk;
BMW_state_remove(walker);
@@ -534,7 +534,7 @@ static void *bmw_LoopWalker_step(BMWalker *walker)
}
else if (l) { /* NORMAL EDGE WITH FACES */
int vert_edge_tot;
- int stopi;
+ int stopi = 0;
v = BM_edge_other_vert(e, lwalk->lastv);
diff --git a/source/blender/bmesh/operators/bmo_bevel.c b/source/blender/bmesh/operators/bmo_bevel.c
index 0b036c6ff2b..10a9d511c77 100644
--- a/source/blender/bmesh/operators/bmo_bevel.c
+++ b/source/blender/bmesh/operators/bmo_bevel.c
@@ -106,7 +106,7 @@ static void calc_corner_co(BMLoop *l, const float fac, float r_co[3],
normalize_v3(l_vec_next);
add_v3_v3v3(co_ofs, l_vec_prev, l_vec_next);
- if (UNLIKELY(normalize_v3(co_ofs) == 0.0f)) { /* edges form a straignt line */
+ if (UNLIKELY(normalize_v3(co_ofs) == 0.0f)) { /* edges form a straight line */
cross_v3_v3v3(co_ofs, l_vec_prev, l->f->no);
}
@@ -475,7 +475,7 @@ void bmo_bevel_exec(BMesh *bm, BMOperator *op)
BLI_array_append(edges, e);
f = BM_face_create_ngon(bm, verts[0], verts[1], edges, BLI_array_count(edges), FALSE);
- if (!f) {
+ if (UNLIKELY(f == NULL)) {
printf("%s: could not make face!\n", __func__);
continue;
}
@@ -592,7 +592,7 @@ void bmo_bevel_exec(BMesh *bm, BMOperator *op)
*d3 = (d1 + d2) * 0.5f;
}
- if (!f) {
+ if (UNLIKELY(f == NULL)) {
fprintf(stderr, "%s: face index out of range! (bmesh internal error)\n", __func__);
continue;
}
@@ -771,7 +771,7 @@ void bmo_bevel_exec(BMesh *bm, BMOperator *op)
continue;
f = BM_face_create_ngon(bm, lastv, vstart, edges, BLI_array_count(edges), FALSE);
- if (!f) {
+ if (UNLIKELY(f == NULL)) {
fprintf(stderr, "%s: in bevel vert fill! (bmesh internal error)\n", __func__);
}
else {
@@ -865,7 +865,7 @@ void bmo_bevel_exec(BMesh *bm, BMOperator *op)
}
#endif
- BMO_op_callf(bm, "delete geom=%fv context=%i", BEVEL_DEL, DEL_VERTS);
+ BMO_op_callf(bm, op->flag, "delete geom=%fv context=%i", BEVEL_DEL, DEL_VERTS);
/* clean up any edges that might not get properly delete */
BM_ITER_MESH (e, &iter, bm, BM_EDGES_OF_MESH) {
@@ -873,8 +873,8 @@ void bmo_bevel_exec(BMesh *bm, BMOperator *op)
BMO_elem_flag_enable(bm, e, BEVEL_DEL);
}
- BMO_op_callf(bm, "delete geom=%fe context=%i", BEVEL_DEL, DEL_EDGES);
- BMO_op_callf(bm, "delete geom=%ff context=%i", BEVEL_DEL, DEL_FACES);
+ BMO_op_callf(bm, op->flag, "delete geom=%fe context=%i", BEVEL_DEL, DEL_EDGES);
+ BMO_op_callf(bm, op->flag, "delete geom=%ff context=%i", BEVEL_DEL, DEL_FACES);
BLI_smallhash_release(&hash);
BLI_array_free(tags);
diff --git a/source/blender/bmesh/operators/bmo_connect.c b/source/blender/bmesh/operators/bmo_connect.c
index 7418be3565c..fde475c2d6a 100644
--- a/source/blender/bmesh/operators/bmo_connect.c
+++ b/source/blender/bmesh/operators/bmo_connect.c
@@ -39,23 +39,24 @@
#define FACE_NEW 2
#define EDGE_MARK 4
#define EDGE_DONE 8
+#define FACE_OUT 16
void bmo_connect_verts_exec(BMesh *bm, BMOperator *op)
{
BMIter iter, liter;
BMFace *f, *nf;
- BMLoop **loops = NULL, *lastl = NULL;
- BLI_array_declare(loops);
- BMLoop *l, *nl;
- BMVert **verts = NULL;
- BLI_array_declare(verts);
+ BMLoop *(*loops_split)[2] = NULL;
+ BLI_array_declare(loops_split);
+ BMLoop *l, *nl, *lastl = NULL;
+ BMVert *(*verts_pair)[2] = NULL;
+ BLI_array_declare(verts_pair);
int i;
BMO_slot_buffer_flag_enable(bm, op, "verts", BM_VERT, VERT_INPUT);
for (f = BM_iter_new(&iter, bm, BM_FACES_OF_MESH, NULL); f; f = BM_iter_step(&iter)) {
- BLI_array_empty(loops);
- BLI_array_empty(verts);
+ BLI_array_empty(loops_split);
+ BLI_array_empty(verts_pair);
if (BMO_elem_flag_test(bm, f, FACE_NEW)) {
continue;
@@ -71,50 +72,44 @@ void bmo_connect_verts_exec(BMesh *bm, BMOperator *op)
}
if (lastl != l->prev && lastl != l->next) {
- BLI_array_grow_one(loops);
- loops[BLI_array_count(loops) - 1] = lastl;
-
- BLI_array_grow_one(loops);
- loops[BLI_array_count(loops) - 1] = l;
+ BLI_array_grow_one(loops_split);
+ loops_split[BLI_array_count(loops_split) - 1][0] = lastl;
+ loops_split[BLI_array_count(loops_split) - 1][1] = l;
}
lastl = l;
}
}
- if (BLI_array_count(loops) == 0) {
+ if (BLI_array_count(loops_split) == 0) {
continue;
}
- if (BLI_array_count(loops) > 2) {
- BLI_array_grow_one(loops);
- loops[BLI_array_count(loops) - 1] = loops[BLI_array_count(loops) - 2];
-
- BLI_array_grow_one(loops);
- loops[BLI_array_count(loops) - 1] = loops[0];
+ if (BLI_array_count(loops_split) > 1) {
+ BLI_array_grow_one(loops_split);
+ loops_split[BLI_array_count(loops_split) - 1][0] = loops_split[BLI_array_count(loops_split) - 2][1];
+ loops_split[BLI_array_count(loops_split) - 1][1] = loops_split[0][0];
}
- BM_face_legal_splits(bm, f, (BMLoop *(*)[2])loops, BLI_array_count(loops) / 2);
+ BM_face_legal_splits(bm, f, loops_split, BLI_array_count(loops_split));
- for (i = 0; i < BLI_array_count(loops) / 2; i++) {
- if (loops[i * 2] == NULL) {
+ for (i = 0; i < BLI_array_count(loops_split); i++) {
+ if (loops_split[i][0] == NULL) {
continue;
}
- BLI_array_grow_one(verts);
- verts[BLI_array_count(verts) - 1] = loops[i * 2]->v;
-
- BLI_array_grow_one(verts);
- verts[BLI_array_count(verts) - 1] = loops[i * 2 + 1]->v;
+ BLI_array_grow_one(verts_pair);
+ verts_pair[BLI_array_count(verts_pair) - 1][0] = loops_split[i][0]->v;
+ verts_pair[BLI_array_count(verts_pair) - 1][1] = loops_split[i][1]->v;
}
- for (i = 0; i < BLI_array_count(verts) / 2; i++) {
- nf = BM_face_split(bm, f, verts[i * 2], verts[i * 2 + 1], &nl, NULL, FALSE);
+ for (i = 0; i < BLI_array_count(verts_pair); i++) {
+ nf = BM_face_split(bm, f, verts_pair[i][0], verts_pair[i][1], &nl, NULL, FALSE);
f = nf;
if (!nl || !nf) {
BMO_error_raise(bm, op, BMERR_CONNECTVERT_FAILED, NULL);
- BLI_array_free(loops);
+ BLI_array_free(loops_split);
return;
}
BMO_elem_flag_enable(bm, nf, FACE_NEW);
@@ -124,8 +119,8 @@ void bmo_connect_verts_exec(BMesh *bm, BMOperator *op)
BMO_slot_buffer_from_enabled_flag(bm, op, "edgeout", BM_EDGE, EDGE_OUT);
- BLI_array_free(loops);
- BLI_array_free(verts);
+ BLI_array_free(loops_split);
+ BLI_array_free(verts_pair);
}
static BMVert *get_outer_vert(BMesh *bm, BMEdge *e)
@@ -223,6 +218,10 @@ void bmo_bridge_loops_exec(BMesh *bm, BMOperator *op)
BMEdge *e, *nexte;
int c = 0, cl1 = 0, cl2 = 0;
+ /* merge-bridge support */
+ const int use_merge = BMO_slot_bool_get(op, "use_merge");
+ const float merge_factor = BMO_slot_float_get(op, "merge_factor");
+
BMO_slot_buffer_flag_enable(bm, op, "edges", BM_EDGE, EDGE_MARK);
BMO_ITER (e, &siter, bm, op, "edges", BM_EDGE) {
@@ -340,7 +339,6 @@ void bmo_bridge_loops_exec(BMesh *bm, BMOperator *op)
goto cleanup;
}
- j = 0;
if (vv1[0] == vv1[lenv1 - 1]) {
lenv1--;
}
@@ -370,39 +368,38 @@ void bmo_bridge_loops_exec(BMesh *bm, BMOperator *op)
}
}
- /* Find the shortest distance from a vert in vv1 to vv2[0]. Use that
- * vertex in vv1 as a starting point in the first loop, while starting
- * from vv2[0] in the second loop. This is a simplistic attempt to get
- * a better edge-to-edge match between the two loops. */
+ /* Find the smallest sum of distances from verts in vv1 to verts in vv2,
+ * finding a starting point in the first loop, to start with vv2[0] in the
+ * second loop. This is a simplistic attempt to get a better edge-to-edge
+ * match between two loops. */
if (cl1) {
- int previ, nexti;
float min = 1e32;
- /* BMESH_TODO: Would be nice to do a more thorough analysis of all
- * the vertices in both loops to find a more accurate match for the
- * starting point and winding direction of the bridge generation. */
-
- for (i = 0; i < BLI_array_count(vv1); i++) {
- if (len_v3v3(vv1[i]->co, vv2[0]->co) < min) {
- min = len_v3v3(vv1[i]->co, vv2[0]->co);
+ for (i = 0; i < lenv1; i++) {
+ float len;
+
+ /* compute summed length between vertices in forward direction */
+ len = 0.0f;
+ for (j = 0; j < lenv2; j++) {
+ len += len_v3v3(vv1[clamp_index(i + j, lenv1)]->co, vv2[j]->co);
+ }
+
+ if (len < min) {
+ min = len;
starti = i;
}
- }
- /* Reverse iteration order for the first loop if the distance of
- * the (starti - 1) vert from vv1 is a better match for vv2[1] than
- * the (starti + 1) vert.
- *
- * This is not always going to be right, but it will work better in
- * the average case.
- */
- previ = clamp_index(starti - 1, lenv1);
- nexti = clamp_index(starti + 1, lenv1);
-
- /* avoid sqrt for comparison */
- if (len_squared_v3v3(vv1[nexti]->co, vv2[1]->co) > len_squared_v3v3(vv1[previ]->co, vv2[1]->co)) {
- /* reverse direction for reading vv1 (1 is forward, -1 is backward) */
- dir1 = -1;
+ /* compute summed length between vertices in backward direction */
+ len = 0.0f;
+ for (j = 0; j < lenv2; j++) {
+ len += len_v3v3(vv1[clamp_index(i - j, lenv1)]->co, vv2[j]->co);
+ }
+
+ if (len < min) {
+ min = len;
+ starti = i;
+ dir1 = -1;
+ }
}
}
@@ -426,63 +423,108 @@ void bmo_bridge_loops_exec(BMesh *bm, BMOperator *op)
}
}
- /* Generate the bridge quads */
- for (i = 0; i < BLI_array_count(ee1) && i < BLI_array_count(ee2); i++) {
- BMFace *f;
-
- BMLoop *l_1 = NULL;
- BMLoop *l_2 = NULL;
- BMLoop *l_1_next = NULL;
- BMLoop *l_2_next = NULL;
- BMLoop *l_iter;
- BMFace *f_example;
-
- int i1, i1next, i2, i2next;
-
- i1 = clamp_index(i * dir1 + starti, lenv1);
- i1next = clamp_index((i + 1) * dir1 + starti, lenv1);
- i2 = i;
- i2next = clamp_index(i + 1, lenv2);
-
- if (vv1[i1] == vv1[i1next]) {
- continue;
- }
-
- if (wdir < 0) {
- SWAP(int, i1, i1next);
- SWAP(int, i2, i2next);
+ /* merge loops of bridge faces */
+ if (use_merge) {
+ const int vert_len = mini(BLI_array_count(vv1), BLI_array_count(vv2)) - ((cl1 || cl2) ? 1 : 0);
+ const int edge_len = mini(BLI_array_count(ee1), BLI_array_count(ee2));
+
+ if (merge_factor <= 0.0f) {
+ /* 2 --> 1 */
+ for (i = 0; i < vert_len; i++) {
+ BM_vert_splice(bm, vv2[i], vv1[i]);
+ }
+ for (i = 0; i < edge_len; i++) {
+ BM_edge_splice(bm, ee2[i], ee1[i]);
+ }
}
-
- /* get loop data - before making the face */
- bm_vert_loop_pair(bm, vv1[i1], vv2[i2], &l_1, &l_2);
- bm_vert_loop_pair(bm, vv1[i1next], vv2[i2next], &l_1_next, &l_2_next);
- /* copy if loop data if its is missing on one ring */
- if (l_1 && l_1_next == NULL) l_1_next = l_1;
- if (l_1_next && l_1 == NULL) l_1 = l_1_next;
- if (l_2 && l_2_next == NULL) l_2_next = l_2;
- if (l_2_next && l_2 == NULL) l_2 = l_2_next;
- f_example = l_1 ? l_1->f : (l_2 ? l_2->f : NULL);
-
- f = BM_face_create_quad_tri(bm,
- vv1[i1],
- vv2[i2],
- vv2[i2next],
- vv1[i1next],
- f_example, TRUE);
- if (!f || f->len != 4) {
- fprintf(stderr, "%s: in bridge! (bmesh internal error)\n", __func__);
+ else if (merge_factor >= 1.0f) {
+ /* 1 --> 2 */
+ for (i = 0; i < vert_len; i++) {
+ BM_vert_splice(bm, vv1[i], vv2[i]);
+ }
+ for (i = 0; i < edge_len; i++) {
+ BM_edge_splice(bm, ee1[i], ee2[i]);
+ }
}
else {
- l_iter = BM_FACE_FIRST_LOOP(f);
+ /* mid factor, be tricky */
+ /* 1 --> 2 */
+ for (i = 0; i < vert_len; i++) {
+ BM_data_interp_from_verts(bm, vv1[i], vv2[i], vv2[i], merge_factor);
+ interp_v3_v3v3(vv2[i]->co, vv1[i]->co, vv2[i]->co, merge_factor);
+ BM_elem_flag_merge(vv1[i], vv2[i]);
+ BM_vert_splice(bm, vv1[i], vv2[i]);
+ }
+ for (i = 0; i < edge_len; i++) {
+ BM_data_interp_from_edges(bm, ee1[i], ee2[i], ee2[i], merge_factor);
+ BM_elem_flag_merge(ee1[i], ee2[i]);
+ BM_edge_splice(bm, ee1[i], ee2[i]);
+ }
+ }
+ }
+ else {
+ /* Generate the bridge quads */
+ for (i = 0; i < BLI_array_count(ee1) && i < BLI_array_count(ee2); i++) {
+ BMFace *f;
+
+ BMLoop *l_1 = NULL;
+ BMLoop *l_2 = NULL;
+ BMLoop *l_1_next = NULL;
+ BMLoop *l_2_next = NULL;
+ BMLoop *l_iter;
+ BMFace *f_example;
+
+ int i1, i1next, i2, i2next;
+
+ i1 = clamp_index(i * dir1 + starti, lenv1);
+ i1next = clamp_index((i + 1) * dir1 + starti, lenv1);
+ i2 = i;
+ i2next = clamp_index(i + 1, lenv2);
+
+ if (vv1[i1] == vv1[i1next]) {
+ continue;
+ }
+
+ if (wdir < 0) {
+ SWAP(int, i1, i1next);
+ SWAP(int, i2, i2next);
+ }
+
+ /* get loop data - before making the face */
+ bm_vert_loop_pair(bm, vv1[i1], vv2[i2], &l_1, &l_2);
+ bm_vert_loop_pair(bm, vv1[i1next], vv2[i2next], &l_1_next, &l_2_next);
+ /* copy if loop data if its is missing on one ring */
+ if (l_1 && l_1_next == NULL) l_1_next = l_1;
+ if (l_1_next && l_1 == NULL) l_1 = l_1_next;
+ if (l_2 && l_2_next == NULL) l_2_next = l_2;
+ if (l_2_next && l_2 == NULL) l_2 = l_2_next;
+ f_example = l_1 ? l_1->f : (l_2 ? l_2->f : NULL);
+
+ f = BM_face_create_quad_tri(bm,
+ vv1[i1],
+ vv2[i2],
+ vv2[i2next],
+ vv1[i1next],
+ f_example, TRUE);
+ if (UNLIKELY((f == NULL) || (f->len != 4))) {
+ fprintf(stderr, "%s: in bridge! (bmesh internal error)\n", __func__);
+ }
+ else {
+ BMO_elem_flag_enable(bm, f, FACE_OUT);
+
+ l_iter = BM_FACE_FIRST_LOOP(f);
- if (l_1) BM_elem_attrs_copy(bm, bm, l_1, l_iter); l_iter = l_iter->next;
- if (l_2) BM_elem_attrs_copy(bm, bm, l_2, l_iter); l_iter = l_iter->next;
- if (l_2_next) BM_elem_attrs_copy(bm, bm, l_2_next, l_iter); l_iter = l_iter->next;
- if (l_1_next) BM_elem_attrs_copy(bm, bm, l_1_next, l_iter);
+ if (l_1) BM_elem_attrs_copy(bm, bm, l_1, l_iter); l_iter = l_iter->next;
+ if (l_2) BM_elem_attrs_copy(bm, bm, l_2, l_iter); l_iter = l_iter->next;
+ if (l_2_next) BM_elem_attrs_copy(bm, bm, l_2_next, l_iter); l_iter = l_iter->next;
+ if (l_1_next) BM_elem_attrs_copy(bm, bm, l_1_next, l_iter);
+ }
}
}
}
+ BMO_slot_buffer_from_enabled_flag(bm, op, "faceout", BM_FACE, FACE_OUT);
+
cleanup:
BLI_array_free(ee1);
BLI_array_free(ee2);
diff --git a/source/blender/bmesh/operators/bmo_create.c b/source/blender/bmesh/operators/bmo_create.c
index f1063d1ca42..731170f963c 100644
--- a/source/blender/bmesh/operators/bmo_create.c
+++ b/source/blender/bmesh/operators/bmo_create.c
@@ -275,8 +275,9 @@ static int UNUSED_FUNCTION(rotsys_fill_faces)(BMesh *bm, EdgeData *edata, VertDa
continue;
f = BM_face_create_ngon(bm, verts[0], verts[1], edges, BLI_array_count(edges), TRUE);
- if (!f)
+ if (UNLIKELY(f == NULL)) {
continue;
+ }
}
}
@@ -364,8 +365,6 @@ static void init_rotsys(BMesh *bm, EdgeData *edata, VertData *vdata)
/* BLI_array_staticdeclare(verts, BM_NGON_STACK_SIZE); */ /* UNUSE */
int i;
-#define SIGN(n) ((n)<0.0f)
-
BM_ITER_MESH (v, &iter, bm, BM_VERTS_OF_MESH) {
BMIter eiter;
float no[3], cent[3];
@@ -1225,7 +1224,7 @@ void bmo_edgenet_prepare(BMesh *bm, BMOperator *op)
v4 = BM_vert_in_edge(edges2[i - 1], edges2[i]->v1) ? edges2[i]->v2 : edges2[i]->v1;
}
- /* if there is ever bowtie quads between two edges the problem is here! [#30367] */
+ /* if there is ever bow-tie quads between two edges the problem is here! [#30367] */
#if 0
normal_tri_v3(dvec1, v1->co, v2->co, v4->co);
normal_tri_v3(dvec2, v1->co, v4->co, v3->co);
@@ -1312,7 +1311,7 @@ void bmo_contextual_create_exec(BMesh *bm, BMOperator *op)
*
*/
- /* Here we check for consistancy and create 2 edges */
+ /* Here we check for consistency and create 2 edges */
if (totf == 0 && totv >= 4 && totv == tote + 2) {
/* find a free standing vertex and 2 endpoint verts */
BMVert *v_free = NULL, *v_a = NULL, *v_b = NULL;
@@ -1365,12 +1364,12 @@ void bmo_contextual_create_exec(BMesh *bm, BMOperator *op)
/* call edgenet create */
/* call edgenet prepare op so additional face creation cases wore */
- BMO_op_initf(bm, &op2, "edgenet_prepare edges=%fe", ELE_NEW);
+ BMO_op_initf(bm, &op2, op->flag, "edgenet_prepare edges=%fe", ELE_NEW);
BMO_op_exec(bm, &op2);
BMO_slot_buffer_flag_enable(bm, &op2, "edgeout", BM_EDGE, ELE_NEW);
BMO_op_finish(bm, &op2);
- BMO_op_initf(bm, &op2,
+ BMO_op_initf(bm, &op2, op->flag,
"edgenet_fill edges=%fe use_fill_check=%b mat_nr=%i use_smooth=%b",
ELE_NEW, TRUE, mat_nr, use_smooth);
@@ -1386,7 +1385,7 @@ void bmo_contextual_create_exec(BMesh *bm, BMOperator *op)
BMO_op_finish(bm, &op2);
/* now call dissolve face */
- BMO_op_initf(bm, &op2, "dissolve_faces faces=%ff", ELE_NEW);
+ BMO_op_initf(bm, &op2, op->flag, "dissolve_faces faces=%ff", ELE_NEW);
BMO_op_exec(bm, &op2);
/* if we dissolved anything, then return */
@@ -1415,6 +1414,7 @@ void bmo_contextual_create_exec(BMesh *bm, BMOperator *op)
/* create edge */
e = BM_edge_create(bm, verts[0], verts[1], NULL, TRUE);
BMO_elem_flag_enable(bm, e, ELE_OUT);
+ BMO_slot_buffer_from_enabled_flag(bm, op, "edgeout", BM_EDGE, ELE_OUT);
}
else if (0) { /* nice feature but perhaps it should be a different tool? */
@@ -1460,6 +1460,7 @@ void bmo_contextual_create_exec(BMesh *bm, BMOperator *op)
}
}
}
+ BMO_slot_buffer_from_enabled_flag(bm, op, "edgeout", BM_EDGE, ELE_OUT);
/* done creating edges */
}
else if (amount > 2) {
diff --git a/source/blender/bmesh/operators/bmo_dissolve.c b/source/blender/bmesh/operators/bmo_dissolve.c
index 8e69696f771..84f6cb27b3b 100644
--- a/source/blender/bmesh/operators/bmo_dissolve.c
+++ b/source/blender/bmesh/operators/bmo_dissolve.c
@@ -164,7 +164,7 @@ void bmo_dissolve_faces_exec(BMesh *bm, BMOperator *op)
}
- BMO_op_callf(bm, "delete geom=%ff context=%i", FACE_ORIG, DEL_FACES);
+ BMO_op_callf(bm, op->flag, "delete geom=%ff context=%i", FACE_ORIG, DEL_FACES);
if (use_verts) {
@@ -214,7 +214,7 @@ void bmo_dissolve_edgeloop_exec(BMesh *bm, BMOperator *op)
BMO_elem_flag_enable(bm, e->v2, VERT_MARK);
/* BMESH_TODO - check on delaying edge removal since we may end up removing more then
- * one edge, and later referene a removed edge */
+ * one edge, and later reference a removed edge */
BM_faces_join_pair(bm, fa, fb, e, TRUE);
}
}
@@ -270,7 +270,7 @@ void bmo_dissolve_edges_exec(BMesh *bm, BMOperator *op)
/* join faces */
/* BMESH_TODO - check on delaying edge removal since we may end up removing more then
- * one edge, and later referene a removed edge */
+ * one edge, and later reference a removed edge */
BM_faces_join_pair(bm, fa, fb, e, TRUE);
}
}
@@ -383,7 +383,7 @@ void bmo_dissolve_verts_exec(BMesh *bm, BMOperator *op)
}
}
- BMO_op_callf(bm, "dissolve_faces faces=%ff", FACE_MARK);
+ BMO_op_callf(bm, op->flag, "dissolve_faces faces=%ff", FACE_MARK);
if (BMO_error_occurred(bm)) {
const char *msg;
@@ -484,7 +484,7 @@ void dummy_exec(BMesh *bm, BMOperator *op)
/* multiply vertex edge angle by face angle
* this means we are not left with sharp corners between _almost_ planer faces
* convert angles [0-PI/2] -> [0-1], multiply together, then convert back to radians. */
-float bm_vert_edge_face_angle(BMVert *v)
+static float bm_vert_edge_face_angle(BMVert *v)
{
const float angle = BM_vert_calc_edge_angle(v);
/* note: could be either edge, it doesn't matter */
diff --git a/source/blender/bmesh/operators/bmo_dupe.c b/source/blender/bmesh/operators/bmo_dupe.c
index 1421ae294bc..32270007a0b 100644
--- a/source/blender/bmesh/operators/bmo_dupe.c
+++ b/source/blender/bmesh/operators/bmo_dupe.c
@@ -37,7 +37,7 @@
#define DUPE_INPUT 1 /* input from operator */
#define DUPE_NEW 2
#define DUPE_DONE 4
-#define DUPE_MAPPED 8
+// #define DUPE_MAPPED 8 // UNUSED
/**
* COPY VERTEX
@@ -381,8 +381,8 @@ void bmo_split_exec(BMesh *bm, BMOperator *op)
const short use_only_faces = BMO_slot_bool_get(op, "use_only_faces");
/* initialize our sub-operator */
- BMO_op_init(bm, &dupeop, "duplicate");
- BMO_op_init(bm, &delop, "delete");
+ BMO_op_init(bm, &dupeop, op->flag, "duplicate");
+ BMO_op_init(bm, &delop, op->flag, "delete");
BMO_slot_copy(splitop, &dupeop, "geom", "geom");
BMO_op_exec(bm, &dupeop);
@@ -487,18 +487,20 @@ void bmo_spin_exec(BMesh *bm, BMOperator *op)
BMO_slot_copy(op, op, "geom", "lastout");
for (a = 0; a < steps; a++) {
if (do_dupli) {
- BMO_op_initf(bm, &dupop, "duplicate geom=%s", op, "lastout");
+ BMO_op_initf(bm, &dupop, op->flag, "duplicate geom=%s", op, "lastout");
BMO_op_exec(bm, &dupop);
- BMO_op_callf(bm, "rotate cent=%v mat=%m3 verts=%s",
+ BMO_op_callf(bm, op->flag,
+ "rotate cent=%v mat=%m3 verts=%s",
cent, rmat, &dupop, "newout");
BMO_slot_copy(&dupop, op, "newout", "lastout");
BMO_op_finish(bm, &dupop);
}
else {
- BMO_op_initf(bm, &extop, "extrude_face_region edgefacein=%s",
+ BMO_op_initf(bm, &extop, op->flag, "extrude_face_region edgefacein=%s",
op, "lastout");
BMO_op_exec(bm, &extop);
- BMO_op_callf(bm, "rotate cent=%v mat=%m3 verts=%s",
+ BMO_op_callf(bm, op->flag,
+ "rotate cent=%v mat=%m3 verts=%s",
cent, rmat, &extop, "geomout");
BMO_slot_copy(&extop, op, "geomout", "lastout");
BMO_op_finish(bm, &extop);
@@ -506,7 +508,9 @@ void bmo_spin_exec(BMesh *bm, BMOperator *op)
if (usedvec) {
mul_m3_v3(rmat, dvec);
- BMO_op_callf(bm, "translate vec=%v verts=%s", dvec, op, "lastout");
+ BMO_op_callf(bm, op->flag,
+ "translate vec=%v verts=%s",
+ dvec, op, "lastout");
}
}
}
diff --git a/source/blender/bmesh/operators/bmo_extrude.c b/source/blender/bmesh/operators/bmo_extrude.c
index b8993b41caf..81cad277bee 100644
--- a/source/blender/bmesh/operators/bmo_extrude.c
+++ b/source/blender/bmesh/operators/bmo_extrude.c
@@ -87,7 +87,7 @@ void bmo_extrude_discrete_faces_exec(BMesh *bm, BMOperator *op)
BMO_elem_flag_enable(bm, f, EXT_DEL);
f2 = BM_face_create_ngon(bm, firstv, BM_edge_other_vert(edges[0], firstv), edges, f->len, FALSE);
- if (!f2) {
+ if (UNLIKELY(f2 == NULL)) {
BMO_error_raise(bm, op, BMERR_MESH_ERROR, "Extrude failed; could not create face");
BLI_array_free(edges);
return;
@@ -104,6 +104,7 @@ void bmo_extrude_discrete_faces_exec(BMesh *bm, BMOperator *op)
l4 = l2->next;
f3 = BM_face_create_quad_tri(bm, l3->v, l4->v, l2->v, l->v, f, FALSE);
+ /* XXX, no error check here, why? - Campbell */
l_tmp = BM_FACE_FIRST_LOOP(f3);
@@ -118,7 +119,9 @@ void bmo_extrude_discrete_faces_exec(BMesh *bm, BMOperator *op)
BLI_array_free(edges);
- BMO_op_callf(bm, "delete geom=%ff context=%i", EXT_DEL, DEL_ONLYFACES);
+ BMO_op_callf(bm, op->flag,
+ "delete geom=%ff context=%i",
+ EXT_DEL, DEL_ONLYFACES);
BMO_slot_buffer_from_enabled_flag(bm, op, "faceout", BM_FACE, EXT_KEEP);
}
@@ -195,7 +198,7 @@ void bmo_extrude_edge_only_exec(BMesh *bm, BMOperator *op)
BMO_elem_flag_enable(bm, e->v2, EXT_INPUT);
}
- BMO_op_initf(bm, &dupeop, "duplicate geom=%fve", EXT_INPUT);
+ BMO_op_initf(bm, &dupeop, op->flag, "duplicate geom=%fve", EXT_INPUT);
BMO_op_exec(bm, &dupeop);
/* disable root flag on all new skin nodes */
@@ -273,7 +276,7 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op)
int found, fwd, delorig = FALSE;
/* initialize our sub-operators */
- BMO_op_init(bm, &dupeop, "duplicate");
+ BMO_op_init(bm, &dupeop, op->flag, "duplicate");
BMO_slot_buffer_flag_enable(bm, op, "edgefacein", BM_EDGE | BM_FACE, EXT_INPUT);
@@ -341,7 +344,8 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op)
}
if (delorig == TRUE) {
- BMO_op_initf(bm, &delop, "delete geom=%fvef context=%i",
+ BMO_op_initf(bm, &delop, op->flag,
+ "delete geom=%fvef context=%i",
EXT_DEL, DEL_ONLYTAGGED);
}
@@ -377,10 +381,18 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op)
/* this should always be wire, so this is mainly a speedup to avoid map lookup */
if (BM_edge_is_wire(e) && BMO_slot_map_contains(bm, op, "exclude", e)) {
+ BMVert *v1 = e->v1, *v2 = e->v2;
+
/* The original edge was excluded,
* this would result in a standalone wire edge - see [#30399] */
BM_edge_kill(bm, e);
+ /* kill standalone vertices from this edge - see [#32341] */
+ if (!v1->e)
+ BM_vert_kill(bm, v1);
+ if (!v2->e)
+ BM_vert_kill(bm, v2);
+
continue;
}
@@ -647,13 +659,13 @@ void bmo_solidify_face_region_exec(BMesh *bm, BMOperator *op)
thickness = BMO_slot_float_get(op, "thickness");
/* Flip original faces (so the shell is extruded inward) */
- BMO_op_init(bm, &reverseop, "reverse_faces");
+ BMO_op_init(bm, &reverseop, op->flag, "reverse_faces");
BMO_slot_copy(op, &reverseop, "geom", "faces");
BMO_op_exec(bm, &reverseop);
BMO_op_finish(bm, &reverseop);
/* Extrude the region */
- BMO_op_initf(bm, &extrudeop, "extrude_face_region alwayskeeporig=%b", TRUE);
+ BMO_op_initf(bm, &extrudeop, op->flag, "extrude_face_region alwayskeeporig=%b", TRUE);
BMO_slot_copy(op, &extrudeop, "geom", "edgefacein");
BMO_op_exec(bm, &extrudeop);
diff --git a/source/blender/bmesh/operators/bmo_hull.c b/source/blender/bmesh/operators/bmo_hull.c
index 1bd2f41209b..d97d901777c 100644
--- a/source/blender/bmesh/operators/bmo_hull.c
+++ b/source/blender/bmesh/operators/bmo_hull.c
@@ -31,12 +31,26 @@
#include "BLI_math.h"
#include "BLI_utildefines.h"
+/*XXX: This operator doesn't work well (at all?) for flat surfaces with
+ * >3 sides - creating overlapping faces at times.
+ * An easy workaround is to add in some noise but this is
+ * weak and unreliable, ideally this would detect flat surfaces
+ * (possibly making them into ngons) - see
+ */
+
/* XXX: using 128 for totelem and pchunk of mempool, no idea what good
* values would be though */
#include "BLI_mempool.h"
#include "bmesh.h"
+#include "intern/bmesh_operators_private.h" /* own include */
+
+#define HULL_EPSILON_FLT 0.0001f
+/* values above 0.0001 cause errors, see below for details, don't increase
+ * without checking against bug [#32027] */
+#define HULL_EPSILON_DOT_FLT 0.00000001f
+
/* Internal operator flags */
typedef enum {
HULL_FLAG_INPUT = (1 << 0),
@@ -49,7 +63,7 @@ typedef enum {
HULL_FLAG_HOLE = (1 << 5)
} HullFlags;
-/* Store hull triangles seperate from BMesh faces until the end; this
+/* Store hull triangles separate from BMesh faces until the end; this
* way we don't have to worry about cleaning up extraneous edges or
* incorrectly deleting existing geometry. */
typedef struct HullTriangle {
@@ -70,23 +84,23 @@ typedef struct HullBoundaryEdge {
/*************************** Boundary Edges ***************************/
-static int edge_match(BMVert *e1_0, BMVert *e1_1, BMVert *e2[2])
+static int edge_match(BMVert *e1_v1, BMVert *e1_v2, BMVert *e2[2])
{
- return (e1_0 == e2[0] && e1_1 == e2[1]) ||
- (e1_0 == e2[1] && e1_1 == e2[0]);
+ return (e1_v1 == e2[0] && e1_v2 == e2[1]) ||
+ (e1_v1 == e2[1] && e1_v2 == e2[0]);
}
/* Returns true if the edge (e1, e2) is already in edges; that edge is
* deleted here as well. if not found just returns 0 */
static int check_for_dup(ListBase *edges, BLI_mempool *pool,
- BMVert *e1, BMVert *e2)
+ BMVert *v1, BMVert *v2)
{
- HullBoundaryEdge *e, *next;
+ HullBoundaryEdge *e, *e_next;
- for (e = edges->first; e; e = next) {
- next = e->next;
+ for (e = edges->first; e; e = e_next) {
+ e_next = e->next;
- if (edge_match(e1, e2, e->v)) {
+ if (edge_match(v1, v2, e->v)) {
/* remove the interior edge */
BLI_remlink(edges, e);
BLI_mempool_free(pool, e);
@@ -100,17 +114,17 @@ static int check_for_dup(ListBase *edges, BLI_mempool *pool,
static void expand_boundary_edges(ListBase *edges, BLI_mempool *edge_pool,
const HullTriangle *t)
{
- HullBoundaryEdge *new;
+ HullBoundaryEdge *e_new;
int i;
/* Insert each triangle edge into the boundary list; if any of
* its edges are already in there, remove the edge entirely */
for (i = 0; i < 3; i++) {
if (!check_for_dup(edges, edge_pool, t->v[i], t->v[(i + 1) % 3])) {
- new = BLI_mempool_calloc(edge_pool);
- new->v[0] = t->v[i];
- new->v[1] = t->v[(i + 1) % 3];
- BLI_addtail(edges, new);
+ e_new = BLI_mempool_calloc(edge_pool);
+ e_new->v[0] = t->v[i];
+ e_new->v[1] = t->v[(i + 1) % 3];
+ BLI_addtail(edges, e_new);
}
}
}
@@ -142,12 +156,16 @@ static int hull_point_tri_side(const HullTriangle *t, const float co[3])
{
/* Added epsilon to fix bug [#31941], improves output when some
* vertices are nearly coplanar. Might need further tweaking for
- * other cases though. */
- float p[3], d, epsilon = 0.0001;
+ * other cases though.
+ * ...
+ * Update: epsilon of 0.0001 causes [#32027], use HULL_EPSILON_DOT_FLT
+ * and give it a much smaller value
+ * */
+ float p[3], d;
sub_v3_v3v3(p, co, t->v[0]->co);
d = dot_v3v3(t->no, p);
- if (d < -epsilon) return -1;
- else if (d > epsilon) return 1;
+ if (d < -HULL_EPSILON_DOT_FLT) return -1;
+ else if (d > HULL_EPSILON_DOT_FLT) return 1;
else return 0;
}
@@ -177,7 +195,7 @@ static void add_point(BMesh *bm, GHash *hull_triangles, BLI_mempool *hull_pool,
BLI_mempool *edge_pool, GHash *outside, BMVert *v)
{
ListBase edges = {NULL, NULL};
- HullBoundaryEdge *e, *next;
+ HullBoundaryEdge *e, *e_next;
GHashIterator iter;
GHASH_ITER (iter, outside) {
@@ -196,8 +214,8 @@ static void add_point(BMesh *bm, GHash *hull_triangles, BLI_mempool *hull_pool,
}
/* Fill hole boundary with triangles to new point */
- for (e = edges.first; e; e = next) {
- next = e->next;
+ for (e = edges.first; e; e = e_next) {
+ e_next = e->next;
hull_add_triangle(bm, hull_triangles, hull_pool, e->v[0], e->v[1], v);
BLI_mempool_free(edge_pool, e);
}
@@ -354,7 +372,8 @@ static void hull_add_tetrahedron(BMesh *bm, GHash *hull_triangles, BLI_mempool *
{0, 1, 2},
{0, 2, 3},
{1, 0, 3},
- {2, 1, 3}};
+ {2, 1, 3}
+ };
/* Calculate center */
zero_v3(center);
@@ -464,7 +483,7 @@ static int hull_find_large_tetrahedron(BMesh *bm, BMOperator *op,
}
/* Check for colinear vertices */
- if (largest_dist < 0.0001f)
+ if (largest_dist < HULL_EPSILON_FLT)
return TRUE;
/* Choose fourth point farthest from existing plane */
@@ -487,7 +506,7 @@ static int hull_find_large_tetrahedron(BMesh *bm, BMOperator *op,
return TRUE;
}
- if (largest_dist < 0.0001f)
+ if (largest_dist < HULL_EPSILON_FLT)
return TRUE;
return FALSE;
@@ -611,7 +630,7 @@ static void hull_tag_unused(BMesh *bm, BMOperator *op)
}
}
-void hull_tag_holes(BMesh *bm, BMOperator *op)
+static void hull_tag_holes(BMesh *bm, BMOperator *op)
{
BMIter iter;
BMOIter oiter;
diff --git a/source/blender/bmesh/operators/bmo_inset.c b/source/blender/bmesh/operators/bmo_inset.c
index 26197c43bd0..132d7050b31 100644
--- a/source/blender/bmesh/operators/bmo_inset.c
+++ b/source/blender/bmesh/operators/bmo_inset.c
@@ -280,10 +280,11 @@ void bmo_inset_exec(BMesh *bm, BMOperator *op)
BMFace *f_b = e_info_b->l->f;
/* we use this as either the normal OR to find the right direction for the
- * crpss product between both face normals */
+ * cross product between both face normals */
add_v3_v3v3(tvec, e_info_a->no, e_info_b->no);
- if ((f_a == f_b) || compare_v3v3(f_a->no, f_b->no, 0.00001f)) {
+ /* epsilon increased to fix [#32329] */
+ if ((f_a == f_b) || compare_v3v3(f_a->no, f_b->no, 0.001f)) {
normalize_v3(tvec);
}
else {
diff --git a/source/blender/bmesh/operators/bmo_join_triangles.c b/source/blender/bmesh/operators/bmo_join_triangles.c
index d780e309118..7191aa7a7b6 100644
--- a/source/blender/bmesh/operators/bmo_join_triangles.c
+++ b/source/blender/bmesh/operators/bmo_join_triangles.c
@@ -37,11 +37,6 @@
#include "intern/bmesh_operators_private.h" /* own include */
-/* Bitflags for edges */
-#define T2QDELETE 1
-#define T2QCOMPLEX 2
-#define T2QJOIN 4
-
/* assumes edges are validated before reaching this poin */
static float measure_facepair(BMVert *v1, BMVert *v2,
BMVert *v3, BMVert *v4, float limit)
@@ -110,93 +105,73 @@ static float measure_facepair(BMVert *v1, BMVert *v2,
#define T2QUV_LIMIT 0.005f
#define T2QCOL_LIMIT 3
-static int compareFaceAttribs(BMesh *bm, BMEdge *e, int douvs, int dovcols)
+static int bm_edge_faces_cmp(BMesh *bm, BMEdge *e, const int do_uv, const int do_tf, const int do_vcol)
{
- MTexPoly *tp1, *tp2;
- MLoopCol *lcol1, *lcol2, *lcol3, *lcol4;
- MLoopUV *luv1, *luv2, *luv3, *luv4;
- BMLoop *l1, *l2, *l3, *l4;
- int mergeok_uvs = !douvs, mergeok_vcols = !dovcols;
-
- l1 = e->l;
- l3 = e->l->radial_next;
+ /* first get loops */
+ BMLoop *l[4];
+
+ l[0] = e->l;
+ l[2] = e->l->radial_next;
- /* match up loops on each side of an edge corresponding to each ver */
- if (l1->v == l3->v) {
- l2 = l1->next;
- l4 = l2->next;
+ /* match up loops on each side of an edge corresponding to each vert */
+ if (l[0]->v == l[2]->v) {
+ l[1] = l[0]->next;
+ l[3] = l[1]->next;
}
else {
- l2 = l1->next;
+ l[1] = l[0]->next;
- l4 = l3;
- l3 = l4->next;
+ l[3] = l[2];
+ l[2] = l[3]->next;
}
- lcol1 = CustomData_bmesh_get(&bm->ldata, l1->head.data, CD_MLOOPCOL);
- lcol2 = CustomData_bmesh_get(&bm->ldata, l1->head.data, CD_MLOOPCOL);
- lcol3 = CustomData_bmesh_get(&bm->ldata, l1->head.data, CD_MLOOPCOL);
- lcol4 = CustomData_bmesh_get(&bm->ldata, l1->head.data, CD_MLOOPCOL);
-
- luv1 = CustomData_bmesh_get(&bm->ldata, l1->head.data, CD_MLOOPUV);
- luv2 = CustomData_bmesh_get(&bm->ldata, l1->head.data, CD_MLOOPUV);
- luv3 = CustomData_bmesh_get(&bm->ldata, l1->head.data, CD_MLOOPUV);
- luv4 = CustomData_bmesh_get(&bm->ldata, l1->head.data, CD_MLOOPUV);
-
- tp1 = CustomData_bmesh_get(&bm->pdata, l1->f->head.data, CD_MTEXPOLY);
- tp2 = CustomData_bmesh_get(&bm->pdata, l2->f->head.data, CD_MTEXPOLY);
-
- if (!lcol1)
- mergeok_vcols = 1;
-
- if (!luv1)
- mergeok_uvs = 1;
-
- /* compare faceedges for each face attribute. Additional per face attributes can be added late */
-
- /* do VCOL */
- if (lcol1 && dovcols) {
- char *cols[4] = {(char *)lcol1, (char *)lcol2, (char *)lcol3, (char *)lcol4};
- int i;
-
- for (i = 0; i < 3; i++) {
- if (cols[0][i] + T2QCOL_LIMIT < cols[2][i] - T2QCOL_LIMIT)
- break;
- if (cols[1][i] + T2QCOL_LIMIT < cols[3][i] - T2QCOL_LIMIT)
- break;
+ /* Test UV's */
+ if (do_uv) {
+ const MLoopUV *luv[4] = {
+ CustomData_bmesh_get(&bm->ldata, l[0]->head.data, CD_MLOOPUV),
+ CustomData_bmesh_get(&bm->ldata, l[1]->head.data, CD_MLOOPUV),
+ CustomData_bmesh_get(&bm->ldata, l[2]->head.data, CD_MLOOPUV),
+ CustomData_bmesh_get(&bm->ldata, l[3]->head.data, CD_MLOOPUV),
+ };
+
+ /* do UV */
+ if (luv[0] && (!compare_v2v2(luv[0]->uv, luv[2]->uv, T2QUV_LIMIT) ||
+ !compare_v2v2(luv[1]->uv, luv[3]->uv, T2QUV_LIMIT)))
+ {
+ return FALSE;
}
-
- if (i == 3)
- mergeok_vcols = 1;
}
- /* do UV */
- if (luv1 && douvs) {
- if (tp1->tpage != tp2->tpage) {
- /* do nothing */
- }
- else {
- int i;
+ if (do_tf) {
+ const MTexPoly *tp[2] = {
+ CustomData_bmesh_get(&bm->pdata, l[0]->f->head.data, CD_MTEXPOLY),
+ CustomData_bmesh_get(&bm->pdata, l[1]->f->head.data, CD_MTEXPOLY),
+ };
- for (i = 0; i < 2; i++) {
- if (luv1->uv[0] + T2QUV_LIMIT > luv3->uv[0] && luv1->uv[0] - T2QUV_LIMIT < luv3->uv[0] &&
- luv1->uv[1] + T2QUV_LIMIT > luv3->uv[1] && luv1->uv[1] - T2QUV_LIMIT < luv3->uv[1])
- {
- if (luv2->uv[0] + T2QUV_LIMIT > luv4->uv[0] && luv2->uv[0] - T2QUV_LIMIT < luv4->uv[0] &&
- luv2->uv[1] + T2QUV_LIMIT > luv4->uv[1] && luv2->uv[1] - T2QUV_LIMIT < luv4->uv[1])
- {
- mergeok_uvs = 1;
- }
- }
- }
+ if (tp[0] && (tp[0]->tpage != tp[1]->tpage)) {
+ return FALSE;
}
}
- if (douvs == mergeok_uvs && dovcols == mergeok_vcols) {
- return TRUE;
+ /* Test Vertex Colors */
+ if (do_vcol) {
+ const MLoopCol *lcol[4] = {
+ CustomData_bmesh_get(&bm->ldata, l[0]->head.data, CD_MLOOPCOL),
+ CustomData_bmesh_get(&bm->ldata, l[1]->head.data, CD_MLOOPCOL),
+ CustomData_bmesh_get(&bm->ldata, l[2]->head.data, CD_MLOOPCOL),
+ CustomData_bmesh_get(&bm->ldata, l[3]->head.data, CD_MLOOPCOL),
+ };
+
+ if (lcol[0]) {
+ if (!compare_rgb_uchar((unsigned char *)&lcol[0]->r, (unsigned char *)&lcol[2]->r, T2QCOL_LIMIT) ||
+ !compare_rgb_uchar((unsigned char *)&lcol[1]->r, (unsigned char *)&lcol[3]->r, T2QCOL_LIMIT))
+ {
+ return FALSE;
+ }
+ }
}
- return FALSE;
+ return TRUE;
}
typedef struct JoinEdge {
@@ -229,11 +204,12 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op)
BMEdge *e;
BLI_array_declare(jedges);
JoinEdge *jedges = NULL;
- int dosharp = BMO_slot_bool_get(op, "cmp_sharp");
- int douvs = BMO_slot_bool_get(op, "cmp_uvs");
- int dovcols = BMO_slot_bool_get(op, "cmp_vcols");
- int domat = BMO_slot_bool_get(op, "cmp_materials");
- float limit = BMO_slot_float_get(op, "limit");
+ int do_sharp = BMO_slot_bool_get(op, "cmp_sharp");
+ int do_uv = BMO_slot_bool_get(op, "cmp_uvs");
+ int do_tf = do_uv; /* texture face, make make its own option eventually */
+ int do_vcol = BMO_slot_bool_get(op, "cmp_vcols");
+ int do_mat = BMO_slot_bool_get(op, "cmp_materials");
+ float limit = BMO_slot_float_get(op, "limit");
int i, totedge;
/* flag all edges of all input face */
@@ -282,13 +258,13 @@ void bmo_join_triangles_exec(BMesh *bm, BMOperator *op)
v3 = e->l->next->v;
v4 = e->l->radial_next->prev->v;
- if (dosharp && !BM_elem_flag_test(e, BM_ELEM_SMOOTH))
+ if (do_sharp && !BM_elem_flag_test(e, BM_ELEM_SMOOTH))
continue;
-
- if ((douvs || dovcols) && compareFaceAttribs(bm, e, douvs, dovcols))
+
+ if (do_mat && f1->mat_nr != f2->mat_nr)
continue;
- if (domat && f1->mat_nr != f2->mat_nr)
+ if ((do_uv || do_tf || do_vcol) && (bm_edge_faces_cmp(bm, e, do_uv, do_tf, do_vcol) == FALSE))
continue;
measure = measure_facepair(v1, v2, v3, v4, limit);
diff --git a/source/blender/bmesh/operators/bmo_mesh_conv.c b/source/blender/bmesh/operators/bmo_mesh_conv.c
index c550a17e696..c4b988ae82d 100644
--- a/source/blender/bmesh/operators/bmo_mesh_conv.c
+++ b/source/blender/bmesh/operators/bmo_mesh_conv.c
@@ -70,7 +70,9 @@ void bmo_object_load_bmesh_exec(BMesh *bm, BMOperator *op)
/* Scene *scene = BMO_slot_ptr_get(op, "scene"); */
Mesh *me = ob->data;
- BMO_op_callf(bm, "bmesh_to_mesh mesh=%p object=%p notessellation=%b", me, ob, TRUE);
+ BMO_op_callf(bm, op->flag,
+ "bmesh_to_mesh mesh=%p object=%p notessellation=%b",
+ me, ob, TRUE);
}
void bmo_bmesh_to_mesh_exec(BMesh *bm, BMOperator *op)
diff --git a/source/blender/bmesh/operators/bmo_mirror.c b/source/blender/bmesh/operators/bmo_mirror.c
index 1ab439b38bb..c6b228b988e 100644
--- a/source/blender/bmesh/operators/bmo_mirror.c
+++ b/source/blender/bmesh/operators/bmo_mirror.c
@@ -62,7 +62,7 @@ void bmo_mirror_exec(BMesh *bm, BMOperator *op)
BMO_slot_mat4_get(op, "mat", mtx);
invert_m4_m4(imtx, mtx);
- BMO_op_initf(bm, &dupeop, "duplicate geom=%s", op, "geom");
+ BMO_op_initf(bm, &dupeop, op->flag, "duplicate geom=%s", op, "geom");
BMO_op_exec(bm, &dupeop);
BMO_slot_buffer_flag_enable(bm, &dupeop, "newout", BM_ALL, ELE_NEW);
@@ -80,11 +80,11 @@ void bmo_mirror_exec(BMesh *bm, BMOperator *op)
/* feed old data to transform bmo */
scale[axis] = -1.0f;
- BMO_op_callf(bm, "transform verts=%fv mat=%m4", ELE_NEW, mtx);
- BMO_op_callf(bm, "scale verts=%fv vec=%v", ELE_NEW, scale);
- BMO_op_callf(bm, "transform verts=%fv mat=%m4", ELE_NEW, imtx);
+ BMO_op_callf(bm, op->flag, "transform verts=%fv mat=%m4", ELE_NEW, mtx);
+ BMO_op_callf(bm, op->flag, "scale verts=%fv vec=%v", ELE_NEW, scale);
+ BMO_op_callf(bm, op->flag, "transform verts=%fv mat=%m4", ELE_NEW, imtx);
- BMO_op_init(bm, &weldop, "weld_verts");
+ BMO_op_init(bm, &weldop, op->flag, "weld_verts");
v = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL);
for (i = 0; i < ototvert; i++) {
diff --git a/source/blender/bmesh/operators/bmo_primitive.c b/source/blender/bmesh/operators/bmo_primitive.c
index d59a90ba3a1..30561e47d20 100644
--- a/source/blender/bmesh/operators/bmo_primitive.c
+++ b/source/blender/bmesh/operators/bmo_primitive.c
@@ -267,19 +267,19 @@ void bmo_create_grid_exec(BMesh *bm, BMOperator *op)
for (a = 0; a < seg - 1; a++) {
if (a) {
- BMO_op_initf(bm, &bmop, "extrude_edge_only edges=%s", &prevop, "geomout");
+ BMO_op_initf(bm, &bmop, op->flag, "extrude_edge_only edges=%s", &prevop, "geomout");
BMO_op_exec(bm, &bmop);
BMO_op_finish(bm, &prevop);
BMO_slot_buffer_flag_enable(bm, &bmop, "geomout", BM_VERT, VERT_MARK);
}
else {
- BMO_op_initf(bm, &bmop, "extrude_edge_only edges=%fe", EDGE_ORIG);
+ BMO_op_initf(bm, &bmop, op->flag, "extrude_edge_only edges=%fe", EDGE_ORIG);
BMO_op_exec(bm, &bmop);
BMO_slot_buffer_flag_enable(bm, &bmop, "geomout", BM_VERT, VERT_MARK);
}
- BMO_op_callf(bm, "translate vec=%v verts=%s", vec, &bmop, "geomout");
+ BMO_op_callf(bm, op->flag, "translate vec=%v verts=%s", vec, &bmop, "geomout");
prevop = bmop;
}
@@ -309,7 +309,7 @@ void bmo_create_uvsphere_exec(BMesh *bm, BMOperator *op)
phid /= 2;
for (a = 0; a <= tot; a++) {
/* Going in this direction, then edge extruding, makes normals face outward */
- vec[0] = -dia *sinf(phi);
+ vec[0] = -dia * sinf(phi);
vec[1] = 0.0;
vec[2] = dia * cosf(phi);
eve = BM_vert_create(bm, vec, NULL);
@@ -333,17 +333,17 @@ void bmo_create_uvsphere_exec(BMesh *bm, BMOperator *op)
for (a = 0; a < seg; a++) {
if (a) {
- BMO_op_initf(bm, &bmop, "extrude_edge_only edges=%s", &prevop, "geomout");
+ BMO_op_initf(bm, &bmop, op->flag, "extrude_edge_only edges=%s", &prevop, "geomout");
BMO_op_exec(bm, &bmop);
BMO_op_finish(bm, &prevop);
}
else {
- BMO_op_initf(bm, &bmop, "extrude_edge_only edges=%fe", EDGE_ORIG);
+ BMO_op_initf(bm, &bmop, op->flag, "extrude_edge_only edges=%fe", EDGE_ORIG);
BMO_op_exec(bm, &bmop);
}
BMO_slot_buffer_flag_enable(bm, &bmop, "geomout", BM_VERT, VERT_MARK);
- BMO_op_callf(bm, "rotate cent=%v mat=%m3 verts=%s", vec, cmat, &bmop, "geomout");
+ BMO_op_callf(bm, op->flag, "rotate cent=%v mat=%m3 verts=%s", vec, cmat, &bmop, "geomout");
prevop = bmop;
}
@@ -354,7 +354,7 @@ void bmo_create_uvsphere_exec(BMesh *bm, BMOperator *op)
{
float len, len2, vec2[3];
- len = 2 *dia *sinf(phid / 2.0f);
+ len = 2 *dia * sinf(phid / 2.0f);
/* length of one segment in shortest parallen */
vec[0] = dia * sinf(phid);
@@ -365,7 +365,7 @@ void bmo_create_uvsphere_exec(BMesh *bm, BMOperator *op)
len2 = len_v3v3(vec, vec2);
/* use shortest segment length divided by 3 as merge threshold */
- BMO_op_callf(bm, "remove_doubles verts=%fv dist=%f", VERT_MARK, MIN2(len, len2) / 3.0f);
+ BMO_op_callf(bm, op->flag, "remove_doubles verts=%fv dist=%f", VERT_MARK, MIN2(len, len2) / 3.0f);
}
/* and now do imat */
@@ -426,7 +426,7 @@ void bmo_create_icosphere_exec(BMesh *bm, BMOperator *op)
if (subdiv > 1) {
BMOperator bmop;
- BMO_op_initf(bm, &bmop,
+ BMO_op_initf(bm, &bmop, op->flag,
"subdivide_edges edges=%fe "
"smooth=%f "
"numcuts=%i "
@@ -517,16 +517,16 @@ void bmo_create_circle_exec(BMesh *bm, BMOperator *op)
phi = 0;
if (cap_ends) {
- vec[0] = vec[1] = 0.0f;
- vec[2] = 0.0;
+ zero_v3(vec);
mul_m4_v3(mat, vec);
cent1 = BM_vert_create(bm, vec, NULL);
+ BMO_elem_flag_enable(bm, cent1, VERT_MARK);
}
for (a = 0; a < segs; a++, phi += phid) {
/* Going this way ends up with normal(s) upward */
- vec[0] = -dia *sinf(phi);
+ vec[0] = -dia * sinf(phi);
vec[1] = dia * cosf(phi);
vec[2] = 0.0f;
mul_m4_v3(mat, vec);
@@ -563,7 +563,7 @@ void bmo_create_circle_exec(BMesh *bm, BMOperator *op)
}
if (!cap_tris) {
- BMO_op_callf(bm, "dissolve_faces faces=%ff", FACE_NEW);
+ BMO_op_callf(bm, op->flag, "dissolve_faces faces=%ff", FACE_NEW);
}
BMO_slot_buffer_from_enabled_flag(bm, op, "vertout", BM_VERT, VERT_MARK);
@@ -656,12 +656,12 @@ void bmo_create_cone_exec(BMesh *bm, BMOperator *op)
}
if (!cap_tris) {
- BMO_op_callf(bm, "dissolve_faces faces=%ff", FACE_NEW);
+ BMO_op_callf(bm, op->flag, "dissolve_faces faces=%ff", FACE_NEW);
}
BM_face_create_quad_tri(bm, v1, v2, firstv2, firstv1, NULL, FALSE);
- BMO_op_callf(bm, "remove_doubles verts=%fv dist=%f", VERT_MARK, 0.000001);
+ BMO_op_callf(bm, op->flag, "remove_doubles verts=%fv dist=%f", VERT_MARK, 0.000001);
BMO_slot_buffer_from_enabled_flag(bm, op, "vertout", BM_VERT, VERT_MARK);
}
diff --git a/source/blender/bmesh/operators/bmo_removedoubles.c b/source/blender/bmesh/operators/bmo_removedoubles.c
index b3c348a330c..d3e98dd96c1 100644
--- a/source/blender/bmesh/operators/bmo_removedoubles.c
+++ b/source/blender/bmesh/operators/bmo_removedoubles.c
@@ -227,7 +227,7 @@ void bmo_weld_verts_exec(BMesh *bm, BMOperator *op)
}
}
- BMO_op_callf(bm, "delete geom=%fvef context=%i", ELE_DEL, DEL_ONLYTAGGED);
+ BMO_op_callf(bm, op->flag, "delete geom=%fvef context=%i", ELE_DEL, DEL_ONLYTAGGED);
BLI_array_free(edges);
BLI_array_free(loops);
@@ -244,11 +244,11 @@ static int vergaverco(const void *e1, const void *e2)
else return 0;
}
-#define VERT_TESTED 1
+// #define VERT_TESTED 1 // UNUSED
#define VERT_DOUBLE 2
#define VERT_TARGET 4
#define VERT_KEEP 8
-#define VERT_MARK 16
+// #define VERT_MARK 16 // UNUSED
#define VERT_IN 32
#define EDGE_MARK 1
@@ -347,8 +347,8 @@ void bmo_pointmerge_exec(BMesh *bm, BMOperator *op)
BMO_slot_vec_get(op, "merge_co", vec);
- //BMO_op_callf(bm, "collapse_uvs edges=%s", op, "edges");
- BMO_op_init(bm, &weldop, "weld_verts");
+ //BMO_op_callf(bm, op->flag, "collapse_uvs edges=%s", op, "edges");
+ BMO_op_init(bm, &weldop, op->flag, "weld_verts");
BMO_ITER (v, &siter, bm, op, "verts", BM_VERT) {
if (!snapv) {
@@ -374,8 +374,8 @@ void bmo_collapse_exec(BMesh *bm, BMOperator *op)
float min[3], max[3];
int i, tot;
- BMO_op_callf(bm, "collapse_uvs edges=%s", op, "edges");
- BMO_op_init(bm, &weldop, "weld_verts");
+ BMO_op_callf(bm, op->flag, "collapse_uvs edges=%s", op, "edges");
+ BMO_op_init(bm, &weldop, op->flag, "weld_verts");
BMO_slot_buffer_flag_enable(bm, op, "edges", BM_EDGE, EDGE_MARK);
@@ -487,7 +487,7 @@ void bmo_collapse_uvs_exec(BMesh *bm, BMOperator *op)
}
}
-void bmesh_find_doubles_common(BMesh *bm, BMOperator *op, BMOperator *optarget, const char *targetmapname)
+static void bmesh_find_doubles_common(BMesh *bm, BMOperator *op, BMOperator *optarget, const char *targetmapname)
{
BMOIter oiter;
BMVert *v, *v2;
@@ -561,7 +561,7 @@ void bmo_remove_doubles_exec(BMesh *bm, BMOperator *op)
{
BMOperator weldop;
- BMO_op_init(bm, &weldop, "weld_verts");
+ BMO_op_init(bm, &weldop, op->flag, "weld_verts");
bmesh_find_doubles_common(bm, op, &weldop, "targetmap");
BMO_op_exec(bm, &weldop);
BMO_op_finish(bm, &weldop);
@@ -591,12 +591,12 @@ void bmo_automerge_exec(BMesh *bm, BMOperator *op)
/* Search for doubles among all vertices, but only merge non-VERT_KEEP
* vertices into VERT_KEEP vertices. */
- BMO_op_initf(bm, &findop, "find_doubles verts=%av keep_verts=%fv", VERT_KEEP);
+ BMO_op_initf(bm, &findop, op->flag, "find_doubles verts=%av keep_verts=%fv", VERT_KEEP);
BMO_slot_copy(op, &findop, "dist", "dist");
BMO_op_exec(bm, &findop);
/* weld the vertices */
- BMO_op_init(bm, &weldop, "weld_verts");
+ BMO_op_init(bm, &weldop, op->flag, "weld_verts");
BMO_slot_copy(&findop, &weldop, "targetmapout", "targetmap");
BMO_op_exec(bm, &weldop);
diff --git a/source/blender/bmesh/operators/bmo_subdivide.c b/source/blender/bmesh/operators/bmo_subdivide.c
index ee3e34c527f..4ec3d3471e6 100644
--- a/source/blender/bmesh/operators/bmo_subdivide.c
+++ b/source/blender/bmesh/operators/bmo_subdivide.c
@@ -53,6 +53,9 @@
#define ELE_INNER 8
#define ELE_SPLIT 16
+/* see bug [#32665], 0.00005 means a we get face splits at a little under 1.0 degrees */
+#define FLT_FACE_SPLIT_EPSILON 0.00005
+
/*
* NOTE: beauty has been renamed to flag!
*/
@@ -269,13 +272,15 @@ static void bm_subdivide_multicut(BMesh *bm, BMEdge *edge, const SubDParams *par
* match the input geometry. they're based on the
* pre-split state of the face */
-/*
+/**
+ * <pre>
* v3---------v2
* | |
* | |
* | |
* | |
* v4---v0---v1
+ * </pre>
*/
static void quad_1edge_split(BMesh *bm, BMFace *UNUSED(face),
BMVert **verts, const SubDParams *params)
@@ -306,20 +311,22 @@ static void quad_1edge_split(BMesh *bm, BMFace *UNUSED(face),
}
}
-static SubDPattern quad_1edge = {
+static const SubDPattern quad_1edge = {
{1, 0, 0, 0},
quad_1edge_split,
4,
};
-/*
+/**
+ * <pre>
* v6--------v5
* | |
* | |v4s
* | |v3s
* | s s |
* v7-v0--v1-v2
+ * </pre>
*/
static void quad_2edge_split_path(BMesh *bm, BMFace *UNUSED(face), BMVert **verts,
const SubDParams *params)
@@ -333,19 +340,21 @@ static void quad_2edge_split_path(BMesh *bm, BMFace *UNUSED(face), BMVert **vert
connect_smallest_face(bm, verts[numcuts * 2 + 3], verts[numcuts * 2 + 1], &nf);
}
-static SubDPattern quad_2edge_path = {
+static const SubDPattern quad_2edge_path = {
{1, 1, 0, 0},
quad_2edge_split_path,
4,
};
-/*
+/**
+ * <pre>
* v6--------v5
* | |
* | |v4s
* | |v3s
* | s s |
* v7-v0--v1-v2
+ * </pre>
*/
static void quad_2edge_split_innervert(BMesh *bm, BMFace *UNUSED(face), BMVert **verts,
const SubDParams *params)
@@ -373,20 +382,21 @@ static void quad_2edge_split_innervert(BMesh *bm, BMFace *UNUSED(face), BMVert *
connect_smallest_face(bm, lastv, verts[numcuts * 2 + 2], &nf);
}
-static SubDPattern quad_2edge_innervert = {
+static const SubDPattern quad_2edge_innervert = {
{1, 1, 0, 0},
quad_2edge_split_innervert,
4,
};
-/*
+/**
+ * <pre>
* v6--------v5
* | |
* | |v4s
* | |v3s
* | s s |
* v7-v0--v1-v2
- *
+ * </pre>
*/
static void quad_2edge_split_fan(BMesh *bm, BMFace *UNUSED(face), BMVert **verts,
const SubDParams *params)
@@ -403,13 +413,14 @@ static void quad_2edge_split_fan(BMesh *bm, BMFace *UNUSED(face), BMVert **verts
}
}
-static SubDPattern quad_2edge_fan = {
+static const SubDPattern quad_2edge_fan = {
{1, 1, 0, 0},
quad_2edge_split_fan,
4,
};
-/*
+/**
+ * <pre>
* s s
* v8--v7--v6-v5
* | |
@@ -418,6 +429,7 @@ static SubDPattern quad_2edge_fan = {
* | v3 s
* | s s |
* v9-v0--v1-v2
+ * </pre>
*/
static void quad_3edge_split(BMesh *bm, BMFace *UNUSED(face), BMVert **verts,
const SubDParams *params)
@@ -440,13 +452,14 @@ static void quad_3edge_split(BMesh *bm, BMFace *UNUSED(face), BMVert **verts,
}
}
-static SubDPattern quad_3edge = {
+static const SubDPattern quad_3edge = {
{1, 1, 1, 0},
quad_3edge_split,
4,
};
-/*
+/**
+ * <pre>
* v8--v7-v6--v5
* | s |
* |v9 s s|v4
@@ -455,6 +468,7 @@ static SubDPattern quad_3edge = {
* v11-v0--v1-v2
*
* it goes from bottom up
+ * </pre>
*/
static void quad_4edge_subdivide(BMesh *bm, BMFace *UNUSED(face), BMVert **verts,
const SubDParams *params)
@@ -525,7 +539,8 @@ static void quad_4edge_subdivide(BMesh *bm, BMFace *UNUSED(face), BMVert **verts
MEM_freeN(lines);
}
-/*
+/**
+ * <pre>
* v3
* / \
* / \
@@ -534,6 +549,7 @@ static void quad_4edge_subdivide(BMesh *bm, BMFace *UNUSED(face), BMVert **verts
* / \
* v4--v0--v1--v2
* s s
+ * </pre>
*/
static void tri_1edge_split(BMesh *bm, BMFace *UNUSED(face), BMVert **verts,
const SubDParams *params)
@@ -546,13 +562,15 @@ static void tri_1edge_split(BMesh *bm, BMFace *UNUSED(face), BMVert **verts,
}
}
-static SubDPattern tri_1edge = {
+static const SubDPattern tri_1edge = {
{1, 0, 0},
tri_1edge_split,
3,
};
-/* v5
+/**
+ * <pre>
+ * v5
* / \
* s v6/---\ v4 s
* / \ / \
@@ -560,6 +578,7 @@ static SubDPattern tri_1edge = {
* / \/ \/ \
* v8--v0--v1--v2
* s s
+ * </pre>
*/
static void tri_3edge_subdivide(BMesh *bm, BMFace *UNUSED(face), BMVert **verts,
const SubDParams *params)
@@ -610,7 +629,8 @@ static void tri_3edge_subdivide(BMesh *bm, BMFace *UNUSED(face), BMVert **verts,
}
}
- /*
+ /**
+ * <pre>
* v5
* / \
* s v6/---\ v4 s
@@ -619,6 +639,7 @@ static void tri_3edge_subdivide(BMesh *bm, BMFace *UNUSED(face), BMVert **verts,
* / \/ \/ \
* v8--v0--v1--v2
* s s
+ * </pre>
*/
for (i = 1; i < numcuts + 1; i++) {
for (j = 0; j < i; j++) {
@@ -642,51 +663,55 @@ cleanup:
MEM_freeN(lines);
}
-static SubDPattern tri_3edge = {
+static const SubDPattern tri_3edge = {
{1, 1, 1},
tri_3edge_subdivide,
3,
};
-static SubDPattern quad_4edge = {
+static const SubDPattern quad_4edge = {
{1, 1, 1, 1},
quad_4edge_subdivide,
4,
};
-static SubDPattern *patterns[] = {
- NULL, //quad single edge pattern is inserted here
- NULL, //quad corner vert pattern is inserted here
- NULL, //tri single edge pattern is inserted here
+static const SubDPattern *patterns[] = {
+ NULL, /* quad single edge pattern is inserted here */
+ NULL, /* quad corner vert pattern is inserted here */
+ NULL, /* tri single edge pattern is inserted here */
NULL,
&quad_3edge,
NULL,
};
-#define PLEN (sizeof(patterns) / sizeof(void *))
+#define PATTERNS_TOT (sizeof(patterns) / sizeof(void *))
typedef struct SubDFaceData {
- BMVert *start; SubDPattern *pat;
- int totedgesel; //only used if pat was NULL, e.g. no pattern was found
+ BMVert *start;
+ const SubDPattern *pat;
+ int totedgesel; /* only used if pat was NULL, e.g. no pattern was found */
BMFace *face;
} SubDFaceData;
void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op)
{
BMOpSlot *einput;
- SubDPattern *pat;
+ const SubDPattern *pat;
SubDParams params;
SubDFaceData *facedata = NULL;
+ BLI_array_declare(facedata);
BMIter viter, fiter, liter;
BMVert *v, **verts = NULL;
- BMEdge *edge, **edges = NULL;
- BMLoop *nl, *l, **splits = NULL, **loops = NULL;
- BMFace *face;
- BLI_array_declare(splits);
- BLI_array_declare(loops);
- BLI_array_declare(facedata);
+ BMEdge *edge;
+ BMEdge **edges = NULL;
BLI_array_declare(edges);
+ BMLoop *(*loops_split)[2] = NULL;
+ BLI_array_declare(loops_split);
+ BMLoop **loops = NULL;
+ BLI_array_declare(loops);
+ BMLoop *nl, *l;
+ BMFace *face;
BLI_array_declare(verts);
float smooth, fractal, along_normal;
int use_sphere, cornertype, use_singleedge, use_gridfill;
@@ -708,7 +733,7 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op)
BLI_srandom(seed);
patterns[1] = NULL;
- //straight cut is patterns[1] == NULL
+ /* straight cut is patterns[1] == NULL */
switch (cornertype) {
case SUBD_PATH:
patterns[1] = &quad_2edge_path;
@@ -801,16 +826,12 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op)
/* make sure the two edges have a valid angle to each other */
if (totesel == 2 && BM_edge_share_vert_count(e1, e2)) {
- float angle;
-
sub_v3_v3v3(vec1, e1->v2->co, e1->v1->co);
sub_v3_v3v3(vec2, e2->v2->co, e2->v1->co);
normalize_v3(vec1);
normalize_v3(vec2);
- angle = dot_v3v3(vec1, vec2);
- angle = fabsf(angle);
- if (fabsf(angle - 1.0f) < 0.01f) {
+ if (fabsf(dot_v3v3(vec1, vec2)) > 1.0f - FLT_FACE_SPLIT_EPSILON) {
totesel = 0;
}
}
@@ -843,7 +864,7 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op)
continue;
}
- for (i = 0; i < PLEN; i++) {
+ for (i = 0; i < PATTERNS_TOT; i++) {
pat = patterns[i];
if (!pat) {
continue;
@@ -917,12 +938,12 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op)
/* ok, no pattern. we still may be able to do something */
BLI_array_empty(loops);
- BLI_array_empty(splits);
+ BLI_array_empty(loops_split);
/* for case of two edges, connecting them shouldn't be too hard */
- BM_ITER_ELEM (l, &liter, face, BM_LOOPS_OF_FACE) {
- BLI_array_grow_one(loops);
- loops[BLI_array_count(loops) - 1] = l;
+ BLI_array_grow_items(loops, face->len);
+ BM_ITER_ELEM_INDEX (l, &liter, face, BM_LOOPS_OF_FACE, a) {
+ loops[a] = l;
}
vlen = BLI_array_count(loops);
@@ -953,23 +974,65 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op)
b += numcuts - 1;
+ BLI_array_grow_items(loops_split, numcuts);
for (j = 0; j < numcuts; j++) {
- BLI_array_grow_one(splits);
- splits[BLI_array_count(splits) - 1] = loops[a];
-
- BLI_array_grow_one(splits);
- splits[BLI_array_count(splits) - 1] = loops[b];
+ int ok = TRUE;
+
+ /* Check for special case: [#32500]
+ * This edge pair could be used by more then one face,
+ * in this case it used to (2.63), split both faces along the same verts
+ * while it could be calculated which face should do the split,
+ * its ambigious, so in this case we're better off to skip them as exceptional cases
+ * and not try to be clever guessing which face to cut up.
+ *
+ * To avoid this case we need to check:
+ * Do the verts of each share a face besides the one we are subdividing,
+ * (but not connect to make an edge of that face).
+ */
+ {
+ BMLoop *other_loop;
+ BMIter other_fiter;
+ BM_ITER_ELEM (other_loop, &other_fiter, loops[a]->v, BM_LOOPS_OF_VERT) {
+ if (other_loop->f != face) {
+ if (BM_vert_in_face(other_loop->f, loops[b]->v)) {
+ /* we assume that these verts are not making an edge in the face */
+ BLI_assert(other_loop->prev->v != loops[a]->v);
+ BLI_assert(other_loop->next->v != loops[a]->v);
+
+ ok = FALSE;
+ break;
+ }
+ }
+ }
+ }
+
+
+ if (ok == TRUE) {
+ loops_split[j][0] = loops[a];
+ loops_split[j][1] = loops[b];
+ }
+ else {
+ loops_split[j][0] = NULL;
+ loops_split[j][1] = NULL;
+ }
b = (b - 1) % vlen;
a = (a + 1) % vlen;
}
- //BM_face_legal_splits(bmesh, face, splits, BLI_array_count(splits) / 2);
+ /* Since these are newly created vertices, we don't need to worry about them being legal,
+ * ... though there are some cases we _should_ check for
+ * - concave corner of an ngon.
+ * - 2 edges being used in 2+ ngons.
+ */
+// BM_face_legal_splits(bm, face, loops_split, BLI_array_count(loops_split));
+
+ for (j = 0; j < BLI_array_count(loops_split); j++) {
+ if (loops_split[j][0]) {
+ BLI_assert(BM_edge_exists(loops_split[j][0]->v, loops_split[j][1]->v) == FALSE);
- for (j = 0; j < BLI_array_count(splits) / 2; j++) {
- if (splits[j * 2]) {
/* BMFace *nf = */ /* UNUSED */
- BM_face_split(bm, face, splits[j * 2]->v, splits[j * 2 + 1]->v, &nl, NULL, FALSE);
+ BM_face_split(bm, face, loops_split[j][0]->v, loops_split[j][1]->v, &nl, NULL, FALSE);
}
}
@@ -979,27 +1042,19 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op)
continue;
}
- j = a = 0;
- for (nl = BM_iter_new(&liter, bm, BM_LOOPS_OF_FACE, face);
- nl;
- nl = BM_iter_step(&liter))
- {
+ a = 0;
+ BM_ITER_ELEM_INDEX (nl, &liter, face, BM_LOOPS_OF_FACE, j) {
if (nl->v == facedata[i].start) {
a = j + 1;
break;
}
- j++;
}
- for (j = 0; j < face->len; j++) {
- BLI_array_grow_one(verts);
- }
-
- j = 0;
- for (nl = BM_iter_new(&liter, bm, BM_LOOPS_OF_FACE, face); nl; nl = BM_iter_step(&liter)) {
+ BLI_array_grow_items(verts, face->len);
+
+ BM_ITER_ELEM_INDEX (nl, &liter, face, BM_LOOPS_OF_FACE, j) {
b = (j - a + face->len) % face->len;
verts[b] = nl->v;
- j += 1;
}
BM_CHECK_ELEMENT(face);
@@ -1017,7 +1072,7 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op)
if (facedata) BLI_array_free(facedata);
if (edges) BLI_array_free(edges);
if (verts) BLI_array_free(verts);
- BLI_array_free(splits);
+ BLI_array_free(loops_split);
BLI_array_free(loops);
BMO_slot_buffer_from_enabled_flag(bm, op, "outinner", BM_ALL, ELE_INNER);
@@ -1037,7 +1092,7 @@ void BM_mesh_esubdivide(BMesh *bm, const char edge_hflag,
BMOperator op;
/* use_sphere isnt exposed here since its only used for new primitives */
- BMO_op_initf(bm, &op,
+ BMO_op_initf(bm, &op, BMO_FLAG_DEFAULTS,
"subdivide_edges edges=%he "
"smooth=%f fractal=%f along_normal=%f "
"numcuts=%i "
diff --git a/source/blender/bmesh/operators/bmo_triangulate.c b/source/blender/bmesh/operators/bmo_triangulate.c
index 0903620f9a0..de876477e5a 100644
--- a/source/blender/bmesh/operators/bmo_triangulate.c
+++ b/source/blender/bmesh/operators/bmo_triangulate.c
@@ -212,7 +212,7 @@ void bmo_triangle_fill_exec(BMesh *bm, BMOperator *op)
BLI_smallhash_release(&hash);
/* clean up fill */
- BMO_op_initf(bm, &bmop, "beautify_fill faces=%ff constrain_edges=%fe", ELE_NEW, EDGE_MARK);
+ BMO_op_initf(bm, &bmop, op->flag, "beautify_fill faces=%ff constrain_edges=%fe", ELE_NEW, EDGE_MARK);
BMO_op_exec(bm, &bmop);
BMO_slot_buffer_flag_enable(bm, &bmop, "geomout", BM_FACE | BM_EDGE, ELE_NEW);
BMO_op_finish(bm, &bmop);
diff --git a/source/blender/bmesh/operators/bmo_utils.c b/source/blender/bmesh/operators/bmo_utils.c
index 7d6e34b3a05..88ed1250264 100644
--- a/source/blender/bmesh/operators/bmo_utils.c
+++ b/source/blender/bmesh/operators/bmo_utils.c
@@ -73,7 +73,7 @@ void bmo_translate_exec(BMesh *bm, BMOperator *op)
unit_m4(mat);
copy_v3_v3(mat[3], vec);
- BMO_op_callf(bm, "transform mat=%m4 verts=%s", mat, op, "verts");
+ BMO_op_callf(bm, op->flag, "transform mat=%m4 verts=%s", mat, op, "verts");
}
void bmo_scale_exec(BMesh *bm, BMOperator *op)
@@ -87,7 +87,7 @@ void bmo_scale_exec(BMesh *bm, BMOperator *op)
mat[1][1] = vec[1];
mat[2][2] = vec[2];
- BMO_op_callf(bm, "transform mat=%m3 verts=%s", mat, op, "verts");
+ BMO_op_callf(bm, op->flag, "transform mat=%m3 verts=%s", mat, op, "verts");
}
void bmo_rotate_exec(BMesh *bm, BMOperator *op)
@@ -100,12 +100,12 @@ void bmo_rotate_exec(BMesh *bm, BMOperator *op)
* this is how editmesh did it and I'm too tired to think
* through the math right now. */
mul_v3_fl(vec, -1.0f);
- BMO_op_callf(bm, "translate verts=%s vec=%v", op, "verts", vec);
+ BMO_op_callf(bm, op->flag, "translate verts=%s vec=%v", op, "verts", vec);
- BMO_op_callf(bm, "transform mat=%s verts=%s", op, "mat", op, "verts");
+ BMO_op_callf(bm, op->flag, "transform mat=%s verts=%s", op, "mat", op, "verts");
mul_v3_fl(vec, -1.0f);
- BMO_op_callf(bm, "translate verts=%s vec=%v", op, "verts", vec);
+ BMO_op_callf(bm, op->flag, "translate verts=%s vec=%v", op, "verts", vec);
}
void bmo_reverse_faces_exec(BMesh *bm, BMOperator *op)
@@ -182,14 +182,17 @@ static void bmo_region_extend_extend(BMesh *bm, BMOperator *op, int usefaces)
if (!usefaces) {
BMO_ITER (v, &siter, bm, op, "geom", BM_VERT) {
BM_ITER_ELEM (e, &eiter, v, BM_EDGES_OF_VERT) {
- if (!BMO_elem_flag_test(bm, e, SEL_ORIG))
- break;
+ if (!BM_elem_flag_test(e, BM_ELEM_HIDDEN))
+ if (!BMO_elem_flag_test(bm, e, SEL_ORIG))
+ break;
}
if (e) {
BM_ITER_ELEM (e, &eiter, v, BM_EDGES_OF_VERT) {
- BMO_elem_flag_enable(bm, e, SEL_FLAG);
- BMO_elem_flag_enable(bm, BM_edge_other_vert(e, v), SEL_FLAG);
+ if (!BM_elem_flag_test(e, BM_ELEM_HIDDEN)) {
+ BMO_elem_flag_enable(bm, e, SEL_FLAG);
+ BMO_elem_flag_enable(bm, BM_edge_other_vert(e, v), SEL_FLAG);
+ }
}
}
}
@@ -202,8 +205,10 @@ static void bmo_region_extend_extend(BMesh *bm, BMOperator *op, int usefaces)
BMO_ITER (f, &siter, bm, op, "geom", BM_FACE) {
BM_ITER_ELEM (l, &liter, f, BM_LOOPS_OF_FACE) {
BM_ITER_ELEM (f2, &fiter, l->e, BM_FACES_OF_EDGE) {
- if (!BMO_elem_flag_test(bm, f2, SEL_ORIG)) {
- BMO_elem_flag_enable(bm, f2, SEL_FLAG);
+ if (!BM_elem_flag_test(f2, BM_ELEM_HIDDEN)) {
+ if (!BMO_elem_flag_test(bm, f2, SEL_ORIG)) {
+ BMO_elem_flag_enable(bm, f2, SEL_FLAG);
+ }
}
}
}
@@ -221,15 +226,18 @@ static void bmo_region_extend_constrict(BMesh *bm, BMOperator *op, int usefaces)
if (!usefaces) {
BMO_ITER (v, &siter, bm, op, "geom", BM_VERT) {
BM_ITER_ELEM (e, &eiter, v, BM_EDGES_OF_VERT) {
- if (!BMO_elem_flag_test(bm, e, SEL_ORIG))
- break;
+ if (!BM_elem_flag_test(e, BM_ELEM_HIDDEN))
+ if (!BMO_elem_flag_test(bm, e, SEL_ORIG))
+ break;
}
if (e) {
BMO_elem_flag_enable(bm, v, SEL_FLAG);
BM_ITER_ELEM (e, &eiter, v, BM_EDGES_OF_VERT) {
- BMO_elem_flag_enable(bm, e, SEL_FLAG);
+ if (!BM_elem_flag_test(e, BM_ELEM_HIDDEN)) {
+ BMO_elem_flag_enable(bm, e, SEL_FLAG);
+ }
}
}
@@ -243,9 +251,11 @@ static void bmo_region_extend_constrict(BMesh *bm, BMOperator *op, int usefaces)
BMO_ITER (f, &siter, bm, op, "geom", BM_FACE) {
BM_ITER_ELEM (l, &liter, f, BM_LOOPS_OF_FACE) {
BM_ITER_ELEM (f2, &fiter, l->e, BM_FACES_OF_EDGE) {
- if (!BMO_elem_flag_test(bm, f2, SEL_ORIG)) {
- BMO_elem_flag_enable(bm, f, SEL_FLAG);
- break;
+ if (!BM_elem_flag_test(f2, BM_ELEM_HIDDEN)) {
+ if (!BMO_elem_flag_test(bm, f2, SEL_ORIG)) {
+ BMO_elem_flag_enable(bm, f, SEL_FLAG);
+ break;
+ }
}
}
}
@@ -304,7 +314,7 @@ void bmo_recalc_face_normals_exec(BMesh *bm, BMOperator *op)
BLI_array_declare(fstack);
BMLoop *l, *l2;
float maxx, maxx_test, cent[3];
- int i, maxi, flagflip = BMO_slot_bool_get(op, "do_flip");
+ int i, i_max, flagflip = BMO_slot_bool_get(op, "do_flip");
startf = NULL;
maxx = -1.0e10;
@@ -353,7 +363,7 @@ void bmo_recalc_face_normals_exec(BMesh *bm, BMOperator *op)
BMO_elem_flag_enable(bm, startf, FACE_VIS);
i = 0;
- maxi = 1;
+ i_max = 1;
while (i >= 0) {
f = fstack[i];
i--;
@@ -381,9 +391,9 @@ void bmo_recalc_face_normals_exec(BMesh *bm, BMOperator *op)
}
}
- if (i == maxi) {
+ if (i == i_max) {
BLI_array_grow_one(fstack);
- maxi++;
+ i_max++;
}
fstack[i] = l2->f;
@@ -413,11 +423,16 @@ void bmo_smooth_vert_exec(BMesh *bm, BMOperator *op)
float (*cos)[3] = NULL;
float *co, *co2, clipdist = BMO_slot_float_get(op, "clipdist");
int i, j, clipx, clipy, clipz;
+ int xaxis, yaxis, zaxis;
clipx = BMO_slot_bool_get(op, "mirror_clip_x");
clipy = BMO_slot_bool_get(op, "mirror_clip_y");
clipz = BMO_slot_bool_get(op, "mirror_clip_z");
+ xaxis = BMO_slot_bool_get(op, "use_axis_x");
+ yaxis = BMO_slot_bool_get(op, "use_axis_y");
+ zaxis = BMO_slot_bool_get(op, "use_axis_z");
+
i = 0;
BMO_ITER (v, &siter, bm, op, "verts", BM_VERT) {
BLI_array_grow_one(cos);
@@ -451,7 +466,13 @@ void bmo_smooth_vert_exec(BMesh *bm, BMOperator *op)
i = 0;
BMO_ITER (v, &siter, bm, op, "verts", BM_VERT) {
- copy_v3_v3(v->co, cos[i]);
+ if (xaxis)
+ v->co[0] = cos[i][0];
+ if (yaxis)
+ v->co[1] = cos[i][1];
+ if (zaxis)
+ v->co[2] = cos[i][2];
+
i++;
}
@@ -530,7 +551,7 @@ void bmo_similar_faces_exec(BMesh *bm, BMOperator *op)
/*
* The first thing to do is to iterate through all the the selected items and mark them since
* they will be in the selection anyway.
- * This will increase performance, (especially when the number of originaly selected faces is high)
+ * This will increase performance, (especially when the number of originally selected faces is high)
* so the overall complexity will be less than $O(mn)$ where is the total number of selected faces,
* and n is the total number of faces
*/
diff --git a/source/blender/bmesh/operators/bmo_wireframe.c b/source/blender/bmesh/operators/bmo_wireframe.c
index e0dc5cf48c7..d572a1c5863 100644
--- a/source/blender/bmesh/operators/bmo_wireframe.c
+++ b/source/blender/bmesh/operators/bmo_wireframe.c
@@ -34,7 +34,7 @@
#include "intern/bmesh_operators_private.h" /* own include */
-BMLoop *bm_edge_tag_faceloop(BMEdge *e)
+static BMLoop *bm_edge_tag_faceloop(BMEdge *e)
{
BMLoop *l, *l_first;
diff --git a/source/blender/bmesh/tools/BME_bevel.c b/source/blender/bmesh/tools/BME_bevel.c
index 07e413985bf..98f270abd16 100644
--- a/source/blender/bmesh/tools/BME_bevel.c
+++ b/source/blender/bmesh/tools/BME_bevel.c
@@ -38,7 +38,6 @@
#include "BLI_ghash.h"
#include "BLI_memarena.h"
-#include "BKE_utildefines.h"
#include "BKE_tessmesh.h"
#include "BKE_bmesh.h"
@@ -67,7 +66,7 @@
/* ------- Bevel code starts here -------- */
-BME_TransData_Head *BME_init_transdata(int bufsize)
+static BME_TransData_Head *BME_init_transdata(int bufsize)
{
BME_TransData_Head *td;
@@ -86,9 +85,9 @@ void BME_free_transdata(BME_TransData_Head *td)
MEM_freeN(td);
}
-BME_TransData *BME_assign_transdata(BME_TransData_Head *td, BMesh *bm, BMVert *v,
- float *co, float *org, float *vec, float *loc,
- float factor, float weight, float maxfactor, float *max)
+static BME_TransData *BME_assign_transdata(BME_TransData_Head *td, BMesh *bm, BMVert *v,
+ float *co, float *org, float *vec, float *loc,
+ float factor, float weight, float maxfactor, float *max)
{
BME_TransData *vtd;
int is_new = 0;
@@ -141,7 +140,7 @@ BME_TransData *BME_get_transdata(BME_TransData_Head *td, BMVert *v)
}
/* a hack (?) to use the transdata memarena to allocate floats for use with the max limits */
-float *BME_new_transdata_float(BME_TransData_Head *td)
+static float *BME_new_transdata_float(BME_TransData_Head *td)
{
return BLI_memarena_alloc(td->ma, sizeof(float));
}
@@ -1029,17 +1028,16 @@ static BMesh *BME_bevel_reinitialize(BMesh *bm)
#endif
/**
- * BME_bevel_mesh
+ * BME_bevel_mesh
*
- * Mesh beveling tool:
+ * Mesh beveling tool:
*
- * Bevels an entire mesh. It currently uses the flags of
- * its vertices and edges to track topological changes.
- * The parameter "value" is the distance to inset (should be negative).
- * The parameter "options" is not currently used.
+ * Bevels an entire mesh. It currently uses the flags of
+ * its vertices and edges to track topological changes.
+ * The parameter "value" is the distance to inset (should be negative).
+ * The parameter "options" is not currently used.
*
- * Returns -
- * A BMesh pointer to the BM passed as a parameter.
+ * \return A BMesh pointer to the BM passed as a parameter.
*/
static BMesh *BME_bevel_mesh(BMesh *bm, float value, int UNUSED(res), int options,
@@ -1129,7 +1127,7 @@ BMesh *BME_bevel(BMEditMesh *em, float value, int res, int options, int defgrp_i
}
/* possibly needed when running as a tool (which is no longer functional)
- * but keep as an optioin for now */
+ * but keep as an option for now */
if (do_tessface) {
BMEdit_RecalcTessellation(em);
}
diff --git a/source/blender/collada/AnimationExporter.cpp b/source/blender/collada/AnimationExporter.cpp
index 57829f777c5..0e8ead61437 100644
--- a/source/blender/collada/AnimationExporter.cpp
+++ b/source/blender/collada/AnimationExporter.cpp
@@ -106,7 +106,8 @@ void AnimationExporter::operator()(Object *ob)
if ((!strcmp(transformName, "lens")) ||
(!strcmp(transformName, "ortho_scale")) ||
- (!strcmp(transformName, "clip_end")) || (!strcmp(transformName, "clip_start")))
+ (!strcmp(transformName, "clip_end")) ||
+ (!strcmp(transformName, "clip_start")))
{
dae_animation(ob, fcu, transformName, true);
}
@@ -203,8 +204,10 @@ void AnimationExporter::dae_animation(Object *ob, FCurve *fcu, char *transformNa
}
//axis names for colors
- else if (!strcmp(transformName, "color") || !strcmp(transformName, "specular_color") || !strcmp(transformName, "diffuse_color") ||
- (!strcmp(transformName, "alpha")))
+ else if (!strcmp(transformName, "color") ||
+ !strcmp(transformName, "specular_color") ||
+ !strcmp(transformName, "diffuse_color") ||
+ !strcmp(transformName, "alpha"))
{
const char *axis_names[] = {"R", "G", "B"};
if (fcu->array_index < 3)
@@ -212,8 +215,10 @@ void AnimationExporter::dae_animation(Object *ob, FCurve *fcu, char *transformNa
}
//axis names for transforms
- else if ((!strcmp(transformName, "location") || !strcmp(transformName, "scale")) ||
- (!strcmp(transformName, "rotation_euler")) || (!strcmp(transformName, "rotation_quaternion")))
+ else if (!strcmp(transformName, "location") ||
+ !strcmp(transformName, "scale") ||
+ !strcmp(transformName, "rotation_euler") ||
+ !strcmp(transformName, "rotation_quaternion"))
{
const char *axis_names[] = {"X", "Y", "Z"};
if (fcu->array_index < 3)
@@ -260,9 +265,13 @@ void AnimationExporter::dae_animation(Object *ob, FCurve *fcu, char *transformNa
MEM_freeN(eul);
MEM_freeN(eul_axis);
}
+ else if(!strcmp(transformName, "lens") && (ob->type == OB_CAMERA)) {
+ output_id = create_lens_source_from_fcurve((Camera *) ob->data, COLLADASW::InputSemantic::OUTPUT, fcu, anim_id);
+ }
else {
output_id = create_source_from_fcurve(COLLADASW::InputSemantic::OUTPUT, fcu, anim_id, axis_name);
}
+
// create interpolations source
std::string interpolation_id = create_interpolation_source(fcu, anim_id, axis_name, &has_tangents);
@@ -553,7 +562,7 @@ void AnimationExporter::add_source_parameters(COLLADASW::SourceBase::ParameterNa
}
}
-void AnimationExporter::get_source_values(BezTriple *bezt, COLLADASW::InputSemantic::Semantics semantic, bool rotation, float *values, int *length)
+void AnimationExporter::get_source_values(BezTriple *bezt, COLLADASW::InputSemantic::Semantics semantic, bool is_rotation, float *values, int *length)
{
switch (semantic) {
case COLLADASW::InputSemantic::INPUT:
@@ -562,7 +571,7 @@ void AnimationExporter::get_source_values(BezTriple *bezt, COLLADASW::InputSeman
break;
case COLLADASW::InputSemantic::OUTPUT:
*length = 1;
- if (rotation) {
+ if (is_rotation) {
values[0] = RAD2DEGF(bezt->vec[1][1]);
}
else {
@@ -578,7 +587,7 @@ void AnimationExporter::get_source_values(BezTriple *bezt, COLLADASW::InputSeman
values[0] = 0;
values[1] = 0;
}
- else if (rotation) {
+ else if (is_rotation) {
values[1] = RAD2DEGF(bezt->vec[0][1]);
}
else {
@@ -594,7 +603,7 @@ void AnimationExporter::get_source_values(BezTriple *bezt, COLLADASW::InputSeman
values[0] = 0;
values[1] = 0;
}
- else if (rotation) {
+ else if (is_rotation) {
values[1] = RAD2DEGF(bezt->vec[2][1]);
}
else {
@@ -654,6 +663,44 @@ std::string AnimationExporter::create_source_from_fcurve(COLLADASW::InputSemanti
return source_id;
}
+/*
+ * Similar to create_source_from_fcurve, but adds conversion of lens
+ * animation data from focal length to FOV.
+ */
+std::string AnimationExporter::create_lens_source_from_fcurve(Camera *cam, COLLADASW::InputSemantic::Semantics semantic, FCurve *fcu, const std::string& anim_id)
+{
+ std::string source_id = anim_id + get_semantic_suffix(semantic);
+
+ COLLADASW::FloatSourceF source(mSW);
+ source.setId(source_id);
+ source.setArrayId(source_id + ARRAY_ID_SUFFIX);
+ source.setAccessorCount(fcu->totvert);
+
+ source.setAccessorStride(1);
+
+ COLLADASW::SourceBase::ParameterNameList &param = source.getParameterNameList();
+ add_source_parameters(param, semantic, false, "", false);
+
+ source.prepareToAppendValues();
+
+ for (unsigned int i = 0; i < fcu->totvert; i++) {
+ float values[3]; // be careful!
+ int length = 0;
+ get_source_values(&fcu->bezt[i], semantic, false, values, &length);
+ for (int j = 0; j < length; j++)
+ {
+ float val = RAD2DEGF(focallength_to_fov(values[j], cam->sensor_x));
+ source.appendValues(val);
+ }
+ }
+
+ source.finish();
+
+ return source_id;
+}
+
+
+
//Currently called only to get OUTPUT source values ( if rotation and hence the axis is also specified )
std::string AnimationExporter::create_source_from_array(COLLADASW::InputSemantic::Semantics semantic, float *v, int tot, bool is_rot, const std::string& anim_id, const char *axis_name)
{
diff --git a/source/blender/collada/AnimationExporter.h b/source/blender/collada/AnimationExporter.h
index 1313687db28..7fd39765cc9 100644
--- a/source/blender/collada/AnimationExporter.h
+++ b/source/blender/collada/AnimationExporter.h
@@ -96,7 +96,7 @@ public:
protected:
const ExportSettings *export_settings;
- void dae_animation(Object* ob, FCurve *fcu, char* transformName, bool is_param, Material *ma = NULL);
+ void dae_animation(Object *ob, FCurve *fcu, char *transformName, bool is_param, Material *ma = NULL);
void write_bone_animation_matrix(Object *ob_arm, Bone *bone);
@@ -133,6 +133,8 @@ protected:
std::string create_source_from_fcurve(COLLADASW::InputSemantic::Semantics semantic, FCurve *fcu, const std::string& anim_id, const char *axis_name);
+ std::string create_lens_source_from_fcurve(Camera *cam, COLLADASW::InputSemantic::Semantics semantic, FCurve *fcu, const std::string& anim_id);
+
std::string create_source_from_array(COLLADASW::InputSemantic::Semantics semantic, float *v, int tot, bool is_rot, const std::string& anim_id, const char *axis_name);
std::string create_source_from_vector(COLLADASW::InputSemantic::Semantics semantic, std::vector<float> &fra, bool is_rot, const std::string& anim_id, const char *axis_name);
@@ -159,7 +161,7 @@ protected:
bool hasAnimations(Scene *sce);
- char* extract_transform_name(char *rna_path);
+ char *extract_transform_name(char *rna_path);
std::string getObjectBoneName(Object *ob, const FCurve * fcu);
};
diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp
index 4182a9c4c93..b2748a55b6a 100644
--- a/source/blender/collada/AnimationImporter.cpp
+++ b/source/blender/collada/AnimationImporter.cpp
@@ -561,7 +561,7 @@ void AnimationImporter:: Assign_transform_animations(COLLADAFW::Transformation *
case COLLADAFW::Transformation::MATRIX:
/*{
- COLLADAFW::Matrix* mat = (COLLADAFW::Matrix*)transform;
+ COLLADAFW::Matrix *mat = (COLLADAFW::Matrix*)transform;
COLLADABU::Math::Matrix4 mat4 = mat->getMatrix();
switch (binding->animationClass) {
case COLLADAFW::AnimationList::TRANSFORM:
@@ -652,6 +652,50 @@ void AnimationImporter:: Assign_float_animations(const COLLADAFW::UniqueId& list
}
+/*
+ * Lens animations must be stored in COLLADA by using FOV,
+ * while blender internally uses focal length.
+ * The imported animation curves must be converted appropriately.
+ */
+void AnimationImporter::Assign_lens_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, const double aspect, Camera *cam, const char *anim_type, int fov_type)
+{
+ char rna_path[100];
+ if (animlist_map.find(listid) == animlist_map.end()) {
+ return;
+ }
+ else {
+ //anim_type has animations
+ const COLLADAFW::AnimationList *animlist = animlist_map[listid];
+ const COLLADAFW::AnimationList::AnimationBindings& bindings = animlist->getAnimationBindings();
+ //all the curves belonging to the current binding
+ std::vector<FCurve *> animcurves;
+ for (unsigned int j = 0; j < bindings.getCount(); j++) {
+ animcurves = curve_map[bindings[j].animation];
+
+ BLI_strncpy(rna_path, anim_type, sizeof(rna_path));
+
+ modify_fcurve(&animcurves, rna_path, 0);
+ std::vector<FCurve *>::iterator iter;
+ //Add the curves of the current animation to the object
+ for (iter = animcurves.begin(); iter != animcurves.end(); iter++) {
+ FCurve *fcu = *iter;
+
+ for (unsigned int i = 0; i < fcu->totvert; i++) {
+
+ double input_fov = fcu->bezt[i].vec[1][1];
+
+ // NOTE: Needs more testing (As we curretnly have no official test data for this)
+ double xfov = (fov_type == CAMERA_YFOV) ? (2.0f * atanf(aspect * tanf(DEG2RADF(input_fov) * 0.5f))) : DEG2RADF(input_fov);
+
+ fcu->bezt[i].vec[1][1] = fov_to_focallength(xfov, cam->sensor_x);
+ }
+
+ BLI_addtail(AnimCurves, fcu);
+ }
+ }
+ }
+}
+
void AnimationImporter::apply_matrix_curves(Object *ob, std::vector<FCurve *>& animcurves, COLLADAFW::Node *root, COLLADAFW::Node *node,
COLLADAFW::Transformation *tm)
{
@@ -796,6 +840,39 @@ void AnimationImporter::apply_matrix_curves(Object *ob, std::vector<FCurve *>& a
}
+/*
+ * This function returns the aspet ration from the Collada camera.
+ *
+ * Note:COLLADA allows to specify either XFov, or YFov alone.
+ * In tghat case the aspect ratio can be determined from
+ * the viewport aspect ratio (which is 1:1 ?)
+ * XXX: check this: its probably wrong!
+ * If both values are specified, then the aspect ration is simply xfov/yfov
+ * and if aspect ratio is efined, then .. well then its that one.
+ */
+static const double get_aspect_ratio(const COLLADAFW::Camera *camera)
+{
+ double aspect = camera->getAspectRatio().getValue();
+
+ if(aspect == 0)
+ {
+ const double yfov = camera->getYFov().getValue();
+
+ if(yfov == 0)
+ aspect=1; // assume yfov and xfov are equal
+ else
+ {
+ const double xfov = camera->getXFov().getValue();
+ if (xfov==0)
+ aspect = 1;
+ else
+ aspect = xfov / yfov;
+ }
+ }
+ return aspect;
+}
+
+
void AnimationImporter::translate_Animations(COLLADAFW::Node *node,
std::map<COLLADAFW::UniqueId, COLLADAFW::Node *>& root_map,
std::multimap<COLLADAFW::UniqueId, Object *>& object_map,
@@ -804,8 +881,15 @@ void AnimationImporter::translate_Animations(COLLADAFW::Node *node,
AnimationImporter::AnimMix *animType = get_animation_type(node, FW_object_map);
bool is_joint = node->getType() == COLLADAFW::Node::JOINT;
- COLLADAFW::Node *root = root_map.find(node->getUniqueId()) == root_map.end() ? node : root_map[node->getUniqueId()];
- Object *ob = is_joint ? armature_importer->get_armature_for_joint(root) : object_map.find(node->getUniqueId())->second;
+ COLLADAFW::UniqueId uid = node->getUniqueId();
+ COLLADAFW::Node *root = root_map.find(uid) == root_map.end() ? node : root_map[uid];
+
+ Object *ob;
+ if(is_joint)
+ ob = armature_importer->get_armature_for_joint(root);
+ else
+ ob = object_map.find(uid) == object_map.end() ? NULL : object_map.find(uid)->second;
+
if (!ob) {
fprintf(stderr, "cannot find Object for Node with id=\"%s\"\n", node->getOriginalId().c_str());
return;
@@ -916,11 +1000,12 @@ void AnimationImporter::translate_Animations(COLLADAFW::Node *node,
}
}
- if ( (animType->camera) != 0) {
- Camera *camera = (Camera *) ob->data;
-
- if (!camera->adt || !camera->adt->action) act = verify_adt_action((ID *)&camera->id, 1);
- else act = camera->adt->action;
+ if (animType->camera != 0) {
+ Camera *cam = (Camera *) ob->data;
+ if (!cam->adt || !cam->adt->action)
+ act = verify_adt_action((ID *)&cam->id, 1);
+ else
+ act = cam->adt->action;
ListBase *AnimCurves = &(act->curves);
const COLLADAFW::InstanceCameraPointerArray& nodeCameras = node->getInstanceCameras();
@@ -931,7 +1016,15 @@ void AnimationImporter::translate_Animations(COLLADAFW::Node *node,
if ((animType->camera & CAMERA_XFOV) != 0) {
const COLLADAFW::AnimatableFloat *xfov = &(camera->getXFov());
const COLLADAFW::UniqueId& listid = xfov->getAnimationList();
- Assign_float_animations(listid, AnimCurves, "lens");
+ double aspect = get_aspect_ratio(camera);
+ Assign_lens_animations(listid, AnimCurves, aspect, cam, "lens", CAMERA_XFOV);
+ }
+
+ else if ((animType->camera & CAMERA_YFOV) != 0) {
+ const COLLADAFW::AnimatableFloat *yfov = &(camera->getYFov());
+ const COLLADAFW::UniqueId& listid = yfov->getAnimationList();
+ double aspect = get_aspect_ratio(camera);
+ Assign_lens_animations(listid, AnimCurves, aspect, cam, "lens", CAMERA_YFOV);
}
else if ((animType->camera & CAMERA_XMAG) != 0) {
@@ -940,6 +1033,12 @@ void AnimationImporter::translate_Animations(COLLADAFW::Node *node,
Assign_float_animations(listid, AnimCurves, "ortho_scale");
}
+ else if ((animType->camera & CAMERA_YMAG) != 0) {
+ const COLLADAFW::AnimatableFloat *ymag = &(camera->getYMag());
+ const COLLADAFW::UniqueId& listid = ymag->getAnimationList();
+ Assign_float_animations(listid, AnimCurves, "ortho_scale");
+ }
+
if ((animType->camera & CAMERA_ZFAR) != 0) {
const COLLADAFW::AnimatableFloat *zfar = &(camera->getFarClippingPlane());
const COLLADAFW::UniqueId& listid = zfar->getAnimationList();
@@ -1166,14 +1265,27 @@ AnimationImporter::AnimMix *AnimationImporter::get_animation_type(const COLLADAF
const COLLADAFW::InstanceCameraPointerArray& nodeCameras = node->getInstanceCameras();
for (unsigned int i = 0; i < nodeCameras.getCount(); i++) {
- const COLLADAFW::Camera *camera = (COLLADAFW::Camera *) FW_object_map[nodeCameras[i]->getInstanciatedObjectId()];
+ const COLLADAFW::Camera *camera = (COLLADAFW::Camera *) FW_object_map[nodeCameras[i]->getInstanciatedObjectId()];
+ if ( camera == NULL ) {
+ // Can happen if the node refers to an unknown camera.
+ continue;
+ }
+
+ const bool is_perspective_type = camera->getCameraType() == COLLADAFW::Camera::PERSPECTIVE;
- if (camera->getCameraType() == COLLADAFW::Camera::PERSPECTIVE) {
- types->camera = setAnimType(&(camera->getXMag()), (types->camera), CAMERA_XFOV);
+ int addition;
+ const COLLADAFW::Animatable *mag;
+ const COLLADAFW::UniqueId listid = camera->getYMag().getAnimationList();
+ if (animlist_map.find(listid) != animlist_map.end()) {
+ mag = &(camera->getYMag());
+ addition = (is_perspective_type) ? CAMERA_YFOV: CAMERA_YMAG;
}
else {
- types->camera = setAnimType(&(camera->getXMag()), (types->camera), CAMERA_XMAG);
+ mag = &(camera->getXMag());
+ addition = (is_perspective_type) ? CAMERA_XFOV: CAMERA_XMAG;
}
+ types->camera = setAnimType(mag, (types->camera), addition);
+
types->camera = setAnimType(&(camera->getFarClippingPlane()), (types->camera), CAMERA_ZFAR);
types->camera = setAnimType(&(camera->getNearClippingPlane()), (types->camera), CAMERA_ZNEAR);
@@ -1205,10 +1317,14 @@ AnimationImporter::AnimMix *AnimationImporter::get_animation_type(const COLLADAF
int AnimationImporter::setAnimType(const COLLADAFW::Animatable *prop, int types, int addition)
{
- const COLLADAFW::UniqueId& listid = prop->getAnimationList();
+ int anim_type;
+ const COLLADAFW::UniqueId& listid = prop->getAnimationList();
if (animlist_map.find(listid) != animlist_map.end())
- return types | addition;
- else return types;
+ anim_type = types | addition;
+ else
+ anim_type = types;
+
+ return anim_type;
}
// Is not used anymore.
diff --git a/source/blender/collada/AnimationImporter.h b/source/blender/collada/AnimationImporter.h
index d6a93a36c6e..db61692484b 100644
--- a/source/blender/collada/AnimationImporter.h
+++ b/source/blender/collada/AnimationImporter.h
@@ -102,8 +102,10 @@ private:
// INANIMATE = 0,
CAMERA_XFOV = 2,
CAMERA_XMAG = 4,
- CAMERA_ZFAR = 8,
- CAMERA_ZNEAR = 16
+ CAMERA_YFOV = 8,
+ CAMERA_YMAG = 16,
+ CAMERA_ZFAR = 32,
+ CAMERA_ZNEAR = 64
};
enum matAnim
@@ -163,6 +165,7 @@ public:
void Assign_color_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, const char * anim_type);
void Assign_float_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, const char * anim_type);
+ void Assign_lens_animations(const COLLADAFW::UniqueId& listid, ListBase *AnimCurves, const double aspect, Camera *cam, const char *anim_type, int fov_type);
int setAnimType ( const COLLADAFW::Animatable * prop, int type, int addition);
diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp
index c5feb62fd80..30e9baccbf1 100644
--- a/source/blender/collada/ArmatureExporter.cpp
+++ b/source/blender/collada/ArmatureExporter.cpp
@@ -189,7 +189,7 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm, Scene *sce,
#if 0
if (bone->childbase.first == NULL || BLI_countlist(&(bone->childbase)) >= 2) {
- add_blender_leaf_bone( bone, ob_arm , node );
+ add_blender_leaf_bone( bone, ob_arm, node);
}
else {
#endif
diff --git a/source/blender/collada/CameraExporter.cpp b/source/blender/collada/CameraExporter.cpp
index be424fbbb4d..7d438f7f12f 100644
--- a/source/blender/collada/CameraExporter.cpp
+++ b/source/blender/collada/CameraExporter.cpp
@@ -84,7 +84,7 @@ void CamerasExporter::operator()(Object *ob, Scene *sce)
default:
{
COLLADASW::OrthographicOptic ortho(mSW);
- ortho.setXMag(cam->ortho_scale, "xmag");
+ ortho.setXMag(cam->ortho_scale / 2, "xmag");
ortho.setAspectRatio((float)(sce->r.xsch) / (float)(sce->r.ysch), false, "aspect_ratio");
ortho.setZFar(cam->clipend, false, "zfar");
ortho.setZNear(cam->clipsta, false, "znear");
diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp
index c47798ee804..bd7ad16dabd 100644
--- a/source/blender/collada/DocumentExporter.cpp
+++ b/source/blender/collada/DocumentExporter.cpp
@@ -99,7 +99,6 @@ extern char build_rev[];
#include "BKE_action.h" // pose functions
#include "BKE_armature.h"
#include "BKE_image.h"
-#include "BKE_utildefines.h"
#include "BKE_object.h"
#include "BLI_math.h"
@@ -161,9 +160,11 @@ void DocumentExporter::exportCurrentScene(Scene *sce)
clear_global_id_map();
COLLADABU::NativeString native_filename =
- COLLADABU::NativeString(std::string(this->export_settings->filepath));
+ COLLADABU::NativeString(std::string(this->export_settings->filepath), COLLADABU::NativeString::ENCODING_UTF8);
COLLADASW::StreamWriter sw(native_filename);
+ fprintf(stdout, "Collada export: %s\n", this->export_settings->filepath);
+
// open <collada>
sw.startDocument();
diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp
index ca07512f439..f37f065b03b 100644
--- a/source/blender/collada/DocumentImporter.cpp
+++ b/source/blender/collada/DocumentImporter.cpp
@@ -62,13 +62,13 @@ extern "C" {
#include "BKE_texture.h"
#include "BKE_fcurve.h"
#include "BKE_depsgraph.h"
-#include "BLI_path_util.h"
#include "BKE_scene.h"
#include "BKE_global.h"
#include "BKE_material.h"
-#include "BKE_utildefines.h"
#include "BKE_image.h"
+#include "BLI_path_util.h"
+
#include "DNA_camera_types.h"
#include "DNA_lamp_types.h"
@@ -88,8 +88,8 @@ extern "C" {
/*
- COLLADA Importer limitations:
- - no multiple scene import, all objects are added to active scene
+ * COLLADA Importer limitations:
+ * - no multiple scene import, all objects are added to active scene
*/
// #define COLLADA_DEBUG
@@ -208,6 +208,10 @@ void DocumentImporter::finish()
write_node(roots[i], NULL, sce, NULL, false);
}
}
+
+
+ mesh_importer.optimize_material_assignments();
+
armature_importer.set_tags_map(this->uid_tags_map);
armature_importer.make_armatures(mContext);
@@ -308,7 +312,7 @@ Object *DocumentImporter::create_camera_object(COLLADAFW::InstanceCamera *camera
{
const COLLADAFW::UniqueId& cam_uid = camera->getInstanciatedObjectId();
if (uid_camera_map.find(cam_uid) == uid_camera_map.end()) {
- fprintf(stderr, "Couldn't find camera by UID.\n");
+ // fprintf(stderr, "Couldn't find camera by UID.\n");
return NULL;
}
@@ -443,7 +447,13 @@ void DocumentImporter::write_node(COLLADAFW::Node *node, COLLADAFW::Node *parent
}
while (camera_done < camera.getCount()) {
ob = create_camera_object(camera[camera_done], sce);
- objects_done->push_back(ob);
+ if (ob == NULL) {
+ std::string id = node->getOriginalId();
+ std::string name = node->getName();
+ fprintf(stderr, "<node id=\"%s\", name=\"%s\" >...contains a reference to an unknown instance_camera.\n", id.c_str(), name.c_str());
+ }
+ else
+ objects_done->push_back(ob);
++camera_done;
}
while (lamp_done < lamp.getCount()) {
@@ -846,7 +856,7 @@ bool DocumentImporter::writeCamera(const COLLADAFW::Camera *camera)
switch (cam->type) {
case CAM_ORTHO:
{
- double ymag = camera->getYMag().getValue();
+ double ymag = 2 * camera->getYMag().getValue();
double aspect = camera->getAspectRatio().getValue();
double xmag = aspect * ymag;
cam->ortho_scale = (float)xmag;
@@ -857,23 +867,25 @@ bool DocumentImporter::writeCamera(const COLLADAFW::Camera *camera)
{
double yfov = camera->getYFov().getValue();
double aspect = camera->getAspectRatio().getValue();
- double xfov = aspect * yfov;
- // xfov is in degrees, cam->lens is in millimiters
- cam->lens = fov_to_focallength(DEG2RADF(xfov), cam->sensor_x);
+
+ // NOTE: Needs more testing (As we curretnly have no official test data for this)
+
+ double xfov = 2.0f * atanf(aspect * tanf(DEG2RADF(yfov) * 0.5f));
+ cam->lens = fov_to_focallength(xfov, cam->sensor_x);
}
break;
}
}
break;
/* XXX correct way to do following four is probably to get also render
- size and determine proper settings from that somehow */
+ * size and determine proper settings from that somehow */
case COLLADAFW::Camera::ASPECTRATIO_AND_X:
case COLLADAFW::Camera::SINGLE_X:
case COLLADAFW::Camera::X_AND_Y:
{
switch (cam->type) {
case CAM_ORTHO:
- cam->ortho_scale = (float)camera->getXMag().getValue();
+ cam->ortho_scale = (float)camera->getXMag().getValue() * 2;
break;
case CAM_PERSP:
default:
diff --git a/source/blender/collada/DocumentImporter.h b/source/blender/collada/DocumentImporter.h
index 13f23b23388..e878a5a5b48 100644
--- a/source/blender/collada/DocumentImporter.h
+++ b/source/blender/collada/DocumentImporter.h
@@ -78,8 +78,9 @@ public:
void write_profile_COMMON(COLLADAFW::EffectCommon*, Material*);
void translate_anim_recursive(COLLADAFW::Node*, COLLADAFW::Node*, Object*);
- /** This method will be called if an error in the loading process occurred and the loader cannot
- continue to load. The writer should undo all operations that have been performed.
+ /**
+ * This method will be called if an error in the loading process occurred and the loader cannot
+ * continue to load. The writer should undo all operations that have been performed.
\param errorMessage A message containing informations about the error that occurred.
*/
void cancel(const COLLADAFW::String& errorMessage);
diff --git a/source/blender/collada/EffectExporter.cpp b/source/blender/collada/EffectExporter.cpp
index f11ecc7f16d..dd59fb9fb91 100644
--- a/source/blender/collada/EffectExporter.cpp
+++ b/source/blender/collada/EffectExporter.cpp
@@ -35,17 +35,19 @@
#include "DocumentExporter.h"
#include "MaterialExporter.h"
-#include "DNA_mesh_types.h"
-#include "DNA_texture_types.h"
-#include "DNA_world_types.h"
-
-#include "BKE_customdata.h"
-#include "BKE_mesh.h"
-#include "BKE_material.h"
-
#include "collada_internal.h"
#include "collada_utils.h"
+extern "C" {
+ #include "DNA_mesh_types.h"
+ #include "DNA_texture_types.h"
+ #include "DNA_world_types.h"
+
+ #include "BKE_customdata.h"
+ #include "BKE_mesh.h"
+ #include "BKE_material.h"
+}
+
// OB_MESH is assumed
static std::string getActiveUVLayerName(Object *ob)
{
@@ -173,7 +175,7 @@ void EffectsExporter::operator()(Material *ma, Object *ob)
{
// create a list of indices to textures of type TEX_IMAGE
std::vector<int> tex_indices;
- if(this->export_settings->include_material_textures)
+ if (this->export_settings->include_material_textures)
createTextureIndices(ma, tex_indices);
openEffect(translate_id(id_name(ma)) + "-effect");
@@ -311,42 +313,48 @@ void EffectsExporter::operator()(Material *ma, Object *ob)
std::set<Image *> uv_textures;
if (ob->type == OB_MESH && ob->totcol && this->export_settings->include_uv_textures) {
+ bool active_uv_only = this->export_settings->active_uv_only;
Mesh *me = (Mesh *) ob->data;
+ int active_uv_layer = CustomData_get_active_layer_index(&me->pdata, CD_MTEXPOLY);
+
BKE_mesh_tessface_ensure(me);
for (int i = 0; i < me->pdata.totlayer; i++) {
- if (me->pdata.layers[i].type == CD_MTEXPOLY) {
- MTexPoly *txface = (MTexPoly *)me->pdata.layers[i].data;
- MFace *mface = me->mface;
- for (int j = 0; j < me->totpoly; j++, mface++, txface++) {
-
- Material *mat = give_current_material(ob, mface->mat_nr + 1);
- if (mat != ma)
- continue;
-
- Image *ima = txface->tpage;
- if (ima == NULL)
- continue;
-
-
- bool not_in_list = uv_textures.find(ima)==uv_textures.end();
- if (not_in_list) {
- std::string name = id_name(ima);
- std::string key(name);
- key = translate_id(key);
-
- // create only one <sampler>/<surface> pair for each unique image
- if (im_samp_map.find(key) == im_samp_map.end()) {
- //<newparam> <sampler> <source>
- COLLADASW::Sampler sampler(COLLADASW::Sampler::SAMPLER_TYPE_2D,
- key + COLLADASW::Sampler::SAMPLER_SID_SUFFIX,
- key + COLLADASW::Sampler::SURFACE_SID_SUFFIX);
- sampler.setImageId(key);
- samplers[a] = sampler;
- samp_surf[b][0] = &samplers[a];
- im_samp_map[key] = b;
- b++;
- a++;
- uv_textures.insert(ima);
+ if (!active_uv_only || active_uv_layer == i)
+ {
+ if (me->pdata.layers[i].type == CD_MTEXPOLY) {
+ MTexPoly *txface = (MTexPoly *)me->pdata.layers[i].data;
+ MFace *mface = me->mface;
+ for (int j = 0; j < me->totpoly; j++, mface++, txface++) {
+
+ Material *mat = give_current_material(ob, mface->mat_nr + 1);
+ if (mat != ma)
+ continue;
+
+ Image *ima = txface->tpage;
+ if (ima == NULL)
+ continue;
+
+
+ bool not_in_list = uv_textures.find(ima)==uv_textures.end();
+ if (not_in_list) {
+ std::string name = id_name(ima);
+ std::string key(name);
+ key = translate_id(key);
+
+ // create only one <sampler>/<surface> pair for each unique image
+ if (im_samp_map.find(key) == im_samp_map.end()) {
+ //<newparam> <sampler> <source>
+ COLLADASW::Sampler sampler(COLLADASW::Sampler::SAMPLER_TYPE_2D,
+ key + COLLADASW::Sampler::SAMPLER_SID_SUFFIX,
+ key + COLLADASW::Sampler::SURFACE_SID_SUFFIX);
+ sampler.setImageId(key);
+ samplers[a] = sampler;
+ samp_surf[b][0] = &samplers[a];
+ im_samp_map[key] = b;
+ b++;
+ a++;
+ uv_textures.insert(ima);
+ }
}
}
}
diff --git a/source/blender/collada/GeometryExporter.cpp b/source/blender/collada/GeometryExporter.cpp
index c3d1106b288..e2332b7cd55 100644
--- a/source/blender/collada/GeometryExporter.cpp
+++ b/source/blender/collada/GeometryExporter.cpp
@@ -42,12 +42,11 @@ extern "C" {
#include "BKE_main.h"
#include "BKE_global.h"
#include "BKE_library.h"
+ #include "BKE_customdata.h"
+ #include "BKE_material.h"
+ #include "BKE_mesh.h"
}
-
-#include "BKE_customdata.h"
-#include "BKE_material.h"
-#include "BKE_mesh.h"
#include "collada_internal.h"
#include "collada_utils.h"
@@ -133,14 +132,17 @@ void GeometryExporter::operator()(Object *ob)
createLooseEdgeList(ob, me, geom_id, norind);
- // XXX slow
- if (ob->totcol) {
- for (int a = 0; a < ob->totcol; a++) {
- createPolylist(a, has_uvs, has_color, ob, me, geom_id, norind);
+ // Only create Polylists if number of faces > 0
+ if (me->totface > 0) {
+ // XXX slow
+ if (ob->totcol) {
+ for (int a = 0; a < ob->totcol; a++) {
+ createPolylist(a, has_uvs, has_color, ob, me, geom_id, norind);
+ }
+ }
+ else {
+ createPolylist(0, has_uvs, has_color, ob, me, geom_id, norind);
}
- }
- else {
- createPolylist(0, has_uvs, has_color, ob, me, geom_id, norind);
}
closeMesh();
@@ -249,7 +251,7 @@ void GeometryExporter::createPolylist(short material_index,
// no faces using this material
if (faces_in_polylist == 0) {
- fprintf(stderr, "%s: no faces use material %d\n", id_name(ob).c_str(), material_index);
+ fprintf(stderr, "%s: material with index %d is not used.\n", id_name(ob).c_str(), material_index);
return;
}
@@ -280,15 +282,18 @@ void GeometryExporter::createPolylist(short material_index,
// if mesh has uv coords writes <input> for TEXCOORD
int num_layers = CustomData_number_of_layers(&me->fdata, CD_MTFACE);
-
+ int active_uv_index = CustomData_get_active_layer_index(&me->fdata, CD_MTFACE)-1;
for (i = 0; i < num_layers; i++) {
- // char *name = CustomData_get_layer_name(&me->fdata, CD_MTFACE, i);
- COLLADASW::Input input3(COLLADASW::InputSemantic::TEXCOORD,
- makeUrl(makeTexcoordSourceId(geom_id, i)),
- 2, // offset always 2, this is only until we have optimized UV sets
- i // set number equals UV map index
- );
- til.push_back(input3);
+ if (!this->export_settings->active_uv_only || i == active_uv_index) {
+
+ // char *name = CustomData_get_layer_name(&me->fdata, CD_MTFACE, i);
+ COLLADASW::Input input3(COLLADASW::InputSemantic::TEXCOORD,
+ makeUrl(makeTexcoordSourceId(geom_id, i)),
+ 2, // offset always 2, this is only until we have optimized UV sets
+ i // set number equals UV map index
+ );
+ til.push_back(input3);
+ }
}
if (has_color) {
@@ -353,8 +358,8 @@ void GeometryExporter::createVertsSource(std::string geom_id, Mesh *me)
param.push_back("X");
param.push_back("Y");
param.push_back("Z");
- /*main function, it creates <source id = "">, <float_array id = ""
- count = ""> */
+ /* main function, it creates <source id = "">, <float_array id = ""
+ * count = ""> */
source.prepareToAppendValues();
//appends data to <float_array>
int i = 0;
diff --git a/source/blender/collada/GeometryExporter.h b/source/blender/collada/GeometryExporter.h
index f14775b9f44..7161bb751dd 100644
--- a/source/blender/collada/GeometryExporter.h
+++ b/source/blender/collada/GeometryExporter.h
@@ -119,8 +119,7 @@ struct GeometryFunctor {
LinkNode *node;
for (node=export_set; node; node = node->next) {
Object *ob = (Object *)node->link;
- if (ob->type == OB_MESH)
- {
+ if (ob->type == OB_MESH) {
f(ob);
}
}
diff --git a/source/blender/collada/ImageExporter.cpp b/source/blender/collada/ImageExporter.cpp
index f789cfe3660..a15dadda8cf 100644
--- a/source/blender/collada/ImageExporter.cpp
+++ b/source/blender/collada/ImageExporter.cpp
@@ -39,7 +39,6 @@ extern "C" {
#include "BKE_image.h"
#include "BKE_main.h"
#include "BKE_mesh.h"
-#include "BKE_utildefines.h"
#include "BLI_fileops.h"
#include "BLI_path_util.h"
#include "BLI_string.h"
@@ -63,6 +62,11 @@ void ImagesExporter::export_UV_Image(Image *image, bool use_copies)
if (not_yet_exported) {
ImBuf *imbuf = BKE_image_get_ibuf(image, NULL);
+ if(!imbuf) {
+ fprintf(stderr, "Collada export: image does not exist:\n%s\n", image->name);
+ return;
+ }
+
bool is_dirty = imbuf->userflags & IB_BITMAPDIRTY;
ImageFormatData imageFormat;
@@ -70,6 +74,7 @@ void ImagesExporter::export_UV_Image(Image *image, bool use_copies)
short image_source = image->source;
bool is_generated = image_source == IMA_SRC_GENERATED;
+ bool is_packed = image->packedfile != NULL;
char export_path[FILE_MAX];
char source_path[FILE_MAX];
@@ -79,7 +84,7 @@ void ImagesExporter::export_UV_Image(Image *image, bool use_copies)
// Destination folder for exported assets
BLI_split_dir_part(this->export_settings->filepath, export_dir, sizeof(export_dir));
- if (is_generated || is_dirty || use_copies) {
+ if (is_generated || is_dirty || use_copies || is_packed) {
// make absolute destination path
@@ -92,7 +97,7 @@ void ImagesExporter::export_UV_Image(Image *image, bool use_copies)
BLI_make_existing_file(export_path);
}
- if (is_generated || is_dirty) {
+ if (is_generated || is_dirty || is_packed) {
// This image in its current state only exists in Blender memory.
// So we have to export it. The export will keep the image state intact,
@@ -100,6 +105,7 @@ void ImagesExporter::export_UV_Image(Image *image, bool use_copies)
if (BKE_imbuf_write_as(imbuf, export_path, &imageFormat, true) == 0) {
fprintf(stderr, "Collada export: Cannot export image to:\n%s\n", export_path);
+ return;
}
BLI_strncpy(export_path, export_file, sizeof(export_path));
}
@@ -114,11 +120,15 @@ void ImagesExporter::export_UV_Image(Image *image, bool use_copies)
// This image is already located on the file system.
// But we want to create copies here.
- // To avoid overwroting images with same file name but
- // differenet source locations
-
- if (BLI_copy(source_path, export_path) != 0) {
- fprintf(stderr, "Collada export: Cannot copy image:\n source:%s\ndest :%s\n", source_path, export_path);
+ // To move images into the same export directory.
+ // Note: If an image is already located in the export folder,
+ // then skip the copy (as it would result in a file copy error).
+
+ if (BLI_path_cmp(source_path, export_path) != 0) {
+ if (BLI_copy(source_path, export_path) != 0) {
+ fprintf(stderr, "Collada export: Cannot copy image:\n source:%s\ndest :%s\n", source_path, export_path);
+ return;
+ }
}
BLI_strncpy(export_path, export_file, sizeof(export_path));
@@ -126,7 +136,7 @@ void ImagesExporter::export_UV_Image(Image *image, bool use_copies)
}
else {
- // Do not make any vopies, but use the source path directly as reference
+ // Do not make any copies, but use the source path directly as reference
// to the original image
BLI_strncpy(export_path, source_path, sizeof(export_path));
@@ -135,7 +145,7 @@ void ImagesExporter::export_UV_Image(Image *image, bool use_copies)
COLLADASW::Image img(COLLADABU::URI(COLLADABU::URI::nativePathToUri(export_path)), translated_name, translated_name); /* set name also to mNameNC. This helps other viewers import files exported from Blender better */
img.add(mSW);
- fprintf(stdout, "Collada export: Added image: %s\n",export_file);
+ fprintf(stdout, "Collada export: Added image: %s\n", export_file);
mImages.push_back(translated_name);
}
}
@@ -144,26 +154,31 @@ void ImagesExporter::export_UV_Images()
{
std::set<Image *> uv_textures;
LinkNode *node;
- bool use_copies = this->export_settings->use_texture_copies;
- for (node=this->export_settings->export_set; node; node=node->next) {
+ bool use_texture_copies = this->export_settings->use_texture_copies;
+ bool active_uv_only = this->export_settings->active_uv_only;
+
+ for (node = this->export_settings->export_set; node; node = node->next) {
Object *ob = (Object *)node->link;
if (ob->type == OB_MESH && ob->totcol) {
Mesh *me = (Mesh *) ob->data;
BKE_mesh_tessface_ensure(me);
+ int active_uv_layer = CustomData_get_active_layer_index(&me->pdata, CD_MTEXPOLY);
for (int i = 0; i < me->pdata.totlayer; i++) {
if (me->pdata.layers[i].type == CD_MTEXPOLY) {
- MTexPoly *txface = (MTexPoly *)me->pdata.layers[i].data;
- MFace *mface = me->mface;
- for (int j = 0; j < me->totpoly; j++, mface++, txface++) {
-
- Image *ima = txface->tpage;
- if (ima == NULL)
- continue;
-
- bool not_in_list = uv_textures.find(ima)==uv_textures.end();
- if (not_in_list) {
- uv_textures.insert(ima);
- export_UV_Image(ima, use_copies);
+ if (!active_uv_only || active_uv_layer == i)
+ {
+ MTexPoly *txface = (MTexPoly *)me->pdata.layers[i].data;
+ for (int j = 0; j < me->totpoly; j++, txface++) {
+
+ Image *ima = txface->tpage;
+ if (ima == NULL)
+ continue;
+
+ bool not_in_list = uv_textures.find(ima) == uv_textures.end();
+ if (not_in_list) {
+ uv_textures.insert(ima);
+ export_UV_Image(ima, use_texture_copies);
+ }
}
}
}
@@ -177,7 +192,7 @@ bool ImagesExporter::hasImages(Scene *sce)
{
LinkNode *node;
- for (node=this->export_settings->export_set; node; node=node->next) {
+ for (node = this->export_settings->export_set; node; node = node->next) {
Object *ob = (Object *)node->link;
int a;
for (a = 0; a < ob->totcol; a++) {
diff --git a/source/blender/collada/InstanceWriter.cpp b/source/blender/collada/InstanceWriter.cpp
index 5908037d782..71371d280df 100644
--- a/source/blender/collada/InstanceWriter.cpp
+++ b/source/blender/collada/InstanceWriter.cpp
@@ -31,13 +31,13 @@
#include "COLLADASWInstanceMaterial.h"
-#include "BKE_customdata.h"
-#include "BKE_material.h"
-
-#include "DNA_mesh_types.h"
+extern "C" {
+ #include "BKE_customdata.h"
+ #include "BKE_material.h"
+ #include "DNA_mesh_types.h"
+}
#include "InstanceWriter.h"
-
#include "collada_internal.h"
#include "collada_utils.h"
@@ -63,7 +63,7 @@ void InstanceWriter::add_material_bindings(COLLADASW::BindMaterial& bind_materia
int active_uv_index = CustomData_get_active_layer_index(&me->fdata, CD_MTFACE) -1;
for (int b = 0; b < totlayer; b++) {
if (!active_uv_only || b == active_uv_index) {
- char *name = bc_CustomData_get_layer_name(&me->fdata, CD_MTFACE, map_index);
+ char *name = bc_CustomData_get_layer_name(&me->fdata, CD_MTFACE, b);
im.push_back(COLLADASW::BindVertexInput(name, "TEXCOORD", map_index++));
}
}
diff --git a/source/blender/collada/MaterialExporter.h b/source/blender/collada/MaterialExporter.h
index f65c8849c84..09d10846b53 100644
--- a/source/blender/collada/MaterialExporter.h
+++ b/source/blender/collada/MaterialExporter.h
@@ -34,11 +34,12 @@
#include "COLLADASWLibraryMaterials.h"
#include "COLLADASWStreamWriter.h"
-#include "BKE_material.h"
-
-#include "DNA_material_types.h"
-#include "DNA_object_types.h"
-#include "DNA_scene_types.h"
+extern "C" {
+ #include "BKE_material.h"
+ #include "DNA_material_types.h"
+ #include "DNA_object_types.h"
+ #include "DNA_scene_types.h"
+}
#include "GeometryExporter.h"
#include "collada_internal.h"
diff --git a/source/blender/collada/MeshImporter.cpp b/source/blender/collada/MeshImporter.cpp
index ded937bf8f3..47ee35f0268 100644
--- a/source/blender/collada/MeshImporter.cpp
+++ b/source/blender/collada/MeshImporter.cpp
@@ -39,22 +39,22 @@
#include "COLLADAFWPolygons.h"
extern "C" {
-#include "BKE_blender.h"
-#include "BKE_customdata.h"
-#include "BKE_displist.h"
-#include "BKE_global.h"
-#include "BKE_library.h"
-#include "BKE_main.h"
-#include "BKE_material.h"
-#include "BKE_mesh.h"
-#include "BKE_object.h"
-
-#include "BLI_listbase.h"
-#include "BLI_math.h"
-#include "BLI_string.h"
-#include "BLI_edgehash.h"
-
-#include "MEM_guardedalloc.h"
+ #include "BKE_blender.h"
+ #include "BKE_customdata.h"
+ #include "BKE_displist.h"
+ #include "BKE_global.h"
+ #include "BKE_library.h"
+ #include "BKE_main.h"
+ #include "BKE_material.h"
+ #include "BKE_mesh.h"
+ #include "BKE_object.h"
+
+ #include "BLI_listbase.h"
+ #include "BLI_math.h"
+ #include "BLI_string.h"
+ #include "BLI_edgehash.h"
+
+ #include "MEM_guardedalloc.h"
}
#include "ArmatureImporter.h"
@@ -467,12 +467,13 @@ bool MeshImporter::primitive_has_faces(COLLADAFW::MeshPrimitive *mp) {
}
// =================================================================
-// Return the number of faces by summing up
+// Return the number of faces by summing up
// the facecounts of the parts.
// hint: This is done because mesh->getFacesCount() does
// count loose edges as extra faces, which is not what we want here.
// =================================================================
-void MeshImporter::allocate_face_data(COLLADAFW::Mesh *mesh, Mesh *me, int new_tris) {
+void MeshImporter::allocate_face_data(COLLADAFW::Mesh *mesh, Mesh *me, int new_tris)
+{
COLLADAFW::MeshPrimitiveArray& prim_arr = mesh->getMeshPrimitives();
int total_facecount = 0;
@@ -569,7 +570,7 @@ void MeshImporter::read_lines(COLLADAFW::Mesh *mesh, Mesh *me)
if (loose_edge_count > 0) {
unsigned int face_edge_count = me->totedge;
- unsigned int total_edge_count = loose_edge_count + face_edge_count;
+ /* unsigned int total_edge_count = loose_edge_count + face_edge_count; */ /* UNUSED */
mesh_add_edges(me, loose_edge_count);
MEdge *med = me->medge + face_edge_count;
@@ -987,6 +988,139 @@ MTex *MeshImporter::assign_textures_to_uvlayer(COLLADAFW::TextureCoordinateBindi
return color_texture;
}
+/**
+ * this function checks if both objects have the same
+ * materials assigned to Object (in the same order)
+ * returns true if condition matches, otherwise false;
+ **/
+static bool bc_has_same_material_configuration(Object *ob1, Object *ob2)
+{
+ if (ob1->totcol != ob2->totcol) return false; // not same number of materials
+ if (ob1->totcol == 0) return false; // no material at all
+
+ for(int index=0; index < ob1->totcol; index++) {
+ if (ob1->matbits[index] != ob2->matbits[index]) return false; // shouldn't happen
+ if (ob1->matbits[index] == 0) return false; // shouldn't happen
+ if (ob1->mat[index] != ob2->mat[index]) return false; // different material assignment
+ }
+ return true;
+}
+
+
+/**
+ *
+ * Caution here: This code assumes tha all materials are assigned to Object
+ * and no material is assigned to Data.
+ * That is true right after the objects have been imported.
+ *
+ **/
+static void bc_copy_materials_to_data(Object *ob, Mesh *me)
+{
+ for (int index = 0; index < ob->totcol; index++) {
+ ob->matbits[index] = 0;
+ me->mat[index] = ob->mat[index];
+ }
+}
+
+/**
+ *
+ * Remove all references to materials from the object
+ *
+ **/
+static void bc_remove_materials_from_object(Object *ob, Mesh *me)
+{
+ for (int index = 0; index < ob->totcol; index++) {
+ ob->matbits[index] = 0;
+ ob->mat[index] = NULL;
+ }
+}
+
+/**
+ * Returns the list of Users of the given Mesh object.
+ * Note: This function uses the object user flag to control
+ * which objects have already been processed.
+ **/
+std::vector<Object *> MeshImporter::get_all_users_of(Mesh *reference_mesh)
+{
+ std::vector<Object *> mesh_users;
+ for (std::vector<Object *>::iterator it = imported_objects.begin();
+ it != imported_objects.end(); ++it)
+ {
+ Object *ob = (*it);
+ if (bc_is_marked(ob)) {
+ bc_remove_mark(ob);
+ Mesh *me = (Mesh *) ob->data;
+ if (me == reference_mesh)
+ mesh_users.push_back(ob);
+ }
+ }
+ return mesh_users;
+}
+
+/**
+ *
+ * During import all materials have been assigned to Object.
+ * Now we iterate over the imported objects and optimize
+ * the assignments as follows:
+ *
+ * for each imported geometry:
+ * if number of users is 1:
+ * get the user (object)
+ * move the materials from Object to Data
+ * else:
+ * determine which materials are assigned to the first user
+ * check if all other users have the same materials in the same order
+ * if the check is positive:
+ * Add the materials of the first user to the geometry
+ * adjust all other users accordingly.
+ *
+ **/
+void MeshImporter::optimize_material_assignments()
+{
+ for (std::vector<Object *>::iterator it = imported_objects.begin();
+ it != imported_objects.end(); ++it)
+ {
+ Object *ob = (*it);
+ Mesh *me = (Mesh *) ob->data;
+ if (me->id.us==1) {
+ bc_copy_materials_to_data(ob,me);
+ bc_remove_materials_from_object(ob,me);
+ bc_remove_mark(ob);
+ }
+ else if (me->id.us > 1)
+ {
+ bool can_move = true;
+ std::vector<Object *> mesh_users = get_all_users_of(me);
+ if (mesh_users.size() > 1)
+ {
+ Object *ref_ob = mesh_users[0];
+ for (int index = 1; index < mesh_users.size(); index++) {
+ if (!bc_has_same_material_configuration(ref_ob, mesh_users[index])) {
+ can_move = false;
+ break;
+ }
+ }
+ if (can_move) {
+ bc_copy_materials_to_data(ref_ob,me);
+ for (int index = 0; index < mesh_users.size(); index++) {
+ Object *object = mesh_users[index];
+ bc_remove_materials_from_object(object,me);
+ bc_remove_mark(object);
+ }
+ }
+ }
+ }
+ }
+}
+
+/**
+ * We do not know in advance which objects will share geometries.
+ * And we do not know either if the objects which share geometries
+ * come along with different materials. So we first create the objects
+ * and assign the materials to Object, then in a later cleanup we decide
+ * which materials shall be moved to the created geometries. Also see
+ * optimize_material_assignments() above.
+ */
MTFace *MeshImporter::assign_material_to_geom(COLLADAFW::MaterialBinding cmaterial,
std::map<COLLADAFW::UniqueId, Material *>& uid_material_map,
Object *ob, const COLLADAFW::UniqueId *geom_uid,
@@ -1002,21 +1136,16 @@ MTFace *MeshImporter::assign_material_to_geom(COLLADAFW::MaterialBinding cmateri
fprintf(stderr, "Cannot find material by UID.\n");
return NULL;
}
-
- // different nodes can point to same geometry, but still also specify the same materials
- // again. Make sure we don't overwrite them on the next occurrences, so keep list of
- // what we already have handled.
- std::multimap<COLLADAFW::UniqueId, COLLADAFW::UniqueId>::iterator it;
- it = materials_mapped_to_geom.find(*geom_uid);
- while (it != materials_mapped_to_geom.end()) {
- if (it->second == ma_uid && it->first == *geom_uid) return NULL; // do nothing if already found
- it++;
- }
+
// first time we get geom_uid, ma_uid pair. Save for later check.
materials_mapped_to_geom.insert(std::pair<COLLADAFW::UniqueId, COLLADAFW::UniqueId>(*geom_uid, ma_uid));
Material *ma = uid_material_map[ma_uid];
- assign_material(ob, ma, ob->totcol + 1);
+
+ // Attention! This temporaly assigns material to object on purpose!
+ // See note above.
+ ob->actcol=0;
+ assign_material(ob, ma, mat_index + 1, BKE_MAT_ASSIGN_OBJECT);
COLLADAFW::TextureCoordinateBindingArray& tex_array =
cmaterial.getTextureCoordinateBindingArray();
@@ -1100,9 +1229,12 @@ Object *MeshImporter::create_mesh_object(COLLADAFW::Node *node, COLLADAFW::Insta
// add object
Object *ob = bc_add_object(scene, OB_MESH, name);
+ bc_set_mark(ob); // used later for material assignement optimization
+
// store object pointer for ArmatureImporter
uid_object_map[*geom_uid] = ob;
+ imported_objects.push_back(ob);
// replace ob->data freeing the old one
Mesh *old_mesh = (Mesh *)ob->data;
diff --git a/source/blender/collada/MeshImporter.h b/source/blender/collada/MeshImporter.h
index e4c1aca395a..746b0738108 100644
--- a/source/blender/collada/MeshImporter.h
+++ b/source/blender/collada/MeshImporter.h
@@ -40,6 +40,11 @@
#include "COLLADAFWTypes.h"
#include "COLLADAFWUniqueId.h"
+#include "ArmatureImporter.h"
+#include "collada_utils.h"
+
+extern "C" {
+#include "BLI_edgehash.h"
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
@@ -47,11 +52,6 @@
#include "DNA_scene_types.h"
#include "DNA_texture_types.h"
-#include "ArmatureImporter.h"
-#include "collada_utils.h"
-
-extern "C" {
-#include "BLI_edgehash.h"
}
// only for ArmatureImporter to "see" MeshImporter::get_object_by_geom_uid
@@ -85,6 +85,7 @@ private:
std::map<COLLADAFW::UniqueId, Mesh*> uid_mesh_map; // geometry unique id-to-mesh map
std::map<COLLADAFW::UniqueId, Object*> uid_object_map; // geom uid-to-object
+ std::vector<Object*> imported_objects; // list of imported objects
// this structure is used to assign material indices to faces
// it holds a portion of Mesh faces and corresponds to a DAE primitive list (<triangles>, <polylist>, etc.)
struct Primitive {
@@ -105,10 +106,10 @@ private:
#endif
void set_face_uv(MTFace *mtface, UVDataWrapper &uvs,
- COLLADAFW::IndexList& index_list, unsigned int *tris_indices);
+ COLLADAFW::IndexList& index_list, unsigned int *tris_indices);
void set_face_uv(MTFace *mtface, UVDataWrapper &uvs,
- COLLADAFW::IndexList& index_list, int index, bool quad);
+ COLLADAFW::IndexList& index_list, int index, bool quad);
#ifdef COLLADA_DEBUG
void print_index_list(COLLADAFW::IndexList& index_list);
@@ -131,7 +132,7 @@ private:
CustomData create_edge_custom_data(EdgeHash *eh);
- void allocate_face_data(COLLADAFW::Mesh *mesh, Mesh *me, int new_tris);
+ void allocate_face_data(COLLADAFW::Mesh *mesh, Mesh *me, int new_tris);
// TODO: import uv set names
void read_faces(COLLADAFW::Mesh *mesh, Mesh *me, int new_tris);
@@ -140,7 +141,9 @@ private:
void get_vector(float v[3], COLLADAFW::MeshVertexData& arr, int i, int stride);
bool flat_face(unsigned int *nind, COLLADAFW::MeshVertexData& nor, int count);
-
+
+ std::vector<Object *> get_all_users_of(Mesh *reference_mesh);
+
public:
MeshImporter(UnitConverter *unitconv, ArmatureImporter *arm, Scene *sce);
@@ -150,20 +153,22 @@ public:
virtual Object *get_object_by_geom_uid(const COLLADAFW::UniqueId& geom_uid);
MTex *assign_textures_to_uvlayer(COLLADAFW::TextureCoordinateBinding &ctexture,
- Mesh *me, TexIndexTextureArrayMap& texindex_texarray_map,
- MTex *color_texture);
-
+ Mesh *me, TexIndexTextureArrayMap& texindex_texarray_map,
+ MTex *color_texture);
+
+ void optimize_material_assignments();
+
MTFace *assign_material_to_geom(COLLADAFW::MaterialBinding cmaterial,
- std::map<COLLADAFW::UniqueId, Material*>& uid_material_map,
- Object *ob, const COLLADAFW::UniqueId *geom_uid,
- MTex **color_texture, char *layername, MTFace *texture_face,
- std::map<Material*, TexIndexTextureArrayMap>& material_texture_mapping_map, short mat_index);
+ std::map<COLLADAFW::UniqueId, Material*>& uid_material_map,
+ Object *ob, const COLLADAFW::UniqueId *geom_uid,
+ MTex **color_texture, char *layername, MTFace *texture_face,
+ std::map<Material*, TexIndexTextureArrayMap>& material_texture_mapping_map, short mat_index);
Object *create_mesh_object(COLLADAFW::Node *node, COLLADAFW::InstanceGeometry *geom,
- bool isController,
- std::map<COLLADAFW::UniqueId, Material*>& uid_material_map,
- std::map<Material*, TexIndexTextureArrayMap>& material_texture_mapping_map);
+ bool isController,
+ std::map<COLLADAFW::UniqueId, Material*>& uid_material_map,
+ std::map<Material*, TexIndexTextureArrayMap>& material_texture_mapping_map);
// create a mesh storing a pointer in a map so it can be retrieved later by geometry UID
bool write_geometry(const COLLADAFW::Geometry* geom);
diff --git a/source/blender/collada/TransformReader.h b/source/blender/collada/TransformReader.h
index a08f4438d73..47e59a1bf52 100644
--- a/source/blender/collada/TransformReader.h
+++ b/source/blender/collada/TransformReader.h
@@ -56,7 +56,7 @@ public:
COLLADAFW::Transformation *tm; // which transform is animated by an AnimationList->id
};
- TransformReader(UnitConverter* conv);
+ TransformReader(UnitConverter *conv);
void get_node_mat(float mat[][4], COLLADAFW::Node *node, std::map<COLLADAFW::UniqueId, Animation> *animation_map, Object *ob);
diff --git a/source/blender/collada/collada.cpp b/source/blender/collada/collada.cpp
index f7e0f75ec5c..fbb18887d1b 100644
--- a/source/blender/collada/collada.cpp
+++ b/source/blender/collada/collada.cpp
@@ -76,6 +76,7 @@ int collada_export(Scene *sce,
if (!BLI_exists(filepath)) {
BLI_make_existing_file(filepath); /* makes the dir if its not there */
if (BLI_file_touch(filepath) == 0) {
+ fprintf(stdout, "Collada export: Can not create: %s\n", filepath);
return 0;
}
}
diff --git a/source/blender/collada/collada_internal.h b/source/blender/collada/collada_internal.h
index b64c75e7960..c1f75f996ce 100644
--- a/source/blender/collada/collada_internal.h
+++ b/source/blender/collada/collada_internal.h
@@ -59,7 +59,7 @@ public:
// Initialize with Z_UP, since Blender uses right-handed, z-up
UnitConverter();
- void read_asset(const COLLADAFW::FileInfo* asset);
+ void read_asset(const COLLADAFW::FileInfo *asset);
void convertVector3(COLLADABU::Math::Vector3 &vec, float *v);
diff --git a/source/blender/collada/collada_utils.cpp b/source/blender/collada/collada_utils.cpp
index 955d699d96c..018d66c6f55 100644
--- a/source/blender/collada/collada_utils.cpp
+++ b/source/blender/collada/collada_utils.cpp
@@ -230,6 +230,11 @@ void bc_remove_mark(Object *ob)
ob->id.flag &= ~LIB_DOIT;
}
+void bc_set_mark(Object *ob)
+{
+ ob->id.flag |= LIB_DOIT;
+}
+
// Use bubble sort algorithm for sorting the export set
void bc_bubble_sort_by_Object_name(LinkNode *export_set)
{
diff --git a/source/blender/collada/collada_utils.h b/source/blender/collada/collada_utils.h
index 5f72581f584..b52115722fe 100644
--- a/source/blender/collada/collada_utils.h
+++ b/source/blender/collada/collada_utils.h
@@ -67,6 +67,7 @@ extern bool bc_has_object_type(LinkNode *export_set, short obtype);
extern int bc_is_marked(Object *ob);
extern void bc_remove_mark(Object *ob);
+extern void bc_set_mark(Object *ob);
extern char *bc_CustomData_get_layer_name(const CustomData *data, int type, int n);
extern char *bc_CustomData_get_active_layer_name(const CustomData *data, int type);
diff --git a/source/blender/compositor/CMakeLists.txt b/source/blender/compositor/CMakeLists.txt
index 9bad1b55d95..9932ed17378 100644
--- a/source/blender/compositor/CMakeLists.txt
+++ b/source/blender/compositor/CMakeLists.txt
@@ -284,8 +284,12 @@ set(SRC
nodes/COM_FilterNode.cpp
nodes/COM_FilterNode.h
+ nodes/COM_DespeckleNode.cpp
+ nodes/COM_DespeckleNode.h
nodes/COM_DilateErodeNode.cpp
nodes/COM_DilateErodeNode.h
+ nodes/COM_InpaintNode.cpp
+ nodes/COM_InpaintNode.h
nodes/COM_BlurNode.cpp
nodes/COM_BlurNode.h
nodes/COM_BokehBlurNode.cpp
@@ -338,6 +342,11 @@ set(SRC
operations/COM_KeyingScreenOperation.cpp
operations/COM_KeyingScreenOperation.h
+ nodes/COM_TrackPositionNode.cpp
+ nodes/COM_TrackPositionNode.h
+ operations/COM_TrackPositionOperation.cpp
+ operations/COM_TrackPositionOperation.h
+
nodes/COM_KeyingNode.cpp
nodes/COM_KeyingNode.h
operations/COM_KeyingOperation.cpp
@@ -466,8 +475,10 @@ set(SRC
operations/COM_DifferenceMatteOperation.h
operations/COM_LuminanceMatteOperation.cpp
operations/COM_LuminanceMatteOperation.h
- operations/COM_DistanceMatteOperation.cpp
- operations/COM_DistanceMatteOperation.h
+ operations/COM_DistanceRGBMatteOperation.cpp
+ operations/COM_DistanceRGBMatteOperation.h
+ operations/COM_DistanceYCCMatteOperation.cpp
+ operations/COM_DistanceYCCMatteOperation.h
operations/COM_ChromaMatteOperation.cpp
operations/COM_ChromaMatteOperation.h
operations/COM_ColorMatteOperation.cpp
@@ -583,8 +594,12 @@ set(SRC
operations/COM_ConvolutionFilterOperation.cpp
operations/COM_ConvolutionEdgeFilterOperation.h
operations/COM_ConvolutionEdgeFilterOperation.cpp
+ operations/COM_DespeckleOperation.cpp
+ operations/COM_DespeckleOperation.h
operations/COM_DilateErodeOperation.cpp
operations/COM_DilateErodeOperation.h
+ operations/COM_InpaintOperation.cpp
+ operations/COM_InpaintOperation.h
operations/COM_GlareThresholdOperation.cpp
operations/COM_GlareThresholdOperation.h
operations/COM_GlareBaseOperation.cpp
@@ -631,4 +646,10 @@ set(SRC
operations/COM_MaskOperation.h
)
+list(APPEND INC
+ ${CMAKE_CURRENT_BINARY_DIR}/operations
+)
+data_to_c(${CMAKE_CURRENT_SOURCE_DIR}/operations/COM_OpenCLKernels.cl
+ ${CMAKE_CURRENT_BINARY_DIR}/operations/COM_OpenCLKernels.cl.h SRC)
+
blender_add_lib(bf_compositor "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/source/blender/compositor/COM_compositor.h b/source/blender/compositor/COM_compositor.h
index 86390e5650a..a64583b68ff 100644
--- a/source/blender/compositor/COM_compositor.h
+++ b/source/blender/compositor/COM_compositor.h
@@ -24,6 +24,7 @@
extern "C" {
#endif
+#include "DNA_color_types.h"
#include "DNA_node_types.h"
/**
@@ -37,9 +38,9 @@ extern "C" {
* @mainpage Introduction of the Blender Compositor
*
* @section bcomp Blender compositor
- * This project redesigns the interals of Blender's compositor. The project has been executed in 2011 by At Mind.
+ * This project redesigns the internals of Blender's compositor. The project has been executed in 2011 by At Mind.
* At Mind is a technology company located in Amsterdam, The Netherlands.
- * The project has been crowdfunded. This code has been released under GPL2 to be used in Blender.
+ * The project has been crowd-funded. This code has been released under GPL2 to be used in Blender.
*
* @section goals The goals of the project
* the new compositor has 2 goals.
@@ -58,7 +59,7 @@ extern "C" {
* @section workflow Work faster
* The previous compositor only showed the final image. The compositor could wait a long time before seeing the result
* of his work. The new compositor will work in a way that it will focus on getting information back to the user.
- * It will prioritise its work to get earlier user feedback.
+ * It will prioritize its work to get earlier user feedback.
*
* @page memory Memory model
* The main issue is the type of memory model to use. Blender is used by consumers and professionals.
@@ -79,7 +80,7 @@ extern "C" {
* Render priority is an priority of an output node. A user has a different need of Render priorities of output nodes
* than during editing.
* for example. the Active ViewerNode has top priority during editing, but during rendering a CompositeNode has.
- * All NodeOperation has a setting for their renderpriority, but only for output NodeOperation these have effect.
+ * All NodeOperation has a setting for their render-priority, but only for output NodeOperation these have effect.
* In ExecutionSystem.execute all priorities are checked. For every priority the ExecutionGroup's are check if the
* priority do match.
* When match the ExecutionGroup will be executed (this happens in serial)
@@ -91,18 +92,18 @@ extern "C" {
* @section order Chunk order
*
* When a ExecutionGroup is executed, first the order of chunks are determined.
- * The settings are stored in the ViewerNode inside the ExecutionGroup. ExecutionGroups that have no viewernode,
+ * The settings are stored in the ViewerNode inside the ExecutionGroup. ExecutionGroups that have no viewer-node,
* will use a default one.
* There are several possible chunk orders
* - [@ref OrderOfChunks.COM_TO_CENTER_OUT]: Start calculating from a configurable point and order by nearest chunk
* - [@ref OrderOfChunks.COM_TO_RANDOM]: Randomize all chunks.
* - [@ref OrderOfChunks.COM_TO_TOP_DOWN]: Start calculation from the bottom to the top of the image
- * - [@ref OrderOfChunks.COM_TO_RULE_OF_THIRDS]: Experimental order based on 9 hotspots in the image
+ * - [@ref OrderOfChunks.COM_TO_RULE_OF_THIRDS]: Experimental order based on 9 hot-spots in the image
*
- * When the chunkorder is determined, the first few chunks will be checked if they can be scheduled.
+ * When the chunk-order is determined, the first few chunks will be checked if they can be scheduled.
* Chunks can have three states:
- * - [@ref ChunkExecutionState.COM_ES_NOT_SCHEDULED]: Chunk is not yet scheduled, or dependacies are not met
- * - [@ref ChunkExecutionState.COM_ES_SCHEDULED]: All dependacies are met, chunk is scheduled, but not finished
+ * - [@ref ChunkExecutionState.COM_ES_NOT_SCHEDULED]: Chunk is not yet scheduled, or dependencies are not met
+ * - [@ref ChunkExecutionState.COM_ES_SCHEDULED]: All dependencies are met, chunk is scheduled, but not finished
* - [@ref ChunkExecutionState.COM_ES_EXECUTED]: Chunk is finished
*
* @see ExecutionGroup.execute
@@ -110,7 +111,7 @@ extern "C" {
* @see OrderOfChunks
*
* @section interest Area of interest
- * An ExecutionGroup can have dependancies to other ExecutionGroup's. Data passing from one ExecutionGroup to another
+ * An ExecutionGroup can have dependencies to other ExecutionGroup's. Data passing from one ExecutionGroup to another
* one are stored in 'chunks'.
* If not all input chunks are available the chunk execution will not be scheduled.
* <pre>
@@ -217,22 +218,22 @@ extern "C" {
* @section workscheduler WorkScheduler
* the WorkScheduler is implemented as a static class. the responsibility of the WorkScheduler is to balance
* WorkPackages to the available and free devices.
- * the workscheduler can work in 2 states. For witching these between the state you need to recompile blender
+ * the work-scheduler can work in 2 states. For witching these between the state you need to recompile blender
*
* @subsection multithread Multi threaded
- * Default the workscheduler will place all work as WorkPackage in a queue.
+ * Default the work-scheduler will place all work as WorkPackage in a queue.
* For every CPUcore a working thread is created. These working threads will ask the WorkScheduler if there is work
* for a specific Device.
- * the workscheduler will find work for the device and the device will be asked to execute the WorkPackage
+ * the work-scheduler will find work for the device and the device will be asked to execute the WorkPackage
*
* @subsection singlethread Single threaded
* For debugging reasons the multi-threading can be disabled. This is done by changing the COM_CURRENT_THREADING_MODEL
- * to COM_TM_NOTHREAD. When compiling the workscheduler
+ * to COM_TM_NOTHREAD. When compiling the work-scheduler
* will be changes to support no threading and run everything on the CPU.
*
* @section devices Devices
* A Device within the compositor context is a Hardware component that can used to calculate chunks.
- * This chunk is encapseled in a WorkPackage.
+ * This chunk is encapsulated in a WorkPackage.
* the WorkScheduler controls the devices and selects the device where a WorkPackage will be calculated.
*
* @subsection WS_Devices Workscheduler
@@ -277,6 +278,9 @@ extern "C" {
* It can be executed during editing (blenkernel/node.c) or rendering
* (renderer/pipeline.c)
*
+ * @param rd [struct RenderData]
+ * Render data for this composite, this won't always belong to a scene.
+ *
* @param editingtree [struct bNodeTree]
* reference to the compositor editing tree
*
@@ -296,8 +300,45 @@ extern "C" {
*
* - output nodes can have different priorities in the WorkScheduler.
* This is implemented in the COM_execute function.
+ *
+ * @param viewSettings
+ * reference to view settings used for color management
+ *
+ * @param displaySettings
+ * reference to display settings used for color management
+ *
+ * OCIO_TODO: this options only used in rare cases, namely in output file node,
+ * so probably this settings could be passed in a nicer way.
+ * should be checked further, probably it'll be also needed for preview
+ * generation in display space
+ */
+void COM_execute(RenderData *rd, bNodeTree *editingtree, int rendering,
+ const ColorManagedViewSettings *viewSettings, const ColorManagedDisplaySettings *displaySettings);
+
+/**
+ * @brief Deinitialize the compositor caches and allocated memory.
+ * Use COM_clearCaches to only free the caches.
+ */
+void COM_deinitialize(void);
+
+/**
+ * @brief Clear all compositor caches. (Compositor system will still remain available).
+ * To deinitialize the compositor use the COM_deinitialize method.
+ */
+// void COM_clearCaches(void); // NOT YET WRITTEN
+
+/**
+ * @brief Return a list of highlighted bnodes pointers.
+ * @return
+ */
+void COM_startReadHighlights(void);
+
+/**
+ * @brief check if a bnode is highlighted
+ * @param bnode
+ * @return
*/
-void COM_execute(RenderData* rd, bNodeTree *editingtree, int rendering);
+int COM_isHighlightedbNode(bNode *bnode);
#ifdef __cplusplus
}
diff --git a/source/blender/compositor/COM_defines.h b/source/blender/compositor/COM_defines.h
index e11048b23f3..3cc161a5877 100644
--- a/source/blender/compositor/COM_defines.h
+++ b/source/blender/compositor/COM_defines.h
@@ -107,4 +107,6 @@ typedef enum OrderOfChunks {
#define COM_NUMBER_OF_CHANNELS 4
+#define COM_BLUR_BOKEH_PIXELS 512
+
#endif
diff --git a/source/blender/compositor/SConscript b/source/blender/compositor/SConscript
index af0d4109acc..9f947ca7327 100644
--- a/source/blender/compositor/SConscript
+++ b/source/blender/compositor/SConscript
@@ -11,4 +11,7 @@ incs += '../opencl ../nodes ../nodes/intern ../nodes/composite '
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
incs += ' ' + env['BF_PTHREADS_INC']
-env.BlenderLib ( 'bf_composite', sources, Split(incs), defines=defs, libtype=['core'], priority = [191] )
+# data files
+incs += ' ' + env['DATA_HEADERS']
+
+env.BlenderLib ( 'bf_composite', sources, Split(incs), defines=defs, libtype=['core'], priority = [164] )
diff --git a/source/blender/compositor/intern/COM_CPUDevice.cpp b/source/blender/compositor/intern/COM_CPUDevice.cpp
index 95462b3c384..7029aa032cc 100644
--- a/source/blender/compositor/intern/COM_CPUDevice.cpp
+++ b/source/blender/compositor/intern/COM_CPUDevice.cpp
@@ -29,10 +29,9 @@ void CPUDevice::execute(WorkPackage *work)
rcti rect;
executionGroup->determineChunkRect(&rect, chunkNumber);
- MemoryBuffer **inputBuffers = executionGroup->getInputBuffersCPU();
- executionGroup->getOutputNodeOperation()->executeRegion(&rect, chunkNumber, inputBuffers);
+ executionGroup->getOutputNodeOperation()->executeRegion(&rect, chunkNumber);
- executionGroup->finalizeChunkExecution(chunkNumber, inputBuffers);
+ executionGroup->finalizeChunkExecution(chunkNumber, NULL);
}
diff --git a/source/blender/compositor/intern/COM_ChunkOrder.cpp b/source/blender/compositor/intern/COM_ChunkOrder.cpp
index 38a3350c263..1b7c435ecea 100644
--- a/source/blender/compositor/intern/COM_ChunkOrder.cpp
+++ b/source/blender/compositor/intern/COM_ChunkOrder.cpp
@@ -45,7 +45,7 @@ void ChunkOrder::determineDistance(ChunkOrderHotspot **hotspots, unsigned int nu
this->m_distance = distance;
}
-bool operator<(const ChunkOrder& a, const ChunkOrder& b)
+bool operator<(const ChunkOrder &a, const ChunkOrder &b)
{
return a.m_distance < b.m_distance;
}
diff --git a/source/blender/compositor/intern/COM_ChunkOrder.h b/source/blender/compositor/intern/COM_ChunkOrder.h
index 190ecb9c380..108836d5299 100644
--- a/source/blender/compositor/intern/COM_ChunkOrder.h
+++ b/source/blender/compositor/intern/COM_ChunkOrder.h
@@ -33,7 +33,7 @@ private:
public:
ChunkOrder();
void determineDistance(ChunkOrderHotspot **hotspots, unsigned int numberOfHotspots);
- friend bool operator<(const ChunkOrder& a, const ChunkOrder& b);
+ friend bool operator<(const ChunkOrder &a, const ChunkOrder &b);
void setChunkNumber(unsigned int chunknumber) { this->m_number = chunknumber; }
void setX(int x) { this->m_x = x; }
diff --git a/source/blender/compositor/intern/COM_CompositorContext.cpp b/source/blender/compositor/intern/COM_CompositorContext.cpp
index fbdb4cd6b28..e1cc25d028a 100644
--- a/source/blender/compositor/intern/COM_CompositorContext.cpp
+++ b/source/blender/compositor/intern/COM_CompositorContext.cpp
@@ -31,6 +31,8 @@ CompositorContext::CompositorContext()
this->m_hasActiveOpenCLDevices = false;
this->m_activegNode = NULL;
this->m_fastCalculation = false;
+ this->m_viewSettings = NULL;
+ this->m_displaySettings = NULL;
}
const int CompositorContext::getFramenumber() const
@@ -42,13 +44,3 @@ const int CompositorContext::getFramenumber() const
return -1; /* this should never happen */
}
}
-
-const int CompositorContext::isColorManaged() const
-{
- if (this->m_rd) {
- return this->m_rd->color_mgt_flag & R_COLOR_MANAGEMENT;
- }
- else {
- return 0; /* this should never happen */
- }
-}
diff --git a/source/blender/compositor/intern/COM_CompositorContext.h b/source/blender/compositor/intern/COM_CompositorContext.h
index 2f6abf39985..2f5e8c0648d 100644
--- a/source/blender/compositor/intern/COM_CompositorContext.h
+++ b/source/blender/compositor/intern/COM_CompositorContext.h
@@ -27,6 +27,7 @@
#include "BKE_text.h"
#include <string>
#include "DNA_node_types.h"
+#include "DNA_color_types.h"
#include "BLI_rect.h"
#include "DNA_scene_types.h"
#include "COM_defines.h"
@@ -79,6 +80,9 @@ private:
*/
bool m_fastCalculation;
+ /* @brief color management settings */
+ const ColorManagedViewSettings *m_viewSettings;
+ const ColorManagedDisplaySettings *m_displaySettings;
public:
/**
* @brief constructor initializes the context with default values.
@@ -126,6 +130,26 @@ public:
const RenderData *getRenderData() const { return this->m_rd; }
/**
+ * @brief set view settings of color color management
+ */
+ void setViewSettings(const ColorManagedViewSettings *viewSettings) { this->m_viewSettings = viewSettings; }
+
+ /**
+ * @brief get view settings of color color management
+ */
+ const ColorManagedViewSettings *getViewSettings() const { return this->m_viewSettings; }
+
+ /**
+ * @brief set display settings of color color management
+ */
+ void setDisplaySettings(const ColorManagedDisplaySettings *displaySettings) { this->m_displaySettings = displaySettings; }
+
+ /**
+ * @brief get display settings of color color management
+ */
+ const ColorManagedDisplaySettings *getDisplaySettings() const { return this->m_displaySettings; }
+
+ /**
* @brief set the quality
*/
void setQuality(CompositorQuality quality) { this->m_quality = quality; }
@@ -152,8 +176,6 @@ public:
int getChunksize() { return this->getbNodeTree()->chunksize; }
- const int isColorManaged() const;
-
void setFastCalculation(bool fastCalculation) {this->m_fastCalculation = fastCalculation;}
bool isFastCalculation() {return this->m_fastCalculation;}
};
diff --git a/source/blender/compositor/intern/COM_Converter.cpp b/source/blender/compositor/intern/COM_Converter.cpp
index 4ed7ae7ca8a..71067ac8f15 100644
--- a/source/blender/compositor/intern/COM_Converter.cpp
+++ b/source/blender/compositor/intern/COM_Converter.cpp
@@ -56,6 +56,7 @@
#include "COM_Converter.h"
#include "COM_CropNode.h"
#include "COM_DefocusNode.h"
+#include "COM_DespeckleNode.h"
#include "COM_DifferenceMatteNode.h"
#include "COM_DilateErodeNode.h"
#include "COM_DirectionalBlurNode.h"
@@ -74,6 +75,7 @@
#include "COM_HueSaturationValueNode.h"
#include "COM_IDMaskNode.h"
#include "COM_ImageNode.h"
+#include "COM_InpaintNode.h"
#include "COM_InvertNode.h"
#include "COM_KeyingNode.h"
#include "COM_KeyingScreenNode.h"
@@ -110,6 +112,7 @@
#include "COM_TransformNode.h"
#include "COM_TranslateNode.h"
#include "COM_TranslateOperation.h"
+#include "COM_TrackPositionNode.h"
#include "COM_ValueNode.h"
#include "COM_VectorBlurNode.h"
#include "COM_VectorCurveNode.h"
@@ -127,16 +130,16 @@ Node *Converter::convert(bNode *b_node, bool fast)
}
if (fast) {
if (b_node->type == CMP_NODE_BLUR ||
- b_node->type == CMP_NODE_VECBLUR ||
- b_node->type == CMP_NODE_BILATERALBLUR ||
- b_node->type == CMP_NODE_DEFOCUS ||
- b_node->type == CMP_NODE_BOKEHBLUR ||
- b_node->type == CMP_NODE_GLARE ||
- b_node->type == CMP_NODE_DBLUR ||
- b_node->type == CMP_NODE_MOVIEDISTORTION ||
- b_node->type == CMP_NODE_LENSDIST ||
- b_node->type == CMP_NODE_DOUBLEEDGEMASK ||
- b_node->type == CMP_NODE_DILATEERODE)
+ b_node->type == CMP_NODE_VECBLUR ||
+ b_node->type == CMP_NODE_BILATERALBLUR ||
+ b_node->type == CMP_NODE_DEFOCUS ||
+ b_node->type == CMP_NODE_BOKEHBLUR ||
+ b_node->type == CMP_NODE_GLARE ||
+ b_node->type == CMP_NODE_DBLUR ||
+ b_node->type == CMP_NODE_MOVIEDISTORTION ||
+ b_node->type == CMP_NODE_LENSDIST ||
+ b_node->type == CMP_NODE_DOUBLEEDGEMASK ||
+ b_node->type == CMP_NODE_DILATEERODE)
{
return new MuteNode(b_node);
}
@@ -302,6 +305,12 @@ Node *Converter::convert(bNode *b_node, bool fast)
case CMP_NODE_DILATEERODE:
node = new DilateErodeNode(b_node);
break;
+ case CMP_NODE_INPAINT:
+ node = new InpaintNode(b_node);
+ break;
+ case CMP_NODE_DESPECKLE:
+ node = new DespeckleNode(b_node);
+ break;
case CMP_NODE_LENSDIST:
node = new LensDistortionNode(b_node);
break;
@@ -377,6 +386,9 @@ Node *Converter::convert(bNode *b_node, bool fast)
case CMP_NODE_KEYING:
node = new KeyingNode(b_node);
break;
+ case CMP_NODE_TRACKPOS:
+ node = new TrackPositionNode(b_node);
+ break;
/* not inplemented yet */
default:
node = new MuteNode(b_node);
@@ -488,7 +500,8 @@ void Converter::convertResolution(SocketConnection *connection, ExecutionSystem
system->addOperation(sxop);
system->addOperation(syop);
- unsigned int resolution[2] = {fromWidth, fromHeight};
+ unsigned int resolution[2] = {fromOperation->getWidth(),
+ fromOperation->getHeight()};
scaleOperation->setResolution(resolution);
sxop->setResolution(resolution);
syop->setResolution(resolution);
@@ -510,7 +523,8 @@ void Converter::convertResolution(SocketConnection *connection, ExecutionSystem
system->addOperation(xop);
system->addOperation(yop);
- unsigned int resolution[2] = {toWidth, toHeight};
+ unsigned int resolution[2] = {toOperation->getWidth(),
+ toOperation->getHeight()};
translateOperation->setResolution(resolution);
xop->setResolution(resolution);
yop->setResolution(resolution);
diff --git a/source/blender/compositor/intern/COM_Device.h b/source/blender/compositor/intern/COM_Device.h
index e33a2a4288f..dc39b2baca7 100644
--- a/source/blender/compositor/intern/COM_Device.h
+++ b/source/blender/compositor/intern/COM_Device.h
@@ -31,8 +31,15 @@
* work are packaged as a WorkPackage instance.
*/
class Device {
+
public:
/**
+ * @brief Declaration of the virtual destructor
+ * @note resolve warning gcc 4.7
+ */
+ virtual ~Device() {}
+
+ /**
* @brief initialize the device
*/
virtual bool initialize() { return true; }
diff --git a/source/blender/compositor/intern/COM_ExecutionGroup.cpp b/source/blender/compositor/intern/COM_ExecutionGroup.cpp
index e437b069e33..5c891705089 100644
--- a/source/blender/compositor/intern/COM_ExecutionGroup.cpp
+++ b/source/blender/compositor/intern/COM_ExecutionGroup.cpp
@@ -25,11 +25,6 @@
#include <sstream>
#include <stdlib.h>
-#include "BLI_math.h"
-#include "PIL_time.h"
-#include "WM_api.h"
-#include "WM_types.h"
-
#include "COM_ExecutionGroup.h"
#include "COM_InputSocket.h"
#include "COM_SocketConnection.h"
@@ -43,6 +38,12 @@
#include "COM_ChunkOrder.h"
#include "COM_ExecutionSystemHelper.h"
+#include "MEM_guardedalloc.h"
+#include "BLI_math.h"
+#include "PIL_time.h"
+#include "WM_api.h"
+#include "WM_types.h"
+
ExecutionGroup::ExecutionGroup()
{
this->m_isOutput = false;
@@ -99,6 +100,9 @@ bool ExecutionGroup::canContainOperation(NodeOperation *operation)
void ExecutionGroup::addOperation(ExecutionSystem *system, NodeOperation *operation)
{
+ /* should never happen but in rare cases it can - it causes confusing crashes */
+ BLI_assert(operation->isOperation() == true);
+
if (containsOperation(operation)) return;
if (canContainOperation(operation)) {
if (!operation->isBufferOperation()) {
@@ -145,14 +149,14 @@ NodeOperation *ExecutionGroup::getOutputNodeOperation() const
void ExecutionGroup::initExecution()
{
if (this->m_chunkExecutionStates != NULL) {
- delete[] this->m_chunkExecutionStates;
+ MEM_freeN(this->m_chunkExecutionStates);
}
unsigned int index;
determineNumberOfChunks();
this->m_chunkExecutionStates = NULL;
if (this->m_numberOfChunks != 0) {
- this->m_chunkExecutionStates = new ChunkExecutionState[this->m_numberOfChunks];
+ this->m_chunkExecutionStates = (ChunkExecutionState *)MEM_mallocN(sizeof(ChunkExecutionState) * this->m_numberOfChunks, __func__);
for (index = 0; index < this->m_numberOfChunks; index++) {
this->m_chunkExecutionStates[index] = COM_ES_NOT_SCHEDULED;
}
@@ -177,7 +181,7 @@ void ExecutionGroup::initExecution()
void ExecutionGroup::deinitExecution()
{
if (this->m_chunkExecutionStates != NULL) {
- delete[] this->m_chunkExecutionStates;
+ MEM_freeN(this->m_chunkExecutionStates);
this->m_chunkExecutionStates = NULL;
}
this->m_numberOfChunks = 0;
@@ -186,7 +190,7 @@ void ExecutionGroup::deinitExecution()
this->m_cachedReadOperations.clear();
this->m_bTree = NULL;
}
-void ExecutionGroup::determineResolution(unsigned int resolution[])
+void ExecutionGroup::determineResolution(unsigned int resolution[2])
{
NodeOperation *operation = this->getOutputNodeOperation();
resolution[0] = operation->getWidth();
@@ -214,7 +218,7 @@ void ExecutionGroup::determineNumberOfChunks()
*/
void ExecutionGroup::execute(ExecutionSystem *graph)
{
- CompositorContext& context = graph->getContext();
+ CompositorContext &context = graph->getContext();
const bNodeTree *bTree = context.getbNodeTree();
if (this->m_width == 0 || this->m_height == 0) {return; } /// @note: break out... no pixels to calculate.
if (bTree->test_break && bTree->test_break(bTree->tbh)) {return; } /// @note: early break out for blur and preview nodes
@@ -224,7 +228,7 @@ void ExecutionGroup::execute(ExecutionSystem *graph)
this->m_chunksFinished = 0;
this->m_bTree = bTree;
unsigned int index;
- unsigned int *chunkOrder = new unsigned int[this->m_numberOfChunks];
+ unsigned int *chunkOrder = (unsigned int *)MEM_mallocN(sizeof(unsigned int) * this->m_numberOfChunks, __func__);
for (chunkNumber = 0; chunkNumber < this->m_numberOfChunks; chunkNumber++) {
chunkOrder[chunkNumber] = chunkNumber;
@@ -253,10 +257,10 @@ void ExecutionGroup::execute(ExecutionSystem *graph)
break;
case COM_TO_CENTER_OUT:
{
- ChunkOrderHotspot **hotspots = new ChunkOrderHotspot *[1];
+ ChunkOrderHotspot *hotspots[1];
hotspots[0] = new ChunkOrderHotspot(this->m_width * centerX, this->m_height * centerY, 0.0f);
rcti rect;
- ChunkOrder *chunkOrders = new ChunkOrder[this->m_numberOfChunks];
+ ChunkOrder *chunkOrders = (ChunkOrder *)MEM_mallocN(sizeof(ChunkOrder) * this->m_numberOfChunks, __func__);
for (index = 0; index < this->m_numberOfChunks; index++) {
determineChunkRect(&rect, index);
chunkOrders[index].setChunkNumber(index);
@@ -271,13 +275,12 @@ void ExecutionGroup::execute(ExecutionSystem *graph)
}
delete hotspots[0];
- delete[] hotspots;
- delete[] chunkOrders;
+ MEM_freeN(chunkOrders);
}
break;
case COM_TO_RULE_OF_THIRDS:
{
- ChunkOrderHotspot **hotspots = new ChunkOrderHotspot *[9];
+ ChunkOrderHotspot *hotspots[9];
unsigned int tx = this->m_width / 6;
unsigned int ty = this->m_height / 6;
unsigned int mx = this->m_width / 2;
@@ -296,7 +299,7 @@ void ExecutionGroup::execute(ExecutionSystem *graph)
hotspots[7] = new ChunkOrderHotspot(mx, ty, addition * 7);
hotspots[8] = new ChunkOrderHotspot(mx, by, addition * 8);
rcti rect;
- ChunkOrder *chunkOrders = new ChunkOrder[this->m_numberOfChunks];
+ ChunkOrder *chunkOrders = (ChunkOrder *)MEM_mallocN(sizeof(ChunkOrder) * this->m_numberOfChunks, __func__);
for (index = 0; index < this->m_numberOfChunks; index++) {
determineChunkRect(&rect, index);
chunkOrders[index].setChunkNumber(index);
@@ -320,8 +323,7 @@ void ExecutionGroup::execute(ExecutionSystem *graph)
delete hotspots[6];
delete hotspots[7];
delete hotspots[8];
- delete[] hotspots;
- delete[] chunkOrders;
+ MEM_freeN(chunkOrders);
}
break;
case COM_TO_TOP_DOWN:
@@ -369,24 +371,7 @@ void ExecutionGroup::execute(ExecutionSystem *graph)
}
}
- delete[] chunkOrder;
-}
-
-MemoryBuffer **ExecutionGroup::getInputBuffersCPU()
-{
- vector<MemoryProxy *> memoryproxies;
- unsigned int index;
-
- this->determineDependingMemoryProxies(&memoryproxies);
- MemoryBuffer **memoryBuffers = new MemoryBuffer *[this->m_cachedMaxReadBufferOffset];
- for (index = 0; index < this->m_cachedMaxReadBufferOffset; index++) {
- memoryBuffers[index] = NULL;
- }
- for (index = 0; index < this->m_cachedReadOperations.size(); index++) {
- ReadBufferOperation *readOperation = (ReadBufferOperation *)this->m_cachedReadOperations[index];
- memoryBuffers[readOperation->getOffset()] = readOperation->getMemoryProxy()->getBuffer();
- }
- return memoryBuffers;
+ MEM_freeN(chunkOrder);
}
MemoryBuffer **ExecutionGroup::getInputBuffersOpenCL(int chunkNumber)
@@ -397,10 +382,7 @@ MemoryBuffer **ExecutionGroup::getInputBuffersOpenCL(int chunkNumber)
determineChunkRect(&rect, chunkNumber);
this->determineDependingMemoryProxies(&memoryproxies);
- MemoryBuffer **memoryBuffers = new MemoryBuffer *[this->m_cachedMaxReadBufferOffset];
- for (index = 0; index < this->m_cachedMaxReadBufferOffset; index++) {
- memoryBuffers[index] = NULL;
- }
+ MemoryBuffer **memoryBuffers = (MemoryBuffer **)MEM_callocN(sizeof(MemoryBuffer *) * this->m_cachedMaxReadBufferOffset, __func__);
rcti output;
for (index = 0; index < this->m_cachedReadOperations.size(); index++) {
ReadBufferOperation *readOperation = (ReadBufferOperation *)this->m_cachedReadOperations[index];
@@ -436,7 +418,7 @@ void ExecutionGroup::finalizeChunkExecution(int chunkNumber, MemoryBuffer **memo
}
}
}
- delete[] memoryBuffers;
+ MEM_freeN(memoryBuffers);
}
if (this->m_bTree) {
// status report is only performed for top level Execution Groups.
@@ -449,12 +431,12 @@ void ExecutionGroup::finalizeChunkExecution(int chunkNumber, MemoryBuffer **memo
inline void ExecutionGroup::determineChunkRect(rcti *rect, const unsigned int xChunk, const unsigned int yChunk) const
{
if (this->m_singleThreaded) {
- BLI_init_rcti(rect, 0, this->m_width, 0, this->m_height);
+ BLI_rcti_init(rect, 0, this->m_width, 0, this->m_height);
}
else {
const unsigned int minx = xChunk * this->m_chunkSize;
const unsigned int miny = yChunk * this->m_chunkSize;
- BLI_init_rcti(rect, minx, min(minx + this->m_chunkSize, this->m_width), miny, min(miny + this->m_chunkSize, this->m_height));
+ BLI_rcti_init(rect, minx, min(minx + this->m_chunkSize, this->m_width), miny, min(miny + this->m_chunkSize, this->m_height));
}
}
@@ -551,7 +533,7 @@ bool ExecutionGroup::scheduleChunkWhenPossible(ExecutionSystem *graph, int xChun
for (index = 0; index < this->m_cachedReadOperations.size(); index++) {
ReadBufferOperation *readOperation = (ReadBufferOperation *)this->m_cachedReadOperations[index];
- BLI_init_rcti(&area, 0, 0, 0, 0);
+ BLI_rcti_init(&area, 0, 0, 0, 0);
MemoryProxy *memoryProxy = memoryProxies[index];
determineDependingAreaOfInterest(&rect, readOperation, &area);
ExecutionGroup *group = memoryProxy->getExecutor();
diff --git a/source/blender/compositor/intern/COM_ExecutionGroup.h b/source/blender/compositor/intern/COM_ExecutionGroup.h
index 43c2bfac52e..c7a7d06134e 100644
--- a/source/blender/compositor/intern/COM_ExecutionGroup.h
+++ b/source/blender/compositor/intern/COM_ExecutionGroup.h
@@ -180,7 +180,7 @@ private:
/**
* @brief Determine the rect (minx, maxx, miny, maxy) of a chunk at a position.
- * @note Only gives usefull results ater the determination of the chunksize
+ * @note Only gives useful results ater the determination of the chunksize
* @see determineChunkSize()
*/
void determineChunkRect(rcti *rect, const unsigned int xChunk, const unsigned int yChunk) const;
@@ -270,13 +270,13 @@ public:
* @brief determine the resolution of this ExecutionGroup
* @param resolution
*/
- void determineResolution(unsigned int resolution[]);
+ void determineResolution(unsigned int resolution[2]);
/**
* @brief set the resolution of this executiongroup
* @param resolution
*/
- void setResolution(unsigned int resolution[]) { this->m_width = resolution[0]; this->m_height = resolution[1]; }
+ void setResolution(unsigned int resolution[2]) { this->m_width = resolution[0]; this->m_height = resolution[1]; }
/**
* @brief get the width of this execution group
@@ -316,7 +316,7 @@ public:
* @brief get all inputbuffers needed to calculate an chunk
* @note all inputbuffers must be executed
* @param chunkNumber the chunk to be calculated
- * @return MemoryBuffer** the inputbuffers
+ * @return (MemoryBuffer **) the inputbuffers
*/
MemoryBuffer **getInputBuffersCPU();
@@ -324,7 +324,7 @@ public:
* @brief get all inputbuffers needed to calculate an chunk
* @note all inputbuffers must be executed
* @param chunkNumber the chunk to be calculated
- * @return MemoryBuffer** the inputbuffers
+ * @return (MemoryBuffer **) the inputbuffers
*/
MemoryBuffer **getInputBuffersOpenCL(int chunkNumber);
@@ -376,7 +376,7 @@ public:
/**
* @brief Determine the rect (minx, maxx, miny, maxy) of a chunk.
- * @note Only gives usefull results ater the determination of the chunksize
+ * @note Only gives useful results ater the determination of the chunksize
* @see determineChunkSize()
*/
void determineChunkRect(rcti *rect, const unsigned int chunkNumber) const;
diff --git a/source/blender/compositor/intern/COM_ExecutionSystem.cpp b/source/blender/compositor/intern/COM_ExecutionSystem.cpp
index ff841092848..a13717c9d86 100644
--- a/source/blender/compositor/intern/COM_ExecutionSystem.cpp
+++ b/source/blender/compositor/intern/COM_ExecutionSystem.cpp
@@ -44,7 +44,8 @@
#include "MEM_guardedalloc.h"
#endif
-ExecutionSystem::ExecutionSystem(RenderData *rd, bNodeTree *editingtree, bool rendering, bool fastcalculation)
+ExecutionSystem::ExecutionSystem(RenderData *rd, bNodeTree *editingtree, bool rendering, bool fastcalculation,
+ const ColorManagedViewSettings *viewSettings, const ColorManagedDisplaySettings *displaySettings)
{
this->m_context.setbNodeTree(editingtree);
this->m_context.setFastCalculation(fastcalculation);
@@ -69,6 +70,9 @@ ExecutionSystem::ExecutionSystem(RenderData *rd, bNodeTree *editingtree, bool re
ExecutionSystemHelper::addbNodeTree(*this, 0, editingtree, NULL);
this->m_context.setRenderData(rd);
+ this->m_context.setViewSettings(viewSettings);
+ this->m_context.setDisplaySettings(displaySettings);
+
this->convertToOperations();
this->groupOperations(); /* group operations in ExecutionGroups */
unsigned int index;
@@ -129,6 +133,13 @@ void ExecutionSystem::execute()
operation->setbNodeTree(this->m_context.getbNodeTree());
operation->initExecution();
}
+ for (index = 0; index < this->m_operations.size(); index++) {
+ NodeOperation *operation = this->m_operations[index];
+ if (operation->isReadBufferOperation()) {
+ ReadBufferOperation *readOperation = (ReadBufferOperation *)operation;
+ readOperation->updateMemoryBuffer();
+ }
+ }
for (index = 0; index < this->m_groups.size(); index++) {
ExecutionGroup *executionGroup = this->m_groups[index];
executionGroup->setChunksize(this->m_context.getChunksize());
diff --git a/source/blender/compositor/intern/COM_ExecutionSystem.h b/source/blender/compositor/intern/COM_ExecutionSystem.h
index 209358ec786..56a60bf7a03 100644
--- a/source/blender/compositor/intern/COM_ExecutionSystem.h
+++ b/source/blender/compositor/intern/COM_ExecutionSystem.h
@@ -25,6 +25,7 @@ class ExecutionGroup;
#ifndef _COM_ExecutionSystem_h
#define _COM_ExecutionSystem_h
+#include "DNA_color_types.h"
#include "DNA_node_types.h"
#include <vector>
#include "COM_Node.h"
@@ -37,7 +38,7 @@ using namespace std;
/**
* @page execution Execution model
- * In order to get to an efficient model for execution, serveral steps are being done. these steps are explained below.
+ * In order to get to an efficient model for execution, several steps are being done. these steps are explained below.
*
* @section EM_Step1 Step 1: translating blender node system to the new compsitor system
* Blenders node structure is based on C structs (DNA). These structs are not efficient in the new architecture. We want to use classes in order to simplify the system.
@@ -64,7 +65,7 @@ using namespace std;
* @section EM_Step3 Step3: add additional conversions to the operation system
* - Data type conversions: the system has 3 data types COM_DT_VALUE, COM_DT_VECTOR, COM_DT_COLOR. The user can connect a Value socket to a color socket. As values are ordered differently than colors a conversion happens.
*
- * - Image size conversions: the system can automatically convert when resolutions do not match. An InputSocket has a resize mode. This can be any of the folowing settings.
+ * - Image size conversions: the system can automatically convert when resolutions do not match. An InputSocket has a resize mode. This can be any of the following settings.
* - [@ref InputSocketResizeMode.COM_SC_CENTER]: The center of both images are aligned
* - [@ref InputSocketResizeMode.COM_SC_FIT_WIDTH]: The width of both images are aligned
* - [@ref InputSocketResizeMode.COM_SC_FIT_HEIGHT]: the height of both images are aligned
@@ -153,10 +154,11 @@ public:
* @brief Create a new ExecutionSystem and initialize it with the
* editingtree.
*
- * @param editingtree [bNodeTree*]
+ * @param editingtree [bNodeTree *]
* @param rendering [true false]
*/
- ExecutionSystem(RenderData *rd, bNodeTree *editingtree, bool rendering, bool fastcalculation);
+ ExecutionSystem(RenderData *rd, bNodeTree *editingtree, bool rendering, bool fastcalculation,
+ const ColorManagedViewSettings *viewSettings, const ColorManagedDisplaySettings *displaySettings);
/**
* Destructor
@@ -200,12 +202,12 @@ public:
/**
* @brief get the reference to the compositor context
*/
- CompositorContext& getContext() { return this->m_context; }
+ CompositorContext &getContext() { return this->m_context; }
/**
* @brief get the reference to the compositor nodes
*/
- vector<Node *>& getNodes() { return this->m_nodes; }
+ vector<Node *> &getNodes() { return this->m_nodes; }
/**
* @brief get the reference to the compositor connections
diff --git a/source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp b/source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp
index 0abf7efdcfa..33a5cafebbe 100644
--- a/source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp
+++ b/source/blender/compositor/intern/COM_ExecutionSystemHelper.cpp
@@ -49,7 +49,8 @@ void ExecutionSystemHelper::addbNodeTree(ExecutionSystem &system, int nodes_star
/* add all nodes of the tree to the node list */
bNode *node = (bNode *)tree->nodes.first;
while (node != NULL) {
- addNode(nodes, node, isActiveGroup, system.getContext().isFastCalculation());
+ Node *nnode = addNode(nodes, node, isActiveGroup, system.getContext().isFastCalculation());
+ nnode->setbNodeGroup(groupnode);
node = (bNode *)node->next;
}
@@ -79,15 +80,10 @@ void ExecutionSystemHelper::addNode(vector<Node *>& nodes, Node *node)
Node *ExecutionSystemHelper::addNode(vector<Node *>& nodes, bNode *b_node, bool inActiveGroup, bool fast)
{
- Converter converter;
- Node *node;
- node = converter.convert(b_node, fast);
+ Node *node = Converter::convert(b_node, fast);
node->setIsInActiveGroup(inActiveGroup);
- if (node != NULL) {
- addNode(nodes, node);
- return node;
- }
- return NULL;
+ addNode(nodes, node);
+ return node;
}
void ExecutionSystemHelper::addOperation(vector<NodeOperation *>& operations, NodeOperation *operation)
{
@@ -155,12 +151,9 @@ static OutputSocket *find_output(NodeRange &node_range, bNode *bnode, bNodeSocke
}
SocketConnection *ExecutionSystemHelper::addNodeLink(NodeRange &node_range, vector<SocketConnection *>& links, bNodeLink *b_nodelink)
{
- /// @note: cyclic lines will be ignored. This has been copied from node.c
- if (b_nodelink->tonode != 0 && b_nodelink->fromnode != 0) {
- if (!(b_nodelink->fromnode->level >= b_nodelink->tonode->level && b_nodelink->tonode->level != 0xFFF)) { // only add non cyclic lines! so execution will procede
- return NULL;
- }
- }
+ /// @note: ignore invalid links
+ if (!(b_nodelink->flag & NODE_LINK_VALID))
+ return NULL;
InputSocket *inputSocket = find_input(node_range, b_nodelink->tonode, b_nodelink->tosock);
OutputSocket *outputSocket = find_output(node_range, b_nodelink->fromnode, b_nodelink->fromsock);
diff --git a/source/blender/compositor/intern/COM_ExecutionSystemHelper.h b/source/blender/compositor/intern/COM_ExecutionSystemHelper.h
index bd34fe8ab02..307e082ea80 100644
--- a/source/blender/compositor/intern/COM_ExecutionSystemHelper.h
+++ b/source/blender/compositor/intern/COM_ExecutionSystemHelper.h
@@ -55,7 +55,7 @@ public:
* this node is converted to a Node instance.
* and the converted node is returned
*
- * @param bNode node to add
+ * @param b_node node to add
* @return Node that represents the bNode or null when not able to convert.
*/
static Node *addNode(vector<Node *>& nodes, bNode *b_node, bool isInActiveGroup, bool fast);
diff --git a/source/blender/compositor/intern/COM_InputSocket.cpp b/source/blender/compositor/intern/COM_InputSocket.cpp
index 94cb5ff5396..a9c280e0367 100644
--- a/source/blender/compositor/intern/COM_InputSocket.cpp
+++ b/source/blender/compositor/intern/COM_InputSocket.cpp
@@ -54,7 +54,7 @@ SocketConnection *InputSocket::getConnection()
return this->m_connection;
}
-void InputSocket::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void InputSocket::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
if (this->isConnected()) {
this->m_connection->getFromSocket()->determineResolution(resolution, preferredResolution);
diff --git a/source/blender/compositor/intern/COM_InputSocket.h b/source/blender/compositor/intern/COM_InputSocket.h
index 5d0923ff204..259479015aa 100644
--- a/source/blender/compositor/intern/COM_InputSocket.h
+++ b/source/blender/compositor/intern/COM_InputSocket.h
@@ -89,7 +89,7 @@ public:
* @param resolution the result of this operation
* @param preferredResolution the preferrable resolution as no resolution could be determined
*/
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
/**
* @brief Notifies the Input of the data type (via a SocketConnection)
diff --git a/source/blender/compositor/intern/COM_MemoryBuffer.cpp b/source/blender/compositor/intern/COM_MemoryBuffer.cpp
index 8dd1e55274f..bdbe21f82ea 100644
--- a/source/blender/compositor/intern/COM_MemoryBuffer.cpp
+++ b/source/blender/compositor/intern/COM_MemoryBuffer.cpp
@@ -22,8 +22,7 @@
#include "COM_MemoryBuffer.h"
#include "MEM_guardedalloc.h"
-#include "BLI_math.h"
-#include "BKE_global.h"
+//#include "BKE_global.h"
unsigned int MemoryBuffer::determineBufferSize()
{
@@ -41,7 +40,7 @@ int MemoryBuffer::getHeight() const
MemoryBuffer::MemoryBuffer(MemoryProxy *memoryProxy, unsigned int chunkNumber, rcti *rect)
{
- BLI_init_rcti(&this->m_rect, rect->xmin, rect->xmax, rect->ymin, rect->ymax);
+ BLI_rcti_init(&this->m_rect, rect->xmin, rect->xmax, rect->ymin, rect->ymax);
this->m_memoryProxy = memoryProxy;
this->m_chunkNumber = chunkNumber;
this->m_buffer = (float *)MEM_mallocN(sizeof(float) * determineBufferSize() * COM_NUMBER_OF_CHANNELS, "COM_MemoryBuffer");
@@ -52,7 +51,7 @@ MemoryBuffer::MemoryBuffer(MemoryProxy *memoryProxy, unsigned int chunkNumber, r
MemoryBuffer::MemoryBuffer(MemoryProxy *memoryProxy, rcti *rect)
{
- BLI_init_rcti(&this->m_rect, rect->xmin, rect->xmax, rect->ymin, rect->ymax);
+ BLI_rcti_init(&this->m_rect, rect->xmin, rect->xmax, rect->ymin, rect->ymax);
this->m_memoryProxy = memoryProxy;
this->m_chunkNumber = -1;
this->m_buffer = (float *)MEM_mallocN(sizeof(float) * determineBufferSize() * COM_NUMBER_OF_CHANNELS, "COM_MemoryBuffer");
@@ -76,7 +75,7 @@ float *MemoryBuffer::convertToValueBuffer()
const unsigned int size = this->determineBufferSize();
unsigned int i;
- float *result = new float[size];
+ float *result = (float *)MEM_mallocN(sizeof(float) * size, __func__);
const float *fp_src = this->m_buffer;
float *fp_dst = result;
@@ -88,6 +87,44 @@ float *MemoryBuffer::convertToValueBuffer()
return result;
}
+float MemoryBuffer::getMaximumValue()
+{
+ float result = this->m_buffer[0];
+ const unsigned int size = this->determineBufferSize();
+ unsigned int i;
+
+ const float *fp_src = this->m_buffer;
+
+ for (i = 0; i < size; i++, fp_src += COM_NUMBER_OF_CHANNELS) {
+ float value = *fp_src;
+ if (value > result) {
+ result = value;
+ }
+ }
+
+ return result;
+}
+
+float MemoryBuffer::getMaximumValue(rcti *rect)
+{
+ rcti rect_clamp;
+
+ /* first clamp the rect by the bounds or we get un-initialized values */
+ BLI_rcti_isect(rect, &this->m_rect, &rect_clamp);
+
+ if (!BLI_rcti_is_empty(&rect_clamp)) {
+ MemoryBuffer *temp = new MemoryBuffer(NULL, &rect_clamp);
+ temp->copyContentFrom(this);
+ float result = temp->getMaximumValue();
+ delete temp;
+ return result;
+ }
+ else {
+ BLI_assert(0);
+ return 0.0f;
+ }
+}
+
MemoryBuffer::~MemoryBuffer()
{
if (this->m_buffer) {
@@ -99,6 +136,7 @@ MemoryBuffer::~MemoryBuffer()
void MemoryBuffer::copyContentFrom(MemoryBuffer *otherBuffer)
{
if (!otherBuffer) {
+ BLI_assert(0);
return;
}
unsigned int otherY;
@@ -117,26 +155,12 @@ void MemoryBuffer::copyContentFrom(MemoryBuffer *otherBuffer)
}
}
-void MemoryBuffer::read(float result[4], int x, int y)
-{
- if (x >= this->m_rect.xmin && x < this->m_rect.xmax &&
- y >= this->m_rect.ymin && y < this->m_rect.ymax)
- {
- const int dx = x - this->m_rect.xmin;
- const int dy = y - this->m_rect.ymin;
- const int offset = (this->m_chunkWidth * dy + dx) * COM_NUMBER_OF_CHANNELS;
- copy_v4_v4(result, &this->m_buffer[offset]);
- }
- else {
- zero_v4(result);
- }
-}
void MemoryBuffer::writePixel(int x, int y, const float color[4])
{
if (x >= this->m_rect.xmin && x < this->m_rect.xmax &&
y >= this->m_rect.ymin && y < this->m_rect.ymax)
{
- const int offset = (this->m_chunkWidth * y + x) * COM_NUMBER_OF_CHANNELS;
+ const int offset = (this->m_chunkWidth * (y-this->m_rect.ymin) + x-this->m_rect.xmin) * COM_NUMBER_OF_CHANNELS;
copy_v4_v4(&this->m_buffer[offset], color);
}
}
@@ -146,49 +170,11 @@ void MemoryBuffer::addPixel(int x, int y, const float color[4])
if (x >= this->m_rect.xmin && x < this->m_rect.xmax &&
y >= this->m_rect.ymin && y < this->m_rect.ymax)
{
- const int offset = (this->m_chunkWidth * y + x) * COM_NUMBER_OF_CHANNELS;
+ const int offset = (this->m_chunkWidth * (y-this->m_rect.ymin) + x-this->m_rect.xmin) * COM_NUMBER_OF_CHANNELS;
add_v4_v4(&this->m_buffer[offset], color);
}
}
-void MemoryBuffer::readCubic(float result[4], float x, float y)
-{
- int x1 = floor(x);
- int x2 = x1 + 1;
- int y1 = floor(y);
- int y2 = y1 + 1;
-
- float valuex = x - x1;
- float valuey = y - y1;
- float mvaluex = 1.0f - valuex;
- float mvaluey = 1.0f - valuey;
-
- float color1[4];
- float color2[4];
- float color3[4];
- float color4[4];
-
- read(color1, x1, y1);
- read(color2, x1, y2);
- read(color3, x2, y1);
- read(color4, x2, y2);
-
- color1[0] = color1[0] * mvaluey + color2[0] * valuey;
- color1[1] = color1[1] * mvaluey + color2[1] * valuey;
- color1[2] = color1[2] * mvaluey + color2[2] * valuey;
- color1[3] = color1[3] * mvaluey + color2[3] * valuey;
-
- color3[0] = color3[0] * mvaluey + color4[0] * valuey;
- color3[1] = color3[1] * mvaluey + color4[1] * valuey;
- color3[2] = color3[2] * mvaluey + color4[2] * valuey;
- color3[3] = color3[3] * mvaluey + color4[3] * valuey;
-
- result[0] = color1[0] * mvaluex + color3[0] * valuex;
- result[1] = color1[1] * mvaluex + color3[1] * valuex;
- result[2] = color1[2] * mvaluex + color3[2] * valuex;
- result[3] = color1[3] * mvaluex + color3[3] * valuex;
-}
-
// table of (exp(ar) - exp(a)) / (1 - exp(a)) for r in range [0, 1] and a = -2
// used instead of actual gaussian, otherwise at high texture magnifications circular artifacts are visible
@@ -262,18 +248,21 @@ static void imp2radangle(float A, float B, float C, float F, float *a, float *b,
*b = sqrtf(F2 / d);
*ecc = *a / *b;
}
- // incr theta by 0.5*pi (angle of major axis)
+ /* incr theta by 0.5 * pi (angle of major axis) */
*th = 0.5f * (atan2f(B, AmC) + (float)M_PI);
}
}
-float clipuv(float x, float limit)
+static float clipuv(float x, float limit)
{
x = (x < 0) ? 0 : ((x >= limit) ? (limit - 1) : x);
return x;
}
-void MemoryBuffer::readEWA(float result[4], float fx, float fy, float dx, float dy)
+/**
+ * \note \a sampler at the moment is either 'COM_PS_NEAREST' or not, other values won't matter.
+ */
+void MemoryBuffer::readEWA(float result[4], float fx, float fy, float dx, float dy, PixelSampler sampler)
{
const int width = this->getWidth(), height = this->getHeight();
@@ -294,7 +283,14 @@ void MemoryBuffer::readEWA(float result[4], float fx, float fy, float dx, float
// Use a different radius based on interpolation switch, just enough to anti-alias when interpolation is off,
// and slightly larger to make result a bit smoother than bilinear interpolation when interpolation is on
// (minimum values: const float rmin = intpol ? 1.f : 0.5f;)
- const float rmin = 1.5625f / ff2;
+
+ /* note: 0.765625f is too sharp, 1.0 will not blur with an exact pixel sample
+ * useful to avoid blurring when there is no distortion */
+#if 0
+ const float rmin = ((sampler != COM_PS_NEAREST) ? 1.5625f : 0.765625f) / ff2;
+#else
+ const float rmin = ((sampler != COM_PS_NEAREST) ? 1.5625f : 1.0f ) / ff2;
+#endif
imp2radangle(A, B, C, F, &a, &b, &th, &ecc);
if ((b2 = b * b) < rmin) {
if ((a2 = a * a) < rmin) {
diff --git a/source/blender/compositor/intern/COM_MemoryBuffer.h b/source/blender/compositor/intern/COM_MemoryBuffer.h
index 63b41aeddde..d176298578f 100644
--- a/source/blender/compositor/intern/COM_MemoryBuffer.h
+++ b/source/blender/compositor/intern/COM_MemoryBuffer.h
@@ -26,12 +26,12 @@ class MemoryBuffer;
#define _COM_MemoryBuffer_h_
#include "COM_ExecutionGroup.h"
-#include "BLI_rect.h"
#include "COM_MemoryProxy.h"
+
extern "C" {
- #include "BLI_threads.h"
+ #include "BLI_math.h"
+ #include "BLI_rect.h"
}
-#include <vector>
/**
* @brief state of a memory buffer
@@ -65,7 +65,7 @@ private:
/**
- * @brief region of this buffer inside reative to the MemoryProxy
+ * @brief region of this buffer inside relative to the MemoryProxy
*/
rcti m_rect;
@@ -120,15 +120,89 @@ public:
/**
* @brief after execution the state will be set to available by calling this method
*/
- void setCreatedState() {
+ void setCreatedState()
+ {
this->m_state = COM_MB_AVAILABLE;
}
- void read(float result[4], int x, int y);
+ inline void read(float result[4], int x, int y)
+ {
+ if (x >= this->m_rect.xmin && x < this->m_rect.xmax &&
+ y >= this->m_rect.ymin && y < this->m_rect.ymax)
+ {
+ const int dx = x - this->m_rect.xmin;
+ const int dy = y - this->m_rect.ymin;
+ const int offset = (this->m_chunkWidth * dy + dx) * COM_NUMBER_OF_CHANNELS;
+ copy_v4_v4(result, &this->m_buffer[offset]);
+ }
+ else {
+ zero_v4(result);
+ }
+ }
+
+ inline void readNoCheck(float result[4], int x, int y)
+ {
+ const int dx = x - this->m_rect.xmin;
+ const int dy = y - this->m_rect.ymin;
+ const int offset = (this->m_chunkWidth * dy + dx) * COM_NUMBER_OF_CHANNELS;
+
+ BLI_assert(offset >= 0);
+ BLI_assert(offset < this->determineBufferSize() * COM_NUMBER_OF_CHANNELS);
+ BLI_assert(x >= this->m_rect.xmin && x < this->m_rect.xmax &&
+ y >= this->m_rect.ymin && y < this->m_rect.ymax);
+
+#if 0
+ /* always true */
+ BLI_assert((int)(MEM_allocN_len(this->m_buffer) / sizeof(*this->m_buffer)) ==
+ (int)(this->determineBufferSize() * COM_NUMBER_OF_CHANNELS));
+#endif
+
+ copy_v4_v4(result, &this->m_buffer[offset]);
+ }
+
void writePixel(int x, int y, const float color[4]);
void addPixel(int x, int y, const float color[4]);
- void readCubic(float result[4], float x, float y);
- void readEWA(float result[4], float fx, float fy, float dx, float dy);
+ inline void readCubic(float result[4], float x, float y)
+ {
+ int x1 = floor(x);
+ int x2 = x1 + 1;
+ int y1 = floor(y);
+ int y2 = y1 + 1;
+
+ float valuex = x - x1;
+ float valuey = y - y1;
+ float mvaluex = 1.0f - valuex;
+ float mvaluey = 1.0f - valuey;
+
+ float color1[4];
+ float color2[4];
+ float color3[4];
+ float color4[4];
+
+ read(color1, x1, y1);
+ read(color2, x1, y2);
+ read(color3, x2, y1);
+ read(color4, x2, y2);
+
+ color1[0] = color1[0] * mvaluey + color2[0] * valuey;
+ color1[1] = color1[1] * mvaluey + color2[1] * valuey;
+ color1[2] = color1[2] * mvaluey + color2[2] * valuey;
+ color1[3] = color1[3] * mvaluey + color2[3] * valuey;
+
+ color3[0] = color3[0] * mvaluey + color4[0] * valuey;
+ color3[1] = color3[1] * mvaluey + color4[1] * valuey;
+ color3[2] = color3[2] * mvaluey + color4[2] * valuey;
+ color3[3] = color3[3] * mvaluey + color4[3] * valuey;
+
+ result[0] = color1[0] * mvaluex + color3[0] * valuex;
+ result[1] = color1[1] * mvaluex + color3[1] * valuex;
+ result[2] = color1[2] * mvaluex + color3[2] * valuex;
+ result[3] = color1[3] * mvaluex + color3[3] * valuex;
+ }
+
+
+
+ void readEWA(float result[4], float fx, float fy, float dx, float dy, PixelSampler sampler);
/**
* @brief is this MemoryBuffer a temporarily buffer (based on an area, not on a chunk)
@@ -138,6 +212,9 @@ public:
/**
* @brief add the content from otherBuffer to this MemoryBuffer
* @param otherBuffer source buffer
+ *
+ * @note take care when running this on a new buffer since it wont fill in
+ * uninitialized values in areas where the buffers don't overlap.
*/
void copyContentFrom(MemoryBuffer *otherBuffer);
@@ -157,13 +234,15 @@ public:
int getHeight() const;
/**
- * @brief clear the buffer. Make all pixels black transparant.
+ * @brief clear the buffer. Make all pixels black transparent.
*/
void clear();
MemoryBuffer *duplicate();
float *convertToValueBuffer();
+ float getMaximumValue();
+ float getMaximumValue(rcti *rect);
private:
unsigned int determineBufferSize();
diff --git a/source/blender/compositor/intern/COM_MemoryProxy.h b/source/blender/compositor/intern/COM_MemoryProxy.h
index 130c5f5057a..696c843e7c4 100644
--- a/source/blender/compositor/intern/COM_MemoryProxy.h
+++ b/source/blender/compositor/intern/COM_MemoryProxy.h
@@ -89,7 +89,7 @@ public:
WriteBufferOperation *getWriteBufferOperation() { return this->m_writeBufferOperation; }
/**
- * @brief allocate memory of size widht x height
+ * @brief allocate memory of size width x height
*/
void allocate(unsigned int width, unsigned int height);
diff --git a/source/blender/compositor/intern/COM_Node.cpp b/source/blender/compositor/intern/COM_Node.cpp
index 320baacb669..5922b0e6b08 100644
--- a/source/blender/compositor/intern/COM_Node.cpp
+++ b/source/blender/compositor/intern/COM_Node.cpp
@@ -75,12 +75,12 @@ void Node::addSetValueOperation(ExecutionSystem *graph, InputSocket *inputsocket
graph->addOperation(operation);
}
-void Node::addPreviewOperation(ExecutionSystem *system, OutputSocket *outputSocket)
+void Node::addPreviewOperation(ExecutionSystem *system, CompositorContext *context, OutputSocket *outputSocket)
{
if (this->isInActiveGroup()) {
if (!(this->getbNode()->flag & NODE_HIDDEN)) { // do not calculate previews of hidden nodes.
if (this->getbNode()->flag & NODE_PREVIEW) {
- PreviewOperation *operation = new PreviewOperation();
+ PreviewOperation *operation = new PreviewOperation(context->getViewSettings(), context->getDisplaySettings());
system->addOperation(operation);
operation->setbNode(this->getbNode());
operation->setbNodeTree(system->getContext().getbNodeTree());
@@ -90,11 +90,11 @@ void Node::addPreviewOperation(ExecutionSystem *system, OutputSocket *outputSock
}
}
-void Node::addPreviewOperation(ExecutionSystem *system, InputSocket *inputSocket)
+void Node::addPreviewOperation(ExecutionSystem *system, CompositorContext *context, InputSocket *inputSocket)
{
if (inputSocket->isConnected() && this->isInActiveGroup()) {
OutputSocket *outputsocket = inputSocket->getConnection()->getFromSocket();
- this->addPreviewOperation(system, outputsocket);
+ this->addPreviewOperation(system, context, outputsocket);
}
}
@@ -137,6 +137,21 @@ void Node::addSetVectorOperation(ExecutionSystem *graph, InputSocket *inputsocke
graph->addOperation(operation);
}
+/* when a node has no valid data (missing image or group pointer) */
+void Node::convertToOperations_invalid(ExecutionSystem *graph, CompositorContext *context)
+{
+ /* this is a really bad situation - bring on the pink! - so artists know this is bad */
+ const float warning_color[4] = {1.0f, 0.0f, 1.0f, 1.0f};
+ int index;
+ vector<OutputSocket *> &outputsockets = this->getOutputSockets();
+ for (index = 0; index < outputsockets.size(); index++) {
+ SetColorOperation *operation = new SetColorOperation();
+ this->getOutputSocket(index)->relinkConnections(operation->getOutputSocket());
+ operation->setChannels(warning_color);
+ graph->addOperation(operation);
+ }
+}
+
bNodeSocket *Node::getEditorInputSocket(int editorNodeInputSocketIndex)
{
bNodeSocket *bSock = (bNodeSocket *)this->getbNode()->inputs.first;
diff --git a/source/blender/compositor/intern/COM_Node.h b/source/blender/compositor/intern/COM_Node.h
index bc4a25db605..e8fd936e749 100644
--- a/source/blender/compositor/intern/COM_Node.h
+++ b/source/blender/compositor/intern/COM_Node.h
@@ -53,6 +53,12 @@ private:
* @brief Is this node part of the active group
*/
bool m_inActiveGroup;
+
+ /**
+ * @brief The group node this node belongs to.
+ * @note: used to find the links in the current subtree for muting nodes
+ */
+ bNode* m_bNodeGroup;
public:
Node(bNode *editorNode, bool create_sockets = true);
@@ -74,7 +80,7 @@ public:
/**
* @brief convert node to operation
*
- * @todo this must be described furter
+ * @todo this must be described further
*
* @param system the ExecutionSystem where the operations need to be added
* @param context reference to the CompositorContext
@@ -100,6 +106,13 @@ public:
void addSetVectorOperation(ExecutionSystem *graph, InputSocket *inputsocket, int editorNodeInputSocketIndex);
/**
+ * when a node has no valid data (missing image or a group nodes ID pointer is NULL)
+ * call this function from #convertToOperations, this way the node sockets are converted
+ * into valid outputs, without this the compositor system gets confused and crashes, see [#32490]
+ */
+ void convertToOperations_invalid(ExecutionSystem *graph, CompositorContext *context);
+
+ /**
* Creates a new link between an outputSocket and inputSocket and registrates the link to the graph
* @return the new created link
*/
@@ -127,9 +140,12 @@ public:
* @param socket
*/
OutputSocket *findOutputSocketBybNodeSocket(bNodeSocket *socket);
+
+ inline void setbNodeGroup(bNode* group) {this->m_bNodeGroup = group;}
+ inline bNode* getbNodeGroup() {return this->m_bNodeGroup;}
protected:
- void addPreviewOperation(ExecutionSystem *system, InputSocket *inputSocket);
- void addPreviewOperation(ExecutionSystem *system, OutputSocket *outputSocket);
+ void addPreviewOperation(ExecutionSystem *system, CompositorContext *context, InputSocket *inputSocket);
+ void addPreviewOperation(ExecutionSystem *system, CompositorContext *context, OutputSocket *outputSocket);
bNodeSocket *getEditorInputSocket(int editorNodeInputSocketIndex);
bNodeSocket *getEditorOutputSocket(int editorNodeOutputSocketIndex);
diff --git a/source/blender/compositor/intern/COM_NodeBase.h b/source/blender/compositor/intern/COM_NodeBase.h
index 3c390f6bcdb..64d669b5e9a 100644
--- a/source/blender/compositor/intern/COM_NodeBase.h
+++ b/source/blender/compositor/intern/COM_NodeBase.h
@@ -71,13 +71,14 @@ protected:
inline vector<OutputSocket *>& getOutputSockets() { return this->m_outputsockets; }
-public:
+protected:
/**
* @brief destructor
* clean up memory related to this NodeBase.
*/
virtual ~NodeBase();
+public:
/**
* @brief get the reference to the SDNA bNode struct
*/
@@ -96,7 +97,7 @@ public:
* @return [true:false]
* @see NodeOperation
*/
- virtual const int isOperation() const { return false; }
+ virtual const bool isOperation() const { return false; }
/**
* @brief check if this is an input node
diff --git a/source/blender/compositor/intern/COM_NodeOperation.cpp b/source/blender/compositor/intern/COM_NodeOperation.cpp
index c3fa308971c..4ae114bd031 100644
--- a/source/blender/compositor/intern/COM_NodeOperation.cpp
+++ b/source/blender/compositor/intern/COM_NodeOperation.cpp
@@ -38,7 +38,7 @@ NodeOperation::NodeOperation() : NodeBase()
this->m_btree = NULL;
}
-void NodeOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void NodeOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
unsigned int temp[2];
unsigned int temp2[2];
@@ -120,23 +120,30 @@ void NodeOperation::getConnectedInputSockets(vector<InputSocket *> *sockets)
bool NodeOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
{
if (this->isInputNode()) {
- BLI_init_rcti(output, input->xmin, input->xmax, input->ymin, input->ymax);
+ BLI_rcti_init(output, input->xmin, input->xmax, input->ymin, input->ymax);
return false;
}
else {
- unsigned int index;
- vector<InputSocket *> &inputsockets = this->getInputSockets();
-
- for (index = 0; index < inputsockets.size(); index++) {
- InputSocket *inputsocket = inputsockets[index];
- if (inputsocket->isConnected()) {
- NodeOperation *inputoperation = (NodeOperation *)inputsocket->getConnection()->getFromNode();
- bool result = inputoperation->determineDependingAreaOfInterest(input, readOperation, output);
- if (result) {
- return true;
+ rcti tempOutput;
+ bool first = true;
+ for (int i = 0 ; i < getNumberOfInputSockets() ; i ++) {
+ NodeOperation * inputOperation = this->getInputOperation(i);
+ if (inputOperation && inputOperation->determineDependingAreaOfInterest(input, readOperation, &tempOutput)) {
+ if (first) {
+ output->xmin = tempOutput.xmin;
+ output->ymin = tempOutput.ymin;
+ output->xmax = tempOutput.xmax;
+ output->ymax = tempOutput.ymax;
+ first = false;
+ }
+ else {
+ output->xmin = MIN2(output->xmin, tempOutput.xmin);
+ output->ymin = MIN2(output->ymin, tempOutput.ymin);
+ output->xmax = MAX2(output->xmax, tempOutput.xmax);
+ output->ymax = MAX2(output->ymax, tempOutput.ymax);
}
}
}
- return false;
+ return !first;
}
}
diff --git a/source/blender/compositor/intern/COM_NodeOperation.h b/source/blender/compositor/intern/COM_NodeOperation.h
index d316cfa0aa4..dfa22a29e41 100644
--- a/source/blender/compositor/intern/COM_NodeOperation.h
+++ b/source/blender/compositor/intern/COM_NodeOperation.h
@@ -88,7 +88,7 @@ public:
* @return [true:false]
* @see NodeBase
*/
- const int isOperation() const { return true; }
+ const bool isOperation() const { return true; }
/**
* @brief determine the resolution of this node
@@ -96,12 +96,12 @@ public:
* @param resolution the result of this operation
* @param preferredResolution the preferrable resolution as no resolution could be determined
*/
- virtual void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ virtual void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
/**
* @brief isOutputOperation determines whether this operation is an output of the ExecutionSystem during rendering or editing.
*
- * Default behaviour if not overriden, this operation will not be evaluated as being an output of the ExecutionSystem.
+ * Default behaviour if not overridden, this operation will not be evaluated as being an output of the ExecutionSystem.
*
* @see ExecutionSystem
* @group check
@@ -134,7 +134,7 @@ public:
* @param chunkNumber the chunkNumber to be calculated
* @param memoryBuffers all input MemoryBuffer's needed
*/
- virtual void executeRegion(rcti *rect, unsigned int chunkNumber, MemoryBuffer **memoryBuffers) {}
+ virtual void executeRegion(rcti *rect, unsigned int chunkNumber) {}
/**
* @brief when a chunk is executed by an OpenCLDevice, this method is called
@@ -148,7 +148,7 @@ public:
* @param memoryBuffers all input MemoryBuffer's needed
* @param outputBuffer the outputbuffer to write to
*/
- virtual void executeOpenCLRegion(OpenCLDevice* device, rcti *rect,
+ virtual void executeOpenCLRegion(OpenCLDevice *device, rcti *rect,
unsigned int chunkNumber, MemoryBuffer **memoryBuffers, MemoryBuffer *outputBuffer) {}
/**
@@ -163,7 +163,7 @@ public:
* @param clMemToCleanUp all created cl_mem references must be added to this list. Framework will clean this after execution
* @param clKernelsToCleanUp all created cl_kernel references must be added to this list. Framework will clean this after execution
*/
- virtual void executeOpenCL(OpenCLDevice* device, MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer, MemoryBuffer **inputMemoryBuffers, list<cl_mem> *clMemToCleanUp, list<cl_kernel> *clKernelsToCleanUp) {}
+ virtual void executeOpenCL(OpenCLDevice *device, MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer, MemoryBuffer **inputMemoryBuffers, list<cl_mem> *clMemToCleanUp, list<cl_kernel> *clKernelsToCleanUp) {}
virtual void deinitExecution();
bool isResolutionSet() {
@@ -174,7 +174,7 @@ public:
* @brief set the resolution
* @param resolution the resolution to set
*/
- void setResolution(unsigned int resolution[]) {
+ void setResolution(unsigned int resolution[2]) {
if (!isResolutionSet()) {
this->m_width = resolution[0];
this->m_height = resolution[1];
diff --git a/source/blender/compositor/intern/COM_OpenCLDevice.cpp b/source/blender/compositor/intern/COM_OpenCLDevice.cpp
index eae1ffeb08a..d23ed245844 100644
--- a/source/blender/compositor/intern/COM_OpenCLDevice.cpp
+++ b/source/blender/compositor/intern/COM_OpenCLDevice.cpp
@@ -65,11 +65,16 @@ void OpenCLDevice::execute(WorkPackage *work)
executionGroup->finalizeChunkExecution(chunkNumber, inputBuffers);
}
-
cl_mem OpenCLDevice::COM_clAttachMemoryBufferToKernelParameter(cl_kernel kernel, int parameterIndex, int offsetIndex, list<cl_mem> *cleanup, MemoryBuffer **inputMemoryBuffers, SocketReader *reader)
{
+ return COM_clAttachMemoryBufferToKernelParameter(kernel, parameterIndex, offsetIndex, cleanup, inputMemoryBuffers, (ReadBufferOperation *)reader);
+}
+
+cl_mem OpenCLDevice::COM_clAttachMemoryBufferToKernelParameter(cl_kernel kernel, int parameterIndex, int offsetIndex, list<cl_mem> *cleanup, MemoryBuffer **inputMemoryBuffers, ReadBufferOperation *reader)
+{
cl_int error;
- MemoryBuffer *result = (MemoryBuffer *)reader->initializeTileData(NULL, inputMemoryBuffers);
+
+ MemoryBuffer *result = (MemoryBuffer *)reader->getInputMemoryBuffer(inputMemoryBuffers);
const cl_image_format imageFormat = {
CL_RGBA,
@@ -101,11 +106,11 @@ void OpenCLDevice::COM_clAttachMemoryBufferOffsetToKernelParameter(cl_kernel ker
}
}
-void OpenCLDevice::COM_clAttachSizeToKernelParameter(cl_kernel kernel, int offsetIndex, NodeOperation* operation)
+void OpenCLDevice::COM_clAttachSizeToKernelParameter(cl_kernel kernel, int offsetIndex, NodeOperation *operation)
{
if (offsetIndex != -1) {
cl_int error;
- cl_int2 offset = {operation->getWidth(), operation->getHeight()};
+ cl_int2 offset = {(cl_int)operation->getWidth(), (cl_int)operation->getHeight()};
error = clSetKernelArg(kernel, offsetIndex, sizeof(cl_int2), &offset);
if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
@@ -122,13 +127,13 @@ void OpenCLDevice::COM_clAttachOutputMemoryBufferToKernelParameter(cl_kernel ker
void OpenCLDevice::COM_clEnqueueRange(cl_kernel kernel, MemoryBuffer *outputMemoryBuffer)
{
cl_int error;
- const size_t size[] = {outputMemoryBuffer->getWidth(), outputMemoryBuffer->getHeight()};
+ const size_t size[] = {(size_t)outputMemoryBuffer->getWidth(), (size_t)outputMemoryBuffer->getHeight()};
error = clEnqueueNDRangeKernel(this->m_queue, kernel, 2, NULL, size, 0, 0, 0, NULL);
if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
}
-void OpenCLDevice::COM_clEnqueueRange(cl_kernel kernel, MemoryBuffer *outputMemoryBuffer, int offsetIndex, NodeOperation* operation)
+void OpenCLDevice::COM_clEnqueueRange(cl_kernel kernel, MemoryBuffer *outputMemoryBuffer, int offsetIndex, NodeOperation *operation)
{
cl_int error;
const int width = outputMemoryBuffer->getWidth();
@@ -139,7 +144,10 @@ void OpenCLDevice::COM_clEnqueueRange(cl_kernel kernel, MemoryBuffer *outputMemo
size_t size[2];
cl_int2 offset;
- if (this->m_vendorID == NVIDIA) {localSize = 32;}
+ if (this->m_vendorID == NVIDIA) {
+ localSize = 32;
+ }
+
bool breaked = false;
for (offsety = 0; offsety < height && (!breaked); offsety += localSize) {
offset[1] = offsety;
@@ -149,6 +157,7 @@ void OpenCLDevice::COM_clEnqueueRange(cl_kernel kernel, MemoryBuffer *outputMemo
else {
size[1] = height - offsety;
}
+
for (offsetx = 0; offsetx < width && (!breaked); offsetx += localSize) {
if (offsetx + localSize < width) {
size[0] = localSize;
diff --git a/source/blender/compositor/intern/COM_OpenCLDevice.h b/source/blender/compositor/intern/COM_OpenCLDevice.h
index 30a90dabc3e..2021cacabcc 100644
--- a/source/blender/compositor/intern/COM_OpenCLDevice.h
+++ b/source/blender/compositor/intern/COM_OpenCLDevice.h
@@ -28,6 +28,7 @@ class OpenCLDevice;
#include "COM_Device.h"
#include "OCL_opencl.h"
#include "COM_WorkScheduler.h"
+#include "COM_ReadBufferOperation.h"
/**
* @brief device representing an GPU OpenCL device.
@@ -91,16 +92,17 @@ public:
*/
void execute(WorkPackage *work);
- cl_context getContext(){ return this->m_context; }
+ cl_context getContext() { return this->m_context; }
- cl_command_queue getQueue(){ return this->m_queue; }
+ cl_command_queue getQueue() { return this->m_queue; }
cl_mem COM_clAttachMemoryBufferToKernelParameter(cl_kernel kernel, int parameterIndex, int offsetIndex, list<cl_mem> *cleanup, MemoryBuffer **inputMemoryBuffers, SocketReader *reader);
+ cl_mem COM_clAttachMemoryBufferToKernelParameter(cl_kernel kernel, int parameterIndex, int offsetIndex, list<cl_mem> *cleanup, MemoryBuffer **inputMemoryBuffers, ReadBufferOperation *reader);
void COM_clAttachMemoryBufferOffsetToKernelParameter(cl_kernel kernel, int offsetIndex, MemoryBuffer *memoryBuffers);
void COM_clAttachOutputMemoryBufferToKernelParameter(cl_kernel kernel, int parameterIndex, cl_mem clOutputMemoryBuffer);
- void COM_clAttachSizeToKernelParameter(cl_kernel kernel, int offsetIndex, NodeOperation* operation);
+ void COM_clAttachSizeToKernelParameter(cl_kernel kernel, int offsetIndex, NodeOperation *operation);
void COM_clEnqueueRange(cl_kernel kernel, MemoryBuffer *outputMemoryBuffer);
- void COM_clEnqueueRange(cl_kernel kernel, MemoryBuffer *outputMemoryBuffer, int offsetIndex, NodeOperation* operation);
+ void COM_clEnqueueRange(cl_kernel kernel, MemoryBuffer *outputMemoryBuffer, int offsetIndex, NodeOperation *operation);
cl_kernel COM_clCreateKernel(const char *kernelname, list<cl_kernel> *clKernelsToCleanUp);
};
diff --git a/source/blender/compositor/intern/COM_OutputSocket.cpp b/source/blender/compositor/intern/COM_OutputSocket.cpp
index 865ab0472e8..f23a48979da 100644
--- a/source/blender/compositor/intern/COM_OutputSocket.cpp
+++ b/source/blender/compositor/intern/COM_OutputSocket.cpp
@@ -33,7 +33,7 @@ OutputSocket::OutputSocket(DataType datatype) : Socket(datatype)
int OutputSocket::isOutputSocket() const { return true; }
const int OutputSocket::isConnected() const { return this->m_connections.size() != 0; }
-void OutputSocket::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void OutputSocket::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
NodeBase *node = this->getNode();
if (node->isOperation()) {
diff --git a/source/blender/compositor/intern/COM_OutputSocket.h b/source/blender/compositor/intern/COM_OutputSocket.h
index 4810e1ae065..c6b7993c561 100644
--- a/source/blender/compositor/intern/COM_OutputSocket.h
+++ b/source/blender/compositor/intern/COM_OutputSocket.h
@@ -59,12 +59,12 @@ public:
* @param resolution the result of this operation
* @param preferredResolution the preferrable resolution as no resolution could be determined
*/
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
/**
* @brief determine the actual data type and channel info.
*/
- void relinkConnections(OutputSocket *relinkToSocket) { this->relinkConnections(relinkToSocket, false); };
+ void relinkConnections(OutputSocket *relinkToSocket) { this->relinkConnections(relinkToSocket, false); }
void relinkConnections(OutputSocket *relinkToSocket, bool single);
const int getNumberOfConnections() { return this->m_connections.size(); }
diff --git a/source/blender/compositor/intern/COM_SingleThreadedNodeOperation.cpp b/source/blender/compositor/intern/COM_SingleThreadedNodeOperation.cpp
index a6f81410b74..7d1184cb356 100644
--- a/source/blender/compositor/intern/COM_SingleThreadedNodeOperation.cpp
+++ b/source/blender/compositor/intern/COM_SingleThreadedNodeOperation.cpp
@@ -33,9 +33,9 @@ void SingleThreadedNodeOperation::initExecution()
initMutex();
}
-void SingleThreadedNodeOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void SingleThreadedNodeOperation::executePixel(float output[4], int x, int y, void *data)
{
- this->m_cachedInstance->read(color, x, y);
+ this->m_cachedInstance->readNoCheck(output, x, y);
}
void SingleThreadedNodeOperation::deinitExecution()
@@ -46,14 +46,14 @@ void SingleThreadedNodeOperation::deinitExecution()
this->m_cachedInstance = NULL;
}
}
-void *SingleThreadedNodeOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *SingleThreadedNodeOperation::initializeTileData(rcti *rect)
{
if (this->m_cachedInstance) return this->m_cachedInstance;
lockMutex();
if (this->m_cachedInstance == NULL) {
//
- this->m_cachedInstance = createMemoryBuffer(rect, memoryBuffers);
+ this->m_cachedInstance = createMemoryBuffer(rect);
}
unlockMutex();
return this->m_cachedInstance;
diff --git a/source/blender/compositor/intern/COM_SingleThreadedNodeOperation.h b/source/blender/compositor/intern/COM_SingleThreadedNodeOperation.h
index c6db5381f48..45325be18a9 100644
--- a/source/blender/compositor/intern/COM_SingleThreadedNodeOperation.h
+++ b/source/blender/compositor/intern/COM_SingleThreadedNodeOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
@@ -51,9 +51,9 @@ public:
*/
void deinitExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
- virtual MemoryBuffer *createMemoryBuffer(rcti *rect, MemoryBuffer **memoryBuffers) = 0;
+ virtual MemoryBuffer *createMemoryBuffer(rcti *rect) = 0;
int isSingleThreaded() { return true; }
};
diff --git a/source/blender/compositor/intern/COM_Socket.h b/source/blender/compositor/intern/COM_Socket.h
index 5607d2f4569..bad112d20c7 100644
--- a/source/blender/compositor/intern/COM_Socket.h
+++ b/source/blender/compositor/intern/COM_Socket.h
@@ -62,6 +62,14 @@ private:
DataType m_datatype;
bNodeSocket *m_editorSocket;
+
+protected:
+ /**
+ * @brief Declaration of the virtual destructor
+ * @note resolve warning gcc 4.7
+ */
+ virtual ~Socket() {}
+
public:
Socket(DataType datatype);
@@ -73,7 +81,7 @@ public:
const virtual int isConnected() const;
int isInputSocket() const;
int isOutputSocket() const;
- virtual void determineResolution(int resolution[], unsigned int preferredResolution[]) {}
+ virtual void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]) {}
void setEditorSocket(bNodeSocket *editorSocket) { this->m_editorSocket = editorSocket; }
bNodeSocket *getbNodeSocket() const { return this->m_editorSocket; }
diff --git a/source/blender/compositor/intern/COM_SocketReader.h b/source/blender/compositor/intern/COM_SocketReader.h
index 0f35fcfb0df..88b018ef8ba 100644
--- a/source/blender/compositor/intern/COM_SocketReader.h
+++ b/source/blender/compositor/intern/COM_SocketReader.h
@@ -30,9 +30,9 @@
#endif
typedef enum PixelSampler {
- COM_PS_NEAREST,
- COM_PS_BILINEAR,
- COM_PS_BICUBIC
+ COM_PS_NEAREST = 0,
+ COM_PS_BILINEAR = 1,
+ COM_PS_BICUBIC = 2
} PixelSampler;
class MemoryBuffer;
@@ -63,7 +63,7 @@ protected:
* @param y the y-coordinate of the pixel to calculate in image space
* @param inputBuffers chunks that can be read by their ReadBufferOperation.
*/
- virtual void executePixel(float *result, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]) {}
+ virtual void executePixel(float output[4], float x, float y, PixelSampler sampler) {}
/**
* @brief calculate a single pixel
@@ -74,8 +74,8 @@ protected:
* @param inputBuffers chunks that can be read by their ReadBufferOperation.
* @param chunkData chunk specific data a during execution time.
*/
- virtual void executePixel(float *result, int x, int y, MemoryBuffer *inputBuffers[], void *chunkData) {
- executePixel(result, x, y, COM_PS_NEAREST, inputBuffers);
+ virtual void executePixel(float output[4], int x, int y, void *chunkData) {
+ executePixel(output, x, y, COM_PS_NEAREST);
}
/**
@@ -88,21 +88,21 @@ protected:
* @param dy
* @param inputBuffers chunks that can be read by their ReadBufferOperation.
*/
- virtual void executePixel(float *result, float x, float y, float dx, float dy, MemoryBuffer *inputBuffers[]) {}
+ virtual void executePixel(float output[4], float x, float y, float dx, float dy, PixelSampler sampler) {}
public:
- inline void read(float *result, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]) {
- executePixel(result, x, y, sampler, inputBuffers);
+ inline void read(float *result, float x, float y, PixelSampler sampler) {
+ executePixel(result, x, y, sampler);
}
- inline void read(float *result, int x, int y, MemoryBuffer *inputBuffers[], void *chunkData) {
- executePixel(result, x, y, inputBuffers, chunkData);
+ inline void read(float *result, int x, int y, void *chunkData) {
+ executePixel(result, x, y, chunkData);
}
- inline void read(float *result, float x, float y, float dx, float dy, MemoryBuffer *inputBuffers[]) {
- executePixel(result, x, y, dx, dy, inputBuffers);
+ inline void read(float *result, float x, float y, float dx, float dy, PixelSampler sampler) {
+ executePixel(result, x, y, dx, dy, sampler);
}
- virtual void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers) { return 0; }
- virtual void deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data) {
+ virtual void *initializeTileData(rcti *rect) { return 0; }
+ virtual void deinitializeTileData(rcti *rect, void *data) {
}
virtual MemoryBuffer *getInputMemoryBuffer(MemoryBuffer **memoryBuffers) { return 0; }
diff --git a/source/blender/compositor/intern/COM_WorkScheduler.cpp b/source/blender/compositor/intern/COM_WorkScheduler.cpp
index c49ac24e018..eb9c26d4f43 100644
--- a/source/blender/compositor/intern/COM_WorkScheduler.cpp
+++ b/source/blender/compositor/intern/COM_WorkScheduler.cpp
@@ -25,20 +25,27 @@
#include "BKE_global.h"
+#include "COM_compositor.h"
#include "COM_WorkScheduler.h"
#include "COM_CPUDevice.h"
#include "COM_OpenCLDevice.h"
#include "COM_OpenCLKernels.cl.h"
#include "OCL_opencl.h"
+#include "COM_WriteBufferOperation.h"
+
+#include "MEM_guardedalloc.h"
#include "PIL_time.h"
#include "BLI_threads.h"
#if COM_CURRENT_THREADING_MODEL == COM_TM_NOTHREAD
-#warning COM_CURRENT_THREADING_MODEL COM_TM_NOTHREAD is activated. Use only for debugging.
+# ifndef DEBUG /* test this so we dont get warnings in debug builds */
+# warning COM_CURRENT_THREADING_MODEL COM_TM_NOTHREAD is activated. Use only for debugging.
+# endif
#elif COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
+ /* do nothing - default */
#else
-#error COM_CURRENT_THREADING_MODEL No threading model selected
+# error COM_CURRENT_THREADING_MODEL No threading model selected
#endif
@@ -48,6 +55,7 @@ static vector<CPUDevice *> g_cpudevices;
#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
/// @brief list of all thread for every CPUDevice in cpudevices a thread exists
static ListBase g_cputhreads;
+static bool g_cpuInitialized = false;
/// @brief all scheduled work for the cpu
static ThreadQueue *g_cpuqueue;
static ThreadQueue *g_gpuqueue;
@@ -61,10 +69,76 @@ static ListBase g_gputhreads;
/// @brief all scheduled work for the gpu
#ifdef COM_OPENCL_ENABLED
static bool g_openclActive = false;
+static bool g_openclInitialized = false;
#endif
#endif
#endif
+#define MAX_HIGHLIGHT 8
+static bool g_highlightInitialized = false;
+extern "C" {
+int g_highlightIndex;
+void **g_highlightedNodes;
+void **g_highlightedNodesRead;
+
+#define HIGHLIGHT(wp) \
+{ \
+ ExecutionGroup *group = wp->getExecutionGroup(); \
+ if (group->isComplex()) { \
+ NodeOperation *operation = group->getOutputNodeOperation(); \
+ if (operation->isWriteBufferOperation()) { \
+ WriteBufferOperation *writeOperation = (WriteBufferOperation *)operation; \
+ NodeOperation *complexOperation = writeOperation->getInput(); \
+ bNode *node = complexOperation->getbNode(); \
+ if (node) { \
+ if (node->original) { \
+ node = node->original; \
+ } \
+ if (g_highlightInitialized && g_highlightedNodes) { \
+ if (g_highlightIndex < MAX_HIGHLIGHT) { \
+ g_highlightedNodes[g_highlightIndex++] = node; \
+ } \
+ } \
+ } \
+ } \
+ } \
+}
+
+void COM_startReadHighlights()
+{
+ if (!g_highlightInitialized)
+ {
+ return;
+ }
+
+ if (g_highlightedNodesRead)
+ {
+ MEM_freeN(g_highlightedNodesRead);
+ }
+
+ g_highlightedNodesRead = g_highlightedNodes;
+ g_highlightedNodes = (void **)MEM_callocN(sizeof(void *) * MAX_HIGHLIGHT, __func__);
+ g_highlightIndex = 0;
+}
+
+int COM_isHighlightedbNode(bNode *bnode)
+{
+ if (!g_highlightInitialized) {
+ return false;
+ }
+
+ if (!g_highlightedNodesRead) {
+ return false;
+ }
+
+ for (int i = 0; i < MAX_HIGHLIGHT; i++) {
+ void *p = g_highlightedNodesRead[i];
+ if (!p) return false;
+ if (p == bnode) return true;
+ }
+ return false;
+}
+} // end extern "C"
#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
void *WorkScheduler::thread_execute_cpu(void *data)
@@ -73,6 +147,7 @@ void *WorkScheduler::thread_execute_cpu(void *data)
WorkPackage *work;
while ((work = (WorkPackage *)BLI_thread_queue_pop(g_cpuqueue))) {
+ HIGHLIGHT(work);
device->execute(work);
delete work;
}
@@ -86,6 +161,7 @@ void *WorkScheduler::thread_execute_gpu(void *data)
WorkPackage *work;
while ((work = (WorkPackage *)BLI_thread_queue_pop(g_gpuqueue))) {
+ HIGHLIGHT(work);
device->execute(work);
delete work;
}
@@ -190,44 +266,71 @@ bool WorkScheduler::hasGPUDevices()
#endif
}
-extern void clContextError(const char *errinfo, const void *private_info, size_t cb, void *user_data)
+static void clContextError(const char *errinfo, const void *private_info, size_t cb, void *user_data)
{
printf("OPENCL error: %s\n", errinfo);
}
-void WorkScheduler::initialize()
+void WorkScheduler::initialize(bool use_opencl)
{
+ /* initialize highlighting */
+ if (!g_highlightInitialized) {
+ if (g_highlightedNodesRead) MEM_freeN(g_highlightedNodesRead);
+ if (g_highlightedNodes) MEM_freeN(g_highlightedNodes);
+
+ g_highlightedNodesRead = NULL;
+ g_highlightedNodes = NULL;
+
+ COM_startReadHighlights();
+
+ g_highlightInitialized = true;
+ }
+
#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
- int numberOfCPUThreads = BLI_system_thread_count();
+ /* initialize CPU threads */
+ if (!g_cpuInitialized) {
+ int numberOfCPUThreads = BLI_system_thread_count();
+
+ for (int index = 0; index < numberOfCPUThreads; index++) {
+ CPUDevice *device = new CPUDevice();
+ device->initialize();
+ g_cpudevices.push_back(device);
+ }
- for (int index = 0; index < numberOfCPUThreads; index++) {
- CPUDevice *device = new CPUDevice();
- device->initialize();
- g_cpudevices.push_back(device);
+ g_cpuInitialized = true;
}
+
#ifdef COM_OPENCL_ENABLED
- g_context = NULL;
- g_program = NULL;
- if (clCreateContextFromType) {
- cl_uint numberOfPlatforms = 0;
- cl_int error;
- error = clGetPlatformIDs(0, 0, &numberOfPlatforms);
- if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
- if (G.f & G_DEBUG) printf("%d number of platforms\n", numberOfPlatforms);
- cl_platform_id *platforms = new cl_platform_id[numberOfPlatforms];
- error = clGetPlatformIDs(numberOfPlatforms, platforms, 0);
- unsigned int indexPlatform;
- for (indexPlatform = 0; indexPlatform < numberOfPlatforms; indexPlatform++) {
- cl_platform_id platform = platforms[indexPlatform];
- cl_uint numberOfDevices = 0;
- clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 0, 0, &numberOfDevices);
- if (numberOfDevices>0) {
- cl_device_id *cldevices = new cl_device_id[numberOfDevices];
+ /* deinitialize OpenCL GPU's */
+ if (use_opencl && !g_openclInitialized) {
+ g_context = NULL;
+ g_program = NULL;
+
+ OCL_init(); /* this will check and skip if already initialized */
+
+ if (clCreateContextFromType) {
+ cl_uint numberOfPlatforms = 0;
+ cl_int error;
+ error = clGetPlatformIDs(0, 0, &numberOfPlatforms);
+ if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
+ if (G.f & G_DEBUG) printf("%d number of platforms\n", numberOfPlatforms);
+ cl_platform_id *platforms = (cl_platform_id *)MEM_mallocN(sizeof(cl_platform_id) * numberOfPlatforms, __func__);
+ error = clGetPlatformIDs(numberOfPlatforms, platforms, 0);
+ unsigned int indexPlatform;
+ for (indexPlatform = 0; indexPlatform < numberOfPlatforms; indexPlatform++) {
+ cl_platform_id platform = platforms[indexPlatform];
+ cl_uint numberOfDevices = 0;
+ clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 0, 0, &numberOfDevices);
+ if (numberOfDevices <= 0)
+ continue;
+
+ cl_device_id *cldevices = (cl_device_id *)MEM_mallocN(sizeof(cl_device_id) * numberOfDevices, __func__);
clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, numberOfDevices, cldevices, 0);
g_context = clCreateContext(NULL, numberOfDevices, cldevices, clContextError, NULL, &error);
if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
- g_program = clCreateProgramWithSource(g_context, 1, &clkernelstoh_COM_OpenCLKernels_cl, 0, &error);
+ const char *cl_str[2] = {datatoc_COM_OpenCLKernels_cl, NULL};
+ g_program = clCreateProgramWithSource(g_context, 1, cl_str, 0, &error);
error = clBuildProgram(g_program, numberOfDevices, cldevices, 0, 0, 0);
if (error != CL_SUCCESS) {
cl_int error2;
@@ -235,12 +338,12 @@ void WorkScheduler::initialize()
printf("CLERROR[%d]: %s\n", error, clewErrorString(error));
error2 = clGetProgramBuildInfo(g_program, cldevices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &ret_val_size);
if (error2 != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
- char *build_log = new char[ret_val_size + 1];
+ char *build_log = (char *)MEM_mallocN(sizeof(char) * ret_val_size + 1, __func__);
error2 = clGetProgramBuildInfo(g_program, cldevices[0], CL_PROGRAM_BUILD_LOG, ret_val_size, build_log, NULL);
if (error2 != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
build_log[ret_val_size] = '\0';
printf("%s", build_log);
- delete build_log;
+ MEM_freeN(build_log);
}
else {
unsigned int indexDevices;
@@ -254,10 +357,12 @@ void WorkScheduler::initialize()
g_gpudevices.push_back(clDevice);
}
}
- delete[] cldevices;
+ MEM_freeN(cldevices);
}
+ MEM_freeN(platforms);
}
- delete[] platforms;
+
+ g_openclInitialized = true;
}
#endif
#endif
@@ -266,28 +371,55 @@ void WorkScheduler::initialize()
void WorkScheduler::deinitialize()
{
#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
- Device *device;
- while (g_cpudevices.size() > 0) {
- device = g_cpudevices.back();
- g_cpudevices.pop_back();
- device->deinitialize();
- delete device;
+ /* deinitialize CPU threads */
+ if (g_cpuInitialized) {
+ Device *device;
+ while (g_cpudevices.size() > 0) {
+ device = g_cpudevices.back();
+ g_cpudevices.pop_back();
+ device->deinitialize();
+ delete device;
+ }
+
+ g_cpuInitialized = false;
}
+
#ifdef COM_OPENCL_ENABLED
- while (g_gpudevices.size() > 0) {
- device = g_gpudevices.back();
- g_gpudevices.pop_back();
- device->deinitialize();
- delete device;
- }
- if (g_program) {
- clReleaseProgram(g_program);
- g_program = NULL;
- }
- if (g_context) {
- clReleaseContext(g_context);
- g_context = NULL;
+ /* deinitialize OpenCL GPU's */
+ if (g_openclInitialized) {
+ Device *device;
+ while (g_gpudevices.size() > 0) {
+ device = g_gpudevices.back();
+ g_gpudevices.pop_back();
+ device->deinitialize();
+ delete device;
+ }
+ if (g_program) {
+ clReleaseProgram(g_program);
+ g_program = NULL;
+ }
+ if (g_context) {
+ clReleaseContext(g_context);
+ g_context = NULL;
+ }
+
+ g_openclInitialized = false;
}
#endif
#endif
+
+ /* deinitialize highlighting */
+ if (g_highlightInitialized) {
+ g_highlightInitialized = false;
+ if (g_highlightedNodes) {
+ MEM_freeN(g_highlightedNodes);
+ g_highlightedNodes = NULL;
+ }
+
+ if (g_highlightedNodesRead) {
+ MEM_freeN(g_highlightedNodesRead);
+ g_highlightedNodesRead = NULL;
+ }
+ }
}
+
diff --git a/source/blender/compositor/intern/COM_WorkScheduler.h b/source/blender/compositor/intern/COM_WorkScheduler.h
index f56fe94201e..4ab23cf9ae4 100644
--- a/source/blender/compositor/intern/COM_WorkScheduler.h
+++ b/source/blender/compositor/intern/COM_WorkScheduler.h
@@ -74,8 +74,10 @@ public:
* After mutex initialization the system is queried in order to count the number of CPUDevices and GPUDevices to be created.
* For every hardware thread a CPUDevice and for every OpenCL GPU device a OpenCLDevice is created.
* these devices are stored in a separate list (cpudevices & gpudevices)
+ *
+ * This function can be called multiple times to lazily initialize OpenCL.
*/
- static void initialize();
+ static void initialize(bool use_opencl);
/**
* @brief deinitialize the WorkScheduler
diff --git a/source/blender/compositor/intern/COM_compositor.cpp b/source/blender/compositor/intern/COM_compositor.cpp
index 9e48334bcca..49ab9db5dd8 100644
--- a/source/blender/compositor/intern/COM_compositor.cpp
+++ b/source/blender/compositor/intern/COM_compositor.cpp
@@ -32,50 +32,84 @@ extern "C" {
#include "COM_ExecutionSystem.h"
#include "COM_WorkScheduler.h"
#include "OCL_opencl.h"
+#include "COM_MovieDistortionOperation.h"
-static ThreadMutex compositorMutex;
+static ThreadMutex s_compositorMutex;
static char is_compositorMutex_init = FALSE;
-void COM_execute(RenderData *rd, bNodeTree *editingtree, int rendering)
+
+static void intern_freeCompositorCaches()
+{
+ deintializeDistortionCache();
+}
+
+void COM_execute(RenderData *rd, bNodeTree *editingtree, int rendering,
+ const ColorManagedViewSettings *viewSettings,
+ const ColorManagedDisplaySettings *displaySettings)
{
- if (is_compositorMutex_init == FALSE) { /// TODO: move to blender startup phase
- memset(&compositorMutex, 0, sizeof(compositorMutex));
- BLI_mutex_init(&compositorMutex);
- OCL_init();
- WorkScheduler::initialize(); ///TODO: call workscheduler.deinitialize somewhere
+ /* initialize mutex, TODO this mutex init is actually not thread safe and
+ * should be done somewhere as part of blender startup, all the other
+ * initializations can be done lazily */
+ if (is_compositorMutex_init == FALSE) {
+ BLI_mutex_init(&s_compositorMutex);
is_compositorMutex_init = TRUE;
}
- BLI_mutex_lock(&compositorMutex);
+
+ BLI_mutex_lock(&s_compositorMutex);
+
if (editingtree->test_break(editingtree->tbh)) {
// during editing multiple calls to this method can be triggered.
// make sure one the last one will be doing the work.
- BLI_mutex_unlock(&compositorMutex);
+ BLI_mutex_unlock(&s_compositorMutex);
return;
-
}
+ /* initialize workscheduler, will check if already done. TODO deinitialize somewhere */
+ bool use_opencl = (editingtree->flag & NTREE_COM_OPENCL);
+ WorkScheduler::initialize(use_opencl);
- /* set progress bar to 0% and status to init compositing*/
+ /* set progress bar to 0% and status to init compositing */
editingtree->progress(editingtree->prh, 0.0);
- bool twopass = (editingtree->flag&NTREE_TWO_PASS) > 0 || rendering;
+ bool twopass = (editingtree->flag & NTREE_TWO_PASS) > 0 && !rendering;
/* initialize execution system */
if (twopass) {
- ExecutionSystem *system = new ExecutionSystem(rd, editingtree, rendering, twopass);
+ ExecutionSystem *system = new ExecutionSystem(rd, editingtree, rendering, twopass, viewSettings, displaySettings);
system->execute();
delete system;
if (editingtree->test_break(editingtree->tbh)) {
// during editing multiple calls to this method can be triggered.
// make sure one the last one will be doing the work.
- BLI_mutex_unlock(&compositorMutex);
+ BLI_mutex_unlock(&s_compositorMutex);
return;
}
}
- ExecutionSystem *system = new ExecutionSystem(rd, editingtree, rendering, false);
+ ExecutionSystem *system = new ExecutionSystem(rd, editingtree, rendering, false, viewSettings, displaySettings);
system->execute();
delete system;
- BLI_mutex_unlock(&compositorMutex);
+ BLI_mutex_unlock(&s_compositorMutex);
+}
+
+static void UNUSED_FUNCTION(COM_freeCaches)()
+{
+ if (is_compositorMutex_init) {
+ BLI_mutex_lock(&s_compositorMutex);
+ intern_freeCompositorCaches();
+ BLI_mutex_unlock(&s_compositorMutex);
+ }
+}
+
+void COM_deinitialize()
+{
+ if (is_compositorMutex_init) {
+ BLI_mutex_lock(&s_compositorMutex);
+ intern_freeCompositorCaches();
+ WorkScheduler::deinitialize();
+ is_compositorMutex_init = FALSE;
+ BLI_mutex_unlock(&s_compositorMutex);
+ BLI_mutex_end(&s_compositorMutex);
+ }
}
diff --git a/source/blender/compositor/nodes/COM_BilateralBlurNode.cpp b/source/blender/compositor/nodes/COM_BilateralBlurNode.cpp
index 683093302c1..399d2adf0be 100644
--- a/source/blender/compositor/nodes/COM_BilateralBlurNode.cpp
+++ b/source/blender/compositor/nodes/COM_BilateralBlurNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_BilateralBlurNode.h"
-#include "DNA_scene_types.h"
#include "DNA_node_types.h"
#include "COM_ExecutionSystem.h"
#include "COM_BilateralBlurOperation.h"
diff --git a/source/blender/compositor/nodes/COM_BlurNode.cpp b/source/blender/compositor/nodes/COM_BlurNode.cpp
index 5447652c238..4f120ea5a6e 100644
--- a/source/blender/compositor/nodes/COM_BlurNode.cpp
+++ b/source/blender/compositor/nodes/COM_BlurNode.cpp
@@ -21,13 +21,16 @@
*/
#include "COM_BlurNode.h"
-#include "DNA_scene_types.h"
#include "DNA_node_types.h"
#include "COM_GaussianXBlurOperation.h"
#include "COM_GaussianYBlurOperation.h"
+#include "COM_GaussianAlphaXBlurOperation.h"
+#include "COM_GaussianAlphaYBlurOperation.h"
#include "COM_ExecutionSystem.h"
#include "COM_GaussianBokehBlurOperation.h"
#include "COM_FastGaussianBlurOperation.h"
+#include "COM_MathBaseOperation.h"
+#include "COM_SetValueOperation.h"
BlurNode::BlurNode(bNode *editorNode) : Node(editorNode)
{
@@ -54,7 +57,47 @@ void BlurNode::convertToOperations(ExecutionSystem *graph, CompositorContext *co
this->getInputSocket(1)->relinkConnections(operationfgb->getInputSocket(1), 1, graph);
this->getOutputSocket(0)->relinkConnections(operationfgb->getOutputSocket(0));
graph->addOperation(operationfgb);
- addPreviewOperation(graph, operationfgb->getOutputSocket());
+ addPreviewOperation(graph, context, operationfgb->getOutputSocket());
+ }
+ else if (editorNode->custom1 & CMP_NODEFLAG_BLUR_VARIABLE_SIZE) {
+ MathAddOperation *clamp = new MathAddOperation();
+ SetValueOperation *zero = new SetValueOperation();
+ addLink(graph, zero->getOutputSocket(), clamp->getInputSocket(1));
+ this->getInputSocket(1)->relinkConnections(clamp->getInputSocket(0), 1, graph);
+ zero->setValue(0.0f);
+ clamp->setUseClamp(true);
+ graph->addOperation(clamp);
+ graph->addOperation(zero);
+
+ GaussianAlphaXBlurOperation *operationx = new GaussianAlphaXBlurOperation();
+ operationx->setData(data);
+ operationx->setbNode(editorNode);
+ operationx->setQuality(quality);
+ operationx->setSize(1.0f);
+ operationx->setFalloff(PROP_SMOOTH);
+ operationx->setSubtract(false);
+ addLink(graph, clamp->getOutputSocket(), operationx->getInputSocket(0));
+ graph->addOperation(operationx);
+
+ GaussianAlphaYBlurOperation *operationy = new GaussianAlphaYBlurOperation();
+ operationy->setData(data);
+ operationy->setbNode(editorNode);
+ operationy->setQuality(quality);
+ operationy->setSize(1.0f);
+ operationy->setFalloff(PROP_SMOOTH);
+ operationy->setSubtract(false);
+ addLink(graph, operationx->getOutputSocket(), operationy->getInputSocket(0));
+ graph->addOperation(operationy);
+
+ GaussianBlurReferenceOperation *operation = new GaussianBlurReferenceOperation();
+ operation->setData(data);
+ operation->setbNode(editorNode);
+ operation->setQuality(quality);
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ addLink(graph, operationy->getOutputSocket(), operation->getInputSocket(1));
+ graph->addOperation(operation);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+ addPreviewOperation(graph, context, operation->getOutputSocket());
}
else if (!data->bokeh) {
GaussianXBlurOperation *operationx = new GaussianXBlurOperation();
@@ -72,7 +115,7 @@ void BlurNode::convertToOperations(ExecutionSystem *graph, CompositorContext *co
graph->addOperation(operationy);
addLink(graph, operationx->getOutputSocket(), operationy->getInputSocket(0));
addLink(graph, operationx->getInputSocket(1)->getConnection()->getFromSocket(), operationy->getInputSocket(1));
- addPreviewOperation(graph, operationy->getOutputSocket());
+ addPreviewOperation(graph, context, operationy->getOutputSocket());
if (!connectedSizeSocket) {
operationx->setSize(size);
@@ -88,7 +131,7 @@ void BlurNode::convertToOperations(ExecutionSystem *graph, CompositorContext *co
operation->setQuality(quality);
graph->addOperation(operation);
this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
- addPreviewOperation(graph, operation->getOutputSocket());
+ addPreviewOperation(graph, context, operation->getOutputSocket());
if (!connectedSizeSocket) {
operation->setSize(size);
diff --git a/source/blender/compositor/nodes/COM_BokehBlurNode.cpp b/source/blender/compositor/nodes/COM_BokehBlurNode.cpp
index 0ea4b20c793..70f20e3235b 100644
--- a/source/blender/compositor/nodes/COM_BokehBlurNode.cpp
+++ b/source/blender/compositor/nodes/COM_BokehBlurNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_BokehBlurNode.h"
-#include "DNA_scene_types.h"
#include "DNA_camera_types.h"
#include "DNA_object_types.h"
#include "DNA_node_types.h"
@@ -37,32 +36,45 @@ BokehBlurNode::BokehBlurNode(bNode *editorNode) : Node(editorNode)
void BokehBlurNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
{
-// Object *camob = context->getScene()->camera;
+ bNode *b_node = this->getbNode();
-// if (this->getInputSocket(2)->isConnected()) {
-// VariableSizeBokehBlurOperation *operation = new VariableSizeBokehBlurOperation();
-// ConvertDepthToRadiusOperation *converter = new ConvertDepthToRadiusOperation();
-// converter->setfStop(this->getbNode()->custom3);
-// converter->setCameraObject(camob);
-// operation->setMaxBlur((int)this->getbNode()->custom4);
-// operation->setQuality(context->getQuality());
-// this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
-// this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
-// this->getInputSocket(2)->relinkConnections(converter->getInputSocket(0), 2, graph);
-// addLink(graph, converter->getOutputSocket(), operation->getInputSocket(2));
-// graph->addOperation(operation);
-// graph->addOperation(converter);
-// this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
-// }
-// else {
+ InputSocket *inputSizeSocket = this->getInputSocket(2);
+
+ bool connectedSizeSocket = inputSizeSocket->isConnected();
+
+ if ((b_node->custom1 & CMP_NODEFLAG_BLUR_VARIABLE_SIZE) && connectedSizeSocket) {
+ VariableSizeBokehBlurOperation *operation = new VariableSizeBokehBlurOperation();
+
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getInputSocket(2)->relinkConnections(operation->getInputSocket(2), 2, graph);
+ operation->setQuality(context->getQuality());
+ operation->setbNode(this->getbNode());
+ graph->addOperation(operation);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
+
+ operation->setThreshold(0.0f);
+ operation->setMaxBlur(b_node->custom4);
+ operation->setDoScaleSize(true);
+ }
+ else {
BokehBlurOperation *operation = new BokehBlurOperation();
+
+ const bNodeSocket *sock = this->getInputSocket(2)->getbNodeSocket();
+ const float size = ((const bNodeSocketValueFloat *)sock->default_value)->value;
+
this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
+ this->getInputSocket(2)->relinkConnections(operation->getInputSocket(3), 2, graph);
this->getInputSocket(3)->relinkConnections(operation->getInputSocket(2), 3, graph);
- operation->setSize(((bNodeSocketValueFloat *)this->getInputSocket(2)->getbNodeSocket()->default_value)->value);
+ //operation->setSize(((bNodeSocketValueFloat *)this->getInputSocket(2)->getbNodeSocket()->default_value)->value);
operation->setQuality(context->getQuality());
operation->setbNode(this->getbNode());
graph->addOperation(operation);
this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
-// }
+
+ if (!connectedSizeSocket) {
+ operation->setSize(size);
+ }
+ }
}
diff --git a/source/blender/compositor/nodes/COM_BokehImageNode.cpp b/source/blender/compositor/nodes/COM_BokehImageNode.cpp
index 75f5e07d552..a89ed9e0c64 100644
--- a/source/blender/compositor/nodes/COM_BokehImageNode.cpp
+++ b/source/blender/compositor/nodes/COM_BokehImageNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_BokehImageNode.h"
-#include "DNA_scene_types.h"
#include "COM_BokehImageOperation.h"
#include "COM_ExecutionSystem.h"
@@ -36,5 +35,5 @@ void BokehImageNode::convertToOperations(ExecutionSystem *graph, CompositorConte
this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
graph->addOperation(operation);
operation->setData((NodeBokehImage *)this->getbNode()->storage);
- addPreviewOperation(graph, operation->getOutputSocket(0));
+ addPreviewOperation(graph, context, operation->getOutputSocket(0));
}
diff --git a/source/blender/compositor/nodes/COM_BoxMaskNode.cpp b/source/blender/compositor/nodes/COM_BoxMaskNode.cpp
index 789ff265a5c..0580a32ed8c 100644
--- a/source/blender/compositor/nodes/COM_BoxMaskNode.cpp
+++ b/source/blender/compositor/nodes/COM_BoxMaskNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_BoxMaskNode.h"
-#include "DNA_scene_types.h"
#include "COM_BoxMaskOperation.h"
#include "COM_ExecutionSystem.h"
diff --git a/source/blender/compositor/nodes/COM_BrightnessNode.cpp b/source/blender/compositor/nodes/COM_BrightnessNode.cpp
index 1e1fbdbc301..cd230a23a5c 100644
--- a/source/blender/compositor/nodes/COM_BrightnessNode.cpp
+++ b/source/blender/compositor/nodes/COM_BrightnessNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_BrightnessNode.h"
-#include "DNA_scene_types.h"
#include "COM_BrightnessOperation.h"
#include "COM_ExecutionSystem.h"
diff --git a/source/blender/compositor/nodes/COM_ChannelMatteNode.cpp b/source/blender/compositor/nodes/COM_ChannelMatteNode.cpp
index 69f39639660..c1511ee611b 100644
--- a/source/blender/compositor/nodes/COM_ChannelMatteNode.cpp
+++ b/source/blender/compositor/nodes/COM_ChannelMatteNode.cpp
@@ -45,13 +45,13 @@ void ChannelMatteNode::convertToOperations(ExecutionSystem *graph, CompositorCon
switch (node->custom1) {
case CMP_NODE_CHANNEL_MATTE_CS_RGB:
break;
- case CMP_NODE_CHANNEL_MATTE_CS_HSV: /*HSV*/
+ case CMP_NODE_CHANNEL_MATTE_CS_HSV: /* HSV */
convert = new ConvertRGBToHSVOperation();
break;
- case CMP_NODE_CHANNEL_MATTE_CS_YUV: /*YUV*/
+ case CMP_NODE_CHANNEL_MATTE_CS_YUV: /* YUV */
convert = new ConvertRGBToYUVOperation();
break;
- case CMP_NODE_CHANNEL_MATTE_CS_YCC: /*YCC*/
+ case CMP_NODE_CHANNEL_MATTE_CS_YCC: /* YCC */
convert = new ConvertRGBToYCCOperation();
((ConvertRGBToYCCOperation *)convert)->setMode(0); /* BLI_YCC_ITU_BT601 */
break;
@@ -84,7 +84,7 @@ void ChannelMatteNode::convertToOperations(ExecutionSystem *graph, CompositorCon
graph->addOperation(operationAlpha);
addLink(graph, operation->getOutputSocket(), operationAlpha->getInputSocket(1));
- addPreviewOperation(graph, operationAlpha->getOutputSocket());
+ addPreviewOperation(graph, context, operationAlpha->getOutputSocket());
if (outputSocketImage->isConnected()) {
outputSocketImage->relinkConnections(operationAlpha->getOutputSocket());
diff --git a/source/blender/compositor/nodes/COM_ChromaMatteNode.cpp b/source/blender/compositor/nodes/COM_ChromaMatteNode.cpp
index 0fb09157351..4c4b77ba6cc 100644
--- a/source/blender/compositor/nodes/COM_ChromaMatteNode.cpp
+++ b/source/blender/compositor/nodes/COM_ChromaMatteNode.cpp
@@ -65,7 +65,7 @@ void ChromaMatteNode::convertToOperations(ExecutionSystem *graph, CompositorCont
addLink(graph, operation->getOutputSocket(), operationAlpha->getInputSocket(1));
graph->addOperation(operationAlpha);
- addPreviewOperation(graph, operationAlpha->getOutputSocket());
+ addPreviewOperation(graph, context, operationAlpha->getOutputSocket());
if (outputSocketImage->isConnected()) {
outputSocketImage->relinkConnections(operationAlpha->getOutputSocket());
diff --git a/source/blender/compositor/nodes/COM_ColorCorrectionNode.cpp b/source/blender/compositor/nodes/COM_ColorCorrectionNode.cpp
index 41b3bebbd7b..a05abaf17d3 100644
--- a/source/blender/compositor/nodes/COM_ColorCorrectionNode.cpp
+++ b/source/blender/compositor/nodes/COM_ColorCorrectionNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_ColorCorrectionNode.h"
-#include "DNA_scene_types.h"
#include "COM_ColorCorrectionOperation.h"
#include "COM_ExecutionSystem.h"
diff --git a/source/blender/compositor/nodes/COM_ColorCurveNode.cpp b/source/blender/compositor/nodes/COM_ColorCurveNode.cpp
index 9ae11c22b6a..93ff304afd8 100644
--- a/source/blender/compositor/nodes/COM_ColorCurveNode.cpp
+++ b/source/blender/compositor/nodes/COM_ColorCurveNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_ColorCurveNode.h"
-#include "DNA_scene_types.h"
#include "COM_ColorCurveOperation.h"
#include "COM_ExecutionSystem.h"
diff --git a/source/blender/compositor/nodes/COM_ColorMatteNode.cpp b/source/blender/compositor/nodes/COM_ColorMatteNode.cpp
index 38ab6ba8da2..54e6762961b 100644
--- a/source/blender/compositor/nodes/COM_ColorMatteNode.cpp
+++ b/source/blender/compositor/nodes/COM_ColorMatteNode.cpp
@@ -62,7 +62,7 @@ void ColorMatteNode::convertToOperations(ExecutionSystem *graph, CompositorConte
addLink(graph, operationRGBToHSV_Image->getInputSocket(0)->getConnection()->getFromSocket(), operationAlpha->getInputSocket(0));
addLink(graph, operation->getOutputSocket(), operationAlpha->getInputSocket(1));
graph->addOperation(operationAlpha);
- addPreviewOperation(graph, operationAlpha->getOutputSocket());
+ addPreviewOperation(graph, context, operationAlpha->getOutputSocket());
if (outputSocketImage->isConnected()) {
outputSocketImage->relinkConnections(operationAlpha->getOutputSocket());
diff --git a/source/blender/compositor/nodes/COM_ColorNode.cpp b/source/blender/compositor/nodes/COM_ColorNode.cpp
index 65480c7aeb2..088f8bbb19d 100644
--- a/source/blender/compositor/nodes/COM_ColorNode.cpp
+++ b/source/blender/compositor/nodes/COM_ColorNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_ColorNode.h"
-#include "DNA_scene_types.h"
#include "COM_SetColorOperation.h"
#include "COM_ExecutionSystem.h"
diff --git a/source/blender/compositor/nodes/COM_CompositorNode.cpp b/source/blender/compositor/nodes/COM_CompositorNode.cpp
index 28e466203c4..e3313750e66 100644
--- a/source/blender/compositor/nodes/COM_CompositorNode.cpp
+++ b/source/blender/compositor/nodes/COM_CompositorNode.cpp
@@ -31,15 +31,19 @@ CompositorNode::CompositorNode(bNode *editorNode) : Node(editorNode)
void CompositorNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
{
+ bNode *editorNode = this->getbNode();
+
InputSocket *imageSocket = this->getInputSocket(0);
InputSocket *alphaSocket = this->getInputSocket(1);
- if (imageSocket->isConnected()) {
- CompositorOperation *colorAlphaProg = new CompositorOperation();
- colorAlphaProg->setRenderData(context->getRenderData());
- colorAlphaProg->setbNodeTree(context->getbNodeTree());
- imageSocket->relinkConnections(colorAlphaProg->getInputSocket(0));
- alphaSocket->relinkConnections(colorAlphaProg->getInputSocket(1));
- graph->addOperation(colorAlphaProg);
- addPreviewOperation(graph, colorAlphaProg->getInputSocket(0));
- }
+ InputSocket *depthSocket = this->getInputSocket(2);
+
+ CompositorOperation *compositorOperation = new CompositorOperation();
+ compositorOperation->setSceneName(editorNode->id->name);
+ compositorOperation->setRenderData(context->getRenderData());
+ compositorOperation->setbNodeTree(context->getbNodeTree());
+ imageSocket->relinkConnections(compositorOperation->getInputSocket(0), 0, graph);
+ alphaSocket->relinkConnections(compositorOperation->getInputSocket(1));
+ depthSocket->relinkConnections(compositorOperation->getInputSocket(2));
+ graph->addOperation(compositorOperation);
+ addPreviewOperation(graph, context, compositorOperation->getInputSocket(0));
}
diff --git a/source/blender/compositor/nodes/COM_DefocusNode.cpp b/source/blender/compositor/nodes/COM_DefocusNode.cpp
index 4c6b3ad137b..c2bd8997525 100644
--- a/source/blender/compositor/nodes/COM_DefocusNode.cpp
+++ b/source/blender/compositor/nodes/COM_DefocusNode.cpp
@@ -32,6 +32,7 @@
#include "COM_MathBaseOperation.h"
#include "COM_SetValueOperation.h"
#include "COM_GammaCorrectOperation.h"
+#include "COM_FastGaussianBlurOperation.h"
DefocusNode::DefocusNode(bNode *editorNode) : Node(editorNode)
{
@@ -46,7 +47,6 @@ void DefocusNode::convertToOperations(ExecutionSystem *graph, CompositorContext
NodeDefocus *data = (NodeDefocus *)node->storage;
NodeOperation *radiusOperation;
- OutputSocket * depthOperation;
if (data->no_zbuf) {
MathMultiplyOperation *multiply = new MathMultiplyOperation();
SetValueOperation *multiplier = new SetValueOperation();
@@ -64,7 +64,6 @@ void DefocusNode::convertToOperations(ExecutionSystem *graph, CompositorContext
graph->addOperation(maxRadius);
graph->addOperation(minimize);
radiusOperation = minimize;
- depthOperation = minimize->getOutputSocket(0);
}
else {
ConvertDepthToRadiusOperation *converter = new ConvertDepthToRadiusOperation();
@@ -73,8 +72,15 @@ void DefocusNode::convertToOperations(ExecutionSystem *graph, CompositorContext
converter->setMaxRadius(data->maxblur);
this->getInputSocket(1)->relinkConnections(converter->getInputSocket(0), 1, graph);
graph->addOperation(converter);
- radiusOperation = converter;
- depthOperation = converter->getInputSocket(0)->getConnection()->getFromSocket();
+
+ FastGaussianBlurValueOperation *blur = new FastGaussianBlurValueOperation();
+ addLink(graph, converter->getOutputSocket(0), blur->getInputSocket(0));
+ graph->addOperation(blur);
+ radiusOperation = blur;
+ converter->setPostBlur(blur);
+
+ /* maintain close pixels so far Z values don't bleed into the foreground */
+ blur->setOverlay(FAST_GAUSS_OVERLAY_MIN);
}
BokehImageOperation *bokeh = new BokehImageOperation();
@@ -96,15 +102,14 @@ void DefocusNode::convertToOperations(ExecutionSystem *graph, CompositorContext
#ifdef COM_DEFOCUS_SEARCH
InverseSearchRadiusOperation *search = new InverseSearchRadiusOperation();
addLink(graph, radiusOperation->getOutputSocket(0), search->getInputSocket(0));
- addLink(graph, depthOperation, search->getInputSocket(1));
search->setMaxBlur(data->maxblur);
- search->setThreshold(data->bthresh);
graph->addOperation(search);
#endif
VariableSizeBokehBlurOperation *operation = new VariableSizeBokehBlurOperation();
if (data->preview) {
operation->setQuality(COM_QUALITY_LOW);
- } else {
+ }
+ else {
operation->setQuality(context->getQuality());
}
operation->setMaxBlur(data->maxblur);
@@ -112,9 +117,8 @@ void DefocusNode::convertToOperations(ExecutionSystem *graph, CompositorContext
operation->setThreshold(data->bthresh);
addLink(graph, bokeh->getOutputSocket(), operation->getInputSocket(1));
addLink(graph, radiusOperation->getOutputSocket(), operation->getInputSocket(2));
- addLink(graph, depthOperation, operation->getInputSocket(3));
#ifdef COM_DEFOCUS_SEARCH
- addLink(graph, search->getOutputSocket(), operation->getInputSocket(4));
+ addLink(graph, search->getOutputSocket(), operation->getInputSocket(3));
#endif
if (data->gamco) {
GammaCorrectOperation *correct = new GammaCorrectOperation();
diff --git a/source/blender/compositor/nodes/COM_DespeckleNode.cpp b/source/blender/compositor/nodes/COM_DespeckleNode.cpp
new file mode 100644
index 00000000000..a97714c870e
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DespeckleNode.cpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor: Campbell Barton
+ */
+
+#include "COM_DespeckleNode.h"
+#include "DNA_scene_types.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_DespeckleOperation.h"
+#include "BLI_math.h"
+
+DespeckleNode::DespeckleNode(bNode *editorNode) : Node(editorNode)
+{
+ /* pass */
+}
+
+void DespeckleNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
+{
+ bNode *editorNode = this->getbNode();
+ InputSocket *inputSocket = this->getInputSocket(0);
+ InputSocket *inputImageSocket = this->getInputSocket(1);
+ OutputSocket *outputSocket = this->getOutputSocket(0);
+ DespeckleOperation *operation = new DespeckleOperation();
+
+ operation->setbNode(editorNode);
+ operation->setThreshold(editorNode->custom3);
+ operation->setThresholdNeighbour(editorNode->custom4);
+
+ inputImageSocket->relinkConnections(operation->getInputSocket(0), 1, graph);
+ inputSocket->relinkConnections(operation->getInputSocket(1), 0, graph);
+ outputSocket->relinkConnections(operation->getOutputSocket());
+ addPreviewOperation(graph, context, operation->getOutputSocket(0));
+
+ graph->addOperation(operation);
+}
diff --git a/source/blender/compositor/nodes/COM_DespeckleNode.h b/source/blender/compositor/nodes/COM_DespeckleNode.h
new file mode 100644
index 00000000000..2b8ab9d0226
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_DespeckleNode.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor: Campbell Barton
+ */
+
+#ifndef _COM_DespeckleNode_h_
+#define _COM_DespeckleNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief DespeckleNode
+ * @ingroup Node
+ */
+class DespeckleNode : public Node {
+public:
+ DespeckleNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_DifferenceMatteNode.cpp b/source/blender/compositor/nodes/COM_DifferenceMatteNode.cpp
index 6dca049a6ae..b5ad07be319 100644
--- a/source/blender/compositor/nodes/COM_DifferenceMatteNode.cpp
+++ b/source/blender/compositor/nodes/COM_DifferenceMatteNode.cpp
@@ -51,5 +51,5 @@ void DifferenceMatteNode::convertToOperations(ExecutionSystem *graph, Compositor
addLink(graph, operationSet->getOutputSocket(), operation->getInputSocket(1));
outputSocketImage->relinkConnections(operation->getOutputSocket());
graph->addOperation(operation);
- addPreviewOperation(graph, operation->getOutputSocket());
+ addPreviewOperation(graph, context, operation->getOutputSocket());
}
diff --git a/source/blender/compositor/nodes/COM_DilateErodeNode.cpp b/source/blender/compositor/nodes/COM_DilateErodeNode.cpp
index 043ae367fbb..5cfc29ecce2 100644
--- a/source/blender/compositor/nodes/COM_DilateErodeNode.cpp
+++ b/source/blender/compositor/nodes/COM_DilateErodeNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_DilateErodeNode.h"
-#include "DNA_scene_types.h"
#include "COM_ExecutionSystem.h"
#include "COM_DilateErodeOperation.h"
#include "COM_AntiAliasOperation.h"
@@ -96,6 +95,7 @@ void DilateErodeNode::convertToOperations(ExecutionSystem *graph, CompositorCont
operationx->setbNode(editorNode);
operationx->setData(data);
operationx->setQuality(quality);
+ operationx->setFalloff(PROP_SMOOTH);
this->getInputSocket(0)->relinkConnections(operationx->getInputSocket(0), 0, graph);
// this->getInputSocket(1)->relinkConnections(operationx->getInputSocket(1), 1, graph); // no size input yet
graph->addOperation(operationx);
@@ -103,11 +103,12 @@ void DilateErodeNode::convertToOperations(ExecutionSystem *graph, CompositorCont
operationy->setbNode(editorNode);
operationy->setData(data);
operationy->setQuality(quality);
+ operationy->setFalloff(PROP_SMOOTH);
this->getOutputSocket(0)->relinkConnections(operationy->getOutputSocket());
graph->addOperation(operationy);
addLink(graph, operationx->getOutputSocket(), operationy->getInputSocket(0));
// addLink(graph, operationx->getInputSocket(1)->getConnection()->getFromSocket(), operationy->getInputSocket(1)); // no size input yet
- addPreviewOperation(graph, operationy->getOutputSocket());
+ addPreviewOperation(graph, context, operationy->getOutputSocket());
/* TODO? */
/* see gaussian blue node for original usage */
diff --git a/source/blender/compositor/nodes/COM_DirectionalBlurNode.cpp b/source/blender/compositor/nodes/COM_DirectionalBlurNode.cpp
index dee0e6a88da..eb30f6952ba 100644
--- a/source/blender/compositor/nodes/COM_DirectionalBlurNode.cpp
+++ b/source/blender/compositor/nodes/COM_DirectionalBlurNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_DirectionalBlurNode.h"
-#include "DNA_scene_types.h"
#include "DNA_node_types.h"
#include "COM_ExecutionSystem.h"
#include "COM_DirectionalBlurOperation.h"
@@ -37,6 +36,7 @@ void DirectionalBlurNode::convertToOperations(ExecutionSystem *graph, Compositor
DirectionalBlurOperation *operation = new DirectionalBlurOperation();
operation->setQuality(context->getQuality());
operation->setData(data);
+ operation->setbNode(this->getbNode());
this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
graph->addOperation(operation);
diff --git a/source/blender/compositor/nodes/COM_DistanceMatteNode.cpp b/source/blender/compositor/nodes/COM_DistanceMatteNode.cpp
index d6730ef6a00..782c897f6fb 100644
--- a/source/blender/compositor/nodes/COM_DistanceMatteNode.cpp
+++ b/source/blender/compositor/nodes/COM_DistanceMatteNode.cpp
@@ -21,8 +21,10 @@
#include "COM_DistanceMatteNode.h"
#include "BKE_node.h"
-#include "COM_DistanceMatteOperation.h"
+#include "COM_DistanceRGBMatteOperation.h"
+#include "COM_DistanceYCCMatteOperation.h"
#include "COM_SetAlphaOperation.h"
+#include "COM_ConvertRGBToYCCOperation.h"
DistanceMatteNode::DistanceMatteNode(bNode *editorNode) : Node(editorNode)
{
@@ -36,12 +38,33 @@ void DistanceMatteNode::convertToOperations(ExecutionSystem *graph, CompositorCo
OutputSocket *outputSocketImage = this->getOutputSocket(0);
OutputSocket *outputSocketMatte = this->getOutputSocket(1);
- DistanceMatteOperation *operation = new DistanceMatteOperation();
+ NodeOperation *operation;
bNode *editorsnode = getbNode();
- operation->setSettings((NodeChroma *)editorsnode->storage);
+ NodeChroma *storage = (NodeChroma *)editorsnode->storage;
- inputSocketImage->relinkConnections(operation->getInputSocket(0), 0, graph);
- inputSocketKey->relinkConnections(operation->getInputSocket(1), 1, graph);
+ /* work in RGB color space */
+ if (storage->channel == 1) {
+ operation = new DistanceRGBMatteOperation();
+ ((DistanceRGBMatteOperation *) operation)->setSettings(storage);
+
+ inputSocketImage->relinkConnections(operation->getInputSocket(0), 0, graph);
+ inputSocketKey->relinkConnections(operation->getInputSocket(1), 1, graph);
+ }
+ /* work in YCbCr color space */
+ else {
+ operation = new DistanceYCCMatteOperation();
+ ((DistanceYCCMatteOperation *) operation)->setSettings(storage);
+
+ ConvertRGBToYCCOperation *operationYCCImage = new ConvertRGBToYCCOperation();
+ inputSocketImage->relinkConnections(operationYCCImage->getInputSocket(0), 0, graph);
+ addLink(graph, operationYCCImage->getOutputSocket(), operation->getInputSocket(0));
+ graph->addOperation(operationYCCImage);
+
+ ConvertRGBToYCCOperation *operationYCCMatte = new ConvertRGBToYCCOperation();
+ inputSocketKey->relinkConnections(operationYCCMatte->getInputSocket(0), 1, graph);
+ addLink(graph, operationYCCMatte->getOutputSocket(), operation->getInputSocket(1));
+ graph->addOperation(operationYCCMatte);
+ }
if (outputSocketMatte->isConnected()) {
outputSocketMatte->relinkConnections(operation->getOutputSocket());
@@ -54,7 +77,7 @@ void DistanceMatteNode::convertToOperations(ExecutionSystem *graph, CompositorCo
addLink(graph, operation->getOutputSocket(), operationAlpha->getInputSocket(1));
graph->addOperation(operationAlpha);
- addPreviewOperation(graph, operationAlpha->getOutputSocket());
+ addPreviewOperation(graph, context, operationAlpha->getOutputSocket());
if (outputSocketImage->isConnected()) {
outputSocketImage->relinkConnections(operationAlpha->getOutputSocket());
diff --git a/source/blender/compositor/nodes/COM_DoubleEdgeMaskNode.cpp b/source/blender/compositor/nodes/COM_DoubleEdgeMaskNode.cpp
index ab1d83385c7..40a9d1fa275 100644
--- a/source/blender/compositor/nodes/COM_DoubleEdgeMaskNode.cpp
+++ b/source/blender/compositor/nodes/COM_DoubleEdgeMaskNode.cpp
@@ -22,7 +22,6 @@
#include "COM_DoubleEdgeMaskNode.h"
#include "COM_DoubleEdgeMaskOperation.h"
-#include "DNA_scene_types.h"
#include "COM_ExecutionSystem.h"
DoubleEdgeMaskNode::DoubleEdgeMaskNode(bNode *editorNode) : Node(editorNode)
diff --git a/source/blender/compositor/nodes/COM_EllipseMaskNode.cpp b/source/blender/compositor/nodes/COM_EllipseMaskNode.cpp
index 23410c6a115..dc4421abb25 100644
--- a/source/blender/compositor/nodes/COM_EllipseMaskNode.cpp
+++ b/source/blender/compositor/nodes/COM_EllipseMaskNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_EllipseMaskNode.h"
-#include "DNA_scene_types.h"
#include "COM_EllipseMaskOperation.h"
#include "COM_ExecutionSystem.h"
diff --git a/source/blender/compositor/nodes/COM_FilterNode.cpp b/source/blender/compositor/nodes/COM_FilterNode.cpp
index 021ec6c2508..990cdb480ca 100644
--- a/source/blender/compositor/nodes/COM_FilterNode.cpp
+++ b/source/blender/compositor/nodes/COM_FilterNode.cpp
@@ -77,7 +77,7 @@ void FilterNode::convertToOperations(ExecutionSystem *graph, CompositorContext *
inputImageSocket->relinkConnections(operation->getInputSocket(0), 1, graph);
inputSocket->relinkConnections(operation->getInputSocket(1), 0, graph);
outputSocket->relinkConnections(operation->getOutputSocket());
- addPreviewOperation(graph, operation->getOutputSocket(0));
+ addPreviewOperation(graph, context, operation->getOutputSocket(0));
graph->addOperation(operation);
}
diff --git a/source/blender/compositor/nodes/COM_GammaNode.cpp b/source/blender/compositor/nodes/COM_GammaNode.cpp
index 52699c83bf9..33a5cb282a1 100644
--- a/source/blender/compositor/nodes/COM_GammaNode.cpp
+++ b/source/blender/compositor/nodes/COM_GammaNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_GammaNode.h"
-#include "DNA_scene_types.h"
#include "COM_GammaOperation.h"
#include "COM_ExecutionSystem.h"
diff --git a/source/blender/compositor/nodes/COM_GroupNode.cpp b/source/blender/compositor/nodes/COM_GroupNode.cpp
index 6ad58caf17b..e10d7dbad2e 100644
--- a/source/blender/compositor/nodes/COM_GroupNode.cpp
+++ b/source/blender/compositor/nodes/COM_GroupNode.cpp
@@ -22,6 +22,7 @@
#include "COM_GroupNode.h"
#include "COM_SocketProxyNode.h"
+#include "COM_SetColorOperation.h"
#include "COM_ExecutionSystemHelper.h"
GroupNode::GroupNode(bNode *editorNode) : Node(editorNode)
@@ -31,7 +32,9 @@ GroupNode::GroupNode(bNode *editorNode) : Node(editorNode)
void GroupNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
{
- /* pass */
+ if (this->getbNode()->id == NULL) {
+ convertToOperations_invalid(graph, context);
+ }
}
void GroupNode::ungroup(ExecutionSystem &system)
@@ -46,8 +49,10 @@ void GroupNode::ungroup(ExecutionSystem &system)
int nodes_start = system.getNodes().size();
/* missing node group datablock can happen with library linking */
- if (!subtree)
+ if (!subtree) {
+ /* this error case its handled in convertToOperations() so we don't get un-convertred sockets */
return;
+ }
for (index = 0; index < inputsockets.size(); index++) {
InputSocket *inputSocket = inputsockets[index];
diff --git a/source/blender/compositor/nodes/COM_IDMaskNode.cpp b/source/blender/compositor/nodes/COM_IDMaskNode.cpp
index 31d2ccb391e..12a508c75f5 100644
--- a/source/blender/compositor/nodes/COM_IDMaskNode.cpp
+++ b/source/blender/compositor/nodes/COM_IDMaskNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_IDMaskNode.h"
-#include "DNA_scene_types.h"
#include "COM_IDMaskOperation.h"
#include "COM_ExecutionSystem.h"
#include "COM_AntiAliasOperation.h"
diff --git a/source/blender/compositor/nodes/COM_ImageNode.cpp b/source/blender/compositor/nodes/COM_ImageNode.cpp
index addde140b9f..4ebd28d710a 100644
--- a/source/blender/compositor/nodes/COM_ImageNode.cpp
+++ b/source/blender/compositor/nodes/COM_ImageNode.cpp
@@ -72,12 +72,16 @@ void ImageNode::convertToOperations(ExecutionSystem *graph, CompositorContext *c
/* force a load, we assume iuser index will be set OK anyway */
if (image && image->type == IMA_TYPE_MULTILAYER) {
+ bool is_multilayer_ok = false;
BKE_image_get_ibuf(image, imageuser);
if (image->rr) {
RenderLayer *rl = (RenderLayer *)BLI_findlink(&image->rr->layers, imageuser->layer);
if (rl) {
OutputSocket *socket;
int index;
+
+ is_multilayer_ok = true;
+
for (index = 0; index < numberOfOutputs; index++) {
socket = this->getOutputSocket(index);
if (socket->isConnected() || index == 0) {
@@ -107,13 +111,18 @@ void ImageNode::convertToOperations(ExecutionSystem *graph, CompositorContext *c
break;
}
if (index == 0 && operation) {
- addPreviewOperation(graph, operation->getOutputSocket());
+ addPreviewOperation(graph, context, operation->getOutputSocket());
}
}
}
}
}
}
+
+ /* without this, multilayer that fail to load will crash blender [#32490] */
+ if (is_multilayer_ok == false) {
+ convertToOperations_invalid(graph, context);
+ }
}
else {
if (numberOfOutputs > 0) {
@@ -125,7 +134,7 @@ void ImageNode::convertToOperations(ExecutionSystem *graph, CompositorContext *c
operation->setImageUser(imageuser);
operation->setFramenumber(framenumber);
graph->addOperation(operation);
- addPreviewOperation(graph, operation->getOutputSocket());
+ addPreviewOperation(graph, context, operation->getOutputSocket());
}
if (numberOfOutputs > 1) {
diff --git a/source/blender/compositor/nodes/COM_InpaintNode.cpp b/source/blender/compositor/nodes/COM_InpaintNode.cpp
new file mode 100644
index 00000000000..e90a3921edc
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_InpaintNode.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor: Peter Schlaile
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "COM_InpaintNode.h"
+#include "DNA_scene_types.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_InpaintOperation.h"
+#include "BLI_math.h"
+
+InpaintNode::InpaintNode(bNode *editorNode) : Node(editorNode)
+{
+ /* pass */
+}
+
+void InpaintNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
+{
+
+ bNode *editorNode = this->getbNode();
+
+ /* if (editorNode->custom1 == CMP_NODE_INPAINT_SIMPLE) { */
+ if (true) {
+ InpaintSimpleOperation *operation = new InpaintSimpleOperation();
+ operation->setbNode(editorNode);
+ operation->setIterations(editorNode->custom2);
+ this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
+ this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+ graph->addOperation(operation);
+ }
+}
diff --git a/source/blender/compositor/nodes/COM_InpaintNode.h b/source/blender/compositor/nodes/COM_InpaintNode.h
new file mode 100644
index 00000000000..5837b979958
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_InpaintNode.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor: Peter Schlaile
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_InpaintNode_h_
+#define _COM_InpaintNode_h_
+
+#include "COM_Node.h"
+
+/**
+ * @brief InpaintNode
+ * @ingroup Node
+ */
+class InpaintNode : public Node {
+public:
+ InpaintNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+};
+
+#endif
diff --git a/source/blender/compositor/nodes/COM_InvertNode.cpp b/source/blender/compositor/nodes/COM_InvertNode.cpp
index c468bda1b67..9c4e28a2971 100644
--- a/source/blender/compositor/nodes/COM_InvertNode.cpp
+++ b/source/blender/compositor/nodes/COM_InvertNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_InvertNode.h"
-#include "DNA_scene_types.h"
#include "COM_InvertOperation.h"
#include "COM_ExecutionSystem.h"
#include "BKE_node.h"
diff --git a/source/blender/compositor/nodes/COM_KeyingNode.cpp b/source/blender/compositor/nodes/COM_KeyingNode.cpp
index 7c39765fbf1..6bc9afba32c 100644
--- a/source/blender/compositor/nodes/COM_KeyingNode.cpp
+++ b/source/blender/compositor/nodes/COM_KeyingNode.cpp
@@ -30,6 +30,8 @@
#include "COM_KeyingDespillOperation.h"
#include "COM_KeyingClipOperation.h"
+#include "COM_MathBaseOperation.h"
+
#include "COM_SeparateChannelOperation.h"
#include "COM_CombineChannelsOperation.h"
#include "COM_ConvertRGBToYCCOperation.h"
@@ -184,11 +186,13 @@ OutputSocket *KeyingNode::setupFeather(ExecutionSystem *graph, CompositorContext
return operationy->getOutputSocket();
}
-OutputSocket *KeyingNode::setupDespill(ExecutionSystem *graph, OutputSocket *despillInput, OutputSocket *inputScreen, float factor)
+OutputSocket *KeyingNode::setupDespill(ExecutionSystem *graph, OutputSocket *despillInput, OutputSocket *inputScreen,
+ float factor, float colorBalance)
{
KeyingDespillOperation *despillOperation = new KeyingDespillOperation();
despillOperation->setDespillFactor(factor);
+ despillOperation->setColorBalance(colorBalance);
addLink(graph, despillInput, despillOperation->getInputSocket(0));
addLink(graph, inputScreen, despillOperation->getInputSocket(1));
@@ -237,8 +241,6 @@ void KeyingNode::convertToOperations(ExecutionSystem *graph, CompositorContext *
keyingOperation->setScreenBalance(keying_data->screen_balance);
inputScreen->relinkConnections(keyingOperation->getInputSocket(1), 1, graph);
- inputGarbageMatte->relinkConnections(keyingOperation->getInputSocket(2), 2, graph);
- inputCoreMatte->relinkConnections(keyingOperation->getInputSocket(3), 3, graph);
if (keying_data->blur_pre) {
/* chroma preblur operation for input of keying operation */
@@ -254,18 +256,54 @@ void KeyingNode::convertToOperations(ExecutionSystem *graph, CompositorContext *
postprocessedMatte = keyingOperation->getOutputSocket();
+ /* black / white clipping */
if (keying_data->clip_black > 0.0f || keying_data->clip_white < 1.0f) {
postprocessedMatte = setupClip(graph, postprocessedMatte,
keying_data->edge_kernel_radius, keying_data->edge_kernel_tolerance,
keying_data->clip_black, keying_data->clip_white, false);
}
+ /* output edge matte */
if (outputEdges->isConnected()) {
edgesMatte = setupClip(graph, postprocessedMatte,
keying_data->edge_kernel_radius, keying_data->edge_kernel_tolerance,
keying_data->clip_black, keying_data->clip_white, true);
}
+ /* apply garbage matte */
+ if (inputGarbageMatte->isConnected()) {
+ SetValueOperation *valueOperation = new SetValueOperation();
+ MathSubtractOperation *subtractOperation = new MathSubtractOperation();
+ MathMinimumOperation *minOperation = new MathMinimumOperation();
+
+ valueOperation->setValue(1.0f);
+
+ addLink(graph, valueOperation->getOutputSocket(), subtractOperation->getInputSocket(0));
+ inputGarbageMatte->relinkConnections(subtractOperation->getInputSocket(1), 0, graph);
+
+ addLink(graph, subtractOperation->getOutputSocket(), minOperation->getInputSocket(0));
+ addLink(graph, postprocessedMatte, minOperation->getInputSocket(1));
+
+ postprocessedMatte = minOperation->getOutputSocket();
+
+ graph->addOperation(valueOperation);
+ graph->addOperation(subtractOperation);
+ graph->addOperation(minOperation);
+ }
+
+ /* apply core matte */
+ if (inputCoreMatte->isConnected()) {
+ MathMaximumOperation *maxOperation = new MathMaximumOperation();
+
+ inputCoreMatte->relinkConnections(maxOperation->getInputSocket(0), 0, graph);
+
+ addLink(graph, postprocessedMatte, maxOperation->getInputSocket(1));
+
+ postprocessedMatte = maxOperation->getOutputSocket();
+
+ graph->addOperation(maxOperation);
+ }
+
/* apply blur on matte if needed */
if (keying_data->blur_post)
postprocessedMatte = setupPostBlur(graph, postprocessedMatte, keying_data->blur_post);
@@ -292,7 +330,8 @@ void KeyingNode::convertToOperations(ExecutionSystem *graph, CompositorContext *
if (keying_data->despill_factor > 0.0f) {
postprocessedImage = setupDespill(graph, postprocessedImage,
keyingOperation->getInputSocket(1)->getConnection()->getFromSocket(),
- keying_data->despill_factor);
+ keying_data->despill_factor,
+ keying_data->despill_balance);
}
/* connect result to output sockets */
diff --git a/source/blender/compositor/nodes/COM_KeyingNode.h b/source/blender/compositor/nodes/COM_KeyingNode.h
index 294a27bb52c..6ab6a60a44d 100644
--- a/source/blender/compositor/nodes/COM_KeyingNode.h
+++ b/source/blender/compositor/nodes/COM_KeyingNode.h
@@ -36,7 +36,8 @@ protected:
OutputSocket *setupDilateErode(ExecutionSystem *graph, OutputSocket *dilateErodeInput, int distance);
OutputSocket *setupFeather(ExecutionSystem *graph, CompositorContext *context, OutputSocket *featherInput,
int falloff, int distance);
- OutputSocket *setupDespill(ExecutionSystem *graph, OutputSocket *despillInput, OutputSocket *inputSrceen, float factor);
+ OutputSocket *setupDespill(ExecutionSystem *graph, OutputSocket *despillInput, OutputSocket *inputSrceen,
+ float factor, float colorBalance);
OutputSocket *setupClip(ExecutionSystem *graph, OutputSocket *clipInput, int kernelRadius, float kernelTolerance,
float clipBlack, float clipWhite, bool edgeMatte);
public:
diff --git a/source/blender/compositor/nodes/COM_LensDistortionNode.cpp b/source/blender/compositor/nodes/COM_LensDistortionNode.cpp
index 4870e252b74..94c2fc885fb 100644
--- a/source/blender/compositor/nodes/COM_LensDistortionNode.cpp
+++ b/source/blender/compositor/nodes/COM_LensDistortionNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_LensDistortionNode.h"
-#include "DNA_scene_types.h"
#include "COM_ExecutionSystem.h"
#include "COM_ProjectorLensDistortionOperation.h"
#include "COM_ScreenLensDistortionOperation.h"
@@ -50,8 +49,7 @@ void LensDistortionNode::convertToOperations(ExecutionSystem *graph, CompositorC
ScreenLensDistortionOperation *operation = new ScreenLensDistortionOperation();
operation->setbNode(editorNode);
operation->setData(data);
- if (!(this->getInputSocket(1)->isConnected() || this->getInputSocket(2)->isConnected()))
- {
+ if (!(this->getInputSocket(1)->isConnected() || this->getInputSocket(2)->isConnected())) {
// no nodes connected to the distortion and dispersion. We can precalculate some values
float distortion = ((const bNodeSocketValueFloat *)this->getInputSocket(1)->getbNodeSocket()->default_value)->value;
float dispersion = ((const bNodeSocketValueFloat *)this->getInputSocket(2)->getbNodeSocket()->default_value)->value;
diff --git a/source/blender/compositor/nodes/COM_LuminanceMatteNode.cpp b/source/blender/compositor/nodes/COM_LuminanceMatteNode.cpp
index be949e2cacb..4656e00b006 100644
--- a/source/blender/compositor/nodes/COM_LuminanceMatteNode.cpp
+++ b/source/blender/compositor/nodes/COM_LuminanceMatteNode.cpp
@@ -55,7 +55,7 @@ void LuminanceMatteNode::convertToOperations(ExecutionSystem *graph, CompositorC
addLink(graph, rgbToYUV->getInputSocket(0)->getConnection()->getFromSocket(), operation->getInputSocket(0));
addLink(graph, operationSet->getOutputSocket(), operation->getInputSocket(1));
graph->addOperation(operation);
- addPreviewOperation(graph, operation->getOutputSocket());
+ addPreviewOperation(graph, context, operation->getOutputSocket());
if (outputSocketImage->isConnected()) {
outputSocketImage->relinkConnections(operation->getOutputSocket());
diff --git a/source/blender/compositor/nodes/COM_MaskNode.cpp b/source/blender/compositor/nodes/COM_MaskNode.cpp
index b6300300f6f..8d549d09362 100644
--- a/source/blender/compositor/nodes/COM_MaskNode.cpp
+++ b/source/blender/compositor/nodes/COM_MaskNode.cpp
@@ -36,18 +36,30 @@ MaskNode::MaskNode(bNode *editorNode) : Node(editorNode)
void MaskNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
{
- const RenderData *data = context->getRenderData();
+ const RenderData *rd = context->getRenderData();
OutputSocket *outputMask = this->getOutputSocket(0);
bNode *editorNode = this->getbNode();
+ NodeMask *data = (NodeMask *)editorNode->storage;
Mask *mask = (Mask *)editorNode->id;
// always connect the output image
MaskOperation *operation = new MaskOperation();
operation->setbNode(editorNode);
- operation->setMaskWidth(data->xsch * data->size / 100.0f);
- operation->setMaskHeight(data->ysch * data->size / 100.0f);
+
+ if (editorNode->custom1 & CMP_NODEFLAG_MASK_FIXED) {
+ operation->setMaskWidth(data->size_x);
+ operation->setMaskHeight(data->size_y);
+ }
+ else if (editorNode->custom1 & CMP_NODEFLAG_MASK_FIXED_SCENE) {
+ operation->setMaskWidth(data->size_x * (rd->size / 100.0f));
+ operation->setMaskHeight(data->size_y * (rd->size / 100.0f));
+ }
+ else {
+ operation->setMaskWidth(rd->xsch * rd->size / 100.0f);
+ operation->setMaskHeight(rd->ysch * rd->size / 100.0f);
+ }
if (outputMask->isConnected()) {
outputMask->relinkConnections(operation->getOutputSocket());
@@ -58,5 +70,13 @@ void MaskNode::convertToOperations(ExecutionSystem *graph, CompositorContext *co
operation->setSmooth((bool)(editorNode->custom1 & CMP_NODEFLAG_MASK_AA) != 0);
operation->setFeather((bool)(editorNode->custom1 & CMP_NODEFLAG_MASK_NO_FEATHER) == 0);
+ if ((editorNode->custom1 & CMP_NODEFLAG_MASK_MOTION_BLUR) &&
+ (editorNode->custom2 > 1) &&
+ (editorNode->custom3 > FLT_EPSILON))
+ {
+ operation->setMotionBlurSamples(editorNode->custom2);
+ operation->setMotionBlurShutter(editorNode->custom3);
+ }
+
graph->addOperation(operation);
}
diff --git a/source/blender/compositor/nodes/COM_MathNode.cpp b/source/blender/compositor/nodes/COM_MathNode.cpp
index 300c9967cc4..307590b977b 100644
--- a/source/blender/compositor/nodes/COM_MathNode.cpp
+++ b/source/blender/compositor/nodes/COM_MathNode.cpp
@@ -83,10 +83,14 @@ void MathNode::convertToOperations(ExecutionSystem *graph, CompositorContext *co
}
if (operation != NULL) {
+ bool useClamp = this->getbNode()->custom2;
+
this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
this->getInputSocket(1)->relinkConnections(operation->getInputSocket(1), 1, graph);
this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket());
-
+
+ operation->setUseClamp(useClamp);
+
graph->addOperation(operation);
}
}
diff --git a/source/blender/compositor/nodes/COM_MixNode.cpp b/source/blender/compositor/nodes/COM_MixNode.cpp
index eb62ebd2635..ab4e464327d 100644
--- a/source/blender/compositor/nodes/COM_MixNode.cpp
+++ b/source/blender/compositor/nodes/COM_MixNode.cpp
@@ -58,6 +58,8 @@ void MixNode::convertToOperations(ExecutionSystem *graph, CompositorContext *con
InputSocket *color2Socket = this->getInputSocket(2);
OutputSocket *outputSocket = this->getOutputSocket(0);
bNode *editorNode = this->getbNode();
+ bool useAlphaPremultiply = this->getbNode()->custom2 & 1;
+ bool useClamp = this->getbNode()->custom2 & 2;
MixBaseOperation *convertProg;
@@ -119,13 +121,14 @@ void MixNode::convertToOperations(ExecutionSystem *graph, CompositorContext *con
convertProg = new MixBlendOperation();
break;
}
- convertProg->setUseValueAlphaMultiply(this->getbNode()->custom2);
+ convertProg->setUseValueAlphaMultiply(useAlphaPremultiply);
+ convertProg->setUseClamp(useClamp);
valueSocket->relinkConnections(convertProg->getInputSocket(0), 0, graph);
color1Socket->relinkConnections(convertProg->getInputSocket(1), 1, graph);
color2Socket->relinkConnections(convertProg->getInputSocket(2), 2, graph);
outputSocket->relinkConnections(convertProg->getOutputSocket(0));
- addPreviewOperation(graph, convertProg->getOutputSocket(0));
+ addPreviewOperation(graph, context, convertProg->getOutputSocket(0));
convertProg->getInputSocket(2)->setResizeMode(color2Socket->getResizeMode());
diff --git a/source/blender/compositor/nodes/COM_MovieClipNode.cpp b/source/blender/compositor/nodes/COM_MovieClipNode.cpp
index 89bd0e8549e..5d5e68fba37 100644
--- a/source/blender/compositor/nodes/COM_MovieClipNode.cpp
+++ b/source/blender/compositor/nodes/COM_MovieClipNode.cpp
@@ -49,38 +49,28 @@ void MovieClipNode::convertToOperations(ExecutionSystem *graph, CompositorContex
bNode *editorNode = this->getbNode();
MovieClip *movieClip = (MovieClip *)editorNode->id;
MovieClipUser *movieClipUser = (MovieClipUser *)editorNode->storage;
-
+ bool cacheFrame = !context->isRendering();
+
ImBuf *ibuf = NULL;
if (movieClip) {
- ibuf = BKE_movieclip_get_ibuf(movieClip, movieClipUser);
+ if (cacheFrame)
+ ibuf = BKE_movieclip_get_ibuf(movieClip, movieClipUser);
+ else
+ ibuf = BKE_movieclip_get_ibuf_flag(movieClip, movieClipUser, movieClip->flag, MOVIECLIP_CACHE_SKIP);
}
// always connect the output image
MovieClipOperation *operation = new MovieClipOperation();
- if (ibuf && context->isColorManaged() && ibuf->profile == IB_PROFILE_NONE) {
- ConvertColorProfileOperation *converter = new ConvertColorProfileOperation();
- converter->setFromColorProfile(IB_PROFILE_LINEAR_RGB);
- converter->setToColorProfile(IB_PROFILE_SRGB);
- addLink(graph, operation->getOutputSocket(), converter->getInputSocket(0));
- addPreviewOperation(graph, converter->getOutputSocket());
- if (outputMovieClip->isConnected()) {
- outputMovieClip->relinkConnections(converter->getOutputSocket());
- }
- graph->addOperation(converter);
- if (ibuf) {
- converter->setPredivided(ibuf->flags & IB_cm_predivide);
- }
- }
- else {
- addPreviewOperation(graph, operation->getOutputSocket());
- if (outputMovieClip->isConnected()) {
- outputMovieClip->relinkConnections(operation->getOutputSocket());
- }
+ addPreviewOperation(graph, context, operation->getOutputSocket());
+ if (outputMovieClip->isConnected()) {
+ outputMovieClip->relinkConnections(operation->getOutputSocket());
}
+
operation->setMovieClip(movieClip);
operation->setMovieClipUser(movieClipUser);
operation->setFramenumber(context->getFramenumber());
+ operation->setCacheFrame(cacheFrame);
graph->addOperation(operation);
MovieTrackingStabilization *stab = &movieClip->tracking.stabilization;
diff --git a/source/blender/compositor/nodes/COM_MuteNode.cpp b/source/blender/compositor/nodes/COM_MuteNode.cpp
index f52b7216cca..1821844c6f5 100644
--- a/source/blender/compositor/nodes/COM_MuteNode.cpp
+++ b/source/blender/compositor/nodes/COM_MuteNode.cpp
@@ -20,14 +20,16 @@
* Monique Dewanchand
*/
-#include <stdio.h>
-
#include "COM_MuteNode.h"
#include "COM_SocketConnection.h"
#include "COM_SetValueOperation.h"
#include "COM_SetVectorOperation.h"
#include "COM_SetColorOperation.h"
+extern "C" {
+ #include "BLI_listbase.h"
+}
+
MuteNode::MuteNode(bNode *editorNode) : Node(editorNode)
{
/* pass */
@@ -45,7 +47,12 @@ void MuteNode::reconnect(ExecutionSystem *graph, OutputSocket *output)
}
}
}
-
+
+ createDefaultOutput(graph, output);
+}
+
+void MuteNode::createDefaultOutput(ExecutionSystem *graph, OutputSocket *output)
+{
NodeOperation *operation = NULL;
switch (output->getDataType()) {
case COM_DT_VALUE:
@@ -84,14 +91,94 @@ void MuteNode::reconnect(ExecutionSystem *graph, OutputSocket *output)
output->clearConnections();
}
+template<class SocketType> void MuteNode::fillSocketMap(vector<SocketType *> &sockets, SocketMap &socketMap)
+{
+ for (typename vector<SocketType *>::iterator it = sockets.begin(); it != sockets.end(); it++) {
+ Socket *socket = (Socket *) *it;
+
+ socketMap.insert(std::pair<bNodeSocket *, Socket *>(socket->getbNodeSocket(), socket));
+ }
+}
+
void MuteNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
{
+ bNode *editorNode = this->getbNode();
vector<OutputSocket *> &outputsockets = this->getOutputSockets();
- for (unsigned int index = 0; index < outputsockets.size(); index++) {
- OutputSocket *output = outputsockets[index];
- if (output->isConnected()) {
- reconnect(graph, output);
+ /* mute node is also used for unknown nodes and couple of nodes in fast mode
+ * can't use generic routines in that case
+ */
+ if ((editorNode->flag & NODE_MUTED) && editorNode->typeinfo->internal_connect) {
+ vector<InputSocket *> &inputsockets = this->getInputSockets();
+ vector<OutputSocket *> relinkedsockets;
+ bNodeTree *editorTree;
+ SocketMap socketMap;
+ ListBase intlinks;
+ bNodeLink *link;
+
+ if (this->getbNodeGroup()) {
+ editorTree = (bNodeTree *) getbNodeGroup()->id;
+ }
+ else {
+ editorTree = (bNodeTree *) context->getbNodeTree();
+ }
+
+ intlinks = editorNode->typeinfo->internal_connect(editorTree, editorNode);
+
+ this->fillSocketMap<OutputSocket>(outputsockets, socketMap);
+ this->fillSocketMap<InputSocket>(inputsockets, socketMap);
+
+ for (link = (bNodeLink *) intlinks.first; link; link = link->next) {
+ if (link->fromnode == editorNode) {
+ InputSocket *fromSocket = (InputSocket *) socketMap.find(link->fromsock)->second;
+ OutputSocket *toSocket = (OutputSocket *) socketMap.find(link->tosock)->second;
+
+ if (toSocket->isConnected()) {
+ if (fromSocket->isConnected()) {
+ toSocket->relinkConnections(fromSocket->getConnection()->getFromSocket(), false);
+ }
+ else {
+ createDefaultOutput(graph, toSocket);
+ }
+
+ relinkedsockets.push_back(toSocket);
+ }
+ }
+ }
+
+ /* in some cases node could be marked as muted, but it wouldn't have internal connections
+ * this happens in such cases as muted render layer node
+ *
+ * to deal with such cases create default operation for not-relinked output sockets
+ */
+
+ for (unsigned int index = 0; index < outputsockets.size(); index++) {
+ OutputSocket *output = outputsockets[index];
+
+ if (output->isConnected()) {
+ bool relinked = false;
+ vector<OutputSocket *>::iterator it;
+
+ for (it = relinkedsockets.begin(); it != relinkedsockets.end(); it++) {
+ if (*it == output) {
+ relinked = true;
+ break;
+ }
+ }
+
+ if (!relinked)
+ createDefaultOutput(graph, output);
+ }
+ }
+
+ BLI_freelistN(&intlinks);
+ }
+ else {
+ for (unsigned int index = 0; index < outputsockets.size(); index++) {
+ OutputSocket *output = outputsockets[index];
+ if (output->isConnected()) {
+ reconnect(graph, output);
+ }
}
}
}
diff --git a/source/blender/compositor/nodes/COM_MuteNode.h b/source/blender/compositor/nodes/COM_MuteNode.h
index aab37e5f888..2e5250e625e 100644
--- a/source/blender/compositor/nodes/COM_MuteNode.h
+++ b/source/blender/compositor/nodes/COM_MuteNode.h
@@ -23,8 +23,14 @@
#ifndef _COM_MuteNode_h_
#define _COM_MuteNode_h_
+#include <map>
+
#include "COM_Node.h"
+extern "C" {
+ #include "BKE_node.h"
+}
+
/**
* @brief MuteNode
* @ingroup Node
@@ -34,7 +40,12 @@ public:
MuteNode(bNode *editorNode);
void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
private:
+ typedef std::map<bNodeSocket *, Socket *> SocketMap;
+
void reconnect(ExecutionSystem *graph, OutputSocket *output);
+ void createDefaultOutput(ExecutionSystem *graph, OutputSocket *output);
+
+ template<class SocketType> void fillSocketMap(vector<SocketType *> &sockets, SocketMap &socketMap);
};
#endif
diff --git a/source/blender/compositor/nodes/COM_OutputFileNode.cpp b/source/blender/compositor/nodes/COM_OutputFileNode.cpp
index e85f521def0..921b9e63a73 100644
--- a/source/blender/compositor/nodes/COM_OutputFileNode.cpp
+++ b/source/blender/compositor/nodes/COM_OutputFileNode.cpp
@@ -24,8 +24,8 @@
#include "COM_OutputFileNode.h"
#include "COM_OutputFileOperation.h"
#include "COM_ExecutionSystem.h"
+
#include "BLI_path_util.h"
-#include "BKE_utildefines.h"
OutputFileNode::OutputFileNode(bNode *editorNode) : Node(editorNode)
{
@@ -62,7 +62,7 @@ void OutputFileNode::convertToOperations(ExecutionSystem *graph, CompositorConte
input->relinkConnections(outputOperation->getInputSocket(i));
}
}
- if (hasConnections) addPreviewOperation(graph, outputOperation->getInputSocket(0));
+ if (hasConnections) addPreviewOperation(graph, context, outputOperation->getInputSocket(0));
graph->addOperation(outputOperation);
}
@@ -80,11 +80,12 @@ void OutputFileNode::convertToOperations(ExecutionSystem *graph, CompositorConte
BLI_join_dirfile(path, FILE_MAX, storage->base_path, sockdata->path);
OutputSingleLayerOperation *outputOperation = new OutputSingleLayerOperation(
- context->getRenderData(), context->getbNodeTree(), input->getDataType(), format, path);
+ context->getRenderData(), context->getbNodeTree(), input->getDataType(), format, path,
+ context->getViewSettings(), context->getDisplaySettings());
input->relinkConnections(outputOperation->getInputSocket(0));
graph->addOperation(outputOperation);
if (!previewAdded) {
- addPreviewOperation(graph, outputOperation->getInputSocket(0));
+ addPreviewOperation(graph, context, outputOperation->getInputSocket(0));
previewAdded = true;
}
}
diff --git a/source/blender/compositor/nodes/COM_RenderLayersNode.cpp b/source/blender/compositor/nodes/COM_RenderLayersNode.cpp
index dfb46af841c..b57e99754d6 100644
--- a/source/blender/compositor/nodes/COM_RenderLayersNode.cpp
+++ b/source/blender/compositor/nodes/COM_RenderLayersNode.cpp
@@ -52,7 +52,7 @@ RenderLayersNode::RenderLayersNode(bNode *editorNode) : Node(editorNode)
/* pass */
}
-void RenderLayersNode::testSocketConnection(ExecutionSystem *system, int outputSocketNumber, RenderLayersBaseProg *operation)
+void RenderLayersNode::testSocketConnection(ExecutionSystem *system, CompositorContext *context, int outputSocketNumber, RenderLayersBaseProg *operation)
{
OutputSocket *outputSocket = this->getOutputSocket(outputSocketNumber);
Scene *scene = (Scene *)this->getbNode()->id;
@@ -64,7 +64,7 @@ void RenderLayersNode::testSocketConnection(ExecutionSystem *system, int outputS
outputSocket->relinkConnections(operation->getOutputSocket());
system->addOperation(operation);
if (outputSocketNumber == 0) { // only do for image socket if connected
- addPreviewOperation(system, operation->getOutputSocket());
+ addPreviewOperation(system, context, operation->getOutputSocket());
}
}
else {
@@ -72,7 +72,7 @@ void RenderLayersNode::testSocketConnection(ExecutionSystem *system, int outputS
system->addOperation(operation);
operation->setScene(scene);
operation->setLayerId(layerId);
- addPreviewOperation(system, operation->getOutputSocket());
+ addPreviewOperation(system, context, operation->getOutputSocket());
}
else {
delete operation;
@@ -82,34 +82,34 @@ void RenderLayersNode::testSocketConnection(ExecutionSystem *system, int outputS
void RenderLayersNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
{
- testSocketConnection(graph, 0, new RenderLayersColorProg());
- testSocketConnection(graph, 1, new RenderLayersAlphaProg());
- testSocketConnection(graph, 2, new RenderLayersDepthProg());
- testSocketConnection(graph, 3, new RenderLayersNormalOperation());
- testSocketConnection(graph, 4, new RenderLayersUVOperation());
- testSocketConnection(graph, 5, new RenderLayersSpeedOperation());
- testSocketConnection(graph, 6, new RenderLayersColorOperation());
- testSocketConnection(graph, 7, new RenderLayersDiffuseOperation());
- testSocketConnection(graph, 8, new RenderLayersSpecularOperation());
- testSocketConnection(graph, 9, new RenderLayersShadowOperation());
- testSocketConnection(graph, 10, new RenderLayersAOOperation());
- testSocketConnection(graph, 11, new RenderLayersReflectionOperation());
- testSocketConnection(graph, 12, new RenderLayersRefractionOperation());
- testSocketConnection(graph, 13, new RenderLayersIndirectOperation());
- testSocketConnection(graph, 14, new RenderLayersObjectIndexOperation());
- testSocketConnection(graph, 15, new RenderLayersMaterialIndexOperation());
- testSocketConnection(graph, 16, new RenderLayersMistOperation());
- testSocketConnection(graph, 17, new RenderLayersEmitOperation());
- testSocketConnection(graph, 18, new RenderLayersEnvironmentOperation());
+ testSocketConnection(graph, context, 0, new RenderLayersColorProg());
+ testSocketConnection(graph, context, 1, new RenderLayersAlphaProg());
+ testSocketConnection(graph, context, 2, new RenderLayersDepthProg());
+ testSocketConnection(graph, context, 3, new RenderLayersNormalOperation());
+ testSocketConnection(graph, context, 4, new RenderLayersUVOperation());
+ testSocketConnection(graph, context, 5, new RenderLayersSpeedOperation());
+ testSocketConnection(graph, context, 6, new RenderLayersColorOperation());
+ testSocketConnection(graph, context, 7, new RenderLayersDiffuseOperation());
+ testSocketConnection(graph, context, 8, new RenderLayersSpecularOperation());
+ testSocketConnection(graph, context, 9, new RenderLayersShadowOperation());
+ testSocketConnection(graph, context, 10, new RenderLayersAOOperation());
+ testSocketConnection(graph, context, 11, new RenderLayersReflectionOperation());
+ testSocketConnection(graph, context, 12, new RenderLayersRefractionOperation());
+ testSocketConnection(graph, context, 13, new RenderLayersIndirectOperation());
+ testSocketConnection(graph, context, 14, new RenderLayersObjectIndexOperation());
+ testSocketConnection(graph, context, 15, new RenderLayersMaterialIndexOperation());
+ testSocketConnection(graph, context, 16, new RenderLayersMistOperation());
+ testSocketConnection(graph, context, 17, new RenderLayersEmitOperation());
+ testSocketConnection(graph, context, 18, new RenderLayersEnvironmentOperation());
// cycles passes
- testSocketConnection(graph, 19, new RenderLayersCyclesOperation(SCE_PASS_DIFFUSE_DIRECT));
- testSocketConnection(graph, 20, new RenderLayersCyclesOperation(SCE_PASS_DIFFUSE_INDIRECT));
- testSocketConnection(graph, 21, new RenderLayersCyclesOperation(SCE_PASS_DIFFUSE_COLOR));
- testSocketConnection(graph, 22, new RenderLayersCyclesOperation(SCE_PASS_GLOSSY_DIRECT));
- testSocketConnection(graph, 23, new RenderLayersCyclesOperation(SCE_PASS_GLOSSY_INDIRECT));
- testSocketConnection(graph, 24, new RenderLayersCyclesOperation(SCE_PASS_GLOSSY_COLOR));
- testSocketConnection(graph, 25, new RenderLayersCyclesOperation(SCE_PASS_TRANSM_DIRECT));
- testSocketConnection(graph, 26, new RenderLayersCyclesOperation(SCE_PASS_TRANSM_INDIRECT));
- testSocketConnection(graph, 27, new RenderLayersCyclesOperation(SCE_PASS_TRANSM_COLOR));
+ testSocketConnection(graph, context, 19, new RenderLayersCyclesOperation(SCE_PASS_DIFFUSE_DIRECT));
+ testSocketConnection(graph, context, 20, new RenderLayersCyclesOperation(SCE_PASS_DIFFUSE_INDIRECT));
+ testSocketConnection(graph, context, 21, new RenderLayersCyclesOperation(SCE_PASS_DIFFUSE_COLOR));
+ testSocketConnection(graph, context, 22, new RenderLayersCyclesOperation(SCE_PASS_GLOSSY_DIRECT));
+ testSocketConnection(graph, context, 23, new RenderLayersCyclesOperation(SCE_PASS_GLOSSY_INDIRECT));
+ testSocketConnection(graph, context, 24, new RenderLayersCyclesOperation(SCE_PASS_GLOSSY_COLOR));
+ testSocketConnection(graph, context, 25, new RenderLayersCyclesOperation(SCE_PASS_TRANSM_DIRECT));
+ testSocketConnection(graph, context, 26, new RenderLayersCyclesOperation(SCE_PASS_TRANSM_INDIRECT));
+ testSocketConnection(graph, context, 27, new RenderLayersCyclesOperation(SCE_PASS_TRANSM_COLOR));
}
diff --git a/source/blender/compositor/nodes/COM_RenderLayersNode.h b/source/blender/compositor/nodes/COM_RenderLayersNode.h
index 32672c8ba2d..9bd74624b0c 100644
--- a/source/blender/compositor/nodes/COM_RenderLayersNode.h
+++ b/source/blender/compositor/nodes/COM_RenderLayersNode.h
@@ -33,5 +33,5 @@ public:
RenderLayersNode(bNode *editorNode);
void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
private:
- void testSocketConnection(ExecutionSystem *graph, int outputSocketNumber, RenderLayersBaseProg *operation);
+ void testSocketConnection(ExecutionSystem *graph, CompositorContext *context, int outputSocketNumber, RenderLayersBaseProg *operation);
};
diff --git a/source/blender/compositor/nodes/COM_RotateNode.cpp b/source/blender/compositor/nodes/COM_RotateNode.cpp
index bb058d18b80..d7712323a27 100644
--- a/source/blender/compositor/nodes/COM_RotateNode.cpp
+++ b/source/blender/compositor/nodes/COM_RotateNode.cpp
@@ -39,19 +39,7 @@ void RotateNode::convertToOperations(ExecutionSystem *system, CompositorContext
RotateOperation *operation = new RotateOperation();
SetSamplerOperation *sampler = new SetSamplerOperation();
- switch (this->getbNode()->custom1) {
- case 0:
- sampler->setSampler(COM_PS_NEAREST);
- break;
- case 1:
- sampler->setSampler(COM_PS_BILINEAR);
- break;
- case 2:
- sampler->setSampler(COM_PS_BICUBIC);
- break;
-
- }
-
+ sampler->setSampler((PixelSampler)this->getbNode()->custom1);
addLink(system, sampler->getOutputSocket(), operation->getInputSocket(0));
inputSocket->relinkConnections(sampler->getInputSocket(0), 0, system);
diff --git a/source/blender/compositor/nodes/COM_ScaleNode.cpp b/source/blender/compositor/nodes/COM_ScaleNode.cpp
index 95b048b6cad..c51782b77af 100644
--- a/source/blender/compositor/nodes/COM_ScaleNode.cpp
+++ b/source/blender/compositor/nodes/COM_ScaleNode.cpp
@@ -64,7 +64,7 @@ void ScaleNode::convertToOperations(ExecutionSystem *graph, CompositorContext *c
break;
case CMP_SCALE_RENDERPERCENT: {
- const RenderData *data = context->getRenderData();
+ const RenderData *rd = context->getRenderData();
ScaleFixedSizeOperation *operation = new ScaleFixedSizeOperation();
/* framing options */
@@ -72,8 +72,8 @@ void ScaleNode::convertToOperations(ExecutionSystem *graph, CompositorContext *c
operation->setIsCrop((bnode->custom2 & CMP_SCALE_RENDERSIZE_FRAME_CROP) != 0);
operation->setOffset(bnode->custom3, bnode->custom4);
- operation->setNewWidth(data->xsch * data->size / 100.0f);
- operation->setNewHeight(data->ysch * data->size / 100.0f);
+ operation->setNewWidth(rd->xsch * rd->size / 100.0f);
+ operation->setNewHeight(rd->ysch * rd->size / 100.0f);
inputSocket->relinkConnections(operation->getInputSocket(0), 0, graph);
outputSocket->relinkConnections(operation->getOutputSocket(0));
operation->getInputSocket(0)->getConnection()->setIgnoreResizeCheck(true);
diff --git a/source/blender/compositor/nodes/COM_SplitViewerNode.cpp b/source/blender/compositor/nodes/COM_SplitViewerNode.cpp
index 388466cee3c..37b888becca 100644
--- a/source/blender/compositor/nodes/COM_SplitViewerNode.cpp
+++ b/source/blender/compositor/nodes/COM_SplitViewerNode.cpp
@@ -39,13 +39,14 @@ void SplitViewerNode::convertToOperations(ExecutionSystem *graph, CompositorCont
ImageUser *imageUser = (ImageUser *) this->getbNode()->storage;
if (image1Socket->isConnected() && image2Socket->isConnected()) {
SplitViewerOperation *splitViewerOperation = new SplitViewerOperation();
- splitViewerOperation->setColorManagement(context->getRenderData()->color_mgt_flag & R_COLOR_MANAGEMENT);
- splitViewerOperation->setColorPredivide(context->getRenderData()->color_mgt_flag & R_COLOR_MANAGEMENT_PREDIVIDE);
splitViewerOperation->setImage(image);
splitViewerOperation->setImageUser(imageUser);
splitViewerOperation->setActive((this->getbNode()->flag & NODE_DO_OUTPUT) && this->isInActiveGroup());
splitViewerOperation->setSplitPercentage(this->getbNode()->custom1);
+ splitViewerOperation->setViewSettings(context->getViewSettings());
+ splitViewerOperation->setDisplaySettings(context->getDisplaySettings());
+
/* defaults - the viewer node has these options but not exposed for split view
* we could use the split to define an area of interest on one axis at least */
splitViewerOperation->setChunkOrder(COM_ORDER_OF_CHUNKS_DEFAULT);
@@ -55,7 +56,7 @@ void SplitViewerNode::convertToOperations(ExecutionSystem *graph, CompositorCont
splitViewerOperation->setXSplit(!this->getbNode()->custom2);
image1Socket->relinkConnections(splitViewerOperation->getInputSocket(0), 0, graph);
image2Socket->relinkConnections(splitViewerOperation->getInputSocket(1), 1, graph);
- addPreviewOperation(graph, splitViewerOperation->getInputSocket(0));
+ addPreviewOperation(graph, context, splitViewerOperation->getInputSocket(0));
graph->addOperation(splitViewerOperation);
}
}
diff --git a/source/blender/compositor/nodes/COM_Stabilize2dNode.cpp b/source/blender/compositor/nodes/COM_Stabilize2dNode.cpp
index 85b8695263f..b28ee3eade1 100644
--- a/source/blender/compositor/nodes/COM_Stabilize2dNode.cpp
+++ b/source/blender/compositor/nodes/COM_Stabilize2dNode.cpp
@@ -26,6 +26,7 @@
#include "COM_RotateOperation.h"
#include "COM_ScaleOperation.h"
#include "COM_MovieClipAttributeOperation.h"
+#include "COM_SetSamplerOperation.h"
extern "C" {
#include "DNA_movieclip_types.h"
@@ -49,6 +50,7 @@ void Stabilize2dNode::convertToOperations(ExecutionSystem *graph, CompositorCont
MovieClipAttributeOperation *angleAttribute = new MovieClipAttributeOperation();
MovieClipAttributeOperation *xAttribute = new MovieClipAttributeOperation();
MovieClipAttributeOperation *yAttribute = new MovieClipAttributeOperation();
+ SetSamplerOperation *psoperation = new SetSamplerOperation();
scaleAttribute->setAttribute(MCA_SCALE);
scaleAttribute->setFramenumber(context->getFramenumber());
@@ -77,8 +79,10 @@ void Stabilize2dNode::convertToOperations(ExecutionSystem *graph, CompositorCont
addLink(graph, rotateOperation->getOutputSocket(), translateOperation->getInputSocket(0));
addLink(graph, xAttribute->getOutputSocket(), translateOperation->getInputSocket(1));
addLink(graph, yAttribute->getOutputSocket(), translateOperation->getInputSocket(2));
-
- this->getOutputSocket()->relinkConnections(translateOperation->getOutputSocket());
+
+ psoperation->setSampler((PixelSampler)this->getbNode()->custom1);
+ addLink(graph, translateOperation->getOutputSocket(), psoperation->getInputSocket(0));
+ this->getOutputSocket()->relinkConnections(psoperation->getOutputSocket());
graph->addOperation(scaleAttribute);
graph->addOperation(angleAttribute);
@@ -87,4 +91,5 @@ void Stabilize2dNode::convertToOperations(ExecutionSystem *graph, CompositorCont
graph->addOperation(scaleOperation);
graph->addOperation(translateOperation);
graph->addOperation(rotateOperation);
+ graph->addOperation(psoperation);
}
diff --git a/source/blender/compositor/nodes/COM_TextureNode.cpp b/source/blender/compositor/nodes/COM_TextureNode.cpp
index b035e0a392c..5b386a504e4 100644
--- a/source/blender/compositor/nodes/COM_TextureNode.cpp
+++ b/source/blender/compositor/nodes/COM_TextureNode.cpp
@@ -40,7 +40,7 @@ void TextureNode::convertToOperations(ExecutionSystem *system, CompositorContext
operation->setTexture(texture);
operation->setRenderData(context->getRenderData());
system->addOperation(operation);
- addPreviewOperation(system, operation->getOutputSocket());
+ addPreviewOperation(system, context, operation->getOutputSocket());
if (this->getOutputSocket(0)->isConnected()) {
TextureAlphaOperation *alphaOperation = new TextureAlphaOperation();
diff --git a/source/blender/compositor/nodes/COM_TimeNode.cpp b/source/blender/compositor/nodes/COM_TimeNode.cpp
index 8e155e375e1..00ca797bd9b 100644
--- a/source/blender/compositor/nodes/COM_TimeNode.cpp
+++ b/source/blender/compositor/nodes/COM_TimeNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_TimeNode.h"
-#include "DNA_scene_types.h"
#include "COM_SetValueOperation.h"
#include "COM_ExecutionSystem.h"
extern "C" {
@@ -54,6 +53,7 @@ void TimeNode::convertToOperations(ExecutionSystem *graph, CompositorContext *co
fac = (context->getFramenumber() - node->custom1) / (float)(node->custom2 - node->custom1);
}
+ curvemapping_initialize((CurveMapping *)node->storage);
fac = curvemapping_evaluateF((CurveMapping *)node->storage, 0, fac);
operation->setValue(CLAMPIS(fac, 0.0f, 1.0f));
graph->addOperation(operation);
diff --git a/source/blender/compositor/nodes/COM_TonemapNode.cpp b/source/blender/compositor/nodes/COM_TonemapNode.cpp
index 68e322e9dcf..440e6b62414 100644
--- a/source/blender/compositor/nodes/COM_TonemapNode.cpp
+++ b/source/blender/compositor/nodes/COM_TonemapNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_TonemapNode.h"
-#include "DNA_scene_types.h"
#include "COM_TonemapOperation.h"
#include "COM_ExecutionSystem.h"
diff --git a/source/blender/compositor/nodes/COM_TrackPositionNode.cpp b/source/blender/compositor/nodes/COM_TrackPositionNode.cpp
new file mode 100644
index 00000000000..f4efcfe27f0
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_TrackPositionNode.cpp
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ * Sergey Sharybin
+ */
+
+#include "COM_TrackPositionNode.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_TrackPositionOperation.h"
+
+extern "C" {
+ #include "DNA_movieclip_types.h"
+}
+
+TrackPositionNode::TrackPositionNode(bNode *editorNode) : Node(editorNode)
+{
+ /* pass */
+}
+
+void TrackPositionNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context)
+{
+ OutputSocket *outputX = this->getOutputSocket(0);
+ OutputSocket *outputY = this->getOutputSocket(1);
+
+ bNode *editorNode = this->getbNode();
+ MovieClip *clip = (MovieClip *) editorNode->id;
+
+ NodeTrackPosData *trackpos_data = (NodeTrackPosData *) editorNode->storage;
+
+ TrackPositionOperation *operationX = new TrackPositionOperation();
+ TrackPositionOperation *operationY = new TrackPositionOperation();
+
+ operationX->setMovieClip(clip);
+ operationX->setTrackingObject(trackpos_data->tracking_object);
+ operationX->setTrackName(trackpos_data->track_name);
+ operationX->setFramenumber(context->getFramenumber());
+ operationX->setAxis(0);
+ operationX->setPosition(editorNode->custom1);
+ operationX->setRelativeFrame(editorNode->custom2);
+
+ operationY->setMovieClip(clip);
+ operationY->setTrackingObject(trackpos_data->tracking_object);
+ operationY->setTrackName(trackpos_data->track_name);
+ operationY->setFramenumber(context->getFramenumber());
+ operationY->setAxis(1);
+ operationY->setPosition(editorNode->custom1);
+ operationY->setRelativeFrame(editorNode->custom2);
+
+ outputX->relinkConnections(operationX->getOutputSocket());
+ outputY->relinkConnections(operationY->getOutputSocket());
+
+ graph->addOperation(operationX);
+ graph->addOperation(operationY);
+}
diff --git a/source/blender/compositor/nodes/COM_TrackPositionNode.h b/source/blender/compositor/nodes/COM_TrackPositionNode.h
new file mode 100644
index 00000000000..3d92ec3978c
--- /dev/null
+++ b/source/blender/compositor/nodes/COM_TrackPositionNode.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ * Sergey Sharybin
+ */
+
+#include "COM_Node.h"
+#include "DNA_node_types.h"
+
+/**
+ * @brief TrackPositionNode
+ * @ingroup Node
+ */
+class TrackPositionNode : public Node {
+public:
+ TrackPositionNode(bNode *editorNode);
+ void convertToOperations(ExecutionSystem *graph, CompositorContext *context);
+
+};
diff --git a/source/blender/compositor/nodes/COM_TransformNode.cpp b/source/blender/compositor/nodes/COM_TransformNode.cpp
index ff6e276d1ac..154761665cf 100644
--- a/source/blender/compositor/nodes/COM_TransformNode.cpp
+++ b/source/blender/compositor/nodes/COM_TransformNode.cpp
@@ -46,17 +46,7 @@ void TransformNode::convertToOperations(ExecutionSystem *graph, CompositorContex
TranslateOperation *translateOperation = new TranslateOperation();
SetSamplerOperation *sampler = new SetSamplerOperation();
- switch (this->getbNode()->custom1) {
- case 0:
- sampler->setSampler(COM_PS_NEAREST);
- break;
- case 1:
- sampler->setSampler(COM_PS_BILINEAR);
- break;
- case 2:
- sampler->setSampler(COM_PS_BICUBIC);
- break;
- }
+ sampler->setSampler((PixelSampler)this->getbNode()->custom1);
imageInput->relinkConnections(sampler->getInputSocket(0), 0, graph);
addLink(graph, sampler->getOutputSocket(), scaleOperation->getInputSocket(0));
diff --git a/source/blender/compositor/nodes/COM_ValueNode.cpp b/source/blender/compositor/nodes/COM_ValueNode.cpp
index 89b0602f8b0..593d74952ee 100644
--- a/source/blender/compositor/nodes/COM_ValueNode.cpp
+++ b/source/blender/compositor/nodes/COM_ValueNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_ValueNode.h"
-#include "DNA_scene_types.h"
#include "COM_SetValueOperation.h"
#include "COM_ExecutionSystem.h"
diff --git a/source/blender/compositor/nodes/COM_VectorCurveNode.cpp b/source/blender/compositor/nodes/COM_VectorCurveNode.cpp
index ee32c3b77a3..dcf1059ece6 100644
--- a/source/blender/compositor/nodes/COM_VectorCurveNode.cpp
+++ b/source/blender/compositor/nodes/COM_VectorCurveNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_VectorCurveNode.h"
-#include "DNA_scene_types.h"
#include "COM_VectorCurveOperation.h"
#include "COM_ExecutionSystem.h"
diff --git a/source/blender/compositor/nodes/COM_ViewLevelsNode.cpp b/source/blender/compositor/nodes/COM_ViewLevelsNode.cpp
index 309568c3aec..6bb873e0dec 100644
--- a/source/blender/compositor/nodes/COM_ViewLevelsNode.cpp
+++ b/source/blender/compositor/nodes/COM_ViewLevelsNode.cpp
@@ -21,7 +21,6 @@
*/
#include "COM_ViewLevelsNode.h"
-#include "DNA_scene_types.h"
#include "COM_ExecutionSystem.h"
#include "COM_CalculateMeanOperation.h"
#include "COM_CalculateStandardDeviationOperation.h"
diff --git a/source/blender/compositor/nodes/COM_ViewerNode.cpp b/source/blender/compositor/nodes/COM_ViewerNode.cpp
index 1205767cb28..d67e9e274b0 100644
--- a/source/blender/compositor/nodes/COM_ViewerNode.cpp
+++ b/source/blender/compositor/nodes/COM_ViewerNode.cpp
@@ -35,23 +35,33 @@ void ViewerNode::convertToOperations(ExecutionSystem *graph, CompositorContext *
{
InputSocket *imageSocket = this->getInputSocket(0);
InputSocket *alphaSocket = this->getInputSocket(1);
+ InputSocket *depthSocket = this->getInputSocket(2);
Image *image = (Image *)this->getbNode()->id;
ImageUser *imageUser = (ImageUser *) this->getbNode()->storage;
bNode *editorNode = this->getbNode();
- if (imageSocket->isConnected()) {
- ViewerOperation *viewerOperation = new ViewerOperation();
- viewerOperation->setColorManagement(context->getRenderData()->color_mgt_flag & R_COLOR_MANAGEMENT);
- viewerOperation->setColorPredivide(context->getRenderData()->color_mgt_flag & R_COLOR_MANAGEMENT_PREDIVIDE);
- viewerOperation->setbNodeTree(context->getbNodeTree());
- viewerOperation->setImage(image);
- viewerOperation->setImageUser(imageUser);
- viewerOperation->setActive((editorNode->flag & NODE_DO_OUTPUT) && this->isInActiveGroup());
- viewerOperation->setChunkOrder((OrderOfChunks)editorNode->custom1);
- viewerOperation->setCenterX(editorNode->custom3);
- viewerOperation->setCenterY(editorNode->custom4);
- imageSocket->relinkConnections(viewerOperation->getInputSocket(0), 0, graph);
- alphaSocket->relinkConnections(viewerOperation->getInputSocket(1));
- graph->addOperation(viewerOperation);
- addPreviewOperation(graph, viewerOperation->getInputSocket(0));
+ ViewerOperation *viewerOperation = new ViewerOperation();
+ viewerOperation->setbNodeTree(context->getbNodeTree());
+ viewerOperation->setImage(image);
+ viewerOperation->setImageUser(imageUser);
+ viewerOperation->setActive((editorNode->flag & NODE_DO_OUTPUT) && this->isInActiveGroup());
+ viewerOperation->setChunkOrder((OrderOfChunks)editorNode->custom1);
+ viewerOperation->setCenterX(editorNode->custom3);
+ viewerOperation->setCenterY(editorNode->custom4);
+
+ viewerOperation->setViewSettings(context->getViewSettings());
+ viewerOperation->setDisplaySettings(context->getDisplaySettings());
+
+ viewerOperation->setResolutionInputSocketIndex(0);
+ if (!imageSocket->isConnected())
+ {
+ if (alphaSocket->isConnected()) {
+ viewerOperation->setResolutionInputSocketIndex(1);
+ }
}
+
+ imageSocket->relinkConnections(viewerOperation->getInputSocket(0), 0, graph);
+ alphaSocket->relinkConnections(viewerOperation->getInputSocket(1));
+ depthSocket->relinkConnections(viewerOperation->getInputSocket(2));
+ graph->addOperation(viewerOperation);
+ addPreviewOperation(graph, context, viewerOperation->getInputSocket(0));
}
diff --git a/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp b/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp
index e688332a039..6cc9aae4553 100644
--- a/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp
+++ b/source/blender/compositor/operations/COM_AlphaOverKeyOperation.cpp
@@ -27,29 +27,29 @@ AlphaOverKeyOperation::AlphaOverKeyOperation() : MixBaseOperation()
/* pass */
}
-void AlphaOverKeyOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void AlphaOverKeyOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputOverColor[4];
float value[4];
- this->m_inputValueOperation->read(value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(inputColor1, x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(inputOverColor, x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(value, x, y, sampler);
+ this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
+ this->m_inputColor2Operation->read(inputOverColor, x, y, sampler);
if (inputOverColor[3] <= 0.0f) {
- copy_v4_v4(outputValue, inputColor1);
+ copy_v4_v4(output, inputColor1);
}
else if (value[0] == 1.0f && inputOverColor[3] >= 1.0f) {
- copy_v4_v4(outputValue, inputOverColor);
+ copy_v4_v4(output, inputOverColor);
}
else {
float premul = value[0] * inputOverColor[3];
float mul = 1.0f - premul;
- outputValue[0] = (mul * inputColor1[0]) + premul * inputOverColor[0];
- outputValue[1] = (mul * inputColor1[1]) + premul * inputOverColor[1];
- outputValue[2] = (mul * inputColor1[2]) + premul * inputOverColor[2];
- outputValue[3] = (mul * inputColor1[3]) + value[0] * inputOverColor[3];
+ output[0] = (mul * inputColor1[0]) + premul * inputOverColor[0];
+ output[1] = (mul * inputColor1[1]) + premul * inputOverColor[1];
+ output[2] = (mul * inputColor1[2]) + premul * inputOverColor[2];
+ output[3] = (mul * inputColor1[3]) + value[0] * inputOverColor[3];
}
}
diff --git a/source/blender/compositor/operations/COM_AlphaOverKeyOperation.h b/source/blender/compositor/operations/COM_AlphaOverKeyOperation.h
index 113ec245ee6..fa884bacf49 100644
--- a/source/blender/compositor/operations/COM_AlphaOverKeyOperation.h
+++ b/source/blender/compositor/operations/COM_AlphaOverKeyOperation.h
@@ -39,6 +39,6 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_AlphaOverMixedOperation.cpp b/source/blender/compositor/operations/COM_AlphaOverMixedOperation.cpp
index e56fb9151f2..111dc899e1d 100644
--- a/source/blender/compositor/operations/COM_AlphaOverMixedOperation.cpp
+++ b/source/blender/compositor/operations/COM_AlphaOverMixedOperation.cpp
@@ -27,31 +27,31 @@ AlphaOverMixedOperation::AlphaOverMixedOperation() : MixBaseOperation()
this->m_x = 0.0f;
}
-void AlphaOverMixedOperation::executePixel(float outputValue[4], float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void AlphaOverMixedOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputOverColor[4];
float value[4];
- this->m_inputValueOperation->read(value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(inputColor1, x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(inputOverColor, x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(value, x, y, sampler);
+ this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
+ this->m_inputColor2Operation->read(inputOverColor, x, y, sampler);
if (inputOverColor[3] <= 0.0f) {
- copy_v4_v4(outputValue, inputColor1);
+ copy_v4_v4(output, inputColor1);
}
else if (value[0] == 1.0f && inputOverColor[3] >= 1.0f) {
- copy_v4_v4(outputValue, inputOverColor);
+ copy_v4_v4(output, inputOverColor);
}
else {
float addfac = 1.0f - this->m_x + inputOverColor[3] * this->m_x;
float premul = value[0] * addfac;
float mul = 1.0f - value[0] * inputOverColor[3];
- outputValue[0] = (mul * inputColor1[0]) + premul * inputOverColor[0];
- outputValue[1] = (mul * inputColor1[1]) + premul * inputOverColor[1];
- outputValue[2] = (mul * inputColor1[2]) + premul * inputOverColor[2];
- outputValue[3] = (mul * inputColor1[3]) + value[0] * inputOverColor[3];
+ output[0] = (mul * inputColor1[0]) + premul * inputOverColor[0];
+ output[1] = (mul * inputColor1[1]) + premul * inputOverColor[1];
+ output[2] = (mul * inputColor1[2]) + premul * inputOverColor[2];
+ output[3] = (mul * inputColor1[3]) + value[0] * inputOverColor[3];
}
}
diff --git a/source/blender/compositor/operations/COM_AlphaOverMixedOperation.h b/source/blender/compositor/operations/COM_AlphaOverMixedOperation.h
index 3c0b955e360..91128454783 100644
--- a/source/blender/compositor/operations/COM_AlphaOverMixedOperation.h
+++ b/source/blender/compositor/operations/COM_AlphaOverMixedOperation.h
@@ -41,7 +41,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void setX(float x) { this->m_x = x; }
};
diff --git a/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.cpp b/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.cpp
index b2c40a058ba..ac7906f2f98 100644
--- a/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.cpp
+++ b/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.cpp
@@ -27,30 +27,30 @@ AlphaOverPremultiplyOperation::AlphaOverPremultiplyOperation() : MixBaseOperatio
/* pass */
}
-void AlphaOverPremultiplyOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void AlphaOverPremultiplyOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputOverColor[4];
float value[4];
- this->m_inputValueOperation->read(value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(inputColor1, x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(inputOverColor, x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(value, x, y, sampler);
+ this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
+ this->m_inputColor2Operation->read(inputOverColor, x, y, sampler);
/* Zero alpha values should still permit an add of RGB data */
if (inputOverColor[3] < 0.0f) {
- copy_v4_v4(outputValue, inputColor1);
+ copy_v4_v4(output, inputColor1);
}
else if (value[0] == 1.0f && inputOverColor[3] >= 1.0f) {
- copy_v4_v4(outputValue, inputOverColor);
+ copy_v4_v4(output, inputOverColor);
}
else {
float mul = 1.0f - value[0] * inputOverColor[3];
- outputValue[0] = (mul * inputColor1[0]) + value[0] * inputOverColor[0];
- outputValue[1] = (mul * inputColor1[1]) + value[0] * inputOverColor[1];
- outputValue[2] = (mul * inputColor1[2]) + value[0] * inputOverColor[2];
- outputValue[3] = (mul * inputColor1[3]) + value[0] * inputOverColor[3];
+ output[0] = (mul * inputColor1[0]) + value[0] * inputOverColor[0];
+ output[1] = (mul * inputColor1[1]) + value[0] * inputOverColor[1];
+ output[2] = (mul * inputColor1[2]) + value[0] * inputOverColor[2];
+ output[3] = (mul * inputColor1[3]) + value[0] * inputOverColor[3];
}
}
diff --git a/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.h b/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.h
index 7b7b9238794..d6e9e31c35f 100644
--- a/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.h
+++ b/source/blender/compositor/operations/COM_AlphaOverPremultiplyOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_AntiAliasOperation.cpp b/source/blender/compositor/operations/COM_AntiAliasOperation.cpp
index 46fa07893e8..867053bf1d2 100644
--- a/source/blender/compositor/operations/COM_AntiAliasOperation.cpp
+++ b/source/blender/compositor/operations/COM_AntiAliasOperation.cpp
@@ -23,6 +23,9 @@
#include "COM_AntiAliasOperation.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
+
+#include "MEM_guardedalloc.h"
+
extern "C" {
#include "RE_render_ext.h"
}
@@ -42,14 +45,14 @@ void AntiAliasOperation::initExecution()
NodeOperation::initMutex();
}
-void AntiAliasOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void AntiAliasOperation::executePixel(float output[4], int x, int y, void *data)
{
if (y < 0 || (unsigned int)y >= this->m_height || x < 0 || (unsigned int)x >= this->m_width) {
- color[0] = 0.0f;
+ output[0] = 0.0f;
}
else {
int offset = y * this->m_width + x;
- color[0] = this->m_buffer[offset] / 255.0f;
+ output[0] = this->m_buffer[offset] / 255.0f;
}
}
@@ -58,7 +61,7 @@ void AntiAliasOperation::deinitExecution()
{
this->m_valueReader = NULL;
if (this->m_buffer) {
- delete this->m_buffer;
+ MEM_freeN(this->m_buffer);
}
NodeOperation::deinitMutex();
}
@@ -82,20 +85,18 @@ bool AntiAliasOperation::determineDependingAreaOfInterest(rcti *input, ReadBuffe
return false;
}
-void *AntiAliasOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *AntiAliasOperation::initializeTileData(rcti *rect)
{
if (this->m_buffer) { return this->m_buffer; }
lockMutex();
if (this->m_buffer == NULL) {
- MemoryBuffer *tile = (MemoryBuffer *)this->m_valueReader->initializeTileData(rect, memoryBuffers);
+ MemoryBuffer *tile = (MemoryBuffer *)this->m_valueReader->initializeTileData(rect);
int size = tile->getHeight() * tile->getWidth();
float *input = tile->getBuffer();
- char *valuebuffer = new char[size];
+ char *valuebuffer = (char *)MEM_mallocN(sizeof(char) * size, __func__);
for (int i = 0; i < size; i++) {
float in = input[i * COM_NUMBER_OF_CHANNELS];
- if (in < 0.0f) { in = 0.0f; }
- if (in > 1.0f) {in = 1.0f; }
- valuebuffer[i] = in * 255;
+ valuebuffer[i] = FTOCHAR(in);
}
antialias_tagbuf(tile->getWidth(), tile->getHeight(), valuebuffer);
this->m_buffer = valuebuffer;
diff --git a/source/blender/compositor/operations/COM_AntiAliasOperation.h b/source/blender/compositor/operations/COM_AntiAliasOperation.h
index 3d9bcf6d90a..385d59fec3c 100644
--- a/source/blender/compositor/operations/COM_AntiAliasOperation.h
+++ b/source/blender/compositor/operations/COM_AntiAliasOperation.h
@@ -43,14 +43,14 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
*/
void initExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
/**
* Deinitialize the execution
diff --git a/source/blender/compositor/operations/COM_BilateralBlurOperation.cpp b/source/blender/compositor/operations/COM_BilateralBlurOperation.cpp
index 4f7f5eea8a0..5f5eca96378 100644
--- a/source/blender/compositor/operations/COM_BilateralBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_BilateralBlurOperation.cpp
@@ -46,7 +46,7 @@ void BilateralBlurOperation::initExecution()
QualityStepHelper::initExecution(COM_QH_INCREASE);
}
-void BilateralBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void BilateralBlurOperation::executePixel(float output[4], int x, int y, void *data)
{
// read the determinator color at x, y, this will be used as the reference color for the determinator
float determinatorReferenceColor[4];
@@ -61,20 +61,20 @@ void BilateralBlurOperation::executePixel(float *color, int x, int y, MemoryBuff
int miny = floor(y - space);
int maxy = ceil(y + space);
float deltaColor;
- this->m_inputDeterminatorProgram->read(determinatorReferenceColor, x, y, inputBuffers, data);
+ this->m_inputDeterminatorProgram->read(determinatorReferenceColor, x, y, data);
zero_v4(blurColor);
blurDivider = 0.0f;
for (int yi = miny; yi < maxy; yi += QualityStepHelper::getStep()) {
for (int xi = minx; xi < maxx; xi += QualityStepHelper::getStep()) {
// read determinator
- this->m_inputDeterminatorProgram->read(determinator, xi, yi, inputBuffers, data);
+ this->m_inputDeterminatorProgram->read(determinator, xi, yi, data);
deltaColor = (fabsf(determinatorReferenceColor[0] - determinator[0]) +
fabsf(determinatorReferenceColor[1] - determinator[1]) +
fabsf(determinatorReferenceColor[2] - determinator[2])); // do not take the alpha channel into account
if (deltaColor < sigmacolor) {
// add this to the blur
- this->m_inputColorProgram->read(tempColor, xi, yi, inputBuffers, data);
+ this->m_inputColorProgram->read(tempColor, xi, yi, data);
add_v4_v4(blurColor, tempColor);
blurDivider += 1.0f;
}
@@ -82,13 +82,13 @@ void BilateralBlurOperation::executePixel(float *color, int x, int y, MemoryBuff
}
if (blurDivider > 0.0f) {
- mul_v4_v4fl(color, blurColor, 1.0f / blurDivider);
+ mul_v4_v4fl(output, blurColor, 1.0f / blurDivider);
}
else {
- color[0] = 0.0f;
- color[1] = 0.0f;
- color[2] = 0.0f;
- color[3] = 1.0f;
+ output[0] = 0.0f;
+ output[1] = 0.0f;
+ output[2] = 0.0f;
+ output[3] = 1.0f;
}
}
diff --git a/source/blender/compositor/operations/COM_BilateralBlurOperation.h b/source/blender/compositor/operations/COM_BilateralBlurOperation.h
index be6ce7a221e..8def90941ab 100644
--- a/source/blender/compositor/operations/COM_BilateralBlurOperation.h
+++ b/source/blender/compositor/operations/COM_BilateralBlurOperation.h
@@ -38,7 +38,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_BlurBaseOperation.cpp b/source/blender/compositor/operations/COM_BlurBaseOperation.cpp
index 696c0748d69..39a0014ac41 100644
--- a/source/blender/compositor/operations/COM_BlurBaseOperation.cpp
+++ b/source/blender/compositor/operations/COM_BlurBaseOperation.cpp
@@ -22,6 +22,7 @@
#include "COM_BlurBaseOperation.h"
#include "BLI_math.h"
+#include "MEM_guardedalloc.h"
extern "C" {
#include "RE_pipeline.h"
@@ -74,7 +75,7 @@ float *BlurBaseOperation::make_gausstab(int rad)
n = 2 * rad + 1;
- gausstab = new float[n];
+ gausstab = (float *)MEM_mallocN(sizeof(float) * n, __func__);
sum = 0.0f;
for (i = -rad; i <= rad; i++) {
@@ -99,7 +100,7 @@ float *BlurBaseOperation::make_dist_fac_inverse(int rad, int falloff)
n = 2 * rad + 1;
- dist_fac_invert = new float[n];
+ dist_fac_invert = (float *)MEM_mallocN(sizeof(float) * n, __func__);
for (i = -rad; i <= rad; i++) {
val = 1.0f - fabsf(((float)i / (float)rad));
@@ -120,6 +121,11 @@ float *BlurBaseOperation::make_dist_fac_inverse(int rad, int falloff)
val = val * val;
break;
case PROP_LIN:
+#ifndef NDEBUG
+ /* uninitialized! */
+ case -1:
+ BLI_assert(0);
+#endif
default:
/* nothing */
break;
@@ -140,11 +146,11 @@ void BlurBaseOperation::deinitExecution()
this->m_data = NULL;
}
-void BlurBaseOperation::updateSize(MemoryBuffer **memoryBuffers)
+void BlurBaseOperation::updateSize()
{
if (!this->m_sizeavailable) {
float result[4];
- this->getInputSocketReader(1)->read(result, 0, 0, COM_PS_NEAREST, memoryBuffers);
+ this->getInputSocketReader(1)->read(result, 0, 0, COM_PS_NEAREST);
this->m_size = result[0];
this->m_sizeavailable = true;
}
diff --git a/source/blender/compositor/operations/COM_BlurBaseOperation.h b/source/blender/compositor/operations/COM_BlurBaseOperation.h
index 6d60abf09bf..d8729ad4394 100644
--- a/source/blender/compositor/operations/COM_BlurBaseOperation.h
+++ b/source/blender/compositor/operations/COM_BlurBaseOperation.h
@@ -34,7 +34,7 @@ protected:
float *make_gausstab(int rad);
float *make_dist_fac_inverse(int rad, int falloff);
- void updateSize(MemoryBuffer **memoryBuffers);
+ void updateSize();
/**
* Cached reference to the inputProgram
diff --git a/source/blender/compositor/operations/COM_BokehBlurOperation.cpp b/source/blender/compositor/operations/COM_BokehBlurOperation.cpp
index fb06f6d3761..1c91af2a7a3 100644
--- a/source/blender/compositor/operations/COM_BokehBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_BokehBlurOperation.cpp
@@ -33,25 +33,32 @@ BokehBlurOperation::BokehBlurOperation() : NodeOperation()
this->addInputSocket(COM_DT_COLOR);
this->addInputSocket(COM_DT_COLOR, COM_SC_NO_RESIZE);
this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
this->addOutputSocket(COM_DT_COLOR);
this->setComplex(true);
this->setOpenCL(true);
this->m_size = 1.0f;
-
+ this->m_sizeavailable = false;
this->m_inputProgram = NULL;
this->m_inputBokehProgram = NULL;
this->m_inputBoundingBoxReader = NULL;
}
-void *BokehBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *BokehBlurOperation::initializeTileData(rcti *rect)
{
- void *buffer = getInputOperation(0)->initializeTileData(NULL, memoryBuffers);
+ lockMutex();
+ if (!this->m_sizeavailable) {
+ updateSize();
+ }
+ void *buffer = getInputOperation(0)->initializeTileData(NULL);
+ unlockMutex();
return buffer;
}
void BokehBlurOperation::initExecution()
{
+ initMutex();
this->m_inputProgram = getInputSocketReader(0);
this->m_inputBokehProgram = getInputSocketReader(1);
this->m_inputBoundingBoxReader = getInputSocketReader(2);
@@ -59,26 +66,21 @@ void BokehBlurOperation::initExecution()
int width = this->m_inputBokehProgram->getWidth();
int height = this->m_inputBokehProgram->getHeight();
- float dimension;
- if (width < height) {
- dimension = width;
- }
- else {
- dimension = height;
- }
+ float dimension = min(width, height);
+
this->m_bokehMidX = width / 2.0f;
this->m_bokehMidY = height / 2.0f;
this->m_bokehDimension = dimension / 2.0f;
QualityStepHelper::initExecution(COM_QH_INCREASE);
}
-void BokehBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void BokehBlurOperation::executePixel(float output[4], int x, int y, void *data)
{
float color_accum[4];
float tempBoundingBox[4];
float bokeh[4];
- this->m_inputBoundingBoxReader->read(tempBoundingBox, x, y, COM_PS_NEAREST, inputBuffers);
+ this->m_inputBoundingBoxReader->read(tempBoundingBox, x, y, COM_PS_NEAREST);
if (tempBoundingBox[0] > 0.0f) {
float multiplier_accum[4] = {0.0f, 0.0f, 0.0f, 0.0f};
MemoryBuffer *inputBuffer = (MemoryBuffer *)data;
@@ -86,8 +88,17 @@ void BokehBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *
int bufferwidth = inputBuffer->getWidth();
int bufferstartx = inputBuffer->getRect()->xmin;
int bufferstarty = inputBuffer->getRect()->ymin;
- int pixelSize = this->m_size * this->getWidth() / 100.0f;
+ const float max_dim = max(this->getWidth(), this->getHeight());
+ int pixelSize = this->m_size * max_dim / 100.0f;
+ zero_v4(color_accum);
+ if (pixelSize < 2) {
+ this->m_inputProgram->read(color_accum, x, y, COM_PS_NEAREST);
+ multiplier_accum[0] = 1.0f;
+ multiplier_accum[1] = 1.0f;
+ multiplier_accum[2] = 1.0f;
+ multiplier_accum[3] = 1.0f;
+ }
int miny = y - pixelSize;
int maxy = y + pixelSize;
int minx = x - pixelSize;
@@ -97,7 +108,6 @@ void BokehBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *
maxy = min(maxy, inputBuffer->getRect()->ymax);
maxx = min(maxx, inputBuffer->getRect()->xmax);
- zero_v4(color_accum);
int step = getStep();
int offsetadd = getOffsetAdd();
@@ -108,24 +118,25 @@ void BokehBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *
for (int nx = minx; nx < maxx; nx += step) {
float u = this->m_bokehMidX - (nx - x) * m;
float v = this->m_bokehMidY - (ny - y) * m;
- this->m_inputBokehProgram->read(bokeh, u, v, COM_PS_NEAREST, inputBuffers);
+ this->m_inputBokehProgram->read(bokeh, u, v, COM_PS_NEAREST);
madd_v4_v4v4(color_accum, bokeh, &buffer[bufferindex]);
add_v4_v4(multiplier_accum, bokeh);
bufferindex += offsetadd;
}
}
- color[0] = color_accum[0] * (1.0f / multiplier_accum[0]);
- color[1] = color_accum[1] * (1.0f / multiplier_accum[1]);
- color[2] = color_accum[2] * (1.0f / multiplier_accum[2]);
- color[3] = color_accum[3] * (1.0f / multiplier_accum[3]);
+ output[0] = color_accum[0] * (1.0f / multiplier_accum[0]);
+ output[1] = color_accum[1] * (1.0f / multiplier_accum[1]);
+ output[2] = color_accum[2] * (1.0f / multiplier_accum[2]);
+ output[3] = color_accum[3] * (1.0f / multiplier_accum[3]);
}
else {
- this->m_inputProgram->read(color, x, y, COM_PS_NEAREST, inputBuffers);
+ this->m_inputProgram->read(output, x, y, COM_PS_NEAREST);
}
}
void BokehBlurOperation::deinitExecution()
{
+ deinitMutex();
this->m_inputProgram = NULL;
this->m_inputBokehProgram = NULL;
this->m_inputBoundingBoxReader = NULL;
@@ -135,11 +146,20 @@ bool BokehBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBuffe
{
rcti newInput;
rcti bokehInput;
+ const float max_dim = max(this->getWidth(), this->getHeight());
- newInput.xmax = input->xmax + (this->m_size * this->getWidth() / 100.0f);
- newInput.xmin = input->xmin - (this->m_size * this->getWidth() / 100.0f);
- newInput.ymax = input->ymax + (this->m_size * this->getWidth() / 100.0f);
- newInput.ymin = input->ymin - (this->m_size * this->getWidth() / 100.0f);
+ if (this->m_sizeavailable) {
+ newInput.xmax = input->xmax + (this->m_size * max_dim / 100.0f);
+ newInput.xmin = input->xmin - (this->m_size * max_dim / 100.0f);
+ newInput.ymax = input->ymax + (this->m_size * max_dim / 100.0f);
+ newInput.ymin = input->ymin - (this->m_size * max_dim / 100.0f);
+ }
+ else {
+ newInput.xmax = input->xmax + (10.0f * max_dim / 100.0f);
+ newInput.xmin = input->xmin - (10.0f * max_dim / 100.0f);
+ newInput.ymax = input->ymax + (10.0f * max_dim / 100.0f);
+ newInput.ymin = input->ymin - (10.0f * max_dim / 100.0f);
+ }
NodeOperation *operation = getInputOperation(1);
bokehInput.xmax = operation->getWidth();
@@ -157,19 +177,31 @@ bool BokehBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBuffe
if (operation->determineDependingAreaOfInterest(input, readOperation, output) ) {
return true;
}
+ if (!this->m_sizeavailable) {
+ rcti sizeInput;
+ sizeInput.xmin = 0;
+ sizeInput.ymin = 0;
+ sizeInput.xmax = 5;
+ sizeInput.ymax = 5;
+ operation = getInputOperation(3);
+ if (operation->determineDependingAreaOfInterest(&sizeInput, readOperation, output) ) {
+ return true;
+ }
+ }
return false;
}
-static cl_kernel kernel = 0;
-void BokehBlurOperation::executeOpenCL(OpenCLDevice* device,
+void BokehBlurOperation::executeOpenCL(OpenCLDevice *device,
MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer,
MemoryBuffer **inputMemoryBuffers, list<cl_mem> *clMemToCleanUp,
list<cl_kernel> *clKernelsToCleanUp)
{
- if (!kernel) {
- kernel = device->COM_clCreateKernel("bokehBlurKernel", NULL);
+ cl_kernel kernel = device->COM_clCreateKernel("bokehBlurKernel", NULL);
+ if (!this->m_sizeavailable) {
+ updateSize();
}
- cl_int radius = this->getWidth() * this->m_size / 100.0f;
+ const float max_dim = max(this->getWidth(), this->getHeight());
+ cl_int radius = this->m_size * max_dim / 100.0f;
cl_int step = this->getStep();
device->COM_clAttachMemoryBufferToKernelParameter(kernel, 0, -1, clMemToCleanUp, inputMemoryBuffers, this->m_inputBoundingBoxReader);
@@ -183,3 +215,14 @@ void BokehBlurOperation::executeOpenCL(OpenCLDevice* device,
device->COM_clEnqueueRange(kernel, outputMemoryBuffer, 9, this);
}
+
+void BokehBlurOperation::updateSize()
+{
+ if (!this->m_sizeavailable) {
+ float result[4];
+ this->getInputSocketReader(3)->read(result, 0, 0, COM_PS_NEAREST);
+ this->m_size = result[0];
+ CLAMP(this->m_size, 0.0f, 10.0f);
+ this->m_sizeavailable = true;
+ }
+}
diff --git a/source/blender/compositor/operations/COM_BokehBlurOperation.h b/source/blender/compositor/operations/COM_BokehBlurOperation.h
index 0433a4156a8..37483d3dc69 100644
--- a/source/blender/compositor/operations/COM_BokehBlurOperation.h
+++ b/source/blender/compositor/operations/COM_BokehBlurOperation.h
@@ -30,18 +30,20 @@ private:
SocketReader *m_inputProgram;
SocketReader *m_inputBokehProgram;
SocketReader *m_inputBoundingBoxReader;
+ void updateSize();
float m_size;
+ bool m_sizeavailable;
float m_bokehMidX;
float m_bokehMidY;
float m_bokehDimension;
public:
BokehBlurOperation();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
@@ -55,8 +57,8 @@ public:
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void setSize(float size) { this->m_size = size; }
+ void setSize(float size) { this->m_size = size; this->m_sizeavailable = true; }
- void executeOpenCL(OpenCLDevice* device, MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer, MemoryBuffer **inputMemoryBuffers, list<cl_mem> *clMemToCleanUp, list<cl_kernel> *clKernelsToCleanUp);
+ void executeOpenCL(OpenCLDevice *device, MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer, MemoryBuffer **inputMemoryBuffers, list<cl_mem> *clMemToCleanUp, list<cl_kernel> *clKernelsToCleanUp);
};
#endif
diff --git a/source/blender/compositor/operations/COM_BokehImageOperation.cpp b/source/blender/compositor/operations/COM_BokehImageOperation.cpp
index 90e272438d6..b87be33eca1 100644
--- a/source/blender/compositor/operations/COM_BokehImageOperation.cpp
+++ b/source/blender/compositor/operations/COM_BokehImageOperation.cpp
@@ -30,10 +30,8 @@ BokehImageOperation::BokehImageOperation() : NodeOperation()
}
void BokehImageOperation::initExecution()
{
- this->m_centerX = getWidth() / 2;
- this->m_centerY = getHeight() / 2;
- this->m_center[0] = this->m_centerX;
- this->m_center[1] = this->m_centerY;
+ this->m_center[0] = getWidth() / 2;
+ this->m_center[1] = getHeight() / 2;
this->m_inverseRounding = 1.0f - this->m_data->rounding;
this->m_circularDistance = getWidth() / 2;
this->m_flapRad = (float)(M_PI * 2) / this->m_data->flaps;
@@ -47,14 +45,14 @@ void BokehImageOperation::initExecution()
}
void BokehImageOperation::detemineStartPointOfFlap(float r[2], int flapNumber, float distance)
{
- r[0] = sinf(this->m_flapRad * flapNumber + this->m_flapRadAdd) * distance + this->m_centerX;
- r[1] = cosf(this->m_flapRad * flapNumber + this->m_flapRadAdd) * distance + this->m_centerY;
+ r[0] = sinf(this->m_flapRad * flapNumber + this->m_flapRadAdd) * distance + this->m_center[0];
+ r[1] = cosf(this->m_flapRad * flapNumber + this->m_flapRadAdd) * distance + this->m_center[1];
}
float BokehImageOperation::isInsideBokeh(float distance, float x, float y)
{
float insideBokeh = 0.0f;
- const float deltaX = x - this->m_centerX;
- const float deltaY = y - this->m_centerY;
+ const float deltaX = x - this->m_center[0];
+ const float deltaY = y - this->m_center[1];
float closestPoint[2];
float lineP1[2];
float lineP2[2];
@@ -87,7 +85,7 @@ float BokehImageOperation::isInsideBokeh(float distance, float x, float y)
}
return insideBokeh;
}
-void BokehImageOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void BokehImageOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float shift = this->m_data->lensshift;
float shift2 = shift / 2.0f;
@@ -96,16 +94,16 @@ void BokehImageOperation::executePixel(float *color, float x, float y, PixelSamp
float insideBokehMed = isInsideBokeh(distance - fabsf(shift2 * distance), x, y);
float insideBokehMin = isInsideBokeh(distance - fabsf(shift * distance), x, y);
if (shift < 0) {
- color[0] = insideBokehMax;
- color[1] = insideBokehMed;
- color[2] = insideBokehMin;
+ output[0] = insideBokehMax;
+ output[1] = insideBokehMed;
+ output[2] = insideBokehMin;
}
else {
- color[0] = insideBokehMin;
- color[1] = insideBokehMed;
- color[2] = insideBokehMax;
+ output[0] = insideBokehMin;
+ output[1] = insideBokehMed;
+ output[2] = insideBokehMax;
}
- color[3] = (insideBokehMax + insideBokehMed + insideBokehMin) / 3.0f;
+ output[3] = (insideBokehMax + insideBokehMed + insideBokehMin) / 3.0f;
}
void BokehImageOperation::deinitExecution()
@@ -118,8 +116,8 @@ void BokehImageOperation::deinitExecution()
}
}
-void BokehImageOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void BokehImageOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
- resolution[0] = 512;
- resolution[1] = 512;
+ resolution[0] = COM_BLUR_BOKEH_PIXELS;
+ resolution[1] = COM_BLUR_BOKEH_PIXELS;
}
diff --git a/source/blender/compositor/operations/COM_BokehImageOperation.h b/source/blender/compositor/operations/COM_BokehImageOperation.h
index 085aaa471f0..44c4c0cfe27 100644
--- a/source/blender/compositor/operations/COM_BokehImageOperation.h
+++ b/source/blender/compositor/operations/COM_BokehImageOperation.h
@@ -24,44 +24,125 @@
#define _COM_BokehImageOperation_h
#include "COM_NodeOperation.h"
-
+/**
+ * @brief The BokehImageOperation class is an operation that creates an image useful to mimic the internals
+ *of a camera.
+ *
+ * features:
+ * - number of flaps
+ * - angle offset of the flaps
+ * - rounding of the flaps (also used to make a circular lens)
+ * - simulate catadioptric
+ * - simulate lensshift
+ *
+ * Per pixel the algorithm determines the edge of the bokeh on the same line as the center of the image and the pixel
+ * is evaluating.
+ *
+ * The edge is detected by finding the closest point on the direct line between the two nearest flap-corners.
+ * this edge is interpolated with a full circle.
+ * Result of this edge detection is stored as the distance between the center of the image and the edge.
+ *
+ * catadioptric lenses are simulated to interpolate between the center of the image and the distance of the edge.
+ * We now have three distances:
+ * - distance between the center of the image and the pixel to be evaluated
+ * - distance between the center of the image and the outer-edge
+ * - distance between the center of the image and the inner-edge
+ *
+ * With a simple compare it can be detected if the evaluated pixel is between the outer and inner edge.
+ */
class BokehImageOperation : public NodeOperation {
private:
+ /**
+ * @brief Settings of the bokeh image
+ */
NodeBokehImage *m_data;
+ /**
+ * @brief precalced center of the image
+ */
float m_center[2];
- float m_centerX;
- float m_centerY;
+
+ /**
+ * @brief 1.0-rounding
+ */
float m_inverseRounding;
+
+ /**
+ * @brief distance of a full circle lens
+ */
float m_circularDistance;
+
+ /**
+ * @brief radius when the first flap starts
+ */
float m_flapRad;
+
+ /**
+ * @brief radians of a single flap
+ */
float m_flapRadAdd;
+ /**
+ * @brief should the m_data field by deleted when this operation is finished
+ */
bool m_deleteData;
+ /**
+ * @brief detemine the coordinate of a flap cornder
+ *
+ * @param r result in bokehimage space are stored [x,y]
+ * @param flapNumber the flap number to calculate
+ * @param distance the lens distance is used to simulate lens shifts
+ */
void detemineStartPointOfFlap(float r[2], int flapNumber, float distance);
+
+ /**
+ * @brief Determine if a coordinate is inside the bokeh image
+ *
+ * @param distance the distance that will be used. This parameter is modified a bit to mimic lens shifts
+ * @param x the x coordinate of the pixel to evaluate
+ * @param y the y coordinate of the pixel to evaluate
+ * @return float range 0..1 0 is completely outside
+ */
float isInsideBokeh(float distance, float x, float y);
public:
BokehImageOperation();
/**
- * the inner loop of this program
+ * @brief the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
- * Initialize the execution
+ * @brief Initialize the execution
*/
void initExecution();
/**
- * Deinitialize the execution
+ * @brief Deinitialize the execution
*/
void deinitExecution();
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ /**
+ * @brief determine the resolution of this operation. currently fixed at [COM_BLUR_BOKEH_PIXELS, COM_BLUR_BOKEH_PIXELS]
+ * @param resolution
+ * @param preferredResolution
+ */
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
+ /**
+ * @brief set the node data
+ * @param data
+ */
void setData(NodeBokehImage *data) { this->m_data = data; }
+
+ /**
+ * @brief deleteDataOnFinish
+ *
+ * There are cases that the compositor uses this operation on its own (see defocus node)
+ * the deleteDataOnFinish must only be called when the data has been created by the compositor.
+ *It should not be called when the data has been created by the node-editor/user.
+ */
void deleteDataOnFinish() { this->m_deleteData = true; }
};
#endif
diff --git a/source/blender/compositor/operations/COM_BoxMaskOperation.cpp b/source/blender/compositor/operations/COM_BoxMaskOperation.cpp
index 96738a2920a..52f84462761 100644
--- a/source/blender/compositor/operations/COM_BoxMaskOperation.cpp
+++ b/source/blender/compositor/operations/COM_BoxMaskOperation.cpp
@@ -44,7 +44,7 @@ void BoxMaskOperation::initExecution()
this->m_aspectRatio = ((float)this->getWidth()) / this->getHeight();
}
-void BoxMaskOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void BoxMaskOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputMask[4];
float inputValue[4];
@@ -57,8 +57,8 @@ void BoxMaskOperation::executePixel(float *color, float x, float y, PixelSampler
rx = this->m_data->x + (this->m_cosine * dx + this->m_sine * dy);
ry = this->m_data->y + (-this->m_sine * dx + this->m_cosine * dy);
- this->m_inputMask->read(inputMask, x, y, sampler, inputBuffers);
- this->m_inputValue->read(inputValue, x, y, sampler, inputBuffers);
+ this->m_inputMask->read(inputMask, x, y, sampler);
+ this->m_inputValue->read(inputValue, x, y, sampler);
float halfHeight = this->m_data->height / 2.0f;
float halfWidth = this->m_data->width / 2.0f;
@@ -70,40 +70,40 @@ void BoxMaskOperation::executePixel(float *color, float x, float y, PixelSampler
switch (this->m_maskType) {
case CMP_NODE_MASKTYPE_ADD:
if (inside) {
- color[0] = max(inputMask[0], inputValue[0]);
+ output[0] = max(inputMask[0], inputValue[0]);
}
else {
- color[0] = inputMask[0];
+ output[0] = inputMask[0];
}
break;
case CMP_NODE_MASKTYPE_SUBTRACT:
if (inside) {
- color[0] = inputMask[0] - inputValue[0];
- CLAMP(color[0], 0, 1);
+ output[0] = inputMask[0] - inputValue[0];
+ CLAMP(output[0], 0, 1);
}
else {
- color[0] = inputMask[0];
+ output[0] = inputMask[0];
}
break;
case CMP_NODE_MASKTYPE_MULTIPLY:
if (inside) {
- color[0] = inputMask[0] * inputValue[0];
+ output[0] = inputMask[0] * inputValue[0];
}
else {
- color[0] = 0;
+ output[0] = 0;
}
break;
case CMP_NODE_MASKTYPE_NOT:
if (inside) {
if (inputMask[0] > 0.0f) {
- color[0] = 0;
+ output[0] = 0;
}
else {
- color[0] = inputValue[0];
+ output[0] = inputValue[0];
}
}
else {
- color[0] = inputMask[0];
+ output[0] = inputMask[0];
}
break;
}
diff --git a/source/blender/compositor/operations/COM_BoxMaskOperation.h b/source/blender/compositor/operations/COM_BoxMaskOperation.h
index cec680ef6c3..f39d74829d4 100644
--- a/source/blender/compositor/operations/COM_BoxMaskOperation.h
+++ b/source/blender/compositor/operations/COM_BoxMaskOperation.h
@@ -45,7 +45,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_BrightnessOperation.cpp b/source/blender/compositor/operations/COM_BrightnessOperation.cpp
index 8c9fb6394a7..0613540250c 100644
--- a/source/blender/compositor/operations/COM_BrightnessOperation.cpp
+++ b/source/blender/compositor/operations/COM_BrightnessOperation.cpp
@@ -37,15 +37,15 @@ void BrightnessOperation::initExecution()
this->m_inputContrastProgram = this->getInputSocketReader(2);
}
-void BrightnessOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void BrightnessOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue[4];
float a, b;
float inputBrightness[4];
float inputContrast[4];
- this->m_inputProgram->read(inputValue, x, y, sampler, inputBuffers);
- this->m_inputBrightnessProgram->read(inputBrightness, x, y, sampler, inputBuffers);
- this->m_inputContrastProgram->read(inputContrast, x, y, sampler, inputBuffers);
+ this->m_inputProgram->read(inputValue, x, y, sampler);
+ this->m_inputBrightnessProgram->read(inputBrightness, x, y, sampler);
+ this->m_inputContrastProgram->read(inputContrast, x, y, sampler);
float brightness = inputBrightness[0];
float contrast = inputContrast[0];
brightness /= 100.0f;
@@ -65,10 +65,10 @@ void BrightnessOperation::executePixel(float *color, float x, float y, PixelSamp
b = a * (brightness + delta);
}
- color[0] = a * inputValue[0] + b;
- color[1] = a * inputValue[1] + b;
- color[2] = a * inputValue[2] + b;
- color[3] = inputValue[3];
+ output[0] = a * inputValue[0] + b;
+ output[1] = a * inputValue[1] + b;
+ output[2] = a * inputValue[2] + b;
+ output[3] = inputValue[3];
}
void BrightnessOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_BrightnessOperation.h b/source/blender/compositor/operations/COM_BrightnessOperation.h
index 61f667aa1be..1c8eda63e94 100644
--- a/source/blender/compositor/operations/COM_BrightnessOperation.h
+++ b/source/blender/compositor/operations/COM_BrightnessOperation.h
@@ -40,7 +40,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_CalculateMeanOperation.cpp b/source/blender/compositor/operations/COM_CalculateMeanOperation.cpp
index a1c679b3e15..a2954a20e90 100644
--- a/source/blender/compositor/operations/COM_CalculateMeanOperation.cpp
+++ b/source/blender/compositor/operations/COM_CalculateMeanOperation.cpp
@@ -42,9 +42,9 @@ void CalculateMeanOperation::initExecution()
NodeOperation::initMutex();
}
-void CalculateMeanOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void CalculateMeanOperation::executePixel(float output[4], int x, int y, void *data)
{
- color[0] = this->m_result;
+ output[0] = this->m_result;
}
void CalculateMeanOperation::deinitExecution()
@@ -70,11 +70,11 @@ bool CalculateMeanOperation::determineDependingAreaOfInterest(rcti *input, ReadB
return false;
}
-void *CalculateMeanOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *CalculateMeanOperation::initializeTileData(rcti *rect)
{
lockMutex();
if (!this->m_iscalculated) {
- MemoryBuffer *tile = (MemoryBuffer *)this->m_imageReader->initializeTileData(rect, memoryBuffers);
+ MemoryBuffer *tile = (MemoryBuffer *)this->m_imageReader->initializeTileData(rect);
calculateMean(tile);
this->m_iscalculated = true;
}
diff --git a/source/blender/compositor/operations/COM_CalculateMeanOperation.h b/source/blender/compositor/operations/COM_CalculateMeanOperation.h
index 2bd723c40a3..53edea4977e 100644
--- a/source/blender/compositor/operations/COM_CalculateMeanOperation.h
+++ b/source/blender/compositor/operations/COM_CalculateMeanOperation.h
@@ -46,14 +46,14 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
*/
void initExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
/**
* Deinitialize the execution
diff --git a/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.cpp b/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.cpp
index 2d860df449c..e8268adff7a 100644
--- a/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.cpp
+++ b/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.cpp
@@ -31,16 +31,16 @@ CalculateStandardDeviationOperation::CalculateStandardDeviationOperation() : Cal
/* pass */
}
-void CalculateStandardDeviationOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void CalculateStandardDeviationOperation::executePixel(float output[4], int x, int y, void *data)
{
- color[0] = this->m_standardDeviation;
+ output[0] = this->m_standardDeviation;
}
-void *CalculateStandardDeviationOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *CalculateStandardDeviationOperation::initializeTileData(rcti *rect)
{
lockMutex();
if (!this->m_iscalculated) {
- MemoryBuffer *tile = (MemoryBuffer *)this->m_imageReader->initializeTileData(rect, memoryBuffers);
+ MemoryBuffer *tile = (MemoryBuffer *)this->m_imageReader->initializeTileData(rect);
CalculateMeanOperation::calculateMean(tile);
this->m_standardDeviation = 0.0f;
float *buffer = tile->getBuffer();
diff --git a/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.h b/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.h
index 506c5d6fe3a..92c4b7fa4a0 100644
--- a/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.h
+++ b/source/blender/compositor/operations/COM_CalculateStandardDeviationOperation.h
@@ -39,9 +39,9 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
};
#endif
diff --git a/source/blender/compositor/operations/COM_ChangeHSVOperation.cpp b/source/blender/compositor/operations/COM_ChangeHSVOperation.cpp
index 0812dd45bf6..e6e93774685 100644
--- a/source/blender/compositor/operations/COM_ChangeHSVOperation.cpp
+++ b/source/blender/compositor/operations/COM_ChangeHSVOperation.cpp
@@ -39,17 +39,17 @@ void ChangeHSVOperation::deinitExecution()
this->m_inputOperation = NULL;
}
-void ChangeHSVOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ChangeHSVOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
- this->m_inputOperation->read(inputColor1, x, y, sampler, inputBuffers);
+ this->m_inputOperation->read(inputColor1, x, y, sampler);
- outputValue[0] = inputColor1[0] + (this->m_hue - 0.5f);
- if (outputValue[0] > 1.0f) outputValue[0] -= 1.0f;
- else if (outputValue[0] < 0.0f) outputValue[0] += 1.0f;
- outputValue[1] = inputColor1[1] * this->m_saturation;
- outputValue[2] = inputColor1[2] * this->m_value;
- outputValue[3] = inputColor1[3];
+ output[0] = inputColor1[0] + (this->m_hue - 0.5f);
+ if (output[0] > 1.0f) output[0] -= 1.0f;
+ else if (output[0] < 0.0f) output[0] += 1.0f;
+ output[1] = inputColor1[1] * this->m_saturation;
+ output[2] = inputColor1[2] * this->m_value;
+ output[3] = inputColor1[3];
}
diff --git a/source/blender/compositor/operations/COM_ChangeHSVOperation.h b/source/blender/compositor/operations/COM_ChangeHSVOperation.h
index ee35fbe01d4..57e5dc991e9 100644
--- a/source/blender/compositor/operations/COM_ChangeHSVOperation.h
+++ b/source/blender/compositor/operations/COM_ChangeHSVOperation.h
@@ -49,7 +49,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void setHue(float hue) { this->m_hue = hue; }
void setSaturation(float saturation) { this->m_saturation = saturation; }
diff --git a/source/blender/compositor/operations/COM_ChannelMatteOperation.cpp b/source/blender/compositor/operations/COM_ChannelMatteOperation.cpp
index b2de934e6d8..234a1c7b1e5 100644
--- a/source/blender/compositor/operations/COM_ChannelMatteOperation.cpp
+++ b/source/blender/compositor/operations/COM_ChannelMatteOperation.cpp
@@ -83,7 +83,7 @@ void ChannelMatteOperation::deinitExecution()
this->m_inputImageProgram = NULL;
}
-void ChannelMatteOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ChannelMatteOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inColor[4];
float alpha;
@@ -92,7 +92,7 @@ void ChannelMatteOperation::executePixel(float *outputValue, float x, float y, P
const float limit_min = this->m_limit_min;
const float limit_range = this->m_limit_range;
- this->m_inputImageProgram->read(inColor, x, y, sampler, inputBuffers);
+ this->m_inputImageProgram->read(inColor, x, y, sampler);
/* matte operation */
alpha = inColor[this->m_ids[0]] - max(inColor[this->m_ids[1]], inColor[this->m_ids[2]]);
@@ -100,7 +100,7 @@ void ChannelMatteOperation::executePixel(float *outputValue, float x, float y, P
/* flip because 0.0 is transparent, not 1.0 */
alpha = 1.0f - alpha;
- /* test range*/
+ /* test range */
if (alpha > limit_max) {
alpha = inColor[3]; /*whatever it was prior */
}
@@ -116,6 +116,6 @@ void ChannelMatteOperation::executePixel(float *outputValue, float x, float y, P
*/
/* don't make something that was more transparent less transparent */
- outputValue[0] = min(alpha, inColor[3]);
+ output[0] = min(alpha, inColor[3]);
}
diff --git a/source/blender/compositor/operations/COM_ChannelMatteOperation.h b/source/blender/compositor/operations/COM_ChannelMatteOperation.h
index ee17036a78d..17f84965f63 100644
--- a/source/blender/compositor/operations/COM_ChannelMatteOperation.h
+++ b/source/blender/compositor/operations/COM_ChannelMatteOperation.h
@@ -59,7 +59,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_ChromaMatteOperation.cpp b/source/blender/compositor/operations/COM_ChromaMatteOperation.cpp
index e88feb6db9c..c2406abaa65 100644
--- a/source/blender/compositor/operations/COM_ChromaMatteOperation.cpp
+++ b/source/blender/compositor/operations/COM_ChromaMatteOperation.cpp
@@ -44,7 +44,7 @@ void ChromaMatteOperation::deinitExecution()
this->m_inputKeyProgram = NULL;
}
-void ChromaMatteOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ChromaMatteOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inKey[4];
float inImage[4];
@@ -57,15 +57,15 @@ void ChromaMatteOperation::executePixel(float *outputValue, float x, float y, Pi
float theta, beta;
float kfg;
- this->m_inputKeyProgram->read(inKey, x, y, sampler, inputBuffers);
- this->m_inputImageProgram->read(inImage, x, y, sampler, inputBuffers);
+ this->m_inputKeyProgram->read(inKey, x, y, sampler);
+ this->m_inputImageProgram->read(inImage, x, y, sampler);
/* store matte(alpha) value in [0] to go with
* COM_SetAlphaOperation and the Value output
*/
/* Algorithm from book "Video Demistified," does not include the spill reduction part */
- /* find theta, the angle that the color space should be rotated based on key*/
+ /* find theta, the angle that the color space should be rotated based on key */
theta = atan2(inKey[2], inKey[1]);
/*rotate the cb and cr into x/z space */
@@ -88,14 +88,14 @@ void ChromaMatteOperation::executePixel(float *outputValue, float x, float y, Pi
/* don't make something that was more transparent less transparent */
if (alpha < inImage[3]) {
- outputValue[0] = alpha;
+ output[0] = alpha;
}
else {
- outputValue[0] = inImage[3];
+ output[0] = inImage[3];
}
}
else { /*pixel is outside key color */
- outputValue[0] = inImage[3]; /* make pixel just as transparent as it was before */
+ output[0] = inImage[3]; /* make pixel just as transparent as it was before */
}
}
diff --git a/source/blender/compositor/operations/COM_ChromaMatteOperation.h b/source/blender/compositor/operations/COM_ChromaMatteOperation.h
index eaca05e66ca..adebb7a30c2 100644
--- a/source/blender/compositor/operations/COM_ChromaMatteOperation.h
+++ b/source/blender/compositor/operations/COM_ChromaMatteOperation.h
@@ -42,7 +42,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.cpp b/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.cpp
index 66ce86234b7..aa4d0932c92 100644
--- a/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.cpp
+++ b/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.cpp
@@ -49,22 +49,22 @@ void ColorBalanceASCCDLOperation::initExecution()
this->m_inputColorOperation = this->getInputSocketReader(1);
}
-void ColorBalanceASCCDLOperation::executePixel(float *outputColor, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ColorBalanceASCCDLOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor[4];
float value[4];
- this->m_inputValueOperation->read(value, x, y, sampler, inputBuffers);
- this->m_inputColorOperation->read(inputColor, x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(value, x, y, sampler);
+ this->m_inputColorOperation->read(inputColor, x, y, sampler);
float fac = value[0];
fac = min(1.0f, fac);
const float mfac = 1.0f - fac;
- outputColor[0] = mfac * inputColor[0] + fac *colorbalance_cdl(inputColor[0], this->m_lift[0], this->m_gamma[0], this->m_gain[0]);
- outputColor[1] = mfac * inputColor[1] + fac *colorbalance_cdl(inputColor[1], this->m_lift[1], this->m_gamma[1], this->m_gain[1]);
- outputColor[2] = mfac * inputColor[2] + fac *colorbalance_cdl(inputColor[2], this->m_lift[2], this->m_gamma[2], this->m_gain[2]);
- outputColor[3] = inputColor[3];
+ output[0] = mfac * inputColor[0] + fac * colorbalance_cdl(inputColor[0], this->m_lift[0], this->m_gamma[0], this->m_gain[0]);
+ output[1] = mfac * inputColor[1] + fac * colorbalance_cdl(inputColor[1], this->m_lift[1], this->m_gamma[1], this->m_gain[1]);
+ output[2] = mfac * inputColor[2] + fac * colorbalance_cdl(inputColor[2], this->m_lift[2], this->m_gamma[2], this->m_gain[2]);
+ output[3] = inputColor[3];
}
diff --git a/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.h b/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.h
index a9c0dff9ad4..17fb5f67be9 100644
--- a/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.h
+++ b/source/blender/compositor/operations/COM_ColorBalanceASCCDLOperation.h
@@ -49,7 +49,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.cpp b/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.cpp
index 13863a9ec5a..7e9c10df0a9 100644
--- a/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.cpp
+++ b/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.cpp
@@ -54,22 +54,22 @@ void ColorBalanceLGGOperation::initExecution()
this->m_inputColorOperation = this->getInputSocketReader(1);
}
-void ColorBalanceLGGOperation::executePixel(float *outputColor, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ColorBalanceLGGOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor[4];
float value[4];
- this->m_inputValueOperation->read(value, x, y, sampler, inputBuffers);
- this->m_inputColorOperation->read(inputColor, x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(value, x, y, sampler);
+ this->m_inputColorOperation->read(inputColor, x, y, sampler);
float fac = value[0];
fac = min(1.0f, fac);
const float mfac = 1.0f - fac;
- outputColor[0] = mfac * inputColor[0] + fac *colorbalance_lgg(inputColor[0], this->m_lift[0], this->m_gamma_inv[0], this->m_gain[0]);
- outputColor[1] = mfac * inputColor[1] + fac *colorbalance_lgg(inputColor[1], this->m_lift[1], this->m_gamma_inv[1], this->m_gain[1]);
- outputColor[2] = mfac * inputColor[2] + fac *colorbalance_lgg(inputColor[2], this->m_lift[2], this->m_gamma_inv[2], this->m_gain[2]);
- outputColor[3] = inputColor[3];
+ output[0] = mfac * inputColor[0] + fac * colorbalance_lgg(inputColor[0], this->m_lift[0], this->m_gamma_inv[0], this->m_gain[0]);
+ output[1] = mfac * inputColor[1] + fac * colorbalance_lgg(inputColor[1], this->m_lift[1], this->m_gamma_inv[1], this->m_gain[1]);
+ output[2] = mfac * inputColor[2] + fac * colorbalance_lgg(inputColor[2], this->m_lift[2], this->m_gamma_inv[2], this->m_gain[2]);
+ output[3] = inputColor[3];
}
diff --git a/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.h b/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.h
index ffc78fae6f1..edc824475c2 100644
--- a/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.h
+++ b/source/blender/compositor/operations/COM_ColorBalanceLGGOperation.h
@@ -50,7 +50,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp b/source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp
index 8008866752f..b7a3f43237a 100644
--- a/source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp
+++ b/source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp
@@ -40,12 +40,12 @@ void ColorCorrectionOperation::initExecution()
this->m_inputMask = this->getInputSocketReader(1);
}
-void ColorCorrectionOperation::executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ColorCorrectionOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputImageColor[4];
float inputMask[4];
- this->m_inputImage->read(inputImageColor, x, y, sampler, inputBuffers);
- this->m_inputMask->read(inputMask, x, y, sampler, inputBuffers);
+ this->m_inputImage->read(inputImageColor, x, y, sampler);
+ this->m_inputMask->read(inputMask, x, y, sampler);
float level = (inputImageColor[0] + inputImageColor[1] + inputImageColor[2]) / 3.0f;
float contrast = this->m_data->master.contrast;
diff --git a/source/blender/compositor/operations/COM_ColorCorrectionOperation.h b/source/blender/compositor/operations/COM_ColorCorrectionOperation.h
index 8db3870709e..018e67b7ada 100644
--- a/source/blender/compositor/operations/COM_ColorCorrectionOperation.h
+++ b/source/blender/compositor/operations/COM_ColorCorrectionOperation.h
@@ -44,7 +44,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ColorCurveOperation.cpp b/source/blender/compositor/operations/COM_ColorCurveOperation.cpp
index 9848d191c04..2f13a90c072 100644
--- a/source/blender/compositor/operations/COM_ColorCurveOperation.cpp
+++ b/source/blender/compositor/operations/COM_ColorCurveOperation.cpp
@@ -58,47 +58,51 @@ void ColorCurveOperation::initExecution()
}
-void ColorCurveOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ColorCurveOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
CurveMapping *cumap = this->m_curveMapping;
- CurveMapping *workingCopy = (CurveMapping *)MEM_dupallocN(cumap);
- float black[4];
- float white[4];
float fac[4];
float image[4];
- this->m_inputBlackProgram->read(black, x, y, sampler, inputBuffers);
- this->m_inputWhiteProgram->read(white, x, y, sampler, inputBuffers);
+ /* local versions of cumap->black, cumap->white, cumap->bwmul */
+ float black[4];
+ float white[4];
+ float bwmul[3];
+
+ this->m_inputBlackProgram->read(black, x, y, sampler);
+ this->m_inputWhiteProgram->read(white, x, y, sampler);
- curvemapping_set_black_white(workingCopy, black, white);
+ /* get our own local bwmul value,
+ * since we can't be threadsafe and use cumap->bwmul & friends */
+ curvemapping_set_black_white_ex(black, white, bwmul);
- this->m_inputFacProgram->read(fac, x, y, sampler, inputBuffers);
- this->m_inputImageProgram->read(image, x, y, sampler, inputBuffers);
+ this->m_inputFacProgram->read(fac, x, y, sampler);
+ this->m_inputImageProgram->read(image, x, y, sampler);
- if (*fac >= 1.0f)
- curvemapping_evaluate_premulRGBF(workingCopy, color, image);
+ if (*fac >= 1.0f) {
+ curvemapping_evaluate_premulRGBF_ex(cumap, output, image,
+ black, bwmul);
+ }
else if (*fac <= 0.0f) {
- copy_v3_v3(color, image);
+ copy_v3_v3(output, image);
}
else {
- float col[4], mfac = 1.0f - *fac;
- curvemapping_evaluate_premulRGBF(workingCopy, col, image);
- color[0] = mfac * image[0] + *fac * col[0];
- color[1] = mfac * image[1] + *fac * col[1];
- color[2] = mfac * image[2] + *fac * col[2];
+ float col[4];
+ curvemapping_evaluate_premulRGBF_ex(cumap, col, image,
+ black, bwmul);
+ interp_v3_v3v3(output, image, col, *fac);
}
- color[3] = image[3];
- MEM_freeN(workingCopy);
+ output[3] = image[3];
}
void ColorCurveOperation::deinitExecution()
{
+ CurveBaseOperation::deinitExecution();
this->m_inputFacProgram = NULL;
this->m_inputImageProgram = NULL;
this->m_inputBlackProgram = NULL;
this->m_inputWhiteProgram = NULL;
- curvemapping_premultiply(this->m_curveMapping, 1);
}
@@ -126,33 +130,31 @@ void ConstantLevelColorCurveOperation::initExecution()
curvemapping_set_black_white(this->m_curveMapping, this->m_black, this->m_white);
}
-void ConstantLevelColorCurveOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConstantLevelColorCurveOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float fac[4];
float image[4];
+ this->m_inputFacProgram->read(fac, x, y, sampler);
+ this->m_inputImageProgram->read(image, x, y, sampler);
- this->m_inputFacProgram->read(fac, x, y, sampler, inputBuffers);
- this->m_inputImageProgram->read(image, x, y, sampler, inputBuffers);
-
- if (*fac >= 1.0f)
- curvemapping_evaluate_premulRGBF(this->m_curveMapping, color, image);
+ if (*fac >= 1.0f) {
+ curvemapping_evaluate_premulRGBF(this->m_curveMapping, output, image);
+ }
else if (*fac <= 0.0f) {
- copy_v3_v3(color, image);
+ copy_v3_v3(output, image);
}
else {
- float col[4], mfac = 1.0f - *fac;
+ float col[4];
curvemapping_evaluate_premulRGBF(this->m_curveMapping, col, image);
- color[0] = mfac * image[0] + *fac * col[0];
- color[1] = mfac * image[1] + *fac * col[1];
- color[2] = mfac * image[2] + *fac * col[2];
+ interp_v3_v3v3(output, image, col, *fac);
}
- color[3] = image[3];
+ output[3] = image[3];
}
void ConstantLevelColorCurveOperation::deinitExecution()
{
+ CurveBaseOperation::deinitExecution();
this->m_inputFacProgram = NULL;
this->m_inputImageProgram = NULL;
- curvemapping_premultiply(this->m_curveMapping, 1);
}
diff --git a/source/blender/compositor/operations/COM_ColorCurveOperation.h b/source/blender/compositor/operations/COM_ColorCurveOperation.h
index 3bcbc31650c..7dc1913b85a 100644
--- a/source/blender/compositor/operations/COM_ColorCurveOperation.h
+++ b/source/blender/compositor/operations/COM_ColorCurveOperation.h
@@ -41,7 +41,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
@@ -70,7 +70,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
@@ -82,8 +82,8 @@ public:
*/
void deinitExecution();
- void setBlackLevel(float black[3]) { this->m_black[0] = black[0]; this->m_black[1] = black[1]; this->m_black[2] = black[2]; }
- void setWhiteLevel(float white[3]) { this->m_white[0] = white[0]; this->m_white[1] = white[1]; this->m_white[2] = white[2]; }
+ void setBlackLevel(float black[3]) { copy_v3_v3(this->m_black, black); }
+ void setWhiteLevel(float white[3]) { copy_v3_v3(this->m_white, white); }
};
#endif
diff --git a/source/blender/compositor/operations/COM_ColorMatteOperation.cpp b/source/blender/compositor/operations/COM_ColorMatteOperation.cpp
index 4a01499b060..d73196e42f5 100644
--- a/source/blender/compositor/operations/COM_ColorMatteOperation.cpp
+++ b/source/blender/compositor/operations/COM_ColorMatteOperation.cpp
@@ -44,7 +44,7 @@ void ColorMatteOperation::deinitExecution()
this->m_inputKeyProgram = NULL;
}
-void ColorMatteOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ColorMatteOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inColor[4];
float inKey[4];
@@ -55,8 +55,8 @@ void ColorMatteOperation::executePixel(float *outputValue, float x, float y, Pix
float h_wrap;
- this->m_inputImageProgram->read(inColor, x, y, sampler, inputBuffers);
- this->m_inputKeyProgram->read(inKey, x, y, sampler, inputBuffers);
+ this->m_inputImageProgram->read(inColor, x, y, sampler);
+ this->m_inputKeyProgram->read(inKey, x, y, sampler);
/* store matte(alpha) value in [0] to go with
@@ -75,11 +75,11 @@ void ColorMatteOperation::executePixel(float *outputValue, float x, float y, Pix
/* hue */ ((h_wrap = 2.f * fabsf(inColor[0] - inKey[0])) < hue || (2.f - h_wrap) < hue)
)
{
- outputValue[0] = 0.0f; /*make transparent*/
+ output[0] = 0.0f; /* make transparent */
}
else { /*pixel is outside key color */
- outputValue[0] = inColor[3]; /* make pixel just as transparent as it was before */
+ output[0] = inColor[3]; /* make pixel just as transparent as it was before */
}
}
diff --git a/source/blender/compositor/operations/COM_ColorMatteOperation.h b/source/blender/compositor/operations/COM_ColorMatteOperation.h
index d996ce34667..582a94e1873 100644
--- a/source/blender/compositor/operations/COM_ColorMatteOperation.h
+++ b/source/blender/compositor/operations/COM_ColorMatteOperation.h
@@ -42,7 +42,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_ColorRampOperation.cpp b/source/blender/compositor/operations/COM_ColorRampOperation.cpp
index 95dca0dc410..1618c83aece 100644
--- a/source/blender/compositor/operations/COM_ColorRampOperation.cpp
+++ b/source/blender/compositor/operations/COM_ColorRampOperation.cpp
@@ -43,12 +43,12 @@ void ColorRampOperation::initExecution()
this->m_inputProgram = this->getInputSocketReader(0);
}
-void ColorRampOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ColorRampOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float values[4];
- this->m_inputProgram->read(values, x, y, sampler, inputBuffers);
- do_colorband(this->m_colorBand, values[0], color);
+ this->m_inputProgram->read(values, x, y, sampler);
+ do_colorband(this->m_colorBand, values[0], output);
}
void ColorRampOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ColorRampOperation.h b/source/blender/compositor/operations/COM_ColorRampOperation.h
index 42bc6b943b7..96d9a525e1e 100644
--- a/source/blender/compositor/operations/COM_ColorRampOperation.h
+++ b/source/blender/compositor/operations/COM_ColorRampOperation.h
@@ -38,7 +38,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ColorSpillOperation.cpp b/source/blender/compositor/operations/COM_ColorSpillOperation.cpp
index e2773f3a6b4..152b10709fb 100644
--- a/source/blender/compositor/operations/COM_ColorSpillOperation.cpp
+++ b/source/blender/compositor/operations/COM_ColorSpillOperation.cpp
@@ -84,22 +84,22 @@ void ColorSpillOperation::deinitExecution()
this->m_inputFacReader = NULL;
}
-void ColorSpillOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ColorSpillOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float fac[4];
float input[4];
- this->m_inputFacReader->read(fac, x, y, sampler, inputBuffers);
- this->m_inputImageReader->read(input, x, y, sampler, inputBuffers);
+ this->m_inputFacReader->read(fac, x, y, sampler);
+ this->m_inputImageReader->read(input, x, y, sampler);
float rfac = min(1.0f, fac[0]);
float map = calculateMapValue(rfac, input);
if (map > 0.0f) {
- outputValue[0] = input[0] + this->m_rmut * (this->m_settings->uspillr * map);
- outputValue[1] = input[1] + this->m_gmut * (this->m_settings->uspillg * map);
- outputValue[2] = input[2] + this->m_bmut * (this->m_settings->uspillb * map);
- outputValue[3] = input[3];
+ output[0] = input[0] + this->m_rmut * (this->m_settings->uspillr * map);
+ output[1] = input[1] + this->m_gmut * (this->m_settings->uspillg * map);
+ output[2] = input[2] + this->m_bmut * (this->m_settings->uspillb * map);
+ output[3] = input[3];
}
else {
- copy_v4_v4(outputValue, input);
+ copy_v4_v4(output, input);
}
}
float ColorSpillOperation::calculateMapValue(float fac, float *input)
diff --git a/source/blender/compositor/operations/COM_ColorSpillOperation.h b/source/blender/compositor/operations/COM_ColorSpillOperation.h
index 7aac612cb8c..94ff78c37b2 100644
--- a/source/blender/compositor/operations/COM_ColorSpillOperation.h
+++ b/source/blender/compositor/operations/COM_ColorSpillOperation.h
@@ -46,7 +46,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_CombineChannelsOperation.cpp b/source/blender/compositor/operations/COM_CombineChannelsOperation.cpp
index 9f175a381a4..3ced0548bb8 100644
--- a/source/blender/compositor/operations/COM_CombineChannelsOperation.cpp
+++ b/source/blender/compositor/operations/COM_CombineChannelsOperation.cpp
@@ -37,30 +37,6 @@ CombineChannelsOperation::CombineChannelsOperation() : NodeOperation()
this->m_inputChannel4Operation = NULL;
}
-bool CombineChannelsOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
-{
- rcti tempOutput;
- bool first = true;
- for (int i = 0 ; i < 4 ; i ++) {
- NodeOperation * inputOperation = this->getInputOperation(i);
- if (inputOperation->determineDependingAreaOfInterest(input, readOperation, &tempOutput)) {
- if (first) {
- output->xmin = tempOutput.xmin;
- output->ymin = tempOutput.ymin;
- output->xmax = tempOutput.xmax;
- output->ymax = tempOutput.ymax;
- first = false;
- } else {
- output->xmin = MIN2(output->xmin, tempOutput.xmin);
- output->ymin = MIN2(output->ymin, tempOutput.ymin);
- output->xmax = MAX2(output->xmax, tempOutput.xmax);
- output->ymax = MAX2(output->ymax, tempOutput.ymax);
- }
- }
- }
- return !first;
-}
-
void CombineChannelsOperation::initExecution()
{
this->m_inputChannel1Operation = this->getInputSocketReader(0);
@@ -78,24 +54,23 @@ void CombineChannelsOperation::deinitExecution()
}
-void CombineChannelsOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void CombineChannelsOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float input[4];
- /// @todo: remove if statements
if (this->m_inputChannel1Operation) {
- this->m_inputChannel1Operation->read(input, x, y, sampler, inputBuffers);
- color[0] = input[0];
+ this->m_inputChannel1Operation->read(input, x, y, sampler);
+ output[0] = input[0];
}
if (this->m_inputChannel2Operation) {
- this->m_inputChannel2Operation->read(input, x, y, sampler, inputBuffers);
- color[1] = input[0];
+ this->m_inputChannel2Operation->read(input, x, y, sampler);
+ output[1] = input[0];
}
if (this->m_inputChannel3Operation) {
- this->m_inputChannel3Operation->read(input, x, y, sampler, inputBuffers);
- color[2] = input[0];
+ this->m_inputChannel3Operation->read(input, x, y, sampler);
+ output[2] = input[0];
}
if (this->m_inputChannel4Operation) {
- this->m_inputChannel4Operation->read(input, x, y, sampler, inputBuffers);
- color[3] = input[0];
+ this->m_inputChannel4Operation->read(input, x, y, sampler);
+ output[3] = input[0];
}
}
diff --git a/source/blender/compositor/operations/COM_CombineChannelsOperation.h b/source/blender/compositor/operations/COM_CombineChannelsOperation.h
index 8e4c2120614..7c8742b1557 100644
--- a/source/blender/compositor/operations/COM_CombineChannelsOperation.h
+++ b/source/blender/compositor/operations/COM_CombineChannelsOperation.h
@@ -33,12 +33,10 @@ private:
SocketReader *m_inputChannel4Operation;
public:
CombineChannelsOperation();
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
-
- bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
};
#endif
diff --git a/source/blender/compositor/operations/COM_CompositorOperation.cpp b/source/blender/compositor/operations/COM_CompositorOperation.cpp
index 717b6ce76cc..141d071dddc 100644
--- a/source/blender/compositor/operations/COM_CompositorOperation.cpp
+++ b/source/blender/compositor/operations/COM_CompositorOperation.cpp
@@ -23,10 +23,10 @@
#include "COM_CompositorOperation.h"
#include "COM_SocketConnection.h"
#include "BLI_listbase.h"
-#include "DNA_scene_types.h"
#include "BKE_image.h"
extern "C" {
+ #include "BLI_threads.h"
#include "RE_pipeline.h"
#include "RE_shader_ext.h"
#include "RE_render_ext.h"
@@ -40,11 +40,16 @@ CompositorOperation::CompositorOperation() : NodeOperation()
{
this->addInputSocket(COM_DT_COLOR);
this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
this->setRenderData(NULL);
this->m_outputBuffer = NULL;
+ this->m_depthBuffer = NULL;
this->m_imageInput = NULL;
this->m_alphaInput = NULL;
+ this->m_depthInput = NULL;
+
+ this->m_sceneName[0] = '\0';
}
void CompositorOperation::initExecution()
@@ -52,30 +57,43 @@ void CompositorOperation::initExecution()
// When initializing the tree during initial load the width and height can be zero.
this->m_imageInput = getInputSocketReader(0);
this->m_alphaInput = getInputSocketReader(1);
+ this->m_depthInput = getInputSocketReader(2);
if (this->getWidth() * this->getHeight() != 0) {
this->m_outputBuffer = (float *) MEM_callocN(this->getWidth() * this->getHeight() * 4 * sizeof(float), "CompositorOperation");
}
+ if (this->m_depthInput != NULL) {
+ this->m_depthBuffer = (float *) MEM_callocN(this->getWidth() * this->getHeight() * sizeof(float), "CompositorOperation");
+ }
}
void CompositorOperation::deinitExecution()
{
if (!isBreaked()) {
- const RenderData *rd = this->m_rd;
- Render *re = RE_GetRender_FromData(rd);
+ Render *re = RE_GetRender(this->m_sceneName);
RenderResult *rr = RE_AcquireResultWrite(re);
+
if (rr) {
if (rr->rectf != NULL) {
MEM_freeN(rr->rectf);
}
rr->rectf = this->m_outputBuffer;
+ if (rr->rectz != NULL) {
+ MEM_freeN(rr->rectz);
+ }
+ rr->rectz = this->m_depthBuffer;
}
else {
if (this->m_outputBuffer) {
MEM_freeN(this->m_outputBuffer);
}
+ if (this->m_depthBuffer) {
+ MEM_freeN(this->m_depthBuffer);
+ }
}
+ BLI_lock_thread(LOCK_DRAW_IMAGE);
BKE_image_signal(BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result"), NULL, IMA_SIGNAL_FREE);
+ BLI_unlock_thread(LOCK_DRAW_IMAGE);
if (re) {
RE_ReleaseResult(re);
@@ -86,53 +104,68 @@ void CompositorOperation::deinitExecution()
if (this->m_outputBuffer) {
MEM_freeN(this->m_outputBuffer);
}
+ if (this->m_depthBuffer) {
+ MEM_freeN(this->m_depthBuffer);
+ }
}
this->m_outputBuffer = NULL;
+ this->m_depthBuffer = NULL;
this->m_imageInput = NULL;
this->m_alphaInput = NULL;
+ this->m_depthInput = NULL;
}
-void CompositorOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers)
+void CompositorOperation::executeRegion(rcti *rect, unsigned int tileNumber)
{
float color[8]; // 7 is enough
float *buffer = this->m_outputBuffer;
+ float *zbuffer = this->m_depthBuffer;
if (!buffer) return;
int x1 = rect->xmin;
int y1 = rect->ymin;
int x2 = rect->xmax;
int y2 = rect->ymax;
- int offset = (y1 * this->getWidth() + x1) * COM_NUMBER_OF_CHANNELS;
+ int offset = (y1 * this->getWidth() + x1);
+ int add = (this->getWidth() - (x2 - x1));
+ int offset4 = offset * COM_NUMBER_OF_CHANNELS;
int x;
int y;
bool breaked = false;
for (y = y1; y < y2 && (!breaked); y++) {
for (x = x1; x < x2 && (!breaked); x++) {
- this->m_imageInput->read(color, x, y, COM_PS_NEAREST, memoryBuffers);
+ this->m_imageInput->read(color, x, y, COM_PS_NEAREST);
if (this->m_alphaInput != NULL) {
- this->m_alphaInput->read(&(color[3]), x, y, COM_PS_NEAREST, memoryBuffers);
+ this->m_alphaInput->read(&(color[3]), x, y, COM_PS_NEAREST);
+ }
+ copy_v4_v4(buffer + offset4, color);
+
+ if (this->m_depthInput != NULL) {
+ this->m_depthInput->read(color, x, y, COM_PS_NEAREST);
+ zbuffer[offset] = color[0];
}
- copy_v4_v4(buffer + offset, color);
- offset += COM_NUMBER_OF_CHANNELS;
+ offset4 += COM_NUMBER_OF_CHANNELS;
+ offset++;
if (isBreaked()) {
breaked = true;
}
}
- offset += (this->getWidth() - (x2 - x1)) * COM_NUMBER_OF_CHANNELS;
+ offset += add;
+ offset4 += add * COM_NUMBER_OF_CHANNELS;
}
}
-void CompositorOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void CompositorOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
int width = this->m_rd->xsch * this->m_rd->size / 100;
int height = this->m_rd->ysch * this->m_rd->size / 100;
// check actual render resolution with cropping it may differ with cropped border.rendering
// FIX for: [31777] Border Crop gives black (easy)
- Render *re = RE_GetRender_FromData(this->m_rd);
+ Render *re = RE_GetRender(this->m_sceneName);
if (re) {
RenderResult *rr = RE_AcquireResultRead(re);
if (rr) {
diff --git a/source/blender/compositor/operations/COM_CompositorOperation.h b/source/blender/compositor/operations/COM_CompositorOperation.h
index 2719d376339..c1d91c16a3c 100644
--- a/source/blender/compositor/operations/COM_CompositorOperation.h
+++ b/source/blender/compositor/operations/COM_CompositorOperation.h
@@ -23,8 +23,8 @@
#ifndef _COM_CompositorOperation_h
#define _COM_CompositorOperation_h
#include "COM_NodeOperation.h"
-#include "DNA_scene_types.h"
#include "BLI_rect.h"
+#include "BLI_string.h"
/**
* @brief Compositor output operation
@@ -32,6 +32,11 @@
class CompositorOperation : public NodeOperation {
private:
/**
+ * @brief Scene name, used for getting the render output, includes 'SC' prefix.
+ */
+ char m_sceneName[MAX_ID_NAME];
+
+ /**
* @brief local reference to the scene
*/
const RenderData *m_rd;
@@ -42,6 +47,11 @@ private:
float *m_outputBuffer;
/**
+ * @brief reference to the output depth float buffer
+ */
+ float *m_depthBuffer;
+
+ /**
* @brief local reference to the input image operation
*/
SocketReader *m_imageInput;
@@ -50,14 +60,20 @@ private:
* @brief local reference to the input alpha operation
*/
SocketReader *m_alphaInput;
+
+ /**
+ * @brief local reference to the depth operation
+ */
+ SocketReader *m_depthInput;
public:
CompositorOperation();
- void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers);
+ void executeRegion(rcti *rect, unsigned int tileNumber);
+ void setSceneName(const char *sceneName) { BLI_strncpy(this->m_sceneName, sceneName, sizeof(this->m_sceneName)); }
void setRenderData(const RenderData *rd) { this->m_rd = rd; }
bool isOutputOperation(bool rendering) const { return true; }
void initExecution();
void deinitExecution();
const CompositorPriority getRenderPriority() const { return COM_PRIORITY_MEDIUM; }
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
};
#endif
diff --git a/source/blender/compositor/operations/COM_ConvertColorProfileOperation.cpp b/source/blender/compositor/operations/COM_ConvertColorProfileOperation.cpp
index 4d829eae7a0..79ce149e790 100644
--- a/source/blender/compositor/operations/COM_ConvertColorProfileOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertColorProfileOperation.cpp
@@ -38,11 +38,11 @@ void ConvertColorProfileOperation::initExecution()
this->m_inputOperation = this->getInputSocketReader(0);
}
-void ConvertColorProfileOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertColorProfileOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float color[4];
- this->m_inputOperation->read(color, x, y, sampler, inputBuffers);
- IMB_buffer_float_from_float(outputValue, color, 4, this->m_toProfile, this->m_fromProfile, this->m_predivided, 1, 1, 0, 0);
+ this->m_inputOperation->read(color, x, y, sampler);
+ IMB_buffer_float_from_float(output, color, 4, this->m_toProfile, this->m_fromProfile, this->m_predivided, 1, 1, 0, 0);
}
void ConvertColorProfileOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertColorProfileOperation.h b/source/blender/compositor/operations/COM_ConvertColorProfileOperation.h
index b237448d16e..a8cbc613fb8 100644
--- a/source/blender/compositor/operations/COM_ConvertColorProfileOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertColorProfileOperation.h
@@ -59,7 +59,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvertColorToBWOperation.cpp b/source/blender/compositor/operations/COM_ConvertColorToBWOperation.cpp
index a8c57449a2e..9cff5e8eaa6 100644
--- a/source/blender/compositor/operations/COM_ConvertColorToBWOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertColorToBWOperation.cpp
@@ -34,11 +34,11 @@ void ConvertColorToBWOperation::initExecution()
this->m_inputOperation = this->getInputSocketReader(0);
}
-void ConvertColorToBWOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertColorToBWOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor[4];
- this->m_inputOperation->read(&inputColor[0], x, y, sampler, inputBuffers);
- outputValue[0] = rgb_to_bw(inputColor);
+ this->m_inputOperation->read(&inputColor[0], x, y, sampler);
+ output[0] = rgb_to_bw(inputColor);
}
void ConvertColorToBWOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertColorToBWOperation.h b/source/blender/compositor/operations/COM_ConvertColorToBWOperation.h
index 9c62ad8dd39..963bd32a2f6 100644
--- a/source/blender/compositor/operations/COM_ConvertColorToBWOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertColorToBWOperation.h
@@ -44,7 +44,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvertColorToValueProg.cpp b/source/blender/compositor/operations/COM_ConvertColorToValueProg.cpp
index c09842b1aa9..3a65519864a 100644
--- a/source/blender/compositor/operations/COM_ConvertColorToValueProg.cpp
+++ b/source/blender/compositor/operations/COM_ConvertColorToValueProg.cpp
@@ -34,11 +34,11 @@ void ConvertColorToValueProg::initExecution()
this->m_inputOperation = this->getInputSocketReader(0);
}
-void ConvertColorToValueProg::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertColorToValueProg::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor[4];
- this->m_inputOperation->read(&inputColor[0], x, y, sampler, inputBuffers);
- outputValue[0] = (inputColor[0] + inputColor[1] + inputColor[2]) / 3.0f;
+ this->m_inputOperation->read(&inputColor[0], x, y, sampler);
+ output[0] = (inputColor[0] + inputColor[1] + inputColor[2]) / 3.0f;
}
void ConvertColorToValueProg::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertColorToValueProg.h b/source/blender/compositor/operations/COM_ConvertColorToValueProg.h
index c1ac7ca69ce..5c25d5d0540 100644
--- a/source/blender/compositor/operations/COM_ConvertColorToValueProg.h
+++ b/source/blender/compositor/operations/COM_ConvertColorToValueProg.h
@@ -44,7 +44,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.cpp b/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.cpp
index 6c79c4ea6a3..a9b8cbb4272 100644
--- a/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.cpp
@@ -34,9 +34,9 @@ void ConvertColorToVectorOperation::initExecution()
this->m_inputOperation = this->getInputSocketReader(0);
}
-void ConvertColorToVectorOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertColorToVectorOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
- this->m_inputOperation->read(outputValue, x, y, sampler, inputBuffers);
+ this->m_inputOperation->read(output, x, y, sampler);
}
void ConvertColorToVectorOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.h b/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.h
index 51fa3a677cd..93644cb5d1c 100644
--- a/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertColorToVectorOperation.h
@@ -44,7 +44,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp b/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp
index 91b68a90126..88289f12ebb 100644
--- a/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.cpp
@@ -22,6 +22,7 @@
#include "COM_ConvertDepthToRadiusOperation.h"
#include "BLI_math.h"
+#include "BKE_camera.h"
#include "DNA_camera_types.h"
ConvertDepthToRadiusOperation::ConvertDepthToRadiusOperation() : NodeOperation()
@@ -32,69 +33,72 @@ ConvertDepthToRadiusOperation::ConvertDepthToRadiusOperation() : NodeOperation()
this->m_fStop = 128.0f;
this->m_cameraObject = NULL;
this->m_maxRadius = 32.0f;
+ this->m_blurPostOperation = NULL;
}
float ConvertDepthToRadiusOperation::determineFocalDistance()
{
-
- if (this->m_cameraObject == NULL || this->m_cameraObject->type != OB_CAMERA) {
- return 10.0f;
- }
- else {
+ if (this->m_cameraObject && this->m_cameraObject->type == OB_CAMERA) {
Camera *camera = (Camera *)this->m_cameraObject->data;
this->m_cam_lens = camera->lens;
- if (camera->dof_ob) {
- /* too simple, better to return the distance on the view axis only
- * return len_v3v3(ob->obmat[3], cam->dof_ob->obmat[3]); */
- float mat[4][4], imat[4][4], obmat[4][4];
-
- copy_m4_m4(obmat, this->m_cameraObject->obmat);
- normalize_m4(obmat);
- invert_m4_m4(imat, obmat);
- mult_m4_m4m4(mat, imat, camera->dof_ob->obmat);
- return (float)fabs(mat[3][2]);
- }
- return camera->YF_dofdist;
+ return BKE_camera_object_dof_distance(this->m_cameraObject);
+ }
+ else {
+ return 10.0f;
}
}
void ConvertDepthToRadiusOperation::initExecution()
{
+ float cam_sensor = DEFAULT_SENSOR_WIDTH;
+ Camera *camera = NULL;
+
+ if (this->m_cameraObject && this->m_cameraObject->type == OB_CAMERA) {
+ camera = (Camera *)this->m_cameraObject->data;
+ cam_sensor = BKE_camera_sensor_size(camera->sensor_fit, camera->sensor_x, camera->sensor_y);
+ }
+
this->m_inputOperation = this->getInputSocketReader(0);
float focalDistance = determineFocalDistance();
if (focalDistance == 0.0f) focalDistance = 1e10f; /* if the dof is 0.0 then set it be be far away */
- this->m_inverseFocalDistance = 1.f / focalDistance;
+ this->m_inverseFocalDistance = 1.0f / focalDistance;
this->m_aspect = (this->getWidth() > this->getHeight()) ? (this->getHeight() / (float)this->getWidth()) : (this->getWidth() / (float)this->getHeight());
- this->m_aperture = 0.5f * (this->m_cam_lens / (this->m_aspect * 32.0f)) / this->m_fStop;
- float minsz = MIN2(getWidth(), getHeight());
- this->m_dof_sp = (float)minsz / (16.f / this->m_cam_lens); // <- == aspect * MIN2(img->x, img->y) / tan(0.5f * fov);
+ this->m_aperture = 0.5f * (this->m_cam_lens / (this->m_aspect * cam_sensor)) / this->m_fStop;
+ float minsz = min(getWidth(), getHeight());
+ this->m_dof_sp = (float)minsz / ((cam_sensor / 2.0f) / this->m_cam_lens); // <- == aspect * MIN2(img->x, img->y) / tan(0.5f * fov);
+
+ if (this->m_blurPostOperation) {
+ m_blurPostOperation->setSigma(min(m_aperture * 128.0f, this->m_maxRadius));
+ }
}
-void ConvertDepthToRadiusOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertDepthToRadiusOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue[4];
float z;
float radius;
- this->m_inputOperation->read(inputValue, x, y, sampler, inputBuffers);
+ this->m_inputOperation->read(inputValue, x, y, sampler);
z = inputValue[0];
if (z != 0.f) {
float iZ = (1.f / z);
// bug #6656 part 2b, do not rescale
#if 0
- bcrad = 0.5f*fabs(aperture*(dof_sp*(cam_invfdist - iZ) - 1.f));
+ bcrad = 0.5f * fabs(aperture * (dof_sp * (cam_invfdist - iZ) - 1.0f));
// scale crad back to original maximum and blend
- crad->rect[px] = bcrad + wts->rect[px]*(scf*crad->rect[px] - bcrad);
+ crad->rect[px] = bcrad + wts->rect[px] * (scf * crad->rect[px] - bcrad);
#endif
radius = 0.5f * fabsf(this->m_aperture * (this->m_dof_sp * (this->m_inverseFocalDistance - iZ) - 1.f));
// 'bug' #6615, limit minimum radius to 1 pixel, not really a solution, but somewhat mitigates the problem
- if (radius < 0.5f) radius = 0.5f;
+ if (radius < 0.0f) radius = 0.0f;
if (radius > this->m_maxRadius) {
radius = this->m_maxRadius;
}
- outputValue[0] = radius;
+ output[0] = radius;
+ }
+ else {
+ output[0] = 0.0f;
}
- else outputValue[0] = 0.0f;
}
void ConvertDepthToRadiusOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.h b/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.h
index 415befea168..d5a1fd72cbf 100644
--- a/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertDepthToRadiusOperation.h
@@ -24,7 +24,7 @@
#define _COM_ConvertDepthToRadiusOperation_h
#include "COM_NodeOperation.h"
#include "DNA_object_types.h"
-
+#include "COM_FastGaussianBlurOperation.h"
/**
* this program converts an input color to an output value.
* it assumes we are in sRGB color space.
@@ -43,6 +43,8 @@ private:
float m_cam_lens;
float m_dof_sp;
Object *m_cameraObject;
+
+ FastGaussianBlurValueOperation *m_blurPostOperation;
public:
/**
* Default constructor
@@ -52,7 +54,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
@@ -68,5 +70,7 @@ public:
void setMaxRadius(float maxRadius) { this->m_maxRadius = maxRadius; }
void setCameraObject(Object *camera) { this->m_cameraObject = camera; }
float determineFocalDistance();
+ void setPostBlur(FastGaussianBlurValueOperation *operation) {this->m_blurPostOperation = operation;}
+
};
#endif
diff --git a/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.cpp b/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.cpp
index 5149e370208..65907a8e537 100644
--- a/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.cpp
@@ -35,12 +35,12 @@ void ConvertHSVToRGBOperation::initExecution()
this->m_inputOperation = this->getInputSocketReader(0);
}
-void ConvertHSVToRGBOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertHSVToRGBOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor[4];
- this->m_inputOperation->read(inputColor, x, y, sampler, inputBuffers);
- hsv_to_rgb(inputColor[0], inputColor[1], inputColor[2], &outputValue[0], &outputValue[1], &outputValue[2]);
- outputValue[3] = inputColor[3];
+ this->m_inputOperation->read(inputColor, x, y, sampler);
+ hsv_to_rgb_v(inputColor, output);
+ output[3] = inputColor[3];
}
void ConvertHSVToRGBOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.h b/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.h
index 3babbfb7c1d..17419ca2a05 100644
--- a/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertHSVToRGBOperation.h
@@ -44,7 +44,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.cpp b/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.cpp
index b7db0a6a2c7..4497db52a0f 100644
--- a/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.cpp
@@ -35,18 +35,18 @@ void ConvertKeyToPremulOperation::initExecution()
this->m_inputColor = getInputSocketReader(0);
}
-void ConvertKeyToPremulOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertKeyToPremulOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue[4];
float alpha;
- this->m_inputColor->read(inputValue, x, y, sampler, inputBuffers);
+ this->m_inputColor->read(inputValue, x, y, sampler);
alpha = inputValue[3];
- mul_v3_v3fl(outputValue, inputValue, alpha);
+ mul_v3_v3fl(output, inputValue, alpha);
/* never touches the alpha */
- outputValue[3] = alpha;
+ output[3] = alpha;
}
void ConvertKeyToPremulOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.h b/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.h
index 50b39928305..502674e26db 100644
--- a/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertKeyToPremulOperation.h
@@ -40,7 +40,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.cpp b/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.cpp
index 0ba23b2ec2e..b92da4c324f 100644
--- a/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.cpp
@@ -35,23 +35,23 @@ void ConvertPremulToKeyOperation::initExecution()
this->m_inputColor = getInputSocketReader(0);
}
-void ConvertPremulToKeyOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertPremulToKeyOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue[4];
float alpha;
- this->m_inputColor->read(inputValue, x, y, sampler, inputBuffers);
+ this->m_inputColor->read(inputValue, x, y, sampler);
alpha = inputValue[3];
if (fabsf(alpha) < 1e-5f) {
- zero_v3(outputValue);
+ zero_v3(output);
}
else {
- mul_v3_v3fl(outputValue, inputValue, 1.0f / alpha);
+ mul_v3_v3fl(output, inputValue, 1.0f / alpha);
}
/* never touches the alpha */
- outputValue[3] = alpha;
+ output[3] = alpha;
}
void ConvertPremulToKeyOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.h b/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.h
index 173cbb4fc0a..04a9965858d 100644
--- a/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertPremulToKeyOperation.h
@@ -40,7 +40,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.cpp b/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.cpp
index dd5e9907642..3c7a9d5fd50 100644
--- a/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.cpp
@@ -35,12 +35,12 @@ void ConvertRGBToHSVOperation::initExecution()
this->m_inputOperation = this->getInputSocketReader(0);
}
-void ConvertRGBToHSVOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertRGBToHSVOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor[4];
- this->m_inputOperation->read(inputColor, x, y, sampler, inputBuffers);
- rgb_to_hsv(inputColor[0], inputColor[1], inputColor[2], &outputValue[0], &outputValue[1], &outputValue[2]);
- outputValue[3] = inputColor[3];
+ this->m_inputOperation->read(inputColor, x, y, sampler);
+ rgb_to_hsv_v(inputColor, output);
+ output[3] = inputColor[3];
}
void ConvertRGBToHSVOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.h b/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.h
index 42bd439c8c2..fdc8dfed31b 100644
--- a/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertRGBToHSVOperation.h
@@ -44,7 +44,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.cpp b/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.cpp
index 7f41a79b7f4..6f6dffdc72b 100644
--- a/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.cpp
@@ -50,18 +50,18 @@ void ConvertRGBToYCCOperation::setMode(int mode)
}
}
-void ConvertRGBToYCCOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertRGBToYCCOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor[4];
float color[3];
- this->m_inputOperation->read(inputColor, x, y, sampler, inputBuffers);
+ this->m_inputOperation->read(inputColor, x, y, sampler);
rgb_to_ycc(inputColor[0], inputColor[1], inputColor[2], &color[0], &color[1], &color[2], this->m_mode);
/* divided by 255 to normalize for viewing in */
/* R,G,B --> Y,Cb,Cr */
- mul_v3_v3fl(outputValue, color, 1.0f / 255.0f);
- outputValue[3] = inputColor[3];
+ mul_v3_v3fl(output, color, 1.0f / 255.0f);
+ output[3] = inputColor[3];
}
void ConvertRGBToYCCOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.h b/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.h
index 744e0657dc6..3f85555f3bb 100644
--- a/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertRGBToYCCOperation.h
@@ -48,7 +48,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.cpp b/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.cpp
index e87a765f2eb..8ce9e150080 100644
--- a/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.cpp
@@ -34,12 +34,12 @@ void ConvertRGBToYUVOperation::initExecution()
this->m_inputOperation = this->getInputSocketReader(0);
}
-void ConvertRGBToYUVOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertRGBToYUVOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor[4];
- this->m_inputOperation->read(inputColor, x, y, sampler, inputBuffers);
- rgb_to_yuv(inputColor[0], inputColor[1], inputColor[2], &outputValue[0], &outputValue[1], &outputValue[2]);
- outputValue[3] = inputColor[3];
+ this->m_inputOperation->read(inputColor, x, y, sampler);
+ rgb_to_yuv(inputColor[0], inputColor[1], inputColor[2], &output[0], &output[1], &output[2]);
+ output[3] = inputColor[3];
}
void ConvertRGBToYUVOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.h b/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.h
index b470378704e..97d57f657ec 100644
--- a/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertRGBToYUVOperation.h
@@ -43,7 +43,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvertValueToColorProg.cpp b/source/blender/compositor/operations/COM_ConvertValueToColorProg.cpp
index 100a4931d69..98e7650aa56 100644
--- a/source/blender/compositor/operations/COM_ConvertValueToColorProg.cpp
+++ b/source/blender/compositor/operations/COM_ConvertValueToColorProg.cpp
@@ -33,14 +33,12 @@ void ConvertValueToColorProg::initExecution()
this->m_inputProgram = this->getInputSocketReader(0);
}
-void ConvertValueToColorProg::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertValueToColorProg::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue[4];
- this->m_inputProgram->read(inputValue, x, y, sampler, inputBuffers);
- color[0] = inputValue[0];
- color[1] = inputValue[0];
- color[2] = inputValue[0];
- color[3] = 1.0f;
+ this->m_inputProgram->read(inputValue, x, y, sampler);
+ output[0] = output[1] = output[2] = inputValue[0];
+ output[3] = 1.0f;
}
void ConvertValueToColorProg::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertValueToColorProg.h b/source/blender/compositor/operations/COM_ConvertValueToColorProg.h
index d59964dd400..f0f6cfb8fd2 100644
--- a/source/blender/compositor/operations/COM_ConvertValueToColorProg.h
+++ b/source/blender/compositor/operations/COM_ConvertValueToColorProg.h
@@ -37,7 +37,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.cpp b/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.cpp
index 37760fe26d7..411409d263c 100644
--- a/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.cpp
@@ -34,14 +34,14 @@ void ConvertValueToVectorOperation::initExecution()
this->m_inputOperation = this->getInputSocketReader(0);
}
-void ConvertValueToVectorOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertValueToVectorOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float input[4];
- this->m_inputOperation->read(input, x, y, sampler, inputBuffers);
- outputValue[0] = input[0];
- outputValue[1] = input[0];
- outputValue[2] = input[0];
- outputValue[3] = 0.0f;
+ this->m_inputOperation->read(input, x, y, sampler);
+ output[0] = input[0];
+ output[1] = input[0];
+ output[2] = input[0];
+ output[3] = 0.0f;
}
void ConvertValueToVectorOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.h b/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.h
index 0e79c1ff3df..da45848ca34 100644
--- a/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertValueToVectorOperation.h
@@ -44,7 +44,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.cpp b/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.cpp
index 395b96e8b25..78cb706c32d 100644
--- a/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.cpp
@@ -34,10 +34,10 @@ void ConvertVectorToColorOperation::initExecution()
this->m_inputOperation = this->getInputSocketReader(0);
}
-void ConvertVectorToColorOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertVectorToColorOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
- this->m_inputOperation->read(outputValue, x, y, sampler, inputBuffers);
- outputValue[3] = 1.0f;
+ this->m_inputOperation->read(output, x, y, sampler);
+ output[3] = 1.0f;
}
void ConvertVectorToColorOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.h b/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.h
index 8225d03d58e..9ef5f8fece3 100644
--- a/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertVectorToColorOperation.h
@@ -44,7 +44,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.cpp b/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.cpp
index 68842c5a055..a3612414029 100644
--- a/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.cpp
@@ -34,11 +34,11 @@ void ConvertVectorToValueOperation::initExecution()
this->m_inputOperation = this->getInputSocketReader(0);
}
-void ConvertVectorToValueOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertVectorToValueOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float input[4];
- this->m_inputOperation->read(input, x, y, sampler, inputBuffers);
- outputValue[0] = (input[0] + input[1] + input[2]) / 3.0f;
+ this->m_inputOperation->read(input, x, y, sampler);
+ output[0] = (input[0] + input[1] + input[2]) / 3.0f;
}
void ConvertVectorToValueOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.h b/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.h
index a7981e8dc59..e42f235a12b 100644
--- a/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertVectorToValueOperation.h
@@ -44,7 +44,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.cpp b/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.cpp
index 78b7a7af60d..8f9eaf49ea4 100644
--- a/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.cpp
@@ -50,17 +50,17 @@ void ConvertYCCToRGBOperation::setMode(int mode)
}
}
-void ConvertYCCToRGBOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertYCCToRGBOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor[4];
- this->m_inputOperation->read(inputColor, x, y, sampler, inputBuffers);
+ this->m_inputOperation->read(inputColor, x, y, sampler);
/* need to un-normalize the data */
/* R,G,B --> Y,Cb,Cr */
mul_v3_fl(inputColor, 255.0f);
- ycc_to_rgb(inputColor[0], inputColor[1], inputColor[2], &outputValue[0], &outputValue[1], &outputValue[2], this->m_mode);
- outputValue[3] = inputColor[3];
+ ycc_to_rgb(inputColor[0], inputColor[1], inputColor[2], &output[0], &output[1], &output[2], this->m_mode);
+ output[3] = inputColor[3];
}
void ConvertYCCToRGBOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.h b/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.h
index e23dfd8a985..0a8b67e0bee 100644
--- a/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertYCCToRGBOperation.h
@@ -48,7 +48,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.cpp b/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.cpp
index b4393c53b92..197c7f9f043 100644
--- a/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.cpp
@@ -34,12 +34,12 @@ void ConvertYUVToRGBOperation::initExecution()
this->m_inputOperation = this->getInputSocketReader(0);
}
-void ConvertYUVToRGBOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ConvertYUVToRGBOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor[4];
- this->m_inputOperation->read(inputColor, x, y, sampler, inputBuffers);
- yuv_to_rgb(inputColor[0], inputColor[1], inputColor[2], &outputValue[0], &outputValue[1], &outputValue[2]);
- outputValue[3] = inputColor[3];
+ this->m_inputOperation->read(inputColor, x, y, sampler);
+ yuv_to_rgb(inputColor[0], inputColor[1], inputColor[2], &output[0], &output[1], &output[2]);
+ output[3] = inputColor[3];
}
void ConvertYUVToRGBOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.h b/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.h
index 3368e0a24df..ee11ef8df60 100644
--- a/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.h
+++ b/source/blender/compositor/operations/COM_ConvertYUVToRGBOperation.h
@@ -43,7 +43,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp b/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp
index cf3ffe6d8f4..657126d458c 100644
--- a/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.cpp
@@ -28,9 +28,9 @@ ConvolutionEdgeFilterOperation::ConvolutionEdgeFilterOperation() : ConvolutionFi
/* pass */
}
-void ConvolutionEdgeFilterOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void ConvolutionEdgeFilterOperation::executePixel(float output[4], int x, int y, void *data)
{
- float in1[4], in2[4], res1[4], res2[4];
+ float in1[4], in2[4], res1[4] = {0.0}, res2[4] = {0.0};
int x1 = x - 1;
int x2 = x;
@@ -46,61 +46,52 @@ void ConvolutionEdgeFilterOperation::executePixel(float *color, int x, int y, Me
CLAMP(y3, 0, getHeight() - 1);
float value[4];
- this->m_inputValueOperation->read(value, x2, y2, inputBuffers, NULL);
+ this->m_inputValueOperation->read(value, x2, y2, NULL);
float mval = 1.0f - value[0];
-
- res1[0] = 0.0f;
- res1[1] = 0.0f;
- res1[2] = 0.0f;
- res1[3] = 0.0f;
- res2[0] = 0.0f;
- res2[1] = 0.0f;
- res2[2] = 0.0f;
- res2[3] = 0.0f;
-
- this->m_inputOperation->read(in1, x1, y1, inputBuffers, NULL);
+
+ this->m_inputOperation->read(in1, x1, y1, NULL);
madd_v3_v3fl(res1, in1, this->m_filter[0]);
madd_v3_v3fl(res2, in1, this->m_filter[0]);
- this->m_inputOperation->read(in1, x2, y1, inputBuffers, NULL);
+ this->m_inputOperation->read(in1, x2, y1, NULL);
madd_v3_v3fl(res1, in1, this->m_filter[1]);
madd_v3_v3fl(res2, in1, this->m_filter[3]);
- this->m_inputOperation->read(in1, x3, y1, inputBuffers, NULL);
+ this->m_inputOperation->read(in1, x3, y1, NULL);
madd_v3_v3fl(res1, in1, this->m_filter[2]);
madd_v3_v3fl(res2, in1, this->m_filter[6]);
- this->m_inputOperation->read(in1, x1, y2, inputBuffers, NULL);
+ this->m_inputOperation->read(in1, x1, y2, NULL);
madd_v3_v3fl(res1, in1, this->m_filter[3]);
madd_v3_v3fl(res2, in1, this->m_filter[1]);
- this->m_inputOperation->read(in2, x2, y2, inputBuffers, NULL);
+ this->m_inputOperation->read(in2, x2, y2, NULL);
madd_v3_v3fl(res1, in2, this->m_filter[4]);
madd_v3_v3fl(res2, in2, this->m_filter[4]);
- this->m_inputOperation->read(in1, x3, y2, inputBuffers, NULL);
+ this->m_inputOperation->read(in1, x3, y2, NULL);
madd_v3_v3fl(res1, in1, this->m_filter[5]);
madd_v3_v3fl(res2, in1, this->m_filter[7]);
- this->m_inputOperation->read(in1, x1, y3, inputBuffers, NULL);
+ this->m_inputOperation->read(in1, x1, y3, NULL);
madd_v3_v3fl(res1, in1, this->m_filter[6]);
madd_v3_v3fl(res2, in1, this->m_filter[2]);
- this->m_inputOperation->read(in1, x2, y3, inputBuffers, NULL);
+ this->m_inputOperation->read(in1, x2, y3, NULL);
madd_v3_v3fl(res1, in1, this->m_filter[7]);
madd_v3_v3fl(res2, in1, this->m_filter[5]);
- this->m_inputOperation->read(in1, x3, y3, inputBuffers, NULL);
+ this->m_inputOperation->read(in1, x3, y3, NULL);
madd_v3_v3fl(res1, in1, this->m_filter[8]);
madd_v3_v3fl(res2, in1, this->m_filter[8]);
- color[0] = sqrt(res1[0] * res1[0] + res2[0] * res2[0]);
- color[1] = sqrt(res1[1] * res1[1] + res2[1] * res2[1]);
- color[2] = sqrt(res1[2] * res1[2] + res2[2] * res2[2]);
+ output[0] = sqrt(res1[0] * res1[0] + res2[0] * res2[0]);
+ output[1] = sqrt(res1[1] * res1[1] + res2[1] * res2[1]);
+ output[2] = sqrt(res1[2] * res1[2] + res2[2] * res2[2]);
- color[0] = color[0] * value[0] + in2[0] * mval;
- color[1] = color[1] * value[0] + in2[1] * mval;
- color[2] = color[2] * value[0] + in2[2] * mval;
+ output[0] = output[0] * value[0] + in2[0] * mval;
+ output[1] = output[1] * value[0] + in2[1] * mval;
+ output[2] = output[2] * value[0] + in2[2] * mval;
- color[3] = in2[3];
+ output[3] = in2[3];
}
diff --git a/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.h b/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.h
index 92e45c7104f..c666dc2cd42 100644
--- a/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.h
+++ b/source/blender/compositor/operations/COM_ConvolutionEdgeFilterOperation.h
@@ -28,7 +28,7 @@
class ConvolutionEdgeFilterOperation : public ConvolutionFilterOperation {
public:
ConvolutionEdgeFilterOperation();
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
};
#endif
diff --git a/source/blender/compositor/operations/COM_ConvolutionFilterOperation.cpp b/source/blender/compositor/operations/COM_ConvolutionFilterOperation.cpp
index 3840e775fe3..553a9827ffa 100644
--- a/source/blender/compositor/operations/COM_ConvolutionFilterOperation.cpp
+++ b/source/blender/compositor/operations/COM_ConvolutionFilterOperation.cpp
@@ -24,6 +24,8 @@
#include "BLI_utildefines.h"
+#include "MEM_guardedalloc.h"
+
ConvolutionFilterOperation::ConvolutionFilterOperation() : NodeOperation()
{
this->addInputSocket(COM_DT_COLOR);
@@ -42,7 +44,7 @@ void ConvolutionFilterOperation::initExecution()
void ConvolutionFilterOperation::set3x3Filter(float f1, float f2, float f3, float f4, float f5, float f6, float f7, float f8, float f9)
{
- this->m_filter = new float[9];
+ this->m_filter = (float *)MEM_mallocN(sizeof(float) * 9, __func__);
this->m_filter[0] = f1;
this->m_filter[1] = f2;
this->m_filter[2] = f3;
@@ -61,13 +63,13 @@ void ConvolutionFilterOperation::deinitExecution()
this->m_inputOperation = NULL;
this->m_inputValueOperation = NULL;
if (this->m_filter) {
- delete[] this->m_filter;
+ MEM_freeN(this->m_filter);
this->m_filter = NULL;
}
}
-void ConvolutionFilterOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void ConvolutionFilterOperation::executePixel(float output[4], int x, int y, void *data)
{
float in1[4];
float in2[4];
@@ -84,33 +86,33 @@ void ConvolutionFilterOperation::executePixel(float *color, int x, int y, Memory
CLAMP(y2, 0, getHeight() - 1);
CLAMP(y3, 0, getHeight() - 1);
float value[4];
- this->m_inputValueOperation->read(value, x2, y2, inputBuffers, NULL);
+ this->m_inputValueOperation->read(value, x2, y2, NULL);
const float mval = 1.0f - value[0];
- zero_v4(color);
- this->m_inputOperation->read(in1, x1, y1, inputBuffers, NULL);
- madd_v4_v4fl(color, in1, this->m_filter[0]);
- this->m_inputOperation->read(in1, x2, y1, inputBuffers, NULL);
- madd_v4_v4fl(color, in1, this->m_filter[1]);
- this->m_inputOperation->read(in1, x3, y1, inputBuffers, NULL);
- madd_v4_v4fl(color, in1, this->m_filter[2]);
- this->m_inputOperation->read(in1, x1, y2, inputBuffers, NULL);
- madd_v4_v4fl(color, in1, this->m_filter[3]);
- this->m_inputOperation->read(in2, x2, y2, inputBuffers, NULL);
- madd_v4_v4fl(color, in2, this->m_filter[4]);
- this->m_inputOperation->read(in1, x3, y2, inputBuffers, NULL);
- madd_v4_v4fl(color, in1, this->m_filter[5]);
- this->m_inputOperation->read(in1, x1, y3, inputBuffers, NULL);
- madd_v4_v4fl(color, in1, this->m_filter[6]);
- this->m_inputOperation->read(in1, x2, y3, inputBuffers, NULL);
- madd_v4_v4fl(color, in1, this->m_filter[7]);
- this->m_inputOperation->read(in1, x3, y3, inputBuffers, NULL);
- madd_v4_v4fl(color, in1, this->m_filter[8]);
+ zero_v4(output);
+ this->m_inputOperation->read(in1, x1, y1, NULL);
+ madd_v4_v4fl(output, in1, this->m_filter[0]);
+ this->m_inputOperation->read(in1, x2, y1, NULL);
+ madd_v4_v4fl(output, in1, this->m_filter[1]);
+ this->m_inputOperation->read(in1, x3, y1, NULL);
+ madd_v4_v4fl(output, in1, this->m_filter[2]);
+ this->m_inputOperation->read(in1, x1, y2, NULL);
+ madd_v4_v4fl(output, in1, this->m_filter[3]);
+ this->m_inputOperation->read(in2, x2, y2, NULL);
+ madd_v4_v4fl(output, in2, this->m_filter[4]);
+ this->m_inputOperation->read(in1, x3, y2, NULL);
+ madd_v4_v4fl(output, in1, this->m_filter[5]);
+ this->m_inputOperation->read(in1, x1, y3, NULL);
+ madd_v4_v4fl(output, in1, this->m_filter[6]);
+ this->m_inputOperation->read(in1, x2, y3, NULL);
+ madd_v4_v4fl(output, in1, this->m_filter[7]);
+ this->m_inputOperation->read(in1, x3, y3, NULL);
+ madd_v4_v4fl(output, in1, this->m_filter[8]);
- color[0] = color[0] * value[0] + in2[0] * mval;
- color[1] = color[1] * value[0] + in2[1] * mval;
- color[2] = color[2] * value[0] + in2[2] * mval;
- color[3] = color[3] * value[0] + in2[3] * mval;
+ output[0] = output[0] * value[0] + in2[0] * mval;
+ output[1] = output[1] * value[0] + in2[1] * mval;
+ output[2] = output[2] * value[0] + in2[2] * mval;
+ output[3] = output[3] * value[0] + in2[3] * mval;
}
bool ConvolutionFilterOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
diff --git a/source/blender/compositor/operations/COM_ConvolutionFilterOperation.h b/source/blender/compositor/operations/COM_ConvolutionFilterOperation.h
index 0b5dfb4d75a..4c192481ba1 100644
--- a/source/blender/compositor/operations/COM_ConvolutionFilterOperation.h
+++ b/source/blender/compositor/operations/COM_ConvolutionFilterOperation.h
@@ -39,7 +39,7 @@ public:
ConvolutionFilterOperation();
void set3x3Filter(float f1, float f2, float f3, float f4, float f5, float f6, float f7, float f8, float f9);
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_CropOperation.cpp b/source/blender/compositor/operations/COM_CropOperation.cpp
index 0a40f2370c8..c33bd2544ac 100644
--- a/source/blender/compositor/operations/COM_CropOperation.cpp
+++ b/source/blender/compositor/operations/COM_CropOperation.cpp
@@ -73,13 +73,13 @@ CropOperation::CropOperation() : CropBaseOperation()
/* pass */
}
-void CropOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void CropOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
if ((x < this->m_xmax && x >= this->m_xmin) && (y < this->m_ymax && y >= this->m_ymin)) {
- this->m_inputOperation->read(color, x, y, sampler, inputBuffers);
+ this->m_inputOperation->read(output, x, y, sampler);
}
else {
- zero_v4(color);
+ zero_v4(output);
}
}
@@ -100,7 +100,7 @@ bool CropImageOperation::determineDependingAreaOfInterest(rcti *input, ReadBuffe
return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
}
-void CropImageOperation::determineResolution(unsigned int resolution[], unsigned int preferedResolution[])
+void CropImageOperation::determineResolution(unsigned int resolution[2], unsigned int preferedResolution[2])
{
NodeOperation::determineResolution(resolution, preferedResolution);
updateArea();
@@ -108,7 +108,7 @@ void CropImageOperation::determineResolution(unsigned int resolution[], unsigned
resolution[1] = this->m_ymax - this->m_ymin;
}
-void CropImageOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void CropImageOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
- this->m_inputOperation->read(color, (x + this->m_xmin), (y + this->m_ymin), sampler, inputBuffers);
+ this->m_inputOperation->read(output, (x + this->m_xmin), (y + this->m_ymin), sampler);
}
diff --git a/source/blender/compositor/operations/COM_CropOperation.h b/source/blender/compositor/operations/COM_CropOperation.h
index 39dbb8aa873..ddc7f855bf1 100644
--- a/source/blender/compositor/operations/COM_CropOperation.h
+++ b/source/blender/compositor/operations/COM_CropOperation.h
@@ -48,7 +48,7 @@ class CropOperation : public CropBaseOperation {
private:
public:
CropOperation();
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class CropImageOperation : public CropBaseOperation {
@@ -56,8 +56,8 @@ private:
public:
CropImageOperation();
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void determineResolution(unsigned int resolution[], unsigned int preferedResolution[]);
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferedResolution[2]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_CurveBaseOperation.cpp b/source/blender/compositor/operations/COM_CurveBaseOperation.cpp
index 48d2bcd0ef9..36c49859880 100644
--- a/source/blender/compositor/operations/COM_CurveBaseOperation.cpp
+++ b/source/blender/compositor/operations/COM_CurveBaseOperation.cpp
@@ -38,3 +38,17 @@ void CurveBaseOperation::initExecution()
{
curvemapping_initialize(this->m_curveMapping);
}
+void CurveBaseOperation::deinitExecution()
+{
+ curvemapping_free(this->m_curveMapping);
+ this->m_curveMapping = NULL;
+}
+
+void CurveBaseOperation::setCurveMapping(CurveMapping *mapping)
+{
+ /* duplicate the curve to avoid glitches while drawing, see bug [#32374] */
+ if (this->m_curveMapping) {
+ curvemapping_free(this->m_curveMapping);
+ }
+ this->m_curveMapping = curvemapping_copy(mapping);
+}
diff --git a/source/blender/compositor/operations/COM_CurveBaseOperation.h b/source/blender/compositor/operations/COM_CurveBaseOperation.h
index 1636c13a571..6bfce26f532 100644
--- a/source/blender/compositor/operations/COM_CurveBaseOperation.h
+++ b/source/blender/compositor/operations/COM_CurveBaseOperation.h
@@ -38,7 +38,8 @@ public:
* Initialize the execution
*/
void initExecution();
+ void deinitExecution();
- void setCurveMapping(CurveMapping *mapping) { this->m_curveMapping = mapping; }
+ void setCurveMapping(CurveMapping *mapping);
};
#endif
diff --git a/source/blender/compositor/operations/COM_DespeckleOperation.cpp b/source/blender/compositor/operations/COM_DespeckleOperation.cpp
new file mode 100644
index 00000000000..599f54720f2
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DespeckleOperation.cpp
@@ -0,0 +1,139 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor: Campbell Barton
+ */
+
+#include "MEM_guardedalloc.h"
+
+#include "COM_DespeckleOperation.h"
+
+#include "BLI_utildefines.h"
+
+DespeckleOperation::DespeckleOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setResolutionInputSocketIndex(0);
+ this->m_inputOperation = NULL;
+ this->setComplex(true);
+}
+void DespeckleOperation::initExecution()
+{
+ this->m_inputOperation = this->getInputSocketReader(0);
+ this->m_inputValueOperation = this->getInputSocketReader(1);
+}
+
+void DespeckleOperation::deinitExecution()
+{
+ this->m_inputOperation = NULL;
+ this->m_inputValueOperation = NULL;
+}
+
+BLI_INLINE int color_diff(const float a[3], const float b[3], const float threshold)
+{
+ return ((fabsf(a[0] - b[0]) > threshold) ||
+ (fabsf(a[1] - b[1]) > threshold) ||
+ (fabsf(a[2] - b[2]) > threshold));
+}
+
+void DespeckleOperation::executePixel(float output[4], int x, int y, void *data)
+{
+ float w = 0.0f;
+ float color_org[4];
+ float color_mid[4];
+ float color_mid_ok[4];
+ float in1[4];
+ int x1 = x - 1;
+ int x2 = x;
+ int x3 = x + 1;
+ int y1 = y - 1;
+ int y2 = y;
+ int y3 = y + 1;
+ CLAMP(x1, 0, getWidth() - 1);
+ CLAMP(x2, 0, getWidth() - 1);
+ CLAMP(x3, 0, getWidth() - 1);
+ CLAMP(y1, 0, getHeight() - 1);
+ CLAMP(y2, 0, getHeight() - 1);
+ CLAMP(y3, 0, getHeight() - 1);
+ float value[4];
+ this->m_inputValueOperation->read(value, x2, y2, NULL);
+ //const float mval = 1.0f - value[0];
+
+
+ this->m_inputOperation->read(color_org, x2, y2, NULL);
+
+#define TOT_DIV_ONE 1.0f
+#define TOT_DIV_CNR (float)M_SQRT1_2
+
+#define WTOT (TOT_DIV_ONE * 4 + TOT_DIV_CNR * 4)
+
+#define COLOR_ADD(fac) \
+{ \
+ madd_v4_v4fl(color_mid, in1, fac); \
+ if (color_diff(in1, color_org, this->m_threshold)) { \
+ w += fac; \
+ madd_v4_v4fl(color_mid_ok, in1, fac); \
+ } \
+}
+
+ zero_v4(color_mid);
+ zero_v4(color_mid_ok);
+
+ this->m_inputOperation->read(in1, x1, y1, NULL); COLOR_ADD(TOT_DIV_CNR)
+ this->m_inputOperation->read(in1, x2, y1, NULL); COLOR_ADD(TOT_DIV_ONE)
+ this->m_inputOperation->read(in1, x3, y1, NULL); COLOR_ADD(TOT_DIV_CNR)
+ this->m_inputOperation->read(in1, x1, y2, NULL); COLOR_ADD(TOT_DIV_ONE)
+
+#if 0
+ this->m_inputOperation->read(in2, x2, y2, NULL);
+ madd_v4_v4fl(color_mid, in2, this->m_filter[4]);
+#endif
+
+ this->m_inputOperation->read(in1, x3, y2, NULL); COLOR_ADD(TOT_DIV_ONE)
+ this->m_inputOperation->read(in1, x1, y3, NULL); COLOR_ADD(TOT_DIV_CNR)
+ this->m_inputOperation->read(in1, x2, y3, NULL); COLOR_ADD(TOT_DIV_ONE)
+ this->m_inputOperation->read(in1, x3, y3, NULL); COLOR_ADD(TOT_DIV_CNR)
+
+ mul_v4_fl(color_mid, 1.0f / (4.0f + (4.0f * (float)M_SQRT1_2)));
+ //mul_v4_fl(color_mid, 1.0f / w);
+
+ if ((w != 0.0f) &&
+ ((w / WTOT) > (this->m_threshold_neighbour)) &&
+ color_diff(color_mid, color_org, this->m_threshold))
+ {
+ mul_v4_fl(color_mid_ok, 1.0f / w);
+ interp_v4_v4v4(output, color_org, color_mid_ok, value[0]);
+ }
+ else {
+ copy_v4_v4(output, color_org);
+ }
+}
+
+bool DespeckleOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ int addx = 2; //(this->m_filterWidth - 1) / 2 + 1;
+ int addy = 2; //(this->m_filterHeight - 1) / 2 + 1;
+ newInput.xmax = input->xmax + addx;
+ newInput.xmin = input->xmin - addx;
+ newInput.ymax = input->ymax + addy;
+ newInput.ymin = input->ymin - addy;
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
diff --git a/source/blender/compositor/operations/COM_DespeckleOperation.h b/source/blender/compositor/operations/COM_DespeckleOperation.h
new file mode 100644
index 00000000000..99635e61544
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DespeckleOperation.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor: Campbell Barton
+ */
+
+#ifndef _COM_DespeckleOperation_h
+#define _COM_DespeckleOperation_h
+#include "COM_NodeOperation.h"
+
+class DespeckleOperation : public NodeOperation {
+private:
+ float m_threshold;
+ float m_threshold_neighbour;
+
+ // int m_filterWidth;
+ // int m_filterHeight;
+
+protected:
+ SocketReader *m_inputOperation;
+ SocketReader *m_inputValueOperation;
+
+public:
+ DespeckleOperation();
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void executePixel(float output[4], int x, int y, void *data);
+
+ void setThreshold(float threshold) { this->m_threshold = threshold; }
+ void setThresholdNeighbour(float threshold) { this->m_threshold_neighbour = threshold; }
+
+ void initExecution();
+ void deinitExecution();
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_DifferenceMatteOperation.cpp b/source/blender/compositor/operations/COM_DifferenceMatteOperation.cpp
index 3c4bdfe8e5b..e23eb26f527 100644
--- a/source/blender/compositor/operations/COM_DifferenceMatteOperation.cpp
+++ b/source/blender/compositor/operations/COM_DifferenceMatteOperation.cpp
@@ -44,7 +44,7 @@ void DifferenceMatteOperation::deinitExecution()
this->m_inputImage2Program = NULL;
}
-void DifferenceMatteOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void DifferenceMatteOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inColor1[4];
float inColor2[4];
@@ -54,8 +54,8 @@ void DifferenceMatteOperation::executePixel(float *outputValue, float x, float y
float difference;
float alpha;
- this->m_inputImage1Program->read(inColor1, x, y, sampler, inputBuffers);
- this->m_inputImage2Program->read(inColor2, x, y, sampler, inputBuffers);
+ this->m_inputImage1Program->read(inColor1, x, y, sampler);
+ this->m_inputImage2Program->read(inColor2, x, y, sampler);
difference = (fabsf(inColor2[0] - inColor1[0]) +
fabsf(inColor2[1] - inColor1[1]) +
@@ -64,9 +64,9 @@ void DifferenceMatteOperation::executePixel(float *outputValue, float x, float y
/* average together the distances */
difference = difference / 3.0f;
- /*make 100% transparent*/
+ /* make 100% transparent */
if (difference < tolerance) {
- outputValue[0] = 0.0f;
+ output[0] = 0.0f;
}
/*in the falloff region, make partially transparent */
else if (difference < falloff + tolerance) {
@@ -74,15 +74,15 @@ void DifferenceMatteOperation::executePixel(float *outputValue, float x, float y
alpha = difference / falloff;
/*only change if more transparent than before */
if (alpha < inColor1[3]) {
- outputValue[0] = alpha;
+ output[0] = alpha;
}
else { /* leave as before */
- outputValue[0] = inColor1[3];
+ output[0] = inColor1[3];
}
}
else {
- /*foreground object*/
- outputValue[0] = inColor1[3];
+ /* foreground object */
+ output[0] = inColor1[3];
}
}
diff --git a/source/blender/compositor/operations/COM_DifferenceMatteOperation.h b/source/blender/compositor/operations/COM_DifferenceMatteOperation.h
index c35550560e1..e7d881cbbd5 100644
--- a/source/blender/compositor/operations/COM_DifferenceMatteOperation.h
+++ b/source/blender/compositor/operations/COM_DifferenceMatteOperation.h
@@ -43,7 +43,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_DilateErodeOperation.cpp b/source/blender/compositor/operations/COM_DilateErodeOperation.cpp
index 338a3a0b59b..9c09c9bf034 100644
--- a/source/blender/compositor/operations/COM_DilateErodeOperation.cpp
+++ b/source/blender/compositor/operations/COM_DilateErodeOperation.cpp
@@ -24,6 +24,8 @@
#include "BLI_math.h"
#include "COM_OpenCLDevice.h"
+#include "MEM_guardedalloc.h"
+
// DilateErode Distance Threshold
DilateErodeThresholdOperation::DilateErodeThresholdOperation() : NodeOperation()
{
@@ -54,13 +56,13 @@ void DilateErodeThresholdOperation::initExecution()
}
}
-void *DilateErodeThresholdOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *DilateErodeThresholdOperation::initializeTileData(rcti *rect)
{
- void *buffer = this->m_inputProgram->initializeTileData(NULL, memoryBuffers);
+ void *buffer = this->m_inputProgram->initializeTileData(NULL);
return buffer;
}
-void DilateErodeThresholdOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void DilateErodeThresholdOperation::executePixel(float output[4], int x, int y, void *data)
{
float inputValue[4];
const float sw = this->m__switch;
@@ -77,10 +79,10 @@ void DilateErodeThresholdOperation::executePixel(float *color, int x, int y, Mem
const int miny = max(y - this->m_scope, rect->ymin);
const int maxx = min(x + this->m_scope, rect->xmax);
const int maxy = min(y + this->m_scope, rect->ymax);
- const int bufferWidth = rect->xmax - rect->xmin;
+ const int bufferWidth = BLI_rcti_size_x(rect);
int offset;
- this->m_inputProgram->read(inputValue, x, y, inputBuffers, NULL);
+ this->m_inputProgram->read(inputValue, x, y, NULL);
if (inputValue[0] > sw) {
for (int yi = miny; yi < maxy; yi++) {
const float dy = yi - y;
@@ -117,28 +119,28 @@ void DilateErodeThresholdOperation::executePixel(float *color, int x, int y, Mem
const float delta = distance - pixelvalue;
if (delta >= 0.0f) {
if (delta >= inset) {
- color[0] = 1.0f;
+ output[0] = 1.0f;
}
else {
- color[0] = delta / inset;
+ output[0] = delta / inset;
}
}
else {
- color[0] = 0.0f;
+ output[0] = 0.0f;
}
}
else {
const float delta = -distance + pixelvalue;
if (delta < 0.0f) {
if (delta < -inset) {
- color[0] = 1.0f;
+ output[0] = 1.0f;
}
else {
- color[0] = (-delta) / inset;
+ output[0] = (-delta) / inset;
}
}
else {
- color[0] = 0.0f;
+ output[0] = 0.0f;
}
}
}
@@ -179,13 +181,13 @@ void DilateDistanceOperation::initExecution()
}
}
-void *DilateDistanceOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *DilateDistanceOperation::initializeTileData(rcti *rect)
{
- void *buffer = this->m_inputProgram->initializeTileData(NULL, memoryBuffers);
+ void *buffer = this->m_inputProgram->initializeTileData(NULL);
return buffer;
}
-void DilateDistanceOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void DilateDistanceOperation::executePixel(float output[4], int x, int y, void *data)
{
const float distance = this->m_distance;
const float mindist = distance * distance;
@@ -197,7 +199,7 @@ void DilateDistanceOperation::executePixel(float *color, int x, int y, MemoryBuf
const int miny = max(y - this->m_scope, rect->ymin);
const int maxx = min(x + this->m_scope, rect->xmax);
const int maxy = min(y + this->m_scope, rect->ymax);
- const int bufferWidth = rect->xmax - rect->xmin;
+ const int bufferWidth = BLI_rcti_size_x(rect);
int offset;
float value = 0.0f;
@@ -214,7 +216,7 @@ void DilateDistanceOperation::executePixel(float *color, int x, int y, MemoryBuf
offset += 4;
}
}
- color[0] = value;
+ output[0] = value;
}
void DilateDistanceOperation::deinitExecution()
@@ -234,15 +236,13 @@ bool DilateDistanceOperation::determineDependingAreaOfInterest(rcti *input, Read
return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
}
-static cl_kernel dilateKernel = 0;
-void DilateDistanceOperation::executeOpenCL(OpenCLDevice* device,
+void DilateDistanceOperation::executeOpenCL(OpenCLDevice *device,
MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer,
MemoryBuffer **inputMemoryBuffers, list<cl_mem> *clMemToCleanUp,
list<cl_kernel> *clKernelsToCleanUp)
{
- if (!dilateKernel) {
- dilateKernel = device->COM_clCreateKernel("dilateKernel", NULL);
- }
+ cl_kernel dilateKernel = device->COM_clCreateKernel("dilateKernel", NULL);
+
cl_int distanceSquared = this->m_distance * this->m_distance;
cl_int scope = this->m_scope;
@@ -261,7 +261,7 @@ ErodeDistanceOperation::ErodeDistanceOperation() : DilateDistanceOperation()
/* pass */
}
-void ErodeDistanceOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void ErodeDistanceOperation::executePixel(float output[4], int x, int y, void *data)
{
const float distance = this->m_distance;
const float mindist = distance * distance;
@@ -273,7 +273,7 @@ void ErodeDistanceOperation::executePixel(float *color, int x, int y, MemoryBuff
const int miny = max(y - this->m_scope, rect->ymin);
const int maxx = min(x + this->m_scope, rect->xmax);
const int maxy = min(y + this->m_scope, rect->ymax);
- const int bufferWidth = rect->xmax - rect->xmin;
+ const int bufferWidth = BLI_rcti_size_x(rect);
int offset;
float value = 1.0f;
@@ -290,18 +290,16 @@ void ErodeDistanceOperation::executePixel(float *color, int x, int y, MemoryBuff
offset += 4;
}
}
- color[0] = value;
+ output[0] = value;
}
-static cl_kernel erodeKernel = 0;
-void ErodeDistanceOperation::executeOpenCL(OpenCLDevice* device,
+void ErodeDistanceOperation::executeOpenCL(OpenCLDevice *device,
MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer,
MemoryBuffer **inputMemoryBuffers, list<cl_mem> *clMemToCleanUp,
list<cl_kernel> *clKernelsToCleanUp)
{
- if (!erodeKernel) {
- erodeKernel = device->COM_clCreateKernel("erodeKernel", NULL);
- }
+ cl_kernel erodeKernel = device->COM_clCreateKernel("erodeKernel", NULL);
+
cl_int distanceSquared = this->m_distance * this->m_distance;
cl_int scope = this->m_scope;
@@ -329,14 +327,14 @@ void DilateStepOperation::initExecution()
this->initMutex();
}
-void *DilateStepOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *DilateStepOperation::initializeTileData(rcti *rect)
{
if (this->m_cached_buffer != NULL) {
return this->m_cached_buffer;
}
lockMutex();
if (this->m_cached_buffer == NULL) {
- MemoryBuffer *buffer = (MemoryBuffer *)this->m_inputProgram->initializeTileData(NULL, memoryBuffers);
+ MemoryBuffer *buffer = (MemoryBuffer *)this->m_inputProgram->initializeTileData(NULL);
float *rectf = buffer->convertToValueBuffer();
int x, y, i;
float *p;
@@ -378,9 +376,9 @@ void *DilateStepOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryB
}
-void DilateStepOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void DilateStepOperation::executePixel(float output[4], int x, int y, void *data)
{
- color[0] = this->m_cached_buffer[y * this->getWidth() + x];
+ output[0] = this->m_cached_buffer[y * this->getWidth() + x];
}
void DilateStepOperation::deinitExecution()
@@ -388,7 +386,7 @@ void DilateStepOperation::deinitExecution()
this->m_inputProgram = NULL;
this->deinitMutex();
if (this->m_cached_buffer) {
- delete this->m_cached_buffer;
+ MEM_freeN(this->m_cached_buffer);
this->m_cached_buffer = NULL;
}
}
@@ -416,14 +414,14 @@ ErodeStepOperation::ErodeStepOperation() : DilateStepOperation()
/* pass */
}
-void *ErodeStepOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *ErodeStepOperation::initializeTileData(rcti *rect)
{
if (this->m_cached_buffer != NULL) {
return this->m_cached_buffer;
}
lockMutex();
if (this->m_cached_buffer == NULL) {
- MemoryBuffer *buffer = (MemoryBuffer *)this->m_inputProgram->initializeTileData(NULL, memoryBuffers);
+ MemoryBuffer *buffer = (MemoryBuffer *)this->m_inputProgram->initializeTileData(NULL);
float *rectf = buffer->convertToValueBuffer();
int x, y, i;
float *p;
diff --git a/source/blender/compositor/operations/COM_DilateErodeOperation.h b/source/blender/compositor/operations/COM_DilateErodeOperation.h
index bc6049bf992..47480d47c3b 100644
--- a/source/blender/compositor/operations/COM_DilateErodeOperation.h
+++ b/source/blender/compositor/operations/COM_DilateErodeOperation.h
@@ -47,14 +47,14 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
*/
void initExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
/**
* Deinitialize the execution
*/
@@ -83,14 +83,14 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
*/
void initExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
/**
* Deinitialize the execution
*/
@@ -99,7 +99,7 @@ public:
void setDistance(float distance) { this->m_distance = distance; }
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void executeOpenCL(OpenCLDevice* device,
+ void executeOpenCL(OpenCLDevice *device,
MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer,
MemoryBuffer **inputMemoryBuffers, list<cl_mem> *clMemToCleanUp,
list<cl_kernel> *clKernelsToCleanUp);
@@ -111,9 +111,9 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
- void executeOpenCL(OpenCLDevice* device,
+ void executeOpenCL(OpenCLDevice *device,
MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer,
MemoryBuffer **inputMemoryBuffers, list<cl_mem> *clMemToCleanUp,
list<cl_kernel> *clKernelsToCleanUp);
@@ -135,14 +135,14 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
*/
void initExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
/**
* Deinitialize the execution
*/
@@ -157,7 +157,7 @@ class ErodeStepOperation : public DilateStepOperation {
public:
ErodeStepOperation();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
};
#endif
diff --git a/source/blender/compositor/operations/COM_DirectionalBlurOperation.cpp b/source/blender/compositor/operations/COM_DirectionalBlurOperation.cpp
index da7336afc07..23289429bfd 100644
--- a/source/blender/compositor/operations/COM_DirectionalBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_DirectionalBlurOperation.cpp
@@ -22,7 +22,7 @@
#include "COM_DirectionalBlurOperation.h"
#include "BLI_math.h"
-
+#include "COM_OpenCLDevice.h"
extern "C" {
#include "RE_pipeline.h"
}
@@ -33,6 +33,7 @@ DirectionalBlurOperation::DirectionalBlurOperation() : NodeOperation()
this->addOutputSocket(COM_DT_COLOR);
this->setComplex(true);
+ this->setOpenCL(true);
this->m_inputProgram = NULL;
}
@@ -65,12 +66,12 @@ void DirectionalBlurOperation::initExecution()
}
-void DirectionalBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void DirectionalBlurOperation::executePixel(float output[4], int x, int y, void *data)
{
const int iterations = pow(2.0f, this->m_data->iter);
float col[4] = {0, 0, 0, 0};
float col2[4] = {0, 0, 0, 0};
- this->m_inputProgram->read(col2, x, y, COM_PS_NEAREST, inputBuffers);
+ this->m_inputProgram->read(col2, x, y, COM_PS_NEAREST);
float ltx = this->m_tx;
float lty = this->m_ty;
float lsc = this->m_sc;
@@ -86,7 +87,7 @@ void DirectionalBlurOperation::executePixel(float *color, int x, int y, MemoryBu
this->m_inputProgram->read(col,
cs * u + ss * v + this->m_center_x_pix,
cs * v - ss * u + this->m_center_y_pix,
- COM_PS_NEAREST, inputBuffers);
+ COM_PS_NEAREST);
add_v4_v4(col2, col);
@@ -97,9 +98,35 @@ void DirectionalBlurOperation::executePixel(float *color, int x, int y, MemoryBu
lsc += this->m_sc;
}
- mul_v4_v4fl(color, col2, 1.0f / iterations);
+ mul_v4_v4fl(output, col2, 1.0f / (iterations + 1));
}
+void DirectionalBlurOperation::executeOpenCL(OpenCLDevice *device,
+ MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer,
+ MemoryBuffer **inputMemoryBuffers, list<cl_mem> *clMemToCleanUp,
+ list<cl_kernel> *clKernelsToCleanUp)
+{
+ cl_kernel directionalBlurKernel = device->COM_clCreateKernel("directionalBlurKernel", NULL);
+
+ cl_int iterations = pow(2.0f, this->m_data->iter);
+ cl_float2 ltxy = {this->m_tx, this->m_ty};
+ cl_float2 centerpix = {this->m_center_x_pix, this->m_center_y_pix};
+ cl_float lsc = this->m_sc;
+ cl_float lrot = this->m_rot;
+
+ device->COM_clAttachMemoryBufferToKernelParameter(directionalBlurKernel, 0, -1, clMemToCleanUp, inputMemoryBuffers, this->m_inputProgram);
+ device->COM_clAttachOutputMemoryBufferToKernelParameter(directionalBlurKernel, 1, clOutputBuffer);
+ device->COM_clAttachMemoryBufferOffsetToKernelParameter(directionalBlurKernel, 2, outputMemoryBuffer);
+ clSetKernelArg(directionalBlurKernel, 3, sizeof(cl_int), &iterations);
+ clSetKernelArg(directionalBlurKernel, 4, sizeof(cl_float), &lsc);
+ clSetKernelArg(directionalBlurKernel, 5, sizeof(cl_float), &lrot);
+ clSetKernelArg(directionalBlurKernel, 6, sizeof(cl_float2), &ltxy);
+ clSetKernelArg(directionalBlurKernel, 7, sizeof(cl_float2), &centerpix);
+
+ device->COM_clEnqueueRange(directionalBlurKernel, outputMemoryBuffer, 8, this);
+}
+
+
void DirectionalBlurOperation::deinitExecution()
{
this->m_inputProgram = NULL;
diff --git a/source/blender/compositor/operations/COM_DirectionalBlurOperation.h b/source/blender/compositor/operations/COM_DirectionalBlurOperation.h
index 329f855871e..e13a13116db 100644
--- a/source/blender/compositor/operations/COM_DirectionalBlurOperation.h
+++ b/source/blender/compositor/operations/COM_DirectionalBlurOperation.h
@@ -40,7 +40,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
@@ -55,5 +55,11 @@ public:
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
void setData(NodeDBlurData *data) { this->m_data = data; }
+
+ void executeOpenCL(OpenCLDevice *device,
+ MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer,
+ MemoryBuffer **inputMemoryBuffers, list<cl_mem> *clMemToCleanUp,
+ list<cl_kernel> *clKernelsToCleanUp);
+
};
#endif
diff --git a/source/blender/compositor/operations/COM_DisplaceOperation.cpp b/source/blender/compositor/operations/COM_DisplaceOperation.cpp
index c7df53770c5..31608c88274 100644
--- a/source/blender/compositor/operations/COM_DisplaceOperation.cpp
+++ b/source/blender/compositor/operations/COM_DisplaceOperation.cpp
@@ -54,7 +54,7 @@ void DisplaceOperation::initExecution()
* in order to take effect */
#define DISPLACE_EPSILON 0.01f
-void DisplaceOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void DisplaceOperation::executePixel(float output[4], int x, int y, void *data)
{
float inVector[4];
float inScale[4];
@@ -64,9 +64,9 @@ void DisplaceOperation::executePixel(float *color, int x, int y, MemoryBuffer *i
float dxt, dyt;
float u, v;
- this->m_inputScaleXProgram->read(inScale, x, y, COM_PS_NEAREST, inputBuffers);
+ this->m_inputScaleXProgram->read(inScale, x, y, COM_PS_NEAREST);
float xs = inScale[0];
- this->m_inputScaleYProgram->read(inScale, x, y, COM_PS_NEAREST, inputBuffers);
+ this->m_inputScaleYProgram->read(inScale, x, y, COM_PS_NEAREST);
float ys = inScale[0];
/* clamp x and y displacement to triple image resolution -
@@ -74,7 +74,7 @@ void DisplaceOperation::executePixel(float *color, int x, int y, MemoryBuffer *i
CLAMP(xs, -this->m_width_x4, this->m_width_x4);
CLAMP(ys, -this->m_height_x4, this->m_height_x4);
- this->m_inputVectorProgram->read(inVector, x, y, COM_PS_NEAREST, inputBuffers);
+ this->m_inputVectorProgram->read(inVector, x, y, COM_PS_NEAREST);
p_dx = inVector[0] * xs;
p_dy = inVector[1] * ys;
@@ -83,10 +83,10 @@ void DisplaceOperation::executePixel(float *color, int x, int y, MemoryBuffer *i
v = y - p_dy + 0.5f;
/* calc derivatives */
- this->m_inputVectorProgram->read(inVector, x + 1, y, COM_PS_NEAREST, inputBuffers);
+ this->m_inputVectorProgram->read(inVector, x + 1, y, COM_PS_NEAREST);
d_dx = inVector[0] * xs;
- this->m_inputVectorProgram->read(inVector, x, y + 1, COM_PS_NEAREST, inputBuffers);
- d_dy = inVector[0] * ys;
+ this->m_inputVectorProgram->read(inVector, x, y + 1, COM_PS_NEAREST);
+ d_dy = inVector[1] * ys;
/* clamp derivatives to minimum displacement distance in UV space */
dxt = p_dx - d_dx;
@@ -95,8 +95,8 @@ void DisplaceOperation::executePixel(float *color, int x, int y, MemoryBuffer *i
dxt = signf(dxt) * maxf(fabsf(dxt), DISPLACE_EPSILON) / this->getWidth();
dyt = signf(dyt) * maxf(fabsf(dyt), DISPLACE_EPSILON) / this->getHeight();
- /* EWA filtering */
- this->m_inputColorProgram->read(color, u, v, dxt, dyt, inputBuffers);
+ /* EWA filtering (without nearest it gets blurry with NO distortion) */
+ this->m_inputColorProgram->read(output, u, v, dxt, dyt, COM_PS_NEAREST);
}
void DisplaceOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_DisplaceOperation.h b/source/blender/compositor/operations/COM_DisplaceOperation.h
index e01c9190396..daf54294aa1 100644
--- a/source/blender/compositor/operations/COM_DisplaceOperation.h
+++ b/source/blender/compositor/operations/COM_DisplaceOperation.h
@@ -48,7 +48,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_DisplaceSimpleOperation.cpp b/source/blender/compositor/operations/COM_DisplaceSimpleOperation.cpp
index d21fc62abd7..c8ebb845bb6 100644
--- a/source/blender/compositor/operations/COM_DisplaceSimpleOperation.cpp
+++ b/source/blender/compositor/operations/COM_DisplaceSimpleOperation.cpp
@@ -51,9 +51,9 @@ void DisplaceSimpleOperation::initExecution()
/* minimum distance (in pixels) a pixel has to be displaced
* in order to take effect */
-#define DISPLACE_EPSILON 0.01f
+// #define DISPLACE_EPSILON 0.01f
-void DisplaceSimpleOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void DisplaceSimpleOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inVector[4];
float inScale[4];
@@ -61,9 +61,9 @@ void DisplaceSimpleOperation::executePixel(float *color, float x, float y, Pixel
float p_dx, p_dy; /* main displacement in pixel space */
float u, v;
- this->m_inputScaleXProgram->read(inScale, x, y, sampler, inputBuffers);
+ this->m_inputScaleXProgram->read(inScale, x, y, sampler);
float xs = inScale[0];
- this->m_inputScaleYProgram->read(inScale, x, y, sampler, inputBuffers);
+ this->m_inputScaleYProgram->read(inScale, x, y, sampler);
float ys = inScale[0];
/* clamp x and y displacement to triple image resolution -
@@ -71,7 +71,7 @@ void DisplaceSimpleOperation::executePixel(float *color, float x, float y, Pixel
CLAMP(xs, -this->m_width_x4, this->m_width_x4);
CLAMP(ys, -this->m_height_x4, this->m_height_x4);
- this->m_inputVectorProgram->read(inVector, x, y, sampler, inputBuffers);
+ this->m_inputVectorProgram->read(inVector, x, y, sampler);
p_dx = inVector[0] * xs;
p_dy = inVector[1] * ys;
@@ -82,7 +82,7 @@ void DisplaceSimpleOperation::executePixel(float *color, float x, float y, Pixel
CLAMP(u, 0.f, this->getWidth() - 1.f);
CLAMP(v, 0.f, this->getHeight() - 1.f);
- this->m_inputColorProgram->read(color, u, v, sampler, inputBuffers);
+ this->m_inputColorProgram->read(output, u, v, sampler);
}
void DisplaceSimpleOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_DisplaceSimpleOperation.h b/source/blender/compositor/operations/COM_DisplaceSimpleOperation.h
index 25afbafe335..989cf8a1f67 100644
--- a/source/blender/compositor/operations/COM_DisplaceSimpleOperation.h
+++ b/source/blender/compositor/operations/COM_DisplaceSimpleOperation.h
@@ -48,7 +48,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_DistanceMatteOperation.cpp b/source/blender/compositor/operations/COM_DistanceRGBMatteOperation.cpp
index 5bdc616fed7..d3309e0c978 100644
--- a/source/blender/compositor/operations/COM_DistanceMatteOperation.cpp
+++ b/source/blender/compositor/operations/COM_DistanceRGBMatteOperation.cpp
@@ -19,32 +19,37 @@
* Dalai Felinto
*/
-#include "COM_DistanceMatteOperation.h"
+#include "COM_DistanceRGBMatteOperation.h"
#include "BLI_math.h"
-DistanceMatteOperation::DistanceMatteOperation() : NodeOperation()
+DistanceRGBMatteOperation::DistanceRGBMatteOperation() : NodeOperation()
{
- addInputSocket(COM_DT_COLOR);
- addInputSocket(COM_DT_COLOR);
- addOutputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_VALUE);
this->m_inputImageProgram = NULL;
this->m_inputKeyProgram = NULL;
}
-void DistanceMatteOperation::initExecution()
+void DistanceRGBMatteOperation::initExecution()
{
this->m_inputImageProgram = this->getInputSocketReader(0);
this->m_inputKeyProgram = this->getInputSocketReader(1);
}
-void DistanceMatteOperation::deinitExecution()
+void DistanceRGBMatteOperation::deinitExecution()
{
this->m_inputImageProgram = NULL;
this->m_inputKeyProgram = NULL;
}
-void DistanceMatteOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+float DistanceRGBMatteOperation::calculateDistance(float key[4], float image[4])
+{
+ return len_v3v3(key, image);
+}
+
+void DistanceRGBMatteOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inKey[4];
float inImage[4];
@@ -55,12 +60,10 @@ void DistanceMatteOperation::executePixel(float *outputValue, float x, float y,
float distance;
float alpha;
- this->m_inputKeyProgram->read(inKey, x, y, sampler, inputBuffers);
- this->m_inputImageProgram->read(inImage, x, y, sampler, inputBuffers);
+ this->m_inputKeyProgram->read(inKey, x, y, sampler);
+ this->m_inputImageProgram->read(inImage, x, y, sampler);
- distance = sqrt(pow((inKey[0] - inImage[0]), 2) +
- pow((inKey[1] - inImage[1]), 2) +
- pow((inKey[2] - inImage[2]), 2));
+ distance = this->calculateDistance(inKey, inImage);
/* store matte(alpha) value in [0] to go with
* COM_SetAlphaOperation and the Value output
@@ -68,7 +71,7 @@ void DistanceMatteOperation::executePixel(float *outputValue, float x, float y,
/*make 100% transparent */
if (distance < tolerance) {
- outputValue[0] = 0.f;
+ output[0] = 0.f;
}
/*in the falloff region, make partially transparent */
else if (distance < falloff + tolerance) {
@@ -76,15 +79,14 @@ void DistanceMatteOperation::executePixel(float *outputValue, float x, float y,
alpha = distance / falloff;
/*only change if more transparent than before */
if (alpha < inImage[3]) {
- outputValue[0] = alpha;
+ output[0] = alpha;
}
else { /* leave as before */
- outputValue[0] = inImage[3];
+ output[0] = inImage[3];
}
}
else {
/* leave as before */
- outputValue[0] = inImage[3];
+ output[0] = inImage[3];
}
}
-
diff --git a/source/blender/compositor/operations/COM_DistanceMatteOperation.h b/source/blender/compositor/operations/COM_DistanceRGBMatteOperation.h
index 267aa1fca7a..5a34135b1a4 100644
--- a/source/blender/compositor/operations/COM_DistanceMatteOperation.h
+++ b/source/blender/compositor/operations/COM_DistanceRGBMatteOperation.h
@@ -19,8 +19,8 @@
* Dalai Felinto
*/
-#ifndef _COM_DistanceMatteOperation_h
-#define _COM_DistanceMatteOperation_h
+#ifndef _COM_DistanceRGBMatteOperation_h
+#define _COM_DistanceRGBMatteOperation_h
#include "COM_MixBaseOperation.h"
@@ -28,21 +28,24 @@
* this program converts an input color to an output value.
* it assumes we are in sRGB color space.
*/
-class DistanceMatteOperation : public NodeOperation {
-private:
+class DistanceRGBMatteOperation : public NodeOperation {
+protected:
NodeChroma *m_settings;
SocketReader *m_inputImageProgram;
SocketReader *m_inputKeyProgram;
+
+ virtual float calculateDistance(float key[4], float image[4]);
+
public:
/**
* Default constructor
*/
- DistanceMatteOperation();
+ DistanceRGBMatteOperation();
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_DistanceYCCMatteOperation.cpp b/source/blender/compositor/operations/COM_DistanceYCCMatteOperation.cpp
new file mode 100644
index 00000000000..0a6f1fdfd31
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DistanceYCCMatteOperation.cpp
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#include "COM_DistanceYCCMatteOperation.h"
+#include "BLI_math.h"
+
+DistanceYCCMatteOperation::DistanceYCCMatteOperation() : DistanceRGBMatteOperation()
+{
+ /* pass */
+}
+
+float DistanceYCCMatteOperation::calculateDistance(float key[4], float image[4])
+{
+ /* only measure the second 2 values */
+ return len_v2v2(key + 1, image + 1);
+}
+
diff --git a/source/blender/compositor/operations/COM_DistanceYCCMatteOperation.h b/source/blender/compositor/operations/COM_DistanceYCCMatteOperation.h
new file mode 100644
index 00000000000..f4866a327f1
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DistanceYCCMatteOperation.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Dalai Felinto
+ */
+
+#ifndef _COM_DistanceYCCMatteOperation_h
+#define _COM_DistanceYCCMatteOperation_h
+#include "COM_MixBaseOperation.h"
+#include "COM_DistanceRGBMatteOperation.h"
+
+
+/**
+ * this program converts an input color to an output value.
+ * it assumes we are in sRGB color space.
+ */
+class DistanceYCCMatteOperation : public DistanceRGBMatteOperation {
+protected:
+ virtual float calculateDistance(float key[4], float image[4]);
+
+public:
+ /**
+ * Default constructor
+ */
+ DistanceYCCMatteOperation();
+
+};
+#endif
diff --git a/source/blender/compositor/operations/COM_DotproductOperation.cpp b/source/blender/compositor/operations/COM_DotproductOperation.cpp
index 53ab5f97518..1439dfa404a 100644
--- a/source/blender/compositor/operations/COM_DotproductOperation.cpp
+++ b/source/blender/compositor/operations/COM_DotproductOperation.cpp
@@ -45,11 +45,11 @@ void DotproductOperation::deinitExecution()
/** @todo: current implementation is the inverse of a dotproduct. not 'logically' correct
*/
-void DotproductOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void DotproductOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float input1[4];
float input2[4];
- this->m_input1Operation->read(input1, x, y, sampler, inputBuffers);
- this->m_input2Operation->read(input2, x, y, sampler, inputBuffers);
- color[0] = -(input1[0] * input2[0] + input1[1] * input2[1] + input1[2] * input2[2]);
+ this->m_input1Operation->read(input1, x, y, sampler);
+ this->m_input2Operation->read(input2, x, y, sampler);
+ output[0] = -(input1[0] * input2[0] + input1[1] * input2[1] + input1[2] * input2[2]);
}
diff --git a/source/blender/compositor/operations/COM_DotproductOperation.h b/source/blender/compositor/operations/COM_DotproductOperation.h
index 7ca540983d9..31588207504 100644
--- a/source/blender/compositor/operations/COM_DotproductOperation.h
+++ b/source/blender/compositor/operations/COM_DotproductOperation.h
@@ -31,7 +31,7 @@ private:
SocketReader *m_input2Operation;
public:
DotproductOperation();
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.cpp b/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.cpp
index e5a145bab2e..39665b10f48 100644
--- a/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.cpp
+++ b/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.cpp
@@ -894,7 +894,7 @@ static void do_createEdgeLocationBuffer(unsigned int t, unsigned int rw, unsigne
int x; // x = pixel loop counter
int a; // a = temporary pixel index buffer loop counter
unsigned int ud; // ud = unscaled edge distance
- unsigned int dmin; // dmin = minimun edge distance
+ unsigned int dmin; // dmin = minimum edge distance
unsigned int rsl; // long used for finding fast 1.0/sqrt
unsigned int gradientFillOffset;
@@ -907,7 +907,7 @@ static void do_createEdgeLocationBuffer(unsigned int t, unsigned int rw, unsigne
* or outer edge.
*
* Allocation is done by requesting 4 bytes "sizeof(int)" per pixel, even
- * though gbuf[] is declared as unsigned short* (2 bytes) because we don't
+ * though gbuf[] is declared as (unsigned short *) (2 bytes) because we don't
* store the pixel indexes, we only store x,y location of pixel in buffer.
*
* This does make the assumption that x and y can fit in 16 unsigned bits
@@ -1012,7 +1012,7 @@ static void do_fillGradientBuffer(unsigned int rw, float *res, unsigned short *g
unsigned int gradientFillOffset;
unsigned int t;
unsigned int ud; // ud = unscaled edge distance
- unsigned int dmin; // dmin = minimun edge distance
+ unsigned int dmin; // dmin = minimum edge distance
float odist; // odist = current outer edge distance
float idist; // idist = current inner edge distance
int dx; // dx = X-delta (used for distance proportion calculation)
@@ -1070,7 +1070,7 @@ static void do_fillGradientBuffer(unsigned int rw, float *res, unsigned short *g
* pixel color as |GI| / (|GI| + |GO|). Since these are reciprocals, GI serves the
* purpose of GO for the proportion calculation.
*
- * For the purposes of the minimun distance comparisons, we only check
+ * For the purposes of the minimum distance comparisons, we only check
* the sums-of-squares against eachother, since they are in the same
* mathematical sort-order as if we did go ahead and take square roots
*
@@ -1116,7 +1116,7 @@ static void do_fillGradientBuffer(unsigned int rw, float *res, unsigned short *g
/*
* Note once again that since we are using reciprocals of distance values our
* proportion is already the correct intensity, and does not need to be
- * subracted from 1.0 like it would have if we used real distances.
+ * subtracted from 1.0 like it would have if we used real distances.
*/
/*
@@ -1260,34 +1260,31 @@ void DoubleEdgeMaskOperation::initExecution()
this->m_cachedInstance = NULL;
}
-void *DoubleEdgeMaskOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *DoubleEdgeMaskOperation::initializeTileData(rcti *rect)
{
if (this->m_cachedInstance)
return this->m_cachedInstance;
lockMutex();
if (this->m_cachedInstance == NULL) {
- MemoryBuffer *innerMask = (MemoryBuffer *)this->m_inputInnerMask->initializeTileData(rect, memoryBuffers);
- MemoryBuffer *outerMask = (MemoryBuffer *)this->m_inputOuterMask->initializeTileData(rect, memoryBuffers);
- float *data = new float[this->getWidth() * this->getHeight()];
+ MemoryBuffer *innerMask = (MemoryBuffer *)this->m_inputInnerMask->initializeTileData(rect);
+ MemoryBuffer *outerMask = (MemoryBuffer *)this->m_inputOuterMask->initializeTileData(rect);
+ float *data = (float *)MEM_mallocN(sizeof(float) * this->getWidth() * this->getHeight(), __func__);
float *imask = innerMask->convertToValueBuffer();
float *omask = outerMask->convertToValueBuffer();
doDoubleEdgeMask(imask, omask, data);
- delete imask;
- delete omask;
+ MEM_freeN(imask);
+ MEM_freeN(omask);
this->m_cachedInstance = data;
}
unlockMutex();
return this->m_cachedInstance;
}
-void DoubleEdgeMaskOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void DoubleEdgeMaskOperation::executePixel(float output[4], int x, int y, void *data)
{
- float *buffer = (float *) data;
+ float *buffer = (float *)data;
int index = (y * this->getWidth() + x);
- color[0] = buffer[index];
- color[1] = buffer[index + 1];
- color[2] = buffer[index + 2];
- color[3] = buffer[index + 3];
+ copy_v4_v4(output, buffer + index);
}
void DoubleEdgeMaskOperation::deinitExecution()
@@ -1296,7 +1293,7 @@ void DoubleEdgeMaskOperation::deinitExecution()
this->m_inputOuterMask = NULL;
deinitMutex();
if (this->m_cachedInstance) {
- delete this->m_cachedInstance;
+ MEM_freeN(this->m_cachedInstance);
this->m_cachedInstance = NULL;
}
}
diff --git a/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.h b/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.h
index 442680e320e..528aae7218f 100644
--- a/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.h
+++ b/source/blender/compositor/operations/COM_DoubleEdgeMaskOperation.h
@@ -42,7 +42,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
@@ -54,7 +54,7 @@ public:
*/
void deinitExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
diff --git a/source/blender/compositor/operations/COM_EllipseMaskOperation.cpp b/source/blender/compositor/operations/COM_EllipseMaskOperation.cpp
index 1aa1b89ee76..9ab21e2d5bd 100644
--- a/source/blender/compositor/operations/COM_EllipseMaskOperation.cpp
+++ b/source/blender/compositor/operations/COM_EllipseMaskOperation.cpp
@@ -44,7 +44,7 @@ void EllipseMaskOperation::initExecution()
this->m_aspectRatio = ((float)this->getWidth()) / this->getHeight();
}
-void EllipseMaskOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void EllipseMaskOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputMask[4];
float inputValue[4];
@@ -57,8 +57,8 @@ void EllipseMaskOperation::executePixel(float *color, float x, float y, PixelSam
rx = this->m_data->x + (this->m_cosine * dx + this->m_sine * dy);
ry = this->m_data->y + (-this->m_sine * dx + this->m_cosine * dy);
- this->m_inputMask->read(inputMask, x, y, sampler, inputBuffers);
- this->m_inputValue->read(inputValue, x, y, sampler, inputBuffers);
+ this->m_inputMask->read(inputMask, x, y, sampler);
+ this->m_inputValue->read(inputValue, x, y, sampler);
const float halfHeight = (this->m_data->height) / 2.0f;
const float halfWidth = this->m_data->width / 2.0f;
@@ -74,40 +74,40 @@ void EllipseMaskOperation::executePixel(float *color, float x, float y, PixelSam
switch (this->m_maskType) {
case CMP_NODE_MASKTYPE_ADD:
if (inside) {
- color[0] = max(inputMask[0], inputValue[0]);
+ output[0] = max(inputMask[0], inputValue[0]);
}
else {
- color[0] = inputMask[0];
+ output[0] = inputMask[0];
}
break;
case CMP_NODE_MASKTYPE_SUBTRACT:
if (inside) {
- color[0] = inputMask[0] - inputValue[0];
- CLAMP(color[0], 0, 1);
+ output[0] = inputMask[0] - inputValue[0];
+ CLAMP(output[0], 0, 1);
}
else {
- color[0] = inputMask[0];
+ output[0] = inputMask[0];
}
break;
case CMP_NODE_MASKTYPE_MULTIPLY:
if (inside) {
- color[0] = inputMask[0] * inputValue[0];
+ output[0] = inputMask[0] * inputValue[0];
}
else {
- color[0] = 0;
+ output[0] = 0;
}
break;
case CMP_NODE_MASKTYPE_NOT:
if (inside) {
if (inputMask[0] > 0.0f) {
- color[0] = 0;
+ output[0] = 0;
}
else {
- color[0] = inputValue[0];
+ output[0] = inputValue[0];
}
}
else {
- color[0] = inputMask[0];
+ output[0] = inputMask[0];
}
break;
}
diff --git a/source/blender/compositor/operations/COM_EllipseMaskOperation.h b/source/blender/compositor/operations/COM_EllipseMaskOperation.h
index 0b0ffa023cb..ed74e6b43db 100644
--- a/source/blender/compositor/operations/COM_EllipseMaskOperation.h
+++ b/source/blender/compositor/operations/COM_EllipseMaskOperation.h
@@ -45,7 +45,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp b/source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp
index 8f0ebd9b8d2..2b2928c98db 100644
--- a/source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp
@@ -31,10 +31,10 @@ FastGaussianBlurOperation::FastGaussianBlurOperation() : BlurBaseOperation(COM_D
this->m_iirgaus = NULL;
}
-void FastGaussianBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void FastGaussianBlurOperation::executePixel(float output[4], int x, int y, void *data)
{
MemoryBuffer *newData = (MemoryBuffer *)data;
- newData->read(color, x, y);
+ newData->read(output, x, y);
}
bool FastGaussianBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
@@ -79,13 +79,13 @@ void FastGaussianBlurOperation::deinitExecution()
BlurBaseOperation::deinitMutex();
}
-void *FastGaussianBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *FastGaussianBlurOperation::initializeTileData(rcti *rect)
{
lockMutex();
if (!this->m_iirgaus) {
- MemoryBuffer *newBuf = (MemoryBuffer *)this->m_inputProgram->initializeTileData(rect, memoryBuffers);
+ MemoryBuffer *newBuf = (MemoryBuffer *)this->m_inputProgram->initializeTileData(rect);
MemoryBuffer *copy = newBuf->duplicate();
- updateSize(memoryBuffers);
+ updateSize();
int c;
this->m_sx = this->m_data->sizex * this->m_size / 2.0f;
@@ -220,3 +220,88 @@ void FastGaussianBlurOperation::IIR_gauss(MemoryBuffer *src, float sigma, unsign
#undef YVV
}
+
+
+///
+FastGaussianBlurValueOperation::FastGaussianBlurValueOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_VALUE);
+ this->addOutputSocket(COM_DT_VALUE);
+ this->m_iirgaus = NULL;
+ this->m_inputprogram = NULL;
+ this->m_sigma = 1.0f;
+ setComplex(true);
+}
+
+void FastGaussianBlurValueOperation::executePixel(float output[4], int x, int y, void *data)
+{
+ MemoryBuffer *newData = (MemoryBuffer *)data;
+ newData->read(output, x, y);
+}
+
+bool FastGaussianBlurValueOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+
+ if (this->m_iirgaus) {
+ return false;
+ }
+ else {
+ newInput.xmin = 0;
+ newInput.ymin = 0;
+ newInput.xmax = this->getWidth();
+ newInput.ymax = this->getHeight();
+ }
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+}
+
+void FastGaussianBlurValueOperation::initExecution()
+{
+ this->m_inputprogram = getInputSocketReader(0);
+ initMutex();
+}
+
+void FastGaussianBlurValueOperation::deinitExecution()
+{
+ if (this->m_iirgaus) {
+ delete this->m_iirgaus;
+ this->m_iirgaus = NULL;
+ }
+ deinitMutex();
+}
+
+void *FastGaussianBlurValueOperation::initializeTileData(rcti *rect)
+{
+ lockMutex();
+ if (!this->m_iirgaus) {
+ MemoryBuffer *newBuf = (MemoryBuffer *)this->m_inputprogram->initializeTileData(rect);
+ MemoryBuffer *copy = newBuf->duplicate();
+ FastGaussianBlurOperation::IIR_gauss(copy, this->m_sigma, 0, 3);
+
+ if (this->m_overlay == FAST_GAUSS_OVERLAY_MIN) {
+ float *src = newBuf->getBuffer();
+ float *dst = copy->getBuffer();
+ for (int i = copy->getWidth() * copy->getHeight() * COM_NUMBER_OF_CHANNELS; i != 0; i--, src++, dst++) {
+ if (*src < *dst) {
+ *dst = *src;
+ }
+ }
+ }
+ else if (this->m_overlay == FAST_GAUSS_OVERLAY_MAX) {
+ float *src = newBuf->getBuffer();
+ float *dst = copy->getBuffer();
+ for (int i = copy->getWidth() * copy->getHeight() * COM_NUMBER_OF_CHANNELS; i != 0; i--, src++, dst++) {
+ if (*src > *dst) {
+ *dst = *src;
+ }
+ }
+ }
+
+// newBuf->
+
+ this->m_iirgaus = copy;
+ }
+ unlockMutex();
+ return this->m_iirgaus;
+}
+
diff --git a/source/blender/compositor/operations/COM_FastGaussianBlurOperation.h b/source/blender/compositor/operations/COM_FastGaussianBlurOperation.h
index 1e303b23869..58bf1d4f596 100644
--- a/source/blender/compositor/operations/COM_FastGaussianBlurOperation.h
+++ b/source/blender/compositor/operations/COM_FastGaussianBlurOperation.h
@@ -34,13 +34,44 @@ private:
public:
FastGaussianBlurOperation();
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
static void IIR_gauss(MemoryBuffer *src, float sigma, unsigned int channel, unsigned int xy);
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
void deinitExecution();
void initExecution();
+};
+
+enum {
+ FAST_GAUSS_OVERLAY_MIN = -1,
+ FAST_GAUSS_OVERLAY_NONE = 0,
+ FAST_GAUSS_OVERLAY_MAX = 1
+};
+
+class FastGaussianBlurValueOperation : public NodeOperation {
+private:
+ float m_sigma;
+ MemoryBuffer *m_iirgaus;
+ SocketReader *m_inputprogram;
+
+ /**
+ * -1: re-mix with darker
+ * 0: do nothing
+ * 1 re-mix with lighter */
+ int m_overlay;
+public:
+ FastGaussianBlurValueOperation();
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+ void executePixel(float output[4], int x, int y, void *data);
+ void *initializeTileData(rcti *rect);
+ void deinitExecution();
+ void initExecution();
+ void setSigma(float sigma) { this->m_sigma = sigma; }
+
+ /* used for DOF blurring ZBuffer */
+ void setOverlay(int overlay) { this->m_overlay = overlay; }
};
+
#endif
diff --git a/source/blender/compositor/operations/COM_FlipOperation.cpp b/source/blender/compositor/operations/COM_FlipOperation.cpp
index 60dabb86bb5..526eba34d86 100644
--- a/source/blender/compositor/operations/COM_FlipOperation.cpp
+++ b/source/blender/compositor/operations/COM_FlipOperation.cpp
@@ -42,12 +42,12 @@ void FlipOperation::deinitExecution()
}
-void FlipOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void FlipOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float nx = this->m_flipX ? this->getWidth() - 1 - x : x;
float ny = this->m_flipY ? this->getHeight() - 1 - y : y;
- this->m_inputOperation->read(color, nx, ny, sampler, inputBuffers);
+ this->m_inputOperation->read(output, nx, ny, sampler);
}
bool FlipOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
diff --git a/source/blender/compositor/operations/COM_FlipOperation.h b/source/blender/compositor/operations/COM_FlipOperation.h
index 5442774c94c..018617cea8a 100644
--- a/source/blender/compositor/operations/COM_FlipOperation.h
+++ b/source/blender/compositor/operations/COM_FlipOperation.h
@@ -33,7 +33,7 @@ private:
public:
FlipOperation();
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_GammaCorrectOperation.cpp b/source/blender/compositor/operations/COM_GammaCorrectOperation.cpp
index db8d54a2f3c..af990f4f3e0 100644
--- a/source/blender/compositor/operations/COM_GammaCorrectOperation.cpp
+++ b/source/blender/compositor/operations/COM_GammaCorrectOperation.cpp
@@ -34,10 +34,10 @@ void GammaCorrectOperation::initExecution()
this->m_inputProgram = this->getInputSocketReader(0);
}
-void GammaCorrectOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void GammaCorrectOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor[4];
- this->m_inputProgram->read(inputColor, x, y, sampler, inputBuffers);
+ this->m_inputProgram->read(inputColor, x, y, sampler);
if (inputColor[3] > 0.0f) {
inputColor[0] /= inputColor[3];
inputColor[1] /= inputColor[3];
@@ -45,18 +45,18 @@ void GammaCorrectOperation::executePixel(float *color, float x, float y, PixelSa
}
/* check for negative to avoid nan's */
- color[0] = inputColor[0] > 0.0f ? inputColor[0] * inputColor[0] : 0.0f;
- color[1] = inputColor[1] > 0.0f ? inputColor[1] * inputColor[1] : 0.0f;
- color[2] = inputColor[2] > 0.0f ? inputColor[2] * inputColor[2] : 0.0f;
+ output[0] = inputColor[0] > 0.0f ? inputColor[0] * inputColor[0] : 0.0f;
+ output[1] = inputColor[1] > 0.0f ? inputColor[1] * inputColor[1] : 0.0f;
+ output[2] = inputColor[2] > 0.0f ? inputColor[2] * inputColor[2] : 0.0f;
inputColor[0] *= inputColor[3];
inputColor[1] *= inputColor[3];
inputColor[2] *= inputColor[3];
- color[0] = inputColor[0];
- color[1] = inputColor[1];
- color[2] = inputColor[2];
- color[3] = inputColor[3];
+ output[0] = inputColor[0];
+ output[1] = inputColor[1];
+ output[2] = inputColor[2];
+ output[3] = inputColor[3];
}
void GammaCorrectOperation::deinitExecution()
@@ -75,10 +75,10 @@ void GammaUncorrectOperation::initExecution()
this->m_inputProgram = this->getInputSocketReader(0);
}
-void GammaUncorrectOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void GammaUncorrectOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor[4];
- this->m_inputProgram->read(inputColor, x, y, sampler, inputBuffers);
+ this->m_inputProgram->read(inputColor, x, y, sampler);
if (inputColor[3] > 0.0f) {
inputColor[0] /= inputColor[3];
@@ -86,18 +86,18 @@ void GammaUncorrectOperation::executePixel(float *color, float x, float y, Pixel
inputColor[2] /= inputColor[3];
}
- color[0] = inputColor[0] > 0.0f ? sqrtf(inputColor[0]) : 0.0f;
- color[1] = inputColor[1] > 0.0f ? sqrtf(inputColor[1]) : 0.0f;
- color[2] = inputColor[2] > 0.0f ? sqrtf(inputColor[2]) : 0.0f;
+ output[0] = inputColor[0] > 0.0f ? sqrtf(inputColor[0]) : 0.0f;
+ output[1] = inputColor[1] > 0.0f ? sqrtf(inputColor[1]) : 0.0f;
+ output[2] = inputColor[2] > 0.0f ? sqrtf(inputColor[2]) : 0.0f;
inputColor[0] *= inputColor[3];
inputColor[1] *= inputColor[3];
inputColor[2] *= inputColor[3];
- color[0] = inputColor[0];
- color[1] = inputColor[1];
- color[2] = inputColor[2];
- color[3] = inputColor[3];
+ output[0] = inputColor[0];
+ output[1] = inputColor[1];
+ output[2] = inputColor[2];
+ output[3] = inputColor[3];
}
void GammaUncorrectOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_GammaCorrectOperation.h b/source/blender/compositor/operations/COM_GammaCorrectOperation.h
index 4db911bb9b5..514855b4f56 100644
--- a/source/blender/compositor/operations/COM_GammaCorrectOperation.h
+++ b/source/blender/compositor/operations/COM_GammaCorrectOperation.h
@@ -38,7 +38,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
@@ -64,7 +64,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_GammaOperation.cpp b/source/blender/compositor/operations/COM_GammaOperation.cpp
index 9ccc76f4392..326031c5984 100644
--- a/source/blender/compositor/operations/COM_GammaOperation.cpp
+++ b/source/blender/compositor/operations/COM_GammaOperation.cpp
@@ -37,20 +37,20 @@ void GammaOperation::initExecution()
this->m_inputGammaProgram = this->getInputSocketReader(1);
}
-void GammaOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void GammaOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue[4];
float inputGamma[4];
- this->m_inputProgram->read(inputValue, x, y, sampler, inputBuffers);
- this->m_inputGammaProgram->read(inputGamma, x, y, sampler, inputBuffers);
+ this->m_inputProgram->read(inputValue, x, y, sampler);
+ this->m_inputGammaProgram->read(inputGamma, x, y, sampler);
const float gamma = inputGamma[0];
/* check for negative to avoid nan's */
- color[0] = inputValue[0] > 0.0f ? powf(inputValue[0], gamma) : inputValue[0];
- color[1] = inputValue[1] > 0.0f ? powf(inputValue[1], gamma) : inputValue[1];
- color[2] = inputValue[2] > 0.0f ? powf(inputValue[2], gamma) : inputValue[2];
+ output[0] = inputValue[0] > 0.0f ? powf(inputValue[0], gamma) : inputValue[0];
+ output[1] = inputValue[1] > 0.0f ? powf(inputValue[1], gamma) : inputValue[1];
+ output[2] = inputValue[2] > 0.0f ? powf(inputValue[2], gamma) : inputValue[2];
- color[3] = inputValue[3];
+ output[3] = inputValue[3];
}
void GammaOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_GammaOperation.h b/source/blender/compositor/operations/COM_GammaOperation.h
index 758f7bda04d..4482f7be34a 100644
--- a/source/blender/compositor/operations/COM_GammaOperation.h
+++ b/source/blender/compositor/operations/COM_GammaOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.cpp b/source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.cpp
index a138d4be1d9..8c5e5faf12a 100644
--- a/source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.cpp
@@ -23,6 +23,7 @@
#include "COM_GaussianAlphaXBlurOperation.h"
#include "BLI_math.h"
+#include "MEM_guardedalloc.h"
extern "C" {
#include "RE_pipeline.h"
@@ -32,15 +33,16 @@ GaussianAlphaXBlurOperation::GaussianAlphaXBlurOperation() : BlurBaseOperation(C
{
this->m_gausstab = NULL;
this->m_rad = 0;
+ this->m_falloff = -1; /* intentionally invalid, so we can detect uninitialized values */
}
-void *GaussianAlphaXBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *GaussianAlphaXBlurOperation::initializeTileData(rcti *rect)
{
lockMutex();
if (!this->m_sizeavailable) {
- updateGauss(memoryBuffers);
+ updateGauss();
}
- void *buffer = getInputOperation(0)->initializeTileData(NULL, memoryBuffers);
+ void *buffer = getInputOperation(0)->initializeTileData(NULL);
unlockMutex();
return buffer;
}
@@ -62,10 +64,10 @@ void GaussianAlphaXBlurOperation::initExecution()
}
}
-void GaussianAlphaXBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
+void GaussianAlphaXBlurOperation::updateGauss()
{
if (this->m_gausstab == NULL) {
- updateSize(memoryBuffers);
+ updateSize();
float rad = this->m_size * this->m_data->sizex;
if (rad < 1)
rad = 1;
@@ -75,7 +77,7 @@ void GaussianAlphaXBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
}
if (this->m_distbuf_inv == NULL) {
- updateSize(memoryBuffers);
+ updateSize();
float rad = this->m_size * this->m_data->sizex;
if (rad < 1)
rad = 1;
@@ -90,7 +92,7 @@ BLI_INLINE float finv_test(const float f, const bool test)
return (LIKELY(test == false)) ? f : 1.0f - f;
}
-void GaussianAlphaXBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void GaussianAlphaXBlurOperation::executePixel(float output[4], int x, int y, void *data)
{
const bool do_invert = this->m_do_subtract;
MemoryBuffer *inputBuffer = (MemoryBuffer *)data;
@@ -148,15 +150,15 @@ void GaussianAlphaXBlurOperation::executePixel(float *color, int x, int y, Memor
/* blend between the max value and gauss blue - gives nice feather */
const float value_blur = alpha_accum / multiplier_accum;
const float value_final = (value_max * distfacinv_max) + (value_blur * (1.0f - distfacinv_max));
- color[0] = finv_test(value_final, do_invert);
+ output[0] = finv_test(value_final, do_invert);
}
void GaussianAlphaXBlurOperation::deinitExecution()
{
BlurBaseOperation::deinitExecution();
- delete [] this->m_gausstab;
+ MEM_freeN(this->m_gausstab);
this->m_gausstab = NULL;
- delete [] this->m_distbuf_inv;
+ MEM_freeN(this->m_distbuf_inv);
this->m_distbuf_inv = NULL;
deinitMutex();
diff --git a/source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.h b/source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.h
index 59797c27952..21e80c5daf5 100644
--- a/source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.h
+++ b/source/blender/compositor/operations/COM_GaussianAlphaXBlurOperation.h
@@ -33,14 +33,14 @@ private:
int m_falloff; /* falloff for distbuf_inv */
bool m_do_subtract;
int m_rad;
- void updateGauss(MemoryBuffer **memoryBuffers);
+ void updateGauss();
public:
GaussianAlphaXBlurOperation();
/**
* @brief the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* @brief initialize the execution
@@ -52,7 +52,7 @@ public:
*/
void deinitExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
/**
diff --git a/source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.cpp b/source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.cpp
index ab5f8d33850..197715595ed 100644
--- a/source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.cpp
@@ -23,6 +23,7 @@
#include "COM_GaussianAlphaYBlurOperation.h"
#include "BLI_math.h"
+#include "MEM_guardedalloc.h"
extern "C" {
#include "RE_pipeline.h"
@@ -32,15 +33,16 @@ GaussianAlphaYBlurOperation::GaussianAlphaYBlurOperation() : BlurBaseOperation(C
{
this->m_gausstab = NULL;
this->m_rad = 0;
+ this->m_falloff = -1; /* intentionally invalid, so we can detect uninitialized values */
}
-void *GaussianAlphaYBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *GaussianAlphaYBlurOperation::initializeTileData(rcti *rect)
{
lockMutex();
if (!this->m_sizeavailable) {
- updateGauss(memoryBuffers);
+ updateGauss();
}
- void *buffer = getInputOperation(0)->initializeTileData(NULL, memoryBuffers);
+ void *buffer = getInputOperation(0)->initializeTileData(NULL);
unlockMutex();
return buffer;
}
@@ -62,10 +64,10 @@ void GaussianAlphaYBlurOperation::initExecution()
}
}
-void GaussianAlphaYBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
+void GaussianAlphaYBlurOperation::updateGauss()
{
if (this->m_gausstab == NULL) {
- updateSize(memoryBuffers);
+ updateSize();
float rad = this->m_size * this->m_data->sizey;
if (rad < 1)
rad = 1;
@@ -75,7 +77,7 @@ void GaussianAlphaYBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
}
if (this->m_distbuf_inv == NULL) {
- updateSize(memoryBuffers);
+ updateSize();
float rad = this->m_size * this->m_data->sizex;
if (rad < 1)
rad = 1;
@@ -90,7 +92,7 @@ BLI_INLINE float finv_test(const float f, const bool test)
return (LIKELY(test == false)) ? f : 1.0f - f;
}
-void GaussianAlphaYBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void GaussianAlphaYBlurOperation::executePixel(float output[4], int x, int y, void *data)
{
const bool do_invert = this->m_do_subtract;
MemoryBuffer *inputBuffer = (MemoryBuffer *)data;
@@ -148,15 +150,15 @@ void GaussianAlphaYBlurOperation::executePixel(float *color, int x, int y, Memor
/* blend between the max value and gauss blue - gives nice feather */
const float value_blur = alpha_accum / multiplier_accum;
const float value_final = (value_max * distfacinv_max) + (value_blur * (1.0f - distfacinv_max));
- color[0] = finv_test(value_final, do_invert);
+ output[0] = finv_test(value_final, do_invert);
}
void GaussianAlphaYBlurOperation::deinitExecution()
{
BlurBaseOperation::deinitExecution();
- delete [] this->m_gausstab;
+ MEM_freeN(this->m_gausstab);
this->m_gausstab = NULL;
- delete [] this->m_distbuf_inv;
+ MEM_freeN(this->m_distbuf_inv);
this->m_distbuf_inv = NULL;
deinitMutex();
diff --git a/source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.h b/source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.h
index e0789db7815..cb8b2e048ce 100644
--- a/source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.h
+++ b/source/blender/compositor/operations/COM_GaussianAlphaYBlurOperation.h
@@ -33,14 +33,14 @@ private:
bool m_do_subtract;
int m_falloff;
int m_rad;
- void updateGauss(MemoryBuffer **memoryBuffers);
+ void updateGauss();
public:
GaussianAlphaYBlurOperation();
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* @brief initialize the execution
@@ -52,7 +52,7 @@ public:
*/
void deinitExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
/**
diff --git a/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.cpp b/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.cpp
index ac91d3336e2..a9bcb2dd752 100644
--- a/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.cpp
@@ -22,7 +22,7 @@
#include "COM_GaussianBokehBlurOperation.h"
#include "BLI_math.h"
-
+#include "MEM_guardedalloc.h"
extern "C" {
#include "RE_pipeline.h"
}
@@ -32,13 +32,13 @@ GaussianBokehBlurOperation::GaussianBokehBlurOperation() : BlurBaseOperation(COM
this->m_gausstab = NULL;
}
-void *GaussianBokehBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *GaussianBokehBlurOperation::initializeTileData(rcti *rect)
{
lockMutex();
if (!this->m_sizeavailable) {
- updateGauss(memoryBuffers);
+ updateGauss();
}
- void *buffer = getInputOperation(0)->initializeTileData(NULL, memoryBuffers);
+ void *buffer = getInputOperation(0)->initializeTileData(NULL);
unlockMutex();
return buffer;
}
@@ -50,11 +50,11 @@ void GaussianBokehBlurOperation::initExecution()
initMutex();
if (this->m_sizeavailable) {
- updateGauss(NULL);
+ updateGauss();
}
}
-void GaussianBokehBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
+void GaussianBokehBlurOperation::updateGauss()
{
if (this->m_gausstab == NULL) {
float radxf;
@@ -67,7 +67,7 @@ void GaussianBokehBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
const float width = this->getWidth();
const float height = this->getHeight();
if (!this->m_sizeavailable) {
- updateSize(memoryBuffers);
+ updateSize();
}
radxf = this->m_size * (float)this->m_data->sizex;
if (radxf > width / 2.0f)
@@ -88,7 +88,7 @@ void GaussianBokehBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
n = (2 * this->m_radx + 1) * (2 * this->m_rady + 1);
/* create a full filter image */
- ddgauss = new float[n];
+ ddgauss = (float *)MEM_mallocN(sizeof(float) * n, __func__);
dgauss = ddgauss;
val = 0.0f;
for (j = -this->m_rady; j <= this->m_rady; j++) {
@@ -103,8 +103,9 @@ void GaussianBokehBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
}
if (val != 0.0f) {
val = 1.0f / val;
- for (j = n - 1; j >= 0; j--)
+ for (j = n - 1; j >= 0; j--) {
ddgauss[j] *= val;
+ }
}
else ddgauss[4] = 1.0f;
@@ -112,7 +113,7 @@ void GaussianBokehBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
}
}
-void GaussianBokehBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void GaussianBokehBlurOperation::executePixel(float output[4], int x, int y, void *data)
{
float tempColor[4];
tempColor[0] = 0;
@@ -138,8 +139,10 @@ void GaussianBokehBlurOperation::executePixel(float *color, int x, int y, Memory
int index;
int step = QualityStepHelper::getStep();
int offsetadd = QualityStepHelper::getOffsetAdd();
+ const int addConst = (minx - x + this->m_radx);
+ const int mulConst = (this->m_radx * 2 + 1);
for (int ny = miny; ny < maxy; ny += step) {
- index = ((ny - y) + this->m_rady) * (this->m_radx * 2 + 1) + (minx - x + this->m_radx);
+ index = ((ny - y) + this->m_rady) * mulConst + addConst;
int bufferindex = ((minx - bufferstartx) * 4) + ((ny - bufferstarty) * 4 * bufferwidth);
for (int nx = minx; nx < maxx; nx += step) {
const float multiplier = this->m_gausstab[index];
@@ -150,13 +153,13 @@ void GaussianBokehBlurOperation::executePixel(float *color, int x, int y, Memory
}
}
- mul_v4_v4fl(color, tempColor, 1.0f / multiplier_accum);
+ mul_v4_v4fl(output, tempColor, 1.0f / multiplier_accum);
}
void GaussianBokehBlurOperation::deinitExecution()
{
BlurBaseOperation::deinitExecution();
- delete [] this->m_gausstab;
+ MEM_freeN(this->m_gausstab);
this->m_gausstab = NULL;
deinitMutex();
@@ -194,3 +197,160 @@ bool GaussianBokehBlurOperation::determineDependingAreaOfInterest(rcti *input, R
return BlurBaseOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
}
}
+
+// reference image
+GaussianBlurReferenceOperation::GaussianBlurReferenceOperation() : BlurBaseOperation(COM_DT_COLOR)
+{
+ this->m_maintabs = NULL;
+}
+
+void *GaussianBlurReferenceOperation::initializeTileData(rcti *rect)
+{
+ void *buffer = getInputOperation(0)->initializeTileData(NULL);
+ return buffer;
+}
+
+void GaussianBlurReferenceOperation::initExecution()
+{
+ BlurBaseOperation::initExecution();
+ // setup gaustab
+ this->m_data->image_in_width = this->getWidth();
+ this->m_data->image_in_height = this->getHeight();
+ if (this->m_data->relative) {
+ switch (this->m_data->aspect) {
+ case CMP_NODE_BLUR_ASPECT_NONE:
+ this->m_data->sizex = (int)(this->m_data->percentx * 0.01f * this->m_data->image_in_width);
+ this->m_data->sizey = (int)(this->m_data->percenty * 0.01f * this->m_data->image_in_height);
+ break;
+ case CMP_NODE_BLUR_ASPECT_Y:
+ this->m_data->sizex = (int)(this->m_data->percentx * 0.01f * this->m_data->image_in_width);
+ this->m_data->sizey = (int)(this->m_data->percenty * 0.01f * this->m_data->image_in_width);
+ break;
+ case CMP_NODE_BLUR_ASPECT_X:
+ this->m_data->sizex = (int)(this->m_data->percentx * 0.01f * this->m_data->image_in_height);
+ this->m_data->sizey = (int)(this->m_data->percenty * 0.01f * this->m_data->image_in_height);
+ break;
+ }
+ }
+
+
+ /* horizontal */
+ m_radx = (float)this->m_data->sizex;
+ int imgx = getWidth()/2;
+ if (m_radx > imgx)
+ m_radx = imgx;
+ else if (m_radx < 1)
+ m_radx = 1;
+ m_radxf = (float)m_radx;
+
+ /* vertical */
+ m_rady = (float)this->m_data->sizey;
+ int imgy = getHeight()/2;
+ if (m_rady > imgy)
+ m_rady = imgy;
+ else if (m_rady < 1)
+ m_rady = 1;
+ m_radyf = (float)m_rady;
+ updateGauss();
+}
+
+void GaussianBlurReferenceOperation::updateGauss()
+{
+ int i;
+ int x = MAX2(m_radx, m_rady);
+ this->m_maintabs = (float **)MEM_mallocN(x * sizeof(float *), "gauss array");
+ for (i = 0; i < x; i++) {
+ m_maintabs[i] = make_gausstab(i + 1);
+ }
+}
+
+void GaussianBlurReferenceOperation::executePixel(float output[4], int x, int y, void *data)
+{
+ MemoryBuffer *memorybuffer = (MemoryBuffer *)data;
+ float *buffer = memorybuffer->getBuffer();
+ float *gausstabx, *gausstabcenty;
+ float *gausstaby, *gausstabcentx;
+ int i, j;
+ float *src;
+ register float sum, val;
+ float rval, gval, bval, aval;
+ int imgx = getWidth();
+ int imgy = getHeight();
+ float tempSize[4];
+ this->m_inputSize->read(tempSize, x, y, data);
+ float refSize = tempSize[0];
+ int refradx = (int)(refSize * m_radxf);
+ int refrady = (int)(refSize * m_radyf);
+ if (refradx > m_radx) refradx = m_radx;
+ else if (refradx < 1) refradx = 1;
+ if (refrady > m_rady) refrady = m_rady;
+ else if (refrady < 1) refrady = 1;
+
+ if (refradx == 1 && refrady == 1) {
+ memorybuffer->readNoCheck(output, x, y);
+ }
+ else {
+ int minxr = x - refradx < 0 ? -x : -refradx;
+ int maxxr = x + refradx > imgx ? imgx - x : refradx;
+ int minyr = y - refrady < 0 ? -y : -refrady;
+ int maxyr = y + refrady > imgy ? imgy - y : refrady;
+
+ float *srcd = buffer + COM_NUMBER_OF_CHANNELS * ( (y + minyr) * imgx + x + minxr);
+
+ gausstabx = m_maintabs[refradx - 1];
+ gausstabcentx = gausstabx + refradx;
+ gausstaby = m_maintabs[refrady - 1];
+ gausstabcenty = gausstaby + refrady;
+
+ sum = gval = rval = bval = aval = 0.0f;
+ for (i = minyr; i < maxyr; i++, srcd += COM_NUMBER_OF_CHANNELS * imgx) {
+ src = srcd;
+ for (j = minxr; j < maxxr; j++, src += COM_NUMBER_OF_CHANNELS) {
+
+ val = gausstabcenty[i] * gausstabcentx[j];
+ sum += val;
+ rval += val * src[0];
+ gval += val * src[1];
+ bval += val * src[2];
+ aval += val * src[3];
+ }
+ }
+ sum = 1.0f / sum;
+ output[0] = rval * sum;
+ output[1] = gval * sum;
+ output[2] = bval * sum;
+ output[3] = aval * sum;
+ }
+
+}
+
+void GaussianBlurReferenceOperation::deinitExecution()
+{
+ int x, i;
+ x = MAX2(m_radx, m_rady);
+ for (i = 0; i < x; i++) {
+ MEM_freeN(m_maintabs[i]);
+ }
+ MEM_freeN(m_maintabs);
+ BlurBaseOperation::deinitExecution();
+}
+
+bool GaussianBlurReferenceOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ rcti newInput;
+ NodeOperation *operation = this->getInputOperation(1);
+
+ if (operation->determineDependingAreaOfInterest(input, readOperation, output)) {
+ return true;
+ }
+ else {
+ int addx = this->m_data->sizex+2;
+ int addy = this->m_data->sizey+2;
+ newInput.xmax = input->xmax + addx;
+ newInput.xmin = input->xmin - addx;
+ newInput.ymax = input->ymax + addy;
+ newInput.ymin = input->ymin - addy;
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+ }
+}
+
diff --git a/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.h b/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.h
index 54dc8caed53..9fcf1e10e6a 100644
--- a/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.h
+++ b/source/blender/compositor/operations/COM_GaussianBokehBlurOperation.h
@@ -30,16 +30,16 @@ class GaussianBokehBlurOperation : public BlurBaseOperation {
private:
float *m_gausstab;
int m_radx, m_rady;
- void updateGauss(MemoryBuffer **memoryBuffers);
+ void updateGauss();
public:
GaussianBokehBlurOperation();
void initExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Deinitialize the execution
@@ -48,4 +48,32 @@ public:
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
};
+
+class GaussianBlurReferenceOperation : public BlurBaseOperation {
+private:
+ float **m_maintabs;
+
+ void updateGauss();
+ int m_radx;
+ int m_rady;
+ float m_radxf;
+ float m_radyf;
+
+public:
+ GaussianBlurReferenceOperation();
+ void initExecution();
+ void *initializeTileData(rcti *rect);
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float output[4], int x, int y, void *data);
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+};
+
#endif
diff --git a/source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp b/source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp
index d18dd17528d..3ab60a1faa9 100644
--- a/source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp
@@ -22,6 +22,7 @@
#include "COM_GaussianXBlurOperation.h"
#include "BLI_math.h"
+#include "MEM_guardedalloc.h"
extern "C" {
#include "RE_pipeline.h"
@@ -33,13 +34,13 @@ GaussianXBlurOperation::GaussianXBlurOperation() : BlurBaseOperation(COM_DT_COLO
this->m_rad = 0;
}
-void *GaussianXBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *GaussianXBlurOperation::initializeTileData(rcti *rect)
{
lockMutex();
if (!this->m_sizeavailable) {
- updateGauss(memoryBuffers);
+ updateGauss();
}
- void *buffer = getInputOperation(0)->initializeTileData(NULL, memoryBuffers);
+ void *buffer = getInputOperation(0)->initializeTileData(NULL);
unlockMutex();
return buffer;
}
@@ -60,10 +61,10 @@ void GaussianXBlurOperation::initExecution()
}
}
-void GaussianXBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
+void GaussianXBlurOperation::updateGauss()
{
if (this->m_gausstab == NULL) {
- updateSize(memoryBuffers);
+ updateSize();
float rad = this->m_size * this->m_data->sizex;
if (rad < 1)
rad = 1;
@@ -73,7 +74,7 @@ void GaussianXBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
}
}
-void GaussianXBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void GaussianXBlurOperation::executePixel(float output[4], int x, int y, void *data)
{
float color_accum[4] = {0.0f, 0.0f, 0.0f, 0.0f};
float multiplier_accum = 0.0f;
@@ -92,25 +93,25 @@ void GaussianXBlurOperation::executePixel(float *color, int x, int y, MemoryBuff
maxy = min(maxy, inputBuffer->getRect()->ymax);
maxx = min(maxx, inputBuffer->getRect()->xmax);
- int index;
int step = getStep();
int offsetadd = getOffsetAdd();
int bufferindex = ((minx - bufferstartx) * 4) + ((miny - bufferstarty) * 4 * bufferwidth);
- for (int nx = minx; nx < maxx; nx += step) {
- index = (nx - x) + this->m_rad;
+ for (int nx = minx, index = (minx - x) + this->m_rad; nx < maxx; nx += step, index += step) {
const float multiplier = this->m_gausstab[index];
madd_v4_v4fl(color_accum, &buffer[bufferindex], multiplier);
multiplier_accum += multiplier;
bufferindex += offsetadd;
}
- mul_v4_v4fl(color, color_accum, 1.0f / multiplier_accum);
+ mul_v4_v4fl(output, color_accum, 1.0f / multiplier_accum);
}
void GaussianXBlurOperation::deinitExecution()
{
BlurBaseOperation::deinitExecution();
- delete [] this->m_gausstab;
- this->m_gausstab = NULL;
+ if (this->m_gausstab) {
+ MEM_freeN(this->m_gausstab);
+ this->m_gausstab = NULL;
+ }
deinitMutex();
}
@@ -118,17 +119,19 @@ void GaussianXBlurOperation::deinitExecution()
bool GaussianXBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
{
rcti newInput;
- rcti sizeInput;
- sizeInput.xmin = 0;
- sizeInput.ymin = 0;
- sizeInput.xmax = 5;
- sizeInput.ymax = 5;
- NodeOperation *operation = this->getInputOperation(1);
- if (operation->determineDependingAreaOfInterest(&sizeInput, readOperation, output)) {
- return true;
+ if (!this->m_sizeavailable) {
+ rcti sizeInput;
+ sizeInput.xmin = 0;
+ sizeInput.ymin = 0;
+ sizeInput.xmax = 5;
+ sizeInput.ymax = 5;
+ NodeOperation *operation = this->getInputOperation(1);
+ if (operation->determineDependingAreaOfInterest(&sizeInput, readOperation, output)) {
+ return true;
+ }
}
- else {
+ {
if (this->m_sizeavailable && this->m_gausstab != NULL) {
newInput.xmax = input->xmax + this->m_rad;
newInput.xmin = input->xmin - this->m_rad;
diff --git a/source/blender/compositor/operations/COM_GaussianXBlurOperation.h b/source/blender/compositor/operations/COM_GaussianXBlurOperation.h
index 9b5c2131b74..4c3786b0810 100644
--- a/source/blender/compositor/operations/COM_GaussianXBlurOperation.h
+++ b/source/blender/compositor/operations/COM_GaussianXBlurOperation.h
@@ -29,14 +29,14 @@ class GaussianXBlurOperation : public BlurBaseOperation {
private:
float *m_gausstab;
int m_rad;
- void updateGauss(MemoryBuffer **memoryBuffers);
+ void updateGauss();
public:
GaussianXBlurOperation();
/**
* @brief the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* @brief initialize the execution
@@ -48,7 +48,7 @@ public:
*/
void deinitExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
};
#endif
diff --git a/source/blender/compositor/operations/COM_GaussianYBlurOperation.cpp b/source/blender/compositor/operations/COM_GaussianYBlurOperation.cpp
index d2d30da8ddf..7ab00b202e1 100644
--- a/source/blender/compositor/operations/COM_GaussianYBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_GaussianYBlurOperation.cpp
@@ -22,6 +22,7 @@
#include "COM_GaussianYBlurOperation.h"
#include "BLI_math.h"
+#include "MEM_guardedalloc.h"
extern "C" {
#include "RE_pipeline.h"
@@ -33,13 +34,13 @@ GaussianYBlurOperation::GaussianYBlurOperation() : BlurBaseOperation(COM_DT_COLO
this->m_rad = 0;
}
-void *GaussianYBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *GaussianYBlurOperation::initializeTileData(rcti *rect)
{
lockMutex();
if (!this->m_sizeavailable) {
- updateGauss(memoryBuffers);
+ updateGauss();
}
- void *buffer = getInputOperation(0)->initializeTileData(NULL, memoryBuffers);
+ void *buffer = getInputOperation(0)->initializeTileData(NULL);
unlockMutex();
return buffer;
}
@@ -60,10 +61,10 @@ void GaussianYBlurOperation::initExecution()
}
}
-void GaussianYBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
+void GaussianYBlurOperation::updateGauss()
{
if (this->m_gausstab == NULL) {
- updateSize(memoryBuffers);
+ updateSize();
float rad = this->m_size * this->m_data->sizey;
if (rad < 1)
rad = 1;
@@ -73,7 +74,7 @@ void GaussianYBlurOperation::updateGauss(MemoryBuffer **memoryBuffers)
}
}
-void GaussianYBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void GaussianYBlurOperation::executePixel(float output[4], int x, int y, void *data)
{
float color_accum[4] = {0.0f, 0.0f, 0.0f, 0.0f};
float multiplier_accum = 0.0f;
@@ -94,21 +95,24 @@ void GaussianYBlurOperation::executePixel(float *color, int x, int y, MemoryBuff
int index;
int step = getStep();
+ const int bufferIndexx = ((minx - bufferstartx) * 4) ;
for (int ny = miny; ny < maxy; ny += step) {
index = (ny - y) + this->m_rad;
- int bufferindex = ((minx - bufferstartx) * 4) + ((ny - bufferstarty) * 4 * bufferwidth);
+ int bufferindex = bufferIndexx + ((ny - bufferstarty) * 4 * bufferwidth);
const float multiplier = this->m_gausstab[index];
madd_v4_v4fl(color_accum, &buffer[bufferindex], multiplier);
multiplier_accum += multiplier;
}
- mul_v4_v4fl(color, color_accum, 1.0f / multiplier_accum);
+ mul_v4_v4fl(output, color_accum, 1.0f / multiplier_accum);
}
void GaussianYBlurOperation::deinitExecution()
{
BlurBaseOperation::deinitExecution();
- delete [] this->m_gausstab;
- this->m_gausstab = NULL;
+ if (this->m_gausstab) {
+ MEM_freeN(this->m_gausstab);
+ this->m_gausstab = NULL;
+ }
deinitMutex();
}
@@ -116,17 +120,19 @@ void GaussianYBlurOperation::deinitExecution()
bool GaussianYBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
{
rcti newInput;
- rcti sizeInput;
- sizeInput.xmin = 0;
- sizeInput.ymin = 0;
- sizeInput.xmax = 5;
- sizeInput.ymax = 5;
- NodeOperation *operation = this->getInputOperation(1);
- if (operation->determineDependingAreaOfInterest(&sizeInput, readOperation, output)) {
- return true;
+ if (!m_sizeavailable) {
+ rcti sizeInput;
+ sizeInput.xmin = 0;
+ sizeInput.ymin = 0;
+ sizeInput.xmax = 5;
+ sizeInput.ymax = 5;
+ NodeOperation *operation = this->getInputOperation(1);
+ if (operation->determineDependingAreaOfInterest(&sizeInput, readOperation, output)) {
+ return true;
+ }
}
- else {
+ {
if (this->m_sizeavailable && this->m_gausstab != NULL) {
newInput.xmax = input->xmax;
newInput.xmin = input->xmin;
diff --git a/source/blender/compositor/operations/COM_GaussianYBlurOperation.h b/source/blender/compositor/operations/COM_GaussianYBlurOperation.h
index f4d40c231dc..69dcb7e48fb 100644
--- a/source/blender/compositor/operations/COM_GaussianYBlurOperation.h
+++ b/source/blender/compositor/operations/COM_GaussianYBlurOperation.h
@@ -29,14 +29,14 @@ class GaussianYBlurOperation : public BlurBaseOperation {
private:
float *m_gausstab;
int m_rad;
- void updateGauss(MemoryBuffer **memoryBuffers);
+ void updateGauss();
public:
GaussianYBlurOperation();
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* @brief initialize the execution
@@ -48,7 +48,7 @@ public:
*/
void deinitExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
};
#endif
diff --git a/source/blender/compositor/operations/COM_GlareBaseOperation.cpp b/source/blender/compositor/operations/COM_GlareBaseOperation.cpp
index a6678fdecef..8bfc3e436df 100644
--- a/source/blender/compositor/operations/COM_GlareBaseOperation.cpp
+++ b/source/blender/compositor/operations/COM_GlareBaseOperation.cpp
@@ -41,9 +41,9 @@ void GlareBaseOperation::deinitExecution()
SingleThreadedNodeOperation::deinitExecution();
}
-MemoryBuffer *GlareBaseOperation::createMemoryBuffer(rcti *rect2, MemoryBuffer **memoryBuffers)
+MemoryBuffer *GlareBaseOperation::createMemoryBuffer(rcti *rect2)
{
- MemoryBuffer *tile = (MemoryBuffer *)this->m_inputProgram->initializeTileData(rect2, memoryBuffers);
+ MemoryBuffer *tile = (MemoryBuffer *)this->m_inputProgram->initializeTileData(rect2);
rcti rect;
rect.xmin = 0;
rect.ymin = 0;
diff --git a/source/blender/compositor/operations/COM_GlareBaseOperation.h b/source/blender/compositor/operations/COM_GlareBaseOperation.h
index 6104ec7a81e..f6a8f6879da 100644
--- a/source/blender/compositor/operations/COM_GlareBaseOperation.h
+++ b/source/blender/compositor/operations/COM_GlareBaseOperation.h
@@ -68,7 +68,7 @@ protected:
virtual void generateGlare(float *data, MemoryBuffer *inputTile, NodeGlare *settings) = 0;
- MemoryBuffer *createMemoryBuffer(rcti *rect, MemoryBuffer **memoryBuffers);
+ MemoryBuffer *createMemoryBuffer(rcti *rect);
};
#endif
diff --git a/source/blender/compositor/operations/COM_GlareFogGlowOperation.cpp b/source/blender/compositor/operations/COM_GlareFogGlowOperation.cpp
index cb4c27a4c80..efdf0134c4b 100644
--- a/source/blender/compositor/operations/COM_GlareFogGlowOperation.cpp
+++ b/source/blender/compositor/operations/COM_GlareFogGlowOperation.cpp
@@ -244,7 +244,7 @@ static void fht_convolve(fREAL *d1, fREAL *d2, unsigned int M, unsigned int N)
}
//------------------------------------------------------------------------------
-void convolve(float *dst, MemoryBuffer *in1, MemoryBuffer *in2)
+static void convolve(float *dst, MemoryBuffer *in1, MemoryBuffer *in2)
{
fREAL *data1, *data2, *fp;
unsigned int w2, h2, hw, hh, log2_w, log2_h;
@@ -260,6 +260,7 @@ void convolve(float *dst, MemoryBuffer *in1, MemoryBuffer *in2)
float *imageBuffer = in1->getBuffer();
MemoryBuffer *rdst = new MemoryBuffer(NULL, in1->getRect());
+ memset(rdst->getBuffer(), 0, rdst->getWidth() * rdst->getHeight() * COM_NUMBER_OF_CHANNELS * sizeof(float));
// convolution result width & height
w2 = 2 * kernelWidth - 1;
@@ -379,7 +380,7 @@ void GlareFogGlowOperation::generateGlare(float *data, MemoryBuffer *inputTile,
// temp. src image
// make the convolution kernel
rcti kernelRect;
- BLI_init_rcti(&kernelRect, 0, sz, 0, sz);
+ BLI_rcti_init(&kernelRect, 0, sz, 0, sz);
ckrn = new MemoryBuffer(NULL, &kernelRect);
scale = 0.25f * sqrtf((float)(sz * sz));
diff --git a/source/blender/compositor/operations/COM_GlareGhostOperation.cpp b/source/blender/compositor/operations/COM_GlareGhostOperation.cpp
index 39fffd6ac64..ace04237b29 100644
--- a/source/blender/compositor/operations/COM_GlareGhostOperation.cpp
+++ b/source/blender/compositor/operations/COM_GlareGhostOperation.cpp
@@ -83,11 +83,11 @@ void GlareGhostOperation::generateGlare(float *data, MemoryBuffer *inputTile, No
for (x = 0; x < gbuf->getWidth(); x++) {
u = (float)(x + 0.5f) / (float)gbuf->getWidth();
s = (u - 0.5f) * sc + 0.5f, t = (v - 0.5f) * sc + 0.5f;
- tbuf1->read(c, s * gbuf->getWidth(), t * gbuf->getHeight());
+ tbuf1->readCubic(c, s * gbuf->getWidth(), t * gbuf->getHeight());
sm = smoothMask(s, t);
mul_v3_fl(c, sm);
s = (u - 0.5f) * isc + 0.5f, t = (v - 0.5f) * isc + 0.5f;
- tbuf2->read(tc, s * gbuf->getWidth() - 0.5f, t * gbuf->getHeight() - 0.5f);
+ tbuf2->readCubic(tc, s * gbuf->getWidth() - 0.5f, t * gbuf->getHeight() - 0.5f);
sm = smoothMask(s, t);
madd_v3_v3fl(c, tc, sm);
@@ -108,7 +108,7 @@ void GlareGhostOperation::generateGlare(float *data, MemoryBuffer *inputTile, No
np = (n << 2) + p;
s = (u - 0.5f) * scalef[np] + 0.5f;
t = (v - 0.5f) * scalef[np] + 0.5f;
- gbuf->read(c, s * gbuf->getWidth() - 0.5f, t * gbuf->getHeight() - 0.5f);
+ gbuf->readCubic(c, s * gbuf->getWidth() - 0.5f, t * gbuf->getHeight() - 0.5f);
mul_v3_v3(c, cm[np]);
sm = smoothMask(s, t) * 0.25f;
madd_v3_v3fl(tc, c, sm);
diff --git a/source/blender/compositor/operations/COM_GlareStreaksOperation.cpp b/source/blender/compositor/operations/COM_GlareStreaksOperation.cpp
index 9125783c222..60d37fb8145 100644
--- a/source/blender/compositor/operations/COM_GlareStreaksOperation.cpp
+++ b/source/blender/compositor/operations/COM_GlareStreaksOperation.cpp
@@ -81,11 +81,9 @@ void GlareStreaksOperation::generateGlare(float *data, MemoryBuffer *inputTile,
float *sourcebuffer = tsrc->getBuffer();
float factor = 1.f / (float)(6 - settings->iter);
- for (int i = 0; i < size4; i++) {
- data[i] += sourcebuffer[i] * factor;
- }
- for (int i = 0; i < size; i++) {
- data[i * 4 + 3] = 1.0f;
+ for (int i = 0; i < size4; i += 4) {
+ madd_v3_v3fl(&data[i], &sourcebuffer[i], factor);
+ data[i + 3] = 1.0f;
}
tdst->clear();
diff --git a/source/blender/compositor/operations/COM_GlareThresholdOperation.cpp b/source/blender/compositor/operations/COM_GlareThresholdOperation.cpp
index 6d8c567c1b5..1c7d2659c39 100644
--- a/source/blender/compositor/operations/COM_GlareThresholdOperation.cpp
+++ b/source/blender/compositor/operations/COM_GlareThresholdOperation.cpp
@@ -30,7 +30,7 @@ GlareThresholdOperation::GlareThresholdOperation() : NodeOperation()
this->m_inputProgram = NULL;
}
-void GlareThresholdOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void GlareThresholdOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
NodeOperation::determineResolution(resolution, preferredResolution);
resolution[0] = resolution[0] / (1 << this->m_settings->quality);
@@ -42,19 +42,19 @@ void GlareThresholdOperation::initExecution()
this->m_inputProgram = this->getInputSocketReader(0);
}
-void GlareThresholdOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void GlareThresholdOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
const float threshold = this->m_settings->threshold;
- this->m_inputProgram->read(color, x, y, sampler, inputBuffers);
- if (rgb_to_luma_y(color) >= threshold) {
- color[0] -= threshold, color[1] -= threshold, color[2] -= threshold;
- color[0] = MAX2(color[0], 0.0f);
- color[1] = MAX2(color[1], 0.0f);
- color[2] = MAX2(color[2], 0.0f);
+ this->m_inputProgram->read(output, x, y, sampler);
+ if (rgb_to_luma_y(output) >= threshold) {
+ output[0] -= threshold, output[1] -= threshold, output[2] -= threshold;
+ output[0] = max(output[0], 0.0f);
+ output[1] = max(output[1], 0.0f);
+ output[2] = max(output[2], 0.0f);
}
else {
- zero_v3(color);
+ zero_v3(output);
}
}
diff --git a/source/blender/compositor/operations/COM_GlareThresholdOperation.h b/source/blender/compositor/operations/COM_GlareThresholdOperation.h
index d89f3a0f29d..44f9db6a483 100644
--- a/source/blender/compositor/operations/COM_GlareThresholdOperation.h
+++ b/source/blender/compositor/operations/COM_GlareThresholdOperation.h
@@ -42,7 +42,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
@@ -58,6 +58,6 @@ public:
this->m_settings = settings;
}
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
};
#endif
diff --git a/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.cpp b/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.cpp
index 02914487072..8f58942fbe2 100644
--- a/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.cpp
+++ b/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.cpp
@@ -45,11 +45,11 @@ void HueSaturationValueCorrectOperation::initExecution()
this->m_inputProgram = this->getInputSocketReader(0);
}
-void HueSaturationValueCorrectOperation::executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void HueSaturationValueCorrectOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float hsv[4], f;
- this->m_inputProgram->read(hsv, x, y, sampler, inputBuffers);
+ this->m_inputProgram->read(hsv, x, y, sampler);
/* adjust hue, scaling returned default 0.5 up to 1 */
f = curvemapping_evaluateF(this->m_curveMapping, 0, hsv[0]);
@@ -74,5 +74,6 @@ void HueSaturationValueCorrectOperation::executePixel(float *output, float x, fl
void HueSaturationValueCorrectOperation::deinitExecution()
{
+ CurveBaseOperation::deinitExecution();
this->m_inputProgram = NULL;
}
diff --git a/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.h b/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.h
index 7ae5f53e370..5e57d09a51e 100644
--- a/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.h
+++ b/source/blender/compositor/operations/COM_HueSaturationValueCorrectOperation.h
@@ -37,7 +37,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *Vector, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_IDMaskOperation.cpp b/source/blender/compositor/operations/COM_IDMaskOperation.cpp
index c84124368be..4b9bcb118e7 100644
--- a/source/blender/compositor/operations/COM_IDMaskOperation.cpp
+++ b/source/blender/compositor/operations/COM_IDMaskOperation.cpp
@@ -33,13 +33,13 @@ void IDMaskOperation::initExecution()
this->m_inputProgram = this->getInputSocketReader(0);
}
-void IDMaskOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void IDMaskOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue[4];
- this->m_inputProgram->read(inputValue, x, y, sampler, inputBuffers);
+ this->m_inputProgram->read(inputValue, x, y, sampler);
const float a = (inputValue[0] == this->m_objectIndex) ? 1.0f : 0.0f;
- color[0] = a;
+ output[0] = a;
}
void IDMaskOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_IDMaskOperation.h b/source/blender/compositor/operations/COM_IDMaskOperation.h
index 23e8ec704e8..68c5cf4c1dc 100644
--- a/source/blender/compositor/operations/COM_IDMaskOperation.h
+++ b/source/blender/compositor/operations/COM_IDMaskOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ImageOperation.cpp b/source/blender/compositor/operations/COM_ImageOperation.cpp
index eb2eaa8167a..fb3efbb67ed 100644
--- a/source/blender/compositor/operations/COM_ImageOperation.cpp
+++ b/source/blender/compositor/operations/COM_ImageOperation.cpp
@@ -23,7 +23,6 @@
#include "COM_ImageOperation.h"
#include "BLI_listbase.h"
-#include "DNA_scene_types.h"
#include "DNA_image_types.h"
#include "BKE_image.h"
#include "BLI_math.h"
@@ -34,6 +33,7 @@ extern "C" {
#include "RE_render_ext.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
+ #include "IMB_colormanagement.h"
}
BaseImageOperation::BaseImageOperation() : NodeOperation()
@@ -95,7 +95,7 @@ void BaseImageOperation::deinitExecution()
this->m_imageBuffer = NULL;
}
-void BaseImageOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void BaseImageOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
ImBuf *stackbuf = getImBuf();
@@ -108,32 +108,32 @@ void BaseImageOperation::determineResolution(unsigned int resolution[], unsigned
}
}
-void ImageOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ImageOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
if (this->m_imageBuffer == NULL || x < 0 || y < 0 || x >= this->getWidth() || y >= this->getHeight() ) {
- zero_v4(color);
+ zero_v4(output);
}
else {
switch (sampler) {
case COM_PS_NEAREST:
- neareast_interpolation_color(this->m_buffer, NULL, color, x, y);
+ neareast_interpolation_color(this->m_buffer, NULL, output, x, y);
break;
case COM_PS_BILINEAR:
- bilinear_interpolation_color(this->m_buffer, NULL, color, x, y);
+ bilinear_interpolation_color(this->m_buffer, NULL, output, x, y);
break;
case COM_PS_BICUBIC:
- bicubic_interpolation_color(this->m_buffer, NULL, color, x, y);
+ bicubic_interpolation_color(this->m_buffer, NULL, output, x, y);
break;
}
}
}
-void ImageAlphaOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ImageAlphaOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float tempcolor[4];
if (this->m_imageBuffer == NULL || x < 0 || y < 0 || x >= this->getWidth() || y >= this->getHeight() ) {
- color[0] = 0.0f;
+ output[0] = 0.0f;
}
else {
tempcolor[3] = 1.0f;
@@ -148,17 +148,17 @@ void ImageAlphaOperation::executePixel(float *color, float x, float y, PixelSamp
bicubic_interpolation_color(this->m_buffer, NULL, tempcolor, x, y);
break;
}
- color[0] = tempcolor[3];
+ output[0] = tempcolor[3];
}
}
-void ImageDepthOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ImageDepthOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
if (this->m_depthBuffer == NULL || x < 0 || y < 0 || x >= this->getWidth() || y >= this->getHeight() ) {
- color[0] = 0.0f;
+ output[0] = 0.0f;
}
else {
int offset = y * this->m_width + x;
- color[0] = this->m_depthBuffer[offset];
+ output[0] = this->m_depthBuffer[offset];
}
}
diff --git a/source/blender/compositor/operations/COM_ImageOperation.h b/source/blender/compositor/operations/COM_ImageOperation.h
index c87b06b9c4d..e75e7daa186 100644
--- a/source/blender/compositor/operations/COM_ImageOperation.h
+++ b/source/blender/compositor/operations/COM_ImageOperation.h
@@ -25,7 +25,6 @@
#define _COM_ImageOperation_h
#include "COM_NodeOperation.h"
-#include "DNA_scene_types.h"
#include "BLI_listbase.h"
#include "BKE_image.h"
extern "C" {
@@ -54,7 +53,7 @@ protected:
/**
* Determine the output resolution. The resolution is retrieved from the Renderer
*/
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
virtual ImBuf *getImBuf();
@@ -73,7 +72,7 @@ public:
* Constructor
*/
ImageOperation();
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class ImageAlphaOperation : public BaseImageOperation {
public:
@@ -81,7 +80,7 @@ public:
* Constructor
*/
ImageAlphaOperation();
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class ImageDepthOperation : public BaseImageOperation {
public:
@@ -89,6 +88,6 @@ public:
* Constructor
*/
ImageDepthOperation();
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_InpaintOperation.cpp b/source/blender/compositor/operations/COM_InpaintOperation.cpp
new file mode 100644
index 00000000000..70d4d987c81
--- /dev/null
+++ b/source/blender/compositor/operations/COM_InpaintOperation.cpp
@@ -0,0 +1,288 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor: Peter Schlaile
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#include "MEM_guardedalloc.h"
+
+#include "COM_InpaintOperation.h"
+#include "COM_OpenCLDevice.h"
+
+#include "BLI_math.h"
+
+#define ASSERT_XY_RANGE(x, y) \
+ BLI_assert(x >= 0 && x < this->getWidth() && \
+ y >= 0 && y < this->getHeight())
+
+
+// Inpaint (simple convolve using average of known pixels)
+InpaintSimpleOperation::InpaintSimpleOperation() : NodeOperation()
+{
+ this->addInputSocket(COM_DT_COLOR);
+ this->addOutputSocket(COM_DT_COLOR);
+ this->setComplex(true);
+ this->m_inputImageProgram = NULL;
+ this->m_pixelorder = NULL;
+ this->m_manhatten_distance = NULL;
+ this->m_cached_buffer = NULL;
+ this->m_cached_buffer_ready = false;
+}
+void InpaintSimpleOperation::initExecution()
+{
+ this->m_inputImageProgram = this->getInputSocketReader(0);
+
+ this->m_cached_buffer = NULL;
+ this->m_pixelorder = NULL;
+ this->m_manhatten_distance = NULL;
+ this->m_cached_buffer = NULL;
+ this->m_cached_buffer_ready = false;
+
+ this->initMutex();
+}
+
+void InpaintSimpleOperation::clamp_xy(int &x, int &y)
+{
+ int width = this->getWidth();
+ int height = this->getHeight();
+
+ if (x < 0) {
+ x = 0;
+ }
+ else if (x >= width) {
+ x = width - 1;
+ }
+
+ if (y < 0) {
+ y = 0;
+ }
+ else if (y >= height) {
+ y = height - 1;
+ }
+}
+
+float *InpaintSimpleOperation::get_pixel(int x, int y)
+{
+ int width = this->getWidth();
+
+ ASSERT_XY_RANGE(x, y);
+
+ return &this->m_cached_buffer[
+ y * width * COM_NUMBER_OF_CHANNELS
+ + x * COM_NUMBER_OF_CHANNELS];
+}
+
+int InpaintSimpleOperation::mdist(int x, int y)
+{
+ int width = this->getWidth();
+
+ ASSERT_XY_RANGE(x, y);
+
+ return this->m_manhatten_distance[y * width + x];
+}
+
+bool InpaintSimpleOperation::next_pixel(int &x, int &y, int & curr, int iters)
+{
+ int width = this->getWidth();
+
+ if (curr >= this->m_area_size) {
+ return false;
+ }
+
+ int r = this->m_pixelorder[curr++];
+
+ x = r % width;
+ y = r / width;
+
+ if (this->mdist(x, y) > iters) {
+ return false;
+ }
+
+ return true;
+}
+
+void InpaintSimpleOperation::calc_manhatten_distance()
+{
+ int width = this->getWidth();
+ int height = this->getHeight();
+ short *m = this->m_manhatten_distance = (short *)MEM_mallocN(sizeof(short) * width * height, __func__);
+ int *offsets;
+
+ offsets = (int *)MEM_callocN(sizeof(int) * (width + height + 1), "InpaintSimpleOperation offsets");
+
+ for (int j = 0; j < height; j++) {
+ for (int i = 0; i < width; i++) {
+ int r = 0;
+ /* no need to clamp here */
+ if (this->get_pixel(i, j)[3] < 1.0f) {
+ r = width + height;
+ if (i > 0)
+ r = mini(r, m[j * width + i - 1] + 1);
+ if (j > 0)
+ r = mini(r, m[(j - 1) * width + i] + 1);
+ }
+ m[j * width + i] = r;
+ }
+ }
+
+ for (int j = height - 1; j >= 0; j--) {
+ for (int i = width - 1; i >= 0; i--) {
+ int r = m[j * width + i];
+
+ if (i + 1 < width)
+ r = mini(r, m[j * width + i + 1] + 1);
+ if (j + 1 < height)
+ r = mini(r, m[(j + 1) * width + i] + 1);
+
+ m[j * width + i] = r;
+
+ offsets[r]++;
+ }
+ }
+
+ offsets[0] = 0;
+
+ for (int i = 1; i < width + height + 1; i++) {
+ offsets[i] += offsets[i - 1];
+ }
+
+ this->m_area_size = offsets[width + height];
+ this->m_pixelorder = (int *)MEM_mallocN(sizeof(int) * this->m_area_size, __func__);
+
+ for (int i = 0; i < width * height; i++) {
+ if (m[i] > 0) {
+ this->m_pixelorder[offsets[m[i] - 1]++] = i;
+ }
+ }
+
+ MEM_freeN(offsets);
+}
+
+void InpaintSimpleOperation::pix_step(int x, int y)
+{
+ const int d = this->mdist(x, y);
+ float pix[3] = {0.0f, 0.0f, 0.0f};
+ float pix_divider = 0.0f;
+
+ for (int dx = -1; dx <= 1; dx++) {
+ for (int dy = -1; dy <= 1; dy++) {
+ /* changing to both != 0 gives dithering artifacts */
+ if (dx != 0 || dy != 0) {
+ int x_ofs = x + dx;
+ int y_ofs = y + dy;
+
+ this->clamp_xy(x_ofs, y_ofs);
+
+ if (this->mdist(x_ofs, y_ofs) < d) {
+
+ float weight;
+
+ if (dx == 0 || dy == 0) {
+ weight = 1.0f;
+ }
+ else {
+ weight = M_SQRT1_2; /* 1.0f / sqrt(2) */
+ }
+
+ madd_v3_v3fl(pix, this->get_pixel(x_ofs, y_ofs), weight);
+ pix_divider += weight;
+ }
+ }
+ }
+ }
+
+ float *output = this->get_pixel(x, y);
+ if (pix_divider != 0.0f) {
+ mul_v3_fl(pix, 1.0f / pix_divider);
+ /* use existing pixels alpha to blend into */
+ interp_v3_v3v3(output, pix, output, output[3]);
+ output[3] = 1.0f;
+ }
+}
+
+void *InpaintSimpleOperation::initializeTileData(rcti *rect)
+{
+ if (this->m_cached_buffer_ready) {
+ return this->m_cached_buffer;
+ }
+ lockMutex();
+ if (!this->m_cached_buffer_ready) {
+ MemoryBuffer *buf = (MemoryBuffer *)this->m_inputImageProgram->initializeTileData(rect);
+ this->m_cached_buffer = (float *)MEM_dupallocN(buf->getBuffer());
+
+ this->calc_manhatten_distance();
+
+ int curr = 0;
+ int x, y;
+
+
+ while (this->next_pixel(x, y, curr, this->m_iterations)) {
+ this->pix_step(x, y);
+ }
+ this->m_cached_buffer_ready = true;
+ }
+
+ unlockMutex();
+ return this->m_cached_buffer;
+}
+
+void InpaintSimpleOperation::executePixel(float output[4], int x, int y, void *data)
+{
+ this->clamp_xy(x, y);
+ copy_v4_v4(output, this->get_pixel(x, y));
+}
+
+void InpaintSimpleOperation::deinitExecution()
+{
+ this->m_inputImageProgram = NULL;
+ this->deinitMutex();
+ if (this->m_cached_buffer) {
+ MEM_freeN(this->m_cached_buffer);
+ this->m_cached_buffer = NULL;
+ }
+
+ if (this->m_pixelorder) {
+ MEM_freeN(this->m_pixelorder);
+ this->m_pixelorder = NULL;
+ }
+
+ if (this->m_manhatten_distance) {
+ MEM_freeN(this->m_manhatten_distance);
+ this->m_manhatten_distance = NULL;
+ }
+ this->m_cached_buffer_ready = false;
+}
+
+bool InpaintSimpleOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
+{
+ if (this->m_cached_buffer_ready) {
+ return false;
+ }
+ else {
+ rcti newInput;
+
+ newInput.xmax = getWidth();
+ newInput.xmin = 0;
+ newInput.ymax = getHeight();
+ newInput.ymin = 0;
+
+ return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+ }
+}
+
diff --git a/source/blender/compositor/operations/COM_InpaintOperation.h b/source/blender/compositor/operations/COM_InpaintOperation.h
new file mode 100644
index 00000000000..59465ed3432
--- /dev/null
+++ b/source/blender/compositor/operations/COM_InpaintOperation.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor: Peter Schlaile
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
+#ifndef _COM_InpaintOperation_h
+#define _COM_InpaintOperation_h
+#include "COM_NodeOperation.h"
+
+class InpaintSimpleOperation : public NodeOperation {
+protected:
+ /**
+ * Cached reference to the inputProgram
+ */
+ SocketReader *m_inputImageProgram;
+
+ int m_iterations;
+
+ float *m_cached_buffer;
+ bool m_cached_buffer_ready;
+
+ int *m_pixelorder;
+ int m_area_size;
+ short *m_manhatten_distance;
+public:
+ InpaintSimpleOperation();
+
+ /**
+ * the inner loop of this program
+ */
+ void executePixel(float output[4], int x, int y, void *data);
+
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ void *initializeTileData(rcti *rect);
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setIterations(int iterations) { this->m_iterations = iterations; }
+
+ bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
+
+private:
+ void calc_manhatten_distance();
+ void clamp_xy(int &x, int &y);
+ float *get_pixel(int x, int y);
+ int mdist(int x, int y);
+ bool next_pixel(int &x, int &y, int &curr, int iters);
+ void pix_step(int x, int y);
+};
+
+
+#endif
diff --git a/source/blender/compositor/operations/COM_InvertOperation.cpp b/source/blender/compositor/operations/COM_InvertOperation.cpp
index 9e9c2522d66..9c2dd825709 100644
--- a/source/blender/compositor/operations/COM_InvertOperation.cpp
+++ b/source/blender/compositor/operations/COM_InvertOperation.cpp
@@ -39,29 +39,29 @@ void InvertOperation::initExecution()
this->m_inputColorProgram = this->getInputSocketReader(1);
}
-void InvertOperation::executePixel(float *out, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void InvertOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue[4];
float inputColor[4];
- this->m_inputValueProgram->read(inputValue, x, y, sampler, inputBuffers);
- this->m_inputColorProgram->read(inputColor, x, y, sampler, inputBuffers);
+ this->m_inputValueProgram->read(inputValue, x, y, sampler);
+ this->m_inputColorProgram->read(inputColor, x, y, sampler);
const float value = inputValue[0];
const float invertedValue = 1.0f - value;
if (this->m_color) {
- out[0] = (1.0f - inputColor[0]) * value + inputColor[0] * invertedValue;
- out[1] = (1.0f - inputColor[1]) * value + inputColor[1] * invertedValue;
- out[2] = (1.0f - inputColor[2]) * value + inputColor[2] * invertedValue;
+ output[0] = (1.0f - inputColor[0]) * value + inputColor[0] * invertedValue;
+ output[1] = (1.0f - inputColor[1]) * value + inputColor[1] * invertedValue;
+ output[2] = (1.0f - inputColor[2]) * value + inputColor[2] * invertedValue;
}
else {
- copy_v3_v3(out, inputColor);
+ copy_v3_v3(output, inputColor);
}
if (this->m_alpha)
- out[3] = (1.0f - inputColor[3]) * value + inputColor[3] * invertedValue;
+ output[3] = (1.0f - inputColor[3]) * value + inputColor[3] * invertedValue;
else
- out[3] = inputColor[3];
+ output[3] = inputColor[3];
}
diff --git a/source/blender/compositor/operations/COM_InvertOperation.h b/source/blender/compositor/operations/COM_InvertOperation.h
index f00a3fb739d..7fded7bb1e4 100644
--- a/source/blender/compositor/operations/COM_InvertOperation.h
+++ b/source/blender/compositor/operations/COM_InvertOperation.h
@@ -42,7 +42,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_KeyingBlurOperation.cpp b/source/blender/compositor/operations/COM_KeyingBlurOperation.cpp
index 3285bd32039..9fb9efe4fc7 100644
--- a/source/blender/compositor/operations/COM_KeyingBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_KeyingBlurOperation.cpp
@@ -39,14 +39,14 @@ KeyingBlurOperation::KeyingBlurOperation() : NodeOperation()
this->setComplex(true);
}
-void *KeyingBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *KeyingBlurOperation::initializeTileData(rcti *rect)
{
- void *buffer = getInputOperation(0)->initializeTileData(rect, memoryBuffers);
+ void *buffer = getInputOperation(0)->initializeTileData(rect);
return buffer;
}
-void KeyingBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void KeyingBlurOperation::executePixel(float output[4], int x, int y, void *data)
{
MemoryBuffer *inputBuffer = (MemoryBuffer *)data;
float *buffer = inputBuffer->getBuffer();
@@ -85,7 +85,7 @@ void KeyingBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer
average /= (float) count;
- color[0] = average;
+ output[0] = average;
}
bool KeyingBlurOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
diff --git a/source/blender/compositor/operations/COM_KeyingBlurOperation.h b/source/blender/compositor/operations/COM_KeyingBlurOperation.h
index 6e08712bf39..a1c56cc9c07 100644
--- a/source/blender/compositor/operations/COM_KeyingBlurOperation.h
+++ b/source/blender/compositor/operations/COM_KeyingBlurOperation.h
@@ -27,7 +27,7 @@
#include "COM_NodeOperation.h"
/**
- * Class with implementation of bluring for keying node
+ * Class with implementation of blurring for keying node
*/
class KeyingBlurOperation : public NodeOperation {
protected:
@@ -45,9 +45,9 @@ public:
void setSize(int value) {this->m_size = value;}
void setAxis(int value) {this->m_axis = value;}
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
- void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
};
diff --git a/source/blender/compositor/operations/COM_KeyingClipOperation.cpp b/source/blender/compositor/operations/COM_KeyingClipOperation.cpp
index 8f7d7fbf625..909eeed8937 100644
--- a/source/blender/compositor/operations/COM_KeyingClipOperation.cpp
+++ b/source/blender/compositor/operations/COM_KeyingClipOperation.cpp
@@ -44,14 +44,14 @@ KeyingClipOperation::KeyingClipOperation() : NodeOperation()
this->setComplex(true);
}
-void *KeyingClipOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *KeyingClipOperation::initializeTileData(rcti *rect)
{
- void *buffer = getInputOperation(0)->initializeTileData(rect, memoryBuffers);
+ void *buffer = getInputOperation(0)->initializeTileData(rect);
return buffer;
}
-void KeyingClipOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void KeyingClipOperation::executePixel(float output[4], int x, int y, void *data)
{
const int delta = this->m_kernelRadius;
const float tolerance = this->m_kernelTolerance;
@@ -92,20 +92,20 @@ void KeyingClipOperation::executePixel(float *color, int x, int y, MemoryBuffer
if (this->m_isEdgeMatte) {
if (ok)
- color[0] = 0.0f;
+ output[0] = 0.0f;
else
- color[0] = 1.0f;
+ output[0] = 1.0f;
}
else {
- color[0] = value;
+ output[0] = value;
if (ok) {
- if (color[0] < this->m_clipBlack)
- color[0] = 0.0f;
- else if (color[0] >= this->m_clipWhite)
- color[0] = 1.0f;
+ if (output[0] < this->m_clipBlack)
+ output[0] = 0.0f;
+ else if (output[0] >= this->m_clipWhite)
+ output[0] = 1.0f;
else
- color[0] = (color[0] - this->m_clipBlack) / (this->m_clipWhite - this->m_clipBlack);
+ output[0] = (output[0] - this->m_clipBlack) / (this->m_clipWhite - this->m_clipBlack);
}
}
}
diff --git a/source/blender/compositor/operations/COM_KeyingClipOperation.h b/source/blender/compositor/operations/COM_KeyingClipOperation.h
index 1a8e71a306b..d79bd14b900 100644
--- a/source/blender/compositor/operations/COM_KeyingClipOperation.h
+++ b/source/blender/compositor/operations/COM_KeyingClipOperation.h
@@ -49,9 +49,9 @@ public:
void setIsEdgeMatte(bool value) {this->m_isEdgeMatte = value;}
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
- void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
};
diff --git a/source/blender/compositor/operations/COM_KeyingDespillOperation.cpp b/source/blender/compositor/operations/COM_KeyingDespillOperation.cpp
index 081d9f723e8..4426666f100 100644
--- a/source/blender/compositor/operations/COM_KeyingDespillOperation.cpp
+++ b/source/blender/compositor/operations/COM_KeyingDespillOperation.cpp
@@ -47,6 +47,7 @@ KeyingDespillOperation::KeyingDespillOperation() : NodeOperation()
this->addOutputSocket(COM_DT_COLOR);
this->m_despillFactor = 0.5f;
+ this->m_colorBalance = 0.5f;
this->m_pixelReader = NULL;
this->m_screenReader = NULL;
@@ -64,26 +65,29 @@ void KeyingDespillOperation::deinitExecution()
this->m_screenReader = NULL;
}
-void KeyingDespillOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void KeyingDespillOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float pixelColor[4];
float screenColor[4];
- this->m_pixelReader->read(pixelColor, x, y, sampler, inputBuffers);
- this->m_screenReader->read(screenColor, x, y, sampler, inputBuffers);
+ this->m_pixelReader->read(pixelColor, x, y, sampler);
+ this->m_screenReader->read(screenColor, x, y, sampler);
int screen_primary_channel = get_pixel_primary_channel(screenColor);
+ int other_1 = (screen_primary_channel + 1) % 3;
+ int other_2 = (screen_primary_channel + 2) % 3;
+
+ int min_channel = MIN2(other_1, other_2);
+ int max_channel = MAX2(other_1, other_2);
+
float average_value, amount;
- average_value = (pixelColor[0] + pixelColor[1] + pixelColor[2] - pixelColor[screen_primary_channel]) / 2.0f;
- amount = pixelColor[screen_primary_channel] - average_value;
+ average_value = this->m_colorBalance * pixelColor[min_channel] + (1.0f - this->m_colorBalance) * pixelColor[max_channel];
+ amount = (pixelColor[screen_primary_channel] - average_value);
+
+ copy_v4_v4(output, pixelColor);
- color[0] = pixelColor[0];
- color[1] = pixelColor[1];
- color[2] = pixelColor[2];
- color[3] = pixelColor[3];
-
if (this->m_despillFactor * amount > 0) {
- color[screen_primary_channel] = pixelColor[screen_primary_channel] - this->m_despillFactor * amount;
+ output[screen_primary_channel] = pixelColor[screen_primary_channel] - this->m_despillFactor * amount;
}
}
diff --git a/source/blender/compositor/operations/COM_KeyingDespillOperation.h b/source/blender/compositor/operations/COM_KeyingDespillOperation.h
index 4fea9b578a1..18e771b14f1 100644
--- a/source/blender/compositor/operations/COM_KeyingDespillOperation.h
+++ b/source/blender/compositor/operations/COM_KeyingDespillOperation.h
@@ -34,6 +34,7 @@ protected:
SocketReader *m_pixelReader;
SocketReader *m_screenReader;
float m_despillFactor;
+ float m_colorBalance;
public:
KeyingDespillOperation();
@@ -42,8 +43,9 @@ public:
void deinitExecution();
void setDespillFactor(float value) {this->m_despillFactor = value;}
+ void setColorBalance(float value) {this->m_colorBalance = value;}
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_KeyingOperation.cpp b/source/blender/compositor/operations/COM_KeyingOperation.cpp
index e92e5c84c2d..35138cf0b92 100644
--- a/source/blender/compositor/operations/COM_KeyingOperation.cpp
+++ b/source/blender/compositor/operations/COM_KeyingOperation.cpp
@@ -45,9 +45,10 @@ static float get_pixel_saturation(float pixelColor[4], float screen_balance, int
int other_1 = (primary_channel + 1) % 3;
int other_2 = (primary_channel + 2) % 3;
- float min = MIN2(pixelColor[other_1], pixelColor[other_2]);
- float max = MAX2(pixelColor[other_1], pixelColor[other_2]);
- float val = screen_balance * min + (1.0f - screen_balance) * max;
+ int min_channel = MIN2(other_1, other_2);
+ int max_channel = MAX2(other_1, other_2);
+
+ float val = screen_balance * pixelColor[min_channel] + (1.0f - screen_balance) * pixelColor[max_channel];
return (pixelColor[primary_channel] - val) * fabsf(1.0f - val);
}
@@ -56,45 +57,33 @@ KeyingOperation::KeyingOperation() : NodeOperation()
{
this->addInputSocket(COM_DT_COLOR);
this->addInputSocket(COM_DT_COLOR);
- this->addInputSocket(COM_DT_VALUE);
- this->addInputSocket(COM_DT_VALUE);
this->addOutputSocket(COM_DT_VALUE);
this->m_screenBalance = 0.5f;
this->m_pixelReader = NULL;
this->m_screenReader = NULL;
- this->m_garbageReader = NULL;
- this->m_coreReader = NULL;
}
void KeyingOperation::initExecution()
{
this->m_pixelReader = this->getInputSocketReader(0);
this->m_screenReader = this->getInputSocketReader(1);
- this->m_garbageReader = this->getInputSocketReader(2);
- this->m_coreReader = this->getInputSocketReader(3);
}
void KeyingOperation::deinitExecution()
{
this->m_pixelReader = NULL;
this->m_screenReader = NULL;
- this->m_garbageReader = NULL;
- this->m_coreReader = NULL;
}
-void KeyingOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void KeyingOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float pixelColor[4];
float screenColor[4];
- float garbageValue[4];
- float coreValue[4];
- this->m_pixelReader->read(pixelColor, x, y, sampler, inputBuffers);
- this->m_screenReader->read(screenColor, x, y, sampler, inputBuffers);
- this->m_garbageReader->read(garbageValue, x, y, sampler, inputBuffers);
- this->m_coreReader->read(coreValue, x, y, sampler, inputBuffers);
+ this->m_pixelReader->read(pixelColor, x, y, sampler);
+ this->m_screenReader->read(screenColor, x, y, sampler);
int primary_channel = get_pixel_primary_channel(screenColor);
@@ -104,7 +93,7 @@ void KeyingOperation::executePixel(float *color, float x, float y, PixelSampler
* because saturation and falloff calculation is based on the fact
* that pixels are not overexposured
*/
- color[0] = 1.0f;
+ output[0] = 1.0f;
}
else {
float saturation = get_pixel_saturation(pixelColor, this->m_screenBalance, primary_channel);
@@ -114,25 +103,19 @@ void KeyingOperation::executePixel(float *color, float x, float y, PixelSampler
/* means main channel of pixel is different from screen,
* assume this is completely a foreground
*/
- color[0] = 1.0f;
+ output[0] = 1.0f;
}
else if (saturation >= screen_saturation) {
/* matched main channels and higher saturation on pixel
* is treated as completely background
*/
- color[0] = 0.0f;
+ output[0] = 0.0f;
}
else {
/* nice alpha falloff on edges */
float distance = 1.0f - saturation / screen_saturation;
- color[0] = distance;
+ output[0] = distance;
}
}
-
- /* apply garbage matte */
- color[0] = MIN2(color[0], 1.0f - garbageValue[0]);
-
- /* apply core matte */
- color[0] = MAX2(color[0], coreValue[0]);
}
diff --git a/source/blender/compositor/operations/COM_KeyingOperation.h b/source/blender/compositor/operations/COM_KeyingOperation.h
index 736db54850a..fcff9243dfc 100644
--- a/source/blender/compositor/operations/COM_KeyingOperation.h
+++ b/source/blender/compositor/operations/COM_KeyingOperation.h
@@ -38,8 +38,6 @@ class KeyingOperation : public NodeOperation {
protected:
SocketReader *m_pixelReader;
SocketReader *m_screenReader;
- SocketReader *m_garbageReader;
- SocketReader *m_coreReader;
float m_screenBalance;
@@ -51,7 +49,7 @@ public:
void setScreenBalance(float value) {this->m_screenBalance = value;}
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp b/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp
index 53572162b9e..c9b129d8dcf 100644
--- a/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp
+++ b/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp
@@ -29,8 +29,6 @@
#include "BLI_math.h"
#include "BLI_math_color.h"
-#include "DNA_scene_types.h"
-
extern "C" {
#include "BKE_movieclip.h"
#include "BKE_tracking.h"
@@ -80,7 +78,7 @@ KeyingScreenOperation::TriangulationData *KeyingScreenOperation::buildVoronoiTri
TriangulationData *triangulation;
MovieTracking *tracking = &this->m_movieClip->tracking;
MovieTrackingTrack *track;
- VoronoiSite *sites;
+ VoronoiSite *sites, *site;
ImBuf *ibuf;
ListBase *tracksbase;
ListBase edges = {NULL, NULL};
@@ -104,10 +102,20 @@ KeyingScreenOperation::TriangulationData *KeyingScreenOperation::buildVoronoiTri
/* count sites */
for (track = (MovieTrackingTrack *) tracksbase->first, sites_total = 0; track; track = track->next) {
MovieTrackingMarker *marker = BKE_tracking_marker_get(track, clip_frame);
+ float pos[2];
+
+ if (marker->flag & MARKER_DISABLED)
+ continue;
+
+ add_v2_v2v2(pos, marker->pos, track->offset);
- if ((marker->flag & MARKER_DISABLED) == 0) {
- sites_total++;
+ if (!IN_RANGE_INCL(pos[0], 0.0f, 1.0f) ||
+ !IN_RANGE_INCL(pos[1], 0.0f, 1.0f))
+ {
+ continue;
}
+
+ sites_total++;
}
if (!sites_total)
@@ -123,16 +131,22 @@ KeyingScreenOperation::TriangulationData *KeyingScreenOperation::buildVoronoiTri
sites = (VoronoiSite *) MEM_callocN(sizeof(VoronoiSite) * sites_total, "keyingscreen voronoi sites");
track = (MovieTrackingTrack *) tracksbase->first;
- for (track = (MovieTrackingTrack *) tracksbase->first, i = 0; track; track = track->next, i++) {
+ for (track = (MovieTrackingTrack *) tracksbase->first, site = sites; track; track = track->next) {
MovieTrackingMarker *marker = BKE_tracking_marker_get(track, clip_frame);
- VoronoiSite *site;
ImBuf *pattern_ibuf;
int j;
+ float pos[2];
if (marker->flag & MARKER_DISABLED)
continue;
- site = &sites[i];
+ add_v2_v2v2(pos, marker->pos, track->offset);
+
+ if (!IN_RANGE_INCL(pos[0], 0.0f, 1.0f) ||
+ !IN_RANGE_INCL(pos[1], 0.0f, 1.0f))
+ {
+ continue;
+ }
pattern_ibuf = BKE_tracking_get_pattern_imbuf(ibuf, track, marker, TRUE, FALSE);
@@ -153,8 +167,10 @@ KeyingScreenOperation::TriangulationData *KeyingScreenOperation::buildVoronoiTri
mul_v3_fl(site->color, 1.0f / (pattern_ibuf->x * pattern_ibuf->y));
IMB_freeImBuf(pattern_ibuf);
- site->co[0] = marker->pos[0] * width;
- site->co[1] = marker->pos[1] * height;
+ site->co[0] = pos[0] * width;
+ site->co[1] = pos[1] * height;
+
+ site++;
}
IMB_freeImBuf(ibuf);
@@ -198,7 +214,7 @@ KeyingScreenOperation::TriangulationData *KeyingScreenOperation::buildVoronoiTri
return triangulation;
}
-void *KeyingScreenOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *KeyingScreenOperation::initializeTileData(rcti *rect)
{
TileData *tile_data;
TriangulationData *triangulation;
@@ -223,12 +239,12 @@ void *KeyingScreenOperation::initializeTileData(rcti *rect, MemoryBuffer **memor
if (!triangulation)
return NULL;
- BLI_init_rctf(&rect_float, rect->xmin, rect->xmax, rect->ymin, rect->ymax);
+ BLI_rctf_init(&rect_float, rect->xmin, rect->xmax, rect->ymin, rect->ymax);
tile_data = (TileData *) MEM_callocN(sizeof(TileData), "keying screen tile data");
for (i = 0; i < triangulation->triangles_total; i++) {
- bool ok = BLI_isect_rctf(&rect_float, &triangulation->triangles_AABB[i], NULL);
+ bool ok = BLI_rctf_isect(&rect_float, &triangulation->triangles_AABB[i], NULL);
if (ok) {
tile_data->triangles_total++;
@@ -253,7 +269,7 @@ void *KeyingScreenOperation::initializeTileData(rcti *rect, MemoryBuffer **memor
return tile_data;
}
-void KeyingScreenOperation::deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data)
+void KeyingScreenOperation::deinitializeTileData(rcti *rect, void *data)
{
TileData *tile_data = (TileData *) data;
@@ -264,7 +280,7 @@ void KeyingScreenOperation::deinitializeTileData(rcti *rect, MemoryBuffer **memo
MEM_freeN(tile_data);
}
-void KeyingScreenOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void KeyingScreenOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
resolution[0] = 0;
resolution[1] = 0;
@@ -282,12 +298,12 @@ void KeyingScreenOperation::determineResolution(unsigned int resolution[], unsig
}
}
-void KeyingScreenOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void KeyingScreenOperation::executePixel(float output[4], int x, int y, void *data)
{
- color[0] = 0.0f;
- color[1] = 0.0f;
- color[2] = 0.0f;
- color[3] = 1.0f;
+ output[0] = 0.0f;
+ output[1] = 0.0f;
+ output[2] = 0.0f;
+ output[3] = 1.0f;
if (this->m_movieClip && data) {
TriangulationData *triangulation = this->m_cachedTriangulation;
@@ -308,9 +324,11 @@ void KeyingScreenOperation::executePixel(float *color, int x, int y, MemoryBuffe
if (barycentric_coords_v2(a->co, b->co, c->co, co, w)) {
if (barycentric_inside_triangle_v2(w)) {
- color[0] += a->color[0] * w[0] + b->color[0] * w[1] + c->color[0] * w[2];
- color[1] += a->color[1] * w[0] + b->color[1] * w[1] + c->color[1] * w[2];
- color[2] += a->color[2] * w[0] + b->color[2] * w[1] + c->color[2] * w[2];
+ output[0] = a->color[0] * w[0] + b->color[0] * w[1] + c->color[0] * w[2];
+ output[1] = a->color[1] * w[0] + b->color[1] * w[1] + c->color[1] * w[2];
+ output[2] = a->color[2] * w[0] + b->color[2] * w[1] + c->color[2] * w[2];
+
+ break;
}
}
}
diff --git a/source/blender/compositor/operations/COM_KeyingScreenOperation.h b/source/blender/compositor/operations/COM_KeyingScreenOperation.h
index 95815cd3930..8b1128a4da3 100644
--- a/source/blender/compositor/operations/COM_KeyingScreenOperation.h
+++ b/source/blender/compositor/operations/COM_KeyingScreenOperation.h
@@ -29,7 +29,6 @@
#include "COM_NodeOperation.h"
-#include "DNA_scene_types.h"
#include "DNA_movieclip_types.h"
#include "BLI_listbase.h"
@@ -63,7 +62,7 @@ protected:
/**
* Determine the output resolution. The resolution is retrieved from the Renderer
*/
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
TriangulationData *buildVoronoiTriangulation();
@@ -73,14 +72,14 @@ public:
void initExecution();
void deinitExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
- void deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data);
+ void *initializeTileData(rcti *rect);
+ void deinitializeTileData(rcti *rect, void *data);
void setMovieClip(MovieClip *clip) {this->m_movieClip = clip;}
void setTrackingObject(const char *object) {strncpy(this->m_trackingObject, object, sizeof(this->m_trackingObject));}
void setFramenumber(int framenumber) {this->m_framenumber = framenumber;}
- void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
};
#endif
diff --git a/source/blender/compositor/operations/COM_LuminanceMatteOperation.cpp b/source/blender/compositor/operations/COM_LuminanceMatteOperation.cpp
index 233f903c3e3..4c65113ee70 100644
--- a/source/blender/compositor/operations/COM_LuminanceMatteOperation.cpp
+++ b/source/blender/compositor/operations/COM_LuminanceMatteOperation.cpp
@@ -40,7 +40,7 @@ void LuminanceMatteOperation::deinitExecution()
this->m_inputImageProgram = NULL;
}
-void LuminanceMatteOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void LuminanceMatteOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inColor[4];
@@ -49,13 +49,13 @@ void LuminanceMatteOperation::executePixel(float *outputValue, float x, float y,
float alpha;
- this->m_inputImageProgram->read(inColor, x, y, sampler, inputBuffers);
+ this->m_inputImageProgram->read(inColor, x, y, sampler);
/* one line thread-friend algorithm:
- * outputValue[0] = max(inputValue[3], min(high, max(low, ((inColor[0]-low)/(high-low))))
+ * output[0] = max(inputValue[3], min(high, max(low, ((inColor[0]-low)/(high-low))))
*/
- /* test range*/
+ /* test range */
if (inColor[0] > high) {
alpha = 1.f;
}
@@ -73,11 +73,11 @@ void LuminanceMatteOperation::executePixel(float *outputValue, float x, float y,
/* don't make something that was more transparent less transparent */
if (alpha < inColor[3]) {
- outputValue[0] = alpha;
+ output[0] = alpha;
}
else {
/* leave now it was before */
- outputValue[0] = inColor[3];
+ output[0] = inColor[3];
}
}
diff --git a/source/blender/compositor/operations/COM_LuminanceMatteOperation.h b/source/blender/compositor/operations/COM_LuminanceMatteOperation.h
index 041fd0d7ee9..009a1e8825e 100644
--- a/source/blender/compositor/operations/COM_LuminanceMatteOperation.h
+++ b/source/blender/compositor/operations/COM_LuminanceMatteOperation.h
@@ -41,7 +41,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_MapUVOperation.cpp b/source/blender/compositor/operations/COM_MapUVOperation.cpp
index dec2d0849c9..1fa484ea2b6 100644
--- a/source/blender/compositor/operations/COM_MapUVOperation.cpp
+++ b/source/blender/compositor/operations/COM_MapUVOperation.cpp
@@ -24,7 +24,7 @@
MapUVOperation::MapUVOperation() : NodeOperation()
{
- this->addInputSocket(COM_DT_COLOR);
+ this->addInputSocket(COM_DT_COLOR, COM_SC_NO_RESIZE);
this->addInputSocket(COM_DT_VECTOR);
this->addOutputSocket(COM_DT_COLOR);
this->m_alpha = 0.0f;
@@ -40,7 +40,7 @@ void MapUVOperation::initExecution()
this->m_inputUVProgram = this->getInputSocketReader(1);
}
-void MapUVOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MapUVOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputUV[4];
float uv_a[4], uv_b[4];
@@ -50,30 +50,30 @@ void MapUVOperation::executePixel(float *color, float x, float y, PixelSampler s
float uv_l, uv_r;
float uv_u, uv_d;
- this->m_inputUVProgram->read(inputUV, x, y, sampler, inputBuffers);
+ this->m_inputUVProgram->read(inputUV, x, y, sampler);
if (inputUV[2] == 0.f) {
- zero_v4(color);
+ zero_v4(output);
return;
}
/* adaptive sampling, red (U) channel */
- this->m_inputUVProgram->read(uv_a, x - 1, y, COM_PS_NEAREST, inputBuffers);
- this->m_inputUVProgram->read(uv_b, x + 1, y, COM_PS_NEAREST, inputBuffers);
+ this->m_inputUVProgram->read(uv_a, x - 1, y, COM_PS_NEAREST);
+ this->m_inputUVProgram->read(uv_b, x + 1, y, COM_PS_NEAREST);
uv_l = uv_a[2] != 0.f ? fabsf(inputUV[0] - uv_a[0]) : 0.f;
uv_r = uv_b[2] != 0.f ? fabsf(inputUV[0] - uv_b[0]) : 0.f;
dx = 0.5f * (uv_l + uv_r);
/* adaptive sampling, green (V) channel */
- this->m_inputUVProgram->read(uv_a, x, y - 1, COM_PS_NEAREST, inputBuffers);
- this->m_inputUVProgram->read(uv_b, x, y + 1, COM_PS_NEAREST, inputBuffers);
+ this->m_inputUVProgram->read(uv_a, x, y - 1, COM_PS_NEAREST);
+ this->m_inputUVProgram->read(uv_b, x, y + 1, COM_PS_NEAREST);
uv_u = uv_a[2] != 0.f ? fabsf(inputUV[1] - uv_a[1]) : 0.f;
uv_d = uv_b[2] != 0.f ? fabsf(inputUV[1] - uv_b[1]) : 0.f;
dy = 0.5f * (uv_u + uv_d);
/* more adaptive sampling, red and green (UV) channels */
- this->m_inputUVProgram->read(uv_a, x - 1, y - 1, COM_PS_NEAREST, inputBuffers);
- this->m_inputUVProgram->read(uv_b, x - 1, y + 1, COM_PS_NEAREST, inputBuffers);
+ this->m_inputUVProgram->read(uv_a, x - 1, y - 1, COM_PS_NEAREST);
+ this->m_inputUVProgram->read(uv_b, x - 1, y + 1, COM_PS_NEAREST);
uv_l = uv_a[2] != 0.f ? fabsf(inputUV[0] - uv_a[0]) : 0.f;
uv_r = uv_b[2] != 0.f ? fabsf(inputUV[0] - uv_b[0]) : 0.f;
uv_u = uv_a[2] != 0.f ? fabsf(inputUV[1] - uv_a[1]) : 0.f;
@@ -82,8 +82,8 @@ void MapUVOperation::executePixel(float *color, float x, float y, PixelSampler s
dx += 0.25f * (uv_l + uv_r);
dy += 0.25f * (uv_u + uv_d);
- this->m_inputUVProgram->read(uv_a, x + 1, y - 1, COM_PS_NEAREST, inputBuffers);
- this->m_inputUVProgram->read(uv_b, x + 1, y + 1, COM_PS_NEAREST, inputBuffers);
+ this->m_inputUVProgram->read(uv_a, x + 1, y - 1, COM_PS_NEAREST);
+ this->m_inputUVProgram->read(uv_b, x + 1, y + 1, COM_PS_NEAREST);
uv_l = uv_a[2] != 0.f ? fabsf(inputUV[0] - uv_a[0]) : 0.f;
uv_r = uv_b[2] != 0.f ? fabsf(inputUV[0] - uv_b[0]) : 0.f;
uv_u = uv_a[2] != 0.f ? fabsf(inputUV[1] - uv_a[1]) : 0.f;
@@ -107,11 +107,11 @@ void MapUVOperation::executePixel(float *color, float x, float y, PixelSampler s
u = inputUV[0] * this->m_inputColorProgram->getWidth();
v = inputUV[1] * this->m_inputColorProgram->getHeight();
- this->m_inputColorProgram->read(color, u, v, dx, dy, inputBuffers);
+ this->m_inputColorProgram->read(output, u, v, dx, dy, COM_PS_NEAREST);
/* "premul" */
if (alpha < 1.0f) {
- mul_v4_fl(color, alpha);
+ mul_v4_fl(output, alpha);
}
}
diff --git a/source/blender/compositor/operations/COM_MapUVOperation.h b/source/blender/compositor/operations/COM_MapUVOperation.h
index c14640da61c..c8356c1a7ad 100644
--- a/source/blender/compositor/operations/COM_MapUVOperation.h
+++ b/source/blender/compositor/operations/COM_MapUVOperation.h
@@ -45,7 +45,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_MapValueOperation.cpp b/source/blender/compositor/operations/COM_MapValueOperation.cpp
index 17d82e85723..7acc431f7b5 100644
--- a/source/blender/compositor/operations/COM_MapValueOperation.cpp
+++ b/source/blender/compositor/operations/COM_MapValueOperation.cpp
@@ -34,10 +34,10 @@ void MapValueOperation::initExecution()
this->m_inputOperation = this->getInputSocketReader(0);
}
-void MapValueOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MapValueOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float src[4];
- this->m_inputOperation->read(src, x, y, sampler, inputBuffers);
+ this->m_inputOperation->read(src, x, y, sampler);
TexMapping *texmap = this->m_settings;
float value = (src[0] + texmap->loc[0]) * texmap->size[0];
if (texmap->flag & TEXMAP_CLIP_MIN)
@@ -47,7 +47,7 @@ void MapValueOperation::executePixel(float *outputValue, float x, float y, Pixel
if (value > texmap->max[0])
value = texmap->max[0];
- outputValue[0] = value;
+ output[0] = value;
}
void MapValueOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_MapValueOperation.h b/source/blender/compositor/operations/COM_MapValueOperation.h
index fb50d0fbe4d..418d6d9bf4d 100644
--- a/source/blender/compositor/operations/COM_MapValueOperation.h
+++ b/source/blender/compositor/operations/COM_MapValueOperation.h
@@ -45,7 +45,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_MaskOperation.cpp b/source/blender/compositor/operations/COM_MaskOperation.cpp
index 2b45cd53fd5..36b3f2023ae 100644
--- a/source/blender/compositor/operations/COM_MaskOperation.cpp
+++ b/source/blender/compositor/operations/COM_MaskOperation.cpp
@@ -28,11 +28,8 @@
#include "BLI_listbase.h"
#include "BLI_math.h"
-#include "DNA_scene_types.h"
-
extern "C" {
#include "BKE_mask.h"
- #include "../../../../intern/raskter/raskter.h"
}
MaskOperation::MaskOperation() : NodeOperation()
@@ -41,63 +38,78 @@ MaskOperation::MaskOperation() : NodeOperation()
this->m_mask = NULL;
this->m_maskWidth = 0;
this->m_maskHeight = 0;
- this->m_framenumber = 0;
- this->m_rasterizedMask = NULL;
- setComplex(true);
+ this->m_maskWidthInv = 0.0f;
+ this->m_maskHeightInv = 0.0f;
+ this->m_frame_shutter = 0.0f;
+ this->m_frame_number = 0;
+ this->m_rasterMaskHandleTot = 1;
+ memset(this->m_rasterMaskHandles, 0, sizeof(this->m_rasterMaskHandles));
}
void MaskOperation::initExecution()
{
- initMutex();
+ if (this->m_mask && this->m_rasterMaskHandles[0] == NULL) {
+ if (this->m_rasterMaskHandleTot == 1) {
+ this->m_rasterMaskHandles[0] = BKE_maskrasterize_handle_new();
- this->m_rasterizedMask = NULL;
- this->m_maskLayers.first = this->m_maskLayers.last = NULL;
+ BKE_maskrasterize_handle_init(this->m_rasterMaskHandles[0], this->m_mask,
+ this->m_maskWidth, this->m_maskHeight,
+ TRUE, this->m_do_smooth, this->m_do_feather);
+ }
+ else {
+ /* make a throw away copy of the mask */
+ const float frame = (float)this->m_frame_number - this->m_frame_shutter;
+ const float frame_step = (this->m_frame_shutter * 2.0f) / this->m_rasterMaskHandleTot;
+ float frame_iter = frame;
- if (this->m_mask) {
- BKE_mask_layer_copy_list(&this->m_maskLayers, &this->m_mask->masklayers);
- }
-}
+ Mask *mask_temp;
-void MaskOperation::deinitExecution()
-{
- BKE_mask_layer_free_list(&this->m_maskLayers);
+ mask_temp = BKE_mask_copy_nolib(this->m_mask);
- if (this->m_rasterizedMask) {
- MEM_freeN(this->m_rasterizedMask);
- this->m_rasterizedMask = NULL;
- }
-}
+ /* trick so we can get unkeyed edits to display */
+ {
+ MaskLayer *masklay;
+ MaskLayerShape *masklay_shape;
-void *MaskOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
-{
- if (this->m_rasterizedMask)
- return this->m_rasterizedMask;
+ for (masklay = (MaskLayer *)mask_temp->masklayers.first;
+ masklay;
+ masklay = (MaskLayer *)masklay->next)
+ {
+ masklay_shape = BKE_mask_layer_shape_varify_frame(masklay, this->m_frame_number);
+ BKE_mask_layer_shape_from_mask(masklay, masklay_shape);
+ }
+ }
- if (!this->m_mask)
- return NULL;
+ for (unsigned int i = 0; i < this->m_rasterMaskHandleTot; i++) {
+ this->m_rasterMaskHandles[i] = BKE_maskrasterize_handle_new();
- lockMutex();
- if (this->m_rasterizedMask == NULL) {
- int width = this->getWidth();
- int height = this->getHeight();
- float *buffer;
+ /* re-eval frame info */
+ BKE_mask_evaluate(mask_temp, frame_iter, TRUE);
- buffer = (float *)MEM_callocN(sizeof(float) * width * height, "rasterized mask");
+ BKE_maskrasterize_handle_init(this->m_rasterMaskHandles[i], mask_temp,
+ this->m_maskWidth, this->m_maskHeight,
+ TRUE, this->m_do_smooth, this->m_do_feather);
- BKE_mask_rasterize_layers(&this->m_maskLayers, width, height, buffer, TRUE,
- this->m_do_smooth, this->m_do_feather);
+ frame_iter += frame_step;
+ }
- if (this->m_do_smooth) {
- PLX_antialias_buffer(buffer, width, height);
+ BKE_mask_free_nolib(mask_temp);
+ MEM_freeN(mask_temp);
}
+ }
+}
- this->m_rasterizedMask = buffer;
+void MaskOperation::deinitExecution()
+{
+ for (unsigned int i = 0; i < this->m_rasterMaskHandleTot; i++) {
+ if (this->m_rasterMaskHandles[i]) {
+ BKE_maskrasterize_handle_free(this->m_rasterMaskHandles[i]);
+ this->m_rasterMaskHandles[i] = NULL;
+ }
}
- unlockMutex();
- return this->m_rasterizedMask;
}
-void MaskOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void MaskOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
if (this->m_maskWidth == 0 || this->m_maskHeight == 0) {
NodeOperation::determineResolution(resolution, preferredResolution);
@@ -115,15 +127,30 @@ void MaskOperation::determineResolution(unsigned int resolution[], unsigned int
}
}
-void MaskOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void MaskOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
- if (!data) {
- color[0] = 0.0f;
+ const float xy[2] = {x * this->m_maskWidthInv,
+ y * this->m_maskHeightInv};
+
+ if (this->m_rasterMaskHandleTot == 1) {
+ if (this->m_rasterMaskHandles[0]) {
+ output[0] = BKE_maskrasterize_handle_sample(this->m_rasterMaskHandles[0], xy);
+ }
+ else {
+ output[0] = 0.0f;
+ }
}
else {
- float *buffer = (float *) data;
- int index = (y * this->getWidth() + x);
+ /* incase loop below fails */
+ output[0] = 0.0f;
+
+ for (unsigned int i = 0; i < this->m_rasterMaskHandleTot; i++) {
+ if (this->m_rasterMaskHandles[i]) {
+ output[0] += BKE_maskrasterize_handle_sample(this->m_rasterMaskHandles[i], xy);
+ }
+ }
- color[0] = buffer[index];
+ /* until we get better falloff */
+ output[0] /= this->m_rasterMaskHandleTot;
}
}
diff --git a/source/blender/compositor/operations/COM_MaskOperation.h b/source/blender/compositor/operations/COM_MaskOperation.h
index df1cad3c0f6..2de71afcfa7 100644
--- a/source/blender/compositor/operations/COM_MaskOperation.h
+++ b/source/blender/compositor/operations/COM_MaskOperation.h
@@ -21,12 +21,11 @@
* Sergey Sharybin
*/
-
#ifndef _COM_MaskOperation_h
#define _COM_MaskOperation_h
+
#include "COM_NodeOperation.h"
-#include "DNA_scene_types.h"
#include "DNA_mask_types.h"
#include "BLI_listbase.h"
#include "IMB_imbuf_types.h"
@@ -37,18 +36,27 @@
class MaskOperation : public NodeOperation {
protected:
Mask *m_mask;
- int m_maskWidth;
- int m_maskHeight;
- int m_framenumber;
+
+ /* note, these are used more like aspect,
+ * but they _do_ impact on mask detail */
+ int m_maskWidth;
+ int m_maskHeight;
+ float m_maskWidthInv; /* 1 / m_maskWidth */
+ float m_maskHeightInv; /* 1 / m_maskHeight */
+
+ float m_frame_shutter;
+ int m_frame_number;
+
bool m_do_smooth;
bool m_do_feather;
- float *m_rasterizedMask;
- ListBase m_maskLayers;
+
+ struct MaskRasterHandle *m_rasterMaskHandles[CMP_NODE_MASK_MBLUR_SAMPLES_MAX];
+ unsigned int m_rasterMaskHandleTot;
/**
* Determine the output resolution. The resolution is retrieved from the Renderer
*/
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
public:
MaskOperation();
@@ -56,16 +64,26 @@ public:
void initExecution();
void deinitExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
void setMask(Mask *mask) { this->m_mask = mask; }
- void setMaskWidth(int width) { this->m_maskWidth = width; }
- void setMaskHeight(int height) { this->m_maskHeight = height; }
- void setFramenumber(int framenumber) { this->m_framenumber = framenumber; }
+ void setMaskWidth(int width)
+ {
+ this->m_maskWidth = width;
+ this->m_maskWidthInv = 1.0f / (float)width;
+ }
+ void setMaskHeight(int height)
+ {
+ this->m_maskHeight = height;
+ this->m_maskHeightInv = 1.0f / (float)height;
+ }
+ void setFramenumber(int frame_number) { this->m_frame_number = frame_number; }
void setSmooth(bool smooth) { this->m_do_smooth = smooth; }
void setFeather(bool feather) { this->m_do_feather = feather; }
- void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data);
+ void setMotionBlurSamples(int samples) { this->m_rasterMaskHandleTot = min(max(1, samples), CMP_NODE_MASK_MBLUR_SAMPLES_MAX); }
+ void setMotionBlurShutter(float shutter) { this->m_frame_shutter = shutter; }
+
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MathBaseOperation.cpp b/source/blender/compositor/operations/COM_MathBaseOperation.cpp
index 1bf89be57b5..7039689aa5f 100644
--- a/source/blender/compositor/operations/COM_MathBaseOperation.cpp
+++ b/source/blender/compositor/operations/COM_MathBaseOperation.cpp
@@ -32,6 +32,7 @@ MathBaseOperation::MathBaseOperation() : NodeOperation()
this->addOutputSocket(COM_DT_VALUE);
this->m_inputValue1Operation = NULL;
this->m_inputValue2Operation = NULL;
+ this->m_useClamp = false;
}
void MathBaseOperation::initExecution()
@@ -47,10 +48,10 @@ void MathBaseOperation::deinitExecution()
this->m_inputValue2Operation = NULL;
}
-void MathBaseOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void MathBaseOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
InputSocket *socket;
- unsigned int tempPreferredResolution[] = {0, 0};
+ unsigned int tempPreferredResolution[2] = {0, 0};
unsigned int tempResolution[2];
socket = this->getInputSocket(0);
@@ -64,215 +65,256 @@ void MathBaseOperation::determineResolution(unsigned int resolution[], unsigned
NodeOperation::determineResolution(resolution, preferredResolution);
}
-void MathAddOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathBaseOperation::clampIfNeeded(float *color)
+{
+ if (this->m_useClamp) {
+ CLAMP(color[0], 0.0f, 1.0f);
+ }
+}
+
+void MathAddOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
- outputValue[0] = inputValue1[0] + inputValue2[0];
+ output[0] = inputValue1[0] + inputValue2[0];
+
+ clampIfNeeded(output);
}
-void MathSubtractOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathSubtractOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
- outputValue[0] = inputValue1[0] - inputValue2[0];
+ output[0] = inputValue1[0] - inputValue2[0];
+
+ clampIfNeeded(output);
}
-void MathMultiplyOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathMultiplyOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
- outputValue[0] = inputValue1[0] * inputValue2[0];
+ output[0] = inputValue1[0] * inputValue2[0];
+
+ clampIfNeeded(output);
}
-void MathDivideOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathDivideOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
if (inputValue2[0] == 0) /* We don't want to divide by zero. */
- outputValue[0] = 0.0;
+ output[0] = 0.0;
else
- outputValue[0] = inputValue1[0] / inputValue2[0];
+ output[0] = inputValue1[0] / inputValue2[0];
+
+ clampIfNeeded(output);
}
-void MathSineOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathSineOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
- outputValue[0] = sin(inputValue1[0]);
+ output[0] = sin(inputValue1[0]);
+
+ clampIfNeeded(output);
}
-void MathCosineOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathCosineOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
- outputValue[0] = cos(inputValue1[0]);
+ output[0] = cos(inputValue1[0]);
+
+ clampIfNeeded(output);
}
-void MathTangentOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathTangentOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
- outputValue[0] = tan(inputValue1[0]);
+ output[0] = tan(inputValue1[0]);
+
+ clampIfNeeded(output);
}
-void MathArcSineOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathArcSineOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
if (inputValue1[0] <= 1 && inputValue1[0] >= -1)
- outputValue[0] = asin(inputValue1[0]);
+ output[0] = asin(inputValue1[0]);
else
- outputValue[0] = 0.0;
+ output[0] = 0.0;
+
+ clampIfNeeded(output);
}
-void MathArcCosineOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathArcCosineOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
if (inputValue1[0] <= 1 && inputValue1[0] >= -1)
- outputValue[0] = acos(inputValue1[0]);
+ output[0] = acos(inputValue1[0]);
else
- outputValue[0] = 0.0;
+ output[0] = 0.0;
+
+ clampIfNeeded(output);
}
-void MathArcTangentOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathArcTangentOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
- outputValue[0] = atan(inputValue1[0]);
+ output[0] = atan(inputValue1[0]);
+
+ clampIfNeeded(output);
}
-void MathPowerOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathPowerOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
if (inputValue1[0] >= 0) {
- outputValue[0] = pow(inputValue1[0], inputValue2[0]);
+ output[0] = pow(inputValue1[0], inputValue2[0]);
}
else {
float y_mod_1 = fmod(inputValue2[0], 1);
/* if input value is not nearly an integer, fall back to zero, nicer than straight rounding */
if (y_mod_1 > 0.999f || y_mod_1 < 0.001f) {
- outputValue[0] = pow(inputValue1[0], floorf(inputValue2[0] + 0.5f));
+ output[0] = pow(inputValue1[0], floorf(inputValue2[0] + 0.5f));
}
else {
- outputValue[0] = 0.0;
+ output[0] = 0.0;
}
}
+
+ clampIfNeeded(output);
}
-void MathLogarithmOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathLogarithmOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
if (inputValue1[0] > 0 && inputValue2[0] > 0)
- outputValue[0] = log(inputValue1[0]) / log(inputValue2[0]);
+ output[0] = log(inputValue1[0]) / log(inputValue2[0]);
else
- outputValue[0] = 0.0;
+ output[0] = 0.0;
+
+ clampIfNeeded(output);
}
-void MathMinimumOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathMinimumOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
- outputValue[0] = min(inputValue1[0], inputValue2[0]);
+ output[0] = min(inputValue1[0], inputValue2[0]);
+
+ clampIfNeeded(output);
}
-void MathMaximumOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathMaximumOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
- outputValue[0] = max(inputValue1[0], inputValue2[0]);
+ output[0] = max(inputValue1[0], inputValue2[0]);
+
+ clampIfNeeded(output);
}
-void MathRoundOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathRoundOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
- outputValue[0] = round(inputValue1[0]);
+ output[0] = round(inputValue1[0]);
+
+ clampIfNeeded(output);
}
-void MathLessThanOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathLessThanOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
- outputValue[0] = inputValue1[0] < inputValue2[0] ? 1.0f : 0.0f;
+ output[0] = inputValue1[0] < inputValue2[0] ? 1.0f : 0.0f;
+
+ clampIfNeeded(output);
}
-void MathGreaterThanOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MathGreaterThanOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputValue1[4];
float inputValue2[4];
- this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler, inputBuffers);
- this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler, inputBuffers);
+ this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
+ this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
- outputValue[0] = inputValue1[0] > inputValue2[0] ? 1.0f : 0.0f;
+ output[0] = inputValue1[0] > inputValue2[0] ? 1.0f : 0.0f;
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MathBaseOperation.h b/source/blender/compositor/operations/COM_MathBaseOperation.h
index be06537cbf0..b492d06a697 100644
--- a/source/blender/compositor/operations/COM_MathBaseOperation.h
+++ b/source/blender/compositor/operations/COM_MathBaseOperation.h
@@ -37,16 +37,20 @@ protected:
SocketReader *m_inputValue1Operation;
SocketReader *m_inputValue2Operation;
+ bool m_useClamp;
+
protected:
/**
* Default constructor
*/
MathBaseOperation();
+
+ void clampIfNeeded(float *color);
public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]) = 0;
+ void executePixel(float output[4], float x, float y, PixelSampler sampler) = 0;
/**
* Initialize the execution
@@ -61,94 +65,96 @@ public:
/**
* Determine resolution
*/
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
+
+ void setUseClamp(bool value) { this->m_useClamp = value; }
};
class MathAddOperation : public MathBaseOperation {
public:
MathAddOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathSubtractOperation : public MathBaseOperation {
public:
MathSubtractOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathMultiplyOperation : public MathBaseOperation {
public:
MathMultiplyOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathDivideOperation : public MathBaseOperation {
public:
MathDivideOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathSineOperation : public MathBaseOperation {
public:
MathSineOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathCosineOperation : public MathBaseOperation {
public:
MathCosineOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathTangentOperation : public MathBaseOperation {
public:
MathTangentOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathArcSineOperation : public MathBaseOperation {
public:
MathArcSineOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathArcCosineOperation : public MathBaseOperation {
public:
MathArcCosineOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathArcTangentOperation : public MathBaseOperation {
public:
MathArcTangentOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathPowerOperation : public MathBaseOperation {
public:
MathPowerOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathLogarithmOperation : public MathBaseOperation {
public:
MathLogarithmOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathMinimumOperation : public MathBaseOperation {
public:
MathMinimumOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathMaximumOperation : public MathBaseOperation {
public:
MathMaximumOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathRoundOperation : public MathBaseOperation {
public:
MathRoundOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathLessThanOperation : public MathBaseOperation {
public:
MathLessThanOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MathGreaterThanOperation : public MathBaseOperation {
public:
MathGreaterThanOperation() : MathBaseOperation() {}
- void executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixAddOperation.cpp b/source/blender/compositor/operations/COM_MixAddOperation.cpp
index 7f7315fb3ff..be737f22280 100644
--- a/source/blender/compositor/operations/COM_MixAddOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixAddOperation.cpp
@@ -27,24 +27,26 @@ MixAddOperation::MixAddOperation() : MixBaseOperation()
/* pass */
}
-void MixAddOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixAddOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float inputValue[4];
- this->m_inputValueOperation->read(inputValue, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(inputColor1, x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(inputColor2, x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(inputValue, x, y, sampler);
+ this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
+ this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
float value = inputValue[0];
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
}
- outputValue[0] = inputColor1[0] + value * inputColor2[0];
- outputValue[1] = inputColor1[1] + value * inputColor2[1];
- outputValue[2] = inputColor1[2] + value * inputColor2[2];
- outputValue[3] = inputColor1[3];
+ output[0] = inputColor1[0] + value * inputColor2[0];
+ output[1] = inputColor1[1] + value * inputColor2[1];
+ output[2] = inputColor1[2] + value * inputColor2[2];
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixAddOperation.h b/source/blender/compositor/operations/COM_MixAddOperation.h
index c5eaf0a4d77..5a52846e847 100644
--- a/source/blender/compositor/operations/COM_MixAddOperation.h
+++ b/source/blender/compositor/operations/COM_MixAddOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixBaseOperation.cpp b/source/blender/compositor/operations/COM_MixBaseOperation.cpp
index fbe92f54aa8..2d40629e764 100644
--- a/source/blender/compositor/operations/COM_MixBaseOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixBaseOperation.cpp
@@ -32,6 +32,7 @@ MixBaseOperation::MixBaseOperation() : NodeOperation()
this->m_inputColor1Operation = NULL;
this->m_inputColor2Operation = NULL;
this->setUseValueAlphaMultiply(false);
+ this->setUseClamp(false);
}
void MixBaseOperation::initExecution()
@@ -41,24 +42,25 @@ void MixBaseOperation::initExecution()
this->m_inputColor2Operation = this->getInputSocketReader(2);
}
-void MixBaseOperation::executePixel(float *outputColor, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixBaseOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
- float value;
+ float inputValue[4];
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(inputValue, x, y, sampler);
+ this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
+ this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
+ float value = inputValue[0];
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
}
float valuem = 1.0f - value;
- outputColor[0] = valuem * (inputColor1[0]) + value * (inputColor2[0]);
- outputColor[1] = valuem * (inputColor1[1]) + value * (inputColor2[1]);
- outputColor[2] = valuem * (inputColor1[2]) + value * (inputColor2[2]);
- outputColor[3] = inputColor1[3];
+ output[0] = valuem * (inputColor1[0]) + value * (inputColor2[0]);
+ output[1] = valuem * (inputColor1[1]) + value * (inputColor2[1]);
+ output[2] = valuem * (inputColor1[2]) + value * (inputColor2[2]);
+ output[3] = inputColor1[3];
}
void MixBaseOperation::deinitExecution()
@@ -68,10 +70,10 @@ void MixBaseOperation::deinitExecution()
this->m_inputColor2Operation = NULL;
}
-void MixBaseOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void MixBaseOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
InputSocket *socket;
- unsigned int tempPreferredResolution[] = {0, 0};
+ unsigned int tempPreferredResolution[2] = {0, 0};
unsigned int tempResolution[2];
socket = this->getInputSocket(1);
@@ -93,4 +95,3 @@ void MixBaseOperation::determineResolution(unsigned int resolution[], unsigned i
}
NodeOperation::determineResolution(resolution, preferredResolution);
}
-
diff --git a/source/blender/compositor/operations/COM_MixBaseOperation.h b/source/blender/compositor/operations/COM_MixBaseOperation.h
index 268d4832243..4b466d193d6 100644
--- a/source/blender/compositor/operations/COM_MixBaseOperation.h
+++ b/source/blender/compositor/operations/COM_MixBaseOperation.h
@@ -38,6 +38,18 @@ protected:
SocketReader *m_inputColor1Operation;
SocketReader *m_inputColor2Operation;
bool m_valueAlphaMultiply;
+ bool m_useClamp;
+
+ inline void clampIfNeeded(float *color)
+ {
+ if (m_useClamp) {
+ CLAMP(color[0], 0.0f, 1.0f);
+ CLAMP(color[1], 0.0f, 1.0f);
+ CLAMP(color[2], 0.0f, 1.0f);
+ CLAMP(color[3], 0.0f, 1.0f);
+ }
+ }
+
public:
/**
* Default constructor
@@ -47,7 +59,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
@@ -59,9 +71,10 @@ public:
*/
void deinitExecution();
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
void setUseValueAlphaMultiply(const bool value) { this->m_valueAlphaMultiply = value; }
bool useValueAlphaMultiply() { return this->m_valueAlphaMultiply; }
+ void setUseClamp(bool value) { this->m_useClamp = value; }
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixBlendOperation.cpp b/source/blender/compositor/operations/COM_MixBlendOperation.cpp
index 341aba0e7fc..0ca7d460064 100644
--- a/source/blender/compositor/operations/COM_MixBlendOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixBlendOperation.cpp
@@ -27,24 +27,26 @@ MixBlendOperation::MixBlendOperation() : MixBaseOperation()
/* pass */
}
-void MixBlendOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixBlendOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float inputValue[4];
float value;
- this->m_inputValueOperation->read(inputValue, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(inputColor1, x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(inputColor2, x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(inputValue, x, y, sampler);
+ this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
+ this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
value = inputValue[0];
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
}
float valuem = 1.0f - value;
- outputValue[0] = valuem * (inputColor1[0]) + value * (inputColor2[0]);
- outputValue[1] = valuem * (inputColor1[1]) + value * (inputColor2[1]);
- outputValue[2] = valuem * (inputColor1[2]) + value * (inputColor2[2]);
- outputValue[3] = inputColor1[3];
+ output[0] = valuem * (inputColor1[0]) + value * (inputColor2[0]);
+ output[1] = valuem * (inputColor1[1]) + value * (inputColor2[1]);
+ output[2] = valuem * (inputColor1[2]) + value * (inputColor2[2]);
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixBlendOperation.h b/source/blender/compositor/operations/COM_MixBlendOperation.h
index 16ad635bebd..ce3f187a5e2 100644
--- a/source/blender/compositor/operations/COM_MixBlendOperation.h
+++ b/source/blender/compositor/operations/COM_MixBlendOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixBurnOperation.cpp b/source/blender/compositor/operations/COM_MixBurnOperation.cpp
index 039915ab66a..5cfe38766bc 100644
--- a/source/blender/compositor/operations/COM_MixBurnOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixBurnOperation.cpp
@@ -27,16 +27,16 @@ MixBurnOperation::MixBurnOperation() : MixBaseOperation()
/* pass */
}
-void MixBurnOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixBurnOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float value;
float tmp;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
@@ -45,43 +45,45 @@ void MixBurnOperation::executePixel(float *outputValue, float x, float y, PixelS
tmp = valuem + value * inputColor2[0];
if (tmp <= 0.0f)
- outputValue[0] = 0.0f;
+ output[0] = 0.0f;
else {
tmp = 1.0f - (1.0f - inputColor1[0]) / tmp;
if (tmp < 0.0f)
- outputValue[0] = 0.0f;
+ output[0] = 0.0f;
else if (tmp > 1.0f)
- outputValue[0] = 1.0f;
+ output[0] = 1.0f;
else
- outputValue[0] = tmp;
+ output[0] = tmp;
}
tmp = valuem + value * inputColor2[1];
if (tmp <= 0.0f)
- outputValue[1] = 0.0f;
+ output[1] = 0.0f;
else {
tmp = 1.0f - (1.0f - inputColor1[1]) / tmp;
if (tmp < 0.0f)
- outputValue[1] = 0.0f;
+ output[1] = 0.0f;
else if (tmp > 1.0f)
- outputValue[1] = 1.0f;
+ output[1] = 1.0f;
else
- outputValue[1] = tmp;
+ output[1] = tmp;
}
tmp = valuem + value * inputColor2[2];
if (tmp <= 0.0f)
- outputValue[2] = 0.0f;
+ output[2] = 0.0f;
else {
tmp = 1.0f - (1.0f - inputColor1[2]) / tmp;
if (tmp < 0.0f)
- outputValue[2] = 0.0f;
+ output[2] = 0.0f;
else if (tmp > 1.0f)
- outputValue[2] = 1.0f;
+ output[2] = 1.0f;
else
- outputValue[2] = tmp;
+ output[2] = tmp;
}
- outputValue[3] = inputColor1[3];
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixBurnOperation.h b/source/blender/compositor/operations/COM_MixBurnOperation.h
index 7412f651ab3..131ccfa2130 100644
--- a/source/blender/compositor/operations/COM_MixBurnOperation.h
+++ b/source/blender/compositor/operations/COM_MixBurnOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixColorOperation.cpp b/source/blender/compositor/operations/COM_MixColorOperation.cpp
index cb5791c02bb..56aca27eaef 100644
--- a/source/blender/compositor/operations/COM_MixColorOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixColorOperation.cpp
@@ -31,15 +31,15 @@ MixColorOperation::MixColorOperation() : MixBaseOperation()
/* pass */
}
-void MixColorOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixColorOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float value;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
@@ -53,10 +53,15 @@ void MixColorOperation::executePixel(float *outputValue, float x, float y, Pixel
float tmpr, tmpg, tmpb;
rgb_to_hsv(inputColor1[0], inputColor1[1], inputColor1[2], &rH, &rS, &rV);
hsv_to_rgb(colH, colS, rV, &tmpr, &tmpg, &tmpb);
- outputValue[0] = valuem * (inputColor1[0]) + value * tmpr;
- outputValue[1] = valuem * (inputColor1[1]) + value * tmpg;
- outputValue[2] = valuem * (inputColor1[2]) + value * tmpb;
+ output[0] = (valuem * inputColor1[0]) + (value * tmpr);
+ output[1] = (valuem * inputColor1[1]) + (value * tmpg);
+ output[2] = (valuem * inputColor1[2]) + (value * tmpb);
}
- outputValue[3] = inputColor1[3];
+ else {
+ copy_v3_v3(output, inputColor1);
+ }
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixColorOperation.h b/source/blender/compositor/operations/COM_MixColorOperation.h
index 028ff517132..1409d726f03 100644
--- a/source/blender/compositor/operations/COM_MixColorOperation.h
+++ b/source/blender/compositor/operations/COM_MixColorOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixDarkenOperation.cpp b/source/blender/compositor/operations/COM_MixDarkenOperation.cpp
index db243cf4a87..5b79f4c95ac 100644
--- a/source/blender/compositor/operations/COM_MixDarkenOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixDarkenOperation.cpp
@@ -27,15 +27,15 @@ MixDarkenOperation::MixDarkenOperation() : MixBaseOperation()
/* pass */
}
-void MixDarkenOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixDarkenOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float value;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
@@ -43,15 +43,17 @@ void MixDarkenOperation::executePixel(float *outputValue, float x, float y, Pixe
float valuem = 1.0f - value;
float tmp;
tmp = inputColor2[0] + ((1.0f - inputColor2[0]) * valuem);
- if (tmp < inputColor1[0]) outputValue[0] = tmp;
- else outputValue[0] = inputColor1[0];
+ if (tmp < inputColor1[0]) output[0] = tmp;
+ else output[0] = inputColor1[0];
tmp = inputColor2[1] + ((1.0f - inputColor2[1]) * valuem);
- if (tmp < inputColor1[1]) outputValue[1] = tmp;
- else outputValue[1] = inputColor1[1];
+ if (tmp < inputColor1[1]) output[1] = tmp;
+ else output[1] = inputColor1[1];
tmp = inputColor2[2] + ((1.0f - inputColor2[2]) * valuem);
- if (tmp < inputColor1[2]) outputValue[2] = tmp;
- else outputValue[2] = inputColor1[2];
+ if (tmp < inputColor1[2]) output[2] = tmp;
+ else output[2] = inputColor1[2];
- outputValue[3] = inputColor1[3];
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixDarkenOperation.h b/source/blender/compositor/operations/COM_MixDarkenOperation.h
index 337fa1a7024..f9c35fa364b 100644
--- a/source/blender/compositor/operations/COM_MixDarkenOperation.h
+++ b/source/blender/compositor/operations/COM_MixDarkenOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixDifferenceOperation.cpp b/source/blender/compositor/operations/COM_MixDifferenceOperation.cpp
index 9fe1a3cb94b..d2c1e5e428f 100644
--- a/source/blender/compositor/operations/COM_MixDifferenceOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixDifferenceOperation.cpp
@@ -28,23 +28,25 @@ MixDifferenceOperation::MixDifferenceOperation() : MixBaseOperation()
/* pass */
}
-void MixDifferenceOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixDifferenceOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float value;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
}
float valuem = 1.0f - value;
- outputValue[0] = valuem * inputColor1[0] + value *fabsf(inputColor1[0] - inputColor2[0]);
- outputValue[1] = valuem * inputColor1[1] + value *fabsf(inputColor1[1] - inputColor2[1]);
- outputValue[2] = valuem * inputColor1[2] + value *fabsf(inputColor1[2] - inputColor2[2]);
- outputValue[3] = inputColor1[3];
+ output[0] = valuem * inputColor1[0] + value *fabsf(inputColor1[0] - inputColor2[0]);
+ output[1] = valuem * inputColor1[1] + value *fabsf(inputColor1[1] - inputColor2[1]);
+ output[2] = valuem * inputColor1[2] + value *fabsf(inputColor1[2] - inputColor2[2]);
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixDifferenceOperation.h b/source/blender/compositor/operations/COM_MixDifferenceOperation.h
index 503fbb691d3..7e4bf3c675c 100644
--- a/source/blender/compositor/operations/COM_MixDifferenceOperation.h
+++ b/source/blender/compositor/operations/COM_MixDifferenceOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixDivideOperation.cpp b/source/blender/compositor/operations/COM_MixDivideOperation.cpp
index 0e1bd408b89..fdb1618b6e6 100644
--- a/source/blender/compositor/operations/COM_MixDivideOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixDivideOperation.cpp
@@ -27,15 +27,15 @@ MixDivideOperation::MixDivideOperation() : MixBaseOperation()
/* pass */
}
-void MixDivideOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixDivideOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float value;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
@@ -43,18 +43,20 @@ void MixDivideOperation::executePixel(float *outputValue, float x, float y, Pixe
float valuem = 1.0f - value;
if (inputColor2[0] != 0.0f)
- outputValue[0] = valuem * (inputColor1[0]) + value * (inputColor1[0]) / inputColor2[0];
+ output[0] = valuem * (inputColor1[0]) + value * (inputColor1[0]) / inputColor2[0];
else
- outputValue[0] = 0.0f;
+ output[0] = 0.0f;
if (inputColor2[1] != 0.0f)
- outputValue[1] = valuem * (inputColor1[1]) + value * (inputColor1[1]) / inputColor2[1];
+ output[1] = valuem * (inputColor1[1]) + value * (inputColor1[1]) / inputColor2[1];
else
- outputValue[1] = 0.0f;
+ output[1] = 0.0f;
if (inputColor2[2] != 0.0f)
- outputValue[2] = valuem * (inputColor1[2]) + value * (inputColor1[2]) / inputColor2[2];
+ output[2] = valuem * (inputColor1[2]) + value * (inputColor1[2]) / inputColor2[2];
else
- outputValue[2] = 0.0f;
+ output[2] = 0.0f;
- outputValue[3] = inputColor1[3];
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixDivideOperation.h b/source/blender/compositor/operations/COM_MixDivideOperation.h
index db60a39f93f..f543265075b 100644
--- a/source/blender/compositor/operations/COM_MixDivideOperation.h
+++ b/source/blender/compositor/operations/COM_MixDivideOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixDodgeOperation.cpp b/source/blender/compositor/operations/COM_MixDodgeOperation.cpp
index ea01806267b..87f60df8e1b 100644
--- a/source/blender/compositor/operations/COM_MixDodgeOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixDodgeOperation.cpp
@@ -27,16 +27,16 @@ MixDodgeOperation::MixDodgeOperation() : MixBaseOperation()
/* pass */
}
-void MixDodgeOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixDodgeOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float value;
float tmp;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
@@ -45,48 +45,50 @@ void MixDodgeOperation::executePixel(float *outputValue, float x, float y, Pixel
if (inputColor1[0] != 0.0f) {
tmp = 1.0f - value * inputColor2[0];
if (tmp <= 0.0f)
- outputValue[0] = 1.0f;
+ output[0] = 1.0f;
else {
tmp = inputColor1[0] / tmp;
if (tmp > 1.0f)
- outputValue[0] = 1.0f;
+ output[0] = 1.0f;
else
- outputValue[0] = tmp;
+ output[0] = tmp;
}
}
else
- outputValue[0] = 0.0f;
+ output[0] = 0.0f;
if (inputColor1[1] != 0.0f) {
tmp = 1.0f - value * inputColor2[1];
if (tmp <= 0.0f)
- outputValue[1] = 1.0f;
+ output[1] = 1.0f;
else {
tmp = inputColor1[1] / tmp;
if (tmp > 1.0f)
- outputValue[1] = 1.0f;
+ output[1] = 1.0f;
else
- outputValue[1] = tmp;
+ output[1] = tmp;
}
}
else
- outputValue[1] = 0.0f;
+ output[1] = 0.0f;
if (inputColor1[2] != 0.0f) {
tmp = 1.0f - value * inputColor2[2];
if (tmp <= 0.0f)
- outputValue[2] = 1.0f;
+ output[2] = 1.0f;
else {
tmp = inputColor1[2] / tmp;
if (tmp > 1.0f)
- outputValue[2] = 1.0f;
+ output[2] = 1.0f;
else
- outputValue[2] = tmp;
+ output[2] = tmp;
}
}
else
- outputValue[2] = 0.0f;
+ output[2] = 0.0f;
- outputValue[3] = inputColor1[3];
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixDodgeOperation.h b/source/blender/compositor/operations/COM_MixDodgeOperation.h
index 32aa8593657..9a285c675c5 100644
--- a/source/blender/compositor/operations/COM_MixDodgeOperation.h
+++ b/source/blender/compositor/operations/COM_MixDodgeOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixGlareOperation.cpp b/source/blender/compositor/operations/COM_MixGlareOperation.cpp
index 7cd24b3bf06..1c6555206da 100644
--- a/source/blender/compositor/operations/COM_MixGlareOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixGlareOperation.cpp
@@ -27,21 +27,27 @@ MixGlareOperation::MixGlareOperation() : MixBaseOperation()
/* pass */
}
-void MixGlareOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixGlareOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float inputValue[4];
float value;
- this->m_inputValueOperation->read(inputValue, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(inputColor1, x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(inputColor2, x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(inputValue, x, y, sampler);
+ this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
+ this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
value = inputValue[0];
float mf = 2.f - 2.f * fabsf(value - 0.5f);
- outputValue[0] = mf * ((inputColor1[0]) + value * (inputColor2[0] - inputColor1[0]));
- outputValue[1] = mf * ((inputColor1[1]) + value * (inputColor2[1] - inputColor1[1]));
- outputValue[2] = mf * ((inputColor1[2]) + value * (inputColor2[2] - inputColor1[2]));
- outputValue[3] = inputColor1[3];
+ if (inputColor1[0] < 0.0f) inputColor1[0] = 0.0f;
+ if (inputColor1[1] < 0.0f) inputColor1[1] = 0.0f;
+ if (inputColor1[2] < 0.0f) inputColor1[2] = 0.0f;
+
+ output[0] = mf * max(inputColor1[0] + value * (inputColor2[0] - inputColor1[0]), 0.0f);
+ output[1] = mf * max(inputColor1[1] + value * (inputColor2[1] - inputColor1[1]), 0.0f);
+ output[2] = mf * max(inputColor1[2] + value * (inputColor2[2] - inputColor1[2]), 0.0f);
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixGlareOperation.h b/source/blender/compositor/operations/COM_MixGlareOperation.h
index 1c715d7414b..99d478e347d 100644
--- a/source/blender/compositor/operations/COM_MixGlareOperation.h
+++ b/source/blender/compositor/operations/COM_MixGlareOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixHueOperation.cpp b/source/blender/compositor/operations/COM_MixHueOperation.cpp
index e7b444616f4..5688d6b26f0 100644
--- a/source/blender/compositor/operations/COM_MixHueOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixHueOperation.cpp
@@ -31,15 +31,15 @@ MixHueOperation::MixHueOperation() : MixBaseOperation()
/* pass */
}
-void MixHueOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixHueOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float value;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
@@ -53,9 +53,11 @@ void MixHueOperation::executePixel(float *outputValue, float x, float y, PixelSa
float tmpr, tmpg, tmpb;
rgb_to_hsv(inputColor1[0], inputColor1[1], inputColor1[2], &rH, &rS, &rV);
hsv_to_rgb(colH, rS, rV, &tmpr, &tmpg, &tmpb);
- outputValue[0] = valuem * (inputColor1[0]) + value * tmpr;
- outputValue[1] = valuem * (inputColor1[1]) + value * tmpg;
- outputValue[2] = valuem * (inputColor1[2]) + value * tmpb;
+ output[0] = valuem * (inputColor1[0]) + value * tmpr;
+ output[1] = valuem * (inputColor1[1]) + value * tmpg;
+ output[2] = valuem * (inputColor1[2]) + value * tmpb;
}
- outputValue[3] = inputColor1[3];
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixHueOperation.h b/source/blender/compositor/operations/COM_MixHueOperation.h
index ff1ef369440..d9864bbe3dc 100644
--- a/source/blender/compositor/operations/COM_MixHueOperation.h
+++ b/source/blender/compositor/operations/COM_MixHueOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixLightenOperation.cpp b/source/blender/compositor/operations/COM_MixLightenOperation.cpp
index 89166637f9f..9eb45a783f8 100644
--- a/source/blender/compositor/operations/COM_MixLightenOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixLightenOperation.cpp
@@ -27,29 +27,31 @@ MixLightenOperation::MixLightenOperation() : MixBaseOperation()
/* pass */
}
-void MixLightenOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixLightenOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float value;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
}
float tmp;
tmp = value * inputColor2[0];
- if (tmp > inputColor1[0]) outputValue[0] = tmp;
- else outputValue[0] = inputColor1[0];
+ if (tmp > inputColor1[0]) output[0] = tmp;
+ else output[0] = inputColor1[0];
tmp = value * inputColor2[1];
- if (tmp > inputColor1[1]) outputValue[1] = tmp;
- else outputValue[1] = inputColor1[1];
+ if (tmp > inputColor1[1]) output[1] = tmp;
+ else output[1] = inputColor1[1];
tmp = value * inputColor2[2];
- if (tmp > inputColor1[2]) outputValue[2] = tmp;
- else outputValue[2] = inputColor1[2];
- outputValue[3] = inputColor1[3];
+ if (tmp > inputColor1[2]) output[2] = tmp;
+ else output[2] = inputColor1[2];
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixLightenOperation.h b/source/blender/compositor/operations/COM_MixLightenOperation.h
index dd51215b26a..5f08a067e11 100644
--- a/source/blender/compositor/operations/COM_MixLightenOperation.h
+++ b/source/blender/compositor/operations/COM_MixLightenOperation.h
@@ -39,6 +39,6 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixLinearLightOperation.cpp b/source/blender/compositor/operations/COM_MixLinearLightOperation.cpp
index 5406a3cbcc1..ee7dcc9fe28 100644
--- a/source/blender/compositor/operations/COM_MixLinearLightOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixLinearLightOperation.cpp
@@ -27,31 +27,33 @@ MixLinearLightOperation::MixLinearLightOperation() : MixBaseOperation()
/* pass */
}
-void MixLinearLightOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixLinearLightOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float value;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
}
if (inputColor2[0] > 0.5f)
- outputValue[0] = inputColor1[0] + value * (2.0f * (inputColor2[0] - 0.5f));
+ output[0] = inputColor1[0] + value * (2.0f * (inputColor2[0] - 0.5f));
else
- outputValue[0] = inputColor1[0] + value * (2.0f * (inputColor2[0]) - 1.0f);
+ output[0] = inputColor1[0] + value * (2.0f * (inputColor2[0]) - 1.0f);
if (inputColor2[1] > 0.5f)
- outputValue[1] = inputColor1[1] + value * (2.0f * (inputColor2[1] - 0.5f));
+ output[1] = inputColor1[1] + value * (2.0f * (inputColor2[1] - 0.5f));
else
- outputValue[1] = inputColor1[1] + value * (2.0f * (inputColor2[1]) - 1.0f);
+ output[1] = inputColor1[1] + value * (2.0f * (inputColor2[1]) - 1.0f);
if (inputColor2[2] > 0.5f)
- outputValue[2] = inputColor1[2] + value * (2.0f * (inputColor2[2] - 0.5f));
+ output[2] = inputColor1[2] + value * (2.0f * (inputColor2[2] - 0.5f));
else
- outputValue[2] = inputColor1[2] + value * (2.0f * (inputColor2[2]) - 1.0f);
+ output[2] = inputColor1[2] + value * (2.0f * (inputColor2[2]) - 1.0f);
- outputValue[3] = inputColor1[3];
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixLinearLightOperation.h b/source/blender/compositor/operations/COM_MixLinearLightOperation.h
index e96e2b7eaf7..35451a9f3db 100644
--- a/source/blender/compositor/operations/COM_MixLinearLightOperation.h
+++ b/source/blender/compositor/operations/COM_MixLinearLightOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixMultiplyOperation.cpp b/source/blender/compositor/operations/COM_MixMultiplyOperation.cpp
index 978e96eb2f6..e53addb7041 100644
--- a/source/blender/compositor/operations/COM_MixMultiplyOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixMultiplyOperation.cpp
@@ -27,24 +27,26 @@ MixMultiplyOperation::MixMultiplyOperation() : MixBaseOperation()
/* pass */
}
-void MixMultiplyOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixMultiplyOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float inputValue[4];
- this->m_inputValueOperation->read(inputValue, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(inputColor1, x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(inputColor2, x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(inputValue, x, y, sampler);
+ this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
+ this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
float value = inputValue[0];
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
}
float valuem = 1.0f - value;
- outputValue[0] = inputColor1[0] * (valuem + value * inputColor2[0]);
- outputValue[1] = inputColor1[1] * (valuem + value * inputColor2[1]);
- outputValue[2] = inputColor1[2] * (valuem + value * inputColor2[2]);
- outputValue[3] = inputColor1[3];
+ output[0] = inputColor1[0] * (valuem + value * inputColor2[0]);
+ output[1] = inputColor1[1] * (valuem + value * inputColor2[1]);
+ output[2] = inputColor1[2] * (valuem + value * inputColor2[2]);
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixMultiplyOperation.h b/source/blender/compositor/operations/COM_MixMultiplyOperation.h
index 4c89a8f2957..cdd56bd2f39 100644
--- a/source/blender/compositor/operations/COM_MixMultiplyOperation.h
+++ b/source/blender/compositor/operations/COM_MixMultiplyOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixOverlayOperation.cpp b/source/blender/compositor/operations/COM_MixOverlayOperation.cpp
index f4f96747acd..09a9d3cbc4f 100644
--- a/source/blender/compositor/operations/COM_MixOverlayOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixOverlayOperation.cpp
@@ -27,15 +27,15 @@ MixOverlayOperation::MixOverlayOperation() : MixBaseOperation()
/* pass */
}
-void MixOverlayOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixOverlayOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float value;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
@@ -44,23 +44,25 @@ void MixOverlayOperation::executePixel(float *outputValue, float x, float y, Pix
float valuem = 1.0f - value;
if (inputColor1[0] < 0.5f) {
- outputValue[0] = inputColor1[0] * (valuem + 2.0f * value * inputColor2[0]);
+ output[0] = inputColor1[0] * (valuem + 2.0f * value * inputColor2[0]);
}
else {
- outputValue[0] = 1.0f - (valuem + 2.0f * value * (1.0f - inputColor2[0])) * (1.0f - inputColor1[0]);
+ output[0] = 1.0f - (valuem + 2.0f * value * (1.0f - inputColor2[0])) * (1.0f - inputColor1[0]);
}
if (inputColor1[1] < 0.5f) {
- outputValue[1] = inputColor1[1] * (valuem + 2.0f * value * inputColor2[1]);
+ output[1] = inputColor1[1] * (valuem + 2.0f * value * inputColor2[1]);
}
else {
- outputValue[1] = 1.0f - (valuem + 2.0f * value * (1.0f - inputColor2[1])) * (1.0f - inputColor1[1]);
+ output[1] = 1.0f - (valuem + 2.0f * value * (1.0f - inputColor2[1])) * (1.0f - inputColor1[1]);
}
if (inputColor1[2] < 0.5f) {
- outputValue[2] = inputColor1[2] * (valuem + 2.0f * value * inputColor2[2]);
+ output[2] = inputColor1[2] * (valuem + 2.0f * value * inputColor2[2]);
}
else {
- outputValue[2] = 1.0f - (valuem + 2.0f * value * (1.0f - inputColor2[2])) * (1.0f - inputColor1[2]);
+ output[2] = 1.0f - (valuem + 2.0f * value * (1.0f - inputColor2[2])) * (1.0f - inputColor1[2]);
}
- outputValue[3] = inputColor1[3];
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixOverlayOperation.h b/source/blender/compositor/operations/COM_MixOverlayOperation.h
index 7de955b9f4f..4f2c08ce95f 100644
--- a/source/blender/compositor/operations/COM_MixOverlayOperation.h
+++ b/source/blender/compositor/operations/COM_MixOverlayOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixSaturationOperation.cpp b/source/blender/compositor/operations/COM_MixSaturationOperation.cpp
index c9c6f691fdb..401ad8d4247 100644
--- a/source/blender/compositor/operations/COM_MixSaturationOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixSaturationOperation.cpp
@@ -31,15 +31,15 @@ MixSaturationOperation::MixSaturationOperation() : MixBaseOperation()
/* pass */
}
-void MixSaturationOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixSaturationOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float value;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
@@ -51,7 +51,9 @@ void MixSaturationOperation::executePixel(float *outputValue, float x, float y,
if (rS != 0.0f) {
float colH, colS, colV;
rgb_to_hsv(inputColor2[0], inputColor2[1], inputColor2[2], &colH, &colS, &colV);
- hsv_to_rgb(rH, (valuem * rS + value * colS), rV, &outputValue[0], &outputValue[1], &outputValue[2]);
+ hsv_to_rgb(rH, (valuem * rS + value * colS), rV, &output[0], &output[1], &output[2]);
}
- outputValue[3] = inputColor1[3];
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixSaturationOperation.h b/source/blender/compositor/operations/COM_MixSaturationOperation.h
index 241009e2645..c690db38daf 100644
--- a/source/blender/compositor/operations/COM_MixSaturationOperation.h
+++ b/source/blender/compositor/operations/COM_MixSaturationOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixScreenOperation.cpp b/source/blender/compositor/operations/COM_MixScreenOperation.cpp
index 9bc9144f4ff..671ffd3303c 100644
--- a/source/blender/compositor/operations/COM_MixScreenOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixScreenOperation.cpp
@@ -27,15 +27,15 @@ MixScreenOperation::MixScreenOperation() : MixBaseOperation()
/* pass */
}
-void MixScreenOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixScreenOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float valuev[4];
- this->m_inputValueOperation->read(valuev, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(valuev, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
float value = valuev[0];
if (this->useValueAlphaMultiply()) {
@@ -43,9 +43,11 @@ void MixScreenOperation::executePixel(float *outputValue, float x, float y, Pixe
}
float valuem = 1.0f - value;
- outputValue[0] = 1.0f - (valuem + value * (1.0f - inputColor2[0])) * (1.0f - inputColor1[0]);
- outputValue[1] = 1.0f - (valuem + value * (1.0f - inputColor2[1])) * (1.0f - inputColor1[1]);
- outputValue[2] = 1.0f - (valuem + value * (1.0f - inputColor2[2])) * (1.0f - inputColor1[2]);
- outputValue[3] = inputColor1[3];
+ output[0] = 1.0f - (valuem + value * (1.0f - inputColor2[0])) * (1.0f - inputColor1[0]);
+ output[1] = 1.0f - (valuem + value * (1.0f - inputColor2[1])) * (1.0f - inputColor1[1]);
+ output[2] = 1.0f - (valuem + value * (1.0f - inputColor2[2])) * (1.0f - inputColor1[2]);
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixScreenOperation.h b/source/blender/compositor/operations/COM_MixScreenOperation.h
index 4d0c1fded3d..5ba3cf769bb 100644
--- a/source/blender/compositor/operations/COM_MixScreenOperation.h
+++ b/source/blender/compositor/operations/COM_MixScreenOperation.h
@@ -39,6 +39,6 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixSoftLightOperation.cpp b/source/blender/compositor/operations/COM_MixSoftLightOperation.cpp
index 52c2e8829dc..604881ae47f 100644
--- a/source/blender/compositor/operations/COM_MixSoftLightOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixSoftLightOperation.cpp
@@ -27,15 +27,15 @@ MixSoftLightOperation::MixSoftLightOperation() : MixBaseOperation()
/* pass */
}
-void MixSoftLightOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]) \
- {
+void MixSoftLightOperation::executePixel(float output[4], float x, float y, PixelSampler sampler) \
+{
float inputColor1[4];
float inputColor2[4];
float value;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
@@ -48,9 +48,11 @@ void MixSoftLightOperation::executePixel(float *outputValue, float x, float y, P
scg = 1.0f - (1.0f - inputColor2[1]) * (1.0f - inputColor1[1]);
scb = 1.0f - (1.0f - inputColor2[2]) * (1.0f - inputColor1[2]);
- outputValue[0] = valuem * (inputColor1[0]) + value * (((1.0f - inputColor1[0]) * inputColor2[0] * (inputColor1[0])) + (inputColor1[0] * scr));
- outputValue[1] = valuem * (inputColor1[1]) + value * (((1.0f - inputColor1[1]) * inputColor2[1] * (inputColor1[1])) + (inputColor1[1] * scg));
- outputValue[2] = valuem * (inputColor1[2]) + value * (((1.0f - inputColor1[2]) * inputColor2[2] * (inputColor1[2])) + (inputColor1[2] * scb));
- outputValue[3] = inputColor1[3];
- }
+ output[0] = valuem * (inputColor1[0]) + value * (((1.0f - inputColor1[0]) * inputColor2[0] * (inputColor1[0])) + (inputColor1[0] * scr));
+ output[1] = valuem * (inputColor1[1]) + value * (((1.0f - inputColor1[1]) * inputColor2[1] * (inputColor1[1])) + (inputColor1[1] * scg));
+ output[2] = valuem * (inputColor1[2]) + value * (((1.0f - inputColor1[2]) * inputColor2[2] * (inputColor1[2])) + (inputColor1[2] * scb));
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
+}
diff --git a/source/blender/compositor/operations/COM_MixSoftLightOperation.h b/source/blender/compositor/operations/COM_MixSoftLightOperation.h
index bcb718027b2..55f6a70791a 100644
--- a/source/blender/compositor/operations/COM_MixSoftLightOperation.h
+++ b/source/blender/compositor/operations/COM_MixSoftLightOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixSubtractOperation.cpp b/source/blender/compositor/operations/COM_MixSubtractOperation.cpp
index 60f54ab478d..a446dfe4e54 100644
--- a/source/blender/compositor/operations/COM_MixSubtractOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixSubtractOperation.cpp
@@ -27,22 +27,24 @@ MixSubtractOperation::MixSubtractOperation() : MixBaseOperation()
/* pass */
}
-void MixSubtractOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixSubtractOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float value;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
}
- outputValue[0] = inputColor1[0] - value * (inputColor2[0]);
- outputValue[1] = inputColor1[1] - value * (inputColor2[1]);
- outputValue[2] = inputColor1[2] - value * (inputColor2[2]);
- outputValue[3] = inputColor1[3];
+ output[0] = inputColor1[0] - value * (inputColor2[0]);
+ output[1] = inputColor1[1] - value * (inputColor2[1]);
+ output[2] = inputColor1[2] - value * (inputColor2[2]);
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixSubtractOperation.h b/source/blender/compositor/operations/COM_MixSubtractOperation.h
index 3c8112b0e36..046d8d4949b 100644
--- a/source/blender/compositor/operations/COM_MixSubtractOperation.h
+++ b/source/blender/compositor/operations/COM_MixSubtractOperation.h
@@ -39,7 +39,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MixValueOperation.cpp b/source/blender/compositor/operations/COM_MixValueOperation.cpp
index 2651b0d7dee..caefdf024cc 100644
--- a/source/blender/compositor/operations/COM_MixValueOperation.cpp
+++ b/source/blender/compositor/operations/COM_MixValueOperation.cpp
@@ -31,15 +31,15 @@ MixValueOperation::MixValueOperation() : MixBaseOperation()
/* pass */
}
-void MixValueOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MixValueOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float inputColor1[4];
float inputColor2[4];
float value;
- this->m_inputValueOperation->read(&value, x, y, sampler, inputBuffers);
- this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler, inputBuffers);
- this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler, inputBuffers);
+ this->m_inputValueOperation->read(&value, x, y, sampler);
+ this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
+ this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
if (this->useValueAlphaMultiply()) {
value *= inputColor2[3];
@@ -50,6 +50,8 @@ void MixValueOperation::executePixel(float *outputValue, float x, float y, Pixel
float colH, colS, colV;
rgb_to_hsv(inputColor1[0], inputColor1[1], inputColor1[2], &rH, &rS, &rV);
rgb_to_hsv(inputColor2[0], inputColor2[1], inputColor2[2], &colH, &colS, &colV);
- hsv_to_rgb(rH, rS, (valuem * rV + value * colV), &outputValue[0], &outputValue[1], &outputValue[2]);
- outputValue[3] = inputColor1[3];
+ hsv_to_rgb(rH, rS, (valuem * rV + value * colV), &output[0], &output[1], &output[2]);
+ output[3] = inputColor1[3];
+
+ clampIfNeeded(output);
}
diff --git a/source/blender/compositor/operations/COM_MixValueOperation.h b/source/blender/compositor/operations/COM_MixValueOperation.h
index c0f3ce10f29..6c3f3ce8072 100644
--- a/source/blender/compositor/operations/COM_MixValueOperation.h
+++ b/source/blender/compositor/operations/COM_MixValueOperation.h
@@ -39,6 +39,6 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp b/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp
index 1af206920c5..0d2de47bc4f 100644
--- a/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp
+++ b/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp
@@ -33,7 +33,7 @@ MovieClipAttributeOperation::MovieClipAttributeOperation() : NodeOperation()
this->m_attribute = MCA_X;
}
-void MovieClipAttributeOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MovieClipAttributeOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
if (!this->m_valueSet) {
float loc[2], scale, angle;
@@ -61,10 +61,10 @@ void MovieClipAttributeOperation::executePixel(float *outputValue, float x, floa
}
this->m_valueSet = true;
}
- outputValue[0] = this->m_value;
+ output[0] = this->m_value;
}
-void MovieClipAttributeOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void MovieClipAttributeOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
resolution[0] = preferredResolution[0];
resolution[1] = preferredResolution[1];
diff --git a/source/blender/compositor/operations/COM_MovieClipAttributeOperation.h b/source/blender/compositor/operations/COM_MovieClipAttributeOperation.h
index c6422fbbfc2..f894626d534 100644
--- a/source/blender/compositor/operations/COM_MovieClipAttributeOperation.h
+++ b/source/blender/compositor/operations/COM_MovieClipAttributeOperation.h
@@ -51,8 +51,8 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
void setMovieClip(MovieClip *clip) { this->m_clip = clip; }
void setFramenumber(int framenumber) { this->m_framenumber = framenumber; }
diff --git a/source/blender/compositor/operations/COM_MovieClipOperation.cpp b/source/blender/compositor/operations/COM_MovieClipOperation.cpp
index f53bb66d478..709e4b7d4b0 100644
--- a/source/blender/compositor/operations/COM_MovieClipOperation.cpp
+++ b/source/blender/compositor/operations/COM_MovieClipOperation.cpp
@@ -23,7 +23,6 @@
#include "COM_MovieClipOperation.h"
#include "BLI_listbase.h"
-#include "DNA_scene_types.h"
#include "BLI_math.h"
extern "C" {
#include "BKE_movieclip.h"
@@ -48,7 +47,12 @@ void MovieClipOperation::initExecution()
if (this->m_movieClip) {
BKE_movieclip_user_set_frame(this->m_movieClipUser, this->m_framenumber);
ImBuf *ibuf;
- ibuf = BKE_movieclip_get_ibuf(this->m_movieClip, this->m_movieClipUser);
+
+ if (this->m_cacheFrame)
+ ibuf = BKE_movieclip_get_ibuf(this->m_movieClip, this->m_movieClipUser);
+ else
+ ibuf = BKE_movieclip_get_ibuf_flag(this->m_movieClip, this->m_movieClipUser, this->m_movieClip->flag, MOVIECLIP_CACHE_SKIP);
+
if (ibuf) {
this->m_movieClipBuffer = ibuf;
if (ibuf->rect_float == NULL || ibuf->userflags & IB_RECT_INVALID) {
@@ -68,7 +72,7 @@ void MovieClipOperation::deinitExecution()
}
}
-void MovieClipOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void MovieClipOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
resolution[0] = 0;
resolution[1] = 0;
@@ -83,21 +87,21 @@ void MovieClipOperation::determineResolution(unsigned int resolution[], unsigned
}
}
-void MovieClipOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MovieClipOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
if (this->m_movieClipBuffer == NULL || x < 0 || y < 0 || x >= this->getWidth() || y >= this->getHeight() ) {
- zero_v4(color);
+ zero_v4(output);
}
else {
switch (sampler) {
case COM_PS_NEAREST:
- neareast_interpolation_color(this->m_movieClipBuffer, NULL, color, x, y);
+ neareast_interpolation_color(this->m_movieClipBuffer, NULL, output, x, y);
break;
case COM_PS_BILINEAR:
- bilinear_interpolation_color(this->m_movieClipBuffer, NULL, color, x, y);
+ bilinear_interpolation_color(this->m_movieClipBuffer, NULL, output, x, y);
break;
case COM_PS_BICUBIC:
- bicubic_interpolation_color(this->m_movieClipBuffer, NULL, color, x, y);
+ bicubic_interpolation_color(this->m_movieClipBuffer, NULL, output, x, y);
break;
}
}
diff --git a/source/blender/compositor/operations/COM_MovieClipOperation.h b/source/blender/compositor/operations/COM_MovieClipOperation.h
index 2e824009ab6..7cce42f6727 100644
--- a/source/blender/compositor/operations/COM_MovieClipOperation.h
+++ b/source/blender/compositor/operations/COM_MovieClipOperation.h
@@ -25,7 +25,6 @@
#define _COM_ImageOperation_h
#include "COM_NodeOperation.h"
-#include "DNA_scene_types.h"
#include "DNA_movieclip_types.h"
#include "BLI_listbase.h"
#include "IMB_imbuf_types.h"
@@ -43,11 +42,12 @@ protected:
int m_movieClipheight;
int m_movieClipwidth;
int m_framenumber;
+ bool m_cacheFrame;
/**
* Determine the output resolution. The resolution is retrieved from the Renderer
*/
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
public:
MovieClipOperation();
@@ -56,9 +56,10 @@ public:
void deinitExecution();
void setMovieClip(MovieClip *image) { this->m_movieClip = image; }
void setMovieClipUser(MovieClipUser *imageuser) { this->m_movieClipUser = imageuser; }
+ void setCacheFrame(bool value) { this->m_cacheFrame = value; }
void setFramenumber(int framenumber) { this->m_framenumber = framenumber; }
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_MovieDistortionOperation.cpp b/source/blender/compositor/operations/COM_MovieDistortionOperation.cpp
index 6b423cadcc6..a3e00e9325b 100644
--- a/source/blender/compositor/operations/COM_MovieDistortionOperation.cpp
+++ b/source/blender/compositor/operations/COM_MovieDistortionOperation.cpp
@@ -31,6 +31,15 @@ extern "C" {
vector<DistortionCache *> s_cache;
+void deintializeDistortionCache(void)
+{
+ while (s_cache.size()>0)
+ {
+ DistortionCache * cache = s_cache.back();
+ s_cache.pop_back();
+ delete cache;
+ }
+}
MovieDistortionOperation::MovieDistortionOperation(bool distortion) : NodeOperation()
{
@@ -52,12 +61,14 @@ void MovieDistortionOperation::initExecution()
BKE_movieclip_user_set_frame(&clipUser, this->m_framenumber);
BKE_movieclip_get_size(this->m_movieClip, &clipUser, &calibration_width, &calibration_height);
- for (unsigned int i = 0; i < s_cache.size(); i++) {
+ for (unsigned int i = 0; i < s_cache.size(); i++)
+ {
DistortionCache *c = (DistortionCache *)s_cache[i];
if (c->isCacheFor(this->m_movieClip, this->m_width, this->m_height,
calibration_width, calibration_height, this->m_distortion))
{
this->m_cache = c;
+ this->m_cache->updateLastUsage();
return;
}
}
@@ -75,19 +86,34 @@ void MovieDistortionOperation::deinitExecution()
{
this->m_inputOperation = NULL;
this->m_movieClip = NULL;
+ while (s_cache.size() > COM_DISTORTIONCACHE_MAXSIZE)
+ {
+ double minTime = PIL_check_seconds_timer();
+ vector<DistortionCache*>::iterator minTimeIterator = s_cache.begin();
+ for (vector<DistortionCache*>::iterator it = s_cache.begin(); it < s_cache.end(); it ++)
+ {
+ DistortionCache * cache = *it;
+ if (cache->getTimeLastUsage()<minTime)
+ {
+ minTime = cache->getTimeLastUsage();
+ minTimeIterator = it;
+ }
+ }
+ s_cache.erase(minTimeIterator);
+ }
}
-void MovieDistortionOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MovieDistortionOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
if (this->m_cache != NULL) {
float u, v;
this->m_cache->getUV(&this->m_movieClip->tracking, x, y, &u, &v);
- this->m_inputOperation->read(color, u, v, sampler, inputBuffers);
+ this->m_inputOperation->read(output, u, v, sampler);
}
else {
- this->m_inputOperation->read(color, x, y, sampler, inputBuffers);
+ this->m_inputOperation->read(output, x, y, sampler);
}
}
diff --git a/source/blender/compositor/operations/COM_MovieDistortionOperation.h b/source/blender/compositor/operations/COM_MovieDistortionOperation.h
index ab81ae44597..f3eeb2f48ba 100644
--- a/source/blender/compositor/operations/COM_MovieDistortionOperation.h
+++ b/source/blender/compositor/operations/COM_MovieDistortionOperation.h
@@ -25,10 +25,15 @@
#include "COM_NodeOperation.h"
#include "DNA_movieclip_types.h"
+#include "MEM_guardedalloc.h"
+
extern "C" {
#include "BKE_tracking.h"
+ #include "PIL_time.h"
}
+#define COM_DISTORTIONCACHE_MAXSIZE 10
+
class DistortionCache {
private:
float m_k1;
@@ -44,6 +49,8 @@ private:
bool m_inverted;
float *m_buffer;
int *m_bufferCalculated;
+ double timeLastUsage;
+
public:
DistortionCache(MovieClip *movieclip, int width, int height, int calibration_width, int calibration_height, bool inverted) {
this->m_k1 = movieclip->tracking.camera.k1;
@@ -57,12 +64,31 @@ public:
this->m_calibration_width = calibration_width;
this->m_calibration_height = calibration_height;
this->m_inverted = inverted;
- this->m_bufferCalculated = new int[this->m_width * this->m_height];
- this->m_buffer = new float[this->m_width * this->m_height * 2];
- for (int i = 0; i < this->m_width * this->m_height; i++) {
- this->m_bufferCalculated[i] = 0;
+ this->m_bufferCalculated = (int *)MEM_callocN(sizeof(int) * this->m_width * this->m_height, __func__);
+ this->m_buffer = (float *)MEM_mallocN(sizeof(float) * this->m_width * this->m_height * 2, __func__);
+ this->updateLastUsage();
+ }
+
+ ~DistortionCache() {
+ if (this->m_buffer) {
+ MEM_freeN(this->m_buffer);
+ this->m_buffer = NULL;
+ }
+
+ if (this->m_bufferCalculated) {
+ MEM_freeN(this->m_bufferCalculated);
+ this->m_bufferCalculated = NULL;
}
}
+
+ void updateLastUsage() {
+ this->timeLastUsage = PIL_check_seconds_timer();
+ }
+
+ inline double getTimeLastUsage() {
+ return this->timeLastUsage;
+ }
+
bool isCacheFor(MovieClip *movieclip, int width, int height, int calibration_width, int claibration_height, bool inverted) {
return this->m_k1 == movieclip->tracking.camera.k1 &&
this->m_k2 == movieclip->tracking.camera.k2 &&
@@ -73,8 +99,8 @@ public:
this->m_inverted == inverted &&
this->m_width == width &&
this->m_height == height &&
- this->m_calibration_width == this->m_calibration_width &&
- this->m_calibration_height == this->m_calibration_height;
+ this->m_calibration_width == calibration_width &&
+ this->m_calibration_height == claibration_height;
}
void getUV(MovieTracking *trackingData, int x, int y, float *u, float *v)
@@ -130,7 +156,7 @@ protected:
public:
MovieDistortionOperation(bool distortion);
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
@@ -139,4 +165,6 @@ public:
void setFramenumber(int framenumber) { this->m_framenumber = framenumber; }
};
+void deintializeDistortionCache(void);
+
#endif
diff --git a/source/blender/compositor/operations/COM_MultilayerImageOperation.cpp b/source/blender/compositor/operations/COM_MultilayerImageOperation.cpp
index 363c0379770..af0d5161835 100644
--- a/source/blender/compositor/operations/COM_MultilayerImageOperation.cpp
+++ b/source/blender/compositor/operations/COM_MultilayerImageOperation.cpp
@@ -43,59 +43,56 @@ ImBuf *MultilayerBaseOperation::getImBuf()
return NULL;
}
-void MultilayerColorOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MultilayerColorOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
int yi = y;
int xi = x;
if (this->m_imageBuffer == NULL || xi < 0 || yi < 0 || (unsigned int)xi >= this->getWidth() || (unsigned int)yi >= this->getHeight() ) {
- color[0] = 0.0f;
- color[1] = 0.0f;
- color[2] = 0.0f;
- color[3] = 0.0f;
+ zero_v4(output);
}
else {
if (this->m_numberOfChannels == 4) {
switch (sampler) {
case COM_PS_NEAREST:
- neareast_interpolation_color(this->m_buffer, NULL, color, x, y);
+ neareast_interpolation_color(this->m_buffer, NULL, output, x, y);
break;
case COM_PS_BILINEAR:
- bilinear_interpolation_color(this->m_buffer, NULL, color, x, y);
+ bilinear_interpolation_color(this->m_buffer, NULL, output, x, y);
break;
case COM_PS_BICUBIC:
- bicubic_interpolation_color(this->m_buffer, NULL, color, x, y);
+ bicubic_interpolation_color(this->m_buffer, NULL, output, x, y);
break;
}
}
else {
int offset = (yi * this->getWidth() + xi) * 3;
- copy_v3_v3(color, &this->m_imageBuffer[offset]);
+ copy_v3_v3(output, &this->m_imageBuffer[offset]);
}
}
}
-void MultilayerValueOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MultilayerValueOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
int yi = y;
int xi = x;
if (this->m_imageBuffer == NULL || xi < 0 || yi < 0 || (unsigned int)xi >= this->getWidth() || (unsigned int)yi >= this->getHeight() ) {
- color[0] = 0.0f;
+ output[0] = 0.0f;
}
else {
float result = this->m_imageBuffer[yi * this->getWidth() + xi];
- color[0] = result;
+ output[0] = result;
}
}
-void MultilayerVectorOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void MultilayerVectorOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
int yi = y;
int xi = x;
if (this->m_imageBuffer == NULL || xi < 0 || yi < 0 || (unsigned int)xi >= this->getWidth() || (unsigned int)yi >= this->getHeight() ) {
- color[0] = 0.0f;
+ output[0] = 0.0f;
}
else {
int offset = (yi * this->getWidth() + xi) * 3;
- copy_v3_v3(color, &this->m_imageBuffer[offset]);
+ copy_v3_v3(output, &this->m_imageBuffer[offset]);
}
}
diff --git a/source/blender/compositor/operations/COM_MultilayerImageOperation.h b/source/blender/compositor/operations/COM_MultilayerImageOperation.h
index f946c44dd35..3c498e962b5 100644
--- a/source/blender/compositor/operations/COM_MultilayerImageOperation.h
+++ b/source/blender/compositor/operations/COM_MultilayerImageOperation.h
@@ -46,7 +46,7 @@ public:
MultilayerColorOperation(int pass) : MultilayerBaseOperation(pass) {
this->addOutputSocket(COM_DT_COLOR);
}
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MultilayerValueOperation : public MultilayerBaseOperation {
@@ -54,7 +54,7 @@ public:
MultilayerValueOperation(int pass) : MultilayerBaseOperation(pass) {
this->addOutputSocket(COM_DT_VALUE);
}
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class MultilayerVectorOperation : public MultilayerBaseOperation {
@@ -62,7 +62,7 @@ public:
MultilayerVectorOperation(int pass) : MultilayerBaseOperation(pass) {
this->addOutputSocket(COM_DT_VECTOR);
}
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_NormalizeOperation.cpp b/source/blender/compositor/operations/COM_NormalizeOperation.cpp
index 8a83ef7f3ae..5f7ac6bb9ca 100644
--- a/source/blender/compositor/operations/COM_NormalizeOperation.cpp
+++ b/source/blender/compositor/operations/COM_NormalizeOperation.cpp
@@ -35,15 +35,14 @@ void NormalizeOperation::initExecution()
NodeOperation::initMutex();
}
-void NormalizeOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void NormalizeOperation::executePixel(float output[4], int x, int y, void *data)
{
/* using generic two floats struct to store x: min y: mult */
NodeTwoFloats *minmult = (NodeTwoFloats *)data;
- float output[4];
- this->m_imageReader->read(output, x, y, inputBuffers, NULL);
+ this->m_imageReader->read(output, x, y, NULL);
- color[0] = (output[0] - minmult->x) * minmult->y;
+ output[0] = (output[0] - minmult->x) * minmult->y;
}
void NormalizeOperation::deinitExecution()
@@ -75,11 +74,11 @@ bool NormalizeOperation::determineDependingAreaOfInterest(rcti *input, ReadBuffe
/* The code below assumes all data is inside range +- this, and that input buffer is single channel */
#define BLENDER_ZMAX 10000.0f
-void *NormalizeOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *NormalizeOperation::initializeTileData(rcti *rect)
{
lockMutex();
if (this->m_cachedInstance == NULL) {
- MemoryBuffer *tile = (MemoryBuffer *)this->m_imageReader->initializeTileData(rect, memoryBuffers);
+ MemoryBuffer *tile = (MemoryBuffer *)this->m_imageReader->initializeTileData(rect);
/* using generic two floats struct to store x: min y: mult */
NodeTwoFloats *minmult = new NodeTwoFloats();
@@ -113,7 +112,7 @@ void *NormalizeOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBu
return this->m_cachedInstance;
}
-void NormalizeOperation::deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data)
+void NormalizeOperation::deinitializeTileData(rcti *rect, void *data)
{
/* pass */
}
diff --git a/source/blender/compositor/operations/COM_NormalizeOperation.h b/source/blender/compositor/operations/COM_NormalizeOperation.h
index 1f4a403434e..32f39a4d9ca 100644
--- a/source/blender/compositor/operations/COM_NormalizeOperation.h
+++ b/source/blender/compositor/operations/COM_NormalizeOperation.h
@@ -47,15 +47,15 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
*/
void initExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
- void deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data);
+ void *initializeTileData(rcti *rect);
+ void deinitializeTileData(rcti *rect, void *data);
/**
* Deinitialize the execution
diff --git a/source/blender/compositor/operations/COM_OpenCLKernels.cl b/source/blender/compositor/operations/COM_OpenCLKernels.cl
index 0f8e543de7f..4d366a864c4 100644
--- a/source/blender/compositor/operations/COM_OpenCLKernels.cl
+++ b/source/blender/compositor/operations/COM_OpenCLKernels.cl
@@ -1,7 +1,30 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ */
+
/// This file contains all opencl kernels for node-operation implementations
// Global SAMPLERS
-const sampler_t SAMPLER_NEAREST = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST;
+const sampler_t SAMPLER_NEAREST = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST;
+const sampler_t SAMPLER_NEAREST_CLAMP = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP | CLK_FILTER_NEAREST;
__constant const int2 zero = {0,0};
@@ -21,7 +44,7 @@ __kernel void bokehBlurKernel(__read_only image2d_t boundingBox, __read_only ima
tempBoundingBox = read_imagef(boundingBox, SAMPLER_NEAREST, coords).s0;
- if (tempBoundingBox > 0.0f) {
+ if (tempBoundingBox > 0.0f && radius > 0 ) {
const int2 bokehImageDim = get_image_dim(bokehImage);
const int2 bokehImageCenter = bokehImageDim/2;
const int2 minXY = max(realCoordinate - radius, zero);
@@ -51,6 +74,75 @@ __kernel void bokehBlurKernel(__read_only image2d_t boundingBox, __read_only ima
write_imagef(output, coords, color);
}
+//KERNEL --- DEFOCUS /VARIABLESIZEBOKEHBLUR ---
+__kernel void defocusKernel(__read_only image2d_t inputImage, __read_only image2d_t bokehImage,
+ __read_only image2d_t inputSize,
+ __write_only image2d_t output, int2 offsetInput, int2 offsetOutput,
+ int step, int maxBlurScalar, float threshold, float scalar, int2 dimension, int2 offset)
+{
+ float4 color = {1.0f, 0.0f, 0.0f, 1.0f};
+ int2 coords = {get_global_id(0), get_global_id(1)};
+ coords += offset;
+ const int2 realCoordinate = coords + offsetOutput;
+
+ float4 readColor;
+ float4 tempColor;
+ float4 bokeh;
+ float size;
+ float4 multiplier_accum = {1.0f, 1.0f, 1.0f, 1.0f};
+ float4 color_accum;
+
+ int minx = max(realCoordinate.s0 - maxBlurScalar, 0);
+ int miny = max(realCoordinate.s1 - maxBlurScalar, 0);
+ int maxx = min(realCoordinate.s0 + maxBlurScalar, dimension.s0);
+ int maxy = min(realCoordinate.s1 + maxBlurScalar, dimension.s1);
+
+ {
+ int2 inputCoordinate = realCoordinate - offsetInput;
+ float size_center = read_imagef(inputSize, SAMPLER_NEAREST, inputCoordinate).s0 * scalar;
+ color_accum = read_imagef(inputImage, SAMPLER_NEAREST, inputCoordinate);
+ readColor = color_accum;
+
+ if (size_center > threshold) {
+ for (int ny = miny; ny < maxy; ny += step) {
+ inputCoordinate.s1 = ny - offsetInput.s1;
+ float dy = ny - realCoordinate.s1;
+ for (int nx = minx; nx < maxx; nx += step) {
+ float dx = nx - realCoordinate.s0;
+ if (dx != 0 || dy != 0) {
+ inputCoordinate.s0 = nx - offsetInput.s0;
+ size = read_imagef(inputSize, SAMPLER_NEAREST, inputCoordinate).s0 * scalar;
+ if (size > threshold) {
+ if (size >= fabs(dx) && size >= fabs(dy)) {
+ float2 uv = {256.0f + dx * 255.0f / size,
+ 256.0f + dy * 255.0f / size};
+ bokeh = read_imagef(bokehImage, SAMPLER_NEAREST, uv);
+ tempColor = read_imagef(inputImage, SAMPLER_NEAREST, inputCoordinate);
+ color_accum += bokeh * tempColor;
+ multiplier_accum += bokeh;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ color = color_accum * (1.0f / multiplier_accum);
+
+ /* blend in out values over the threshold, otherwise we get sharp, ugly transitions */
+ if ((size_center > threshold) &&
+ (size_center < threshold * 2.0f))
+ {
+ /* factor from 0-1 */
+ float fac = (size_center - threshold) / threshold;
+ color = (readColor * (1.0f - fac)) + (color * fac);
+ }
+
+ write_imagef(output, coords, color);
+ }
+}
+
+
// KERNEL --- DILATE ---
__kernel void dilateKernel(__read_only image2d_t inputImage, __write_only image2d_t output,
int2 offsetInput, int2 offsetOutput, int scope, int distanceSquared, int2 dimension,
@@ -71,7 +163,7 @@ __kernel void dilateKernel(__read_only image2d_t inputImage, __write_only image
const float deltaY = (realCoordinate.y - ny);
for (nx = minXY.x, inputXy.x = nx - offsetInput.x; nx < maxXY.x ; nx ++, inputXy.x++) {
const float deltaX = (realCoordinate.x - nx);
- const float measuredDistance = deltaX*deltaX+deltaY*deltaY;
+ const float measuredDistance = deltaX * deltaX + deltaY * deltaY;
if (measuredDistance <= distanceSquared) {
value = max(value, read_imagef(inputImage, SAMPLER_NEAREST, inputXy).s0);
}
@@ -102,7 +194,7 @@ __kernel void erodeKernel(__read_only image2d_t inputImage, __write_only image2
for (nx = minXY.x, inputXy.x = nx - offsetInput.x; nx < maxXY.x ; nx ++, inputXy.x++) {
const float deltaX = (realCoordinate.x - nx);
const float deltaY = (realCoordinate.y - ny);
- const float measuredDistance = deltaX*deltaX+deltaY*deltaY;
+ const float measuredDistance = deltaX * deltaX+deltaY * deltaY;
if (measuredDistance <= distanceSquared) {
value = min(value, read_imagef(inputImage, SAMPLER_NEAREST, inputXy).s0);
}
@@ -112,3 +204,44 @@ __kernel void erodeKernel(__read_only image2d_t inputImage, __write_only image2
float4 color = {value,0.0f,0.0f,0.0f};
write_imagef(output, coords, color);
}
+
+// KERNEL --- DIRECTIONAL BLUR ---
+__kernel void directionalBlurKernel(__read_only image2d_t inputImage, __write_only image2d_t output,
+ int2 offsetOutput, int iterations, float scale, float rotation, float2 translate,
+ float2 center, int2 offset)
+{
+ int2 coords = {get_global_id(0), get_global_id(1)};
+ coords += offset;
+ const int2 realCoordinate = coords + offsetOutput;
+
+ float4 col;
+ float2 ltxy = translate;
+ float lsc = scale;
+ float lrot = rotation;
+
+ col = read_imagef(inputImage, SAMPLER_NEAREST, realCoordinate);
+
+ /* blur the image */
+ for (int i = 0; i < iterations; ++i) {
+ const float cs = cos(lrot), ss = sin(lrot);
+ const float isc = 1.0f / (1.0f + lsc);
+
+ const float v = isc * (realCoordinate.s1 - center.s1) + ltxy.s1;
+ const float u = isc * (realCoordinate.s0 - center.s0) + ltxy.s0;
+ float2 uv = {
+ cs * u + ss * v + center.s0,
+ cs * v - ss * u + center.s1
+ };
+
+ col += read_imagef(inputImage, SAMPLER_NEAREST_CLAMP, uv);
+
+ /* double transformations */
+ ltxy += translate;
+ lrot += rotation;
+ lsc += scale;
+ }
+
+ col *= (1.0f/(iterations+1));
+
+ write_imagef(output, coords, col);
+}
diff --git a/source/blender/compositor/operations/COM_OpenCLKernels.cl.h b/source/blender/compositor/operations/COM_OpenCLKernels.cl.h
deleted file mode 100644
index e064b7511cb..00000000000
--- a/source/blender/compositor/operations/COM_OpenCLKernels.cl.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/* clkernelstoh output of file <COM_OpenCLKernels_cl> */
-
-const char * clkernelstoh_COM_OpenCLKernels_cl = "/// This file contains all opencl kernels for node-operation implementations\n" \
-"\n" \
-"// Global SAMPLERS\n" \
-"const sampler_t SAMPLER_NEAREST = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_NEAREST;\n" \
-"\n" \
-"__constant const int2 zero = {0,0};\n" \
-"\n" \
-"// KERNEL --- BOKEH BLUR ---\n" \
-"__kernel void bokehBlurKernel(__read_only image2d_t boundingBox, __read_only image2d_t inputImage,\n" \
-" __read_only image2d_t bokehImage, __write_only image2d_t output,\n" \
-" int2 offsetInput, int2 offsetOutput, int radius, int step, int2 dimension, int2 offset)\n" \
-"{\n" \
-" int2 coords = {get_global_id(0), get_global_id(1)};\n" \
-" coords += offset;\n" \
-" float tempBoundingBox;\n" \
-" float4 color = {0.0f,0.0f,0.0f,0.0f};\n" \
-" float4 multiplier = {0.0f,0.0f,0.0f,0.0f};\n" \
-" float4 bokeh;\n" \
-" const float radius2 = radius*2.0f;\n" \
-" const int2 realCoordinate = coords + offsetOutput;\n" \
-"\n" \
-" tempBoundingBox = read_imagef(boundingBox, SAMPLER_NEAREST, coords).s0;\n" \
-"\n" \
-" if (tempBoundingBox > 0.0f) {\n" \
-" const int2 bokehImageDim = get_image_dim(bokehImage);\n" \
-" const int2 bokehImageCenter = bokehImageDim/2;\n" \
-" const int2 minXY = max(realCoordinate - radius, zero);\n" \
-" const int2 maxXY = min(realCoordinate + radius, dimension);\n" \
-" int nx, ny;\n" \
-"\n" \
-" float2 uv;\n" \
-" int2 inputXy;\n" \
-"\n" \
-" for (ny = minXY.y, inputXy.y = ny - offsetInput.y ; ny < maxXY.y ; ny +=step, inputXy.y+=step) {\n" \
-" uv.y = ((realCoordinate.y-ny)/radius2)*bokehImageDim.y+bokehImageCenter.y;\n" \
-"\n" \
-" for (nx = minXY.x, inputXy.x = nx - offsetInput.x; nx < maxXY.x ; nx +=step, inputXy.x+=step) {\n" \
-" uv.x = ((realCoordinate.x-nx)/radius2)*bokehImageDim.x+bokehImageCenter.x;\n" \
-" bokeh = read_imagef(bokehImage, SAMPLER_NEAREST, uv);\n" \
-" color += bokeh * read_imagef(inputImage, SAMPLER_NEAREST, inputXy);\n" \
-" multiplier += bokeh;\n" \
-" }\n" \
-" }\n" \
-" color /= multiplier;\n" \
-"\n" \
-" } else {\n" \
-" int2 imageCoordinates = realCoordinate - offsetInput;\n" \
-" color = read_imagef(inputImage, SAMPLER_NEAREST, imageCoordinates);\n" \
-" }\n" \
-"\n" \
-" write_imagef(output, coords, color);\n" \
-"}\n" \
-"\n" \
-"// KERNEL --- DILATE ---\n" \
-"__kernel void dilateKernel(__read_only image2d_t inputImage, __write_only image2d_t output,\n" \
-" int2 offsetInput, int2 offsetOutput, int scope, int distanceSquared, int2 dimension,\n" \
-" int2 offset)\n" \
-"{\n" \
-" int2 coords = {get_global_id(0), get_global_id(1)};\n" \
-" coords += offset;\n" \
-" const int2 realCoordinate = coords + offsetOutput;\n" \
-"\n" \
-" const int2 minXY = max(realCoordinate - scope, zero);\n" \
-" const int2 maxXY = min(realCoordinate + scope, dimension);\n" \
-"\n" \
-" float value = 0.0f;\n" \
-" int nx, ny;\n" \
-" int2 inputXy;\n" \
-"\n" \
-" for (ny = minXY.y, inputXy.y = ny - offsetInput.y ; ny < maxXY.y ; ny ++, inputXy.y++) {\n" \
-" for (nx = minXY.x, inputXy.x = nx - offsetInput.x; nx < maxXY.x ; nx ++, inputXy.x++) {\n" \
-" const float deltaX = (realCoordinate.x - nx);\n" \
-" const float deltaY = (realCoordinate.y - ny);\n" \
-" const float measuredDistance = deltaX*deltaX+deltaY*deltaY;\n" \
-" if (measuredDistance <= distanceSquared) {\n" \
-" value = max(value, read_imagef(inputImage, SAMPLER_NEAREST, inputXy).s0);\n" \
-" }\n" \
-" }\n" \
-" }\n" \
-"\n" \
-" float4 color = {value,0.0f,0.0f,0.0f};\n" \
-" write_imagef(output, coords, color);\n" \
-"}\n" \
-"\n" \
-"// KERNEL --- DILATE ---\n" \
-"__kernel void erodeKernel(__read_only image2d_t inputImage, __write_only image2d_t output,\n" \
-" int2 offsetInput, int2 offsetOutput, int scope, int distanceSquared, int2 dimension,\n" \
-" int2 offset)\n" \
-"{\n" \
-" int2 coords = {get_global_id(0), get_global_id(1)};\n" \
-" coords += offset;\n" \
-" const int2 realCoordinate = coords + offsetOutput;\n" \
-"\n" \
-" const int2 minXY = max(realCoordinate - scope, zero);\n" \
-" const int2 maxXY = min(realCoordinate + scope, dimension);\n" \
-"\n" \
-" float value = 1.0f;\n" \
-" int nx, ny;\n" \
-" int2 inputXy;\n" \
-"\n" \
-" for (ny = minXY.y, inputXy.y = ny - offsetInput.y ; ny < maxXY.y ; ny ++, inputXy.y++) {\n" \
-" for (nx = minXY.x, inputXy.x = nx - offsetInput.x; nx < maxXY.x ; nx ++, inputXy.x++) {\n" \
-" const float deltaX = (realCoordinate.x - nx);\n" \
-" const float deltaY = (realCoordinate.y - ny);\n" \
-" const float measuredDistance = deltaX*deltaX+deltaY*deltaY;\n" \
-" if (measuredDistance <= distanceSquared) {\n" \
-" value = min(value, read_imagef(inputImage, SAMPLER_NEAREST, inputXy).s0);\n" \
-" }\n" \
-" }\n" \
-" }\n" \
-"\n" \
-" float4 color = {value,0.0f,0.0f,0.0f};\n" \
-" write_imagef(output, coords, color);\n" \
-"}\n" \
-"\0";
diff --git a/source/blender/compositor/operations/COM_OutputFileOperation.cpp b/source/blender/compositor/operations/COM_OutputFileOperation.cpp
index 087e7a15e39..b3c2df7230f 100644
--- a/source/blender/compositor/operations/COM_OutputFileOperation.cpp
+++ b/source/blender/compositor/operations/COM_OutputFileOperation.cpp
@@ -27,14 +27,16 @@
#include "BLI_listbase.h"
#include "BLI_path_util.h"
#include "BLI_string.h"
-#include "DNA_scene_types.h"
#include "BKE_image.h"
#include "BKE_global.h"
#include "BKE_main.h"
+#include "DNA_color_types.h"
+
extern "C" {
#include "MEM_guardedalloc.h"
#include "IMB_imbuf.h"
+ #include "IMB_colormanagement.h"
#include "IMB_imbuf_types.h"
}
@@ -59,7 +61,7 @@ static float *init_buffer(unsigned int width, unsigned int height, DataType data
return NULL;
}
-static void write_buffer_rect(rcti *rect, MemoryBuffer **memoryBuffers, const bNodeTree *tree,
+static void write_buffer_rect(rcti *rect, const bNodeTree *tree,
SocketReader *reader, float *buffer, unsigned int width, DataType datatype)
{
float color[4];
@@ -77,7 +79,7 @@ static void write_buffer_rect(rcti *rect, MemoryBuffer **memoryBuffers, const bN
for (y = y1; y < y2 && (!breaked); y++) {
for (x = x1; x < x2 && (!breaked); x++) {
- reader->read(color, x, y, COM_PS_NEAREST, memoryBuffers);
+ reader->read(color, x, y, COM_PS_NEAREST);
for (i = 0; i < size; ++i)
buffer[offset + i] = color[i];
@@ -92,7 +94,8 @@ static void write_buffer_rect(rcti *rect, MemoryBuffer **memoryBuffers, const bN
OutputSingleLayerOperation::OutputSingleLayerOperation(
- const RenderData *rd, const bNodeTree *tree, DataType datatype, ImageFormatData *format, const char *path)
+ const RenderData *rd, const bNodeTree *tree, DataType datatype, ImageFormatData *format, const char *path,
+ const ColorManagedViewSettings *viewSettings, const ColorManagedDisplaySettings *displaySettings)
{
this->m_rd = rd;
this->m_tree = tree;
@@ -105,6 +108,9 @@ OutputSingleLayerOperation::OutputSingleLayerOperation(
this->m_format = format;
BLI_strncpy(this->m_path, path, sizeof(this->m_path));
+
+ this->m_viewSettings = viewSettings;
+ this->m_displaySettings = displaySettings;
}
void OutputSingleLayerOperation::initExecution()
@@ -113,9 +119,9 @@ void OutputSingleLayerOperation::initExecution()
this->m_outputBuffer = init_buffer(this->getWidth(), this->getHeight(), this->m_datatype);
}
-void OutputSingleLayerOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers)
+void OutputSingleLayerOperation::executeRegion(rcti *rect, unsigned int tileNumber)
{
- write_buffer_rect(rect, memoryBuffers, this->m_tree, this->m_imageInput, this->m_outputBuffer, this->getWidth(), this->m_datatype);
+ write_buffer_rect(rect, this->m_tree, this->m_imageInput, this->m_outputBuffer, this->getWidth(), this->m_datatype);
}
void OutputSingleLayerOperation::deinitExecution()
@@ -123,7 +129,7 @@ void OutputSingleLayerOperation::deinitExecution()
if (this->getWidth() * this->getHeight() != 0) {
int size = get_datatype_size(this->m_datatype);
- ImBuf *ibuf = IMB_allocImBuf(this->getWidth(), this->getHeight(), size * 8, 0);
+ ImBuf *ibuf = IMB_allocImBuf(this->getWidth(), this->getHeight(), this->m_format->planes, 0);
Main *bmain = G.main; /* TODO, have this passed along */
char filename[FILE_MAX];
@@ -132,9 +138,9 @@ void OutputSingleLayerOperation::deinitExecution()
ibuf->mall |= IB_rectfloat;
ibuf->dither = this->m_rd->dither_intensity;
- if (this->m_rd->color_mgt_flag & R_COLOR_MANAGEMENT)
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
-
+ IMB_colormanagement_imbuf_for_write(ibuf, TRUE, FALSE, m_viewSettings, m_displaySettings,
+ this->m_format);
+
BKE_makepicstring(filename, this->m_path, bmain->name, this->m_rd->cfra, this->m_format->imtype,
(this->m_rd->scemode & R_EXTENSION), true);
@@ -183,10 +189,10 @@ void OutputOpenExrMultiLayerOperation::initExecution()
}
}
-void OutputOpenExrMultiLayerOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers)
+void OutputOpenExrMultiLayerOperation::executeRegion(rcti *rect, unsigned int tileNumber)
{
for (unsigned int i = 0; i < this->m_layers.size(); ++i) {
- write_buffer_rect(rect, memoryBuffers, this->m_tree, this->m_layers[i].imageInput, this->m_layers[i].outputBuffer, this->getWidth(), this->m_layers[i].datatype);
+ write_buffer_rect(rect, this->m_tree, this->m_layers[i].imageInput, this->m_layers[i].outputBuffer, this->getWidth(), this->m_layers[i].datatype);
}
}
diff --git a/source/blender/compositor/operations/COM_OutputFileOperation.h b/source/blender/compositor/operations/COM_OutputFileOperation.h
index 60244a8bf72..69d1ad48ced 100644
--- a/source/blender/compositor/operations/COM_OutputFileOperation.h
+++ b/source/blender/compositor/operations/COM_OutputFileOperation.h
@@ -24,8 +24,11 @@
#ifndef _COM_OutputFileOperation_h
#define _COM_OutputFileOperation_h
#include "COM_NodeOperation.h"
+
#include "BLI_rect.h"
-#include "BKE_utildefines.h"
+#include "BLI_path_util.h"
+
+#include "DNA_color_types.h"
#include "intern/openexr/openexr_multi.h"
@@ -42,10 +45,13 @@ private:
DataType m_datatype;
SocketReader *m_imageInput;
+ const ColorManagedViewSettings *m_viewSettings;
+ const ColorManagedDisplaySettings *m_displaySettings;
public:
- OutputSingleLayerOperation(const RenderData *rd, const bNodeTree *tree, DataType datatype, ImageFormatData *format, const char *path);
+ OutputSingleLayerOperation(const RenderData *rd, const bNodeTree *tree, DataType datatype, ImageFormatData *format, const char *path,
+ const ColorManagedViewSettings *viewSettings, const ColorManagedDisplaySettings *displaySettings);
- void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers);
+ void executeRegion(rcti *rect, unsigned int tileNumber);
bool isOutputOperation(bool rendering) const { return true; }
void initExecution();
void deinitExecution();
@@ -79,7 +85,7 @@ public:
void add_layer(const char *name, DataType datatype);
- void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers);
+ void executeRegion(rcti *rect, unsigned int tileNumber);
bool isOutputOperation(bool rendering) const { return true; }
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_PreviewOperation.cpp b/source/blender/compositor/operations/COM_PreviewOperation.cpp
index 55e94568688..6e58b277f66 100644
--- a/source/blender/compositor/operations/COM_PreviewOperation.cpp
+++ b/source/blender/compositor/operations/COM_PreviewOperation.cpp
@@ -23,7 +23,6 @@
#include "COM_PreviewOperation.h"
#include "COM_SocketConnection.h"
#include "BLI_listbase.h"
-#include "DNA_scene_types.h"
#include "BKE_image.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -36,16 +35,19 @@ extern "C" {
#include "MEM_guardedalloc.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
+ #include "IMB_colormanagement.h"
}
-PreviewOperation::PreviewOperation() : NodeOperation()
+PreviewOperation::PreviewOperation(const ColorManagedViewSettings *viewSettings, const ColorManagedDisplaySettings *displaySettings) : NodeOperation()
{
this->addInputSocket(COM_DT_COLOR, COM_SC_NO_RESIZE);
this->m_outputBuffer = NULL;
this->m_input = NULL;
this->m_divider = 1.0f;
this->m_node = NULL;
+ this->m_viewSettings = viewSettings;
+ this->m_displaySettings = displaySettings;
}
void PreviewOperation::initExecution()
@@ -79,10 +81,14 @@ void PreviewOperation::deinitExecution()
this->m_input = NULL;
}
-void PreviewOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers)
+void PreviewOperation::executeRegion(rcti *rect, unsigned int tileNumber)
{
int offset;
float color[4];
+ struct ColormanageProcessor *cm_processor;
+
+ cm_processor = IMB_colormanagement_display_processor_new(this->m_viewSettings, this->m_displaySettings);
+
for (int y = rect->ymin; y < rect->ymax; y++) {
offset = (y * getWidth() + rect->xmin) * 4;
for (int x = rect->xmin; x < rect->xmax; x++) {
@@ -93,12 +99,14 @@ void PreviewOperation::executeRegion(rcti *rect, unsigned int tileNumber, Memory
color[1] = 0.0f;
color[2] = 0.0f;
color[3] = 1.0f;
- this->m_input->read(color, rx, ry, COM_PS_NEAREST, memoryBuffers);
- linearrgb_to_srgb_v4(color, color);
+ this->m_input->read(color, rx, ry, COM_PS_NEAREST);
+ IMB_colormanagement_processor_apply_v4(cm_processor, color);
F4TOCHAR4(color, this->m_outputBuffer + offset);
offset += 4;
}
}
+
+ IMB_colormanagement_processor_free(cm_processor);
}
bool PreviewOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
{
@@ -111,7 +119,7 @@ bool PreviewOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferO
return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
}
-void PreviewOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void PreviewOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
NodeOperation::determineResolution(resolution, preferredResolution);
int width = resolution[0];
diff --git a/source/blender/compositor/operations/COM_PreviewOperation.h b/source/blender/compositor/operations/COM_PreviewOperation.h
index e7b8ba55ae0..9e774d0e41b 100644
--- a/source/blender/compositor/operations/COM_PreviewOperation.h
+++ b/source/blender/compositor/operations/COM_PreviewOperation.h
@@ -24,6 +24,7 @@
#define _COM_PreviewOperation_h
#include "COM_NodeOperation.h"
#include "DNA_image_types.h"
+#include "DNA_color_types.h"
#include "BLI_rect.h"
class PreviewOperation : public NodeOperation {
@@ -37,15 +38,17 @@ protected:
SocketReader *m_input;
float m_divider;
+ const ColorManagedViewSettings *m_viewSettings;
+ const ColorManagedDisplaySettings *m_displaySettings;
public:
- PreviewOperation();
+ PreviewOperation(const ColorManagedViewSettings *viewSettings, const ColorManagedDisplaySettings *displaySettings);
bool isOutputOperation(bool rendering) const { return true; }
void initExecution();
void deinitExecution();
const CompositorPriority getRenderPriority() const;
- void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers);
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void executeRegion(rcti *rect, unsigned int tileNumber);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
void setbNode(bNode *node) { this->m_node = node; }
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
bool isPreviewOperation() { return true; }
diff --git a/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.cpp b/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.cpp
index 74145c52a5d..d92fe04eb15 100644
--- a/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.cpp
+++ b/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.cpp
@@ -40,14 +40,14 @@ void ProjectorLensDistortionOperation::initExecution()
this->m_inputProgram = this->getInputSocketReader(0);
}
-void *ProjectorLensDistortionOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *ProjectorLensDistortionOperation::initializeTileData(rcti *rect)
{
- updateDispersion(memoryBuffers);
- void *buffer = this->m_inputProgram->initializeTileData(NULL, memoryBuffers);
+ updateDispersion();
+ void *buffer = this->m_inputProgram->initializeTileData(NULL);
return buffer;
}
-void ProjectorLensDistortionOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void ProjectorLensDistortionOperation::executePixel(float output[4], int x, int y, void *data)
{
float inputValue[4];
const float height = this->getHeight();
@@ -56,12 +56,12 @@ void ProjectorLensDistortionOperation::executePixel(float *color, int x, int y,
const float u = (x + 0.5f) / width;
MemoryBuffer *inputBuffer = (MemoryBuffer *)data;
inputBuffer->readCubic(inputValue, (u * width + this->m_kr2) - 0.5f, v * height - 0.5f);
- color[0] = inputValue[0];
+ output[0] = inputValue[0];
inputBuffer->read(inputValue, x, y);
- color[1] = inputValue[1];
+ output[1] = inputValue[1];
inputBuffer->readCubic(inputValue, (u * width - this->m_kr2) - 0.5f, v * height - 0.5f);
- color[2] = inputValue[2];
- color[3] = 1.0f;
+ output[2] = inputValue[2];
+ output[3] = 1.0f;
}
void ProjectorLensDistortionOperation::deinitExecution()
@@ -78,24 +78,33 @@ bool ProjectorLensDistortionOperation::determineDependingAreaOfInterest(rcti *in
newInput.ymin = input->ymin;
newInput.xmin = input->xmin - this->m_kr2 - 2;
newInput.xmax = input->xmax + this->m_kr2 + 2;
- } else {
- newInput.xmin = input->xmin-7; //(0.25f*20*1)+2 == worse case dispersion
+ }
+ else {
+ rcti dispInput;
+ BLI_rcti_init(&dispInput, 0,5,0,5);
+ if (this->getInputOperation(1)->determineDependingAreaOfInterest(&dispInput, readOperation, output)) {
+ return true;
+ }
+ newInput.xmin = input->xmin - 7; /* (0.25f * 20 * 1) + 2 == worse case dispersion */
newInput.ymin = input->ymin;
newInput.ymax = input->ymax;
- newInput.xmax = input->xmax+7; //(0.25f*20*1)+2 == worse case dispersion
+ newInput.xmax = input->xmax + 7; /* (0.25f * 20 * 1) + 2 == worse case dispersion */
+ }
+ if (this->getInputOperation(0)->determineDependingAreaOfInterest(&newInput, readOperation, output)) {
+ return true;
}
- return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
+ return false;
}
-void ProjectorLensDistortionOperation::updateDispersion(MemoryBuffer **inputBuffers)
+void ProjectorLensDistortionOperation::updateDispersion()
{
if (this->m_dispersionAvailable) return;
this->lockMutex();
if (!this->m_dispersionAvailable) {
float result[4];
- this->getInputSocketReader(1)->read(result, 0, 0, COM_PS_NEAREST, inputBuffers);
+ this->getInputSocketReader(1)->read(result, 1, 1, COM_PS_NEAREST);
this->m_dispersion = result[0];
- this->m_kr = 0.25f * MAX2(MIN2(this->m_dispersion, 1.f), 0.f);
+ this->m_kr = 0.25f * maxf(minf(this->m_dispersion, 1.0f), 0.0f);
this->m_kr2 = this->m_kr * 20;
this->m_dispersionAvailable = true;
}
diff --git a/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.h b/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.h
index c658d66429a..3c910815efc 100644
--- a/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.h
+++ b/source/blender/compositor/operations/COM_ProjectorLensDistortionOperation.h
@@ -44,14 +44,14 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
*/
void initExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
/**
* Deinitialize the execution
*/
@@ -61,7 +61,7 @@ public:
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void updateDispersion(MemoryBuffer **inputBuffers);
+ void updateDispersion();
};
#endif
diff --git a/source/blender/compositor/operations/COM_ReadBufferOperation.cpp b/source/blender/compositor/operations/COM_ReadBufferOperation.cpp
index 76e6921503e..03d41edda64 100644
--- a/source/blender/compositor/operations/COM_ReadBufferOperation.cpp
+++ b/source/blender/compositor/operations/COM_ReadBufferOperation.cpp
@@ -28,14 +28,15 @@ ReadBufferOperation::ReadBufferOperation() : NodeOperation()
{
this->addOutputSocket(COM_DT_COLOR);
this->m_offset = 0;
+ this->m_buffer = NULL;
}
-void *ReadBufferOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *ReadBufferOperation::initializeTileData(rcti *rect)
{
- return getInputMemoryBuffer(memoryBuffers);
+ return m_buffer;
}
-void ReadBufferOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void ReadBufferOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
if (this->m_memoryProxy != NULL) {
WriteBufferOperation *operation = this->m_memoryProxy->getWriteBufferOperation();
@@ -48,38 +49,25 @@ void ReadBufferOperation::determineResolution(unsigned int resolution[], unsigne
}
}
}
-void ReadBufferOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ReadBufferOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
- if (inputBuffers) {
- MemoryBuffer *inputBuffer = inputBuffers[this->m_offset];
- if (inputBuffer) {
- if (sampler == COM_PS_NEAREST) {
- inputBuffer->read(color, x, y);
- }
- else {
- inputBuffer->readCubic(color, x, y);
- }
- }
- } else {
- color[0] = 0.0f;
- color[1] = 0.0f;
- color[2] = 0.0f;
- color[3] = 0.0f;
+ if (sampler == COM_PS_NEAREST) {
+ m_buffer->read(output, x, y);
+ }
+ else {
+ m_buffer->readCubic(output, x, y);
}
}
-void ReadBufferOperation::executePixel(float *color, float x, float y, float dx, float dy, MemoryBuffer *inputBuffers[])
+void ReadBufferOperation::executePixel(float output[4], float x, float y, float dx, float dy, PixelSampler sampler)
{
- MemoryBuffer *inputBuffer = inputBuffers[this->m_offset];
- if (inputBuffer) {
- inputBuffer->readEWA(color, x, y, dx, dy);
- }
+ m_buffer->readEWA(output, x, y, dx, dy, sampler);
}
bool ReadBufferOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
{
if (this == readOperation) {
- BLI_init_rcti(output, input->xmin, input->xmax, input->ymin, input->ymax);
+ BLI_rcti_init(output, input->xmin, input->xmax, input->ymin, input->ymax);
return true;
}
return false;
@@ -93,3 +81,9 @@ void ReadBufferOperation::readResolutionFromWriteBuffer()
this->setHeight(operation->getHeight());
}
}
+
+void ReadBufferOperation::updateMemoryBuffer()
+{
+ this->m_buffer = this->getMemoryProxy()->getBuffer();
+
+}
diff --git a/source/blender/compositor/operations/COM_ReadBufferOperation.h b/source/blender/compositor/operations/COM_ReadBufferOperation.h
index de0c69c0ecc..7e3ac147ee3 100644
--- a/source/blender/compositor/operations/COM_ReadBufferOperation.h
+++ b/source/blender/compositor/operations/COM_ReadBufferOperation.h
@@ -30,22 +30,24 @@ class ReadBufferOperation : public NodeOperation {
private:
MemoryProxy *m_memoryProxy;
unsigned int m_offset;
+ MemoryBuffer *m_buffer;
public:
ReadBufferOperation();
int isBufferOperation() { return true; }
void setMemoryProxy(MemoryProxy *memoryProxy) { this->m_memoryProxy = memoryProxy; }
MemoryProxy *getMemoryProxy() { return this->m_memoryProxy; }
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
- void executePixel(float *color, float x, float y, float dx, float dy, MemoryBuffer * inputBuffers[]);
+ void *initializeTileData(rcti *rect);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
+ void executePixel(float output[4], float x, float y, float dx, float dy, PixelSampler sampler);
const bool isReadBufferOperation() const { return true; }
void setOffset(unsigned int offset) { this->m_offset = offset; }
unsigned int getOffset() { return this->m_offset; }
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
MemoryBuffer *getInputMemoryBuffer(MemoryBuffer **memoryBuffers) { return memoryBuffers[this->m_offset]; }
void readResolutionFromWriteBuffer();
+ void updateMemoryBuffer();
};
#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersAlphaProg.cpp b/source/blender/compositor/operations/COM_RenderLayersAlphaProg.cpp
index 35f787cb59f..74cb506d264 100644
--- a/source/blender/compositor/operations/COM_RenderLayersAlphaProg.cpp
+++ b/source/blender/compositor/operations/COM_RenderLayersAlphaProg.cpp
@@ -27,7 +27,7 @@ RenderLayersAlphaProg::RenderLayersAlphaProg() : RenderLayersBaseProg(SCE_PASS_C
this->addOutputSocket(COM_DT_VALUE);
}
-void RenderLayersAlphaProg::executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void RenderLayersAlphaProg::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
int ix = x;
int iy = y;
diff --git a/source/blender/compositor/operations/COM_RenderLayersAlphaProg.h b/source/blender/compositor/operations/COM_RenderLayersAlphaProg.h
index 846e337c572..36668bc9338 100644
--- a/source/blender/compositor/operations/COM_RenderLayersAlphaProg.h
+++ b/source/blender/compositor/operations/COM_RenderLayersAlphaProg.h
@@ -28,7 +28,7 @@
class RenderLayersAlphaProg : public RenderLayersBaseProg {
public:
RenderLayersAlphaProg();
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
diff --git a/source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp b/source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp
index e4543c06d9b..a4015c6283f 100644
--- a/source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp
+++ b/source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp
@@ -69,7 +69,7 @@ void RenderLayersBaseProg::initExecution()
}
}
-void RenderLayersBaseProg::executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void RenderLayersBaseProg::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
int ix = x;
int iy = y;
@@ -100,7 +100,7 @@ void RenderLayersBaseProg::deinitExecution()
this->m_inputBuffer = NULL;
}
-void RenderLayersBaseProg::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void RenderLayersBaseProg::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
Scene *sce = this->getScene();
Render *re = (sce) ? RE_GetRender(sce->id.name) : NULL;
diff --git a/source/blender/compositor/operations/COM_RenderLayersBaseProg.h b/source/blender/compositor/operations/COM_RenderLayersBaseProg.h
index a18b515bd7b..ea57d4bc421 100644
--- a/source/blender/compositor/operations/COM_RenderLayersBaseProg.h
+++ b/source/blender/compositor/operations/COM_RenderLayersBaseProg.h
@@ -73,7 +73,7 @@ protected:
/**
* Determine the output resolution. The resolution is retrieved from the Renderer
*/
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
/**
* retrieve the reference to the float buffer of the renderer.
@@ -92,7 +92,7 @@ public:
short getLayerId() { return this->m_layerId; }
void initExecution();
void deinitExecution();
- void executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/compositor/operations/COM_RenderLayersImageProg.h b/source/blender/compositor/operations/COM_RenderLayersImageProg.h
index 2d63bad235b..5fa74c8b21f 100644
--- a/source/blender/compositor/operations/COM_RenderLayersImageProg.h
+++ b/source/blender/compositor/operations/COM_RenderLayersImageProg.h
@@ -25,7 +25,7 @@
#include "COM_RenderLayersBaseProg.h"
-/// @TODO rename to image operation
+/// @todo rename to image operation
class RenderLayersColorProg : public RenderLayersBaseProg {
public:
RenderLayersColorProg();
diff --git a/source/blender/compositor/operations/COM_RotateOperation.cpp b/source/blender/compositor/operations/COM_RotateOperation.cpp
index 086ce917e7e..422c5b93484 100644
--- a/source/blender/compositor/operations/COM_RotateOperation.cpp
+++ b/source/blender/compositor/operations/COM_RotateOperation.cpp
@@ -52,7 +52,7 @@ inline void RotateOperation::ensureDegree()
{
if (!this->m_isDegreeSet) {
float degree[4];
- this->m_degreeSocket->read(degree, 0, 0, COM_PS_NEAREST, NULL);
+ this->m_degreeSocket->read(degree, 0, 0, COM_PS_NEAREST);
double rad;
if (this->m_doDegree2RadConversion) {
rad = DEG2RAD((double)degree[0]);
@@ -68,14 +68,14 @@ inline void RotateOperation::ensureDegree()
}
-void RotateOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void RotateOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
ensureDegree();
const float dy = y - this->m_centerY;
const float dx = x - this->m_centerX;
const float nx = this->m_centerX + (this->m_cosine * dx + this->m_sine * dy);
const float ny = this->m_centerY + (-this->m_sine * dx + this->m_cosine * dy);
- this->m_imageSocket->read(color, nx, ny, sampler, inputBuffers);
+ this->m_imageSocket->read(output, nx, ny, sampler);
}
bool RotateOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
diff --git a/source/blender/compositor/operations/COM_RotateOperation.h b/source/blender/compositor/operations/COM_RotateOperation.h
index 9e6dd3987d1..292f0743a44 100644
--- a/source/blender/compositor/operations/COM_RotateOperation.h
+++ b/source/blender/compositor/operations/COM_RotateOperation.h
@@ -38,7 +38,7 @@ private:
public:
RotateOperation();
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
void setDoDegree2RadConversion(bool abool) { this->m_doDegree2RadConversion = abool; }
diff --git a/source/blender/compositor/operations/COM_ScaleOperation.cpp b/source/blender/compositor/operations/COM_ScaleOperation.cpp
index 6a1f7b62203..276b2f54b6e 100644
--- a/source/blender/compositor/operations/COM_ScaleOperation.cpp
+++ b/source/blender/compositor/operations/COM_ScaleOperation.cpp
@@ -22,9 +22,12 @@
#include "COM_ScaleOperation.h"
-#define USE_FORCE_BICUBIC
+#define USE_FORCE_BILINEAR
/* XXX - ignore input and use default from old compositor,
- * could become an option like the transform node - campbell */
+ * could become an option like the transform node - campbell
+ *
+ * note: use bilinear because bicubic makes fuzzy even when not scaling at all (1:1)
+ */
ScaleOperation::ScaleOperation() : NodeOperation()
{
@@ -54,24 +57,24 @@ void ScaleOperation::deinitExecution()
}
-void ScaleOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ScaleOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
-#ifdef USE_FORCE_BICUBIC
- sampler = COM_PS_BICUBIC;
+#ifdef USE_FORCE_BILINEAR
+ sampler = COM_PS_BILINEAR;
#endif
float scaleX[4];
float scaleY[4];
- this->m_inputXOperation->read(scaleX, x, y, sampler, inputBuffers);
- this->m_inputYOperation->read(scaleY, x, y, sampler, inputBuffers);
+ this->m_inputXOperation->read(scaleX, x, y, sampler);
+ this->m_inputYOperation->read(scaleY, x, y, sampler);
const float scx = scaleX[0];
const float scy = scaleY[0];
float nx = this->m_centerX + (x - this->m_centerX) / scx;
float ny = this->m_centerY + (y - this->m_centerY) / scy;
- this->m_inputOperation->read(color, nx, ny, sampler, inputBuffers);
+ this->m_inputOperation->read(output, nx, ny, sampler);
}
bool ScaleOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
@@ -80,8 +83,8 @@ bool ScaleOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOpe
float scaleX[4];
float scaleY[4];
- this->m_inputXOperation->read(scaleX, 0, 0, COM_PS_NEAREST, NULL);
- this->m_inputYOperation->read(scaleY, 0, 0, COM_PS_NEAREST, NULL);
+ this->m_inputXOperation->read(scaleX, 0, 0, COM_PS_NEAREST);
+ this->m_inputYOperation->read(scaleY, 0, 0, COM_PS_NEAREST);
const float scx = scaleX[0];
const float scy = scaleY[0];
@@ -124,17 +127,17 @@ void ScaleAbsoluteOperation::deinitExecution()
}
-void ScaleAbsoluteOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ScaleAbsoluteOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
-#ifdef USE_FORCE_BICUBIC
- sampler = COM_PS_BICUBIC;
+#ifdef USE_FORCE_BILINEAR
+ sampler = COM_PS_BILINEAR;
#endif
float scaleX[4];
float scaleY[4];
- this->m_inputXOperation->read(scaleX, x, y, sampler, inputBuffers);
- this->m_inputYOperation->read(scaleY, x, y, sampler, inputBuffers);
+ this->m_inputXOperation->read(scaleX, x, y, sampler);
+ this->m_inputYOperation->read(scaleY, x, y, sampler);
const float scx = scaleX[0]; // target absolute scale
const float scy = scaleY[0]; // target absolute scale
@@ -148,7 +151,7 @@ void ScaleAbsoluteOperation::executePixel(float *color, float x, float y, PixelS
float nx = this->m_centerX + (x - this->m_centerX) / relativeXScale;
float ny = this->m_centerY + (y - this->m_centerY) / relativeYScale;
- this->m_inputOperation->read(color, nx, ny, sampler, inputBuffers);
+ this->m_inputOperation->read(output, nx, ny, sampler);
}
bool ScaleAbsoluteOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
@@ -157,8 +160,8 @@ bool ScaleAbsoluteOperation::determineDependingAreaOfInterest(rcti *input, ReadB
float scaleX[4];
float scaleY[4];
- this->m_inputXOperation->read(scaleX, 0, 0, COM_PS_NEAREST, NULL);
- this->m_inputYOperation->read(scaleY, 0, 0, COM_PS_NEAREST, NULL);
+ this->m_inputXOperation->read(scaleX, 0, 0, COM_PS_NEAREST);
+ this->m_inputYOperation->read(scaleY, 0, 0, COM_PS_NEAREST);
const float scx = scaleX[0];
const float scy = scaleY[0];
@@ -184,6 +187,7 @@ ScaleFixedSizeOperation::ScaleFixedSizeOperation() : NodeOperation()
this->addOutputSocket(COM_DT_COLOR);
this->setResolutionInputSocketIndex(0);
this->m_inputOperation = NULL;
+ this->m_is_offset = false;
}
void ScaleFixedSizeOperation::initExecution()
{
@@ -244,19 +248,19 @@ void ScaleFixedSizeOperation::deinitExecution()
}
-void ScaleFixedSizeOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ScaleFixedSizeOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
-#ifdef USE_FORCE_BICUBIC
- sampler = COM_PS_BICUBIC;
+#ifdef USE_FORCE_BILINEAR
+ sampler = COM_PS_BILINEAR;
#endif
if (this->m_is_offset) {
float nx = ((x - this->m_offsetX) * this->m_relX);
float ny = ((y - this->m_offsetY) * this->m_relY);
- this->m_inputOperation->read(color, nx, ny, sampler, inputBuffers);
+ this->m_inputOperation->read(output, nx, ny, sampler);
}
else {
- this->m_inputOperation->read(color, x * this->m_relX, y * this->m_relY, sampler, inputBuffers);
+ this->m_inputOperation->read(output, x * this->m_relX, y * this->m_relY, sampler);
}
}
@@ -272,7 +276,7 @@ bool ScaleFixedSizeOperation::determineDependingAreaOfInterest(rcti *input, Read
return NodeOperation::determineDependingAreaOfInterest(&newInput, readOperation, output);
}
-void ScaleFixedSizeOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void ScaleFixedSizeOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
unsigned int nr[2];
nr[0] = this->m_newWidth;
diff --git a/source/blender/compositor/operations/COM_ScaleOperation.h b/source/blender/compositor/operations/COM_ScaleOperation.h
index 8cd44810bbd..4239ff063fb 100644
--- a/source/blender/compositor/operations/COM_ScaleOperation.h
+++ b/source/blender/compositor/operations/COM_ScaleOperation.h
@@ -35,7 +35,7 @@ private:
public:
ScaleOperation();
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
@@ -51,7 +51,7 @@ class ScaleAbsoluteOperation : public NodeOperation {
public:
ScaleAbsoluteOperation();
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
@@ -75,8 +75,8 @@ class ScaleFixedSizeOperation : public NodeOperation {
public:
ScaleFixedSizeOperation();
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp b/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp
index ea8483734d3..193ab669f40 100644
--- a/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp
+++ b/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp
@@ -21,9 +21,10 @@
*/
#include "COM_ScreenLensDistortionOperation.h"
-#include "BLI_math.h"
-#include "BLI_utildefines.h"
+
extern "C" {
+ #include "BLI_math.h"
+ #include "BLI_utildefines.h"
#include "BLI_rand.h"
}
@@ -48,14 +49,14 @@ void ScreenLensDistortionOperation::initExecution()
}
-void *ScreenLensDistortionOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *ScreenLensDistortionOperation::initializeTileData(rcti *rect)
{
- void *buffer = this->m_inputProgram->initializeTileData(NULL, memoryBuffers);
- updateDispersionAndDistortion(memoryBuffers);
+ void *buffer = this->m_inputProgram->initializeTileData(NULL);
+ updateDispersionAndDistortion();
return buffer;
}
-void ScreenLensDistortionOperation::executePixel(float *outputColor, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void ScreenLensDistortionOperation::executePixel(float output[4], int x, int y, void *data)
{
const float height = this->getHeight();
const float width = this->getWidth();
@@ -69,18 +70,18 @@ void ScreenLensDistortionOperation::executePixel(float *outputColor, int x, int
const float uv_dot = u * u + v * v;
int sta = 0, mid = 0, end = 0;
- if ((t = 1.f - this->m_kr4 * uv_dot) >= 0.f) {
- d = 1.f / (1.f + sqrtf(t));
+ if ((t = 1.0f - this->m_kr4 * uv_dot) >= 0.0f) {
+ d = 1.0f / (1.0f + sqrtf(t));
ln[0] = (u * d + 0.5f) * width - 0.5f, ln[1] = (v * d + 0.5f) * height - 0.5f;
sta = 1;
}
- if ((t = 1.f - this->m_kg4 * uv_dot) >= 0.f) {
- d = 1.f / (1.f + sqrtf(t));
+ if ((t = 1.0f - this->m_kg4 * uv_dot) >= 0.0f) {
+ d = 1.0f / (1.0f + sqrtf(t));
ln[2] = (u * d + 0.5f) * width - 0.5f, ln[3] = (v * d + 0.5f) * height - 0.5f;
mid = 1;
}
- if ((t = 1.f - this->m_kb4 * uv_dot) >= 0.f) {
- d = 1.f / (1.f + sqrtf(t));
+ if ((t = 1.0f - this->m_kb4 * uv_dot) >= 0.0f) {
+ d = 1.0f / (1.0f + sqrtf(t));
ln[4] = (u * d + 0.5f) * width - 0.5f, ln[5] = (v * d + 0.5f) * height - 0.5f;
end = 1;
}
@@ -92,52 +93,49 @@ void ScreenLensDistortionOperation::executePixel(float *outputColor, int x, int
{
// RG
const int dx = ln[2] - ln[0], dy = ln[3] - ln[1];
- const float dsf = sqrtf((float)dx * dx + dy * dy) + 1.f;
- const int ds = (int)(jit ? ((dsf < 4.f) ? 2.f : sqrtf(dsf)) : dsf);
- const float sd = 1.f / (float)ds;
+ const float dsf = sqrtf((float)dx * dx + dy * dy) + 1.0f;
+ const int ds = (int)(jit ? ((dsf < 4.0f) ? 2.0f : sqrtf(dsf)) : dsf);
+ const float sd = 1.0f / (float)ds;
for (z = 0; z < ds; ++z) {
const float tz = ((float)z + (jit ? BLI_frand() : 0.5f)) * sd;
t = 1.0f - (this->m_kr4 + tz * this->m_drg) * uv_dot;
- d = 1.0f / (1.f + sqrtf(t));
+ d = 1.0f / (1.0f + sqrtf(t));
const float nx = (u * d + 0.5f) * width - 0.5f;
const float ny = (v * d + 0.5f) * height - 0.5f;
buffer->readCubic(color, nx, ny);
- tc[0] += (1.f - tz) * color[0], tc[1] += tz * color[1];
+ tc[0] += (1.0f - tz) * color[0], tc[1] += tz * color[1];
dr++, dg++;
}
}
{
// GB
const int dx = ln[4] - ln[2], dy = ln[5] - ln[3];
- const float dsf = sqrtf((float)dx * dx + dy * dy) + 1.f;
- const int ds = (int)(jit ? ((dsf < 4.f) ? 2.f : sqrtf(dsf)) : dsf);
- const float sd = 1.f / (float)ds;
+ const float dsf = sqrtf((float)dx * dx + dy * dy) + 1.0f;
+ const int ds = (int)(jit ? ((dsf < 4.0f) ? 2.0f : sqrtf(dsf)) : dsf);
+ const float sd = 1.0f / (float)ds;
for (z = 0; z < ds; ++z) {
const float tz = ((float)z + (jit ? BLI_frand() : 0.5f)) * sd;
- t = 1.f - (this->m_kg4 + tz * this->m_dgb) * uv_dot;
- d = 1.f / (1.f + sqrtf(t));
+ t = 1.0f - (this->m_kg4 + tz * this->m_dgb) * uv_dot;
+ d = 1.0f / (1.0f + sqrtf(t));
const float nx = (u * d + 0.5f) * width - 0.5f;
const float ny = (v * d + 0.5f) * height - 0.5f;
buffer->readCubic(color, nx, ny);
- tc[1] += (1.f - tz) * color[1], tc[2] += tz * color[2];
+ tc[1] += (1.0f - tz) * color[1], tc[2] += tz * color[2];
dg++, db++;
}
}
- if (dr) outputColor[0] = 2.0f * tc[0] / (float)dr;
- if (dg) outputColor[1] = 2.0f * tc[1] / (float)dg;
- if (db) outputColor[2] = 2.0f * tc[2] / (float)db;
+ if (dr) output[0] = 2.0f * tc[0] / (float)dr;
+ if (dg) output[1] = 2.0f * tc[1] / (float)dg;
+ if (db) output[2] = 2.0f * tc[2] / (float)db;
/* set alpha */
- outputColor[3] = 1.0f;
+ output[3] = 1.0f;
}
else {
- outputColor[0] = 0.0f;
- outputColor[1] = 0.0f;
- outputColor[2] = 0.0f;
- outputColor[3] = 0.0f;
+ zero_v4(output);
}
}
@@ -147,7 +145,7 @@ void ScreenLensDistortionOperation::deinitExecution()
this->m_inputProgram = NULL;
}
-void ScreenLensDistortionOperation::determineUV(float result[4], float x, float y, float distortion, float dispersion)
+void ScreenLensDistortionOperation::determineUV(float result[6], float x, float y, float distortion, float dispersion)
{
if (!this->m_valuesAvailable) {
updateVariables(distortion, dispersion);
@@ -155,63 +153,36 @@ void ScreenLensDistortionOperation::determineUV(float result[4], float x, float
determineUV(result, x, y);
}
-void ScreenLensDistortionOperation::determineUV(float result[4], float x, float y) const
+void ScreenLensDistortionOperation::determineUV(float result[6], float x, float y) const
{
const float height = this->getHeight();
const float width = this->getWidth();
- float d, t, ln[6] = {0, 0, 0, 0, 0, 0};
+ result[0] = x;
+ result[1] = y;
+ result[2] = x;
+ result[3] = y;
+ result[4] = x;
+ result[5] = y;
+
+ float d, t;
const float v = this->m_sc * ((y + 0.5f) - this->m_cy) / this->m_cy;
const float u = this->m_sc * ((x + 0.5f) - this->m_cx) / this->m_cx;
const float uv_dot = u * u + v * v;
- if ((t = 1.f - this->m_kr4 * uv_dot) >= 0.f) {
- d = 1.f / (1.f + sqrtf(t));
- ln[0] = (u * d + 0.5f) * width - 0.5f, ln[1] = (v * d + 0.5f) * height - 0.5f;
- }
- if ((t = 1.f - this->m_kg4 * uv_dot) >= 0.f) {
- d = 1.f / (1.f + sqrtf(t));
- ln[2] = (u * d + 0.5f) * width - 0.5f, ln[3] = (v * d + 0.5f) * height - 0.5f;
- }
- if ((t = 1.f - this->m_kb4 * uv_dot) >= 0.f) {
- d = 1.f / (1.f + sqrtf(t));
- ln[4] = (u * d + 0.5f) * width - 0.5f, ln[5] = (v * d + 0.5f) * height - 0.5f;
+ if ((t = 1.0f - this->m_kr4 * uv_dot) >= 0.0f) {
+ d = 1.0f / (1.0f + sqrtf(t));
+ result[0] = (u * d + 0.5f) * width - 0.5f, result[1] = (v * d + 0.5f) * height - 0.5f;
}
-
- float jit = this->m_data->jit;
- float z;
- {
- // RG
- const int dx = ln[2] - ln[0], dy = ln[3] - ln[1];
- const float dsf = sqrtf((float)dx * dx + dy * dy) + 1.f;
- const int ds = (int)(jit ? ((dsf < 4.f) ? 2.f : sqrtf(dsf)) : dsf);
- const float sd = 1.f / (float)ds;
-
- z = ds;
- const float tz = ((float)z + (1.0f)) * sd;
- t = 1.0f - (this->m_kr4 + tz * this->m_drg) * uv_dot;
- d = 1.0f / (1.f + sqrtf(t));
- const float nx = (u * d + 0.5f) * width - 0.5f;
- const float ny = (v * d + 0.5f) * height - 0.5f;
- result[0] = nx;
- result[1] = ny;
+ if ((t = 1.0f - this->m_kg4 * uv_dot) >= 0.0f) {
+ d = 1.0f / (1.0f + sqrtf(t));
+ result[2] = (u * d + 0.5f) * width - 0.5f, result[3] = (v * d + 0.5f) * height - 0.5f;
}
- {
- // GB
- const int dx = ln[4] - ln[2], dy = ln[5] - ln[3];
- const float dsf = sqrtf((float)dx * dx + dy * dy) + 1.f;
- const int ds = (int)(jit ? ((dsf < 4.f) ? 2.f : sqrtf(dsf)) : dsf);
- const float sd = 1.f / (float)ds;
-
- z = ds;
- const float tz = ((float)z + (1.0f)) * sd;
- t = 1.f - (this->m_kg4 + tz * this->m_dgb) * uv_dot;
- d = 1.f / (1.f + sqrtf(t));
- const float nx = (u * d + 0.5f) * width - 0.5f;
- const float ny = (v * d + 0.5f) * height - 0.5f;
- result[2] = nx;
- result[3] = ny;
+ if ((t = 1.0f - this->m_kb4 * uv_dot) >= 0.0f) {
+ d = 1.0f / (1.0f + sqrtf(t));
+ result[4] = (u * d + 0.5f) * width - 0.5f, result[5] = (v * d + 0.5f) * height - 0.5f;
}
+
}
bool ScreenLensDistortionOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
@@ -232,17 +203,16 @@ bool ScreenLensDistortionOperation::determineDependingAreaOfInterest(rcti *input
return true;
}
-#define MARGIN 64
-
-#define UPDATE_INPUT \
- newInput.xmin = MIN3(newInput.xmin, coords[0], coords[2]); \
- newInput.ymin = MIN3(newInput.ymin, coords[1], coords[3]); \
- newInput.xmax = MAX3(newInput.xmax, coords[0], coords[2]); \
- newInput.ymax = MAX3(newInput.ymax, coords[1], coords[3]);
+#define UPDATE_INPUT { \
+ newInput.xmin = MIN4(newInput.xmin, coords[0], coords[2], coords[4]); \
+ newInput.ymin = MIN4(newInput.ymin, coords[1], coords[3], coords[5]); \
+ newInput.xmax = MAX4(newInput.xmax, coords[0], coords[2], coords[4]); \
+ newInput.ymax = MAX4(newInput.ymax, coords[1], coords[3], coords[5]); \
+ } (void)0
rcti newInput;
- float margin;
- float coords[4];
+ const float margin = 2;
+ float coords[6];
if (m_valuesAvailable) {
determineUV(coords, input->xmin, input->ymin);
newInput.xmin = coords[0];
@@ -256,10 +226,8 @@ bool ScreenLensDistortionOperation::determineDependingAreaOfInterest(rcti *input
UPDATE_INPUT;
determineUV(coords, input->xmax, input->ymin);
UPDATE_INPUT;
- margin = (ABS(this->m_distortion)+this->m_dispersion)*MARGIN;
}
- else
- {
+ else {
determineUV(coords, input->xmin, input->ymin, 1.0f, 1.0f);
newInput.xmin = coords[0];
newInput.ymin = coords[1];
@@ -283,7 +251,6 @@ bool ScreenLensDistortionOperation::determineDependingAreaOfInterest(rcti *input
UPDATE_INPUT;
determineUV(coords, input->xmax, input->ymin, 1.0f, 1.0f);
UPDATE_INPUT;
- margin=MARGIN;
}
#undef UPDATE_INPUT
@@ -293,7 +260,7 @@ bool ScreenLensDistortionOperation::determineDependingAreaOfInterest(rcti *input
newInput.ymax += margin;
operation = getInputOperation(0);
- if (operation->determineDependingAreaOfInterest(&newInput, readOperation, output) ) {
+ if (operation->determineDependingAreaOfInterest(&newInput, readOperation, output)) {
return true;
}
return false;
@@ -301,31 +268,32 @@ bool ScreenLensDistortionOperation::determineDependingAreaOfInterest(rcti *input
void ScreenLensDistortionOperation::updateVariables(float distortion, float dispersion)
{
- this->m_kg = MAX2(MIN2(distortion, 1.f), -0.999f);
+ this->m_kg = maxf(minf(distortion, 1.0f), -0.999f);
// smaller dispersion range for somewhat more control
- const float d = 0.25f * MAX2(MIN2(dispersion, 1.f), 0.f);
- this->m_kr = MAX2(MIN2((this->m_kg + d), 1.0f), -0.999f);
- this->m_kb = MAX2(MIN2((this->m_kg - d), 1.0f), -0.999f);
+ const float d = 0.25f * maxf(minf(dispersion, 1.0f), 0.0f);
+ this->m_kr = maxf(minf((this->m_kg + d), 1.0f), -0.999f);
+ this->m_kb = maxf(minf((this->m_kg - d), 1.0f), -0.999f);
this->m_maxk = MAX3(this->m_kr, this->m_kg, this->m_kb);
- this->m_sc = (this->m_data->fit && (this->m_maxk > 0.f)) ? (1.f / (1.f + 2.f * this->m_maxk)) : (1.f / (1.f + this->m_maxk));
- this->m_drg = 4.f * (this->m_kg - this->m_kr);
- this->m_dgb = 4.f * (this->m_kb - this->m_kg);
+ this->m_sc = (this->m_data->fit && (this->m_maxk > 0.0f)) ? (1.0f / (1.0f + 2.0f * this->m_maxk)) :
+ (1.0f / (1.0f + this->m_maxk));
+ this->m_drg = 4.0f * (this->m_kg - this->m_kr);
+ this->m_dgb = 4.0f * (this->m_kb - this->m_kg);
this->m_kr4 = this->m_kr * 4.0f;
this->m_kg4 = this->m_kg * 4.0f;
- this->m_kb4 = this->m_kb * 4.0f;
+ this->m_kb4 = this->m_kb * 4.0f;
}
-void ScreenLensDistortionOperation::updateDispersionAndDistortion(MemoryBuffer **inputBuffers)
+void ScreenLensDistortionOperation::updateDispersionAndDistortion()
{
if (this->m_valuesAvailable) return;
this->lockMutex();
if (!this->m_valuesAvailable) {
float result[4];
- this->getInputSocketReader(1)->read(result, 0, 0, COM_PS_NEAREST, inputBuffers);
+ this->getInputSocketReader(1)->read(result, 0, 0, COM_PS_NEAREST);
this->m_distortion = result[0];
- this->getInputSocketReader(2)->read(result, 0, 0, COM_PS_NEAREST, inputBuffers);
+ this->getInputSocketReader(2)->read(result, 0, 0, COM_PS_NEAREST);
this->m_dispersion = result[0];
updateVariables(this->m_distortion, this->m_dispersion);
this->m_valuesAvailable = true;
diff --git a/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.h b/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.h
index f80b938818c..2e2105c764d 100644
--- a/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.h
+++ b/source/blender/compositor/operations/COM_ScreenLensDistortionOperation.h
@@ -49,14 +49,14 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
*/
void initExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
/**
* Deinitialize the execution
*/
@@ -79,9 +79,9 @@ public:
}
private:
- void determineUV(float result[4], float x, float y) const;
- void determineUV(float result[4], float x, float y, float distortion, float dispersion);
- void updateDispersionAndDistortion(MemoryBuffer **inputBuffers);
+ void determineUV(float result[6], float x, float y) const;
+ void determineUV(float result[6], float x, float y, float distortion, float dispersion);
+ void updateDispersionAndDistortion();
void updateVariables(float distortion, float dispersion);
};
diff --git a/source/blender/compositor/operations/COM_SeparateChannelOperation.cpp b/source/blender/compositor/operations/COM_SeparateChannelOperation.cpp
index 6ae4fc4cfe5..9fc266cce86 100644
--- a/source/blender/compositor/operations/COM_SeparateChannelOperation.cpp
+++ b/source/blender/compositor/operations/COM_SeparateChannelOperation.cpp
@@ -39,9 +39,9 @@ void SeparateChannelOperation::deinitExecution()
}
-void SeparateChannelOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void SeparateChannelOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float input[4];
- this->m_inputOperation->read(input, x, y, sampler, inputBuffers);
- color[0] = input[this->m_channel];
+ this->m_inputOperation->read(input, x, y, sampler);
+ output[0] = input[this->m_channel];
}
diff --git a/source/blender/compositor/operations/COM_SeparateChannelOperation.h b/source/blender/compositor/operations/COM_SeparateChannelOperation.h
index 65a54f91252..f964df5df02 100644
--- a/source/blender/compositor/operations/COM_SeparateChannelOperation.h
+++ b/source/blender/compositor/operations/COM_SeparateChannelOperation.h
@@ -31,7 +31,7 @@ private:
int m_channel;
public:
SeparateChannelOperation();
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_SetAlphaOperation.cpp b/source/blender/compositor/operations/COM_SetAlphaOperation.cpp
index d383fb638ae..fc6cfa455f3 100644
--- a/source/blender/compositor/operations/COM_SetAlphaOperation.cpp
+++ b/source/blender/compositor/operations/COM_SetAlphaOperation.cpp
@@ -38,14 +38,14 @@ void SetAlphaOperation::initExecution()
this->m_inputAlpha = getInputSocketReader(1);
}
-void SetAlphaOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void SetAlphaOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float alphaInput[4];
- this->m_inputColor->read(outputValue, x, y, sampler, inputBuffers);
- this->m_inputAlpha->read(alphaInput, x, y, sampler, inputBuffers);
+ this->m_inputColor->read(output, x, y, sampler);
+ this->m_inputAlpha->read(alphaInput, x, y, sampler);
- outputValue[3] = alphaInput[0];
+ output[3] = alphaInput[0];
}
void SetAlphaOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_SetAlphaOperation.h b/source/blender/compositor/operations/COM_SetAlphaOperation.h
index 21968c930e7..1ec4a7aeacf 100644
--- a/source/blender/compositor/operations/COM_SetAlphaOperation.h
+++ b/source/blender/compositor/operations/COM_SetAlphaOperation.h
@@ -43,7 +43,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_SetColorOperation.cpp b/source/blender/compositor/operations/COM_SetColorOperation.cpp
index 55a6a3800ca..44c29b3befd 100644
--- a/source/blender/compositor/operations/COM_SetColorOperation.cpp
+++ b/source/blender/compositor/operations/COM_SetColorOperation.cpp
@@ -27,15 +27,12 @@ SetColorOperation::SetColorOperation() : NodeOperation()
this->addOutputSocket(COM_DT_COLOR);
}
-void SetColorOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void SetColorOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
- outputValue[0] = this->m_channel1;
- outputValue[1] = this->m_channel2;
- outputValue[2] = this->m_channel3;
- outputValue[3] = this->m_channel4;
+ copy_v4_v4(output, this->m_color);
}
-void SetColorOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void SetColorOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
resolution[0] = preferredResolution[0];
resolution[1] = preferredResolution[1];
diff --git a/source/blender/compositor/operations/COM_SetColorOperation.h b/source/blender/compositor/operations/COM_SetColorOperation.h
index a51311837ee..7895c34620b 100644
--- a/source/blender/compositor/operations/COM_SetColorOperation.h
+++ b/source/blender/compositor/operations/COM_SetColorOperation.h
@@ -31,10 +31,7 @@
*/
class SetColorOperation : public NodeOperation {
private:
- float m_channel1;
- float m_channel2;
- float m_channel3;
- float m_channel4;
+ float m_color[4];
public:
/**
@@ -42,28 +39,25 @@ public:
*/
SetColorOperation();
- const float getChannel1() { return this->m_channel1; }
- void setChannel1(float value) { this->m_channel1 = value; }
- const float getChannel2() { return this->m_channel2; }
- void setChannel2(float value) { this->m_channel2 = value; }
- const float getChannel3() { return this->m_channel3; }
- void setChannel3(float value) { this->m_channel3 = value; }
- const float getChannel4() { return this->m_channel4; }
- void setChannel4(float value) { this->m_channel4 = value; }
- void setChannels(float value[4])
+ const float getChannel1() { return this->m_color[0]; }
+ void setChannel1(float value) { this->m_color[0] = value; }
+ const float getChannel2() { return this->m_color[1]; }
+ void setChannel2(float value) { this->m_color[1] = value; }
+ const float getChannel3() { return this->m_color[2]; }
+ void setChannel3(float value) { this->m_color[2] = value; }
+ const float getChannel4() { return this->m_color[3]; }
+ void setChannel4(const float value) { this->m_color[3] = value; }
+ void setChannels(const float value[4])
{
- this->m_channel1 = value[0];
- this->m_channel2 = value[1];
- this->m_channel3 = value[2];
- this->m_channel4 = value[3];
+ copy_v4_v4(this->m_color, value);
}
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
const bool isSetOperation() const { return true; }
};
diff --git a/source/blender/compositor/operations/COM_SetSamplerOperation.cpp b/source/blender/compositor/operations/COM_SetSamplerOperation.cpp
index c235bd81e58..343b5973f7e 100644
--- a/source/blender/compositor/operations/COM_SetSamplerOperation.cpp
+++ b/source/blender/compositor/operations/COM_SetSamplerOperation.cpp
@@ -37,7 +37,7 @@ void SetSamplerOperation::deinitExecution()
this->m_reader = NULL;
}
-void SetSamplerOperation::executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void SetSamplerOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
- this->m_reader->read(output, x, y, this->m_sampler, inputBuffers);
+ this->m_reader->read(output, x, y, this->m_sampler);
}
diff --git a/source/blender/compositor/operations/COM_SetSamplerOperation.h b/source/blender/compositor/operations/COM_SetSamplerOperation.h
index 273eac159bc..c94e174fc81 100644
--- a/source/blender/compositor/operations/COM_SetSamplerOperation.h
+++ b/source/blender/compositor/operations/COM_SetSamplerOperation.h
@@ -44,7 +44,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
};
diff --git a/source/blender/compositor/operations/COM_SetValueOperation.cpp b/source/blender/compositor/operations/COM_SetValueOperation.cpp
index 98a21112c5b..c5ce3e4c09c 100644
--- a/source/blender/compositor/operations/COM_SetValueOperation.cpp
+++ b/source/blender/compositor/operations/COM_SetValueOperation.cpp
@@ -27,12 +27,12 @@ SetValueOperation::SetValueOperation() : NodeOperation()
this->addOutputSocket(COM_DT_VALUE);
}
-void SetValueOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void SetValueOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
- outputValue[0] = this->m_value;
+ output[0] = this->m_value;
}
-void SetValueOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void SetValueOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
resolution[0] = preferredResolution[0];
resolution[1] = preferredResolution[1];
diff --git a/source/blender/compositor/operations/COM_SetValueOperation.h b/source/blender/compositor/operations/COM_SetValueOperation.h
index 642940e03cd..3ddc667bc7e 100644
--- a/source/blender/compositor/operations/COM_SetValueOperation.h
+++ b/source/blender/compositor/operations/COM_SetValueOperation.h
@@ -46,8 +46,8 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
const bool isSetOperation() const { return true; }
};
diff --git a/source/blender/compositor/operations/COM_SetVectorOperation.cpp b/source/blender/compositor/operations/COM_SetVectorOperation.cpp
index f37bc489e75..d5c665e81f5 100644
--- a/source/blender/compositor/operations/COM_SetVectorOperation.cpp
+++ b/source/blender/compositor/operations/COM_SetVectorOperation.cpp
@@ -28,15 +28,15 @@ SetVectorOperation::SetVectorOperation() : NodeOperation()
this->addOutputSocket(COM_DT_VECTOR);
}
-void SetVectorOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void SetVectorOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
- outputValue[0] = this->m_x;
- outputValue[1] = this->m_y;
- outputValue[2] = this->m_z;
- outputValue[3] = this->m_w;
+ output[0] = this->m_x;
+ output[1] = this->m_y;
+ output[2] = this->m_z;
+ output[3] = this->m_w;
}
-void SetVectorOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void SetVectorOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
resolution[0] = preferredResolution[0];
resolution[1] = preferredResolution[1];
diff --git a/source/blender/compositor/operations/COM_SetVectorOperation.h b/source/blender/compositor/operations/COM_SetVectorOperation.h
index d1b9fe25085..e9d6a163e9f 100644
--- a/source/blender/compositor/operations/COM_SetVectorOperation.h
+++ b/source/blender/compositor/operations/COM_SetVectorOperation.h
@@ -54,9 +54,9 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
const bool isSetOperation() const { return true; }
void setVector(float vector[3]) {
diff --git a/source/blender/compositor/operations/COM_SocketProxyOperation.cpp b/source/blender/compositor/operations/COM_SocketProxyOperation.cpp
index 8b39406fd83..ac2cee8eb44 100644
--- a/source/blender/compositor/operations/COM_SocketProxyOperation.cpp
+++ b/source/blender/compositor/operations/COM_SocketProxyOperation.cpp
@@ -39,9 +39,9 @@ void SocketProxyOperation::deinitExecution()
this->m_inputOperation = NULL;
}
-void SocketProxyOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void SocketProxyOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
if (this->m_inputOperation) {
- this->m_inputOperation->read(color, x, y, sampler, inputBuffers);
+ this->m_inputOperation->read(output, x, y, sampler);
}
}
diff --git a/source/blender/compositor/operations/COM_SocketProxyOperation.h b/source/blender/compositor/operations/COM_SocketProxyOperation.h
index a4177efbd8e..a37384455ca 100644
--- a/source/blender/compositor/operations/COM_SocketProxyOperation.h
+++ b/source/blender/compositor/operations/COM_SocketProxyOperation.h
@@ -30,7 +30,7 @@ private:
SocketReader *m_inputOperation;
public:
SocketProxyOperation(DataType type);
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
diff --git a/source/blender/compositor/operations/COM_SplitViewerOperation.cpp b/source/blender/compositor/operations/COM_SplitViewerOperation.cpp
index 00f854b2ba9..7325e32a863 100644
--- a/source/blender/compositor/operations/COM_SplitViewerOperation.cpp
+++ b/source/blender/compositor/operations/COM_SplitViewerOperation.cpp
@@ -23,7 +23,6 @@
#include "COM_SplitViewerOperation.h"
#include "COM_SocketConnection.h"
#include "BLI_listbase.h"
-#include "DNA_scene_types.h"
#include "BKE_image.h"
#include "BLI_utildefines.h"
#include "BLI_math_color.h"
@@ -60,10 +59,9 @@ void SplitViewerOperation::deinitExecution()
}
-void SplitViewerOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers)
+void SplitViewerOperation::executeRegion(rcti *rect, unsigned int tileNumber)
{
float *buffer = this->m_outputBuffer;
- unsigned char *bufferDisplay = this->m_outputBufferDisplay;
if (!buffer) return;
int x1 = rect->xmin;
@@ -77,29 +75,14 @@ void SplitViewerOperation::executeRegion(rcti *rect, unsigned int tileNumber, Me
for (y = y1; y < y2; y++) {
for (x = x1; x < x2; x++) {
bool image1;
- float srgb[4];
image1 = this->m_xSplit ? x > perc : y > perc;
if (image1) {
- this->m_image1Input->read(&(buffer[offset]), x, y, COM_PS_NEAREST, memoryBuffers);
+ this->m_image1Input->read(&(buffer[offset]), x, y, COM_PS_NEAREST);
}
else {
- this->m_image2Input->read(&(buffer[offset]), x, y, COM_PS_NEAREST, memoryBuffers);
+ this->m_image2Input->read(&(buffer[offset]), x, y, COM_PS_NEAREST);
}
- /// @todo: linear conversion only when scene color management is selected, also check predivide.
- if (this->m_doColorManagement) {
- if (this->m_doColorPredivide) {
- linearrgb_to_srgb_predivide_v4(srgb, buffer + offset);
- }
- else {
- linearrgb_to_srgb_v4(srgb, buffer + offset);
- }
- }
- else {
- copy_v4_v4(srgb, buffer + offset);
- }
-
- rgba_float_to_uchar(bufferDisplay + offset, srgb);
-
+
offset += 4;
}
offset += (this->getWidth() - (x2 - x1)) * 4;
diff --git a/source/blender/compositor/operations/COM_SplitViewerOperation.h b/source/blender/compositor/operations/COM_SplitViewerOperation.h
index 92275606105..c759e14e1dd 100644
--- a/source/blender/compositor/operations/COM_SplitViewerOperation.h
+++ b/source/blender/compositor/operations/COM_SplitViewerOperation.h
@@ -35,7 +35,7 @@ private:
bool m_xSplit;
public:
SplitViewerOperation();
- void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers);
+ void executeRegion(rcti *rect, unsigned int tileNumber);
void initExecution();
void deinitExecution();
void setSplitPercentage(float splitPercentage) { this->m_splitPercentage = splitPercentage; }
diff --git a/source/blender/compositor/operations/COM_TextureOperation.cpp b/source/blender/compositor/operations/COM_TextureOperation.cpp
index 6098cfc3e5c..f8d6c0cfc01 100644
--- a/source/blender/compositor/operations/COM_TextureOperation.cpp
+++ b/source/blender/compositor/operations/COM_TextureOperation.cpp
@@ -23,7 +23,6 @@
#include "COM_TextureOperation.h"
#include "BLI_listbase.h"
-#include "DNA_scene_types.h"
TextureBaseOperation::TextureBaseOperation() : NodeOperation()
{
@@ -54,7 +53,7 @@ void TextureBaseOperation::deinitExecution()
this->m_inputOffset = NULL;
}
-void TextureBaseOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void TextureBaseOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
if (preferredResolution[0] == 0 || preferredResolution[1] == 0) {
int width = this->m_rd->xsch * this->m_rd->size / 100;
@@ -68,16 +67,16 @@ void TextureBaseOperation::determineResolution(unsigned int resolution[], unsign
}
}
-void TextureAlphaOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void TextureAlphaOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
- TextureBaseOperation::executePixel(color, x, y, sampler, inputBuffers);
- color[0] = color[3];
- color[1] = 0.0f;
- color[2] = 0.0f;
- color[3] = 0.0f;
+ TextureBaseOperation::executePixel(output, x, y, sampler);
+ output[0] = output[3];
+ output[1] = 0.0f;
+ output[2] = 0.0f;
+ output[3] = 0.0f;
}
-void TextureBaseOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void TextureBaseOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
TexResult texres = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, NULL};
float textureSize[4];
@@ -89,8 +88,8 @@ void TextureBaseOperation::executePixel(float *color, float x, float y, PixelSam
const float u = (cx - x) / this->getWidth() * 2;
const float v = (cy - y) / this->getHeight() * 2;
- this->m_inputSize->read(textureSize, x, y, sampler, inputBuffers);
- this->m_inputOffset->read(textureOffset, x, y, sampler, inputBuffers);
+ this->m_inputSize->read(textureSize, x, y, sampler);
+ this->m_inputOffset->read(textureOffset, x, y, sampler);
vec[0] = textureSize[0] * (u + textureOffset[0]);
vec[1] = textureSize[1] * (v + textureOffset[1]);
@@ -99,14 +98,16 @@ void TextureBaseOperation::executePixel(float *color, float x, float y, PixelSam
retval = multitex_ext(this->m_texture, vec, NULL, NULL, 0, &texres);
if (texres.talpha)
- color[3] = texres.ta;
+ output[3] = texres.ta;
else
- color[3] = texres.tin;
+ output[3] = texres.tin;
if ((retval & TEX_RGB)) {
- color[0] = texres.tr;
- color[1] = texres.tg;
- color[2] = texres.tb;
+ output[0] = texres.tr;
+ output[1] = texres.tg;
+ output[2] = texres.tb;
+ }
+ else {
+ output[0] = output[1] = output[2] = output[3];
}
- else color[0] = color[1] = color[2] = color[3];
}
diff --git a/source/blender/compositor/operations/COM_TextureOperation.h b/source/blender/compositor/operations/COM_TextureOperation.h
index d42da697b08..f8435ecdaa2 100644
--- a/source/blender/compositor/operations/COM_TextureOperation.h
+++ b/source/blender/compositor/operations/COM_TextureOperation.h
@@ -25,7 +25,6 @@
#define _COM_TextureOperation_h
#include "COM_NodeOperation.h"
-#include "DNA_scene_types.h"
#include "DNA_texture_types.h"
#include "BLI_listbase.h"
extern "C" {
@@ -52,7 +51,7 @@ protected:
/**
* Determine the output resolution. The resolution is retrieved from the Renderer
*/
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
/**
* Constructor
@@ -60,7 +59,7 @@ protected:
TextureBaseOperation();
public:
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void setTexture(Tex *texture) { this->m_texture = texture; }
void initExecution();
@@ -76,7 +75,7 @@ public:
class TextureAlphaOperation : public TextureBaseOperation {
public:
TextureAlphaOperation();
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
diff --git a/source/blender/compositor/operations/COM_TonemapOperation.cpp b/source/blender/compositor/operations/COM_TonemapOperation.cpp
index b5daf85b390..2d944b70f75 100644
--- a/source/blender/compositor/operations/COM_TonemapOperation.cpp
+++ b/source/blender/compositor/operations/COM_TonemapOperation.cpp
@@ -41,12 +41,11 @@ void TonemapOperation::initExecution()
NodeOperation::initMutex();
}
-void TonemapOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void TonemapOperation::executePixel(float output[4], int x, int y, void *data)
{
AvgLogLum *avg = (AvgLogLum *)data;
- float output[4];
- this->m_imageReader->read(output, x, y, inputBuffers, NULL);
+ this->m_imageReader->read(output, x, y, NULL);
mul_v3_fl(output, avg->al);
float dr = output[0] + this->m_data->offset;
float dg = output[1] + this->m_data->offset;
@@ -56,14 +55,12 @@ void TonemapOperation::executePixel(float *color, int x, int y, MemoryBuffer *in
output[2] /= ((db == 0.f) ? 1.0f : db);
const float igm = avg->igm;
if (igm != 0.0f) {
- output[0] = powf(MAX2(output[0], 0.0f), igm);
- output[1] = powf(MAX2(output[1], 0.0f), igm);
- output[2] = powf(MAX2(output[2], 0.0f), igm);
+ output[0] = powf(max(output[0], 0.0f), igm);
+ output[1] = powf(max(output[1], 0.0f), igm);
+ output[2] = powf(max(output[2], 0.0f), igm);
}
-
- copy_v4_v4(color, output);
}
-void PhotoreceptorTonemapOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void PhotoreceptorTonemapOperation::executePixel(float output[4], int x, int y, void *data)
{
AvgLogLum *avg = (AvgLogLum *)data;
NodeTonemap *ntm = this->m_data;
@@ -72,8 +69,7 @@ void PhotoreceptorTonemapOperation::executePixel(float *color, int x, int y, Mem
const float m = (ntm->m > 0.0f) ? ntm->m : (0.3f + 0.7f * powf(avg->auto_key, 1.4f));
const float ic = 1.0f - ntm->c, ia = 1.0f - ntm->a;
- float output[4];
- this->m_imageReader->read(output, x, y, inputBuffers, NULL);
+ this->m_imageReader->read(output, x, y, NULL);
const float L = rgb_to_luma_y(output);
float I_l = output[0] + ic * (L - output[0]);
@@ -88,8 +84,6 @@ void PhotoreceptorTonemapOperation::executePixel(float *color, int x, int y, Mem
I_g = avg->cav[2] + ic * (avg->lav - avg->cav[2]);
I_a = I_l + ia * (I_g - I_l);
output[2] /= (output[2] + powf(f * I_a, m));
-
- copy_v4_v4(color, output);
}
void TonemapOperation::deinitExecution()
@@ -116,11 +110,11 @@ bool TonemapOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferO
return false;
}
-void *TonemapOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *TonemapOperation::initializeTileData(rcti *rect)
{
lockMutex();
if (this->m_cachedInstance == NULL) {
- MemoryBuffer *tile = (MemoryBuffer *)this->m_imageReader->initializeTileData(rect, memoryBuffers);
+ MemoryBuffer *tile = (MemoryBuffer *)this->m_imageReader->initializeTileData(rect);
AvgLogLum *data = new AvgLogLum();
float *buffer = tile->getBuffer();
@@ -154,7 +148,7 @@ void *TonemapOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuff
return this->m_cachedInstance;
}
-void TonemapOperation::deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data)
+void TonemapOperation::deinitializeTileData(rcti *rect, void *data)
{
/* pass */
}
diff --git a/source/blender/compositor/operations/COM_TonemapOperation.h b/source/blender/compositor/operations/COM_TonemapOperation.h
index ed9018d0a09..843bf89dc92 100644
--- a/source/blender/compositor/operations/COM_TonemapOperation.h
+++ b/source/blender/compositor/operations/COM_TonemapOperation.h
@@ -64,15 +64,15 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
*/
void initExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
- void deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data);
+ void *initializeTileData(rcti *rect);
+ void deinitializeTileData(rcti *rect, void *data);
/**
* Deinitialize the execution
@@ -97,7 +97,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
};
#endif
diff --git a/source/blender/compositor/operations/COM_TrackPositionOperation.cpp b/source/blender/compositor/operations/COM_TrackPositionOperation.cpp
new file mode 100644
index 00000000000..d41d1c128da
--- /dev/null
+++ b/source/blender/compositor/operations/COM_TrackPositionOperation.cpp
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ * Sergey Sharybin
+ */
+
+#include "COM_TrackPositionOperation.h"
+
+#include "MEM_guardedalloc.h"
+
+#include "BLI_listbase.h"
+#include "BLI_math.h"
+#include "BLI_math_color.h"
+
+extern "C" {
+ #include "BKE_movieclip.h"
+ #include "BKE_tracking.h"
+}
+
+TrackPositionOperation::TrackPositionOperation() : NodeOperation()
+{
+ this->addOutputSocket(COM_DT_VALUE);
+ this->m_movieClip = NULL;
+ this->m_framenumber = 0;
+ this->m_trackingObjectName[0] = 0;
+ this->m_trackName[0] = 0;
+ this->m_axis = 0;
+ this->m_position = POSITION_ABSOLUTE;;
+ this->m_relativeFrame = 0;
+}
+
+void TrackPositionOperation::initExecution()
+{
+ MovieTracking *tracking = NULL;
+ MovieClipUser user = {0};
+ MovieTrackingObject *object;
+
+ zero_v2(this->m_markerPos);
+ zero_v2(this->m_relativePos);
+
+ if (!this->m_movieClip)
+ return;
+
+ tracking = &this->m_movieClip->tracking;
+
+ BKE_movieclip_user_set_frame(&user, this->m_framenumber);
+ BKE_movieclip_get_size(this->m_movieClip, &user, &this->m_width, &this->m_height);
+
+ object = BKE_tracking_object_get_named(tracking, this->m_trackingObjectName);
+ if (object) {
+ MovieTrackingTrack *track;
+
+ track = BKE_tracking_track_get_named(tracking, object, this->m_trackName);
+
+ if (track) {
+ MovieTrackingMarker *marker;
+ int clip_framenr = BKE_movieclip_remap_scene_to_clip_frame(this->m_movieClip, this->m_framenumber);
+
+ marker = BKE_tracking_marker_get(track, clip_framenr);
+
+ copy_v2_v2(this->m_markerPos, marker->pos);
+
+ if (this->m_position == POSITION_RELATIVE_START) {
+ int i;
+
+ for (i = 0; i < track->markersnr; i++) {
+ marker = &track->markers[i];
+
+ if ((marker->flag & MARKER_DISABLED) == 0) {
+ copy_v2_v2(this->m_relativePos, marker->pos);
+
+ break;
+ }
+ }
+ }
+ else if (this->m_position == POSITION_RELATIVE_FRAME) {
+ int relative_clip_framenr = BKE_movieclip_remap_scene_to_clip_frame(this->m_movieClip,
+ this->m_relativeFrame);
+
+ marker = BKE_tracking_marker_get(track, relative_clip_framenr);
+ copy_v2_v2(this->m_relativePos, marker->pos);
+ }
+ }
+ }
+}
+
+void TrackPositionOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
+{
+ output[0] = this->m_markerPos[this->m_axis] - this->m_relativePos[this->m_axis];
+
+ if (this->m_axis == 0)
+ output[0] *= this->m_width;
+ else
+ output[0] *= this->m_height;
+}
+
+void TrackPositionOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
+{
+ resolution[0] = preferredResolution[0];
+ resolution[1] = preferredResolution[1];
+}
diff --git a/source/blender/compositor/operations/COM_TrackPositionOperation.h b/source/blender/compositor/operations/COM_TrackPositionOperation.h
new file mode 100644
index 00000000000..b934719a92b
--- /dev/null
+++ b/source/blender/compositor/operations/COM_TrackPositionOperation.h
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2012, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Jeroen Bakker
+ * Monique Dewanchand
+ * Sergey Sharybin
+ */
+
+
+#ifndef _COM_TrackPositionOperation_h
+#define _COM_TrackPositionOperation_h
+
+#include <string.h>
+
+#include "COM_NodeOperation.h"
+
+#include "DNA_movieclip_types.h"
+#include "DNA_tracking_types.h"
+
+#include "BLI_listbase.h"
+
+/**
+ * Class with implementation of green screen gradient rasterization
+ */
+class TrackPositionOperation : public NodeOperation {
+protected:
+ enum {
+ POSITION_ABSOLUTE = 0,
+ POSITION_RELATIVE_START,
+ POSITION_RELATIVE_FRAME
+ };
+
+ MovieClip *m_movieClip;
+ int m_framenumber;
+ char m_trackingObjectName[64];
+ char m_trackName[64];
+ int m_axis;
+ int m_position;
+ int m_relativeFrame;
+
+ int m_width, m_height;
+ float m_markerPos[2];
+ float m_relativePos[2];
+
+ /**
+ * Determine the output resolution. The resolution is retrieved from the Renderer
+ */
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
+
+public:
+ TrackPositionOperation();
+
+ void setMovieClip(MovieClip *clip) {this->m_movieClip = clip;}
+ void setTrackingObject(char *object) {strncpy(this->m_trackingObjectName, object, sizeof(this->m_trackingObjectName));}
+ void setTrackName(char *track) {strncpy(this->m_trackName, track, sizeof(this->m_trackName));}
+ void setFramenumber(int framenumber) {this->m_framenumber = framenumber;}
+ void setAxis(int value) {this->m_axis = value;}
+ void setPosition(int value) {this->m_position = value;}
+ void setRelativeFrame(int value) {this->m_relativeFrame = value;}
+
+ void initExecution();
+
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
+
+ const bool isSetOperation() const { return true; }
+};
+
+#endif
diff --git a/source/blender/compositor/operations/COM_TranslateOperation.cpp b/source/blender/compositor/operations/COM_TranslateOperation.cpp
index e43a8e55130..761f55a1455 100644
--- a/source/blender/compositor/operations/COM_TranslateOperation.cpp
+++ b/source/blender/compositor/operations/COM_TranslateOperation.cpp
@@ -50,10 +50,10 @@ void TranslateOperation::deinitExecution()
}
-void TranslateOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void TranslateOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
ensureDelta();
- this->m_inputOperation->read(color, x - this->getDeltaX(), y - this->getDeltaY(), sampler, inputBuffers);
+ this->m_inputOperation->read(output, x - this->getDeltaX(), y - this->getDeltaY(), sampler);
}
bool TranslateOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
diff --git a/source/blender/compositor/operations/COM_TranslateOperation.h b/source/blender/compositor/operations/COM_TranslateOperation.h
index 8af4ffe8967..faaadb1ced2 100644
--- a/source/blender/compositor/operations/COM_TranslateOperation.h
+++ b/source/blender/compositor/operations/COM_TranslateOperation.h
@@ -36,7 +36,7 @@ private:
public:
TranslateOperation();
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
void initExecution();
void deinitExecution();
@@ -47,9 +47,9 @@ public:
inline void ensureDelta() {
if (!this->m_isDeltaSet) {
float tempDelta[4];
- this->m_inputXOperation->read(tempDelta, 0, 0, COM_PS_NEAREST, NULL);
+ this->m_inputXOperation->read(tempDelta, 0, 0, COM_PS_NEAREST);
this->m_deltaX = tempDelta[0];
- this->m_inputYOperation->read(tempDelta, 0, 0, COM_PS_NEAREST, NULL);
+ this->m_inputYOperation->read(tempDelta, 0, 0, COM_PS_NEAREST);
this->m_deltaY = tempDelta[0];
this->m_isDeltaSet = true;
}
diff --git a/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp b/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp
index 46101f6355d..7ccc91072bc 100644
--- a/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.cpp
@@ -22,6 +22,7 @@
#include "COM_VariableSizeBokehBlurOperation.h"
#include "BLI_math.h"
+#include "COM_OpenCLDevice.h"
extern "C" {
#include "RE_pipeline.h"
@@ -32,19 +33,19 @@ VariableSizeBokehBlurOperation::VariableSizeBokehBlurOperation() : NodeOperation
this->addInputSocket(COM_DT_COLOR);
this->addInputSocket(COM_DT_COLOR, COM_SC_NO_RESIZE); // do not resize the bokeh image.
this->addInputSocket(COM_DT_VALUE); // radius
- this->addInputSocket(COM_DT_VALUE); // depth
#ifdef COM_DEFOCUS_SEARCH
this->addInputSocket(COM_DT_COLOR, COM_SC_NO_RESIZE); // inverse search radius optimization structure.
#endif
this->addOutputSocket(COM_DT_COLOR);
this->setComplex(true);
+ this->setOpenCL(true);
this->m_inputProgram = NULL;
this->m_inputBokehProgram = NULL;
this->m_inputSizeProgram = NULL;
- this->m_inputDepthProgram = NULL;
this->m_maxBlur = 32.0f;
this->m_threshold = 1.0f;
+ this->m_do_size_scale = false;
#ifdef COM_DEFOCUS_SEARCH
this->m_inputSearchProgram = NULL;
#endif
@@ -56,84 +57,168 @@ void VariableSizeBokehBlurOperation::initExecution()
this->m_inputProgram = getInputSocketReader(0);
this->m_inputBokehProgram = getInputSocketReader(1);
this->m_inputSizeProgram = getInputSocketReader(2);
- this->m_inputDepthProgram = getInputSocketReader(3);
#ifdef COM_DEFOCUS_SEARCH
- this->m_inputSearchProgram = getInputSocketReader(4);
+ this->m_inputSearchProgram = getInputSocketReader(3);
#endif
QualityStepHelper::initExecution(COM_QH_INCREASE);
}
+struct VariableSizeBokehBlurTileData
+{
+ MemoryBuffer *color;
+ MemoryBuffer *bokeh;
+ MemoryBuffer *size;
+ int maxBlurScalar;
+};
+
+void *VariableSizeBokehBlurOperation::initializeTileData(rcti *rect)
+{
+ VariableSizeBokehBlurTileData *data = new VariableSizeBokehBlurTileData();
+ data->color = (MemoryBuffer *)this->m_inputProgram->initializeTileData(rect);
+ data->bokeh = (MemoryBuffer *)this->m_inputBokehProgram->initializeTileData(rect);
+ data->size = (MemoryBuffer *)this->m_inputSizeProgram->initializeTileData(rect);
+
+
+ rcti rect2;
+ this->determineDependingAreaOfInterest(rect, (ReadBufferOperation *)this->m_inputSizeProgram, &rect2);
-void VariableSizeBokehBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+ const float max_dim = max(m_width, m_height);
+ const float scalar = this->m_do_size_scale ? (max_dim / 100.0f) : 1.0f;
+
+ data->maxBlurScalar = (int)(data->size->getMaximumValue(&rect2) * scalar);
+ CLAMP(data->maxBlurScalar, 1.0f, this->m_maxBlur);
+ return data;
+}
+
+void VariableSizeBokehBlurOperation::deinitializeTileData(rcti *rect, void *data)
{
+ VariableSizeBokehBlurTileData *result = (VariableSizeBokehBlurTileData *)data;
+ delete result;
+}
+
+void VariableSizeBokehBlurOperation::executePixel(float output[4], int x, int y, void *data)
+{
+ VariableSizeBokehBlurTileData *tileData = (VariableSizeBokehBlurTileData *)data;
+ MemoryBuffer *inputProgramBuffer = tileData->color;
+ MemoryBuffer *inputBokehBuffer = tileData->bokeh;
+ MemoryBuffer *inputSizeBuffer = tileData->size;
+ float *inputSizeFloatBuffer = inputSizeBuffer->getBuffer();
+ float *inputProgramFloatBuffer = inputProgramBuffer->getBuffer();
float readColor[4];
float bokeh[4];
float tempSize[4];
- float tempDepth[4];
- float multiplier_accum[4] = {0.0f, 0.0f, 0.0f, 0.0f};
- float color_accum[4] = {0.0f, 0.0f, 0.0f, 0.0f};
+ float multiplier_accum[4];
+ float color_accum[4];
+
+ const float max_dim = max(m_width, m_height);
+ const float scalar = this->m_do_size_scale ? (max_dim / 100.0f) : 1.0f;
+ int maxBlurScalar = tileData->maxBlurScalar;
+
+ BLI_assert(inputBokehBuffer->getWidth() == COM_BLUR_BOKEH_PIXELS);
+ BLI_assert(inputBokehBuffer->getHeight() == COM_BLUR_BOKEH_PIXELS);
#ifdef COM_DEFOCUS_SEARCH
float search[4];
- this->inputSearchProgram->read(search, x/InverseSearchRadiusOperation::DIVIDER, y/InverseSearchRadiusOperation::DIVIDER, inputBuffers, NULL);
+ this->m_inputSearchProgram->read(search, x/InverseSearchRadiusOperation::DIVIDER, y / InverseSearchRadiusOperation::DIVIDER, NULL);
int minx = search[0];
int miny = search[1];
int maxx = search[2];
int maxy = search[3];
#else
- int minx = MAX2(x - this->m_maxBlur, 0.0f);
- int miny = MAX2(y - this->m_maxBlur, 0.0f);
- int maxx = MIN2(x + this->m_maxBlur, m_width);
- int maxy = MIN2(y + this->m_maxBlur, m_height);
+ int minx = max(x - maxBlurScalar, 0);
+ int miny = max(y - maxBlurScalar, 0);
+ int maxx = min(x + maxBlurScalar, (int)m_width);
+ int maxy = min(y + maxBlurScalar, (int)m_height);
#endif
{
- this->m_inputSizeProgram->read(tempSize, x, y, COM_PS_NEAREST, inputBuffers);
- this->m_inputDepthProgram->read(tempDepth, x, y, COM_PS_NEAREST, inputBuffers);
- this->m_inputProgram->read(readColor, x, y, COM_PS_NEAREST, inputBuffers);
- add_v4_v4(color_accum, readColor);
- add_v4_fl(multiplier_accum, 1.0f);
- float sizeCenter = tempSize[0];
- float centerDepth = tempDepth[0] + this->m_threshold;
+ inputSizeBuffer->readNoCheck(tempSize, x, y);
+ inputProgramBuffer->readNoCheck(readColor, x, y);
+
+ copy_v4_v4(color_accum, readColor);
+ copy_v4_fl(multiplier_accum, 1.0f);
+ float size_center = tempSize[0] * scalar;
- for (int ny = miny; ny < maxy; ny += QualityStepHelper::getStep()) {
- for (int nx = minx; nx < maxx; nx += QualityStepHelper::getStep()) {
- if (nx >= 0 && nx < this->getWidth() && ny >= 0 && ny < getHeight()) {
- this->m_inputDepthProgram->read(tempDepth, nx, ny, COM_PS_NEAREST, inputBuffers);
- if (tempDepth[0] < centerDepth) {
- this->m_inputSizeProgram->read(tempSize, nx, ny, COM_PS_NEAREST, inputBuffers);
- float size = tempSize[0];
- if ((sizeCenter > this->m_threshold && size > this->m_threshold) || size <= this->m_threshold) {
+ const int addXStep = QualityStepHelper::getStep() * COM_NUMBER_OF_CHANNELS;
+
+ if (size_center > this->m_threshold) {
+ for (int ny = miny; ny < maxy; ny += QualityStepHelper::getStep()) {
+ float dy = ny - y;
+ int offsetNy = ny * inputSizeBuffer->getWidth() * COM_NUMBER_OF_CHANNELS;
+ int offsetNxNy = offsetNy + (minx * COM_NUMBER_OF_CHANNELS);
+ for (int nx = minx; nx < maxx; nx += QualityStepHelper::getStep()) {
+ if (nx != x || ny != y) {
+ float size = inputSizeFloatBuffer[offsetNxNy] * scalar;
+ if (size > this->m_threshold) {
float dx = nx - x;
- float dy = ny - y;
- if (nx == x && ny == y) {
- }
- else if (size >= fabsf(dx) && size >= fabsf(dy)) {
- float u = 256 + dx * 256 / size;
- float v = 256 + dy * 256 / size;
- this->m_inputBokehProgram->read(bokeh, u, v, COM_PS_NEAREST, inputBuffers);
- this->m_inputProgram->read(readColor, nx, ny, COM_PS_NEAREST, inputBuffers);
- madd_v4_v4v4(color_accum, bokeh, readColor);
+ if (size > fabsf(dx) && size > fabsf(dy)) {
+ float uv[2] = {
+ (float)(COM_BLUR_BOKEH_PIXELS / 2) + (dx / size) * (float)((COM_BLUR_BOKEH_PIXELS / 2) - 1),
+ (float)(COM_BLUR_BOKEH_PIXELS / 2) + (dy / size) * (float)((COM_BLUR_BOKEH_PIXELS / 2) - 1)};
+ inputBokehBuffer->readNoCheck(bokeh, uv[0], uv[1]);
+ madd_v4_v4v4(color_accum, bokeh, &inputProgramFloatBuffer[offsetNxNy]);
add_v4_v4(multiplier_accum, bokeh);
}
}
}
+ offsetNxNy += addXStep;
}
}
}
- color[0] = color_accum[0] * (1.0f / multiplier_accum[0]);
- color[1] = color_accum[1] * (1.0f / multiplier_accum[1]);
- color[2] = color_accum[2] * (1.0f / multiplier_accum[2]);
- color[3] = color_accum[3] * (1.0f / multiplier_accum[3]);
+ output[0] = color_accum[0] / multiplier_accum[0];
+ output[1] = color_accum[1] / multiplier_accum[1];
+ output[2] = color_accum[2] / multiplier_accum[2];
+ output[3] = color_accum[3] / multiplier_accum[3];
+
+ /* blend in out values over the threshold, otherwise we get sharp, ugly transitions */
+ if ((size_center > this->m_threshold) &&
+ (size_center < this->m_threshold * 2.0f))
+ {
+ /* factor from 0-1 */
+ float fac = (size_center - this->m_threshold) / this->m_threshold;
+ interp_v4_v4v4(output, readColor, output, fac);
+ }
}
}
+void VariableSizeBokehBlurOperation::executeOpenCL(OpenCLDevice *device,
+ MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer,
+ MemoryBuffer **inputMemoryBuffers, list<cl_mem> *clMemToCleanUp,
+ list<cl_kernel> *clKernelsToCleanUp)
+{
+ cl_kernel defocusKernel = device->COM_clCreateKernel("defocusKernel", NULL);
+
+ cl_int step = this->getStep();
+ cl_int maxBlur;
+ cl_float threshold = this->m_threshold;
+
+ MemoryBuffer *sizeMemoryBuffer = (MemoryBuffer *)this->m_inputSizeProgram->getInputMemoryBuffer(inputMemoryBuffers);
+
+ const float max_dim = max(m_width, m_height);
+ cl_float scalar = this->m_do_size_scale ? (max_dim / 100.0f) : 1.0f;
+
+ maxBlur = (cl_int)sizeMemoryBuffer->getMaximumValue() * scalar;
+ maxBlur = MIN2(maxBlur, this->m_maxBlur);
+
+ device->COM_clAttachMemoryBufferToKernelParameter(defocusKernel, 0, -1, clMemToCleanUp, inputMemoryBuffers, this->m_inputProgram);
+ device->COM_clAttachMemoryBufferToKernelParameter(defocusKernel, 1, -1, clMemToCleanUp, inputMemoryBuffers, this->m_inputBokehProgram);
+ device->COM_clAttachMemoryBufferToKernelParameter(defocusKernel, 2, 4, clMemToCleanUp, inputMemoryBuffers, this->m_inputSizeProgram);
+ device->COM_clAttachOutputMemoryBufferToKernelParameter(defocusKernel, 3, clOutputBuffer);
+ device->COM_clAttachMemoryBufferOffsetToKernelParameter(defocusKernel, 5, outputMemoryBuffer);
+ clSetKernelArg(defocusKernel, 6, sizeof(cl_int), &step);
+ clSetKernelArg(defocusKernel, 7, sizeof(cl_int), &maxBlur);
+ clSetKernelArg(defocusKernel, 8, sizeof(cl_float), &threshold);
+ clSetKernelArg(defocusKernel, 9, sizeof(cl_float), &scalar);
+ device->COM_clAttachSizeToKernelParameter(defocusKernel, 10, this);
+
+ device->COM_clEnqueueRange(defocusKernel, outputMemoryBuffer, 11, this);
+}
+
void VariableSizeBokehBlurOperation::deinitExecution()
{
this->m_inputProgram = NULL;
this->m_inputBokehProgram = NULL;
this->m_inputSizeProgram = NULL;
- this->m_inputDepthProgram = NULL;
#ifdef COM_DEFOCUS_SEARCH
this->m_inputSearchProgram = NULL;
#endif
@@ -144,13 +229,17 @@ bool VariableSizeBokehBlurOperation::determineDependingAreaOfInterest(rcti *inpu
rcti newInput;
rcti bokehInput;
- newInput.xmax = input->xmax + this->m_maxBlur + 2;
- newInput.xmin = input->xmin - this->m_maxBlur + 2;
- newInput.ymax = input->ymax + this->m_maxBlur - 2;
- newInput.ymin = input->ymin - this->m_maxBlur - 2;
- bokehInput.xmax = 512;
+ const float max_dim = max(m_width, m_height);
+ const float scalar = this->m_do_size_scale ? (max_dim / 100.0f) : 1.0f;
+ int maxBlurScalar = this->m_maxBlur * scalar;
+
+ newInput.xmax = input->xmax + maxBlurScalar + 2;
+ newInput.xmin = input->xmin - maxBlurScalar + 2;
+ newInput.ymax = input->ymax + maxBlurScalar - 2;
+ newInput.ymin = input->ymin - maxBlurScalar - 2;
+ bokehInput.xmax = COM_BLUR_BOKEH_PIXELS;
bokehInput.xmin = 0;
- bokehInput.ymax = 512;
+ bokehInput.ymax = COM_BLUR_BOKEH_PIXELS;
bokehInput.ymin = 0;
@@ -162,17 +251,13 @@ bool VariableSizeBokehBlurOperation::determineDependingAreaOfInterest(rcti *inpu
if (operation->determineDependingAreaOfInterest(&bokehInput, readOperation, output) ) {
return true;
}
- operation = getInputOperation(3);
- if (operation->determineDependingAreaOfInterest(&newInput, readOperation, output) ) {
- return true;
- }
#ifdef COM_DEFOCUS_SEARCH
rcti searchInput;
- searchInput.xmax = (input->xmax/InverseSearchRadiusOperation::DIVIDER)+1;
- searchInput.xmin = (input->xmin/InverseSearchRadiusOperation::DIVIDER)-1;
- searchInput.ymax = (input->ymax/InverseSearchRadiusOperation::DIVIDER)+1;
- searchInput.ymin = (input->ymin/InverseSearchRadiusOperation::DIVIDER)-1;
- operation = getInputOperation(4);
+ searchInput.xmax = (input->xmax / InverseSearchRadiusOperation::DIVIDER) + 1;
+ searchInput.xmin = (input->xmin / InverseSearchRadiusOperation::DIVIDER) - 1;
+ searchInput.ymax = (input->ymax / InverseSearchRadiusOperation::DIVIDER) + 1;
+ searchInput.ymin = (input->ymin / InverseSearchRadiusOperation::DIVIDER) - 1;
+ operation = getInputOperation(3);
if (operation->determineDependingAreaOfInterest(&searchInput, readOperation, output) ) {
return true;
}
@@ -189,82 +274,90 @@ bool VariableSizeBokehBlurOperation::determineDependingAreaOfInterest(rcti *inpu
InverseSearchRadiusOperation::InverseSearchRadiusOperation() : NodeOperation()
{
this->addInputSocket(COM_DT_VALUE, COM_SC_NO_RESIZE); // radius
- this->addInputSocket(COM_DT_VALUE, COM_SC_NO_RESIZE); // depth
this->addOutputSocket(COM_DT_COLOR);
this->setComplex(true);
- this->inputRadius = NULL;
- this->inputDepth = NULL;
+ this->m_inputRadius = NULL;
}
void InverseSearchRadiusOperation::initExecution()
{
- this->inputRadius = this->getInputSocketReader(0);
- this->inputDepth = this->getInputSocketReader(1);
+ this->m_inputRadius = this->getInputSocketReader(0);
}
-void* InverseSearchRadiusOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+voi *InverseSearchRadiusOperation::initializeTileData(rcti *rect)
{
MemoryBuffer * data = new MemoryBuffer(NULL, rect);
+ float *buffer = data->getBuffer();
int x, y;
- float width = this->inputRadius->getWidth();
- float height = this->inputRadius->getHeight();
-
- for (x = rect->xmin; x < rect->xmax ; x++) {
- for (y = rect->ymin; y < rect->ymax ; y++) {
- float[4] temp;
+ int width = this->m_inputRadius->getWidth();
+ int height = this->m_inputRadius->getHeight();
+ float temp[4];
+ int offset = 0;
+ for (y = rect->ymin; y < rect->ymax ; y++) {
+ for (x = rect->xmin; x < rect->xmax ; x++) {
int rx = x * DIVIDER;
int ry = y * DIVIDER;
- this->inputRadius->read(temp, rx, ry, memoryBuffers, NULL);
- float centerRadius = temp[0];
- this->inputDepth->read(temp, rx, ry, memoryBuffers, NULL);
- float centerDepth = temp[0];
- t[0] = MAX2(rx - this->maxBlur, 0.0f);
- t[1] = MAX2(ry - this->maxBlur, 0.0f);
- t[2] = MIN2(rx + this->maxBlur, width);
- t[3] = MIN2(ry + this->maxBlur, height);
- int minx = t[0];
- int miny = t[1];
- int maxx = t[2];
- int maxy = t[3];
- int sminx = rx;
- int smaxx = rx;
- int sminy = ry;
- int smaxy = ry;
- for (int nx = minx ; nx < maxx ; nx ++) {
- for (int ny = miny ; ny < maxy ; ny ++) {
- this->inputRadius->read(temp, nx, ny, memoryBuffers, NULL);
- if (nx < rx && temp[0])
-
- }
- }
- float t[4];
- data->writePixel(x, y, t);
+ buffer[offset] = MAX2(rx - m_maxBlur, 0);
+ buffer[offset+1] = MAX2(ry- m_maxBlur, 0);
+ buffer[offset+2] = MIN2(rx+DIVIDER + m_maxBlur, width);
+ buffer[offset+3] = MIN2(ry+DIVIDER + m_maxBlur, height);
+ offset += 4;
}
}
+// for (x = rect->xmin; x < rect->xmax ; x++) {
+// for (y = rect->ymin; y < rect->ymax ; y++) {
+// int rx = x * DIVIDER;
+// int ry = y * DIVIDER;
+// float radius = 0.0f;
+// float maxx = x;
+// float maxy = y;
+
+// for (int x2 = 0 ; x2 < DIVIDER ; x2 ++) {
+// for (int y2 = 0 ; y2 < DIVIDER ; y2 ++) {
+// this->m_inputRadius->read(temp, rx+x2, ry+y2, COM_PS_NEAREST);
+// if (radius < temp[0]) {
+// radius = temp[0];
+// maxx = x2;
+// maxy = y2;
+// }
+// }
+// }
+// int impactRadius = ceil(radius / DIVIDER);
+// for (int x2 = x - impactRadius ; x2 < x + impactRadius ; x2 ++) {
+// for (int y2 = y - impactRadius ; y2 < y + impactRadius ; y2 ++) {
+// data->read(temp, x2, y2);
+// temp[0] = MIN2(temp[0], maxx);
+// temp[1] = MIN2(temp[1], maxy);
+// temp[2] = MAX2(temp[2], maxx);
+// temp[3] = MAX2(temp[3], maxy);
+// data->writePixel(x2, y2, temp);
+// }
+// }
+// }
+// }
return data;
}
-void InverseSearchRadiusOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void InverseSearchRadiusOperation::executePixel(float output[4], int x, int y, void *data)
{
- MemoryBuffer *buffer = (MemoryBuffer*)data;
- buffer->read(color, x, y);
+ MemoryBuffer *buffer = (MemoryBuffer *)data;
+ buffer->readNoCheck(color, x, y);
}
-void InverseSearchRadiusOperation::deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data)
+void InverseSearchRadiusOperation::deinitializeTileData(rcti *rect, void *data)
{
if (data) {
- MemoryBuffer* mb = (MemoryBuffer*)data;
+ MemoryBuffer *mb = (MemoryBuffer *)data;
delete mb;
}
}
void InverseSearchRadiusOperation::deinitExecution()
{
- this->inputRadius = NULL;
- this->inputDepth = NULL;
+ this->m_inputRadius = NULL;
}
-void InverseSearchRadiusOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
+void InverseSearchRadiusOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
{
NodeOperation::determineResolution(resolution, preferredResolution);
resolution[0] = resolution[0] / DIVIDER;
@@ -274,10 +367,10 @@ void InverseSearchRadiusOperation::determineResolution(unsigned int resolution[]
bool InverseSearchRadiusOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
{
rcti newRect;
- newRect.ymin = input->ymin*DIVIDER;
- newRect.ymax = input->ymax*DIVIDER;
- newRect.xmin = input->xmin*DIVIDER;
- newRect.xmax = input->xmax*DIVIDER;
+ newRect.ymin = input->ymin * DIVIDER - m_maxBlur;
+ newRect.ymax = input->ymax * DIVIDER + m_maxBlur;
+ newRect.xmin = input->xmin * DIVIDER - m_maxBlur;
+ newRect.xmax = input->xmax * DIVIDER + m_maxBlur;
return NodeOperation::determineDependingAreaOfInterest(&newRect, readOperation, output);
}
#endif
diff --git a/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.h b/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.h
index 4bf597ff831..d4025692549 100644
--- a/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.h
+++ b/source/blender/compositor/operations/COM_VariableSizeBokehBlurOperation.h
@@ -25,17 +25,18 @@
#include "COM_NodeOperation.h"
#include "COM_QualityStepHelper.h"
+//#define COM_DEFOCUS_SEARCH
class VariableSizeBokehBlurOperation : public NodeOperation, public QualityStepHelper {
private:
int m_maxBlur;
float m_threshold;
+ bool m_do_size_scale; /* scale size, matching 'BokehBlurNode' */
SocketReader *m_inputProgram;
SocketReader *m_inputBokehProgram;
SocketReader *m_inputSizeProgram;
- SocketReader *m_inputDepthProgram;
#ifdef COM_DEFOCUS_SEARCH
- SocketReader *inputSearchProgram;
+ SocketReader *m_inputSearchProgram;
#endif
public:
@@ -44,13 +45,17 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
*/
void initExecution();
+ void *initializeTileData(rcti *rect);
+
+ void deinitializeTileData(rcti *rect, void *data);
+
/**
* Deinitialize the execution
*/
@@ -62,16 +67,16 @@ public:
void setThreshold(float threshold) { this->m_threshold = threshold; }
+ void setDoScaleSize(bool scale_size) { this->m_do_size_scale = scale_size; }
+ void executeOpenCL(OpenCLDevice *device, MemoryBuffer *outputMemoryBuffer, cl_mem clOutputBuffer, MemoryBuffer **inputMemoryBuffers, list<cl_mem> *clMemToCleanUp, list<cl_kernel> *clKernelsToCleanUp);
};
#ifdef COM_DEFOCUS_SEARCH
class InverseSearchRadiusOperation : public NodeOperation {
private:
- int maxBlur;
- float threshold;
- SocketReader *inputDepth;
- SocketReader *inputRadius;
+ int m_maxBlur;
+ SocketReader *m_inputRadius;
public:
static const int DIVIDER = 4;
@@ -80,14 +85,14 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, MemoryBuffer *inputBuffers[], void *data);
/**
* Initialize the execution
*/
void initExecution();
- void* initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
- void deinitializeTileData(rcti *rect, MemoryBuffer **memoryBuffers, void *data);
+ void *initializeTileData(rcti *rect);
+ void deinitializeTileData(rcti *rect, void *data);
/**
* Deinitialize the execution
@@ -95,11 +100,9 @@ public:
void deinitExecution();
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
- void determineResolution(unsigned int resolution[], unsigned int preferredResolution[]);
+ void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]);
- void setMaxBlur(int maxRadius) { this->maxBlur = maxRadius; }
-
- void setThreshold(float threshold) { this->threshold = threshold; }
+ void setMaxBlur(int maxRadius) { this->m_maxBlur = maxRadius; }
};
#endif
#endif
diff --git a/source/blender/compositor/operations/COM_VectorBlurOperation.cpp b/source/blender/compositor/operations/COM_VectorBlurOperation.cpp
index 48be72561ba..08ef1249a6a 100644
--- a/source/blender/compositor/operations/COM_VectorBlurOperation.cpp
+++ b/source/blender/compositor/operations/COM_VectorBlurOperation.cpp
@@ -23,6 +23,8 @@
#include "COM_VectorBlurOperation.h"
#include "BLI_math.h"
+#include "MEM_guardedalloc.h"
+
// use the implementation of blender internal renderer to calculate the vector blur.
extern "C" {
#include "RE_pipeline.h"
@@ -52,11 +54,11 @@ void VectorBlurOperation::initExecution()
}
-void VectorBlurOperation::executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data)
+void VectorBlurOperation::executePixel(float output[4], int x, int y, void *data)
{
float *buffer = (float *) data;
int index = (y * this->getWidth() + x) * COM_NUMBER_OF_CHANNELS;
- copy_v4_v4(color, &buffer[index]);
+ copy_v4_v4(output, &buffer[index]);
}
void VectorBlurOperation::deinitExecution()
@@ -66,11 +68,11 @@ void VectorBlurOperation::deinitExecution()
this->m_inputSpeedProgram = NULL;
this->m_inputZProgram = NULL;
if (this->m_cachedInstance) {
- delete this->m_cachedInstance;
+ MEM_freeN(this->m_cachedInstance);
this->m_cachedInstance = NULL;
}
}
-void *VectorBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers)
+void *VectorBlurOperation::initializeTileData(rcti *rect)
{
if (this->m_cachedInstance) {
return this->m_cachedInstance;
@@ -78,11 +80,10 @@ void *VectorBlurOperation::initializeTileData(rcti *rect, MemoryBuffer **memoryB
lockMutex();
if (this->m_cachedInstance == NULL) {
- MemoryBuffer *tile = (MemoryBuffer *)this->m_inputImageProgram->initializeTileData(rect, memoryBuffers);
- MemoryBuffer *speed = (MemoryBuffer *)this->m_inputSpeedProgram->initializeTileData(rect, memoryBuffers);
- MemoryBuffer *z = (MemoryBuffer *)this->m_inputZProgram->initializeTileData(rect, memoryBuffers);
- float *data = new float[this->getWidth() * this->getHeight() * COM_NUMBER_OF_CHANNELS];
- memcpy(data, tile->getBuffer(), this->getWidth() * this->getHeight() * COM_NUMBER_OF_CHANNELS * sizeof(float));
+ MemoryBuffer *tile = (MemoryBuffer *)this->m_inputImageProgram->initializeTileData(rect);
+ MemoryBuffer *speed = (MemoryBuffer *)this->m_inputSpeedProgram->initializeTileData(rect);
+ MemoryBuffer *z = (MemoryBuffer *)this->m_inputZProgram->initializeTileData(rect);
+ float *data = (float *)MEM_dupallocN(tile->getBuffer());
this->generateVectorBlur(data, tile, speed, z);
this->m_cachedInstance = data;
}
@@ -115,6 +116,6 @@ void VectorBlurOperation::generateVectorBlur(float *data, MemoryBuffer *inputIma
blurdata.curved = this->m_settings->curved;
blurdata.fac = this->m_settings->fac;
RE_zbuf_accumulate_vecblur(&blurdata, this->getWidth(), this->getHeight(), data, inputImage->getBuffer(), inputSpeed->getBuffer(), zbuf);
- delete zbuf;
+ MEM_freeN((void *)zbuf);
return;
}
diff --git a/source/blender/compositor/operations/COM_VectorBlurOperation.h b/source/blender/compositor/operations/COM_VectorBlurOperation.h
index a2e72fa3232..4c6fca3cf83 100644
--- a/source/blender/compositor/operations/COM_VectorBlurOperation.h
+++ b/source/blender/compositor/operations/COM_VectorBlurOperation.h
@@ -48,7 +48,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, int x, int y, MemoryBuffer * inputBuffers[], void *data);
+ void executePixel(float output[4], int x, int y, void *data);
/**
* Initialize the execution
@@ -60,7 +60,7 @@ public:
*/
void deinitExecution();
- void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers);
+ void *initializeTileData(rcti *rect);
void setVectorBlurSettings(NodeBlurData *settings) { this->m_settings = settings; }
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output);
diff --git a/source/blender/compositor/operations/COM_VectorCurveOperation.cpp b/source/blender/compositor/operations/COM_VectorCurveOperation.cpp
index ee3f44d8979..6450b0716a3 100644
--- a/source/blender/compositor/operations/COM_VectorCurveOperation.cpp
+++ b/source/blender/compositor/operations/COM_VectorCurveOperation.cpp
@@ -43,12 +43,12 @@ void VectorCurveOperation::initExecution()
this->m_inputProgram = this->getInputSocketReader(0);
}
-void VectorCurveOperation::executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void VectorCurveOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float input[4];
- this->m_inputProgram->read(input, x, y, sampler, inputBuffers);
+ this->m_inputProgram->read(input, x, y, sampler);
curvemapping_evaluate_premulRGBF(this->m_curveMapping, output, input);
output[3] = input[3];
@@ -56,5 +56,6 @@ void VectorCurveOperation::executePixel(float *output, float x, float y, PixelSa
void VectorCurveOperation::deinitExecution()
{
+ CurveBaseOperation::deinitExecution();
this->m_inputProgram = NULL;
}
diff --git a/source/blender/compositor/operations/COM_VectorCurveOperation.h b/source/blender/compositor/operations/COM_VectorCurveOperation.h
index 2fbaf170986..6a1f916c60b 100644
--- a/source/blender/compositor/operations/COM_VectorCurveOperation.h
+++ b/source/blender/compositor/operations/COM_VectorCurveOperation.h
@@ -37,7 +37,7 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *Vector, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
/**
* Initialize the execution
diff --git a/source/blender/compositor/operations/COM_ViewerBaseOperation.cpp b/source/blender/compositor/operations/COM_ViewerBaseOperation.cpp
index 446b169763c..d9ca131721f 100644
--- a/source/blender/compositor/operations/COM_ViewerBaseOperation.cpp
+++ b/source/blender/compositor/operations/COM_ViewerBaseOperation.cpp
@@ -23,7 +23,6 @@
#include "COM_ViewerBaseOperation.h"
#include "COM_SocketConnection.h"
#include "BLI_listbase.h"
-#include "DNA_scene_types.h"
#include "BKE_image.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -35,6 +34,7 @@ extern "C" {
#include "MEM_guardedalloc.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
+ #include "IMB_colormanagement.h"
}
@@ -43,9 +43,11 @@ ViewerBaseOperation::ViewerBaseOperation() : NodeOperation()
this->setImage(NULL);
this->setImageUser(NULL);
this->m_outputBuffer = NULL;
- this->m_outputBufferDisplay = NULL;
+ this->m_depthBuffer = NULL;
this->m_active = false;
- this->m_doColorManagement = true;
+ this->m_doDepthBuffer = false;
+ this->m_viewSettings = NULL;
+ this->m_displaySettings = NULL;
}
void ViewerBaseOperation::initExecution()
@@ -59,27 +61,54 @@ void ViewerBaseOperation::initImage()
{
Image *anImage = this->m_image;
ImBuf *ibuf = BKE_image_acquire_ibuf(anImage, this->m_imageUser, &this->m_lock);
-
+
if (!ibuf) return;
+ BLI_lock_thread(LOCK_DRAW_IMAGE);
if (ibuf->x != (int)getWidth() || ibuf->y != (int)getHeight()) {
+
imb_freerectImBuf(ibuf);
imb_freerectfloatImBuf(ibuf);
IMB_freezbuffloatImBuf(ibuf);
ibuf->x = getWidth();
ibuf->y = getHeight();
- imb_addrectImBuf(ibuf);
imb_addrectfloatImBuf(ibuf);
anImage->ok = IMA_OK_LOADED;
+
+ ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
+
+ BLI_unlock_thread(LOCK_DRAW_IMAGE);
+ }
+
+ if (m_doDepthBuffer)
+ {
+ addzbuffloatImBuf(ibuf);
}
-
+ BLI_unlock_thread(LOCK_DRAW_IMAGE);
+
/* now we combine the input with ibuf */
this->m_outputBuffer = ibuf->rect_float;
- this->m_outputBufferDisplay = (unsigned char *)ibuf->rect;
-
+
+ /* needed for display buffer update
+ *
+ * no need to lock / reference the image buffer because it's seems
+ * to be the single place which changes buffers of viewer image
+ * which is this node
+ */
+ this->m_ibuf = ibuf;
+
+ if (m_doDepthBuffer)
+ {
+ this->m_depthBuffer = ibuf->zbuf_float;
+ }
+
BKE_image_release_ibuf(this->m_image, this->m_lock);
}
void ViewerBaseOperation:: updateImage(rcti *rect)
{
+ IMB_partial_display_buffer_update(this->m_ibuf, this->m_outputBuffer, NULL, getWidth(), 0, 0,
+ this->m_viewSettings, this->m_displaySettings,
+ rect->xmin, rect->ymin, rect->xmax, rect->ymax);
+
WM_main_add_notifier(NC_WINDOW | ND_DRAW, NULL);
}
diff --git a/source/blender/compositor/operations/COM_ViewerBaseOperation.h b/source/blender/compositor/operations/COM_ViewerBaseOperation.h
index f3fd1e9c9df..f7d479eb3b8 100644
--- a/source/blender/compositor/operations/COM_ViewerBaseOperation.h
+++ b/source/blender/compositor/operations/COM_ViewerBaseOperation.h
@@ -29,7 +29,7 @@
class ViewerBaseOperation : public NodeOperation {
protected:
float *m_outputBuffer;
- unsigned char *m_outputBufferDisplay;
+ float *m_depthBuffer;
Image *m_image;
ImageUser *m_imageUser;
void *m_lock;
@@ -37,8 +37,11 @@ protected:
float m_centerX;
float m_centerY;
OrderOfChunks m_chunkOrder;
- bool m_doColorManagement;
- bool m_doColorPredivide;
+ bool m_doDepthBuffer;
+ ImBuf *m_ibuf;
+
+ const ColorManagedViewSettings *m_viewSettings;
+ const ColorManagedDisplaySettings *m_displaySettings;
public:
bool isOutputOperation(bool rendering) const { return isActiveViewerOutput(); }
@@ -55,10 +58,10 @@ public:
float getCenterY() { return this->m_centerY; }
OrderOfChunks getChunkOrder() { return this->m_chunkOrder; }
const CompositorPriority getRenderPriority() const;
- void setColorManagement(bool doColorManagement) { this->m_doColorManagement = doColorManagement; }
- void setColorPredivide(bool doColorPredivide) { this->m_doColorPredivide = doColorPredivide; }
bool isViewerOperation() { return true; }
-
+
+ void setViewSettings(const ColorManagedViewSettings *viewSettings) { this->m_viewSettings = viewSettings; }
+ void setDisplaySettings(const ColorManagedDisplaySettings *displaySettings) { this->m_displaySettings = displaySettings; }
protected:
ViewerBaseOperation();
void updateImage(rcti *rect);
diff --git a/source/blender/compositor/operations/COM_ViewerOperation.cpp b/source/blender/compositor/operations/COM_ViewerOperation.cpp
index 9278ddd6ead..576d5da4d74 100644
--- a/source/blender/compositor/operations/COM_ViewerOperation.cpp
+++ b/source/blender/compositor/operations/COM_ViewerOperation.cpp
@@ -23,7 +23,6 @@
#include "COM_ViewerOperation.h"
#include "COM_SocketConnection.h"
#include "BLI_listbase.h"
-#include "DNA_scene_types.h"
#include "BKE_image.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -43,9 +42,11 @@ ViewerOperation::ViewerOperation() : ViewerBaseOperation()
{
this->addInputSocket(COM_DT_COLOR);
this->addInputSocket(COM_DT_VALUE);
+ this->addInputSocket(COM_DT_VALUE);
this->m_imageInput = NULL;
this->m_alphaInput = NULL;
+ this->m_depthInput = NULL;
}
void ViewerOperation::initExecution()
@@ -53,6 +54,8 @@ void ViewerOperation::initExecution()
// When initializing the tree during initial load the width and height can be zero.
this->m_imageInput = getInputSocketReader(0);
this->m_alphaInput = getInputSocketReader(1);
+ this->m_depthInput = getInputSocketReader(2);
+ this->m_doDepthBuffer = (this->m_depthInput != NULL);
ViewerBaseOperation::initExecution();
}
@@ -60,55 +63,49 @@ void ViewerOperation::deinitExecution()
{
this->m_imageInput = NULL;
this->m_alphaInput = NULL;
+ this->m_depthInput = NULL;
ViewerBaseOperation::deinitExecution();
}
-void ViewerOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers)
+void ViewerOperation::executeRegion(rcti *rect, unsigned int tileNumber)
{
float *buffer = this->m_outputBuffer;
- unsigned char *bufferDisplay = this->m_outputBufferDisplay;
+ float *depthbuffer = this->m_depthBuffer;
if (!buffer) return;
const int x1 = rect->xmin;
const int y1 = rect->ymin;
const int x2 = rect->xmax;
const int y2 = rect->ymax;
- const int offsetadd = (this->getWidth() - (x2 - x1)) * 4;
- int offset = (y1 * this->getWidth() + x1) * 4;
- float alpha[4], srgb[4];
+ const int offsetadd = (this->getWidth() - (x2 - x1));
+ const int offsetadd4 = offsetadd * 4;
+ int offset = (y1 * this->getWidth() + x1);
+ int offset4 = offset * 4;
+ float alpha[4], depth[4];
int x;
int y;
bool breaked = false;
for (y = y1; y < y2 && (!breaked); y++) {
for (x = x1; x < x2; x++) {
- this->m_imageInput->read(&(buffer[offset]), x, y, COM_PS_NEAREST, memoryBuffers);
+ this->m_imageInput->read(&(buffer[offset4]), x, y, COM_PS_NEAREST);
if (this->m_alphaInput != NULL) {
- this->m_alphaInput->read(alpha, x, y, COM_PS_NEAREST, memoryBuffers);
- buffer[offset + 3] = alpha[0];
- }
- /// @todo: linear conversion only when scene color management is selected, also check predivide.
- if (this->m_doColorManagement) {
- if (this->m_doColorPredivide) {
- linearrgb_to_srgb_predivide_v4(srgb, buffer + offset);
- }
- else {
- linearrgb_to_srgb_v4(srgb, buffer + offset);
- }
- }
- else {
- copy_v4_v4(srgb, buffer + offset);
+ this->m_alphaInput->read(alpha, x, y, COM_PS_NEAREST);
+ buffer[offset4 + 3] = alpha[0];
}
+ if (m_depthInput) {
+ this->m_depthInput->read(depth, x, y, COM_PS_NEAREST);
+ depthbuffer[offset] = depth[0];
+ }
- rgba_float_to_uchar(bufferDisplay + offset, srgb);
-
- offset += 4;
+ offset ++;
+ offset4 += 4;
}
if (isBreaked()) {
breaked = true;
}
-
offset += offsetadd;
+ offset4 += offsetadd4;
}
updateImage(rect);
}
diff --git a/source/blender/compositor/operations/COM_ViewerOperation.h b/source/blender/compositor/operations/COM_ViewerOperation.h
index fd83c3957f1..262efd87dba 100644
--- a/source/blender/compositor/operations/COM_ViewerOperation.h
+++ b/source/blender/compositor/operations/COM_ViewerOperation.h
@@ -31,10 +31,11 @@ class ViewerOperation : public ViewerBaseOperation {
private:
SocketReader *m_imageInput;
SocketReader *m_alphaInput;
+ SocketReader *m_depthInput;
public:
ViewerOperation();
- void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers);
+ void executeRegion(rcti *rect, unsigned int tileNumber);
void initExecution();
void deinitExecution();
};
diff --git a/source/blender/compositor/operations/COM_WriteBufferOperation.cpp b/source/blender/compositor/operations/COM_WriteBufferOperation.cpp
index b8c7478b2f7..273c10b60ac 100644
--- a/source/blender/compositor/operations/COM_WriteBufferOperation.cpp
+++ b/source/blender/compositor/operations/COM_WriteBufferOperation.cpp
@@ -40,9 +40,9 @@ WriteBufferOperation::~WriteBufferOperation()
}
}
-void WriteBufferOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void WriteBufferOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
- this->m_input->read(color, x, y, sampler, inputBuffers);
+ this->m_input->read(output, x, y, sampler);
}
void WriteBufferOperation::initExecution()
@@ -57,16 +57,12 @@ void WriteBufferOperation::deinitExecution()
this->m_memoryProxy->free();
}
-void WriteBufferOperation::executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers)
+void WriteBufferOperation::executeRegion(rcti *rect, unsigned int tileNumber)
{
- //MemoryBuffer *memoryBuffer = MemoryManager::getMemoryBuffer(this->getMemoryProxy(), tileNumber);
MemoryBuffer *memoryBuffer = this->m_memoryProxy->getBuffer();
float *buffer = memoryBuffer->getBuffer();
if (this->m_input->isComplex()) {
- bNode* bnode = this->m_input->getbNode();
- if (bnode&& bnode->original) bnode->original->highlight++;
-
- void *data = this->m_input->initializeTileData(rect, memoryBuffers);
+ void *data = this->m_input->initializeTileData(rect);
int x1 = rect->xmin;
int y1 = rect->ymin;
int x2 = rect->xmax;
@@ -77,7 +73,7 @@ void WriteBufferOperation::executeRegion(rcti *rect, unsigned int tileNumber, Me
for (y = y1; y < y2 && (!breaked); y++) {
int offset4 = (y * memoryBuffer->getWidth() + x1) * COM_NUMBER_OF_CHANNELS;
for (x = x1; x < x2; x++) {
- this->m_input->read(&(buffer[offset4]), x, y, memoryBuffers, data);
+ this->m_input->read(&(buffer[offset4]), x, y, data);
offset4 += COM_NUMBER_OF_CHANNELS;
}
@@ -87,10 +83,9 @@ void WriteBufferOperation::executeRegion(rcti *rect, unsigned int tileNumber, Me
}
if (data) {
- this->m_input->deinitializeTileData(rect, memoryBuffers, data);
+ this->m_input->deinitializeTileData(rect, data);
data = NULL;
}
- if (bnode&& bnode->original) bnode->original->highlight++;
}
else {
int x1 = rect->xmin;
@@ -104,7 +99,7 @@ void WriteBufferOperation::executeRegion(rcti *rect, unsigned int tileNumber, Me
for (y = y1; y < y2 && (!breaked); y++) {
int offset4 = (y * memoryBuffer->getWidth() + x1) * COM_NUMBER_OF_CHANNELS;
for (x = x1; x < x2; x++) {
- this->m_input->read(&(buffer[offset4]), x, y, COM_PS_NEAREST, memoryBuffers);
+ this->m_input->read(&(buffer[offset4]), x, y, COM_PS_NEAREST);
offset4 += COM_NUMBER_OF_CHANNELS;
}
if (isBreaked()) {
@@ -115,7 +110,7 @@ void WriteBufferOperation::executeRegion(rcti *rect, unsigned int tileNumber, Me
memoryBuffer->setCreatedState();
}
-void WriteBufferOperation::executeOpenCLRegion(OpenCLDevice* device, rcti *rect, unsigned int chunkNumber, MemoryBuffer **inputMemoryBuffers, MemoryBuffer *outputBuffer)
+void WriteBufferOperation::executeOpenCLRegion(OpenCLDevice *device, rcti *rect, unsigned int chunkNumber, MemoryBuffer **inputMemoryBuffers, MemoryBuffer *outputBuffer)
{
float *outputFloatBuffer = outputBuffer->getBuffer();
cl_int error;
@@ -143,8 +138,6 @@ void WriteBufferOperation::executeOpenCLRegion(OpenCLDevice* device, rcti *rect,
list<cl_mem> *clMemToCleanUp = new list<cl_mem>();
clMemToCleanUp->push_back(clOutputBuffer);
list<cl_kernel> *clKernelsToCleanUp = new list<cl_kernel>();
- bNode* bnode = this->m_input->getbNode();
- if (bnode&& bnode->original) bnode->original->highlight++;
this->m_input->executeOpenCL(device, outputBuffer, clOutputBuffer, inputMemoryBuffers, clMemToCleanUp, clKernelsToCleanUp);
@@ -163,10 +156,7 @@ void WriteBufferOperation::executeOpenCLRegion(OpenCLDevice* device, rcti *rect,
this->getMemoryProxy()->getBuffer()->copyContentFrom(outputBuffer);
- if (bnode&& bnode->original) bnode->original->highlight++;
// STEP 4
-
-
while (clMemToCleanUp->size() > 0) {
cl_mem mem = clMemToCleanUp->front();
error = clReleaseMemObject(mem);
diff --git a/source/blender/compositor/operations/COM_WriteBufferOperation.h b/source/blender/compositor/operations/COM_WriteBufferOperation.h
index 24bfdecd124..d89444045d4 100644
--- a/source/blender/compositor/operations/COM_WriteBufferOperation.h
+++ b/source/blender/compositor/operations/COM_WriteBufferOperation.h
@@ -38,14 +38,17 @@ public:
~WriteBufferOperation();
int isBufferOperation() { return true; }
MemoryProxy *getMemoryProxy() { return this->m_memoryProxy; }
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
const bool isWriteBufferOperation() const { return true; }
- void executeRegion(rcti *rect, unsigned int tileNumber, MemoryBuffer **memoryBuffers);
+ void executeRegion(rcti *rect, unsigned int tileNumber);
void initExecution();
void deinitExecution();
- void executeOpenCLRegion(OpenCLDevice* device, rcti *rect, unsigned int chunkNumber, MemoryBuffer **memoryBuffers, MemoryBuffer *outputBuffer);
+ void executeOpenCLRegion(OpenCLDevice *device, rcti *rect, unsigned int chunkNumber, MemoryBuffer **memoryBuffers, MemoryBuffer *outputBuffer);
void readResolutionFromInputSocket();
+ inline NodeOperation *getInput() {
+ return m_input;
+ }
};
#endif
diff --git a/source/blender/compositor/operations/COM_ZCombineOperation.cpp b/source/blender/compositor/operations/COM_ZCombineOperation.cpp
index c1ea63432b9..5e4f90b0269 100644
--- a/source/blender/compositor/operations/COM_ZCombineOperation.cpp
+++ b/source/blender/compositor/operations/COM_ZCombineOperation.cpp
@@ -46,43 +46,43 @@ void ZCombineOperation::initExecution()
this->m_depth2Reader = this->getInputSocketReader(3);
}
-void ZCombineOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ZCombineOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float depth1[4];
float depth2[4];
- this->m_depth1Reader->read(depth1, x, y, sampler, inputBuffers);
- this->m_depth2Reader->read(depth2, x, y, sampler, inputBuffers);
+ this->m_depth1Reader->read(depth1, x, y, sampler);
+ this->m_depth2Reader->read(depth2, x, y, sampler);
if (depth1[0] < depth2[0]) {
- this->m_image1Reader->read(color, x, y, sampler, inputBuffers);
+ this->m_image1Reader->read(output, x, y, sampler);
}
else {
- this->m_image2Reader->read(color, x, y, sampler, inputBuffers);
+ this->m_image2Reader->read(output, x, y, sampler);
}
}
-void ZCombineAlphaOperation::executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
+void ZCombineAlphaOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
{
float depth1[4];
float depth2[4];
float color1[4];
float color2[4];
- this->m_depth1Reader->read(depth1, x, y, sampler, inputBuffers);
- this->m_depth2Reader->read(depth2, x, y, sampler, inputBuffers);
- if (depth1[0] < depth2[0]) {
- this->m_image1Reader->read(color1, x, y, sampler, inputBuffers);
- this->m_image2Reader->read(color2, x, y, sampler, inputBuffers);
+ this->m_depth1Reader->read(depth1, x, y, sampler);
+ this->m_depth2Reader->read(depth2, x, y, sampler);
+ if (depth1[0] <= depth2[0]) {
+ this->m_image1Reader->read(color1, x, y, sampler);
+ this->m_image2Reader->read(color2, x, y, sampler);
}
else {
- this->m_image1Reader->read(color2, x, y, sampler, inputBuffers);
- this->m_image2Reader->read(color1, x, y, sampler, inputBuffers);
+ this->m_image1Reader->read(color2, x, y, sampler);
+ this->m_image2Reader->read(color1, x, y, sampler);
}
float fac = color1[3];
float ifac = 1.0f - fac;
- color[0] = color1[0] + ifac * color2[0];
- color[1] = color1[1] + ifac * color2[1];
- color[2] = color1[2] + ifac * color2[2];
- color[3] = MAX2(color1[3], color2[3]);
+ output[0] = fac * color1[0] + ifac * color2[0];
+ output[1] = fac * color1[1] + ifac * color2[1];
+ output[2] = fac * color1[2] + ifac * color2[2];
+ output[3] = max(color1[3], color2[3]);
}
void ZCombineOperation::deinitExecution()
diff --git a/source/blender/compositor/operations/COM_ZCombineOperation.h b/source/blender/compositor/operations/COM_ZCombineOperation.h
index 422a946b98f..61ceca340f7 100644
--- a/source/blender/compositor/operations/COM_ZCombineOperation.h
+++ b/source/blender/compositor/operations/COM_ZCombineOperation.h
@@ -47,11 +47,11 @@ public:
/**
* the inner loop of this program
*/
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
class ZCombineAlphaOperation : public ZCombineOperation {
- void executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
+ void executePixel(float output[4], float x, float y, PixelSampler sampler);
};
#endif
diff --git a/source/blender/datatoc/CMakeLists.txt b/source/blender/datatoc/CMakeLists.txt
new file mode 100644
index 00000000000..125e653ee5c
--- /dev/null
+++ b/source/blender/datatoc/CMakeLists.txt
@@ -0,0 +1,29 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public LicenseS
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Contributor(s): Campbell Barton.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+
+# -----------------------------------------------------------------------------
+# Build makesdna executable
+set(SRC
+ datatoc.c
+)
+
+# SRC_DNA_INC is defined in the parent dir
+add_executable(datatoc ${SRC})
diff --git a/source/blender/datatoc/datatoc.c b/source/blender/datatoc/datatoc.c
new file mode 100644
index 00000000000..a7da037ff16
--- /dev/null
+++ b/source/blender/datatoc/datatoc.c
@@ -0,0 +1,114 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+/* #define VERBOSE */
+
+#define MAX2(x, y) ( (x) > (y) ? (x) : (y) )
+#define MAX3(x, y, z) MAX2(MAX2((x), (y)), (z) )
+
+static char *basename(char *string)
+{
+ char *lfslash, *lbslash;
+
+ lfslash = strrchr(string, '/');
+ lbslash = strrchr(string, '\\');
+ if (lbslash) lbslash++;
+ if (lfslash) lfslash++;
+
+ return MAX3(string, lfslash, lbslash);
+}
+
+int main(int argc, char **argv)
+{
+ FILE *fpin, *fpout;
+ char sizest[256];
+ long size;
+ int i;
+
+ if (argc < 2) {
+ printf("Usage: datatoc <data_file_from> <data_file_to>\n");
+ exit(1);
+ }
+
+ fpin = fopen(argv[1], "rb");
+ if (!fpin) {
+ printf("Unable to open input <%s>\n", argv[1]);
+ exit(1);
+ }
+
+ argv[1] = basename(argv[1]);
+
+ fseek(fpin, 0L, SEEK_END);
+ size = ftell(fpin);
+ fseek(fpin, 0L, SEEK_SET);
+
+ if (argv[1][0] == '.') argv[1]++;
+
+#ifdef VERBOSE
+ printf("Making C file <%s>\n", argv[2]);
+#endif
+
+ for (i = 0; i < (int)strlen(argv[1]); i++)
+ if (argv[1][i] == '.') argv[1][i] = '_';
+
+ sprintf(sizest, "%d", (int)size);
+
+ fpout = fopen(argv[2], "w");
+ if (!fpout) {
+ fprintf(stderr, "Unable to open output <%s>\n", argv[2]);
+ exit(1);
+ }
+
+ fprintf(fpout, "/* DataToC output of file <%s> */\n\n", argv[1]);
+ fprintf(fpout, "int datatoc_%s_size = %s;\n", argv[1], sizest);
+ fprintf(fpout, "char datatoc_%s[] = {\n", argv[1]);
+ while (size--) {
+ /* if we want to open in an editor
+ * this is nicer to avoid very long lines */
+#ifdef VERBOSE
+ if (size % 32 == 31) {
+ fprintf(fpout, "\n");
+ }
+#endif
+
+ /* fprintf (fpout, "\\x%02x", getc(fpin)); */
+ fprintf(fpout, "%3d,", getc(fpin));
+ }
+
+ /* trailing NULL terminator, this isnt needed in some cases and
+ * won't be taken into account by the size variable, but its useful when dealing with
+ * NULL terminated string data */
+ fprintf(fpout, "0\n};\n\n");
+
+ fclose(fpin);
+ fclose(fpout);
+ return 0;
+}
diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c
index f6b301c4594..1998dafb3cd 100644
--- a/source/blender/editors/animation/anim_channels_defines.c
+++ b/source/blender/editors/animation/anim_channels_defines.c
@@ -61,7 +61,6 @@
#include "BKE_curve.h"
#include "BKE_key.h"
#include "BKE_context.h"
-#include "BKE_utildefines.h" /* FILE_MAX */
#include "UI_interface.h"
#include "UI_interface_icons.h"
@@ -85,14 +84,12 @@
/* size of indent steps */
#define INDENT_STEP_SIZE 7
+/* size of string buffers used for animation channel displayed names */
#define ANIM_CHAN_NAME_SIZE 256
-/* macros used for type defines */
-
-/* get the pointer used for some flag and return */
+/* get the pointer used for some flag */
#define GET_ACF_FLAG_PTR(ptr, type) ((*(type) = sizeof((ptr))), &(ptr))
-
/* *********************************************** */
/* Generic Functions (Type independent) */
@@ -119,7 +116,7 @@ static void acf_generic_root_backdrop(bAnimContext *ac, bAnimListElem *ale, floa
glColor3fv(color);
/* rounded corners on LHS only - top only when expanded, but bottom too when collapsed */
- uiSetRoundBox(expanded ? UI_CNR_TOP_LEFT : (UI_CNR_TOP_LEFT | UI_CNR_BOTTOM_LEFT));
+ uiSetRoundBox((expanded) ? UI_CNR_TOP_LEFT : (UI_CNR_TOP_LEFT | UI_CNR_BOTTOM_LEFT));
uiDrawBox(GL_POLYGON, offset, yminc, v2d->cur.xmax + EXTRA_SCROLL_PAD, ymaxc, 8);
}
@@ -296,7 +293,7 @@ static short acf_nodetree_rootType_offset(bNodeTree *ntree)
}
}
- // unknown
+ /* unknown */
return 0;
}
@@ -426,7 +423,7 @@ static void acf_summary_name(bAnimListElem *UNUSED(ale), char *name)
BLI_strncpy(name, "DopeSheet Summary", ANIM_CHAN_NAME_SIZE);
}
-// TODO: this is really a temp icon I think
+// FIXME: this is really a temp icon I think
static int acf_summary_icon(bAnimListElem *UNUSED(ale))
{
return ICON_BORDERMOVE;
@@ -605,7 +602,6 @@ static int acf_object_icon(bAnimListElem *ale)
Object *ob = base->object;
/* icon depends on object-type */
-
switch (ob->type) {
case OB_LAMP:
return ICON_OUTLINER_OB_LAMP;
@@ -632,7 +628,6 @@ static int acf_object_icon(bAnimListElem *ale)
default:
return ICON_OBJECT_DATA;
}
-
}
/* name for object */
@@ -851,7 +846,7 @@ static int acf_group_setting_flag(bAnimContext *ac, int setting, short *neg)
// *neg = 1; - if we change this to edtiability
return AGRP_PROTECTED;
- case ACHANNEL_SETTING_VISIBLE: /* visiblity - graph editor */
+ case ACHANNEL_SETTING_VISIBLE: /* visibility - graph editor */
*neg = 1;
return AGRP_NOTVISIBLE;
}
@@ -939,7 +934,7 @@ static int acf_fcurve_setting_flag(bAnimContext *UNUSED(ac), int setting, short
// *neg = 1; - if we change this to edtiability
return FCURVE_PROTECTED;
- case ACHANNEL_SETTING_VISIBLE: /* visiblity - graph editor */
+ case ACHANNEL_SETTING_VISIBLE: /* visibility - graph editor */
return FCURVE_VISIBLE;
default: /* unsupported */
@@ -2182,7 +2177,7 @@ static int acf_dsspk_setting_flag(bAnimContext *UNUSED(ac), int setting, short *
{
/* clear extra return data first */
*neg = 0;
-
+
switch (setting) {
case ACHANNEL_SETTING_EXPAND: /* expanded */
return SPK_DS_EXPAND;
@@ -2206,10 +2201,10 @@ static int acf_dsspk_setting_flag(bAnimContext *UNUSED(ac), int setting, short *
static void *acf_dsspk_setting_ptr(bAnimListElem *ale, int setting, short *type)
{
Speaker *spk = (Speaker *)ale->data;
-
+
/* clear extra return data first */
*type = 0;
-
+
switch (setting) {
case ACHANNEL_SETTING_EXPAND: /* expanded */
return GET_ACF_FLAG_PTR(spk->flag, type);
@@ -2481,7 +2476,7 @@ static int acf_gpl_setting_flag(bAnimContext *UNUSED(ac), int setting, short *ne
return GP_LAYER_HIDE;
case ACHANNEL_SETTING_PROTECT: /* protected */
- // *neg = 1; - if we change this to edtiability
+ // *neg = 1; - if we change this to editability
return GP_LAYER_LOCKED;
default: /* unsupported */
@@ -2507,11 +2502,11 @@ static bAnimChannelType ACF_GPL =
acf_generic_channel_backdrop, /* backdrop */
acf_generic_indention_flexible, /* indent level */
acf_generic_group_offset, /* offset */
-
+
acf_gpl_name, /* name */
acf_gpl_name_prop, /* name prop */
NULL, /* icon */
-
+
acf_gpl_setting_valid, /* has setting */
acf_gpl_setting_flag, /* flag for setting */
acf_gpl_setting_ptr /* pointer for setting */
@@ -2530,7 +2525,7 @@ static void acf_mask_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale),
// TODO: just get this from RNA?
static int acf_mask_icon(bAnimListElem *UNUSED(ale))
{
- return ICON_GREASEPENCIL; // MASK_TODO - need real icon
+ return ICON_MOD_MASK;
}
/* check if some setting exists for this channel */
@@ -2541,7 +2536,7 @@ static short acf_mask_setting_valid(bAnimContext *UNUSED(ac), bAnimListElem *UNU
case ACHANNEL_SETTING_SELECT:
case ACHANNEL_SETTING_EXPAND:
return 1;
-
+
default:
return 0;
}
@@ -2552,15 +2547,15 @@ static int acf_mask_setting_flag(bAnimContext *UNUSED(ac), int setting, short *n
{
/* clear extra return data first */
*neg = 0;
-
+
switch (setting) {
case ACHANNEL_SETTING_SELECT: /* selected */
return AGRP_SELECTED;
-
+
case ACHANNEL_SETTING_EXPAND: /* expanded */
return MASK_ANIMF_EXPAND;
}
-
+
/* this shouldn't happen */
return 0;
}
@@ -2569,7 +2564,7 @@ static int acf_mask_setting_flag(bAnimContext *UNUSED(ac), int setting, short *n
static void *acf_mask_setting_ptr(bAnimListElem *ale, int UNUSED(setting), short *type)
{
Mask *mask = (Mask *)ale->data;
-
+
/* all flags are just in mask->flag for now... */
return GET_ACF_FLAG_PTR(mask->flag, type);
}
@@ -2577,17 +2572,17 @@ static void *acf_mask_setting_ptr(bAnimListElem *ale, int UNUSED(setting), short
/* mask datablock type define */
static bAnimChannelType ACF_MASKDATA =
{
- "Mask Datablock", /* type name */
-
+ "Mask Datablock", /* type name */
+
acf_mask_color, /* backdrop color */
- acf_group_backdrop, /* backdrop */
- acf_generic_indention_0, /* indent level */
- acf_generic_group_offset, /* offset */
-
- acf_generic_idblock_name, /* name */
- acf_generic_idfill_nameprop, /* name prop */
+ acf_group_backdrop, /* backdrop */
+ acf_generic_indention_0, /* indent level */
+ acf_generic_group_offset, /* offset */
+
+ acf_generic_idblock_name, /* name */
+ acf_generic_idfill_nameprop, /* name prop */
acf_mask_icon, /* icon */
-
+
acf_mask_setting_valid, /* has setting */
acf_mask_setting_flag, /* flag for setting */
acf_mask_setting_ptr /* pointer for setting */
@@ -2599,7 +2594,7 @@ static bAnimChannelType ACF_MASKDATA =
static void acf_masklay_name(bAnimListElem *ale, char *name)
{
MaskLayer *masklay = (MaskLayer *)ale->data;
-
+
if (masklay && name)
BLI_strncpy(name, masklay->name, ANIM_CHAN_NAME_SIZE);
}
@@ -2610,7 +2605,7 @@ static short acf_masklay_name_prop(bAnimListElem *ale, PointerRNA *ptr, Property
if (ale->data) {
RNA_pointer_create(ale->id, &RNA_MaskLayer, ale->data, ptr);
*prop = RNA_struct_name_property(ptr->type);
-
+
return (*prop != NULL);
}
@@ -2625,7 +2620,7 @@ static short acf_masklay_setting_valid(bAnimContext *UNUSED(ac), bAnimListElem *
case ACHANNEL_SETTING_EXPAND: /* mask layers are more like F-Curves than groups */
case ACHANNEL_SETTING_VISIBLE: /* graph editor only */
return 0;
-
+
/* always available */
default:
return 1;
@@ -2637,18 +2632,18 @@ static int acf_masklay_setting_flag(bAnimContext *UNUSED(ac), int setting, short
{
/* clear extra return data first */
*neg = 0;
-
+
switch (setting) {
case ACHANNEL_SETTING_SELECT: /* selected */
return MASK_LAYERFLAG_SELECT;
-
+
// case ACHANNEL_SETTING_MUTE: /* muted */
// return GP_LAYER_HIDE;
-
+
case ACHANNEL_SETTING_PROTECT: /* protected */
- // *neg = 1; - if we change this to edtiability
+ // *neg = 1; - if we change this to editability
return MASK_LAYERFLAG_LOCKED;
-
+
default: /* unsupported */
return 0;
}
@@ -2658,7 +2653,7 @@ static int acf_masklay_setting_flag(bAnimContext *UNUSED(ac), int setting, short
static void *acf_masklay_setting_ptr(bAnimListElem *ale, int UNUSED(setting), short *type)
{
MaskLayer *masklay = (MaskLayer *)ale->data;
-
+
/* all flags are just in agrp->flag for now... */
return GET_ACF_FLAG_PTR(masklay->flag, type);
}
@@ -2666,20 +2661,20 @@ static void *acf_masklay_setting_ptr(bAnimListElem *ale, int UNUSED(setting), sh
/* grease pencil layer type define */
static bAnimChannelType ACF_MASKLAYER =
{
- "Mask Layer", /* type name */
-
+ "Mask Layer", /* type name */
+
acf_generic_channel_color, /* backdrop color */
acf_generic_channel_backdrop, /* backdrop */
acf_generic_indention_flexible, /* indent level */
acf_generic_group_offset, /* offset */
-
- acf_masklay_name, /* name */
- acf_masklay_name_prop, /* name prop */
+
+ acf_masklay_name, /* name */
+ acf_masklay_name_prop, /* name prop */
NULL, /* icon */
-
- acf_masklay_setting_valid, /* has setting */
- acf_masklay_setting_flag, /* flag for setting */
- acf_masklay_setting_ptr /* pointer for setting */
+
+ acf_masklay_setting_valid, /* has setting */
+ acf_masklay_setting_flag, /* flag for setting */
+ acf_masklay_setting_ptr /* pointer for setting */
};
@@ -2702,17 +2697,17 @@ static void ANIM_init_channel_typeinfo_data(void)
animchannelTypeInfo[type++] = NULL; /* None */
animchannelTypeInfo[type++] = NULL; /* AnimData */
animchannelTypeInfo[type++] = NULL; /* Special */
-
+
animchannelTypeInfo[type++] = &ACF_SUMMARY; /* Motion Summary */
-
+
animchannelTypeInfo[type++] = &ACF_SCENE; /* Scene */
animchannelTypeInfo[type++] = &ACF_OBJECT; /* Object */
animchannelTypeInfo[type++] = &ACF_GROUP; /* Group */
animchannelTypeInfo[type++] = &ACF_FCURVE; /* F-Curve */
-
+
animchannelTypeInfo[type++] = &ACF_FILLACTD; /* Object Action Expander */
animchannelTypeInfo[type++] = &ACF_FILLDRIVERS; /* Drivers Expander */
-
+
animchannelTypeInfo[type++] = &ACF_DSMAT; /* Material Channel */
animchannelTypeInfo[type++] = &ACF_DSLAM; /* Lamp Channel */
animchannelTypeInfo[type++] = &ACF_DSCAM; /* Camera Channel */
@@ -2727,15 +2722,15 @@ static void ANIM_init_channel_typeinfo_data(void)
animchannelTypeInfo[type++] = &ACF_DSTEX; /* Texture Channel */
animchannelTypeInfo[type++] = &ACF_DSLAT; /* Lattice Channel */
animchannelTypeInfo[type++] = &ACF_DSSPK; /* Speaker Channel */
-
+
animchannelTypeInfo[type++] = &ACF_SHAPEKEY; /* ShapeKey */
-
+
animchannelTypeInfo[type++] = &ACF_GPD; /* Grease Pencil Datablock */
animchannelTypeInfo[type++] = &ACF_GPL; /* Grease Pencil Layer */
-
+
animchannelTypeInfo[type++] = &ACF_MASKDATA; /* Mask Datablock */
animchannelTypeInfo[type++] = &ACF_MASKLAYER; /* Mask Layer */
-
+
// TODO: these types still need to be implemented!!!
// probably need a few extra flags for these special cases...
animchannelTypeInfo[type++] = NULL; /* NLA Track */
@@ -2780,7 +2775,7 @@ void ANIM_channel_debug_print_info(bAnimListElem *ale, short indent_level)
acf->name(ale, name);
else
BLI_strncpy(name, "<No name>", sizeof(name));
-
+
/* print type name + ui name */
printf("ChanType: <%s> Name: \"%s\"\n", acf->channel_type_name, name);
}
@@ -2924,7 +2919,6 @@ void ANIM_channel_setting_set(bAnimContext *ac, bAnimListElem *ale, int setting,
#define RENAME_TEXT_WIDTH 100
/* Draw the given channel */
-// TODO: make this use UI controls for the buttons
void ANIM_channel_draw(bAnimContext *ac, bAnimListElem *ale, float yminc, float ymaxc)
{
bAnimChannelType *acf = ANIM_channel_get_typeinfo(ale);
@@ -3009,19 +3003,19 @@ void ANIM_channel_draw(bAnimContext *ac, bAnimListElem *ale, float yminc, float
offset += ICON_WIDTH;
}
}
-
+
/* step 5) draw name ............................................... */
- // TODO: when renaming, we might not want to draw this, especially if name happens to be longer than channel
+ /* TODO: when renaming, we might not want to draw this, especially if name happens to be longer than channel */
if (acf->name) {
char name[ANIM_CHAN_NAME_SIZE]; /* hopefully this will be enough! */
/* set text color */
- // XXX: if active, highlight differently?
+ /* XXX: if active, highlight differently? */
if (selected)
UI_ThemeColor(TH_TEXT_HI);
else
UI_ThemeColor(TH_TEXT);
-
+
/* get name */
acf->name(ale, name);
@@ -3030,7 +3024,7 @@ void ANIM_channel_draw(bAnimContext *ac, bAnimListElem *ale, float yminc, float
/* draw red underline if channel is disabled */
if ((ale->type == ANIMTYPE_FCURVE) && (ale->flag & FCURVE_DISABLED)) {
- // FIXME: replace hardcoded color here, and check on extents!
+ /* FIXME: replace hardcoded color here, and check on extents! */
glColor3f(1.0f, 0.0f, 0.0f);
glLineWidth(2.0);
fdrawline((float)(offset), yminc,
@@ -3038,13 +3032,13 @@ void ANIM_channel_draw(bAnimContext *ac, bAnimListElem *ale, float yminc, float
glLineWidth(1.0);
}
}
-
+
/* step 6) draw backdrops behidn mute+protection toggles + (sliders) ....................... */
/* reset offset - now goes from RHS of panel */
offset = 0;
-
- // TODO: when drawing sliders, make those draw instead of these toggles if not enough space
-
+
+ /* TODO: when drawing sliders, make those draw instead of these toggles if not enough space */
+
if (v2d) {
short draw_sliders = 0;
float color[3];
@@ -3070,9 +3064,9 @@ void ANIM_channel_draw(bAnimContext *ac, bAnimListElem *ale, float yminc, float
break;
}
}
-
+
/* check if there's enough space for the toggles if the sliders are drawn too */
- if (!(draw_sliders) || ((v2d->mask.xmax - v2d->mask.xmin) > ACHANNEL_BUTTON_WIDTH / 2) ) {
+ if (!(draw_sliders) || (BLI_rcti_size_x(&v2d->mask) > ACHANNEL_BUTTON_WIDTH / 2) ) {
/* protect... */
if (acf->has_setting(ac, ale, ACHANNEL_SETTING_PROTECT))
offset += ICON_WIDTH;
@@ -3157,7 +3151,6 @@ static void achannel_setting_rename_done_cb(bContext *C, void *ads_poin, void *U
ads->renameIndex = 0;
/* send notifiers */
- // XXX: right notifier?
WM_event_add_notifier(C, NC_ANIMATION | ND_ANIMCHAN | NA_RENAME, NULL);
}
@@ -3203,7 +3196,7 @@ static void achannel_setting_slider_shapekey_cb(bContext *C, void *key_poin, voi
{
Key *key = (Key *)key_poin;
KeyBlock *kb = (KeyBlock *)kb_poin;
- char *rna_path = key_get_curValue_rnaPath(key, kb);
+ char *rna_path = BKE_keyblock_curval_rnapath_get(key, kb);
ReportList *reports = CTX_wm_reports(C);
Scene *scene = CTX_data_scene(C);
@@ -3441,7 +3434,6 @@ void ANIM_channel_draw_widgets(bContext *C, bAnimContext *ac, bAnimListElem *ale
offset = 0;
// TODO: when drawing sliders, make those draw instead of these toggles if not enough space
-
if (v2d) {
short draw_sliders = 0;
@@ -3464,7 +3456,7 @@ void ANIM_channel_draw_widgets(bContext *C, bAnimContext *ac, bAnimListElem *ale
}
/* check if there's enough space for the toggles if the sliders are drawn too */
- if (!(draw_sliders) || ((v2d->mask.xmax - v2d->mask.xmin) > ACHANNEL_BUTTON_WIDTH / 2) ) {
+ if (!(draw_sliders) || (BLI_rcti_size_x(&v2d->mask) > ACHANNEL_BUTTON_WIDTH / 2) ) {
/* protect... */
if (acf->has_setting(ac, ale, ACHANNEL_SETTING_PROTECT)) {
offset += ICON_WIDTH;
@@ -3511,7 +3503,7 @@ void ANIM_channel_draw_widgets(bContext *C, bAnimContext *ac, bAnimListElem *ale
KeyBlock *kb = (KeyBlock *)ale->data;
Key *key = (Key *)ale->id;
- rna_path = key_get_curValue_rnaPath(key, kb);
+ rna_path = BKE_keyblock_curval_rnapath_get(key, kb);
free_path = 1;
}
diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c
index 5c57407d14e..d35f39a48e0 100644
--- a/source/blender/editors/animation/anim_channels_edit.c
+++ b/source/blender/editors/animation/anim_channels_edit.c
@@ -287,10 +287,10 @@ void ANIM_deselect_anim_channels(bAnimContext *ac, void *data, short datatype, s
{
Base *base = (Base *)ale->data;
Object *ob = base->object;
-
+
ACHANNEL_SET_FLAG(base, sel, SELECT);
ACHANNEL_SET_FLAG(ob, sel, SELECT);
-
+
if (ob->adt) {
ACHANNEL_SET_FLAG(ob, sel, ADT_UI_SELECTED);
}
@@ -360,11 +360,11 @@ void ANIM_deselect_anim_channels(bAnimContext *ac, void *data, short datatype, s
ACHANNEL_SET_FLAG(gpl, sel, GP_LAYER_SELECT);
}
break;
-
+
case ANIMTYPE_MASKLAYER:
{
MaskLayer *masklay = (MaskLayer *)ale->data;
-
+
ACHANNEL_SET_FLAG(masklay, sel, MASK_LAYERFLAG_SELECT);
}
break;
@@ -400,7 +400,7 @@ void ANIM_flush_setting_anim_channels(bAnimContext *ac, ListBase *anim_data, bAn
/* compare data, and type as main way of identifying the channel */
if ((ale->data == ale_setting->data) && (ale->type == ale_setting->type)) {
/* we also have to check the ID, this is assigned to, since a block may have multiple users */
- // TODO: is the owner-data more revealing?
+ /* TODO: is the owner-data more revealing? */
if (ale->id == ale_setting->id) {
match = ale;
break;
@@ -576,13 +576,13 @@ static int animedit_poll_channels_active(bContext *C)
ScrArea *sa = CTX_wm_area(C);
/* channels region test */
- // TODO: could enhance with actually testing if channels region?
+ /* TODO: could enhance with actually testing if channels region? */
if (ELEM(NULL, sa, CTX_wm_region(C)))
return 0;
/* animation editor test */
if (ELEM3(sa->spacetype, SPACE_ACTION, SPACE_IPO, SPACE_NLA) == 0)
return 0;
-
+
return 1;
}
@@ -591,9 +591,9 @@ static int animedit_poll_channels_nla_tweakmode_off(bContext *C)
{
ScrArea *sa = CTX_wm_area(C);
Scene *scene = CTX_data_scene(C);
-
+
/* channels region test */
- // TODO: could enhance with actually testing if channels region?
+ /* TODO: could enhance with actually testing if channels region? */
if (ELEM(NULL, sa, CTX_wm_region(C)))
return 0;
/* animation editor test */
@@ -1314,16 +1314,16 @@ static int animchannels_visibility_set_exec(bContext *C, wmOperator *UNUSED(op))
/* make all the selected channels visible */
filter = (ANIMFILTER_SEL | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
-
+
for (ale = anim_data.first; ale; ale = ale->next) {
/* hack: skip object channels for now, since flushing those will always flush everything, but they are always included */
- // TODO: find out why this is the case, and fix that
+ /* TODO: find out why this is the case, and fix that */
if (ale->type == ANIMTYPE_OBJECT)
continue;
-
+
/* enable the setting */
ANIM_channel_setting_set(&ac, ale, ACHANNEL_SETTING_VISIBLE, ACHANNEL_SETFLAG_ADD);
-
+
/* now, also flush selection status up/down as appropriate */
ANIM_flush_setting_anim_channels(&ac, &all_data, ale, ACHANNEL_SETTING_VISIBLE, 1);
}
@@ -1394,13 +1394,13 @@ static int animchannels_visibility_toggle_exec(bContext *C, wmOperator *UNUSED(o
/* Now set the flags */
for (ale = anim_data.first; ale; ale = ale->next) {
/* hack: skip object channels for now, since flushing those will always flush everything, but they are always included */
- // TODO: find out why this is the case, and fix that
+ /* TODO: find out why this is the case, and fix that */
if (ale->type == ANIMTYPE_OBJECT)
continue;
-
+
/* change the setting */
ANIM_channel_setting_set(&ac, ale, ACHANNEL_SETTING_VISIBLE, vis);
-
+
/* now, also flush selection status up/down as appropriate */
ANIM_flush_setting_anim_channels(&ac, &all_data, ale, ACHANNEL_SETTING_VISIBLE, (vis == ACHANNEL_SETFLAG_ADD));
}
@@ -1734,9 +1734,9 @@ static void ANIM_OT_channels_collapse(wmOperatorType *ot)
static int animchannels_enable_poll(bContext *C)
{
ScrArea *sa = CTX_wm_area(C);
-
+
/* channels region test */
- // TODO: could enhance with actually testing if channels region?
+ /* TODO: could enhance with actually testing if channels region? */
if (ELEM(NULL, sa, CTX_wm_region(C)))
return 0;
@@ -1930,10 +1930,7 @@ static int animchannels_borderselect_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
/* get settings from operator */
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
gesture_mode = RNA_int_get(op->ptr, "gesture_mode");
extend = RNA_boolean_get(op->ptr, "extend");
@@ -2103,17 +2100,17 @@ static int mouse_anim_channels(bAnimContext *ac, float UNUSED(x), int channel_in
BLI_freelistN(&anim_data);
return 0;
}
-
+
/* selectmode -1 is a special case for ActionGroups only, which selects all of the channels underneath it only... */
- // TODO: should this feature be extended to work with other channel types too?
+ /* TODO: should this feature be extended to work with other channel types too? */
if ((selectmode == -1) && (ale->type != ANIMTYPE_GROUP)) {
/* normal channels should not behave normally in this case */
BLI_freelistN(&anim_data);
return 0;
}
-
+
/* action to take depends on what channel we've got */
- // WARNING: must keep this in sync with the equivalent function in nla_channels.c
+ /* WARNING: must keep this in sync with the equivalent function in nla_channels.c */
switch (ale->type) {
case ANIMTYPE_SCENE:
{
@@ -2154,7 +2151,7 @@ static int mouse_anim_channels(bAnimContext *ac, float UNUSED(x), int channel_in
Base *b;
/* deselect all */
- // TODO: should this deselect all other types of channels too?
+ /* TODO: should this deselect all other types of channels too? */
for (b = sce->base.first; b; b = b->next) {
b->flag &= ~SELECT;
b->object->flag = b->flag;
@@ -2242,6 +2239,8 @@ static int mouse_anim_channels(bAnimContext *ac, float UNUSED(x), int channel_in
/* if group is selected now, make group the 'active' one in the visible list */
if (agrp->flag & AGRP_SELECTED)
ANIM_set_active_channel(ac, ac->data, ac->datatype, filter, agrp, ANIMTYPE_GROUP);
+ else
+ ANIM_set_active_channel(ac, ac->data, ac->datatype, filter, NULL, ANIMTYPE_GROUP);
notifierFlags |= (ND_ANIMCHAN | NA_SELECTED);
}
@@ -2319,19 +2318,19 @@ static int mouse_anim_channels(bAnimContext *ac, float UNUSED(x), int channel_in
case ANIMTYPE_MASKDATABLOCK:
{
Mask *mask = (Mask *)ale->data;
-
+
/* toggle expand
* - although the triangle widget already allows this, the whole channel can also be used for this purpose
*/
mask->flag ^= MASK_ANIMF_EXPAND;
-
+
notifierFlags |= (ND_ANIMCHAN | NA_EDITED);
}
break;
case ANIMTYPE_MASKLAYER:
{
MaskLayer *masklay = (MaskLayer *)ale->data;
-
+
/* select/deselect */
if (selectmode == SELECT_INVERT) {
/* invert selection status of this layer only */
@@ -2342,7 +2341,7 @@ static int mouse_anim_channels(bAnimContext *ac, float UNUSED(x), int channel_in
ANIM_deselect_anim_channels(ac, ac->data, ac->datatype, 0, ACHANNEL_SETFLAG_CLEAR);
masklay->flag |= MASK_LAYERFLAG_SELECT;
}
-
+
notifierFlags |= (ND_ANIMCHAN | NA_EDITED);
}
break;
@@ -2407,6 +2406,8 @@ static int animchannels_mouseclick_invoke(bContext *C, wmOperator *op, wmEvent *
static void ANIM_OT_channels_click(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Mouse Click on Channels";
ot->idname = "ANIM_OT_channels_click";
@@ -2419,9 +2420,13 @@ static void ANIM_OT_channels_click(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
- /* id-props */
- RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", ""); // SHIFTKEY
- RNA_def_boolean(ot->srna, "children_only", 0, "Select Children Only", ""); // CTRLKEY|SHIFTKEY
+ /* properties */
+ /* NOTE: don't save settings, otherwise, can end up with some weird behaviour (sticky extend) */
+ prop = RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", ""); // SHIFTKEY
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+
+ prop = RNA_def_boolean(ot->srna, "children_only", 0, "Select Children Only", ""); // CTRLKEY|SHIFTKEY
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
/* ************************************************************************** */
@@ -2438,10 +2443,10 @@ void ED_operatortypes_animchannels(void)
WM_operatortype_append(ANIM_OT_channels_setting_enable);
WM_operatortype_append(ANIM_OT_channels_setting_disable);
WM_operatortype_append(ANIM_OT_channels_setting_toggle);
-
+
WM_operatortype_append(ANIM_OT_channels_delete);
-
- // XXX does this need to be a separate operator?
+
+ /* XXX does this need to be a separate operator? */
WM_operatortype_append(ANIM_OT_channels_editable_toggle);
WM_operatortype_append(ANIM_OT_channels_move);
@@ -2463,11 +2468,11 @@ void ED_keymap_animchannels(wmKeyConfig *keyconf)
/* selection */
/* click-select */
- // XXX for now, only leftmouse....
+ /* XXX for now, only leftmouse.... */
WM_keymap_add_item(keymap, "ANIM_OT_channels_click", LEFTMOUSE, KM_PRESS, 0, 0);
RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_click", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", TRUE);
RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_click", LEFTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "children_only", TRUE);
-
+
/* rename */
WM_keymap_add_item(keymap, "ANIM_OT_channels_rename", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
diff --git a/source/blender/editors/animation/anim_deps.c b/source/blender/editors/animation/anim_deps.c
index 32cbbc79496..98071fafc1e 100644
--- a/source/blender/editors/animation/anim_deps.c
+++ b/source/blender/editors/animation/anim_deps.c
@@ -50,7 +50,6 @@
#include "BKE_global.h"
#include "BKE_node.h"
#include "BKE_sequencer.h"
-#include "BKE_utildefines.h"
#include "RNA_access.h"
@@ -125,7 +124,7 @@ void ANIM_id_update(Scene *UNUSED(scene), ID *id)
*/
/* perform syncing updates for Action Groups */
-static void animchan_sync_group(bAnimContext *UNUSED(ac), bAnimListElem *ale)
+static void animchan_sync_group(bAnimContext *ac, bAnimListElem *ale, bActionGroup **active_agrp)
{
bActionGroup *agrp = (bActionGroup *)ale->data;
ID *owner_id = ale->id;
@@ -145,20 +144,47 @@ static void animchan_sync_group(bAnimContext *UNUSED(ac), bAnimListElem *ale)
*/
if (ob->pose) {
bPoseChannel *pchan = BKE_pose_channel_find_name(ob->pose, agrp->name);
+ bArmature *arm = ob->data;
- /* if one matches, sync the selection status */
if (pchan) {
- if (pchan->bone && pchan->bone->flag & BONE_SELECTED)
+ bActionGroup *bgrp;
+
+ /* if one matches, sync the selection status */
+ if ((pchan->bone) && (pchan->bone->flag & BONE_SELECTED))
agrp->flag |= AGRP_SELECTED;
else
agrp->flag &= ~AGRP_SELECTED;
+
+ /* also sync active group status */
+ if ((ob == ac->obact) && (pchan->bone == arm->act_bone)) {
+ /* if no previous F-Curve has active flag, then we're the first and only one to get it */
+ if (*active_agrp == NULL) {
+ agrp->flag |= AGRP_ACTIVE;
+ *active_agrp = agrp;
+ }
+ else {
+ /* someone else has already taken it - set as not active */
+ agrp->flag &= ~AGRP_ACTIVE;
+ }
+ }
+ else {
+ /* this can't possibly be active now */
+ agrp->flag &= ~AGRP_ACTIVE;
+ }
+
+ /* sync group colors */
+ bgrp = (bActionGroup *)BLI_findlink(&ob->pose->agroups, (pchan->agrp_index - 1));
+ if (bgrp) {
+ agrp->customCol = bgrp->customCol;
+ action_group_colors_sync(agrp, bgrp);
+ }
}
}
}
}
/* perform syncing updates for F-Curves */
-static void animchan_sync_fcurve(bAnimContext *UNUSED(ac), bAnimListElem *ale)
+static void animchan_sync_fcurve(bAnimContext *ac, bAnimListElem *ale, FCurve **active_fcurve)
{
FCurve *fcu = (FCurve *)ale->data;
ID *owner_id = ale->id;
@@ -168,26 +194,47 @@ static void animchan_sync_fcurve(bAnimContext *UNUSED(ac), bAnimListElem *ale)
*/
if (ELEM3(NULL, fcu, fcu->rna_path, owner_id))
return;
-
+
if (GS(owner_id->name) == ID_OB) {
Object *ob = (Object *)owner_id;
/* only affect if F-Curve involves pose.bones */
if ((fcu->rna_path) && strstr(fcu->rna_path, "pose.bones")) {
+ bArmature *arm = (bArmature *)ob->data;
bPoseChannel *pchan;
char *bone_name;
/* get bone-name, and check if this bone is selected */
- bone_name = BLI_getQuotedStr(fcu->rna_path, "pose.bones[");
+ bone_name = BLI_str_quoted_substrN(fcu->rna_path, "pose.bones[");
pchan = BKE_pose_channel_find_name(ob->pose, bone_name);
if (bone_name) MEM_freeN(bone_name);
/* F-Curve selection depends on whether the bone is selected */
if ((pchan) && (pchan->bone)) {
+ /* F-Curve selection */
if (pchan->bone->flag & BONE_SELECTED)
fcu->flag |= FCURVE_SELECTED;
else
fcu->flag &= ~FCURVE_SELECTED;
+
+ /* Active F-Curve - it should be the first one for this bone on the
+ * active object to be considered as active
+ */
+ if ((ob == ac->obact) && (pchan->bone == arm->act_bone)) {
+ /* if no previous F-Curve has active flag, then we're the first and only one to get it */
+ if (*active_fcurve == NULL) {
+ fcu->flag |= FCURVE_ACTIVE;
+ *active_fcurve = fcu;
+ }
+ else {
+ /* someone else has already taken it - set as not active */
+ fcu->flag &= ~FCURVE_ACTIVE;
+ }
+ }
+ else {
+ /* this can't possibly be active now */
+ fcu->flag &= ~FCURVE_ACTIVE;
+ }
}
}
}
@@ -201,11 +248,11 @@ static void animchan_sync_fcurve(bAnimContext *UNUSED(ac), bAnimListElem *ale)
char *seq_name;
/* get strip name, and check if this strip is selected */
- seq_name = BLI_getQuotedStr(fcu->rna_path, "sequences_all[");
- seq = get_seq_by_name(ed->seqbasep, seq_name, FALSE);
+ seq_name = BLI_str_quoted_substrN(fcu->rna_path, "sequences_all[");
+ seq = BKE_sequence_get_by_name(ed->seqbasep, seq_name, FALSE);
if (seq_name) MEM_freeN(seq_name);
- /* can only add this F-Curve if it is selected */
+ /* update selection status */
if (seq) {
if (seq->flag & SELECT)
fcu->flag |= FCURVE_SELECTED;
@@ -223,16 +270,35 @@ static void animchan_sync_fcurve(bAnimContext *UNUSED(ac), bAnimListElem *ale)
char *node_name;
/* get strip name, and check if this strip is selected */
- node_name = BLI_getQuotedStr(fcu->rna_path, "nodes[");
+ node_name = BLI_str_quoted_substrN(fcu->rna_path, "nodes[");
node = nodeFindNodebyName(ntree, node_name);
if (node_name) MEM_freeN(node_name);
- /* can only add this F-Curve if it is selected */
+ /* update selection/active status */
if (node) {
+ /* update selection status */
if (node->flag & NODE_SELECT)
fcu->flag |= FCURVE_SELECTED;
else
fcu->flag &= ~FCURVE_SELECTED;
+
+ /* update active status */
+ /* XXX: this may interfere with setting bones as active if both exist at once;
+ * then again, if that's the case, production setups aren't likely to be animating
+ * nodes while working with bones?
+ */
+ if (node->flag & NODE_ACTIVE) {
+ if (*active_fcurve == NULL) {
+ fcu->flag |= FCURVE_ACTIVE;
+ *active_fcurve = fcu;
+ }
+ else {
+ fcu->flag &= ~FCURVE_ACTIVE;
+ }
+ }
+ else {
+ fcu->flag &= ~FCURVE_ACTIVE;
+ }
}
}
}
@@ -248,25 +314,29 @@ void ANIM_sync_animchannels_to_data(const bContext *C)
bAnimListElem *ale;
int filter;
+ bActionGroup *active_agrp = NULL;
+ FCurve *active_fcurve = NULL;
+
/* get animation context info for filtering the channels */
- // TODO: check on whether we need to set the area specially instead, since active area might not be ok?
if (ANIM_animdata_get_context(C, &ac) == 0)
return;
/* filter data */
- /* NOTE: we want all channels, since we want to be able to set selection status on some of them even when collapsed */
- filter = ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_CHANNELS;
+ /* NOTE: we want all channels, since we want to be able to set selection status on some of them even when collapsed
+ * However, don't include duplicates so that selection statuses don't override each other
+ */
+ filter = ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_CHANNELS | ANIMFILTER_NODUPLIS;
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
/* flush settings as appropriate depending on the types of the channels */
for (ale = anim_data.first; ale; ale = ale->next) {
switch (ale->type) {
case ANIMTYPE_GROUP:
- animchan_sync_group(&ac, ale);
+ animchan_sync_group(&ac, ale, &active_agrp);
break;
case ANIMTYPE_FCURVE:
- animchan_sync_fcurve(&ac, ale);
+ animchan_sync_fcurve(&ac, ale, &active_fcurve);
break;
}
}
diff --git a/source/blender/editors/animation/anim_draw.c b/source/blender/editors/animation/anim_draw.c
index ddc4f4d943c..620f5de9db7 100644
--- a/source/blender/editors/animation/anim_draw.c
+++ b/source/blender/editors/animation/anim_draw.c
@@ -100,7 +100,7 @@ void ANIM_timecode_string_from_frame(char *str, Scene *scene, int power, short t
}
else {
/* seconds (with pixel offset rounding) */
- seconds = (int)floor(cfra + 0.375f);
+ seconds = (int)floor(cfra + GLA_PIXEL_OFS);
}
switch (U.timecode_style) {
@@ -150,7 +150,7 @@ void ANIM_timecode_string_from_frame(char *str, Scene *scene, int power, short t
/* only show the original seconds display */
/* round to whole numbers if power is >= 1 (i.e. scale is coarse) */
if (power <= 0) sprintf(str, "%.*f", 1 - power, raw_seconds);
- else sprintf(str, "%d", (int)floor(raw_seconds + 0.375f));
+ else sprintf(str, "%d", (int)floor(raw_seconds + GLA_PIXEL_OFS));
}
break;
@@ -166,7 +166,7 @@ void ANIM_timecode_string_from_frame(char *str, Scene *scene, int power, short t
else {
/* round to whole numbers if power is >= 1 (i.e. scale is coarse) */
if (power <= 0) sprintf(str, "%.*f", 1 - power, cfra);
- else sprintf(str, "%d", (int)floor(cfra + 0.375f));
+ else sprintf(str, "%d", (int)floor(cfra + GLA_PIXEL_OFS));
}
}
@@ -283,7 +283,7 @@ AnimData *ANIM_nla_mapping_get(bAnimContext *ac, bAnimListElem *ale)
return NULL;
/* abort if rendering - we may get some race condition issues... */
- if (G.rendering) return NULL;
+ if (G.is_rendering) return NULL;
/* handling depends on the type of animation-context we've got */
if (ale)
@@ -381,11 +381,11 @@ float ANIM_unit_mapping_get_factor(Scene *scene, ID *id, FCurve *fcu, short rest
return RAD2DEGF(1.0f); /* radians to degrees */
}
}
-
- // TODO: other rotation types here as necessary
+
+ /* TODO: other rotation types here as necessary */
}
}
-
+
/* no mapping needs to occur... */
return 1.0f;
}
@@ -422,7 +422,7 @@ void ANIM_unit_mapping_apply_fcurve(Scene *scene, ID *id, FCurve *fcu, short fla
float fac;
/* abort if rendering - we may get some race condition issues... */
- if (G.rendering) return;
+ if (G.is_rendering) return;
/* calculate mapping factor, and abort if nothing to change */
fac = ANIM_unit_mapping_get_factor(scene, id, fcu, (flag & ANIM_UNITCONV_RESTORE));
diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c
index a6d1ac64bbe..8b0593d48ac 100644
--- a/source/blender/editors/animation/anim_filter.c
+++ b/source/blender/editors/animation/anim_filter.c
@@ -89,7 +89,6 @@
#include "BKE_node.h"
#include "BKE_mask.h"
#include "BKE_sequencer.h"
-#include "BKE_utildefines.h"
#include "ED_anim_api.h"
#include "ED_markers.h"
@@ -100,7 +99,7 @@
/* ----------- Private Stuff - Action Editor ------------- */
/* Get shapekey data being edited (for Action Editor -> ShapeKey mode) */
-/* Note: there's a similar function in key.c (ob_get_key) */
+/* Note: there's a similar function in key.c (BKE_key_from_object) */
static Key *actedit_get_shapekeys(bAnimContext *ac)
{
Scene *scene = ac->scene;
@@ -115,7 +114,7 @@ static Key *actedit_get_shapekeys(bAnimContext *ac)
//if (saction->pin) return NULL;
/* shapekey data is stored with geometry data */
- key = ob_get_key(ob);
+ key = BKE_key_from_object(ob);
if (key) {
if (key->type == KEY_RELATIVE)
@@ -164,8 +163,8 @@ static short actedit_get_context(bAnimContext *ac, SpaceAction *saction)
ac->mode = saction->mode;
return 1;
-
- case SACTCONT_GPENCIL: /* Grease Pencil */ // XXX review how this mode is handled...
+
+ case SACTCONT_GPENCIL: /* Grease Pencil */ /* XXX review how this mode is handled... */
/* update scene-pointer (no need to check for pinning yet, as not implemented) */
saction->ads.source = (ID *)ac->scene;
@@ -175,19 +174,19 @@ static short actedit_get_context(bAnimContext *ac, SpaceAction *saction)
ac->mode = saction->mode;
return 1;
- case SACTCONT_MASK: /* Grease Pencil */ // XXX review how this mode is handled...
- /* update scene-pointer (no need to check for pinning yet, as not implemented) */
+ case SACTCONT_MASK: /* Mask */ /* XXX review how this mode is handled... */
{
- // TODO, other methods to get the mask
+ /* TODO, other methods to get the mask */
// Sequence *seq = BKE_sequencer_active_get(ac->scene);
//MovieClip *clip = ac->scene->clip;
// struct Mask *mask = seq ? seq->mask : NULL;
-
+
+ /* update scene-pointer (no need to check for pinning yet, as not implemented) */
saction->ads.source = (ID *)ac->scene;
-
+
ac->datatype = ANIMCONT_MASK;
ac->data = &saction->ads;
-
+
ac->mode = saction->mode;
return 1;
}
@@ -417,16 +416,16 @@ short ANIM_animdata_get_context(const bContext *C, bAnimContext *ac)
*
* For this to work correctly, a standard set of data needs to be available within the scope that this
* gets called in:
- * - ListBase anim_data;
- * - bDopeSheet *ads;
- * - bAnimListElem *ale;
+ * - ListBase anim_data;
+ * - bDopeSheet *ads;
+ * - bAnimListElem *ale;
* - size_t items;
*
* - id: ID block which should have an AnimData pointer following it immediately, to use
- * - adtOk: line or block of code to execute for AnimData-blocks case (usually ANIMDATA_ADD_ANIMDATA)
- * - nlaOk: line or block of code to execute for NLA tracks+strips case
- * - driversOk: line or block of code to execute for Drivers case
- * - keysOk: line or block of code for Keyframes case
+ * - adtOk: line or block of code to execute for AnimData-blocks case (usually ANIMDATA_ADD_ANIMDATA)
+ * - nlaOk: line or block of code to execute for NLA tracks+strips case
+ * - driversOk: line or block of code to execute for Drivers case
+ * - keysOk: line or block of code for Keyframes case
*
* The checks for the various cases are as follows:
* 0) top level: checks for animdata and also that all the F-Curves for the block will be visible
@@ -689,12 +688,12 @@ static bAnimListElem *make_new_animlistelem(void *data, short datatype, ID *owne
{
Speaker *spk = (Speaker *)data;
AnimData *adt = spk->adt;
-
+
ale->flag = FILTER_SPK_OBJD(spk);
-
+
ale->key_data = (adt) ? adt->action : NULL;
ale->datatype = ALE_ACT;
-
+
ale->adt = BKE_animdata_from_id(data);
}
break;
@@ -800,7 +799,7 @@ static bAnimListElem *make_new_animlistelem(void *data, short datatype, ID *owne
/* the corresponding keyframes are from the animdata */
if (ale->adt && ale->adt->action) {
bAction *act = ale->adt->action;
- char *rna_path = key_get_curValue_rnaPath(key, kb);
+ char *rna_path = BKE_keyblock_curval_rnapath_get(key, kb);
/* try to find the F-Curve which corresponds to this exactly,
* then free the MEM_alloc'd string
@@ -825,18 +824,18 @@ static bAnimListElem *make_new_animlistelem(void *data, short datatype, ID *owne
ale->datatype = ALE_GPFRAME;
}
break;
-
+
case ANIMTYPE_MASKLAYER:
{
MaskLayer *masklay = (MaskLayer *)data;
-
+
ale->flag = masklay->flag;
-
+
ale->key_data = NULL;
ale->datatype = ALE_MASKLAY;
}
break;
-
+
case ANIMTYPE_NLATRACK:
{
NlaTrack *nlt = (NlaTrack *)data;
@@ -880,7 +879,7 @@ static short skip_fcurve_selected_data(bDopeSheet *ads, FCurve *fcu, ID *owner_i
char *bone_name;
/* get bone-name, and check if this bone is selected */
- bone_name = BLI_getQuotedStr(fcu->rna_path, "pose.bones[");
+ bone_name = BLI_str_quoted_substrN(fcu->rna_path, "pose.bones[");
pchan = BKE_pose_channel_find_name(ob->pose, bone_name);
if (bone_name) MEM_freeN(bone_name);
@@ -916,8 +915,8 @@ static short skip_fcurve_selected_data(bDopeSheet *ads, FCurve *fcu, ID *owner_i
char *seq_name;
/* get strip name, and check if this strip is selected */
- seq_name = BLI_getQuotedStr(fcu->rna_path, "sequences_all[");
- seq = get_seq_by_name(ed->seqbasep, seq_name, FALSE);
+ seq_name = BLI_str_quoted_substrN(fcu->rna_path, "sequences_all[");
+ seq = BKE_sequence_get_by_name(ed->seqbasep, seq_name, FALSE);
if (seq_name) MEM_freeN(seq_name);
/* can only add this F-Curve if it is selected */
@@ -936,7 +935,7 @@ static short skip_fcurve_selected_data(bDopeSheet *ads, FCurve *fcu, ID *owner_i
char *node_name;
/* get strip name, and check if this strip is selected */
- node_name = BLI_getQuotedStr(fcu->rna_path, "nodes[");
+ node_name = BLI_str_quoted_substrN(fcu->rna_path, "nodes[");
node = nodeFindNodebyName(ntree, node_name);
if (node_name) MEM_freeN(node_name);
@@ -1139,7 +1138,6 @@ static size_t animfilter_action(bAnimContext *ac, ListBase *anim_data, bDopeShee
/* don't include anything from this action if it is linked in from another file,
* and we're getting stuff for editing...
*/
- // TODO: need a way of tagging other channels that may also be affected...
if ((filter_mode & ANIMFILTER_FOREDIT) && (act->id.lib))
return 0;
@@ -1241,11 +1239,11 @@ static size_t animfilter_block_data(bAnimContext *ac, ListBase *anim_data, bDope
{
AnimData *adt = BKE_animdata_from_id(id);
size_t items = 0;
-
+
/* image object datablocks have no anim-data so check for NULL */
if (adt) {
IdAdtTemplate *iat = (IdAdtTemplate *)id;
-
+
/* NOTE: this macro is used instead of inlining the logic here, since this sort of filtering is still needed
* in a few places in he rest of the code still - notably for the few cases where special mode-based
* different types of data expanders are required.
@@ -1266,7 +1264,7 @@ static size_t animfilter_block_data(bAnimContext *ac, ListBase *anim_data, bDope
}
);
}
-
+
return items;
}
@@ -1284,7 +1282,6 @@ static size_t animdata_filter_shapekey(bAnimContext *ac, ListBase *anim_data, Ke
/* loop through the channels adding ShapeKeys as appropriate */
for (kb = key->block.first; kb; kb = kb->next) {
/* skip the first one, since that's the non-animatable basis */
- // XXX maybe in future this may become handy?
if (kb == key->block.first) continue;
/* only work with this channel and its subchannels if it is editable */
@@ -1316,6 +1313,7 @@ static size_t animdata_filter_shapekey(bAnimContext *ac, ListBase *anim_data, Ke
return items;
}
+/* Helper for Grease Pencil - layers within a datablock */
static size_t animdata_filter_gpencil_data(ListBase *anim_data, bGPdata *gpd, int filter_mode)
{
bGPDlayer *gpl;
@@ -1382,6 +1380,7 @@ static size_t animdata_filter_gpencil(ListBase *anim_data, void *UNUSED(data), i
return items;
}
+/* Helper for Mask Editing - mask layers */
static size_t animdata_filter_mask_data(ListBase *anim_data, Mask *mask, const int filter_mode)
{
MaskLayer *masklay_act = BKE_mask_layer_active(mask);
@@ -1393,53 +1392,42 @@ static size_t animdata_filter_mask_data(ListBase *anim_data, Mask *mask, const i
/* only if selected */
if (ANIMCHANNEL_SELOK(SEL_MASKLAY(masklay)) ) {
/* only if editable */
-// if (!(filter_mode & ANIMFILTER_FOREDIT) || EDITABLE_GPL(gpl)) {
+ if (!(filter_mode & ANIMFILTER_FOREDIT) || EDITABLE_MASK(masklay)) {
/* active... */
if (!(filter_mode & ANIMFILTER_ACTIVE) || (masklay_act == masklay)) {
/* add to list */
ANIMCHANNEL_NEW_CHANNEL(masklay, ANIMTYPE_MASKLAYER, mask);
-
-
-// if (filter_mode & ANIMFILTER_TMP_PEEK)
-// return 1;
-// else {
-// bAnimListElem *ale = make_new_animlistelem(masklay, channel_type, (ID *)owner_id);
-// if (ale) {
-// BLI_addtail(anim_data, ale);
-// items ++;
-// }
-// }
-
}
-// }
+ }
}
}
return items;
}
+/* Grab all mask data */
static size_t animdata_filter_mask(ListBase *anim_data, void *UNUSED(data), int filter_mode)
{
Mask *mask;
size_t items = 0;
-
- /* for now, grab grease pencil datablocks directly from main */
+
+ /* for now, grab mask datablocks directly from main */
// XXX: this is not good...
for (mask = G.main->mask.first; mask; mask = mask->id.next) {
ListBase tmp_data = {NULL, NULL};
size_t tmp_items = 0;
-
- /* only show if gpd is used by something... */
+
+ /* only show if mask is used by something... */
if (ID_REAL_USERS(mask) < 1)
continue;
-
- /* add gpencil animation channels */
+
+ /* add mask animation channels */
BEGIN_ANIMFILTER_SUBCHANNELS(EXPANDED_MASK(mask))
{
tmp_items += animdata_filter_mask_data(&tmp_data, mask, filter_mode);
}
END_ANIMFILTER_SUBCHANNELS;
-
+
/* did we find anything? */
if (tmp_items) {
/* include data-expand widget first */
@@ -1447,14 +1435,14 @@ static size_t animdata_filter_mask(ListBase *anim_data, void *UNUSED(data), int
/* add gpd as channel too (if for drawing, and it has layers) */
ANIMCHANNEL_NEW_CHANNEL(mask, ANIMTYPE_MASKDATABLOCK, NULL);
}
-
+
/* now add the list of collected channels */
BLI_movelisttolist(anim_data, &tmp_data);
BLI_assert((tmp_data.first == tmp_data.last) && (tmp_data.first == NULL));
items += tmp_items;
}
}
-
+
/* return the number of items added to the list */
return items;
}
@@ -1607,7 +1595,6 @@ static size_t animdata_filter_ds_material(bAnimContext *ac, ListBase *anim_data,
/* did we find anything? */
if (tmp_items) {
/* include material-expand widget first */
- // hmm... do we need to store the index of this material in the array anywhere?
if (filter_mode & ANIMFILTER_LIST_CHANNELS) {
/* check if filtering by active status */
if (ANIMCHANNEL_ACTIVEOK(ma)) {
@@ -1815,11 +1802,18 @@ static size_t animdata_filter_ds_obdata(bAnimContext *ac, ListBase *anim_data, b
/* sub-data filtering... */
switch (ob->type) {
- case OB_LAMP: /* lamp - textures */
+ case OB_LAMP: /* lamp - textures + nodetree */
{
+ Lamp *la = ob->data;
+ bNodeTree *ntree = la->nodetree;
+
+ /* nodetree */
+ if ((ntree) && !(ads->filterflag & ADS_FILTER_NONTREE))
+ tmp_items += animdata_filter_ds_nodetree(ac, &tmp_data, ads, &la->id, ntree, filter_mode);
+
/* textures */
if (!(ads->filterflag & ADS_FILTER_NOTEX))
- tmp_items += animdata_filter_ds_textures(ac, &tmp_data, ads, ob->data, filter_mode);
+ tmp_items += animdata_filter_ds_textures(ac, &tmp_data, ads, &la->id, filter_mode);
}
break;
}
@@ -1890,9 +1884,9 @@ static size_t animdata_filter_ds_obanim(bAnimContext *ac, ListBase *anim_data, b
AnimData *adt = ob->adt;
short type = 0, expanded = 1;
void *cdata = NULL;
-
+
/* determine the type of expander channels to use */
- // this is the best way to do this for now...
+ /* this is the best way to do this for now... */
ANIMDATA_FILTER_CASES(ob,
{ /* AnimData - no channel, but consider data */ },
{ /* NLA - no channel, but consider data */ },
@@ -1946,7 +1940,7 @@ static size_t animdata_filter_dopesheet_ob(bAnimContext *ac, ListBase *anim_data
/* filter data contained under object first */
BEGIN_ANIMFILTER_SUBCHANNELS(EXPANDED_OBJC(ob))
{
- Key *key = ob_get_key(ob);
+ Key *key = BKE_key_from_object(ob);
/* object-level animation */
if ((ob->adt) && !(ads->filterflag & ADS_FILTER_NOOBJ)) {
@@ -2122,11 +2116,11 @@ static size_t animdata_filter_dopesheet_scene(bAnimContext *ac, ListBase *anim_d
if ((ntree) && !(ads->filterflag & ADS_FILTER_NONTREE)) {
tmp_items += animdata_filter_ds_nodetree(ac, &tmp_data, ads, (ID *)sce, ntree, filter_mode);
}
-
- // TODO: one day, when sequencer becomes its own datatype, perhaps it should be included here
+
+ /* TODO: one day, when sequencer becomes its own datatype, perhaps it should be included here */
}
END_ANIMFILTER_SUBCHANNELS;
-
+
/* if we collected some channels, add these to the new list... */
if (tmp_items) {
/* firstly add object expander if required */
@@ -2280,7 +2274,7 @@ static size_t animdata_filter_animchan(bAnimContext *ac, ListBase *anim_data, bD
size_t items = 0;
/* data to filter depends on channel type */
- // XXX: only common channel-types have been handled for now
+ /* NOTE: only common channel-types have been handled for now. More can be added as necessary */
switch (channel->type) {
case ANIMTYPE_SUMMARY:
items += animdata_filter_dopesheet(ac, anim_data, ads, filter_mode);
@@ -2293,6 +2287,10 @@ static size_t animdata_filter_animchan(bAnimContext *ac, ListBase *anim_data, bD
case ANIMTYPE_OBJECT:
items += animdata_filter_dopesheet_ob(ac, anim_data, ads, channel->data, filter_mode);
break;
+
+ default:
+ printf("ERROR: Unsupported channel type (%d) in animdata_filter_animchan()\n", channel->type);
+ break;
}
return items;
@@ -2386,7 +2384,7 @@ size_t ANIM_animdata_filter(bAnimContext *ac, ListBase *anim_data, int filter_mo
items += animfilter_action(ac, anim_data, ads, data, filter_mode, (ID *)obact);
}
break;
-
+
case ANIMCONT_SHAPEKEY: /* 'ShapeKey Editor' */
{
/* the check for the DopeSheet summary is included here since the summary works here too */
@@ -2401,14 +2399,14 @@ size_t ANIM_animdata_filter(bAnimContext *ac, ListBase *anim_data, int filter_mo
items = animdata_filter_gpencil(anim_data, data, filter_mode);
}
break;
-
+
case ANIMCONT_MASK:
{
if (animdata_filter_dopesheet_summary(ac, anim_data, filter_mode, &items))
items = animdata_filter_mask(anim_data, data, filter_mode);
}
break;
-
+
case ANIMCONT_DOPESHEET: /* 'DopeSheet Editor' */
{
/* the DopeSheet editor is the primary place where the DopeSheet summaries are useful */
@@ -2417,9 +2415,9 @@ size_t ANIM_animdata_filter(bAnimContext *ac, ListBase *anim_data, int filter_mo
}
break;
- case ANIMCONT_FCURVES: /* Graph Editor -> FCurves/Animation Editing */
+ case ANIMCONT_FCURVES: /* Graph Editor -> F-Curves/Animation Editing */
case ANIMCONT_DRIVERS: /* Graph Editor -> Drivers Editing */
- case ANIMCONT_NLA: /* NLA Editor */
+ case ANIMCONT_NLA: /* NLA Editor */
{
/* all of these editors use the basic DopeSheet data for filtering options, but don't have all the same features */
items = animdata_filter_dopesheet(ac, anim_data, data, filter_mode);
diff --git a/source/blender/editors/animation/anim_intern.h b/source/blender/editors/animation/anim_intern.h
index 7d1209a3033..bc07bf091de 100644
--- a/source/blender/editors/animation/anim_intern.h
+++ b/source/blender/editors/animation/anim_intern.h
@@ -50,11 +50,14 @@ void ANIM_OT_keyframe_delete(struct wmOperatorType *ot);
* required for each space.
*/
void ANIM_OT_keyframe_insert_menu(struct wmOperatorType *ot);
+
void ANIM_OT_keyframe_delete_v3d(struct wmOperatorType *ot);
+void ANIM_OT_keyframe_clear_v3d(struct wmOperatorType *ot);
/* Keyframe managment operators for UI buttons (RMB menu). */
void ANIM_OT_keyframe_insert_button(struct wmOperatorType *ot);
void ANIM_OT_keyframe_delete_button(struct wmOperatorType *ot);
+void ANIM_OT_keyframe_clear_button(struct wmOperatorType *ot);
/* .......... */
diff --git a/source/blender/editors/animation/anim_ipo_utils.c b/source/blender/editors/animation/anim_ipo_utils.c
index a73651d7664..5295950546d 100644
--- a/source/blender/editors/animation/anim_ipo_utils.c
+++ b/source/blender/editors/animation/anim_ipo_utils.c
@@ -104,8 +104,8 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu)
*/
if (strstr(fcu->rna_path, "bones") && strstr(fcu->rna_path, "constraints")) {
/* perform string 'chopping' to get "Bone Name : Constraint Name" */
- char *pchanName = BLI_getQuotedStr(fcu->rna_path, "bones[");
- char *constName = BLI_getQuotedStr(fcu->rna_path, "constraints[");
+ char *pchanName = BLI_str_quoted_substrN(fcu->rna_path, "bones[");
+ char *constName = BLI_str_quoted_substrN(fcu->rna_path, "constraints[");
/* assemble the string to display in the UI... */
structname = BLI_sprintfN("%s : %s", pchanName, constName);
@@ -143,15 +143,15 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu)
/* no array index */
arrayname = "";
}
-
+
/* putting this all together into the buffer */
- // XXX we need to check for invalid names...
- // XXX the name length limit needs to be passed in or as some define
+ /* XXX we need to check for invalid names...
+ * XXX the name length limit needs to be passed in or as some define */
if (structname)
- BLI_snprintf(name, 256, "%s%s (%s)", arrayname, propname, structname);
+ BLI_snprintf(name, 256, "%s%s (%s)", arrayname, propname, structname);
else
- BLI_snprintf(name, 256, "%s%s", arrayname, propname);
-
+ BLI_snprintf(name, 256, "%s%s", arrayname, propname);
+
/* free temp name if nameprop is set */
if (free_structname)
MEM_freeN((void *)structname);
@@ -170,11 +170,11 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu)
else {
/* invalid path */
BLI_snprintf(name, 256, "\"%s[%d]\"", fcu->rna_path, fcu->array_index);
-
+
/* icon for this should be the icon for the base ID */
- // TODO: or should we just use the error icon?
+ /* TODO: or should we just use the error icon? */
icon = RNA_struct_ui_icon(id_ptr.type);
-
+
/* tag F-Curve as disabled - as not usable path */
fcu->flag |= FCURVE_DISABLED;
}
diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c
index ea344e7e332..895aaec29da 100644
--- a/source/blender/editors/animation/anim_markers.c
+++ b/source/blender/editors/animation/anim_markers.c
@@ -354,7 +354,7 @@ static void draw_marker(View2D *v2d, TimeMarker *marker, int cfra, int flag)
xpos = marker->frame;
/* no time correction for framelen! space is drawn with old values */
- ypixels = v2d->mask.ymax - v2d->mask.ymin;
+ ypixels = BLI_rcti_size_y(&v2d->mask);
UI_view2d_getscale(v2d, &xscale, &yscale);
glScalef(1.0f / xscale, 1.0f, 1.0f);
@@ -504,7 +504,7 @@ static int ed_markers_poll_markers_exist(bContext *C)
* "custom"/third-tier invoke() callback supplied as the last arg (which would normally
* be the operator's invoke() callback elsewhere)
*
- * < invoke_func: (fn(bContext*, wmOperator*, wmEvent*)=int) "standard" invoke function
+ * < invoke_func: (fn(bContext *, wmOperator *, wmEvent *)=int) "standard" invoke function
* that operator would otherwise have used. If NULL, the operator's standard
* exec() callback will be called instead in the appropriate places.
*/
@@ -773,8 +773,7 @@ static int ed_marker_move_modal(bContext *C, wmOperator *op, wmEvent *evt)
if (hasNumInput(&mm->num))
break;
- dx = v2d->mask.xmax - v2d->mask.xmin;
- dx = (v2d->cur.xmax - v2d->cur.xmin) / dx;
+ dx = BLI_rctf_size_x(&v2d->cur) / BLI_rcti_size_x(&v2d->mask);
if (evt->x != mm->evtx) { /* XXX maybe init for first time */
int a, offs, totmark = 0;
@@ -848,14 +847,14 @@ static int ed_marker_move_modal(bContext *C, wmOperator *op, wmEvent *evt)
}
if (evt->val == KM_PRESS) {
- float vec[3];
- char str_tx[256];
+ float vec;
+ char str_tx[NUM_STR_REP_LEN];
if (handleNumInput(&mm->num, evt)) {
- applyNumInput(&mm->num, vec);
+ applyNumInput(&mm->num, &vec);
outputNumInput(&mm->num, str_tx);
- RNA_int_set(op->ptr, "frames", vec[0]);
+ RNA_int_set(op->ptr, "frames", vec);
ed_marker_move_apply(op);
// ed_marker_header_update(C, op, str, (int)vec[0]);
// strcat(str, str_tx);
@@ -1020,6 +1019,7 @@ static void select_timeline_marker_frame(ListBase *markers, int frame, unsigned
static int ed_marker_select(bContext *C, wmEvent *evt, int extend, int camera)
{
ListBase *markers = ED_context_get_markers(C);
+ ARegion *ar = CTX_wm_region(C);
View2D *v2d = UI_view2d_fromcontext(C);
float viewx;
int x, y, cfra;
@@ -1027,8 +1027,8 @@ static int ed_marker_select(bContext *C, wmEvent *evt, int extend, int camera)
if (markers == NULL)
return OPERATOR_PASS_THROUGH;
- x = evt->x - CTX_wm_region(C)->winrct.xmin;
- y = evt->y - CTX_wm_region(C)->winrct.ymin;
+ x = evt->x - ar->winrct.xmin;
+ y = evt->y - ar->winrct.ymin;
UI_view2d_region_to_view(v2d, x, y, &viewx, NULL);
@@ -1146,14 +1146,13 @@ static int ed_marker_border_select_exec(bContext *C, wmOperator *op)
TimeMarker *marker;
float xminf, xmaxf, yminf, ymaxf;
int gesture_mode = RNA_int_get(op->ptr, "gesture_mode");
- int xmin = RNA_int_get(op->ptr, "xmin");
- int xmax = RNA_int_get(op->ptr, "xmax");
- int ymin = RNA_int_get(op->ptr, "ymin");
- int ymax = RNA_int_get(op->ptr, "ymax");
int extend = RNA_boolean_get(op->ptr, "extend");
+ rcti rect;
- UI_view2d_region_to_view(v2d, xmin, ymin, &xminf, &yminf);
- UI_view2d_region_to_view(v2d, xmax, ymax, &xmaxf, &ymaxf);
+ WM_operator_properties_border_to_rcti(op, &rect);
+
+ UI_view2d_region_to_view(v2d, rect.xmin, rect.ymin, &xminf, &yminf);
+ UI_view2d_region_to_view(v2d, rect.xmax, rect.ymax, &xmaxf, &ymaxf);
if (markers == NULL)
return 0;
diff --git a/source/blender/editors/animation/anim_ops.c b/source/blender/editors/animation/anim_ops.c
index 119df33dd91..f2711ec3bb5 100644
--- a/source/blender/editors/animation/anim_ops.c
+++ b/source/blender/editors/animation/anim_ops.c
@@ -65,7 +65,7 @@ static int change_frame_poll(bContext *C)
ScrArea *curarea = CTX_wm_area(C);
/* XXX temp? prevent changes during render */
- if (G.rendering) return 0;
+ if (G.is_rendering) return 0;
/* as long as there is an active area, and it isn't a Graph Editor
* (since the Graph Editor has its own version which does extra stuff),
@@ -185,15 +185,14 @@ static int previewrange_define_exec(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
ARegion *ar = CTX_wm_region(C);
float sfra, efra;
- int xmin, xmax;
+ rcti rect;
/* get min/max values from border select rect (already in region coordinates, not screen) */
- xmin = RNA_int_get(op->ptr, "xmin");
- xmax = RNA_int_get(op->ptr, "xmax");
+ WM_operator_properties_border_to_rcti(op, &rect);
/* convert min/max values to frames (i.e. region to 'tot' rect) */
- UI_view2d_region_to_view(&ar->v2d, xmin, 0, &sfra, NULL);
- UI_view2d_region_to_view(&ar->v2d, xmax, 0, &efra, NULL);
+ UI_view2d_region_to_view(&ar->v2d, rect.xmin, 0, &sfra, NULL);
+ UI_view2d_region_to_view(&ar->v2d, rect.xmax, 0, &efra, NULL);
/* set start/end frames for preview-range
* - must clamp within allowable limits
@@ -232,12 +231,11 @@ static void ANIM_OT_previewrange_set(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* rna */
- /* used to define frame range */
- RNA_def_int(ot->srna, "xmin", 0, INT_MIN, INT_MAX, "X Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "xmax", 0, INT_MIN, INT_MAX, "X Max", "", INT_MIN, INT_MAX);
- /* these are not used, but are needed by borderselect gesture operator stuff */
- RNA_def_int(ot->srna, "ymin", 0, INT_MIN, INT_MAX, "Y Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, "Y Max", "", INT_MIN, INT_MAX);
+ /* used to define frame range.
+ *
+ * note: border Y values are not used,
+ * but are needed by borderselect gesture operator stuff */
+ WM_operator_properties_border(ot);
}
/* ****************** clear preview range operator ****************************/
@@ -292,8 +290,10 @@ void ED_operatortypes_anim(void)
WM_operatortype_append(ANIM_OT_keyframe_delete);
WM_operatortype_append(ANIM_OT_keyframe_insert_menu);
WM_operatortype_append(ANIM_OT_keyframe_delete_v3d);
+ WM_operatortype_append(ANIM_OT_keyframe_clear_v3d);
WM_operatortype_append(ANIM_OT_keyframe_insert_button);
WM_operatortype_append(ANIM_OT_keyframe_delete_button);
+ WM_operatortype_append(ANIM_OT_keyframe_clear_button);
WM_operatortype_append(ANIM_OT_driver_button_add);
diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c
index 8c1e2bedd86..30e4d8570cb 100644
--- a/source/blender/editors/animation/fmodifier_ui.c
+++ b/source/blender/editors/animation/fmodifier_ui.c
@@ -74,13 +74,6 @@
#define B_REDR 1
#define B_FMODIFIER_REDRAW 20
-/* macro for use here to draw background box and set height */
-// XXX for now, roundbox has it's callback func set to NULL to not intercept events
-#define DRAW_BACKDROP(height) \
- { \
- uiDefBut(block, ROUNDBOX, B_REDR, "", -3, yco - height, width + 3, height - 1, NULL, 5.0, 0.0, 12.0, (float)rb_col, ""); \
- } (void)0
-
/* callback to verify modifier data */
static void validate_fmodifier_cb(bContext *UNUSED(C), void *fcm_v, void *UNUSED(arg))
{
@@ -229,7 +222,7 @@ static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, s
if ( (i != (data->poly_order - 1)) || ((i == 0) && data->poly_order == 2) ) {
uiDefBut(block, LABEL, 1, ") +", 0, 0, 30, 20, NULL, 0.0, 0.0, 0, 0, "");
- /* set up new row for the next pair of coefficients*/
+ /* set up new row for the next pair of coefficients */
row = uiLayoutRow(layout, TRUE);
block = uiLayoutGetBlock(row);
}
@@ -336,7 +329,7 @@ static int binarysearch_fcm_envelopedata_index(FCM_EnvelopeData array[], float f
/* initialize exists-flag first */
*exists = 0;
- /* sneaky optimisations (don't go through searching process if...):
+ /* sneaky optimizations (don't go through searching process if...):
* - keyframe to be added is to be added out of current bounds
* - keyframe to be added would replace one of the existing ones on bounds
*/
@@ -506,10 +499,10 @@ static void draw_modifier__envelope(uiLayout *layout, ID *id, FModifier *fcm, sh
row = uiLayoutRow(col, TRUE);
uiItemR(row, &ptr, "default_min", 0, IFACE_("Min"), ICON_NONE);
uiItemR(row, &ptr, "default_max", 0, IFACE_("Max"), ICON_NONE);
-
+
/* control points header */
- // TODO: move this control-point control stuff to using the new special widgets for lists
- // the current way is far too cramped
+ /* TODO: move this control-point control stuff to using the new special widgets for lists
+ * the current way is far too cramped */
row = uiLayoutRow(layout, FALSE);
block = uiLayoutGetBlock(row);
diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c
index 46a89963ad9..6c9105dde69 100644
--- a/source/blender/editors/animation/keyframes_draw.c
+++ b/source/blender/editors/animation/keyframes_draw.c
@@ -412,7 +412,7 @@ static void add_bezt_to_keyblocks_list(DLRBT_Tree *blocks, DLRBT_Tree *beztTree,
* -> firstly, handles must have same central value as each other
* -> secondly, handles which control that section of the curve must be constant
*/
- if ((!prev) || (!beztn)) return;
+ if (prev == NULL) return;
if (IS_EQF(beztn->vec[1][1], prev->vec[1][1]) == 0) return;
if (IS_EQF(beztn->vec[1][1], beztn->vec[0][1]) == 0) return;
if (IS_EQF(prev->vec[1][1], prev->vec[2][1]) == 0) return;
@@ -673,23 +673,23 @@ static void draw_keylist(View2D *v2d, DLRBT_Tree *keys, DLRBT_Tree *blocks, floa
/* draw keys */
if (keys) {
/* locked channels are less strongly shown, as feedback for locked channels in DopeSheet */
- // TODO: allow this opacity factor to be themed?
- float kalpha = (channelLocked) ? 0.35f : 1.0f;
+ /* TODO: allow this opacity factor to be themed? */
+ float kalpha = (channelLocked) ? 0.25f : 1.0f;
for (ak = keys->first; ak; ak = ak->next) {
- /* optimization: if keyframe doesn't appear within 5 units (screenspace) in visible area, don't draw
+ /* optimization: if keyframe doesn't appear within 5 units (screenspace) in visible area, don't draw
* - this might give some improvements, since we current have to flip between view/region matrices
*/
if (IN_RANGE_INCL(ak->cfra, v2d->cur.xmin, v2d->cur.xmax) == 0)
continue;
/* draw using OpenGL - uglier but faster */
- // NOTE1: a previous version of this didn't work nice for some intel cards
- // NOTE2: if we wanted to go back to icons, these are icon = (ak->sel & SELECT) ? ICON_SPACE2 : ICON_SPACE3;
+ /* NOTE1: a previous version of this didn't work nice for some intel cards
+ * NOTE2: if we wanted to go back to icons, these are icon = (ak->sel & SELECT) ? ICON_SPACE2 : ICON_SPACE3; */
draw_keyframe_shape(ak->cfra, ypos, xscale, 5.0f, (ak->sel & SELECT), ak->key_type, KEYFRAME_SHAPE_BOTH, kalpha);
- }
+ }
}
-
+
glDisable(GL_BLEND);
}
@@ -753,6 +753,10 @@ void draw_fcurve_channel(View2D *v2d, AnimData *adt, FCurve *fcu, float ypos)
{
DLRBT_Tree keys, blocks;
+ short locked = (fcu->flag & FCURVE_PROTECTED) ||
+ ((fcu->grp) && (fcu->grp->flag & AGRP_PROTECTED)) ||
+ ((adt && adt->action) && (adt->action->id.lib));
+
BLI_dlrbTree_init(&keys);
BLI_dlrbTree_init(&blocks);
@@ -761,7 +765,7 @@ void draw_fcurve_channel(View2D *v2d, AnimData *adt, FCurve *fcu, float ypos)
BLI_dlrbTree_linkedlist_sync(&keys);
BLI_dlrbTree_linkedlist_sync(&blocks);
- draw_keylist(v2d, &keys, &blocks, ypos, (fcu->flag & FCURVE_PROTECTED));
+ draw_keylist(v2d, &keys, &blocks, ypos, locked);
BLI_dlrbTree_free(&keys);
BLI_dlrbTree_free(&blocks);
@@ -771,6 +775,9 @@ void draw_agroup_channel(View2D *v2d, AnimData *adt, bActionGroup *agrp, float y
{
DLRBT_Tree keys, blocks;
+ short locked = (agrp->flag & AGRP_PROTECTED) ||
+ ((adt && adt->action) && (adt->action->id.lib));
+
BLI_dlrbTree_init(&keys);
BLI_dlrbTree_init(&blocks);
@@ -779,7 +786,7 @@ void draw_agroup_channel(View2D *v2d, AnimData *adt, bActionGroup *agrp, float y
BLI_dlrbTree_linkedlist_sync(&keys);
BLI_dlrbTree_linkedlist_sync(&blocks);
- draw_keylist(v2d, &keys, &blocks, ypos, (agrp->flag & AGRP_PROTECTED));
+ draw_keylist(v2d, &keys, &blocks, ypos, locked);
BLI_dlrbTree_free(&keys);
BLI_dlrbTree_free(&blocks);
@@ -789,6 +796,8 @@ void draw_action_channel(View2D *v2d, AnimData *adt, bAction *act, float ypos)
{
DLRBT_Tree keys, blocks;
+ short locked = (act && act->id.lib != 0);
+
BLI_dlrbTree_init(&keys);
BLI_dlrbTree_init(&blocks);
@@ -797,7 +806,7 @@ void draw_action_channel(View2D *v2d, AnimData *adt, bAction *act, float ypos)
BLI_dlrbTree_linkedlist_sync(&keys);
BLI_dlrbTree_linkedlist_sync(&blocks);
- draw_keylist(v2d, &keys, &blocks, ypos, 0);
+ draw_keylist(v2d, &keys, &blocks, ypos, locked);
BLI_dlrbTree_free(&keys);
BLI_dlrbTree_free(&blocks);
@@ -843,18 +852,30 @@ void summary_to_keylist(bAnimContext *ac, DLRBT_Tree *keys, DLRBT_Tree *blocks)
int filter;
/* get F-Curves to take keyframes from */
- filter = ANIMFILTER_DATA_VISIBLE; // curves only
+ filter = ANIMFILTER_DATA_VISIBLE;
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through each F-Curve, grabbing the keyframes */
for (ale = anim_data.first; ale; ale = ale->next) {
- fcurve_to_keylist(ale->adt, ale->data, keys, blocks);
- if (ale->datatype == ALE_MASKLAY) {
- mask_to_keylist(ac->ads, ale->data, keys);
- }
- else if (ale->datatype == ALE_GPFRAME) {
- gpl_to_keylist(ac->ads, ale->data, keys);
+ /* Why not use all #eAnim_KeyType here?
+ * All of the other key types are actually "summaries" themselves, and will just end up duplicating stuff
+ * that comes up through standard filtering of just F-Curves.
+ * Given the way that these work, there isn't really any benefit at all from including them. - Aligorith */
+
+ switch (ale->datatype) {
+ case ALE_FCURVE:
+ fcurve_to_keylist(ale->adt, ale->data, keys, blocks);
+ break;
+ case ALE_MASKLAY:
+ mask_to_keylist(ac->ads, ale->data, keys);
+ break;
+ case ALE_GPFRAME:
+ gpl_to_keylist(ac->ads, ale->data, keys);
+ break;
+ default:
+ // printf("%s: datatype %d unhandled\n", __func__, ale->datatype);
+ break;
}
}
diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c
index 88627a6dabd..b277d0eccb5 100644
--- a/source/blender/editors/animation/keyframes_edit.c
+++ b/source/blender/editors/animation/keyframes_edit.c
@@ -505,7 +505,7 @@ static short ok_bezier_region(KeyframeEditData *ked, BezTriple *bezt)
if (ked->data) {
short ok = 0;
- #define KEY_CHECK_OK(_index) BLI_in_rctf(ked->data, bezt->vec[_index][0], bezt->vec[_index][1])
+ #define KEY_CHECK_OK(_index) BLI_rctf_isect_pt_v(ked->data, bezt->vec[_index])
KEYFRAME_OK_CHECKS(KEY_CHECK_OK);
#undef KEY_CHECK_OK
diff --git a/source/blender/editors/animation/keyframes_general.c b/source/blender/editors/animation/keyframes_general.c
index 3883dce7671..b5c0555bf63 100644
--- a/source/blender/editors/animation/keyframes_general.c
+++ b/source/blender/editors/animation/keyframes_general.c
@@ -45,7 +45,6 @@
#include "BKE_fcurve.h"
-#include "BKE_utildefines.h"
#include "BKE_report.h"
#include "BKE_library.h"
#include "BKE_global.h"
diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c
index 0c9a6ff6bf1..0454e88e320 100644
--- a/source/blender/editors/animation/keyframing.c
+++ b/source/blender/editors/animation/keyframing.c
@@ -134,9 +134,9 @@ bAction *verify_adt_action(ID *id, short add)
printf("ERROR: Couldn't add AnimData (ID = %s)\n", (id) ? (id->name) : "<None>");
return NULL;
}
-
+
/* init action if none available yet */
- // TODO: need some wizardry to handle NLA stuff correct
+ /* TODO: need some wizardry to handle NLA stuff correct */
if ((adt->action == NULL) && (add)) {
char actname[sizeof(id->name) - 2];
BLI_snprintf(actname, sizeof(actname), "%sAction", id->name + 2);
@@ -164,10 +164,7 @@ FCurve *verify_fcurve(bAction *act, const char group[], PointerRNA *ptr,
* - add if not found and allowed to add one
* TODO: add auto-grouping support? how this works will need to be resolved
*/
- if (act)
- fcu = list_find_fcurve(&act->curves, rna_path, array_index);
- else
- fcu = NULL;
+ fcu = list_find_fcurve(&act->curves, rna_path, array_index);
if ((fcu == NULL) && (add)) {
/* use default settings to make a F-Curve */
@@ -256,8 +253,8 @@ int insert_bezt_fcurve(FCurve *fcu, BezTriple *bezt, short flag)
dst->f1 = bezt->f1;
dst->f2 = bezt->f2;
dst->f3 = bezt->f3;
-
- // TODO: perform some other operations?
+
+ /* TODO: perform some other operations? */
}
}
/* keyframing modes allow to not replace keyframe */
@@ -1079,6 +1076,91 @@ short delete_keyframe(ReportList *reports, ID *id, bAction *act, const char grou
return ret;
}
+/* ************************************************** */
+/* KEYFRAME CLEAR */
+
+/* Main Keyframing API call:
+ * Use this when validation of necessary animation data isn't necessary as it
+ * already exists. It will clear the current buttons fcurve(s).
+ *
+ * The flag argument is used for special settings that alter the behavior of
+ * the keyframe deletion. These include the quick refresh options.
+ */
+static short clear_keyframe(ReportList *reports, ID *id, bAction *act, const char group[], const char rna_path[], int array_index, short UNUSED(flag))
+{
+ AnimData *adt = BKE_animdata_from_id(id);
+ PointerRNA id_ptr, ptr;
+ PropertyRNA *prop;
+ int array_index_max = array_index + 1;
+ int ret = 0;
+
+ /* sanity checks */
+ if (ELEM(NULL, id, adt)) {
+ BKE_report(reports, RPT_ERROR, "No ID-Block and/Or AnimData to delete keyframe from");
+ return 0;
+ }
+
+ /* validate pointer first - exit if failure */
+ RNA_id_pointer_create(id, &id_ptr);
+ if ((RNA_path_resolve(&id_ptr, rna_path, &ptr, &prop) == 0) || (prop == NULL)) {
+ BKE_reportf(reports, RPT_ERROR, "Could not clear keyframe, as RNA Path is invalid for the given ID (ID = %s, Path = %s)", id->name, rna_path);
+ return 0;
+ }
+
+ /* get F-Curve
+ * Note: here is one of the places where we don't want new Action + F-Curve added!
+ * so 'add' var must be 0
+ */
+ if (act == NULL) {
+ /* if no action is provided, use the default one attached to this ID-block
+ * - if it doesn't exist, then we're out of options...
+ */
+ if (adt->action) {
+ act = adt->action;
+ }
+ else {
+ BKE_reportf(reports, RPT_ERROR, "No Action to delete keyframes from for ID = %s\n", id->name);
+ return 0;
+ }
+ }
+
+ /* key entire array convenience method */
+ if (array_index == -1) {
+ array_index = 0;
+ array_index_max = RNA_property_array_length(&ptr, prop);
+
+ /* for single properties, increase max_index so that the property itself gets included,
+ * but don't do this for standard arrays since that can cause corruption issues
+ * (extra unused curves)
+ */
+ if (array_index_max == array_index)
+ array_index_max++;
+ }
+
+ /* will only loop once unless the array index was -1 */
+ for (; array_index < array_index_max; array_index++) {
+ FCurve *fcu = verify_fcurve(act, group, &ptr, rna_path, array_index, 0);
+
+ /* check if F-Curve exists and/or whether it can be edited */
+ if (fcu == NULL)
+ continue;
+
+ if ( (fcu->flag & FCURVE_PROTECTED) || ((fcu->grp) && (fcu->grp->flag & AGRP_PROTECTED)) ) {
+ if (G.debug & G_DEBUG)
+ printf("WARNING: not deleting keyframe for locked F-Curve\n");
+ continue;
+ }
+
+ ANIM_fcurve_delete_from_animdata(NULL, adt, fcu);
+
+ /* return success */
+ ret++;
+ }
+
+ /* return success/failure */
+ return ret;
+}
+
/* ******************************************* */
/* KEYFRAME MODIFICATION */
@@ -1104,10 +1186,9 @@ static int modify_key_op_poll(bContext *C)
/* if Outliner, don't allow in some views */
if (so) {
- if (ELEM4(so->outlinevis, SO_GROUPS, SO_LIBRARIES, SO_VERSE_SESSION, SO_VERSE_SESSION))
- return 0;
- if (ELEM3(so->outlinevis, SO_SEQUENCE, SO_USERDEF, SO_KEYMAP))
+ if (ELEM5(so->outlinevis, SO_GROUPS, SO_LIBRARIES, SO_SEQUENCE, SO_USERDEF, SO_KEYMAP)) {
return 0;
+ }
}
/* TODO: checks for other space types can be added here */
@@ -1358,46 +1439,122 @@ void ANIM_OT_keyframe_delete(wmOperatorType *ot)
}
/* Delete Key Operator ------------------------ */
-
-/* XXX WARNING:
- * This is currently just a basic operator, which work in 3d-view context on objects only.
- * Should this be kept? It does have advantages over a version which requires selecting a keyingset to use...
- * -- Joshua Leung, Jan 2009
+/* NOTE: Although this version is simpler than the more generic version for KeyingSets,
+ * it is more useful for animators working in the 3D view.
*/
+static int clear_anim_v3d_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ Main *bmain = CTX_data_main(C);
+
+ CTX_DATA_BEGIN (C, Object *, ob, selected_objects)
+ {
+ /* just those in active action... */
+ if ((ob->adt) && (ob->adt->action)) {
+ AnimData *adt = ob->adt;
+ bAction *act = adt->action;
+ FCurve *fcu, *fcn;
+
+ for (fcu = act->curves.first; fcu; fcu = fcn) {
+ short can_delete = FALSE;
+
+ fcn = fcu->next;
+
+ /* in pose mode, only delete the F-Curve if it belongs to a selected bone */
+ if (ob->mode & OB_MODE_POSE) {
+ if ((fcu->rna_path) && strstr(fcu->rna_path, "pose.bones[")) {
+ bPoseChannel *pchan;
+ char *bone_name;
+
+ /* get bone-name, and check if this bone is selected */
+ bone_name = BLI_str_quoted_substrN(fcu->rna_path, "pose.bones[");
+ pchan = BKE_pose_channel_find_name(ob->pose, bone_name);
+ if (bone_name) MEM_freeN(bone_name);
+
+ /* delete if bone is selected*/
+ if ((pchan) && (pchan->bone)) {
+ if (pchan->bone->flag & BONE_SELECTED)
+ can_delete = TRUE;
+ }
+ }
+ }
+ else {
+ /* object mode - all of Object's F-Curves are affected */
+ can_delete = TRUE;
+ }
+
+ /* delete F-Curve completely */
+ if (can_delete) {
+ ANIM_fcurve_delete_from_animdata(NULL, adt, fcu);
+ }
+ }
+ }
+
+ /* update... */
+ ob->recalc |= OB_RECALC_OB;
+ }
+ CTX_DATA_END;
+
+ /* send updates */
+ DAG_ids_flush_update(bmain, 0);
+ WM_event_add_notifier(C, NC_OBJECT | ND_KEYS, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void ANIM_OT_keyframe_clear_v3d(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Remove Animation";
+ ot->description = "Remove all keyframe animation for selected objects";
+ ot->idname = "ANIM_OT_keyframe_clear_v3d";
+
+ /* callbacks */
+ ot->invoke = WM_operator_confirm;
+ ot->exec = clear_anim_v3d_exec;
+
+ ot->poll = ED_operator_areaactive;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+
static int delete_key_v3d_exec(bContext *C, wmOperator *op)
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
- float cfra = (float)CFRA; // XXX for now, don't bother about all the yucky offset crap
+ float cfra = (float)CFRA;
- // XXX more comprehensive tests will be needed
CTX_DATA_BEGIN (C, Object *, ob, selected_objects)
{
- ID *id = (ID *)ob;
- FCurve *fcu, *fcn;
- short success = 0;
+ ID *id = &ob->id;
+ int success = 0;
- /* loop through all curves in animdata and delete keys on this frame */
+ /* just those in active action... */
if ((ob->adt) && (ob->adt->action)) {
AnimData *adt = ob->adt;
bAction *act = adt->action;
+ FCurve *fcu, *fcn;
for (fcu = act->curves.first; fcu; fcu = fcn) {
fcn = fcu->next;
+
+ /* delete keyframes on current frame
+ * WARNING: this can delete the next F-Curve, hence the "fcn" copying
+ */
success += delete_keyframe(op->reports, id, NULL, NULL, fcu->rna_path, fcu->array_index, cfra, 0);
}
}
- BKE_reportf(op->reports, RPT_INFO, "Ob '%s' - Successfully had %d keyframes removed", id->name + 2, success);
-
+ /* report success (or failure) */
+ BKE_reportf(op->reports, RPT_INFO, "Object '%s' successfully had %d keyframes removed", id->name + 2, success);
ob->recalc |= OB_RECALC_OB;
}
CTX_DATA_END;
/* send updates */
DAG_ids_flush_update(bmain, 0);
-
WM_event_add_notifier(C, NC_OBJECT | ND_KEYS, NULL);
return OPERATOR_FINISHED;
@@ -1407,7 +1564,7 @@ void ANIM_OT_keyframe_delete_v3d(wmOperatorType *ot)
{
/* identifiers */
ot->name = "Delete Keyframe";
- ot->description = "Remove keyframes on current frame for selected object";
+ ot->description = "Remove keyframes on current frame for selected objects";
ot->idname = "ANIM_OT_keyframe_delete_v3d";
/* callbacks */
@@ -1430,7 +1587,7 @@ static int insert_key_button_exec(bContext *C, wmOperator *op)
PointerRNA ptr = {{NULL}};
PropertyRNA *prop = NULL;
char *path;
- float cfra = (float)CFRA; // XXX for now, don't bother about all the yucky offset crap
+ float cfra = (float)CFRA;
short success = 0;
int a, index, length, all = RNA_boolean_get(op->ptr, "all");
short flag = 0;
@@ -1584,6 +1741,78 @@ void ANIM_OT_keyframe_delete_button(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "all", 1, "All", "Delete keyframes from all elements of the array");
}
+
+/* Clear Key Button Operator ------------------------ */
+
+static int clear_key_button_exec(bContext *C, wmOperator *op)
+{
+ Main *bmain = CTX_data_main(C);
+ PointerRNA ptr = {{NULL}};
+ PropertyRNA *prop = NULL;
+ char *path;
+ short success = 0;
+ int a, index, length, all = RNA_boolean_get(op->ptr, "all");
+
+ /* try to insert keyframe using property retrieved from UI */
+ uiContextActiveProperty(C, &ptr, &prop, &index);
+
+ if (ptr.id.data && ptr.data && prop) {
+ path = RNA_path_from_ID_to_property(&ptr, prop);
+
+ if (path) {
+ if (all) {
+ length = RNA_property_array_length(&ptr, prop);
+
+ if (length) index = 0;
+ else length = 1;
+ }
+ else
+ length = 1;
+
+ for (a = 0; a < length; a++)
+ success += clear_keyframe(op->reports, ptr.id.data, NULL, NULL, path, index + a, 0);
+
+ MEM_freeN(path);
+ }
+ else if (G.debug & G_DEBUG)
+ printf("Button Clear-Key: no path to property\n");
+ }
+ else if (G.debug & G_DEBUG) {
+ printf("ptr.data = %p, prop = %p\n", (void *)ptr.data, (void *)prop);
+ }
+
+
+ if (success) {
+ /* send updates */
+ uiContextAnimUpdate(C);
+
+ DAG_ids_flush_update(bmain, 0);
+
+ /* send notifiers that keyframes have been changed */
+ WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL);
+ }
+
+ return (success) ? OPERATOR_FINISHED : OPERATOR_CANCELLED;
+}
+
+void ANIM_OT_keyframe_clear_button(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Clear Keyframe (Buttons)";
+ ot->idname = "ANIM_OT_keyframe_clear_button";
+ ot->description = "Clear all keyframes on the currently active property";
+
+ /* callbacks */
+ ot->exec = clear_key_button_exec;
+ ot->poll = modify_key_op_poll;
+
+ /* flags */
+ ot->flag = OPTYPE_UNDO;
+
+ /* properties */
+ RNA_def_boolean(ot->srna, "all", 1, "All", "Clear keyframes from all elements of the array");
+}
+
/* ******************************************* */
/* AUTO KEYFRAME */
@@ -1682,7 +1911,7 @@ static short object_frame_has_keyframe(Object *ob, float frame, short filter)
/* try shapekey keyframes (if available, and allowed by filter) */
if (!(filter & ANIMFILTER_KEYS_LOCAL) && !(filter & ANIMFILTER_KEYS_NOSKEY) ) {
- Key *key = ob_get_key(ob);
+ Key *key = BKE_key_from_object(ob);
/* shapekeys can have keyframes ('Relative Shape Keys')
* or depend on time (old 'Absolute Shape Keys')
@@ -1691,11 +1920,11 @@ static short object_frame_has_keyframe(Object *ob, float frame, short filter)
/* 1. test for relative (with keyframes) */
if (id_frame_has_keyframe((ID *)key, frame, filter))
return 1;
-
+
/* 2. test for time */
- // TODO... yet to be implemented (this feature may evolve before then anyway)
+ /* TODO... yet to be implemented (this feature may evolve before then anyway) */
}
-
+
/* try materials */
if (!(filter & ANIMFILTER_KEYS_LOCAL) && !(filter & ANIMFILTER_KEYS_NOMAT) ) {
/* if only active, then we can skip a lot of looping */
diff --git a/source/blender/editors/animation/keyingsets.c b/source/blender/editors/animation/keyingsets.c
index cd914f9ff9a..04fd7f677b0 100644
--- a/source/blender/editors/animation/keyingsets.c
+++ b/source/blender/editors/animation/keyingsets.c
@@ -597,13 +597,13 @@ void ANIM_keyingset_info_register(KeyingSetInfo *ksi)
void ANIM_keyingset_info_unregister(Main *bmain, KeyingSetInfo *ksi)
{
KeyingSet *ks, *ksn;
-
+
/* find relevant builtin KeyingSets which use this, and remove them */
- // TODO: this isn't done now, since unregister is really only used atm when we
- // reload the scripts, which kindof defeats the purpose of "builtin"?
+ /* TODO: this isn't done now, since unregister is really only used atm when we
+ * reload the scripts, which kindof defeats the purpose of "builtin"? */
for (ks = builtin_keyingsets.first; ks; ks = ksn) {
ksn = ks->next;
-
+
/* remove if matching typeinfo name */
if (strcmp(ks->typeinfo, ksi->idname) == 0) {
Scene *scene;
@@ -791,8 +791,8 @@ short ANIM_keyingset_context_ok_poll(bContext *C, KeyingSet *ks)
/* get the associated 'type info' for this KeyingSet */
if (ksi == NULL)
return 0;
- // TODO: check for missing callbacks!
-
+ /* TODO: check for missing callbacks! */
+
/* check if it can be used in the current context */
return (ksi->poll(ksi, C));
}
@@ -878,8 +878,8 @@ short ANIM_validate_keyingset(bContext *C, ListBase *dsources, KeyingSet *ks)
/* get the associated 'type info' for this KeyingSet */
if (ksi == NULL)
return MODIFYKEY_MISSING_TYPEINFO;
- // TODO: check for missing callbacks!
-
+ /* TODO: check for missing callbacks! */
+
/* check if it can be used in the current context */
if (ksi->poll(ksi, C)) {
/* if a list of data sources are provided, run a special iterator over them,
diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c
index 59ee90c553b..c19904d39ac 100644
--- a/source/blender/editors/armature/armature_ops.c
+++ b/source/blender/editors/armature/armature_ops.c
@@ -191,8 +191,8 @@ void ED_operatormacros_armature(void)
RNA_enum_set(otmacro->ptr, "proportional", 0);
}
- // XXX would it be nicer to just be able to have standard extrude_move, but set the forked property separate?
- // that would require fixing a properties bug 19733
+ /* XXX would it be nicer to just be able to have standard extrude_move, but set the forked property separate?
+ * that would require fixing a properties bug 19733 */
ot = WM_operatortype_append_macro("ARMATURE_OT_extrude_forked", "Extrude Forked",
"Create new bones from the selected joints and move them",
OPTYPE_UNDO | OPTYPE_REGISTER);
@@ -218,7 +218,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "SKETCH_OT_delete", DELKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SKETCH_OT_finish_stroke", RIGHTMOUSE, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SKETCH_OT_cancel_stroke", ESCKEY, KM_PRESS, 0, 0);
- // Already part of view3d select
+ /* Already part of view3d select */
//WM_keymap_add_item(keymap, "SKETCH_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
/* sketch poll checks mode */
@@ -321,7 +321,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
WM_keymap_add_menu(keymap, "VIEW3D_MT_pose_apply", AKEY, KM_PRESS, KM_CTRL, 0);
- // TODO: clear pose
+ /* TODO: clear pose */
WM_keymap_add_item(keymap, "POSE_OT_rot_clear", RKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "POSE_OT_loc_clear", GKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "POSE_OT_scale_clear", SKEY, KM_PRESS, KM_ALT, 0);
diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c
index 6cef843d828..ffdced3262f 100644
--- a/source/blender/editors/armature/editarmature.c
+++ b/source/blender/editors/armature/editarmature.c
@@ -657,12 +657,14 @@ static int apply_armature_pose2bones_exec(bContext *C, wmOperator *op)
BKE_report(op->reports, RPT_ERROR, "Cannot apply pose to lib-linked armature"); //error_libdata();
return OPERATOR_CANCELLED;
}
-
+
/* helpful warnings... */
- // TODO: add warnings to be careful about actions, applying deforms first, etc.
- if (ob->adt && ob->adt->action)
- BKE_report(op->reports, RPT_WARNING, "Actions on this armature will be destroyed by this new rest pose as the transforms stored are relative to the old rest pose");
-
+ /* TODO: add warnings to be careful about actions, applying deforms first, etc. */
+ if (ob->adt && ob->adt->action)
+ BKE_report(op->reports, RPT_WARNING,
+ "Actions on this armature will be destroyed by this new rest pose as the "
+ "transforms stored are relative to the old rest pose");
+
/* Get editbones of active armature to alter */
ED_armature_to_edit(ob);
@@ -1192,9 +1194,9 @@ static int separate_armature_exec(bContext *C, wmOperator *UNUSED(op))
* 4. fix constraint links
* 5. make original armature active and enter editmode
*/
-
+
/* 1) only edit-base selected */
- // TODO: use context iterators for this?
+ /* TODO: use context iterators for this? */
CTX_DATA_BEGIN(C, Base *, base, visible_bases)
{
if (base->object == obedit) base->flag |= 1;
@@ -1213,6 +1215,8 @@ static int separate_armature_exec(bContext *C, wmOperator *UNUSED(op))
/* 2) duplicate base */
newbase = ED_object_add_duplicate(bmain, scene, oldbase, USER_DUP_ARM); /* only duplicate linked armature */
+ DAG_scene_sort(bmain, scene);
+
newob = newbase->object;
newbase->flag &= ~SELECT;
@@ -1402,7 +1406,7 @@ static void selectconnected_posebonechildren(Object *ob, Bone *bone, int extend)
if (!(bone->flag & BONE_CONNECTED) || (bone->flag & BONE_UNSELECTABLE))
return;
- // XXX old cruft! use notifiers instead
+ /* XXX old cruft! use notifiers instead */
//select_actionchannel_by_name (ob->action, bone->name, !(shift));
if (extend)
@@ -1583,13 +1587,14 @@ void ARMATURE_OT_select_linked(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
- /* properties s*/
+ /* properties */
RNA_def_boolean(ot->srna, "extend", FALSE, "Extend", "Extend selection instead of deselecting everything first");
}
/* does bones and points */
/* note that BONE ROOT only gets drawn for root bones (or without IK) */
-static EditBone *get_nearest_editbonepoint(ViewContext *vc, const int mval[2], ListBase *edbo, int findunsel, int *selmask)
+static EditBone *get_nearest_editbonepoint(ViewContext *vc, const int mval[2],
+ ListBase *edbo, int findunsel, int *selmask)
{
EditBone *ebone;
rcti rect;
@@ -1829,7 +1834,7 @@ void ED_armature_deselect_all_visible(Object *obedit)
for (ebone = arm->edbo->first; ebone; ebone = ebone->next) {
/* first and foremost, bone must be visible and selected */
- if (EBONE_VISIBLE(arm, ebone) && (ebone->flag & BONE_UNSELECTABLE) == 0) {
+ if (EBONE_SELECTABLE(arm, ebone)) {
ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
}
}
@@ -2554,7 +2559,8 @@ void updateDuplicateSubtarget(EditBone *dupBone, ListBase *editbones, Object *ob
}
-EditBone *duplicateEditBoneObjects(EditBone *curBone, const char *name, ListBase *editbones, Object *src_ob, Object *dst_ob)
+EditBone *duplicateEditBoneObjects(EditBone *curBone, const char *name, ListBase *editbones,
+ Object *src_ob, Object *dst_ob)
{
EditBone *eBone = MEM_mallocN(sizeof(EditBone), "addup_editbone");
@@ -3034,7 +3040,8 @@ static void bones_merge(Object *obedit, EditBone *start, EditBone *end, EditBone
newbone->parent = start->parent;
/* TODO, copy more things to the new bone */
- newbone->flag = start->flag & (BONE_HINGE | BONE_NO_DEFORM | BONE_NO_SCALE | BONE_NO_CYCLICOFFSET | BONE_NO_LOCAL_LOCATION | BONE_DONE);
+ newbone->flag = start->flag & (BONE_HINGE | BONE_NO_DEFORM | BONE_NO_SCALE |
+ BONE_NO_CYCLICOFFSET | BONE_NO_LOCAL_LOCATION | BONE_DONE);
/* step 2a: reparent any side chains which may be parented to any bone in the chain of bones to merge
* - potentially several tips for side chains leading to some tree exist...
@@ -3355,12 +3362,17 @@ static int armature_extrude_exec(bContext *C, wmOperator *op)
if (EBONE_VISIBLE(arm, ebone)) {
/* we extrude per definition the tip */
do_extrude = FALSE;
- if (ebone->flag & (BONE_TIPSEL | BONE_SELECTED))
+ if (ebone->flag & (BONE_TIPSEL | BONE_SELECTED)) {
do_extrude = TRUE;
+ }
else if (ebone->flag & BONE_ROOTSEL) {
/* but, a bone with parent deselected we do the root... */
- if (ebone->parent && (ebone->parent->flag & BONE_TIPSEL)) ;
- else do_extrude = 2;
+ if (ebone->parent && (ebone->parent->flag & BONE_TIPSEL)) {
+ /* pass */
+ }
+ else {
+ do_extrude = 2;
+ }
}
if (do_extrude) {
@@ -4104,7 +4116,7 @@ static void select_similar_length(bArmature *arm, EditBone *ebone_act, const flo
const float len_max = ebone_act->length * (1.0f + thresh);
for (ebone = arm->edbo->first; ebone; ebone = ebone->next) {
- if (EBONE_VISIBLE(arm, ebone) && (ebone->flag & BONE_UNSELECTABLE) == 0) {
+ if (EBONE_SELECTABLE(arm, ebone)) {
if ((ebone->length >= len_min) &&
(ebone->length <= len_max))
{
@@ -4121,7 +4133,7 @@ static void select_similar_direction(bArmature *arm, EditBone *ebone_act, const
sub_v3_v3v3(dir_act, ebone_act->head, ebone_act->tail);
for (ebone = arm->edbo->first; ebone; ebone = ebone->next) {
- if (EBONE_VISIBLE(arm, ebone) && (ebone->flag & BONE_UNSELECTABLE) == 0) {
+ if (EBONE_SELECTABLE(arm, ebone)) {
float dir[3];
sub_v3_v3v3(dir, ebone->head, ebone->tail);
@@ -4137,7 +4149,7 @@ static void select_similar_layer(bArmature *arm, EditBone *ebone_act)
EditBone *ebone;
for (ebone = arm->edbo->first; ebone; ebone = ebone->next) {
- if (EBONE_VISIBLE(arm, ebone) && (ebone->flag & BONE_UNSELECTABLE) == 0) {
+ if (EBONE_SELECTABLE(arm, ebone)) {
if (ebone->layer & ebone_act->layer) {
ED_armature_edit_bone_select(ebone);
}
@@ -4159,7 +4171,7 @@ static void select_similar_prefix(bArmature *arm, EditBone *ebone_act)
/* Find matches */
for (ebone = arm->edbo->first; ebone; ebone = ebone->next) {
- if (EBONE_VISIBLE(arm, ebone) && (ebone->flag & BONE_UNSELECTABLE) == 0) {
+ if (EBONE_SELECTABLE(arm, ebone)) {
char prefix_other[MAX_VGROUP_NAME];
BKE_deform_split_prefix(ebone->name, prefix_other, body_tmp);
if (!strcmp(prefix_act, prefix_other)) {
@@ -4183,7 +4195,7 @@ static void select_similar_suffix(bArmature *arm, EditBone *ebone_act)
/* Find matches */
for (ebone = arm->edbo->first; ebone; ebone = ebone->next) {
- if (EBONE_VISIBLE(arm, ebone) && (ebone->flag & BONE_UNSELECTABLE) == 0) {
+ if (EBONE_SELECTABLE(arm, ebone)) {
char suffix_other[MAX_VGROUP_NAME];
BKE_deform_split_suffix(ebone->name, body_tmp, suffix_other);
if (!strcmp(suffix_act, suffix_other)) {
@@ -4268,7 +4280,7 @@ static int armature_select_hierarchy_exec(bContext *C, wmOperator *op)
for (curbone = arm->edbo->first; curbone; curbone = curbone->next) {
/* only work on bone if it is visible and its selection can change */
- if (EBONE_VISIBLE(arm, curbone) && (curbone->flag & BONE_UNSELECTABLE) == 0) {
+ if (EBONE_SELECTABLE(arm, curbone)) {
if (curbone == arm->act_edbone) {
if (direction == BONE_SELECT_PARENT) {
if (curbone->parent == NULL) continue;
@@ -4288,7 +4300,7 @@ static int armature_select_hierarchy_exec(bContext *C, wmOperator *op)
chbone = editbone_get_child(arm, curbone, 1);
if (chbone == NULL) continue;
- if (EBONE_VISIBLE(arm, chbone) && (chbone->flag & BONE_UNSELECTABLE) == 0) {
+ if (EBONE_SELECTABLE(arm, chbone)) {
chbone->flag |= (BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
arm->act_edbone = chbone;
@@ -4474,7 +4486,8 @@ void ARMATURE_OT_align(wmOperatorType *ot)
/* ***************** Pose tools ********************* */
-// XXX bone_looper is only to be used when we want to access settings (i.e. editability/visibility/selected) that context doesn't offer
+/* XXX bone_looper is only to be used when we want to access settings
+ * (i.e. editability/visibility/selected) that context doesn't offer */
static int bone_looper(Object *ob, Bone *bone, void *data,
int (*bone_func)(Object *, Bone *, void *))
{
@@ -4504,7 +4517,8 @@ static int bone_looper(Object *ob, Bone *bone, void *data,
/* called from editview.c, for mode-less pose selection */
/* assumes scene obact and basact is still on old situation */
-int ED_do_pose_selectbuffer(Scene *scene, Base *base, unsigned int *buffer, short hits, short extend, short deselect, short toggle)
+int ED_do_pose_selectbuffer(Scene *scene, Base *base, unsigned int *buffer, short hits,
+ short extend, short deselect, short toggle)
{
Object *ob = base->object;
Bone *nearBone;
@@ -4587,7 +4601,9 @@ void ED_pose_deselectall(Object *ob, int test)
int selectmode = 0;
/* we call this from outliner too */
- if (ELEM(NULL, ob, ob->pose)) return;
+ if (ob->pose == NULL) {
+ return;
+ }
/* Determine if we're selecting or deselecting */
if (test == 1) {
@@ -4748,7 +4764,9 @@ static void add_vgroups__mapFunc(void *userData, int index, const float co[3],
copy_v3_v3(verts[index], co);
}
-static void envelope_bone_weighting(Object *ob, Mesh *mesh, float (*verts)[3], int numbones, Bone **bonelist, bDeformGroup **dgrouplist, bDeformGroup **dgroupflip, float (*root)[3], float (*tip)[3], int *selected, float scale)
+static void envelope_bone_weighting(Object *ob, Mesh *mesh, float (*verts)[3], int numbones, Bone **bonelist,
+ bDeformGroup **dgrouplist, bDeformGroup **dgroupflip,
+ float (*root)[3], float (*tip)[3], int *selected, float scale)
{
/* Create vertex group weights from envelopes */
@@ -4773,7 +4791,7 @@ static void envelope_bone_weighting(Object *ob, Mesh *mesh, float (*verts)[3], i
distance = distfactor_to_bone(verts[i], root[j], tip[j],
bone->rad_head * scale, bone->rad_tail * scale, bone->dist * scale);
- /* add the vert to the deform group if weight!=0.0 */
+ /* add the vert to the deform group if (weight != 0.0) */
if (distance != 0.0f)
ED_vgroup_vert_add(ob, dgroup, i, distance, WEIGHT_REPLACE);
else
@@ -4838,7 +4856,7 @@ static void add_verts_to_dgroups(ReportList *reports, Scene *scene, Object *ob,
bone_looper(ob, arm->bonebase.first, &looper_data, bone_skinnable_cb);
/* create an array of pointers to the deform groups that
- * coorespond to the skinnable bones (creating them
+ * correspond to the skinnable bones (creating them
* as necessary. */
dgrouplist = MEM_callocN(numbones * sizeof(bDeformGroup *), "dgrouplist");
dgroupflip = MEM_callocN(numbones * sizeof(bDeformGroup *), "dgroupflip");
@@ -5404,7 +5422,7 @@ static int hide_unselected_pose_bone_cb(Object *ob, Bone *bone, void *UNUSED(ptr
bArmature *arm = ob->data;
if (arm->layer & bone->layer) {
- // hrm... typo here?
+ /* hrm... typo here? */
if ((bone->flag & BONE_SELECTED) == 0) {
bone->flag |= BONE_HIDDEN_P;
if (arm->act_bone == bone)
diff --git a/source/blender/editors/armature/editarmature_retarget.c b/source/blender/editors/armature/editarmature_retarget.c
index 91c342ec070..fad06f0d020 100644
--- a/source/blender/editors/armature/editarmature_retarget.c
+++ b/source/blender/editors/armature/editarmature_retarget.c
@@ -25,7 +25,6 @@
* \ingroup edarmature
*/
-
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
@@ -49,8 +48,6 @@
#include "BLI_rand.h"
#include "BLI_threads.h"
-//#include "BDR_editobject.h"
-
#include "BKE_constraint.h"
#include "BKE_armature.h"
#include "BKE_context.h"
@@ -60,10 +57,7 @@
#include "BIF_retarget.h"
-
-//#include "mydevice.h"
-#include "reeb.h" // FIX ME
-//#include "blendef.h"
+#include "reeb.h" /* FIX ME */
#include "armature_intern.h"
@@ -2385,7 +2379,7 @@ static void findCorrespondingArc(RigGraph *rigg, RigArc *start_arc, RigNode *sta
// printf("CANDIDATES\n");
// for (i = 0; i < enode->degree; i++)
// {
-// next_earc = (ReebArc*)enode->arcs[i];
+// next_earc = (ReebArc *)enode->arcs[i];
// printf("flag %i -- level %i -- flag %i -- group %i\n", next_earc->flag, next_earc->symmetry_level, next_earc->symmetry_flag, next_earc->symmetry_group);
// }
diff --git a/source/blender/editors/armature/editarmature_sketch.c b/source/blender/editors/armature/editarmature_sketch.c
index 06ecf76ba3e..68d8a8d721e 100644
--- a/source/blender/editors/armature/editarmature_sketch.c
+++ b/source/blender/editors/armature/editarmature_sketch.c
@@ -22,7 +22,6 @@
* \ingroup edarmature
*/
-
#include <string.h>
#include <math.h>
#include <float.h>
@@ -42,6 +41,8 @@
#include "BLI_graph.h"
#include "BLI_ghash.h"
+#include "BLF_translation.h"
+
#include "BKE_context.h"
#include "BKE_sketch.h"
@@ -49,27 +50,18 @@
#include "ED_screen.h"
#include "BIF_gl.h"
-//#include "BIF_screen.h"
-//#include "BIF_space.h"
-//#include "BIF_mywindow.h"
#include "ED_armature.h"
#include "armature_intern.h"
-//#include "BIF_sketch.h"
#include "BIF_retarget.h"
#include "BIF_generate.h"
-//#include "BIF_interface.h"
#include "ED_transform.h"
#include "WM_api.h"
#include "WM_types.h"
-//#include "blendef.h"
-//#include "mydevice.h"
#include "reeb.h"
-
-
typedef int (*GestureDetectFct)(bContext *, SK_Gesture *, SK_Sketch *);
typedef void (*GestureApplyFct)(bContext *, SK_Gesture *, SK_Sketch *);
@@ -185,7 +177,7 @@ void BIF_makeListTemplates(const bContext *C)
const char *BIF_listTemplates(const bContext *UNUSED(C))
{
GHashIterator ghi;
- char menu_header[] = "Template%t|None%x0|";
+ const char *menu_header = IFACE_("Template %t|None %x0|");
char *p;
if (TEMPLATES_MENU != NULL) {
@@ -204,7 +196,7 @@ const char *BIF_listTemplates(const bContext *UNUSED(C))
Object *ob = BLI_ghashIterator_getValue(&ghi);
int key = GET_INT_FROM_POINTER(BLI_ghashIterator_getKey(&ghi));
- p += sprintf(p, "|%s%%x%i", ob->id.name + 2, key);
+ p += sprintf(p, "|%s %%x%i", ob->id.name + 2, key);
BLI_ghashIterator_step(&ghi);
}
@@ -654,16 +646,17 @@ static SK_Point *sk_snapPointStroke(bContext *C, SK_Stroke *stk, int mval[2], in
short pval[2];
int pdist;
- project_short_noclip(ar, stk->points[i].p, pval);
+ if (ED_view3d_project_short_global(ar, stk->points[i].p, pval, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
- pdist = ABS(pval[0] - mval[0]) + ABS(pval[1] - mval[1]);
+ pdist = ABS(pval[0] - mval[0]) + ABS(pval[1] - mval[1]);
- if (pdist < *dist) {
- *dist = pdist;
- pt = stk->points + i;
+ if (pdist < *dist) {
+ *dist = pdist;
+ pt = stk->points + i;
- if (index != NULL) {
- *index = i;
+ if (index != NULL) {
+ *index = i;
+ }
}
}
}
@@ -689,32 +682,34 @@ static SK_Point *sk_snapPointArmature(bContext *C, Object *ob, ListBase *ebones,
{
copy_v3_v3(vec, bone->head);
mul_m4_v3(ob->obmat, vec);
- project_short_noclip(ar, vec, pval);
+ if (ED_view3d_project_short_noclip(ar, vec, pval, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
- pdist = ABS(pval[0] - mval[0]) + ABS(pval[1] - mval[1]);
+ pdist = ABS(pval[0] - mval[0]) + ABS(pval[1] - mval[1]);
- if (pdist < *dist)
- {
- *dist = pdist;
- pt = &boneSnap;
- copy_v3_v3(pt->p, vec);
- pt->type = PT_EXACT;
+ if (pdist < *dist)
+ {
+ *dist = pdist;
+ pt = &boneSnap;
+ copy_v3_v3(pt->p, vec);
+ pt->type = PT_EXACT;
+ }
}
}
copy_v3_v3(vec, bone->tail);
mul_m4_v3(ob->obmat, vec);
- project_short_noclip(ar, vec, pval);
+ if (ED_view3d_project_short_noclip(ar, vec, pval, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
- pdist = ABS(pval[0] - mval[0]) + ABS(pval[1] - mval[1]);
+ pdist = ABS(pval[0] - mval[0]) + ABS(pval[1] - mval[1]);
- if (pdist < *dist)
- {
- *dist = pdist;
- pt = &boneSnap;
- copy_v3_v3(pt->p, vec);
- pt->type = PT_EXACT;
+ if (pdist < *dist)
+ {
+ *dist = pdist;
+ pt = &boneSnap;
+ copy_v3_v3(pt->p, vec);
+ pt->type = PT_EXACT;
+ }
}
}
@@ -915,9 +910,9 @@ static void sk_interpolateDepth(bContext *C, SK_Stroke *stk, int start, int end,
for (i = start; i <= end; i++) {
float ray_start[3], ray_normal[3];
float delta = len_v3v3(stk->points[i].p, stk->points[i + 1].p);
- float pval[2];
+ float pval[2] = {0, 0};
- project_float(ar, stk->points[i].p, pval);
+ ED_view3d_project_float_global(ar, stk->points[i].p, pval, V3D_PROJ_TEST_NOP);
ED_view3d_win_to_ray(ar, v3d, pval, ray_start, ray_normal);
mul_v3_fl(ray_normal, distance * progress / length);
@@ -944,10 +939,14 @@ static void sk_projectDrawPoint(bContext *C, float vec[3], SK_Stroke *stk, SK_Dr
initgrabz(ar->regiondata, fp[0], fp[1], fp[2]);
/* method taken from editview.c - mouse_cursor() */
- project_short_noclip(ar, fp, cval);
- VECSUB2D(mval_f, cval, dd->mval);
- ED_view3d_win_to_delta(ar, mval_f, dvec);
- sub_v3_v3v3(vec, fp, dvec);
+ if (ED_view3d_project_short_global(ar, fp, cval, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ VECSUB2D(mval_f, cval, dd->mval);
+ ED_view3d_win_to_delta(ar, mval_f, dvec);
+ sub_v3_v3v3(vec, fp, dvec);
+ }
+ else {
+ zero_v3(vec);
+ }
}
static int sk_getStrokeDrawPoint(bContext *C, SK_Point *pt, SK_Sketch *UNUSED(sketch), SK_Stroke *stk, SK_DrawData *dd)
@@ -1463,8 +1462,8 @@ static int sk_getSelfIntersections(bContext *C, ListBase *list, SK_Stroke *gestu
float s_p2[3] = {0, 0, 0};
int g_i;
- project_float(ar, gesture->points[s_i].p, s_p1);
- project_float(ar, gesture->points[s_i + 1].p, s_p2);
+ ED_view3d_project_float_global(ar, gesture->points[s_i].p, s_p1, V3D_PROJ_TEST_NOP);
+ ED_view3d_project_float_global(ar, gesture->points[s_i + 1].p, s_p2, V3D_PROJ_TEST_NOP);
/* start checking from second next, because two consecutive cannot intersect */
for (g_i = s_i + 2; g_i < gesture->nb_points - 1; g_i++) {
@@ -1473,8 +1472,8 @@ static int sk_getSelfIntersections(bContext *C, ListBase *list, SK_Stroke *gestu
float vi[3];
float lambda;
- project_float(ar, gesture->points[g_i].p, g_p1);
- project_float(ar, gesture->points[g_i + 1].p, g_p2);
+ ED_view3d_project_float_global(ar, gesture->points[g_i].p, g_p1, V3D_PROJ_TEST_NOP);
+ ED_view3d_project_float_global(ar, gesture->points[g_i + 1].p, g_p2, V3D_PROJ_TEST_NOP);
if (isect_line_line_strict_v3(s_p1, s_p2, g_p1, g_p2, vi, &lambda)) {
SK_Intersection *isect = MEM_callocN(sizeof(SK_Intersection), "Intersection");
@@ -1541,8 +1540,8 @@ static int sk_getIntersections(bContext *C, ListBase *list, SK_Sketch *sketch, S
float s_p2[3] = {0, 0, 0};
int g_i;
- project_float(ar, stk->points[s_i].p, s_p1);
- project_float(ar, stk->points[s_i + 1].p, s_p2);
+ ED_view3d_project_float_global(ar, stk->points[s_i].p, s_p1, V3D_PROJ_TEST_NOP);
+ ED_view3d_project_float_global(ar, stk->points[s_i + 1].p, s_p2, V3D_PROJ_TEST_NOP);
for (g_i = 0; g_i < gesture->nb_points - 1; g_i++) {
float g_p1[3] = {0, 0, 0};
@@ -1550,8 +1549,8 @@ static int sk_getIntersections(bContext *C, ListBase *list, SK_Sketch *sketch, S
float vi[3];
float lambda;
- project_float(ar, gesture->points[g_i].p, g_p1);
- project_float(ar, gesture->points[g_i + 1].p, g_p2);
+ ED_view3d_project_float_global(ar, gesture->points[g_i].p, g_p1, V3D_PROJ_TEST_NOP);
+ ED_view3d_project_float_global(ar, gesture->points[g_i + 1].p, g_p2, V3D_PROJ_TEST_NOP);
if (isect_line_line_strict_v3(s_p1, s_p2, g_p1, g_p2, vi, &lambda)) {
SK_Intersection *isect = MEM_callocN(sizeof(SK_Intersection), "Intersection");
@@ -1727,8 +1726,8 @@ void sk_applyCommandGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UN
SK_Intersection *isect;
int command = 1;
-// XXX
-// command = pupmenu("Action %t|Flatten %x1|Straighten %x2|Polygonize %x3");
+/* XXX */
+/* command = pupmenu("Action %t|Flatten %x1|Straighten %x2|Polygonize %x3"); */
if (command < 1) return;
for (isect = gest->intersections.first; isect; isect = isect->next) {
@@ -1794,33 +1793,35 @@ int sk_detectMergeGesture(bContext *C, SK_Gesture *gest, SK_Sketch *UNUSED(sketc
short start_val[2], end_val[2];
short dist;
- project_short_noclip(ar, gest->stk->points[0].p, start_val);
- project_short_noclip(ar, sk_lastStrokePoint(gest->stk)->p, end_val);
+ if ((ED_view3d_project_short_global(ar, gest->stk->points[0].p, start_val, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) &&
+ (ED_view3d_project_short_global(ar, sk_lastStrokePoint(gest->stk)->p, end_val, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK))
+ {
- dist = MAX2(ABS(start_val[0] - end_val[0]), ABS(start_val[1] - end_val[1]));
+ dist = MAX2(ABS(start_val[0] - end_val[0]), ABS(start_val[1] - end_val[1]));
- /* if gesture is a circle */
- if (dist <= 20) {
- SK_Intersection *isect;
+ /* if gesture is a circle */
+ if (dist <= 20) {
+ SK_Intersection *isect;
- /* check if it circled around an exact point */
- for (isect = gest->intersections.first; isect; isect = isect->next) {
- /* only delete strokes that are crossed twice */
- if (isect->next && isect->next->stroke == isect->stroke) {
- int start_index, end_index;
- int i;
+ /* check if it circled around an exact point */
+ for (isect = gest->intersections.first; isect; isect = isect->next) {
+ /* only delete strokes that are crossed twice */
+ if (isect->next && isect->next->stroke == isect->stroke) {
+ int start_index, end_index;
+ int i;
- start_index = MIN2(isect->after, isect->next->after);
- end_index = MAX2(isect->before, isect->next->before);
+ start_index = MIN2(isect->after, isect->next->after);
+ end_index = MAX2(isect->before, isect->next->before);
- for (i = start_index; i <= end_index; i++) {
- if (isect->stroke->points[i].type == PT_EXACT) {
- return 1; /* at least one exact point found, stop detect here */
+ for (i = start_index; i <= end_index; i++) {
+ if (isect->stroke->points[i].type == PT_EXACT) {
+ return 1; /* at least one exact point found, stop detect here */
+ }
}
- }
- /* skip next */
- isect = isect->next;
+ /* skip next */
+ isect = isect->next;
+ }
}
}
}
diff --git a/source/blender/editors/armature/meshlaplacian.c b/source/blender/editors/armature/meshlaplacian.c
index 6b6d2a1505f..e7efd7936c0 100644
--- a/source/blender/editors/armature/meshlaplacian.c
+++ b/source/blender/editors/armature/meshlaplacian.c
@@ -667,7 +667,7 @@ void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource,
*err_str = NULL;
/* count triangles and create mask */
- if ((use_face_sel = (me->editflag & ME_EDIT_PAINT_MASK) != 0) ||
+ if ((use_face_sel = ((me->editflag & ME_EDIT_PAINT_MASK) != 0)) ||
(use_vert_sel = ((me->editflag & ME_EDIT_VERT_SEL) != 0)))
{
mask = MEM_callocN(sizeof(int) * me->totvert, "heat_bone_weighting mask");
@@ -1113,6 +1113,9 @@ typedef struct MeshDeformBind {
/* direct solver */
int *varidx;
+
+ BVHTree *bvhtree;
+ BVHTreeFromMesh bvhdata;
} MeshDeformBind;
typedef struct MeshDeformIsect {
@@ -1130,8 +1133,9 @@ typedef struct MeshDeformIsect {
/* our own triangle intersection, so we can fully control the epsilons and
* prevent corner case from going wrong*/
-static int meshdeform_tri_intersect(float orig[3], float end[3], float vert0[3],
- float vert1[3], float vert2[3], float *isectco, float *uvw)
+static int meshdeform_tri_intersect(const float orig[3], const float end[3], const float vert0[3],
+ const float vert1[3], const float vert2[3],
+ float r_isectco[3], float r_uvw[3])
{
float edge1[3], edge2[3], tvec[3], pvec[3], qvec[3];
float det, inv_det, u, v, dir[3], isectdir[3];
@@ -1148,8 +1152,10 @@ static int meshdeform_tri_intersect(float orig[3], float end[3], float vert0[3],
/* if determinant is near zero, ray lies in plane of triangle */
det = dot_v3v3(edge1, pvec);
- if (det == 0.0f)
+ if (UNLIKELY(det == 0.0f)) {
return 0;
+ }
+
inv_det = 1.0f / det;
/* calculate distance from vert0 to ray origin */
@@ -1168,16 +1174,16 @@ static int meshdeform_tri_intersect(float orig[3], float end[3], float vert0[3],
if (v < -EPSILON || u + v > 1.0f + EPSILON)
return 0;
- isectco[0] = (1.0f - u - v) * vert0[0] + u * vert1[0] + v * vert2[0];
- isectco[1] = (1.0f - u - v) * vert0[1] + u * vert1[1] + v * vert2[1];
- isectco[2] = (1.0f - u - v) * vert0[2] + u * vert1[2] + v * vert2[2];
+ r_isectco[0] = (1.0f - u - v) * vert0[0] + u * vert1[0] + v * vert2[0];
+ r_isectco[1] = (1.0f - u - v) * vert0[1] + u * vert1[1] + v * vert2[1];
+ r_isectco[2] = (1.0f - u - v) * vert0[2] + u * vert1[2] + v * vert2[2];
- uvw[0] = 1.0f - u - v;
- uvw[1] = u;
- uvw[2] = v;
+ r_uvw[0] = 1.0f - u - v;
+ r_uvw[1] = u;
+ r_uvw[2] = v;
/* check if it is within the length of the line segment */
- sub_v3_v3v3(isectdir, isectco, orig);
+ sub_v3_v3v3(isectdir, r_isectco, orig);
if (dot_v3v3(dir, isectdir) < -EPSILON)
return 0;
@@ -1188,83 +1194,79 @@ static int meshdeform_tri_intersect(float orig[3], float end[3], float vert0[3],
return 1;
}
-static int meshdeform_intersect(MeshDeformBind *mdb, MeshDeformIsect *isec)
-{
- MFace *mface;
- float face[4][3], co[3], uvw[3], len, nor[3], end[3];
- int f, hit, is = 0, totface;
-
- isec->labda = 1e10;
-
- mface = mdb->cagedm->getTessFaceArray(mdb->cagedm);
- totface = mdb->cagedm->getNumTessFaces(mdb->cagedm);
-
- add_v3_v3v3(end, isec->start, isec->vec);
-
- for (f = 0; f < totface; f++, mface++) {
- copy_v3_v3(face[0], mdb->cagecos[mface->v1]);
- copy_v3_v3(face[1], mdb->cagecos[mface->v2]);
- copy_v3_v3(face[2], mdb->cagecos[mface->v3]);
-
- if (mface->v4) {
- copy_v3_v3(face[3], mdb->cagecos[mface->v4]);
- hit = meshdeform_tri_intersect(isec->start, end, face[0], face[1], face[2], co, uvw);
-
- if (hit) {
- normal_tri_v3(nor, face[0], face[1], face[2]);
- }
- else {
- hit = meshdeform_tri_intersect(isec->start, end, face[0], face[2], face[3], co, uvw);
- normal_tri_v3(nor, face[0], face[2], face[3]);
- }
- }
- else {
- hit = meshdeform_tri_intersect(isec->start, end, face[0], face[1], face[2], co, uvw);
- normal_tri_v3(nor, face[0], face[1], face[2]);
- }
-
- if (hit) {
- len = len_v3v3(isec->start, co) / len_v3v3(isec->start, end);
- if (len < isec->labda) {
- isec->labda = len;
- isec->face = mface;
- isec->isect = (dot_v3v3(isec->vec, nor) <= 0.0f);
- is = 1;
- }
- }
+static void harmonic_ray_callback(void *userdata, int index, const BVHTreeRay *ray, BVHTreeRayHit *hit)
+ {
+ void **data = userdata;
+ MeshDeformBind *mdb = data[1];
+ MFace *mface = data[0], *mf;
+ MeshDeformIsect *isec = data[2];
+ float no[3], co[3], end[3], uvw[3], dist, face[4][3];
+
+ mf = mface + index;
+
+ copy_v3_v3(face[0], mdb->cagecos[mf->v1]);
+ copy_v3_v3(face[1], mdb->cagecos[mf->v2]);
+ copy_v3_v3(face[2], mdb->cagecos[mf->v3]);
+ if (mf->v4)
+ copy_v3_v3(face[3], mdb->cagecos[mf->v4]);
+
+ add_v3_v3v3(end, isec->start, isec->vec);
+
+ if (!meshdeform_tri_intersect(ray->origin, end, face[0], face[1], face[2], co, uvw))
+ if (!mf->v4 || !meshdeform_tri_intersect(ray->origin, end, face[0], face[2], face[3], co, uvw))
+ return;
+
+ if (!mf->v4)
+ normal_tri_v3(no, face[0], face[1], face[2]);
+ else
+ normal_quad_v3(no, face[0], face[1], face[2], face[3]);
+
+ dist = len_v3v3(ray->origin, co)/len_v3(isec->vec);
+ if (dist < hit->dist) {
+ hit->index = index;
+ hit->dist = dist;
+ copy_v3_v3(hit->co, co);
+
+ isec->isect = dot_v3v3(no, ray->direction) <= 0.0;
+ isec->labda = dist;
+ isec->face = mf;
}
-
- return is;
}
static MDefBoundIsect *meshdeform_ray_tree_intersect(MeshDeformBind *mdb, float *co1, float *co2)
{
MDefBoundIsect *isect;
- MeshDeformIsect isec;
+ BVHTreeRayHit hit;
+ MeshDeformIsect isect_mdef;
float (*cagecos)[3];
- MFace *mface;
+ void *data[3] = {mdb->cagedm->getTessFaceArray(mdb->cagedm), mdb, &isect_mdef};
+ MFace *mface1 = data[0], *mface;
float vert[4][3], len, end[3];
static float epsilon[3] = {0, 0, 0}; //1e-4, 1e-4, 1e-4};
/* setup isec */
- memset(&isec, 0, sizeof(isec));
- isec.labda = 1e10f;
+ memset(&isect_mdef, 0, sizeof(isect_mdef));
+ isect_mdef.labda = 1e10f;
- add_v3_v3v3(isec.start, co1, epsilon);
+ add_v3_v3v3(isect_mdef.start, co1, epsilon);
add_v3_v3v3(end, co2, epsilon);
- sub_v3_v3v3(isec.vec, end, isec.start);
+ sub_v3_v3v3(isect_mdef.vec, end, isect_mdef.start);
- if (meshdeform_intersect(mdb, &isec)) {
- len = isec.labda;
- mface = (MFace *)isec.face;
+ hit.index = -1;
+ hit.dist = FLT_MAX;
+ if (BLI_bvhtree_ray_cast(mdb->bvhtree, isect_mdef.start, isect_mdef.vec,
+ 0.0, &hit, harmonic_ray_callback, data) != -1)
+ {
+ len= isect_mdef.labda;
+ isect_mdef.face = mface = mface1 + hit.index;
/* create MDefBoundIsect */
isect = BLI_memarena_alloc(mdb->memarena, sizeof(*isect));
/* compute intersection coordinate */
- isect->co[0] = co1[0] + isec.vec[0] * len;
- isect->co[1] = co1[1] + isec.vec[1] * len;
- isect->co[2] = co1[2] + isec.vec[2] * len;
+ isect->co[0] = co1[0] + isect_mdef.vec[0] * len;
+ isect->co[1] = co1[1] + isect_mdef.vec[1] * len;
+ isect->co[2] = co1[2] + isect_mdef.vec[2] * len;
isect->len = len_v3v3(co1, isect->co);
if (isect->len < MESHDEFORM_LEN_THRESHOLD)
@@ -1276,7 +1278,7 @@ static MDefBoundIsect *meshdeform_ray_tree_intersect(MeshDeformBind *mdb, float
isect->v[3] = mface->v4;
isect->nvert = (mface->v4) ? 4 : 3;
- isect->facing = isec.isect;
+ isect->facing = isect_mdef.isect;
/* compute mean value coordinates for interpolation */
cagecos = mdb->cagecos;
@@ -1766,7 +1768,7 @@ static void harmonic_coordinates_bind(Scene *UNUSED(scene), MeshDeformModifierDa
mdb->totalphi = MEM_callocN(sizeof(float) * mdb->size3, "MeshDeformBindTotalPhi");
mdb->boundisect = MEM_callocN(sizeof(*mdb->boundisect) * mdb->size3, "MDefBoundIsect");
mdb->semibound = MEM_callocN(sizeof(int) * mdb->size3, "MDefSemiBound");
-
+ mdb->bvhtree = bvhtree_from_mesh_faces(&mdb->bvhdata, mdb->cagedm, FLT_EPSILON*100, 4, 6);
mdb->inside = MEM_callocN(sizeof(int) * mdb->totvert, "MDefInside");
if (mmd->flag & MOD_MDEF_DYNAMIC_BIND)
@@ -1882,6 +1884,7 @@ static void harmonic_coordinates_bind(Scene *UNUSED(scene), MeshDeformModifierDa
MEM_freeN(mdb->boundisect);
MEM_freeN(mdb->semibound);
BLI_memarena_free(mdb->memarena);
+ free_bvhtree_from_mesh(&mdb->bvhdata);
}
#if 0
diff --git a/source/blender/editors/armature/poseSlide.c b/source/blender/editors/armature/poseSlide.c
index 51700793791..31398948b82 100644
--- a/source/blender/editors/armature/poseSlide.c
+++ b/source/blender/editors/armature/poseSlide.c
@@ -243,32 +243,32 @@ static void pose_slide_apply_val(tPoseSlideOp *pso, FCurve *fcu, float *val)
* - numerator should be larger than denominator to 'expand' the result
* - perform this weighting a number of times given by the percentage...
*/
- int iters = (int)ceil(10.0f * pso->percentage); // TODO: maybe a sensitivity ctrl on top of this is needed
-
+ int iters = (int)ceil(10.0f * pso->percentage); /* TODO: maybe a sensitivity ctrl on top of this is needed */
+
while (iters-- > 0) {
(*val) = (-((sVal * w2) + (eVal * w1)) + ((*val) * 6.0f) ) / 5.0f;
}
}
break;
-
+
case POSESLIDE_RELAX: /* make the current pose more like its surrounding ones */
{
/* perform a weighted average here, favoring the middle pose
* - numerator should be smaller than denominator to 'relax' the result
* - perform this weighting a number of times given by the percentage...
*/
- int iters = (int)ceil(10.0f * pso->percentage); // TODO: maybe a sensitivity ctrl on top of this is needed
-
+ int iters = (int)ceil(10.0f * pso->percentage); /* TODO: maybe a sensitivity ctrl on top of this is needed */
+
while (iters-- > 0) {
(*val) = ( ((sVal * w2) + (eVal * w1)) + ((*val) * 5.0f) ) / 6.0f;
}
}
break;
-
+
case POSESLIDE_BREAKDOWN: /* make the current pose slide around between the endpoints */
{
/* perform simple linear interpolation - coefficient for start must come from pso->percentage... */
- // TODO: make this use some kind of spline interpolation instead?
+ /* TODO: make this use some kind of spline interpolation instead? */
(*val) = ((sVal * w2) + (eVal * w1));
}
break;
@@ -415,11 +415,11 @@ static void pose_slide_apply_quat(tPoseSlideOp *pso, tPChanFCurveLink *pfl)
}
else if (pso->mode == POSESLIDE_PUSH) {
float quat_diff[4], quat_orig[4];
-
+
/* calculate the delta transform from the previous to the current */
- // TODO: investigate ways to favour one transform more?
+ /* TODO: investigate ways to favour one transform more? */
sub_qt_qtqt(quat_diff, pchan->quat, quat_prev);
-
+
/* make a copy of the original rotation */
copy_qt_qt(quat_orig, pchan->quat);
@@ -428,8 +428,8 @@ static void pose_slide_apply_quat(tPoseSlideOp *pso, tPChanFCurveLink *pfl)
}
else {
float quat_interp[4], quat_orig[4];
- int iters = (int)ceil(10.0f * pso->percentage); // TODO: maybe a sensitivity ctrl on top of this is needed
-
+ int iters = (int)ceil(10.0f * pso->percentage); /* TODO: maybe a sensitivity ctrl on top of this is needed */
+
/* perform this blending several times until a satisfactory result is reached */
while (iters-- > 0) {
/* calculate the interpolation between the endpoints */
@@ -631,6 +631,7 @@ static int pose_slide_modal(bContext *C, wmOperator *op, wmEvent *evt)
switch (evt->type) {
case LEFTMOUSE: /* confirm */
+ case RETKEY:
{
/* return to normal cursor and header status */
ED_area_headerprint(pso->sa, NULL);
diff --git a/source/blender/editors/armature/poseUtils.c b/source/blender/editors/armature/poseUtils.c
index 4e0398168d3..e2e3c49e7e0 100644
--- a/source/blender/editors/armature/poseUtils.c
+++ b/source/blender/editors/armature/poseUtils.c
@@ -185,7 +185,7 @@ void poseAnim_mapping_refresh(bContext *C, Scene *scene, Object *ob)
/* old optimize trick... this enforces to bypass the depgraph
* - note: code copied from transform_generics.c -> recalcData()
*/
- // FIXME: shouldn't this use the builtin stuff?
+ /* FIXME: shouldn't this use the builtin stuff? */
if ((arm->flag & ARM_DELAYDEFORM) == 0)
DAG_id_tag_update(&ob->id, OB_RECALC_DATA); /* sets recalc flags */
else
diff --git a/source/blender/editors/armature/poselib.c b/source/blender/editors/armature/poselib.c
index ee54fc2c6fe..eea7424c59a 100644
--- a/source/blender/editors/armature/poselib.c
+++ b/source/blender/editors/armature/poselib.c
@@ -306,11 +306,11 @@ static int poselib_sanitize_exec(bContext *C, wmOperator *op)
BLI_dlrbTree_init(&keys);
action_to_keylist(NULL, act, &keys, NULL);
BLI_dlrbTree_linkedlist_sync(&keys);
-
+
/* for each key, make sure there is a corresponding pose */
for (ak = keys.first; ak; ak = ak->next) {
/* check if any pose matches this */
- // TODO: don't go looking through the list like this every time...
+ /* TODO: don't go looking through the list like this every time... */
for (marker = act->markers.first; marker; marker = marker->next) {
if (IS_EQ(marker->frame, (double)ak->cfra)) {
marker->flag = -1;
@@ -472,8 +472,8 @@ static int poselib_add_exec(bContext *C, wmOperator *op)
BLI_uniquename(&act->markers, marker, "Pose", '.', offsetof(TimeMarker, name), sizeof(marker->name));
/* use Keying Set to determine what to store for the pose */
- // FIXME: in the past, the Keying Set respected selections (LocRotScale), but the current one doesn't (WholeCharacter)
- // so perhaps we need either a new Keying Set, or just to add overrides here...
+ /* FIXME: in the past, the Keying Set respected selections (LocRotScale), but the current one doesn't
+ * (WholeCharacter) so perhaps we need either a new Keying Set, or just to add overrides here... */
ANIM_apply_keyingset(C, NULL, act, ks, MODIFYKEY_MODE_INSERT, (float)frame);
/* store new 'active' pose number */
@@ -819,12 +819,12 @@ static void poselib_backup_restore(tPoseLib_PreviewData *pld)
for (plb = pld->backups.first; plb; plb = plb->next) {
/* copy most of data straight back */
memcpy(plb->pchan, &plb->olddata, sizeof(bPoseChannel));
-
+
/* just overwrite values of properties from the stored copies (there should be some) */
if (plb->oldprops)
IDP_SyncGroupValues(plb->pchan->prop, plb->oldprops);
-
- // TODO: constraints settings aren't restored yet, even though these could change (though not that likely)
+
+ /* TODO: constraints settings aren't restored yet, even though these could change (though not that likely) */
}
}
@@ -832,10 +832,10 @@ static void poselib_backup_restore(tPoseLib_PreviewData *pld)
static void poselib_backup_free_data(tPoseLib_PreviewData *pld)
{
tPoseLib_Backup *plb, *plbn;
-
+
for (plb = pld->backups.first; plb; plb = plbn) {
plbn = plb->next;
-
+
/* free custom data */
if (plb->oldprops) {
IDP_FreeProperty(plb->oldprops);
@@ -1006,7 +1006,7 @@ static void poselib_preview_apply(bContext *C, wmOperator *op)
/* get search-string */
index = pld->search_cursor;
- if (index >= 0 && index <= sizeof(tempstr) - 1) {
+ if (index >= 0 && index < sizeof(tempstr) - 1) {
memcpy(&tempstr[0], &pld->searchstr[0], index);
tempstr[index] = '|';
memcpy(&tempstr[index + 1], &pld->searchstr[index], (sizeof(tempstr) - 1) - index);
@@ -1658,11 +1658,11 @@ void POSELIB_OT_apply_pose(wmOperatorType *ot)
/* callbacks */
ot->exec = poselib_preview_exec;
ot->poll = has_poselib_pose_data_poll;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- /* properties */
- // TODO: make the pose_index into a proper enum instead of a cryptic int...
+
+ /* properties */
+ /* TODO: make the pose_index into a proper enum instead of a cryptic int... */
ot->prop = RNA_def_int(ot->srna, "pose_index", -1, -2, INT_MAX, "Pose", "Index of the pose to apply (-2 for no change to pose, -1 for poselib active pose)", 0, INT_MAX);
}
diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c
index 9bcbf313f13..189b2e977c2 100644
--- a/source/blender/editors/armature/poseobject.c
+++ b/source/blender/editors/armature/poseobject.c
@@ -74,12 +74,30 @@
#include "ED_mesh.h"
#include "ED_screen.h"
#include "ED_object.h"
+#include "ED_util.h" /* clipboard */
#include "UI_interface.h"
#include "UI_resources.h"
#include "armature_intern.h"
+/* matches logic with ED_operator_posemode_context() */
+Object *ED_pose_object_from_context(bContext *C)
+{
+ ScrArea *sa = CTX_wm_area(C);
+ Object *ob;
+
+ /* since this call may also be used from the buttons window, we need to check for where to get the object */
+ if (sa && sa->spacetype == SPACE_BUTS) {
+ ob = ED_object_context(C);
+ }
+ else {
+ ob = BKE_object_pose_armature_get(CTX_data_active_object(C));
+ }
+
+ return ob;
+}
+
/* This function is used to process the necessary updates for */
void ED_armature_enter_posemode(bContext *C, Base *base)
{
@@ -103,7 +121,7 @@ void ED_armature_enter_posemode(bContext *C, Base *base)
return;
}
- // XXX: disabled as this would otherwise cause a nasty loop...
+ /* XXX: disabled as this would otherwise cause a nasty loop... */
//ED_object_toggle_modes(C, ob->mode);
}
@@ -253,14 +271,14 @@ static int pose_calculate_paths_exec(bContext *C, wmOperator *op)
animviz_verify_motionpaths(op->reports, scene, ob, pchan);
}
CTX_DATA_END;
-
+
/* calculate the bones that now have motionpaths... */
- // TODO: only make for the selected bones?
+ /* TODO: only make for the selected bones? */
ED_pose_recalculate_paths(scene, ob);
-
+
/* notifiers for updates */
WM_event_add_notifier(C, NC_OBJECT | ND_POSE, ob);
-
+
return OPERATOR_FINISHED;
}
@@ -274,7 +292,7 @@ void POSE_OT_paths_calculate(wmOperatorType *ot)
/* api callbacks */
ot->invoke = pose_calculate_paths_invoke;
ot->exec = pose_calculate_paths_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_exclusive;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -299,9 +317,9 @@ static int pose_update_paths_exec(bContext *C, wmOperator *UNUSED(op))
if (ELEM(NULL, ob, scene))
return OPERATOR_CANCELLED;
-
+
/* calculate the bones that now have motionpaths... */
- // TODO: only make for the selected bones?
+ /* TODO: only make for the selected bones? */
ED_pose_recalculate_paths(scene, ob);
/* notifiers for updates */
@@ -319,7 +337,7 @@ void POSE_OT_paths_update(wmOperatorType *ot)
/* api callbakcs */
ot->exec = pose_update_paths_exec;
- ot->poll = ED_operator_posemode; /* TODO: this should probably check for active bone and/or existing paths */
+ ot->poll = ED_operator_posemode_exclusive; /* TODO: this should probably check for active bone and/or existing paths */
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -380,7 +398,7 @@ void POSE_OT_paths_clear(wmOperatorType *ot)
/* api callbacks */
ot->exec = pose_clear_paths_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_exclusive;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -474,7 +492,7 @@ static int pose_select_hierarchy_exec(bContext *C, wmOperator *op)
if (pchan->parent == NULL) continue;
else pabone = pchan->parent->bone;
- if (PBONE_VISIBLE(arm, pabone)) {
+ if (PBONE_SELECTABLE(arm, pabone)) {
if (!add_to_sel) curbone->flag &= ~BONE_SELECTED;
pabone->flag |= BONE_SELECTED;
arm->act_bone = pabone;
@@ -496,7 +514,7 @@ static int pose_select_hierarchy_exec(bContext *C, wmOperator *op)
for (pchan_child = ob->pose->chanbase.first; pchan_child; pchan_child = pchan_child->next) {
/* possible we have multiple children, some invisible */
- if (PBONE_VISIBLE(arm, pchan_child->bone)) {
+ if (PBONE_SELECTABLE(arm, pchan_child->bone)) {
if (pchan_child->parent == pchan) {
chbone = pchan_child->bone;
break;
@@ -508,7 +526,7 @@ static int pose_select_hierarchy_exec(bContext *C, wmOperator *op)
if (chbone == NULL) continue;
#endif
- if (PBONE_VISIBLE(arm, chbone)) {
+ if (PBONE_SELECTABLE(arm, chbone)) {
if (!add_to_sel) curbone->flag &= ~BONE_SELECTED;
chbone->flag |= BONE_SELECTED;
arm->act_bone = chbone;
@@ -694,16 +712,14 @@ static int pose_select_same_keyingset(bContext *C, Object *ob, short extend)
/* only items related to this object will be relevant */
if ((ksp->id == &ob->id) && (ksp->rna_path != NULL)) {
if (strstr(ksp->rna_path, "bones")) {
- char *boneName = BLI_getQuotedStr(ksp->rna_path, "bones[");
+ char *boneName = BLI_str_quoted_substrN(ksp->rna_path, "bones[");
if (boneName) {
bPoseChannel *pchan = BKE_pose_channel_find_name(pose, boneName);
if (pchan) {
/* select if bone is visible and can be affected */
- if ((PBONE_VISIBLE(arm, pchan->bone)) &&
- (pchan->bone->flag & BONE_UNSELECTABLE) == 0)
- {
+ if (PBONE_SELECTABLE(arm, pchan->bone)) {
pchan->bone->flag |= BONE_SELECTED;
changed = 1;
}
@@ -727,7 +743,7 @@ static int pose_select_grouped_exec(bContext *C, wmOperator *op)
short changed = 0;
/* sanity check */
- if (ELEM(NULL, ob, ob->pose))
+ if (ob->pose == NULL)
return OPERATOR_CANCELLED;
/* selection types
@@ -870,16 +886,16 @@ static void pose_copy_menu(Scene *scene)
if (pose_has_protected_selected(ob, 0)) {
i = BLI_countlist(&(pchanact->constraints)); /* if there are 24 or less, allow for the user to select constraints */
if (i < 25)
- nr = pupmenu("Copy Pose Attributes %t|Local Location%x1|Local Rotation%x2|Local Size%x3|%l|Visual Location %x9|Visual Rotation%x10|Visual Size%x11|%l|Constraints (All)%x4|Constraints...%x5");
+ nr = pupmenu("Copy Pose Attributes %t|Local Location %x1|Local Rotation %x2|Local Size %x3|%l|Visual Location %x9|Visual Rotation %x10|Visual Size %x11|%l|Constraints (All) %x4|Constraints... %x5");
else
- nr = pupmenu("Copy Pose Attributes %t|Local Location%x1|Local Rotation%x2|Local Size%x3|%l|Visual Location %x9|Visual Rotation%x10|Visual Size%x11|%l|Constraints (All)%x4");
+ nr = pupmenu("Copy Pose Attributes %t|Local Location %x1|Local Rotation %x2|Local Size %x3|%l|Visual Location %x9|Visual Rotation %x10|Visual Size %x11|%l|Constraints (All) %x4");
}
else {
i = BLI_countlist(&(pchanact->constraints)); /* if there are 24 or less, allow for the user to select constraints */
if (i < 25)
- nr = pupmenu("Copy Pose Attributes %t|Local Location%x1|Local Rotation%x2|Local Size%x3|%l|Visual Location %x9|Visual Rotation%x10|Visual Size%x11|%l|Constraints (All)%x4|Constraints...%x5|%l|Transform Locks%x6|IK Limits%x7|Bone Shape%x8");
+ nr = pupmenu("Copy Pose Attributes %t|Local Location %x1|Local Rotation %x2|Local Size %x3|%l|Visual Location %x9|Visual Rotation %x10|Visual Size %x11|%l|Constraints (All) %x4|Constraints... %x5|%l|Transform Locks %x6|IK Limits %x7|Bone Shape %x8");
else
- nr = pupmenu("Copy Pose Attributes %t|Local Location%x1|Local Rotation%x2|Local Size%x3|%l|Visual Location %x9|Visual Rotation%x10|Visual Size%x11|%l|Constraints (All)%x4|%l|Transform Locks%x6|IK Limits%x7|Bone Shape%x8");
+ nr = pupmenu("Copy Pose Attributes %t|Local Location %x1|Local Rotation %x2|Local Size %x3|%l|Visual Location %x9|Visual Rotation %x10|Visual Size %x11|%l|Constraints (All) %x4|%l|Transform Locks %x6|IK Limits %x7|Bone Shape %x8");
}
if (nr <= 0)
@@ -1049,7 +1065,7 @@ static void pose_copy_menu(Scene *scene)
/* Global copy/paste buffer for pose - cleared on start/end session + before every copy operation */
static bPose *g_posebuf = NULL;
-void free_posebuf(void)
+void ED_clipboard_posebuf_free(void)
{
if (g_posebuf) {
bPoseChannel *pchan;
@@ -1225,7 +1241,7 @@ static int pose_copy_exec(bContext *C, wmOperator *op)
}
/* free existing pose buffer */
- free_posebuf();
+ ED_clipboard_posebuf_free();
/* sets chan->flag to POSE_KEY if bone selected, then copy those bones to the buffer */
set_pose_keys(ob);
@@ -1330,15 +1346,8 @@ void POSE_OT_paste(wmOperatorType *ot)
static int pose_group_add_exec(bContext *C, wmOperator *UNUSED(op))
{
- ScrArea *sa = CTX_wm_area(C);
- Object *ob;
-
- /* since this call may also be used from the buttons window, we need to check for where to get the object */
- if (sa->spacetype == SPACE_BUTS)
- ob = ED_object_context(C);
- else
- ob = BKE_object_pose_armature_get(CTX_data_active_object(C));
-
+ Object *ob = ED_pose_object_from_context(C);
+
/* only continue if there's an object */
if (ob == NULL)
return OPERATOR_CANCELLED;
@@ -1361,7 +1370,7 @@ void POSE_OT_group_add(wmOperatorType *ot)
/* api callbacks */
ot->exec = pose_group_add_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_context;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1370,14 +1379,7 @@ void POSE_OT_group_add(wmOperatorType *ot)
static int pose_group_remove_exec(bContext *C, wmOperator *UNUSED(op))
{
- ScrArea *sa = CTX_wm_area(C);
- Object *ob;
-
- /* since this call may also be used from the buttons window, we need to check for where to get the object */
- if (sa->spacetype == SPACE_BUTS)
- ob = ED_object_context(C);
- else
- ob = BKE_object_pose_armature_get(CTX_data_active_object(C));
+ Object *ob = ED_pose_object_from_context(C);
/* only continue if there's an object */
if (ob == NULL)
@@ -1401,7 +1403,7 @@ void POSE_OT_group_remove(wmOperatorType *ot)
/* api callbacks */
ot->exec = pose_group_remove_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_context;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1412,8 +1414,7 @@ void POSE_OT_group_remove(wmOperatorType *ot)
/* invoke callback which presents a list of bone-groups for the user to choose from */
static int pose_groups_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(evt))
{
- ScrArea *sa = CTX_wm_area(C);
- Object *ob;
+ Object *ob = ED_pose_object_from_context(C);
bPose *pose;
uiPopupMenu *pup;
@@ -1421,12 +1422,6 @@ static int pose_groups_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(
bActionGroup *grp;
int i;
- /* since this call may also be used from the buttons window, we need to check for where to get the object */
- if (sa->spacetype == SPACE_BUTS)
- ob = ED_object_context(C);
- else
- ob = BKE_object_pose_armature_get(CTX_data_active_object(C));
-
/* only continue if there's an object, and a pose there too */
if (ELEM(NULL, ob, ob->pose))
return OPERATOR_CANCELLED;
@@ -1465,17 +1460,10 @@ static int pose_groups_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(
/* Assign selected pchans to the bone group that the user selects */
static int pose_group_assign_exec(bContext *C, wmOperator *op)
{
- ScrArea *sa = CTX_wm_area(C);
- Object *ob;
+ Object *ob = ED_pose_object_from_context(C);
bPose *pose;
short done = FALSE;
-
- /* since this call may also be used from the buttons window, we need to check for where to get the object */
- if (sa->spacetype == SPACE_BUTS)
- ob = ED_object_context(C);
- else
- ob = BKE_object_pose_armature_get(CTX_data_active_object(C));
-
+
/* only continue if there's an object, and a pose there too */
if (ELEM(NULL, ob, ob->pose))
return OPERATOR_CANCELLED;
@@ -1517,7 +1505,7 @@ void POSE_OT_group_assign(wmOperatorType *ot)
/* api callbacks */
ot->invoke = pose_groups_menu_invoke;
ot->exec = pose_group_assign_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_context;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1529,16 +1517,9 @@ void POSE_OT_group_assign(wmOperatorType *ot)
static int pose_group_unassign_exec(bContext *C, wmOperator *UNUSED(op))
{
- ScrArea *sa = CTX_wm_area(C);
- Object *ob;
+ Object *ob = ED_pose_object_from_context(C);
short done = FALSE;
- /* since this call may also be used from the buttons window, we need to check for where to get the object */
- if (sa->spacetype == SPACE_BUTS)
- ob = ED_object_context(C);
- else
- ob = BKE_object_pose_armature_get(CTX_data_active_object(C));
-
/* only continue if there's an object, and a pose there too */
if (ELEM(NULL, ob, ob->pose))
return OPERATOR_CANCELLED;
@@ -1572,7 +1553,7 @@ void POSE_OT_group_unassign(wmOperatorType *ot)
/* api callbacks */
ot->exec = pose_group_unassign_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_context;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1580,7 +1561,7 @@ void POSE_OT_group_unassign(wmOperatorType *ot)
static int group_move_exec(bContext *C, wmOperator *op)
{
- Object *ob = ED_object_context(C);
+ Object *ob = ED_pose_object_from_context(C);
bPose *pose = (ob) ? ob->pose : NULL;
bPoseChannel *pchan;
bActionGroup *grp;
@@ -1653,7 +1634,7 @@ void POSE_OT_group_move(wmOperatorType *ot)
/* api callbacks */
ot->exec = group_move_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_context;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1678,7 +1659,7 @@ static int compare_agroup(const void *sgrp_a_ptr, const void *sgrp_b_ptr)
static int group_sort_exec(bContext *C, wmOperator *UNUSED(op))
{
- Object *ob = ED_object_context(C);
+ Object *ob = ED_pose_object_from_context(C);
bPose *pose = (ob) ? ob->pose : NULL;
bPoseChannel *pchan;
tSortActionGroup *agrp_array;
@@ -1737,7 +1718,7 @@ void POSE_OT_group_sort(wmOperatorType *ot)
/* api callbacks */
ot->exec = group_sort_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_context;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1765,14 +1746,7 @@ static void pose_group_select(bContext *C, Object *ob, int select)
static int pose_group_select_exec(bContext *C, wmOperator *UNUSED(op))
{
- ScrArea *sa = CTX_wm_area(C);
- Object *ob;
-
- /* since this call may also be used from the buttons window, we need to check for where to get the object */
- if (sa->spacetype == SPACE_BUTS)
- ob = ED_object_context(C);
- else
- ob = BKE_object_pose_armature_get(CTX_data_active_object(C));
+ Object *ob = ED_pose_object_from_context(C);
/* only continue if there's an object, and a pose there too */
if (ELEM(NULL, ob, ob->pose))
@@ -1795,7 +1769,7 @@ void POSE_OT_group_select(wmOperatorType *ot)
/* api callbacks */
ot->exec = pose_group_select_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_context;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1803,14 +1777,7 @@ void POSE_OT_group_select(wmOperatorType *ot)
static int pose_group_deselect_exec(bContext *C, wmOperator *UNUSED(op))
{
- ScrArea *sa = CTX_wm_area(C);
- Object *ob;
-
- /* since this call may also be used from the buttons window, we need to check for where to get the object */
- if (sa->spacetype == SPACE_BUTS)
- ob = ED_object_context(C);
- else
- ob = BKE_object_pose_armature_get(CTX_data_active_object(C));
+ Object *ob = ED_pose_object_from_context(C);
/* only continue if there's an object, and a pose there too */
if (ELEM(NULL, ob, ob->pose))
@@ -1833,7 +1800,7 @@ void POSE_OT_group_deselect(wmOperatorType *ot)
/* api callbacks */
ot->exec = pose_group_deselect_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_context;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -2192,7 +2159,7 @@ void POSE_OT_bone_layers(wmOperatorType *ot)
/* callbacks */
ot->invoke = pose_bone_layers_invoke;
ot->exec = pose_bone_layers_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_exclusive;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -2350,20 +2317,18 @@ static int pose_clear_user_transforms_exec(bContext *C, wmOperator *op)
for (pchan = dummyPose->chanbase.first; pchan; pchan = pchan->next) {
pose_bone_do_paste(ob, pchan, only_select, 0);
}
-
+
/* free temp data - free manually as was copied without constraints */
- if (dummyPose) {
- for (pchan = dummyPose->chanbase.first; pchan; pchan = pchan->next) {
- if (pchan->prop) {
- IDP_FreeProperty(pchan->prop);
- MEM_freeN(pchan->prop);
- }
+ for (pchan = dummyPose->chanbase.first; pchan; pchan = pchan->next) {
+ if (pchan->prop) {
+ IDP_FreeProperty(pchan->prop);
+ MEM_freeN(pchan->prop);
}
-
- /* was copied without constraints */
- BLI_freelistN(&dummyPose->chanbase);
- MEM_freeN(dummyPose);
}
+
+ /* was copied without constraints */
+ BLI_freelistN(&dummyPose->chanbase);
+ MEM_freeN(dummyPose);
}
else {
/* no animation, so just reset whole pose to rest pose
diff --git a/source/blender/editors/armature/reeb.c b/source/blender/editors/armature/reeb.c
index 20b95ea55d6..00f88a69fb6 100644
--- a/source/blender/editors/armature/reeb.c
+++ b/source/blender/editors/armature/reeb.c
@@ -24,11 +24,10 @@
* \ingroup edarmature
*/
-
#include <math.h>
-#include <string.h> // for memcpy
+#include <string.h> /* for memcpy */
#include <stdio.h>
-#include <stdlib.h> // for qsort
+#include <stdlib.h> /* for qsort */
#include <float.h>
#include "DNA_scene_types.h"
@@ -45,16 +44,8 @@
#include "BLI_ghash.h"
#include "BLI_heap.h"
-//#include "BDR_editobject.h"
-
-//#include "BIF_interface.h"
-//#include "BIF_toolbox.h"
-//#include "BIF_graphics.h"
-
#include "BKE_mesh.h"
-//#include "blendef.h"
-
#include "ONL_opennl.h"
#include "reeb.h"
@@ -1753,18 +1744,18 @@ int filterSmartReebGraph(ReebGraph *UNUSED(rg), float UNUSED(threshold))
#endif
arc->angle = avg_angle;
-
+
if (avg_angle > threshold)
merging = 1;
-
+
if (merging) {
ReebNode *terminalNode = NULL;
ReebNode *middleNode = NULL;
ReebNode *newNode = NULL;
ReebNode *removedNode = NULL;
int merging = 0;
-
- // Assign terminal and middle nodes
+
+ /* Assign terminal and middle nodes */
if (arc->head->degree == 1) {
terminalNode = arc->head;
middleNode = arc->tail;
@@ -1773,31 +1764,31 @@ int filterSmartReebGraph(ReebGraph *UNUSED(rg), float UNUSED(threshold))
terminalNode = arc->tail;
middleNode = arc->head;
}
-
- // If middle node is a normal node, merge to terminal node
+
+ /* If middle node is a normal node, merge to terminal node */
if (middleNode->degree == 2) {
merging = 1;
newNode = terminalNode;
removedNode = middleNode;
}
- // Otherwise, just plain remove of the arc
+ /* Otherwise, just plain remove of the arc */
else {
merging = 0;
newNode = middleNode;
removedNode = terminalNode;
}
-
- // Merging arc
+
+ /* Merging arc */
if (merging) {
filterArc(rg, newNode, removedNode, arc, 1);
}
else {
- // removing arc, so we need to decrease the degree of the remaining node
- //newNode->degree--;
+ /* removing arc, so we need to decrease the degree of the remaining node
+ *newNode->degree--; */
NodeDegreeDecrement(rg, newNode);
}
-
- // Reset nextArc, it might have changed
+
+ /* Reset nextArc, it might have changed */
nextArc = arc->next;
BLI_remlink(&rg->arcs, arc);
@@ -3281,7 +3272,7 @@ ReebGraph *BIF_ReebGraphFromEditMesh(void)
freeEdgeIndex(&indexed_edges);
#ifdef DEBUG_REEB
- weightToVCol(em, 1);
+// weightToVCol(em, 1);
#endif
rg = generateReebGraph(em, G.scene->toolsettings->skgen_resolution);
diff --git a/source/blender/editors/armature/reeb.h b/source/blender/editors/armature/reeb.h
index d71e80ca0ca..bb8b3003baf 100644
--- a/source/blender/editors/armature/reeb.h
+++ b/source/blender/editors/armature/reeb.h
@@ -146,9 +146,9 @@ struct EdgeIndex;
int weightToHarmonic(struct EditMesh *em, struct EdgeIndex *indexed_edges);
int weightFromDistance(struct EditMesh *em, struct EdgeIndex *indexed_edges);
int weightFromLoc(struct EditMesh *me, int axis);
-void weightToVCol(struct EditMesh *em, int index);
+//void weightToVCol(struct EditMesh *em, int index);
void arcToVCol(struct ReebGraph *rg, struct EditMesh *em, int index);
-void angleToVCol(struct EditMesh *em, int index);
+//void angleToVCol(struct EditMesh *em, int index);
void renormalizeWeight(struct EditMesh *em, float newmax);
ReebGraph *generateReebGraph(struct EditMesh *me, int subdivisions);
diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c
index e8a71a35576..d22b9f2abfb 100644
--- a/source/blender/editors/curve/editcurve.c
+++ b/source/blender/editors/curve/editcurve.c
@@ -107,7 +107,7 @@ void selectend_nurb(Object *obedit, short selfirst, short doswap, short selstatu
static void select_adjacent_cp(ListBase *editnurb, short next, short cont, short selstatus);
/* still need to eradicate a few :( */
-#define callocstructN(x, y, name) (x *)MEM_callocN((y) * sizeof(x), name)
+#define CALLOC_STRUCT_N(x, y, name) (x *)MEM_callocN((y) * sizeof(x), name)
static float nurbcircle[8][2] = {
{0.0, -1.0}, {-1.0, -1.0}, {-1.0, 0.0}, {-1.0, 1.0},
@@ -1233,12 +1233,12 @@ void make_editNurb(Object *obedit)
set_actNurb(obedit, NULL);
if (ELEM(obedit->type, OB_CURVE, OB_SURF)) {
- actkey = ob_get_keyblock(obedit);
+ actkey = BKE_keyblock_from_object(obedit);
if (actkey) {
// XXX strcpy(G.editModeTitleExtra, "(Key) ");
undo_editmode_clear();
- key_to_curve(actkey, cu, &cu->nurb);
+ BKE_key_convert_to_curve(actkey, cu, &cu->nurb);
}
if (editnurb) {
@@ -1369,6 +1369,8 @@ static int separate_exec(bContext *C, wmOperator *op)
/* 1. duplicate the object and data */
newbase = ED_object_add_duplicate(bmain, scene, oldbase, 0); /* 0 = fully linked */
+ DAG_scene_sort(bmain, scene);
+
ED_base_object_select(newbase, BA_DESELECT);
newob = newbase->object;
@@ -1425,8 +1427,8 @@ void CURVE_OT_separate(wmOperatorType *ot)
static short isNurbselUV(Nurb *nu, int *u, int *v, int flag)
{
- /* return u!=-1: 1 row in u-direction selected. U has value between 0-pntsv
- * return v!=-1: 1 column in v-direction selected. V has value between 0-pntsu
+ /* return (u != -1): 1 row in u-direction selected. U has value between 0-pntsv
+ * return (v != -1): 1 column in v-direction selected. V has value between 0-pntsu
*/
BPoint *bp;
int a, b, sel;
@@ -1577,8 +1579,9 @@ static int deleteflagNurb(bContext *C, wmOperator *UNUSED(op), int flag)
BPoint *bp, *bpn, *newbp;
int a, b, newu, newv, sel;
- if (obedit->type == OB_SURF) ;
- else return OPERATOR_CANCELLED;
+ if (obedit->type != OB_SURF) {
+ return OPERATOR_CANCELLED;
+ }
cu->lastsel = NULL;
@@ -1591,8 +1594,12 @@ static int deleteflagNurb(bContext *C, wmOperator *UNUSED(op), int flag)
a = nu->pntsu * nu->pntsv;
while (a) {
a--;
- if (bp->f1 & flag) ;
- else break;
+ if (bp->f1 & flag) {
+ /* pass */
+ }
+ else {
+ break;
+ }
bp++;
}
if (a == 0) {
@@ -1713,8 +1720,12 @@ static short extrudeflagNurb(EditNurb *editnurb, int flag)
bp = nu->bp;
a = nu->pntsu;
while (a) {
- if (bp->f1 & flag) ;
- else break;
+ if (bp->f1 & flag) {
+ /* pass */
+ }
+ else {
+ break;
+ }
bp++;
a--;
}
@@ -1936,7 +1947,7 @@ static void adduplicateflagNurb(Object *obedit, short flag)
}
else {
- if (newu == 1) SWAP(short, newu, newv);
+ if (newu == 1) SWAP(int, newu, newv);
newnu = (Nurb *)MEM_mallocN(sizeof(Nurb), "adduplicateN5");
memcpy(newnu, nu, sizeof(Nurb));
@@ -3760,20 +3771,28 @@ static void merge_2_nurb(wmOperator *op, ListBase *editnurb, Nurb *nu1, Nurb *nu
/* first nurbs: u = resolu-1 selected */
- if (is_u_selected(nu1, nu1->pntsu - 1) ) ;
+ if (is_u_selected(nu1, nu1->pntsu - 1) ) {
+ /* pass */
+ }
else {
/* For 2D curves blender uses (orderv = 0). It doesn't make any sense mathematically. */
/* but after rotating (orderu = 0) will be confusing. */
if (nu1->orderv == 0) nu1->orderv = 1;
rotate_direction_nurb(nu1);
- if (is_u_selected(nu1, nu1->pntsu - 1)) ;
+ if (is_u_selected(nu1, nu1->pntsu - 1)) {
+ /* pass */
+ }
else {
rotate_direction_nurb(nu1);
- if (is_u_selected(nu1, nu1->pntsu - 1)) ;
+ if (is_u_selected(nu1, nu1->pntsu - 1)) {
+ /* pass */
+ }
else {
rotate_direction_nurb(nu1);
- if (is_u_selected(nu1, nu1->pntsu - 1)) ;
+ if (is_u_selected(nu1, nu1->pntsu - 1)) {
+ /* pass */
+ }
else {
/* rotate again, now its OK! */
if (nu1->pntsv != 1) rotate_direction_nurb(nu1);
@@ -3784,17 +3803,25 @@ static void merge_2_nurb(wmOperator *op, ListBase *editnurb, Nurb *nu1, Nurb *nu
}
/* 2nd nurbs: u = 0 selected */
- if (is_u_selected(nu2, 0) ) ;
+ if (is_u_selected(nu2, 0) ) {
+ /* pass */
+ }
else {
if (nu2->orderv == 0) nu2->orderv = 1;
rotate_direction_nurb(nu2);
- if (is_u_selected(nu2, 0)) ;
+ if (is_u_selected(nu2, 0)) {
+ /* pass */
+ }
else {
rotate_direction_nurb(nu2);
- if (is_u_selected(nu2, 0)) ;
+ if (is_u_selected(nu2, 0)) {
+ /* pass */
+ }
else {
rotate_direction_nurb(nu2);
- if (is_u_selected(nu2, 0)) ;
+ if (is_u_selected(nu2, 0)) {
+ /* pass */
+ }
else {
/* rotate again, now its OK! */
if (nu1->pntsu == 1) rotate_direction_nurb(nu1);
@@ -3890,15 +3917,27 @@ static int merge_nurb(bContext *C, wmOperator *op)
/* resolution match, to avoid uv rotations */
if (nus1->nu->pntsv == 1) {
- if (nus1->nu->pntsu == nus2->nu->pntsu || nus1->nu->pntsu == nus2->nu->pntsv) ;
- else ok = 0;
+ if (nus1->nu->pntsu == nus2->nu->pntsu || nus1->nu->pntsu == nus2->nu->pntsv) {
+ /* pass */
+ }
+ else {
+ ok = 0;
+ }
}
else if (nus2->nu->pntsv == 1) {
- if (nus2->nu->pntsu == nus1->nu->pntsu || nus2->nu->pntsu == nus1->nu->pntsv) ;
- else ok = 0;
+ if (nus2->nu->pntsu == nus1->nu->pntsu || nus2->nu->pntsu == nus1->nu->pntsv) {
+ /* pass */
+ }
+ else {
+ ok = 0;
+ }
+ }
+ else if (nus1->nu->pntsu == nus2->nu->pntsu || nus1->nu->pntsv == nus2->nu->pntsv) {
+ /* pass */
+ }
+ else if (nus1->nu->pntsu == nus2->nu->pntsv || nus1->nu->pntsv == nus2->nu->pntsu) {
+ /* pass */
}
- else if (nus1->nu->pntsu == nus2->nu->pntsu || nus1->nu->pntsv == nus2->nu->pntsv) ;
- else if (nus1->nu->pntsu == nus2->nu->pntsv || nus1->nu->pntsv == nus2->nu->pntsu) ;
else {
ok = 0;
}
@@ -3947,8 +3986,12 @@ static int make_segment_exec(bContext *C, wmOperator *op)
if (isNurbsel_count(cu, nu) == 1) {
/* only 1 selected, not first or last, a little complex, but intuitive */
if (nu->pntsv == 1) {
- if ( (nu->bp->f1 & SELECT) || (nu->bp[nu->pntsu - 1].f1 & SELECT)) ;
- else break;
+ if ( (nu->bp->f1 & SELECT) || (nu->bp[nu->pntsu - 1].f1 & SELECT)) {
+ /* pass */
+ }
+ else {
+ break;
+ }
}
}
}
@@ -5682,8 +5725,12 @@ static int delete_exec(bContext *C, wmOperator *op)
a = nu->pntsu;
if (a) {
while (a) {
- if (BEZSELECTED_HIDDENHANDLES(cu, bezt) ) ;
- else break;
+ if (BEZSELECTED_HIDDENHANDLES(cu, bezt)) {
+ /* pass */
+ }
+ else {
+ break;
+ }
a--;
bezt++;
}
@@ -5702,8 +5749,12 @@ static int delete_exec(bContext *C, wmOperator *op)
a = nu->pntsu * nu->pntsv;
if (a) {
while (a) {
- if (bp->f1 & SELECT) ;
- else break;
+ if (bp->f1 & SELECT) {
+ /* pass */
+ }
+ else {
+ break;
+ }
a--;
bp++;
}
@@ -6068,7 +6119,7 @@ void CURVE_OT_shade_flat(wmOperatorType *ot)
}
/************** join operator, to be used externally? ****************/
-
+/* TODO: shape keys - as with meshes */
int join_curve_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain = CTX_data_main(C);
@@ -6189,10 +6240,9 @@ static const char *get_surf_defname(int type)
}
-Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob)
+Nurb *add_nurbs_primitive(bContext *C, Object *obedit, float mat[4][4], int type, int newob)
{
static int xzproj = 0; /* this function calls itself... */
- Object *obedit = CTX_data_edit_object(C);
ListBase *editnurb = object_editcurve_get(obedit);
View3D *v3d = CTX_wm_view3d(C);
RegionView3D *rv3d = ED_view3d_context_rv3d(C);
@@ -6263,7 +6313,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob)
nu->pntsu = 4;
nu->pntsv = 1;
nu->orderu = 4;
- nu->bp = callocstructN(BPoint, 4, "addNurbprim3");
+ nu->bp = CALLOC_STRUCT_N(BPoint, 4, "addNurbprim3");
bp = nu->bp;
for (a = 0; a < 4; a++, bp++) {
@@ -6299,7 +6349,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob)
nu->orderu = 5;
nu->flagu = CU_NURB_ENDPOINT; /* endpoint */
nu->resolu = cu->resolu;
- nu->bp = callocstructN(BPoint, 5, "addNurbprim3");
+ nu->bp = CALLOC_STRUCT_N(BPoint, 5, "addNurbprim3");
bp = nu->bp;
for (a = 0; a < 5; a++, bp++) {
@@ -6332,7 +6382,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob)
if (cutype == CU_BEZIER) {
if (!force_3d) nu->flag |= CU_2D;
nu->pntsu = 4;
- nu->bezt = callocstructN(BezTriple, 4, "addNurbprim1");
+ nu->bezt = CALLOC_STRUCT_N(BezTriple, 4, "addNurbprim1");
nu->flagu = CU_NURB_CYCLIC;
bezt = nu->bezt;
@@ -6369,7 +6419,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob)
nu->pntsu = 8;
nu->pntsv = 1;
nu->orderu = 4;
- nu->bp = callocstructN(BPoint, 8, "addNurbprim6");
+ nu->bp = CALLOC_STRUCT_N(BPoint, 8, "addNurbprim6");
nu->flagu = CU_NURB_CYCLIC;
bp = nu->bp;
@@ -6402,7 +6452,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob)
nu->orderu = 4;
nu->orderv = 4;
nu->flag = CU_SMOOTH;
- nu->bp = callocstructN(BPoint, 4 * 4, "addNurbprim6");
+ nu->bp = CALLOC_STRUCT_N(BPoint, 4 * 4, "addNurbprim6");
nu->flagu = 0;
nu->flagv = 0;
bp = nu->bp;
@@ -6429,7 +6479,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob)
break;
case CU_PRIM_TUBE: /* Cylinder */
if (cutype == CU_NURBS) {
- nu = add_nurbs_primitive(C, mat, CU_NURBS | CU_PRIM_CIRCLE, 0); /* circle */
+ nu = add_nurbs_primitive(C, obedit, mat, CU_NURBS | CU_PRIM_CIRCLE, 0); /* circle */
nu->resolu = cu->resolu;
nu->flag = CU_SMOOTH;
BLI_addtail(editnurb, nu); /* temporal for extrude and translate */
@@ -6469,7 +6519,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob)
nu->resolu = cu->resolu;
nu->resolv = cu->resolv;
nu->flag = CU_SMOOTH;
- nu->bp = callocstructN(BPoint, 5, "addNurbprim6");
+ nu->bp = CALLOC_STRUCT_N(BPoint, 5, "addNurbprim6");
nu->flagu = 0;
bp = nu->bp;
@@ -6508,7 +6558,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob)
float tmp_vec[3] = {0.f, 0.f, 1.f};
xzproj = 1;
- nu = add_nurbs_primitive(C, mat, CU_NURBS | CU_PRIM_CIRCLE, 0); /* circle */
+ nu = add_nurbs_primitive(C, obedit, mat, CU_NURBS | CU_PRIM_CIRCLE, 0); /* circle */
xzproj = 0;
nu->resolu = cu->resolu;
nu->resolv = cu->resolv;
@@ -6566,18 +6616,18 @@ static int curvesurf_prim_add(bContext *C, wmOperator *op, int type, int isSurf)
if (!isSurf) { /* adding curve */
if (obedit == NULL || obedit->type != OB_CURVE) {
Curve *cu;
-
+
obedit = ED_object_add_type(C, OB_CURVE, loc, rot, TRUE, layer);
newob = 1;
cu = (Curve *)obedit->data;
cu->flag |= CU_DEFORM_FILL;
-
+
if (type & CU_PRIM_PATH)
cu->flag |= CU_PATH | CU_3D;
- }
+ }
else DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
- }
+ }
else { /* adding surface */
if (obedit == NULL || obedit->type != OB_SURF) {
obedit = ED_object_add_type(C, OB_SURF, loc, rot, TRUE, layer);
@@ -6588,7 +6638,6 @@ static int curvesurf_prim_add(bContext *C, wmOperator *op, int type, int isSurf)
/* rename here, the undo stack checks name for valid undo pushes */
if (newob) {
-
if (obedit->type == OB_CURVE) {
rename_id((ID *)obedit, get_curve_defname(type));
rename_id((ID *)obedit->data, get_curve_defname(type));
@@ -6598,14 +6647,14 @@ static int curvesurf_prim_add(bContext *C, wmOperator *op, int type, int isSurf)
rename_id((ID *)obedit->data, get_surf_defname(type));
}
}
-
+
/* ED_object_add_type doesnt do an undo, is needed for redo operator on primitive */
if (newob && enter_editmode)
ED_undo_push(C, "Enter Editmode");
-
+
ED_object_new_primitive_matrix(C, obedit, loc, rot, mat);
- nu = add_nurbs_primitive(C, mat, type, newob);
+ nu = add_nurbs_primitive(C, obedit, mat, type, newob);
editnurb = object_editcurve_get(obedit);
BLI_addtail(editnurb, nu);
@@ -6642,12 +6691,11 @@ void CURVE_OT_primitive_bezier_curve_add(wmOperatorType *ot)
ot->name = "Add Bezier";
ot->description = "Construct a Bezier Curve";
ot->idname = "CURVE_OT_primitive_bezier_curve_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_bezier_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -6665,12 +6713,11 @@ void CURVE_OT_primitive_bezier_circle_add(wmOperatorType *ot)
ot->name = "Add Bezier Circle";
ot->description = "Construct a Bezier Circle";
ot->idname = "CURVE_OT_primitive_bezier_circle_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_bezier_circle_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -6688,12 +6735,11 @@ void CURVE_OT_primitive_nurbs_curve_add(wmOperatorType *ot)
ot->name = "Add Nurbs Curve";
ot->description = "Construct a Nurbs Curve";
ot->idname = "CURVE_OT_primitive_nurbs_curve_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_nurbs_curve_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -6711,12 +6757,11 @@ void CURVE_OT_primitive_nurbs_circle_add(wmOperatorType *ot)
ot->name = "Add Nurbs Circle";
ot->description = "Construct a Nurbs Circle";
ot->idname = "CURVE_OT_primitive_nurbs_circle_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_nurbs_circle_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -6734,12 +6779,11 @@ void CURVE_OT_primitive_nurbs_path_add(wmOperatorType *ot)
ot->name = "Add Path";
ot->description = "Construct a Path";
ot->idname = "CURVE_OT_primitive_nurbs_path_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_curve_path_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -6758,12 +6802,11 @@ void SURFACE_OT_primitive_nurbs_surface_curve_add(wmOperatorType *ot)
ot->name = "Add Surface Curve";
ot->description = "Construct a Nurbs surface Curve";
ot->idname = "SURFACE_OT_primitive_nurbs_surface_curve_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_nurbs_surface_curve_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -6781,12 +6824,11 @@ void SURFACE_OT_primitive_nurbs_surface_circle_add(wmOperatorType *ot)
ot->name = "Add Surface Circle";
ot->description = "Construct a Nurbs surface Circle";
ot->idname = "SURFACE_OT_primitive_nurbs_surface_circle_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_nurbs_surface_circle_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -6804,12 +6846,11 @@ void SURFACE_OT_primitive_nurbs_surface_surface_add(wmOperatorType *ot)
ot->name = "Add Surface Patch";
ot->description = "Construct a Nurbs surface Patch";
ot->idname = "SURFACE_OT_primitive_nurbs_surface_surface_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_nurbs_surface_surface_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -6827,12 +6868,11 @@ void SURFACE_OT_primitive_nurbs_surface_cylinder_add(wmOperatorType *ot)
ot->name = "Add Surface Cylinder";
ot->description = "Construct a Nurbs surface Cylinder";
ot->idname = "SURFACE_OT_primitive_nurbs_surface_cylinder_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_nurbs_surface_cylinder_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -6850,12 +6890,11 @@ void SURFACE_OT_primitive_nurbs_surface_sphere_add(wmOperatorType *ot)
ot->name = "Add Surface Sphere";
ot->description = "Construct a Nurbs surface Sphere";
ot->idname = "SURFACE_OT_primitive_nurbs_surface_sphere_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_nurbs_surface_sphere_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -6873,12 +6912,11 @@ void SURFACE_OT_primitive_nurbs_surface_torus_add(wmOperatorType *ot)
ot->name = "Add Surface Torus";
ot->description = "Construct a Nurbs surface Torus";
ot->idname = "SURFACE_OT_primitive_nurbs_surface_torus_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_nurbs_surface_torus_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c
index 83f6b1d1824..b379ce6e5cf 100644
--- a/source/blender/editors/curve/editfont.c
+++ b/source/blender/editors/curve/editfont.c
@@ -215,16 +215,16 @@ static void update_string(Curve *cu)
EditFont *ef = cu->editfont;
int len;
- // Free the old curve string
+ /* Free the old curve string */
MEM_freeN(cu->str);
- // Calculate the actual string length in UTF-8 variable characters
+ /* Calculate the actual string length in UTF-8 variable characters */
len = BLI_wstrlen_utf8(ef->textbuf);
- // Alloc memory for UTF-8 variable char length string
+ /* Alloc memory for UTF-8 variable char length string */
cu->str = MEM_callocN(len + sizeof(wchar_t), "str");
- // Copy the wchar to UTF-8
+ /* Copy the wchar to UTF-8 */
BLI_strncpy_wchar_as_utf8(cu->str, ef->textbuf, len + 1);
}
@@ -362,8 +362,8 @@ static int paste_file(bContext *C, ReportList *reports, const char *filename)
strp = MEM_callocN(filelen + 4, "tempstr");
- // fread() instead of read(), because windows read() converts text
- // to DOS \r\n linebreaks, causing double linebreaks in the 3d text
+ /* fread() instead of read(), because windows read() converts text
+ * to DOS \r\n linebreaks, causing double linebreaks in the 3d text */
filelen = fread(strp, 1, filelen, fp);
fclose(fp);
strp[filelen] = 0;
@@ -422,7 +422,8 @@ void FONT_OT_file_paste(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE | TEXTFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | TEXTFILE, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
}
/******************* text to object operator ********************/
@@ -440,8 +441,9 @@ static void txt_add_object(bContext *C, TextLine *firstline, int totline, float
obedit = BKE_object_add(scene, OB_FONT);
base = scene->basact;
-
- ED_object_base_init_transform(C, base, NULL, rot); /* seems to assume view align ? TODO - look into this, could be an operator option */
+ /* seems to assume view align ? TODO - look into this, could be an operator option */
+ ED_object_base_init_transform(C, base, NULL, rot);
+
BKE_object_where_is_calc(scene, obedit);
obedit->loc[0] += offset[0];
@@ -753,7 +755,7 @@ static int paste_selection(Object *obedit, ReportList *reports)
EditFont *ef = cu->editfont;
int len = wcslen(ef->copybuf);
- // Verify that the copy buffer => [copy buffer len] + cu->len < MAXTEXT
+ /* Verify that the copy buffer => [copy buffer len] + cu->len < MAXTEXT */
if (cu->len + len <= MAXTEXT) {
if (len) {
int size = (cu->len * sizeof(wchar_t)) - (cu->pos * sizeof(wchar_t)) + sizeof(wchar_t);
@@ -1452,12 +1454,12 @@ void make_editText(Object *obedit)
ef->oldstrinfo = MEM_callocN((MAXTEXT + 4) * sizeof(CharInfo), "oldstrbuf");
}
- // Convert the original text to wchar_t
+ /* Convert the original text to wchar_t */
BLI_strncpy_wchar_from_utf8(ef->textbuf, cu->str, MAXTEXT + 4); /* length is bogus */
wcscpy(ef->oldstr, ef->textbuf);
-
+
cu->len = wcslen(ef->textbuf);
-
+
memcpy(ef->textbufinfo, cu->strinfo, (cu->len) * sizeof(CharInfo));
memcpy(ef->oldstrinfo, cu->strinfo, (cu->len) * sizeof(CharInfo));
@@ -1467,8 +1469,8 @@ void make_editText(Object *obedit)
cu->curinfo = ef->textbufinfo[cu->pos - 1];
else
cu->curinfo = ef->textbufinfo[0];
-
- // Convert to UTF-8
+
+ /* Convert to UTF-8 */
update_string(cu);
}
@@ -1665,7 +1667,7 @@ static int font_open_exec(bContext *C, wmOperator *op)
static int open_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
- VFont *font = NULL;
+ VFont *vfont = NULL;
char *path;
PointerRNA idptr;
@@ -1678,10 +1680,10 @@ static int open_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
if (pprop->prop) {
idptr = RNA_property_pointer_get((PointerRNA *)pprop, pprop->prop);
- font = idptr.id.data;
+ vfont = idptr.id.data;
}
- path = (font && strcmp(font->name, FO_BUILTIN_NAME) != 0) ? font->name : U.fontdir;
+ path = (vfont && !BKE_vfont_is_builtin(vfont)) ? vfont->name : U.fontdir;
if (RNA_struct_property_is_set(op->ptr, "filepath"))
return font_open_exec(C, op);
@@ -1708,7 +1710,8 @@ void FONT_OT_open(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE | FTFONTFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | FTFONTFILE, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
}
/******************* delete operator *********************/
@@ -1773,10 +1776,10 @@ static void *editFont_to_undoFont(void *ecu, void *UNUSED(obdata))
EditFont *ef = cu->editfont;
char *str;
- // The undo buffer includes [MAXTEXT+6]=actual string and [MAXTEXT+4]*sizeof(CharInfo)=charinfo
+ /* The undo buffer includes [MAXTEXT+6]=actual string and [MAXTEXT+4]*sizeof(CharInfo)=charinfo */
str = MEM_callocN((MAXTEXT + 6) * sizeof(wchar_t) + (MAXTEXT + 4) * sizeof(CharInfo), "string undo");
- // Copy the string and string information
+ /* Copy the string and string information */
memcpy(str + 4, ef->textbuf, (cu->len + 1) * sizeof(wchar_t));
memcpy(str + 4 + (cu->len + 1) * sizeof(wchar_t), ef->textbufinfo, cu->len * sizeof(CharInfo));
diff --git a/source/blender/editors/datafiles/Bfont.c b/source/blender/editors/datafiles/Bfont.c
deleted file mode 100644
index 30126c97d34..00000000000
--- a/source/blender/editors/datafiles/Bfont.c
+++ /dev/null
@@ -1,1609 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/editors/datafiles/Bfont.c
- * \ingroup eddatafiles
- * \brief DataToC output of file <Bfont>
- */
-
-int datatoc_Bfont_size = 25181;
-char datatoc_Bfont[25181] = {
-128, 1, 228, 1, 0, 0, 37, 33, 80, 83, 45, 65, 100, 111, 98, 101,
-70, 111, 110, 116, 45, 49, 46, 48, 58, 32, 66, 102, 111, 110, 116, 32,
-48, 48, 49, 46, 48, 48, 49, 10, 49, 49, 32, 100, 105, 99, 116, 32,
-98, 101, 103, 105, 110, 10, 47, 70, 111, 110, 116, 73, 110, 102, 111, 32,
-49, 48, 32, 100, 105, 99, 116, 32, 100, 117, 112, 32, 98, 101, 103, 105,
-110, 10, 47, 118, 101, 114, 115, 105, 111, 110, 32, 40, 48, 48, 49, 46,
-48, 48, 49, 41, 32, 114, 101, 97, 100, 111, 110, 108, 121, 32, 100, 101,
-102, 10, 47, 70, 117, 108, 108, 78, 97, 109, 101, 32, 40, 66, 102, 111,
-110, 116, 41, 32, 114, 101, 97, 100, 111, 110, 108, 121, 32, 100, 101, 102,
-10, 47, 70, 97, 109, 105, 108, 121, 78, 97, 109, 101, 32, 40, 66, 102,
-111, 110, 116, 41, 32, 114, 101, 97, 100, 111, 110, 108, 121, 32, 100, 101,
-102, 10, 47, 87, 101, 105, 103, 104, 116, 32, 40, 82, 101, 103, 117, 108,
-97, 114, 41, 32, 114, 101, 97, 100, 111, 110, 108, 121, 32, 100, 101, 102,
-10, 47, 73, 116, 97, 108, 105, 99, 65, 110, 103, 108, 101, 32, 48, 32,
-100, 101, 102, 10, 47, 105, 115, 70, 105, 120, 101, 100, 80, 105, 116, 99,
-104, 32, 102, 97, 108, 115, 101, 32, 100, 101, 102, 10, 47, 85, 110, 100,
-101, 114, 108, 105, 110, 101, 80, 111, 115, 105, 116, 105, 111, 110, 32, 45,
-49, 48, 48, 32, 100, 101, 102, 10, 47, 85, 110, 100, 101, 114, 108, 105,
-110, 101, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 53, 48, 32, 100,
-101, 102, 10, 101, 110, 100, 32, 114, 101, 97, 100, 111, 110, 108, 121, 32,
-100, 101, 102, 10, 47, 70, 111, 110, 116, 78, 97, 109, 101, 32, 47, 66,
-102, 111, 110, 116, 32, 100, 101, 102, 10, 47, 69, 110, 99, 111, 100, 105,
-110, 103, 32, 83, 116, 97, 110, 100, 97, 114, 100, 69, 110, 99, 111, 100,
-105, 110, 103, 32, 100, 101, 102, 10, 47, 80, 97, 105, 110, 116, 84, 121,
-112, 101, 32, 48, 32, 100, 101, 102, 10, 47, 70, 111, 110, 116, 84, 121,
-112, 101, 32, 49, 32, 100, 101, 102, 10, 47, 70, 111, 110, 116, 77, 97,
-116, 114, 105, 120, 32, 91, 48, 46, 48, 48, 49, 32, 48, 32, 48, 32,
-48, 46, 48, 48, 49, 32, 48, 32, 48, 93, 32, 114, 101, 97, 100, 111,
-110, 108, 121, 32, 100, 101, 102, 10, 99, 117, 114, 114, 101, 110, 116, 100,
-105, 99, 116, 32, 101, 110, 100, 10, 99, 117, 114, 114, 101, 110, 116, 102,
-105, 108, 101, 32, 101, 101, 120, 101, 99, 10, 128, 2, 146, 94, 0, 0,
-217, 214, 111, 99, 59, 132, 106, 152, 155, 153, 116, 176, 23, 159, 198, 204,
-68, 91, 194, 192, 49, 3, 198, 133, 112, 167, 179, 84, 164, 162, 128, 174,
-111, 191, 127, 152, 247, 90, 132, 186, 206, 45, 3, 106, 107, 81, 184, 72,
-73, 49, 89, 29, 146, 229, 6, 158, 98, 38, 213, 173, 204, 93, 228, 248,
-16, 122, 166, 154, 53, 181, 95, 106, 155, 75, 79, 147, 197, 108, 35, 188,
-198, 29, 215, 191, 143, 50, 242, 29, 88, 228, 26, 95, 121, 12, 238, 47,
-2, 175, 73, 134, 149, 233, 12, 29, 11, 210, 89, 231, 91, 2, 25, 48,
-11, 15, 105, 44, 51, 119, 156, 42, 166, 122, 232, 81, 122, 190, 18, 48,
-8, 69, 34, 74, 246, 173, 93, 169, 219, 154, 26, 58, 64, 251, 6, 179,
-106, 156, 205, 105, 18, 85, 7, 252, 45, 233, 208, 65, 132, 199, 96, 66,
-240, 63, 207, 209, 83, 132, 0, 35, 151, 42, 129, 42, 185, 179, 203, 86,
-112, 193, 206, 39, 89, 113, 28, 117, 41, 66, 98, 214, 242, 145, 175, 155,
-124, 118, 7, 30, 218, 126, 122, 208, 38, 33, 98, 50, 34, 185, 54, 8,
-122, 178, 127, 254, 95, 7, 134, 71, 6, 101, 146, 24, 61, 195, 71, 174,
-146, 230, 191, 86, 177, 123, 237, 206, 19, 104, 70, 246, 162, 163, 118, 171,
-140, 11, 192, 255, 78, 52, 125, 32, 253, 14, 199, 126, 250, 177, 240, 99,
-49, 0, 20, 141, 42, 125, 47, 210, 31, 18, 90, 170, 205, 143, 219, 153,
-121, 131, 43, 103, 13, 138, 170, 118, 210, 18, 186, 181, 97, 70, 25, 144,
-150, 12, 53, 110, 184, 216, 233, 243, 198, 93, 157, 254, 127, 140, 44, 138,
-123, 43, 233, 158, 99, 255, 108, 134, 136, 60, 29, 229, 7, 141, 163, 185,
-30, 3, 228, 132, 13, 221, 109, 48, 227, 60, 227, 135, 117, 220, 128, 67,
-195, 147, 32, 118, 71, 190, 131, 11, 245, 200, 93, 30, 226, 32, 114, 26,
-39, 232, 138, 33, 109, 232, 1, 11, 233, 212, 78, 221, 88, 158, 135, 95,
-159, 14, 38, 31, 12, 106, 255, 51, 147, 42, 139, 254, 210, 119, 6, 96,
-221, 226, 140, 183, 213, 222, 5, 205, 13, 140, 253, 214, 125, 103, 227, 52,
-60, 102, 31, 250, 163, 147, 228, 167, 58, 207, 156, 68, 166, 150, 167, 169,
-116, 83, 194, 150, 104, 152, 31, 7, 157, 38, 76, 29, 10, 247, 63, 57,
-194, 106, 230, 183, 120, 135, 187, 201, 211, 82, 234, 168, 182, 167, 90, 56,
-37, 109, 160, 144, 13, 48, 204, 190, 14, 169, 103, 127, 136, 102, 24, 81,
-61, 32, 233, 228, 158, 18, 235, 189, 28, 0, 222, 67, 17, 110, 143, 71,
-223, 181, 33, 17, 66, 81, 210, 7, 23, 186, 245, 229, 198, 143, 62, 113,
-33, 80, 236, 87, 148, 65, 42, 27, 111, 128, 223, 196, 140, 45, 32, 91,
-123, 158, 136, 153, 166, 144, 126, 115, 133, 220, 254, 234, 192, 123, 14, 239,
-75, 199, 116, 28, 241, 25, 30, 66, 226, 248, 159, 142, 46, 41, 10, 237,
-111, 205, 31, 230, 72, 196, 49, 200, 50, 29, 115, 153, 141, 198, 225, 218,
-157, 86, 56, 67, 249, 99, 50, 25, 151, 14, 200, 35, 186, 250, 204, 151,
-187, 209, 51, 129, 161, 68, 118, 130, 31, 25, 134, 255, 75, 170, 240, 225,
-113, 144, 5, 178, 133, 45, 85, 242, 66, 10, 10, 65, 138, 93, 147, 72,
-210, 250, 209, 123, 148, 135, 12, 156, 94, 13, 250, 31, 211, 157, 82, 128,
-132, 143, 11, 155, 47, 211, 151, 232, 142, 253, 82, 104, 234, 231, 190, 169,
-78, 32, 90, 2, 41, 201, 122, 142, 205, 144, 234, 204, 198, 227, 56, 57,
-6, 63, 8, 237, 89, 199, 30, 226, 169, 48, 198, 191, 38, 114, 87, 135,
-189, 98, 251, 224, 210, 154, 58, 87, 26, 56, 41, 219, 119, 124, 109, 83,
-182, 169, 166, 123, 255, 190, 35, 121, 177, 37, 92, 128, 242, 247, 132, 218,
-149, 140, 116, 184, 163, 13, 248, 138, 68, 124, 229, 211, 89, 210, 101, 172,
-149, 221, 182, 113, 36, 182, 46, 5, 141, 127, 147, 54, 118, 67, 107, 105,
-187, 40, 53, 208, 170, 25, 45, 113, 216, 110, 135, 56, 7, 26, 14, 225,
-61, 79, 228, 72, 30, 39, 220, 195, 227, 229, 153, 196, 28, 6, 107, 240,
-54, 67, 6, 94, 143, 0, 34, 180, 49, 14, 41, 111, 9, 41, 94, 203,
-184, 139, 142, 34, 140, 138, 90, 25, 216, 89, 252, 45, 46, 132, 169, 154,
-230, 131, 15, 20, 100, 99, 235, 106, 73, 185, 89, 6, 66, 230, 171, 202,
-22, 213, 227, 183, 32, 138, 116, 253, 208, 230, 121, 16, 63, 238, 132, 69,
-28, 135, 88, 115, 18, 21, 11, 102, 172, 200, 37, 222, 255, 100, 221, 80,
-173, 218, 53, 210, 250, 148, 211, 241, 97, 150, 185, 43, 250, 138, 14, 122,
-133, 30, 191, 54, 158, 118, 22, 12, 232, 25, 228, 60, 101, 206, 119, 29,
-57, 12, 99, 36, 167, 182, 153, 86, 195, 21, 70, 154, 102, 106, 45, 236,
-70, 151, 143, 185, 207, 252, 106, 46, 168, 80, 216, 206, 157, 171, 118, 77,
-82, 153, 24, 54, 165, 128, 160, 27, 195, 117, 241, 141, 93, 151, 233, 239,
-244, 73, 123, 133, 42, 138, 123, 68, 159, 225, 209, 171, 242, 70, 212, 6,
-168, 19, 116, 228, 0, 14, 148, 191, 132, 10, 254, 83, 125, 20, 17, 71,
-126, 142, 56, 80, 55, 48, 125, 184, 172, 156, 163, 161, 72, 249, 105, 204,
-207, 179, 217, 115, 177, 2, 82, 220, 142, 14, 180, 138, 254, 83, 139, 36,
-70, 203, 91, 81, 82, 229, 20, 253, 78, 132, 213, 64, 154, 163, 59, 93,
-245, 168, 38, 148, 48, 228, 13, 186, 204, 95, 140, 184, 118, 22, 130, 111,
-27, 38, 139, 127, 106, 172, 161, 254, 136, 187, 166, 48, 162, 152, 124, 69,
-27, 186, 50, 126, 7, 144, 43, 75, 176, 145, 159, 202, 244, 7, 78, 203,
-250, 32, 42, 195, 71, 186, 90, 92, 162, 126, 98, 44, 195, 163, 47, 88,
-124, 43, 177, 122, 251, 254, 29, 161, 70, 98, 235, 133, 52, 12, 28, 184,
-67, 145, 73, 88, 99, 69, 60, 227, 142, 15, 218, 82, 167, 57, 225, 230,
-218, 131, 251, 171, 11, 63, 191, 65, 236, 178, 63, 159, 213, 211, 114, 64,
-200, 85, 73, 40, 94, 123, 108, 171, 89, 169, 206, 99, 196, 31, 15, 152,
-138, 77, 137, 210, 197, 228, 255, 73, 126, 120, 249, 214, 170, 212, 168, 73,
-54, 125, 113, 78, 226, 37, 137, 249, 188, 239, 33, 231, 244, 125, 116, 137,
-126, 187, 31, 193, 194, 118, 121, 19, 80, 250, 87, 48, 80, 62, 246, 29,
-121, 247, 135, 198, 193, 253, 148, 211, 17, 210, 17, 247, 44, 205, 91, 1,
-190, 195, 236, 66, 95, 144, 58, 235, 2, 42, 79, 25, 82, 164, 167, 244,
-114, 188, 192, 101, 23, 55, 69, 141, 168, 28, 89, 60, 116, 91, 162, 121,
-28, 123, 96, 252, 165, 180, 69, 56, 232, 54, 122, 138, 223, 158, 131, 94,
-171, 82, 4, 112, 13, 160, 117, 170, 146, 28, 241, 154, 211, 119, 16, 233,
-141, 96, 94, 167, 13, 37, 118, 105, 73, 211, 97, 109, 148, 131, 190, 119,
-45, 124, 208, 225, 39, 94, 48, 62, 33, 188, 248, 154, 233, 46, 158, 7,
-144, 1, 121, 0, 235, 71, 25, 52, 13, 46, 1, 25, 171, 27, 179, 170,
-164, 231, 2, 25, 182, 226, 250, 96, 192, 23, 185, 218, 218, 16, 140, 36,
-180, 216, 59, 95, 49, 165, 162, 134, 252, 47, 168, 65, 242, 178, 211, 62,
-10, 239, 153, 65, 219, 247, 72, 17, 105, 49, 254, 85, 136, 211, 117, 240,
-218, 77, 221, 166, 41, 145, 198, 4, 104, 136, 241, 48, 0, 158, 210, 236,
-207, 26, 145, 140, 95, 164, 117, 198, 0, 183, 104, 161, 59, 9, 189, 8,
-32, 44, 26, 255, 157, 119, 245, 250, 49, 176, 156, 227, 102, 228, 105, 83,
-24, 153, 85, 196, 129, 133, 128, 208, 129, 202, 62, 204, 173, 137, 91, 223,
-112, 208, 243, 87, 180, 109, 82, 141, 56, 239, 210, 40, 86, 200, 173, 31,
-32, 230, 140, 202, 61, 220, 176, 92, 108, 207, 177, 213, 169, 238, 172, 158,
-254, 38, 242, 141, 6, 115, 217, 193, 134, 166, 227, 36, 208, 119, 86, 44,
-34, 195, 71, 119, 94, 234, 241, 122, 79, 169, 173, 36, 221, 120, 68, 23,
-3, 44, 125, 38, 78, 72, 230, 25, 62, 18, 205, 206, 66, 140, 79, 125,
-229, 223, 0, 92, 25, 118, 253, 161, 219, 51, 228, 229, 212, 13, 155, 26,
-50, 54, 105, 54, 38, 85, 152, 49, 150, 233, 88, 191, 111, 0, 122, 147,
-95, 215, 50, 33, 176, 209, 77, 136, 198, 6, 71, 97, 100, 152, 0, 159,
-94, 91, 202, 7, 148, 125, 254, 58, 38, 107, 49, 101, 14, 194, 163, 12,
-79, 253, 153, 150, 54, 30, 37, 140, 189, 241, 141, 47, 57, 139, 145, 74,
-88, 15, 178, 179, 63, 241, 91, 129, 30, 79, 19, 104, 72, 56, 215, 37,
-124, 242, 77, 81, 109, 155, 0, 233, 122, 186, 107, 91, 145, 92, 162, 90,
-4, 113, 170, 84, 211, 132, 142, 64, 27, 93, 152, 248, 107, 94, 93, 160,
-109, 249, 241, 251, 102, 130, 66, 96, 51, 112, 140, 245, 151, 65, 45, 189,
-157, 117, 188, 91, 97, 49, 138, 107, 106, 135, 204, 203, 38, 119, 33, 149,
-87, 122, 158, 198, 8, 142, 218, 3, 56, 249, 80, 86, 253, 82, 246, 203,
-231, 57, 160, 50, 52, 187, 24, 108, 130, 253, 193, 24, 51, 201, 50, 3,
-67, 176, 187, 124, 165, 172, 142, 252, 156, 155, 220, 252, 51, 237, 105, 94,
-48, 44, 233, 187, 188, 123, 100, 218, 223, 36, 114, 54, 219, 223, 39, 156,
-112, 206, 46, 19, 10, 213, 139, 69, 12, 138, 134, 44, 130, 94, 136, 4,
-111, 77, 21, 115, 225, 162, 15, 38, 159, 218, 138, 102, 171, 2, 142, 48,
-158, 57, 94, 59, 182, 17, 127, 190, 223, 196, 66, 238, 107, 50, 154, 2,
-142, 167, 152, 18, 25, 226, 1, 253, 251, 17, 102, 20, 111, 28, 97, 136,
-15, 60, 65, 230, 39, 49, 25, 166, 31, 18, 54, 4, 24, 89, 211, 226,
-250, 74, 226, 185, 67, 138, 29, 18, 85, 156, 124, 145, 84, 17, 175, 167,
-51, 13, 54, 82, 97, 64, 206, 201, 111, 199, 214, 210, 235, 148, 55, 181,
-241, 136, 86, 254, 219, 122, 64, 103, 179, 79, 113, 163, 126, 75, 107, 79,
-102, 244, 21, 147, 198, 210, 251, 35, 136, 73, 15, 32, 45, 150, 134, 253,
-113, 83, 111, 161, 110, 212, 242, 33, 12, 12, 16, 143, 194, 199, 37, 228,
-251, 110, 7, 213, 198, 55, 80, 32, 209, 140, 34, 47, 102, 249, 217, 166,
-118, 31, 106, 2, 18, 106, 46, 146, 148, 125, 0, 208, 89, 209, 247, 55,
-143, 177, 19, 183, 127, 71, 118, 20, 136, 3, 233, 109, 119, 181, 115, 223,
-110, 139, 182, 171, 109, 104, 72, 62, 152, 143, 14, 157, 82, 154, 253, 142,
-215, 59, 1, 11, 98, 107, 140, 12, 240, 144, 56, 38, 14, 220, 237, 154,
-174, 151, 179, 207, 104, 234, 222, 84, 126, 157, 90, 52, 118, 126, 96, 23,
-203, 135, 134, 41, 16, 196, 210, 44, 125, 68, 145, 232, 236, 52, 222, 102,
-131, 80, 101, 237, 218, 244, 215, 205, 95, 58, 96, 18, 66, 213, 91, 247,
-58, 44, 57, 150, 193, 139, 135, 36, 143, 236, 94, 209, 236, 213, 227, 42,
-176, 173, 206, 87, 151, 240, 145, 185, 45, 209, 177, 201, 123, 32, 196, 44,
-158, 83, 203, 202, 6, 106, 54, 93, 43, 209, 12, 114, 76, 100, 242, 104,
-165, 138, 15, 143, 5, 33, 228, 195, 243, 111, 81, 249, 174, 15, 167, 40,
-165, 51, 97, 185, 215, 150, 118, 253, 22, 103, 9, 21, 185, 238, 189, 94,
-49, 104, 100, 98, 165, 196, 31, 148, 112, 125, 199, 46, 103, 252, 79, 100,
-165, 112, 104, 82, 249, 219, 205, 34, 198, 31, 198, 191, 181, 72, 212, 182,
-62, 87, 13, 53, 171, 84, 222, 156, 131, 201, 162, 173, 47, 44, 187, 105,
-119, 132, 47, 228, 184, 36, 85, 218, 11, 251, 242, 124, 205, 168, 252, 24,
-245, 49, 84, 161, 107, 211, 21, 63, 219, 89, 15, 116, 192, 18, 208, 86,
-95, 75, 71, 239, 247, 105, 124, 85, 174, 144, 220, 24, 188, 94, 40, 209,
-132, 234, 225, 53, 69, 240, 42, 47, 92, 18, 240, 120, 210, 140, 168, 218,
-105, 60, 246, 247, 238, 188, 247, 10, 162, 24, 136, 226, 91, 107, 157, 168,
-51, 186, 15, 79, 68, 154, 225, 52, 41, 228, 127, 35, 41, 224, 97, 225,
-44, 85, 16, 225, 99, 198, 48, 182, 98, 235, 255, 178, 24, 210, 58, 14,
-200, 84, 18, 132, 137, 35, 171, 63, 195, 238, 195, 167, 167, 8, 207, 232,
-214, 100, 91, 195, 90, 233, 86, 98, 207, 185, 229, 196, 140, 253, 236, 219,
-150, 62, 62, 2, 15, 51, 232, 157, 44, 234, 107, 188, 220, 214, 209, 42,
-165, 18, 94, 143, 235, 241, 192, 254, 106, 155, 48, 246, 239, 123, 17, 140,
-12, 101, 251, 102, 156, 126, 130, 2, 38, 62, 255, 27, 134, 182, 120, 23,
-158, 103, 4, 48, 154, 78, 236, 14, 254, 222, 239, 42, 228, 224, 138, 87,
-211, 236, 78, 212, 1, 107, 139, 81, 5, 238, 185, 84, 205, 51, 83, 67,
-52, 42, 135, 255, 244, 123, 157, 185, 116, 114, 160, 116, 246, 30, 147, 127,
-129, 156, 51, 229, 39, 122, 2, 122, 145, 229, 25, 122, 2, 151, 7, 125,
-246, 76, 129, 209, 110, 138, 246, 211, 33, 183, 60, 192, 108, 167, 161, 157,
-173, 188, 134, 192, 179, 203, 195, 136, 84, 41, 110, 193, 122, 131, 11, 75,
-124, 83, 139, 80, 12, 71, 93, 214, 179, 43, 70, 139, 91, 53, 228, 97,
-105, 67, 230, 118, 92, 183, 131, 114, 231, 74, 140, 48, 135, 180, 10, 184,
-148, 46, 75, 182, 205, 83, 47, 151, 206, 84, 243, 232, 233, 126, 142, 30,
-11, 113, 219, 252, 153, 18, 16, 215, 238, 121, 155, 255, 21, 214, 89, 6,
-196, 3, 201, 131, 48, 187, 159, 235, 14, 27, 155, 245, 77, 229, 130, 112,
-168, 164, 253, 69, 23, 253, 242, 175, 19, 232, 155, 161, 27, 158, 95, 160,
-90, 79, 109, 133, 203, 42, 70, 181, 120, 247, 244, 85, 191, 167, 255, 36,
-251, 115, 54, 191, 78, 211, 182, 252, 5, 12, 100, 32, 48, 200, 26, 234,
-123, 25, 161, 253, 134, 168, 60, 15, 187, 62, 24, 239, 177, 98, 92, 109,
-195, 112, 78, 242, 161, 250, 224, 210, 94, 111, 34, 100, 196, 71, 103, 74,
-123, 216, 217, 180, 160, 33, 64, 105, 123, 183, 125, 84, 77, 80, 99, 109,
-247, 173, 168, 239, 122, 88, 233, 117, 237, 148, 43, 144, 195, 255, 222, 124,
-214, 133, 156, 117, 244, 7, 73, 13, 100, 164, 68, 175, 191, 93, 225, 252,
-128, 96, 77, 231, 196, 150, 223, 120, 56, 23, 101, 94, 23, 50, 76, 38,
-27, 89, 184, 93, 140, 37, 79, 249, 66, 199, 27, 220, 230, 114, 176, 179,
-228, 201, 12, 56, 113, 1, 25, 207, 104, 177, 191, 79, 237, 143, 226, 104,
-92, 21, 249, 98, 205, 22, 105, 215, 184, 142, 178, 107, 8, 194, 13, 32,
-156, 84, 109, 146, 152, 57, 241, 72, 62, 74, 122, 212, 88, 179, 57, 23,
-186, 74, 73, 82, 37, 80, 182, 165, 40, 89, 30, 244, 209, 110, 163, 24,
-182, 201, 139, 145, 225, 148, 219, 184, 1, 109, 99, 156, 37, 247, 177, 111,
-50, 209, 221, 208, 78, 0, 72, 6, 236, 76, 79, 63, 132, 26, 227, 72,
-142, 229, 248, 120, 160, 148, 155, 91, 51, 61, 40, 22, 192, 96, 139, 193,
-192, 41, 116, 79, 140, 116, 158, 248, 64, 168, 227, 174, 56, 114, 92, 160,
-31, 200, 94, 82, 99, 139, 67, 95, 47, 76, 180, 152, 43, 131, 149, 177,
-4, 212, 56, 209, 190, 209, 102, 122, 224, 72, 234, 244, 111, 175, 138, 120,
-23, 203, 9, 146, 234, 239, 94, 241, 28, 21, 170, 51, 2, 176, 125, 179,
-217, 99, 83, 17, 16, 113, 123, 111, 68, 94, 156, 200, 90, 117, 30, 174,
-131, 42, 161, 91, 76, 85, 199, 44, 75, 199, 0, 159, 111, 158, 236, 63,
-252, 73, 67, 220, 113, 169, 158, 74, 7, 81, 214, 149, 155, 222, 129, 91,
-63, 169, 196, 168, 208, 230, 83, 168, 4, 19, 27, 176, 157, 146, 56, 42,
-254, 143, 171, 119, 60, 127, 57, 37, 107, 84, 255, 246, 76, 159, 38, 176,
-233, 13, 97, 107, 64, 55, 206, 201, 204, 218, 3, 139, 123, 150, 151, 110,
-28, 198, 99, 247, 167, 155, 37, 184, 253, 214, 21, 253, 250, 179, 26, 233,
-98, 205, 117, 109, 94, 222, 15, 151, 184, 119, 219, 159, 26, 52, 234, 55,
-66, 100, 108, 175, 174, 17, 111, 135, 189, 244, 238, 173, 23, 17, 241, 136,
-78, 124, 75, 203, 114, 135, 228, 221, 79, 244, 180, 84, 215, 120, 58, 193,
-234, 17, 21, 132, 110, 10, 93, 93, 0, 183, 245, 134, 61, 95, 68, 191,
-141, 237, 95, 126, 87, 58, 149, 134, 213, 110, 116, 216, 192, 10, 112, 38,
-232, 50, 35, 120, 57, 45, 172, 232, 37, 77, 226, 153, 110, 131, 253, 210,
-168, 180, 83, 56, 51, 56, 189, 222, 97, 193, 136, 138, 42, 148, 50, 111,
-24, 19, 254, 177, 109, 42, 4, 65, 172, 96, 251, 160, 54, 58, 165, 202,
-64, 75, 38, 58, 75, 176, 216, 98, 146, 125, 118, 248, 14, 106, 228, 226,
-81, 241, 251, 127, 27, 23, 92, 157, 140, 12, 59, 86, 252, 122, 13, 128,
-14, 184, 55, 155, 44, 253, 29, 47, 123, 191, 185, 154, 163, 114, 250, 216,
-48, 218, 24, 41, 137, 186, 200, 209, 147, 86, 234, 11, 251, 42, 56, 181,
-243, 238, 166, 135, 92, 151, 86, 174, 89, 79, 71, 14, 24, 5, 179, 87,
-131, 135, 102, 59, 186, 66, 1, 6, 72, 5, 28, 79, 49, 186, 194, 62,
-179, 53, 186, 31, 143, 15, 105, 32, 251, 188, 138, 11, 244, 36, 100, 101,
-80, 187, 253, 53, 90, 154, 212, 181, 126, 209, 58, 10, 55, 168, 27, 236,
-115, 101, 224, 193, 103, 231, 231, 76, 130, 169, 64, 247, 143, 160, 6, 12,
-187, 62, 115, 85, 133, 97, 131, 157, 164, 5, 18, 51, 69, 53, 226, 170,
-32, 248, 133, 194, 58, 114, 243, 156, 53, 219, 228, 37, 51, 150, 240, 227,
-74, 100, 66, 140, 115, 100, 103, 47, 160, 145, 39, 160, 75, 222, 218, 28,
-108, 232, 107, 91, 0, 57, 250, 136, 6, 33, 118, 115, 103, 179, 221, 108,
-40, 142, 175, 185, 2, 12, 192, 66, 213, 152, 41, 233, 223, 41, 212, 85,
-17, 52, 58, 211, 181, 46, 211, 206, 189, 26, 8, 90, 115, 224, 151, 195,
-224, 213, 34, 162, 189, 222, 218, 155, 78, 201, 101, 242, 9, 56, 215, 152,
-239, 247, 121, 3, 16, 221, 56, 45, 35, 243, 146, 128, 44, 114, 215, 132,
-101, 220, 233, 180, 2, 29, 87, 203, 185, 144, 16, 37, 113, 60, 244, 214,
-140, 191, 24, 192, 37, 255, 161, 147, 216, 30, 40, 155, 88, 60, 186, 135,
-11, 23, 228, 43, 157, 203, 102, 196, 197, 1, 1, 87, 218, 126, 80, 76,
-30, 182, 207, 153, 135, 248, 6, 181, 215, 77, 128, 200, 10, 19, 107, 138,
-202, 84, 120, 191, 140, 117, 50, 32, 27, 105, 174, 224, 170, 123, 53, 76,
-48, 210, 6, 227, 195, 114, 235, 87, 145, 150, 26, 21, 17, 214, 198, 245,
-125, 109, 156, 170, 204, 143, 228, 62, 196, 128, 21, 243, 153, 91, 71, 164,
-113, 164, 255, 48, 36, 238, 105, 220, 163, 93, 3, 33, 47, 150, 241, 211,
-190, 111, 157, 234, 189, 25, 58, 247, 75, 118, 247, 167, 171, 118, 223, 1,
-180, 98, 83, 0, 2, 109, 17, 255, 116, 244, 107, 101, 220, 100, 70, 21,
-133, 179, 90, 210, 116, 32, 197, 24, 82, 114, 120, 218, 14, 147, 80, 194,
-80, 69, 78, 223, 157, 183, 130, 49, 139, 162, 34, 12, 176, 45, 242, 103,
-232, 128, 68, 88, 225, 181, 149, 3, 210, 20, 38, 155, 6, 206, 136, 22,
-170, 92, 156, 165, 116, 142, 250, 72, 203, 235, 193, 116, 244, 4, 209, 55,
-186, 29, 8, 33, 193, 221, 73, 27, 212, 204, 22, 197, 179, 8, 122, 134,
-8, 255, 96, 51, 2, 169, 193, 96, 128, 178, 109, 143, 131, 50, 219, 208,
-58, 159, 103, 233, 100, 26, 2, 177, 129, 122, 168, 120, 71, 39, 115, 228,
-108, 114, 161, 243, 24, 10, 221, 105, 0, 32, 230, 75, 208, 233, 4, 70,
-249, 98, 37, 46, 87, 158, 145, 60, 85, 229, 199, 236, 126, 80, 183, 181,
-12, 68, 3, 15, 23, 36, 92, 146, 109, 61, 24, 128, 78, 239, 88, 230,
-215, 204, 90, 147, 118, 171, 51, 168, 95, 93, 23, 90, 244, 164, 172, 201,
-222, 112, 143, 193, 209, 130, 201, 207, 118, 175, 51, 3, 83, 144, 53, 7,
-2, 223, 146, 50, 101, 168, 159, 133, 28, 66, 29, 64, 233, 76, 182, 133,
-172, 68, 223, 114, 254, 236, 111, 30, 73, 137, 130, 164, 131, 196, 189, 111,
-155, 147, 217, 64, 194, 115, 143, 201, 77, 22, 153, 228, 83, 191, 53, 210,
-87, 234, 21, 34, 187, 184, 28, 63, 179, 214, 83, 14, 112, 32, 169, 159,
-133, 207, 19, 169, 188, 147, 111, 186, 114, 43, 118, 152, 25, 71, 184, 247,
-239, 62, 39, 125, 8, 176, 91, 46, 127, 37, 169, 247, 186, 170, 231, 106,
-124, 93, 82, 203, 135, 50, 177, 85, 74, 115, 219, 76, 96, 173, 44, 242,
-38, 163, 171, 14, 0, 95, 76, 99, 75, 14, 39, 213, 116, 182, 72, 2,
-234, 176, 65, 98, 150, 36, 70, 86, 137, 151, 218, 245, 141, 17, 24, 233,
-41, 185, 58, 178, 56, 54, 122, 148, 231, 151, 41, 214, 96, 4, 243, 46,
-63, 200, 233, 128, 161, 95, 138, 244, 183, 141, 145, 14, 25, 91, 197, 70,
-3, 227, 187, 203, 223, 48, 120, 113, 7, 0, 130, 193, 160, 67, 108, 185,
-71, 237, 171, 101, 159, 96, 98, 34, 4, 142, 114, 155, 160, 147, 193, 170,
-48, 115, 253, 172, 245, 59, 145, 176, 55, 203, 245, 60, 24, 247, 235, 79,
-12, 117, 74, 18, 151, 14, 208, 7, 227, 230, 138, 182, 107, 33, 172, 211,
-232, 244, 91, 86, 80, 237, 55, 154, 175, 32, 221, 17, 151, 79, 104, 238,
-25, 226, 76, 155, 72, 39, 90, 209, 93, 119, 54, 17, 9, 222, 62, 18,
-136, 25, 15, 59, 194, 203, 57, 150, 0, 52, 122, 104, 84, 199, 104, 180,
-154, 180, 177, 141, 173, 169, 154, 113, 35, 75, 198, 157, 150, 80, 44, 212,
-248, 174, 232, 251, 140, 74, 214, 189, 41, 120, 113, 156, 65, 16, 15, 201,
-18, 45, 16, 210, 104, 247, 38, 33, 40, 249, 61, 119, 153, 179, 72, 88,
-122, 109, 208, 91, 186, 231, 246, 201, 154, 26, 36, 115, 126, 217, 44, 194,
-140, 103, 229, 15, 250, 227, 140, 106, 204, 118, 169, 157, 84, 150, 31, 128,
-194, 254, 144, 221, 84, 79, 211, 148, 33, 60, 107, 211, 170, 159, 248, 105,
-63, 114, 0, 23, 234, 92, 230, 240, 118, 6, 250, 181, 184, 227, 64, 186,
-40, 94, 67, 225, 133, 89, 15, 16, 174, 144, 165, 59, 6, 73, 13, 18,
-29, 10, 46, 237, 23, 51, 33, 27, 193, 212, 63, 194, 5, 79, 66, 177,
-81, 200, 84, 254, 225, 36, 110, 208, 225, 202, 213, 89, 214, 140, 142, 227,
-223, 60, 214, 19, 145, 92, 92, 164, 207, 222, 158, 250, 12, 146, 150, 67,
-204, 120, 211, 109, 95, 186, 40, 167, 178, 90, 34, 46, 234, 28, 109, 171,
-182, 83, 197, 36, 51, 69, 152, 168, 121, 48, 71, 179, 22, 218, 168, 182,
-160, 147, 195, 177, 176, 201, 234, 213, 209, 135, 222, 9, 1, 157, 170, 240,
-175, 246, 218, 255, 92, 53, 102, 171, 22, 235, 180, 248, 118, 10, 85, 14,
-24, 218, 184, 132, 191, 225, 112, 66, 3, 231, 36, 235, 34, 214, 181, 57,
-104, 151, 76, 69, 101, 83, 20, 39, 170, 108, 161, 239, 236, 126, 9, 144,
-27, 117, 209, 174, 173, 92, 16, 185, 25, 8, 65, 29, 134, 67, 1, 248,
-62, 221, 239, 134, 12, 15, 252, 203, 140, 179, 52, 247, 3, 230, 34, 184,
-102, 82, 118, 76, 218, 254, 242, 24, 115, 22, 119, 90, 4, 149, 236, 176,
-116, 68, 77, 123, 201, 192, 255, 188, 107, 195, 3, 217, 184, 106, 219, 116,
-81, 207, 193, 227, 101, 41, 29, 232, 72, 85, 236, 151, 74, 93, 150, 166,
-171, 155, 81, 131, 81, 109, 171, 184, 37, 190, 114, 106, 113, 144, 234, 76,
-143, 92, 98, 190, 112, 151, 198, 151, 181, 99, 7, 182, 50, 190, 157, 141,
-17, 199, 148, 230, 14, 240, 95, 238, 139, 161, 96, 85, 137, 154, 79, 67,
-168, 101, 253, 126, 23, 165, 143, 47, 33, 157, 100, 6, 130, 253, 188, 66,
-21, 205, 243, 116, 62, 241, 161, 177, 199, 234, 61, 135, 55, 113, 25, 153,
-27, 129, 149, 189, 140, 112, 211, 49, 176, 38, 44, 110, 29, 135, 178, 122,
-233, 3, 166, 97, 175, 61, 159, 98, 61, 54, 46, 62, 246, 137, 17, 150,
-249, 165, 99, 211, 172, 76, 7, 104, 39, 106, 119, 221, 159, 210, 96, 33,
-236, 87, 164, 112, 47, 226, 247, 236, 140, 185, 182, 20, 201, 51, 88, 97,
-52, 198, 70, 49, 248, 96, 51, 82, 115, 169, 78, 73, 112, 123, 106, 120,
-113, 184, 93, 194, 224, 68, 211, 200, 237, 209, 41, 160, 127, 89, 163, 55,
-9, 27, 252, 78, 93, 147, 141, 12, 156, 44, 226, 106, 126, 159, 181, 106,
-84, 25, 39, 220, 41, 134, 184, 173, 69, 141, 128, 221, 57, 194, 56, 41,
-148, 107, 242, 241, 174, 129, 152, 123, 81, 101, 1, 204, 9, 109, 154, 97,
-169, 63, 167, 52, 96, 239, 63, 116, 163, 122, 158, 94, 221, 35, 90, 184,
-69, 186, 220, 155, 205, 65, 191, 31, 209, 62, 120, 156, 77, 154, 212, 58,
-165, 208, 254, 65, 204, 148, 200, 121, 78, 129, 79, 121, 39, 34, 3, 169,
-118, 120, 52, 35, 119, 142, 29, 15, 144, 156, 90, 134, 101, 105, 11, 112,
-32, 74, 0, 219, 159, 132, 100, 7, 106, 88, 142, 42, 159, 159, 133, 11,
-175, 92, 88, 144, 12, 55, 185, 47, 142, 31, 43, 39, 16, 83, 122, 54,
-7, 150, 158, 215, 14, 143, 136, 147, 141, 231, 157, 67, 152, 119, 164, 114,
-159, 71, 210, 144, 98, 127, 44, 132, 218, 170, 183, 6, 185, 210, 94, 95,
-99, 240, 116, 30, 126, 76, 115, 212, 246, 102, 92, 96, 159, 252, 177, 173,
-238, 87, 145, 120, 239, 83, 103, 148, 111, 193, 200, 157, 199, 84, 245, 167,
-68, 43, 9, 69, 55, 83, 164, 109, 90, 46, 101, 215, 36, 23, 74, 170,
-73, 31, 151, 63, 13, 233, 151, 107, 248, 28, 92, 35, 70, 5, 235, 85,
-219, 20, 213, 153, 157, 249, 176, 37, 255, 191, 49, 221, 195, 243, 205, 150,
-238, 234, 168, 137, 153, 201, 222, 205, 199, 162, 119, 146, 41, 89, 105, 114,
-144, 27, 194, 167, 15, 17, 102, 155, 81, 20, 64, 25, 235, 217, 63, 154,
-242, 225, 13, 33, 182, 38, 116, 47, 107, 50, 207, 110, 29, 136, 55, 33,
-139, 136, 214, 63, 92, 125, 90, 118, 202, 7, 13, 45, 43, 162, 106, 53,
-143, 13, 190, 171, 226, 196, 144, 17, 49, 136, 120, 246, 99, 28, 219, 184,
-171, 145, 232, 242, 225, 86, 216, 29, 251, 249, 41, 244, 144, 111, 2, 13,
-67, 69, 97, 59, 202, 92, 254, 71, 189, 6, 119, 180, 186, 203, 34, 18,
-85, 115, 103, 178, 15, 139, 42, 154, 39, 24, 0, 19, 22, 240, 255, 252,
-93, 217, 151, 118, 89, 76, 228, 117, 200, 137, 13, 190, 247, 255, 24, 253,
-162, 24, 184, 20, 70, 173, 242, 65, 255, 14, 85, 235, 99, 103, 131, 181,
-84, 80, 63, 156, 184, 204, 191, 61, 156, 252, 59, 37, 109, 229, 102, 139,
-94, 178, 178, 164, 231, 49, 155, 35, 56, 196, 15, 169, 144, 251, 215, 89,
-129, 230, 72, 219, 139, 197, 78, 109, 102, 25, 48, 44, 123, 211, 216, 106,
-185, 237, 124, 133, 39, 37, 162, 20, 211, 134, 155, 168, 11, 222, 152, 143,
-211, 112, 133, 136, 21, 169, 89, 187, 92, 61, 144, 126, 142, 165, 91, 64,
-45, 41, 56, 164, 108, 49, 241, 137, 99, 44, 191, 100, 11, 225, 166, 244,
-183, 14, 69, 141, 184, 193, 220, 72, 211, 67, 223, 16, 43, 227, 34, 87,
-91, 32, 229, 84, 162, 113, 251, 125, 218, 118, 31, 254, 16, 33, 170, 201,
-209, 49, 30, 113, 104, 193, 212, 82, 64, 80, 214, 32, 149, 217, 244, 237,
-193, 223, 104, 77, 128, 228, 140, 55, 252, 204, 229, 187, 36, 99, 153, 241,
-138, 135, 171, 169, 62, 250, 184, 63, 167, 139, 183, 57, 170, 36, 217, 201,
-129, 169, 222, 78, 153, 65, 153, 195, 211, 229, 159, 191, 0, 145, 12, 209,
-25, 247, 122, 19, 108, 173, 163, 187, 235, 254, 87, 80, 25, 110, 179, 158,
-48, 232, 20, 138, 81, 198, 78, 18, 44, 75, 181, 18, 238, 96, 61, 247,
-229, 254, 2, 55, 169, 32, 180, 136, 177, 161, 213, 132, 128, 108, 93, 159,
-201, 212, 238, 223, 233, 186, 243, 4, 248, 5, 33, 214, 193, 214, 95, 51,
-141, 60, 72, 63, 142, 184, 37, 122, 118, 136, 97, 93, 142, 245, 8, 147,
-224, 126, 67, 93, 170, 105, 121, 231, 171, 85, 105, 191, 126, 88, 57, 42,
-253, 179, 85, 251, 193, 163, 112, 71, 28, 137, 104, 199, 121, 13, 122, 58,
-231, 160, 176, 50, 200, 80, 65, 99, 25, 67, 129, 91, 97, 178, 131, 195,
-111, 148, 134, 71, 57, 145, 113, 209, 177, 51, 154, 29, 28, 180, 74, 13,
-69, 147, 96, 210, 108, 176, 89, 248, 238, 64, 140, 85, 196, 169, 20, 251,
-238, 194, 41, 56, 39, 59, 226, 189, 130, 178, 90, 176, 226, 46, 108, 156,
-204, 174, 85, 118, 165, 137, 184, 160, 133, 89, 170, 184, 37, 48, 65, 241,
-224, 117, 164, 248, 213, 112, 143, 128, 23, 130, 133, 216, 66, 190, 63, 238,
-179, 84, 71, 27, 50, 83, 199, 91, 126, 164, 192, 76, 107, 100, 229, 6,
-25, 164, 89, 235, 117, 247, 61, 109, 205, 76, 128, 230, 41, 243, 85, 58,
-189, 128, 216, 21, 53, 68, 80, 1, 25, 171, 203, 71, 176, 46, 6, 84,
-35, 150, 95, 144, 144, 253, 210, 78, 10, 31, 218, 179, 248, 95, 81, 244,
-79, 215, 63, 196, 100, 165, 120, 54, 14, 180, 125, 152, 106, 173, 125, 14,
-108, 211, 161, 131, 229, 114, 56, 252, 16, 221, 16, 242, 74, 87, 168, 121,
-127, 247, 212, 200, 71, 204, 116, 246, 255, 154, 24, 137, 127, 45, 177, 212,
-17, 212, 102, 236, 29, 88, 177, 166, 135, 107, 210, 230, 219, 124, 71, 98,
-50, 230, 107, 222, 79, 222, 190, 37, 241, 242, 167, 27, 117, 253, 201, 76,
-251, 186, 18, 135, 96, 191, 207, 15, 107, 67, 146, 251, 105, 102, 25, 200,
-71, 209, 165, 125, 192, 18, 228, 162, 238, 214, 221, 138, 49, 40, 100, 122,
-249, 20, 121, 57, 199, 11, 0, 243, 76, 57, 23, 211, 110, 212, 250, 218,
-95, 154, 145, 179, 173, 45, 233, 155, 246, 67, 35, 203, 93, 5, 2, 91,
-121, 116, 93, 64, 69, 31, 182, 179, 74, 59, 198, 41, 19, 102, 51, 76,
-126, 224, 153, 65, 254, 186, 90, 16, 91, 220, 154, 130, 20, 187, 103, 141,
-248, 188, 245, 250, 139, 191, 48, 138, 40, 199, 201, 155, 147, 83, 62, 254,
-80, 3, 107, 104, 36, 103, 186, 94, 186, 225, 107, 167, 118, 230, 199, 85,
-241, 219, 139, 20, 28, 233, 5, 131, 144, 101, 21, 228, 236, 249, 115, 82,
-62, 147, 175, 251, 174, 128, 176, 255, 248, 142, 239, 113, 165, 254, 238, 22,
-99, 162, 202, 108, 79, 235, 246, 32, 220, 11, 51, 239, 109, 4, 204, 179,
-212, 86, 38, 5, 232, 170, 76, 151, 131, 165, 206, 122, 105, 124, 107, 28,
-137, 196, 99, 194, 6, 122, 29, 75, 178, 26, 232, 70, 33, 231, 24, 73,
-33, 187, 181, 240, 75, 22, 114, 163, 98, 114, 6, 93, 2, 32, 16, 79,
-93, 119, 219, 153, 15, 182, 129, 123, 242, 162, 182, 152, 200, 24, 14, 95,
-48, 35, 60, 237, 71, 183, 152, 92, 134, 31, 82, 174, 53, 155, 170, 96,
-221, 93, 137, 90, 31, 128, 20, 131, 15, 86, 154, 93, 190, 178, 124, 214,
-130, 43, 64, 134, 249, 0, 48, 215, 92, 236, 202, 24, 47, 60, 232, 190,
-124, 3, 71, 145, 183, 215, 240, 1, 100, 235, 203, 185, 205, 122, 222, 41,
-199, 127, 4, 74, 57, 92, 80, 227, 109, 81, 197, 32, 38, 35, 53, 94,
-245, 9, 141, 245, 223, 223, 95, 42, 175, 157, 209, 215, 90, 64, 0, 248,
-244, 246, 25, 60, 7, 169, 138, 246, 184, 96, 155, 68, 94, 155, 22, 15,
-241, 169, 20, 49, 215, 209, 111, 239, 200, 144, 5, 33, 153, 142, 239, 148,
-110, 117, 109, 248, 67, 98, 109, 157, 187, 172, 160, 169, 85, 54, 0, 153,
-129, 217, 150, 67, 124, 151, 101, 106, 131, 207, 134, 5, 255, 139, 146, 192,
-0, 115, 91, 6, 129, 58, 60, 103, 106, 223, 52, 211, 102, 252, 153, 7,
-36, 34, 32, 136, 111, 24, 231, 218, 101, 114, 49, 128, 185, 58, 235, 26,
-108, 148, 216, 2, 109, 127, 76, 170, 230, 167, 77, 230, 144, 120, 234, 183,
-78, 246, 204, 228, 134, 249, 88, 100, 196, 198, 168, 113, 216, 42, 35, 193,
-234, 34, 195, 152, 125, 79, 79, 24, 161, 173, 16, 174, 46, 67, 170, 131,
-156, 232, 86, 89, 173, 30, 39, 209, 177, 50, 137, 84, 109, 203, 25, 179,
-105, 42, 151, 141, 56, 47, 146, 109, 175, 225, 243, 210, 206, 81, 196, 237,
-159, 201, 165, 55, 181, 153, 69, 153, 117, 118, 217, 130, 65, 139, 68, 118,
-59, 201, 202, 82, 129, 162, 23, 102, 61, 155, 109, 206, 125, 41, 111, 139,
-83, 174, 133, 242, 44, 2, 235, 186, 58, 247, 99, 136, 173, 106, 250, 248,
-34, 152, 133, 3, 208, 170, 129, 23, 60, 73, 212, 46, 191, 190, 88, 207,
-221, 164, 178, 45, 215, 131, 204, 225, 117, 173, 138, 180, 3, 0, 15, 14,
-221, 73, 184, 22, 167, 83, 216, 31, 137, 254, 108, 90, 21, 235, 5, 68,
-143, 236, 218, 177, 170, 239, 180, 8, 168, 140, 226, 189, 16, 145, 62, 163,
-225, 93, 205, 37, 120, 98, 129, 249, 129, 253, 213, 174, 200, 19, 143, 140,
-9, 177, 50, 105, 134, 69, 113, 244, 133, 6, 120, 25, 155, 132, 254, 226,
-207, 43, 56, 168, 69, 169, 95, 83, 166, 34, 69, 213, 187, 98, 243, 119,
-143, 121, 249, 119, 129, 165, 103, 146, 140, 13, 136, 238, 160, 170, 253, 171,
-212, 98, 239, 172, 195, 249, 68, 207, 60, 24, 130, 128, 167, 163, 178, 130,
-220, 6, 139, 198, 201, 110, 26, 91, 155, 144, 143, 212, 85, 106, 50, 198,
-74, 210, 168, 146, 232, 172, 30, 152, 206, 69, 44, 47, 88, 165, 180, 221,
-45, 252, 248, 47, 26, 33, 142, 189, 77, 77, 20, 185, 247, 249, 88, 67,
-117, 249, 151, 118, 57, 18, 137, 128, 189, 134, 148, 85, 7, 47, 60, 142,
-110, 105, 252, 45, 165, 187, 134, 50, 255, 180, 56, 130, 137, 76, 189, 218,
-152, 46, 148, 44, 1, 239, 47, 72, 192, 70, 14, 74, 90, 136, 245, 35,
-40, 171, 29, 17, 97, 77, 184, 32, 38, 38, 252, 12, 0, 226, 11, 222,
-132, 183, 121, 209, 83, 3, 164, 243, 32, 111, 109, 145, 203, 57, 241, 192,
-5, 107, 164, 128, 3, 218, 69, 178, 200, 222, 45, 65, 105, 110, 115, 184,
-75, 243, 221, 49, 226, 170, 189, 49, 246, 129, 33, 150, 38, 203, 3, 214,
-111, 206, 150, 168, 137, 162, 228, 3, 96, 105, 184, 27, 106, 81, 32, 147,
-230, 60, 219, 199, 176, 74, 100, 18, 80, 140, 70, 128, 115, 119, 111, 82,
-172, 8, 6, 168, 188, 56, 197, 112, 159, 169, 216, 200, 90, 251, 104, 112,
-19, 179, 71, 59, 181, 138, 224, 158, 252, 148, 50, 65, 55, 33, 120, 142,
-137, 108, 20, 142, 236, 144, 89, 197, 190, 188, 19, 102, 227, 240, 38, 170,
-129, 123, 69, 123, 193, 13, 37, 133, 44, 167, 210, 141, 172, 154, 208, 42,
-156, 35, 126, 176, 1, 98, 193, 135, 102, 235, 229, 22, 34, 187, 18, 111,
-64, 83, 107, 17, 157, 241, 117, 59, 8, 211, 60, 200, 87, 184, 89, 132,
-249, 60, 18, 81, 237, 225, 53, 221, 131, 255, 218, 64, 239, 194, 7, 181,
-40, 3, 46, 108, 220, 52, 108, 62, 254, 140, 37, 116, 15, 40, 169, 90,
-47, 136, 102, 253, 7, 223, 132, 207, 60, 234, 21, 134, 155, 63, 112, 37,
-72, 222, 55, 59, 20, 34, 167, 71, 222, 221, 164, 161, 92, 131, 244, 235,
-243, 237, 184, 129, 77, 165, 160, 139, 171, 234, 234, 69, 113, 128, 93, 215,
-9, 84, 41, 213, 35, 164, 24, 120, 204, 180, 178, 153, 47, 245, 57, 22,
-175, 206, 12, 175, 203, 129, 39, 93, 127, 18, 12, 55, 43, 36, 252, 1,
-104, 116, 59, 135, 193, 145, 183, 41, 62, 78, 165, 189, 232, 128, 224, 11,
-142, 255, 2, 223, 95, 80, 219, 87, 249, 121, 31, 181, 50, 241, 31, 127,
-174, 99, 238, 176, 116, 65, 220, 160, 189, 25, 204, 103, 20, 231, 42, 195,
-34, 180, 105, 121, 110, 99, 149, 139, 1, 221, 124, 67, 172, 47, 189, 207,
-14, 229, 79, 158, 187, 203, 126, 236, 14, 53, 121, 243, 132, 78, 39, 72,
-7, 165, 22, 78, 41, 101, 128, 20, 168, 136, 198, 109, 226, 32, 135, 168,
-104, 155, 115, 57, 50, 66, 17, 72, 245, 124, 70, 188, 194, 144, 89, 140,
-85, 8, 10, 129, 227, 167, 15, 15, 201, 54, 239, 194, 154, 204, 129, 27,
-190, 245, 102, 166, 178, 201, 7, 197, 78, 149, 69, 245, 4, 143, 4, 84,
-13, 217, 59, 242, 223, 226, 199, 231, 118, 188, 55, 115, 56, 15, 217, 3,
-0, 181, 190, 3, 162, 127, 120, 206, 181, 8, 225, 155, 148, 202, 117, 70,
-96, 81, 246, 165, 253, 115, 148, 217, 138, 44, 203, 36, 44, 221, 59, 122,
-68, 170, 248, 235, 88, 242, 209, 42, 71, 31, 117, 5, 149, 221, 216, 154,
-116, 41, 231, 138, 123, 85, 128, 71, 109, 111, 17, 72, 163, 225, 109, 7,
-40, 133, 74, 76, 155, 107, 34, 193, 114, 240, 61, 31, 24, 46, 215, 197,
-96, 114, 213, 18, 214, 57, 119, 50, 18, 5, 175, 254, 21, 246, 64, 145,
-171, 217, 243, 159, 250, 231, 228, 64, 164, 97, 61, 150, 9, 230, 11, 138,
-132, 95, 209, 138, 97, 87, 139, 190, 171, 135, 158, 170, 99, 198, 18, 127,
-44, 102, 1, 236, 90, 73, 214, 135, 116, 107, 247, 175, 46, 238, 51, 79,
-163, 249, 5, 137, 145, 92, 138, 23, 207, 158, 50, 109, 131, 84, 61, 184,
-252, 232, 20, 67, 107, 189, 61, 198, 27, 6, 189, 119, 34, 236, 94, 105,
-65, 140, 181, 248, 32, 12, 119, 126, 0, 14, 226, 78, 7, 121, 111, 47,
-30, 49, 206, 187, 125, 247, 235, 6, 229, 34, 161, 174, 72, 154, 37, 94,
-8, 88, 125, 54, 182, 100, 46, 84, 144, 213, 251, 62, 71, 177, 120, 255,
-194, 14, 105, 206, 151, 179, 144, 140, 191, 167, 248, 44, 70, 227, 154, 142,
-32, 174, 159, 199, 154, 78, 165, 68, 96, 73, 8, 13, 246, 162, 155, 48,
-7, 121, 90, 173, 40, 226, 166, 189, 35, 87, 225, 45, 209, 220, 70, 22,
-156, 216, 39, 126, 84, 142, 207, 100, 219, 155, 166, 43, 253, 161, 255, 143,
-148, 93, 17, 7, 109, 176, 112, 14, 87, 147, 186, 123, 32, 159, 252, 83,
-111, 182, 250, 28, 239, 207, 92, 64, 17, 26, 216, 0, 41, 24, 142, 246,
-19, 172, 32, 137, 234, 69, 147, 251, 234, 207, 95, 6, 113, 209, 107, 69,
-122, 198, 148, 13, 18, 28, 238, 191, 168, 205, 144, 234, 181, 247, 192, 151,
-176, 95, 157, 60, 224, 26, 120, 24, 16, 66, 102, 51, 185, 111, 39, 6,
-205, 187, 16, 1, 141, 45, 234, 48, 144, 26, 92, 155, 213, 218, 88, 151,
-0, 111, 109, 28, 44, 172, 24, 215, 205, 186, 42, 119, 124, 48, 41, 199,
-85, 81, 244, 24, 170, 71, 156, 141, 249, 234, 193, 174, 77, 184, 47, 107,
-112, 235, 124, 254, 7, 163, 156, 71, 59, 122, 224, 196, 215, 71, 81, 145,
-207, 178, 97, 118, 45, 154, 109, 190, 143, 63, 83, 135, 110, 166, 174, 47,
-195, 33, 0, 234, 212, 223, 11, 248, 210, 158, 17, 139, 239, 15, 57, 133,
-185, 152, 71, 56, 2, 62, 10, 103, 243, 247, 182, 81, 10, 38, 49, 7,
-131, 10, 202, 184, 79, 149, 84, 213, 122, 133, 208, 24, 141, 132, 12, 244,
-251, 160, 41, 56, 219, 123, 120, 23, 240, 40, 29, 32, 213, 222, 36, 49,
-173, 176, 11, 209, 145, 104, 154, 154, 182, 183, 5, 60, 131, 70, 224, 47,
-125, 110, 47, 246, 180, 222, 125, 243, 251, 55, 25, 147, 77, 164, 116, 218,
-152, 191, 244, 47, 199, 68, 208, 209, 49, 90, 197, 176, 2, 191, 127, 198,
-48, 16, 168, 243, 41, 195, 50, 175, 33, 172, 92, 185, 254, 96, 221, 65,
-24, 36, 187, 10, 104, 242, 101, 185, 176, 206, 215, 166, 82, 189, 245, 208,
-62, 38, 207, 97, 192, 45, 46, 98, 66, 201, 69, 95, 206, 211, 204, 225,
-137, 204, 100, 110, 58, 84, 29, 112, 144, 51, 15, 1, 170, 79, 41, 239,
-77, 1, 208, 209, 80, 208, 214, 27, 168, 153, 229, 188, 40, 250, 13, 240,
-23, 96, 54, 235, 23, 202, 165, 215, 109, 143, 163, 161, 136, 101, 109, 98,
-102, 54, 231, 141, 157, 22, 5, 201, 89, 10, 241, 113, 225, 185, 234, 128,
-212, 206, 186, 59, 114, 79, 69, 43, 171, 208, 219, 63, 219, 112, 54, 77,
-156, 116, 150, 140, 113, 186, 79, 131, 109, 231, 205, 170, 253, 131, 97, 141,
-107, 242, 5, 238, 167, 32, 135, 194, 143, 151, 71, 22, 81, 254, 84, 120,
-103, 131, 61, 86, 126, 66, 51, 201, 0, 170, 70, 18, 38, 152, 225, 3,
-117, 98, 100, 141, 114, 39, 161, 189, 146, 148, 43, 55, 189, 18, 157, 181,
-185, 7, 117, 77, 56, 229, 91, 80, 233, 79, 165, 140, 24, 98, 197, 130,
-50, 70, 44, 111, 230, 241, 92, 204, 246, 78, 19, 18, 231, 219, 201, 207,
-84, 205, 137, 138, 113, 45, 4, 72, 145, 204, 3, 86, 230, 200, 208, 166,
-218, 183, 217, 21, 89, 23, 40, 107, 161, 68, 230, 96, 236, 91, 106, 15,
-38, 255, 132, 13, 248, 98, 106, 177, 223, 54, 247, 114, 82, 147, 161, 42,
-43, 10, 192, 12, 94, 200, 248, 200, 85, 231, 247, 246, 201, 221, 180, 217,
-113, 12, 222, 88, 53, 21, 6, 26, 214, 220, 152, 253, 92, 56, 158, 17,
-233, 218, 95, 234, 91, 97, 71, 148, 11, 3, 226, 199, 250, 201, 132, 92,
-244, 18, 210, 248, 212, 89, 182, 96, 73, 121, 250, 222, 59, 121, 118, 19,
-28, 221, 126, 48, 119, 190, 217, 72, 194, 91, 4, 213, 17, 137, 34, 246,
-7, 6, 143, 245, 97, 192, 252, 55, 145, 82, 10, 77, 111, 31, 80, 74,
-156, 14, 68, 111, 82, 76, 168, 203, 9, 220, 54, 233, 175, 186, 169, 104,
-243, 2, 143, 109, 213, 247, 163, 196, 181, 37, 16, 50, 218, 28, 129, 118,
-162, 187, 98, 202, 226, 244, 39, 27, 90, 255, 235, 125, 98, 206, 155, 179,
-211, 58, 135, 80, 97, 220, 32, 136, 18, 226, 60, 251, 51, 170, 165, 47,
-4, 63, 160, 41, 105, 85, 23, 122, 32, 145, 69, 85, 159, 147, 73, 209,
-201, 169, 25, 225, 164, 6, 151, 92, 9, 223, 55, 137, 202, 67, 221, 100,
-161, 248, 10, 209, 195, 27, 146, 4, 219, 227, 190, 203, 134, 228, 10, 160,
-34, 221, 250, 110, 203, 33, 186, 60, 136, 185, 235, 72, 45, 105, 176, 161,
-36, 169, 185, 174, 168, 146, 23, 57, 128, 198, 162, 194, 197, 62, 254, 102,
-200, 154, 140, 98, 40, 208, 128, 95, 151, 77, 40, 190, 88, 75, 156, 47,
-207, 220, 11, 125, 159, 24, 89, 142, 60, 2, 156, 25, 44, 203, 39, 222,
-166, 122, 93, 215, 91, 87, 57, 199, 69, 211, 244, 140, 241, 106, 43, 193,
-10, 150, 65, 226, 163, 202, 165, 155, 93, 219, 207, 28, 174, 157, 201, 199,
-169, 174, 28, 36, 117, 106, 155, 87, 209, 223, 171, 104, 72, 76, 180, 101,
-196, 248, 163, 252, 150, 33, 224, 118, 128, 130, 145, 211, 28, 80, 17, 174,
-33, 156, 108, 139, 120, 225, 111, 9, 46, 228, 79, 112, 121, 35, 181, 170,
-12, 131, 173, 169, 4, 40, 8, 101, 34, 154, 227, 200, 57, 50, 118, 220,
-128, 21, 208, 62, 131, 68, 193, 52, 163, 35, 96, 45, 225, 26, 219, 50,
-194, 44, 22, 181, 83, 21, 82, 35, 100, 10, 241, 218, 12, 104, 240, 254,
-190, 54, 48, 213, 87, 65, 183, 27, 232, 23, 246, 169, 179, 164, 55, 66,
-70, 219, 7, 214, 128, 58, 244, 120, 52, 255, 213, 170, 81, 235, 16, 46,
-18, 229, 186, 139, 118, 127, 12, 74, 173, 106, 171, 161, 3, 108, 3, 113,
-211, 2, 88, 90, 227, 202, 196, 195, 69, 88, 168, 40, 87, 247, 210, 5,
-26, 117, 159, 42, 3, 73, 148, 247, 236, 110, 16, 236, 169, 179, 22, 198,
-32, 79, 138, 96, 70, 6, 161, 27, 71, 155, 241, 112, 60, 188, 51, 134,
-154, 0, 207, 203, 43, 102, 88, 180, 139, 239, 72, 26, 46, 174, 76, 65,
-14, 135, 202, 211, 124, 201, 4, 227, 40, 119, 46, 102, 23, 71, 143, 167,
-164, 77, 192, 135, 16, 27, 148, 127, 123, 191, 209, 160, 49, 93, 138, 94,
-161, 181, 205, 80, 80, 33, 73, 203, 45, 36, 194, 173, 86, 7, 234, 200,
-138, 20, 62, 20, 110, 84, 16, 238, 207, 123, 175, 233, 40, 135, 51, 85,
-136, 64, 204, 198, 207, 151, 162, 133, 207, 58, 246, 187, 201, 91, 185, 76,
-46, 209, 173, 153, 71, 158, 241, 109, 66, 129, 109, 19, 70, 30, 186, 76,
-249, 125, 197, 243, 223, 219, 16, 93, 134, 232, 59, 188, 42, 4, 155, 129,
-236, 145, 166, 244, 222, 103, 3, 166, 145, 150, 57, 129, 19, 253, 157, 242,
-66, 97, 165, 107, 87, 180, 245, 247, 47, 19, 34, 135, 219, 94, 76, 118,
-156, 247, 148, 44, 142, 164, 20, 184, 96, 179, 138, 54, 39, 212, 235, 96,
-215, 39, 45, 51, 215, 39, 47, 119, 120, 22, 197, 166, 158, 26, 115, 21,
-16, 110, 23, 166, 132, 209, 232, 103, 248, 200, 133, 238, 224, 13, 50, 110,
-33, 211, 154, 5, 239, 137, 226, 87, 131, 152, 225, 59, 208, 49, 204, 237,
-81, 149, 34, 167, 46, 181, 121, 110, 31, 108, 226, 10, 80, 6, 47, 84,
-180, 176, 86, 70, 171, 221, 85, 143, 172, 227, 120, 229, 75, 140, 133, 195,
-176, 173, 92, 82, 179, 97, 115, 116, 236, 224, 70, 44, 166, 206, 23, 99,
-0, 213, 47, 203, 153, 221, 178, 246, 196, 30, 74, 208, 100, 245, 85, 136,
-132, 6, 213, 73, 199, 248, 61, 206, 141, 74, 61, 100, 181, 157, 51, 131,
-95, 116, 217, 218, 162, 32, 136, 10, 115, 221, 65, 16, 223, 19, 163, 172,
-73, 140, 97, 69, 67, 199, 116, 137, 251, 188, 106, 68, 78, 25, 225, 202,
-40, 117, 161, 114, 10, 208, 29, 48, 217, 82, 234, 75, 134, 156, 9, 253,
-241, 144, 22, 186, 139, 101, 111, 37, 72, 95, 33, 177, 20, 246, 210, 132,
-1, 255, 84, 153, 171, 140, 222, 57, 86, 34, 181, 228, 39, 13, 158, 35,
-57, 113, 16, 61, 97, 111, 39, 48, 192, 88, 102, 201, 83, 73, 113, 227,
-116, 20, 73, 169, 135, 107, 8, 96, 250, 23, 25, 242, 51, 166, 29, 160,
-169, 43, 239, 90, 254, 198, 209, 54, 249, 31, 217, 23, 118, 57, 192, 20,
-69, 77, 50, 24, 34, 190, 166, 28, 181, 49, 126, 222, 133, 171, 0, 85,
-212, 226, 94, 35, 11, 186, 253, 42, 162, 231, 111, 41, 53, 21, 0, 196,
-211, 17, 73, 180, 211, 43, 10, 11, 169, 42, 217, 100, 220, 106, 211, 8,
-68, 44, 65, 124, 214, 103, 198, 30, 191, 25, 71, 54, 175, 38, 179, 199,
-70, 138, 97, 108, 255, 138, 125, 40, 227, 161, 76, 237, 137, 181, 151, 130,
-199, 147, 50, 202, 63, 204, 201, 210, 176, 96, 34, 56, 67, 123, 183, 1,
-76, 154, 235, 179, 216, 12, 117, 188, 46, 156, 252, 113, 160, 233, 197, 85,
-136, 30, 248, 140, 12, 94, 134, 65, 86, 195, 234, 246, 91, 169, 22, 246,
-179, 50, 9, 114, 221, 181, 117, 75, 248, 250, 178, 13, 27, 17, 253, 242,
-46, 217, 38, 173, 41, 199, 29, 74, 40, 35, 68, 210, 208, 58, 180, 133,
-244, 138, 113, 207, 34, 225, 122, 92, 111, 221, 183, 24, 150, 49, 7, 21,
-66, 56, 58, 165, 114, 83, 27, 31, 48, 14, 6, 160, 66, 45, 64, 87,
-184, 7, 29, 123, 248, 231, 76, 1, 133, 82, 122, 54, 198, 43, 143, 135,
-5, 173, 90, 234, 193, 11, 13, 158, 200, 210, 235, 34, 16, 147, 34, 12,
-162, 125, 17, 42, 120, 178, 254, 70, 247, 98, 239, 253, 121, 6, 228, 136,
-142, 224, 84, 181, 244, 122, 130, 165, 247, 26, 40, 7, 194, 75, 69, 109,
-154, 8, 69, 73, 19, 187, 93, 141, 133, 163, 142, 102, 230, 167, 64, 60,
-82, 140, 73, 205, 221, 44, 139, 106, 67, 75, 232, 192, 201, 199, 198, 3,
-138, 228, 140, 161, 212, 57, 55, 51, 94, 38, 89, 225, 92, 37, 239, 56,
-35, 50, 203, 123, 145, 140, 62, 37, 78, 17, 223, 236, 211, 3, 152, 48,
-200, 73, 18, 202, 203, 100, 185, 171, 51, 254, 143, 39, 141, 125, 28, 236,
-179, 45, 234, 126, 20, 65, 174, 97, 241, 242, 45, 63, 49, 10, 137, 234,
-137, 186, 225, 132, 36, 54, 195, 173, 21, 185, 163, 118, 125, 244, 66, 172,
-145, 124, 242, 5, 21, 230, 51, 165, 24, 71, 157, 116, 172, 183, 147, 176,
-148, 136, 88, 84, 10, 83, 22, 173, 67, 228, 17, 37, 136, 248, 234, 77,
-233, 145, 111, 253, 31, 77, 212, 111, 222, 215, 46, 77, 29, 10, 192, 121,
-17, 173, 70, 252, 53, 136, 16, 177, 162, 28, 113, 124, 181, 146, 235, 248,
-80, 80, 242, 94, 21, 192, 162, 236, 21, 163, 244, 217, 15, 167, 84, 195,
-43, 216, 220, 177, 69, 99, 35, 58, 217, 252, 195, 102, 13, 196, 105, 6,
-217, 48, 209, 199, 143, 139, 51, 227, 180, 80, 148, 206, 183, 153, 31, 245,
-60, 182, 205, 199, 153, 244, 232, 251, 209, 169, 42, 163, 67, 217, 181, 27,
-57, 115, 107, 78, 192, 254, 236, 183, 230, 114, 42, 155, 19, 142, 83, 207,
-172, 53, 20, 250, 2, 150, 37, 214, 186, 35, 8, 179, 170, 90, 214, 160,
-218, 251, 130, 197, 24, 191, 23, 236, 227, 157, 3, 96, 32, 168, 173, 248,
-215, 41, 14, 14, 80, 134, 34, 65, 108, 106, 46, 195, 150, 150, 123, 103,
-56, 121, 202, 213, 107, 245, 191, 129, 192, 40, 90, 5, 30, 100, 119, 156,
-208, 22, 206, 119, 48, 69, 54, 22, 230, 217, 97, 167, 114, 105, 155, 188,
-78, 3, 170, 226, 209, 167, 147, 154, 90, 126, 193, 12, 253, 228, 165, 3,
-31, 102, 106, 2, 235, 18, 39, 152, 173, 182, 194, 126, 183, 114, 202, 209,
-32, 68, 98, 99, 185, 55, 21, 116, 89, 224, 79, 160, 166, 171, 39, 179,
-173, 146, 79, 167, 36, 75, 195, 22, 248, 177, 97, 122, 14, 86, 234, 99,
-20, 138, 252, 2, 31, 47, 191, 187, 136, 224, 233, 172, 28, 59, 77, 231,
-124, 86, 67, 25, 9, 222, 119, 157, 29, 30, 166, 111, 107, 138, 153, 254,
-26, 105, 243, 91, 208, 2, 249, 188, 40, 34, 138, 91, 32, 171, 246, 64,
-57, 7, 145, 243, 155, 93, 228, 228, 158, 94, 185, 149, 63, 236, 176, 186,
-35, 145, 171, 209, 213, 214, 1, 158, 143, 185, 33, 248, 84, 1, 91, 201,
-0, 174, 112, 52, 165, 202, 24, 20, 234, 125, 255, 142, 35, 138, 21, 87,
-157, 40, 87, 150, 222, 226, 114, 119, 127, 190, 123, 25, 10, 175, 20, 66,
-35, 8, 253, 203, 17, 79, 239, 79, 49, 92, 111, 62, 64, 94, 150, 95,
-50, 246, 19, 78, 89, 247, 4, 25, 146, 142, 201, 101, 137, 36, 179, 93,
-80, 158, 144, 34, 248, 173, 20, 245, 180, 30, 132, 241, 10, 120, 205, 10,
-200, 119, 195, 193, 48, 205, 143, 48, 53, 155, 242, 50, 99, 181, 154, 182,
-44, 243, 5, 18, 121, 140, 60, 56, 141, 213, 156, 158, 122, 28, 125, 42,
-152, 83, 47, 132, 16, 54, 246, 164, 123, 68, 237, 151, 20, 161, 128, 24,
-251, 153, 36, 9, 100, 227, 235, 15, 204, 33, 69, 90, 175, 71, 200, 215,
-24, 28, 136, 123, 224, 112, 205, 183, 171, 130, 119, 157, 87, 155, 55, 89,
-50, 121, 143, 12, 118, 51, 131, 109, 111, 39, 194, 206, 119, 150, 89, 9,
-199, 86, 88, 207, 32, 241, 141, 106, 11, 19, 241, 140, 74, 19, 241, 116,
-186, 224, 216, 139, 83, 35, 186, 189, 122, 64, 168, 121, 63, 182, 101, 232,
-152, 96, 4, 162, 191, 152, 73, 12, 240, 55, 51, 112, 218, 216, 129, 30,
-39, 49, 209, 132, 24, 140, 22, 17, 216, 218, 120, 221, 248, 40, 169, 24,
-78, 198, 219, 99, 86, 225, 233, 255, 239, 118, 13, 44, 190, 145, 152, 207,
-101, 102, 168, 204, 212, 179, 109, 54, 101, 48, 155, 91, 170, 10, 87, 131,
-49, 95, 165, 199, 62, 162, 187, 239, 186, 7, 225, 128, 178, 201, 39, 223,
-213, 194, 202, 65, 216, 188, 204, 161, 53, 103, 200, 108, 56, 119, 205, 152,
-227, 105, 8, 55, 99, 100, 226, 227, 206, 104, 172, 249, 126, 39, 185, 1,
-243, 134, 226, 104, 36, 176, 242, 51, 27, 83, 252, 250, 219, 2, 201, 197,
-64, 156, 102, 171, 172, 59, 35, 60, 154, 112, 32, 14, 252, 78, 91, 162,
-54, 139, 223, 154, 97, 157, 236, 49, 33, 253, 67, 60, 100, 127, 204, 83,
-235, 7, 217, 215, 136, 85, 76, 172, 161, 180, 54, 61, 43, 187, 207, 125,
-50, 157, 246, 96, 159, 203, 17, 61, 26, 184, 206, 206, 232, 73, 32, 222,
-252, 64, 156, 78, 140, 41, 121, 73, 222, 133, 72, 98, 45, 161, 172, 42,
-230, 164, 248, 139, 255, 140, 84, 5, 244, 131, 158, 185, 177, 5, 27, 201,
-68, 69, 37, 32, 11, 79, 15, 218, 201, 41, 61, 220, 82, 102, 143, 137,
-93, 161, 93, 184, 133, 140, 9, 118, 220, 217, 184, 157, 227, 184, 1, 219,
-35, 183, 183, 154, 195, 123, 59, 124, 166, 251, 151, 248, 83, 199, 158, 163,
-206, 4, 131, 32, 69, 137, 93, 52, 213, 84, 219, 225, 85, 146, 26, 21,
-122, 138, 108, 189, 93, 29, 36, 19, 127, 185, 251, 186, 134, 1, 139, 130,
-148, 24, 147, 113, 153, 18, 156, 113, 220, 136, 99, 207, 16, 224, 118, 5,
-125, 247, 223, 187, 255, 176, 45, 225, 100, 65, 230, 94, 247, 106, 236, 139,
-48, 170, 135, 188, 110, 72, 245, 77, 229, 119, 121, 221, 117, 80, 161, 11,
-83, 111, 104, 7, 16, 215, 200, 76, 70, 30, 235, 109, 255, 108, 51, 22,
-39, 118, 166, 185, 10, 201, 25, 135, 139, 123, 47, 231, 94, 237, 44, 205,
-224, 101, 159, 219, 52, 75, 219, 117, 127, 94, 37, 98, 166, 26, 218, 182,
-135, 79, 97, 128, 47, 80, 11, 129, 232, 199, 73, 238, 20, 96, 73, 8,
-13, 246, 150, 113, 16, 93, 29, 63, 99, 184, 127, 48, 184, 15, 201, 41,
-8, 73, 20, 254, 186, 190, 85, 57, 106, 219, 50, 222, 245, 19, 1, 224,
-126, 204, 176, 212, 46, 202, 253, 246, 139, 139, 157, 165, 224, 100, 16, 48,
-50, 146, 146, 189, 215, 105, 250, 219, 7, 105, 27, 195, 58, 185, 223, 24,
-132, 199, 121, 183, 28, 15, 242, 170, 196, 120, 116, 16, 197, 209, 226, 57,
-221, 6, 20, 154, 98, 50, 100, 209, 68, 35, 57, 77, 168, 139, 101, 179,
-73, 182, 158, 237, 54, 140, 39, 181, 108, 154, 139, 112, 185, 112, 88, 51,
-125, 93, 26, 202, 77, 157, 48, 88, 66, 74, 64, 55, 153, 78, 123, 156,
-171, 59, 43, 11, 142, 249, 137, 25, 136, 219, 244, 210, 117, 44, 156, 136,
-80, 224, 236, 213, 190, 71, 252, 135, 37, 95, 7, 5, 28, 172, 241, 27,
-217, 140, 19, 42, 138, 107, 71, 12, 75, 179, 112, 29, 129, 191, 9, 141,
-179, 255, 1, 162, 7, 118, 105, 47, 49, 105, 44, 20, 86, 185, 2, 125,
-146, 241, 159, 105, 176, 221, 115, 213, 14, 66, 202, 95, 250, 213, 43, 248,
-176, 4, 46, 39, 84, 19, 186, 80, 242, 53, 182, 156, 3, 43, 8, 79,
-88, 156, 127, 11, 247, 179, 199, 208, 251, 37, 217, 22, 207, 191, 128, 53,
-160, 16, 159, 197, 19, 214, 240, 29, 193, 212, 73, 191, 244, 27, 189, 229,
-99, 251, 254, 50, 42, 191, 199, 15, 149, 141, 81, 60, 25, 135, 120, 231,
-40, 84, 127, 59, 150, 127, 45, 154, 135, 124, 109, 252, 186, 204, 98, 148,
-162, 133, 10, 234, 232, 152, 88, 216, 54, 242, 206, 78, 160, 12, 78, 10,
-228, 2, 238, 50, 9, 230, 116, 204, 206, 160, 9, 199, 12, 12, 224, 13,
-153, 81, 51, 253, 140, 197, 148, 47, 192, 14, 187, 255, 216, 110, 141, 198,
-35, 212, 244, 67, 77, 48, 87, 46, 46, 113, 205, 220, 81, 105, 109, 9,
-248, 194, 100, 71, 187, 160, 9, 221, 178, 176, 119, 196, 36, 136, 12, 68,
-34, 113, 221, 250, 250, 4, 251, 20, 137, 70, 241, 172, 178, 185, 214, 23,
-55, 196, 31, 160, 76, 214, 230, 139, 192, 144, 120, 188, 225, 215, 132, 33,
-105, 178, 83, 69, 92, 192, 112, 123, 221, 34, 7, 73, 145, 233, 56, 12,
-67, 106, 152, 77, 143, 77, 217, 102, 6, 199, 53, 14, 162, 12, 134, 91,
-59, 169, 181, 18, 47, 11, 206, 69, 65, 66, 27, 160, 98, 149, 22, 24,
-53, 196, 119, 231, 84, 211, 246, 231, 218, 99, 120, 197, 151, 30, 153, 192,
-120, 253, 70, 234, 253, 239, 34, 74, 6, 233, 149, 155, 214, 12, 127, 57,
-92, 225, 201, 233, 116, 48, 226, 94, 159, 212, 78, 222, 99, 116, 29, 187,
-3, 59, 167, 68, 108, 162, 146, 125, 6, 178, 230, 60, 158, 60, 85, 94,
-113, 93, 2, 75, 195, 234, 66, 200, 148, 128, 50, 56, 58, 205, 79, 226,
-11, 189, 189, 88, 32, 67, 83, 84, 188, 31, 180, 79, 252, 9, 177, 199,
-53, 163, 66, 54, 110, 245, 174, 113, 225, 204, 180, 149, 6, 141, 18, 250,
-150, 168, 229, 99, 107, 110, 108, 63, 70, 43, 146, 216, 64, 42, 3, 227,
-146, 223, 233, 6, 140, 108, 238, 21, 245, 70, 14, 152, 92, 109, 138, 104,
-200, 195, 248, 125, 230, 8, 4, 138, 125, 228, 221, 225, 98, 146, 230, 91,
-225, 247, 207, 29, 112, 185, 202, 157, 218, 18, 193, 45, 54, 47, 215, 162,
-29, 92, 95, 13, 88, 40, 129, 1, 150, 106, 203, 117, 76, 176, 157, 169,
-61, 45, 201, 67, 35, 238, 149, 21, 174, 50, 162, 150, 120, 22, 144, 195,
-187, 214, 239, 178, 231, 165, 200, 167, 170, 107, 98, 242, 205, 72, 113, 166,
-163, 6, 197, 57, 210, 106, 231, 192, 17, 112, 77, 83, 171, 216, 127, 73,
-143, 182, 224, 111, 104, 137, 123, 119, 52, 153, 42, 205, 161, 145, 174, 167,
-38, 117, 130, 82, 31, 228, 102, 234, 30, 199, 194, 207, 73, 109, 64, 231,
-55, 221, 65, 225, 203, 28, 113, 2, 120, 201, 22, 125, 211, 76, 82, 58,
-75, 181, 33, 121, 189, 138, 70, 122, 155, 252, 133, 51, 35, 241, 193, 121,
-148, 48, 44, 155, 123, 240, 9, 169, 145, 15, 79, 213, 180, 160, 30, 198,
-225, 209, 186, 124, 186, 53, 240, 246, 13, 188, 52, 211, 221, 181, 212, 140,
-143, 187, 178, 11, 181, 202, 78, 50, 55, 119, 228, 113, 120, 231, 184, 165,
-122, 121, 94, 181, 222, 248, 225, 204, 245, 174, 205, 63, 219, 192, 246, 82,
-101, 109, 115, 160, 153, 82, 131, 38, 219, 229, 58, 114, 205, 138, 141, 137,
-237, 89, 94, 245, 84, 177, 166, 0, 38, 16, 173, 56, 248, 67, 55, 114,
-252, 89, 251, 146, 93, 24, 104, 113, 181, 37, 164, 37, 158, 96, 137, 191,
-214, 21, 51, 215, 58, 123, 111, 161, 116, 157, 112, 211, 188, 210, 52, 105,
-219, 91, 213, 191, 133, 171, 47, 102, 174, 51, 170, 180, 10, 30, 181, 17,
-43, 76, 13, 242, 136, 41, 45, 155, 24, 45, 79, 146, 218, 6, 107, 47,
-142, 32, 141, 94, 165, 12, 149, 84, 170, 122, 202, 67, 130, 126, 39, 129,
-244, 187, 19, 227, 22, 108, 234, 94, 98, 61, 155, 251, 228, 212, 43, 37,
-254, 81, 222, 41, 67, 5, 225, 124, 53, 203, 111, 24, 212, 64, 17, 85,
-194, 255, 56, 190, 115, 192, 203, 55, 170, 152, 187, 166, 116, 85, 66, 167,
-213, 247, 129, 15, 118, 86, 104, 224, 195, 108, 109, 6, 200, 191, 34, 138,
-117, 74, 182, 209, 18, 204, 182, 139, 184, 27, 107, 175, 14, 145, 155, 197,
-251, 53, 141, 209, 98, 130, 230, 2, 91, 91, 90, 254, 131, 252, 91, 85,
-39, 212, 73, 90, 57, 184, 144, 26, 163, 6, 32, 243, 234, 162, 234, 236,
-167, 234, 73, 113, 50, 77, 165, 129, 122, 211, 6, 34, 194, 184, 29, 135,
-226, 91, 114, 14, 96, 246, 243, 22, 200, 242, 220, 174, 227, 244, 168, 199,
-197, 55, 114, 62, 215, 172, 58, 60, 82, 41, 205, 8, 107, 253, 62, 108,
-122, 249, 78, 137, 39, 167, 14, 35, 153, 136, 62, 193, 211, 120, 49, 237,
-232, 22, 215, 190, 132, 161, 250, 249, 174, 253, 90, 93, 210, 35, 222, 35,
-62, 60, 204, 107, 63, 198, 121, 147, 68, 213, 75, 49, 50, 3, 5, 74,
-30, 92, 119, 11, 223, 133, 222, 29, 233, 248, 93, 87, 194, 139, 84, 52,
-214, 44, 146, 19, 241, 82, 204, 163, 154, 253, 130, 159, 88, 148, 116, 207,
-29, 114, 117, 150, 154, 24, 81, 78, 95, 1, 208, 84, 197, 172, 141, 3,
-107, 18, 192, 120, 196, 91, 30, 82, 90, 232, 163, 10, 142, 96, 198, 62,
-126, 212, 153, 100, 207, 146, 122, 233, 92, 188, 147, 27, 9, 102, 204, 119,
-209, 242, 71, 222, 108, 114, 249, 173, 59, 14, 67, 26, 104, 240, 136, 199,
-70, 131, 39, 134, 18, 1, 152, 79, 224, 130, 104, 195, 179, 215, 90, 186,
-244, 238, 12, 90, 181, 145, 75, 238, 84, 158, 111, 63, 187, 121, 152, 132,
-167, 150, 138, 62, 203, 40, 70, 138, 154, 210, 37, 50, 226, 69, 253, 143,
-26, 0, 243, 131, 5, 139, 79, 48, 48, 115, 122, 61, 71, 41, 1, 232,
-239, 4, 96, 74, 209, 253, 128, 224, 222, 158, 97, 150, 16, 30, 132, 240,
-199, 197, 118, 13, 71, 56, 160, 190, 35, 215, 110, 165, 254, 26, 69, 43,
-195, 163, 30, 245, 138, 48, 80, 140, 245, 89, 83, 165, 65, 39, 20, 83,
-115, 119, 111, 90, 202, 101, 172, 91, 178, 35, 17, 120, 45, 118, 91, 60,
-189, 180, 133, 34, 19, 137, 152, 143, 16, 186, 214, 4, 46, 242, 23, 179,
-229, 204, 55, 218, 22, 188, 5, 222, 140, 69, 195, 43, 31, 34, 159, 131,
-53, 28, 83, 208, 158, 112, 163, 16, 61, 175, 3, 69, 113, 134, 174, 21,
-125, 162, 91, 182, 251, 120, 17, 94, 100, 252, 199, 118, 35, 248, 64, 206,
-179, 38, 121, 176, 84, 197, 9, 2, 45, 111, 244, 161, 250, 199, 130, 208,
-167, 250, 0, 155, 57, 0, 95, 39, 206, 237, 5, 23, 58, 142, 137, 77,
-164, 152, 219, 94, 57, 237, 16, 219, 119, 57, 58, 101, 189, 104, 205, 228,
-28, 237, 119, 143, 99, 241, 5, 160, 115, 91, 215, 246, 198, 153, 60, 186,
-64, 248, 126, 67, 56, 155, 179, 55, 102, 3, 47, 68, 145, 41, 209, 45,
-148, 106, 11, 71, 191, 171, 245, 33, 6, 133, 216, 1, 109, 128, 56, 120,
-247, 17, 169, 150, 173, 61, 111, 0, 65, 2, 95, 229, 63, 59, 185, 148,
-213, 149, 140, 190, 57, 151, 163, 73, 9, 231, 250, 76, 126, 211, 12, 175,
-14, 38, 146, 30, 102, 22, 124, 58, 137, 239, 181, 99, 176, 2, 184, 48,
-196, 132, 248, 140, 90, 194, 95, 6, 90, 242, 171, 254, 189, 235, 8, 68,
-244, 115, 89, 217, 10, 61, 172, 252, 75, 186, 117, 212, 216, 62, 253, 98,
-156, 233, 96, 139, 55, 91, 251, 168, 221, 67, 231, 18, 140, 250, 38, 232,
-143, 65, 220, 234, 129, 106, 184, 63, 171, 119, 96, 32, 9, 45, 151, 74,
-71, 81, 162, 109, 58, 194, 125, 191, 169, 244, 9, 190, 37, 38, 98, 36,
-238, 176, 38, 150, 30, 227, 0, 191, 60, 189, 0, 4, 178, 196, 238, 182,
-233, 8, 126, 14, 236, 73, 100, 16, 150, 49, 26, 104, 152, 197, 132, 53,
-229, 100, 196, 206, 7, 74, 91, 143, 23, 206, 120, 252, 52, 73, 161, 148,
-41, 160, 137, 29, 207, 222, 13, 128, 144, 191, 162, 60, 24, 226, 187, 250,
-73, 76, 246, 240, 31, 254, 109, 144, 102, 248, 207, 215, 44, 182, 29, 202,
-54, 141, 107, 124, 239, 205, 243, 54, 158, 0, 148, 202, 98, 65, 233, 201,
-60, 169, 34, 64, 81, 62, 205, 225, 228, 233, 250, 23, 146, 53, 104, 120,
-68, 71, 179, 26, 156, 230, 25, 225, 235, 138, 20, 196, 223, 72, 176, 237,
-67, 107, 202, 211, 32, 31, 184, 26, 178, 64, 134, 225, 115, 8, 227, 9,
-200, 33, 31, 31, 58, 82, 251, 249, 54, 46, 60, 12, 233, 66, 222, 144,
-243, 111, 110, 25, 117, 77, 108, 223, 211, 209, 23, 78, 162, 154, 77, 84,
-251, 166, 89, 207, 45, 78, 51, 85, 18, 51, 14, 56, 9, 131, 186, 111,
-229, 230, 11, 197, 196, 201, 184, 134, 147, 52, 14, 185, 145, 14, 9, 164,
-157, 82, 3, 252, 42, 244, 140, 207, 189, 77, 13, 232, 248, 139, 10, 137,
-30, 189, 91, 92, 202, 63, 249, 97, 212, 139, 39, 155, 251, 253, 10, 249,
-13, 115, 238, 203, 112, 147, 186, 185, 46, 239, 51, 143, 148, 251, 163, 208,
-254, 121, 240, 243, 22, 162, 47, 196, 44, 249, 0, 59, 127, 144, 82, 11,
-69, 124, 76, 131, 231, 236, 169, 97, 172, 168, 157, 24, 17, 61, 108, 229,
-182, 153, 0, 196, 23, 118, 40, 70, 167, 178, 79, 47, 113, 75, 93, 46,
-135, 148, 121, 57, 20, 150, 28, 66, 210, 141, 142, 91, 131, 112, 239, 188,
-35, 5, 181, 128, 2, 59, 120, 6, 228, 206, 130, 132, 104, 30, 219, 147,
-82, 12, 48, 9, 98, 51, 34, 196, 135, 236, 115, 178, 10, 25, 8, 205,
-28, 231, 140, 199, 224, 224, 162, 123, 88, 194, 202, 218, 116, 49, 233, 137,
-112, 72, 235, 157, 125, 137, 74, 132, 49, 69, 232, 249, 247, 241, 47, 8,
-112, 5, 72, 138, 149, 121, 2, 148, 204, 93, 231, 44, 129, 140, 149, 206,
-104, 37, 208, 181, 86, 67, 122, 167, 114, 166, 200, 134, 180, 179, 139, 120,
-16, 106, 171, 93, 58, 179, 175, 179, 244, 148, 36, 83, 171, 157, 182, 146,
-111, 22, 0, 144, 110, 105, 47, 90, 236, 177, 47, 44, 35, 250, 237, 111,
-141, 89, 6, 186, 22, 196, 32, 166, 23, 143, 17, 96, 127, 58, 139, 137,
-29, 250, 164, 52, 141, 1, 13, 117, 82, 93, 241, 254, 120, 139, 165, 1,
-114, 105, 7, 135, 180, 57, 252, 202, 233, 69, 253, 38, 11, 88, 223, 17,
-203, 64, 162, 170, 127, 59, 163, 90, 8, 58, 149, 20, 214, 159, 26, 160,
-120, 244, 123, 91, 203, 31, 86, 237, 20, 242, 66, 14, 182, 206, 127, 54,
-119, 36, 182, 41, 129, 128, 193, 81, 19, 182, 120, 85, 23, 210, 220, 177,
-202, 204, 102, 143, 81, 243, 233, 15, 67, 183, 157, 96, 122, 120, 130, 79,
-154, 118, 36, 78, 152, 24, 123, 90, 86, 169, 200, 20, 29, 57, 210, 133,
-16, 52, 24, 202, 20, 173, 101, 230, 61, 47, 105, 94, 244, 47, 217, 207,
-87, 87, 93, 204, 138, 110, 8, 150, 200, 248, 129, 139, 134, 225, 34, 34,
-150, 247, 70, 194, 144, 167, 21, 98, 161, 7, 38, 78, 3, 36, 42, 134,
-161, 157, 203, 87, 34, 171, 28, 199, 64, 186, 130, 223, 103, 121, 88, 130,
-50, 174, 10, 50, 79, 13, 92, 162, 99, 1, 85, 168, 122, 61, 132, 80,
-85, 112, 238, 6, 179, 207, 162, 53, 16, 198, 250, 218, 206, 202, 242, 248,
-31, 74, 86, 197, 133, 193, 36, 99, 133, 160, 223, 55, 36, 153, 101, 165,
-188, 184, 179, 189, 36, 198, 254, 51, 199, 13, 116, 24, 10, 135, 101, 208,
-166, 54, 107, 1, 166, 97, 38, 201, 45, 86, 218, 44, 163, 60, 173, 129,
-69, 17, 204, 55, 85, 141, 80, 100, 88, 127, 108, 205, 65, 73, 159, 204,
-216, 250, 240, 17, 121, 196, 196, 121, 46, 64, 25, 215, 88, 102, 221, 244,
-35, 248, 96, 114, 66, 125, 134, 7, 83, 97, 0, 80, 166, 224, 216, 22,
-213, 18, 42, 242, 126, 182, 81, 224, 10, 37, 193, 43, 174, 74, 159, 147,
-58, 65, 217, 147, 110, 214, 95, 122, 174, 125, 121, 74, 66, 144, 74, 99,
-52, 132, 104, 105, 139, 225, 128, 62, 1, 188, 7, 43, 185, 222, 134, 6,
-216, 52, 211, 213, 83, 109, 176, 166, 152, 161, 48, 211, 124, 198, 241, 52,
-237, 139, 155, 20, 233, 140, 55, 147, 68, 77, 166, 106, 81, 213, 250, 74,
-125, 165, 213, 65, 147, 92, 31, 208, 242, 169, 90, 30, 239, 165, 143, 196,
-85, 247, 121, 147, 38, 181, 170, 75, 30, 224, 105, 121, 27, 197, 246, 172,
-39, 109, 6, 209, 42, 208, 13, 148, 153, 97, 247, 38, 168, 185, 76, 42,
-102, 145, 166, 27, 242, 37, 136, 45, 245, 32, 200, 177, 225, 248, 154, 117,
-172, 184, 37, 156, 208, 100, 151, 64, 16, 193, 254, 213, 205, 140, 207, 153,
-64, 155, 57, 47, 237, 59, 231, 10, 130, 204, 72, 30, 17, 60, 76, 115,
-161, 237, 104, 5, 38, 254, 90, 152, 208, 49, 194, 160, 243, 106, 78, 41,
-251, 143, 104, 130, 180, 241, 98, 211, 238, 194, 224, 36, 242, 39, 109, 180,
-67, 130, 210, 44, 8, 162, 150, 16, 76, 83, 40, 86, 97, 87, 187, 42,
-50, 63, 35, 98, 192, 23, 138, 236, 90, 3, 157, 19, 5, 252, 228, 211,
-239, 1, 85, 190, 54, 144, 218, 221, 184, 19, 89, 75, 138, 53, 115, 206,
-31, 100, 99, 187, 80, 162, 222, 134, 167, 238, 117, 84, 36, 62, 178, 224,
-147, 119, 160, 65, 244, 245, 157, 188, 184, 222, 42, 53, 188, 84, 51, 5,
-22, 214, 229, 92, 249, 17, 78, 6, 79, 145, 92, 201, 53, 58, 45, 87,
-90, 19, 194, 253, 18, 68, 87, 58, 48, 206, 85, 241, 173, 40, 0, 38,
-75, 210, 227, 254, 150, 117, 168, 88, 41, 180, 31, 77, 239, 136, 37, 106,
-222, 33, 63, 239, 217, 245, 29, 11, 255, 94, 181, 132, 91, 80, 152, 15,
-224, 253, 187, 104, 191, 95, 180, 55, 108, 24, 65, 32, 27, 147, 201, 102,
-102, 64, 245, 14, 196, 154, 169, 133, 191, 117, 49, 108, 75, 133, 72, 95,
-48, 126, 1, 166, 187, 129, 223, 94, 96, 39, 225, 222, 196, 210, 129, 35,
-24, 186, 145, 6, 173, 82, 67, 130, 97, 167, 138, 167, 57, 181, 228, 249,
-247, 44, 29, 9, 140, 245, 49, 164, 210, 119, 91, 176, 15, 31, 206, 88,
-229, 155, 23, 72, 114, 224, 237, 190, 194, 147, 133, 233, 170, 22, 64, 241,
-162, 204, 52, 208, 138, 159, 29, 94, 25, 117, 103, 132, 232, 65, 198, 90,
-183, 113, 6, 76, 52, 141, 199, 166, 170, 128, 199, 251, 60, 137, 86, 78,
-52, 16, 72, 64, 112, 174, 67, 54, 73, 63, 55, 183, 30, 11, 48, 131,
-7, 94, 151, 17, 166, 115, 62, 5, 221, 71, 30, 137, 35, 181, 250, 187,
-68, 26, 187, 51, 202, 249, 76, 162, 63, 10, 144, 123, 119, 217, 155, 15,
-214, 212, 52, 39, 208, 109, 210, 206, 230, 242, 186, 254, 170, 138, 52, 40,
-130, 7, 102, 67, 28, 38, 106, 152, 122, 172, 184, 166, 81, 30, 236, 149,
-213, 236, 174, 130, 140, 44, 143, 199, 9, 118, 58, 11, 30, 126, 139, 39,
-128, 92, 83, 242, 207, 200, 157, 245, 147, 84, 207, 140, 120, 59, 56, 228,
-145, 177, 130, 48, 139, 78, 101, 124, 42, 228, 129, 172, 14, 248, 144, 142,
-189, 38, 158, 58, 85, 84, 75, 136, 180, 175, 13, 184, 0, 26, 128, 234,
-151, 167, 40, 6, 163, 8, 23, 57, 69, 42, 89, 174, 50, 0, 216, 186,
-166, 7, 143, 123, 95, 23, 26, 134, 127, 125, 199, 117, 26, 215, 129, 212,
-119, 83, 2, 66, 96, 247, 126, 241, 49, 171, 186, 222, 146, 234, 115, 199,
-123, 112, 79, 147, 53, 210, 95, 192, 166, 49, 137, 245, 80, 120, 14, 184,
-242, 237, 131, 27, 141, 100, 178, 185, 54, 245, 152, 55, 243, 88, 45, 122,
-48, 229, 214, 55, 118, 105, 222, 26, 189, 68, 42, 21, 34, 57, 165, 246,
-109, 35, 84, 45, 76, 196, 116, 127, 88, 180, 10, 179, 103, 226, 208, 33,
-91, 111, 12, 231, 221, 166, 64, 199, 93, 87, 58, 164, 108, 23, 126, 169,
-216, 119, 68, 104, 24, 51, 156, 71, 175, 181, 93, 184, 124, 171, 34, 72,
-115, 95, 148, 72, 166, 241, 178, 223, 36, 10, 12, 219, 50, 172, 139, 152,
-26, 232, 185, 249, 95, 249, 8, 244, 20, 78, 136, 141, 145, 169, 168, 2,
-208, 9, 30, 37, 50, 149, 47, 50, 17, 64, 214, 168, 32, 23, 228, 232,
-31, 78, 219, 77, 8, 80, 253, 41, 79, 8, 123, 65, 234, 36, 78, 151,
-23, 68, 18, 70, 10, 9, 9, 33, 142, 129, 115, 143, 191, 127, 209, 141,
-202, 189, 55, 120, 16, 148, 184, 122, 178, 77, 10, 149, 18, 30, 6, 101,
-53, 90, 155, 239, 253, 82, 57, 11, 125, 84, 7, 175, 116, 62, 210, 232,
-112, 130, 253, 105, 153, 203, 31, 120, 251, 241, 45, 41, 127, 96, 146, 11,
-187, 180, 115, 21, 63, 182, 213, 196, 175, 255, 162, 31, 233, 65, 197, 110,
-42, 136, 54, 118, 234, 176, 3, 252, 83, 4, 107, 133, 19, 226, 34, 163,
-232, 31, 39, 171, 178, 242, 36, 69, 64, 33, 167, 139, 81, 184, 160, 207,
-119, 37, 137, 40, 165, 50, 167, 243, 188, 82, 142, 91, 2, 0, 209, 16,
-166, 152, 134, 113, 185, 236, 253, 161, 120, 90, 94, 189, 81, 201, 224, 60,
-66, 82, 23, 12, 199, 197, 86, 198, 16, 54, 174, 237, 121, 186, 244, 141,
-50, 26, 152, 120, 78, 52, 71, 115, 40, 94, 156, 22, 162, 241, 219, 90,
-212, 236, 21, 153, 170, 142, 20, 200, 251, 49, 98, 192, 173, 14, 167, 199,
-167, 176, 235, 111, 61, 243, 30, 215, 35, 113, 127, 122, 250, 79, 162, 40,
-130, 81, 31, 51, 177, 240, 9, 31, 192, 210, 151, 171, 78, 201, 50, 102,
-227, 75, 196, 239, 232, 175, 240, 119, 205, 191, 180, 209, 68, 123, 86, 244,
-114, 244, 209, 7, 35, 17, 16, 89, 133, 89, 42, 9, 18, 124, 21, 252,
-101, 244, 88, 79, 214, 234, 145, 140, 52, 118, 47, 44, 121, 43, 14, 6,
-157, 26, 16, 172, 252, 85, 94, 84, 59, 134, 19, 119, 10, 70, 91, 157,
-246, 8, 74, 32, 15, 23, 230, 2, 205, 188, 103, 237, 92, 19, 88, 21,
-147, 135, 117, 124, 107, 140, 39, 152, 51, 56, 246, 122, 153, 174, 106, 145,
-140, 146, 78, 180, 243, 212, 62, 46, 3, 131, 137, 78, 56, 79, 160, 252,
-117, 84, 126, 199, 194, 240, 227, 23, 188, 40, 206, 72, 68, 40, 58, 91,
-183, 80, 40, 31, 65, 9, 70, 23, 34, 64, 199, 213, 138, 80, 140, 58,
-202, 215, 115, 223, 92, 181, 218, 116, 252, 210, 190, 210, 54, 166, 241, 66,
-132, 62, 98, 109, 158, 51, 52, 89, 69, 24, 171, 176, 235, 116, 175, 18,
-111, 80, 167, 209, 170, 150, 194, 152, 23, 96, 162, 41, 244, 232, 80, 85,
-76, 226, 126, 240, 196, 214, 81, 40, 183, 225, 102, 10, 166, 57, 231, 230,
-232, 149, 164, 116, 112, 122, 0, 182, 53, 199, 252, 55, 50, 111, 243, 200,
-64, 191, 29, 240, 86, 187, 126, 133, 121, 249, 249, 37, 58, 174, 209, 39,
-152, 103, 151, 131, 127, 207, 154, 14, 188, 239, 28, 107, 33, 10, 57, 82,
-158, 116, 63, 225, 29, 103, 80, 134, 84, 245, 37, 13, 1, 70, 95, 180,
-82, 191, 0, 67, 243, 67, 218, 148, 30, 248, 160, 133, 92, 83, 190, 197,
-251, 150, 117, 28, 178, 121, 17, 16, 209, 4, 188, 155, 55, 82, 134, 128,
-3, 104, 142, 132, 144, 32, 101, 0, 223, 166, 79, 49, 108, 64, 231, 162,
-6, 27, 94, 116, 68, 235, 168, 36, 115, 39, 191, 151, 28, 202, 228, 35,
-90, 53, 172, 170, 173, 151, 236, 174, 197, 19, 85, 216, 192, 158, 128, 35,
-6, 88, 21, 25, 158, 92, 18, 213, 22, 136, 119, 149, 124, 213, 103, 197,
-6, 206, 174, 36, 196, 199, 208, 68, 57, 84, 28, 218, 251, 214, 75, 157,
-254, 46, 61, 228, 188, 87, 93, 125, 155, 38, 175, 4, 36, 160, 31, 177,
-70, 222, 245, 85, 246, 69, 109, 45, 77, 151, 175, 202, 23, 17, 139, 66,
-77, 166, 155, 251, 82, 156, 11, 77, 102, 222, 20, 170, 255, 232, 162, 41,
-73, 26, 89, 118, 58, 126, 212, 207, 108, 55, 5, 136, 150, 240, 223, 185,
-103, 231, 115, 182, 189, 39, 164, 162, 182, 112, 113, 11, 93, 250, 108, 247,
-231, 143, 172, 67, 223, 221, 224, 24, 116, 128, 119, 232, 143, 90, 27, 149,
-49, 226, 195, 238, 66, 233, 15, 97, 137, 170, 155, 236, 124, 185, 95, 192,
-121, 36, 82, 76, 249, 31, 46, 102, 185, 14, 243, 30, 244, 217, 184, 156,
-156, 207, 35, 38, 89, 107, 212, 139, 75, 161, 16, 78, 232, 76, 209, 7,
-92, 94, 80, 159, 58, 162, 138, 216, 206, 231, 93, 85, 198, 140, 90, 200,
-170, 79, 118, 26, 52, 168, 111, 165, 224, 91, 45, 85, 42, 162, 142, 55,
-0, 19, 167, 142, 86, 74, 235, 43, 230, 3, 162, 93, 33, 239, 43, 181,
-253, 155, 106, 28, 48, 150, 43, 234, 102, 187, 247, 187, 40, 43, 158, 33,
-48, 242, 214, 95, 182, 126, 3, 25, 218, 47, 163, 140, 217, 6, 221, 199,
-57, 76, 182, 244, 110, 49, 168, 240, 129, 31, 226, 185, 35, 18, 185, 189,
-2, 17, 190, 134, 137, 29, 76, 118, 48, 216, 33, 188, 103, 160, 66, 143,
-23, 230, 255, 24, 238, 6, 111, 18, 214, 163, 244, 30, 36, 4, 216, 31,
-162, 60, 127, 235, 203, 67, 34, 69, 20, 227, 220, 56, 107, 78, 81, 10,
-160, 169, 19, 255, 211, 126, 46, 77, 46, 152, 46, 114, 135, 139, 23, 3,
-172, 52, 80, 86, 11, 5, 190, 51, 86, 190, 67, 0, 75, 17, 160, 229,
-12, 254, 152, 221, 3, 213, 220, 213, 244, 51, 157, 73, 251, 206, 213, 43,
-113, 247, 245, 189, 52, 226, 250, 109, 212, 4, 168, 132, 24, 137, 160, 175,
-219, 204, 156, 32, 253, 121, 8, 209, 200, 96, 88, 93, 66, 243, 84, 76,
-148, 142, 229, 86, 31, 106, 10, 23, 136, 200, 132, 152, 150, 51, 125, 202,
-13, 202, 63, 110, 38, 125, 12, 113, 17, 162, 92, 217, 24, 108, 235, 209,
-81, 65, 202, 179, 60, 176, 11, 91, 62, 45, 126, 96, 9, 66, 153, 134,
-11, 40, 231, 205, 66, 5, 249, 92, 99, 119, 206, 105, 108, 207, 79, 44,
-61, 10, 179, 18, 7, 33, 15, 68, 204, 40, 214, 171, 223, 177, 98, 94,
-176, 243, 165, 152, 231, 154, 1, 67, 226, 236, 109, 137, 202, 72, 234, 243,
-23, 156, 41, 105, 118, 40, 72, 112, 147, 53, 76, 126, 158, 255, 145, 213,
-214, 43, 241, 194, 125, 227, 104, 241, 196, 244, 237, 140, 214, 62, 210, 249,
-207, 143, 58, 106, 182, 10, 75, 247, 114, 19, 127, 210, 217, 102, 190, 200,
-149, 36, 59, 137, 204, 222, 223, 123, 63, 215, 84, 249, 49, 149, 83, 137,
-205, 224, 192, 44, 166, 101, 109, 181, 98, 219, 17, 169, 186, 35, 11, 108,
-131, 75, 185, 220, 58, 214, 129, 67, 15, 106, 220, 67, 76, 7, 247, 154,
-201, 146, 25, 224, 51, 169, 180, 61, 73, 169, 216, 163, 64, 179, 144, 61,
-184, 163, 163, 8, 113, 40, 42, 53, 46, 80, 50, 199, 156, 6, 138, 44,
-86, 130, 12, 195, 251, 191, 99, 122, 127, 116, 155, 248, 205, 86, 172, 49,
-197, 132, 101, 124, 32, 23, 225, 78, 252, 23, 182, 27, 10, 93, 135, 220,
-98, 246, 62, 157, 134, 102, 1, 113, 244, 65, 39, 3, 106, 168, 22, 142,
-16, 64, 140, 15, 80, 99, 35, 22, 179, 165, 166, 85, 100, 233, 90, 229,
-18, 78, 92, 204, 255, 218, 224, 121, 218, 149, 146, 101, 90, 237, 209, 141,
-172, 71, 193, 90, 175, 189, 165, 169, 88, 27, 15, 197, 225, 132, 32, 122,
-215, 89, 92, 130, 175, 160, 186, 201, 20, 61, 64, 162, 133, 3, 43, 242,
-1, 253, 252, 181, 136, 253, 218, 163, 130, 111, 36, 14, 133, 7, 219, 204,
-145, 34, 32, 170, 193, 236, 151, 74, 74, 147, 76, 138, 107, 121, 122, 117,
-158, 28, 246, 50, 255, 135, 138, 164, 17, 38, 164, 210, 75, 174, 116, 208,
-146, 145, 163, 54, 161, 142, 104, 242, 253, 76, 97, 186, 92, 131, 69, 189,
-217, 241, 225, 157, 78, 37, 78, 96, 220, 194, 3, 246, 214, 121, 178, 93,
-26, 46, 165, 137, 4, 223, 97, 14, 94, 50, 52, 234, 50, 86, 69, 141,
-165, 121, 202, 152, 37, 85, 22, 135, 212, 233, 30, 106, 208, 152, 10, 196,
-23, 144, 2, 199, 18, 43, 47, 236, 83, 30, 54, 249, 7, 145, 116, 239,
-36, 191, 115, 171, 101, 77, 39, 102, 167, 249, 152, 234, 193, 141, 24, 143,
-254, 132, 241, 49, 221, 223, 189, 103, 12, 245, 20, 240, 213, 121, 152, 82,
-69, 179, 192, 186, 6, 66, 56, 22, 22, 144, 240, 125, 87, 13, 248, 93,
-108, 229, 245, 148, 14, 62, 131, 45, 100, 201, 63, 68, 118, 249, 66, 98,
-132, 141, 74, 140, 20, 220, 81, 134, 141, 172, 190, 199, 149, 205, 93, 57,
-45, 113, 240, 15, 161, 4, 122, 228, 28, 150, 220, 183, 88, 226, 51, 117,
-6, 107, 122, 39, 165, 25, 15, 197, 199, 149, 157, 131, 214, 44, 253, 240,
-247, 241, 139, 229, 232, 212, 218, 113, 23, 188, 132, 147, 250, 252, 14, 145,
-7, 246, 101, 27, 190, 155, 27, 224, 20, 37, 63, 2, 54, 38, 5, 34,
-186, 2, 107, 221, 161, 66, 248, 217, 63, 79, 202, 83, 53, 253, 127, 87,
-252, 108, 133, 175, 14, 82, 140, 132, 150, 94, 234, 120, 120, 214, 32, 234,
-53, 81, 60, 107, 255, 166, 188, 89, 153, 9, 173, 234, 85, 244, 11, 76,
-217, 190, 22, 16, 147, 80, 23, 113, 126, 241, 84, 57, 134, 84, 152, 42,
-97, 158, 176, 247, 138, 249, 54, 110, 103, 112, 170, 52, 238, 109, 27, 131,
-137, 84, 37, 53, 162, 45, 12, 135, 228, 179, 197, 44, 163, 143, 33, 0,
-125, 198, 45, 122, 93, 252, 148, 208, 163, 242, 99, 126, 195, 122, 247, 103,
-141, 22, 208, 148, 113, 236, 210, 223, 57, 241, 128, 9, 40, 105, 207, 109,
-69, 229, 204, 238, 98, 124, 100, 227, 17, 185, 226, 18, 119, 192, 50, 24,
-98, 196, 187, 230, 224, 60, 191, 157, 41, 179, 95, 76, 153, 6, 217, 232,
-93, 2, 110, 41, 148, 140, 203, 9, 156, 225, 174, 26, 16, 1, 182, 20,
-242, 221, 114, 72, 21, 141, 226, 213, 200, 17, 198, 16, 100, 176, 216, 73,
-240, 76, 6, 237, 78, 200, 119, 77, 39, 240, 158, 31, 148, 131, 187, 63,
-232, 210, 64, 179, 250, 232, 53, 78, 40, 18, 89, 33, 39, 140, 209, 56,
-112, 249, 146, 222, 7, 127, 161, 65, 146, 33, 146, 127, 56, 114, 32, 84,
-80, 24, 112, 229, 230, 213, 94, 91, 148, 244, 109, 13, 157, 111, 51, 201,
-173, 173, 66, 136, 150, 6, 111, 111, 154, 11, 17, 116, 13, 27, 209, 242,
-59, 99, 21, 169, 222, 68, 72, 222, 164, 61, 217, 201, 53, 205, 33, 15,
-141, 10, 80, 10, 215, 82, 125, 43, 165, 54, 184, 26, 151, 71, 203, 206,
-50, 58, 57, 161, 52, 168, 22, 242, 179, 125, 111, 43, 91, 87, 3, 7,
-126, 177, 54, 163, 148, 93, 255, 55, 124, 43, 141, 72, 166, 34, 147, 163,
-135, 0, 50, 126, 152, 165, 1, 244, 118, 95, 96, 80, 4, 187, 206, 110,
-239, 214, 183, 209, 125, 252, 40, 182, 126, 134, 2, 45, 182, 138, 179, 2,
-102, 138, 101, 19, 92, 134, 39, 69, 120, 57, 190, 57, 130, 245, 73, 221,
-23, 174, 183, 93, 28, 157, 42, 231, 217, 206, 139, 115, 38, 188, 129, 124,
-12, 110, 89, 108, 132, 51, 142, 244, 135, 245, 251, 68, 128, 56, 218, 26,
-248, 129, 34, 157, 167, 84, 138, 245, 95, 64, 172, 74, 9, 252, 17, 188,
-73, 110, 229, 78, 230, 153, 231, 44, 191, 46, 126, 39, 241, 123, 223, 46,
-47, 39, 69, 139, 118, 7, 184, 183, 166, 171, 61, 112, 200, 111, 196, 61,
-123, 217, 188, 193, 102, 212, 105, 92, 0, 159, 27, 176, 74, 50, 250, 107,
-68, 26, 196, 203, 239, 0, 42, 184, 35, 143, 14, 106, 172, 76, 147, 112,
-100, 25, 215, 41, 170, 126, 95, 108, 218, 82, 36, 9, 116, 177, 182, 123,
-254, 190, 56, 53, 125, 239, 66, 243, 145, 10, 61, 102, 57, 109, 197, 80,
-159, 97, 253, 120, 48, 249, 97, 177, 2, 185, 153, 14, 201, 121, 165, 107,
-133, 118, 248, 220, 68, 206, 96, 137, 154, 121, 215, 217, 189, 74, 76, 204,
-222, 35, 222, 227, 83, 52, 77, 180, 122, 123, 184, 249, 212, 240, 22, 200,
-136, 194, 206, 111, 120, 162, 253, 186, 155, 213, 149, 39, 97, 252, 132, 95,
-70, 241, 47, 54, 19, 143, 188, 149, 148, 238, 161, 194, 121, 17, 93, 111,
-133, 242, 201, 212, 183, 138, 152, 178, 37, 230, 140, 107, 137, 122, 163, 75,
-5, 135, 225, 186, 32, 50, 131, 104, 197, 16, 87, 163, 180, 251, 170, 27,
-181, 241, 85, 179, 126, 116, 219, 206, 79, 242, 5, 101, 41, 165, 80, 223,
-66, 32, 68, 71, 88, 53, 117, 216, 209, 172, 112, 212, 129, 152, 49, 109,
-61, 236, 79, 222, 156, 11, 239, 31, 202, 61, 123, 205, 58, 128, 7, 95,
-27, 139, 135, 91, 119, 192, 187, 13, 99, 165, 103, 254, 140, 195, 234, 100,
-79, 231, 154, 176, 233, 82, 214, 191, 60, 193, 53, 143, 213, 250, 131, 91,
-40, 145, 225, 212, 106, 77, 201, 106, 185, 120, 141, 225, 195, 5, 110, 132,
-235, 189, 95, 42, 90, 55, 194, 116, 222, 147, 91, 172, 175, 220, 232, 23,
-95, 201, 4, 150, 102, 250, 23, 196, 86, 120, 28, 42, 188, 48, 46, 144,
-66, 85, 124, 42, 187, 137, 212, 196, 230, 245, 111, 147, 204, 161, 63, 35,
-100, 22, 144, 232, 208, 88, 101, 151, 10, 31, 210, 90, 1, 4, 202, 135,
-120, 102, 81, 121, 189, 201, 44, 222, 209, 48, 188, 152, 108, 250, 65, 173,
-13, 240, 1, 123, 109, 36, 163, 137, 172, 69, 250, 162, 10, 75, 89, 57,
-102, 147, 77, 18, 93, 4, 104, 216, 225, 207, 229, 24, 57, 187, 228, 99,
-218, 204, 58, 115, 44, 120, 209, 99, 200, 214, 156, 221, 139, 17, 131, 159,
-164, 233, 160, 6, 2, 27, 15, 60, 204, 219, 18, 190, 164, 210, 203, 188,
-34, 116, 36, 134, 101, 193, 75, 88, 189, 222, 245, 174, 203, 0, 199, 161,
-57, 22, 4, 219, 77, 24, 36, 141, 70, 215, 219, 31, 92, 105, 10, 70,
-102, 169, 244, 215, 230, 169, 88, 240, 157, 190, 5, 130, 186, 232, 76, 117,
-45, 230, 181, 115, 67, 35, 172, 15, 165, 30, 125, 180, 57, 245, 25, 97,
-244, 170, 182, 180, 107, 24, 231, 195, 140, 97, 50, 220, 220, 193, 196, 144,
-49, 32, 90, 62, 206, 109, 85, 35, 135, 220, 249, 255, 78, 103, 207, 98,
-156, 228, 213, 254, 22, 231, 247, 191, 152, 250, 37, 8, 172, 204, 136, 181,
-30, 75, 9, 174, 226, 175, 172, 238, 237, 107, 27, 230, 46, 197, 240, 140,
-162, 225, 65, 165, 249, 209, 49, 152, 19, 102, 96, 96, 206, 145, 40, 39,
-155, 68, 8, 228, 176, 0, 112, 6, 27, 164, 12, 220, 185, 140, 95, 71,
-202, 125, 234, 15, 246, 52, 206, 5, 103, 198, 6, 65, 12, 209, 87, 223,
-121, 239, 124, 120, 128, 156, 194, 250, 239, 133, 247, 227, 76, 107, 73, 38,
-228, 241, 33, 19, 61, 138, 70, 37, 45, 58, 239, 13, 176, 27, 17, 41,
-202, 233, 62, 223, 175, 157, 36, 234, 192, 23, 180, 64, 61, 231, 103, 173,
-83, 169, 241, 51, 201, 81, 67, 217, 79, 246, 203, 247, 233, 117, 253, 153,
-252, 50, 54, 251, 120, 254, 215, 105, 168, 47, 128, 61, 139, 243, 91, 142,
-166, 179, 26, 97, 65, 171, 167, 244, 114, 188, 192, 101, 23, 55, 115, 205,
-222, 209, 59, 111, 83, 147, 188, 26, 163, 123, 244, 252, 98, 148, 104, 110,
-81, 27, 167, 67, 200, 85, 251, 80, 163, 117, 36, 78, 137, 95, 34, 59,
-163, 172, 164, 89, 247, 72, 64, 181, 41, 86, 255, 184, 158, 238, 185, 226,
-70, 112, 123, 179, 3, 73, 1, 111, 110, 161, 49, 29, 112, 124, 244, 110,
-238, 247, 14, 14, 76, 199, 159, 197, 179, 250, 244, 247, 85, 172, 56, 98,
-70, 232, 99, 204, 226, 75, 121, 73, 239, 205, 191, 210, 74, 92, 4, 0,
-234, 193, 196, 194, 173, 68, 44, 15, 40, 155, 166, 205, 197, 52, 207, 169,
-123, 143, 5, 179, 234, 31, 202, 86, 56, 24, 233, 62, 121, 211, 133, 19,
-209, 88, 32, 158, 85, 70, 85, 248, 249, 48, 225, 47, 86, 13, 128, 6,
-140, 36, 31, 128, 58, 215, 176, 81, 129, 125, 172, 224, 209, 207, 246, 173,
-207, 193, 22, 97, 60, 173, 183, 77, 253, 155, 18, 178, 36, 113, 186, 216,
-70, 53, 47, 176, 176, 110, 88, 134, 81, 218, 164, 230, 45, 241, 27, 80,
-100, 97, 7, 241, 118, 72, 200, 165, 187, 155, 190, 94, 40, 30, 205, 153,
-71, 104, 141, 15, 220, 15, 153, 177, 200, 155, 239, 120, 101, 136, 17, 153,
-255, 88, 163, 185, 221, 199, 216, 98, 69, 95, 59, 175, 164, 233, 253, 133,
-225, 2, 156, 121, 93, 233, 11, 172, 164, 252, 66, 25, 59, 141, 195, 114,
-131, 224, 50, 139, 227, 135, 240, 4, 171, 14, 206, 140, 207, 55, 211, 159,
-135, 8, 193, 239, 233, 207, 53, 244, 238, 84, 19, 73, 1, 94, 104, 42,
-148, 26, 3, 101, 198, 153, 239, 239, 34, 230, 253, 108, 6, 54, 59, 54,
-252, 49, 86, 67, 90, 174, 196, 140, 239, 181, 64, 85, 11, 44, 9, 229,
-249, 136, 72, 125, 199, 191, 242, 156, 145, 81, 70, 193, 44, 181, 133, 36,
-211, 242, 30, 144, 244, 7, 89, 97, 98, 244, 61, 184, 3, 174, 101, 173,
-221, 239, 145, 166, 225, 182, 82, 202, 76, 76, 150, 198, 93, 120, 100, 254,
-47, 21, 168, 61, 38, 165, 48, 31, 76, 59, 37, 89, 106, 87, 203, 179,
-248, 156, 162, 64, 50, 76, 5, 123, 113, 9, 215, 226, 23, 205, 44, 245,
-117, 179, 251, 160, 106, 205, 130, 187, 253, 151, 224, 24, 32, 107, 210, 221,
-62, 9, 133, 192, 119, 143, 232, 69, 204, 98, 5, 86, 121, 17, 245, 180,
-249, 233, 48, 185, 56, 62, 20, 215, 140, 6, 220, 139, 44, 46, 180, 236,
-215, 250, 81, 195, 254, 101, 135, 40, 135, 235, 141, 22, 183, 1, 31, 3,
-89, 252, 87, 207, 58, 24, 161, 225, 28, 217, 174, 122, 71, 46, 100, 25,
-85, 189, 177, 45, 185, 53, 210, 109, 222, 240, 244, 82, 75, 188, 17, 191,
-45, 184, 220, 132, 105, 75, 151, 12, 5, 236, 148, 150, 10, 22, 199, 26,
-143, 142, 159, 137, 87, 142, 70, 241, 67, 5, 15, 235, 87, 20, 224, 207,
-210, 38, 60, 245, 34, 238, 108, 193, 204, 194, 179, 7, 131, 158, 63, 245,
-255, 95, 34, 247, 63, 100, 39, 85, 51, 182, 220, 69, 125, 88, 223, 39,
-160, 176, 115, 100, 232, 150, 20, 40, 205, 132, 231, 201, 97, 40, 66, 207,
-53, 195, 39, 59, 4, 191, 140, 210, 66, 46, 104, 196, 64, 35, 22, 151,
-210, 88, 220, 108, 96, 95, 175, 97, 70, 25, 90, 111, 112, 123, 106, 204,
-22, 59, 106, 248, 232, 178, 149, 32, 36, 16, 254, 191, 202, 95, 177, 177,
-116, 95, 213, 205, 170, 254, 96, 184, 233, 166, 10, 156, 95, 254, 105, 205,
-55, 158, 61, 129, 215, 98, 230, 107, 3, 63, 157, 155, 207, 247, 157, 79,
-254, 138, 189, 94, 248, 244, 152, 167, 111, 16, 202, 234, 81, 38, 253, 1,
-180, 210, 24, 89, 184, 252, 85, 6, 35, 223, 9, 34, 83, 254, 224, 69,
-138, 199, 37, 90, 24, 21, 136, 15, 51, 50, 30, 54, 216, 227, 156, 117,
-242, 100, 52, 163, 89, 33, 164, 98, 17, 89, 176, 21, 155, 15, 146, 216,
-86, 117, 168, 3, 121, 75, 252, 116, 80, 199, 162, 215, 74, 4, 31, 118,
-186, 206, 249, 116, 221, 99, 65, 54, 33, 13, 78, 210, 35, 210, 53, 122,
-190, 198, 221, 183, 134, 204, 79, 8, 25, 210, 188, 253, 85, 201, 46, 250,
-3, 232, 208, 37, 12, 223, 72, 151, 148, 238, 168, 204, 252, 31, 1, 28,
-118, 248, 170, 149, 73, 59, 32, 202, 101, 151, 15, 8, 189, 163, 217, 141,
-150, 116, 65, 129, 166, 147, 54, 1, 66, 214, 228, 77, 76, 12, 105, 1,
-82, 129, 123, 28, 50, 106, 239, 115, 189, 81, 165, 89, 64, 162, 72, 173,
-162, 12, 143, 161, 42, 195, 52, 49, 79, 130, 231, 207, 125, 113, 21, 43,
-184, 120, 97, 79, 162, 36, 125, 204, 253, 23, 235, 22, 87, 250, 129, 46,
-51, 140, 184, 122, 5, 176, 91, 77, 121, 99, 94, 246, 217, 247, 181, 100,
-190, 81, 43, 71, 97, 216, 82, 144, 50, 215, 72, 88, 136, 202, 167, 146,
-20, 108, 111, 48, 8, 128, 77, 59, 179, 227, 116, 102, 106, 170, 123, 183,
-150, 15, 20, 226, 177, 244, 199, 210, 225, 96, 11, 232, 230, 107, 230, 92,
-88, 7, 200, 250, 162, 143, 245, 215, 194, 174, 126, 31, 145, 211, 158, 210,
-125, 222, 86, 80, 105, 207, 96, 197, 240, 16, 121, 229, 16, 43, 32, 18,
-97, 116, 249, 105, 53, 10, 109, 163, 226, 90, 43, 205, 27, 190, 20, 75,
-5, 119, 97, 81, 100, 236, 30, 13, 42, 30, 148, 237, 225, 149, 35, 17,
-17, 5, 142, 35, 250, 215, 197, 155, 17, 111, 145, 129, 53, 57, 0, 200,
-249, 89, 176, 189, 1, 116, 36, 15, 140, 182, 95, 214, 143, 116, 235, 82,
-165, 53, 192, 181, 183, 131, 106, 5, 142, 35, 31, 235, 177, 90, 203, 121,
-167, 216, 165, 33, 47, 225, 21, 227, 222, 235, 82, 74, 195, 197, 215, 79,
-205, 108, 145, 185, 88, 224, 207, 185, 43, 148, 199, 55, 206, 55, 53, 36,
-83, 228, 15, 155, 240, 52, 139, 36, 169, 202, 140, 11, 148, 201, 100, 116,
-5, 4, 93, 209, 255, 14, 104, 27, 30, 138, 224, 182, 136, 68, 27, 18,
-127, 61, 231, 13, 79, 211, 129, 170, 83, 133, 121, 42, 201, 91, 161, 157,
-93, 92, 228, 230, 85, 42, 72, 252, 142, 85, 49, 49, 90, 248, 105, 64,
-101, 17, 183, 104, 71, 66, 88, 231, 243, 185, 127, 109, 96, 16, 144, 67,
-137, 142, 51, 15, 176, 229, 195, 244, 121, 225, 235, 1, 47, 26, 187, 199,
-29, 84, 42, 209, 192, 23, 24, 66, 139, 105, 59, 42, 98, 42, 59, 121,
-42, 19, 252, 216, 83, 170, 15, 153, 227, 209, 242, 192, 84, 127, 225, 7,
-106, 52, 122, 11, 197, 13, 114, 196, 194, 67, 217, 106, 201, 9, 33, 188,
-44, 80, 156, 138, 13, 234, 189, 29, 240, 190, 247, 231, 194, 113, 145, 182,
-63, 184, 81, 203, 88, 173, 43, 148, 126, 63, 55, 30, 179, 169, 8, 4,
-211, 7, 73, 48, 152, 169, 65, 139, 239, 39, 42, 66, 67, 209, 4, 20,
-102, 193, 58, 22, 155, 229, 248, 233, 99, 238, 62, 173, 71, 56, 43, 153,
-129, 253, 161, 69, 87, 94, 50, 53, 1, 18, 167, 179, 253, 232, 5, 244,
-180, 73, 202, 206, 199, 177, 156, 168, 144, 156, 112, 247, 187, 93, 121, 233,
-149, 16, 80, 145, 67, 175, 57, 252, 185, 218, 56, 13, 0, 164, 160, 84,
-19, 68, 168, 14, 89, 77, 225, 2, 14, 83, 124, 56, 55, 162, 229, 39,
-196, 249, 27, 240, 90, 133, 241, 237, 79, 169, 233, 173, 143, 255, 36, 249,
-166, 116, 116, 177, 216, 149, 224, 26, 64, 44, 177, 25, 5, 253, 13, 50,
-65, 237, 15, 138, 43, 95, 108, 20, 129, 184, 138, 121, 110, 240, 91, 12,
-102, 187, 183, 232, 196, 253, 140, 90, 174, 171, 9, 150, 159, 88, 97, 56,
-227, 158, 92, 227, 209, 227, 137, 248, 248, 182, 167, 229, 110, 188, 85, 30,
-74, 7, 72, 99, 106, 178, 181, 90, 248, 101, 59, 184, 64, 26, 188, 1,
-76, 145, 191, 118, 78, 161, 90, 157, 108, 121, 235, 154, 90, 112, 236, 204,
-226, 67, 193, 204, 136, 84, 224, 47, 165, 0, 44, 46, 226, 144, 113, 146,
-133, 73, 73, 101, 61, 49, 183, 45, 136, 209, 10, 185, 207, 24, 241, 253,
-134, 113, 248, 233, 113, 75, 161, 177, 2, 66, 216, 62, 176, 59, 4, 163,
-90, 175, 96, 238, 243, 195, 62, 32, 61, 225, 75, 178, 126, 96, 109, 122,
-231, 239, 180, 196, 203, 20, 193, 0, 203, 49, 146, 34, 127, 250, 192, 204,
-89, 255, 86, 9, 155, 120, 161, 237, 64, 148, 50, 54, 120, 95, 190, 121,
-93, 65, 125, 191, 202, 190, 16, 112, 191, 77, 28, 125, 90, 84, 128, 7,
-218, 251, 177, 71, 144, 162, 60, 43, 217, 255, 49, 53, 101, 131, 42, 192,
-64, 123, 188, 33, 217, 147, 248, 63, 75, 61, 69, 149, 248, 90, 112, 148,
-132, 15, 114, 114, 66, 235, 198, 222, 166, 108, 140, 172, 248, 14, 252, 63,
-158, 153, 145, 61, 115, 160, 194, 30, 202, 34, 18, 158, 139, 132, 175, 73,
-77, 36, 10, 85, 156, 180, 44, 92, 245, 67, 124, 21, 55, 3, 181, 208,
-16, 78, 144, 45, 150, 153, 171, 99, 203, 120, 102, 144, 205, 149, 16, 168,
-245, 60, 67, 171, 105, 163, 74, 101, 197, 243, 77, 206, 187, 79, 125, 54,
-232, 50, 99, 60, 209, 21, 224, 203, 240, 54, 5, 64, 190, 113, 52, 43,
-114, 153, 57, 24, 246, 249, 67, 5, 116, 108, 167, 24, 152, 157, 145, 145,
-184, 135, 9, 21, 19, 40, 208, 87, 254, 48, 249, 255, 162, 39, 75, 119,
-20, 188, 245, 166, 23, 134, 69, 64, 7, 242, 184, 89, 17, 166, 36, 158,
-76, 105, 235, 212, 75, 14, 179, 168, 51, 204, 42, 50, 187, 5, 118, 76,
-173, 58, 155, 172, 195, 168, 44, 28, 129, 9, 188, 8, 114, 79, 57, 233,
-150, 175, 36, 213, 59, 176, 207, 25, 10, 148, 80, 3, 116, 14, 120, 161,
-233, 250, 36, 212, 116, 26, 203, 37, 129, 42, 24, 65, 190, 157, 65, 193,
-132, 195, 181, 27, 125, 161, 237, 17, 53, 203, 32, 29, 134, 120, 218, 120,
-84, 139, 39, 121, 244, 190, 167, 179, 165, 113, 169, 219, 31, 137, 86, 15,
-43, 237, 99, 71, 43, 151, 167, 221, 182, 112, 157, 111, 40, 91, 133, 17,
-87, 222, 83, 221, 39, 188, 149, 51, 45, 135, 104, 27, 148, 246, 248, 28,
-160, 219, 125, 198, 41, 151, 206, 26, 167, 167, 94, 41, 105, 251, 4, 35,
-251, 166, 1, 111, 156, 209, 126, 39, 93, 105, 234, 197, 64, 185, 177, 48,
-182, 153, 99, 34, 27, 109, 126, 192, 183, 20, 117, 131, 209, 93, 37, 71,
-96, 87, 4, 183, 52, 16, 4, 125, 12, 53, 9, 76, 104, 151, 170, 9,
-186, 74, 152, 140, 173, 231, 52, 113, 11, 115, 6, 75, 62, 208, 192, 102,
-71, 112, 204, 74, 206, 20, 82, 5, 153, 16, 194, 186, 179, 190, 170, 219,
-251, 109, 24, 88, 223, 137, 185, 190, 217, 168, 80, 101, 210, 105, 223, 115,
-124, 71, 91, 192, 48, 42, 206, 220, 14, 48, 3, 232, 99, 51, 247, 39,
-146, 151, 148, 230, 92, 113, 123, 184, 124, 169, 55, 5, 249, 226, 156, 86,
-81, 167, 144, 164, 169, 73, 241, 61, 56, 20, 247, 116, 172, 147, 170, 3,
-6, 80, 189, 3, 220, 11, 62, 56, 129, 179, 145, 205, 91, 46, 65, 29,
-114, 184, 208, 118, 239, 103, 33, 224, 177, 109, 150, 19, 19, 100, 136, 166,
-97, 101, 168, 9, 7, 29, 143, 169, 93, 186, 76, 23, 3, 227, 93, 240,
-235, 94, 195, 2, 46, 188, 75, 37, 252, 60, 62, 186, 250, 143, 133, 96,
-127, 208, 127, 55, 176, 247, 232, 99, 196, 99, 197, 107, 162, 234, 47, 109,
-27, 121, 66, 73, 160, 1, 52, 29, 72, 89, 252, 231, 65, 236, 250, 198,
-186, 129, 21, 102, 98, 57, 20, 184, 221, 174, 48, 37, 11, 185, 123, 187,
-102, 78, 92, 3, 69, 161, 222, 33, 150, 250, 117, 85, 118, 111, 4, 145,
-242, 62, 255, 27, 48, 72, 87, 253, 32, 157, 130, 68, 63, 224, 223, 227,
-29, 217, 177, 173, 61, 206, 34, 14, 205, 70, 161, 224, 28, 131, 197, 203,
-105, 33, 178, 131, 144, 186, 147, 119, 167, 172, 7, 116, 52, 214, 52, 191,
-16, 20, 138, 241, 150, 60, 17, 30, 90, 22, 144, 187, 227, 163, 134, 176,
-66, 121, 14, 1, 232, 99, 93, 57, 25, 113, 177, 243, 126, 46, 49, 0,
-67, 207, 198, 255, 38, 164, 52, 221, 52, 220, 90, 196, 191, 73, 33, 136,
-99, 74, 195, 31, 231, 194, 199, 182, 140, 82, 157, 188, 8, 12, 81, 84,
-107, 2, 2, 35, 89, 168, 58, 130, 16, 60, 88, 163, 212, 87, 132, 194,
-194, 63, 187, 98, 243, 115, 64, 245, 175, 9, 218, 0, 32, 210, 197, 40,
-166, 44, 15, 234, 238, 33, 153, 224, 250, 120, 51, 0, 227, 120, 219, 44,
-30, 86, 64, 104, 234, 171, 137, 78, 125, 204, 253, 60, 134, 211, 218, 47,
-15, 145, 50, 231, 108, 143, 126, 99, 80, 109, 242, 211, 146, 142, 83, 22,
-234, 150, 48, 123, 227, 52, 208, 213, 137, 83, 217, 82, 43, 155, 212, 230,
-162, 139, 107, 243, 220, 45, 253, 220, 250, 97, 103, 239, 54, 14, 22, 131,
-74, 171, 99, 219, 98, 40, 216, 176, 158, 82, 250, 106, 254, 2, 99, 49,
-56, 168, 119, 184, 140, 182, 116, 186, 29, 103, 223, 20, 9, 95, 6, 36,
-28, 134, 90, 8, 57, 65, 158, 33, 238, 155, 61, 210, 236, 126, 109, 144,
-252, 222, 44, 104, 106, 212, 140, 195, 31, 222, 141, 131, 55, 1, 160, 236,
-52, 155, 170, 173, 154, 85, 238, 6, 154, 93, 244, 172, 20, 207, 3, 249,
-143, 52, 22, 77, 100, 14, 227, 254, 35, 66, 27, 37, 222, 98, 7, 22,
-145, 202, 214, 116, 214, 33, 222, 138, 32, 154, 51, 86, 104, 119, 28, 107,
-68, 13, 217, 155, 196, 223, 205, 180, 94, 22, 149, 156, 167, 202, 45, 125,
-37, 105, 207, 145, 26, 162, 155, 167, 7, 155, 51, 201, 3, 72, 182, 154,
-209, 14, 197, 215, 140, 114, 186, 121, 172, 94, 77, 16, 142, 0, 103, 184,
-23, 29, 55, 101, 211, 60, 229, 54, 78, 121, 246, 79, 212, 96, 239, 52,
-182, 132, 42, 214, 208, 28, 48, 252, 79, 113, 145, 90, 110, 46, 145, 190,
-80, 63, 166, 210, 77, 34, 111, 125, 51, 102, 10, 3, 194, 209, 9, 160,
-15, 155, 36, 235, 142, 252, 125, 174, 44, 186, 78, 171, 54, 62, 14, 227,
-191, 192, 234, 43, 84, 99, 96, 201, 1, 12, 101, 98, 237, 12, 249, 186,
-148, 221, 17, 209, 11, 181, 148, 166, 177, 44, 162, 16, 85, 35, 214, 85,
-114, 100, 249, 76, 82, 74, 70, 30, 146, 99, 230, 15, 157, 117, 154, 219,
-131, 163, 193, 175, 216, 30, 147, 176, 224, 116, 82, 144, 224, 131, 249, 50,
-247, 196, 237, 65, 178, 102, 105, 252, 20, 31, 166, 17, 217, 207, 140, 216,
-254, 123, 59, 77, 17, 111, 98, 168, 210, 237, 76, 110, 107, 16, 100, 40,
-46, 208, 81, 201, 160, 52, 137, 25, 180, 136, 37, 214, 173, 172, 95, 113,
-210, 195, 95, 222, 172, 118, 119, 189, 98, 253, 123, 107, 18, 98, 111, 201,
-224, 197, 109, 136, 150, 149, 5, 87, 124, 188, 37, 201, 73, 198, 26, 6,
-62, 134, 188, 136, 206, 126, 101, 46, 234, 17, 202, 47, 135, 223, 57, 59,
-53, 114, 38, 89, 31, 1, 76, 76, 238, 143, 11, 190, 30, 76, 230, 46,
-162, 51, 0, 186, 207, 126, 107, 219, 156, 18, 104, 247, 158, 244, 145, 20,
-84, 31, 68, 141, 55, 190, 221, 105, 102, 56, 81, 154, 125, 71, 123, 126,
-236, 179, 81, 231, 220, 167, 119, 206, 115, 106, 59, 166, 166, 3, 137, 43,
-56, 32, 5, 45, 215, 145, 162, 47, 148, 234, 114, 18, 3, 166, 248, 209,
-117, 192, 103, 35, 83, 79, 19, 212, 230, 12, 128, 214, 142, 148, 173, 234,
-212, 62, 78, 144, 8, 141, 63, 252, 255, 188, 27, 191, 132, 53, 215, 220,
-19, 191, 75, 253, 145, 230, 122, 156, 115, 250, 73, 171, 210, 22, 233, 244,
-91, 58, 47, 75, 68, 116, 182, 98, 182, 75, 66, 36, 159, 64, 205, 176,
-102, 50, 237, 38, 107, 148, 58, 61, 64, 1, 249, 68, 75, 235, 104, 25,
-228, 147, 233, 46, 25, 190, 118, 196, 34, 39, 1, 60, 201, 67, 77, 64,
-9, 43, 0, 150, 41, 73, 57, 254, 211, 96, 93, 129, 231, 63, 12, 177,
-106, 238, 70, 73, 87, 251, 7, 254, 51, 212, 34, 34, 137, 127, 209, 207,
-70, 60, 68, 71, 74, 208, 119, 211, 153, 100, 173, 21, 178, 95, 113, 6,
-103, 244, 204, 200, 141, 58, 156, 13, 21, 109, 169, 215, 206, 184, 10, 248,
-214, 219, 2, 22, 108, 37, 247, 157, 102, 167, 253, 142, 139, 177, 62, 243,
-59, 147, 69, 231, 150, 123, 177, 231, 224, 33, 29, 75, 184, 115, 143, 218,
-4, 10, 125, 35, 50, 201, 143, 44, 175, 108, 206, 247, 152, 81, 249, 135,
-221, 23, 132, 80, 104, 24, 6, 10, 208, 155, 97, 45, 9, 52, 29, 232,
-152, 176, 75, 242, 241, 111, 128, 127, 144, 96, 159, 171, 73, 250, 52, 163,
-43, 158, 232, 89, 227, 65, 219, 151, 153, 227, 61, 46, 232, 177, 170, 203,
-237, 9, 253, 225, 222, 224, 200, 86, 146, 180, 104, 8, 15, 189, 184, 94,
-177, 36, 57, 170, 206, 62, 47, 152, 67, 77, 106, 10, 26, 180, 44, 124,
-175, 5, 81, 96, 215, 143, 142, 152, 61, 2, 81, 216, 66, 142, 216, 71,
-8, 175, 245, 51, 144, 186, 166, 28, 230, 64, 159, 150, 90, 249, 65, 151,
-10, 136, 91, 38, 146, 1, 243, 23, 141, 224, 125, 108, 4, 166, 186, 241,
-55, 10, 202, 251, 230, 96, 252, 248, 197, 48, 29, 239, 129, 204, 184, 15,
-10, 89, 130, 175, 144, 59, 155, 33, 171, 121, 32, 19, 252, 109, 220, 191,
-115, 237, 37, 243, 233, 121, 122, 90, 250, 66, 142, 44, 35, 203, 218, 145,
-243, 140, 28, 161, 213, 153, 231, 76, 138, 76, 251, 151, 7, 11, 64, 193,
-73, 230, 191, 196, 153, 83, 5, 94, 107, 104, 1, 65, 203, 149, 153, 209,
-76, 82, 60, 0, 21, 153, 63, 172, 119, 106, 223, 51, 212, 244, 144, 25,
-25, 126, 216, 9, 93, 42, 46, 188, 134, 154, 195, 84, 46, 126, 128, 136,
-111, 21, 90, 103, 219, 198, 39, 161, 53, 255, 151, 213, 105, 135, 115, 226,
-94, 28, 48, 252, 80, 33, 60, 213, 206, 247, 191, 175, 195, 227, 118, 54,
-185, 205, 195, 248, 11, 238, 202, 13, 236, 38, 182, 1, 1, 51, 111, 190,
-234, 249, 87, 189, 234, 35, 148, 226, 72, 131, 77, 249, 214, 48, 36, 116,
-58, 228, 77, 168, 222, 190, 115, 193, 157, 174, 213, 105, 120, 23, 98, 134,
-22, 205, 150, 192, 202, 128, 65, 128, 85, 254, 99, 135, 227, 170, 80, 96,
-234, 225, 173, 172, 156, 179, 234, 81, 185, 34, 227, 155, 41, 242, 244, 138,
-148, 58, 255, 232, 63, 146, 184, 233, 157, 105, 206, 181, 53, 42, 165, 59,
-77, 71, 206, 219, 169, 168, 246, 61, 114, 171, 147, 22, 101, 218, 92, 93,
-58, 103, 80, 240, 152, 80, 137, 179, 181, 175, 203, 245, 111, 231, 4, 41,
-158, 94, 224, 189, 172, 122, 97, 92, 93, 126, 47, 229, 239, 52, 225, 102,
-38, 25, 61, 196, 121, 227, 94, 27, 148, 133, 61, 98, 247, 7, 82, 187,
-159, 106, 74, 51, 245, 171, 42, 69, 188, 227, 34, 178, 136, 210, 137, 62,
-86, 101, 8, 204, 106, 6, 234, 105, 133, 51, 69, 50, 164, 84, 182, 73,
-94, 107, 10, 134, 19, 165, 111, 191, 145, 238, 0, 8, 188, 57, 123, 185,
-132, 9, 169, 43, 215, 92, 74, 108, 176, 219, 88, 26, 227, 255, 172, 198,
-175, 40, 106, 120, 227, 148, 24, 151, 195, 121, 182, 70, 177, 251, 105, 27,
-168, 16, 142, 207, 176, 74, 47, 217, 161, 139, 28, 60, 228, 196, 246, 233,
-249, 184, 212, 36, 196, 96, 125, 79, 197, 37, 17, 133, 251, 89, 226, 187,
-232, 38, 238, 158, 183, 92, 96, 35, 3, 28, 247, 68, 111, 103, 174, 110,
-81, 164, 146, 165, 195, 219, 114, 27, 207, 83, 255, 253, 126, 88, 242, 198,
-111, 102, 218, 249, 114, 9, 153, 221, 223, 176, 188, 88, 17, 208, 46, 178,
-238, 36, 253, 109, 224, 222, 79, 154, 125, 18, 200, 101, 116, 57, 1, 129,
-97, 201, 151, 111, 183, 222, 140, 135, 114, 156, 95, 84, 178, 241, 159, 177,
-112, 62, 25, 125, 115, 232, 102, 251, 62, 203, 14, 5, 150, 92, 99, 241,
-219, 53, 250, 69, 48, 65, 141, 243, 130, 124, 225, 30, 176, 59, 17, 175,
-145, 254, 49, 241, 235, 137, 226, 136, 42, 0, 251, 160, 205, 156, 192, 10,
-9, 85, 55, 14, 59, 38, 172, 192, 24, 221, 66, 54, 237, 238, 147, 90,
-228, 189, 22, 9, 220, 164, 100, 218, 76, 176, 128, 184, 136, 152, 252, 67,
-162, 227, 119, 133, 5, 15, 108, 130, 165, 211, 24, 19, 34, 74, 234, 209,
-206, 203, 5, 232, 5, 133, 92, 251, 111, 242, 81, 57, 100, 12, 116, 139,
-189, 113, 167, 141, 181, 174, 47, 10, 105, 237, 10, 170, 195, 140, 245, 184,
-206, 44, 7, 175, 182, 148, 159, 209, 239, 141, 192, 194, 7, 189, 225, 93,
-37, 161, 90, 81, 167, 97, 32, 161, 12, 147, 110, 81, 128, 14, 78, 146,
-252, 19, 252, 221, 57, 196, 233, 98, 192, 166, 49, 199, 150, 96, 30, 247,
-169, 183, 252, 210, 201, 226, 23, 114, 193, 229, 123, 251, 93, 187, 191, 44,
-195, 214, 222, 243, 9, 180, 215, 34, 89, 67, 220, 162, 195, 200, 67, 126,
-247, 59, 142, 35, 82, 238, 128, 25, 51, 135, 152, 238, 100, 52, 59, 118,
-152, 147, 111, 133, 138, 41, 196, 210, 24, 241, 10, 35, 73, 163, 94, 97,
-181, 32, 144, 24, 172, 191, 205, 12, 25, 230, 108, 130, 138, 248, 164, 98,
-141, 92, 99, 56, 180, 192, 55, 63, 70, 173, 164, 57, 26, 95, 135, 243,
-255, 159, 211, 163, 47, 128, 71, 155, 98, 187, 81, 159, 191, 1, 55, 225,
-241, 16, 174, 240, 168, 122, 37, 40, 97, 207, 157, 157, 176, 7, 252, 81,
-133, 214, 128, 83, 249, 33, 72, 143, 4, 87, 8, 197, 231, 21, 222, 74,
-138, 132, 149, 108, 102, 24, 221, 154, 83, 187, 80, 31, 7, 63, 116, 180,
-169, 84, 202, 18, 188, 14, 118, 98, 166, 75, 244, 10, 1, 219, 79, 105,
-163, 0, 249, 253, 96, 86, 201, 39, 97, 83, 83, 174, 48, 249, 73, 39,
-191, 208, 168, 34, 67, 151, 254, 16, 18, 135, 92, 157, 224, 225, 41, 254,
-45, 203, 41, 197, 216, 141, 15, 210, 33, 219, 67, 189, 220, 69, 50, 19,
-79, 43, 75, 122, 1, 93, 44, 65, 197, 15, 29, 234, 39, 175, 233, 136,
-5, 65, 123, 116, 109, 136, 63, 92, 59, 31, 158, 1, 40, 219, 158, 94,
-39, 236, 207, 198, 124, 247, 209, 150, 168, 146, 27, 164, 80, 109, 251, 220,
-101, 150, 29, 142, 44, 199, 71, 232, 27, 36, 118, 69, 230, 84, 26, 172,
-252, 227, 46, 19, 35, 168, 239, 5, 15, 220, 128, 95, 212, 106, 205, 242,
-56, 128, 9, 20, 28, 24, 33, 11, 177, 244, 110, 237, 131, 233, 183, 223,
-121, 115, 90, 225, 223, 160, 83, 66, 136, 70, 58, 153, 13, 104, 136, 207,
-39, 234, 129, 140, 247, 219, 176, 72, 120, 211, 185, 133, 118, 131, 212, 59,
-186, 178, 199, 228, 54, 231, 97, 187, 224, 97, 237, 206, 215, 9, 22, 12,
-12, 147, 21, 38, 165, 78, 149, 245, 145, 118, 103, 245, 129, 120, 5, 142,
-49, 0, 211, 224, 239, 77, 114, 48, 172, 158, 171, 19, 224, 201, 82, 218,
-78, 168, 91, 134, 15, 40, 187, 114, 42, 26, 8, 142, 211, 61, 233, 8,
-155, 177, 147, 149, 232, 160, 1, 177, 135, 245, 144, 69, 22, 157, 156, 200,
-109, 133, 201, 157, 212, 254, 134, 213, 191, 255, 101, 255, 20, 235, 105, 62,
-221, 210, 159, 64, 246, 136, 181, 60, 41, 149, 129, 224, 46, 79, 173, 136,
-105, 125, 192, 244, 16, 236, 172, 194, 247, 136, 160, 191, 219, 24, 101, 151,
-204, 189, 254, 69, 160, 79, 84, 149, 43, 108, 90, 65, 16, 75, 49, 182,
-29, 211, 188, 135, 145, 131, 108, 143, 97, 95, 38, 38, 244, 117, 92, 157,
-91, 38, 118, 118, 134, 108, 123, 83, 215, 239, 228, 186, 45, 112, 202, 166,
-127, 199, 80, 183, 251, 112, 113, 237, 49, 148, 92, 31, 54, 242, 208, 12,
-47, 101, 74, 79, 19, 78, 122, 60, 125, 85, 133, 3, 52, 123, 236, 60,
-62, 178, 101, 111, 91, 89, 228, 63, 62, 116, 53, 148, 71, 46, 153, 133,
-244, 59, 87, 117, 171, 67, 182, 119, 3, 204, 215, 205, 128, 248, 11, 59,
-34, 15, 115, 249, 177, 240, 198, 58, 52, 23, 101, 132, 118, 39, 181, 199,
-49, 39, 98, 196, 23, 179, 199, 62, 65, 165, 246, 218, 161, 150, 163, 253,
-94, 124, 215, 10, 245, 71, 135, 168, 59, 251, 229, 157, 39, 75, 179, 211,
-83, 33, 172, 81, 2, 30, 222, 174, 66, 80, 11, 196, 187, 123, 255, 127,
-187, 208, 236, 106, 88, 54, 93, 253, 37, 33, 155, 82, 26, 156, 57, 87,
-148, 130, 44, 84, 207, 171, 200, 131, 82, 28, 61, 122, 155, 114, 160, 253,
-29, 177, 50, 168, 100, 73, 18, 132, 92, 136, 67, 24, 156, 149, 164, 120,
-109, 130, 170, 156, 164, 248, 104, 83, 152, 231, 211, 100, 78, 59, 170, 147,
-101, 86, 254, 127, 143, 124, 178, 232, 35, 35, 243, 3, 220, 198, 182, 146,
-71, 250, 50, 61, 152, 253, 101, 219, 219, 159, 58, 34, 239, 111, 144, 29,
-8, 99, 24, 212, 123, 176, 171, 0, 132, 253, 35, 140, 166, 157, 68, 215,
-217, 105, 78, 224, 18, 118, 216, 79, 227, 101, 59, 153, 27, 217, 243, 250,
-193, 213, 100, 184, 69, 78, 229, 7, 144, 107, 5, 214, 223, 139, 123, 44,
-140, 165, 131, 215, 65, 77, 181, 143, 101, 218, 198, 87, 47, 191, 10, 102,
-231, 0, 239, 23, 128, 83, 11, 218, 62, 104, 185, 73, 211, 216, 40, 70,
-231, 92, 187, 172, 255, 66, 159, 93, 156, 35, 172, 123, 2, 230, 123, 236,
-241, 154, 88, 136, 179, 147, 174, 89, 50, 5, 158, 169, 128, 127, 215, 231,
-82, 83, 159, 66, 241, 205, 103, 143, 20, 248, 239, 143, 31, 210, 249, 39,
-25, 8, 8, 242, 111, 111, 188, 35, 190, 251, 17, 114, 164, 49, 24, 113,
-159, 50, 115, 56, 190, 180, 91, 125, 237, 99, 116, 211, 36, 208, 115, 12,
-73, 61, 99, 110, 81, 64, 83, 163, 131, 154, 211, 9, 165, 11, 30, 177,
-177, 43, 241, 7, 108, 203, 224, 75, 25, 246, 160, 33, 148, 32, 131, 183,
-190, 0, 219, 28, 208, 242, 134, 174, 91, 92, 51, 36, 240, 43, 139, 147,
-101, 183, 51, 216, 249, 42, 166, 52, 133, 115, 249, 6, 240, 23, 27, 23,
-77, 180, 40, 175, 240, 173, 104, 70, 137, 83, 82, 171, 155, 215, 136, 131,
-4, 172, 19, 100, 255, 146, 160, 199, 128, 177, 130, 163, 56, 104, 107, 102,
-44, 178, 196, 187, 0, 38, 53, 230, 191, 148, 218, 207, 105, 66, 106, 103,
-52, 241, 119, 233, 63, 63, 182, 45, 101, 61, 210, 89, 175, 101, 98, 89,
-172, 252, 236, 36, 54, 143, 131, 55, 35, 189, 128, 57, 73, 34, 229, 250,
-206, 253, 43, 37, 53, 136, 172, 73, 221, 27, 205, 207, 21, 120, 92, 6,
-220, 166, 66, 95, 45, 241, 209, 112, 72, 22, 31, 221, 232, 220, 157, 248,
-78, 105, 214, 230, 41, 193, 211, 46, 249, 26, 11, 242, 42, 225, 116, 207,
-166, 141, 116, 185, 223, 86, 218, 190, 255, 185, 250, 199, 181, 56, 188, 132,
-37, 27, 85, 248, 112, 161, 182, 164, 153, 129, 40, 37, 13, 8, 67, 236,
-36, 182, 151, 130, 96, 131, 65, 26, 103, 239, 65, 243, 234, 162, 7, 90,
-237, 24, 99, 145, 47, 181, 99, 65, 38, 36, 112, 157, 239, 225, 127, 161,
-168, 6, 66, 231, 252, 142, 154, 225, 138, 189, 243, 66, 142, 71, 61, 239,
-55, 230, 59, 40, 224, 134, 104, 100, 189, 166, 249, 66, 91, 146, 154, 28,
-67, 78, 138, 40, 114, 71, 172, 3, 168, 233, 9, 106, 228, 143, 56, 193,
-227, 243, 144, 51, 222, 94, 224, 43, 79, 149, 212, 245, 52, 68, 200, 17,
-235, 45, 164, 147, 62, 118, 52, 216, 195, 78, 13, 66, 190, 188, 241, 142,
-234, 182, 85, 48, 148, 214, 123, 57, 223, 188, 229, 119, 169, 180, 193, 70,
-250, 215, 249, 29, 88, 123, 88, 226, 210, 171, 170, 32, 80, 85, 3, 26,
-219, 109, 97, 134, 11, 96, 118, 71, 130, 86, 182, 77, 116, 137, 214, 28,
-140, 242, 227, 178, 167, 200, 214, 175, 107, 96, 132, 33, 40, 64, 93, 206,
-90, 129, 132, 221, 170, 242, 113, 235, 251, 172, 193, 35, 58, 85, 70, 9,
-75, 104, 71, 161, 99, 214, 6, 33, 204, 250, 172, 199, 33, 183, 246, 250,
-109, 251, 50, 106, 114, 16, 134, 150, 19, 219, 21, 60, 63, 251, 204, 157,
-45, 106, 233, 133, 154, 145, 135, 201, 77, 59, 178, 176, 217, 109, 236, 19,
-19, 200, 5, 165, 235, 81, 14, 42, 153, 40, 189, 86, 92, 90, 239, 77,
-53, 136, 65, 112, 94, 130, 104, 71, 55, 79, 22, 250, 34, 178, 14, 91,
-24, 145, 250, 4, 197, 96, 72, 118, 142, 31, 83, 137, 14, 57, 115, 36,
-202, 144, 10, 19, 123, 176, 23, 93, 35, 90, 145, 73, 163, 124, 66, 156,
-8, 82, 243, 22, 204, 59, 77, 49, 222, 1, 246, 7, 75, 15, 234, 110,
-9, 232, 29, 156, 239, 250, 88, 24, 244, 123, 15, 169, 66, 180, 254, 210,
-233, 134, 27, 100, 162, 103, 158, 223, 149, 226, 167, 140, 53, 34, 57, 105,
-221, 112, 116, 72, 207, 169, 98, 200, 189, 33, 72, 181, 162, 166, 4, 29,
-98, 157, 184, 244, 188, 127, 186, 35, 186, 202, 24, 21, 185, 160, 63, 17,
-112, 78, 96, 49, 87, 60, 154, 215, 49, 196, 179, 122, 60, 253, 154, 86,
-177, 227, 70, 1, 80, 205, 58, 66, 103, 146, 170, 108, 34, 134, 149, 134,
-160, 225, 152, 63, 18, 199, 101, 158, 199, 235, 124, 98, 105, 8, 62, 100,
-92, 248, 81, 59, 108, 190, 156, 216, 106, 103, 90, 69, 199, 160, 21, 66,
-203, 125, 157, 189, 8, 115, 15, 158, 77, 105, 124, 171, 180, 227, 134, 50,
-208, 245, 254, 35, 231, 215, 231, 193, 218, 216, 68, 204, 229, 233, 95, 120,
-177, 105, 108, 92, 9, 181, 119, 196, 19, 97, 5, 145, 254, 112, 156, 70,
-9, 68, 39, 84, 33, 80, 2, 21, 228, 184, 145, 218, 19, 202, 231, 144,
-3, 29, 22, 14, 146, 193, 90, 216, 63, 95, 197, 70, 198, 68, 235, 132,
-16, 31, 100, 179, 19, 105, 19, 178, 210, 222, 118, 148, 37, 202, 50, 222,
-84, 246, 89, 36, 25, 183, 80, 175, 79, 154, 38, 119, 89, 125, 133, 56,
-21, 61, 187, 123, 80, 224, 187, 15, 84, 46, 19, 1, 24, 246, 250, 32,
-226, 193, 49, 118, 252, 1, 47, 172, 161, 175, 60, 113, 56, 248, 198, 100,
-117, 78, 138, 154, 40, 231, 118, 120, 23, 223, 8, 239, 145, 51, 43, 82,
-146, 83, 129, 43, 146, 75, 171, 20, 186, 157, 174, 137, 205, 187, 198, 37,
-10, 108, 65, 154, 212, 207, 63, 178, 11, 51, 5, 62, 172, 122, 219, 147,
-16, 223, 243, 134, 146, 161, 173, 118, 113, 185, 212, 199, 29, 83, 5, 241,
-42, 54, 160, 57, 100, 116, 111, 218, 193, 39, 66, 67, 141, 161, 179, 141,
-54, 87, 16, 43, 15, 93, 41, 240, 62, 66, 231, 59, 42, 48, 46, 207,
-141, 27, 160, 156, 247, 138, 129, 130, 68, 34, 66, 69, 177, 45, 108, 26,
-36, 50, 109, 46, 238, 82, 187, 219, 166, 225, 115, 204, 121, 228, 122, 92,
-65, 67, 69, 162, 104, 10, 117, 17, 33, 113, 110, 10, 9, 2, 41, 24,
-227, 173, 49, 10, 2, 147, 115, 197, 93, 133, 139, 86, 38, 138, 102, 92,
-17, 94, 115, 74, 101, 5, 12, 222, 186, 229, 16, 126, 16, 234, 105, 191,
-184, 182, 27, 59, 152, 118, 179, 114, 78, 65, 15, 21, 43, 215, 7, 215,
-110, 207, 152, 128, 14, 106, 188, 73, 230, 183, 23, 101, 92, 95, 250, 115,
-245, 40, 58, 167, 157, 201, 1, 229, 233, 39, 243, 103, 253, 104, 135, 248,
-219, 74, 127, 91, 135, 224, 240, 42, 6, 70, 70, 48, 23, 52, 78, 12,
-212, 203, 55, 134, 108, 107, 185, 237, 129, 120, 234, 54, 243, 252, 231, 19,
-190, 190, 46, 48, 115, 200, 145, 119, 195, 140, 122, 21, 85, 120, 189, 33,
-208, 59, 39, 181, 57, 55, 128, 144, 149, 120, 65, 77, 113, 75, 203, 194,
-251, 217, 77, 110, 56, 54, 93, 240, 101, 219, 52, 174, 163, 153, 193, 24,
-16, 112, 103, 178, 252, 57, 2, 7, 55, 184, 80, 176, 248, 128, 236, 73,
-250, 66, 218, 63, 16, 230, 149, 32, 149, 237, 199, 168, 81, 147, 63, 211,
-251, 112, 223, 62, 92, 60, 114, 156, 203, 12, 225, 232, 250, 166, 123, 194,
-227, 56, 82, 4, 104, 168, 170, 38, 93, 122, 232, 207, 228, 68, 58, 247,
-162, 96, 128, 20, 249, 114, 93, 37, 199, 229, 152, 134, 168, 14, 212, 153,
-137, 31, 241, 189, 163, 223, 247, 196, 22, 67, 27, 105, 10, 235, 28, 24,
-177, 249, 230, 19, 247, 145, 228, 151, 195, 17, 201, 93, 226, 167, 76, 227,
-85, 207, 200, 139, 37, 148, 40, 243, 214, 60, 55, 241, 183, 126, 160, 97,
-6, 129, 104, 182, 207, 250, 77, 123, 235, 211, 158, 171, 52, 171, 186, 53,
-121, 24, 137, 105, 164, 247, 172, 132, 201, 31, 135, 123, 0, 164, 164, 235,
-167, 103, 63, 40, 54, 102, 46, 197, 185, 194, 14, 195, 159, 182, 120, 4,
-36, 14, 194, 219, 155, 23, 233, 148, 169, 113, 158, 92, 103, 68, 247, 133,
-214, 252, 9, 220, 50, 198, 251, 75, 34, 10, 115, 209, 172, 147, 168, 185,
-81, 70, 174, 155, 80, 111, 246, 78, 199, 155, 192, 2, 241, 162, 123, 123,
-77, 228, 101, 22, 241, 89, 245, 63, 3, 235, 76, 162, 20, 12, 81, 228,
-254, 50, 146, 76, 149, 112, 226, 88, 231, 167, 229, 27, 250, 21, 98, 84,
-235, 251, 213, 238, 209, 111, 34, 144, 181, 190, 22, 60, 112, 244, 98, 241,
-19, 51, 163, 4, 198, 8, 50, 194, 200, 241, 155, 192, 97, 95, 173, 49,
-94, 169, 112, 21, 87, 23, 229, 226, 75, 60, 134, 126, 21, 10, 86, 84,
-238, 113, 19, 77, 205, 3, 158, 105, 241, 98, 86, 237, 233, 190, 97, 136,
-202, 234, 147, 121, 253, 156, 176, 238, 222, 71, 35, 185, 127, 212, 211, 0,
-86, 129, 131, 93, 111, 167, 121, 138, 69, 251, 4, 90, 229, 43, 48, 144,
-138, 0, 48, 249, 202, 203, 46, 117, 175, 27, 96, 230, 119, 93, 156, 129,
-186, 122, 133, 114, 160, 196, 50, 81, 97, 63, 13, 188, 146, 63, 4, 220,
-222, 165, 9, 236, 124, 117, 145, 91, 244, 186, 233, 35, 78, 241, 45, 38,
-127, 179, 165, 20, 253, 131, 171, 41, 230, 158, 162, 83, 50, 19, 23, 83,
-128, 121, 67, 248, 17, 145, 98, 112, 190, 250, 237, 243, 248, 64, 146, 41,
-16, 44, 154, 33, 60, 162, 161, 156, 229, 176, 172, 49, 42, 240, 235, 85,
-90, 162, 151, 170, 183, 27, 21, 183, 40, 134, 187, 193, 75, 183, 76, 63,
-235, 27, 90, 133, 26, 138, 83, 150, 77, 206, 233, 166, 204, 90, 125, 211,
-133, 229, 10, 166, 12, 146, 184, 152, 107, 242, 245, 52, 145, 154, 34, 249,
-13, 102, 253, 209, 20, 3, 225, 88, 156, 137, 30, 182, 206, 211, 255, 149,
-39, 64, 133, 16, 125, 5, 115, 220, 51, 122, 242, 121, 222, 212, 239, 237,
-208, 31, 72, 98, 36, 131, 185, 9, 124, 14, 55, 236, 196, 38, 68, 82,
-17, 197, 255, 168, 199, 158, 94, 52, 58, 126, 100, 57, 118, 184, 214, 42,
-65, 249, 156, 128, 82, 139, 234, 63, 119, 55, 89, 108, 207, 209, 226, 34,
-198, 134, 54, 131, 154, 87, 96, 31, 11, 241, 1, 11, 97, 61, 167, 20,
-223, 188, 163, 31, 250, 189, 13, 29, 196, 209, 218, 119, 102, 13, 172, 149,
-149, 219, 251, 64, 238, 211, 212, 136, 82, 237, 150, 140, 188, 201, 123, 191,
-83, 133, 193, 253, 25, 27, 246, 72, 60, 212, 227, 241, 209, 206, 142, 29,
-11, 11, 146, 182, 203, 214, 25, 192, 236, 197, 176, 6, 216, 105, 145, 191,
-115, 161, 107, 170, 194, 121, 148, 205, 65, 116, 157, 96, 173, 217, 30, 96,
-174, 239, 178, 151, 121, 46, 3, 86, 65, 32, 120, 195, 66, 86, 144, 206,
-91, 36, 148, 42, 216, 208, 164, 203, 149, 69, 230, 49, 78, 224, 177, 23,
-175, 103, 191, 111, 181, 130, 255, 215, 189, 173, 134, 189, 64, 36, 226, 134,
-89, 116, 138, 92, 81, 246, 202, 10, 243, 21, 81, 165, 210, 235, 49, 99,
-217, 19, 184, 54, 71, 102, 132, 49, 135, 228, 156, 67, 170, 38, 173, 200,
-239, 244, 255, 65, 211, 100, 161, 118, 111, 218, 219, 87, 23, 57, 9, 246,
-102, 252, 157, 205, 98, 12, 97, 198, 183, 141, 223, 154, 23, 180, 123, 80,
-156, 144, 231, 95, 42, 135, 31, 244, 164, 121, 138, 116, 154, 207, 222, 138,
-32, 84, 185, 56, 114, 9, 244, 11, 213, 237, 166, 91, 31, 217, 20, 179,
-168, 121, 139, 237, 181, 221, 90, 174, 2, 176, 34, 210, 130, 241, 130, 240,
-178, 89, 176, 130, 185, 243, 52, 101, 116, 112, 6, 60, 84, 6, 110, 29,
-246, 66, 10, 164, 130, 46, 75, 163, 179, 45, 250, 32, 57, 48, 74, 169,
-133, 44, 167, 241, 103, 31, 119, 243, 74, 208, 4, 162, 17, 11, 72, 126,
-10, 81, 117, 188, 103, 222, 163, 78, 206, 72, 216, 73, 2, 221, 230, 122,
-107, 141, 126, 1, 236, 63, 51, 169, 160, 14, 165, 208, 174, 9, 91, 74,
-252, 146, 198, 79, 238, 175, 39, 102, 75, 150, 40, 109, 143, 117, 77, 153,
-234, 82, 38, 162, 23, 242, 107, 124, 217, 13, 51, 55, 92, 1, 28, 138,
-62, 209, 69, 222, 63, 62, 150, 221, 74, 232, 220, 181, 21, 36, 203, 182,
-193, 183, 173, 113, 157, 241, 208, 131, 172, 0, 176, 55, 229, 63, 54, 84,
-197, 105, 196, 154, 60, 52, 50, 191, 230, 202, 129, 85, 235, 75, 245, 172,
-58, 230, 0, 251, 250, 104, 123, 247, 224, 120, 118, 30, 50, 223, 144, 233,
-243, 213, 58, 228, 124, 24, 168, 194, 24, 192, 4, 63, 107, 39, 55, 202,
-196, 254, 149, 141, 189, 136, 218, 108, 203, 100, 198, 121, 240, 252, 208, 200,
-230, 178, 117, 199, 2, 55, 165, 214, 210, 246, 142, 178, 63, 86, 249, 156,
-100, 172, 202, 197, 148, 222, 76, 185, 221, 248, 71, 7, 231, 224, 158, 236,
-27, 44, 53, 58, 181, 65, 176, 146, 223, 254, 5, 249, 207, 218, 160, 212,
-245, 14, 114, 246, 153, 139, 55, 230, 89, 143, 125, 133, 103, 249, 123, 91,
-229, 195, 214, 65, 251, 219, 11, 48, 167, 72, 9, 131, 110, 207, 244, 197,
-159, 23, 51, 161, 135, 251, 220, 52, 242, 122, 199, 21, 231, 34, 185, 84,
-140, 112, 3, 164, 231, 64, 162, 192, 103, 182, 162, 112, 2, 142, 22, 148,
-62, 71, 79, 232, 85, 38, 15, 87, 230, 232, 112, 203, 94, 230, 172, 233,
-219, 158, 246, 87, 61, 155, 22, 14, 157, 23, 61, 99, 196, 97, 70, 216,
-173, 236, 211, 120, 197, 28, 231, 47, 215, 66, 71, 46, 66, 28, 29, 223,
-77, 173, 144, 82, 220, 222, 99, 229, 74, 53, 88, 116, 123, 162, 240, 168,
-216, 142, 205, 144, 183, 127, 135, 4, 162, 91, 176, 78, 26, 178, 249, 104,
-195, 76, 105, 206, 143, 20, 158, 220, 22, 67, 201, 237, 78, 241, 56, 111,
-63, 160, 240, 168, 131, 253, 62, 8, 51, 88, 43, 174, 217, 235, 243, 71,
-50, 210, 7, 235, 56, 63, 128, 111, 32, 244, 187, 217, 170, 77, 152, 65,
-7, 200, 30, 47, 83, 126, 139, 170, 142, 219, 184, 156, 54, 102, 249, 94,
-32, 2, 204, 206, 77, 230, 60, 184, 143, 167, 110, 241, 203, 60, 44, 174,
-128, 150, 186, 215, 218, 189, 87, 107, 216, 84, 76, 166, 171, 91, 23, 16,
-208, 211, 181, 234, 61, 203, 224, 172, 128, 129, 66, 7, 249, 0, 75, 157,
-235, 49, 244, 154, 157, 107, 205, 70, 146, 38, 188, 6, 218, 133, 231, 204,
-168, 234, 133, 17, 245, 85, 253, 163, 242, 168, 56, 9, 99, 142, 236, 237,
-67, 20, 226, 60, 4, 86, 83, 208, 243, 19, 127, 168, 6, 156, 67, 179,
-66, 170, 242, 211, 170, 199, 188, 71, 231, 191, 67, 42, 109, 37, 117, 154,
-231, 116, 63, 232, 206, 107, 141, 17, 127, 143, 79, 247, 160, 62, 151, 234,
-116, 126, 14, 223, 8, 5, 52, 82, 8, 99, 17, 9, 7, 4, 208, 106,
-11, 208, 156, 157, 85, 51, 236, 128, 41, 66, 99, 243, 220, 153, 131, 111,
-78, 189, 95, 219, 51, 100, 41, 150, 188, 218, 35, 37, 176, 31, 122, 252,
-207, 222, 214, 142, 95, 19, 136, 159, 195, 209, 39, 182, 19, 97, 185, 72,
-83, 165, 208, 249, 83, 4, 244, 230, 30, 7, 13, 161, 90, 200, 121, 138,
-67, 151, 252, 197, 165, 44, 215, 9, 81, 118, 179, 159, 15, 3, 156, 105,
-151, 104, 109, 161, 202, 143, 199, 41, 187, 172, 154, 64, 105, 69, 67, 173,
-226, 34, 234, 111, 69, 244, 45, 230, 49, 11, 18, 158, 56, 184, 55, 124,
-46, 252, 215, 109, 236, 124, 156, 172, 148, 159, 44, 147, 129, 50, 49, 230,
-128, 213, 137, 161, 125, 140, 222, 36, 90, 117, 223, 146, 237, 122, 39, 118,
-188, 93, 11, 40, 49, 114, 230, 80, 31, 221, 58, 199, 174, 192, 112, 31,
-236, 98, 56, 76, 27, 199, 78, 28, 48, 62, 246, 207, 30, 85, 50, 31,
-4, 143, 58, 241, 131, 83, 203, 70, 241, 124, 150, 160, 88, 30, 227, 177,
-213, 75, 139, 122, 83, 83, 41, 97, 140, 78, 157, 188, 172, 85, 52, 202,
-76, 47, 145, 76, 126, 144, 228, 49, 239, 103, 196, 149, 203, 133, 159, 201,
-215, 241, 71, 245, 114, 49, 125, 228, 22, 192, 235, 230, 246, 247, 100, 110,
-76, 74, 214, 226, 221, 120, 140, 250, 108, 9, 203, 40, 92, 19, 184, 136,
-86, 76, 250, 177, 64, 76, 214, 79, 190, 86, 8, 131, 178, 0, 200, 171,
-245, 144, 94, 2, 236, 11, 187, 119, 165, 83, 130, 252, 49, 126, 254, 131,
-38, 43, 245, 170, 53, 7, 183, 205, 84, 71, 16, 127, 86, 249, 31, 169,
-65, 33, 207, 146, 111, 155, 43, 145, 85, 250, 216, 38, 95, 18, 129, 186,
-14, 3, 158, 43, 183, 44, 205, 90, 37, 141, 27, 130, 115, 4, 121, 67,
-113, 43, 109, 251, 71, 103, 32, 129, 163, 73, 116, 252, 32, 149, 17, 150,
-117, 168, 218, 56, 163, 173, 125, 84, 103, 136, 195, 89, 46, 27, 45, 153,
-6, 184, 81, 93, 131, 28, 42, 171, 87, 177, 135, 109, 24, 78, 80, 103,
-110, 168, 3, 251, 165, 139, 171, 25, 77, 166, 250, 193, 166, 168, 195, 160,
-12, 25, 110, 36, 0, 132, 247, 199, 195, 30, 177, 14, 176, 197, 58, 142,
-93, 43, 151, 126, 28, 184, 231, 179, 113, 227, 26, 165, 98, 180, 183, 218,
-182, 150, 125, 231, 102, 231, 206, 39, 57, 121, 193, 43, 11, 254, 173, 29,
-251, 45, 171, 106, 87, 114, 38, 58, 153, 72, 84, 193, 36, 2, 142, 215,
-121, 147, 160, 11, 37, 243, 213, 217, 181, 152, 112, 191, 155, 217, 136, 117,
-175, 182, 125, 134, 218, 58, 212, 239, 39, 250, 119, 220, 113, 214, 143, 204,
-124, 11, 153, 200, 158, 215, 253, 40, 35, 17, 232, 45, 217, 47, 191, 159,
-199, 82, 41, 106, 158, 244, 222, 254, 133, 109, 151, 43, 187, 203, 165, 61,
-163, 205, 7, 217, 12, 252, 123, 90, 255, 255, 88, 221, 122, 76, 173, 185,
-85, 185, 33, 228, 226, 161, 72, 217, 34, 197, 140, 190, 18, 7, 142, 177,
-203, 49, 93, 91, 12, 12, 29, 35, 100, 136, 58, 22, 174, 49, 71, 209,
-218, 199, 125, 51, 110, 117, 45, 205, 141, 81, 192, 148, 211, 238, 218, 84,
-227, 191, 160, 49, 110, 207, 190, 8, 156, 184, 167, 148, 228, 69, 19, 39,
-3, 210, 204, 196, 230, 123, 64, 123, 133, 115, 33, 85, 15, 45, 144, 218,
-31, 192, 34, 60, 208, 166, 113, 151, 122, 249, 171, 207, 8, 164, 207, 138,
-246, 217, 251, 34, 27, 145, 144, 57, 60, 165, 203, 117, 199, 80, 141, 218,
-36, 65, 24, 115, 33, 152, 139, 152, 34, 72, 99, 192, 219, 49, 65, 187,
-217, 14, 208, 56, 62, 143, 12, 51, 225, 187, 38, 19, 114, 83, 118, 117,
-17, 249, 224, 185, 225, 237, 71, 79, 67, 75, 51, 0, 92, 123, 155, 122,
-154, 105, 101, 235, 17, 160, 35, 152, 108, 45, 151, 154, 92, 149, 63, 255,
-77, 153, 104, 98, 208, 251, 112, 189, 38, 102, 205, 117, 255, 232, 150, 109,
-51, 70, 5, 11, 224, 41, 141, 200, 227, 170, 1, 220, 34, 103, 112, 185,
-169, 207, 141, 183, 172, 61, 129, 113, 126, 200, 59, 197, 93, 245, 240, 58,
-232, 40, 90, 125, 37, 134, 210, 82, 118, 234, 200, 115, 169, 124, 188, 1,
-172, 236, 31, 79, 211, 213, 146, 195, 206, 105, 57, 241, 59, 237, 145, 32,
-6, 24, 253, 23, 60, 211, 2, 94, 42, 190, 180, 213, 177, 23, 167, 104,
-3, 226, 171, 208, 95, 96, 57, 53, 141, 115, 88, 174, 10, 206, 234, 150,
-182, 157, 242, 93, 97, 80, 9, 154, 152, 166, 94, 141, 238, 212, 68, 231,
-244, 0, 36, 167, 2, 9, 169, 16, 151, 170, 33, 51, 1, 105, 210, 194,
-224, 146, 221, 227, 137, 63, 144, 14, 5, 140, 30, 193, 203, 47, 90, 20,
-233, 169, 66, 192, 91, 252, 161, 140, 67, 202, 12, 24, 190, 242, 46, 208,
-121, 8, 194, 164, 164, 125, 216, 194, 242, 125, 131, 35, 5, 45, 18, 152,
-157, 240, 35, 56, 246, 144, 175, 2, 7, 123, 13, 158, 168, 115, 221, 195,
-54, 236, 35, 132, 246, 7, 100, 108, 120, 17, 23, 210, 61, 238, 38, 73,
-149, 28, 249, 29, 5, 232, 28, 131, 84, 79, 155, 26, 82, 96, 150, 219,
-122, 167, 231, 56, 233, 176, 154, 213, 126, 14, 155, 13, 68, 157, 25, 236,
-244, 64, 125, 74, 247, 241, 123, 177, 102, 43, 244, 122, 173, 75, 132, 244,
-248, 236, 246, 161, 138, 68, 86, 2, 52, 121, 232, 96, 100, 207, 238, 219,
-64, 197, 162, 8, 97, 144, 89, 121, 66, 146, 166, 233, 7, 145, 217, 223,
-51, 254, 128, 1, 211, 1, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
-48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 99,
-108, 101, 97, 114, 116, 111, 109, 97, 114, 107, 10, 128, 3
-};
diff --git a/source/blender/editors/datafiles/CMakeLists.txt b/source/blender/editors/datafiles/CMakeLists.txt
index dc441c41664..ec20e2d3d09 100644
--- a/source/blender/editors/datafiles/CMakeLists.txt
+++ b/source/blender/editors/datafiles/CMakeLists.txt
@@ -28,61 +28,61 @@ set(INC_SYS
# blender and player
set(SRC
- Bfont.c
- bfont.ttf.c
+
)
+data_to_c_simple(../../../../release/datafiles/bfont.pfb SRC)
+data_to_c_simple(../../../../release/datafiles/bfont.ttf SRC)
+
if(WITH_BLENDER)
- # blender only
- list(APPEND SRC
- startup.blend.c
- bmonofont.ttf.c
- )
+ # blender only (not player)
+ data_to_c_simple(../../../../release/datafiles/bmonofont.ttf SRC)
if(NOT WITH_HEADLESS)
# blender UI only
- list(APPEND SRC
- # blends
- preview.blend.c
- # images
- splash.png.c
- blender_icons.png.c
+ # blends
+ data_to_c_simple(../../../../release/datafiles/preview.blend SRC)
- # brushes
- add.png.c
- blob.png.c
- blur.png.c
- clay.png.c
- clone.png.c
- crease.png.c
- darken.png.c
- draw.png.c
- fill.png.c
- flatten.png.c
- grab.png.c
- inflate.png.c
- layer.png.c
- lighten.png.c
- mask.png.c
- mix.png.c
- multiply.png.c
- nudge.png.c
- pinch.png.c
- prvicons.c
- scrape.png.c
- smear.png.c
- smooth.png.c
- snake_hook.png.c
- soften.png.c
- claystrips.png.c
- subtract.png.c
- texdraw.png.c
- thumb.png.c
- twist.png.c
- vertexdraw.png.c
- )
+ # images
+ data_to_c_simple(../../../../release/datafiles/splash.png SRC)
+ data_to_c_simple(../../../../release/datafiles/blender_icons.png SRC)
+ data_to_c_simple(../../../../release/datafiles/prvicons.png SRC)
+
+ # brushes
+ data_to_c_simple(../../../../release/datafiles/brushicons/add.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/blob.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/blur.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/clay.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/claystrips.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/clone.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/crease.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/darken.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/draw.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/fill.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/flatten.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/grab.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/inflate.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/layer.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/lighten.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/mask.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/mix.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/multiply.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/nudge.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/pinch.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/scrape.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/smear.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/smooth.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/snake_hook.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/soften.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/subtract.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/texdraw.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/thumb.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/twist.png SRC)
+ data_to_c_simple(../../../../release/datafiles/brushicons/vertexdraw.png SRC)
endif()
+
+ data_to_c_simple(../../../../release/datafiles/startup.blend SRC)
endif()
blender_add_lib(bf_editor_datafiles "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/source/blender/editors/datafiles/SConscript b/source/blender/editors/datafiles/SConscript
index 0cbeb96ffdb..e0816f783d3 100644
--- a/source/blender/editors/datafiles/SConscript
+++ b/source/blender/editors/datafiles/SConscript
@@ -1,9 +1,55 @@
#!/usr/bin/python
Import ('env')
-sources = env.Glob('*.c')
+# all source generated now
+# sources = env.Glob('*.c')
+sources = []
+incs = ""
-incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
-incs += ' ../../bmesh #/intern/guardedalloc'
+# generated data files
+import os
+sources.extend((
+ os.path.join(env['DATA_SOURCES'], "bfont.pfb.c"),
+ os.path.join(env['DATA_SOURCES'], "bfont.ttf.c"),
+ os.path.join(env['DATA_SOURCES'], "bmonofont.ttf.c"),
+
+ os.path.join(env['DATA_SOURCES'], "splash.png.c"),
+ os.path.join(env['DATA_SOURCES'], "blender_icons.png.c"),
+ os.path.join(env['DATA_SOURCES'], "prvicons.png.c"),
+
+ os.path.join(env['DATA_SOURCES'], "startup.blend.c"),
+ os.path.join(env['DATA_SOURCES'], "preview.blend.c"),
+
+ os.path.join(env['DATA_SOURCES'], "add.png.c"),
+ os.path.join(env['DATA_SOURCES'], "blob.png.c"),
+ os.path.join(env['DATA_SOURCES'], "blur.png.c"),
+ os.path.join(env['DATA_SOURCES'], "clay.png.c"),
+ os.path.join(env['DATA_SOURCES'], "claystrips.png.c"),
+ os.path.join(env['DATA_SOURCES'], "clone.png.c"),
+ os.path.join(env['DATA_SOURCES'], "crease.png.c"),
+ os.path.join(env['DATA_SOURCES'], "darken.png.c"),
+ os.path.join(env['DATA_SOURCES'], "draw.png.c"),
+ os.path.join(env['DATA_SOURCES'], "fill.png.c"),
+ os.path.join(env['DATA_SOURCES'], "flatten.png.c"),
+ os.path.join(env['DATA_SOURCES'], "grab.png.c"),
+ os.path.join(env['DATA_SOURCES'], "inflate.png.c"),
+ os.path.join(env['DATA_SOURCES'], "layer.png.c"),
+ os.path.join(env['DATA_SOURCES'], "lighten.png.c"),
+ os.path.join(env['DATA_SOURCES'], "mask.png.c"),
+ os.path.join(env['DATA_SOURCES'], "mix.png.c"),
+ os.path.join(env['DATA_SOURCES'], "multiply.png.c"),
+ os.path.join(env['DATA_SOURCES'], "nudge.png.c"),
+ os.path.join(env['DATA_SOURCES'], "pinch.png.c"),
+ os.path.join(env['DATA_SOURCES'], "scrape.png.c"),
+ os.path.join(env['DATA_SOURCES'], "smear.png.c"),
+ os.path.join(env['DATA_SOURCES'], "smooth.png.c"),
+ os.path.join(env['DATA_SOURCES'], "snake_hook.png.c"),
+ os.path.join(env['DATA_SOURCES'], "soften.png.c"),
+ os.path.join(env['DATA_SOURCES'], "subtract.png.c"),
+ os.path.join(env['DATA_SOURCES'], "texdraw.png.c"),
+ os.path.join(env['DATA_SOURCES'], "thumb.png.c"),
+ os.path.join(env['DATA_SOURCES'], "twist.png.c"),
+ os.path.join(env['DATA_SOURCES'], "vertexdraw.png.c"),
+ ))
env.BlenderLib ( 'bf_editor_datafiles', sources, Split(incs), [], libtype=['core', 'player'], priority=[235, 30] )
diff --git a/source/blender/editors/datafiles/add.png.c b/source/blender/editors/datafiles/add.png.c
deleted file mode 100644
index c8c54411f20..00000000000
--- a/source/blender/editors/datafiles/add.png.c
+++ /dev/null
@@ -1,352 +0,0 @@
-/** \file blender/editors/datafiles/add.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <add_png> */
-
-int datatoc_add_png_size= 10948;
-char datatoc_add_png[]= {
-137, 80, 78, 71,
- 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0,
- 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0,
- 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 21,
- 0, 4, 16,211, 77, 59, 52, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,125,105,176,101,215, 85,222,183,214,222,231, 78,111,236,
- 89,173,150,212,106, 13,142,109,217, 42, 75, 88,146, 13,100,168, 96, 82,137,193, 21,160, 10,170, 66,146, 34, 4, 39,228, 15, 14,
- 96, 18, 6, 67,126, 4, 3, 1, 50, 48, 21, 73, 5, 59, 33, 9, 25, 42, 16, 42, 78, 17, 98, 82, 41, 59,196, 56, 56, 8, 99,199,
-150,236,182, 36,203,150,228,158,251,117,191,233, 14,231,156,189,215,151, 31,123,239,115,238,123,221,158,130,147, 74,170,124, 95,
-119,191,247,238,187,239,220,125,214, 94,123, 13,223,250,214,106,224,139,125,220,113,250,244,185,115,247,221,250,188, 0,248,254,
- 31,248,161, 24,131, 0,170, 42,170,222,251,202,123, 95, 85,111,251,161, 31, 76, 47,210,183,252,245,239,158,205,166,117,189,104,
-154,166,110,154,166,169,253,112, 99,178,113,230,232,169,151,191,231, 35,225,244,233,211, 0,220, 35,143, 62, 98, 49, 90, 52,130,
- 52,251,227,127,246,167, 78,223,255,213,247,156,123,228,196,157, 47, 23,234, 29, 71,226,251,222,247,219,126,107,123,254,212,115,
-179,189,121, 20,209,111,253,182,183,135, 48, 24, 58,152, 1,176, 64,157, 77,119,223,246,182, 31,118, 55,195, 61,117, 27, 73,130,
-220,188,231,205, 23,175,187,205, 85, 12, 42,134, 40,159,250,216,111,221,188,250, 73,146,222, 44,170, 40, 32, 4, 84,170,233, 12,
-239,255,176,221,123,234, 74,181,248,175,151, 62,253, 1,231, 28, 72, 15,154,145, 34, 2, 8,136,214,236,211,159,248,245,255,252,
-107,255,250,206,227,227, 71, 94,190, 62, 24, 16,132,103, 52, 81, 16, 2, 72, 61,223, 57,255,225, 95,220,186,248,187,226,252,197,
-171,243, 75, 91,245, 3,119,175,190,234,254, 53, 57,113,223,215, 8, 28, 20, 66,161, 42, 40,170, 16, 56,113, 78, 68, 69, 20,234,
- 61,141,148,136, 40,170, 2, 3, 4,164, 2, 6, 2, 0, 69, 28,236, 11,218, 46,215,125, 53, 30, 79,238,190,251,110, 85,153,207,
-231,135,247,238,209, 71, 31,253,154, 55,124, 45, 73, 21, 17, 85,231, 92,218,184,119,191,251,221,239,255,157,247,229, 23,189,229,
- 45,127,157,160, 64, 84, 85, 84,198,227,245,213,141,147,147,149,245, 83,119,189,252,158,251, 95,253, 85,175, 26, 2,112,143, 60,
-242,168, 69, 51, 26,201,251, 94,245,117,175,120,236,219,239,186,239,177, 59,239,121,120,178,113,186,165,190,236,174,193,123,223,
-251, 30,127,254, 83,187,207,125,102, 33, 34,163,225,228,117,127,230, 13, 52,177, 8,243,160,241,230,229, 79, 54, 77,243,246, 31,
-251,113, 87,251,115, 0,204,120,226,174,175,190, 25,159,104, 27, 28, 89,103,164, 52,139,217,147,239,253, 5,198, 96,164, 55,152,
-154, 1, 58, 24, 29,179,136, 79, 93,224,222,180,190,115,245,169,203,159,252, 15,161,153, 58,239, 8,120,154, 17, 2,177, 24, 23,
-102,156, 45,174,255,199,255,242, 99,237,236,194,227,175, 62,114,108,115, 64, 18,132, 91, 57,122, 31, 64, 2, 2,189,243,236,215,
-190,255, 63,254,197,122,113, 35, 26, 63,115,185,249,204,213,250,212,209, 65, 85,137,156, 56,247, 6, 81,133, 40, 0, 17, 8, 20,
- 42, 16, 39,112,162,206,169,131,122,111, 48, 37, 37,237,148, 10,104, 2, 17, 85, 32, 10, 64,136,210,240,165,122,200,242, 55,223,
-253, 61,223,187, 50, 89, 73,155,148, 62, 68, 69, 69,213,169,136, 56,117, 63,247,115, 63,115,229,202,149,219, 95,232,251,254,198,
-223,140, 22, 65,192,152, 46, 43,128,168, 8, 84, 84, 0, 81, 39,170, 78, 68,156,115,170,234,212, 57,239,238,184,251,143,124,199,
- 95,252,166,229, 11,249,217,108, 6, 48,105, 42, 0, 89,122, 64,112,230,220,227,103,206, 61,177,190,121,167, 27, 14,213,169, 8,
- 84, 33,130,129,226, 61,255, 51,126,224, 55,255,222, 63,253,167,239,120,246,153,103, 0,248,182,105, 0, 24, 89, 55,220,155, 5,
-163,172,140,221,230,170, 63,125,246,177, 87, 62,246, 23, 40,131, 74, 12, 34, 98,112, 10,167, 0, 1,195, 60, 64, 25,230,179,253,
-111,253,214, 63,239,156,251, 91, 63,242,195,114,239,195,223, 20,141, 49,166,155, 18, 0, 80,217, 60,254,138, 71,190,242,173, 43,
-235,155, 15,158,193,233,227, 24, 13, 81, 85,112,142,170, 20, 65,160, 50, 54, 79,125,224,151,119,174,127, 90, 85, 85,213, 85,222,
-215,139, 0, 33, 68, 8, 81, 18,170,136, 92,221,120,144,178,177,179,135,143, 60,139,103, 94,224,177, 13,156, 62,137,163, 27, 24,
- 86, 97,177,127,241,250,165,167,174, 94,248, 72, 61,219, 18, 73,215,209,104,230,137, 8, 18,166, 20, 82, 20, 22, 0,241, 85,213,
- 26, 68,208, 68,216,220,118,119,247, 62,250,244,139, 97,250, 84,213,124,248,232,202,238,104,232, 42,175,233,240,165, 19,168,102,
-158, 22, 64,133, 70, 82,200, 0, 81,192,102,123,151, 53,134,232, 42, 52,219,207, 62,253,207,175, 93,252,189,182,153,138,138, 64,
- 68,100, 60,242,247,220, 49, 58,123,122, 60,172,156, 79, 87, 84,147, 19,247,127,109,210,105,166, 79,162, 36,171,193,218,107,254,
-232,223,190,252,194,123, 46,126,234,221,100,164,136, 66, 8, 21, 85, 16, 34, 34,234,146, 64, 69,116,117,226,143,110, 14,229,216,
-185, 63,153,222, 39, 61, 11, 2,233,197, 40, 90, 85,126, 6, 81,161, 64, 53,153, 85, 17, 21, 1,161,170, 42,162,158,180,164,201,
- 16, 5, 13, 2,154,168, 16, 0, 1, 80,168,162, 4, 52, 25, 70, 5, 35,160, 2, 37, 12, 20, 17,210, 64, 37,254,159,123,200,109,
-159, 61,114,228,200,230,230, 17, 0,117,189,216,222,222,158,205,102, 95,196,133, 30,120,240,193,111,254,230,111, 41,146, 45,194,
- 23, 85,167,170,234,156,219,222,222,249,233,159,250, 59,159,235, 66, 63,240,131, 63,100,209,152,236, 97, 62,253,154, 54,166,168,
-174,186,116, 49,117,190,242,223,255, 55,255,198,109, 46,244,189,111,253, 62, 48,125,164, 93,146,180,177,146,118, 82,156,168, 56,
-167, 34,234, 92, 54, 36,199, 78,221,251,220,179,231,255,254, 79,253,232, 1, 51, 18, 66, 32,211,230,177, 51, 35,148,178, 34,225,
-120,180, 49, 24,173, 15,135,227,106, 48, 28, 12, 87, 54,143,223,117,242,238,135, 30,126,253,183,188,238,143,253,233,111,249,250,
-175, 58,112, 33,176,215,130,180, 24, 17, 19, 72, 53, 24,223,113,246, 43,238, 58,247,186,245,163,167,225,156, 83,168, 2,130,129,
- 99, 19,208,182,250, 19, 63,249,211, 63,248,253,249, 54,213, 98,180,238, 65,163,145, 70,154, 13,199, 71,239,123,213,215, 63,240,
-170,111, 24,174,159,137,116, 21,224, 4, 78,160,102,102, 98, 68,136,140,193,126,226, 39,126, 50, 95, 40,198, 24, 45,206, 23,237,
-229,235,243, 11, 87, 22, 91,219,139, 69, 29,134,147, 19,167,206, 62,118,242,206,199, 91,243, 98, 16,210, 8,164, 63,208, 38,128,
-193, 98, 91, 55,245,172,105,155,239,122,203, 91, 0,248,237,253,230,217, 23, 23, 91,219,109,150, 16,164, 26, 84,175,124,232,145,
-245,179,175,174,131, 31, 42, 65, 33, 97,132, 18,102, 70,192,168,211,157,171,251,123, 91,102,134, 16,142, 31, 59, 46, 16, 55,211,
-251,246,102,193,146,152,104, 36, 71,147,211,227,205,135,109,240,138,107,187, 67,175, 50, 25,193,105,138, 67,140,144, 96, 26, 67,
-123,225,249, 15, 92,191,116, 62, 52, 57,158,248,218, 63,245,167,124,221,196,100, 65,178, 18, 9,170,225,134,175,142,182, 54,218,
-222,197,179, 1,251, 51,220,119, 23, 38, 35,163, 83, 21, 32, 46, 46,191,248,228,245,139, 31,155, 79,111, 0, 36, 9,145,166,105,
- 60,152,124,168, 20,101,132,243, 99, 87,141, 20, 46, 68,236,207,112,225, 42, 99,196,217, 51,178,178,130,122,255,194,214,165,167,
-182, 46, 63, 61,223,187,102,108, 85, 20, 10,132, 0,194, 27,163, 64, 4, 4, 5, 74,163, 40, 28,225, 73, 1, 97,134,233, 28, 47,
- 94, 65, 27,246, 55,171, 23,226,252,252,214,165,167,235,197, 54, 72, 85,161, 48,235, 49,130,151,164,208, 16, 8, 65,228, 59, 36,
- 90,131, 10, 2,233,197,246,119,111, 62,249,252, 83,110,250, 91,199, 87,110,140, 71,206, 59, 85,167, 52,117, 74, 51, 75,247,225,
- 9,210, 40, 42, 66,128, 74, 53, 90, 3,182,149,176, 37,196,108, 49,191,254,226,179,239,186,240,252,187, 69,244,196,145,193,253,
-119, 77, 54, 86,171, 65, 69,117, 4,161, 76,199,158,158,102,162, 10, 50,203,137,108,154,253,182,157,134, 24, 1,105, 23,215, 63,
-249,244, 59,175, 94,248, 61,136, 8,237,218,141,102,119, 22,239, 60, 62, 60,115, 98,180,182,234, 7, 30,128, 66, 4, 48,183,114,
-244,126, 66,178,149, 78,113,163, 27, 78, 86,206,172,172,157,141, 97,122,254,195, 63,183,117,241,131, 0,132, 76,193,109,136,182,
-179, 27,175,108,135,237,189,208, 4,142, 6,234,157, 64,196,173, 28,185, 63,199,171,229, 82, 49,214,195,241, 49, 17,119,225,249,
-119, 93,187,240, 1, 64, 36,187,152,162,179, 96, 12,220,155,199,171, 55,154, 79, 95,170, 47, 92,107,182,247,131,156,184,239, 13,
- 57,134,129,230,112, 38,219,169,180, 1, 34,162,201, 14,228,119,234,188, 8, 20,146,194, 45,167, 42, 30, 36,146, 34,137, 37,255,
-195,226,125,196, 8, 65,242, 17, 36,144,162, 58,146, 20, 8,169, 76,254, 8, 74, 3,148,176,180,237,204,102,137, 66,136, 17, 52,
- 19,144, 20,208,104, 0, 73, 3,105, 32,196, 0,136,129,217, 92, 80, 8, 37, 1,210,104, 4, 65, 51, 3, 97, 16, 2, 16, 90,122,
-131,178,140,178,120, 67, 54, 5,146,226,206,178,134, 47, 63,190,120, 63,219, 61,238,187,239,254, 87,190,242,149,231,238,191,255,
-232,145, 35,253,179,204,167, 64, 82,240,156, 63,233,246,246,246, 51,207,124,226,163, 31,253,200, 39, 63,249,201, 47,205,130, 86,
- 87, 87,191,249,155,191,229,244,233, 59,205,146, 42,160, 56, 59,233, 34, 37,148,232, 74, 14, 69,210, 82,220, 88,114,206,162, 16,
-248,170,250,181,127,251,111,127,255,247,159,252,194,149, 67,222,244,166, 55,189,242,149, 15,153,145,232, 60,255,129,223,150, 18,
-196,247,139,232,226,250,195, 75, 74, 9, 71,191,172,178, 80, 85,167, 43,235, 39,254,193,223,253, 59,159,122,254,153,207,179,160,
-239,254,158,183, 34, 45,228,150,165,148,247,197,210,199,129,213,164,229, 12,134, 19, 85,117,126,172,206, 57,231,157,115,170,206,
- 57,175,170,174, 26,170,115, 43,235, 39,156,115, 39, 78, 63, 56, 24,142, 4, 6,132, 55,253,137,151,205,166,123,183, 93,144,143,
-161, 45,139,232,147,154,165,213, 8, 15, 44,168,223, 60,167,213,198,209,179,206, 87, 71, 78, 62,224,253, 96, 60,217,116,110, 32,
- 94, 83, 4,146,164,227,156, 83, 21,231,135,170, 58,158,172,169, 83, 21,138,226,151,126,229,183, 62,243,204,127,255,165,119,252,
-227,231,158, 61, 44, 48, 31, 98,196,109, 55, 56, 25,199,108, 20,187, 64, 91, 4,244,131,201,218,230, 25, 95,141, 79,221,253,136,
-211,106,178,121,198, 59, 55, 24,173,164,183, 87,133, 38,169, 74,231, 0,146,143, 17, 51, 4,144,145,209,208,198,248,237,223,254,
-151, 85,229, 31,253,195, 95,124,225,133, 23,150, 37, 20,150, 78, 79, 94, 90, 8,121, 65, 16,120,167, 16,120,149,116,175,222, 15,
- 39,171,167, 78,223,251,122,239,135,155,199, 95,238,188, 2, 74, 5, 4, 70, 56, 64,144,194, 60, 40, 64,129, 2,102, 76,246, 26,
-150, 64, 16,198,104,161, 13, 34, 20,240,205,127,229,175, 14,170,193,247,151, 64,205,183, 33, 2,136, 70, 35, 44,178,137, 96,228,
-116, 30, 9,152, 1, 34,163,129,170,202,100,164,222,235,198,209, 59,215,142,223,187,178,126,199,230,137,215,136, 32,194,153,137,
- 23, 83,235, 82, 15, 73,150, 88, 0, 19,106, 74,237, 69, 65, 52,145, 16,145,216, 2, 49, 54,139,208, 46, 58,221, 55,179,183,191,
-253,199,127,229, 87,254,197,249,243, 31,247,219,187, 45,193,235,219, 97,119, 63, 44, 90,219,159,197,164,174,201, 7, 82,147, 83,
- 98, 85,141,212,185,151,189,226,212, 67,167, 94, 15,142,230, 11,167, 34,195, 17,132,160,106,114, 95,138,130,252, 48,237,151, 88,
-142, 67,210,135, 0,220,223,185,210,212,123,251,123, 91, 49,198,124, 36,105,102, 74,229,159,251,115,223,250,219,191,253, 94,255,
-129,167,183, 51,144, 84,206, 15, 13,132, 37,127,156, 86, 3, 96, 56, 57, 85,141,214,107,220,121,225,250,113, 85,255,194,150, 12,
- 42,220,127, 26,206,225,142, 99,240, 30,222,193, 57,164, 32,201, 72, 65,167, 67,140, 80,128,136, 45,192,139,159,250,240,246,214,
-167,218,122, 63,198,168,170, 49, 71,242, 76,136,211, 31,253, 99,127, 60,185,233,172, 1, 2,100,208, 68,138, 78, 37,125,166, 12,
-134,155,147,213, 83,163,209, 49, 87,173,136, 72,221,178,105,229,233,231,161,138,203,215,225, 60,238, 61,141,149, 49,134, 21,171,
- 10, 34,160,118, 7,146, 8, 83, 51,123,233,217,247,212,245,206,206,245, 23,234,197, 78,202, 83, 73,150,228,162,124,147, 0,191,
- 44,161, 18,173, 80,141,121,203,160, 70, 10, 4,166,110,236,171, 53,232, 80, 68, 73, 41,201, 10, 72, 92,189, 97, 34,114,115, 7,
-170, 56,115, 10,199,143,200,112,128,149, 9, 24,102,123,219,207, 89,187,120,233,185,247,153,181,139,253,235,198, 40, 20, 81, 80,
-114,198,164,162,233,254, 37,137,136,244, 37,234,200, 65,184,136,128, 2,152,164, 80, 68, 4,176,228,187, 72,141,166,173,165,165,
- 3,130,198,160,128, 87, 5, 56,171, 65,193, 71,207, 95,139,205, 46,218,231,221,226,127, 56,109, 55, 7,215,147, 65,202,217, 99,
-178, 6, 68, 74,248, 21,106, 26,147,173, 19, 32,237,157, 55, 82,200,236, 26, 8,100,156, 82, 82, 92, 45, 72,103,147, 22, 27,179,
-133, 67,235, 64, 64, 98,222,103,144,108,219, 25, 16,175, 92,248,157,122,190,117,243,234, 71,247,183, 63,157,246,222,123, 61,190,
- 81, 85, 78,206,158, 25,123, 39, 43, 35,239, 52,157, 18, 21,137, 16, 5, 98, 62, 53, 42, 18, 41, 34, 84,241,194, 20,149,167, 79,
- 34,198, 2, 58,228,141, 33, 1, 97,211,238,235,124,187,105,166, 22, 3, 68, 40, 94, 45,198, 48, 51,107, 94,122,246,215, 99, 59,
-189,113,237,163,109,189, 71,198, 28,124, 65,219, 54, 94,217, 50,136,220,216,107, 85,228,142, 99,195,170,146,227,155,131,241,200,
- 57,213,202,211, 68, 5, 17, 16,137,146,129, 22, 83, 79, 68, 50,137,199,178, 68,105,232, 16, 36,177,116, 84,218,197,142, 16,205,
- 98,187,105,230,206,185,170,242,117,179,247,233,243,255,198, 98,125,227,202, 7, 99,168, 99,108,242, 70,139, 26, 33, 18, 9, 53,
-163, 8,166,115, 3,100,209,152, 40, 46, 94,107,188,151,201,200,175, 77,220,104,224,142,109, 86, 78,101, 56,112,217,176, 43,124,
-138, 95,211, 46,229, 80, 62, 5,159,154,221, 91,138, 57,235,197,141,208, 76, 23,211,171,177,221, 90, 76,247,103,123,159,105,155,
-189,107, 23, 62, 96,108, 67,189, 7, 49, 64,133,100, 50,142, 0, 68, 73, 19,128, 84,139, 70, 21,107, 32, 64,219,182, 34,178,183,
- 31,174,123,245, 78, 94,188,234,156,200,120,232, 84,117,117,236,212,105,194,185, 41, 16, 49, 17, 49,152, 80,132,233, 19,132,198,
-180,139,177,217,143, 50,187,121,253,169, 24,235, 24,102,211,189, 75,180,166,153, 95,167, 20, 91, 69, 82, 41, 57, 78, 86,154,101,
-136, 22,150, 98,119,192, 8, 68, 83,161,197,168,104, 12, 16, 76,163, 2, 85,229, 68,100, 52,116, 78, 85, 78,156,251, 26, 72,246,
- 91,233, 48, 9, 20,146, 48, 85, 73,199, 95,179,237, 77,175, 73, 18, 45,128, 41,132, 40,160,151, 16, 84, 42, 21,233,137, 37,212,
- 48,199, 14,154, 3,154,156,123,101,159, 39, 76,249,139, 0,226,139, 62, 51,191,187, 8,203, 57,207,239, 70, 80, 4,232,173,143,
- 73,246,222, 72, 91,157,206, 5,169, 37,107, 49, 88, 74, 34, 4,106, 57,235, 80, 1,204, 44,103,165, 5,181,235,238,156,164, 0,
- 84,120, 36, 88, 78, 37,225, 10, 98, 38,157, 23, 1, 45,131,136,217,152,102,153,164,200, 41,235, 61,192, 4,229, 41, 59, 47,150,
-180, 79,146,102,102, 11,151, 19,187,188,199, 2, 24, 69, 4, 41,223, 53,129, 82, 83,154,150, 12,145, 17,100, 78,160,146,203, 32,
-251,147, 15, 34,133, 3,164,229, 56,151, 57,218, 39, 65,163, 0, 52,144,201,138,166, 31, 10, 97, 52, 8, 96,197,240, 3,128,209,
- 74,120,154,227, 29,230, 61,226,109, 34,196, 47, 63,190,252,248, 82,103,174,125,236, 93,249,201,120, 50, 24, 12, 70,163,113, 85,
- 85,200,161,119,187, 88,212,117,189,152, 78,167, 49, 85, 61,254,143, 46,168,170,170,215,188,230,145,151,191,226, 21,103,239, 57,
-235,124,169, 56, 82,160,249,156, 73, 42, 91,136,168, 42,201,231,159,127,254,227, 31,123,250,131, 31,252, 96,211, 52, 95,226, 5,
-125,221,215,191,233,161,135, 30,170,124,197, 14, 55, 94, 42,250, 28,202, 28,187, 12, 31,128,115, 78, 84,154,166,249,208, 31,252,
-193,187,222,245,239,255, 80, 11,242,222, 63,244,208, 67,111,124,227,215,177,139, 93, 75,209, 2, 75, 41,253,114,134,127, 48,179,
- 63,152,218,139,168,234,238,238,238,207,253,236,207, 76,167,211, 47,110, 65, 71,143, 30,125,227, 27,223,120,231,157,119, 37,204,
-104, 41,154, 94,122,209,114, 98,191,244,239,103, 93, 83,138, 78, 1,231,221,213, 43, 87,254,217, 47,255,242,141, 27, 55,190,160,
- 5,125,215,119,125,215,120,188, 82,204,231,225, 12,191,207,228,251, 36,122, 89, 74, 5,237,211,146,172,246, 0,195,242,102,202,
-104,188,246,210,133, 75, 63,243,119,127,236,243, 46, 72, 7,195, 81, 8,193,204,130,133, 37,100, 63,255, 49, 51, 35,105, 70, 99,
-164,145,100,122, 38,166,111,141, 22,105,102, 49, 50, 65,124, 49,129,124,229, 58, 76,215, 33,193,135, 30,126,244,157,255,226,215,
-215,214, 54, 62,207,113,142, 49,230, 13,226,109,138,196,203, 91, 3,129, 45,107,181,193, 32,206, 87,174, 26,169, 58, 95,141, 84,
-213,251, 1, 84, 42,239, 5,206, 13, 42, 85, 55, 28,175, 15, 71,171,163,201,198,177, 83,103,157,226, 93,239,125,238, 95,253,242,
-207,190,227, 23,222,254, 89,233, 3,143, 63,241, 4,139, 63, 5,187,130, 4, 75, 56,125,232, 28,242,208,151,170, 78,157, 23,113,
-234,135,162,206,249,129,170, 83, 55, 80,231,156, 31, 57, 87, 13, 70,107,195,241,218,112,188, 62,222, 56, 45,213,104, 88,141, 30,
-126,244,137,141,113,252,192,239,190,255,246, 18,162, 25, 59,160,238,224, 59, 38,188, 33,199, 17, 7, 87, 69,216,234,250,233,225,
-202,198,120,229,232,218,198,105,239,134,163,149, 77, 17,129,115, 34,112, 78, 1,120,231, 68, 68,125,165,190,170,188,247,162, 66,
-154, 32,154,222,125,247,217, 31,251,241,159,232,104, 44, 7,183,204, 12,183, 71,170,208,233,109, 31,195, 44,217, 34, 63, 92, 25,
-142, 54, 39,107, 39,215,143,220,235,252, 96,188,118, 76, 21, 16, 39,154,147,232, 92, 50, 75,166, 52, 33, 16, 34, 77,164, 69, 49,
- 82,196,253,232,143,190,253, 71,126,228,135, 15, 43, 53,115, 97,234,115, 62, 82,157,175,188,106,117,243,174,205,227,247,111,158,
-120,112,243,196,203, 86,214,239,210,106, 85,252, 4, 76, 81, 39, 4, 80, 32, 7,164,217,180, 51,193,220,209, 64,131, 89, 73,223,
- 85,127,224, 7,127,232,150, 5,125,182,245,116,133,194,172, 98,236, 10,135, 27,199,206, 30,187,227, 21,199, 78, 62,116,252,142,
- 87,175, 31,185,183, 26,109, 86,195, 21,131, 26, 84, 65, 39, 80,129, 10, 28,224, 4, 10,168,229,122,140,177,160, 17,150, 47,186,
-182,186,246, 29,111,254, 43, 7, 22,100, 75,143, 24, 99,176, 88, 55,113, 81,199, 69, 29,230,139,176,168, 99,211, 90,104, 99, 58,
-236, 85, 53,169,134,171,131,209,230,112,180,233,170, 1, 68, 82,222,107,214, 85, 57,229, 22,189,135, 9,152,194,225,180, 22,163,
- 89,136,161,181,104,209,226,185,123,207,189,246,181,143, 45, 41,117,175, 61,108, 3, 9, 76,103,201, 34,129, 20,239, 48, 28, 58,
-175,178, 58, 1,225,215,142,157,115,110,120,252,244,171,135,163, 99,162,174, 53,117, 66, 7, 10,160,204,137, 89, 78, 77,150, 52,
- 49,249,226, 54, 37, 14, 22, 17, 99,104,219, 16,154,196, 56, 50,197, 55,126,211, 55,125,236, 99, 79,167,170,179,134,104, 33,218,
-188,137,243,133, 77, 23,113, 54,143,243, 38, 46, 22,182,168,109, 81,219,188,177,249,194,102,139, 56,157,219,108,193,104,131,136,
- 65,104,157,153, 68, 75, 80, 80, 65,147,123, 80,185,132,218, 25,140, 65, 9,208,211, 86,197, 16, 67, 46,167, 38, 43,107, 22, 66,
-248,158,239,125,107,150,208,254, 60,132,192, 23, 46,215,102,216,222,109,131, 45, 25,196, 46,155, 18,169,170,209,112, 40,235,247,
-190,102, 60, 88,105,184,234,163,175, 64, 87, 28, 72,183, 77,180,164,217, 64, 70, 77,178,127, 38,197, 32,140, 97,122,243, 66, 8,
-243, 24, 3,141, 80, 51, 40,205,156,234,112, 56,124,236,177,199,159,124,242,247,180,109,173, 13, 22, 35, 99,140,145,185,188, 67,
- 35, 99, 49,254,201, 49, 16, 70,196,232, 98,240, 77,171, 33, 32,152,152,193, 44,171,170, 49,229, 29,146, 21,214, 16, 13,102, 98,
- 6, 26,104,128, 49, 70,134,216,132,208, 46,185, 40,163,101,162,213, 55,124,227, 55,138,136, 91,248,251,175,220,104,166,243, 56,
-175, 45,153, 36,233,242,167,146, 87,169, 27,172,110,220, 83,141,142,143,143,125,229,188, 93,223,218, 31, 93,220,146,182,149,166,
- 69,140, 24, 84, 41, 77, 77,208,113,170,133, 25, 75,213, 51, 66, 34,148, 70,139,161,153,109,127,234,227,239,217,222,122,169,158,
-222,204, 64, 66,249, 75,128,198,245,141,117, 95,183,177, 0,246,121,135,204,172, 56,243,156,183, 2,132,122,168,143,166, 49,184,
-166, 17,117,210,182,104, 67, 18, 3, 0,152,101,208, 51, 49,124, 36,149,254,200, 92, 94, 51,130,140,209,154,122, 78, 11,145, 38,
- 36, 12, 16,131, 10, 75,186,248,216, 99,143,251,162,114,249,192, 22,220, 74,129,156,221, 2, 16,245,163,209, 49, 95,141, 85, 39,
-168, 70,173,137, 24, 46,223,192,214, 46, 86,134,216, 88,195,120,136,211,199,161, 14,195,129,169,193, 84, 53,221, 14, 4,214,210,
-218,197,108,235,218,165,167,219,118, 58,221,189, 2,144, 22, 9,168,104, 90, 47,149,206,204, 68, 99,140, 62, 21,244,216,131,122,
- 9,143, 77,242,180, 92,111, 37,157, 31,168, 31,168, 58, 39, 26, 76, 33,104, 26,180, 45, 96,112, 14,102, 8, 17, 46,165,175, 10,
-102, 16, 69,146,232, 24,217,180,139,217,222,181,182,157,183,237, 66, 74, 93,192,204, 50,222, 96, 48, 85,129,137,137,207,105,111,
-138, 44, 88, 96, 4, 90, 23, 70,103,200, 88,134, 34, 35,129,130, 78,164,175,139, 52,129,187,251, 88,212, 32, 81,121,156, 62, 41,
-206, 97, 52,130, 87,169,231,215, 44, 54,211,221, 75,179,189,171, 77,189,189,189,245, 18, 45,118, 73, 62,151,172,167, 40,105, 6,
- 17,138,248, 68, 70,147, 34,162,132,100, 88,190, 59, 74, 10, 5, 68,170,106,160, 90, 37,168,205,172, 3, 88,208, 6,180, 1,139,
- 6,117,131,225,128,235,235, 90, 85, 24, 84,136, 64, 61,223, 13,237,254,246,245,231,183,175, 63,111,113,177,152,109,119, 64,166,
-230, 90,112,151,238, 51,107, 94, 66, 97, 19,170,144,236, 9, 65,201,203,201, 43, 75, 74,150, 23, 81,200, 3,198,254,130, 34, 48,
-162,141,100,195, 75, 87,247,188,114,215, 93, 84, 13,113,254,162,112, 54,221,189,218,212, 51,179, 96,198, 4, 18, 74,194, 9,173,
-184, 95, 65, 18, 79,170, 49,248, 4, 83,128,160, 24,165, 64,190, 48,228, 50,119,137,217,168, 6,137,233,204, 8,132,136, 9, 42,
- 83,113, 68, 20,180, 45,208,196,235,215,174,198,216, 14,230,191,137, 56, 93, 31,222, 24,250, 6, 61, 28,156,240,164, 2, 53,241,
-150,192,143, 36,233, 83,169, 61, 31,251,140, 46,177,104, 36, 19,140, 9,163,106, 76,112, 93, 86,174,206, 51,208, 32,134, 16, 67,
-179, 71,107,247,247, 46, 34, 54,139,197, 84, 57,115,177,105,125,168,188,122,167,162, 41,106, 19,130,122,112, 29, 90,236, 16,204,
- 50,253, 51, 45,158,146,228, 83, 32,106, 88, 78, 41, 72,192, 98,104, 69,156, 35, 61,208,230, 3, 9, 5,132,161, 14,117, 91,111,
- 93,189,240, 59,161,157, 93,126,225,189,102, 49,173,247,232,134, 31, 84,122,226,232,224,216,122,229,189,142, 71, 9,159,147,140,
-136, 21,227,146,149, 89, 85, 0,152,249,124, 54,153,128, 55,233,160,188, 36, 48, 19, 75, 44, 60, 50, 50, 43, 56,197, 18,202, 72,
-130, 33,180, 22,103,109, 59, 11,205, 44,196,133,197,152,113,102, 97, 48,186,104,109,107, 77, 48, 18,222, 65, 68,124,166, 70,106,
-210, 88,201,136,161,116, 4, 45, 15, 2, 89,141, 37,235,119, 66, 62, 37,147, 45, 40, 52,139, 77,189,107, 22, 34, 91,137, 21,212,
- 9,148, 97, 65,134,221,155, 31,191,118,225,119,219,102,247,198,213,167, 4, 52, 11, 29,203, 99,103, 47,136, 96,103, 26, 63,115,
-181, 30,143,220,137,205,170,242,122,234,216, 80, 5,131, 10, 48, 45, 66,234,107,171, 98,230,151,162,233,132,188, 41, 18, 66,151,
-115,231, 84,242, 50, 24, 97,153,225,196, 84, 14,161,129,209, 98, 29,195, 52,182, 51,139, 11,136, 74, 34,110, 83,141, 6, 85, 49,
-137,209, 90,145, 42, 88, 8, 20,201,212,238,104, 84,137,170, 46,169, 98,178,166,132, 66,196, 23, 38, 34, 19,104, 42,146,128,116,
-208,164,212, 25, 64,139,139,197,117, 31, 38,117, 61,171, 6,234,117,226, 33, 23, 47,254,247,157, 27,159, 88, 76, 47,237,221,124,
- 46, 29,144,132,196, 38,142,135, 8, 64, 35, 52, 68, 68, 11, 77,171,211, 69,116,162, 87,182, 26, 85, 57,186, 81,121,213, 19, 71,
- 6,131,129, 86, 94,188, 71, 10,127, 65,250,172, 66, 20, 17, 73,168,107,222,221, 68,191,177, 12, 9,211, 90, 90, 16, 48, 25,113,
-131,180,205, 94, 51,223,106, 22,219, 49,204, 82, 70, 65, 41, 54, 44, 49, 79, 52, 99, 5,132,136, 89, 99, 42, 46, 66,232, 84, 87,
-198, 46, 56, 70, 51,139,160,115, 76,104, 41,212, 72,143, 84, 72,144,242, 9,128,149,114, 34,146, 73, 16, 48,204,167,215,188,159,
-182,245, 13,176,222,186,254, 33,182,139, 27, 87, 62,188,191,243,124, 12,141,145,154,252, 78,166,228,228,178,168, 21,168, 56, 21,
- 40,149,198,168,139,198, 20,188,178,213,136,224,230,110,171, 78, 71, 3,231,157, 12, 43, 55, 26, 58, 81,245, 89,201,243,121,202,
- 50,145,124,240,146, 73, 35, 45,134,118, 10, 32,196, 5, 90, 55,223,251, 76, 91,239, 46,102,151,155,197, 77,201, 97, 74,241, 60,
- 6,104,142, 65, 68,144, 76,138, 8,196,104, 42, 10,179, 32,166,108,231, 16,193,108,110, 20,140,134,206,171,140, 71,126,101, 76,
- 17,113,147, 35,247,149,178, 60,150, 73, 11, 37, 78,227, 82,118, 24, 73,206,118, 95,220,221,126,126, 49,189, 90,207,111, 48, 46,
- 58, 6, 45, 59, 32,160, 68,249,194,196,139, 44, 87,101, 49,212,217,104,119, 65,152,144, 8, 68,140,168, 91,200,137,251,222,144,
-209,245,194, 19,200, 16,124, 71, 33,101,103,151, 10, 96,149,173, 16, 1, 45,231,170,251,189, 30,173,201, 92,170, 62,248, 83, 1,
-168, 93,129, 35,195, 60,204, 5,198, 76, 76, 86,166,234, 69,114, 95,169,150,211, 69,176, 41, 89,205,108, 11, 36, 75,213,177,243,
-146,151, 76,108, 46,116, 55,159,171, 29,229, 56,119,136,127, 42, 77, 8,179,156, 96, 29,225, 36,139, 56,215,253, 82, 52, 85,172,
- 82,170,119,100,118,188, 24,122,139, 96, 93, 6,204,194, 32,131,165, 93, 74, 60,206,206,184, 49, 87, 94,146, 95, 68,255, 27,150,
-171, 55, 20,150,178,106,249,113,162,151, 9,193, 68,253, 43, 64,140,228, 60,220,186, 0,140,217, 36, 30,224,113,152,101, 12,150,
-137,251,128,190, 72,154, 3,153,174,240, 46, 69, 28,217, 75,148,242, 79,174, 46, 39,146, 91, 82,128,130,100,168,100, 1, 0, 29,
- 12,146, 10, 76, 61,220,201,206, 82,151,197,161,216,151, 84,149, 75,223, 10, 50,253, 52,253, 50,179,189,103,174, 48,230,186, 76,
-246, 71, 44, 53,154, 62,211, 37,105, 98, 90, 66, 88, 90,113,112, 76,219,151,235, 59,214, 99, 69,221,121, 98,146,145,100,134, 94,
- 33, 68,100, 33,116, 50, 74, 2,206, 94, 56, 29, 18, 90, 6, 28, 50, 22, 32,121,105,198, 82,142,211,156, 63, 37,241,166, 96,192,
-186, 69, 48,191, 43, 73, 24,186,194, 83, 86, 96, 74,103,138,211,161,204,203,183,162, 4, 37, 76, 65,170,219,178, 48,227,129, 82,
-223,203,188, 21, 17, 41,135, 84,147,208,243,153, 32, 4,102,217,246, 51, 7, 2,233,224,152, 88,206,174,242,206,101, 81, 33, 71,
- 76,233, 94,210, 55,233,188, 72,222, 56,150, 29, 78, 54,152, 57,241, 98,177, 69, 7,200,118, 95, 46,152,125,249,241,229,199,151,
- 31,255, 95,212, 91, 63,215, 37, 68, 86,215,214,214,215,214, 86, 86, 86, 55, 54, 55,142, 30, 57,186,177,185,185,177,190, 62, 89,
- 89, 93, 89, 25, 15, 6,195, 84,163, 90,170,228, 28, 40, 90,132, 16,230,243,217,238,222,238,222,222,254,213,171, 87,246,247,246,
-119,118,119,246,118,119,183,183,183,247,246,246,254,255, 19,208,100, 50,121,224,193,151,157, 57,115,230,212,201,147, 27, 27,155,
-147,149,137,247, 30,196,109, 13,190,244,248,210,161,226,201,193, 47, 58,114,235, 45,124,232, 16,194,108, 58,219,217,221,185,120,
-241,194, 51,159,248,196,179,207, 60, 19,190, 68,149,239, 47,153,128, 78,158, 60,249,200,163,143,190,234, 85, 15, 15,135, 3,178,
-143, 42, 62,255,117,115, 72,135, 37, 92,170,196,233, 57, 4,207,217, 74,142,141,229,128,164,138,188,164,212, 77,165, 64, 0,170,
-170, 47,190,248,194,127,125,239,123,207,159,255,184,153,253, 95, 21,208,234,234,234,169, 83,167, 94,253,234,135, 31,120,224,193,
-132,232,176, 43, 12, 47, 85, 82, 14,201, 72,110,171, 52, 34,135, 74,200, 75,223,222,194,161,191,245,223,131, 93,115,146,152, 89,
-178,204,132,204,181,248,155, 55,111,190,239,191,253,246,249,243,231,183,182,182,254,143, 8,232,228,201,147, 15, 61,244,208,185,
-115,231, 78,158, 58, 21,163, 37, 66,234, 65,161, 16,248, 92,106, 35,203, 6,105,201,210, 44, 63,127,192,248,224, 54,180,254,219,
-146, 1, 62,223,147, 9, 93, 99,162,251, 3,114,225,194,133, 15,126,240, 67, 79, 62,249,187,237, 31,130,230,113,224,214,222,246,
-182,183,213, 77,139,142,209,213,225,142, 75, 24,228, 23, 38,231,131,119,123,232,201,219,188,236, 16,109,227,115,168,210, 33,234,
-194,178,152,186,211, 7,136,168,234, 96,184,178,186,126,204, 15, 6,243,217,236, 55,127,227,223,255,167,223,248,245, 63,172,128,
-190,247,173,223,215, 17, 78,216, 17,220,110, 35,149, 91, 44,207,114,105,250,160, 92,150,158,188, 85,149, 14, 30,194,204,194,112,
- 29,123, 68, 83,123,112,106,149, 47, 60,141,130, 20,116, 56, 0,156,250,114, 1, 85,239,157,122, 17,129,202,104,180,182,118,228,
-184,247, 67, 81,161,153, 89,168,231,251,191,248,179, 63,253, 7,191,255,254,255, 61,107,229, 51, 29,234, 80,107,201,237,106,247,
- 60,100,177,114,203, 87,247,100,161, 96, 30,122, 29,115, 69,167, 35,157,151,242, 91, 78,246,212, 87,206, 15,146,125, 81,245,206,
- 15, 69, 93,146,139,115, 94,213,229,217, 2,234, 82, 99,118,254,166,170, 68,188, 0,206,185,193,104,109, 56, 94, 77,204,160,225,
-120,125,229,200,233,193, 96,156, 50,126, 21,170,224,231,255,217,159, 9,237,244, 55,126,237, 29,239,252,197,159,188,126,253,218,
- 23, 37, 32,247,196,227, 79,228,106,124, 79,142,228,173,162,225, 23, 96,226,229,214, 39,121,219,103,161,174,114,190, 82,173,212,
- 85,190,154, 12, 70,171,126, 48,241,213,200, 87,227,225,104,173, 26, 76,170,193,216, 15,198,213, 96,226,135, 19,239,199,190, 26,
-251,106, 84, 13, 39, 85, 53, 76, 47,115,213,196,251,161, 86, 67, 95, 13,171,225,138, 31,140, 85, 43,184,202, 87,227,193,104, 69,
-213,119,214, 34, 97, 51,109, 27,215, 87, 7,175,121,245, 31,121,237,107,191,226,242,165,203, 55,110,108,125,193, 26,116,144,238,
- 33,135,197, 33,183,149,143,116,172,216, 4, 93,201, 18,178, 86, 78,200,210,200,132,254, 87, 0,186,193,104,117,227,204,120,229,
-136, 58, 7,113, 43,171,199,215, 54,207, 56, 63, 20,129,186,193,104,188, 38,110, 80,184, 81,233,148,101, 28,171,199,237, 50, 22,
- 80,174, 92,222, 79, 20,218, 79,102, 0, 4,129, 4,160, 32,225,162, 41, 41,171, 43,107,111,126,243,119, 70,198,127,242,142, 95,
-122,238,185,103, 63,191,128,184,116, 50,249, 89,104, 65,183,213,151,108,178,164,255, 98, 73,107,114,145,121,169, 74,152,202,192,
-169, 29,220,171,175,212, 15,211,236, 18,113, 3,209, 74,164,130, 80,212, 67, 60,196,105,198,123, 18,210,157,111,152, 69, 28,253,
-137,205,149, 60,233, 89, 11, 64,223,139, 44, 5, 7, 17,152,193,140,153, 35, 98, 17,192,119,188,249,205,211,233,244,215,126,245,
- 87,207,159,255,248,231, 20, 80,239,175, 14,221,229, 45,225,239, 45,141,103,165,247,120,169, 15, 25,165,172,211,129, 43, 4, 68,
- 70,227, 35, 71, 79, 62, 56, 24,175, 11,224,171,201,250,209,179,147,181,227, 10, 7, 64,212, 81,171,210,144, 47, 80,165, 32, 38,
-146,143,192,149,230,171, 30,204,237, 33, 93, 20, 24,121, 73,199,153,138,249, 61,172,153,160,214,196, 93,233, 1, 53, 34,198, 56,
- 26,141,190,237,219,254,210,197, 75, 23,255,213,191,252,149,207, 22, 67,185,175,120,237,107, 59,122,246,210,159, 91,190,235, 73,
- 69, 40, 84, 28, 98,169, 93, 8,135,225,166, 66, 10, 23, 8, 80, 13, 86, 39,107,119, 12,134,171,226,188,175, 70,227,149,227,195,
-225,134,136, 87,173,212,121,136,131,184,212,188, 88,106,230,146,213,174, 72,167, 31,105, 33,144, 3, 49,105,167,182, 2,202,146,
-170, 39,150,120,161, 8,197,176,191,125,105,239,230, 69, 11,109, 33,202, 68,144,102,182,182,182,254, 85, 95,253,213,171, 43,107,
-159,248,196,249,219,104,144,153,221,222,167,103, 22, 60, 0, 68, 67, 19, 44,132,172, 39,198,238,206,197,169,120,159,239, 75, 69,
- 6, 3,241,197,207,140, 38, 71,198,171,199,156, 42,160, 43,235,167, 78,220,249,154,241,202, 81,166,159,185,113,164, 79,129,129,
- 26,114,115,124,238, 32, 64,186, 81, 41, 29, 16, 7, 27, 36, 58,130, 3, 82,121, 10, 75, 37,134,164,229,109,198,203, 69,193, 4,
-221, 2,128, 5,179, 16, 66,211,182,139, 67, 76,217,104,209,104,143, 61,246,216,227,143, 63,254,243, 63,255,179,151, 47, 95, 62,
-160, 65,143, 62,250, 40,110,231,210,141, 76,196,155, 84, 28,174,155, 68,224, 97, 36,163, 49, 24, 83,207, 96, 23, 67,165,193, 65,
- 94,203, 0, 11,209,193,112,109, 56,220, 80, 55, 82, 63, 24, 78,142,172, 31, 61, 59, 24,110, 58, 29,168, 27,138,250, 82,211, 43,
- 92, 24,145, 37,160, 89,250, 48,169,107,253,232, 66, 76,233, 42,120,169,246, 91, 90,223,164,156, 29,246,142, 51,151, 7, 0,134,
-176,119,243,226,206,214, 75, 49, 52,125,160, 71,118, 50, 79,143,215, 61,241,250,241,100,146,134,234,100, 13,154,205,115,114, 28,
-141,137, 50,148,212, 50, 4, 46,106,235,240,229, 24,151,109,242, 18, 56, 45,105,104,149, 0, 80, 17, 95, 57,239, 28, 64, 95,141,
- 78,159,217, 56,179,122,255,192, 79, 0,120,217,104,218,137, 86, 46,121, 28,151, 76,246,114, 18,194, 91,243, 66,201,230,177, 35,
-252,116, 85,132, 82, 2,224, 18,229,100,201, 48,228,222,146,104, 33, 44,118, 67,168, 69, 16,218, 69,189,216, 55,139,180, 92,253,
-235, 26,252, 98,161, 14, 27, 64,229, 87,190,254, 43, 79, 28, 63,241,239,254,221,175, 38,176,197, 55,109, 58, 98, 18, 34,119,167,
- 97,111, 26, 19, 63,171, 14,156,205, 99,180, 91,124,152,176,200, 60,251,150, 37, 2,168, 58,103,170, 17, 34,195,161, 77,142, 76,
- 78,224,164,234,170, 10, 34,198,141, 13, 7, 49,119,252,164, 73, 54,197,104,200,225,196,247, 22,198,133, 90,103, 88, 74, 53,106,
-233,153, 67, 94,183,227,208, 88,180,186, 93,196,118, 10, 90, 12, 77,104,235, 68, 36, 75, 81,137, 38,114, 85,105,133,164,136,138,
-208, 44,152, 61,240,192, 3,223,249,157,127,237,157,239,124,199,205,155, 55,221,145, 59, 94,190, 63,179,253, 89,216,159,197,189,
- 89,156,215,214, 70,134,104,109, 96,176,174, 57, 53,247, 31,165,138, 81,142, 75, 74,109, 41, 91, 0, 66,197, 85,131, 21, 95,173,
- 56, 55,242,213,234,202,198, 61,227,181,179,198, 73, 19,124,107,195,104,163, 89,237,246,166,178, 63, 71,140, 8, 17, 77, 64, 27,
-250, 91,101,151,249,229,233, 69,135, 18,193, 62, 3,226,178, 36,186, 42, 95, 97, 51, 11, 45, 13,119,136,205,124,111,251,194,116,
-231,242, 98,182,179,152,238, 76,119,175, 46,230,219, 22, 35, 15, 70, 42, 92,186,118, 97, 39,113, 60, 30, 63,241,186,215,125,248,
- 67, 31,146,211, 47,255,134,131,155, 39,184,149, 42,125, 48,189,202, 85,159,196, 77,100,199,182,162,250,209,100,245, 84, 53, 88,
- 23, 17,231, 70, 71, 79, 62,124,244,142,215, 56,191,146, 18, 2,173, 70,206, 57, 8, 42,135,147, 27, 88, 91,129, 42, 84, 48, 25,
- 97,125, 5,222,101,193,167,225, 54, 61,179,184,111,247, 46,132,143,229,136, 49, 87, 43,197,138, 29, 87,198, 54,154, 23, 26,176,
-216,223,186,248,194,147, 59, 55, 94,164, 69,144,161,157,181, 43, 92, 56, 68, 0, 0, 10, 53, 73, 68, 65, 84,245,148,180, 30, 51,
-193, 33, 92, 96, 41, 13, 22, 81,167,140,153,194,112, 40,218, 97,239, 56, 15,165, 12,133, 79, 90,136, 60, 93,229,203,202, 60, 16,
-175, 90, 65, 84, 92, 5,113,132, 75,172, 96, 80, 29,115,113, 50, 10,234, 22, 58,135, 10, 84, 65, 66, 20, 94, 83,139, 58,134, 85,
- 34,204, 0, 66,167,210, 9,171,175,170,119,209, 16, 59,106, 88,207, 70,111,218,186,169,247,193, 0, 96, 49,223,174,235,105,108,
- 23,105,108, 96,140,173,153, 49,119,221,117,133,227,220, 5, 43,101, 43,242,173,146, 70,168, 83, 95,106,168,236, 90,249,122,189,
- 97,175,252,201,238,229,164,162, 48, 3,216,207, 95, 74,166, 66,171,193,218,104,114, 12, 80,231,135,131,209,186,247, 19,239,199,
-201,227, 52,166, 98,153, 47,119,165,233,189,210,100,132,149, 49,156, 66, 4,147, 17, 78, 28,193,100, 4, 0,206,137,119,172,124,
-234,155, 78, 53, 67, 45,142,108,153,125, 79, 88, 96,108,147, 7,155,237, 93,217,186,244,177,166,222, 35, 17,219,249,222,206,229,
-182,222, 99, 46,164, 46, 65,225,194,174,125,144,133,132, 33,203, 61,218, 34, 2, 67, 68, 82,198,219,100,152, 75,101,212,236,246,
-209,245,186, 47,121,156, 68, 83, 99,119,118, 41, 68,238,184,233, 94,212,251, 31, 46, 89, 86,129, 25, 84, 25, 77, 66, 64, 26, 93,
-208,180,168, 91,104, 74,196, 29, 70, 30, 2,168,230,145, 45,236, 55,152,176, 80,122, 54,205,194, 34,132, 90, 64,210,234,197,180,
-105,235,182,169, 1,134,208,210, 98, 52,147, 82, 38,198,109,114,204, 37, 65, 75,215,100,153, 77,175, 41,252, 45,230,177,188, 24,
- 44, 74, 92, 40, 4, 40, 68,206,204,108,234,102, 3,176,132, 37,234,253,208,251, 21, 81, 85, 29,138, 12, 5, 46,247,172, 75, 71,
-170, 88, 18,153,128,148,197,130,139, 5, 59, 3,116,237, 38,156,131, 0,195, 10,199,142,202,230,154, 58, 7, 8,134, 30,163, 33,
- 85, 69, 5, 49, 44, 22,211,171, 49,236, 3,136,109,189,123,243,197,189,155,159,177, 24, 0,182,237,162, 89,236,154,133, 12, 96,
-231,124,227,243,131, 55, 89, 45,122, 32, 6, 66, 42,196, 91, 33,139, 72, 79,192, 41,252,138,174,145, 63, 75,174,136, 76,192, 66,
-141,205,175,207, 25, 47,251,209, 49,144,142, 37,145,174,145,153, 19, 75,218,202, 37, 68,183,231, 66, 75,199, 9,100,219,178, 9,
-116,150,102, 26, 81,197,212, 65,193, 16, 66,104,235,216, 54, 4, 99,168,219,166,110,219,218, 98, 3, 32,134,218, 98,107, 22, 15,
- 32,189,153,236,212,157,172,131, 31,153, 74, 45, 93, 41, 33, 63, 37, 66,139, 94,108, 41,203, 75,141, 52,157,178,176, 39, 51, 17,
- 38,236, 18,234,238, 31, 75, 22,187, 55, 99, 34,100, 26,209, 39,102,136,177,239, 41,145,254,184,162,181, 62, 23, 87, 17, 87,144,
-236, 72,196,214, 50,189,172,142, 55,183,119,197,166, 4,193,224,236,146,182,207,137,205, 68,160,210, 12,117,199,203, 66, 19, 29,
-131,193, 44,116,225,116,161,128,220, 6,124,144,219, 32, 57, 75,105,181,100,142, 69,223,240, 13,120,200,225,203,117,115,166, 80,
- 24,117,178,228,212,250, 14, 8, 43,185, 99, 31,174,164, 95,201,164, 45, 66, 40, 75, 35, 58,216,135,121,157, 75,236,108,173, 9,
- 18,195, 46, 22,170, 5,200,166, 13,214,180,164, 17, 81,219,153,107,110,192,246, 1,169,180, 53,191, 59,112,205, 82,126,175,135,
-123,238,138,171,205,236,211, 28,223,246,127, 15, 84,175, 74,128,195, 67,152,141,115,190, 83,251, 30,198,145,222,150, 38,106, 87,
-214, 22, 90,102,139, 80, 10,177, 12,125,194, 8,192, 24, 67,160, 53, 70, 85,136, 90,240,164, 43,198, 47, 44, 9, 51,171,156, 10,
- 72,179, 16, 45, 56, 65, 36,219,102,119,186,243, 66,104,119, 1,137,113,190,191,253,194,124,255, 50,153,248,188, 11,225, 20, 12,
- 16,169, 20,171, 99, 27,120,136,136,115, 88,157,184,213,177,115, 46,119, 31, 14,188,168,102, 0, 41,181,243,231,125, 75,228,106,
- 73,221,233, 89, 6, 2, 73,228, 81,146,170,218, 91,166,164, 68, 49,250,130, 75, 46, 35,173, 82, 28,126,201,168, 81,204, 80,177,
- 61, 25,238,232,199,200,148, 99, 42, 6, 68, 72, 26, 69,209,113,106,123,218,152,244, 36,159,124, 97, 37, 35, 45,210, 64,210,230,
-245,252, 90, 83,223, 32, 25,195,124,127,231,211,211,221,151,210,241,233,187,252, 33,149,147, 24,220,112,160, 0,188, 87,231, 48,
-172,210, 68, 10,113, 94,211,132,128, 28, 34, 11,211,204, 29,233,204,106, 10, 84,210,171,187, 65, 20,153,131,102,197, 21,247,111,
-230, 19,121, 79, 14,182,245, 89,223,229,212, 19, 16, 15, 69, 71,146,233,132, 57,160, 78,111, 16, 99, 29,194, 28, 80,250, 24, 98,
- 67,198,132,154,164,217,113, 37, 24, 48,177, 72, 70, 2,198, 56,157, 93,157,239,189,100, 86, 3,108,234,157,221, 27,207, 54,245,
-142, 0,102,161, 94,220, 48,139, 29, 43,178, 80, 57, 25, 13,179, 58,214,193, 4,162, 26,219, 96,251,179,152,198,105, 14, 43, 93,
- 25,107,229,132, 2,175, 58, 26,106,229,187,225, 89, 76, 44,113, 89, 34, 90,226,214, 74,177,244, 30,131,128,199,114,214, 87,216,
-112,125, 87, 2, 10,232, 36, 69, 35,123, 63,136, 50,240,181,235, 14,182, 24,219,216, 46, 68, 53, 18,102, 13, 17,105, 49, 49, 62,
- 89, 88,100, 10, 70, 11, 96, 16,146,108,235,233,165,237,235, 31,105,155,125, 17, 52,139,189,233,238, 11, 77,179, 95,226,135,212,
-196,144,245, 57,243,226, 4,145,176,154,221,208,170,121,109, 59,251, 33, 33,179,227,145,219, 92,245,149, 87, 8, 7,222, 1, 78,
-196,229, 8, 89,229, 96,175,145, 28,128, 8, 62,203, 84, 44,111,210,197,220,157, 31,147, 50,115,131, 40, 38,170, 15,149, 10, 1,
- 51, 23,213,187,200, 60,209, 12, 99, 19,194, 66,160,172, 16, 67, 27,219, 32, 18,203,140, 13, 85,129, 17, 22,219,102,118, 37,134,
-109,152,197, 24,166,123, 47, 45,102,215, 67, 51,133, 32,132,121,180, 0,166, 41, 62,217,192,119, 76,255,190,170,100,100, 95, 94,
-163, 69,196, 60,222, 11,117, 43,251,179,232,189,137,192, 59, 51,218,172,206,243,146, 42,175,131, 74, 18, 27,216,171, 84, 62,199,
-179, 34, 80,201,207,247, 99, 61, 50,232,214,141,206,233,248,142,210,231, 92, 61, 18, 37,165, 57,168,175,110,117,221, 75,214,183,
- 20, 48,180,205, 84, 69, 72,241, 54, 14,205,126,140, 11, 13,158,128, 19,239,212, 39,255,191,104,103, 55, 46,127,104,119,235,227,
- 68, 99,180,122,182, 53,159, 94, 49,171,151,208,193, 98,189, 18,161, 61,155,144, 46,202, 42,186, 92,136,237, 70,139,150,215, 90,
-215,220,159,133, 60,109, 91,101,224,197,105, 58, 95, 88, 25,185,149,177, 75,173,227,163,161, 30, 89,243,131,129, 10,160, 34, 85,
-165, 78, 58,103, 95, 6,171,144, 48,243,224, 82, 89,175, 8,203,250, 68,142, 75,174, 62,247,200, 64,122, 11,110,125, 73, 33,169,
- 71, 27, 67, 3,213, 24,156,197,134, 22,146, 70,152, 6,109,234,132,180,135,230,102,104,247, 66,152, 25, 91,144, 22, 91, 34,118,
-108,206, 28, 83, 74,169, 38,229,190, 78, 75,249,209, 82, 67, 91,126,103, 65,241, 66, 93, 68, 97, 29,186,152, 74, 54,105,248, 50,
- 66,100, 29, 76,139, 18,236,251, 48, 8, 46,249,210,202, 59,239, 10, 65, 66, 80, 84, 11, 10,245, 75, 92,249, 82, 34,201, 1,101,
-105,244, 44,100,244,220,233,150, 33,207,174,176, 97, 93,232, 29,173,173, 23, 55,154,102, 7,162,222,143, 22,179, 59, 23,139,235,
- 21, 23, 48, 54,139,237,253,237,231,219,118, 15, 64,104,167,187, 55,159,157,239, 95, 34, 35,150,195,119, 17, 75, 77, 65, 57,227,
- 74, 29, 0, 82, 16,112, 32,135,144,105,139, 83,215,157, 29,200,169, 83,219, 82, 62, 55,102, 81,106, 3,144, 38,218,201,116, 17,
-177,219,185,163,146,248, 74,214, 32,175,121, 52,193,112, 32,227,161,115,154,103,252,120,203, 51,160, 58,197, 77, 71,202,186, 56,
- 48,111, 74,218,178,110,244, 89,166,101,203, 18, 48, 83,216,180,201, 97, 51, 70,107, 98, 59, 19,168,145, 33,204,218, 48, 15, 97,
- 1, 48,132,218, 98, 0,210, 28,171,229, 56, 18, 98,146,166,218,225,224, 74, 36,143, 76, 74,125, 28, 25, 83,205, 49, 89,158,117,
-211, 33, 60,148, 50, 59, 40,185,241, 37, 35, 65,164,235, 91, 74,213, 45,167,191, 74,159,113, 70,137,212, 24, 37, 6,210,101,177,
-228,118,132,146,106,244,253, 4,125,242,219,213,235, 14,102,168,157,255,234, 8, 26, 60, 24,173,168, 86,234, 6, 37, 85, 49, 90,
-204,148,228,212,178,155, 8,246,221, 8, 38, 46,207, 35,234,166, 43,101, 23, 86, 98,255,146, 35,201,242, 87, 7, 34,187, 46,163,
- 42,201,103, 50,245, 75,163, 0, 74,202,174, 57, 85, 44,190,160,175,116,148, 98,129, 0, 16,223, 5,182,210, 79,238, 2,210,208,
-190,180, 77, 29,138,102, 29,156, 87,234,248,203,227,244,186,237, 45, 2,138,172, 99,172, 15, 17,171,186,249, 14,197, 18, 75,113,
- 8,165, 7,160,111,166,203,224,147,116, 29, 36, 68, 71, 58,183, 14,214, 68,223,135,135,108,172,122, 60,173,128, 49,165, 53,135,
-189,167,207,108,185, 46,240,237,176,138,228,119,138, 47,247,236, 58, 32, 59, 88,179,216,150,156, 60,117,158,188,147, 20, 59,104,
- 77, 32,214, 21, 8,121, 11,169,236, 64,234, 94, 64,146,174, 6, 40,101,232, 92, 62,191,157,207,202,123,109,146, 26, 28,114,117,
- 59, 75, 0, 38,217,124,119, 17,141,117, 64, 85,134,192,176,220,235, 67,237,107,189, 37,222,145,244, 95, 8,176,239, 40,200,211,
-186,250,252, 45,109,139,121,246,126,189,235, 21,237,106, 78,105, 73,105,100,113,178,161, 5,179, 42,210, 68, 55,148,177,139, 11,
-216,229, 90, 29,234,214,167,143,197, 92, 89,233, 7, 21,176, 71, 81,173, 76, 96,238, 60, 57, 58, 27,168, 5, 81, 42,167, 69,186,
- 12, 61,205,133,131,244,103,136,121,108,164, 32, 39, 91,125,104, 88,148, 38,159, 69,162,211, 82, 46,215,100, 75,151,188, 47,110,
- 18,253,140, 17,246, 93, 78,169,109, 61, 83, 56,146, 29, 43,135,137,178,156,169,201, 82,171,185, 28,164,117,176,123, 91, 46, 15,
-142, 43, 19,164, 59,156, 42, 55,147,136,230,136,185,139,237,211,121, 50,148,255, 97,164,244,251, 22,239,194, 37,169,160, 27, 25,
- 87,218,157, 58,236,166,180, 95,165, 59,215,148, 35,101,165, 40,219,145,142, 90,129,245, 4,146, 82,141, 30, 91, 50,116,165, 74,
- 43,157, 50,210,141,246, 46,211, 39,173,164,240,217, 70,200,146, 55,226,109,138, 34,236,207, 67,137,175,200,229,225,228,125,171,
-124,129,203,208, 29,184,188,228,142, 94,211, 81,109, 88, 88, 55,101, 6, 93,223,207, 86, 90,198,178, 97, 67,177, 53,229, 87,165,
-216, 35,230,218, 28,251, 66, 64,215,147,148, 86,231,217, 37,157,214, 19, 48, 65, 99, 31,206, 50,251,148,146,138,119, 6, 31,214,
-177, 59,216, 25,212, 3,112, 19, 14,125,102,223, 87,147, 7, 38, 98,137,168, 72, 90, 23, 51, 88,154, 84,156,179,224, 2,219, 23,
- 16, 28, 6, 83,104,145, 81, 70,199, 83,227,187, 44, 19, 79,178,240,242, 97,146, 66, 61, 49, 72,170,167, 44,159,179,222,149,228,
- 41,141, 20,136, 79,178, 40, 47, 72,221,242,133, 21,217, 87,155,115, 39, 48,151, 73, 2,189,164,242, 61,103, 76, 53, 53, 63,221,
-202, 12,238, 96,241, 37,251, 85, 28,114,137, 5,101, 9, 29, 47, 90,215, 25,166, 46, 59, 77, 55,156, 38, 43, 44, 57,199, 20, 55,
-166,255,101,161,120, 12,154, 64,217, 11,171,164, 69,154,163,135,226,226, 65,166, 81, 27, 29, 14,155,101,236,209, 91,233, 50,185,
- 62, 55,175, 73,199, 52,145,146,227,119, 67, 59,203,114, 59,136,159, 75,182, 71, 14,149,131,173, 11,168, 4, 7,106, 37,194, 62,
- 88,232,244, 78,186,201, 79, 41,198, 41,106,196,229,208,180,208, 77,187, 0,101,233,108,148, 46,242,206,112,244,214,168, 11,144,
-178, 19, 92,126, 25,151, 96,124,246,171,252, 95,129,131,209,235, 56, 35,137,112, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/bfont.ttf.c b/source/blender/editors/datafiles/bfont.ttf.c
deleted file mode 100644
index 3ebd06a47df..00000000000
--- a/source/blender/editors/datafiles/bfont.ttf.c
+++ /dev/null
@@ -1,5995 +0,0 @@
-/** \file blender/editors/datafiles/bfont.ttf.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <bfont_ttf> */
-
-int datatoc_bfont_ttf_size= 191532;
-char datatoc_bfont_ttf[]= {
- 0, 1, 0, 0, 0, 17, 1, 0, 0, 4, 0, 16,
- 79, 83, 47, 50,150,230,175, 11, 0, 0, 1,152, 0, 0, 0, 86, 99,109, 97,112, 83, 13, 80,227, 0, 0, 28, 64, 0, 0, 3,138,
- 99,118,116, 32, 0,105, 29, 57, 0, 0, 37,224, 0, 0, 1,254,102,101, 97,116,128, 29, 10, 57, 0, 2,233,124, 0, 0, 0, 80,
-102,112,103,109,113, 52,118,106, 0, 0, 31,204, 0, 0, 0,171,103,108,121,102, 31, 47,248,201, 0, 0, 53, 40, 0, 1,229,240,
-104,101, 97,100,232, 93,169,219, 0, 0, 1, 28, 0, 0, 0, 54,104,104,101, 97, 12,184, 14,241, 0, 0, 1, 84, 0, 0, 0, 36,
-104,109,116,120,203, 81,215, 70, 0, 0, 1,240, 0, 0, 26, 78,107,101,114,110,239,172, 97,238, 0, 2, 27, 24, 0, 0, 60, 6,
-108,111, 99, 97,253, 73,117,214, 0, 0, 39,224, 0, 0, 13, 72,109, 97,120,112, 10,234, 6,122, 0, 0, 1,120, 0, 0, 0, 32,
-109,111,114,120,223,111, 12,226, 0, 2,213, 8, 0, 0, 20,116,110, 97,109,101,179,203,190,182, 0, 2, 87, 32, 0, 0, 65, 55,
-112,111,115,116, 15, 42,244, 94, 0, 2,152, 88, 0, 0, 60,174,112,114,101,112, 59, 7,241, 0, 0, 0, 32,120, 0, 0, 5,104,
-112,114,111,112, 68,181,210, 32, 0, 2,233,204, 0, 0, 2, 96, 0, 1, 0, 0, 0, 2,204,204, 16,228, 33, 70, 95, 15, 60,245,
- 2, 27, 8, 0, 0, 0, 0, 0,192,243, 73,110, 0, 0, 0, 0,192,243, 73,110,247,214,252,235, 13,114, 8, 75, 0, 0, 0, 8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 7,109,254, 29, 0, 0, 13,226,247,214,252,109, 13,114, 0, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,132, 0, 1, 0, 0, 6,163, 0, 93, 0, 9, 0,112, 0, 8, 0, 2, 0, 16, 0, 64,
- 0, 8, 0, 0, 4, 21, 5,104, 0, 8, 0, 3, 0, 1, 4, 14, 1,144, 0, 5, 0, 0, 5, 51, 5,153, 0, 0, 3,215, 5, 51,
- 5,153, 0, 0, 0, 0, 0,102, 2, 18, 0, 0, 2, 11, 6, 3, 3, 8, 4, 2, 2, 4,224, 0, 38,255, 64, 0, 4,255, 0, 4,
- 0, 32, 0, 0, 0, 0, 80,102, 69,100, 0, 64, 0, 13,255,253, 6, 20,254, 20, 1,154, 7,109, 1,227, 96, 0, 1,255,191,255,
- 0, 0, 0, 0, 4,205, 0,102, 0, 0, 0, 0, 2,170, 0, 0, 2,139, 0, 0, 3, 53, 1, 53, 3,174, 0,197, 6,180, 0,158,
- 5, 23, 0,170, 7,154, 0,113, 6, 61, 0,129, 2, 51, 0,197, 3, 31, 0,176, 3, 31, 0,164, 4, 0, 0, 61, 6,180, 0,217,
- 2,139, 0,158, 2,227, 0,100, 2,139, 0,219, 2,178, 0, 0, 5, 23, 0,135, 5, 23, 0,225, 5, 23, 0,150, 5, 23, 0,156,
- 5, 23, 0,100, 5, 23, 0,158, 5, 23, 0,143, 5, 23, 0,168, 5, 23, 0,139, 5, 23, 0,129, 2,178, 0,240, 2,178, 0,158,
- 6,180, 0,217, 6,180, 0,217, 6,180, 0,217, 4, 63, 0,147, 8, 0, 0,135, 5,121, 0, 16, 5,125, 0,201, 5,150, 0,115,
- 6, 41, 0,201, 5, 14, 0,201, 4,154, 0,201, 6, 51, 0,115, 6, 4, 0,201, 2, 92, 0,201, 2, 92,255,150, 5, 63, 0,201,
- 4,117, 0,201, 6,231, 0,201, 5,252, 0,201, 6, 76, 0,115, 4,211, 0,201, 6, 76, 0,115, 5,143, 0,201, 5, 20, 0,135,
- 4,227,255,250, 5,219, 0,178, 5,121, 0, 16, 7,233, 0, 68, 5,123, 0, 61, 4,227,255,252, 5,123, 0, 92, 3, 31, 0,176,
- 2,178, 0, 0, 3, 31, 0,199, 6,180, 0,217, 4, 0,255,236, 4, 0, 0,170, 4,231, 0,123, 5, 20, 0,186, 4,102, 0,113,
- 5, 20, 0,113, 4,236, 0,113, 2,209, 0, 47, 5, 20, 0,113, 5, 18, 0,186, 2, 57, 0,193, 2, 57,255,219, 4,162, 0,186,
- 2, 57, 0,193, 7,203, 0,186, 5, 18, 0,186, 4,229, 0,113, 5, 20, 0,186, 5, 20, 0,113, 3, 74, 0,186, 4, 43, 0,111,
- 3, 35, 0, 55, 5, 18, 0,174, 4,188, 0, 61, 6,139, 0, 86, 4,188, 0, 59, 4,188, 0, 61, 4, 51, 0, 88, 5, 23, 1, 0,
- 2,178, 1, 4, 5, 23, 1, 0, 6,180, 0,217, 5, 23, 0, 0, 3, 53, 1, 53, 5, 23, 0,172, 5, 23, 0,129, 5, 23, 0, 94,
- 5, 23, 0, 82, 2,178, 1, 4, 4, 0, 0, 92, 4, 0, 0,215, 8, 0, 1, 27, 3,197, 0,115, 4,229, 0,158, 6,180, 0,217,
- 2,227, 0,100, 8, 0, 1, 27, 4, 0, 0,213, 4, 0, 0,195, 6,180, 0,217, 3, 53, 0, 94, 3, 53, 0, 98, 4, 0, 1,115,
- 5, 23, 0,174, 5, 23, 0,158, 2,139, 0,219, 4, 0, 1, 35, 3, 53, 0,137, 3,197, 0, 96, 4,229, 0,193, 7,193, 0,137,
- 7,193, 0,137, 7,193, 0, 98, 4, 63, 0,143, 5,121, 0, 16, 5,121, 0, 16, 5,121, 0, 16, 5,121, 0, 16, 5,121, 0, 16,
- 5,121, 0, 16, 7,203, 0, 8, 5,150, 0,115, 5, 14, 0,201, 5, 14, 0,201, 5, 14, 0,201, 5, 14, 0,201, 2, 92, 0,201,
- 2, 92, 0,201, 2, 92, 0,201, 2, 92, 0,201, 6, 51, 0, 10, 5,252, 0,201, 6, 76, 0,115, 6, 76, 0,115, 6, 76, 0,115,
- 6, 76, 0,115, 6, 76, 0,115, 6,180, 1, 25, 6, 76, 0,102, 5,219, 0,178, 5,219, 0,178, 5,219, 0,178, 5,219, 0,178,
- 4,227,255,252, 4,215, 0,201, 5, 10, 0,186, 4,231, 0,123, 4,231, 0,123, 4,231, 0,123, 4,231, 0,123, 4,231, 0,123,
- 4,231, 0,123, 7,219, 0,123, 4,102, 0,113, 4,236, 0,113, 4,236, 0,113, 4,236, 0,113, 4,236, 0,113, 2, 57,255,199,
- 2, 57, 0,144, 2, 57,255,222, 2, 57,255,244, 4,229, 0,113, 5, 18, 0,186, 4,229, 0,113, 4,229, 0,113, 4,229, 0,113,
- 4,229, 0,113, 4,229, 0,113, 6,180, 0,217, 4,229, 0, 72, 5, 18, 0,174, 5, 18, 0,174, 5, 18, 0,174, 5, 18, 0,174,
- 4,188, 0, 61, 5, 20, 0,186, 4,188, 0, 61, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16,
- 4,231, 0,123, 5,150, 0,115, 4,102, 0,113, 5,150, 0,115, 4,102, 0,113, 5,150, 0,115, 4,102, 0,113, 5,150, 0,115,
- 4,102, 0,113, 6, 41, 0,201, 5, 20, 0,113, 6, 51, 0, 10, 5, 20, 0,113, 5, 14, 0,201, 4,236, 0,113, 5, 14, 0,201,
- 4,236, 0,113, 5, 14, 0,201, 4,236, 0,113, 5, 14, 0,201, 4,236, 0,113, 5, 14, 0,201, 4,236, 0,113, 6, 51, 0,115,
- 5, 20, 0,113, 6, 51, 0,115, 5, 20, 0,113, 6, 51, 0,115, 5, 20, 0,113, 6, 51, 0,115, 5, 20, 0,113, 6, 4, 0,201,
- 5, 18, 0,186, 7, 84, 0,201, 5,143, 0,120, 2, 92, 0,201, 2, 57,255,211, 2, 92, 0, 3, 2, 57,255,242, 2, 92, 0,201,
- 2, 57,255,228, 2, 92, 0,176, 2, 57, 0,150, 2, 92, 0,201, 2, 57, 0,193, 4,184, 0,201, 4,114, 0,193, 2, 92,255,150,
- 2, 57,255,219, 5, 63, 0,201, 4,162, 0,186, 4,162, 0,186, 4,117, 0,201, 2, 88, 0,193, 4,117, 0,201, 2, 57, 0,136,
- 4,117, 0,201, 3, 0, 0,193, 4,117, 0,201, 2,188, 0,193, 4,127,255,242, 2, 70, 0, 2, 5,252, 0,201, 5, 18, 0,186,
- 5,252, 0,201, 5, 18, 0,186, 5,252, 0,201, 5, 18, 0,186, 6,130, 0,205, 5,252, 0,213, 5, 18, 0,186, 6, 76, 0,115,
- 4,229, 0,113, 6, 76, 0,115, 4,229, 0,113, 6, 76, 0,115, 4,229, 0,113, 8,143, 0,115, 8, 47, 0,113, 5,143, 0,201,
- 3, 74, 0,186, 5,143, 0,201, 3, 74, 0,130, 5,143, 0,201, 3, 74, 0,186, 5, 20, 0,135, 4, 43, 0,111, 5, 20, 0,135,
- 4, 43, 0,111, 5, 20, 0,135, 4, 43, 0,111, 5, 20, 0,135, 4, 43, 0,111, 4,227,255,250, 3, 35, 0, 55, 4,227,255,250,
- 3, 35, 0, 55, 4,227,255,250, 3, 35, 0, 55, 5,219, 0,178, 5, 18, 0,174, 5,219, 0,178, 5, 18, 0,174, 5,219, 0,178,
- 5, 18, 0,174, 5,219, 0,178, 5, 18, 0,174, 5,219, 0,178, 5, 18, 0,174, 5,219, 0,178, 5, 18, 0,174, 7,233, 0, 68,
- 6,139, 0, 86, 4,227,255,252, 4,188, 0, 61, 4,227,255,252, 5,123, 0, 92, 4, 51, 0, 88, 5,123, 0, 92, 4, 51, 0, 88,
- 5,123, 0, 92, 4, 51, 0, 88, 2,209, 0, 47, 5, 20, 0, 32, 5,225,255,151, 5,125, 0,201, 5, 20, 0,186, 5,125, 0, 0,
- 5, 20, 0, 0, 5,160, 0,115, 5,150, 0,115, 4,102, 0,113, 6, 51, 0, 10, 6,141,255,151, 5,125, 0,201, 5, 20, 0,113,
- 4,229, 0,113, 5, 14, 0,131, 6, 76, 0,117, 4,234, 0,164, 4,154,255,150, 2,209,255,127, 6, 51, 0,115, 5,126, 0, 8,
- 7,180, 0,186, 2,212, 0,201, 2, 92, 0, 10, 5,133, 0,201, 4,162, 0,185, 2, 57, 0, 10, 4,188, 0, 61, 7,203, 0,178,
- 5,252,255,150, 5, 18, 0,186, 6, 76, 0,115, 7, 78, 0,103, 4,229, 0,118, 7,151, 0,115, 6, 19, 0,113, 5, 55,255,151,
- 5, 20, 0,184, 4,215, 0,201, 5, 20, 0, 69, 4, 43, 0,100, 5, 14, 0,201, 2,176,254,242, 3, 35, 0, 55, 4,227, 0, 24,
- 3, 35, 0, 55, 4,227,255,250, 6,221, 0,173, 5, 18, 0,176, 6, 29, 0, 78, 5,196, 0,201, 5,145,255,252, 6,112, 0, 61,
- 5,123, 0, 92, 4, 51, 0, 88, 5, 84, 0,160, 5, 84, 0, 92, 4,159, 0,104, 4, 51, 0,113, 5, 23, 0,150, 5, 84, 0, 93,
- 4,159, 0,104, 4, 21, 0, 88, 5, 20, 0,186, 2, 92, 0,201, 3,240, 0,201, 3,172, 0, 20, 2, 93, 0,201, 11, 96, 0,201,
- 10,100, 0,201, 9, 60, 0,113, 6,175, 0,201, 6, 75, 0,201, 3,167, 0,193, 7,115, 0,201, 7,100, 0,201, 6, 97, 0,186,
- 5,121, 0, 16, 4,231, 0,123, 2, 92, 0,201, 2, 57,255,224, 6, 76, 0,115, 4,229, 0,113, 5,219, 0,178, 5, 18, 0,174,
- 5,219, 0,178, 5, 18, 0,174, 5,219, 0,178, 5, 18, 0,174, 5,219, 0,178, 5, 18, 0,174, 5,219, 0,178, 5, 18, 0,174,
- 4,236, 0, 0, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16, 4,231, 0,123, 7,203, 0, 8, 7,219, 0,123, 6, 51, 0,115,
- 5, 20, 0,113, 6, 51, 0,115, 5, 20, 0,113, 5, 63, 0,201, 4,162, 0,186, 6, 76, 0,115, 4,229, 0,113, 6, 76, 0,115,
- 4,229, 0,113, 5, 84, 0,160, 4,159, 0,220, 2, 57,255,219, 11, 96, 0,201, 10,100, 0,201, 9, 60, 0,113, 6, 51, 0,115,
- 5, 20, 0,113, 8,231, 0,201, 5,117, 0,201, 5,252, 0,201, 5, 18, 0,186, 5,121, 0, 16, 4,231, 0,123, 7,203, 0, 8,
- 7,219, 0,123, 6, 76, 0,102, 4,229, 0, 72, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16, 4,231, 0,123, 5, 14, 0,201,
- 4,236, 0,113, 5, 14, 0,201, 4,236, 0,113, 2, 92, 0,201, 2, 57,255,195, 2, 92, 0,201, 2, 57,255,228, 6, 76, 0,115,
- 4,229, 0,113, 6, 76, 0,115, 4,229, 0,113, 5,143, 0,201, 3, 74, 0,130, 5,143, 0,201, 3, 74, 0,186, 5,219, 0,178,
- 5, 18, 0,174, 5,219, 0,178, 5, 18, 0,174, 5, 20, 0,135, 4, 43, 0,111, 4,227,255,250, 3, 35, 0, 55, 5, 4, 0,156,
- 4, 44, 0, 71, 6, 4, 0,201, 5, 18, 0,186, 5,226, 0,201, 6,180, 0,113, 5,150, 0,113, 4,226, 0,113, 5,123, 0, 92,
- 4, 51, 0, 88, 5,121, 0, 16, 4,231, 0,123, 5, 14, 0,201, 4,236, 0,113, 6, 76, 0,115, 4,229, 0,113, 6, 76, 0,115,
- 4,229, 0,113, 6, 76, 0,115, 4,229, 0,113, 6, 76, 0,115, 4,229, 0,113, 4,227,255,252, 4,188, 0, 61, 3,204, 0,138,
- 6,190, 0,186, 3,209, 0, 55, 2, 57,255,219, 7,252, 0,113, 7,252, 0,113, 5,121,255,253, 5,150, 0, 11, 4,102, 0, 9,
- 4,117, 0, 10, 4,227,255,178, 4, 43, 0,111, 4, 51, 0, 88, 4,211, 0, 80, 8, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0,
- 8, 0, 0, 0, 8, 0, 0, 0, 3, 60, 0,117, 3, 49, 0,117, 1,102,255,233, 2, 18, 0,117, 2, 93, 0, 71, 2, 94, 0, 71,
- 3, 8, 0, 32, 4, 31, 0, 54, 2,251, 0, 38, 2, 51, 0,197, 3,174, 0,197, 2,139, 0,174, 2,139, 0,178, 2,139, 0,196,
- 2,117, 0,117, 2,117, 0,117, 2,245, 0,117, 2,245, 0,117, 4, 0, 1, 11, 4, 0, 1, 11, 4, 0, 0,193, 4, 0, 0,193,
- 4, 0, 0,193, 4, 0, 0,193, 2, 51, 0,214, 4, 0, 0,213, 4, 0, 1,115, 4, 0, 0,170, 2, 51, 0,214, 4, 0, 0,213,
- 4, 0, 0,170, 4, 0, 1,115, 2,178, 0,111, 2,178, 0,111, 2,117, 0,117, 2,117, 0,117, 4, 0, 1, 31, 4, 0, 1, 31,
- 3, 77, 0,193, 4, 0, 1, 31, 4, 0, 0,199, 4, 0, 1,154, 4, 0, 0,238, 4, 0, 1, 76, 4, 0, 0,182, 4, 0, 0,240,
- 2,134,255,255, 4, 0, 0,239, 3,104, 0,117, 1, 84, 0,121, 2,252, 0,117, 3,141, 0,117, 2,245, 0,117, 3,242, 0,214,
- 3,242, 0,214, 3,242, 0,214, 3,242, 0,214, 3,242, 0,214, 4, 0, 0,193, 4, 0, 0,213, 4, 0, 1, 21, 4, 0, 0,238,
- 4, 0, 0,182, 0, 0,252,168, 0, 0,253,113, 0, 0,252,191, 0, 0,252,180, 0, 0,252,217, 0, 0,251,236, 0, 0,252,191,
- 0, 0,253,164, 0, 0,252,213, 0, 0,253, 55, 0, 0,252,236, 0, 0,252,244, 0, 0,252,197, 0, 0,253,188, 0, 0,252,240,
- 0, 0,252, 93, 0, 0,252,191, 0, 0,252,191, 0, 0,254, 31, 0, 0,253,144, 0, 0,253,144, 0, 0,255,121, 0, 0,252,168,
- 0, 0,253,113, 0, 0,253, 12, 0, 0,253,188, 0, 0,254, 85, 0, 0,254,240, 0, 0,253,129, 0, 0,253, 11, 0, 0,253, 11,
- 0, 0,253, 11, 0, 0,253, 11, 0, 0,253,122, 0, 0,253,119, 0, 0,253,154, 0, 0,252,213, 0, 0,252,236, 0, 0,253,106,
- 0, 0,253, 35, 0, 0,253, 76, 0, 0,253,188, 0, 0,252,240, 0, 0,252, 99, 0, 0,252,197, 0, 0,252,191, 0, 0,252,191,
- 0, 0,252,191, 0, 0,252,180, 0, 0,252,217, 0, 0,251,236, 0, 0,251,236, 0, 0,251,140, 0, 0,253,120, 0, 0,250,237,
- 0, 0,251,104, 0, 0,250, 18, 0, 0,253,249, 0, 0,252,241, 0, 0,252,240, 0, 0,252, 99, 0, 0,253, 43, 0, 0,254, 6,
- 0, 0,251,236, 0, 0,252,168, 0, 0,253,113, 0, 0,252,180, 0, 0,253,133, 0, 0,252,231, 0, 0,253,198, 0, 0,252,213,
- 0, 0,253, 31, 0, 0,253, 21, 0, 0,253, 31, 0, 0,252,182, 0, 0,253, 72, 0, 0, 0, 0, 0, 0,252, 99, 0, 0,253, 51,
- 0, 0,253,120, 0, 0,252,191, 0, 0,253, 43, 0, 0,253,120, 0, 0,255, 46, 0, 0,252,112, 0, 0,252,112, 0, 0,253, 42,
- 0, 0,252,112, 0, 0,252,119, 2, 58, 0,160, 2, 58, 0,160, 4, 0, 1,182, 2,178, 0,158, 4, 0, 1,115, 4, 0, 0,215,
- 5,138, 0, 16, 2,139, 0,219, 5,248,255,231, 6,248,255,243, 3, 68,255,237, 6,128,255,242, 6,153,255,225, 6,155,255,219,
- 2,181, 0, 5, 5,121, 0, 16, 5,125, 0,201, 4,117, 0,201, 5,121, 0, 16, 5, 14, 0,201, 5,123, 0, 92, 6, 4, 0,201,
- 6, 76, 0,115, 2, 92, 0,201, 5, 63, 0,201, 5,121, 0, 16, 6,231, 0,201, 5,252, 0,201, 5, 14, 0,201, 6, 76, 0,115,
- 6, 4, 0,201, 4,211, 0,201, 5, 14, 0,201, 4,227,255,250, 4,227,255,252, 6, 76, 0,115, 5,123, 0, 61, 6, 76, 0,115,
- 6, 29, 0, 78, 2, 92, 0,201, 4,227,255,252, 5, 70, 0,113, 4, 99, 0,133, 5, 60, 0,186, 2,181, 0,166, 4,161, 0,149,
- 5, 70, 0,113, 5, 27, 0,191, 4,188, 0, 32, 4,229, 0,113, 4, 83, 0,133, 4, 90, 0,107, 5, 18, 0,186, 4,229, 0,113,
- 2,181, 0,166, 4,183, 0,191, 4,188, 0, 61, 5, 23, 0,174, 4,120, 0, 74, 4,118, 0,107, 4,229, 0,113, 4,209, 0, 74,
- 5, 20, 0,186, 4,178, 0,113, 5, 18, 0,113, 4,209, 0,100, 4,161, 0,149, 5, 71, 0,111, 4,159, 0, 59, 5, 71, 0,112,
- 6,179, 0,135, 2,181, 0, 5, 4,161, 0,149, 4,229, 0,113, 4,161, 0,149, 6,179, 0,135, 4,234, 0,166, 4,244, 0,112,
- 5,151, 0, 87, 6,189,255,225, 5,151, 0, 87, 5, 71, 0,112, 6,179, 0, 65, 5, 79, 0,111, 6, 76, 0,115, 4,229, 0,113,
- 5, 48, 0,139, 4,178, 0,113, 4,154, 0,201, 3,171,255, 64, 5, 71, 0,179, 5, 71, 0,191, 6,236, 0,114, 5, 5, 0,119,
- 7,120, 0,115, 6,179, 0,135, 6, 17, 0,115, 5, 70, 0,113, 6, 85, 0,201, 4,235, 0, 45, 5,126, 0, 79, 4,219, 0,100,
- 6, 36, 0,115, 5, 0, 0, 54, 5,152, 0,115, 4,229, 0,113, 4,227, 0, 44, 4, 74, 0, 55, 5, 79, 0,111, 5, 20, 0,183,
- 4,102, 0,113, 2, 57,255,219, 6, 76, 0,115, 4,236, 0,113, 4,236, 0,196, 4,215, 0,201, 5, 20, 0,186, 5,150, 0,115,
- 6,231, 0,201, 5, 53, 0,127, 5, 20, 0, 85, 5,160, 0,115, 5,150, 0,115, 5,160, 0,115, 5, 14, 0,201, 5, 14, 0,201,
- 6, 74,255,250, 4,117, 0,201, 5,150, 0,115, 5, 20, 0,135, 2, 92, 0,201, 2, 92, 0,201, 2, 92,255,150, 8,192, 0, 54,
- 8, 92, 0,201, 6, 74,255,250, 5, 63, 0,201, 5,252, 0,201, 4,224, 0, 35, 6, 4, 0,201, 5,121, 0, 16, 5,125, 0,201,
- 5,125, 0,201, 4,117, 0,201, 6, 54, 0, 49, 5, 14, 0,201, 6,232, 0, 59, 5, 23, 0,156, 5,252, 0,201, 5,252, 0,201,
- 5, 63, 0,201, 6, 4, 0, 54, 6,231, 0,201, 6, 4, 0,201, 6, 76, 0,115, 6, 4, 0,201, 4,211, 0,201, 5,150, 0,115,
- 4,227,255,250, 4,224, 0, 35, 6, 76, 0,115, 5,123, 0, 61, 6, 54, 0,201, 5,124, 0,175, 8, 6, 0,201, 8, 52, 0,201,
- 6,169, 0, 50, 7, 15, 0,201, 5,125, 0,201, 5,150, 0,111, 8, 63, 0,211, 5,143, 0, 59, 4,231, 0,123, 4,229, 0,113,
- 4,176, 0,186, 3,238, 0,186, 5, 96, 0, 50, 4,236, 0,113, 5,222, 0, 50, 4, 83, 0,133, 5, 65, 0,193, 5, 65, 0,193,
- 4,213, 0,191, 5, 29, 0, 46, 6, 9, 0,193, 5, 73, 0,193, 4,229, 0,113, 5, 71, 0,193, 5, 20, 0,186, 4,102, 0,113,
- 4, 59, 0, 5, 4,188, 0, 61, 7, 85, 0,113, 4,188, 0, 59, 5,114, 0,193, 4,186, 0,150, 6,251, 0,193, 7, 36, 0,193,
- 5,160, 0, 42, 6, 31, 0,193, 4,183, 0,193, 4,100, 0,113, 6,128, 0,193, 4,208, 0, 50, 4,236, 0,113, 4,236, 0,113,
- 5, 39, 0, 40, 3,238, 0,186, 4,100, 0,113, 4, 43, 0,111, 2, 57, 0,193, 2, 57,255,244, 2, 57,255,219, 7, 48, 0, 46,
- 7, 34, 0,193, 5, 25, 0, 40, 4,213, 0,191, 5, 65, 0,193, 4,188, 0, 61, 5, 76, 0,193, 7,120, 0,115, 6,179, 0,135,
- 5,125, 0, 33, 4,183, 0, 58, 7,138, 0,211, 5,254, 0,193, 7, 9, 0, 16, 6, 68, 0, 51, 9, 71, 0,201, 8, 3, 0,193,
- 6, 76, 0,115, 4,229, 0,107, 8, 55, 0,201, 6,152, 0,193, 5, 23, 0,115, 4, 83, 0, 91, 6, 76, 0,115, 5, 71, 0,112,
- 6, 76, 0,115, 4,229, 0,113, 6, 64, 0, 16, 5, 82, 0, 50, 6, 64, 0, 16, 5, 82, 0, 50, 5,150, 0,113, 4,226, 0,113,
- 7,160, 0,115, 6, 17, 0,113, 7,120, 0,115, 6,179, 0,135, 7,120, 0,115, 6,179, 0,135, 5,150, 0,115, 4,102, 0,113,
- 4,192, 0, 50, 0, 0,251,218, 0, 0,251,247, 0, 0,252, 34, 0, 0,252, 34, 3, 88,247,214, 3, 88,248, 88, 6, 46, 0,201,
- 5,106, 0,193, 5,125, 0, 33, 4,183, 0, 38, 4,211, 0,201, 5, 20, 0,186, 4,117, 0,201, 3,238, 0,186, 4,117, 0, 71,
- 3,238, 0, 56, 4,254, 0,201, 4, 61, 0,186, 6,232, 0, 59, 5,222, 0, 50, 5, 23, 0,156, 4, 83, 0,133, 5, 63, 0,201,
- 4,213, 0,191, 5, 63, 0,201, 4,213, 0,191, 5, 63, 0, 33, 4,162, 0, 61, 6,107, 0, 50, 5,191, 0, 42, 6, 4, 0,201,
- 5, 73, 0,193, 8, 29, 0,201, 7, 4, 0,193, 8,166, 0,201, 7, 83, 0,193, 6, 94, 0,115, 5, 54, 0,113, 5,150, 0,115,
- 4,102, 0,113, 4,227,255,250, 4, 59, 0, 5, 4,227,255,252, 4,188, 0, 61, 4,227,255,252, 4,188, 0, 61, 5,123, 0, 61,
- 4,188, 0, 59, 7,121,255,250, 6,116, 0, 5, 5,124, 0,175, 4,186, 0,150, 5,124, 0,175, 4,186, 0,150, 5,124, 0,175,
- 5, 18, 0,186, 7,135, 0, 20, 5,211, 0, 15, 7,135, 0, 20, 5,211, 0, 15, 2, 57, 0,193, 6,232, 0, 59, 5,222, 0, 50,
- 5, 63, 0,201, 4,213, 0,191, 6, 53, 0, 54, 5, 93, 0, 46, 6, 4, 0,201, 5, 73, 0,193, 6, 54, 0,201, 5,114, 0,193,
- 5,124, 0,175, 4,186, 0,150, 7, 26, 0,201, 6, 50, 0,193, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16, 4,231, 0,123,
- 7,203, 0, 8, 7,219, 0,123, 5, 14, 0,201, 4,236, 0,113, 6, 76, 0,117, 4,236, 0, 0, 6, 76, 0,117, 4,236, 1, 43,
- 6,232, 0, 59, 5,222, 0, 50, 5, 23, 0,156, 4, 83, 0,133, 5, 84, 0,160, 4,159, 0, 0, 5,252, 0,201, 5, 65, 0,193,
- 5,252, 0,201, 5, 65, 0,193, 6, 76, 0,115, 4,229, 0,113, 6, 76, 0,115, 4,229, 0, 0, 6, 76, 0,115, 4,229, 1, 74,
- 5,150, 0,111, 4,100, 0,113, 4,224, 0, 35, 4,188, 0, 61, 4,224, 0, 35, 4,188, 0, 61, 4,224, 0, 35, 4,188, 0, 61,
- 5,124, 0,175, 4,186, 0,150, 4,117, 0,201, 3,238, 0,186, 7, 15, 0,201, 6, 31, 0,193, 5,125, 0,145, 4,183, 0,113,
- 8, 12, 0,145, 7, 45, 0,113, 7,204, 0,201, 6,244, 0,171, 5,110, 0,201, 4,181, 0,171, 8,147, 0, 54, 7,168, 0, 46,
- 8,148, 0,201, 7,189, 0,193, 6, 51, 0,115, 5, 71, 0, 0, 6, 47,255,250, 5,176, 0, 5, 6,239, 0,178, 5,219, 0,178,
- 7, 15, 0,178, 7, 15, 0,178, 5,219, 0,178, 5, 38, 0,155, 5,219, 0,178, 5,219, 0,178, 6,206, 0,178, 7, 15, 0,178,
- 5,219, 0,178, 5, 8, 0,178, 6,151, 0,178, 7,228, 0, 65, 5,219, 0,178, 5,168, 0,178, 5, 38, 0,143, 7, 15, 0,178,
- 6, 55, 0, 92, 7, 15, 0,178, 5,219, 0,140, 6,185, 0, 92, 5,219, 0,178, 5,219, 0,178, 5,219, 0,178, 6, 83, 0,178,
- 5, 38, 0,155, 7, 15, 0,178, 5,219, 0,178, 7, 15, 0,178, 5, 20, 0,135, 5,219, 0,178, 5,219, 0,140, 6,101, 0,178,
- 6, 76, 0,115, 6, 82, 0, 92, 6, 76, 0,115, 5, 20, 0,135, 2,117, 0,117, 2,139, 0,178, 4, 0, 0, 94, 4, 0, 0,120,
- 3, 34, 0,158, 4, 54, 0, 94, 4, 0, 0, 90, 7,203, 0,186, 5, 18, 0,186, 5,147, 0,113, 5,157, 0,186, 5, 18, 0,174,
- 5,147, 0,113, 4, 68, 0,174, 5, 18, 0,186, 5,154, 0,186, 5,147, 0,113, 5, 18, 0,186, 3, 59, 0,193, 7,189, 0,186,
- 5, 32, 0,113, 5, 18, 0,174, 5, 18, 0,186, 5, 20, 0,113, 5,157, 0,186, 5, 18, 0,174, 5, 70, 0,174, 2, 57,255,219,
- 6, 20, 0, 49, 4, 32, 0,159, 5, 18, 0,186, 3,159, 0, 70, 7,203, 0, 0, 4, 32, 0,159, 5, 18, 0,186, 5, 18, 0,174,
- 5,145, 0,174, 7,202, 0,174, 5, 18, 0,186, 5, 20, 0,113, 3, 59, 0,193, 7,202, 0,174, 5, 47, 0, 0, 4,229, 0,113,
- 5, 8, 0,122, 6, 26, 0,174, 2,178, 0,240, 3,119, 0, 96, 2,149, 0,219, 5,121, 0, 16, 4,231, 0,123, 5,125, 0,201,
- 5, 20, 0,186, 5,125, 0,201, 5, 20, 0,186, 5,125, 0,201, 5, 20, 0,186, 5,150, 0,115, 4,102, 0,113, 6, 41, 0,201,
- 5, 20, 0,113, 6, 41, 0,201, 5, 20, 0,113, 6, 41, 0,201, 5, 20, 0,113, 6, 41, 0,201, 5, 20, 0,113, 6, 41, 0,201,
- 5, 20, 0,113, 5, 14, 0,201, 4,236, 0,113, 5, 14, 0,201, 4,236, 0,113, 5, 14, 0,201, 4,236, 0,113, 5, 14, 0,201,
- 4,236, 0,113, 5, 14, 0,201, 4,236, 0,113, 4,154, 0,201, 2,209, 0, 47, 6, 51, 0,115, 5, 20, 0,113, 6, 4, 0,201,
- 5, 18, 0,186, 6, 4, 0,201, 5, 18, 0,186, 6, 4, 0,201, 5, 18,255,235, 6, 4, 0, 17, 5, 18, 0, 2, 6, 4, 0,201,
- 5, 18, 0,186, 2, 92, 0, 0, 2, 57, 0, 39, 2, 92, 0,201, 2, 57, 0,193, 5, 63, 0,201, 4,162, 0,186, 5, 63, 0,201,
- 4,162, 0,186, 5, 63, 0,201, 4,162, 0,186, 4,117, 0,201, 2, 57, 0,182, 4,117, 0, 3, 2, 57,255,242, 4,117, 0,201,
- 2, 57, 0, 39, 4,117, 0,201, 2, 57,255,222, 6,231, 0,201, 7,203, 0,186, 6,231, 0,201, 7,203, 0,186, 6,231, 0,201,
- 7,203, 0,186, 5,252, 0,201, 5, 18, 0,186, 5,252, 0,201, 5, 18, 0,186, 5,252, 0,201, 5, 18, 0,186, 5,252, 0,201,
- 5, 18, 0,186, 6, 76, 0,115, 4,229, 0,113, 6, 76, 0,115, 4,229, 0,113, 6, 76, 0,115, 4,229, 0,113, 6, 76, 0,115,
- 4,229, 0,113, 4,211, 0,201, 5, 20, 0,186, 4,211, 0,201, 5, 20, 0,186, 5,143, 0,201, 3, 74, 0,186, 5,143, 0,201,
- 3, 74, 0,186, 5,143, 0,201, 3, 74, 0,186, 5,143, 0,201, 3, 74, 0, 84, 5, 20, 0,135, 4, 43, 0,111, 5, 20, 0,135,
- 4, 43, 0,111, 5, 20, 0,135, 4, 43, 0,111, 5, 20, 0,135, 4, 43, 0,111, 5, 20, 0,135, 4, 43, 0,111, 4,227,255,250,
- 3, 35, 0, 55, 4,227,255,250, 3, 35, 0, 55, 4,227,255,250, 3, 35, 0, 55, 4,227,255,250, 3, 35, 0, 55, 5,219, 0,178,
- 5, 18, 0,174, 5,219, 0,178, 5, 18, 0,174, 5,219, 0,178, 5, 18, 0,174, 5,219, 0,178, 5, 18, 0,174, 5,219, 0,178,
- 5, 18, 0,174, 5,121, 0, 16, 4,188, 0, 61, 5,121, 0, 16, 4,188, 0, 61, 7,233, 0, 68, 6,139, 0, 86, 7,233, 0, 68,
- 6,139, 0, 86, 7,233, 0, 68, 6,139, 0, 86, 7,233, 0, 68, 6,139, 0, 86, 7,233, 0, 68, 6,139, 0, 86, 5,123, 0, 61,
- 4,188, 0, 59, 5,123, 0, 61, 4,188, 0, 59, 4,227,255,252, 4,188, 0, 61, 5,123, 0, 92, 4, 51, 0, 88, 5,123, 0, 92,
- 4, 51, 0, 88, 5,123, 0, 92, 4, 51, 0, 88, 5, 18, 0,186, 3, 35, 0, 4, 6,139, 0, 86, 4,188, 0, 61, 4,231, 0,123,
- 2,209, 0, 47, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16,
- 4,231, 0,123, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16,
- 4,231, 0,123, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16, 4,231, 0,123, 5,121, 0, 16,
- 4,231, 0,123, 5, 14, 0,201, 4,236, 0,113, 5, 14, 0,201, 4,236, 0,113, 5, 14, 0,201, 4,236, 0,113, 5, 14, 0,201,
- 4,236, 0,113, 5, 14, 0,201, 4,236, 0,113, 5, 14, 0,201, 4,236, 0,113, 5, 14, 0,201, 4,236, 0,113, 5, 14, 0,201,
- 4,236, 0,113, 2, 92, 0, 90, 2, 57, 0, 68, 2, 92, 0,200, 2, 57, 0,183, 6, 76, 0,115, 4,229, 0,113, 6, 76, 0,115,
- 4,229, 0,113, 6, 76, 0,115, 4,229, 0,113, 6, 76, 0,115, 4,229, 0,113, 6, 76, 0,115, 4,229, 0,113, 6, 76, 0,115,
- 4,229, 0,113, 6, 76, 0,115, 4,229, 0,113, 7, 78, 0,103, 4,229, 0,118, 7, 78, 0,103, 4,229, 0,118, 7, 78, 0,103,
- 4,229, 0,118, 7, 78, 0,103, 4,229, 0,118, 7, 78, 0,103, 4,229, 0,118, 5,219, 0,178, 5, 18, 0,174, 5,219, 0,178,
- 5, 18, 0,174, 6,221, 0,173, 5, 18, 0,176, 6,221, 0,173, 5, 18, 0,176, 6,221, 0,173, 5, 18, 0,176, 6,221, 0,173,
- 5, 18, 0,176, 6,221, 0,173, 5, 18, 0,176, 4,227,255,252, 4,188, 0, 61, 4,227,255,252, 4,188, 0, 61, 4,227,255,252,
- 4,188, 0, 61, 4,227,255,252, 4,188, 0, 61, 4, 0, 1,134, 4, 0, 1,115, 4, 0, 1,134, 4, 0, 0, 0, 8, 0, 0, 0,
- 4, 0, 0, 0, 8, 0, 0, 0, 2,163, 0, 0, 2, 0, 0, 0, 1, 86, 0, 0, 5, 23, 0, 0, 2,139, 0, 0, 1,153, 0, 0,
- 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,227, 0,100, 2,227, 0,100,
- 4, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 4, 0, 1, 4, 4, 0,255,236, 2,139, 0,174, 2,139, 0,178,
- 2,139, 0,174, 2,139, 0,178, 4, 37, 0,174, 4, 37, 0,174, 4, 37, 0,174, 4, 37, 0,174, 4, 0, 0, 57, 4, 0, 0, 57,
- 4,184, 1, 51, 4,184, 1, 51, 2,173, 0,236, 5, 87, 0,236, 8, 0, 0,236, 2,139, 0,220, 10,188, 0,113, 13,226, 0,113,
- 1,209, 0, 40, 2,253, 0, 40, 4, 41, 0, 40, 1,209, 0, 40, 2,253, 0, 40, 4, 41, 0, 40, 2,182, 0, 11, 3, 51, 0,158,
- 3, 51, 0,193, 6,180, 0,195, 3,226, 0,147, 4, 63, 0,147, 4, 0,255,236, 6,110,255,167, 6,110,255,167, 2, 0,255,170,
- 8, 0, 0, 61, 4, 0, 0,221, 1, 86,254,137, 3, 31, 0,176, 3, 31, 0,176, 7, 96, 0, 73, 5,221, 0,147, 5,221, 0,147,
- 3,240, 0,111, 5, 23, 0,236, 4, 0, 0,216, 4, 0, 0,216, 4, 0, 0, 61, 2,178, 1, 29, 6,110,255,167, 4, 0, 0, 61,
- 3,153, 0,145, 6,180, 0,217, 6,110,255,167, 6,180, 1, 56, 4,176, 0,250, 5, 78, 0, 40, 6,180, 1,102, 6,180, 1,102,
- 2,139, 0,219, 6, 97, 0,100, 6,180, 0,112, 2,139, 0,219, 2,139, 0,219, 3, 53, 0, 87, 1,110, 0,121, 3, 53, 0, 63,
- 3, 53, 0,102, 3, 53, 0, 92, 3, 53, 0,108, 3, 53, 0, 89, 3, 53, 0, 83, 4, 57, 0,137, 4, 57, 0,137, 4, 57, 0,137,
- 1,247, 0,111, 1,247, 0,103, 3, 49, 0,117, 3, 53, 0, 87, 3, 53, 0,137, 3, 53, 0, 94, 3, 53, 0, 98, 3, 53, 0, 63,
- 3, 53, 0,102, 3, 53, 0, 92, 3, 53, 0,108, 3, 53, 0, 89, 3, 53, 0, 83, 4, 57, 0,137, 4, 57, 0,137, 4, 57, 0,137,
- 1,247, 0,111, 1,247, 0,103, 7, 4, 0, 86, 5, 23, 0,115, 5, 23, 0, 96, 5, 23, 0,133, 5, 23, 0,129, 7,203, 0,186,
- 5,252, 0,117, 10, 46, 0,201, 8,151, 0,201, 7,233, 0, 59, 6, 70, 0, 95, 5, 23, 0,129, 5, 23, 0, 0, 5, 23, 0, 40,
- 5, 23, 0, 20, 8,117, 0, 27, 5, 23, 0, 68, 6, 49, 0,117, 5, 33, 0,170, 0, 0,252, 61, 0, 0,252, 61, 8, 38, 0, 67,
- 8,252, 0,195, 5, 35,255,214, 8, 38, 0, 60, 8,137, 0, 60, 7,157, 0,195, 5, 18, 0, 72, 5, 18, 0, 34, 5,148, 0,106,
- 3, 78,255,228, 9, 81, 0,201, 8, 0, 1, 27, 5,148, 0,110, 6,131, 0, 83, 6, 87, 0,118, 7, 44, 0,169, 8, 40, 1, 3,
- 8,152,255,252, 8, 0, 1, 39, 6, 29, 0, 78, 6, 29, 0, 78, 5, 63, 0,201, 5,121, 0, 16, 6,214, 0,125, 4,154, 0,201,
- 3,178, 0,104, 5,246, 0,103, 9,141, 0,151, 6, 61, 0, 59, 7,193, 0,137, 7,193, 0, 94, 7,193, 0,137, 7,193, 0, 94,
- 7,193, 0, 98, 7,193, 0, 63, 7,193, 0,137, 7,193, 0,102, 7,193, 0,137, 7,193, 0, 98, 7,193, 0,102, 7,193, 0,108,
- 4,139, 0,137, 2, 92, 0,201, 3,240, 0,201, 5,132, 0,201, 7, 98, 0,201, 5,121, 0, 16, 7, 97, 0, 16, 8,245, 0, 16,
- 10,137, 0, 16, 7, 87, 0,201, 5,123, 0, 61, 7,119, 0, 61, 9, 13, 0, 61, 4,117, 0,201, 5,150, 0,115, 6, 41, 0,201,
- 6,231, 0,201, 2, 57, 0,193, 3,169, 0,193, 5, 25, 0,193, 6,126, 0,193, 4,188, 0, 61, 6,125, 0, 61, 7,237, 0, 61,
- 9, 93, 0, 61, 6,141, 0,193, 4,188, 0, 59, 6,148, 0, 59, 8, 4, 0, 59, 2, 57, 0,193, 4,102, 0,113, 5, 20, 0,113,
- 7,203, 0,186, 9,246, 0,121, 6, 41, 0,201, 9,246, 0,121, 5,160, 0,115, 6,180, 0,100, 6,180, 1,163, 6,180, 0,117,
- 6,180, 1,163, 6,180, 0,100, 6,180, 1,163, 6,180, 1, 32, 6,180, 1, 32, 6,180, 1, 32, 6,180, 1, 32, 6,180, 0,100,
- 6,180, 0,217, 6,180, 0,217, 6,180, 0,217, 1, 86,254,137, 5, 24, 1,138, 5, 2, 0,190, 5, 2, 1, 68, 2,139, 0,219,
- 5, 25, 0, 61, 5, 25, 0, 61, 5, 25, 0, 61, 5,106, 0,221, 6,170, 0,221, 8, 0, 0,247, 6,180, 0,217, 8, 0, 0,172,
- 3, 31, 0,183, 3, 31, 0,164, 7, 44, 0,152, 7, 44, 0,152, 7, 44, 0,152, 7, 44, 0,152, 7, 44, 0,152, 7, 44, 0,152,
- 7, 44, 0,152, 7, 44, 0,152, 7, 44, 0,152, 7, 44, 0,152, 7, 44, 0,170, 5, 30, 0,170, 5,220, 0, 0, 5,131, 0, 47,
- 5, 10, 0, 47, 5, 10, 0, 47, 7,188, 0, 47, 7,188, 0, 47, 5,125, 0, 47, 6,227, 0,111, 9,157, 0,170, 9,157, 0,174,
- 9,145, 0,174, 9,125, 0,174, 12, 60, 0,174, 8, 52, 0, 30, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 28,
- 0, 1, 0, 0, 0, 0, 2,132, 0, 3, 0, 1, 0, 0, 0, 28, 0, 4, 2,104, 0, 0, 0,150, 0,128, 0, 6, 0, 22, 0, 0,
- 0,126, 2, 65, 2, 89, 2, 98, 2,112, 2,117, 2,146, 2,233, 2,238, 2,243, 2,247, 3, 78, 3, 83, 3, 88, 3, 93, 3, 98,
- 3,117, 3,122, 3,126, 3,138, 3,140, 3,161, 3,206, 4,134, 4,206, 4,249, 5, 15, 5, 86, 5, 95, 5,135, 5,138, 6, 12,
- 30,155, 30,249, 31,191, 31,254, 32, 39, 32, 94, 32,113, 32,142, 32,175, 32,177, 32,181, 32,215, 33, 0, 33, 6, 33, 9, 33, 15,
- 33, 17, 33, 19, 33, 24, 33, 30, 33, 34, 33, 39, 33, 43, 33, 46, 33, 50, 33, 53, 33, 59, 33, 75, 33,131, 33,153, 33,181, 34, 30,
- 35, 25, 35, 37, 35, 42, 36,105, 38,177, 40, 0,251, 6,251, 23,255,253,255,255, 0, 0, 0, 0, 0, 32, 0,160, 2, 89, 2, 98,
- 2,112, 2,117, 2,146, 2,176, 2,236, 2,243, 2,247, 3, 0, 3, 81, 3, 87, 3, 92, 3, 96, 3,116, 3,122, 3,126, 3,132,
- 3,140, 3,142, 3,163, 3,208, 4,136, 4,208, 5, 0, 5, 49, 5, 89, 5, 97, 5,137, 6, 12, 30, 0, 30,160, 31,191, 31,253,
- 32, 0, 32, 48, 32,112, 32,116, 32,160, 32,177, 32,180, 32,214, 33, 0, 33, 3, 33, 9, 33, 14, 33, 17, 33, 19, 33, 22, 33, 28,
- 33, 32, 33, 38, 33, 42, 33, 46, 33, 50, 33, 52, 33, 59, 33, 75, 33, 83, 33,144, 33,181, 34, 18, 35, 24, 35, 37, 35, 41, 36, 96,
- 38,176, 40, 0,251, 0,251, 19,255,253,255,255, 0, 0,255,227,255,194,255,171,255,163,255,150,255,146,255,118,255, 89,255, 87,
-255, 83,255, 80,255, 72,255, 70,255, 67,255, 64,255, 62,255, 45,255, 41,255, 38,255, 33,255, 32,255, 31,255, 30,255, 29,255, 28,
-255, 27,255, 21,254,244,254,242,254,241,254,240,254,111,230,124,230,120,229,179,229,118,229,117,229,109,229, 92,229, 90,229, 73,
-229, 72,229, 70,229, 38,228,254,228,252,228,250,228,246,228,245,228,244,228,242,228,239,228,238,228,235,228,233,228,231,228,228,
-228,227,228,222,228,207,228,200,228,188,228,161,228, 69,227, 76,227, 65,227, 62,226, 9,223,195,222,117, 11,118, 11,106, 6,133,
- 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 0,134,135,
-137,139,147,152,158,163,162,164,166,165,167,169,171,170,172,173,175,174,176,177,179,181,180,182,184,183,188,187,189,190, 0,114,
-100,101,105, 0,120,161,112,107, 0,118,106, 0,136,154, 0,115, 0, 0,103,119, 0, 0, 0, 0, 0,108,124, 0,168,186,129, 99,
-110, 0, 0, 0, 0,109,125, 0, 98,130,133,151, 0, 0, 0, 0, 0, 0, 0, 0,185, 0,193, 0, 0, 0, 0, 0, 0, 0, 0,121,
- 0, 0, 0,132,140,131,141,138,143,144,145,142,149,150, 0,148,156,157,155, 0, 0, 0,113, 0, 0, 0,122, 0, 0, 0, 0, 0,
-183, 7, 6, 5, 4, 3, 2, 1, 0, 44, 32, 16,176, 2, 37, 73,100,176, 64, 81, 88, 32,200, 89, 33, 45, 44,176, 2, 37, 73,100,
-176, 64, 81, 88, 32,200, 89, 33, 45, 44, 32, 16, 7, 32,176, 0, 80,176, 13,121, 32,184,255,255, 80, 88, 4, 27, 5, 89,176, 5,
- 28,176, 3, 37, 8,176, 4, 37, 35,225, 32,176, 0, 80,176, 13,121, 32,184,255,255, 80, 88, 4, 27, 5, 89,176, 5, 28,176, 3,
- 37, 8,225, 45, 44, 75, 80, 88, 32,176,253, 69, 68, 89, 33, 45, 44,176, 2, 37, 69, 96, 68, 45, 44, 75, 83, 88,176, 2, 37,176,
- 2, 37, 69, 68, 89, 33, 33, 45, 44, 69, 68, 45, 44,176, 2, 37,176, 2, 37, 73,176, 5, 37,176, 5, 37, 73, 96,176, 32, 99,104,
- 32,138, 16,138, 35, 58,138, 16,101, 58, 45, 0,184, 2,128, 64,255,251,254, 3,250, 20, 3,249, 37, 3,248, 50, 3,247,150, 3,
-246, 14, 3,245,254, 3,244,254, 3,243, 37, 3,242, 14, 3,241,150, 3,240, 37, 3,239,138, 65, 5,239,254, 3,238,150, 3,237,
-150, 3,236,250, 3,235,250, 3,234,254, 3,233, 58, 3,232, 66, 3,231,254, 3,230, 50, 3,229,228, 83, 5,229,150, 3,228,138,
- 65, 5,228, 83, 3,227,226, 47, 5,227,250, 3,226, 47, 3,225,254, 3,224,254, 3,223, 50, 3,222, 20, 3,221,150, 3,220,254,
- 3,219, 18, 3,218,125, 3,217,187, 3,216,254, 3,214,138, 65, 5,214,125, 3,213,212, 71, 5,213,125, 3,212, 71, 3,211,210,
- 27, 5,211,254, 3,210, 27, 3,209,254, 3,208,254, 3,207,254, 3,206,254, 3,205,150, 3,204,203, 30, 5,204,254, 3,203, 30,
- 3,202, 50, 3,201,254, 3,198,133, 17, 5,198, 28, 3,197, 22, 3,196,254, 3,195,254, 3,194,254, 3,193,254, 3,192,254, 3,
-191,254, 3,190,254, 3,189,254, 3,188,254, 3,187,254, 3,186, 17, 3,185,134, 37, 5,185,254, 3,184,183,187, 5,184,254, 3,
-183,182, 93, 5,183,187, 3,183,128, 4,182,181, 37, 5,182, 93, 64,255, 3,182, 64, 4,181, 37, 3,180,254, 3,179,150, 3,178,
-254, 3,177,254, 3,176,254, 3,175,254, 3,174,100, 3,173, 14, 3,172,171, 37, 5,172,100, 3,171,170, 18, 5,171, 37, 3,170,
- 18, 3,169,138, 65, 5,169,250, 3,168,254, 3,167,254, 3,166,254, 3,165, 18, 3,164,254, 3,163,162, 14, 5,163, 50, 3,162,
- 14, 3,161,100, 3,160,138, 65, 5,160,150, 3,159,254, 3,158,157, 12, 5,158,254, 3,157, 12, 3,156,155, 25, 5,156,100, 3,
-155,154, 16, 5,155, 25, 3,154, 16, 3,153, 10, 3,152,254, 3,151,150, 13, 5,151,254, 3,150, 13, 3,149,138, 65, 5,149,150,
- 3,148,147, 14, 5,148, 40, 3,147, 14, 3,146,250, 3,145,144,187, 5,145,254, 3,144,143, 93, 5,144,187, 3,144,128, 4,143,
-142, 37, 5,143, 93, 3,143, 64, 4,142, 37, 3,141,254, 3,140,139, 46, 5,140,254, 3,139, 46, 3,138,134, 37, 5,138, 65, 3,
-137,136, 11, 5,137, 20, 3,136, 11, 3,135,134, 37, 5,135,100, 3,134,133, 17, 5,134, 37, 3,133, 17, 3,132,254, 3,131,130,
- 17, 5,131,254, 3,130, 17, 3,129,254, 3,128,254, 3,127,254, 3, 64,255,126,125,125, 5,126,254, 3,125,125, 3,124,100, 3,
-123, 84, 21, 5,123, 37, 3,122,254, 3,121,254, 3,120, 14, 3,119, 12, 3,118, 10, 3,117,254, 3,116,250, 3,115,250, 3,114,
-250, 3,113,250, 3,112,254, 3,111,254, 3,110,254, 3,108, 33, 3,107,254, 3,106, 17, 66, 5,106, 83, 3,105,254, 3,104,125,
- 3,103, 17, 66, 5,102,254, 3,101,254, 3,100,254, 3, 99,254, 3, 98,254, 3, 97, 58, 3, 96,250, 3, 94, 12, 3, 93,254, 3,
- 91,254, 3, 90,254, 3, 89, 88, 10, 5, 89,250, 3, 88, 10, 3, 87, 22, 25, 5, 87, 50, 3, 86,254, 3, 85, 84, 21, 5, 85, 66,
- 3, 84, 21, 3, 83, 1, 16, 5, 83, 24, 3, 82, 20, 3, 81, 74, 19, 5, 81,254, 3, 80, 11, 3, 79,254, 3, 78, 77, 16, 5, 78,
-254, 3, 77, 16, 3, 76,254, 3, 75, 74, 19, 5, 75,254, 3, 74, 73, 16, 5, 74, 19, 3, 73, 29, 13, 5, 73, 16, 3, 72, 13, 3,
- 71,254, 3, 70,150, 3, 69,150, 3, 68,254, 3, 67, 2, 45, 5, 67,250, 3, 66,187, 3, 65, 75, 3, 64,254, 3, 63,254, 3, 62,
- 61, 18, 5, 62, 20, 3, 61, 60, 15, 5, 61, 18, 3, 60, 59, 13, 5, 60, 64,255, 15, 3, 59, 13, 3, 58,254, 3, 57,254, 3, 56,
- 55, 20, 5, 56,250, 3, 55, 54, 16, 5, 55, 20, 3, 54, 53, 11, 5, 54, 16, 3, 53, 11, 3, 52, 30, 3, 51, 13, 3, 50, 49, 11,
- 5, 50,254, 3, 49, 11, 3, 48, 47, 11, 5, 48, 13, 3, 47, 11, 3, 46, 45, 9, 5, 46, 16, 3, 45, 9, 3, 44, 50, 3, 43, 42,
- 37, 5, 43,100, 3, 42, 41, 18, 5, 42, 37, 3, 41, 18, 3, 40, 39, 37, 5, 40, 65, 3, 39, 37, 3, 38, 37, 11, 5, 38, 15, 3,
- 37, 11, 3, 36,254, 3, 35,254, 3, 34, 15, 3, 33, 1, 16, 5, 33, 18, 3, 32,100, 3, 31,250, 3, 30, 29, 13, 5, 30,100, 3,
- 29, 13, 3, 28, 17, 66, 5, 28,254, 3, 27,250, 3, 26, 66, 3, 25, 17, 66, 5, 25,254, 3, 24,100, 3, 23, 22, 25, 5, 23,254,
- 3, 22, 1, 16, 5, 22, 25, 3, 21,254, 3, 20,254, 3, 19,254, 3, 18, 17, 66, 5, 18,254, 3, 17, 2, 45, 5, 17, 66, 3, 16,
-125, 3, 15,100, 3, 14,254, 3, 13, 12, 22, 5, 13,254, 3, 12, 1, 16, 5, 12, 22, 3, 11,254, 3, 10, 16, 3, 9,254, 3, 8,
- 2, 45, 5, 8,254, 3, 7, 20, 3, 6,100, 3, 4, 1, 16, 5, 4,254, 3, 64, 21, 3, 2, 45, 5, 3,254, 3, 2, 1, 16, 5,
- 2, 45, 3, 1, 16, 3, 0,254, 3, 1,184, 1,100,133,141, 1, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 0, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 29, 1, 53, 0,184, 0,203, 0,203, 0,193, 0,170,
- 0,156, 1,166, 0,184, 0,102, 0, 0, 0,113, 0,203, 0,160, 2,178, 0,133, 0,117, 0,184, 0,195, 1,203, 1,137, 2, 45,
- 0,203, 0,166, 0,240, 0,211, 0,170, 0,135, 0,203, 3,170, 4, 0, 1, 74, 0, 51, 0,203, 0, 0, 0,217, 5, 2, 0,244,
- 1, 84, 0,180, 0,156, 1, 57, 1, 20, 1, 57, 7, 6, 4, 0, 4, 78, 4,180, 4, 82, 4,184, 4,231, 4,205, 0, 55, 4,115,
- 4,205, 4, 96, 4,115, 1, 51, 3,162, 5, 86, 5,166, 5, 86, 5, 57, 3,197, 2, 18, 0,201, 0, 31, 0,184, 1,223, 0,115,
- 0,186, 3,233, 3, 51, 3,188, 4, 68, 4, 14, 0,223, 3,205, 3,170, 0,229, 3,170, 4, 4, 0, 0, 0,203, 0,143, 0,164,
- 0,123, 0,184, 0, 20, 1,111, 0,127, 2,123, 2, 82, 0,143, 0,199, 5,205, 0,154, 0,154, 0,111, 0,203, 0,205, 1,158,
- 1,211, 0,240, 0,186, 1,131, 0,213, 0,152, 3, 4, 2, 72, 0,158, 1,213, 0,193, 0,203, 0,246, 0,131, 3, 84, 2,127,
- 0, 0, 3, 51, 2,102, 0,211, 0,199, 0,164, 0,205, 0,143, 0,154, 0,115, 4, 0, 5,213, 1, 10, 0,254, 2, 43, 0,164,
- 0,180, 0,156, 0, 0, 0, 98, 0,156, 0, 0, 0, 29, 3, 45, 5,213, 5,213, 5,213, 5,240, 0,127, 0,123, 0, 84, 0,164,
- 6,184, 6, 20, 7, 35, 1,211, 0,184, 0,203, 0,166, 1,195, 1,236, 6,147, 0,160, 0,211, 3, 92, 3,113, 3,219, 1,133,
- 4, 35, 4,168, 4, 72, 0,143, 1, 57, 1, 20, 1, 57, 3, 96, 0,143, 5,213, 1,154, 6, 20, 7, 35, 6,102, 1,121, 4, 96,
- 4, 96, 4, 96, 4,123, 0,156, 0, 0, 2,119, 4, 96, 1,170, 0,233, 4, 96, 7, 98, 0,123, 0,197, 0,127, 2,123, 0, 0,
- 0,180, 2, 82, 5,205, 0,102, 0,188, 0,102, 0,119, 6, 16, 0,205, 1, 59, 1,133, 3,137, 0,143, 0,123, 0, 0, 0, 29,
- 0,205, 7, 74, 4, 47, 0,156, 0,156, 0, 0, 7,125, 0,111, 0, 0, 0,111, 3, 53, 0,106, 0,111, 0,123, 0,174, 0,178,
- 0, 45, 3,150, 0,143, 2,123, 0,246, 0,131, 3, 84, 6, 55, 5,246, 0,143, 0,156, 4,225, 2,102, 0,143, 1,141, 2,246,
- 0,205, 3, 68, 0, 41, 0,102, 4,238, 0,115, 0, 0, 20, 0, 0,150, 0, 0, 0, 0, 0, 34, 0, 34, 0, 34, 0, 34, 0, 84,
- 0,138, 0,246, 1,162, 2, 54, 3,106, 3,148, 3,204, 3,248, 4, 70, 4,112, 4,140, 4,162, 4,182, 4,220, 5, 30, 5, 86,
- 5,212, 6, 72, 6,166, 7, 6, 7,114, 7,184, 8, 34, 8,140, 8,172, 8,212, 9, 16, 9, 50, 9,110, 9,218, 10,154, 11, 20,
- 11,108, 11,184, 11,248, 12, 40, 12, 82, 12,166, 12,212, 12,248, 13, 48, 13,196, 13,230, 14,100, 14,184, 14,254, 15, 62, 15,164,
- 16, 46, 16,170, 16,226, 17, 36, 17,148, 18,114, 18,196, 19, 38, 19,134, 19,182, 19,220, 20, 6, 20, 40, 20, 62, 20,102, 20,252,
- 21, 72, 21,148, 21,224, 22, 74, 22,150, 22,250, 23, 54, 23, 94, 23,156, 24, 20, 24, 50, 24,148, 24,208, 25, 34, 25,114, 25,194,
- 25,250, 26,170, 26,232, 27, 36, 27,182, 28,200, 29,138, 30,112, 30,214, 31, 68, 31, 92, 31,210, 32, 20, 32, 20, 32, 92, 32,194,
- 33, 30, 33,170, 34, 60, 34, 96, 35, 4, 35, 96, 35,242, 36, 96, 36,198, 36,226, 36,248, 37,158, 37,196, 38, 0, 38, 56, 38,136,
- 38,230, 39, 14, 39,104, 39,150, 39,172, 39,220, 40, 8, 40, 76, 40,180, 40,196, 40,212, 40,228, 41, 96, 41,108, 41,120, 41,142,
- 41,166, 41,190, 42, 94, 42,202, 42,214, 42,226, 42,238, 43, 0, 43, 18, 43, 30, 43, 42, 43, 60, 43, 78, 43,180, 43,204, 43,216,
- 43,228, 43,250, 44, 20, 44, 44, 44,144, 45, 44, 45, 56, 45, 68, 45, 92, 45,120, 45,132, 45,200, 46, 92, 46,110, 46,128, 46,144,
- 46,166, 46,194, 46,226, 47,192, 47,204, 47,216, 47,228, 47,246, 48, 8, 48, 20, 48, 32, 48, 50, 48, 68, 49, 28, 49, 40, 49, 52,
- 49, 64, 49, 80, 49,102, 49,124, 49,170, 50,100, 50,112, 50,124, 50,140, 50,164, 50,176, 51, 0, 51, 24, 51, 46, 51, 66, 51, 88,
- 51,104, 51,116, 51,128, 51,140, 51,152, 51,170, 51,182, 51,194, 51,206, 51,224, 51,236, 51,248, 52, 12, 52, 20, 52,114, 52,126,
- 52,144, 52,162, 52,180, 52,192, 52,204, 52,216, 52,228, 52,246, 53, 12, 53, 30, 53, 48, 53, 60, 53, 72, 53, 90, 53,102, 53,114,
- 53,126, 53,150, 53,184, 53,252, 54, 70, 54, 88, 54,106, 54,124, 54,142, 54,160, 54,178, 54,190, 54,202, 54,226, 55, 0, 55, 18,
- 55, 36, 55, 54, 55, 72, 55, 84, 55, 96, 55,216, 55,228, 56, 0, 56, 12, 56, 30, 56, 42, 56, 60, 56, 72, 56, 98, 56,160, 56,232,
- 56,250, 57, 12, 57, 24, 57, 36, 57, 60, 57, 82, 57, 94, 57,166, 57,244, 58, 10, 58, 26, 58, 48, 58, 64, 58, 76, 58, 88, 58,168,
- 59, 60, 59, 72, 59, 84, 59, 96, 59,108, 59,126, 59,146, 59,158, 59,170, 59,190, 59,208, 59,220, 59,232, 59,252, 60, 14, 60, 26,
- 60, 38, 60, 60, 60, 78, 60,144, 60,220, 60,242, 61, 4, 61, 28, 61, 46, 61, 68, 61, 86, 61,104, 61,122, 61,134, 61,146, 61,158,
- 61,170, 61,188, 61,206, 61,224, 61,240, 62, 2, 62, 14, 62, 26, 62, 38, 62, 50, 62, 62, 62, 82, 62,126, 62,228, 63, 72, 63, 80,
- 63,170, 63,240, 64, 68, 64,140, 64,202, 65, 0, 65, 8, 65, 82, 65,144, 65,192, 66, 8, 66, 54, 66,142, 66,234, 67, 42, 67,134,
- 67,234, 68,116, 68,212, 69, 2, 69, 58, 69, 98, 69,230, 70, 22, 70, 58, 70,112, 70,216, 70,224, 71, 48, 71, 60, 71, 72, 71,130,
- 71,184, 72, 4, 72,102, 72,164, 72,226, 73,134, 73,142, 73,196, 73,240, 74, 56, 74,134, 74,204, 74,216, 74,228, 75, 58, 75,106,
- 75,142, 75,186, 75,222, 76, 2, 76, 62, 76,122, 76,180, 76,234, 77, 32, 77, 96, 77,156, 77,214, 78, 0, 78, 14, 78, 26, 78, 60,
- 78, 68, 78, 80, 78, 92, 78,104, 78,116, 78,128, 78,140, 78,152, 78,164, 78,176, 78,192, 78,208, 78,228, 78,248, 79, 4, 79, 20,
- 79, 36, 79, 54, 79, 66, 79, 78, 79, 90, 79,102, 79,114, 79,126, 79,138, 79,150, 79,158, 79,170, 79,182, 79,194, 79,206, 79,218,
- 79,230, 80, 38, 80,118, 80,140, 80,152, 80,164, 80,198, 80,210, 80,222, 80,234, 80,246, 81, 2, 81, 14, 81, 34, 81, 46, 81, 58,
- 81, 70, 81, 84, 81, 96, 81,146, 81,190, 81,202, 81,214, 81,226, 81,238, 81,250, 82, 6, 82, 18, 82, 30, 82, 42, 82, 54, 82, 66,
- 82, 78, 82, 90, 82,102, 82,114, 82,126, 82,138, 82,150, 82,162, 82,174, 82,186, 82,198, 82,210, 82,222, 82,234, 82,246, 83, 2,
- 83, 14, 83, 26, 83, 38, 83, 50, 83, 62, 83, 74, 83, 86, 83, 98, 83,110, 83,186, 84, 8, 84, 20, 84, 54, 84, 94, 84,176, 85, 10,
- 85, 92, 85,130, 85,168, 85,180, 85,192, 85,204, 85,216, 85,228, 85,240, 85,252, 86, 8, 86, 20, 86, 32, 86, 44, 86, 56, 86, 68,
- 86, 80, 86,122, 86,188, 86,240, 87, 34, 87,112, 87,190, 87,246, 88, 62, 88,128, 88,154, 88,194, 89, 22, 89, 66, 89,108, 89,108,
- 89,108, 89,108, 89,108, 89,108, 89,166, 89,238, 90, 30, 90, 78, 90,116, 90,166, 90,220, 90,248, 91, 26, 91, 34, 91, 42, 91, 50,
- 91, 58, 91, 76, 91,104, 91,134, 91,180, 91,228, 91,248, 92, 12, 92, 32, 92, 52, 92, 98, 92,144, 92,168, 92,176, 92,190, 92,206,
- 92,230, 92,240, 93, 0, 93, 14, 93, 34, 93, 48, 93, 58, 93, 68, 93, 86, 93,104, 93,126, 93,140, 93,210, 93,234, 94, 32, 94, 80,
- 94,176, 94,230, 95, 2, 95, 28, 95, 70, 95, 90, 95,166, 95,194, 95,242, 96, 12, 96, 50, 96, 82, 96,120, 96,146, 96,156, 96,168,
- 96,188, 96,198, 96,244, 96,254, 97, 8, 97, 18, 97, 28, 97, 38, 97, 48, 97, 58, 97, 68, 97, 78, 97,136, 97,146, 97,156, 97,166,
- 97,180, 97,194, 97,216, 97,230, 97,240, 98, 4, 98, 24, 98, 42, 98, 56, 98, 66, 98, 76, 98, 94, 98,112, 98,128, 98,186, 98,214,
- 98,232, 98,250, 99, 16, 99, 30, 99, 54, 99, 78, 99, 88, 99, 98, 99,108, 99,126, 99,136, 99,146, 99,160, 99,178, 99,214, 99,224,
- 99,234, 99,244, 99,254,100, 8,100, 18,100, 28,100, 38,100, 84,100, 98,100,112,100,128,100,144,100,154,100,164,100,186,100,222,
-100,248,101, 40,101, 54,101, 64,101, 74,101, 84,101, 94,101,104,101,114,101,132,101,152,101,172,101,188,101,250,102, 14,102, 26,
-102, 54,102, 74,102,106,102,118,102,128,102,160,102,170,102,180,102,190,102,248,103, 2,103, 22,103, 46,103, 70,103, 96,103,104,
-103,144,103,168,103,180,103,188,103,202,103,216,103,230,103,242,104, 0,104, 12,104, 24,104, 32,104, 40,104, 68,104,122,104,130,
-104,138,104,146,104,234,104,242,104,250,105, 44,105, 52,105, 60,105,108,105,116,105,124,105,132,105,194,105,202,105,210,105,218,
-105,226,106, 44,106,132,106,150,106,168,106,180,106,192,106,204,106,216,106,228,107,144,107,228,108, 36,108,150,108,254,109, 80,
-109,142,109,234,110, 18,110, 82,110,148,110,156,110,228,111, 66,111, 74,111,136,111,210,112, 40,112,116,112,164,112,234,113, 78,
-113,184,114, 2,114, 80,114, 92,114,104,114,116,114,128,114,140,114,228,115, 40,115, 92,115,106,115,118,115,218,116, 16,116, 96,
-116,150,116,200,117, 2,117, 56,117, 64,117,118,117,164,117,186,117,248,118, 38,118,134,118,200,118,252,119, 40,119,102,119,218,
-120, 22,120, 78,120,168,121, 2,121, 76,121,152,121,182,121,210,122, 26,122, 80,122, 88,122, 96,122,154,122,210,123, 8,123, 16,
-123, 24,123, 32,123, 62,123, 92,123,148,123,156,123,168,123,180,123,192,123,204,123,250,124, 6,124, 96,124,104,124,112,124,130,
-124,138,124,196,124,246,125, 26,125, 38,125, 50,125, 62,125, 86,125, 94,125,158,125,166,125,194,126, 10,126, 18,126,118,126,126,
-126,212,126,224,126,232,127, 26,127, 34,127, 42,127, 50,127, 86,127, 94,127,102,127,110,127,178,128, 18,128, 26,128, 70,128,118,
-128,162,128,216,129, 24,129, 44,129,102,129,192,130, 32,130,116,130,124,130,234,131, 64,131, 92,131,162,131,170,132, 14,132,116,
-132,172,132,184,132,246,133, 40,133,108,133,152,133,160,133,200,133,208,133,216,133,254,134, 6,134,142,134,150,134,194,134,242,
-135, 30,135, 84,135,150,135,170,135,230,136, 22,136,110,136,200,136,212,136,224,137, 26,137, 38,137,114,137,122,137,130,137,148,
-137,156,137,214,138, 10,138, 56,138, 68,138, 80,138, 92,138,116,138,196,138,204,138,212,139, 8,139, 80,139,136,139,172,139,208,
-140, 0,140, 48,140,100,140,152,140,214,141, 18,141,124,141,240,141,248,142, 0,142, 66,142,132,142,172,143,114,143,170,143,182,
-143,190,143,198,144, 66,144,184,144,196,144,208,145, 50,145,118,145,164,145,206,146, 0,146, 76,146,108,146,126,146,144,146,190,
-147, 28,147, 58,147,108,147,156,147,208,147,254,148, 58,148, 90,148,122,148,148,148,174,148,218,149, 10,149, 58,149,106,149,118,
-149,130,149,162,149,192,149,230,150, 10,150, 46,150, 82,150,114,150,144,150,174,150,204,150,232,151, 4,151, 52,151,102,151,200,
-152, 38,152, 50,152, 62,152, 86,152,110,152,118,152,142,152,174,152,206,152,242,153, 22,153, 52,153, 82,153,118,153,154,153,194,
-153,232,154, 8,154, 16,154, 88,154,156,154,168,154,180,154,188,154,206,154,224,155, 14,155, 64,155,102,155,144,155,182,155,218,
-155,248,156, 22,156, 58,156, 94,156,132,156,170,156,192,156,208,156,232,157, 4,157, 12,157, 20,157, 38,157, 56,157, 64,157, 72,
-157, 84,157, 96,157,114,157,126,157,138,157,150,157,158,157,166,157,178,157,190,157,202,157,214,157,238,158, 4,158, 12,158, 20,
-158, 32,158, 44,158, 56,158, 68,158, 80,158, 92,158,104,158,116,158,128,158,140,158,152,158,164,158,186,158,208,158,220,158,232,
-159, 18,159, 60,159,136,159,206,160, 30,160,108,160,170,160,232,161, 32,161, 86,161, 94,161,140,161,148,161,156,161,198,161,240,
-162, 36,162, 86,162,150,162,200,162,250,163, 64,163,110,163,160,163,244,164, 52,164, 86,164,116,164,162,164,240,165, 18,165, 54,
-165,144,165,192,166, 2,166, 52,166,120,166,170,166,226,167, 4,167, 60,167,102,167,174,167,224,167,232,168, 24,168, 32,168, 66,
-168,154,168,190,168,198,169, 30,169, 38,169,114,169,122,169,130,169,144,169,176,169,184,169,222,169,240,170, 88,170,158,170,242,
-171, 54,171,128,171,210,172, 10,172, 76,172,200,173, 22,173, 82,173,114,173,226,174, 92,174,154,174,162,175, 34,175,100,175,218,
-176, 58,176, 66,176,154,176,250,177, 2,177,104,177,112,177,228,178, 70,178, 78,178,144,178,252,179, 58,179, 66,179, 96,179,206,
-180, 50,180, 58,180,204,181, 12,181, 44,181, 70,181, 86,181, 98,181,110,181,122,181,134,181,146,181,158,181,170,181,182,181,196,
-181,208,181,220,181,232,181,244,182, 0,182, 12,182, 24,182, 36,182, 48,182, 60,182, 72,182, 84,182, 96,182,108,182,120,182,132,
-182,144,182,156,182,168,182,186,182,202,182,214,182,226,182,238,182,250,183, 6,183, 18,183, 30,183, 42,183, 54,183, 66,183, 78,
-183, 90,183,102,183,114,183,126,183,140,183,152,183,164,183,178,183,190,183,202,183,214,183,226,183,238,183,250,184, 6,184, 22,
-184, 34,184, 46,184, 60,184, 72,184, 84,184, 98,184,110,184,122,184,134,184,146,184,158,184,170,184,182,184,194,184,206,184,218,
-184,230,184,242,184,254,185, 10,185, 22,185, 34,185, 50,185, 62,185, 74,185, 86,185, 98,185,112,185,124,185,136,185,148,185,160,
-185,172,185,184,185,196,185,210,185,222,185,234,185,246,186, 2,186, 14,186, 26,186, 38,186, 56,186, 72,186, 84,186, 96,186,108,
-186,120,186,132,186,144,186,156,186,168,186,180,186,194,186,206,186,218,186,230,186,242,186,254,187, 10,187, 22,187, 34,187, 46,
-187, 58,187, 70,187, 82,187, 94,187,106,187,118,187,130,187,142,187,154,187,166,187,178,187,190,187,202,187,214,187,226,187,238,
-187,250,188, 6,188, 18,188, 30,188, 42,188, 54,188, 66,188, 80,188, 92,188,104,188,116,188,128,188,140,188,152,188,164,188,176,
-188,188,188,200,188,212,188,224,188,236,188,248,189, 4,189, 16,189, 28,189, 40,189, 52,189, 64,189, 76,189, 88,189,100,189,112,
-189,124,189,136,189,148,189,160,189,172,189,184,189,196,189,208,189,220,189,232,189,244,190, 0,190, 12,190, 24,190, 36,190, 50,
-190, 62,190, 74,190, 86,190, 98,190,110,190,122,190,134,190,146,190,158,190,170,190,186,190,198,190,210,190,222,190,234,190,246,
-191, 2,191, 14,191, 26,191, 38,191, 50,191, 62,191, 74,191, 86,191, 98,191,110,191,122,191,134,191,150,191,162,191,174,191,186,
-191,198,191,210,191,222,191,234,191,246,192, 2,192, 14,192, 26,192, 38,192, 50,192, 62,192, 74,192, 86,192, 98,192,110,192,122,
-192,134,192,146,192,158,192,170,192,182,192,194,192,206,192,218,192,230,192,242,192,254,193, 12,193, 24,193, 80,193, 88,193,142,
-193,142,193,142,193,142,193,142,193,142,193,142,193,142,193,142,193,142,193,142,193,142,193,142,193,142,193,142,193,142,193,142,
-193,164,193,172,193,194,193,216,193,236,194, 0,194, 12,194, 24,194, 54,194, 84,194,112,194,130,194,176,194,222,195, 12,195, 38,
-195, 82,195,148,195,180,195,194,195,206,195,224,196, 10,196, 22,196,220,197,100,197,116,197,128,197,144,197,158,197,170,197,186,
-197,204,198, 4,198, 62,198, 86,198,100,198,162,198,172,198,220,199, 12,199, 34,199, 52,199, 64,199,100,199,124,199,148,199,160,
-199,172,199,186,199,220,199,248,200, 16,200, 40,200, 50,200, 72,200, 84,200, 98,200,116,200,124,200,134,200,176,200,202,200,222,
-200,254,201, 36,201, 54,201, 84,201,134,201,158,201,188,201,230,202, 8,202,142,202,192,203, 8,203, 28,203,116,203,186,203,212,
-203,226,203,246,204, 18,204, 48,204,106,204,116,204,126,204,136,204,146,204,156,204,166,204,176,204,186,204,196,204,206,204,216,
-204,226,204,236,204,246,205, 0,205, 58,205,146,205,218,205,250,206, 46,206,112,206,178,207, 36,207,140,207,226,208, 20,208, 32,
-208,250,209, 30,209, 74,209,174,209,250,210, 74,210,148,210,168,210,188,211, 28,211, 42,211,190,212, 12,212, 88,212,100,212,146,
-212,198,213, 16,213, 80,213, 92,213,176,214, 10,214,136,214,222,215,106,215,186,215,234,216, 48,216, 56,216,112,216,120,216,128,
-216,196,216,218,217, 4,217, 88,217,154,217,232,217,248,218, 8,218, 24,218, 40,218, 56,218, 72,218, 88,218,104,218,120,218,136,
-218,152,218,168,218,180,218,188,218,200,218,216,218,228,218,236,218,248,219, 8,219, 28,219, 40,219, 48,219, 60,219, 76,219, 84,
-219, 92,219,100,219,108,219,116,219,128,219,144,219,156,219,164,219,176,219,192,219,212,219,224,219,232,219,244,220, 4,220, 12,
-220, 20,220, 28,220, 36,220,102,221, 36,221,146,221,154,221,242,222, 74,222,162,222,250,223,138,224, 28,224, 52,224, 76,224,100,
-224,124,224,152,224,174,224,204,225, 22,225, 58,225, 68,225, 78,225, 88,225,110,225,158,225,170,225,182,225,242,226,184,227, 54,
-227, 72,227,100,227,120,227,140,228, 68,229, 70,230,142,231, 86,232, 92,233,142,234, 74,235,200,236,252,238, 50,238, 74,238,126,
-238,126,238,214,239, 32,239, 96,239,208,240, 48,240,112,240,236,241, 84,241,168,241,246,242, 78,242,178,242,248,242,248,242,248,
-242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,
-242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248,242,248, 0, 2, 0,102,
-254,150, 4,102, 5,164, 0, 3, 0, 7, 0, 26, 64, 12, 4,251, 0, 6,251, 1, 8, 5,127, 2, 4, 0, 47,196,212,236, 49, 0,
- 16,212,236,212,236, 48, 19, 17, 33, 17, 37, 33, 17, 33,102, 4, 0,252,115, 3, 27,252,229,254,150, 7, 14,248,242,114, 6, 41,
- 0, 2, 1, 53, 0, 0, 2, 0, 5,213, 0, 3, 0, 9, 0, 53, 64, 15, 7, 0,131, 4,129, 2, 8, 7, 5, 1, 3, 4, 0, 0,
- 10, 16,252, 75,176, 11, 84, 88,185, 0, 0,255,192, 56, 89, 60,236, 50, 57, 57, 49, 0, 47,228,252,204, 48, 1,182, 0, 11, 32,
- 11, 80, 11, 3, 93, 37, 51, 21, 35, 17, 51, 17, 3, 35, 3, 1, 53,203,203,203, 20,162, 21,254,254, 5,213,253,113,254,155, 1,
-101, 0, 0, 0, 0, 2, 0,197, 3,170, 2,233, 5,213, 0, 3, 0, 7, 0, 66, 64, 15, 5, 1,132, 4, 0,129, 8, 4, 5, 6,
- 0, 5, 2, 4, 8, 16,252, 75,176, 18, 84, 75,176, 19, 84, 91, 88,185, 0, 2,255,192, 56, 89,252,220,236, 49, 0, 16,244, 60,
-236, 50, 48, 1, 64, 15, 48, 9, 64, 9, 80, 9, 96, 9,112, 9,160, 9,191, 9, 7, 93, 1, 17, 35, 17, 33, 17, 35, 17, 1,111,
-170, 2, 36,170, 5,213,253,213, 2, 43,253,213, 2, 43, 0, 0, 0, 2, 0,158, 0, 0, 6, 23, 5,190, 0, 3, 0, 31, 0, 96,
- 64, 49, 27, 11, 0,135, 7, 4, 29, 9, 5, 25, 13, 2,135, 23, 19, 15, 21, 17, 31, 30, 28, 27, 26, 23, 22, 21, 20, 19, 18, 17,
- 16, 14, 13, 12, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 26, 10, 24, 6, 32, 16,252,204, 23, 57, 49, 0, 47, 60,212, 60, 60,252,
- 60, 60,212, 60, 60,196, 50,236, 50, 50, 48, 64, 17, 11, 1, 11, 2, 11, 12, 11, 13, 20, 4, 26, 17, 26, 18, 20, 31, 8, 1, 93,
- 1, 33, 3, 33, 11, 1, 33, 19, 51, 3, 33, 21, 33, 3, 33, 21, 33, 3, 35, 19, 33, 3, 35, 19, 33, 53, 33, 19, 33, 53, 33, 19,
- 4, 23,254,221, 84, 1, 37, 68,104, 1, 36,105,160,103, 1, 56,254,161, 82, 1, 62,254,155,104,160,103,254,219,103,161,104,254,
-197, 1, 96, 84,254,190, 1,105,102, 3,133,254,178, 3,135,254, 97, 1,159,254, 97,154,254,178,153,254, 98, 1,158,254, 98, 1,
-158,153, 1, 78,154, 1,159, 0, 0, 3, 0,170,254,211, 4,109, 6, 20, 0, 33, 0, 40, 0, 47, 0,189, 64, 85, 34, 2, 10, 11,
- 10, 39, 1, 38, 40, 2, 11, 11, 10, 29, 1, 30, 28, 2, 47, 41, 47, 27, 2, 41, 41, 47, 66, 19, 17, 16, 34, 10, 27, 41, 4, 23,
- 6, 9, 42, 33, 5, 2, 23,134, 22, 6,134, 5, 17, 35, 26,138, 22,137, 16, 0, 42,138, 5,137, 2, 45, 8, 22, 10, 30, 7, 41,
- 26, 18, 3, 0, 9, 34, 16, 9, 3, 1, 7, 38, 8, 13, 5, 6, 48, 16,252, 75,176, 9, 84, 88,185, 0, 5,255,192, 56, 89, 75,
-176, 12, 84, 75,176, 16, 84, 91, 75,176, 15, 84, 91, 88,185, 0, 5, 0, 64, 56, 89, 60,236,244, 23, 60,252, 23, 60,244,228,236,
- 49, 0, 47,228,236,196,212,228,236, 50,196, 16,238, 16,238, 17, 18, 57, 17, 57, 17, 18, 23, 57, 17, 18, 57, 48, 75, 83, 88, 7,
- 16, 4,237, 7, 16, 14,237, 17, 23, 57, 7, 16, 14,237, 17, 23, 57, 7, 16, 4,237, 89, 34, 1, 35, 3, 46, 1, 39, 53, 30, 1,
- 23, 17, 46, 1, 53, 52, 54, 55, 53, 51, 21, 30, 1, 23, 21, 46, 1, 39, 17, 30, 1, 21, 20, 6, 7, 3, 17, 14, 1, 21, 20, 22,
- 23, 17, 62, 1, 53, 52, 38, 2,180,100, 1,105,210,106,102,209,111,221,201,218,204,100, 93,174, 83, 83,175, 92,227,214,227,214,
-100,116,122,113,225,127,129,123,254,211, 1, 45, 2, 45, 45,180, 64, 65, 1, 1,200, 36,172,150,163,188, 14,235,232, 4, 31, 27,
-175, 42, 46, 4,254, 85, 35,180,156,169,195, 15, 3, 0, 1,154, 13,106, 88, 86, 96,213,254, 79, 17,110, 90, 88,104, 0, 0, 0,
- 0, 5, 0,113,255,227, 7, 41, 5,240, 0, 11, 0, 23, 0, 35, 0, 39, 0, 51, 0,137, 64, 54, 36, 15, 37, 38, 37, 38, 15, 39,
- 36, 39, 66, 0,146, 12, 30,146, 46,141, 24,146, 36, 6,146, 12,141, 38, 18,140, 40, 36,145, 52, 39, 33, 27, 37, 9, 3, 13, 21,
- 14, 9, 13, 15, 33, 13, 43, 14, 27, 13, 15, 49, 11, 52, 16,252, 75,176, 9, 84, 75,176, 11, 84, 91, 75,176, 12, 84, 91, 75,176,
- 20, 84, 91, 75,176, 14, 84, 91, 75,176, 13, 84, 91, 88,185, 0, 49,255,192, 56, 89,196,236,244,236, 16,238,246,238, 17, 57, 17,
- 18, 57, 49, 0, 16,228, 50,244, 60,228,236, 16,238,246,238, 16,238, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 5,237, 89, 34, 1,
- 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 39, 50, 22, 21, 20, 6, 35, 34, 38, 53, 52, 54, 1, 34, 6, 21, 20, 22, 51, 50, 54,
- 53, 52, 38, 37, 51, 1, 35, 19, 50, 22, 21, 20, 6, 35, 34, 38, 53, 52, 54, 5,209, 87, 99, 99, 87, 85, 99, 99, 85,158,186,187,
-157,160,186,187,252,151, 86, 99, 98, 87, 87, 99,100, 3, 49,160,252, 90,160, 31,158,188,187,159,159,185,186, 2,145,148,132,130,
-149,149,130,131,149,127,220,187,187,219,219,187,188,219, 2, 97,149,130,132,148,148,132,129,150,127,249,243, 6, 13,219,187,189,
-218,219,188,186,220, 0, 0, 0, 0, 2, 0,129,255,227, 5,254, 5,240, 0, 9, 0, 48, 1,205, 64,150, 13, 1, 14, 12,134, 17,
- 18, 17, 11,134, 10, 11, 18, 18, 17, 9,134, 0, 9, 21, 22, 21, 7, 1, 6, 8,134, 22, 22, 21, 2, 1, 3, 1,134, 29, 30, 29,
- 0,134, 9, 0, 30, 30, 29, 32, 31, 2, 33, 30, 17, 10, 19, 10, 23, 22, 21, 3, 24, 20, 17, 19, 10, 7, 8, 2, 6, 9, 17, 19,
- 19, 10, 2, 1, 2, 3, 0, 17, 10, 19, 10, 23, 22, 2, 24, 21, 17, 19, 10, 20, 17, 19, 19, 10, 66, 18, 11, 9, 3, 6, 0, 10,
- 30, 3, 40, 21, 14, 6, 40, 39, 6,149, 24, 43,149, 39,148, 36,145, 24,140, 14, 19, 10, 46, 11, 14, 9, 0, 46, 18, 21, 39, 14,
- 30, 3, 46, 18, 39, 33, 14, 17, 15, 19, 33, 3, 18, 27, 16, 49, 16,252,236,196,212,212,236, 16,198,238, 17, 57, 17, 18, 57, 57,
- 17, 57, 57, 17, 57, 17, 57, 49, 0, 47,198,228,246,230,238, 16,238, 16,198, 17, 18, 57, 17, 23, 57, 17, 23, 57, 48, 75, 83, 88,
- 7, 16, 5,237, 7, 5,237, 17, 23, 57, 7, 16, 5,237, 17, 23, 57, 7, 16, 5,237, 17, 23, 57, 7, 5,237, 17, 23, 57, 7, 16,
- 5,237, 17, 23, 57, 7, 16, 8,237, 7, 16, 14,237, 17, 23, 57, 7, 16, 14,237, 17, 23, 57, 7, 16, 8,237, 7, 16, 8,237, 7,
- 16, 14,237, 17, 23, 57, 89, 34,178, 15, 50, 1, 1, 93, 64,178, 7, 11, 5, 34, 9, 41, 28, 0, 28, 1, 31, 2, 23, 11, 42, 0,
- 42, 1, 38, 18, 58, 0, 52, 18, 68, 11, 94, 0, 89, 1, 90, 10, 85, 18, 90, 26, 90, 31, 89, 48,103, 30,123, 0,155, 0,154, 1,
-153, 2,151, 8,149, 11,147, 21,149, 22,149, 34,153, 45, 31, 9, 11, 9, 12, 8, 17, 12, 39, 12, 40, 24, 2, 27, 9, 25, 11, 25,
- 12, 25, 17, 28, 20, 28, 21, 22, 29, 31, 50, 39, 0, 39, 1, 41, 9, 35, 18, 42, 19, 42, 20, 40, 21, 47, 50, 59, 9, 52, 18, 57,
- 19, 63, 50, 74, 9, 76, 20, 75, 21, 70, 25, 79, 50, 86, 1, 90, 9, 89, 12, 85, 18, 89, 19, 92, 31, 95, 50,106, 12,105, 17, 96,
- 50,117, 1,121, 12,122, 17,147, 0,147, 1,151, 2,149, 5,156, 7,156, 8,159, 8,154, 9,155, 11,154, 12,144, 50,160, 50,176,
- 50, 57, 93, 0, 93, 1, 14, 1, 21, 20, 22, 51, 50, 54, 55, 9, 1, 62, 1, 55, 51, 6, 2, 7, 1, 35, 39, 14, 1, 35, 34, 0,
- 53, 52, 54, 55, 46, 1, 53, 52, 54, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6, 21, 20, 22, 1,242, 91, 85,212,160, 95,166, 73,254,
-123, 1,252, 59, 66, 6,186, 12,104, 93, 1, 23,252,143,104,228,131,241,254,206,134,134, 48, 50,222,184, 83,165, 85, 87,158, 68,
-105,131, 59, 3, 35, 81,161, 88,146,194, 63, 64, 2,143,253,248, 89,203,114,132,254,254,126,254,227,147, 89, 87, 1, 19,215,128,
-225, 99, 63,125, 60,162,197, 36, 36,182, 47, 49,111, 88, 51,103, 0, 1, 0,197, 3,170, 1,111, 5,213, 0, 3, 0, 55, 64, 10,
- 1,132, 0,129, 4, 0, 5, 2, 4, 4, 16,252, 75,176, 18, 84, 75,176, 19, 84, 91, 88,185, 0, 2,255,192, 56, 89,236, 49, 0,
- 16,244,236, 48, 1, 64, 13, 64, 5, 80, 5, 96, 5,112, 5,144, 5,160, 5, 6, 93, 1, 17, 35, 17, 1,111,170, 5,213,253,213,
- 2, 43, 0, 0, 0, 1, 0,176,254,242, 2,123, 6, 18, 0, 13, 0, 55, 64, 15, 6,152, 0,151, 14, 13, 7, 0, 3, 18, 6, 0,
- 19, 10, 14, 16,220, 75,176, 19, 84, 88,185, 0, 10,255,192, 56, 89, 75,176, 15, 84, 88,185, 0, 10, 0, 64, 56, 89,228, 50,236,
- 17, 57, 57, 49, 0, 16,252,236, 48, 1, 6, 2, 21, 20, 18, 23, 35, 38, 2, 53, 52, 18, 55, 2,123,134,130,131,133,160,150,149,
-148,151, 6, 18,230,254, 62,231,231,254, 59,229,235, 1,198,224,223, 1,196,236, 0, 1, 0,164,254,242, 2,111, 6, 18, 0, 13,
- 0, 31, 64, 15, 7,152, 0,151, 14, 7, 1, 0, 11, 18, 4, 19, 8, 0, 14, 16,220, 60,244,236, 17, 57, 57, 49, 0, 16,252,236,
- 48, 19, 51, 22, 18, 21, 20, 2, 7, 35, 54, 18, 53, 52, 2,164,160,150,149,149,150,160,133,131,131, 6, 18,236,254, 60,223,224,
-254, 58,235,229, 1,197,231,231, 1,194, 0, 0, 0, 1, 0, 61, 2, 74, 3,195, 5,240, 0, 17, 0, 78, 64, 44, 16, 13, 11, 0,
- 4, 12, 9, 7, 4, 2, 4, 8, 3,153, 5, 17, 12,153, 10, 1, 14,145, 18, 8, 12, 10, 3, 9, 6, 17, 3, 1, 3, 2, 0, 20,
- 15, 4, 11, 9, 20, 13, 6, 18, 16,212, 60,228, 50,220, 60,228, 50, 23, 57, 17, 18, 23, 57, 49, 0, 16,244,212, 60,236, 50,196,
-236, 50, 23, 57, 18, 23, 57, 48, 1, 13, 1, 7, 37, 17, 35, 17, 5, 39, 45, 1, 55, 5, 17, 51, 17, 37, 3,195,254,153, 1,103,
- 58,254,176,114,254,176, 58, 1,103,254,153, 58, 1, 80,114, 1, 80, 4,223,194,195, 98,203,254,135, 1,121,203, 98,195,194, 99,
-203, 1,121,254,135,203, 0, 0, 0, 1, 0,217, 0, 0, 5,219, 5, 4, 0, 11, 0, 35, 64, 17, 0, 9, 1,156, 7, 3, 5, 2,
- 21, 4, 0, 23, 10, 6, 21, 8, 12, 16,220,252, 60,252, 60,236, 49, 0, 47,212, 60,252, 60,196, 48, 1, 17, 33, 21, 33, 17, 35,
- 17, 33, 53, 33, 17, 3,174, 2, 45,253,211,168,253,211, 2, 45, 5, 4,253,211,170,253,211, 2, 45,170, 2, 45, 0, 1, 0,158,
-255, 18, 1,195, 0,254, 0, 5, 0, 25, 64, 12, 3,158, 0,131, 6, 3, 4, 1, 25, 0, 24, 6, 16,252,236,212,204, 49, 0, 16,
-252,236, 48, 55, 51, 21, 3, 35, 19,240,211,164,129, 82,254,172,254,192, 1, 64, 0, 1, 0,100, 1,223, 2,127, 2,131, 0, 3,
- 0, 17,182, 0,156, 2, 4, 1, 0, 4, 16,220,204, 49, 0, 16,212,236, 48, 19, 33, 21, 33,100, 2, 27,253,229, 2,131,164, 0,
- 0, 1, 0,219, 0, 0, 1,174, 0,254, 0, 3, 0, 17,183, 0,131, 2, 1, 25, 0, 24, 4, 16,252,236, 49, 0, 47,236, 48, 55,
- 51, 21, 35,219,211,211,254,254, 0, 1, 0, 0,255, 66, 2,178, 5,213, 0, 3, 0, 45, 64, 20, 0, 26, 1, 2, 1, 2, 26, 3,
- 0, 3, 66, 2,159, 0,129, 4, 2, 0, 1, 3, 47,196, 57, 57, 49, 0, 16,244,236, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 5,
-237, 89, 34, 1, 51, 1, 35, 2, 8,170,253,248,170, 5,213,249,109, 0, 0, 0, 0, 2, 0,135,255,227, 4,143, 5,240, 0, 11,
- 0, 23, 0, 35, 64, 19, 6,160, 18, 0,160, 12,145, 18,140, 24, 9, 28, 15, 30, 3, 28, 21, 27, 24, 16,252,236,244,236, 49, 0,
- 16,228,244,236, 16,238, 48, 1, 34, 2, 17, 16, 18, 51, 50, 18, 17, 16, 2, 39, 50, 0, 17, 16, 0, 35, 34, 0, 17, 16, 0, 2,
-139,156,157,157,156,157,157,157,157,251, 1, 9,254,247,251,251,254,247, 1, 9, 5, 80,254,205,254,204,254,205,254,205, 1, 51,
- 1, 51, 1, 52, 1, 51,160,254,115,254,134,254,135,254,115, 1,141, 1,121, 1,122, 1,141, 0, 0, 1, 0,225, 0, 0, 4, 90,
- 5,213, 0, 10, 0, 64, 64, 21, 66, 3,160, 4, 2,160, 5,129, 7, 0,160, 9, 8, 31, 6, 28, 3, 0, 31, 1, 11, 16,212, 75,
-176, 15, 84, 88,185, 0, 1, 0, 64, 56, 89,236,196,252,236, 49, 0, 47,236, 50,244,236,212,236, 48, 75, 83, 88, 89, 34, 1,180,
- 15, 3, 15, 4, 2, 93, 55, 33, 17, 5, 53, 37, 51, 17, 33, 21, 33,254, 1, 74,254,153, 1,101,202, 1, 74,252,164,170, 4,115,
- 72,184, 72,250,213,170, 0, 0, 0, 1, 0,150, 0, 0, 4, 74, 5,240, 0, 28, 0,154, 64, 39, 25, 26, 27, 3, 24, 28, 17, 5,
- 4, 0, 17, 5, 5, 4, 66, 16,161, 17,148, 13,160, 20,145, 4, 0,160, 2, 0, 16, 10, 2, 1, 10, 28, 23, 16, 3, 6, 29, 16,
-252, 75,176, 21, 84, 75,176, 22, 84, 91, 75,176, 20, 84, 91, 88,185, 0, 3,255,192, 56, 89,196,212,236,192,192, 17, 18, 57, 49,
- 0, 47,236, 50,244,236,244,236, 48, 75, 83, 88, 7, 16, 5,237, 7, 5,237, 17, 23, 57, 89, 34, 1, 64, 50, 85, 4, 86, 5, 86,
- 7,122, 4,122, 5,118, 27,135, 25, 7, 4, 0, 4, 25, 4, 26, 4, 27, 5, 28,116, 0,118, 6,117, 26,115, 27,116, 28,130, 0,
-134, 25,130, 26,130, 27,130, 28,168, 0,168, 27, 17, 93, 0, 93, 37, 33, 21, 33, 53, 54, 0, 55, 62, 1, 53, 52, 38, 35, 34, 6,
- 7, 53, 62, 1, 51, 50, 4, 21, 20, 6, 7, 6, 0, 1,137, 2,193,252, 76,115, 1,141, 51, 97, 77,167,134, 95,211,120,122,212,
- 88,232, 1, 20, 69, 91, 25,254,244,170,170,170,119, 1,145, 58,109,151, 73,119,150, 66, 67,204, 49, 50,232,194, 92,165,112, 29,
-254,235, 0, 0, 0, 1, 0,156,255,227, 4,115, 5,240, 0, 40, 0,112, 64, 46, 0, 21, 19, 10,134, 9, 31,134, 32, 19,160, 21,
- 13,160, 9,147, 6, 28,160, 32,147, 35,145, 6,140, 21,163, 41, 22, 28, 19, 0, 3, 20, 25, 28, 38, 32, 16, 28, 3, 20, 31, 9,
- 6, 41, 16,252, 75,176, 22, 84, 75,176, 20, 84, 91, 88,185, 0, 9,255,192, 56, 89,196,196,212,236,244,236, 17, 23, 57, 57, 49,
- 0, 16,236,228,244,228,236, 16,230,238, 16,238, 16,238, 16,238, 17, 18, 57, 48, 1, 64, 9,100, 30, 97, 31, 97, 32,100, 33, 4,
- 0, 93, 1, 30, 1, 21, 20, 4, 33, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 43, 1, 53, 51, 50, 54, 53, 52, 38, 35, 34,
- 6, 7, 53, 62, 1, 51, 50, 4, 21, 20, 6, 3, 63,145,163,254,208,254,232, 94,199,106, 84,200,109,190,199,185,165,174,182,149,
-158,163,152, 83,190,114,115,201, 89,230, 1, 12,142, 3, 37, 31,196,144,221,242, 37, 37,195, 49, 50,150,143,132,149,166,119,112,
-115,123, 36, 38,180, 32, 32,209,178,124,171, 0, 0, 2, 0,100, 0, 0, 4,164, 5,213, 0, 2, 0, 13, 0,129, 64, 29, 1, 13,
- 3, 13, 0, 3, 3, 13, 66, 0, 3, 11, 7,160, 5, 1, 3,129, 9, 1, 12, 10, 0, 28, 6, 8, 4, 12, 14, 16,220, 75,176, 11,
- 84, 75,176, 13, 84, 91, 88,185, 0, 12,255,192, 56, 89,212, 60,196,236, 50, 17, 57, 49, 0, 47,228,212, 60,236, 50, 18, 57, 48,
- 75, 83, 88, 7, 16, 4,201, 7, 16, 5,201, 89, 34, 1, 64, 42, 11, 0, 42, 0, 72, 0, 89, 0,105, 0,119, 0,138, 0, 7, 22,
- 1, 43, 0, 38, 1, 43, 3, 54, 1, 78, 1, 79, 12, 79, 13, 86, 1,102, 1,117, 1,122, 3,133, 1, 13, 93, 0, 93, 9, 1, 33,
- 3, 51, 17, 51, 21, 35, 17, 35, 17, 33, 53, 3, 6,254, 2, 1,254, 53,254,213,213,201,253, 94, 5, 37,252,227, 3,205,252, 51,
-168,254,160, 1, 96,195, 0, 0, 0, 1, 0,158,255,227, 4,100, 5,213, 0, 29, 0, 94, 64, 35, 4, 26, 7, 17,134, 16, 29, 26,
-160, 7, 20,160, 16,137, 13, 2,160, 0,129, 13,140, 7,164, 30, 23, 28, 1, 10, 3, 28, 0, 10, 16, 6, 30, 16,252, 1, 75,176,
- 22, 84, 75,176, 20, 84, 91, 88,185, 0, 16,255,192, 56, 89, 75,176, 15, 84, 88,185, 0, 16, 0, 64, 56, 89,196,212,236, 16,196,
-238, 49, 0, 16,228,228,244,236, 16,230,238, 16,254,196, 16,238, 17, 18, 57, 48, 19, 33, 21, 33, 17, 62, 1, 51, 50, 0, 21, 20,
- 0, 33, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7,221, 3, 25,253,160, 44, 88, 44,250, 1, 36,254,212,254,
-239, 94,195,104, 90,192,107,173,202,202,173, 81,161, 84, 5,213,170,254,146, 15, 15,254,238,234,241,254,245, 32, 32,203, 49, 48,
-182,156,156,182, 36, 38, 0, 0, 0, 2, 0,143,255,227, 4,150, 5,240, 0, 11, 0, 36, 0, 88, 64, 36, 19, 6, 0, 13,134, 12,
- 0,160, 22, 6,160, 28, 22,165, 16,160, 12,137, 34,145, 28,140, 37, 12, 34, 9, 28, 25, 30, 19, 28, 3, 33, 31, 27, 37, 16,252,
-236,236,244,236,228, 49, 0, 16,228,244,228,252,228, 16,238, 16,238, 16,238, 17, 18, 57, 48, 64, 20,203, 0,203, 1,205, 2,205,
- 3,205, 4,203, 5,203, 6, 7,164, 30,178, 30, 2, 93, 1, 93, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 1, 21, 46, 1,
- 35, 34, 2, 3, 62, 1, 51, 50, 0, 21, 20, 0, 35, 32, 0, 17, 16, 0, 33, 50, 22, 2,164,136,159,159,136,136,159,159, 1, 9,
- 76,155, 76,200,211, 15, 59,178,107,225, 1, 5,254,240,226,254,253,254,238, 1, 80, 1, 27, 76,155, 3, 59,186,162,161,187,187,
-161,162,186, 2,121,184, 36, 38,254,242,254,239, 87, 93,254,239,235,230,254,234, 1,141, 1,121, 1, 98, 1,165, 30, 0, 0, 0,
- 0, 1, 0,168, 0, 0, 4,104, 5,213, 0, 6, 0, 99, 64, 24, 5, 17, 2, 3, 2, 3, 17, 4, 5, 4, 66, 5,160, 0,129, 3,
- 5, 3, 1, 4, 1, 0, 6, 7, 16,252,204,196, 17, 57, 57, 49, 0, 47,244,236, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 5,237,
- 89, 34, 1, 75,176, 22, 84, 88,189, 0, 7, 0, 64, 0, 1, 0, 7, 0, 7,255,192, 56, 17, 55, 56, 89, 64, 18, 88, 2, 1, 6,
- 3, 26, 5, 57, 5, 72, 5,103, 3,176, 0,176, 6, 7, 93, 0, 93, 19, 33, 21, 1, 35, 1, 33,168, 3,192,253,226,211, 1,254,
-253, 51, 5,213, 86,250,129, 5, 43, 0, 0, 0, 0, 3, 0,139,255,227, 4,139, 5,240, 0, 11, 0, 35, 0, 47, 0, 67, 64, 37,
- 24, 12, 0,160, 39, 6,160, 30, 45,160, 18,145, 30,140, 39,163, 48, 24, 12, 36, 42, 28, 21, 36, 28, 15, 9, 28, 21, 27, 30, 3,
- 28, 15, 33, 27, 48, 16,252,196,236,244,196,236, 16,238, 16,238, 17, 57, 57, 49, 0, 16,236,228,244,236, 16,238, 16,238, 57, 57,
- 48, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 37, 46, 1, 53, 52, 36, 51, 50, 22, 21, 20, 6, 7, 30, 1, 21, 20, 4, 35,
- 34, 36, 53, 52, 54, 19, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 2,139,144,165,165,144,144,166,165,254,165,130,145, 0,255,
-222,223,254,145,129,146,163,254,247,247,247,254,247,164, 72,145,131,130,147,147,130,131,145, 2,197,154,135,135,154,155,134,135,
-154, 86, 32,178,128,179,208,208,179,128,178, 32, 34,198,143,217,232,232,217,143,198, 1, 97,116,130,130,116,116,130,130, 0, 0,
- 0, 2, 0,129,255,227, 4,135, 5,240, 0, 24, 0, 36, 0, 88, 64, 35, 7, 31, 25, 1,134, 0, 25,160, 10,165, 4,160, 0,137,
- 22, 31,160, 16,145, 22,140, 37, 7, 28, 28, 33, 19, 30, 0, 34, 34, 28, 13, 27, 37, 16,252,236,228,244,236,236, 49, 0, 16,228,
-244,236, 16,230,254,245,238, 16,238, 17, 18, 57, 48, 64, 22,196, 25,194, 26,192, 27,192, 28,192, 29,194, 30,196, 31, 7,170, 18,
-188, 18,233, 18, 3, 93, 1, 93, 55, 53, 30, 1, 51, 50, 18, 19, 14, 1, 35, 34, 0, 53, 52, 0, 51, 32, 0, 17, 16, 0, 33, 34,
- 38, 1, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22,225, 76,156, 75,200,211, 15, 58,178,108,224,254,251, 1, 16,226, 1, 3, 1,
- 17,254,177,254,229, 76,156, 1, 62,136,159,159,136,136,159,159, 31,184, 36, 38, 1, 13, 1, 18, 86, 92, 1, 15,235,230, 1, 22,
-254,115,254,134,254,159,254, 91, 30, 2,151,186,162,161,187,187,161,162,186, 0, 0, 2, 0,240, 0, 0, 1,195, 4, 35, 0, 3,
- 0, 7, 0, 28, 64, 14, 6,131, 4,166, 0,131, 2, 5, 1, 3, 4, 0, 24, 8, 16,252, 60,236, 50, 49, 0, 47,236,244,236, 48,
- 55, 51, 21, 35, 17, 51, 21, 35,240,211,211,211,211,254,254, 4, 35,254, 0, 0, 0, 2, 0,158,255, 18, 1,195, 4, 35, 0, 3,
- 0, 9, 0, 37, 64, 19, 2,131, 0, 7,158, 4,131, 0,166, 10, 7, 8, 5, 1, 25, 4, 0, 24, 10, 16,252, 60,236, 50,212,204,
- 49, 0, 16,228,252,236, 16,238, 48, 19, 51, 21, 35, 17, 51, 21, 3, 35, 19,240,211,211,211,164,129, 82, 4, 35,254,253,217,172,
-254,192, 1, 64, 0, 1, 0,217, 0, 94, 5,219, 4,166, 0, 6, 0, 77, 64, 42, 2,156, 3, 4, 3, 1,156, 0, 1, 4, 4, 3,
- 1,156, 2, 1, 5, 6, 5, 0,156, 6, 5, 66, 5, 4, 2, 1, 0, 5, 3,168, 6,167, 7, 1, 2, 0, 36, 4, 35, 7, 16,252,
-236, 50, 57, 49, 0, 16,244,236, 23, 57, 48, 75, 83, 88, 7, 4,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 4,237, 89, 34, 9,
- 2, 21, 1, 53, 1, 5,219,251,248, 4, 8,250,254, 5, 2, 3,240,254,145,254,147,182, 1,209,166, 1,209, 0, 0, 2, 0,217,
- 1, 96, 5,219, 3,162, 0, 3, 0, 7, 0, 28, 64, 13, 0,156, 2, 6,156, 4, 8, 5, 1, 4, 0, 35, 8, 16,252, 60,196, 50,
- 49, 0, 16,212,236,212,236, 48, 19, 33, 21, 33, 21, 33, 21, 33,217, 5, 2,250,254, 5, 2,250,254, 3,162,168,240,170, 0, 0,
- 0, 1, 0,217, 0, 94, 5,219, 4,166, 0, 6, 0, 79, 64, 43, 6,156, 0, 6, 3, 4, 3, 5,156, 4, 4, 3, 0,156, 1, 2,
- 1, 6,156, 5, 6, 2, 2, 1, 66, 6, 5, 3, 2, 0, 5, 4,168, 1,167, 7, 6, 2, 36, 4, 0, 35, 7, 16,252, 60,236, 57,
- 49, 0, 16,244,236, 23, 57, 48, 75, 83, 88, 7, 16, 8,237, 7, 16, 4,237, 7, 16, 4,237, 7, 16, 8,237, 89, 34, 19, 53, 1,
- 21, 1, 53, 1,217, 5, 2,250,254, 4, 6, 3,240,182,254, 47,166,254, 47,182, 1,109, 0, 0, 0, 2, 0,147, 0, 0, 3,176,
- 5,240, 0, 3, 0, 36, 0,101, 64, 43, 36, 30, 9, 6, 4, 10, 29, 19, 4, 0, 20,134, 19,136, 16,149, 23,145, 0,131, 2, 29,
- 26, 13, 9, 5, 4, 10, 30, 1, 13, 28, 26, 4, 28, 5, 1, 3, 0, 38, 26, 19, 37, 16,220, 75,176, 12, 84, 88,185, 0, 19,255,
-192, 56, 89,196,252,236,212,236, 16,238, 17, 57, 57, 17, 18, 57, 17, 18, 57, 49, 0, 47,238,246,254,244,238, 16,205, 17, 57, 57,
- 23, 57, 48, 1,182,121, 9,122, 10,122, 32, 3, 93, 37, 51, 21, 35, 19, 35, 53, 52, 54, 63, 1, 62, 1, 53, 52, 38, 35, 34, 6,
- 7, 53, 62, 1, 51, 50, 22, 21, 20, 6, 15, 1, 14, 1, 7, 14, 1, 21, 1,135,203,203,197,191, 56, 90, 90, 57, 51,131,108, 79,
-179, 97, 94,193,103,184,223, 72, 90, 88, 47, 39, 8, 6, 6,254,254, 1,145,154,101,130, 86, 89, 53, 94, 49, 89,110, 70, 67,188,
- 57, 56,194,159, 76,137, 86, 86, 47, 53, 25, 21, 60, 52, 0, 0, 0, 2, 0,135,254,156, 7,113, 5,162, 0, 11, 0, 76, 0,149,
- 64, 50, 24, 12, 3, 9,169, 25, 21, 27, 3,169, 76, 15, 52, 51, 15,172, 48,169, 55, 21,172, 36,169, 55, 67, 77, 51, 52, 30, 26,
- 0, 40, 18, 6, 24, 12, 40, 26, 43, 30, 40, 73, 18, 43, 42, 40, 73, 44, 61, 77, 16,220,236,252,236, 16,254,253,254, 60,198, 16,
-238, 17, 18, 57, 57, 49, 0, 16,212,196,252,236, 16,254,237,212,198, 16,197,238, 50, 16,196,238, 17, 57, 57, 48, 0, 75,176, 9,
- 84, 75,176, 12, 84, 91, 75,176, 16, 84, 91, 75,176, 19, 84, 91, 75,176, 20, 84, 91, 88,189, 0, 77,255,192, 0, 1, 0, 77, 0,
- 77, 0, 64, 56, 17, 55, 56, 89, 64, 9, 15, 78, 31, 78, 47, 78, 63, 78, 4, 1, 93, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34,
- 6, 1, 14, 1, 35, 34, 38, 53, 52, 54, 51, 50, 22, 23, 53, 51, 17, 62, 1, 53, 52, 38, 39, 38, 36, 35, 34, 6, 7, 6, 2, 21,
- 20, 18, 23, 22, 4, 51, 50, 54, 55, 23, 6, 4, 35, 34, 36, 39, 38, 2, 53, 52, 18, 55, 54, 36, 51, 50, 4, 23, 30, 1, 21, 16,
- 0, 5, 2,250,142,124,123,141,144,122,121,143, 2, 33, 60,155,103,172,215,216,171,103,156, 59,143,146,165, 63, 64,104,254,213,
-176,123,226, 96,157,177,115,109,105, 1, 20,157,129,249,104, 90,125,254,217,152,185,254,184,128,128,134,136,126,129, 1, 82,189,
-212, 1,107,123, 75, 79,254,194,254,232, 2, 25,143,163,164,142,140,165,164,254, 72, 77, 73,249,200,200,250, 75, 76,131,253, 32,
- 22,223,177,107,188, 80,131,139, 65, 64,102,254,181,193,159,254,234,106,104,109, 87, 81,111, 97,103,131,125,125, 1, 73,189,182,
- 1, 74,125,127,135,174,160, 98,230,123,254,249,254,208, 6, 0, 0, 2, 0, 16, 0, 0, 5,104, 5,213, 0, 2, 0, 10, 0,186,
- 64, 65, 0, 17, 1, 0, 4, 5, 4, 2, 17, 5, 5, 4, 1, 17, 10, 3, 10, 0, 17, 2, 0, 3, 3, 10, 7, 17, 5, 4, 6, 17,
- 5, 5, 4, 9, 17, 3, 10, 8, 17, 10, 3, 10, 66, 0, 3, 7,149, 1, 3,129, 9, 5, 9, 8, 7, 6, 4, 3, 2, 1, 0, 9,
- 5, 10, 11, 16,212,196, 23, 57, 49, 0, 47, 60,228,212,236, 18, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 5,237, 7, 16, 5,237,
- 7, 5,237, 7, 16, 8,237, 7, 16, 5,237, 7, 16, 5,237, 7, 16, 8,237, 89, 34,178, 32, 12, 1, 1, 93, 64, 58, 15, 0, 88,
- 0,118, 0,112, 0,140, 0, 5, 7, 1, 8, 2, 6, 3, 9, 4, 22, 1, 25, 2, 86, 1, 88, 2, 80, 12,103, 1,104, 2,120, 1,
-118, 2,124, 3,114, 4,119, 7,120, 8,135, 1,136, 2,128, 12,152, 2,153, 3,150, 4, 23, 93, 0, 93, 9, 1, 33, 1, 51, 1,
- 35, 3, 33, 3, 35, 2,188,254,238, 2, 37,254,123,229, 2, 57,210,136,253, 95,136,213, 5, 14,253, 25, 3,174,250, 43, 1,127,
-254,129, 0, 0, 0, 3, 0,201, 0, 0, 4,236, 5,213, 0, 8, 0, 17, 0, 32, 0, 67, 64, 35, 25, 0,149, 10, 9,149, 18,129,
- 1,149, 10,173, 31, 17, 11, 8, 2, 19, 25, 31, 5, 0, 14, 28, 22, 5, 25, 28, 46, 9, 0, 28, 18, 4, 33, 16,252,236, 50,252,
-236,212,236, 17, 23, 57, 57, 57, 49, 0, 47,236,236,244,236, 16,238, 57, 48,178, 15, 34, 1, 1, 93, 1, 17, 33, 50, 54, 53, 52,
- 38, 35, 1, 17, 33, 50, 54, 53, 52, 38, 35, 37, 33, 50, 22, 21, 20, 6, 7, 30, 1, 21, 20, 4, 35, 33, 1,147, 1, 68,163,157,
-157,163,254,188, 1, 43,148,145,145,148,254, 11, 2, 4,231,250,128,124,149,165,254,240,251,253,232, 2,201,253,221,135,139,140,
-133, 2,102,254, 62,111,114,113,112,166,192,177,137,162, 20, 32,203,152,200,218, 0, 1, 0,115,255,227, 5, 39, 5,240, 0, 25,
- 0, 54, 64, 26, 13,161, 14,174, 10,149, 17, 1,161, 0,174, 4,149, 23,145, 17,140, 26, 7, 25, 13, 0, 48, 20, 16, 26, 16,252,
-236, 50,236, 49, 0, 16,228,244,236,244,236, 16,238,246,238, 48,180, 15, 27, 31, 27, 2, 1, 93, 1, 21, 46, 1, 35, 32, 0, 17,
- 16, 0, 33, 50, 54, 55, 21, 14, 1, 35, 32, 0, 17, 16, 0, 33, 50, 22, 5, 39,102,231,130,255, 0,254,240, 1, 16, 1, 0,130,
-231,102,106,237,132,254,173,254,122, 1,134, 1, 83,134,237, 5, 98,213, 95, 94,254,199,254,216,254,217,254,199, 94, 95,211, 72,
- 72, 1,159, 1,103, 1,104, 1,159, 71, 0, 0, 0, 2, 0,201, 0, 0, 5,176, 5,213, 0, 8, 0, 17, 0, 46, 64, 21, 0,149,
- 9,129, 1,149, 16, 8, 2, 16, 10, 0, 5, 25, 13, 50, 0, 28, 9, 4, 18, 16,252,236,244,236, 17, 57, 57, 57, 57, 49, 0, 47,
-236,244,236, 48,178, 96, 19, 1, 1, 93, 1, 17, 51, 32, 0, 17, 16, 0, 33, 37, 33, 32, 0, 17, 16, 0, 41, 1, 1,147,244, 1,
- 53, 1, 31,254,225,254,203,254, 66, 1,159, 1,178, 1,150,254,104,254, 80,254, 97, 5, 47,251,119, 1, 24, 1, 46, 1, 44, 1,
- 23,166,254,151,254,128,254,126,254,150, 0, 0, 0, 1, 0,201, 0, 0, 4,139, 5,213, 0, 11, 0, 46, 64, 21, 6,149, 4, 2,
-149, 0,129, 8,149, 4,173, 10, 5, 1, 9, 7, 3, 28, 0, 4, 12, 16,252,236, 50,212,196,196, 49, 0, 47,236,236,244,236, 16,
-238, 48,178, 31, 13, 1, 1, 93, 19, 33, 21, 33, 17, 33, 21, 33, 17, 33, 21, 33,201, 3,176,253, 26, 2,199,253, 57, 2,248,252,
- 62, 5,213,170,254, 70,170,253,227,170, 0, 0, 0, 1, 0,201, 0, 0, 4, 35, 5,213, 0, 9, 0, 41, 64, 18, 6,149, 4, 2,
-149, 0,129, 4,173, 8, 5, 1, 7, 3, 28, 0, 4, 10, 16,252,236, 50,212,196, 49, 0, 47,236,244,236, 16,238, 48,178, 15, 11,
- 1, 1, 93, 19, 33, 21, 33, 17, 33, 21, 33, 17, 35,201, 3, 90,253,112, 2, 80,253,176,202, 5,213,170,254, 72,170,253, 55, 0,
- 0, 1, 0,115,255,227, 5,139, 5,240, 0, 29, 0, 57, 64, 32, 0, 5, 27, 1,149, 3, 27,149, 8, 18,161, 17,174, 21,149, 14,
-145, 8,140, 30, 2, 0, 28, 17, 52, 4, 51, 24, 25, 11, 16, 30, 16,252,236,252,228,252,196, 49, 0, 16,228,244,236,244,236, 16,
-254,212,238, 17, 57, 57, 48, 37, 17, 33, 53, 33, 17, 6, 4, 35, 32, 0, 17, 16, 0, 33, 50, 4, 23, 21, 46, 1, 35, 32, 0, 17,
- 16, 0, 33, 50, 54, 4,195,254,182, 2, 18,117,254,230,160,254,162,254,117, 1,139, 1, 94,146, 1, 7,111,112,252,139,254,238,
-254,237, 1, 19, 1, 18,107,168,213, 1,145,166,253,127, 83, 85, 1,153, 1,109, 1,110, 1,153, 72, 70,215, 95, 96,254,206,254,
-209,254,210,254,206, 37, 0, 0, 0, 1, 0,201, 0, 0, 5, 59, 5,213, 0, 11, 0, 44, 64, 20, 8,149, 2,173, 4, 0,129, 10,
- 6, 7, 3, 28, 5, 56, 9, 1, 28, 0, 4, 12, 16,252,236, 50,252,236, 50, 49, 0, 47, 60,228, 50,252,236, 48,178, 80, 13, 1,
- 1, 93, 19, 51, 17, 33, 17, 51, 17, 35, 17, 33, 17, 35,201,202, 2,222,202,202,253, 34,202, 5,213,253,156, 2,100,250, 43, 2,
-199,253, 57, 0, 0, 1, 0,201, 0, 0, 1,147, 5,213, 0, 3, 0, 46,183, 0,175, 2, 1, 28, 0, 4, 4, 16,252, 75,176, 16,
- 84, 88,185, 0, 0, 0, 64, 56, 89,236, 49, 0, 47,236, 48, 1, 64, 13, 48, 5, 64, 5, 80, 5, 96, 5,143, 5,159, 5, 6, 93,
- 19, 51, 17, 35,201,202,202, 5,213,250, 43, 0, 0, 1,255,150,254,102, 1,147, 5,213, 0, 11, 0, 66, 64, 19, 11, 2, 0, 7,
-149, 5,176, 0,129, 12, 5, 8, 6, 57, 1, 28, 0, 4, 12, 16,252, 75,176, 16, 84, 88,185, 0, 0, 0, 64, 56, 89,236,228, 57,
- 57, 49, 0, 16,228,252,236, 17, 57, 57, 48, 1, 64, 13, 48, 13, 64, 13, 80, 13, 96, 13,143, 13,159, 13, 6, 93, 19, 51, 17, 16,
- 6, 43, 1, 53, 51, 50, 54, 53,201,202,205,227, 77, 63,134,110, 5,213,250,147,254,242,244,170,150,194, 0, 0, 0, 1, 0,201,
- 0, 0, 5,106, 5,213, 0, 10, 0,239, 64, 40, 8, 17, 5, 6, 5, 7, 17, 6, 6, 5, 3, 17, 4, 5, 4, 2, 17, 5, 5, 4,
- 66, 8, 5, 2, 3, 3, 0,175, 9, 6, 5, 1, 4, 6, 8, 1, 28, 0, 4, 11, 16,252,236, 50,212,196, 17, 57, 49, 0, 47, 60,
-236, 50, 23, 57, 48, 75, 83, 88, 7, 16, 4,237, 7, 16, 5,237, 7, 16, 5,237, 7, 16, 4,237, 89, 34,178, 8, 3, 1, 1, 93,
- 64,146, 20, 2, 1, 4, 2, 9, 8, 22, 2, 40, 5, 40, 8, 55, 2, 54, 5, 52, 8, 71, 2, 70, 5, 67, 8, 85, 2,103, 2,118,
- 2,119, 5,131, 2,136, 5,143, 8,148, 2,155, 8,231, 2, 21, 6, 3, 9, 5, 9, 6, 27, 3, 25, 7, 5, 10, 3, 10, 7, 24,
- 3, 40, 5, 43, 6, 42, 7, 54, 4, 54, 5, 54, 6, 53, 7, 48, 12, 65, 3, 64, 4, 69, 5, 64, 6, 64, 7, 64, 12, 98, 3, 96,
- 4,104, 5,103, 7,119, 5,112, 12,139, 3,139, 5,142, 6,143, 7,143, 12,154, 3,157, 6,157, 7,182, 3,181, 7,197, 3,197,
- 7,215, 3,214, 7,232, 3,233, 4,232, 5,234, 6,247, 3,248, 5,249, 6, 44, 93,113, 0, 93,113, 19, 51, 17, 1, 33, 9, 1,
- 33, 1, 17, 35,201,202, 2,158, 1, 4,253, 27, 3, 26,254,246,253, 51,202, 5,213,253,137, 2,119,253, 72,252,227, 2,207,253,
- 49, 0, 0, 0, 0, 1, 0,201, 0, 0, 4,106, 5,213, 0, 5, 0, 37, 64, 12, 2,149, 0,129, 4, 1, 28, 3, 58, 0, 4, 6,
- 16,252,236,236, 49, 0, 47,228,236, 48, 64, 9, 48, 7, 80, 7,128, 3,128, 4, 4, 1, 93, 19, 51, 17, 33, 21, 33,201,202, 2,
-215,252, 95, 5,213,250,213,170, 0, 1, 0,201, 0, 0, 6, 31, 5,213, 0, 12, 0,191, 64, 52, 3, 17, 7, 8, 7, 2, 17, 1,
- 2, 8, 8, 7, 2, 17, 3, 2, 9, 10, 9, 1, 17, 10, 10, 9, 66, 10, 7, 2, 3, 8, 3, 0,175, 8, 11, 5, 9, 8, 3, 2,
- 1, 5, 10, 6, 28, 4, 62, 10, 28, 0, 4, 13, 16,252,236,252,236, 17, 23, 57, 49, 0, 47, 60,196,236, 50, 17, 23, 57, 48, 75,
- 83, 88, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 89, 34,178,112, 14, 1, 1, 93, 64, 86, 3, 7, 15, 8,
- 15, 9, 2, 10, 21, 2, 20, 7, 19, 10, 38, 2, 38, 7, 32, 7, 38, 10, 32, 10, 52, 7, 53, 10,105, 2,124, 2,123, 7,121, 10,
-128, 2,130, 7,130, 10,144, 2, 22, 4, 1, 11, 3, 19, 1, 27, 3, 35, 1, 44, 3, 39, 8, 40, 9, 52, 1, 60, 3, 86, 8, 89,
- 9,101, 8,106, 9,118, 8,121, 9,129, 1,141, 3,149, 1,155, 3, 20, 93, 0, 93, 19, 33, 9, 1, 33, 17, 35, 17, 1, 35, 1,
- 17, 35,201, 1, 45, 1,125, 1,127, 1, 45,197,254,127,203,254,127,196, 5,213,252, 8, 3,248,250, 43, 5, 31,252, 0, 4, 0,
-250,225, 0, 0, 0, 1, 0,201, 0, 0, 5, 51, 5,213, 0, 9, 0,121, 64, 30, 7, 17, 1, 2, 1, 2, 17, 6, 7, 6, 66, 7,
- 2, 3, 0,175, 8, 5, 6, 1, 7, 2, 28, 4, 54, 7, 28, 0, 4, 10, 16,252,236,252,236, 17, 57, 57, 49, 0, 47, 60,236, 50,
- 57, 57, 48, 75, 83, 88, 7, 16, 4,237, 7, 16, 4,237, 89, 34,178, 31, 11, 1, 1, 93, 64, 48, 54, 2, 56, 7, 72, 2, 71, 7,
-105, 2,102, 7,128, 2, 7, 6, 1, 9, 6, 21, 1, 26, 6, 70, 1, 73, 6, 87, 1, 88, 6,101, 1,105, 6,121, 6,133, 1,138,
- 6,149, 1,154, 6,159, 11, 16, 93, 0, 93, 19, 33, 1, 17, 51, 17, 33, 1, 17, 35,201, 1, 16, 2,150,196,254,240,253,106,196,
- 5,213,251, 31, 4,225,250, 43, 4,225,251, 31, 0, 2, 0,115,255,227, 5,217, 5,240, 0, 11, 0, 23, 0, 35, 64, 19, 6,149,
- 18, 0,149, 12,145, 18,140, 24, 9, 25, 15, 51, 3, 25, 21, 16, 24, 16,252,236,252,236, 49, 0, 16,228,244,236, 16,238, 48, 1,
- 34, 0, 17, 16, 0, 51, 50, 0, 17, 16, 0, 39, 32, 0, 17, 16, 0, 33, 32, 0, 17, 16, 0, 3, 39,220,254,253, 1, 3,220,220,
- 1, 1,254,255,220, 1, 58, 1,120,254,136,254,198,254,197,254,135, 1,121, 5, 76,254,184,254,229,254,230,254,184, 1, 72, 1,
- 26, 1, 27, 1, 72,164,254, 91,254,158,254,159,254, 91, 1,164, 1, 98, 1, 98, 1,165, 0, 0, 0, 2, 0,201, 0, 0, 4,141,
- 5,213, 0, 8, 0, 19, 0, 58, 64, 24, 1,149, 16, 0,149, 9,129, 18, 16, 10, 8, 2, 4, 0, 5, 25, 13, 63, 17, 0, 28, 9,
- 4, 20, 16,252,236, 50,252,236, 17, 23, 57, 49, 0, 47,244,236,212,236, 48, 64, 11, 15, 21, 31, 21, 63, 21, 95, 21,175, 21, 5,
- 1, 93, 1, 17, 51, 50, 54, 53, 52, 38, 35, 37, 33, 50, 4, 21, 20, 4, 43, 1, 17, 35, 1,147,254,141,154,154,141,254, 56, 1,
-200,251, 1, 1,254,255,251,254,202, 5, 47,253,207,146,135,134,146,166,227,219,221,226,253,168, 0, 2, 0,115,254,248, 5,217,
- 5,240, 0, 11, 0, 29, 0, 82, 64, 42, 17, 16, 2, 15, 1, 12, 13, 12, 14, 1, 13, 13, 12, 66, 15, 30, 12, 6,149, 18, 0,149,
- 24,145, 18,140, 13, 30, 13, 27, 15, 12, 3, 9, 25, 27, 51, 3, 25, 21, 16, 30, 16,252,236,252,236, 17, 57, 57, 17, 57, 49, 0,
- 16,196,228,244,236, 16,238, 57, 18, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 5,237, 23, 57, 89, 34, 1, 34, 0, 17, 16, 0,
- 51, 50, 0, 17, 16, 0, 19, 1, 35, 39, 14, 1, 35, 32, 0, 17, 16, 0, 33, 32, 0, 17, 16, 2, 3, 39,220,254,253, 1, 3,220,
-220, 1, 1,254,255, 63, 1, 10,244,221, 33, 35, 16,254,197,254,135, 1,121, 1, 59, 1, 58, 1,120,209, 5, 76,254,184,254,229,
-254,230,254,184, 1, 72, 1, 26, 1, 27, 1, 72,250,207,254,221,239, 2, 2, 1,165, 1, 97, 1, 98, 1,165,254, 91,254,158,254,
-252,254,142, 0, 0, 2, 0,201, 0, 0, 5, 84, 5,213, 0, 19, 0, 28, 0,177, 64, 53, 9, 8, 7, 3, 10, 6, 17, 3, 4, 3,
- 5, 17, 4, 4, 3, 66, 6, 4, 0, 21, 3, 4, 21,149, 9, 20,149, 13,129, 11, 4, 5, 6, 3, 17, 9, 0, 28, 22, 14, 5, 10,
- 25, 25, 4, 17, 63, 20, 10, 28, 12, 4, 29, 16,252,236, 50,252,196,236, 17, 23, 57, 17, 57, 57, 57, 49, 0, 47, 60,244,236,212,
-236, 18, 57, 18, 57, 18, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 5,237, 17, 23, 57, 89, 34,178, 64, 30, 1, 1, 93, 64, 66,
-122, 19, 1, 5, 0, 5, 1, 5, 2, 6, 3, 7, 4, 21, 0, 21, 1, 20, 2, 22, 3, 23, 4, 37, 0, 37, 1, 37, 2, 38, 3, 39,
- 6, 38, 7, 38, 8, 38, 9, 32, 30, 54, 1, 54, 2, 70, 1, 70, 2,104, 5,117, 4,117, 5,119, 19,136, 6,136, 7,152, 6,152,
- 7, 31, 93, 0, 93, 1, 30, 1, 23, 19, 35, 3, 46, 1, 43, 1, 17, 35, 17, 33, 32, 22, 21, 20, 6, 1, 17, 51, 50, 54, 53, 52,
- 38, 35, 3,141, 65,123, 62,205,217,191, 74,139,120,220,202, 1,200, 1, 0,252,131,253,137,254,146,149,149,146, 2,188, 22,144,
-126,254,104, 1,127,150, 98,253,137, 5,213,214,216,141,186, 2, 79,253,238,135,131,131,133, 0, 0, 1, 0,135,255,227, 4,162,
- 5,240, 0, 39, 0,126, 64, 60, 13, 12, 2, 14, 11, 2, 30, 31, 30, 8, 9, 2, 7, 10, 2, 31, 31, 30, 66, 10, 11, 30, 31, 4,
- 21, 1, 0, 21,161, 20,148, 24,149, 17, 4,149, 0,148, 37,145, 17,140, 40, 30, 10, 11, 31, 27, 7, 0, 34, 27, 25, 14, 45, 7,
- 25, 20, 34, 40, 16,220,196,236,252,236,228, 17, 18, 57, 57, 57, 57, 49, 0, 16,228,244,228,236, 16,238,246,238, 16,198, 17, 23,
- 57, 48, 75, 83, 88, 7, 16, 14,237, 17, 23, 57, 7, 16, 14,237, 17, 23, 57, 89, 34,178, 15, 41, 1, 1, 93,182, 31, 41, 47, 41,
- 79, 41, 3, 93, 1, 21, 46, 1, 35, 34, 6, 21, 20, 22, 31, 1, 30, 1, 21, 20, 4, 33, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53,
- 52, 38, 47, 1, 46, 1, 53, 52, 36, 51, 50, 22, 4, 72,115,204, 95,165,179,119,166,122,226,215,254,221,254,231,106,239,128,123,
-236,114,173,188,135,154,123,226,202, 1, 23,245,105,218, 5,164,197, 55, 54,128,118, 99,101, 31, 25, 43,217,182,217,224, 48, 47,
-208, 69, 70,136,126,110,124, 31, 24, 45,192,171,198,228, 38, 0, 0, 1,255,250, 0, 0, 4,233, 5,213, 0, 7, 0, 74, 64, 14,
- 6, 2,149, 0,129, 4, 1, 64, 3, 28, 0, 64, 5, 8, 16,212,228,252,228, 49, 0, 47,244,236, 50, 48, 1, 75,176, 10, 84, 88,
-189, 0, 8, 0, 64, 0, 1, 0, 8, 0, 8,255,192, 56, 17, 55, 56, 89, 64, 19, 0, 9, 31, 0, 16, 1, 16, 2, 31, 7, 16, 9,
- 64, 9,112, 9,159, 9, 9, 93, 3, 33, 21, 33, 17, 35, 17, 33, 6, 4,239,253,238,203,253,238, 5,213,170,250,213, 5, 43, 0,
- 0, 1, 0,178,255,227, 5, 41, 5,213, 0, 17, 0, 64, 64, 22, 8, 2, 17, 11, 0, 5,149, 14,140, 9, 0,129, 18, 8, 28, 10,
- 56, 1, 28, 0, 65, 18, 16,252, 75,176, 16, 84, 88,185, 0, 0,255,192, 56, 89,236,252,236, 49, 0, 16,228, 50,244,236, 17, 57,
- 57, 57, 57, 48, 1,182, 31, 19,143, 19,159, 19, 3, 93, 19, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 16, 0, 33, 32, 0, 17,
-178,203,174,195,194,174,203,254,223,254,230,254,229,254,223, 5,213,252,117,240,211,211,240, 3,139,252, 92,254,220,254,214, 1,
- 42, 1, 36, 0, 0, 1, 0, 16, 0, 0, 5,104, 5,213, 0, 6, 0,183, 64, 39, 4, 17, 5, 6, 5, 3, 17, 2, 3, 6, 6, 5,
- 3, 17, 4, 3, 0, 1, 0, 2, 17, 1, 1, 0, 66, 3, 4, 1,175, 0, 6, 4, 3, 2, 0, 5, 5, 1, 7, 16,212,196, 23, 57,
- 49, 0, 47,236, 50, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 89, 34,178, 80, 8, 1,
- 1, 93, 64, 98, 0, 3, 42, 3, 71, 4, 71, 5, 90, 3,125, 3,131, 3, 7, 6, 0, 7, 2, 8, 4, 9, 6, 21, 1, 20, 2, 26,
- 4, 26, 5, 42, 0, 38, 1, 38, 2, 41, 4, 41, 5, 37, 6, 32, 8, 56, 0, 51, 1, 51, 2, 60, 4, 60, 5, 55, 6, 72, 0, 69,
- 1, 69, 2, 73, 4, 73, 5, 71, 6, 89, 0, 86, 6,102, 2,105, 4,105, 5,122, 0,118, 1,118, 2,121, 4,121, 5,117, 6,128,
- 8,152, 0,151, 6, 41, 93, 0, 93, 33, 1, 51, 9, 1, 51, 1, 2, 74,253,198,211, 1,217, 1,218,210,253,199, 5,213,251, 23,
- 4,233,250, 43, 0, 1, 0, 68, 0, 0, 7,166, 5,213, 0, 12, 1,123, 64, 73, 5, 26, 6, 5, 9, 10, 9, 4, 26, 10, 9, 3,
- 26, 10, 11, 10, 2, 26, 1, 2, 11, 11, 10, 6, 17, 7, 8, 7, 5, 17, 4, 5, 8, 8, 7, 2, 17, 3, 2, 12, 0, 12, 1, 17,
- 0, 0, 12, 66, 10, 5, 2, 3, 6, 3, 0,175, 11, 8, 12, 11, 10, 9, 8, 6, 5, 4, 3, 2, 1, 11, 7, 0, 13, 16,212,204,
- 23, 57, 49, 0, 47, 60,236, 50, 50, 23, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 7,
- 16, 8,237, 7, 16, 5,237, 7, 5,237, 7, 16, 8,237, 89, 34,178, 0, 14, 1, 1, 93, 64,242, 6, 2, 6, 5, 2, 10, 0, 10,
- 0, 10, 18, 10, 40, 5, 36, 10, 32, 10, 62, 2, 62, 5, 52, 10, 48, 10, 76, 2, 77, 5, 66, 10, 64, 10, 89, 2,106, 2,107, 5,
-103, 10, 96, 10,123, 2,127, 2,124, 5,127, 5,128, 10,150, 2,149, 5, 29, 7, 0, 9, 2, 8, 3, 0, 4, 6, 5, 0, 5, 0,
- 6, 1, 7, 4, 8, 0, 8, 7, 9, 0, 9, 4, 10, 10, 12, 0, 14, 26, 3, 21, 4, 21, 8, 25, 12, 16, 14, 32, 4, 33, 5, 32,
- 6, 32, 7, 32, 8, 35, 9, 36, 10, 37, 11, 32, 14, 32, 14, 60, 2, 58, 3, 53, 4, 51, 5, 48, 8, 54, 9, 57, 11, 63, 12, 48,
- 14, 70, 0, 70, 1, 74, 2, 64, 4, 69, 5, 64, 5, 66, 6, 66, 7, 66, 8, 64, 8, 64, 9, 68, 10, 77, 12, 64, 14, 64, 14, 88,
- 2, 86, 8, 89, 12, 80, 14,102, 2,103, 3, 97, 4, 98, 5, 96, 6, 96, 7, 96, 8,100, 9,100, 10,100, 11,119, 0,118, 1,123,
- 2,120, 3,119, 4,116, 5,121, 6,121, 7,119, 8,112, 8,120, 12,127, 12,127, 14,134, 2,135, 3,136, 4,137, 5,133, 9,138,
- 11,143, 14,151, 4,159, 14,175, 14, 91, 93, 0, 93, 19, 51, 9, 1, 51, 9, 1, 51, 1, 35, 9, 1, 35, 68,204, 1, 58, 1, 57,
-227, 1, 58, 1, 57,205,254,137,254,254,197,254,194,254, 5,213,251, 18, 4,238,251, 18, 4,238,250, 43, 5, 16,250,240, 0, 0,
- 0, 1, 0, 61, 0, 0, 5, 59, 5,213, 0, 11, 0,102, 64, 6, 13, 4, 6, 0, 10, 12, 16,212,196,220,196,196, 49,180,128, 0,
-127, 10, 2, 93, 0, 64, 5, 3, 0,175, 9, 6, 47, 60,236, 50, 48, 75,176, 66, 80, 88, 64, 20, 7, 17, 6, 6, 5, 9, 17, 10,
- 11, 10, 3, 17, 4, 5, 4, 1, 17, 0, 11, 0, 5, 7, 16,236, 7, 16,236, 7, 16,236, 7, 16,236, 64, 20, 11, 10, 3, 7, 0,
- 8, 9, 4, 7, 0, 5, 9, 4, 6, 1, 2, 10, 3, 6, 1, 15, 15, 15, 15, 89, 19, 51, 9, 1, 51, 9, 1, 35, 9, 1, 35, 1,
-129,217, 1,115, 1,117,217,254, 32, 2, 0,217,254, 92,254, 89,218, 2, 21, 5,213,253,213, 2, 43,253, 51,252,248, 2,123,253,
-133, 3, 29, 0, 0, 1,255,252, 0, 0, 4,231, 5,213, 0, 8, 0,148, 64, 40, 3, 17, 4, 5, 4, 2, 17, 1, 2, 5, 5, 4,
- 2, 17, 3, 2, 8, 0, 8, 1, 17, 0, 0, 8, 66, 2, 3, 0,175, 6, 2, 7, 4, 64, 5, 28, 0, 64, 7, 9, 16,212,228,252,
-228, 18, 57, 49, 0, 47,236, 50, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 89, 34,178,
- 0, 10, 1, 1, 93, 64, 60, 5, 2, 20, 2, 53, 2, 48, 2, 48, 5, 48, 8, 70, 2, 64, 2, 64, 5, 64, 8, 81, 2, 81, 5, 81,
- 8,101, 2,132, 2,147, 2, 16, 22, 1, 26, 3, 31, 10, 38, 1, 41, 3, 55, 1, 56, 3, 64, 10,103, 1,104, 3,120, 3,112, 10,
-159, 10, 13, 93, 0, 93, 3, 51, 9, 1, 51, 1, 17, 35, 17, 4,217, 1,158, 1,155,217,253,240,203, 5,213,253,154, 2,102,252,
-242,253, 57, 2,199, 0, 0, 0, 0, 1, 0, 92, 0, 0, 5, 31, 5,213, 0, 9, 0,144, 64, 27, 3, 17, 7, 8, 7, 8, 17, 2,
- 3, 2, 66, 8,149, 0,129, 3,149, 5, 8, 3, 0, 1, 66, 4, 0, 6, 10, 16,220, 75,176, 9, 84, 75,176, 10, 84, 91, 88,185,
- 0, 6,255,192, 56, 89,196,212,228, 17, 57, 57, 49, 0, 47,236,244,236, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 5,237, 89, 34,
- 1, 64, 64, 5, 2, 10, 7, 24, 7, 41, 2, 38, 7, 56, 7, 72, 2, 71, 7, 72, 8, 9, 5, 3, 11, 8, 0, 11, 22, 3, 26, 8,
- 16, 11, 47, 11, 53, 3, 57, 8, 63, 11, 71, 3, 74, 8, 79, 11, 85, 3, 89, 8,102, 3,105, 8,111, 11,119, 3,120, 8,127, 11,
-159, 11, 22, 93, 0, 93, 19, 33, 21, 1, 33, 21, 33, 53, 1, 33,115, 4,149,252, 80, 3,199,251, 61, 3,176,252,103, 5,213,154,
-251,111,170,154, 4,145, 0, 0, 0, 1, 0,176,254,242, 2, 88, 6, 20, 0, 7, 0, 59, 64, 15, 4,169, 6,178, 2,169, 0,177,
- 8, 5, 1, 3, 67, 0, 8, 16,220, 75,176, 12, 84, 88,185, 0, 0, 0, 64, 56, 89, 75,176, 18, 84, 75,176, 19, 84, 91, 88,185,
- 0, 0,255,192, 56, 89,252,204, 50, 49, 0, 16,252,236,244,236, 48, 19, 33, 21, 35, 17, 51, 21, 33,176, 1,168,240,240,254, 88,
- 6, 20,143,249,252,143, 0, 0, 0, 1, 0, 0,255, 66, 2,178, 5,213, 0, 3, 0, 45, 64, 20, 2, 26, 1, 1, 0, 0, 26, 3,
- 3, 2, 66, 1,159, 0,129, 4, 2, 0, 1, 3, 47,196, 57, 57, 49, 0, 16,244,236, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 5,
-237, 89, 34, 19, 1, 35, 1,170, 2, 8,170,253,248, 5,213,249,109, 6,147, 0, 0, 1, 0,199,254,242, 2,111, 6, 20, 0, 7,
- 0, 48, 64, 16, 3,169, 1,178, 5,169, 0,177, 8, 0, 67, 4, 6, 2, 4, 8, 16,252, 75,176, 15, 84, 75,176, 16, 84, 91, 88,
-185, 0, 2, 0, 64, 56, 89, 60,220,236, 49, 0, 16,252,236,244,236, 48, 1, 17, 33, 53, 51, 17, 35, 53, 2,111,254, 88,239,239,
- 6, 20,248,222,143, 6, 4,143, 0, 1, 0,217, 3,168, 5,219, 5,213, 0, 6, 0, 24, 64, 10, 3, 4, 1, 0,129, 7, 3, 1,
- 5, 7, 16,220,204, 57, 49, 0, 16,244,204, 50, 57, 48, 9, 1, 35, 9, 1, 35, 1, 3,188, 2, 31,201,254, 72,254, 72,201, 2,
- 31, 5,213,253,211, 1,139,254,117, 2, 45, 0, 0, 1,255,236,254, 29, 4, 20,254,172, 0, 3, 0, 15,181, 0,169, 1, 0, 2,
- 4, 16,196,196, 49, 0,212,236, 48, 1, 21, 33, 53, 4, 20,251,216,254,172,143,143, 0, 0, 0, 0, 1, 0,170, 4,240, 2,137,
- 6,102, 0, 3, 0, 49, 64, 9, 1,180, 0,179, 4, 3, 68, 1, 4, 16,220,236, 49, 0, 16,244,236, 48, 0, 75,176, 9, 84, 75,
-176, 14, 84, 91, 88,189, 0, 4,255,192, 0, 1, 0, 4, 0, 4, 0, 64, 56, 17, 55, 56, 89, 9, 1, 35, 1, 1,111, 1, 26,153,
-254,186, 6,102,254,138, 1,118, 0, 2, 0,123,255,227, 4, 45, 4,123, 0, 10, 0, 37, 0,188, 64, 39, 25, 31, 11, 23, 9, 14,
- 0,169, 23, 6,185, 14, 17, 32,134, 31,186, 28,185, 35,184, 17,140, 23, 12, 0, 23, 3, 24, 13, 9, 8, 11, 31, 3, 8, 20, 69,
- 38, 16,252,236,204,212,236, 50, 50, 17, 57, 57, 49, 0, 47,196,228,244,252,244,236, 16,198,238, 16,238, 17, 57, 17, 57, 18, 57,
- 48, 64,110, 48, 29, 48, 30, 48, 31, 48, 32, 48, 33, 48, 34, 63, 39, 64, 29, 64, 30, 64, 31, 64, 32, 64, 33, 64, 34, 80, 29, 80,
- 30, 80, 31, 80, 32, 80, 33, 80, 34, 80, 39,112, 39,133, 29,135, 30,135, 31,135, 32,135, 33,133, 34,144, 39,160, 39,240, 39, 30,
- 48, 30, 48, 31, 48, 32, 48, 33, 64, 30, 64, 31, 64, 32, 64, 33, 80, 30, 80, 31, 80, 32, 80, 33, 96, 30, 96, 31, 96, 32, 96, 33,
-112, 30,112, 31,112, 32,112, 33,128, 30,128, 31,128, 32,128, 33, 24, 93, 1, 93, 1, 34, 6, 21, 20, 22, 51, 50, 54, 61, 1, 55,
- 17, 35, 53, 14, 1, 35, 34, 38, 53, 52, 54, 51, 33, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 2,190,223,172,129,111,
-153,185,184,184, 63,188,136,172,203,253,251, 1, 2,167,151, 96,182, 84,101,190, 90,243,240, 2, 51,102,123, 98,115,217,180, 41,
- 76,253,129,170,102, 97,193,162,189,192, 18,127,139, 46, 46,170, 39, 39,252, 0, 0, 2, 0,186,255,227, 4,164, 6, 20, 0, 11,
- 0, 28, 0, 56, 64, 25, 3,185, 12, 15, 9,185, 24, 21,140, 15,184, 27,151, 25, 0, 18, 18, 71, 24, 12, 6, 8, 26, 70, 29, 16,
-252,236, 50, 50,244,236, 49, 0, 47,236,228,244,196,236, 16,198,238, 48,182, 96, 30,128, 30,160, 30, 3, 1, 93, 1, 52, 38, 35,
- 34, 6, 21, 20, 22, 51, 50, 54, 1, 62, 1, 51, 50, 0, 17, 16, 2, 35, 34, 38, 39, 21, 35, 17, 51, 3,229,167,146,146,167,167,
-146,146,167,253,142, 58,177,123,204, 0,255,255,204,123,177, 58,185,185, 2, 47,203,231,231,203,203,231,231, 2, 82,100, 97,254,
-188,254,248,254,248,254,188, 97,100,168, 6, 20, 0, 1, 0,113,255,227, 3,231, 4,123, 0, 25, 0, 63, 64, 27, 0,134, 1,136,
- 4, 14,134, 13,136, 10,185, 17, 4,185, 23,184, 17,140, 26, 7, 18, 13, 0, 72, 20, 69, 26, 16,252,228, 50,236, 49, 0, 16,228,
-244,236, 16,254,244,238, 16,245,238, 48, 64, 11, 15, 27, 16, 27,128, 27,144, 27,160, 27, 5, 1, 93, 1, 21, 46, 1, 35, 34, 6,
- 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 0, 17, 16, 0, 33, 50, 22, 3,231, 78,157, 80,179,198,198,179, 80,157, 78, 77,
-165, 93,253,254,214, 1, 45, 1, 6, 85,162, 4, 53,172, 43, 43,227,205,205,227, 43, 43,170, 36, 36, 1, 62, 1, 14, 1, 18, 1,
- 58, 35, 0, 0, 0, 2, 0,113,255,227, 4, 90, 6, 20, 0, 16, 0, 28, 0, 56, 64, 25, 26,185, 0, 14, 20,185, 5, 8,140, 14,
-184, 1,151, 3, 23, 4, 0, 8, 2, 71, 17, 18, 11, 69, 29, 16,252,236,244,236, 50, 50, 49, 0, 47,236,228,244,196,236, 16,196,
-238, 48,182, 96, 30,128, 30,160, 30, 3, 1, 93, 1, 17, 51, 17, 35, 53, 14, 1, 35, 34, 2, 17, 16, 0, 51, 50, 22, 1, 20, 22,
- 51, 50, 54, 53, 52, 38, 35, 34, 6, 3,162,184,184, 58,177,124,203,255, 0,255,203,124,177,253,199,167,146,146,168,168,146,146,
-167, 3,182, 2, 94,249,236,168,100, 97, 1, 68, 1, 8, 1, 8, 1, 68, 97,254, 21,203,231,231,203,203,231,231, 0, 2, 0,113,
-255,227, 4,127, 4,123, 0, 20, 0, 27, 0,112, 64, 36, 0, 21, 1, 9,134, 8,136, 5, 21,169, 1, 5,185, 12, 1,187, 24,185,
- 18,184, 12,140, 28, 27, 21, 2, 8, 21, 8, 0, 75, 2, 18, 15, 69, 28, 16,252,236,244,236,196, 17, 18, 57, 49, 0, 16,228,244,
-236,228, 16,238, 16,238, 16,244,238, 17, 18, 57, 48, 64, 41, 63, 29,112, 29,160, 29,208, 29,240, 29, 5, 63, 0, 63, 1, 63, 2,
- 63, 21, 63, 27, 5, 44, 7, 47, 8, 47, 9, 44, 10,111, 0,111, 1,111, 2,111, 21,111, 27, 9, 93,113, 1, 93, 1, 21, 33, 30,
- 1, 51, 50, 54, 55, 21, 14, 1, 35, 32, 0, 17, 16, 0, 51, 50, 0, 7, 46, 1, 35, 34, 6, 7, 4,127,252,178, 12,205,183,106,
-199, 98, 99,208,107,254,244,254,199, 1, 41,252,226, 1, 7,184, 2,165,136,154,185, 14, 2, 94, 90,190,199, 52, 52,174, 42, 44,
- 1, 56, 1, 10, 1, 19, 1, 67,254,221,196,151,180,174,158, 0, 0, 1, 0, 47, 0, 0, 2,248, 6, 20, 0, 19, 0, 89, 64, 28,
- 5, 16, 1, 12, 8,169, 6, 1,135, 0,151, 14, 6,188, 10, 2, 19, 7, 0, 7, 9, 5, 8, 13, 15, 11, 76, 20, 16,252, 75,176,
- 10, 84, 88,185, 0, 11, 0, 64, 56, 89, 75,176, 14, 84, 88,185, 0, 11,255,192, 56, 89, 60,196,252, 60,196,196, 18, 57, 57, 49,
- 0, 47,228, 50,252,236, 16,238, 50, 18, 57, 57, 48, 1,182, 64, 21, 80, 21,160, 21, 3, 93, 1, 21, 35, 34, 6, 29, 1, 33, 21,
- 33, 17, 35, 17, 35, 53, 51, 53, 52, 54, 51, 2,248,176, 99, 77, 1, 47,254,209,185,176,176,174,189, 6, 20,153, 80,104, 99,143,
-252, 47, 3,209,143, 78,187,171, 0, 2, 0,113,254, 86, 4, 90, 4,123, 0, 11, 0, 40, 0, 74, 64, 35, 25, 12, 29, 9, 18,134,
- 19, 22,185, 15, 3,185, 38, 35,184, 39,188, 9,185, 15,189, 26, 29, 38, 25, 0, 8, 12, 71, 6, 18, 18, 32, 69, 41, 16,252,196,
-236,244,236, 50, 50, 49, 0, 47,196,228,236,228,244,196,236, 16,254,213,238, 17, 18, 57, 57, 48,182, 96, 42,128, 42,160, 42, 3,
- 1, 93, 1, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 23, 16, 2, 33, 34, 38, 39, 53, 30, 1, 51, 50, 54, 61, 1, 14, 1, 35,
- 34, 2, 17, 16, 18, 51, 50, 22, 23, 53, 51, 3,162,165,149,148,165,165,148,149,165,184,254,254,250, 97,172, 81, 81,158, 82,181,
-180, 57,178,124,206,252,252,206,124,178, 57,184, 2, 61,200,220,220,200,199,220,220,235,254,226,254,233, 29, 30,179, 44, 42,189,
-191, 91, 99, 98, 1, 58, 1, 3, 1, 4, 1, 58, 98, 99,170, 0, 0, 1, 0,186, 0, 0, 4,100, 6, 20, 0, 19, 0, 52, 64, 25,
- 3, 9, 0, 3, 14, 1, 6,135, 14, 17,184, 12,151, 10, 1, 2, 8, 0, 78, 13, 9, 8, 11, 70, 20, 16,252,236, 50,244,236, 49,
- 0, 47, 60,236,244,196,236, 17, 18, 23, 57, 48,178, 96, 21, 1, 1, 93, 1, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51,
- 17, 62, 1, 51, 50, 22, 4,100,184,124,124,149,172,185,185, 66,179,117,193,198, 2,164,253, 92, 2,158,159,158,190,164,253,135,
- 6, 20,253,158,101,100,239, 0, 0, 2, 0,193, 0, 0, 1,121, 6, 20, 0, 3, 0, 7, 0, 43, 64, 14, 6,190, 4,177, 0,188,
- 2, 5, 1, 8, 4, 0, 70, 8, 16,252, 60,236, 50, 49, 0, 47,228,252,236, 48, 64, 11, 16, 9, 64, 9, 80, 9, 96, 9,112, 9,
- 5, 1, 93, 19, 51, 17, 35, 17, 51, 21, 35,193,184,184,184,184, 4, 96,251,160, 6, 20,233, 0, 0, 2,255,219,254, 86, 1,121,
- 6, 20, 0, 11, 0, 15, 0, 68, 64, 28, 11, 2, 7, 0, 14,190, 12, 7,135, 5,189, 0,188, 12,177, 16, 8, 16, 5, 6, 79, 13,
- 1, 8, 12, 0, 70, 16, 16,252, 60,236, 50,228, 57, 18, 57, 49, 0, 16,236,228,244,236, 16,238, 17, 18, 57, 57, 48, 64, 11, 16,
- 17, 64, 17, 80, 17, 96, 17,112, 17, 5, 1, 93, 19, 51, 17, 20, 6, 43, 1, 53, 51, 50, 54, 53, 17, 51, 21, 35,193,184,163,181,
- 70, 49,105, 76,184,184, 4, 96,251,140,214,192,156, 97,153, 6, 40,233, 0, 0, 0, 1, 0,186, 0, 0, 4,156, 6, 20, 0, 10,
- 0,188, 64, 41, 8, 17, 5, 6, 5, 7, 17, 6, 6, 5, 3, 17, 4, 5, 4, 2, 17, 5, 5, 4, 66, 8, 5, 2, 3, 3,188, 0,
-151, 9, 6, 5, 1, 4, 6, 8, 1, 8, 0, 70, 11, 16,252,236, 50,212,196, 17, 57, 49, 0, 47, 60,236,228, 23, 57, 48, 75, 83,
- 88, 7, 16, 4,237, 7, 16, 5,237, 7, 16, 5,237, 7, 16, 4,237, 89, 34,178, 16, 12, 1, 1, 93, 64, 95, 4, 2, 10, 8, 22,
- 2, 39, 2, 41, 5, 43, 8, 86, 2,102, 2,103, 8,115, 2,119, 5,130, 2,137, 5,142, 8,147, 2,150, 5,151, 8,163, 2, 18,
- 9, 5, 9, 6, 2, 11, 3, 10, 7, 40, 3, 39, 4, 40, 5, 43, 6, 43, 7, 64, 12,104, 3, 96, 12,137, 3,133, 4,137, 5,141,
- 6,143, 7,154, 3,151, 7,170, 3,167, 5,182, 7,197, 7,214, 7,247, 3,240, 3,247, 4,240, 4, 26, 93,113, 0, 93, 19, 51,
- 17, 1, 51, 9, 1, 35, 1, 17, 35,186,185, 2, 37,235,253,174, 2,107,240,253,199,185, 6, 20,252,105, 1,227,253,244,253,172,
- 2, 35,253,221, 0, 1, 0,193, 0, 0, 1,121, 6, 20, 0, 3, 0, 34,183, 0,151, 2, 1, 8, 0, 70, 4, 16,252,236, 49, 0,
- 47,236, 48, 64, 13, 16, 5, 64, 5, 80, 5, 96, 5,112, 5,240, 5, 6, 1, 93, 19, 51, 17, 35,193,184,184, 6, 20,249,236, 0,
- 0, 1, 0,186, 0, 0, 7, 29, 4,123, 0, 34, 0, 90, 64, 38, 6, 18, 9, 24, 15, 0, 6, 29, 7, 21, 12,135, 29, 32, 3,184,
- 27,188, 25, 16, 7, 0, 17, 15, 8, 8, 6, 80, 17, 8, 15, 80, 28, 24, 8, 26, 70, 35, 16,252,236, 50,252,252,252,236, 17, 18,
- 57, 49, 0, 47, 60, 60,228,244, 60,196,236, 50, 17, 18, 23, 57, 48, 64, 19, 48, 36, 80, 36,112, 36,144, 36,160, 36,160, 36,191,
- 36,223, 36,255, 36, 9, 1, 93, 1, 62, 1, 51, 50, 22, 21, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 52, 38, 35, 34, 6,
- 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 4, 41, 69,192,130,175,190,185,114,117,143,166,185,114,119,141,166,185,185, 63,176,
-121,122,171, 3,137,124,118,245,226,253, 92, 2,158,161,156,190,164,253,135, 2,158,162,155,191,163,253,135, 4, 96,174,103, 98,
-124, 0, 0, 0, 0, 1, 0,186, 0, 0, 4,100, 4,123, 0, 19, 0, 54, 64, 25, 3, 9, 0, 3, 14, 1, 6,135, 14, 17,184, 12,
-188, 10, 1, 2, 8, 0, 78, 13, 9, 8, 11, 70, 20, 16,252,236, 50,244,236, 49, 0, 47, 60,228,244,196,236, 17, 18, 23, 57, 48,
-180, 96, 21,207, 21, 2, 1, 93, 1, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 4,100,184,124,
-124,149,172,185,185, 66,179,117,193,198, 2,164,253, 92, 2,158,159,158,190,164,253,135, 4, 96,174,101,100,239, 0, 2, 0,113,
-255,227, 4,117, 4,123, 0, 11, 0, 23, 0, 74, 64, 19, 6,185, 18, 0,185, 12,184, 18,140, 24, 9, 18, 15, 81, 3, 18, 21, 69,
- 24, 16,252,236,244,236, 49, 0, 16,228,244,236, 16,238, 48, 64, 35, 63, 25,123, 0,123, 6,127, 7,127, 8,127, 9,127, 10,127,
- 11,123, 12,127, 13,127, 14,127, 15,127, 16,127, 17,123, 18,160, 25,240, 25, 17, 1, 93, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53,
- 52, 38, 39, 50, 0, 17, 16, 0, 35, 34, 0, 17, 16, 0, 2,115,148,172,171,149,147,172,172,147,240, 1, 18,254,238,240,241,254,
-239, 1, 17, 3,223,231,201,201,231,232,200,199,233,156,254,200,254,236,254,237,254,199, 1, 57, 1, 19, 1, 20, 1, 56, 0, 0,
- 0, 2, 0,186,254, 86, 4,164, 4,123, 0, 16, 0, 28, 0, 62, 64, 27, 26,185, 0, 14, 20,185, 5, 8,184, 14,140, 1,189, 3,
-188, 29, 17, 18, 11, 71, 23, 4, 0, 8, 2, 70, 29, 16,252,236, 50, 50,244,236, 49, 0, 16,228,228,228,244,196,236, 16,196,238,
- 48, 64, 9, 96, 30,128, 30,160, 30,224, 30, 4, 1, 93, 37, 17, 35, 17, 51, 21, 62, 1, 51, 50, 0, 17, 16, 2, 35, 34, 38, 1,
- 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 1,115,185,185, 58,177,123,204, 0,255,255,204,123,177, 2, 56,167,146,146,167,167,
-146,146,167,168,253,174, 6, 10,170,100, 97,254,188,254,248,254,248,254,188, 97, 1,235,203,231,231,203,203,231,231, 0, 0, 0,
- 0, 2, 0,113,254, 86, 4, 90, 4,123, 0, 11, 0, 28, 0, 62, 64, 27, 3,185, 12, 15, 9,185, 24, 21,184, 15,140, 27,189, 25,
-188, 29, 24, 12, 6, 8, 26, 71, 0, 18, 18, 69, 29, 16,252,236,244,236, 50, 50, 49, 0, 16,228,228,228,244,196,236, 16,198,238,
- 48, 64, 9, 96, 30,128, 30,160, 30,224, 30, 4, 1, 93, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 14, 1, 35, 34, 2,
- 17, 16, 0, 51, 50, 22, 23, 53, 51, 17, 35, 1, 47,167,146,146,168,168,146,146,167, 2,115, 58,177,124,203,255, 0,255,203,124,
-177, 58,184,184, 2, 47,203,231,231,203,203,231,231,253,174,100, 97, 1, 68, 1, 8, 1, 8, 1, 68, 97,100,170,249,246, 0, 0,
- 0, 1, 0,186, 0, 0, 3, 74, 4,123, 0, 17, 0, 48, 64, 20, 6, 11, 7, 0, 17, 11, 3,135, 14,184, 9,188, 7, 10, 6, 8,
- 0, 8, 70, 18, 16,252,196,236, 50, 49, 0, 47,228,244,236,196,212,204, 17, 18, 57, 48,180, 80, 19,159, 19, 2, 1, 93, 1, 46,
- 1, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 23, 3, 74, 31, 73, 44,156,167,185,185, 58,186,133, 19, 46, 28, 3,
-180, 18, 17,203,190,253,178, 4, 96,174,102, 99, 5, 5, 0, 0, 0, 1, 0,111,255,227, 3,199, 4,123, 0, 39, 0,231, 64, 60,
- 13, 12, 2, 14, 11, 83, 31, 30, 8, 9, 2, 7, 10, 83, 30, 31, 30, 66, 10, 11, 30, 31, 4, 21, 0,134, 1,137, 4, 20,134, 21,
-137, 24,185, 17, 4,185, 37,184, 17,140, 40, 30, 10, 11, 31, 27, 7, 0, 82, 27, 8, 14, 7, 8, 20, 34, 69, 40, 16,252,196,236,
-212,236,228, 17, 18, 57, 57, 57, 57, 49, 0, 16,228,244,236, 16,254,245,238, 16,245,238, 18, 23, 57, 48, 75, 83, 88, 7, 16, 14,
-237, 17, 23, 57, 7, 14,237, 17, 23, 57, 89, 34,178, 0, 39, 1, 1, 93, 64,109, 28, 10, 28, 11, 28, 12, 46, 9, 44, 10, 44, 11,
- 44, 12, 59, 9, 59, 10, 59, 11, 59, 12, 11, 32, 0, 32, 1, 36, 2, 40, 10, 40, 11, 42, 19, 47, 20, 47, 21, 42, 22, 40, 30, 40,
- 31, 41, 32, 41, 33, 36, 39,134, 10,134, 11,134, 12,134, 13, 18, 0, 0, 0, 1, 2, 2, 6, 10, 6, 11, 3, 12, 3, 13, 3, 14,
- 3, 15, 3, 16, 3, 25, 3, 26, 3, 27, 3, 28, 4, 29, 9, 39, 47, 41, 63, 41, 95, 41,127, 41,128, 41,144, 41,160, 41,240, 41,
- 24, 93, 0, 93,113, 1, 21, 46, 1, 35, 34, 6, 21, 20, 22, 31, 1, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54,
- 53, 52, 38, 47, 1, 46, 1, 53, 52, 54, 51, 50, 22, 3,139, 78,168, 90,137,137, 98,148, 63,196,165,247,216, 90,195,108,102,198,
- 97,130,140,101,171, 64,171,152,224,206,102,180, 4, 63,174, 40, 40, 84, 84, 64, 73, 33, 14, 42,153,137,156,182, 35, 35,190, 53,
- 53, 89, 81, 75, 80, 37, 15, 36,149,130,158,172, 30, 0, 0, 0, 0, 1, 0, 55, 0, 0, 2,242, 5,158, 0, 19, 0, 56, 64, 25,
- 14, 5, 8, 15, 3,169, 0, 17, 1,188, 8,135, 10, 11, 8, 9, 2, 4, 0, 8, 16, 18, 14, 70, 20, 16,252, 60,196,252, 60,196,
- 50, 57, 57, 49, 0, 47,236,244, 60,196,236, 50, 17, 57, 57, 48,178,175, 21, 1, 1, 93, 1, 17, 33, 21, 33, 17, 20, 22, 59, 1,
- 21, 35, 34, 38, 53, 17, 35, 53, 51, 17, 1,119, 1,123,254,133, 75,115,189,189,213,162,135,135, 5,158,254,194,143,253,160,137,
- 78,154,159,210, 2, 96,143, 1, 62, 0, 0, 0, 0, 1, 0,174,255,227, 4, 88, 4, 96, 0, 19, 0, 54, 64, 25, 3, 9, 0, 3,
- 14, 1, 6,135, 14, 17,140, 10, 1,188, 12, 13, 9, 8, 11, 78, 2, 8, 0, 70, 20, 16,252,236,244,236, 50, 49, 0, 47,228, 50,
-244,196,236, 17, 18, 23, 57, 48,180, 96, 21,207, 21, 2, 1, 93, 19, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 35, 53, 14,
- 1, 35, 34, 38,174,184,124,124,149,173,184,184, 67,177,117,193,200, 1,186, 2,166,253, 97,159,159,190,164, 2,123,251,160,172,
-102, 99,240, 0, 0, 1, 0, 61, 0, 0, 4,127, 4, 96, 0, 6, 0,251, 64, 39, 3, 17, 4, 5, 4, 2, 17, 1, 2, 5, 5, 4,
- 2, 17, 3, 2, 6, 0, 6, 1, 17, 0, 0, 6, 66, 2, 3, 0,191, 5, 6, 5, 3, 2, 1, 5, 4, 0, 7, 16,212, 75,176, 10,
- 84, 88,185, 0, 0, 0, 64, 56, 89, 75,176, 20, 84, 75,176, 21, 84, 91, 88,185, 0, 0,255,192, 56, 89,196, 23, 57, 49, 0, 47,
-236, 50, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 89, 34, 1, 64,142, 72, 2,106, 2,
-123, 2,127, 2,134, 2,128, 2,145, 2,164, 2, 8, 6, 0, 6, 1, 9, 3, 9, 4, 21, 0, 21, 1, 26, 3, 26, 4, 38, 0, 38,
- 1, 41, 3, 41, 4, 32, 8, 53, 0, 53, 1, 58, 3, 58, 4, 48, 8, 70, 0, 70, 1, 73, 3, 73, 4, 70, 5, 72, 6, 64, 8, 86,
- 0, 86, 1, 89, 3, 89, 4, 80, 8,102, 0,102, 1,105, 3,105, 4,103, 5,104, 6, 96, 8,117, 0,116, 1,123, 3,123, 4,117,
- 5,122, 6,133, 0,133, 1,137, 3,137, 4,137, 5,134, 6,150, 0,150, 1,151, 2,154, 3,152, 4,152, 5,151, 6,168, 5,167,
- 6,176, 8,192, 8,223, 8,255, 8, 62, 93, 0, 93, 19, 51, 9, 1, 51, 1, 35, 61,195, 1, 94, 1, 94,195,254, 92,250, 4, 96,
-252, 84, 3,172,251,160, 0, 0, 0, 1, 0, 86, 0, 0, 6, 53, 4, 96, 0, 12, 1,235, 64, 73, 5, 85, 6, 5, 9, 10, 9, 4,
- 85, 10, 9, 3, 85, 10, 11, 10, 2, 85, 1, 2, 11, 11, 10, 6, 17, 7, 8, 7, 5, 17, 4, 5, 8, 8, 7, 2, 17, 3, 2, 12,
- 0, 12, 1, 17, 0, 0, 12, 66, 10, 5, 2, 3, 6, 3, 0,191, 11, 8, 12, 11, 10, 9, 8, 6, 5, 4, 3, 2, 1, 11, 7, 0,
- 13, 16,212, 75,176, 10, 84, 75,176, 17, 84, 91, 75,176, 18, 84, 91, 75,176, 19, 84, 91, 75,176, 11, 84, 91, 88,185, 0, 0, 0,
- 64, 56, 89, 1, 75,176, 12, 84, 75,176, 13, 84, 91, 75,176, 16, 84, 91, 88,185, 0, 0,255,192, 56, 89,204, 23, 57, 49, 0, 47,
- 60,236, 50, 50, 23, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 7, 16, 8,237, 7, 16,
- 5,237, 7, 5,237, 7, 16, 8,237, 89, 34, 1, 64,255, 5, 2, 22, 2, 22, 5, 34, 10, 53, 10, 73, 2, 73, 5, 70, 10, 64, 10,
- 91, 2, 91, 5, 85, 10, 80, 10,110, 2,110, 5,102, 10,121, 2,127, 2,121, 5,127, 5,135, 2,153, 2,152, 5,148, 10,188, 2,
-188, 5,206, 2,199, 3,207, 5, 29, 5, 2, 9, 3, 6, 4, 11, 5, 10, 8, 11, 9, 4, 11, 5, 12, 21, 2, 25, 3, 22, 4, 26,
- 5, 27, 8, 27, 9, 20, 11, 21, 12, 37, 0, 37, 1, 35, 2, 39, 3, 33, 4, 37, 5, 34, 6, 34, 7, 37, 8, 39, 9, 36, 10, 33,
- 11, 35, 12, 57, 3, 54, 4, 54, 8, 57, 12, 48, 14, 70, 2, 72, 3, 70, 4, 64, 4, 66, 5, 64, 6, 64, 7, 64, 8, 68, 9, 68,
- 10, 68, 11, 64, 14, 64, 14, 86, 0, 86, 1, 86, 2, 80, 4, 81, 5, 82, 6, 82, 7, 80, 8, 83, 9, 84, 10, 85, 11, 99, 0,100,
- 1,101, 2,106, 3,101, 4,106, 5,106, 6,106, 7,110, 9, 97, 11,103, 12,111, 14,117, 0,117, 1,121, 2,125, 3,120, 4,125,
- 5,122, 6,127, 6,122, 7,127, 7,120, 8,121, 9,127, 9,123, 10,118, 11,125, 12,135, 2,136, 5,143, 14,151, 0,151, 1,148,
- 2,147, 3,156, 4,155, 5,152, 6,152, 7,153, 8, 64, 47,150, 12,159, 14,166, 0,166, 1,164, 2,164, 3,171, 4,171, 5,169,
- 6,169, 7,171, 8,164, 12,175, 14,181, 2,177, 3,189, 4,187, 5,184, 9,191, 14,196, 2,195, 3,204, 4,202, 5,121, 93, 0,
- 93, 19, 51, 27, 1, 51, 27, 1, 51, 1, 35, 11, 1, 35, 86,184,230,229,217,230,229,184,254,219,217,241,242,217, 4, 96,252,150,
- 3,106,252,150, 3,106,251,160, 3,150,252,106, 0, 1, 0, 59, 0, 0, 4,121, 4, 96, 0, 11, 1, 67, 64, 70, 5, 17, 6, 7,
- 6, 4, 17, 3, 4, 7, 7, 6, 4, 17, 5, 4, 1, 2, 1, 3, 17, 2, 2, 1, 11, 17, 0, 1, 0, 10, 17, 9, 10, 1, 1, 0,
- 10, 17, 11, 10, 7, 8, 7, 9, 17, 8, 8, 7, 66, 10, 7, 4, 1, 4, 8, 0,191, 5, 2, 10, 7, 4, 1, 4, 8, 0, 2, 8,
- 6, 12, 16,212, 75,176, 10, 84, 75,176, 15, 84, 91, 75,176, 16, 84, 91, 75,176, 17, 84, 91, 88,185, 0, 6, 0, 64, 56, 89, 75,
-176, 20, 84, 88,185, 0, 6,255,192, 56, 89,196,212,196, 17, 23, 57, 49, 0, 47, 60,236, 50, 23, 57, 48, 75, 83, 88, 7, 16, 5,
-237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 89, 34, 1,
- 64,152, 10, 4, 4, 10, 26, 4, 21, 10, 38, 10, 61, 4, 49, 10, 85, 4, 87, 7, 88, 10,102, 10,118, 1,122, 4,118, 7,116, 10,
-141, 4,130, 10,153, 4,159, 4,151, 7,146, 10,144, 10,166, 1,169, 4,175, 4,165, 7,163, 10,160, 10, 28, 10, 3, 4, 5, 5,
- 9, 10, 11, 26, 3, 21, 5, 21, 9, 26, 11, 41, 3, 38, 5, 37, 9, 42, 11, 32, 13, 58, 1, 57, 3, 55, 5, 52, 7, 54, 9, 57,
- 11, 48, 13, 73, 3, 70, 5, 69, 9, 74, 11, 64, 13, 89, 0, 86, 1, 89, 2, 89, 3, 87, 5, 86, 6, 89, 7, 86, 8, 86, 9, 89,
- 11, 80, 13,111, 13,120, 1,127, 13,155, 1,148, 7,171, 1,164, 7,176, 13,207, 13,223, 13,255, 13, 47, 93, 0, 93, 9, 2, 35,
- 9, 1, 35, 9, 1, 51, 9, 1, 4,100,254,107, 1,170,217,254,186,254,186,217, 1,179,254,114,217, 1, 41, 1, 41, 4, 96,253,
-223,253,193, 1,184,254, 72, 2, 74, 2, 22,254,113, 1,143, 0, 0, 1, 0, 61,254, 86, 4,127, 4, 96, 0, 15, 1,139, 64, 67,
- 7, 8, 2, 9, 17, 0, 15, 10, 17, 11, 10, 0, 0, 15, 14, 17, 15, 0, 15, 13, 17, 12, 13, 0, 0, 15, 13, 17, 14, 13, 10, 11,
- 10, 12, 17, 11, 11, 10, 66, 13, 11, 9, 16, 0, 11, 5,135, 3,189, 14, 11,188, 16, 14, 13, 12, 10, 9, 6, 3, 0, 8, 15, 4,
- 15, 11, 16, 16,212, 75,176, 10, 84, 75,176, 8, 84, 91, 88,185, 0, 11, 0, 64, 56, 89, 75,176, 20, 84, 88,185, 0, 11,255,192,
- 56, 89,196,196, 17, 23, 57, 49, 0, 16,228, 50,244,236, 17, 57, 17, 57, 18, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 8,237,
- 7, 16, 8,237, 7, 16, 5,237, 7, 16, 8,237, 7, 5,237, 23, 50, 89, 34, 1, 64,240, 6, 0, 5, 8, 6, 9, 3, 13, 22, 10,
- 23, 13, 16, 13, 35, 13, 53, 13, 73, 10, 79, 10, 78, 13, 90, 9, 90, 10,106, 10,135, 13,128, 13,147, 13, 18, 10, 0, 10, 9, 6,
- 11, 5, 12, 11, 14, 11, 15, 23, 1, 21, 2, 16, 4, 16, 5, 23, 10, 20, 11, 20, 12, 26, 14, 26, 15, 39, 0, 36, 1, 36, 2, 32,
- 4, 32, 5, 41, 8, 40, 9, 37, 10, 36, 11, 36, 12, 39, 13, 42, 14, 42, 15, 32, 17, 55, 0, 53, 1, 53, 2, 48, 4, 48, 5, 56,
- 10, 54, 11, 54, 12, 56, 13, 57, 14, 57, 15, 48, 17, 65, 0, 64, 1, 64, 2, 64, 3, 64, 4, 64, 5, 64, 6, 64, 7, 64, 8, 66,
- 9, 69, 10, 71, 13, 73, 14, 73, 15, 64, 17, 84, 0, 81, 1, 81, 2, 85, 3, 80, 4, 80, 5, 86, 6, 85, 7, 86, 8, 87, 9, 87,
- 10, 85, 11, 85, 12, 89, 14, 89, 15, 80, 17,102, 1,102, 2,104, 10,105, 14,105, 15, 96, 17,123, 8,120, 14,120, 15,137, 0,138,
- 9,133, 11,133, 12,137, 13,137, 14,137, 15,153, 9,149, 11,149, 12,154, 14,154, 15,164, 11,164, 12,171, 14,171, 15,176, 17,207,
- 17,223, 17,255, 17,101, 93, 0, 93, 5, 14, 1, 43, 1, 53, 51, 50, 54, 63, 1, 1, 51, 9, 1, 51, 2,147, 78,148,124,147,108,
- 76, 84, 51, 33,254, 59,195, 1, 94, 1, 94,195,104,200,122,154, 72,134, 84, 4, 78,252,148, 3,108, 0, 0, 0, 0, 1, 0, 88,
- 0, 0, 3,219, 4, 96, 0, 9, 0,157, 64, 26, 8, 17, 2, 3, 2, 3, 17, 7, 8, 7, 66, 8,169, 0,188, 3,169, 5, 8, 3,
- 1, 0, 4, 1, 6, 10, 16,220, 75,176, 11, 84, 75,176, 12, 84, 91, 88,185, 0, 6,255,192, 56, 89, 75,176, 19, 84, 88,185, 0,
- 6, 0, 64, 56, 89,196, 50,196, 17, 57, 57, 49, 0, 47,236,244,236, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 5,237, 89, 34, 1,
- 64, 66, 5, 2, 22, 2, 38, 2, 71, 2, 73, 7, 5, 11, 8, 15, 11, 24, 3, 27, 8, 43, 8, 32, 11, 54, 3, 57, 8, 48, 11, 64,
- 1, 64, 2, 69, 3, 64, 4, 64, 5, 67, 8, 87, 3, 89, 8, 95, 11, 96, 1, 96, 2,102, 3, 96, 4, 96, 5, 98, 8,127, 11,128,
- 11,175, 11, 27, 93, 0, 93, 19, 33, 21, 1, 33, 21, 33, 53, 1, 33,113, 3,106,253, 76, 2,180,252,125, 2,180,253,101, 4, 96,
-168,252,219,147,168, 3, 37, 0, 0, 1, 1, 0,254,178, 4, 23, 6, 20, 0, 36, 0,119, 64, 52, 25, 15, 21, 11, 6, 37, 9, 26,
- 16, 21, 29, 11, 5, 32, 33, 3, 0, 11,169, 9, 0,169, 1,192, 9, 21,169, 19,177, 37, 12, 9, 10, 5, 36, 22, 25, 0, 29, 10,
- 5, 19, 2, 20, 0, 32, 25, 67, 10, 15, 5, 37, 16,212, 75,176, 12, 84, 88,185, 0, 5, 0, 64, 56, 89, 60,196,252, 60,196, 50,
- 57, 57, 17, 18, 57, 17, 18, 57, 57, 17, 18, 57, 57, 49, 0, 16,252,236,196,244,236, 16,238, 18, 23, 57, 18, 57, 17, 57, 57, 17,
- 18, 57, 17, 18, 57, 57, 48, 1,178, 0, 38, 1, 93, 5, 21, 35, 34, 38, 61, 1, 52, 38, 43, 1, 53, 51, 50, 54, 61, 1, 52, 54,
- 59, 1, 21, 35, 34, 6, 29, 1, 20, 6, 7, 30, 1, 29, 1, 20, 22, 51, 4, 23, 62,249,169,108,142, 61, 61,143,107,169,249, 62,
- 68,141, 86, 91,110,111, 90, 86,141,190,144,148,221,239,151,116,143,115,149,240,221,147,143, 88,141,248,157,142, 25, 27,142,156,
-248,141, 88, 0, 0, 1, 1, 4,254, 29, 1,174, 6, 29, 0, 3, 0, 18,183, 1, 0,177, 4, 0, 5, 2, 4, 16,212,236, 49, 0,
- 16,252,204, 48, 1, 17, 35, 17, 1,174,170, 6, 29,248, 0, 8, 0, 0, 0, 0, 0, 1, 1, 0,254,178, 4, 23, 6, 20, 0, 36,
- 0,135, 64, 54, 31, 37, 27, 22, 12, 15, 8, 27, 11, 21, 25, 15, 4, 5, 32, 3, 0, 25,169, 27, 0,169, 35,192, 27, 15,169, 17,
-177, 37, 28, 25, 26, 21, 15, 1, 4, 0, 8, 26, 21, 35, 18, 4, 0, 26, 31, 21, 67, 16, 0, 11, 4, 37, 16,212, 75,176, 10, 84,
- 88,185, 0, 4,255,192, 56, 89, 75,176, 14, 84, 88,185, 0, 4, 0, 64, 56, 89, 60,196, 50,252, 60,196, 17, 18, 57, 57, 17, 18,
- 57, 17, 18, 57, 57, 17, 18, 57, 57, 49, 0, 16,252,236,196,244,236, 16,238, 18, 23, 57, 17, 18, 57, 57, 17, 57, 17, 57, 57, 17,
- 18, 57, 48, 1,178, 0, 38, 1, 93, 5, 51, 50, 54, 61, 1, 52, 54, 55, 46, 1, 61, 1, 52, 38, 43, 1, 53, 51, 50, 22, 29, 1,
- 20, 22, 59, 1, 21, 35, 34, 6, 29, 1, 20, 6, 43, 1, 1, 0, 70,140, 85, 90,111,111, 90, 85,140, 70, 63,249,167,108,142, 62,
- 62,142,108,167,249, 63,190, 86,143,248,156,142, 27, 25,142,157,248,142, 87,143,147,221,240,149,115,143,116,151,239,221,148, 0,
- 0, 1, 0,217, 1,211, 5,219, 3, 49, 0, 29, 0, 35, 64, 16, 1, 16, 27, 12, 0, 19, 4,156, 27, 19,156, 12, 30, 0, 15, 30,
- 16,212,196, 49, 0, 16,212,252,212,236, 16,192, 17, 18, 57, 57, 48, 1, 21, 14, 1, 35, 34, 39, 38, 39, 38, 39, 38, 35, 34, 6,
- 7, 53, 62, 1, 51, 50, 23, 22, 23, 22, 23, 22, 51, 50, 54, 5,219,105,179, 97,110,146, 11, 5, 7, 15,155, 94, 88,172, 98,105,
-179, 97,110,147, 10, 5, 8, 14,155, 94, 86,169, 3, 49,178, 79, 68, 59, 4, 2, 3, 5, 62, 77, 83,178, 79, 69, 60, 4, 2, 3,
- 5, 62, 76, 0, 0, 2, 1, 53, 0, 0, 2, 0, 5,213, 0, 3, 0, 9, 0, 98, 64, 15, 7, 0,131, 2,129, 4, 8, 7, 4, 0,
- 3, 5, 1, 0, 10, 16,252, 60,236, 50, 57, 57, 49, 0, 47,244,252,204, 48, 1, 75,176, 11, 84, 88,189, 0, 10, 0, 64, 0, 1,
- 0, 10, 0, 10,255,192, 56, 17, 55, 56, 89, 1, 75,176, 15, 84, 75,176, 16, 84, 91, 75,176, 19, 84, 91, 88,189, 0, 10,255,192,
- 0, 1, 0, 10, 0, 10, 0, 64, 56, 17, 55, 56, 89,182, 0, 11, 32, 11, 80, 11, 3, 93, 1, 35, 53, 51, 17, 35, 17, 19, 51, 19,
- 2, 0,203,203,203, 21,162, 20, 4,215,254,250, 43, 2,143, 1,101,254,155, 0, 0, 2, 0,172,254,199, 4, 35, 5,152, 0, 6,
- 0, 33, 0, 81, 64, 43, 19, 22, 20, 0, 15, 12, 1, 11, 7,134, 8,136, 11, 16,134, 15,136, 12,185, 20, 22, 11,185, 29, 31, 28,
-184, 22,140, 34, 28, 21, 0, 9, 30, 19, 11, 15, 7, 4, 18, 25, 34, 16,220,236,212, 60,212, 60, 60,236, 50, 50, 49, 0, 16,228,
-244, 60,196,236, 16,196,254,244,238, 16,245,238, 18, 57, 17, 18, 57, 17, 18, 57, 48, 37, 17, 14, 1, 21, 20, 22, 1, 21, 46, 1,
- 39, 3, 62, 1, 55, 21, 14, 1, 7, 17, 35, 17, 38, 0, 17, 16, 0, 55, 17, 51, 19, 30, 1, 2,166,147,164,164, 2, 16, 74,136,
- 68, 1, 70,137, 72, 65,137, 77,102,241,254,247, 1, 9,241,102, 1, 73,137,131, 3, 88, 18,226,184,185,226, 3,161,172, 41, 42,
- 3,252,160, 5, 42, 39,170, 30, 35, 7,254,228, 1, 32, 20, 1, 51, 1, 1, 1, 2, 1, 50, 22, 1, 31,254,225, 4, 33, 0, 0,
- 0, 1, 0,129, 0, 0, 4, 98, 5,240, 0, 27, 0, 96, 64, 33, 7, 22, 8, 1,134, 0, 18, 10,169, 20, 8, 12, 4,160, 0,148,
- 25,145, 16, 12,160, 14, 0, 13, 9, 11, 7, 28, 19, 15, 21, 17, 28, 16,220, 60,204,204,252, 60,196,212,196, 49, 0, 47,236, 50,
-244,228,236, 16,212, 60,238, 50, 16,238, 17, 57, 57, 48, 1, 75,176, 12, 84, 88,189, 0, 28,255,192, 0, 1, 0, 28, 0, 28, 0,
- 64, 56, 17, 55, 56, 89,180, 54, 1, 54, 2, 2, 0, 93, 1, 21, 46, 1, 35, 34, 6, 29, 1, 33, 21, 33, 17, 33, 21, 33, 53, 51,
- 17, 35, 53, 51, 53, 16, 54, 51, 50, 22, 4, 78, 76,136, 61,148,116, 1,135,254,121, 2, 45,252, 31,236,199,199,214,232, 61,151,
- 5,180,182, 41, 41,155,212,215,143,254, 47,170,170, 1,209,143,238, 1, 5,243, 31, 0, 0, 0, 0, 2, 0, 94, 0, 82, 4,188,
- 4,178, 0, 35, 0, 47, 0,131, 64, 73, 3, 9, 27, 21, 4, 45, 30, 0, 39, 28, 2, 33, 29, 12, 18, 45, 20, 11, 10, 3, 19, 15,
- 1, 29, 45,185, 19,235, 15,236, 39,185, 29,235, 33, 48, 30, 12, 0, 18, 4, 42, 36, 20, 48, 28, 21, 27, 42, 29, 19, 28, 24, 9,
- 3, 36, 11, 10, 1, 3, 2, 36, 40, 2,115, 6,116, 42, 40, 28,115, 24, 48, 16,220,228,236,244,228,236, 18, 23, 57, 18, 57, 57,
- 17, 18, 57, 57, 18, 57, 57, 17, 18, 57, 17, 18, 23, 57, 49, 0, 16,212,228,236,244,228,236, 16,192, 17, 18, 23, 57, 18, 57, 57,
- 17, 18, 57, 57, 17, 57, 57, 18, 23, 57, 48, 1, 55, 23, 7, 30, 1, 21, 20, 6, 7, 23, 7, 39, 14, 1, 35, 34, 38, 39, 7, 39,
- 55, 46, 1, 53, 52, 54, 55, 39, 55, 23, 62, 1, 51, 50, 22, 19, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 3,123,207,114,206,
- 37, 36, 38, 40,209,114,207, 59,116, 61, 58,120, 61,207,113,207, 37, 37, 38, 38,207,115,207, 55,116, 64, 60,117, 92,155,114,112,
-158,157,113,113,156, 3,225,209,115,206, 59,119, 62, 63,115, 57,207,113,207, 40, 38, 37, 37,207,115,206, 62,118, 58, 64,116, 56,
-206,115,207, 39, 37, 36,254,124,112,154,154,112,114,156,157, 0, 0, 1, 0, 82, 0, 0, 4,195, 5,213, 0, 24, 0,198, 64, 70,
- 16, 2, 17, 22, 17, 15, 2, 14, 15, 22, 22, 17, 15, 2, 16, 15, 8, 13, 8, 14, 2, 13, 13, 8, 66, 15, 11, 9, 4, 0,211, 23,
- 6, 18, 11,211, 20, 9, 16, 13,129, 2, 12, 9, 14, 3, 5, 22, 15, 3, 21, 18, 16, 3, 0, 17,102, 19, 0,101, 1, 28, 13,102,
- 10, 5,101, 7, 3, 25, 16,212, 60,236, 50,236,252,236, 50,236, 18, 23, 57, 18, 57, 57, 17, 23, 57, 49, 0, 47,228, 50,212, 60,
-236, 50,212, 60,236, 50, 17, 18, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 89, 34, 1,
- 75,176, 12, 84, 88,189, 0, 25,255,192, 0, 1, 0, 25, 0, 25, 0, 64, 56, 17, 55, 56, 89, 64, 40,134, 15,144, 15,166, 15,160,
- 15,181, 15, 5, 39, 12, 39, 13, 39, 14, 41, 16, 40, 17, 40, 18, 55, 14, 57, 16,135, 12,136, 18,166, 13,165, 14,170, 16,169, 17,
- 14, 93, 0, 93, 1, 33, 17, 35, 17, 33, 53, 33, 53, 39, 33, 53, 33, 1, 51, 9, 1, 51, 1, 33, 21, 33, 7, 21, 33, 4,141,254,
- 99,201,254, 96, 1,160, 84,254,180, 1, 8,254,195,190, 1,123, 1,121,191,254,194, 1, 8,254,181, 84, 1,159, 1,199,254, 57,
- 1,199,123, 51,155,123, 2, 74,253, 68, 2,188,253,182,123,155, 51, 0, 0, 0, 0, 2, 1, 4,254,162, 1,174, 5,152, 0, 3,
- 0, 7, 0, 28, 64, 13, 1,245, 0, 4,245, 5, 8, 4, 0, 5, 6, 2, 8, 16,220, 60,236, 50, 49, 0, 16,212,236,212,236, 48,
- 1, 17, 35, 17, 19, 17, 35, 17, 1,174,170,170,170, 1,152,253, 10, 2,246, 4, 0,253, 10, 2,246, 0, 0, 0, 0, 2, 0, 92,
-255, 61, 3,162, 5,240, 0, 11, 0, 62, 0,145, 64, 60, 47, 48, 42, 6, 0, 23, 29, 48, 54, 4, 13, 39,138, 38, 13,138, 12, 42,
-198, 38,197, 35, 16,198, 12,197, 60,145, 35, 63, 47, 6, 0, 23, 48, 4, 19, 29, 45, 9, 54, 3, 19, 87, 57, 45, 87, 32, 9, 87,
- 12, 34, 26, 57, 38, 34, 3, 87, 51, 63, 16,220,236,228,196,212,228,236,212,236, 16,238, 17, 57, 17, 18, 57, 17, 23, 57, 57, 49,
- 0, 16,196,244,228,236, 16,230,238, 16,238, 16,238, 17, 23, 57, 57, 57, 17, 18, 57, 48, 1, 75,176, 10, 84, 75,176, 11, 84, 91,
- 75,176, 12, 84, 91, 75,176, 14, 84, 91, 88,189, 0, 63, 0, 64, 0, 1, 0, 63, 0, 63,255,192, 56, 17, 55, 56, 89, 1, 14, 1,
- 21, 20, 22, 23, 62, 1, 53, 52, 38, 19, 21, 46, 1, 35, 34, 6, 21, 20, 23, 22, 23, 30, 1, 21, 20, 6, 7, 30, 1, 21, 20, 6,
- 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 47, 1, 46, 1, 53, 52, 54, 55, 46, 1, 53, 52, 54, 51, 50, 22, 1,123, 63, 62,
-139,250, 63, 62,143,204, 83,143, 56, 97,108,206, 26, 14,211,131, 92, 93, 62, 57,204,173, 73,154, 88, 87,148, 58,102,113,221, 25,
-214,128, 93, 91, 59, 59,200,166, 73,153, 3,168, 46, 90, 46, 76,133,135, 45, 91, 46, 75,136, 2,147,164, 39, 39, 80, 71, 90,115,
- 15, 8,119,154,101, 90,140, 53, 52,109, 64,142,168, 29, 29,164, 39, 39, 84, 76,102,123, 14,120,153,102, 91,143, 49, 44,112, 69,
-130,159, 29, 0, 0, 2, 0,215, 5, 70, 3, 41, 6, 16, 0, 3, 0, 7, 0,146, 64, 14, 6, 2,206, 4, 0,205, 8, 1,100, 0,
- 5,100, 4, 8, 16,220,252,212,236, 49, 0, 16,252, 60,236, 50, 48, 0, 75,176, 10, 84, 75,176, 13, 84, 91, 88,189, 0, 8, 0,
- 64, 0, 1, 0, 8, 0, 8,255,192, 56, 17, 55, 56, 89, 1, 75,176, 12, 84, 75,176, 13, 84, 91, 75,176, 14, 84, 91, 75,176, 23,
- 84, 91, 88,189, 0, 8,255,192, 0, 1, 0, 8, 0, 8, 0, 64, 56, 17, 55, 56, 89, 1, 75,176, 15, 84, 75,176, 25, 84, 91, 88,
-189, 0, 8, 0, 64, 0, 1, 0, 8, 0, 8,255,192, 56, 17, 55, 56, 89, 64, 17, 96, 1, 96, 2, 96, 5, 96, 6,112, 1,112, 2,
-112, 5,112, 6, 8, 93, 1, 51, 21, 35, 37, 51, 21, 35, 2, 94,203,203,254,121,203,203, 6, 16,202,202,202, 0, 0, 3, 1, 27,
- 0, 0, 6,229, 5,205, 0, 23, 0, 47, 0, 73, 0, 67, 64, 38, 61,203, 62, 58,204, 65,202, 36, 49,203, 48, 52,204, 71,202, 24,
-201, 0,200, 36,201, 12, 55, 97, 68, 61, 48, 94, 42, 9, 6, 68, 94, 30, 9, 6, 18, 74, 16,220,204,252,236, 16,254,237, 50, 16,
-238, 49, 0, 47,238,246,254,253,238,214,238, 16,253,238,214,238, 48, 1, 50, 4, 23, 22, 18, 21, 20, 2, 7, 6, 4, 35, 34, 36,
- 39, 38, 2, 53, 52, 18, 55, 54, 36, 23, 34, 6, 7, 14, 1, 21, 20, 22, 23, 30, 1, 51, 50, 54, 55, 62, 1, 53, 52, 38, 39, 46,
- 1, 23, 21, 46, 1, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 53, 52, 54, 51, 50, 22, 4, 0,152, 1, 7,
-109,109,108,108,109,109,254,249,152,152,254,249,109,109,108,108,109,109, 1, 7,152,131,226, 94, 94, 96, 96, 94, 94,226,131,132,
-227, 94, 93, 93, 94, 92, 94,227,167, 66,130, 66,149,167,171,155, 64,122, 66, 67,137, 70,216,251,251,216, 73,136, 5,205,110,109,
-109,254,250,154,152,254,251,109,109,110,110,109,109, 1, 5,152,154, 1, 6,109,109,110,103, 94, 94, 94,229,130,129,227, 94, 94,
- 95, 95, 94, 93,226,131,133,227, 93, 94, 94,245,129, 33, 32,175,157,159,174, 31, 34,127, 29, 28,244,208,209,242, 28, 0, 0, 0,
- 0, 3, 0,115, 1,213, 3, 59, 5,240, 0, 3, 0, 30, 0, 41, 0, 95, 64, 51, 40, 7, 37, 4, 31, 18, 24, 16, 2,227, 0, 31,
-221, 16, 0,225, 37,221, 5, 10, 25,223, 24,222, 21,221, 10,224, 28,145, 42, 0, 24, 13, 31, 16, 34, 6, 2, 1, 40, 17, 6,107,
- 4,108, 24, 34,107, 13, 42, 16,220,236,204,252,236, 50, 50,192,192, 17, 18, 57, 57, 17, 18, 57, 49, 0, 16,244,228,252,244,236,
- 16,196,238,237,214,238, 16,238, 17, 18, 57, 18, 57, 17, 57, 57, 48, 19, 33, 21, 33, 1, 17, 35, 53, 14, 1, 35, 34, 38, 53, 52,
- 54, 59, 1, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 5, 34, 6, 21, 20, 22, 51, 50, 54, 61, 1,139, 2,176,253, 80,
- 2,174,149, 44,144, 93,128,152,191,188,182,117,117, 62,136, 68, 73,145, 69,183,179,254,236,161,126, 98, 82,104,130, 2, 80,123,
- 2,184,254, 64,112, 63, 68,135,113,135,138, 4, 91, 91, 34, 34,127, 28, 28,176,240, 67, 79, 64, 77,144,114, 29, 0, 2, 0,158,
- 0,141, 4, 37, 4, 35, 0, 6, 0, 13, 0,134, 64, 73, 3,232, 4, 5, 4, 2,232, 1, 2, 5, 5, 4, 2,232, 3, 2, 6, 0,
- 6, 1,232, 0, 0, 6, 10,232, 11, 12, 11, 9,232, 8, 9, 12, 12, 11, 9,232, 10, 9, 13, 7, 13, 8,232, 7, 7, 13, 66, 9,
- 2, 11, 4,231, 7, 0,166, 14, 9, 12, 5, 2, 7, 3, 0,111, 5, 10, 7,111, 12,110, 14, 16,252,252, 60,212,236, 50, 17, 57,
- 17, 18, 57, 49, 0, 16,244, 60,236, 50, 57, 57, 48, 75, 83, 88, 7, 16, 4,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 4,237,
- 7, 16, 4,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 4,237, 89, 34, 1, 21, 9, 1, 21, 1, 53, 19, 21, 9, 1, 21, 1, 53,
- 4, 37,254,211, 1, 45,254, 43, 35,254,211, 1, 45,254, 43, 4, 35,191,254,244,254,244,191, 1,162, 82, 1,162,191,254,244,254,
-244,191, 1,162, 82, 0, 0, 0, 0, 1, 0,217, 1, 31, 5,219, 3, 94, 0, 5, 0, 23, 64, 10, 4,156, 2, 0, 6, 3, 23, 1,
- 0, 6, 16,220,212,236, 49, 0, 16,212,196,236, 48, 19, 33, 17, 35, 17, 33,217, 5, 2,168,251,166, 3, 94,253,193, 1,149, 0,
- 0, 1, 0,100, 1,223, 2,127, 2,131, 0, 3, 0, 17,182, 0,156, 2, 4, 1, 0, 4, 16,220,204, 49, 0, 16,212,236, 48, 19,
- 33, 21, 33,100, 2, 27,253,229, 2,131,164, 0, 0, 4, 1, 27, 0, 0, 6,229, 5,205, 0, 23, 0, 47, 0, 56, 0, 76, 0, 96,
- 64, 54, 69, 66, 67, 63, 50,201, 72, 48,201, 57, 74, 67,202, 12, 57,202, 0,201, 24,200, 12,201, 36, 72, 69, 51, 48, 4, 49, 66,
- 60, 63, 57, 54, 73, 49, 96, 75, 54, 96, 67, 60, 94, 18, 9, 30, 75, 94, 6, 9, 30, 95, 42, 77, 16,220,228,252,236, 16,254,253,
-196,238, 16,238, 50, 17, 57, 57, 18, 57, 18, 23, 57, 49, 0, 47,238,246,254,237, 16,237, 50, 16,238,214,238, 57, 18, 57, 57, 48,
- 1, 34, 6, 7, 14, 1, 21, 20, 22, 23, 30, 1, 51, 50, 54, 55, 62, 1, 53, 52, 38, 39, 46, 1, 39, 50, 4, 23, 22, 18, 21, 20,
- 2, 7, 6, 4, 35, 34, 36, 39, 38, 2, 53, 52, 18, 55, 54, 36, 19, 35, 17, 51, 50, 54, 53, 52, 38, 39, 50, 22, 21, 20, 6, 7,
- 30, 1, 31, 1, 35, 39, 46, 1, 43, 1, 17, 35, 17, 4, 0,131,226, 94, 94, 96, 96, 94, 94,226,131,132,227, 94, 93, 93, 94, 92,
- 94,227,132,152, 1, 7,109,109,108,108,109,109,254,249,152,152,254,249,109,109,108,108,109,109, 1, 7,125,123,123,110, 87, 88,
-102,176,174,105, 96, 24, 67, 46,137,172,129, 59, 73, 54, 66,155, 5,102, 94, 94, 94,229,130,129,227, 94, 94, 95, 95, 94, 93,226,
-131,133,227, 93, 94, 94,103,110,109,109,254,250,154,152,254,251,109,109,110,110,109,109, 1, 5,152,154, 1, 6,109,109,110,254,
- 98,254,236, 62, 75, 76, 63,103,119,121, 86,112, 17, 8, 77, 73,223,209, 96, 51,254,156, 3, 68, 0, 1, 0,213, 5, 98, 3, 43,
- 5,246, 0, 3, 0, 47,183, 2,239, 0,238, 4, 1, 0, 4, 16,212,204, 49, 0, 16,252,236, 48, 0, 75,176, 9, 84, 75,176, 14,
- 84, 91, 88,189, 0, 4,255,192, 0, 1, 0, 4, 0, 4, 0, 64, 56, 17, 55, 56, 89, 19, 33, 21, 33,213, 2, 86,253,170, 5,246,
-148, 0, 0, 0, 0, 2, 0,195, 3,117, 3, 61, 5,240, 0, 11, 0, 26, 0, 32, 64, 17, 6,195, 21,196, 0,195, 12,145, 27, 9,
- 90, 18, 91, 3, 90, 24, 27, 16,220,236,252,236, 49, 0, 16,244,236,252,236, 48, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38,
- 39, 50, 22, 23, 30, 1, 21, 20, 6, 35, 34, 38, 53, 52, 54, 2, 0, 80,110,110, 80, 80,110,111, 79, 64,118, 43, 46, 46,185,134,
-135,180,184, 5,111,111, 80, 79,109,109, 79, 79,112,129, 49, 46, 45,114, 66,132,183,180,135,134,186, 0, 0, 0, 0, 2, 0,217,
- 0, 0, 5,219, 5, 4, 0, 11, 0, 15, 0, 46, 64, 24, 5,208, 7, 3,156, 0,208, 9, 1, 12,156, 14, 13, 2, 21, 4, 0, 23,
- 12, 8, 21, 10, 6, 16, 16,212, 60,236, 50,252, 60,236, 50, 49, 0, 47,236,212, 60,236,252, 60,236, 48, 1, 17, 33, 21, 33, 17,
- 35, 17, 33, 53, 33, 17, 1, 33, 21, 33, 3,174, 2, 45,253,211,168,253,211, 2, 45,253,211, 5, 2,250,254, 5, 4,254,125,170,
-254,125, 1,131,170, 1,131,251,166,170, 0, 0, 0, 1, 0, 94, 2,156, 2,180, 5,240, 0, 24, 0, 74, 64, 36, 0,125, 6, 4,
- 0, 23,125, 6, 6, 4, 66, 4, 2, 0, 14,221, 15, 0,221, 2,247, 11,221, 15, 18,145, 25, 0, 14, 8,126, 1, 21, 14, 3, 25,
- 16,220,196,212,196,236, 17, 57, 49, 0, 16,244,196,236,252,236, 16,238, 17, 18, 57, 48, 75, 83, 88, 7, 16, 5,237, 23, 50, 7,
- 5,237, 89, 34, 1, 33, 21, 33, 53, 54, 55, 0, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 21, 20, 1, 6, 1, 12, 1,
-168,253,170, 34, 63, 1, 88,104, 85, 52,122, 72, 77,133, 57,145,174,254,181, 56, 3, 14,114,110, 31, 56, 1, 49, 94, 66, 81, 35,
- 35,123, 28, 28,132,108,139,254,228, 48, 0, 0, 0, 1, 0, 98, 2,141, 2,205, 5,240, 0, 40, 0, 72, 64, 39, 0, 21, 19, 10,
-221, 9, 31,221, 32, 19,221, 21, 13,221, 9,248, 6,247, 28,221, 32,248, 35,145, 41, 22, 19, 0, 20, 25,126, 38, 16,126, 3, 20,
- 31, 9, 41, 16,220,196,196,212,236,212,236, 17, 57, 57, 57, 49, 0, 16,244,228,236,252,228,236,212,236, 16,238, 16,238, 17, 18,
- 57, 48, 1, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 43, 1, 53, 51, 50, 54, 53, 52, 38, 35, 34,
- 6, 7, 53, 62, 1, 51, 50, 22, 21, 20, 6, 2, 12, 92,101,190,177, 57,125, 70, 52,119, 67,109,120,111,108, 86, 94, 94, 97,100,
- 95, 40,102, 81, 73,128, 55,144,169, 90, 4, 96, 18,109, 82,124,134, 21, 20,121, 27, 26, 79, 70, 74, 76,108, 63, 60, 58, 61, 18,
- 23,115, 17, 18,118, 99, 69, 96, 0, 1, 1,115, 4,238, 3, 82, 6,102, 0, 3, 0, 49, 64, 9, 2,180, 0,179, 4, 3, 68, 1,
- 4, 16,212,236, 49, 0, 16,244,236, 48, 0, 75,176, 9, 84, 75,176, 14, 84, 91, 88,189, 0, 4,255,192, 0, 1, 0, 4, 0, 4,
- 0, 64, 56, 17, 55, 56, 89, 1, 51, 1, 35, 2,139,199,254,186,153, 6,102,254,136, 0, 0, 0, 0, 1, 0,174,254, 86, 4,229,
- 4, 96, 0, 32, 0, 77, 64, 37, 19, 25, 31, 3, 22, 6, 3, 9, 12, 3, 1, 18, 15, 6,135, 28, 22,140, 10, 1,188, 0,189, 33,
- 25, 9, 18, 9, 8, 11, 78, 31, 2, 8, 0, 70, 33, 16,252,236, 50,244,236,196, 18, 57, 49, 0, 16,228,228, 50,244, 60,236,220,
-196, 17, 23, 57, 17, 18, 23, 57, 48,182, 31, 34, 96, 34,207, 34, 3, 1, 93, 19, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17,
- 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 39, 14, 1, 35, 34, 38, 39, 17,174,184,138,135,148,149,184, 35, 37, 9, 32, 28,
- 41, 73, 35, 69, 82, 15, 50,145, 98,102,143, 42,254, 86, 6, 10,253, 72,145,148,168,168, 2,141,252,162, 60, 57, 11, 12,148, 23,
- 22, 78, 80, 79, 79, 78, 78,253,215, 0, 0, 0, 0, 1, 0,158,255, 59, 4, 57, 5,213, 0, 13, 0, 37, 64, 18, 8, 2, 4,193,
- 0,129, 6, 2, 14, 0, 7, 93, 5, 3, 93, 1, 11, 14, 16,212,212,252,220,236, 57, 49, 0, 16,196, 50,244,236, 17, 57, 48, 1,
- 33, 17, 35, 17, 35, 17, 35, 17, 46, 1, 53, 52, 36, 2,121, 1,192,141,190,142,215,235, 1, 4, 5,213,249,102, 6, 31,249,225,
- 3, 78, 17,221,184,190,232, 0, 0, 1, 0,219, 2, 72, 1,174, 3, 70, 0, 3, 0, 18,183, 2,131, 0, 4, 1, 25, 0, 4, 16,
-212,236, 49, 0, 16,212,236, 48, 19, 51, 21, 35,219,211,211, 3, 70,254, 0, 0, 0, 1, 1, 35,254,117, 2,193, 0, 0, 0, 19,
- 0, 31, 64, 14, 9, 6, 10, 13,243, 6, 0, 19, 0, 16, 39, 3, 9, 20, 16,220,212,236,212,204, 49, 0, 47,212,252,196, 18, 57,
- 48, 33, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 39, 2, 84, 55, 54,120,118, 46, 87, 43, 34, 74,
- 47, 59, 60, 43, 45, 62,105, 48, 89, 91, 12, 12,131, 17, 15, 48, 46, 30, 87, 61, 0, 1, 0,137, 2,156, 2,197, 5,223, 0, 10,
- 0, 44, 64, 24, 7, 0,221, 9, 3,221, 4, 2,221, 9,247, 5,145, 11, 8,124, 6, 93, 3,124, 1,124, 0, 11, 16,220,244,228,
-252,228, 49, 0, 16,244,236,236,212,236, 16,238, 50, 48, 19, 51, 17, 7, 53, 55, 51, 17, 51, 21, 33,156,204,223,230,137,205,253,
-215, 3, 10, 2, 99, 41,116, 39,253, 43,110, 0, 0, 3, 0, 96, 1,213, 3,100, 5,240, 0, 3, 0, 15, 0, 27, 0, 46, 64, 25,
- 2,227, 0,225, 22,221, 10,224, 16,221, 4,145, 28, 0, 19, 13, 1, 25,107, 7,108, 19,107, 13, 28, 16,220,236,252,236, 57, 17,
- 18, 57, 49, 0, 16,244,236,244,236,252,236, 48, 19, 33, 21, 33, 1, 50, 22, 21, 20, 6, 35, 34, 38, 53, 52, 54, 23, 34, 6, 21,
- 20, 22, 51, 50, 54, 53, 52, 38,139, 2,176,253, 80, 1, 88,179,206,206,179,179,208,208,179,105,126,127,104,105,125,124, 2, 80,
-123, 4, 27,221,191,191,219,220,190,191,221,115,161,136,133,160,160,133,137,160, 0, 2, 0,193, 0,141, 4, 72, 4, 35, 0, 6,
- 0, 13, 0,134, 64, 73, 12,232, 13, 12, 9, 10, 9, 11,232, 10, 10, 9, 13,232, 7, 8, 7, 12,232, 11, 12, 8, 8, 7, 5,232,
- 6, 5, 2, 3, 2, 4,232, 3, 3, 2, 6,232, 0, 1, 0, 5,232, 4, 5, 1, 1, 0, 66, 12, 5, 10, 3,231, 7, 0,166, 14,
- 12, 8, 1, 5, 0, 8,111, 10, 7, 1,111, 3, 0,112, 14, 16,252, 60,252,212, 60,236, 18, 57, 17, 18, 57, 49, 0, 16,244, 60,
-236, 50, 57, 57, 48, 75, 83, 88, 7, 16, 8,237, 7, 16, 4,237, 7, 16, 4,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 4,237,
- 7, 16, 4,237, 7, 16, 8,237, 89, 34, 19, 1, 21, 1, 53, 9, 1, 37, 1, 21, 1, 53, 9, 1,193, 1,213,254, 43, 1, 45,254,
-211, 1,178, 1,213,254, 43, 1, 45,254,211, 4, 35,254, 94, 82,254, 94,191, 1, 12, 1, 12,191,254, 94, 82,254, 94,191, 1, 12,
- 1, 12, 0, 0,255,255, 0,137,255,227, 7,127, 5,240, 16, 39, 5,206, 4,139,253,100, 16, 38, 0,123, 0, 0, 16, 7, 6, 90,
- 3, 53, 0, 0,255,255, 0,137,255,227, 7, 63, 5,240, 16, 38, 0,123, 0, 0, 16, 39, 6, 90, 3, 53, 0, 0, 16, 7, 0,116,
- 4,139,253,100,255,255, 0, 98,255,227, 7,127, 5,240, 16, 39, 5,206, 4,139,253,100, 16, 38, 0,117, 0, 0, 16, 7, 6, 90,
- 3, 53, 0, 0, 0, 2, 0,143,255,227, 3,172, 5,213, 0, 32, 0, 36, 0,134, 64, 47, 32, 26, 5, 2, 4, 6, 25, 0, 16,134,
- 15,136, 12, 0, 33,131, 35, 12,149, 19,140, 35,129, 37, 6, 34, 25, 22, 9, 5, 1, 0, 26, 34, 9, 0, 28, 1, 34, 28, 33, 38,
- 15, 9, 28, 22, 37, 16,220,236,212,252,236,212,236, 17, 18, 57, 17, 18, 57, 17, 18, 57, 18, 57, 49, 0, 16,228,244,236, 16,254,
-205, 16,244,238, 18, 57, 57, 23, 57, 48, 1, 75,176, 16, 84, 75,176, 18, 84, 91, 75,176, 19, 84, 91, 88,189, 0, 37,255,192, 0,
- 1, 0, 37, 0, 37, 0, 64, 56, 17, 55, 56, 89, 64, 11,116, 4,116, 5,116, 6,116, 7,118, 28, 5, 93, 1, 51, 21, 20, 6, 15,
- 1, 14, 1, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 53, 52, 54, 63, 1, 62, 1, 55, 62, 1, 53, 19, 35, 53, 51, 1,
-244,190, 55, 90, 90, 58, 51,131,109, 78,180, 96, 94,192,103,184,224, 73, 89, 88, 48, 38, 8, 7, 6,196,202,202, 4, 68,156,101,
-130, 87, 88, 53, 94, 49, 89,110, 70, 67,188, 57, 56,194,159, 76,137, 86, 86, 47, 53, 25, 21, 60, 54, 1, 14,254,255,255, 0, 16,
- 0, 0, 5,104, 5,213, 18, 38, 0, 36, 0, 0, 16, 7, 6,135, 4,188, 1,117,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 38,
- 0, 36, 0, 0, 16, 7, 6,133, 4,188, 1,117,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 38, 0, 36, 0, 0, 17, 7, 6,136,
- 4,188, 1,117, 0, 16,180, 5, 13, 17, 10, 7, 43, 64, 5, 15, 13, 0, 17, 2, 93, 49, 0, 0,255,255, 0, 16, 0, 0, 5,104,
- 5,213, 18, 38, 0, 36, 0, 0, 17, 7, 6,134, 4,188, 1,117, 0, 20,180, 10, 20, 35, 5, 7, 43, 64, 9, 64, 20, 79, 35, 32,
- 20, 47, 35, 4, 93, 49, 0, 0,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 38, 0, 36, 0, 0, 17, 7, 6,132, 4,188, 1,117,
- 0, 20,180, 10, 18, 13, 5, 7, 43, 64, 9, 48, 18, 63, 13, 0, 18, 15, 13, 4, 93, 49, 0, 0, 0, 3, 0, 16, 0, 0, 5,104,
- 7,109, 0, 11, 0, 14, 0, 33, 0,203, 64, 84, 12, 17, 13, 12, 27, 28, 27, 14, 17, 28, 27, 30, 17, 28, 27, 29, 17, 28, 28, 27,
- 13, 17, 33, 15, 33, 12, 17, 14, 12, 15, 15, 33, 32, 17, 15, 33, 31, 17, 33, 15, 33, 66, 12, 27, 15, 13, 9, 3,193, 21, 9, 30,
-149, 13, 9,142, 32, 28, 30, 29, 28, 24, 32, 31, 33, 13, 18, 6, 14, 24, 12, 6, 27, 0, 86, 24, 28, 15, 6, 86, 18, 28, 33, 34,
- 16,212,196,212,236, 50, 16,212,238, 50, 17, 57, 17, 57, 17, 18, 57, 17, 57, 57, 17, 18, 57, 57, 49, 0, 47, 60,230,214,238, 16,
-212,238, 17, 18, 57, 57, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 5,237, 7, 16, 8,237, 7, 16, 5,237, 7, 16, 5,237, 7, 5,
-237, 7, 5,237, 7, 16, 8,237, 89, 34,178, 32, 35, 1, 1, 93, 64, 32, 26, 12,115, 12,155, 12, 3, 7, 15, 8, 27, 80, 35,102,
- 13,105, 14,117, 13,123, 14,121, 28,121, 29,118, 32,118, 33,128, 35, 12, 93, 0, 93, 1, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50,
- 54, 3, 1, 33, 1, 46, 1, 53, 52, 54, 51, 50, 22, 21, 20, 6, 7, 1, 35, 3, 33, 3, 35, 3, 84, 89, 63, 64, 87, 88, 63, 63,
- 89,152,254,240, 2, 33,254, 88, 61, 62,159,115,114,161, 63, 60, 2, 20,210,136,253, 95,136,213, 6, 90, 63, 89, 87, 65, 63, 88,
- 88,254,243,253, 25, 3, 78, 41,115, 73,115,160,161,114, 70,118, 41,250,139, 1,127,254,129, 0, 0, 2, 0, 8, 0, 0, 7, 72,
- 5,213, 0, 15, 0, 19, 0,135, 64, 57, 17, 17, 14, 15, 14, 16, 17, 15, 15, 14, 13, 17, 15, 14, 12, 17, 14, 15, 14, 66, 5,149,
- 3, 11,149, 17, 1,149, 16,149, 0,129, 17, 7,149, 3,173, 13, 9, 17, 16, 15, 13, 12, 5, 14, 10, 0, 4, 8, 6, 2, 28, 18,
- 10, 14, 20, 16,212,212, 60,236, 50,212,196,196, 17, 18, 23, 57, 49, 0, 47, 60,236,236,196,244,236,236, 16,238, 16,238, 48, 75,
- 83, 88, 7, 16, 5,237, 7, 5,237, 7, 16, 5,237, 7, 16, 5,237, 89, 34,178,128, 21, 1, 1, 93, 64, 19,103, 17,119, 16,119,
- 17,134, 12,133, 16,150, 17,144, 21,160, 21,191, 21, 9, 93, 1, 21, 33, 17, 33, 21, 33, 17, 33, 21, 33, 17, 33, 3, 35, 1, 23,
- 1, 33, 17, 7, 53,253, 27, 2,199,253, 57, 2,248,252, 61,253,240,160,205, 2,113,139,254,182, 1,203, 5,213,170,254, 70,170,
-253,227,170, 1,127,254,129, 5,213,158,252,240, 3, 16, 0, 0,255,255, 0,115,254,117, 5, 39, 5,240, 18, 38, 0, 38, 0, 0,
- 16, 7, 0,122, 1, 45, 0, 0,255,255, 0,201, 0, 0, 4,139, 5,213, 18, 38, 0, 40, 0, 0, 16, 7, 6,135, 4,158, 1,117,
-255,255, 0,201, 0, 0, 4,139, 5,213, 18, 38, 0, 40, 0, 0, 16, 7, 6,133, 4,158, 1,117,255,255, 0,201, 0, 0, 4,139,
- 5,213, 18, 38, 0, 40, 0, 0, 17, 7, 6,136, 4,158, 1,117, 0, 7, 64, 3, 64, 12, 1, 93, 49, 0, 0, 0,255,255, 0,201,
- 0, 0, 4,139, 5,213, 18, 38, 0, 40, 0, 0, 17, 7, 6,132, 4,158, 1,117, 0, 9, 64, 5, 64, 12, 64, 16, 2, 93, 49, 0,
-255,255, 0,201, 0, 0, 1,147, 5,213, 18, 38, 0, 44, 0, 0, 16, 7, 6,135, 3, 47, 1,117,255,255, 0,201, 0, 0, 1,147,
- 5,213, 18, 38, 0, 44, 0, 0, 16, 7, 6,133, 3, 47, 1,117,255,255, 0,201, 0, 0, 1,147, 5,213, 18, 38, 0, 44, 0, 0,
- 17, 7, 6,136, 3, 47, 1,117, 0, 8,180, 1, 6, 10, 0, 7, 43, 49, 0, 0,255,255, 0,201, 0, 0, 1,147, 5,213, 18, 38,
- 0, 44, 0, 0, 17, 7, 6,132, 3, 47, 1,117, 0, 8,180, 0, 10, 7, 1, 7, 43, 49, 0, 0, 0, 2, 0, 10, 0, 0, 5,186,
- 5,213, 0, 12, 0, 25, 0,103, 64, 32, 16, 9,169, 11, 13,149, 0,129, 18,149, 14, 11, 7, 7, 1, 25, 19, 4, 15, 13, 22, 25,
- 4, 50, 10, 17, 13, 28, 8, 0,121, 26, 16,244, 60,236, 50,196,244,236, 16,196, 23, 57, 49, 0, 47,198, 50,238,246,238, 16,238,
- 50, 48, 64, 40, 32, 27,127, 27,176, 27, 3,159, 9,159, 10,159, 11,159, 12,159, 14,159, 15,159, 16,159, 17,191, 9,191, 10,191,
- 11,191, 12,191, 14,191, 15,191, 16,191, 17, 16, 93, 1, 93, 19, 33, 32, 0, 17, 16, 0, 41, 1, 17, 35, 53, 51, 19, 17, 33, 21,
- 33, 17, 51, 32, 0, 17, 16, 0, 33,211, 1,160, 1,177, 1,150,254,105,254, 80,254, 96,201,201,203, 1, 80,254,176,243, 1, 53,
- 1, 31,254,225,254,203, 5,213,254,151,254,128,254,126,254,150, 2,188,144, 1,227,254, 29,144,253,234, 1, 24, 1, 46, 1, 44,
- 1, 23, 0, 0,255,255, 0,201, 0, 0, 5, 51, 5,213, 18, 38, 0, 49, 0, 0, 17, 7, 6,134, 4,254, 1,117, 0, 20,180, 0,
- 19, 34, 4, 7, 43, 64, 9, 48, 19, 63, 34, 16, 19, 31, 34, 4, 93, 49, 0, 0,255,255, 0,115,255,227, 5,217, 5,240, 18, 38,
- 0, 50, 0, 0, 16, 7, 6,135, 5, 39, 1,117,255,255, 0,115,255,227, 5,217, 5,240, 18, 38, 0, 50, 0, 0, 16, 7, 6,133,
- 5, 39, 1,117,255,255, 0,115,255,227, 5,217, 5,240, 18, 38, 0, 50, 0, 0, 17, 7, 6,136, 5, 39, 1,117, 0, 16,180, 15,
- 26, 30, 21, 7, 43, 64, 5, 31, 26, 16, 30, 2, 93, 49, 0, 0,255,255, 0,115,255,227, 5,217, 5,240, 18, 38, 0, 50, 0, 0,
- 17, 7, 6,134, 5, 39, 1,117, 0, 24,180, 3, 33, 48, 9, 7, 43, 64, 13, 48, 33, 63, 48, 32, 33, 47, 48, 16, 33, 31, 48, 6,
- 93, 49, 0, 0,255,255, 0,115,255,227, 5,217, 5,240, 18, 38, 0, 50, 0, 0, 17, 7, 6,132, 5, 39, 1,117, 0, 20,180, 3,
- 31, 26, 9, 7, 43, 64, 9, 64, 31, 79, 26, 16, 31, 31, 26, 4, 93, 49, 0, 0, 0, 1, 1, 25, 0, 63, 5,156, 4,197, 0, 11,
- 0,133, 64, 77, 10,156, 11, 10, 7, 8, 7, 9,156, 8, 8, 7, 4,156, 3, 4, 7, 7, 6, 5,156, 6, 7, 6, 4,156, 5, 4,
- 1, 2, 1, 3,156, 2, 2, 1, 11,156, 0, 1, 0, 10,156, 9, 10, 1, 1, 0, 66, 10, 8, 7, 6, 4, 2, 1, 0, 8, 5, 3,
- 11, 9, 12, 11, 10, 9, 7, 5, 4, 3, 1, 8, 2, 0, 8, 6, 12, 16,212, 60,204, 50, 23, 57, 49, 0, 16,212, 60,204, 50, 23,
- 57, 48, 75, 83, 88, 7, 16, 8,237, 7, 16, 5,237, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 5,
-237, 7, 16, 8,237, 89, 34, 9, 2, 7, 9, 1, 39, 9, 1, 55, 9, 1, 5,156,254, 55, 1,201,119,254, 53,254, 53,118, 1,200,
-254, 56,118, 1,203, 1,203, 4, 76,254, 53,254, 55,121, 1,203,254, 53,121, 1,201, 1,203,121,254, 53, 1,203, 0, 3, 0,102,
-255,186, 5,229, 6, 23, 0, 9, 0, 19, 0, 43, 0,158, 64, 60, 29, 31, 26, 13, 43, 44, 19, 10, 1, 0, 4, 13, 41, 38, 32, 20,
- 13, 4, 42, 38, 30, 26, 4,149, 38, 13,149, 26,145, 38,140, 44, 43, 44, 42, 20, 23, 16, 32, 30, 35, 19, 10, 1, 0, 4, 29, 41,
- 16, 7, 31, 7, 25, 35, 51, 16, 25, 23, 16, 44, 16,252,236,252,236,192, 17, 18, 57, 57, 23, 57, 18, 57, 57, 17, 18, 57, 57, 17,
- 57, 49, 0, 16,228,244,236, 16,238, 16,192, 16,192, 17, 18, 57, 57, 18, 57, 18, 23, 57, 18, 57, 17, 18, 57, 57, 48, 64, 42, 87,
- 0, 90, 21, 87, 25, 85, 33,106, 21,101, 33,123, 21,118, 28,117, 33, 9, 70, 19, 89, 0, 86, 19,106, 0,100, 19,100, 28,106, 40,
-124, 0,115, 19,118, 28,122, 40, 11, 93, 1, 93, 9, 1, 30, 1, 51, 50, 0, 17, 52, 38, 39, 46, 1, 35, 34, 0, 17, 20, 22, 23,
- 7, 38, 2, 53, 16, 0, 33, 50, 22, 23, 55, 23, 7, 22, 18, 21, 16, 0, 33, 34, 38, 39, 7, 39, 4,182,253, 51, 62,161, 95,220,
- 1, 1, 39,121, 61,161, 95,220,254,253, 39, 39,134, 78, 79, 1,121, 1, 59,130,221, 87,162,102,170, 78, 80,254,136,254,198,128,
-221, 91,162,103, 4, 88,252,178, 64, 67, 1, 72, 1, 26,112,184,184, 64, 67,254,184,254,229,112,188, 68,158,102, 1, 8,160, 1,
- 98, 1,165, 77, 75,191, 89,198,103,254,246,158,254,159,254, 91, 75, 75,191, 88,255,255, 0,178,255,227, 5, 41, 5,213, 18, 38,
- 0, 56, 0, 0, 16, 7, 6,135, 4,238, 1,117,255,255, 0,178,255,227, 5, 41, 5,213, 18, 38, 0, 56, 0, 0, 16, 7, 6,133,
- 4,238, 1,117,255,255, 0,178,255,227, 5, 41, 5,213, 18, 38, 0, 56, 0, 0, 17, 7, 6,136, 4,238, 1,117, 0, 20,180, 10,
- 20, 24, 0, 7, 43, 64, 9, 47, 20, 32, 24, 31, 20, 16, 24, 4, 93, 49, 0, 0,255,255, 0,178,255,227, 5, 41, 5,213, 18, 38,
- 0, 56, 0, 0, 17, 7, 6,132, 4,238, 1,117, 0, 28,180, 1, 25, 20, 9, 7, 43, 64, 17, 80, 25, 95, 20, 64, 25, 79, 20, 32,
- 25, 47, 20, 16, 25, 31, 20, 8, 93, 49, 0, 0,255,255,255,252, 0, 0, 4,231, 5,213, 18, 38, 0, 60, 0, 0, 16, 7, 6,133,
- 4,115, 1,117, 0, 2, 0,201, 0, 0, 4,141, 5,213, 0, 12, 0, 21, 0, 61, 64, 27, 14,149, 9, 13,149, 2,246, 0,129, 11,
- 21, 15, 9, 3, 4, 1, 18, 25, 6, 63, 13, 10, 1, 28, 0, 4, 22, 16,252,236, 50, 50,252,236, 17, 23, 57, 49, 0, 47,244,252,
-236,212,236, 48, 64, 9, 15, 23, 31, 23, 63, 23, 95, 23, 4, 1, 93, 19, 51, 17, 51, 50, 4, 21, 20, 4, 43, 1, 17, 35, 19, 17,
- 51, 50, 54, 53, 52, 38, 35,201,202,254,251, 1, 1,254,255,251,254,202,202,254,141,154,153,142, 5,213,254,248,225,220,220,226,
-254,174, 4, 39,253,209,146,134,134,145, 0, 0, 0, 1, 0,186,255,227, 4,172, 6, 20, 0, 47, 0,154, 64, 48, 45, 39, 33, 12,
- 4, 6, 13, 32, 0, 4, 42, 22,134, 23, 26,185, 19, 42,185, 3,151, 19,140, 46, 12, 9, 13, 29, 32, 33, 39, 9, 8, 36, 39, 8,
- 6, 29, 8, 36, 16, 22, 45, 8, 16, 0, 70, 48, 16,252,196,252,204, 16,198,238,212,238, 16,238, 17, 57, 57, 18, 57, 18, 57, 49,
- 0, 47,228,254,238, 16,254,213,238, 18, 23, 57, 23, 57, 48, 64, 64, 15, 5, 15, 6, 15, 7, 15, 39, 15, 40,138, 12,138, 13, 7,
- 10, 6, 10, 7, 10, 11, 10, 12, 10, 13, 10, 31, 13, 32, 10, 33, 12, 34, 4, 38, 25, 13, 25, 31, 25, 32, 58, 32, 58, 33, 77, 31,
- 77, 32, 73, 33, 73, 34,106, 31,106, 32,165, 6,165, 7,166, 32, 24, 93, 1, 93, 19, 52, 54, 51, 50, 22, 23, 14, 1, 21, 20, 22,
- 31, 1, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 47, 1, 46, 1, 53, 52, 54, 55, 46, 1, 35, 34,
- 6, 21, 17, 35,186,239,218,208,219, 3,151,168, 58, 65, 57,166, 96,225,211, 64,136, 73, 80,140, 65,116,120, 59,101, 92, 96, 87,
-167,151, 8,131,113,130,136,187, 4,113,200,219,232,224, 8,115, 96, 47, 81, 42, 37,106,142,100,172,183, 25, 24,164, 30, 29, 95,
- 91, 63, 84, 62, 55, 59,135, 91,127,172, 29,103,112,139,131,251,147, 0, 0, 0,255,255, 0,123,255,227, 4, 45, 6,102, 18, 38,
- 0, 68, 0, 0, 17, 6, 0, 67, 82, 0, 0, 11, 64, 7, 63, 38, 47, 38, 31, 38, 3, 93, 49, 0,255,255, 0,123,255,227, 4, 45,
- 6,102, 18, 38, 0, 68, 0, 0, 17, 6, 0,118, 82, 0, 0, 11, 64, 7, 63, 38, 47, 38, 31, 38, 3, 93, 49, 0,255,255, 0,123,
-255,227, 4, 45, 6,102, 18, 38, 0, 68, 0, 0, 17, 6, 2, 31, 82, 0, 0, 8,180, 11, 40, 44, 20, 7, 43, 49,255,255, 0,123,
-255,227, 4, 45, 6, 55, 18, 38, 0, 68, 0, 0, 17, 6, 2, 53, 82, 0, 0, 20,180, 20, 46, 60, 11, 7, 43, 64, 9, 32, 46, 47,
- 60, 16, 46, 31, 60, 4, 93, 49,255,255, 0,123,255,227, 4, 45, 6, 16, 18, 38, 0, 68, 0, 0, 17, 6, 0,106, 82, 0, 0, 32,
-180, 20, 45, 40, 11, 7, 43, 64, 21,127, 40,111, 40, 80, 45, 95, 40, 64, 45, 79, 40, 48, 45, 63, 40, 0, 45, 15, 40, 10, 93, 49,
-255,255, 0,123,255,227, 4, 45, 7, 6, 18, 38, 0, 68, 0, 0, 17, 6, 2, 51, 82, 0, 0, 37, 64, 14, 38, 44, 20, 44, 38, 11,
- 7, 50, 56, 20, 56, 50, 11, 7, 43, 16,196, 43, 16,196, 49, 0, 64, 9, 63, 53, 63, 47, 15, 53, 15, 47, 4, 93, 48, 0, 0, 0,
- 0, 3, 0,123,255,227, 7,111, 4,123, 0, 6, 0, 51, 0, 62, 1, 3, 64, 67, 39, 45, 37, 61, 14, 13, 0, 52,169, 37, 22,134,
- 21,136, 18, 0,169, 14, 58, 18,185, 28, 25, 46,134, 45,186, 42, 3,185, 14,187, 7, 49, 10,184, 31, 25,140, 37, 63, 52, 55, 38,
- 6, 15, 0, 37, 55, 28, 7, 38, 15, 21, 0, 8, 13, 61, 38, 8, 15, 45, 55, 8, 34, 69, 63, 16,252,236,204,212,252, 60,212,236,
-196, 17, 18, 57, 57, 17, 57, 17, 18, 57, 17, 18, 57, 49, 0, 16,196,228, 50,244, 60,196,228,252, 60,244,236, 16,196,238, 50, 16,
-238, 16,244,238, 16,238, 17, 57, 17, 57, 17, 18, 57, 48, 64,129, 48, 43, 48, 44, 48, 45, 48, 46, 48, 47, 48, 48, 64, 43, 64, 44,
- 64, 45, 64, 46, 64, 47, 64, 48, 80, 43, 80, 44, 80, 45, 80, 46, 80, 47, 80, 48,133, 43,133, 48,128, 64,144, 64,160, 64,176, 64,
-192, 64,208, 64,224, 64,224, 64,240, 64, 29, 63, 0, 63, 6, 63, 13, 63, 14, 63, 15, 5, 48, 44, 48, 45, 48, 46, 48, 47, 64, 44,
- 64, 45, 64, 46, 64, 47, 80, 44, 80, 45, 80, 46, 80, 47,111, 0,111, 6,111, 13,111, 14,111, 15, 96, 44, 96, 45, 96, 46, 96, 47,
-112, 44,112, 45,112, 46,112, 47,128, 44,128, 45,128, 46,128, 47, 29, 93,113, 1, 93, 1, 46, 1, 35, 34, 6, 7, 3, 62, 1, 51,
- 50, 0, 29, 1, 33, 30, 1, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 39, 14, 1, 35, 34, 38, 53, 52, 54, 51, 33, 53, 52, 38, 35,
- 34, 6, 7, 53, 62, 1, 51, 50, 22, 3, 34, 6, 21, 20, 22, 51, 50, 54, 61, 1, 6,182, 1,165,137,153,185, 14, 68, 74,212,132,
-226, 1, 8,252,178, 12,204,183,104,200,100,100,208,106,167,248, 77, 73,216,143,189,210,253,251, 1, 2,167,151, 96,182, 84,101,
-190, 90,142,213,239,223,172,129,111,153,185, 2,148,151,180,174,158, 1, 48, 90, 94,254,221,250, 90,191,200, 53, 53,174, 42, 44,
-121,119,120,120,187,168,189,192, 18,127,139, 46, 46,170, 39, 39, 96,254, 24,102,123, 98,115,217,180, 41, 0, 0,255,255, 0,113,
-254,117, 3,231, 4,123, 18, 38, 0, 70, 0, 0, 16, 7, 0,122, 0,143, 0, 0,255,255, 0,113,255,227, 4,127, 6,102, 18, 38,
- 0, 72, 0, 0, 16, 7, 0, 67, 0,139, 0, 0,255,255, 0,113,255,227, 4,127, 6,102, 18, 38, 0, 72, 0, 0, 16, 7, 0,118,
- 0,139, 0, 0,255,255, 0,113,255,227, 4,127, 6,102, 18, 38, 0, 72, 0, 0, 17, 7, 2, 31, 0,139, 0, 0, 0, 8,180, 21,
- 30, 34, 27, 7, 43, 49, 0, 0,255,255, 0,113,255,227, 4,127, 6, 16, 18, 38, 0, 72, 0, 0, 17, 7, 0,106, 0,139, 0, 0,
- 0, 7, 64, 3, 64, 32, 1, 93, 49, 0, 0, 0,255,255,255,199, 0, 0, 1,166, 6,102, 18, 38, 0,243, 0, 0, 16, 7, 0, 67,
-255, 29, 0, 0,255,255, 0,144, 0, 0, 2,111, 6,102, 18, 38, 0,243, 0, 0, 16, 7, 0,118,255, 29, 0, 0,255,255,255,222,
- 0, 0, 2, 92, 6,102, 18, 38, 0,243, 0, 0, 17, 7, 2, 31,255, 29, 0, 0, 0, 8,180, 1, 6, 10, 0, 7, 43, 49, 0, 0,
-255,255,255,244, 0, 0, 2, 70, 6, 16, 18, 38, 0,243, 0, 0, 17, 7, 0,106,255, 29, 0, 0, 0, 8,180, 0, 10, 7, 1, 7,
- 43, 49, 0, 0, 0, 2, 0,113,255,227, 4,117, 6, 20, 0, 14, 0, 40, 1, 39, 64, 94, 37,123, 38, 37, 30, 35, 30, 36,123, 35,
- 35, 30, 15,123, 35, 30, 40,123, 39, 40, 30, 35, 30, 38, 39, 40, 39, 37, 36, 37, 40, 40, 39, 34, 35, 34, 31, 32, 31, 33, 32, 32,
- 31, 66, 40, 39, 38, 37, 34, 33, 32, 31, 8, 35, 30, 3, 15, 35, 3,185, 27, 9,185, 21,140, 27, 35,177, 41, 38, 39, 18, 12, 33,
- 32, 24, 40, 37, 35, 34, 31, 5, 30, 15, 6, 12, 18, 18, 81, 6, 18, 24, 69, 41, 16,252,236,244,236, 17, 57, 57, 23, 57, 18, 57,
- 57, 17, 18, 57, 57, 49, 0, 16,236,196,244,236, 16,238, 18, 57, 18, 57, 18, 23, 57, 48, 75, 83, 88, 7, 16, 14,201, 7, 16, 8,
-201, 7, 16, 8,201, 7, 16, 14,201, 7, 16, 8,237, 7, 14,237, 7, 16, 5,237, 7, 16, 8,237, 89, 34,178, 63, 42, 1, 1, 93,
- 64,118, 22, 37, 43, 31, 40, 34, 47, 35, 47, 36, 41, 37, 45, 38, 45, 39, 42, 40, 54, 37, 70, 37, 88, 32, 88, 33, 96, 32, 96, 33,
-102, 34,117, 32,117, 33,117, 34, 19, 37, 35, 37, 36, 38, 38, 38, 39, 39, 40, 54, 36, 54, 37, 70, 36, 69, 37, 90, 32, 90, 33, 98,
- 32, 98, 33,127, 0,127, 1,127, 2,122, 3,123, 9,127, 10,127, 11,127, 12,127, 13,127, 14,127, 15,127, 16,127, 17,127, 18,127,
- 19,127, 20,123, 21,122, 27,122, 28,127, 29,127, 30,118, 32,118, 33,120, 34,160, 42,240, 42, 39, 93, 0, 93, 1, 46, 1, 35, 34,
- 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 19, 22, 18, 21, 20, 0, 35, 34, 0, 17, 52, 0, 51, 50, 22, 23, 39, 5, 39, 37, 39, 51,
- 23, 37, 23, 5, 3, 70, 50, 88, 41,167,185,174,146,145,174, 54, 9,126,114,254,228,230,231,254,229, 1, 20,221, 18, 52, 42,159,
-254,193, 33, 1, 25,181,228,127, 1, 77, 33,254,217, 3,147, 17, 16,216,195,188,222,222,188,122,188, 1, 38,143,254,224,173,255,
-254,201, 1, 55, 0,255,250, 1, 55, 5, 5,180,107, 99, 92,204,145,111, 97, 98,255,255, 0,186, 0, 0, 4,100, 6, 55, 18, 38,
- 0, 81, 0, 0, 16, 7, 2, 53, 0,152, 0, 0,255,255, 0,113,255,227, 4,117, 6,102, 18, 38, 0, 82, 0, 0, 16, 6, 0, 67,
-115, 0, 0, 0,255,255, 0,113,255,227, 4,117, 6,102, 18, 38, 0, 82, 0, 0, 16, 6, 0,118,115, 0, 0, 0,255,255, 0,113,
-255,227, 4,117, 6,102, 18, 38, 0, 82, 0, 0, 17, 6, 2, 31,115, 0, 0, 8,180, 15, 26, 30, 21, 7, 43, 49,255,255, 0,113,
-255,227, 4,117, 6, 55, 18, 38, 0, 82, 0, 0, 17, 6, 2, 53,115, 0, 0, 20,180, 21, 32, 46, 15, 7, 43, 64, 9, 32, 32, 47,
- 46, 16, 32, 31, 46, 4, 93, 49,255,255, 0,113,255,227, 4,117, 6, 16, 18, 38, 0, 82, 0, 0, 17, 6, 0,106,115, 0, 0, 20,
-180, 3, 31, 26, 9, 7, 43, 64, 9, 64, 31, 79, 26, 48, 31, 63, 26, 4, 93, 49, 0, 3, 0,217, 0,150, 5,219, 4,111, 0, 3,
- 0, 7, 0, 11, 0, 41, 64, 20, 0,234, 2, 6,234, 4, 2, 8,156, 4, 10, 12, 9, 5, 1,114, 4, 0, 8, 12, 16,220,212, 60,
-252, 60,196, 49, 0, 16,212,196,252,196, 16,238, 16,238, 48, 1, 51, 21, 35, 17, 51, 21, 35, 1, 33, 21, 33, 2,223,246,246,246,
-246,253,250, 5, 2,250,254, 4,111,246,254, 18,245, 2, 65,170, 0, 3, 0, 72,255,162, 4,156, 4,188, 0, 9, 0, 19, 0, 43,
- 0,228, 64, 60, 43, 44, 38, 31, 29, 26, 19, 10, 1, 0, 4, 13, 41, 38, 32, 20, 13, 4, 42, 38, 30, 26, 4,185, 38, 13,185, 26,
-184, 38,140, 44, 43, 44, 42, 20, 23, 16, 32, 30, 35, 19, 10, 1, 0, 4, 16, 7, 31, 29, 7, 18, 35, 81, 41, 16, 18, 23, 69, 44,
- 16,252,236, 50,244,236, 50,192, 17, 18, 23, 57, 18, 57, 57, 17, 18, 57, 57, 17, 57, 49, 0, 16,228,244,236, 16,238, 16,192, 16,
-192, 17, 18, 57, 57, 18, 57, 18, 23, 57, 17, 57, 57, 17, 18, 57, 48, 64,112, 40, 1, 63, 45, 89, 20, 86, 28, 85, 29, 86, 32,106,
- 21,102, 33,127, 0,123, 4,127, 5,127, 6,127, 7,127, 8,127, 9,127, 10,127, 11,127, 12,123, 13,122, 21,123, 26,127, 27,127,
- 28,127, 29,127, 30,127, 31,127, 32,123, 33,127, 34,127, 35,127, 36,127, 37,123, 38,155, 25,149, 37,168, 25,160, 45,240, 45, 38,
- 89, 0, 86, 19, 85, 29, 90, 40,105, 0,102, 19,101, 28,106, 40,122, 0,116, 19,118, 28,122, 40,137, 30,149, 24,154, 36,162, 24,
-173, 36, 17, 93, 1, 93, 9, 1, 30, 1, 51, 50, 54, 53, 52, 38, 39, 46, 1, 35, 34, 6, 21, 20, 22, 23, 7, 46, 1, 53, 16, 0,
- 51, 50, 22, 23, 55, 23, 7, 30, 1, 21, 16, 0, 35, 34, 38, 39, 7, 39, 3,137,254, 25, 41,103, 65,147,172, 20, 92, 42,103, 62,
-151,169, 19, 20,125, 54, 54, 1, 17,241, 93,159, 67,139, 95,146, 53, 54,254,238,240, 96,161, 63,139, 96, 3, 33,253,176, 42, 40,
-232,200, 79,117,154, 41, 41,235,211, 72,110, 46,151, 77,197,119, 1, 20, 1, 56, 51, 52,168, 79,179, 77,198,120,254,237,254,199,
- 52, 51,168, 78,255,255, 0,174,255,227, 4, 88, 6,102, 18, 38, 0, 88, 0, 0, 16, 6, 0, 67,123, 0, 0, 0,255,255, 0,174,
-255,227, 4, 88, 6,102, 18, 38, 0, 88, 0, 0, 16, 6, 0,118,123, 0, 0, 0,255,255, 0,174,255,227, 4, 88, 6,102, 18, 38,
- 0, 88, 0, 0, 17, 6, 2, 31,123, 0, 0, 8,180, 11, 22, 26, 1, 7, 43, 49,255,255, 0,174,255,227, 4, 88, 6, 16, 18, 38,
- 0, 88, 0, 0, 17, 6, 0,106,123, 0, 0, 24,180, 2, 26, 23, 10, 7, 43, 64, 13, 64, 26, 79, 23, 48, 26, 63, 23, 0, 26, 15,
- 23, 6, 93, 49,255,255, 0, 61,254, 86, 4,127, 6,102, 18, 38, 0, 92, 0, 0, 16, 6, 0,118, 94, 0, 0, 0, 0, 2, 0,186,
-254, 86, 4,164, 6, 20, 0, 16, 0, 28, 0, 62, 64, 27, 20,185, 5, 8, 26,185, 0, 14,140, 8,184, 1,189, 3,151, 29, 17, 18,
- 11, 71, 23, 4, 0, 8, 2, 70, 29, 16,252,236, 50, 50,244,236, 49, 0, 16,236,228,228,244,196,236, 16,198,238, 48, 64, 9, 96,
- 30,128, 30,160, 30,224, 30, 4, 1, 93, 37, 17, 35, 17, 51, 17, 62, 1, 51, 50, 0, 17, 16, 2, 35, 34, 38, 1, 52, 38, 35, 34,
- 6, 21, 20, 22, 51, 50, 54, 1,115,185,185, 58,177,123,204, 0,255,255,204,123,177, 2, 56,167,146,146,167,167,146,146,167,168,
-253,174, 7,190,253,162,100, 97,254,188,254,248,254,248,254,188, 97, 1,235,203,231,231,203,203,231,231, 0, 0,255,255, 0, 61,
-254, 86, 4,127, 6, 16, 18, 38, 0, 92, 0, 0, 17, 6, 0,106, 94, 0, 0, 22,180, 24, 23, 18, 25, 7, 43, 64, 11, 48, 23, 63,
- 18, 32, 23, 47, 18, 31, 18, 5, 93, 49, 0, 0,255,255, 0, 16, 0, 0, 5,104, 7, 49, 16, 39, 0,113, 0,188, 1, 59, 19, 6,
- 0, 36, 0, 0, 0, 16,180, 14, 3, 2, 9, 7, 43, 64, 5, 64, 3, 79, 2, 2, 93, 49, 0, 0,255,255, 0,123,255,227, 4, 45,
- 5,246, 16, 38, 0,113, 74, 0, 19, 6, 0, 68, 0, 0, 0, 16,180, 24, 3, 2, 15, 7, 43, 64, 5,111, 2,127, 3, 2, 93, 49,
-255,255, 0, 16, 0, 0, 5,104, 7,146, 16, 39, 2, 49, 0,206, 1, 74, 19, 6, 0, 36, 0, 0, 0, 18,180, 24, 0, 8, 19, 7,
- 43, 49, 0, 64, 5,111, 0,111, 8, 2, 93, 48,255,255, 0,123,255,227, 4, 45, 6, 31, 16, 38, 2, 49, 79,215, 19, 6, 0, 68,
- 0, 0, 0, 8,180, 34, 0, 8, 25, 7, 43, 49,255,255, 0, 16,254,117, 5,165, 5,213, 16, 39, 2, 52, 2,228, 0, 0, 18, 6,
- 0, 36, 0, 0,255,255, 0,123,254,117, 4,128, 4,123, 16, 39, 2, 52, 1,191, 0, 0, 18, 6, 0, 68, 0, 0,255,255, 0,115,
-255,227, 5, 39, 5,240, 18, 38, 0, 38, 0, 0, 16, 7, 6,133, 5, 45, 1,117,255,255, 0,113,255,227, 3,231, 6,102, 18, 38,
- 0, 70, 0, 0, 16, 7, 0,118, 0,137, 0, 0,255,255, 0,115,255,227, 5, 39, 5,240, 16, 39, 6,136, 5, 76, 1,117, 19, 6,
- 0, 38, 0, 0, 0, 9,178, 4, 4, 30, 16, 60, 61, 47, 49, 0,255,255, 0,113,255,227, 3,231, 6,102, 16, 39, 2, 31, 0,164,
- 0, 0, 18, 6, 0, 70, 0, 0,255,255, 0,115,255,227, 5, 39, 5,240, 16, 39, 6,140, 5, 76, 1,117, 18, 6, 0, 38, 0, 0,
-255,255, 0,113,255,227, 3,231, 6, 16, 16, 39, 2, 50, 0,164, 0, 0, 18, 6, 0, 70, 0, 0,255,255, 0,115,255,227, 5, 39,
- 5,240, 18, 38, 0, 38, 0, 0, 17, 7, 6,137, 5, 45, 1,117, 0, 7, 64, 3, 31, 29, 1, 93, 49, 0, 0, 0,255,255, 0,113,
-255,227, 3,231, 6,102, 18, 38, 0, 70, 0, 0, 16, 7, 2, 32, 0,137, 0, 0,255,255, 0,201, 0, 0, 5,176, 5,213, 16, 38,
- 0, 39, 0, 0, 16, 7, 6,137, 4,236, 1,137,255,255, 0,113,255,227, 4, 90, 6, 20, 18, 38, 0, 71, 0, 0, 17, 7, 6,131,
- 5, 20, 0, 0, 0, 11, 64, 7, 95, 29, 63, 29, 31, 29, 3, 93, 49, 0, 0, 0,255,255, 0, 10, 0, 0, 5,186, 5,213, 16, 6,
- 0,146, 0, 0, 0, 2, 0,113,255,227, 4,244, 6, 20, 0, 24, 0, 36, 0, 74, 64, 36, 7, 3,211, 9, 1,249, 34,185, 0, 22,
- 28,185, 13, 16,140, 22,184, 5,151, 11, 2, 31, 12, 4, 3, 0, 8, 8, 10, 6, 71, 25, 18, 19, 69, 37, 16,252,236,244, 60,196,
-252, 23, 60,196, 49, 0, 47,236,228,244,196,236, 16,196,238,253, 60,238, 50, 48,182, 96, 38,128, 38,160, 38, 3, 1, 93, 1, 17,
- 33, 53, 33, 53, 51, 21, 51, 21, 35, 17, 35, 53, 14, 1, 35, 34, 2, 17, 16, 0, 51, 50, 22, 1, 20, 22, 51, 50, 54, 53, 52, 38,
- 35, 34, 6, 3,162,254,186, 1, 70,184,154,154,184, 58,177,124,203,255, 0,255,203,124,177,253,199,167,146,146,168,168,146,146,
-167, 3,182, 1, 78,125,147,147,125,250,252,168,100, 97, 1, 68, 1, 8, 1, 8, 1, 68, 97,254, 21,203,231,231,203,203,231,231,
-255,255, 0,201, 0, 0, 4,139, 7, 51, 16, 39, 0,113, 0,161, 1, 61, 18, 6, 0, 40, 0, 0,255,255, 0,113,255,227, 4,127,
- 5,246, 16, 39, 0,113, 0,150, 0, 0, 19, 6, 0, 72, 0, 0, 0, 7, 64, 3,112, 0, 1, 93, 49, 0, 0, 0,255,255, 0,201,
- 0, 0, 4,139, 5,213, 16, 39, 6,139, 4,161, 1,117, 19, 6, 0, 40, 0, 0, 0, 7, 64, 3, 64, 0, 1, 93, 49, 0, 0, 0,
-255,255, 0,113,255,227, 4,127, 6, 72, 16, 39, 2, 49, 0,150, 0, 0, 19, 6, 0, 72, 0, 0, 0, 7, 64, 3,112, 0, 1, 93,
- 49, 0, 0, 0,255,255, 0,201, 0, 0, 4,139, 5,213, 16, 39, 6,140, 4,161, 1,117, 18, 6, 0, 40, 0, 0,255,255, 0,113,
-255,227, 4,127, 6, 16, 16, 39, 2, 50, 0,150, 0, 0, 18, 6, 0, 72, 0, 0,255,255, 0,201,254,117, 4,141, 5,213, 16, 39,
- 2, 52, 1,204, 0, 0, 18, 6, 0, 40, 0, 0,255,255, 0,113,254,117, 4,127, 4,123, 16, 39, 2, 52, 1,120, 0, 0, 18, 6,
- 0, 72, 0, 0,255,255, 0,201, 0, 0, 4,139, 5,213, 18, 38, 0, 40, 0, 0, 17, 7, 6,137, 4,166, 1,111, 0, 7, 64, 3,
- 64, 12, 1, 93, 49, 0, 0, 0,255,255, 0,113,255,227, 4,127, 6, 97, 18, 38, 0, 72, 0, 0, 17, 7, 2, 32, 0,148,255,251,
- 0, 16,180, 0, 33, 29, 15, 7, 43, 64, 5, 15, 33, 0, 29, 2, 93, 49, 0, 0,255,255, 0,115,255,227, 5,139, 5,240, 16, 39,
- 6,136, 5, 92, 1,117, 19, 6, 0, 42, 0, 0, 0, 9,178, 4, 4, 21, 16, 60, 61, 47, 49, 0,255,255, 0,113,254, 86, 4, 90,
- 6,102, 16, 38, 2, 31,104, 0, 19, 6, 0, 74, 0, 0, 0, 9,178, 4, 4, 10, 16, 60, 61, 47, 49, 0, 0, 0,255,255, 0,115,
-255,227, 5,139, 5,240, 18, 38, 0, 42, 0, 0, 16, 7, 6,139, 5, 27, 1,117,255,255, 0,113,254, 86, 4, 90, 6, 72, 18, 38,
- 0, 74, 0, 0, 16, 7, 2, 49, 0,139, 0, 0,255,255, 0,115,255,227, 5,139, 5,240, 16, 39, 6,140, 5, 92, 1,117, 19, 6,
- 0, 42, 0, 0, 0, 8, 0, 64, 3, 63, 0, 1, 93, 48, 0, 0,255,255, 0,113,254, 86, 4, 90, 6, 16, 16, 38, 2, 50,104, 0,
- 18, 6, 0, 74, 0, 0, 0, 0,255,255, 0,115,254, 1, 5,139, 5,240, 16, 39, 2,110, 5, 94,255,237, 18, 6, 0, 42, 0, 0,
-255,255, 0,113,254, 86, 4, 90, 6, 52, 16, 39, 2, 90, 3,224, 1, 12, 18, 6, 0, 74, 0, 0,255,255, 0,201, 0, 0, 5, 59,
- 5,213, 16, 39, 6,136, 5, 2, 1,117, 19, 6, 0, 43, 0, 0, 0, 20,180, 12, 2, 6, 7, 7, 43, 64, 9, 47, 2, 32, 6, 31,
- 2, 16, 6, 4, 93, 49, 0, 0,255,255, 0,186, 0, 0, 4,100, 6, 20, 16, 39, 6,136, 3, 22, 1,117, 19, 6, 0, 75, 0, 0,
- 0, 42,180, 20, 2, 6, 19, 7, 43, 49, 0, 75,176, 14, 81, 88,187, 0, 20,255,192, 0, 19,255,192, 56, 56, 89, 64, 13,144, 20,
-144, 19,128, 20,128, 19, 64, 20, 64, 19, 6, 93, 0, 2, 0,201, 0, 0, 6,139, 5,213, 0, 19, 0, 23, 0, 58, 64, 30, 6, 2,
- 18,149, 9, 20, 17, 12,149, 21,173, 4, 0,129, 14, 10, 7, 12, 23, 4, 28, 5, 56, 18, 13, 20, 1, 28, 0, 24, 16,220,236, 50,
- 50,204,252,236, 50, 50,204, 49, 0, 47, 60,228, 50,252,236,220, 50, 50,236, 50, 50, 48, 1, 51, 21, 33, 53, 51, 21, 51, 21, 35,
- 17, 35, 17, 33, 17, 35, 17, 35, 53, 51, 23, 21, 33, 53, 1,113,202, 2,222,202,168,168,202,253, 34,202,168,168,202, 2,222, 5,
-213,224,224,224,164,251,175, 2,199,253, 57, 4, 81,164,164,224,224, 0, 0, 0, 0, 1, 0,120, 0, 0, 4,159, 6, 20, 0, 27,
- 0, 62, 64, 33, 3, 9, 0, 3, 22, 1, 14, 18,135, 13, 21, 6,135, 22, 25,184, 16,151, 10, 1, 2, 8, 0, 78, 19, 14, 17, 21,
- 9, 8, 16, 11, 28, 16,220, 50,236, 50, 50,204,204,244,236, 49, 0, 47, 60,236,244,196,236,220, 50,236, 50, 17, 18, 23, 57, 48,
- 1, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 17, 62, 1, 51, 50, 22, 4,159,184,124,
-124,149,172,185,125,125,185, 1, 96,254,160, 66,179,117,193,198, 2,164,253, 92, 2,158,159,158,190,164,253,135, 4,246,164,122,
-122,164,254,188,101,100,239, 0,255,255, 0,201, 0, 0, 1,147, 5,213, 16, 39, 6,134, 3, 46, 1,117, 19, 6, 0, 44, 0, 0,
- 0, 8,180, 30, 9, 24, 31, 7, 43, 49, 0, 0,255,255,255,211, 0, 0, 2,103, 6, 55, 16, 39, 2, 53,255, 29, 0, 0, 19, 6,
- 0,243, 0, 0, 0, 8,180, 28, 8, 22, 29, 7, 43, 49, 0, 0,255,255, 0, 3, 0, 0, 2, 89, 7, 49, 16, 39, 0,113,255, 46,
- 1, 59, 19, 6, 0, 44, 0, 0, 0, 8,180, 4, 3, 2, 5, 7, 43, 49, 0, 0,255,255,255,242, 0, 0, 2, 72, 5,245, 16, 39,
- 0,113,255, 29,255,255, 19, 6, 0,243, 0, 0, 0, 8,180, 4, 3, 2, 5, 7, 43, 49, 0, 0,255,255, 0,201, 0, 0, 1,147,
- 5,213, 16, 39, 6,139, 3, 46, 1,117, 19, 6, 0, 44, 0, 0, 0, 8,180, 14, 0, 8, 15, 7, 43, 49, 0, 0,255,255,255,228,
- 0, 0, 2, 86, 6, 72, 16, 39, 2, 49,255, 29, 0, 0, 19, 6, 0,243, 0, 0, 0, 8,180, 14, 0, 8, 15, 7, 43, 49, 0, 0,
-255,255, 0,176,254,117, 2, 37, 5,213, 16, 39, 2, 52,255,100, 0, 0, 18, 6, 0, 44, 0, 0,255,255, 0,150,254,117, 2, 11,
- 6, 20, 16, 39, 2, 52,255, 74, 0, 0, 18, 6, 0, 76, 0, 0,255,255, 0,201, 0, 0, 1,147, 5,213, 18, 38, 0, 44, 0, 0,
- 17, 7, 6,140, 3, 47, 1,117, 0, 19,179, 6, 1, 7, 0, 16, 60, 16, 60, 49, 0,180, 63, 7, 63, 6, 2, 93, 48, 0, 0, 0,
- 0, 1, 0,193, 0, 0, 1,121, 4, 96, 0, 3, 0, 32,183, 0,191, 2, 1, 8, 0, 70, 4, 16,252,236, 49, 0, 47,236, 48, 64,
- 11, 16, 5, 64, 5, 80, 5, 96, 5,112, 5, 5, 1, 93, 19, 51, 17, 35,193,184,184, 4, 96,251,160, 0, 0, 0,255,255, 0,201,
-254,102, 3,239, 5,213, 16, 39, 0, 45, 2, 92, 0, 0, 17, 6, 0, 44, 0, 0, 0, 8, 64, 3, 17, 4, 1, 16,236, 49, 0, 0,
-255,255, 0,193,254, 86, 3,177, 6, 20, 16, 39, 0, 77, 2, 56, 0, 0, 17, 6, 0, 76, 0, 0, 0, 8, 64, 3, 25, 70, 1, 16,
-236, 49, 0, 0,255,255,255,150,254,102, 1,147, 5,213, 16, 39, 6,136, 3, 46, 1,117, 19, 6, 0, 45, 0, 0, 0, 8,180, 8,
- 2, 6, 7, 7, 43, 49, 0, 0,255,255,255,219,254, 86, 2, 92, 6,102, 16, 39, 2, 31,255, 29, 0, 0, 19, 6, 1,249, 0, 0,
- 0, 8,180, 8, 2, 6, 7, 7, 43, 49, 0, 0,255,255, 0,201,254, 30, 5,106, 5,213, 16, 39, 2,110, 5, 27, 0, 10, 18, 6,
- 0, 46, 0, 0,255,255, 0,186,254, 30, 4,156, 6, 20, 16, 39, 2,110, 4,172, 0, 10, 18, 6, 0, 78, 0, 0, 0, 1, 0,186,
- 0, 0, 4,156, 4, 96, 0, 10, 0,187, 64, 40, 8, 17, 5, 6, 5, 7, 17, 6, 6, 5, 3, 17, 4, 5, 4, 2, 17, 5, 5, 4,
- 66, 8, 5, 2, 3, 3, 0,188, 9, 6, 5, 1, 4, 6, 8, 1, 8, 0, 70, 11, 16,252,236, 50,212,196, 17, 57, 49, 0, 47, 60,
-236, 50, 23, 57, 48, 75, 83, 88, 7, 16, 4,237, 7, 16, 5,237, 7, 16, 5,237, 7, 16, 4,237, 89, 34,178, 16, 12, 1, 1, 93,
- 64, 95, 4, 2, 10, 8, 22, 2, 39, 2, 41, 5, 43, 8, 86, 2,102, 2,103, 8,115, 2,119, 5,130, 2,137, 5,142, 8,147, 2,
-150, 5,151, 8,163, 2, 18, 9, 5, 9, 6, 2, 11, 3, 10, 7, 40, 3, 39, 4, 40, 5, 43, 6, 43, 7, 64, 12,104, 3, 96, 12,
-137, 3,133, 4,137, 5,141, 6,143, 7,154, 3,151, 7,170, 3,167, 5,182, 7,197, 7,214, 7,247, 3,240, 3,247, 4,240, 4,
- 26, 93,113, 0, 93, 19, 51, 17, 1, 51, 9, 1, 35, 1, 17, 35,186,185, 2, 37,235,253,174, 2,107,240,253,199,185, 4, 96,254,
- 27, 1,229,253,242,253,174, 2, 33,253,223, 0,255,255, 0,201, 0, 0, 4,106, 5,213, 16, 39, 6,133, 3,110, 1,118, 18, 6,
- 0, 47, 0, 0,255,255, 0,193, 0, 0, 1,121, 6, 20, 16, 39, 6,133, 3, 90, 1,118, 19, 6, 0, 79, 0, 0, 0, 30,177, 3,
- 4, 16, 60, 49, 0, 75,176, 14, 81, 88,185, 0, 0, 0, 64, 56, 89, 64, 7,159, 0,143, 0, 79, 0, 3, 93, 48,255,255, 0,201,
-254, 30, 4,106, 5,213, 16, 39, 2,110, 4,155, 0, 10, 18, 6, 0, 47, 0, 0,255,255, 0,136,254, 30, 1,174, 6, 20, 16, 39,
- 2,110, 3, 30, 0, 10, 19, 6, 0, 79, 0, 0, 0, 7, 64, 3, 64, 0, 1, 93, 49, 0, 0, 0,255,255, 0,201, 0, 0, 4,106,
- 5,213, 16, 39, 6,131, 2,159,255,195, 18, 6, 0, 47, 0, 0,255,255, 0,193, 0, 0, 1,121, 6, 20, 16, 39, 6,131, 2, 57,
- 0, 2, 17, 6, 0, 79, 0, 0, 0, 9, 64, 5,143, 0, 31, 0, 2, 93, 49, 0,255,255, 0,201, 0, 0, 4,106, 5,213, 16, 39,
- 0,121, 2, 49, 0,119, 18, 6, 0, 47, 0, 0,255,255, 0,193, 0, 0, 2,132, 6, 20, 16, 39, 0,121, 0,214, 0,115, 17, 6,
- 0, 79, 0, 0, 0, 23, 75,176, 13, 81, 75,176, 17, 83, 75,176, 24, 81, 90, 91, 88,185, 0, 0, 0, 64, 56, 89, 49, 0, 0, 0,
- 0, 1,255,242, 0, 0, 4,117, 5,213, 0, 13, 0, 63, 64, 30, 12, 11, 10, 4, 3, 2, 6, 0, 6,149, 0,129, 8, 3, 4, 1,
- 11, 14, 0, 4, 5, 1, 28, 12, 7, 58, 9, 0,121, 14, 16,244, 60,236,196,252, 60,196, 17, 18, 57, 17, 18, 57, 49, 0, 47,228,
-236, 17, 23, 57, 48,180, 48, 15, 80, 15, 2, 1, 93, 19, 51, 17, 37, 23, 1, 17, 33, 21, 33, 17, 7, 39, 55,211,203, 1, 57, 80,
-254,119, 2,215,252, 94,148, 77,225, 5,213,253,152,219,111,254,238,253,227,170, 2, 59,106,110,158, 0, 0, 0, 0, 1, 0, 2,
- 0, 0, 2, 72, 6, 20, 0, 11, 0, 94, 64, 26, 10, 9, 8, 4, 3, 2, 6, 0,151, 6, 3, 4, 1, 9, 10, 0, 4,122, 5, 1,
- 8, 10,122, 7, 0, 12, 16,212, 60,228,252, 60,228, 17, 18, 57, 17, 18, 57, 49, 0, 47,236, 23, 57, 48, 1, 75,176, 16, 84, 88,
-189, 0, 12, 0, 64, 0, 1, 0, 12, 0, 12,255,192, 56, 17, 55, 56, 89, 64, 19, 16, 13, 64, 13, 80, 13, 96, 13,115, 4,122, 10,
-112, 13,224, 13,240, 13, 9, 93, 19, 51, 17, 55, 23, 7, 17, 35, 17, 7, 39, 55,199,184,125, 76,201,184,123, 74,197, 6, 20,253,
-166, 90,106,141,252,227, 2,154, 88,106,141, 0,255,255, 0,201, 0, 0, 5, 51, 5,213, 16, 39, 6,133, 4,197, 1,118, 19, 6,
- 0, 49, 0, 0, 0, 7, 64, 3, 79, 0, 1, 93, 49, 0, 0, 0,255,255, 0,186, 0, 0, 4,100, 6,109, 16, 38, 0,118, 66, 7,
- 19, 6, 0, 81, 0, 0, 0, 9, 64, 5, 63, 0, 79, 0, 2, 93, 49, 0, 0, 0,255,255, 0,201,254, 30, 5, 51, 5,213, 16, 39,
- 2,110, 5, 0, 0, 10, 18, 6, 0, 49, 0, 0,255,255, 0,186,254, 30, 4,100, 4,123, 16, 39, 2,110, 4,144, 0, 10, 18, 6,
- 0, 81, 0, 0,255,255, 0,201, 0, 0, 5, 51, 5,213, 18, 38, 0, 49, 0, 0, 17, 7, 6,137, 4,245, 1,103, 0, 20,180, 4,
- 15, 11, 0, 7, 43, 64, 9, 47, 15, 32, 11, 31, 15, 16, 11, 4, 93, 49, 0, 0,255,255, 0,186, 0, 0, 4,100, 6,102, 18, 38,
- 0, 81, 0, 0, 17, 7, 2, 32, 0,141, 0, 0, 0, 16,180, 0, 25, 21, 12, 7, 43, 64, 5, 15, 25, 0, 21, 2, 93, 49, 0, 0,
-255,255, 0,205, 0, 0, 5,185, 5,213, 16, 39, 0, 81, 1, 85, 0, 0, 16, 6, 2, 21, 27, 0, 0, 1, 0,213,254, 86, 5, 39,
- 5,213, 0, 19, 0, 74, 64, 33, 17, 17, 1, 2, 1, 2, 17, 16, 17, 16, 66, 11,149, 10, 17, 2, 3, 0,175, 16, 19, 11, 16, 1,
- 17, 2, 28, 4, 54, 17, 28, 0, 20, 16,220,236,252,236, 17, 57, 57,204, 49, 0, 47, 60,236, 50, 57, 57,220,236, 48, 75, 83, 88,
- 7, 16, 4,237, 7, 16, 4,237, 89, 34,178, 31, 21, 1, 1, 93, 19, 51, 1, 17, 51, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54,
- 53, 1, 17, 35,213,184, 2,226,184, 82, 81,181,254,233,105, 38, 38,253, 30,184, 5,213,251,131, 4,125,250, 23,214, 96, 96,156,
- 48, 49,173, 4,125,251,131, 0, 0, 1, 0,186,254, 86, 4,100, 4,123, 0, 31, 0, 59, 64, 28, 13, 19, 0, 3, 24, 21, 7,135,
- 6, 16,135, 24, 28,184, 22,188, 21, 7, 13, 8, 0, 78, 19, 23, 8, 22, 70, 32, 16,252,236, 50,244,236,196, 49, 0, 47,228,244,
-196,236,212,236, 17, 18, 23, 57, 48,180, 96, 33,207, 33, 2, 1, 93, 1, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 52,
- 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 54, 55, 54, 51, 50, 23, 22, 4,100, 82, 81,181,254,233,105, 38, 38,124,124,149,172,185,
-185, 66, 89, 90,117,193, 99, 99, 2,164,253, 72,214, 96, 96,156, 48, 49,153, 2,178,159,158,190,164,253,135, 4, 96,174,101, 50,
- 50,119,120, 0,255,255, 0,115,255,227, 5,217, 7, 49, 16, 39, 0,113, 1, 39, 1, 59, 19, 6, 0, 50, 0, 0, 0, 16,180, 13,
- 2, 3, 7, 7, 43, 64, 5, 31, 2, 16, 3, 2, 93, 49, 0, 0,255,255, 0,113,255,227, 4,117, 5,245, 16, 38, 0,113,115,255,
- 19, 6, 0, 82, 0, 0, 0, 8,180, 19, 2, 3, 25, 7, 43, 49,255,255, 0,115,255,227, 5,217, 5,240, 16, 39, 6,139, 5, 39,
- 1,117, 19, 6, 0, 50, 0, 0, 0, 16,180, 17, 0, 8, 23, 7, 43, 64, 5, 16, 0, 31, 8, 2, 93, 49, 0, 0,255,255, 0,113,
-255,227, 4,117, 6, 72, 16, 38, 2, 49,115, 0, 19, 6, 0, 82, 0, 0, 0, 8,180, 29, 8, 0, 35, 7, 43, 49,255,255, 0,115,
-255,227, 5,217, 5,240, 16, 39, 6,141, 5, 39, 1,117, 18, 6, 0, 50, 0, 0,255,255, 0,113,255,227, 4,117, 6,102, 16, 39,
- 2, 54, 0,160, 0, 0, 18, 6, 0, 82, 0, 0, 0, 2, 0,115, 0, 0, 8, 12, 5,213, 0, 16, 0, 25, 0, 59, 64, 31, 5,149,
- 3, 17, 1,149, 0,129, 24, 7,149, 3,173, 9, 24, 18, 16, 10, 21, 6, 2, 28, 17, 0, 4, 8, 21, 25, 13, 16, 26, 16,252,236,
-212,196,196,212,236, 50, 18, 57, 57, 57, 57, 49, 0, 47,236,236, 50,244,236, 50, 16,238, 48, 1, 21, 33, 17, 33, 21, 33, 17, 33,
- 21, 33, 32, 0, 17, 16, 0, 33, 23, 35, 32, 0, 17, 16, 0, 33, 51, 7,250,253, 26, 2,199,253, 57, 2,248,251,215,254, 79,254,
- 65, 1,191, 1,177,103,129,254,191,254,192, 1, 64, 1, 65,129, 5,213,170,254, 70,170,253,227,170, 1,124, 1,112, 1,109, 1,
-124,170,254,225,254,224,254,223,254,223, 0, 0, 0, 3, 0,113,255,227, 7,195, 4,123, 0, 6, 0, 39, 0, 51, 0,132, 64, 49,
- 7, 8, 0, 16,134, 15,136, 12, 0,169, 8, 46, 12,185, 22, 19, 40, 3,185, 8,187, 34, 37, 31,184, 25, 19,140, 52, 6, 0, 22,
- 34, 49, 9, 15, 0, 8, 7, 75, 49, 18, 9, 81, 43, 18, 28, 69, 52, 16,252,236,244,252,244,236,196, 17, 18, 57, 57, 18, 57, 49,
- 0, 16,228, 50,244, 60,196,228,236, 50, 16,196,238, 50, 16,238, 16,244,238, 17, 18, 57, 48, 64, 37, 63, 53, 95, 53,112, 53,159,
- 53,207, 53,208, 53,240, 53, 7, 63, 0, 63, 6, 63, 7, 63, 8, 63, 9, 5,111, 0,111, 6,111, 7,111, 8,111, 9, 5, 93,113,
- 1, 93, 1, 46, 1, 35, 34, 6, 7, 5, 21, 33, 30, 1, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 39, 14, 1, 35, 34, 0, 17, 16,
- 0, 51, 50, 22, 23, 62, 1, 51, 50, 0, 37, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 7, 10, 2,164,137,153,185, 14, 3, 72,
-252,178, 12,204,183,106,200, 98,100,208,106,160,242, 81, 71,209,140,241,254,239, 1, 17,241,140,211, 66, 78,232,143,226, 1, 8,
-250,176,148,172,171,149,147,172,172, 2,148,152,179,174,158, 53, 90,190,199, 52, 52,174, 42, 44,110,109,110,109, 1, 57, 1, 19,
- 1, 20, 1, 56,111,108,107,112,254,221,135,231,201,201,231,232,200,199,233, 0,255,255, 0,201, 0, 0, 5, 84, 5,213, 16, 39,
- 6,133, 4,149, 1,118, 18, 6, 0, 53, 0, 0,255,255, 0,186, 0, 0, 3,149, 6,109, 16, 38, 0,118, 66, 7, 18, 6, 0, 85,
- 0, 0, 0, 0,255,255, 0,201,254, 30, 5, 84, 5,213, 16, 39, 2,110, 5, 16, 0, 10, 18, 6, 0, 53, 0, 0,255,255, 0,130,
-254, 30, 3, 74, 4,123, 16, 39, 2,110, 3, 24, 0, 10, 18, 6, 0, 85, 0, 0,255,255, 0,201, 0, 0, 5, 84, 5,213, 18, 38,
- 0, 53, 0, 0, 17, 7, 6,137, 4,125, 1,103, 0, 8, 0, 64, 3, 95, 29, 1, 93, 48, 0, 0,255,255, 0,186, 0, 0, 3, 90,
- 6,102, 18, 38, 0, 85, 0, 0, 17, 6, 2, 32, 27, 0, 0, 16,180, 17, 23, 19, 9, 7, 43, 64, 5, 15, 23, 0, 19, 2, 93, 49,
-255,255, 0,135,255,227, 4,162, 5,240, 16, 39, 6,133, 4,149, 1,118, 18, 6, 0, 54, 0, 0,255,255, 0,111,255,227, 3,199,
- 6,109, 16, 38, 0,118, 66, 7, 18, 6, 0, 86, 0, 0, 0, 0,255,255, 0,135,255,227, 4,162, 5,240, 16, 39, 6,136, 4,147,
- 1,117, 19, 6, 0, 54, 0, 0, 0, 11,180, 4, 32, 21, 41, 41, 16, 73, 99, 58, 49, 0, 0, 0,255,255, 0,111,255,227, 3,199,
- 6,102, 16, 38, 2, 31, 37, 0, 19, 6, 0, 86, 0, 0, 0, 11,180, 4, 32, 21, 41, 41, 16, 73, 99, 58, 49, 0,255,255, 0,135,
-254,117, 4,162, 5,240, 18, 38, 0, 54, 0, 0, 16, 7, 0,122, 0,139, 0, 0,255,255, 0,111,254,117, 3,199, 4,123, 18, 38,
- 0, 86, 0, 0, 16, 6, 0,122, 23, 0, 0, 0,255,255, 0,135,255,227, 4,162, 5,240, 18, 38, 0, 54, 0, 0, 17, 7, 6,137,
- 4,139, 1,117, 0, 11,180, 43, 32, 14, 34, 34, 16, 73, 99, 58, 49, 0, 0, 0,255,255, 0,111,255,227, 3,199, 6,102, 18, 38,
- 0, 86, 0, 0, 17, 6, 2, 32, 23, 0, 0, 11,180, 43, 32, 14, 34, 34, 16, 73, 99, 58, 49, 0,255,255,255,250,254,117, 4,233,
- 5,213, 16, 38, 0,122, 80, 0, 18, 6, 0, 55, 0, 0, 0, 0,255,255, 0, 55,254,117, 2,242, 5,158, 16, 38, 0,122,225, 0,
- 18, 6, 0, 87, 0, 0, 0, 0,255,255,255,250, 0, 0, 4,233, 5,213, 18, 38, 0, 55, 0, 0, 17, 7, 6,137, 4,115, 1,103,
- 0, 16,180, 1, 13, 9, 0, 7, 43, 49, 0, 64, 3, 95, 8, 1, 93, 48, 0, 0,255,255, 0, 55, 0, 0, 2,242, 5,158, 18, 38,
- 0, 87, 0, 0, 17, 7, 6,131, 2, 55, 0,112, 0, 7, 64, 3,143, 20, 1, 93, 49, 0, 0, 0, 0, 1,255,250, 0, 0, 4,233,
- 5,213, 0, 15, 0, 70, 64, 24, 7, 11,149, 4, 12, 9, 3, 15,149, 0,129, 9, 5, 1, 64, 7, 3, 28, 12, 0, 64, 10, 14, 16,
- 16,212, 60,228,204,252, 60,228,204, 49, 0, 47,244,236, 50, 16,212, 60,236, 50, 48, 1, 64, 19, 0, 17, 31, 0, 16, 1, 16, 2,
- 31, 15, 16, 17, 64, 17,112, 17,159, 17, 9, 93, 3, 33, 21, 33, 17, 33, 21, 33, 17, 35, 17, 33, 53, 33, 17, 33, 6, 4,239,253,
-238, 1, 9,254,247,203,254,247, 1, 9,253,238, 5,213,170,253,192,170,253,191, 2, 65,170, 2, 64, 0, 0, 0, 0, 1, 0, 55,
- 0, 0, 2,242, 5,158, 0, 29, 0, 67, 64, 31, 8, 22,169, 5, 23, 4, 26,169, 0, 1, 27,188, 13,135, 16, 16, 13, 14, 2, 6,
- 8, 4, 0, 8, 23, 27, 21, 25, 29, 70, 30, 16,252, 60, 60,196, 50,252, 60, 60,196,196, 50, 57, 57, 49, 0, 47,236,244, 60,196,
-252, 60,220, 60,236, 50, 48,178,175, 31, 1, 1, 93, 1, 17, 33, 21, 33, 21, 51, 21, 35, 21, 20, 23, 22, 59, 1, 21, 35, 34, 39,
- 38, 61, 1, 35, 53, 51, 53, 35, 53, 51, 17, 1,119, 1,123,254,133,190,190, 37, 38,115,189,189,213, 81, 81,135,135,135,135, 5,
-158,254,194,143,233,142,233,137, 39, 39,154, 80, 79,210,233,142,233,143, 1, 62,255,255, 0,178,255,227, 5, 41, 5,213, 16, 39,
- 6,134, 4,238, 1,117, 19, 6, 0, 56, 0, 0, 0, 16,180, 31, 9, 24, 39, 7, 43, 64, 5, 16, 9, 31, 24, 2, 93, 49, 0, 0,
-255,255, 0,174,255,227, 4, 88, 6, 55, 16, 39, 2, 53, 0,131, 0, 0, 19, 6, 0, 88, 0, 0, 0, 8,180, 30, 8, 22, 38, 7,
- 43, 49, 0, 0,255,255, 0,178,255,227, 5, 41, 7, 49, 16, 39, 0,113, 0,238, 1, 59, 19, 6, 0, 56, 0, 0, 0, 20,180, 5,
- 3, 2, 13, 7, 43, 64, 9, 47, 2, 32, 3, 31, 2, 16, 3, 4, 93, 49, 0, 0,255,255, 0,174,255,227, 4, 88, 5,245, 16, 39,
- 0,113, 0,131,255,255, 19, 6, 0, 88, 0, 0, 0, 8,180, 6, 3, 2, 14, 7, 43, 49, 0, 0,255,255, 0,178,255,227, 5, 41,
- 5,213, 16, 39, 6,139, 4,238, 1,117, 19, 6, 0, 56, 0, 0, 0, 16,180, 15, 0, 8, 23, 7, 43, 64, 5, 16, 0, 31, 8, 2,
- 93, 49, 0, 0,255,255, 0,174,255,227, 4, 88, 6, 72, 16, 39, 2, 49, 0,131, 0, 0, 19, 6, 0, 88, 0, 0, 0, 8,180, 16,
- 0, 8, 24, 7, 43, 49, 0, 0,255,255, 0,178,255,227, 5, 41, 8, 75, 18, 38, 0, 56, 0, 0, 17, 7, 2, 51, 0,240, 1, 69,
- 0, 9, 64, 5, 64, 30, 64, 18, 2, 93, 49, 0,255,255, 0,174,255,227, 4, 88, 6,202, 18, 38, 0, 88, 0, 0, 17, 6, 2, 51,
-124,196, 0, 9, 64, 5, 64, 20, 64, 32, 2, 93, 49, 0, 0, 0,255,255, 0,178,255,227, 5, 41, 5,213, 16, 39, 6,141, 4,238,
- 1,117, 18, 6, 0, 56, 0, 0,255,255, 0,174,255,227, 4, 94, 6,102, 16, 39, 2, 54, 0,176, 0, 0, 18, 6, 0, 88, 0, 0,
-255,255, 0,178,254,101, 5, 41, 5,213, 18, 38, 0, 56, 0, 0, 16, 7, 2, 52, 0,250,255,240,255,255, 0,174,254,117, 4,232,
- 4, 96, 18, 38, 0, 88, 0, 0, 16, 7, 2, 52, 2, 39, 0, 0,255,255, 0, 68, 0, 0, 7,166, 5,213, 16, 39, 6,136, 5,245,
- 1,124, 19, 6, 0, 58, 0, 0, 0, 8,180, 21, 2, 6, 20, 7, 43, 49, 0, 0,255,255, 0, 86, 0, 0, 6, 53, 6,109, 16, 39,
- 2, 31, 1, 69, 0, 7, 19, 6, 0, 90, 0, 0, 0, 8,180, 21, 2, 6, 20, 7, 43, 49, 0, 0,255,255,255,252, 0, 0, 4,231,
- 5,213, 16, 39, 6,136, 4,114, 1,124, 19, 6, 0, 60, 0, 0, 0, 8,180, 11, 2, 6, 7, 7, 43, 49, 0, 0,255,255, 0, 61,
-254, 86, 4,127, 6,109, 16, 38, 2, 31, 94, 7, 19, 6, 0, 92, 0, 0, 0, 8,180, 24, 2, 6, 23, 7, 43, 49,255,255,255,252,
- 0, 0, 4,231, 5,213, 18, 38, 0, 60, 0, 0, 17, 7, 6,132, 4,115, 1,117, 0, 8,180, 0, 16, 11, 4, 7, 43, 49, 0, 0,
-255,255, 0, 92, 0, 0, 5, 31, 5,213, 16, 39, 6,133, 4,149, 1,118, 18, 6, 0, 61, 0, 0,255,255, 0, 88, 0, 0, 3,219,
- 6,109, 16, 38, 0,118, 66, 7, 18, 6, 0, 93, 0, 0, 0, 0,255,255, 0, 92, 0, 0, 5, 31, 5,213, 16, 39, 6,140, 4,168,
- 1, 98, 18, 6, 0, 61, 0, 0,255,255, 0, 88, 0, 0, 3,219, 6, 16, 16, 38, 2, 50, 0, 0, 18, 6, 0, 93, 0, 0, 0, 0,
-255,255, 0, 92, 0, 0, 5, 31, 5,213, 18, 38, 0, 61, 0, 0, 16, 7, 6,137, 4,190, 1,117,255,255, 0, 88, 0, 0, 3,219,
- 6,102, 18, 38, 0, 93, 0, 0, 17, 6, 2, 32, 27, 0, 0, 16,180, 1, 15, 11, 0, 7, 43, 64, 5, 15, 15, 0, 11, 2, 93, 49,
- 0, 1, 0, 47, 0, 0, 2,248, 6, 20, 0, 16, 0, 35, 64, 18, 11,135, 10,151, 1, 2,169, 5,188, 1, 10, 16, 8, 4, 6, 2,
- 76, 17, 16,252, 60,204,252,204, 49, 0, 47,244,236, 16,244,236, 48, 33, 35, 17, 35, 53, 51, 53, 52, 54, 59, 1, 21, 35, 34, 7,
- 6, 21, 1,152,185,176,176,174,189,174,176, 99, 39, 38, 3,209,143, 78,187,171,153, 40, 41,103, 0, 2, 0, 32,255,227, 4,164,
- 6, 20, 0, 15, 0, 44, 0, 68, 64, 37, 4,185, 16, 20, 12,185, 32, 28,140, 20,184, 34, 41, 37,169, 44, 36, 39,151, 34, 46, 69,
- 0, 18, 24, 71, 42, 32, 6, 44, 40, 8, 37, 35, 39, 70, 45, 16,252, 60,204,236, 50, 50, 50,204,244,236,236, 49, 0, 47,244,220,
- 60,236, 50, 16,228,244,196,236, 16,198,238, 48, 1, 52, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 51, 50, 55, 54, 1, 54, 55, 54,
- 51, 50, 23, 22, 17, 16, 7, 6, 35, 34, 39, 38, 39, 21, 35, 17, 35, 53, 51, 53, 51, 21, 33, 21, 33, 3,229, 83, 84,146,146, 84,
- 83, 83, 84,146,146, 84, 83,253,142, 58, 89, 88,123,204,127,128,128,127,204,123, 88, 89, 58,185,154,154,185, 1, 69,254,187, 2,
- 47,203,116,115,115,116,203,203,116,115,115,116, 2, 82,100, 48, 49,162,162,254,248,254,248,162,162, 49, 48,100,168, 5, 4,125,
-147,147,125, 0, 0, 3,255,151, 0, 0, 5, 80, 5,213, 0, 8, 0, 17, 0, 41, 0, 67, 64, 35, 25, 0,149, 10, 9,149, 18,129,
- 1,149, 10,173, 31, 17, 11, 8, 2, 19, 25, 31, 5, 0, 14, 28, 22, 5, 25, 28, 46, 9, 0, 28, 18, 4, 42, 16,252,236, 50,252,
-236,212,236, 17, 23, 57, 57, 57, 49, 0, 47,236,236,244,236, 16,238, 57, 48,178, 15, 34, 1, 1, 93, 1, 17, 33, 50, 54, 53, 52,
- 38, 35, 1, 17, 33, 50, 54, 53, 52, 38, 35, 37, 33, 50, 22, 21, 20, 6, 7, 30, 1, 21, 20, 4, 35, 33, 17, 34, 6, 29, 1, 35,
- 53, 52, 54, 1,247, 1, 68,163,157,157,163,254,188, 1, 43,148,145,145,148,254, 11, 2, 4,231,250,128,124,149,165,254,240,251,
-253,232,132,118,156,192, 2,201,253,221,135,139,140,133, 2,102,254, 62,111,114,113,112,166,192,177,137,162, 20, 32,203,152,200,
-218, 5, 48, 95,105, 49, 70,181,163, 0, 0, 0,255,255, 0,201, 0, 0, 4,236, 5,213, 18, 6, 3, 46, 0, 0, 0, 2, 0,186,
-255,227, 4,164, 6, 20, 0, 22, 0, 38, 0, 56, 64, 31, 27,185, 0, 4, 35,185, 16, 12,140, 4,184, 18, 22,169, 19,151, 18, 40,
- 69, 20, 23, 18, 8, 71, 16, 31, 22, 8, 19, 70, 39, 16,252,236, 50, 50,244,236,196,236, 49, 0, 47,244,236, 16,228,244,196,236,
- 16,198,238, 48, 1, 54, 55, 54, 51, 50, 23, 22, 17, 16, 7, 6, 35, 34, 39, 38, 39, 21, 35, 17, 33, 21, 37, 1, 52, 39, 38, 35,
- 34, 7, 6, 21, 20, 23, 22, 51, 50, 55, 54, 1,115, 58, 89, 88,123,204,127,128,128,127,204,123, 88, 89, 58,185, 3, 78,253,107,
- 2,114, 83, 84,146,146, 84, 83, 83, 84,146,146, 84, 83, 3,182,100, 48, 49,162,162,254,248,254,248,162,162, 49, 48,100,168, 6,
- 20,166, 1,252,192,203,116,115,115,116,203,203,116,115,115,116, 0, 2, 0, 0, 0, 0, 4,236, 5,213, 0, 10, 0, 23, 0, 51,
- 64, 12, 23, 11, 25, 0, 25, 16, 46, 5, 11, 28, 21, 22, 47,220,236, 50,252,236,196, 16,204, 49, 64, 9, 5,149, 12,173, 11,129,
- 6,149, 20, 0, 47,236,228,244,236,179, 21, 21, 11, 20, 17, 18, 57, 47, 48, 1, 52, 39, 38, 35, 33, 17, 33, 50, 55, 54, 1, 17,
- 33, 50, 4, 21, 20, 4, 35, 33, 17, 35, 1, 4, 23, 79, 78,163,254,188, 1, 68,163, 78, 79,253,124, 1, 78,251, 1, 16,254,240,
-251,253,232,201, 1, 56, 1,183,139, 68, 67,253,221, 68, 67, 4,168,253,154,218,222,221,218, 4, 68, 1,145, 0, 0, 2, 0, 0,
-255,227, 4,164, 6, 21, 0, 18, 0, 30, 0, 62, 64, 13, 17, 18, 32, 19, 18, 6, 71, 13, 25, 18, 8, 15, 16, 47,220,236, 50, 50,
-244,236,196, 16,204, 49, 64, 14, 0, 22,185, 3,184, 14, 12, 28,185, 9,140, 17,151, 14, 0, 47,228,244,236,196, 16,244,236,196,
-179, 15, 15, 17, 14, 17, 18, 57, 47, 48, 1, 62, 1, 51, 50, 0, 17, 16, 2, 35, 34, 38, 39, 21, 35, 17, 35, 1, 51, 1, 52, 38,
- 35, 34, 6, 21, 20, 22, 51, 50, 54, 1,115, 58,177,123,204, 0,255,255,204,123,177, 58,185,186, 1, 34, 81, 2,114,167,146,146,
-167,167,146,146,167, 3,182,100, 97,254,188,254,248,254,248,254,188, 97,100,168, 4, 68, 1,209,252, 26,203,231,231,203,203,231,
-231, 0, 0, 0, 0, 1, 0,115,255,227, 5, 39, 5,240, 0, 25, 0, 48, 64, 27, 25,134, 0,136, 22,149, 3,145, 26, 13,134, 12,
-136, 16,149, 9,140, 26, 27, 16, 19, 25, 6, 48, 13, 0, 26, 16,220, 60,244,236,236, 49, 0, 16,244,236,244,236, 16,244,236,244,
-236, 48, 19, 62, 1, 51, 32, 0, 17, 16, 0, 33, 34, 38, 39, 53, 30, 1, 51, 32, 0, 17, 16, 0, 33, 34, 6, 7,115,104,237,134,
- 1, 83, 1,134,254,122,254,173,132,237,106,102,231,130, 1, 0, 1, 16,254,240,255, 0,130,231,102, 5, 98, 71, 71,254, 97,254,
-152,254,153,254, 97, 72, 72,211, 95, 94, 1, 57, 1, 39, 1, 40, 1, 57, 94, 95, 0, 1, 0,115,255,227, 6, 90, 7,100, 0, 36,
- 0, 0, 1, 54, 55, 54, 59, 1, 21, 35, 34, 6, 29, 1, 46, 1, 35, 32, 0, 17, 16, 0, 33, 50, 54, 55, 21, 14, 1, 35, 32, 0,
- 17, 16, 0, 33, 50, 23, 22, 4, 97, 16, 83,102,227, 77, 63,134,110,102,231,130,255, 0,254,240, 1, 16, 1, 0,130,231,102,106,
-237,132,254,173,254,122, 1,134, 1, 83,134,118, 13, 5,197,195, 98,122,170,150,194,213, 95, 94,254,199,254,216,254,217,254,199,
- 94, 95,211, 72, 72, 1,159, 1,103, 1,104, 1,159, 36, 3, 0, 0, 1, 0,113,255,227, 4,205, 5,203, 0, 33, 0, 0, 1, 54,
- 55, 54, 59, 1, 21, 35, 34, 6, 29, 1, 46, 1, 35, 34, 6, 16, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 0, 17, 16, 0, 33, 50,
- 3, 49, 9, 70, 82,181, 70, 49,105, 76, 78,157, 80,179,198,198,179, 80,157, 78, 77,165, 93,253,254,214, 1, 45, 1, 6, 72, 4,
-111,169, 83, 96,156, 97,153,172, 43, 43,227,254,102,227, 43, 43,170, 36, 36, 1, 62, 1, 14, 1, 18, 1, 58, 0,255,255, 0, 10,
- 0, 0, 5,186, 5,213, 16, 6, 0,146, 0, 0, 0, 2,255,151, 0, 0, 6, 20, 5,213, 0, 8, 0, 26, 0, 46, 64, 21, 0,149,
- 9,129, 1,149, 16, 8, 2, 16, 10, 0, 5, 25, 13, 50, 0, 28, 9, 4, 27, 16,252,236,244,236, 17, 57, 57, 57, 57, 49, 0, 47,
-236,244,236, 48,178, 96, 19, 1, 1, 93, 1, 17, 51, 32, 0, 17, 16, 0, 33, 37, 33, 32, 0, 17, 16, 0, 41, 1, 17, 34, 6, 29,
- 1, 35, 53, 52, 54, 1,247,244, 1, 53, 1, 31,254,225,254,203,254, 66, 1,159, 1,178, 1,150,254,104,254, 80,254, 97,132,118,
-156,192, 5, 47,251,119, 1, 24, 1, 46, 1, 44, 1, 23,166,254,151,254,128,254,126,254,150, 5, 48, 95,105, 49, 70,181,163, 0,
- 0, 2, 0,201, 0, 0, 4,236, 5,213, 0, 7, 0, 20, 0, 46, 64, 12, 22, 8, 4, 19, 28, 10, 46, 0, 25, 14, 16, 21, 16,252,
-236,244,236, 50,196,196, 49, 64, 12, 19,149, 9,129, 10, 4,149, 18,173, 3,149, 10, 0, 47,236,244,236, 16,244,236, 48, 1, 16,
- 41, 1, 17, 33, 34, 6, 17, 33, 17, 33, 34, 36, 53, 52, 36, 51, 33, 17, 33, 1,158, 1, 64, 1, 68,254,188,163,157, 3, 78,253,
-232,251,254,240, 1, 16,251, 1, 78,253,124, 1,183,254,239, 2, 35,135, 3,147,250, 43,218,222,221,218, 1,192, 0, 2, 0,113,
-255,227, 4, 90, 6, 20, 0, 17, 0, 25, 0, 0, 1, 17, 5, 53, 33, 17, 35, 53, 14, 1, 35, 34, 2, 16, 0, 51, 50, 22, 0, 16,
- 22, 32, 54, 16, 38, 32, 3,162,253,107, 3, 77,184, 58,177,123,204,255, 0,255,204,123,177,253,200,167, 1, 36,167,167,254,220,
- 3,182, 1,185, 1,166,249,236,168,100, 97, 1, 68, 2, 16, 1, 68, 97,254,224,254,106,231,231, 1,150,231, 0, 0, 2, 0,113,
-254, 86, 4,117, 4, 99, 0, 28, 0, 45, 0, 0, 23, 22, 51, 50, 53, 52, 37, 38, 39, 38, 17, 16, 55, 54, 51, 50, 23, 22, 17, 20,
- 7, 6, 7, 22, 21, 16, 33, 34, 39, 1, 54, 55, 54, 53, 52, 39, 38, 35, 34, 6, 21, 20, 23, 22, 23, 22,250,102,239,253,254,248,
-208,117,142,137,137,240,239,138,137,137, 53, 75,156,254, 71,221,120, 1,232, 68, 55, 86, 85, 86,149,147,172, 91, 97,126, 64,203,
- 70,117, 92, 48, 37,112,135, 1, 21, 1, 9,156,157,157,156,254,237,204,165, 64, 36, 79,141,254,240, 70, 1,216, 29, 73,113,204,
-203,114,115,232,190,199, 96,103, 11, 6, 0, 0, 0, 1, 0,131, 0, 0, 4, 69, 5,213, 0, 11, 0, 43, 64, 9, 13, 5, 9, 28,
- 0, 11, 7, 2, 12, 16,220,196,196,212,236, 50,196, 49, 64, 12, 10,149, 11,129, 2, 6,149, 7,173, 3,149, 2, 0, 47,236,244,
-236, 16,244,236, 48, 1, 17, 33, 53, 33, 17, 33, 53, 33, 17, 33, 53, 4, 69,252, 62, 2,248,253, 57, 2,199,253, 26, 5,213,250,
- 43,170, 2, 29,170, 1,186,170, 0, 2, 0,117,255,227, 5,217, 5,240, 0, 19, 0, 26, 0, 68, 64, 38, 1, 20, 0, 8,161, 7,
-174, 4, 0,149, 20, 23,149, 17, 0,149, 20,173, 4,149, 11,145, 17,140, 27, 1, 20, 26, 26, 25, 15, 51, 20, 25, 7, 0, 16, 27,
- 16,252,196,236,244,236, 17, 18, 57, 49, 0, 16,228,244,236,244,228, 16,238, 16,238, 16,244,238, 17, 18, 57, 48, 19, 33, 16, 0,
- 33, 34, 6, 7, 53, 54, 36, 51, 32, 0, 17, 16, 0, 33, 32, 0, 55, 22, 0, 51, 50, 0, 55,117, 4,143,254,237,254,238,139,252,
-112,111, 1, 7,146, 1, 94, 1,139,254,136,254,198,254,183,254,151,220, 13, 0,255,202,202, 0,255, 13, 3, 12, 1, 12, 1, 50,
- 96, 95,215, 70, 72,254,103,254,146,254,159,254, 91, 1,183,204,195,254,228, 1, 28,195, 0, 0, 0, 1, 0,164,255,227, 4,123,
- 5,240, 0, 40, 0, 64, 64, 36, 10,134, 9,136, 13,149, 6,145, 41, 0, 22,149, 19,173, 41, 31,134, 32,136, 28,149, 35,140, 41,
- 42, 20, 9, 31, 16, 25, 3, 25, 25, 38, 16, 41, 16,252,236,212,236,212,196,196,204, 49, 0, 16,244,236,244,236, 16,244,236, 57,
- 16,244,236,244,236, 48, 1, 46, 1, 53, 52, 36, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6, 21, 20, 22, 59, 1, 21, 35, 34, 6, 21,
- 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 32, 36, 53, 52, 54, 1,216,131,142, 1, 12,230, 89,201,115,114,190, 83,152,163,158,149,
-182,174,165,185,199,190,109,200, 84,106,199, 94,254,232,254,208,163, 3, 37, 33,171,124,178,209, 32, 32,180, 38, 36,123,115,112,
-119,166,149,132,143,150, 50, 49,195, 37, 37,242,221,144,196, 0, 0, 1,255,150,254,102, 4, 35, 5,213, 0, 17, 0, 65, 64, 31,
- 17, 8, 18, 13,149, 12,176, 18, 6,149, 4, 2,149, 0,129, 4,173, 18, 17, 8, 0, 7, 12, 5, 1, 7, 3, 28, 0, 4, 18, 16,
-252,236, 50,212,196,196, 17, 18, 57, 57, 49, 0, 16,236,244,236, 16,238, 16,244,236, 16, 57, 57, 48,178, 15, 11, 1, 1, 93, 19,
- 33, 21, 33, 17, 33, 21, 33, 17, 16, 6, 43, 1, 53, 51, 50, 54, 53,201, 3, 90,253,112, 2, 80,253,176,205,227, 77, 63,134,110,
- 5,213,170,254, 72,170,253,159,254,242,244,170,150,194, 0, 0, 0, 1,255,127,254, 86, 2,248, 6, 20, 0, 27, 0,101, 64, 35,
- 19, 10, 15,135, 13,189, 29, 5, 24, 1, 20, 8,169, 6, 1,135, 0,151, 22, 6,188, 28, 2, 27, 7, 0, 7, 9, 5, 8, 21, 23,
- 19, 76, 28, 16,252, 75,176, 10, 84, 88,185, 0, 19, 0, 64, 56, 89, 75,176, 22, 84, 88,185, 0, 19,255,192, 56, 89, 60,196,252,
- 60,196,196, 18, 57, 57, 49, 0, 16,228, 50,252,236, 16,238, 50, 18, 57, 57, 16,244,236, 57, 57, 48, 1,182, 64, 29, 80, 29,160,
- 29, 3, 93, 1, 21, 35, 34, 6, 29, 1, 33, 21, 33, 17, 20, 6, 43, 1, 53, 51, 50, 54, 53, 17, 35, 53, 51, 53, 52, 54, 51, 2,
-248,176, 99, 77, 1, 47,254,209,174,189,174,176, 99, 77,176,176,174,189, 6, 20,153, 80,104, 99,143,251,235,187,171,153, 80,104,
- 4, 42,143, 78,187,171, 0, 0, 0, 1, 0,115,255,227, 6,151, 7,100, 0, 38, 0, 70, 64, 39, 22,149, 21, 39, 0, 5, 36, 1,
-149, 3, 36,149, 8, 26,161, 27, 30,149, 14,145, 8,140, 39, 21, 2, 0, 28, 4, 17, 28, 26, 52, 4, 51, 33, 25, 11, 70, 39, 16,
-252,236,252,244,236, 16,252,196,196, 49, 0, 16,228,244,252,244,204, 16,254,212,238, 17, 57, 57, 16,220,236, 48, 37, 17, 33, 53,
- 33, 17, 6, 4, 35, 32, 0, 17, 16, 0, 33, 50, 22, 23, 52, 54, 59, 1, 21, 35, 34, 6, 29, 1, 46, 1, 35, 32, 0, 17, 16, 0,
- 33, 50, 54, 4,195,254,182, 2, 18,117,254,230,160,254,162,254,117, 1,139, 1, 94, 91,163, 68,201,227, 77, 63,134,110,112,252,
-139,254,238,254,237, 1, 19, 1, 18,107,168,213, 1,145,166,253,127, 83, 85, 1,153, 1,109, 1,110, 1,153, 25, 25,188,234,170,
-150,194,215, 95, 96,254,206,254,209,254,210,254,206, 37, 0, 0, 0, 2, 0, 8,254, 82, 5,118, 5,213, 0, 15, 0, 37, 0,149,
- 64, 13, 39, 80, 18, 1, 18, 4, 25, 23, 12, 25, 31, 36, 38, 16,212,212,236,212,236,212, 93,196,181, 16, 8, 0, 3, 4, 12, 17,
- 18, 23, 57, 49, 64, 10, 0,149, 27,189, 17, 37, 18, 36,129, 38, 0, 16,228, 50, 50, 50,244,236,179, 31, 23, 8, 27, 17, 18, 57,
- 57, 48, 64, 12, 19, 17, 17, 18, 18, 8, 35, 37, 17, 36, 36, 8, 7, 5, 16,236, 60, 7, 16,236, 60,182, 19, 17, 8, 18, 8, 36,
- 8, 7, 8, 16,236,182, 35, 17, 8, 36, 8, 18, 8, 7, 8, 16,236,180, 16, 37, 19, 17, 35, 15, 64, 16, 22, 21, 20, 3, 23, 19,
- 36, 8, 34, 33, 32, 3, 31, 35, 18, 8, 4, 7, 17, 18, 23, 57, 7, 17, 18, 23, 57, 1, 50, 55, 54, 53, 52, 39, 38, 39, 6, 7,
- 6, 21, 20, 23, 22, 19, 1, 51, 1, 22, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 53, 52, 55, 54, 55, 1, 51, 2,191, 54, 44, 28,
- 31, 51, 44, 44, 51, 31, 28, 44, 54, 1,217,222,253,186,104, 67, 46, 75,100,155,155,100, 75, 46, 67,104,253,186,222,254,253, 32,
- 20, 66, 57, 73,121, 92, 92,121, 73, 57, 66, 20, 32, 3,122, 3, 94,251,207,200,174,119, 66,139, 65, 87, 87, 65,139, 66,119,174,
-200, 4, 49, 0, 0, 1, 0,186, 0, 0, 7, 71, 6, 20, 0, 67, 0, 0, 1, 52, 38, 35, 34, 6, 7, 17, 35, 17, 51, 17, 52, 54,
- 51, 50, 22, 21, 17, 20, 23, 22, 59, 1, 50, 63, 1, 53, 51, 63, 2, 53, 51, 55, 53, 51, 53, 55, 51, 53, 63, 2, 54, 53, 52, 39,
- 38, 39, 33, 22, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 35, 7, 6, 39, 38, 53, 4,100,198,193,117,179, 66,185,185,172,149,124,
-124, 81, 82,181, 70,225,142, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 35, 30, 66, 54, 56,114,254,190, 46, 76, 77, 55, 15, 24,
- 66, 88, 88,144, 51,103, 40, 38, 2,164,232,239,100,101, 2, 98,249,236, 2,121,164,190,158,156,254,245,214, 96, 96,146, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 42, 47,119,161,136,110,113,100, 12, 44, 45, 72, 21, 36,100,146,158, 98, 97, 1, 2, 50,
- 49,153, 0, 0, 0, 1, 0,201, 0, 0, 2,198, 5,213, 0, 11, 0, 46, 64, 16, 11, 2, 0, 6,149, 0,129, 7, 5, 8, 6, 1,
- 28, 0, 4, 12, 16,252, 75,176, 16, 84, 88,185, 0, 0, 0, 64, 56, 89,236,196, 57, 57, 49, 0, 47,228,236, 17, 57, 57, 48, 1,
- 19, 51, 17, 20, 22, 59, 1, 21, 35, 34, 38, 17,201,202,110,134, 63, 77,227,205, 5,213,252, 45,194,150,170,244, 1, 14, 0, 0,
- 0, 1, 0, 10, 0, 0, 2, 82, 5,213, 0, 11, 0, 69, 64, 17, 2, 11,149, 5, 8, 0,175, 6, 3, 5, 1, 28, 10, 8, 0, 4,
- 12, 16,252, 60,196, 75,176, 16, 84, 88,187, 0, 8, 0, 64, 0, 0, 0, 64, 56, 56, 89,236, 50,196, 49, 0, 47,236,220, 60,244,
- 50, 48, 1, 64, 13, 48, 13, 64, 13, 80, 13, 96, 13,143, 13,159, 13, 6, 93, 19, 51, 17, 51, 21, 35, 17, 35, 17, 35, 53, 51,201,
-202,191,191,202,191,191, 5,213,253, 22,170,253,191, 2, 65,170, 0, 1, 0,201, 0, 0, 5,221, 5,222, 0, 18, 0, 0, 1, 54,
- 31, 1, 55, 39, 38, 7, 6, 7, 1, 17, 35, 17, 51, 17, 1, 33, 1, 4, 80, 62, 58,172,105,237, 96, 76, 53, 71,253,203,202,202,
- 2,205, 1, 10,252,230, 4,254, 59, 33,141,116,176, 72, 39, 27, 67,253,236, 2,119,250, 43, 2,207,253, 49, 3, 29, 0, 0, 0,
- 0, 1, 0,185, 0, 0, 4,156, 6, 20, 0, 18, 0,193, 64, 44, 16, 17, 13, 14, 13, 15, 17, 14, 14, 13, 11, 17, 12, 13, 12, 10,
- 17, 13, 13, 12, 66, 16, 13, 10, 3, 6,149, 3,151, 11,188, 17, 14, 4, 13, 9, 12, 14, 16, 9, 8, 0, 70, 19, 16,252,236, 50,
-212,196, 17, 57,196, 49, 0, 47, 60,228,252,228, 23, 57, 48, 75, 83, 88, 7, 16, 4,237, 7, 16, 5,237, 7, 16, 5,237, 7, 16,
- 4,237, 89, 34,178, 16, 12, 1, 1, 93, 64, 95, 4, 10, 10, 16, 22, 10, 39, 10, 41, 13, 43, 16, 86, 10,102, 10,103, 16,115, 10,
-119, 13,130, 10,137, 13,142, 16,147, 10,150, 13,151, 16,163, 10, 18, 17, 5, 17, 6, 10, 11, 11, 10, 15, 40, 11, 39, 12, 40, 13,
- 43, 14, 43, 15, 64, 20,104, 11, 96, 20,137, 11,133, 12,137, 13,141, 14,143, 15,154, 11,151, 15,170, 11,167, 13,182, 15,197, 15,
-214, 15,247, 11,240, 11,247, 12,240, 12, 26, 93,113, 0, 93, 19, 52, 54, 59, 1, 21, 35, 34, 6, 21, 17, 1, 51, 9, 1, 35, 1,
- 17, 35,185,163,181,191,168,105, 76, 2, 37,235,253,174, 2,107,240,253,199,185, 4,126,214,192,156, 97,153,253,255, 1,227,253,
-244,253,172, 2, 35,253,221, 0, 0, 1, 0, 10, 0, 0, 2, 42, 6, 20, 0, 11, 0, 50, 64, 7, 5, 1, 8, 8, 0, 70, 12, 16,
-252, 60,236, 50, 49, 0, 64, 8, 2, 11,169, 5, 8, 0,151, 6, 47,236,212, 60,236, 50, 48, 64, 13, 16, 13, 64, 13, 80, 13, 96,
- 13,112, 13,240, 13, 6, 1, 93, 19, 51, 17, 51, 21, 35, 17, 35, 17, 35, 53, 51,193,184,177,177,184,183,183, 6, 20,253, 56,144,
-253, 68, 2,188,144, 0, 0, 0, 0, 1, 0, 61, 0, 0, 4,127, 6, 20, 0, 15, 0, 0, 51, 1, 39, 5, 39, 37, 39, 51, 23, 37,
- 23, 5, 1, 35, 9, 1, 61, 1,235, 71,254,212, 33, 1, 41, 75,200, 52, 1, 58, 33,254,201, 1,237,195,254,198,254,126, 4, 50,
-188,101, 99, 99,197,138,104, 97,104,250,215, 3, 60,252,196, 0, 0, 1, 0,178,255,227, 7, 39, 5,213, 0, 35, 0, 0, 37, 14,
- 1, 35, 34, 38, 53, 17, 51, 17, 20, 23, 22, 51, 50, 54, 53, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 35, 53, 14, 1, 35,
- 34, 38, 3,166, 69,192,130,175,190,203, 39, 57,117,143,166,203,114,119,123,166,203,203, 63,176,121,122,171,213,124,118,245,226,
- 4, 27,251,239,186, 53, 78,190,164, 3,236,251,239,162,155,191,163, 3,236,250, 41,174,103, 98,124, 0, 0, 0, 0, 1,255,150,
-254,102, 5, 51, 5,213, 0, 17, 0,140, 64, 41, 7, 17, 1, 2, 1, 2, 17, 6, 7, 6, 66, 8, 17, 0, 13,149, 12,176, 18, 7,
- 2, 3, 0,175, 5, 6, 1, 7, 2, 28, 4, 54, 11, 14, 12, 57, 7, 28, 0, 4, 18, 16,252,236,228, 57, 57,252,236, 17, 57, 57,
- 49, 0, 47,236, 50, 57, 57, 16,252,236, 17, 57, 57, 48, 75, 83, 88, 7, 16, 4,237, 7, 16, 4,237, 89, 34,178, 31, 11, 1, 1,
- 93, 64, 48, 54, 2, 56, 7, 72, 2, 71, 7,105, 2,102, 7,128, 2, 7, 6, 1, 9, 6, 21, 1, 26, 6, 70, 1, 73, 6, 87, 1,
- 88, 6,101, 1,105, 6,121, 6,133, 1,138, 6,149, 1,154, 6,159, 19, 16, 93, 0, 93, 19, 33, 1, 17, 51, 17, 33, 1, 17, 16,
- 6, 43, 1, 53, 51, 50, 54, 53,201, 1, 16, 2,150,196,254,240,253,106,205,227, 71, 63,134,110, 5,213,251, 31, 4,225,250, 43,
- 4,225,251,135,254,242,244,170,150,194, 0, 0,255,255, 0,186,254, 86, 4,100, 4,123, 16, 6, 2,213, 0, 0, 0, 3, 0,115,
-255,227, 5,217, 5,240, 0, 11, 0, 18, 0, 25, 0, 47, 64, 11, 25, 16, 25, 6, 51, 15, 19, 25, 0, 16, 26, 16,252,236, 50,244,
-236, 50, 49, 0, 64, 14, 22,149, 9, 15,149, 19,173, 12,149, 3,145, 9,140, 26, 16,228,244,236,244,228, 16,236, 48, 19, 16, 0,
- 33, 32, 0, 17, 16, 0, 33, 32, 0, 1, 34, 2, 7, 33, 38, 2, 1, 22, 0, 51, 50, 0, 55,115, 1,121, 1, 59, 1, 58, 1,120,
-254,136,254,198,254,197,254,135, 2,180,232,239, 6, 3,186, 6,239,253, 66, 13, 0,255,202,202, 0,255, 13, 2,233, 1, 98, 1,
-165,254, 91,254,158,254,159,254, 91, 1,164, 3,197,254,172,236,236, 1, 84,253, 26,195,254,228, 1, 28,195, 0,255,255, 0,103,
-255,227, 6,195, 5,240, 16, 38, 0, 50,244, 0, 16, 7, 2, 99, 6, 72, 0, 11,255,255, 0,118,255,227, 4,211, 4,235, 16, 39,
- 2, 99, 4, 88, 0, 11, 16, 6, 0, 82, 5, 0, 0, 2, 0,115,255,227, 6,207, 5,240, 0, 10, 0, 30, 0, 0, 1, 34, 0, 17,
- 16, 0, 51, 50, 55, 17, 38, 1, 17, 52, 38, 35, 17, 6, 33, 32, 0, 16, 0, 33, 50, 23, 33, 50, 22, 25, 1, 3, 39,220,254,253,
- 1, 3,220,175,128,138, 2, 57,110,122,188,254,198,254,197,254,135, 1,121, 1, 59,112, 97, 1, 39,227,205, 5, 76,254,184,254,
-229,254,230,254,184,164, 3,125,164,250,180, 3,211,194,150,251,139,211, 1,164, 2,196, 1,165, 27,244,254,242,252, 45, 0, 0,
- 0, 2, 0,113,254, 86, 5, 89, 4,123, 0, 9, 0, 30, 0, 0, 1, 38, 7, 6, 16, 22, 32, 55, 17, 38, 1, 17, 52, 38, 35, 17,
- 6, 35, 34, 0, 17, 16, 0, 51, 50, 23, 51, 50, 22, 21, 17, 2,115,147, 87, 86,171, 1, 42, 44, 44, 1,153, 76,105,137,240,241,
-254,239, 1, 17,241,100, 82,216,181,163, 3,223, 2,117,116,254,110,231, 89, 2,168, 95,250,119, 4,116,153, 97,252,188,157, 1,
- 57, 1, 19, 1, 20, 1, 56, 27,192,214,251,140, 0, 2,255,151, 0, 0, 4,241, 5,213, 0, 8, 0, 28, 0, 58, 64, 24, 1,149,
- 16, 0,149, 9,129, 18, 16, 10, 8, 2, 4, 0, 5, 25, 13, 63, 17, 0, 28, 9, 4, 29, 16,252,236, 50,252,236, 17, 23, 57, 49,
- 0, 47,244,236,212,236, 48, 64, 11, 15, 21, 31, 21, 63, 21, 95, 21,175, 21, 5, 1, 93, 1, 17, 51, 50, 54, 53, 52, 38, 35, 37,
- 33, 50, 4, 21, 20, 4, 43, 1, 17, 35, 17, 34, 6, 29, 1, 35, 53, 52, 54, 1,247,254,141,154,154,141,254, 56, 1,200,251, 1,
- 1,254,255,251,254,202,132,118,156,192, 5, 47,253,207,146,135,134,146,166,227,219,221,226,253,168, 5, 48, 95,105, 49, 70,181,
-163, 0, 0, 0, 0, 2, 0,184,254, 86, 4,164, 6, 20, 0, 24, 0, 36, 0, 79, 64, 36, 35,185, 0, 23, 29,185, 14, 17,184, 23,
-140, 1,189, 37, 3, 12, 9,169, 6,151, 37, 26, 18, 20, 71, 6, 9, 3, 7, 32, 12, 0, 8, 2, 70, 37, 16,252,236, 50, 50,204,
- 17, 57, 57,244,236, 49, 0, 16,244,236, 57, 57, 16,228,228,244,196,236, 16,196,238, 48, 64, 9, 96, 39,128, 39,160, 39,224, 39,
- 4, 1, 93, 37, 17, 35, 3, 52, 54, 59, 1, 21, 35, 34, 6, 29, 1, 62, 1, 51, 50, 0, 17, 16, 2, 35, 34, 38, 1, 52, 38, 35,
- 34, 6, 21, 20, 22, 51, 50, 54, 1,115,185, 1,163,181,254,231,105, 76, 58,177,123,204, 0,255,255,204,123,177, 2, 56,167,146,
-146,167,167,146,146,167,168,253,174, 6, 40,214,192,156, 97,153,200,100, 97,254,188,254,248,254,248,254,188, 97, 1,235,203,231,
-231,203,203,231,231, 0, 0, 0, 0, 2, 0,201,254, 86, 4,166, 5,213, 0, 29, 0, 38, 0, 0, 19, 51, 17, 51, 50, 4, 16, 7,
- 6, 7, 22, 23, 19, 22, 23, 22, 59, 1, 21, 35, 34, 39, 38, 39, 3, 38, 43, 1, 17, 35, 1, 51, 50, 54, 16, 38, 43, 1, 17,201,
-202,254,251, 1, 1,129,101,178, 10, 9,144, 54, 39, 42, 76, 59, 98,127, 71, 74, 78,153, 21, 46,119,202, 1, 2,198,141,154,153,
-142,254, 5,213,254,248,225,254, 72,113, 89, 19, 20, 23,254,146,136, 34, 36,154, 61, 63,198, 1,133, 53,254,174, 1,248,146, 1,
- 12,145,253,209, 0, 1, 0, 69,255,227, 4, 96, 5,240, 0, 39, 0, 0, 19, 62, 1, 51, 50, 4, 21, 20, 6, 15, 1, 14, 1, 21,
- 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 32, 36, 53, 52, 54, 63, 1, 62, 1, 53, 52, 38, 35, 34, 6, 7,159,114,218,105,245, 1,
- 23,202,226,123,154,135,188,173,114,236,123,128,239,106,254,231,254,221,215,226,122,166,119,179,165, 95,204,115, 5,164, 38, 38,
-228,198,171,192, 45, 24, 31,124,110,126,136, 70, 69,208, 47, 48,224,217,182,217, 43, 25, 31,101, 99,118,128, 54, 55, 0, 0, 0,
- 0, 1, 0,100,255,227, 3,188, 4,123, 0, 39, 0,207, 64, 17, 10, 30, 29, 9, 13, 33, 20, 33, 8, 6, 13, 8, 0, 82, 26, 69,
- 40, 16,252,228,236,212,236,196, 17, 18, 57, 57, 57, 57, 49, 64, 25, 30, 29, 10, 9, 4, 19, 0,134, 39,137, 36, 20,134, 19,137,
- 16,185, 23, 36,185, 3,184, 23,140, 40, 0, 16,228,244,236, 16,254,245,238, 16,245,238, 18, 23, 57, 48, 64, 18, 27, 28, 2, 26,
- 29, 83, 9, 10, 32, 31, 2, 33, 30, 83, 10, 10, 9, 66, 75, 83, 88, 7, 16, 14,237, 17, 23, 57, 7, 14,237, 17, 23, 57, 89, 34,
-178, 0, 1, 1, 1, 93, 64, 17, 47, 41, 63, 41, 95, 41,127, 41,128, 41,144, 41,160, 41,240, 41, 8, 93, 64, 37, 32, 0, 32, 39,
- 36, 38, 40, 30, 40, 29, 42, 21, 47, 20, 47, 19, 42, 18, 40, 10, 40, 9, 41, 8, 41, 7, 36, 1,134, 30,134, 29,134, 28,134, 27,
- 18, 0, 93, 64, 23, 28, 30, 28, 29, 28, 28, 46, 31, 44, 30, 44, 29, 44, 28, 59, 31, 59, 30, 59, 29, 59, 28, 11,113, 19, 62, 1,
- 51, 50, 22, 21, 20, 6, 15, 1, 14, 1, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 53, 52, 54, 63, 1, 62, 1, 53, 52,
- 38, 35, 34, 6, 7,160, 76,180,102,206,224,152,171, 64,171,101,140,130, 97,198,102,108,195, 90,216,247,165,196, 63,148, 98,137,
-137, 90,168, 78, 4, 63, 30, 30,172,158,130,149, 36, 15, 37, 80, 75, 81, 89, 53, 53,190, 35, 35,182,156,137,153, 42, 14, 33, 73,
- 64, 84, 84, 40, 40, 0, 0, 0,255,255, 0,201, 0, 0, 4,139, 5,213, 16, 6, 2,193, 0, 0, 0, 2,254,242,254, 86, 2,215,
- 6, 20, 0, 8, 0, 33, 0, 0, 19, 38, 39, 38, 35, 34, 7, 6, 51, 5, 3, 20, 23, 22, 59, 1, 21, 35, 34, 39, 38, 53, 17, 35,
- 32, 53, 52, 33, 50, 23, 22, 23, 51, 21,180, 7, 18, 33,110,124, 3, 3,119, 1,120, 2, 39, 37,100,176,174,195, 81, 87,190,254,
-242, 1, 47,181, 82, 53, 18,191, 5, 4, 45, 23, 48, 65, 51,154,251, 61,103, 41, 40,153, 86, 92,180, 4,174,210,216, 96, 64,111,
-155, 0, 0, 0, 0, 1, 0, 55,254, 86, 2,242, 5,158, 0, 29, 0, 0, 1, 17, 33, 21, 33, 17, 20, 22, 59, 1, 21, 20, 6, 43,
- 1, 53, 51, 50, 54, 61, 1, 35, 34, 38, 53, 17, 35, 53, 51, 17, 1,119, 1,123,254,133, 75,115,189,164,180, 70, 48,106, 76, 5,
-213,162,135,135, 5,158,254,194,143,253,160,137, 78,174,214,192,156, 97,153, 20,159,210, 2, 96,143, 1, 62, 0, 0, 1, 0, 24,
- 0, 0, 4,233, 5,213, 0, 15, 0, 88, 64, 21, 13, 10, 12, 6, 2,149, 0,129, 4, 0, 7, 1, 64, 3, 28, 5, 11, 28, 13, 5,
- 16, 16,212,212,236, 16,252,228, 57, 57, 49, 0, 47,244,236, 50,196, 57, 57, 48, 1, 75,176, 10, 84, 88,189, 0, 16, 0, 64, 0,
- 1, 0, 16, 0, 16,255,192, 56, 17, 55, 56, 89, 64, 19, 0, 17, 31, 0, 16, 1, 16, 2, 31, 7, 16, 17, 64, 17,112, 17,159, 17,
- 9, 93, 1, 33, 21, 33, 17, 35, 17, 35, 34, 6, 29, 1, 35, 53, 52, 54, 1,174, 3, 59,253,238,203, 94,132,118,156,192, 5,213,
-170,250,213, 5, 43, 90,105, 49, 70,181,163, 0, 0, 1, 0, 55, 0, 0, 2,242, 6, 20, 0, 27, 0, 73, 64, 16, 25, 22, 11, 8,
- 4, 23, 9, 2, 4, 0, 8, 16, 19, 14, 70, 28, 16,252, 60,196,252, 60,196, 50, 50, 23, 57, 49, 0, 64, 19, 19, 0, 25,135, 22,
-151, 10, 14, 5, 8, 15, 3,169, 17, 1,188, 8,135, 10, 47,236,244, 60,236, 50, 17, 57, 57, 16,244,236, 57, 57, 48,178,175, 21,
- 1, 1, 93, 1, 21, 33, 21, 33, 17, 20, 22, 59, 1, 21, 35, 34, 38, 53, 17, 35, 53, 51, 53, 52, 54, 59, 1, 21, 35, 34, 6, 1,
-119, 1,123,254,133, 75,115,189,189,213,162,135,135,174,189,174,176, 99, 77, 4,195, 99,143,253,160,137, 78,154,159,210, 2, 96,
-143, 78,187,171,153, 81, 0, 0, 0, 1,255,250,254,102, 4,233, 5,213, 0, 15, 0, 84, 64, 20, 7,149, 10,189, 16, 14, 2,149,
- 0,129, 16, 8, 1, 64, 3, 28, 0, 64, 13, 16, 16,212,228,252,228,196, 49, 0, 16,244,236, 50, 16,244,236, 48, 1, 75,176, 10,
- 84, 88,189, 0, 16, 0, 64, 0, 1, 0, 16, 0, 16,255,192, 56, 17, 55, 56, 89, 64, 19, 0, 17, 31, 0, 16, 1, 16, 2, 31, 15,
- 16, 17, 64, 17,112, 17,159, 17, 17, 93, 3, 33, 21, 33, 17, 20, 22, 59, 1, 21, 35, 34, 38, 25, 1, 33, 6, 4,239,253,238,110,
-134, 63, 78,227,205,253,238, 5,213,170,251, 61,194,150,170,244, 1, 14, 4,195,255,255, 0,173,255,247, 6, 95, 5,233, 16, 38,
- 0, 56,251, 20, 16, 7, 2, 99, 5,228, 0, 11,255,255, 0,176,255,227, 5,105, 4,235, 16, 39, 2, 99, 4,238, 0, 11, 16, 6,
- 0, 88, 2, 0, 0, 1, 0, 78,255,227, 5,207, 5,202, 0, 31, 0, 58, 64, 16, 3, 6, 25, 40, 16, 0, 28, 51, 22, 15, 12, 25,
- 18, 22, 16, 32, 16,252,196,252,196, 16,244,196,236,252,196, 49, 0, 64, 14, 19, 15, 31, 3,149, 2, 16,129, 32, 9,149, 25,140,
- 32, 16,244,236, 16,252, 60,236, 50, 50, 50, 48, 1, 53, 33, 21, 22, 18, 21, 20, 0, 35, 34, 0, 53, 52, 18, 55, 53, 33, 21, 33,
- 6, 2, 21, 16, 0, 33, 32, 0, 17, 52, 2, 39, 5,207,253,168,177,198,254,248,216,216,254,247,199,178,253,168, 1, 63,158,145,
- 1,127, 1, 49, 1, 47, 1,129,142,161, 5, 24,178,178, 97,254,180,202,240,254,222, 1, 35,239,202, 1, 76, 97,178,178,139,254,
-214,184,254,194,254,118, 1,137, 1, 53,194, 1, 40,141, 0, 0, 0, 1, 0,201,255,254, 5,118, 5,213, 0, 26, 0, 0, 37, 35,
- 34, 38, 53, 17, 35, 17, 16, 23, 22, 31, 1, 32, 0, 17, 52, 2, 47, 1, 21, 22, 23, 22, 21, 20, 0, 2,198, 63,134,110,202,103,
- 97,232, 77, 1, 47, 1,129,142,161,179,110, 65, 99,254,248,170,150,194, 3,211,252, 45,254,242,122,116, 6, 2, 1,137, 1, 53,
-194, 1, 40,141, 1, 68, 87,109,166,202,240,254,222, 0, 0, 0, 0, 1,255,252, 0, 0, 5,220, 5,237, 0, 16, 0, 0, 9, 1,
- 54, 55, 54, 23, 5, 7, 39, 6, 7, 1, 17, 35, 17, 1, 51, 2,115, 1, 72, 52, 49, 66,109, 1, 13, 78,198, 85, 38,254,138,203,
-253,240,217, 3,111, 1,235, 78, 40, 54, 49,122,135,101, 6, 57,253,205,253, 57, 2,199, 3, 14, 0, 1, 0, 61,254, 86, 5,150,
- 4,112, 0, 23, 0, 0, 5, 14, 1, 43, 1, 53, 51, 50, 54, 63, 1, 1, 51, 9, 1, 54, 55, 54, 31, 1, 7, 39, 38, 7, 2,147,
- 78,148,124,147,108, 76, 84, 51, 33,254, 59,195, 1, 94, 1, 23, 50, 81, 97,101,215, 53,195, 81, 28,104,200,122,154, 72,134, 84,
- 4, 78,252,148, 2,187,126, 41, 50, 48,101,147, 94, 39, 69, 0, 0, 1, 0, 92, 0, 0, 5, 31, 5,213, 0, 17, 0, 0, 19, 33,
- 21, 1, 33, 21, 33, 1, 33, 21, 33, 53, 1, 33, 53, 33, 1, 33,115, 4,149,254,112, 1, 25,254,115,254, 84, 3,199,251, 61, 1,
-185,254,213, 1,159, 1,131,252,103, 5,213,154,254, 17,144,253,238,170,154, 2, 34,144, 1,223, 0, 1, 0, 88, 0, 0, 3,219,
- 4, 96, 0, 17, 0, 0, 19, 33, 21, 3, 51, 21, 33, 1, 33, 21, 33, 53, 1, 35, 53, 33, 1, 33,113, 3,106,251,194,254,194,254,
-195, 2,180,252,125, 1, 43,212, 1, 80, 1, 13,253,101, 4, 96,168,254,220,144,254,143,147,168, 1, 92,144, 1, 57, 0, 0, 0,
- 0, 1, 0,160,255,193, 4,248, 5,213, 0, 37, 0, 0, 37, 50, 55, 54, 53, 52, 39, 38, 43, 1, 53, 1, 33, 53, 33, 21, 1, 50,
- 23, 22, 23, 22, 21, 20, 15, 1, 6, 7, 6, 33, 34, 39, 38, 39, 53, 22, 23, 22, 2,168,192, 99,100, 92, 93,165,174, 1,129,252,
-252, 4, 0,254,101,106,128, 98, 86, 81, 59, 28, 20, 45,152,254,232,119,125,126,134,106,127,126,107, 75, 75,143,134, 73, 74,166,
- 1,220,170,168,254, 36, 56, 42,109,104,138,151, 85, 41, 29, 36,121, 19, 18, 37,195, 49, 25, 25, 0, 1, 0, 92,255,193, 4,180,
- 5,213, 0, 37, 0, 0, 37, 50, 55, 54, 55, 21, 6, 7, 6, 35, 32, 39, 38, 47, 1, 38, 53, 52, 55, 54, 55, 54, 51, 1, 53, 33,
- 21, 33, 1, 21, 35, 34, 7, 6, 21, 20, 23, 22, 2,172,137,126,127,106,134,126,125,119,254,232,152, 45, 20, 28, 59, 81, 86, 98,
-128,106,254,101, 4, 0,252,252, 1,129,174,165, 93, 92,100, 99,107, 25, 25, 49,195, 37, 18, 19,121, 36, 29, 41, 85,151,138,104,
-109, 42, 56, 1,220,168,170,254, 36,166, 74, 73,134,143, 75, 75, 0, 1, 0,104,254, 76, 4, 63, 4, 96, 0, 36, 0, 0, 1, 34,
- 7, 6, 7, 6, 21, 20, 31, 1, 22, 23, 22, 33, 50, 55, 54, 55, 53, 14, 1, 35, 34, 39, 38, 53, 52, 55, 54, 59, 1, 53, 1, 33,
- 53, 33, 21, 2, 91,106,128, 98, 86, 81, 59, 28, 28, 37,152, 1, 24, 94, 99,100,106, 84,200,109,190, 99,100, 92, 93,165,174,254,
- 82, 2,155,252,150, 1,220, 56, 42,109,104,138,138, 98, 41, 36, 29,121, 18, 19, 37,195, 49, 50, 75, 75,143,132, 75, 74,166, 1,
-243,147,168, 0, 0, 1, 0,113,254, 86, 3,232, 4, 96, 0, 31, 0, 0, 1, 50, 55, 54, 55, 21, 6, 7, 6, 35, 32, 17, 52, 37,
- 36, 53, 52, 35, 33, 1, 33, 53, 33, 21, 1, 32, 21, 16, 5, 6, 21, 20, 2,127, 84, 77, 79, 81, 87, 80, 86, 97,254, 32, 1,150,
- 1, 28,235,254,222, 1,229,253,101, 3,106,254,158, 1,111,254, 48,226,254,238, 21, 21, 44,179, 32, 13, 14, 1, 25,238, 53, 37,
- 98,124, 2, 56,147,168,254,100,229,254,236, 49, 24, 97,139, 0, 0, 1, 0,150, 0, 0, 4, 74, 5,240, 0, 34, 0, 0, 37, 33,
- 21, 33, 53, 1, 55, 33, 53, 33, 54, 55, 54, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 4, 21, 20, 7, 6, 7, 51, 21, 35,
- 7, 1,137, 2,193,252, 76, 1, 58,115,254,167, 1,226, 95, 37, 39,167,134, 95,211,120,122,212, 88,232, 1, 20, 34, 31, 74,104,
-236, 48,170,170,170, 1, 64,117,144,109, 72, 76, 73,119,150, 66, 67,204, 49, 50,232,194, 92, 82, 73, 96,144, 49, 0, 1, 0, 93,
-255,193, 4,249, 5,213, 0, 40, 0, 0, 1, 50, 23, 22, 23, 22, 21, 20, 15, 1, 6, 7, 6, 33, 32, 39, 38, 47, 1, 38, 53, 51,
- 20, 23, 22, 32, 55, 54, 53, 52, 39, 38, 35, 33, 21, 35, 17, 33, 21, 33, 17, 3, 6,104,130, 99, 85, 81, 59, 28, 20, 45,152,254,
-232,254,220,152, 45, 20, 28, 59,201,100, 99, 1,124, 99,100, 92, 93,165,254,193,202, 3,161,253, 41, 3, 81, 56, 43,108,104,138,
-151, 85, 41, 29, 36,121,121, 36, 29, 41, 85,151,143, 75, 75, 75, 75,143,134, 73, 74, 1, 3, 45,170,254, 37, 0, 0, 1, 0,104,
-254, 76, 4, 63, 4, 96, 0, 37, 0, 0, 1, 50, 23, 22, 23, 22, 21, 20, 15, 1, 6, 7, 6, 33, 34, 39, 38, 39, 53, 30, 1, 51,
- 50, 55, 54, 53, 52, 39, 38, 35, 33, 53, 51, 19, 33, 21, 33, 3, 2, 76,105,129, 99, 85, 81, 59, 28, 20, 45,152,254,232, 94, 99,
-100,106, 84,200,109,190, 99,100, 92, 93,165,254,158, 1, 3, 3, 22,253,162, 3, 1,220, 56, 43,108,104,138,151, 85, 41, 29, 36,
-121, 18, 19, 37,195, 49, 50, 75, 75,143,134, 73, 74,168, 2,132,170,254, 38, 0, 0, 1, 0, 88,255,227, 3,165, 5,158, 0, 36,
- 0, 0, 1, 7, 22, 23, 22, 21, 20, 7, 6, 33, 34, 39, 38, 39, 53, 22, 23, 22, 51, 50, 55, 54, 55, 52, 39, 38, 43, 1, 19, 35,
- 53, 51, 17, 51, 17, 51, 21, 2, 33, 2,170,112,108,110,137,254,237, 85, 81, 81, 76, 73, 84, 78, 80,179, 99, 57, 1, 58, 86,192,
- 62, 2,229,229,202,231, 3,230,125, 30,119,115,170,186,125,157, 18, 17, 35,172, 40, 24, 22,114, 65,133, 98, 76,114, 1, 15,164,
- 1, 20,254,236,164, 0, 0, 0, 0, 2, 0,186,254, 86, 4,164, 4,123, 0, 14, 0, 23, 0, 0, 5, 17, 35, 17, 51, 21, 54, 55,
- 54, 51, 50, 23, 22, 21, 16, 1, 0, 53, 52, 39, 38, 35, 34, 7, 1,115,185,185, 52,135, 81,210,184, 77, 78,252,207, 2,114, 57,
- 56,120,220,173,122,254,208, 6, 10,170, 66, 82, 49,112,113,153,254, 87,254,228, 1,144,249,133, 66, 65,239, 0, 0, 1, 0,201,
-254, 86, 1,147, 5,213, 0, 3, 0, 0, 19, 51, 17, 35,201,202,202, 5,213,248,129, 0, 0, 0,255,255, 0,201,254, 86, 3, 39,
- 5,213, 16, 39, 1,130, 1,148, 0, 0, 16, 6, 1,130, 0, 0, 0, 1, 0, 20,254, 86, 3,156, 5,213, 0, 19, 0, 0, 1, 51,
- 17, 33, 21, 33, 21, 33, 21, 33, 17, 35, 17, 33, 53, 33, 53, 33, 53, 33, 1,115,202, 1, 95,254,161, 1, 95,254,161,202,254,161,
- 1, 95,254,161, 1, 95, 5,213,253,151,168,240,170,253, 44, 2,212,170,240,168,255,255, 0,201, 0, 0, 1,148, 5,213, 16, 6,
- 0, 4,148, 0,255,255, 0,201, 0, 0, 10,208, 5,213, 16, 39, 1, 63, 5,177, 0, 0, 16, 6, 0, 39, 0, 0,255,255, 0,201,
- 0, 0, 9,176, 6,102, 16, 39, 1, 64, 5,213, 0, 0, 16, 6, 0, 39, 0, 0,255,255, 0,113,255,227, 8,145, 6,102, 16, 39,
- 1, 64, 4,182, 0, 0, 16, 6, 0, 71, 0, 0,255,255, 0,201,254,102, 6, 36, 5,213, 16, 39, 0, 45, 4,145, 0, 0, 16, 6,
- 0, 47, 0, 0,255,255, 0,201,254, 86, 5,222, 6, 20, 16, 39, 0, 77, 4,101, 0, 0, 16, 6, 0, 47, 0, 0,255,255, 0,193,
-254, 86, 2,239, 6, 20, 16, 39, 0, 77, 1,118, 0, 0, 16, 6, 0, 79, 0, 0,255,255, 0,201,254,102, 6,242, 5,213, 16, 39,
- 0, 45, 5, 95, 0, 0, 16, 6, 0, 49, 0, 0,255,255, 0,201,254, 86, 6,183, 6, 20, 16, 39, 0, 77, 5, 62, 0, 0, 16, 6,
- 0, 49, 0, 0,255,255, 0,186,254, 86, 5,222, 6, 20, 16, 39, 0, 77, 4,101, 0, 0, 16, 6, 0, 81, 0, 0,255,255, 0, 16,
- 0, 0, 5,104, 5,213, 18, 38, 0, 36, 0, 0, 17, 7, 6,137, 4,190, 1,117, 0, 6,177, 14, 0, 16, 60, 49,255,255, 0,123,
-255,227, 4, 45, 6,102, 18, 38, 0, 68, 0, 0, 17, 6, 2, 32, 90, 0, 0, 8,180, 11, 43, 39, 20, 7, 43, 49,255,255, 0,201,
- 0, 0, 1,147, 5,213, 18, 38, 0, 44, 0, 0, 17, 7, 6,137, 3, 47, 1,117, 0, 11,180, 7, 32, 1, 0, 0, 16, 73, 99, 58,
- 49, 0, 0, 0,255,255,255,224, 0, 0, 2, 94, 6,102, 18, 38, 0,243, 0, 0, 17, 7, 2, 32,255, 31, 0, 0, 0, 11,180, 7,
- 32, 1, 0, 0, 16, 73, 99, 58, 49, 0, 0, 0,255,255, 0,115,255,227, 5,217, 5,240, 18, 38, 0, 50, 0, 0, 16, 7, 6,137,
- 5, 39, 1,117,255,255, 0,113,255,227, 4,117, 6,102, 18, 38, 0, 82, 0, 0, 17, 6, 2, 32,118, 0, 0, 6,177, 27, 12, 16,
- 60, 49, 0, 0,255,255, 0,178,255,227, 5, 41, 5,213, 18, 38, 0, 56, 0, 0, 17, 7, 6,137, 4,246, 1,117, 0, 6,177, 21,
- 5, 16, 60, 49,255,255, 0,174,255,227, 4, 88, 6,102, 18, 38, 0, 88, 0, 0, 17, 6, 2, 32,118, 0, 0, 11,180, 23, 32, 11,
- 1, 1, 16, 73, 99, 58, 49, 0,255,255, 0,178,255,227, 5, 41, 5,213, 16, 38, 6,143, 48, 0, 18, 2, 0, 56, 0, 0, 0, 0,
-255,255, 0,174,255,227, 4, 88, 7, 49, 16, 39, 0,113, 0,123, 1, 59, 18, 6, 0,190, 0, 0,255,255, 0,178,255,227, 5, 41,
- 5,213, 16, 38, 0, 56, 0, 0, 16, 6, 6,146, 54, 0, 0, 0,255,255, 0,174,255,227, 4, 88, 4, 96, 16, 38, 0, 88, 0, 0,
- 16, 7, 6,146,255,190,254,200,255,255, 0,178,255,227, 5, 41, 5,213, 16, 38, 0, 56, 0, 0, 16, 6, 6,151, 48, 0, 0, 0,
-255,255, 0,174,255,227, 4, 88, 4, 96, 16, 38, 0, 88, 0, 0, 16, 7, 6,151,255,196,254,200,255,255, 0,178,255,227, 5, 41,
- 5,213, 16, 38, 0, 56, 0, 0, 16, 6, 6,147, 48, 6, 0, 0,255,255, 0,174,255,227, 4, 88, 4, 96, 16, 38, 0, 88, 0, 0,
- 16, 7, 6,147,255,190,254,200,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6, 2, 4, 0, 0,255,255, 0, 16, 0, 0, 5,104,
- 5,213, 18, 34, 0, 36, 0, 0, 16, 6, 6,143, 0, 0, 0, 0,255,255, 0,123,255,227, 4, 45, 7, 49, 18, 38, 0,166, 0, 0,
- 16, 7, 0,113, 0, 82, 1, 59,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 34, 0, 36, 0, 0, 16, 6, 6,145, 0, 0, 0, 0,
-255,255, 0,123,255,227, 4, 45, 4,123, 18, 34, 0, 68, 0, 0, 16, 7, 6,145,255,147,254,193,255,255, 0, 8, 0, 0, 7, 72,
- 7, 52, 16, 39, 0,113, 2,215, 1, 62, 18, 6, 0,136, 0, 0,255,255, 0,123,255,227, 7,111, 5,242, 16, 39, 0,113, 1,232,
-255,252, 18, 6, 0,168, 0, 0, 0, 1, 0,115,255,227, 6, 4, 5,240, 0, 37, 0, 0, 1, 21, 6, 4, 35, 32, 0, 17, 16, 0,
- 33, 50, 4, 23, 21, 46, 1, 35, 32, 0, 17, 16, 0, 33, 50, 54, 55, 53, 35, 53, 51, 53, 33, 53, 33, 17, 51, 21, 5,139,117,254,
-230,160,254,162,254,117, 1,139, 1, 94,146, 1, 7,111,112,252,139,254,238,254,237, 1, 19, 1, 18,107,168, 67,253,253,254,182,
- 2, 18,121, 1,138,255, 83, 85, 1,153, 1,109, 1,110, 1,153, 72, 70,215, 95, 96,254,206,254,209,254,210,254,206, 37, 39,181,
- 88,132,166,254,214, 88, 0, 0, 0, 2, 0,113,254, 86, 4,250, 4,123, 0, 11, 0, 52, 0, 0, 1, 52, 38, 35, 34, 6, 21, 20,
- 22, 51, 50, 54, 3, 54, 61, 1, 14, 1, 35, 34, 2, 17, 16, 18, 51, 50, 22, 23, 53, 51, 17, 20, 7, 51, 21, 35, 6, 7, 6, 33,
- 34, 38, 39, 53, 30, 1, 51, 50, 55, 54, 55, 5, 53, 3,162,165,149,148,165,165,148,149,165, 22, 22, 57,178,124,206,252,252,206,
-124,178, 57,184, 19,179,198, 31, 58,127,254,250, 97,172, 81, 81,158, 82,181, 90, 21, 17,253,132, 2, 61,200,220,220,200,199,220,
-220,254, 79, 71, 94, 91, 99, 98, 1, 58, 1, 3, 1, 4, 1, 58, 98, 99,170,252, 43,110, 88, 70, 93, 64,140, 29, 30,179, 44, 42,
- 95, 23, 28, 1, 70, 0, 0, 0,255,255, 0,115,255,227, 5,139, 5,240, 18, 34, 0, 42, 0, 0, 17, 7, 6,137, 5, 74, 1,117,
- 0, 16,177, 33, 14, 16, 60, 64, 7,148, 33, 84, 33, 36, 33, 3, 93, 49, 0, 0,255,255, 0,113,254, 86, 4, 90, 6, 99, 16, 34,
- 2, 32, 74,253, 18, 2, 0, 74, 0, 0, 0, 0,255,255, 0,201, 0, 0, 5,106, 5,213, 16, 39, 6,137, 4,162, 1,117, 18, 2,
- 0, 46, 0, 0,255,255, 0,186, 0, 0, 4,156, 6, 20, 18, 34, 0, 78, 0, 0, 17, 7, 6,137, 3, 26, 1,117, 0, 42,180, 1,
- 16, 12, 0, 7, 43, 49, 0, 75,176, 14, 81, 88,187, 0, 1,255,192, 0, 0,255,192, 56, 56, 89, 64, 13,144, 1,144, 0,128, 1,
-128, 0, 64, 1, 64, 0, 6, 93,255,255, 0,115,254,101, 5,217, 5,240, 16, 39, 2, 52, 1, 52,255,240, 18, 6, 0, 50, 0, 0,
-255,255, 0,113,254,101, 4,117, 4,123, 16, 39, 2, 52, 0,128,255,240, 18, 6, 0, 82, 0, 0,255,255, 0,115,254,101, 5,217,
- 7, 49, 16, 39, 0,113, 1, 39, 1, 59, 18, 6, 1,172, 0, 0,255,255, 0,113,254,101, 4,117, 5,245, 16, 38, 0,113,115,255,
- 18, 6, 1,173, 0, 0, 0, 0,255,255, 0,160,255,193, 4,248, 5,213, 16, 39, 6,137, 4,190, 1,117, 18, 2, 1,121, 0, 0,
-255,255, 0,220, 4,238, 3, 90, 6,102, 16, 38, 2, 32, 27, 0, 16, 6, 2, 8, 0, 0, 0, 0,255,255,255,219,254, 86, 2,100,
- 6,102, 16, 39, 2, 32,255, 37, 0, 0, 17, 6, 1,249, 0, 0, 0, 11,180, 3, 32, 8, 7, 7, 16, 73, 99, 58, 49, 0, 0, 0,
-255,255, 0,201, 0, 0, 10,208, 5,213, 16, 39, 0, 61, 5,177, 0, 0, 16, 6, 0, 39, 0, 0,255,255, 0,201, 0, 0, 9,176,
- 5,213, 16, 39, 0, 93, 5,213, 0, 0, 16, 6, 0, 39, 0, 0,255,255, 0,113,255,227, 8,145, 6, 20, 16, 39, 0, 93, 4,182,
- 0, 0, 16, 6, 0, 71, 0, 0,255,255, 0,115,255,227, 5,139, 7,107, 18, 34, 0, 42, 0, 0, 16, 67, 0,118, 1, 22, 2,240,
- 64, 0, 44,204,255,255, 0,113,254, 86, 4, 90, 6, 99, 18, 34, 0, 74, 0, 0, 16, 2, 0,118, 27,253, 0, 0, 0, 1, 0,201,
-255,227, 8, 45, 5,213, 0, 29, 0, 0, 1, 17, 20, 7, 6, 33, 32, 39, 38, 53, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 20,
- 23, 22, 23, 50, 55, 54, 53, 17, 8, 45,100, 96,254,230,254,237,103,100,253, 34,202,202, 2,222,202, 62, 61,153,148, 66, 62, 4,
- 96,253, 90,223,128,120,120,118,233, 1, 13,253, 57, 5,213,253,156, 2,100,251,236,159, 80, 78, 1, 79, 75,164, 2,159, 0, 0,
- 0, 2, 0,201,254, 86, 5, 2, 5,240, 0, 14, 0, 23, 0, 0, 37, 17, 35, 17, 51, 21, 54, 55, 54, 51, 50, 23, 22, 21, 16, 1,
- 0, 17, 52, 39, 38, 35, 34, 3, 1,147,202,202, 56,145, 87,226,198, 83, 84,252,145, 2,161, 61, 60,129,237,186,156,253,186, 7,
-127,185, 72, 87, 53,120,122,164,254, 55,254,206, 1,174, 1, 12,143, 71, 70,254,255, 0, 0, 0,255,255, 0,201, 0, 0, 5, 51,
- 5,213, 16, 39, 6,135, 5, 30, 1,117, 18, 2, 0, 49, 0, 0,255,255, 0,186, 0, 0, 4,100, 6,100, 18, 34, 0, 81, 0, 0,
- 16, 3, 0, 67, 1, 24,255,254,255,255, 0, 16, 0, 0, 5,104, 7,109, 16, 34, 0,135, 0, 0, 16, 7, 6,133, 6, 92, 1,125,
-255,255, 0,123,255,227, 4, 45, 7, 6, 16, 34, 0,167, 0, 0, 16, 7, 6,133, 5,236, 1,125,255,255, 0, 8, 0, 0, 7, 72,
- 5,213, 16, 39, 6,133, 6, 92, 1,118, 18, 2, 0,136, 0, 0,255,255, 0,123,255,227, 7,111, 6, 99, 18, 34, 0,168, 0, 0,
- 16, 3, 0,118, 1,101,255,253,255,255, 0,102,255,186, 5,229, 6, 23, 16, 39, 6,133, 4,254, 1,118, 18, 2, 0,154, 0, 0,
-255,255, 0, 72,255,162, 4,156, 6, 99, 18, 34, 0,186, 0, 0, 16, 2, 0,118, 28,253, 0, 0,255,255, 0, 16, 0, 0, 5,104,
- 5,213, 18, 34, 0, 36, 0, 0, 16, 7, 6,142, 4,229, 1,122,255,255, 0,123,255,227, 4, 45, 6,100, 16, 35, 2, 87, 4,152,
-255,254, 18, 2, 0, 68, 0, 0,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 34, 0, 36, 0, 0, 16, 7, 6,138, 4,188, 1, 62,
-255,255, 0,123,255,227, 4, 45, 6, 72, 16, 35, 2, 89, 4,101, 0, 0, 18, 6, 0, 68, 0, 0,255,255, 0,201, 0, 0, 4,139,
- 5,213, 18, 34, 0, 40, 0, 0, 16, 7, 6,142, 4,165, 1,122,255,255, 0,113,255,227, 4,127, 6, 99, 16, 35, 2, 87, 4,186,
-255,253, 18, 2, 0, 72, 0, 0,255,255, 0,201, 0, 0, 4,139, 5,213, 18, 34, 0, 40, 0, 0, 16, 7, 6,138, 4,166, 1, 62,
-255,255, 0,113,255,227, 4,127, 6, 72, 16, 35, 2, 89, 4,169, 0, 0, 18, 2, 0, 72, 0, 0,255,255, 0,201, 0, 0, 1,147,
- 5,213, 18, 34, 0, 44, 0, 0, 16, 7, 6,142, 3, 89, 1,122,255,255,255,195, 0, 0, 2,129, 6, 99, 16, 35, 2, 87, 3,102,
-255,253, 18, 2, 0,243, 0, 0,255,255, 0,201, 0, 0, 1,147, 5,213, 18, 34, 0, 44, 0, 0, 16, 7, 6,138, 3, 62, 1, 62,
-255,255,255,227, 0, 0, 2, 86, 6, 72, 16, 35, 2, 89, 3, 36, 0, 0, 18, 2, 0,243, 0, 0,255,255, 0,115,255,227, 5,217,
- 5,240, 18, 34, 0, 50, 0, 0, 16, 7, 6,142, 5, 65, 1,122,255,255, 0,113,255,227, 4,117, 6,100, 16, 35, 2, 87, 4,159,
-255,254, 18, 2, 0, 82, 0, 0,255,255, 0,115,255,227, 5,217, 5,240, 18, 34, 0, 50, 0, 0, 16, 7, 6,138, 5, 28, 1, 62,
-255,255, 0,113,255,227, 4,117, 6, 72, 16, 35, 2, 89, 4,152, 0, 0, 18, 2, 0, 82, 0, 0,255,255, 0,201, 0, 0, 5, 84,
- 5,213, 18, 34, 0, 53, 0, 0, 16, 7, 6,142, 4,121, 1,122,255,255, 0,130, 0, 0, 3, 74, 6, 99, 16, 35, 2, 87, 4, 37,
-255,253, 18, 2, 0, 85, 0, 0,255,255, 0,201, 0, 0, 5, 84, 5,213, 18, 34, 0, 53, 0, 0, 16, 7, 6,138, 4,128, 1, 62,
-255,255, 0,186, 0, 0, 3, 94, 6, 72, 16, 35, 2, 89, 4, 45, 0, 0, 18, 2, 0, 85, 0, 0,255,255, 0,178,255,227, 5, 41,
- 5,213, 18, 34, 0, 56, 0, 0, 16, 7, 6,142, 5, 21, 1,122,255,255, 0,174,255,227, 4, 88, 6,100, 16, 35, 2, 87, 4,212,
-255,254, 18, 2, 0, 88, 0, 0,255,255, 0,178,255,227, 5, 41, 5,213, 18, 34, 0, 56, 0, 0, 16, 7, 6,138, 4,236, 1, 62,
-255,255, 0,174,255,227, 4, 88, 6, 72, 16, 35, 2, 89, 4,171, 0, 0, 18, 2, 0, 88, 0, 0,255,255, 0,135,254, 20, 4,162,
- 5,240, 16, 39, 2,110, 4,118, 0, 0, 18, 6, 0, 54, 0, 0,255,255, 0,111,254, 20, 3,199, 4,123, 16, 39, 2,110, 4, 44,
- 0, 0, 18, 6, 0, 86, 0, 0,255,255,255,250,254, 20, 4,233, 5,213, 16, 39, 2,110, 4, 83, 0, 0, 18, 6, 0, 55, 0, 0,
-255,255, 0, 55,254, 20, 2,242, 5,158, 16, 39, 2,110, 4, 0, 0, 0, 18, 6, 0, 87, 0, 0, 0, 1, 0,156,254, 82, 4,115,
- 5,240, 0, 49, 0, 0, 19, 54, 55, 54, 55, 54, 53, 52, 38, 35, 34, 15, 1, 53, 55, 54, 55, 54, 53, 52, 39, 38, 7, 34, 7, 6,
- 7, 53, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 7, 22, 23, 22, 21, 20, 7, 6, 5, 6, 7,156,199,194,165,126, 98,146, 91,
- 63, 70,240,248,142,106, 79, 81, 95, 99,105,113, 89,120,119, 96,129,101,192,132,134, 71, 82,120,138, 81, 89,150,130,254,208,218,
-181,254,242, 64, 88, 75,121, 94,142,113,134, 31,106,171,106, 61,118, 88,144,123, 53, 63, 1, 58, 46, 80,190, 66, 42, 56,104,105,
-178,170, 99,113, 77, 19,109,119,113,218,142,123,129, 92, 40, 0, 0, 1, 0, 71,254, 79, 3,188, 4,123, 0, 50, 0, 0, 19, 54,
- 55, 54, 55, 54, 53, 52, 39, 38, 35, 34, 15, 1, 53, 55, 54, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 7, 53, 54, 55, 54, 51, 50,
- 23, 22, 21, 20, 7, 6, 7, 22, 23, 22, 21, 20, 7, 6, 5, 6, 7, 71,178,176,148,114, 88, 66, 65, 82, 57, 63,216,223,124, 99,
- 71, 73, 78, 96, 92,104, 79,109, 96, 98,115, 91,171,121,120, 64, 73,108,124, 73, 80,135,120,254,241,196,163,254,209, 51, 72, 60,
- 99, 76,115, 91, 55, 54, 25, 86,139, 85, 47, 99, 71,116, 96, 47, 50, 47, 35, 67,154, 48, 39, 46, 85, 85,144,137, 81, 91, 63, 15,
- 88, 97, 91,177,115,102,102, 74, 33, 0, 0, 0,255,255, 0,201, 0, 0, 5, 59, 5,213, 16, 39, 6,137, 5, 4, 1,117, 18, 2,
- 0, 43, 0, 0,255,255, 0,186, 0, 0, 4,100, 6, 20, 16, 39, 6,137, 3, 33, 1,117, 19, 2, 0, 75, 0, 0, 0, 42,180, 20,
- 5, 1, 19, 7, 43, 49, 0, 75,176, 14, 81, 88,187, 0, 20,255,192, 0, 19,255,192, 56, 56, 89, 64, 13,144, 20,144, 19,128, 20,
-128, 19, 64, 20, 64, 19, 6, 93, 0, 1, 0,201,254, 86, 5, 25, 5,240, 0, 23, 0, 0, 1, 17, 35, 17, 52, 39, 38, 35, 34, 7,
- 6, 21, 17, 35, 17, 51, 21, 54, 55, 54, 51, 50, 23, 22, 5, 25,201, 78, 76,153,179,109,106,202,202, 78,105,105,154,227,116,117,
- 3,125,250,217, 5, 41,212,109,107,129,126,222,252,178, 5,213,241,135, 66, 67,159,159, 0, 0, 0, 3, 0,113,255,112, 6, 68,
- 6, 20, 0, 7, 0, 40, 0, 52, 0, 0, 37, 22, 51, 50, 53, 52, 39, 34, 7, 54, 51, 50, 21, 16, 33, 34, 39, 6, 7, 35, 54, 55,
- 38, 53, 6, 7, 6, 35, 34, 39, 38, 16, 55, 54, 51, 50, 23, 22, 23, 17, 51, 0, 16, 23, 22, 32, 55, 54, 16, 39, 38, 32, 7, 4,
-182, 17, 37,160, 52, 52,202,110,136,244,254,170, 73, 53, 34, 24,196, 29, 67, 48, 58, 88, 89,124,203,128,127,127,128,203,124, 89,
- 88, 58,184,252,213, 83, 84, 1, 36, 84, 84, 84, 84,254,220, 84,130, 5,175, 45, 1, 32,184,206,254,191, 15, 72, 58, 69,147, 60,
- 36,100, 48, 49,162,162, 2, 16,162,162, 49, 48,100, 2, 94,252,230,254,106,116,115,115,116, 1,150,116,115,115, 0, 2, 0,113,
-255,227, 5, 37, 5,240, 0, 12, 0, 59, 0, 0, 1, 34, 7, 6, 16, 23, 22, 32, 55, 54, 53, 52, 38, 3, 14, 1, 21, 20, 23, 22,
- 51, 50, 55, 54, 53, 52, 39, 38, 39, 53, 50, 23, 22, 21, 20, 6, 7, 22, 23, 22, 21, 20, 7, 6, 32, 39, 38, 53, 52, 55, 54, 55,
- 38, 39, 38, 53, 52, 55, 54, 33, 2,203,184,106,107,107,106, 1,112,107,107,212,244,130,170, 95, 59,204,168, 95, 96, 76,109,130,
-228,150,139,170,152,172, 95, 96,156,155,253,186,155,156, 96, 97,171,171, 67, 85,130,116, 1, 1, 2,197, 77, 77,254,242, 77, 77,
- 77, 78,134,135,154, 2, 39, 3,124, 79, 69, 72, 45, 65, 65,136,158, 43, 77, 8,100,104, 97,186,128,178, 32, 34, 99, 99,143,217,
-116,116,116,116,217,143, 99, 99, 34, 31, 70, 89, 88,130, 83, 74, 0, 2, 0,113,255,227, 4,113, 5, 47, 0, 13, 0, 52, 0, 0,
- 1, 34, 7, 6, 16, 23, 22, 32, 55, 54, 53, 52, 39, 38, 19, 22, 21, 20, 7, 6, 7, 22, 23, 22, 21, 20, 7, 6, 32, 39, 38, 53,
- 52, 54, 55, 38, 39, 38, 53, 52, 55, 23, 6, 20, 23, 22, 51, 50, 55, 54, 53, 52, 39, 2,113,144, 83, 82, 82, 83, 1, 32, 83, 83,
- 83, 82,254, 58, 52, 73,129,146, 82, 81,133,132,254, 18,132,133,164,146,142, 61, 52, 63,161, 43, 73, 72,131,130, 73, 74, 44, 2,
-197, 77, 77,254,242, 77, 77, 77, 78,134,135, 77, 77, 2,106, 82,112,153, 64, 89, 32, 34, 99, 99,143,217,116,116,116,116,217,143,
-198, 34, 35, 86, 75,142,106, 88, 32, 65,232, 65, 65, 65, 65,116,119, 62, 0, 0, 0, 1, 0, 92,254, 86, 5, 31, 5,213, 0, 21,
- 0, 0, 5, 16, 7, 6, 43, 1, 53, 51, 50, 55, 54, 61, 1, 33, 53, 1, 33, 53, 33, 21, 1, 33, 5, 31,158, 72,114,254,233,105,
- 38, 38,251,245, 3,176,252,103, 4,149,252, 80, 3,199, 20,254,223, 80, 37,156, 48, 49,153, 20,154, 4,145,170,154,251,111, 0,
- 0, 1, 0, 88,254, 86, 3,219, 4, 96, 0, 21, 0, 0, 5, 16, 7, 6, 43, 1, 53, 51, 50, 55, 54, 61, 1, 33, 53, 1, 33, 53,
- 33, 21, 1, 33, 3,219,158, 72,114,254,233,105, 38, 38,253, 53, 2,180,253,101, 3,106,253, 76, 2,180, 20,254,223, 80, 37,156,
- 48, 49,153, 20,168, 3, 37,147,168,252,219, 0,255,255, 0, 16, 0, 0, 5,104, 7, 80, 18, 34, 0, 36, 0, 0, 16, 3, 2, 50,
- 0,196, 1, 64,255,255, 0,123,255,227, 4, 45, 6, 18, 18, 34, 0, 68, 0, 0, 16, 2, 2, 50, 95, 2, 0, 0,255,255, 0,201,
-254,117, 4,139, 5,213, 18, 34, 0, 40, 0, 0, 16, 3, 0,122, 0,162, 0, 0,255,255, 0,113,254,117, 4,127, 4,123, 18, 34,
- 0, 72, 0, 0, 16, 2, 0,122,123, 0, 0, 0,255,255, 0,115,255,227, 5,217, 5,240, 18, 34, 0, 50, 0, 0, 16, 6, 6,143,
- 98, 0, 0, 0,255,255, 0,113,255,227, 4,117, 7, 49, 18, 38, 0,184, 0, 0, 16, 7, 0,113, 0,115, 1, 59,255,255, 0,115,
-255,227, 5,217, 5,240, 18, 34, 0, 50, 0, 0, 16, 6, 6,150,105, 0, 0, 0,255,255, 0,113,255,227, 4,117, 4,123, 16, 38,
- 0, 82, 0, 0, 16, 7, 6,150,255,181,254,182,255,255, 0,115,255,227, 5,217, 5,240, 16, 39, 6,140, 5, 39, 1,116, 18, 6,
- 0, 50, 0, 0,255,255, 0,113,255,227, 4,117, 6, 16, 16, 38, 2, 50,115, 0, 18, 6, 0, 82, 0, 0, 0, 0,255,255, 0,115,
-255,227, 5,217, 5,240, 18, 34, 0, 50, 0, 0, 16, 6, 6,145,106, 0, 0, 0,255,255, 0,113,255,227, 4,117, 7, 49, 18, 38,
- 1,241, 0, 0, 16, 7, 0,113, 0,115, 1, 59,255,255,255,252, 0, 0, 4,231, 7, 49, 16, 39, 0,113, 0,114, 1, 59, 18, 6,
- 0, 60, 0, 0,255,255, 0, 61,254, 86, 4,127, 5,245, 16, 38, 0,113, 94,255, 18, 6, 0, 92, 0, 0, 0, 0, 0, 2, 0,138,
-255,112, 3, 92, 6, 14, 0, 7, 0, 25, 0, 0, 37, 22, 51, 50, 53, 52, 39, 34, 7, 54, 51, 50, 21, 16, 33, 34, 39, 6, 7, 35,
- 54, 55, 38, 55, 17, 51, 1,206, 17, 37,160, 52, 52,202,110,136,244,254,170, 73, 53, 34, 24,196, 29, 67, 49, 1,184,130, 5,175,
- 45, 1, 32,184,206,254,191, 15, 72, 58, 69,147, 60, 90, 5, 48, 0, 2, 0,186,255,112, 6, 78, 4,123, 0, 7, 0, 43, 0, 0,
- 37, 22, 51, 50, 53, 52, 39, 34, 7, 54, 51, 50, 21, 16, 33, 34, 39, 6, 7, 35, 54, 55, 38, 55, 17, 52, 38, 35, 34, 6, 21, 17,
- 35, 17, 51, 21, 54, 55, 54, 51, 50, 23, 22, 21, 4,192, 17, 37,160, 52, 52,202,110,136,244,254,170, 73, 53, 34, 24,196, 29, 67,
- 49, 1,124,124,149,172,185,185, 66, 89, 90,117,193, 99, 99,130, 5,175, 45, 1, 32,184,206,254,191, 15, 72, 58, 69,147, 60, 90,
- 1,192,159,158,190,164,253,135, 4, 96,174,101, 50, 50,119,120,232, 0, 0, 0, 0, 2, 0, 55,255,112, 3, 97, 5,158, 0, 7,
- 0, 33, 0, 0, 37, 22, 51, 50, 53, 52, 39, 34, 7, 54, 51, 50, 21, 16, 33, 34, 39, 6, 7, 35, 54, 55, 38, 53, 17, 35, 53, 51,
- 17, 51, 17, 33, 21, 33, 1,211, 17, 37,160, 52, 52,202,110,136,244,254,170, 73, 54, 33, 24,196, 29, 67, 49,135,135,185, 1,123,
-254,133,130, 5,175, 45, 1, 32,184,206,254,191, 15, 72, 58, 69,147, 60, 90, 2,243,143, 1, 62,254,194,143, 0, 0, 1,255,219,
-254, 86, 1,121, 4, 96, 0, 11, 0, 56, 64, 21, 11, 2, 7, 0, 7,135, 5,189, 0,188, 12, 8, 12, 5, 6, 79, 1, 8, 0, 70,
- 12, 16,252,236,228, 57, 18, 57, 49, 0, 16,228,244,236, 17, 18, 57, 57, 48, 64, 11, 16, 13, 64, 13, 80, 13, 96, 13,112, 13, 5,
- 1, 93, 19, 51, 17, 20, 6, 43, 1, 53, 51, 50, 54, 53,193,184,163,181, 70, 49,105, 76, 4, 96,251,140,214,192,156, 97,153, 0,
- 0, 3, 0,113,255,227, 7,140, 6, 20, 0, 7, 0, 37, 0, 45, 0, 0, 0, 16, 22, 32, 54, 16, 38, 32, 5, 62, 1, 51, 50, 0,
- 16, 2, 35, 34, 38, 39, 21, 43, 1, 53, 14, 1, 35, 34, 2, 16, 0, 51, 50, 22, 23, 17, 59, 1, 0, 16, 38, 32, 6, 16, 22, 32,
- 1, 47,167, 1, 36,168,168,254,220, 2,133, 58,177,123,204, 0,255,255,204,123,177, 58, 1,184, 58,177,124,203,255, 0,255,203,
-124,177, 58,184, 1, 2,114,167,254,220,167,167, 1, 36, 2,250,254,106,231,231, 1,150,231, 43,100, 97,254,188,253,240,254,188,
- 97,100,168,168,100, 97, 1, 68, 2, 16, 1, 68, 97,100, 2, 94,251, 80, 1,150,231,231,254,106,231, 0, 0, 0, 0, 3, 0,113,
-254, 86, 7,140, 4,123, 0, 7, 0, 37, 0, 45, 0, 0, 0, 16, 38, 32, 6, 16, 22, 32, 37, 17, 43, 1, 17, 14, 1, 35, 34, 2,
- 16, 0, 51, 50, 22, 23, 53, 59, 1, 21, 62, 1, 51, 50, 0, 16, 2, 35, 34, 38, 0, 16, 22, 32, 54, 16, 38, 32, 6,205,167,254,
-220,167,167, 1, 36,254, 53, 1,184, 58,177,124,203,255, 0,255,203,124,177, 58,184, 1, 58,177,123,204, 0,255,255,204,123,177,
-252,154,167, 1, 36,168,168,254,220, 1,100, 1,150,231,231,254,106,231, 43,253,174, 2, 82,100, 97, 1, 68, 2, 16, 1, 68, 97,
-100,170,170,100, 97,254,188,253,240,254,188, 97, 2,182,254,106,231,231, 1,150,231, 0, 0, 0, 0, 3,255,253,255,186, 5,124,
- 6, 23, 0, 18, 0, 22, 0, 25, 0, 0, 1, 51, 19, 1, 23, 9, 1, 35, 3, 33, 15, 1, 35, 7, 39, 35, 55, 39, 55, 9, 1, 51,
- 1, 3, 33, 3, 2, 74,229,134, 1, 97,102,254,112, 1,124,210,136,253,214,205, 50, 70, 59, 82, 2, 1, 20, 47, 2,144,254,238,
- 22, 1,111,189, 1, 93,106, 5,213,254,161, 1,161, 89,254, 39,252, 27, 1,127,241,142, 70, 70, 1, 17, 56, 4,196,253, 25, 1,
-177,254, 79, 1, 31, 0, 0, 0, 0, 2, 0, 11,255,186, 5,139, 6, 23, 0, 31, 0, 40, 0, 0, 23, 39, 19, 38, 17, 16, 0, 33,
- 50, 23, 22, 23, 55, 23, 7, 21, 38, 39, 1, 22, 23, 22, 33, 50, 54, 55, 21, 14, 1, 35, 32, 39, 19, 1, 35, 38, 35, 32, 0, 17,
- 20,114,102,220,117, 1,134, 1, 83,134,118, 61, 58,101,102, 99, 46, 49,252,244, 9, 11,136, 1, 0,130,231,102,106,237,132,254,
-180,194, 57, 2,216, 1,116,130,255, 0,254,240, 70, 88, 1, 5,187, 1, 23, 1,104, 1,159, 36, 18, 27,120, 89,118,187, 43, 33,
-252,102, 13, 12,157, 94, 95,211, 72, 72,199, 1, 21, 3, 92, 47,254,199,254,216,173, 0, 0, 0, 0, 2, 0, 9,255,162, 4, 93,
- 4,188, 0, 31, 0, 39, 0, 0, 23, 39, 55, 38, 53, 16, 0, 33, 50, 23, 22, 23, 55, 23, 7, 21, 38, 39, 1, 22, 23, 22, 51, 50,
- 54, 55, 21, 14, 1, 35, 34, 39, 19, 1, 38, 35, 34, 6, 21, 20,105, 96,189, 85, 1, 45, 1, 6, 85, 81, 46, 45, 89, 95,118, 25,
- 24,253,211, 7, 6, 99,179, 80,157, 78, 77,165, 93,240,147, 55, 1,238, 71, 71,179,198, 94, 78,230,141,204, 1, 18, 1, 58, 17,
- 10, 16,108, 79,143, 85, 14, 11,253, 94, 8, 8,113, 43, 43,170, 36, 36,144, 1, 5, 2, 86, 17,227,205,103, 0, 0, 1, 0, 10,
- 0, 0, 4,106, 5,213, 0, 13, 0, 0, 19, 51, 17, 51, 21, 35, 17, 33, 21, 33, 17, 35, 53, 51,201,202,191,191, 2,215,252, 95,
-191,191, 5,213,253,119,144,253,238,170, 2,188,144, 0, 0, 0, 0, 2,255,178,255,186, 5, 49, 6, 23, 0, 15, 0, 18, 0, 0,
- 3, 39, 55, 23, 33, 21, 33, 17, 1, 7, 1, 17, 35, 17, 1, 35, 1, 17, 33, 6, 72,102, 56, 4,153,253,238, 2, 90,103,254, 13,
-203,254, 34, 52, 2, 18,254,212, 5,105, 85, 89, 66,170,253,174,253, 57, 88, 2, 77,253,249, 2,247, 2, 52,254,158, 1, 98, 0,
- 0, 1, 0,111,254, 16, 4, 25, 4,123, 0, 55, 0, 0, 1, 52, 38, 47, 1, 46, 1, 53, 52, 54, 51, 50, 22, 23, 21, 46, 1, 35,
- 34, 6, 21, 20, 22, 31, 1, 22, 23, 22, 21, 20, 7, 6, 7, 31, 1, 22, 51, 21, 35, 34, 39, 38, 47, 1, 38, 39, 38, 39, 38, 39,
- 53, 30, 1, 51, 50, 54, 3, 10,101,171, 64,171,152,224,206,102,180, 76, 78,168, 90,137,137, 98,148, 63,198, 80, 83,123, 87,132,
-159,147, 42, 76, 39, 84,114, 71, 89,237, 30, 36, 16, 17, 97,108,102,198, 97,130,140, 1, 39, 75, 80, 37, 15, 36,149,130,158,172,
- 30, 30,174, 40, 40, 84, 84, 64, 73, 33, 14, 44, 75, 76,137,156, 91, 64, 19,159,126, 36,154, 61, 38, 91,243, 30, 16, 3, 2, 18,
- 35,190, 53, 53, 89, 0, 0, 0, 0, 1, 0, 88,254, 16, 4, 51, 4, 96, 0, 24, 0, 0, 19, 33, 21, 1, 22, 23, 1, 23, 22, 59,
- 1, 21, 35, 34, 39, 38, 47, 1, 38, 43, 1, 61, 1, 1, 33,113, 3,106,253, 78, 92, 49, 1, 8,147, 42, 76,108,147, 84,114, 71,
- 89,237, 61, 90, 94, 2,180,253,101, 4, 96,168,252,221, 16, 49,254,248,126, 36,154, 61, 38, 91,243, 63,156, 12, 3, 37, 0, 0,
- 0, 1, 0, 80, 0, 0, 4,141, 5,213, 0, 25, 0, 0, 1, 51, 50, 54, 16, 38, 43, 1, 34, 7, 6, 7, 53, 54, 55, 54, 59, 1,
- 50, 4, 16, 4, 43, 1, 17, 35, 1,160,241,141,154,153,142,254, 69, 90, 86, 78, 76, 81, 81, 85,254,251, 1, 1,254,255,251, 39,
-202, 3, 0,146, 1, 12,145, 22, 21, 43,182, 35, 17, 18,225,254, 72,226,253,166, 0, 1, 0,117, 2,156, 2,197, 6, 4, 0, 19,
- 0, 48, 64, 7, 21, 0, 3, 14, 10, 11, 20, 16,212,220, 60, 47,204,204, 75,176, 13, 81, 88,177, 21, 64, 56, 89, 49,178,127, 21,
- 1, 93, 0, 64, 6, 6, 17, 12, 2, 11, 20, 16,212, 60,196,212,204, 48, 1, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51,
- 17, 62, 1, 51, 50, 22, 2,196,116, 78, 78, 94,108,117,117, 41,113, 74,121,125, 4, 23,254,133, 1,119, 89, 89,107, 92,254,158,
- 3,103,254,171, 56, 56,134, 0, 0, 1, 0,117, 2,156, 2,197, 6, 4, 0, 27, 0, 59, 64, 8, 29, 0, 3, 16, 22, 10, 11, 28,
- 16,212,220, 60,204, 47,204,204, 75,176, 13, 81, 88,177, 29, 64, 56, 89, 49,178,127, 29, 1, 93, 0, 64, 7, 6, 25, 17, 15, 2,
- 11, 28, 16,212, 60,212,204,212,204,180, 13,131, 25,131, 6, 93, 48, 1, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 52, 54,
- 59, 1, 21, 35, 34, 6, 29, 1, 62, 1, 51, 50, 22, 2,196,116, 78, 78, 94,108,117,103,114,160,146, 66, 48, 41,113, 74,121,125,
- 4, 23,254,133, 1,119, 89, 89,107, 92,254,158, 2,132,120,107, 87, 54, 86,114, 56, 56,134, 0, 0, 2,255,233, 1,173, 0,238,
- 6, 3, 0, 13, 0, 17, 0, 35, 64, 7, 19, 15, 1, 8, 14, 0, 18, 16,220, 60,204,220, 60,204, 49, 0, 64, 7, 14, 17, 0, 8,
- 7, 0, 18, 16,212,212,204, 16,220,204, 48, 19, 51, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 51, 21, 35,122,116, 52,
- 51,114, 44, 31, 66, 24, 24,116,116, 5, 15,253,130,120, 54, 54, 88, 27, 27, 86, 3,114,130, 0, 0, 1, 0,117, 2,156, 2, 19,
- 5, 31, 0, 17, 0, 31, 64, 5, 17, 11, 7, 8, 18, 16,220,204, 0,204, 49, 0, 64, 7, 0, 17, 7, 3, 14, 9, 8, 47,196,212,
-204, 16,212,204, 48, 1, 46, 1, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 23, 2, 18, 19, 46, 28, 98,105,117,117,
- 36,117, 84, 12, 29, 18, 4,175, 10, 9,113,107,254,182, 2,115, 97, 57, 55, 2, 3, 0, 0, 0, 0, 1, 0, 71, 2,141, 1,228,
- 5, 15, 0, 21, 0, 0, 19, 22, 23, 22, 51, 50, 55, 54, 53, 17, 51, 17, 35, 53, 6, 7, 6, 35, 34, 39, 38, 39, 71, 20, 23, 23,
- 27, 99, 52, 53,116,116, 37, 58, 59, 84, 12, 14, 15, 17, 2,252, 10, 5, 4, 57, 56,107, 1, 74,253,141, 97, 57, 27, 28, 1, 2,
- 2, 0, 0, 0, 0, 1, 0, 71, 1,173, 2,117, 5, 15, 0, 32, 0, 0, 19, 22, 23, 22, 51, 50, 55, 54, 53, 17, 51, 17, 21, 20,
- 22, 59, 1, 21, 35, 34, 38, 61, 1, 35, 53, 6, 7, 6, 35, 34, 39, 38, 39, 71, 20, 23, 23, 27, 99, 52, 53,116, 48, 66, 31, 44,
-114,102, 1, 37, 58, 60, 83, 12, 14, 15, 17, 2,252, 10, 5, 4, 57, 56,107, 1, 74,253,141, 11, 86, 54, 88,108,120, 11, 97, 57,
- 27, 28, 1, 2, 2, 0, 0, 0, 0, 2, 0, 32, 2,156, 2,143, 5, 15, 0, 22, 0, 33, 0, 0, 1, 30, 1, 21, 20, 7, 6, 43,
- 1, 17, 51, 17, 51, 50, 55, 54, 63, 1, 51, 7, 6, 7, 6, 1, 51, 50, 55, 54, 53, 52, 39, 38, 43, 1, 1,155, 67, 70, 67, 68,
-137,244,116,107, 61, 37, 37, 40,102,123,110, 33, 33, 34,254,215,125, 75, 39, 41, 41, 39, 75,125, 3,233, 15, 78, 59, 91, 45, 45,
- 2,115,254,247, 21, 20, 63,161,171, 53, 30, 30,255, 0, 23, 24, 47, 46, 24, 25, 0, 1, 0, 54, 2,156, 3,233, 5, 15, 0, 12,
- 0, 0, 19, 51, 27, 1, 51, 27, 1, 51, 3, 35, 11, 1, 35, 54,116,145,144,137,145,144,116,185,136,152,153,136, 5, 15,254, 23,
- 1,233,254, 23, 1,233,253,141, 2, 2,253,254, 0, 1, 0, 38, 1,173, 2,213, 5, 15, 0, 17, 0, 0, 1, 6, 7, 6, 43, 1,
- 53, 51, 50, 55, 54, 63, 1, 1, 51, 27, 1, 51, 1,159, 49, 47, 46, 78, 93, 68, 48, 26, 27, 32, 21,254,226,123,221,220,123, 2,
- 98,112, 34, 35, 87, 20, 20, 75, 47, 2,105,254, 22, 1,234, 0,255,255, 0,197, 3,170, 1,111, 5,213, 18, 2, 0, 10, 0, 0,
-255,255, 0,197, 3,170, 2,233, 5,213, 18, 2, 0, 5, 0, 0,255,255, 0,174, 3,233, 1,211, 5,213, 16, 6, 5,141, 0, 0,
-255,255, 0,178, 3,254, 1,215, 5,213, 16, 6, 5,142, 0, 0, 0, 1, 0,196, 4,238, 1,233, 6,218, 0, 5, 0, 0, 1, 21,
- 19, 35, 3, 53, 1,151, 82,129,164, 6,218,172,254,192, 1, 64,172, 0, 0, 0, 0, 1, 0,117, 3,239, 1,135, 6, 20, 0, 16,
- 0, 0, 19, 52, 53, 50, 54, 53, 52, 38, 35, 52, 53, 50, 23, 22, 20, 7, 6,117, 64, 88, 88, 64,115, 80, 79, 79, 80, 3,239, 61,
- 62, 88, 64, 63, 88, 61, 62, 80, 79,230, 80, 80, 0, 1, 0,117, 3,239, 1,135, 6, 20, 0, 16, 0, 0, 1, 34, 39, 38, 52, 55,
- 54, 51, 20, 21, 34, 6, 21, 20, 22, 51, 20, 1,135,115, 80, 79, 79, 80,115, 64, 88, 88, 64, 3,239, 80, 80,230, 79, 80, 62, 61,
- 88, 63, 64, 88, 62, 0, 0, 0, 0, 1, 0,117, 2,156, 2,137, 6, 2, 0, 28, 0, 0, 1, 51, 50, 55, 54, 53, 38, 39, 38, 35,
- 34, 7, 6, 7, 53, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 7, 17, 35, 1, 20, 39,121, 55, 36, 1, 35, 63,113, 50, 50, 49,
- 49, 48, 51, 51, 53,174, 87, 68, 68, 70,107,128, 4, 91, 64, 42, 55, 75, 36, 64, 12, 12, 24, 96, 20, 9, 10, 88, 70,104, 95, 64,
- 67, 17,254,147, 0, 1, 0,117, 2,156, 2,137, 6, 2, 0, 28, 0, 0, 1, 17, 35, 17, 38, 39, 38, 53, 52, 55, 54, 51, 50, 23,
- 22, 23, 21, 38, 39, 38, 35, 34, 7, 6, 7, 20, 23, 22, 51, 1,234,127,107, 71, 68, 69, 87,173, 53, 51, 51, 48, 49, 50, 49, 50,
-113, 62, 36, 1, 37, 54,121, 4, 91,254, 65, 1,109, 17, 67, 64, 95,104, 70, 88, 10, 9, 20, 96, 24, 12, 12, 64, 36, 75, 55, 42,
- 64, 0, 0, 0, 0, 1, 1, 11, 4, 50, 2,245, 6,176, 0, 6, 0, 0, 1, 37, 21, 13, 1, 21, 37, 1, 11, 1,234,254,153, 1,
-103,254, 22, 5,187,245,139,180,180,139,245, 0, 0, 1, 1, 11, 4, 50, 2,245, 6,176, 0, 6, 0, 0, 1, 5, 53, 45, 1, 53,
- 5, 2,245,254, 22, 1,103,254,153, 1,234, 5, 39,245,139,180,180,139,245, 0, 0, 1, 0,193, 4,124, 3, 63, 6,102, 0, 6,
- 0, 0, 1, 3, 51, 27, 1, 51, 3, 1,182,245,139,180,180,139,245, 4,124, 1,234,254,153, 1,103,254, 22, 0, 0, 1, 0,193,
- 4,124, 3, 63, 6,102, 0, 6, 0, 0, 1, 51, 19, 35, 11, 1, 35, 1,182,148,245,139,180,180,139, 6,102,254, 22, 1,103,254,
-153, 0, 0, 0, 0, 1, 0,193, 4,238, 3, 63, 6,102, 0, 6, 0, 55, 64, 12, 4, 5, 2,180, 0,179, 7, 4, 2,117, 6, 7,
- 16,220,236, 57, 49, 0, 16,244,236, 50, 57, 48, 0, 75,176, 9, 84, 75,176, 14, 84, 91, 88,189, 0, 7,255,192, 0, 1, 0, 7,
- 0, 7, 0, 64, 56, 17, 55, 56, 89, 1, 51, 19, 35, 39, 7, 35, 1,182,148,245,139,180,180,139, 6,102,254,136,245,245, 0, 0,
- 0, 1, 0,193, 4,238, 3, 63, 6,102, 0, 6, 0, 55, 64, 12, 3, 0,180, 4, 1,179, 7, 3, 5,117, 1, 7, 16,220,236, 57,
- 49, 0, 16,244, 60,236, 57, 48, 0, 75,176, 9, 84, 75,176, 14, 84, 91, 88,189, 0, 7,255,192, 0, 1, 0, 7, 0, 7, 0, 64,
- 56, 17, 55, 56, 89, 1, 3, 51, 23, 55, 51, 3, 1,182,245,139,180,180,139,245, 4,238, 1,120,245,245,254,136, 0, 1, 0,214,
- 3,231, 1, 94, 6, 18, 0, 3, 0, 19, 64, 4, 5, 0, 3, 4, 16,220,220,204, 49, 0, 64, 2, 3, 2, 47,196, 48, 1, 17, 35,
- 17, 1, 94,136, 6, 18,253,213, 2, 43, 0, 0,255,255, 0,213, 5, 98, 3, 43, 5,246, 16, 6, 0,113, 0, 0, 0, 1, 1,115,
- 4,238, 3, 82, 6,102, 0, 3, 0, 0, 1, 51, 1, 35, 2,139,199,254,186,153, 6,102,254,136, 0, 1, 0,170, 4,240, 2,137,
- 6,102, 0, 3, 0, 0, 9, 1, 35, 1, 1,111, 1, 26,153,254,186, 6,102,254,138, 1,118, 0, 0, 1, 0,214,254,209, 1, 94,
- 0,252, 0, 3, 0, 19, 64, 4, 5, 0, 3, 4, 16,220,220,204, 49, 0, 64, 2, 3, 2, 47,196, 48, 37, 17, 35, 17, 1, 94,136,
-252,253,213, 2, 43, 0, 0, 0,255,255, 0,213,254,192, 3, 43,255, 84, 16, 7, 0,113, 0, 0,249, 94, 0, 0, 0, 1, 0,170,
-254, 28, 2,137,255,146, 0, 3, 0, 0, 5, 1, 35, 1, 1,111, 1, 26,153,254,186,110,254,138, 1,118, 0, 0, 0, 1, 1,115,
-254, 28, 3, 82,255,148, 0, 3, 0, 0, 5, 51, 1, 35, 2,139,199,254,186,153,108,254,136, 0, 0, 2, 0,111, 0, 0, 1,212,
- 4, 35, 0, 2, 0, 5, 0, 0, 1, 3, 33, 3, 19, 33, 1, 33,178, 1,101,179,179,254,155, 2,217, 1, 74,253, 39,254,182, 0,
- 0, 1, 0,111, 2,216, 1,212, 4, 35, 0, 2, 0, 0, 1, 3, 33, 1, 33,178, 1,101, 2,217, 1, 74, 0, 0,255,255, 0,117,
- 1,254, 1,135, 4, 35, 16, 7, 2, 23, 0, 0,254, 15, 0, 0,255,255, 0,117, 1,254, 1,135, 4, 35, 16, 7, 2, 24, 0, 0,
-254, 15, 0, 0, 0, 1, 1, 31, 1,212, 2,225, 3,150, 0, 7, 0, 0, 1, 21, 33, 53, 51, 17, 51, 17, 2,225,254, 62,150,150,
- 2,106,150,150, 1, 44,254,212, 0, 1, 1, 31, 1,212, 2,225, 3,150, 0, 7, 0, 0, 1, 53, 33, 21, 35, 17, 35, 17, 1, 31,
- 1,194,150,150, 3, 0,150,150,254,212, 1, 44, 0, 1, 0,193, 1,137, 3, 23, 3,223, 0, 11, 0, 0, 1, 53, 51, 21, 51, 21,
- 35, 21, 35, 53, 35, 53, 1,162,148,225,225,148,225, 2,254,225,225,148,225,225,148, 0, 0, 0, 0, 1, 1, 31, 2,106, 2,225,
- 3, 0, 0, 3, 0, 0, 1, 33, 53, 33, 2,225,254, 62, 1,194, 2,106,150, 0, 0, 1, 0,199, 5, 41, 3, 57, 6, 72, 0, 13,
- 0, 87, 64, 14, 11,240, 4, 7, 0,179, 14, 7, 86, 8, 1, 86, 0, 14, 16,220,236,212,236, 49, 0, 16,244, 60,212,236, 48, 0,
- 75,176, 9, 84, 88,189, 0, 14,255,192, 0, 1, 0, 14, 0, 14, 0, 64, 56, 17, 55, 56, 89, 0, 75,176, 15, 84, 75,176, 16, 84,
- 91, 75,176, 17, 84, 91, 88,189, 0, 14, 0, 64, 0, 1, 0, 14, 0, 14,255,192, 56, 17, 55, 56, 89, 19, 51, 30, 1, 51, 50, 54,
- 55, 51, 14, 1, 35, 34, 38,199,118, 11, 97, 87, 86, 96, 13,118, 10,158,145,145,158, 6, 72, 75, 75, 74, 76,143,144,144, 0, 0,
- 0, 1, 1,154, 5, 68, 2,102, 6, 16, 0, 3, 0, 21, 64, 9, 2,131, 0,205, 4, 1, 25, 0, 4, 16,212,236, 49, 0, 16,252,
-236, 48, 0, 1, 51, 21, 35, 1,154,204,204, 6, 16,204, 0, 0, 0, 2, 0,238, 4,225, 3, 18, 7, 6, 0, 11, 0, 23, 0, 32,
- 64, 17, 3,193, 21,242, 9,193, 15,241, 24, 0, 86, 12,120, 6, 86, 18, 24, 16,212,236,244,236, 49, 0, 16,244,236,244,236, 48,
- 1, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 20, 6, 35, 34, 38, 53, 52, 54, 51, 50, 22, 2,152, 88, 64, 65, 87, 87, 65,
- 64, 88,122,159,115,115,159,159,115,115,159, 5,244, 63, 88, 87, 64, 65, 87, 88, 64,115,160,160,115,115,159,159, 0, 1, 1, 76,
-254,117, 2,193, 0, 0, 0, 19, 0, 32, 64, 15, 11, 14, 10, 7,243, 14,244, 0, 1, 0, 10, 4, 39, 17, 20, 16,212,236,196,212,
-204, 49, 0, 47,252,252,196, 18, 57, 48, 33, 51, 14, 1, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 53, 52, 54, 1,184,
-119, 45, 43, 55, 54, 32, 62, 31, 38, 68, 30,122,115, 53, 61, 88, 31, 46, 46, 15, 15,133, 10, 10, 87, 93, 48,105, 0, 1, 0,182,
- 5, 29, 3, 74, 6, 55, 0, 27, 0, 99, 64, 36, 0, 18, 7, 14, 11, 4, 1, 18, 7, 15, 11, 4, 18,195, 25, 7, 4,195, 21, 11,
-237, 28, 15, 1, 14, 0, 7, 21, 86, 22,119, 7, 86, 8,118, 28, 16,244,236,252,236, 17, 57, 57, 57, 57, 49, 0, 16,252, 60,252,
-212, 60,236, 17, 18, 57, 17, 18, 57, 17, 18, 57, 17, 18, 57, 48, 0, 75,176, 9, 84, 75,176, 12, 84, 91, 88,189, 0, 28,255,192,
- 0, 1, 0, 28, 0, 28, 0, 64, 56, 17, 55, 56, 89, 1, 39, 46, 1, 35, 34, 6, 7, 35, 62, 1, 51, 50, 22, 31, 1, 30, 1, 51,
- 50, 54, 55, 51, 14, 1, 35, 34, 38, 1,252, 57, 22, 33, 13, 38, 36, 2,125, 2,102, 91, 38, 64, 37, 57, 22, 33, 13, 38, 36, 2,
-125, 2,102, 91, 38, 64, 5, 90, 55, 20, 19, 73, 82,135,147, 28, 33, 55, 20, 19, 73, 82,135,147, 28, 0, 0, 0, 0, 2, 0,240,
- 4,238, 3,174, 6,102, 0, 3, 0, 7, 0, 66, 64, 17, 6, 2,180, 4, 0,179, 8, 4, 7, 3, 0, 5, 1, 3, 5, 7, 8, 16,
-212,220,212,204, 17, 57, 17, 18, 57, 49, 0, 16,244, 60,236, 50, 48, 0, 75,176, 9, 84, 75,176, 14, 84, 91, 88,189, 0, 8,255,
-192, 0, 1, 0, 8, 0, 8, 0, 64, 56, 17, 55, 56, 89, 1, 51, 3, 35, 3, 51, 3, 35, 2,252,178,248,135,129,170,223,137, 6,
-102,254,136, 1,120,254,136, 0, 0, 1,255,255, 1,222, 2,173, 4, 8, 0, 15, 0, 0, 3, 37, 51, 21, 20, 23, 22, 59, 1, 21,
- 35, 34, 39, 38, 53, 5, 1, 1, 22,184, 38, 38,105, 43, 64,175, 87, 82,254,235, 3,100,164,148,153, 49, 48,156, 96, 90,200,162,
- 0, 1, 0,239, 4,238, 3, 16, 6,102, 0, 11, 0, 0, 1, 39, 7, 35, 55, 39, 51, 23, 55, 51, 7, 23, 2, 92, 92, 93,180,181,
-181,180, 93, 92,180,182,182, 4,238, 97, 97,187,189, 96, 96,189,187, 0, 0, 0, 0, 2, 0,117, 1,170, 2,253, 5, 15, 0, 13,
- 0, 21, 0, 0, 1, 22, 21, 20, 7, 4, 39, 38, 55, 3, 51, 23, 55, 51, 1, 6, 23, 22, 51, 50, 55, 52, 2, 5,178,242,254,246,
- 1, 1,182,250,137,191,183,137,254,188,140, 3, 2,134,128, 1, 3,220,249,180,129, 3, 3,135,192,241, 1, 47,224,224,254,138,
-174,152, 77, 77,140, 0, 0, 0, 0, 1, 0,121, 2,156, 0,238, 6, 4, 0, 3, 0, 13,177, 2, 3, 47,204, 49, 0,177, 0, 3,
- 47,196, 48, 19, 51, 17, 35,122,116,116, 6, 3,252,153, 0, 0, 0, 1, 0,117, 2,156, 2,144, 5, 47, 0, 50, 0, 0, 1, 21,
- 38, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 31, 1, 22, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 39, 53, 22, 23, 22, 51, 50, 54,
- 53, 52, 39, 38, 47, 1, 38, 39, 38, 53, 52, 55, 54, 51, 50, 23, 22, 2,106, 49, 53, 52, 57, 87, 43, 43, 31, 31, 93, 40,125, 50,
- 52, 78, 77,136, 57, 62, 61, 68, 64, 63, 62, 61, 82, 88, 32, 28,111, 40,108, 48, 48, 71, 70,130, 64, 57, 57, 5, 13, 97, 22, 11,
- 11, 23, 24, 47, 36, 20, 21, 18, 8, 24, 42, 43, 77, 87, 51, 51, 10, 10, 19,107, 30, 15, 15, 50, 45, 42, 23, 20, 23, 8, 21, 41,
- 42, 73, 88, 48, 49, 9, 8, 0, 0, 1, 0,117, 2,156, 3, 33, 5, 15, 0, 11, 0, 0, 1, 3, 1, 35, 39, 7, 35, 1, 3, 51,
- 23, 55, 3, 20,255, 1, 12,137,205,205,137, 1, 18,251,137,187,187, 5, 15,254,207,254,190,246,246, 1, 72, 1, 43,223,223, 0,
- 0, 1, 0,117, 2,156, 2,137, 6, 2, 0, 28, 0, 0, 1, 17, 35, 17, 38, 39, 38, 53, 52, 55, 54, 51, 50, 23, 22, 23, 21, 38,
- 39, 38, 35, 34, 7, 6, 7, 20, 23, 22, 51, 1,234,127,107, 71, 68, 69, 87,173, 53, 51, 51, 48, 49, 50, 49, 50,113, 62, 36, 1,
- 37, 54,121, 4, 91,254, 65, 1,109, 17, 67, 64, 95,104, 70, 88, 10, 9, 20, 96, 24, 12, 12, 64, 36, 75, 55, 42, 64, 0, 0, 0,
- 0, 1, 0,214, 0, 0, 3, 29, 5, 88, 0, 5, 0, 21, 64, 9, 1,169, 3, 0, 0, 8, 4, 2, 6, 16,196,212,236, 49, 0, 47,
-212,236, 48, 33, 17, 33, 53, 33, 17, 2,149,254, 65, 2, 71, 4,208,136,250,168, 0, 1, 0,214, 0, 0, 3, 29, 5, 88, 0, 7,
- 0, 39, 64, 24, 63, 4, 63, 1, 47, 4, 47, 1, 31, 4, 31, 1, 6, 1,169, 4, 5, 0, 0, 4, 8, 6, 2, 8, 16,196,212,236,
- 50, 49, 0, 47,212,220,236, 93, 48, 33, 17, 33, 53, 33, 17, 51, 17, 2,149,254, 65, 1,191,136, 3,156,136, 1, 52,250,168, 0,
- 0, 1, 0,214, 0, 0, 3, 29, 5, 88, 0, 7, 0, 25, 64, 11, 1,169, 4, 5, 0, 0, 4, 8, 6, 2, 8, 16,196,212,236, 50,
- 49, 0, 47,212,220,236, 48, 33, 17, 33, 53, 33, 17, 51, 17, 2,149,254, 65, 1,191,136, 2,104,136, 2,104,250,168, 0, 0, 0,
- 0, 1, 0,214, 0, 0, 3, 29, 5, 88, 0, 7, 0, 39, 64, 24,112, 4,112, 1, 48, 4, 48, 1, 16, 4, 16, 1, 6, 4,169, 1,
- 5, 0, 0, 4, 8, 6, 2, 8, 16,196,212,236, 50, 49, 0, 47,212,220,236, 93, 48, 33, 17, 33, 53, 33, 17, 51, 17, 2,149,254,
- 65, 1,191,136, 1, 52,136, 3,156,250,168, 0, 0, 1, 0,214, 0, 0, 3, 29, 5, 88, 0, 5, 0, 21, 64, 9, 1, 0,169, 4,
- 0, 8, 2, 4, 6, 16,196,212,236, 49, 0, 47,236,196, 48, 37, 17, 51, 17, 33, 53, 2,149,136,253,185,136, 4,208,250,168,136,
-255,255, 0,193,253,236, 3, 63,255,214, 16, 3, 2, 29, 0, 0,249,112, 0, 0,255,255, 0,213, 4,226, 3, 43, 6,118, 18, 35,
- 0,113, 0, 0, 0,128, 18, 2, 0,113, 0,128, 0, 2, 1, 21, 4,238, 2,235, 6,102, 0, 3, 0, 7, 0, 0, 1, 51, 17, 35,
- 1, 51, 17, 35, 1, 21,150,150, 1, 64,150,150, 6,102,254,136, 1,120,254,136,255,255, 0,238,253, 46, 3, 18,255, 83, 16, 7,
- 2, 51, 0, 0,248, 77, 0, 0, 0, 1, 0,182,254,118, 3, 74,255,144, 0, 27, 0, 0, 1, 39, 46, 1, 35, 34, 6, 7, 35, 62,
- 1, 51, 50, 22, 31, 1, 30, 1, 51, 50, 54, 55, 51, 14, 1, 35, 34, 38, 1,252, 57, 22, 33, 13, 38, 36, 2,125, 2,102, 91, 38,
- 64, 37, 57, 22, 33, 13, 38, 36, 2,125, 2,102, 91, 38, 64,254,179, 55, 20, 19, 73, 82,135,147, 28, 33, 55, 20, 19, 73, 82,135,
-147, 28, 0, 0,255,255,252,168, 4,240,254,135, 6,102, 16, 7, 0, 67,251,254, 0, 0, 0, 0,255,255,253,113, 4,238,255, 80,
- 6,102, 16, 7, 0,118,251,254, 0, 0, 0, 0,255,255,252,191, 4,238,255, 61, 6,102, 16, 7, 2, 31,251,254, 0, 0, 0, 0,
-255,255,252,180, 5, 29,255, 72, 6, 55, 16, 7, 2, 53,251,254, 0, 0, 0, 0,255,255,252,217, 5, 98,255, 47, 5,246, 16, 7,
- 0,113,252, 4, 0, 0, 0, 0,255,255,251,236, 5,124, 0, 20, 6, 11, 16, 7, 5,171,252, 0, 0, 0, 0, 0,255,255,252,191,
- 5, 41,255, 49, 6, 72, 16, 7, 2, 49,251,248, 0, 0, 0, 0,255,255,253,164, 5, 68,254,112, 6, 16, 16, 7, 2, 50,252, 10,
- 0, 0, 0, 0,255,255,252,213, 5, 70,255, 39, 6, 16, 16, 7, 0,106,251,254, 0, 0, 0, 0, 0, 1,253, 55, 4,242,254,247,
- 6,123, 0, 25, 0, 34, 64, 9, 20, 86, 64, 5,128, 12, 86, 25, 13, 47,204,236, 26,220, 26,236, 49, 0, 64, 6, 23,193, 64, 2,
-192, 13, 47, 26,220, 26,236, 48, 1, 54, 51, 50, 22, 21, 20, 15, 1, 6, 7, 6, 21, 35, 53, 52, 54, 63, 1, 54, 53, 52, 38, 35,
- 34, 7,253, 55,112,105,104,127, 88, 44, 35, 4, 7,119, 30, 51, 45, 46, 62, 71, 90,100, 6, 72, 51, 85, 67, 61, 65, 32, 26, 9,
- 16, 32, 12, 40, 54, 37, 34, 34, 40, 21, 36, 52,255,255,252,236, 4,225,255, 16, 7, 6, 16, 7, 2, 51,251,254, 0, 0, 0, 0,
-255,255,252,244, 4,238,255,178, 6,102, 16, 7, 2, 54,252, 4, 0, 0, 0, 0,255,255,252,197, 4,238,255, 67, 6,102, 16, 7,
- 2, 32,252, 4, 0, 0, 0, 0, 0, 1,253,188, 4,236,254, 68, 6,168, 0, 3, 0, 0, 1, 17, 35, 17,254, 68,136, 6,168,254,
- 68, 1,188, 0,255,255,252,240, 4,236,255, 16, 6,168, 16, 39, 2, 85,255, 52, 0, 0, 16, 7, 2, 85, 0,204, 0, 0, 0, 0,
- 0, 2,252, 93, 4,238,255, 27, 6,102, 0, 3, 0, 7, 0, 0, 1, 19, 35, 3, 33, 19, 35, 3,253, 15,205,135,248, 2, 0,190,
-137,223, 6,102,254,136, 1,120,254,136, 1,120,255,255,252,191, 5, 41,255, 49, 6,214, 16, 39, 2, 50,252, 4, 0,198, 16, 7,
- 2, 49,251,248, 0, 0, 0, 0,255,255,252,191, 5, 41,255, 49, 6, 72, 16, 15, 2, 49,255,248, 11,113,192, 0, 0, 1,254, 31,
- 3,233,255, 68, 5, 40, 0, 3, 0, 10, 64, 3, 2, 1, 4, 0, 16,212,204, 48, 1, 35, 19, 51,254,242,211,164,129, 3,233, 1,
- 63, 0, 0, 0, 0, 1,253,144, 4,194,254,130, 6,193, 0, 8, 0, 0, 1, 16, 35, 53, 22, 53, 35, 53, 51,254,130,242,112,112,
-242, 5,195,254,255,123, 3,137,254, 0, 0, 0, 0, 1,253,144, 4,194,254,130, 6,193, 0, 8, 0, 0, 1, 53, 51, 21, 35, 20,
- 55, 21, 34,253,144,241,111,112,242, 5,195,254,254,137, 3,123, 0, 1,255,121, 4,154, 0,135, 6, 18, 0, 3, 0, 0, 3, 51,
- 3, 35, 64,199,117,153, 6, 18,254,136, 0, 0,255,255,252,168,253,223,254,135,255, 85, 16, 7, 0, 67,251,254,248,239, 0, 0,
-255,255,253,113,253,221,255, 80,255, 85, 16, 7, 0,118,251,254,248,239, 0, 0, 0, 1,253, 12,253, 38,254, 68,255, 16, 0, 7,
- 0, 0, 1, 53, 51, 17, 35, 53, 35, 53,253,188,136,136,176,254, 95,177,254, 22,177,136, 0, 0, 0, 1,253,188,253, 38,254,244,
-255, 16, 0, 7, 0, 0, 1, 51, 21, 35, 21, 35, 17, 51,254, 68,176,176,136,136,254, 95,136,177, 1,234, 0, 0, 0, 1,254, 85,
- 5,134, 0, 63, 7,112, 0, 5, 0, 0, 3, 33, 53, 33, 17, 35, 73,254,158, 1,234,136, 6,232,136,254, 22, 0, 0, 1,254,240,
- 3,107, 0,123, 4,224, 0, 19, 0, 49, 64, 6, 7, 86, 14, 4, 17, 0, 47, 75,176, 12, 84, 75,176, 13, 84, 91, 75,176, 14, 84,
- 91, 88,185, 0, 0, 0, 64, 56, 89,220, 50,220,236, 49, 0, 64, 5, 10, 4,193, 0, 17, 47,196,252,204, 48, 1, 53, 30, 1, 51,
- 50, 54, 53, 52, 38, 39, 51, 30, 1, 21, 20, 6, 35, 34, 38,254,240, 61, 88, 31, 46, 46, 15, 15,133, 10, 10, 87, 93, 48,105, 3,
-215,119, 45, 43, 55, 54, 32, 62, 31, 38, 68, 30,122,115, 53, 0, 0, 1,253,129,252,235,254,147,255, 16, 0, 16, 0, 0, 5, 20,
- 21, 34, 6, 21, 20, 22, 51, 20, 21, 34, 39, 38, 52, 55, 54,254,147, 64, 88, 88, 64,115, 80, 79, 79, 80,240, 62, 61, 88, 64, 63,
- 88, 62, 61, 79, 80,230, 80, 80, 0, 1,253, 11,253,215,254,245,255, 16, 0, 7, 0, 0, 1, 51, 21, 33, 53, 51, 53, 51,254, 68,
-177,254, 22,177,136,254, 95,136,136,177, 0, 0, 0, 1,253, 11,253,215,254,245,255, 16, 0, 7, 0, 0, 1, 35, 53, 33, 21, 35,
- 21, 35,253,188,177, 1,234,177,136,254,136,136,136,177, 0, 0, 0, 1,253, 11,253, 38,254,245,255, 16, 0, 11, 0, 0, 1, 35,
- 53, 51, 53, 51, 21, 51, 21, 35, 21, 35,253,188,177,177,136,177,177,136,253,215,136,177,177,136,177, 0, 0, 0, 0, 1,253, 11,
-254,136,254,245,255, 16, 0, 3, 0, 0, 1, 53, 33, 21,253, 11, 1,234,254,136,136,136, 0, 0, 0, 1,253,122,254, 86,255,208,
- 0,128, 0, 13, 0, 0, 39, 21, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 61, 1, 48, 82, 81,181,254,233,105, 38, 38,128,148,214,
- 96, 96,156, 48, 49,153,148, 0, 0, 1,253,119,254, 86,255,205, 0,128, 0, 13, 0, 0, 37, 51, 21, 20, 23, 22, 59, 1, 21, 35,
- 34, 39, 38, 53,253,119,184, 38, 38,105,233,254,181, 81, 82,128,148,153, 49, 48,156, 96, 96,214,255,255,253,154,254,135,254,102,
-255, 83, 16, 7, 2, 50,252, 0,249, 67, 0, 0,255,255,252,213,254,137,255, 39,255, 83, 16, 7, 0,106,251,254,249, 67, 0, 0,
-255,255,252,236,253, 46,255, 16,255, 83, 16, 7, 2, 51,251,254,248, 77, 0, 0, 0, 1,253,106,254, 20,254,143,255, 84, 0, 3,
- 0, 10, 64, 3, 3, 0, 4, 0, 16,212,204, 48, 5, 51, 3, 35,253,188,211,164,129,172,254,192,255,255,253, 35,254,117,254,193,
- 0, 0, 16, 7, 0,122,252, 0, 0, 0, 0, 0,255,255,253, 76,254,117,254,193, 0, 0, 16, 7, 2, 52,252, 0, 0, 0, 0, 0,
- 0, 1,253,188,253,152,254, 68,255, 84, 0, 3, 0, 0, 5, 17, 35, 17,254, 68,136,172,254, 68, 1,188, 0, 0, 0, 1,252,240,
-254, 10,255, 23,255, 84, 0, 7, 0, 0, 7, 17, 35, 53, 33, 21, 35, 17,233,137,254,235,137,172,254,182,194,194, 1, 74, 0, 0,
- 0, 1,252, 99,254, 57,255,152,255, 88, 0, 20, 0, 0, 1, 6, 35, 34, 3, 52, 53, 51, 22, 51, 50, 55, 51, 22, 23, 50, 55, 51,
- 2, 7, 34,253,254, 60,116,218, 17,117, 14,104,101, 15,118, 12,105,102, 15,118, 15,220,116,254,139, 82, 1, 26, 2, 3,150,150,
-149, 1,150,254,226, 1, 0, 0,255,255,252,197,253,218,255, 67,255, 82, 16, 7, 2, 32,252, 4,248,236, 0, 0,255,255,252,191,
-253,221,255, 61,255, 85, 16, 7, 2, 31,251,254,248,239, 0, 0,255,255,252,191,254, 57,255, 49,255, 88, 16, 7, 2, 49,251,248,
-249, 16, 0, 0,255,255,252,191,254, 54,255, 49,255, 85, 16, 15, 2, 49,255,248, 4,126,192, 0,255,255,252,180,254, 57,255, 72,
-255, 83, 16, 7, 2, 53,251,254,249, 28, 0, 0,255,255,252,217,254,192,255, 47,255, 84, 16, 7, 2, 38,252, 4, 0, 0, 0, 0,
-255,255,251,236,254, 29, 0, 20,254,172, 16, 7, 0, 66,252, 0, 0, 0, 0, 0,255,255,251,236,254, 29, 0, 20,255,238, 16, 7,
- 5,140,252, 0, 0, 0, 0, 0, 0, 1,251,140, 1,236,255,173, 3, 12, 0, 27, 0, 0, 3, 21, 14, 1, 35, 34, 39, 38, 39, 46,
- 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 23, 22, 23, 22, 51, 50, 54, 83, 75,143, 79, 90,113, 22, 11, 77,103, 51, 79,141, 73,
- 78,146, 83, 53,100, 74, 12, 21,116, 93, 70,137, 3, 12,174, 59, 55, 51, 10, 4, 33, 24, 59, 63,174, 60, 54, 22, 31, 5, 10, 55,
- 61, 0, 0, 0, 0, 1,253,119, 1,196,255,136, 2,104, 0, 3, 0, 0, 3, 21, 33, 53,120,253,240, 2,104,164,164, 0, 0, 0,
- 0, 1,250,237, 1,196,255,255, 2,104, 0, 3, 0, 0, 1, 53, 33, 21,250,237, 5, 18, 1,196,164,164, 0, 0, 0, 1,251,104,
-255,162,255,188, 4,188, 0, 3, 0, 0, 5, 39, 1, 23,251,200, 96, 3,245, 95, 94, 78, 4,204, 79, 0, 0, 0, 0, 1,250, 18,
-255,186,255,145, 6, 23, 0, 3, 0, 0, 5, 39, 1, 23,250,121,103, 5, 25,102, 70, 88, 6, 5, 89, 0, 0, 0,255,255,253,249,
-253, 59,255, 11,255, 96, 16, 15, 2,100,252,140,252, 75,192, 0,255,255,252,241,254, 91,255, 24,255,165, 16, 15, 2,114,252, 8,
-253,175,192, 0, 0, 2,252,240,253, 46,255, 23,255, 84, 0, 3, 0, 7, 0, 0, 7, 17, 33, 17, 1, 17, 33, 17,233,253,217, 1,
-158,254,235,172,253,218, 2, 38,254, 98, 1, 22,254,234, 0, 0, 0, 1,252, 99,254, 57,255,152,255, 88, 0, 20, 0, 0, 5, 54,
- 51, 50, 19, 20, 21, 35, 38, 35, 34, 7, 35, 38, 39, 34, 7, 35, 18, 55, 50,253,254, 59,116,218, 17,118, 13,103,102, 16,118, 11,
-105,102, 15,118, 15,220,116,250, 82,254,230, 2, 3,150,150,149, 1,150, 1, 30, 1, 0, 0, 0, 0, 1,253, 42, 4,242,254,230,
- 6,174, 0, 11, 0, 0, 1, 7, 39, 55, 39, 55, 23, 55, 23, 7, 23, 7,254, 8,125, 96,125,125, 96,125,125, 96,125,125, 96, 5,
-112,125, 96,125,125, 96,125,125, 96,125,125, 96, 0, 1,254, 6, 4,194,255, 32, 6,210, 0, 29, 0, 0, 1, 46, 1, 53, 52, 54,
- 55, 21, 14, 1, 21, 20, 23, 22, 31, 1, 30, 1, 21, 20, 6, 7, 53, 62, 1, 53, 52, 39, 38, 39,254, 67, 33, 28,147,135, 82, 73,
- 9, 12, 18, 55, 33, 28,147,135, 82, 73, 9, 12, 18, 5,199, 28, 48, 28, 80, 81, 2,110, 2, 27, 28, 10, 12, 15, 14, 43, 28, 48,
- 28, 80, 81, 2,110, 2, 27, 28, 10, 12, 15, 14,255,255,251,236, 4, 58, 0, 20, 6, 11, 16, 39, 5,171,252, 0, 0, 0, 16, 7,
- 5,171,252, 0,254,190, 0, 0,255,255,252,168, 4,240,254,135, 6,102, 16, 7, 0, 67,251,254, 0, 0, 0, 0,255,255,253,113,
- 4,238,255, 80, 6,102, 16, 7, 0,118,251,254, 0, 0, 0, 0,255,255,252,180, 5, 29,255, 72, 6, 55, 16, 7, 2, 53,251,254,
- 0, 0, 0, 0,255,255,253,132, 4,194,254,118, 6, 97, 16, 7, 5,114,251,254, 0, 0, 0, 0,255,255,252,231, 5, 70,255, 98,
- 7,210, 16, 7, 2,166,252, 16, 0, 0, 0, 0,255,255,253,198,254, 86,254,162,255,164, 16, 7, 2,163,252, 16, 0, 0, 0, 0,
- 0, 1,252,213, 5, 29,255, 43, 6, 73, 0, 7, 0, 0, 3, 35, 53, 33, 21, 35, 17, 33,213,150,254,214,150, 2, 86, 5, 29,150,
-150, 1, 44, 0, 0, 2,253, 31,254, 50,254,225,255,184, 0, 3, 0, 7, 0, 0, 1, 33, 53, 33, 53, 33, 53, 33,254,225,254, 62,
- 1,194,254, 62, 1,194,254, 50,120,150,120, 0, 0, 2,253, 21,254, 20,254,235,255,140, 0, 3, 0, 7, 0, 0, 5, 51, 17, 35,
- 1, 51, 17, 35,253, 21,150,150, 1, 64,150,150,116,254,136, 1,120,254,136, 0, 0, 1,253, 31,254, 20,254,225,255,214, 0, 5,
- 0, 0, 5, 33, 17, 35, 17, 33,253, 31, 1,194,150,254,212, 42,254, 62, 1, 44, 0, 1,252,182, 4,238,255, 74, 6,102, 0, 39,
- 0, 0, 1, 55, 51, 7, 22, 23, 22, 51, 50, 55, 54, 55, 51, 6, 7, 6, 35, 34, 39, 38, 39, 7, 35, 55, 38, 39, 38, 35, 34, 7,
- 6, 7, 35, 54, 55, 54, 51, 50, 23, 22,253,255, 66,109,107, 11, 22, 16, 13, 38, 18, 18, 2,125, 2, 51, 51, 91, 38, 32, 30, 33,
- 66,110,107, 13, 20, 16, 13, 38, 18, 18, 2,125, 2, 51, 51, 91, 38, 32, 30, 5,255,103,169, 9, 14, 10, 36, 37, 82,135, 74, 73,
- 14, 13, 29,103,168, 11, 13, 10, 36, 37, 82,135, 74, 73, 14, 13, 0, 2,253, 72, 4,137,254,176, 6,204, 0, 3, 0, 7, 0, 0,
- 1, 51, 21, 35, 19, 51, 21, 35,253, 72,150,150,210,150,150, 5, 31,150, 2, 67,150, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0,
- 0, 0, 16, 34, 6,134, 0,183, 16, 3, 6,134, 0, 0, 0,167, 0, 1,252, 99,254, 40,255,157,255,194, 0, 13, 0, 0, 1, 55,
- 33, 23, 35, 39, 55, 51, 7, 33, 39, 51, 23, 7,254,112,132,254, 25,132,127,175,175,127,132, 1,231,132,126,175,175,254, 40,155,
-155,205,205,155,155,205,205, 0, 0, 1,253, 51,254, 20,254,205,255,164, 0, 8, 0, 0, 1, 35, 53, 7, 53, 55, 23, 21, 39,254,
- 50,100,155,205,205,155,254, 20,231,132,126,175,175,126,132, 0, 0, 1,253,120, 4,225,254,136, 7, 6, 0, 16, 0, 0, 1, 6,
- 7, 6, 21, 20, 23, 22, 23, 21, 38, 39, 38, 52, 55, 54, 55,254,136, 64, 42, 44, 44, 42, 64,114, 78, 80, 80, 78,114, 6,139, 1,
- 42, 44, 64, 65, 43, 43, 1,123, 1, 79, 80,230, 80, 78, 1, 0,255,255,252,191, 5, 41,255, 49, 6,216, 16, 39, 2, 89, 0, 0,
- 0,144, 16, 6, 2, 79, 0,229,255,255,253, 42,253, 84,254,230,255, 16, 16, 7, 2,133, 0, 0,248, 98, 0, 0, 0, 1,253,120,
- 4,225,254,136, 7, 6, 0, 16, 0, 0, 1, 53, 22, 23, 22, 20, 7, 6, 7, 53, 54, 55, 54, 53, 52, 39, 38,253,120,114, 78, 80,
- 80, 78,114, 64, 42, 44, 44, 42, 6,139,123, 1, 78, 80,230, 80, 79, 1,123, 1, 43, 43, 65, 64, 44, 42, 0, 0,255,255,255, 46,
- 5, 68,255,250, 6, 16, 16, 7, 2, 50,253,148, 0, 0, 0, 0,255,255,252,112,254, 27, 3,144,255,133, 16, 7, 5,172,252,201,
- 0, 0, 0, 0,255,255,252,112, 6,107, 3,144, 7,213, 16, 7, 5,172,252,201, 8, 80, 0, 0, 0, 1,253, 42, 5, 29, 2,214,
- 6, 55, 0, 35, 0, 0, 3, 39, 38, 39, 38, 35, 34, 7, 6, 7, 35, 54, 55, 54, 51, 50, 23, 22, 31, 1, 22, 23, 22, 51, 50, 55,
- 54, 55, 51, 6, 7, 6, 35, 34, 39, 38, 4,144, 28, 79, 44, 36,101, 53, 70, 5,162, 4,113,112,200, 91, 63, 57, 90,144, 28, 79,
- 44, 36, 97, 57, 71, 4,162, 4,113,112,200, 91, 63, 57, 5, 90, 55, 11, 18, 10, 36, 48, 71,135, 74, 73, 14, 13, 34, 55, 11, 18,
- 10, 36, 44, 75,135, 74, 73, 14, 13, 0, 0, 0,255,255,252,112, 6, 4, 3,144, 7,110, 16, 7, 5,173,252,201, 0, 0, 0, 0,
- 0, 1,252,119,254, 40, 3,147,255,194, 0, 8, 0, 0, 1, 53, 33, 39, 51, 23, 7, 35, 55,252,119, 6,115,132,126,175,175,126,
-132,254,195,100,155,205,205,155, 0, 1, 0,160, 4,116, 1,159, 6,102, 0, 3, 0, 17, 64, 6, 1, 0, 4, 2, 0, 4, 16,212,
-204, 49, 0, 16,212,204, 48, 27, 1, 51, 3,160, 65,190,110, 4,116, 1,242,254, 14, 0, 0, 0, 0, 1, 0,160,254, 86, 1,159,
- 0, 72, 0, 3, 0, 17, 64, 6, 2, 3, 4, 0, 2, 4, 16,212,204, 49, 0, 16,212,204, 48, 37, 3, 35, 19, 1,159, 65,190,110,
- 72,254, 14, 1,242, 0, 0, 0, 0, 1, 1,182,254, 86, 2,146,255,164, 0, 13, 0, 0, 1, 35, 34, 39, 38, 61, 1, 51, 21, 20,
- 23, 22, 59, 1, 2,146,148, 26, 26, 20,149, 10, 12, 14, 35,254, 86, 33, 26, 46,229,229, 14, 12, 13, 0, 0, 0,255,255, 0,158,
-255, 18, 1,195, 4, 35, 18, 6, 0, 30, 0, 0, 0, 1, 1,115, 4,238, 3, 82, 6,102, 0, 3, 0, 49, 64, 9, 2,180, 0,179,
- 4, 3, 68, 1, 4, 16,212,236, 49, 0, 16,244,236, 48, 0, 75,176, 9, 84, 75,176, 14, 84, 91, 88,189, 0, 4,255,192, 0, 1,
- 0, 4, 0, 4, 0, 64, 56, 17, 55, 56, 89, 1, 51, 1, 35, 2,139,199,254,186,153, 6,102,254,136, 0, 0, 0,255,255, 0,215,
- 5, 70, 3, 82, 7,210, 18, 38, 0,106, 0, 0, 17, 7, 2,165, 0, 0, 1,108, 0, 20, 0, 64, 7,175, 8,159, 8, 95, 8, 3,
- 93, 64, 5, 95, 8, 15, 8, 2,113, 48, 0, 0,255,255, 0, 16, 0, 0, 5,104, 6,102, 16, 39, 2,165,254,218, 0, 0, 16, 6,
- 2,176, 0, 0,255,255, 0,219, 2, 72, 1,174, 3, 70, 18, 6, 0,121, 0, 0,255,255,255,231, 0, 0, 5,117, 6,102, 16, 39,
- 2,165,254,116, 0, 0, 16, 7, 2,180, 0,234, 0, 0, 0, 0,255,255,255,243, 0, 0, 6, 31, 6,102, 16, 39, 2,165,254,128,
- 0, 0, 16, 7, 2,182, 0,228, 0, 0, 0, 0,255,255,255,237, 0, 0, 2,125, 6,102, 16, 39, 2,165,254,122, 0, 0, 16, 7,
- 2,184, 0,234, 0, 0, 0, 0,255,255,255,242,255,227, 6, 1, 6,102, 16, 39, 2,165,254,127, 0, 0, 16, 6, 2,190, 40, 0,
-255,255,255,225, 0, 0, 6,145, 6,102, 16, 39, 2,165,254,110, 0, 0, 16, 7, 2,195, 1,170, 0, 0, 0, 0,255,255,255,219,
- 0, 0, 6, 5, 6,102, 16, 39, 2,165,254,104, 0, 0, 16, 6, 2,199, 54, 0,255,255, 0, 5, 0, 0, 2,128, 7,210, 16, 39,
- 2,166,255, 46, 0, 0, 18, 6, 2,215, 15, 0,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 6, 0, 36, 0, 0,255,255, 0,201,
- 0, 0, 4,236, 5,213, 18, 6, 0, 37, 0, 0, 0, 1, 0,201, 0, 0, 4,106, 5,213, 0, 5, 0, 25, 64, 12, 4,149, 1,129,
- 0, 7, 2, 4, 28, 1, 4, 6, 16,252,252,204,196, 49, 0, 47,244,236, 48, 51, 17, 33, 21, 33, 17,201, 3,161,253, 41, 5,213,
-170,250,213, 0, 0, 2, 0, 16, 0, 0, 5,104, 5,213, 0, 2, 0, 6, 0, 61, 64, 12, 66, 0,149, 4,129, 1,149, 3, 8, 6,
- 3, 7, 16,212,196,196, 49, 0, 47,236,244,236, 48, 75, 83, 88, 64, 18, 0, 17, 5, 4, 3, 2, 17, 6, 6, 5, 0, 17, 4, 1,
- 17, 3, 3, 4, 5, 7, 16,236, 16,236, 7, 16,236, 8, 16,236, 89, 9, 1, 33, 5, 1, 51, 1, 2,188,254,102, 3, 53,251,185,
- 2, 58,229, 2, 57, 5, 14,251,154,168, 5,213,250, 43, 0, 0,255,255, 0,201, 0, 0, 4,139, 5,213, 18, 6, 0, 40, 0, 0,
-255,255, 0, 92, 0, 0, 5, 31, 5,213, 18, 6, 0, 61, 0, 0,255,255, 0,201, 0, 0, 5, 59, 5,213, 18, 6, 0, 43, 0, 0,
- 0, 3, 0,115,255,227, 5,217, 5,240, 0, 3, 0, 18, 0, 33, 0, 50, 64, 28, 4,149, 19,145, 34, 3,149, 0,173, 34, 11,149,
- 26,140, 34, 35, 16, 1, 15, 25, 22, 51, 0, 8, 25, 30, 16, 34, 16,252,236,196,244,236,196,236, 49, 0, 16,244,236, 16,244,236,
- 16,244,236, 48, 1, 33, 21, 33, 1, 34, 7, 6, 17, 16, 0, 51, 50, 55, 54, 17, 16, 39, 38, 39, 32, 0, 17, 16, 7, 6, 33, 32,
- 39, 38, 17, 16, 55, 54, 1,197, 2,194,253, 62, 1, 98,220,129,130, 1, 3,220,220,129,128,128,129,220, 1, 58, 1,120,188,188,
-254,198,254,197,188,189,189,188, 3,112,170, 2,134,164,164,254,229,254,230,254,184,164,164, 1, 26, 1, 27,164,164,164,254, 91,
-254,158,254,159,210,211,210,210, 1, 98, 1, 98,211,210, 0, 0,255,255, 0,201, 0, 0, 1,147, 5,213, 18, 6, 0, 44, 0, 0,
-255,255, 0,201, 0, 0, 5,106, 5,213, 18, 6, 0, 46, 0, 0, 0, 1, 0, 16, 0, 0, 5,104, 5,213, 0, 6, 0, 60, 64, 11,
- 66, 6,149, 2,129, 5, 1, 8, 4, 1, 7, 16,212,196,196, 49, 0, 47, 60,244,236, 48, 75, 83, 88, 64, 18, 6, 17, 3, 2, 1,
- 5, 17, 4, 4, 3, 6, 17, 2, 0, 17, 1, 1, 2, 5, 7, 16,236, 16,236, 7, 16,236, 8, 16,236, 89, 51, 35, 1, 51, 1, 35,
- 1,229,213, 2, 58,229, 2, 57,210,254, 38, 5,213,250, 43, 5, 14, 0, 0, 0,255,255, 0,201, 0, 0, 6, 31, 5,213, 18, 6,
- 0, 48, 0, 0,255,255, 0,201, 0, 0, 5, 51, 5,213, 18, 6, 0, 49, 0, 0, 0, 3, 0,201, 0, 0, 4, 98, 5,213, 0, 3,
- 0, 7, 0, 11, 0, 42, 64, 22, 7,149, 4,129, 11, 3,149, 0,173, 8,149, 11, 13, 4, 1, 9, 5, 0, 8, 4, 4, 12, 16,252,
- 60,196,212, 60,196,236, 49, 0, 47,236,244,236, 16,244,236, 48, 1, 33, 21, 33, 3, 33, 21, 33, 17, 33, 21, 33, 1, 50, 2,199,
-253, 57,105, 3,153,252,103, 3,153,252,103, 3,113,170, 3, 14,170,251,127,170,255,255, 0,115,255,227, 5,217, 5,240, 18, 6,
- 0, 50, 0, 0,255,255, 0,201, 0, 0, 5, 59, 5,213, 18, 6, 3, 60, 0, 0,255,255, 0,201, 0, 0, 4,141, 5,213, 18, 6,
- 0, 51, 0, 0, 0, 1, 0,201, 0, 0, 4,139, 5,213, 0, 11, 0, 70, 64, 17, 66, 10, 6,149, 7,129, 0, 4,149, 3, 13, 1,
- 8, 4, 7, 4, 12, 16,252, 60,212, 60,204, 49, 0, 47,236, 50,244,236, 50, 48, 75, 83, 88, 64, 18, 11, 17, 5, 5, 4, 10, 17,
- 6, 6, 5, 11, 17, 5, 0, 17, 4, 5, 4, 5, 7, 16,236, 16,236, 7, 16,236, 8, 16,236, 89, 37, 33, 21, 33, 53, 9, 1, 53,
- 33, 21, 33, 1, 1,177, 2,218,252, 62, 1,223,254, 33, 3,176,253, 56, 1,223,170,170,170, 2,112, 2, 17,170,170,253,243, 0,
-255,255,255,250, 0, 0, 4,233, 5,213, 18, 6, 0, 55, 0, 0,255,255,255,252, 0, 0, 4,231, 5,213, 18, 6, 0, 60, 0, 0,
-255,255, 0,115, 0, 0, 5,217, 5,213, 18, 6, 3, 65, 0, 0,255,255, 0, 61, 0, 0, 5, 59, 5,213, 18, 6, 0, 59, 0, 0,
- 0, 1, 0,115, 0, 0, 5,219, 5,213, 0, 29, 0, 46, 64, 23, 16, 13,149, 27, 2, 21, 14, 7,129, 0, 31, 21, 28, 22, 2, 14,
- 28, 27, 15, 8, 28, 7, 30, 16,220,236,212, 60,252, 60,212,236,204, 49, 0, 47,228, 50, 50,220, 60,236, 50, 48, 33, 54, 39, 34,
- 39, 38, 3, 17, 51, 17, 16, 23, 22, 23, 17, 51, 17, 54, 55, 54, 25, 1, 51, 17, 2, 7, 6, 35, 6, 23, 2,194, 1, 1,214,188,
-184, 5,213,130,110,138,202,138,110,130,213, 5,184,188,214, 1, 1,134,176,210,204, 1,104, 1,153,254,103,254,230,164,140, 14,
- 3,241,252, 15, 14,140,164, 1, 26, 1,153,254,103,254,152,204,210, 72,238, 0, 0, 1, 0, 78, 0, 0, 5,207, 5,231, 0, 38,
- 0, 51, 64, 27, 11,149, 30,145, 38, 3, 18, 21,149, 2, 20, 3, 7, 25, 40, 16, 0, 34, 51, 26, 18, 14, 25, 21, 26, 16, 39, 16,
-252,196,252,196, 16,244,196,236,252,196, 49, 0, 47, 60,236, 50, 50, 50,244,236, 48, 37, 21, 33, 53, 54, 55, 54, 53, 52, 39, 38,
- 35, 34, 0, 21, 20, 23, 22, 23, 21, 33, 53, 33, 38, 39, 38, 53, 16, 55, 54, 33, 32, 23, 22, 17, 20, 7, 6, 7, 5,207,253,168,
-177, 99, 99,132,132,216,216,254,247, 99,100,178,253,168, 1, 63,158, 73, 72,192,191, 1, 49, 1, 47,193,192, 71, 71,161,178,178,
-178, 97,166,166,202,240,145,145,254,221,239,202,166,166, 97,178,178,139,149,149,184, 1, 62,197,197,197,196,254,203,194,148,148,
-141, 0, 0, 0,255,255, 0,201, 0, 0, 1,147, 5,213, 16, 39, 6,132, 3, 47, 1,117, 19, 6, 2,184, 0, 0, 0, 8,180, 9,
- 3, 6, 8, 7, 43, 49, 0, 0,255,255,255,252, 0, 0, 4,231, 5,213, 16, 39, 6,132, 4,113, 1,117, 19, 6, 2,195, 0, 0,
- 0, 8,180, 12, 2, 7, 8, 7, 43, 49, 0, 0,255,255, 0,113,255,230, 4,229, 6,102, 18, 38, 2,207, 0, 0, 16, 6, 2,165,
-110, 0, 0, 0,255,255, 0,133,255,227, 3,200, 6,102, 16, 38, 2,165, 80, 0, 18, 6, 2,211, 0, 0, 0, 0,255,255, 0,186,
-254, 86, 4,100, 6,102, 16, 39, 2,165, 0,198, 0, 0, 18, 6, 2,213, 0, 0,255,255, 0,166, 0, 0, 2,152, 6,102, 18, 38,
- 2,215, 0, 0, 16, 7, 2,165,255, 70, 0, 0,255,255, 0,149,255,226, 4, 42, 7,210, 18, 38, 2,227, 0, 0, 16, 6, 2,166,
- 27, 0, 0, 0, 0, 2, 0,113,255,230, 4,229, 4,122, 0, 13, 0, 42, 0,200, 64, 11, 18, 17, 7, 44, 16, 23, 7, 18, 37, 69,
- 43, 16,252,236,212,196,196, 18, 57, 57, 64, 10, 63, 16, 47, 16, 31, 16, 3,143, 16, 1, 93,113, 0, 64, 17, 18, 17, 11, 3,185,
- 41,184, 25, 11,185, 33,140, 15,188, 22,135, 25, 47,236,228,244,236, 16,244,236, 17, 57, 57, 5, 64, 20, 29, 17, 0, 17, 14, 17,
- 18, 17, 17, 16, 15, 17, 14, 17, 0, 17, 29, 17, 17, 16, 7, 16, 60,236,236,236, 8, 7, 16, 60,236,236, 49, 48, 1, 64, 11,132,
- 18,134, 17,136, 1,137, 13,128, 16, 5, 93, 64, 19, 73, 19, 73, 18, 73, 28, 74, 29, 78, 13, 76, 0, 78, 1, 73, 14, 75, 17, 9,
- 93, 64, 17, 58, 14, 57, 18, 58, 17, 56, 29, 56, 17, 63, 13, 60, 0, 62, 1, 8, 93, 64, 11, 43, 13, 43, 1, 42, 0, 41, 14, 41,
- 17, 5, 93, 64, 13, 25, 15, 24, 14, 27, 13, 27, 1, 26, 0, 25, 17, 6, 93, 0, 64, 5, 43, 30, 43, 31, 2, 93, 1, 39, 38, 39,
- 38, 7, 6, 21, 20, 23, 22, 51, 50, 55, 27, 1, 51, 3, 23, 22, 23, 22, 59, 1, 21, 35, 34, 39, 38, 39, 6, 7, 6, 39, 38, 39,
- 38, 17, 16, 55, 54, 55, 36, 3, 78, 44, 45,178,134, 61, 77, 75, 76,121,134, 72,164, 99,164,205, 40, 9, 35, 41, 32, 88,110, 94,
- 84, 41, 17, 44, 96, 44,143,234,115,117,127,141,198, 1, 55, 2, 9,231,236, 1, 1,111,137,183,220,105,107,213, 1,231, 1, 37,
-253,161,219, 49, 41, 48,156, 84, 42, 88,107, 91, 42, 1, 2,150,156, 1, 20, 1, 41,135,151, 3, 5, 0, 0, 0, 0, 2, 0,191,
-254, 86, 4,137, 6, 33, 0, 14, 0, 28, 0, 55, 64, 15, 24, 18, 7, 30, 69, 19, 18, 11, 22, 0, 28, 8, 3, 70, 29, 16,252,236,
- 50,196,212,236,228,212,236, 49, 0, 64, 14, 26,185, 5, 9, 21,185, 22, 17,185, 13,140, 2,189, 29, 16,236,244,236,212,252, 57,
-212,236, 48, 37, 17, 35, 17, 16, 33, 32, 19, 18, 7, 4, 19, 18, 37, 38, 3, 22, 55, 32, 17, 16, 5, 53, 4, 17, 52, 7, 32, 17,
- 1,121,185, 1,170, 1,176, 2, 3,175, 1, 23, 1, 2,254, 28,212, 89,111,197, 1, 32,254, 48, 1,107,234,254,251, 69,254, 17,
- 6, 3, 1,200,254,127,254,238,100, 90,254,245,254, 37, 1, 1, 1, 73,174, 1, 1, 58, 1, 26, 22,170, 6, 1, 70,220, 1,254,
-200, 0, 0, 0, 0, 1, 0, 32,254, 86, 4,127, 4, 96, 0, 14, 0, 64, 64, 7, 16, 3, 7, 8, 4, 12, 15, 16,212,212,252,212,
-196, 49, 0, 64, 7, 2, 12,191, 6,189, 4, 7, 47, 60,236,228, 50, 48, 5, 64, 18, 1, 17, 8, 7, 2, 17, 3, 4, 3, 14, 13,
- 1, 17, 0, 17, 7, 8, 7, 7, 16,236,236, 57, 57, 7, 16,236, 8,236, 1, 19, 1, 51, 1, 17, 35, 17, 1, 38, 43, 1, 53, 51,
- 50, 1,105,245, 1, 94,195,254, 59,184,254,218, 44, 95, 49, 70,197, 3,176,253, 76, 3,100,251,160,254, 86, 1,170, 3, 68,126,
-158, 0, 0, 0, 0, 2, 0,113,255,227, 4,117, 5,240, 0, 28, 0, 45, 0, 84, 64, 20, 6, 5, 40, 4, 47, 69, 28, 40, 18, 10,
- 81, 18, 4, 18, 24, 33, 18, 18, 69, 46, 16,252,236,212,236, 16,244,178,127, 10, 1, 93,236,196,236, 17, 18, 57, 57, 0, 64, 14,
- 6, 5, 37, 2, 28, 0, 2,185, 26, 37,185, 14,140, 46, 16,244,236,212,252,212,204, 17, 18, 57, 57, 64, 6, 22, 29, 83, 5, 6,
- 5, 7, 14, 16,236, 57, 49, 48, 1, 38, 35, 34, 21, 20, 5, 22, 23, 22, 17, 16, 7, 6, 35, 34, 39, 38, 17, 52, 55, 54, 55, 38,
- 53, 16, 33, 50, 23, 1, 6, 7, 6, 21, 20, 23, 22, 51, 50, 54, 53, 52, 39, 38, 39, 38, 3,236,102,239,253, 1, 8,208,117,142,
-137,137,240,239,138,137,137, 53, 75,156, 1,185,221,120,254, 24, 68, 55, 86, 85, 86,149,147,172, 91, 97,126, 64, 5, 17, 70,117,
- 92, 48, 37,112,135,254,235,254,247,156,157,157,156, 1, 19,204,165, 64, 36, 79,141, 1, 16, 70,254, 40, 29, 73,113,204,203,114,
-115,232,190,199, 96,103, 11, 6, 0, 1, 0,133,255,227, 3,200, 4,124, 0, 50, 0, 61, 64, 34, 12,134, 11,136, 16,185, 8,184,
- 51, 27,169, 24, 51, 39,134, 40,136, 35,185, 44,140, 51, 52, 25, 11, 39, 20, 8, 4, 31, 8, 48, 69, 51, 16,252,236,212,236,212,
-196,196,196, 49, 0, 16,244,236,244,236, 16,212,236, 16,244,236,244,236, 48, 1, 38, 39, 38, 53, 52, 55, 54, 51, 50, 22, 23, 21,
- 38, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 59, 1, 21, 35, 34, 7, 6, 21, 20, 23, 22, 51, 50, 55, 54, 55, 21, 6, 7, 6, 35,
- 34, 39, 38, 53, 52, 54, 1,139,112, 60, 60,114,113,196, 76,170, 98, 97, 80, 81, 71,119, 69, 70, 68, 67,116,155,148,137, 72, 78,
- 84, 85,151, 93, 85, 85, 71, 90, 84, 85, 80,238,129,129,138, 2, 92, 24, 65, 64, 93,141, 79, 78, 24, 24,167, 29, 13, 13, 46, 46,
- 64, 70, 45, 44,152, 51, 56, 88, 90, 56, 56, 18, 19, 37,171, 28, 14, 14, 91, 91,173,108,146, 0, 0, 1, 0,107,254, 82, 3,248,
- 6, 20, 0, 29, 0, 62, 64, 11, 10, 14, 18, 31, 4, 25, 24, 28, 18, 20, 30, 16,212,236,212,212,212,196,252,204, 75,176, 16, 81,
- 88,185, 0, 22, 0, 64, 56, 89, 49, 0, 64, 14, 8,185, 10, 0,185, 18,140, 30, 26, 23,135, 24,151, 30, 16,244,236, 50, 16,244,
-236,220,236, 48, 37, 22, 23, 22, 21, 20, 7, 6, 35, 52, 53, 22, 55, 54, 53, 52, 39, 38, 35, 32, 3, 16, 1, 33, 53, 33, 21, 0,
- 17, 16, 2,202,132, 79, 84, 74, 80,163, 69, 42, 32, 32, 31, 58,253,162, 1, 2, 59,253,236, 3,102,253, 44,127, 1, 75, 79,120,
-115, 80, 87, 75, 76, 5, 44, 35, 37, 53, 44, 42, 2, 51, 1,236, 1, 89,185,185,254,148,254, 39,254,105, 0, 0, 0, 1, 0,186,
-254, 86, 4,100, 4,123, 0, 21, 0, 49, 64, 22, 6,135, 14, 18,184, 12,188, 2,189, 11, 23, 70, 3, 8, 0, 78, 9, 13, 8, 12,
- 70, 22, 16,252,236, 50,244,236,236, 49, 0, 47,236,228,244,196,236, 48, 64, 5,160, 23,128, 23, 2, 1, 93, 1, 17, 35, 17, 52,
- 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 54, 55, 54, 51, 50, 23, 22, 4,100,184,124,124,149,172,185,185, 66, 89, 90,117,193, 99,
- 99, 2,164,251,178, 4, 72,159,158,190,164,253,135, 4, 96,174,101, 50, 50,119,120, 0, 0, 0, 0, 3, 0,113,255,233, 4,117,
- 6, 36, 0, 8, 0, 17, 0, 33, 0, 63, 64, 27, 13,185, 18,151, 34, 1,149, 17, 34, 5,185, 26,140, 34, 35, 69, 0, 9, 18, 22,
- 81, 1, 17, 18, 30, 69, 34, 16,252,236, 50,244,178,127, 22, 1, 93,236, 50,236, 49, 0, 16,244,236, 16,212,236, 16,244,236, 48,
- 64, 5,160, 35,128, 35, 2, 1, 93, 1, 33, 18, 23, 22, 51, 50, 55, 54, 19, 2, 39, 38, 35, 34, 7, 6, 3, 1, 50, 23, 22, 17,
- 16, 7, 6, 35, 34, 39, 38, 17, 16, 55, 54, 3,177,253,131, 15, 69, 86,149,150, 83, 73, 9, 28, 54, 86,147,153, 81, 64, 19, 1,
- 61,240,137,137,137,137,240,241,136,137,137,136, 2,198,254,213,127,156,157,138, 1,201, 1, 28,100,158,156,126,254,252, 2,180,
-212,211,254,138,254,139,212,213,213,212, 1,117, 1,118,211,212, 0, 1, 0,166, 0, 0, 2,110, 4, 96, 0, 13, 0, 27, 64, 7,
- 15, 6, 0, 8, 13, 70, 14, 16,252,252,212,196, 49, 0, 64, 5, 13,188, 5,135, 8, 47,236,228, 48, 1, 17, 20, 23, 22, 59, 1,
- 21, 35, 34, 39, 38, 53, 3, 1, 99, 34, 36,108, 89,111,180, 82, 82, 1, 4, 96,253, 43,145, 46, 48,156, 96, 98,212, 2,202, 0,
- 0, 1, 0,191, 0, 0, 4,133, 4, 96, 0, 11, 0, 73, 64, 9, 13, 6, 4, 9, 1, 8, 11, 70, 12, 16,252,236, 50,196,212,196,
- 49, 0, 64, 5, 3, 0,188, 7, 11, 47, 60,228, 50, 48, 64, 22, 8, 17, 9, 4, 5, 7, 17, 6, 6, 5, 8, 5, 9, 4, 3, 17,
- 4, 2, 17, 9, 9, 4, 7, 16, 4,236, 16, 5,236, 9, 60, 60, 7, 16, 5,236, 16, 8,236, 19, 51, 17, 1, 51, 9, 1, 35, 1,
- 7, 17, 35,191,190, 1,227,224,254, 71, 1,254,225,254, 98,137,190, 4, 96,254, 47, 1,209,254, 90,253, 70, 2, 66,129,254, 63,
- 0, 1, 0, 61, 0, 0, 4,127, 6, 21, 0, 13, 0, 70, 64, 5, 15, 1, 11, 5, 14, 16,212,196,212,196, 49, 0, 64, 6, 10,135,
- 11,151, 2, 5, 47, 60,244,236, 48, 64, 24, 3, 17, 1, 0, 6, 4, 17, 5, 6, 5, 7, 17, 6, 17, 3, 17, 1, 0, 0, 2, 17,
- 0, 1, 0, 7, 16, 5,236, 16, 9,236,236, 5,236, 7, 16, 5,236, 16, 8,236, 9, 1, 35, 9, 1, 35, 1, 39, 38, 43, 1, 53,
- 23, 22, 2,122, 2, 5,195,254,198,254,126,195, 1,235, 74, 47,107, 96,117,226, 5,101,250,155, 3, 60,252,196, 4, 50,198,126,
-158, 2, 3, 0,255,255, 0,174,254, 86, 4,229, 4, 96, 16, 6, 0,119, 0, 0, 0, 1, 0, 74, 0, 0, 4, 24, 4, 96, 0, 21,
- 0, 65, 64, 7, 23, 7, 18, 17, 0, 1, 22, 16,212,196,212,236,196, 49, 64, 4, 11, 1,188, 0, 0, 47,228, 50, 48, 64, 21, 20,
- 19, 18, 17, 21, 17, 6, 5, 4, 3, 7, 3, 17, 1, 0, 0, 2, 17, 1, 1, 0, 7, 16, 5,236, 16, 9,236, 18, 23, 57, 5,236,
- 18, 23, 57, 33, 1, 51, 1, 54, 55, 54, 55, 54, 39, 38, 39, 51, 49, 22, 23, 22, 21, 20, 7, 6, 7, 1,160,254,170,198, 1, 33,
-120,100, 76, 4, 2, 24, 28,106,186, 69, 46, 42,136,177,123, 4, 96,252, 84,124,172,129,112, 53,100,119,131, 89,124,114, 78,196,
-175,228,116, 0, 0, 1, 0,107,254, 82, 4, 1, 6, 20, 0, 38, 0, 64, 64, 15, 10, 14, 18, 40, 4, 34, 29, 28, 32, 18, 24, 37,
- 18, 20, 39, 16,212,236,212,236,212,212,196,212,196,252,204, 49, 64, 18, 8,185, 10, 0,185, 18,140, 39, 22, 35,135, 34, 30, 27,
-135, 28,151, 39, 0, 16,244,252, 60,212,236, 57, 16,244,236,220,236, 48, 37, 22, 23, 22, 21, 20, 7, 6, 35, 52, 53, 22, 55, 54,
- 53, 52, 39, 38, 35, 32, 17, 16, 37, 36, 17, 52, 55, 35, 53, 33, 21, 32, 17, 20, 5, 21, 36, 19, 18, 2,218,132, 79, 84, 74, 80,
-163, 69, 42, 32, 32, 31, 58,253,145, 1, 77,254,232,220,208, 3, 21,253,139, 2, 16,253,198, 2, 1,127, 1, 75, 79,120,115, 80,
- 87, 75, 76, 5, 44, 35, 37, 53, 44, 42, 1,181, 1, 44, 88, 36, 1, 4,197, 82,185,185,254,221,191, 9,170, 22,254,188,254,241,
-255,255, 0,113,255,227, 4,117, 4,123, 18, 6, 0, 82, 0, 0, 0, 1, 0, 74,255,217, 4,152, 4, 96, 0, 23, 0, 47, 64, 11,
- 25, 10, 1, 18, 8, 3, 19, 8, 0, 22, 24, 16,220,196,236,212,236,196,196,204, 49, 64, 12, 7,135, 14,140, 21, 3, 19, 23,135,
- 0,188, 21, 0, 47,244,236, 50, 50, 16,244,236, 48, 19, 33, 21, 35, 17, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 53, 17,
- 33, 17, 35, 17, 35, 74, 4, 49,141, 49, 55, 15, 44, 7, 35, 74, 37,120, 92,254, 99,188,143, 4, 96,184,253, 80, 72, 63, 5, 1,
-133, 13, 12,131,176, 2,156,252, 88, 3,168, 0, 0, 2, 0,186,254, 86, 4,164, 4,123, 0, 17, 0, 29, 0, 49, 64, 25, 21,185,
- 4,184, 30, 27,185, 10,140, 15,189, 30, 31, 69, 18, 18, 7, 81, 13, 8, 24, 18, 16, 70, 30, 16,252,236,236,244,178,127, 7, 1,
- 93,236,236, 49, 0, 16,236,244,236, 16,244,236, 48, 1, 54, 55, 54, 51, 50, 0, 17, 16, 2, 35, 34, 38, 39, 17, 35, 17, 52, 5,
- 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 1, 20, 61,151, 59,182,204, 0,255,255,204,123,177, 58,185, 3, 43,167,146,146,167,
-167,146,146,167, 3,152,102, 90, 35,254,188,254,248,254,248,254,188, 97,100,253,174, 3,207,231,221,203,231,231,203,203,231,231,
- 0, 1, 0,113,254, 82, 3,231, 4,123, 0, 36, 0, 54, 64, 12, 29, 33, 18, 23, 38, 9, 72, 16, 18, 3, 69, 37, 16,252,236,244,
-204,212,252,196, 49, 64, 17, 27,185, 29, 19,185, 0,140, 37, 9,134, 10,136, 13,185, 6,184, 37, 0, 16,244,252,244,236, 16,244,
-236,220,236, 48, 5, 32, 0, 17, 16, 0, 33, 50, 22, 23, 21, 46, 1, 35, 34, 6, 21, 20, 22, 51, 50, 23, 22, 21, 20, 7, 6, 35,
- 52, 53, 22, 55, 54, 53, 52, 39, 38, 2,168,254,243,254,214, 1, 45, 1, 6, 85,162, 76, 78,157, 80,179,198,198,175,131, 80, 84,
- 74, 80,163, 69, 42, 32, 32, 31, 29, 1, 62, 1, 14, 1, 18, 1, 58, 35, 35,172, 43, 43,227,205,205,227, 76, 79,120,115, 80, 87,
- 75, 76, 5, 44, 35, 37, 53, 44, 42, 0, 0, 0, 0, 2, 0,113,255,227, 4,214, 4, 98, 0, 13, 0, 30, 0, 49, 64, 11, 32, 15,
- 10, 18, 19, 81, 4, 18, 27, 69, 31, 16,252,236,244,178,127, 19, 1, 93,236,212,196, 49, 64, 12, 7,185, 23,140, 31, 17,135, 0,
-185, 14,188, 31, 0, 16,244,236,236, 16,244,236, 48, 1, 34, 7, 6, 21, 20, 22, 51, 50, 54, 53, 52, 39, 38, 39, 5, 21, 35, 22,
- 21, 16, 7, 6, 35, 34, 39, 38, 17, 16, 55, 54, 2,115,152, 82, 86,171,149,147,172, 86, 79,154, 2, 99,206,109,137,137,240,241,
-136,137,137,114, 3,206,110,115,190,201,231,232,200,183,122,110,147, 1,184,156,221,254,237,156,157,157,156, 1, 19, 1, 20,156,
-130, 0, 0, 0, 0, 1, 0,100, 0, 0, 4,109, 4, 96, 0, 17, 0, 35, 64, 8, 19, 13, 3, 15, 8, 12, 10, 18, 16,212,196,252,
-196,196,196, 49, 0, 64, 8, 15, 11,135, 12,188, 2,185, 5, 47,236,244,236, 50, 48, 37, 22, 59, 1, 21, 35, 34, 39, 38, 53, 17,
- 33, 53, 33, 21, 33, 17, 20, 2,230, 36,108, 89,111,180, 82, 82,254, 92, 4, 9,254, 87,204, 48,156, 96, 98,212, 2, 18,184,184,
-253,227,145, 0, 0, 1, 0,149,255,226, 4, 42, 4, 96, 0, 28, 0, 43, 64, 10, 30, 69, 9, 18, 19, 0, 8, 28, 70, 29, 16,252,
-236,212,236,228, 64, 7, 63, 30, 63, 9, 63, 19, 3, 93, 49, 0, 64, 6, 13, 28,188, 5,185, 23, 47,236,244, 60, 48, 1, 17, 20,
- 23, 22, 51, 50, 55, 54, 55, 54, 39, 38, 39, 51, 49, 22, 23, 22, 21, 20, 7, 6, 39, 34, 39, 38, 53, 3, 1, 82, 50, 55,107,150,
-105, 59, 15, 8, 30, 28,106,186, 70, 45, 42,128,156,254,179,101, 98, 1, 4, 96,253, 43,135, 64, 69,208,118,187,102,128,119,131,
- 90,123,115,154,253,187,228, 1,120,118,197, 2,202, 0, 0, 0, 0, 2, 0,111,254, 86, 4,210, 4,104, 0, 10, 0, 41, 0, 61,
- 64, 16, 43, 69, 7, 18, 15, 19, 2, 8, 30, 22, 40, 35, 18, 26, 69, 42, 16,252,236,212, 60,204,252, 60,212,236,236, 49, 0, 64,
- 16, 0, 31,185, 11, 30,184, 42, 3, 39,135, 19, 22,140, 21,189, 42, 16,236,244, 60,236, 50, 16,244, 60,236, 50, 48, 1, 34, 21,
- 17, 50, 55, 54, 39, 38, 39, 38, 39, 50, 23, 22, 19, 18, 7, 6, 35, 17, 35, 17, 34, 39, 38, 17, 2, 55, 54, 55, 21, 6, 7, 6,
- 23, 22, 23, 22, 51, 17, 16, 3, 61, 65, 94, 96, 86, 1, 1, 85, 70, 54,144,123,133, 4, 4,141,133,199,183,199,134,136, 1,137,
-104,164, 66, 58, 87, 1, 1, 85, 76,113, 3,203,145,253, 82,104, 93,223,208,112, 91,157,132,141,254,217,254,241,161,152,254,110,
- 1,145,153,156, 1, 19, 1, 30,146,109, 28,163, 23, 78,115,190,202,115,103, 2,175, 1, 46, 0, 0, 1, 0, 59,254, 85, 4,100,
- 4, 97, 0, 23, 0,118, 64, 12, 17, 16, 5, 4, 4, 9, 25, 20, 15, 3, 9, 24, 16,212,196,212,196,196, 18, 23, 57, 0, 64, 18,
- 17, 16, 5, 4, 4, 19, 8,135, 14, 9,188, 24, 19,135, 22, 3,189, 24, 16,244, 60,236, 16,244, 60,236, 17, 23, 57, 5, 64, 20,
- 14, 17, 15, 16, 15, 12, 17, 5, 5, 4, 2, 17, 3, 4, 3, 0, 17, 17, 17, 16, 7, 16,236, 7, 16,236, 7, 16,236, 7, 16,236,
- 64, 20, 16, 17, 12, 15, 2, 13, 17, 12, 14, 3, 4, 14, 3, 5, 0, 1, 15, 2, 5, 0, 15, 15, 15, 15, 49, 48, 5, 3, 1, 35,
- 1, 3, 38, 43, 1, 53, 23, 4, 23, 19, 1, 51, 1, 19, 22, 59, 1, 21, 39, 36, 2,220,149,254,205,217, 1,178,182, 49,154, 49,
- 70, 1, 2, 65,148, 1, 51,217,254, 78,182, 49,154, 49, 70,254,254,250, 1,127,253,208, 3, 24, 1,215,126,158, 2, 7,167,254,
-129, 2, 48,252,232,254, 41,126,158, 2, 7, 0, 0, 1, 0,112,254, 86, 4,209, 4, 96, 0, 27, 0, 54, 64, 13, 29, 19, 8, 20,
- 25, 13, 8, 0, 12, 6, 8, 5, 28, 16,220,236,212, 60,252, 60,212,236,204, 49, 0, 64, 14, 19, 12, 5,188, 28, 14, 11,135, 25,
- 0,140, 27,189, 28, 16,236,244, 60,236, 50, 16,244, 60, 60, 48, 5, 38, 39, 38, 53, 17, 51, 17, 20, 23, 22, 23, 17, 51, 17, 54,
- 55, 54, 53, 17, 51, 17, 20, 7, 6, 7, 17, 35, 2, 69,231,107,131,186, 85, 74,124,183,131, 67, 85,186,131,118,220,183, 25, 37,
- 97,119,243, 2,137,253,126,183, 76, 66, 14, 3,213,252, 44, 14, 66, 84,175, 2,129,253,120,252,110, 99, 35,254,110, 0, 0, 0,
- 0, 1, 0,135,255,226, 6, 40, 4, 96, 0, 26, 0, 56, 64, 20, 18, 18, 19, 28, 69, 16, 18, 21, 11, 8, 12, 7, 18, 2, 5, 18,
- 4, 2, 69, 27, 16,252,220,236, 16,236,212,252,212,236,236,220,236, 49, 0, 64, 9, 11, 18, 4,188, 14, 9,135, 23, 0, 47, 60,
-236, 50,244, 60,196, 48, 5, 32, 17, 52, 19, 51, 2, 21, 2, 51, 50, 3, 51, 2, 55, 54, 17, 52, 3, 51, 18, 21, 18, 37, 36, 3,
- 2, 2, 38,254, 97,155,198,143, 1,223,207, 4,170, 4,207,222,143,198,155, 2,254, 95,254,241, 34, 41, 29, 2, 82,235, 1, 64,
-254,192,240,254, 79, 2, 26,253,227, 3, 2, 1,175,240, 1, 64,254,192,235,253,173, 1, 1, 1, 42,254,213, 0,255,255, 0, 5,
- 0, 0, 2,125, 6, 16, 18, 38, 2,215, 15, 0, 16, 7, 0,106,255, 46, 0, 0,255,255, 0,149,255,226, 4, 42, 6, 16, 16, 38,
- 0,106, 29, 0, 18, 6, 2,227, 0, 0, 0, 0,255,255, 0,113,255,227, 4,117, 6,102, 16, 38, 2,165,125, 0, 18, 6, 2,221,
- 0, 0, 0, 0,255,255, 0,149,255,226, 4, 42, 6,102, 16, 38, 2,165, 34, 0, 18, 6, 2,227, 0, 0, 0, 0,255,255, 0,135,
-255,226, 6, 40, 6,102, 18, 38, 2,231, 0, 0, 16, 7, 2,165, 1, 89, 0, 0, 0, 3, 0,166,255,233, 4, 77, 6, 36, 0, 13,
- 0, 37, 0, 53, 0, 0, 1, 50, 55, 54, 55, 54, 53, 52, 39, 38, 39, 38, 7, 6, 1, 22, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38,
- 3, 2, 55, 54, 23, 22, 23, 22, 23, 22, 7, 6, 7, 6, 7, 6, 35, 16, 23, 22, 51, 50, 55, 54, 55, 52, 39, 38, 1,105, 80, 84,
-119, 68,121, 36, 50,117,122, 93, 54, 1,238, 96, 59, 91, 59,126,246,252,139,111, 1, 1,120,134,210,164,107,111, 1, 1, 55, 38,
-251, 67, 93, 74, 78, 58, 80,174,143, 87, 24, 1, 79, 94, 3,112, 1, 3, 61,108,147, 87, 53, 73, 9, 10,196,112,254,203, 65, 75,
-117,143,130, 95,213,213,168, 1,161, 1,139,190,213, 1, 1,111,115,155,128,107, 75,150, 15, 3, 2,254,234,128,176,156, 45, 86,
-123, 72, 86, 0, 0, 2, 0,112,255,233, 4,118, 6, 36, 0, 11, 0, 40, 0, 0, 1, 54, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22,
- 5, 4, 39, 38, 17, 52, 55, 54, 51, 50, 23, 22, 3, 2, 7, 6, 35, 34, 39, 38, 19, 23, 2, 23, 22, 51, 50, 55, 54, 3,174, 6,
- 55, 75,140, 83, 64, 56,121, 74, 1, 19,254,204,131,211,104,104,175,209,135,128, 9, 9,128,137,240,237,140,149, 12,195, 33,117,
- 85,150,144, 89, 95, 3,112,246,126,170, 71, 66, 90,153,107, 65,160, 9, 74,120, 1, 39,160,110,112,212,200,254,127,254,125,198,
-213,213,225, 1,210, 1,254,130,215,155,156,166, 0, 1, 0, 87, 0, 0, 5, 81, 5,223, 0, 27, 0, 0, 1, 6, 3, 6, 21, 17,
- 35, 17, 52, 39, 2, 39, 38, 7, 53, 54, 23, 4, 19, 18, 37, 54, 23, 22, 7, 6, 39, 38, 4, 70,160, 82, 42,203, 42, 82,160,116,
-120, 67,160, 1, 67, 72,107, 1, 31,111, 64,120, 54, 33,117, 86, 5, 17, 72,254,243,141,165,253,118, 2,138,165,141, 1, 13, 72,
- 52, 26,170, 21, 24, 48,254,114, 1,123, 67, 26, 49, 93,150, 86, 26, 18, 0, 0,255,255,255,225, 0, 0, 6,161, 6,102, 16, 39,
- 2,165,254,110, 0, 0, 16, 7, 2,239, 1, 80, 0, 0, 0, 0,255,255, 0, 87, 0, 0, 5, 81, 5,223, 16, 39, 6,132, 4,197,
- 1,117, 18, 6, 2,239, 0, 0, 0, 3, 0,112,254, 86, 4,209, 6, 20, 0, 21, 0, 30, 0, 39, 0, 65, 64, 16, 41, 26, 18, 6,
- 9, 1, 30, 8, 12, 20, 32, 36, 18, 16, 69, 40, 16,252,236,212, 60, 60,252, 60, 60,212,236,196, 49, 64, 18, 30, 32,135, 1, 20,
-184, 40, 22, 31,135, 9, 12,140, 21,151, 11,189, 40, 0, 16,236,228,244, 60,252, 60, 16,244, 60,252, 60, 48, 1, 17, 50, 23, 22,
- 17, 16, 7, 6, 35, 17, 35, 17, 34, 39, 38, 17, 16, 55, 54, 51, 17, 19, 50, 55, 54, 55, 54, 39, 38, 35, 3, 17, 34, 7, 6, 23,
- 22, 23, 22, 2,252,199,133,137,137,133,199,183,199,134,136,136,134,199,183,113, 77, 84, 1, 1, 86, 77,113,183,113, 76, 87, 1,
- 1, 85, 76, 6, 20,254, 99,153,156,254,237,254,237,156,153,254,111, 1,145,153,156, 1, 19, 1, 19,156,153, 1,157,250,119,103,
-115,202,200,117,103,252,184, 3, 72,103,117,200,202,115,103, 0, 0, 2, 0, 65,255,226, 6,109, 4, 96, 0, 16, 0, 30, 0, 0,
- 19, 53, 33, 21, 35, 22, 21, 16, 37, 36, 3, 2, 33, 32, 17, 52, 55, 41, 1, 6, 21, 16, 51, 50, 3, 51, 2, 55, 54, 17, 52, 65,
- 6, 44,147, 77,254, 97,254,241, 34, 41,254,248,254, 97, 77, 4, 58,252,146, 71,222,207, 4,170, 4,207,222, 3,168,184,184,207,
-164,253,173, 1, 1, 1, 42,254,213, 2, 82,164,207,209,167,254, 79, 2, 26,253,227, 3, 3, 1,174,167, 0, 0, 0, 1, 0,111,
-254, 91, 4,206, 4,103, 0, 47, 0, 0, 5, 38, 39, 38, 55, 7, 2, 7, 6, 39, 38, 55, 54, 55, 54, 39, 38, 35, 34, 7, 53, 54,
- 23, 22, 23, 22, 7, 55, 18, 55, 54, 23, 22, 7, 6, 7, 6, 23, 22, 51, 50, 55, 2, 7, 6, 39, 53, 4, 3,249,246, 33, 21, 24,
-189, 96,200,141, 3, 1, 61, 96,136, 91, 43, 26,142, 57, 91, 82,126,246, 33, 19, 42,189, 96,200,141, 3, 1, 61, 96,136, 91, 43,
- 26,142, 57, 91, 38,205,152,173, 1, 55, 10, 32,240,156, 99,108,254,247,124, 89,145, 68, 84,132,124,203,169,104,108,224, 61, 17,
- 34,238,140,112,108, 1, 9,124, 89,145, 68, 84,132,124,203,169,104,108,253,224,102, 77, 90,160,160, 0, 0, 0, 0, 2, 0,115,
-254, 88, 5,217, 5,240, 0, 15, 0, 25, 0, 0, 5, 17, 35, 17, 38, 39, 38, 16, 0, 33, 32, 0, 17, 16, 7, 6, 2, 32, 0, 17,
- 16, 0, 32, 0, 17, 16, 3,132,184,252,160,189, 1,121, 1, 59, 1, 58, 1,120,188,159,123,254, 72,254,253, 1, 3, 1,184, 1,
- 1, 24,254,112, 1,144, 26,179,210, 2,196, 1,165,254, 91,254,158,254,159,210,179, 5, 73,254,184,254,229,254,230,254,184, 1,
- 72, 1, 26, 1, 27, 0, 0, 0, 0, 2, 0,113,254, 86, 4,117, 4,123, 0, 10, 0, 27, 0, 0, 1, 34, 6, 16, 22, 51, 50, 54,
- 53, 52, 38, 3, 17, 35, 17, 38, 39, 38, 17, 16, 0, 51, 50, 0, 17, 16, 7, 6, 2,115,148,172,171,149,147,172,172, 57,170,190,
-107,137, 1, 17,241,240, 1, 18,137,106, 3,223,231,254,110,231,232,200,199,233,252, 9,254,110, 1,146, 27,125,156, 1, 19, 1,
- 20, 1, 56,254,200,254,236,254,237,156,123, 0, 0, 1, 0,139,254, 82, 4,171, 5,213, 0, 36, 0, 0, 1, 32, 7, 6, 17, 16,
- 23, 22, 51, 50, 23, 22, 21, 20, 7, 6, 35, 52, 53, 22, 55, 54, 53, 52, 39, 38, 35, 32, 39, 38, 17, 16, 55, 54, 41, 1, 21, 3,
- 70,254,243, 96,123, 91,109,200,122, 89, 84, 74, 80,163, 69, 42, 32, 32, 31, 58,254,192,142,149,185,138, 1,120, 1,101, 5, 43,
-119,152,254,205,254,181,127,152, 84, 79,120,115, 80, 87, 75, 76, 5, 44, 35, 37, 53, 44, 42,203,214, 1,101, 1, 78,237,177,170,
- 0, 1, 0,113,254, 82, 4, 81, 4, 97, 0, 34, 0, 0, 1, 34, 7, 6, 21, 20, 22, 51, 50, 23, 22, 21, 20, 7, 6, 35, 52, 53,
- 22, 55, 54, 53, 52, 39, 38, 35, 34, 0, 17, 52, 55, 54, 5, 33, 21, 2,172,216, 62, 99,198,110,131, 80, 84, 74, 80,163, 69, 42,
- 32, 32, 32, 57,204,254,214,151,104, 1, 52, 1,173, 3,168, 72,113,192,205,227, 76, 79,120,115, 80, 87, 75, 76, 5, 44, 35, 37,
- 53, 44, 42, 1, 62, 1, 14,243,188,131, 1,184,255,255, 0,201, 0, 0, 4, 35, 5,213, 18, 6, 0, 41, 0, 0, 0, 1,255, 64,
-254, 86, 3, 70, 6, 20, 0, 35, 0, 0, 51, 17, 52, 55, 54, 51, 50, 22, 23, 21, 46, 1, 35, 34, 7, 6, 21, 17, 33, 21, 33, 17,
- 20, 7, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 55, 54,238,136, 96,169, 49, 99, 51, 36, 82, 44,120, 58, 75, 1, 65,254,191,139,
- 98,173, 57,102, 46, 49,100, 48, 87, 64, 82, 4,130,160,142,100, 18, 18,164, 28, 29, 62, 81,111,254,201,143,253, 63,146,165,115,
- 21, 22,164, 31, 33, 75, 95, 0, 0, 1, 0,179,255,252, 4,212, 5,213, 0, 23, 0, 0, 1, 3, 1, 3, 6, 23, 22, 55, 21, 34,
- 39, 38, 55, 19, 1, 19, 54, 39, 38, 7, 53, 50, 23, 22, 2, 54,110, 3, 12,234, 39, 27, 66,131,230, 81, 95, 19,154,253, 6,172,
- 39, 27, 66,131,230, 81, 95, 4,135,254, 91, 1,126,253, 44, 96, 42,108, 35,189, 70, 82,182, 1,218,254,145, 2,144, 96, 42,108,
- 35,189, 70, 82, 0, 1, 0,191, 0, 0, 4,136, 6, 19, 0, 7, 0, 0, 9, 1, 35, 19, 33, 1, 51, 3, 4,136,254,231,184,226,
-253, 38, 1, 25,184,226, 3,112,252,144, 2,198, 3, 77,253, 93, 0, 1, 0,114,254, 86, 6, 96, 5,241, 0, 33, 0, 0, 1, 17,
- 35, 17, 6, 7, 53, 54, 5, 4, 19, 18, 17, 16, 3, 35, 0, 17, 16, 39, 6, 7, 6, 23, 17, 35, 54, 17, 52, 63, 1, 38, 37, 38,
- 2, 81,170,205,104,208, 1,130, 1,217,237,214,246,225, 1, 4, 82, 56,121, 69, 5,205, 2,182,187,208,254,164, 48, 5, 58,253,
-140, 2, 73, 75,105,198,215, 8, 10,254,216,254,241,253,189,254, 88,254,146, 1, 76, 1,202, 1,209,125, 32, 92, 52,208,253,198,
- 33, 2, 20,247,143,141,249, 11, 1, 0, 0, 0, 0, 1, 0,119,254,144, 4,150, 4,120, 0, 22, 0, 0, 1, 3, 35, 1, 38, 39,
- 1, 35, 1, 38, 39, 38, 35, 53, 32, 23, 22, 19, 18, 17, 35, 16, 39, 3,110,239,185, 1,100, 14, 50,254, 70,185, 2, 31, 98, 46,
-188,211, 1, 45,242,224,172,116,168, 96, 1, 52,254,204, 1,192, 35, 77,253,208, 2,176,127, 33,132,164,216,200,254, 80,254,223,
-254,137, 1, 94,246, 0, 0, 0, 0, 1, 0,115,254, 75, 7, 5, 5,213, 0, 61, 0, 0, 1, 52, 3, 38, 39, 35, 22, 19, 22, 21,
- 16, 7, 6, 35, 34, 39, 38, 61, 1, 35, 21, 20, 7, 6, 35, 34, 39, 38, 17, 52, 55, 18, 55, 35, 6, 7, 2, 21, 16, 23, 22, 51,
- 50, 55, 54, 55, 22, 23, 22, 23, 6, 7, 6, 7, 23, 54, 55, 36, 55, 54, 55, 54, 7, 5,100, 56, 95,250, 84,135, 67, 71, 65,134,
-116, 70, 70,199, 71, 72,114,125, 73, 72, 67,135, 84,249, 93, 59,100,123,121,211,146,101,100, 39, 39,100, 68,103,164,205,121,138,
- 97,140,118, 1, 20,180,219, 68, 61, 2,224,194, 1, 21,156,130, 70,254,191,159,183,254,217,119,109,105,104,198,241,241,198,104,
-105,109,107, 1, 51,183,159, 1, 65, 70,127,159,254,242,201,254,104,180,177, 94, 94,173,173, 94, 65, 23,128, 81, 48, 24,133, 23,
- 42,100,136,166,230,203, 0, 0, 0, 1, 0,135,254, 85, 6, 40, 4, 96, 0, 37, 0, 0, 33, 36, 3, 2, 33, 32, 17, 52, 19, 51,
- 2, 21, 2, 23, 22, 3, 51, 2, 55, 54, 17, 52, 3, 51, 18, 21, 22, 7, 6, 7, 6, 7, 6, 7, 39, 54, 55, 54, 4,136,254,237,
- 30, 35,254,242,254, 97,135,218,143, 1,223,208, 5,170, 3,206,222,143,218,135, 1, 57,105,197,154,210,107,112, 91, 81,139,199,
- 1, 1, 13,254,242, 2, 53,235, 1, 64,254,192,240,254,151, 1, 1, 1,212,254, 43, 2, 2, 1,104,240, 1, 64,254,192,235,209,
-132,244,158,123, 73, 37, 16,108, 11, 43, 63, 0, 0, 1, 0,115,254, 86, 5, 72, 5,240, 0, 29, 0, 0, 1, 6, 7, 6, 17, 20,
- 23, 22, 51, 50, 55, 54, 25, 1, 51, 17, 35, 17, 6, 7, 6, 35, 32, 39, 38, 17, 16, 19, 54, 37, 2,236,180, 96,133,110, 98,195,
-196, 98, 99,217,217, 68,104,104,170,255, 0,156,162,186,151, 1, 40, 5, 74, 18,132,185,254,238,249,171,152,152,153, 1, 11, 2,
-236,248,129, 2,144,132, 64, 63,213,221, 1, 71, 1, 54, 1, 8,213, 1, 0, 0, 0, 1, 0,113,254, 86, 4,140, 4,123, 0, 26,
- 0, 0, 1, 6, 7, 6, 21, 20, 23, 22, 32, 54, 53, 17, 51, 17, 35, 17, 14, 1, 35, 34, 39, 38, 53, 52, 55, 54, 51, 2,139,154,
- 80,114, 94, 83, 1, 76,168,184,184, 58,177,144,218,133,137,158,127,253, 3,253, 14, 99,141,208,189,129,116,231,203, 2, 49,249,
-246, 2, 82,100, 97,162,168,248,236,200,162, 0, 0, 1, 0,201,254, 75, 5,226, 5,213, 0, 37, 0, 0, 1, 32, 23, 22, 17, 20,
- 7, 6, 7, 6, 7, 6, 7, 39, 54, 55, 54, 55, 54, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 21, 17, 35, 17, 51, 17, 54, 55, 54,
- 3, 76, 1, 39,177,190, 60, 67,170,195,241,185, 73, 97,134,125,217,152,136, 44, 54,126,115,205,203,115,113,202,202, 78,105,105,
- 4,123,179,194,254,253,204,161,178,128,147, 69, 53, 12,133, 22, 50, 87,122,109,104,127,192,157,150,134,129,126,222,254, 39, 5,
-213,253,154,135, 66, 67, 0, 0, 0, 2, 0, 45,255,227, 4,146, 4,154, 0, 23, 0, 77, 0, 0, 1, 38, 35, 34, 7, 6, 7, 6,
- 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 51, 50, 55, 54, 55, 54, 37, 22, 21, 20, 7, 6, 33, 34, 39, 38, 35, 34, 7, 39, 54, 51,
- 50, 23, 22, 51, 50, 55, 54, 53, 52, 39, 6, 7, 6, 7, 6, 39, 38, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51,
- 50, 23, 54, 55, 23, 6, 3, 44,127,141, 31, 55, 29, 37, 29, 16, 14, 12, 15, 24, 26, 35, 32, 30, 25, 71, 59, 73, 36, 1, 11,108,
-127,111,254,247,141, 99, 75, 53, 65, 81, 84,135, 95,130, 82, 63, 91,157, 79, 75, 49, 27, 31, 70,117,102, 71, 41, 72, 50, 64, 48,
- 41, 30, 29, 31, 46, 62, 80,101, 94,210,144, 56, 42,136, 55, 3, 68,152, 22, 11, 33, 26, 32, 27, 33, 32, 21, 28, 17, 20, 6, 5,
- 25, 20, 49, 24, 50,192,212,176,156,136, 46, 35, 65,147, 76, 46, 35, 94, 89,127,140,113, 25, 23, 52, 43, 38, 2, 1, 10, 7, 34,
- 26, 72, 52, 66, 59, 59, 61, 47, 63, 34, 43,159, 86,104, 80,146, 0, 1, 0, 79,254, 86, 5, 11, 5,246, 0, 33, 0, 0, 5, 4,
- 33, 32, 1, 0, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 7, 35, 54, 55, 54, 33, 32, 23, 22, 21, 20, 7, 0, 1, 22, 51, 32, 55,
- 4,250,255, 0,254,237,254,175,254,185, 2,186,179,108,108, 99,164,180, 94, 35, 24,240, 44, 86,163, 1, 24, 1, 19,161,162,162,
-254,247,254, 24,156,213, 1, 41,232,236,190, 1,163, 1,241,219,132,156,141,101, 93,146, 54, 63,161,102,194,144,145,241,216,182,
-254,242,254,133,181,179, 0, 0, 0, 1, 0,100,254, 86, 4,106, 4,123, 0, 32, 0, 0, 1, 6, 35, 32, 1, 0, 55, 54, 53, 52,
- 39, 38, 35, 34, 7, 6, 7, 35, 54, 55, 54, 51, 50, 4, 21, 20, 7, 6, 1, 22, 51, 50, 55, 4, 92,218,234,254,238,254,222, 2,
- 66,167, 92, 92, 84,139,153, 80, 30, 20,204, 37, 73,139,238,232, 1, 20,138,175,254, 47,145,169,253,197,254,239,153, 1,121, 1,
- 89,194,107,125,111, 83, 75,117, 44, 50,129, 82,156,232,194,164,156,197,254,224,186,144, 0, 0, 0, 2, 0,115, 0, 0, 5,182,
- 5,239, 0, 2, 0, 53, 0, 0, 37, 33, 9, 3, 38, 39, 38, 35, 34, 15, 1, 53, 54, 55, 54, 51, 50, 23, 22, 23, 9, 1, 54, 55,
- 54, 51, 50, 23, 22, 23, 21, 39, 38, 35, 34, 7, 6, 7, 9, 1, 22, 23, 22, 59, 1, 21, 33, 53, 51, 50, 55, 54, 1,218, 2,110,
-254,205,254, 20, 1,128,254,220, 19, 26, 34, 63, 25, 22, 69, 33, 32, 31, 28,114, 75, 44, 47, 1, 2, 1, 9, 52, 39, 75,114, 29,
- 30, 32, 33, 68, 23, 24, 60, 38, 19, 26,254,210, 1,116, 6, 7, 29, 69, 71,250,195, 71, 72, 26, 12,170, 1,202,254,104, 2, 61,
- 1,187, 29, 26, 34, 4, 10,187, 11, 5, 5, 67, 40, 70,254,129, 1,127, 75, 35, 67, 5, 5, 11,187, 10, 4, 34, 17, 38,254, 69,
-253,195, 9, 8, 33,170,170, 33, 15, 0, 0, 0, 0, 3, 0, 54, 0, 0, 4,203, 4,123, 0, 0, 0, 3, 0, 54, 0, 0, 37, 41,
- 1, 3, 9, 1, 3, 38, 39, 38, 35, 34, 15, 1, 53, 54, 55, 54, 51, 50, 23, 22, 23, 27, 1, 54, 55, 54, 51, 50, 23, 22, 23, 21,
- 39, 38, 35, 34, 7, 6, 7, 3, 1, 22, 23, 22, 59, 1, 21, 33, 53, 51, 50, 55, 54, 4,203,252,207, 1,204,228,254, 91, 1, 57,
-239, 21, 17, 29, 54, 21, 19, 58, 28, 27, 26, 24,131, 64, 37, 40,197,197, 40, 37, 64,131, 24, 26, 27, 28, 58, 19, 21, 54, 29, 17,
- 21,246, 1, 45, 6, 5, 25, 58, 73,251,107, 73, 58, 25, 5,158, 1, 56,254,238, 1,164, 1, 61, 28, 14, 25, 3, 7,141, 8, 4,
- 4, 51, 30, 53,254,250, 1, 6, 53, 30, 51, 4, 4, 8,141, 7, 3, 25, 14, 28,254,184,254,103, 8, 5, 25,158,158, 25, 5, 0,
- 0, 2, 0,115,255,227, 5, 37, 6, 16, 0, 29, 0, 43, 0, 0, 1, 36, 7, 6, 7, 54, 55, 54, 51, 50, 0, 16, 0, 33, 32, 39,
- 38, 17, 16, 55, 54, 33, 50, 55, 54, 55, 21, 6, 7, 6, 18, 16, 38, 35, 34, 7, 6, 21, 20, 23, 22, 51, 50, 55, 3, 42,254,214,
- 87, 56, 22, 81, 85,123,130,245, 1, 50,254,206,254,249,254,206,164,163,139,124, 1,176,115,149,160, 75, 94,151,108,142,200,186,
-188,104,105,105,101,191,188, 98, 5, 45, 2,115, 74,160, 86, 34, 49,254,188,253,240,254,188,156,155, 1, 80, 1,222,210,187, 10,
- 10, 39,177, 36, 8, 6,252, 65, 1,130,230,115,116,192,189,120,115,115, 0, 0, 0, 2, 0,113,255,227, 4, 91, 6, 16, 0, 31,
- 0, 47, 0, 0, 1, 38, 7, 6, 7, 54, 55, 54, 51, 50, 23, 22, 16, 7, 6, 35, 34, 39, 38, 17, 16, 55, 54, 33, 50, 55, 54, 55,
- 21, 6, 7, 6, 19, 52, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 51, 50, 55, 54, 2,155,227, 73, 44, 20, 41,101, 91,120,204,127,
-128,128,127,219,255,137,136,116,103, 1, 79, 95, 92, 83, 71, 93, 69, 90,168, 83, 84,146,149, 86, 88, 88, 84,151,148, 82, 83, 5,
- 55, 2,120, 74,169, 70, 54, 49,162,162,253,240,162,162,156,155, 1, 80, 1,222,210,187, 10, 10, 39,167, 39, 5, 6,252,248,205,
-114,115,115,116,203,199,120,115,115,116, 0, 0, 0, 1, 0, 44,254, 86, 4,183, 5,213, 0, 15, 0, 0, 1, 17, 35, 53, 33, 17,
- 35, 17, 33, 21, 35, 17, 33, 17, 51, 17, 4,183,203,254,235,203,254,235,203, 1,224,203, 4, 96,254,242,100,250,160, 5, 96,100,
- 1, 14, 1,117,254,139, 0, 0, 0, 1, 0, 55,254, 85, 4, 20, 5,207, 0, 15, 0, 0, 1, 17, 35, 53, 35, 17, 35, 17, 35, 21,
- 35, 17, 33, 17, 51, 17, 4, 20,173,229,185,229,173, 1,146,185, 4, 95,255, 0,112,250,134, 5,122,112, 1, 0, 1,112,254,144,
- 0, 1, 0,111,255,242, 4,206, 4,103, 0, 43, 0, 0, 1, 2, 7, 6, 39, 38, 55, 54, 55, 54, 39, 38, 35, 34, 7, 53, 54, 23,
- 22, 23, 22, 7, 55, 18, 55, 54, 23, 22, 7, 6, 7, 6, 23, 22, 51, 50, 55, 21, 6, 39, 38, 39, 38, 55, 2, 40, 96,200,141, 3,
- 1, 61, 96,136, 91, 43, 26,142, 57, 91, 82,126,246, 33, 19, 42,189, 96,200,141, 3, 1, 61, 96,136, 91, 43, 26,142, 57, 91, 82,
-126,246, 33, 19, 42, 1,153,254,247,124, 89,145, 68, 84,132,124,203,169,104,108,224, 61, 17, 32,240,140,112,108, 1, 9,124, 89,
-145, 68, 84,132,124,203,169,104,108,224, 61, 17, 32,240,140,112, 0, 2, 0,183,254, 86, 4,164, 4,123, 0, 21, 0, 29, 0, 0,
- 19, 54, 55, 54, 55, 54, 51, 50, 0, 16, 2, 35, 34, 38, 39, 18, 41, 1, 21, 33, 32, 19, 36, 16, 38, 32, 6, 16, 22, 32,186, 2,
- 88, 61,151, 59,182,204, 0,255,255,204,123,177, 58, 5, 1, 32, 1,244,254, 28,254, 10, 6, 3, 45,167,254,220,167,167, 1, 36,
- 2, 37,204,167,102, 90, 35,254,188,253,240,254,188, 97,100,254, 88,170, 2,218, 52, 1,150,231,231,254,106,231,255,255, 0,113,
-255,227, 3,231, 4,123, 18, 6, 0, 70, 0, 0,255,255,255,219,254, 86, 1,121, 6, 20, 18, 6, 0, 77, 0, 0, 0, 3, 0,115,
-255,227, 5,217, 5,240, 0, 7, 0, 15, 0, 26, 0, 0, 1, 33, 18, 23, 22, 32, 55, 54, 19, 38, 39, 38, 32, 7, 6, 7, 1, 32,
- 0, 17, 16, 0, 33, 32, 0, 16, 0, 5, 3,252, 69, 8,122,129, 1,184,129,119, 1, 22, 98,129,254, 72,129, 96, 25, 1,214, 1,
- 58, 1,120,254,136,254,198,254,197,254,135, 1,121, 2,198,254,255,154,164,164,153, 1,172,186,126,164,164,121,191, 2,128,254,
- 91,254,158,254,159,254, 91, 1,164, 2,196, 1,165, 0, 0, 0, 0, 1, 0,113,255,227, 3,216, 4,123, 0, 33, 0, 0, 1, 38,
- 39, 38, 35, 34, 7, 6, 7, 33, 21, 33, 22, 23, 22, 51, 50, 63, 1, 21, 7, 6, 35, 32, 39, 38, 16, 55, 54, 33, 50, 23, 22, 23,
- 3,216, 37, 37, 99,106,183,102, 95, 18, 2,165,253, 91, 18, 95,102,183,128, 77, 74, 79,104,107,254,244,156,157,157,156, 1, 12,
-101,110, 40, 39, 3,174, 13, 10, 26, 99, 92,169,144,169, 92, 99, 26, 25,167, 18, 22,156,156, 2, 40,156,156, 22, 8, 12, 0, 0,
- 0, 1, 0,196,255,227, 4, 43, 4,123, 0, 33, 0, 0, 19, 53, 54, 55, 54, 51, 32, 23, 22, 16, 7, 6, 33, 34, 47, 1, 53, 23,
- 22, 51, 50, 55, 54, 55, 33, 53, 33, 38, 39, 38, 35, 34, 7, 6,196, 39, 40,110,101, 1, 12,156,157,157,156,254,244,107,104, 79,
- 74, 77,128,183,102, 95, 18,253, 91, 2,165, 18, 95,102,183,106, 99, 37, 3,174,163, 12, 8, 22,156,156,253,216,156,156, 22, 18,
-167, 25, 26, 99, 92,169,144,169, 92, 99, 26, 10,255,255, 0,201, 0, 0, 4,141, 5,213, 18, 6, 0,160, 0, 0,255,255, 0,186,
-254, 86, 4,164, 6, 20, 18, 6, 0,192, 0, 0,255,255, 0,115,255,227, 5, 39, 5,240, 18, 6, 0, 38, 0, 0, 0, 1, 0,201,
- 0, 0, 6, 31, 5,213, 0, 12, 0, 0, 19, 33, 9, 1, 33, 17, 35, 17, 1, 35, 1, 17, 35,201, 1, 45, 1,125, 1,127, 1, 45,
-197,254,127,203,254,127,196, 5,213,254, 33, 1,223,250, 43, 5, 31,254, 25, 1,231,250,225, 0, 0, 1, 0,127,254, 86, 4,179,
- 4, 96, 0, 12, 0, 0, 19, 33, 19, 1, 33, 17, 35, 17, 1, 35, 1, 17, 35,127, 1, 27,254, 1, 0, 1, 27,185,254,236,153,254,
-235,185, 4, 96,254,123, 1,133,251,160, 3,178,254, 96, 1,160,250,164, 0, 0, 0, 2, 0, 85,254, 86, 4,164, 4,123, 0, 24,
- 0, 32, 0, 0, 23, 17, 52, 55, 54, 55, 54, 51, 50, 0, 16, 2, 35, 34, 38, 39, 17, 33, 21, 33, 21, 35, 53, 35, 53, 0, 16, 38,
- 32, 6, 16, 22, 32,186, 90, 61,151, 59,182,204, 0,255,255,204,123,177, 58, 1,229,254, 27,185,101, 3,144,167,254,220,167,167,
- 1, 36,144, 2,181,231,140,102, 90, 35,254,188,253,240,254,188, 97,100,254,200,170,112,112,170, 1,244, 1,150,231,231,254,106,
-231, 0, 0, 0,255,255, 0,115,255,227, 5, 39, 5,240, 18, 6, 1, 72, 0, 0,255,255, 0,115,255,227, 5, 39, 5,240, 18, 38,
- 3, 22, 0, 0, 16, 7, 0,121, 2, 51, 0, 0,255,255, 0,115,255,227, 5, 39, 5,240, 16, 39, 0,121, 0,228, 0, 0, 18, 6,
- 3, 26, 0, 0,255,255, 0,201, 0, 0, 4,139, 5,213, 18, 38, 3, 50, 0, 0, 16, 7, 6,135, 4,238, 1,117,255,255, 0,201,
- 0, 0, 4,139, 5,213, 18, 38, 3, 50, 0, 0, 16, 7, 6,132, 4,229, 1,117, 0, 1,255,250,254,102, 5,172, 5,213, 0, 29,
- 0, 0, 37, 16, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 52, 38, 35, 33, 17, 35, 17, 33, 53, 33, 21, 33, 17, 33, 50, 23, 22, 21,
- 5,172,204,228, 76, 62,134, 56, 55,124,124,254,136,203,254, 82, 4,139,253,238, 1,161,186,113,109,104,254,242,244,170, 75, 75,
-194, 1, 34,159,158,253, 57, 5, 43,170,170,254, 70,119,114,238,255,255, 0,201, 0, 0, 4,106, 5,213, 18, 38, 3, 48, 0, 0,
- 16, 7, 6,133, 4,174, 1,117, 0, 1, 0,115,255,227, 5, 39, 5,240, 0, 36, 0, 58, 64, 32, 36,149, 35,173, 37, 26,161, 25,
-174, 30,149, 21,145, 37, 8,161, 9,174, 4,149, 13,140, 37, 38, 35, 25, 8, 34, 0, 25, 17, 37, 16,220,236, 50,212, 60,204,204,
- 49, 0, 16,244,236,244,236, 16,244,236,244,236, 16,244,236, 48, 1, 18, 23, 22, 33, 50, 55, 54, 55, 21, 6, 7, 6, 35, 32, 39,
- 38, 17, 16, 55, 54, 33, 50, 23, 22, 23, 21, 38, 39, 38, 35, 32, 7, 6, 7, 33, 21, 1, 72, 7,129,136, 1, 0,130,116,115,102,
-106,119,118,132,254,173,195,195,195,195, 1, 83,134,118,119,104,102,115,116,130,255, 0,136,103, 25, 2,178, 2,199,254,242,147,
-157, 47, 47, 95,211, 72, 36, 36,207,208, 1,103, 1,104,207,208, 36, 35, 71,213, 95, 47, 47,156,119,198,170, 0,255,255, 0,135,
-255,227, 4,162, 5,240, 18, 6, 0, 54, 0, 0,255,255, 0,201, 0, 0, 1,147, 5,213, 18, 6, 0, 44, 0, 0,255,255, 0,201,
- 0, 0, 1,147, 5,213, 18, 38, 3, 35, 0, 0, 17, 7, 6,132, 3, 47, 1,117, 0, 8,180, 0, 10, 7, 1, 7, 43, 49, 0, 0,
-255,255,255,150,254,102, 1,147, 5,213, 18, 6, 0, 45, 0, 0, 0, 2, 0, 54,255,227, 8, 47, 5,213, 0, 22, 0, 33, 0, 0,
- 1, 33, 21, 16, 3, 6, 5, 53, 54, 55, 18, 25, 1, 33, 17, 51, 50, 4, 21, 20, 4, 35, 33, 1, 52, 39, 38, 43, 1, 17, 51, 50,
- 55, 54, 4,112,254, 27,132, 98,254,145,212, 67,117, 3,120,234,251, 1, 16,254,240,251,254, 76, 2,234, 79, 78,163,224,224,161,
- 80, 79, 5, 43,213,254, 24,254,170,253, 56,167, 46,168, 1, 37, 2, 53, 1, 27,253,154,218,222,221,218, 1,183,139, 68, 67,253,
-221, 68, 67, 0, 0, 2, 0,201, 0, 0, 7,204, 5,213, 0, 18, 0, 29, 0, 0, 33, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17,
- 51, 50, 4, 21, 20, 4, 35, 1, 52, 39, 38, 43, 1, 17, 51, 50, 55, 54, 4, 13,253,134,202,202, 2,122,202,234,251, 1, 16,254,
-240,251, 1, 54, 79, 78,163,224,224,161, 80, 79, 2,199,253, 57, 5,213,253,156, 2,100,253,154,218,222,221,218, 1,183,139, 68,
- 67,253,221, 68, 67, 0, 0, 0, 0, 1,255,250, 0, 0, 5,172, 5,213, 0, 20, 0, 0, 1, 50, 23, 22, 21, 17, 35, 17, 52, 38,
- 35, 33, 17, 35, 17, 33, 53, 33, 21, 33, 17, 4, 20,186,113,109,201,124,124,254,136,203,254, 82, 4,139,253,238, 3,113,119,114,
-238,254,102, 1,138,159,158,253, 57, 5, 43,170,170,254, 70, 0,255,255, 0,201, 0, 0, 5,106, 5,213, 18, 38, 3, 55, 0, 0,
- 16, 7, 6,133, 4,238, 1,117,255,255, 0,201, 0, 0, 5, 51, 5,213, 18, 38, 3, 53, 0, 0, 16, 7, 6,135, 4,229, 1,117,
-255,255, 0, 35,255,227, 4,189, 5,213, 16, 39, 6,139, 4,114, 1,117, 18, 6, 3, 64, 0, 0, 0, 1, 0,201,254, 86, 5, 59,
- 5,213, 0, 11, 0, 0, 41, 1, 17, 51, 17, 33, 17, 51, 17, 33, 17, 35, 2,188,254, 13,202, 2,222,202,254, 74,201, 5,213,250,
-213, 5, 43,250, 43,254, 86, 0,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 6, 0, 36, 0, 0, 0, 2, 0,201, 0, 0, 4,236,
- 5,213, 0, 10, 0, 23, 0, 44, 64, 24, 13,149, 23,129, 22, 5,149, 14,173, 6,149, 22, 25, 11, 0, 25, 18, 46, 5, 13, 28, 23,
- 4, 24, 16,252,236, 50,244,236,196,204, 49, 0, 47,236,244,236, 16,244,236, 48, 1, 52, 39, 38, 35, 33, 17, 33, 50, 55, 54, 17,
- 21, 33, 17, 33, 50, 4, 21, 20, 4, 35, 33, 17, 4, 23, 79, 78,163,254,188, 1, 68,163, 78, 79,253,124, 1, 78,251, 1, 16,254,
-240,251,253,232, 1,183,139, 68, 67,253,221, 68, 67, 4,168,166,254, 64,218,222,221,218, 5,213,255,255, 0,201, 0, 0, 4,236,
- 5,213, 18, 6, 0, 37, 0, 0, 0, 1, 0,201, 0, 0, 4,106, 5,213, 0, 5, 0, 25, 64, 12, 4,149, 1,129, 0, 7, 2, 4,
- 28, 1, 4, 6, 16,252,252,204,196, 49, 0, 47,244,236, 48, 51, 17, 33, 21, 33, 17,201, 3,161,253, 41, 5,213,170,250,213, 0,
- 0, 2, 0, 49,254, 86, 6, 3, 5,213, 0, 7, 0, 23, 0, 53, 64, 15, 2, 28, 14, 25, 19, 28, 16, 23, 3, 28, 13, 20, 28, 23,
- 24, 16,220,236,212,236, 16,212,236,204,212,236, 49, 0, 64, 12, 3,149, 13,129, 18, 22,189, 15, 0, 23,149, 20, 47,236, 50, 50,
-236, 50,244,236, 48, 37, 33, 17, 33, 21, 16, 3, 6, 5, 54, 55, 18, 25, 1, 33, 17, 51, 17, 35, 17, 33, 17, 35, 17, 1,200, 2,
-168,254, 27,132, 24,254,168,132, 50,117, 3,120,201,201,251,192,201,170, 4,129,212,254, 17,254,177, 61, 50, 57,126, 1, 37, 2,
- 53, 1, 26,250,213,253,172, 1,170,254, 86, 2, 84, 0, 0, 0,255,255, 0,201, 0, 0, 4,139, 5,213, 18, 6, 0, 40, 0, 0,
- 0, 1, 0, 59, 0, 0, 6,173, 5,213, 0, 21, 0,110, 64, 22, 66, 2, 20, 16,129, 14, 8, 12,149, 0, 18,173, 6, 10, 14, 23,
- 8, 21, 28, 11, 20, 22, 16,212, 60,252, 60,196, 49, 0, 47, 60, 60,244, 60,236, 50, 16,244, 60, 60, 48, 75, 83, 88, 64, 36, 4,
- 17, 7, 2, 1, 5, 17, 6, 7, 6, 4, 17, 1, 3, 17, 2, 2, 1, 15, 17, 18, 13, 12, 16, 17, 17, 18, 17, 15, 17, 12, 14, 17,
- 13, 13, 12, 5, 7, 16,236, 16,236, 7, 16,236, 8, 16,236, 5, 7, 16,236, 16,236, 7, 16,236, 8, 16,236, 89, 1, 51, 1, 51,
- 9, 1, 35, 1, 35, 17, 35, 17, 35, 1, 35, 9, 1, 51, 1, 51, 17, 51, 3,217,149, 1, 52,217,254,162, 1,144,217,254,155,150,
-202,150,254,155,217, 1,144,254,162,217, 1, 52,149,202, 3,113, 2,100,253, 71,252,228, 2,199,253, 57, 2,199,253, 57, 3, 28,
- 2,185,253,156, 2,100, 0, 0,255,255, 0,156,255,227, 4,115, 5,240, 18, 6, 0, 22, 0, 0, 0, 1, 0,201, 0, 0, 5, 51,
- 5,213, 0, 9, 0,121, 64, 30, 3, 17, 9, 9, 8, 8, 17, 4, 4, 3, 66, 8, 3, 9, 6,175, 2, 5, 9, 4, 7, 3, 28, 0,
- 54, 7, 28, 6, 4, 10, 16,252,236,252,236, 17, 57, 57, 49, 0, 47, 60,236, 50, 57, 57, 48, 75, 83, 88, 7, 16, 4,237, 7, 16,
- 4,237, 89, 34,178, 31, 11, 1, 1, 93, 64, 48, 54, 8, 56, 3, 72, 8, 71, 3,105, 8,102, 3,128, 8, 7, 6, 4, 9, 9, 21,
- 4, 26, 9, 70, 4, 73, 9, 87, 4, 88, 9,101, 4,105, 9,121, 9,133, 4,138, 9,149, 4,154, 9,159, 11, 16, 93, 0, 93, 1,
- 17, 35, 17, 1, 33, 17, 51, 17, 1, 5, 51,196,253,106,254,240,196, 2,150, 5,213,250, 43, 4,225,251, 31, 5,213,251, 31, 4,
-225, 0, 0, 0,255,255, 0,201, 0, 0, 5, 51, 5,213, 16, 39, 6,139, 4,245, 1,117, 18, 6, 3, 53, 0, 0,255,255, 0,201,
- 0, 0, 5,106, 5,213, 18, 6, 0, 46, 0, 0, 0, 1, 0, 54,255,228, 5, 58, 5,213, 0, 15, 0, 38, 64, 20, 11,149, 6,129,
- 9, 1,149, 0,140, 9, 17, 4, 10, 28, 7, 11, 28, 6, 1, 16, 16,212,212,236,212,236,236, 49, 0, 47,244,236, 16,244,236, 48,
- 23, 53, 54, 55, 18, 25, 1, 33, 17, 35, 17, 33, 21, 16, 3, 6, 54,212, 67,117, 3,120,202,254, 27,132, 98, 28,167, 46,168, 1,
- 37, 2, 53, 1, 26,250, 43, 5, 43,212,254, 24,254,170,253, 0,255,255, 0,201, 0, 0, 6, 31, 5,213, 18, 6, 0, 48, 0, 0,
-255,255, 0,201, 0, 0, 5, 59, 5,213, 18, 6, 0, 43, 0, 0,255,255, 0,115,255,227, 5,217, 5,240, 18, 6, 0, 50, 0, 0,
- 0, 1, 0,201, 0, 0, 5, 59, 5,213, 0, 7, 0, 31, 64, 16, 4,149, 7,129, 2, 6, 9, 4, 3, 28, 0, 4, 28, 7, 4, 8,
- 16,252,236,212,236,236, 49, 0, 47, 60,244,236, 48, 1, 17, 35, 17, 33, 17, 35, 17, 5, 59,202,253, 34,202, 5,213,250, 43, 5,
- 43,250,213, 5,213, 0, 0, 0,255,255, 0,201, 0, 0, 4,141, 5,213, 18, 6, 0, 51, 0, 0,255,255, 0,115,255,227, 5, 39,
- 5,240, 18, 6, 0, 38, 0, 0,255,255,255,250, 0, 0, 4,233, 5,213, 18, 6, 0, 55, 0, 0, 0, 1, 0, 35,255,227, 4,189,
- 5,213, 0, 17, 0, 65, 64, 14, 66, 6,149, 5,140, 16, 13,129, 18, 19, 17, 6, 13, 18, 16,212,196,212,196, 49, 0, 16,228, 50,
-244,236, 48, 75, 83, 88, 64, 18, 15, 17, 0, 13, 12, 16, 17, 17, 17, 0, 15, 17, 12, 14, 17, 13, 13, 12, 5, 7, 16,236, 16,236,
- 7, 16,236, 8, 16,236, 89, 37, 6, 7, 6, 43, 1, 53, 51, 50, 55, 54, 63, 1, 1, 51, 9, 1, 51, 2,143, 22, 31,103,227, 77,
- 63,140, 49, 14, 8, 45,254, 33,217, 1,115, 1,117,217,181, 51, 37,122,170, 75, 22, 18,106, 4,107,252,148, 3,108, 0, 0, 0,
- 0, 3, 0,115, 0, 0, 5,217, 5,213, 0, 8, 0, 17, 0, 39, 0, 59, 64, 31, 17, 0,149, 29, 26, 27,129, 39, 9, 8,149, 37,
- 18, 39, 41, 16, 13, 25, 33, 18, 0, 27, 28, 37, 17, 28, 4, 25, 22, 16, 40, 16,252,236,212, 60, 60,252, 60, 60,212,236,236, 49,
- 0, 47,220, 60,236, 50, 16,244,220, 60,236, 50, 48, 1, 6, 7, 6, 21, 20, 23, 22, 23, 51, 54, 55, 54, 53, 52, 39, 38, 39, 3,
- 38, 39, 38, 17, 16, 55, 54, 55, 53, 51, 21, 22, 23, 22, 17, 16, 7, 6, 7, 21, 35, 2,194,150, 98,130,130, 98,150,202,150, 98,
-128,128, 98,150,202,244,158,189,189,157,245,202,244,157,188,188,157,244,202, 4,142, 21, 87,115,198,197,115, 87, 21, 21, 87,115,
-197,198,115, 87, 21,252, 16, 22,134,160, 1, 15, 1, 15,161,135, 22,159,159, 23,134,161,254,241,254,242,161,134, 23,157, 0, 0,
-255,255, 0, 61, 0, 0, 5, 59, 5,213, 18, 6, 0, 59, 0, 0, 0, 1, 0,201,254, 86, 6, 4, 5,213, 0, 11, 0, 40, 64, 21,
- 6, 2,129, 11,189, 8, 4,149, 1, 13, 0, 28, 9, 6, 28, 7, 3, 28, 2, 4, 12, 16,252,236,212,236,212,236,204, 49, 0, 47,
-236, 50,236,244, 60, 48, 41, 1, 17, 51, 17, 33, 17, 51, 17, 51, 17, 35, 5, 59,251,142,202, 2,222,202,201,201, 5,213,250,213,
- 5, 43,250,213,253,172, 0, 0, 0, 1, 0,175, 0, 0, 4,179, 5,213, 0, 16, 0, 35, 64, 18, 2,149, 12,173, 14, 7,129, 0,
- 18, 4, 1, 14, 28, 15, 8, 28, 7, 17, 16,220,236,212,236, 50,236, 49, 0, 47,228, 50,244,236, 48, 33, 17, 33, 34, 39, 38, 53,
- 17, 51, 17, 20, 22, 51, 33, 17, 51, 17, 3,232,254, 95,186,113,109,201,124,124, 1,120,203, 2,199,119,114,238, 1, 55,254,217,
-159,158, 2,100,250, 43, 0, 0, 0, 1, 0,201, 0, 0, 7, 57, 5,213, 0, 11, 0, 40, 64, 21, 10, 2, 6,129, 0, 8,149, 5,
- 13, 4, 2, 28, 3, 10, 28, 11, 7, 28, 6, 4, 12, 16,252,236,212,252,212,236,236, 49, 0, 47,236, 50,244, 60,196, 48, 37, 33,
- 17, 51, 17, 33, 17, 51, 17, 33, 17, 51, 4,102, 2, 9,202,249,144,202, 2, 9,202,170, 5, 43,250, 43, 5,213,250,213, 4,221,
- 0, 1, 0,201,254, 86, 8, 2, 5,213, 0, 15, 0, 49, 64, 26, 6, 10, 2,129, 15,189, 12, 8, 4,149, 1, 17, 0, 28, 13, 10,
- 28, 11, 6, 28, 7, 3, 28, 2, 4, 16, 16,252,236,212,252,212,236,212,236,204, 49, 0, 47,236, 50, 50,236,244, 60,196, 48, 41,
- 1, 17, 51, 17, 33, 17, 51, 17, 33, 17, 51, 17, 51, 17, 35, 7, 57,249,144,202, 2, 9,202, 2, 9,202,201,201, 5,213,250,213,
- 4,221,251, 35, 5, 43,250,213,253,172, 0, 0, 0, 2, 0, 50, 0, 0, 6, 24, 5,213, 0, 12, 0, 23, 0, 42, 64, 22, 2,149,
- 3,129, 0, 18,149, 5,173, 19,149, 0, 16, 13, 25, 9, 18, 4, 28, 1, 3, 24, 16,204,220,236, 50,212,236,204, 49, 0, 47,236,
-244,236, 16,244,236, 48, 33, 17, 33, 53, 33, 17, 33, 50, 4, 21, 20, 4, 35, 1, 52, 39, 38, 35, 33, 17, 33, 50, 55, 54, 1,245,
-254, 61, 2,141, 1, 78,251, 1, 16,254,240,251, 1, 54, 79, 78,163,254,188, 1, 68,161, 80, 79, 5, 43,170,253,154,218,222,221,
-218, 1,183,139, 68, 67,253,221, 68, 67, 0, 0,255,255, 0,201, 0, 0, 6, 70, 5,213, 16, 39, 0, 44, 4,179, 0, 0, 17, 6,
- 3, 73, 0, 0, 0, 13, 64, 6, 27, 4, 1, 28, 0, 21, 16,220,252,236, 49, 0, 0, 2, 0,201, 0, 0, 4,236, 5,213, 0, 10,
- 0, 21, 0, 36, 64, 19, 5,149, 13,173, 11,129, 6,149, 21, 23, 0, 25, 17, 5, 12, 28, 11, 4, 22, 16,252,236, 50,212,236,204,
- 49, 0, 47,236,228,244,236, 48, 1, 52, 39, 38, 35, 33, 17, 33, 50, 55, 54, 1, 51, 17, 33, 50, 4, 21, 20, 4, 35, 33, 4, 23,
- 79, 78,163,254,188, 1, 68,163, 78, 79,252,178,202, 1, 78,251, 1, 16,254,240,251,253,232, 1,183,139, 68, 67,253,221, 68, 67,
- 4,168,253,154,218,222,221,218, 0, 1, 0,111,255,227, 5, 35, 5,240, 0, 36, 0, 58, 64, 32, 1,149, 2,173, 37, 11,161, 12,
-174, 7,149, 16,145, 37, 29,161, 28,174, 33,149, 24,140, 37, 38, 0, 3, 25, 20, 2, 29, 12, 37, 16,220, 60,204,212,236, 50,204,
- 49, 0, 16,244,236,244,236, 16,244,236,244,236, 16,244,236, 48, 1, 33, 53, 33, 38, 39, 38, 33, 34, 7, 6, 7, 53, 54, 55, 54,
- 51, 32, 23, 22, 17, 16, 7, 6, 33, 34, 39, 38, 39, 53, 22, 23, 22, 51, 32, 55, 54, 4, 78,253, 70, 2,178, 25,103,136,255, 0,
-130,116,115,102,104,119,118,134, 1, 83,195,195,195,195,254,173,132,118,119,106,102,115,116,130, 1, 0,136,129, 2,199,170,198,
-119,156, 47, 47, 95,213, 71, 35, 36,208,207,254,152,254,153,208,207, 36, 36, 72,211, 95, 47, 47,157,147, 0, 0, 0, 2, 0,211,
-255,227, 7,204, 5,240, 0, 15, 0, 38, 0, 56, 64, 31, 0,149, 20,145, 39, 8,149, 28,140, 39, 33,149, 38,173, 36,129, 35, 40,
- 12, 25, 24, 4, 25, 32, 16, 33, 37, 28, 36, 4, 39, 16,252,236, 50,212, 60,236,212,236,204, 49, 0, 47,228,244,236, 16,244,236,
- 16,244,236, 48, 1, 34, 7, 6, 17, 16, 23, 22, 51, 50, 55, 54, 17, 16, 39, 38, 1, 18, 55, 54, 33, 32, 23, 22, 17, 16, 7, 6,
- 33, 32, 39, 38, 3, 35, 17, 35, 17, 51, 17, 5, 26,220,130,129,129,130,220,220,128,129,129,128,252,119, 30,151,189, 1, 59, 1,
- 58,188,188,188,188,254,198,254,197,189,179, 9,201,202,202, 5, 76,164,164,254,229,254,230,164,164,164,164, 1, 26, 1, 27,164,
-164,254, 37, 1, 5,168,210,210,211,254,158,254,159,210,211,210,200, 1, 74,253, 57, 5,213,253,156, 0, 0, 0, 0, 2, 0, 59,
- 0, 0, 4,198, 5,213, 0, 19, 0, 28, 0, 69, 64, 22, 66, 21,149, 6,129, 16, 11,149, 27,173, 9, 16, 30, 4, 10, 20, 28, 7,
- 24, 25, 3, 29, 16,212,236,212,236, 50,236, 49, 0, 47, 60,244,236, 16,244,236, 48, 75, 83, 88, 64, 13, 13, 12, 11, 3, 10, 14,
- 17, 17, 15, 17, 16, 17, 16, 5, 7, 16,236, 16,236, 17, 23, 57, 89, 1, 46, 1, 53, 52, 54, 41, 1, 17, 35, 17, 35, 34, 6, 7,
- 3, 35, 19, 62, 1, 1, 35, 34, 6, 21, 20, 22, 59, 1, 2, 2,125,131,252, 1, 0, 1,200,202,220,120,139, 74,191,217,205, 62,
-123, 2, 59,254,146,149,149,146,254, 2,188, 36,186,141,216,214,250, 43, 2,119, 98,150,254,129, 1,152,126,144, 2,137,133,131,
-131,135, 0, 0,255,255, 0,123,255,227, 4, 45, 4,123, 18, 6, 0, 68, 0, 0, 0, 2, 0,113,255,227, 4,117, 5,240, 0, 28,
- 0, 45, 0, 73, 64, 40, 29, 22, 44,185, 6, 46, 0,134, 28,136, 2,185, 26, 46, 37,185, 14,140, 46, 29, 40, 22, 33, 4, 47, 69,
- 28, 40, 18, 10, 81, 18, 4, 18, 24, 33, 18, 18, 69, 46, 16,252,236,212,236, 16,244,236,196,236, 17, 18, 57, 18, 57, 49, 0, 16,
-244,236, 16,212,236,244,236, 16,212,236, 57, 57, 48, 1, 38, 35, 34, 21, 20, 5, 22, 23, 22, 17, 16, 7, 6, 35, 34, 39, 38, 17,
- 52, 55, 54, 55, 38, 53, 16, 33, 50, 23, 1, 6, 7, 6, 21, 20, 23, 22, 51, 50, 54, 53, 52, 39, 38, 39, 38, 3,236,102,239,253,
- 1, 8,208,117,142,137,137,240,239,138,137,137, 53, 75,156, 1,185,221,120,254, 24, 68, 55, 86, 85, 86,149,147,172, 91, 97,126,
- 64, 5, 17, 70,117, 92, 48, 37,112,135,254,235,254,247,156,157,157,156, 1, 19,204,165, 64, 36, 79,141, 1, 16, 70,254, 40, 29,
- 73,113,204,203,114,115,232,190,199, 96,103, 11, 6, 0, 0, 0, 0, 3, 0,186, 0, 0, 4, 62, 4, 96, 0, 10, 0, 21, 0, 38,
- 0, 45, 64, 24, 0,169, 12, 38, 11,169, 22,188, 1,169, 38, 17, 18, 26, 40, 6, 18, 33, 0, 11, 8, 22, 70, 39, 16,252,236, 50,
-212,236,204,212,236, 49, 0, 47,236,244,236, 16,212,236, 48, 1, 17, 33, 50, 55, 54, 53, 52, 39, 38, 35, 1, 17, 51, 50, 55, 54,
- 53, 52, 39, 38, 35, 37, 33, 50, 22, 21, 20, 7, 6, 7, 30, 1, 21, 20, 7, 6, 35, 33, 1,114, 1, 6,129, 66, 63, 63, 69,126,
-254,250,242,117, 61, 58, 58, 61,117,254, 86, 1,182,197,212, 54, 54,106,127,140,116,115,214,254, 57, 2, 2,254,151, 46, 44, 91,
- 94, 41, 45, 1,197,254,218, 38, 36, 75, 72, 36, 37,153,144,133,103, 60, 61, 15, 24,152,114,150, 82, 82, 0, 0, 0, 1, 0,186,
- 0, 0, 3,208, 4, 96, 0, 5, 0, 25, 64, 12, 4,169, 1,188, 0, 7, 2, 4, 8, 1, 70, 6, 16,252,252,204,196, 49, 0, 47,
-244,236, 48, 51, 17, 33, 21, 33, 17,186, 3, 22,253,162, 4, 96,170,252, 74, 0, 0, 2, 0, 50,254, 86, 5, 46, 4, 96, 0, 7,
- 0, 23, 0, 53, 64, 15, 2, 8, 14, 25, 19, 8, 16, 23, 3, 8, 13, 20, 8, 23, 24, 16,220,236,212,236, 16,212,236,204,212,236,
- 49, 0, 64, 12, 3,169, 13,188, 18, 22,189, 15, 0, 23,169, 20, 47,236, 50, 50,236, 50,244,236, 48, 37, 33, 17, 33, 21, 16, 7,
- 6, 5, 54, 55, 54, 17, 53, 33, 17, 51, 17, 35, 17, 33, 17, 35, 17, 1,166, 2, 24,254,123,118, 20,254,237, 91, 40, 98, 2,245,
-184,184,252,116,184,153, 3, 46,134,254,109,223, 17, 37, 40, 85,211, 1,163,212,252, 57,253,189, 1,170,254, 86, 2, 67, 0, 0,
-255,255, 0,113,255,227, 4,127, 4,123, 18, 6, 0, 72, 0, 0, 0, 1, 0, 50, 0, 0, 5,173, 4, 96, 0, 21, 0,109, 64, 21,
- 66, 2, 20, 16,188, 14, 8, 12,169, 0, 18, 6, 10, 14, 23, 8, 21, 8, 11, 20, 22, 16,212, 60,252, 60,196, 49, 0, 47, 60, 60,
-212, 60,236, 50, 16,244, 60, 60, 48, 75, 83, 88, 64, 36, 4, 17, 7, 2, 1, 5, 17, 6, 7, 6, 4, 17, 1, 3, 17, 2, 2, 1,
- 15, 17, 18, 13, 12, 16, 17, 17, 18, 17, 15, 17, 12, 14, 17, 13, 13, 12, 5, 7, 16,236, 16,236, 7, 16,236, 8, 16,236, 5, 7,
- 16,236, 16,236, 7, 16,236, 8, 16,236, 89, 1, 51, 1, 51, 9, 1, 35, 1, 35, 17, 35, 17, 35, 1, 35, 9, 1, 51, 1, 51, 17,
- 51, 3, 75,113, 1, 2,196,254,215, 1, 84,197,254,213,114,183,114,254,213,197, 1, 84,254,215,196, 1, 2,113,183, 2,161, 1,
-191,253,245,253,171, 2, 9,253,247, 2, 9,253,247, 2, 85, 2, 11,254, 65, 1,191, 0, 0, 0, 0, 1, 0,133,255,227, 3,200,
- 4,124, 0, 49, 0, 60, 64, 33, 38,134, 39,136, 34,185, 42,184, 50, 24,169, 25, 50, 11,134, 10,136, 15,185, 6,140, 50, 30, 18,
- 46, 51, 19, 18, 3, 25, 39, 11, 50, 16,220,196,196,212,236,204,212,236, 49, 0, 16,244,236,252,236, 16,212,236, 16,244,236,252,
-236, 48, 1, 30, 1, 21, 20, 4, 35, 34, 39, 38, 39, 53, 22, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38, 43, 1, 53, 51, 50, 55, 54,
- 53, 52, 39, 38, 35, 34, 7, 6, 7, 53, 62, 1, 51, 50, 23, 22, 21, 20, 7, 6, 2,194,124,138,254,254,238, 80, 85, 84, 90, 71,
- 85, 85, 93,151, 85, 84, 78, 72,137,148,155,116, 67, 68, 70, 69,119, 71, 81, 80, 97, 98,170, 76,196,113,114, 60, 60, 2, 92, 24,
-146,108,173,182, 14, 14, 28,171, 37, 19, 18, 56, 56, 90, 88, 56, 51,152, 44, 45, 70, 64, 46, 46, 13, 13, 29,167, 24, 24, 78, 79,
-141, 93, 64, 65, 0, 1, 0,193, 0, 0, 4,128, 4, 96, 0, 9, 0, 63, 64, 21, 66, 8, 3, 9, 6,188, 2, 5, 11, 70, 9, 4,
- 7, 3, 8, 0, 7, 8, 6, 70, 10, 16,252,236,212,236, 17, 57, 57,236, 49, 0, 47, 60,228, 50, 57, 57, 48, 75, 83, 88, 64, 10,
- 3, 17, 9, 9, 8, 8, 17, 4, 4, 3, 7, 16,236, 7, 16,236, 89, 1, 17, 35, 17, 1, 35, 17, 51, 17, 1, 4,128,183,253,228,
-236,183, 2, 27, 4, 96,251,160, 3,131,252,125, 4, 96,252,127, 3,129, 0, 0,255,255, 0,193, 0, 0, 4,128, 6, 20, 16, 39,
- 2, 49, 0,160,255,204, 18, 6, 3, 85, 0, 0, 0, 1, 0,191, 0, 0, 4,161, 4, 96, 0, 10, 0, 70, 64, 17, 66, 3, 0,188,
- 7, 10, 12, 5, 1, 4, 6, 8, 1, 8, 0, 70, 11, 16,252,236, 50,212,196, 17, 57,196, 49, 0, 47, 60,228, 50, 48, 75, 83, 88,
- 64, 16, 7, 17, 6, 8, 17, 5, 6, 5, 2, 17, 5, 3, 17, 4, 5, 4, 5, 7, 16,236, 4, 16,236, 7, 16,236, 5, 16,236, 89,
- 19, 51, 17, 1, 51, 9, 1, 35, 1, 17, 35,191,185, 2, 37,235,253,174, 2,107,240,253,199,185, 4, 96,254, 29, 1,227,253,244,
-253,172, 2, 35,253,221, 0, 0, 0, 1, 0, 46,255,227, 4,115, 4, 96, 0, 15, 0, 38, 64, 20, 11,169, 6,188, 9, 1,169, 0,
-140, 9, 17, 70, 10, 8, 7, 11, 8, 6, 1, 16, 16,212,212,236,212,236,236, 49, 0, 47,244,236, 16,244,236, 48, 23, 53, 54, 55,
- 54, 17, 53, 33, 17, 35, 17, 33, 21, 16, 3, 6, 46,179, 59, 98, 2,245,184,254,123,118, 94, 29,153, 27,127,207, 1,167,212,251,
-160, 3,199,134,254,146,254,252,207, 0, 0, 0, 0, 1, 0,193, 0, 0, 5, 72, 4, 96, 0, 12, 0, 77, 64, 22, 66, 10, 7, 2,
- 3, 8, 3, 0,188, 9, 6, 12, 14, 70, 7, 8, 4, 10, 8, 0, 70, 13, 16,252,236,220,236,236, 49, 0, 47, 60,196,236, 50, 17,
- 23, 57, 48, 75, 83, 88, 64, 18, 2, 17, 8, 10, 9, 3, 17, 7, 8, 7, 2, 17, 9, 1, 17, 10, 10, 9, 5, 7, 16,237, 16,237,
- 7, 16,237, 8, 16,237, 89, 19, 33, 9, 1, 33, 17, 35, 17, 1, 35, 1, 17, 35,193, 1, 6, 1, 62, 1, 63, 1, 4,178,254,203,
-184,254,202,178, 4, 96,253, 18, 2,238,251,160, 3,176,253, 39, 2,217,252, 80, 0, 1, 0,193, 0, 0, 4,136, 4, 96, 0, 11,
- 0, 39, 64, 20, 9,169, 2, 4, 0,188, 7, 11, 13, 70, 8, 4, 8, 5, 9, 1, 8, 0, 70, 12, 16,252,236, 50,220,236, 50,236,
- 49, 0, 47, 60,228, 50,220,236, 48, 19, 51, 17, 33, 17, 51, 17, 35, 17, 33, 17, 35,193,184, 2, 87,184,184,253,169,184, 4, 96,
-254, 51, 1,205,251,160, 2, 4,253,252, 0, 0,255,255, 0,113,255,227, 4,117, 4,123, 18, 6, 0, 82, 0, 0, 0, 1, 0,193,
- 0, 0, 4,136, 4, 96, 0, 7, 0, 40, 64, 16, 4,169, 7,188, 2, 6, 3, 8, 9, 70, 0, 4, 8, 7, 70, 8, 16,252,236,212,
-236,236, 49, 0, 47, 60,244,236, 48, 64, 5,160, 9,128, 9, 2, 1, 93, 1, 17, 35, 17, 33, 17, 35, 17, 4,136,184,253,169,184,
- 4, 96,251,160, 3,198,252, 58, 4, 96, 0, 0,255,255, 0,186,254, 86, 4,164, 4,123, 18, 6, 0, 83, 0, 0,255,255, 0,113,
-255,227, 3,231, 4,123, 18, 6, 0, 70, 0, 0, 0, 1, 0, 5, 0, 0, 4, 54, 4, 96, 0, 7, 0, 37, 64, 13, 3, 7,169, 0,
-188, 5, 9, 1, 3, 8, 0, 6, 8, 16,212,204,252,204,204, 49, 0, 47,244,236, 50, 48, 64, 5,160, 9,128, 9, 2, 1, 93, 19,
- 33, 21, 33, 17, 35, 17, 33, 5, 4, 49,254, 66,181,254, 66, 4, 96,170,252, 74, 3,182, 0, 0,255,255, 0, 61,254, 86, 4,127,
- 4, 96, 18, 6, 0, 92, 0, 0, 0, 3, 0,113,254, 86, 6,228, 5,213, 0, 15, 0, 52, 0, 67, 0, 64, 64, 35, 57, 12,185, 39,
- 28,184, 33,151, 68, 64, 4,185, 47, 21,140, 16,189, 68, 69, 69, 53, 18, 43, 17, 8, 33, 8, 51, 61, 34, 0, 18, 25, 69, 68, 16,
-252,236,212, 60, 60,252, 60, 60,212,236,236, 49, 0, 16,236,244, 60,236, 50, 16,228,244, 60,236, 50, 48, 1, 20, 23, 22, 51, 50,
- 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 1, 17, 6, 7, 6, 35, 34, 39, 38, 17, 16, 18, 51, 50, 23, 22, 23, 17, 51, 17, 54, 55,
- 54, 51, 50, 23, 22, 17, 16, 7, 6, 35, 34, 39, 38, 39, 17, 1, 52, 39, 38, 35, 34, 7, 6, 21, 20, 22, 51, 50, 55, 54, 1, 52,
- 68, 67,133,133, 69, 68, 68, 69,133,133, 67, 68, 2, 26, 45, 77, 76,101,201,116,117,232,202,100, 77, 76, 46,185, 46, 77, 76,100,
-203,115,116,116,116,202,102, 76, 77, 44, 2, 28, 67, 68,133,134, 69, 69,138,134,133, 68, 67, 2, 47,214,109,109,109,110,213,213,
-110,109,109,109,251, 81, 2, 57, 83, 44, 45,155,156, 1, 17, 1, 22, 1, 58, 43, 44, 83, 2, 4,253,252, 83, 44, 43,157,157,254,
-234,254,239,156,155, 43, 44, 83,253,201, 3,217,214,109,109,109,110,213,212,220,109,109, 0, 0,255,255, 0, 59, 0, 0, 4,121,
- 4, 96, 18, 6, 0, 91, 0, 0, 0, 1, 0,193,254, 86, 5, 64, 4, 96, 0, 11, 0, 40, 64, 21, 6, 2,188, 11,189, 8, 4,169,
- 1, 13, 0, 8, 9, 6, 8, 7, 3, 8, 2, 70, 12, 16,252,236,212,236,212,236,204, 49, 0, 47,236, 50,236,244, 60, 48, 41, 1,
- 17, 51, 17, 33, 17, 51, 17, 51, 17, 35, 4,136,252, 57,184, 2, 87,184,184,184, 4, 96,252, 57, 3,199,252, 57,253,189, 0, 0,
- 0, 1, 0,150, 0, 0, 4, 0, 4, 96, 0, 17, 0, 34, 64, 17, 2,169, 13, 15, 7,188, 0, 19, 70, 1, 15, 8, 16, 8, 8, 7,
- 18, 16,220,236,212,236, 50,236, 49, 0, 47,228, 50,212,236, 48, 33, 17, 33, 34, 39, 38, 61, 1, 51, 21, 20, 23, 22, 51, 33, 17,
- 51, 17, 3, 72,254,169,153,102, 92,184, 52, 53,104, 1, 41,184, 2, 9, 95, 86,184,234,211,117, 59, 59, 1,190,251,160, 0, 0,
- 0, 1, 0,193, 0, 0, 6, 58, 4, 96, 0, 11, 0, 40, 64, 21, 10, 2, 6,188, 0, 8,169, 5, 13, 70, 2, 8, 3, 10, 8, 11,
- 7, 8, 6, 70, 12, 16,252,236,212,252,212,236,236, 49, 0, 47,236, 50,244, 60,196, 48, 37, 33, 17, 51, 17, 33, 17, 51, 17, 33,
- 17, 51, 3,217, 1,169,184,250,135,184, 1,168,184,153, 3,199,251,160, 4, 96,252, 57, 3,140, 0, 1, 0,193,254, 86, 6,242,
- 4, 96, 0, 15, 0, 49, 64, 26, 6, 10, 2,188, 15,189, 12, 8, 4,169, 1, 17, 0, 8, 13, 10, 8, 11, 6, 8, 7, 3, 8, 2,
- 70, 16, 16,252,236,212,252,212,236,212,236,204, 49, 0, 47,236, 50, 50,236,244, 60,196, 48, 41, 1, 17, 51, 17, 33, 17, 51, 17,
- 33, 17, 51, 17, 51, 17, 35, 6, 58,250,135,184, 1,168,184, 1,169,184,184,184, 4, 96,252, 57, 3,140,252,116, 3,199,252, 57,
-253,189, 0, 0, 0, 2, 0, 42, 0, 0, 5, 46, 4, 96, 0, 10, 0, 25, 0, 42, 64, 22, 12,169, 13,188, 25, 5,169, 15, 6,169,
- 25, 27, 69, 0, 18, 20, 5, 14, 8, 11, 13, 26, 16,204,220,236, 50,212,236,236, 49, 0, 47,236,212,236, 16,244,236, 48, 1, 52,
- 39, 38, 35, 33, 17, 33, 50, 55, 54, 1, 33, 53, 33, 17, 33, 50, 23, 22, 21, 20, 7, 6, 35, 33, 4,106, 62, 67,128,254,249, 1,
- 7,129, 66, 62,253, 64,254,128, 2, 56, 1, 15,208,121,116,116,115,214,254, 57, 1, 76, 94, 42, 46,254,151, 46, 43, 2,212,154,
-254, 59, 85, 82,168,168, 82, 82,255,255, 0,193, 0, 0, 5,105, 4, 96, 16, 38, 3,105, 0, 0, 17, 7, 0,243, 3,240, 0, 0,
- 0, 13, 64, 6, 29, 70, 25, 8, 24, 18, 16,220,252,236, 49, 0, 0, 2, 0,193, 0, 0, 4, 69, 4, 96, 0, 10, 0, 23, 0, 36,
- 64, 19, 5,169, 13, 11,188, 6,169, 23, 25, 69, 0, 18, 18, 5, 12, 8, 11, 70, 24, 16,252,236, 50,212,236,236, 49, 0, 47,236,
-228,212,236, 48, 1, 52, 39, 38, 35, 33, 17, 33, 50, 55, 54, 1, 51, 17, 33, 50, 23, 22, 21, 20, 7, 6, 35, 33, 3,129, 62, 67,
-128,254,249, 1, 7,129, 66, 62,253, 64,184, 1, 15,208,121,116,116,115,214,254, 57, 1, 76, 94, 42, 46,254,151, 46, 43, 3,110,
-254, 59, 85, 82,168,168, 82, 82, 0, 1, 0,113,255,227, 3,231, 4,123, 0, 28, 0, 0, 1, 34, 7, 21, 54, 51, 50, 23, 22, 23,
- 33, 21, 33, 6, 7, 6, 35, 34, 39, 21, 22, 51, 32, 55, 54, 17, 16, 39, 38, 1,180,166,157,161,154,230, 92, 34, 12,254, 52, 1,
-212, 13,158, 85,120,157,158,147,189, 1, 11,148,135,151,148, 4,123, 70,172, 86,180, 65, 87,143,244, 94, 51, 86,170, 72,172,157,
- 1, 3, 1, 17,157,158, 0, 0, 0, 2, 0,193,255,227, 6, 16, 4,123, 0, 14, 0, 36, 0, 56, 64, 31, 0,185, 19,184, 37, 8,
-185, 26,140, 37, 31,169, 36, 34,188, 33, 38, 69, 11, 18, 22, 4, 18, 30, 15, 31, 35, 8, 34, 70, 37, 16,252,236, 50,212, 60,236,
-212,236,236, 49, 0, 47,228,212,236, 16,244,236, 16,244,236, 48, 1, 34, 7, 6, 21, 20, 23, 22, 51, 50, 54, 53, 52, 39, 38, 1,
- 54, 55, 54, 51, 50, 0, 17, 16, 7, 6, 35, 34, 39, 38, 39, 35, 17, 35, 17, 51, 17, 4, 14,148, 86, 86, 85, 86,149,147,172, 86,
- 86,253,113, 19,112,137,240,240, 1, 18,137,137,240,241,136,127, 9,148,184,184, 3,223,115,116,201,201,116,115,232,200,199,116,
-117,254,194,190,128,156,254,200,254,236,254,237,156,157,157,145,248,253,247, 4, 96,254, 65, 0, 0, 2, 0, 50, 0, 0, 4, 15,
- 4, 96, 0, 22, 0, 33, 0, 68, 64, 21, 66, 24,169, 7,188, 18, 12,169, 32, 10, 18, 35, 70, 11, 23, 8, 8, 28, 18, 3, 34, 16,
-212,236,212,236, 50,236, 49, 0, 47, 60,212,236, 16,244,236, 48, 75, 83, 88, 64, 13, 15, 14, 13, 3, 12, 16, 17, 19, 17, 17, 18,
- 19, 18, 5, 7, 16,236, 16,236, 17, 23, 57, 89, 1, 46, 1, 53, 52, 55, 54, 51, 33, 17, 35, 17, 35, 34, 7, 6, 7, 3, 35, 19,
- 54, 55, 54, 1, 35, 34, 7, 6, 21, 20, 23, 22, 59, 1, 1,181,106,112,107,108,217, 1,132,185,169, 97, 59, 59, 63,162,195,174,
- 53, 52, 53, 1,216,198,119, 63, 64, 64, 63,119,198, 2, 13, 27,140,105,162, 81, 80,251,160, 1,217, 37, 36,113,254,225, 1, 50,
- 94, 54, 54, 1,201, 42, 42, 84, 83, 43, 43, 0,255,255, 0,113,255,227, 4,127, 6,107, 16, 38, 0, 67, 90, 5, 18, 6, 3, 82,
- 0, 0, 0, 0,255,255, 0,113,255,227, 4,127, 6, 16, 16, 39, 0,106, 0,150, 0, 0, 18, 6, 3, 82, 0, 0, 0, 1, 0, 40,
-254, 86, 4,107, 6, 20, 0, 40, 0, 0, 19, 35, 53, 51, 53, 51, 21, 33, 21, 33, 17, 54, 55, 54, 51, 50, 23, 22, 21, 17, 20, 7,
- 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 52, 38, 35, 34, 7, 6, 21, 17, 35,193,153,153,185, 1, 70,254,186, 66, 89, 90,117,185,
-107, 99, 82, 81,181, 70, 49,110, 33, 38,124,124,154, 81, 86,185, 5, 4,125,147,147,125,254, 87,101, 50, 50,119,110,242,253,159,
-214, 96, 96,156, 48, 55,147, 2, 91,159,158, 95,101,158,253,222,255,255, 0,186, 0, 0, 3,216, 6,109, 16, 39, 0,118, 0,134,
- 0, 7, 18, 6, 3, 80, 0, 0, 0, 1, 0,113,255,227, 3,231, 4,123, 0, 28, 0, 58, 64, 33, 2,134, 3,136, 5, 19,134, 18,
-136, 16,185, 21, 10,169, 11,187, 5,185, 0,184, 21,140, 29, 10, 12, 9, 18, 18, 2, 72, 25, 69, 29, 16,252,228, 50,252, 50,204,
- 49, 0, 16,228,244,236,244,238, 16,254,244,238, 16,245,238, 48, 1, 50, 23, 21, 38, 35, 34, 7, 6, 7, 33, 21, 33, 22, 23, 22,
- 51, 50, 55, 21, 6, 35, 32, 39, 38, 17, 16, 55, 54, 2,164,166,157,161,154,230, 92, 34, 12, 1,204,254, 44, 13,158, 85,120,157,
-158,147,188,254,243,148,134,151,149, 4,123, 70,172, 86,180, 65, 87,143,244, 94, 51, 86,170, 72,173,157, 1, 2, 1, 17,157,158,
-255,255, 0,111,255,227, 3,199, 4,123, 18, 6, 0, 86, 0, 0,255,255, 0,193, 0, 0, 1,121, 6, 20, 18, 6, 0, 76, 0, 0,
-255,255,255,244, 0, 0, 2, 70, 6, 16, 18, 38, 0,243, 0, 0, 17, 7, 0,106,255, 29, 0, 0, 0, 8,180, 0, 10, 7, 1, 7,
- 43, 49, 0, 0,255,255,255,219,254, 86, 1,121, 6, 20, 18, 6, 0, 77, 0, 0, 0, 2, 0, 46,255,227, 6,190, 4, 96, 0, 23,
- 0, 34, 0, 0, 1, 33, 21, 16, 3, 6, 5, 53, 54, 55, 54, 17, 53, 33, 17, 51, 50, 23, 22, 16, 7, 6, 35, 33, 1, 52, 39, 38,
- 43, 1, 17, 51, 50, 55, 54, 3,158,254,152,118, 94,254,204,179, 59, 98, 2,216,171,208,121,116,116,115,214,254,157, 2, 92, 62,
- 67,128,163,163,129, 66, 62, 3,199,134,254,146,254,252,207, 29,153, 27,127,207, 1,167,212,254, 59, 85, 82,254,176, 82, 82, 1,
- 76, 94, 42, 46,254,151, 46, 43, 0, 2, 0,193, 0, 0, 6,188, 4, 96, 0, 10, 0, 30, 0, 0, 1, 52, 39, 38, 43, 1, 17, 51,
- 50, 55, 54, 5, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 51, 50, 23, 22, 16, 7, 6, 35, 5,248, 62, 66,129,163,163,129, 66,
- 62,253,164,253,221,184,184, 2, 35,184,171,208,121,116,116,115,214, 1, 76, 95, 42, 45,254,151, 46, 43,242, 2, 2,253,254, 4,
- 96,254, 59, 1,197,254, 59, 85, 82,254,176, 82, 82, 0, 0, 0, 0, 1, 0, 40, 0, 0, 4,107, 6, 20, 0, 30, 0, 0, 19, 35,
- 53, 51, 53, 51, 21, 33, 21, 33, 17, 54, 55, 54, 51, 50, 23, 22, 21, 17, 35, 17, 52, 38, 35, 34, 7, 6, 21, 17, 35,193,153,153,
-185, 1, 70,254,186, 66, 89, 90,117,189,103, 99,184,124,124,152, 83, 86,185, 5, 4,125,147,147,125,254, 87,101, 50, 50,119,115,
-237,253,179, 2, 71,159,158, 95, 98,161,253,222,255,255, 0,191, 0, 0, 4,161, 6,109, 16, 39, 0,118, 0,228, 0, 7, 18, 6,
- 3, 87, 0, 0,255,255, 0,193, 0, 0, 4,128, 6,107, 16, 38, 0, 67,100, 5, 18, 6, 3, 85, 0, 0, 0, 0,255,255, 0, 61,
-254, 86, 4,127, 6, 20, 16, 38, 2, 49, 94,204, 18, 6, 3, 96, 0, 0, 0, 0, 0, 1, 0,193,254, 86, 4,136, 4, 96, 0, 11,
- 0, 0, 33, 17, 35, 17, 33, 17, 51, 17, 33, 17, 51, 17, 2,255,184,254,122,184, 2, 87,184,254, 86, 1,170, 4, 96,252, 58, 3,
-198,251,160, 0, 0, 1, 0,115,255,227, 7, 5, 5,213, 0, 52, 0, 0, 1, 22, 51, 50, 55, 54, 61, 1, 51, 21, 20, 23, 22, 51,
- 50, 55, 54, 17, 52, 39, 2, 39, 51, 22, 23, 18, 21, 16, 7, 6, 35, 34, 39, 38, 39, 6, 7, 6, 35, 34, 39, 38, 17, 52, 19, 54,
- 55, 51, 6, 3, 6, 21, 16, 1,146, 73,125,114, 72, 71,199, 70, 70,116,134, 65, 71, 67,135, 84,250, 95, 56,100,123,123,209,146,
-101,100, 39, 39,100,101,146,211,121,123,100, 59, 93,249, 84,135, 67, 1, 90,109,105,104,198,241,241,198,104,105,109,119, 1, 39,
-183,159, 1, 65, 70,130,156,254,231,190,254,102,178,177, 94, 94,173,173, 94, 94,177,180, 1,152,201, 1, 14,159,127, 70,254,191,
-159,183,254,205,255,255, 0,135,255,226, 6, 40, 4, 96, 16, 2, 2,231, 0, 0,255,255, 0, 33, 0, 0, 4,236, 5,213, 16, 2,
- 3,168, 0, 0, 0, 2, 0, 58, 0, 0, 4, 69, 5,213, 0, 19, 0, 30, 0, 0, 1, 17, 33, 50, 23, 22, 16, 7, 6, 35, 33, 17,
- 35, 53, 51, 17, 51, 17, 51, 21, 1, 52, 39, 38, 35, 33, 17, 33, 50, 55, 54, 1,121, 1, 15,208,121,116,116,115,214,254, 57,135,
-135,184,175, 1, 89, 62, 67,128,254,249, 1, 7,129, 66, 62, 3,209,254,202, 85, 82,254,176, 82, 82, 3,209,143, 1,117,254,139,
-143,253,123, 94, 42, 46,254,151, 46, 43, 0, 0, 0, 1, 0,211,255,227, 7, 27, 5,240, 0, 43, 0, 0, 1, 17, 35, 17, 51, 17,
- 51, 18, 55, 54, 33, 50, 23, 22, 23, 21, 38, 39, 38, 35, 32, 7, 6, 7, 33, 21, 33, 18, 23, 22, 33, 50, 55, 54, 55, 21, 6, 7,
- 6, 35, 32, 39, 38, 3, 1,157,202,202,210, 30,157,195, 1, 83,134,118,119,104,102,115,116,130,255, 0,136,103, 25, 2,178,253,
- 70, 7,129,137, 0,255,130,116,115,102,106,119,118,132,254,173,195,186, 9, 2,199,253, 57, 5,213,253,156, 1, 8,167,208, 36,
- 35, 71,213, 95, 47, 47,156,119,198,170,254,243,148,157, 47, 47, 95,211, 72, 36, 36,207,198, 1, 79, 0, 0, 0, 0, 1, 0,193,
-255,227, 5,129, 4,123, 0, 35, 0, 0, 1, 50, 23, 21, 38, 35, 34, 7, 6, 7, 33, 21, 33, 22, 23, 22, 51, 50, 55, 21, 6, 35,
- 32, 39, 38, 39, 35, 17, 35, 17, 51, 17, 51, 54, 55, 54, 4, 62,166,157,161,154,230, 92, 34, 12, 1,204,254, 44, 13,158, 85,120,
-157,158,147,188,254,243,148,123, 10,147,184,184,152, 23,122,151, 4,123, 70,172, 86,180, 65, 87,143,244, 94, 51, 86,170, 72,173,
-144,228,253,252, 4, 96,254, 51,202,128,158, 0, 0, 2, 0, 16, 0, 0, 6,248, 5,213, 0, 3, 0, 15, 0, 0, 1, 11, 1, 31,
- 1, 17, 35, 17, 39, 1, 35, 1, 51, 1, 35, 1, 4,106,230,231,231,102,202,222,254,175,225, 3, 2,229, 3, 1,225,254,175, 3,
- 63, 1,192,254, 64,119,172,253,228, 2, 27,114,253,115, 5,213,250, 43, 2,142, 0, 2, 0, 51, 0, 0, 6, 17, 4, 96, 0, 3,
- 0, 15, 0, 0, 1, 11, 1, 31, 1, 17, 35, 17, 39, 1, 35, 1, 51, 1, 35, 1, 3,226,192,192,192, 93,184,179,254,226,195, 2,
-142,195, 2,141,195,254,226, 2,112, 1, 74,254,182, 87,131,254,106, 1,149, 81,254, 26, 4, 96,251,160, 1,231, 0, 2, 0,201,
- 0, 0, 9, 20, 5,213, 0, 3, 0, 23, 0, 0, 1, 11, 1, 23, 5, 33, 17, 35, 17, 51, 17, 33, 1, 51, 1, 35, 1, 7, 17, 35,
- 17, 39, 1, 35, 6,134,230,231,231,253,251,253,248,202,202, 2, 95, 1, 60,229, 3, 1,225,254,175,220,202,222,254,175,225, 3,
- 63, 1,192,254, 64,119, 1,253, 57, 5,213,253,156, 2,100,250, 43, 2,142,114,253,228, 2, 27,114,253,115, 0, 0, 2, 0,193,
- 0, 0, 7,208, 4, 96, 0, 3, 0, 23, 0, 0, 1, 11, 1, 23, 5, 33, 17, 35, 17, 51, 17, 33, 1, 51, 1, 35, 1, 7, 17, 35,
- 17, 39, 1, 35, 5,161,192,192,192,254, 45,254,107,184,184, 1,233, 1, 30,195, 2,141,195,254,226,177,184,179,254,226,195, 2,
-112, 1, 74,254,182, 87, 50,254, 25, 4, 96,254, 23, 1,233,251,160, 1,231, 81,254,106, 1,149, 81,254, 26, 0, 0, 2, 0,115,
- 0, 0, 5,217, 5,213, 0, 23, 0, 26, 0, 0, 1, 17, 35, 17, 6, 7, 6, 17, 35, 16, 55, 54, 55, 1, 33, 1, 22, 23, 22, 17,
- 35, 16, 39, 38, 39, 1, 33, 3,139,202,147,100,130,213,189,120,170,254, 81, 5, 18,254, 80,164,116,188,213,128, 96,248, 1, 62,
-253,131, 2, 89,253,167, 2, 89, 28,126,164,254,229, 1, 98,210,134, 49, 2,234,253, 19, 50,130,210,254,158, 1, 30,161,122,202,
- 2, 40, 0, 0, 0, 2, 0,107, 0, 0, 4,123, 4, 96, 0, 2, 0, 26, 0, 0, 1, 33, 19, 9, 1, 22, 23, 22, 17, 35, 52, 39,
- 38, 39, 17, 35, 17, 6, 7, 6, 21, 35, 16, 55, 54, 55, 1, 3, 69,254, 93,209, 2, 8,254,187,107, 75,137,195, 86, 58, 86,184,
- 83, 56, 86,194,137, 74,108,254,187, 3,182,254,150, 2, 20,253,204, 38, 86,156,254,236,199,116, 79, 26,254, 92, 1,162, 26, 75,
-116,201, 1, 20,156, 85, 39, 2, 52, 0, 0, 0, 0, 2, 0,201, 0, 0, 7,196, 5,213, 0, 30, 0, 33, 0, 0, 9, 1, 33, 1,
- 22, 23, 22, 17, 35, 16, 39, 38, 39, 17, 35, 17, 6, 7, 6, 17, 35, 16, 55, 54, 55, 33, 17, 35, 17, 51, 17, 5, 1, 33, 3,239,
-254,159, 5, 18,254, 80,164,116,188,213,128, 96,153,202,147,100,130,213,189, 85,110,253,181,202,202, 3,132, 1, 62,253,131, 3,
-113, 2,100,253, 19, 50,130,210,254,158, 1, 30,161,122, 32,253,167, 2, 89, 28,126,164,254,229, 1, 98,210, 95, 52,253, 57, 5,
-213,253,156,110, 2, 40, 0, 0, 0, 2, 0,193, 0, 0, 6, 46, 4, 96, 0, 30, 0, 33, 0, 0, 9, 1, 33, 1, 22, 23, 22, 17,
- 35, 52, 39, 38, 39, 17, 35, 17, 6, 7, 6, 21, 35, 16, 55, 54, 55, 33, 17, 35, 17, 51, 17, 1, 33, 19, 3, 55,254,231, 4, 16,
-254,187,107, 75,137,195, 86, 58, 86,184, 83, 56, 86,194,137, 27, 31,254,146,184,184, 3,127,254, 93,209, 2,119, 1,233,253,204,
- 38, 86,156,254,236,199,116, 79, 26,254, 92, 1,162, 26, 75,116,201, 1, 20,156, 31, 24,254, 25, 4, 96,254, 23, 1, 63,254,150,
- 0, 1, 0,115,254, 86, 4,115, 5,240, 0, 75, 0, 0, 5, 50, 23, 22, 23, 21, 38, 39, 38, 35, 32, 39, 38, 53, 52, 55, 54, 51,
- 50, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38, 43, 1, 53, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 6, 7, 53, 54, 55, 54, 51, 50,
- 23, 22, 21, 20, 7, 6, 7, 22, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 2,187, 60, 91, 96, 86,
- 71,103,134, 25,254,205,114,163, 63, 71, 99, 46,132, 73,100, 91, 85, 63, 92, 91,167,174,182,149, 79, 79, 81, 82,152, 83,190,114,
-115,100,101, 89,230,134,134, 71, 71,131,147, 80, 81,115,152,198, 86, 76, 85, 42, 40, 32, 24,117, 94,209, 6, 6, 38,167, 41, 8,
- 10, 67, 96,147,144, 72, 81, 45, 25, 90, 65,121,122, 74, 73,166, 59, 60,112,115, 61, 62, 36, 38,180, 32, 16, 16,104,105,178,124,
- 85, 86, 33, 31, 96, 98,134,208,102,136, 36, 42, 36, 27, 67, 87, 39, 32, 0, 0, 0, 2, 0, 91,254,116, 3,200, 6,102, 0, 73,
- 0, 80, 0, 0, 37, 50, 55, 54, 53, 52, 39, 38, 43, 1, 53, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 7, 53, 62, 1, 51,
- 50, 23, 22, 21, 20, 7, 6, 7, 30, 1, 21, 20, 6, 39, 38, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 51, 50, 23, 22, 23, 21, 38,
- 39, 38, 35, 32, 39, 38, 53, 52, 55, 54, 51, 50, 23, 22, 11, 1, 51, 23, 55, 51, 3, 2, 75, 87, 59, 54, 78, 72,137,148,155,116,
- 67, 68, 70, 69,119, 71, 81, 80, 97, 98,170, 76,196,113,114, 60, 60,112,124,138,238,168, 78, 59, 75, 32, 36, 25, 19, 98,106,140,
- 82, 46, 93, 59, 59, 88,132, 1,254,254, 96,137, 52, 58, 86, 51,103, 62, 62,245,139,180,180,139,245,153, 49, 45, 91, 76, 56, 51,
-152, 44, 45, 70, 64, 46, 46, 13, 13, 29,167, 24, 24, 78, 79,141, 93, 64, 65, 24, 24,146, 96,161,182, 5, 2, 28, 35, 30, 23, 76,
- 99, 25, 27, 5, 11, 26,139, 34, 6, 9, 56, 81,152,141, 59, 68, 36, 21, 4, 85, 1,120,245,245,254,136, 0, 0,255,255, 0,115,
- 0, 0, 5,219, 5,213, 18, 2, 2,198, 0, 0,255,255, 0,112,254, 86, 4,209, 4, 96, 18, 2, 2,230, 0, 0, 0, 3, 0,115,
-255,227, 5,217, 5,240, 0, 9, 0, 20, 0, 35, 0, 0, 1, 5, 39, 5, 18, 23, 22, 32, 55, 54, 17, 38, 39, 38, 35, 34, 7, 6,
- 7, 37, 23, 3, 32, 23, 22, 17, 16, 7, 6, 33, 32, 39, 38, 16, 55, 54, 5, 4,254,104,230,254,194, 8,122,129, 1,184,129,120,
- 25, 95,129,220,218,131, 98, 24, 1,144,230,159, 1, 58,188,188,188,188,254,198,254,197,188,189,189,188, 2,199,110,200, 90,254,
-255,155,164,164,152, 1,174,189,122,164,164,123,188,110,200, 2,217,210,211,254,158,254,159,210,211,210,210, 2,196,211,210, 0,
- 0, 3, 0,113,255,227, 4,117, 4,123, 0, 10, 0, 21, 0, 36, 0, 0, 1, 37, 23, 55, 38, 39, 38, 35, 34, 7, 6, 3, 22, 23,
- 22, 51, 50, 55, 54, 55, 5, 39, 19, 50, 0, 17, 16, 7, 6, 35, 34, 39, 38, 17, 16, 55, 54, 1, 57, 1, 7,150,213, 17, 62, 86,
-147,149, 85, 63, 22, 8, 76, 86,149,147, 86, 76, 9,254,243,150,101,240, 1, 18,137,137,240,241,136,137,137,136, 2,148, 70,120,
- 50,129, 85,117,115, 85,254,237,173,101,115,116,103,170, 70,130, 2, 59,254,200,254,236,254,237,156,157,157,156, 1, 19, 1, 20,
-156,156, 0, 0, 0, 1, 0, 16, 0, 0, 6, 39, 5,240, 0, 20, 0, 0, 33, 35, 1, 51, 9, 1, 18, 55, 54, 51, 50, 22, 23, 21,
- 39, 38, 35, 34, 7, 6, 7, 3, 47,229,253,198,211, 1,217, 1, 56,115, 96, 78,148, 31, 62, 33, 68, 22, 25, 73, 34, 71, 84, 5,
-213,251, 23, 3, 61, 1, 50, 82, 67, 10, 11,187, 10, 4, 34, 67,221, 0, 0, 0, 0, 1, 0, 50, 0, 0, 5, 31, 4,123, 0, 21,
- 1, 56, 64, 5, 23, 8, 4, 19, 22, 16, 75,176, 10, 84, 88,185, 0, 19, 0, 64, 56, 89, 75,176, 20, 84, 75,176, 21, 84, 91, 88,
-185, 0, 19,255,192, 56, 89,212,212,196,196,180, 21, 17, 18, 4, 19, 17, 18, 57, 57, 57, 49, 64, 10, 9,134, 8, 12,185, 4,184,
- 19,188, 18, 0, 47,228,244,228,212,236, 48,182, 21, 17, 20, 17, 19, 19, 18, 7, 5, 16,236, 4,236,183, 3, 2, 1, 0, 17, 16,
- 16, 17, 7, 5, 16,236, 50, 50, 50, 64, 26, 12, 15, 15, 9, 15, 8, 11, 16, 10, 3, 10, 2, 12, 1, 10, 0, 8, 21, 9, 17, 8,
- 18, 8, 20, 7, 19, 64, 16, 25, 16, 25, 0, 31, 22, 26, 17, 29, 18, 28, 21, 29, 20, 29, 19, 64, 12, 43, 1, 41, 16, 41, 0, 40,
- 21, 38, 20, 38, 19, 64, 18, 51, 15, 52, 1, 50, 16, 51, 0, 54, 21, 54, 20, 54, 19, 55, 17, 52, 18, 64, 24, 74, 2, 74, 16, 74,
- 0, 77, 1, 72, 21, 70, 19, 70, 20, 70, 17, 74, 18, 79, 9, 79, 8, 79, 23, 64, 28, 90, 2, 92, 1, 91, 16, 91, 0, 95, 22, 93,
- 21, 94, 20, 95, 19, 94, 18, 90, 17, 90, 15, 95, 23, 95, 9, 95, 8, 64, 26,107, 15,107, 2,105, 1,111, 1,106, 16,106, 0,105,
- 21,102, 20,102, 19,105, 18,111, 9,111, 8,111, 23, 64, 18,124, 2,127, 1,122, 16,122, 21,122, 0,119, 17,124, 18,117, 20,118,
- 19,176, 84, 1, 93, 64, 17, 6, 21, 25, 21, 39, 21, 54, 21, 74, 21, 91, 21,106, 21,127, 21, 8, 0, 93, 1, 54, 55, 54, 51, 50,
- 23, 22, 23, 21, 39, 38, 35, 34, 7, 6, 7, 1, 35, 1, 51, 1, 3, 59, 80,102, 66,129, 26, 26, 27, 28, 58, 19, 21, 54, 29, 65,
- 61,254,228,250,254, 92,195, 1, 94, 3, 36,213, 79, 51, 4, 4, 8,141, 7, 3, 25, 55,162,253, 10, 4, 96,252, 84, 0, 0, 0,
- 0, 3, 0, 16, 0, 0, 6, 39, 7,108, 0, 3, 0, 7, 0, 28, 0, 0, 1, 19, 35, 3, 37, 19, 35, 3, 19, 35, 1, 51, 9, 1,
- 18, 55, 54, 51, 50, 22, 23, 21, 39, 38, 35, 34, 7, 6, 7, 1,253,144,135,174, 1,238,134,137,157,137,229,253,198,211, 1,217,
- 1, 56,115, 96, 78,148, 31, 62, 33, 68, 22, 25, 73, 34, 71, 84, 7,107,254,248, 1, 8, 1,254,247, 1, 9,248,148, 5,213,251,
- 23, 3, 61, 1, 50, 82, 67, 10, 11,187, 10, 4, 34, 67,221, 0,255,255, 0, 50, 0, 0, 5, 31, 6,102, 16, 35, 2, 87, 4,194,
- 0, 0, 18, 2, 3,146, 0, 0,255,255, 0,113,255,227, 5, 37, 5,240, 16, 2, 1,228, 0, 0,255,255, 0,113,255,227, 4,113,
- 5, 47, 16, 2, 1,229, 0, 0, 0, 2, 0,115,255,227, 7, 45, 5,240, 0, 41, 0, 82, 0, 0, 37, 51, 50, 55, 54, 53, 52, 39,
- 38, 43, 1, 6, 7, 6, 7, 6, 34, 39, 38, 39, 38, 39, 35, 34, 7, 6, 21, 20, 23, 22, 59, 1, 54, 55, 54, 55, 54, 50, 23, 22,
- 23, 22, 7, 35, 32, 39, 38, 16, 55, 54, 33, 51, 54, 55, 54, 55, 54, 50, 23, 22, 23, 22, 23, 51, 32, 23, 22, 17, 16, 7, 6, 33,
- 35, 6, 7, 6, 7, 6, 34, 39, 38, 39, 38, 4, 93, 30,235,114,128,128,114,235, 30, 11, 15, 22, 27, 26, 62, 26, 27, 22, 16, 10,
- 46,235,114,130,130,114,235, 46, 10, 16, 22, 27, 26, 62, 26, 27, 22, 16,254, 46,254,161,152,189,189,152, 1, 95, 45, 11, 16, 22,
- 27, 26, 62, 26, 31, 18, 16, 11, 29, 1, 94,152,188,188,152,254,162, 29, 10, 17, 22, 27, 26, 62, 26, 31, 18, 16,194,145,164,242,
-243,164,145, 20, 14, 21, 12, 11, 11, 12, 21, 16, 18,145,164,243,242,164,145, 18, 16, 21, 12, 11, 11, 12, 21, 16,161,170,210, 2,
-116,211,170, 21, 15, 21, 12, 11, 11, 14, 19, 17, 19,170,211,254,198,254,199,210,171, 19, 17, 21, 12, 11, 11, 14, 19, 17, 0, 0,
- 0, 2, 0,113,255,227, 5,161, 4,123, 0, 38, 0, 80, 0, 0, 37, 51, 50, 55, 54, 53, 52, 39, 38, 43, 1, 6, 7, 14, 1, 34,
- 38, 39, 38, 39, 35, 34, 7, 6, 21, 20, 23, 22, 59, 1, 54, 55, 62, 1, 50, 23, 22, 23, 22, 7, 35, 32, 39, 38, 53, 52, 55, 54,
- 33, 51, 54, 55, 54, 55, 54, 50, 23, 22, 23, 22, 23, 51, 32, 23, 22, 21, 20, 7, 6, 33, 35, 6, 7, 6, 7, 6, 34, 39, 38, 39,
- 38, 3,114, 45,161, 72, 86, 86, 63,170, 45, 7, 10, 18, 44, 52, 44, 18, 10, 7, 45,163, 71, 86, 85, 72,163, 45, 7, 10, 18, 44,
- 52, 22, 27, 13, 9,201, 46,254,255,120,137,137,116, 1, 5, 46, 7, 9, 13, 27, 22, 52, 22, 27, 13, 9, 7, 46, 1, 2,119,137,
-137,116,254,251, 46, 7, 9, 13, 27, 22, 52, 22, 27, 13, 9,164, 96,116,183,167,131, 97, 11, 10, 17, 20, 20, 17, 10, 11, 95,116,
-184,188,112, 95, 11, 10, 17, 20, 10, 12, 15, 10,147,137,156,238,233,162,136, 10, 10, 15, 12, 10, 10, 12, 15, 10, 10,136,156,239,
-232,162,137, 10, 10, 15, 12, 10, 10, 12, 15, 10,255,255, 0,115,255,227, 7, 5, 7,183, 16, 35, 3,160, 6, 44, 1, 61, 16, 2,
- 3,125, 0, 0,255,255, 0,135,255,226, 6, 40, 6,100, 16, 35, 3,160, 5,196,255,234, 16, 2, 3,126, 0, 0, 0, 2, 0,115,
-255,227, 7, 5, 7, 51, 0, 11, 0, 64, 0, 0, 1, 7, 35, 39, 35, 7, 35, 39, 35, 7, 35, 39, 3, 22, 51, 50, 55, 54, 61, 1,
- 51, 21, 20, 23, 22, 51, 50, 55, 54, 17, 52, 39, 2, 39, 51, 22, 23, 18, 21, 16, 7, 6, 35, 34, 39, 38, 39, 6, 7, 6, 35, 34,
- 39, 38, 17, 52, 19, 54, 55, 51, 6, 3, 6, 21, 16, 5,126,100, 50, 50,175, 50, 50, 50,175, 50, 50,100,104, 73,125,114, 72, 71,
-199, 70, 70,116,134, 65, 71, 67,135, 84,250, 95, 56,100,123,123,209,146,101,100, 39, 39,100,101,146,211,121,123,100, 59, 93,249,
- 84,135, 67, 7, 51,200,100,100,100,100,200,250, 39,109,105,104,198,241,241,198,104,105,109,119, 1, 39,183,159, 1, 65, 70,130,
-156,254,231,190,254,102,178,177, 94, 94,173,173, 94, 94,177,180, 1,152,201, 1, 14,159,127, 70,254,191,159,183,254,205, 0, 0,
- 0, 2, 0,135,255,226, 6, 40, 5,224, 0, 11, 0, 38, 0, 0, 1, 7, 35, 39, 35, 7, 35, 39, 35, 7, 35, 39, 19, 32, 17, 52,
- 19, 51, 2, 21, 2, 51, 50, 3, 51, 2, 55, 54, 17, 52, 3, 51, 18, 21, 18, 37, 36, 3, 2, 5, 27,100, 50, 50,175, 50, 50, 50,
-175, 50, 50,100,143,254, 97,155,198,143, 1,223,207, 4,170, 4,207,222,143,198,155, 2,254, 95,254,241, 34, 41, 5,224,200,100,
-100,100,100,200,250, 3, 2, 82,235, 1, 64,254,192,240,254, 79, 2, 26,253,227, 3, 2, 1,175,240, 1, 64,254,192,235,253,173,
- 1, 1, 1, 42,254,213, 0, 0, 0, 1, 0,115,254, 86, 5, 39, 5,240, 0, 25, 0, 0, 33, 35, 32, 39, 38, 17, 16, 0, 33, 50,
- 22, 23, 21, 46, 1, 35, 32, 0, 17, 16, 23, 22, 51, 33, 17, 35, 3,250,174,254,165,187,195, 1,134, 1, 83,134,237,104,102,231,
-130,255, 0,254,240,136,152,240, 1,107,201,198,208, 1, 83, 1,104, 1,159, 71, 71,213, 95, 94,254,199,254,216,254,211,130,148,
-253,176, 0, 0, 0, 1, 0,113,254, 86, 3,231, 4,123, 0, 24, 0, 0, 33, 32, 39, 38, 53, 16, 0, 33, 50, 22, 23, 21, 46, 1,
- 35, 34, 6, 21, 20, 22, 59, 1, 17, 35, 17, 2,152,254,251,141,149, 1, 45, 1, 6, 85,162, 76, 78,157, 80,179,198,198,179,245,
-201,150,159,250, 1, 18, 1, 58, 35, 35,172, 43, 43,227,205,185,227,253,195, 1,170, 0, 0, 0, 0, 1, 0, 50, 0, 52, 4,142,
- 5,188, 0, 27, 0, 0, 1, 55, 39, 55, 23, 55, 23, 7, 23, 7, 39, 7, 23, 7, 39, 7, 23, 7, 39, 7, 39, 55, 39, 55, 23, 55,
- 39, 55, 2, 59,105,216,100,216,125,174,125,216,100,216,105,216,100,216,105,216,100,216,125,174,125,216,100,216,105,216,100, 3,
-129,181,125,174,125,216,100,216,125,174,125,181,125,174,125,181,125,174,125,216,100,216,125,174,125,181,125,174, 0, 1,251,218,
- 4,222,255, 66, 6,122, 0, 47, 0, 0, 1, 33, 20, 7, 6, 7, 6, 7, 6, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54,
- 55, 54, 51, 33, 52, 55, 54, 55, 54, 55, 54, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6,254,185,254, 51, 10, 11,
- 19, 20, 25, 24, 56, 24, 25, 20, 19, 11, 10, 10, 11, 19, 20, 25, 24, 28, 1,205, 10, 11, 19, 20, 25, 24, 56, 24, 25, 20, 20, 10,
- 10, 10, 11, 19, 20, 25, 24, 5,103, 27, 25, 27, 18, 19, 11, 10, 10, 11, 19, 18, 27, 25, 27, 28, 25, 27, 18, 19, 11, 10, 27, 25,
- 27, 18, 19, 11, 10, 10, 11, 19, 21, 24, 25, 28, 27, 25, 27, 18, 19, 11, 10, 0, 0, 1,251,247, 5, 41,254,249, 6, 77, 0, 17,
- 0, 0, 1, 54, 51, 50, 23, 22, 23, 51, 38, 39, 38, 35, 34, 7, 6, 7, 21, 54,253, 18, 93, 91, 70, 56, 48, 11,118, 10, 79, 86,
-138,124,120, 72,141,138, 5,149, 47, 42, 36, 77,143, 72, 77, 67, 41, 40,134, 23, 0, 1,252, 34, 4,227,254,248, 6,117, 0, 7,
- 0, 0, 1, 21, 33, 21, 35, 17, 51, 21,254,248,253,192,150,150, 5,247,150,126, 1,146,126, 0, 0, 1,252, 34, 4,227,254,248,
- 6,117, 0, 7, 0, 0, 1, 33, 53, 51, 17, 35, 53, 33,252, 34, 2, 64,150,150,253,192, 5,247,126,254,110,126,255,255,247,214,
-254,144, 3, 70, 7, 96, 16, 43, 2, 49,255,142, 4,216,192, 0, 16, 43, 2, 49,251, 15, 8,177,192, 0, 16, 43, 2, 49, 4, 13,
- 8,177,192, 0, 16, 43, 2, 49,252, 96, 5,249,192, 0, 16, 43, 2, 49, 2,188, 5,249,192, 0, 16, 43, 2, 49,252, 96, 11,105,
-192, 0, 16, 43, 2, 49, 2,188, 11,105,192, 0, 16, 11, 2, 49,255,142, 12,137,192, 0, 0, 0, 0, 8,248, 88,253,195, 2,194,
- 8, 45, 0, 5, 0, 11, 0, 17, 0, 23, 0, 29, 0, 35, 0, 41, 0, 47, 0, 0, 39, 55, 23, 19, 7, 3, 1, 7, 39, 3, 55, 19,
- 1, 39, 55, 37, 23, 5, 1, 23, 7, 5, 39, 37, 1, 53, 51, 5, 21, 45, 1, 21, 35, 37, 53, 5, 1, 35, 53, 19, 51, 11, 1, 51,
- 21, 3, 35, 19,107,150,121,111, 92,169,251,119,150,121,111, 92,169, 5, 31,150,122, 1, 86, 92,254,227,250, 76,149,121,254,169,
- 91, 1, 28, 6, 96,172, 1, 64,254,192,248,194,172,254,192, 1, 64, 4, 95,211,164,129, 82,211,211,164,129, 82, 90,150,121,254,
-169, 92, 1, 29, 5,181,150,121, 1, 87, 92,254,227,254,241,149,122,110, 91,169,251,119,150,121,111, 92,168, 2, 24,212,164,130,
- 82,212,212,164,130, 82, 2,223,172, 1, 64,254,192,248,194,172,254,192, 1, 64, 0, 1, 0,201,254, 86, 5,252, 5,213, 0, 14,
- 0, 0, 33, 35, 17, 1, 33, 17, 51, 17, 1, 33, 17, 51, 21, 1, 35, 5, 51,196,253,106,254,240,196, 2,150, 1, 16,201,254,146,
-134, 4,225,251, 31, 5,213,251, 31, 4,225,250,213,170,254, 86, 0, 2, 0,193,254, 86, 5, 56, 6, 20, 0, 14, 0, 28, 0, 0,
- 33, 35, 17, 1, 35, 17, 51, 17, 1, 51, 17, 51, 21, 1, 35, 1, 51, 30, 1, 51, 50, 54, 55, 51, 14, 1, 35, 34, 38, 4,128,183,
-253,228,236,183, 2, 27,237,184,254,222,123,253,205,118, 10, 98, 86, 86, 96, 14,118, 10,158,146,144,158, 3,131,252,125, 4, 96,
-252,127, 3,129,252, 57,153,254, 86, 7,190, 75, 75, 74, 76,143,144,144, 0, 0, 0, 2, 0, 33, 0, 0, 4,236, 5,213, 0, 18,
- 0, 29, 0, 0, 1, 21, 33, 50, 4, 21, 20, 4, 35, 33, 17, 35, 53, 51, 53, 51, 21, 51, 21, 1, 52, 39, 38, 35, 33, 17, 33, 50,
- 55, 54, 1,147, 1, 78,251, 1, 16,254,240,251,253,232,168,168,202,168, 1,220, 79, 78,163,254,188, 1, 68,163, 78, 79, 4, 81,
-226,218,222,221,218, 4, 81,164,224,224,164,253,102,139, 68, 67,253,221, 68, 67, 0, 2, 0, 38, 0, 0, 4, 69, 5,158, 0, 10,
- 0, 30, 0, 0, 1, 52, 39, 38, 35, 33, 17, 33, 50, 55, 54, 1, 17, 33, 50, 23, 22, 16, 7, 6, 35, 33, 17, 35, 53, 51, 17, 51,
- 17, 51, 21, 3,129, 62, 67,128,254,249, 1, 7,129, 66, 62,253,248, 1, 15,208,121,116,116,115,214,254, 57,155,155,184,157, 1,
- 76, 94, 42, 46,254,151, 46, 43, 2,223,254,202, 85, 82,254,176, 82, 82, 3,209,143, 1, 62,254,194,143, 0, 0, 0, 2, 0,201,
- 0, 0, 4,225, 5,213, 0, 14, 0, 27, 0, 0, 1, 23, 7, 39, 6, 43, 1, 17, 35, 17, 33, 50, 4, 21, 20, 39, 54, 55, 52, 38,
- 43, 1, 17, 51, 50, 55, 39, 55, 4, 85,140,106,146,126,214,254,202, 1,200,251, 1, 1,226, 12, 1,154,141,254,254,114, 71,215,
-106, 3, 35,117,126,123, 83,253,168, 5,213,227,219,146, 45, 44, 57,134,146,253,207, 47,180,126, 0, 2, 0,186,254, 86, 4,164,
- 4,123, 0, 13, 0, 35, 0, 0, 37, 39, 55, 23, 54, 53, 52, 38, 32, 6, 16, 22, 51, 50, 5, 23, 7, 39, 6, 35, 34, 38, 39, 17,
- 35, 17, 51, 21, 62, 1, 51, 50, 0, 16, 7, 6, 3, 42,140,110,138, 79,167,254,220,167,167,146, 70, 1, 27,147,111,149, 87,108,
-123,177, 58,185,185, 58,177,123,204, 0,255,128, 12,152,167, 93,165,115,197,203,231,231,254,106,231, 20,174, 93,179, 46, 97,100,
-253,174, 6, 10,170,100, 97,254,188,253,240,162, 15, 0, 0, 0, 0, 1, 0,201, 0, 0, 4,106, 7, 7, 0, 7, 0, 27, 64, 13,
- 3, 6,149, 1,129, 0, 3, 4, 6, 28, 1, 4, 8, 16,252,252,220,204, 49, 0, 47,244,236,204, 48, 51, 17, 33, 17, 51, 17, 33,
- 17,201, 2,216,201,253, 41, 5,213, 1, 50,254, 36,250,213, 0, 0, 1, 0,186, 0, 0, 3,208, 5,154, 0, 7, 0, 27, 64, 13,
- 3, 6,169, 1,188, 0, 3, 4, 6, 8, 1, 70, 8, 16,252,252,220,204, 49, 0, 47,244,236,204, 48, 51, 17, 33, 17, 51, 17, 33,
- 17,186, 2, 94,184,253,162, 4, 96, 1, 58,254, 28,252, 74, 0, 0, 1, 0, 71, 0, 0, 4,106, 5,213, 0, 13, 0, 0, 19, 51,
- 17, 33, 21, 33, 17, 33, 21, 33, 17, 35, 17, 35, 71,130, 3,161,253, 41, 2, 35,253,221,202,130, 3,232, 1,237,170,254,189,170,
-252,194, 3, 62, 0, 1, 0, 56, 0, 0, 3,208, 4, 96, 0, 13, 0, 0, 51, 17, 35, 53, 51, 17, 33, 21, 33, 17, 33, 21, 33, 17,
-186,130,130, 3, 22,253,162, 1,160,254, 96, 1,244,170, 1,194,170,254,232,170,254, 12, 0, 0, 0, 1, 0,201,254,102, 4,204,
- 5,213, 0, 27, 0, 0, 1, 17, 35, 17, 33, 21, 33, 17, 33, 50, 23, 22, 21, 17, 16, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 52,
- 38, 35, 1,147,202, 3,161,253, 41, 1,161,186,113,109,204,228, 76, 62,134, 56, 55,124,124, 2,199,253, 57, 5,213,170,254, 70,
-119,114,238,254,206,254,242,244,170, 75, 75,194, 1, 34,159,158, 0, 1, 0,186,254, 86, 4, 11, 4, 96, 0, 29, 0, 0, 1, 17,
- 35, 17, 33, 21, 33, 17, 51, 32, 23, 22, 21, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 52, 39, 38, 35, 1,114,184, 3,
- 22,253,162,250, 1, 7, 70, 82, 82, 81,181,193,172,110, 33, 38, 38, 49,134, 1,231,254, 25, 4, 96,170,254,193, 71, 81,229,254,
-242,214, 96, 96,156, 48, 55,147, 1, 8,170, 32, 41, 0, 0, 0, 0, 1, 0, 59,254, 86, 6,194, 5,213, 0, 25, 0, 0, 37, 51,
- 17, 35, 17, 35, 1, 35, 17, 35, 17, 35, 1, 35, 9, 1, 51, 1, 51, 17, 51, 17, 51, 1, 51, 1, 6, 87,107,197, 41,254,155,150,
-202,150,254,155,217, 1,144,254,162,217, 1, 52,149,202,149, 1, 52,217,254,162,170,253,172, 1,170, 2,199,253, 57, 2,199,253,
- 57, 3, 28, 2,185,253,156, 2,100,253,156, 2,100,253, 71, 0, 0, 1, 0, 50,254, 86, 5,193, 4, 96, 0, 25, 0, 0, 37, 51,
- 17, 35, 17, 35, 1, 35, 17, 35, 17, 35, 1, 35, 9, 1, 51, 1, 51, 17, 51, 17, 51, 1, 51, 1, 5, 85,108,184, 33,254,213,114,
-183,114,254,213,197, 1, 84,254,215,196, 1, 2,113,183,113, 1, 2,196,254,215,153,253,189, 1,170, 2, 9,253,247, 2, 9,253,
-247, 2, 85, 2, 11,254, 65, 1,191,254, 65, 1,191,253,245, 0,255,255, 0,156,254,117, 4,115, 5,240, 16, 38, 0,122, 57, 0,
- 16, 6, 3, 52, 0, 0, 0, 0,255,255, 0,133,254,117, 3,200, 4,124, 16, 38, 0,122,206, 0, 16, 6, 3, 84, 0, 0, 0, 0,
- 0, 1, 0,201,254, 86, 5,106, 5,213, 0, 14, 0, 0, 37, 51, 17, 35, 17, 35, 1, 17, 35, 17, 51, 17, 1, 33, 1, 4,193,169,
-197, 69,253, 51,202,202, 2,158, 1, 4,253, 27,170,253,172, 1,170, 2,207,253, 49, 5,213,253,137, 2,119,253, 72, 0, 0, 0,
- 0, 1, 0,191,254, 86, 4,161, 4, 96, 0, 14, 0, 0, 37, 51, 17, 35, 17, 35, 1, 17, 35, 17, 51, 17, 1, 51, 1, 4, 2,159,
-184, 56,253,199,185,185, 2, 37,235,253,174,153,253,189, 1,170, 2, 35,253,221, 4, 96,254, 29, 1,227,253,244, 0, 1, 0,201,
- 0, 0, 5,106, 5,213, 0, 18, 0, 0, 1, 39, 17, 35, 17, 51, 17, 55, 17, 51, 21, 1, 33, 9, 1, 33, 1, 21, 35, 1,224, 77,
-202,202, 77,100, 1,237, 1, 4,253, 27, 3, 26,254,246,253,228,100, 2,130, 77,253, 49, 5,213,253,137, 73, 1, 81,243, 1,208,
-253, 72,252,227, 2, 30,248, 0, 0, 1, 0,191, 0, 0, 4,161, 4, 96, 0, 18, 0, 0, 1, 21, 35, 53, 39, 17, 35, 17, 51, 17,
- 55, 53, 55, 21, 1, 51, 9, 1, 35, 2, 29,101, 64,185,185, 64,101, 1,128,235,253,174, 2,107,240, 1,132,138,235, 62,253,221,
- 4, 96,254, 29, 56,217, 2,130, 1, 82,253,244,253,172, 0, 0, 0, 1, 0, 33, 0, 0, 5,106, 5,213, 0, 18, 0, 0, 19, 35,
- 53, 51, 53, 51, 21, 51, 21, 35, 21, 1, 33, 9, 1, 33, 1, 17, 35,201,168,168,202,168,168, 2,158, 1, 4,253, 27, 3, 26,254,
-246,253, 51,202, 4, 81,164,224,224,164,243, 2,119,253, 72,252,227, 2,207,253, 49, 0, 0, 0, 0, 1, 0, 61, 0, 0, 4,156,
- 6, 20, 0, 18, 0, 0, 1, 17, 1, 51, 9, 1, 35, 1, 17, 35, 17, 35, 53, 51, 53, 51, 21, 33, 21, 1,115, 2, 37,235,253,174,
- 2,107,240,253,199,185,125,125,185, 1, 96, 4,246,253,135, 1,227,253,244,253,172, 2, 35,253,221, 4,246,164,122,122,164, 0,
- 0, 1, 0, 50, 0, 0, 6,150, 5,213, 0, 12, 0, 0, 1, 33, 53, 33, 17, 1, 33, 9, 1, 33, 1, 17, 35, 1,245,254, 61, 2,
-141, 2,158, 1, 4,253, 27, 3, 26,254,246,253, 51,202, 5, 43,170,253,137, 2,119,253, 72,252,227, 2,207,253, 49, 0, 0, 0,
- 0, 1, 0, 42, 0, 0, 5,139, 4, 96, 0, 12, 0, 0, 1, 33, 53, 33, 17, 1, 51, 9, 1, 35, 1, 17, 35, 1,169,254,129, 2,
- 56, 2, 37,235,253,174, 2,107,240,253,199,185, 3,198,154,254, 29, 1,227,253,244,253,172, 2, 35,253,221, 0, 0, 1, 0,201,
-254, 86, 6, 4, 5,213, 0, 15, 0, 0, 33, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 51, 17, 35, 17, 4,113,253, 34,202,202,
- 2,222,202,201,201, 2,199,253, 57, 5,213,253,156, 2,100,250,213,253,172, 1,170, 0, 0, 0, 0, 1, 0,193,254, 86, 5, 64,
- 4, 96, 0, 15, 0, 0, 37, 51, 17, 35, 17, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4,136,184,184,184,253,169,184,184, 2,
- 87,184,153,253,189, 1,170, 2, 4,253,252, 4, 96,254, 51, 1,205, 0, 0, 0, 0, 1, 0,201, 0, 0, 8, 18, 5,213, 0, 13,
- 0, 0, 1, 17, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 33, 21, 5, 59,202,253, 34,202,202, 2,222, 3,161, 5, 43,250,213, 2,
-199,253, 57, 5,213,253,156, 2,100,170, 0, 0, 0, 1, 0,193, 0, 0, 6,230, 4, 96, 0, 13, 0, 0, 1, 17, 35, 17, 33, 17,
- 35, 17, 51, 17, 33, 17, 33, 21, 4,136,184,253,169,184,184, 2, 87, 3, 22, 3,182,252, 74, 2, 4,253,252, 4, 96,254, 51, 1,
-205,170, 0, 0, 0, 1, 0,201,254,102, 8,116, 5,213, 0, 29, 0, 0, 1, 17, 35, 17, 33, 17, 35, 17, 33, 17, 33, 50, 23, 22,
- 21, 17, 16, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 52, 38, 35, 5, 59,202,253, 34,202, 4,114, 1,161,186,113,109,204,228, 76,
- 62,134, 56, 55,124,124, 2,199,253, 57, 5, 43,250,213, 5,213,253,156,119,114,238,254,206,254,242,244,170, 75, 75,194, 1, 34,
-159,158, 0, 0, 0, 1, 0,193,254, 86, 7, 33, 4, 96, 0, 31, 0, 0, 1, 17, 35, 17, 33, 17, 35, 17, 33, 17, 51, 32, 23, 22,
- 21, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 52, 39, 38, 7, 4,136,184,253,169,184, 3,199,250, 1, 7, 70, 82, 82,
- 81,181,193,172,110, 33, 38, 38, 49,134, 1,231,254, 25, 3,198,252, 58, 4, 96,254, 23, 71, 81,229,254,242,214, 96, 96,156, 48,
- 55,147, 1, 8,164, 38, 46, 5, 0, 2, 0,115,255, 45, 6, 39, 5,240, 0, 50, 0, 64, 0, 0, 37, 38, 17, 52, 55, 54, 51, 50,
- 22, 21, 20, 7, 6, 7, 22, 51, 50, 55, 21, 6, 35, 4, 39, 6, 35, 36, 39, 38, 17, 16, 55, 54, 33, 50, 23, 22, 23, 21, 38, 39,
- 38, 35, 32, 7, 6, 17, 16, 23, 22, 51, 50, 55, 54, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 21, 16, 3, 69,100, 96, 95,169,168,
-192,102, 74,120,117,142, 84, 71, 73, 82,254,233,190, 68, 76,254,197,188,189,195,195, 1, 83,117,135,129, 94, 92,125,125,121,255,
- 0,136,136,130,129,220, 15,217, 73, 48, 97, 43, 43, 73, 74, 43, 43,136,185, 1, 19,220,125,125,250,220,214,157,115, 63, 93, 24,
-166, 22, 1,192, 10, 1,209,210, 1, 98, 1,104,207,208, 36, 34, 62,183, 55, 47, 47,156,157,254,216,254,232,166,164, 46, 36, 63,
-127,214,120, 69, 71, 69, 70,121,254,228, 0, 0, 0, 2, 0,113,255, 82, 5, 4, 4,123, 0, 12, 0, 63, 0, 0, 37, 54, 55, 54,
- 53, 52, 38, 35, 34, 7, 6, 21, 20, 7, 38, 53, 52, 55, 54, 51, 22, 23, 22, 21, 20, 7, 6, 7, 22, 51, 50, 55, 21, 6, 35, 34,
- 39, 6, 35, 32, 39, 38, 17, 16, 55, 54, 33, 50, 23, 22, 23, 21, 38, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 51, 3, 87, 33, 22,
- 86, 48, 41, 44, 24, 27,143, 51, 77, 78,131,132, 78, 77,137, 39, 56, 72,101, 90, 62, 70, 82,235,137, 53, 60,254,253,138,137,151,
-150, 1, 6, 85, 81, 81, 76, 67, 90, 73, 85,179, 99, 99, 85, 84,171,173, 21, 29,113,135, 72, 84, 42, 46, 78,179,155,133,194,155,
- 87, 88, 1, 88, 87,165,181,154, 44, 30, 52, 20,158, 18,151, 6,157,156, 1, 19, 1, 18,157,157, 17, 18, 35,152, 25, 22, 19,113,
-114,205,201,116,115, 0, 0, 0,255,255, 0,115,254,117, 5, 39, 5,240, 16, 39, 0,122, 1, 45, 0, 0, 16, 6, 3, 62, 0, 0,
-255,255, 0,113,254,117, 3,231, 4,123, 16, 39, 0,122, 0,143, 0, 0, 16, 6, 3, 94, 0, 0, 0, 1,255,250,254, 86, 4,233,
- 5,213, 0, 11, 0, 0, 37, 51, 17, 35, 17, 35, 17, 33, 53, 33, 21, 33, 2,215,201,201,203,253,238, 4,239,253,238,170,253,172,
- 1,170, 5, 43,170,170, 0, 0, 0, 1, 0, 5,254, 86, 4, 54, 4, 96, 0, 11, 0, 0, 37, 51, 17, 35, 17, 35, 17, 33, 53, 33,
- 21, 33, 2,120,184,184,181,254, 66, 4, 49,254, 66,153,253,189, 1,170, 3,182,170,170, 0, 0,255,255,255,252, 0, 0, 4,231,
- 5,213, 18, 6, 0, 60, 0, 0, 0, 1, 0, 61,254, 86, 4,127, 4, 96, 0, 8, 0, 0, 37, 17, 35, 17, 1, 51, 9, 1, 51, 2,
-197,195,254, 59,195, 1, 94, 1, 94,195, 18,254, 68, 1,188, 4, 78,252,148, 3,108, 0, 0, 0, 0, 1,255,252, 0, 0, 4,231,
- 5,213, 0, 14, 0, 0, 9, 1, 51, 9, 1, 51, 1, 33, 21, 33, 17, 35, 17, 33, 53, 2, 12,253,240,217, 1,158, 1,155,217,253,
-240, 2, 12,253,244,203,253,244, 2,199, 3, 14,253,154, 2,102,252,242,170,253,227, 2, 29,170, 0, 1, 0, 61,254, 86, 4,127,
- 4, 96, 0, 14, 0, 0, 5, 17, 35, 17, 33, 53, 33, 1, 51, 9, 1, 51, 1, 33, 21, 2,197,195,254, 59, 1,197,254, 59,195, 1,
- 94, 1, 94,195,254, 70, 1,186,124,254,210, 1, 46,142, 4, 78,252,148, 3,108,251,178,142, 0, 0, 1, 0, 61,254, 86, 5, 59,
- 5,213, 0, 15, 0, 0, 37, 51, 17, 35, 17, 35, 9, 1, 35, 9, 1, 51, 9, 1, 51, 1, 4,203,112,197, 20,254, 92,254, 89,218,
- 2, 21,254, 47,217, 1,115, 1,117,217,254, 32,170,253,172, 1,170, 2,123,253,133, 3, 29, 2,184,253,213, 2, 43,253, 51, 0,
- 0, 1, 0, 59,254, 86, 4,121, 4, 96, 0, 15, 0, 0, 37, 51, 17, 35, 17, 35, 9, 1, 35, 9, 1, 51, 9, 1, 51, 1, 4, 8,
-113,184, 33,254,186,254,186,217, 1,179,254,114,217, 1, 41, 1, 41,217,254,107,153,253,189, 1,170, 1,184,254, 72, 2, 74, 2,
- 22,254,113, 1,143,253,223, 0, 0, 1,255,250,254, 86, 7, 71, 5,213, 0, 15, 0, 0, 37, 33, 17, 51, 17, 51, 17, 35, 17, 33,
- 17, 33, 53, 33, 21, 33, 2,214, 2,222,202,201,201,251,142,253,238, 4,239,253,238,170, 5, 43,250,213,253,172, 1,170, 5, 43,
-170,170, 0, 0, 0, 1, 0, 5,254, 86, 6, 66, 4, 96, 0, 15, 0, 0, 37, 33, 17, 51, 17, 51, 17, 35, 17, 33, 17, 33, 53, 33,
- 21, 33, 2,120, 2, 90,184,184,184,252, 57,254, 66, 4, 49,254, 66,153, 3,199,252, 57,253,189, 1,170, 3,182,170,170, 0, 0,
- 0, 1, 0,175,254, 86, 5,124, 5,213, 0, 20, 0, 0, 37, 51, 17, 35, 17, 35, 17, 33, 34, 39, 38, 53, 17, 51, 17, 20, 22, 51,
- 33, 17, 51, 4,179,201,201,203,254, 95,186,113,109,201,124,124, 1,120,203,170,253,172, 1,170, 2,199,119,114,238, 1, 55,254,
-217,159,158, 2,100, 0, 0, 0, 0, 1, 0,150,254, 86, 4,184, 4, 96, 0, 21, 0, 0, 37, 51, 17, 35, 17, 35, 17, 33, 34, 39,
- 38, 61, 1, 51, 21, 20, 23, 22, 51, 33, 17, 51, 4, 0,184,184,184,254,169,153,102, 92,184, 52, 53,104, 1, 41,184,153,253,189,
- 1,170, 2, 9, 95, 86,184,234,211,117, 59, 59, 1,190, 0, 0, 0, 1, 0,175, 0, 0, 4,179, 5,213, 0, 24, 0, 0, 1, 35,
- 34, 39, 38, 53, 17, 51, 17, 20, 22, 59, 1, 17, 51, 17, 51, 17, 51, 17, 35, 17, 35, 17, 35, 2,130, 59,186,113,109,201,124,124,
- 18,144,214,203,203,214,144, 2,199,119,114,238, 1, 55,254,217,159,158, 1, 57,254,199, 2,100,250, 43, 2,199,254,207, 0, 0,
- 0, 1, 0,150, 0, 0, 4, 0, 4, 96, 0, 24, 0, 0, 1, 53, 51, 21, 51, 17, 51, 17, 35, 17, 35, 21, 35, 53, 35, 34, 39, 38,
- 61, 1, 51, 21, 20, 23, 22, 1,249,160,175,184,184,175,160, 8,153,102, 92,184, 52, 43, 2,164,194,196, 1,190,251,160, 2, 9,
-196,196, 95, 86,184,234,211,117, 59, 48, 0, 0, 0, 1, 0,175, 0, 0, 4,179, 5,213, 0, 16, 0, 0, 1, 17, 33, 50, 23, 22,
- 21, 17, 35, 17, 52, 38, 35, 33, 17, 35, 17, 1,122, 1,161,186,113,109,201,124,124,254,136,203, 5,213,253,156,119,114,238,254,
-102, 1,138,159,158,253, 57, 5,213, 0, 0, 0,255,255, 0,186, 0, 0, 4,100, 6, 20, 16, 6, 0, 75, 0, 0, 0, 2, 0, 20,
-255,227, 7, 20, 5,240, 0, 33, 0, 41, 0, 0, 1, 18, 55, 54, 33, 32, 23, 22, 19, 33, 16, 0, 33, 50, 54, 55, 21, 6, 4, 35,
- 32, 39, 38, 3, 6, 39, 38, 61, 1, 51, 21, 20, 23, 22, 37, 33, 38, 39, 38, 32, 7, 6, 1,178, 34,150,188, 1, 58, 1, 67,181,
-187, 1,251,112, 1, 18, 1, 18,139,252,112,111,254,249,146,254,162,197,188, 10,170,118,122,170, 75, 66, 1, 64, 3,173, 24, 98,
-130,254, 72,128, 97, 3,109, 1, 7,170,210,210,219,254,132,254,244,254,206, 96, 95,215, 70, 72,205,194, 1, 85, 1,103,107,223,
- 76, 62,157, 68, 57, 2,191,124,164,164,124, 0, 0, 2, 0, 15,255,226, 5,102, 4,123, 0, 34, 0, 41, 0, 0, 1, 34, 39, 38,
- 61, 1, 51, 21, 20, 23, 22, 51, 54, 55, 54, 33, 50, 0, 29, 1, 33, 30, 1, 51, 50, 54, 55, 21, 6, 7, 6, 39, 36, 39, 38, 1,
- 46, 1, 35, 34, 6, 7, 1, 88,144, 89, 96,156, 48, 57, 74, 26,116,146, 0,255,226, 1, 7,252,178, 12,205,183,106,199, 98, 99,
-104,110,101,254,243,156,148, 3, 78, 2,165,136,154,185, 14, 2, 4, 82, 90,172, 70, 49,151, 33, 38,197,130,161,254,221,250, 90,
-190,199, 52, 52,174, 42, 22, 23, 1, 5,151,144, 1,133,151,180,174,158, 0, 0,255,255, 0, 20,254,117, 7, 20, 5,240, 16, 39,
- 2, 52, 2,188, 0, 0, 16, 6, 3,216, 0, 0,255,255, 0, 15,254,117, 5,102, 4,123, 16, 39, 2, 52, 1,231, 0, 0, 16, 6,
- 3,217, 0, 0,255,255, 0,193, 0, 0, 1,121, 6, 20, 16, 6, 0, 79, 0, 0,255,255, 0, 59, 0, 0, 6,173, 5,213, 16, 39,
- 6,139, 5,116, 1,117, 17, 6, 3, 51, 0, 0, 0, 8,180, 34, 0, 8, 35, 7, 43, 49, 0, 0,255,255, 0, 50, 0, 0, 5,173,
- 6, 72, 16, 39, 2, 49, 0,240, 0, 0, 19, 6, 3, 83, 0, 0, 0, 8,180, 34, 0, 8, 35, 7, 43, 49, 0, 0, 0, 1, 0,201,
-254,102, 5, 53, 5,213, 0, 28, 0, 0, 1, 51, 50, 23, 22, 21, 17, 16, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 52, 38, 35, 33,
- 17, 35, 17, 51, 17, 1, 33, 2,169,139,186,113,109,204,228, 76, 62,134, 56, 55,124,124,254,136,202,202, 2,158, 1, 4, 3,113,
-119,114,238,254,206,254,242,244,170, 75, 75,194, 1, 34,159,158,253, 57, 5,213,253,137, 2,119, 0, 1, 0,191,254, 86, 4,136,
- 4, 96, 0, 30, 0, 0, 1, 51, 32, 23, 22, 21, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 52, 39, 38, 35, 33, 17, 35,
- 17, 51, 17, 1, 51, 2, 94, 20, 1, 5, 72, 82, 82, 81,181,193,172,110, 33, 38, 38, 44,139,254,252,185,185, 2, 37,235, 2,119,
- 71, 81,229,254,242,214, 96, 96,156, 48, 55,147, 1, 8,166, 36, 41,254, 25, 4, 96,254, 29, 1,227, 0, 0, 0, 0, 1, 0, 54,
-254, 86, 6, 3, 5,213, 0, 20, 0, 0, 33, 35, 17, 33, 21, 16, 3, 6, 5, 53, 54, 55, 18, 25, 1, 33, 17, 51, 21, 1, 35, 5,
- 58,202,254, 27,132, 98,254,145,212, 67,117, 3,120,201,254,146,134, 5, 43,212,254, 24,254,170,253, 56,167, 46,168, 1, 37, 2,
- 53, 1, 26,250,213,170,254, 86, 0, 2, 0, 46,254, 86, 5, 43, 4, 96, 0, 0, 0, 21, 0, 0, 9, 1, 51, 21, 1, 35, 19, 35,
- 17, 33, 21, 16, 3, 6, 5, 53, 54, 55, 54, 17, 53, 33,253,180, 6,191,184,254,222,123,229,184,254,123,118, 94,254,204,179, 59,
- 98, 2,245, 8, 0,248,153,153,254, 86, 1,170, 3,199,134,254,146,254,252,207, 29,153, 27,127,207, 1,167,212, 0, 1, 0,201,
-254,102, 5, 59, 5,213, 0, 21, 0, 0, 37, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 16, 7, 6, 43, 1, 53, 51, 50, 55, 54,
- 4,113,253, 34,202,202, 2,222,202,103,103,227, 76, 62,134, 56, 55,104, 2, 95,253, 57, 5,213,253,156, 2,100,250,147,254,242,
-122,122,170, 75, 75, 0, 0, 0, 0, 1, 0,193,254, 86, 4,136, 4, 96, 0, 21, 0, 0, 5, 17, 33, 17, 35, 17, 51, 17, 33, 17,
- 51, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 3,208,253,169,184,184, 2, 87,184, 82, 81,181,193,172,110, 33, 38, 20, 2, 24,
-253,252, 4, 96,254, 51, 1,205,251,140,214, 96, 96,156, 48, 55, 0, 1, 0,201,254, 86, 6, 4, 5,213, 0, 16, 0, 0, 33, 35,
- 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 51, 21, 1, 35, 5, 59,202,253, 34,202,202, 2,222,202,201,254,146,134, 2,199,253,
- 57, 5,213,253,156, 2,100,250,213,170,254, 86, 0, 1, 0,193,254, 86, 5, 64, 4, 96, 0, 16, 0, 0, 33, 35, 17, 33, 17, 35,
- 17, 51, 17, 33, 17, 51, 17, 51, 21, 1, 35, 4,136,184,253,169,184,184, 2, 87,184,184,254,222,123, 2, 4,253,252, 4, 96,254,
- 51, 1,205,252, 57,153,254, 86, 0, 1, 0,175,254, 86, 4,179, 5,213, 0, 20, 0, 0, 37, 17, 33, 34, 39, 38, 53, 17, 51, 17,
- 20, 22, 51, 33, 17, 51, 17, 35, 17, 35, 17, 3,232,254, 95,186,113,109,201,124,124, 1,120,203,203,201,170, 2, 29,119,114,238,
- 1, 55,254,217,159,158, 2,100,250, 43,254, 86, 2, 84, 0, 0, 0, 1, 0,150,254, 86, 4, 0, 4, 96, 0, 21, 0, 0, 37, 17,
- 33, 34, 39, 38, 61, 1, 51, 21, 20, 23, 22, 51, 33, 17, 51, 17, 35, 17, 35, 17, 3, 72,254,169,153,102, 92,184, 52, 53,104, 1,
- 41,184,184,184,153, 1,112, 95, 86,184,234,211,117, 59, 59, 1,190,251,160,254, 86, 2, 67, 0, 0, 1, 0,201,254, 86, 6,232,
- 5,213, 0, 17, 0, 0, 37, 51, 21, 1, 35, 1, 35, 17, 1, 35, 1, 17, 35, 17, 33, 9, 1, 33, 6, 31,201,254,146,134, 1, 43,
-197,254,127,203,254,127,196, 1, 45, 1,125, 1,127, 1, 45,170,170,254, 86, 1,170, 5, 31,252, 0, 4, 0,250,225, 5,213,252,
- 8, 3,248, 0, 0, 1, 0,193,254, 86, 6, 0, 4, 96, 0, 17, 0, 0, 37, 51, 21, 1, 35, 19, 35, 17, 1, 35, 1, 17, 35, 17,
- 33, 9, 1, 33, 5, 72,184,254,222,123,229,178,254,203,184,254,202,178, 1, 6, 1, 62, 1, 63, 1, 4,153,153,254, 86, 1,170,
- 3,176,253, 39, 2,217,252, 80, 4, 96,253, 18, 2,238, 0, 0,255,255, 0, 16, 0, 0, 5,104, 7,146, 16, 39, 2, 49, 0,206,
- 1, 74, 17, 6, 3, 45, 0, 0, 0, 18,180, 24, 0, 8, 19, 7, 43, 49, 0, 64, 5,111, 0,111, 8, 2, 93, 48,255,255, 0,123,
-255,227, 4, 45, 6, 31, 16, 38, 2, 49, 79,215, 19, 6, 3, 77, 0, 0, 0, 8,180, 34, 0, 8, 25, 7, 43, 49,255,255, 0, 16,
- 0, 0, 5,104, 5,213, 16, 38, 3, 45, 0, 0, 17, 7, 6,132, 4,188, 1,117, 0, 20,180, 10, 18, 13, 5, 7, 43, 64, 9, 48,
- 18, 63, 13, 0, 18, 15, 13, 4, 93, 49, 0, 0,255,255, 0,123,255,227, 4, 45, 6, 16, 18, 38, 3, 77, 0, 0, 17, 6, 0,106,
- 82, 0, 0, 32,180, 20, 45, 40, 11, 7, 43, 64, 21,127, 40,111, 40, 80, 45, 95, 40, 64, 45, 79, 40, 48, 45, 63, 40, 0, 45, 15,
- 40, 10, 93, 49,255,255, 0, 8, 0, 0, 7, 72, 5,213, 18, 6, 0,136, 0, 0,255,255, 0,123,255,227, 7,111, 4,123, 18, 6,
- 0,168, 0, 0,255,255, 0,201, 0, 0, 4,139, 5,213, 16, 39, 6,139, 4,161, 1,117, 17, 6, 3, 50, 0, 0, 0, 7, 64, 3,
- 64, 0, 1, 93, 49, 0, 0, 0,255,255, 0,113,255,227, 4,127, 6, 72, 16, 39, 2, 49, 0,150, 0, 0, 19, 6, 3, 82, 0, 0,
- 0, 7, 64, 3,112, 0, 1, 93, 49, 0, 0, 0,255,255, 0,117,255,227, 5,217, 5,240, 16, 6, 1, 81, 0, 0,255,255, 0, 0,
- 0, 0, 0, 0, 0, 0, 16, 6, 2, 4, 0, 0,255,255, 0,117,255,227, 5,217, 5,240, 16, 39, 6,132, 5, 32, 1,117, 16, 6,
- 3,243, 0, 0,255,255, 1, 43, 5, 70, 3,125, 6, 16, 16, 38, 0,106, 84, 0, 16, 6, 3,244, 0, 0, 0, 0,255,255, 0, 59,
- 0, 0, 6,173, 5,213, 16, 39, 6,132, 5,116, 1,117, 17, 6, 3, 51, 0, 0, 0, 8,180, 28, 7, 2, 29, 7, 43, 49, 0, 0,
-255,255, 0, 50, 0, 0, 5,173, 6, 16, 16, 39, 0,106, 0,240, 0, 0, 18, 6, 3, 83, 0, 0,255,255, 0,156,255,227, 4,115,
- 5,240, 16, 39, 6,132, 4,135, 1,117, 16, 6, 3, 52, 0, 0,255,255, 0,133,255,227, 3,200, 6, 16, 16, 38, 0,106, 58, 0,
- 16, 6, 3, 84, 0, 0, 0, 0,255,255, 0,160,255,193, 4,248, 5,213, 16, 6, 1,121, 0, 0,255,255, 0, 0, 0, 0, 0, 0,
- 0, 0, 16, 6, 2, 8, 0, 0,255,255, 0,201, 0, 0, 5, 51, 7, 49, 16, 39, 0,113, 0,245, 1, 59, 16, 6, 3, 53, 0, 0,
-255,255, 0,193, 0, 0, 4,128, 5,245, 16, 39, 0,113, 0,137,255,255, 16, 6, 3, 85, 0, 0,255,255, 0,201, 0, 0, 5, 51,
- 5,213, 16, 39, 6,132, 4,245, 1,117, 16, 6, 3, 53, 0, 0,255,255, 0,193, 0, 0, 4,128, 6, 16, 16, 39, 0,106, 0,137,
- 0, 0, 16, 6, 3, 85, 0, 0,255,255, 0,115,255,227, 5,217, 5,240, 16, 38, 3, 59, 0, 0, 17, 7, 6,132, 5, 39, 1,117,
- 0, 20,180, 3, 31, 26, 9, 7, 43, 64, 9, 64, 31, 79, 26, 16, 31, 31, 26, 4, 93, 49, 0, 0,255,255, 0,113,255,227, 4,117,
- 6, 16, 18, 38, 3, 91, 0, 0, 17, 6, 0,106,115, 0, 0, 20,180, 3, 31, 26, 9, 7, 43, 64, 9, 64, 31, 79, 26, 48, 31, 63,
- 26, 4, 93, 49,255,255, 0,115,255,227, 5,217, 5,240, 16, 6, 3, 17, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6,
- 2, 7, 0, 0,255,255, 0,115,255,227, 5,217, 5,240, 18, 38, 4, 3, 0, 0, 16, 7, 6,132, 5, 39, 1,117,255,255, 1, 74,
- 5, 70, 3,156, 6, 16, 18, 38, 4, 4, 0, 0, 16, 6, 0,106,115, 0, 0, 0,255,255, 0,111,255,227, 5, 35, 5,240, 16, 39,
- 6,132, 4,103, 1,117, 16, 6, 3, 74, 0, 0,255,255, 0,113,255,227, 3,231, 6, 16, 16, 38, 0,106,226, 0, 16, 6, 3,106,
- 0, 0, 0, 0,255,255, 0, 35,255,227, 4,189, 7, 49, 16, 39, 0,113, 0,114, 1, 59, 16, 6, 3, 64, 0, 0,255,255, 0, 61,
-254, 86, 4,127, 5,245, 16, 38, 0,113, 94,255, 16, 6, 3, 96, 0, 0, 0, 0,255,255, 0, 35,255,227, 4,189, 5,213, 16, 39,
- 6,132, 4,114, 1,117, 16, 6, 3, 64, 0, 0,255,255, 0, 61,254, 86, 4,127, 6, 16, 16, 38, 0,106, 94, 0, 16, 6, 3, 96,
- 0, 0, 0, 0,255,255, 0, 35,255,227, 4,189, 5,213, 16, 39, 6,141, 4,114, 1,117, 16, 6, 3, 64, 0, 0,255,255, 0, 61,
-254, 86, 4,127, 6,102, 16, 38, 2, 54, 94, 0, 16, 6, 3, 96, 0, 0, 0, 0,255,255, 0,175, 0, 0, 4,179, 5,213, 16, 39,
- 6,132, 4,204, 1,117, 16, 6, 3, 68, 0, 0,255,255, 0,150, 0, 0, 4, 0, 6, 16, 16, 38, 0,106, 94, 0, 16, 6, 3,100,
- 0, 0, 0, 0, 0, 1, 0,201,254, 86, 4,106, 5,213, 0, 9, 0, 0, 37, 51, 17, 35, 17, 35, 17, 33, 21, 33, 1,147,201,201,
-202, 3,161,253, 41,170,253,172, 1,170, 5,213,170, 0, 0, 0, 0, 1, 0,186,254, 86, 3,208, 4, 96, 0, 9, 0, 0, 37, 51,
- 17, 35, 17, 35, 17, 33, 21, 33, 1,114,184,184,184, 3, 22,253,162,153,253,189, 1,170, 4, 96,170, 0, 0, 0,255,255, 0,201,
- 0, 0, 6, 70, 5,213, 18, 38, 3, 72, 0, 0, 16, 7, 6,132, 5,183, 1,117,255,255, 0,193, 0, 0, 5,105, 6, 16, 16, 38,
- 3,104, 0, 0, 16, 7, 0,106, 1, 8, 0, 0, 0, 2, 0,145, 0, 0, 4,180, 5,213, 0, 10, 0, 21, 0, 0, 1, 20, 23, 22,
- 51, 33, 17, 33, 34, 7, 6, 1, 17, 33, 34, 36, 53, 52, 36, 51, 33, 17, 1,102, 79, 78,163, 1, 68,254,188,163, 78, 79, 3, 78,
-253,232,251,254,240, 1, 16,251, 1, 78, 1,183,138, 67, 68, 2, 35, 67, 68, 3,147,250, 43,218,221,222,218, 2,102, 0, 0, 0,
- 0, 2, 0,113, 0, 0, 3,245, 4, 96, 0, 10, 0, 22, 0, 0, 1, 20, 23, 22, 51, 33, 17, 33, 34, 7, 6, 1, 17, 33, 34, 39,
- 38, 16, 55, 54, 51, 33, 17, 1, 53, 62, 66,129, 1, 7,254,249,128, 67, 62, 2,192,254, 57,214,115,116,116,121,208, 1, 15, 1,
- 76, 90, 43, 46, 1,105, 46, 42, 2,182,251,160, 82, 82, 1, 80, 82, 85, 1,197, 0, 2, 0,145,255,227, 7, 67, 5,213, 0, 12,
- 0, 48, 0, 0, 1, 33, 34, 7, 6, 16, 23, 22, 51, 50, 55, 54, 53, 19, 6, 7, 6, 7, 6, 35, 34, 39, 38, 53, 52, 36, 51, 33,
- 17, 51, 3, 20, 23, 22, 51, 50, 55, 54, 53, 17, 51, 17, 20, 7, 6, 35, 34, 39, 38, 3,234,254,188,163, 78, 79, 79, 95,129,180,
- 75, 86, 33, 12, 14, 51,106, 94,110,238,129,136, 1, 16,251, 1, 78,202, 1, 63, 52,112,105, 59, 63,202,110,104,215,217,102, 49,
- 2,201, 67, 68,254,234, 80, 95,109,125,159,254,221, 29, 28, 96, 54, 49,129,137,202,222,218, 2,102,251,236,143, 91, 74, 74, 79,
-155, 2,159,253, 90,224,127,120,120, 57, 0, 0, 0, 2, 0,113,255,227, 6,115, 4, 96, 0, 12, 0, 46, 0, 0, 1, 33, 34, 7,
- 6, 21, 20, 22, 51, 50, 55, 54, 53, 19, 6, 7, 6, 35, 34, 38, 53, 52, 55, 54, 51, 33, 17, 51, 17, 20, 23, 22, 51, 50, 55, 54,
- 53, 17, 51, 17, 20, 7, 6, 35, 34, 39, 38, 3, 61,254,249,128, 67, 62,129,106,148, 92, 45, 49, 67, 93, 94,136,172,203,116,121,
-208, 1, 15,184, 62, 60,106,104, 60, 62,184,100,104,206,211,100, 31, 2, 2, 46, 42, 94, 92,115,109, 52,156,254,246,108, 48, 49,
-193,166,170, 82, 85, 1,197,253, 97,159, 80, 79, 79, 82,157, 1, 65,254,184,236,115,120,120, 37, 0, 1, 0,201,255,227, 7, 3,
- 5,240, 0, 55, 0, 0, 1, 52, 39, 38, 43, 1, 53, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 6, 7, 53, 54, 55, 54, 51, 50, 23,
- 22, 21, 20, 7, 6, 7, 22, 23, 22, 21, 20, 23, 22, 51, 50, 55, 54, 53, 17, 51, 17, 20, 7, 6, 35, 34, 39, 38, 39, 38, 3,170,
- 92, 93,165,174,182,149, 79, 79, 81, 82,152, 83,190,114,115,100,101, 89,230,134,134, 71, 71,131,145, 82, 81, 63, 52,112,105, 59,
- 63,202,110,104,215,217,102, 48, 28, 33, 1,178,132, 74, 75,166, 59, 60,112,115, 61, 62, 36, 38,180, 32, 16, 16,104,105,178,124,
- 85, 86, 33, 31, 98, 98,144,128, 91, 74, 74, 79,155, 2,159,253, 90,224,127,120,120, 56, 80, 97, 0, 1, 0,171,255,227, 6, 70,
- 4,124, 0, 53, 0, 0, 1, 52, 39, 38, 43, 1, 53, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 7, 53, 62, 1, 51, 50, 23,
- 22, 21, 20, 7, 6, 7, 22, 23, 22, 21, 20, 23, 22, 51, 50, 55, 54, 53, 17, 51, 17, 20, 7, 6, 35, 34, 39, 38, 3, 19, 78, 72,
-137,148,155,116, 67, 68, 70, 69,119, 71, 81, 80, 97, 98,170, 76,196,113,114, 60, 60,112,129, 64, 69, 62, 61,105,104, 60, 62,184,
-100,104,206,199,112, 98, 1, 56,102, 56, 51,152, 44, 45, 70, 64, 46, 46, 13, 13, 29,167, 24, 24, 78, 79,141, 93, 64, 65, 24, 25,
- 72, 79, 72, 88, 68, 69, 79, 82,157, 1, 65,254,184,236,115,120,117,101, 0, 0, 0, 1, 0,201,254, 86, 5, 60, 5,240, 0, 41,
- 0, 0, 33, 35, 17, 52, 39, 38, 43, 1, 53, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 6, 7, 53, 54, 55, 54, 51, 50, 23, 22, 21,
- 20, 7, 6, 7, 22, 23, 22, 21, 17, 51, 17, 35, 4,115,201, 92, 93,165,174,182,149, 79, 79, 81, 82,152, 83,190,114,115,100,101,
- 89,230,134,134, 71, 71,131,145, 82, 81,201,201, 1,177,133, 74, 75,166, 59, 60,112,115, 61, 62, 36, 38,180, 32, 16, 16,104,105,
-178,124, 85, 86, 33, 31, 98, 97,146,254,249,253,172, 0, 0, 0, 0, 1, 0,171,254, 86, 4,131, 4,124, 0, 41, 0, 0, 37, 51,
- 17, 35, 17, 35, 17, 52, 39, 38, 43, 1, 53, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 7, 53, 62, 1, 51, 50, 23, 22, 21,
- 20, 7, 6, 7, 22, 23, 22, 21, 3,200,187,184,184, 78, 72,137,148,155,116, 67, 68, 70, 69,119, 71, 81, 80, 97, 98,170, 76,196,
-113,114, 60, 60,112,126, 67, 69,153,253,189, 1,170, 1, 70, 88, 56, 51,152, 44, 45, 70, 64, 46, 46, 13, 13, 29,167, 24, 24, 78,
- 79,141, 93, 64, 65, 24, 24, 73, 75,106, 0, 0, 0, 1, 0, 54,255,227, 7,202, 5,213, 0, 33, 0, 0, 1, 17, 20, 23, 22, 51,
- 50, 55, 54, 53, 17, 51, 17, 20, 7, 6, 35, 34, 39, 38, 53, 17, 33, 21, 16, 3, 6, 5, 53, 54, 55, 18, 25, 1, 5, 58, 63, 52,
-112,105, 59, 63,202,110,104,215,214,105,110,254, 27,132, 98,254,145,212, 67,117, 5,213,251,236,143, 91, 74, 74, 79,155, 2,159,
-253, 90,224,127,120,120,125,226, 3,113,212,254, 24,254,170,253, 56,167, 46,168, 1, 37, 2, 53, 1, 26, 0, 0, 0, 1, 0, 46,
-255,227, 6,238, 4, 96, 0, 32, 0, 0, 1, 17, 20, 22, 51, 50, 55, 54, 53, 17, 51, 17, 20, 7, 6, 35, 34, 39, 38, 53, 17, 33,
- 21, 16, 3, 6, 5, 53, 54, 55, 54, 17, 53, 4,115,122,103,104, 60, 62,184,100,104,206,199,112, 98,254,123,118, 94,254,204,179,
- 59, 98, 4, 96,253, 4, 87,138, 79, 82,157, 1, 65,254,184,236,115,120,117,101,123, 2,143,134,254,146,254,252,207, 29,153, 27,
-127,207, 1,167,212, 0, 0, 0,255,255, 0,201,255,227, 8, 45, 5,213, 16, 2, 1,184, 0, 0, 0, 1, 0,193,255,227, 7, 3,
- 4, 96, 0, 28, 0, 0, 1, 17, 20, 22, 51, 50, 55, 54, 53, 17, 51, 17, 20, 7, 6, 35, 34, 39, 38, 61, 1, 33, 17, 35, 17, 51,
- 17, 33, 17, 4,136,122,103,104, 60, 62,184,100,104,206,199,112, 98,253,169,184,184, 2, 87, 4, 96,253, 4, 87,138, 79, 82,157,
- 1, 65,254,184,236,115,120,117,101,123,204,253,252, 4, 96,254, 51, 1,205, 0,255,255, 0,115,255,227, 5,139, 5,240, 16, 2,
- 0, 42, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 2, 5, 0, 0, 0, 1,255,250,255,227, 5,102, 5,213, 0, 25,
- 0, 0, 1, 17, 20, 23, 22, 51, 50, 55, 54, 53, 17, 51, 17, 20, 7, 6, 35, 34, 39, 38, 53, 17, 33, 53, 33, 21, 2,215, 63, 52,
-111,105, 59, 63,202,110,104,215,214,105,110,253,238, 4,239, 5, 43,252,150,143, 91, 74, 74, 79,155, 2,159,253, 90,224,127,120,
-120,125,226, 3,113,170,170, 0, 0, 1, 0, 5,255,227, 4,246, 4, 96, 0, 25, 0, 0, 1, 17, 20, 23, 22, 51, 50, 55, 54, 53,
- 17, 51, 17, 20, 7, 6, 35, 34, 39, 38, 53, 17, 33, 53, 33, 21, 2,120, 62, 61,105,104, 60, 62,184,100,104,206,199,112, 98,254,
- 66, 4, 49, 3,182,253,174, 86, 70, 69, 79, 82,157, 1, 65,254,184,236,115,120,117,101,123, 2,126,170,170, 0, 0, 1, 0,178,
-255,227, 6,160, 5,213, 0, 33, 0, 0, 37, 6, 7, 6, 33, 32, 0, 25, 1, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 7,
- 51, 50, 23, 22, 29, 1, 35, 53, 52, 39, 38, 35, 4,239, 42, 45,144,254,230,254,229,254,223,203,174,195,194,174,203, 9, 44,148,
- 96, 96,156, 48, 55, 81,248, 82, 46,149, 1, 42, 1, 36, 3,164,252,117,240,211,211,240, 3,139,252, 92, 71, 67, 91, 91,171, 70,
- 49,108, 42, 49, 0, 1, 0,178, 0, 0, 5, 41, 5,242, 0, 32, 0, 0, 33, 35, 17, 16, 0, 33, 32, 23, 22, 17, 21, 35, 53, 52,
- 38, 35, 34, 6, 29, 1, 33, 50, 23, 22, 29, 1, 35, 53, 52, 39, 38, 35, 33, 1,125,203, 1, 33, 1, 27, 1, 23,147,145,203,174,
-194,195,174, 2, 88,149, 95, 96,156, 48, 55, 81,253,168, 3,164, 1, 36, 1, 42,149,146,254,217, 57, 32,240,211,211,240,157, 91,
- 91,171, 70, 49,108, 42, 49, 0, 0, 2, 0,178, 0, 0, 6,196, 5,242, 0, 28, 0, 40, 0, 0, 1, 51, 50, 23, 22, 29, 1, 35,
- 53, 52, 39, 38, 43, 1, 17, 35, 17, 33, 34, 39, 38, 53, 52, 55, 54, 33, 32, 0, 17, 3, 17, 52, 38, 35, 34, 6, 21, 20, 23, 22,
- 51, 5, 41, 71,149, 95, 96,156, 48, 55, 81, 71,203,254, 42,201,159,110,144,152, 1, 19, 1, 27, 1, 33,203,174,195,194,174, 53,
- 90,166, 2,114, 91, 91,171, 70, 49,108, 42, 49,254, 61, 1,195,179,124,224,253,142,149,254,214,254,220,254,206, 1, 25,240,211,
-211,175,149, 73,124, 0, 0, 0, 0, 1, 0,178, 0, 0, 6,196, 5,242, 0, 32, 0, 0, 1, 51, 50, 23, 22, 29, 1, 35, 53, 52,
- 39, 38, 43, 1, 17, 35, 17, 52, 38, 35, 34, 7, 6, 29, 1, 35, 53, 16, 0, 33, 32, 23, 22, 5, 23, 89,149, 95, 96,156, 48, 55,
- 81, 71,203,174,194,195, 87, 87,203, 1, 33, 1, 27, 1, 26,144, 90, 4, 96, 91, 91,171, 70, 49,108, 42, 49,252, 79, 3,139,240,
-211,106,106,239, 32, 57, 1, 36, 1, 42,149, 92, 0, 1, 0,178,255,227, 5, 41, 5,213, 0, 32, 0, 0, 19, 16, 0, 33, 32, 55,
- 54, 61, 1, 35, 21, 20, 6, 35, 34, 38, 53, 17, 33, 50, 23, 22, 29, 1, 51, 53, 52, 39, 38, 35, 33, 17, 35,178, 1, 33, 1, 27,
- 1, 23,147,145,203,174,194,195,174, 2, 88, 81, 55, 48,156, 96, 95,149,253,168,203, 2, 49,254,220,254,214,149,146,227, 57, 32,
-172,211,211,240, 1,103, 49, 42,108, 49, 70,171, 91, 91, 1,117, 0, 2, 0,155,255, 8, 4,186, 5,240, 0, 33, 0, 43, 0, 0,
- 37, 33, 54, 55, 6, 7, 6, 35, 34, 0, 53, 52, 0, 51, 32, 23, 22, 3, 2, 3, 50, 23, 22, 29, 1, 35, 53, 52, 39, 38, 35, 33,
- 17, 51, 18, 32, 54, 53, 52, 38, 32, 6, 21, 20, 1,102, 1, 15,232, 60, 48, 28, 73,124,224,254,251, 1, 16,226, 1, 8,131,155,
- 58, 52,231,149, 95, 96,156, 48, 55, 81,253, 53,203,167, 1, 16,159,159,254,240,159,175,225,208, 39, 17, 46, 1, 15,235,230, 1,
- 22,198,234,254,169,254,207,254,247, 91, 91,171, 70, 49,108, 42, 49, 1, 76, 1, 76,186,162,161,187,187,161,162, 0, 1, 0,178,
-255, 8, 5, 41, 5,213, 0, 29, 0, 0, 37, 33, 50, 23, 22, 29, 1, 35, 53, 52, 39, 38, 35, 33, 17, 51, 17, 33, 50, 23, 22, 29,
- 1, 35, 53, 52, 39, 38, 35, 33, 1,125, 1,133,149, 95, 96,156, 48, 55, 81,253,176,203, 2, 88,149, 95, 96,156, 48, 55, 81,253,
-168,175, 91, 91,171, 70, 49,108, 42, 49, 5,213,254,139, 91, 91,171, 70, 49,108, 42, 49, 0, 0, 0, 1, 0,178,255, 8, 5, 41,
- 5,242, 0, 31, 0, 0, 51, 17, 16, 0, 33, 32, 23, 22, 17, 21, 35, 53, 52, 38, 35, 34, 7, 6, 21, 17, 33, 50, 23, 22, 29, 1,
- 35, 53, 52, 39, 38, 35,178, 1, 33, 1, 27, 1, 19,151,145,203,174,194,197, 85, 87, 2, 88,149, 95, 96,156, 48, 55, 81, 3,164,
- 1, 36, 1, 42,149,142,254,213, 57, 32,240,211,106,108,237,253, 36, 91, 91,171, 70, 49,108, 42, 49, 0, 0, 0, 0, 2, 0,178,
- 0, 0, 6,142, 5,242, 0, 43, 0, 56, 0, 0, 1, 35, 21, 20, 7, 6, 7, 6, 39, 38, 39, 38, 55, 54, 51, 33, 38, 39, 38, 35,
- 34, 6, 21, 17, 35, 17, 16, 0, 33, 32, 23, 22, 23, 51, 50, 23, 22, 29, 1, 35, 53, 52, 39, 38, 33, 35, 34, 21, 20, 23, 22, 51,
- 50, 55, 54, 53, 52, 5, 58, 17,103,105,152,146,109,130, 2, 1, 73, 78, 75, 1, 40, 22, 42, 87,194,195,174,203, 1, 33, 1, 27,
- 1, 19,151, 92, 33, 37,149, 95, 96,156, 48, 53,254,208,187,153, 57, 58, 69, 53, 58, 46, 3,177, 32,223,114,115, 10, 10, 84,102,
-189,147, 76, 81, 82, 50,106,211,240,252,117, 3,164, 1, 36, 1, 42,149, 91,162, 91, 91,171, 70, 49,106, 44, 49,135,105, 45, 45,
- 81, 64,147, 17, 0, 2, 0,178, 0, 0, 6,196, 5,242, 0, 28, 0, 40, 0, 0, 1, 35, 17, 16, 0, 33, 32, 39, 38, 17, 52, 55,
- 54, 51, 33, 17, 51, 17, 51, 50, 23, 22, 29, 1, 35, 53, 52, 39, 38, 41, 1, 34, 7, 6, 21, 20, 22, 51, 50, 54, 53, 5,112, 71,
-254,223,254,229,254,237,152,144,110,159,201, 1,214,203, 71,149, 95, 96,156, 48, 55,254,157,254, 84,166, 90, 53,174,194,195,174,
- 3,177,254,157,254,220,254,214,149,142, 1, 46,224,124,179, 1,146,254,110, 91, 91,171, 70, 49,108, 42, 49,125, 72,149,224,211,
-211,240, 0, 0, 0, 1, 0,178, 0, 0, 5, 41, 5,213, 0, 20, 0, 0, 19, 51, 17, 54, 51, 32, 23, 22, 17, 21, 35, 53, 52, 38,
- 35, 34, 7, 6, 21, 17, 35,178,203,160,209, 1, 19,151,145,203,174,194,193, 89, 87,203, 5,213,254, 59,100,149,142,254,213, 75,
- 50,240,211,106,103,242,253,243, 0, 1, 0,178,255, 8, 4, 86, 5,213, 0, 15, 0, 0, 1, 17, 33, 50, 23, 22, 29, 1, 35, 53,
- 52, 39, 38, 35, 33, 17, 1,125, 1,133,149, 95, 96,156, 48, 55, 81,253,176, 5,213,250,218, 91, 91,171, 70, 49,108, 42, 49, 5,
-213, 0, 0, 0, 0, 1, 0,178,255,227, 5,231, 5,213, 0, 27, 0, 0, 1, 17, 16, 23, 22, 51, 50, 55, 54, 53, 17, 51, 17, 20,
- 7, 6, 35, 34, 39, 38, 25, 1, 33, 17, 35, 17, 51, 17, 3,124, 37, 51,120,129, 42, 37,203,113, 88,210,198,100,113,254,204,203,
-203, 4, 96,253,215,254,229, 62, 87, 87, 75,135, 2,176,253, 55,213,125, 98, 98,112, 1,105, 1,147,252, 79, 5,213,254,139, 0,
- 0, 2, 0, 65,255,227, 7,153, 6,205, 0, 34, 0, 47, 0, 0, 1, 22, 17, 16, 0, 33, 32, 0, 17, 16, 55, 35, 6, 39, 38, 61,
- 1, 51, 21, 20, 23, 22, 51, 33, 50, 23, 22, 29, 1, 35, 53, 52, 39, 38, 35, 37, 34, 7, 6, 17, 16, 0, 32, 0, 17, 16, 39, 38,
- 5,214,201,254,136,254,198,254,197,254,135,195,103,148, 96, 96,156, 48, 55, 81, 4,176,149, 95, 96,156, 48, 55, 81,253,168,225,
-124,130, 1, 3, 1,184, 1, 1,128,121, 5, 38,225,254,164,254,159,254, 91, 1,164, 1, 98, 1, 99,218, 1, 92, 91,171, 70, 49,
-108, 42, 49, 91, 91,171, 70, 49,108, 42, 49, 32,158,164,254,229,254,230,254,184, 1, 72, 1, 26, 1, 22,169,158, 0, 1, 0,178,
- 0, 0, 5, 41, 5,213, 0, 20, 0, 0, 33, 35, 17, 6, 35, 32, 39, 38, 25, 1, 51, 17, 20, 22, 51, 50, 55, 54, 61, 1, 51, 5,
- 41,203,160,209,254,237,152,144,203,174,194,193, 89, 87,203, 1,197,100,149,142, 1, 43, 2, 38,253,243,240,211,105,104,242,152,
- 0, 1, 0,178,255, 8, 5, 41, 5,213, 0, 18, 0, 0, 9, 2, 33, 50, 23, 22, 29, 1, 35, 53, 52, 39, 38, 35, 33, 53, 9, 1,
- 3,117, 1,119,252,201, 2, 32,149, 95, 96,156, 48, 55, 81,252,221, 3, 49,254,107, 5,213,254,174,252, 44, 91, 91,171, 70, 49,
-108, 42, 49,175, 3,192, 1,102, 0, 3, 0,143,255,210, 4,201, 5,240, 0, 38, 0, 44, 0, 54, 0, 0, 37, 6, 35, 34, 39, 38,
- 55, 54, 51, 50, 23, 54, 55, 6, 7, 6, 35, 34, 0, 53, 52, 0, 51, 32, 23, 22, 3, 2, 7, 6, 7, 22, 55, 54, 55, 21, 6, 7,
- 6, 37, 38, 7, 6, 23, 22, 18, 32, 54, 53, 52, 38, 32, 6, 21, 20, 2,174,110, 86,172, 73,103, 2, 5,201,178,148,131,114, 48,
- 28, 73,124,224,254,251, 1, 16,226, 1, 8,131,155, 58, 55,190, 32, 36, 84, 46,129,126,103,152,154,254,206, 93, 42, 86, 31, 24,
-181, 1, 16,159,159,254,240,159, 28, 64, 35, 50,110,245,154,119,239, 39, 17, 46, 1, 15,235,230, 1, 22,198,234,254,169,254,191,
-204, 34, 37, 22, 3, 7,100,192, 89, 1, 3,198, 81, 4, 8, 60, 45, 2, 38,186,162,161,187,187,161,162, 0, 0, 0, 1, 0,178,
-255, 8, 6,196, 5,242, 0, 30, 0, 0, 33, 17, 52, 38, 35, 34, 7, 6, 29, 1, 35, 53, 16, 0, 33, 32, 0, 25, 1, 51, 50, 23,
- 22, 29, 1, 35, 53, 52, 39, 38, 35, 4, 94,174,194,197, 85, 87,203, 1, 33, 1, 27, 1, 26, 1, 33, 71,149, 95, 96,156, 48, 55,
- 81, 3,139,240,211,106,106,239, 32, 57, 1, 36, 1, 42,254,214,254,220,253, 11, 91, 91,171, 70, 49,108, 42, 49, 0, 2, 0, 92,
-255,226, 5,133, 5,213, 0, 13, 0, 43, 0, 0, 1, 17, 20, 22, 51, 50, 55, 54, 61, 1, 52, 39, 38, 35, 33, 35, 53, 51, 53, 52,
- 55, 54, 51, 33, 21, 33, 34, 7, 6, 21, 33, 50, 23, 22, 21, 17, 35, 53, 6, 35, 32, 39, 38, 17, 1,217,174,194,193, 89, 87, 48,
- 55, 81,253, 12,178,178, 96, 95,149, 3, 35,253, 12, 81, 55, 48, 2, 88,149, 95, 96,203,160,209,254,231,146,144, 3,177,254,152,
-240,211,106,103,242,161,108, 42, 49,175, 20,171, 91, 91,175, 49, 42,107, 91, 91,171,253, 1, 70,100,149,148, 1, 37, 0, 0, 0,
- 0, 1, 0,178,255,227, 6,196, 5,213, 0, 29, 0, 0, 1, 17, 16, 0, 33, 32, 0, 25, 1, 51, 17, 20, 22, 51, 50, 54, 53, 17,
- 33, 50, 23, 22, 29, 1, 35, 53, 52, 39, 38, 35, 5, 41,254,223,254,230,254,229,254,223,203,174,195,194,174, 1, 18,149, 95, 96,
-156, 48, 55, 81, 5, 38,253, 11,254,220,254,214, 1, 42, 1, 36, 3,164,252,117,240,211,211,240, 3,139, 91, 91,171, 70, 49,108,
- 42, 49, 0, 0, 0, 1, 0,140,255,227, 5, 83, 5,242, 0, 44, 0, 0, 19, 52, 55, 54, 33, 32, 23, 22, 21, 20, 7, 6, 7, 30,
- 1, 21, 20, 4, 32, 36, 53, 51, 20, 23, 22, 32, 54, 53, 52, 38, 35, 33, 53, 33, 50, 54, 53, 52, 39, 38, 35, 34, 7, 6, 7,173,
-155,144, 1, 23, 1, 20,147,155, 73, 73,129,146,163,254,247,253, 74,254,248,202, 82, 83, 1,232,166,165,245,253,191, 2, 65,230,
-147, 99, 97,181,181, 97, 87, 11, 4,171,143, 96, 88, 88, 96,143,128, 91, 89, 32, 34,198,175,245,232,231,246,162, 78, 77,155,162,
-167,154,159,130,116, 89, 49, 48, 48, 43, 74, 0, 0, 1, 0, 92,255,227, 6,110, 6,205, 0, 30, 0, 0, 1, 17, 20, 22, 51, 50,
- 55, 54, 61, 1, 51, 21, 16, 0, 33, 32, 0, 25, 1, 35, 34, 39, 38, 61, 1, 51, 21, 20, 23, 22, 51, 2,194,174,194,197, 85, 87,
-203,254,223,254,229,254,230,254,223, 71,149, 95, 96,156, 48, 55, 81, 5,213,252,117,240,211,105,107,239, 32, 57,254,220,254,214,
- 1, 42, 1, 36, 2,245, 91, 91,171, 70, 49,108, 42, 49, 0, 0, 0, 1, 0,178,255,225, 5, 41, 6,147, 0, 32, 0, 0, 1, 20,
- 23, 22, 51, 50, 55, 54, 61, 1, 51, 21, 16, 7, 6, 37, 36, 39, 38, 53, 16, 55, 54, 37, 55, 37, 53, 5, 21, 5, 4, 7, 6, 1,
-122, 90, 91,190,195, 87, 87,203,145,159,254,244,254,208,123,144, 61,129, 1,115,150,253, 57, 4, 17,254,164,254,153, 87, 47, 2,
- 7,175,104,105,105,107,239, 32, 57,254,220,149,165, 16, 18,131,155,234, 1, 38,100,224,161, 65,140,190,190,190,156,161,158, 85,
- 0, 1, 0,178, 0, 0, 5, 41, 5,242, 0, 17, 0, 0, 51, 17, 16, 0, 33, 32, 0, 25, 1, 35, 17, 52, 38, 35, 34, 6, 21, 17,
-178, 1, 33, 1, 27, 1, 26, 1, 33,203,174,194,195,174, 3,164, 1, 36, 1, 42,254,214,254,220,252, 92, 3,139,240,211,211,240,
-252,117, 0, 0, 0, 1, 0,178,255, 66, 5, 41, 5,244, 0, 32, 0, 0, 1, 52, 39, 38, 35, 34, 7, 6, 29, 1, 35, 53, 16, 55,
- 54, 5, 4, 23, 22, 21, 16, 7, 6, 5, 7, 5, 21, 37, 53, 37, 36, 55, 54, 4, 97, 90, 91,190,195, 87, 87,203,144,160, 1, 12,
- 1, 48,122,145, 61,129,254,141,150, 2,199,251,239, 1, 92, 1,103, 87, 47, 3,206,175,103,106,106,106,239, 32, 57, 1, 36,149,
-165, 16, 18,131,155,234,254,218,100,224,161, 65,140,190,190,190,156,161,158, 85, 0, 1, 0,178, 0, 0, 5,161, 5,242, 0, 24,
- 0, 0, 1, 17, 35, 17, 6, 7, 6, 29, 1, 35, 53, 16, 55, 54, 33, 32, 23, 22, 25, 1, 35, 17, 52, 39, 38, 3,144,203,136, 75,
-117,203,174,145, 1, 57, 1, 41,159,175,203,117, 66, 5, 71,252,148, 3,108, 19, 80,124,221, 32, 57, 1, 5,180,149,149,163,254,
-234,252, 92, 3,139,204,141, 80, 0, 2, 0,155,255, 8, 4,186, 5,240, 0, 29, 0, 43, 0, 0, 37, 38, 39, 38, 17, 52, 0, 51,
- 32, 23, 22, 3, 2, 3, 50, 23, 22, 29, 1, 35, 53, 52, 39, 38, 35, 33, 17, 51, 21, 33, 55, 54, 55, 54, 39, 38, 39, 38, 32, 6,
- 21, 20, 23, 22, 2,162, 69,240,202, 1, 16,226, 1, 8,131,155, 58, 52,231,149, 95, 96,156, 48, 55, 81,253, 53,203, 1, 20,171,
-101, 15, 63, 28, 25, 55, 79,254,240,159,151,163,220,220,170,142, 1, 4,230, 1, 22,198,234,254,169,254,207,254,247, 91, 91,171,
- 70, 49,108, 42, 49, 1, 76,157,195,194, 44,189,215,190, 64, 94,187,161,170,116,126, 0, 0, 0, 0, 1, 0,178, 0, 0, 6,196,
- 5,242, 0, 31, 0, 0, 1, 51, 50, 23, 22, 29, 1, 35, 53, 52, 39, 38, 43, 1, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17,
- 16, 0, 33, 32, 23, 22, 5, 23, 89,149, 95, 96,156, 48, 55, 81, 71,203,174,194,195,174,203, 1, 33, 1, 27, 1, 26,144, 90, 4,
- 96, 91, 91,171, 70, 49,108, 42, 49,252, 79, 3,139,240,211,211,240,252,117, 3,164, 1, 36, 1, 42,149, 92, 0,255,255, 0,178,
-255,227, 5, 41, 5,213, 18, 6, 0, 56, 0, 0, 0, 1, 0,178,255, 8, 6,196, 5,213, 0, 32, 0, 0, 41, 1, 50, 23, 22, 29,
- 1, 51, 53, 52, 39, 38, 43, 1, 17, 35, 17, 20, 7, 6, 35, 34, 38, 61, 1, 35, 21, 16, 23, 22, 33, 50, 55, 4, 94, 1, 18, 81,
- 55, 48,156, 96, 95,149, 71,203, 87, 89,193,194,174,203,144,152, 1, 19,209,160, 49, 42,108, 49, 70,171, 91, 91, 5, 38,253,243,
-242,104,105,211,240,152,177,254,215,144,149,100,255,255, 0,135,255,227, 4,162, 5,240, 18, 6, 0, 54, 0, 0, 0, 1, 0,178,
- 0, 0, 5, 41, 5,242, 0, 18, 0, 0, 51, 17, 16, 0, 33, 32, 23, 22, 17, 21, 35, 53, 52, 38, 35, 34, 6, 21, 17,178, 1, 33,
- 1, 27, 1, 19,151,145,203,174,194,195,174, 3,164, 1, 36, 1, 42,149,142,254,213, 57, 32,240,211,211,240,252,117, 0, 0, 0,
- 0, 2, 0,140,255,227, 5, 83, 5,242, 0, 43, 0, 57, 0, 0, 1, 30, 1, 21, 20, 4, 32, 36, 53, 51, 20, 23, 22, 32, 54, 53,
- 52, 38, 35, 34, 7, 6, 7, 34, 35, 54, 55, 54, 55, 38, 39, 38, 53, 52, 55, 54, 33, 32, 23, 22, 21, 20, 7, 6, 1, 34, 7, 6,
- 21, 20, 22, 51, 50, 54, 53, 52, 39, 38, 4, 30,146,163,254,247,253, 74,254,248,202, 82, 83, 1,232,166,165,245,226,101, 31, 5,
-102,103, 3, 35, 82,146,129, 72, 74,155,147, 1, 19, 1, 20,147,155, 73, 73,254, 80,180, 97, 99,147,229,230,147, 99, 97, 3, 87,
- 34,198,175,245,232,231,246,162, 78, 77,155,162,167,154, 77, 28, 12, 28, 42, 99, 34, 32, 89, 91,128,143, 96, 88, 88, 94,145,128,
- 91, 89, 1,217, 48, 49, 89,116,130,130,116, 89, 49, 48, 0, 0, 0, 1, 0,178, 0, 0, 6, 12, 5,213, 0, 21, 0, 0, 1, 53,
- 52, 38, 35, 34, 7, 6, 21, 17, 35, 17, 51, 17, 54, 51, 32, 23, 22, 23, 51, 21, 4, 94,174,194,193, 89, 87,203,203,160,209, 1,
- 19,151,117, 24,231, 1,219, 50,240,211,106,103,242,253,243, 5,213,254, 59,100,149,115,226,175,255,255, 0,115, 0, 0, 5,217,
- 5,213, 18, 6, 2,196, 0, 0, 0, 2, 0, 92, 0, 0, 5,227, 5,242, 0, 44, 0, 60, 0, 0, 1, 17, 52, 55, 54, 51, 50, 23,
- 22, 21, 20, 7, 6, 35, 34, 39, 21, 33, 50, 23, 22, 29, 1, 35, 53, 52, 39, 38, 35, 33, 17, 35, 17, 35, 34, 39, 38, 61, 1, 51,
- 21, 20, 23, 22, 51, 1, 6, 7, 6, 21, 20, 23, 22, 23, 22, 55, 54, 53, 52, 39, 38, 1,208,146,141,235,244,132,145,145,132,244,
-246, 73, 1,244,149, 95, 96,156, 48, 55, 81,254, 12,203, 32,149, 95, 96,156, 48, 55, 81, 2, 42,138, 93, 87, 87, 93,138,136, 95,
- 87, 87, 95, 2,114, 2, 8,149,115,112,112,122,144,149,122,112, 83,218, 91, 91,171, 70, 49,108, 42, 49,254, 61, 1,195, 91, 91,
-171, 70, 49,108, 42, 49, 2,220, 1, 65, 62, 84, 93, 61, 66, 1, 1, 68, 61, 91, 86, 62, 67, 0,255,255, 0,115,255,227, 5,217,
- 5,240, 18, 6, 0, 50, 0, 0, 0, 3, 0,135,255,227, 4,162, 5,240, 0, 8, 0, 19, 0, 46, 0, 0, 1, 17, 54, 55, 54, 53,
- 52, 39, 38, 1, 17, 52, 39, 34, 7, 6, 21, 20, 23, 22, 5, 23, 30, 1, 21, 20, 4, 33, 34, 38, 39, 53, 22, 23, 22, 23, 17, 38,
- 39, 38, 53, 52, 55, 54, 51, 50, 21, 2,185,113, 71, 94, 67, 67,254,188, 57, 53, 43, 26, 60, 38, 1, 5, 48,226,215,254,221,254,
-231,106,239,128,123,118, 69, 66,190, 91,101, 75, 91,165,231, 2,148,253,248, 11, 52, 68,126,110, 62, 61, 1, 18, 1,132, 62, 2,
- 64, 37,145, 99, 51, 31, 65, 10, 43,217,182,217,224, 48, 47,208, 69, 35, 20, 10, 2, 44, 44, 87, 96,171,215, 97,114,201, 0, 0,
-255,255, 0,117, 3,239, 1,135, 6, 20, 16, 6, 2, 24, 0, 0,255,255, 0,178, 3,254, 1,215, 5,213, 16, 6, 2, 21, 0, 0,
- 0, 1, 0, 94, 4,241, 3,169, 6,194, 0, 3, 0, 0, 1, 35, 1, 51, 1, 51,213, 2,118,213, 4,241, 1,209, 0, 1, 0,120,
- 4,241, 3,134, 7, 37, 0, 17, 0, 0, 1, 34, 7, 6, 21, 35, 52, 55, 54, 51, 50, 55, 54, 53, 51, 20, 7, 6, 1,255, 91, 82,
- 66,152,104,106,181, 91, 82, 66,152,104,106, 5,205, 84, 68, 68,130,106,108, 84, 68, 68,130,106,108, 0, 0, 0,255,255, 0,158,
- 4,240, 2,125, 6,102, 16, 6, 0, 67,244, 0, 0, 1, 0, 94, 4,229, 3,189, 7, 55, 0, 21, 0, 0, 19, 35, 52, 55, 18, 33,
- 32, 23, 18, 33, 34, 17, 51, 20, 51, 50, 39, 38, 39, 38, 7, 6,252,158, 32,113, 1, 51, 1, 85, 55, 75,254,193,251,152, 97,121,
- 38, 34,205,206, 57, 25, 4,241,211, 83, 1, 32,252,254,170, 1, 8,122,158,140, 2, 1,179, 78, 0, 1, 0, 90, 4,241, 3,178,
- 7, 37, 0, 5, 0, 0, 27, 1, 51, 3, 33, 21, 90,170,170,125, 2,129, 4,241, 2, 52,254, 98,150, 0, 0, 0, 0, 1, 0,186,
-255,230, 7, 29, 4, 98, 0, 38, 0, 94, 64, 17, 0, 18, 20, 30, 27, 8, 29, 80, 18, 8, 20, 80, 10, 8, 8, 70, 39, 16,252,236,
-252,252,252,252, 60, 17, 18, 57, 49, 64, 22, 7, 20, 10, 26, 17, 0, 6, 31, 8, 13, 23,135, 31, 4, 35,140, 29, 27, 18, 8,188,
- 29, 0, 47,244, 60, 60, 16,244, 60,196,236, 50, 17, 18, 23, 57, 48, 64, 19, 48, 40, 80, 40,112, 40,144, 40,160, 40,160, 40,191,
- 40,223, 40,255, 40, 9, 1, 93, 37, 6, 7, 6, 35, 34, 38, 53, 17, 51, 17, 20, 22, 51, 50, 55, 54, 53, 17, 51, 17, 20, 22, 51,
- 50, 54, 53, 17, 51, 17, 35, 53, 6, 7, 6, 35, 34, 39, 38, 3,174, 69, 96, 96,130,175,190,185,114,117,143, 83, 83,185,114,119,
-141,166,185,185, 63, 88, 88,121,122, 86, 85,216,124, 58, 60,246,226, 2,164,253, 98,162,156, 96, 94,164, 2,122,253, 98,162,156,
-192,162, 2,122,251,160,174,104, 48, 50, 62, 62, 0, 1, 0,186,254, 86, 4,100, 4,123, 0, 23, 0, 63, 64, 30, 1, 7, 22, 3,
- 16, 10, 4,135, 16, 19,184, 14,188, 10, 23, 9,169, 10, 0, 8, 9, 22, 78, 11, 15, 7, 8, 13, 70, 24, 16,252,236, 50, 50,244,
- 60,236, 49, 0, 47,252,204, 16,228,244,196,236, 17, 18, 23, 57, 48,180, 96, 25,207, 25, 2, 1, 93, 1, 17, 52, 38, 35, 34, 6,
- 21, 17, 33, 21, 33, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 21, 17, 3,172,124,124,149,172, 2,241,253, 15,185,185, 66,179,117,
-193,198, 1, 44, 1,114,159,158,190,164,254, 54,175,254, 86, 6, 10,174,101,100,239,232,254,136, 0, 2, 0,113,254, 86, 5, 47,
- 4,123, 0, 11, 0, 32, 0, 60, 64, 14, 34, 30, 26, 14, 6, 8, 12, 28, 71, 0, 18, 20, 69, 33, 16,252,236,244, 60,236, 50, 50,
-220,212, 49, 64, 18, 3,185, 14, 17, 9,185, 26, 23,184, 17,140, 30,169, 12,189, 27,188, 33, 0, 16,228,228,236,228,244,196,236,
- 16,198,238, 48, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 35, 17, 14, 1, 35, 34, 2, 17, 16, 0, 51, 50, 22, 23, 53,
- 51, 17, 51, 21, 35, 1, 47,167,146,146,168,168,146,146,167, 3, 43,184, 58,177,124,203,255, 0,255,203,124,177, 58,184,213,213,
- 2, 47,203,231,231,203,203,231,231,251, 92, 2, 82,100, 97, 1, 68, 1, 8, 1, 8, 1, 68, 97,100,170,252, 79,175, 0, 0, 0,
- 0, 1, 0,186,254, 86, 5, 57, 4,123, 0, 23, 0, 61, 64, 13, 25, 22, 3, 8, 0, 21, 78, 9, 13, 8, 12, 70, 24, 16,252,236,
- 50,244, 60,236,220,196, 49, 64, 13, 6,135, 14, 17,184, 12,188, 2,189, 21,169, 11, 0, 0, 47, 60,236,236,228,244,196,236,181,
- 9, 3, 20, 3, 14, 10, 17, 18, 23, 57, 48, 33, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 21,
- 17, 51, 21, 4,100,184,124,124,149,172,185,185, 66,179,117,193,198,213,254, 86, 4, 72,159,158,190,164,253,135, 4, 96,174,101,
-100,239,232,254, 11,175, 0, 0, 0, 1, 0,174,255,227, 4, 88, 6, 20, 0, 26, 0, 63, 64, 30, 7, 15, 0, 3, 20, 3, 11,135,
- 20, 23,140, 18, 17, 5,169, 4,188, 18, 19, 15, 8, 4, 17, 78, 6, 2, 8, 0, 70, 27, 16,252,236, 50,244, 60,236, 50, 49, 0,
- 47,244,252,204, 16,244,196,236, 17, 18, 23, 57, 48,180, 96, 28,207, 28, 2, 1, 93, 19, 17, 51, 17, 33, 21, 33, 17, 20, 23, 22,
- 51, 50, 55, 54, 53, 17, 51, 17, 35, 53, 14, 1, 35, 34, 39, 38,174,184, 2,242,253, 14, 62, 62,124,152, 84, 86,184,184, 67,177,
-117,193,100,100, 1,186, 4, 90,254, 76,170,254, 11,159, 80, 79, 95, 98,161, 1, 59,252,224,172,102, 99,120,120, 0, 2, 0,113,
-254, 86, 5, 47, 4,123, 0, 18, 0, 30, 0, 60, 64, 13, 32, 1, 16, 4, 25, 8, 18, 71, 19, 18, 10, 69, 31, 16,252,236,244,236,
- 50, 50,220,212, 49, 64, 19, 22,185, 4, 7, 28,185, 16, 13,184, 7,140, 31, 1,169, 2,189, 17,188, 31, 0, 16,228,244,236, 16,
-228,244,196,236, 16,198,238, 48, 1, 51, 21, 33, 17, 14, 1, 35, 34, 2, 17, 16, 0, 51, 50, 22, 23, 53, 51, 1, 20, 22, 51, 50,
- 54, 53, 52, 38, 35, 34, 6, 4, 90,213,254,115, 58,177,124,203,255, 0,255,203,124,177, 58,184,252,213,167,146,146,168,168,146,
-146,167,254,248,162, 2, 82,100, 97, 1, 68, 1, 8, 1, 8, 1, 68, 97,100,170,253,207,203,231,231,203,203,231,231, 0, 0, 0,
- 0, 1, 0,174,255, 26, 3,224, 6, 20, 0, 19, 0, 44, 64, 12, 21, 5, 15, 18, 14, 5, 8, 3, 8, 1, 70, 20, 16,252,252, 60,
-220,212,236, 16,196, 49, 64, 10, 7,169, 4,188, 14, 9,169, 2,151, 1, 0, 47,228,236,204,244,236, 48, 41, 1, 17, 51, 17, 33,
- 21, 33, 17, 51, 50, 23, 22, 29, 1, 35, 53, 52, 39, 38, 2, 83,254, 91,184, 2,122,253,134,237,152, 77, 96,156, 48, 49, 6, 20,
-254, 76,170,252,249, 73, 91,171, 70, 49,105, 38, 38, 0, 0, 0, 0, 1, 0,186,254, 86, 4,100, 4,123, 0, 21, 0, 62, 64, 30,
- 1, 7, 20, 3, 14, 21, 4,135, 14, 17,184, 12,188, 21, 9,169, 10,189, 21, 0, 8, 9, 20, 78, 13, 7, 8, 11, 70, 22, 16,252,
-236, 50,244, 60,236, 49, 0, 47,252,236, 16,228,244,196,236, 17, 18, 23, 57, 48,180, 96, 23,207, 23, 2, 1, 93, 33, 17, 52, 38,
- 35, 34, 6, 21, 17, 33, 21, 33, 17, 51, 21, 62, 1, 51, 50, 22, 21, 17, 3,172,124,124,149,172, 2,241,252, 86,185, 66,179,117,
-193,198, 2,158,159,158,190,164,252,140,175, 6, 10,174,101,100,239,232,253, 92, 0, 2, 0,186,254, 86, 5, 54, 4,123, 0, 32,
- 0, 41, 0,117, 64, 12, 43, 19, 1, 18, 18, 71, 7, 11, 8, 9, 70, 42, 16,252,236, 50,244,236,220,196,179, 36, 18, 29, 7, 16,
-220,252,179, 33, 18, 21, 18, 16,212,236,178, 0, 33, 36, 73, 83, 88,179, 29, 9, 36, 7, 16, 60, 16, 60, 89, 49, 64, 15, 38,185,
- 25,140, 42, 4,185, 12, 15,184, 11,188, 9,189, 42, 0, 16,236,228,244,196,236, 16,244,236, 64, 6, 18, 1,169, 21, 33, 38, 16,
-220, 60,252, 60,178, 0, 4, 1, 73, 83, 88,181, 18, 1,169, 21, 33, 38, 16, 60, 60,252, 60, 89, 48, 1, 51, 52, 38, 35, 34, 6,
- 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 0, 17, 51, 21, 35, 6, 7, 6, 7, 6, 39, 38, 53, 52, 55, 54, 5, 35, 34, 23, 22, 51,
- 50, 55, 54, 3, 35,194,167,146,146,167,185,185, 58,177,123,204, 0,255,146,162, 29, 53, 96,172,160, 52,120, 66,100, 1, 66,152,
-159, 5, 5,139, 74, 52, 28, 2, 47,203,231,231,203,252, 39, 6, 10,170,100, 97,254,188,254,248,175,161, 90,161, 1, 2, 43,104,
-124,123, 78,118,175,144,113,113, 60, 0, 0, 0, 0, 2, 0,113,255,227, 5, 47, 6, 20, 0, 12, 0, 31, 0, 52, 64, 13, 33, 30,
- 0, 27, 8, 13, 29, 71, 5, 18, 21, 69, 32, 16,252,236,244, 60,236, 50,220,196, 49, 64, 14, 8,185, 18,140, 32, 31, 0,169, 26,
- 29,188, 28,151, 32, 0, 16,228,244, 60,252, 60, 16,244,236, 48, 1, 33, 34, 7, 6, 21, 20, 22, 51, 50, 55, 54, 53, 19, 17, 16,
- 5, 6, 35, 34, 2, 17, 52, 55, 54, 51, 33, 17, 51, 17, 51, 21, 3,162,254,198,136, 98, 79,167,146,154, 77, 83,184,254,236, 75,
-149,246,255,127,125,249, 1, 60,184,213, 3,182,122, 97,172,203,231,107,115,212, 1,135,254, 67,254,175,154, 43, 1, 68, 1, 8,
-223,171,167, 1,180,254, 76,170, 0, 1, 0,186,254, 86, 4,100, 6, 20, 0, 19, 0, 53, 64, 26, 3, 9, 0, 3, 14, 1, 6,135,
- 14, 17,184, 12,151, 10,189, 1, 2, 8, 0, 78, 13, 9, 8, 11, 70, 20, 16,252,236, 50,244,236, 49, 0, 47,236,236,244,196,236,
- 17, 18, 23, 57, 48,178, 96, 21, 1, 1, 93, 1, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 17, 62, 1, 51, 50, 22, 4,
-100,184,124,124,149,172,185,185, 66,179,117,193,198, 2,164,253, 92, 2,158,159,158,190,164,251,221, 7,190,253,158,101,100,239,
- 0, 1, 0,193,254, 86, 2,215, 4, 96, 0, 5, 0, 32, 64, 7, 7, 1, 5, 8, 3, 70, 6, 16,252,252,212,196, 49, 0, 64, 8,
- 4,188, 6, 0,169, 3,189, 6, 16,244,228, 16,228, 48, 1, 33, 21, 33, 17, 51, 1,121, 1, 94,253,234,184,254,248,162, 6, 10,
- 0, 1, 0,186,254, 86, 7, 28, 6, 20, 0, 40, 0,105, 64, 15, 32, 29, 8, 31, 80, 40, 8, 20, 80, 8, 11, 8, 9, 70, 41, 16,
-252,236, 50,244,252,244,252, 60, 49, 64, 18, 4,135, 12, 16,184, 31, 25,135, 33, 36,140, 29,188, 10,151, 8,189, 31, 0, 47,236,
-228,228,244,196,236, 16,244,196,236,181, 40, 21, 28, 3, 33, 29, 17, 18, 23, 57,181, 20, 0, 7, 3, 12, 32, 17, 18, 23, 57, 48,
- 64, 19, 48, 41, 80, 41,112, 41,144, 41,160, 41,160, 41,191, 41,223, 41,255, 41, 9, 1, 93, 1, 52, 39, 38, 35, 34, 6, 21, 17,
- 35, 17, 51, 17, 54, 55, 54, 51, 50, 23, 22, 29, 1, 20, 23, 22, 51, 50, 54, 53, 17, 51, 17, 35, 53, 14, 1, 35, 34, 39, 38, 53,
- 3,143, 62, 62,124,120,172,185,185, 99, 38, 89,107,193, 99, 99, 62, 56,110,140,173,184,184, 67,177,108,175, 98,100, 2,158,159,
- 79, 79,190,164,251,221, 7,190,253,158,129, 22, 50,119,120,232,227,151, 88, 79,190,164, 2,123,251,160,172,102, 99,120,123,228,
- 0, 2, 0,113,255,226, 4,188, 6, 20, 0, 14, 0, 48, 0, 92, 64, 11, 50, 32, 12, 18, 36, 71, 5, 18, 44, 69, 49, 16,252,236,
-244,236,220,196,180, 18, 18, 27, 23, 44, 16,220,220,236, 49, 64, 17, 1, 32,169, 48, 31,188, 49, 24,169, 23,151, 49, 8,185, 40,
-140, 49, 0, 16,244,236, 16,244,236, 16,244, 60,252, 60, 48,180, 33, 30, 34, 29, 34, 5, 7, 16, 60, 60,181, 0, 17, 33, 15, 17,
- 30, 16,236, 16,236,178, 14, 16, 0, 16, 60, 60, 1, 35, 34, 7, 6, 21, 20, 22, 51, 50, 55, 54, 55, 54, 39, 1, 39, 38, 53, 52,
- 55, 54, 59, 1, 21, 35, 38, 23, 22, 31, 1, 33, 21, 33, 19, 22, 21, 20, 7, 6, 39, 38, 39, 38, 17, 52, 55, 54, 51, 2,195, 91,
-165, 65, 83,167,146,173, 93, 46, 3, 2, 23,254,221, 83, 22, 68, 56, 49,147, 78, 47, 1, 1, 15, 86, 1,144,254,201,174, 33,133,
-135,226,247,127,127,127,113,218, 3,182, 90,115,186,203,231,150, 73, 82, 92, 43, 2, 43,152, 40, 86, 76, 45, 37,175, 1, 41, 36,
- 27,158,170,254,182, 63,137,166,141,143, 1, 1,161,162, 1, 8,235,174,152, 0, 0, 1, 0,174,254, 86, 4, 88, 6, 20, 0, 19,
- 0, 58, 64, 28, 3, 9, 0, 3, 14, 10, 6,135, 14, 17,140, 1,151, 10,188, 12,189, 20, 13, 9, 8, 11, 78, 2, 8, 0, 70, 20,
- 16,252,236,244,236, 50, 49, 0, 16,236,228,228,244,196,236, 17, 18, 23, 57, 48,180, 96, 21,207, 21, 2, 1, 93, 19, 17, 51, 17,
- 20, 22, 51, 50, 54, 53, 17, 51, 17, 35, 17, 14, 1, 35, 34, 38,174,184,124,124,149,173,184,184, 67,177,117,193,200, 1,186, 4,
- 90,251,173,159,159,190,164, 2,123,249,246, 2, 86,102, 99,240,255,255, 0,186, 0, 0, 4,100, 6, 20, 18, 6, 0, 75, 0, 0,
- 0, 2, 0,113,255,227, 4, 90, 6, 20, 0, 11, 0, 52, 0,101, 64, 10, 18, 6, 8, 16, 71, 0, 18, 25, 69, 53, 16,252,236,244,
-252, 60, 64, 13, 40, 18, 39, 39, 42, 37, 37, 18, 42, 30, 18, 51, 16, 16,220,252,212,236, 17, 18, 57, 47,236,178, 12, 16, 28, 17,
- 18, 57, 49, 64, 16, 46,169, 32, 9,185, 28,184, 18, 3,185, 19, 22,140, 39,151, 18, 0, 47,228,244,196,236, 16,244,236,220,236,
-178, 12, 9, 28, 17, 18, 57, 48, 64, 9, 96, 54,128, 54,160, 54,224, 54, 4, 1, 93, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34,
- 6, 1, 22, 23, 22, 25, 1, 35, 53, 14, 1, 35, 34, 2, 17, 16, 0, 51, 50, 53, 38, 43, 1, 34, 39, 38, 53, 52, 55, 51, 6, 21,
- 20, 23, 22, 59, 1, 50, 23, 22, 21, 20, 1, 47,167,146,146,168,168,146,146,167, 1,233,110, 68,144,184, 58,177,124,203,255, 1,
- 0,202, 87, 1, 67,118, 62, 31, 30, 33,184, 37, 8, 17, 26,147, 55, 41, 29, 2, 47,203,231,231,203,203,231,231, 1,107, 29, 80,
-168,254,219,253,213,168,100, 97, 1, 68, 1, 8, 1, 8, 1, 69, 60, 54, 29, 29,112, 71, 53, 80, 48, 14, 7, 15, 44, 33, 75, 55,
- 0, 1, 0,186,254, 86, 5, 57, 4,123, 0, 21, 0, 59, 64, 12, 23, 0, 3, 8, 21, 78, 9, 13, 8, 12, 70, 22, 16,252,236, 50,
-244,236,220,196, 49, 64, 13, 6,135, 14, 17,184, 12,188, 11, 0,169, 2,189, 11, 0, 47,252,236, 16,228,244,196,236,181, 9, 3,
- 20, 3, 14, 10, 17, 18, 23, 57, 48, 1, 21, 33, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 21, 17, 5,
- 57,254,115,124,124,149,172,185,185, 66,179,117,193,198,254,248,162, 4, 72,159,158,190,164,253,135, 4, 96,174,101,100,239,232,
-252, 84, 0, 0, 0, 2, 0,174,255,227, 4, 88, 6, 20, 0, 29, 0, 45, 0, 98, 64, 12, 2, 40, 8, 20, 0, 78, 32, 8, 14, 10,
- 70, 46, 16,252, 60,236,244, 60,236, 50,182, 16, 13, 45, 26, 4, 0, 14, 17, 18, 23, 57,183, 25, 8, 16, 30, 8, 13, 16, 13, 7,
- 16,236, 16,236, 1,176, 13, 47, 49, 64, 18, 37,135, 3, 6,140, 1, 30, 14,169, 25, 15,188, 1, 21,134, 20,151, 1, 0, 47,244,
-236, 16,244, 60,252, 60, 16,244,196,236,181, 33, 10, 40, 3, 15, 3, 17, 18, 23, 57, 48, 1, 17, 35, 53, 14, 1, 35, 34, 39, 38,
- 61, 1, 52, 55, 35, 53, 51, 54, 55, 36, 55, 21, 6, 7, 6, 7, 51, 50, 23, 22, 37, 6, 29, 1, 20, 23, 22, 51, 50, 54, 61, 1,
- 52, 39, 38, 35, 4, 88,184, 67,177,117,195, 98,100,122,122,218,112,152, 1, 27,173,141,221, 62, 66,105,176,130, 79,253,152,138,
- 62, 65,121,149,173, 26, 99, 87, 2, 32,253,224,172,102, 99,120,123,228, 73,233,202,170,128, 96,174, 38,175, 36,132, 37, 56,195,
-118,143,198,229, 74,162, 77, 79,190,164, 59,207, 41,158, 0, 0, 0, 1, 0,174,255,227, 5, 10, 6, 20, 0, 43, 0, 63, 64, 15,
- 45, 23, 17, 18, 28, 37, 9, 8, 36, 78, 2, 8, 0, 70, 44, 16,252,236,244,236, 50,220,236,220,196, 49, 64, 19, 0, 3, 9, 3,
- 38, 1, 23,169, 22,151, 36, 6,135, 38, 41,140, 1,188, 36, 0, 47,228,244,196,236, 16,244,236, 17, 18, 23, 57, 48, 19, 17, 51,
- 17, 20, 22, 51, 50, 54, 53, 17, 52, 39, 38, 47, 1, 38, 55, 54, 55, 54, 59, 1, 21, 35, 34, 7, 6, 21, 20, 31, 1, 22, 23, 22,
- 21, 17, 35, 53, 14, 1, 35, 34, 38,174,184,124,124,149,173, 3, 3, 10, 77, 46, 1, 4, 61, 60,139,236,236, 40, 21, 24, 17, 96,
- 19, 4, 7,184, 67,177,117,193,200, 1,186, 2,166,253, 97,159,159,190,164, 1,151, 19, 22, 32, 23,188,112, 48,129, 46, 45,175,
- 9, 11, 23, 31, 42,243, 47, 23, 40, 20,252,132,172,102, 99,240,255,255,255,219,254, 86, 1,121, 4, 96, 18, 6, 1,249, 0, 0,
- 0, 1, 0, 49,255,227, 5, 90, 6, 20, 0, 35, 0, 71, 64, 15, 37, 14, 11, 8, 12, 78, 3, 8, 22, 27, 33, 0, 18, 27, 36, 16,
-212,252,204, 16,220,236,244,236, 50,196, 49, 64, 23, 10, 4, 21, 3, 15, 12, 33,169, 32,151, 13, 22,169, 3, 12,188, 13, 7,135,
- 15, 18,140, 13, 0, 47,244,196,236, 16,244, 60,236, 16,244,236, 17, 18, 23, 57, 48, 19, 20, 59, 1, 17, 20, 22, 51, 50, 54, 53,
- 17, 51, 17, 35, 53, 14, 1, 35, 34, 38, 53, 17, 35, 34, 39, 38, 55, 54, 55, 54, 59, 1, 21, 35, 34,242,131,243,124,124,149,173,
-184,184, 67,177,117,193,200, 59,149, 94, 83, 3, 3, 87,115,118, 89, 89,131, 4,234,138,253, 97,159,159,190,164, 2,123,251,160,
-172,102, 99,240,231, 1,252, 94, 83,145,131, 66, 87,175, 0, 0, 0, 1, 0,159,254, 86, 3,150, 4,124, 0, 31, 0, 84, 64, 12,
- 33, 69, 16, 18, 5, 29, 2, 18, 11, 22, 70, 32, 16,252, 60,236,212, 60,236,228, 49, 64, 13, 5,169, 6,189, 32, 22,134, 23, 20,
-185, 25,184, 32, 0, 16,244,236,212,236, 16,252,236, 48, 64, 10, 0, 31, 29, 31, 17, 0, 17, 13, 14, 13, 7, 5, 16,236,236, 1,
- 73, 80, 88,177, 31, 29, 16, 60, 89,179, 30, 31, 14, 13, 7, 4, 16, 60, 5, 6, 21, 20, 51, 33, 21, 33, 34, 39, 38, 39, 38, 55,
- 1, 54, 39, 38, 39, 38, 7, 6, 7, 53, 54, 23, 22, 23, 22, 21, 20, 7, 1,134, 14, 47, 1,238,253,195, 87, 58, 37, 2, 2, 38,
- 1,205, 68, 1, 1, 47, 67,141,120,188,188,161,195,132, 81, 69,192, 19, 21, 32,162, 69, 44, 65, 56, 56, 2,173,102, 93, 68, 64,
- 90, 1, 1,120,198,106, 1, 1,170,104,136,154,101, 0, 0, 0,255,255, 0,186, 0, 0, 4,100, 4,123, 18, 6, 0, 81, 0, 0,
- 0, 1, 0, 70,254, 86, 3, 59, 4, 96, 0, 37, 0, 88, 64, 17, 16, 18, 35, 35, 5, 26, 39, 5, 11, 26, 30, 18, 21, 2, 18, 11,
- 38, 16,212,236,220,236,204, 16,220,196, 17, 18, 57, 47,236, 49, 64, 14, 35, 16, 5, 27, 27,169, 26,188, 38, 5,169, 6,189, 38,
- 0, 16,252,236, 16,244,236, 17, 18, 57, 57, 48,182, 37, 17, 0, 17, 13, 14, 13, 7, 4, 16,236,236,182, 19, 17, 18, 17, 32, 33,
- 32, 7, 4, 16,236,236, 5, 6, 21, 20, 51, 33, 21, 33, 34, 39, 38, 53, 52, 55, 1, 54, 55, 54, 47, 1, 38, 53, 52, 55, 54, 59,
- 1, 21, 35, 38, 21, 20, 31, 1, 22, 21, 20, 7, 1, 40, 14, 51, 1,238,253,195, 87, 58, 39, 36, 1, 70, 31, 1, 2, 91,149, 76,
- 22, 50,214,115,101, 96, 54,142,103, 43,182, 17, 33, 32,162, 69, 47, 62, 65, 47, 1,173, 40, 60, 69, 99,163, 83,101, 40, 50,122,
-175, 1, 58, 46, 59,155,112,110,117, 57, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 16, 6, 2, 6, 0, 0, 0, 2, 0,159,
-254, 86, 3,150, 4,123, 0, 27, 0, 41, 0, 99, 64, 14, 43, 69, 40, 18, 5, 25, 2, 18, 11, 34, 18, 17, 69, 42, 16,252,236, 60,
-236,212, 60,236,228, 49, 64, 10, 5,169, 6,189, 42, 30,185, 21,184, 42, 0, 16,244,236, 16,252,236, 48, 64, 11, 26, 27, 27, 17,
- 0, 17, 37, 14, 13, 38, 13, 7, 5, 16, 60, 60,236,236, 4, 16, 60,178, 0, 27, 25, 1, 73, 80, 88,177, 27, 25, 16, 60, 89, 64,
- 9, 37, 17, 36, 17, 14, 38, 13, 15, 14, 7, 8, 16,236,236, 5, 6, 21, 20, 51, 33, 21, 33, 34, 39, 38, 39, 38, 63, 1, 3, 38,
- 53, 52, 55, 54, 51, 50, 23, 22, 21, 20, 7, 3, 38, 35, 34, 7, 6, 21, 20, 23, 27, 1, 54, 39, 38, 1,134, 14, 47, 1,238,253,
-195, 87, 58, 37, 2, 2, 38,145,141, 40, 96, 91,175,212,115, 68, 69,159, 72,100, 59, 54, 59, 33, 88,191, 68, 1, 1,192, 19, 21,
- 32,162, 69, 44, 65, 55, 57,217, 1,228,137, 70,163,109,103,171,101,139,154,101, 1,139, 89, 45, 49,103, 60,120,254,191, 1, 26,
-101, 94, 89, 0, 0, 1, 0,186, 0, 0, 4,116, 4,123, 0, 28, 0,103, 64, 13, 28, 9, 2, 18, 25, 21, 78, 13, 9, 8, 11, 70,
- 29, 16,252,236, 50,244, 60,236, 16,220, 49, 64, 12, 6,135, 14, 17,184, 12,188, 28, 25,169, 26, 10, 0, 47, 60,236, 50,228,244,
-196,236,181, 21, 2, 9, 3, 14, 10, 17, 18, 23, 57, 48,177, 23, 0, 16, 60, 64, 8, 23, 17, 0, 24, 17, 28, 0, 28, 7, 5, 16,
-236, 16,236, 1,178, 0, 23, 21, 73, 80, 88,177, 23, 21, 16, 60, 89,180, 96, 30,207, 30, 2, 1, 93, 1, 54, 55, 54, 39, 38, 35,
- 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 23, 22, 21, 20, 7, 1, 33, 21, 33, 53, 3, 82, 90, 1, 1, 64, 62,124,149,172,
-185,185, 66,179,117,205,127, 65, 71,254,250, 1, 87,253,223, 1,232,110,132, 96, 82, 79,190,164,253,135, 4, 96,174,101,100,185,
- 94,119,176, 85,254,199,175,175,255,255, 0,174,255,227, 4, 88, 4, 96, 18, 6, 0, 88, 0, 0, 0, 1, 0,174,254, 86, 5, 45,
- 6, 20, 0, 21, 0, 61, 64, 12, 23, 13, 15, 9, 8, 11, 78, 2, 8, 0, 70, 22, 16,252,236,244,236, 50,220,196, 49, 64, 21, 3,
- 9, 0, 3, 16, 1, 6,135, 16, 19,140, 10,151, 1,188, 22, 13,169, 15,189, 22, 0, 16,252,236, 16,228,228,244,196,236, 17, 18,
- 23, 57, 48, 19, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 51, 21, 33, 17, 14, 1, 35, 34, 38,174,184,124,124,149,173,184,
-213,254,115, 67,177,117,193,200, 1,186, 2,166,253, 97,159,159,190,164, 4, 47,248,228,162, 2, 86,102, 99,240, 0, 1, 0,174,
-255,227, 7, 28, 4,123, 0, 37, 0,105, 64, 15, 12, 8, 10, 80, 21, 1, 8, 2, 20, 80, 31, 8, 29, 70, 38, 16,252,236,252, 60,
-252, 60,252,236, 49, 64, 17, 15,135, 3, 6,184, 10, 34,135, 22, 25,140, 10, 1, 29,188, 20, 10, 0, 47, 60,244, 60, 16,244,196,
-236, 16,244,196,236,181, 28, 31, 0, 3, 22, 29, 17, 18, 23, 57,181, 9, 12, 19, 3, 3, 10, 17, 18, 23, 57, 48, 64, 19, 48, 39,
- 80, 39,112, 39,144, 39,160, 39,160, 39,191, 39,223, 39,255, 39, 9, 1, 93, 1, 17, 51, 21, 62, 1, 51, 50, 22, 21, 17, 35, 17,
- 52, 38, 35, 34, 7, 6, 21, 17, 35, 53, 14, 1, 35, 34, 38, 53, 17, 51, 17, 20, 22, 51, 50, 55, 54, 3,143,184, 66,179, 89,193,
-198,184,124,124,122, 85, 86,184, 67,177,100,193,200,184,124,124,130, 88, 87, 1,229, 2,123,174,101,100,239,232,253, 92, 2,158,
-159,158, 95, 96,163,253,135,172,102, 99,240,231, 2,166,253, 97,159,159, 95, 92, 0, 1, 0,186,254, 86, 4,100, 4,123, 0, 19,
- 0, 55, 64, 26, 3, 9, 0, 3, 14, 1, 6,135, 14, 17,184, 12,188, 10,189, 1, 2, 8, 0, 78, 13, 9, 8, 11, 70, 20, 16,252,
-236, 50,244,236, 49, 0, 47,236,228,244,196,236, 17, 18, 23, 57, 48,180, 96, 21,207, 21, 2, 1, 93, 1, 17, 35, 17, 52, 38, 35,
- 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 4,100,184,124,124,149,172,185,185, 66,179,117,193,198, 2,164,253, 92, 2,
-158,159,158,190,164,251,221, 6, 10,174,101,100,239, 0, 0, 0,255,255, 0,113,254, 86, 4, 90, 4,123, 18, 6, 0, 74, 0, 0,
- 0, 1, 0,193, 0, 0, 2,215, 4, 96, 0, 5, 0, 29, 64, 7, 7, 1, 5, 8, 3, 70, 6, 16,252,252,212,196, 49, 0, 64, 6,
- 4,188, 3, 1,169, 2, 47,236, 16,228, 48, 37, 33, 21, 33, 17, 51, 1,121, 1, 94,253,234,184,175,175, 4, 96, 0, 1, 0,174,
-254, 86, 7, 28, 6, 20, 0, 37, 0,107, 64, 15, 12, 8, 10, 80, 21, 1, 8, 2, 20, 80, 31, 8, 29, 70, 38, 16,252,236,252, 60,
-252, 60,252,236, 49, 64, 19, 15,135, 3, 6,184, 10, 34,135, 22, 25,140, 10, 29,188, 1,151, 20,189, 10, 0, 47,236,228,244, 16,
-244,196,236, 16,244,196,236,181, 28, 31, 0, 3, 22, 29, 17, 18, 23, 57,181, 9, 12, 19, 3, 3, 10, 17, 18, 23, 57, 48, 64, 19,
- 48, 39, 80, 39,112, 39,144, 39,160, 39,160, 39,191, 39,223, 39,255, 39, 9, 1, 93, 1, 17, 51, 17, 62, 1, 51, 50, 22, 21, 17,
- 35, 17, 52, 38, 35, 34, 7, 6, 21, 17, 35, 17, 14, 1, 35, 34, 38, 53, 17, 51, 17, 20, 22, 51, 50, 55, 54, 3,143,184, 66,179,
- 89,193,198,184,124,124,118, 89, 86,184, 67,177,100,193,200,184,124,124,130, 88, 87, 1,229, 4, 47,253,158,101,100,239,232,253,
- 92, 2,158,159,158, 95, 92,167,251,221, 2, 86,102, 99,240,231, 2,166,253, 97,159,159, 95, 92, 0, 2, 0, 0,254, 86, 4,191,
- 4,123, 0, 24, 0, 36, 0, 85, 64, 16, 38, 69, 11, 19, 25, 18, 11, 71, 31, 22, 4, 18, 8, 23, 2, 1, 47,220, 60,236, 50, 50,
- 50,244,236,196, 16,228, 49, 64, 22, 34,185, 17, 14, 28,185, 5, 8,184, 14,140, 37, 20, 24,169, 18, 2, 22,189, 3,188, 37, 0,
- 16,228,236,220, 60,252, 60, 16,228,244,196,236, 16,196,238,178, 0, 22, 24, 73, 80, 88,177, 22, 24, 16, 60, 89, 48, 21, 53, 51,
- 17, 51, 21, 62, 1, 51, 50, 0, 17, 16, 2, 35, 34, 38, 39, 17, 33, 21, 33, 21, 35, 53, 1, 52, 38, 35, 34, 6, 21, 20, 22, 51,
- 50, 54,213,185, 58,177,123,204, 0,255,255,204,123,177, 58, 2,233,253, 23,185, 3, 43,167,146,146,167,167,146,146,167,250,150,
- 4,196,170,100, 97,254,188,254,248,254,248,254,188, 97,100,254,244,150,176,176, 3, 41,203,231,231,203,203,231,231, 0, 0, 0,
-255,255, 0,113,255,227, 4,117, 4,123, 18, 6, 0, 82, 0, 0, 0, 3, 0,122,254, 86, 4,150, 6, 43, 0, 34, 0, 45, 0, 54,
- 0,117, 64, 17, 56, 51, 18, 28, 32, 22, 46, 8, 0, 35, 10, 42, 18, 5, 14, 69, 55, 16,252, 60,236,220, 60, 60,252, 60, 60,220,
-236,196, 49, 64, 18, 5,134, 4, 38,185, 18,151, 55, 47, 9,135, 4, 32, 0,140, 34,189, 55, 0, 16,236,244, 60,196,236, 50, 16,
-244,236, 16,236,179, 23, 35, 0, 18, 17, 18, 57, 57,178, 14, 35, 18, 17, 18, 57,182, 26, 51, 46, 10, 4, 32, 23, 17, 18, 23, 57,
- 48,180, 23, 35, 24, 24, 44, 7, 4, 16, 60, 60,181, 46, 17, 23, 10, 17, 35, 16,236, 16,236, 5, 38, 39, 38, 39, 53, 22, 23, 22,
- 23, 17, 38, 39, 38, 53, 52, 55, 54, 55, 54, 23, 22, 21, 17, 23, 22, 23, 22, 21, 16, 7, 6, 35, 17, 35, 25, 1, 52, 39, 38, 7,
- 6, 21, 22, 23, 22, 5, 17, 50, 55, 54, 53, 52, 39, 38, 2, 44, 68,100,125,141, 49,211, 75, 99,231,102,101,112, 95,152,123, 53,
- 83, 35,194, 97,108,146,126,162,184, 69, 85, 24, 64, 1, 59, 39, 1, 71, 93, 55, 95, 69, 56, 24, 2, 17, 21, 71,187, 31, 73, 26,
- 1, 2,163, 45, 97, 96,165,147,113, 96, 1, 2, 52, 79,148,254,169, 7, 45, 98,108,235,254,218,105, 90,254,110, 5,141, 1, 33,
-115, 3, 2, 29, 79, 59,115, 58, 36,246,253,129, 43, 73,191,179, 74, 62, 0, 0, 0, 1, 0,174,255,227, 5,182, 6, 20, 0, 21,
- 0, 56, 64, 12, 23, 13, 15, 9, 8, 11, 78, 2, 8, 0, 70, 22, 16,252,236,244,236, 50,220,196, 49, 64, 18, 3, 9, 0, 3, 16,
- 10, 6,135, 16, 19,140, 1,151, 10,188, 13,169, 15, 0, 47,236,228,228,244,196,236, 17, 18, 23, 57, 48, 19, 17, 51, 17, 20, 22,
- 51, 50, 54, 53, 17, 51, 17, 33, 21, 33, 53, 14, 1, 35, 34, 38,174,184,124,124,149,173,184, 1, 94,253,234, 67,177,117,193,200,
- 1,186, 4, 90,251,173,159,159,190,164, 2,123,252, 79,175,172,102, 99,240, 0, 0, 2, 0,240, 0, 0, 1,195, 3, 82, 0, 3,
- 0, 7, 0, 29, 64, 7, 5, 1, 3, 4, 0, 24, 8, 16,252, 60,236, 50, 49, 0, 64, 6, 6,131, 4, 0,131, 2, 47,236, 47,236,
- 48, 55, 51, 21, 35, 17, 51, 21, 35,240,211,211,211,211,254,254, 3, 82,254, 0, 0, 1, 0, 96, 1,164, 3, 33, 2,238, 0, 11,
- 0, 0, 1, 30, 1, 55, 21, 14, 1, 34, 38, 39, 51, 22, 1, 85, 32,222,205, 44,228,255,157, 20,167, 16, 2, 99, 24, 1, 65,162,
- 14, 55,170,159, 87, 0, 0, 0, 0, 1, 0,219, 0, 0, 2, 0, 1,236, 0, 5, 0, 0, 33, 35, 53, 19, 51, 3, 1,174,211,164,
-129, 82,172, 1, 64,254,192, 0,255,255, 0, 16,253, 46, 5,104, 5,213, 16, 39, 2, 70, 0,183, 0, 0, 18, 2, 0, 36, 0, 0,
-255,255, 0,123,253, 46, 4, 45, 4,123, 16, 38, 2, 70,107, 0, 18, 2, 0, 68, 0, 0, 0, 0,255,255, 0,201, 0, 0, 4,236,
- 7, 80, 18, 34, 0, 37, 0, 0, 16, 3, 2, 50, 0,173, 1, 64,255,255, 0,186,255,227, 4,164, 7,133, 16, 39, 2, 79, 3, 22,
- 1,117, 18, 6, 0, 69, 0, 0,255,255, 0,201,254,135, 4,236, 5,213, 18, 34, 0, 37, 0, 0, 16, 3, 2,107, 4,165, 0, 0,
-255,255, 0,186,254,135, 4,164, 6, 20, 18, 34, 0, 69, 0, 0, 16, 3, 2,107, 4,154, 0, 0,255,255, 0,201,254,192, 4,236,
- 5,213, 18, 34, 0, 37, 0, 0, 16, 3, 2, 38, 0,151, 0, 0,255,255, 0,186,254,192, 4,164, 6, 20, 18, 34, 0, 69, 0, 0,
- 16, 3, 2, 38, 0,143, 0, 0,255,255, 0,115,254,117, 5, 39, 7,107, 18, 34, 0,137, 0, 0, 16, 67, 0,118, 0,254, 2,240,
- 64, 0, 44,204,255,255, 0,113,254,117, 3,231, 6,102, 18, 34, 0,169, 0, 0, 16, 2, 0,118, 67, 0, 0, 0,255,255, 0,201,
- 0, 0, 5,176, 7, 80, 18, 34, 0, 39, 0, 0, 16, 3, 2, 50, 0,253, 1, 64,255,255, 0,113,255,227, 4,110, 7,133, 16, 39,
- 2, 79, 5,254, 1,117, 18, 6, 0, 71, 0, 0,255,255, 0,201,254,135, 5,176, 5,213, 16, 35, 2,107, 4,174, 0, 0, 16, 2,
- 0, 39, 0, 0,255,255, 0,113,254,135, 4, 90, 6, 20, 16, 35, 2,107, 4,122, 0, 0, 16, 2, 0, 71, 0, 0,255,255, 0,201,
-254,192, 5,176, 5,213, 18, 34, 0, 39, 0, 0, 16, 3, 2, 38, 0,232, 0, 0,255,255, 0,113,254,192, 4, 90, 6, 20, 18, 34,
- 0, 71, 0, 0, 16, 2, 2, 38, 79, 0, 0, 0,255,255, 0,201,254,119, 5,176, 5,213, 18, 34, 0, 39, 0, 0, 16, 2, 0,122,
- 91, 2, 0, 0,255,255, 0,113,254,117, 4, 90, 6, 20, 18, 34, 0, 71, 0, 0, 16, 2, 0,122,246, 0, 0, 0,255,255, 0,201,
-254, 24, 5,176, 5,213, 16, 39, 2, 31, 0,166,249, 42, 18, 6, 0, 39, 0, 0,255,255, 0,113,254, 24, 4, 90, 6, 20, 16, 39,
- 2, 31, 0, 94,249, 42, 18, 6, 0, 71, 0, 0,255,255, 0,201, 0, 0, 4,139, 5,213, 18, 34, 0, 40, 0, 0, 16, 6, 6,149,
-238, 0, 0, 0,255,255, 0,113,255,227, 4,127, 4,123, 16, 39, 6,149,255,217,255, 4, 16, 6, 0, 72, 0, 0,255,255, 0,201,
- 0, 0, 4,139, 5,213, 18, 34, 0, 40, 0, 0, 16, 6, 6,148,236, 0, 0, 0,255,255, 0,113,255,227, 4,127, 4,123, 16, 38,
- 0, 72, 0, 0, 16, 7, 6,148,255,215,255, 4,255,255, 0,201,253,221, 4,139, 5,213, 18, 34, 0, 40, 0, 0, 16, 3, 2,117,
- 4,177, 0, 0,255,255, 0,113,253,221, 4,127, 4,123, 18, 34, 0, 72, 0, 0, 16, 3, 2,117, 4,176, 0, 0,255,255, 0,201,
-254,118, 4,139, 5,213, 18, 34, 0, 40, 0, 0, 16, 3, 2, 71, 0,179, 0, 0,255,255, 0,113,254,118, 4,127, 4,123, 18, 34,
- 0, 72, 0, 0, 16, 3, 2, 71, 0,155, 0, 0,255,255, 0,201,254,117, 4,139, 7,102, 18, 34, 0, 40, 0, 0, 16, 99, 2, 49,
- 0,218, 1,190, 64, 0, 57,153, 16, 3, 0,122, 0,190, 0, 0,255,255, 0,113,254,117, 4,127, 6, 72, 18, 34, 0, 72, 0, 0,
- 16, 35, 2, 49, 0,135, 0, 0, 16, 2, 0,122, 75, 0, 0, 0,255,255, 0,201, 0, 0, 4, 35, 7, 80, 18, 34, 0, 41, 0, 0,
- 16, 3, 2, 50, 0,118, 1, 64,255,255, 0, 47, 0, 0, 2,248, 7, 80, 18, 34, 0, 73, 0, 0, 16, 3, 2, 50, 0, 12, 1, 64,
-255,255, 0,115,255,227, 5,139, 7, 24, 18, 34, 0, 42, 0, 0, 16, 3, 2, 34, 1, 50, 1, 34,255,255, 0,113,254, 86, 4, 90,
- 5,246, 18, 34, 0, 74, 0, 0, 16, 2, 2, 34, 73, 0, 0, 0,255,255, 0,201, 0, 0, 5, 59, 7, 80, 18, 34, 0, 43, 0, 0,
- 16, 3, 2, 50, 1, 20, 1, 64,255,255, 0,186, 0, 0, 4,100, 7,133, 16, 39, 2, 79, 3, 22, 1,117, 18, 6, 0, 75, 0, 0,
-255,255, 0,201,254,135, 5, 59, 5,213, 16, 35, 2,107, 5, 2, 0, 0, 16, 2, 0, 43, 0, 0,255,255, 0,186,254,135, 4,100,
- 6, 20, 16, 35, 2,107, 4,143, 0, 0, 16, 2, 0, 75, 0, 0,255,255, 0,201, 0, 0, 5, 59, 7, 80, 18, 34, 0, 43, 0, 0,
- 16, 3, 0,106, 1, 8, 1, 64,255,255,255,235, 0, 0, 4,100, 7,133, 16, 39, 2, 80, 3, 22, 1,117, 18, 6, 0, 75, 0, 0,
-255,255, 0, 17,254,116, 5, 59, 5,213, 18, 34, 0, 43, 0, 0, 16, 3, 0,122,254,238,255,255,255,255, 0, 2,254,116, 4,100,
- 6, 20, 18, 34, 0, 75, 0, 0, 16, 3, 0,122,254,223,255,255,255,255, 0,201,254, 57, 5, 59, 5,213, 18, 34, 0, 43, 0, 0,
- 16, 3, 2,118, 5, 10, 0, 0,255,255, 0,186,254, 57, 4,100, 6, 20, 18, 34, 0, 75, 0, 0, 16, 3, 2,118, 4,149, 0, 0,
-255,255, 0, 0,254,118, 2,148, 5,213, 18, 34, 0, 44, 0, 0, 16, 3, 2, 71,255, 74, 0, 0,255,255, 0, 39,254,118, 2, 56,
- 6, 20, 18, 34, 0, 76, 0, 0, 16, 66, 2, 71,150, 0, 51, 51, 64, 0, 0, 0,255,255, 0,201, 0, 0, 1,147, 5,213, 18, 34,
- 0, 44, 0, 0, 16, 7, 6,146,254,116, 0, 0,255,255, 0,193, 0, 0, 1,121, 4, 96, 18, 34, 0,243, 0, 0, 16, 7, 6,146,
-254, 97,254,188,255,255, 0,201, 0, 0, 5,106, 7,107, 18, 34, 0, 46, 0, 0, 16, 67, 0,118, 0,164, 2,240, 64, 0, 44,204,
-255,255, 0,186, 0, 0, 4,156, 6, 20, 16, 39, 6,133, 3, 90, 1,118, 18, 2, 0, 78, 0, 0,255,255, 0,201,254,135, 5,106,
- 5,213, 18, 34, 0, 46, 0, 0, 16, 3, 2,107, 4,220, 0, 0,255,255, 0,186,254,135, 4,156, 6, 20, 18, 34, 0, 78, 0, 0,
- 16, 3, 2,107, 4,145, 0, 0,255,255, 0,201,254,192, 5,106, 5,213, 18, 34, 0, 46, 0, 0, 16, 3, 2, 38, 1, 13, 0, 0,
-255,255, 0,186,254,192, 4,156, 6, 20, 18, 34, 0, 78, 0, 0, 16, 2, 2, 38,118, 0, 0, 0,255,255, 0,201,254,135, 4,106,
- 5,213, 16, 35, 2,107, 4,154, 0, 0, 16, 2, 0, 47, 0, 0,255,255, 0,182,254,135, 1,131, 6, 20, 16, 35, 2,107, 3, 28,
- 0, 0, 16, 2, 0, 79, 0, 0,255,255, 0, 3,254,136, 4,106, 7,107, 16, 39, 2, 76, 3, 42, 1,117, 16, 39, 2,107, 4,153,
- 0, 1, 18, 6, 0, 47, 0, 0,255,255,255,241,254,135, 2, 72, 7, 49, 16, 35, 0,113,255, 28, 1, 59, 16, 2, 4,179, 0, 0,
-255,255, 0,201,254,192, 4,106, 5,213, 18, 34, 0, 47, 0, 0, 16, 3, 2, 38, 0,142, 0, 0,255,255, 0, 39,254,192, 2, 7,
- 6, 20, 18, 34, 0, 79, 0, 0, 16, 67, 2, 38,255,125, 0, 0, 51, 51, 64, 0,255,255, 0,201,254, 23, 4,106, 5,213, 16, 39,
- 2, 31, 0,151,249, 41, 18, 6, 0, 47, 0, 0,255,255,255,222,254, 23, 2, 92, 6, 20, 16, 39, 2, 31,255, 29,249, 41, 18, 6,
- 0, 79, 0, 0,255,255, 0,201, 0, 0, 6, 31, 7,107, 18, 34, 0, 48, 0, 0, 16, 67, 0,118, 1, 66, 2,240, 64, 0, 44,204,
-255,255, 0,186, 0, 0, 7, 29, 6,102, 18, 34, 0, 80, 0, 0, 16, 3, 0,118, 1,148, 0, 0,255,255, 0,201, 0, 0, 6, 31,
- 7, 80, 18, 34, 0, 48, 0, 0, 16, 3, 2, 50, 1,119, 1, 64,255,255, 0,186, 0, 0, 7, 29, 6, 16, 16, 39, 2, 50, 2, 70,
- 0, 0, 18, 6, 0, 80, 0, 0,255,255, 0,201,254,135, 6, 31, 5,213, 16, 35, 2,107, 5,116, 0, 0, 16, 2, 0, 48, 0, 0,
-255,255, 0,186,254,135, 7, 29, 4,123, 16, 35, 2,107, 5,230, 0, 0, 16, 2, 0, 80, 0, 0,255,255, 0,201, 0, 0, 5, 51,
- 5,213, 16, 39, 6,140, 4,254, 1, 92, 18, 6, 0, 49, 0, 0,255,255, 0,186, 0, 0, 4,100, 5,193, 16, 39, 2, 50, 0,143,
-255,177, 18, 6, 0, 81, 0, 0,255,255, 0,201,254,135, 5, 51, 5,213, 16, 35, 2,107, 4,254, 0, 0, 16, 2, 0, 49, 0, 0,
-255,255, 0,186,254,135, 4,100, 4,123, 16, 35, 2,107, 4,143, 0, 0, 16, 2, 0, 81, 0, 0,255,255, 0,201,254,192, 5, 51,
- 5,213, 18, 34, 0, 49, 0, 0, 16, 3, 2, 38, 0,247, 0, 0,255,255, 0,186,254,192, 4,100, 4,123, 18, 34, 0, 81, 0, 0,
- 16, 3, 2, 38, 0,140, 0, 0,255,255, 0,201,254, 21, 5, 51, 5,213, 16, 39, 2, 31, 0,254,249, 39, 18, 6, 0, 49, 0, 0,
-255,255, 0,186,254, 21, 4,100, 4,123, 16, 39, 2, 31, 0,149,249, 39, 18, 6, 0, 81, 0, 0,255,255, 0,115,255,227, 5,217,
- 5,240, 18, 34, 0, 50, 0, 0, 16, 6, 6,154,102, 0, 0, 0,255,255, 0,113,255,227, 4,117, 4,123, 18, 34, 0, 82, 0, 0,
- 16, 7, 6,154,255,178,254,178,255,255, 0,115,255,227, 5,217, 5,240, 18, 34, 0, 50, 0, 0, 16, 6, 6,152,108, 0, 0, 0,
-255,255, 0,113,255,227, 4,117, 7, 15, 18, 34, 0, 82, 0, 0, 16, 39, 0,106, 0,111, 0,255, 16, 7, 6,134, 4,114, 0, 18,
-255,255, 0,115,255,227, 5,217, 5,240, 18, 34, 0, 50, 0, 0, 16, 6, 6,149,106, 0, 0, 0,255,255, 0,113,255,227, 4,117,
- 4,123, 16, 38, 0, 82, 0, 0, 16, 7, 6,149,255,181,255, 4,255,255, 0,115,255,227, 5,217, 5,240, 18, 34, 0, 50, 0, 0,
- 16, 6, 6,148,104, 0, 0, 0,255,255, 0,113,255,227, 4,117, 4,123, 16, 39, 6,148,255,185,255, 4, 16, 6, 0, 82, 0, 0,
-255,255, 0,201, 0, 0, 4,141, 7,107, 18, 34, 0, 51, 0, 0, 16, 67, 0,118, 0, 65, 2,240, 64, 0, 44,204,255,255, 0,186,
-254, 86, 4,164, 6,102, 18, 34, 0, 83, 0, 0, 16, 2, 0,118, 50, 0, 0, 0,255,255, 0,201, 0, 0, 4,141, 7, 80, 18, 34,
- 0, 51, 0, 0, 16, 3, 2, 50, 0,132, 1, 64,255,255, 0,186,254, 86, 4,164, 6, 16, 16, 39, 2, 50, 0,217, 0, 0, 18, 6,
- 0, 83, 0, 0,255,255, 0,201, 0, 0, 5, 84, 7, 80, 18, 34, 0, 53, 0, 0, 16, 3, 2, 50, 0,131, 1, 64,255,255, 0,186,
- 0, 0, 3, 74, 6, 18, 18, 34, 0, 85, 0, 0, 16, 2, 2, 50, 19, 2, 0, 0,255,255, 0,201,254,135, 5, 84, 5,213, 16, 35,
- 2,107, 4,125, 0, 0, 16, 2, 0, 53, 0, 0,255,255, 0,186,254,135, 3, 74, 4,123, 16, 35, 2,107, 3, 32, 0, 0, 16, 2,
- 0, 85, 0, 0,255,255, 0,201,254,135, 5, 84, 7, 51, 16, 99, 0,113, 0,122, 1, 50, 64, 0, 64,110, 16, 2, 4,214, 0, 0,
-255,255, 0,186,254,135, 3, 74, 5,245, 16, 34, 0,113, 24,255, 16, 2, 4,215, 0, 0, 0, 0,255,255, 0,201,254,192, 5, 84,
- 5,213, 18, 34, 0, 53, 0, 0, 16, 3, 2, 38, 0,229, 0, 0,255,255, 0, 84,254,192, 3, 74, 4,123, 18, 34, 0, 85, 0, 0,
- 16, 3, 2, 38,255,127, 0, 0,255,255, 0,135,255,227, 4,162, 7, 80, 18, 34, 0, 54, 0, 0, 16, 3, 2, 50, 0,184, 1, 64,
-255,255, 0,111,255,227, 3,199, 6, 16, 16, 38, 2, 50, 37, 0, 18, 6, 0, 86, 0, 0, 0, 0,255,255, 0,135,254,135, 4,162,
- 5,240, 16, 35, 2,107, 4,138, 0, 0, 16, 2, 0, 54, 0, 0,255,255, 0,111,254,135, 3,199, 4,123, 16, 35, 2,107, 4, 21,
- 0, 0, 16, 2, 0, 86, 0, 0,255,255, 0,135,255,227, 4,162, 7,107, 18, 34, 0, 54, 0, 0, 16, 35, 2, 50,255,164, 1, 90,
- 16, 67, 0,118, 0,242, 2,240, 64, 0, 44,204,255,255, 0,111,255,227, 3,226, 6,102, 18, 34, 0, 86, 0, 0, 16, 34, 2, 50,
-140, 86, 16, 3, 0,118, 0,144, 0, 0, 0, 0,255,255, 0,135,255,227, 4,162, 5,240, 16, 38, 6,153,228, 0, 18, 2, 0, 54,
- 0, 0, 0, 0,255,255, 0,111,255,227, 3,199, 7,176, 16, 38, 1, 35, 0, 0, 16, 7, 2, 50, 0, 34, 1,160,255,255, 0,135,
-254,135, 4,162, 7, 80, 18, 34, 4,222, 0, 0, 16, 3, 2, 50, 0,155, 1, 64,255,255, 0,111,254,135, 3,199, 6, 18, 18, 34,
- 4,223, 0, 0, 16, 2, 2, 50, 42, 2, 0, 0,255,255,255,250, 0, 0, 4,233, 7, 80, 18, 34, 0, 55, 0, 0, 16, 3, 2, 50,
- 0,114, 1, 64,255,255, 0, 55, 0, 0, 2,242, 7, 47, 18, 34, 0, 87, 0, 0, 16, 3, 2, 50,255, 35, 1, 31,255,255,255,250,
-254,135, 4,233, 5,213, 16, 35, 2,107, 4,113, 0, 0, 16, 2, 0, 55, 0, 0,255,255, 0, 55,254,135, 2,242, 5,158, 16, 35,
- 2,107, 3,232, 0, 0, 16, 2, 0, 87, 0, 0,255,255,255,250,254,192, 4,233, 5,213, 18, 34, 0, 55, 0, 0, 16, 2, 2, 38,
- 98, 0, 0, 0,255,255, 0, 55,254,192, 2,242, 5,158, 18, 34, 0, 87, 0, 0, 16, 66, 2, 38, 60, 0, 51, 51, 64, 0, 0, 0,
-255,255,255,250,254, 21, 4,233, 5,213, 16, 39, 2, 31, 0,114,249, 39, 18, 6, 0, 55, 0, 0,255,255, 0, 55,254, 20, 3, 39,
- 5,158, 16, 39, 2, 31,255,232,249, 38, 18, 6, 0, 87, 0, 0,255,255, 0,178,254,137, 5, 41, 5,213, 16, 35, 2,108, 4,240,
- 0, 0, 18, 2, 0, 56, 0, 0,255,255, 0,174,254,137, 4, 88, 4, 96, 16, 35, 2,108, 4,123, 0, 0, 18, 2, 0, 88, 0, 0,
-255,255, 0,178,254,118, 5, 41, 5,213, 18, 34, 0, 56, 0, 0, 16, 3, 2, 71, 0,242, 0, 0,255,255, 0,174,254,118, 4, 88,
- 4, 96, 18, 34, 0, 88, 0, 0, 16, 3, 2, 71, 0,143, 0, 0,255,255, 0,178,253,221, 5, 41, 5,213, 18, 34, 0, 56, 0, 0,
- 16, 3, 2,117, 4,224, 0, 0,255,255, 0,174,253,221, 4, 88, 4, 96, 18, 34, 0, 88, 0, 0, 16, 3, 2,117, 4,117, 0, 0,
-255,255, 0,178,255,227, 5, 41, 5,213, 16, 38, 6,154, 46, 0, 18, 2, 0, 56, 0, 0, 0, 0,255,255, 0,174,255,227, 4, 88,
- 7,236, 16, 38, 1, 43, 0, 0, 16, 7, 0,118, 0,150, 1,134,255,255, 0,178,255,227, 5, 41, 5,213, 16, 38, 6,144, 50, 0,
- 18, 2, 0, 56, 0, 0, 0, 0,255,255, 0,174,255,227, 4, 88, 4, 96, 16, 39, 6,144,255,200,254,192, 18, 2, 0, 88, 0, 0,
-255,255, 0, 16, 0, 0, 5,104, 7,125, 18, 34, 0, 57, 0, 0, 16, 3, 2, 53, 0,237, 1, 70,255,255, 0, 61, 0, 0, 4,127,
- 6, 55, 18, 34, 0, 89, 0, 0, 16, 2, 2, 53,109, 0, 0, 0,255,255, 0, 16,254,135, 5,104, 5,213, 16, 38, 0, 57, 0, 0,
- 16, 7, 2,107, 4,188, 0, 0,255,255, 0, 61,254,135, 4,127, 4, 96, 16, 38, 0, 89, 0, 0, 16, 7, 2,107, 4, 94, 0, 0,
-255,255, 0, 68, 0, 0, 7,166, 5,213, 16, 39, 6,135, 5,245, 1,124, 18, 6, 0, 58, 0, 0,255,255, 0, 86, 0, 0, 6, 53,
- 6,107, 16, 39, 0, 67, 1, 9, 0, 5, 18, 6, 0, 90, 0, 0,255,255, 0, 68, 0, 0, 7,166, 5,213, 16, 39, 6,133, 5,245,
- 1,124, 18, 6, 0, 58, 0, 0,255,255, 0, 86, 0, 0, 6, 53, 6,109, 16, 39, 0,118, 1,134, 0, 7, 18, 6, 0, 90, 0, 0,
-255,255, 0, 68, 0, 0, 7,166, 7, 52, 16, 39, 0,106, 1,245, 1, 36, 18, 6, 0, 58, 0, 0,255,255, 0, 86, 0, 0, 6, 53,
- 5,191, 16, 39, 0,106, 1, 69,255,175, 18, 6, 0, 90, 0, 0,255,255, 0, 68, 0, 0, 7,166, 7, 80, 18, 34, 0, 58, 0, 0,
- 16, 3, 2, 50, 1,245, 1, 64,255,255, 0, 86, 0, 0, 6, 53, 6, 18, 18, 34, 0, 90, 0, 0, 16, 3, 2, 50, 1, 71, 0, 2,
-255,255, 0, 68,254,135, 7,166, 5,213, 18, 34, 0, 58, 0, 0, 16, 3, 2,107, 5,251, 0, 0,255,255, 0, 86,254,135, 6, 53,
- 4, 96, 18, 34, 0, 90, 0, 0, 16, 3, 2,107, 5, 74, 0, 0,255,255, 0, 61, 0, 0, 5, 59, 7, 80, 18, 34, 0, 59, 0, 0,
- 16, 3, 2, 50, 0,202, 1, 64,255,255, 0, 59, 0, 0, 4,121, 6, 18, 18, 34, 0, 91, 0, 0, 16, 2, 2, 50,103, 2, 0, 0,
-255,255, 0, 61, 0, 0, 5, 59, 7, 78, 18, 34, 0, 59, 0, 0, 16, 3, 0,106, 0,202, 1, 62,255,255, 0, 59, 0, 0, 4,121,
- 6, 16, 18, 34, 0, 91, 0, 0, 16, 2, 0,106,102, 0, 0, 0,255,255,255,252, 0, 0, 4,231, 7, 80, 18, 34, 0, 60, 0, 0,
- 16, 3, 2, 50, 0,112, 1, 64,255,255, 0, 61,254, 86, 4,127, 6, 16, 18, 34, 0, 92, 0, 0, 16, 2, 2, 50,102, 0, 0, 0,
-255,255, 0, 92, 0, 0, 5, 31, 7,107, 18, 34, 0, 61, 0, 0, 16, 67, 2, 31, 0,190, 2,240, 64, 0, 44,204,255,255, 0, 88,
- 0, 0, 3,219, 6,102, 18, 34, 0, 93, 0, 0, 16, 2, 2, 31, 26, 0, 0, 0,255,255, 0, 92,254,135, 5, 31, 5,213, 18, 34,
- 0, 61, 0, 0, 16, 3, 2,107, 4,217, 0, 0,255,255, 0, 88,254,135, 3,219, 4, 96, 18, 34, 0, 93, 0, 0, 16, 3, 2,107,
- 4, 49, 0, 0,255,255, 0, 92,254,192, 5, 31, 5,213, 18, 34, 0, 61, 0, 0, 16, 3, 2, 38, 0,199, 0, 0,255,255, 0, 88,
-254,192, 3,219, 4, 96, 18, 34, 0, 93, 0, 0, 16, 2, 2, 38, 27, 0, 0, 0,255,255, 0,186,254,192, 4,100, 6, 20, 18, 34,
- 0, 75, 0, 0, 16, 2, 2, 38,102, 0, 0, 0,255,255, 0, 4, 0, 0, 2,242, 7, 78, 18, 34, 0, 87, 0, 0, 16, 3, 0,106,
-255, 45, 1, 62,255,255, 0, 86, 0, 0, 6, 53, 7, 6, 18, 34, 0, 90, 0, 0, 16, 3, 2, 51, 1, 66, 0, 0,255,255, 0, 61,
-254, 86, 4,127, 7, 6, 18, 34, 0, 92, 0, 0, 16, 3, 2, 51, 0,129, 0, 0,255,255, 0,123,255,227, 5, 97, 6, 20, 18, 34,
- 0, 68, 0, 0, 16, 3, 2, 23, 3,218, 0, 0,255,255, 0, 47, 0, 0, 2,248, 7, 80, 18, 34, 1, 65, 0, 0, 16, 3, 2, 50,
-255,253, 1, 64,255,255, 0, 16,254,135, 5,104, 5,213, 16, 35, 2,107, 4,183, 0, 0, 18, 2, 0, 36, 0, 0,255,255, 0,123,
-254,135, 4, 45, 4,123, 16, 35, 2,107, 4, 33, 0, 0, 18, 2, 0, 68, 0, 0,255,255, 0, 16, 0, 0, 5,104, 7,240, 18, 38,
- 0, 36, 0, 0, 16, 7, 2, 81, 4,188, 1,117,255,255, 0,123,255,227, 4, 45, 6,123, 18, 38, 0, 68, 0, 0, 16, 7, 2, 81,
- 4, 84, 0, 0,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 34, 0, 36, 0, 0, 16, 6, 6,155, 0, 0, 0, 0,255,255, 0,123,
-255,227, 4, 45, 4,123, 16, 39, 6,155,255,151,254,139, 16, 6, 0, 68, 0, 0,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 34,
- 0, 36, 0, 0, 16, 6, 6,156, 0, 0, 0, 0,255,255, 0,123,255,227, 4, 45, 4,123, 16, 38, 0, 68, 0, 0, 16, 7, 6,156,
-255,148,254,140,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 34, 0, 36, 0, 0, 16, 6, 6,162, 0, 0, 0, 0,255,255, 0,123,
-255,227, 4, 45, 4,123, 16, 39, 6,162,255,150,254,139, 16, 6, 0, 68, 0, 0,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 34,
- 0, 36, 0, 0, 16, 6, 6,157, 0, 0, 0, 0,255,255, 0,123,255,227, 4, 45, 4,123, 16, 39, 6,157,255,150,254,139, 16, 6,
- 0, 68, 0, 0,255,255, 0, 16,254,135, 5,104, 5,213, 16, 35, 2,107, 4,175, 0, 0, 18, 2, 0,132, 0, 0,255,255, 0,123,
-254,135, 4, 45, 6,102, 18, 34, 0,164, 0, 0, 16, 3, 2,107, 4, 34, 0, 0,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 34,
- 0, 36, 0, 0, 16, 6, 6,159, 0, 0, 0, 0,255,255, 0,123,255,227, 4, 45, 4,123, 16, 39, 6,159,255,145,254,170, 16, 6,
- 0, 68, 0, 0,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 34, 0, 36, 0, 0, 16, 6, 6,160, 0, 0, 0, 0,255,255, 0,123,
-255,227, 4, 45, 4,123, 16, 39, 6,160,255,146,254,170, 16, 6, 0, 68, 0, 0,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 34,
- 0, 36, 0, 0, 16, 6, 6,161, 0, 0, 0, 0,255,255, 0,123,255,227, 4, 45, 4,123, 16, 39, 6,161,255,148,254,170, 16, 6,
- 0, 68, 0, 0,255,255, 0, 16, 0, 0, 5,104, 5,213, 18, 34, 0, 36, 0, 0, 16, 6, 6,158, 0, 0, 0, 0,255,255, 0,123,
-255,227, 4, 45, 4,123, 16, 38, 0, 68, 0, 0, 16, 7, 6,158,255,146,254,170,255,255, 0, 16,254,135, 5,104, 7,146, 18, 34,
- 0,196, 0, 0, 16, 3, 2,107, 4,192, 0, 0,255,255, 0,123,254,135, 4, 45, 6, 31, 18, 34, 0,197, 0, 0, 16, 3, 2,107,
- 4, 51, 0, 0,255,255, 0,201,254,135, 4,139, 5,213, 16, 38, 0, 40, 0, 0, 16, 7, 2,107, 4,158, 0, 0,255,255, 0,113,
-254,135, 4,127, 4,123, 16, 38, 0, 72, 0, 0, 16, 7, 2,107, 4,139, 0, 0,255,255, 0,201, 0, 0, 4,139, 7,240, 18, 38,
- 0, 40, 0, 0, 16, 7, 2, 81, 4,158, 1,117,255,255, 0,113,255,227, 4,127, 6,123, 18, 38, 0, 72, 0, 0, 16, 7, 2, 81,
- 4,141, 0, 0,255,255, 0,201, 0, 0, 4,139, 7, 69, 16, 99, 2, 53, 0,185, 2, 76, 64, 0, 51, 51, 18, 2, 0, 40, 0, 0,
-255,255, 0,113,255,227, 4,127, 6, 55, 16, 35, 2, 53, 0,151, 0, 0, 18, 2, 0, 72, 0, 0,255,255, 0,201, 0, 0, 4,139,
- 5,213, 18, 34, 0, 40, 0, 0, 16, 6, 6,155, 0, 0, 0, 0,255,255, 0,113,255,227, 4,127, 4,123, 16, 39, 6,155,255,208,
-254,139, 16, 6, 0, 72, 0, 0,255,255, 0,201, 0, 0, 4,139, 5,213, 18, 34, 0, 40, 0, 0, 16, 6, 6,156,238, 0, 0, 0,
-255,255, 0,113,255,227, 4,127, 4,123, 16, 39, 6,156,255,208,254,140, 16, 6, 0, 72, 0, 0,255,255, 0,201, 0, 0, 4,139,
- 5,213, 18, 34, 0, 40, 0, 0, 16, 6, 6,162,238, 0, 0, 0,255,255, 0,113,255,227, 4,127, 4,123, 16, 38, 0, 72, 0, 0,
- 16, 7, 6,162,255,208,254,139,255,255, 0,201, 0, 0, 4,139, 5,213, 18, 34, 0, 40, 0, 0, 16, 6, 6,157,234, 0, 0, 0,
-255,255, 0,113,255,227, 4,127, 4,123, 16, 39, 6,157,255,209,254,139, 16, 6, 0, 72, 0, 0,255,255, 0,201,254,135, 4,139,
- 5,213, 18, 34, 0,140, 0, 0, 16, 7, 2,107, 4,158, 0, 0,255,255, 0,113,254,135, 4,127, 6,102, 16, 39, 2,107, 4,139,
- 0, 0, 16, 38, 5, 49, 0, 0, 16, 7, 2, 31, 0,139, 0, 0,255,255, 0, 90, 0, 0, 2, 26, 7,240, 18, 38, 0, 44, 0, 0,
- 16, 7, 2, 81, 3, 35, 1,117,255,255, 0, 68, 0, 0, 2, 4, 6,124, 18, 34, 0,243, 0, 0, 16, 7, 2, 81, 3, 13, 0, 1,
-255,255, 0,200,254,135, 1,148, 5,213, 16, 38, 0, 44, 0, 0, 16, 7, 2,107, 3, 46, 0, 0,255,255, 0,183,254,135, 1,131,
- 6, 20, 16, 38, 0, 76, 0, 0, 16, 7, 2,107, 3, 29, 0, 0,255,255, 0,115,254,135, 5,217, 5,240, 16, 38, 0, 50, 0, 0,
- 16, 7, 2,107, 5, 39, 0, 0,255,255, 0,113,254,135, 4,117, 4,123, 16, 38, 0, 82, 0, 0, 16, 7, 2,107, 4,115, 0, 0,
-255,255, 0,115,255,227, 5,217, 7,240, 18, 38, 0, 50, 0, 0, 16, 7, 2, 81, 5, 39, 1,117,255,255, 0,113,255,227, 4,117,
- 6,123, 18, 38, 0, 82, 0, 0, 16, 7, 2, 81, 4,125, 0, 0,255,255, 0,115,255,227, 5,217, 5,240, 18, 34, 0, 50, 0, 0,
- 16, 6, 6,155,108, 0, 0, 0,255,255, 0,113,255,227, 4,117, 4,123, 16, 39, 6,155,255,182,254,139, 16, 6, 0, 82, 0, 0,
-255,255, 0,115,255,227, 5,217, 5,240, 18, 34, 0, 50, 0, 0, 16, 6, 6,156,106, 0, 0, 0,255,255, 0,113,255,227, 4,117,
- 4,123, 16, 39, 6,156,255,181,254,140, 16, 6, 0, 82, 0, 0,255,255, 0,115,255,227, 5,217, 5,240, 18, 34, 0, 50, 0, 0,
- 16, 6, 6,162,106, 0, 0, 0,255,255, 0,113,255,227, 4,117, 4,123, 16, 39, 6,162,255,182,254,139, 16, 6, 0, 82, 0, 0,
-255,255, 0,115,255,227, 5,217, 5,240, 18, 34, 0, 50, 0, 0, 16, 6, 6,157,101, 0, 0, 0,255,255, 0,113,255,227, 4,117,
- 4,123, 16, 39, 6,157,255,182,254,139, 16, 6, 0, 82, 0, 0,255,255, 0,115,254,135, 5,217, 5,240, 18, 34, 0,150, 0, 0,
- 16, 7, 2,107, 5, 39, 0, 0,255,255, 0,113,254,135, 4,117, 6,102, 16, 39, 2,107, 4,115, 0, 0, 16, 38, 5, 69, 0, 0,
- 16, 6, 2, 31,115, 0, 0, 0,255,255, 0,103,255,227, 6,195, 5,240, 16, 39, 6,133, 5, 39, 1,117, 18, 2, 1, 98, 0, 0,
-255,255, 0,118,255,227, 4,211, 6,102, 16, 38, 0,118,115, 0, 18, 2, 1, 99, 0, 0, 0, 0,255,255, 0,103,255,227, 6,195,
- 5,240, 16, 39, 6,135, 5, 39, 1,117, 18, 2, 1, 98, 0, 0,255,255, 0,118,255,227, 4,211, 6,102, 16, 38, 0, 67,115, 0,
- 18, 2, 1, 99, 0, 0, 0, 0,255,255, 0,103,255,227, 6,195, 7,240, 18, 34, 1, 98, 0, 0, 16, 7, 2, 81, 5, 39, 1,117,
-255,255, 0,118,255,227, 4,211, 6,123, 18, 38, 1, 99, 0, 0, 16, 7, 2, 81, 4,125, 0, 0,255,255, 0,103,255,227, 6,195,
- 5,240, 16, 39, 6,134, 5, 39, 1,117, 18, 2, 1, 98, 0, 0,255,255, 0,118,255,227, 4,211, 6, 55, 16, 38, 2, 53,115, 0,
- 18, 2, 1, 99, 0, 0, 0, 0,255,255, 0,103,254,135, 6,195, 5,240, 18, 34, 1, 98, 0, 0, 16, 7, 2,107, 5, 39, 0, 0,
-255,255, 0,118,254,135, 4,211, 4,235, 18, 34, 1, 99, 0, 0, 16, 7, 2,107, 4,115, 0, 0,255,255, 0,178,254,135, 5, 41,
- 5,213, 16, 38, 0, 56, 0, 0, 16, 7, 2,107, 4,245, 0, 0,255,255, 0,174,254,135, 4, 88, 4, 96, 16, 38, 0, 88, 0, 0,
- 16, 7, 2,107, 4,123, 0, 0,255,255, 0,178,255,227, 5, 41, 7,240, 18, 38, 0, 56, 0, 0, 16, 7, 2, 81, 4,238, 1,117,
-255,255, 0,174,255,227, 4, 88, 6,123, 18, 38, 0, 88, 0, 0, 16, 7, 2, 81, 4,125, 0, 0,255,255, 0,173,255,247, 6, 95,
- 5,233, 16, 39, 6,133, 4,238, 1,117, 18, 2, 1,113, 0, 0,255,255, 0,176,255,227, 5,105, 6,102, 16, 38, 0,118,123, 0,
- 18, 2, 1,114, 0, 0, 0, 0,255,255, 0,173,255,247, 6, 95, 5,233, 16, 39, 6,135, 4,238, 1,117, 18, 2, 1,113, 0, 0,
-255,255, 0,176,255,227, 5,105, 6,102, 16, 38, 0, 67,123, 0, 18, 2, 1,114, 0, 0, 0, 0,255,255, 0,173,255,247, 6, 95,
- 7,240, 18, 34, 1,113, 0, 0, 16, 7, 2, 81, 4,238, 1,117,255,255, 0,176,255,227, 5,105, 6,123, 18, 34, 1,114, 0, 0,
- 16, 7, 2, 81, 4,125, 0, 0,255,255, 0,173,255,247, 6, 95, 5,233, 16, 39, 6,134, 4,238, 1,117, 18, 2, 1,113, 0, 0,
-255,255, 0,176,255,227, 5,105, 6, 55, 16, 35, 2, 53, 0,128, 0, 0, 18, 2, 1,114, 0, 0,255,255, 0,173,254,135, 6, 95,
- 5,233, 18, 34, 1,113, 0, 0, 16, 7, 2,107, 4,245, 0, 0,255,255, 0,176,254,135, 5,105, 4,235, 18, 34, 1,114, 0, 0,
- 16, 7, 2,107, 4,123, 0, 0,255,255,255,252, 0, 0, 4,231, 5,213, 18, 38, 0, 60, 0, 0, 16, 7, 6,135, 4,114, 1,124,
-255,255, 0, 61,254, 86, 4,127, 6,107, 18, 38, 0, 92, 0, 0, 16, 6, 0, 67, 33, 5, 0, 0,255,255,255,252,254,130, 4,231,
- 5,213, 16, 35, 2,107, 4,118,255,251, 18, 2, 0, 60, 0, 0,255,255, 0, 61,254, 86, 4,127, 4, 96, 16, 35, 2,107, 5,116,
- 0, 0, 18, 2, 0, 92, 0, 0,255,255,255,252, 0, 0, 4,231, 7,247, 18, 38, 0, 60, 0, 0, 16, 7, 2, 81, 4,114, 1,124,
-255,255, 0, 61,254, 86, 4,127, 6,130, 18, 38, 0, 92, 0, 0, 16, 7, 2, 81, 4, 96, 0, 7,255,255,255,252, 0, 0, 4,231,
- 7, 69, 16, 99, 2, 53, 0,121, 2, 76, 64, 0, 51, 51, 18, 2, 0, 60, 0, 0,255,255, 0, 61,254, 86, 4,127, 6, 55, 16, 34,
- 2, 53,119, 0, 18, 2, 0, 92, 0, 0, 0, 0, 0, 1, 1,134, 4,194, 2,120, 6, 97, 0, 8, 0, 72,180, 5, 8, 7, 2, 9,
- 16,212, 60,220,178, 63, 8, 1, 93,192, 49,182, 0, 6, 7, 6, 3, 2, 9, 0, 16,212,180, 63, 2, 95, 2, 2, 93,176, 17, 75,
- 80, 88,204, 27,192, 89,204,204,178, 63, 7, 1, 93, 17, 57, 48,177, 6, 3, 73,177, 7, 6, 73, 80, 88,179, 5, 64, 6, 64, 56,
- 56, 89, 1, 16, 35, 53, 22, 53, 35, 53, 51, 2,120,242,134,133,241, 5,205,254,245,103, 3,157,158, 0, 0, 0,255,255, 1,115,
- 4,238, 3, 82, 6,102, 16, 6, 0,118, 0, 0, 0, 1, 1,134, 4,194, 2,120, 6, 97, 0, 8, 0, 72,180, 2, 7, 4, 0, 9,
- 16,212,192,220,178, 63, 7, 1, 93, 60, 49,182, 0, 3, 2, 3, 6, 7, 9, 0, 16,212,180, 63, 7, 95, 7, 2, 93,176, 17, 75,
- 80, 88,204, 27,192, 89,204,204,178, 63, 2, 1, 93, 17, 57, 48,177, 3, 6, 73,177, 2, 3, 73, 80, 88,179, 3, 64, 4, 64, 56,
- 56, 89, 1, 53, 51, 21, 35, 20, 55, 21, 34, 1,134,242,134,134,242, 5,205,148,158,157, 3,103, 0, 1, 0,100, 1,223, 2,127,
- 2,131, 0, 3, 0, 17,182, 0,156, 2, 4, 1, 0, 4, 16,220,204, 49, 0, 16,212,236, 48, 19, 33, 21, 33,100, 2, 27,253,229,
- 2,131,164, 0,255,255, 0,100, 1,223, 2,127, 2,131, 18, 6, 5,133, 0, 0, 0, 1, 0, 0, 1,233, 4, 0, 2,121, 0, 3,
- 0, 16,182, 2,169, 0,233, 4, 1, 0, 47,198, 49, 0, 16,252,236, 48, 17, 33, 21, 33, 4, 0,252, 0, 2,121,144, 0, 0, 0,
- 0, 1, 0, 0, 1,233, 4, 0, 2,121, 0, 3, 0, 16,182, 2,169, 0,233, 4, 1, 0, 47,198, 49, 0, 16,252,236, 48, 17, 33,
- 21, 33, 4, 0,252, 0, 2,121,144, 0, 0, 0, 0, 1, 0, 0, 1,233, 8, 0, 2,121, 0, 3, 0, 15,181, 2,169, 0, 4, 1,
- 0, 47,204, 49, 0, 16,212,236, 48, 17, 33, 21, 33, 8, 0,248, 0, 2,121,144, 0, 1, 0, 0, 1,233, 8, 0, 2,121, 0, 3,
- 0, 15,181, 2,169, 0, 4, 1, 0, 47,204, 49, 0, 16,212,236, 48, 17, 33, 21, 33, 8, 0,248, 0, 2,121,144,255,255, 1, 4,
-254, 29, 2,248, 6, 29, 16, 34, 0, 95, 0, 0, 16, 3, 0, 95, 1, 74, 0, 0,255,255,255,236,254, 29, 4, 20,255,238, 16, 38,
- 0, 66, 0, 0, 16, 7, 0, 66, 0, 0, 1, 66, 0, 1, 0,174, 3,233, 1,211, 5,213, 0, 5, 0, 24, 64, 11, 0,158, 3,129,
- 6, 3, 4, 0, 25, 1, 6, 16,220,252,212,204, 49, 0, 16,244,236, 48, 1, 35, 53, 19, 51, 3, 1,129,211,164,129, 82, 3,233,
-173, 1, 63,254,193, 0, 0, 0, 0, 1, 0,178, 3,254, 1,215, 5,213, 0, 5, 0, 24, 64, 11, 3,158, 0,129, 6, 3, 4, 1,
- 25, 0, 6, 16,220,236,212,204, 49, 0, 16,244,236, 48, 1, 51, 21, 3, 35, 19, 1, 4,211,164,129, 82, 5,213,152,254,193, 1,
- 63, 0, 0, 0, 0, 1, 0,174,255, 18, 1,211, 0,254, 0, 5, 0, 24, 64, 11, 3,158, 0,131, 6, 3, 4, 1, 25, 0, 6, 16,
-212,236,212,204, 49, 0, 16,252,236, 48, 37, 51, 21, 3, 35, 19, 1, 0,211,164,129, 82,254,172,254,192, 1, 64, 0, 1, 0,178,
- 3,254, 1,215, 5,213, 0, 5, 0, 0, 1, 21, 19, 35, 3, 53, 1,133, 82,129,164, 5,213,152,254,193, 1, 63,152, 0, 0, 0,
- 0, 2, 0,174, 3,233, 3,109, 5,213, 0, 5, 0, 11, 0, 39, 64, 19, 6, 0,158, 9, 3,129, 12, 9, 10, 6, 25, 7, 3, 4,
- 7, 0, 25, 1, 12, 16,220,252,204,212,204, 16,254,212,206, 49, 0, 16,244, 60,236, 50, 48, 1, 35, 53, 19, 51, 3, 5, 35, 53,
- 19, 51, 3, 1,129,211,164,129, 82, 1,154,211,164,129, 82, 3,233,173, 1, 63,254,193,173,173, 1, 63,254,193, 0, 2, 0,174,
- 3,233, 3,109, 5,213, 0, 5, 0, 11, 0, 39, 64, 19, 9, 3,158, 6, 0,129, 12, 9, 10, 7, 25, 6, 1, 3, 4, 1, 25, 0,
- 12, 16,220,236,212,204, 16,220,238,212,206, 49, 0, 16,244, 60,236, 50, 48, 1, 51, 21, 3, 35, 19, 37, 51, 21, 3, 35, 19, 1,
- 0,211,164,129, 82, 1,154,211,164,129, 82, 5,213,172,254,192, 1, 64,172,172,254,192, 1, 64, 0, 2, 0,174,255, 18, 3,109,
- 0,254, 0, 5, 0, 11, 0, 39, 64, 19, 9, 3,158, 6, 0,131, 12, 3, 4, 1, 25, 0, 7, 9, 10, 7, 25, 6, 12, 16,220,236,
-212,204, 16,220,238,212,206, 49, 0, 16,252, 60,236, 50, 48, 37, 51, 21, 3, 35, 19, 37, 51, 21, 3, 35, 19, 2,154,211,164,129,
- 82,254,102,211,164,129, 82,254,172,254,192, 1, 64,172,172,254,192, 1, 64, 0, 0, 2, 0,174, 3,233, 3,109, 5,213, 0, 5,
- 0, 11, 0, 0, 1, 21, 19, 35, 3, 53, 33, 21, 19, 35, 3, 53, 1,129, 82,129,164, 2,109, 82,129,164, 5,213,173,254,193, 1,
- 63,173,173,254,193, 1, 63,173, 0, 1, 0, 57,255, 59, 3,199, 5,213, 0, 11, 0, 39, 64, 20, 8, 4,185, 10, 2, 0,129, 6,
-194, 12, 3, 89, 5, 1, 87, 9, 89, 7, 0, 12, 16,212, 60,236,252, 60,236, 49, 0, 16,228,244,212, 60,236, 50, 48, 1, 51, 17,
- 33, 21, 33, 17, 35, 17, 33, 53, 33, 1,168,176, 1,111,254,145,176,254,145, 1,111, 5,213,254, 92,153,251,163, 4, 93,153, 0,
- 0, 1, 0, 57,255, 59, 3,199, 5,213, 0, 19, 0, 62, 64, 32, 18, 6,185, 0, 16, 8,185, 10, 4, 0, 2, 14, 10, 12,129, 2,
-194, 20, 15, 0, 89, 17, 13, 1, 87, 9, 5, 89, 11, 7, 3, 20, 16,212, 60, 60,236, 50,252, 60, 60,236, 50, 49, 0, 16,228,244,
-196, 50, 16,196, 50, 16,238, 50, 16,238, 50, 48, 37, 33, 17, 35, 17, 33, 53, 33, 17, 33, 53, 33, 17, 51, 17, 33, 21, 33, 17, 33,
- 3,199,254,145,176,254,145, 1,111,254,145, 1,111,176, 1,111,254,145, 1,111,223,254, 92, 1,164,154, 2, 31,153, 1,164,254,
- 92,153,253,225, 0, 1, 1, 51, 1,209, 3,133, 4, 33, 0, 11, 0, 18,183, 9,199, 3, 12, 6, 92, 0, 12, 16,212,236, 49, 0,
- 16,212,236, 48, 1, 52, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 1, 51,173,126,124,171,172,125,125,172, 2,250,124,171,171,124,
-125,172,172, 0, 0, 1, 1, 51, 1,129, 3,213, 4,113, 0, 2, 0, 0, 1, 17, 1, 1, 51, 2,162, 1,129, 2,240,254,136, 0,
- 0, 1, 0,236, 0, 0, 1,193, 0,254, 0, 3, 0, 0, 55, 51, 21, 35,236,213,213,254,254, 0, 0, 2, 0,236, 0, 0, 4,107,
- 0,254, 0, 3, 0, 7, 0, 0, 37, 51, 21, 35, 37, 51, 21, 35, 3,150,213,213,253, 86,213,213,254,254,254,254, 0, 3, 0,236,
- 0, 0, 7, 20, 0,254, 0, 3, 0, 7, 0, 11, 0, 35, 64, 17, 8, 4, 0,131, 10, 6, 2, 4, 25, 5, 0, 25, 1, 9, 25, 8,
- 12, 16,212,252,212,236,212,236, 49, 0, 47, 60, 60,236, 50, 50, 48, 37, 51, 21, 35, 37, 51, 21, 35, 37, 51, 21, 35, 3,150,212,
-212, 2,169,213,213,250,173,213,213,254,254,254,254,254,254, 0, 0, 1, 0,220, 2,107, 1,175, 3,105, 0, 3, 0, 0, 19, 51,
- 21, 35,220,211,211, 3,105,254, 0, 7, 0,113,255,227, 10, 76, 5,240, 0, 11, 0, 23, 0, 35, 0, 39, 0, 51, 0, 63, 0, 75,
- 0,174, 64, 68, 36, 15, 37, 38, 37, 38, 15, 39, 36, 39, 66, 64, 0,146, 12, 46,146, 30,141, 40,146, 24, 70, 6,146, 52, 12,141,
- 58, 38, 18,140, 36, 24,145, 76, 37, 73, 67, 39, 49, 43, 67, 13, 61, 9, 13, 15, 14, 3, 13, 21, 49, 13, 27, 61, 14, 73, 13, 21,
- 55, 43, 13, 27, 14, 33, 11, 76, 16,252,228,236,212,196,236,228, 16,238, 16,238,246,238, 16,238, 17, 18, 57, 17, 18, 57, 49, 0,
- 16,228, 50,244, 60, 60,228, 50,236, 50, 16,238,246,238, 16,238, 50, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 5,237, 89, 34, 1,
- 75,176, 20, 84, 75,176, 9, 84, 91, 75,176, 11, 84, 91, 75,176, 12, 84, 91, 75,176, 13, 84, 91, 75,176, 14, 84, 91, 88,189, 0,
- 76, 0, 64, 0, 1, 0, 76, 0, 76,255,192, 56, 17, 55, 56, 89, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 39, 50, 22, 21,
- 20, 6, 35, 34, 38, 53, 52, 54, 1, 50, 22, 21, 20, 6, 35, 34, 38, 53, 52, 54, 33, 51, 1, 35, 19, 34, 6, 21, 20, 22, 51, 50,
- 54, 53, 52, 38, 1, 50, 22, 21, 20, 6, 35, 34, 38, 53, 52, 54, 23, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 8,244, 87,100,
-100, 87, 85, 99, 99, 85,158,186,187,157,160,186,187,249,116,158,188,187,159,159,185,186, 4, 37,160,252, 90,160, 31, 86, 99, 98,
- 87, 87, 99,100, 3,178,158,186,187,157,160,186,187,159, 87, 99, 99, 87, 85, 99, 99, 2,145,148,132,130,149,149,130,131,149,127,
-220,187,187,219,219,187,188,219, 2,224,219,187,189,218,219,188,186,220,249,243, 5,142,149,130,132,148,148,132,129,150,253,159,
-220,187,187,219,219,187,188,219,127,148,132,130,149,149,130,131,149, 0, 0, 0, 0, 9, 0,113,255,227, 13,114, 5,240, 0, 11,
- 0, 22, 0, 34, 0, 45, 0, 55, 0, 59, 0, 69, 0, 80, 0, 92, 0, 0, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 39, 50,
- 22, 16, 6, 35, 34, 38, 53, 52, 54, 5, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 39, 50, 22, 16, 6, 35, 34, 38, 53, 52, 54,
- 0, 32, 22, 21, 20, 6, 32, 38, 53, 52, 37, 51, 1, 35, 18, 34, 6, 21, 20, 22, 50, 54, 53, 52, 1, 50, 22, 16, 6, 35, 34, 38,
- 53, 52, 54, 23, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 12, 26, 87,100,100, 87, 85, 99, 99, 85,158,186,187,157,160,186,187,
-253,121, 87,100,100, 87, 85, 99, 99, 85,158,186,187,157,160,186,187,248,214, 1, 60,188,187,254,194,185, 4,223,160,252, 90,160,
-117,172, 99, 98,174, 99, 3, 78,158,186,187,157,160,186,187,159, 87, 99, 99, 87, 85, 99, 99, 2,145,148,132,130,149,149,130,131,
-149,127,220,254,138,219,219,187,188,219,127,148,132,130,149,149,130,131,149,127,220,254,138,219,219,187,188,219, 2,224,219,187,
-189,218,219,188,186,220,249,243, 5,142,149,130,132,148,148,132,129,254, 53,220,254,138,219,219,187,188,219,127,148,132,130,149,
-149,130,131,149, 0, 1, 0, 40, 4, 96, 1,160, 5,213, 0, 3, 0, 0, 27, 1, 51, 1, 40,173,203,254,223, 4, 96, 1,117,254,
-139, 0, 0, 0,255,255, 0, 40, 4, 96, 2,204, 5,213, 16, 38, 5,159, 0, 0, 16, 7, 5,159, 1, 44, 0, 0,255,255, 0, 40,
- 4, 96, 3,248, 5,213, 16, 39, 5,159, 1, 44, 0, 0, 16, 38, 5,159, 0, 0, 16, 7, 5,159, 2, 88, 0, 0, 0, 1, 0, 40,
- 4, 96, 1,160, 5,213, 0, 3, 0, 0, 1, 35, 1, 51, 1,160, 87,254,223,203, 4, 96, 1,117,255,255, 0, 40, 4, 96, 2,204,
- 5,213, 16, 38, 5,162, 0, 0, 16, 7, 5,162, 1, 44, 0, 0,255,255, 0, 40, 4, 96, 3,248, 5,213, 16, 38, 5,162, 0, 0,
- 16, 39, 5,162, 2, 88, 0, 0, 16, 7, 5,162, 1, 44, 0, 0, 0, 1, 0, 11,254, 29, 2,171,255,195, 0, 5, 0, 0, 1, 35,
- 39, 7, 35, 1, 2,171,148,187,188,149, 1, 82,254, 29,249,249, 1,166, 0, 0, 0, 1, 0,158, 0,141, 2,115, 4, 35, 0, 6,
- 0, 71, 64, 37, 3,232, 4, 5, 4, 2,232, 1, 2, 5, 5, 4, 2,232, 3, 2, 6, 0, 6, 1,232, 0, 6, 66, 2, 4,231, 0,
-166, 7, 2, 3, 0,111, 5,110, 7, 16,252,236, 50, 57, 49, 0, 16,244,236, 57, 48, 75, 83, 88, 7, 4,237, 7, 16, 8,237, 7,
- 16, 8,237, 7, 16, 4,237, 89, 34, 1, 21, 9, 1, 21, 1, 53, 2,115,254,211, 1, 45,254, 43, 4, 35,191,254,244,254,244,191,
- 1,162, 82, 0, 0, 1, 0,193, 0,141, 2,150, 4, 35, 0, 6, 0, 73, 64, 38, 5,232, 6, 5, 2, 3, 2, 4,232, 3, 3, 2,
- 6,232, 0, 1, 0, 5,232, 4, 5, 1, 1, 0, 66, 5, 3,231, 0,166, 7, 5, 1,111, 3, 0,112, 7, 16,252, 60,236, 57, 49,
- 0, 16,244,236, 57, 48, 75, 83, 88, 7, 16, 8,237, 7, 16, 4,237, 7, 16, 4,237, 7, 16, 8,237, 89, 34, 19, 1, 21, 1, 53,
- 9, 1,193, 1,213,254, 43, 1, 45,254,211, 4, 35,254, 94, 82,254, 94,191, 1, 12, 1, 12, 0,255,255, 0,195, 0, 4, 5,235,
- 5,204, 18, 34, 0,153, 0, 75, 16, 35, 0, 17,255,232, 2, 78, 16, 35, 0, 17, 2, 22, 0, 4, 16, 35, 0, 17, 4, 61, 2, 78,
- 16, 3, 0, 17, 2, 22, 4,206,255,255, 0,147, 0, 0, 3, 79, 5,213, 16, 39, 0, 4,255, 94, 0, 0, 16, 7, 0, 4, 1, 79,
- 0, 0, 0, 0, 0, 3, 0,147, 0, 0, 3,176, 5,240, 0, 23, 0, 27, 0, 36, 0, 0, 1, 35, 17, 6, 7, 6, 7, 53, 62, 1,
- 51, 50, 22, 21, 20, 6, 15, 1, 14, 1, 7, 14, 1, 21, 3, 51, 21, 35, 19, 17, 55, 62, 1, 53, 52, 39, 38, 2, 76,191, 31, 32,
- 90, 97, 94,193,103,184,223, 72, 90, 88, 47, 39, 8, 6, 6,197,203,203,197, 45, 57, 51, 65, 37, 1,145, 3,173, 8, 13, 35, 67,
-188, 57, 56,194,159, 76,137, 86, 86, 47, 53, 25, 21, 60, 52,254,242,254, 5, 66,254, 82, 45, 53, 94, 49, 89, 55, 31, 0, 0, 0,
-255,255,255,236, 5,124, 4, 20, 6, 11, 16, 7, 0, 66, 0, 0, 7, 95, 0, 0, 0, 1,255,167,254, 27, 6,199,255,133, 0, 13,
- 0, 37,179, 4, 15, 10, 14, 16,196,212,196,179, 7, 0, 15, 14, 17, 18, 57, 57, 49, 64, 7, 11, 3, 10, 4, 7, 0, 14, 0, 16,
-212,220,220, 60,204, 50, 48, 1, 50, 36, 55, 21, 6, 4, 35, 34, 36, 39, 53, 22, 4, 3, 54,231, 1,197,229,235,254, 58,224,223,
-254, 60,236,230, 1,194,254,181,104,104,126,118,118,117,119,126,105,103, 0, 0, 0, 1,255,167, 6, 4, 6,199, 7,110, 0, 13,
- 0, 37,179, 4, 15, 10, 14, 16,196,212,196,179, 7, 0, 15, 14, 17, 18, 57, 57, 49, 64, 7, 10, 4, 11, 3, 0, 7, 14, 0, 16,
-212,220,220, 60,204, 50, 48, 1, 50, 4, 23, 21, 38, 36, 35, 34, 4, 7, 53, 54, 36, 3, 54,224, 1,198,235,229,254, 59,231,231,
-254, 62,230,236, 1,196, 7,110,118,118,126,104,104,103,105,126,119,117, 0, 0, 0, 1,255,170,254, 29, 2, 73, 1,213, 0, 7,
- 0, 0, 1, 51, 9, 1, 35, 11, 1, 35, 1,231, 98,254,226, 1, 30, 98,237,237, 99, 1,213,254, 36,254, 36, 1,138,254,118, 0,
-255,255, 0, 61,255,197, 7,195, 6,131, 16, 35, 0, 13, 0, 0,253,123, 16, 35, 0, 13, 4, 0,253,123, 16, 3, 0, 13, 2, 0,
- 0,147, 0, 0,255,255, 0,221, 2,129, 3, 51, 3, 95, 18, 67, 2, 34, 0, 8,250,110, 64, 0, 96, 0, 0, 0, 0, 1,254,137,
-255,227, 2,205, 5,240, 0, 3, 0, 43, 64, 19, 0, 15, 1, 2, 1, 2, 15, 3, 0, 3, 66, 2,140, 0,145, 4, 1, 3, 4, 16,
-212,204, 49, 0, 16,228,228, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 5,237, 89, 34, 1, 51, 1, 35, 2, 45,160,252, 92,160, 5,
-240,249,243, 0, 0, 1, 0,176,254,242, 2, 88, 6, 20, 0, 11, 0, 0, 1, 17, 51, 21, 33, 17, 33, 21, 35, 17, 51, 21, 1,104,
-240,254, 88, 1,168,240,240, 2, 94,253, 35,143, 7, 34,143,253, 35, 74, 0, 0, 0, 1, 0,176,254,242, 2, 88, 6, 20, 0, 11,
- 0, 0, 19, 53, 51, 17, 35, 53, 33, 17, 33, 53, 51, 17,176,240,240, 1,168,254, 88,240, 2, 94, 74, 2,221,143,248,222,143, 2,
-221, 0, 0, 0,255,255, 0, 73, 0, 0, 7, 23, 5,240, 16, 38, 0, 34,182, 0, 16, 7, 0, 34, 3,102, 0, 0,255,255, 0,147,
- 0, 0, 5, 74, 5,240, 16, 38, 0, 34, 0, 0, 16, 7, 0, 4, 3, 74, 0, 0,255,255, 0,147, 0, 0, 5, 74, 5,240, 16, 39,
- 0, 4,255, 94, 0, 0, 16, 7, 0, 34, 1,154, 0, 0, 0, 0, 0, 1, 0,111, 0, 0, 3,161, 4,132, 0, 19, 0, 0, 37, 51,
- 21, 35, 53, 7, 35, 19, 35, 53, 33, 19, 33, 53, 33, 21, 3, 51, 21, 35, 1,254,169,209, 3,180,224,249, 1, 36,168,253,157, 3,
- 50,195,165,208,102,102, 7, 7, 2, 15,102, 1,139,132, 67,254, 52,102, 0, 0, 0, 1, 0,236,255, 59, 4,135, 5,213, 0, 13,
- 0, 0, 1, 33, 17, 51, 17, 51, 17, 51, 17, 62, 1, 53, 52, 36, 2,172,254, 64,141,190,142,215,235,254,252, 5,213,249,102, 6,
- 31,249,225, 3, 78, 17,221,184,190,232, 0, 0, 0, 2, 0,216, 1,194, 3, 40, 4, 18, 0, 3, 0, 11, 0, 0, 1, 51, 17, 7,
- 43, 1, 34, 38, 53, 52, 54, 51, 2,121,175,175,118, 2,125,172,173,126, 4, 18,253,177, 1,172,125,124,171, 0, 0, 2, 0,216,
- 1,194, 3, 40, 4, 18, 0, 3, 0, 11, 0, 0, 1, 39, 17, 59, 1, 50, 22, 21, 20, 6, 43, 1, 1,135,175,175,118,126,173,172,
-125, 2, 1,194, 1, 2, 79,171,124,125,172, 0,255,255, 0, 61,255,197, 3,195, 3,107, 18, 3, 0, 13, 0, 0,253,123, 0, 0,
- 0, 2, 1, 29,255, 18, 2, 66, 4, 35, 0, 3, 0, 9, 0, 0, 1, 35, 21, 51, 17, 35, 21, 19, 51, 3, 1,240,211,211,211,164,
-129, 82, 4, 35,254,253,217,172,254,192, 1, 64,255,255,255,167,254, 27, 6,199, 7,110, 16, 38, 5,172, 0, 0, 16, 6, 5,173,
- 0, 0, 0, 0,255,255, 0, 61,255,242, 3,195, 7,111, 18, 35, 0, 13, 0, 0,253,168, 16, 3, 0, 13, 0, 0, 1,127, 0, 0,
-255,255, 0,145,255, 66, 3, 67, 5,213, 16, 35, 0, 18, 0,145, 0, 0, 16, 35, 0, 17, 1,142, 0, 0, 16, 3, 0, 17,255,217,
- 4, 72, 0, 0,255,255, 0,217, 1,211, 5,219, 3, 49, 18, 2, 0, 97, 0, 0,255,255,255,167,254, 20, 6,199,255,126, 16, 7,
- 5,173, 0, 0,248, 16, 0, 0, 0, 1, 1, 56, 0,200, 5,124, 5, 13, 0, 23, 0, 0, 1, 17, 35, 17, 7, 39, 55, 33, 53, 33,
- 39, 55, 23, 17, 51, 17, 55, 23, 7, 33, 21, 33, 23, 7, 3,170,160,249,113,249,254,159, 1, 97,250,113,250,160,250,113,250, 1,
- 97,254,159,250,113, 2, 41,254,159, 1, 96,249,114,249,160,250,114,251, 1, 98,254,158,250,113,250,160,249,114, 0, 3, 0,250,
- 1, 50, 3,182, 4,182, 0, 3, 0, 7, 0, 11, 0, 0, 19, 53, 51, 21, 1, 53, 51, 21, 3, 53, 51, 21,250,200, 1, 44,200,200,
-200, 2,144,200,200,254,162,200,200, 2,188,200,200, 0, 0, 0,255,255, 0, 40, 4, 96, 5, 36, 5,213, 16, 39, 5,159, 1, 44,
- 0, 0, 16, 38, 5,159, 0, 0, 16, 39, 5,159, 3,132, 0, 0, 16, 7, 5,159, 2, 88, 0, 0, 0, 4, 1,102, 1, 0, 5, 78,
- 4,232, 0, 3, 0, 7, 0, 11, 0, 15, 0, 0, 1, 53, 51, 21, 33, 53, 51, 21, 1, 53, 51, 21, 3, 53, 51, 21, 1,102,200, 2,
- 88,200,253,168,200,200,200, 2,144,200,200,200,200,254,112,200,200, 3, 32,200,200, 0, 0, 0, 0, 5, 1,102, 0,246, 5, 78,
- 4,222, 0, 3, 0, 7, 0, 11, 0, 15, 0, 19, 0, 0, 1, 53, 51, 21, 19, 53, 51, 21, 3, 53, 51, 21, 1, 53, 51, 21, 3, 53,
- 51, 21, 2,246,200,200,200,200,200,252, 44,200,220,200, 2,134,200,200,254,112,200,200, 3, 32,200,200,252,244,200,200, 3, 12,
-200,200, 0, 0, 0, 2, 0,219, 0, 0, 1,174, 5,213, 0, 3, 0, 7, 0, 0, 19, 51, 21, 35, 17, 51, 21, 35,219,211,211,211,
-211, 5,213,254,252, 39,254, 0, 0, 4, 0,100,254,229, 5,253, 6,239, 0, 3, 0, 7, 0, 11, 0, 15, 0, 0, 19, 51, 21, 35,
- 37, 51, 21, 35, 1, 51, 21, 35, 17, 51, 21, 35,100,211,211, 4,198,211,211,253,157,211,211,211,211, 3,105,254,254,254, 4,132,
-254,249,242,254, 0, 5, 0,112, 0, 0, 6, 68, 5,213, 0, 3, 0, 7, 0, 11, 0, 15, 0, 27, 0, 0, 37, 53, 51, 21, 3, 53,
- 51, 21, 1, 53, 51, 21, 3, 53, 51, 21, 1, 17, 35, 17, 33, 53, 33, 17, 51, 17, 33, 21, 4,134,200,200,200,252, 44,200,220,200,
- 1,124,160,253,102, 2,154,160, 2,154,246,200,200, 3, 32,200,200,252,244,200,200, 3, 12,200,200,254,132,253,102, 2,154,160,
- 2,155,253,101,160, 0, 0, 0, 0, 3, 0,219, 0, 80, 1,174, 5, 62, 0, 3, 0, 7, 0, 11, 0, 0, 19, 51, 21, 35, 17, 51,
- 21, 35, 17, 51, 21, 35,219,211,211,211,211,211,211, 5, 62,254,253, 14,254, 2,246,254, 0, 0, 0, 4, 0,219, 0, 17, 1,174,
- 5,119, 0, 3, 0, 7, 0, 11, 0, 15, 0, 0, 19, 51, 21, 35, 17, 51, 21, 35, 17, 51, 21, 35, 17, 51, 21, 35,219,211,211,211,
-211,211,211,211,211, 2,137,254, 3,236,254,252,150,254, 3,240,254, 0, 0, 0, 0, 2, 0, 87, 2,141, 2,238, 5,240, 0, 13,
- 0, 25, 0, 0, 0, 34, 7, 6, 21, 20, 23, 22, 50, 55, 54, 53, 52, 47, 1, 50, 22, 21, 20, 6, 35, 34, 38, 53, 52, 54, 2, 8,
-202, 50, 51, 51, 50,202, 50, 51, 51,151,161,170,170,161,162,170,170, 5,151, 86, 86,172,173, 86, 86, 86, 86,173,172, 86,175,222,
-211,212,222,222,212,211,222, 0, 0, 2, 0,121, 2,156, 0,238, 6, 4, 0, 3, 0, 7, 0, 31, 64, 6, 9, 5, 1, 4, 0, 8,
- 16,220, 60,220, 60,204, 49, 0, 64, 6, 4, 7, 0, 3, 0, 8, 16,212,196, 16,220,204, 48, 19, 51, 17, 35, 17, 51, 21, 35,122,
-116,116,116,116, 5, 15,253,141, 3,103,130, 0, 0, 2, 0, 63, 2,156, 2,244, 5,223, 0, 2, 0, 13, 0,212, 64, 22, 0, 3,
- 11, 7,221, 5, 1, 9,247, 3,145, 14, 1, 12, 10, 0, 93, 6, 8, 4, 12, 14, 16,220,212, 60,196,236, 50, 17, 57, 49, 0, 16,
-244,252,212, 60,236, 50, 18, 57, 48, 1, 75,176, 14, 84, 75,176, 15, 84, 91, 75,176, 16, 84, 91, 75,176, 17, 84, 91, 75,176, 11,
- 84, 91, 75,176, 10, 84, 91, 88,189, 0, 14, 0, 64, 0, 1, 0, 14, 0, 14,255,192, 56, 17, 55, 56, 89, 0, 75,176, 17, 84, 75,
-176, 14, 84, 91, 88,189, 0, 14,255,192, 0, 1, 0, 14, 0, 14, 0, 64, 56, 17, 55, 56, 89, 64, 84, 11, 1, 29, 1, 47, 1, 57,
- 1, 73, 1, 70, 3, 89, 3,105, 3,139, 3,171, 3,187, 3, 11, 1, 0, 15, 1, 15, 2, 15, 5, 15, 6, 15, 7, 15, 8, 15, 11,
- 15, 12, 15, 13, 19, 0, 31, 1, 31, 2, 31, 5, 31, 6, 31, 7, 31, 8, 31, 11, 31, 12, 31, 13, 34, 0, 53, 0, 71, 0, 75, 13,
- 83, 0, 91, 13,101, 0,132, 0,165, 0,181, 0, 30, 93, 1, 93, 9, 1, 33, 3, 51, 17, 51, 21, 35, 21, 35, 53, 33, 53, 1,221,
-254,203, 1, 53, 22,166,135,135,144,254, 98, 5,102,254, 93, 2, 28,253,228,109,186,186,121, 0, 0, 1, 0,102, 2,141, 2,211,
- 5,223, 0, 32, 0, 0, 19, 33, 21, 33, 21, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 35, 34, 38, 39, 53, 22, 23, 22, 51, 50,
- 54, 52, 38, 35, 34, 6, 7,142, 1,254,254,121, 28, 29, 28, 28,161, 94, 94, 97, 96,176, 60,126, 66, 57, 62, 62, 69,111,130,130,
-111, 52,104, 54, 5,223, 95,204, 9, 4, 4, 77, 76,131,135, 75, 74, 18, 18,113, 27, 14, 13,102,174,102, 20, 21, 0, 2, 0, 92,
- 2,141, 2,243, 5,240, 0, 15, 0, 47, 0, 0, 1, 34, 7, 6, 21, 20, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38, 19, 21, 38, 39,
- 38, 35, 34, 7, 6, 7, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 35, 34, 38, 53, 52, 55, 54, 51, 50, 23, 22, 1,179, 88, 51,
- 51, 51, 51, 88, 87, 51, 51, 51, 51,171, 49, 50, 50, 49,128, 68, 68, 10, 38, 57, 58, 68,145, 84, 84, 88, 87,145,167,176,108,108,
-182, 49, 50, 50, 4,109, 52, 53, 91, 90, 52, 53, 53, 52, 90, 91, 53, 52, 1, 98,103, 20, 10, 11, 75, 76,153, 49, 26, 26, 76, 77,
-132,127, 79, 78,222,212,198,117,118, 8, 9, 0, 0, 1, 0,108, 2,156, 2,213, 5,223, 0, 6, 0, 0, 19, 33, 21, 1, 35, 1,
- 33,108, 2,105,254,164,136, 1, 72,254, 51, 5,223, 48,252,237, 2,228, 0, 0, 0, 3, 0, 89, 2,141, 2,236, 5,240, 0, 12,
- 0, 42, 0, 58, 0, 0, 0, 34, 7, 6, 21, 20, 22, 51, 50, 55, 54, 52, 39, 37, 38, 39, 38, 53, 52, 54, 32, 23, 22, 21, 20, 7,
- 6, 7, 22, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 53, 52, 55, 54, 55, 20, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 7,
- 6, 2, 0,186, 53, 53,106, 93, 92, 54, 53, 53,254,236, 84, 46, 47,164, 1, 30, 82, 81, 46, 47, 83, 90, 56, 53, 85, 86,158,159,
- 85, 86, 53, 54, 45, 47, 46, 85, 81, 49, 48, 48, 47, 83, 83, 48, 47, 4, 42, 44, 43, 75, 76, 86, 44, 43,150, 43, 93, 18, 49, 50,
- 72,100,116, 58, 58,100, 74, 48, 49, 18, 18, 58, 55, 80,121, 65, 65, 65, 65,121, 78, 57, 56,198, 63, 38, 37, 37, 36, 65, 63, 38,
- 37, 37, 36, 0, 0, 2, 0, 83, 2,141, 2,233, 5,240, 0, 31, 0, 46, 0, 0, 19, 53, 22, 23, 22, 51, 50, 55, 54, 55, 6, 7,
- 6, 35, 34, 38, 53, 52, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 19, 50, 54, 53, 52, 39, 38, 35, 34, 7, 6, 21,
- 20, 23, 22,145, 49, 50, 50, 48,129, 68, 67, 10, 35, 60, 57, 69,144,168, 87, 88,145,167, 87, 88,107,108,182, 49, 50, 50,204, 88,
-102, 51, 51, 88, 85, 53, 52, 52, 51, 2,174,103, 20, 11, 10, 75, 75,154, 47, 27, 26,152,132,129, 77, 78,111,111,212,198,117,118,
- 8, 9, 1,114,104, 92, 90, 52, 53, 53, 52, 90, 92, 52, 52, 0, 0, 1, 0,137, 2,156, 3,176, 5,107, 0, 11, 0, 0, 1, 17,
- 33, 21, 33, 17, 35, 17, 33, 53, 33, 17, 2, 81, 1, 95,254,161,105,254,161, 1, 95, 5,107,254,200, 95,254,200, 1, 56, 95, 1,
- 56, 0, 0, 0, 0, 1, 0,137, 3,212, 3,176, 4, 51, 0, 3, 0, 0, 19, 33, 21, 33,137, 3, 39,252,217, 4, 51, 95, 0, 0,
- 0, 2, 0,137, 3, 97, 3,176, 4,165, 0, 3, 0, 7, 0, 0, 19, 33, 21, 33, 21, 33, 21, 33,137, 3, 39,252,217, 3, 39,252,
-217, 4,165, 94,135, 95, 0, 0, 0, 1, 0,111, 2, 5, 1,144, 6, 2, 0, 13, 0, 0, 1, 14, 1, 16, 22, 23, 35, 38, 39, 38,
- 52, 55, 54, 55, 1,144, 84, 82, 82, 84,101, 94, 47, 47, 47, 46, 95, 6, 2,129,252,254,254,254,128,131,128,127,250,127,126,132,
- 0, 1, 0,103, 2, 5, 1,136, 6, 2, 0, 15, 0, 0, 19, 51, 22, 23, 22, 20, 7, 6, 7, 35, 54, 55, 54, 16, 39, 38,103,101,
- 95, 47, 46, 46, 47, 95,101, 84, 41, 42, 42, 41, 6, 2,132,126,127,250,127,128,131,128,127,127, 1, 2,126,126, 0, 1, 0,117,
- 2,156, 2,197, 5, 31, 0, 19, 0, 48, 64, 7, 21, 0, 3, 14, 10, 11, 20, 16,212,220, 60, 47,204,204, 75,176, 13, 81, 88,177,
- 21, 64, 56, 89, 49,178,127, 21, 1, 93, 0, 64, 6, 6, 17, 12, 2, 11, 20, 16,212, 60,196,212,204, 48, 1, 17, 35, 17, 52, 38,
- 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 2,196,116, 78, 78, 94,108,117,117, 41,113, 74,121,125, 4, 23,254,133,
- 1,119, 89, 89,107, 92,254,158, 2,115, 97, 56, 56,134, 0, 0,255,255, 0, 87,255,241, 2,238, 3, 84, 16, 7, 5,204, 0, 0,
-253,100, 0, 0,255,255, 0,137, 0, 0, 2,197, 3, 67, 16, 7, 0,123, 0, 0,253,100, 0, 0,255,255, 0, 94, 0, 0, 2,180,
- 3, 84, 16, 7, 0,116, 0, 0,253,100, 0, 0,255,255, 0, 98,255,241, 2,205, 3, 84, 16, 7, 0,117, 0, 0,253,100, 0, 0,
-255,255, 0, 63, 0, 0, 2,244, 3, 67, 16, 7, 5,206, 0, 0,253,100, 0, 0,255,255, 0,102,255,241, 2,211, 3, 67, 16, 7,
- 5,207, 0, 0,253,100, 0, 0,255,255, 0, 92,255,241, 2,243, 3, 84, 16, 7, 5,208, 0, 0,253,100, 0, 0,255,255, 0,108,
- 0, 0, 2,213, 3, 67, 16, 7, 5,209, 0, 0,253,100, 0, 0,255,255, 0, 89,255,241, 2,236, 3, 84, 16, 7, 5,210, 0, 0,
-253,100, 0, 0,255,255, 0, 83,255,241, 2,233, 3, 84, 16, 7, 5,211, 0, 0,253,100, 0, 0,255,255, 0,137, 0, 0, 3,176,
- 2,207, 16, 7, 5,212, 0, 0,253,100, 0, 0,255,255, 0,137, 1, 56, 3,176, 1,151, 16, 7, 5,213, 0, 0,253,100, 0, 0,
-255,255, 0,137, 0,197, 3,176, 2, 9, 16, 7, 5,214, 0, 0,253,100, 0, 0,255,255, 0,111,255,105, 1,144, 3,102, 16, 7,
- 5,215, 0, 0,253,100, 0, 0,255,255, 0,103,255,105, 1,136, 3,102, 16, 7, 5,216, 0, 0,253,100, 0, 0, 0, 1, 0, 86,
- 0, 0, 6,174, 5,214, 0, 35, 0, 0, 1, 14, 1, 35, 34, 0, 16, 0, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6, 16, 22, 51, 50,
- 54, 55, 17, 33, 21, 33, 17, 33, 21, 33, 17, 33, 21, 33, 3,221, 79,178, 99,254,254,219, 1, 37,254,101,177, 78, 76,173, 98,192,
-204,204,192, 98,173, 76, 2,196,253,211, 2, 22,253,234, 2, 58,253, 47, 1,184, 54, 54, 1, 55, 2, 28, 1, 55, 53, 54,159, 71,
- 70,234,254, 68,234, 70, 71, 2, 10,128,254,181,128,254,107,128, 0, 3, 0,115,255,166, 4,190, 6, 57, 0, 39, 0, 46, 0, 52,
- 0, 0, 1, 22, 23, 55, 51, 7, 22, 23, 21, 38, 39, 1, 51, 50, 54, 55, 21, 14, 1, 35, 34, 39, 7, 35, 55, 38, 39, 7, 35, 55,
- 38, 39, 38, 17, 16, 55, 54, 37, 55, 51, 7, 6, 7, 6, 17, 20, 23, 1, 38, 39, 1, 22, 23, 3,104, 65, 62, 30,155, 47, 40, 37,
- 58, 64,254,193, 18,119,211, 93, 97,216,121, 27, 26, 18,155, 25, 65, 57, 38,155, 65, 19, 17,178,178,160, 1, 8, 21,156,227,145,
- 88,125, 82, 2, 52, 62, 67,254,193, 53, 65, 5,235, 8, 19,105,165, 22, 28,213, 60, 41,251,151, 94, 95,211, 72, 72, 2, 63, 87,
- 18, 30,135,230, 18, 21,207, 1,103, 1,104,208,185, 20, 75,252, 31,112,157,254,216,238,148, 3,203, 19, 4,251,149, 40, 21, 0,
- 0, 1, 0, 96,255,228, 4,179, 5,240, 0, 44, 0, 0, 37, 54, 55, 54, 55, 21, 14, 1, 35, 32, 0, 17, 16, 0, 33, 50, 22, 23,
- 21, 46, 1, 35, 34, 2, 17, 16, 23, 22, 23, 17, 51, 21, 62, 1, 51, 50, 22, 31, 1, 46, 1, 35, 34, 6, 21, 3, 46, 97, 88,106,
- 93, 97,217,121,254,202,254,155, 1,101, 1, 54,123,217, 95, 93,212,119,234,249,124, 94,153,152, 48,154,110, 15, 38, 23, 1, 26,
- 60, 36,128,139,138, 7, 39, 47, 95,211, 72, 71, 1,158, 1,103, 1,104, 1,159, 71, 71,213, 95, 94,254,199,254,216,254,217,156,
-117, 30, 3, 93,157, 92, 89, 4, 5,170, 16, 15,182,171, 0, 0, 0, 1, 0,133, 0, 0, 4,203, 5,213, 0, 17, 0, 0, 1, 17,
- 33, 21, 33, 17, 33, 21, 33, 17, 51, 21, 35, 17, 35, 17, 35, 53, 1,113, 3, 90,253,112, 2, 80,253,176,250,250,202,236, 1,126,
- 4, 87,170,254, 72,170,254,181, 69,254,199, 1, 57, 69, 0, 0, 0, 1, 0,129, 0, 0, 4, 98, 5,240, 0, 35, 0, 0, 1, 17,
- 33, 21, 33, 53, 51, 17, 35, 53, 51, 53, 35, 53, 51, 53, 16, 54, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6, 29, 1, 33, 21, 33, 21,
- 33, 21, 2, 53, 2, 45,252, 31,236,191,191,199,199,214,232, 61,151, 79, 76,136, 61,148,116, 1,135,254,121, 1,143, 1,236,254,
-190,170,170, 1, 66,143,143,143, 95, 1, 5,243, 31, 29,182, 41, 41,155,212, 72,143,143,143, 0, 0, 1, 0,186,255,189, 7, 29,
- 4,171, 0, 42, 0, 0, 1, 22, 23, 62, 1, 51, 50, 22, 21, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 52, 39, 1, 35, 1,
- 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 23, 55, 51, 3,204, 61, 32, 69,192,130,175,190,185,114,117,143,166,185,
- 14,254,240,128, 1, 59, 53, 81,141,166,185,185, 63,176,121, 74, 60, 22,128, 4, 33, 59, 93,124,118,245,226,253, 92, 2,158,161,
-156,190,164,253,135, 2,158, 82, 60,252,145, 3,250, 36,191,163,253,135, 4, 96,174,103, 98, 23, 71, 0, 0, 0, 0, 5, 0,117,
- 0, 0, 5,135, 5,213, 0, 2, 0, 6, 0, 34, 0, 38, 0, 41, 0, 0, 1, 39, 21, 19, 39, 35, 21, 3, 33, 19, 51, 17, 51, 17,
- 51, 21, 35, 21, 51, 21, 35, 17, 33, 3, 35, 17, 35, 17, 35, 53, 51, 53, 35, 53, 51, 5, 23, 51, 53, 3, 23, 53, 2, 75, 79,182,
- 56,126,196, 1, 16,211,229,196,195,195,195,195,254,240,211,229,196,195,195,195,195, 2, 18, 56,126, 79, 79, 3,175,206,206,254,
-242,147,147, 3, 52,253,218, 2, 38,253,218,123,147,123,253,218, 2, 38,253,218, 2, 38,123,147,123,123,147,147,254,242,206,206,
- 0, 2, 0,201,255,227, 9,206, 5,213, 0, 8, 0, 80, 0, 0, 1, 17, 51, 50, 54, 53, 52, 38, 35, 1, 6, 7, 6, 43, 1, 17,
- 35, 17, 33, 50, 23, 22, 23, 51, 17, 51, 17, 33, 21, 33, 17, 20, 22, 59, 1, 53, 30, 1, 51, 50, 54, 53, 52, 38, 47, 1, 46, 1,
- 53, 52, 54, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6, 21, 20, 22, 31, 1, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 35, 34, 38, 53,
- 17, 1,135,239,133,145,145,133, 1,221, 6,113,122,236,239,190, 1,173,236,122, 87, 24, 81,174, 1,101,254,155, 71,108,171, 96,
-187, 91,122,132, 95,161, 60,161,143,211,194, 96,169, 72, 74,158, 85,129,129, 93,139, 59,185,155,233,203, 85,183,102,171,201,152,
- 5, 47,253,207,146,135,134,146,254,204,200,106,113,253,168, 5,213,113, 82,136, 1, 62,254,194,143,253,160,137, 78, 35, 53, 53,
- 89, 81, 75, 80, 37, 15, 36,149,130,158,172, 30, 30,174, 40, 40, 84, 84, 64, 73, 33, 14, 42,153,137,156,182, 35, 35, 1,159,210,
- 2, 96, 0, 0, 0, 2, 0,201,255,227, 8, 51, 5,213, 0, 7, 0, 69, 0, 0, 1, 17, 51, 50, 54, 16, 38, 35, 1, 23, 35, 3,
- 46, 1, 43, 1, 17, 35, 17, 33, 32, 22, 21, 20, 6, 7, 30, 1, 31, 1, 22, 23, 22, 51, 50, 54, 53, 52, 38, 47, 1, 46, 1, 53,
- 52, 54, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6, 21, 20, 22, 31, 1, 30, 1, 21, 20, 6, 35, 34, 39, 38, 1,147,254,146,149,149,
-146, 2,191, 4,217,191, 74,139,120,220,202, 1,200, 1, 0,252,131,125, 65,123, 62, 91, 98, 96, 99, 97,130,140,101,171, 64,171,
-152,224,206,102,180, 76, 78,168, 90,137,137, 98,148, 63,196,165,247,216, 90, 97, 44, 5, 47,253,238,135, 1, 6,133,250,216, 7,
- 1,127,150, 98,253,137, 5,213,214,216,141,186, 36, 22,144,126,180, 51, 25, 27, 89, 81, 75, 80, 37, 15, 36,149,130,158,172, 30,
- 30,174, 40, 40, 84, 84, 64, 73, 33, 14, 42,153,137,156,182, 18, 8, 0, 0, 0, 0, 6, 0, 59, 0, 0, 7,174, 5,213, 0, 31,
- 0, 34, 0, 38, 0, 41, 0, 45, 0, 49, 0, 0, 19, 39, 35, 53, 51, 39, 51, 23, 33, 55, 51, 23, 33, 55, 51, 7, 51, 21, 35, 7,
- 51, 21, 35, 3, 35, 3, 35, 3, 35, 3, 35, 53, 5, 27, 1, 1, 23, 33, 55, 1, 27, 2, 7, 51, 39, 33, 23, 33, 55,182, 30, 93,
- 58, 49,204, 48, 2, 19, 48,227, 48, 2, 19, 48,205, 49, 57, 93, 29,122,158,225,254,218,195,220,254,224,159, 4,192,165,165,254,
-117, 29, 1,145, 29,251, 32,165,165,229, 29,125, 28,253, 76, 29, 1,145, 29, 4, 15,117,143,194,194,194,194,194,194,143,117,143,
-252,128, 3,128,252,128, 3,128,143,143,253,103, 2,153, 1, 4,117,117,254,252,253,103, 2,153, 1, 4,117,117,117,117, 0, 0,
- 0, 2, 0, 95,255,227, 5,241, 5,213, 0, 13, 0, 27, 0, 0, 19, 37, 32, 0, 25, 1, 35, 17, 52, 38, 35, 33, 17, 35, 41, 1,
- 34, 0, 25, 1, 51, 17, 20, 22, 51, 33, 3, 51, 95, 2, 7, 0,255, 1, 6,184,157,176,254,177,184, 5,142,253,253,255,254,250,
-184,157,176, 1, 83, 4,184, 5,210, 3,254,214,254,220,254,145, 1, 86,240,211,250,178, 1, 42, 1, 36, 1,111,254,170,240,211,
- 5, 78, 0, 0,255,255, 0,129,254,192, 5, 4, 6, 20, 18, 34, 0,211, 16, 0, 16, 3, 2, 38, 0,138, 0, 0, 0, 1, 0, 0,
-255,227, 4,143, 5,240, 0, 49, 1, 28, 64, 58, 32, 18,211, 34, 16, 43, 7,211, 9, 25,161, 26,174, 22,149, 29, 1,161, 0,174,
- 4,149, 47,145, 29,140, 41, 9, 50, 43, 34, 33, 41, 35, 38, 18, 16, 10, 3, 13, 9, 17, 8, 44, 32, 38, 19, 7, 17, 8, 17, 13,
- 28, 25, 0, 38, 42, 33, 47, 60,212,196, 50,252,196,196, 18, 57, 57, 18, 57, 57, 17, 18, 57, 17, 23, 57, 18, 57, 57, 17, 57, 57,
- 49, 0, 16,196, 50,228,244,236,244,236, 16,238,246,238, 16,238, 50,221, 60,238, 50, 48, 1, 75,176, 9, 84, 75,176, 12, 84, 91,
- 75,176, 13, 84, 91, 75,176, 15, 84, 91, 75,176, 23, 84, 91, 75,176, 24, 84, 91, 88,189, 0, 50,255,192, 0, 1, 0, 50, 0, 50,
- 0, 64, 56, 17, 55, 56, 89, 64,122, 14, 0, 14, 1, 11, 2, 11, 49, 84, 20,105, 12,108, 14,110, 15,111, 16,111, 17,111, 18,111,
- 19,105, 20,107, 31,111, 32,111, 33,111, 34,111, 35,110, 36,108, 37,105, 39,105, 45,159, 7,159, 8,159, 9,159, 10,159, 11,159,
- 12,159, 13,159, 14,159, 15,159, 16,159, 17,159, 18,159, 19,150, 31,159, 32,159, 33,159, 34,159, 35,159, 36,159, 37,159, 38,159,
- 39,159, 40,159, 41,159, 42,159, 43,159, 44,157, 45, 50, 0, 8, 0, 9, 16, 8, 16, 9, 32, 8, 32, 9, 85, 21, 83, 30,106, 21,
-103, 31, 10, 93, 0, 93, 1, 21, 46, 1, 35, 34, 6, 7, 33, 7, 33, 14, 1, 21, 20, 22, 23, 33, 7, 33, 30, 1, 51, 50, 54, 55,
- 21, 14, 1, 35, 34, 0, 3, 35, 55, 51, 52, 38, 53, 52, 54, 53, 35, 55, 51, 18, 0, 51, 50, 22, 4,143, 91,169,102,157,202, 32,
- 2, 65, 55,253,230, 2, 1, 1, 2, 1,190, 56,254,138, 32,202,157,102,169, 91, 89,185, 96,237,254,203, 40,211, 55,139, 1, 1,
-194, 55,156, 40, 1, 54,236, 98,185, 5, 98,213,105, 90,200,187,123, 24, 46, 35, 32, 46, 24,123,187,202, 90,105,211, 72, 72, 1,
- 34, 1, 3,123, 23, 47, 32, 35, 47, 23,123, 1, 1, 1, 34, 71, 0, 1, 0, 40, 0, 0, 5, 22, 5,213, 0, 17, 0, 0, 19, 17,
- 51, 17, 1, 51, 1, 33, 21, 33, 1, 35, 1, 17, 35, 17, 35, 53,191,189, 2,117,243,253,128, 1,170,254, 88, 2,176,249,253, 95,
-189,151, 3, 84, 2,129,253,137, 2,119,253,127,115,253, 31, 2,207,253, 49, 2,225,115, 0, 0, 0, 1, 0, 20, 0, 0, 5, 3,
- 5,213, 0, 23, 0, 0, 1, 17, 33, 53, 33, 21, 33, 17, 55, 23, 5, 21, 55, 23, 5, 17, 35, 17, 7, 39, 37, 53, 7, 39, 2, 38,
-253,238, 4,239,253,238,229, 80,254,203,230, 80,254,202,203,231, 77, 1, 52,232, 77, 3,141, 1,158,170,170,254,241,161,111,216,
-136,162,111,217,253,184, 1,186,161,110,217,136,162,110, 0, 0, 0, 4, 0, 27,254,117, 8, 90, 5,200, 0, 23, 0, 35, 0, 48,
- 0, 59, 0, 0, 51, 55, 51, 54, 55, 19, 34, 6, 29, 1, 7, 16, 55, 54, 33, 51, 50, 0, 21, 16, 3, 6, 4, 33, 55, 51, 32, 0,
- 17, 52, 38, 43, 1, 3, 2, 6, 1, 19, 26, 1, 51, 32, 17, 16, 0, 35, 34, 39, 3, 19, 22, 51, 50, 18, 53, 52, 35, 34, 3, 7,
- 28,148, 56,116, 42,172,130,150,194,160,160, 1,138, 64,226, 1, 4,238,124,254,172,254,212, 48,118, 1, 24, 1, 68,150,128, 80,
-134, 52, 74, 2,140,160, 74,230,192, 1, 72,254,178,224, 52, 92, 86,124, 74, 74,132,176,150,156, 68, 26,160, 82,211, 3, 95,166,
-145, 24, 94, 1, 17,159,161,254,234,241,254,119,254,218,152,122,160, 1,168, 1,110,174,208,253, 88,254,255,161,253,139, 3, 44,
- 1,115, 1, 66,254,165,254,206,254, 55, 35,254, 82, 2,109, 78, 1, 67,246,245,254,185,130, 0, 0, 4, 0, 68, 0, 0, 4,162,
- 5,213, 0, 29, 0, 36, 0, 43, 0, 49, 0, 0, 19, 53, 35, 53, 51, 17, 33, 50, 23, 22, 23, 51, 21, 35, 22, 20, 7, 51, 21, 35,
- 6, 7, 6, 43, 1, 17, 35, 17, 35, 53, 5, 33, 21, 51, 50, 55, 54, 1, 33, 38, 39, 38, 43, 1, 5, 33, 21, 33, 54, 52,151, 82,
- 82, 1,200,251,129, 76, 31, 92, 72, 1, 1, 71, 90, 31, 77,129,251,254,202, 83, 3, 28,254, 1,254,141, 77, 23,254, 17, 1,255,
- 16, 23, 77,141,254, 2, 35,253,221, 2, 35, 2, 3,236, 86,116, 1, 31,113, 68,106,116, 21, 44, 21,116,107, 68,113,253,168, 3,
-120,116,116,122, 73, 22, 1, 89, 27, 21, 73,237, 86, 21, 44, 0, 0, 1, 0,117,255,227, 5,188, 5,240, 0, 54, 0, 0, 1, 54,
- 55, 54, 55, 33, 53, 33, 54, 55, 54, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 4, 21, 20, 7, 51, 21, 33, 6, 15, 1, 33,
- 21, 33, 6, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 32, 36, 53, 52, 55, 35, 53, 1, 92, 4, 22, 74,128,254, 53, 3,146, 12,
- 13, 59,179,165, 95,204,115,114,218,105,245, 1, 23, 25,175,254,253,103,216, 67, 2,133,252, 83, 49,188,173,114,236,123,128,239,
-106,254,231,254,221, 18,168, 2,161, 7, 22, 74, 44,123, 8, 9, 43,107,118,128, 54, 55,197, 38, 38,228,198, 85, 66,123, 92, 42,
- 13,123, 59, 94,126,136, 70, 69,208, 47, 48,224,217, 75, 63,123, 0, 2, 0,170,254,211, 4,119, 6, 20, 0, 33, 0, 44, 0, 0,
- 1, 21, 38, 39, 38, 35, 17, 50, 55, 54, 55, 21, 6, 7, 6, 7, 17, 35, 17, 38, 39, 38, 17, 53, 16, 55, 54, 55, 53, 55, 21, 22,
- 23, 22, 1, 3, 6, 7, 6, 7, 6, 23, 22, 23, 22, 4,119, 91, 84, 85,101,101, 85, 84, 91, 89, 92, 89, 91,100,185,115,212,212,
-121,178,101, 93, 89, 92,254,138, 1, 91, 67,118, 15, 14, 14, 25,108, 67, 4,164,213,105, 45, 45,251,241, 45, 45,105,211, 72, 36,
- 34, 2,254,240, 1, 21, 23,117,214, 1, 57, 17, 1, 66,203,116, 23,230, 2,226, 2, 34, 35,251,163, 3,249, 23, 66,117,170,161,
-102,180,108, 67, 0, 1,252, 61, 4,122,255,203, 6, 20, 0, 8, 0, 0, 3, 33, 23, 35, 39, 55, 51, 7, 33, 53,253, 27,132,126,
-175,175,126,132, 2,229, 5, 21,155,205,205,155, 0, 1,252, 61, 4,122,255,203, 6, 20, 0, 8, 0, 0, 1, 53, 33, 39, 51, 23,
- 7, 35, 55,252, 61, 2,229,132,126,175,175,126,132, 5, 21,100,155,205,205,155, 0, 4, 0, 67,255,207, 7,216, 6, 4, 0, 10,
- 0, 36, 0, 40, 0, 66, 0, 0, 1, 34, 6, 21, 20, 22, 51, 50, 54, 61, 1, 55, 17, 35, 53, 14, 1, 35, 34, 38, 53, 52, 54, 51,
- 23, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 37, 51, 1, 35, 1, 21, 46, 1, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 21,
- 14, 1, 35, 34, 38, 53, 52, 54, 51, 50, 22, 2, 15,160,112, 83, 72,102,127,188,188, 3,153,109,141,166,205,198,169,111,103, 68,
-129, 99, 92,148, 71,194,193, 2,176,216,252, 68,216, 5,169, 94,111, 56,121,137,137,121, 56,111, 94, 73,130, 73,202,236,238,209,
- 67,128, 3,246, 66, 82, 67, 73,148,130, 10, 77,254, 13, 62, 5, 79,158,129,150,155, 6, 87, 92, 32, 55,178, 36, 30,202,250,249,
-203, 3,132,178, 52, 30,156,148,147,157, 31, 52,177, 34, 27,250,209,212,249, 27,255,255, 0,195,255,240, 8,140, 5,240, 16, 38,
- 0,114, 0, 0, 16, 71, 0, 38, 3, 70, 0, 12, 65,117, 62, 82, 0, 2,255,214, 0, 0, 5, 24, 5,213, 0, 8, 0, 43, 0,153,
-184, 0, 44, 47,184, 0, 45, 47,184, 0, 21,220,184, 0, 0,220,184, 0, 44, 16,184, 0, 40,208,184, 0, 40, 47,184, 0, 4,220,
- 65, 27, 0, 22, 0, 4, 0, 38, 0, 4, 0, 54, 0, 4, 0, 70, 0, 4, 0, 86, 0, 4, 0,102, 0, 4, 0,118, 0, 4, 0,134,
- 0, 4, 0,150, 0, 4, 0,166, 0, 4, 0,182, 0, 4, 0,198, 0, 4, 0,214, 0, 4, 0, 13, 93, 65, 5, 0,229, 0, 4, 0,
-245, 0, 4, 0, 2, 93,184, 0, 0, 16,184, 0, 9,208,184, 0, 21, 16,184, 0, 11,208,184, 0, 21, 16,184, 0, 31,208,184, 0,
- 0, 16,184, 0, 35,208, 0,184, 0, 10, 47,186, 0, 33, 0, 34, 0, 3, 43,184, 0, 33, 16, 48, 49, 1, 6, 7, 6, 21, 20, 23,
- 22, 23, 17, 53, 51, 21, 22, 23, 22, 23, 21, 38, 39, 38, 39, 17, 54, 55, 54, 55, 21, 6, 7, 6, 7, 21, 33, 21, 33, 53, 38, 39,
- 38, 17, 16, 55, 54, 1,119, 73, 51, 99, 99, 51, 73,202, 56, 54, 81, 76, 78, 78, 55, 56, 56, 55, 78, 78, 77, 82, 52, 56, 2,215,
-252, 95,161,107,149,151,105, 4,179, 29, 58,114,205,205,113, 59, 29, 3,212,122,110, 4, 11, 18, 35,172, 43, 22, 15, 4,252,164,
- 4, 16, 21, 43,170, 36, 18, 11, 4, 42,170,222, 32,114,159, 1, 14, 1, 18,157,110, 0, 0, 0, 0, 4, 0, 60,255,207, 7,229,
- 6, 4, 0, 25, 0, 29, 0, 40, 0, 50, 0, 0, 1, 21, 46, 1, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38,
- 53, 52, 54, 51, 50, 22, 37, 51, 1, 35, 1, 34, 6, 21, 20, 22, 51, 50, 54, 16, 38, 36, 32, 22, 21, 20, 6, 32, 38, 53, 52, 3,
- 6, 94,111, 56,121,137,137,121, 56,111, 94, 73,130, 73,202,236,238,209, 67,128, 2,221,216,252, 68,216, 4,107, 97,118,118, 97,
- 96,119,119,254,223, 1,130,218,218,254,126,217, 5,151,178, 52, 30,156,148,147,157, 31, 52,177, 34, 29,252,209,212,249, 27, 75,
-249,203, 3, 4,158,146,145,159,160, 1, 32,160,157,248,213,212,248,248,212,213, 0, 3, 0, 60,255,207, 8, 77, 6, 4, 0, 19,
- 0, 45, 0, 49, 0, 0, 1, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 35, 53, 14, 1, 35, 34, 38, 1, 21, 46, 1, 35, 34,
- 6, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 53, 52, 54, 51, 50, 22, 37, 51, 1, 35, 5, 92,188, 81, 80, 99,117,188,
-188, 6,144, 96,158,161,253,170, 94,111, 56,121,137,137,121, 56,111, 94, 73,130, 73,202,236,238,209, 67,128, 2,221,216,252, 68,
-216, 1, 76, 2, 16,253,245,114,105,129,117, 1,240,252,144, 68, 9, 80,193, 4,255,178, 52, 30,156,148,147,157, 31, 52,177, 34,
- 29,252,209,212,249, 27, 75,249,203, 0, 0, 0,255,255, 0,195, 0, 0, 7, 38, 5,240, 16, 34, 0,114, 0, 0, 16, 3, 0, 41,
- 3, 3, 0, 0, 0, 1, 0, 72, 0, 0, 4,135, 6, 20, 0, 25, 0, 0, 1, 3, 35, 19, 62, 1, 53, 52, 38, 35, 34, 6, 7, 3,
- 35, 1, 51, 3, 62, 1, 51, 50, 22, 21, 20, 6, 4,117,131,185,131, 9, 10,106, 95,148,217, 32,121,184, 1, 47,184,119, 70,218,
-120,148,163, 9, 2,164,253, 92, 2,157, 47, 72, 21, 84, 94,200,166,253,147, 6, 20,253,156, 94,109,160,145, 36, 82, 0, 0, 0,
- 0, 1, 0, 34, 0, 0, 4, 98, 6, 20, 0, 29, 0, 0, 1, 54, 55, 54, 51, 50, 23, 22, 7, 3, 35, 19, 54, 38, 35, 34, 6, 7,
- 3, 35, 19, 35, 55, 51, 55, 51, 7, 33, 7, 33, 1,148, 85, 99,100,117,193, 76, 75, 45,131,184,130, 31, 93,124,149,209, 32,123,
-185,249,154, 25,154, 28,185, 28, 2, 64, 25,253,192, 3,178,101, 50, 50,119,120,232,253, 92, 2,158,159,158,190,164,253,135, 5,
- 4,125,147,147,125, 0, 0, 0, 0, 2, 0,106,255,227, 5, 70, 5,240, 0, 33, 0, 50, 0, 0, 63, 1, 54, 51, 50, 23, 22, 51,
- 50, 55, 54, 53, 52, 39, 38, 53, 52, 63, 1, 6, 21, 20, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 35, 34, 19, 54, 51, 50, 23, 22,
- 51, 50, 55, 7, 6, 35, 34, 38, 35, 34, 7,106,140,111,117, 57,132,144, 33,121,100, 71, 62, 80, 80,213, 80, 80, 53,202,186,242,
- 54,129,133, 56, 94,110,109,141,123,127,122,128,125,125,200,139,111,143,214,143,122,128, 90,165, 39, 80, 86,137, 97, 75,126,112,
-146,109,100,160,140,139,121,107,148, 98,188, 94,242,222, 79, 80, 5, 54, 56, 49, 47, 58,170, 58, 98, 58, 0, 0, 0, 2,255,228,
-255,227, 2,210, 5,240, 0, 28, 0, 38, 0, 0, 1, 22, 51, 50, 55, 51, 6, 7, 6, 35, 34, 39, 7, 35, 54, 55, 38, 53, 52, 55,
- 18, 55, 54, 51, 50, 21, 6, 7, 2, 1, 18, 19, 54, 53, 52, 35, 6, 3, 6, 1, 48, 41, 87, 58, 75,133, 60, 70, 76, 70,156, 63,
- 75,156,108, 80, 10, 31,117,104, 72,123,125, 1, 18, 72,254,184,187, 57, 30, 25,109, 97, 27, 1, 12,200,115,102, 53, 57,139,110,
-147,137, 78, 85,152,152, 2, 59,117, 81,173, 78, 93,254,131,254,247, 1, 92, 1, 22,147, 38, 69, 87,253,250,145,255,255, 0,201,
- 0, 0, 8,240, 5,240, 16, 39, 0,124, 5,140, 0, 0, 16, 6, 0, 49, 0, 0, 0, 4, 1, 27, 0, 0, 6,229, 5,202, 0, 12,
- 0, 25, 0, 34, 0, 45, 0, 0, 1, 22, 17, 16, 0, 33, 32, 0, 3, 16, 0, 33, 32, 6, 33, 32, 0, 17, 18, 0, 33, 32, 0, 17,
- 16, 39, 5, 17, 51, 50, 54, 53, 52, 38, 35, 37, 33, 50, 22, 21, 20, 6, 43, 1, 17, 35, 6, 11,218,254, 74,254,209,254,207,254,
- 82, 6, 1,180, 1, 49, 1, 50, 41,254,247,254,250,254,134, 5, 1,117, 1, 6, 1, 7, 1,121,187,253,211,178, 99,107,107, 99,
-254,193, 1, 63,176,180,180,176,178,141, 4,241,219,254,206,254,208,254, 76, 1,180, 1, 48, 1, 48, 1,182,101,254,133,254,249,
-254,251,254,135, 1,121, 1, 5, 1, 9,187,119,254,175, 88, 81, 80, 88,100,137,131,133,135,254,152, 0, 0, 0, 0, 2, 0,110,
-254, 59, 5, 67, 3,246, 0, 48, 0, 60, 0, 0, 1, 6, 21, 20, 23, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 35, 34, 39, 54,
- 55, 22, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 1, 18, 21, 20, 7, 6, 35, 34, 39, 38, 53, 16, 55, 38, 53, 52, 55, 3, 6, 21,
- 20, 23, 22, 23, 50, 55, 54, 53, 52, 2, 53,136, 31, 91,171,219,132,131, 70, 73,156,121,174,101, 76, 18, 9, 41,113,122, 93, 69,
- 38, 32, 74,189,254,159,135, 69, 89,131,113, 58, 63,223, 46,232,148,129, 31, 48, 46, 65, 28, 32, 3,198,130,190, 77,107,101,148,
-189, 76, 80,171,218,215,167, 60, 43, 29, 40,140,104,195,124, 72, 61,254,121,254,222,124,157,110,142, 61, 66,134, 1, 11,252,158,
-127,238,164,252,239,198,123,117, 46, 70, 1, 47, 52, 95, 78, 0, 0, 2, 0, 83,255,227, 6,108, 5,241, 0, 73, 0, 88, 0, 0,
- 5, 38, 53, 52, 39, 38, 35, 34, 15, 1, 21, 20, 7, 6, 35, 34, 39, 38, 53, 22, 23, 20, 23, 22, 50, 55, 54, 53, 17, 52, 39, 38,
- 35, 34, 7, 6, 20, 23, 22, 51, 23, 34, 39, 38, 53, 52, 55, 54, 51, 50, 23, 22, 23, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 7,
- 50, 23, 22, 23, 22, 21, 20, 23, 55, 23, 1, 22, 21, 17, 55, 54, 55, 54, 53, 52, 39, 38, 35, 34, 7, 5, 2, 82, 22, 40, 79, 42,
- 92,120,103,103,140,141,102,103, 45, 46, 64, 64,144, 63, 64, 64, 63, 92, 81, 65, 64, 64, 64, 83, 54,151,102,103,103,102,151,162,
-101, 30, 16,211,187,112, 47, 36,126, 65, 66,125, 58, 49, 36, 27, 32, 45,144, 42,252,164, 21,154,144, 77, 74, 74, 24, 31, 64,102,
- 29,183,159,140, 91,166, 43, 56,199,206,118,117,117,118,176, 12, 12,122, 86, 87, 87, 87,150, 2,155,149, 88, 87, 87, 86,202, 86,
- 87, 92,117,118,156,157,117,117,117, 35, 32, 98, 87, 14, 49,177, 87,123,124, 94, 49, 36,104,123,131,128,118, 67, 91, 4, 83, 75,
- 92,254,149, 71, 67,104,102,121,151, 32, 10, 47, 0, 5, 0,118, 0, 0, 5,225, 5,213, 0, 7, 0, 27, 0, 31, 0, 39, 0, 48,
- 0, 0, 1, 22, 23, 19, 51, 3, 38, 39, 32, 43, 1, 17, 33, 17, 33, 32, 22, 21, 20, 6, 7, 30, 1, 23, 19, 33, 3, 38, 1, 17,
- 51, 17, 1, 17, 38, 35, 33, 17, 33, 50, 55, 54, 55, 54, 53, 52, 39, 38, 39, 3, 46, 78,102,142,200,142, 96, 90,254,164,120, 20,
-254,110, 2,168, 1, 0,252,132,124, 64,124, 62,204,254, 72,190, 74,253,186,198, 1,238, 34, 38,254,194, 1, 62, 38,138, 58, 40,
- 94, 94, 38, 60, 2,119, 47,201,254,229, 1, 27,192, 56,253,137, 5,213,214,216,141,186, 36, 22,144,126,254,104, 1,127,150, 3,
- 92,250,243, 5, 13,253,110, 2,142, 4,253,106, 27, 21, 37, 84,164,158, 88, 36, 20, 0, 0, 0, 0, 2, 0,169, 0, 0, 6,131,
- 5,213, 0, 8, 0, 31, 0,167,184, 0, 32, 47,184, 0, 33, 47,184, 0, 32, 16,184, 0, 14,208,184, 0, 14, 47,184, 0, 13,220,
-184, 0, 0,208,184, 0, 33, 16,184, 0, 19,220,184, 0, 5,220, 65, 5, 0,234, 0, 5, 0,250, 0, 5, 0, 2, 93, 65, 27, 0,
- 25, 0, 5, 0, 41, 0, 5, 0, 57, 0, 5, 0, 73, 0, 5, 0, 89, 0, 5, 0,105, 0, 5, 0,121, 0, 5, 0,137, 0, 5, 0,
-153, 0, 5, 0,169, 0, 5, 0,185, 0, 5, 0,201, 0, 5, 0,217, 0, 5, 0, 13, 93,184, 0, 9,208,184, 0, 9, 47,186, 0,
- 30, 0, 14, 0, 19, 17, 18, 57, 0,184, 0, 13, 47,184, 0, 26, 47,184, 0, 29, 47,186, 0, 15, 0, 0, 0, 3, 43,184, 0, 15,
- 16,186, 0, 2, 0, 11, 0, 3, 43,184, 0, 2, 16, 48, 49, 1, 17, 51, 50, 54, 53, 52, 38, 35, 1, 6, 43, 1, 17, 35, 17, 33,
- 50, 4, 21, 20, 7, 23, 55, 51, 9, 1, 35, 11, 1, 35, 1, 1,115,254,141,154,154,141, 1, 32,115,173,254,202, 1,200,251, 1,
- 1, 78,174,190,232,254,205, 1, 67,233,207,212,232, 1, 73, 5, 47,253,207,146,135,134,146,253, 95, 54,253,168, 5,213,227,219,
-172,107,219,234,254,134,254,107, 1, 4,254,252, 1,149, 0, 0, 0, 2, 1, 3, 3,139, 6, 40, 5,216, 0, 39, 0, 52, 0, 0,
- 1, 21, 46, 1, 35, 34, 6, 21, 20, 22, 31, 1, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 47, 1,
- 46, 1, 53, 52, 54, 51, 50, 22, 55, 51, 27, 1, 51, 17, 35, 17, 3, 35, 3, 17, 35, 2,230, 85, 87, 39, 65, 71, 47, 69, 56,112,
-105,144,140, 52,115, 71, 91,100, 47, 69, 75, 55, 63, 56,112, 99,138,124, 51,105,208,184,161,162,184,138,140,135,141,137, 5,183,
- 89, 34, 19, 42, 47, 40, 32, 11, 9, 18, 86, 65, 79, 91, 19, 21, 96, 42, 24, 44, 50, 44, 42, 10, 9, 18, 77, 61, 72, 92, 15, 5,
-254,172, 1, 84,253,200, 1,148,254,216, 1, 40,254,108, 0, 0, 0, 3,255,252, 0, 0, 8, 48, 4, 96, 0, 7, 0, 19, 0, 25,
- 0, 0, 3, 33, 21, 33, 17, 35, 17, 33, 5, 33, 21, 33, 17, 33, 21, 33, 17, 33, 21, 33, 1, 51, 17, 33, 21, 33, 4, 3,179,254,
-114,152,254,115, 2,224, 2,111,254, 22, 1,213,254, 43, 1,246,253,133, 2,239,133, 1,224,253,155, 4, 96,128,252, 32, 3,224,
- 96,102,254,247,102,254,187,102, 3,128,252,230,102, 0, 0, 0, 0, 2, 1, 39, 3,147, 6, 70, 5,213, 0, 12, 0, 20, 0, 62,
- 64, 33, 1, 6, 7, 16, 10, 4, 18, 14, 9, 3, 6,201, 13, 2, 0,129, 21, 1, 9, 5, 98, 3, 9, 98, 11, 13, 99, 15, 98, 19,
- 99, 17, 21, 16,212,228,252,228,212,236,212,236, 17, 57, 49, 0, 16,244, 60, 60,236, 23, 50,212, 60, 60,196, 17, 57, 48, 1, 27,
- 1, 51, 17, 35, 17, 3, 35, 3, 17, 35, 17, 35, 21, 35, 17, 35, 17, 35, 53, 4, 74,174,164,170,113,195, 55,203,114,113,203,114,
-201, 5,213,255, 0, 1, 0,253,190, 1,228,254,209, 1, 47,254, 28, 2, 66, 94,254, 28, 1,228, 94, 0, 0, 0,255,255, 0, 78,
- 0, 0, 5,207, 5,231, 16, 6, 2,199, 0, 0, 0, 1, 0, 78,255,227, 5,207, 5,202, 0, 30, 0, 0, 1, 53, 33, 21, 22, 18,
- 21, 20, 0, 32, 0, 53, 52, 18, 55, 53, 33, 21, 33, 6, 2, 21, 16, 0, 33, 32, 0, 17, 52, 2, 39, 5,207,253,168,177,198,254,
-248,254, 80,254,247,199,178,253,168, 1, 63,158,145, 1,127, 1, 49, 1, 47, 1,129,142,161, 5, 24,178,178, 97,254,180,202,240,
-254,222, 1, 35,239,202, 1, 76, 97,178,178,139,254,214,184,254,194,254,118, 1,137, 1, 53,194, 1, 40,141, 0,255,255, 0,201,
- 0, 0, 5,106, 5,213, 16, 6, 0, 46, 0, 0,255,255, 0, 16, 0, 0, 5,104, 7,109, 16, 6, 0,135, 0, 0, 0, 2, 0,125,
-255,231, 6, 89, 5, 45, 0, 26, 0, 41, 0, 0, 37, 22, 23, 22, 32, 55, 54, 55, 51, 6, 7, 6, 32, 36, 2, 53, 52, 18, 36, 51,
- 50, 4, 18, 21, 33, 34, 21, 53, 20, 51, 33, 50, 53, 17, 38, 39, 38, 35, 34, 7, 6, 7, 1,144, 67, 93,150, 1, 74,152,106, 77,
-111, 95,142,179,254,122,254,155,198,201, 1,103,190,189, 1,103,202,251, 74, 19, 19, 3,144, 20, 70, 95,152,159,160,152, 95, 68,
-228, 77, 51, 84, 84, 60, 96,120, 71, 90,179, 1, 65,175,176, 1, 69,174,174,254,187,176, 19, 73, 19, 19, 1,112, 80, 51, 82, 81,
- 52, 79, 0, 0, 0, 1, 0,201, 0, 0, 4, 35, 5,213, 0, 9, 0, 0, 41, 1, 53, 33, 17, 33, 53, 33, 17, 51, 4, 35,252,166,
- 2,144,253,176, 2, 80,202,170, 1,184,170, 2,201, 0, 0, 0, 0, 2, 0,104,255,231, 3, 74, 3, 41, 0, 11, 0, 23, 0, 0,
- 1, 52, 38, 35, 34, 2, 21, 20, 22, 51, 50, 18, 3, 50, 22, 21, 20, 2, 35, 34, 38, 53, 52, 18, 2,169, 87, 79,109,141, 86, 80,
-109,141,194,152,203,221,162,152,203,221, 1,247,116,125,254,254,207,116,123, 1, 4, 1,253,216,163,198,254,255,216,163,198, 1,
- 1, 0, 0, 0, 0, 1, 0,103,255,227, 5,178, 5,240, 0, 54, 0, 0, 9, 1, 22, 21, 20, 7, 52, 39, 1, 7, 6, 31, 1, 22,
- 21, 20, 7, 6, 43, 1, 53, 54, 53, 52, 47, 1, 38, 53, 52, 63, 1, 39, 38, 53, 52, 55, 20, 23, 9, 1, 39, 38, 53, 52, 55, 20,
- 31, 1, 22, 21, 20, 7, 52, 47, 1, 3,196, 1,139, 99,144, 50,252,251,155, 62, 66,172,100, 61, 86, 69,245,196, 47, 98, 53,140,
-154,241, 99,144, 50, 2,108, 1, 25,116, 99,144, 50,182, 99,144, 50, 18, 2,208,254,117, 99, 49,130, 76, 83, 50, 3, 5,156, 63,
- 66,172,100,106,108, 44, 62, 56, 63, 93, 29, 47, 99, 54,103, 85,141,155,241, 99, 49,130, 76, 83, 50,253,150, 1, 25,116, 99, 49,
-130, 76, 83, 50,182, 99, 49,130, 76, 83, 50, 18, 0, 4, 0,151, 0, 0, 9, 76, 4, 96, 0, 9, 0, 12, 0, 20, 0, 32, 0, 0,
- 19, 33, 21, 33, 17, 33, 21, 33, 17, 35, 1, 3, 33, 1, 51, 1, 35, 39, 33, 7, 35, 1, 51, 27, 1, 51, 9, 1, 35, 9, 1, 35,
- 1,151, 2,131,254, 20, 1,188,254, 68,151, 3,131,181, 1,106,255, 0,151, 1,119,138, 90,254, 68, 90,140, 3,214,143,245,246,
-144,254,195, 1, 82,144,254,235,254,233,144, 1, 96, 4, 96,128,254,182,127,253,233, 3, 8,254, 67, 2, 53,252,128,230,230, 3,
-128,254,179, 1, 77,254, 82,254, 46, 1,125,254,131, 1,222, 0, 0, 2, 0, 59,255,227, 5,184, 5,240, 0, 38, 0, 48, 0, 0,
- 9, 1, 14, 1, 7, 35, 54, 18, 55, 1, 51, 23, 62, 1, 51, 50, 0, 21, 20, 6, 7, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 30,
- 1, 51, 50, 54, 53, 52, 38, 55, 62, 1, 53, 52, 38, 35, 34, 6, 7, 3,186,254, 4, 59, 66, 6,186, 12,104, 93,254,233,252,143,
-104,228,131,241, 1, 50,134,134, 48, 50,222,184, 83,165, 85, 87,158, 68,105,131, 59, 50, 91, 85,212,160, 95,166, 73, 2, 64, 2,
- 8, 89,203,114,132, 1, 2,126, 1, 29,147, 89, 87,254,237,215,128,225, 99, 63,125, 60,162,197, 36, 36,182, 47, 49,111, 88, 51,
-103,206, 81,161, 88,146,194, 63, 64, 0, 0, 0,255,255, 0,137,255,227, 7, 88, 5,240, 16, 34, 0,123, 0, 0, 16, 39, 6, 90,
- 3, 53, 0, 0, 16, 3, 0,117, 4,139,253,100,255,255, 0, 94,255,227, 7, 88, 5,240, 16, 34, 0,116, 0, 0, 16, 39, 6, 90,
- 3, 53, 0, 0, 16, 3, 0,117, 4,139,253,100,255,255, 0,137,255,227, 7, 94, 5,240, 16, 34, 0,123, 0, 0, 16, 39, 6, 90,
- 3, 53, 0, 0, 16, 3, 5,207, 4,139,253,100,255,255, 0, 94,255,227, 7, 94, 5,240, 16, 34, 0,116, 0, 0, 16, 39, 6, 90,
- 3, 53, 0, 0, 16, 3, 5,207, 4,139,253,100,255,255, 0, 98,255,227, 7, 94, 5,240, 16, 34, 0,117, 0, 0, 16, 39, 6, 90,
- 3, 53, 0, 0, 16, 3, 5,207, 4,139,253,100,255,255, 0, 63,255,227, 7, 94, 5,240, 16, 34, 5,206, 0, 0, 16, 39, 6, 90,
- 3, 53, 0, 0, 16, 3, 5,207, 4,139,253,100,255,255, 0,137,255,227, 7,126, 5,240, 16, 34, 0,123, 0, 0, 16, 39, 6, 90,
- 3, 53, 0, 0, 16, 3, 5,208, 4,139,253,100,255,255, 0,102,255,227, 7,126, 5,240, 16, 34, 5,207, 0, 0, 16, 39, 6, 90,
- 3, 53, 0, 0, 16, 3, 5,208, 4,139,253,100,255,255, 0,137,255,227, 7,119, 5,240, 16, 34, 0,123, 0, 0, 16, 39, 6, 90,
- 3, 53, 0, 0, 16, 3, 5,210, 4,139,253,100,255,255, 0, 98,255,227, 7,119, 5,240, 16, 34, 0,117, 0, 0, 16, 39, 6, 90,
- 3, 53, 0, 0, 16, 3, 5,210, 4,139,253,100,255,255, 0,102,255,227, 7,119, 5,240, 16, 34, 5,207, 0, 0, 16, 39, 6, 90,
- 3, 53, 0, 0, 16, 3, 5,210, 4,139,253,100,255,255, 0,108,255,227, 7,119, 5,240, 16, 34, 5,209, 0, 0, 16, 39, 6, 90,
- 3, 53, 0, 0, 16, 3, 5,210, 4,139,253,100,255,255, 0,137,255,227, 6, 2, 5,240, 16, 34, 0,123, 0, 0, 16, 7, 6, 90,
- 3, 53, 0, 0,255,255, 0,201, 0, 0, 1,147, 5,213, 16, 6, 0, 44, 0, 0,255,255, 0,201, 0, 0, 3, 39, 5,213, 16, 38,
- 0, 44, 0, 0, 16, 7, 0, 44, 1,148, 0, 0,255,255, 0,201, 0, 0, 4,187, 5,213, 16, 38, 0, 44, 0, 0, 16, 39, 0, 44,
- 1,148, 0, 0, 16, 7, 0, 44, 3, 40, 0, 0,255,255, 0,201, 0, 0, 7, 81, 5,213, 16, 38, 0, 44, 0, 0, 16, 7, 0, 57,
- 1,233, 0, 0,255,255, 0, 16, 0, 0, 5,104, 5,213, 16, 6, 0, 57, 0, 0,255,255, 0, 16, 0, 0, 6,152, 5,213, 16, 38,
- 0, 57, 0, 0, 16, 7, 0, 44, 5, 5, 0, 0,255,255, 0, 16, 0, 0, 8, 44, 5,213, 16, 38, 0, 57, 0, 0, 16, 39, 0, 44,
- 5, 5, 0, 0, 16, 7, 0, 44, 6,153, 0, 0,255,255, 0, 16, 0, 0, 9,192, 5,213, 16, 38, 0, 57, 0, 0, 16, 39, 0, 44,
- 5, 5, 0, 0, 16, 39, 0, 44, 6,153, 0, 0, 16, 7, 0, 44, 8, 45, 0, 0,255,255, 0,201, 0, 0, 7, 23, 5,213, 16, 38,
- 0, 44, 0, 0, 16, 7, 0, 59, 1,220, 0, 0,255,255, 0, 61, 0, 0, 5, 59, 5,213, 16, 6, 0, 59, 0, 0,255,255, 0, 61,
- 0, 0, 6,174, 5,213, 16, 38, 0, 59, 0, 0, 16, 7, 0, 44, 5, 27, 0, 0,255,255, 0, 61, 0, 0, 8, 66, 5,213, 16, 38,
- 0, 59, 0, 0, 16, 39, 0, 44, 5, 27, 0, 0, 16, 7, 0, 44, 6,175, 0, 0,255,255, 0,201, 0, 0, 4,106, 5,213, 16, 6,
- 0, 47, 0, 0,255,255, 0,115,255,227, 5, 39, 5,240, 16, 6, 0, 38, 0, 0,255,255, 0,201, 0, 0, 5,176, 5,213, 16, 6,
- 0, 39, 0, 0,255,255, 0,201, 0, 0, 6, 31, 5,213, 16, 6, 0, 48, 0, 0,255,255, 0,193, 0, 0, 1,121, 6, 20, 16, 6,
- 0, 76, 0, 0,255,255, 0,193, 0, 0, 2,233, 6, 20, 16, 38, 0, 76, 0, 0, 16, 7, 0, 76, 1,112, 0, 0,255,255, 0,193,
- 0, 0, 4, 89, 6, 20, 16, 38, 0, 76, 0, 0, 16, 39, 0, 76, 1,112, 0, 0, 16, 7, 0, 76, 2,224, 0, 0,255,255, 0,193,
- 0, 0, 6, 65, 6, 20, 16, 38, 0, 76, 0, 0, 16, 7, 0, 89, 1,194, 0, 0,255,255, 0, 61, 0, 0, 4,127, 4, 96, 16, 6,
- 0, 89, 0, 0,255,255, 0, 61, 0, 0, 5,189, 6, 20, 16, 38, 0, 89, 0, 0, 16, 7, 0, 76, 4, 68, 0, 0,255,255, 0, 61,
- 0, 0, 7, 45, 6, 20, 16, 38, 0, 89, 0, 0, 16, 39, 0, 76, 4, 68, 0, 0, 16, 7, 0, 76, 5,180, 0, 0,255,255, 0, 61,
- 0, 0, 8,157, 6, 20, 16, 38, 0, 89, 0, 0, 16, 39, 0, 76, 4, 68, 0, 0, 16, 39, 0, 76, 5,180, 0, 0, 16, 7, 0, 76,
- 7, 36, 0, 0,255,255, 0,193, 0, 0, 6, 74, 6, 20, 16, 38, 0, 76, 0, 0, 16, 7, 0, 91, 1,209, 0, 0,255,255, 0, 59,
- 0, 0, 4,121, 4, 96, 16, 6, 0, 91, 0, 0,255,255, 0, 59, 0, 0, 5,212, 6, 20, 16, 38, 0, 91, 0, 0, 16, 7, 0, 76,
- 4, 91, 0, 0,255,255, 0, 59, 0, 0, 7, 68, 6, 20, 16, 38, 0, 91, 0, 0, 16, 39, 0, 76, 4, 91, 0, 0, 16, 7, 0, 76,
- 5,203, 0, 0,255,255, 0,193, 0, 0, 1,121, 6, 20, 16, 6, 0, 79, 0, 0,255,255, 0,113,255,227, 3,231, 4,123, 16, 6,
- 0, 70, 0, 0,255,255, 0,113,255,227, 4, 90, 6, 20, 16, 6, 0, 71, 0, 0,255,255, 0,186, 0, 0, 7, 29, 4,123, 16, 6,
- 0, 80, 0, 0, 0, 3, 0,121,255,255, 9,125, 5,213, 0, 13, 0, 22, 0, 31, 0, 0, 1, 32, 0, 17, 16, 0, 41, 1, 32, 0,
- 17, 16, 0, 33, 1, 51, 32, 0, 17, 16, 0, 33, 35, 3, 17, 35, 32, 0, 17, 16, 0, 33, 6, 53, 1,178, 1,150,254,104,254, 80,
-253,140,254, 80,254,104, 1,150, 1,178, 1,159,244, 1, 53, 1, 31,254,225,254,203,244,202,244,254,203,254,225, 1, 31, 1, 53,
- 5,213,254,151,254,128,254,126,254,150, 1,106, 1,130, 1,128, 1,105,250,209, 1, 24, 1, 46, 1, 44, 1, 23,251,119, 4,137,
-254,233,254,212,254,210,254,232, 0, 3, 0,201, 0, 0, 5,176, 5,213, 0, 17, 0, 26, 0, 35, 0,251,186, 0, 9, 0, 27, 0,
- 3, 43,184, 0, 9, 16,186, 0, 14, 0, 23, 0, 3, 43,184, 0, 14, 16,186, 0, 31, 0, 5, 0, 3, 43,184, 0, 31, 16,184, 0,
- 9, 16,184, 0, 0,208, 65, 5, 0,234, 0, 5, 0,250, 0, 5, 0, 2, 93, 65, 27, 0, 25, 0, 5, 0, 41, 0, 5, 0, 57, 0,
- 5, 0, 73, 0, 5, 0, 89, 0, 5, 0,105, 0, 5, 0,121, 0, 5, 0,137, 0, 5, 0,153, 0, 5, 0,169, 0, 5, 0,185, 0,
- 5, 0,201, 0, 5, 0,217, 0, 5, 0, 13, 93,184, 0, 9, 16,184, 0, 18,208, 65, 5, 0,234, 0, 23, 0,250, 0, 23, 0, 2,
- 93, 65, 27, 0, 25, 0, 23, 0, 41, 0, 23, 0, 57, 0, 23, 0, 73, 0, 23, 0, 89, 0, 23, 0,105, 0, 23, 0,121, 0, 23, 0,
-137, 0, 23, 0,153, 0, 23, 0,169, 0, 23, 0,185, 0, 23, 0,201, 0, 23, 0,217, 0, 23, 0, 13, 93,184, 0, 31, 16,184, 0,
- 37,220, 0,186, 0, 2, 0, 34, 0, 3, 43,184, 0, 2, 16,186, 0, 28, 0, 8, 0, 3, 43,184, 0, 28, 16,186, 0, 19, 0, 0,
- 0, 3, 43,184, 0, 19, 16,186, 0, 10, 0, 18, 0, 3, 43,184, 0, 10, 16, 48, 49, 1, 21, 51, 32, 0, 17, 16, 0, 33, 35, 21,
- 51, 32, 22, 21, 20, 6, 35, 3, 17, 51, 50, 54, 53, 52, 38, 35, 1, 33, 32, 0, 17, 16, 0, 41, 1, 1,147,244, 1, 53, 1, 31,
-254,225,254,203,244, 72, 1, 0,240,241,255, 72, 78,159,147,147,159,254,232, 1,159, 1,178, 1,150,254,104,254, 80,254, 97, 1,
- 89,179, 1, 24, 1, 46, 1, 44, 1, 23,178,194,207,208,195, 2,158,253,232,129,140,138,129, 1,222,254,151,254,128,254,126,254,
-150, 0, 0, 0, 0, 5, 0,121,255,255, 9,125, 5,213, 0, 17, 0, 26, 0, 40, 0, 49, 0, 67, 0, 0, 1, 51, 32, 0, 17, 16,
- 0, 33, 35, 53, 51, 32, 54, 53, 52, 38, 33, 35, 25, 1, 51, 50, 22, 21, 20, 6, 35, 19, 32, 0, 17, 16, 0, 41, 1, 32, 0, 17,
- 16, 0, 33, 19, 35, 34, 38, 53, 52, 54, 59, 1, 53, 35, 32, 6, 21, 20, 22, 33, 51, 21, 35, 32, 0, 17, 16, 0, 33, 51, 5, 96,
-244, 1, 53, 1, 31,254,225,254,203,244, 72, 0,255,241,240,255, 0, 72, 78,159,147,147,159,135, 1,176, 1,152,254,106,254, 78,
-253,140,254, 78,254,106, 1,152, 1,176,213, 78,159,147,147,159, 78, 72,255, 0,240,241, 0,255, 72,244,254,203,254,225, 1, 31,
- 1, 53,244, 5, 47,254,233,254,212,254,210,254,232,179,195,208,207,194,253, 98, 2, 24,129,138,140,129,254, 33, 1,106, 1,130,
- 1,128, 1,105,254,151,254,128,254,126,254,150, 1,223,129,140,138,129,134,194,207,208,195,179, 1, 24, 1, 46, 1, 44, 1, 23,
-255,255, 0,115,255,227, 5, 39, 5,240, 16, 6, 1, 72, 0, 0, 0, 1, 0,100, 0,204, 6, 63, 4, 56, 0, 9, 0,129,180, 2,
- 9, 6, 0, 10, 16,212,212,204, 50, 64, 9, 64, 2, 64, 9, 48, 2, 48, 9, 4, 93, 49, 64, 10, 2, 5, 9, 1, 0, 6, 5,156,
- 6, 10, 0, 16,212,236, 17, 57, 57,204, 16,204, 48, 64, 12, 8, 9, 9, 0, 8, 7, 8, 7,156, 0, 9, 0, 7, 5, 16,252, 60,
- 8, 6, 16, 60, 64, 12, 3, 2, 2, 1, 3, 4, 3, 4,156, 1, 2, 1, 7, 5, 16,252, 60, 8, 6, 16, 60,176, 16, 75, 83, 88,
- 0,179, 3, 2, 8, 9, 16, 60, 16, 60,180, 8,156, 9, 9, 0, 7, 5, 16,236,180, 3,156, 2, 2, 1, 7, 5, 16,236, 89, 19,
- 53, 1, 23, 7, 33, 21, 33, 23, 7,100, 1,137,120,233, 4,195,251, 61,233,120, 2, 85, 90, 1,137,120,233,170,233,120, 0, 0,
- 0, 1, 1,163, 0, 0, 5, 15, 5,220, 0, 9, 0,129, 64, 10, 2, 5, 9, 1, 0, 6, 5,156, 6, 10, 16,212,236, 17, 57, 57,
-204, 16,204, 49, 0,180, 2, 9, 6, 0, 10, 16,212,212,204, 50, 64, 9, 79, 2, 79, 9, 63, 2, 63, 9, 4, 93, 48, 64, 12, 8,
- 9, 9, 0, 8, 7, 8, 7,156, 0, 9, 0, 7, 4, 16,252, 60, 8, 6, 16, 60, 64, 12, 3, 2, 2, 1, 3, 4, 3, 4,156, 1,
- 2, 1, 7, 4, 16,252, 60, 8, 6, 16, 60,176, 16, 75, 83, 88, 1,179, 3, 2, 8, 9, 16, 60, 16, 60,180, 8,156, 9, 9, 0,
- 7, 4, 16,236,180, 3,156, 2, 2, 1, 7, 4, 16,236, 89, 1, 51, 1, 7, 39, 17, 35, 17, 7, 39, 3, 45, 90, 1,136,120,232,
-170,234,120, 5,220,254,118,120,234,251, 60, 4,196,234,120, 0, 0, 1, 0,117, 0,204, 6, 80, 4, 56, 0, 9, 0,129,180, 2,
- 9, 0, 6, 10, 16,212,212,204, 50, 64, 9, 79, 2, 79, 9, 95, 2, 95, 9, 4, 93, 49, 64, 10, 9, 6, 2, 1, 0, 5, 6,156,
- 5, 10, 0, 16,212,236, 17, 57, 57,204, 16,204, 48, 64, 12, 8, 9, 9, 0, 8, 7, 8, 7,156, 0, 9, 0, 7, 5, 16,252, 60,
- 8, 6, 16, 60, 64, 12, 3, 2, 2, 1, 3, 4, 3, 4,156, 1, 2, 1, 7, 5, 16,252, 60, 8, 6, 16, 60,176, 16, 75, 83, 88,
- 0,179, 3, 2, 8, 9, 16, 60, 16, 60,180, 8,156, 9, 9, 0, 7, 5, 16,236,180, 3,156, 2, 2, 1, 7, 5, 16,236, 89, 1,
- 21, 1, 39, 55, 33, 53, 33, 39, 55, 6, 80,254,119,120,233,251, 61, 4,195,233,120, 2,175, 90,254,119,120,233,170,233,120, 0,
- 0, 1, 1,163,255,249, 5, 15, 5,213, 0, 9, 0,129, 64, 10, 9, 6, 2, 1, 0, 5, 6,156, 5, 10, 16,212,236, 17, 57, 57,
-204, 16,204, 49, 0,180, 2, 9, 0, 6, 10, 16,212,212,204, 50, 64, 9, 64, 2, 64, 9, 80, 2, 80, 9, 4, 93, 48, 64, 12, 8,
- 9, 9, 0, 8, 7, 8, 7,156, 0, 9, 0, 7, 4, 16,252, 60, 8, 6, 16, 60, 64, 12, 3, 2, 2, 1, 3, 4, 3, 4,156, 1,
- 2, 1, 7, 4, 16,252, 60, 8, 6, 16, 60,176, 16, 75, 83, 88, 1,179, 3, 2, 8, 9, 16, 60, 16, 60,180, 8,156, 9, 9, 0,
- 7, 4, 16,236,180, 3,156, 2, 2, 1, 7, 4, 16,236, 89, 5, 35, 1, 55, 23, 17, 51, 17, 55, 23, 3,135, 90,254,118,120,234,
-170,232,120, 7, 1,138,120,234, 4,196,251, 60,234,120, 0, 0, 0, 1, 0,100, 0,204, 6, 80, 4, 56, 0, 15, 0,218,182, 7,
- 10, 9, 2, 15, 0, 16, 16,212,204, 50,212,204, 50, 64, 13, 80, 2, 80, 15, 95, 10, 95, 7, 79, 10, 79, 7, 6, 93, 49, 0, 64,
- 15, 7, 2, 4, 10, 15, 0, 1, 8, 9, 4, 13, 4,156, 13, 16, 16,212,236, 17, 23, 57,204, 50, 16,204, 50, 48, 64, 12, 14, 15,
- 15, 0, 14, 13, 14, 13,156, 0, 15, 0, 7, 5, 16,252, 60, 8, 6, 16, 60, 64, 12, 3, 2, 2, 1, 3, 4, 3, 4,156, 1, 2,
- 1, 7, 5, 16,252, 60, 8, 6, 16, 60, 64, 12, 11, 10, 10, 9, 11, 12, 11, 12,156, 9, 9, 10, 7, 5, 16,252, 60, 8, 6, 16,
- 60, 64, 12, 6, 7, 7, 8, 6, 5, 6, 5,156, 8, 7, 8, 7, 5, 16,252, 60, 8, 6, 16, 60,176, 16, 75, 83, 88, 0,183, 11,
- 10, 6, 7, 3, 2, 14, 15, 16, 60, 16, 60, 16, 60, 16, 60,180, 14,156, 15, 15, 0, 7, 5, 16,236,180, 3,156, 2, 2, 1, 7,
- 5, 16,236,180, 11,156, 10, 10, 9, 7, 5, 16,236,180, 6,156, 7, 7, 8, 7, 5, 16,236, 89, 19, 53, 1, 23, 7, 33, 39, 55,
- 1, 21, 1, 39, 55, 33, 23, 7,100, 1,137,120,233, 3,188,233,120, 1,137,254,119,120,233,252, 68,233,120, 2, 85, 90, 1,137,
-120,233,233,120,254,119, 90,254,119,120,233,233,120, 0, 0, 0, 0, 1, 1,163,255,239, 5, 15, 5,220, 0, 15, 0,222, 64, 15,
- 7, 2, 4, 10, 15, 0, 1, 8, 9, 4, 13, 4,156, 13, 16, 16,212,236, 17, 23, 57,204, 50, 16,204, 50, 49, 0,182, 7, 10, 9,
- 2, 15, 0, 16, 16,212,204, 50,212,204, 50, 64, 17, 95, 2, 95, 15, 80, 10, 80, 7, 79, 2, 79, 15, 64, 10, 64, 7, 8, 93, 48,
- 64, 12, 14, 15, 15, 0, 14, 13, 14, 13,156, 0, 15, 0, 7, 4, 16,252, 60, 8, 6, 16, 60, 64, 12, 3, 2, 2, 1, 3, 4, 3,
- 4,156, 1, 2, 1, 7, 4, 16,252, 60, 8, 6, 16, 60, 64, 12, 11, 10, 10, 9, 11, 12, 11, 12,156, 9, 9, 10, 7, 4, 16,252,
- 60, 8, 6, 16, 60, 64, 12, 6, 7, 7, 8, 6, 5, 6, 5,156, 8, 7, 8, 7, 4, 16,252, 60, 8, 6, 16, 60,176, 16, 75, 83,
- 88, 1,183, 11, 10, 6, 7, 3, 2, 14, 15, 16, 60, 16, 60, 16, 60, 16, 60,180, 14,156, 15, 15, 0, 7, 4, 16,236,180, 3,156,
- 2, 2, 1, 7, 4, 16,236,180, 11,156, 10, 10, 9, 7, 4, 16,236,180, 6,156, 7, 7, 8, 7, 4, 16,236, 89, 1, 51, 1, 7,
- 39, 17, 55, 23, 1, 35, 1, 55, 23, 17, 7, 39, 3, 45, 90, 1,136,120,232,232,120,254,120, 90,254,118,120,234,234,120, 5,220,
-254,118,120,234,252, 67,234,120,254,118, 1,138,120,234, 3,189,234,120, 0, 0, 0, 1, 1, 32, 0, 52, 5,159, 4,179, 0, 9,
- 0, 0, 1, 55, 33, 21, 33, 1, 7, 1, 17, 35, 1, 32, 63, 2, 44,254,182, 3, 94,120,252,162,169, 4,116, 63,169,252,162,120,
- 3, 94,254,182, 0, 1, 1, 32, 0, 52, 5,159, 4,179, 0, 9, 0, 0, 1, 23, 17, 35, 17, 1, 39, 1, 33, 53, 5, 96, 63,169,
-252,162,120, 3, 94,254,182, 4,179, 63,253,212, 1, 74,252,162,120, 3, 94,169, 0, 1, 1, 32, 0, 52, 5,159, 4,179, 0, 9,
- 0, 0, 37, 7, 33, 53, 33, 1, 55, 1, 17, 51, 5,159, 63,253,212, 1, 74,252,162,120, 3, 94,169,115, 63,169, 3, 94,120,252,
-162, 1, 74, 0, 0, 1, 1, 32, 0, 52, 5,159, 4,179, 0, 9, 0, 0, 37, 39, 17, 51, 17, 1, 23, 1, 33, 21, 1, 95, 63,169,
- 3, 94,120,252,162, 1, 74, 52, 63, 2, 44,254,182, 3, 94,120,252,162,169, 0, 0, 1, 0,100, 0,204, 5, 63, 5, 3, 0, 11,
- 0, 0, 1, 33, 23, 7, 1, 53, 1, 23, 7, 33, 17, 51, 5, 63,252, 61,233,120,254,119, 1,137,120,233, 3, 25,170, 2, 45,233,
-120, 1,137, 90, 1,137,120,233, 2, 44, 0, 0, 0, 1, 0,217, 2, 45, 5,219, 2,215, 0, 3, 0, 17,182, 0,156, 2, 4, 1,
- 0, 4, 16,212,196, 49, 0, 16,212,236, 48, 19, 33, 21, 33,217, 5, 2,250,254, 2,215,170, 0, 0, 2, 0,217, 0, 0, 5,219,
- 5, 4, 0, 11, 0, 15, 0, 0, 33, 35, 17, 33, 53, 33, 17, 51, 17, 33, 21, 33, 1, 53, 33, 21, 3,174,168,253,211, 2, 45,168,
- 2, 45,253,211,253, 43, 5, 2, 1,131,170, 1,131,254,125,170, 2,215,170,170, 0, 2, 0,217, 0, 0, 5,219, 5,213, 0, 11,
- 0, 15, 0, 87,186, 0, 5, 0, 6, 0, 3, 43,184, 0, 5, 16,184, 0, 0,208,184, 0, 6, 16,184, 0, 10,208,184, 0, 6, 16,
-184, 0, 12,208,184, 0, 5, 16,184, 0, 13,208, 0,184, 0, 5, 47,186, 0, 13, 0, 14, 0, 3, 43,184, 0, 13, 16,186, 0, 2,
- 0, 3, 0, 3, 43,184, 0, 2, 16,184, 0, 3, 16,184, 0, 7,208,184, 0, 2, 16,184, 0, 9,208, 48, 49, 1, 17, 33, 21, 33,
- 17, 35, 17, 33, 53, 33, 25, 1, 51, 21, 35, 3,174, 2, 45,253,211,168,253,211, 2, 45,168,168, 4,160,254, 5,170,254, 5, 1,
-251,170, 1,251, 1, 53,204, 0, 0, 1,254,137,255,227, 2,205, 5,240, 0, 3, 0, 43, 64, 19, 0, 15, 1, 2, 1, 2, 15, 3,
- 0, 3, 66, 2,140, 0,145, 4, 1, 3, 4, 16,212,204, 49, 0, 16,228,228, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 5,237, 89,
- 34, 1, 51, 1, 35, 2, 45,160,252, 92,160, 5,240,249,243, 0,255,255, 1,138,255,146, 4, 60, 6, 37, 16, 3, 0, 63, 1,138,
- 0, 80, 0, 0,255,255, 0,190, 0,175, 4, 68, 4, 85, 16, 7, 0, 13, 0,129,254,101, 0, 0,255,255, 1, 68, 1, 71, 3,190,
- 3,194, 16, 7, 0,114, 0,129,253,210, 0, 0, 0, 1, 0,219, 2, 72, 1,174, 3, 70, 0, 3, 0, 18,183, 2,131, 0, 4, 1,
- 25, 0, 4, 16,212,236, 49, 0, 16,212,236, 48, 19, 51, 21, 35,219,211,211, 3, 70,254, 0, 0, 0, 1, 0, 61,255,215, 5, 25,
- 6,125, 0, 10, 0, 42, 64, 24, 10, 9, 8, 7, 6, 5, 11, 2, 4, 2, 0, 11, 10, 9, 7, 6, 5, 4, 3, 0, 8, 1, 8, 11,
- 16,212,204, 23, 57, 49, 0, 16,212,204,196, 17, 18, 23, 57, 48, 1, 51, 21, 35, 1, 35, 1, 7, 39, 37, 1, 4, 92,189,115,253,
-174, 66,254,193,125, 25, 1, 27, 1, 0, 6,125, 96,249,186, 3,115, 45, 80, 98,253, 59, 0, 0,255,255, 0, 61,255,215, 5, 25,
- 7,208, 18, 34, 6, 95, 0, 0, 16, 3, 0,117, 0,115, 1,224,255,255, 0, 61,255,215, 5, 25, 7,191, 18, 34, 6, 95, 0, 0,
- 16, 3, 5,206, 0,115, 1,224, 0, 2, 0,221, 0,221, 4,141, 3,238, 0, 11, 0, 37, 0, 0, 1, 46, 1, 35, 34, 6, 21, 20,
- 22, 51, 50, 54, 1, 34, 38, 39, 14, 1, 35, 34, 38, 53, 52, 54, 51, 50, 22, 23, 62, 1, 51, 21, 34, 6, 7, 30, 1, 51, 3, 25,
- 49,133, 85,102,127,118, 89, 82,134, 1,189, 73,149, 79, 70,157, 94,136,186,167,134, 95,153, 72, 68,158, 97, 43,133, 74, 49,134,
- 67, 2,154, 88, 88,132,106,101,134,136,254,232,119,139,135,127,223,166,175,216,126,138,138,131,150,135,162, 88, 90, 0, 0, 0,
- 0, 3, 0,221, 0,221, 5,207, 3,238, 0, 11, 0, 23, 0, 47, 0,255, 64, 29, 45, 27, 21, 9, 33, 3, 0, 36, 24, 4, 21, 15,
- 39, 33, 21, 27, 15, 33, 48, 12, 0, 36, 24, 18, 6, 42, 18, 30, 48, 16,212,196,212,196, 17, 57, 57, 57, 57, 49, 0, 16,212,196,
-212,196, 16,192, 17, 18, 23, 57, 18, 57, 17, 18, 57, 48, 64,190, 5, 2, 5, 3, 5, 4, 0, 5, 0, 6, 0, 7, 5, 8, 5, 9,
- 5, 10, 10, 16, 15, 17, 15, 18, 15, 19, 10, 20, 21, 2, 21, 3, 21, 4, 16, 5, 16, 6, 16, 7, 21, 8, 21, 9, 21, 10, 26, 14,
- 26, 15, 26, 16, 31, 17, 31, 18, 31, 19, 26, 20, 26, 21, 26, 22, 36, 2, 36, 3, 36, 4, 32, 5, 32, 6, 32, 7, 36, 8, 36, 9,
- 36, 10, 42, 14, 42, 15, 42, 16, 47, 17, 47, 18, 47, 19, 42, 20, 42, 21, 42, 22, 53, 2, 53, 3, 53, 4, 48, 5, 48, 6, 48, 7,
- 53, 8, 53, 9, 53, 10, 58, 14, 58, 15, 58, 16, 63, 17, 63, 18, 63, 19, 58, 20, 58, 21, 58, 22, 69, 2, 69, 3, 69, 4, 64, 5,
- 64, 6, 64, 7, 69, 8, 69, 9, 69, 10, 74, 14, 74, 15, 74, 16, 79, 17, 79, 18, 79, 19, 74, 20, 74, 21, 74, 22, 86,180, 31,176,
- 32,176, 33,176, 34,176, 38,176, 39,176, 40,180, 41, 8, 93, 1, 93, 1, 30, 1, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 46, 1,
- 35, 34, 6, 21, 20, 22, 51, 50, 54, 23, 14, 1, 35, 34, 38, 53, 52, 54, 51, 50, 22, 23, 62, 1, 51, 50, 22, 21, 20, 6, 35, 34,
- 38, 3,147, 49,134, 84,101,128,118, 89, 82,133,196, 49,133, 85,102,127,118, 89, 82,134,144, 70,157, 94,136,186,167,134, 95,153,
- 72, 68,158, 97,134,188,167,134, 94,149, 2, 47, 88, 90,135,105,101,134,135, 55, 88, 88,132,106,101,134,136, 22,135,127,223,166,
-175,216,126,138,138,131,225,167,175,214,119, 0, 0, 6, 0,247, 0, 1, 7, 9, 6, 19, 0, 3, 0, 49, 0, 59, 0, 70, 0, 79,
- 0, 89, 0, 0, 1, 33, 17, 33, 17, 21, 20, 6, 32, 38, 53, 52, 54, 59, 1, 17, 35, 34, 38, 53, 52, 54, 32, 22, 29, 1, 33, 53,
- 52, 54, 51, 50, 22, 21, 20, 6, 43, 1, 17, 51, 50, 22, 21, 20, 6, 35, 34, 38, 61, 1, 1, 53, 52, 38, 35, 34, 6, 20, 22, 51,
- 19, 35, 34, 6, 21, 20, 22, 51, 50, 54, 53, 1, 51, 50, 54, 52, 38, 34, 6, 21, 17, 21, 20, 22, 50, 54, 53, 52, 38, 35, 3,108,
- 1, 40,254,216,185,254,252,184,184,127,170,170,127,184,184, 1, 4,185, 1, 40,185,130,131,183,183,128,170,170,128,183,183,131,
-130,185,254, 68, 98, 69, 68, 98, 98, 69,166,166, 69, 98, 98, 69, 68, 98, 2, 80,167, 68, 98, 97,138, 98, 98,138, 97, 98, 68, 2,
-118, 1, 40,254, 68,170,128,183,184,131,128,186, 1, 40,186,129,130,184,183,128,170,170,128,183,184,130,129,186,254,216,186,128,
-131,184,183,128,170, 2, 80,167, 69, 97, 97,138, 98,253,176, 98, 68, 69, 98, 98, 68, 2,247, 98,138, 97, 97, 69,253, 9,167, 68,
- 98, 98, 69, 68, 98, 0, 0, 0, 0, 1, 0,217, 1, 31, 5,219, 3, 94, 0, 5, 0, 0, 1, 33, 17, 51, 17, 33, 5,219,250,254,
-168, 4, 90, 1, 31, 2, 63,254,107, 0, 0, 0, 0, 2, 0,172, 0, 0, 7, 84, 5,200, 0, 7, 0, 11, 0, 0, 19, 33, 1, 33,
- 21, 33, 1, 33, 37, 33, 21, 33,172, 2, 66, 2,154, 1,204,253,188,253,102,254, 54, 3,244, 2,180,253, 76, 5,200,250,204,148,
- 5, 52,148,148, 0, 1, 0,183,254,242, 2,123, 6, 18, 0, 5, 0, 0, 19, 1, 51, 9, 1, 35,183, 1, 26,170,254,230, 1, 26,
-170, 2,130,252,112, 3,144, 3,144, 0, 0, 0, 0, 1, 0,164,254,242, 2,104, 6, 18, 0, 5, 0, 0, 9, 1, 35, 9, 1, 51,
- 2,104,254,230,170, 1, 26,254,230,170, 2,130,252,112, 3,144, 3,144, 0, 0, 0, 3, 0,152,255,236, 6,148, 5,232, 0, 13,
- 0, 27, 0, 38, 0,219,186, 0, 14, 0, 6, 0, 3, 43,184, 0, 14, 16,186, 0, 35, 0, 29, 0, 3, 43,184, 0, 35, 16,186, 0,
- 0, 0, 20, 0, 3, 43,184, 0, 0, 16, 65, 27, 0, 22, 0, 14, 0, 38, 0, 14, 0, 54, 0, 14, 0, 70, 0, 14, 0, 86, 0, 14,
- 0,102, 0, 14, 0,118, 0, 14, 0,134, 0, 14, 0,150, 0, 14, 0,166, 0, 14, 0,182, 0, 14, 0,198, 0, 14, 0,214, 0, 14,
- 0, 13, 93, 65, 5, 0,229, 0, 14, 0,245, 0, 14, 0, 2, 93, 65, 5, 0,234, 0, 20, 0,250, 0, 20, 0, 2, 93, 65, 27, 0,
- 25, 0, 20, 0, 41, 0, 20, 0, 57, 0, 20, 0, 73, 0, 20, 0, 89, 0, 20, 0,105, 0, 20, 0,121, 0, 20, 0,137, 0, 20, 0,
-153, 0, 20, 0,169, 0, 20, 0,185, 0, 20, 0,201, 0, 20, 0,217, 0, 20, 0, 13, 93, 0,186, 0, 17, 0, 3, 0, 3, 43,184,
- 0, 17, 16,186, 0, 10, 0, 24, 0, 3, 43,184, 0, 10, 16,186, 0, 36, 0, 37, 0, 3, 43,184, 0, 36, 16,184, 0, 28,208, 48,
- 49, 1, 16, 0, 33, 32, 0, 17, 52, 18, 36, 51, 50, 4, 18, 5, 16, 0, 33, 32, 0, 17, 52, 2, 36, 35, 34, 4, 2, 1, 51, 17,
- 7, 53, 37, 51, 17, 51, 21, 33, 6,148,254, 63,254,194,254,196,254, 63,206, 1,113,190,193, 1,113,205,250, 87, 1,143, 1, 28,
- 1, 28, 1,143,182,254,184,173,173,254,184,182, 1,124,217,236, 1, 1,161,218,253,151, 2,234,254,193,254, 65, 1,191, 1, 63,
-198, 1,114,198,198,254,144,200,254,228,254,112, 1,144, 1, 28,179, 1, 71,177,177,254,185,253,255, 2,126, 43,152, 47,252,230,
-142, 0, 0, 0, 0, 3, 0,152,255,236, 6,148, 5,232, 0, 13, 0, 27, 0, 56, 1, 63,186, 0, 14, 0, 6, 0, 3, 43,184, 0,
- 14, 16,186, 0, 51, 0, 38, 0, 3, 43,184, 0, 51, 16,186, 0, 0, 0, 20, 0, 3, 43,184, 0, 0, 16, 65, 27, 0, 22, 0, 14,
- 0, 38, 0, 14, 0, 54, 0, 14, 0, 70, 0, 14, 0, 86, 0, 14, 0,102, 0, 14, 0,118, 0, 14, 0,134, 0, 14, 0,150, 0, 14,
- 0,166, 0, 14, 0,182, 0, 14, 0,198, 0, 14, 0,214, 0, 14, 0, 13, 93, 65, 5, 0,229, 0, 14, 0,245, 0, 14, 0, 2, 93,
- 65, 5, 0,234, 0, 20, 0,250, 0, 20, 0, 2, 93, 65, 27, 0, 25, 0, 20, 0, 41, 0, 20, 0, 57, 0, 20, 0, 73, 0, 20, 0,
- 89, 0, 20, 0,105, 0, 20, 0,121, 0, 20, 0,137, 0, 20, 0,153, 0, 20, 0,169, 0, 20, 0,185, 0, 20, 0,201, 0, 20, 0,
-217, 0, 20, 0, 13, 93,184, 0, 51, 16,184, 0, 29,208,184, 0, 29, 47, 65, 5, 0,234, 0, 38, 0,250, 0, 38, 0, 2, 93, 65,
- 27, 0, 25, 0, 38, 0, 41, 0, 38, 0, 57, 0, 38, 0, 73, 0, 38, 0, 89, 0, 38, 0,105, 0, 38, 0,121, 0, 38, 0,137, 0,
- 38, 0,153, 0, 38, 0,169, 0, 38, 0,185, 0, 38, 0,201, 0, 38, 0,217, 0, 38, 0, 13, 93,186, 0, 44, 0, 6, 0, 0, 17,
- 18, 57, 0,186, 0, 17, 0, 3, 0, 3, 43,184, 0, 17, 16,186, 0, 10, 0, 24, 0, 3, 43,184, 0, 10, 16,186, 0, 29, 0, 30,
- 0, 3, 43,184, 0, 29, 16,186, 0, 48, 0, 41, 0, 3, 43,184, 0, 48, 16, 48, 49, 1, 16, 0, 33, 32, 0, 17, 52, 18, 36, 51,
- 50, 4, 18, 5, 16, 0, 33, 32, 0, 17, 52, 2, 36, 35, 34, 4, 2, 1, 33, 21, 33, 53, 54, 36, 55, 62, 1, 53, 52, 38, 35, 34,
- 6, 7, 53, 62, 1, 51, 50, 22, 21, 20, 6, 7, 14, 1, 6,148,254, 63,254,194,254,196,254, 63,206, 1,113,190,193, 1,113,205,
-250, 87, 1,143, 1, 28, 1, 28, 1,143,182,254,184,173,173,254,184,182, 2, 79, 1,180,253, 92, 82, 1, 6, 33, 62, 47, 95, 78,
- 59,132,115, 97,145, 61,163,197, 48, 62, 17,178, 2,234,254,193,254, 65, 1,191, 1, 63,198, 1,114,198,198,254,144,200,254,228,
-254,112, 1,144, 1, 28,179, 1, 71,177,177,254,185,253,255,142,129, 77,241, 34, 63, 85, 40, 63, 78, 38, 58,171, 36, 31,151,125,
- 58,105, 70, 18,167, 0, 0, 0, 0, 3, 0,152,255,236, 6,148, 5,232, 0, 13, 0, 27, 0, 68, 1,181,186, 0, 14, 0, 6, 0,
- 3, 43,184, 0, 14, 16,186, 0, 66, 0, 53, 0, 3, 43,184, 0, 66, 16,186, 0, 0, 0, 20, 0, 3, 43,184, 0, 0, 16, 65, 27,
- 0, 22, 0, 14, 0, 38, 0, 14, 0, 54, 0, 14, 0, 70, 0, 14, 0, 86, 0, 14, 0,102, 0, 14, 0,118, 0, 14, 0,134, 0, 14,
- 0,150, 0, 14, 0,166, 0, 14, 0,182, 0, 14, 0,198, 0, 14, 0,214, 0, 14, 0, 13, 93, 65, 5, 0,229, 0, 14, 0,245, 0,
- 14, 0, 2, 93, 65, 5, 0,234, 0, 20, 0,250, 0, 20, 0, 2, 93, 65, 27, 0, 25, 0, 20, 0, 41, 0, 20, 0, 57, 0, 20, 0,
- 73, 0, 20, 0, 89, 0, 20, 0,105, 0, 20, 0,121, 0, 20, 0,137, 0, 20, 0,153, 0, 20, 0,169, 0, 20, 0,185, 0, 20, 0,
-201, 0, 20, 0,217, 0, 20, 0, 13, 93, 65, 5, 0,234, 0, 53, 0,250, 0, 53, 0, 2, 93, 65, 27, 0, 25, 0, 53, 0, 41, 0,
- 53, 0, 57, 0, 53, 0, 73, 0, 53, 0, 89, 0, 53, 0,105, 0, 53, 0,121, 0, 53, 0,137, 0, 53, 0,153, 0, 53, 0,169, 0,
- 53, 0,185, 0, 53, 0,201, 0, 53, 0,217, 0, 53, 0, 13, 93,186, 0, 28, 0, 53, 0, 66, 17, 18, 57,186, 0, 44, 0, 53, 0,
- 66, 17, 18, 57,184, 0, 44, 47, 65, 5, 0,234, 0, 44, 0,250, 0, 44, 0, 2, 93, 65, 27, 0, 25, 0, 44, 0, 41, 0, 44, 0,
- 57, 0, 44, 0, 73, 0, 44, 0, 89, 0, 44, 0,105, 0, 44, 0,121, 0, 44, 0,137, 0, 44, 0,153, 0, 44, 0,169, 0, 44, 0,
-185, 0, 44, 0,201, 0, 44, 0,217, 0, 44, 0, 13, 93,184, 0, 31,220,186, 0, 38, 0, 6, 0, 0, 17, 18, 57,186, 0, 59, 0,
- 6, 0, 0, 17, 18, 57, 0,186, 0, 17, 0, 3, 0, 3, 43,184, 0, 17, 16,186, 0, 10, 0, 24, 0, 3, 43,184, 0, 10, 16,186,
- 0, 41, 0, 34, 0, 3, 43,184, 0, 41, 16,186, 0, 63, 0, 56, 0, 3, 43,184, 0, 63, 16,186, 0, 50, 0, 47, 0, 3, 43,184,
- 0, 50, 16,186, 0, 28, 0, 47, 0, 50, 17, 18, 57, 48, 49, 1, 16, 0, 33, 32, 0, 17, 52, 18, 36, 51, 50, 4, 18, 5, 16, 0,
- 33, 32, 0, 17, 52, 2, 36, 35, 34, 4, 2, 5, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 43, 1,
- 53, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 21, 20, 6, 6,148,254, 63,254,194,254,196,254, 63,206, 1,
-113,190,193, 1,113,205,250, 87, 1,143, 1, 28, 1, 28, 1,143,182,254,184,173,173,254,184,182, 3,185, 13,118,216,195, 64,136,
- 88, 91,125, 68,117,115,107, 99,140,145, 90, 88, 92, 91, 52,121,107, 95,136, 61,161,193,104, 2,234,254,193,254, 65, 1,191, 1,
- 63,198, 1,114,198,198,254,144,200,254,228,254,112, 1,144, 1, 28,179, 1, 71,177,177,254,185,150, 3,129, 93,141,156, 23, 27,
-168, 48, 28, 79, 76, 71, 78,140, 60, 58, 60, 63, 21, 32,151, 24, 20,137,115, 81,114, 0, 0, 0, 0, 4, 0,152,255,236, 6,148,
- 5,232, 0, 13, 0, 27, 0, 30, 0, 41, 0,243,186, 0, 14, 0, 6, 0, 3, 43,184, 0, 14, 16,186, 0, 32, 0, 28, 0, 3, 43,
-184, 0, 32, 16,186, 0, 0, 0, 20, 0, 3, 43,184, 0, 0, 16, 65, 27, 0, 22, 0, 14, 0, 38, 0, 14, 0, 54, 0, 14, 0, 70,
- 0, 14, 0, 86, 0, 14, 0,102, 0, 14, 0,118, 0, 14, 0,134, 0, 14, 0,150, 0, 14, 0,166, 0, 14, 0,182, 0, 14, 0,198,
- 0, 14, 0,214, 0, 14, 0, 13, 93, 65, 5, 0,229, 0, 14, 0,245, 0, 14, 0, 2, 93, 65, 5, 0,234, 0, 20, 0,250, 0, 20,
- 0, 2, 93, 65, 27, 0, 25, 0, 20, 0, 41, 0, 20, 0, 57, 0, 20, 0, 73, 0, 20, 0, 89, 0, 20, 0,105, 0, 20, 0,121, 0,
- 20, 0,137, 0, 20, 0,153, 0, 20, 0,169, 0, 20, 0,185, 0, 20, 0,201, 0, 20, 0,217, 0, 20, 0, 13, 93,184, 0, 32, 16,
-184, 0, 36,208,184, 0, 28, 16,184, 0, 38,208, 0,186, 0, 17, 0, 3, 0, 3, 43,184, 0, 17, 16,186, 0, 10, 0, 24, 0, 3,
- 43,184, 0, 10, 16,186, 0, 34, 0, 35, 0, 3, 43,184, 0, 34, 16,184, 0, 29,208,184, 0, 35, 16,184, 0, 39,208, 48, 49, 1,
- 16, 0, 33, 32, 0, 17, 52, 18, 36, 51, 50, 4, 18, 5, 16, 0, 33, 32, 0, 17, 52, 2, 36, 35, 34, 4, 2, 37, 1, 33, 3, 51,
- 17, 51, 21, 35, 21, 35, 53, 33, 53, 6,148,254, 63,254,194,254,196,254, 63,206, 1,113,190,193, 1,113,205,250, 87, 1,143, 1,
- 28, 1, 28, 1,143,182,254,184,173,173,254,184,182, 2,191,254,243, 1, 13, 24,206,141,141,182,254, 67, 2,234,254,193,254, 65,
- 1,191, 1, 63,198, 1,114,198,198,254,144,200,254,228,254,112, 1,144, 1, 28,179, 1, 71,177,177,254,185, 79,254,130, 2, 72,
-253,184,141,211,211,142, 0, 0, 0, 3, 0,152,255,236, 6,148, 5,232, 0, 13, 0, 27, 0, 57, 1, 75,186, 0, 14, 0, 6, 0,
- 3, 43,184, 0, 14, 16,186, 0, 31, 0, 28, 0, 3, 43,184, 0, 31, 16,186, 0, 38, 0, 51, 0, 3, 43,184, 0, 38, 16,186, 0,
- 0, 0, 20, 0, 3, 43,184, 0, 0, 16, 65, 27, 0, 22, 0, 14, 0, 38, 0, 14, 0, 54, 0, 14, 0, 70, 0, 14, 0, 86, 0, 14,
- 0,102, 0, 14, 0,118, 0, 14, 0,134, 0, 14, 0,150, 0, 14, 0,166, 0, 14, 0,182, 0, 14, 0,198, 0, 14, 0,214, 0, 14,
- 0, 13, 93, 65, 5, 0,229, 0, 14, 0,245, 0, 14, 0, 2, 93, 65, 5, 0,234, 0, 20, 0,250, 0, 20, 0, 2, 93, 65, 27, 0,
- 25, 0, 20, 0, 41, 0, 20, 0, 57, 0, 20, 0, 73, 0, 20, 0, 89, 0, 20, 0,105, 0, 20, 0,121, 0, 20, 0,137, 0, 20, 0,
-153, 0, 20, 0,169, 0, 20, 0,185, 0, 20, 0,201, 0, 20, 0,217, 0, 20, 0, 13, 93,186, 0, 45, 0, 6, 0, 0, 17, 18, 57,
- 65, 5, 0,234, 0, 51, 0,250, 0, 51, 0, 2, 93, 65, 27, 0, 25, 0, 51, 0, 41, 0, 51, 0, 57, 0, 51, 0, 73, 0, 51, 0,
- 89, 0, 51, 0,105, 0, 51, 0,121, 0, 51, 0,137, 0, 51, 0,153, 0, 51, 0,169, 0, 51, 0,185, 0, 51, 0,201, 0, 51, 0,
-217, 0, 51, 0, 13, 93, 0,186, 0, 17, 0, 3, 0, 3, 43,184, 0, 17, 16,186, 0, 10, 0, 24, 0, 3, 43,184, 0, 10, 16,186,
- 0, 48, 0, 41, 0, 3, 43,184, 0, 48, 16,186, 0, 29, 0, 30, 0, 3, 43,184, 0, 29, 16,186, 0, 35, 0, 54, 0, 3, 43,184,
- 0, 35, 16, 48, 49, 1, 16, 0, 33, 32, 0, 17, 52, 18, 36, 51, 50, 4, 18, 5, 16, 0, 33, 32, 0, 17, 52, 2, 36, 35, 34, 4,
- 2, 1, 33, 21, 33, 21, 6, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 6,
-148,254, 63,254,194,254,196,254, 63,206, 1,113,190,193, 1,113,205,250, 87, 1,143, 1, 28, 1, 28, 1,143,182,254,184,173,173,
-254,184,182, 1,152, 2, 61,254,111, 3, 63, 31,176,207,213,190, 64,133, 88, 95,119, 68,104,118,118,104, 50,101, 89, 2,234,254,
-193,254, 65, 1,191, 1, 63,198, 1,114,198,198,254,144,200,254,228,254,112, 1,144, 1, 28,179, 1, 71,177,177,254,185, 1, 25,
-142,171, 1, 10,176,149,152,172, 20, 24,172, 47, 27, 97, 85, 86, 97, 20, 37, 0, 0, 4, 0,152,255,236, 6,148, 5,232, 0, 13,
- 0, 27, 0, 39, 0, 64, 1,145,186, 0, 14, 0, 6, 0, 3, 43,184, 0, 14, 16,186, 0, 31, 0, 59, 0, 3, 43,184, 0, 31, 16,
-186, 0, 53, 0, 37, 0, 3, 43,184, 0, 53, 16,186, 0, 0, 0, 20, 0, 3, 43,184, 0, 0, 16, 65, 27, 0, 22, 0, 14, 0, 38,
- 0, 14, 0, 54, 0, 14, 0, 70, 0, 14, 0, 86, 0, 14, 0,102, 0, 14, 0,118, 0, 14, 0,134, 0, 14, 0,150, 0, 14, 0,166,
- 0, 14, 0,182, 0, 14, 0,198, 0, 14, 0,214, 0, 14, 0, 13, 93, 65, 5, 0,229, 0, 14, 0,245, 0, 14, 0, 2, 93, 65, 5,
- 0,234, 0, 20, 0,250, 0, 20, 0, 2, 93, 65, 27, 0, 25, 0, 20, 0, 41, 0, 20, 0, 57, 0, 20, 0, 73, 0, 20, 0, 89, 0,
- 20, 0,105, 0, 20, 0,121, 0, 20, 0,137, 0, 20, 0,153, 0, 20, 0,169, 0, 20, 0,185, 0, 20, 0,201, 0, 20, 0,217, 0,
- 20, 0, 13, 93, 65, 27, 0, 22, 0, 31, 0, 38, 0, 31, 0, 54, 0, 31, 0, 70, 0, 31, 0, 86, 0, 31, 0,102, 0, 31, 0,118,
- 0, 31, 0,134, 0, 31, 0,150, 0, 31, 0,166, 0, 31, 0,182, 0, 31, 0,198, 0, 31, 0,214, 0, 31, 0, 13, 93, 65, 5, 0,
-229, 0, 31, 0,245, 0, 31, 0, 2, 93, 65, 5, 0,234, 0, 37, 0,250, 0, 37, 0, 2, 93, 65, 27, 0, 25, 0, 37, 0, 41, 0,
- 37, 0, 57, 0, 37, 0, 73, 0, 37, 0, 89, 0, 37, 0,105, 0, 37, 0,121, 0, 37, 0,137, 0, 37, 0,153, 0, 37, 0,169, 0,
- 37, 0,185, 0, 37, 0,201, 0, 37, 0,217, 0, 37, 0, 13, 93,186, 0, 41, 0, 37, 0, 53, 17, 18, 57, 0,186, 0, 17, 0, 3,
- 0, 3, 43,184, 0, 17, 16,186, 0, 10, 0, 24, 0, 3, 43,184, 0, 10, 16,186, 0, 34, 0, 56, 0, 3, 43,184, 0, 34, 16,186,
- 0, 62, 0, 44, 0, 3, 43,184, 0, 62, 16,186, 0, 50, 0, 28, 0, 3, 43,184, 0, 50, 16, 48, 49, 1, 16, 0, 33, 32, 0, 17,
- 52, 18, 36, 51, 50, 4, 18, 5, 16, 0, 33, 32, 0, 17, 52, 2, 36, 35, 34, 4, 2, 5, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52,
- 38, 19, 21, 46, 1, 35, 34, 6, 7, 6, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 53, 52, 18, 51, 50, 22, 6,148,254, 63,254,194,
-254,196,254, 63,206, 1,113,190,193, 1,113,205,250, 87, 1,143, 1, 28, 1, 28, 1,143,182,254,184,173,173,254,184,182, 2,161,
- 78, 92, 92, 78, 78, 92, 92,212, 84, 97, 47,119,127, 5, 9,128, 78,160,186,194,160,185,192,234,200, 53,106, 2,234,254,193,254,
- 65, 1,191, 1, 63,198, 1,114,198,198,254,144,200,254,228,254,112, 1,144, 1, 28,179, 1, 71,177,177,254,185,159, 98, 91, 90,
- 98, 98, 90, 91, 98, 1,157,156, 35, 22,148, 80, 11, 61,177,148,145,179,253,231,218, 1, 11, 19, 0, 3, 0,152,255,236, 6,148,
- 5,232, 0, 13, 0, 27, 0, 34, 0,235,184, 0, 35, 47,184, 0, 36, 47,184, 0, 0,220,184, 0, 35, 16,184, 0, 6,208,184, 0,
- 6, 47,184, 0, 14,220, 65, 27, 0, 22, 0, 14, 0, 38, 0, 14, 0, 54, 0, 14, 0, 70, 0, 14, 0, 86, 0, 14, 0,102, 0, 14,
- 0,118, 0, 14, 0,134, 0, 14, 0,150, 0, 14, 0,166, 0, 14, 0,182, 0, 14, 0,198, 0, 14, 0,214, 0, 14, 0, 13, 93, 65,
- 5, 0,229, 0, 14, 0,245, 0, 14, 0, 2, 93,184, 0, 0, 16,184, 0, 20,220, 65, 5, 0,234, 0, 20, 0,250, 0, 20, 0, 2,
- 93, 65, 27, 0, 25, 0, 20, 0, 41, 0, 20, 0, 57, 0, 20, 0, 73, 0, 20, 0, 89, 0, 20, 0,105, 0, 20, 0,121, 0, 20, 0,
-137, 0, 20, 0,153, 0, 20, 0,169, 0, 20, 0,185, 0, 20, 0,201, 0, 20, 0,217, 0, 20, 0, 13, 93,186, 0, 32, 0, 6, 0,
- 0, 17, 18, 57,186, 0, 33, 0, 6, 0, 0, 17, 18, 57, 0,186, 0, 17, 0, 3, 0, 3, 43,184, 0, 17, 16,186, 0, 10, 0, 24,
- 0, 3, 43,184, 0, 10, 16,186, 0, 29, 0, 33, 0, 3, 43,184, 0, 29, 16, 48, 49, 1, 16, 0, 33, 32, 0, 17, 52, 18, 36, 51,
- 50, 4, 18, 5, 16, 0, 33, 32, 0, 17, 52, 2, 36, 35, 34, 4, 2, 1, 33, 21, 1, 35, 1, 33, 6,148,254, 63,254,194,254,196,
-254, 63,206, 1,113,190,193, 1,113,205,250, 87, 1,143, 1, 28, 1, 28, 1,143,182,254,184,173,173,254,184,182, 1,107, 2,171,
-254,148,193, 1, 81,254, 49, 2,234,254,193,254, 65, 1,191, 1, 63,198, 1,114,198,198,254,144,200,254,228,254,112, 1,144, 1,
- 28,179, 1, 71,177,177,254,185, 1, 25, 75,252,163, 3, 26, 0, 0, 5, 0,152,255,236, 6,148, 5,232, 0, 13, 0, 27, 0, 39,
- 0, 63, 0, 75, 2, 13,186, 0, 14, 0, 6, 0, 3, 43,184, 0, 14, 16,186, 0, 31, 0, 61, 0, 3, 43,184, 0, 31, 16,186, 0,
- 49, 0, 70, 0, 3, 43,184, 0, 49, 16,186, 0, 0, 0, 20, 0, 3, 43,184, 0, 0, 16, 65, 27, 0, 22, 0, 14, 0, 38, 0, 14,
- 0, 54, 0, 14, 0, 70, 0, 14, 0, 86, 0, 14, 0,102, 0, 14, 0,118, 0, 14, 0,134, 0, 14, 0,150, 0, 14, 0,166, 0, 14,
- 0,182, 0, 14, 0,198, 0, 14, 0,214, 0, 14, 0, 13, 93, 65, 5, 0,229, 0, 14, 0,245, 0, 14, 0, 2, 93, 65, 5, 0,234,
- 0, 20, 0,250, 0, 20, 0, 2, 93, 65, 27, 0, 25, 0, 20, 0, 41, 0, 20, 0, 57, 0, 20, 0, 73, 0, 20, 0, 89, 0, 20, 0,
-105, 0, 20, 0,121, 0, 20, 0,137, 0, 20, 0,153, 0, 20, 0,169, 0, 20, 0,185, 0, 20, 0,201, 0, 20, 0,217, 0, 20, 0,
- 13, 93, 65, 27, 0, 22, 0, 31, 0, 38, 0, 31, 0, 54, 0, 31, 0, 70, 0, 31, 0, 86, 0, 31, 0,102, 0, 31, 0,118, 0, 31,
- 0,134, 0, 31, 0,150, 0, 31, 0,166, 0, 31, 0,182, 0, 31, 0,198, 0, 31, 0,214, 0, 31, 0, 13, 93, 65, 5, 0,229, 0,
- 31, 0,245, 0, 31, 0, 2, 93, 65, 5, 0,234, 0, 70, 0,250, 0, 70, 0, 2, 93, 65, 27, 0, 25, 0, 70, 0, 41, 0, 70, 0,
- 57, 0, 70, 0, 73, 0, 70, 0, 89, 0, 70, 0,105, 0, 70, 0,121, 0, 70, 0,137, 0, 70, 0,153, 0, 70, 0,169, 0, 70, 0,
-185, 0, 70, 0,201, 0, 70, 0,217, 0, 70, 0, 13, 93,186, 0, 37, 0, 70, 0, 49, 17, 18, 57,184, 0, 37, 47, 65, 5, 0,234,
- 0, 37, 0,250, 0, 37, 0, 2, 93, 65, 27, 0, 25, 0, 37, 0, 41, 0, 37, 0, 57, 0, 37, 0, 73, 0, 37, 0, 89, 0, 37, 0,
-105, 0, 37, 0,121, 0, 37, 0,137, 0, 37, 0,153, 0, 37, 0,169, 0, 37, 0,185, 0, 37, 0,201, 0, 37, 0,217, 0, 37, 0,
- 13, 93,186, 0, 43, 0, 61, 0, 31, 17, 18, 57,184, 0, 43, 47,186, 0, 52, 0, 70, 0, 49, 17, 18, 57,184, 0, 37, 16,184, 0,
- 55,220,184, 0, 43, 16,184, 0, 64,220, 0,186, 0, 17, 0, 3, 0, 3, 43,184, 0, 17, 16,186, 0, 10, 0, 24, 0, 3, 43,184,
- 0, 10, 16,186, 0, 34, 0, 58, 0, 3, 43,184, 0, 34, 16,186, 0, 46, 0, 73, 0, 3, 43,184, 0, 46, 16,186, 0, 67, 0, 28,
- 0, 3, 43,184, 0, 67, 16,186, 0, 52, 0, 28, 0, 67, 17, 18, 57, 48, 49, 1, 16, 0, 33, 32, 0, 17, 52, 18, 36, 51, 50, 4,
- 18, 5, 16, 0, 33, 32, 0, 17, 52, 2, 36, 35, 34, 4, 2, 5, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 37, 46, 1, 53, 52,
- 54, 51, 50, 22, 21, 20, 6, 7, 30, 1, 21, 20, 6, 35, 34, 38, 53, 52, 54, 55, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 6,
-148,254, 63,254,194,254,196,254, 63,206, 1,113,190,193, 1,113,205,250, 87, 1,143, 1, 28, 1, 28, 1,143,182,254,184,173,173,
-254,184,182, 2,175, 84, 95, 95, 84, 84, 95, 95,254,198, 4,106,183,157,157,182,105, 4, 15,118,190,173,173,190,118, 87, 81, 77,
- 75, 82, 82, 75, 77, 81, 2,234,254,193,254, 65, 1,191, 1, 63,198, 1,114,198,198,254,144,200,254,228,254,112, 1,144, 1, 28,
-179, 1, 71,177,177,254,185,230, 80, 73, 73, 80, 81, 72, 73, 80, 73, 1,118, 83,116,136,136,116, 83,118, 1, 3,131, 92,138,151,
-151,138, 92,131,193, 61, 66, 66, 61, 62, 66, 66, 0, 4, 0,152,255,236, 6,148, 5,232, 0, 13, 0, 27, 0, 52, 0, 64, 1,145,
-186, 0, 14, 0, 6, 0, 3, 43,184, 0, 14, 16,186, 0, 62, 0, 41, 0, 3, 43,184, 0, 62, 16,186, 0, 0, 0, 20, 0, 3, 43,
-184, 0, 0, 16,186, 0, 47, 0, 56, 0, 3, 43,184, 0, 47, 16, 65, 27, 0, 22, 0, 14, 0, 38, 0, 14, 0, 54, 0, 14, 0, 70,
- 0, 14, 0, 86, 0, 14, 0,102, 0, 14, 0,118, 0, 14, 0,134, 0, 14, 0,150, 0, 14, 0,166, 0, 14, 0,182, 0, 14, 0,198,
- 0, 14, 0,214, 0, 14, 0, 13, 93, 65, 5, 0,229, 0, 14, 0,245, 0, 14, 0, 2, 93, 65, 5, 0,234, 0, 20, 0,250, 0, 20,
- 0, 2, 93, 65, 27, 0, 25, 0, 20, 0, 41, 0, 20, 0, 57, 0, 20, 0, 73, 0, 20, 0, 89, 0, 20, 0,105, 0, 20, 0,121, 0,
- 20, 0,137, 0, 20, 0,153, 0, 20, 0,169, 0, 20, 0,185, 0, 20, 0,201, 0, 20, 0,217, 0, 20, 0, 13, 93, 65, 27, 0, 22,
- 0, 62, 0, 38, 0, 62, 0, 54, 0, 62, 0, 70, 0, 62, 0, 86, 0, 62, 0,102, 0, 62, 0,118, 0, 62, 0,134, 0, 62, 0,150,
- 0, 62, 0,166, 0, 62, 0,182, 0, 62, 0,198, 0, 62, 0,214, 0, 62, 0, 13, 93, 65, 5, 0,229, 0, 62, 0,245, 0, 62, 0,
- 2, 93,186, 0, 29, 0, 41, 0, 62, 17, 18, 57, 65, 5, 0,234, 0, 56, 0,250, 0, 56, 0, 2, 93, 65, 27, 0, 25, 0, 56, 0,
- 41, 0, 56, 0, 57, 0, 56, 0, 73, 0, 56, 0, 89, 0, 56, 0,105, 0, 56, 0,121, 0, 56, 0,137, 0, 56, 0,153, 0, 56, 0,
-169, 0, 56, 0,185, 0, 56, 0,201, 0, 56, 0,217, 0, 56, 0, 13, 93, 0,186, 0, 17, 0, 3, 0, 3, 43,184, 0, 17, 16,186,
- 0, 10, 0, 24, 0, 3, 43,184, 0, 10, 16,186, 0, 32, 0, 50, 0, 3, 43,184, 0, 32, 16,186, 0, 44, 0, 59, 0, 3, 43,184,
- 0, 44, 16,186, 0, 53, 0, 38, 0, 3, 43,184, 0, 53, 16, 48, 49, 1, 16, 0, 33, 32, 0, 17, 52, 18, 36, 51, 50, 4, 18, 5,
- 16, 0, 33, 32, 0, 17, 52, 2, 36, 35, 34, 4, 2, 1, 53, 30, 1, 51, 50, 54, 55, 54, 6, 35, 34, 38, 53, 52, 54, 51, 50, 22,
- 21, 20, 2, 35, 34, 38, 19, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22, 6,148,254, 63,254,194,254,196,254, 63,206, 1,113,190,
-193, 1,113,205,250, 87, 1,143, 1, 28, 1, 28, 1,143,182,254,184,173,173,254,184,182, 1,144, 85, 97, 46,119,127, 5, 10,128,
- 79,159,186,194,160,185,191,233,200, 53,107,217, 78, 91, 91, 78, 78, 92, 92, 2,234,254,193,254, 65, 1,191, 1, 63,198, 1,114,
-198,198,254,144,200,254,228,254,112, 1,144, 1, 28,179, 1, 71,177,177,254,185,253,139,156, 36, 21,147, 79, 13, 60,175,148,145,
-180,253,232,218,254,246, 19, 1,180, 98, 91, 91, 98, 98, 91, 91, 98, 0, 0, 0, 0, 5, 0,152,255,236, 6,148, 5,232, 0, 13,
- 0, 27, 0, 38, 0, 50, 0, 62, 1,155,186, 0, 14, 0, 6, 0, 3, 43,184, 0, 14, 16,186, 0, 35, 0, 29, 0, 3, 43,184, 0,
- 35, 16,186, 0, 42, 0, 60, 0, 3, 43,184, 0, 42, 16,186, 0, 54, 0, 48, 0, 3, 43,184, 0, 54, 16,186, 0, 0, 0, 20, 0,
- 3, 43,184, 0, 0, 16, 65, 27, 0, 22, 0, 14, 0, 38, 0, 14, 0, 54, 0, 14, 0, 70, 0, 14, 0, 86, 0, 14, 0,102, 0, 14,
- 0,118, 0, 14, 0,134, 0, 14, 0,150, 0, 14, 0,166, 0, 14, 0,182, 0, 14, 0,198, 0, 14, 0,214, 0, 14, 0, 13, 93, 65,
- 5, 0,229, 0, 14, 0,245, 0, 14, 0, 2, 93, 65, 5, 0,234, 0, 20, 0,250, 0, 20, 0, 2, 93, 65, 27, 0, 25, 0, 20, 0,
- 41, 0, 20, 0, 57, 0, 20, 0, 73, 0, 20, 0, 89, 0, 20, 0,105, 0, 20, 0,121, 0, 20, 0,137, 0, 20, 0,153, 0, 20, 0,
-169, 0, 20, 0,185, 0, 20, 0,201, 0, 20, 0,217, 0, 20, 0, 13, 93, 65, 5, 0,234, 0, 48, 0,250, 0, 48, 0, 2, 93, 65,
- 27, 0, 25, 0, 48, 0, 41, 0, 48, 0, 57, 0, 48, 0, 73, 0, 48, 0, 89, 0, 48, 0,105, 0, 48, 0,121, 0, 48, 0,137, 0,
- 48, 0,153, 0, 48, 0,169, 0, 48, 0,185, 0, 48, 0,201, 0, 48, 0,217, 0, 48, 0, 13, 93, 65, 5, 0,234, 0, 60, 0,250,
- 0, 60, 0, 2, 93, 65, 27, 0, 25, 0, 60, 0, 41, 0, 60, 0, 57, 0, 60, 0, 73, 0, 60, 0, 89, 0, 60, 0,105, 0, 60, 0,
-121, 0, 60, 0,137, 0, 60, 0,153, 0, 60, 0,169, 0, 60, 0,185, 0, 60, 0,201, 0, 60, 0,217, 0, 60, 0, 13, 93, 0,186,
- 0, 17, 0, 3, 0, 3, 43,184, 0, 17, 16,186, 0, 10, 0, 24, 0, 3, 43,184, 0, 10, 16,186, 0, 45, 0, 57, 0, 3, 43,184,
- 0, 45, 16,186, 0, 36, 0, 37, 0, 3, 43,184, 0, 36, 16,186, 0, 51, 0, 39, 0, 3, 43,184, 0, 51, 16,184, 0, 36, 16,184,
- 0, 28,208, 48, 49, 1, 16, 0, 33, 32, 0, 17, 52, 18, 36, 51, 50, 4, 18, 5, 16, 0, 33, 32, 0, 17, 52, 2, 36, 35, 34, 4,
- 2, 19, 51, 17, 7, 53, 55, 51, 17, 51, 21, 33, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 39, 50, 22, 21, 20, 6, 35, 34,
- 38, 53, 52, 54, 6,148,254, 63,254,194,254,196,254, 63,206, 1,113,190,193, 1,113,205,250, 87, 1,143, 1, 28, 1, 28, 1,143,
-182,254,184,173,173,254,184,182,205,158,172,188,117,159,254, 62, 3, 4, 64, 69, 69, 64, 63, 70, 70, 63,130,136,136,130,131,136,
-136, 2,234,254,193,254, 65, 1,191, 1, 63,198, 1,114,198,198,254,144,200,254,228,254,112, 1,144, 1, 28,179, 1, 71,177,177,
-254,185,254, 62, 2, 62, 39,137, 42,253, 54,128, 2,222,151,163,162,151,151,162,163,151,123,228,209,208,228,228,208,209,228, 0,
- 0, 1, 0,170, 1,119, 6,130, 4, 99, 0, 5, 0, 11, 0,184, 0, 2, 47,184, 0, 5, 47, 48, 49, 19, 17, 37, 5, 17, 5,170,
- 1,119, 4, 97,251,159, 2, 50, 1,117,188,188,254,139,187, 0, 0, 1, 0,170, 0, 0, 4,116, 5,217, 0, 19, 0, 31, 0,184,
- 0, 5, 47,186, 0, 16, 0, 18, 0, 3, 43,184, 0, 16, 16,184, 0, 18, 16,184, 0, 13,208,184, 0, 13, 47, 48, 49, 1, 22, 21,
- 20, 7, 3, 33, 3, 38, 53, 52, 55, 54, 39, 35, 53, 33, 23, 7, 22, 3,126,246, 8,238,254, 34,237, 9,246,127, 7,117, 1,218,
- 1,119, 1, 4,224, 66,179, 32, 36,252, 89, 3,167, 38, 34,175, 66, 26,134, 89, 89, 1,135, 0, 0, 1, 0, 47, 0, 0, 5,170,
- 6, 20, 0, 36, 0, 72, 64, 19, 38, 0, 7, 9, 5, 8, 12, 33, 24, 13, 30, 8, 17, 12, 33, 16, 20, 76, 37, 16,252, 60,196, 50,
-196,252, 60,196, 16, 60,252, 60,196,196,196, 49, 0, 64, 17, 9, 13, 17,169, 18, 2, 26,135, 0, 24,151, 6, 31, 18,188, 11, 15,
- 47, 60,230, 50, 50,254, 60,238, 50, 16,238, 50, 50, 48, 1, 21, 35, 34, 6, 29, 1, 33, 21, 33, 17, 35, 17, 33, 17, 35, 17, 35,
- 53, 51, 53, 52, 54, 59, 1, 21, 35, 34, 7, 6, 29, 1, 33, 53, 52, 54, 51, 5,170,176, 99, 77, 1, 47,254,209,185,254, 7,185,
-176,176,174,189,174,176, 99, 39, 38, 1,249,174,189, 6, 20,153, 80,104, 99,143,252, 47, 3,209,252, 47, 3,209,143, 78,187,171,
-153, 40, 40,104, 99, 78,187,171, 0, 2, 0, 47, 0, 0, 4, 74, 6, 20, 0, 21, 0, 25, 0, 67, 64, 17, 27, 70, 0, 23, 8, 22,
- 15, 20, 4, 8, 8, 3, 22, 10, 6, 76, 26, 16,252, 60,196, 50,196,252, 60,196, 16,254, 60,236, 49, 0, 64, 18, 8, 3,169, 0,
- 16,135, 14, 24,190, 22,177, 14,151, 9, 0,188, 5, 1, 47, 60,230, 50,238,254,238, 16,238, 16,238, 50, 48, 1, 17, 35, 17, 33,
- 17, 35, 17, 35, 53, 51, 53, 52, 54, 59, 1, 21, 35, 34, 6, 29, 1, 1, 51, 21, 35, 4, 74,185,254, 7,185,176,176,173,179,185,
-176, 99, 77, 1,249,185,185, 4, 96,251,160, 3,209,252, 47, 3,209,143, 78,183,175,153, 80,104, 99, 1,178,233, 0, 1, 0, 47,
- 0, 0, 4, 74, 6, 20, 0, 21, 0, 55, 64, 15, 23, 70, 1, 8, 4, 10, 12, 8, 8, 16, 4, 18, 14, 76, 22, 16,252, 60,196,196,
-252, 60,196, 16,254,236, 49, 0, 64, 13, 15, 11,169, 9, 4,135, 0,151, 17, 9,188, 13, 2, 47, 60,230, 50,254,238, 16,238, 50,
- 48, 1, 33, 17, 35, 17, 33, 34, 6, 29, 1, 33, 21, 33, 17, 35, 17, 35, 53, 51, 53, 52, 54, 2, 74, 2, 0,185,254,183, 99, 77,
- 1, 47,254,209,185,176,176,174, 6, 20,249,236, 5,123, 80,104, 99,143,252, 47, 3,209,143, 78,187,171, 0, 0, 0, 2, 0, 47,
- 0, 0, 6,252, 6, 20, 0, 41, 0, 45, 0, 90, 64, 24, 47, 70, 23, 43, 8, 42, 16, 27, 21, 8, 26, 42, 9, 0, 31, 6, 8, 36,
- 30, 9, 34, 38, 76, 46, 16,252, 60,196, 50,196,252, 60,196, 16,196, 50,252, 60,196, 16,252, 60,236, 49, 0, 64, 23, 27, 31, 35,
-169, 36, 17, 1,135, 0, 45,190, 42,177, 16, 0,151, 22, 7, 36,188, 25, 29, 33, 47, 60, 60,228, 50, 50,228, 50,244,236, 16,236,
- 50, 16,236, 50, 50, 48, 1, 21, 35, 34, 7, 6, 29, 1, 33, 53, 52, 55, 54, 55, 54, 59, 1, 21, 35, 34, 6, 29, 1, 33, 17, 35,
- 17, 33, 17, 35, 17, 33, 17, 35, 17, 35, 53, 51, 53, 52, 54, 51, 5, 51, 21, 35, 2,248,176, 99, 39, 38, 1,249, 87, 28, 39, 78,
-131,174,176, 99, 77, 2,178,185,254, 7,185,254, 7,185,176,176,174,189, 3,249,185,185, 6, 20,153, 40, 40,104, 99, 78,187, 85,
- 28, 19, 39,153, 80,104, 99,251,160, 3,209,252, 47, 3,209,252, 47, 3,209,143, 78,187,171, 2,233, 0, 0, 0, 0, 1, 0, 47,
- 0, 0, 6,252, 6, 20, 0, 38, 0, 78, 64, 22, 40, 70, 13, 8, 16, 22, 24, 20, 8, 16, 9, 0, 28, 6, 8, 33, 27, 9, 31, 35,
- 76, 39, 16,252, 60,196, 50,196,252, 60,196, 16,196,252, 60,196, 16,252,236, 49, 0, 64, 18, 24, 28, 32,169, 33, 17, 2,135, 12,
- 38,151, 21, 7, 33,188, 15, 26, 30, 47, 60, 60,228, 50, 50,244, 60,236, 50, 16,236, 50, 50, 48, 1, 21, 35, 34, 7, 6, 29, 1,
- 33, 53, 52, 54, 51, 33, 17, 35, 17, 33, 34, 6, 29, 1, 33, 21, 33, 17, 35, 17, 33, 17, 35, 17, 35, 53, 51, 53, 52, 54, 51, 2,
-248,176, 99, 39, 38, 1,249,174,189, 2, 0,185,254,183, 99, 77, 1, 47,254,209,185,254, 7,185,176,176,174,189, 6, 20,153, 40,
- 40,104, 99, 78,187,171,249,236, 5,123, 80,104, 99,143,252, 47, 3,209,252, 47, 3,209,143, 78,187,171, 0, 0, 0, 1, 0, 47,
- 0, 0, 5, 76, 6, 20, 0, 45, 0, 0, 1, 53, 52, 39, 38, 43, 1, 34, 7, 6, 21, 17, 35, 17, 35, 53, 51, 53, 52, 55, 54, 59,
- 1, 50, 23, 22, 29, 1, 33, 21, 33, 17, 20, 23, 22, 59, 1, 21, 35, 34, 39, 38, 53, 17, 35, 53, 3, 24, 36, 37,101, 34, 99, 39,
- 38,185,176,176, 87, 87,189, 30,189, 87, 85, 1,123,254,133, 37, 38,115,189,189,213, 81, 81,135, 4, 96, 99,104, 40, 40, 40, 40,
-104,251, 61, 3,209,143, 78,187, 85, 86, 86, 83,189, 78,143,253,160,137, 39, 39,154, 80, 79,210, 2, 96,143, 0, 0, 1, 0,111,
-255,227, 6,178, 5,240, 0, 89, 0, 0, 1, 21, 38, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 31, 1, 30, 1, 21, 20, 7, 6, 35,
- 34, 39, 38, 39, 53, 22, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38, 47, 1, 38, 39, 38, 53, 52, 55, 54, 51, 50, 23, 38, 53, 52, 55,
- 54, 55, 50, 23, 22, 29, 1, 33, 21, 33, 17, 20, 23, 22, 59, 1, 21, 35, 34, 39, 38, 53, 17, 35, 53, 51, 53, 52, 39, 38, 7, 34,
- 7, 6, 21, 20, 3, 81, 86, 73, 84, 70,117, 63, 59, 49, 49,148, 63,195,166,123,124,216, 96, 92, 97,108,102, 99, 99, 97,130, 70,
- 70, 50, 45,177, 64,171, 76, 76,102,112,181, 72, 77, 5, 92, 91,162,140, 98, 94, 1,123,254,133, 37, 38,115,189,189,213, 81, 81,
-135,135, 48, 54, 68, 69, 54, 52, 4, 63,174, 43, 17, 20, 42, 39, 87, 64, 37, 36, 33, 14, 43,152,137,156, 91, 91, 17, 18, 35,190,
- 53, 26, 27, 45, 44, 81, 75, 40, 35, 42, 15, 36, 74, 75,130,166, 78, 86, 11, 29, 31,135, 95, 93, 1, 96, 92,136, 76,143,253,160,
-137, 39, 39,154, 80, 79,210, 2, 96,143, 78, 65, 43, 50, 1, 49, 48, 64, 61, 0, 0, 1, 0,170,255,227, 8,227, 6, 20, 0, 74,
- 0, 0, 1, 22, 21, 17, 35, 53, 14, 1, 35, 34, 38, 53, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 52, 39, 33, 34, 39, 38, 55, 54,
- 55, 54, 59, 1, 21, 35, 34, 21, 20, 51, 33, 39, 38, 55, 54, 59, 1, 21, 35, 38, 21, 20, 31, 1, 33, 3, 20, 23, 22, 51, 50, 54,
- 53, 17, 51, 17, 35, 53, 14, 1, 35, 34, 38, 53, 17, 4, 79, 9,184, 67,177,117,193,200,184,124,124,149,173, 5,254, 83,149, 94,
- 83, 3, 3, 87,115,118, 89, 89,131,131, 1,108, 23, 77, 32, 55,209,236,222, 96, 14, 59, 1,221, 1, 62, 62,124,149,173,184,184,
- 67,177,117,193,200, 3,182, 37, 33,252,144,172,102, 99,240,231, 1,102,254,161,159,159,190,164, 1,145, 36, 28, 94, 83,145,131,
- 66, 87,175,123,138, 56,186, 72,122,175, 1, 44, 39, 34,145,253, 97,160, 79, 79,190,164, 2,123,251,160,172,102, 99,240,231, 1,
-252, 0, 0, 0, 0, 1, 0,174,255,227, 8,227, 6, 20, 0, 58, 0, 0, 1, 33, 38, 21, 20, 31, 1, 22, 21, 17, 35, 53, 14, 1,
- 35, 34, 38, 53, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 52, 47, 1, 38, 55, 54, 51, 33, 17, 33, 21, 33, 17, 20, 22, 51, 50, 55,
- 54, 53, 17, 51, 17, 35, 53, 14, 1, 35, 34, 38, 53, 5, 57,254,243, 96, 14, 77, 49,184, 67,177,117,193,200,184,124,124,149,173,
- 16, 77, 77, 32, 55,209, 1,211, 2,242,253, 14,124,124,152, 83, 87,184,184, 67,177,117,193,200, 5,101, 1, 44, 39, 34,188,120,
- 77,252,144,172,102, 99,240,231, 2,166,253, 97,159,159,190,164, 1,145, 63, 39,188,187, 71,122,254, 76,170,254, 11,159,159, 95,
- 98,161, 1, 59,252,224,172,102, 99,240,231, 0, 0, 1, 0,174,254, 86, 8,227, 6, 20, 0, 53, 0, 0, 1, 33, 38, 21, 20, 31,
- 1, 22, 21, 17, 35, 53, 14, 1, 35, 34, 38, 53, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 52, 47, 1, 38, 55, 54, 51, 33, 17, 62,
- 1, 51, 50, 22, 21, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 5, 57,254,243, 96, 14, 77, 49,184, 67,177,117,193,200,184,124,
-124,149,173, 16, 77, 77, 32, 55,209, 1,212, 66,179,117,193,198,184,124,124,149,172,185, 5,101, 1, 44, 39, 34,188,120, 77,252,
-144,172,102, 99,240,231, 2,166,253, 97,159,159,190,164, 1,145, 63, 39,188,187, 71,122,253,158,101,100,239,232,253, 92, 2,158,
-159,158,190,164,251,221, 0, 0, 0, 2, 0,174,254, 86, 8,227, 6, 20, 0, 53, 0, 60, 0, 0, 1, 33, 34, 39, 38, 55, 54, 55,
- 54, 51, 33, 17, 33, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 35, 53, 14, 1, 35, 34, 38, 53, 17, 35, 17, 51, 21, 33, 17, 14, 1,
- 35, 34, 38, 53, 17, 51, 17, 20, 22, 51, 50, 55, 54, 53, 25, 1, 33, 34, 21, 20, 51, 3,160,254,219,149, 94, 83, 3, 3, 87,115,
-118, 1,221, 1,153,124,124,149,173,184,184, 67,177,117,193,200,225,213,254,115, 67,177,117,193,200,184,124,124,149, 87, 86,254,
-219,131,131, 3,182, 94, 83,145,131, 66, 87,254, 76,253, 97,159,159,190,164, 2,123,251,160,172,102, 99,240,231, 1,252,251, 66,
-162, 2, 86,102, 99,240,231, 1,102,254,161,159,159, 95, 95,164, 2,123, 1, 5,123,138, 0, 0, 0, 1, 0,174,254, 86, 11,155,
- 6, 20, 0, 72, 0, 0, 1, 33, 38, 21, 20, 31, 1, 22, 21, 17, 35, 53, 14, 1, 35, 34, 38, 53, 17, 51, 17, 20, 22, 51, 50, 54,
- 53, 17, 52, 47, 1, 38, 55, 54, 51, 33, 17, 54, 55, 54, 51, 50, 22, 29, 1, 20, 23, 22, 51, 50, 54, 53, 17, 51, 17, 35, 53, 14,
- 1, 35, 34, 39, 38, 61, 1, 52, 38, 35, 34, 6, 21, 17, 35, 5, 57,254,243, 96, 14, 77, 49,184, 67,177,117,193,200,184,124,124,
-149,173, 16, 77, 77, 32, 55,209, 1,212, 99, 37, 90,107,193,198, 62, 56,110,140,173,184,184, 67,177,108,175, 98,100,124,124,120,
-172,185, 5,101, 1, 44, 39, 34,188,120, 77,252,144,172,102, 99,240,231, 2,166,253, 97,159,159,190,164, 1,145, 63, 39,188,187,
- 71,122,253,158,129, 22, 50,239,232,227,151, 88, 79,190,164, 2,123,251,160,172,102, 99,120,123,228,228,159,158,190,164,251,221,
- 0, 3, 0, 30,255, 84, 8, 22, 7, 76, 0, 3, 0, 7, 0, 42, 0, 0, 9, 4, 21, 51, 53, 39, 53, 52, 54, 55, 54, 55, 54, 63,
- 1, 54, 55, 54, 53, 52, 38, 35, 34, 6, 7, 21, 62, 1, 51, 50, 22, 21, 20, 6, 15, 1, 14, 1, 29, 1, 4, 26, 3,252,252, 4,
-252, 4, 3,150,203, 6, 6, 6, 8, 19, 23, 44, 88, 92, 34, 36,223,184,103,193, 94, 97,179, 79,108,131, 51, 57, 90, 90, 56, 7,
- 76,252, 4,252, 4, 3,252,253,174,254,254,147,123, 52, 60, 21, 25, 26, 31, 43, 86, 90, 64, 69, 76,159,194, 56, 57,188, 67, 70,
-110, 89, 49, 94, 53, 89, 86,130,101,154, 0, 0, 0, 0, 0, 1, 0, 0, 60, 2, 0, 1, 9,254, 48, 0, 0, 11, 11,244, 0, 16,
- 0, 36,255,211, 0, 16, 0, 37,255,183, 0, 16, 0, 42, 0, 75, 0, 16, 0, 45, 0,114, 0, 16, 0, 50, 0, 57, 0, 16, 0, 52,
- 0, 75, 0, 16, 0, 55,255, 68, 0, 16, 0, 57,255,136, 0, 16, 0, 58,255,173, 0, 16, 0, 59,255,154, 0, 16, 0, 60,255, 13,
- 0, 16, 0, 82, 0, 38, 0, 16, 0, 89,255,201, 0, 16, 0, 92,255,220, 0, 16, 0,130,255,211, 0, 16, 0,131,255,211, 0, 16,
- 0,132,255,211, 0, 16, 0,133,255,211, 0, 16, 0,134,255,211, 0, 16, 0,148, 0, 57, 0, 16, 0,149, 0, 57, 0, 16, 0,150,
- 0, 57, 0, 16, 0,151, 0, 57, 0, 16, 0,152, 0, 57, 0, 16, 0,159,255, 13, 0, 16, 0,180, 0, 38, 0, 16, 0,181, 0, 38,
- 0, 16, 0,182, 0, 38, 0, 16, 0,183, 0, 38, 0, 16, 0,184, 0, 38, 0, 16, 0,191,255,220, 0, 16, 0,193,255,220, 0, 16,
- 0,194,255,211, 0, 16, 0,196,255,211, 0, 16, 0,198,255,211, 0, 16, 0,224, 0, 75, 0, 16, 1, 38,255, 68, 0, 16, 1, 58,
-255, 13, 0, 36, 0, 16,255,211, 0, 36, 0, 17,255,220, 0, 36, 0, 29,255,220, 0, 36, 0, 36, 0, 57, 0, 36, 0, 38,255,220,
- 0, 36, 0, 42,255,220, 0, 36, 0, 50,255,220, 0, 36, 0, 52,255,220, 0, 36, 0, 55,255, 97, 0, 36, 0, 57,255,125, 0, 36,
- 0, 58,255,144, 0, 36, 0, 60,255, 97, 0, 36, 0, 70,255,220, 0, 36, 0, 71,255,220, 0, 36, 0, 72,255,220, 0, 36, 0, 73,
-255,183, 0, 36, 0, 82,255,220, 0, 36, 0, 84,255,220, 0, 36, 0, 87,255,220, 0, 36, 0, 89,255,136, 0, 36, 0, 90,255,173,
- 0, 36, 0, 92,255,117, 0, 36, 0,109,255,183, 0, 36, 0,130, 0, 57, 0, 36, 0,131, 0, 57, 0, 36, 0,132, 0, 57, 0, 36,
- 0,133, 0, 57, 0, 36, 0,134, 0, 57, 0, 36, 0,137,255,220, 0, 36, 0,148,255,220, 0, 36, 0,149,255,220, 0, 36, 0,150,
-255,220, 0, 36, 0,151,255,220, 0, 36, 0,152,255,220, 0, 36, 0,159,255, 97, 0, 36, 0,169,255,220, 0, 36, 0,170,255,220,
- 0, 36, 0,171,255,220, 0, 36, 0,172,255,220, 0, 36, 0,173,255,220, 0, 36, 0,180,255,220, 0, 36, 0,181,255,220, 0, 36,
- 0,182,255,220, 0, 36, 0,183,255,220, 0, 36, 0,184,255,220, 0, 36, 0,191,255,117, 0, 36, 0,193,255,117, 0, 36, 0,194,
- 0, 57, 0, 36, 0,196, 0, 57, 0, 36, 0,198, 0, 57, 0, 36, 0,200,255,220, 0, 36, 0,201,255,220, 0, 36, 0,202,255,220,
- 0, 36, 0,203,255,220, 0, 36, 0,204,255,220, 0, 36, 0,205,255,220, 0, 36, 0,206,255,220, 0, 36, 0,207,255,220, 0, 36,
- 0,209,255,220, 0, 36, 0,211,255,220, 0, 36, 0,213,255,220, 0, 36, 0,215,255,220, 0, 36, 0,217,255,220, 0, 36, 0,219,
-255,220, 0, 36, 0,221,255,220, 0, 36, 0,222,255,220, 0, 36, 0,224,255,220, 0, 36, 0,226,255,220, 0, 36, 1, 14,255,220,
- 0, 36, 1, 15,255,220, 0, 36, 1, 16,255,220, 0, 36, 1, 17,255,220, 0, 36, 1, 18,255,220, 0, 36, 1, 19,255,220, 0, 36,
- 1, 36,255, 97, 0, 36, 1, 37,255,220, 0, 36, 1, 38,255, 97, 0, 36, 1, 39,255,220, 0, 36, 1, 54,255,144, 0, 36, 1, 55,
-255,173, 0, 36, 1, 56,255, 97, 0, 36, 1, 57,255,117, 0, 36, 1, 58,255, 97, 0, 36, 1,136,255,220, 0, 36, 1,172,255,220,
- 0, 36, 1,173,255,220, 0, 36, 1,174,255,220, 0, 36, 1,175,255,220, 0, 36, 1,220,255, 97, 0, 36, 1,221,255,220, 0, 36,
- 1,240,255,220, 0, 36, 1,243,255,220, 0, 36, 1,244,255, 97, 0, 36, 1,245,255,117, 0, 36, 4,252,255,144, 0, 36, 4,253,
-255,173, 0, 36, 4,254,255,144, 0, 36, 4,255,255,173, 0, 36, 5, 0,255,144, 0, 36, 5, 1,255,173, 0, 36, 5,106,255, 97,
- 0, 36, 5,107,255,117, 0, 36, 5,145,254,248, 0, 36, 5,146,255, 3, 0, 36, 5,147, 0, 47, 0, 37, 0, 38,255,220, 0, 37,
- 0, 42,255,220, 0, 37, 0, 50,255,220, 0, 37, 0, 54,255,220, 0, 37, 0, 57,255,193, 0, 37, 0, 58,255,183, 0, 37, 0, 60,
-255,144, 0, 37, 0,109,255,193, 0, 37, 0,125,255,220, 0, 37, 0,137,255,220, 0, 37, 0,148,255,220, 0, 37, 0,149,255,220,
- 0, 37, 0,150,255,220, 0, 37, 0,151,255,220, 0, 37, 0,152,255,220, 0, 37, 0,159,255,144, 0, 37, 0,200,255,220, 0, 37,
- 0,202,255,220, 0, 37, 0,204,255,220, 0, 37, 0,206,255,220, 0, 37, 0,222,255,220, 0, 37, 0,224,255,220, 0, 37, 0,226,
-255,220, 0, 37, 0,228,255,220, 0, 37, 1, 14,255,220, 0, 37, 1, 16,255,220, 0, 37, 1, 18,255,220, 0, 37, 1, 28,255,220,
- 0, 37, 1, 30,255,220, 0, 37, 1, 32,255,220, 0, 37, 1, 34,255,220, 0, 37, 1, 54,255,183, 0, 37, 1, 56,255,144, 0, 37,
- 1, 58,255,144, 0, 37, 1,172,255,220, 0, 37, 1,174,255,220, 0, 37, 1,218,255,220, 0, 37, 1,240,255,220, 0, 37, 4,252,
-255,183, 0, 37, 4,254,255,183, 0, 37, 5, 0,255,183, 0, 37, 5,106,255,144, 0, 37, 5,145,255,144, 0, 37, 5,146,255,144,
- 0, 37, 5,147,255,173, 0, 38, 0, 60,255,220, 0, 38, 0,109,255,220, 0, 38, 0,125,255,220, 0, 38, 0,159,255,220, 0, 38,
- 1, 56,255,220, 0, 38, 1, 58,255,220, 0, 38, 1,244,255,220, 0, 38, 5,106,255,220, 0, 38, 5,146, 0, 38, 0, 39, 0, 36,
-255,220, 0, 39, 0, 57,255,220, 0, 39, 0, 60,255,144, 0, 39, 0,109,255,220, 0, 39, 0,125,255,220, 0, 39, 0,130,255,220,
- 0, 39, 0,131,255,220, 0, 39, 0,132,255,220, 0, 39, 0,133,255,220, 0, 39, 0,134,255,220, 0, 39, 0,159,255,144, 0, 39,
- 0,194,255,220, 0, 39, 0,196,255,220, 0, 39, 0,198,255,220, 0, 39, 1, 56,255,144, 0, 39, 1, 58,255,144, 0, 39, 1,244,
-255,144, 0, 39, 5,106,255,144, 0, 39, 5,145,255,211, 0, 39, 5,146,255,201, 0, 39, 5,147,255, 68, 0, 41, 0, 17,254,183,
- 0, 41, 0, 29,255, 97, 0, 41, 0, 36,255, 68, 0, 41, 0, 54,255,220, 0, 41, 0, 55,255,220, 0, 41, 0, 68,255, 68, 0, 41,
- 0, 72,255,144, 0, 41, 0, 76,255,107, 0, 41, 0, 82,255,183, 0, 41, 0, 85,255,107, 0, 41, 0, 88,255,144, 0, 41, 0, 92,
-255, 68, 0, 41, 0,130,255, 68, 0, 41, 0,131,255, 68, 0, 41, 0,132,255, 68, 0, 41, 0,133,255, 68, 0, 41, 0,134,255, 68,
- 0, 41, 0,162,255, 68, 0, 41, 0,163,255, 68, 0, 41, 0,164,255, 68, 0, 41, 0,165,255, 68, 0, 41, 0,166,255, 68, 0, 41,
- 0,167,255, 68, 0, 41, 0,170,255,144, 0, 41, 0,171,255,144, 0, 41, 0,172,255,144, 0, 41, 0,173,255,144, 0, 41, 0,180,
-255,183, 0, 41, 0,181,255,183, 0, 41, 0,182,255,183, 0, 41, 0,183,255,183, 0, 41, 0,184,255,183, 0, 41, 0,187,255,144,
- 0, 41, 0,188,255,144, 0, 41, 0,189,255,144, 0, 41, 0,190,255,144, 0, 41, 0,191,255, 68, 0, 41, 0,193,255, 68, 0, 41,
- 0,194,255, 68, 0, 41, 0,195,255, 68, 0, 41, 0,196,255, 68, 0, 41, 0,197,255, 68, 0, 41, 0,198,255, 68, 0, 41, 0,199,
-255, 68, 0, 41, 0,213,255,144, 0, 41, 0,215,255,144, 0, 41, 0,217,255,144, 0, 41, 0,219,255,144, 0, 41, 0,221,255,144,
- 0, 41, 0,241,255,107, 0, 41, 0,245,255,107, 0, 41, 1, 15,255,183, 0, 41, 1, 17,255,183, 0, 41, 1, 19,255,183, 0, 41,
- 1, 23,255,107, 0, 41, 1, 25,255,107, 0, 41, 1, 27,255,107, 0, 41, 1, 28,255,220, 0, 41, 1, 30,255,220, 0, 41, 1, 32,
-255,220, 0, 41, 1, 34,255,220, 0, 41, 1, 36,255,220, 0, 41, 1, 38,255,220, 0, 41, 1, 40,255,220, 0, 41, 1, 43,255,144,
- 0, 41, 1, 45,255,144, 0, 41, 1, 47,255,144, 0, 41, 1, 49,255,144, 0, 41, 1, 51,255,144, 0, 41, 1, 53,255,144, 0, 41,
- 1, 57,255, 68, 0, 41, 1,173,255,183, 0, 41, 1,175,255,183, 0, 41, 1,218,255,220, 0, 41, 1,220,255,220, 0, 41, 1,241,
-255,183, 0, 41, 1,245,255, 68, 0, 41, 5,107,255, 68, 0, 41, 5,145,255,211, 0, 41, 5,147,254,136, 0, 42, 0, 55,255,183,
- 0, 42, 0, 60,255,154, 0, 42, 0,109,255,220, 0, 42, 0,125,255,220, 0, 42, 0,159,255,154, 0, 42, 1, 38,255,183, 0, 42,
- 1, 58,255,154, 0, 42, 5,145,255,211, 0, 42, 5,146,255,211, 0, 42, 5,147,255,201, 0, 43, 0, 17,255,220, 0, 43, 5,145,
-255,183, 0, 43, 5,146,255,193, 0, 43, 5,147,255,183, 0, 45, 0, 16,255,183, 0, 45, 0, 36,255,220, 0, 45, 0,109,255,220,
- 0, 45, 0,125,255,220, 0, 45, 0,130,255,220, 0, 45, 0,131,255,220, 0, 45, 0,132,255,220, 0, 45, 0,133,255,220, 0, 45,
- 0,134,255,220, 0, 45, 5,145,255,183, 0, 45, 5,146,255,193, 0, 45, 5,147,255,144, 0, 46, 0, 16,255, 41, 0, 46, 0, 36,
-255,220, 0, 46, 0, 38,255,144, 0, 46, 0, 50,255,144, 0, 46, 0, 55,255, 97, 0, 46, 0, 56,255,201, 0, 46, 0, 58,255,183,
- 0, 46, 0, 60,255,183, 0, 46, 0, 68,255,220, 0, 46, 0, 72,255,154, 0, 46, 0, 82,255,154, 0, 46, 0, 88,255,154, 0, 46,
- 0, 92,255,107, 0, 46, 0,109,255,125, 0, 46, 0,130,255,220, 0, 46, 0,131,255,220, 0, 46, 0,132,255,220, 0, 46, 0,133,
-255,220, 0, 46, 0,134,255,220, 0, 46, 0,137,255,144, 0, 46, 0,148,255,144, 0, 46, 0,149,255,144, 0, 46, 0,150,255,144,
- 0, 46, 0,151,255,144, 0, 46, 0,152,255,144, 0, 46, 0,155,255,201, 0, 46, 0,156,255,201, 0, 46, 0,157,255,201, 0, 46,
- 0,158,255,201, 0, 46, 0,159,255,183, 0, 46, 0,162,255,220, 0, 46, 0,163,255,220, 0, 46, 0,164,255,220, 0, 46, 0,165,
-255,220, 0, 46, 0,166,255,220, 0, 46, 0,167,255,220, 0, 46, 0,170,255,154, 0, 46, 0,171,255,154, 0, 46, 0,172,255,154,
- 0, 46, 0,173,255,154, 0, 46, 0,180,255,154, 0, 46, 0,181,255,154, 0, 46, 0,182,255,154, 0, 46, 0,183,255,154, 0, 46,
- 0,184,255,154, 0, 46, 0,187,255,154, 0, 46, 0,188,255,154, 0, 46, 0,189,255,154, 0, 46, 0,190,255,154, 0, 46, 0,191,
-255,107, 0, 46, 0,193,255,107, 0, 46, 0,200,255,144, 0, 46, 0,206,255,144, 0, 46, 0,221,255,154, 0, 46, 1, 38,255, 97,
- 0, 46, 1, 48,255,201, 0, 46, 1, 49,255,154, 0, 46, 1, 58,255,183, 0, 46, 5,145,255,193, 0, 46, 5,146,255,193, 0, 47,
- 0, 16,255,220, 0, 47, 0, 36, 0, 47, 0, 47, 0, 50,255,183, 0, 47, 0, 55,254,230, 0, 47, 0, 56,255,154, 0, 47, 0, 57,
-255, 31, 0, 47, 0, 58,255, 68, 0, 47, 0, 60,254,240, 0, 47, 0, 72,255,220, 0, 47, 0, 82,255,220, 0, 47, 0, 88,255,220,
- 0, 47, 0, 92,255, 68, 0, 47, 0,130, 0, 47, 0, 47, 0,131, 0, 47, 0, 47, 0,132, 0, 47, 0, 47, 0,133, 0, 47, 0, 47,
- 0,134, 0, 47, 0, 47, 0,148,255,183, 0, 47, 0,149,255,183, 0, 47, 0,150,255,183, 0, 47, 0,151,255,183, 0, 47, 0,152,
-255,183, 0, 47, 0,155,255,154, 0, 47, 0,156,255,154, 0, 47, 0,157,255,154, 0, 47, 0,158,255,154, 0, 47, 0,159,254,240,
- 0, 47, 0,170,255,220, 0, 47, 0,171,255,220, 0, 47, 0,172,255,220, 0, 47, 0,173,255,220, 0, 47, 0,180,255,220, 0, 47,
- 0,181,255,220, 0, 47, 0,182,255,220, 0, 47, 0,183,255,220, 0, 47, 0,184,255,220, 0, 47, 0,187,255,220, 0, 47, 0,188,
-255,220, 0, 47, 0,189,255,220, 0, 47, 0,190,255,220, 0, 47, 0,191,255, 68, 0, 47, 0,193,255, 68, 0, 47, 0,221,255,220,
- 0, 47, 1, 38,254,230, 0, 47, 1, 48,255,154, 0, 47, 1, 49,255,220, 0, 47, 1, 58,254,240, 0, 47, 5,145,254, 97, 0, 47,
- 5,146,253,230, 0, 50, 0, 16, 0, 57, 0, 50, 0, 17,255,173, 0, 50, 0, 29,255,220, 0, 50, 0, 36,255,220, 0, 50, 0, 57,
-255,220, 0, 50, 0, 59,255,125, 0, 50, 0, 60,255,144, 0, 50, 0,109,255,220, 0, 50, 0,130,255,220, 0, 50, 0,131,255,220,
- 0, 50, 0,132,255,220, 0, 50, 0,133,255,220, 0, 50, 0,134,255,220, 0, 50, 0,159,255,144, 0, 50, 1, 58,255,144, 0, 50,
- 5,145,255,211, 0, 50, 5,146,255,220, 0, 50, 5,147,255, 68, 0, 51, 0, 16,255,211, 0, 51, 0, 17,254,193, 0, 51, 0, 36,
-255,125, 0, 51, 0, 60,255,211, 0, 51, 0, 68,255,164, 0, 51, 0, 72,255,183, 0, 51, 0, 76,255,211, 0, 51, 0, 81,255,220,
- 0, 51, 0, 82,255,183, 0, 51, 0, 85,255,220, 0, 51, 0, 86,255,220, 0, 51, 0, 88,255,220, 0, 51, 0,109,255,220, 0, 51,
- 0,130,255,125, 0, 51, 0,131,255,125, 0, 51, 0,132,255,125, 0, 51, 0,133,255,125, 0, 51, 0,134,255,125, 0, 51, 0,159,
-255,211, 0, 51, 0,162,255,164, 0, 51, 0,163,255,164, 0, 51, 0,164,255,164, 0, 51, 0,165,255,164, 0, 51, 0,166,255,164,
- 0, 51, 0,167,255,164, 0, 51, 0,170,255,183, 0, 51, 0,171,255,183, 0, 51, 0,172,255,183, 0, 51, 0,173,255,183, 0, 51,
- 0,179,255,220, 0, 51, 0,180,255,183, 0, 51, 0,181,255,183, 0, 51, 0,182,255,183, 0, 51, 0,183,255,183, 0, 51, 0,184,
-255,183, 0, 51, 0,187,255,220, 0, 51, 0,188,255,220, 0, 51, 0,189,255,220, 0, 51, 0,190,255,220, 0, 51, 0,221,255,183,
- 0, 51, 1, 10,255,220, 0, 51, 1, 23,255,220, 0, 51, 1, 27,255,220, 0, 51, 1, 33,255,220, 0, 51, 1, 35,255,220, 0, 51,
- 1, 49,255,220, 0, 51, 1, 58,255,211, 0, 51, 5,145, 0, 38, 0, 51, 5,146, 0, 38, 0, 51, 5,147,254,183, 0, 52, 0, 16,
- 0, 57, 0, 52, 5,145,255,211, 0, 52, 5,146,255,220, 0, 52, 5,147,255,125, 0, 53, 0, 16,255,173, 0, 53, 0, 17,255,183,
- 0, 53, 0, 29,255,193, 0, 53, 0, 36,255,173, 0, 53, 0, 38,255,154, 0, 53, 0, 55,255,107, 0, 53, 0, 57,255,144, 0, 53,
- 0, 58,255,173, 0, 53, 0, 60,255,125, 0, 53, 0, 68,255,211, 0, 53, 0, 72,255,164, 0, 53, 0, 82,255,164, 0, 53, 0, 88,
-255,164, 0, 53, 0, 92,255,144, 0, 53, 0,109,255,144, 0, 53, 0,125,255,220, 0, 53, 0,130,255,173, 0, 53, 0,131,255,173,
- 0, 53, 0,132,255,173, 0, 53, 0,133,255,173, 0, 53, 0,134,255,173, 0, 53, 0,137,255,154, 0, 53, 0,159,255,125, 0, 53,
- 0,162,255,211, 0, 53, 0,163,255,211, 0, 53, 0,164,255,211, 0, 53, 0,165,255,211, 0, 53, 0,166,255,211, 0, 53, 0,167,
-255,211, 0, 53, 0,170,255,164, 0, 53, 0,171,255,164, 0, 53, 0,172,255,164, 0, 53, 0,173,255,164, 0, 53, 0,180,255,164,
- 0, 53, 0,181,255,164, 0, 53, 0,182,255,164, 0, 53, 0,183,255,164, 0, 53, 0,184,255,164, 0, 53, 0,187,255,164, 0, 53,
- 0,188,255,164, 0, 53, 0,189,255,164, 0, 53, 0,190,255,164, 0, 53, 0,191,255,144, 0, 53, 0,193,255,144, 0, 53, 0,200,
-255,154, 0, 53, 0,206,255,154, 0, 53, 0,221,255,164, 0, 53, 1, 38,255,107, 0, 53, 1, 49,255,164, 0, 53, 1, 58,255,125,
- 0, 53, 5,145,255,107, 0, 53, 5,146,255,125, 0, 53, 5,147,255,220, 0, 54, 0, 36, 0, 38, 0, 54, 0,130, 0, 38, 0, 54,
- 0,131, 0, 38, 0, 54, 0,132, 0, 38, 0, 54, 0,133, 0, 38, 0, 54, 0,134, 0, 38, 0, 55, 0, 16,255, 68, 0, 55, 0, 17,
-255, 13, 0, 55, 0, 29,255, 31, 0, 55, 0, 36,255, 97, 0, 55, 0, 38,255,136, 0, 55, 0, 55,255,220, 0, 55, 0, 68,254,173,
- 0, 55, 0, 70,254,164, 0, 55, 0, 72,254,164, 0, 55, 0, 76,255,193, 0, 55, 0, 82,254,164, 0, 55, 0, 85,254,211, 0, 55,
- 0, 86,254,173, 0, 55, 0, 88,254,201, 0, 55, 0, 90,254,173, 0, 55, 0, 92,254,193, 0, 55, 0,109,255, 68, 0, 55, 0,125,
-255,144, 0, 55, 0,130,255, 97, 0, 55, 0,131,255, 97, 0, 55, 0,132,255, 97, 0, 55, 0,133,255, 97, 0, 55, 0,134,255, 97,
- 0, 55, 0,137,255,136, 0, 55, 0,162,254,173, 0, 55, 0,163,254,173, 0, 55, 0,164,254,173, 0, 55, 0,165,254,173, 0, 55,
- 0,166,254,173, 0, 55, 0,167,254,173, 0, 55, 0,169,254,164, 0, 55, 0,170,254,164, 0, 55, 0,171,254,164, 0, 55, 0,172,
-254,164, 0, 55, 0,173,254,164, 0, 55, 0,180,254,164, 0, 55, 0,181,254,164, 0, 55, 0,182,254,164, 0, 55, 0,183,254,164,
- 0, 55, 0,184,254,164, 0, 55, 0,187,254,201, 0, 55, 0,188,254,201, 0, 55, 0,189,254,201, 0, 55, 0,190,254,201, 0, 55,
- 0,191,254,193, 0, 55, 0,193,254,193, 0, 55, 0,200,255,136, 0, 55, 0,201,254,164, 0, 55, 0,206,255,136, 0, 55, 0,207,
-254,164, 0, 55, 0,221,254,164, 0, 55, 1, 23,254,211, 0, 55, 1, 27,254,211, 0, 55, 1, 33,254,173, 0, 55, 1, 35,254,173,
- 0, 55, 1, 38,255,220, 0, 55, 1, 49,254,201, 0, 55, 5,146,255,211, 0, 55, 5,147,254,248, 0, 56, 0, 61,255,220, 0, 56,
- 1, 63,255,220, 0, 57, 0, 16,255,136, 0, 57, 0, 17,254,248, 0, 57, 0, 29,255, 89, 0, 57, 0, 36,255,125, 0, 57, 0, 50,
-255,220, 0, 57, 0, 68,255, 97, 0, 57, 0, 72,255, 97, 0, 57, 0, 76,255,211, 0, 57, 0, 82,255, 97, 0, 57, 0, 88,255,117,
- 0, 57, 0, 92,255,201, 0, 57, 0,109,255, 78, 0, 57, 0,125,255,144, 0, 57, 0,130,255,125, 0, 57, 0,131,255,125, 0, 57,
- 0,132,255,125, 0, 57, 0,133,255,125, 0, 57, 0,134,255,125, 0, 57, 0,148,255,220, 0, 57, 0,149,255,220, 0, 57, 0,150,
-255,220, 0, 57, 0,151,255,220, 0, 57, 0,152,255,220, 0, 57, 0,162,255, 97, 0, 57, 0,163,255, 97, 0, 57, 0,164,255, 97,
- 0, 57, 0,165,255, 97, 0, 57, 0,166,255, 97, 0, 57, 0,167,255, 97, 0, 57, 0,170,255, 97, 0, 57, 0,171,255, 97, 0, 57,
- 0,172,255, 97, 0, 57, 0,173,255, 97, 0, 57, 0,180,255, 97, 0, 57, 0,181,255, 97, 0, 57, 0,182,255, 97, 0, 57, 0,183,
-255, 97, 0, 57, 0,184,255, 97, 0, 57, 0,187,255,117, 0, 57, 0,188,255,117, 0, 57, 0,189,255,117, 0, 57, 0,190,255,117,
- 0, 57, 0,191,255,201, 0, 57, 0,193,255,201, 0, 57, 0,221,255, 97, 0, 57, 1, 49,255,117, 0, 57, 5,147,254,230, 0, 58,
- 0, 16,255,173, 0, 58, 0, 17,255, 21, 0, 58, 0, 29,255,136, 0, 58, 0, 36,255,144, 0, 58, 0, 68,255,125, 0, 58, 0, 72,
-255,136, 0, 58, 0, 76,255,211, 0, 58, 0, 82,255,136, 0, 58, 0, 85,255,164, 0, 58, 0, 88,255,183, 0, 58, 0, 92,255,220,
- 0, 58, 0,109,255,144, 0, 58, 0,125,255,220, 0, 58, 0,130,255,144, 0, 58, 0,131,255,144, 0, 58, 0,132,255,144, 0, 58,
- 0,133,255,144, 0, 58, 0,134,255,144, 0, 58, 0,162,255,125, 0, 58, 0,163,255,125, 0, 58, 0,164,255,125, 0, 58, 0,165,
-255,125, 0, 58, 0,166,255,125, 0, 58, 0,167,255,125, 0, 58, 0,170,255,136, 0, 58, 0,171,255,136, 0, 58, 0,172,255,136,
- 0, 58, 0,173,255,136, 0, 58, 0,180,255,136, 0, 58, 0,181,255,136, 0, 58, 0,182,255,136, 0, 58, 0,183,255,136, 0, 58,
- 0,184,255,136, 0, 58, 0,187,255,183, 0, 58, 0,188,255,183, 0, 58, 0,189,255,183, 0, 58, 0,190,255,183, 0, 58, 0,191,
-255,220, 0, 58, 0,193,255,220, 0, 58, 0,221,255,136, 0, 58, 1, 23,255,164, 0, 58, 1, 27,255,164, 0, 58, 1, 49,255,183,
- 0, 58, 5,145,255,220, 0, 58, 5,147,254,248, 0, 59, 0, 16,255,154, 0, 59, 0, 38,255,107, 0, 59, 0, 50,255,125, 0, 59,
- 0, 55,255,220, 0, 59, 0, 72,255,164, 0, 59, 0,109,255,144, 0, 59, 0,137,255,107, 0, 59, 0,148,255,125, 0, 59, 0,149,
-255,125, 0, 59, 0,150,255,125, 0, 59, 0,151,255,125, 0, 59, 0,152,255,125, 0, 59, 0,170,255,164, 0, 59, 0,171,255,164,
- 0, 59, 0,172,255,164, 0, 59, 0,173,255,164, 0, 59, 0,200,255,107, 0, 59, 0,206,255,107, 0, 59, 0,221,255,164, 0, 59,
- 1, 38,255,220, 0, 59, 5,145,255, 97, 0, 59, 5,146,255,173, 0, 59, 5,147,255,211, 0, 60, 0, 16,255, 13, 0, 60, 0, 17,
-254, 97, 0, 60, 0, 29,254,240, 0, 60, 0, 36,255, 97, 0, 60, 0, 38,255,144, 0, 60, 0, 50,255,144, 0, 60, 0, 68,254,230,
- 0, 60, 0, 72,254,240, 0, 60, 0, 76,255,183, 0, 60, 0, 82,254,240, 0, 60, 0, 88,255, 21, 0, 60, 0,109,255, 31, 0, 60,
- 0,125,255,107, 0, 60, 0,130,255, 97, 0, 60, 0,131,255, 97, 0, 60, 0,132,255, 97, 0, 60, 0,133,255, 97, 0, 60, 0,134,
-255, 97, 0, 60, 0,137,255,144, 0, 60, 0,148,255,144, 0, 60, 0,149,255,144, 0, 60, 0,150,255,144, 0, 60, 0,151,255,144,
- 0, 60, 0,152,255,144, 0, 60, 0,162,254,230, 0, 60, 0,163,254,230, 0, 60, 0,164,254,230, 0, 60, 0,165,254,230, 0, 60,
- 0,166,254,230, 0, 60, 0,167,254,230, 0, 60, 0,170,254,240, 0, 60, 0,171,254,240, 0, 60, 0,172,254,240, 0, 60, 0,173,
-254,240, 0, 60, 0,180,254,240, 0, 60, 0,181,254,240, 0, 60, 0,182,254,240, 0, 60, 0,183,254,240, 0, 60, 0,184,254,240,
- 0, 60, 0,187,255, 21, 0, 60, 0,188,255, 21, 0, 60, 0,189,255, 21, 0, 60, 0,190,255, 21, 0, 60, 0,200,255,144, 0, 60,
- 0,206,255,144, 0, 60, 0,221,254,240, 0, 60, 1, 49,255, 21, 0, 60, 5,145,255,144, 0, 60, 5,146,255,220, 0, 60, 5,147,
-254,248, 0, 61, 0, 16,255,220, 0, 61, 5,145,255,220, 0, 61, 5,146,255,220, 0, 61, 5,147,255,220, 0, 72, 0, 91,255,220,
- 0, 73, 0, 16,255,144, 0, 73, 0, 17,255,107, 0, 73, 0, 29,255,183, 0, 73, 0, 87,255,220, 0, 73, 0, 90,255,220, 0, 73,
- 0, 92,255,220, 0, 73, 0,109,255,183, 0, 73, 0,125,255,220, 0, 73, 0,191,255,220, 0, 73, 0,193,255,220, 0, 73, 1, 39,
-255,220, 0, 73, 5,145, 0, 65, 0, 73, 5,147,255, 21, 0, 78, 0, 68,255,220, 0, 78, 0, 72,255,183, 0, 78, 0, 82,255,183,
- 0, 78, 0, 88,255,193, 0, 78, 0, 92,255,183, 0, 78, 0,162,255,220, 0, 78, 0,163,255,220, 0, 78, 0,164,255,220, 0, 78,
- 0,165,255,220, 0, 78, 0,166,255,220, 0, 78, 0,167,255,220, 0, 78, 0,170,255,183, 0, 78, 0,171,255,183, 0, 78, 0,172,
-255,183, 0, 78, 0,173,255,183, 0, 78, 0,180,255,183, 0, 78, 0,181,255,183, 0, 78, 0,182,255,183, 0, 78, 0,183,255,183,
- 0, 78, 0,184,255,183, 0, 78, 0,187,255,193, 0, 78, 0,188,255,193, 0, 78, 0,189,255,193, 0, 78, 0,190,255,193, 0, 78,
- 0,191,255,183, 0, 78, 0,193,255,183, 0, 78, 0,221,255,183, 0, 78, 1, 49,255,193, 0, 81, 5,145,255,107, 0, 81, 5,146,
-255,144, 0, 81, 5,147,255,164, 0, 82, 0, 16, 0, 38, 0, 82, 0, 17,255,220, 0, 82, 0, 91,255,193, 0, 82, 5,145,255,107,
- 0, 82, 5,146,255,183, 0, 82, 5,147,255,125, 0, 85, 0, 16,255,125, 0, 85, 0, 17,255, 68, 0, 85, 0, 29,255,220, 0, 85,
- 0, 70,255,211, 0, 85, 0, 71,255,220, 0, 85, 0, 72,255,211, 0, 85, 0, 74,255,220, 0, 85, 0, 75,255,220, 0, 85, 0, 80,
-255,220, 0, 85, 0, 81,255,220, 0, 85, 0, 82,255,211, 0, 85, 0, 84,255,220, 0, 85, 0, 85,255,220, 0, 85, 0, 91,255,201,
- 0, 85, 0,109,255,183, 0, 85, 0,169,255,211, 0, 85, 0,170,255,211, 0, 85, 0,171,255,211, 0, 85, 0,172,255,211, 0, 85,
- 0,173,255,211, 0, 85, 0,179,255,220, 0, 85, 0,180,255,211, 0, 85, 0,181,255,211, 0, 85, 0,182,255,211, 0, 85, 0,183,
-255,211, 0, 85, 0,184,255,211, 0, 85, 0,201,255,211, 0, 85, 0,207,255,211, 0, 85, 0,209, 0, 72, 0, 85, 0,221,255,211,
- 0, 85, 0,225,255,220, 0, 85, 1, 10,255,220, 0, 85, 1, 23,255,220, 0, 85, 1, 27,255,220, 0, 85, 5,146, 0, 86, 0, 85,
- 5,147,254,201, 0, 89, 0, 16,255,201, 0, 89, 0, 17,255, 97, 0, 89, 0, 29,255,144, 0, 89, 0,109,255,220, 0, 89, 0,125,
-255,220, 0, 89, 5,146,255,220, 0, 89, 5,147,254,240, 0, 90, 0, 17,255, 68, 0, 90, 0, 29,255,144, 0, 90, 0,109,255,220,
- 0, 90, 0,125,255,220, 0, 90, 5,147,255, 41, 0, 91, 0, 70,255,220, 0, 91, 0, 72,255,193, 0, 91, 0, 82,255,193, 0, 91,
- 0,169,255,220, 0, 91, 0,170,255,193, 0, 91, 0,171,255,193, 0, 91, 0,172,255,193, 0, 91, 0,173,255,193, 0, 91, 0,180,
-255,193, 0, 91, 0,181,255,193, 0, 91, 0,182,255,193, 0, 91, 0,183,255,193, 0, 91, 0,184,255,193, 0, 91, 0,201,255,220,
- 0, 91, 0,207,255,220, 0, 91, 0,221,255,193, 0, 92, 0, 16,255,220, 0, 92, 0, 17,254,220, 0, 92, 0, 29,255,107, 0, 92,
- 0,109,255,220, 0, 92, 0,125,255,220, 0, 92, 5,147,254,211, 0,109, 0, 37,255,220, 0,109, 0, 38,255,220, 0,109, 0, 39,
-255,220, 0,109, 0, 42,255,220, 0,109, 0, 45,255,220, 0,109, 0, 55,255,144, 0,109, 0, 57,255,144, 0,109, 0, 58,255,220,
- 0,109, 0, 60,255,107, 0,109, 0, 89,255,220, 0,109, 0, 90,255,220, 0,109, 0, 92,255,220, 0,109, 0,136, 0,151, 0,109,
- 0,137,255,220, 0,109, 0,159,255,107, 0,109, 0,191,255,220, 0,109, 0,193,255,220, 0,109, 0,200,255,220, 0,109, 0,206,
-255,220, 0,109, 0,208,255,220, 0,109, 0,224,255,220, 0,109, 1, 38,255,144, 0,109, 1, 58,255,107, 0,125, 0, 36,255,183,
- 0,125, 0, 37,255,183, 0,125, 0, 38,255,220, 0,125, 0, 39,255,220, 0,125, 0, 45,255,220, 0,125, 0, 50,255,220, 0,125,
- 0, 55,255, 68, 0,125, 0, 57,255, 78, 0,125, 0, 58,255,144, 0,125, 0, 59,255,144, 0,125, 0, 60,255, 31, 0,125, 0, 89,
-255,220, 0,125, 0, 90,255,220, 0,125, 0, 92,255,220, 0,125, 0,130,255,183, 0,125, 0,131,255,183, 0,125, 0,132,255,183,
- 0,125, 0,133,255,183, 0,125, 0,134,255,183, 0,125, 0,137,255,220, 0,125, 0,148,255,220, 0,125, 0,149,255,220, 0,125,
- 0,150,255,220, 0,125, 0,151,255,220, 0,125, 0,152,255,220, 0,125, 0,159,255, 31, 0,125, 0,191,255,220, 0,125, 0,193,
-255,220, 0,125, 0,200,255,220, 0,125, 0,206,255,220, 0,125, 0,208,255,220, 0,125, 1, 38,255, 68, 0,125, 1, 58,255, 31,
- 0,130, 0, 16,255,211, 0,130, 0, 17,255,220, 0,130, 0, 29,255,220, 0,130, 0, 36, 0, 57, 0,130, 0, 38,255,220, 0,130,
- 0, 42,255,220, 0,130, 0, 50,255,220, 0,130, 0, 52,255,220, 0,130, 0, 55,255, 97, 0,130, 0, 57,255,125, 0,130, 0, 58,
-255,144, 0,130, 0, 60,255, 97, 0,130, 0, 70,255,220, 0,130, 0, 71,255,220, 0,130, 0, 72,255,220, 0,130, 0, 73,255,183,
- 0,130, 0, 82,255,220, 0,130, 0, 84,255,220, 0,130, 0, 87,255,220, 0,130, 0, 89,255,136, 0,130, 0, 90,255,173, 0,130,
- 0, 92,255,117, 0,130, 0,109,255,183, 0,130, 0,130, 0, 57, 0,130, 0,131, 0, 57, 0,130, 0,132, 0, 57, 0,130, 0,133,
- 0, 57, 0,130, 0,134, 0, 57, 0,130, 0,137,255,220, 0,130, 0,148,255,220, 0,130, 0,149,255,220, 0,130, 0,150,255,220,
- 0,130, 0,151,255,220, 0,130, 0,152,255,220, 0,130, 0,159,255, 97, 0,130, 0,169,255,220, 0,130, 0,170,255,220, 0,130,
- 0,171,255,220, 0,130, 0,172,255,220, 0,130, 0,173,255,220, 0,130, 0,180,255,220, 0,130, 0,181,255,220, 0,130, 0,182,
-255,220, 0,130, 0,183,255,220, 0,130, 0,184,255,220, 0,130, 0,191,255,117, 0,130, 0,193,255,117, 0,130, 0,194, 0, 57,
- 0,130, 0,196, 0, 57, 0,130, 0,198, 0, 57, 0,130, 0,200,255,220, 0,130, 0,201,255,220, 0,130, 0,202,255,220, 0,130,
- 0,204,255,220, 0,130, 0,205,255,220, 0,130, 0,206,255,220, 0,130, 0,207,255,220, 0,130, 0,209,255,220, 0,130, 0,213,
-255,220, 0,130, 0,215,255,220, 0,130, 0,217,255,220, 0,130, 0,219,255,220, 0,130, 0,221,255,220, 0,130, 0,222,255,220,
- 0,130, 0,224,255,220, 0,130, 0,226,255,220, 0,130, 1, 14,255,220, 0,130, 1, 15,255,220, 0,130, 1, 16,255,220, 0,130,
- 1, 17,255,220, 0,130, 1, 18,255,220, 0,130, 1, 19,255,220, 0,130, 1, 36,255, 97, 0,130, 1, 37,255,220, 0,130, 1, 38,
-255, 97, 0,130, 1, 39,255,220, 0,130, 1, 54,255,144, 0,130, 1, 55,255,173, 0,130, 1, 56,255, 97, 0,130, 1, 57,255,117,
- 0,130, 1, 58,255, 97, 0,130, 1,240,255,220, 0,130, 1,241,255,220, 0,130, 4,252,255,144, 0,130, 4,255,255,173, 0,130,
- 5, 0,255,144, 0,130, 5, 1,255,173, 0,130, 5,106,255, 97, 0,130, 5,107,255,117, 0,130, 5,145,254,248, 0,130, 5,146,
-255, 3, 0,130, 5,147, 0, 47, 0,131, 0, 16,255,211, 0,131, 0, 17,255,220, 0,131, 0, 29,255,220, 0,131, 0, 36, 0, 57,
- 0,131, 0, 38,255,220, 0,131, 0, 42,255,220, 0,131, 0, 50,255,220, 0,131, 0, 52,255,220, 0,131, 0, 55,255, 97, 0,131,
- 0, 57,255,125, 0,131, 0, 58,255,144, 0,131, 0, 60,255, 97, 0,131, 0, 70,255,220, 0,131, 0, 71,255,220, 0,131, 0, 72,
-255,220, 0,131, 0, 73,255,183, 0,131, 0, 82,255,220, 0,131, 0, 84,255,220, 0,131, 0, 87,255,220, 0,131, 0, 89,255,136,
- 0,131, 0, 90,255,173, 0,131, 0, 92,255,117, 0,131, 0,109,255,183, 0,131, 0,130, 0, 57, 0,131, 0,131, 0, 57, 0,131,
- 0,132, 0, 57, 0,131, 0,133, 0, 57, 0,131, 0,134, 0, 57, 0,131, 0,137,255,220, 0,131, 0,148,255,220, 0,131, 0,149,
-255,220, 0,131, 0,150,255,220, 0,131, 0,151,255,220, 0,131, 0,152,255,220, 0,131, 0,159,255, 97, 0,131, 0,169,255,220,
- 0,131, 0,170,255,220, 0,131, 0,171,255,220, 0,131, 0,172,255,220, 0,131, 0,173,255,220, 0,131, 0,180,255,220, 0,131,
- 0,181,255,220, 0,131, 0,182,255,220, 0,131, 0,183,255,220, 0,131, 0,184,255,220, 0,131, 0,191,255,117, 0,131, 0,193,
-255,117, 0,131, 0,194, 0, 57, 0,131, 0,196, 0, 57, 0,131, 0,198, 0, 57, 0,131, 0,200,255,220, 0,131, 0,201,255,220,
- 0,131, 0,202,255,220, 0,131, 0,204,255,220, 0,131, 0,205,255,220, 0,131, 0,206,255,220, 0,131, 0,207,255,220, 0,131,
- 0,209,255,220, 0,131, 0,213,255,220, 0,131, 0,215,255,220, 0,131, 0,217,255,220, 0,131, 0,219,255,220, 0,131, 0,221,
-255,220, 0,131, 0,222,255,220, 0,131, 0,224,255,220, 0,131, 0,226,255,220, 0,131, 1, 14,255,220, 0,131, 1, 15,255,220,
- 0,131, 1, 16,255,220, 0,131, 1, 17,255,220, 0,131, 1, 18,255,220, 0,131, 1, 19,255,220, 0,131, 1, 36,255, 97, 0,131,
- 1, 37,255,220, 0,131, 1, 38,255, 97, 0,131, 1, 39,255,220, 0,131, 1, 54,255,144, 0,131, 1, 55,255,173, 0,131, 1, 56,
-255, 97, 0,131, 1, 57,255,117, 0,131, 1, 58,255, 97, 0,131, 1,240,255,220, 0,131, 1,241,255,220, 0,131, 4,252,255,144,
- 0,131, 4,254,255,144, 0,131, 4,255,255,173, 0,131, 5, 0,255,144, 0,131, 5, 1,255,173, 0,131, 5,106,255, 97, 0,131,
- 5,107,255,117, 0,131, 5,145,254,248, 0,131, 5,146,255, 3, 0,131, 5,147, 0, 47, 0,132, 0, 16,255,211, 0,132, 0, 17,
-255,220, 0,132, 0, 29,255,220, 0,132, 0, 36, 0, 57, 0,132, 0, 38,255,220, 0,132, 0, 42,255,220, 0,132, 0, 50,255,220,
- 0,132, 0, 52,255,220, 0,132, 0, 55,255, 97, 0,132, 0, 57,255,125, 0,132, 0, 58,255,144, 0,132, 0, 60,255, 97, 0,132,
- 0, 70,255,220, 0,132, 0, 71,255,220, 0,132, 0, 72,255,220, 0,132, 0, 73,255,183, 0,132, 0, 82,255,220, 0,132, 0, 84,
-255,220, 0,132, 0, 87,255,220, 0,132, 0, 89,255,136, 0,132, 0, 90,255,173, 0,132, 0, 92,255,117, 0,132, 0,109,255,183,
- 0,132, 0,130, 0, 57, 0,132, 0,131, 0, 57, 0,132, 0,132, 0, 57, 0,132, 0,133, 0, 57, 0,132, 0,134, 0, 57, 0,132,
- 0,137,255,220, 0,132, 0,148,255,220, 0,132, 0,149,255,220, 0,132, 0,150,255,220, 0,132, 0,151,255,220, 0,132, 0,152,
-255,220, 0,132, 0,159,255, 97, 0,132, 0,169,255,220, 0,132, 0,170,255,220, 0,132, 0,171,255,220, 0,132, 0,172,255,220,
- 0,132, 0,173,255,220, 0,132, 0,180,255,220, 0,132, 0,181,255,220, 0,132, 0,182,255,220, 0,132, 0,183,255,220, 0,132,
- 0,184,255,220, 0,132, 0,191,255,117, 0,132, 0,193,255,117, 0,132, 0,194, 0, 57, 0,132, 0,196, 0, 57, 0,132, 0,198,
- 0, 57, 0,132, 0,200,255,220, 0,132, 0,201,255,220, 0,132, 0,202,255,220, 0,132, 0,204,255,220, 0,132, 0,205,255,220,
- 0,132, 0,206,255,220, 0,132, 0,207,255,220, 0,132, 0,209,255,220, 0,132, 0,213,255,220, 0,132, 0,215,255,220, 0,132,
- 0,217,255,220, 0,132, 0,219,255,220, 0,132, 0,221,255,220, 0,132, 0,222,255,220, 0,132, 0,224,255,220, 0,132, 0,226,
-255,220, 0,132, 1, 14,255,220, 0,132, 1, 15,255,220, 0,132, 1, 16,255,220, 0,132, 1, 17,255,220, 0,132, 1, 18,255,220,
- 0,132, 1, 19,255,220, 0,132, 1, 36,255, 97, 0,132, 1, 37,255,220, 0,132, 1, 38,255, 97, 0,132, 1, 39,255,220, 0,132,
- 1, 54,255,144, 0,132, 1, 55,255,173, 0,132, 1, 56,255, 97, 0,132, 1, 57,255,117, 0,132, 1, 58,255, 97, 0,132, 1,240,
-255,220, 0,132, 1,241,255,220, 0,132, 4,252,255,144, 0,132, 4,254,255,144, 0,132, 4,255,255,173, 0,132, 5, 0,255,144,
- 0,132, 5, 1,255,173, 0,132, 5,106,255, 97, 0,132, 5,107,255,117, 0,132, 5,145,254,248, 0,132, 5,146,255, 3, 0,132,
- 5,147, 0, 47, 0,133, 0, 16,255,211, 0,133, 0, 17,255,220, 0,133, 0, 29,255,220, 0,133, 0, 36, 0, 57, 0,133, 0, 38,
-255,220, 0,133, 0, 42,255,220, 0,133, 0, 50,255,220, 0,133, 0, 52,255,220, 0,133, 0, 55,255, 97, 0,133, 0, 57,255,125,
- 0,133, 0, 58,255,144, 0,133, 0, 60,255, 97, 0,133, 0, 70,255,220, 0,133, 0, 71,255,220, 0,133, 0, 72,255,220, 0,133,
- 0, 73,255,183, 0,133, 0, 82,255,220, 0,133, 0, 84,255,220, 0,133, 0, 87,255,220, 0,133, 0, 89,255,136, 0,133, 0, 90,
-255,173, 0,133, 0, 92,255,117, 0,133, 0,109,255,183, 0,133, 0,130, 0, 57, 0,133, 0,131, 0, 57, 0,133, 0,132, 0, 57,
- 0,133, 0,133, 0, 57, 0,133, 0,134, 0, 57, 0,133, 0,137,255,220, 0,133, 0,148,255,220, 0,133, 0,149,255,220, 0,133,
- 0,150,255,220, 0,133, 0,151,255,220, 0,133, 0,152,255,220, 0,133, 0,159,255, 97, 0,133, 0,169,255,220, 0,133, 0,170,
-255,220, 0,133, 0,171,255,220, 0,133, 0,172,255,220, 0,133, 0,173,255,220, 0,133, 0,180,255,220, 0,133, 0,181,255,220,
- 0,133, 0,182,255,220, 0,133, 0,183,255,220, 0,133, 0,184,255,220, 0,133, 0,191,255,117, 0,133, 0,193,255,117, 0,133,
- 0,194, 0, 57, 0,133, 0,196, 0, 57, 0,133, 0,198, 0, 57, 0,133, 0,200,255,220, 0,133, 0,201,255,220, 0,133, 0,202,
-255,220, 0,133, 0,204,255,220, 0,133, 0,205,255,220, 0,133, 0,206,255,220, 0,133, 0,207,255,220, 0,133, 0,209,255,220,
- 0,133, 0,213,255,220, 0,133, 0,215,255,220, 0,133, 0,217,255,220, 0,133, 0,219,255,220, 0,133, 0,221,255,220, 0,133,
- 0,222,255,220, 0,133, 0,224,255,220, 0,133, 0,226,255,220, 0,133, 1, 14,255,220, 0,133, 1, 15,255,220, 0,133, 1, 16,
-255,220, 0,133, 1, 17,255,220, 0,133, 1, 18,255,220, 0,133, 1, 19,255,220, 0,133, 1, 36,255, 97, 0,133, 1, 37,255,220,
- 0,133, 1, 38,255, 97, 0,133, 1, 39,255,220, 0,133, 1, 54,255,144, 0,133, 1, 55,255,173, 0,133, 1, 56,255, 97, 0,133,
- 1, 57,255,117, 0,133, 1, 58,255, 97, 0,133, 1,240,255,220, 0,133, 4,252,255,144, 0,133, 4,254,255,144, 0,133, 4,255,
-255,173, 0,133, 5, 0,255,144, 0,133, 5, 1,255,173, 0,133, 5,106,255, 97, 0,133, 5,107,255,117, 0,133, 5,145,254,248,
- 0,133, 5,146,255, 3, 0,133, 5,147, 0, 47, 0,134, 0, 16,255,211, 0,134, 0, 17,255,220, 0,134, 0, 29,255,220, 0,134,
- 0, 36, 0, 57, 0,134, 0, 38,255,220, 0,134, 0, 42,255,220, 0,134, 0, 50,255,220, 0,134, 0, 52,255,220, 0,134, 0, 55,
-255, 97, 0,134, 0, 57,255,125, 0,134, 0, 58,255,144, 0,134, 0, 60,255, 97, 0,134, 0, 70,255,220, 0,134, 0, 71,255,220,
- 0,134, 0, 72,255,220, 0,134, 0, 73,255,183, 0,134, 0, 82,255,220, 0,134, 0, 84,255,220, 0,134, 0, 87,255,220, 0,134,
- 0, 89,255,136, 0,134, 0, 90,255,173, 0,134, 0, 92,255,117, 0,134, 0,109,255,183, 0,134, 0,130, 0, 57, 0,134, 0,131,
- 0, 57, 0,134, 0,132, 0, 57, 0,134, 0,133, 0, 57, 0,134, 0,134, 0, 57, 0,134, 0,137,255,220, 0,134, 0,148,255,220,
- 0,134, 0,149,255,220, 0,134, 0,150,255,220, 0,134, 0,151,255,220, 0,134, 0,152,255,220, 0,134, 0,159,255, 97, 0,134,
- 0,169,255,220, 0,134, 0,170,255,220, 0,134, 0,171,255,220, 0,134, 0,172,255,220, 0,134, 0,173,255,220, 0,134, 0,180,
-255,220, 0,134, 0,181,255,220, 0,134, 0,182,255,220, 0,134, 0,183,255,220, 0,134, 0,184,255,220, 0,134, 0,191,255,117,
- 0,134, 0,193,255,117, 0,134, 0,194, 0, 57, 0,134, 0,196, 0, 57, 0,134, 0,198, 0, 57, 0,134, 0,200,255,220, 0,134,
- 0,201,255,220, 0,134, 0,202,255,220, 0,134, 0,204,255,220, 0,134, 0,205,255,220, 0,134, 0,206,255,220, 0,134, 0,207,
-255,220, 0,134, 0,209,255,220, 0,134, 0,213,255,220, 0,134, 0,215,255,220, 0,134, 0,217,255,220, 0,134, 0,219,255,220,
- 0,134, 0,221,255,220, 0,134, 0,222,255,220, 0,134, 0,224,255,220, 0,134, 0,226,255,220, 0,134, 1, 14,255,220, 0,134,
- 1, 15,255,220, 0,134, 1, 16,255,220, 0,134, 1, 17,255,220, 0,134, 1, 18,255,220, 0,134, 1, 19,255,220, 0,134, 1, 36,
-255, 97, 0,134, 1, 37,255,220, 0,134, 1, 38,255, 97, 0,134, 1, 39,255,220, 0,134, 1, 54,255,144, 0,134, 1, 55,255,173,
- 0,134, 1, 56,255, 97, 0,134, 1, 57,255,117, 0,134, 1, 58,255, 97, 0,134, 1,240,255,220, 0,134, 1,241,255,220, 0,134,
- 4,252,255,144, 0,134, 4,254,255,144, 0,134, 4,255,255,173, 0,134, 5, 0,255,144, 0,134, 5, 1,255,173, 0,134, 5,106,
-255, 97, 0,134, 5,107,255,117, 0,134, 5,145,254,248, 0,134, 5,146,255, 3, 0,134, 5,147, 0, 47, 0,136, 5,145,255,173,
- 0,136, 5,146,255,164, 0,136, 5,147,255,144, 0,137, 0, 60,255,220, 0,137, 0,109,255,220, 0,137, 0,125,255,220, 0,137,
- 0,159,255,220, 0,137, 1, 58,255,220, 0,137, 5,146, 0, 38, 0,146, 0, 36,255,220, 0,146, 0, 57,255,220, 0,146, 0, 60,
-255,144, 0,146, 0,109,255,220, 0,146, 0,125,255,220, 0,146, 0,130,255,220, 0,146, 0,131,255,220, 0,146, 0,132,255,220,
- 0,146, 0,133,255,220, 0,146, 0,134,255,220, 0,146, 0,159,255,144, 0,146, 0,194,255,220, 0,146, 0,196,255,220, 0,146,
- 0,198,255,220, 0,146, 1, 56,255,144, 0,146, 1, 58,255,144, 0,146, 1,244,255,144, 0,146, 5,106,255,144, 0,146, 5,145,
-255,211, 0,146, 5,146,255,201, 0,146, 5,147,255, 68, 0,148, 0, 16, 0, 57, 0,148, 0, 17,255,173, 0,148, 0, 29,255,220,
- 0,148, 0, 36,255,220, 0,148, 0, 57,255,220, 0,148, 0, 59,255,125, 0,148, 0, 60,255,144, 0,148, 0,109,255,220, 0,148,
- 0,130,255,220, 0,148, 0,131,255,220, 0,148, 0,132,255,220, 0,148, 0,133,255,220, 0,148, 0,134,255,220, 0,148, 0,159,
-255,144, 0,148, 1, 58,255,144, 0,148, 5,145,255,211, 0,148, 5,146,255,220, 0,148, 5,147,255, 68, 0,149, 0, 16, 0, 57,
- 0,149, 0, 17,255,173, 0,149, 0, 29,255,220, 0,149, 0, 36,255,220, 0,149, 0, 57,255,220, 0,149, 0, 59,255,125, 0,149,
- 0, 60,255,144, 0,149, 0,109,255,220, 0,149, 0,130,255,220, 0,149, 0,131,255,220, 0,149, 0,132,255,220, 0,149, 0,133,
-255,220, 0,149, 0,134,255,220, 0,149, 0,159,255,144, 0,149, 1, 58,255,144, 0,149, 5,145,255,211, 0,149, 5,146,255,220,
- 0,149, 5,147,255, 68, 0,150, 0, 16, 0, 57, 0,150, 0, 17,255,173, 0,150, 0, 29,255,220, 0,150, 0, 36,255,220, 0,150,
- 0, 57,255,220, 0,150, 0, 59,255,125, 0,150, 0, 60,255,144, 0,150, 0,109,255,220, 0,150, 0,130,255,220, 0,150, 0,131,
-255,220, 0,150, 0,132,255,220, 0,150, 0,133,255,220, 0,150, 0,134,255,220, 0,150, 0,159,255,144, 0,150, 1, 58,255,144,
- 0,150, 5,145,255,211, 0,150, 5,146,255,220, 0,150, 5,147,255, 68, 0,151, 0, 16, 0, 57, 0,151, 0, 17,255,173, 0,151,
- 0, 29,255,220, 0,151, 0, 36,255,220, 0,151, 0, 57,255,220, 0,151, 0, 59,255,125, 0,151, 0, 60,255,144, 0,151, 0,109,
-255,220, 0,151, 0,130,255,220, 0,151, 0,131,255,220, 0,151, 0,132,255,220, 0,151, 0,133,255,220, 0,151, 0,134,255,220,
- 0,151, 0,159,255,144, 0,151, 1, 58,255,144, 0,151, 5,145,255,211, 0,151, 5,146,255,220, 0,151, 5,147,255, 68, 0,152,
- 0, 16, 0, 57, 0,152, 0, 17,255,173, 0,152, 0, 29,255,220, 0,152, 0, 36,255,220, 0,152, 0, 57,255,220, 0,152, 0, 59,
-255,125, 0,152, 0, 60,255,144, 0,152, 0,109,255,220, 0,152, 0,130,255,220, 0,152, 0,131,255,220, 0,152, 0,132,255,220,
- 0,152, 0,133,255,220, 0,152, 0,134,255,220, 0,152, 0,159,255,144, 0,152, 1, 58,255,144, 0,152, 5,145,255,211, 0,152,
- 5,146,255,220, 0,152, 5,147,255, 68, 0,155, 0, 61,255,220, 0,155, 1, 63,255,220, 0,156, 0, 61,255,220, 0,156, 1, 63,
-255,220, 0,157, 0, 61,255,220, 0,157, 1, 63,255,220, 0,158, 0, 61,255,220, 0,158, 1, 63,255,220, 0,159, 0, 16,255, 13,
- 0,159, 0, 17,254, 97, 0,159, 0, 29,254,240, 0,159, 0, 36,255, 97, 0,159, 0, 38,255,144, 0,159, 0, 50,255,144, 0,159,
- 0, 68,254,230, 0,159, 0, 72,254,240, 0,159, 0, 76,255,183, 0,159, 0, 82,254,240, 0,159, 0, 88,255, 21, 0,159, 0,109,
-255, 31, 0,159, 0,125,255,107, 0,159, 0,130,255, 97, 0,159, 0,131,255, 97, 0,159, 0,132,255, 97, 0,159, 0,133,255, 97,
- 0,159, 0,134,255, 97, 0,159, 0,137,255,144, 0,159, 0,148,255,144, 0,159, 0,149,255,144, 0,159, 0,150,255,144, 0,159,
- 0,151,255,144, 0,159, 0,152,255,144, 0,159, 0,162,254,230, 0,159, 0,163,254,230, 0,159, 0,164,254,230, 0,159, 0,165,
-254,230, 0,159, 0,166,254,230, 0,159, 0,167,254,230, 0,159, 0,170,254,240, 0,159, 0,171,254,240, 0,159, 0,172,254,240,
- 0,159, 0,173,254,240, 0,159, 0,180,254,240, 0,159, 0,181,254,240, 0,159, 0,182,254,240, 0,159, 0,183,254,240, 0,159,
- 0,184,254,240, 0,159, 0,187,255, 21, 0,159, 0,188,255, 21, 0,159, 0,189,255, 21, 0,159, 0,190,255, 21, 0,159, 0,200,
-255,144, 0,159, 0,206,255,144, 0,159, 0,221,254,240, 0,159, 1, 49,255, 21, 0,159, 5,145,255,144, 0,159, 5,146,255,220,
- 0,159, 5,147,254,248, 0,160, 0, 17,255,107, 0,160, 0, 29,255,183, 0,160, 5,145,255,220, 0,160, 5,147,255, 68, 0,161,
- 0, 16, 0, 38, 0,161, 5,145,255,144, 0,161, 5,146,255,144, 0,161, 5,147,255,173, 0,170, 0, 91,255,220, 0,171, 0, 91,
-255,220, 0,172, 0, 91,255,220, 0,173, 0, 91,255,220, 0,178, 5,145,255,164, 0,178, 5,146,255,144, 0,178, 5,147,255,183,
- 0,179, 5,145,255,107, 0,179, 5,146,255,144, 0,179, 5,147,255,164, 0,180, 0, 16, 0, 38, 0,180, 0, 17,255,220, 0,180,
- 0, 91,255,193, 0,180, 5,145,255,107, 0,180, 5,146,255,183, 0,180, 5,147,255,125, 0,181, 0, 16, 0, 38, 0,181, 0, 17,
-255,220, 0,181, 0, 91,255,193, 0,181, 5,145,255,107, 0,181, 5,146,255,183, 0,181, 5,147,255,125, 0,182, 0, 16, 0, 38,
- 0,182, 0, 17,255,220, 0,182, 0, 91,255,193, 0,182, 5,145,255,107, 0,182, 5,146,255,183, 0,182, 5,147,255,125, 0,183,
- 0, 16, 0, 38, 0,183, 0, 17,255,220, 0,183, 0, 91,255,193, 0,183, 5,145,255,107, 0,183, 5,146,255,183, 0,183, 5,147,
-255,125, 0,184, 0, 16, 0, 38, 0,184, 0, 17,255,220, 0,184, 0, 91,255,193, 0,184, 5,145,255,107, 0,184, 5,146,255,183,
- 0,184, 5,147,255,125, 0,191, 0, 16,255,220, 0,191, 0, 17,254,220, 0,191, 0, 29,255,107, 0,191, 0,109,255,220, 0,191,
- 0,125,255,220, 0,191, 5,147,254,211, 0,193, 0, 16,255,220, 0,193, 0, 17,254,220, 0,193, 0, 29,255,107, 0,193, 0,109,
-255,220, 0,193, 0,125,255,220, 0,193, 5,147,254,211, 0,194, 0, 16,255,211, 0,194, 0, 17,255,220, 0,194, 0, 29,255,220,
- 0,194, 0, 36, 0, 57, 0,194, 0, 38,255,220, 0,194, 0, 42,255,220, 0,194, 0, 50,255,220, 0,194, 0, 52,255,220, 0,194,
- 0, 55,255, 97, 0,194, 0, 57,255,125, 0,194, 0, 58,255,144, 0,194, 0, 60,255, 97, 0,194, 0, 70,255,220, 0,194, 0, 71,
-255,220, 0,194, 0, 72,255,220, 0,194, 0, 73,255,183, 0,194, 0, 82,255,220, 0,194, 0, 84,255,220, 0,194, 0, 87,255,220,
- 0,194, 0, 89,255,136, 0,194, 0, 90,255,173, 0,194, 0, 92,255,117, 0,194, 0,109,255,183, 0,194, 0,130, 0, 57, 0,194,
- 0,131, 0, 57, 0,194, 0,132, 0, 57, 0,194, 0,133, 0, 57, 0,194, 0,134, 0, 57, 0,194, 0,148,255,220, 0,194, 0,149,
-255,220, 0,194, 0,150,255,220, 0,194, 0,151,255,220, 0,194, 0,152,255,220, 0,194, 0,159,255, 97, 0,194, 0,169,255,220,
- 0,194, 0,170,255,220, 0,194, 0,171,255,220, 0,194, 0,172,255,220, 0,194, 0,173,255,220, 0,194, 0,180,255,220, 0,194,
- 0,181,255,220, 0,194, 0,182,255,220, 0,194, 0,183,255,220, 0,194, 0,184,255,220, 0,194, 0,191,255,117, 0,194, 0,193,
-255,117, 0,194, 0,194, 0, 57, 0,194, 0,196, 0, 57, 0,194, 0,198, 0, 57, 0,194, 0,200,255,220, 0,194, 0,202,255,220,
- 0,194, 0,204,255,220, 0,194, 0,205,255,220, 0,194, 0,206,255,220, 0,194, 0,209,255,220, 0,194, 0,211,255,220, 0,194,
- 0,213,255,220, 0,194, 0,215,255,220, 0,194, 0,217,255,220, 0,194, 0,219,255,220, 0,194, 0,221,255,220, 0,194, 0,222,
-255,220, 0,194, 0,226,255,220, 0,194, 1, 14,255,220, 0,194, 1, 15,255,220, 0,194, 1, 16,255,220, 0,194, 1, 17,255,220,
- 0,194, 1, 18,255,220, 0,194, 1, 19,255,220, 0,194, 1, 36,255, 97, 0,194, 1, 37,255,220, 0,194, 1, 38,255, 97, 0,194,
- 1, 39,255,220, 0,194, 1, 54,255,144, 0,194, 1, 55,255,173, 0,194, 1, 56,255, 97, 0,194, 1, 57,255,117, 0,194, 1, 58,
-255, 97, 0,194, 1,240,255,220, 0,194, 1,241,255,220, 0,194, 4,252,255,144, 0,194, 4,254,255,144, 0,194, 4,255,255,173,
- 0,194, 5, 0,255,144, 0,194, 5, 1,255,173, 0,194, 5,106,255, 97, 0,194, 5,107,255,117, 0,194, 5,145,254,248, 0,194,
- 5,146,255, 2, 0,194, 5,147, 0, 47, 0,196, 0, 16,255,211, 0,196, 0, 17,255,220, 0,196, 0, 29,255,220, 0,196, 0, 36,
- 0, 57, 0,196, 0, 38,255,220, 0,196, 0, 42,255,220, 0,196, 0, 50,255,220, 0,196, 0, 52,255,220, 0,196, 0, 55,255, 97,
- 0,196, 0, 57,255,125, 0,196, 0, 58,255,144, 0,196, 0, 60,255, 97, 0,196, 0, 70,255,220, 0,196, 0, 71,255,220, 0,196,
- 0, 72,255,220, 0,196, 0, 73,255,183, 0,196, 0, 82,255,220, 0,196, 0, 84,255,220, 0,196, 0, 87,255,220, 0,196, 0, 89,
-255,136, 0,196, 0, 90,255,173, 0,196, 0, 92,255,117, 0,196, 0,109,255,183, 0,196, 0,130, 0, 57, 0,196, 0,131, 0, 57,
- 0,196, 0,132, 0, 57, 0,196, 0,133, 0, 57, 0,196, 0,134, 0, 57, 0,196, 0,148,255,220, 0,196, 0,149,255,220, 0,196,
- 0,150,255,220, 0,196, 0,151,255,220, 0,196, 0,152,255,220, 0,196, 0,159,255, 97, 0,196, 0,169,255,220, 0,196, 0,170,
-255,220, 0,196, 0,171,255,220, 0,196, 0,172,255,220, 0,196, 0,173,255,220, 0,196, 0,180,255,220, 0,196, 0,181,255,220,
- 0,196, 0,182,255,220, 0,196, 0,183,255,220, 0,196, 0,184,255,220, 0,196, 0,191,255,117, 0,196, 0,193,255,117, 0,196,
- 0,194, 0, 57, 0,196, 0,196, 0, 57, 0,196, 0,198, 0, 57, 0,196, 0,200,255,220, 0,196, 0,202,255,220, 0,196, 0,204,
-255,220, 0,196, 0,205,255,220, 0,196, 0,206,255,220, 0,196, 0,209,255,220, 0,196, 0,211,255,220, 0,196, 0,213,255,220,
- 0,196, 0,215,255,220, 0,196, 0,217,255,220, 0,196, 0,219,255,220, 0,196, 0,221,255,220, 0,196, 0,222,255,220, 0,196,
- 0,226,255,220, 0,196, 1, 14,255,220, 0,196, 1, 15,255,220, 0,196, 1, 16,255,220, 0,196, 1, 17,255,220, 0,196, 1, 18,
-255,220, 0,196, 1, 19,255,220, 0,196, 1, 36,255, 97, 0,196, 1, 37,255,220, 0,196, 1, 38,255, 97, 0,196, 1, 39,255,220,
- 0,196, 1, 54,255,144, 0,196, 1, 55,255,173, 0,196, 1, 56,255, 97, 0,196, 1, 57,255,117, 0,196, 1, 58,255, 97, 0,196,
- 1,240,255,220, 0,196, 1,241,255,220, 0,196, 4,252,255,144, 0,196, 4,254,255,144, 0,196, 4,255,255,173, 0,196, 5, 0,
-255,144, 0,196, 5, 1,255,173, 0,196, 5,106,255, 97, 0,196, 5,107,255,117, 0,196, 5,145,254,248, 0,196, 5,146,255, 2,
- 0,196, 5,147, 0, 47, 0,198, 0, 16,255,211, 0,198, 0, 17,255,220, 0,198, 0, 29,255,220, 0,198, 0, 36, 0, 57, 0,198,
- 0, 38,255,220, 0,198, 0, 42,255,220, 0,198, 0, 50,255,220, 0,198, 0, 52,255,220, 0,198, 0, 55,255, 97, 0,198, 0, 57,
-255,125, 0,198, 0, 58,255,144, 0,198, 0, 60,255, 97, 0,198, 0, 70,255,220, 0,198, 0, 71,255,220, 0,198, 0, 72,255,220,
- 0,198, 0, 73,255,183, 0,198, 0, 82,255,220, 0,198, 0, 84,255,220, 0,198, 0, 87,255,220, 0,198, 0, 89,255,136, 0,198,
- 0, 90,255,173, 0,198, 0,109,255,183, 0,198, 0,130, 0, 57, 0,198, 0,131, 0, 57, 0,198, 0,132, 0, 57, 0,198, 0,133,
- 0, 57, 0,198, 0,134, 0, 57, 0,198, 0,148,255,220, 0,198, 0,149,255,220, 0,198, 0,150,255,220, 0,198, 0,151,255,220,
- 0,198, 0,152,255,220, 0,198, 0,159,255, 97, 0,198, 0,169,255,220, 0,198, 0,170,255,220, 0,198, 0,171,255,220, 0,198,
- 0,172,255,220, 0,198, 0,173,255,220, 0,198, 0,180,255,220, 0,198, 0,181,255,220, 0,198, 0,182,255,220, 0,198, 0,183,
-255,220, 0,198, 0,184,255,220, 0,198, 0,194, 0, 57, 0,198, 0,196, 0, 57, 0,198, 0,198, 0, 57, 0,198, 0,200,255,220,
- 0,198, 0,202,255,220, 0,198, 0,204,255,220, 0,198, 0,205,255,220, 0,198, 0,206,255,220, 0,198, 0,209,255,220, 0,198,
- 0,211,255,220, 0,198, 0,213,255,220, 0,198, 0,215,255,220, 0,198, 0,217,255,220, 0,198, 0,219,255,220, 0,198, 0,221,
-255,220, 0,198, 0,222,255,220, 0,198, 0,226,255,220, 0,198, 1, 14,255,220, 0,198, 1, 15,255,220, 0,198, 1, 16,255,220,
- 0,198, 1, 17,255,220, 0,198, 1, 19,255,220, 0,198, 1, 36,255, 97, 0,198, 1, 37,255,220, 0,198, 1, 38,255, 97, 0,198,
- 1, 39,255,220, 0,198, 1, 54,255,144, 0,198, 1, 55,255,173, 0,198, 1, 56,255, 97, 0,198, 1, 58,255, 97, 0,198, 1,240,
-255,220, 0,198, 1,241,255,220, 0,198, 4,252,255,144, 0,198, 4,254,255,144, 0,198, 4,255,255,173, 0,198, 5, 0,255,144,
- 0,198, 5, 1,255,173, 0,198, 5,106,255, 97, 0,198, 5,145,254,248, 0,198, 5,146,255, 2, 0,198, 5,147, 0, 47, 0,200,
- 0, 60,255,220, 0,200, 0,109,255,220, 0,200, 0,125,255,220, 0,200, 0,159,255,220, 0,200, 1, 58,255,220, 0,200, 5,146,
- 0, 38, 0,206, 0, 60,255,220, 0,206, 0,109,255,220, 0,206, 0,125,255,220, 0,206, 0,159,255,220, 0,206, 1, 58,255,220,
- 0,206, 5,146, 0, 38, 0,208, 0, 36,255,220, 0,208, 0, 57,255,220, 0,208, 0, 60,255,144, 0,208, 0,109,255,220, 0,208,
- 0,125,255,220, 0,208, 0,130,255,220, 0,208, 0,131,255,220, 0,208, 0,132,255,220, 0,208, 0,133,255,220, 0,208, 0,134,
-255,220, 0,208, 0,159,255,144, 0,208, 0,194,255,220, 0,208, 0,196,255,220, 0,208, 0,198,255,220, 0,208, 1, 56,255,144,
- 0,208, 1, 58,255,144, 0,208, 1,244,255,144, 0,208, 5,106,255,144, 0,208, 5,145,255,211, 0,208, 5,146,255,201, 0,208,
- 5,147,255, 68, 0,210, 0, 36,255,220, 0,210, 0, 57,255,220, 0,210, 0, 60,255,144, 0,210, 0,109,255,220, 0,210, 0,125,
-255,220, 0,210, 0,130,255,220, 0,210, 0,131,255,220, 0,210, 0,132,255,220, 0,210, 0,133,255,220, 0,210, 0,134,255,220,
- 0,210, 0,159,255,144, 0,210, 1, 58,255,144, 0,210, 5,145,255,211, 0,210, 5,146,255,201, 0,210, 5,147,255, 68, 0,221,
- 0, 91,255,220, 0,224, 0, 55,255,183, 0,224, 0, 60,255,154, 0,224, 0,109,255,220, 0,224, 0,125,255,220, 0,224, 0,159,
-255,154, 0,224, 1, 38,255,183, 0,224, 1, 58,255,154, 0,224, 5,145,255,211, 0,224, 5,146,255,211, 0,224, 5,147,255,201,
- 0,251, 0, 16,255,220, 0,251, 0, 36, 0, 47, 0,251, 0, 50,255,183, 0,251, 0, 55,254,230, 0,251, 0, 56,255,154, 0,251,
- 0, 57,255, 31, 0,251, 0, 58,255, 68, 0,251, 0, 60,254,240, 0,251, 0, 72,255,220, 0,251, 0, 82,255,220, 0,251, 0, 88,
-255,220, 0,251, 0, 92,255, 68, 0,251, 0,130, 0, 47, 0,251, 0,131, 0, 47, 0,251, 0,132, 0, 47, 0,251, 0,133, 0, 47,
- 0,251, 0,134, 0, 47, 0,251, 0,148,255,183, 0,251, 0,149,255,183, 0,251, 0,150,255,183, 0,251, 0,151,255,183, 0,251,
- 0,152,255,183, 0,251, 0,155,255,154, 0,251, 0,156,255,154, 0,251, 0,157,255,154, 0,251, 0,158,255,154, 0,251, 0,159,
-254,240, 0,251, 0,170,255,220, 0,251, 0,171,255,220, 0,251, 0,172,255,220, 0,251, 0,173,255,220, 0,251, 0,180,255,220,
- 0,251, 0,181,255,220, 0,251, 0,182,255,220, 0,251, 0,183,255,220, 0,251, 0,184,255,220, 0,251, 0,187,255,220, 0,251,
- 0,188,255,220, 0,251, 0,189,255,220, 0,251, 0,190,255,220, 0,251, 0,191,255, 68, 0,251, 0,193,255, 68, 0,251, 0,221,
-255,220, 0,251, 1, 38,254,230, 0,251, 1, 48,255,154, 0,251, 1, 49,255,220, 0,251, 1, 58,254,240, 0,251, 5,145,254, 97,
- 0,251, 5,146,253,230, 0,255, 0, 16,255,220, 0,255, 0, 36, 0, 47, 0,255, 0, 50,255,183, 0,255, 0, 55,254,230, 0,255,
- 0, 56,255,154, 0,255, 0, 57,255, 31, 0,255, 0, 58,255, 68, 0,255, 0, 60,254,240, 0,255, 0, 72,255,220, 0,255, 0, 82,
-255,220, 0,255, 0, 88,255,220, 0,255, 0, 92,255, 68, 0,255, 0,130, 0, 47, 0,255, 0,131, 0, 47, 0,255, 0,132, 0, 47,
- 0,255, 0,133, 0, 47, 0,255, 0,134, 0, 47, 0,255, 0,148,255,183, 0,255, 0,149,255,183, 0,255, 0,150,255,183, 0,255,
- 0,151,255,183, 0,255, 0,152,255,183, 0,255, 0,155,255,154, 0,255, 0,156,255,154, 0,255, 0,157,255,154, 0,255, 0,158,
-255,154, 0,255, 0,159,254,240, 0,255, 0,170,255,220, 0,255, 0,171,255,220, 0,255, 0,172,255,220, 0,255, 0,173,255,220,
- 0,255, 0,180,255,220, 0,255, 0,181,255,220, 0,255, 0,182,255,220, 0,255, 0,183,255,220, 0,255, 0,184,255,220, 0,255,
- 0,187,255,220, 0,255, 0,188,255,220, 0,255, 0,189,255,220, 0,255, 0,190,255,220, 0,255, 0,191,255, 68, 0,255, 0,193,
-255, 68, 0,255, 0,221,255,220, 0,255, 1, 38,254,230, 0,255, 1, 48,255,154, 0,255, 1, 49,255,220, 0,255, 1, 58,254,240,
- 0,255, 5,145,254, 97, 0,255, 5,146,253,230, 1, 2, 0, 79,255, 63, 1, 10, 5,145,255,107, 1, 10, 5,146,255,144, 1, 10,
- 5,147,255,164, 1, 22, 0, 16,255,173, 1, 22, 0, 17,255,183, 1, 22, 0, 29,255,193, 1, 22, 0, 36,255,173, 1, 22, 0, 38,
-255,154, 1, 22, 0, 55,255,107, 1, 22, 0, 57,255,144, 1, 22, 0, 58,255,173, 1, 22, 0, 60,255,125, 1, 22, 0, 68,255,211,
- 1, 22, 0, 72,255,164, 1, 22, 0, 82,255,164, 1, 22, 0, 88,255,164, 1, 22, 0, 92,255,144, 1, 22, 0,109,255,144, 1, 22,
- 0,125,255,220, 1, 22, 0,130,255,173, 1, 22, 0,131,255,173, 1, 22, 0,132,255,173, 1, 22, 0,133,255,173, 1, 22, 0,134,
-255,173, 1, 22, 0,137,255,154, 1, 22, 0,159,255,125, 1, 22, 0,162,255,211, 1, 22, 0,163,255,211, 1, 22, 0,164,255,211,
- 1, 22, 0,165,255,211, 1, 22, 0,166,255,211, 1, 22, 0,167,255,211, 1, 22, 0,170,255,164, 1, 22, 0,171,255,164, 1, 22,
- 0,172,255,164, 1, 22, 0,173,255,164, 1, 22, 0,180,255,164, 1, 22, 0,181,255,164, 1, 22, 0,182,255,164, 1, 22, 0,183,
-255,164, 1, 22, 0,184,255,164, 1, 22, 0,187,255,164, 1, 22, 0,188,255,164, 1, 22, 0,189,255,164, 1, 22, 0,190,255,164,
- 1, 22, 0,191,255,144, 1, 22, 0,193,255,144, 1, 22, 0,200,255,154, 1, 22, 0,206,255,154, 1, 22, 0,221,255,164, 1, 22,
- 1, 38,255,107, 1, 22, 1, 49,255,164, 1, 22, 1, 58,255,125, 1, 22, 5,145,255,107, 1, 22, 5,146,255,125, 1, 22, 5,147,
-255,220, 1, 23, 0, 16,255,125, 1, 23, 0, 17,255, 68, 1, 23, 0, 29,255,220, 1, 23, 0, 70,255,211, 1, 23, 0, 71,255,220,
- 1, 23, 0, 72,255,211, 1, 23, 0, 74,255,220, 1, 23, 0, 75,255,220, 1, 23, 0, 80,255,220, 1, 23, 0, 81,255,220, 1, 23,
- 0, 82,255,211, 1, 23, 0, 84,255,220, 1, 23, 0, 85,255,220, 1, 23, 0, 91,255,201, 1, 23, 0,109,255,183, 1, 23, 0,169,
-255,211, 1, 23, 0,170,255,211, 1, 23, 0,171,255,211, 1, 23, 0,172,255,211, 1, 23, 0,173,255,211, 1, 23, 0,179,255,220,
- 1, 23, 0,180,255,211, 1, 23, 0,181,255,211, 1, 23, 0,182,255,211, 1, 23, 0,183,255,211, 1, 23, 0,184,255,211, 1, 23,
- 0,201,255,211, 1, 23, 0,207,255,211, 1, 23, 0,209, 0, 72, 1, 23, 0,221,255,211, 1, 23, 0,225,255,220, 1, 23, 1, 10,
-255,220, 1, 23, 1, 23,255,220, 1, 23, 1, 27,255,220, 1, 23, 5,146, 0, 86, 1, 23, 5,147,254,201, 1, 26, 0, 16,255,173,
- 1, 26, 0, 17,255,183, 1, 26, 0, 29,255,193, 1, 26, 0, 36,255,173, 1, 26, 0, 38,255,154, 1, 26, 0, 55,255,107, 1, 26,
- 0, 57,255,144, 1, 26, 0, 58,255,173, 1, 26, 0, 60,255,125, 1, 26, 0, 68,255,211, 1, 26, 0, 72,255,164, 1, 26, 0, 82,
-255,164, 1, 26, 0, 88,255,164, 1, 26, 0, 92,255,144, 1, 26, 0,109,255,144, 1, 26, 0,125,255,220, 1, 26, 0,130,255,173,
- 1, 26, 0,131,255,173, 1, 26, 0,132,255,173, 1, 26, 0,133,255,173, 1, 26, 0,134,255,173, 1, 26, 0,137,255,154, 1, 26,
- 0,159,255,125, 1, 26, 0,162,255,211, 1, 26, 0,163,255,211, 1, 26, 0,164,255,211, 1, 26, 0,165,255,211, 1, 26, 0,166,
-255,211, 1, 26, 0,167,255,211, 1, 26, 0,170,255,164, 1, 26, 0,171,255,164, 1, 26, 0,172,255,164, 1, 26, 0,173,255,164,
- 1, 26, 0,180,255,164, 1, 26, 0,181,255,164, 1, 26, 0,182,255,164, 1, 26, 0,183,255,164, 1, 26, 0,184,255,164, 1, 26,
- 0,187,255,164, 1, 26, 0,188,255,164, 1, 26, 0,189,255,164, 1, 26, 0,190,255,164, 1, 26, 0,191,255,144, 1, 26, 0,193,
-255,144, 1, 26, 0,200,255,154, 1, 26, 0,206,255,154, 1, 26, 0,221,255,164, 1, 26, 1, 38,255,107, 1, 26, 1, 49,255,164,
- 1, 26, 1, 58,255,125, 1, 26, 5,145,255,107, 1, 26, 5,146,255,125, 1, 26, 5,147,255,220, 1, 27, 0, 16,255,125, 1, 27,
- 0, 17,255, 68, 1, 27, 0, 29,255,220, 1, 27, 0, 70,255,211, 1, 27, 0, 71,255,220, 1, 27, 0, 72,255,211, 1, 27, 0, 74,
-255,220, 1, 27, 0, 75,255,220, 1, 27, 0, 80,255,220, 1, 27, 0, 81,255,220, 1, 27, 0, 82,255,211, 1, 27, 0, 84,255,220,
- 1, 27, 0, 85,255,220, 1, 27, 0, 91,255,201, 1, 27, 0,109,255,183, 1, 27, 0,169,255,211, 1, 27, 0,170,255,211, 1, 27,
- 0,171,255,211, 1, 27, 0,172,255,211, 1, 27, 0,173,255,211, 1, 27, 0,179,255,220, 1, 27, 0,180,255,211, 1, 27, 0,181,
-255,211, 1, 27, 0,182,255,211, 1, 27, 0,183,255,211, 1, 27, 0,184,255,211, 1, 27, 0,201,255,211, 1, 27, 0,207,255,211,
- 1, 27, 0,209,255,220, 1, 27, 0,221,255,211, 1, 27, 0,225,255,220, 1, 27, 1, 10,255,220, 1, 27, 1, 23,255,220, 1, 27,
- 1, 27,255,220, 1, 27, 5,146, 0, 86, 1, 27, 5,147,254,201, 1, 32, 0, 36, 0, 38, 1, 32, 0,130, 0, 38, 1, 32, 0,131,
- 0, 38, 1, 32, 0,132, 0, 38, 1, 32, 0,133, 0, 38, 1, 32, 0,134, 0, 38, 1, 34, 0, 36, 0, 38, 1, 34, 0,130, 0, 38,
- 1, 34, 0,131, 0, 38, 1, 34, 0,132, 0, 38, 1, 34, 0,133, 0, 38, 1, 34, 0,134, 0, 38, 1, 38, 0, 16,255, 68, 1, 38,
- 0, 17,255, 13, 1, 38, 0, 29,255, 31, 1, 38, 0, 36,255, 97, 1, 38, 0, 38,255,136, 1, 38, 0, 55,255,220, 1, 38, 0, 68,
-254,173, 1, 38, 0, 70,254,164, 1, 38, 0, 72,254,164, 1, 38, 0, 76,255,193, 1, 38, 0, 82,254,164, 1, 38, 0, 85,254,211,
- 1, 38, 0, 86,254,173, 1, 38, 0, 88,254,201, 1, 38, 0, 90,254,173, 1, 38, 0, 92,254,193, 1, 38, 0,109,255, 68, 1, 38,
- 0,125,255,144, 1, 38, 0,130,255, 97, 1, 38, 0,131,255, 97, 1, 38, 0,132,255, 97, 1, 38, 0,133,255, 97, 1, 38, 0,134,
-255, 97, 1, 38, 0,137,255,136, 1, 38, 0,162,254,173, 1, 38, 0,163,254,173, 1, 38, 0,164,254,173, 1, 38, 0,165,254,173,
- 1, 38, 0,166,254,173, 1, 38, 0,167,254,173, 1, 38, 0,169,254,164, 1, 38, 0,170,254,164, 1, 38, 0,171,254,164, 1, 38,
- 0,172,254,164, 1, 38, 0,173,254,164, 1, 38, 0,180,254,164, 1, 38, 0,181,254,164, 1, 38, 0,182,254,164, 1, 38, 0,183,
-254,164, 1, 38, 0,184,254,164, 1, 38, 0,187,254,201, 1, 38, 0,188,254,201, 1, 38, 0,189,254,201, 1, 38, 0,190,254,201,
- 1, 38, 0,191,254,193, 1, 38, 0,193,254,193, 1, 38, 0,200,255,136, 1, 38, 0,201,254,164, 1, 38, 0,206,255,136, 1, 38,
- 0,207,254,164, 1, 38, 0,221,254,164, 1, 38, 1, 23,254,211, 1, 38, 1, 27,254,211, 1, 38, 1, 33,254,173, 1, 38, 1, 35,
-254,173, 1, 38, 1, 38,255,220, 1, 38, 1, 49,254,201, 1, 38, 5,146,255,211, 1, 38, 5,147,254,248, 1, 48, 0, 61,255,220,
- 1, 48, 1, 63,255,220, 1, 58, 0, 16,255, 13, 1, 58, 0, 17,254, 97, 1, 58, 0, 29,254,240, 1, 58, 0, 36,255, 97, 1, 58,
- 0, 38,255,144, 1, 58, 0, 50,255,144, 1, 58, 0, 68,254,230, 1, 58, 0, 72,254,240, 1, 58, 0, 76,255,183, 1, 58, 0, 82,
-254,240, 1, 58, 0, 88,255, 21, 1, 58, 0,109,255, 31, 1, 58, 0,125,255,107, 1, 58, 0,130,255, 97, 1, 58, 0,131,255, 97,
- 1, 58, 0,132,255, 97, 1, 58, 0,133,255, 97, 1, 58, 0,134,255, 97, 1, 58, 0,137,255,144, 1, 58, 0,148,255,144, 1, 58,
- 0,149,255,144, 1, 58, 0,150,255,144, 1, 58, 0,151,255,144, 1, 58, 0,152,255,144, 1, 58, 0,162,254,230, 1, 58, 0,163,
-254,230, 1, 58, 0,164,254,230, 1, 58, 0,165,254,230, 1, 58, 0,166,254,230, 1, 58, 0,167,254,230, 1, 58, 0,170,254,240,
- 1, 58, 0,171,254,240, 1, 58, 0,172,254,240, 1, 58, 0,173,254,240, 1, 58, 0,180,254,240, 1, 58, 0,181,254,240, 1, 58,
- 0,182,254,240, 1, 58, 0,183,254,240, 1, 58, 0,184,254,240, 1, 58, 0,187,255, 21, 1, 58, 0,188,255, 21, 1, 58, 0,189,
-255, 21, 1, 58, 0,190,255, 21, 1, 58, 0,200,255,144, 1, 58, 0,206,255,144, 1, 58, 0,221,254,240, 1, 58, 1, 49,255, 21,
- 1, 58, 5,145,255,144, 1, 58, 5,146,255,220, 1, 58, 5,147,254,248, 1, 63, 0, 16,255,220, 1, 63, 5,145,255,220, 1, 63,
- 5,146,255,220, 1, 63, 5,147,255,220, 5,133, 0, 36,255,211, 5,133, 0, 37,255,183, 5,133, 0, 42, 0, 75, 5,133, 0, 45,
- 0,114, 5,133, 0, 50, 0, 57, 5,133, 0, 52, 0, 75, 5,133, 0, 55,255, 68, 5,133, 0, 57,255,136, 5,133, 0, 58,255,173,
- 5,133, 0, 59,255,154, 5,133, 0, 60,255, 13, 5,133, 0, 82, 0, 38, 5,133, 0, 89,255,201, 5,133, 0, 92,255,220, 5,133,
- 0,130,255,211, 5,133, 0,131,255,211, 5,133, 0,132,255,211, 5,133, 0,133,255,211, 5,133, 0,134,255,211, 5,133, 0,148,
- 0, 57, 5,133, 0,149, 0, 57, 5,133, 0,150, 0, 57, 5,133, 0,151, 0, 57, 5,133, 0,152, 0, 57, 5,133, 0,159,255, 13,
- 5,133, 0,180, 0, 38, 5,133, 0,181, 0, 38, 5,133, 0,182, 0, 38, 5,133, 0,183, 0, 38, 5,133, 0,184, 0, 38, 5,133,
- 0,191,255,220, 5,133, 0,193,255,220, 5,133, 0,224, 0, 75, 5,133, 1, 38,255, 68, 5,133, 1, 58,255, 13, 5,145, 0, 36,
-254,248, 5,145, 0, 37,255,193, 5,145, 0, 38,255,183, 5,145, 0, 39,255,193, 5,145, 0, 41,255,193, 5,145, 0, 42,255,183,
- 5,145, 0, 43,255,193, 5,145, 0, 45,255,193, 5,145, 0, 46,255,193, 5,145, 0, 47,255,193, 5,145, 0, 50,255,183, 5,145,
- 0, 51,255,193, 5,145, 0, 52,255,183, 5,145, 0, 53,255,193, 5,145, 0, 59,255,136, 5,145, 0, 61,255,220, 5,145, 0, 73,
-255,183, 5,145, 0, 81,255,144, 5,145, 0, 82,255,107, 5,145, 0, 85,255,144, 5,145, 0, 89,255,183, 5,145, 0, 90,255,183,
- 5,145, 0, 92,255,183, 5,145, 0,130,254,248, 5,145, 0,131,254,248, 5,145, 0,132,254,248, 5,145, 0,133,254,248, 5,145,
- 0,134,254,248, 5,145, 0,136,254,125, 5,145, 0,137,255,183, 5,145, 0,148,255,183, 5,145, 0,149,255,183, 5,145, 0,150,
-255,183, 5,145, 0,151,255,183, 5,145, 0,152,255,183, 5,145, 0,160,255,193, 5,145, 0,161,255,193, 5,145, 0,178,255,183,
- 5,145, 0,179,255,144, 5,145, 0,180,255,107, 5,145, 0,181,255,107, 5,145, 0,182,255,107, 5,145, 0,183,255,107, 5,145,
- 0,184,255,107, 5,145, 0,191,255,183, 5,145, 0,193,255,183, 5,145, 0,200,255,183, 5,145, 0,206,255,183, 5,145, 0,208,
-255,193, 5,145, 0,224,255,183, 5,145, 0,251,255,193, 5,145, 0,255,255,193, 5,145, 1, 10,255,144, 5,145, 1, 22,255,193,
- 5,145, 1, 23,255,144, 5,145, 1, 26,255,193, 5,145, 1, 27,255,144, 5,145, 1, 63,255,220, 5,147, 0, 36, 0, 38, 5,147,
- 0, 37,255,183, 5,147, 0, 38,255,144, 5,147, 0, 39,255,183, 5,147, 0, 41,255,183, 5,147, 0, 42,255,183, 5,147, 0, 43,
-255,183, 5,147, 0, 45, 0, 47, 5,147, 0, 46,255,183, 5,147, 0, 47,255,183, 5,147, 0, 50,255,144, 5,147, 0, 51,255,183,
- 5,147, 0, 52,255,144, 5,147, 0, 53,255,183, 5,147, 0, 55,254,230, 5,147, 0, 57,254,136, 5,147, 0, 58,255, 3, 5,147,
- 0, 59,255,183, 5,147, 0, 60,254,136, 5,147, 0, 73,255,220, 5,147, 0, 81,255,183, 5,147, 0, 82,255,183, 5,147, 0, 85,
-255,183, 5,147, 0, 89,255, 21, 5,147, 0, 90,255, 60, 5,147, 0, 92,255,144, 5,147, 0,130, 0, 38, 5,147, 0,131, 0, 38,
- 5,147, 0,132, 0, 38, 5,147, 0,133, 0, 38, 5,147, 0,134, 0, 38, 5,147, 0,136, 0, 38, 5,147, 0,137,255,144, 5,147,
- 0,148,255,144, 5,147, 0,149,255,144, 5,147, 0,150,255,144, 5,147, 0,151,255,144, 5,147, 0,152,255,144, 5,147, 0,159,
-254,136, 5,147, 0,160,255,183, 5,147, 0,161,255,183, 5,147, 0,178,255,183, 5,147, 0,179,255,183, 5,147, 0,180,255,183,
- 5,147, 0,181,255,183, 5,147, 0,182,255,183, 5,147, 0,183,255,183, 5,147, 0,184,255,183, 5,147, 0,191,255,144, 5,147,
- 0,193,255,144, 5,147, 0,200,255,144, 5,147, 0,206,255,144, 5,147, 0,208,255,183, 5,147, 0,224,255,183, 5,147, 0,251,
-255,183, 5,147, 0,255,255,183, 5,147, 1, 10,255,183, 5,147, 1, 22,255,183, 5,147, 1, 23,255,183, 5,147, 1, 26,255,183,
- 5,147, 1, 27,255,183, 5,147, 1, 38,254,230, 5,147, 1, 58,254,136, 0, 0, 0, 0, 0, 61, 2,226, 0, 1, 0, 0, 0, 0,
- 0, 0, 0,152, 1, 50, 0, 1, 0, 0, 0, 0, 0, 1, 0, 11, 1,227, 0, 1, 0, 0, 0, 0, 0, 2, 0, 4, 1,249, 0, 1,
- 0, 0, 0, 0, 0, 3, 0, 11, 2, 22, 0, 1, 0, 0, 0, 0, 0, 4, 0, 11, 2, 58, 0, 1, 0, 0, 0, 0, 0, 5, 0, 11,
- 2, 94, 0, 1, 0, 0, 0, 0, 0, 6, 0, 10, 2,128, 0, 1, 0, 0, 0, 0, 0, 8, 0, 17, 2,175, 0, 1, 0, 0, 0, 0,
- 0, 11, 0, 29, 2,253, 0, 1, 0, 0, 0, 0, 0, 13, 18,157, 40, 87, 0, 1, 0, 0, 0, 0, 0, 14, 0, 52, 59, 95, 0, 1,
- 0, 0, 0, 0, 1, 0, 0, 24, 59,148, 0, 1, 0, 0, 0, 0, 1, 1, 0, 9, 60, 27, 0, 1, 0, 0, 0, 0, 1, 2, 0, 18,
- 60, 76, 0, 1, 0, 0, 0, 0, 1, 3, 0, 9, 60,139, 0, 1, 0, 0, 0, 0, 1, 4, 0, 17, 60,167, 0, 1, 0, 0, 0, 0,
- 1, 5, 0, 16, 61, 22, 0, 1, 0, 0, 0, 0, 1, 6, 0, 14, 61,125, 0, 1, 0, 0, 0, 0, 1, 7, 0, 7, 61,207, 0, 1,
- 0, 0, 0, 0, 1, 8, 0, 18, 61,245, 0, 1, 0, 0, 0, 1, 1, 0, 0, 24, 59,173, 0, 1, 0, 0, 0, 1, 1, 1, 0, 9,
- 60, 37, 0, 1, 0, 0, 0, 1, 1, 2, 0, 23, 60, 95, 0, 1, 0, 0, 0, 1, 1, 3, 0, 9, 60,149, 0, 1, 0, 0, 0, 1,
- 1, 4, 0, 31, 60,185, 0, 1, 0, 0, 0, 1, 1, 5, 0, 18, 61, 39, 0, 1, 0, 0, 0, 1, 1, 6, 0, 15, 61,140, 0, 1,
- 0, 0, 0, 1, 1, 7, 0, 21, 61,215, 0, 1, 0, 0, 0, 1, 1, 8, 0, 22, 62, 8, 0, 1, 0, 0, 0, 2, 1, 0, 0, 33,
- 59,198, 0, 1, 0, 0, 0, 2, 1, 1, 0, 9, 60, 47, 0, 1, 0, 0, 0, 2, 1, 4, 0, 23, 60,217, 0, 1, 0, 0, 0, 2,
- 1, 5, 0, 17, 61, 58, 0, 1, 0, 0, 0, 2, 1, 6, 0, 17, 61,156, 0, 1, 0, 0, 0, 2, 1, 8, 0, 16, 62, 31, 0, 1,
- 0, 0, 0, 3, 1, 0, 0, 21, 59,232, 0, 1, 0, 0, 0, 3, 1, 1, 0, 8, 60, 57, 0, 1, 0, 0, 0, 3, 1, 4, 0, 17,
- 60,241, 0, 1, 0, 0, 0, 3, 1, 5, 0, 19, 61, 76, 0, 1, 0, 0, 0, 3, 1, 6, 0, 13, 61,174, 0, 1, 0, 0, 0, 3,
- 1, 8, 0, 18, 62, 48, 0, 1, 0, 0, 0, 4, 1, 0, 0, 28, 59,254, 0, 1, 0, 0, 0, 4, 1, 1, 0, 9, 60, 66, 0, 1,
- 0, 0, 0, 4, 1, 2, 0, 19, 60,119, 0, 1, 0, 0, 0, 4, 1, 3, 0, 7, 60,159, 0, 1, 0, 0, 0, 4, 1, 4, 0, 18,
- 61, 3, 0, 1, 0, 0, 0, 4, 1, 5, 0, 28, 61, 96, 0, 1, 0, 0, 0, 4, 1, 6, 0, 18, 61,188, 0, 1, 0, 0, 0, 4,
- 1, 7, 0, 7, 61,237, 0, 1, 0, 0, 0, 4, 1, 8, 0, 17, 62, 67, 0, 3, 0, 1, 4, 9, 0, 0, 1, 48, 0, 0, 0, 3,
- 0, 1, 4, 9, 0, 1, 0, 22, 1,203, 0, 3, 0, 1, 4, 9, 0, 2, 0, 8, 1,239, 0, 3, 0, 1, 4, 9, 0, 3, 0, 22,
- 1,254, 0, 3, 0, 1, 4, 9, 0, 4, 0, 22, 2, 34, 0, 3, 0, 1, 4, 9, 0, 5, 0, 22, 2, 70, 0, 3, 0, 1, 4, 9,
- 0, 6, 0, 20, 2,106, 0, 3, 0, 1, 4, 9, 0, 8, 0, 34, 2,139, 0, 3, 0, 1, 4, 9, 0, 11, 0, 58, 2,193, 0, 3,
- 0, 1, 4, 9, 0, 13, 37, 58, 3, 27, 0, 3, 0, 1, 4, 9, 0, 14, 0,104, 58,245, 0, 67, 0,111, 0,112, 0,121, 0,114,
- 0,105, 0,103, 0,104, 0,116, 0, 32, 0, 40, 0, 99, 0, 41, 0, 32, 0, 50, 0, 48, 0, 48, 0, 51, 0, 32, 0, 98, 0,121,
- 0, 32, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 44, 0, 32, 0, 73, 0,110, 0, 99, 0, 46,
- 0, 32, 0, 65, 0,108, 0,108, 0, 32, 0, 82, 0,105, 0,103, 0,104, 0,116, 0,115, 0, 32, 0, 82, 0,101, 0,115, 0,101,
- 0,114, 0,118, 0,101, 0,100, 0, 46, 0, 10, 0, 67, 0,111, 0,112, 0,121, 0,114, 0,105, 0,103, 0,104, 0,116, 0, 32,
- 0, 40, 0, 99, 0, 41, 0, 32, 0, 50, 0, 48, 0, 48, 0, 54, 0, 32, 0, 98, 0,121, 0, 32, 0, 84, 0, 97, 0,118, 0,109,
- 0,106, 0,111, 0,110, 0,103, 0, 32, 0, 66, 0, 97, 0,104, 0, 46, 0, 32, 0, 65, 0,108, 0,108, 0, 32, 0, 82, 0,105,
- 0,103, 0,104, 0,116, 0,115, 0, 32, 0, 82, 0,101, 0,115, 0,101, 0,114, 0,118, 0,101, 0,100, 0, 46, 0, 10, 0, 68,
- 0,101, 0,106, 0, 97, 0, 86, 0,117, 0, 32, 0, 99, 0,104, 0, 97, 0,110, 0,103, 0,101, 0,115, 0, 32, 0, 97, 0,114,
- 0,101, 0, 32, 0,105, 0,110, 0, 32, 0,112, 0,117, 0, 98, 0,108, 0,105, 0, 99, 0, 32, 0,100, 0,111, 0,109, 0, 97,
- 0,105, 0,110, 0, 10, 0, 0, 67,111,112,121,114,105,103,104,116, 32, 40, 99, 41, 32, 50, 48, 48, 51, 32, 98,121, 32, 66,105,
-116,115,116,114,101, 97,109, 44, 32, 73,110, 99, 46, 32, 65,108,108, 32, 82,105,103,104,116,115, 32, 82,101,115,101,114,118,101,
-100, 46, 10, 67,111,112,121,114,105,103,104,116, 32, 40, 99, 41, 32, 50, 48, 48, 54, 32, 98,121, 32, 84, 97,118,109,106,111,110,
-103, 32, 66, 97,104, 46, 32, 65,108,108, 32, 82,105,103,104,116,115, 32, 82,101,115,101,114,118,101,100, 46, 10, 68,101,106, 97,
- 86,117, 32, 99,104, 97,110,103,101,115, 32, 97,114,101, 32,105,110, 32,112,117, 98,108,105, 99, 32,100,111,109, 97,105,110, 10,
- 0, 0, 68, 0,101, 0,106, 0, 97, 0, 86, 0,117, 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 0, 68,101,106, 97, 86,117, 32,
- 83, 97,110,115, 0, 0, 66, 0,111, 0,111, 0,107, 0, 0, 66,111,111,107, 0, 0, 68, 0,101, 0,106, 0, 97, 0, 86, 0,117,
- 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 0, 68,101,106, 97, 86,117, 32, 83, 97,110,115, 0, 0, 68, 0,101, 0,106, 0, 97,
- 0, 86, 0,117, 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 0, 68,101,106, 97, 86,117, 32, 83, 97,110,115, 0, 0, 86, 0,101,
- 0,114, 0,115, 0,105, 0,111, 0,110, 0, 32, 0, 50, 0, 46, 0, 56, 0, 0, 86,101,114,115,105,111,110, 32, 50, 46, 56, 0,
- 0, 68, 0,101, 0,106, 0, 97, 0, 86, 0,117, 0, 83, 0, 97, 0,110, 0,115, 0, 0, 68,101,106, 97, 86,117, 83, 97,110,115,
- 0, 0, 68, 0,101, 0,106, 0, 97, 0, 86, 0,117, 0, 32, 0,102, 0,111, 0,110, 0,116, 0,115, 0, 32, 0,116, 0,101, 0,
- 97, 0,109, 0, 0, 68,101,106, 97, 86,117, 32,102,111,110,116,115, 32,116,101, 97,109, 0, 0,104, 0,116, 0,116, 0,112, 0,
- 58, 0, 47, 0, 47, 0,100, 0,101, 0,106, 0, 97, 0,118, 0,117, 0, 46, 0,115, 0,111, 0,117, 0,114, 0, 99, 0,101, 0,
-102, 0,111, 0,114, 0,103, 0,101, 0, 46, 0,110, 0,101, 0,116, 0, 0,104,116,116,112, 58, 47, 47,100,101,106, 97,118,117,
- 46,115,111,117,114, 99,101,102,111,114,103,101, 46,110,101,116, 0, 0, 70, 0,111, 0,110, 0,116, 0,115, 0, 32, 0, 97, 0,
-114, 0,101, 0, 32, 0, 40, 0, 99, 0, 41, 0, 32, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0,
- 32, 0, 40, 0,115, 0,101, 0,101, 0, 32, 0, 98, 0,101, 0,108, 0,111, 0,119, 0, 41, 0, 46, 0, 32, 0, 68, 0,101, 0,
-106, 0, 97, 0, 86, 0,117, 0, 32, 0, 99, 0,104, 0, 97, 0,110, 0,103, 0,101, 0,115, 0, 32, 0, 97, 0,114, 0,101, 0,
- 32, 0,105, 0,110, 0, 32, 0,112, 0,117, 0, 98, 0,108, 0,105, 0, 99, 0, 32, 0,100, 0,111, 0,109, 0, 97, 0,105, 0,
-110, 0, 46, 0, 32, 0, 71, 0,108, 0,121, 0,112, 0,104, 0,115, 0, 32, 0,105, 0,109, 0,112, 0,111, 0,114, 0,116, 0,
-101, 0,100, 0, 32, 0,102, 0,114, 0,111, 0,109, 0, 32, 0, 65, 0,114, 0,101, 0,118, 0, 32, 0,102, 0,111, 0,110, 0,
-116, 0,115, 0, 32, 0, 97, 0,114, 0,101, 0, 32, 0, 40, 0, 99, 0, 41, 0, 32, 0, 84, 0, 97, 0,118, 0,109, 0,106, 0,
-117, 0,110, 0,103, 0, 32, 0, 66, 0, 97, 0,104, 0, 32, 0, 40, 0,115, 0,101, 0,101, 0, 32, 0, 98, 0,101, 0,108, 0,
-111, 0,119, 0, 41, 0, 10, 0, 10, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 32, 0, 86, 0,
-101, 0,114, 0, 97, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0,115, 0, 32, 0, 67, 0,111, 0,112, 0,121, 0,114, 0,105, 0,
-103, 0,104, 0,116, 0, 10, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0,
- 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0,
- 45, 0, 45, 0, 10, 0, 10, 0, 67, 0,111, 0,112, 0,121, 0,114, 0,105, 0,103, 0,104, 0,116, 0, 32, 0, 40, 0, 99, 0,
- 41, 0, 32, 0, 50, 0, 48, 0, 48, 0, 51, 0, 32, 0, 98, 0,121, 0, 32, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,
-101, 0, 97, 0,109, 0, 44, 0, 32, 0, 73, 0,110, 0, 99, 0, 46, 0, 32, 0, 65, 0,108, 0,108, 0, 32, 0, 82, 0,105, 0,
-103, 0,104, 0,116, 0,115, 0, 32, 0, 82, 0,101, 0,115, 0,101, 0,114, 0,118, 0,101, 0,100, 0, 46, 0, 32, 0, 66, 0,
-105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 32, 0, 86, 0,101, 0,114, 0, 97, 0, 32, 0,105, 0,115, 0,
- 10, 0, 97, 0, 32, 0,116, 0,114, 0, 97, 0,100, 0,101, 0,109, 0, 97, 0,114, 0,107, 0, 32, 0,111, 0,102, 0, 32, 0,
- 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 44, 0, 32, 0, 73, 0,110, 0, 99, 0, 46, 0, 10, 0,
- 10, 0, 80, 0,101, 0,114, 0,109, 0,105, 0,115, 0,115, 0,105, 0,111, 0,110, 0, 32, 0,105, 0,115, 0, 32, 0,104, 0,
-101, 0,114, 0,101, 0, 98, 0,121, 0, 32, 0,103, 0,114, 0, 97, 0,110, 0,116, 0,101, 0,100, 0, 44, 0, 32, 0,102, 0,
-114, 0,101, 0,101, 0, 32, 0,111, 0,102, 0, 32, 0, 99, 0,104, 0, 97, 0,114, 0,103, 0,101, 0, 44, 0, 32, 0,116, 0,
-111, 0, 32, 0, 97, 0,110, 0,121, 0, 32, 0,112, 0,101, 0,114, 0,115, 0,111, 0,110, 0, 32, 0,111, 0, 98, 0,116, 0,
- 97, 0,105, 0,110, 0,105, 0,110, 0,103, 0, 32, 0, 97, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0, 10, 0,111, 0,102, 0,
- 32, 0,116, 0,104, 0,101, 0, 32, 0,102, 0,111, 0,110, 0,116, 0,115, 0, 32, 0, 97, 0, 99, 0, 99, 0,111, 0,109, 0,
-112, 0, 97, 0,110, 0,121, 0,105, 0,110, 0,103, 0, 32, 0,116, 0,104, 0,105, 0,115, 0, 32, 0,108, 0,105, 0, 99, 0,
-101, 0,110, 0,115, 0,101, 0, 32, 0, 40, 0, 34, 0, 70, 0,111, 0,110, 0,116, 0,115, 0, 34, 0, 41, 0, 32, 0, 97, 0,
-110, 0,100, 0, 32, 0, 97, 0,115, 0,115, 0,111, 0, 99, 0,105, 0, 97, 0,116, 0,101, 0,100, 0, 10, 0,100, 0,111, 0,
- 99, 0,117, 0,109, 0,101, 0,110, 0,116, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 32, 0,102, 0,105, 0,108, 0,101, 0,
-115, 0, 32, 0, 40, 0,116, 0,104, 0,101, 0, 32, 0, 34, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,
-116, 0,119, 0, 97, 0,114, 0,101, 0, 34, 0, 41, 0, 44, 0, 32, 0,116, 0,111, 0, 32, 0,114, 0,101, 0,112, 0,114, 0,
-111, 0,100, 0,117, 0, 99, 0,101, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,100, 0,105, 0,115, 0,116, 0,114, 0,105, 0,
- 98, 0,117, 0,116, 0,101, 0, 32, 0,116, 0,104, 0,101, 0, 10, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,
-102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 44, 0, 32, 0,105, 0,110, 0, 99, 0,108, 0,117, 0,100, 0,105, 0,110, 0,
-103, 0, 32, 0,119, 0,105, 0,116, 0,104, 0,111, 0,117, 0,116, 0, 32, 0,108, 0,105, 0,109, 0,105, 0,116, 0, 97, 0,
-116, 0,105, 0,111, 0,110, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,114, 0,105, 0,103, 0,104, 0,116, 0,115, 0, 32, 0,
-116, 0,111, 0, 32, 0,117, 0,115, 0,101, 0, 44, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0, 44, 0, 32, 0,109, 0,101, 0,
-114, 0,103, 0,101, 0, 44, 0, 10, 0,112, 0,117, 0, 98, 0,108, 0,105, 0,115, 0,104, 0, 44, 0, 32, 0,100, 0,105, 0,
-115, 0,116, 0,114, 0,105, 0, 98, 0,117, 0,116, 0,101, 0, 44, 0, 32, 0, 97, 0,110, 0,100, 0, 47, 0,111, 0,114, 0,
- 32, 0,115, 0,101, 0,108, 0,108, 0, 32, 0, 99, 0,111, 0,112, 0,105, 0,101, 0,115, 0, 32, 0,111, 0,102, 0, 32, 0,
-116, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,
-101, 0, 44, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,116, 0,111, 0, 32, 0,112, 0,101, 0,114, 0,109, 0,105, 0,116, 0,
- 10, 0,112, 0,101, 0,114, 0,115, 0,111, 0,110, 0,115, 0, 32, 0,116, 0,111, 0, 32, 0,119, 0,104, 0,111, 0,109, 0,
- 32, 0,116, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,
-114, 0,101, 0, 32, 0,105, 0,115, 0, 32, 0,102, 0,117, 0,114, 0,110, 0,105, 0,115, 0,104, 0,101, 0,100, 0, 32, 0,
-116, 0,111, 0, 32, 0,100, 0,111, 0, 32, 0,115, 0,111, 0, 44, 0, 32, 0,115, 0,117, 0, 98, 0,106, 0,101, 0, 99, 0,
-116, 0, 32, 0,116, 0,111, 0, 32, 0,116, 0,104, 0,101, 0, 10, 0,102, 0,111, 0,108, 0,108, 0,111, 0,119, 0,105, 0,
-110, 0,103, 0, 32, 0, 99, 0,111, 0,110, 0,100, 0,105, 0,116, 0,105, 0,111, 0,110, 0,115, 0, 58, 0, 10, 0, 10, 0,
- 84, 0,104, 0,101, 0, 32, 0, 97, 0, 98, 0,111, 0,118, 0,101, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0,114, 0,105, 0,
-103, 0,104, 0,116, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,116, 0,114, 0, 97, 0,100, 0,101, 0,109, 0, 97, 0,114, 0,
-107, 0, 32, 0,110, 0,111, 0,116, 0,105, 0, 99, 0,101, 0,115, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,116, 0,104, 0,
-105, 0,115, 0, 32, 0,112, 0,101, 0,114, 0,109, 0,105, 0,115, 0,115, 0,105, 0,111, 0,110, 0, 32, 0,110, 0,111, 0,
-116, 0,105, 0, 99, 0,101, 0, 32, 0,115, 0,104, 0, 97, 0,108, 0,108, 0, 10, 0, 98, 0,101, 0, 32, 0,105, 0,110, 0,
- 99, 0,108, 0,117, 0,100, 0,101, 0,100, 0, 32, 0,105, 0,110, 0, 32, 0, 97, 0,108, 0,108, 0, 32, 0, 99, 0,111, 0,
-112, 0,105, 0,101, 0,115, 0, 32, 0,111, 0,102, 0, 32, 0,111, 0,110, 0,101, 0, 32, 0,111, 0,114, 0, 32, 0,109, 0,
-111, 0,114, 0,101, 0, 32, 0,111, 0,102, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0,
- 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,116, 0,121, 0,112, 0,101, 0,102, 0, 97, 0, 99, 0,
-101, 0,115, 0, 46, 0, 10, 0, 10, 0, 84, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,
-102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0,109, 0,111, 0,
-100, 0,105, 0,102, 0,105, 0,101, 0,100, 0, 44, 0, 32, 0, 97, 0,108, 0,116, 0,101, 0,114, 0,101, 0,100, 0, 44, 0,
- 32, 0,111, 0,114, 0, 32, 0, 97, 0,100, 0,100, 0,101, 0,100, 0, 32, 0,116, 0,111, 0, 44, 0, 32, 0, 97, 0,110, 0,
-100, 0, 32, 0,105, 0,110, 0, 32, 0,112, 0, 97, 0,114, 0,116, 0,105, 0, 99, 0,117, 0,108, 0, 97, 0,114, 0, 10, 0,
-116, 0,104, 0,101, 0, 32, 0,100, 0,101, 0,115, 0,105, 0,103, 0,110, 0,115, 0, 32, 0,111, 0,102, 0, 32, 0,103, 0,
-108, 0,121, 0,112, 0,104, 0,115, 0, 32, 0,111, 0,114, 0, 32, 0, 99, 0,104, 0, 97, 0,114, 0, 97, 0, 99, 0,116, 0,
-101, 0,114, 0,115, 0, 32, 0,105, 0,110, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0,115, 0,
- 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0,109, 0,111, 0,100, 0,105, 0,102, 0,105, 0,101, 0,100, 0,
- 32, 0, 97, 0,110, 0,100, 0, 10, 0, 97, 0,100, 0,100, 0,105, 0,116, 0,105, 0,111, 0,110, 0, 97, 0,108, 0, 32, 0,
-103, 0,108, 0,121, 0,112, 0,104, 0,115, 0, 32, 0,111, 0,114, 0, 32, 0, 99, 0,104, 0, 97, 0,114, 0, 97, 0, 99, 0,
-116, 0,101, 0,114, 0,115, 0, 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0, 97, 0,100, 0,100, 0,101, 0,
-100, 0, 32, 0,116, 0,111, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0,115, 0, 44, 0, 32, 0,
-111, 0,110, 0,108, 0,121, 0, 32, 0,105, 0,102, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,102, 0,111, 0,110, 0,116, 0,
-115, 0, 10, 0, 97, 0,114, 0,101, 0, 32, 0,114, 0,101, 0,110, 0, 97, 0,109, 0,101, 0,100, 0, 32, 0,116, 0,111, 0,
- 32, 0,110, 0, 97, 0,109, 0,101, 0,115, 0, 32, 0,110, 0,111, 0,116, 0, 32, 0, 99, 0,111, 0,110, 0,116, 0, 97, 0,
-105, 0,110, 0,105, 0,110, 0,103, 0, 32, 0,101, 0,105, 0,116, 0,104, 0,101, 0,114, 0, 32, 0,116, 0,104, 0,101, 0,
- 32, 0,119, 0,111, 0,114, 0,100, 0,115, 0, 32, 0, 34, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,
-109, 0, 34, 0, 32, 0,111, 0,114, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,119, 0,111, 0,114, 0,100, 0, 10, 0, 34, 0,
- 86, 0,101, 0,114, 0, 97, 0, 34, 0, 46, 0, 10, 0, 10, 0, 84, 0,104, 0,105, 0,115, 0, 32, 0, 76, 0,105, 0, 99, 0,
-101, 0,110, 0,115, 0,101, 0, 32, 0, 98, 0,101, 0, 99, 0,111, 0,109, 0,101, 0,115, 0, 32, 0,110, 0,117, 0,108, 0,
-108, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,118, 0,111, 0,105, 0,100, 0, 32, 0,116, 0,111, 0, 32, 0,116, 0,104, 0,
-101, 0, 32, 0,101, 0,120, 0,116, 0,101, 0,110, 0,116, 0, 32, 0, 97, 0,112, 0,112, 0,108, 0,105, 0, 99, 0, 97, 0,
- 98, 0,108, 0,101, 0, 32, 0,116, 0,111, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0,115, 0, 32, 0,111, 0,114, 0, 32, 0,
- 70, 0,111, 0,110, 0,116, 0, 10, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,116, 0,104, 0,
- 97, 0,116, 0, 32, 0,104, 0, 97, 0,115, 0, 32, 0, 98, 0,101, 0,101, 0,110, 0, 32, 0,109, 0,111, 0,100, 0,105, 0,
-102, 0,105, 0,101, 0,100, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,105, 0,115, 0, 32, 0,100, 0,105, 0,115, 0,116, 0,
-114, 0,105, 0, 98, 0,117, 0,116, 0,101, 0,100, 0, 32, 0,117, 0,110, 0,100, 0,101, 0,114, 0, 32, 0,116, 0,104, 0,
-101, 0, 32, 0, 34, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 10, 0, 86, 0,101, 0,114, 0,
- 97, 0, 34, 0, 32, 0,110, 0, 97, 0,109, 0,101, 0,115, 0, 46, 0, 10, 0, 10, 0, 84, 0,104, 0,101, 0, 32, 0, 70, 0,
-111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,109, 0, 97, 0,121, 0,
- 32, 0, 98, 0,101, 0, 32, 0,115, 0,111, 0,108, 0,100, 0, 32, 0, 97, 0,115, 0, 32, 0,112, 0, 97, 0,114, 0,116, 0,
- 32, 0,111, 0,102, 0, 32, 0, 97, 0, 32, 0,108, 0, 97, 0,114, 0,103, 0,101, 0,114, 0, 32, 0,115, 0,111, 0,102, 0,
-116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,112, 0, 97, 0, 99, 0,107, 0, 97, 0,103, 0,101, 0, 32, 0, 98, 0,117, 0,
-116, 0, 32, 0,110, 0,111, 0, 10, 0, 99, 0,111, 0,112, 0,121, 0, 32, 0,111, 0,102, 0, 32, 0,111, 0,110, 0,101, 0,
- 32, 0,111, 0,114, 0, 32, 0,109, 0,111, 0,114, 0,101, 0, 32, 0,111, 0,102, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,
- 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,116, 0,121, 0,
-112, 0,101, 0,102, 0, 97, 0, 99, 0,101, 0,115, 0, 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0,115, 0,
-111, 0,108, 0,100, 0, 32, 0, 98, 0,121, 0, 32, 0,105, 0,116, 0,115, 0,101, 0,108, 0,102, 0, 46, 0, 10, 0, 10, 0,
- 84, 0, 72, 0, 69, 0, 32, 0, 70, 0, 79, 0, 78, 0, 84, 0, 32, 0, 83, 0, 79, 0, 70, 0, 84, 0, 87, 0, 65, 0, 82, 0,
- 69, 0, 32, 0, 73, 0, 83, 0, 32, 0, 80, 0, 82, 0, 79, 0, 86, 0, 73, 0, 68, 0, 69, 0, 68, 0, 32, 0, 34, 0, 65, 0,
- 83, 0, 32, 0, 73, 0, 83, 0, 34, 0, 44, 0, 32, 0, 87, 0, 73, 0, 84, 0, 72, 0, 79, 0, 85, 0, 84, 0, 32, 0, 87, 0,
- 65, 0, 82, 0, 82, 0, 65, 0, 78, 0, 84, 0, 89, 0, 32, 0, 79, 0, 70, 0, 32, 0, 65, 0, 78, 0, 89, 0, 32, 0, 75, 0,
- 73, 0, 78, 0, 68, 0, 44, 0, 32, 0, 69, 0, 88, 0, 80, 0, 82, 0, 69, 0, 83, 0, 83, 0, 10, 0, 79, 0, 82, 0, 32, 0,
- 73, 0, 77, 0, 80, 0, 76, 0, 73, 0, 69, 0, 68, 0, 44, 0, 32, 0, 73, 0, 78, 0, 67, 0, 76, 0, 85, 0, 68, 0, 73, 0,
- 78, 0, 71, 0, 32, 0, 66, 0, 85, 0, 84, 0, 32, 0, 78, 0, 79, 0, 84, 0, 32, 0, 76, 0, 73, 0, 77, 0, 73, 0, 84, 0,
- 69, 0, 68, 0, 32, 0, 84, 0, 79, 0, 32, 0, 65, 0, 78, 0, 89, 0, 32, 0, 87, 0, 65, 0, 82, 0, 82, 0, 65, 0, 78, 0,
- 84, 0, 73, 0, 69, 0, 83, 0, 32, 0, 79, 0, 70, 0, 32, 0, 77, 0, 69, 0, 82, 0, 67, 0, 72, 0, 65, 0, 78, 0, 84, 0,
- 65, 0, 66, 0, 73, 0, 76, 0, 73, 0, 84, 0, 89, 0, 44, 0, 10, 0, 70, 0, 73, 0, 84, 0, 78, 0, 69, 0, 83, 0, 83, 0,
- 32, 0, 70, 0, 79, 0, 82, 0, 32, 0, 65, 0, 32, 0, 80, 0, 65, 0, 82, 0, 84, 0, 73, 0, 67, 0, 85, 0, 76, 0, 65, 0,
- 82, 0, 32, 0, 80, 0, 85, 0, 82, 0, 80, 0, 79, 0, 83, 0, 69, 0, 32, 0, 65, 0, 78, 0, 68, 0, 32, 0, 78, 0, 79, 0,
- 78, 0, 73, 0, 78, 0, 70, 0, 82, 0, 73, 0, 78, 0, 71, 0, 69, 0, 77, 0, 69, 0, 78, 0, 84, 0, 32, 0, 79, 0, 70, 0,
- 32, 0, 67, 0, 79, 0, 80, 0, 89, 0, 82, 0, 73, 0, 71, 0, 72, 0, 84, 0, 44, 0, 32, 0, 80, 0, 65, 0, 84, 0, 69, 0,
- 78, 0, 84, 0, 44, 0, 10, 0, 84, 0, 82, 0, 65, 0, 68, 0, 69, 0, 77, 0, 65, 0, 82, 0, 75, 0, 44, 0, 32, 0, 79, 0,
- 82, 0, 32, 0, 79, 0, 84, 0, 72, 0, 69, 0, 82, 0, 32, 0, 82, 0, 73, 0, 71, 0, 72, 0, 84, 0, 46, 0, 32, 0, 73, 0,
- 78, 0, 32, 0, 78, 0, 79, 0, 32, 0, 69, 0, 86, 0, 69, 0, 78, 0, 84, 0, 32, 0, 83, 0, 72, 0, 65, 0, 76, 0, 76, 0,
- 32, 0, 66, 0, 73, 0, 84, 0, 83, 0, 84, 0, 82, 0, 69, 0, 65, 0, 77, 0, 32, 0, 79, 0, 82, 0, 32, 0, 84, 0, 72, 0,
- 69, 0, 32, 0, 71, 0, 78, 0, 79, 0, 77, 0, 69, 0, 10, 0, 70, 0, 79, 0, 85, 0, 78, 0, 68, 0, 65, 0, 84, 0, 73, 0,
- 79, 0, 78, 0, 32, 0, 66, 0, 69, 0, 32, 0, 76, 0, 73, 0, 65, 0, 66, 0, 76, 0, 69, 0, 32, 0, 70, 0, 79, 0, 82, 0,
- 32, 0, 65, 0, 78, 0, 89, 0, 32, 0, 67, 0, 76, 0, 65, 0, 73, 0, 77, 0, 44, 0, 32, 0, 68, 0, 65, 0, 77, 0, 65, 0,
- 71, 0, 69, 0, 83, 0, 32, 0, 79, 0, 82, 0, 32, 0, 79, 0, 84, 0, 72, 0, 69, 0, 82, 0, 32, 0, 76, 0, 73, 0, 65, 0,
- 66, 0, 73, 0, 76, 0, 73, 0, 84, 0, 89, 0, 44, 0, 32, 0, 73, 0, 78, 0, 67, 0, 76, 0, 85, 0, 68, 0, 73, 0, 78, 0,
- 71, 0, 10, 0, 65, 0, 78, 0, 89, 0, 32, 0, 71, 0, 69, 0, 78, 0, 69, 0, 82, 0, 65, 0, 76, 0, 44, 0, 32, 0, 83, 0,
- 80, 0, 69, 0, 67, 0, 73, 0, 65, 0, 76, 0, 44, 0, 32, 0, 73, 0, 78, 0, 68, 0, 73, 0, 82, 0, 69, 0, 67, 0, 84, 0,
- 44, 0, 32, 0, 73, 0, 78, 0, 67, 0, 73, 0, 68, 0, 69, 0, 78, 0, 84, 0, 65, 0, 76, 0, 44, 0, 32, 0, 79, 0, 82, 0,
- 32, 0, 67, 0, 79, 0, 78, 0, 83, 0, 69, 0, 81, 0, 85, 0, 69, 0, 78, 0, 84, 0, 73, 0, 65, 0, 76, 0, 32, 0, 68, 0,
- 65, 0, 77, 0, 65, 0, 71, 0, 69, 0, 83, 0, 44, 0, 10, 0, 87, 0, 72, 0, 69, 0, 84, 0, 72, 0, 69, 0, 82, 0, 32, 0,
- 73, 0, 78, 0, 32, 0, 65, 0, 78, 0, 32, 0, 65, 0, 67, 0, 84, 0, 73, 0, 79, 0, 78, 0, 32, 0, 79, 0, 70, 0, 32, 0,
- 67, 0, 79, 0, 78, 0, 84, 0, 82, 0, 65, 0, 67, 0, 84, 0, 44, 0, 32, 0, 84, 0, 79, 0, 82, 0, 84, 0, 32, 0, 79, 0,
- 82, 0, 32, 0, 79, 0, 84, 0, 72, 0, 69, 0, 82, 0, 87, 0, 73, 0, 83, 0, 69, 0, 44, 0, 32, 0, 65, 0, 82, 0, 73, 0,
- 83, 0, 73, 0, 78, 0, 71, 0, 32, 0, 70, 0, 82, 0, 79, 0, 77, 0, 44, 0, 32, 0, 79, 0, 85, 0, 84, 0, 32, 0, 79, 0,
- 70, 0, 10, 0, 84, 0, 72, 0, 69, 0, 32, 0, 85, 0, 83, 0, 69, 0, 32, 0, 79, 0, 82, 0, 32, 0, 73, 0, 78, 0, 65, 0,
- 66, 0, 73, 0, 76, 0, 73, 0, 84, 0, 89, 0, 32, 0, 84, 0, 79, 0, 32, 0, 85, 0, 83, 0, 69, 0, 32, 0, 84, 0, 72, 0,
- 69, 0, 32, 0, 70, 0, 79, 0, 78, 0, 84, 0, 32, 0, 83, 0, 79, 0, 70, 0, 84, 0, 87, 0, 65, 0, 82, 0, 69, 0, 32, 0,
- 79, 0, 82, 0, 32, 0, 70, 0, 82, 0, 79, 0, 77, 0, 32, 0, 79, 0, 84, 0, 72, 0, 69, 0, 82, 0, 32, 0, 68, 0, 69, 0,
- 65, 0, 76, 0, 73, 0, 78, 0, 71, 0, 83, 0, 32, 0, 73, 0, 78, 0, 32, 0, 84, 0, 72, 0, 69, 0, 10, 0, 70, 0, 79, 0,
- 78, 0, 84, 0, 32, 0, 83, 0, 79, 0, 70, 0, 84, 0, 87, 0, 65, 0, 82, 0, 69, 0, 46, 0, 10, 0, 10, 0, 69, 0,120, 0,
- 99, 0,101, 0,112, 0,116, 0, 32, 0, 97, 0,115, 0, 32, 0, 99, 0,111, 0,110, 0,116, 0, 97, 0,105, 0,110, 0,101, 0,
-100, 0, 32, 0,105, 0,110, 0, 32, 0,116, 0,104, 0,105, 0,115, 0, 32, 0,110, 0,111, 0,116, 0,105, 0, 99, 0,101, 0,
- 44, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,110, 0, 97, 0,109, 0,101, 0,115, 0, 32, 0,111, 0,102, 0, 32, 0, 71, 0,
-110, 0,111, 0,109, 0,101, 0, 44, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 71, 0,110, 0,111, 0,109, 0,101, 0, 10, 0,
- 70, 0,111, 0,117, 0,110, 0,100, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 44, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,
- 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 32, 0, 73, 0,110, 0, 99, 0, 46, 0, 44, 0, 32, 0,
-115, 0,104, 0, 97, 0,108, 0,108, 0, 32, 0,110, 0,111, 0,116, 0, 32, 0, 98, 0,101, 0, 32, 0,117, 0,115, 0,101, 0,
-100, 0, 32, 0,105, 0,110, 0, 32, 0, 97, 0,100, 0,118, 0,101, 0,114, 0,116, 0,105, 0,115, 0,105, 0,110, 0,103, 0,
- 32, 0,111, 0,114, 0, 10, 0,111, 0,116, 0,104, 0,101, 0,114, 0,119, 0,105, 0,115, 0,101, 0, 32, 0,116, 0,111, 0,
- 32, 0,112, 0,114, 0,111, 0,109, 0,111, 0,116, 0,101, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,115, 0, 97, 0,108, 0,
-101, 0, 44, 0, 32, 0,117, 0,115, 0,101, 0, 32, 0,111, 0,114, 0, 32, 0,111, 0,116, 0,104, 0,101, 0,114, 0, 32, 0,
-100, 0,101, 0, 97, 0,108, 0,105, 0,110, 0,103, 0,115, 0, 32, 0,105, 0,110, 0, 32, 0,116, 0,104, 0,105, 0,115, 0,
- 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 10, 0,119, 0,
-105, 0,116, 0,104, 0,111, 0,117, 0,116, 0, 32, 0,112, 0,114, 0,105, 0,111, 0,114, 0, 32, 0,119, 0,114, 0,105, 0,
-116, 0,116, 0,101, 0,110, 0, 32, 0, 97, 0,117, 0,116, 0,104, 0,111, 0,114, 0,105, 0,122, 0, 97, 0,116, 0,105, 0,
-111, 0,110, 0, 32, 0,102, 0,114, 0,111, 0,109, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 71, 0,110, 0,111, 0,109, 0,
-101, 0, 32, 0, 70, 0,111, 0,117, 0,110, 0,100, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 32, 0,111, 0,114, 0, 32, 0,
- 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 10, 0, 73, 0,110, 0, 99, 0, 46, 0, 44, 0, 32, 0,
-114, 0,101, 0,115, 0,112, 0,101, 0, 99, 0,116, 0,105, 0,118, 0,101, 0,108, 0,121, 0, 46, 0, 32, 0, 70, 0,111, 0,
-114, 0, 32, 0,102, 0,117, 0,114, 0,116, 0,104, 0,101, 0,114, 0, 32, 0,105, 0,110, 0,102, 0,111, 0,114, 0,109, 0,
- 97, 0,116, 0,105, 0,111, 0,110, 0, 44, 0, 32, 0, 99, 0,111, 0,110, 0,116, 0, 97, 0, 99, 0,116, 0, 58, 0, 32, 0,
-102, 0,111, 0,110, 0,116, 0,115, 0, 32, 0, 97, 0,116, 0, 32, 0,103, 0,110, 0,111, 0,109, 0,101, 0, 32, 0,100, 0,
-111, 0,116, 0, 10, 0,111, 0,114, 0,103, 0, 46, 0, 32, 0, 10, 0, 10, 0, 65, 0,114, 0,101, 0,118, 0, 32, 0, 70, 0,
-111, 0,110, 0,116, 0,115, 0, 32, 0, 67, 0,111, 0,112, 0,121, 0,114, 0,105, 0,103, 0,104, 0,116, 0, 10, 0, 45, 0,
- 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0,
- 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 10, 0, 10, 0, 67, 0,
-111, 0,112, 0,121, 0,114, 0,105, 0,103, 0,104, 0,116, 0, 32, 0, 40, 0, 99, 0, 41, 0, 32, 0, 50, 0, 48, 0, 48, 0,
- 54, 0, 32, 0, 98, 0,121, 0, 32, 0, 84, 0, 97, 0,118, 0,109, 0,106, 0,111, 0,110, 0,103, 0, 32, 0, 66, 0, 97, 0,
-104, 0, 46, 0, 32, 0, 65, 0,108, 0,108, 0, 32, 0, 82, 0,105, 0,103, 0,104, 0,116, 0,115, 0, 32, 0, 82, 0,101, 0,
-115, 0,101, 0,114, 0,118, 0,101, 0,100, 0, 46, 0, 10, 0, 10, 0, 80, 0,101, 0,114, 0,109, 0,105, 0,115, 0,115, 0,
-105, 0,111, 0,110, 0, 32, 0,105, 0,115, 0, 32, 0,104, 0,101, 0,114, 0,101, 0, 98, 0,121, 0, 32, 0,103, 0,114, 0,
- 97, 0,110, 0,116, 0,101, 0,100, 0, 44, 0, 32, 0,102, 0,114, 0,101, 0,101, 0, 32, 0,111, 0,102, 0, 32, 0, 99, 0,
-104, 0, 97, 0,114, 0,103, 0,101, 0, 44, 0, 32, 0,116, 0,111, 0, 32, 0, 97, 0,110, 0,121, 0, 32, 0,112, 0,101, 0,
-114, 0,115, 0,111, 0,110, 0, 32, 0,111, 0, 98, 0,116, 0, 97, 0,105, 0,110, 0,105, 0,110, 0,103, 0, 10, 0, 97, 0,
- 32, 0, 99, 0,111, 0,112, 0,121, 0, 32, 0,111, 0,102, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,102, 0,111, 0,110, 0,
-116, 0,115, 0, 32, 0, 97, 0, 99, 0, 99, 0,111, 0,109, 0,112, 0, 97, 0,110, 0,121, 0,105, 0,110, 0,103, 0, 32, 0,
-116, 0,104, 0,105, 0,115, 0, 32, 0,108, 0,105, 0, 99, 0,101, 0,110, 0,115, 0,101, 0, 32, 0, 40, 0, 34, 0, 70, 0,
-111, 0,110, 0,116, 0,115, 0, 34, 0, 41, 0, 32, 0, 97, 0,110, 0,100, 0, 10, 0, 97, 0,115, 0,115, 0,111, 0, 99, 0,
-105, 0, 97, 0,116, 0,101, 0,100, 0, 32, 0,100, 0,111, 0, 99, 0,117, 0,109, 0,101, 0,110, 0,116, 0, 97, 0,116, 0,
-105, 0,111, 0,110, 0, 32, 0,102, 0,105, 0,108, 0,101, 0,115, 0, 32, 0, 40, 0,116, 0,104, 0,101, 0, 32, 0, 34, 0,
- 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 34, 0, 41, 0, 44, 0,
- 32, 0,116, 0,111, 0, 32, 0,114, 0,101, 0,112, 0,114, 0,111, 0,100, 0,117, 0, 99, 0,101, 0, 10, 0, 97, 0,110, 0,
-100, 0, 32, 0,100, 0,105, 0,115, 0,116, 0,114, 0,105, 0, 98, 0,117, 0,116, 0,101, 0, 32, 0,116, 0,104, 0,101, 0,
- 32, 0,109, 0,111, 0,100, 0,105, 0,102, 0,105, 0, 99, 0, 97, 0,116, 0,105, 0,111, 0,110, 0,115, 0, 32, 0,116, 0,
-111, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 32, 0,
- 86, 0,101, 0,114, 0, 97, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,
-114, 0,101, 0, 44, 0, 10, 0,105, 0,110, 0, 99, 0,108, 0,117, 0,100, 0,105, 0,110, 0,103, 0, 32, 0,119, 0,105, 0,
-116, 0,104, 0,111, 0,117, 0,116, 0, 32, 0,108, 0,105, 0,109, 0,105, 0,116, 0, 97, 0,116, 0,105, 0,111, 0,110, 0,
- 32, 0,116, 0,104, 0,101, 0, 32, 0,114, 0,105, 0,103, 0,104, 0,116, 0,115, 0, 32, 0,116, 0,111, 0, 32, 0,117, 0,
-115, 0,101, 0, 44, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0, 44, 0, 32, 0,109, 0,101, 0,114, 0,103, 0,101, 0, 44, 0,
- 32, 0,112, 0,117, 0, 98, 0,108, 0,105, 0,115, 0,104, 0, 44, 0, 10, 0,100, 0,105, 0,115, 0,116, 0,114, 0,105, 0,
- 98, 0,117, 0,116, 0,101, 0, 44, 0, 32, 0, 97, 0,110, 0,100, 0, 47, 0,111, 0,114, 0, 32, 0,115, 0,101, 0,108, 0,
-108, 0, 32, 0, 99, 0,111, 0,112, 0,105, 0,101, 0,115, 0, 32, 0,111, 0,102, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,
- 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 44, 0, 32, 0, 97, 0,
-110, 0,100, 0, 32, 0,116, 0,111, 0, 32, 0,112, 0,101, 0,114, 0,109, 0,105, 0,116, 0, 10, 0,112, 0,101, 0,114, 0,
-115, 0,111, 0,110, 0,115, 0, 32, 0,116, 0,111, 0, 32, 0,119, 0,104, 0,111, 0,109, 0, 32, 0,116, 0,104, 0,101, 0,
- 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,105, 0,
-115, 0, 32, 0,102, 0,117, 0,114, 0,110, 0,105, 0,115, 0,104, 0,101, 0,100, 0, 32, 0,116, 0,111, 0, 32, 0,100, 0,
-111, 0, 32, 0,115, 0,111, 0, 44, 0, 32, 0,115, 0,117, 0, 98, 0,106, 0,101, 0, 99, 0,116, 0, 32, 0,116, 0,111, 0,
- 10, 0,116, 0,104, 0,101, 0, 32, 0,102, 0,111, 0,108, 0,108, 0,111, 0,119, 0,105, 0,110, 0,103, 0, 32, 0, 99, 0,
-111, 0,110, 0,100, 0,105, 0,116, 0,105, 0,111, 0,110, 0,115, 0, 58, 0, 10, 0, 10, 0, 84, 0,104, 0,101, 0, 32, 0,
- 97, 0, 98, 0,111, 0,118, 0,101, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0,114, 0,105, 0,103, 0,104, 0,116, 0, 32, 0,
- 97, 0,110, 0,100, 0, 32, 0,116, 0,114, 0, 97, 0,100, 0,101, 0,109, 0, 97, 0,114, 0,107, 0, 32, 0,110, 0,111, 0,
-116, 0,105, 0, 99, 0,101, 0,115, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,116, 0,104, 0,105, 0,115, 0, 32, 0,112, 0,
-101, 0,114, 0,109, 0,105, 0,115, 0,115, 0,105, 0,111, 0,110, 0, 32, 0,110, 0,111, 0,116, 0,105, 0, 99, 0,101, 0,
- 10, 0,115, 0,104, 0, 97, 0,108, 0,108, 0, 32, 0, 98, 0,101, 0, 32, 0,105, 0,110, 0, 99, 0,108, 0,117, 0,100, 0,
-101, 0,100, 0, 32, 0,105, 0,110, 0, 32, 0, 97, 0,108, 0,108, 0, 32, 0, 99, 0,111, 0,112, 0,105, 0,101, 0,115, 0,
- 32, 0,111, 0,102, 0, 32, 0,111, 0,110, 0,101, 0, 32, 0,111, 0,114, 0, 32, 0,109, 0,111, 0,114, 0,101, 0, 32, 0,
-111, 0,102, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,
-119, 0, 97, 0,114, 0,101, 0, 10, 0,116, 0,121, 0,112, 0,101, 0,102, 0, 97, 0, 99, 0,101, 0,115, 0, 46, 0, 10, 0,
- 10, 0, 84, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,
-114, 0,101, 0, 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0,109, 0,111, 0,100, 0,105, 0,102, 0,105, 0,
-101, 0,100, 0, 44, 0, 32, 0, 97, 0,108, 0,116, 0,101, 0,114, 0,101, 0,100, 0, 44, 0, 32, 0,111, 0,114, 0, 32, 0,
- 97, 0,100, 0,100, 0,101, 0,100, 0, 32, 0,116, 0,111, 0, 44, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,105, 0,110, 0,
- 10, 0,112, 0, 97, 0,114, 0,116, 0,105, 0, 99, 0,117, 0,108, 0, 97, 0,114, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,
-100, 0,101, 0,115, 0,105, 0,103, 0,110, 0,115, 0, 32, 0,111, 0,102, 0, 32, 0,103, 0,108, 0,121, 0,112, 0,104, 0,
-115, 0, 32, 0,111, 0,114, 0, 32, 0, 99, 0,104, 0, 97, 0,114, 0, 97, 0, 99, 0,116, 0,101, 0,114, 0,115, 0, 32, 0,
-105, 0,110, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0,115, 0, 32, 0,109, 0, 97, 0,121, 0,
- 32, 0, 98, 0,101, 0, 10, 0,109, 0,111, 0,100, 0,105, 0,102, 0,105, 0,101, 0,100, 0, 32, 0, 97, 0,110, 0,100, 0,
- 32, 0, 97, 0,100, 0,100, 0,105, 0,116, 0,105, 0,111, 0,110, 0, 97, 0,108, 0, 32, 0,103, 0,108, 0,121, 0,112, 0,
-104, 0,115, 0, 32, 0,111, 0,114, 0, 32, 0, 99, 0,104, 0, 97, 0,114, 0, 97, 0, 99, 0,116, 0,101, 0,114, 0,115, 0,
- 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0, 97, 0,100, 0,100, 0,101, 0,100, 0, 32, 0,116, 0,111, 0,
- 32, 0,116, 0,104, 0,101, 0, 10, 0, 70, 0,111, 0,110, 0,116, 0,115, 0, 44, 0, 32, 0,111, 0,110, 0,108, 0,121, 0,
- 32, 0,105, 0,102, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,102, 0,111, 0,110, 0,116, 0,115, 0, 32, 0, 97, 0,114, 0,
-101, 0, 32, 0,114, 0,101, 0,110, 0, 97, 0,109, 0,101, 0,100, 0, 32, 0,116, 0,111, 0, 32, 0,110, 0, 97, 0,109, 0,
-101, 0,115, 0, 32, 0,110, 0,111, 0,116, 0, 32, 0, 99, 0,111, 0,110, 0,116, 0, 97, 0,105, 0,110, 0,105, 0,110, 0,
-103, 0, 32, 0,101, 0,105, 0,116, 0,104, 0,101, 0,114, 0, 10, 0,116, 0,104, 0,101, 0, 32, 0,119, 0,111, 0,114, 0,
-100, 0,115, 0, 32, 0, 34, 0, 84, 0, 97, 0,118, 0,109, 0,106, 0,111, 0,110, 0,103, 0, 32, 0, 66, 0, 97, 0,104, 0,
- 34, 0, 32, 0,111, 0,114, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,119, 0,111, 0,114, 0,100, 0, 32, 0, 34, 0, 65, 0,
-114, 0,101, 0,118, 0, 34, 0, 46, 0, 10, 0, 10, 0, 84, 0,104, 0,105, 0,115, 0, 32, 0, 76, 0,105, 0, 99, 0,101, 0,
-110, 0,115, 0,101, 0, 32, 0, 98, 0,101, 0, 99, 0,111, 0,109, 0,101, 0,115, 0, 32, 0,110, 0,117, 0,108, 0,108, 0,
- 32, 0, 97, 0,110, 0,100, 0, 32, 0,118, 0,111, 0,105, 0,100, 0, 32, 0,116, 0,111, 0, 32, 0,116, 0,104, 0,101, 0,
- 32, 0,101, 0,120, 0,116, 0,101, 0,110, 0,116, 0, 32, 0, 97, 0,112, 0,112, 0,108, 0,105, 0, 99, 0, 97, 0, 98, 0,
-108, 0,101, 0, 32, 0,116, 0,111, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0,115, 0, 10, 0,111, 0,114, 0, 32, 0, 70, 0,
-111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,116, 0,104, 0, 97, 0,
-116, 0, 32, 0,104, 0, 97, 0,115, 0, 32, 0, 98, 0,101, 0,101, 0,110, 0, 32, 0,109, 0,111, 0,100, 0,105, 0,102, 0,
-105, 0,101, 0,100, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,105, 0,115, 0, 32, 0,100, 0,105, 0,115, 0,116, 0,114, 0,
-105, 0, 98, 0,117, 0,116, 0,101, 0,100, 0, 32, 0,117, 0,110, 0,100, 0,101, 0,114, 0, 32, 0,116, 0,104, 0,101, 0,
- 32, 0, 10, 0, 34, 0, 84, 0, 97, 0,118, 0,109, 0,106, 0,111, 0,110, 0,103, 0, 32, 0, 66, 0, 97, 0,104, 0, 32, 0,
- 65, 0,114, 0,101, 0,118, 0, 34, 0, 32, 0,110, 0, 97, 0,109, 0,101, 0,115, 0, 46, 0, 10, 0, 10, 0, 84, 0,104, 0,
-101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,
-109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0,115, 0,111, 0,108, 0,100, 0, 32, 0, 97, 0,115, 0, 32, 0,112, 0,
- 97, 0,114, 0,116, 0, 32, 0,111, 0,102, 0, 32, 0, 97, 0, 32, 0,108, 0, 97, 0,114, 0,103, 0,101, 0,114, 0, 32, 0,
-115, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,112, 0, 97, 0, 99, 0,107, 0, 97, 0,103, 0,101, 0,
- 32, 0, 98, 0,117, 0,116, 0, 10, 0,110, 0,111, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0, 32, 0,111, 0,102, 0, 32, 0,
-111, 0,110, 0,101, 0, 32, 0,111, 0,114, 0, 32, 0,109, 0,111, 0,114, 0,101, 0, 32, 0,111, 0,102, 0, 32, 0,116, 0,
-104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0,
- 32, 0,116, 0,121, 0,112, 0,101, 0,102, 0, 97, 0, 99, 0,101, 0,115, 0, 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,
-101, 0, 32, 0,115, 0,111, 0,108, 0,100, 0, 32, 0, 98, 0,121, 0, 10, 0,105, 0,116, 0,115, 0,101, 0,108, 0,102, 0,
- 46, 0, 10, 0, 10, 0, 84, 0, 72, 0, 69, 0, 32, 0, 70, 0, 79, 0, 78, 0, 84, 0, 32, 0, 83, 0, 79, 0, 70, 0, 84, 0,
- 87, 0, 65, 0, 82, 0, 69, 0, 32, 0, 73, 0, 83, 0, 32, 0, 80, 0, 82, 0, 79, 0, 86, 0, 73, 0, 68, 0, 69, 0, 68, 0,
- 32, 0, 34, 0, 65, 0, 83, 0, 32, 0, 73, 0, 83, 0, 34, 0, 44, 0, 32, 0, 87, 0, 73, 0, 84, 0, 72, 0, 79, 0, 85, 0,
- 84, 0, 32, 0, 87, 0, 65, 0, 82, 0, 82, 0, 65, 0, 78, 0, 84, 0, 89, 0, 32, 0, 79, 0, 70, 0, 32, 0, 65, 0, 78, 0,
- 89, 0, 32, 0, 75, 0, 73, 0, 78, 0, 68, 0, 44, 0, 10, 0, 69, 0, 88, 0, 80, 0, 82, 0, 69, 0, 83, 0, 83, 0, 32, 0,
- 79, 0, 82, 0, 32, 0, 73, 0, 77, 0, 80, 0, 76, 0, 73, 0, 69, 0, 68, 0, 44, 0, 32, 0, 73, 0, 78, 0, 67, 0, 76, 0,
- 85, 0, 68, 0, 73, 0, 78, 0, 71, 0, 32, 0, 66, 0, 85, 0, 84, 0, 32, 0, 78, 0, 79, 0, 84, 0, 32, 0, 76, 0, 73, 0,
- 77, 0, 73, 0, 84, 0, 69, 0, 68, 0, 32, 0, 84, 0, 79, 0, 32, 0, 65, 0, 78, 0, 89, 0, 32, 0, 87, 0, 65, 0, 82, 0,
- 82, 0, 65, 0, 78, 0, 84, 0, 73, 0, 69, 0, 83, 0, 32, 0, 79, 0, 70, 0, 10, 0, 77, 0, 69, 0, 82, 0, 67, 0, 72, 0,
- 65, 0, 78, 0, 84, 0, 65, 0, 66, 0, 73, 0, 76, 0, 73, 0, 84, 0, 89, 0, 44, 0, 32, 0, 70, 0, 73, 0, 84, 0, 78, 0,
- 69, 0, 83, 0, 83, 0, 32, 0, 70, 0, 79, 0, 82, 0, 32, 0, 65, 0, 32, 0, 80, 0, 65, 0, 82, 0, 84, 0, 73, 0, 67, 0,
- 85, 0, 76, 0, 65, 0, 82, 0, 32, 0, 80, 0, 85, 0, 82, 0, 80, 0, 79, 0, 83, 0, 69, 0, 32, 0, 65, 0, 78, 0, 68, 0,
- 32, 0, 78, 0, 79, 0, 78, 0, 73, 0, 78, 0, 70, 0, 82, 0, 73, 0, 78, 0, 71, 0, 69, 0, 77, 0, 69, 0, 78, 0, 84, 0,
- 10, 0, 79, 0, 70, 0, 32, 0, 67, 0, 79, 0, 80, 0, 89, 0, 82, 0, 73, 0, 71, 0, 72, 0, 84, 0, 44, 0, 32, 0, 80, 0,
- 65, 0, 84, 0, 69, 0, 78, 0, 84, 0, 44, 0, 32, 0, 84, 0, 82, 0, 65, 0, 68, 0, 69, 0, 77, 0, 65, 0, 82, 0, 75, 0,
- 44, 0, 32, 0, 79, 0, 82, 0, 32, 0, 79, 0, 84, 0, 72, 0, 69, 0, 82, 0, 32, 0, 82, 0, 73, 0, 71, 0, 72, 0, 84, 0,
- 46, 0, 32, 0, 73, 0, 78, 0, 32, 0, 78, 0, 79, 0, 32, 0, 69, 0, 86, 0, 69, 0, 78, 0, 84, 0, 32, 0, 83, 0, 72, 0,
- 65, 0, 76, 0, 76, 0, 10, 0, 84, 0, 65, 0, 86, 0, 77, 0, 74, 0, 79, 0, 78, 0, 71, 0, 32, 0, 66, 0, 65, 0, 72, 0,
- 32, 0, 66, 0, 69, 0, 32, 0, 76, 0, 73, 0, 65, 0, 66, 0, 76, 0, 69, 0, 32, 0, 70, 0, 79, 0, 82, 0, 32, 0, 65, 0,
- 78, 0, 89, 0, 32, 0, 67, 0, 76, 0, 65, 0, 73, 0, 77, 0, 44, 0, 32, 0, 68, 0, 65, 0, 77, 0, 65, 0, 71, 0, 69, 0,
- 83, 0, 32, 0, 79, 0, 82, 0, 32, 0, 79, 0, 84, 0, 72, 0, 69, 0, 82, 0, 32, 0, 76, 0, 73, 0, 65, 0, 66, 0, 73, 0,
- 76, 0, 73, 0, 84, 0, 89, 0, 44, 0, 10, 0, 73, 0, 78, 0, 67, 0, 76, 0, 85, 0, 68, 0, 73, 0, 78, 0, 71, 0, 32, 0,
- 65, 0, 78, 0, 89, 0, 32, 0, 71, 0, 69, 0, 78, 0, 69, 0, 82, 0, 65, 0, 76, 0, 44, 0, 32, 0, 83, 0, 80, 0, 69, 0,
- 67, 0, 73, 0, 65, 0, 76, 0, 44, 0, 32, 0, 73, 0, 78, 0, 68, 0, 73, 0, 82, 0, 69, 0, 67, 0, 84, 0, 44, 0, 32, 0,
- 73, 0, 78, 0, 67, 0, 73, 0, 68, 0, 69, 0, 78, 0, 84, 0, 65, 0, 76, 0, 44, 0, 32, 0, 79, 0, 82, 0, 32, 0, 67, 0,
- 79, 0, 78, 0, 83, 0, 69, 0, 81, 0, 85, 0, 69, 0, 78, 0, 84, 0, 73, 0, 65, 0, 76, 0, 10, 0, 68, 0, 65, 0, 77, 0,
- 65, 0, 71, 0, 69, 0, 83, 0, 44, 0, 32, 0, 87, 0, 72, 0, 69, 0, 84, 0, 72, 0, 69, 0, 82, 0, 32, 0, 73, 0, 78, 0,
- 32, 0, 65, 0, 78, 0, 32, 0, 65, 0, 67, 0, 84, 0, 73, 0, 79, 0, 78, 0, 32, 0, 79, 0, 70, 0, 32, 0, 67, 0, 79, 0,
- 78, 0, 84, 0, 82, 0, 65, 0, 67, 0, 84, 0, 44, 0, 32, 0, 84, 0, 79, 0, 82, 0, 84, 0, 32, 0, 79, 0, 82, 0, 32, 0,
- 79, 0, 84, 0, 72, 0, 69, 0, 82, 0, 87, 0, 73, 0, 83, 0, 69, 0, 44, 0, 32, 0, 65, 0, 82, 0, 73, 0, 83, 0, 73, 0,
- 78, 0, 71, 0, 10, 0, 70, 0, 82, 0, 79, 0, 77, 0, 44, 0, 32, 0, 79, 0, 85, 0, 84, 0, 32, 0, 79, 0, 70, 0, 32, 0,
- 84, 0, 72, 0, 69, 0, 32, 0, 85, 0, 83, 0, 69, 0, 32, 0, 79, 0, 82, 0, 32, 0, 73, 0, 78, 0, 65, 0, 66, 0, 73, 0,
- 76, 0, 73, 0, 84, 0, 89, 0, 32, 0, 84, 0, 79, 0, 32, 0, 85, 0, 83, 0, 69, 0, 32, 0, 84, 0, 72, 0, 69, 0, 32, 0,
- 70, 0, 79, 0, 78, 0, 84, 0, 32, 0, 83, 0, 79, 0, 70, 0, 84, 0, 87, 0, 65, 0, 82, 0, 69, 0, 32, 0, 79, 0, 82, 0,
- 32, 0, 70, 0, 82, 0, 79, 0, 77, 0, 10, 0, 79, 0, 84, 0, 72, 0, 69, 0, 82, 0, 32, 0, 68, 0, 69, 0, 65, 0, 76, 0,
- 73, 0, 78, 0, 71, 0, 83, 0, 32, 0, 73, 0, 78, 0, 32, 0, 84, 0, 72, 0, 69, 0, 32, 0, 70, 0, 79, 0, 78, 0, 84, 0,
- 32, 0, 83, 0, 79, 0, 70, 0, 84, 0, 87, 0, 65, 0, 82, 0, 69, 0, 46, 0, 10, 0, 10, 0, 69, 0,120, 0, 99, 0,101, 0,
-112, 0,116, 0, 32, 0, 97, 0,115, 0, 32, 0, 99, 0,111, 0,110, 0,116, 0, 97, 0,105, 0,110, 0,101, 0,100, 0, 32, 0,
-105, 0,110, 0, 32, 0,116, 0,104, 0,105, 0,115, 0, 32, 0,110, 0,111, 0,116, 0,105, 0, 99, 0,101, 0, 44, 0, 32, 0,
-116, 0,104, 0,101, 0, 32, 0,110, 0, 97, 0,109, 0,101, 0, 32, 0,111, 0,102, 0, 32, 0, 84, 0, 97, 0,118, 0,109, 0,
-106, 0,111, 0,110, 0,103, 0, 32, 0, 66, 0, 97, 0,104, 0, 32, 0,115, 0,104, 0, 97, 0,108, 0,108, 0, 32, 0,110, 0,
-111, 0,116, 0, 10, 0, 98, 0,101, 0, 32, 0,117, 0,115, 0,101, 0,100, 0, 32, 0,105, 0,110, 0, 32, 0, 97, 0,100, 0,
-118, 0,101, 0,114, 0,116, 0,105, 0,115, 0,105, 0,110, 0,103, 0, 32, 0,111, 0,114, 0, 32, 0,111, 0,116, 0,104, 0,
-101, 0,114, 0,119, 0,105, 0,115, 0,101, 0, 32, 0,116, 0,111, 0, 32, 0,112, 0,114, 0,111, 0,109, 0,111, 0,116, 0,
-101, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,115, 0, 97, 0,108, 0,101, 0, 44, 0, 32, 0,117, 0,115, 0,101, 0, 32, 0,
-111, 0,114, 0, 32, 0,111, 0,116, 0,104, 0,101, 0,114, 0, 10, 0,100, 0,101, 0, 97, 0,108, 0,105, 0,110, 0,103, 0,
-115, 0, 32, 0,105, 0,110, 0, 32, 0,116, 0,104, 0,105, 0,115, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,
-111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,119, 0,105, 0,116, 0,104, 0,111, 0,117, 0,116, 0, 32, 0,
-112, 0,114, 0,105, 0,111, 0,114, 0, 32, 0,119, 0,114, 0,105, 0,116, 0,116, 0,101, 0,110, 0, 32, 0, 97, 0,117, 0,
-116, 0,104, 0,111, 0,114, 0,105, 0,122, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 10, 0,102, 0,114, 0,111, 0,109, 0,
- 32, 0, 84, 0, 97, 0,118, 0,109, 0,106, 0,111, 0,110, 0,103, 0, 32, 0, 66, 0, 97, 0,104, 0, 46, 0, 32, 0, 70, 0,
-111, 0,114, 0, 32, 0,102, 0,117, 0,114, 0,116, 0,104, 0,101, 0,114, 0, 32, 0,105, 0,110, 0,102, 0,111, 0,114, 0,
-109, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 44, 0, 32, 0, 99, 0,111, 0,110, 0,116, 0, 97, 0, 99, 0,116, 0, 58, 0,
- 32, 0,116, 0, 97, 0,118, 0,109, 0,106, 0,111, 0,110, 0,103, 0, 32, 0, 64, 0, 32, 0,102, 0,114, 0,101, 0,101, 0,
- 10, 0, 46, 0, 32, 0,102, 0,114, 0, 46, 0, 0, 70,111,110,116,115, 32, 97,114,101, 32, 40, 99, 41, 32, 66,105,116,115,116,
-114,101, 97,109, 32, 40,115,101,101, 32, 98,101,108,111,119, 41, 46, 32, 68,101,106, 97, 86,117, 32, 99,104, 97,110,103,101,115,
- 32, 97,114,101, 32,105,110, 32,112,117, 98,108,105, 99, 32,100,111,109, 97,105,110, 46, 32, 71,108,121,112,104,115, 32,105,109,
-112,111,114,116,101,100, 32,102,114,111,109, 32, 65,114,101,118, 32,102,111,110,116,115, 32, 97,114,101, 32, 40, 99, 41, 32, 84,
- 97,118,109,106,117,110,103, 32, 66, 97,104, 32, 40,115,101,101, 32, 98,101,108,111,119, 41, 10, 10, 66,105,116,115,116,114,101,
- 97,109, 32, 86,101,114, 97, 32, 70,111,110,116,115, 32, 67,111,112,121,114,105,103,104,116, 10, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 10, 67,111,112,121,114,105,103,104,
-116, 32, 40, 99, 41, 32, 50, 48, 48, 51, 32, 98,121, 32, 66,105,116,115,116,114,101, 97,109, 44, 32, 73,110, 99, 46, 32, 65,108,
-108, 32, 82,105,103,104,116,115, 32, 82,101,115,101,114,118,101,100, 46, 32, 66,105,116,115,116,114,101, 97,109, 32, 86,101,114,
- 97, 32,105,115, 10, 97, 32,116,114, 97,100,101,109, 97,114,107, 32,111,102, 32, 66,105,116,115,116,114,101, 97,109, 44, 32, 73,
-110, 99, 46, 10, 10, 80,101,114,109,105,115,115,105,111,110, 32,105,115, 32,104,101,114,101, 98,121, 32,103,114, 97,110,116,101,
-100, 44, 32,102,114,101,101, 32,111,102, 32, 99,104, 97,114,103,101, 44, 32,116,111, 32, 97,110,121, 32,112,101,114,115,111,110,
- 32,111, 98,116, 97,105,110,105,110,103, 32, 97, 32, 99,111,112,121, 10,111,102, 32,116,104,101, 32,102,111,110,116,115, 32, 97,
- 99, 99,111,109,112, 97,110,121,105,110,103, 32,116,104,105,115, 32,108,105, 99,101,110,115,101, 32, 40, 34, 70,111,110,116,115,
- 34, 41, 32, 97,110,100, 32, 97,115,115,111, 99,105, 97,116,101,100, 10,100,111, 99,117,109,101,110,116, 97,116,105,111,110, 32,
-102,105,108,101,115, 32, 40,116,104,101, 32, 34, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101, 34, 41, 44, 32,116,111, 32,
-114,101,112,114,111,100,117, 99,101, 32, 97,110,100, 32,100,105,115,116,114,105, 98,117,116,101, 32,116,104,101, 10, 70,111,110,
-116, 32, 83,111,102,116,119, 97,114,101, 44, 32,105,110, 99,108,117,100,105,110,103, 32,119,105,116,104,111,117,116, 32,108,105,
-109,105,116, 97,116,105,111,110, 32,116,104,101, 32,114,105,103,104,116,115, 32,116,111, 32,117,115,101, 44, 32, 99,111,112,121,
- 44, 32,109,101,114,103,101, 44, 10,112,117, 98,108,105,115,104, 44, 32,100,105,115,116,114,105, 98,117,116,101, 44, 32, 97,110,
-100, 47,111,114, 32,115,101,108,108, 32, 99,111,112,105,101,115, 32,111,102, 32,116,104,101, 32, 70,111,110,116, 32, 83,111,102,
-116,119, 97,114,101, 44, 32, 97,110,100, 32,116,111, 32,112,101,114,109,105,116, 10,112,101,114,115,111,110,115, 32,116,111, 32,
-119,104,111,109, 32,116,104,101, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101, 32,105,115, 32,102,117,114,110,105,115,
-104,101,100, 32,116,111, 32,100,111, 32,115,111, 44, 32,115,117, 98,106,101, 99,116, 32,116,111, 32,116,104,101, 10,102,111,108,
-108,111,119,105,110,103, 32, 99,111,110,100,105,116,105,111,110,115, 58, 10, 10, 84,104,101, 32, 97, 98,111,118,101, 32, 99,111,
-112,121,114,105,103,104,116, 32, 97,110,100, 32,116,114, 97,100,101,109, 97,114,107, 32,110,111,116,105, 99,101,115, 32, 97,110,
-100, 32,116,104,105,115, 32,112,101,114,109,105,115,115,105,111,110, 32,110,111,116,105, 99,101, 32,115,104, 97,108,108, 10, 98,
-101, 32,105,110, 99,108,117,100,101,100, 32,105,110, 32, 97,108,108, 32, 99,111,112,105,101,115, 32,111,102, 32,111,110,101, 32,
-111,114, 32,109,111,114,101, 32,111,102, 32,116,104,101, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101, 32,116,121,112,
-101,102, 97, 99,101,115, 46, 10, 10, 84,104,101, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101, 32,109, 97,121, 32, 98,
-101, 32,109,111,100,105,102,105,101,100, 44, 32, 97,108,116,101,114,101,100, 44, 32,111,114, 32, 97,100,100,101,100, 32,116,111,
- 44, 32, 97,110,100, 32,105,110, 32,112, 97,114,116,105, 99,117,108, 97,114, 10,116,104,101, 32,100,101,115,105,103,110,115, 32,
-111,102, 32,103,108,121,112,104,115, 32,111,114, 32, 99,104, 97,114, 97, 99,116,101,114,115, 32,105,110, 32,116,104,101, 32, 70,
-111,110,116,115, 32,109, 97,121, 32, 98,101, 32,109,111,100,105,102,105,101,100, 32, 97,110,100, 10, 97,100,100,105,116,105,111,
-110, 97,108, 32,103,108,121,112,104,115, 32,111,114, 32, 99,104, 97,114, 97, 99,116,101,114,115, 32,109, 97,121, 32, 98,101, 32,
- 97,100,100,101,100, 32,116,111, 32,116,104,101, 32, 70,111,110,116,115, 44, 32,111,110,108,121, 32,105,102, 32,116,104,101, 32,
-102,111,110,116,115, 10, 97,114,101, 32,114,101,110, 97,109,101,100, 32,116,111, 32,110, 97,109,101,115, 32,110,111,116, 32, 99,
-111,110,116, 97,105,110,105,110,103, 32,101,105,116,104,101,114, 32,116,104,101, 32,119,111,114,100,115, 32, 34, 66,105,116,115,
-116,114,101, 97,109, 34, 32,111,114, 32,116,104,101, 32,119,111,114,100, 10, 34, 86,101,114, 97, 34, 46, 10, 10, 84,104,105,115,
- 32, 76,105, 99,101,110,115,101, 32, 98,101, 99,111,109,101,115, 32,110,117,108,108, 32, 97,110,100, 32,118,111,105,100, 32,116,
-111, 32,116,104,101, 32,101,120,116,101,110,116, 32, 97,112,112,108,105, 99, 97, 98,108,101, 32,116,111, 32, 70,111,110,116,115,
- 32,111,114, 32, 70,111,110,116, 10, 83,111,102,116,119, 97,114,101, 32,116,104, 97,116, 32,104, 97,115, 32, 98,101,101,110, 32,
-109,111,100,105,102,105,101,100, 32, 97,110,100, 32,105,115, 32,100,105,115,116,114,105, 98,117,116,101,100, 32,117,110,100,101,
-114, 32,116,104,101, 32, 34, 66,105,116,115,116,114,101, 97,109, 10, 86,101,114, 97, 34, 32,110, 97,109,101,115, 46, 10, 10, 84,
-104,101, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101, 32,109, 97,121, 32, 98,101, 32,115,111,108,100, 32, 97,115, 32,
-112, 97,114,116, 32,111,102, 32, 97, 32,108, 97,114,103,101,114, 32,115,111,102,116,119, 97,114,101, 32,112, 97, 99,107, 97,103,
-101, 32, 98,117,116, 32,110,111, 10, 99,111,112,121, 32,111,102, 32,111,110,101, 32,111,114, 32,109,111,114,101, 32,111,102, 32,
-116,104,101, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101, 32,116,121,112,101,102, 97, 99,101,115, 32,109, 97,121, 32,
- 98,101, 32,115,111,108,100, 32, 98,121, 32,105,116,115,101,108,102, 46, 10, 10, 84, 72, 69, 32, 70, 79, 78, 84, 32, 83, 79, 70,
- 84, 87, 65, 82, 69, 32, 73, 83, 32, 80, 82, 79, 86, 73, 68, 69, 68, 32, 34, 65, 83, 32, 73, 83, 34, 44, 32, 87, 73, 84, 72, 79,
- 85, 84, 32, 87, 65, 82, 82, 65, 78, 84, 89, 32, 79, 70, 32, 65, 78, 89, 32, 75, 73, 78, 68, 44, 32, 69, 88, 80, 82, 69, 83, 83,
- 10, 79, 82, 32, 73, 77, 80, 76, 73, 69, 68, 44, 32, 73, 78, 67, 76, 85, 68, 73, 78, 71, 32, 66, 85, 84, 32, 78, 79, 84, 32, 76,
- 73, 77, 73, 84, 69, 68, 32, 84, 79, 32, 65, 78, 89, 32, 87, 65, 82, 82, 65, 78, 84, 73, 69, 83, 32, 79, 70, 32, 77, 69, 82, 67,
- 72, 65, 78, 84, 65, 66, 73, 76, 73, 84, 89, 44, 10, 70, 73, 84, 78, 69, 83, 83, 32, 70, 79, 82, 32, 65, 32, 80, 65, 82, 84, 73,
- 67, 85, 76, 65, 82, 32, 80, 85, 82, 80, 79, 83, 69, 32, 65, 78, 68, 32, 78, 79, 78, 73, 78, 70, 82, 73, 78, 71, 69, 77, 69, 78,
- 84, 32, 79, 70, 32, 67, 79, 80, 89, 82, 73, 71, 72, 84, 44, 32, 80, 65, 84, 69, 78, 84, 44, 10, 84, 82, 65, 68, 69, 77, 65, 82,
- 75, 44, 32, 79, 82, 32, 79, 84, 72, 69, 82, 32, 82, 73, 71, 72, 84, 46, 32, 73, 78, 32, 78, 79, 32, 69, 86, 69, 78, 84, 32, 83,
- 72, 65, 76, 76, 32, 66, 73, 84, 83, 84, 82, 69, 65, 77, 32, 79, 82, 32, 84, 72, 69, 32, 71, 78, 79, 77, 69, 10, 70, 79, 85, 78,
- 68, 65, 84, 73, 79, 78, 32, 66, 69, 32, 76, 73, 65, 66, 76, 69, 32, 70, 79, 82, 32, 65, 78, 89, 32, 67, 76, 65, 73, 77, 44, 32,
- 68, 65, 77, 65, 71, 69, 83, 32, 79, 82, 32, 79, 84, 72, 69, 82, 32, 76, 73, 65, 66, 73, 76, 73, 84, 89, 44, 32, 73, 78, 67, 76,
- 85, 68, 73, 78, 71, 10, 65, 78, 89, 32, 71, 69, 78, 69, 82, 65, 76, 44, 32, 83, 80, 69, 67, 73, 65, 76, 44, 32, 73, 78, 68, 73,
- 82, 69, 67, 84, 44, 32, 73, 78, 67, 73, 68, 69, 78, 84, 65, 76, 44, 32, 79, 82, 32, 67, 79, 78, 83, 69, 81, 85, 69, 78, 84, 73,
- 65, 76, 32, 68, 65, 77, 65, 71, 69, 83, 44, 10, 87, 72, 69, 84, 72, 69, 82, 32, 73, 78, 32, 65, 78, 32, 65, 67, 84, 73, 79, 78,
- 32, 79, 70, 32, 67, 79, 78, 84, 82, 65, 67, 84, 44, 32, 84, 79, 82, 84, 32, 79, 82, 32, 79, 84, 72, 69, 82, 87, 73, 83, 69, 44,
- 32, 65, 82, 73, 83, 73, 78, 71, 32, 70, 82, 79, 77, 44, 32, 79, 85, 84, 32, 79, 70, 10, 84, 72, 69, 32, 85, 83, 69, 32, 79, 82,
- 32, 73, 78, 65, 66, 73, 76, 73, 84, 89, 32, 84, 79, 32, 85, 83, 69, 32, 84, 72, 69, 32, 70, 79, 78, 84, 32, 83, 79, 70, 84, 87,
- 65, 82, 69, 32, 79, 82, 32, 70, 82, 79, 77, 32, 79, 84, 72, 69, 82, 32, 68, 69, 65, 76, 73, 78, 71, 83, 32, 73, 78, 32, 84, 72,
- 69, 10, 70, 79, 78, 84, 32, 83, 79, 70, 84, 87, 65, 82, 69, 46, 10, 10, 69,120, 99,101,112,116, 32, 97,115, 32, 99,111,110,116,
- 97,105,110,101,100, 32,105,110, 32,116,104,105,115, 32,110,111,116,105, 99,101, 44, 32,116,104,101, 32,110, 97,109,101,115, 32,
-111,102, 32, 71,110,111,109,101, 44, 32,116,104,101, 32, 71,110,111,109,101, 10, 70,111,117,110,100, 97,116,105,111,110, 44, 32,
- 97,110,100, 32, 66,105,116,115,116,114,101, 97,109, 32, 73,110, 99, 46, 44, 32,115,104, 97,108,108, 32,110,111,116, 32, 98,101,
- 32,117,115,101,100, 32,105,110, 32, 97,100,118,101,114,116,105,115,105,110,103, 32,111,114, 10,111,116,104,101,114,119,105,115,
-101, 32,116,111, 32,112,114,111,109,111,116,101, 32,116,104,101, 32,115, 97,108,101, 44, 32,117,115,101, 32,111,114, 32,111,116,
-104,101,114, 32,100,101, 97,108,105,110,103,115, 32,105,110, 32,116,104,105,115, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,
-114,101, 10,119,105,116,104,111,117,116, 32,112,114,105,111,114, 32,119,114,105,116,116,101,110, 32, 97,117,116,104,111,114,105,
-122, 97,116,105,111,110, 32,102,114,111,109, 32,116,104,101, 32, 71,110,111,109,101, 32, 70,111,117,110,100, 97,116,105,111,110,
- 32,111,114, 32, 66,105,116,115,116,114,101, 97,109, 10, 73,110, 99, 46, 44, 32,114,101,115,112,101, 99,116,105,118,101,108,121,
- 46, 32, 70,111,114, 32,102,117,114,116,104,101,114, 32,105,110,102,111,114,109, 97,116,105,111,110, 44, 32, 99,111,110,116, 97,
- 99,116, 58, 32,102,111,110,116,115, 32, 97,116, 32,103,110,111,109,101, 32,100,111,116, 10,111,114,103, 46, 32, 10, 10, 65,114,
-101,118, 32, 70,111,110,116,115, 32, 67,111,112,121,114,105,103,104,116, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 10, 10, 67,111,112,121,114,105,103,104,116, 32, 40, 99, 41,
- 32, 50, 48, 48, 54, 32, 98,121, 32, 84, 97,118,109,106,111,110,103, 32, 66, 97,104, 46, 32, 65,108,108, 32, 82,105,103,104,116,
-115, 32, 82,101,115,101,114,118,101,100, 46, 10, 10, 80,101,114,109,105,115,115,105,111,110, 32,105,115, 32,104,101,114,101, 98,
-121, 32,103,114, 97,110,116,101,100, 44, 32,102,114,101,101, 32,111,102, 32, 99,104, 97,114,103,101, 44, 32,116,111, 32, 97,110,
-121, 32,112,101,114,115,111,110, 32,111, 98,116, 97,105,110,105,110,103, 10, 97, 32, 99,111,112,121, 32,111,102, 32,116,104,101,
- 32,102,111,110,116,115, 32, 97, 99, 99,111,109,112, 97,110,121,105,110,103, 32,116,104,105,115, 32,108,105, 99,101,110,115,101,
- 32, 40, 34, 70,111,110,116,115, 34, 41, 32, 97,110,100, 10, 97,115,115,111, 99,105, 97,116,101,100, 32,100,111, 99,117,109,101,
-110,116, 97,116,105,111,110, 32,102,105,108,101,115, 32, 40,116,104,101, 32, 34, 70,111,110,116, 32, 83,111,102,116,119, 97,114,
-101, 34, 41, 44, 32,116,111, 32,114,101,112,114,111,100,117, 99,101, 10, 97,110,100, 32,100,105,115,116,114,105, 98,117,116,101,
- 32,116,104,101, 32,109,111,100,105,102,105, 99, 97,116,105,111,110,115, 32,116,111, 32,116,104,101, 32, 66,105,116,115,116,114,
-101, 97,109, 32, 86,101,114, 97, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101, 44, 10,105,110, 99,108,117,100,105,110,
-103, 32,119,105,116,104,111,117,116, 32,108,105,109,105,116, 97,116,105,111,110, 32,116,104,101, 32,114,105,103,104,116,115, 32,
-116,111, 32,117,115,101, 44, 32, 99,111,112,121, 44, 32,109,101,114,103,101, 44, 32,112,117, 98,108,105,115,104, 44, 10,100,105,
-115,116,114,105, 98,117,116,101, 44, 32, 97,110,100, 47,111,114, 32,115,101,108,108, 32, 99,111,112,105,101,115, 32,111,102, 32,
-116,104,101, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101, 44, 32, 97,110,100, 32,116,111, 32,112,101,114,109,105,116,
- 10,112,101,114,115,111,110,115, 32,116,111, 32,119,104,111,109, 32,116,104,101, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,
-114,101, 32,105,115, 32,102,117,114,110,105,115,104,101,100, 32,116,111, 32,100,111, 32,115,111, 44, 32,115,117, 98,106,101, 99,
-116, 32,116,111, 10,116,104,101, 32,102,111,108,108,111,119,105,110,103, 32, 99,111,110,100,105,116,105,111,110,115, 58, 10, 10,
- 84,104,101, 32, 97, 98,111,118,101, 32, 99,111,112,121,114,105,103,104,116, 32, 97,110,100, 32,116,114, 97,100,101,109, 97,114,
-107, 32,110,111,116,105, 99,101,115, 32, 97,110,100, 32,116,104,105,115, 32,112,101,114,109,105,115,115,105,111,110, 32,110,111,
-116,105, 99,101, 10,115,104, 97,108,108, 32, 98,101, 32,105,110, 99,108,117,100,101,100, 32,105,110, 32, 97,108,108, 32, 99,111,
-112,105,101,115, 32,111,102, 32,111,110,101, 32,111,114, 32,109,111,114,101, 32,111,102, 32,116,104,101, 32, 70,111,110,116, 32,
- 83,111,102,116,119, 97,114,101, 10,116,121,112,101,102, 97, 99,101,115, 46, 10, 10, 84,104,101, 32, 70,111,110,116, 32, 83,111,
-102,116,119, 97,114,101, 32,109, 97,121, 32, 98,101, 32,109,111,100,105,102,105,101,100, 44, 32, 97,108,116,101,114,101,100, 44,
- 32,111,114, 32, 97,100,100,101,100, 32,116,111, 44, 32, 97,110,100, 32,105,110, 10,112, 97,114,116,105, 99,117,108, 97,114, 32,
-116,104,101, 32,100,101,115,105,103,110,115, 32,111,102, 32,103,108,121,112,104,115, 32,111,114, 32, 99,104, 97,114, 97, 99,116,
-101,114,115, 32,105,110, 32,116,104,101, 32, 70,111,110,116,115, 32,109, 97,121, 32, 98,101, 10,109,111,100,105,102,105,101,100,
- 32, 97,110,100, 32, 97,100,100,105,116,105,111,110, 97,108, 32,103,108,121,112,104,115, 32,111,114, 32, 99,104, 97,114, 97, 99,
-116,101,114,115, 32,109, 97,121, 32, 98,101, 32, 97,100,100,101,100, 32,116,111, 32,116,104,101, 10, 70,111,110,116,115, 44, 32,
-111,110,108,121, 32,105,102, 32,116,104,101, 32,102,111,110,116,115, 32, 97,114,101, 32,114,101,110, 97,109,101,100, 32,116,111,
- 32,110, 97,109,101,115, 32,110,111,116, 32, 99,111,110,116, 97,105,110,105,110,103, 32,101,105,116,104,101,114, 10,116,104,101,
- 32,119,111,114,100,115, 32, 34, 84, 97,118,109,106,111,110,103, 32, 66, 97,104, 34, 32,111,114, 32,116,104,101, 32,119,111,114,
-100, 32, 34, 65,114,101,118, 34, 46, 10, 10, 84,104,105,115, 32, 76,105, 99,101,110,115,101, 32, 98,101, 99,111,109,101,115, 32,
-110,117,108,108, 32, 97,110,100, 32,118,111,105,100, 32,116,111, 32,116,104,101, 32,101,120,116,101,110,116, 32, 97,112,112,108,
-105, 99, 97, 98,108,101, 32,116,111, 32, 70,111,110,116,115, 10,111,114, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101,
- 32,116,104, 97,116, 32,104, 97,115, 32, 98,101,101,110, 32,109,111,100,105,102,105,101,100, 32, 97,110,100, 32,105,115, 32,100,
-105,115,116,114,105, 98,117,116,101,100, 32,117,110,100,101,114, 32,116,104,101, 32, 10, 34, 84, 97,118,109,106,111,110,103, 32,
- 66, 97,104, 32, 65,114,101,118, 34, 32,110, 97,109,101,115, 46, 10, 10, 84,104,101, 32, 70,111,110,116, 32, 83,111,102,116,119,
- 97,114,101, 32,109, 97,121, 32, 98,101, 32,115,111,108,100, 32, 97,115, 32,112, 97,114,116, 32,111,102, 32, 97, 32,108, 97,114,
-103,101,114, 32,115,111,102,116,119, 97,114,101, 32,112, 97, 99,107, 97,103,101, 32, 98,117,116, 10,110,111, 32, 99,111,112,121,
- 32,111,102, 32,111,110,101, 32,111,114, 32,109,111,114,101, 32,111,102, 32,116,104,101, 32, 70,111,110,116, 32, 83,111,102,116,
-119, 97,114,101, 32,116,121,112,101,102, 97, 99,101,115, 32,109, 97,121, 32, 98,101, 32,115,111,108,100, 32, 98,121, 10,105,116,
-115,101,108,102, 46, 10, 10, 84, 72, 69, 32, 70, 79, 78, 84, 32, 83, 79, 70, 84, 87, 65, 82, 69, 32, 73, 83, 32, 80, 82, 79, 86,
- 73, 68, 69, 68, 32, 34, 65, 83, 32, 73, 83, 34, 44, 32, 87, 73, 84, 72, 79, 85, 84, 32, 87, 65, 82, 82, 65, 78, 84, 89, 32, 79,
- 70, 32, 65, 78, 89, 32, 75, 73, 78, 68, 44, 10, 69, 88, 80, 82, 69, 83, 83, 32, 79, 82, 32, 73, 77, 80, 76, 73, 69, 68, 44, 32,
- 73, 78, 67, 76, 85, 68, 73, 78, 71, 32, 66, 85, 84, 32, 78, 79, 84, 32, 76, 73, 77, 73, 84, 69, 68, 32, 84, 79, 32, 65, 78, 89,
- 32, 87, 65, 82, 82, 65, 78, 84, 73, 69, 83, 32, 79, 70, 10, 77, 69, 82, 67, 72, 65, 78, 84, 65, 66, 73, 76, 73, 84, 89, 44, 32,
- 70, 73, 84, 78, 69, 83, 83, 32, 70, 79, 82, 32, 65, 32, 80, 65, 82, 84, 73, 67, 85, 76, 65, 82, 32, 80, 85, 82, 80, 79, 83, 69,
- 32, 65, 78, 68, 32, 78, 79, 78, 73, 78, 70, 82, 73, 78, 71, 69, 77, 69, 78, 84, 10, 79, 70, 32, 67, 79, 80, 89, 82, 73, 71, 72,
- 84, 44, 32, 80, 65, 84, 69, 78, 84, 44, 32, 84, 82, 65, 68, 69, 77, 65, 82, 75, 44, 32, 79, 82, 32, 79, 84, 72, 69, 82, 32, 82,
- 73, 71, 72, 84, 46, 32, 73, 78, 32, 78, 79, 32, 69, 86, 69, 78, 84, 32, 83, 72, 65, 76, 76, 10, 84, 65, 86, 77, 74, 79, 78, 71,
- 32, 66, 65, 72, 32, 66, 69, 32, 76, 73, 65, 66, 76, 69, 32, 70, 79, 82, 32, 65, 78, 89, 32, 67, 76, 65, 73, 77, 44, 32, 68, 65,
- 77, 65, 71, 69, 83, 32, 79, 82, 32, 79, 84, 72, 69, 82, 32, 76, 73, 65, 66, 73, 76, 73, 84, 89, 44, 10, 73, 78, 67, 76, 85, 68,
- 73, 78, 71, 32, 65, 78, 89, 32, 71, 69, 78, 69, 82, 65, 76, 44, 32, 83, 80, 69, 67, 73, 65, 76, 44, 32, 73, 78, 68, 73, 82, 69,
- 67, 84, 44, 32, 73, 78, 67, 73, 68, 69, 78, 84, 65, 76, 44, 32, 79, 82, 32, 67, 79, 78, 83, 69, 81, 85, 69, 78, 84, 73, 65, 76,
- 10, 68, 65, 77, 65, 71, 69, 83, 44, 32, 87, 72, 69, 84, 72, 69, 82, 32, 73, 78, 32, 65, 78, 32, 65, 67, 84, 73, 79, 78, 32, 79,
- 70, 32, 67, 79, 78, 84, 82, 65, 67, 84, 44, 32, 84, 79, 82, 84, 32, 79, 82, 32, 79, 84, 72, 69, 82, 87, 73, 83, 69, 44, 32, 65,
- 82, 73, 83, 73, 78, 71, 10, 70, 82, 79, 77, 44, 32, 79, 85, 84, 32, 79, 70, 32, 84, 72, 69, 32, 85, 83, 69, 32, 79, 82, 32, 73,
- 78, 65, 66, 73, 76, 73, 84, 89, 32, 84, 79, 32, 85, 83, 69, 32, 84, 72, 69, 32, 70, 79, 78, 84, 32, 83, 79, 70, 84, 87, 65, 82,
- 69, 32, 79, 82, 32, 70, 82, 79, 77, 10, 79, 84, 72, 69, 82, 32, 68, 69, 65, 76, 73, 78, 71, 83, 32, 73, 78, 32, 84, 72, 69, 32,
- 70, 79, 78, 84, 32, 83, 79, 70, 84, 87, 65, 82, 69, 46, 10, 10, 69,120, 99,101,112,116, 32, 97,115, 32, 99,111,110,116, 97,105,
-110,101,100, 32,105,110, 32,116,104,105,115, 32,110,111,116,105, 99,101, 44, 32,116,104,101, 32,110, 97,109,101, 32,111,102, 32,
- 84, 97,118,109,106,111,110,103, 32, 66, 97,104, 32,115,104, 97,108,108, 32,110,111,116, 10, 98,101, 32,117,115,101,100, 32,105,
-110, 32, 97,100,118,101,114,116,105,115,105,110,103, 32,111,114, 32,111,116,104,101,114,119,105,115,101, 32,116,111, 32,112,114,
-111,109,111,116,101, 32,116,104,101, 32,115, 97,108,101, 44, 32,117,115,101, 32,111,114, 32,111,116,104,101,114, 10,100,101, 97,
-108,105,110,103,115, 32,105,110, 32,116,104,105,115, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101, 32,119,105,116,104,
-111,117,116, 32,112,114,105,111,114, 32,119,114,105,116,116,101,110, 32, 97,117,116,104,111,114,105,122, 97,116,105,111,110, 10,
-102,114,111,109, 32, 84, 97,118,109,106,111,110,103, 32, 66, 97,104, 46, 32, 70,111,114, 32,102,117,114,116,104,101,114, 32,105,
-110,102,111,114,109, 97,116,105,111,110, 44, 32, 99,111,110,116, 97, 99,116, 58, 32,116, 97,118,109,106,111,110,103, 32, 64, 32,
-102,114,101,101, 10, 46, 32,102,114, 46, 0, 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, 0,100, 0,101, 0,106, 0,
- 97, 0,118, 0,117, 0, 46, 0,115, 0,111, 0,117, 0,114, 0, 99, 0,101, 0,102, 0,111, 0,114, 0,103, 0,101, 0, 46, 0,
-110, 0,101, 0,116, 0, 47, 0,119, 0,105, 0,107, 0,105, 0, 47, 0,105, 0,110, 0,100, 0,101, 0,120, 0, 46, 0,112, 0,
-104, 0,112, 0, 47, 0, 76, 0,105, 0, 99, 0,101, 0,110, 0,115, 0,101, 0, 0,104,116,116,112, 58, 47, 47,100,101,106, 97,
-118,117, 46,115,111,117,114, 99,101,102,111,114,103,101, 46,110,101,116, 47,119,105,107,105, 47,105,110,100,101,120, 46,112,104,
-112, 47, 76,105, 99,101,110,115,101, 0, 65,108,108, 32, 84,121,112,111,103,114, 97,112,104,105, 99, 32, 70,101, 97,116,117,114,
-101,115, 0, 70,111,110, 99,116,105,111,110,115, 32,116,121,112,111,103,114, 97,112,104,105,113,117,101,115, 0, 65,108,108,101,
- 32,116,121,112,111,103,114, 97,102,105,115, 99,104,101,110, 32, 77,154,103,108,105, 99,104,107,101,105,116,101,110, 0, 70,117,
-110,122,105,111,110,105, 32, 84,105,112,111,103,114, 97,102,105, 99,104,101, 0, 65,108,108,101, 32,116,121,112,111,103,114, 97,
-102,105,115, 99,104,101, 32,107,101,110,109,101,114,107,101,110, 0, 76,105,103, 97,116,117,114,101,115, 0, 76,105,103, 97,116,
-117,114,101,115, 0, 76,105,103, 97,116,117,114,101,110, 0, 76,101,103, 97,116,117,114,101, 0, 76,105,103, 97,116,117,114,101,
-110, 0, 67,117,114,115,105,118,101, 32, 99,111,110,110,101, 99,116,105,111,110, 0, 67,111,110,110,101, 99,116,105,111,110, 32,
-100,101,115, 32, 67,117,114,115,105,118,101,115, 0, 67,117,114,115,105,101,118,101, 32,118,101,114, 98,105,110,100,105,110,103,
- 0, 70,114, 97, 99,116,105,111,110,115, 0, 70,114, 97, 99,116,105,111,110,115, 0, 66,114,101,117,107,101,110, 0, 65,108,108,
- 32, 84,121,112,101, 32, 70,101, 97,116,117,114,101,115, 0, 84,111,117,116,101,115, 32,102,111,110, 99,116,105,111,110,115, 32,
-116,121,112,111,103,114, 97,112,104,105,113,117,101,115, 0, 65,108,108,101, 32, 65,117,115,122,101,105, 99,104,110,117,110,103,
-115, 97,114,116,101,110, 0, 84,117,116,116,101, 32,108,101, 32, 70,117,110,122,105,111,110,105, 0, 65,108,108,101, 32,116,121,
-112,101,107,101,110,109,101,114,107,101,110, 0, 67,111,109,109,111,110, 32, 76,105,103, 97,116,117,114,101,115, 0, 76,105,103,
- 97,116,117,114,101,115, 32, 85,115,117,101,108,108,101,115, 0, 78,111,114,109, 97,108,101, 32, 76,105,103, 97,116,117,114,101,
-110, 0, 76,101,103, 97,116,117,114,101, 32,112,105,157, 32, 67,111,109,117,110,105, 0, 71,101,109,101,101,110,115, 99,104, 97,
-112,112,101,108,105,106,107,101, 32, 76,105,103, 97,116,117,114,101,110, 0, 82, 97,114,101, 32, 76,105,103, 97,116,117,114,101,
-115, 0, 76,105,103, 97,116,117,114,101,115, 32, 82, 97,114,101,115, 0, 83,101,108,116,101,110,101, 32, 76,105,103, 97,116,117,
-114,101,110, 0, 76,101,103, 97,116,117,114,101, 32, 82, 97,114,101, 0, 90,101,108,100,122, 97,109,101, 32,108,105,103, 97,116,
-117,114,101,110, 0, 67,117,114,115,105,118,101, 0, 80,108,101,105,110,101,109,101,110,116, 32, 99,111,110,110,101, 99,116,142,
-101,115, 0, 67,117,114,115,105,101,102, 0, 68,105, 97,103,111,110, 97,108, 32, 70,114, 97, 99,116,105,111,110,115, 0, 70,114,
- 97, 99,116,105,111,110,115, 32,101,110, 32, 68,105, 97,103,111,110, 97,108,101, 0, 68,105, 97,103,111,110, 97,108,101,114, 32,
- 66,114,117, 99,104, 0, 70,114, 97,122,105,111,110,105, 32, 68,105, 97,103,111,110, 97,108,105, 0, 68,105, 97,103,111,110, 97,
-108,101, 32, 98,114,101,117,107,101,110, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,255,171, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,163, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8,
- 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, 0, 22, 0, 23, 0, 24,
- 0, 25, 0, 26, 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 0, 32, 0, 33, 0, 34, 0, 35, 0, 36, 0, 37, 0, 38, 0, 39, 0, 40,
- 0, 41, 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, 0, 47, 0, 48, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 54, 0, 55, 0, 56,
- 0, 57, 0, 58, 0, 59, 0, 60, 0, 61, 0, 62, 0, 63, 0, 64, 0, 65, 0, 66, 0, 67, 0, 68, 0, 69, 0, 70, 0, 71, 0, 72,
- 0, 73, 0, 74, 0, 75, 0, 76, 0, 77, 0, 78, 0, 79, 0, 80, 0, 81, 0, 82, 0, 83, 0, 84, 0, 85, 0, 86, 0, 87, 0, 88,
- 0, 89, 0, 90, 0, 91, 0, 92, 0, 93, 0, 94, 0, 95, 0, 96, 0, 97, 0,172, 0,163, 0,132, 0,133, 0,189, 0,150, 0,232,
- 0,134, 0,142, 0,139, 0,157, 0,169, 0,164, 1, 2, 0,138, 0,218, 0,131, 0,147, 0,242, 0,243, 0,141, 0,151, 0,136,
- 0,195, 0,222, 0,241, 0,158, 0,170, 0,245, 0,244, 0,246, 0,162, 0,173, 0,201, 0,199, 0,174, 0, 98, 0, 99, 0,144,
- 0,100, 0,203, 0,101, 0,200, 0,202, 0,207, 0,204, 0,205, 0,206, 0,233, 0,102, 0,211, 0,208, 0,209, 0,175, 0,103,
- 0,240, 0,145, 0,214, 0,212, 0,213, 0,104, 0,235, 0,237, 0,137, 0,106, 0,105, 0,107, 0,109, 0,108, 0,110, 0,160,
- 0,111, 0,113, 0,112, 0,114, 0,115, 0,117, 0,116, 0,118, 0,119, 0,234, 0,120, 0,122, 0,121, 0,123, 0,125, 0,124,
- 0,184, 0,161, 0,127, 0,126, 0,128, 0,129, 0,236, 0,238, 0,186, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 0,253,
- 0,254, 1, 9, 1, 10, 1, 11, 1, 12, 0,255, 1, 0, 1, 13, 1, 14, 1, 15, 1, 1, 1, 16, 1, 17, 1, 18, 1, 19, 1, 20,
- 1, 21, 1, 22, 1, 23, 1, 24, 1, 25, 1, 26, 1, 27, 0,248, 0,249, 1, 28, 1, 29, 1, 30, 1, 31, 1, 32, 1, 33, 1, 34,
- 1, 35, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1, 41, 1, 42, 1, 43, 0,250, 0,215, 1, 44, 1, 45, 1, 46, 1, 47, 1, 48,
- 1, 49, 1, 50, 1, 51, 1, 52, 1, 53, 1, 54, 1, 55, 1, 56, 1, 57, 1, 58, 0,226, 0,227, 1, 59, 1, 60, 1, 61, 1, 62,
- 1, 63, 1, 64, 1, 65, 1, 66, 1, 67, 1, 68, 1, 69, 1, 70, 1, 71, 1, 72, 1, 73, 0,176, 0,177, 1, 74, 1, 75, 1, 76,
- 1, 77, 1, 78, 1, 79, 1, 80, 1, 81, 1, 82, 1, 83, 0,251, 0,252, 0,228, 0,229, 1, 84, 1, 85, 1, 86, 1, 87, 1, 88,
- 1, 89, 1, 90, 1, 91, 1, 92, 1, 93, 1, 94, 1, 95, 1, 96, 1, 97, 1, 98, 1, 99, 1,100, 1,101, 1,102, 1,103, 1,104,
- 1,105, 0,187, 1,106, 1,107, 1,108, 1,109, 0,230, 0,231, 1,110, 1,111, 1,112, 1,113, 1,114, 1,115, 1,116, 1,117,
- 1,118, 1,119, 1,120, 1,121, 1,122, 1,123, 1,124, 1,125, 1,126, 1,127, 1,128, 0,166, 1,129, 1,130, 1,131, 1,132,
- 1,133, 1,134, 1,135, 1,136, 1,137, 1,138, 1,139, 1,140, 1,141, 1,142, 1,143, 1,144, 1,145, 1,146, 1,147, 1,148,
- 1,149, 1,150, 1,151, 1,152, 1,153, 1,154, 1,155, 1,156, 1,157, 1,158, 1,159, 1,160, 1,161, 1,162, 1,163, 1,164,
- 1,165, 1,166, 1,167, 1,168, 1,169, 1,170, 1,171, 1,172, 1,173, 1,174, 1,175, 1,176, 1,177, 1,178, 1,179, 1,180,
- 1,181, 1,182, 1,183, 1,184, 1,185, 1,186, 1,187, 1,188, 1,189, 1,190, 1,191, 1,192, 1,193, 1,194, 1,195, 1,196,
- 1,197, 1,198, 1,199, 1,200, 1,201, 1,202, 1,203, 1,204, 1,205, 1,206, 1,207, 1,208, 1,209, 1,210, 1,211, 1,212,
- 1,213, 1,214, 1,215, 1,216, 1,217, 1,218, 1,219, 1,220, 1,221, 1,222, 1,223, 1,224, 1,225, 1,226, 1,227, 1,228,
- 1,229, 1,230, 1,231, 1,232, 1,233, 1,234, 1,235, 1,236, 1,237, 1,238, 1,239, 1,240, 1,241, 1,242, 1,243, 1,244,
- 1,245, 1,246, 1,247, 1,248, 1,249, 1,250, 1,251, 1,252, 1,253, 1,254, 1,255, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4,
- 2, 5, 2, 6, 2, 7, 2, 8, 2, 9, 2, 10, 2, 11, 2, 12, 2, 13, 2, 14, 2, 15, 2, 16, 2, 17, 2, 18, 2, 19, 2, 20,
- 2, 21, 2, 22, 2, 23, 2, 24, 2, 25, 2, 26, 2, 27, 2, 28, 2, 29, 2, 30, 2, 31, 2, 32, 2, 33, 2, 34, 2, 35, 2, 36,
- 2, 37, 2, 38, 2, 39, 2, 40, 2, 41, 2, 42, 2, 43, 2, 44, 2, 45, 2, 46, 2, 47, 2, 48, 2, 49, 2, 50, 2, 51, 2, 52,
- 2, 53, 2, 54, 2, 55, 2, 56, 2, 57, 2, 58, 2, 59, 2, 60, 2, 61, 2, 62, 2, 63, 2, 64, 2, 65, 2, 66, 2, 67, 2, 68,
- 2, 69, 2, 70, 2, 71, 2, 72, 2, 73, 2, 74, 0,216, 0,225, 2, 75, 2, 76, 2, 77, 2, 78, 2, 79, 2, 80, 2, 81, 2, 82,
- 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 0,219, 0,220, 0,221, 0,224, 0,217, 0,223, 2, 91, 2, 92,
- 2, 93, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98, 2, 99, 2,100, 2,101, 2,102, 2,103, 2,104, 2,105, 2,106, 2,107, 2,108,
- 2,109, 2,110, 2,111, 2,112, 2,113, 2,114, 2,115, 2,116, 2,117, 2,118, 2,119, 2,120, 2,121, 2,122, 2,123, 2,124,
- 2,125, 2,126, 2,127, 2,128, 2,129, 2,130, 2,131, 2,132, 2,133, 2,134, 2,135, 2,136, 2,137, 2,138, 2,139, 2,140,
- 2,141, 2,142, 2,143, 2,144, 2,145, 2,146, 2,147, 2,148, 2,149, 2,150, 2,151, 2,152, 2,153, 2,154, 2,155, 2,156,
- 2,157, 2,158, 2,159, 2,160, 2,161, 2,162, 2,163, 2,164, 2,165, 2,166, 2,167, 2,168, 2,169, 2,170, 2,171, 2,172,
- 2,173, 2,174, 2,175, 2,176, 2,177, 2,178, 2,179, 2,180, 2,181, 2,182, 2,183, 2,184, 2,185, 2,186, 2,187, 2,188,
- 2,189, 2,190, 2,191, 2,192, 2,193, 2,194, 2,195, 2,196, 2,197, 2,198, 2,199, 2,200, 2,201, 2,202, 2,203, 2,204,
- 2,205, 2,206, 2,207, 2,208, 2,209, 2,210, 2,211, 2,212, 2,213, 2,214, 2,215, 2,216, 2,217, 2,218, 2,219, 2,220,
- 2,221, 2,222, 2,223, 2,224, 2,225, 2,226, 2,227, 2,228, 2,229, 2,230, 2,231, 2,232, 2,233, 2,234, 0,159, 2,235,
- 2,236, 2,237, 2,238, 2,239, 2,240, 2,241, 2,242, 2,243, 2,244, 2,245, 2,246, 2,247, 2,248, 2,249, 2,250, 2,251,
- 2,252, 2,253, 2,254, 2,255, 3, 0, 0,155, 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7, 3, 8, 3, 9, 3, 10,
- 3, 11, 3, 12, 3, 13, 3, 14, 3, 15, 3, 16, 3, 17, 3, 18, 3, 19, 3, 20, 3, 21, 3, 22, 3, 23, 3, 24, 3, 25, 3, 26,
- 3, 27, 3, 28, 3, 29, 3, 30, 3, 31, 3, 32, 3, 33, 3, 34, 3, 35, 3, 36, 3, 37, 3, 38, 3, 39, 3, 40, 3, 41, 3, 42,
- 3, 43, 3, 44, 3, 45, 3, 46, 3, 47, 3, 48, 3, 49, 3, 50, 3, 51, 3, 52, 3, 53, 3, 54, 3, 55, 3, 56, 3, 57, 3, 58,
- 3, 59, 3, 60, 3, 61, 3, 62, 3, 63, 3, 64, 3, 65, 3, 66, 3, 67, 3, 68, 3, 69, 3, 70, 3, 71, 3, 72, 3, 73, 3, 74,
- 3, 75, 3, 76, 3, 77, 3, 78, 3, 79, 3, 80, 3, 81, 3, 82, 3, 83, 3, 84, 3, 85, 3, 86, 3, 87, 3, 88, 3, 89, 3, 90,
- 3, 91, 3, 92, 3, 93, 3, 94, 3, 95, 3, 96, 3, 97, 3, 98, 3, 99, 3,100, 3,101, 3,102, 3,103, 3,104, 3,105, 3,106,
- 3,107, 3,108, 3,109, 3,110, 3,111, 3,112, 3,113, 3,114, 3,115, 3,116, 3,117, 3,118, 3,119, 3,120, 3,121, 3,122,
- 3,123, 3,124, 3,125, 3,126, 3,127, 3,128, 3,129, 3,130, 3,131, 3,132, 3,133, 3,134, 3,135, 3,136, 3,137, 3,138,
- 3,139, 3,140, 3,141, 3,142, 3,143, 3,144, 3,145, 3,146, 3,147, 3,148, 3,149, 3,150, 3,151, 3,152, 3,153, 3,154,
- 3,155, 3,156, 3,157, 3,158, 3,159, 3,160, 3,161, 3,162, 3,163, 3,164, 3,165, 3,166, 3,167, 3,168, 3,169, 3,170,
- 3,171, 3,172, 3,173, 3,174, 3,175, 3,176, 3,177, 3,178, 3,179, 3,180, 3,181, 3,182, 3,183, 3,184, 3,185, 3,186,
- 3,187, 3,188, 3,189, 3,190, 3,191, 3,192, 3,193, 3,194, 3,195, 3,196, 3,197, 3,198, 3,199, 3,200, 3,201, 3,202,
- 3,203, 3,204, 3,205, 3,206, 3,207, 3,208, 3,209, 3,210, 3,211, 3,212, 3,213, 3,214, 3,215, 3,216, 3,217, 3,218,
- 3,219, 3,220, 3,221, 3,222, 3,223, 3,224, 3,225, 3,226, 3,227, 3,228, 3,229, 3,230, 3,231, 3,232, 3,233, 3,234,
- 3,235, 3,236, 3,237, 3,238, 3,239, 3,240, 3,241, 3,242, 3,243, 3,244, 3,245, 3,246, 3,247, 3,248, 3,249, 3,250,
- 3,251, 3,252, 3,253, 3,254, 3,255, 4, 0, 4, 1, 4, 2, 4, 3, 4, 4, 4, 5, 4, 6, 4, 7, 4, 8, 4, 9, 4, 10,
- 4, 11, 4, 12, 4, 13, 4, 14, 4, 15, 4, 16, 4, 17, 4, 18, 4, 19, 4, 20, 4, 21, 4, 22, 4, 23, 4, 24, 4, 25, 4, 26,
- 4, 27, 4, 28, 4, 29, 4, 30, 4, 31, 4, 32, 4, 33, 4, 34, 4, 35, 4, 36, 4, 37, 4, 38, 4, 39, 4, 40, 4, 41, 4, 42,
- 4, 43, 4, 44, 4, 45, 4, 46, 4, 47, 4, 48, 4, 49, 4, 50, 4, 51, 4, 52, 4, 53, 4, 54, 4, 55, 4, 56, 4, 57, 4, 58,
- 4, 59, 4, 60, 4, 61, 4, 62, 4, 63, 4, 64, 4, 65, 4, 66, 4, 67, 4, 68, 4, 69, 4, 70, 4, 71, 4, 72, 4, 73, 4, 74,
- 4, 75, 4, 76, 4, 77, 4, 78, 4, 79, 4, 80, 4, 81, 4, 82, 4, 83, 4, 84, 4, 85, 4, 86, 4, 87, 4, 88, 4, 89, 4, 90,
- 4, 91, 4, 92, 4, 93, 4, 94, 4, 95, 4, 96, 4, 97, 4, 98, 4, 99, 4,100, 4,101, 4,102, 4,103, 4,104, 4,105, 4,106,
- 4,107, 4,108, 4,109, 4,110, 4,111, 4,112, 4,113, 4,114, 4,115, 4,116, 4,117, 4,118, 4,119, 4,120, 4,121, 4,122,
- 4,123, 4,124, 4,125, 4,126, 4,127, 4,128, 4,129, 4,130, 4,131, 4,132, 4,133, 4,134, 4,135, 4,136, 4,137, 4,138,
- 4,139, 4,140, 4,141, 4,142, 4,143, 4,144, 4,145, 4,146, 4,147, 4,148, 4,149, 4,150, 4,151, 4,152, 4,153, 4,154,
- 4,155, 4,156, 4,157, 4,158, 4,159, 4,160, 4,161, 4,162, 4,163, 4,164, 4,165, 4,166, 4,167, 4,168, 4,169, 4,170,
- 4,171, 4,172, 4,173, 4,174, 4,175, 4,176, 4,177, 4,178, 4,179, 4,180, 4,181, 4,182, 4,183, 4,184, 4,185, 4,186,
- 4,187, 4,188, 4,189, 4,190, 4,191, 4,192, 4,193, 4,194, 4,195, 4,196, 4,197, 4,198, 4,199, 4,200, 4,201, 4,202,
- 4,203, 4,204, 4,205, 4,206, 4,207, 4,208, 4,209, 4,210, 4,211, 4,212, 4,213, 4,214, 4,215, 4,216, 4,217, 4,218,
- 4,219, 4,220, 4,221, 4,222, 4,223, 4,224, 4,225, 4,226, 4,227, 4,228, 4,229, 4,230, 4,231, 4,232, 4,233, 4,234,
- 4,235, 4,236, 4,237, 4,238, 4,239, 4,240, 4,241, 4,242, 4,243, 4,244, 4,245, 4,246, 4,247, 4,248, 4,249, 4,250,
- 4,251, 4,252, 4,253, 4,254, 4,255, 5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6, 5, 7, 5, 8, 5, 9, 5, 10,
- 5, 11, 5, 12, 5, 13, 5, 14, 5, 15, 5, 16, 5, 17, 5, 18, 5, 19, 5, 20, 5, 21, 5, 22, 5, 23, 5, 24, 5, 25, 5, 26,
- 5, 27, 5, 28, 5, 29, 5, 30, 5, 31, 5, 32, 5, 33, 5, 34, 5, 35, 5, 36, 5, 37, 5, 38, 5, 39, 5, 40, 5, 41, 5, 42,
- 5, 43, 5, 44, 5, 45, 5, 46, 5, 47, 5, 48, 5, 49, 5, 50, 5, 51, 5, 52, 5, 53, 5, 54, 5, 55, 5, 56, 5, 57, 5, 58,
- 5, 59, 5, 60, 5, 61, 5, 62, 5, 63, 5, 64, 5, 65, 5, 66, 5, 67, 5, 68, 5, 69, 5, 70, 5, 71, 5, 72, 5, 73, 5, 74,
- 5, 75, 5, 76, 5, 77, 5, 78, 5, 79, 5, 80, 5, 81, 5, 82, 5, 83, 5, 84, 5, 85, 5, 86, 5, 87, 5, 88, 5, 89, 5, 90,
- 5, 91, 5, 92, 5, 93, 5, 94, 5, 95, 5, 96, 5, 97, 5, 98, 5, 99, 5,100, 5,101, 5,102, 5,103, 5,104, 5,105, 5,106,
- 5,107, 5,108, 5,109, 5,110, 5,111, 5,112, 5,113, 5,114, 5,115, 5,116, 5,117, 5,118, 5,119, 5,120, 5,121, 5,122,
- 5,123, 5,124, 5,125, 5,126, 5,127, 5,128, 5,129, 5,130, 5,131, 5,132, 5,133, 5,134, 5,135, 5,136, 5,137, 5,138,
- 5,139, 5,140, 5,141, 5,142, 5,143, 5,144, 5,145, 5,146, 5,147, 5,148, 5,149, 5,150, 5,151, 5,152, 5,153, 5,154,
- 5,155, 5,156, 5,157, 5,158, 5,159, 5,160, 5,161, 5,162, 5,163, 5,164, 5,165, 5,166, 5,167, 5,168, 5,169, 0,178,
- 0,179, 5,170, 5,171, 5,172, 0,182, 0,183, 0,196, 5,173, 0,180, 0,181, 0,197, 5,174, 0,130, 0,194, 0,135, 5,175,
- 5,176, 5,177, 0,171, 5,178, 0,198, 5,179, 5,180, 5,181, 5,182, 5,183, 5,184, 5,185, 5,186, 0,190, 0,191, 5,187,
- 5,188, 5,189, 5,190, 5,191, 5,192, 5,193, 5,194, 5,195, 0,188, 5,196, 5,197, 5,198, 5,199, 5,200, 5,201, 5,202,
- 5,203, 5,204, 5,205, 5,206, 5,207, 5,208, 5,209, 5,210, 5,211, 5,212, 5,213, 5,214, 5,215, 5,216, 5,217, 5,218,
- 5,219, 5,220, 5,221, 5,222, 5,223, 5,224, 5,225, 5,226, 5,227, 5,228, 5,229, 5,230, 5,231, 5,232, 5,233, 5,234,
- 5,235, 5,236, 5,237, 5,238, 5,239, 5,240, 5,241, 5,242, 5,243, 5,244, 5,245, 5,246, 5,247, 5,248, 5,249, 5,250,
- 5,251, 5,252, 5,253, 0,247, 5,254, 5,255, 6, 0, 6, 1, 6, 2, 6, 3, 6, 4, 6, 5, 6, 6, 6, 7, 6, 8, 6, 9,
- 6, 10, 6, 11, 6, 12, 6, 13, 6, 14, 6, 15, 6, 16, 6, 17, 6, 18, 6, 19, 6, 20, 6, 21, 6, 22, 6, 23, 6, 24, 6, 25,
- 6, 26, 6, 27, 6, 28, 6, 29, 6, 30, 6, 31, 6, 32, 0,140, 6, 33, 6, 34, 6, 35, 6, 36, 6, 37, 6, 38, 6, 39, 6, 40,
- 6, 41, 6, 42, 6, 43, 6, 44, 6, 45, 6, 46, 6, 47, 6, 48, 6, 49, 6, 50, 6, 51, 6, 52, 6, 53, 6, 54, 6, 55, 6, 56,
- 6, 57, 6, 58, 6, 59, 6, 60, 6, 61, 6, 62, 6, 63, 6, 64, 6, 65, 6, 66, 6, 67, 6, 68, 6, 69, 6, 70, 6, 71, 6, 72,
- 6, 73, 6, 74, 6, 75, 6, 76, 6, 77, 6, 78, 6, 79, 6, 80, 6, 81, 6, 82, 6, 83, 6, 84, 6, 85, 6, 86, 6, 87, 6, 88,
- 6, 89, 6, 90, 6, 91, 6, 92, 6, 93, 6, 94, 6, 95, 6, 96, 6, 97, 6, 98, 6, 99, 6,100, 6,101, 6,102, 0,239, 6,103,
- 6,104, 0,188, 6,105, 6,106, 6,107, 0,195, 0,165, 6,108, 6,109, 6,110, 0,146, 6,111, 6,112, 6,113, 6,114, 6,115,
- 6,116, 6,117, 6,118, 6,119, 6,120, 6,121, 6,122, 6,123, 6,124, 6,125, 6,126, 6,127, 6,128, 6,129, 0,192, 0,193,
- 6,130, 6,131, 6,132, 6,133, 6,134, 6,135, 6,136, 6,137, 6,138, 6,139, 6,140, 6,141, 6,142, 6,143, 6,144, 6,145,
- 6,146, 6,147, 6,148, 6,149, 6,150, 6,151, 6,152, 6,153, 6,154, 6,155, 6,156, 6,157, 6,158, 6,159, 6,160, 6,161,
- 6,162, 6,163, 6,164, 6,165, 6,166, 6,167, 6,168, 6,169, 6,170, 6,171, 9,115,102,116,104,121,112,104,101,110, 7, 65,
-109, 97, 99,114,111,110, 7, 97,109, 97, 99,114,111,110, 6, 65, 98,114,101,118,101, 6, 97, 98,114,101,118,101, 7, 65,111,103,
-111,110,101,107, 7, 97,111,103,111,110,101,107, 11, 67, 99,105,114, 99,117,109,102,108,101,120, 11, 99, 99,105,114, 99,117,109,
-102,108,101,120, 10, 67,100,111,116, 97, 99, 99,101,110,116, 10, 99,100,111,116, 97, 99, 99,101,110,116, 6, 68, 99, 97,114,111,
-110, 6,100, 99, 97,114,111,110, 6, 68, 99,114,111, 97,116, 7, 69,109, 97, 99,114,111,110, 7,101,109, 97, 99,114,111,110, 6,
- 69, 98,114,101,118,101, 6,101, 98,114,101,118,101, 10, 69,100,111,116, 97, 99, 99,101,110,116, 10,101,100,111,116, 97, 99, 99,
-101,110,116, 7, 69,111,103,111,110,101,107, 7,101,111,103,111,110,101,107, 6, 69, 99, 97,114,111,110, 6,101, 99, 97,114,111,
-110, 11, 71, 99,105,114, 99,117,109,102,108,101,120, 11,103, 99,105,114, 99,117,109,102,108,101,120, 10, 71,100,111,116, 97, 99,
- 99,101,110,116, 10,103,100,111,116, 97, 99, 99,101,110,116, 12, 71, 99,111,109,109, 97, 97, 99, 99,101,110,116, 12,103, 99,111,
-109,109, 97, 97, 99, 99,101,110,116, 11, 72, 99,105,114, 99,117,109,102,108,101,120, 11,104, 99,105,114, 99,117,109,102,108,101,
-120, 4, 72, 98, 97,114, 4,104, 98, 97,114, 6, 73,116,105,108,100,101, 6,105,116,105,108,100,101, 7, 73,109, 97, 99,114,111,
-110, 7,105,109, 97, 99,114,111,110, 6, 73, 98,114,101,118,101, 6,105, 98,114,101,118,101, 7, 73,111,103,111,110,101,107, 7,
-105,111,103,111,110,101,107, 2, 73, 74, 2,105,106, 11, 74, 99,105,114, 99,117,109,102,108,101,120, 11,106, 99,105,114, 99,117,
-109,102,108,101,120, 12, 75, 99,111,109,109, 97, 97, 99, 99,101,110,116, 12,107, 99,111,109,109, 97, 97, 99, 99,101,110,116, 12,
-107,103,114,101,101,110,108, 97,110,100,105, 99, 6, 76, 97, 99,117,116,101, 6,108, 97, 99,117,116,101, 12, 76, 99,111,109,109,
- 97, 97, 99, 99,101,110,116, 12,108, 99,111,109,109, 97, 97, 99, 99,101,110,116, 6, 76, 99, 97,114,111,110, 6,108, 99, 97,114,
-111,110, 4, 76,100,111,116, 4,108,100,111,116, 6, 78, 97, 99,117,116,101, 6,110, 97, 99,117,116,101, 12, 78, 99,111,109,109,
- 97, 97, 99, 99,101,110,116, 12,110, 99,111,109,109, 97, 97, 99, 99,101,110,116, 6, 78, 99, 97,114,111,110, 6,110, 99, 97,114,
-111,110, 11,110, 97,112,111,115,116,114,111,112,104,101, 3, 69,110,103, 3,101,110,103, 7, 79,109, 97, 99,114,111,110, 7,111,
-109, 97, 99,114,111,110, 6, 79, 98,114,101,118,101, 6,111, 98,114,101,118,101, 13, 79,104,117,110,103, 97,114,117,109,108, 97,
-117,116, 13,111,104,117,110,103, 97,114,117,109,108, 97,117,116, 6, 82, 97, 99,117,116,101, 6,114, 97, 99,117,116,101, 12, 82,
- 99,111,109,109, 97, 97, 99, 99,101,110,116, 12,114, 99,111,109,109, 97, 97, 99, 99,101,110,116, 6, 82, 99, 97,114,111,110, 6,
-114, 99, 97,114,111,110, 6, 83, 97, 99,117,116,101, 6,115, 97, 99,117,116,101, 11, 83, 99,105,114, 99,117,109,102,108,101,120,
- 11,115, 99,105,114, 99,117,109,102,108,101,120, 12, 84, 99,111,109,109, 97, 97, 99, 99,101,110,116, 12,116, 99,111,109,109, 97,
- 97, 99, 99,101,110,116, 6, 84, 99, 97,114,111,110, 6,116, 99, 97,114,111,110, 4, 84, 98, 97,114, 4,116, 98, 97,114, 6, 85,
-116,105,108,100,101, 6,117,116,105,108,100,101, 7, 85,109, 97, 99,114,111,110, 7,117,109, 97, 99,114,111,110, 6, 85, 98,114,
-101,118,101, 6,117, 98,114,101,118,101, 5, 85,114,105,110,103, 5,117,114,105,110,103, 13, 85,104,117,110,103, 97,114,117,109,
-108, 97,117,116, 13,117,104,117,110,103, 97,114,117,109,108, 97,117,116, 7, 85,111,103,111,110,101,107, 7,117,111,103,111,110,
-101,107, 11, 87, 99,105,114, 99,117,109,102,108,101,120, 11,119, 99,105,114, 99,117,109,102,108,101,120, 11, 89, 99,105,114, 99,
-117,109,102,108,101,120, 11,121, 99,105,114, 99,117,109,102,108,101,120, 6, 90, 97, 99,117,116,101, 6,122, 97, 99,117,116,101,
- 10, 90,100,111,116, 97, 99, 99,101,110,116, 10,122,100,111,116, 97, 99, 99,101,110,116, 5,108,111,110,103,115, 7,117,110,105,
- 48, 49, 56, 48, 7,117,110,105, 48, 49, 56, 49, 7,117,110,105, 48, 49, 56, 50, 7,117,110,105, 48, 49, 56, 51, 7,117,110,105,
- 48, 49, 56, 52, 7,117,110,105, 48, 49, 56, 53, 7,117,110,105, 48, 49, 56, 54, 7,117,110,105, 48, 49, 56, 55, 7,117,110,105,
- 48, 49, 56, 56, 7,117,110,105, 48, 49, 56, 57, 7,117,110,105, 48, 49, 56, 65, 7,117,110,105, 48, 49, 56, 66, 7,117,110,105,
- 48, 49, 56, 67, 7,117,110,105, 48, 49, 56, 68, 7,117,110,105, 48, 49, 56, 69, 7,117,110,105, 48, 49, 56, 70, 7,117,110,105,
- 48, 49, 57, 48, 7,117,110,105, 48, 49, 57, 49, 7,117,110,105, 48, 49, 57, 51, 7,117,110,105, 48, 49, 57, 52, 7,117,110,105,
- 48, 49, 57, 53, 7,117,110,105, 48, 49, 57, 54, 7,117,110,105, 48, 49, 57, 55, 7,117,110,105, 48, 49, 57, 56, 7,117,110,105,
- 48, 49, 57, 57, 7,117,110,105, 48, 49, 57, 65, 7,117,110,105, 48, 49, 57, 66, 7,117,110,105, 48, 49, 57, 67, 7,117,110,105,
- 48, 49, 57, 68, 7,117,110,105, 48, 49, 57, 69, 7,117,110,105, 48, 49, 57, 70, 5, 79,104,111,114,110, 5,111,104,111,114,110,
- 7,117,110,105, 48, 49, 65, 50, 7,117,110,105, 48, 49, 65, 51, 7,117,110,105, 48, 49, 65, 52, 7,117,110,105, 48, 49, 65, 53,
- 7,117,110,105, 48, 49, 65, 54, 7,117,110,105, 48, 49, 65, 55, 7,117,110,105, 48, 49, 65, 56, 7,117,110,105, 48, 49, 65, 57,
- 7,117,110,105, 48, 49, 65, 65, 7,117,110,105, 48, 49, 65, 66, 7,117,110,105, 48, 49, 65, 67, 7,117,110,105, 48, 49, 65, 68,
- 7,117,110,105, 48, 49, 65, 69, 5, 85,104,111,114,110, 5,117,104,111,114,110, 7,117,110,105, 48, 49, 66, 49, 7,117,110,105,
- 48, 49, 66, 50, 7,117,110,105, 48, 49, 66, 51, 7,117,110,105, 48, 49, 66, 52, 7,117,110,105, 48, 49, 66, 53, 7,117,110,105,
- 48, 49, 66, 54, 7,117,110,105, 48, 49, 66, 55, 7,117,110,105, 48, 49, 66, 56, 7,117,110,105, 48, 49, 66, 57, 7,117,110,105,
- 48, 49, 66, 65, 7,117,110,105, 48, 49, 66, 66, 7,117,110,105, 48, 49, 66, 67, 7,117,110,105, 48, 49, 66, 68, 7,117,110,105,
- 48, 49, 66, 69, 7,117,110,105, 48, 49, 66, 70, 7,117,110,105, 48, 49, 67, 48, 7,117,110,105, 48, 49, 67, 49, 7,117,110,105,
- 48, 49, 67, 50, 7,117,110,105, 48, 49, 67, 51, 7,117,110,105, 48, 49, 67, 52, 7,117,110,105, 48, 49, 67, 53, 7,117,110,105,
- 48, 49, 67, 54, 7,117,110,105, 48, 49, 67, 55, 7,117,110,105, 48, 49, 67, 56, 7,117,110,105, 48, 49, 67, 57, 7,117,110,105,
- 48, 49, 67, 65, 7,117,110,105, 48, 49, 67, 66, 7,117,110,105, 48, 49, 67, 67, 7,117,110,105, 48, 49, 67, 68, 7,117,110,105,
- 48, 49, 67, 69, 7,117,110,105, 48, 49, 67, 70, 7,117,110,105, 48, 49, 68, 48, 7,117,110,105, 48, 49, 68, 49, 7,117,110,105,
- 48, 49, 68, 50, 7,117,110,105, 48, 49, 68, 51, 7,117,110,105, 48, 49, 68, 52, 7,117,110,105, 48, 49, 68, 53, 7,117,110,105,
- 48, 49, 68, 54, 7,117,110,105, 48, 49, 68, 55, 7,117,110,105, 48, 49, 68, 56, 7,117,110,105, 48, 49, 68, 57, 7,117,110,105,
- 48, 49, 68, 65, 7,117,110,105, 48, 49, 68, 66, 7,117,110,105, 48, 49, 68, 67, 7,117,110,105, 48, 49, 68, 68, 7,117,110,105,
- 48, 49, 68, 69, 7,117,110,105, 48, 49, 68, 70, 7,117,110,105, 48, 49, 69, 48, 7,117,110,105, 48, 49, 69, 49, 7,117,110,105,
- 48, 49, 69, 50, 7,117,110,105, 48, 49, 69, 51, 7,117,110,105, 48, 49, 69, 52, 7,117,110,105, 48, 49, 69, 53, 6, 71, 99, 97,
-114,111,110, 6,103, 99, 97,114,111,110, 7,117,110,105, 48, 49, 69, 56, 7,117,110,105, 48, 49, 69, 57, 7,117,110,105, 48, 49,
- 69, 65, 7,117,110,105, 48, 49, 69, 66, 7,117,110,105, 48, 49, 69, 67, 7,117,110,105, 48, 49, 69, 68, 7,117,110,105, 48, 49,
- 69, 69, 7,117,110,105, 48, 49, 69, 70, 7,117,110,105, 48, 49, 70, 48, 7,117,110,105, 48, 49, 70, 49, 7,117,110,105, 48, 49,
- 70, 50, 7,117,110,105, 48, 49, 70, 51, 7,117,110,105, 48, 49, 70, 52, 7,117,110,105, 48, 49, 70, 53, 7,117,110,105, 48, 49,
- 70, 54, 7,117,110,105, 48, 49, 70, 55, 7,117,110,105, 48, 49, 70, 56, 7,117,110,105, 48, 49, 70, 57, 10, 65,114,105,110,103,
- 97, 99,117,116,101, 10, 97,114,105,110,103, 97, 99,117,116,101, 7, 65, 69, 97, 99,117,116,101, 7, 97,101, 97, 99,117,116,101,
- 11, 79,115,108, 97,115,104, 97, 99,117,116,101, 11,111,115,108, 97,115,104, 97, 99,117,116,101, 7,117,110,105, 48, 50, 48, 48,
- 7,117,110,105, 48, 50, 48, 49, 7,117,110,105, 48, 50, 48, 50, 7,117,110,105, 48, 50, 48, 51, 7,117,110,105, 48, 50, 48, 52,
- 7,117,110,105, 48, 50, 48, 53, 7,117,110,105, 48, 50, 48, 54, 7,117,110,105, 48, 50, 48, 55, 7,117,110,105, 48, 50, 48, 56,
- 7,117,110,105, 48, 50, 48, 57, 7,117,110,105, 48, 50, 48, 65, 7,117,110,105, 48, 50, 48, 66, 7,117,110,105, 48, 50, 48, 67,
- 7,117,110,105, 48, 50, 48, 68, 7,117,110,105, 48, 50, 48, 69, 7,117,110,105, 48, 50, 48, 70, 7,117,110,105, 48, 50, 49, 48,
- 7,117,110,105, 48, 50, 49, 49, 7,117,110,105, 48, 50, 49, 50, 7,117,110,105, 48, 50, 49, 51, 7,117,110,105, 48, 50, 49, 52,
- 7,117,110,105, 48, 50, 49, 53, 7,117,110,105, 48, 50, 49, 54, 7,117,110,105, 48, 50, 49, 55, 12, 83, 99,111,109,109, 97, 97,
- 99, 99,101,110,116, 12,115, 99,111,109,109, 97, 97, 99, 99,101,110,116, 7,117,110,105, 48, 50, 49, 65, 7,117,110,105, 48, 50,
- 49, 66, 7,117,110,105, 48, 50, 49, 67, 7,117,110,105, 48, 50, 49, 68, 7,117,110,105, 48, 50, 49, 69, 7,117,110,105, 48, 50,
- 49, 70, 7,117,110,105, 48, 50, 50, 48, 7,117,110,105, 48, 50, 50, 49, 7,117,110,105, 48, 50, 50, 50, 7,117,110,105, 48, 50,
- 50, 51, 7,117,110,105, 48, 50, 50, 52, 7,117,110,105, 48, 50, 50, 53, 7,117,110,105, 48, 50, 50, 54, 7,117,110,105, 48, 50,
- 50, 55, 7,117,110,105, 48, 50, 50, 56, 7,117,110,105, 48, 50, 50, 57, 7,117,110,105, 48, 50, 50, 65, 7,117,110,105, 48, 50,
- 50, 66, 7,117,110,105, 48, 50, 50, 67, 7,117,110,105, 48, 50, 50, 68, 7,117,110,105, 48, 50, 50, 69, 7,117,110,105, 48, 50,
- 50, 70, 7,117,110,105, 48, 50, 51, 48, 7,117,110,105, 48, 50, 51, 49, 7,117,110,105, 48, 50, 51, 50, 7,117,110,105, 48, 50,
- 51, 51, 7,117,110,105, 48, 50, 51, 52, 7,117,110,105, 48, 50, 51, 53, 7,117,110,105, 48, 50, 51, 54, 8,100,111,116,108,101,
-115,115,106, 7,117,110,105, 48, 50, 51, 56, 7,117,110,105, 48, 50, 51, 57, 7,117,110,105, 48, 50, 51, 65, 7,117,110,105, 48,
- 50, 51, 66, 7,117,110,105, 48, 50, 51, 67, 7,117,110,105, 48, 50, 51, 68, 7,117,110,105, 48, 50, 51, 69, 7,117,110,105, 48,
- 50, 51, 70, 7,117,110,105, 48, 50, 52, 48, 7,117,110,105, 48, 50, 52, 49, 7,117,110,105, 48, 50, 53, 57, 7,117,110,105, 48,
- 50, 54, 50, 7,117,110,105, 48, 50, 55, 48, 7,117,110,105, 48, 50, 55, 53, 7,117,110,105, 48, 50, 57, 50, 7,117,110,105, 48,
- 50, 66, 48, 7,117,110,105, 48, 50, 66, 49, 7,117,110,105, 48, 50, 66, 50, 7,117,110,105, 48, 50, 66, 51, 7,117,110,105, 48,
- 50, 66, 52, 7,117,110,105, 48, 50, 66, 53, 7,117,110,105, 48, 50, 66, 54, 7,117,110,105, 48, 50, 66, 55, 7,117,110,105, 48,
- 50, 66, 56, 7,117,110,105, 48, 50, 66, 57, 7,117,110,105, 48, 50, 66, 65, 7,117,110,105, 48, 50, 66, 66, 9, 97,102,105,105,
- 53, 55, 57, 50, 57, 9, 97,102,105,105, 54, 52, 57, 51, 55, 7,117,110,105, 48, 50, 66, 69, 7,117,110,105, 48, 50, 66, 70, 7,
-117,110,105, 48, 50, 67, 48, 7,117,110,105, 48, 50, 67, 49, 7,117,110,105, 48, 50, 67, 50, 7,117,110,105, 48, 50, 67, 51, 7,
-117,110,105, 48, 50, 67, 52, 7,117,110,105, 48, 50, 67, 53, 7,117,110,105, 48, 50, 67, 56, 7,117,110,105, 48, 50, 67, 57, 7,
-117,110,105, 48, 50, 67, 65, 7,117,110,105, 48, 50, 67, 66, 7,117,110,105, 48, 50, 67, 67, 7,117,110,105, 48, 50, 67, 68, 7,
-117,110,105, 48, 50, 67, 69, 7,117,110,105, 48, 50, 67, 70, 7,117,110,105, 48, 50, 68, 48, 7,117,110,105, 48, 50, 68, 49, 7,
-117,110,105, 48, 50, 68, 50, 7,117,110,105, 48, 50, 68, 51, 7,117,110,105, 48, 50, 68, 52, 7,117,110,105, 48, 50, 68, 53, 7,
-117,110,105, 48, 50, 68, 54, 7,117,110,105, 48, 50, 68, 55, 7,117,110,105, 48, 50, 68, 69, 7,117,110,105, 48, 50, 68, 70, 7,
-117,110,105, 48, 50, 69, 48, 7,117,110,105, 48, 50, 69, 49, 7,117,110,105, 48, 50, 69, 50, 7,117,110,105, 48, 50, 69, 51, 7,
-117,110,105, 48, 50, 69, 52, 7,117,110,105, 48, 50, 69, 53, 7,117,110,105, 48, 50, 69, 54, 7,117,110,105, 48, 50, 69, 55, 7,
-117,110,105, 48, 50, 69, 56, 7,117,110,105, 48, 50, 69, 57, 7,117,110,105, 48, 50, 69, 67, 7,117,110,105, 48, 50, 69, 68, 7,
-117,110,105, 48, 50, 69, 69, 7,117,110,105, 48, 50, 70, 51, 7,117,110,105, 48, 50, 70, 55, 9,103,114, 97,118,101, 99,111,109,
- 98, 9, 97, 99,117,116,101, 99,111,109, 98, 7,117,110,105, 48, 51, 48, 50, 9,116,105,108,100,101, 99,111,109, 98, 7,117,110,
-105, 48, 51, 48, 52, 7,117,110,105, 48, 51, 48, 53, 7,117,110,105, 48, 51, 48, 54, 7,117,110,105, 48, 51, 48, 55, 7,117,110,
-105, 48, 51, 48, 56, 13,104,111,111,107, 97, 98,111,118,101, 99,111,109, 98, 7,117,110,105, 48, 51, 48, 65, 7,117,110,105, 48,
- 51, 48, 66, 7,117,110,105, 48, 51, 48, 67, 7,117,110,105, 48, 51, 48, 68, 7,117,110,105, 48, 51, 48, 69, 7,117,110,105, 48,
- 51, 48, 70, 7,117,110,105, 48, 51, 49, 48, 7,117,110,105, 48, 51, 49, 49, 7,117,110,105, 48, 51, 49, 50, 7,117,110,105, 48,
- 51, 49, 51, 7,117,110,105, 48, 51, 49, 52, 7,117,110,105, 48, 51, 49, 53, 7,117,110,105, 48, 51, 49, 54, 7,117,110,105, 48,
- 51, 49, 55, 7,117,110,105, 48, 51, 49, 56, 7,117,110,105, 48, 51, 49, 57, 7,117,110,105, 48, 51, 49, 65, 7,117,110,105, 48,
- 51, 49, 66, 7,117,110,105, 48, 51, 49, 67, 7,117,110,105, 48, 51, 49, 68, 7,117,110,105, 48, 51, 49, 69, 7,117,110,105, 48,
- 51, 49, 70, 7,117,110,105, 48, 51, 50, 48, 7,117,110,105, 48, 51, 50, 49, 7,117,110,105, 48, 51, 50, 50, 12,100,111,116, 98,
-101,108,111,119, 99,111,109, 98, 7,117,110,105, 48, 51, 50, 52, 7,117,110,105, 48, 51, 50, 53, 7,117,110,105, 48, 51, 50, 54,
- 7,117,110,105, 48, 51, 50, 55, 7,117,110,105, 48, 51, 50, 56, 7,117,110,105, 48, 51, 50, 57, 7,117,110,105, 48, 51, 50, 65,
- 7,117,110,105, 48, 51, 50, 66, 7,117,110,105, 48, 51, 50, 67, 7,117,110,105, 48, 51, 50, 68, 7,117,110,105, 48, 51, 50, 69,
- 7,117,110,105, 48, 51, 50, 70, 7,117,110,105, 48, 51, 51, 48, 7,117,110,105, 48, 51, 51, 49, 7,117,110,105, 48, 51, 51, 50,
- 7,117,110,105, 48, 51, 51, 51, 7,117,110,105, 48, 51, 51, 52, 7,117,110,105, 48, 51, 51, 53, 7,117,110,105, 48, 51, 51, 54,
- 7,117,110,105, 48, 51, 51, 55, 7,117,110,105, 48, 51, 51, 56, 7,117,110,105, 48, 51, 51, 57, 7,117,110,105, 48, 51, 51, 65,
- 7,117,110,105, 48, 51, 51, 66, 7,117,110,105, 48, 51, 51, 67, 7,117,110,105, 48, 51, 51, 68, 7,117,110,105, 48, 51, 51, 69,
- 7,117,110,105, 48, 51, 51, 70, 7,117,110,105, 48, 51, 52, 48, 7,117,110,105, 48, 51, 52, 49, 7,117,110,105, 48, 51, 52, 50,
- 7,117,110,105, 48, 51, 52, 51, 7,117,110,105, 48, 51, 52, 52, 7,117,110,105, 48, 51, 52, 53, 7,117,110,105, 48, 51, 52, 54,
- 7,117,110,105, 48, 51, 52, 55, 7,117,110,105, 48, 51, 52, 56, 7,117,110,105, 48, 51, 52, 57, 7,117,110,105, 48, 51, 52, 65,
- 7,117,110,105, 48, 51, 52, 66, 7,117,110,105, 48, 51, 52, 67, 7,117,110,105, 48, 51, 52, 68, 7,117,110,105, 48, 51, 52, 69,
- 7,117,110,105, 48, 51, 53, 49, 7,117,110,105, 48, 51, 53, 50, 7,117,110,105, 48, 51, 53, 51, 7,117,110,105, 48, 51, 53, 55,
- 7,117,110,105, 48, 51, 53, 56, 7,117,110,105, 48, 51, 53, 67, 7,117,110,105, 48, 51, 53, 68, 7,117,110,105, 48, 51, 54, 48,
- 7,117,110,105, 48, 51, 54, 49, 7,117,110,105, 48, 51, 54, 50, 7,117,110,105, 48, 51, 55, 52, 7,117,110,105, 48, 51, 55, 53,
- 7,117,110,105, 48, 51, 55, 65, 7,117,110,105, 48, 51, 55, 69, 5,116,111,110,111,115, 13,100,105,101,114,101,115,105,115,116,
-111,110,111,115, 10, 65,108,112,104, 97,116,111,110,111,115, 9, 97,110,111,116,101,108,101,105, 97, 12, 69,112,115,105,108,111,
-110,116,111,110,111,115, 8, 69,116, 97,116,111,110,111,115, 9, 73,111,116, 97,116,111,110,111,115, 12, 79,109,105, 99,114,111,
-110,116,111,110,111,115, 12, 85,112,115,105,108,111,110,116,111,110,111,115, 10, 79,109,101,103, 97,116,111,110,111,115, 17,105,
-111,116, 97,100,105,101,114,101,115,105,115,116,111,110,111,115, 5, 65,108,112,104, 97, 4, 66,101,116, 97, 5, 71, 97,109,109,
- 97, 7,117,110,105, 48, 51, 57, 52, 7, 69,112,115,105,108,111,110, 4, 90,101,116, 97, 3, 69,116, 97, 5, 84,104,101,116, 97,
- 4, 73,111,116, 97, 5, 75, 97,112,112, 97, 6, 76, 97,109, 98,100, 97, 2, 77,117, 2, 78,117, 2, 88,105, 7, 79,109,105, 99,
-114,111,110, 2, 80,105, 3, 82,104,111, 5, 83,105,103,109, 97, 3, 84, 97,117, 7, 85,112,115,105,108,111,110, 3, 80,104,105,
- 3, 67,104,105, 3, 80,115,105, 12, 73,111,116, 97,100,105,101,114,101,115,105,115, 15, 85,112,115,105,108,111,110,100,105,101,
-114,101,115,105,115, 10, 97,108,112,104, 97,116,111,110,111,115, 12,101,112,115,105,108,111,110,116,111,110,111,115, 8,101,116,
- 97,116,111,110,111,115, 9,105,111,116, 97,116,111,110,111,115, 20,117,112,115,105,108,111,110,100,105,101,114,101,115,105,115,
-116,111,110,111,115, 5, 97,108,112,104, 97, 4, 98,101,116, 97, 5,103, 97,109,109, 97, 5,100,101,108,116, 97, 7,101,112,115,
-105,108,111,110, 4,122,101,116, 97, 3,101,116, 97, 5,116,104,101,116, 97, 4,105,111,116, 97, 5,107, 97,112,112, 97, 6,108,
- 97,109, 98,100, 97, 7,117,110,105, 48, 51, 66, 67, 2,110,117, 2,120,105, 7,111,109,105, 99,114,111,110, 3,114,104,111, 6,
-115,105,103,109, 97, 49, 5,115,105,103,109, 97, 3,116, 97,117, 7,117,112,115,105,108,111,110, 3,112,104,105, 3, 99,104,105,
- 3,112,115,105, 5,111,109,101,103, 97, 12,105,111,116, 97,100,105,101,114,101,115,105,115, 15,117,112,115,105,108,111,110,100,
-105,101,114,101,115,105,115, 12,111,109,105, 99,114,111,110,116,111,110,111,115, 12,117,112,115,105,108,111,110,116,111,110,111,
-115, 10,111,109,101,103, 97,116,111,110,111,115, 7,117,110,105, 48, 51, 68, 48, 6,116,104,101,116, 97, 49, 8, 85,112,115,105,
-108,111,110, 49, 7,117,110,105, 48, 51, 68, 51, 7,117,110,105, 48, 51, 68, 52, 4,112,104,105, 49, 6,111,109,101,103, 97, 49,
- 7,117,110,105, 48, 51, 68, 55, 7,117,110,105, 48, 51, 68, 56, 7,117,110,105, 48, 51, 68, 57, 7,117,110,105, 48, 51, 68, 65,
- 7,117,110,105, 48, 51, 68, 66, 7,117,110,105, 48, 51, 68, 67, 7,117,110,105, 48, 51, 68, 68, 7,117,110,105, 48, 51, 68, 69,
- 7,117,110,105, 48, 51, 68, 70, 7,117,110,105, 48, 51, 69, 48, 7,117,110,105, 48, 51, 69, 49, 7,117,110,105, 48, 51, 69, 50,
- 7,117,110,105, 48, 51, 69, 51, 7,117,110,105, 48, 51, 69, 52, 7,117,110,105, 48, 51, 69, 53, 7,117,110,105, 48, 51, 69, 54,
- 7,117,110,105, 48, 51, 69, 55, 7,117,110,105, 48, 51, 69, 56, 7,117,110,105, 48, 51, 69, 57, 7,117,110,105, 48, 51, 69, 65,
- 7,117,110,105, 48, 51, 69, 66, 7,117,110,105, 48, 51, 69, 67, 7,117,110,105, 48, 51, 69, 68, 7,117,110,105, 48, 51, 69, 69,
- 7,117,110,105, 48, 51, 69, 70, 7,117,110,105, 48, 51, 70, 48, 7,117,110,105, 48, 51, 70, 49, 7,117,110,105, 48, 51, 70, 50,
- 7,117,110,105, 48, 51, 70, 51, 7,117,110,105, 48, 51, 70, 52, 7,117,110,105, 48, 51, 70, 53, 7,117,110,105, 48, 51, 70, 54,
- 7,117,110,105, 48, 51, 70, 55, 7,117,110,105, 48, 51, 70, 56, 7,117,110,105, 48, 51, 70, 57, 7,117,110,105, 48, 51, 70, 65,
- 7,117,110,105, 48, 51, 70, 66, 7,117,110,105, 48, 51, 70, 67, 7,117,110,105, 48, 51, 70, 68, 7,117,110,105, 48, 51, 70, 69,
- 7,117,110,105, 48, 51, 70, 70, 7,117,110,105, 48, 52, 48, 48, 9, 97,102,105,105, 49, 48, 48, 50, 51, 9, 97,102,105,105, 49,
- 48, 48, 53, 49, 9, 97,102,105,105, 49, 48, 48, 53, 50, 9, 97,102,105,105, 49, 48, 48, 53, 51, 9, 97,102,105,105, 49, 48, 48,
- 53, 52, 9, 97,102,105,105, 49, 48, 48, 53, 53, 9, 97,102,105,105, 49, 48, 48, 53, 54, 9, 97,102,105,105, 49, 48, 48, 53, 55,
- 9, 97,102,105,105, 49, 48, 48, 53, 56, 9, 97,102,105,105, 49, 48, 48, 53, 57, 9, 97,102,105,105, 49, 48, 48, 54, 48, 9, 97,
-102,105,105, 49, 48, 48, 54, 49, 7,117,110,105, 48, 52, 48, 68, 9, 97,102,105,105, 49, 48, 48, 54, 50, 9, 97,102,105,105, 49,
- 48, 49, 52, 53, 9, 97,102,105,105, 49, 48, 48, 49, 55, 9, 97,102,105,105, 49, 48, 48, 49, 56, 9, 97,102,105,105, 49, 48, 48,
- 49, 57, 9, 97,102,105,105, 49, 48, 48, 50, 48, 9, 97,102,105,105, 49, 48, 48, 50, 49, 9, 97,102,105,105, 49, 48, 48, 50, 50,
- 9, 97,102,105,105, 49, 48, 48, 50, 52, 9, 97,102,105,105, 49, 48, 48, 50, 53, 9, 97,102,105,105, 49, 48, 48, 50, 54, 9, 97,
-102,105,105, 49, 48, 48, 50, 55, 9, 97,102,105,105, 49, 48, 48, 50, 56, 9, 97,102,105,105, 49, 48, 48, 50, 57, 9, 97,102,105,
-105, 49, 48, 48, 51, 48, 9, 97,102,105,105, 49, 48, 48, 51, 49, 9, 97,102,105,105, 49, 48, 48, 51, 50, 9, 97,102,105,105, 49,
- 48, 48, 51, 51, 9, 97,102,105,105, 49, 48, 48, 51, 52, 9, 97,102,105,105, 49, 48, 48, 51, 53, 9, 97,102,105,105, 49, 48, 48,
- 51, 54, 9, 97,102,105,105, 49, 48, 48, 51, 55, 9, 97,102,105,105, 49, 48, 48, 51, 56, 9, 97,102,105,105, 49, 48, 48, 51, 57,
- 9, 97,102,105,105, 49, 48, 48, 52, 48, 9, 97,102,105,105, 49, 48, 48, 52, 49, 9, 97,102,105,105, 49, 48, 48, 52, 50, 9, 97,
-102,105,105, 49, 48, 48, 52, 51, 9, 97,102,105,105, 49, 48, 48, 52, 52, 9, 97,102,105,105, 49, 48, 48, 52, 53, 9, 97,102,105,
-105, 49, 48, 48, 52, 54, 9, 97,102,105,105, 49, 48, 48, 52, 55, 9, 97,102,105,105, 49, 48, 48, 52, 56, 9, 97,102,105,105, 49,
- 48, 48, 52, 57, 9, 97,102,105,105, 49, 48, 48, 54, 53, 9, 97,102,105,105, 49, 48, 48, 54, 54, 9, 97,102,105,105, 49, 48, 48,
- 54, 55, 9, 97,102,105,105, 49, 48, 48, 54, 56, 9, 97,102,105,105, 49, 48, 48, 54, 57, 9, 97,102,105,105, 49, 48, 48, 55, 48,
- 9, 97,102,105,105, 49, 48, 48, 55, 50, 9, 97,102,105,105, 49, 48, 48, 55, 51, 9, 97,102,105,105, 49, 48, 48, 55, 52, 9, 97,
-102,105,105, 49, 48, 48, 55, 53, 9, 97,102,105,105, 49, 48, 48, 55, 54, 9, 97,102,105,105, 49, 48, 48, 55, 55, 9, 97,102,105,
-105, 49, 48, 48, 55, 56, 9, 97,102,105,105, 49, 48, 48, 55, 57, 9, 97,102,105,105, 49, 48, 48, 56, 48, 9, 97,102,105,105, 49,
- 48, 48, 56, 49, 9, 97,102,105,105, 49, 48, 48, 56, 50, 9, 97,102,105,105, 49, 48, 48, 56, 51, 9, 97,102,105,105, 49, 48, 48,
- 56, 52, 9, 97,102,105,105, 49, 48, 48, 56, 53, 9, 97,102,105,105, 49, 48, 48, 56, 54, 9, 97,102,105,105, 49, 48, 48, 56, 55,
- 9, 97,102,105,105, 49, 48, 48, 56, 56, 9, 97,102,105,105, 49, 48, 48, 56, 57, 9, 97,102,105,105, 49, 48, 48, 57, 48, 9, 97,
-102,105,105, 49, 48, 48, 57, 49, 9, 97,102,105,105, 49, 48, 48, 57, 50, 9, 97,102,105,105, 49, 48, 48, 57, 51, 9, 97,102,105,
-105, 49, 48, 48, 57, 52, 9, 97,102,105,105, 49, 48, 48, 57, 53, 9, 97,102,105,105, 49, 48, 48, 57, 54, 9, 97,102,105,105, 49,
- 48, 48, 57, 55, 7,117,110,105, 48, 52, 53, 48, 9, 97,102,105,105, 49, 48, 48, 55, 49, 9, 97,102,105,105, 49, 48, 48, 57, 57,
- 9, 97,102,105,105, 49, 48, 49, 48, 48, 9, 97,102,105,105, 49, 48, 49, 48, 49, 9, 97,102,105,105, 49, 48, 49, 48, 50, 9, 97,
-102,105,105, 49, 48, 49, 48, 51, 9, 97,102,105,105, 49, 48, 49, 48, 52, 9, 97,102,105,105, 49, 48, 49, 48, 53, 9, 97,102,105,
-105, 49, 48, 49, 48, 54, 9, 97,102,105,105, 49, 48, 49, 48, 55, 9, 97,102,105,105, 49, 48, 49, 48, 56, 9, 97,102,105,105, 49,
- 48, 49, 48, 57, 7,117,110,105, 48, 52, 53, 68, 9, 97,102,105,105, 49, 48, 49, 49, 48, 9, 97,102,105,105, 49, 48, 49, 57, 51,
- 7,117,110,105, 48, 52, 54, 48, 7,117,110,105, 48, 52, 54, 49, 9, 97,102,105,105, 49, 48, 49, 52, 54, 9, 97,102,105,105, 49,
- 48, 49, 57, 52, 7,117,110,105, 48, 52, 54, 52, 7,117,110,105, 48, 52, 54, 53, 7,117,110,105, 48, 52, 54, 54, 7,117,110,105,
- 48, 52, 54, 55, 7,117,110,105, 48, 52, 54, 56, 7,117,110,105, 48, 52, 54, 57, 7,117,110,105, 48, 52, 54, 65, 7,117,110,105,
- 48, 52, 54, 66, 7,117,110,105, 48, 52, 54, 67, 7,117,110,105, 48, 52, 54, 68, 7,117,110,105, 48, 52, 54, 69, 7,117,110,105,
- 48, 52, 54, 70, 7,117,110,105, 48, 52, 55, 48, 7,117,110,105, 48, 52, 55, 49, 9, 97,102,105,105, 49, 48, 49, 52, 55, 9, 97,
-102,105,105, 49, 48, 49, 57, 53, 9, 97,102,105,105, 49, 48, 49, 52, 56, 9, 97,102,105,105, 49, 48, 49, 57, 54, 7,117,110,105,
- 48, 52, 55, 54, 7,117,110,105, 48, 52, 55, 55, 7,117,110,105, 48, 52, 55, 56, 7,117,110,105, 48, 52, 55, 57, 7,117,110,105,
- 48, 52, 55, 65, 7,117,110,105, 48, 52, 55, 66, 7,117,110,105, 48, 52, 55, 67, 7,117,110,105, 48, 52, 55, 68, 7,117,110,105,
- 48, 52, 55, 69, 7,117,110,105, 48, 52, 55, 70, 7,117,110,105, 48, 52, 56, 48, 7,117,110,105, 48, 52, 56, 49, 7,117,110,105,
- 48, 52, 56, 50, 7,117,110,105, 48, 52, 56, 51, 7,117,110,105, 48, 52, 56, 52, 7,117,110,105, 48, 52, 56, 53, 7,117,110,105,
- 48, 52, 56, 54, 7,117,110,105, 48, 52, 56, 56, 7,117,110,105, 48, 52, 56, 57, 7,117,110,105, 48, 52, 56, 65, 7,117,110,105,
- 48, 52, 56, 66, 7,117,110,105, 48, 52, 56, 67, 7,117,110,105, 48, 52, 56, 68, 7,117,110,105, 48, 52, 56, 69, 7,117,110,105,
- 48, 52, 56, 70, 9, 97,102,105,105, 49, 48, 48, 53, 48, 9, 97,102,105,105, 49, 48, 48, 57, 56, 7,117,110,105, 48, 52, 57, 50,
- 7,117,110,105, 48, 52, 57, 51, 7,117,110,105, 48, 52, 57, 52, 7,117,110,105, 48, 52, 57, 53, 7,117,110,105, 48, 52, 57, 54,
- 7,117,110,105, 48, 52, 57, 55, 7,117,110,105, 48, 52, 57, 56, 7,117,110,105, 48, 52, 57, 57, 7,117,110,105, 48, 52, 57, 65,
- 7,117,110,105, 48, 52, 57, 66, 7,117,110,105, 48, 52, 57, 67, 7,117,110,105, 48, 52, 57, 68, 7,117,110,105, 48, 52, 57, 69,
- 7,117,110,105, 48, 52, 57, 70, 7,117,110,105, 48, 52, 65, 48, 7,117,110,105, 48, 52, 65, 49, 7,117,110,105, 48, 52, 65, 50,
- 7,117,110,105, 48, 52, 65, 51, 7,117,110,105, 48, 52, 65, 52, 7,117,110,105, 48, 52, 65, 53, 7,117,110,105, 48, 52, 65, 54,
- 7,117,110,105, 48, 52, 65, 55, 7,117,110,105, 48, 52, 65, 56, 7,117,110,105, 48, 52, 65, 57, 7,117,110,105, 48, 52, 65, 65,
- 7,117,110,105, 48, 52, 65, 66, 7,117,110,105, 48, 52, 65, 67, 7,117,110,105, 48, 52, 65, 68, 7,117,110,105, 48, 52, 65, 69,
- 7,117,110,105, 48, 52, 65, 70, 7,117,110,105, 48, 52, 66, 48, 7,117,110,105, 48, 52, 66, 49, 7,117,110,105, 48, 52, 66, 50,
- 7,117,110,105, 48, 52, 66, 51, 7,117,110,105, 48, 52, 66, 52, 7,117,110,105, 48, 52, 66, 53, 7,117,110,105, 48, 52, 66, 54,
- 7,117,110,105, 48, 52, 66, 55, 7,117,110,105, 48, 52, 66, 56, 7,117,110,105, 48, 52, 66, 57, 7,117,110,105, 48, 52, 66, 65,
- 7,117,110,105, 48, 52, 66, 66, 7,117,110,105, 48, 52, 66, 67, 7,117,110,105, 48, 52, 66, 68, 7,117,110,105, 48, 52, 66, 69,
- 7,117,110,105, 48, 52, 66, 70, 7,117,110,105, 48, 52, 67, 48, 7,117,110,105, 48, 52, 67, 49, 7,117,110,105, 48, 52, 67, 50,
- 7,117,110,105, 48, 52, 67, 51, 7,117,110,105, 48, 52, 67, 52, 7,117,110,105, 48, 52, 67, 53, 7,117,110,105, 48, 52, 67, 54,
- 7,117,110,105, 48, 52, 67, 55, 7,117,110,105, 48, 52, 67, 56, 7,117,110,105, 48, 52, 67, 57, 7,117,110,105, 48, 52, 67, 65,
- 7,117,110,105, 48, 52, 67, 66, 7,117,110,105, 48, 52, 67, 67, 7,117,110,105, 48, 52, 67, 68, 7,117,110,105, 48, 52, 67, 69,
- 7,117,110,105, 48, 52, 68, 48, 7,117,110,105, 48, 52, 68, 49, 7,117,110,105, 48, 52, 68, 50, 7,117,110,105, 48, 52, 68, 51,
- 7,117,110,105, 48, 52, 68, 52, 7,117,110,105, 48, 52, 68, 53, 7,117,110,105, 48, 52, 68, 54, 7,117,110,105, 48, 52, 68, 55,
- 7,117,110,105, 48, 52, 68, 56, 9, 97,102,105,105, 49, 48, 56, 52, 54, 7,117,110,105, 48, 52, 68, 65, 7,117,110,105, 48, 52,
- 68, 66, 7,117,110,105, 48, 52, 68, 67, 7,117,110,105, 48, 52, 68, 68, 7,117,110,105, 48, 52, 68, 69, 7,117,110,105, 48, 52,
- 68, 70, 7,117,110,105, 48, 52, 69, 48, 7,117,110,105, 48, 52, 69, 49, 7,117,110,105, 48, 52, 69, 50, 7,117,110,105, 48, 52,
- 69, 51, 7,117,110,105, 48, 52, 69, 52, 7,117,110,105, 48, 52, 69, 53, 7,117,110,105, 48, 52, 69, 54, 7,117,110,105, 48, 52,
- 69, 55, 7,117,110,105, 48, 52, 69, 56, 7,117,110,105, 48, 52, 69, 57, 7,117,110,105, 48, 52, 69, 65, 7,117,110,105, 48, 52,
- 69, 66, 7,117,110,105, 48, 52, 69, 67, 7,117,110,105, 48, 52, 69, 68, 7,117,110,105, 48, 52, 69, 69, 7,117,110,105, 48, 52,
- 69, 70, 7,117,110,105, 48, 52, 70, 48, 7,117,110,105, 48, 52, 70, 49, 7,117,110,105, 48, 52, 70, 50, 7,117,110,105, 48, 52,
- 70, 51, 7,117,110,105, 48, 52, 70, 52, 7,117,110,105, 48, 52, 70, 53, 7,117,110,105, 48, 52, 70, 54, 7,117,110,105, 48, 52,
- 70, 55, 7,117,110,105, 48, 52, 70, 56, 7,117,110,105, 48, 52, 70, 57, 7,117,110,105, 48, 53, 48, 48, 7,117,110,105, 48, 53,
- 48, 49, 7,117,110,105, 48, 53, 48, 50, 7,117,110,105, 48, 53, 48, 51, 7,117,110,105, 48, 53, 48, 52, 7,117,110,105, 48, 53,
- 48, 53, 7,117,110,105, 48, 53, 48, 54, 7,117,110,105, 48, 53, 48, 55, 7,117,110,105, 48, 53, 48, 56, 7,117,110,105, 48, 53,
- 48, 57, 7,117,110,105, 48, 53, 48, 65, 7,117,110,105, 48, 53, 48, 66, 7,117,110,105, 48, 53, 48, 67, 7,117,110,105, 48, 53,
- 48, 68, 7,117,110,105, 48, 53, 48, 69, 7,117,110,105, 48, 53, 48, 70, 7,117,110,105, 48, 53, 51, 49, 7,117,110,105, 48, 53,
- 51, 50, 7,117,110,105, 48, 53, 51, 51, 7,117,110,105, 48, 53, 51, 52, 7,117,110,105, 48, 53, 51, 53, 7,117,110,105, 48, 53,
- 51, 54, 7,117,110,105, 48, 53, 51, 55, 7,117,110,105, 48, 53, 51, 56, 7,117,110,105, 48, 53, 51, 57, 7,117,110,105, 48, 53,
- 51, 65, 7,117,110,105, 48, 53, 51, 66, 7,117,110,105, 48, 53, 51, 67, 7,117,110,105, 48, 53, 51, 68, 7,117,110,105, 48, 53,
- 51, 69, 7,117,110,105, 48, 53, 51, 70, 7,117,110,105, 48, 53, 52, 48, 7,117,110,105, 48, 53, 52, 49, 7,117,110,105, 48, 53,
- 52, 50, 7,117,110,105, 48, 53, 52, 51, 7,117,110,105, 48, 53, 52, 52, 7,117,110,105, 48, 53, 52, 53, 7,117,110,105, 48, 53,
- 52, 54, 7,117,110,105, 48, 53, 52, 55, 7,117,110,105, 48, 53, 52, 56, 7,117,110,105, 48, 53, 52, 57, 7,117,110,105, 48, 53,
- 52, 65, 7,117,110,105, 48, 53, 52, 66, 7,117,110,105, 48, 53, 52, 67, 7,117,110,105, 48, 53, 52, 68, 7,117,110,105, 48, 53,
- 52, 69, 7,117,110,105, 48, 53, 52, 70, 7,117,110,105, 48, 53, 53, 48, 7,117,110,105, 48, 53, 53, 49, 7,117,110,105, 48, 53,
- 53, 50, 7,117,110,105, 48, 53, 53, 51, 7,117,110,105, 48, 53, 53, 52, 7,117,110,105, 48, 53, 53, 53, 7,117,110,105, 48, 53,
- 53, 54, 7,117,110,105, 48, 53, 53, 57, 7,117,110,105, 48, 53, 53, 65, 7,117,110,105, 48, 53, 53, 66, 7,117,110,105, 48, 53,
- 53, 67, 7,117,110,105, 48, 53, 53, 68, 7,117,110,105, 48, 53, 53, 69, 7,117,110,105, 48, 53, 53, 70, 7,117,110,105, 48, 53,
- 54, 49, 7,117,110,105, 48, 53, 54, 50, 7,117,110,105, 48, 53, 54, 51, 7,117,110,105, 48, 53, 54, 52, 7,117,110,105, 48, 53,
- 54, 53, 7,117,110,105, 48, 53, 54, 54, 7,117,110,105, 48, 53, 54, 55, 7,117,110,105, 48, 53, 54, 56, 7,117,110,105, 48, 53,
- 54, 57, 7,117,110,105, 48, 53, 54, 65, 7,117,110,105, 48, 53, 54, 66, 7,117,110,105, 48, 53, 54, 67, 7,117,110,105, 48, 53,
- 54, 68, 7,117,110,105, 48, 53, 54, 69, 7,117,110,105, 48, 53, 54, 70, 7,117,110,105, 48, 53, 55, 48, 7,117,110,105, 48, 53,
- 55, 49, 7,117,110,105, 48, 53, 55, 50, 7,117,110,105, 48, 53, 55, 51, 7,117,110,105, 48, 53, 55, 52, 7,117,110,105, 48, 53,
- 55, 53, 7,117,110,105, 48, 53, 55, 54, 7,117,110,105, 48, 53, 55, 55, 7,117,110,105, 48, 53, 55, 56, 7,117,110,105, 48, 53,
- 55, 57, 7,117,110,105, 48, 53, 55, 65, 7,117,110,105, 48, 53, 55, 66, 7,117,110,105, 48, 53, 55, 67, 7,117,110,105, 48, 53,
- 55, 68, 7,117,110,105, 48, 53, 55, 69, 7,117,110,105, 48, 53, 55, 70, 7,117,110,105, 48, 53, 56, 48, 7,117,110,105, 48, 53,
- 56, 49, 7,117,110,105, 48, 53, 56, 50, 7,117,110,105, 48, 53, 56, 51, 7,117,110,105, 48, 53, 56, 52, 7,117,110,105, 48, 53,
- 56, 53, 7,117,110,105, 48, 53, 56, 54, 7,117,110,105, 48, 53, 56, 55, 7,117,110,105, 48, 53, 56, 57, 7,117,110,105, 48, 53,
- 56, 65, 9, 97,102,105,105, 53, 55, 51, 56, 56, 7,117,110,105, 49, 69, 48, 48, 7,117,110,105, 49, 69, 48, 49, 7,117,110,105,
- 49, 69, 48, 50, 7,117,110,105, 49, 69, 48, 51, 7,117,110,105, 49, 69, 48, 52, 7,117,110,105, 49, 69, 48, 53, 7,117,110,105,
- 49, 69, 48, 54, 7,117,110,105, 49, 69, 48, 55, 7,117,110,105, 49, 69, 48, 56, 7,117,110,105, 49, 69, 48, 57, 7,117,110,105,
- 49, 69, 48, 65, 7,117,110,105, 49, 69, 48, 66, 7,117,110,105, 49, 69, 48, 67, 7,117,110,105, 49, 69, 48, 68, 7,117,110,105,
- 49, 69, 48, 69, 7,117,110,105, 49, 69, 48, 70, 7,117,110,105, 49, 69, 49, 48, 7,117,110,105, 49, 69, 49, 49, 7,117,110,105,
- 49, 69, 49, 50, 7,117,110,105, 49, 69, 49, 51, 7,117,110,105, 49, 69, 49, 52, 7,117,110,105, 49, 69, 49, 53, 7,117,110,105,
- 49, 69, 49, 54, 7,117,110,105, 49, 69, 49, 55, 7,117,110,105, 49, 69, 49, 56, 7,117,110,105, 49, 69, 49, 57, 7,117,110,105,
- 49, 69, 49, 65, 7,117,110,105, 49, 69, 49, 66, 7,117,110,105, 49, 69, 49, 67, 7,117,110,105, 49, 69, 49, 68, 7,117,110,105,
- 49, 69, 49, 69, 7,117,110,105, 49, 69, 49, 70, 7,117,110,105, 49, 69, 50, 48, 7,117,110,105, 49, 69, 50, 49, 7,117,110,105,
- 49, 69, 50, 50, 7,117,110,105, 49, 69, 50, 51, 7,117,110,105, 49, 69, 50, 52, 7,117,110,105, 49, 69, 50, 53, 7,117,110,105,
- 49, 69, 50, 54, 7,117,110,105, 49, 69, 50, 55, 7,117,110,105, 49, 69, 50, 56, 7,117,110,105, 49, 69, 50, 57, 7,117,110,105,
- 49, 69, 50, 65, 7,117,110,105, 49, 69, 50, 66, 7,117,110,105, 49, 69, 50, 67, 7,117,110,105, 49, 69, 50, 68, 7,117,110,105,
- 49, 69, 50, 69, 7,117,110,105, 49, 69, 50, 70, 7,117,110,105, 49, 69, 51, 48, 7,117,110,105, 49, 69, 51, 49, 7,117,110,105,
- 49, 69, 51, 50, 7,117,110,105, 49, 69, 51, 51, 7,117,110,105, 49, 69, 51, 52, 7,117,110,105, 49, 69, 51, 53, 7,117,110,105,
- 49, 69, 51, 54, 7,117,110,105, 49, 69, 51, 55, 7,117,110,105, 49, 69, 51, 56, 7,117,110,105, 49, 69, 51, 57, 7,117,110,105,
- 49, 69, 51, 65, 7,117,110,105, 49, 69, 51, 66, 7,117,110,105, 49, 69, 51, 67, 7,117,110,105, 49, 69, 51, 68, 7,117,110,105,
- 49, 69, 51, 69, 7,117,110,105, 49, 69, 51, 70, 7,117,110,105, 49, 69, 52, 48, 7,117,110,105, 49, 69, 52, 49, 7,117,110,105,
- 49, 69, 52, 50, 7,117,110,105, 49, 69, 52, 51, 7,117,110,105, 49, 69, 52, 52, 7,117,110,105, 49, 69, 52, 53, 7,117,110,105,
- 49, 69, 52, 54, 7,117,110,105, 49, 69, 52, 55, 7,117,110,105, 49, 69, 52, 56, 7,117,110,105, 49, 69, 52, 57, 7,117,110,105,
- 49, 69, 52, 65, 7,117,110,105, 49, 69, 52, 66, 7,117,110,105, 49, 69, 52, 67, 7,117,110,105, 49, 69, 52, 68, 7,117,110,105,
- 49, 69, 52, 69, 7,117,110,105, 49, 69, 52, 70, 7,117,110,105, 49, 69, 53, 48, 7,117,110,105, 49, 69, 53, 49, 7,117,110,105,
- 49, 69, 53, 50, 7,117,110,105, 49, 69, 53, 51, 7,117,110,105, 49, 69, 53, 52, 7,117,110,105, 49, 69, 53, 53, 7,117,110,105,
- 49, 69, 53, 54, 7,117,110,105, 49, 69, 53, 55, 7,117,110,105, 49, 69, 53, 56, 7,117,110,105, 49, 69, 53, 57, 7,117,110,105,
- 49, 69, 53, 65, 7,117,110,105, 49, 69, 53, 66, 7,117,110,105, 49, 69, 53, 67, 7,117,110,105, 49, 69, 53, 68, 7,117,110,105,
- 49, 69, 53, 69, 7,117,110,105, 49, 69, 53, 70, 7,117,110,105, 49, 69, 54, 48, 7,117,110,105, 49, 69, 54, 49, 7,117,110,105,
- 49, 69, 54, 50, 7,117,110,105, 49, 69, 54, 51, 7,117,110,105, 49, 69, 54, 52, 7,117,110,105, 49, 69, 54, 53, 7,117,110,105,
- 49, 69, 54, 54, 7,117,110,105, 49, 69, 54, 55, 7,117,110,105, 49, 69, 54, 56, 7,117,110,105, 49, 69, 54, 57, 7,117,110,105,
- 49, 69, 54, 65, 7,117,110,105, 49, 69, 54, 66, 7,117,110,105, 49, 69, 54, 67, 7,117,110,105, 49, 69, 54, 68, 7,117,110,105,
- 49, 69, 54, 69, 7,117,110,105, 49, 69, 54, 70, 7,117,110,105, 49, 69, 55, 48, 7,117,110,105, 49, 69, 55, 49, 7,117,110,105,
- 49, 69, 55, 50, 7,117,110,105, 49, 69, 55, 51, 7,117,110,105, 49, 69, 55, 52, 7,117,110,105, 49, 69, 55, 53, 7,117,110,105,
- 49, 69, 55, 54, 7,117,110,105, 49, 69, 55, 55, 7,117,110,105, 49, 69, 55, 56, 7,117,110,105, 49, 69, 55, 57, 7,117,110,105,
- 49, 69, 55, 65, 7,117,110,105, 49, 69, 55, 66, 7,117,110,105, 49, 69, 55, 67, 7,117,110,105, 49, 69, 55, 68, 7,117,110,105,
- 49, 69, 55, 69, 7,117,110,105, 49, 69, 55, 70, 6, 87,103,114, 97,118,101, 6,119,103,114, 97,118,101, 6, 87, 97, 99,117,116,
-101, 6,119, 97, 99,117,116,101, 9, 87,100,105,101,114,101,115,105,115, 9,119,100,105,101,114,101,115,105,115, 7,117,110,105,
- 49, 69, 56, 54, 7,117,110,105, 49, 69, 56, 55, 7,117,110,105, 49, 69, 56, 56, 7,117,110,105, 49, 69, 56, 57, 7,117,110,105,
- 49, 69, 56, 65, 7,117,110,105, 49, 69, 56, 66, 7,117,110,105, 49, 69, 56, 67, 7,117,110,105, 49, 69, 56, 68, 7,117,110,105,
- 49, 69, 56, 69, 7,117,110,105, 49, 69, 56, 70, 7,117,110,105, 49, 69, 57, 48, 7,117,110,105, 49, 69, 57, 49, 7,117,110,105,
- 49, 69, 57, 50, 7,117,110,105, 49, 69, 57, 51, 7,117,110,105, 49, 69, 57, 52, 7,117,110,105, 49, 69, 57, 53, 7,117,110,105,
- 49, 69, 57, 54, 7,117,110,105, 49, 69, 57, 55, 7,117,110,105, 49, 69, 57, 56, 7,117,110,105, 49, 69, 57, 57, 7,117,110,105,
- 49, 69, 57, 65, 7,117,110,105, 49, 69, 57, 66, 7,117,110,105, 49, 69, 65, 48, 7,117,110,105, 49, 69, 65, 49, 7,117,110,105,
- 49, 69, 65, 50, 7,117,110,105, 49, 69, 65, 51, 7,117,110,105, 49, 69, 65, 52, 7,117,110,105, 49, 69, 65, 53, 7,117,110,105,
- 49, 69, 65, 54, 7,117,110,105, 49, 69, 65, 55, 7,117,110,105, 49, 69, 65, 56, 7,117,110,105, 49, 69, 65, 57, 7,117,110,105,
- 49, 69, 65, 65, 7,117,110,105, 49, 69, 65, 66, 7,117,110,105, 49, 69, 65, 67, 7,117,110,105, 49, 69, 65, 68, 7,117,110,105,
- 49, 69, 65, 69, 7,117,110,105, 49, 69, 65, 70, 7,117,110,105, 49, 69, 66, 48, 7,117,110,105, 49, 69, 66, 49, 7,117,110,105,
- 49, 69, 66, 50, 7,117,110,105, 49, 69, 66, 51, 7,117,110,105, 49, 69, 66, 52, 7,117,110,105, 49, 69, 66, 53, 7,117,110,105,
- 49, 69, 66, 54, 7,117,110,105, 49, 69, 66, 55, 7,117,110,105, 49, 69, 66, 56, 7,117,110,105, 49, 69, 66, 57, 7,117,110,105,
- 49, 69, 66, 65, 7,117,110,105, 49, 69, 66, 66, 7,117,110,105, 49, 69, 66, 67, 7,117,110,105, 49, 69, 66, 68, 7,117,110,105,
- 49, 69, 66, 69, 7,117,110,105, 49, 69, 66, 70, 7,117,110,105, 49, 69, 67, 48, 7,117,110,105, 49, 69, 67, 49, 7,117,110,105,
- 49, 69, 67, 50, 7,117,110,105, 49, 69, 67, 51, 7,117,110,105, 49, 69, 67, 52, 7,117,110,105, 49, 69, 67, 53, 7,117,110,105,
- 49, 69, 67, 54, 7,117,110,105, 49, 69, 67, 55, 7,117,110,105, 49, 69, 67, 56, 7,117,110,105, 49, 69, 67, 57, 7,117,110,105,
- 49, 69, 67, 65, 7,117,110,105, 49, 69, 67, 66, 7,117,110,105, 49, 69, 67, 67, 7,117,110,105, 49, 69, 67, 68, 7,117,110,105,
- 49, 69, 67, 69, 7,117,110,105, 49, 69, 67, 70, 7,117,110,105, 49, 69, 68, 48, 7,117,110,105, 49, 69, 68, 49, 7,117,110,105,
- 49, 69, 68, 50, 7,117,110,105, 49, 69, 68, 51, 7,117,110,105, 49, 69, 68, 52, 7,117,110,105, 49, 69, 68, 53, 7,117,110,105,
- 49, 69, 68, 54, 7,117,110,105, 49, 69, 68, 55, 7,117,110,105, 49, 69, 68, 56, 7,117,110,105, 49, 69, 68, 57, 7,117,110,105,
- 49, 69, 68, 65, 7,117,110,105, 49, 69, 68, 66, 7,117,110,105, 49, 69, 68, 67, 7,117,110,105, 49, 69, 68, 68, 7,117,110,105,
- 49, 69, 68, 69, 7,117,110,105, 49, 69, 68, 70, 7,117,110,105, 49, 69, 69, 48, 7,117,110,105, 49, 69, 69, 49, 7,117,110,105,
- 49, 69, 69, 50, 7,117,110,105, 49, 69, 69, 51, 7,117,110,105, 49, 69, 69, 52, 7,117,110,105, 49, 69, 69, 53, 7,117,110,105,
- 49, 69, 69, 54, 7,117,110,105, 49, 69, 69, 55, 7,117,110,105, 49, 69, 69, 56, 7,117,110,105, 49, 69, 69, 57, 7,117,110,105,
- 49, 69, 69, 65, 7,117,110,105, 49, 69, 69, 66, 7,117,110,105, 49, 69, 69, 67, 7,117,110,105, 49, 69, 69, 68, 7,117,110,105,
- 49, 69, 69, 69, 7,117,110,105, 49, 69, 69, 70, 7,117,110,105, 49, 69, 70, 48, 7,117,110,105, 49, 69, 70, 49, 6, 89,103,114,
- 97,118,101, 6,121,103,114, 97,118,101, 7,117,110,105, 49, 69, 70, 52, 7,117,110,105, 49, 69, 70, 53, 7,117,110,105, 49, 69,
- 70, 54, 7,117,110,105, 49, 69, 70, 55, 7,117,110,105, 49, 69, 70, 56, 7,117,110,105, 49, 69, 70, 57, 7,117,110,105, 49, 70,
- 66, 70, 7,117,110,105, 49, 70, 70, 68, 7,117,110,105, 49, 70, 70, 69, 7,117,110,105, 50, 48, 48, 48, 7,117,110,105, 50, 48,
- 48, 49, 7,117,110,105, 50, 48, 48, 50, 7,117,110,105, 50, 48, 48, 51, 7,117,110,105, 50, 48, 48, 52, 7,117,110,105, 50, 48,
- 48, 53, 7,117,110,105, 50, 48, 48, 54, 7,117,110,105, 50, 48, 48, 55, 7,117,110,105, 50, 48, 48, 56, 7,117,110,105, 50, 48,
- 48, 57, 7,117,110,105, 50, 48, 48, 65, 7,117,110,105, 50, 48, 48, 66, 9, 97,102,105,105, 54, 49, 54, 54, 52, 7, 97,102,105,
-105, 51, 48, 49, 7, 97,102,105,105, 50, 57, 57, 7, 97,102,105,105, 51, 48, 48, 7,117,110,105, 50, 48, 49, 48, 7,117,110,105,
- 50, 48, 49, 49, 10,102,105,103,117,114,101,100, 97,115,104, 9, 97,102,105,105, 48, 48, 50, 48, 56, 7,117,110,105, 50, 48, 49,
- 54, 13,117,110,100,101,114,115, 99,111,114,101,100, 98,108, 13,113,117,111,116,101,114,101,118,101,114,115,101,100, 7,117,110,
-105, 50, 48, 49, 70, 7,117,110,105, 50, 48, 50, 51, 14,111,110,101,100,111,116,101,110,108,101, 97,100,101,114, 14,116,119,111,
-100,111,116,101,110,108,101, 97,100,101,114, 7,117,110,105, 50, 48, 50, 55, 7,117,110,105, 50, 48, 51, 49, 6,109,105,110,117,
-116,101, 6,115,101, 99,111,110,100, 7,117,110,105, 50, 48, 51, 52, 7,117,110,105, 50, 48, 51, 53, 7,117,110,105, 50, 48, 51,
- 54, 7,117,110,105, 50, 48, 51, 55, 7,117,110,105, 50, 48, 51, 56, 7,117,110,105, 50, 48, 51, 66, 9,101,120, 99,108, 97,109,
-100, 98,108, 7,117,110,105, 50, 48, 51, 68, 7,117,110,105, 50, 48, 51, 69, 7,117,110,105, 50, 48, 51, 70, 7,117,110,105, 50,
- 48, 52, 48, 7,117,110,105, 50, 48, 52, 49, 7,117,110,105, 50, 48, 52, 50, 7,117,110,105, 50, 48, 52, 51, 7,117,110,105, 50,
- 48, 52, 53, 7,117,110,105, 50, 48, 52, 54, 7,117,110,105, 50, 48, 52, 55, 7,117,110,105, 50, 48, 52, 56, 7,117,110,105, 50,
- 48, 52, 57, 7,117,110,105, 50, 48, 52, 65, 7,117,110,105, 50, 48, 52, 66, 7,117,110,105, 50, 48, 52, 67, 7,117,110,105, 50,
- 48, 52, 68, 7,117,110,105, 50, 48, 52, 69, 7,117,110,105, 50, 48, 52, 70, 7,117,110,105, 50, 48, 53, 48, 7,117,110,105, 50,
- 48, 53, 49, 7,117,110,105, 50, 48, 53, 50, 7,117,110,105, 50, 48, 53, 51, 7,117,110,105, 50, 48, 53, 52, 7,117,110,105, 50,
- 48, 53, 53, 7,117,110,105, 50, 48, 53, 54, 7,117,110,105, 50, 48, 53, 55, 7,117,110,105, 50, 48, 53, 56, 7,117,110,105, 50,
- 48, 53, 57, 7,117,110,105, 50, 48, 53, 65, 7,117,110,105, 50, 48, 53, 66, 7,117,110,105, 50, 48, 53, 67, 7,117,110,105, 50,
- 48, 53, 68, 7,117,110,105, 50, 48, 53, 69, 7,117,110,105, 50, 48, 55, 48, 7,117,110,105, 50, 48, 55, 49, 7,117,110,105, 50,
- 48, 55, 52, 7,117,110,105, 50, 48, 55, 53, 7,117,110,105, 50, 48, 55, 54, 7,117,110,105, 50, 48, 55, 55, 7,117,110,105, 50,
- 48, 55, 56, 7,117,110,105, 50, 48, 55, 57, 7,117,110,105, 50, 48, 55, 65, 7,117,110,105, 50, 48, 55, 66, 7,117,110,105, 50,
- 48, 55, 67, 7,117,110,105, 50, 48, 55, 68, 7,117,110,105, 50, 48, 55, 69, 7,117,110,105, 50, 48, 55, 70, 7,117,110,105, 50,
- 48, 56, 48, 7,117,110,105, 50, 48, 56, 49, 7,117,110,105, 50, 48, 56, 50, 7,117,110,105, 50, 48, 56, 51, 7,117,110,105, 50,
- 48, 56, 52, 7,117,110,105, 50, 48, 56, 53, 7,117,110,105, 50, 48, 56, 54, 7,117,110,105, 50, 48, 56, 55, 7,117,110,105, 50,
- 48, 56, 56, 7,117,110,105, 50, 48, 56, 57, 7,117,110,105, 50, 48, 56, 65, 7,117,110,105, 50, 48, 56, 66, 7,117,110,105, 50,
- 48, 56, 67, 7,117,110,105, 50, 48, 56, 68, 7,117,110,105, 50, 48, 56, 69, 7,117,110,105, 50, 48, 65, 48, 13, 99,111,108,111,
-110,109,111,110,101,116, 97,114,121, 7,117,110,105, 50, 48, 65, 50, 4,108,105,114, 97, 7,117,110,105, 50, 48, 65, 53, 7,117,
-110,105, 50, 48, 65, 54, 6,112,101,115,101,116, 97, 7,117,110,105, 50, 48, 65, 56, 7,117,110,105, 50, 48, 65, 57, 9, 97,102,
-105,105, 53, 55, 54, 51, 54, 4,100,111,110,103, 4, 69,117,114,111, 7,117,110,105, 50, 48, 65, 68, 7,117,110,105, 50, 48, 65,
- 69, 7,117,110,105, 50, 48, 65, 70, 7,117,110,105, 50, 48, 66, 49, 7,117,110,105, 50, 48, 66, 52, 7,117,110,105, 50, 48, 66,
- 53, 7,117,110,105, 50, 48, 68, 54, 7,117,110,105, 50, 48, 68, 55, 7,117,110,105, 50, 49, 48, 48, 7,117,110,105, 50, 49, 48,
- 51, 7,117,110,105, 50, 49, 48, 52, 9, 97,102,105,105, 54, 49, 50, 52, 56, 7,117,110,105, 50, 49, 48, 54, 7,117,110,105, 50,
- 49, 48, 57, 7,117,110,105, 50, 49, 48, 69, 7,117,110,105, 50, 49, 48, 70, 8, 73,102,114, 97,107,116,117,114, 9, 97,102,105,
-105, 54, 49, 50, 56, 57, 9, 97,102,105,105, 54, 49, 51, 53, 50, 7,117,110,105, 50, 49, 49, 55, 11,119,101,105,101,114,115,116,
-114, 97,115,115, 8, 82,102,114, 97,107,116,117,114, 7,117,110,105, 50, 49, 49, 68, 12,112,114,101,115, 99,114,105,112,116,105,
-111,110, 7,117,110,105, 50, 49, 50, 48, 7,117,110,105, 50, 49, 50, 49, 7,117,110,105, 50, 49, 50, 54, 7,117,110,105, 50, 49,
- 50, 55, 7,117,110,105, 50, 49, 50, 65, 7,117,110,105, 50, 49, 50, 66, 9,101,115,116,105,109, 97,116,101,100, 7,117,110,105,
- 50, 49, 51, 50, 7,117,110,105, 50, 49, 51, 52, 5, 97,108,101,112,104, 7,117,110,105, 50, 49, 51, 66, 7,117,110,105, 50, 49,
- 52, 66, 8,111,110,101,116,104,105,114,100, 9,116,119,111,116,104,105,114,100,115, 7,117,110,105, 50, 49, 53, 53, 7,117,110,
-105, 50, 49, 53, 54, 7,117,110,105, 50, 49, 53, 55, 7,117,110,105, 50, 49, 53, 56, 7,117,110,105, 50, 49, 53, 57, 7,117,110,
-105, 50, 49, 53, 65, 9,111,110,101,101,105,103,104,116,104, 12,116,104,114,101,101,101,105,103,104,116,104,115, 11,102,105,118,
-101,101,105,103,104,116,104,115, 12,115,101,118,101,110,101,105,103,104,116,104,115, 7,117,110,105, 50, 49, 53, 70, 7,117,110,
-105, 50, 49, 54, 48, 7,117,110,105, 50, 49, 54, 49, 7,117,110,105, 50, 49, 54, 50, 7,117,110,105, 50, 49, 54, 51, 7,117,110,
-105, 50, 49, 54, 52, 7,117,110,105, 50, 49, 54, 53, 7,117,110,105, 50, 49, 54, 54, 7,117,110,105, 50, 49, 54, 55, 7,117,110,
-105, 50, 49, 54, 56, 7,117,110,105, 50, 49, 54, 57, 7,117,110,105, 50, 49, 54, 65, 7,117,110,105, 50, 49, 54, 66, 7,117,110,
-105, 50, 49, 54, 67, 7,117,110,105, 50, 49, 54, 68, 7,117,110,105, 50, 49, 54, 69, 7,117,110,105, 50, 49, 54, 70, 7,117,110,
-105, 50, 49, 55, 48, 7,117,110,105, 50, 49, 55, 49, 7,117,110,105, 50, 49, 55, 50, 7,117,110,105, 50, 49, 55, 51, 7,117,110,
-105, 50, 49, 55, 52, 7,117,110,105, 50, 49, 55, 53, 7,117,110,105, 50, 49, 55, 54, 7,117,110,105, 50, 49, 55, 55, 7,117,110,
-105, 50, 49, 55, 56, 7,117,110,105, 50, 49, 55, 57, 7,117,110,105, 50, 49, 55, 65, 7,117,110,105, 50, 49, 55, 66, 7,117,110,
-105, 50, 49, 55, 67, 7,117,110,105, 50, 49, 55, 68, 7,117,110,105, 50, 49, 55, 69, 7,117,110,105, 50, 49, 55, 70, 7,117,110,
-105, 50, 49, 56, 48, 7,117,110,105, 50, 49, 56, 49, 7,117,110,105, 50, 49, 56, 50, 7,117,110,105, 50, 49, 56, 51, 9, 97,114,
-114,111,119,108,101,102,116, 7, 97,114,114,111,119,117,112, 10, 97,114,114,111,119,114,105,103,104,116, 9, 97,114,114,111,119,
-100,111,119,110, 9, 97,114,114,111,119, 98,111,116,104, 9, 97,114,114,111,119,117,112,100,110, 7,117,110,105, 50, 49, 57, 54,
- 7,117,110,105, 50, 49, 57, 55, 7,117,110,105, 50, 49, 57, 56, 7,117,110,105, 50, 49, 57, 57, 14, 99, 97,114,114,105, 97,103,
-101,114,101,116,117,114,110, 7,117,110,105, 50, 50, 49, 51, 7,117,110,105, 50, 50, 49, 52, 7,117,110,105, 50, 50, 49, 54, 12,
- 97,115,116,101,114,105,115,107,109, 97,116,104, 7,117,110,105, 50, 50, 49, 56, 7,117,110,105, 50, 50, 49, 66, 7,117,110,105,
- 50, 50, 49, 67, 12,112,114,111,112,111,114,116,105,111,110, 97,108, 7,117,110,105, 50, 51, 49, 56, 7,117,110,105, 50, 51, 49,
- 57, 7,117,110,105, 50, 51, 50, 53, 9, 97,110,103,108,101,108,101,102,116, 10, 97,110,103,108,101,114,105,103,104,116, 7,117,
-110,105, 50, 52, 54, 48, 7,117,110,105, 50, 52, 54, 49, 7,117,110,105, 50, 52, 54, 50, 7,117,110,105, 50, 52, 54, 51, 7,117,
-110,105, 50, 52, 54, 52, 7,117,110,105, 50, 52, 54, 53, 7,117,110,105, 50, 52, 54, 54, 7,117,110,105, 50, 52, 54, 55, 7,117,
-110,105, 50, 52, 54, 56, 7,117,110,105, 50, 52, 54, 57, 7,117,110,105, 50, 54, 66, 48, 7,117,110,105, 50, 54, 66, 49, 7,117,
-110,105, 50, 56, 48, 48, 7,117,110,105, 70, 66, 48, 48, 7,117,110,105, 70, 66, 48, 51, 7,117,110,105, 70, 66, 48, 52, 7,117,
-110,105, 70, 66, 48, 53, 7,117,110,105, 70, 66, 48, 54, 7,117,110,105, 70, 66, 49, 51, 7,117,110,105, 70, 66, 49, 52, 7,117,
-110,105, 70, 66, 49, 53, 7,117,110,105, 70, 66, 49, 54, 7,117,110,105, 70, 66, 49, 55, 7,117,110,105, 70, 70, 70, 68, 9,100,
-108, 76,116, 99, 97,114,111,110, 8, 68,105,101,114,101,115,105,115, 5, 65, 99,117,116,101, 5, 84,105,108,100,101, 5, 71,114,
- 97,118,101, 10, 67,105,114, 99,117,109,102,108,101,120, 5, 67, 97,114,111,110, 12,117,110,105, 48, 51, 49, 49, 46, 99, 97,115,
-101, 5, 66,114,101,118,101, 9, 68,111,116, 97, 99, 99,101,110,116, 12, 72,117,110,103, 97,114,117,109,108, 97,117,116, 11, 68,
-111,117, 98,108,101, 97, 99,117,116,101, 11,117,110,105, 48, 51, 48, 56, 48, 51, 48, 52, 11,117,110,105, 48, 51, 48, 52, 48, 51,
- 48, 56, 11,117,110,105, 48, 51, 48, 55, 48, 51, 48, 52, 11,117,110,105, 48, 51, 48, 56, 48, 51, 48, 49, 11,117,110,105, 48, 51,
- 48, 56, 48, 51, 48, 48, 11,117,110,105, 48, 51, 48, 52, 48, 51, 48, 49, 11,117,110,105, 48, 51, 48, 52, 48, 51, 48, 48, 11,117,
-110,105, 48, 51, 48, 51, 48, 51, 48, 52, 11,117,110,105, 48, 51, 48, 56, 48, 51, 48, 67, 11,117,110,105, 48, 51, 48, 51, 48, 51,
- 48, 56, 11,117,110,105, 48, 51, 48, 67, 48, 51, 48, 55, 11,117,110,105, 48, 51, 48, 51, 48, 51, 48, 49, 11,117,110,105, 48, 51,
- 48, 50, 48, 51, 48, 49, 11,117,110,105, 48, 51, 48, 50, 48, 51, 48, 48, 11,117,110,105, 48, 51, 48, 50, 48, 51, 48, 51, 11,117,
-110,105, 48, 51, 48, 54, 48, 51, 48, 51, 11,117,110,105, 48, 51, 48, 54, 48, 51, 48, 49, 11,117,110,105, 48, 51, 48, 54, 48, 51,
- 48, 48, 11,117,110,105, 48, 51, 48, 54, 48, 51, 48, 57, 11,117,110,105, 48, 51, 48, 50, 48, 51, 48, 57, 0, 0, 0, 2, 0, 0,
- 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 20,108, 0, 0, 0, 16, 0, 0, 0, 7, 0, 1, 0, 2, 0, 0, 0, 1,255,255,255,255,
- 0, 1, 0, 3, 0, 0, 0, 0,255,255,255,254, 0, 1, 0, 2, 0, 0, 0, 1,255,255,255,255, 0, 1, 0, 3, 0, 0, 0, 0,
-255,255,255,254, 0, 1, 0, 4, 0, 0, 0, 2,255,255,255,255, 0, 1, 0, 5, 0, 0, 0, 0,255,255,255,253, 0, 1, 0, 4,
- 0, 0, 0, 2,255,255,255,255, 0, 1, 0, 5, 0, 0, 0, 0,255,255,255,253, 0, 1, 0, 4, 0, 0, 0, 2,255,255,255,255,
- 0, 1, 0, 5, 0, 0, 0, 0,255,255,255,253, 0, 2, 0, 2, 0, 0, 0, 4,255,255,255,255, 0, 2, 0, 0, 0, 0, 0, 0,
-255,255,255,251, 0, 11, 0, 2, 0, 0, 0, 8,255,255,255,255, 0, 11, 0, 0, 0, 0, 0, 0,255,255,255,247, 0, 0, 0, 0,
-255,255,255,255,255,255,255,255, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,176, 64, 0, 0, 1, 0, 0, 0, 4,
- 0, 0, 0, 6, 0, 0, 0, 20, 0, 0, 0,242, 0, 0, 1, 34, 0, 0, 1, 98, 0, 4, 0, 6, 0, 10, 0, 48, 0, 3, 0, 12,
- 2, 92, 2, 72, 0, 78, 2, 97, 2, 94, 0,120, 2,104, 2,100, 0,128, 2,110, 2,107, 0,138, 2,123, 2,113, 0,146, 2,138,
- 2,129, 0,168, 2,140, 2,140, 0,188, 2,154, 2,142, 0,190, 4,123, 4,123, 0,216, 5,253, 5,252, 0,218,255,255,255,255,
- 0, 0, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5,
- 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5,
- 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5,
- 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5,
- 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 4, 0, 5, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- 0, 0, 0, 2, 0, 0, 0, 1, 0, 2, 0, 3, 0, 3, 0, 4, 0, 3, 0, 5, 0, 4, 0, 6, 0, 6, 0, 7, 0, 6, 0, 5,
- 0, 7, 0, 0, 0, 0,255,255,255,255, 0, 2,128, 0,255,255, 0, 0, 0, 1, 0, 0,255,255,255,255, 0, 0, 0, 0, 0, 1,
-255,255, 0, 2, 0, 0,255,255,255,255, 0, 3,128, 0,255,255, 0, 2, 0, 0, 0, 0, 0, 3,255,255, 0, 3, 0, 0,255,255,
-255,255, 0, 0, 0, 16, 0, 0, 0, 28, 0, 0, 0, 40, 0, 0, 0, 52, 0, 4, 0, 6, 0, 0, 0, 0,255,255, 0, 0, 0, 4,
- 0, 6, 0, 0, 0, 0,255,255, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0,255,255, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0,255,255,
- 0, 0, 0, 0, 0, 0, 4, 52, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 22, 0, 0, 0, 28, 0, 0, 0,160, 0, 0, 2,132,
- 0, 0, 3, 38, 0, 0, 3,186, 0, 0, 4, 4, 0, 4, 0, 6, 0, 13, 0, 48, 0, 3, 0, 30, 0, 3, 0, 3, 0, 96, 0, 17,
- 0, 17, 0, 98, 0, 41, 0, 41, 0,100, 0, 81, 0, 81, 0,102, 0,114, 0,114, 0,104, 2, 21, 2, 21, 0,106, 2, 73, 2, 73,
- 0,108, 2, 76, 2, 75, 0,110, 2, 80, 2, 78, 0,114, 2, 83, 2, 82, 0,120, 2,112, 2,111, 0,124, 5,159, 5,159, 0,128,
- 5,162, 5,162, 0,130,255,255,255,255, 0, 0, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13,
- 0, 14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0,
- 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 3, 0, 4, 0, 7, 0, 8,
- 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 0, 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 17,
- 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 18, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 19, 0, 0, 0, 3, 0, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 2, 0, 0, 0, 20, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 6, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22,
- 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 22, 0, 23, 0, 22, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 5, 0, 24, 0, 25, 0, 25, 0, 25, 0, 25, 0, 25, 0, 25, 0, 25, 0, 25, 0, 25, 0, 25, 0, 25, 0, 25,
- 0, 25, 0, 25, 0, 25, 0, 25, 0, 25, 0, 25, 0, 25, 0, 25, 0, 25, 0, 26, 0, 0, 0, 0, 0, 0, 0, 2,128, 0, 0, 0,
- 0, 3,128, 0, 0, 0, 0, 5,128, 0, 0, 0, 0, 6,128, 0, 0, 0, 0, 7,128, 0, 0, 0, 0, 9,128, 0, 0, 0, 0, 0,
-160, 0, 0, 0, 0, 0,160, 0, 0, 2, 0, 0,160, 0, 0, 4, 0, 0,160, 0, 0, 6, 0, 0,160, 0, 0, 8, 0, 0,160, 0,
- 0, 10, 0, 0,160, 0, 0, 12, 0, 0,160, 0, 0, 14, 0, 0,160, 0, 0, 16, 0, 0,160, 0, 0, 18, 0, 4,128, 0, 0, 0,
- 0, 0,160, 0, 0, 20, 0, 0,160, 0, 0, 23, 0, 0,160, 0, 0, 25, 0, 8,128, 0, 0, 0, 0, 0, 96, 0, 0, 27, 0, 0,
-160, 0, 0, 29, 0, 10,128, 0, 0, 0, 0, 0, 96, 0, 0, 32, 0, 0,160, 0, 0, 34, 63,255,253,183,191,255,255,254, 63,255,
-253,183,128, 0, 0, 0, 63,255,253,184,128, 0, 0, 2, 63,255,253,184,128, 0, 0, 4, 63,255,253,185,128, 0, 0, 6, 63,255,
-253,186,128, 0, 0, 8, 63,255,253,186,128, 0, 0, 10, 63,255,253,187,128, 0, 0, 12, 63,255,253,161,128, 0, 0, 14, 63,255,
-253,162,128, 0, 0, 16, 0, 0, 0, 3, 0, 0, 0, 4,128, 0, 0, 5, 63,255,255,238,191,255,255,166, 63,255,255,200,191,255,
-254, 5, 63,255,250,124,191,255,250,125, 63,255,250,126, 63,255,250,127,191,255,250,128, 63,255,250,126,191,255,250,127, 63,255,
-250,128, 63,255,250,129,191,255,250,130, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0,
- 0, 5, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12,
- 0, 0, 0, 13, 0, 0, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 16, 0,118, 2, 53, 0,113, 2, 49, 2, 50, 0,106,
- 2, 51, 2, 54, 0,122, 2, 52, 5,155, 6, 3, 1, 11, 5,160, 5,161, 5,163, 5,164, 0, 0, 0, 0, 0,144, 0, 0, 0, 2,
- 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 28, 0, 0, 0, 62, 0, 0, 0, 98, 0, 0, 0,116, 0, 0, 0,124, 0, 0, 0,128,
- 0, 4, 0, 6, 0, 2, 0, 12, 0, 1, 0, 0, 4, 86, 4, 86, 0, 30, 4,115, 4,115, 0, 32,255,255,255,255, 0, 0, 0, 4,
- 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2,128, 0, 0, 0, 0, 0,160, 0, 0, 0, 63,255,251,141,191,255,251,171,
- 0, 0, 0, 0, 4,120, 0, 0, 0, 0, 1, 48, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 10, 0, 0, 0, 28, 0, 0, 0, 94,
- 0, 0, 0,174, 0, 0, 0,222, 0, 0, 1, 6, 0, 0, 1, 26, 0, 4, 0, 6, 0, 6, 0, 24, 0, 2, 0, 12, 4, 86, 4, 86,
- 0, 54, 4, 92, 4, 92, 0, 56, 4, 94, 4, 94, 0, 58, 4,101, 4,101, 0, 60, 4,103, 4,103, 0, 62, 4,111, 4,111, 0, 64,
-255,255,255,255, 0, 0, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 0, 4, 0, 5, 0, 1, 0, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7,
- 0, 2, 0, 0, 0, 0, 0, 0, 0, 2,128, 0, 0, 0, 0, 3,128, 0, 0, 0, 0, 0,160, 0, 0, 0, 0, 0,160, 0, 0, 2,
- 0, 0,160, 0, 0, 4, 0, 0,160, 0, 0, 6, 0, 0,160, 0, 0, 8, 63,255,251,170,191,255,251,156, 63,255,251,166,191,255,
-251,158, 63,255,251,166,191,255,251,160, 63,255,251,159,191,255,251,162, 63,255,251,161,191,255,251,154, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 6,126, 6,127, 6,129, 6,125, 6,128, 0, 0, 4,228, 0, 0, 0, 2,
- 0, 0, 0, 2, 0, 0, 0, 23, 0, 0, 0, 28, 0, 0, 0,162, 0, 0, 3, 84, 0, 0, 3,246, 0, 0, 4,122, 0, 0, 4,188,
- 0, 4, 0, 6, 0, 13, 0, 48, 0, 3, 0, 30, 0, 18, 0, 18, 0, 96, 0, 36, 0, 36, 0, 98, 0, 41, 0, 40, 0,100, 0, 48,
- 0, 47, 0,104, 0, 55, 0, 53, 0,108, 0, 59, 0, 59, 0,114, 0, 68, 0, 68, 0,116, 0, 70, 0, 70, 0,118, 0, 73, 0, 73,
- 0,120, 0, 76, 0, 76, 0,122, 0, 79, 0, 79, 0,124, 0, 82, 0, 82, 0,126, 0, 88, 0, 86, 0,128,255,255,255,255, 0, 0,
- 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19,
- 0, 20, 0, 21, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 3, 0, 4,
- 0, 0, 0, 5, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 3, 0, 4, 0, 0, 0, 5, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 3, 0, 4, 0, 0, 0, 5,
- 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- 0, 0, 0, 0, 0, 2, 0, 3, 0, 4, 0, 10, 0, 5, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 3, 0, 4, 0, 0, 0, 5, 0, 6, 0, 7,
- 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12,
- 0, 2, 0, 3, 0, 4, 0, 0, 0, 5, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 13, 0, 1, 0, 0, 0, 0, 0, 2, 0, 3, 0, 4, 0, 0, 0, 5, 0, 6, 0, 7, 0, 0, 0, 0,
- 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 14, 0, 0, 0, 2, 0, 3,
- 0, 4, 0, 0, 0, 5, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 3, 0, 4, 0, 0, 0, 5, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 8,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 3, 0, 4, 0, 0,
- 0, 5, 0, 16, 0, 7, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,
- 0, 1, 0, 0, 0, 0, 0, 2, 0, 3, 0, 4, 0, 0, 0, 5, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 3, 0, 4, 0, 0, 0, 5, 0, 6,
- 0, 7, 0, 0, 0, 0, 0, 18, 0, 8, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
- 0, 0, 0, 2, 0, 3, 0, 4, 0, 0, 0, 5, 0, 6, 0, 20, 0, 21, 0, 22, 0, 0, 0, 8, 0, 0, 0, 0, 0, 23, 0, 23,
- 0, 23, 0, 23, 0, 23, 0, 23, 0, 23, 0, 23, 0, 23, 0, 23, 0, 23, 0, 23, 0, 23, 0, 23, 0, 23, 0, 23, 0, 23, 0, 24,
- 0, 25, 0, 23, 0, 23, 0, 23, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2,
- 0, 3, 0, 4, 0, 0, 0, 5, 0, 6, 0, 7, 0, 0, 0, 0, 0, 0, 0, 8, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
-128, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, 5,128, 0, 0, 0, 0, 6,128, 0, 0, 0, 0, 8,128, 0, 0, 0, 0, 10,128, 0,
- 0, 0, 0, 12,128, 0, 0, 0, 0, 14,128, 0, 0, 0, 0, 3,128, 0, 0, 0, 0, 0,160, 0, 0, 0, 0, 0,160, 0, 0, 3,
- 0, 0,160, 0, 0, 5, 0, 7,128, 0, 0, 0, 0, 0,160, 0, 0, 7, 0, 9,128, 0, 0, 0, 0, 0,160, 0, 0, 10, 0, 11,
-128, 0, 0, 0, 0, 0,160, 0, 0, 13, 0, 0,160, 0, 0, 16, 0, 13,128, 0, 0, 0, 0, 0,160, 0, 0, 19, 0, 0,160, 0,
- 0, 21, 0, 0, 96, 0, 0, 23, 0, 0,160, 0, 0, 25, 0, 0,160, 0, 0, 28, 0, 0,160, 0, 0, 31, 63,255,255,197, 63,255,
-255,221,191,255,255,217, 63,255,255,173,191,255,255,207, 63,255,255,213,191,255,255,208, 63,255,255,216, 63,255,255,224,191,255,
-255,210, 63,255,255,196, 63,255,255,249,191,255,255,200, 63,255,255,187, 63,255,255,252,191,255,255,201, 63,255,255,184, 63,255,
-255,255,191,255,255,204, 63,255,255,199,191,255,255,203, 63,255,255,198,191,255,255,205, 63,255,255,206,191,255,255,207, 63,255,
-255,205, 63,255,255,209,191,255,255,210, 63,255,255,205, 63,255,255,212,191,255,255,213, 63,255,255,200,191,255,255,202, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 5, 0, 0,
- 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12,
- 6, 25, 5,241, 6, 14, 6, 15, 5,254, 6, 1, 6, 2, 6,119, 6,120, 6,118, 6,121, 6,122, 6,124, 0, 0, 0, 0, 0,220,
- 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 28, 0, 0, 0, 62, 0, 0, 0,110, 0, 0, 0,152, 0, 0, 0,184,
- 0, 0, 0,200, 0, 4, 0, 6, 0, 2, 0, 12, 0, 1, 0, 0, 0, 4, 0, 4, 0, 30, 0, 34, 0, 34, 0, 32,255,255,255,255,
- 0, 0, 0, 4, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, 2,128, 0,
- 0, 0, 0, 3,128, 0, 0, 0, 0, 0,160, 0, 0, 0, 0, 0,160, 0, 0, 2, 0, 0,160, 0, 0, 4, 0, 0,160, 0, 0, 6,
- 63,255,255,252,191,255,255,253, 63,255,255,224,191,255,255,255, 0, 0, 0, 0,191,255,255,227, 63,255,255,228,191,255,255,229,
- 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 5,169, 5,182, 5,181, 5,180, 0, 0, 6, 56, 0, 0, 0, 2,
- 0, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0, 28, 0, 0, 0, 84, 0, 0, 2,132, 0, 0, 3,182, 0, 0, 5, 46, 0, 0, 5,234,
- 0, 4, 0, 6, 0, 3, 0, 12, 0, 1, 0, 6, 0, 18, 0, 18, 0, 36, 0, 27, 0, 20, 0, 38, 5,177, 5,177, 0, 54,255,255,
-255,255, 0, 0, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- 0, 2, 0, 3, 0, 4, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 0, 2, 0, 3,
- 0, 4, 0, 5, 0, 0, 0, 6, 0, 0, 0, 8, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13,
- 0, 14, 0, 9, 0, 15, 0, 9, 0, 16, 0, 16, 0, 16, 0, 16, 0, 16, 0, 16, 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, 0, 16,
- 0, 22, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 0, 0, 6, 0, 0, 0, 24,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 25, 0, 4, 0, 26, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 27, 0, 4, 0, 28, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 29, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 0, 0, 6, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- 0, 2, 0, 3, 0, 31, 0, 32, 0, 0, 0, 6, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 3,
- 0, 34, 0, 35, 0, 0, 0, 6, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5,
- 0, 0, 0, 6, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 39, 0, 0, 0, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 40, 0, 0, 0, 6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 0, 0, 6, 0, 0, 0, 42, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 43, 0, 6, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 45, 0, 6, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 1,
- 0, 2, 0, 3, 0, 4, 0, 5, 0, 0, 0, 6, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 3,
- 0, 4, 0, 5, 0, 0, 0, 6, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5,
- 0, 0, 0, 6, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,128, 0, 0, 0, 0, 5,128, 0, 0, 0, 0, 8,128, 0, 0, 0,
- 0, 11,128, 0, 0, 0, 0, 14,128, 0, 0, 0, 0, 17,128, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, 3,128, 0, 0, 0, 0, 0,
- 96, 0, 0, 0, 0, 0,160, 0, 0, 2, 0, 0,160, 0, 0, 5, 0, 0,160, 0, 0, 8, 0, 0,160, 0, 0, 11, 0, 0,160, 0,
- 0, 14, 0, 0,160, 0, 0, 17, 0, 0, 96, 0, 0, 20, 0, 0,160, 0, 0, 22, 0, 0,160, 0, 0, 25, 0, 0,160, 0, 0, 28,
- 0, 0,160, 0, 0, 31, 0, 0,160, 0, 0, 34, 0, 0,160, 0, 0, 37, 0, 7,128, 0, 0, 0, 0, 6,128, 0, 0, 0, 0, 0,
-160, 0, 0, 40, 0, 0,160, 0, 0, 43, 0, 0,160, 0, 0, 46, 0, 0,160, 0, 0, 49, 0, 10,128, 0, 0, 0, 0, 9,128, 0,
- 0, 0, 0, 0,160, 0, 0, 52, 0, 0,160, 0, 0, 55, 0, 0,160, 0, 0, 58, 0, 0,160, 0, 0, 61, 0, 0,160, 0, 0, 64,
- 0, 0,160, 0, 0, 67, 0, 13,128, 0, 0, 0, 0, 12,128, 0, 0, 0, 0, 0,160, 0, 0, 70, 0, 0,160, 0, 0, 73, 0, 16,
-128, 0, 0, 0, 0, 15,128, 0, 0, 0, 0, 0,160, 0, 0, 76, 0, 0,160, 0, 0, 79, 0, 0,160, 0, 0, 82, 0, 0,160, 0,
- 0, 85, 0, 19,128, 0, 0, 0, 0, 18,128, 0, 0, 0, 0, 0,160, 0, 0, 88, 0, 0,160, 0, 0, 91, 63,255,250, 79,191,255,
-255,237, 63,255,255,237, 63,255,250, 82,191,255,255,240, 63,255,255,239, 63,255,250, 85,191,255,255,243, 63,255,255,241, 63,255,
-250, 88,191,255,255,246, 63,255,255,243, 63,255,250, 91,191,255,255,249, 63,255,255,245, 63,255,250, 94,191,255,255,252, 63,255,
-255,246, 63,255,250, 97,191,255,255,255, 0, 0, 0, 2,128, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 5,128, 0, 0, 4, 0, 0,
- 0, 3, 0, 0, 0, 8,128, 0, 0, 7, 0, 0, 0, 5, 0, 0, 0, 11,128, 0, 0, 10, 0, 0, 0, 7, 0, 0, 0, 14,128, 0,
- 0, 13, 0, 0, 0, 9, 0, 0, 0, 17,128, 0, 0, 16, 0, 0, 0, 10, 0, 0, 0, 20,128, 0, 0, 19, 0, 0, 0, 18, 63,255,
-250,120,128, 0, 0, 21, 0, 0, 0, 19, 63,255,250,123,128, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 29,128, 0, 0, 27, 0, 0,
- 0, 25, 0, 0, 0, 32,128, 0, 0, 30, 0, 0, 0, 29, 63,255,250,132,128, 0, 0, 32, 0, 0, 0, 31, 63,255,250,135,128, 0,
- 0, 35, 0, 0, 0, 31, 63,255,250,138,128, 0, 0, 38, 0, 0, 0, 38, 0, 0, 0, 44,128, 0, 0, 41, 0, 0, 0, 40, 0, 0,
- 0, 47,128, 0, 0, 44, 0, 0, 0, 40, 0, 0, 0, 50,128, 0, 0, 47, 0, 0, 0, 46, 63,255,250,150,128, 0, 0, 49, 0, 0,
- 0, 49, 0, 0, 0, 56,128, 0, 0, 52, 0, 0, 0, 51, 63,255,250,156,128, 0, 0, 54, 0, 0, 0, 52, 63,255,250,159,128, 0,
- 0, 57, 0, 0, 0, 57, 0, 0, 0, 65,128, 0, 0, 60, 0, 0, 0, 58, 0, 0, 0, 68,128, 0, 0, 63, 0, 0, 0, 61, 63,255,
-250,168,128, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 74,128, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0,
- 0, 0, 0, 8, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0,
- 0, 13, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 18,
- 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 23, 0, 0,
- 0, 0, 0, 24, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0,
- 0, 29, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 31, 6, 39, 0,127, 6, 27, 0,126, 6, 29, 6, 33, 6, 35, 6, 39, 0,127,
- 6, 27, 0,126, 6, 29, 6, 33, 6, 35, 6, 28, 6, 30, 6, 28, 6, 30, 0,128, 6, 31, 6, 36, 0,128, 6, 31, 6, 36, 6, 32,
- 6, 32, 6, 34, 6, 37, 6, 34, 6, 37, 6, 38, 6, 38, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- 0, 0, 0, 60, 0, 0, 1, 0, 0, 1, 0, 2, 0, 0, 0, 64, 0, 0, 1, 1, 0, 2, 0, 1, 0, 0, 0, 72,192, 0, 1, 2,
- 0, 11, 0, 1, 0, 0, 0, 76,192, 0, 1, 3, 0, 0, 1, 4, 0, 2, 1, 5, 0, 4, 1, 6, 0, 2, 1, 7, 0, 2, 1, 8,
- 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 6, 0, 97, 1,128, 0, 6, 0,198, 0, 3, 0, 3, 0, 10, 0, 5, 0, 4, 0, 11,
- 0, 8, 0, 6, 0, 5, 0, 10, 0, 9, 0, 11, 0, 11, 0, 11, 17, 11, 0, 12, 0, 12, 31, 11, 0, 13, 0, 13, 0, 11, 0, 14,
- 0, 14, 0, 4, 0, 15, 0, 15, 0, 7, 0, 16, 0, 16, 0, 4, 0, 18, 0, 17, 0, 7, 0, 28, 0, 19, 0, 3, 0, 29, 0, 29,
- 0, 7, 0, 30, 0, 30, 0, 11, 0, 31, 0, 31, 18, 11, 0, 32, 0, 32, 0, 11, 0, 33, 0, 33, 30, 11, 0, 35, 0, 34, 0, 11,
- 0, 62, 0, 62, 18, 11, 0, 63, 0, 63, 0, 11, 0, 64, 0, 64, 30, 11, 0, 67, 0, 65, 0, 11, 0, 94, 0, 94, 18, 11, 0, 95,
- 0, 95, 0, 11, 0, 96, 0, 96, 30, 11, 0, 97, 0, 97, 0, 11, 0, 98, 0, 98, 0, 7, 0, 99, 0, 99, 0, 11, 0,103, 0,100,
- 0, 5, 0,107, 0,104, 0, 11, 0,113, 0,109, 0, 11, 0,115, 0,114, 0, 5, 0,117, 0,116, 0, 3, 0,118, 0,118, 0, 11,
- 0,122, 0,120, 0, 11, 0,123, 0,123, 0, 3, 0,129, 0,125, 0, 11, 0,153, 0,153, 0, 11, 0,185, 0,185, 0, 11, 2, 19,
- 2, 18, 0, 11, 2, 40, 2, 27, 0, 11, 2, 56, 2, 43, 0, 11, 2, 68, 2, 62, 0, 11, 2, 71, 2, 70, 0, 11, 2,154, 2, 72,
-128, 11, 2,156, 2,155, 0, 11, 2,160, 2,157,128, 11, 2,162, 2,161, 0, 11, 2,166, 2,164, 0, 11, 2,168, 2,168, 0, 11,
- 3, 19, 3, 19, 0, 11, 3,163, 3,160,128, 11, 3,165, 3,164, 0, 11, 4,122, 4,122, 0, 11, 4,123, 4,123, 0, 7, 5,116,
- 5,114, 0, 11, 5,127, 5,117, 0, 10, 5,130, 5,128, 0, 11, 5,132, 5,131, 0, 10, 5,156, 5,133, 0, 11, 5,161, 5,157,
- 0, 5, 5,165, 5,162, 0, 11, 5,166, 5,166, 17, 11, 5,167, 5,167, 31, 11, 5,176, 5,168, 0, 11, 5,177, 5,177, 0, 7,
- 5,178, 5,178, 17, 11, 5,179, 5,179, 31, 11, 5,203, 5,180, 0, 11, 5,204, 5,204, 0, 3, 5,211, 5,206, 0, 3, 5,213,
- 5,212, 0, 4, 5,214, 5,214, 0, 11, 5,215, 5,215, 17, 11, 5,216, 5,216, 31, 11, 5,227, 5,218, 0, 3, 5,229, 5,228,
- 0, 4, 5,230, 5,230, 0, 11, 5,231, 5,231, 17, 11, 5,232, 5,232, 31, 11, 5,251, 5,233, 0, 5, 5,253, 5,252,128, 11,
- 6, 3, 5,254, 0, 11, 6, 10, 6, 8, 0, 11, 6, 16, 6, 13, 0, 11, 6, 18, 6, 18, 0, 11, 6, 21, 6, 21, 0, 5, 6, 22,
- 6, 22, 0, 11, 6, 39, 6, 25, 0, 11, 6, 86, 6, 76, 0, 11, 6, 87, 6, 87, 0, 4, 6, 88, 6, 88, 0, 5, 6,102, 6, 89,
- 0, 11, 6,103, 6,103, 17, 11, 6,104, 6,104, 31, 11, 6,116, 6,105, 0, 11, 6,130, 6,130, 0, 1,255,255,255,255, 0, 0,
-};
-
diff --git a/source/blender/editors/datafiles/blender_icons.png.c b/source/blender/editors/datafiles/blender_icons.png.c
deleted file mode 100644
index 860c225ffc1..00000000000
--- a/source/blender/editors/datafiles/blender_icons.png.c
+++ /dev/null
@@ -1,7101 +0,0 @@
-/* DataToC output of file <blender_icons_png> */
-
-int datatoc_blender_icons_png_size = 227018;
-char datatoc_blender_icons_png[] = {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0,
- 0, 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 10, 79,105, 67, 67, 80, 80,
-104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61,
-247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81,
-193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251,
-225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66,
- 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34,
-192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75,
- 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96,
- 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86,
-138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12,
- 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0,
-120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194,
-121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45,
-234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162,
- 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217,
-229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50,
- 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98,
-185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223,
- 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3,
-128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0,
- 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,
-100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184,
- 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133,
-248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135,
- 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208,
-100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51,
-196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119,
- 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3,
-132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67,
-196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147,
-201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248,
- 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173,
-161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186,
- 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24,
-103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145,
-202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51,
- 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6,
- 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177,
-205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248,
-156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171,
- 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157,
-231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128,
-158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60,
-197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70,
- 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76,
- 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182,
-184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167,
- 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98,
- 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86,
- 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71,
-103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210,
-245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81,
-229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247,
- 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223,
- 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219,
-101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206,
-105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53,
-119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186,
- 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227,
-123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168,
- 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,
-236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58,
-189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149,
- 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171,
-158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106,
- 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122,
- 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134,
-157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100,
-207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47,
-151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221,
-181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251,
- 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213,
- 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228,
-233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251,
- 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147,
-103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255,
-139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199,
-187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57,
- 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237,
- 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15,
- 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254,
-203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194,
-198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245,
- 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, 0,255, 0,255,
-160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,213, 0, 0, 13,213, 1, 61,214, 88,241, 0, 0, 0, 7,116, 73, 77,
- 69, 7,220, 4, 24, 17, 13, 59,208, 68,241,106, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236, 93,119,120, 20,197, 3,125,187,183,
-215,239,114,233, 61, 16,146, 64, 32,148,132, 80, 20,144, 94, 5,162,168, 8, 2, 34, 69, 44,136, 40,160, 40,168,136, 72, 87,233,
- 42, 32, 42, 77, 65,176, 1, 1, 41,145, 18, 72, 2,132, 38, 61, 65, 18, 72, 35,237, 82,175,183,221,223, 31,201,157,151,203,181,
- 64,162, 63,116,223,247,237,119,119,123,187,111,103,103,103,102,223,188,105, 0, 11, 22, 44, 88,176, 96,193,130, 5, 11, 22, 44,
- 88,176, 96,193,130, 5, 11, 22,255,106, 36, 38, 38, 50, 13, 56,124,160,187,156,181, 91,159,255,119,206, 38,188,119,166, 17, 57,
-251,212,114,126,244,144,132,179,207,255, 43,167,249,126, 27,192, 59,176, 33,233,168,177,226,211, 42,156, 76, 99,135,179,169, 56,
- 27, 43, 31,217, 9, 39,211, 4,207,253,163,135, 36,156,125,254,223, 56,109,211,143,155,188, 13,226,116, 51, 77, 53, 52,156, 76,
- 99,135,179,169, 56, 31, 52, 31, 57, 9, 39,243,160,105,201,193,179,255, 8,255, 33, 80, 77, 40,178,220, 70, 66, 66, 2, 97,197,
- 79,252,191,114, 90,199,131,153,191, 49,195,218,136, 56,222,216,156, 54,241,217, 88,248, 40, 33, 33,129, 72, 76, 76, 60, 1,160,
- 79, 99,222,123, 99, 60,119,155,123,109, 20,222,251, 16, 89, 13,226,108,172,116,223,212,156,141,149,151,108, 57, 27, 35,221,219,
-123,238, 77,248,140, 26, 43,156,141,146,151,154, 34,205,219, 73, 63, 15,204,107,203,217, 24,121,201,150,179, 49,210,253,223,193,
-217, 24,121,201, 30,103, 99,164,123, 71,207,254,191,102, 80,145,255,176, 32,176,205,224,125,255,159, 5, 81, 83,137,205, 6, 56,
- 48,255, 56,103, 35, 63,163,143,106, 57, 27,179,118,211,183,177,158, 81, 83,164,119,107,206,198,226,183,229,105,140,231,100,143,
-243, 65,195,235, 32,156,141,126,239, 15,154,238,255, 46,206, 70,126, 70,141,146,151,108, 56,251, 54,114,101,160,175,213,239,143,
- 26,147,179,177,242,146,157,112, 62,240,115,178,199,249,160,225,117, 16,206, 70,191,247,198,120,135, 52, 21,239,191, 26, 77,213,
-124,214,216,156, 13,228,254, 87,113, 54,176,121,102, 96, 19, 60,251,127, 52,156,141,201,105, 27,198,198,108,238,105,202,112, 54,
- 38,103, 3,194,250,175,227,124,216,158,251,255, 99,124, 58,226,123,144,102, 41, 71,238,104, 83,132,179, 49, 57,221,228,254, 87,
-112, 62,192,179,255,215,129,250,127, 9,136, 57,226, 27,185,102,130, 70,118, 96,154, 82,184, 54,102, 56,251, 54,133, 67,216, 4,
-104,244,112,214,214,148,231, 55,193,189, 63, 44,113,202,230, 37, 54, 47,253,223,229, 37,155, 52,217,183, 17,157,162, 70,117,158,
-109, 57, 27,227, 26,214, 28,141,149, 70,155,250,222, 27, 51, 47, 53,197,179,103,241, 0, 46, 4,203,201,114,178,156, 44, 39,203,
-201,114,178,156,255, 89,206,127, 37, 72, 54, 10, 88,176, 96,193,130, 5, 11, 22, 44, 88,176, 96,193,130, 5, 11, 22, 44, 88, 60,
- 84,112,216,190, 27, 18, 18,146, 40, 22,139, 91, 58,250, 95,169, 84,222,187,119,239, 94, 63, 54, 10,255, 57,176,207,136,197, 67,
- 4, 18,127, 57,232, 52, 0,166,118, 99,193,130, 5,139,127, 53, 28,118,134, 23, 8, 4,145, 55,110,220,136,166,105, 26, 38,147,
- 9, 70,163,209,242,169,211,233,208,187,119,239, 6,119,164, 15, 12, 12, 76,230,112, 56, 45, 26,114,142,201,100,202, 41, 42, 42,
-234,233,228,144, 84, 0,145, 4,241,151,102, 52,127,119,244, 9,160,192, 96, 48,116,114,198, 73, 16, 68,164, 45,159, 3, 46,243,
-119,167,156,158,158,158,231, 40,138, 10,179,199,229,232, 59, 77,211, 89, 37, 37, 37, 61,254,206,103,244, 95, 70, 96, 96, 96, 50,
- 69, 81, 13, 78,159,133,133,133, 14,211,103,112,112,240, 69,146, 36, 67, 26, 64,201,161,105, 58,227,222,189,123, 61,157, 8,145,
- 84, 0,145, 78,107, 80, 54,233,137, 32,136, 60,147,201,212,197, 85, 62,114,198,101, 39,141,186,226,180,136, 44,138,162,150, 5,
- 4, 4, 76, 85,169, 84, 26, 0, 12,135,195, 97,172,194, 6, 0, 48, 26,141, 37, 21, 21, 21, 29,216,148,200,130, 5,139,255,132,
-208,162,105,154,212,106,181,200,204,204, 4,195,216, 45,239, 77,247,113,189,232,243,191, 31, 9,240, 8, 8,132, 81,175,135,196,
-207,223,194, 93,116,253, 42,140, 6, 61,140, 58, 29,154,119,237,102, 14, 3,218,182,109,203,113,193, 25,182,124,249,242, 0, 15,
- 15, 15,104, 52, 26,104, 52, 26,104,181, 90,104, 52, 26,232,116, 58,232,116, 58,232,245,122,232,245,122, 24,141, 70,104,181, 90,
- 36, 37, 37,153, 12, 6,131, 83,206,197,139, 23, 7,200,100, 50, 11,159,121, 51,115,154,121, 13, 6, 3, 52, 26, 13,142, 30, 61,
-234,148,147,162,168,176,130,130,130, 0, 30,143, 7,134, 97, 64,211, 52, 24,134,169,179,217, 34, 42, 42, 74,239, 44,144, 77,244,
-140,254,203,136, 94,188, 99,127,128,167, 72, 0, 35, 77, 35, 33, 46,202,242, 71,214,215,187,193, 24, 77,160,141, 70,180,122,125,
-188,101,127, 76, 76,140,211,244,201, 48, 76,248,226, 29,251,189,220,229,148,203,229,234, 54,109,218, 20,160,198,109,118, 36,180,
-194,212,106,117, 64, 45,127, 61, 65, 68,146,100,157,237,208,161, 67, 72, 72, 72,112,117,239, 97, 51,103,206, 12, 48, 24, 12,208,
-233,116,208,106,181, 48, 24, 12, 48, 26,141,150,205,100, 50, 89, 54,157, 78,135, 51,103,206,184,235,100, 45, 31, 52,104,208,228,
-253,251,247, 75,126,253,245, 87, 73,139, 22, 45,192,227,241,192,225,112,192,225,112, 64,146, 36, 40,138,194,163,143, 62, 74,176,
- 73,144, 5, 11, 22,255, 25,161,165,213,106,179,227,227,227,153,218,239,161, 2,129,128,103, 83,203, 13,105,213,170, 85,134,237,
-121,174,154,171, 60, 2, 2, 49,183,153, 15, 0,224,195,187,114,203, 11,226,147, 30, 29, 45,199,124,156, 95, 9, 0, 16,137, 68,
- 32,172,171,209, 14, 32,145, 72, 48,104,208, 32,240,249,124,116,233,210, 5, 92, 46,215,238,198,227,241,192,229,114, 93, 70, 10,
- 65, 16,144, 74,165, 88,176, 96,129, 89, 36, 65, 34, 20, 96,122,143, 46, 16,130,193, 87, 87,111, 65, 71, 51,160, 40,202,178,185,
-195,201,227,241,112,229,202, 21, 80, 20, 5, 14,135, 99,249, 52,127,223,187,119, 47,158,125,246, 89, 80, 20, 5,145, 72, 4,184,
-152, 57,216,250, 25,233,116,186, 96, 62,159,175, 7, 96, 22,103, 60,130, 32,130,238,231, 25,253,151,225, 41, 18, 96,194,250, 95,
- 0, 0,185,171, 94,183, 60,187, 51,175,125,104, 57, 38,252,229,209, 32, 8, 2, 92, 46, 23, 36, 73, 54, 26,103, 89, 89,153,122,
-204,152, 49,167, 60, 60, 60, 14, 85, 85, 85,193,133,128, 67,110,110, 46, 40,138,114,152,222, 73,146,196,202,149, 43,241,231,159,
-127,186,117,239, 26,141, 6,155, 54,109,130,201,100,170,195,107,254,110,187,207, 77,145,181,104,240,224,193,227,247,239,223,239,
- 77, 16, 4, 62,255,252,115,240,120, 60, 12, 27, 54, 12,190,190,190, 56,124,248, 48,120, 60, 30,222,121,231, 29, 54,241,177, 96,
-193,194, 89,153,199, 5,208, 17,128,127,173,137, 80, 13,192,203,234,144,146,218, 79,127,243,111,130, 32,210,237,240,116,173, 61,
-166,132, 32,136,116,171,223, 58, 0,124, 59,251,229, 0, 68,181,155, 22, 53,238,127,123,171,235,152,207,131,163,235, 82, 64,205,
-250, 67, 0,142, 3,232,155,144,144,112, 2, 0, 10, 11, 11,135, 22, 22, 22, 2, 0, 34, 35, 35,111,100,100,100,180, 49,107,158,
-218,230, 41,158,209,104,140, 54, 55, 85,153,221,162,129, 3, 7, 58,173,225, 27,245,250,122, 2,196,158,150,178,215, 92,225, 72,
-192,232,245,122,140, 30, 61, 26, 0, 28,190,116,172, 55, 55,180, 27,116, 58, 29, 40,138, 66,235,102,254,152, 55, 36, 30,143, 48,
- 6, 40, 21, 4,140,149, 74,140,144, 26,112,163,109, 39,108,204, 41,193,221, 42, 5, 40,138,114,139,147,166,105,135, 34,139,195,
-225, 96,253,250,245, 24, 51,102, 12, 56, 28,142, 91,124,214,207, 40, 34, 34, 98,127, 70, 70,134, 47, 65, 16,218,218,103, 36, 48,
- 26,141, 50,163,209,232,107, 50,153,124, 27,242,140,254,203, 48,210,180,221,116,232, 40,205,186,243,156,220,225, 44, 43, 43, 83,
- 39, 36, 36,156, 22, 8, 4, 91, 3, 3, 3, 11,242,242,242, 92, 10, 45, 91,241, 99, 91,169, 88,177, 98, 5,214,174, 93,139,126,
-253,250,185, 21, 78,173, 86, 11,130, 32,176,113,227,198,122,255, 45, 92,184,176,222,245, 92,112, 18, 0,200,144,144,144,215, 14,
- 30, 60, 40, 51, 31,235,231,231, 7, 46,151,139, 14, 29, 58,192,195,195, 3,167, 78,157,130,201,100,114, 59, 95,178, 96,193,226,
-223, 11,123, 90,196, 10,189,231,206,157,219,101,217,178,101, 75,186,119,239,190, 51, 53, 53,117, 7, 65, 16,137, 86,101, 98, 66,
-109,249,154,104,254,205, 48, 76, 87,107,209, 83, 43,214,252, 9,130, 72, 52, 31,111,253,219,252,201, 48,204, 64, 0,124,243,239,
-185,115,231,182, 95,182,108,217,146, 57,115,230,188,183,116,233, 82,222,220,185,115, 99,151, 45, 91,182,196,124, 29,123,225,176,
-231,104, 57, 93,123,202,220, 68,117,243,230, 77, 71, 77, 84,214, 47, 0,167,165,165,196,207,223,226,100,125, 28,238,107,217,191,
- 32,175,194,242, 2, 91,215,185, 37, 36, 18, 9,134,124,252,169, 91, 78,145, 78,167, 67,113,113,177,197,101,112,181,185,203, 41,
- 22, 9,145, 52,179, 3,114,229,124,124,148, 86,134,253,151,254, 4,151,203,197,227,109, 59, 96, 40,207, 3, 31,132,243, 49,243,
-214, 29, 24, 24,247,250,244, 50, 12, 99, 87, 96,153,191,155,155, 80,220, 21, 90, 54,207, 40, 87,163,209,200, 51, 51, 51,213,116,
-205,139, 93,196, 48,140, 55, 65, 16,213,181, 46, 87,176,187,207,232,191,140,132,184, 40,139,235,116,198, 99,128,101,255,179,202,
- 43,150,103,242,214,250, 79, 0, 0,253, 58, 61,234, 50, 63,184,195, 41,151,203,213, 61, 7,244, 61, 97, 82,235,182,140, 31, 63,
- 62,251,216,177, 99, 34,119,194,106, 79,104,153, 93, 91,179,200,162, 40, 10, 58,157,206,173,123,215,233,116, 14,243, 7,143,199,
-187, 31, 71, 11, 74,165, 82,183,103,207, 30,172, 91,183, 14,190,190,190, 24, 60,120, 48,130,131,131,177,123,247,110, 48, 12,131,
-215, 95,127, 29, 34,145,200,236, 94,179, 9,144, 5,139,255, 54,156,105, 17,193,178,101,203,150,216, 10, 25,235,223,214, 2,202,
- 70, 76, 89,139,181,246, 46,222,255,137,182,226,201,124, 93,130, 32, 18,151, 46, 93,154,224, 34, 28, 37,142,132,150,211, 41,241,
-181, 90,109,118, 92, 92,156, 91,106, 66,165, 82, 21,186, 18, 27,246,106,245,214, 46,129, 84, 42,133, 68, 38, 5,233,102,185,107,
- 48, 24, 44, 66,229,200,145, 35, 16,137, 68, 24, 54,108,216, 3, 57, 90,122,189, 30,124, 30, 23,164, 95, 32, 38,172, 58, 6,121,
-181,218,242,130, 57,158,149,141, 11, 69,197,152,217,125, 0, 36,162, 98, 40,116, 58,183,156, 55,154,166,235,137, 44,138,162, 48,
-122,244,104,139,155, 96,221,111, 5, 78,154, 14,125,125,125,207, 81, 20, 21,102,245,140,132,145,145,145,192, 95,253,122, 8,154,
-166, 21, 94, 94, 94, 63, 3, 8, 97, 24, 38, 12,128,135, 59,207,136,133,253,244,105,187,159,182,113,170,238,135, 83, 46,151,171,
- 19, 18, 18, 78,155,212,186, 45,249,249,249,167, 1, 8, 31,121,228,145, 6, 11, 45,179,192,226,114,185, 88,185,114, 37,214,174,
- 93,107,249,223, 93,161,101, 52, 26,235, 8,168, 91,183,110,213,185,150,173,176,115,209,108,202,160,102,116, 33, 29, 25, 25,105,
- 57, 39, 40, 40, 8, 94, 94, 94,160,105, 26, 52, 77, 67, 40, 20, 66, 36, 18,129,199,227,177,137,142, 5, 11, 22,206,180,136,122,
-206,156, 57,239, 17, 4,145, 88,235, 44, 93,117, 34,168,236,105,143,174, 54, 98,173,196,193,113, 9,246,196,150,245,119, 51,230,
-206,157,219,222, 54, 28,246,154, 43, 45,165,170,205,180,251,117, 96,221, 68,213, 88, 47, 49,103, 47, 50,169,151, 12, 34,137, 4,
- 28, 14, 9,130, 32, 24, 87, 92,122,189,222, 82,240, 79,157, 58,213,105,191, 21,119,251, 83,233,245,122,144, 20, 7,247,130, 34,
- 96, 34, 79, 90,206, 53,111, 36,197,197,221,160, 54,224,220,188, 8,174,155, 47, 92, 91, 71,235,245,215, 95,199,166, 77,155, 64,
-146,164, 37, 78, 40,138, 66,171, 86,173,144,157,157,237,148,139,162,168,176,187,119,239, 6, 88,199,163, 89,196, 50, 12, 3,147,
-201,132,168,168, 40, 77,102,102,230,155,108,214,125, 48,145,229,104,191,201, 68,187,237,194,216, 59, 78, 46,151,171, 71,141, 26,
-117,162,178,178,114, 75,187,118,237,110,161,238, 20, 8, 46,249, 40,138,170, 35,176,204, 34,107,205,154, 53,117, 68,145,193, 96,
-112,171, 34, 96, 48, 24,234, 9,158,207, 62,251,172,206, 39, 0,244,232,209,195, 45,103, 24, 0, 67,146, 36,195,227,241, 48,104,
-208, 32,196,198,198,226,215, 95,127, 5, 77,211,152, 54,109, 26, 68, 34, 17, 86,175, 94, 13,163,209,136,229,203,151,179,142, 22,
- 11, 22, 44,156,105, 17,237,210,165, 75,175, 46, 93,186,212,226, 44,217, 58, 90, 14,222,187,195,107, 69,149,191, 89,164, 1,208,
-218, 19, 68,246, 92, 50, 91, 1,102,189,111,217,178,101, 75,108,195, 97,219, 92, 89, 71,104,253, 93, 40,188,118, 5,159, 62, 22,
- 15,160,110,115,225,250, 71,219, 64, 34,149, 64,226, 33,197,168,189, 39, 1,160,182,208,159,227,150,163,101, 22, 90,114,185,220,
-169,200,106,136,163, 69,242, 41,252, 24, 86, 14,134,207, 5,165, 51,212, 17, 90, 28,138,139, 92,223, 8,144, 92, 30, 40,147,209,
- 45, 78,134, 97,234, 53, 21, 78,156, 56, 17, 4, 65, 88, 70,136,197,197,197, 89,115, 17,174, 94,142,179,125,106,250,224,217, 54,
-199, 46, 47,213,176, 57,246,126,210,231,185,175,113,227,167,215, 0, 0, 61,149, 74,203,179, 88, 28,247,215,216,129, 85, 87, 78,
- 88,220,199,143,241,246,125,113,202,229,114,245, 35, 49,237, 79,243,124, 60,183,228,228,228,156, 6, 64, 62,247,220,115, 94,113,
-113,113,110,229, 73,243,224, 10, 91,145,101,237,100,153, 63, 93,140,176,181, 18,142, 38,183, 4,148,185, 25,209,141, 52,207,152,
-211,182, 76, 38,131, 84, 42,181,140,184, 21, 10,133, 16,139,197,150,254,157,110, 10, 55, 22, 44, 88,252,119,225,109, 22, 58,181,
- 98,169,142,211, 84,219,183, 42,193,250,183, 61,199,171,214,129, 74,118, 81,190,238,175, 21,104,118, 97,118,214,108,206, 73,116,
- 36,210, 40,179,130,180,254, 12, 10, 10,250, 77, 42,149, 70,184,123,247, 13, 25,197,102, 50,232,235, 57, 91, 4, 65, 64,234, 33,
-133, 72, 42,129,200, 67,234,208,245,114, 38,180,204, 78,145,249,165,179,117,235, 86, 72,165, 82, 76,154, 52,169,193,125,180, 44,
- 66,139, 71,226,176,224, 40, 56,124,170,142,200,162, 40, 10, 28, 46, 23,133,210, 96,144, 92, 46, 40,163,123, 46, 89,101,101, 37,
- 40,138,194,188,121,243, 44, 53,120,107,145,213,144,123,118, 6,146, 32,204,238,150,160,101,203,150,111, 19, 4, 17, 14,160,133,
- 82,169, 20,220,187,119,175, 63,155, 95,157, 40, 3,147,161,158, 11,229,200,125,189, 95, 78,179,147,197,243,241,220,210,166, 77,
- 27,139,147, 37, 22,139,205,163, 77, 93, 63, 99,146,180, 43,178,108, 71, 8, 82, 20, 85,147,150, 93,140,142,180,118,180,150, 46,
- 93,106,225,181,118,178,204,104, 72, 62, 50,135,245,196,137, 19,184,112,225, 2,166, 78,157, 10,145, 72,132,181,107,215,194,104,
- 52, 98,225,194,133, 16,137, 68,224,243,249,108,226, 99,193,130,117,179,234,104, 17, 27,148,216,244,131, 34,108, 68, 77,137, 61,
-129,101,221, 76,104,254, 78, 16,132,193, 14,175,206,166, 73,209,118,191,249, 83,190,116,233,210, 99,102, 39,203,106,127,157,112,
-184,116,180, 4, 2, 65, 68,102,102,166,101, 34, 76,103,159, 58,157, 14,253,250,245,115,219, 25, 51,143, 58,164, 40, 78, 29, 97,
- 33,246,144, 66, 44,243,128, 72, 42,181, 21, 28,132,171, 66,220, 92, 35,182, 22, 90,243,231,207, 7, 69, 81,216,180,105, 19, 0,
-224,237,183,223,118,187,143,150,153, 19, 38, 2,121,204,109,196,175,122, 22,186,239, 12, 40, 74,249, 3, 20, 69, 33,160,219, 80,
-208,143, 60, 11,149, 72, 10,202,100,116,123,212, 97, 89, 89, 25,178,179,179,193,225,112, 48,107,214,172, 58,115, 29,217,142,100,
- 59,114,228,136,203,123,183,231,100,205,207, 41,179,240,136, 68, 34,242,143, 63,254,136,160,105, 58, 82,173, 86,183,236,209,163,
- 7,205,102,101, 23,162,136, 54,186, 37,170,220, 77,159,182,156,230, 62, 89,149,149,149, 91,114,114,114,206, 0, 32,199,143, 31,
-239, 37, 22,139,241,205, 55,223,168, 0,240,119,239,222, 45,114, 37,138,204,233,198,149,200,226,114,185, 53,105,217,157,123,103,
-234, 78, 89,226,170, 99,188, 59,105,222, 28, 86,130, 32, 96, 50,153, 32, 18,137,234, 56, 89, 66,161, 16, 2,129,128, 77,120, 44,
- 88,176,112, 85,150,164,187, 93,142, 51, 76, 87, 43, 81,149,126, 63,188, 13,185,158, 43, 80,142,132,134, 86,171,197,245,235,215,
-221,229,113,123, 98,204,102, 93, 30,197,199,249,149, 32, 8, 2, 95,245,104, 7,137, 76, 10,177, 68,130,145,191,158,176, 20,220,
- 87,150,188, 13,129, 68,138,144, 94,131,221, 42,200,205, 77,135,214, 66,171,162,162, 2, 92, 46, 23,139, 22, 45, 2, 73,146, 88,
-190,124, 57, 66, 67, 67,113,239,222, 61,236,222,189,219, 45, 71,139, 99,226, 32,248,133, 24,136, 39,122, 66,246, 66,111,120, 15,
-154,143,124, 29,133, 84,141, 24,189, 53,215,192, 63,188, 6, 58,218,228,246, 8, 44,163,209,136, 19, 39, 78,216,118,120,183,244,
-169, 50, 26,141, 48, 24, 12,208,235,245, 88,190,124,185, 59, 35, 60,235, 61, 55,115, 28,214, 78,130,202,201,200,200,240,103, 24,
-198, 7,128, 39,128, 82, 54,187, 58, 71,112,183,215,225,223,229, 85, 0,192,222,165, 47, 90,246,207,187,242, 87,250, 92,249, 93,
-205, 2, 0,109, 90, 12,110, 16,167, 92, 46, 87, 63,222,175, 71,178,134,230,110,238,208,161, 67, 29, 39, 75, 40, 20, 18,181,191,
-221,178,203, 72,146, 4,135,195,169,215, 92,232, 72,108,185,211, 71,203,104, 52, 90, 38, 18,117,214,159,241,126, 28,173, 23, 95,
-124, 17,193,193,193, 22, 39,235,227,143, 63,134, 72, 36,194,220,185,115, 97, 48, 24,176,102,205, 26, 54,241,177, 96,193,226,111,
- 23,101,127, 7,236,150,164, 26,141,230, 78,108,108, 44, 28,252, 23, 42, 20, 10,185, 54, 55, 21,210,170, 85,171, 12, 59, 77,136,
- 3, 1, 36,217, 43,212, 9,130,128,135,204, 3, 66,169, 4, 98, 27, 23, 75,232, 33,131, 64, 42, 5,201,179, 91,152,215,227, 52,
-247, 45,177, 22, 90,230,173,178,178, 18, 92, 46, 23,235,214,173,131, 76, 38,131, 86,171,117,201,105,126,233,112, 56, 28,168,114,
-171,113, 99, 73, 18,248,194, 84,180, 28, 60, 6,193, 92, 17,120,167,126,134,218,100,112, 53, 97,105, 61,206,232,232,104,124,248,
-225,135,245,166,117,112,132,208,208, 80,151,247,110,235,100,173,108,215, 28, 60, 62, 15,111, 93,203,133, 86,171, 37,198,140, 25,
- 67, 3, 80, 3, 40, 81,171,213, 57,238,196,103, 35,224,161,231,116, 54, 42,214, 12,154, 49,217, 19, 48,118, 57,205, 78,150,134,
-230,110,206,206,206, 54, 59, 89,158, 98,177, 24, 27, 54,108, 80, 1, 32, 23, 46, 92, 40, 14, 15, 15,231,184,147,150, 56, 28, 14,
- 86,173, 90,101,183, 79,150, 61,209,213,144,124,100,125,110,159, 62,125,236, 78, 88,234, 64,188,213,227, 52,135,213,215,215,215,
-226,100,153, 76, 38,203,104, 67,243,236,243, 78, 42, 21,108,250,100, 57, 89,206,255, 14,231,191, 18,118, 75,224,123,247,238, 61,
-238,232,132,168,168,168,204,204,204,204, 86,230,165, 56,106, 11, 78,158, 70,163,137,238,209,163,135, 75,107,135,166,105, 8, 4,
- 2, 48, 12,131,254, 31, 46, 3, 65, 2, 36,234,190,196, 2, 30, 27, 0, 14,135, 2, 93,179,212,135,203, 81,135,106,181,186,206,
-203,193,222,166, 80, 40,160,213,106,221,158,205, 91,163,209,212,153,130,129, 96,104,220,253,125, 87,189,209,135,230,205,221,126,
- 59, 66,161,176, 78,211,143, 11,199,138,112,199,209,178,110,122,228,241,121,160,120, 92,179,163, 85,125,235,214,173, 81,108, 50,
-119, 31,230, 1, 11, 0,208,186,199, 48,208,180, 9,140,201, 84,103,153,164,152,136,199, 65, 51, 38,232, 13, 42,104,181, 90, 87,
-211,158, 16,165,165,165,234, 81,163, 70,157, 0,240,237,136, 17, 35, 50, 80, 51,187, 48, 35,149, 74, 5, 92, 46,151, 6, 80, 6,
-128, 41, 47, 47,247,204,207,207,167, 53, 26, 77,115, 87,225,220,191,127, 63,174, 95,191,142, 94,189,122,213, 89, 14,202,236,138,
- 90,207,238,238, 78,250, 52, 55,151,219,155, 17,222,145,144,115, 23, 28, 14, 7,158,158,158,224,241,120, 88,180,104, 17,120, 60,
- 30,196, 98, 49, 0, 96,205,154, 53,150,201, 87, 89,176, 96,193,226, 63, 35,180, 92,149,155, 78,154, 21,157, 54, 33, 26,141,198,
-188,240,240,240, 6, 93,204,100, 50, 21,185, 16,110,121,187,119,239,230, 89,187, 16,174, 62, 25,134, 41,114,241,178,205,219,187,
-119, 47,207,158,187,225,104,129,105, 87,156, 38,147, 41,175, 69,139, 22, 14, 29, 19,123, 48, 24, 12,249,174, 68,235,178, 18,117,
- 29,145,240,214,181, 92,135,107, 39,178,112,153,214,156,164,207,247,239, 55,125,222,106,221,186,117,190,151,151,215,129,192,192,
- 64,121, 74, 74,138,111,215,174, 93,125,173,143,233,218,181,107,176,205,105, 58, 56, 94,231, 16, 4, 65,228,141, 24, 49,194,110,
-154, 55,139, 38, 59,233, 51,207, 85,154, 63,123,246, 44,207,250,124, 71,252, 86,249, 40,207, 13,225,122, 55, 62, 62,158,180,230,
-113,148,246, 13, 6, 67, 9,155, 10, 89,176, 96,241,159, 23, 90,106,181, 58, 55, 54, 54,214,232,224,191, 28,103,231,202,229,242,
- 46,141,125, 3, 6,131,161,199,195,192, 89, 90, 90,218,168,247,110, 52, 26,243,106, 39, 40,117,122, 12,155,196,255,185,103, 4,
- 0,197,197,197,143, 0,128, 82,169,132,171,101,117, 26, 32, 8, 27, 61,125, 26,141,198, 30, 77, 17,167,101,101,101,221,217,148,
-197,130, 5, 11, 86,104, 53, 0,236, 98,196,255, 31,104, 10,209,202,130, 5, 11, 22, 44, 88,176,104, 92,144,108, 20,176, 96,193,
-130, 5, 11, 22, 44, 88, 52, 13, 8,212,140, 28,176,135,134,140, 38, 24,120, 31,215, 78, 98, 57, 89, 78,150,147,229,100, 57, 89,
- 78,150,243, 63,199,233,138,155, 29,205,216,196, 2,140,229,100, 57, 89, 78,150,147,229,100, 57, 89,206,255, 30,231,191, 18,108,
-211, 33, 11, 22, 44, 88,176, 96,193,130, 69, 19,129, 98,163,224, 31, 3, 7, 13,152, 81,223, 21, 24,134,241, 6,224,104,193, 56,
- 29, 65, 16,229,247,193, 73, 0,224,213,110,230,137,142, 12, 0,244, 0,244, 4, 65, 48,174, 57, 62, 34, 11, 10,188,219, 51, 38,
-110, 87,134, 32,184, 52,141, 75,205,155, 55,187, 72, 16, 67,117, 0, 32, 9,140,105, 43,149,136, 6,106,245,186, 8, 1,151,127,
-189, 66,169, 56,162, 45,206,188,195, 38, 15, 22, 44,254, 17, 60, 1, 96, 1,106,186,149, 44, 5,176,139,141, 18, 22, 44,154, 72,
-104, 73,165,210,115, 36, 73,134,185,154,159,199,140,218,181,204,242,202,203,203,187, 52,224,218,163,164, 82,105, 63, 46,151,251,
- 24, 0, 24, 12,134, 20,133, 66,113, 12,192,110, 0,198,251,188, 39, 25,128,209, 0,198,213,254,254,190,182,176,168,186, 79,190,
- 88, 79, 79,207,159,184, 92, 46, 83, 90, 90,218, 13, 0,124,125,125, 79, 27, 12, 6,162,170,170,106, 36,128,203, 13,228, 35,185,
- 92,238,202,110,221,186,245, 62,121,242,228,183, 0,214, 53,210,179, 20,144, 36,105, 87,160,208, 52,221,226, 62, 68, 22, 15,128,
-231,186,117,235,124,183,111,223, 30,159,151,151,215, 1, 0,194,194,194,174,140, 31, 63,254,226,244,233,211,229, 12,195, 84, 18,
- 4,161,119,198, 83, 80,224,221,190,184, 48,107,106, 81,241,245,209, 0, 16, 20,220, 97, 23,135, 67,242, 24,230,124,154,216,111,
-156, 95,171,150, 45, 94,221,249,205, 58, 94,139,136,102, 56,154,122,161,227,244, 55,223,107,159, 15,172, 96,197,214,223, 7, 15,
- 15,143,115, 36, 73,134, 57,203,227,246,242,188,201,100,202, 43, 43, 43,235,226,136,147,162,168, 48,103,229,133,189,125, 52, 77,
-103,149,150,150,218,157,106, 66, 38,147,165, 81, 20, 21,225, 46,151,249,211,104, 52,230, 57, 26,165, 43,147,201,206,113, 56,156,
- 48,103,247,105,239, 63,154,166,179, 74, 74, 74, 28,133,179,222,189, 55, 70, 56,239,135,211, 89, 56,205,229, 17,128, 53,190,190,
-190,143,202,229,242,231, 1,188, 87, 85, 85, 21,199,225,112,224,227,227,243,158, 78,167,251,211,211,211,243,235,202,202,202, 84,
- 0,111, 2, 96,215, 75,101,193,162,177, 32,147,201,138, 20, 10, 5, 99, 6, 77,211,140,193, 96, 96,180, 90, 45,163, 86,171, 25,
-165, 82,201, 40, 20, 10,166,170,170,138,169,172,172,100,228,114, 57,227,239,239,111, 59,121,163,163, 54,220, 14, 50,153, 44,115,
-217,178,101,218,236,236,108, 70,175,215, 51,122,189,158,185,115,231, 14,243,233,167,159,106,101, 50, 89, 38,128, 14, 14,206, 29,
-232,160,176, 24, 4, 96, 71,124,124,188,110,255,254,253,140, 70,163, 97,148, 74, 37,179,107,215, 46,166, 93,187,118, 58, 0, 59,
-106,143, 33,221,228, 4,128,158, 65, 65, 65,121,183,111,223, 54, 29, 57,114, 68,239,233,233,153,228,233,233,153,116,231,206, 29,
-211,237,219,183,105, 63, 63,191, 60, 0, 61, 27, 16, 78, 0,120,246,173,183,222, 42,186,115,231, 14,211,167, 79,159, 75, 86,251,
- 9,184, 94,231,110,160, 61, 39,139, 97,152, 32,134, 97,130, 81, 51,201,101,189,141, 97,152,224,218, 99,188,221,228,148,100,101,
-101, 53, 11, 12, 12, 92, 70, 16,132,206,150,143, 32, 8, 93, 96, 96,224,178,172,172,172,102, 12,195, 72,156,113,230,229,172,127,
-233,192,254, 1, 21,202,242,155,140,178,252, 38,243,237,230,190, 85,175, 76,127,126, 71,112, 84,167, 77, 94, 97,237,215, 93,191,
-121,107, 35,195, 48, 27,143,165,103,110,156,255,229,111, 27,159,158,190,122,131,111,120,252, 43, 13,136,207, 7, 1,203, 9,192,
-203,203,171, 80,169, 84, 50, 12,195, 48, 38,147,137,209,235,245,140, 86,171,101, 84, 42, 21,163, 80, 40,152,234,234,106, 75, 62,
-175,172,172,180,124, 15, 8, 8,112,152,223,189,189,189,139,212,106,117,157,178, 67,167,211, 89,202, 15,149, 74,197,168, 84, 42,
- 70,169, 84, 90, 54,133, 66,193,132,132,132,228, 58, 9,231, 61,115, 56,105,154,102,140, 70, 35,163,215,235, 45,188, 26,141,166,
-206,166,213,106, 25,173, 86,203,132,135,135,187, 29, 78,119, 56, 53, 26, 13, 19, 22, 22, 86,224,136,211,199,199,167, 72,163,209,
-212,225,180,190,127, 91, 94,243,239,160,160,160,194,134,112,186, 19, 78,103,241, 89,139,117, 25, 25, 25,140, 90,173,102, 66, 67,
- 67,229, 35, 71,142, 52,152, 76, 38,102,255,254,253, 76,124,124, 60,221,183,111, 95,125,105,105, 41, 51,105,210, 36,198, 73,165,
-144,205, 71, 44, 39,139,251,113,180, 8,130,128, 68, 34,193, 15, 63,252,224,112, 57, 14,235,239,205,155, 55,119,247,154, 93, 34,
- 34, 34, 78,156, 58,117, 74, 20, 28,252,215,132,216, 58,157, 14,222,222,222,152, 54,109, 26,255,137, 39,158,104, 53,120,240,224,
-211,119,239,222,237, 3,224,156, 11,190,103,252,253,253, 63,159, 55,111, 94,224,115,207, 61, 7, 95,223, 58,147,110, 99,212,168,
- 81, 24, 57,114, 36, 47, 35, 35, 99,204,214,173, 91,199,172, 95,191,190, 80,161, 80, 76, 7,240,179, 51, 82,145, 72, 52, 34, 36,
- 36,100,195,169, 83,167, 2, 2, 2, 2, 16, 25, 25, 73,190,243,206, 59,173,162,163,163, 69, 97, 97, 97,228,189,123,247,240,235,
-175,191,134,142, 29, 59,246,199,162,162,162, 87,245,122,253, 30, 55,238,157,239,235,235,251,222,171,175,190,234, 87, 85, 85,101,
- 60,127,254,124,166,121, 63,159,207, 95,216,189,123,247,174,199,143, 31,255, 14,192,215,247,227,100, 49, 12, 83,133,191,154,248,
-204, 48,152,255,119,199,217, 98, 24,134,127,233,210, 37,159,238,221,187,255,172,213,106, 59, 77,157, 58, 53,103,201,146, 37, 34,
-153, 76, 38, 3, 64, 84, 85, 85,149, 47, 88,176, 64,183,122,245,234,119,219,182,109, 59, 32, 45, 45,237, 25,134, 97, 12,181,130,
-172, 62, 31, 65, 88,194,147,155, 95,130, 19,169, 52,255,195,185,111,135,125,178, 56,226,110,250,181, 92,154, 18,201,176, 47,249,
- 42,138,228, 10,252,150,118, 13, 65,190, 30, 4, 79,192,109,239, 25,218,174, 79,101,254,181,100, 56,153, 33,157, 69,227,128, 32,
- 8,136,197, 98,236,219,183,175,222,210, 85,246,150,181,162, 40, 10, 94, 94, 94, 46, 87, 55, 16, 10,133, 56,114,228,136,221,181,
- 23,237, 45,233,227,233,233, 9,103,149, 13,130, 32, 32, 20, 10,145,146,146, 2,146, 36,237, 46, 13,100,187, 79, 34,145,128,116,
-178,214,149,153, 51, 57, 57,217, 37,151,249, 83, 42,149, 2, 53, 77,255,142, 51,165, 64,128, 83,167, 78, 57,188,103,219,239,210,
-218,245, 94, 93,113,166,164,164,212, 89,250,203,118, 73, 48,235,223, 18,137, 4,132, 11, 82,111,111,239,110, 97, 97, 97, 56,123,
-246, 44,118,239,222,237,211,190,125,123,220,186,117, 11, 4, 65, 96,201,146, 37, 68,187,118,237,184,133,133,133,232,213,171, 23,
-126,249,229,151, 30, 85, 85, 85,108,134, 97,241,143,128, 97, 24, 46,128,142, 0,252, 81,211,237,166, 26,128, 23,106, 86,210,224,
- 3,144, 3, 16,213,110, 90, 0, 10, 0,126,181,167,151,214,150, 45,214, 2,161,196,122,241,105,134, 97,186,214,114,155, 87,168,
-240,183, 58,214,124, 13,219,223,182,159,118,185, 41, 0, 72, 76, 76, 52,191,204,250, 38, 36, 36,156,176,190, 57,119, 68,150,121,
-157, 50, 59,121,218,118,136,166, 64, 34,145,252,116,250,244,105,145,191,255, 95,247,160,213,106, 81, 93, 93, 13,133, 66,129,234,
-234,106,120,120,120, 96,247,238,221,162, 1, 3, 6,252, 84, 93, 93, 29, 93, 27,105,142, 56, 87,221,187,119, 47,208,104, 52,130,
-207,183,223, 69,137, 36, 73,196,196,196,224,189,247,222,195,144, 33, 67,130,250,245,235,183,202, 70,104,213, 27, 74, 42, 22,139,
- 55,156, 63,127, 62, 64, 44, 22, 35, 51, 51, 19,121,121,121,120,235,173,183,154,209, 52,141,220,220, 92,220,186,117, 11,249,249,
-249,216,186,117,107,192, 83, 79, 61,181,193,142,208,178, 55, 60,117,234,204,153, 51,219,120,123,123,147,159,126,250,105,133, 82,
-169,252,162,118,255,135,107,215,174,125,161,119,239,222, 1, 83,166, 76, 97, 82, 82, 82,182,215, 62, 56,135,241,105,221, 39,171,
-182,153, 15,181,137,239,134,205, 57, 49, 86,255,131, 97,152, 32, 0, 90,130, 32, 42,236,112, 18, 0, 60, 7, 15, 30, 60, 75,171,
-213,118, 58,117,234,212,159,143, 61,246, 88, 56,128,123,230,196,231,233,233, 41, 89,181,106, 85, 96, 66, 66, 66, 70,255,254,253,
- 59, 13, 30, 60,120, 86, 73, 73,201, 18,134, 97, 74,172,250,108, 89, 56,105, 26,151,130,130, 59,236, 74, 78,155, 62,250,120,138,
-142,247,246,155,243,115,154, 55,107, 81,121, 41,179,204,116, 45,171, 4,213,106, 35,158,238, 95,179,128,121,183, 14,205,241,249,
- 15,167, 48,109,198,251,220,159,119,109, 27,249, 39, 3,137,162,224,218,126, 39,241,249,160, 96, 57, 97,105, 98, 2,151,203,197,
-208,161, 67, 65, 16, 68,189,181, 60,185, 92, 46,210,210,210,208,191,127,127,112,185, 92,188,248,226,139,110,113, 82, 20,133,193,
-131, 7, 91,214, 81,180,230,179, 21, 13, 14, 52, 65,146, 77, 97, 11,138,162, 64,146,164,195,133,180,109, 57, 93,149, 75,230,112,
- 58,227,178,254,207, 85, 56,107,151, 60,114, 91,100,185,203,105, 14, 39, 69, 81,232,209,163, 7, 46, 94,188,232, 84,116, 57,208,
-151,117,238,189,188,188,124, 66,116,116,116,242,186,117,235,124, 0, 64, 46,151, 91, 22,188,231,112, 56,184,121,243, 38,116, 58,
- 29, 62,250,232, 35,125, 85, 85,213, 20, 54, 31,177,156, 77,201,233, 76,139, 0,232, 61,119,238,220, 46,203,150, 45, 91,210,189,
-123,247,157,169,169,169, 59, 8,130, 72,100, 24, 38,193,252, 57,119,238,220,246,203,150, 45, 91, 50,103,206,156,247,150, 46, 93,
-122,149, 32,136, 68, 0,176,253, 93, 91,150, 36,216,136, 56,127, 51, 79,109,158,171,115,172,189,223,182,159,246,184,235, 56, 90,
- 9, 9, 9, 68,237, 77, 18,214,133,154,187, 66,203,157,181,251, 40,138,122,125,201,146, 37,129,206, 68,150, 66,161, 64, 65, 65,
- 1,194,195,195,241,226,139, 47, 6,174, 91,183,238,117,163,209,248,153, 19, 90, 30,135,195,193,217,179,103, 81, 92, 92,140,216,
-216, 88, 68, 68, 68,212, 57,224,246,237,219, 56,112,224, 0, 42, 42, 42,208,185,115,103,160,166,115,183, 93,196,197,197,125, 20,
- 19, 19, 51,152, 36, 73,163, 72, 36,194,165, 75,151,208,169, 83, 39,252,240,195, 15,104,222,188, 57,196, 98, 49, 50, 50, 50, 16,
- 27, 27,139, 19, 39, 78,192,223,223, 31,241,241,241,198,170,170,170,147,101,101,101,199,238,222,189,251,145,163,112,134,134,134,
-206,127,229,149, 87,248, 5, 5, 5,244,150, 45, 91, 78, 1, 56, 5,224,245,247,223,127,127,242,144, 33, 67, 2, 46, 92,184, 80,
-153,158,158,126,198,129,200,114,199,201, 50,218,190,148, 76, 38,147, 86,173, 86,235,180, 90,173,129, 36,201, 59, 4, 65,232, 76,
- 38, 83,180, 35, 19, 98,226,196,137, 81,165,165,165,211,102,204,152,145, 93, 43,178,110,162,166, 3, 60, 0,192,104, 52,106, 21,
- 10, 69, 85,247,238,221,195,199,142, 29,251,231,142, 29, 59,166, 77,156, 56,113,247,150, 45, 91, 20, 0,212,182,132,205,155, 55,
-187,200,225,144, 60,101,181, 79,214,143,187,191,158,121, 96,239,235,205,114,115,243, 91,249,250,249, 43,121, 82,255,130,221,223,
-111, 62, 7, 64, 87, 80, 82,133,203,183, 11,193,229,114,112, 61,183, 18,189, 31, 31,197,253, 51,115,113, 79, 0,251,217,186, 92,
-211, 87, 22,205,139, 80, 31, 63,126,220,169,163,149,150,150, 6, 46,151, 11,145, 72,132,213,171, 87, 59, 37, 53, 11, 3,179, 91,
-228, 74,204,152, 23, 71,119,230, 62,209, 52,109, 89,232,221,118,251,226,139, 47, 48, 99,198,140, 58,215,168, 21, 27,132, 43, 78,
- 71,225, 11,111,209, 2,197, 69, 69,117,246,185,179, 40,189,201,100, 2,151,203,197,166, 77,155,144,144,144,128,196,196, 68,167,
-159, 67,135, 14, 5, 73,146,140, 59,241,217,163, 71, 15,232,245,122, 75,152,111,222,188,105,151,119,253,250,245,174,130,249, 4,
-128, 5,157, 58,117,146,245,235,215, 15,201,201,201, 24, 57,114,164, 86,175,215,103, 2,192,240,225,195, 91,175, 91,183,142,127,
-254,252,121,248,250,250,114,115,114,114,190, 5,219, 65,158, 69, 19,195,158, 22, 49,191,243,150, 45, 91,182,196, 86,196, 88,195,
-252, 63, 65, 16,137, 75,151, 46, 77,176, 22, 69,214,191,205,174,147,141,136,107,111,237, 72, 89,139, 40, 71, 2,202,230,125,107,
-125,124,137, 93,161, 85,123, 99,125,173, 93, 32,115,225,235, 74,100, 57,169, 57,214,129,167,167,231,176,167,159,126,218, 34,114,
- 52, 26,141, 69, 96,153, 69,150,249,119, 70, 70, 6,186,116,233,194,243,244,244, 28, 38,151,203, 63,115, 67,196, 33, 36, 36, 4,
-165,165,165,184,114,229, 10,194,195,195, 97, 48, 24,112,232,208, 33, 84, 86, 86,130,203,229,130,199,227, 65,175,119,218,119, 27,
- 49, 49, 49, 67,183,111,223,222,101,219,182,109,229,230, 26,221,247,223,127, 15,134, 97,224,239,239, 15,149, 74,133,162,162, 34,
- 28, 59,118, 12, 70,163, 17, 82,169, 20,145,145,145,252, 17, 35, 70,244, 92,176, 96, 1,215,137,208,234, 49,114,228, 72, 79,153,
- 76,134, 55,223,124,147,209,235,245, 75,107,247,205,159, 62,125,186,239,157, 59,119,116, 47,189,244,210, 89,189, 94,255,169,217,
- 76,180, 22, 56, 14, 30,172, 67, 39,203, 96, 48,152,227, 52, 91,161, 80,192,207,207, 47,220,218,217,114, 36, 6, 83, 82, 82,122,
- 0,224, 44, 92,184, 80, 8,160,200, 58, 12, 58,157, 14, 10,133, 2, 74,165,210, 80, 89, 89, 89, 60,123,246,108,227,142, 29, 59,
- 56,181,231, 92,183, 39,180, 8, 98,168, 78, 38, 19,243, 25,134,243,254,198,141, 27,165, 67,134, 12, 33,165, 82, 41,170,171,171,
-101,191, 29, 60, 40, 29,208,175,103,228,146,101,159, 28,150,133,197, 22,165, 92,202, 66,126, 97, 37,116, 6, 3, 34,131, 61,107,
-252, 48, 22, 77,142,218,129, 44, 22, 71,203, 90, 84, 36, 39, 39,227,241,199, 31,183,228,117, 30,143, 87,199,249,114,197, 73, 81,
- 20, 30,127,252,241,122, 14,207,241,227,199,237,186, 79,174, 96, 45,138,108,197,145, 61, 1, 70,146,164,203, 5,214,205,110,158,
- 61,177,101,237,234,219,136, 55, 87,205, 28,160, 40, 10,211,167, 79, 7,151,203,197, 59,239,188, 3,138,162, 16, 31, 31, 15,138,
-162,208,189,123,119,112,185, 92,244,239,223,191,193,247,126,250,244,105,116,234,212,201, 18,166,248,248,120,116,237,218, 21, 20,
- 69,161, 87,175, 94,224,114,185, 24, 60,120,176, 59,156,239, 85, 87, 87,199, 73, 50, 7, 8,223, 0, 0, 32, 0, 73, 68, 65, 84,
-165, 82,100,100,100,128,195,225,128, 32,136, 91, 0,226, 0, 32, 56, 56,248, 79,149, 74, 21,165,209,104,240,202, 43,175, 16, 58,
-157, 46,246,157,119,222,121, 95,163,209,176, 66,139, 69,147,193, 86,139, 88, 65, 61,103,206,156,247, 8,130, 72, 52, 59, 84,182,
-206,147,189,223,118,202, 38,179, 3,149, 94,155, 87,187,218,136,184, 18,130, 32,210, 25,134, 25,238,232, 92, 0, 58, 27, 97, 85,
-167,233,208,186,217,208,165,163,101, 46,124,221, 21, 90,174,160,209,104, 58, 6, 4, 4, 56, 20, 89,214,159, 58,157, 14, 17, 17,
- 17,208,104, 52, 29, 27,250,210, 8, 14, 14,134, 94,175,199,215, 95,127, 13, 30,143, 7, 30,239, 47,125,161,211, 57, 55,139,174,
- 93,187,150,125,250,244,233, 78,157, 59,119,246,254,229,151, 95, 74,250,244,233,227, 63,100,200, 16,136, 68, 34,168,213,106, 24,
- 12, 6,116,235,214, 13, 49, 49, 49,200,203,203,195,111,191,253, 86, 26, 29, 29,237,119,230,204, 25,186,176,176,240,174, 19,234,
- 65, 3, 6, 12, 0, 65, 16, 56,120,240, 96, 41,128,116,129, 64,112, 96,241,226,197,222, 58,157,142, 30, 63,126,124, 78, 89, 89,
-217, 12, 0,122, 62,159,191,182, 79,159, 62,221,147,146,146,190,163,105,122,117, 67, 19,170,109,220, 42,149, 74, 8,133, 66,119,
-166,146,224,150,149,149,117, 0, 0,137, 68,226, 3,224, 79, 75, 10, 87,171,235,136, 97,157, 78,167,241,241,241,145, 0, 64,237,
- 57, 92, 7,156,254, 70, 35,126,188,123, 55,203,195,186,255,156,151,151, 23,198,141, 29, 75, 62,214,163, 7, 63,174, 99,199,193,
- 31,172,216,246, 67,136,175, 76, 23, 25,226, 11,131,201,128,164,195,135,104,134, 54, 28,102,139,157,191, 71,104,153,197,134,173,
-163,197,229,114,113,226,196,137,122,251,120, 60, 30,190,250,234, 43,183,132,129, 89, 84, 57,106, 58,179,105,234, 34, 92, 9, 24,
- 46,151, 11, 14,135,131, 77,155, 54,129,166,105,204,156, 57,179, 78,115,162, 53,191, 91,118,158,149, 8,140,153, 79, 3,208, 33,
-111,165,192,114,190,109,120,107,207,113,203, 37, 91,183,110,157, 91,142,214,240,225,195, 93, 10, 87,235, 22, 6,235,112, 93,188,
-120,209, 46,239,198,141, 27, 93,198,167,201,100,194,254,253,251, 45, 34,213,140, 15, 62,248,224, 21, 62,159, 31,120,242,228, 73,
- 20, 22, 22, 66,169, 84, 66,161, 80,160, 91,183,110,145, 36, 73, 94, 42, 44, 44,188,115,253,250,245,167,217,220,195,226,111,116,
-180,180, 75,151, 46,189,186,116,233, 82,187,142,149,173,179,228,204,121, 50, 11,172, 90, 65,228,111, 22,111,168,233, 86,147,238,
-234, 92, 0,124,219,166, 67,167, 70,144,141,138, 92, 96,175,240,117,167,249,208, 77, 59,157, 34, 8, 2, 26,141,198,174,192,178,
- 22, 7,122,189, 30,101,101,101, 48,153, 76,247, 61,215,151,189,154,172, 43,161,117,229,202,149, 73,147, 39, 79, 46,240,244,244,
-140, 43, 41, 41, 41,166,105,186,127, 90, 90,154, 63, 69, 81,144,201,100,144,201,100, 56,112,224, 0,196, 98, 49,166, 79,159, 94,
-108, 50,153,146, 61, 60, 60,124,213,106,245, 31,133,133,133, 31, 56, 84, 48, 92,238,224, 94,189,122,225,252,249,243, 40, 47, 47,
- 63, 2, 32,254,249,231,159,127,188, 89,179,102,196,226,197,139, 53,183,111,223, 94, 13,160, 88, 34,145,108,223,190,125,123,191,
-206,157, 59,123,140, 31, 63, 30, 39, 78,156,216, 8, 64,227,238, 61, 43,149,202, 58, 2,171,170,170, 10,213,213,213,144, 72, 36,
- 70, 55,227,140,139,191, 70, 24,130, 97, 24,203,179,169,117,179,204,207,135,161, 40,202, 60,170,209,145,200,130, 68, 34, 89,184,
-109,219, 54,145,237, 32, 5,147,201,132,162,162, 34,200,100, 50,204,251,224, 3,222,199,111, 77,233,196,145, 6,166,145, 36, 1,
-157,158,169, 96,104,221, 33,101,209,115, 39,129,143,216,146,231,111,128, 89, 24, 60,249,228,147,245,154, 11,121, 60, 30,142, 28,
- 57,130,167,158,122,202, 82,113,233,220,185,179,203,202,149, 89, 24, 60,241,196, 19, 22,103,232,208,161, 67,118,155,253,204,142,
-148, 59,130,208,124,236, 27,111,188, 1,138,162,240,249,231,159, 99,214,172, 89, 32, 73, 18, 43, 87,174, 4, 73,146,248,240,195,
- 15,221, 22,153,214, 2,230,206, 39, 53,159, 97,179,170, 32, 95, 31, 8, 0,240,144,201,204, 55,212,160,178,135,162, 40,139,147,
-213,177, 99, 71,112,185, 92,116,239,222, 29, 20, 69, 89,156,172, 97,195,134, 89,199, 35,227, 14, 39, 69, 81,200,204,204,180,132,
-185,123,247,238,117,156, 44,138,162, 48,124,248,112,119,130,185,196,203,203,107, 65, 76, 76, 76,219, 85,171, 86,113, 57, 28, 14,
- 6, 12, 24,208, 58, 40, 40,232,174,209,104,244, 93,184,112,161,216,206, 57, 34, 0,113,109,219,182,149,176,185,134, 69, 19, 58,
- 90, 11,236,252,229,109,221,231,170, 1, 21,201, 68,235,227,205, 28,182,226,168,214, 33, 75,118,197,101,239, 92, 87,160,204, 10,
-210,153,165,238,142,208,170,181,157,157, 94, 76, 44, 22, 95, 46, 46, 46,238, 46, 18,137,234,136, 44,123,130,139,195,225,160,176,
-176, 16, 98,177,248,178, 86,171,109,180,135,232,170,233, 16,128,230,214,173, 91,111, 89,253, 30, 56,108,216,176, 45, 71,142, 28,
- 9, 78, 74, 74,194,153, 51,103,224,239,239,143,117,235,214,221, 43, 42, 42,154, 4,224, 72,105,105,169,203,235, 70, 69, 69,117,
-144, 74,165, 72, 73, 73, 1,128, 19, 0,166, 76,155, 54,141, 48, 24, 12, 88,191,126,189, 18,192, 65, 47, 47,175,253,187,119,239,
-238, 20, 23, 23,199, 79, 74, 74,170, 58,115,230,204,239,110,138, 44, 19, 77,211,245, 4,150,117,156,122,120,120,184,227,104, 25,
- 60, 61, 61,175, 84, 85, 85,141, 82,171,213, 85, 2,129,192,163,170,170, 74,107, 45,176,204,252, 20, 69,113, 51, 51, 51, 11, 0,
- 68,122,122,122, 94,129,131,102, 78,138,162, 6, 12, 24, 48,128,178,125, 6, 69, 69, 69, 40, 44, 44,132, 94,175, 71,231,206,157,
- 9, 14, 97,224,148,231, 94,182,153,214,129, 21, 89,127,147,163,197,152,243,186,121,148,160,189,145,134,135, 14, 29,178,252, 38,
- 73, 18,155, 55,111,118, 75, 20, 29, 57,114,196,105,135,117,155,166, 67,151,214,184,249,248, 47,191,252, 18, 12,195, 88,156, 44,
-146, 36, 49,103,206, 28, 8, 4, 2, 44, 94,188, 24,115,230,204, 1, 69, 81, 46,155, 14,173, 5, 76,139,119, 84,214,149,163,154,
- 76, 81,219, 31,138, 32, 8,107,177, 69,184, 43,222,156,185,121,238,180, 4, 88,115,154,207, 19, 10,133, 14, 59,194,219,112, 58,
-187,192, 62, 0, 89,193,193,193, 41,221,187,119,247, 60,119,238, 28, 86,174, 92,201,211,106,181,205,147,146,146, 44,215,181, 23,
- 95, 74,165, 82,196,230, 28, 22, 77,225,102, 57,249,187,196,166,127, 21, 97,221,140,231,228,211,246,120, 88,237,179,230, 45, 33,
- 8,194, 96,231,122, 37,118,196,149,237, 53,172,143, 41,113,232,104,185, 42, 44, 92, 9, 46,119, 28, 45,149, 74,245,251,193,131,
- 7,187,142, 29, 59,150,114,214,108,168, 84, 42, 17, 24, 24,136,171, 87,175, 26, 85, 42,213,239,110, 56,101,141, 41,180,108,145,
- 84, 92, 92,204, 49, 24, 12,104,213,170, 21, 66, 67, 67,161,209,104, 80, 81, 81,193, 1,112,196, 77, 14,158, 68, 34,225, 0, 64,
- 69, 69, 5, 80, 51,212,180,117,116,116, 52,206,159, 63,143,178,178,178,159, 1, 12, 89,176, 96, 65,231,110,221,186,241,126,248,
-225, 7,213,212,169, 83,127, 54, 24, 12,110, 41, 13,154,166,117, 70,163, 49,130, 36, 73,125, 69, 69, 69,190,117,124, 6, 6, 6,
-250, 72, 36, 18,162,168,168,200,224,142,208,138,139,139, 59,155,147,147,131,133, 11, 23,150, 44, 89,178, 36,186,186,186,186,188,
-178,178,210,104, 45,182, 52, 26, 13,233,231,231, 39, 88,191,126,189, 8, 0,226,226,226,206, 58, 18, 90, 74,165,178,153, 88,252,
- 87,197, 88,171,213,162,176,176, 16,133,133,133, 40, 42, 42, 66,117,117, 53, 34, 35, 35,161, 82,169,194,217, 98,230, 31, 19, 90,
-117,154,207,172,243,183,245,139,188, 33,121,221, 90,192, 60,249,228,147,150,190, 93,102,135,204,188,253,248,227,143,182, 29,204,
-221, 18, 90, 95,126,249, 37,222,120,227, 13, 8,133, 66,172, 90,181,170, 78,211,161,173, 56,160,105,154,112,231,222, 35,222, 85,
-163,112,173, 15,184, 92, 46,124,167, 22,213,105,162,179, 35, 56,220, 10,231,146, 37, 75, 26,165,233,208,154, 51, 60,188, 38,171,
-108,218,180, 9,163, 70,141,194,201,147, 39,239,187,233,176,125,251,246,223, 39, 38, 38,122, 94,187,118, 13, 85, 85, 85, 40, 41,
- 41,129, 86,171, 69, 94, 94,158,195, 86,129,218,178, 92,200,230, 28, 22,127,115, 57,149,254,119,242, 54,230,245, 40, 23, 47,112,
-183,133,150, 59,142,150, 86,171, 93,245,230,155,111, 78, 27, 56,112,160,143,135,135, 7, 10, 10, 10,234,137, 44,133, 66, 1,169,
- 84, 10,181, 90,141,189,123,247, 86,105,181,218, 85,174,196,129,193, 96, 64, 64, 64, 0, 74, 75, 75, 65, 59,232, 63, 77,146, 36,
- 68, 34, 17, 20, 10, 5,224,162,147,185,189, 23,134, 94,175,135,193, 96,128,193, 96,128, 94,175,119, 89, 75,182, 53,243, 36, 18,
-137, 89,120, 0,128, 50, 36, 36,164,149, 80, 40, 68,118,118, 54, 80, 51,178,111,224,227,143, 63,206,149,203,229,204, 75, 47,189,
-116,138, 97,152, 87,224,124,118,124, 93,114,114,114, 4, 0,136, 68,162, 12, 0,200,203,203, 51, 84, 84, 84,212,113, 10,197, 98,
- 49,243,212, 83, 79, 5, 51, 12,131,228,228,228, 8, 30,143,199,192,241,168, 70,205,158, 61,123,174,121,122,122,238, 88,182,108,
-217,216,132,132,132,171, 29, 58,116,136, 80, 42,149,197,106,181, 90,173,209,104, 24, 14,135,195,243,246,246, 22, 30, 62,124,248,
-207,180,180,180,129, 50,153,108,199,158, 61,123,174, 57,114,222, 36, 18, 73,158, 74,165,106, 97,126,166,214, 34,171,176,176, 16,
- 12,195, 32, 43, 43, 11, 98,177, 56,199, 85,179, 46,139,166,131,185, 82,101,235,188,216,238,115, 87,100, 89, 11,131,195,135, 15,
- 59,157, 67,203, 93, 78,107, 81, 52,107,214, 44,172, 93,187,182,158,163,181,120,241, 98, 0,192, 7, 31,124,224,118, 31, 45,179,
-123, 85,184,214, 7, 65,111,148,213, 9, 59, 0, 16,230,240, 53, 44,207,131,162, 40, 44, 92,184,176, 94, 39,117,235,166, 61, 55,
-155,248,234,132,179,184,184, 24, 20, 69,193,199,199, 7,227,198,141,195,224,193,131, 45, 77,144, 13,229,189,113,227, 70,202,187,
-239,190, 27,219,190,125,123, 44, 90,180,168,204,203,203,203,227,229,151, 95,166, 42, 42, 42, 8,103,142, 22, 43,180, 88,176,104,
- 4,161,101,206, 96,238,142, 58,116, 80, 88, 14, 68,221,185, 54, 42, 85, 42,213,184, 65,131, 6,253,178,107,215, 46, 81, 84, 84,
- 20,110,220,184,129,178,178, 50,232,116, 58,240,120, 60, 4, 7, 7,163,162,162, 2,155, 55,111, 86,171, 84,170,113, 0, 42, 93,
-112,190,223,165, 75,151, 13,159,125,246,153, 48, 62, 62, 30,101,101,101, 80, 40, 20, 22, 33, 68, 16, 4,100, 50, 25, 68, 34, 17,
-206,158, 61,139, 67,135, 14,169, 1,188,239,130,211,158,154,131, 94,175,183, 8, 46, 55,132,150, 53,167,196,236,234,168, 84, 42,
- 0, 48, 52,107,214, 44, 8, 0,178,178,178, 0,224, 78,100,100,228,130,168,168, 40, 98,251,246,237, 12,195, 48,135, 28,136, 44,
- 11, 39, 65, 16,101, 12,195,148, 3, 8,210,233,116, 60, 0,168,172,172,212,251,249,249, 5, 8, 4, 2, 90, 36, 18,209, 66,161,
-144, 46, 40, 40, 48, 26,141, 70, 30, 0,244,234,213, 75, 7,160,208,102,141, 66,107, 78,154, 97,152,170,141, 27, 55, 46, 24, 63,
-126,124,247, 30, 61,122,180,127,237,181,215,174,188,244,210, 75,100,104,104,168,119,117,117,181,230,214,173, 91,229, 43, 86,172,
-168, 62,125,250,244, 64, 46,151,123,119,227,198,141, 11, 0, 84, 17, 4, 65,219,227, 52, 26,141,191, 39, 37, 37, 77, 74, 72, 72,
-160,242,243,243, 81, 84, 84,100, 17, 89, 69, 69, 69,136,137,137, 65, 90, 90,154, 73,175,215, 39, 53, 32, 62, 27, 11, 44,103, 77,
- 37,132, 49,231,117, 71, 2,203, 92,153,114,151,211, 90, 20,141, 26, 53,170,142,139,197,227,241,240,211, 79, 63,217, 45, 55,236,
-228,171, 58,247,110, 61,199,215,187,239,190, 91, 71,180,205,155, 55,207, 97,113,230, 42, 62,205, 60,149,155, 66,235,142, 58,116,
-144,207,157,133,211, 92,118,114,185, 92,204,155, 55,207,109, 71, 11,245,251,104,213,227, 52,223,123,159, 62,125,160, 82,169, 44,
- 66,214,145,163,229, 42, 62, 77, 38,211, 27,107,215,174,101,100, 50,217,163, 85, 85, 85,207,231,228,228,108, 85,169, 84,143, 84,
- 86, 86, 58,117,180,180, 90,173,128,205, 71, 44, 39,154,102,126,174,255,142,208,170,125, 73,162, 89,179,102,117,214,206, 34, 73,
-178,206,214,144,126, 6,181, 56,156,153,153,249,204, 99,143, 61,246,221, 27,111,188,225, 17, 31, 31,207,109,209,162, 5,148, 74,
- 37,178,179,179,113,245,234, 85,227,158, 61,123,170, 84, 42,213,243, 0,220, 25,117,182,237,218,181,107,135,134, 12, 25,242, 97,
-183,110,221, 94,157, 63,127, 62,167,117,235,214,168,172,172,132,183,183, 55, 2, 2, 2,112,243,230, 77,236,221,187,215, 84, 90,
- 90,186, 1,192,199,176,211,134,234,170,194,175,215,235, 49,102,204, 24,208, 52,141,213,171, 87,195,157, 5,149,173,160,215,235,
-245, 12, 0,162,182, 63,151,170,118,118,105,220,186,117, 11, 0,238, 70, 68, 68,120, 0, 64, 82, 82, 18,129,154,249,181,220,169,
-225, 51, 12,195, 88,156,173,152,152,152,108,219,194,209,236,100,153, 93, 48, 87,225, 38, 8, 66,195, 48, 76,177, 74,165, 26, 50,
-107,214,172, 15,191,252,242,203,177, 95,126,249,101,189,227,100, 50,217,142,149, 43, 87,126, 60,122,244,232, 98,130, 32, 28,246,
- 35, 83, 42,149, 31, 76,152, 48, 97,244,229,203,151, 61,132, 66, 33,148, 74, 37,228,114, 57,244,122, 61, 34, 35, 35, 81, 92, 92,
-140,109,219,182, 85,171,213,234,143,216,236,248,207,192, 90, 24, 56,114,181,220, 16, 89, 14, 93,157,125,251,246,217,157,163,170,
-161,156,182, 98,195,221,185,173,156, 85,138,204,211,210,216,155, 50,162,129,229, 90, 61, 94,138,162,240,233,167,159, 90, 38,109,
-181,231,100, 53,196,209, 50,115,250,248,248,212,216,228, 98, 49,104,154,198,240,225,195, 31,132,151, 6, 48,221,106,198,247, 37,
-179,103,207, 94, 16, 19, 19,211, 26,128,192, 58, 14, 26,232,226,179, 96,193,194,149,208, 50,153, 76,121,109,218,180,169, 83,192,
-185, 90,204,212, 96, 48,228,185,121,221, 67, 74,165, 50,114,229,202,149,111, 74, 36,146,129, 42,149, 42,182,182,224,184,172, 84,
- 42,147,180, 90,237, 26, 52,108, 17,232, 18, 0,175,159, 62,125,122,245,144, 33, 67, 22,247,239,223,255,217,183,222,122,139, 96,
- 24, 6,235,215,175,103,110,223,190,253, 99,173,139,117,251,126, 34,201,199,199,231,218,230,205,155, 3,127,249,229, 23, 24, 12,
- 6,172, 89,179, 6, 30, 30, 30,215,202,202,202,220,165, 40, 62,122,244,232,150, 30, 61,122,188,144,150,150,182, 13,192, 31, 39,
- 78,156,216,218,179,103,207, 9,105,105,105,223, 3,184,122,236,216,177,173,221,186,117,155,144,158,158,190, 27,192,197, 6, 20,
-190, 22,103,203,104,180,223,210,232,192,201,114,198, 89,197, 48,140,126,242,228,201,111,141, 30, 61,250,235,244,244,244, 71, 42,
- 42, 42, 98, 1,192,203,203,235,114,215,174, 93,207,238,218,181,235,102,173,147,229,170,179,126,137, 82,169,124, 42, 54, 54,246,
-231, 69,139, 22, 73,218,183,111, 79,181,106,213, 10,119,238,220,193,149, 43, 87,140,223,126,251,173, 66,173, 86, 63, 9,160,156,
-205,142,255,156,208, 98, 24, 6, 94, 94, 94,117, 42, 81,230, 33,255, 13,109, 46,180,126, 49,155,151,234,177,229,117,196,233,108,
-218, 4, 51,164, 82,169,101,114, 83,119,186, 44,208,180,243,249,216, 24,134,177,112,154, 55, 55, 68,150,203, 17,130,181, 75,224,
-184,205,233,206,244, 14, 18,137, 4, 6,131,193,194,235,198,200,207,134,170,197,125, 0,246, 25, 12,134, 91, 0, 90,178,226,138,
- 5,139, 38, 20, 90,229,229,229, 93,154,248,218, 85, 90,173,246, 99,173, 86,251,177,121,135, 70,163,121, 80,206,219, 0, 70, 31,
- 61,122,244,179,163, 71,143,154,219, 17, 22,194,245,122,137, 78,113,227,198,141, 4, 46,151,251,213,142, 29, 59,186, 49, 12, 3,
- 79, 79,207,211,119,238,220,121,185, 33, 28, 38,147,105,114, 90, 90,218, 52,212,246,101,210,235,245,147, 83, 82, 82,222, 68,205,
-122, 76, 48,153, 76,147,207,156, 57, 99,249,221,192, 23, 37,195, 48,140,150, 97,152, 16, 7,135,104, 27,232,192,153,157, 45,221,
-174, 93,187, 20, 0, 46,225,175,121,178, 12,181,155,198,166,185,208, 25,142, 41,149,202, 86,243,230,205, 91,194,225,112, 6, 40,
-149,202, 80,137, 68,146,107, 52, 26,127, 87,169, 84,239,163,102,141, 42, 22,255, 16,116, 58, 93,126,155, 54,109, 40,123, 21, 40,
-103, 47,114,103, 21, 43,147,201,148, 23, 29, 29,237,178,114,102,135, 51,223,137,104,184, 27, 25, 25, 73,186,203,101,134, 94,175,
- 47,118, 22,206,200,200, 72, 52,148,211,213,189, 71, 68, 68,216,189,119, 23,130,208,225,189, 27,141,198,251,226,116, 22,159,206,
-160, 86,171,203,253,253,253, 21, 26,141,134,171,213,106,185, 70,163,177,142,253, 40, 18,137, 74,212,106, 53,155,121, 88,176,120,
- 16,161,245,144,227, 28,106,150,151,104, 44,104, 47, 95,190,252,130,197,158, 42, 46,190, 95, 30, 91, 37,169,112,241,187, 33,194,
-168,209, 29,161, 90, 33,165,106, 36,186, 82,133, 66,241,146,249,135,185, 15, 8,139,127, 30,114,185,252,209,198,230, 44, 43, 43,
-107,244,138, 90,105,105,105,247, 38,184,247, 46,255, 85, 78,103, 40, 40, 40,120,212,133, 16, 99, 51, 14, 11, 22,110,130,100,163,
-128, 5, 11, 22, 44, 88,176, 96,193,162,105, 64,160,102,228,128, 61, 52,100, 52,193,192,251,184,118, 18,203,201,114,178,156, 44,
- 39,203,201,114,178,156,255, 57, 78, 87,220,236,104,198, 38, 22, 96, 44,231,255, 63, 39, 7, 0, 33, 18,137, 8,161, 80, 72,136,
-197, 98,130,141, 79,150,147,229,100, 57, 89, 78,150,147, 69,125,252,227,125,180,252,253,253,147, 41,138,138, 86, 42,149,202,234,
-234,234, 40, 15, 15,143,219, 18,137, 68, 98, 52, 26, 51, 75, 74, 74,122, 63, 32,253,100,129, 64, 48, 51, 46, 46,174,221,205,155,
- 55, 51,170,170,170, 86, 0,248, 6,246, 71, 12,113,109,246, 19, 0,226,155, 55,111,190, 85, 40, 20,138, 51, 50, 50,230, 0,248,
-222,141,120, 36,224, 98, 68,146, 53,188, 37, 60, 46,106,250,147,245, 5,112, 28,192,190,114,165,222,240, 32, 55,125,191,156, 82,
-169,212,167,101,203,150,235, 35, 34, 35, 35, 25, 64,203, 48, 53,243, 15, 25, 13,122,222,213, 43, 87,146,239,220,185,179,161,127,
-255,254, 95,135,133,133, 5,114,185, 92,131,121,212,151, 74,165,226,109,219,182,173, 21,155,157, 88,176, 96,193,130, 5, 11, 55,
-133,150,164, 57,218,240, 37,196, 54,147, 1,106,163,150,153,170,204,197, 13,105, 51,244, 96,128, 23, 24, 32,130,228,144,254, 38,
- 19, 93, 72,107, 8, 35,215, 32,138, 38, 25, 74, 88, 85, 85, 21,218,224, 0, 80, 84,116, 65, 65, 65, 64, 72, 72,136,121,241, 99,
-137,249,247, 3,128, 0,240,197, 43,175,188, 50,245,213, 87, 95,133,183,183, 55, 12, 6, 67,235,157, 59,119,110,154, 55,111, 94,
-119, 0, 47,218, 17, 67, 12,234, 78, 18,218, 58, 54, 54,118,127,106,106,170,111, 69, 69, 5, 58,119,238,188,162,184,184,216,145,
-208, 50, 54, 52,128,222, 18, 94, 27, 0, 47, 6,121, 9, 38,125, 51,171,191,119,139, 1,175,225,202,143, 11,166, 77,255,230,114,
- 57,128,205, 0,190, 41, 87,234,111,254, 93,156, 30, 30, 30, 1,109,162,163,119,253,248,243,207,189, 79, 31, 59, 6, 31, 1, 31,
- 18, 17, 31, 96,128,192, 86,109,240,218,236,217,198, 71, 30,121,164,223,119,223,125, 23,151,158,158,142,208,208, 80,136, 68, 34,
-136,197, 98,200,229,114,108,219,182,237,190,211, 17, 77,211,247, 0, 28, 37,141,216,167, 40,192, 45, 54, 91,178, 96,193,130, 5,
-139,127,189,208, 98,104,172, 88,125, 96,114,231, 43,101,191,225,139,103, 10,151,138,194, 96,236, 49, 34,250,233,132,137,157,224,
-233, 47,134, 80, 74,161, 66, 94,213,225,230,133, 92, 28,223,253, 39,188, 13,173,145,246,251,249,235, 42,149,170,237,253, 4, 68,
- 44, 22,139,131,131,131,139,196,214, 11,227,221, 31,132, 0, 86,188,250,234,171, 83,223,121,231, 29,252,254,251,239,216,179,103,
- 15,198,143, 31,143, 25, 51,102, 64, 42,149, 78,154, 49, 99, 70, 26,128,175,157,112,180,142,141,141, 61,149,154,154,234,171, 86,
-171,113,229,202, 21,148,149,149,253,209, 88,145,238, 45,225, 45, 91,255,114,220,187,221,158,158, 14,255,246,131, 64,144, 53,143,
-161,215,236,189,184,248,166,218, 59, 47,229,187,183,246,252,248,253, 91,203,247,220, 90, 94,174,212,207,249, 59, 56,163,162,162,
-214,237,250,233,167,222, 97, 97, 97,216,159,125, 27, 45, 35,130,209,172, 77, 39, 84,102,223, 70,201,221, 44,232,244,122,244,237,
-219, 55,238,212,169, 83, 40, 40, 40,128,159,159, 31, 52, 26, 13,210,211,211, 33, 20, 58, 94,141,163, 1,233,104,200,177, 93,183,
-150,223, 58, 95,178, 76,153,131, 15, 1,152,216,236,249,175, 65,235,102,205,154,253, 44, 18,137,100, 25, 25, 25, 31, 0,216,210,
-132,215, 26,215,173, 91,183, 53,151, 46, 93,186,160,213,106,223, 4,144,193, 70, 63, 11, 22, 44,254, 73, 56, 27,117, 24,236,239,
-239, 7,191, 72, 46,188,125, 36, 67,151,255,244,252,211,175, 45, 29, 0, 94, 84, 62,202,164,103,112,151,249, 29, 26,223,155,104,
- 51,132,135,183,191,233, 7,223,238,114,192, 71, 85,128,112, 8, 28, 17,250,248,248,252, 28, 16, 16,144,106,189, 25,141, 70,225,
-156, 57,115, 76, 25, 25, 25,146,130,130,130,128,140,140, 12,201,156, 57,115, 76, 70,163, 81,232, 31,232,115,193,163, 57, 47, 47,
-162,183,168, 68,210, 28,175,187,112,176, 62, 11, 10, 10, 82,141, 29, 59, 86,221,161, 67,135,169, 12,195, 96,235,214,173,120,249,
-229,151,119,254,246,219,111, 17, 99,198,140,217,122,244,232, 81, 76,153, 50, 5, 94, 94, 94, 51,220, 21, 89, 23, 46, 92,192,132,
- 9, 19, 74,140, 70,227,140, 70,140,247,137,163, 86,156, 65,200, 35,207,130,195, 19, 89,214, 82, 35, 72, 18, 92,145, 12, 97,143,
- 61,143, 87, 22,127, 7, 0, 19,255, 46,206,200,168,168,150,231,146,147,241,237,194, 69,104, 29, 16,128,208,102,161,240,105,211,
- 1, 30,254,126,160, 40, 10, 12, 3,134,207,231,211,229,229,229,144,203,229,144,203,229,200,206,206,198,241,227,199,113,239,222,
- 61, 52, 70, 58,154,253,109,127, 50,225,181,182,239,137,155,225,160,179,116,196,226,225, 18, 89,177,177,177,167,110,220,184, 17,
-147,148,148, 20, 18, 26, 26,250, 73, 83, 94,172, 75,151, 46,203, 79,158, 60,233,115,240,224,193, 65, 65, 65, 65,201, 0, 90,223,
- 79,152,155, 55,111,126,189,117,235,214,121, 0,198, 53,114, 16, 39,118,239,222,189,140,207,231, 31,186,207,176,177, 96,241, 48,
-161, 3,128, 88, 86,104,185,129,197, 59,199, 82, 62,109,181,184, 82,126, 0,187, 62,249, 3,159, 12,189, 73, 47,238,158, 77,127,
-254,194, 13, 28,222,245, 7,138,241, 7,134,189,214, 18, 99, 63,232, 56, 80,108,194, 34,153, 76,118,193, 30, 15,143,199, 11,204,
-200,200,240,205,202,202,242,189,125,251,182,111,102,102,166,239,181,107,215,138, 42, 42, 42, 20,195,135, 15,167, 1, 96,248,240,
-225,244,221,156,187,170, 65, 79,247,161,195, 7,160,227,172,159,218,133,206, 73,236,228,231, 29, 44,152,235,232, 30, 56, 28,206,
-158, 47,191,252,242,173,220,220, 92,209,247,223,127,143,244,244,116, 68, 69, 69, 97,209,162,133,229, 35,122,180,237,245, 72,148,
-239, 42, 79, 17,247,179, 45, 91,182, 64, 44, 22,163, 99,199,142,142, 92,183, 22, 29, 58,116, 72, 49,139,172,139, 23, 47,226,249,
-231,159,215,203,229,242,171, 0,150, 1,216, 67,145, 68,178,191,167,164, 66, 34,160,238, 18, 4, 14,160,166,207, 87,120,195,163,
-158, 64,229,221, 75, 48,233,213,160, 4, 18,112,120, 66,144, 20, 31,101,183,210,144,241,235, 66, 84,100,221,207,194,225, 15,192,
- 73,146, 26, 79, 46, 23,113,126,190,136,141,136,132,143, 80, 6, 85,218, 49,160, 66, 1, 30, 79, 0,128,129, 64, 32, 64,117,117,
- 53, 46, 92,184,128,235,215,175,227,220,185,115, 56,123,246, 44,138,138,138,112,191,233,104, 73,143,108,173,163,116,196,150, 81,
-255, 14,145,149,154,154,234,171,209,104,112,227,198, 13,148,148,148, 92,108,202, 11,102,100,100,148,167,166,166, 34, 44, 44, 12,
-223,127,255,189,127, 68, 68,196,201, 6, 10,154,214,177,177,177,167,174, 95,191, 30,147,148,148, 20, 26, 16, 16,176,162, 49,195,
-247,200, 35,143, 44, 62,121,242,164,247,225,195,135, 7,251,251,251,223,175, 16,100,193,226,255, 25, 2, 0, 47, 16, 4,113,182,
- 67,135, 14,151,219,183,111,255, 7, 65, 16,105, 0, 70,225,223, 59,119,167, 83, 88,110, 58, 49, 49,241, 4, 0, 36, 36, 36,244,
-177, 61, 72, 17,112, 30,249,217, 69,216, 60,177,152, 86,151,160, 98,209,123,159,237, 57,127,250,226, 83,111,206,120,211,123,245,
-198,229,216,158,118, 0, 99, 86, 24,209,107,116, 59,156,217,159,243,214,196,126,115,241,214,140,217, 64,253, 33,154, 12, 73,146,
- 72, 73, 73,129,201,100,130, 78,167,131, 78,167, 67,187,118,237,202,142, 29, 59, 38, 5,128,204, 63, 51, 24,174,175, 78, 48,240,
- 29, 25,111,202,128, 24, 40,228,122,124,247,110, 38, 74,179,181, 63,214,114, 36,213,145, 7, 36,249,245,134, 13, 27,158,152, 50,
-101, 10,190,248,226, 11,236,220,185, 19, 79, 62,249, 36,158,123,238, 57,148,148,148,120,135,226, 30, 6,180,243, 11,233, 59,125,
- 67,159, 49, 99,198, 64,161, 80, 32, 61, 61,253,186, 77,184,146, 80,211, 25,254,245,227,199,143,251,168,213,106, 84, 87, 87,163,
-111,223,190,144,203,229, 60, 0,253,237,196,157, 39,128,230,106,181, 26, 45, 90,180,104, 93, 82, 82,210,195, 14,103, 61,120, 75,
-120, 22,113,171, 87,150, 67,175, 44, 7,135, 39,132,208, 59, 12, 87,191,155, 1,134,174,105, 49,243, 12,239,104,239,244, 38,227,
- 20, 11, 4, 72, 76, 77,193,241,196,125,104, 27, 25,137,158,177,177, 56,117,249, 10,120, 36,129,145,147, 38, 3, 52, 19,144,146,
-146, 66,148,148,148,224,242,229,203, 88,184,112, 33,114,114,114,112,224,192, 1,152, 76, 38,183,194,105,147,142, 84,139,222,251,
- 44,123,236,179,207,223, 60,120,228,183, 59,137,191,255, 52,104,123,218,209,248, 49, 43,140, 68,175,209,237,112,246, 64,206,204,
-108,162,252, 91,101, 46,110, 56,227,124, 64,176,156, 77,199,217,190,125,251,246,167, 83, 83, 83,197,106,181, 26,187,119,239,198,
-252,249,243, 13,122,189,158, 2,176,199,206,185,233, 0,190, 64,253,165,183,236,133, 83, 6, 96, 26,128,174,245,210,152, 66, 81,
-242,204, 51,207, 24, 22, 44, 88,192,125,252,241,199,177,111,223, 62,191,145, 35, 71, 94,204,200,200,136,199, 95,205,136, 73,174,
-132,225,125,116, 25,112, 43, 62,107,133, 96,112,104,104, 40,182,111,223,238, 63, 97,194,132,228,162,162,162,222,176,223,196,201,
-166, 37,150,243, 97,226,108, 1,224, 85,169, 84, 58,165,111,223,190,222, 79, 62,249, 36,124,125,125, 97, 52, 26,145,155,155,219,
- 45, 49, 49,177, 91,106,106,106,129, 78,167, 91, 11, 96, 19,128, 10,123,164,206,180,200, 67, 45,180, 18, 19, 19, 25,212,140, 80,
-179, 11,149, 73,142,248,224,161,232,246,187,148,172, 40,171,210, 47, 24,185,244,104, 69,142,254,169,175,190,250, 10,207, 61, 49,
- 1,251,126, 23,227,244,206,189, 24, 56,190, 16, 3, 39, 71,226,207,147,142,187, 69, 24, 12, 53,131,223,140, 70, 35, 12, 6, 3,
-244,122, 61,244,122, 61,196, 98, 49,174,221,188, 2,163,119, 9,231,249, 53,173, 56,161,109, 36, 72,221, 89,136, 3,171,115,116,
-138, 98,195, 92, 93, 57,126,170,103,223, 0, 95,175, 90,181,106,210,148, 41, 83,176, 96,193, 2,252,244,211, 79,204,138, 21, 43,
-136,121,243,230,161,188,188, 28,253,250,245,195, 43,147,159,199,181,184, 16,188, 59,127,177,108,212,168, 81,248,248,227,143,161,
- 84, 42, 87, 57, 8,158,151, 78,167,179, 44,118,155,151,231,122,233,198,156,156, 28, 48,206,151, 82,131,183,132, 39,244,146,240,
-150,112, 72,226, 57, 14, 1,127,131,137,193,241, 5,189,192,137, 25,137,249,107,119,194, 68, 51, 24,247,212, 32, 68, 42,170, 32,
- 18, 75,106, 20, 41,109,186, 47,206,232,161,111,130,228, 10, 97,210,107,176,101,203,102,236, 57, 84, 1,157,252, 14, 94,123, 60,
- 10,129, 78, 56,141, 70, 35,211,188,121, 27,180,108,175, 3, 35,224,225,216, 93, 45, 98,251, 36,224,198,181,219,200,175,212, 35,
- 46,182,125,139,201,147, 95,132, 64, 32,192,237,219,183,177,100,201, 18, 40,149, 74,119,215,133,179,151,142,164,171, 95, 91, 43,
-124,245,197,215,222,187,144,126, 49,119,235, 23,187,126,153,246,238,148,175, 79,239, 60, 24, 59,112,124, 33, 6, 76,138, 36, 55,
- 92, 42,127, 22,192, 2,182,130,248, 80, 98,195,153, 51,103,196, 42,149, 10,213,213,213,120,249,229,151, 49,109,218, 52,174,189,
- 74, 75,113,113, 49, 82, 82, 82,158,156, 62,125,250,152,194,194,194,222,112,190,238,165,119,167, 78,157, 82,143, 29, 59,214,218,
-195,195,195,178,147,166,105,232,245,122, 75,153,162,213,106,161,213,106, 33,147,201,144,154,154, 42,244,241,241,217, 5,231, 77,
- 24,127, 71,151, 1, 84, 85, 85, 61, 59,106,212,168,228,109,219,182,249, 71, 70, 70,226,251,239,191,247,127,241,197, 23, 79,222,
-189,123,183, 23,216,254,100, 44, 30, 94,204,121,230,153,103, 22, 7, 6, 6,146, 29, 58,116, 64,112,112, 48,180, 90, 45, 42, 43,
- 43,193, 48, 12,252,252,252, 48,105,210, 36, 60,245,212, 83, 33,201,201,201,203,143, 29, 59,182,160,188,188,124, 51,128, 53, 0,
- 50,173, 68,150, 83, 45,242,208, 59, 90, 9, 9, 9, 39,234,168, 24, 2,233,103,254, 56, 21, 43,140, 1, 8, 18,200, 37,143,129,
- 0,129, 10,131,158,103,168, 34,215, 30, 62,124,216, 91,169, 84, 66,161, 80, 96,104,223, 17,152,187,225, 23,244,124,190, 10,205,
-218,132, 96,245,135, 7, 12,174,132, 22, 77,211, 48, 26,141,168,174,174, 38, 79,156, 56,225, 23, 30,209,140,120,254,173, 33,152,
-254,125, 59,200, 2,120, 56,248,121, 14,202, 83, 67,148, 76,105,197, 29, 93,121,217, 86, 59,133,239,228,247,223,127,127,210, 27,
-111,188,129,229,203,151, 99,217,226,143, 79,135, 4, 5, 62, 18, 31, 31, 79,124,244,209, 71,152, 61,123, 54,194,195,195,193, 17,
-120,160,101,223,231, 49,107,214, 44,172, 93,187, 22, 95,173, 94,170,111,231, 35, 77,187, 86, 86,111,181, 27, 3,128, 69, 3, 6,
- 12,120,226,240,225,195, 62, 66,161, 16, 87,175, 94,197,248,241,207, 67,204, 5,184, 28, 18, 96,104, 48, 52, 13,130, 96,224, 47,
- 19,192, 91,196,129,191, 7, 23, 49,126,116,251,114, 70,218,250,106,153, 34,195,158, 32,242,245,224, 95,221,241,193,136,176,216,
- 73, 95,240, 40,129, 20,218,202, 66,252,182,102, 26, 22, 45,254, 26,167, 82, 79,163,162,162, 2,131, 7, 14,192,154, 81,126,127,
- 89,127, 78,196,155, 35,206, 27,187,222,195, 43, 83,167, 99,227,250,117, 32,185, 66,252,118,226, 28, 14, 31, 61,137,148,148, 20,
-188, 52,113, 44, 62,143, 46,116,200,105, 50, 25,224, 31, 16,142,199,250, 68, 65,234, 33, 5, 73, 0, 45, 34,252,225,231,155,135,
-160, 32, 2,105,167,143, 34, 57, 57, 25, 30, 30, 30,136,136,136,192,218,181,107,145,157,157,141,151, 95,126, 25,124, 62,223, 33,
-175,163,116,164, 32, 12, 32, 76,252, 86, 30, 30, 30, 59,116, 58,221, 42,189, 94,191,247,249, 81,147,119,188,188,228,231,118, 61,
-159,175,226, 52,107, 19, 2,130, 65, 31, 86,104, 61,180,144, 24, 12, 6,152,215,115,206,205,205,117,122,112, 92, 92, 28,182,108,
-217,210,110,226,196,137,201,133,133,133,143,193,254,162,242,178, 78,157, 58,165, 38, 39, 39,183,214,104, 52,200,202,202,114, 43,
- 32,181, 11, 35, 43,157, 28, 98,238, 50,224, 99,221,101,160,172,172,204,220,101,192, 30,202, 80,179,142,234, 93, 59,255,133, 3,
-120,179,182,134, 15, 59,194,242,234,248,241,227,123,110,223,190,157, 23, 21, 21,133,125,251,246,249,141, 26, 53, 42, 37, 35, 35,
-163, 43,128,108, 54,233,176,120, 8, 49,113,225,194,133,164,201,100, 66,105,105, 41,180, 90,109,189, 60,200, 48, 12,196, 98, 49,
-134, 14, 29,138, 33, 67,134, 8,206,159, 63, 63, 53, 41, 41,233,213,172,172,172,249,181,121,201,174, 22,249, 87, 9,173,122, 47,
- 94, 10,139, 62, 29,147,234, 37,144,146,177,160, 9, 47, 63,191, 0, 9,151,203, 37,188,196,129, 94,171, 86,206, 46,187,121,243,
-230,189, 93,187,118, 5,119,239,222, 29, 96,128, 78,205, 6, 67, 94,120, 26, 94, 92, 53, 74,229,165,142,230,145, 98,126, 61,176,
- 91, 82, 94, 94, 73,183,137,108,167, 86,169, 84,228,129, 3, 7,194,122,245,238,201,219,155,250, 29,241,236,178, 96,200, 2,120,
-248,109,237, 93, 92,252,222, 64, 79,155, 56,162,242,207, 75,107,170,237,213,112,121, 60,222,140, 55,222,120, 3, 59,119,238,196,
-156, 57,115,182, 60,213,173,229,160,103,134,245, 37, 83, 82, 82, 48, 98,196, 8,228,231,231,227,151, 95,126,193,252,249,243, 49,
- 97,194, 4,124,241,197, 23,184,240,227, 39,184,190,164, 43,111,238,206,219,215,232,155,196,240, 27,165,213, 7,109,104,179,111,
-220,184,241, 88,255,254,253, 79,238,221,187,215, 47, 38, 38, 6,219,182,109,199,204,215, 95,197,143, 11, 70, 33, 58, 80, 12,232,
- 21,160,117, 42, 16, 60, 17, 96, 80,131, 41,191, 11,189, 94, 45,125,119,199,237,235, 38, 59,156, 94, 18,222,146,239,223,127, 34,
-172,211,212,109, 60,243,190, 91,183,239, 96,237,241,114,156, 74, 61, 13,115, 19, 69, 72,128,183,109, 84, 57,124,104,246, 56, 9,
-146, 66,199,151,190,198,220,170, 4, 28,218,188, 4, 67, 95, 94, 8,121,105, 49, 82, 83, 83, 17, 26, 26,138,207, 55,110,198,140,
-233, 83, 97,162, 25, 71,207,156,215,166, 77, 36, 56,156, 2,240, 5, 52, 8, 0,122,125, 57,252,252, 40, 52,107,230, 7,128,176,
-184, 87, 4, 65, 96,216,176, 97,122,134, 97,138, 52, 26, 77,233,174, 93,187, 8,103,233,232,147,209,169,161,124, 49,249, 40, 1,
-210, 51, 32, 32,144, 16, 8, 5, 8,244,142,192, 7,111,190, 6,197, 11,234, 71,183,109,219,182,235,219,111,191, 45, 72, 77, 77,
-221, 78, 8,124,110,203, 11, 21,209, 94, 92, 53,192,144,205, 1,154, 45,194, 30, 78,140,126,228,145, 71, 46,254,246,219,111, 66,
- 62,159,143,189,123,247, 98,254,252,249,134,178,178,178,147,182,162, 39, 48, 48,176,253,214,173, 91, 35, 34, 35, 35,177,110,221,
-186,118, 35, 71,142,156, 6, 96,137, 29,206,105,199,142, 29,107,173,209,104,112,241,226, 69, 76,152, 48, 33,187,168,168,232,170,
-173,192,139,136,136,232,181, 98,197, 10,110,231,206,157, 81, 85, 85,133, 65,131, 6,169, 0,188,234, 36,172, 13,233, 50, 0,160,
-102,173, 63, 7, 93, 6,224,235,235,251, 77, 78, 78, 78, 63,145, 72,228, 52,130,244,122, 61,242,242,242,224,229,229,133,196,196,
- 68,159,150, 45, 91,126, 0, 96, 50,155,116, 88, 60,140,208,233,116,216,185,115, 39, 58,117,234,132,182,109,219, 66,161, 80, 88,
- 68,151, 78,167,131,209,248,215, 44, 72, 36, 73,162,107,215,174,136,142,142, 38,102,206,156, 57,206, 90,104,253, 27, 97,126,233,
- 46,176,109, 23,213,100, 35, 23,192, 56, 90, 36,120, 95, 40, 20,142, 14,111, 30,139, 54,109,218, 8,159,126,250,105,190, 78,167,
-147,158, 56,154,252,103,207,158, 61, 81, 86, 86, 22, 60,103,206,156,178,176,102, 97,116,242,164,114, 95,130, 41, 7, 71,199, 79,
- 1,234, 47, 58,170,229, 84, 55,223,251,231,242, 96, 0, 56,158, 22, 81,253,204,160,177,165, 28, 14,135, 58,125,227, 24,209,123,
- 6, 5,255, 22, 34,164,237, 46, 4, 63,187, 51, 34, 3, 43, 33,147,201, 28,206, 79,213,177, 99,199,118, 36, 73, 98,231,206,157,
- 0,240,193,141,236,194, 75,146, 35, 39, 62,219,179,120, 11,247,221,247, 63,196,220,185,115,241,210, 75, 47, 65,175,215, 99,249,
-242,229, 72, 77, 77,197,175,191, 28,135, 49,105, 46, 86, 60, 93, 70,190,252,157,230, 87,189,201,219,255,118,121,121,181, 13,117,
-198,173, 91,183,122, 13, 29, 58,244,228,238,221,187,253, 90,183,110,141, 21,107,191,196,248, 55,167,224,236,210, 65,128,200, 7,
-188,222,239,130,240, 10,175,145, 67,101, 89,192,225,119, 29,114,114, 72,226,185,216,137, 95, 88, 4, 81, 70, 70, 6,166,207,122,
- 7,191, 29, 60, 12,115, 19,197,204, 55,167, 99,235,218,143,161, 60,179, 1, 66,159,102,144, 4, 68,161,234,238, 37, 0,144,219,
- 28, 42, 43,123, 0, 0, 32, 0, 73, 68, 65, 84,187,119, 91, 78, 0, 80,203,239, 66,113,239, 38, 34,135,188,137, 15,198,141,199,
-208,151,129,181,139,222,193, 11, 19,198,224,243,141,155, 17, 25, 25,137,207,215,111,194,228,201,147,100, 85, 57,185,173, 97,211,
- 76,113, 46,253,194,141, 85,171, 23,138, 85, 42,165, 39,143,207, 15, 2,195, 32, 56, 56, 24, 85, 85,213, 48, 24, 12, 80, 42, 85,
- 32, 73, 18, 36, 73,130,195,225, 96,196,136, 17,188,228,228,228,102,127,252,241,135,127,173, 5, 28,109,109, 1,155,161,201,198,
-216,103,158,121,102,112, 96, 96, 32,233,235,235,139, 62,125,250,192,100, 50, 65,171,213,130,166,105,240,249, 38,139,165,124,242,
-228,201, 57,122, 83,184,113,203,132, 36, 13,135, 40,215, 82, 90, 97, 82,227,173,105,205,226,111, 70, 70,102,102,102,252,192,129,
- 3, 79,254,248,227,143,126,195,134, 13, 67,203,150, 45,185, 79, 63,253,180,191, 74,165, 26, 96,125, 96, 81, 81,145,247,132, 9,
- 19,206,229,230,230, 70,212,238,234,234,128,179,171,135,135, 7,178,178,178,204, 34,171,139,109, 37,140,207,231, 31,186,116,233,
- 18,151,207,231, 35, 61, 61, 29, 19, 39, 78, 44,205,206,206,118,213, 44,119, 95, 93, 6,104,154,214,218,251,143, 36, 73,193,249,
-243,231,225,106, 46, 64,146, 36,193,227,213,201,198, 21,108,178, 97,241,144,194,160,211,233,208,165, 75, 23,100,103,103,227,252,
-249,243, 22,193, 85, 90, 90,138,130,130,130, 58, 7,159, 61,123, 22, 23, 46, 92, 64,239,222,245,230, 36, 95,240,111,236,163,101,
-113, 34, 18, 19, 19,251,216,216,118,124,137, 68,114,246,185,231,158,107,246,244,211, 79,123,113, 56, 28,104, 52, 26, 24,141, 70,
-164,165,165,161,109,219,182,170,118,237,218, 85, 12, 31, 62,156, 40, 45, 45,237,127,245,234,213,172,210,210,210,120,153, 76,150,
-245,216, 99,143,105, 52, 26, 77, 61,165,229, 21, 69,233,150, 95,236,198, 3,128,228,237, 5,200,217,239,163, 48,168, 77,226,200,
-145,149,100,159, 9, 33,168, 42,214, 99,245,179, 55,240,235,166,163, 88,241,217, 10, 83,239,222,189,243, 22, 47, 94, 92, 80, 80,
- 80,240,152, 45,151,167,167,231,181,228,228,228,182, 71,143, 30,197,236,217,179,191, 51,153, 76,203,132, 92,206,193, 73, 47,189,
- 18,166,215,235,113,254,252,121,248,248,248, 32, 39, 39, 23,188,128, 56,196,246,123, 1,111,143,235,138, 56,239,114,232, 54, 15,
-198,141, 2, 53,198,239,210, 46,186, 89,172,156,231, 32,110, 90,135,134,134, 38,111,223,190,221, 63, 48, 48, 16,227,158, 25,134,
-180,247, 98,193, 27,186, 2,151, 74,196,248,236,251,115, 0,128,183,199,117,113,200,233, 45,225,145, 1, 50,190,225, 70,126, 53,
- 9, 0,119,238,220,193,132, 23,198,227,224,161, 26,145,117,241,226, 69,140, 27, 55, 14,237, 99,162, 33, 22,242,161,173, 44, 2,
-109, 50,224,110, 94, 33,242,203, 52,101, 70,154,190,202, 48,200,134, 85, 19,133, 45,231,221,187,119,177, 98,249, 98,220,186,126,
- 9,122, 69, 25,120, 18,111,164,157,191,130, 62,125,250,130,161,141, 40, 47,202, 69, 78,169, 10,155,183,108, 69, 84, 84, 20, 84,
- 42, 21, 70,141, 26, 85,230,164,153, 34,227,198,141, 27,209,107,215,174,197,252,249,243,241,203, 47,191,192,100, 50, 65, 32, 16,
-128,162, 40,240,249,124, 68, 69, 69,225,250,245,154,241, 4, 52, 77,227,252,249,243, 72, 74, 74, 98,108, 45, 96,107, 62,147,201,
-132,146,146, 18,232,116, 58,168, 84, 42,168,213,106, 48, 12, 3, 14,135, 3,134, 97, 44,181, 29, 14,135,131,172,172, 44, 92,190,
-124,153,217,183,111,223, 39, 12,195,204, 97,203,176,135, 26,173, 67, 66, 66,146,183,109,219,230, 31, 28, 28,140,126,253,250,229,
- 22, 22, 22, 54,183,115,220, 30,134, 97,158,204,202,202, 66, 84, 84,212, 94, 0, 35,238,231,152,240,240,240,146,244,244,116,191,
-107,215,174, 97,220,184,113, 37,181,125,190, 92,245,125,138,136,137,137, 73, 63,124,248,176, 15, 73,146,184,122,245, 42,198,141,
- 27,167, 47, 43, 43, 59, 5,199, 77,142,119, 80,211,191,228,174,157,255,194, 1,204, 3,224,227,224, 92, 73,116,116,116,207,115,
-231,206,241, 8,130,192,157, 59,119,204,121,178, 75, 45, 47, 11, 22, 15, 27,158, 10, 9, 9,249,118,218,180,105,158,221,186,117,
- 67, 94, 94, 30,242,243,243, 81, 94, 94,142,248,248,120,180,111,223, 30,183,111,223,198,161, 67,135,112,225,194, 5, 8, 4, 2,
-132,133,133, 65,186, 99, 39,190, 34,112, 13, 64,123, 39, 90,228,223, 35,180,108, 33, 16, 8, 62,152, 56,113,226,140,215, 94,123,
-205, 71, 32, 16,224,236,217,179,224,241,120,160,105, 26, 3, 6, 12, 64,118,118, 54, 70,140, 24, 81, 86, 88, 88,248, 52,128,147,
-238, 92, 76, 22, 44, 40, 28,254,126,112, 96,239,241, 53, 53,189,228,237, 5, 56,183,183, 24,179,118,117, 4,201, 33,240,205,244,
- 27, 48,101, 54,167, 91, 71,197, 48, 0,140,205,154, 53, 43,220,186,117,171, 93,161, 5, 96,242,148, 41, 83,190,153, 60,121, 50,
- 78,156, 56,129, 93,187,118, 97,216,176, 97, 24, 62,124, 56,190,253,246, 91,120,201, 79,227,147, 95,175, 97,236,135, 7,112, 53,
-171,198, 24,106, 31,233,139, 29, 31, 15,131,230,243,120, 48,165, 25, 72,216, 73,221, 56,246,167,194,209, 84, 15,100, 11,111,209,
- 79,126,254, 94, 79,105, 24, 30, 94,237, 46,198,139, 67,226,192, 31,181,189, 65,156,173,130,165,133,215,179, 10, 2, 41,129, 20,
-111,188,250, 34, 62, 90,242, 41, 76, 38, 19,170,171,171, 17, 22, 22,102, 91,163,173,135,218, 38,138, 52,235, 38, 10,107,206, 39,
-135, 63,142,157,187,127,134,187,205, 20,124, 62, 31, 90,173, 22, 45, 91,182,220, 12,251,205, 20, 25,151, 46, 93,138, 94,188,120,
- 49, 54,108,216,128,125,251,246,193,104, 52, 66, 32, 16, 64, 34,145, 64, 36, 18,193,207,207, 15,151, 47, 95,174,115, 82, 85, 85,
- 21,102,206,156,153,137,250,195,213, 51, 46, 93,186, 20,237,204, 82, 54,247,219,179, 36, 74,130, 64,101,101,165, 35, 62, 22, 15,
-161,216,226,241,120,171,253,253,253, 59,230,231,231,207, 66,253,165,172,188,159,125,246,217,171, 63,252,240, 67,240,157, 59,119,
-220, 18, 90,143, 61,246,152, 93, 71, 11,192,196,160,160,160,143,171,171,171, 43, 85, 42,213, 40,184,223,193,188,117,171, 86,173,
- 78,238,221,187,215, 79, 44, 22,227,250,245,235, 24, 63,126,124,137, 92, 46,239,141,198,237,164,222,186, 77,155, 54,167,206,158,
- 61,235,203,229,114,145,158,158,142, 9, 19, 38,148,178,157,225, 89,252, 11,224, 1, 96,118,100,100,228,219, 83,167, 78, 21,180,
-107,215, 14,121,121,121, 40, 41, 41, 65,121,121, 57, 78,159, 62, 13, 0, 8, 13, 13, 69,104,104, 40,110,222,188,137,148,148,148,
- 42,133, 66, 49, 25,192, 47,255,230,136,113,216, 71, 75, 44, 22, 63,247,194, 11, 47,248,152, 76, 38,244,238,221,187, 76,167,211,
-153,102,207,158,237, 31, 20, 20, 4, 15, 15, 15, 12, 26, 52,168,188,170,170,170, 59,224,254,146, 41, 2,147,236,110,241,239,193,
-210,100, 20,136,123,143, 15, 65,239,241, 33,232, 58, 34, 0, 36,135,192,229,195,114,240, 75, 91,170, 94,152, 50,165,178, 89,179,
-102, 6,146, 36,209,188,121,115,227,246,237,219, 29,117, 86,250,246,235,175,191,126,212, 96, 48,188,244,242,203, 47,163, 79,159,
- 62, 48, 26,141,216,190,125, 59,100,185, 7,176,240,249, 46,142, 3, 98, 50,128,224, 73, 16,232,105, 10,115, 36,178,218, 6, 74,
-191, 89,246,106,191,167, 6,117,240,197,222, 99, 23, 49,172, 13, 23,208, 85,223, 15,231,174, 43, 91,223,152, 26, 59,233, 75, 94,
-105, 81, 30, 26,169,137,194,194,169, 85, 85,163,145,155, 41, 12, 58,157, 14, 18,137, 4, 92, 46, 23, 2,129, 0, 70,163, 17, 4,
- 65, 32, 62, 62, 30,205,155, 55, 71, 78, 78,142, 59, 22,112, 99, 91,202, 44, 30, 94,100,232,245,250, 33,249,249,249,214,142,143,
-165,179,248,179,207, 62,219,101,251,246,237,193,133,133,133,248,227,143, 63,128,154,169, 30,236, 33,189,168,168,232, 73,177, 88,
-140,173, 91,183, 70, 76,152, 48,225,156, 85, 31, 45,115,231,244, 45,133,133,133, 91,238, 39,140,182, 93, 6,182,110,221,234, 63,
-106,212,168,221, 42,149,170, 67, 99, 69,132, 72, 36, 90,115,230,204, 25, 95, 46,151,139,180,180, 52,140, 27, 55,174,196,201,244,
- 14, 44, 88, 60, 76,168, 6, 48, 47, 43, 43,235,243,183,223,126,251,131,118,237,218,189, 58,101,202, 20,170,109,219,182,200,207,
-207, 71,118,118, 54, 90,182,108,137,220,220, 92,124,247,221,119,186,146,146,146,213,168, 25,108, 82,249,159,141, 49, 47, 47,175,
-187, 59,119,238,100,130,130,130, 44,253,132,124,124,124,138,230,207,159,207,200,229,114,198,215,215,183,192, 13,154, 58,171,123,
-135,132,132,156,184,120,241, 98, 86, 79, 95, 40,199,125, 17,193,124, 85,221,147,249,170,186, 39,179, 38,191, 27, 19,209,195,219,
-248,218,180,215,242, 62,255,252,243, 91, 27, 54,108,200,252, 31,123,215, 29, 30, 69,181,183,223,153,237, 37,189,147, 4, 18, 32,
-244,208,139, 32, 29,129, 32,132,122, 85,138,128,162,126, 72, 64, 44, 8, 4,244,114, 17,145, 4, 68,165,233, 5, 47,150, 0,210,
-171, 20,169, 66,128, 80, 36, 32, 37,161, 5, 18, 72,207,166,111,175,115,190, 63,178,179,110,194, 38,187, 27,192, 58,239,243,204,
- 51, 59,237,221,211,230,156,247,252,206,239,156, 89,187,118,237,157,252,252,252, 59,225,225,225,103,234,224,164, 2,228,130,189,
-221,219, 69,145,231, 7, 63, 71,122,182,141, 32, 97,222,162,156,107,241,145, 68,187, 44,130, 88,138,210,201,229,219, 69,100,220,
-191, 15,144,113,255, 62, 64, 46,223, 46, 34,150,194,235, 68,179, 64, 76,212,203,155,145,103, 26,251,220,114, 20,206, 86, 33,178,
- 37,251, 23, 12, 35,134, 29,147,201,182,184,182,164,117,176,236,102,125, 57,125,229, 66, 73,179, 6, 30,247,206, 38, 12, 50,156,
-223,183,142, 60,211,181, 19,201,201,201, 33,121,121,121,228,240,225,195,196,207,207,207, 0,224, 56,170,214, 22,114,180,125,129,
-223, 22, 68,125,132,243,226,143, 95,147,151,134,245, 37,189,163, 27,144,168, 16, 57, 35, 21,241,212, 0,246,219, 61,127,188,121,
-243,230, 6,165, 82, 73, 84, 42, 21,185,126,253, 58,105,209,162, 69, 9,126,155, 17, 53,208,129, 9,184,124,252,248,241,196, 17,
-146,147,147,201,181,107,215,200,212,169, 83, 73,231,206,157, 73,207,158, 61,201,184,113,227,200,255, 17, 16, 0, 55, 28,112,142,
- 10, 13, 13, 45, 95,178,100, 9, 57,121,242, 36,217,176, 97, 3, 89,178,100, 9,121,255,253,247,201,230,205,155,201,141, 27, 55,
-200,158, 61,123,156,241, 57, 10,231,147, 0,199,249,199,112, 30, 78, 75, 75,179,149, 41,139,197, 66,114,115,115,201,145, 35, 71,
- 72, 72, 72,200, 13, 84,173,147,229,136,211,171,117,235,214, 55,111,221,186, 69, 30, 62,124, 72,140, 70,163,141,227,230,205,155,
- 4,192,169, 39, 16,206, 22, 97, 97, 97, 69, 39, 79,158, 36,183,110,221, 34, 33, 33, 33,217, 79, 50,238,145,145,145, 69, 10,133,
-130,156, 56,113,130, 4, 6, 6, 22,161,110,139, 45, 87,150, 56,206,191, 50,103, 36,128,141,157, 59,119,182,172, 90,181,138,188,
-249,230,155, 36, 34, 34,194,130,170, 69,190,195,240, 15, 66,173, 22,173,242,242,242,136, 55,223,124,243,242,179,207, 62,219,181,
-160,160,128,237,141, 25,104,154, 38, 10,133,130, 49, 26,141,185,238,254,153,209,104, 44,184,126,253,122,192,138, 35,151,139,102,
- 47,154, 25,148,140, 60,217,179, 47,133, 96,239,178, 76,188,216,127, 74, 89,108,204, 40, 83,100,100,164,205,130,117,235,214, 45,
-232,245,122,109, 29,148,228,153, 38, 62,221,118,204,110,141,125,103,239, 98,209,181,226,239,229, 34,222,174, 93,151,203,246,207,
-237, 9, 24,183, 79, 64,251, 23, 54, 96,243,162,161, 0, 0,166,232, 6,140,219, 39,130,146, 5,224,116,174, 0, 21, 90,227, 1,
- 71,164, 77, 2,101,175, 14,108,198,199,222, 19,151,176,104,239,195,239, 45,132,212,155,179, 76,109,212, 1,136,158,178,250,124,
- 2,112,126,172,222,104, 9, 24,208,191, 31,246,253,184,159,110,213,170, 21, 54,109,218, 36,156, 56,113, 98,180, 59, 67, 20, 53,
- 57, 45, 12, 9,160,128, 98, 2,108, 17, 11,120,243,181, 6,139,142,109, 52,172,195, 20, 66, 7,195, 20,181,249,130,236,201,203,
-203, 59,113,225,194,133, 11,111,191,253,118, 11,137, 68, 66, 9, 4, 2, 88, 44, 22, 48, 12, 3,139,197,130,242,242,114,220,186,
-117, 11,141, 27, 55,182,153,128, 15,120,122, 84, 2,170,255,212,198, 55,127,254,124,155, 73,185, 99,199,142,200,201,201, 65, 86,
- 86, 22, 46, 95,190,108, 51, 41,187,200,199,225,175, 15,241,249,243,231, 33, 22,255,246,149,165,171, 87,175,226,173,183,222, 74,
-179,250, 84, 85,214,242, 92,101,122,122,122,207,161, 67,135,158, 94,181,106, 85,107,251, 33,231,147, 39, 79, 2,128,254, 73, 88,
-223,114,115,115,251,196,196,196,172,244,247,247,239, 80, 80, 80,176,224, 73, 70, 60, 43, 43,235,189,118,237,218, 45, 81, 42,149,
-149,110, 14,109,114,224,240, 87, 67, 22,128,137,169,169,169,203, 82, 83, 83, 63, 64,213, 84,250,197, 0,210,185,164,169, 5, 97,
- 97, 97,119,231,206,157,171,187,120,241,162, 37, 46, 46,174, 68, 46,151, 79,171,135,226,149, 6, 4, 4,108, 13, 10, 10, 74,241,
-247,247,191,228, 17, 44, 82,200, 27,210, 70,207, 64,113,129,143,143,207,245,160,160,160,115,246,223, 65,244,243,243,251, 25, 64,
-120, 93,156, 45,131,229,211, 95,232,232,159,219, 42, 68,182, 18, 85,159, 20,162, 90, 4,203, 14,239,158,224, 73, 52, 31,251, 17,
-205, 34, 47,162, 93,217,150,104, 87,182, 37,154,197,254, 68,187,162, 13,185,147,208,157,116,139,244,206,111, 26, 44, 15,248,189,
- 56, 89, 88, 87,113,111, 17, 25, 25,169,184,116,233, 18,201,202,202, 34, 7, 15, 30, 36, 50,153,236,122,125,123, 16,246, 43,195,
- 87, 75,108,169,244, 72,101,101, 37,209,233,116,228,196,137, 19, 36, 56, 56,216, 81, 15,186,174, 94, 73, 16,128,213,109,218,180,
- 49,173, 88,177,130,236,221,187,151,172, 89,179,134,140, 26, 53,138,204,153, 51,135,140, 29, 59,150, 4, 6, 6,234,173,230, 95,
-111, 23, 56,235,203,199,245, 28,255, 94,156, 17,214, 94,173,189,229,118,126, 13, 75, 86, 93,156, 94,214,251,107,179,252,114,121,
-196,113,114,156,127, 77,206,127, 46, 2, 3, 3, 63, 93,176, 96,129,250,167,159,126, 50,206,156, 57, 83,213,160, 65,131,211, 79,
- 40, 35,130, 0,116, 7,208,165,150, 74,182, 94,153,219,222,219,219,187, 69,144,236,231,185,207,249,145,203,115,155,144,138, 21,
- 29,136,230,171, 30,228,110, 66, 87,242,229,203,205, 73,135, 80,207,135,205, 3,101,109,255, 96,206,250, 12, 81,184, 85,176, 93,
- 28,166,112,133,211, 93, 19,240,211, 48, 41,115, 21, 26,199,201,113,114,156, 28, 39, 39,180,254,190,104,214,172, 89, 70,187,118,
-237,238,199,197,197,165,253, 69, 50,151,106, 25, 36, 31,219, 34, 72,190,187, 85,144,244, 94,155, 96, 89, 78,139, 32,217,177, 22,
-129,178,247, 59, 53,128,244, 79,194,217, 66, 36, 18, 29, 9, 13, 13, 85, 0,120,229, 41,164,231,132,144,144,144,135, 86,107, 89,
-139, 39,192, 25, 13, 96, 43,128, 45, 0, 90, 63,129,112,186,202,199, 85,104, 28, 39,199,201,113,114,156,156,208,250,123, 98,218,
-180,105,124,174,192,112,156, 28, 39,199,201,113,114,156, 28, 39,199,201, 9, 45,247, 65,213,145, 88,199,158,114,130, 31,227, 56,
- 57, 78,142,147,227,228, 56, 57, 78,142,243, 31,199,233,140,251, 24, 56,112,202,156,227,228, 56, 57, 78,142,147,227,172,149,147,
-178,110,180,117, 99,143,255,204,113,167,254,196,113,255,167,112,254, 45,193,255,131,254,151,205, 8, 6,117,125, 61,153,195, 31,
- 9,251, 23,132,112,249,196,225, 79, 10, 15, 62,159,255,174, 72, 36,234,107, 54,155, 91, 3,128, 64, 32, 72,215,235,245,167,204,
-102,243, 23, 0, 84, 92, 18,253, 97,117, 7,207,174,177,181, 88, 55,252, 9,235, 18,123, 81,192, 60,102,187,244, 52,226,254, 79,
-230,252,219, 11,173, 14,114,185,252, 63, 34,145,168, 9, 69, 81, 22,181, 90,125, 77,175,215,175, 3,112,238, 49,255,243,155,224,
-224,224, 87, 74, 74, 74, 24,246, 35,197, 20, 69,129,166,105, 8, 4, 2,109, 69, 69,133, 87,125, 72, 3,219,142,122,159, 79, 81,
- 51, 45,196,178,174,232,250,190, 79,156,157,231, 80,247, 11, 35, 20, 10,199,248,249,249,249, 40, 20, 10, 66,211, 85,171, 71,240,
-120, 60,118,133,121,115, 69, 69,197,247,174,146,249,250,250, 94,244,243,243,243, 97,159,167, 40, 10, 37, 37, 37,229, 69, 69, 69,
-221, 0, 64, 34,145,156,149,203,229,254,124, 62, 31, 60, 30, 15, 60, 30, 15, 26,141,166,164,164,164,164,231,239, 25,105, 95, 95,
-223, 20,154,166,155,184,243, 12,195, 48,247,203,202,202,158,229,138, 76,117,108,223,190,157, 23, 19,246, 90, 20,159,104,219,211,
- 52,241,102, 24,170,194, 76, 73,175, 30,206,253, 38,195,149,231, 95,124,241, 69,139, 11,183,245,241,242,242,218,176,123,247,110,
-223, 78,157, 58,209,197,197,197,104,220,184, 49, 74, 75, 75,187, 37, 39, 39,119,126,237,181,215, 94, 83, 42,149,147, 0, 36,115,
- 57, 82, 55, 68, 34,209,138,224,224,224,215, 85, 42,149,134,162, 40, 66, 81, 20, 40,170,170,159, 85,115,111,177, 88,114, 74, 74,
- 74,186, 56,105,108, 5, 34,145,232,243,144,144,144,201, 26,141, 70, 99,229,115,200, 11, 0, 38,147, 41,167,184,184,184,139, 75,
-117,125, 96,224, 58,169, 84,250,178, 70,163, 81, 83, 20,197,216, 95, 35,132,216, 55,230,247,138,139,139,123, 59, 19, 6, 34,145,
-104,101,112,112,240,171,214,184,219,194,249,184,113, 15, 14, 14,158,172, 86,171, 93,226,172, 35,238,143,112, 62,141,112,254, 73,
- 57,255,254, 66,171, 99,199,142, 91, 46, 92,184,208, 92, 32, 16, 0, 0,116, 58, 93,187,213,171, 87, 79,154, 59,119,110, 34,128,
-121,245,252,191,164,222,189,123,143, 75, 78, 78,166,247,238,221, 75,119,237,218, 21, 20, 69,193, 98,177,192, 98,177,160,109,219,
-182,210,250, 70,196, 91, 46,139,191,124,244,107, 73,135,129,111,204, 44, 2, 62,113,118,190, 46,129, 9,224, 67, 0, 77,220, 12,
-130,194,154, 46,151,127,175, 70,252, 41, 9, 3, 74, 40, 20,254,171,119,239,222,222,199,142, 29,163,178,179,179, 41,169, 84,106,
- 91,172,212,100, 50,161, 77,155, 54,110, 89, 66,125,124,124,188,226,227,227,163,158,127,254,121,236,220,185, 19,147, 38, 77, 66,
-175, 94,189,238, 20, 21, 21, 1, 0,228,114,185,127, 90, 90, 90,115, 63, 63, 63,104, 52, 26, 84, 84, 84, 96,208,160, 65, 40, 41,
- 41,121,236, 2,238, 21,142, 38, 22, 1, 22, 7,134, 75, 7, 40, 30,104, 23,169, 31, 98, 77,109,247, 10, 4,130,240, 7, 15, 30,
- 4,137, 68, 34, 16, 66,192, 48,140,195, 61,251,219,104, 52,162, 77,155, 54,198,218,248,158,233, 24,190,152,162, 41,219,135,133,
-137,217, 82,122,225,106,222,135,143, 27, 39, 63, 63,191,203, 98,177, 56,216,169, 90,182,107,200,116, 58, 93, 97,105,105,105, 39,
- 39,143, 68, 2, 24,206,227,241,154,241,249,252,150, 0, 34,205,102,115, 48, 0, 8,133,194, 66, 30,143,151,101, 50,153,110, 25,
- 12,134,187, 0,126, 68, 29, 31, 64,142, 9,123, 45,138, 50,107, 94, 80,234,153,161,178,166,137, 45, 52,247,226,111,203,196,154,
-131, 49, 97,175,237,112, 85,108, 57,193,192,254,253,251,111,217,191,127,191, 68, 40, 20, 66,171,213,226,198,141, 27,240,246,246,
-134, 72, 36,194,200,145, 35,121, 61,123,246,244,239,215,175,223,206,219,183,111,143,135,123, 62, 31, 45, 0,108, 67,213, 7,165,
-223, 68,245, 47, 20,212, 7, 97, 0, 70,160,234,155,143,141,141, 70, 99, 49,128, 84,107,152,238, 0,136, 8, 12, 12,252,129, 97,
- 24,125, 73, 73,201,107,112,240,161,234,238,157, 27, 94,162,105, 58,156,181, 9, 48,196,146,115, 62, 53,231,137, 52, 80, 52, 77,
-175,140,141,141,125,117,199,142, 29,178,212,212, 84, 89,235,214,173,109, 29, 34,182,204,219,163,113,227,198,206,172, 26,124,154,
-166, 87,188,240,194, 11,227, 55,110,220, 40,123,240,224,129, 44, 52, 52,212,198,105, 47,182, 88, 56,251,132,152, 93,217,255,102,
-240,224,193, 19, 55,108,216, 32,216,183,111,159, 52, 32, 32, 0,254,254,254, 14,191, 25,219,179,103, 79,198,121,212,233,149, 35,
- 71,142,156,184,117,235, 86,217,133, 11, 23,100,109,219,182, 5,143,199,123,236,184,143, 26, 53,106,252,150, 45, 91,100,215,174,
- 93,147, 53,107,214, 12,172, 81,161, 38, 31, 77,211,104,216,176,161, 75,156, 35, 70,140, 24,191,109,219, 54,217,229,203,151,101,
- 45, 91,182,180,165, 39, 91, 39,213, 39,156,127,114,206,127,132, 69, 75,100, 52, 26,113,234,212, 41,208, 52, 13, 63, 63, 63,188,
-242,202, 43, 56,122,244,104,252,137, 19, 39,246,215,195,178,245,141, 85,100, 9, 0, 96,215,203,163,112, 95, 0,188, 85,100,128,
- 80, 40,196,189,123,247,192,227,241,220, 54, 45,138,197,226,201,132,144,127,107,114,127, 17,107,181, 38,232,242, 46,201,164, 82,
-169,173, 1,208,228, 89,207,231, 95,146, 73,165,210,123, 60, 30,239, 99,149, 74,149, 84, 27, 95,179,102,205, 54,221,184,113,163,
-149,179,143, 61,215,132, 70,163, 65,163, 70,141, 34, 74, 75, 75,155,253, 30,141,184, 51, 78,179,217, 12,137, 68, 2,214, 26,101,
- 48, 24,160, 82,169,156,113, 82, 66,161,112, 12, 43,178, 0, 96,243,230,205, 8, 9, 9, 65, 80, 80,144,237,163,210, 44,167,171,
-224,241,120,136,137,137,193,194,133, 11,145,152,152,136,217,179,103, 87,171,104, 5, 2, 1,252,252,252,240,211, 79, 63,193,203,
-203, 11, 17, 17, 17, 96, 5,126,173, 2, 42,130,166, 76, 38,134,214,230,193,177,229,163, 1,164, 82, 30,150, 70,245,242,121,115,
-216,187,145,252, 6,205,101, 88, 60,248,210, 60,245, 67,253,154,186,132,137, 80, 40,196,245,235,215, 31,169, 16, 28,222,207, 35,
- 48,136, 43,253, 26,247,145, 42, 28,137, 56,138,166,252,206, 93,122,104,179,208, 14, 25,208,138,255, 76, 39,254, 87,214,166, 18,
- 52, 13, 48, 76, 85,211, 73, 81, 32,102, 19, 83,118,233, 90,222, 2, 23,210, 51, 52, 43, 43, 43,200, 89, 26,177, 48,155,205, 8,
- 13, 13,229, 57,185,109,104,116,116,244,174,184,184, 56, 97,179,102,205, 40,161, 80, 8, 62,159, 15, 62,159,207, 10,244, 8, 66,
- 72, 4,195, 48,253, 10, 11, 11,201,234,213,171,151,157, 60,121,114, 52,128,131, 14, 43, 22,162,109,175,212, 51, 67, 79, 95, 65,
-183, 23, 6,206,197, 79,219,227,187,245,238,200,192, 83,166,205, 0, 80, 47,161,197,138, 13,139,153,161,238,100, 86,248,237,220,
-185,131,162,105, 90,175, 84, 42,193, 48, 12,122,246,236, 9,154,166,113,253,250,117,124,240,193, 7,216,181,107, 23,246,236,217,
- 35,237,220,185,243,183, 26,141,166, 53,170,190,197,230, 84,100, 69, 71, 71, 95,185,112,225,130,196,104, 52,162,123,247,238,231,
-111,223,190,221, 25,245, 91,193,221, 23,192,103,243,230,205,155, 24, 23, 23,199,243,241,241,129, 72, 36,130, 82,169, 68, 70, 70,
-198,228,239,191,255,158,172, 93,187,246, 75, 0,158, 89, 89, 89, 61, 46, 94,188,136,254,253,251,191, 13,224,221, 71, 21, 1, 47,
-252,236,197,204, 32,246,120, 68, 76, 59, 97,143, 46,116, 97,149, 21,167,230,221, 4,140,133,201,185,248,107,174, 43, 66,108,217,
-168, 81,163, 38,236,216,177,195, 3, 0,254,251,223,255, 98,204,152, 49,240,243,243,131, 76, 38,131, 80, 40,132, 64, 32,168,182,
-119,210,216,242, 0, 44, 27, 59,118,236, 11, 27, 55,110,244, 4,128,141, 27, 55, 98,212,168, 81,240,247,247,135,167,167, 39, 68,
- 34,145,237,123,175,110,118, 48,190,233,213,173,219,148, 13, 27, 54, 0, 0, 62,120,231, 29, 60,255,204, 51,240,144, 73, 33,147,
-138,192,166,133,136, 39,192,144,183,102, 58,213,151, 0,150,143, 25, 51,230,165,173, 91,183,122, 2, 64,106,106, 42,138,138,138,
- 16, 28, 28, 12,169, 84, 10,145, 72,100,139, 51, 69, 81,144, 74,165, 46,197,125,204,152, 49, 47,108,217,178,197, 19, 0,146,146,
-146, 16, 19, 19, 99,139,187, 88, 44,134, 80, 40,172,182,213, 20,157,142, 56, 71,143, 30,253,194,182,109,219, 60, 1,224,251,239,
-191,199,192,129, 3,225,235,235,107, 75, 79,150,203,157, 60,250,147,115,254, 51,132,214,149, 43, 87,254, 37,151,203, 19, 0, 4,
-138, 68, 34,159,241,227,199, 55,156, 50,101, 10,198,142, 29,139, 19, 39, 78, 76,117, 83,104, 81,193,193,193,175, 36, 39, 39,219,
- 90,104, 3,121, 68, 48,185,221,128, 91,241,239, 75, 83,167,134, 36,102,168,112,254,226, 45, 72, 64, 83, 23,151, 47, 15,212,221,
-189, 11,139,193,128, 69,247,148, 85,231,205,132, 58,245,222, 91, 33, 29, 86,124,249,111, 0, 73,117, 52,182, 98,189, 94,143, 59,
-119,238,184, 21,136,236,236,108, 71, 31,127,174,119, 35, 30, 17, 17, 81,215, 11,232,148,243,240,225,195,152, 53,107, 22,110,221,
-186, 5,246, 83, 37, 46,112, 82,126,126,126, 62,172,200, 98, 69,144, 84, 42,133, 64, 32,160,248,124, 62,197, 14,237, 89, 95, 46,
-151,132, 49, 77,211,216,180,105, 19,150, 46, 93,138, 57,115,230, 96,221,186,117,104,223,190,253,111,133,144,207, 71,101,101, 37,
-124,125,125,225,235,235, 91, 77, 32,214,134,202, 7, 12, 1, 28,139, 44,105, 35,132, 72,165,252,131, 99, 63,137,234,208,246, 57,
-127,168, 74,140,216, 52,247, 14,138, 51,245, 59,156,165, 39, 33, 4,237,219,183, 7, 69, 81, 54,161,193,110, 2,129, 0,124, 62,
- 31, 60, 62, 15, 58,170, 18, 77,122, 9,241,206,206, 86,210, 6,205,101, 82, 71, 34,174,102, 54,127,254,197, 42, 25, 24, 82,229,
- 4, 66, 24,128, 1, 8, 8, 24,194,160, 48, 55, 3,255, 89,248,169,203,173,143, 64, 32,192,221,187,119,109,225,102, 45,195,172,
- 48,178,183, 26, 68, 70, 70, 58, 45, 75, 66,161,240,163, 61,123,246,136, 54,109,218,132,173, 91,183,130,162, 40,136,197, 98,200,
-229,114,248,248,248,192,223,223,223,182,133,135,135, 83,223,126,251,173,176,125,251,246, 31, 85, 86, 86, 30,116,156,231,196, 91,
-214, 52,177,197, 11, 3,231, 2, 0, 94,152, 75, 80,118,231,147, 14,116,249, 2,239,250, 91, 94,170,196,198,226,197,139,241,241,
- 51,207, 64, 36, 18,145,138,138,114, 9,219,185,224,209, 60,164,165,221,192,138, 21, 43, 48, 97,194, 4,220,187,151, 65, 34, 34,
- 34,245,179,102,205,242, 72, 76, 76,124,199,104, 52, 46,114, 38,178,218,181,107,119, 38, 37, 37, 69,162,209,104,192, 48, 12, 14,
- 30, 60, 40, 27, 56,112,224,233,204,204,204,222,238,138,173,200,200,200,125, 41, 41, 41, 61, 3, 3, 3, 81, 81, 81,129,202,202,
- 74,152, 76, 38,240,120, 60, 68, 68, 68, 96,217,178,101,212,200,145, 35,103, 76,158, 60, 89, 39,149, 74, 89,203, 70,164, 35,174,
-154,239,247,234, 53, 95,249, 16, 82, 85,126, 8, 67,170,237, 75,139,178,240,206,123,174,125,189,170, 97,195,134,111,238,220,185,
-211,195,222,178,100, 47, 2,236, 69, 22,187, 57, 17, 6,116,163, 70,141,166,252,240,195, 15, 54,206,128,128,128,106,239, 15, 77,
-211, 56,125,250, 52, 18, 62,154, 7,223,192, 80,172, 90,243, 95,151,134, 11, 99, 98, 98, 94, 78, 74,250,173,234,110,215,180, 41,
-134,245,124, 6, 65, 1, 94, 8,240,245,172, 74, 39,134,194,213, 91,153, 78,219, 35, 0,116,195,134, 13, 95,219,190,125,187,135,
-125,135,144,141, 43,219,121,102,173,248, 6,131, 1, 93,186,116,113, 41,238,246,156,172,181,141, 21,109,108,122,178,255,195,190,
-175, 78,194, 57,133, 21,194, 86,193, 89,141, 67, 32, 16, 96,251, 79, 27,106,181,102,215,151,211,221,124,175,201,153,149,149,133,
- 37, 75,150,128,237,180,217,187, 10,133,133,133, 97,213,170, 85, 78,235,165, 26,239, 64, 87, 0,129,118,167, 12, 0, 68,118,123,
- 5, 69, 81,191, 56,184,143, 61, 47,176,142, 88, 5, 90,219, 14, 37, 0, 31, 7,124,181,241, 20, 91,219,188,192, 26,247, 87,251,
-159, 90,133,214,254,253,251,217,183,184, 95,108,108,236, 41,235,239,114,177, 88,156, 45,147,201, 66, 0, 40, 15, 30, 60,136,255,
-251,191,255,131,213,180, 58,194,219,219,251,134, 3,171,206, 21,189, 94, 63, 23, 64,161,245, 20,107,174,167, 75, 75, 75,153,163,
- 71,143,210, 27, 71, 15,134,129, 0, 29,255,157,128,152,216, 88, 28, 14, 19,129, 7,160,219,205, 98,200,100, 50,126,101,101,165,
-201,222,111,203,129,239,214,177, 26, 5,138, 39,225,243,209,253,204, 1,204, 58,115, 0,221,228, 34,148,236,216, 6,229,217,100,
-208, 52,133, 62,242, 0,204,158,112, 20,207,122,137, 33,210,171, 65,211,180,163,146,109,227,188,115,231,206,139, 94, 94, 94, 9,
- 53, 18,216, 21,220, 71,213,119,156, 80, 75, 56, 93,106,196,217,237,242,101,135, 35,144,181,114, 90,135,224, 32,151,203,113,252,
-248,113,219, 61,207, 61,247, 28,116, 58, 29,252,252,252, 92,226, 84, 40, 20, 36, 47, 47,143,218,184,113, 35, 4, 2, 1,252,253,
-253, 33,147,201,168, 13, 27, 54,204, 19, 10,133,225, 58,157,142, 49, 24, 12, 16,137, 68,171,216,252,225,243,249,234,202,202, 74,
-255,218, 56,121, 60, 30,226,226,226,240,254,251,239, 99,221,186,117,152, 58,117,234, 35, 22, 47,157, 78,135,128,128, 0,155,216,
-114,240, 2,186, 52,244, 35, 11, 67, 91,159, 96,209,145, 41,171, 90, 5,135,181,148, 35,101, 75, 1, 14,172,204,202, 81, 23, 90,
-190, 48,148, 97,167, 51, 78, 66, 8, 50, 50, 50,106, 21,195, 37,101,197,120,255,227, 55,209,241, 53, 57,106, 17,113,191,113, 50,
- 4, 55, 46, 31, 70,218,181, 99, 96, 44, 12, 44, 12, 1, 33, 22, 48,102, 32,245,232,249,230,249,247,243,194, 8, 72,149,235, 45,
- 0,113,133,202,220,215, 95,212, 18,192,222, 83, 37,134, 21,206,226,206,231,243,161,211,233,176,103,207, 30,220,188,121, 19, 7,
- 15, 30,132, 86,171, 69, 64, 64, 0,124,124,124,240,204, 51,207, 96,242,228,201,136,140,140,116,154,239,132,144,164,236,236,236,
-142,189,122,245,162,202,203,203, 81, 94, 94, 14,173, 86, 11,139,197, 2,179,217, 12, 62,159, 15,137, 68, 2,169, 84,138,224,224,
- 96,232,116, 58,162,215,235,147,106,227,100, 24,170, 66,115, 47,254,246, 79,219,227,187,189, 48,151, 96,199, 82, 10, 81,141,196,
-154,227,151, 60,167,236, 61, 51,123, 16, 0,194, 16,155,105,129,152, 44, 76,241,251,243, 62,155, 81, 87, 56,217, 60, 73, 73, 73,
-193,140, 25, 51, 96,177, 88, 40, 1,159, 15, 66, 8, 40,154,198,237,219,183,177,122,213,106,140, 27, 55, 14,205,162,162, 96, 48,
- 26,161, 82,169,208,191,127,127,193,170, 85,171,250,217, 9,173, 99,117,136, 44,127,173, 86, 11,165,178,202,248, 37, 18,137,176,
- 99,199,142,128,225,195,135, 39,231,229,229,213,245, 61,210, 71, 56, 61, 61, 61, 35,120, 60, 30,174, 95,191,142,181,107,215,226,
-248,241,227, 40, 44, 44, 44, 11, 13, 13,245,238,215,175, 31,253,206, 59,239,160, 99,199,142,248,238,187,239, 36,206, 56, 9, 33,
-200,186,115, 26, 89,119,207,128, 97,170,132,101,213,230,248,119, 29, 61,160,106,225, 84,171,213,186, 43, 87,174,120,172, 95,191,
- 30, 65, 65, 65,104,220,184, 49,100, 50, 25, 36, 18, 73,181, 70,214,190,225,117,246,110,106,181, 90, 93, 86, 86,150,199,150, 45,
- 91,224,239,239,143,200,200, 72,200,100, 50,136, 68, 34,240,249,124, 80, 20,133,141, 27, 55, 98,243,194, 9,200,186,117, 13,163,
-134, 13,114, 26, 78,153, 76,246,114, 82, 82, 82, 53, 19, 72,176,175, 47,248, 2, 26, 60, 1, 5,223,231, 70, 3, 0,202, 78,236,
-174,178, 85, 57,143, 59,165, 84, 42,117, 23, 46, 92,240,184,116,233, 18, 24,134, 65,100,100, 36, 52, 26, 13,188,188,188,108,241,
- 63,122,244, 40, 70,142, 28,137, 77,155, 54,161, 71,143, 30, 78,227,174, 82,169,116,215,174, 93,243,248,225,135, 31,224,231,231,
-135,134, 13, 27,218,226,206,110, 2,129, 0, 60, 30, 15, 77,154, 52, 65, 69, 69, 5, 60, 60, 60,156,230, 81,106,106,170,199, 15,
- 63,252, 0, 95, 95, 95,132,135,135,219, 44,110,172, 56, 90,250,213,194,106, 4, 18,170,193, 99,115,186,155,239, 53, 57, 71,141,
- 26,133,168,168, 40,120,121,121, 65, 46,151,219,184,235,226,172, 69,139,216,244, 54, 69, 81,251,237,222,137, 88,138,162,246,219,
-239,107,187,207,250,179,207,188,121,243,186, 36, 38, 38, 46,233,209,163,199,150,148,148,148,205,181,241,213,198, 51,111,222,188,
-232,196,196,196, 37,246,247, 59,248,159,218, 45, 90,177,177,177,148, 53,146, 20,128,198,157, 59,119,254,229,196,137, 19,126,158,
-158,158,182,155, 31, 62,124,136,242,242,114,120,122,122,122,125,254,249,231, 94,253,250,245, 67,112,112,176,173, 7,112,231,206,
-157, 54, 45, 90,180,168, 4, 80,211,110,203,208, 52,141,103,159,125, 22, 55,172,163, 29, 49,177,177, 8, 15, 15,183, 57,121, 72,
- 36, 18,204,152, 49,131,154, 53,107, 22,159,181,102, 16, 66,160,213,106,209,160, 65, 3,105, 93, 86, 8, 0,136,214, 22, 99,119,
-191, 62,160, 41, 64,115,249, 34,132, 34, 10, 52,143, 66, 39, 82,130, 67,253,251,128, 2, 96,248,245, 28, 92,176,194, 92, 6, 48,
-232,105,152, 15,157, 53,226, 14,226, 69,213,151,147,181,104,164,164,164,192, 98,177,184,202, 73,104,154,134, 92, 46, 71, 72, 72,
- 8,164, 82, 41,100, 50, 25,181,101,203,150, 15, 27, 55,110,220, 96,214,172, 89,116,101,101, 37,253,236,179,207, 98,204,152, 49,
-124,118,136, 51, 58, 58,218,105, 92, 78,157, 58,133,181,107,215, 98,234,212,169, 14, 45, 90, 20, 69, 33, 48, 48, 16, 94, 94, 94,
-245, 78, 95,113, 35, 68, 6,132, 75, 78, 77,255,174,173,143, 87,144, 16, 63,173,121,136,195,171,179,119,235,138,241, 57,204,184,
- 5,160,204, 85,139,150, 35, 1, 12, 30, 3,139, 95, 9, 94, 93,221, 28, 97, 45,189,145,178,165, 0, 7,191,120,104, 81, 41, 76,
-179, 29,136, 56, 48, 0,140,102, 19, 52, 42,173,109, 72,215, 98,177,224,218,201, 95,155,223,255,245, 78,244,254, 45,155, 4, 0,
-160, 59,185,187,218,160,231,152,175,182,181,232,235, 43,184,112,170,204,116,161,174, 50,207,231,243,241,202, 43,175, 32, 49, 49,
- 17, 47,191,252, 50, 14, 30, 60,136, 5, 11, 22,224,245,215, 95,127,196,170,229,172,231,104, 50,153,190,158, 52,105,210,212, 29,
- 59,118,180,156, 59,119, 46,205, 90,180,100, 50, 25, 40,138,130, 78,167,131, 94,175,135, 86,171,197,173, 91,183,152, 55,222,120,
-227,182,193, 96,248,186,214,225, 74, 74,122, 85, 38,214, 28,108, 26, 78, 71,169, 51, 63,245,236,245, 76,164,150,146,118,174, 24,
-221, 98, 32, 25,250, 74,164, 47, 8, 1, 97, 0,134, 0,122,189, 26, 51,102,188,205,115,165,172,103,221, 57,141, 43,151, 47, 66,
- 42, 21, 67,165, 84,193,194, 88, 64, 24, 2,177, 80,128, 15, 63,152,143,113,227,198, 35,170,105, 83, 88, 44, 22, 8, 5, 66,124,
-255,253,247,232,210,165, 11, 12, 6, 67,107, 23, 44, 89,254, 58,157, 14, 87,174, 92, 65,255,254,253,145,157,157,141,244,244,116,
- 52,111,222, 28, 27, 54,108, 8, 28, 63,126,124,114, 81, 81,145,203, 31,127,191,118,237,218,188, 14, 29, 58,172, 84,169, 84,165,
- 42,149,106, 37,128,205, 0,202, 51, 50, 50, 90,103,100,100,172, 62,124,248,112,239,255,252,231, 63,188, 26, 62, 58,188, 90, 34,
- 15,147,201, 12,173, 86, 95,167,192, 98,143, 9, 97, 92,122,103, 40,138, 34, 45, 91,182,196,240,225,195, 33, 16, 8, 32,147,201,
-224,225,225, 81,109,216,172,166,224,170, 43,139, 0, 48, 20, 69, 33, 52, 52, 20, 67,135, 14,133, 80, 40,172,198,201,150,195,161,
- 67,135, 98,230,162,127,227,235,153, 3,176,118, 82,115, 12, 92, 92,232,204, 53, 67,245,243,207, 63, 75,223,159, 58, 21, 29,154,
- 53, 67,128,151, 23, 26, 5, 7, 66, 42, 22, 65,104, 31, 38,202, 37, 35, 59, 1,192,240,120, 60,180,109,219, 22,133,133,133,200,
-204,204, 68,102,102, 38,104,154, 70,175, 94,189,108, 86,152,187,119,239, 98,209,162, 69,208,235,245, 46,199,189, 89,179,102, 24,
- 48, 96, 0, 68, 34, 17,100, 50, 89,181, 33, 67, 54, 77,149, 74, 37,162,162,162,176,119,239, 94,180,104,209,194, 41,103,171, 86,
-173,208,183,111,223,106,233, 41,149, 74,109,162, 8, 0,178, 47,168,108,255, 17, 22, 22,230, 22,231,145,139, 15,177,254,232,207,
-208, 27, 24, 84,106, 76,213,189, 48, 2,188,112,230,135,185, 46,197,157,229,252,223,255,254,135,242,242,114, 91,221,201,118,202,
- 89, 35, 74,195,134, 13,241,223,255, 58,182,100,214,208, 34,142,234,129, 88, 23,219, 91,246, 62,182,112,137, 19, 19, 19,151,212,
-124,222, 25,159,253,245, 26,207, 27,106,136,179, 66,183,134, 14,197, 98,241,252,159,127,254,217,175,162,162, 2,119,239,222, 5,
- 77,211,182, 49,117, 62,159, 15,163,209,136,123,157,170, 47, 17, 0, 0, 32, 0, 73, 68, 65, 84,247,238,193,207,207, 15, 69, 69,
- 69, 16,139,197,224,241,120, 48, 24, 12, 0,208,169,182, 6,156, 16,130,153,138, 42, 23,161,159, 66,133,200, 2, 48, 76, 81,245,
- 98,176, 14,241, 59,119,238,132,135,135, 7, 60, 61, 61,109,123,103,195, 72,215, 50, 51, 80, 40,160, 64,159, 59, 13,138, 6,104,
- 10,160,120, 0, 77, 19,208, 20, 5,250, 92, 50, 40, 10,144,251,251,186,219,118, 59,115,140,175,211, 1,222,157, 70,188,230,239,
-147, 39, 79,194, 85,206,168,168, 40,120,120,120,216,182,195,135, 15, 87,179,104, 89, 44, 22,248,251,251,187,194, 73,172,254, 56,
- 8, 10, 10,130, 64, 32,160, 54,108,216, 48,175, 73,147, 38, 13,222,123,239, 61,154,199,227,225,242,229,203, 72, 75, 75, 67,100,
-100,164,203, 62, 91,229,229,229,249,243,230,205,179,204,155, 87, 53,135, 34, 58, 58, 26,229,229,229, 69,182, 97,192,202,202,146,
-193,131, 7, 87,243,219, 40, 46, 46, 46,169,197,179, 66, 32, 15, 71, 44, 33,168,212,100,227,103, 54,204,222, 17,240, 22,120, 10,
-142,188,254,101, 43, 31,175, 32, 33, 14,173,122,128, 35, 95,230,236,212, 21,224, 67,171, 79, 16,227,106,166, 59, 26, 54,206, 45,
-200,198, 27, 31,142,198,164, 53,209, 96, 69, 28,239, 78,123,144,146,242, 82, 67, 89,105,146, 35, 17,199, 48, 12,204, 70, 51, 52,
- 58, 29, 84, 74,141,205, 58, 84,148, 87,232, 51,119,214,187,130,229, 51, 94, 5, 0,204, 90,177, 6,202,117,191, 85,100,187,103,
-141, 11, 26,253,217,214,120, 0, 35,235, 10,167, 74,165,130, 78,167, 67,211,166, 77,145,146,146, 2,165, 82,137, 33, 67,134,128,
-162, 40,219, 12, 81, 55, 96,200,205,205,237, 25, 27, 27,251,203, 23, 95,124,209,180,117,235,214,148, 90,173,134, 70,163,129,253,
-254,218,181,107,100,243,230,205,247, 53, 26,205,179, 86,211,185, 67, 28,206,253, 38, 35, 38,236,181, 29,199, 47,243, 98,131,162,
-110,123,229,150, 53, 53,151,228,138,213,149,218, 91, 58, 11, 73, 3,177, 0, 22, 48, 32,102, 6, 22,235,176,151, 11, 53, 39, 76,
- 38, 51, 44, 22, 6, 15, 31, 62, 68,122, 90, 26,218,181,109, 9,157,222, 12, 33, 95,128,153, 55,110,160,213,120,192, 32, 20,128,
- 97, 24, 80, 20,141,169, 83,167, 26,173, 67, 6,181, 66, 42,149,174, 62,115,230,140,191, 78,167, 67,106,106, 42, 38, 78,156,104,
- 40, 46, 46, 22, 1,192,203, 47,191,108,216,184,113,163, 40, 42, 42, 10, 27, 54,108, 8, 28, 51,102,204,118,181, 90,221,214,197,
- 52,221,148,159,159,191,169,230, 73,127,127,255, 85, 15, 31, 62,236,103,239,243, 99, 54,155,109,193,113, 24,117, 6, 48,153, 76,
-208,106,245,168,168, 80,194, 96, 52, 89,235, 76, 6, 22,139,217,186,103, 96,182,214,163, 34, 33,223,179, 83,219, 16, 21, 33, 4,
- 52, 69,149,167, 94, 47,104, 88,151,104,119, 52,196,229,162, 53,171, 38, 44,236, 44, 51,127,127,127, 8, 4, 2,108,218,180, 9,
- 87,207, 30,134,136, 71, 96, 49,155, 96, 54, 25, 97, 49, 25, 32,224,241,112,252,114, 38, 6,181,242,116, 73, 16, 6, 4, 4, 96,
- 88,143, 30,136,237,209,163,106,122, 27,159, 15, 15,177, 24, 50,161,164,202,146, 5,128, 88,104, 87, 23, 17, 96,216,112, 6, 7,
- 7,227,210,165, 75,152, 57,115, 38,150, 46, 93, 10,169, 84,106,155,253,124,243,230, 77,108,219,182, 13,131, 6, 13,114, 59,238,
-172, 5, 47, 62, 62, 30,121,121,121, 88,177, 98, 5, 58,119,238, 12,129, 64,128,242,242,114, 60,251,236,179, 40, 44, 44,116,137,
-211,126,120, 79, 36, 18, 85,179, 62,177, 2,208,221, 60,178,231,124,117, 84, 3,236, 59,187, 25, 20, 40,156,255,225,221,106,162,
-240,191, 91, 79,187,205,185, 96,193,130,106,225,116,197,154,229,178, 31, 82,117,171,147,211,251, 40,138, 74,101,141,173,241,241,
-241,243, 41,138,218, 31, 31, 31, 63, 63, 33, 33,225,134, 43,124,142,174, 83, 20,117,192, 42,194,134,217,157, 75,117, 75,104,201,
-100,178,110, 30, 30, 30,184,123,247, 46,134, 12, 25, 98, 40, 41, 41,185, 45, 16, 8,154, 23, 23, 23,139,139,138,138,160,209,104,
- 84, 31,127,252,113, 38, 0,105,247,238,221,163,142, 31, 63,142,236,236,108,108,220,184, 17, 0,118,215,230,167,195, 48,140,173,
- 80,212,236,182,241,120, 60,156, 59,119, 14,231,206, 85,119,253, 90,191,126,189,211, 6, 99,204,158, 31,113,249,242,101,216, 47,
- 15,192,254,182, 63, 39,145, 72,128,186,103,120, 84,131, 51,199,120,103, 14,240,174, 54,226,181, 85,128,174, 22,196,220,220,220,
- 90,159, 63,119,238, 92, 53,139,150, 51, 78, 30,143, 7,139,197, 2,169, 84, 74, 9,133, 66, 74, 40, 20,134,179, 34,139,199,227,
-217, 94, 24,177, 88, 12,177, 88, 92,173,151, 90, 27,242,242,242,250,231,229,229,213,122, 93,161, 80,244, 84, 40, 20, 46,197, 85,
- 22,134,143,158, 29,219, 96, 30, 0,156,221,154,255,157,230, 33, 94, 7, 0,194,167,118,189,250,121,139,168,192, 72, 41,206,109,
- 47,192,145, 47,115,246,232, 10,176,208, 58,164,203,184,154,230, 7,142,238,197,155, 83,167, 65,204,147,217,249,100,209, 40,231,
-101, 99,250,198, 22, 96, 69, 92,234, 70, 3,246,111,253, 8, 41, 71,159, 55,213,101, 41, 51,154, 76,208,106, 12, 80,170,180,248,
- 40,225,187,170,147, 31,225, 2,128, 11, 61,223,156,137,184,152, 65, 3,220, 29,166,102,211, 59, 40, 40, 8,167, 78,157, 2, 69,
- 81,216,190,125, 59,188,189,189, 17, 19, 19, 3, 47, 47, 47,196,199,199,227,197, 23, 95,116,183, 50,171, 40, 41, 41,233,249,206,
- 59,239,252,242,233,167,159, 54,106,216,176, 33, 12, 6, 3,140, 70, 35, 12, 6, 3, 50, 50, 50,176,121,243,230,108,141, 70,211,
- 19, 64,133, 51,178,195,185,223,100,236, 74,158,149, 55,112,236, 24,237,205,194,159, 80, 80, 80, 2,179, 57, 23,140,197, 12,163,
-217, 82,101,225, 51,155, 97, 54, 91, 32, 20,242,188, 62,253,228,221,163, 12, 8,104,154, 50, 0,120,190, 54,177, 17,209, 48, 8,
- 94,158, 94,104,221,170, 9, 78, 28, 90, 15,131,209, 12,163, 65, 13,227,244, 24,164,103, 29,135,229,254, 49, 88, 24, 11,206,164,
-164,233, 77, 22, 34,144, 74,229, 84,195, 6,158,188, 59,247,117, 14,195,233,227,227, 19,173, 80, 40,112,231,206, 29, 76,158, 60,
-185,160,164,164, 36, 29,192,115, 0, 80, 82, 82,114,102,226,196,137,173,147,146,146, 66, 26, 55,110, 12, 15, 15, 15, 47,181, 90,
-237, 44,234, 30, 0,226, 0, 12, 70,117, 7,252, 82, 0, 31,211, 52, 45, 78, 77, 77,125,100,166, 93,114,114, 50, 0, 92,112,220,
- 3,178, 90,180,116, 58, 40, 74,202,240,250,155, 31,254,214, 51, 2,169, 38, 46, 8, 8,166,189, 5, 9, 0, 20, 23,102,224,213,
-215,103,138,235, 84, 28, 12,227,176, 33,116,195, 71,167, 90, 71,141, 45,163, 30, 30, 30, 85,195,111,123, 55,227,192,103,111, 2,
- 22, 35,136, 73, 11, 24, 53,128, 81, 5,198,160, 1, 37,148, 2, 38,173, 75, 66,203,195,195, 3, 30, 82, 41,130,124,124, 64, 8,
- 1,159,199,131, 64,192, 7, 99, 2, 40, 11,101, 43, 35,140,197,165,178,110,235, 84, 74,165, 82,100,101,101, 33, 46, 46, 14, 70,
-163, 17,163, 70,141,130,193, 96,128, 78,167,131, 86,171, 69,147, 38, 77,160,209,104, 92,226, 99,103, 43,122,120,120, 64, 40, 20,
-226,221,119,223, 69,151, 46, 93,176,104,209, 34,204,153, 51, 7, 77,154, 52,193,180,105,211,176,121,243,102, 68, 71, 71, 59,227,
- 37,246,121,196,166, 39, 43,182,236,135,248, 0,184,157, 71, 53, 57, 41,138,174, 38,216,216,237,237, 73,207,185,205,153,152,152,
- 8,133, 66,241,136, 37,139,253, 29, 22, 22,134,175,190,250,170,190, 35, 67,172,245, 40,216,193,181, 97, 53, 45, 81,132,144,174,
- 86,223, 41,125, 66, 66,194,141,132,132,132, 88,138,162,246, 39, 36, 36,196,214,102,209,114,196,227,224,186,194,213, 48,243,107,
-140,141,246,179,191,200, 38,180,159,159, 31,175, 81,163, 70,180,151,151, 23,202,203,203, 17, 24, 24, 72, 20, 10,197, 88,153, 76,
-182,112,203,150, 45, 81, 42,149, 10, 55,111,222,196,170, 85,171, 46, 0, 88, 89,151,208, 58, 24,104, 53, 29, 91, 45, 89,246,199,
-195,135, 15, 71,227,198,141,171, 89,179,164, 82,105,157,133,135,189,102,107, 20,121, 60,180,104,209, 66,122,255,254,125,173, 80,
- 40, 68,120,120,184,180,160,160, 64, 43, 20, 10,221,158,233,226,204, 49,222,153, 3,188, 35,225,211,181,107,215,106, 22, 44,251,
-189,253,239,125,251,246, 57, 29, 58,100, 57, 91,183,110,109, 75, 47, 79, 79, 79,246, 89, 0,192,144, 33, 67,192, 48, 12, 2, 2,
- 2, 92,226,100, 69,173,213, 1, 30, 58,157,142, 81, 42,149,116,106,106, 42, 68, 34, 17, 60, 61, 61,109,190, 58, 18,137,196,102,
-205,252,189, 32, 16,209, 83,198,124, 80,101, 96,244,111, 40,126,117,239,178, 76, 80,192,229,161,111, 71,246,111,218,213, 27,149,
- 69, 70,236,255, 60,235,129,174, 4, 9, 0,110,185, 99,201,210,209,149, 94,235,206,188,131, 14, 47,139,208, 64,215, 11,159, 46,
-168, 42,202, 19,103,140,198,176,215,249, 96, 69, 28,125,167, 29,182,127, 55, 31,205,154, 53, 3, 33,132,170,189, 66, 96, 96, 48,
-153,160,213,106,161, 82, 85,173,155,153,113,189,250, 8,163, 81, 95, 89,255,180,176, 86,176,165,165,165, 56,124,248, 48,126,250,
-233, 39,116,233,210,197,161,168,118, 67,112, 41, 74, 75, 75,123,205,158, 61,251,252,226,197,139, 67,253,252,252, 96, 52, 26,241,
-240,225, 67,124,251,237,183,121, 26,141,166,151, 59, 21, 12, 8, 96, 50,153,161,211,232, 81, 81,169,196,194, 79,190,175,181,232,
- 1, 64,105,209, 45, 12, 31,241,162,168, 46,177,209, 48,204, 7,201,201,201, 24, 52,176, 23,134,141,156, 92,171,216,120,115, 70,
- 53,177, 33,172,163, 35,240, 94,175, 94,189, 62, 81, 42,149,229, 26,141,230, 69, 0,203,237,251, 83, 37, 37, 37,189, 71,140, 24,
-241,133,159,159, 95,231,162,162,162,249, 46,196, 58, 62, 43, 43,107,126, 68, 68, 68,181,147,122,189, 30, 17, 17, 17, 45,138,138,
-138, 38,244,233,211,231,223, 0,252,236, 46,123, 2, 56, 2,224,171,218,202, 18, 59,116,168, 82,105,225,229,211, 0,185,153,167,
-156, 6, 68,200,211,129, 48, 76,157,117, 8,219, 1,174,109,115, 50, 51,238,145,160,178,247,178, 13,246,243,255,154,132,231,227,
- 18, 33, 19, 0, 75, 94,237,137, 38, 62, 0,164,126, 16,246,153, 11,202,199,154, 70,113, 63,186, 68, 62,103,237, 90, 92,182,214,
-199,225,129,129,152, 61,118, 44,136, 9, 72, 73, 75,195,214,159,127,198,216,254,253, 33,147, 72, 92,238,176, 48, 12, 3,161, 80,
-136,140,140, 12,164,164,164,160, 85,171, 86,184,123,247,110,181,101, 40, 8, 33,174,198,223, 22,119,177, 88, 12,129, 64,128,130,
-130, 2,196,198,198, 66, 40,172, 26,198, 62,117,234, 20,102,207,158,141, 41, 83,166,160, 95,191,126, 72, 79, 79,119,137,147, 16,
-242,200,108,197,154,195,185,238,230, 81, 77,206,154,237,126,125,242,157,229, 92,188,120,177,195, 9, 21,174,112, 58,210, 34, 14,
-242, 46,213, 94, 12,177,150, 39,123, 97, 84,243, 24,128, 47,123, 46, 62, 62,126,190,171,207,217, 31,179, 22, 49,119,134, 48,109,
- 66, 43, 54, 54,182, 90,204, 75, 75, 75,207,159, 63,127,190,141, 92, 46,199,173, 91,183, 68, 94, 94, 94,109,216, 10,157,166,105,
-108,223,190,221,115,232,208,161, 71,151, 47, 95, 30,206, 48, 12, 10, 11, 11,241,254,251,239,171,204,102,243, 56, 0,230,218, 26,
-112,103,150,169, 31,127,124,244,101,219,187,119,175, 75, 67, 32,172,144,226,243,249,240,245,245,213,106,181, 90,200,100, 50,248,
-250,250,106, 53, 26, 13,228,114, 57, 59, 86, 76,227,183,153, 10,206,172, 79,206, 28,227,107, 58,192, 59, 69, 90, 90,154, 75,247,
- 89,135, 90, 93, 42,229, 89, 89, 89,181, 86, 36,167, 78,157, 2, 99,173,104, 93,229,180,246,242, 8, 43,252,100, 50, 25,252,252,
-252, 32, 22,139, 33,149, 74,171,137, 44,177, 88,236,244,197,113,182, 32,169, 68, 34,185, 40,151,203,125,216,235, 2,129, 0, 74,
-165,178,188,180,180,180,219, 35, 22, 34, 13,115, 48,121, 99,222,148, 62, 19, 67,209,103, 98, 40, 0,188,122,105, 95,209, 43,189,
- 95,174,114,254,220,185,248, 30, 81,230, 89, 18, 97, 66,154, 59, 34, 11, 0,136, 72, 47, 27,243, 65,135, 42,235,194,198,243,152,
-187,248, 29,180,107,213, 1, 62,207,230,162,105,215, 80, 84, 22, 25,241,235, 22, 11, 86,254,231,125,180,110,221,218,169,192,100,
- 64, 96, 54,154,161,213,234,160, 82,106,241,164, 97, 48, 24, 32, 22,139,177,121,243,102,244,236,217, 19,221,187,119,127, 68,100,
-213,211, 60,159, 83, 90, 90,218,111,229,202,149, 23, 62,255,252,115, 95,149, 74,133,239,190,251,174, 66,165, 82,245, 3,144,227,
- 86,154, 50, 4, 38,163, 17, 26,157, 30,106, 85, 85, 26,220,187,177,179,158, 61,217, 42,177,209,179, 91,115, 76,159,254, 38, 50,
-239,103, 64, 85,126,247,177,197, 6,128,205, 5, 5, 5,155,235,184,126,207,108, 54,199,178,235,190,185,128,103, 34, 34, 34, 80,
- 80, 80, 80,237,228,131, 7, 15, 96,177, 88,244,168, 90, 39,235, 53,123, 67, 50,106,153, 65,107,215,131,174,178,142,106,245, 80,
-169,170,172, 32, 58,117,241, 19, 41, 71,172,216,168,205, 39,171, 62,101,136,162, 40,155,211,247,140, 25, 51,112,237,234, 85, 60,
- 23, 90,137, 38, 33,158, 32,149,185, 16, 14,248, 15,126, 85, 72,177,252,139,131,110,115,111,179,115,129, 88,190,109,155,195,107,
-247, 70,142,116, 43,238,183,111,223,134, 84, 42,133,197, 98,121,164,189,113, 55,254,246, 2,230,139, 47,190,192,236,217,179,241,
-253,247,223,227,218,181,107,232,208,161, 3, 6, 14, 28,136,162,162, 34, 92,189,122, 21,122,189,222,229,112,218,251,205,221,190,
-159,134, 99, 41,135,240, 32, 39, 19,121, 5,217,245,206,119,123,206,154, 66,107,215,177, 43,248,215,160, 78,245,226, 92,184,112,
- 33,138,138,138,170, 89,178,236,235,165,218, 44, 90, 53,181, 72, 13, 20,215,240,133, 98,143, 13, 53, 68, 79,205,227,154,247, 3,
- 64, 17, 0,158,147,231,106, 30, 23, 39, 36, 36,156,100, 45, 97, 86, 94,158, 51,255,172, 90,135, 14, 1, 36,142, 28, 57,114,196,
-170, 85,171, 2, 37, 18,137,109, 6, 82,124,124, 60,102,207,158,141,166, 77,155, 34, 32, 32, 32,204,199,199, 7, 37, 37, 37, 88,
-186,116, 41,178,178,178,254, 15, 14, 22,218,171, 41,180,122,223, 87, 66, 36,250,173,195,202, 90,182, 0, 96,202,148, 41,143, 88,
-180,216, 12,170, 11, 38,147, 9,254,254,254,208,104, 52,224,241,120, 24, 53,106, 20,239,250,245,235,150,152,152, 24,140, 30, 61,
-154,119,245,234, 85,203,176, 97,195,192,227,241, 48, 96,192,128,202, 93,187,118,205, 2,240,153, 11, 98,235,137, 57,198,179,133,
-204,213,181,143, 92, 17,151,117,113, 82, 20, 5,141, 70, 3,190,117, 86,150,171,156,236,208,161,253, 11, 72,211, 52,124,124,124,
-108,149, 7,107,209, 98,133,150, 51, 94,103, 11,146,202,100, 50,175, 91,183,110, 69,177, 19, 47,138,139,139, 49, 96,192,128, 59,
-165,165,165,143,112,105,243, 49,127,207,146,204, 16, 0, 67, 88,177,213,117,100, 16, 69,243, 40, 92, 59, 82,130,171,135, 74, 47,
-155, 42,209, 27,192, 90, 0,255, 5,176, 20,192, 92, 0,211,236,142, 31, 58,172, 32,117, 66,125,242,198, 60, 25,203,155,188,241,
- 28,190,220,181, 23,239,110,173,114,220,223,245,201,125, 76,125,105, 33,218, 69,183,115,109, 45, 32, 6, 48,154, 45, 80,105,117,
- 80,105, 53,120, 82, 96,223,135,117,235,214, 33, 61, 61, 29, 58,157, 14,171, 87,175,182, 77, 42,176, 23, 89,143, 33,184, 50,164,
- 82, 41, 51,100,200, 16,156, 63,127, 30, 98,177,216,132,122,172,127,197, 16, 6, 70,179, 25, 58,173, 22, 42,231, 67,110, 78, 27,
- 48,163,201, 4,134,177,160,107,135,112, 92,191,118, 13,114, 94, 49,254,132,176,169,234,244,244,116, 24, 12, 6, 44, 90,180,200,
-242,203, 47,191,156, 68,213, 2,168,172, 5,111, 66,223,190,125, 63,150,203,229, 62, 7, 14, 28,120, 27,192,247,117,197,221,100,
-182,138,246,199, 76,199,218, 70, 4, 28,249,100,213,103,201, 29,251,134,149, 97, 24,252,223, 27,111, 96, 96,104, 37, 70,119, 14,
-132, 58,255, 14,100,222,129,160,124, 34,177,252,139,131,184,113,223,229, 69,137, 9, 0, 12,233, 59, 18,237, 91, 61,186, 60, 88,
-175,231,170,250,100,103,142, 95, 68, 97,113,158,219,113, 87,171,213,181, 90,174,220,176,104,217,222, 57, 54,253, 58,118,236,136,
-230,205,155,227,228,201,147,232,212,169, 19,238,222,189,139,187,119,239, 34, 43, 43, 11,215,174, 93, 67, 89, 89,153,219,121,180,
-231,200, 86,148, 41, 75, 33, 18,138, 80, 90, 94,140, 7,185,153, 8,246, 15,121,236,124,103,209,114,216, 66, 0, 64,104,160,183,
- 91, 66,203,158,115,217,178,101,143,136,247,122, 46,223,100,207,127,177,174, 99,119,159,255, 61, 81,155,208,202, 84, 40, 20,221,
-199,142, 29, 27, 15,160,171,245, 92, 5,128,109, 71,143, 30, 29, 25, 20, 20,212,191, 71,143, 30,124,145, 72,132,148,148, 20,236,
-218,181,235,123, 0, 91,235,250, 35,145, 72,164,141,140,140,148,178, 5,145,125, 17,189,188,188,120, 75,151, 46,165,214,175, 95,
- 95,171,149,203, 89, 6, 85, 84, 84, 64,173, 86,195,219,219, 27, 70,163, 17, 67,134, 12,177,164,167,167, 67, 40, 20, 98,196,136,
- 17,150,180,180, 52, 91, 70,255,239,127,255, 11,215,106,181,207,254,244,211, 79,131, 1,244,113, 35,173, 88,199,120, 15,184,232,
- 0, 95, 91, 47,207, 21,184, 58, 28, 87, 27,231,204,153, 51,235,197, 41, 20, 10,205,236,202,239, 52, 77,195,104, 52,162, 83,167,
- 78, 40, 42, 42,178,189, 52,114,185,220, 38,178, 92, 17, 90,206, 22, 36,229,243,249, 48, 24, 12,232,211,167, 15, 40,138,194,154,
- 53,107,234, 10,107,145, 54, 15,111,236, 89,146,249, 63, 86,108, 73, 60,248,208, 41,205, 56,241,101, 25, 12, 37,240, 26, 51,102,
-204,248,157, 59,119, 98,233,210,165,211,226,227,227,149, 47,188,240,194,180,237,219,183,219,142, 1,196, 59, 34,150, 18,239, 74,
-205,249,230,178,100,220,129,157,136, 3, 43,226, 42,110,120, 34, 89,119, 6, 87, 83,175, 3, 0,214,174, 93, 11,212, 53, 20,203,
- 48,148,135,135, 63, 66, 67, 91, 32, 48, 72, 7,198, 69,231, 17, 87, 49,103,206,156,106, 98,202,209,202,203,246, 67,140,245, 17,
- 54,246,251,122,113, 0,182, 33, 47,181, 90,247,216, 66,139, 21, 27, 62, 94, 66,132,133, 53, 64, 69,129,253,176, 62, 5,118,170,
- 82, 85,152, 73,189, 29,110, 89, 4, 5, 5,117, 47, 42, 42,218, 91,227,116, 41,128,143,235,232, 88,218, 50, 58, 59, 59, 27, 49,
- 49, 49, 56,116,232, 16,111,247,238,221,207,237,219,183, 47,237,206,157, 59,217,157, 58,117,106, 56,117,234, 84,113,159, 62,125,
- 80, 92, 92,140,206,157, 59,127,148,155,155, 91,135,208,178,166,163, 78, 15,181,250,201, 91, 71, 29, 89,179, 30,167, 97,100,211,
-125,193,130,127, 99, 96,131,114,140,234,224,141,164,253,103, 49,161,163, 20, 48,136,221,230, 99,195,226, 23,218, 24,145,209,221,
- 31,185, 46,246,170, 90,203, 53, 50,186, 59,232,236,187,110,199,221, 62,204, 53,203, 76,125,202,144,125,122,190,254,250,235,152,
- 59,119, 46, 6, 15, 30,140,187,119,239, 34, 57, 57, 25,119,239,222,197,204,153, 51, 17, 29, 29,141, 14, 29, 58,184,197,185,239,
-216, 14, 84,170, 42, 64, 83, 52, 74, 43, 74,160,211,107, 49,103,218,130,199,206,119, 91,227,127, 44,161,106,116,224,232,229,122,
-115,126,240,193, 7, 40, 40, 40,168,102,201,122, 28,191,172,191, 58,234, 90, 45, 45, 19,192,255, 57, 24,174,240, 92,180,104,209,
-160,128,128, 0, 80, 20,133, 47,190,248, 2,126,126,126, 61, 1,220, 48, 24, 12,197,106,181,122,182,157, 8, 25, 8,235, 90, 27,
-133,133,133, 14,231,237,171,213,106,227,160, 65,131, 4, 13, 26, 52,168, 54,219, 80, 46,151,215,102,221,177,113,178,215,204,102,
- 51,230,204,153,131, 37, 75,150,160, 81,163, 70, 24, 54,108, 24, 98, 99, 99, 65, 81, 20,134, 12, 25,130, 97,195,126, 27,202,245,
-241,241, 17, 30, 58,116,168, 47, 77,211,105,118, 13, 72, 53, 78, 71, 96, 29,227, 77, 38,147,171, 14,240,213, 56,217,194, 54,115,
-230, 76, 44, 89,178, 4,243,231,215,237,234, 81, 75, 35,254,212, 57, 75, 75, 75,171, 85,246, 50,153,108,205,232,209,163,249,217,
-217,217,213,196,149,253,230,160, 34,170,198,233,108, 65, 82, 30,143,135,224,224, 96, 44, 94,188, 24,254,254,254, 8, 9, 9,113,
-180,144,159, 61,103,158,189,216,122,246,165, 16,236, 93,150,137,231,187,141,197,237, 83, 43,245,110, 52, 16,213,194,105,177, 88,
-178,222,121,125,110,208,138,245, 75,121,172,216, 98, 69,220,233,175, 85, 88,149,248, 45,250,244,238, 99, 51,179, 39, 39, 39,155,
- 29, 88,121,108,156, 22,194,164,126,154,248,239, 94,223,109,220, 39, 16,139,128,115,201, 59, 81, 89, 86,125, 56, 73,111,252,109,
- 42,181,168,211,115, 48, 92, 62,238, 82, 89, 98,197,244,194,133, 11,177,112,225,194, 58, 35,185,110,221, 58,167,156,174,138, 46,
-119,210,211,106,210,162,100,114, 95, 72,228,161,104, 19,237, 11,134,152,221,173,163,108,156, 53,197, 70, 64,128, 63, 42, 10,170,
-203, 58,202,150, 70,117,106, 96,103,113,255,229,226,197,139, 35,252,253,253,145,147,147, 19, 40, 16, 8, 70, 84, 51, 87,105,181,
-136,140,140,108,161, 80, 40,158,117,198, 57,115,230, 76,253,135, 31,126, 40, 30, 55,110, 28, 70,143, 30,141,113,227,198,137,133,
- 66, 97, 51, 66, 8,140, 70, 35,114,114,114,112,252,248,113, 40, 20,138,155,117,133,147, 33,132,146,202,124, 32,145, 55, 64,155,
-182, 62, 96, 24,115,125,235,124,135,117, 72, 77,107,150,155, 34,203, 97,249, 4,128, 95,142,239,197,130,119,219,226,251, 3, 23,
-176,234, 34,208,222,167, 8,109, 2, 21, 96, 20, 55,241,254,132, 46, 88,254,195,165,170,119,233,148,211, 60, 34,117,149, 65,157,
-214,248, 88,113,183,183, 92,217,255,143, 11, 62, 90,143,112,178,157, 68,165, 82,137,242,242,114, 36, 37, 37,225,213, 87, 95, 69,
- 81, 81, 17,178,178,178,112,231,206, 29,108,217,178, 5, 50,153,172, 94,121, 52,235,141, 15,240,225,242,247, 64, 64,208, 50,170,
- 13,226,227, 22,162,107,251, 30,143,157,239, 53,225,130, 53,171, 86,206, 21, 43, 86,212,183, 44,253,227,132,150, 67, 4, 4, 4,
-140,235,219,183, 47,116, 58, 29, 2, 3, 3,145,149,149, 5,154,166,155, 2, 85, 67,120, 97, 97, 97,219, 20, 10, 69, 83, 87,249,
-120, 60, 30,204,102,179,205,247,135,221, 0, 96,248,240,225,248,241,199, 31,157,246, 40, 66, 66, 66,208,176, 97, 67,188,243,206,
- 59,143,204,114,176,159,233, 32,149, 74,113,224,192,129,130,210,210,210, 82, 66,136,194,157,120,179,142,241,103,206,156,113,217,
- 1,222, 30, 70,163, 49,251,206,157, 59, 13,214,173, 91,199,171,163,241,179,161,150, 70,252,169,115, 58,234,153, 18, 66,106, 21,
- 89,174, 44, 35,224,108, 65, 82, 62,159,143,219,183,111, 99,193,130, 5,160, 40, 10, 59,119,186,228,195,147,167,205,195, 27,187,
- 23,103, 46,221,147,144, 57,218, 84, 1,201, 73,245,202, 59, 0, 86,239,216,177,163, 3, 69, 81,236, 80,225,127,119,236,216,225,
-105,127, 92,171,169,172,168, 40,230,197, 23, 95, 60, 74, 81, 84, 83,221,201, 10, 79, 0, 34, 86,196,229, 94,211,169, 94,158,240,
-178,129,207,231, 91,126, 51, 88, 49, 89,133,133,133,207,215,198,119,253, 86,201,122,154,166,125,135, 63,223,171, 29, 40, 10, 70,
-195,163, 35,213, 30,101, 42,155,200, 26,253,217, 86,236,158, 53,214, 21,209,147,113,250,244,105,191,117,235,214,241, 93,201,247,
-211,167, 79,155, 9, 33,110, 15,251,177, 13,142,209,104,132, 86, 91, 63, 43, 10, 33, 36, 37,225,147, 15, 7,109,216,116, 80, 64,
- 81, 6,156, 59,181, 19, 21,229,142,221, 25, 68, 2, 62,214, 39,237, 50, 11, 5, 60,135, 78, 39, 79, 80,108, 56,195,151,163, 70,
-141, 26,183,122,245,234, 54,142, 46,186, 48, 9, 38, 75,167,211, 33, 55, 55, 23, 26,141,102,199,188,121,243,140, 7, 15, 30,124,
-109,204,152, 49,232,208,161, 3, 26, 52,104,128,252,252,124,100,100,100, 32, 41, 41,137,156, 61,123,118, 7,128,233, 78,210,113,
-111,226, 39, 31, 78, 78,250,225,160,136,166,140, 56,151,188, 19, 21, 53, 68,251,163,214,105, 1,190,249,126,151, 81, 40, 20,220,
-114,102, 45,178,183,102, 61,201,134,113,196,196, 56,140, 94,185, 10, 77,187,198, 32,113,233, 64,124,243,201,139,248,124,136, 16,
-198,237, 19,208,254,133, 13,216,188,104, 40, 0, 32,244, 27, 23,173, 37,124, 33, 30, 58,176, 88,149, 87, 72,172,226,198, 61,171,
- 41, 27,247,186, 44, 87,238, 90,180,104,154, 70,227,198,141,209,180,105, 83,244,236,217, 19,157, 58,117, 66,255,254,253,113,245,
-234, 85, 92,189,122, 21, 51,103,206,172, 75,100, 57,205,163,126,207, 14,194,133,222,183, 30, 59,111,106,230,251,147,128, 43,101,
- 41, 46, 46, 14, 0,254, 81,214, 45,183,133, 86,101,101,229, 85,134, 97,218,121,123,123,179, 22, 41,219,181, 7, 15, 30,128, 97,
- 24,141,187, 25, 99, 48, 24,216,197, 49,171,173,203,196, 58,199,215,245,226, 19, 66, 44,165,165,165,232,219,183, 47,122,247,238,
-109, 27, 62,177,223,236,132, 9,118,239,222, 13, 66, 72, 55,119,227,109,231, 24,175,130,155, 14,240,108, 35,222,167, 79,159,163,
-124, 62,223,165,175,104, 58,107,196,159, 22,167,163,252, 97, 24,166, 86,145,229, 74, 69,228,108, 65, 82, 62,159, 15,185, 92,142,
- 61,123,246, 32, 32, 32,192,157,224,229,233, 10, 48, 11,192,151,168,154,132,113, 23, 0, 59,141, 47,206,254,221,174,113, 92, 27,
-212, 10,133,130,237, 26,134,238, 94,156,185,116,239,210,204,129,140, 30, 59,117, 10,252, 0, 40, 47,194,137,211,114, 77, 92, 77,
- 87, 44,171,235,122, 95,127,209, 41, 0,129,163, 63,219,250,240, 84,137, 49, 98,244,103, 91, 31,236,158, 53,182, 81, 93,207, 20,
- 20, 20, 12, 30, 59,118,236, 33, 87,243,221,108, 54,103, 22, 20, 20, 60,239,110,153, 37,132,224,214,173, 91,204,235,175,191, 94,
-172, 80, 40, 94,172, 79, 5, 19,191, 96,213,231, 75, 62,154,225, 63,100, 80,247,174,160, 1, 67,237,206,191,132, 2, 8, 95,192,
-203,158, 61,127,197, 27, 47,190,248,226,239, 42, 54,106, 86,115, 5, 5, 5, 61,255,245,175,127, 77,199,111,174, 19,213,132, 20,
-106,153, 93,109,197,202,134, 13, 27,182,229,241,120, 98, 0, 11, 0, 60, 56,123,246,236,151,103,207,158, 29, 12,224, 25, 30,143,
-215,192, 98,177,228, 90, 59, 61, 91, 1,252,234,188, 28, 21, 77, 5, 97,194,135, 12,124, 38, 6, 20, 69, 12, 6,189,147, 14, 18,
- 8, 8, 33, 66,161,224,214, 47, 87,243,219,215,213,145,178,251, 2,199, 19,159, 65, 60,125,250,116, 76,159, 62,221, 86,158,214,
-172,233,141, 29,215,207,224,133,246, 57,208,127,221, 11,148, 87, 35,151, 59,124, 0,240,193,191, 95,127, 98, 97,179,143,187,189,
- 69,203,209,123,224,142,143, 22,143,199, 67,113,113, 49,110,223,190,141,194,194, 66,104, 52, 26,164,167,167,195,104, 52,162,172,
-172, 12,109,219,182,173,119, 56,159, 84, 30,253,145,156,255,196,225, 67,183,133,150,209,104,252, 79,227,198,141, 5, 18,137,164,
-141,197, 98, 1, 33, 4, 22,139,133, 88, 69,141,219,179,240, 4, 2,129,174,121,243,230,148,163,217, 9,236,111,185, 92,174,173,
-195, 90,146, 16, 25, 25, 57,143,162, 40, 94,109,189, 16,246, 55,195, 48, 22, 62,159,159, 80,207,180,122, 92,199,120,251, 70,252,
- 73,225,105,112,214,204, 31,117,171, 86,173,108, 95,180,175,185, 38,138,245, 99,171,106, 39,226,188,206, 5, 73,213,106,117,126,
- 76, 76,140,197,254,186,253,130,166,206, 52,172,117,123,210, 96, 69, 92, 99, 59, 17,103,121,226,255, 66,145, 7, 67,199,189, 22,
-113,170,196, 24, 1, 0,172,216, 2, 33, 15,234,120, 74, 91, 80, 80,208,247,105, 87, 14,247,239,223, 55, 60,243,204, 51,155,148,
- 74,101, 28,128,122,123,243,207,255,207,154,249, 79, 34, 60, 79, 75,108,212, 86,108, 1, 44,169,103, 80, 31,148,148,148, 12,168,
-113,238, 87, 86, 80,177,235,218,185, 29,255,155,197,207, 63,233, 60, 54,155,205, 57, 77,155, 54,117,203,114, 99, 50,153,114,156,
- 93,175,185, 70,152, 61,110,192, 27,243,207, 3, 85,147,191, 75, 92,226,212,233,116,165, 61,122,244, 16,184, 25,183, 34, 87,227,
-222,160, 65, 3,132,134,134,218,246, 44,106,158,119, 22, 78,179,217,156, 19, 30, 30,142,128,128,128, 90, 87,124,175,233,147,229,
- 10,231,147,206,163,186, 56, 67, 67, 55, 60,113,206,250,134,147,131,107, 24,200,113,114,156, 28,231, 95,150,147,199,165, 39,199,
-201,113,114,156,191, 35,231,223, 18,156,151, 26, 7, 14, 28,106,131,133, 75, 2, 14, 28, 56,112,120, 60, 80,117,168,210, 99,110,
-240,212, 71,217, 30,227, 56, 57, 78,142,147,227,228, 56, 57, 78,142,243, 31,199,233,140,251, 24, 56, 60, 85, 1,198,113,114,156,
- 28, 39,199,201,113,114,156, 28,231, 63,143,243,111, 9,110,232,144, 3, 7, 14, 28, 56,112,224,192,129, 19, 90, 28, 56,112,224,
-192,129, 3, 7, 14,156,208,226,192,129, 3, 7, 14, 28, 56,112,224,192, 9, 45, 14, 28, 56,112,224,192,129, 3, 7, 78,104,113,
-224,192,129, 3, 7, 14, 28, 56,112,224,192,129, 3, 7, 14, 28, 56,112,224, 80, 5, 10, 0,246,239,223,111,251, 32, 96,108,108,
- 44,197, 37, 11, 7, 14, 28, 56,112,224,192,225,247,196,223, 90,139,216, 71,142, 3, 7, 14, 28, 56,112,224,192,129,211, 34, 79,
- 6, 52, 39,182, 56,112,224,192,129, 3, 7, 14,156,216,226, 34,198,129, 3, 7, 14, 28, 56,112,224, 68,214, 95, 10,213, 44, 90,
-156,224,226,192,129, 3, 7, 14, 28, 56,252,145, 98,235, 47,170, 69,136,117,179, 63,230,192,129, 3, 7, 14, 28, 56,112,224,240,
-152, 2,171,174, 61, 7, 14, 28, 56,112,224,192,129, 3,135, 39, 36,184,216,223,191,155,208,226,190,108,206,113,114,156, 28, 39,
-199,201,113,114,156, 28,231, 63, 22,124, 46, 9, 56,112,224,192,129, 3, 7, 14, 28, 30, 27,246, 86, 44,138, 19, 90, 28, 56,112,
-224,192,129, 3, 7, 14, 79, 78,100, 81,142,142,185,111, 29,114,224,192,129, 3, 7, 14, 28, 56, 60, 37,112, 22, 45, 14, 28, 56,
-112,224,192,129, 3,135,199, 3, 5,110,232,144, 3, 7, 14, 28, 56,112,224,192,225,169,138, 45,135, 39,107,155, 57,112,204, 13,
-242,250,204, 62, 56,198,113,114,156, 28, 39,199,201,113,114,156, 28,231, 63,142,211, 25,247, 49,252,245,208, 23,192, 73, 0,253,
-172,251, 90,133,215,147, 6, 55,245,149,227,228, 56, 57, 78,142,147,227,228, 56, 57,206,191, 59,106, 93,168,148,115,134,231,224,
- 12,124,212, 61,196,236,236, 58, 7, 14, 28, 56,112,224,240, 79, 19, 91,196,190,145,116,132,102, 0,230, 3,240,182, 59,119, 17,
- 64, 66,141,251,126, 0, 32,179, 59, 86, 3, 88, 4,224,174,211,208, 16, 34,180,242,139,173, 27, 3, 64, 7, 64, 15, 64, 73, 81,
-148,137,203,179, 63, 28, 61, 0,196, 90,127,239, 7,112,206,205,235,127, 43, 52,104,208, 64,234,235,235, 59,248,242,229,203,162,
-244,244,116,156, 62,125,154,172, 95,191,222, 88, 86, 86,118, 36, 63, 63, 95,203, 21,151,191, 5, 98, 0,196, 91,127, 39, 2, 56,
-252,152,124,148, 76, 38,155, 41,151,203,135,138,197,226, 80,179,217, 76,105, 52,154, 60,181, 90,125,212,108, 54,127,102,173,247,
-220,197, 72, 63, 63,191,215, 90,182,108,217, 44, 43, 43, 43, 55, 47, 47,239, 7, 0,219, 1,188, 24, 26, 26, 58, 33, 50, 50, 50,
-236,214,173, 91,119, 75, 75, 75,191, 1,176,247, 15, 12, 39, 7, 14,255, 36, 80,117, 89, 35, 28, 97, 1, 33,100, 66, 53, 6,234,
- 81,142, 1, 3, 6,140, 56,114,228,136,140, 97, 24,176,155, 84, 42, 53, 3,120,197,137,200,242, 79, 73, 73,137,136,139,139, 27,
-157,151,151,215, 69,169, 84,118, 3, 0,153, 76,118, 33, 40, 40,232,151,149, 43, 87,110, 33,132,228, 80, 20,165,116, 51,162,124,
-129, 64,240,170,175,175,239, 80,179,217,220,137, 16, 2,129, 64,112,185,172,172,236,176,201,100,250, 6, 64,125,196,155,136,207,
-231, 79, 23,139,197, 49,102,179,185, 29, 0,240,249,252,107,122,189,254,176,217,108,254, 18,128,161, 30,156, 18,145, 72, 52,221,
-203,203,107,144,193, 96,104, 7, 0, 34,145,232, 90,101,101,229, 81,131,193,240,165, 85,112,254,209,224, 3,136, 37,132, 8, 0,
-128,199,227,141,236,214,173, 91, 4, 69, 81, 12, 69, 81,132, 16, 66, 93,184,112,161,163,197, 98,161,173,229, 35, 22,192, 47, 0,
-204,127,197, 55, 36, 32, 32, 96, 9,195, 48,161,117,102,154, 68,210,229,242,229,203, 45,183,109,219,102,249,250,235,175,203,167,
- 76,153,226, 17, 23, 23,199, 95,179,102,205,151,249,249,249,111,215,188,223,223,223,255,115,154,166, 3, 92,249,127,134, 97,138,
- 75, 74, 74,222,251,163,226, 63,121,178,174,154,185, 59, 41, 73, 18, 5, 32,167,158,229,251,233,113,234, 38, 19, 0, 72,146, 36,
- 69, 77,214, 77,206, 96,127, 63, 46,175, 29,226,191, 58,166,236, 67, 8, 48,125,144, 39,253,184, 66, 43, 44, 44, 44,105,242,228,
-201,227,218,181,107,199, 39,132,192,100, 50, 65,175,215,183, 60,119,238, 92,191,157, 59,119,118, 81, 42,149, 47,186, 73,249,198,
-220,185,115, 23,127,252,241,199, 1, 2,129,128, 50,153, 76, 81,219,182,109,235, 52,117,234,212,119,214,173, 91,215,240,165,151,
- 94,242,100,207, 47, 88,176,160,107, 98, 98, 98, 19, 0,159,253, 1,225,228,192,225,159,134,190,168,238,163,245, 17,128,133,117,
- 9, 45,185,181,241, 44,180, 90,178, 96,183,183,225,196,137, 19,251,248,124, 62,107,209,234,166, 86,171,131,107, 88,193, 28,137,
-172,200,137, 19, 39,246,216,177, 99,199,146,151, 94,122,169, 64, 38,147, 53, 31, 51,102,140,146,162, 40,222,182,109,219, 58, 54,
-109,218, 84, 58,124,248,240,137, 3, 6, 12,152, 69, 8, 57, 77, 81,148,194,197, 72,182,241,243,243,219,181,108,217,178,136,152,
-152, 24, 97, 64, 64, 0, 8, 33,200,203,203, 11, 59,112,224,192,144,143, 62,250,104, 86,105,105,233, 40, 0,105,110, 36, 92, 87,
-169, 84,186,227,163,143, 62,106, 48,100,200, 16,126, 72, 72, 8,116, 58, 29,210,211,211, 7, 30, 62,124,184,207,186,117,235,222,
-214,106,181, 47, 88, 5,134,171,232,230,237,237,189,243,187,185,115,131,187,191,250, 42,223,207,207, 15,132, 16, 40, 20,138,129,
-103, 54,108,232, 55,109,217,178,183, 43, 42, 42,254,229, 40,189,255, 72,136, 68, 34,122,227,198,141, 29, 68, 34, 17, 0,192, 96,
- 48, 32, 58, 58,154,250,187,188, 33, 20, 69,133,231,229,229,121, 11,133, 66,135,215, 45, 22, 11,250,244,233,211, 88, 40, 20,226,
-179,207, 62, 51, 21, 23, 23,119, 92,189,122,245,229,205,155, 55, 7,124,249,229,151, 47, 0,120, 68,104,209, 52, 29,144,147,147,
-227,144,211, 98,177,192,104, 52,194,108, 54,195, 96, 48,160,117,235,214,127,104,252,147,146, 36,225, 0,222,155, 60, 89,247,174,
-245,212,103, 0,102, 1,184,143,122,126,179,235, 41,112,218,151,183,207,237,126, 63,118, 88,237, 16, 1, 0, 7,175,234, 0,192,
-239,113,211, 85, 46,151,183, 26, 63,126, 60, 95,161, 80, 64, 32, 16,192,104, 52,162,160,160, 0,209,209,209,188, 77,155, 54,181,
-112,151, 47, 42, 42,106, 74, 98, 98, 98,224,193,131, 7,141, 27, 55,110, 52, 12, 26, 52, 72, 48,101,202, 20,175, 62,125,250,180,
- 14, 15, 15,167,191,253,246, 91,253,209,163, 71, 77, 19, 39, 78, 20, 37, 36, 36, 4, 30, 56,112, 96,120, 90, 90,218,103,191,119,
- 56, 57,112,248, 7,226, 36,126, 91,226,129,221,215, 41,180, 96, 39,174, 70, 2,128, 64, 32,232, 24, 28, 28,156,100, 54,155, 67,
-172, 86,157,130,194,194,194,207, 76, 38,211, 21,235,189,123, 25,134, 25,225,204,146, 53,113,226,196, 30,135, 14, 29, 90,126,238,
-220,185,138,146,146,146,144,125,251,246,233,102,205,154,149, 5, 0,247,239,223,111, 50,124,248,240,176, 25, 51,102,228, 12, 30,
- 60,120,101,255,254,253,223, 34,132, 28,165, 40, 74,237, 76,100, 69, 71, 71,167, 36, 39, 39,123,250,248,248, 84,187, 16, 25, 25,
-137,183,222,122, 75, 56, 98,196,136,166,207, 61,247,220,217,140,140,140,222, 0,174,187, 34,136,154, 53,107,118,236,196,137, 19,
- 30,190,190,190, 40, 47, 47, 71, 65, 65, 1, 52, 26, 13,188,188,188,240,210, 75, 47, 9,251,246,234,217,112,198,204,183,143,229,
-228,230, 14,116, 81,108,117,235,217,166,205,177,205, 9, 9, 30,166,135, 15, 33,149, 74,161, 82,169, 0, 0,158,158,158,232,210,
-184, 49,255,210,134, 13, 97, 19,230,204, 57,246,203,237,219, 3,255, 32,177, 37,182,238,245, 0,246,243,120,188,145, 34,145,136,
- 30, 57,114, 36,142, 29, 59, 70,233,116, 58,190,213,186, 99, 30, 57,114, 36,164, 82, 41, 12, 6,135,200,170, 5, 0, 0, 32, 0,
- 73, 68, 65, 84, 3,131,170,161, 67,243, 95,249, 45, 17,137, 68,200,200,200,168,118, 78,169, 84, 66,161, 80,160,164,164, 4,122,
-189, 30,229,229,229, 96, 24,134,146, 74,165, 10,134, 97, 64,211,116, 77, 1, 80, 13, 66,161, 16,183,111,223,174,118,206,108, 54,
- 67,173, 86, 67,175,215,195,104, 52, 66,169, 84, 74, 61, 61, 61,155, 5, 4, 4,228, 0,216, 91, 90, 90,250, 89, 97, 97,225,131,
-223, 57,250,197,172, 32, 74, 74,146,220, 3, 32,250, 51,114,218, 89,178,194,172,199,191, 62,161,176,178,120,184,255,138,174,145,
-213, 58,150,249, 4,248, 24, 0, 56,125,250, 52, 10, 11, 11, 81, 92, 92, 12,133, 66,129,240,240,112, 16, 66,220, 30,142,203,200,
-200,248,170,109,219,182,212,141, 27, 55, 14, 3, 88,179,109,219,182, 87, 74, 75, 75,227,103,207,158,237,247,233,167,159,150,206,
-153, 51, 39, 17,192,247,219,182,109,123,179, 85,171, 86, 67,111,222,188,185,238,143, 8, 39, 7, 14, 79, 26,132,144,174, 0, 2,
-217,186,197, 90,239,250,219, 29, 95,165, 40,202, 96,119,159,193, 90, 55,212,220,179, 96,143, 21, 20, 69,253, 98,247,156,130,162,
-168, 95,234, 27,204, 26,251,170, 78, 55, 0,236,223,191,159,176,155,163, 39,131,130,130,102, 14, 24, 48, 96,121,106,106,106,235,
-252,252,124,223,252,252,124,223,212,212,212,214, 3, 6, 12, 88, 30, 20, 20, 52,211, 46, 33,106, 62,122,204,238,154, 48, 37, 37,
- 37, 98,215,174, 93,137,199,142, 29,171,232,216,177,163,225,196,137, 19,230,193,131, 7, 23, 89, 27,104,243,224,193,131,139,126,
-254,249,103, 75,247,238,221,165,135, 14, 29,202, 62,123,246,236,231, 59,118,236, 8, 38,132,240, 28,113, 90, 33,240,241,241,217,
-115,234,212,169, 71, 68,150, 61, 26, 54,108,136,253,251,247,123,249,248,248,236, 5, 32,172, 45,156, 86, 72, 36, 18,201,206,159,
-127,254,217,195,211,211, 19, 69, 69, 69, 16, 8, 4, 8, 10, 10, 66, 69, 69, 5, 10,242,243,241,224,206, 29,208, 6, 3,190,248,
-228, 99, 79,169, 84,186,195, 65,101,255, 8,167,183,183,247,206,205, 75,150,120,148, 28, 59,134, 95, 23, 47,134,209,104,180, 13,
-185, 26,141, 70,156,141,139,131,226,248,113,124,187, 96,129,135,183,183,247, 78, 0, 18, 39,156, 79, 2,246,156,113, 0, 74,173,
- 91, 28,128,115,209,209,209,169,233,233,233,232,221,187, 55,182,111,223,222,126,246,236,217,113,179,103,207,142,219,190,125,123,
-251,222,189,123, 35, 61, 61, 29,209,209,209,169,168,238,159,245,180,195,249,212, 56, 45, 22, 75,181,141, 97,126,107, 99, 66, 67,
- 67,139,118,237,218,133,151, 94,122,137, 22,137, 68,249, 99,199,142, 21,159, 57,115,134, 88, 69,166,203,225,212,233,116,208,106,
-181, 80,171,213,184,127,255,190,116,217,178,101,189, 22, 46, 92, 24,117,236,216,177,176,249,243,231, 79, 11, 12, 12,188, 28, 28,
- 28, 28,241, 59,199,221, 88,227,247, 23, 0,114,221,180, 16, 61,109, 78, 98,125, 30,147,117,147, 59,216, 85,176,238,242,214,149,
-158, 5,214,176,170, 1, 60,120,156,178, 52, 96,192,128,182, 81, 81, 81,193,219,110,248,162, 76,216, 18,140,208, 7,140,208, 7,
- 22,255,174,200, 16, 61,143, 70,141, 26, 5,123,120,120,244,112, 51,156, 27,111,220,184,241,140,181,167, 92, 2, 96,249,156, 57,
-115, 62,162, 40,234,244,156, 57,115, 62, 6,176,220,122,126,241,205,155, 55,187, 3,216,252, 7,133,243, 47,241,190,115,156,127,
- 46, 78, 39, 90, 36,144,162,168,253, 20, 69,237,159, 55,111, 94,127, 0,254, 53,142,159,181,191, 15,128,200,209,158,221,236,206,
- 7, 18, 66,134,217, 61, 23, 88,207,224, 83, 14,182,223,132, 22, 0,196,198,198, 82,177,177,177,236,133,139, 20, 69,237, 3,112,
- 81, 32, 16,116,236,208,161,195,200,159,126,250,201, 51, 48,240,183,255, 15, 12, 12,196,142, 29, 59, 60,219,180,105, 51, 82, 32,
- 16,116, 4,112,209,203,203,107, 95, 29, 86, 24,159,184,184,184,209,147, 38, 77,170,236,216,177, 35, 0,148,167,165,165,201,186,
-119,239,174, 54,155,205,148,217,108,166,186,119,239,174, 78, 75, 75,147,153, 76, 38,101,215,174, 93,229,207, 61,247, 92,214,123,
-239,189, 55,209,129,224,176,199,248,165, 75,151,134,251,250,250,214,165,132,161, 84, 42, 17, 28, 28,140,184,184,184, 16,129, 64,
-240, 90, 93,169,197,231,243,167, 47, 93,186, 52,200,199,199, 7,101,101,101, 8, 15, 15,135,193, 96,192,237,219,183,161, 83,171,
- 96, 82, 86,194, 84, 89, 14,197,189,187,240, 17,240, 49,113, 68,108, 48,159,207,159,238,196, 90, 50,253,155, 57,115,130, 13, 89,
- 89,184,191,125, 59, 44,230, 71,141, 63,102,163, 17,215,254,247, 63,232,114,114,144,248,250,235,193, 34,145,104,250,239,108,201,
-250,148, 16, 34, 37,132, 72, 41,138, 90,217,163, 71,143, 77, 82,169, 52, 46, 33, 33, 33,230,200,145, 35, 67,146,147,147,251,153,
-205,102,129,217,108, 22,156, 62,125,186,183, 78,167,227,139,197, 98,240,249,124,130,191, 41, 4, 2, 1,132, 66, 33,164, 82, 41,
-122,245,234,117,111,253,250,245,166,240,240,112,193,206,157, 59,125, 67, 67, 67,229,107,214,172, 41, 87, 42,149, 75, 93,229, 51,
- 26,141,208,235,245,208,106,181,208,233,116, 56,113,226, 68,227, 25, 51,102,240,117, 58,157,101,248,240,225,165, 38,147, 73, 63,
-103,206, 28, 47, 63, 63,191, 89,191,103, 60, 39, 79,214, 49, 86,203,211, 77,171,104,201,196, 99,250, 60, 61, 13, 78, 0, 6,171,
- 79, 22,139, 0, 43,183,225, 9, 37,133, 25,128,202, 42,180,244, 53,222,143,118,118, 22, 95,167, 40, 47, 47, 95,247,205, 55,223,
-132,211, 98, 31,156, 49, 12,197, 22,230, 35, 28,241, 94,131,162,136,247, 17, 20, 30,133,113,227,198, 5, 17, 66,214, 60,129, 48,
-175, 6,208, 7,192,202,250, 60,252, 59,132, 51, 66, 46,151,111,247,244,244, 60, 35,151,203,183,195, 58, 60,251, 56, 24, 20,133,
-129, 35, 90,209, 57,131,154,130,140,104, 69,231, 12,138,226,150, 26,248,187,160,134, 22,177,135,130, 16, 18, 75, 8,137, 77, 76,
- 76, 92, 98,215,190,179,199, 82, 23, 45, 99,177,132,144,216,106, 10,169, 74, 96, 61,182,209,205,193, 86,165, 41,236,149,164, 93,
-228,108,179, 11,131,131,131,147,146,146,146, 60,107, 50,230,231,231,163,178,178, 18, 31,126,248,161,231,164, 73,147,222,206,201,
-201,153,236, 36, 16,162,130,130,130, 78, 19, 38, 76,144, 24,141,198, 50,134, 97,232,202,202, 74,190,183,183,183,133,189,193,219,
-219,219, 82, 81, 81, 33, 80,171,213, 60,139,197,162,159, 52,105,146,232,245,215, 95,239, 2,128, 87, 27,105, 96, 96,224,160,161,
- 67,135,214, 58,116, 96, 50,153,160, 86,171,161, 86,171, 97, 52, 26,209,171, 87, 47,241,250,245,235, 7, 23, 21, 21,253,183, 86,
-197, 33, 22, 15, 26, 52,104,144,160,180,180, 20,222,222,222,120,240,224, 1, 50, 51, 51,161, 87,169, 96, 84, 85,194,168, 82,194,
-172,172, 4,169,172, 64,201,221, 91,232,222,170,165,240, 7,177, 56, 70,173, 86,127, 94, 27,167,151,151,215,160,238,175,188,194,
-151,203,229,232, 55,161,106,158,193,161, 86,173, 64, 44, 22, 48, 22, 11, 44,102, 51, 98,110,223,134,201,100, 2, 77,211,232, 90,
- 90,202,247,218,176, 97,144, 66,161, 88,254, 71, 20,118,177, 88,204,223,184,113,227,120,145, 72, 4, 66, 8,101, 48, 24,112,228,
-200,145,127,220, 75, 47, 18,137, 32,145, 72, 96, 52, 26, 17, 25, 25,169,157, 48, 97, 66,202, 39,159,124,210,136,166,105,185, 80,
- 40,252,169,164,164,100, 73,126,126,254,125, 87,249, 76, 38, 19, 12, 6, 3, 12, 6, 3,180, 90, 45,238,221,187, 23,210,184,113,
- 99, 42, 46, 46,206,162,209,104,154,172, 90,181, 42,227,200,145, 35,178,165, 75,151,142, 1,240,214,239, 29,223,201,147,117,173,
- 0,180, 74, 74,146, 8,173,150, 95,195,159,140,147,160,202,241, 29, 73,146,164,116, 0,138, 39, 40,178, 68, 0,188, 27,249,243,
-213, 2, 30, 84, 0, 60,173,162, 96, 12, 69, 81,221, 91,183,110,237,155,158,158, 94, 70, 8, 57, 15, 96, 11,128,252,186,200, 24,
-134,161, 24,134,193,212,110,229,136,235,193,131,201, 84,129,138,138, 10, 60,120,240, 0,105,105,105,184,112, 33,173,190,239,230,
-107, 30, 30, 30,131, 37, 18, 73,164,217,108,166, 85, 42,213, 3,141, 70,115,140, 97,152,117,168,135,143,218,211, 10, 39, 11,185,
- 92,190,108,254,252,249, 61,189,189,189,113,229,202,149, 38, 91,183,110, 93,166, 86,171, 31,203,185, 94, 34,160,191,253,124,197,
-154,176,176, 32, 31, 92, 77,254, 49,108,201,218,109,223, 2, 76, 56, 39, 83,254,250,168,161, 69,236,197,208, 47,132,144, 97, 20,
- 69,237,175, 41,148,220, 50, 59, 61,230,243, 78, 44, 90, 53, 63, 44, 93, 93,104,213,162, 32, 97, 54,155, 67,236, 45, 89,132, 16,
-228,231,231, 35, 55, 55, 23, 10,133, 2,190,190,190, 48, 26,141, 33,174,212, 15, 74,165,178,155,191,191,191, 70, 32, 16,232,181,
- 90, 45,100, 50, 25, 35, 16, 8,136,245,127, 40,235,172, 69,139, 94,175,167,248,124,190,201,211,211,211, 67,175,215,183, 68, 29,
-190,100,132,144,110,254,254,254, 14,175,233,245,122,168, 84, 42,168,213,106,168, 84, 42,232,245,122, 4, 7, 7,195,108, 54,119,
-170,179, 75,107, 54,183, 11, 12, 12, 68, 94, 94, 30,164, 82, 41,114,114,114, 96, 80, 41, 97, 84, 42, 97, 86, 87,194, 82, 81, 1,
-166,178, 18,140,186, 18, 38,131, 6, 97,205, 91,129,157,145, 88,107, 55,220, 96,104,231,239,239, 15,181,250, 55,119, 51, 98, 21,
- 88,102,179, 25,102,171,115, 52, 59,156, 24, 16, 16, 0,118, 70,226,239, 4, 61,128,217, 52, 77,175, 20,139,197,252,105,211,166,
- 33, 63, 63,191, 90,153,152, 54,109,154,205, 39,171, 79,159, 62,167, 37, 18,137, 89,161, 80, 64,175,215, 11,254,174, 47, 61, 69,
- 81,160, 40,170, 42,143,204,102, 4, 4, 4,168,139,139,139, 47,148,151,151,143,175, 15,159,201,100, 98,103,116, 65,171,213,130,
- 16,130, 43, 87,174, 64, 34,145, 8, 44, 22,203, 13,179,217, 44, 19, 8, 4,160,173,206, 95,191, 23,172, 51, 2, 63, 3, 16,110,
-181, 16,189,134, 42,135,243, 92, 7, 21,137, 75, 73,231, 34,167,251,194, 77, 55,153,181, 52,229,162,126,195,145,142,208,175,165,
-143,232,243,132,238, 65, 62, 29,134,203,213, 50, 17, 79,205, 60,232, 16,249,221,167,105, 91, 39, 77,124,205,115,209,162, 69, 17,
- 1, 1, 1,146,140,140, 12,221,199, 31,127,220,120,227,198,141, 20,170,134,233,106,197,195,135, 15,119,207,159, 63,223,111,232,
-208,161, 77,196, 98, 49, 85, 81, 81, 1,133, 66,129,194,194, 66,100,102,102,146,171, 87,175,222,211,235,245,219,221, 9,100,131,
- 6, 13,214,143, 31, 63,126, 82,231,206,157, 5,172,133, 84,173, 86,119, 60,117,234,212,136, 67,135, 14,245, 86,171,213,110,151,
-203,236,236,236,237, 31,124,240,129,252,249,231,159,111, 41, 22,139,233, 39, 17, 78,123,208, 52, 29,236,225,225,129, 99,199,142,
-193,199,199, 7, 52, 77, 7, 63,110,121,213, 25,153,176,208, 16,127,232,206,126,142,150,129, 17,208, 25,153, 48, 78,162,252,125,
- 44, 90,181,180,245, 93, 89,139,148, 19,177,164,141,143,143,159, 79, 81,212,254,248,248,248,249,142, 44, 90,214,159, 22,251,251,
-236,238,215, 63,105,177,229,214, 66,147, 12,195, 32, 55, 55, 23,121,121,121,200,205,205, 69, 73, 73, 9,104,154, 6, 33,196,149,
-217,103,132,162, 40,230,232,209,163,190, 41, 41, 41,234,174, 93,187,150,179,254, 47,102,179,153, 50,153, 76,148,213, 47,134,122,
-240,224,129,240,204,153, 51, 62, 55,111,222, 12,182,246, 86, 25, 39,166,192, 71,206,177, 2,203,126,211,233,116,144, 72, 36,174,
-169, 14,107, 67,120, 37, 53,181, 74,100,169,148,214, 33,195, 10, 88, 42, 43, 64,212, 74,136, 44, 38,136, 64, 64,233, 52, 46,167,
-159, 61, 88,145,101,180, 10, 45,131,193, 0,147,201, 4,134, 97, 96, 54,255, 33,126,229, 95,181,111,223,190,211,238,221,187,167,
-228,230, 62,218, 22,142, 26, 53, 10,111,189,245, 22,102,204,152,113,115,216,176, 97, 87,127,252,241, 71, 76,159, 62, 29, 12,195,
-116, 0, 80, 1,224,208,223,237,165,215,235,245, 54, 11,148, 78,167,131,209,104, 4,220,248,172, 66,205,178,201,230,173,217,108,
-102,185,169,221,187,119,225,244,233,211,116, 90,218,141,240,105,211,226, 88,135,251,223, 59,170, 57,168,154,185, 39,178, 86, 20,
- 6, 84,249, 63,213,182,164, 66, 83,212, 61,100, 71,234,226,124, 28,180, 95,219,254,165,119,223,125,119, 16,170,102, 56,223,127,
- 76,139,214,243, 34,154,250,122,102, 59, 63,201,172,246,254,106, 17,159, 82,221,254,122,190, 42,179,145,151, 58,184,161,204, 16,
-222,216, 39,116,201,146, 79, 26,220,188,121, 75,255,225,135, 31,166,143, 29, 59, 54,104,214,172, 89,173,119,238,220,217, 91,167,
-211,125, 3,160,188, 54,163,203,136, 17, 35,206, 7, 5, 5, 53, 94,187,118,109, 81,118,118,182,175,201,100,146, 27,141, 70, 70,
-173, 86,103,106,181,218, 99, 70,163,241, 24,128, 84,119, 2,235,233,233,217,254,149, 87, 94, 17,148,151,151,131,207,231,195,104,
- 52,162,168,168, 8, 61,123,246,228,237,219,183,175, 77,125, 18,160,172,172,236,243,111,190,249,230,228,230,205,155, 7,123,121,
-121,117, 22,139,197, 33, 0, 44, 74,165,178, 80,173, 86,255, 90,159,112, 86,171,231, 44,150,194,212,212,212,166, 94, 94, 94,120,
-248,240, 33, 44, 22, 75,225,227,150, 1,137,144,206,190,150,188,175, 97,171,128,198, 56,147,114, 30, 18, 33,157,205, 45,245,245,
-183, 7,235, 67, 5,123, 1,229, 64, 32,165, 36, 36, 36, 72, 19, 19, 19,145,144,144,112,195,145, 69,139, 21, 92, 9, 9, 9, 55,
-216,251,236,238, 79,126,140, 48,214,110,209,170, 77, 65, 2, 85,179, 11, 21, 10,133,175,143,143,143, 77, 96,229,229,229, 33, 47,
- 47, 15, 34,145, 8, 15, 30, 60,128, 72, 36,202,119,165, 19, 34,149, 74, 47,117,236,216,177,197,253,251,247,133, 31,127,252,113,
-195,212,212, 84,175,158, 61,123,182,149, 74,165, 22, 66, 8,116, 58, 29,157,158,158,238,177,124,249,242,176,110,221,186, 25,186,
-117,235,118,121,219,182,109, 90,212,177,254, 21, 69, 81, 23,243,243,243,155, 68, 70, 70,178,162,173,154,184,178, 23, 92, 64,213,
-144, 39,159,207,191, 92, 87, 64,249,124,254,181,219,183,111, 15,148, 73,196, 48, 40, 43, 97, 84, 85,194,172, 84,194,162,172,128,
-165,162, 2, 80, 87, 66,100, 54, 67, 96, 49, 65, 42,145, 32, 55, 39, 7,124, 62,255, 90, 93,156, 34,145,232, 90, 97, 97,225, 64,
- 31, 31, 31, 91, 35,106, 50,155,171, 54,139, 5, 6,179,217,102,209, 18, 8, 4,200,206,206,134, 72, 36,186,246,123,151,100,154,
-166, 45,236, 18, 14,181,196, 3,193,193,193, 76,247,238,221, 49,125,250,116, 88, 44, 22,107, 54, 80,253, 0,156, 65,149,127,203,
- 95, 18,142,196, 45,235,180,174,213,106,161, 82,169, 80, 86, 86,198,151, 74,165, 45,194,194,194,206, 27, 12,134,237,102,179,249,
-219,204,204,204,202,218, 56,173,194,204, 38,186, 24,134, 1, 33, 4, 22,139, 5, 38,147, 9, 66,161,144, 57,117, 42, 25,203,191,
- 88,134,164,111, 55,146, 17, 35, 70, 80,251,246,237, 3,195, 48, 57,191,115,244, 13, 86,209, 82, 87,165, 81,115, 73,133,247, 81,
-247,146, 10,181,113,218,247,254,236,207, 81, 14,238,121, 4,239,190,251,238, 97, 84, 13, 25, 22, 91,197,220,227,112,126, 86,190,
-229, 19, 9,204, 22,181,254,212,102,213,166, 59,149,234, 69,155, 86, 92, 50,136,120,149, 93,250, 6,183,107,210,184, 5,207,199,
-199,151,254,239,186,149, 37, 63,108,220,145,241,240,225,195,202, 47,191,252,178, 71,139, 22, 45,188,127,253,245,215,176,218,132,
-150, 76, 38,107,246,218,107,175,189, 82, 86, 86, 38, 76, 74, 74,218,150,159,159,127, 9, 85, 75,203,216,207,160, 30, 6,224,123,
-171, 16, 13,182,214,115,103, 0,124, 92, 87,127,141,162, 40,252,252,243,207,143,204, 14,100, 30, 79,157,251, 68, 69, 69,189,116,
-255,254,253,211,133,133,133,255,170,121, 81, 40, 20, 46,106,222,188,121,204,141, 27, 55, 62, 2,112,208, 29, 98,141, 70, 51,103,
-199,142, 29,159,242,120,188, 80,139,197,146,247,255,236, 93,119, 88, 20,215, 23, 61, 51,219,151,222, 97, 5, 65, 65, 84, 20, 53,
- 63, 75, 52,177,160,177,196, 88, 18, 19,193, 30,141, 49, 26,147, 88, 99,139, 93,212, 24, 53,177, 17,187,198, 32,177, 18, 75, 68,
- 77,212,216, 21, 27, 6, 27, 54,164, 73, 7, 5, 22,182,239,206,204,239, 15,118,201,178,236,194, 46, 26,141,102,206,247,237,183,
-187, 51,111,206,123,111,234,153,251,238,189, 79,161, 80, 76,123,102,139,150,150, 30,181,100,253,238,205, 10, 53,229, 47, 22,112,
- 50,148, 90,250, 51, 86,135,188,190,214, 44, 61, 10,140,172, 81, 5, 0, 8,147,255,137,250,135,145,154, 97, 24, 67,217, 2, 35,
- 43,150,218,196, 10,102,110, 93,193, 51, 36, 75,103, 44,221,227, 44, 89,180,190, 1,240, 38,128, 43,121,121,121,171, 63,254,248,
-227,239,119,236,216,225, 40,149, 74,145,151,151,135,252,252,124,112,185, 92, 56, 57, 57, 97,221,186,117,138,188,188,188,213,198,
-219,160,106, 6,121, 0, 80,122,120,120, 92,139,137,137,241,217,180,105, 19,119,248,240,225,233,189,123,247,110,188,110,221,186,
- 20, 62,159,207, 80, 20, 69,168, 84, 42, 98,204,152, 49, 65, 43, 87,174, 76,227,112, 56,118, 3, 6, 12, 32,236,237,237,175,160,
-154,180, 1, 5, 5, 5,199, 15, 28, 56,240,225,228,201,147,133,106,181,218,172, 37,203,176,204,197,197, 5, 23, 46, 92, 80, 23,
- 21, 21, 29,171,193,138,113,252,247, 35,135, 59, 13, 29, 56,144,175, 45,149, 66, 91, 42,133, 78, 42, 5, 85, 90, 12,162, 76, 10,
- 30,165,131,152, 79,195,199, 79, 4,157,194, 1,135,175, 38,106, 85, 42, 85,181,137, 13,165, 82,233,241,243,209,209,157,223, 12,
- 8,224, 94, 24, 63, 30, 26,173, 22,239,221,191, 95, 33,174, 52, 26, 13, 14, 54,111, 14,138, 32,240,198,232,209,120,168,211,233,
-164, 82,233,241,127,227,197,112,227,198,141,252, 33, 67,134, 36,208, 52,221, 18, 47,104,210,204, 23, 1,173, 86, 91,197, 26, 69,
- 81, 84,185,213,177,220,114, 32, 56,124,248,112,167,164,164, 36,254,173, 91,183,112,238,220,185, 55,118,236,216,241,141,191,191,
-127,243,140,140,140,220,154,196,155,185,164,191,208,251, 31,238,217,185, 23,159,127,254, 57,145,155,155,139, 93,187,118,161,166,
-228,169,255, 4,134, 15, 87,210,209,209,162,186, 48,241,123, 50,147, 82,225, 47, 88,153, 82,193, 18,167,114,120,185,149, 76, 20,
- 93,158,108, 84, 57,188,124, 56, 80, 20, 93,163,165, 12,195,149,195,165,122,135,248,156,231,192, 41,131,142, 18,171,207,236, 44,
-235,125, 36,163, 52, 62, 71,177, 16,192, 31, 80, 82,204,195,235,204,141, 86,173, 92, 61, 0, 64,165,164,124,130,131,131,195,184,
- 92,174, 0, 0, 28, 28, 28, 90,185,187,187,175,123,242,228, 73, 7,115,199,180, 79,159, 62,237,188,188,188,254,119,244,232,209,
-196,156,156,156,219, 0, 46,155, 22, 10, 10, 10,154,125,247,238,221, 54, 60, 30,143,168,225, 28, 1, 0,132,133,133, 53, 18, 10,
-133,238, 71, 30, 56, 67,202,111, 0,134, 83, 2,112, 69,160, 92, 90, 32,157,223, 4,126,126,151,220,139,138,138,222, 40, 41, 41,
- 73,180,241,208,119,249,240,195, 15,127,138,142,142,246, 11, 11, 11, 99,174, 95,191, 78,154,142, 34, 4, 5, 5,245,136,143,143,
-111,249,217,103,159,109,216,189,123,247, 23,168, 28,105, 91, 19,210,245,249, 6,159, 27,142, 39,227, 4, 64, 5,232,109,102,172,
- 66,249, 15,192,150,148, 11,207,144,158,225,153,154,104,209,128, 97, 97,249,155,250,156, 88,111,106,181,218,191,110,220,184,113,
-112,192,128, 1,101, 79,158, 60,129,187,187, 59,234,213,171, 7,130, 32,176,110,221, 58, 69,106,106,234,175,250, 92, 90,111,102,
-103,103,191,175, 23, 91,230, 80,186,102,205,154,221,219,183,111,119, 73, 72, 72,224,232,116, 58,167,198,141, 27,203, 47, 94,188,
-232,192,227,241, 24, 62,159, 79, 39, 36, 36,216, 5, 5, 5, 41, 9,130, 16,254,249,231,159, 79, 46, 93,186,228, 63,117,234,212,
-173,168, 28, 38,110,138,157,139, 22, 45,202, 74, 73, 73,129, 74,165,130, 84, 42, 69, 73, 73, 73,197,167,184,184, 24, 37, 37, 37,
-224,241,120,200,205,205,197,190,125,251,114,244, 89,226,171,179,108,172,253,113,221,250,130,156,140,116, 56,217,137,161,147, 22,
-131, 42,121, 2,148,150, 64,160,213,192,158, 71,161,110, 3, 49, 68,118, 78,200,147,150, 33,250,226,213, 92,125,150,120,203,230,
- 2,181,122,237,184,149, 43,243,116,124, 62, 2, 34, 34,160,209, 15, 21, 26, 11, 45,138, 32,224,223,181, 43, 72,103,103,124,251,
-235,175,121,250, 44,241, 47, 20, 52, 77,115,212,106,117,117,253, 0, 77,211,153, 73, 73, 73,187, 1,156, 38, 8,130, 33, 8,130,
- 65,121,178,182,178, 87,249, 66,214,106,181,152, 59,119, 46,248,124, 62,230,206,157,139,121,243,230,225,251,239,191,199,250,245,
-235,241,203, 47,191,224,240,225,195,245,207,159, 63,207, 63,123,246, 44,179,100,201,146,194,160,160, 32,206,232,209,163, 93,196,
- 98,241,164,234, 56,167, 77,155, 6, 71, 71, 71, 76,155, 54, 13,203,150, 45,195,150, 45, 91,112,240,224, 65, 92,184,112, 1, 28,
- 14,135,206,204,124, 12,165, 82,201,172, 89,179, 38,235,224,193,131,138,213,171, 87,131,203,229, 18, 47,233, 38, 49, 73, 47,168,
-140, 45, 65,166, 41, 21,158, 0, 88,133,154,125,163, 44,113, 66, 20, 29, 93, 87, 47,142,146,141, 4,209, 33, 0,147, 81,125,120,
-181,129,227, 11, 0, 62,207,129,115,150,120,200,156, 36,151,205,247, 30,197,231, 40,102, 1,248,221,208, 39, 39, 39, 39,241,254,
-253, 7,184, 0,240,107,236, 62,222,253,251,247,157, 15, 28, 56, 32,242,242,242,194, 47,191,252, 34, 18,139,197, 94, 22, 56,169,
-131, 7, 15,170, 4, 2,129,251,168, 81,163,122,182,105,211,102,162,254, 69,180, 43,128,166, 40,143, 94,236,254,232,209,163, 59,
- 30, 30, 30, 15,142, 29, 59, 38,179,230, 0,149,150,150,110,253,249,231,159,235, 61,165,220,112, 68,246, 33,162,233,229, 56,236,
-242, 19,210, 3,230,193,174, 78,107, 12, 30, 60,184, 14, 69, 81,155,109, 60,238,131,251,245,235,247,115,116,116,180,223,168, 81,
-163,114,175, 95,191,158, 7, 32, 26, 64,140,241,231,238,221,187,133, 31,127,252,113,206,230,205,155, 37, 3, 6, 12, 88, 15,160,
- 63,251,232,103,193,162,242,187, 16,106,138, 58, 52,243,192,173,248,157,159,159,191,166,168,168,232,194,195,135, 15, 39,168,213,
-106, 9, 65, 16, 12,159,207,207,205,203,203, 91,109,148,176,212,156, 95, 73, 55,232,115,109, 16, 4,161,101, 24, 38,179, 75,151,
- 46,147,186,118,237, 26, 21, 23, 23,167,236,220,185, 51, 98, 99, 99, 61,186,116,233, 34,167,105,154, 57,114,228,136,199,187,239,
-190, 43, 63,125,250,180,108,204,152, 49,141, 27, 54,108, 56,122,218,180,105, 5, 4, 65,208,230, 56, 13,207,178,226,226,226,126,
- 61,123,246,188,240,235,175,191, 58,185,184,184, 64,167,211, 65, 46,151, 67, 46,151,131, 97, 24, 56, 59, 59,163,160,160, 0, 11,
- 23, 46,148,150,148,148,124, 96, 70,184,153,114, 42,149, 74,101,255, 47, 38, 78, 62,190,122,193, 92, 71,255,250,245,241,228,158,
- 18, 58,165, 28, 60,134, 68,221, 70,206,224, 11,196,120,120,191, 20, 83,118,239, 47, 85, 40,149,225,102,222,150,171,112,150,148,
-148,244, 31, 62,111,222,137, 13, 83,167, 58,252,207,219, 27, 28, 14, 7, 42,149, 10, 20, 69,129,199,227, 33,116,248,112,240, 61,
- 61, 49,123,247,110,153, 84, 42,237,143,170, 83,241,152,114, 62, 15, 24,115,126,113,227,198,141,143, 67, 66, 66, 48,118,236, 88,
-244,235,215,175, 82,193, 3, 7, 14, 96,253,250,245, 80,169, 84, 31, 3,184, 14, 96, 29,202,135, 58, 96, 34,178,254,233,118, 62,
-119, 78,138,162,138,238,223,191,239,180,124,249,114, 66,163,209, 96,193,130, 5, 48, 8, 78,195,121,253,229,151, 95,214,113,116,
-116,196,252,249,243,213,133,133,133,239, 44, 91,182,236,100, 76, 76,140,199,214,173, 91, 7, 3,152,102,202, 73,211,116,254,205,
-155, 55, 29, 55,108,216, 64,234,116, 58,172, 88,177,162,202,240,228,200,145, 35,161,209,104,193,225,112,213, 74,165,170,169, 88,
- 44, 78,118,119,119, 23, 51,149,157,187, 94,228,254,244, 69,121, 10, 3, 99,199,119,181,177,127, 22, 44,167, 84,176,133,179, 64,
- 20, 29,221, 89, 57,124,248,105,189, 32, 74,210,151,137, 53,152,244,109,224, 52, 8,194,218,112, 30,215,127,106,132, 82,169, 68,
- 65, 65, 1, 10, 11, 11,225,226,226, 2, 14,135, 67, 88,106,167, 74,165,186, 53,101,202,148, 27,155, 55,111,238, 22, 31, 31,223,
-247,236,217,179, 93, 78,156, 56,161, 76, 79, 79,215,105,181, 90, 70, 34,145,112, 59,116,232, 32,234,213,171,151,189, 80, 40, 36,
-103,205,154, 85,184,120,241, 98, 15, 84,246, 97, 51,237, 59,135, 32, 8,124,221,169, 20,211,186,112,160, 86,107, 80, 92, 92,140,
-172,172, 76,220,185,115, 7,241,241,247,192, 48, 12,105,195,113,119, 7, 48,107,215,174, 93,190, 2,129,128,216,189,123,119,157,
-221,187,119,215,104, 73,221,177, 99, 71,157, 61,123,246, 68,234, 71, 47, 50, 95,197,235,157,229,252,215,114,190,202, 48,205, 12,
-143, 26,133,150,254, 62,255, 38,244,147,146,106,181,218, 43,102, 82, 56,124, 3, 96,174,145, 21,172, 38,115,158,148, 97,152,115,
-221,186,117,251,178,107,215,174, 43,123,244,232,145,147,147,147, 19,184, 98,197, 10, 63,157, 78,167,185,115,231, 14,153,156,156,
-156,126,237,218,181, 6, 13, 27, 54, 28,125,247,238,221, 51, 4, 65,104,172,232,224,157,228,228,228,246, 93,186,116,217, 55,122,
-244,104,255,118,237,218, 9, 92, 92, 92,192,229,114,145,146,146,130,196,196, 68,245,158, 61,123, 50,139,139,139,109,153,130,231,
- 74, 90, 86, 86,247, 1, 95, 77,248,117,116,191,190, 30,109, 27, 55, 18, 72, 36, 18, 64,161,192,189,140, 92, 92,186,151,168,217,
-114,238, 82,129, 74,165,234, 15,235,167,224,185,114,237,225,195,110,239, 76,157,250,107,228,208,161,222,200,201,225, 74, 36, 18,
- 8, 4, 2,164,166,166, 34,153,166,117, 75, 55,110,204,211,139,172, 23,157, 21, 94, 8, 96, 57, 77,211, 92, 0, 16,139,197, 24,
- 55,110, 28,140,167,220, 89,191,126, 61, 20, 10, 5, 0,112, 9,130, 88, 14,224,167, 87,221,138,101,192,211,167, 79,103,191,247,
-222,123, 75,184, 92,174,197,172,183,174,174,174, 40, 45, 45,133, 78,167,163,178,178,178,238,185,186,186,130,199,227,129, 97, 24,
-179,215,209,147, 39, 79,102,247,239,223,127, 17, 73,146,150, 44, 31,112,114,114, 74, 63,121,242,100,240,103,159,125, 70,110,219,
-182, 45,101,212,168, 81,194,147, 39, 79, 82, 12,195,236,123,209,251,160, 99,199,157,192,134,225,225, 0,194,129, 42, 14,239, 89,
-250,101, 54,165, 84,232,216,113, 39, 54,224,111, 78,227, 97, 60,131, 32,210, 91,161,154,136,162,163, 87,162,220,207,162, 90,238,
-142, 59, 59, 98,195,112, 60, 87, 78,107, 96,172,125,101, 50, 25, 40,138,170,206,154,247, 87,108,108,236,202,107,215,174,121,126,
-249,229,151,129, 67,135, 14,117,234,210,165,139,131,113, 1,133, 66, 65, 31, 58,116, 72,182,126,253,250,146,115,231,206,165,141,
- 28, 57,178, 93,117,237,204,200,200, 56,252,237,183,223, 58,247,234,213,171, 33,128, 10,255,172,130,130, 2,164,167,167,227,214,
-173, 91,233, 26,141,230, 55, 27,186,244, 4, 64,228,160, 65,131,150,111,223,190,189,206,168, 81,163,114,247,236,217,115, 11,229,
- 9,139, 77,225,210,175, 95,191,230,219,183,111,151,140, 26, 53, 42, 23,229,126,100,153, 96,193,130,133, 1,157, 81,213, 79,171,
-218,145,137,159,213,106, 53,163, 84, 42, 25,185, 92,206,148,149,149, 49, 48, 63, 11,252,193,236,236,108, 38, 51, 51,147,201,200,
-200, 96,210,210,210, 24, 0,191,152, 40, 94,115, 55, 44,251, 29, 59,118, 52,240,245,245, 93, 96,103,103,247, 7,135,195,145,114,
- 56, 28,169, 80, 40,252,221,221,221,125,222,210,165, 75,125, 25,134,225, 87,163,162, 45,129,203,227,241, 62,243,242,242, 58,232,
-230,230,150,233,234,234,154,233,229,229,117,144,199,227,125, 14,128, 87,131, 50,183, 4, 17,151,203,157, 98,111,111,127, 92, 40,
- 20,230, 11,133,194,124,123,123,251,227, 92, 46,119, 10,170, 79,164, 90, 45,167, 64, 32,152,226,233,233,121,220,201,201, 41,223,
-201,201, 41,223,211,211,243,184, 64, 32,120, 22,206,103,121, 43, 49, 8, 45, 57,163, 7, 65, 16,218, 55,222,120, 99, 67,203,150,
- 45,215,181,108,217,114, 93,139, 22, 45, 54,233,173,146,140,222,218, 34,135,229,228,141,255,100, 59, 95, 26,103,104,104,104,204,
-246,237,219,233,217,179,103, 75, 27, 54,108,248,116,246,236,217,210,237,219,183,211,161,161,161, 49,181,229,244,246,246, 14, 8,
- 13, 13,125,186,121,243,102,221,253,251,247,153,205,155, 55,235, 66, 67, 67,159,154,100,134,127, 17,125, 39, 0, 4,233,173, 63,
-191, 1,216,139,114,231,119, 95, 0,196,112,229,112, 70, 31,125,248, 7,128, 30, 22,142,189,181,156,126,202,225,195, 25,189, 79,
-213, 49, 0, 73, 70,255,195, 80,217,255,235, 69,112,154, 69,211,166, 77, 31, 50, 70, 80,171,213, 76, 65, 65, 1,115,255,254,125,
-230,220,185,115,140,159,159,223, 67, 43, 56,221, 1,140, 1,112,200,199,199,231,238, 91,111,189,149,209,190,125,251,140,128,128,
-128, 20, 30,143, 23,143,242, 12,239,161,250,207,114, 0, 13,107,224,124,203,197,197,229, 91, 63, 63,191,223,130,131,131, 47,212,
-171, 87, 47,222,205,205, 45, 78, 36, 18,125,135,191, 51, 99,219,122,206,119,249,240,195, 15,211,203,202,202,168, 86,173, 90,221,
- 53,183, 81, 72, 72,200,249,178,178, 50,106,224,192,129,153, 0,250,252, 23,174,119,150,243,165,112,254,167, 16,172, 23, 76, 7,
-141, 62,223,152, 41,247,141, 73,153,159,245,219,214,120, 32, 24,134,225, 48, 12, 99,207, 48,140, 51,195, 48,110, 12,195,184, 48,
- 12,227,192, 48,140,176, 6,243, 55,123, 98,255,115,156, 95,232, 5,148, 92,255,219, 20, 53,173,127,173,247,167,175,175,175,107,
-155, 54,109,190,218,191,127,255,148, 71,143, 30, 77,217,191,127,255,148, 54,109,218,124,229,235,235,235,250, 44,237,244,246,246,
- 14,104,210,164, 73, 84, 72, 72, 72,102,147, 38, 77,162, 76, 68,214,139,236,187, 64, 47, 98, 66,244,159, 64,253, 50, 2,229,185,
-176,214,234,133, 77,144,133, 55, 53, 91, 56, 13,124,191, 1,120, 87,255,249, 77,191,204,239, 37,112, 86, 65,253,250,245,143, 54,
-111,222,252, 97,139, 22, 45,146, 91,180,104,241,176,105,211,166, 15, 27, 55,110,252, 48, 40, 40,232, 97,221,186,117, 31,122,120,
-120, 28,173,197, 49,114, 3, 32, 65,213,105,192, 94,246, 57,223, 57, 52, 52,244,146, 72, 36, 50,155, 27,140,203,229, 70,182,104,
-209,226, 38,202, 35, 37,217,251, 39,203,201, 10,173,127, 17,216,147,240,213,227, 20,162,250,105, 70,106, 90,207,238,207, 87,155,
-211,236, 92, 93,122, 33, 19,168, 23, 56,130,231,192,105,204,103, 56,167,130,140, 68,211,203,224,100,207, 37,150,147,229,100,133,
-214,115, 7,151,221, 5, 44, 76,160,122,198,245, 44, 94,109,216,146, 19,235, 89, 56,205,241, 61,122,201,156, 44, 88,176, 96,241,
-188,238,157,157, 1,156, 49,188, 21, 90, 82,165,182, 68, 19,212, 70,217,158, 96, 57, 89, 78,150,147,229,100, 57, 89, 78,150,243,
- 63,199,105,192, 74, 11,203,239,153,252,223,244,138, 10,175, 23,146,166,135, 53,171,178,156, 44, 39,203,201,114,178,156, 44, 39,
-203, 89, 91,140,126, 69, 69, 86,152,225, 15, 59,116,200,130, 5, 11, 22, 44, 88,176, 96,241,252, 80,115, 30,173,189,123,247,114,
- 12,191, 7, 13, 26, 52,146,162,168,175, 12,255, 57, 28,206,143,187,118,237,250,169,186, 26, 34, 34, 34,168,234, 56,205,161,166,
-122,204,113, 54,109,232, 52,214,221,217,110, 66,113,137,124, 85, 74, 54,117, 78,169, 84, 54, 49,172, 19,137, 68, 73, 63,253,244,
-211,131,231,221,206,145, 35, 71, 54, 52,173,167,158, 31,175,179,155,163,104,220,211,226,178, 21,183, 31,150,109, 98,207,177,151,
- 2, 15, 0,125, 28, 69,252,247,155,186,240,223,186,245, 68,121, 81,166,161, 14,161, 60, 26,182,232,117,236,176,143,143, 79, 99,
- 39, 39,167, 97, 0,154,202,229,114, 47, 59, 59,187,124, 0,119,164, 82,105, 76,110,110,238, 61,107,121,194,234, 33, 29,128,191,
-254,111,198,153, 52, 4, 88,179,174, 38,244, 8,130,146, 1,132, 4, 1,205,177,228,191,157,209,223,109, 0, 37,205, 84, 93,222,
-163, 1,212, 12, 3, 62, 1,168,142, 61,130,232, 53, 58, 84, 78, 0,186,163, 60,133,195, 13,148,167,159,144,179,151, 44, 11, 22,
-175, 21, 76,135, 10, 43,254,115, 45,136,137, 78,124, 46, 17,197,128,113, 1, 24,119,149, 74,197, 19, 8, 4, 80,171,213,176,179,
- 19,175, 29, 51,106,228, 2,144, 40,214,234, 48,238,167,159,126,170,245, 76,215,182,212, 3,224,148,233,246,174, 78,226, 69,167,
- 15, 77,119,237,212,123,233,119,234,212,194,105,165,165,165,164, 80, 40,132, 74,165,130,179,179,115,251,177,163, 71,183, 34,121,
-140,154,207,183,191,184,114,229,202,220,218,182,115,210,164, 73, 62, 26,141,242,109,154,166, 5,106,181, 90,104, 90,143,179,157,
-253,210,211,135,166,219,133,245,249,110, 1,192, 10,173,151, 0, 65,128,171,253,153, 85,131, 58,135,188,213, 52, 24,244,157,179,
- 80,170, 53,239,159,206, 44,123,127, 94,124,246,228,204, 50, 77, 75, 60,135,132,149,255, 34,112, 2, 3, 3,191,244,244,244, 28,
-184,113,227, 70,126, 96, 96, 32, 68, 34, 17, 20, 10,133,228,209,163, 71,146,177, 99,199,134,137,197,226,221, 41, 41, 41,107, 97,
-221, 68,112,254,167,127,158, 3, 0,104, 63,108,161, 63,202, 39,139,150,155,174,235, 60, 98,161, 63,128,169,168, 60, 49,114, 14,
-202, 83, 40,152,187,235, 8,226,182,127,143,247, 63,158,194, 5, 48,182,162,241, 36,240,251, 47,171,209,115,208,132, 74,203, 9,
- 6,220, 67,219,191, 71,159,143,167, 88,156, 71,241,221, 96, 66, 75,211,140, 69, 75, 60, 73, 18,186, 63, 30, 50,230, 38, 24,206,
- 67,121, 14,176, 42,148, 40,159,208,217,108,249,222,141, 57,121, 26, 45,101, 54,225, 44,159,199,201, 63,124,143,170,178,237,240,
-255, 65,171,165,202,239,173,124, 46,168,131, 41,206,167,103,205,154,197,237,211,167, 15,182,108,217,210, 97,211,166, 77,163, 75,
- 75, 75,255,212,239,183,100,246,242,101,193,226,181, 22, 92,230,133, 22,151,131, 13,191,253,250, 83,131,188,252, 66, 12,255,236,
-107,236,220,185, 19, 69, 69, 69,112,117,117,133,128,207,231,173, 90, 62,199,199,201,201,222,103,248,232,105, 27, 0, 52,174,109,
-107,108,172, 39,216,116,123, 66, 63,149, 14,151, 67,242, 4, 2, 1,185,123,247,110, 20, 23, 23,195,197,197, 5, 2, 1,143, 92,
-249,221, 55, 98, 39, 39, 7,241,167, 95,204,232,128,242,252, 63,181,130, 90, 93,214, 97,255,206,159,156, 10, 10, 10, 48,226,243,
-105, 48,173,135,207,231, 83,134, 7, 11,123,142,189, 20,204,218, 56,238,227,144,102,142,128,230,246, 5,240, 56, 28,216, 57,187,
-162, 59,151, 3, 14,129, 38,195,255, 72,155, 9, 96,222,235,210,217,192,192,192, 47, 35, 34, 34, 6, 46, 90,180,136, 79,146,229,
- 41,231,100, 50, 25, 20, 10, 5,124,125,125,113,250,244,105,254,236,217,179, 7, 30, 56,112, 0, 41, 41, 41,107,108,229,191,125,
-251,118, 61,127,127,127, 37, 0,244,109,238,104,186, 46,192,176, 14, 0, 28, 29, 29,107,228,115,119,177, 87,221,190,125,169,169,
- 97,187, 47,187,250, 82, 22,150, 43, 1,216, 85,199, 69,211, 12,247, 88,212, 88,139,235, 63, 91,180, 67,119, 99,239,185,198,129,
-129,129, 10,227,229, 14, 14, 14,150, 54,241, 46, 43, 43,243, 55, 93,104, 40,175,209, 82, 94,150,234,235, 49,110,189, 89, 1,166,
-165,192,221,177, 99, 7, 0,224,135, 41, 67, 56,155, 47, 23,114,185,220,242, 91,237,242,229,203, 17, 25, 25, 41,248,227,143, 63,
-122,109,223,190,189,215,193,131, 7, 87, 89, 18,170, 44, 88,176,120, 37, 69,150,241,183,101,161, 69, 18,132,163,147,163, 3,194,
- 7,143,193,209,163,191,163, 83,167, 78, 21,235,234,215,175,143,136,254, 31, 96,215,207, 43, 1,192,241, 89, 90,244,172,245, 20,
-149,200,230,245, 28, 24,181, 48, 35,183, 44, 62, 46, 46, 14, 29, 59,118,172,180,253,224, 1,225,248,101,235,114, 84,147,101,222,
- 42, 16, 12,201,119,116,178,199,160,225,159,195, 92, 61,163, 71,244,139,123, 55, 98,117,183,188, 39,178,149,236,121,246,226,209,
-192,199,189, 71,243,144,198, 40,218,183, 22,137,197, 74, 28,205, 86,226,211,238,109, 17,234, 38, 70, 71, 29, 5, 31,123,222, 59,
-185, 50,237,107,109,100,132,121, 0, 0, 32, 0, 73, 68, 65, 84, 33,180,124,124,124, 26,123,122,122, 86, 18, 89,165,165,165, 40,
- 43, 43,131, 84, 42, 69,105,105, 41, 72,146,196,180,105,211,248,103,206,156, 25,232,227,227,115,194,138, 97,196, 12,189, 37, 11,
-224,240,202,230,206,157,171,242,242,242, 82,217,217,217, 49, 92,190,176,180,243,136,133,142, 0, 64,114,249,165,171, 86,173, 82,
-251,250,250, 42,185, 92,174, 96,194,132, 9,164, 53,109, 86,169, 84,140, 49,167, 90,173,170, 88,190,116,233, 82,181,183,183,183,
-202,206,206,142,209,104,172, 55, 58,222, 76,125, 10, 33,159, 3, 33,159, 3,145,128, 7,199,122,109, 32, 44,186, 5,157, 78,135,
-101,203,150,105,124,124,124,212,118,118,118,140, 64, 32,224,143, 31, 63,190,198,118,142, 28, 57,146,113,113,113,209,216,217,217,
-241, 35, 35, 35,171, 68, 10,157,188,145, 5,177,128, 7, 59, 33, 23,193,245,253, 32,100, 20, 86,183,149,195,169,236,141, 32, 20,
- 10,209,161, 67, 7, 52,109,218, 20, 7, 15, 30,236,204, 10, 45, 22, 44, 94, 11, 88,140, 48,228, 2, 64, 92, 92, 92, 24,202, 39,
- 68, 68,159, 62,125,136,242, 45, 24, 76,253,178, 63, 62, 29, 49, 8, 20, 69, 87,204,243, 69,144, 4,190,248,164, 23,104,218,154,
- 17,137,154, 67, 60,107, 81, 79, 5, 39, 67,144, 28, 0,104, 16, 32, 97, 70,127, 58, 20, 20, 77,255, 61, 80,194, 1,198,140,232,
- 89,190,236, 57,180,147, 3, 10, 95,143,253, 8,230,234,105,220,160, 14,169,211, 40, 65, 84,158,236,241,159,152,108,147,229, 52,
-131,166,117, 37, 65, 90,133, 2, 74,165, 22,209,247,158, 42,142,103,201,188, 72,151,180,130,213,225,237, 68,156,130,108, 4, 56,
- 10,130,115,101,218,215,162,239, 78, 78, 78,195, 54,110,220, 88, 69,100,229,229,229,145,101,101,101,208,104, 52,116,105,105, 41,
- 40,138,194,140, 25, 51,120,179,103,207, 30,150,155,155, 27,105,208, 60,230, 56,245,126, 87, 83,111,223,190, 29, 48,107,214, 44,
-205, 59,239,188,147, 81,191,126,125, 25,135,195,129, 68, 34, 89,221,189,123,119,183, 69,139, 22,105,122,245,234,149,198,225,112,
- 16, 28, 28, 44,187,117,235, 86, 0, 0,177,181,125, 55,230,252,233,228,143, 12, 0, 16, 4,129,238,221,187,167, 7, 7, 7,203,
- 56, 28, 14, 30, 28, 90,202, 88,187, 63,121, 92, 18, 13,125,157,245, 55, 17, 2, 16, 59, 84,120,226,117,239,222, 61,179,113,227,
-198,101, 36, 73,226,230,205,155,126,168, 58,173, 85, 21, 78,177, 88,172, 29, 60,120,112,198,189,123,247,204,149, 7,151, 67,162,
- 93, 99,189, 1,203,183, 37,144,121,222, 98, 59,121, 28,232,102,127, 57,132,235, 34, 2,132,142, 30, 42,169, 84, 10, 39, 39,167,
-114, 11,153, 70,131,191,254,250, 11,111,189,245, 86,216,222,189,123,207,176,215, 59,203,201,114,254, 13,115, 90,228, 21,180,102,
- 25, 79,116, 95,201, 71,235,180,105,167, 40, 74,135,250,254,222, 88, 58,103, 36, 40,138, 6, 69, 81,208,233,191, 41,138,130, 86,
-163,121, 46, 45,123,150,122, 92,157,196,139,126,223, 61,206,245,157,126,203,187, 46,153, 53,226, 56, 69, 1, 52,173,133, 86, 11,
- 80,180, 22, 52, 69, 65,171,125, 62,174, 57, 90,154, 70,128,159, 15,150,204, 26, 1,211,122, 98,118,237,237,123,242,183,105,118,
-157,250,124,247,245,131,116,249, 50, 86,216,191, 88,136,248, 66, 46,195, 21, 65,173,214,161, 84, 77,171, 1,200,148, 90, 90,195,
-216,123,136, 0,128, 75, 18,175, 83,116,109,211,192,192,192, 74, 34,235,251,239,191,247, 88,183,110,157, 47, 0,244,239,223, 63,
-171,107,215,174,133,247,239,223,135, 68, 34, 33, 10, 11, 11,123, 3,152,160,223,118, 42,128,117, 22,120,101,254,254,254, 74, 79,
- 79, 79,149, 65, 16,145, 36, 9, 46,151, 11,127,127,127,165,151,151,151, 42, 56, 56, 88,198,231,243, 65,146, 36, 12, 66,207,170,
-215, 60,130, 0,135,195,129,129,211,212,218, 99,224,180, 5, 60, 46, 89,245,246,102,196, 73,146,164,217,250, 44,158, 67, 34, 17,
- 3,192, 98,121, 14,105,116,123,228, 86,239, 33, 16,253, 23,120, 0, 78, 51, 12,131,235,215,175, 35, 37, 37, 5,124, 62, 31, 62,
- 62, 62,136,140,140,132, 74, 85,174,119, 35, 34, 34,194, 0,220,100,175, 96, 22, 44, 42,112,250, 21, 20, 88,166, 86,173,234,125,
-180,226,226,226,194,250,244,233,115,198, 32,128,202,197,142, 25,241,163,213, 65,171,213, 0, 12,243, 92,132,150,165,122, 40,138,
-174,182, 30,131,143, 22, 77, 51, 92,179, 34,139,166,161,211,106,159,203,222,163, 41, 45,104, 90, 11,115,245, 16, 4, 73,233,111,
-248,124,246, 58,121,241,240,241, 15, 32,181,254,245,113, 78,167,132,175,187, 80,128, 66, 5, 2, 27,133,112,254,146,107,113,225,
- 70, 18, 60, 28,156, 94,155,227, 34,151,203,189, 68, 34, 17,100, 50, 89,133, 37,107,221,186,117,190,106,181,154, 4, 0, 46,151,
-231, 87, 64,251,138, 40, 26,112,118,202, 65, 81, 81,137, 59,195, 48,132, 94,240, 44, 7,240, 19,170,201,238,207,231,243, 43, 4,
-138,177, 0, 18, 10,133,181, 18, 48, 6, 24,196, 25,159,207, 55,187,220,116,120,173, 38,240,141,133, 22,152,114,171,150,137,216,
-226,112, 56, 48,248, 70,213, 4,129, 64, 80,209,119,115,224,114,140,234,227,216,238,138,169,209,104, 80, 86, 86,134,226,226, 98,
-136, 68,229, 6, 51,134, 97, 64, 16,196, 4, 0, 19,217,171,152, 5, 11,243, 90,228, 21, 22, 91,230,133, 22,202, 77,118, 4, 0,
-232,180, 26,179,226,103,239,161, 11,200,200,149,193,199,227, 10, 24, 27,179,158, 14, 28, 56,240,103,137, 68,210,206,240, 95, 40,
-118,112, 31, 61,110, 62,116, 58, 13, 28,197, 36, 62, 27,214,179,146,200, 42,183,104,169, 45,206, 9, 82, 84, 34,155,215, 51, 98,
-205, 66,103, 39,247,120, 83,241,179, 36, 58, 33,188, 72,170,242, 35,201,171, 40, 34, 36, 84,196,152,249, 35,141,110,238, 55,118,
-175,159, 59,217,106,123, 32, 65,242,194,199,174, 30,205,112, 29,154,216,145,165,103,167,143,104,187,223, 88,204,185,185,185,197,
-245, 8, 95,213, 45,239, 41,235,163,245, 50,224,232,236, 66,250,181,238,140,214, 19,162,112,242,155,233, 12, 80, 4,119,137, 47,
-217,229,203,197,112,104,221, 23,151, 62, 27, 70, 3, 79, 95,139,190,218,217,217,229,203,229,114,137, 66,161,128, 84, 42,133, 84,
- 42,173, 44, 8,120, 60, 98,244,231, 95,121,240,248, 2,104, 53,106, 28,141, 89, 92, 35,167, 33,133, 67,223,230,142,224,240, 4,
-165,119, 2, 3, 87,115,185, 92,144, 36,137, 67,107,167, 79,216,183, 98,156, 35, 0,220,136, 91, 43, 29, 52,237,199, 53, 36, 73,
- 66,165, 82, 9,109,105,247,227,199,143,253, 84, 42,149, 82, 47,208, 12,194, 15,169,169,169,117, 85, 42,149,194,120,185, 53, 16,
-219, 57, 2, 46,245, 1, 59,175, 42,214,179,180,180,180, 58, 90,173, 86,206,229,114,161, 86,171,173, 82, 69, 36, 73,242,111,222,
-188,233, 71,211,180,217,242, 77,131,234, 0, 62,205, 1,129,179,213,125,102,172,120, 17,213,139,173, 23,150, 65,154, 5,139, 87,
-197,178,245, 10, 94, 19,132,133,223, 21, 66,171,115, 92, 92, 28, 99,252,134,168,211,106,245, 34,235,111,209, 67, 81, 52,178, 11,
-148,184,127,255, 1, 86,173, 90,133, 11,151,166, 56, 47, 90,180, 72, 56,123,246,108,213,192,129, 3, 87,208, 52,221,130, 36,201,
- 27,248,123,168,162,178, 85,136,166,235, 38, 36, 36, 4, 26,254,107,181, 90, 56, 58, 58,194,209,209, 17,141,131,253,170,136, 44,
-138,162,160,169,102,232,208,224,163, 69, 48, 52,163,213, 82,160,104,186, 66,252, 20, 73, 85,126,191,157,184,222,192,168,120, 35,
-195,143, 14,109,154, 88, 22,131, 99, 35, 43,250,177,123,253,220,201,139,182,108, 17, 22, 81,158,227, 7,133,127, 26, 26, 49,104,
- 24, 6,127,244, 94,152, 74,173, 62,200, 33, 25, 90, 91, 81, 31, 72, 48, 48,245,209, 98,241,130,144, 92, 44,211,242,132, 98, 56,
-248,212,195,131, 50,138,207,225,112,174, 60, 42,150,243, 73, 14, 23, 36,151,143, 59, 69, 74,237,107,212,221, 59,201,201,201,146,
-186,117,235, 66, 42,149, 66,167,211,209,253,251,247,207,226,114,121,126, 92, 30,143,232, 51,232, 43, 58, 55, 55, 91, 75,146, 28,
- 48, 12,133,247, 34,198, 18, 66,145,152,175, 81,171,117, 40, 31, 58, 52,103,205, 50, 78,225,224,216,189,123,119, 55, 67, 36,224,
-190, 21,227, 28,141,214, 57,181,106,213,202,205, 56,234,208, 74,107, 17, 49,112,224, 64,177,191,191, 63, 1, 0, 87, 99,102, 25,
-172,103, 68,223,190,125, 69,254,254,229,126,248,127,174, 29,103, 53,167,135, 29, 3,148,164, 2, 37,105, 85, 44, 89,125,251,246,
- 21, 6, 6, 6,218,116, 45,234, 29,224, 45,230,238,178,231,234,128,220,235, 86,113, 13,255, 31,180,190, 14,224,174,120,143,132,
-192,193, 93,213,110,250, 31,151, 89,177,197,130,133, 85, 48,209, 34,175, 20,194,244, 2,177,179,254,187, 66,112,113, 1, 64,111,
-162, 35,140,116, 22,180, 58, 77, 21,145, 69, 81, 20,120,132, 10,171, 86,173,194,196,137, 19, 1,128, 63,121,242,228,253,139, 22,
- 45,250,144,166,233, 22, 12,195,116, 36, 8,162,186,183,198,211, 18,137, 36,143, 97, 24, 30, 73,146, 29,215,174, 93,235,214,171,
- 87, 47, 56, 58, 58,130,161,153, 42, 34,139,162,104,104, 52,106,139,211,220,186, 58,137, 23,253,190,119,188,235, 59, 31, 44,239,
- 74,209,244,113,131,200,162, 41, 10,160,203, 55,122,146,159,133, 99, 71, 15, 98,195,250, 13, 69, 32,152,187, 96, 64,235,197, 32,
- 44,136,193, 22,231,175, 38,117,236,208,166, 9, 22,109,217, 34,188,157,144,179,255,171, 73, 51, 67, 35, 6, 13,195,222, 93, 49,
- 32,117,197,215,141, 69, 22,165,165, 81, 82, 84,216,247, 20,235,163,245,178,224,118,236,248,113, 98,216,176, 97,116,105,105, 41,
-248, 2, 1,173,213,106, 57,111,191,253, 54, 53,113,226, 68, 50, 55, 55, 23,210,210, 50, 46, 0, 55,188, 6,102, 45,169, 84, 26,
- 51,118,236,216,176,179,103,207,242, 73,146,132, 84, 42, 69,151, 46, 93, 10, 11,104, 95,209,232,207,191,242,200,206,206,210, 57,
-137,185, 42, 62,159,135,252,252,124, 58,172,215, 16,197,160,145, 19,235, 76,156,181,100, 99,206,197,245,235,172,169,195, 56, 18,
-208,116,221,230,205,155,213,190,190,190, 74,161, 80, 40, 24, 49, 98,132, 85,227,135,106,181,154, 89,186,116,169,202, 52,186, 80,
-173, 86, 51,171, 86,173, 82,251,249,249,169,196, 98, 49,163,213,214,236,247, 73,146,132,238,179, 69, 59,116, 58,157,174,146, 21,
-203, 32,178,180, 52, 81, 22, 21, 21,165,241,243,243, 83,219,217,217, 49, 66,161,144,111, 77, 59,191,250,234, 43,198,213,213, 85,
- 99,111,111,207,159, 54,109,218, 51, 69, 29,106, 41,112, 23,173,173, 72,239, 32,116,116,116, 68,105,105,105, 69, 91, 37, 18, 9,
- 43,182, 88,176, 48,131, 42, 90,228,213,180,194, 89,151, 71,139, 6,202,242,242, 11,189, 60,188,235, 65,167,211,233, 63, 90,232,
-180, 90,140, 31, 51, 8, 43,214, 71, 1,128, 65,108,117,159, 60,121,242,126, 0, 53,222,204,118,239,222,189,112,242,228,201, 78,
-121,121,121,127,252,252,243,207,110, 67,134, 12,193,212,169, 83,177,124,249,114,240, 4, 34,184,121,214,173,168,199, 80,111, 97,
-193, 83, 48, 96,202, 44,216,233, 52,229, 55, 41,112,221, 61, 3,160,165,180,160,181, 90,104,181, 90, 16,156,242,174, 29, 59,122,
- 16, 67, 62,249, 10, 60,161,147,235,143,171,150, 41, 66, 91, 75, 62,156, 61,106,148,202, 10, 35, 32,121, 59, 33,103,255, 87, 19,
-167,117, 55,136,172, 95, 99,214,223,253, 97,198, 7, 59,133, 2,110, 69, 61, 90,154, 6, 73,114, 88, 31,173,151, 36,178,132, 66,
- 97,236,145, 35, 71, 30,182,108,217,146,144,201,100,208,106,181, 40, 44, 44,196,254,253,251,239, 48, 12, 3, 87, 87, 87, 28, 57,
-114,132, 30, 50,100, 72,172, 74,165, 10,127,213,197, 86,110,110,238, 61,177, 88,188,123,230,204,153,131,102,204,152,193,163,105,
- 26,247,239,223, 7, 8,130,225,241, 5, 32, 73, 18, 60, 30, 23, 37, 37, 82,218,206,193, 37, 71,195,112,236,120,124, 1, 72, 14,
-191,186, 48,225, 12,125, 50, 82,144, 92,126,169, 33, 18,144,207,231,227,210,222,239,165,157, 71, 44,116, 2, 0,190, 80, 92,212,
-163, 71,143,244, 38, 77,154,200,174, 93,187, 22,128,170, 81,135,166,215,167,174,223,136,105, 28, 59,177, 72,214,189,123,247, 12,
- 3,103,218,241, 31,165,195,190,152, 69, 16, 28,129,172, 79,159, 62,233,161,161,161, 50, 14,135,131,164,131,203,164,253, 70, 76,
- 19, 17,213, 36, 89,253,227, 33,243,217,141,189,231, 26, 47, 94,188, 88,219,171, 87,175,199, 6,127,177,180,180,180, 58,189,123,
-247, 22,174, 92,185, 82,219,187,119,239,204,102,205,154,149,145, 36,137,132,132, 4,191,234, 44, 85, 6,136,197, 98,237,167,159,
-126,154,113,235,214,173,218, 70, 29, 86,139,186,117,235,130,166,105,116,233,210, 5, 74,165,146,181,108,177, 96,241,122,194, 52,
-143,150,229,204,240, 90,157,246,171, 49, 19, 22,252, 8, 16, 14, 70,119,129,191, 13, 75, 12,136, 41, 83,190,182, 7, 32, 54,136,
-173, 73,147, 38,213, 56,205,137,145,200,106, 61,100,200, 16,124,243,205, 55,248,225,135, 31,168,229,203,151,115,238, 61, 72,213,
-140,248, 98, 94,177, 73, 61, 96,192,148,209, 90,250, 43,115,124, 69, 37,178,121, 29,123,127,183, 32, 43, 79,126,126,196,216,217,
- 21,119, 47, 10,128,148,144, 80, 0,176, 97,253,122, 25, 79,232,100, 31, 49,104, 24, 0,116,255,113,213,178,253,139,176,165,102,
-177,197, 16, 33, 95, 77,154,230,106, 16, 89,107, 87, 46,190,229, 76,228, 69,141,251,250,142,214,184, 30, 0,112,115,196,254,142,
-189,191,123, 55,255,169,108, 53,123,158,189, 56, 8, 4,130,133, 39, 79,158,180,111,222,188, 57,241,228,201, 19, 80, 84,249, 17,
-209,104, 52, 40, 41, 41, 65,105,105, 41, 84, 42, 21, 90,181,106, 69,174, 89,179,198,126,220,184,113, 11,213,106,245, 23,175,122,
-191, 83, 82, 82,214,254,246,219,111, 56,115,230,204,192, 25, 51,102,240,124,124,124, 8,103,231, 60, 66,171, 81, 3, 96,152,130,
-130, 2,218,206,193, 37,199,195,219, 47, 35, 59, 55, 63, 68,171, 81,131,166, 52, 22,189,205,245,233, 29,166,220,190,125,187,222,
-247,223,127,175, 54,142, 4, 28, 52,237,199, 53,173, 90,181,114,139,138,138, 82,247,233,211, 39,221,224,188,110,141, 51,252,177,
- 71,152,112,251,246,205,166,166,156,157, 71,127,191,213,192,105, 28,141,216,247,235,141, 91,131,131,131,221, 66, 67, 67,211,171,
-227, 13, 12, 12, 84, 72, 36, 18,117,227,198,141,203,120, 60, 94,185, 37, 75,171,149, 7, 6, 6,210,222,222,222,234, 38, 77,154,
-148,217,234,180, 47, 22,139, 25,131, 85,204, 28,108,137, 58,228,113,160, 27, 50,100, 72, 69,102,248, 41,193,193, 57,195,134, 13,
-147, 76,158, 60, 25, 91,183,110,197,133, 11, 23,170,136,253,176,176, 48,156, 61,123,118, 1, 94,163,196,186, 44, 88,252,199, 80,
-125, 30, 45, 83,108,219, 22,243, 39,140,124,154,204, 97,209,162, 69, 66,189, 37,171,251,196,137, 19,161, 80, 40, 92,205, 20,235,
- 6,125,174, 13,115, 34,107,217,178,101, 59, 25,134,241, 3,208,129,162,232,203,155,183,108,235, 98,169,190,136,136,136, 42,156,
- 12, 65,114, 72,146, 40, 19,240,152,191,214,111,218,250, 75,165,242,229,206,239,141, 64,224,198,143,171,150, 41, 0,116, 55, 21,
- 91,248,123,154,145, 10, 78, 3, 62, 31,251,121,133,200,250,113,213,178,227,161,173,253, 63,156, 61,106,161, 89,113,182,112,222,
- 24,123,146, 36,222, 54,241,209,170,194,249, 28,192,114,254,141, 46, 67,134, 12,105,209,182,109, 91,210, 88,100,169,213,234,138,
-196,157, 6,103,241,172,172, 44,132,133,133,145, 45, 90,180,104,118,229,202,149, 46,248,123, 58,167, 87,181,239, 84, 74, 74,202,
- 26, 31, 31,159, 19,115,231,206, 29, 86, 88, 88,216,187,168,168,216, 61,110,219, 66,244,140, 24, 75,132,245, 26, 44, 83, 51, 92,
- 81,102, 78, 94,227,211, 71,118,184, 29,221,189, 22, 26,181,122, 12,128,187,248, 59,189,131, 41,167,220,144,198,161,113,227,198,
- 50, 99,161,226,239,239,175,172, 83,167,142, 42, 52, 52,180, 98,185,133,104,190, 42,125,183,149, 83,239,255, 37,171,105,127, 26,
- 68,155,105,218, 8, 59, 59, 59, 24,196,151, 45,237, 52,142,182, 52,123,163,172, 57,234,176,130, 83,159,222,161,146, 78,139,137,
-137,233, 22, 19, 19,211, 26,192, 95, 40,159,235, 80, 11,148, 15, 37, 26, 57,205,207,215,127,216,235,157,229,252,175,114,190,202,
- 8,195,223,190, 89, 64,185,175,214, 25,139, 66,171, 38, 24, 28,223, 1,144,147, 38, 77, 42, 82, 40, 20,174,195,134, 13,171,118,
-155,220,220,220,173,209,209,209,149, 68,214, 71, 31,125,244, 73,108,108,236,137,252,252,252, 90,245,202,213, 73,188,232,204,161,
-233,174, 97,125,190,155, 8, 96,185, 5, 67, 30, 29,218, 90,242,225,143,171,150,237, 55, 17, 91,219, 1,124,100, 73,149,246,120,
-239, 3,236,216,246,163,193,183, 75,124,235, 90,214,209,129,215, 35,205, 70, 43,186, 56, 8, 35,245,237,152,204,250,104,189, 24,
-240,249,252,206, 51,102,204,224,203,100,178, 42, 34,203, 84,104, 73,165, 82,220,184,113, 3, 35, 70,140, 16, 38, 38, 38,118,214,
-104, 52,167, 94,135,125,144,155,155,123, 79,159,140,116,130, 33,133,131, 80, 36,230, 15, 30, 57,209,175, 34,234,112,247, 90,168,
-148, 10, 0,224, 90,147,222,129,203,229,242, 19, 19, 19, 3, 12, 86, 43,141, 70, 35, 52, 44,191,118,237, 90,128, 33,183,150, 82,
-169,180, 58,234,240,159,226,188,121,243,166,159, 33, 58,210, 16, 93,200,229,114,249, 9, 9, 9,126, 6, 78,149, 74,101, 85,212,
-161, 64, 32,224, 39, 38, 38,250, 81, 20,245,220,162, 14,141,133, 49,202,231, 89,172, 52,215,162,222,183,140, 32, 8,130, 97,135,
- 13, 89,176,120,229, 97, 26, 41, 89,253,164,210, 53,193,224,248,110,195, 38,220,186,117,235,246, 24, 52,104, 80, 37,145, 21, 30,
- 30, 78,237,219,183,239,180, 68, 34,201, 35, 73,242,158,173,237,168,240,209, 66,149, 55, 72,144, 36,121,163, 67,155, 38, 32, 73,
-242,198,236, 81,163, 84,139,176,165,146,216, 58,184,127,207,187,153, 69,119,204, 75, 51, 0,238, 94,190, 24,242,201, 87, 24,242,
-201, 87,174, 0,218, 3,150,163, 21,171,107, 7,139,127, 6, 4, 65, 8,234,212,169,115, 75,169, 84,130, 32, 8,168, 84,170, 10,
-129, 85, 90, 90,138,146,146,146,138,255, 26,141, 6, 5, 5, 5,240,247,247, 7, 65, 16,175,181, 31,157, 70,163,209,205, 88,240,
-125, 52,135,203,215,209,180,134,208,104, 52, 35,109,185,206,103,204,152, 65,194,140,239,213,184,113,227,204, 46,127, 89,156, 51,
-103,206, 52, 27, 37, 56,110,220,184,106,163, 7, 45,225,235,175,191,126,110, 81,135,214,223,190, 88,176, 96,241,154,193,108,232,
- 94,173,132, 22, 73,146, 55,204, 68, 23, 18, 0, 24,146, 36,111,152,201,114,160,203,200,200, 88,224,226,226, 50, 70, 38,147,253,
-254,209, 71, 31, 77, 10, 15, 15,167,128,114, 7,249,218,246,168,168, 68, 54,175,115,223,165,147,139,203, 84, 81,166,235, 76, 45,
- 79, 6,177,181,118,245,178,117,251, 99,119,133,231,102,103,174,179,212, 55, 75,130,202, 82,180, 98,137, 84,177,160,115,223,165,
- 19,139,164, 10,214, 71,235, 5,129,162,168, 99, 98,177,152, 48, 76,166,108,108,189,146, 74,165,144,203,229,208, 79, 73, 3, 0,
- 40, 43, 43,131,179,179, 51, 40,138, 98, 94,179, 93,161, 2, 48, 85,111,173, 2,128,169,169,167,215, 24,159,219, 55,141,215, 85,
- 99,205,202,177,102,130,104,115,219, 85,183,238, 31,224,204,171,102,130,232,234,144,103, 35, 95, 30, 0,240,121,156,124, 75,147,
- 71,243,121,156,252,106,252,246,109,124,111, 32, 24, 0, 11,216, 43,155, 5,139, 87,247,253,255,101, 85,220,141,229,100, 57, 89,
-206, 23,194, 41,212,127,172, 93,199,238, 79,150,147,229,100, 57,255,109,156,230, 48,250, 21, 17, 90,140,153, 15,128, 90, 90,180,
- 88,176, 96,241,175,131,170,150,235, 88,176, 96,193,130,197,179,163,202,100,210,198, 43, 44,169, 82, 91,162, 9,106,163,108, 79,
-176,156, 44, 39,203,201,114,178,156, 44, 39,203,249,159,227,172,137,219,120,251,209, 0, 54,189, 34, 98,235,165, 4,180,176,102,
- 85,150,147,229,100, 57, 89, 78,150,147,229,100, 57,107, 11,118,232,144, 5, 11, 22, 44, 88,176, 96,193,226, 63, 14,219, 18,150,
-178, 48, 3,255, 15,102,131,198, 76,253,238, 92,134,199, 7,231,191,110, 93, 12, 15, 15,231,216, 82, 62, 53,213,133,188, 14,201,
- 15, 78,246,252,190,101, 50,237, 15,244,245,121, 81, 53,157,136, 30,129, 45, 63,182, 19,217,125,161, 86,171,235, 59, 56, 58,230,
- 63,125, 82,176,225,105,198,205,181, 70,101,156, 46, 95,190, 44,105,219,182,109, 54,128, 82,163, 55, 5, 22, 44, 88, 60, 79,184,
- 52,169, 11,130, 24, 9, 48,127,135, 93,210,204, 29,148,220,221, 86,169,156,115,200, 39, 32,137,166, 70, 75, 20, 96,176, 25,197,
- 73,143,107,120,224,184, 36, 39, 39, 7, 52,104,208, 32, 29, 64,177,105,237,102,214,177,215, 57,139, 87, 25, 97,168,156,176,180,
-226, 90,120,118,161, 21,252, 81,125,232,200,225, 96, 48, 20, 4, 18,145, 26,219,191, 86, 60, 65, 31,250,130,230,190, 9,160, 37,
-192,180,180, 23,139,254,167, 80,107,242,105,134,249, 24,143,246,252,101, 51, 95,253,240,177,176, 60,157,197, 2,164,198,174,183,
-137,143,102,102, 93, 61,187, 79,232, 98, 71,160, 65,171,143,166,161,114, 6,231,218, 66, 0,160, 35, 73,146, 77,237,236,236, 36,
-114,185,188,128,166,233,199, 40, 31,159, 46,170, 37, 39, 9,224, 83, 7,123,251,158, 1,142,130,150, 25,133, 37, 89,165, 90,234,
- 28,202, 19,186, 22, 61,175, 51,170, 92,100,249,108,154, 56,184,237,136,101,227,187,193,165,243,210,105,114,160, 58,161, 69,248,
- 53,122,251,224,192, 65, 17,157,191, 28, 61,194,193,215,211, 1, 57,133, 50,247,245, 91, 99,190,143,137,217,209,103,212,192,238,
- 61, 1, 96,225,194,133,253,234,214,173, 91,143,195,225,164,206,153, 51,103,251,188,121,243, 24,194,242, 76,229, 18,253, 57,108,
-184,225,219, 3, 8, 5, 16, 8, 32, 5,192,109, 84,206, 50, 94, 27,188, 18,156,190,190,190,117,104,154, 30,229,237,237,221, 59,
- 47, 47,239, 48, 73,146, 91,178,178,178,178, 95,230, 93,135, 97,152,141, 4, 65,140,102, 24,102,147, 13,223, 99,108,169, 67, 36,
- 18,229, 41,149, 74, 47,253,239,124,165, 82,233,253, 79,245,231, 69,214,245,130,222,191, 63, 59,118,254,118, 79,227, 69, 61, 58,
- 52, 53,115, 71, 33,154, 30, 59,127,167, 83,229,114,161,148,133,123, 32,193, 48, 12, 22, 44, 88, 64, 68, 70, 70,126, 18, 20, 20,
- 20, 76,146,228,253,185,115,231, 86, 74,125, 99,186,206,232, 58,103,197, 22,139, 87, 21,182, 77, 42, 93, 35,154,132,219, 67,201,
-132, 3,196,136,176, 54,255,235, 48,230,227,190, 4,195, 17, 97,240,103,211,117, 54,115, 5,140, 16,130,163, 88,212,188,105,163,
- 73, 17,125,187,145,173, 67,235, 65,226,233, 12,144, 60,108, 60,146,230, 30,181,108,206, 58, 0,109,107,209,202,121,143,226,119,
-122,229, 20, 83, 32, 8,128, 32, 0,146, 0,202,148, 52,122,244, 27, 62, 15,192,122, 27,239, 74,164,139, 29,129, 73, 59,149, 0,
-192,121, 14, 7,165,158,167,167,231, 39, 19, 38, 76,176, 15, 13, 13,117, 17,137, 68, 2,165, 82,233,157,156,156,236, 57,103,206,
-156, 80,133, 66,113, 8,192, 85, 27, 57,253, 27,248,213,217, 19, 53,233,211, 55, 91, 4, 6,128,167, 46, 3,173,146,213,125,144,
-252,240,173,207,215,237,253,236,206, 83,229, 32,212, 98,202,132,194,194, 66, 2, 0, 60, 60, 60,152,202, 34,171,221,136,149,147,
-123, 96,210,138, 99,144, 43,213,191, 84,199,225, 86,239,141, 97, 31,126,248, 65,231,197,179,198, 57,100, 61,209, 32, 49, 85, 1,
- 55, 7, 62,230, 77, 29, 43, 80,169,180,111,173,219, 30, 51,250,199,239,166,111,166, 40,234, 29, 0,173, 41,138,186, 6, 96,251,
-130, 5, 11, 44,221,124, 35, 1,204,212,159,208, 59, 56, 28,206,241, 46, 93,186,212, 31, 53,106, 20,209,170, 85, 43, 36, 36, 36,
- 4,238,220,185,179,219,225,195,135, 83, 41,138,186, 9,224, 62,244,211,158, 88, 1, 30,128, 70, 28, 14,167,249,191,153, 83, 34,
-145,136,213,106,245,112, 63, 63,191,209,111,191,253,118,243,190,125,251, 18,141, 26, 53,194,189,123,247, 90, 29, 61,122,116,222,
-185,115,231,110,102,102,102,110, 18, 8, 4,209, 57, 57, 57,138, 23,254, 28, 39,136,209, 0,234,232,117,242, 2, 43,190,179, 81,
-158, 75, 42,199,218, 58,148, 74,165,151, 97, 10, 27,130, 32,188,254,201,254,216, 88, 87, 18, 65, 16,110,250,178,168,238,155, 36,
- 73,232,116, 58, 25, 69, 81, 65, 53,112, 54,210,191, 72, 89,173,117, 1, 84,151, 8, 90, 12, 0, 61,218, 55,125, 10, 2,119, 42,
- 44, 90, 85, 95, 50,239, 84, 8, 48, 6, 77,143, 93,184,227, 86,201, 10,102,250, 22,187, 96, 1, 49,111,222, 60,204,159, 63,191,
- 47,128,142, 52, 77,159, 11, 9, 9, 89, 83,137,146,166, 43,214,205,155, 55,111,117, 53,215, 57, 11, 22,175, 10, 58,195,150, 73,
-165, 45,190,255, 4,245,239, 4, 10, 35, 2,220,189,194,199,143, 26, 32, 14, 13,105, 0, 37, 28,144, 86, 72,225, 72,220, 81, 0,
-216,109,155,213,105, 64,107, 46, 87, 25,189,108,254,212,198, 29,223, 12,197,173, 44, 45,174,101, 81,144,167,106,193, 33,181,160,
-104, 6, 96,160,172,109,175, 51,139,116, 56,127, 95, 13,146, 0, 56, 36, 64,146, 4, 56,100, 45,201,104,245,131,133,219,174,135,
- 22,230,209, 0,173,126,240,140, 7,164,105,195,134, 13,135, 69, 70, 70,186,228,230,230,218, 39, 36, 36, 64, 40, 20,194,213,213,
-149, 35,145, 72,234,172, 88,177, 66, 49,126,252,248,222, 26,141, 38, 13, 64,161,149,156, 33,189, 90, 55,191,184,105,217, 66,103,
-237,229,163, 40,222,245, 43, 56, 36, 3,190,189, 3,234,139,197, 56,250, 97, 3,183,240,184,212,125, 87,242,100, 33, 0,178,106,
- 34,187,123,247, 46, 71,165, 82, 13,114,114,114,106,199,227,241,188, 69,174,245,232,108,110,235, 39, 5, 68, 96, 74,190,151,188,
-211,228,110,222, 61,127,152,216, 5,147, 86, 28,195,170,157,151,126,110,137,220,185,213,229,205,182,179,115, 24, 51,254,139, 81,
- 14,153,133, 26, 44,218, 87,136,109,103,165, 24,222,209, 17,147,222,115,198,144,193, 3,237,247,254, 26, 59, 6,192,102,163, 77,
-238,133,132,132, 16,119,239,222, 53,119,243,117, 5, 48, 93,173, 86,147,124, 62,159, 16,137, 68,195, 22, 47, 94,172, 25, 60,120,
-112,166,161, 64,199,142, 29,209,177, 99, 71,162,180,180, 52,240,212,169, 83,129, 49, 49, 49,186,248,248,248, 36, 0, 7, 45, 91,
- 44,196, 25, 74,165,162,174, 72, 44,150,175, 95,183,238,135, 78,157, 58,209, 66,225,223,233,167,106,195, 9, 0,206,206,206,155,
-189,188,188,136,111,190,249, 38,251,121,113,214,171, 87,239,216,155,111,190,217,165, 71,143, 30,220,246,237,219,163, 78,157, 58,
- 21,235, 60, 60, 60,208,177, 99, 71,226,241,227,199, 45,206,157, 59,183,238,216,177, 99,107,254,250,235,175, 83,105,105,105, 61,
- 94,176, 69,107,147, 94, 76,228,216, 88,254,149, 7, 65, 16, 14, 27, 55,110,244, 50,204,201,168,213,106, 65, 81, 84,197,183,225,
- 67,211, 52, 40,138,194,226,197,139, 41,153, 76,102,205, 62,146, 25,189, 53, 27, 62,180,185,111,129, 64,224, 97, 72,216, 91,195,
-157,253,142, 68, 88,220,196,222,222, 62, 0, 64, 47,120, 6, 79,175, 92,160,252,253, 89, 38,147,165,231,168, 92,238, 0,232, 84,
- 13,155, 75,100,100,228,240,249,243,231,127, 96,100,165,109, 30, 17, 17, 97, 58,237, 85,115,253,183,140, 32,136,211, 36, 73, 30,
- 2,176, 13,207,209,234,206,226,245, 2,195, 48,109, 0,120, 26, 45, 82,163,124, 84, 8,250,231, 36, 1,192,221,100,185,113, 57,
-195,119,129,126,185,167,126, 59,198,136,183,128, 32,136,171,181,108,226, 25, 88,240,211,226, 2, 64, 92, 92, 28,211,167, 79, 31,
-194,240,109, 94, 20,133, 31,249,116,240,251, 61,123,119,125, 27,164,200, 21, 15,242,129,248, 12, 6, 92, 82, 11, 18, 12, 46, 95,
- 56,197,128, 75, 71,155,108,101,217,122, 82,175,255,215,205, 67, 67,150,110, 89, 54,129,147,148,207,197,182,115,114,104,148,101,
- 40,200,205, 64,126,118, 58,114, 50, 83,144,149,145,114, 19, 32,230, 89,205, 89,229,192, 0, 20,173,127, 7,164,129,106, 34, 47,
-107,230,212,200,238, 6, 54, 10, 13, 45, 18, 80,128, 70,118,215,138,234, 45,113, 54, 11, 14, 14, 30, 60,107,214, 44,183,219,183,
-111,139,229,114,185,234,232,209,163,247,210,210,210,156, 36, 18,201,211,177, 99,199, 6,215,169, 83,199,233,163,143, 62, 18,236,
-218,181,171, 31, 42,135,181, 90,226, 12,125,191,221,255,226,183,174, 89,105,255,100,111, 20,212,201, 55,112, 36, 71,134, 11,121,
-114, 38,208, 89, 72,124,213,194, 19, 14, 66, 46, 22,182,175,227,208,107,127,242, 82, 45, 77, 15,169,142,243,226,197,139, 18, 59,
- 59,187, 21, 67,135, 14,149,140, 27, 55, 78, 72,113, 93,184,177,241, 79,156,167,175,139,175, 35, 87,105, 56,131,187,212,195,228,
-161,205, 49,121,213, 73,131,200, 26, 93,191,126, 49,125,253,186,101, 78,173, 70, 83,223,207,203, 9,137,105, 10,108, 59, 43,197,
-159,179,234,160,235,226,108,124,212,146,139, 16,127, 7,232, 52,218, 70, 17, 17, 17,209,250,183,246,171, 0,250, 69, 68, 68, 52,
-230,112, 56, 39, 1, 28,168,233, 24,137, 68,230,103, 79,113,117,117, 69, 88, 88, 24, 66, 66, 66,184,157, 58,117,106,110, 34, 96,
- 42,113,106, 52,106, 9, 77, 51,112,116,116, 20,187,187,187,187, 58, 58, 58, 62, 49,247,160,178,133, 19, 0,220,220,220,250,135,
-133,133,113,119,238,220, 89,152,154,154,122,121,240,224,193, 41, 78, 78, 78,149,172,191,246,246,246, 8, 14, 14,198,156, 57,115,
-184, 61,123,246,172,145,211,219,219,187,123, 76, 76, 12, 8,130,168,120,104, 87, 49, 22, 7, 4,192,199,199, 7,189,122,245,226,
-246,239,223,191,123, 90, 90, 90,173,174, 35, 27,112,194,140, 69,107,129,201,113,178, 56,252,102,174,188, 21,199, 61,223, 96, 93,
-210,243,225, 25,174,205,106,135, 59, 69, 34, 81,133, 21,202, 76, 93, 85, 56, 73,146,196,236,217,179, 65, 16, 4,120, 60, 30,248,
-124,190,217,239,206,157, 59,219,218,206,199, 4, 65,144,124, 62,127, 58,151,203, 29,165, 82,169,252, 68, 34, 81, 54, 69, 81, 63,
-171, 84,170,197, 0,180, 12,195,184, 88, 16, 89,102, 57,237,237,237, 3, 30, 60,120,208,208, 82, 67, 84, 42, 21,154, 55,111, 14,
-168,144, 84, 29,103,114,114,114, 64, 80, 80, 80, 35, 0,134, 41,218,206, 50, 12,211,201,232,191, 49,206, 50, 12,243,158,254,247,
-253, 71,143, 30, 5, 52,104,208,160,232, 69,157,159, 44,231,191,143,179, 6, 45,226, 73, 16, 68,156,209,181,218,199,240,127,198,
-140, 25, 51,151, 44, 89,114,155, 32,136, 56,227,229,198,229,140,191,245,247,155, 56,134, 97,250,124,243,205, 55,161,223,125,247,
-221,183,134,178,255,132, 72,180,197,162,229, 84,160,180,199,185, 12, 39,112, 57, 20,184, 36, 1, 46, 7, 0, 67, 32, 61, 45, 25,
-165,210,226,243, 72,221,151,106,157, 37, 43,188,253, 27,111, 52, 91,182, 99,213, 52,242,167,115,114, 20,203,148,184,251,215,105,
- 92, 61,125, 32,151,210, 81, 7, 64, 48,215, 0, 50, 1, 41,244, 61, 32,182,118,115, 92, 16, 12,183, 92,104,233,197, 85, 37,177,
-245,210,208,162,113,227,198, 3,231,204,153,227,113,253,250,117, 81, 73, 73, 73,233,142, 29, 59,178, 85, 42, 85, 26,128, 63,210,
-211,211, 27,175, 94,189, 90,176,108,217,178,102,205,154, 53,147,236,217,179, 71,109,102, 58,163, 42,156, 83, 71, 12,137, 31, 53,
-126,162, 40,105,207, 90, 8,146, 18, 48,251, 70, 33,245,103,142,124, 22,128, 85,120, 92,214,190, 64,169, 59,190, 50,172, 46, 89,
-207,145,143, 6, 46,130,206,119,159, 42,171,181,100,217,217,217,173,136,137,137, 9,104,211,166, 13, 9, 0,231,238,235,132,211,
-215,197,215,249, 99, 73,123,162,125, 83,119,228, 23,171, 48, 97,109, 34,142,198,231,255,110, 16, 89, 53, 53,210,209,209,177, 32,
- 51, 95,234,237,238, 32,194,199, 29, 28,208,117,113, 54,194, 91, 11, 33,228, 19,184,151,154,139, 6, 65,245,136,196,243, 7, 91,
-235, 69, 86,155,156,156, 28, 0,104, 13, 32,245,241,227,199,146,182,109,219,150, 24,209, 21, 1, 88, 42, 16, 8,102, 19, 4,193,
-180,105,211, 38,177, 89,179,102,101,174,174,174, 80, 40, 20, 80,169, 84,224,243,249, 80, 40, 20, 72, 79, 79,199,229,203,151,225,
-234,234,106,211,129, 42, 43, 43,131,163,163, 35,104,154,126,102, 78,138,162,136, 13, 27, 54,216,223,190,125,219, 62, 54, 54,214,
-123,210,164, 73, 79,154, 52,105,114,109,224,192,129, 15,189,188,188, 84, 55,110,220,192,197,139, 23, 81, 84, 84,132,118,237,218,
- 89,197,169, 86,171,193,229,114,161, 80, 40, 32, 20, 10,193,229,114,161,211,233, 64,211,116,133,248, 42, 43, 43,195,211,167, 79,
-193,231,243,161, 86,171, 95,198, 27,104, 21, 11, 85,117,195,111,181,177,104, 25, 11, 53, 43, 69, 86, 77,150, 40,139,195,157,197,
-197,197, 98, 23, 23,151,233, 0,114,106,170,139, 32, 8,112, 56, 28,240,249,124, 16, 4,129, 78,157, 58,225,211, 79, 63, 69,203,
-150, 45,145,156,156,140, 93,187,118,225,234,213,171,224,241,120, 21,229,173, 30,159,232,220,153, 35, 18,137, 46,190,255,254,251,
-161,179,102,205, 18,213,171, 87, 15, 73, 73, 73,254,223,125,247,221,244, 19, 39, 78,124, 32,147,201, 90, 27,238,118,213, 91,233,
-245, 67,130,229,195,133,189, 84, 42, 21,146,146,146,108,217,166, 10, 26, 52,104,144, 78,146,228, 67,154,166,207, 1,104,206, 48,
- 76, 39,130, 32,142,162,220, 47,209, 24, 50,134, 97,222, 35, 8, 66, 10,224, 38, 73,146,247,105,154, 78,103,237, 54, 44,172,184,
-175,244, 49,253, 79, 16, 68,220,146, 37, 75,250,152, 19, 87,102,174,205, 74,203,191,251,238,187,111,141,254, 63,139, 69, 53, 12,
-149,157,225, 59,235,173, 92,127, 11,173,184,184,184,234, 21, 8,141,143,226,246,237,188,212, 85,131,128,208, 86, 29,141,172, 67,
- 12, 18, 46, 95, 4,192,252,108, 85, 83, 36,125,196, 36,135,251,243,134,111,199,145, 27, 79,203,241, 56, 59, 31, 23,143,252,140,
-130,156,180,109, 0, 51, 9,169,177,210,103, 62, 18,245, 62,106,230,229,238,225,162,212, 48,160, 25, 0, 85,196,214, 75, 65,203,
- 70,141, 26,245,143,143,143,247, 80, 42,149,162,243,231,207,203, 99, 98, 98,114, 53, 26,205,105, 0, 23,244,101,174, 23, 20, 20,
- 68,232,133, 9,135,203,229, 10, 52, 26, 77,117,190, 11, 45,167,142, 26,126,126,233,134,173,162,135,183, 18,177, 58,246, 8,138,
-229,114,234,116,190,162, 31, 0,131,162, 63,121,189, 80,145,197,128,169,203, 35, 9, 72,236,121, 62,119,159, 42, 69,128,249, 33,
- 89,149, 74, 53,120,232,208,161, 18,131,200, 2,128,194, 82, 45, 87,174,210,114,218, 55,117, 71,171, 46, 17, 72, 56,181, 23,123,
-206,102, 33,200,211,238,108,125,251, 98,171,246,104, 65,126,206,134,149, 81, 27, 87, 46, 93, 48, 85, 48,185,151, 51,194, 91,243,
- 32,226, 19,112,178,227, 97,241,154,205,218,235,151,207,222,144, 72, 36,113, 0,250,229,228,228, 64, 34,145,148, 1,184,207,225,
-112, 82, 41,138, 50,231,212, 61, 23,128,119,116,116, 52,169,213,106,203,146,147,147,225,227,227, 3,111,111,111, 56, 59, 59,227,
-238,221,187,248,243,207, 63,113,239,222, 61,208, 52,141, 55,222,120,195,166,131,245,228,201, 19,220,184,113, 3,189,122,245,158,
- 84, 80,144,239,228,234,230, 46, 59,127,238,236,247,181,225,164,105,154, 0,128,208,208, 80,132,134,134,138,178,178,178,252,226,
-226,226,188, 22, 45, 90,148, 17, 16, 16,176, 67,161, 80, 84,178, 28, 88, 43,180, 12,226,194, 32, 2, 69, 34, 17,248,124, 62,164,
- 82, 41,242,242,242, 80, 90, 90, 30,180,233,226,226,242, 82,132,150, 5, 11,213,115, 43,255, 15,139,195, 42,195,157, 46, 46, 46,
- 67, 1, 76,183,178, 47,208,233,116,224,243,249,104,219,182, 45,162,162,162,112,245,234, 85, 28, 56,112, 0,254,254,254, 24, 49,
- 98, 4, 72,146,196,237,219,183,109,109, 34, 29, 31, 31, 63,189, 95,191,126,161,209,209,209,162,244,244,116,220,187,119, 15, 46,
- 46, 46,136,138,138, 18,142, 30, 61,186,193,169, 83,167,230,162, 60,248,165,122, 24, 69, 23,202,196,146, 1,205,155, 55,175, 82,
-196,199,199,199,249,143, 63,254,240,170, 16, 96,166, 17,137, 85, 81, 60,119,238,220,149, 33, 33, 33,171,244,195,133, 29, 1,216,
- 51, 12,211, 57, 54, 54,150, 0,128,240,240,112,134, 32, 8,195, 3,233,230,222,189,123,187,220,189,123,151,153, 63,127, 62,235,
-163,197,194,146, 22, 25,109,184, 38, 45, 9, 40, 91,132,154,177, 60,104, 55, 9, 0, 0, 32, 0, 73, 68, 65, 84,197,203,128,111,
-190,249, 38,116,201,146, 37, 87,158, 81,100, 25,191, 49, 49, 6,177, 85,241, 48,181, 56,100, 88, 97,251, 34, 37, 62, 94,238,110,
- 51, 70,180, 7, 77, 3, 58, 10,208, 81, 12,100,114, 5,146,110, 93,149, 67, 68,196, 90,213, 28,161, 96,217,162, 89, 19, 3, 19,
- 51, 73,100, 23,105,112,230,224, 70,166, 32, 39,173, 63, 82,247,142,124, 62, 34,107, 64,115, 31,111,175, 51, 59, 55, 46, 36,175,
-166,168, 65,209,229, 58,139,166,153,138,223, 47, 1, 62,158,158,158, 67, 46, 93,186,228, 41, 20, 10, 69, 15, 30, 60,160,247,238,
-221, 91,164,209,104, 78, 24,137, 44, 0,104,223,186,117,107,157,131,131, 3,100, 50,153, 70,163,209, 40,171, 17, 89,126,157, 91,
-182, 56,187,116,195, 86,145, 82,173, 70,137, 66, 5,142,187,151,169,200, 2,128,183,187, 52,244,245, 37, 68,142, 96, 0,164, 73,
- 53,217,150, 68, 22, 0, 8,133,194,110,227,198,141,171, 52, 47,158,135, 35, 79,103, 39,228, 81, 23,238, 20,210, 9,167,246,226,
-220,237, 66, 90,196,231, 80,158, 76, 74,160,181, 59,160, 56,243,206,134, 3,191,197, 29,255,122,206,178, 50,185,172, 20, 65,117,
-196, 40, 43, 45,193,226, 37, 75,181,241,241,231, 78, 79,159,244,249, 91,123,247,238,253, 14,229,206,224, 0,112,127,239,222,189,
-195,231,204,153,179, 29,127,167,121, 48, 69,246,144, 33, 67, 50,155, 54,109, 90, 18, 18, 18, 82,242,228,201, 19,220,185,115, 7,
- 69, 69, 69, 88,189,122, 53,146,146,146, 96,176, 8, 90,229,171, 82, 85, 32,161,168,232,169, 3,195, 48, 40,122,250,196,126,214,
-172, 89,206,181,225,164, 40,170,210,181,229,235,235,139,177, 99,199,242,229,114,185, 75, 70, 70,134,147,241, 58,107, 57,213,106,
- 53, 12,150, 33,134, 97,160, 86,171, 81, 82, 82, 2,181, 90,141,135, 15, 31, 86,136, 44,125,253, 47,205,162,101,248, 45, 18,137,
-242, 12,231,178, 97, 8, 78, 36, 18,229, 91, 42,255, 44, 48,170,139,209,255,182, 85, 28,214,216, 31, 43,143, 59,248,124, 62, 62,
-253,244, 83, 92,185,114, 5,201,201,201,224,112, 56,144,201,100,144,203,229,232,222,189, 59, 4, 2,129,173, 22, 45,134,207,231,
- 15,157, 57,115,166, 40, 53, 53, 21,133,133,133, 6,103,122, 80, 20,133, 73,147, 38,137,133, 66,225, 80, 91, 77,247, 57, 57, 57,
-239, 62,124,248,176,145,233, 39, 55, 55,183,196,216,167,176,182,136,141,141, 37,194,195,195,153,240,240,112,198, 32,184, 88,176,
- 48, 7, 11, 90,100,147, 37,139,214,243,176,138, 25, 44, 91,208, 7,136,212, 2, 6,145, 21,102, 36,188, 8,131,133,203,186,161,
-195,160, 1,255,243,118,119, 59, 21,189, 54,210, 33,238, 22,129,204,199,105, 40,200, 73, 71,235,183, 58, 35,233, 86, 34,104, 45,
-181, 15, 15, 99,107,246,228,172, 23,222, 48, 36,164,201, 23, 97,111, 53,195,178,184, 50, 60, 72,248, 3,197, 5, 57, 63, 34,109,
-239,190,231,114,132, 2,194, 91,120,123,185,157,218,190, 54,210,229,232, 29, 18,143, 31,167,225,224,246,149,140, 86,163, 42, 70,
-229, 72, 46,155,223,154,197,180, 90, 80, 86,156, 7,117, 41, 5, 17, 41, 23,217, 56, 72,145, 11,224,220,202,149, 43,187,182,107,
-215, 78, 48,100,200,144,220,162,162,162,131, 0, 46, 25,149,105,218,176, 97,195, 94, 81, 81, 81,222,143, 31, 63,198,137, 19, 39,
-114, 81, 30,250,111, 9,153,103, 19,111,173,251,115,251,230,169,226,192,198, 88, 61,243,107, 93,236,213, 59,239, 3, 56,106, 84,
- 38,164, 91,243,134,113,139,166,124, 73,210,215,127,199,141,244, 60,164,148,168,254,180, 68, 88, 88, 88, 72,200,229,242, 0, 23,
- 23, 23,227, 19, 18, 18,123,153,106,218,128,134,217,221,167,159,175,163,212, 80, 16,242, 72,102,194, 7, 1,217, 87, 14,198,186,
- 23, 42, 11, 9, 67, 52, 98, 77,248,108, 96,183, 15,214,198,236,255, 56, 46,238,240, 23, 26,149,178, 89,227,198,141,152,107,241,
-167,110, 76,159,244,121,207, 90, 30,113,135, 43, 87,174,144, 28, 14,167,146, 64, 55,182, 16,217,106, 41,178, 5,214,114,154, 10,
- 45, 3,116, 58, 29, 81, 91, 78,149, 74, 85, 33,180, 76, 31,238,230, 4,227, 63,209,127, 91, 44, 84,198, 67,134, 6,127, 58,165,
- 82,233,165,247,217,242,126,158, 22,173,103,137, 68,172,110,248,210,150,246,145, 36, 9,154,166,193,231,243,241,198, 27,111, 32,
- 46, 46, 14,110,110,110,112,114,114,130,147,147, 19,196, 98, 49,220,221,221, 43,132, 22, 73, 90, 29,165,195,168, 84, 42,127,127,
-127,127, 60,124,248, 16, 34,145,168,226, 35, 20, 10, 17, 26, 26, 10,153, 76,230,139,151,105,187,103,193,226,159,189,175,196, 25,
-139, 37,130, 32,226,102,204,152, 49,179,182,124, 51,102,204,152,105,206,194,245,140,130,171,146,117,139,107,172, 32,205, 42, 73,
-189,200,218,246,227, 2,167,253,127, 1,153,153,169, 56,190,103, 77,169, 86,163, 46,162,105,109, 64,202,189, 68,128,196,207, 86,
- 53,129,100,222,252,160, 87, 23,226,248,109, 53,164,197, 5,184,127,237,143, 52, 40, 4,223, 60, 55,145,229,237,113, 42,122,237,
- 2,151, 67,183, 8, 60,126,156,134,163, 59, 87, 75,181, 26, 77, 55,164,198, 94,123, 22,234,161,124,254, 7,252,186, 25,125, 70,
-117,204, 6, 69, 80, 24,154,116,247,189,252, 92,124,144,115,190,250,200, 48, 99, 20, 20, 20, 28, 92,185,114, 37,177,124,249,242,
- 48,165, 82,249, 43, 0, 99, 19,101,179,160,160,160, 65,155, 54,109,114,123,252,248, 49,239,252,249,243,178, 83,167, 78, 49, 0,
- 14,213, 96,113,153,214,125,228, 88, 78,203,122,190,227,174,167,101,189, 15,224,119,163,213,161,125, 90, 53,189,176,117,201, 92,
- 71,237,133, 88,148,229, 60,198, 55, 23, 50,165, 0,172,222,223, 90,173, 22, 37, 37, 37,208,150, 61,209,181,150,200, 74,230, 71,
-120,169,242,138,148, 92, 30, 45,215,133, 56,229,171, 78, 61, 73,225,216,217,217,217,180, 47,215, 46,153, 26, 3, 32, 38, 34, 34,
- 34,250,102,252,225,214, 18,137,228,112, 72, 72, 8, 1, 0, 22, 34, 12, 45, 33, 18,192,164,183,223,126,155,104,219,182,237,229,
- 85,171, 86, 29,171, 78,172,212,198,162, 85, 19,172,229,164,105,154,180,176,127,137,218,114, 26, 91,180,106, 18, 90, 47,211,162,
-101, 78,180, 24,139, 68, 99, 33,244,111,136, 58,172, 78, 76,217,210, 62,131,159, 28,159,207, 71, 98, 98, 34,234,214,173, 11,141,
- 70, 3, 71, 71, 71, 56, 58, 58,194,193,193, 1,165,165,165,224,241,120,176,177,207,180, 72, 36,202,184,115,231, 78, 35, 79, 79,
- 79, 80, 20, 85, 73,108, 61,120,240, 0,246,246,246, 89,182, 90,180, 36, 18,201, 31,250,168,195, 74,240,241,241,113,126, 30,251,
-213,216,146, 21, 30, 30,206, 14, 17,178,168,214,154,101,193,170, 85, 96, 98,137, 82, 27,253, 47, 64,121, 14,183, 62,250,223, 48,
-243, 91,109,102,217,147, 37, 75,150,156, 50,242,239, 42,120,198, 46, 24, 82, 60, 84,138,112,225,214,100,201,242,114,115, 61,181,
-101,245,124,167, 61, 9, 64,214,227, 84,156,217, 23, 85,162,163, 52,239,128,102,114,226, 79,236,139, 5, 1, 57, 82, 98,207, 88,
-119,139, 64,203,150, 77, 2,112,224,182, 22, 5,153, 15,192, 48,244, 54,228,199,200,159,249,232, 4,125,244,134,151,155,199,169,
-109, 81,243,157,247, 39, 18,200,124,156,138,227,123,162,164, 58,173,188, 43, 82,247, 37,212,150,246, 83,192,149, 99, 47, 90,215,
-191,115,203, 1, 1, 65,126,160, 25, 45,104, 62,131,143,166,121,112,239, 95,151, 31, 56, 39, 42,217, 67,151,209, 95,100, 93,178,
-206,129,174,172,172,236, 0,128,107,168,156, 94,161, 69,112,112,240,128,117,235,214,121,102,102,102,138,174, 95,191,174,216,184,
-113, 99, 62, 77,211,251, 1, 88, 51,148,250,245,245,180,172, 45,168,156, 47,167,197,212,145, 67,226,135,124, 50, 74,148,122, 34,
- 6,174,169, 73,152,114, 33,155,186, 95,164, 30,172,183,174,153,133,135,135, 7, 83, 88, 88,152, 94, 92, 92,220,200,222,222, 30,
- 79,158, 60,193,211,167, 79, 81, 82, 82, 2,149,244,169,206,157, 42,150, 17,186,167,224,241,120,200,127,172, 5, 69, 81,185,214,
- 90,179, 0,184, 70, 70, 70,126, 70,211,180, 33, 35, 98,165,232, 66,163,114,134,243,161, 81, 68, 68, 68,180, 81,212,161,177, 51,
-188, 33,189, 3,161, 79,239,208,238,247,223,127,191,219,179,103,207, 76,115, 98, 69, 40, 20,218,236, 40,109, 41,138,177, 54,156,
-150, 44, 90,166,203,109,225, 52, 12, 95, 26,156,224, 77,151, 27,192,225,112, 64,211, 52,172, 8,170,248, 71, 69,139,113,116, 96,
-109, 68,142,201,177,169, 54,113,104, 45, 35, 17,159,171, 69,203,112, 44,248,124, 62,126,251,237, 55,124,242,201, 39,160, 40, 10,
-118,118,118,112,112,112,128,189,189, 61,246,237,219, 7, 67,250, 7, 91,244,171, 86,171,253,101,201,146, 37, 51, 55,108,216, 32,
-102, 24, 6, 2,129,160, 66,104,205,159, 63, 95,161,209,104,126,177, 74,104, 25, 50,190,211,204, 29,123,123, 93,181, 81,135,230,
-182,177,224,175,229, 18, 25, 25, 57,156,166,233, 15, 96,146,194,193,164, 92,165,212, 15,108,122, 7, 22, 86,220, 79,174,254,139,
-155,103, 16, 88,132,145, 37,171, 66,112,145,213,137, 23, 79, 87,151, 83,155, 87,207,119,218,113,149, 64,106, 74, 10, 78,255,186,
-166, 92,100, 61,218,243, 23,210, 99,243,144, 26,219, 1, 41,177,239, 90,253,246, 68, 16, 45,235,120,185,224,169,140,134,180, 48,
- 3, 96,112,253,121,136, 44, 79, 87,207, 83, 63, 69,205,119,222,251, 23,137,212,212, 84, 28,223,179,166, 68,167, 83,190,243, 44,
- 34,107, 40,159,255, 65,112, 67,191,228,217,159,125, 48,160,109, 3, 31,184,103,220,197,161, 17, 3,176,112,215,135,112,244,228,
-224,205, 94,142,248,116,177,207, 0, 73,168,240,161,164, 3, 62,176,129,218, 88,100,181,172, 95,191,254,128, 75,151, 46,121, 52,
-111,222, 92,116,239,222, 61,229,198,141, 27,243, 21, 10,197, 49, 0,137, 54,112, 26,139,172,150, 51, 70,143,136, 95,186, 57, 90,
- 68,242, 5, 88,246,203, 33,140, 63,155, 73, 29, 78,151, 70,160,242,176,162, 89,168, 84,170, 19, 81, 81, 81, 42,146, 36,241,244,
-233, 83, 20, 22, 22, 34, 63, 63,191,226,187,184,184, 24, 28, 14, 7, 39, 79,158, 84, 75,165,210, 75,214, 54,240,226,197,139,245,
-179,178,178, 66,114,114,114, 90,235, 63,247, 80, 30, 93,232, 96,180,172,117, 78, 78, 78, 24,128,171,134,229,153,153,153,245, 46,
- 95,190, 44,169,137,223,209,209, 17,124, 62,191,146, 69, 75, 40, 20,194,219,219, 27, 58,157, 14,187,119,239, 6,128,167,213,113,
-240,249,130, 28,146, 36, 64, 51,180, 74, 36, 18,209, 18,137,196,172,192,178,133, 83,143,204,247,222,123, 79,153,144,144, 96,214,
-162, 85, 27, 78,134, 97,228, 61,122,244, 64,118,118, 54, 68, 34, 81,197,195,218, 32,168, 72,146,132, 80, 40, 68,110,110, 46,198,
-140, 25, 3,134, 97,228, 47,250,206, 99,236,211,164, 23, 67, 4, 0, 66, 47,132,170,248,105, 89,235, 3,101, 24, 26,100, 24, 6,
- 6,193,101,178,190,162, 46,107,178,183,155,248,116,141, 46, 46, 46, 94, 90,222, 28,102,163,201,247, 38, 27, 30, 10, 21, 66, 43,
- 41, 41, 9,209,209,209, 40, 46, 46,134, 64, 32, 64, 81, 81, 17,182,110,221,138, 59,119,238, 64, 32, 16,192,176, 47,172,213,111,
-109,219,182, 93,122,238,220,185, 59,131, 7, 15, 86, 36, 38, 38, 66,161, 80, 32, 49, 49, 17,239,190,251,174,242,194,133, 11,201,
- 10,133, 34, 18,214, 12, 29, 26, 50,190,235,167,215, 81,169, 84,184,126,253,186,217,143,165,109, 76,145,156,156, 28, 64, 81, 84,
- 35,134, 97, 58, 50, 12,227, 4,125, 10, 7,253,127,227,207,123,250,117, 78, 12,195,116,164, 40, 42, 56, 57, 57, 57,128,149, 19,
- 44, 94, 81,156, 49, 18, 91,140,145,200, 58, 83,189, 69,139, 38,163,182,172, 89,224,244,203, 21, 18,143,211,147,113,237,200,186,
- 18,138,214,190, 99,227,116, 56,221, 96,148,107, 67, 36,182,111, 70, 19,229,225,204,210,194,199, 0,195,169,141,208,170,196, 9,
-154,140,218,186,102,190,243,206,107, 4,178, 31, 63,194,133,131,107, 75,116, 58, 85, 87,164,196, 94,175, 13,231, 80, 62,127, 14,
-143, 67,204,238,209,254,127,252, 14,255,107, 8,251,252, 52,228,102,102, 99,119, 82,193,211,228, 34,213,168, 11,132, 6,233,143,
- 84, 91,122,125,230,230,230,234,195, 67,159,207,221,221, 46, 29,146, 30, 32,120, 50, 13,163, 97,150,228, 92,168,152,150,162,114,
- 59,171,194,199,209,209,113,240,181,107,215,156, 68, 34,145,248,218,181,107,244,198,141, 27,159, 40, 20,138, 35, 0,226,173,234,
-123, 85,248,181,105, 24,116,230,219,181,155, 69,101, 50, 57,100,106, 13,132,222, 18,106,127,252,173,254,176,156, 0,179, 18,167,
- 80, 40,220,185,115,231,206, 94,157, 58,117, 10,104,214,172, 25,249,244,233, 83,148,149,149, 85, 56, 87,123,122,122, 34, 41, 41,
-137, 78, 77, 77,205, 22, 10,133,187,172,109,231,219,111,191,157, 74,146,228, 61,253, 48,218, 61,152, 68, 23, 26, 21,109,148,147,
-147,211, 70, 34,145,156, 1, 96,103, 20,117,104,204,105, 72,239, 48, 19, 0, 73, 16,196,213,196,196,196,178,158, 61,123, 66, 44,
- 22, 67, 38,147,193,223,223, 31, 58,157, 14, 71,142, 28, 65, 66, 66,130,140,166,233, 51,102,196,107,165,118, 42,149, 10,127, 0,
-164, 66, 46,127, 99,248,240,225, 97,147, 39, 79,174, 20,146,238,229,229, 5, 55, 55, 55,155, 56, 1,224,233,211,167, 77,126,255,
-253,247,137,137,137,137, 95,247,234,213,203,121,230,204,153,194,250,245,235,131,162, 40,178,182,156, 69, 69, 69,206,215,175, 95,
-255,190, 67,135, 14, 95,246,236,217,147,251,237,183,223,194,217,217, 25, 20, 69, 65, 44, 22, 67, 42,149, 34, 50, 50, 18,231,207,
-159,215, 49, 12,179,182,164,164,100,138,141,231, 18,158,245,218,180,100, 1,178,148,146,193, 66,249,127,188,157, 38, 62, 93,208,
-167,112,152,110, 33,131, 61,172, 61,231, 13, 66,139,195,225, 32, 45, 45, 13, 27, 55,110,172,146, 71,203,144,254,193, 2,183,185,
-190, 51,167, 79,159,166, 8,130,120,235,218,181,107,211, 63,254,248,227, 81, 50,153,204,207,222,222, 62, 91,171,213,254,172, 80,
- 40, 22,163,220, 31,149,111,203, 61, 68, 38,147,165,155,139, 58, 52, 45, 3,184, 84,203,105,146,222,161, 82, 10, 7,147,109, 42,
-165,126, 48,147,222,225, 31, 63,238, 44,231,191,146,243, 85, 23, 91,150, 19,150, 86, 65,203,209, 60,158, 66,219,252, 92, 50,241,
- 44, 34,171,170,181, 68, 41, 79,158,187, 51,227,127,106,149, 18,178,146,188,251, 72,219,157,255, 76,221,210,183,243,108, 50,129,
-180,212, 71,184, 18,183,182,188,157, 41,177,181,110, 39, 1,124,179,254,104, 44,159,112,118,195,141,137,159, 32,187, 88,134,163,
- 41, 69,123, 24,185,234,139, 95,128, 34,156, 7, 72,157,234,220,214, 89,185,235, 58,126,228, 60,192,195,151,135, 21, 83,127,134,
-104,134, 59,255,205,174,157,108,153, 3, 49, 87, 36, 18,157, 91,189,122,117,183,142, 29, 59, 10, 35, 34, 34,204, 57,200,219,138,
-204,171, 15, 30,173, 63,188,225,135,169,238,205,219,225,199, 57,211,168,157,241,183, 76,163, 16,171, 69, 72, 72, 8,117,241,226,
-197,201, 99,198,140, 89,209,173, 91,183, 58,239,191,255,190,192,223,223, 31, 66,161, 16,143, 30, 61,194,185,115,231,212, 41, 41,
- 41,217,114,185,124,114,139, 22, 45,108,201,113, 86, 52,119,238,220,165,250, 58, 8,253,112, 97,107,232,163, 11, 13,133,244, 73,
- 75, 91, 3,176,155, 63,127,254,199, 0, 96, 33,236,123, 46,128, 13, 0,184, 12,195,228,198,196,196,188,117,240,224,193,183, 38,
- 77,154,196,239,213,171, 23, 46, 93,186,132,227,199,143,107, 52, 26, 77,188, 94,184, 90, 59, 85, 14, 13,224,186, 78,167,187,181,
-108,217,178,183, 56, 28,206, 92,195,138, 59,119,238, 96,219,182,109,181,225,212, 1,248, 62, 47, 47,111,125, 76, 76,204,220, 19,
- 39, 78,140, 28, 62,124,184,147, 86,171, 69, 82, 82, 18,126,250,233,167, 90,113,150,148,148, 76,244,240,240,152,125,228,200,145,
-159,143, 29, 59,214,111,216,176, 97,228,248,241,227, 17, 21, 21,133, 95,127,253,149,166, 40,234, 32,143,199, 27, 94, 88, 88, 40,
-123, 25,119, 29,253, 48, 92,182,141,115, 29,214,200,251, 44, 67,131, 86, 34,231, 89, 9, 12,253,232,220,185,115,133,149,209, 96,
-133, 51, 46, 67, 16,132,205, 67,135, 0, 92, 24,134,161, 1,172, 69,249,252,162,198, 89,225, 57,248, 59,115,188,181,140, 77,115,
- 84, 46,119,160, 66, 82,245,147, 74,187, 0, 12,154,214,192, 86, 60,119,238,220,149,243,230,205, 91,105,154,194,193,184,144,105,
-234,135, 5, 11, 22,128, 77,239,192,226,117,133,121,161,117,125,147, 86, 27,216,127,230,234,111,167,205,211,105,213, 37, 12, 52,
-225,120,180, 47,241, 89, 43, 99,104,102,198,201, 29,243,163,192,160,136,161,116,211,159,185,245,255, 80, 59, 9,103, 55,148, 70,
-142,197,175,183,179,153, 92,153,246,195, 95, 52,154, 74,214,160,114,159, 44,122,224, 41,101,209,110,215, 58,188,253, 19,223,113,
- 39, 14, 63,253,216,230,122,242,243,243,127, 91,185,114, 37,249,195, 15, 63,132,201,229,114, 83, 7,249,218, 98, 90,223,113, 51,
- 56,111, 6, 7,140,187,242, 48,253, 3, 88, 49, 92,104,138,183,223,126, 59,231,238,221,187, 67,142, 29, 59, 54,248,236,217,179,
-221,100, 50, 89, 0, 65, 16,176,179,179, 75, 87,169, 84, 39,132, 66,225, 78, 27, 69, 22, 0, 96,222,188,121,204,130, 5, 11,136,
-187,119,239, 50, 28, 14,231, 79, 0,169, 28, 14, 39,205,216, 9,222,120,185, 97,155,249,243,231, 91,243, 64, 60, 91, 86, 86,150,
- 16, 25, 25,217, 41, 50, 50,242, 13,189, 85,232, 44,254,246,249,178, 21, 90, 0,103,249,124, 65, 54, 65, 16,126,124,129, 80,118,
-241,226,197, 19,207,200, 41,215,104, 52,211, 31, 63,126,188, 98,197,138, 21,139,237,237,237,219,220,185,115,231,207,103,225,212,
-139,168,254,110,110,110,117,162,163,163,247,110,221,186,181, 29,151,203,189, 68, 16, 68, 68, 73, 73,201, 75,157, 84, 90, 63, 65,
-244, 2, 27,230, 58,180,138,247,121, 39, 41,253, 39,132, 27, 69, 81,101,179,103,207,206, 55, 21, 94,166,214, 43,195,127,125, 42,
- 23,107,246,169, 45, 81,148, 53, 8, 23,162, 12, 0,202,231, 46, 44,159, 86,199,218, 73,165, 1, 40,106,186,206, 73,146, 60, 8,
-224, 62, 73,146, 15, 77, 3, 93,140,215, 45, 88,176,160,166,235,156, 5,139, 87, 26, 86,220,217,230,147,192,252,218,122,210,190,
- 64,115,229,243,105,231, 16, 62,127, 1, 9, 76, 5, 64, 48,192,138, 95, 52,154, 89,213,109,232,243, 54, 22, 51, 4, 38,233,119,
-230,183,185, 23,176,168, 22,125,247,133, 21,243, 15,218,200,217, 24,213, 79, 40, 91,133, 51, 60, 60,156, 99,225, 97, 94,105, 82,
-105, 75,136,141,173,200,226,111,169,157,198,231,155,227,229,203,151,235,180,109,219, 54, 7,149,157,254,205, 45,103,108,236, 59,
- 7, 0,245,156,247,231, 43,193, 25, 20, 20, 36,120,244,232,145,250,223,117,109,178,156,255, 74, 78,151, 38,117, 65,224, 51, 24,
-231, 14,170,214,162,101, 36,208, 24,230, 39, 20, 39, 61,182,208, 78,195,117,238,146,156,156, 28,208,160, 65,131,116, 0,197, 38,
-237, 48,183,142, 97,143,209,127,158,211, 28, 70,163,242, 84,116, 44,204, 28, 8,150,147,229,100, 57, 89, 78,150,147,229,100, 57,
- 89,206,218, 10,173, 87, 26, 36, 88,176, 96,193,130, 5, 11, 22, 44, 88,252, 35, 32,170, 81,165,182,152, 4,107,163,108, 79,176,
-156, 44, 39,203,201,114,178,156, 44, 39,203,249,159,227,172,137,219,120,251, 87,117,232,240,133,181,155, 53,171,178,156, 44, 39,
-203,201,114,178,156, 44, 39,203,249, 44,130,229,149, 6, 23, 44, 88,176, 96,193,130, 5,139, 87, 6,221, 26, 66,194,165, 64,254,
-254,200,170, 32,170, 26,209, 51, 8,190, 0,240,188,248,254,163,144, 0,232,109,244,255, 48,244,145,241,172,208,122,117, 17, 12,
- 96, 38, 0,227,185,200,174, 0, 88, 98, 82,110, 7, 0,227, 9, 9,101, 40,159, 39,240,161, 45,149,145, 36,185,164, 83,167, 78,
- 95,156, 63,127,254, 7,157, 78, 23, 89,139,246, 6, 72, 36,146,165, 4, 65,180, 2,192, 35, 8,226, 81, 94, 94,222, 18,157, 78,
-247, 44, 81, 43,129, 62, 62, 62,223, 1,248, 31, 73,146, 60,130, 32,146,243,242,242, 22,233,116,186,211,207,192,233,232,237,237,
-221,158, 97, 24, 31, 0, 28, 30,143,247, 36, 43, 43,235, 50,106,153, 91, 41,124,126, 18, 95, 42,211,241, 0,192,201,158,171,141,
-157,223, 68, 99,237, 50,246, 20,103,193,226,191, 13,166, 60, 50,185, 18,222, 13,194, 98, 70,135, 41, 20, 64,244,168,143, 53,127,
-164, 98,138,165,237, 9, 51, 81,205,166,156,239, 6, 97, 49,197,148,115,244, 8,194,247,127, 60, 66,181,145,246,214,112, 26,176,
- 9, 32, 71, 91, 49, 75, 1, 97, 93,244,245,191, 29,189, 81,121,168,176, 98,232,176, 90,161, 53,176, 33, 36, 20, 23,220,216, 36,
- 24,194,120, 29, 1,188,161,127,200, 63, 68,121,174,162,210,103,108,220,171,194,249,111,195, 92,134, 97,134, 84, 58, 89,205,228,
- 33,122,231,157,119,222, 63,118,236,152,157, 97,190, 59,154,166, 33, 22,139,117, 0, 70,216, 80,151,215,192,129, 3,103,108,217,
-178, 5, 3, 6, 12,152, 29, 23, 23,183, 18, 64,153,181, 27,187,186,186,134,187,184,184, 68,109,222,188,217,179, 93,187,183, 8,
-129, 64,128, 71,143,146,253,198,140, 25,211,236,238,221,187, 7,243,243,243, 71,217,218,121, 55, 55,183,161, 46, 46, 46, 43, 54,
-110,220,232,209,161, 67, 7, 16, 4,129,132,132, 4,191,137, 19, 39,190,145,145,145,177, 43, 47, 47,239, 75, 91, 57,221,221,221,
- 27, 58, 59, 59,119,249,241,199, 31,197,237,219,183,135, 72, 36, 66, 98, 98,162,195,231,159,127,238,147,149,149,149,148,151,151,
-119,198, 86,145,117, 51,225, 80, 63,157, 70,181, 12, 0,184,124,225,180,118, 43,226, 15,221, 60,117,168,111, 77,203,194,231, 39,
- 29, 96,197, 22, 11, 22, 44,140, 49,180, 14,124, 24, 6, 83,143,253, 52,135, 4,128, 30, 35, 23,142, 31, 90, 7, 63,252,146,109,
-121, 14, 91, 27,249,166, 12,247, 69, 84,116, 22,242,158,165,157,155, 0,114, 34,151, 59,254,205,182,109, 61,190,186,112, 33, 89,
- 3,252,252, 31, 57, 68,102,135, 57, 45, 10,173,254, 77, 16,169, 43,183,152, 16, 61, 27, 96,215,241, 84,206,185,119,222,121,167,
-193,167,159,126, 74,180,108,217, 18, 9, 9, 9, 13,119,237,218,213,251,240,225,195,201, 20, 69, 37, 0,184, 13,235,179, 90,243,
- 0,132,114, 56,156, 86,255,114,206,127, 51,236,245,226, 42, 15,127, 39, 58,173,146,240,244,228,201,147,191,113,185, 92,131, 69,
-235, 77,153, 76,230,109, 98, 5,179, 6,245,180, 90, 45,238,221,187, 7,146, 36,121, 0,234,163,234,148, 26,150,224,103,103,103,
-183, 46,254, 74,130, 59,193, 21,163, 72, 9, 64,169,129,192,193, 27, 91,182,197,184, 77,158,240,101,255,211,167, 79,159, 43, 45,
- 45,221,110, 67,123,234,219,219,219,175,188,113,227,134,187,157,157, 29,104,154, 70,105,105, 41,124,124,124,176,121,243,102,151,
-201,147, 39, 15,145, 74,165,167,149, 74,229,175,182,136,115,103,103,231, 46,183,110,221, 18, 27, 38,148, 86,171,213,240,243,243,
-195,142, 29, 59,132,227,199,143,111, 82, 92, 92,156,169, 86,171, 83,172, 37,148,202,116, 60,157, 70,181, 44,122,237,252,186, 0,
- 48,252,203,249,203, 4,165, 78, 71,172, 89, 38,149,233, 14, 3, 96,133, 22,139, 23,141, 86, 30, 30, 30,177,133,133,133,103, 0,
-140,194,243,177, 52, 52, 20,137, 68, 45,104,154,246, 33, 73, 18, 28, 14, 39, 87, 38,147,221, 0,240,160,182,132,238, 65,157,251,
- 66,104,247, 9, 24,250, 13, 18, 0, 65,146,137,148, 70,190,237,201,131,211,135,158,137, 83, 32, 30, 9, 48,111,144, 0, 77,144,
-228, 13, 90, 39,223, 92,120,239,244,209,127,203,193,185, 84,130, 70, 65, 62,214, 79,140,249, 60,248, 6, 5, 66, 66,210, 32,119,
-164, 89, 63,172, 56, 14,232, 53, 97,194, 4,159, 47,191,248,130,248,100,196,136,224, 51,231,207, 19, 97,182,204, 86,240,106,194,
-162,227,187, 89,161, 21,222, 4,174, 12, 48,125, 87,212, 76,146,203,225, 16,131, 39, 44, 25,178,117,237,247,100,247,190, 17, 21,
-195, 39, 29, 59,118, 68,199,142, 29,137,101,203,150, 5,255,249,231,159,193, 59,118,236,208,197,199,199,223, 0,176,219, 82,101,
-239, 6, 65, 65, 3, 34, 62,143, 43, 27, 60,103,251,198,182,109,219,254,159,189,243, 14,139,226,106,219,248, 61,219,251, 46, 11,
- 11, 75, 71, 84, 58, 54,136, 98, 87, 44,216, 80, 44,137, 93, 99,124,237, 45,209, 68, 99, 98, 52, 38,182,216, 98, 84,140, 26,107,
-236,250, 26,123, 47,177, 87, 80, 64,197, 74,103, 89,154,244,178,253,124,127, 0,126, 72, 40, 11,152,215,148,249, 93,215, 92, 11,
-103,103,238, 61,211,206,220,243,156, 6, 30,143,135,250,104, 2, 64,247,198,140, 24,182,101,195,136, 97,211,230,199,183,110,221,
-150,188, 11,205,191, 17,119,129, 55,147, 90,203,157,156,156,218, 25, 12, 6, 62, 0,176, 88,172,226,196,196,196,105, 40,153, 27,
- 16, 0,142,154, 76,166,126,181,208,102, 0, 88,208,175, 95,191,121, 83,167, 78,133,179,179, 51,166, 79,159, 14,189, 94, 31,118,
-250,244,233,249, 0,150,161,134,155,199,198,198,102,254,134, 13, 27, 44, 89, 92, 17,252,230,196, 34, 37,219, 0, 0, 16,243,128,
- 99,147, 8,166, 79,159, 46,189,127,255,254,162,218, 24, 45, 27, 27,155,239,126,249,229, 23, 75,161, 80, 8, 66,200,155,185, 24,
-243,243,243,145,159,159,143, 41, 83,166, 72,159, 60,121,242, 67,109,140,150, 82,169,108,183,126,253,122, 1,159,207, 71,126,126,
- 62, 71,167,211, 81,121,121,121, 40, 44, 44, 36, 90,173, 86, 55,109,218, 52,222,163, 71,143, 58,167,164,164,196,128,230,175, 2,
- 19,192, 0, 54,155, 61,176,113,227,198, 31,188,120,241,226,129,193, 96, 56, 12,224,240, 59,120,153,234,106,111,111,191, 88,165,
- 82,173, 7,176,235,223,114, 64,149, 74,229,225,155, 55,111, 58,109,216,176,225,227, 85,171, 86,157, 2,240,223,122,200,113, 56,
- 28,206,160, 78,157, 58, 57,141, 30, 61,154,171, 84, 42,161,209,104, 16, 27, 27, 43, 61,112,224,128,203,195,135, 15,147, 74,103,
-196, 48,251,133,194,202,189,173, 24, 44,233,190, 54,109,219,181, 31, 60,104,128, 68,105, 37, 67,145,214,136, 23,241, 41,206,103,
- 78, 29,235, 20,205, 17,220,212,233,114,134,102, 62,191,153, 95, 91,205,192,192,174,237,187,117,237, 42,145, 89,200,144, 83,160,
-195,171,184,100,151,203,231,143,119, 96,177, 4, 87, 77,148,126,100, 90,212,249,194,247,121,110,166, 3,172, 2,190, 85,179,230,
-109,253,238, 7,141, 93,244, 1, 33, 4, 12,130,181, 21,163, 89,211, 1,214,218,146,105,191,106,165, 7, 66, 8, 69, 97,101,249,
-104, 86,143, 70, 88, 76, 8, 62, 7, 3, 84,143, 26,170, 41,203, 8, 2,120, 22,150,150, 1, 19,199,143,167,242,114,115,241,240,
-225,195,194,138, 38,235, 71, 7,112,174, 50,208,224,104, 98,221,205,246, 95, 52,154, 85,105,213,161,217,227,104, 9,133,194, 74,
-211,101, 50, 25, 2, 3, 3,177,116,233, 82, 22, 0,255, 10, 95,191, 61,201, 42,192, 59,177,113, 46,100, 34, 30,195,217,217, 89,
- 34,149, 74,235,173, 9, 0, 32, 38,215,182,206,164,215,189, 95,191,250,248,194,158,213,190, 5,121,217,236,138,171,136,197, 98,
-120,120,120, 96,222,188,121,230,105,214,159,255,169,166,173,173,173,103,135, 14, 29,252, 47, 93,185, 98,161, 82,169,120, 42,149,
-138,119,238,210, 37,139, 54,109,218,248,219,218,218,122,190, 57, 84,132,212, 38,159,223,135,134,134,206, 63,122,244, 40,163, 67,
-135, 14,144,203,229, 8, 12, 12,196,169, 83,167, 88,171, 86,173, 90, 2, 96, 94, 77,249,100, 48, 24,237, 59,116,232, 64,129, 16,
-168,115, 12,184,179,212, 19, 15, 87,122, 33,175,152,224,117, 78, 46,138,138,138, 33, 20, 10,249, 40,169,238, 53,119,223,219,182,
-105,211,134, 2,240,198, 92,229,229,149, 44,249,249, 5,208,106,117,224,241,120, 18, 0,124,115, 53, 9, 33,182,237,218,181, 3,
- 0,232,116,186, 55,111,120,217,217,217, 84, 78, 78, 14,180, 90, 45,216,108, 54, 7, 53,183,107,124,163, 41, 21,177,244, 44, 14,
-111,246,232, 41,223, 38,142,158,242,109, 34,139,195,155,173,149,228, 26,205, 73,147,138, 88,250,247,124,125, 90, 51, 24,140,109,
-141, 26, 53,122,194, 96, 48,118, 2,176,173,167,102, 75, 0, 75, 4, 2,193, 5, 47, 47,175, 68,161, 80,120,169,212,168,183,169,
-163, 38, 87, 40, 20, 94, 90,178,100,201,193, 7, 15, 30, 12,190,120,241,162,107,100,100,228,160,229,203,151,239, 19,139,197,215,
-240,118,187,196, 90,223,155,174,174,174, 91,239,220,185,211,178,109,219,182, 91, 0,240,222,209,253,206, 4,208, 2,102,205,200,
-241, 94,206,187,189,159,159,159, 19,159,207, 71,183,110,221, 0,160,115,125, 52, 57, 28,206,160,121,243,230, 53,250,230,155,111,
-184, 41, 41, 41,184,116,233, 18,238,222,189, 11,131,193,128, 73,147, 38,241, 70,143, 30,221, 80, 34,145, 12,170, 85, 62, 89,210,
-125, 51, 62,253,172,231, 23,211,199, 73, 34, 18,116,216,126, 33, 1, 71,110,165, 32,173,144,139,190,131, 70,203,122,132, 12,233,
-193,229,201,246,213, 86,243,203, 57,115,122,142,255,100,184,228,113,138, 9,199,110,171,113,251,105, 14, 12,108, 11,244, 30,244,
- 31,121,243,118, 61,251,176,192,222,241,190,207,209, 47, 64,235, 25, 51,102, 88,207, 94,185,251,134,125,203, 1,107,211,179,208,
-161,188,241,113, 7, 44, 44, 69,162, 1, 79, 59,117, 26, 39, 40,153, 47,182, 90,205,183,244,252, 67,214,165,101,161, 99,249,246,
- 89, 29, 45,225, 86, 90,173,200, 60,183,237, 27, 6,161, 48,125,132,253, 91,229, 64,165,249,252, 29, 24, 60,227,179,207,216, 50,
-185, 28,161,161,161,208, 20, 20,188,213,102,182,171, 19,122, 94, 16,178,146, 26,122, 57, 62, 9,116,161,174,253, 3,223, 87,198,
- 87, 25,209, 58,113,226, 4, 9, 14, 14,166, 0,224,208, 19,100, 13,242,198, 15, 67,166, 46,153, 71, 49, 40,210,192,183,237, 99,
-135, 70, 62, 5, 86, 86, 86, 40, 44, 44,132, 70,163, 1,135,195, 65,113,113, 49, 18, 18, 18,112,251,246,109,200,229,242, 90,229,
- 36, 55, 55, 23, 98,177, 24, 98,177,248,157,104,206,253,184, 27,239, 85, 98, 58,239,236,237,223, 59,253, 52,249,191,173, 27,181,
-232, 28,217,117,200,244, 40,169,181,125,113,100,100, 36,110,222,188,137,172,172, 44, 4, 4, 4,252, 83, 78,230,221,210, 54, 89,
-119, 1,200, 27, 55,110,236,120,246,194, 85,121,126,177, 73, 26,151,170,103,155, 76, 38, 8,133,118,134,253,135,142,229, 12, 30,
-212,151, 82,171,213,105, 0,238,150,154,219,154,230, 84,228, 3,240,252,240,195, 15,191,156, 60,121, 50, 94,190,124,137,113,227,
-198, 21,221,189,123, 55,179,109,219,182, 86,191,252,242,139, 96,230,204,153,184,114,229,202,130, 19, 39, 78,252, 6, 32, 22, 64,
-165,115,181, 17, 66, 56, 28, 14, 7,134, 82,219,160, 51,154,222,248,251,220,220, 92,144,162, 44,112, 56, 28, 38, 0,107,152,217,
-142,206,100, 50,113,216,108,246, 27,147,149,144,154,139,132,180, 66,228,230,107, 81, 84,100,128,182,136,128, 41,180, 98, 1,113,
- 74, 0,113,230, 70, 71,248,124, 62, 12, 6, 3,242,242, 74,178, 81, 22, 41,211,106,181,200,201,201, 1,147,201, 20, 3,144, 2,
-120,109,142, 96,105, 35,247, 35,165,213,128,184,183,187,159,226,197,201,185,111,165, 73, 69, 44,253,161,153,222, 76, 43,199,230,
-215, 91, 12,222,225,245, 38,237,253,182,207,226, 89, 91, 91, 95, 62,120,240,160,183,155,155, 27, 98, 99, 99,189, 62,250,232,163,
-128,148,148,148, 22,168,253,156,140, 66, 6,131,241,195,232,209,163, 39, 15, 27, 54,140,114,119,119, 7,139,197,130,193, 96,112,
-124,249,242,101,224,129, 3, 7,230,108,221,186,245, 23,163,209, 56, 11,230,183,251, 99,112,185,220,253,155, 54,109,234, 24, 16,
- 16,128,157, 59,119,226,238,221,187,166,150, 45, 91, 50, 70,141, 26, 5, 23, 23,151,128, 81,163, 70, 29,209,104, 52,189,235, 24,
-217,114,105,211,166,141, 19,147,201, 68,219,182,109, 57, 55,111,222,244, 3,112,179,158,199, 84,236,232,232,120,165,115,231,206,
- 45, 46, 92,184, 16,174, 86,171, 59,215, 98,127, 1, 32,196,222,222,126,185, 76, 38,147,215,162,140, 45, 76, 78, 78,254, 28,192,
- 33, 51, 55,105,237,239,239,143,248,248,120,120,122,122,130,195,225,180,209,233,116, 19, 0,244, 4,240, 53,128, 39,181,200,175,
-123,215,174, 93,157, 58,119,238, 76, 29, 58,116,232, 77,251, 80, 6,131, 1,131,193, 0, 14,135,131,214,173, 91, 51,194,194,194,
- 28,238,221,187,231, 14, 51,170, 17,173, 26,117,238,219,182,125,167,246, 29, 3,154, 49, 86, 29,122, 1,163,201, 8, 38,101, 0,
-139, 50,193,164,231,129,199, 97,194,221,247, 3,230,211, 71, 17, 1, 90,141,174,111,230,243, 11,199,205,209,236, 25,212,189,131,
-183,167, 59,227,167, 35,175,144,157,252,196,152, 28,125, 53,131,193,100,192,219,191,139,194,221,167, 5,179, 69, 64,103,182, 42,
-246, 81, 96,113,113,199,110, 89, 47,175, 94,120, 31, 55,228, 66,128,233,232,160, 24, 16,220,189, 51, 39, 69,165, 42, 56,112,232,
-120, 84,161, 30,183, 1,224, 10, 64,245, 6,154, 53,109,213,170,211, 47,203,150, 89,217,217,217,177, 71, 14, 27,102,216, 28, 30,
- 30,142, 42,170,126, 23, 2, 76,133,173,109,183,137, 19, 39, 50, 83, 84, 42,114,224,240,201,200, 50, 61,148,188,165, 52,109,230,
-232, 21,140,130,167,181,170,166,236, 11,112,149,182,182,222, 19, 38, 76,128, 90,165,194,206, 93,187,242,139,129, 91,101, 81,172,
- 99, 76,172,247,105,100, 59,102,246,127,250, 81, 78,118, 10, 76, 92,176,185, 77,160, 46,173, 17, 82,254,255,252,151,247, 34,127,
- 99,147, 53,190, 82,163, 85,145,255, 62,193,124, 9, 7,174, 7, 14,236,101,164,231,233, 10, 94,190,124, 9,133, 66, 1, 59, 59,
- 59,200,100, 50, 60,126,252, 24,151, 46, 93,194,179,103,207, 96, 50,153,208,188,121,243, 90,229, 38, 35, 35, 3, 17, 17, 17,144,
-203,229,239, 76,179,145,147, 53,166, 58, 89,115, 82, 51,115, 57, 23,238, 62, 11,216, 60,119,144, 15,195,107,208,214,242,147,196,
-106,181, 90,252, 67,120,211,187,208,201,201,169,221,246,237,219, 57, 26, 3, 36,238, 19,110,173, 40, 40, 54,138, 0, 64,196,103,
- 22,132, 45,247,152,245,253,247,223, 23,124,242,201, 39, 94,137,137,137, 75,205,136,245, 47,238,218,181,235, 23,132, 16,246,140,
- 25, 51, 0, 0,163, 71,143,206,189,125,251,182, 59,128,180, 75,151, 46,217,143, 29, 59,246,249,229,203,151,133,159,125,246, 25,
-211, 96, 48, 60,102,177, 88,228,196,137, 19,223, 1,248,246, 15, 79, 68, 6,227,126,120,120,120, 3,123, 23, 15,184, 88, 49,208,
- 97,222,179,146, 2, 78,104, 66, 82,220, 43, 68, 71,222,133,173,173,173,204,206,206,238, 73, 82, 82,146, 46, 57, 57,121, 78, 65,
- 65,193,134, 26,242,248, 48, 44, 44,204,206,197,197, 5,249,249,249, 72, 74, 47,196,244,195, 66,228, 22,149, 4, 49,216, 40, 66,
- 11, 39, 15,137,128,161,189,155,150,150,166,211,106,181,223,228,228,228,108,175, 78,147,205,102,103, 70, 70, 70,138,157,157,157,
- 81, 92, 92, 76, 94,191,126, 77, 21, 20, 20, 32, 47, 47,143, 58,121,242,100,255,148,148,148,150,174,174,174,148,163,163,227,119,
- 41, 41, 41, 69,201,201,201,227,204,169,154, 44, 53, 76, 70, 22,139,181,106,252,248,241,131,127,251,237,183,251,135,190,245, 14,
- 41, 87, 93, 34,243,245,245, 61,219,172,153,143,253,174,149, 77,215, 2, 88,241, 23,184,182,198,124,245,213, 87,222,150,150,150,
-152, 56,113, 34, 22, 46, 92,136,249,243,231,187, 77,156, 56,113, 60,128, 31,107,161, 35,176,181,181,189,247,211, 79, 63,121,181,
-107,215, 14,167, 78,157,194,222,189,123, 17, 19, 19, 99,112,117,117,101, 5, 4, 4, 96,193,130, 5,232,209,163,199,184,105,211,
-166,117, 82,169, 84,126,102,154,143, 79, 22, 44, 88, 16,210,190,125,123,124,252,241,199,154,223,127,255,125, 48,128,115,231,207,
-159,239,114,229,202,149, 67,187,119,239, 22, 44, 89,178,164,219,204,153, 51, 39, 2, 88, 87,135,253,239,223,177, 99,201, 28,202,
-237,219,183,199,242,229,203,123,212,211,104,113,173,172,172, 78,238,220,185,179,133,135,135, 7, 70,142, 28,233, 55,120,240,224,
-147, 89, 89, 89,221, 1,152, 85, 32, 57, 56, 56,252,112,244,232,209,198, 85,213, 44, 84,134, 70,163,177, 28, 48, 96,192,178,184,
-184,184, 90, 25,173, 61,123,246,224,243,207, 63, 71,243,230,205,155,181,110,221,122,227,132, 9, 19,240,225,135, 31,118,125,252,
-248,177, 18, 37,189,150,107,132,207,231, 55, 27, 58,116, 40,247,206,157, 59, 0, 0, 95, 95, 95,180,104,209, 2,155,104,178,222,
- 0, 0, 32, 0, 73, 68, 65, 84,241,241,241,184,127,255, 62, 52, 26, 13,148, 74, 37, 6, 14, 28,200,143,139,139,107,150,145,145,
- 81,163,209, 98,240,132, 99, 66,130,123, 75,142,221, 78,129,209,100,192, 7,141,165, 8,240,178,193,211,164, 92,132, 61, 73,130,
- 81,203,129,212,210, 10,109, 58, 5, 89,170,147, 99,198,100, 2, 53,183,215,226, 9,199, 12, 12,233, 35, 62,118, 75,133,108, 85,
- 52,121,113,247,183, 75,250,226,130,113, 0,112,255,226,190,141,182, 86,130,238,238,254, 31, 48, 59,119,239, 39, 63,188, 87, 61,
- 38,235,127, 51,183,223, 31,184,226,132, 77, 46,236,140,209,179,135,119, 32,108,185,227, 93,137, 94,191,190,236,187, 30, 64,208,
-156,175,190,106,253,159,241,227,249, 38,147, 9,187,127,253, 53, 55, 34, 60,252,233,120,192, 52,161, 10,189,245,128,203,224,144,
- 16,158, 68, 42,197,167,211,167, 67,162,215, 95,126,115, 72,128,174,159,126,241, 69,187, 41, 83,166, 8, 54,126, 55,249,126,143,
-177,139,252, 77,132, 80,101,213,148,123,170, 15,197,181, 28, 27, 18, 2,137, 84,138, 25, 51,102,128,210,233,206,190, 49, 80, 44,
- 92,254,164,127,135,128,225,125,219,131, 2,133,189, 39,174,227, 69,124,122,228,229, 20,188,250,187,186,170, 10, 84,217, 70,171,
-218,170,195, 60, 29, 82,187,246, 25,148,226,238,238,158,231,230,230,150,151,153,153,137,168,168, 40,100,101,101, 97,221,186,117,
-136,142,142,134,201,100,170,179,129, 49,153, 76,120,215,154, 0,160,180,146, 98,100,239, 86, 44, 77,113, 1, 63, 61, 61,253,173,
-234,163,127,144,209,122,131,193, 96,224,187,186,186,130, 1, 80, 57,133,122,177,122, 79, 71, 74,189,167, 35,149, 83,168, 23,107,
-181, 90,134, 88, 44,134, 70,163,225,155, 33,197,238,213,171,215, 23,191,253,246, 27,123,241,226,197,104,210,164, 9,116, 58, 29,
-110,223,190,157, 4, 32,173,116, 29,213,213,171, 87, 85,101, 70,120,233,210,165, 56,124,248, 48,213,173, 91,183, 57,149, 93, 79,
- 41, 41, 41, 63, 76,152, 48,225,117, 97,222,107,108, 26, 82,132, 67, 35,211,177, 45, 36, 6,195,172, 14,226,117,106, 2, 54,111,
-222,140,243,231, 47, 80,231,206,157,231,252,254,251,239,162, 62,125,250,172,117,112,112, 56, 81, 93, 38, 85, 42,213,226, 41, 83,
-166,100,231,229,229, 33, 47, 47, 15, 69, 69,197,120, 93, 0, 68,174,246, 70,228,106,111, 20,155, 4, 8, 93,191,129, 17, 25, 25,
-169,136,137,137,177,239,219,183,239,106, 59, 59,187,173,213,105, 38, 39, 39,223,153, 58,117,106,113,110,110, 46,180, 90,173,206,
-104, 52,106,139,138,138,244,251,246,237,251,204,202,202,170,205,169, 83,167,216,231,207, 95, 96,253,254,251, 21,206,165, 75,151,
-100,129,129,129,251,149, 74,229, 14,115, 34,101, 76, 38,115,205,174, 93,187,198,132,134,134, 42, 3, 2, 2,124, 42, 84, 69,217,
-117,239,222,189,193,175,191,254,234,176,124,249,242, 57, 40,233,128,242, 94, 81, 40, 20,211, 66, 66, 66, 16, 26, 26,138,227,199,
-143,207, 92,187,118, 45,122,245,234, 5,123,123,251,169, 48,191,218, 11, 0, 86,252,248,227,143, 94, 94, 94, 94, 24, 61,122,180,
-118,220,184,113,179,182,111,223,238,122,237,218, 53,206,142, 29, 59, 26, 76,156, 56,113,198,240,225,195,139, 27, 54,108,136,117,
-235,214, 53,102, 48, 24,107,204,186,191,149,202,207,134, 13, 27,134,149, 43, 87,226,247,223,127, 31,132,146, 7,170, 22,192,233,
- 27, 55,110,244, 93,178,100, 9, 6, 13, 26, 4, 71, 71,199, 25,117,137, 60,121,123,123,127,211,179,103, 79, 92,187,118, 13,126,
-126,126,104,211,166,205, 76, 0,138, 58, 30, 78,134, 88, 44,222,191,125,251,246, 14, 13, 26, 52,192,162, 69,139,208,168, 81, 35,
-108,221,186,181,131, 72, 36,218, 15, 51,155,111,200,100, 50,177, 80, 40,196,156, 57,115,200,160, 65,131, 94,215,180,204,156, 57,
-147,240,120, 60,200,229,114,115, 59,190, 8,248,124,126,219, 38, 77,154,224,246,237,219, 56,127,254, 60,230,205,155,135,207, 62,
-251, 12,233,233,233, 24, 58,116,168, 16,192,135,181,216,111, 27,107,107,107,228,230,150,204, 11,223,164, 73, 19, 60,120,240, 0,
-233,233,233,112,116,116,132, 90,173,134,149,149, 21, 60, 60, 60, 96, 50,153,108,204,147, 36, 77, 20,150, 50,164,101,105,192,130,
- 1,254,238, 10, 92,142,202, 68, 66,186, 22, 54, 86, 22, 80,167,165,195,193,138, 15, 39, 39,103, 16, 98,106, 98,150, 3,102, 50,
-252,121,124, 1, 94,231,233,144,252,228,247, 76,157, 81, 51, 33, 59,246, 70, 98,118,236,141, 68,157,166,120,194,253,235,231, 51,
- 27, 40, 5,112,114,114, 2, 69, 76,173,222,199,253,248,145, 51,156, 68, 2,214,232,243,219,190,161, 78,252, 50,151,210,100, 38,
-180,236,169, 44,137, 44, 91, 3,174, 31, 13, 29,218,118,214,172, 89,252,212,212, 84,211,240, 33, 67, 94, 47,254,246,219, 11,103,
-106,120, 49,200, 7,220,186,119,239, 14, 6,128, 51,231,206, 21,168,129, 36, 0, 80, 2, 78,253, 6, 12,232,248,213,151, 95, 10,
- 50, 50, 51, 77,183, 95,230, 31,139, 78, 35, 3, 45,141,112, 53,167,125,150, 17,104, 90,166,123,246,236, 89, 82, 4,220, 7,128,
-206, 78,152, 26,212,206, 55, 96, 84, 72, 71,164,164,101, 97,198,226,109,216,120,224,202, 89,153,158,116,249, 7, 61,138,199,215,
-201,104,149, 86,253,252, 33,173,176,240,143,181, 7,245, 53, 48,127,134,102,101,252, 19,141, 86, 25,122,125, 73, 45,137, 86,111,
-130, 86,111, 42,123,171, 69, 81, 81,145,217, 18,103,207,158,221, 57,125,250,116,172, 94,189, 26,207,159, 63, 7,135,195, 65,147,
- 38, 77,236, 0,136,203,202,124,127,127,127, 27, 6,131,129,167, 79,159, 98,213,170, 85,248,228,147, 79,200,205,155, 55,183,162,
-242,241, 82, 30,188,126,253,122,253,132,113,159,100,103,165, 38, 64, 95,148,133,180,228, 87,208, 20,100, 99,209,210, 31, 80,168,
-103, 65,157,163,131, 58, 71, 7, 6,207, 18, 27,127,217,206,244,246,246,238,201,100, 50,131,171,201,231,237,212,212,212, 95, 38,
- 77,154,148,173, 86,171,223,236,159, 86, 79,160,213,191,125,189, 10,133, 66,172, 89,179, 70,230,238,238, 30,194, 98,177, 2,171,
-209, 76, 73, 76, 76,140,158, 52,105,146, 54, 53, 53, 21, 57, 57, 57, 56,118,236, 88,223, 6, 13, 26,200,151,173, 88, 77, 21,232,
- 88, 80,103,235,160,206,214,129, 43,182,193,254, 67,191, 49, 61, 60, 60,134,179, 88,172, 54, 53,153,172,221,187,119,143, 26, 50,
-100,136,100,197,138, 21,175,143, 30, 61, 26, 10,160,252, 9,121,186,102,205,154, 3,251,247,239,207,251,226,139, 47, 44,151, 47,
- 95, 62,243, 61,155,173,192, 33, 67,134,120,154, 76, 38, 28, 60,120, 48, 18,192,143,191,253,246,219, 61,141, 70,131,161, 67,135,
-186,150, 86, 35,153, 67,203,225,195,135, 79,238,208,161, 3, 62,253,244, 83,221,133, 11, 23,252, 1,172, 70, 73, 85, 46, 1, 16,
- 15, 96,237,149, 43, 87,154, 79,155, 54, 77,211,170, 85, 43,124,252,241,199,159, 0,232, 80,131,110,219, 97,195,134,121,153, 76,
- 38,236,219,183, 47, 2,192,169, 10,223, 95, 58,116,232,208,109,173, 86,139, 17, 35, 70, 52, 4, 80,155,130,156,195,227,241, 14,
-126,255,253,247, 22,201,201,201, 24, 53,106,148,230,233,211,167,248,246,219,111, 5, 50,153,236, 84,185,123,192,108,120, 60,222,
-230,159,127,254, 57,164,105,211,166,152, 52,105,146,118,195,134, 13,211, 39, 79,158,172,245,247,247, 71,104,104,104, 8,151,203,
-173,213, 20, 29, 42,149, 42,251,201,147, 39, 86, 53, 45, 73, 73, 73,230,118,207, 23,138,197,226, 91,190,190,190,185, 77,154, 52,
-249,192, 96, 48,224,241,227,199,175,118,238,220,105,106,210,164, 9,214,175, 95,143,229,203,151, 35, 56, 56, 24, 76, 38,211,108,
-163,197,100, 50,161,211,233, 32, 20, 10,193, 98,177,240,234,213,171,178,161,101,192,225,112, 0, 0, 34,145, 8, 2,129, 0, 12,
- 6,195,172,222,104, 20, 5,146, 91,168, 7,155,205, 0,139, 97, 66,116,124, 14,116,122, 19,248, 28, 38,216, 44, 10, 32, 38, 88,
-136,216,224,115,153, 96, 80,148,201, 76, 77,228, 20,232,192,229, 48,192,230,112, 41,134,193, 40,120,243,112,100, 25, 5, 2, 1,
-151, 82, 72,121,224,115,254, 66,211, 2, 83, 37, 13,203,199, 0,108,145,179,243,224,149,171, 86,113,115,243,243, 49,104,208,160,
-215,113,247,238,237, 42, 2,238,117,170,161,147, 18,131,197,114,239,220,169, 19,194,194,195,145,151,149,245, 2, 40,105, 28,207,
-181,183, 31,178,102,205, 26,110, 81,113, 49, 6, 13, 28,152,253,252,250,245,221,137,249, 56,177, 47,190,196,136,213,120,222, 57,
- 28,219, 50,221,156,172,172, 44,160,100, 8, 9,165,181,120,217,148,225, 61,144, 87, 88,140,217, 63,236, 50,133, 71,167, 76,189,
-150,132, 62,191,169,144,243, 15,123, 12,143,175,176, 0, 48, 99,192,210,178,232, 82, 77,102, 69,163,209,188,115, 3, 84, 95,205,
-202, 76, 98,125, 53,255,138,176, 88,172,226,103,207,158,113,165, 86,246, 38, 43, 9, 59,171,193, 39,215,101, 0, 96, 41,102,229,
-232,140,122,147, 74,165, 2,143,199, 43, 54,179,186, 97,220,230,205,155, 23, 1,240, 97,177, 88, 39,182,111,223, 78,237,218,181,
- 75, 62,108,216,176,151, 79,158, 60, 73,246,245,245,117,217,190,125,187, 20, 0,214,174, 93, 75,246,239,223,223, 3, 37, 67,102,
- 84, 57,142, 75,106,106,234,183,153,153,153, 55,167, 76,153,178,142,203,229,202, 69, 34,145,213,181,107,215,168, 98, 29, 65,203,
-175,226,223,244, 68,148, 10, 24,184, 58, 87,138,241,227,199, 51,159, 60,121,178, 52, 57, 57,249, 68, 53,154,115,178,179,179,175,
- 61,127,254,124,181,204,177,133,181,200,229, 43, 89,192,220,167, 0, 0, 23, 5, 27,140,210,114, 49, 59, 59, 27,233,233,233,152,
- 60,121,178,252,229,203,151,115,146,147,147, 47, 87, 19,213,186,146,145,145,145,244,232,209,163,206,108, 54,155, 43, 18,137, 90,
-222,186,117,139, 42,214,154,208,108, 78, 60, 94,231,151,228,211, 82,204,194,253,239,149,152, 58,117, 42,235,197,139, 23, 63,164,
-164,164,180,175,180, 48, 99, 48,150,151, 55, 89,179,103,207,126, 8,160, 33,128,183,170, 70,141, 70, 35, 53, 98,196,136, 40, 0,
- 77,190,248,226, 11, 75, 66,200,204, 57,115,230,188, 6,176,233,127,125, 45, 73,165,210,101, 19, 38, 76,192,254,253,251,145,149,
-149,181, 6, 0,114,115,115,127,220,179,103,207,190,113,227,198,225,215, 95,127, 93,150,158,158,126, 6, 53,119,213,238, 53,116,
-232, 80,156, 62,125, 26, 23, 47, 94,252, 6,192,227, 42,214,123,126,237,218,181, 57, 71,143, 30,253,105,216,176, 97,216,182,109,
- 91, 79, 0,213, 53,144,237,222,163, 71, 15,156, 58,117, 10,153,153,153,161,149,173,144,157,157,189,225,216,177, 99,173,123,244,
-232,129,165, 75,151,118, 7,112,201,140, 93,247,146,201,100,219,127,250,233,167,150, 77,155, 54,197,240,225,195,139,117, 58, 93,
-207, 47,190,248,226,248,222,189,123, 37, 59,119,238,252, 96,252,248,241,119, 74,199,124,187,109, 86, 40,139,193, 88,178,106,213,
-170,177,157, 59,119,198,204,153, 51, 13,103,207,158,237, 7,224,220,153, 51,103, 94,206,158, 61,251,228,170, 85,171,152, 43, 87,
-174, 28, 59, 99,198,140,116,147,201,244,190,204,245,247,107,215,174,109, 29, 20, 20,132, 87,175, 94,225,246,237,219,208,233,116,
-191,222,186,117,235,170,155,155,219,247, 90,173,246,184, 72, 36, 26, 45,145, 72,124, 91,180,104,209,229,254,253,251, 66,152,215,
- 78, 47, 53, 54, 54,214, 66, 38,147,193, 96, 48, 32, 50, 50, 18,206,206,206,208,233,116,136,137,137, 65,211,166, 77,193,225,112,
-144,154,154,138,114,209,242, 26, 76, 17, 35,242,101,156,170,161,165, 68, 4, 24,249,120,240, 52, 9,214, 10, 57,140, 20, 3,106,
-117, 10, 90,120, 58,130,162, 40,100,103,170, 65, 81, 84,148, 57,154, 70, 98, 10, 75, 80,165, 57, 88, 73,120,104,218, 58,200,234,
-214,153,244, 93,210,134,237,198,179,152, 20,147,203, 19,111, 26,251,241,199, 10,147,137, 32, 59, 51, 21, 44, 6,227,238,251, 56,
- 65, 7, 19,144,216,169, 17,255, 65,208,216, 69, 45, 40, 2, 82,164,195,206,109,169,200, 18, 2, 45,214,126,253,181,133,149, 66,
-129,225,195,135,155, 50,147,147, 47, 20,154, 57,176,114, 67, 55, 55,165, 88, 34,193,141, 27, 55,192, 44,105, 99,139,173,128,215,
-242,217,179,173,108,108,109,241,201,216,177,166,212,132,132, 75, 69,128,170, 54,121,109,216,168, 17,187, 76,151, 81,170,155,194,
-196,244, 47,250,117,224,137, 4, 60, 44,217,248, 27, 18, 51, 10,246,221, 74,193,198,127,104,188, 99,115,181, 17,173,170, 26,159,
-149, 52,170, 22, 86,107, 86,248,124,254,155,104, 74, 45,222,244,222,185,102, 77,252, 25,154,239,145,185, 0,142, 2,152,155,152,
-152, 24, 61,118,236, 88,157, 65,167,201,187,185,168,225,151,225, 75, 27, 76,186,245,173,221,164, 35,211,101, 95, 22,230,188,206,
- 91,187,118,173, 62, 49, 49, 49,186,252, 54, 53,104, 39, 0, 56,181, 99,199,142, 13, 7, 15, 30, 68,147, 38, 77,240,248,241, 99,
-155,130,130, 2,191,168,168, 40, 75, 47, 47, 47,236,218,181, 11,251,247,239, 95, 13,224,124,117, 38,171, 12,131,193,112, 65,173,
- 86,123,196,199,199, 55,182,176,176,208, 91, 88, 88,160, 98, 79,196,220, 34, 19, 50,179,115, 96,105,105, 5,169, 84,234,106,134,
- 57, 63,165, 86,171,221, 77,114,207,142,238, 25,107,114,194,150, 56, 33,108,137, 19, 78,205,177,135,157, 5, 23, 89, 89, 89, 72,
- 79, 79, 71,122,122, 58, 40,138,130, 94,175,247, 54, 67, 51, 38, 37, 37,101, 75, 66, 66,194, 81,165, 82, 9,137, 68, 2, 2, 64,
-157,173,199,195,149, 94,120,184,210, 11,234,108, 61,114,243,242,208,160, 65, 3, 72, 36,146,170,170, 40, 24, 14, 14, 14,189,135,
- 12, 25, 34, 1,128, 82, 3,213,149, 16, 50,169,146,101,162,193, 96,104, 87,182,238,231,159,127,110, 9,160,199,255,248,122, 98,
- 2,152, 50,110,220,184, 15,248,124, 62,214,175, 95, 31, 3, 96,119, 89, 89,191, 97,195,134,167, 0, 48,125,250,116, 95, 0, 51,
- 81,197, 72,208,111, 66, 67, 28,142,191,183,183, 55,110,221,186, 5, 0,191,213,240,219,135,110,222,188, 9, 55, 55, 55,240,249,
-252,150, 53,172,235,234,228,228,132,167, 79,159, 2,192,131, 42,214,121,240,244,233,211,146,234, 30,138,114, 53, 99,223, 67,130,
-130,130, 34, 47, 95,190,220,178,109,219,182, 24, 59,118,172,246,206,157, 59,189, 1, 92,125,240,224, 65,224,136, 17, 35, 10,220,
-221,221,113,229,202, 21,175, 17, 35, 70,220,100, 48, 24,139,204,208,252,228,187,239,190,155,219,191,127,127,124,247,221,119,228,
-192,129, 3,195, 1,156, 43,253,238,236,190,125,251, 70, 45, 94,188,152, 12, 28, 56, 16, 11, 23, 46,156, 11, 96, 82,117, 98, 5,
- 5, 5, 57, 70,163, 17, 5, 5, 5,102,133,228,205, 93, 95,161, 80,244, 10, 10, 10,194,188,121,243,224,224,224,128,227,199,143,
- 19, 0, 39, 0, 92,211,106,181, 29, 1,172, 42, 40, 40, 56,114,235,214, 45,116,239,222,157,131,183,167, 24,169,238,247, 35,247,
-236,217,163,145,201,100,112,113,113, 65,195,134, 13,161, 86,171, 17, 23, 23,135,166, 77,155,194,223,223, 31, 6,131, 1, 91,182,
-108, 41,206,203,203, 51,107, 76, 62,131,182, 96,231,249,147,135,115,172, 36, 60, 56,218,200,208,192,193, 18,249,217, 25, 72, 87,
-171,224,239,237,140, 78,254, 13,144,145,163,197,217, 19,135,179,242,242, 10,119,154, 21,194,215, 20,110,191,112,230,120,142, 92,
-194,129,135,167, 47, 70,140,157,222,162,133, 95,192,249, 86,173,218,157, 93,177,108, 73,179,174,109,188,169,164,140, 98,156, 62,
-241, 91, 86, 78,110,238,246,247, 81,208, 47, 4,152,197, 50,247,171,161, 71,195,182,248,244, 28,183, 37, 58, 9,107, 0, 64,207,
-100,122,245,238,213, 11, 73, 73, 73, 56,124,240, 96, 74, 33, 16, 97,174,158, 64, 32, 96, 0, 64, 78, 78, 14,120,165,237,238, 12,
-128,103,159, 62,125,144,158,145,129, 61,187,119,167,159, 6,194,107,147,207,190, 0, 87, 40, 40, 9, 8,230,228,228,128, 2,114,
- 1,128, 98,161,119,171, 38,110, 72,127,157,139,203,119,163,243, 27, 20, 97,114,117, 58,127,227,134,240,117,107,163, 5, 32, 99,
-230,204,153,224,241,120,176,179,179,123, 99,142,202,204, 10,151,203,133,157,157, 29, 12, 6, 3,246,237,219, 7, 0, 25,213,190,
-225, 1,154,126,147,150,154, 52,122, 82,200,102,179,223,137,102,233,155,163,102,208,236,109,166, 51, 55, 43,239, 20, 83, 23,205,
-191, 1,173, 74,199,196,106, 5, 32, 43, 46, 46, 46,105,240,160,126, 57,241, 47, 31,169, 11,178, 85, 41,185,153,137, 41,137, 49,
- 81,234,175,230,204,204, 73, 74, 74, 74, 68,201, 88, 90,173, 84, 42, 85,217, 54,230, 48,115,240,224,193, 63,143, 27, 55,142, 60,
-124,248, 16, 0, 16, 22, 22,134,143, 63,254,152,140, 26, 53,106, 13,128, 47,235,144,239,130,162,162,162,183,162, 33, 58,163,233,
- 77,149, 95,110,110, 46, 84, 42, 21,180, 90,173,217,142,248,249,217,149,207, 94,199,221,215,251,186,136,224,235, 34,130,151,147,
- 16,148, 33,255,141,201, 74, 79, 79, 47,123,115, 46,174, 69, 62,115, 53, 26,205, 91,249, 44, 95, 53,153,155,155, 11,181, 90, 13,
-163,209, 88,213,131,204,148,156,156,124,118,255,254,253,121, 0,176, 98,197,138,215, 20, 69, 93,164, 40,234,231, 74,150,141, 44,
- 22,235, 70,217,186, 43, 87,174,124,141, 63, 86,137,253,153,244,111,218,180,105,214,220,185,115,215,207,152, 49, 3, 27, 55,110,
- 68, 74, 74,202,151,248,255,177,120, 76, 25, 25, 25,179, 67, 67, 67, 49,102,204, 24,204,159, 63,127,165,159,159, 95, 46,128, 17,
- 85, 9, 90, 91, 91, 59,178, 88, 44,132,135,135,231, 2,120, 85,195,239,171,195,195,195, 83, 41,138,130,157,157, 93,163,234, 86,
-180,180,180,108, 44,145, 72,144,156,156, 12,148,190, 49, 87, 66,156, 74,165, 34, 92, 46, 23,246,246,246,110, 53,237,188, 92, 46,
-159,189,101,203, 22,214,163, 71,143,208,181,107,215,164, 43, 87,174,116, 7, 80,214, 37, 61, 60, 44, 44,172, 67, 96, 96,224,179,
-243,231,207,227,135, 31,126,160,154, 55,111, 62,169, 38, 77, 23, 23,151,137,159,124,242, 9,214,173, 91,135, 77,155, 54, 77, 2,
-112,176,194, 42,123, 67, 67, 67,167,111,218,180, 9, 99,199,142,133,171,171,235,136,234,244,226,227,227,231,116,238,220, 57,236,
-249,243,231,102,205,120, 96,230,250,129, 1, 1, 1,141,139,138,138,176,125,251,246, 87,141, 27, 55,190,119,240,224,193,153,248,
-227, 3,251,200,225,195,135, 49,114,228, 72, 52,111,222,124, 59,128, 97,230,220,150, 79,158, 60, 73,188,116,233,146,137,195,225,
-192,197,197, 5,193,193,193, 24, 62,124, 56,154, 53,107, 6,157, 78,135,195,135, 15,155,162,162,162,146,180, 90,173, 89, 99, 41,
-101, 62,255,253,120,108,236,179, 27,225,119,174,234, 89, 76, 6,156,237, 44, 49,160, 91, 11,252,231,195,118,240,247,114, 64,124,
- 90, 17, 46, 93, 58,175,143,141,125,117,203,156, 30,135,101,154,209,143, 35,110, 62, 10,191,110, 96,179, 40,120,121,186, 99,222,
- 87,179,229,139, 23,204,177,112,111,228,140,136,152, 28,156, 63,119, 90,175, 74, 74,188,252,190,122, 28, 94, 1, 56, 98, 30, 37,
- 98, 50, 24, 48, 50,120, 5,204,210,142, 52, 77,124,124, 60,148,182,182, 56,121,242, 36, 24,181,232, 17,122, 5,224,136,197, 37,
-181,224,249,249,249, 40,211,107,236,233,233,233,236,226,130, 83, 39, 79,130,105, 50, 61,233, 84,203, 1, 70,159,150, 84, 67,191,
-209,165,128,226,201, 78,144, 52,118,178,241,148,203, 68,184, 19,241, 2, 26, 61,185,187, 59, 11,239,117, 60,178, 63,145,241,168,
- 99,213,225,138,141, 27, 55,182,218,178,101, 75,247,153, 51,103,138, 71,143, 30, 13, 62,159,143,194,194, 66, 56, 58, 58,194,104,
- 52,226,204,153, 51,184,127,255,126,190,201,100, 58,143, 63, 14, 27,208, 13,229,122,105,156,125, 5, 65,137,223, 42,108,117,244,
-163,143,222,137, 38, 0,136, 95,152,164,153, 13,180,187,214, 30,188, 62,112,207,217,112,234,211, 97,157, 24,254,158, 78, 0, 0,
-165, 82, 9,169, 84, 90,107,205,119,192,159,174, 89,190, 90, 87,173, 86, 63, 85,171,213,105,227,198,141,243, 42,107,248,206,227,
-241,138, 75, 35, 89, 89,149,109, 99, 70, 62,117, 0, 38,111,217,178,229, 88, 78, 78,206,217, 47,190,248, 2,139, 23, 47,198,241,
-227,199, 59, 0,184, 81,199,125, 55,102,101,101,101,223,189,123, 87,233,230,237,135,134, 54,108,116,252,230, 57, 8, 33,176, 18,
- 18,228,101,191,198,131, 7,225,200,203,203,187, 83,155,124,234,116,186,236,180,180, 52,133,141,141, 13, 94,191,126,141,140,140,
-140, 55, 38, 43, 43, 43, 11,175, 95,191, 38, 20,245,135, 49, 91,170,211, 44, 72, 75, 75, 43,140,142,142,230, 42,157,220,208,200,
-134,131,128,175,158, 2,132,192,217,146,129,188,220,108,220,186,117, 11, 57, 57, 57,191, 87,165,105, 50,153,102,141, 24, 49,130,
- 9, 96,212, 23, 95,124, 97, 9,160,249,236,217,179,207,163, 66,207, 66, 22,139,245,227,174, 93,187,154,148, 85, 49,206,153, 51,
-103, 53,128, 45,255,171,107,201,202,202,106,214,201,147, 39, 37, 58,157, 14,107,215,174,197,234,213,171,183,226,143, 3, 85,158,
- 92,191,126,125, 40,131,193,152, 50,117,234, 84, 76,152, 48, 65,248,193, 7, 31,204, 76, 73, 73,217, 93,153,102,114,114,242, 60,
-127,127,255,249,105,105,105, 75,204, 50,203,207,159,143,247,247,247,159,151,150,150,182,188,186,115, 36, 18,137, 68, 70,163, 17,
-177,177,177, 89, 64,149,237, 59,138, 99, 99, 99,147,141, 70,163,163, 80, 40,180,172,233,250,204,202,202, 90,242,193, 7, 31,124,
-155,154,154,122, 14,192,162, 74, 12,249,195,148,148, 20,223, 25, 51,102, 76, 91,182,108,217, 64,181, 90,189,175, 38,205,248,248,
-248, 37,129,129,129,223, 60,123,246,108, 7,170,174, 2, 94,191,112,225, 66,221,174, 93,187, 38,197,198,198, 46,173, 65,243, 68,
- 70, 70,198,137, 90,156,223,170,214,127,163,201,100, 50,103, 47, 91,182,140,177,113,227, 70, 16, 66, 86, 26,141,198,170,242, 25,
-113,228,200,145,157,237,218,181, 27,125,240,224, 65,190,175,175,239, 4,141, 70,179,183,166,235,179,176,176,240,240,193,131, 7,
- 7, 70, 68, 68, 56,142, 30, 61,154,239,225,225, 1,157, 78,135,148,148, 20,108,220,184,177, 56, 42, 42, 42, 41, 59, 59,251,112,
-109,202, 16,131, 54,119,216,205, 75, 71,247,198, 61,143,106,211,185,103,136, 92,171,115, 4, 47,147,137,236, 76, 53,206,156, 56,
-156, 21, 27,251,234, 86, 97, 97,246,176,218,104,234, 52, 57, 67,111, 93, 62,182, 47, 41, 54,186,117,199,192,222,242, 98,173, 11,
-120, 28, 6, 50, 83,147,113,230,228,209,215,177,177, 49,215,138,245,154,143,223, 87, 57,207,116,197, 34,166,250,254,184,137,125,
- 91, 64, 32,119,124,192, 6,214,182, 3, 4, 10,165,146, 83,122,239, 64, 92,210,230,209, 44,205, 84,128,235, 86, 90, 75, 85, 88,
- 88, 8, 54,160, 29, 3,176,173,173,173, 5, 0,240,236,217, 51, 8, 75,106, 53,106,149,207,124, 64, 36, 44,167,203, 0, 10, 51,
- 89,112,104, 44, 21, 81, 0,144,164,206,132, 86, 95,237,115,227,239,206,230,114,134,107,115, 93, 4, 56, 0,186,137,197,226,197,
-243,231,207, 95,121,231,206,157,149,193,193,193, 43,121, 60,222,226,210,131,205,169,230, 68,252,207, 52, 91,218,195, 50,176, 17,
-117, 53,168, 49,101,154,216, 65,110,252, 56, 64,164,237,210,165, 75,104, 61,243, 89,159,155,229,207,212, 60,170,215,235, 9, 74,
-170,237,142,162,234, 42,193,185,229,190, 87, 39, 36, 36,144,210,191,107,147, 79,197,144, 33, 67, 76,121,121,121,100,240,224,193,
- 4, 53, 79,225, 83,173, 38,143,199, 11,236,216,177,163, 62, 53,253, 53,121, 26,147, 76,110,135, 61, 38,103, 47,221, 36,251, 14,
-159, 36,235, 66, 55,145,102,205,154,105, 1,184,212, 70,147,197, 98,117, 9, 12, 12,204, 76, 77, 77, 37,209,209,209,228,234,213,
-171,228,208,161, 67,100,211,166, 77,228,231,159,127, 38, 78, 78, 78,169, 0,148,181,209, 20, 8, 4, 33,189,122,245,210,103,231,
- 22,146,216,228, 76, 18, 25, 29, 75,110,220,141, 36,103, 46,221, 32,187,247, 30, 36, 62, 62, 62,197,102,104, 50,153, 76,230,186,
-125,251,246,229, 18, 66, 72, 72, 72, 72, 18,222, 30, 72,181,225,172, 89,179,210, 8, 33,100,249,242,229,153,168,188, 33,252,159,
-125, 45,245,116,112,112,120,202,225,112, 78, 2, 24, 85,195,118, 67, 89, 44,214,113, 91, 91,219,123, 0, 6,188,135,251, 40,216,
-198,198,230, 54,128,154,102, 56, 40, 91,175,255, 63,228,126,255, 51, 52,187,176, 88,172,171, 64,245,147, 8,151, 43,175,191,103,
- 50,153,167, 0,116,173,101, 62,221, 21, 10,197, 96,185, 92,254,169, 92, 46,255,212,198,198,102, 48,151,203,117,175,207,190, 91,
-185,119,235,235,236,215,239,136, 83,243, 62,241,206, 45,130,227, 93,253, 67,142, 88,185,119,235, 91, 95, 77, 23,255,144,163,206,
- 45,130, 19,156, 91,244,141,107,216, 50,228,136,194,179, 91,175,247,121,142, 70, 57,192,190,123, 67, 24,200,213,111, 8,185,250,
- 13,233,214, 16,166, 54, 22,240,105, 5, 72,122,116,235,182,138, 24,141,171, 6,246,239,191,202, 13,176, 34, 0,179,226, 82,153,
-166, 31, 32,125,179,109, 72,200,170, 70,128,162, 59, 32,236,212,161,195, 74, 98, 52,174, 26, 49,116,232, 42,103,192,182, 50,189,
-170, 52, 9,192,116, 0,236,203,235, 42,128,198, 31,186,194,119,110, 95, 87, 66,174,126, 67, 22,126,228, 65,252,149, 24, 85,131,
-102, 85,145,162,191,117, 68,171,182,136, 74, 11,215,165,165,159,162,119,112, 17,190,115,205,214,118,240,232,214,152,138,238,237,
-201,122,141,146, 46,201,162,127, 96, 33,185, 67,171,213,146,226,226, 98, 82, 88, 88, 72,242,243,243, 43, 26,168, 55,134, 76,165,
- 82,145,164,164, 36,146,144,144, 64,226,226,226, 8,254,191,237,141,217,249,148, 74,165, 91, 62,250,232, 35, 35,155,205, 94,247,
- 46,246,221,210,210,114,105, 64, 64,128,238,167,159,126, 34, 71,142, 28, 33,191,252,242, 11,153, 58,117, 42,105,210,164,137,198,
-194,194, 98, 88, 93, 52,109,109,109,231,121,122,122,102,110,221,186,149,236,222,189,155,172, 89,179,134,124,253,245,215, 70, 71,
- 71, 71,181, 68, 34,233, 81, 23, 77, 27, 27,155,205,237,219,183,215,109,222,188,153,156, 63,127,158,236,217,179,135,204,154, 53,
-139,120,121,121,105, 68, 34,209, 32, 51, 53,153, 44, 22,107,213,196,137, 19,213,246,246,246, 39, 43,124, 39,244,241,241,185, 55,
- 98,196, 8, 21,128, 57,255,160,235,147,214,164, 53,105,205, 63,193,104, 13,183,135, 3, 1,152, 66, 14,103,104,167, 14, 29, 86,
-114,128,161,181, 53, 69,124, 38,243,195,118, 1, 1, 43, 57,192,176,178,117,249, 76,230,135,157, 58,116, 88,201,102, 50, 71, 86,
-165, 87,157, 38, 1,152, 28, 22,107, 78,187, 54,109, 86,177,128,175,202,210,186, 52,164,158,204,234,233, 68, 58,184, 80, 47, 70,
-218, 64,248, 15, 54, 90,239, 28,214,159,112, 17,254, 93, 52,255, 42, 55,181, 91,169, 97, 58, 90,139,136,214, 81,148,204,162,238,
- 86,199,124, 10,222,241,190, 55, 85, 40, 20,167,221,220,220,210, 27, 52,104,160,146,203,229,123, 1, 56,214, 83,211,215,214,214,
-246, 87,165, 82,249,220,206,206, 46, 66,161, 80,252,136,146, 81,231,235,172,201,102,179, 3,148, 74,229,239,174,174,174,217, 46,
- 46, 46,169, 10,133, 98, 95, 37,145, 44,115, 52,237, 80,121,161,194, 41,253,142,126,232,208,154,180, 38,173,249,150,129, 9,106,
-132,101,221, 27,194,208,189, 33,140, 65,174,248,177,188, 65, 9, 6, 4,117, 53, 69, 31, 3,188,138,235,215,164, 87,147, 38, 1,
-152,109, 1,113,197,109,122, 59,194,199, 76,205,191,123, 68,171,172,156,175,221,240, 14, 85, 96,248, 19, 50,249,119,209,252,171,
-240, 2,213, 52, 70, 46,199,210,119,248,155, 69,239,120, 31, 34, 51, 50, 50,122,101,100,188,211,190, 9,143,212,106,245,168,119,
- 41,168,215,235,239,164,166,166,118,126, 7, 82, 85,117,189,214,193,204,110,217, 52, 52, 52,255, 30, 40,192,136, 87,248,178,155,
- 59,214,178,140, 96,156,137, 65,114,133, 46,121, 69, 84, 93, 52, 75, 48,238,168,164,140,167,234,154,207,255, 39,255, 15, 26, 73,
-120, 76,253,123, 78, 91, 10, 74,218,104,213,219,104,209,208,208,208,208,208,208,252, 15,184,240,156,126, 17,251, 27,112, 18,111,
- 71,223, 78,150, 51,162, 85,134, 62,107,211,147,162, 46,225,211, 11,180, 38,173, 73,107,210,154,180, 38,173, 73,107,254,235, 52,
-203,168,106,238,212,167, 21,254,175, 83, 47,190,127, 11,116, 61, 59,173, 73,107,210,154,180, 38,173, 73,107,210,154,255,116,234,
- 60,142, 22, 13, 13, 13, 13, 13, 13, 13, 13, 77,245, 84, 25,117,163,141, 22, 13, 13, 13, 13, 13, 13, 13, 77,253,176, 67,201, 20,
- 85, 39,241,255, 83, 85,109, 6,106,158,130,231, 45,150, 45, 91,198,112,115,115, 19,115,185,220, 38,175, 94,189, 98, 76,158, 60,
-185,222, 29, 9, 86,254,184,142,225,226,226, 34, 6,208, 36, 51, 43,143,241,201,127,190,160,232,243, 69, 67, 67, 67, 67, 67, 67,
-243, 55,162, 79,169,177, 42,251,124, 19,225,170,149,209, 90,180,104, 17, 18, 18, 18, 68, 0,134,248,250,250,114, 55,108,216, 64,
- 14, 28, 56, 80, 47, 99,244,213,156, 89,136,143,143, 23, 1, 24, 98,163,176,224,110,219,178,130, 28, 60,126,253,157,155, 45,133,
- 66, 97,245,191,220,142,134,134,134,134,134,134,230, 95,197,248,114,159,227,235,100,180, 88, 44, 22,147,203,229, 54, 98, 48, 24,
-189,248,124,126, 75, 0, 40,157,146,165,206,176, 88, 44, 38,151,199,107,196,100, 50,123,241,120, 37,154, 31,245,109, 95, 95,205,
-174, 34,145, 40, 81, 40, 20,222, 7, 32,144, 72, 36,225, 58,157,238,177, 68, 34,185, 89, 27, 29,137, 68,114,179,116,187,112, 0,
- 2,161, 80,120, 95, 36, 18, 37,178, 88,172,174,244,245, 68, 67, 67, 67, 67, 67, 67, 83,202,230, 74,150, 63,114,226,196,137, 42,
- 13, 14,151,203,101,248,250,250,182,119,113,113,185,225,237,237,173,117,116,116, 60, 36, 20, 10, 69,245,204, 24,195,205,195,171,
-189,189,157,242, 70,139, 70,118, 90, 27, 27,155, 67,108, 54,187, 62,154, 76,137, 68,178, 38, 40, 40, 40,231,198,141, 27, 68, 42,
-149,166, 2,176,176,182,182, 86, 17, 66,136,173,173,173,169, 54, 98,182,182,182, 38, 66, 8,177,182,182, 86, 1,176,144, 74,165,
-169, 55,110,220, 32, 65, 65, 65, 57, 18,137,100, 13,106, 30,209,150,134,134,134,134,134,134,166, 22, 84,231, 69,254,194,148, 69,
-177,236,234,188,115, 92, 46,215, 79,161, 80, 68,125,246,217,103,198,205,155, 55, 19, 23, 23,151,187, 54, 54, 54,109, 20, 10,197,
- 91, 13,234,199,140, 25, 83,155,106, 63, 63,137, 84, 22,181, 99, 70, 79, 99,209,182, 16,226, 96,103,115,215,194,194,162,141, 84,
- 42,125, 75,115,196, 39, 19,204,209,180,151,201,100, 17,203,150, 45, 43,206,206,206, 38,132, 16, 34,147,201, 82, 1,200,149, 74,
-165, 42, 38, 38,134, 40, 20, 10, 2,243,163,120, 12,133, 66, 65, 98, 98, 98,136, 82,169, 84, 1,144,203,100,178, 84, 66, 8,201,
-206,206, 38,203,150, 45, 43,150,201,100, 17, 0,236,233,219,130,134,134,134,134,134,230, 95,109,180, 42, 26, 46,243,170, 14, 91,
-182,108,201, 83, 42,149,109, 36, 18, 73,127,177, 88, 28,218,175, 95, 63,223,129, 3, 7, 50, 52, 26,141,209,215,215,215,222,213,
-213,117,154, 92, 46, 31,197,231,243,155,113,185,220,145, 82,169,212,110,239,222,189,110,213,105, 54,109,254, 1,207,194, 66,222,
-134,203,229,245, 23,139, 37,161, 19, 63,236,226, 59,106,230, 32, 6, 71, 27,103,236,210,204,217,190, 73, 35,187,105,182,114,209,
- 40, 22,147,209,140,162,168,145,124, 62,223,110,247,182, 77,110, 53,236, 88, 35,123,123,251,240,189,123,247, 54, 25, 50,100, 8,
- 47, 58, 58, 26, 0, 96, 52, 26,185, 0,244, 76, 38, 19, 60, 30, 15, 58,157, 46, 11,128,185, 39,144,232,116,186, 44, 30,143, 7,
- 38,147, 9, 0,250, 82, 61, 68, 71, 71, 99,200,144, 33,188,189,123,247, 54,177,183,183, 15, 7,208,136,190, 53,104,104,104,104,
-104,104,254,181,148,153,171,147,168, 80,117,200, 42,115,143,193,193,193,111, 69,141,184, 92,238,134,103,207,158,181,179,180,180,
-108,196,102,179,141, 67,135, 14,229,141, 24, 49, 2,233,233,233,166,252,252,124,166,159,159,159,242,222,189,123,189, 12, 6, 67,
- 7, 11, 11,139,194,236,236,108,133, 70,163,121, 1, 96, 90, 53, 25,217,240,252,105, 84, 59, 43,185,101, 35, 46,155,105,156, 58,
-118, 4,239,171, 57, 61, 65,105,194, 76,198,180, 76,230,247,254, 22,202, 31,111, 22,244,122,166, 51,118, 40,144,241, 11,213, 57,
-154, 26, 53, 21, 10,133, 63,135,195,185,127,250,244,105, 8,133, 66,228,228,228,128,203,229, 2, 0,242,243,243,101, 0, 88, 20,
- 69,129,203,229, 34, 55, 55, 87, 94,155,163,150,155,155, 43,231,114,185,160, 40, 10, 0, 88,165,122,224,114,185,200,201,201,129,
-155,155, 27,117,250,244,105,155, 94,189,122,189,212,233,116, 31,100,100,100,132,209,215, 26, 13, 13, 13, 13, 13, 77,237,169,204,
-139,252,141,168,113, 28,173,206,165,161,186,242, 19,231,238,180,182,182,182, 21,139,197,222,227,199,143,103, 40, 20, 10,220,191,
-127,223, 84, 80, 80,192, 96,179,217, 96,179,217,204, 46, 93,186,136, 13, 6,131,240,212,169, 83,212,203,151, 47,211,245,122,253,
-247,153,153,153,247,170,201,200,206,198, 22, 60, 91,129, 5,215,251,248, 23, 29, 25,214,110,153,192,217,133, 38,146,159,198, 96,
-153, 8, 20, 34, 19,115, 85, 7, 74,172,150,185, 10,167,238, 75,167,174,189,204, 78,215,235,245,223,231,229,229, 85,167,153, 12,
- 0,165,121,130, 84, 42,133,209, 88,126,126, 75, 16, 6,131, 1, 30,143, 87,167, 35,199,227,241,192, 96, 48,128,114,145, 48,153,
- 76, 6, 38,147, 9, 6,131, 1, 54,155,253, 86, 62,104,104,104,104,104,104,104,234, 68,101, 94,228,239, 66,249,113,180,204,155,
-155, 82,169, 84, 82, 82,169,212,174,121,243,230,223, 6, 5, 5,197, 12, 24, 48,160,240,167,159,126, 34,171, 87,175, 38,171, 86,
-173, 34, 91,183,110, 53, 94,190,124, 89,255,159,255,252,167,216,221,221,253, 69,104,104,168, 55, 0,244,238,221,187,202,234, 72,
- 11,185, 37, 37,230,178,236,124,188,155,126, 59,188,115,147,152,111,250,123, 20,234,118,248, 17,211,124, 39, 98, 92,231, 74,140,
- 7,187, 26,201,179, 21,250, 37,227,186, 22, 55,112,105,240,226,231,173,251,189, 1,160, 91, 80,239,106,171, 56, 21, 10, 69, 75,
- 71, 71,199,212,115,231,206,153,178,178,178, 72,102,102,102, 89, 27,173,108, 0, 50, 23, 23, 23,149,193, 96, 32,114,185,252,117,
-109,142,154, 92, 46,127,109, 48, 24,136,139,139,139,170,196, 95,201,178, 9, 33, 36, 51, 51,147,100,101,101,145,115,231,206,153,
- 28, 29, 29, 83, 21, 10, 69, 75,250,254,160,161,161,161,161,161,249,215, 50,190,194,103,205,180,107,215,142,146, 74,165,140,166,
- 77,155,138,237,237,237, 91,219,219,219,223,249,241,199, 31,201,234,213,171, 13, 27, 55,110, 36,191,254,250,171,225,227,143, 63,
-206, 21,137, 68, 39,185, 92,174, 28, 0, 92, 93, 93,171, 13,249,181,108,221,134, 18,240,121, 12, 79, 79, 31,177,194,202,170,181,
-181,149,229, 29,221,234, 38,132, 44,116, 48,144, 45, 45, 8, 57,216,211,176, 98,112,171, 92, 54,155,115, 18,128, 28, 0, 28,237,
-237,204, 13, 35,218,219,216,216, 68, 44, 92,184,176, 64,167,211,145,210, 94,134,169, 0, 44, 92, 92, 92, 84,132, 16,226,232,232,
-152, 8, 64, 97,166,158,194,209,209, 49,145, 16, 82,102,180, 44,108,109,109, 83, 9, 33, 68,167,211,145,133, 11, 23, 22,216,216,
-216,208,141,225,105,104,104,104,104,104,104,170,156,235,176,202, 72,209,141, 27, 55, 72,110,110,174, 41, 57, 57,217,152,159,159,
- 47,245,243,243,147, 51,153, 76, 40,149, 74, 38,147,201, 52, 21, 20, 20, 48, 21, 10,133,138,205,102,239,214,106,181, 89,253,251,
-247,167, 98, 99, 99,171,109,104,126,239,246, 45, 82, 84,172, 49, 37, 37, 37, 26, 11,243,115,165,163,154, 89,202, 89, 6, 29, 76,
-126,237,152,185, 2,119,147,169, 40,139,233,101,199, 83,113, 56,236,221, 0,178, 6, 4,247,161,146, 84, 41,230, 54, 94, 87,165,
-165,165,249,109,216,176, 97, 75,199,142, 29,179, 10, 11, 11,203,218, 86, 85, 28,130,193,194, 76,189,138,235, 49, 41,138, 66, 97,
- 97, 33, 58,118,236,152,181, 97,195,134, 45,105,105,105,126, 0, 84,244,245, 69, 67, 67, 67, 67, 67,243,175,166,202,113,180,106,
- 28,234,160,176,176, 80,206,225,112,186,181,106,213,170, 65, 65, 65,129,105,209,162, 69,137, 63,253,244,211,174, 23, 47, 94,232,
- 45, 44, 44, 26, 9, 4,130, 79, 81, 76,136,102, 0, 0, 32, 0, 73, 68, 65, 84,135, 12, 25,162, 56,114,228, 8,233,208,161, 67,
-197,232, 83,165,179,123, 23, 21,229,203,121, 28,118,183, 79, 3, 36, 13, 18,117,114,147,247,167,119, 19, 59,205,191,185,235,183,
- 71, 44,125, 83,203,162, 70,150, 92,234,211, 33, 67, 6, 43,126, 59,113,146,180,105,211,218, 44,205, 82,140,105,105,105,159,222,
-191,127,127,112,195,134, 13,147,244,122,125, 18,128,204,162,162,162, 84,123,123,251, 52,157, 78,151, 4, 64, 87,201,118,149,105,
-234,116, 58, 93,146,189,189,125, 90, 81, 81, 81, 42,128, 76,189, 94,159,212,176, 97,195,164,251,247,239, 15, 78, 75, 75,251, 20,
-128,177,154,188,208,179,186,211,154,180, 38,173, 73,107,210,154,180,230,191,135, 63, 68,179, 0, 51, 38,149,230,241,120, 29,157,
-157,157,219, 63,122,244,200,120,235,214,173, 28, 6,131,241,115,239,222,189, 15, 29, 62,124, 56,192,210,210,210,198,201,201, 73,
-121,241,226,197, 64, 0, 7,174, 93,187,102, 86,244, 73,192,227,116,108,225, 40,107,191,249, 33, 49,110,187,255, 60,199,200,228,
-253,220,101,208,160, 67,211,119,237, 9,176, 87, 72,108, 90,216, 73,149,167, 78,157, 9, 4,112,224,214,173,219,181, 30, 79,195,
- 96, 48, 92, 76, 75, 75,115, 42,251, 63, 61, 61,221, 79,161, 80,120,163, 36,250,148, 99,166, 76,188,201,100,234,109, 50,153,236,
- 51, 50, 50,158, 0, 64, 70, 70,198, 7,244,117, 68, 67, 67, 67, 67, 67, 67, 83,137,201,218, 92,217,255,213, 70,180,184, 92,174,
- 3,147,201,244, 73, 74, 74,138, 63,117,234,212,163,150, 45, 91,246,138,143,143, 95, 70, 8,137, 19, 10,133,227, 19, 19, 19,159,
- 39, 38, 38,106,139,138,138, 38,214, 34, 51, 14, 96,112,124,238,171,138,226,127,184,248,248, 81,211, 54, 61,122,169,213,170,101,
- 70, 66,226,184, 66,233,248,103, 9,233,207,111,167,105,180,197,197,181,210,172,145,140,140,140, 39, 25, 25, 25, 57,181,220, 38,
-167,204,100,209,208,208,208,208,208,208,208,212,150,154, 34, 90, 58,163,209,184, 66,163,209,200,127,251,237,183,228,160,160, 32,
- 13, 0,108,216,176,193, 52,118,236,216,235,175, 94,189,234,250,228,201,147, 94,182,182,182,151, 0, 80, 49, 49, 49,230, 68,159,
-116, 38,147,113,133, 86,171,145, 95,188, 28,150,220,177,125, 83, 13, 0,108, 92,191,214, 52,116,252,140,235,175,162, 31,117,125,
- 22, 21,222,203,214,214,246,146,209,192,162, 82,212,113,132, 62, 77, 52, 52, 52, 52, 52, 52, 52,127, 97, 54,227,237, 42,195,205,
-102, 25, 45,173, 86,155,174,213,106, 1, 32, 43, 40, 40,232,173,239,182,110,221, 74, 0, 20, 0, 56,152,153,153, 89,155,204,164,
- 23, 21, 21, 1, 64, 86,199,246, 77,223,250, 98,223,230,159,222,104,230,231,229,210,167,141,134,134,134,134,134,134,230,239,100,
-182,254, 0,131, 62, 46, 52, 52, 52, 52, 52, 52, 52, 52,245, 98,124, 85,255, 83,168,186,231,192,133, 90,252, 64, 93,122, 31, 92,
-160, 53,105, 77, 90,147,214,164, 53,105, 77, 90,243, 95,167, 89,147,246, 5,252,253,168,178, 49,252,159, 13,221,245,149,214,164,
- 53,105, 77, 90,147,214,164, 53,105,205,127, 58,118,120,123,120, 7,187,178, 47, 88,244,177,161,161,249,123, 67, 14,130,137, 44,
- 79, 87, 16, 98, 15, 38, 55, 5, 41,145,175,168,111, 97,170,183,102,170,143, 11, 4,122, 37, 12,252,116,164, 70,196,212, 87,147,
-134,134,230,159,135,109,219,201, 3, 40, 6,243,103,138,152, 80,148, 26,205,227, 20,197, 9,211, 82,226,255,141,222, 34, 5, 85,
- 68,176,104,163, 69, 67,243,119, 39,221,203, 3, 44, 44, 5, 3,118, 32,186,151,176,246, 89, 10, 60,142,170,183, 38,199,180, 8,
- 70,134, 35,136,238, 25,108, 60,151, 1, 79, 31,211, 7,251,159,199,180,169,147,200,147,168, 59, 72, 72, 80,161, 81, 99, 59,120,
-120,181,197, 79,107, 67, 41,250,200,208,152,247, 86, 70,109,238,214,119,132,165, 64, 40, 1, 0,152, 12,122,108,157,217,226,188,
-193, 96,216, 9,224, 8,128,162,127,251, 33,250,159, 55,134,103,179,217,169, 0, 76,124, 62,255, 48,202,133,214,104,104,254, 4,
-236, 74,175, 51, 83,233,117, 87, 27,196, 44, 22,107,190, 80, 40,188,204,227,241,210,120, 60, 94,154, 72, 36,186,204, 98,177,230,
- 3, 16,255,101,202,184, 95,155, 8,193, 48,246,210,234, 77, 14,103, 34,179,109, 10, 53, 70, 15, 48, 12,189,201, 86,119,113,189,
- 52, 89, 84, 80,177,206,228,188,251,110,161,178, 64,107,240, 6, 65,189, 52,203, 97,193,225,112,206,192,252, 57, 71,105,254,100,
-226, 99,162,112,234,196, 42, 44,250,110, 52,182,111,158,136,167, 79,110,215, 75,207, 27,248,224, 3, 22,235,115, 47,160, 11, 74,
-218, 1,211,252,147,161,200,248, 11,199,119,167, 31,223,187, 62,125,255,170,137,228,232,210, 96,172, 93,187,182,219,232,209,163,
-119, 59, 59, 59,167, 3,248,136, 54, 90,255, 99,244,122,189, 77, 70, 70, 6,181,115,231,206,126, 50,153,236, 37,139,197,154, 11,
-128,243,111, 57,224, 98,177,248,166, 84, 42, 77,149,201,100,169, 82,169, 52,188,166,244,127, 40, 30,214,214,214,241,150,150,150,
-207,202, 39, 90, 55, 27,208,214,173,221,168, 5, 86, 62, 33,157,234,169,207, 97,177, 88,115,101, 50,217,203,157, 59,119,246, 75,
- 78, 78,166,244,122,189, 77, 45,182,239, 40,151,203,159,220,185,115,231,155,140,140,140, 78,137,183,183, 90,171,239,108,178,142,
-255,125, 85,231,251,167,214,125, 99, 97, 33,123, 12,160,227, 95,226, 72, 22,155,148, 96, 48, 3, 31,165, 20, 10, 83,114,245,202,
-176,184, 66, 9,192,236, 12,109, 61, 94, 98,114, 76, 74,128,116,121,152, 84, 36,186,249,218, 90,121,237,149, 70, 10, 6, 35, 16,
-197,148,109,189, 11, 28, 6, 99,146,201,100,234,206,225,112, 62,165,159, 80,127, 13,120, 60, 14, 64, 8,196, 34, 62, 0, 2, 70,
- 61,173, 17,151,193,104,119,179, 95,191, 69,115,154, 53,155,230, 5,244,173,194,108, 81, 0,166,123,121,121,157, 6, 48,244, 29,
-238,206, 15,158,158,158,201, 0,102,188,171,114,201,223,223,191,109, 96, 96,224,130, 22, 45, 90,116,122, 87,154,255, 36,212, 55,
- 55,252,150,114,125,157,141,234, 70,168, 77,118,204,213,233,118, 74,185, 41, 38, 38, 6,125,250,244,193,250,245,235,133,190,190,
-190,187, 0,216,255, 11,110, 37,191,178, 23,124, 84,104,163,101,182,209,250,208, 21,237,134, 53,196,149,193,174,200, 27,210, 16,
-249, 35, 27,226,250, 32, 87,116,169, 75,110,172,172,172,208,177, 99, 71,102,114,114,178, 96,214,172, 89, 11,248,124,126, 44,128,
- 30,117,209, 18, 8, 4,247,133, 66, 97, 34,139,197,122, 43, 47, 66,161,240,190, 72, 36, 74,100,177, 88, 93,203,167, 75, 36,146,
-155, 82,169, 52, 85, 34,145,132, 87, 97,132,238, 75,165,210, 84,177, 88,124,191,124, 58,139,197,234, 42, 22,139,147, 36, 18, 73,
-197,244, 46, 18,137, 36,177, 98,122, 85,176,217,108,199,196,196, 68,155,164,164, 36, 27, 46,151,171, 44,159,158,144,144, 96,147,
-152,152,248, 86,122,109, 96,177, 88, 93, 68, 34, 81,162, 80, 40,188, 95, 89,122,197,125,170,138,114,199,174,139, 57,233,181, 45,
-120,130,130,130,174,167,164,164, 56, 91, 88, 88,188, 53,113,183,165,204,162,199,175, 91, 67,103,134,244, 14,154,100,237,221,191,
-105, 29,245,123,240,249,252,216, 89,179,102, 45, 72, 78, 78, 22,180,105,211,134,201, 96,212,234,125,162, 91, 72, 72,200,209,212,
-212, 84,135,230,205,155, 51, 13, 6, 3, 30, 29,155, 15, 97,196,167,224,199,110,132,147, 32,157,245,242,252, 50,199,160,206, 31,
- 28,197,123,110, 12, 74, 14,122,115, 64,153, 58,154, 8,177,126,146, 92,108,221,167,223, 71,172, 7,137, 69,214,122,163,209, 18,
- 96,118, 38,219, 93,120,117,210,100,233, 59,152, 8, 81, 94,140, 99, 91, 7, 14,158,198,188, 20,199,178,214, 27,141, 86, 96,160,
- 83, 93, 52,203, 95,254, 76, 38,115,230,170, 85,171, 24, 0,166, 2,224,254,155, 12, 77, 43,123, 56,116,105,204,188,235,103,135,
-118,239, 80,214,183,244,126,247,168,175,208,150,237,167, 49,118,194,102,184,123,181,174,151,142,214,100,122,186, 47, 38,230,236,
-200,198,141,131,231, 52,107, 54,166, 18,179, 69, 1,152,179,108,217,178, 81,143, 30, 61,178,110,216,176,225,132,119,244,210,191,
-102,217,178,101,179, 31, 61,122,100,239,234,234,186,176,150,154, 85,150, 75,114,185,188,199,150, 45, 91,102,246,233,211,103,146,
-191,191,127,211,119,161,249, 15,102,253,195,135, 15,157, 87,173, 90,245,229,216,177, 99,115, 1,160,107,215,174, 28, 0,109,234,
- 93,222, 17,194, 37,132, 4, 18, 66,250, 16, 66,186, 18, 66, 90,149,254,221,178,116,233, 67, 8,233, 86,225,179,101,233,182,101,
-223, 7, 84,161,209,167,226,118,229,182,169,248,255, 91,127, 87, 98,180,250,160,164,173, 86,159,183,118,224,196,137, 19,164,252,
-103, 69,134,184,226,219,105,109, 29, 10,159, 28,223, 67,242, 19, 99, 72, 86,244, 3,242, 96,243, 18, 50,173,165,117,225,240,134,
-248,161,246,199,139,144, 27, 55,110,144, 71,143, 30,145,252,252,124,242,252,249,115, 18, 16, 16, 80, 36, 20, 10, 47, 2,112,173,
-141,152, 68, 34, 73,189,120,241, 34, 9, 10, 10,202, 17,139,197, 43,203,110, 46,169, 84,154,122,227,198, 13, 18, 20, 20,148, 35,
-145, 72,214, 0, 96, 2,192,160, 65,131,210, 8, 33,196,218,218, 90, 85,153, 94, 72, 72, 72, 22, 33,132,200,100,178,178,170, 38,
-166, 68, 34, 89, 51,101,202,148,252,123,247,238, 17,185, 92, 94,150,206,144, 74,165, 43,167, 78,157,154, 31, 22, 22, 86, 62,189,
- 90, 44, 45, 45, 19,141, 70, 35, 57,126,252, 56,177,177,177, 81,149,187,153, 19,141, 70, 35, 57,122,244,104,149,121,171, 46, 80,
- 32, 22,139, 87,140, 28, 57, 50, 47, 46, 46,142, 88, 89, 89,165,150, 75, 95, 57,122,244,232,188,132,132, 4,162, 80, 40,204,202,
-163,149,149, 85,234,205,155, 55,201,192,129, 3,115,203, 31, 83, 43, 43,171,212, 91,183,110,149,165,175, 48,167, 32,179,183,183,
-159, 96, 99, 99,163,178,177,177, 81, 89, 88, 88, 44,182,179,179, 83,167,167,167, 19, 66, 8,105,212,168, 81, 90,249, 72,150,141,
-111,191,207, 54, 30,188,117,231,106, 84,102,122,179,238,147, 86,200,154,133,200,106,113, 12, 92,133, 66,225,197, 78,157, 58, 21,
- 37, 38, 38,146,130,130, 2, 18, 17, 17, 65,110,220,184, 65, 94,188,120, 65, 0,152, 51,195,128, 68, 44, 22, 39,107, 52, 26,147,
- 70,163, 49,165,167,167, 27,211,210,210,140,209, 43,237, 8,217,198,126,179,100, 31,237, 75,212, 87,151,154,164, 98, 97, 18, 0,
-201,123, 51, 90,161, 62,142,100,147,231,190,199,243,157,163,175, 46,235,169, 39,113,151,200,158, 49,214,250, 43,159, 57,188, 36,
- 63,123,253,151,108,242,118,170,147,230,207,222,123, 34,190,118,126,186,110,225,116,125,124,124, 60,249,124,116, 79,195,185,105,
- 14,175,200, 70,175,131,117,209, 44,199,176, 1, 3, 6,228, 39, 36, 36, 16, 31, 31,159, 2, 38,147, 57,246,223,100,178,186,121,
-112,147, 35,118,127,110,234,235, 43,204,124, 71,102,203,215,198,198, 38, 99,199,142, 29, 68, 34,145,164,213,213,108,125,216,191,
- 51, 41,202,185, 72,250, 7,183,170,246, 30, 25, 60,120, 48, 9, 12, 12, 36,211,166, 77,171,233, 94,162,188,128,126, 59,155, 53,
- 59,106,250,240, 67,227,206,102,205,142,122, 1,253, 74, 13, 22, 5,224,203,229,203,151,135,233,245,250,176,237,219,183,135,245,
-235,215, 47, 12,192,231,245, 60, 22, 63,253,240,195, 15, 68,175,215,147,237,219,183,147,126,253,250, 17, 0,107,235, 83, 46,149,
- 69,178,252,252,252, 62, 59,114,228,200,157,167, 79,159,166, 7, 7, 7,175,104,214,172,153,172,174,154,127, 69,196, 98,177, 91,
-211,166, 77,119,249,248,248, 36, 52,111,222, 92,235,237,237, 93,236,225,225, 17,231,235,235,187,131,199,227,185,214, 81,182,117,
-187,118,237,140, 87,174, 92, 33, 3, 6, 12, 32,229, 76, 72,181, 84,231, 69, 8, 33,173,190,252,242,203,185, 0,200,151, 95,126,
- 57,151, 16,210,167,212, 79,244, 41,255,119,197,207, 50,243, 84,246,127,101, 26,101, 75,101,154,149,253, 70,133,223, 65, 21,145,
-172,241,127,216,185, 19, 39, 78,116, 58,113,226,196,149,138, 59,247, 81, 67,180,157,214,214,161,168, 40, 61,133, 68, 45,249,148,
- 92, 14,116, 36, 55, 58,219,146,103, 51, 7,144,148,221,107,200,228, 22,242,194, 15, 27, 34,176,182, 70, 43, 44, 44,140,132,133,
-133,145,240,240,112, 18, 27, 27, 75,114,114,114,200,254,253,251,141, 86, 86, 86, 69, 60, 30,111, 25, 0,129, 57, 98, 82,169, 52,
-149, 16, 66, 52, 26, 13, 89,188,120,113,113,105,164, 74, 41,147,201, 82, 9, 33, 36, 59, 59,155, 44, 91,182,172, 88, 38,147, 69,
- 0,176, 87, 40, 20,137, 49, 49, 49, 68,169, 84, 86,106,102,228,114,121,234,211,167, 79,203,140,147,131, 92, 46,143, 58,118,236,
-152,142, 16, 66,146,146,146,136,165,165,101, 42, 0,165,149,149,213,131, 19, 39, 78,232, 8, 33, 68,165, 82,149,165,155,101,180,
-138,138,138,200,185,115,231,222,202, 67, 89,250,233,211,167,223, 50, 96,102,160,148,201,100, 97,251,247,239,215, 26,141, 70, 18,
- 21, 21, 85,102, 18,149, 22, 22, 22,225, 7, 15, 30,212, 26,141, 70, 18, 29, 29,109,182, 25,108,208,160, 65, 26, 33,132, 24, 12,
- 6,178,113,227, 70, 77,217, 49, 45, 75,215,106,181,100,195,134, 13, 26,169, 84, 26, 6,160,218,232,155, 66,161, 80,105,181, 90,
-146,157,157, 77, 2, 2, 2,242,111,220,184, 65,114,115,115, 9, 33,132, 52,104,208, 32, 13, 0, 60, 59,141,253,254,206,243,252,
-220, 79,102,135, 30,112,109, 53,124,201,217,187,201, 73, 91,142,220, 15, 83,248,134,244, 52, 39,168,201,227,241,150,217,217,217,
- 21, 95,187,118,205,168,211,233, 72, 66, 66, 2, 9, 15, 15,127,115,141, 69, 70, 70,154,101,180, 88, 44,214,252, 59,119,238,232,
-140, 70,163, 41, 35, 35,195,152,150,150,102, 76, 75, 75, 51, 84, 52, 90,100, 27,155,100,156, 30, 71, 78,110,158,161,229,112, 56,
-243,223, 79, 52, 11, 76,178,201, 51,132,108,242, 12,219, 49, 82,145,145, 23,190,151,144,243, 51,200,171,239, 27,146,249, 61, 37,
-121,166, 77,158, 97,100,147,215,135,228,219, 78,172, 90,105,110,246,238, 75, 54,121,134,253,240,145, 75,230,131,176,123,228,202,
-149, 43,100,195,154,229,100, 90, 55,135, 2,211, 38,207, 48,242,179,247,192,218,104,150,135,199,227, 61,191,126,253, 58,185,122,
-245, 42, 89,184,112, 33, 17, 10,133, 9,239, 34,170, 71,126,246,112, 33,191,120,116, 34, 91,221,237,200,239,157,254,114, 29,124,
- 90,217,195,161,187, 7, 55, 41,227,193, 17, 66, 94,191, 32,234,149, 62,164,167, 39,187,190,102,203,215,198,198, 38, 61, 46, 46,
-142,168,213,106,178,122,245,106, 34,149, 74,235,100,182, 62,236,223,153, 20,101, 95,168,214,104,133,132,132,144, 31,127,252,145,
-232,245,122,210,186,117,107,115, 94, 90,254, 96,182, 60,129, 16, 0,115, 87,172, 88,241,198,100,133,134,134,134, 69, 70, 70,134,
- 57, 59, 59,159,170,199,177, 88,187, 98,197,138, 55, 38, 43, 52, 52,148, 68, 70, 70, 18, 23, 23,151,196,250,148, 75,221,187,119,
-255, 62, 54, 54, 54,119,222,188,121, 7, 58,118,236,184,228,193,131, 7, 73, 39, 79,158, 12,243,243,243,235, 89, 87,205,119, 16,
-213, 97,149, 70,118,184,132, 16, 54, 33,164,204,188,178, 0,176,203, 2, 10,230, 48,114,228, 72, 97,219,182,109,195, 70,140, 24,
- 81,184, 99,199, 14, 18, 23, 23, 71, 34, 34, 34,200,138, 21, 43,200,130, 5, 11,200,182,109,219,200,192,129, 3, 11, 2, 2, 2,
-238,124,248,225,135,252, 90,100,211,199,213,213, 53,231,232,209,163,100,207,158, 61,132,195,225,156, 52,119,195,234,188, 72, 85,
-102,170, 42,131, 85,241,187,106,140, 88,181,134,205,140,223,251,163,169,170, 24, 9, 41,247,247,239,193,193,193,157,254,240,240,
- 33,248,110,252,172,239,249,177, 59, 86, 35,117,255,122, 48,179, 83,193,206,203,132,230,250, 73,232,175, 31,195,168, 54,109, 4,
- 2,138, 90, 84,219, 11,134,203,229,130,203,229,130,195,225,160,176,176, 16, 42,149, 10,237,219,183,103,132,135,135,243, 39, 76,
-152, 48, 67, 32, 16, 36, 0,232, 95,227,221, 76,149, 68,164,111,222,188,137,113,227,198,241,118,237,218,213,220,218,218,250,161,
-209,104,228, 2, 64,116,116, 52,134, 12, 25,194,219,187,119,111, 19,123,123,251,112,157, 78, 39,228,241,120, 96, 50,153, 85,234,
-113,185, 92,232,245,122,158,187,187,123,196,195,135, 15,125,131,131,131,217,241,241,241,136,137,137,129, 94,175,231,122,120,120,
- 68,134,135,135, 55,239,211,167, 15, 59, 49, 49, 17,241,241,241,111,242, 97, 78,126,181, 90, 45,120, 60, 30,202, 87,105, 81, 20,
- 5,141, 70, 3, 46,151,107,182, 22,139,197,234,226,229,229, 21,249,240,225, 67,191,144,144, 16,206,189,123,247,144,148,148, 4,
-163,209,200,245,246,246,142,124,248,240, 97,139,126,253,250,113, 34, 34, 34,144,154,154, 10,115,171,208,202,214,123,248,240, 33,
- 70,140, 24,193, 61,115,230, 76, 11, 59, 59,187, 8,131,193,192, 5,128,200,200, 72, 12, 25, 50,132,123,246,236, 89, 63, 39, 39,
-167,136, 26,170, 18,153, 0,160,215,235, 49, 97,194, 4,145, 84, 42, 69, 98, 98, 34, 76, 38, 19,140, 70, 35, 0, 32, 51, 43, 51,
-242, 97,100, 84,244,168, 97, 31,117, 42,210,105, 52,183,238,222,127,210,168,129,139, 35, 69,145, 6, 53,100,181,191, 72, 36, 74,
- 88,185,114,229,103,113,113,113, 60, 47, 47, 47,198,171, 87,175,144,151,151, 7, 14,135,243,230, 26, 51,119,191,185, 92,110,103,
- 31, 31, 31, 86,113,113, 49, 76, 38, 19, 0, 16, 6,163,242, 22, 43,252,236,235,240, 86, 26,216, 2,129,160,243,123,121,122,231,
-250, 88,193,132,238,241,233, 90, 30,207,194, 81, 34,182,243, 0, 18,174,162,161, 53, 15, 76, 6,147,127, 47,166, 80, 4,144,238,
-112,206,176,170,157,166,169,123, 76,154,150,167,183,108, 34,182,119,116, 70,102,102, 38,156, 26,121,161,152,107,205,189,249,162,
- 64, 12,170,150,154,255, 79, 7,119,119,119, 91, 55, 55, 55,100,100,100,192,207,207, 15,114,185, 92, 14,160,123,157, 31, 58,219,
- 93,120,200, 69, 59,128,177, 18, 70,106, 33,244,172,165,120,145,238, 71, 54,249,177,255, 74, 38, 75, 42,230,222,222,187,111,191,
-131,149,179, 55,112,242, 19, 40, 45,120,216, 58,201,207,210, 90,198, 59, 90, 71,179,229,171, 84, 42, 47,221,185,115, 71,193,231,
-243, 17, 30, 30, 14, 31, 31, 31,172, 94,189,218, 90, 46,151, 95,173, 91,100,139,128, 80, 85,155,172,142, 29, 59, 98,234,212,169,
-216,181,107, 23, 44, 45, 45, 49, 98,196,136,154,204, 22,137, 6,142,255, 16, 17,177,125,215,203,151, 39, 70, 54,110, 28, 60,194,
-195, 99,241,196,161, 67,199, 78,159, 62, 29,203,151, 47,199,209,163, 71,209,174, 93, 59,140, 31, 63, 94,159,144,144,176,179,174,
- 85, 85, 43, 87,174,156, 54, 99,198,140,138,154,186,248,248,248, 31,234, 85, 46,101,102, 70, 70, 68, 68, 68, 15, 27, 54,172, 83,
-113,113,177,230,238,221,187, 79, 92, 93, 93, 29, 1, 52,168,171,102, 61, 12, 22, 69, 8,225, 3, 16,150, 46, 34, 0,194,189,123,
-247,202, 66, 66, 66,164,165,105,130,210,165,198,234,125, 31, 31, 31,199,231,207,159, 39,207,156, 57,211,111,215,174, 93, 2,161,
- 80,136,236,236,108,252,242,203, 47,152, 59,119, 46, 40,138, 2, 33, 4,219,182,109, 19,142, 25, 51,166,213,203,151, 47,147, 93,
- 92, 92,204,105,210,194, 19,139,197, 7, 23, 47, 94, 44, 53,153, 76,152, 51,103, 78,134, 78,167,155, 90,250,221, 60, 11, 11,139,
-219, 40, 49,220,213, 81,169, 23, 41,247,172, 60, 81,225,216, 4, 87, 76,171,248, 29, 33, 36,184, 58,141, 90,158,139,202,126,239,
-100,117,102,171,252, 19,168,115,165, 46, 18,104,102,235,234,137,156,243, 7, 33, 96, 81, 16, 48, 75, 23, 22, 5,198,171, 72, 56,
-241,217,208, 19,226, 91, 87,163, 85,182,176,217,108, 20, 22, 22,194,104, 52, 98,238,220,185,188,115,231,206, 89, 49, 24,140,255,
-214,164, 83,222, 48, 61,123,246, 12,222,222,222,212,241,227,199,149, 83,167, 78, 21,148,253, 78, 78, 78, 14,220,220,220,168,211,
-167, 79,219,124,253,245,215,226,234,204, 12, 69, 81,224,112, 56,152, 49, 99,134,224,238,221,187,150,246,246,246,120,245,234, 21,
- 94,191,126, 13,177, 88,140, 25, 51,102, 8,238,220,185, 99,109,111,111,143,184,184, 56,228,228,228, 64, 44, 22,215,218,104,113,
- 56,156,183,182,161, 40, 10, 58,157,174, 86,198, 64, 38,147,237, 9, 11, 11,179,150,201,100,136,136,136,128,193, 96,128, 76, 38,
-195,180,105,211, 4, 97, 97, 97,214, 22, 22, 22,136,142,142, 6, 33, 4, 82,169,180, 86,121, 4, 0,147,201,132,232,232,104, 52,
-104,208, 0, 87,175, 94,181,153, 56,113, 34,191, 44,253,197,139, 23,112,116,116,196,213,171, 87,109, 68, 34,209,158,170,180, 76,
- 38, 19, 82, 82, 82,240,232,209, 35,188,122,245, 10,233,233,233,200,200,200, 64, 94, 94, 30, 12, 6, 3, 0, 64,152,151,123,114,
-239,129,227, 15, 5, 2,129,208,199,195,221, 57, 50,234,113,154, 64, 32, 16,186, 56, 59,123, 0,223, 50,170, 49,132,255,141,143,
-143,183, 26, 51,102, 12, 71,173, 86, 35, 43, 43, 11, 44, 22,235, 15,215, 22,151,107, 94, 83, 32,131,193,224,205,231,243, 41,157,
- 78,247, 38, 2,198,229,114,241,217,158, 66,248,204,199, 91,203,208, 53,105, 32, 70, 61,180, 90,173,247,255, 60,154, 5, 80,160,
-180,238,160, 40,191,219,175, 10, 44, 59, 4, 15,227, 32,230, 12, 96,210, 3, 12, 22, 58, 55,115,100, 29,141, 44, 80,130,160, 25,
- 52,240, 34,164,230,158, 95, 4,160, 0,157, 27, 64,125,112,238,185,193,170,221,128, 73,156,228,228,100,112, 56, 28,240,120, 60,
-248,117, 25,196,218,251, 80,111, 11, 10,205,161,131,167, 57,154,111,133, 29, 5,130,111, 22, 44, 88, 32, 42,175, 57,118,236, 88,
-145, 76, 38, 91, 80,103,147, 85, 32,108, 3, 3,153,241, 40,185,176,193,226,147,106,239,151,105, 69,158, 32,100, 38,160,111,241,
- 14,204, 86,103, 30,143, 23, 3,160,125,189, 76,150,132,123,107,223,190,253, 14,150, 78, 37, 38, 11,134, 98,128, 45,128,173,181,
- 5,182,126, 22,104,105,109, 33,168,173,217,242, 85, 42,149, 23,111,223,190,173,224,243,249, 8, 11, 11, 3,135,195, 1,159,207,
- 71,211,166, 77,177,105,211, 38,107, 75, 75,203, 90,155, 45, 2, 82,105,204,183,127,255,254,164, 99,199,142,152, 50,101, 10,118,
-238,220, 9,173, 86,139,197,139, 23, 35, 62, 62,222, 44,217,104,224,248,178,136,136, 29, 75, 31, 61,122,246,165,175,175, 87,127,
-145,200,114,202,136, 17,178,175,191,254,250,196,177, 99,199,182,247,233,211, 39,227,238,221,187, 63, 2, 56, 88,203,195, 75, 1,
- 8, 93,181,106,213,148, 50,227,246,245,215, 95,111, 59,118,236,216,210, 62,125,250,164,220,189,123,119, 38,128,208,250,148, 75,
- 38,147,233,228,127,255,251,223,135, 2,129, 64,232,233,233,233, 28, 21, 21,149, 38, 16, 8,132,206,206,206, 30,157, 58,117, 98,
-212, 69,179, 46,216,216,216,116,189,125,251,182, 15, 74, 58,141,241,202,140, 86, 84, 84,148, 69,110,110,174,133, 88, 44,182,176,
-179,179,147,148,153,173, 1, 3, 6, 88,176, 88,172,106,175,219,252,252,252, 99,243,230,205,147, 13, 24, 48,160,236,127, 92,191,
-126, 29, 59,119,238,132, 72, 36,122,107,221,126,253,250, 97,220,184,113,114,173, 86,251, 95, 51,178, 59,122,194,132, 9,158, 74,
-165, 18,223,124,243,141, 38, 57, 57,185, 43,128,120, 0,178,110,221,186,125, 31, 21, 21, 21,208,170, 85,171, 3, 0,252,171,187,
-247, 42,243, 34,229,141,142, 57,105,117, 93,223, 92,179, 85, 33,169,202, 49,180,222, 50, 90,193,193,193, 87, 80, 69, 79, 42,221,
-235, 84,240, 96,132,128, 73, 65,200, 44,103,182, 96, 2, 43, 39, 13, 84, 29,122,169, 84,246, 48,228,114,185, 96, 50,153,208,106,
-181, 48,119,162,234, 50, 83, 32,149, 74, 33, 22,139, 81, 84, 84, 4,131,193, 0, 62,159, 95,102, 70, 32,149, 74,193,102,179,193,
-102,179,193,231,243,255, 16, 77,170, 24,205,225,112, 56, 16,137, 68, 72, 73, 73, 65,124,124, 60, 76, 38, 19,196, 98, 49, 68, 34,
- 17,184, 92, 46, 84, 42, 21, 84, 42, 21, 8, 33, 16,137, 68, 16,137, 68,168, 77,131,107,163,209, 88,233,195, 95,175,215,215, 42,
-162,101, 48, 24,240,228,201, 19, 36, 36, 36,128,207,231,191,217, 87, 30,143,135, 23, 47, 94, 64,173, 86, 67, 40, 20, 66, 42,149,
- 66, 38,147,153,173, 91,182, 47, 18,137, 4, 2,129, 0, 89, 89, 89, 40, 44, 44,124,115, 76,165, 82, 41, 68, 34, 17,114,114,114,
-144,150,150, 86,237,190, 27,141, 70,168, 84, 42,164,167,167, 35, 49, 49, 17, 25, 25, 25,111, 10,160,210,168, 81,253, 2, 59,185,
-185,200,204,204,124, 19,137,172,106, 49, 7,147,201,132,188,188, 60,220,190,125,155, 50,153, 76,200,206,206, 54,165,171,213,198,
-201, 42, 46,142,126,251, 51,217,127,230, 65,241,222, 83, 97, 69,135, 47, 62, 42, 10, 61, 28, 89,196, 15, 88,104,192,251, 96,131,
-175, 12,122,118, 80, 70,190,158,151,174,227,200,148,190,221,128,152,211, 0,131, 5,240,229,104,221,164, 33,226,179,140,162,167,
-169, 90, 62, 40,244, 64,168,135,220, 44, 77, 35,187,123,122,158,158, 23,167,179,150,122, 55,243, 71,106,106, 42,120, 60, 30,120,
- 60, 30, 62,104,215, 13, 49,153, 70,225,227,228, 34, 33, 8,130,204,210,252,127, 26,137,197,226, 54,237,219,183,167,202,107,246,
-238,221, 27, 20, 69, 53, 5,224, 85,171, 66,110,109, 35, 46,116,194,214, 96,145, 25,143, 83, 10,237,143, 70, 21,123,244,237, 63,
-200,242,167, 11,105,222, 79,212, 26, 87, 16,253, 44, 16,157,127, 61,204, 86, 39,137, 68,114, 98,221,186,117,174,124, 62,255, 52,
-128, 14,117, 17, 17, 11,152, 27,191,153, 50,204, 65, 94,102,178,244,133, 0, 75, 0,176, 5, 0, 75, 0, 91, 27, 5, 22,141,235,
-110, 41,228,179, 15,215,194,176,238, 13, 13, 13,181,174,104,178,202, 22, 63, 63, 63,204,159, 63,223,218,210,210,114,143, 57,122,
- 43, 87, 44, 39,217, 57, 57, 0, 1,114,115,243,177,114,197,242,172,178,239, 6, 12, 24, 64, 58,116,232,128, 41, 83,166, 96,233,
-210,165, 56,117,234, 20, 90,183,110,141,241,227,199,163, 85,171, 86, 53, 73, 7,201,100,178, 93,221,186,117,187,173,146, 72,198,
-165,248,251,115, 47,202,100, 57, 93,115,114,100, 46, 81, 81, 58, 79, 32, 18,192,134,164,164,164,158,181, 48, 89, 67,165, 82,105,
- 88,215,174, 93,117, 18,137, 36, 97,245,234,213,147,167, 78,157,138,229,203,151, 99,222,188,121,191, 0,248, 15,128,175,146,146,
-146,236,171, 51, 89,127, 86,185,244,103,149,117, 70,163, 49,241,224,193,131,173,116, 58,157, 99,105,245, 32, 47, 59, 59, 91,250,
-250,245,107,137, 78,167, 19,153, 76, 38,145,133,133,133, 24,128,112,212,168, 81,172,199,143, 31,123, 27, 12,134,228,234, 52,213,
-106,245,240, 57,115,230,100,100,100,100, 0, 0,154, 54,109,138,236,236,108,124,254,249,231,248,244,211,146, 14,193, 45, 90,180,
- 0, 33, 4,169,169,169, 88,185,114,101,170, 90,173,254,216,140,236, 54,118,119,119, 71, 84, 84, 20,158, 60,121,114, 1,128, 9,
- 37,237, 88,115, 30, 60,120,240, 48, 61, 61, 29,123,246,236,225, 56, 56, 56, 28, 67, 21, 67,188, 84,231, 69,234, 2, 69, 81, 39,
-235,178, 93, 89,228,170,178,136, 88, 21, 84, 31,209, 10, 14, 14,166,202,127,190, 21, 49,162, 16,145,112,255, 42, 44,125,253,223,
-138,102, 9,153, 20, 4, 82, 25, 98, 18,227,193, 1,245,232, 93, 25,173,172,172, 44, 76,158, 60,185,104,248,240,225,153, 38,147,
-105,144,185,166, 64, 38,147, 65, 38,147,225,241,227,199,100,224,192,129,169,171, 87,175, 46, 42,111,180,158, 61,123, 70,130,130,
-130,210, 22, 44, 88,144, 95,157,209, 42,139,104, 45, 91,182,172,168,115,231,206,233,143, 30, 61, 34,101,102, 74, 44, 22, 99,229,
-255,177,119,221,225, 81, 84,237,247,204,204,246,150, 94, 73,163, 39, 1, 66, 9, 45, 1, 1,129, 0,161, 55, 5, 65, 68, 65,233,
-136, 40, 42, 42, 74, 21,144, 94, 69, 80, 20,165, 9, 8, 74, 71, 33, 72, 81, 90, 66, 11, 37, 13,210,203,102,211,179,125,119,102,
-238,239,143, 36, 16, 32,101, 19,244,251,233,247,237,121,158,121, 54,123,119,230,228,189,101,238,156,121,239,189,239, 93,181,202,
-208,179,103, 79,245,181,107,215, 72, 69, 90, 93, 60, 90, 52, 77, 63, 18, 90,149,175,161,105, 26, 60,207,215, 73,104,233,116,186,
-177, 3, 7, 14, 84,223,191,127,159, 84,228,211,209,209, 17,107,214,172, 49,244,233,211, 71,125,231,206, 29, 82,145,230,224,224,
- 96,179, 24,172,248,255, 42,149, 10, 14, 14, 14,184,123,247, 46,233,219,183,175,122,195,134, 13,198,202,233,247,238,221, 35, 67,
-134, 12, 81,151,150,150,142,173, 73,188, 84, 12,231,177, 44, 11,163,209,136,188,188, 60,164,167,167, 63,114,167, 27, 20, 14,145,
- 99, 70, 13,110,107, 48, 24,244,119,227, 19,210, 90,135,180,244, 48, 24, 12,250,212,180,180,120, 96, 1, 95, 3,247,200, 86,173,
- 90,229, 79,155, 54,205, 80, 88, 88,248,220, 66, 75, 44, 22,223, 23, 8, 4,164, 91,183,110,196,108, 54,147,244,244,116,107, 94,
- 97, 33, 27,188,116, 41,185, 51,123, 54, 37,139,142,150, 40,149, 74,170,156,147,126,240,224, 1, 47,147,201,238,255,199,133, 22,
-205,123,129, 34, 47, 92, 72,208, 58,245, 25, 60, 90, 76,229, 92, 5, 44, 90, 64,226, 12, 72,156, 33, 80,184,162,127,183,118,204,
-142,203, 37, 94, 32,124, 23,136, 36,190,181,114, 10,137, 39,192,119,251, 45,222,232,252,194, 75, 51,197, 5, 5, 5, 96, 24,230,
-145, 40,146, 43, 20,232, 61,236, 53,250,219,171, 38, 47,128,116, 5,197,248,214,225, 94,255,224,211, 79, 63, 21, 21, 22, 22,130,
-166,233,199,156,114, 57,166, 76,153, 34,113,112,112,152,103,115,231,183,191,133, 8, 66, 73, 24, 64,222,137,203, 49, 54, 56,124,
-219, 16,244,222,242,237,178, 86,237, 58, 97,242,139, 30,178,229,199,114, 91,221, 76, 55, 52, 6,184,217, 96,205, 29,234, 33,182,
-186,169, 84,170, 99,209,209,209,242, 1, 3, 6, 96,213,170, 85, 10,153, 76,118,162, 62, 29,191, 78,203,205, 88,180,225, 7,245,
-173,181,253, 0,139,174, 76, 96, 85, 58,114,181, 60, 62,219, 30, 85,108,181,146, 49,182,114, 26, 12,134,241,111,190,249,102,254,
-193,131, 7,159, 17, 89, 82,169, 20,201,201,201,248,252,243,207, 11, 10, 10, 10,106,125, 40,174, 89,189, 42, 38,246,230, 89,124,
-251,245, 34, 0, 4, 27,215, 76,197,165, 11,123,157, 94,236,209,157, 52,108,216,144,116,234,212, 9,211,166, 77,195,146, 37, 75,
- 16, 23, 23, 7, 55, 55, 55, 76,157, 58, 21, 61,122,244,192,234,213,171,107,234,164,250,206,152, 49,227,243,140,140,140,160,223,
-126,251, 77,160,209,104, 60, 86,127,243, 77,241,129,226,226,130,101,177,177,113, 31,135,132, 52,159,219,166,205,235, 53,132,126,
-168, 82,100, 77,159, 62,125, 79, 70, 70, 70,232,233,211,167,133, 26,141,198,119,250,244,233, 88,185,114, 37,230,205,155,183, 21,
-192,100,216,182,224,197,230,126,137, 97,152,200,145, 35, 71,182, 53, 24, 12,250,184,184,184,180,144,144, 16, 15,131,193,160, 79,
- 75, 75,139, 63,119,238, 28, 95, 31,206,250, 32, 63, 63, 63,105,247,238,221,241, 51,103,206, 12,205,200,200,104, 1,192,181,180,
-180, 84, 81, 90, 90, 42, 49,155,205, 50,103,103,103,231,118,237,218,185, 77,154, 52, 73,121,227,198,141, 22, 25, 25, 25,218,114,
- 47, 82,181,176, 88, 44,113,133,133,133,131,250,245,235, 87, 84, 88, 88,136, 54,109,218, 96,240,224,193,240,242,242, 66,131, 6,
- 13, 48,116,232, 80, 4, 6, 6, 34, 63, 63, 31, 99,198,140, 41,208,104, 52,253, 0, 60,176,193,220,164,156,156, 28,116,233,210,
- 5,139, 22, 45, 26,244,242,203, 47,223,233,214,173, 91, 73, 72, 72,136,222,215,215, 55,120,253,250,245,240,241,241,193,254,253,
-251,189, 37, 18,201,238, 42, 68, 86,181, 90, 4,128,166, 92,240,152,159,250,212,212,242,155,173,215, 86,249,183, 13,231, 61, 45,
-182, 42, 31,207, 12, 29, 86, 93, 33,192,103,223,239,223, 97, 20,251, 55,131, 99, 80, 91,200,165, 82,200,196, 98,200,156, 93, 97,
-226,121,124,147,156,163,215, 17, 50,175,174,141,231,233, 7, 33, 69, 81,216,180,105, 19, 27, 30, 30,110,140,138,138,218,104, 48,
- 24,252, 81, 22, 85,214,102, 81,176, 97,195, 6,253,172, 89,179,110,230,230,230,182,149, 74,165,230,138,244,141, 27, 55,234, 95,
-123,237,181,216,140,140,140, 80,185, 92,174,175,110,126, 86,101,161, 37,145, 72, 76,185,185,185,157, 38, 78,156,120,255,203, 47,
-191,212,201,229,114, 40, 20, 10, 72, 36, 18,115,110,110,110,219,105,211,166,221, 92,185,114,165, 94, 38,147, 65,161, 80,212,105,
- 88,142, 16,242,140,160,170,156,110, 43, 88,150,141,202,205,205,109, 59,107,214,172, 27,235,215,175,215, 85, 8,160,202, 54,174,
- 94,189, 90,175, 84, 42,235,228,209,170, 56, 79,161, 80, 96,221,186,117,250,153, 51,103,222,204,205,205,109, 43,145, 72,204,149,
-210,117, 51,102,204,184,145,155,155,219,150,101,217,168, 26,222,198,184,146,146, 18, 8, 4, 2,196,198,198,154, 68, 34, 17,104,
-154, 70, 98, 98,226,163,206,199,197,197,165,101,219,214, 33,193, 63,236,217,127, 78, 38,146, 72,194, 59,117,104,241, 32, 37, 53,
-131, 16, 42,165, 22, 83,127, 54, 24, 12,254, 81, 81, 81, 27,195,195,195,141,155, 54,109, 98,171,243,108,217, 2,147,201,116,238,
-250,245,235, 86,169, 84, 74,101,103,103,179, 12,195,128,227, 56, 98,234,212,201,212,122,253,122,114,119,238, 92,202, 65,161, 16,
-136, 68, 34,200,229,114,234,228,201,147,102,189, 94,127,238, 63, 47,180, 32, 7, 5, 89, 66,174, 73, 37,165, 89, 10,241, 63,151,
-137, 44,169, 19, 32,117, 6,164,206,240,241,241,197,213,100,189, 10, 52,196,224,108,136, 33, 70,136, 2, 20,228,177,106,168,132,
- 98, 25,149,147,147,243, 72, 16, 85, 28,141,154,181,192,245, 84,173, 18, 20,145,128, 65, 93, 66,144, 12,114,117,117, 21,100,103,
-103, 63,195,217,178,101, 75,198,106,181,218, 30,218, 37,139,243, 6,248,233,241, 57, 70,239, 67, 55,117, 65,179,151,125, 43,147,
-113, 69, 64,244, 6,180,106,210, 0,179, 95,106, 39,254,228,176,166,213,181, 20,125, 19, 48,100, 50,120,173,123, 29,236,124, 65,
-165, 82,157,184,118,237,154, 92,165, 82,225,193,131, 7,232,212,169, 19,182,109,219, 38,151,203,229,199, 1,212,105, 62,222, 21,
- 53, 82,181,165, 92,248, 7,251,211,114,110,101,179, 79,136, 44,141,142,224,205, 47, 14, 23, 21,150, 24, 71, 94, 78,175,254,254,
-169, 2, 55,138,138,138,250,206,155, 55, 47, 95,163,209, 60, 33,178, 82, 83, 83, 43, 30,138, 47, 2,168,245,229,247,247,179,167,
- 66,151, 46,153,133,107,209,119,208,127,208, 59,184,126, 43, 9, 31,127, 56, 12, 78, 14, 50, 68, 69, 69, 97,248,240,225, 88,180,
-104, 17, 18, 19, 19,241,227,143, 63, 82,219,182,109,163, 46, 95,190, 76,125,241,197, 23, 84, 45, 83, 26, 94, 93,182,108, 25,174,
- 93,187,134, 1, 3, 6,224,252,249,243, 40, 40, 40,192,222, 19, 39, 18,118, 39, 36,124, 92, 49,103,171,154,208, 15, 85,194,193,
-193,225,189,101,203,150, 33, 58, 58,250, 17,103,126,126, 62,150, 45, 91,150, 1, 96,106, 93, 68, 86, 93,250,165, 54,109,218, 4,
-239,217,179,231,156, 84, 42,149,116,234,212,169, 69,114,114,114, 6,128,148,122,112,150, 60,207, 72, 85, 94, 94,222,159,219,182,
-109,187,220,171, 87, 47,249,248,241,227,221,127,249,229, 23, 87,189, 94,223, 64, 34,145,120,152,205,102,241,189,123,247,152, 3,
- 7, 14,120,221,189,123, 55,217,104, 52, 94,181,165, 60,114,115,115,175,198,197,197,245,107,211,166,205,189,141, 27, 55,102,120,
-123,123,243,147, 38, 77,194,155,111,190, 9,119,119,119,110,221,186,117,105,221,186,117,139, 77, 74, 74,138,208,235,245,183,109,
-180,245,187,165, 75,151,254,177,103,207, 30, 12, 30, 60, 24, 95,124,241, 5,246,238,221,139,179,103,207,202, 46, 92,184, 32,222,
-182,109, 27, 68, 34, 17,194,194,194,208,183,111,223,222,229,195,157,182, 62,151,174, 81, 20,117,140,162,168,211, 79,125, 94,171,
-233,183, 58, 92, 91,221,223, 53,158,247,148,153,219,158, 58,108,199,171, 77,176, 96, 74,136, 74,255,231,184, 48,146, 51,233, 5,
-162, 30,221,130, 92,236,225, 66, 38, 54,165,116,227,235, 25,222,193, 96, 48, 60, 58, 14, 30, 60, 72,188,188,188,116, 42,149,170,
-206,225, 29,188,188,188,212, 37, 37, 37,164, 99,199,142, 5,238,238,238,143, 66, 17,120,123,123,171,117, 58, 29, 9, 11, 11, 43,
-240,240,240,120, 20,222,193,215,215, 55,157, 16, 66, 2, 2, 2,178,170,227, 99,163, 6,249,106, 0, 0, 32, 0, 73, 68, 65, 84,
- 89,150,120,121,121, 85,172,208, 19,186,184,184,108,233,220,185,115,129, 90,173, 38,222,222,222,143, 66, 39,184,187,187,175,234,
-212,169,211,211,233,181,217,155,158,145,145, 65, 50, 50, 50,136,159,159, 95, 86,229,244,212,212, 84,146,154,154, 74,124,125,125,
-235, 28,222,193,221,221,125,101, 21,182,212,203, 70,127,127,127,181,193, 96, 32, 93,186,116,121,162, 76,253,253,253,213, 70,163,
-177, 34,221,166,240, 14, 50,153,108,178, 84, 42,205,146, 74,165, 89, 18,137,228,243,134, 13, 27,230,238,219,183,143,172, 91,183,
-174, 98, 73, 58,220, 91, 14, 9,111,214,229,245,143,221, 91, 14,125,239,121,194, 59,168, 84,170, 51, 94, 94, 94,186,131, 7, 15,
- 62,209,190, 12, 6,131,205,225, 29,100, 50, 89,134, 86,171,229,213,106,181,245,143, 63,254,208, 71, 71, 71,235, 99, 99, 99,245,
-201,201,201,134,252,220, 92,139, 90,173, 54, 20, 23, 23,155,110,222,188,105,146,203,255,127,194, 59,144,109,129,205,200,150,224,
-195, 73,139, 26,221,157,213, 93,110,188,189,164, 45, 33, 63, 13, 39,228,248,155,132, 68,125, 64,174,110,157, 68,186, 52,146,112,
-127,204,241,139, 39, 95, 5, 29,178, 37, 36, 3,217,214,186, 25,217, 18,124, 60, 97, 97,163,187,227,187, 53, 48,126,243,229, 58,
-114,229,202, 21, 18, 27, 27, 75, 30, 60,120, 64,142,255,188,143,116,105, 34, 47,227,220, 18,124,184,142, 97, 30,186, 74, 36, 18,
-237,154, 53,107,200,229,203,151, 31,113, 30, 62,124,152,200,229,114, 61, 96,219,170,101, 2, 80,100, 75,203, 97,236,151, 65, 23,
- 62,233,163, 44,205, 63,250, 1, 33,183,119, 16,178,173, 21, 33,223,117, 38,100,223, 64, 66,142,188, 78, 46,175,123,137,116,109,
- 36,178,146,175,130,206,147,173, 45,109,158,108, 47, 20, 10, 75, 14, 30, 60, 72,178,178,178,200,249,243,231, 73,116,116, 52,185,
-127,255, 62, 73, 75, 75, 35,199,142, 29, 35, 66,161,208,136,122,108, 91,214,217, 19, 1, 17,205, 69,217, 55,151,119, 37,228,151,
- 49, 68,179,251, 85, 50, 40, 68, 85, 16,230,247, 92,241,232,218,185,186,186,230, 29, 59,118,140, 36, 39, 39,147,115,231,206, 17,
- 15, 15,143, 60, 0, 54,207,151, 29,212,191, 27, 33,230,155,164,103,247, 16,210,166, 77, 8,233,209,181, 57,201, 76,218, 64, 58,
-181,111, 72,182,108,217, 66,212,106, 53,105,216,176, 33,169,171, 97, 17, 17, 17, 87, 8, 33, 49, 3, 6, 12,136, 1,112, 50, 34,
- 34, 34,230,225,195,135, 49,157, 58,117,186,140,154, 67, 63, 84,139,222,189,123, 91, 8, 33,100,192,128, 1, 4, 64, 86, 68, 68,
- 4,121,248,240, 33,233,212,169,147,185, 62,133,103, 75,191, 20, 26, 26, 26,222,171, 87,175,143, 67, 67, 67,223,179, 37,188, 67,
- 45,156,127, 85, 16,106, 6,101,193, 63, 91, 2,232, 80,126,180, 40, 79, 99,158,131,243,117,161, 80,248,141,139,139,203, 89,103,
-103,231, 40,134, 97,182, 1, 24,135,250,197, 55,163,203, 61,140,191,186,187,187, 39,182,105,211,198,208,175, 95, 63,210,191,127,
-127, 50,125,250,116,194,243, 60,217,183,111, 31, 89,180,104, 17,105,234,234,202,174, 3,242,190, 2,222,128, 29,101, 1, 75,223,
-104, 66,157, 27,219, 24,165, 99, 26, 67, 59,161, 41,101, 75,192,210,136,234,132, 22,207,243, 36, 62, 62,158,244,236,217, 83,167,
- 80, 40, 50, 97,123,192,210, 39, 56,221,220,220,162, 61, 60, 60,158, 9,162, 89, 41,253,137,128,165, 30, 30, 30,127,122,123,123,
-171,221,221,221,175, 87,197,233,230,230, 22,237,237,237,173,118,115,115,123, 34,184, 39,195, 48, 3,220,220,220, 50,159, 78, 23,
- 8, 4,189, 60, 60, 60,210,159, 78,175, 38,239,240,242,242, 74,207,202,202, 34, 26,141,134,248,251,251,103, 61, 45,192,114,114,
-114,158, 16, 96,182,112,214,102, 75, 13, 54, 86,201,105, 67,153,214,167,222, 43, 16,232,227,227,147,187,122,245,106,162, 84, 42,
-159, 88,242, 28,212,125,194,167, 87, 18,180, 37,111,126,184,101, 95, 21, 1, 75,109, 13, 14,218, 79,161, 80,100,246,236,217, 83,
- 23, 31, 31, 79,120,158, 39, 60,207, 87, 39,180,170,226,140,236,208,161, 67,126, 94, 94, 30, 87, 90, 90,202,166,167,167,155, 30,
- 62,124,104, 88,178,100,137, 69,163,209, 24,181, 90,173,249,214,173, 91, 38,111,111,111, 13,128,200,186,214, 81, 61, 17,241,244,
-240, 25,217,218,162, 43,249,170,197,177,251,243, 3,238,189,222, 89, 97,138, 89, 61,128,144,168, 15,200,229, 45,111,146,240, 70,
-226, 50, 65,180, 53,248, 4,249, 54,176, 59,217,208, 68,108, 19,231, 55, 77,187,145,173,193, 39,238,126, 22,112,111,120,123,119,
-243,158, 29, 91, 73, 98, 98, 34, 57,124, 96, 55, 9,107, 92, 46,178,190,106,241, 43,217,210,162,167, 45,156, 85,137,173,237,219,
-183,147,196,196, 68,114,232,208, 33, 91, 69, 86, 68, 85, 66,235,163, 8,101,209,155,157,165,166, 49,237,196,230,161,173, 68,150,
-190,205, 68,108,151, 0, 1,215,214,155,230, 91,184,131,244, 13,146,153,200, 87, 65,231,201, 87, 45,250,217,106,167, 88, 44, 78,
- 67,165,152, 58, 79, 31, 18,137, 68, 83,131,208,138,168, 85,108, 5, 74,178,207, 44,234, 69, 6,183, 81,229,219, 40,178,106,107,
- 75,237,220,220,220,242,190,251,238, 59,226,233,233,169,177, 81,100, 61,226, 28, 50,168, 47, 73, 77, 58, 78, 14,237, 91, 70,122,
-118,111, 65,118,110,159, 69,174,156,159, 79, 6,246,239, 73, 34, 34, 34, 72, 94, 94, 30,233,213,171, 23,169,171,157,142,142,142,
- 59,181, 90,109,204,169, 83,167, 98, 34, 34, 34, 98,118,238,220, 25,115,241,226,197, 24,185, 92,190,179,194, 57,241,180,216,106,
-241,108,255, 31,241,148, 71, 43,166,180,180,148,156, 58,117,138, 68, 68, 68,144,157, 59,119,146,139, 23, 47, 18,185, 92, 30, 83,
-223,251,200,214,126,169, 79,159, 62,159, 38, 39, 39,151,124,246,217,103,251,170, 8, 88,106, 43,103,226, 95,100,231, 95,210,135,
-252, 63,112,170,100, 50, 89,204,205,155, 55, 73, 97, 97, 33, 9,241,244, 36, 75, 25,134,100,136, 68, 36, 75, 36, 34, 91,128,130,
-255, 2,153, 52,169,186,161,195,191, 27, 85, 10, 45,163,209, 72,230,204,153, 99,150, 74,165,122,145, 72, 84,215, 45,120,254,213,
-141,208,205,205,237, 79, 79, 79, 79,181,167,167,231, 19, 98,175,114,186,155,155,219,245,255,242, 27, 48, 80, 36, 18,165, 10,133,
-194, 39,183,224,105, 57, 36,188,105,215,241,243, 60, 91, 13,233,255,156,118,138, 68, 34,209, 71, 82,169, 84, 63,103,206, 28,179,
- 86,171,173,139,208, 2,128, 62,114,185, 60,243,251,239,191, 55, 36, 36, 36, 88, 11, 10, 10,216, 43, 87,174, 88,163,163,163,205,
- 11, 22, 44, 40,149,203,229,153,168, 62, 44,193,127,164, 60,201,134, 38,226, 10,177,117,123, 94,192,253,193, 33,114,203,182,119,
-251,146,240,134, 79,137,172,234, 35,185, 87,205, 89, 46,182,110,124,226,127,191,103,160,146, 93, 54,111, 54, 9,107, 44,123, 82,
-100,213,129,243,105,177, 37,151,203, 75,231,207,159, 95, 23, 79,214,147,130,240,155, 32,127,178, 53,120,103,153,136,170,229,216,
- 18,244, 53,217, 20,228,255, 79,185,143, 58,123, 34,160,119,160,228, 78, 29, 60, 89,182,216,217,206,217,217,249, 94, 29, 60, 89,
-143, 56, 55,109,218, 72, 94, 29,221,135, 36,221, 59, 72,180,249,199,201,245, 75,107,200,136, 33,161, 36, 44,172, 19,217,186,117,
- 43,137,139,139, 35, 29, 59,118, 36,245,176,179,239,148, 41, 83, 98, 30, 62,124, 24,243,224,193,131,152,139, 23, 47,198, 12, 27,
- 54, 44, 6, 64,223,202, 35, 65, 21, 98,203, 50, 98,132,169, 29, 77,207,174,133,243,149, 41, 83,166,144,135, 15, 31,146, 7, 15,
- 30,144,139, 23, 47,146, 97,195,134, 17,212,109,251,158,122,245, 75,161,161,161,225, 61,123,246,156,215,190,125,251,254,127, 21,
-231,255,160,208, 82, 12, 31, 62,156,231, 56,142,244,239,223,159, 91, 15, 20,109,163, 40,245, 54,138, 82,111, 5, 52,255,237, 30,
-173,191,123,195,207, 8, 0,167, 43, 39, 72,165, 82,181,209,104,116, 87, 42,149, 63,107,181,218,153, 40, 91, 22,249, 92,156,127,
-135,157,118,206,255, 10, 78,111,165, 82,185, 81,171,213, 14,147, 74,165, 26,163,209,232, 89, 7, 78, 39,137, 68, 50, 91, 42,149,
-246,212,235,245,129, 0,160, 80, 40,226, 77, 38,211, 89,131,193,176, 22, 64,209,255,119,222,201,134, 38, 98,136,197, 29, 64, 48,
- 55, 38, 77,215,120,217,169,130,128,119,123, 57,167,117,105,170, 72,134,144,255, 2,148,233, 42,245, 70,170,169,206,156, 50,170,
- 19, 56,225,220,171, 41,250,134, 95,252, 86, 26,240, 94, 79,101, 90,151, 38,202, 52, 16,124, 1,137,254, 82, 93, 57,159, 22, 91,
- 10,133,226,123,157, 78,247, 22,128,179,117,205, 59,217,223, 66, 4,157,213, 7, 86, 38, 4,164,134, 45,124, 8,209,131,102, 98,
-145, 3, 53,181,224,158,197,126, 31, 85,205,249,229,151,155,201,233,223,142,195,164, 47, 64,118,110, 9, 94, 29, 55, 1,237,218,
-133,194,205,205, 13, 75,151, 46, 69,179,102,205,176,104,209, 34,170, 30,118,246, 85, 42,149,175, 6, 7, 7, 55,185,123,247,238,
- 3,189, 94,191, 11,192,175, 79, 63,127,130,129,158,114,129,160,173,129,101,207,223, 3,162,107,225,124, 69,169, 84,190, 23, 28,
- 28,220,234,238,221,187,119,244,122,253,106, 0,123,237,125,221,191,131,147,166,233,181, 1, 1, 1, 35,146,147,147,231, 2,216,
-131,255, 33,252,199,133,150,157,211,206,249, 47,228,172,184, 79,200, 63,205,206,199, 98,139,159, 9, 10,141, 65,168, 12,136,248,
-117,181,136,172,218, 57,101, 84, 39,176,130,119, 64,193, 15, 4, 57, 32,244,218, 90, 68,214,127, 86,100, 2, 20, 22,212,208,127,
- 45, 0,161,170,175, 47,123,155,175, 2,159,126,250, 41, 57,121,242, 36,228,114, 57, 12, 6, 3,250,245,235,135,197,139, 23, 83,
-246, 62,196,206,249, 31,228,252,175,132,192, 94, 4,118,216, 81, 43,200, 63,213, 48,234,237, 7,102,178,191,197, 53,228, 49,115,
- 64,163, 49,192,166, 66,199,230, 80,111,167,154,159,147,243, 10,242,168, 89, 96, 16, 8, 49,155, 4,173, 57,135,154, 90,127,206,
-191,225, 13,145, 96,193, 63,183, 94,254,141,120, 90, 84, 69, 71, 71,219, 11,197, 14, 59,108,199, 36, 60,185,210,240,209,119,187,
-208,178,195,142,127, 57,168,151,239, 89, 0,100,148, 31,255, 88, 78, 59,236,176,195,142,255, 65,193, 5, 10,213, 79,104,171,139,
- 75,176, 62, 19,237, 78,219, 57,235,197,201, 0,112, 4,224,132,178, 24, 36, 21, 75,122,107, 11,179,209, 31,128,213, 94,158,118,
- 78, 59,167,157,211,206,105,231,252,127,230,172,141,251,223, 56, 36, 89,213, 42,195,109,255,137,127, 28, 97,231,252, 75,209,239,
-191, 38,239, 4,109, 65,176,174,252,104,107,175,119, 59,167,157,211,206,105,231,252,159,231,252,175,132,125,232,240,223, 5,233,
-191,214,114, 66,188, 1, 84, 4,185,140,133,145, 10,134, 20,179, 0, 0,165,184, 78, 8, 18, 0,132,148,255,158, 78, 81,117, 94,
-141,106,135, 29,118,216, 97,135, 29,255, 95, 8, 5,112, 29,128, 55,128,129, 0,142,161, 60,170,194,255,171,208,146,185, 54,247,
-134,128,110, 67,241, 36, 24, 0, 8, 77,221, 7,203,223, 50,228, 39, 60,247, 67, 86,217, 32,208,133, 64,188,159,130,249,101,109,
- 86,252,115, 7, 67, 11, 9,116, 24,225,233,166,122, 53, 39,191,248,251, 59,113,218, 95,234,114,173,163, 99,128,163,212,197,249,
- 37,147,197, 26, 34, 22,137,210, 44, 69, 37,219, 10, 11, 31,148,214,195, 12,151,154,126, 92,176,128, 80, 71,179,175, 83, 34,185,
-133,118,117, 16, 81, 90,104,137, 54, 91,201, 55, 42, 74, 38, 7, 14,188, 76,234, 90, 55, 20,141, 23, 21, 42, 85,123,137, 84,222,
- 73,174,114,110,206, 19,160, 64,157,153, 98,182,178, 23, 57,179, 62,134,240,248,189, 14,117,245, 26,128,101, 0,128, 94,189, 78,
- 35, 4, 14, 88, 91, 97, 56,166,246,186,141,215,162,162, 80, 17, 92,246, 35, 0,203,235, 96,174, 19,128, 0, 0,197, 33, 33, 33,
-250,216,216, 88,205, 95,213, 70,159,167,222,107,130, 68, 34,149, 89,173, 22, 11,199,113,207,189, 49,181, 68,238, 48,255,153,237,
-149, 40, 26, 70,109,225,194,231,225, 21,185, 6, 14, 42,239, 60, 30,193,146, 31,191,192,222,159,218, 97,135, 29,118, 84, 43,180,
- 6,162,108,200,176,246,201,240, 1, 45, 95,184, 38,149,202, 26, 1, 0, 79, 8,120, 2,232, 74,138, 98,114, 30, 68,247, 3, 0,
-183,134,161,167,132, 82,135,246, 60, 41,251,157,227, 1,214, 98, 76, 46, 73,189,210,209, 22,139, 20,238,129,195,123, 69,244, 30,
- 49,104,208,192,160,214, 33,173,155, 2,192,237,216,219, 73, 71,143, 30,139,139, 58, 77, 29,212,105,226, 15, 61,151, 3, 5,210,
-197, 29, 58,180,123, 33, 58,250,250, 34, 0,211,159,183, 4, 93, 93,149, 51,127,253,105, 78,247,222, 35, 86, 41,128,186, 61,112,
-165, 46,206, 47, 13, 29, 28,217,238,253,183,167,208,111,206, 89,218,232,218, 31,191,175, 80,122,183, 42, 34,188,245, 87,157,122,
-244,133,154, 54, 78,126, 90, 63, 86, 39,176,118, 21,156,164,215,125, 23,238,108, 40, 72, 26, 77,120,110, 52, 69, 81, 96,196,242,
- 3,238, 77, 94,216,231,244,226,187,133, 0,108, 94, 49,230,224,221, 50,194,195,219,247,224,232, 9,179,165,114, 71, 79, 1, 24,
- 17, 0, 10, 89, 41,247, 16,181,119,153,243, 59, 11,183,135,254,113, 43,149, 61,243,211,102, 35, 37, 18,142,208,103,223,173,125,
- 60, 61, 53,213, 9, 1, 1,101,127,127,253,245,167,104,212,248, 54,202,230,154, 1,107, 80,252, 67, 22, 66,128, 50,161,149,146,
- 2,103, 91,109,237, 55, 96, 84,159,180,212,132, 69, 89,153,105,191,208, 2, 1, 95, 88,172,123,215,213,213, 67,155,159,159,219,
- 19,229, 19,185,221,220,220, 20,121,121,121, 22, 0,150,255,100,189,191,244,198,226,175, 15,124,247,233, 91, 85,253, 54,237,157,
-197,107, 3,124,157, 20,111, 79,159, 88,229,134,220, 61, 34, 39,190,127,238,228,246,149,181, 10, 98,133,106,254,200,183,230, 45,
-120,177, 87,223, 39,210,175, 92,186,136,221,155, 62,133,174,180,126, 98, 75,228, 26, 56,232,149,133,191, 28,153,212,191, 33,180,
-102,130,189, 81,169,176,154,205,248,105,233,168,235,150,252,248,163,246, 62,213, 14, 59,236,176,227, 9, 28, 43, 23, 87,199,158,
-254,161, 90,161, 37,149,202, 26, 93,254,253,168,203,161,139,233, 0,128,136, 80, 47,124,188,100, 99,223,157, 27,162,227, 0, 32,
-188,215,160,192, 69, 31,189,141, 63,239,228,130, 16,130,118,205, 92,209,127,232,203,182, 9, 15,207, 22, 29, 95,122,105,228,216,
- 57,115,222, 27,146,152,152,152,178,103,207,158, 11, 0,208,173,123,247,102, 75,151, 46, 29,181,202,217, 69,242,227,129,159, 50,
-141,234,123,215,234,147, 91,105,131, 38, 62, 65,205, 27,191,250,227,183, 27,233, 23,251,141, 28,147, 2,221, 50, 99,214,131, 76,
- 91,174,117,115,115,155, 37, 20, 10, 29,129,178,221,216, 31,189,201, 91,136, 23, 0,176, 28,175,114,110, 16, 84,202,136,164,156,
- 68, 34,186, 91,170,213,126, 95,146,121,239,155,154, 56, 77, 86,107,171,119,166,190, 65,223,120,144,143, 70,173,186, 49,235,150,
-125, 2,158,179, 58,207,254,104,201, 75,209, 87,126,132, 78,141,115, 54,102, 77,248,116,130,143, 79, 24,179,120,153,178, 15, 69,
-225,245,128,240, 9,195, 22,237, 56, 32,236,208,204, 1, 38, 43,143, 19, 49,249,225, 91,214, 46, 94,249,199,150,129, 71, 0,108,
- 5,112, 6, 64,173,162,206,197,213,101,215,172,121,107,149, 58,243, 99, 47, 73,185,200,194,215,223,239,199,205,116, 30,193, 65,
-193, 2,175, 89, 43,148, 91,151, 76,218,161, 47,219,103,171, 42,185,219, 4, 64, 87,224,190, 11, 38, 47,236,141, 31,150,127, 14,
- 15, 15, 29, 84,170, 52, 80,240, 4,208,188,252,196, 4,113, 30,210, 1,124,148,155, 11,197,162, 41,232,119, 3,248,176, 45,144,
- 11,224, 15,170,166, 93,227, 9,187,236,157,185, 43, 67,220, 27,135,116,138,141,203,196,229, 99,155,161,201, 73,117, 42, 44,204,
-251,222,175, 89, 91,162,112,116, 15, 45,202,121, 8, 7, 39, 60,164, 8, 55,180,184,184, 48, 7,128, 77, 94, 36, 47, 47,175,249,
- 62,254,157,187, 87,212,187, 75, 64,187,194,138,223,104, 70,176, 43,239,225,181,183,107,186, 62, 32,120,240,196,101,155,187,245,
-188,127,243,212,254,180, 7, 49, 23, 89,171,197,212, 60,168, 77,135, 55, 94, 31, 51,234,126,166, 91, 91, 77,145, 9, 55,111,223,
-105,183,124,249, 23,203,239,196,222,190,173, 82, 57, 57, 55, 14,108,219, 57,184,205,128, 49, 5,102,151, 38,182, 8, 45,150,229,
-224,234,213, 4, 66,169, 10,190,158,142, 40, 42, 53, 65,103, 98,225,230,213, 24, 44,251,124,206,178, 54,173,188,113, 45,195,140,
- 7,241,233,240,242,116, 65,122,154,198,222,149,218, 97,135, 29,118, 84,141,108, 60, 57,249,125, 91,173, 66, 11, 0,148, 50, 1,
-226, 30,230, 0, 0,156,100,192,204,201,227,145,159,167, 9, 52,179, 60, 38,140, 31,135,235,247,179, 17,151,172, 1, 33, 4,129,
-190, 54,111,194, 13, 6,124,135, 9, 19, 39,244, 56,245,235,175, 87, 63,157,247,233, 15, 20,133, 75, 0,176,117,219,215,225,159,
-205,255,236,173,113,227,199,245, 57,112,224,192, 29, 0,245, 18, 90, 2, 74,181,113,229,242,207,197, 25,121, 70,227,172, 57,115,
-249,247,222,157,181, 14,192, 72,155,148,140, 80,232,152,145,145,161,164,233, 39,247,210,252,226,243,185,231,251,140, 88,149,144,
-146, 86,116,227,212,225,195, 29, 91,182,108,137,140,204,156,174, 43,214,127,213,246,196, 41,217, 27,165, 37,134, 17,250,188,123,
- 85,110,218, 44, 17, 10,239, 44, 92,177,165, 29,239,212,140,254,248,173, 1,104,213,180, 1, 50,115,139,208,189,223, 16, 65,204,
-181,107,125, 1,155,133,214,211,193, 3, 95, 50,243,185,109,151,126,127,165,247,176, 46, 13, 58,208, 52, 3,173,193, 10, 77,177,
- 9, 28, 15,116,107,225,136,200,157,235, 5, 5, 58,235,240, 37, 63,165, 15,191,180, 97,144,218, 88,156, 53, 3,192,193, 90,252,
-129, 46,190, 30, 14,136, 75, 47,173, 82,100,233,140,101, 15,112, 17,195,129, 2,113,173,129,168, 43,128,239,128, 96,224,183, 25,
- 99,225,233,185,199,211,211,243, 37, 15, 79,175,152,192,177,111, 80, 62,141, 90,168,180, 6, 11,238,222,185, 93,218,178,125, 44,
- 41, 45,200,157,109,212, 21, 30,184, 7,196, 6, 3,251,202, 57,222, 64, 13, 66, 43, 33,225, 94,209, 27,175,244, 20,220, 72, 42,
-197, 3,133, 2,173,186, 12, 67,177, 38, 67, 24,249,198,194,206,134,210, 98,169,171,103, 0,238,253,185, 31,154,180,196,118, 70,
-179,233,144,139,127,120,207, 35,223,125,104,174,205,187,229,229,229, 53,127,242,228,201, 11, 52,217,247, 23,247, 25,177,170, 77,
- 74, 90,209,141,177, 11,207,118,156, 54,188, 25, 78,220, 42,193,231, 19,123,190, 10,160, 70,161,197, 8, 8, 39, 85,122, 53, 26,
-241,202,140,185, 13,220,165,115,229, 50, 26, 78, 10, 49,126,189,146,139, 31,127, 77,135,149, 37, 8,107,211, 60,112,230,251,107,
-119,120,187,138,145,157,103, 70,166,198, 8,117,158, 17,218,124,189,201,166, 6, 65, 81,200,213,228,227,216,145, 99,160,132, 82,
- 80, 52, 5,171,197, 2, 1, 77,131,162,159, 63, 30,241,119,223,158,197,165,173,131, 17, 62,249, 8, 90,134, 52,180,119,165,118,
-216, 97,135, 29, 85,163,218, 85,135, 2, 0, 56,122,244, 40, 25, 52,104,208, 51,189, 50,199, 17,196, 37,151, 77,193, 97, 24, 6,
- 3, 95,104,134,117, 43, 22,194, 96,102,113,243, 97, 49, 14,253,153, 14,179,174, 8,132, 16,228,181,242,168,234, 31, 63, 49,164,
-180,106,153, 44,148,145, 8, 71,255,113, 69,209,208,197,217,217, 57,225,206, 15,186,207,222, 85,183, 16, 16, 75,204,146, 47,154,
- 61, 20,185, 8,186,236,223,191,175,229,224, 65,131,196, 74,165,234, 3, 34,104,235, 43,212,145,247,138,139,111, 21, 87,199,249,
- 52,100, 30,193, 67,134, 12,140,236,229,229,229,201,143, 93,122,229,254,198, 25,161,254,205,155, 53,239, 26,103, 53, 12, 49,228,
- 38, 28,174,230,178, 71,156, 60,207,131,166,105,168,213,106,112, 28, 7,147,201, 4,171,213,138,244,244, 20, 53, 79,136, 47, 7,
-158,246,246,246,133, 64, 32, 70,163,134, 1,216,178,110,153,124,231,143,135, 59,125,248,233,226, 95,244,121, 8,195,227,224,150,
-143, 56,141, 5,133, 7,142,159,252,213,157, 32,170,193,199,111, 13, 96,114, 11,181,136,186,150,136,235,119,211,235, 90,145, 79,
-135,112,104,152,153,154, 88,178,106,213, 42,102,209,137,196,244, 94,253, 71,114, 1, 77,219, 52, 52,113, 4, 0, 5,137, 72, 0,
-145,128, 70,128,187, 20, 63,207, 13,193,149,161,183, 60,251,134,186,175, 37,132, 28,172,169, 60, 77, 38, 43,247, 66,176,130,105,
-219,196, 17,183,146, 10,113,245,196, 37,204,154,183, 22,209, 15, 77, 40,213,234, 65,113, 38, 48,196,132,188,212, 7, 96, 57,142,
-212, 86,239,101, 8, 45, 4, 0,137, 68,242,209,161, 35, 39, 27,152,120, 41,114,138, 76, 80, 23,154,208, 44,108,132, 34, 53, 83,
-131,239, 22,142,250, 8,192,129, 96,160,212, 6, 78, 9,128,158, 41, 15,227,173,102, 51,199, 27, 45, 28,221,202,223, 17,223,252,
-118, 13, 33, 61, 95, 49,138, 25, 70,166,114,116, 3, 8,208,170,251, 43,184,250,203, 38, 40,105,166,189,204, 65,210, 22,192,213,
-154,218, 82,133,200,154, 63,127, 62,166, 79, 30, 5,158, 16, 33, 7,158, 6,128, 47, 15, 37, 34,160,145, 71, 77,117,244,120,187,
- 24,142,166, 44, 22,130, 82,173, 21,154, 34, 51, 84, 82, 1,226,211,116, 72, 76,213, 98, 84, 63, 31,140,232,237, 13,142, 39, 24,
-247,193,117,140,236,235,141,177,131,124, 1,138, 66, 94,161, 25, 38, 51, 87,109,222,105,154,110,204, 48, 76, 40,199,113,215,203,
-190, 51,224, 0,148, 20,230,193,100, 50,129, 97, 24, 56,187,184, 3,160,158, 56,151,231,249,135,182,222, 71, 21,240,112, 87, 34,
-124,242, 17,120,184, 43,109, 57,253,239, 88,146,109,231,180,115,218, 57,255, 71, 56,171,211, 34,255, 18, 84, 27,202,129,174,233,
-170,164,244, 2,196, 61,204, 65,251, 96, 31, 52,109,232,141,171,241,133,216, 21,149,142,237,167, 82, 17,117, 83, 3, 94,160, 66,
- 78, 9,144,144,162, 70, 66,106, 94,173,241,179, 25,137,112,244, 59,239, 20,207,105,221,178, 36,236,247, 19, 51,225,227,158,208,
-242,195, 15,139,102, 50, 18,225,104,103, 63,213,158,185,115,102,191,170,146,203,197,102,147, 25, 77, 26, 7, 72,223,158, 49,243,
- 13,202, 89, 98,243,158, 72, 42,159, 22,206, 18,153,236,155, 37, 11, 62,144,172, 61,148,144,166, 51, 67,119,240,146,250,193,123,
-115, 63, 43, 16, 8,165, 91, 84, 62, 45,108,158,251, 99,181, 90, 97, 50,153, 96, 54,155, 97,177, 88,144,153,126,111,200,153, 67,
-239,247,107,236,231,210, 79, 34,149,130, 0, 40, 49,176,120,152,173, 71,207,222,125,152,246,161,161,173,148,222, 45, 38, 86,197,
- 85, 92,156, 90,204, 19, 70,117,244,231,221,204,190,223,110,224,135,163,215,240,203,217, 27,184,122,238, 4, 75,120,235,163,253,
-191,148,222,205, 2,149,222,173, 83,149, 13,218,168, 31, 29, 62, 33, 53,134,103,102, 24,154,244,236, 29,113,122,242,244,183,127,
-215,151,230,231,126,179,113, 97,166, 38, 43,229,158, 68, 68,177,114, 9, 3,173,145,197,142, 51, 89,120,105,217, 77,220, 77,211,
-130, 16, 82,235, 6,222, 60,240,238,232,137,239,115, 86,139, 5, 65,254, 74,236,222,182, 28, 67,122,182, 69,175,214,206,232,216,
- 84, 1,185,192,132, 59,247,227,176,119,247, 14,150,231,233,247,106,185, 17, 35,203,143, 24, 0,208,106,181,239,127,248,193,123,
- 26, 51,203,195, 98,229, 97, 41,255, 60,179,247, 11, 13,103,212,191, 95,126, 93, 76,165,235,170,187,153, 55,188, 57,237,195,158,
-223,236, 58,221,231,224,249,108, 90,157,111, 65,212,201, 3,240,246,107, 2, 17, 67,203, 64, 1,160, 40,128,162, 64, 8,129,123,
- 64, 11, 24,121, 30, 63,125,245,137, 15,106,152,175, 86, 33,178, 38, 77,154,132,123,247,238, 61, 81,239, 73,137,201, 72, 74, 76,
-198,233, 83,151, 1, 0, 46, 1,237, 10, 93, 2,218, 21,186, 53,238,184,181, 42, 46, 51,103,229, 13, 44,135,156, 34, 35,228, 82,
- 26,254, 62,114, 12,239,229,141,141, 31,183,193,216, 1, 62,200, 80,235, 49,105,241, 77,120,122, 10,241,243,249,108,108,216,147,
-132,230, 1, 10, 12,235,213, 0,175, 15,246,173,218, 91, 43, 16,244, 23, 10,133, 99,134, 13, 27,190, 80, 34, 85, 44,155,177,120,
-215, 2,153, 68, 80,225,141, 5,195, 48,176, 90,173,160,105, 10,163,103,109, 92, 32,145,171,150, 13, 27, 54,124,161, 80, 40, 28,
- 35, 16, 8,250,215,181,231,232, 63,176, 3,104, 99, 46,250, 15,236, 96,127, 95,181,195, 14, 59,236,168,217,163, 85,113,120, 63,
-209,111, 87,119,133,209,104, 72, 30, 57,122, 28,188, 61,188,148, 67, 95,124, 93, 20,147, 84, 4, 77,118, 42, 18,227, 99,161, 55,
- 90, 33,114,110, 12, 72,189,208,176, 81, 0,110,197,253, 98,217,176,242,152,150,103, 77,201,213,241, 13, 25,226,237,155,120,159,
-162, 87,174,240,191, 28, 31, 87,216,126,247,188,239, 48,118,172,210,109,229, 10,255,203, 41, 15, 20,180, 92, 74,186,188, 49,126,
- 12, 69, 83, 4, 31,126, 56, 7, 67, 7, 69, 98,194, 27,175, 81,223,127,191, 35,172,200,198, 92,242, 16,110,250,232,147,133, 98,
-117, 17,107,190, 26,175, 53,201, 21, 50,217, 31, 9, 90, 93,171, 70,254,178, 1, 35, 94,207, 58,182,255,155,181, 0,198,219,194,
- 85, 33,176,172, 86, 43, 44, 22, 11, 0,112,101,222,131,178,207,252, 82, 51,114,139, 76, 80, 23,153,192,114, 60, 70,140, 30, 47,
-187, 22,125,115, 60,128,106,230,107,241,188,149,181,226,224,111,215,145,121,237, 0, 79,209, 76,113,165,201,240, 80,122, 55, 11,
-244,242,242, 63, 63,104,196,107,238, 98,105,217, 48,108,169,206,132,239,191, 90, 81,163,157, 52, 69, 17,158, 99,139, 88,171, 85,
-215,164,113,147,204,224,150,109,165, 23,127, 63, 53,228,143,211, 7,181,108,147,215,156,146, 82,178,193, 8, 37, 96, 68, 82,152,
- 44,182, 45, 60, 84, 39, 94,222, 12,128,154, 56,109,206,186,217,239,127,204,188,187,225, 2,204, 70, 61, 76, 6, 29, 74,138, 11,
- 33, 19, 88,113,231,207,195, 44,225,172,179,117,217, 55, 54, 87,207, 68,101, 1,200,170,156, 82, 80, 80, 16,245,231,133,243, 71,
-174,252,121, 97,130, 87,147,246,180,217,202, 35, 49,246, 10,159,153, 16,125,196,100, 42,137, 2, 0, 10,200, 7,112,170, 38,199,
-165,202,193,201,113,194,244,247, 39, 58,201, 20,116,108, 70, 17, 82,179, 75,192,201,124,224,229,219,244,241,248, 42, 95,150,223,
- 78, 65,238,232,219,118, 20, 46,222, 78,227, 78,237,219,220, 7,192, 97, 0,250,154, 68, 86, 76, 76, 12, 68, 34,209, 19,245,222,
-180, 89, 35, 84, 12, 29, 22, 21,204,116,218,177,242,117, 0, 64,175, 23,186, 79, 2, 48,249,153, 23,149,156, 18,184,154, 89,116,
-110,225,130,160,198, 74,100,230,155, 65, 40, 1,246,159,201, 67, 66,134, 14,191, 93,213,192,219, 69, 12,222, 76,131,145, 0, 7,
- 47,102,226,226,157, 60,140,235,239,135,251, 15, 11,170, 17,214, 76,232,187,239,205, 89,180,126,253,134,179, 35,167,173,124,169,
- 91,104, 19,148,148,106,145, 89, 96,133, 86, 87, 10,157, 86, 7,153, 92, 14,137, 88, 12, 70, 32, 64,255, 55, 62,127,233,248,119,
-159,252,254,238,123,115, 22,173, 89,189,234, 51,150,101, 79,216,251, 67, 59,236,176,195,142,191,213,163, 53,169,114, 90,181, 66,
- 43,245,238,197,142, 0, 16,216,161,111,190, 82, 42,112, 17,208, 20,212, 25, 73,248,126,213, 44,240, 60,193,128,183, 86, 66,213,
-200, 11, 50, 17, 3,147, 54, 95, 91,144,116,174,166,185, 58,160, 40,107,159,205, 91, 51, 27, 77,155,218,196, 97,247,110,173, 16,
- 0,118,239,214, 10,167, 78,241,115,248,114,107,114,163,206, 47,180, 7,225, 56, 12, 26, 58, 18,163, 95, 25,141,148, 28, 61,126,
- 58,159, 6,157,193,108,211,106, 57,153, 91,112, 91, 55, 87,247,200,119, 94,143, 84, 8, 24,138,106, 30,224,200,164,107,172, 44,
-195, 8,185, 35,215,138,179, 70,140,120,197, 45,234,248,190, 94,156, 91,112, 91, 67,222,253,155,181,241,153, 76,166, 39,134, 14,
- 93,220, 26, 31,239, 51,114, 85, 70,118, 78,233,177,156, 66, 99,103,157,149,133,186,200,132,220, 34, 19,138,116, 22,120,169,156,
-193, 90,205,173,171,227, 35,132,252, 48,108,228,184,215, 0,208, 20,205,126,167,205,190, 31, 95,246,203, 99,145, 21, 57,116,172,
-251,249,152, 36, 36, 70,159, 40, 36, 60, 91, 22,197,157,226, 51,106, 46, 87, 16,134, 2, 47, 18, 80, 86,134,166,121,139, 69,107,
-245,240,112,143, 58, 23,117,114,176,145,125, 0, 70, 36,121,116,174,225,201,225,168,218,196,214, 38, 0, 88,191, 97,221,234, 46,
-125,198,138,206, 93, 79,134,193, 10,132,135, 6,226,231, 31,191, 54, 17, 98,125, 95,151,125, 99, 83, 29, 26,161,147,159,159,223,
- 44,161, 88,220, 75, 38, 87,249,185,123,251,211, 22,150,131,197,202, 65,225,234, 67, 75,148, 46,125,120, 90,116,145,181,152,163,
- 44, 58,205,122, 0,213,234,235,223, 46,223,237,245,213,250,213, 47,121,187, 42,224,231, 38,194,145,115,133,156, 85,192,211, 30,
- 1, 65, 20, 0,248,123, 56,224,238,245,223,113,235,214,109,180, 14,143,132,171,202, 23, 74, 17, 71,242, 18,255, 40,240,244,242,
-105,167,206,201, 20, 61, 45,180,188,188,188,230,143, 27, 55,110,129,183,183, 55,214,173, 91,247, 40,189,114,189,135, 0,157, 43,
- 15, 29,126,121, 40,177,198, 12,191, 49,168, 33, 94,104,235, 1,158, 7,222, 94,123, 11,177, 73, 37,216,246, 81, 40, 70,244,244,
-193,214, 95,146,209,166,185, 2, 90, 3, 15,139,153,131, 72, 76,163, 69, 99, 37, 36, 34, 6,103,175,231,161, 84,167,171,145,155,
- 98, 36,232,211, 51, 28,121, 69,122,184, 59,138,209,216,207, 29, 74,121, 99,148, 26, 88,164,230, 20,163, 88,103, 69, 94,161, 14,
- 93,195, 59,225,215,157,226, 58,245, 22, 21, 43, 14, 1, 32, 61,187, 4,188,212, 3,185,121,122,120,120, 59, 3,101, 75,152,237,
-171, 14,237,176,195, 14, 59,170,246,106, 1,149, 98,104, 61, 33,180,142, 30, 61, 74, 0,160,170,241,209, 76,117, 1, 92,149, 2,
-184, 55,104,132, 87,103,173,198, 15,107,223, 5,199, 89, 65, 8,192,114,182, 69, 38, 32, 68,248,219,244,169,141,130, 27, 54, 98,
-220, 95, 29, 43, 55,236,218,173,151,189, 58, 86,110, 8,105,237, 90, 60,125,106,163,228, 82,163,127, 87,150,227,240,199,157, 92,
-196, 38, 23, 35, 54,165, 4, 74,153,237, 97,190, 24,177,104,234,138,229,203, 68, 2,134,162,238,164,106,181, 25,249,172,150, 17,
- 10, 45,114,153,152,152,137,192,148,146, 71,242,123, 15,123,195,112,100,231,250,137, 0,102, 84,235, 21, 43, 95,105, 88,225,201,
-170,248, 36,132, 16, 10,224,121,138,227, 50,242,140,208, 90,172, 80, 23, 62, 22, 90, 20, 91,253,200,169,210,187, 89,160,131, 74,
-121,146, 97, 24, 9, 33,128,213,194,142,130,119,179,126,218,236,196,248,202, 34,235,242,157, 44, 36,221, 56,173,230, 44,250,113,
-250,220,184, 51,182,230,157,162, 64, 24, 6, 60, 67, 83, 60, 69,129, 23,210,196, 12, 66,248,167, 45,210,215, 65,104, 85,136, 45,
-177,144,153,247,235,222,181, 30, 19, 6,182,192,143,231,203, 52,159,177, 84, 83,162,203,172,147,200,130,171,171,235,248, 15, 62,
-248, 96,254,144,145, 99, 81,108,164,160, 46, 44,243, 6,154,173, 60, 68, 10, 55,244,153,254,173, 95,182,166,196, 47,241,234,145,
-174,121, 55,118, 23, 91,141,197,235,170,181, 43, 41,235,170, 65,175, 67,137,161, 44, 63,115,198, 7, 49,159,110,254, 13, 44, 17,
-192,197,221, 7,238, 14, 34,188, 62,170, 63,206, 7, 52,196,189,251,247, 49,111,225, 49,120, 58, 57,196, 94,250,253,112,211,208,
-176,110,107,142, 31,218,243,140,136,203,201,201, 89,184,115,231, 78,180,109,219,118, 65,251,246,237,145,147,147, 83, 33,144, 31,
-213,123, 82, 98,153,195,182, 66,104, 93,191,126, 11,161,161,109,170,205,115,235,166, 14, 56,112, 54, 11,223, 30, 77,129, 76,194,
-160,145,143, 20, 83, 87,220, 64,207,118,110,152,249,114, 99, 40,101, 1, 40, 42,181,194,108,229, 97, 48,177,200, 47,177, 32, 51,
-223,136,116,181, 1, 22,107,205,115,225, 9, 8, 98,227, 51, 96, 50, 25,225,236,236, 12,165,220, 8,169,147, 63, 0, 6,133,234,
-226,178,213,135,122, 35,228, 50, 73,189, 68,214,230, 55,155,225,118,182, 21,223,125,123,253,209,100,248, 94,253, 66, 49,125,211,
-233,249,155,103, 68,216,227,105,217, 97,135, 29,127, 11,106,210, 34,255, 34,175,214,179, 30,173,154, 50, 68, 8,144,144,154,135,
-134,190,238,240,109,216, 20,241,247,110, 85,234,236, 1,150,179,109, 56,234,240,225,236,140,213,171, 29,248,119,223, 45, 14, 95,
-177,194,255,210,212, 41,126,142, 33,173, 93,139, 63,248, 32, 45,124,205, 26,199, 75,191, 93, 22,114,164, 60, 94, 87, 69,108, 46,
- 66,234, 18, 99,147,238,212,182,101, 99,102,225,238,132,180, 51,183, 75,115, 69, 34,145,213,203, 89, 74,169,148, 98,134,161,133,
- 98,147,149, 54, 5,182, 10,101,142,208, 84,104, 77, 44, 21, 66,235,233,161,195,124, 77,210,144, 95,127,154, 19,242,226,176,149,
- 46,153, 26, 3,138,205,204,163,161, 67,134,166,112,251, 94, 42,192,136, 98,171,226,116, 80,185,156,218,179,235, 7,255, 53, 43,
- 62,135,133,229, 48,253,221, 79,241,198,248,113,167,224,221,172,159,127,163,160,152, 11, 71,190,147,247,155,178, 5,169,113,209,
- 57,172,169,100,111, 93, 68,214, 35,177, 5, 16,142,240,116, 65, 97,137,210,196, 66,138, 42,116,159,201,194,215,171,229,104, 13,
- 44,142, 92,201,193,209, 67,123,225,168, 82,212,139,195,209,209,177, 69,247,238, 61, 64, 9,196, 48, 91, 77, 48,179, 60,204,149,
-230,104, 89,172, 60,172, 68, 8,185,119, 27, 20,220,253,185, 5,140,197,213,114,189,246, 90,223,130,150,173,219,239,255,228,221,
-183, 94,126,249,213, 9,232, 28,246, 2,226,110,253, 9, 79,191, 96, 40,157,220,200,165,228, 66, 54, 60,216, 95, 48,126,104, 71,
- 42,202,183, 9, 26,181,232,130,132,187,215, 90,139, 68,162,219,105,137,247,171, 29,146,204,201,201,169,136, 57,181,160,125,251,
-246, 72, 75, 75, 67, 65,165,122,111,218,172, 17, 0, 32,254,126,217, 34,134, 10,145,197,243, 85,183,211, 73,203,110,160,196,192,
-193,205, 89, 12,134,162, 1, 66,208,208, 91,134,232,132, 2,140, 91, 88,136,176,150, 46,240,247,150, 3,132, 64,107,180,194,108,
-230, 97,225, 1,179,145, 5, 67, 87,187,100,144,227, 56,142,163,137,149,185, 30, 27, 15,177, 72, 8,199, 34, 29,100, 50, 25, 68,
-162, 60, 80, 52, 13,150,229, 97,177, 90, 97,208, 27,176, 63,250, 50, 8,103, 97, 56,142,227, 80, 62, 12,106,171,200,218,118, 34,
-229,137,201,240,126,222, 14, 72,207, 46,177,139, 45, 59,236,176,227,111,193,191,120, 34,124,101,113, 85,189, 71,171, 38, 4,248,
-122,226, 74,108, 50, 90, 7, 55,134,163,131, 10,247,147, 50,192,208, 66,208, 20, 96,101,109, 23, 67,196, 98,253,113,205, 26, 71,
-164, 38, 43,232, 47,183, 36, 55,154, 62,181, 81,242,154, 53,142,151,136,197,250, 35,128,113,132, 0,101, 98,171, 76,112,113,117,
-208, 5,132,183,250,121,186,200,153,232, 7,186,124,154,102, 76,174,142, 82,222,213, 81, 66,187,170,196, 66,145,144,225, 89, 66,
- 91,124, 61, 26, 25, 9,207,219,178,175,222, 19, 67,135, 28,199,129,162,104,174, 92,136, 41,210,243, 13, 40, 54, 50, 80, 23,153,
- 80, 88,106, 65,115, 31, 5, 78, 71, 29,208,115, 86,195,238, 42,189,109, 66,145, 99,211, 70,190,248,120,241, 26, 24, 76, 28, 18,
- 50,181, 16, 73, 36, 94,158, 94,173,110,142,155, 54, 87,242,246,182, 36, 76,236,229,138,119, 47, 36,101,234,213,210,185,117,169,
- 89,142,227, 96, 48,154, 69,234,188, 66,231,146, 82,157,131, 76, 42, 49,184,187, 56,230, 85,117,174,177,142, 30,173, 10,200,165,
- 2, 12, 14,243,130,209, 50, 6, 6, 19,139, 63,207, 28,172, 15, 77, 99,207, 6,190,208,154, 43,137,171,114,177, 85, 89,116, 9,
-149,238, 0,168,198,181,101,251,238,237,152, 81,119,111,199, 44,186,118,233,220,158, 21,223,156, 9,217,185,233, 51,108,252, 37,
- 9, 12,195, 80,196,202, 10,215,255,146, 12, 95, 39,134,104,173, 66,202,200, 81,208, 21,104, 16,212,169,127,171, 61,155, 63,153,
-139,178,144, 17, 38, 91,196, 86,161, 58,250, 81,189,159, 60,241,104,221, 2, 10,111,238, 40, 74, 58,187,177, 76,226, 51,130, 3,
- 85,171,118,139,217,195, 81, 76, 56,214,194, 87,142,104,229, 40,163, 64,120,224,218, 29, 53,174,199,211,112,117, 16, 65, 41, 19,
-194,202,242,208,155, 89, 24,140, 28,205,179, 22, 83, 53,245,125,125,253,186,181,159,141, 25, 51,102,234,222,125, 11, 14,183,141,
-190,165, 46,106, 0, 0, 32, 0, 73, 68, 65, 84,124,103, 72, 73, 81, 62,132, 98, 25, 68, 2, 17,104,134, 6,203,113, 48, 27,117,
- 40, 44, 42, 64,242, 31,223, 31, 30,253,242,240,208,245,235,214,126, 86,177, 74,209, 22,145, 53,125,238, 14, 44, 95, 56, 30,101,
- 1,247,203, 48,119,254,247, 24, 63,253, 21,187,216,178,195, 14, 59,236,168,222,155,245, 12,108, 18, 90, 74,185, 20,132,145,226,
- 66, 76, 18,130, 90,182,193,142,195, 87,209,172,117, 24,178, 75, 89, 16,208,181,174, 54,172,192,156,143, 12,215, 1, 92, 31, 50,
- 68,238, 59,124,184, 79, 31, 66,132,191,109,217, 90,146, 1, 0,141, 67,202,104,120,158,128, 16,128,240,101,130,203,118,151,142,
- 32, 53, 57,187,164, 97, 35, 47, 5,238,102, 88, 76, 10,137,136,118, 86,136, 25,119, 71,177, 72, 36, 16,128, 35,148, 41, 59, 59,
-201, 68, 1, 41,182,208, 61, 61,116, 40, 87,122, 31,239, 61,108,165, 38, 37,173, 56,186,121,129,190,109,177, 69, 12, 66,128,230,
- 62, 10,196, 94, 62,198,169, 51, 19, 19, 12,234,184,175,170,246,146,129,177,176, 60,110, 62, 40, 70,145,206,138, 34,173, 5, 93,
-123, 14, 22,117,141, 24,130, 11,177,121,224, 89, 43, 86,124,125,172,148, 35,214,209,192, 61,107, 29, 50, 77, 95,185,126,199, 87,
- 83,168,147, 8, 5,130,162,224,102, 1, 15,197, 34, 33, 91, 82, 82, 34,126,242, 44, 6, 10,153, 24, 5, 90, 43, 0, 88,235,218,
-122,138,117, 86, 28,190,156,131, 35, 7,247, 64, 38,147,129,212,163, 5,138, 68, 34, 39,161, 72, 10,139,174,108,184,176,226,176,
- 60,117,208, 2, 9, 64, 11,156,108,164,189,103, 54, 27,254, 76,142,187,220,130,235,217,140, 25, 31,209, 8,175, 77,154, 13,159,
-166,173, 49,120,240,112,180,105,164,162, 14, 94, 74,131,213,202,150,122, 53,105,165, 34,101,171,108, 19, 0,180, 5,112,217, 22,
-207,150,170, 82,189,183,232,218,164,237, 99,161, 5, 20,164,222,168,113, 21, 43,103,206,207,212,155,105,154, 16,190,202, 87, 6,
- 33, 0, 98, 6,212,217, 4, 57, 0, 4, 52, 32, 96,104,128,162, 24,142,227,170,172, 39,150,101,127,229,121, 94,189,107,215, 46,
- 53,199,113,215, 99,142,173,190,217,244,197, 41, 11,192, 22,192,106, 45,155,206, 40,150,200,193, 83, 52,146,206,127,187,128,179,
- 24,126,217,181,107, 87, 69,120,135,219, 53,137, 44,103, 23, 57,194, 39, 31, 65,167,176, 32, 44, 95, 56, 30,191,222,122, 82,175,
- 47, 95, 56, 30,171,191,253, 19,185, 26, 45, 60,220,149,232, 49,121,251,252,115, 91, 39,218,197,150, 29,118,216, 97,199,147,123,
- 28, 14,172, 44,190,108, 18, 90, 28, 79,224,230,234, 2, 43, 17, 32, 89, 93, 12, 29,229, 1,163,158,128,227, 40,112,132,212, 20,
-106, 60, 2, 85, 44,207, 63,124, 56, 59, 3,192,246,167,124, 82,143, 60, 89,143, 62,171, 30,146,169,146,147, 34,220,233,195, 39,
-126,127,121, 72,183, 94,206,247,179,115, 50, 68, 66, 90, 32, 16, 49, 66,145,128,166, 68, 2,218,236, 32, 19, 48, 7,182,238, 21,
- 19, 10,191,215,198,105, 52, 26, 17, 17,241,228,198,228,113,119, 46,121, 20,228, 38,152, 9,197,243,238,226, 82,184, 57,186,227,
- 97, 74, 26,206,156, 56,168, 87,103, 38,198,113, 38,227, 80, 60, 41, 57, 31,115, 18,194, 23, 20,155, 96,180,112, 40,212, 90, 80,
-164,179,128,117, 15,199,207,127,102, 65, 42, 98,160,190,121,192,160,201,201,152,101,202, 77, 76,174,165, 42, 62,196, 19,177,180,
- 72,198,155, 19,198, 11,215,174, 90, 97, 10, 13,109, 79, 10, 10, 10,160,213,106, 31,151, 9, 69, 65,234,224, 1,149, 76,128,196,
-107,199,145,120,102,141, 1,192, 39,182,148,103,101, 56,200, 5, 24,210,217, 11, 38,203, 24,228, 21,155,112,237,247,159,107,107,
- 50,207,112,202,229,114, 89,133,247,170,114, 88, 7,115, 37,175, 22, 87, 94,223,180, 64, 34,171,130,179, 15,128,223,158, 78, 44,
- 41, 46, 62,118,253,210,233,169,198, 73,175, 65, 93,100,130, 33, 63, 9,223,255,252,213, 25, 75,105, 66,207,190,107, 87,209,179,
-135, 54,197,153,235, 5,170,219, 2, 6,224,129,200, 49,115, 94, 58,185,103,213,206,218,242, 94, 33,182,122,116,235,184,128,102,
-168, 35,132,122, 44,150,178,178,178,108,202,123,177, 58,177,220,131, 84,167, 49,112, 80, 20,205, 16,254,137, 61, 16,159,176,147,
-231,249,219, 21,162, 73, 64, 81, 67, 85,114, 57,242, 52,197,168, 8,178,107, 52,148,194,197,173, 1,104,138,130,181,210,185, 53,
-213,145,179,139, 28, 81,167, 30,207,199, 82, 56,200, 80, 88,160,199,222,249, 67, 23, 2,192,240,143, 15,204,255, 21, 64,174, 70,
- 91,105,206, 86,179,167, 35,237,214,218,150,234, 1, 59,167,157,211,206,249,191,195,249,111,198, 51,123, 28,214,193,163, 69,208,
-196, 91,129,102, 62, 10, 24, 45, 30, 48,154, 57,232,140, 28, 74,244, 22,148,232,173, 72,206,209, 35,246,240,243, 91, 88,230,197,
- 42, 11,125, 78,202,226,109,130,227,137,205,222, 19,177,197,188,120,245,138,165,163,246,134,182, 51,191, 61,208,219,239, 86,178,
- 57,139,162,104, 3,205, 8,172, 46, 42,129,240,254,253, 91,154, 75,231,143,119,151,178,220,107,250, 26,120, 88,150, 45,246,241,
-241,169,120,160, 61, 74,111,209, 84, 54,244,143, 99, 31, 54,238, 49,100,133,251,218,207,231,232,105, 70,196, 83, 2, 81, 44,103,
- 53,236, 49,168,227,182,160, 6,191, 30, 45,146,222,187,114,227,110,152,147,139, 31, 18, 51,117,208, 25, 89, 88, 88, 30,206, 74,
- 17, 50,110,159,178, 36,223,143,222,167,205,186,181,163, 30,197,182, 59,254, 94,172,111,100,100,191,145, 97, 97,225,204,103,159,
-125,138,160,160, 32, 24, 12, 6,208, 52, 13,191,134, 77,145, 28,127, 3,151,143, 45,230,244,249, 41, 95, 1, 88, 4,160,206,251,
-168,228,149,152,113, 34, 58, 23,199, 14,253, 8, 70, 40,174, 79,245,210, 50,153, 76, 90,149,184,170, 44,186, 30,157, 44, 20, 75,
- 81,230,125,226,159,104,136, 85,227,100, 82,252,221,123,175,191,250, 74, 11,149,163, 19, 6, 12, 31,157,123,233,194,153, 65,135,
-190,223,186, 46, 63, 37,125,212,167,203, 54, 56,244,233,224, 77,185, 40,197, 40,210,241,216,157,122,175, 9,108,244,193,230,228,
-228, 44, 76, 79,142, 30,247,199,177, 15, 7,247, 24,178,194, 61,250,167,121,143, 38,209,211,140, 96, 87,109,215, 23,164,199,156,
-169,171,200,170,144, 90,132, 16,155, 6,206, 9, 0,161, 72, 12, 15, 15,111, 80, 20, 96,101,121,152,173, 44, 4,117,172,167,156,
-236,226,103,130,147,238,157, 63,116, 97,133,183,234,208,210,151, 48,252,227, 3,243, 43,159,115,239, 78,186,189,107,181,195, 14,
- 59,236,120,140, 73, 79,125,218,230,209, 50, 26,141,201, 47, 68, 12, 6,207, 19,112, 4,224,185,114,207, 19,255,216,251,196, 89,
-141,201,207,107, 29,207,115, 87, 55,109,219, 62, 32,180, 83, 15,166,165,191, 18, 37,249, 57,184,252,199, 89, 22, 60,185,100,203,
-245,249,249, 9, 90,153,103,179,145,163, 94, 26,190,127,252,132, 41, 69,221,123,246, 84,120,120,120,153, 50, 50, 51,244,223,238,
-220,101, 61,117,252,151,238, 60,216, 87,242,243, 19,181, 53,241, 20, 23, 23,175,175, 42, 93, 34, 86,118, 5,208,152, 17, 80,102,
-131, 38,161, 78, 51,194,243, 50,211, 71, 44, 93,188, 32,101,236, 91,179,197, 77,124,154, 34,183,152, 65,114, 70, 14,238,159,255,
-197,148, 25,127,237, 80, 73,198,245,137, 54, 82,101, 87,145,150, 1, 96,237,229,203,151, 90, 69, 70, 70,246,235,213,171, 23,153,
- 52,105, 18, 8, 1,206,108,155, 74, 10,146, 47, 31, 40,247, 98, 61,168,103,189,164,158,191,116,195,229,229,238, 29, 4,174,170,
-137,216,254,227,113, 43, 8,159, 90, 71, 26, 79, 95,255,134,130,178,225,194,178,144, 14, 79, 31,102,235,227,249, 99, 34,165,167,
- 64,143, 88,207,106,242,251,140,214, 72,140,191,219, 58, 49,254,238, 4, 0,185,251,119,125,125, 4, 0, 76, 6,195,148,168, 51,
-135, 83,239,222,137,126,109,200,171,239, 53,109,213,182,163,224,192,142,181,176, 24,117, 7, 1,216,220, 94, 37, 98, 38,165,162,
-222,107, 27, 42,124,166,222, 83, 46, 31,167,104, 70, 96,171,104,170,228,137,164, 9,207,219, 52,161,142,240, 28, 50, 31,220,134,
-139,151, 63, 84, 42, 71,240,196, 2,152, 77,208,164,199,129,227,108,223,235,176,176,160, 20, 46,158,238,104,217,174, 25, 10, 11,
-244,216, 60, 35, 98, 97,229, 33, 65, 75,126,252,130, 10,177,213,178, 93, 51,220,187,147, 14,205,131,187,246,110,213, 14, 59,236,
-176,163,146,168,170, 10,181, 10,173,244,123,101,241,180,254,110,148,230,228,142,219,177,227,135, 37, 63,236,220,219,213,104, 54,
-251, 16,136,210, 57,214,124, 78,203,225, 51, 91, 57, 12,234,196,104, 87,215,230, 33,223,126,189,233,147,111,183,127,217, 3, 60,
- 23, 76, 1, 41,132,194,239, 82, 43, 55,190, 54,145, 85,227, 67, 51,175,116,107,159,145,171, 12,249,249,218, 31,234,122,173, 33,
- 63, 46,135,102, 44,126, 91,215, 45, 94, 73,211, 76, 95,142,227,133, 60,103, 77,228, 44,198, 47, 12,154,184,195,176,121,150, 27,
- 10,106,248,237, 14,128, 59, 81, 81, 81,221,162,162,162, 58, 1, 88,143,178, 61, 20,163,159,167, 94, 76,249,165,189,223,159,243,
-254,153,247, 64, 5,240, 60, 1,203,241,169, 34,131,190,119, 29,105,252,154, 52,105, 42,183, 88,185,103, 38,192, 87,158, 8,255,
- 72,104, 57,250,202, 1,248,217, 40,180,128,178,213,116, 95, 63,147,200,178,203,179,179,210,127,220,242,197,172,201, 0, 26, 1,
-184, 8, 96,211,127,170,222, 45,198,146,188,191,251,190, 97, 45,166,133, 25,183, 14, 35,235,142,200,155, 18,148,133,114, 32,156,
- 25, 60,107,206,102,173,150,133, 54,217,153, 31,127,244,220,214,137, 11,159, 74, 91, 80,197,121, 11, 14, 45,125, 9,181,157,103,
-135, 29,118,216,241, 63,234,205,218, 86,213,119,193, 63,197,194,194,194, 7,165, 40,172,121,147, 94, 91, 61, 91, 0,158, 89,185,
-167,127, 78,222,216,132,146,159,144, 80,242, 83,125,175,215,229, 62,212, 0, 15,199, 63,167, 25,182, 76,100,191, 80,126,252, 37,
-200,203,187,167, 67, 30, 58, 63,111,181,236,222,181,243,254,222,189, 63, 10, 9,205, 8,121,194,136, 88, 66, 9, 89,158, 18, 90,
-173, 60, 76, 22,171,213,194,178, 86,112,172, 5, 60,103, 37,188,197,138,178,232,240,127, 5, 82, 1,124,244,255, 85,239,255, 9,
-176, 86,203, 66, 88, 45, 0,116,245,230,176, 85, 48,217,133,149, 29,118,216, 97, 71,157, 4,215, 63, 71,104,217,241, 95,141, 7,
- 73,137,241, 97,246, 98,176,195, 14, 59,236,176,227,191, 92,100, 85,254, 4, 80, 54,247, 60,162,154, 11,234,178,154, 32,162, 30,
- 6,157,182,115, 62, 55,167, 16,128, 24,128, 18, 64,109, 67, 91,253, 80, 75,192,202,127, 72,222, 63, 4,112,195, 94,239,118, 78,
- 59,167,157,211,206,249, 95,203, 89, 27,183,125, 53,227,223, 44,192,236,156,118, 78, 59,167,157,211,206,105,231,180,115,254,239,
-113,254,155, 49,169,138, 3,128,125,232,208, 14, 59,236,176,195,142,255, 65,184,186, 54, 87, 2,143,230,245,214, 10,185, 91, 11,
- 79, 0,208,231,221, 83,219, 75,207,142, 42, 80,121,159,195, 39,230,104,209,245, 36, 20,210, 2,241,251,114,149,235, 61,133,163,
-107,230,255,120,225, 82,129, 13, 21, 51,251,116,111,244,115, 80, 99,217,208,186, 92, 40,119, 15,252,206,171,105,231, 52,133, 71,
-224, 76,120,135,202,158,199, 8,133, 71, 99,119,165, 95,135, 63, 84, 62,173,250,255, 13,121,148,180,108,217, 50,188,101,203,150,
-225, 0, 36,127, 5,161,220, 35,112,140,111,179,176,243, 30, 77,218,157, 85,120, 54,127,233,175, 54, 88,233,221,204, 85,233,215,
-254, 39,101,131, 54,133, 74,239, 54, 37, 74,223,246,231, 84,110, 45,154,212,118,157,223,144,165,193, 11,247,196,238,241, 27,178,
- 52,184,170,223,157, 35, 55,168,230,239, 77,248,220,117,240, 23, 74,123,191, 82, 63,248,117, 29,227,228,221,227, 61,215,186, 94,
-231, 19, 24,118,167, 97,171,110,185, 13,154,119,142,181,245, 26,223,160,240,235, 1, 45,187,170,125, 3,195,163,237, 37,111, 27,
-164,238,141,195,165,206,254,199, 36,206,254,199, 37, 46,141,123, 62, 47,159,183,183,183, 44, 56, 56, 56, 50, 44, 44,108,114,239,
-222,189,223,105,215,174,221,164,128,128,128,190,255,159, 47,250,114,143,192,143, 76, 66, 42,207, 36,164,242,228, 30,129,181, 46,
-150, 81,120, 4, 45,161,104, 46,139,162,185, 44,133, 71,208,146,127, 74, 93, 73, 60, 3, 3,228, 30,129,107, 84, 94, 45,175,202,
- 60,154, 15,174,235,245,206,206,206,125,221,221,221,135, 85, 28,206,206,206,125,237,119, 64,189, 81,217,139,245,220, 30, 45, 70,
- 40,145, 95, 28, 59, 97,122,200,242, 5,115,165,235,182,255,140,117,159,207,185,107,210, 21,181,252, 39,230,220,173,113,167,104,
-134,102,124, 43,167,113, 60,151,145,247,240,106,135,191,130, 63,168,161,108,226, 39, 31,140,123,119,204,168,136,128,136, 65,179,
-168,184,135,134, 95,108,151,104,104,187,239,167, 67,126,231,127, 63,187, 97,251,246,109,139, 52,108,208, 26,161, 68,176,169, 36,
-253, 78, 81, 93,108,112,112,111,210, 88,160,112, 59,255,194,208,233, 94, 49,167,119,237,224,204,124, 31,125, 94,165,221,191,235,
- 15,247,166, 77,155,118,100, 24,198,117,230,204,153, 34, 0, 88,187,118,109, 51,142,227,242,147,146,146,174,161, 30,193, 79,203,
- 4,102,208,184,245, 43, 23,254,208,191,255, 0,100,229,233,176, 98,205,230, 23, 79, 30,221,247,178, 78,157,112,224,175,168, 19,
- 39,167, 70, 14, 16,169,110,207,250, 96,145, 71,228,139, 29, 25,173,145,197,201,243, 55,186,237,218,188,232, 42,208,162, 83,105,
-222,189,106, 99,138,241,250,226,121,158, 74, 18,201,235,139, 1, 96,204, 51, 15,123,165, 53,194, 93,198, 69,122, 75, 4, 55,242,
-129, 90, 55,125,116,106,216,245,148, 80, 34, 9,160,105, 26, 52, 5,208, 52, 5,134,162,202,246, 9,181, 24, 82, 51,239, 95,232,
-247, 79,184, 79, 84,254,157,114,192, 8, 92,105,234,177,125, 20, 93,254, 73, 72, 73, 78,194, 69,215,191,224,223, 56,134, 52,115,
-106,213,181,153,238,219,115, 15, 11, 20,130,238,239, 28,163, 8,253,101,218,133, 53, 55,109, 18, 0, 82,169,243,145, 35, 71,220,
- 35, 35, 35, 29, 61, 90, 13, 61,103,203, 53, 98, 70,219,242,232,209,195,162,200,200,126,117,104,159,129,125, 64,211, 59, 41, 64,
-200,243,100, 45,195,147,125,218,252,248, 36,160,110,187, 79,201, 60,130, 38,210, 32, 54,247, 51, 60,168,104, 67,110,220,246,250,
- 22,174, 64,226,208, 91, 40, 18,189,211, 56,176,117,104,102, 74, 98,180, 78, 91,186,134, 53, 21,159,171, 51,145,149,125,255,244,
-133,152,254, 2,161,144,138,236,221,153, 49, 1,103,159,167,210, 61, 61, 61,135,109,220,184,177, 73,120,120, 56, 0,128,101, 89,
-135,253,251,247,123, 45, 94,188, 88, 17, 31, 31,127,176,158,180, 62,238,238,238,254, 98,177,216, 7, 0,204,102,115,166, 70,163,
- 73, 3, 80,235,139,191,194,179,137, 27, 8, 22, 93, 56,127, 94, 0, 0,221,186,117, 95,226,255,194, 12,103, 70,164, 52, 84, 89,
- 28,230, 82, 69, 81,210,217,217,151,175, 92,162, 0, 32,172,115,248, 92,185, 91,139, 77,255,159,158, 45,169, 71, 80,103, 26,120,
- 55,172, 91,196,136,209,175,140,163, 91, 53,247, 71,223, 62,189, 62, 52, 0, 71,234,212,102, 4, 2,217,213,171, 87,155,210, 52,
-205,176, 44,107, 12, 11, 11, 75,123, 30,187, 26, 4,134,255, 73,129,246,179,176,230,175, 53, 15,162,151, 0,207,108, 28,195, 56,
-250,133,126, 2, 70,240, 22,207,243,233,165,105,209, 93,254, 11, 61, 90,207,150,115, 93,153,104,129,248,157, 49,111, 76, 11,153,
-253,222,199,210, 89,235,162,112,108,243,220,188,127,170,200, 2, 0,134,102,124, 79,253,122,202, 67, 46,102, 0, 0, 90, 35,139,
-254,145,145,181, 63, 17, 26,118,250,157,166,168,160,138,173,196, 57,214, 34, 21, 8,197, 70,170, 76, 32,129, 2,224,214,160, 97,
-148, 39,123, 81, 62,102, 84, 68,192,206,189,191,101,164,101,228,215,185, 83,163, 24, 17,194,186,247, 69, 68,159,126,142, 87,175,
-252,185,104,219, 87, 91, 62, 98, 45,214, 45,188,149, 95, 99, 44, 72,204,170,181, 51,247,106,222, 94,172,116, 59, 57, 98,242, 98,
- 87, 35,237,130,207, 62, 95,239,118,254,196,238,115,153,233,109,249,212,212,116, 35,161,168,187,133, 5,217,239,232,114,146,226,
-108, 45, 50,165, 82,217, 68,169, 84,182,109,211,166,141,116,206,156, 57,194, 23, 95,124,241,177,100,159, 52, 73,244,251,239,191,
-123,175, 90,181,106,192,173, 91,183,140, 90,173,246,166, 86,171,125,128, 58, 76,180,247,242,114,159, 49,114,248, 96,244, 26, 49,
- 29, 28, 79, 97,210,180,217, 56,117,226,224, 20, 0,127,137,208,178,202, 29, 22,191, 53,121,142,123, 88,199,118,204,162,221,113,
-144,137, 5,232,215, 33,136,122, 99,230, 60,167,237, 27, 22,125,131, 60,244,168,202,147,197,235,139,231,133,184,153, 95, 25, 18,
-222, 24,135,247,152, 95, 65,239, 15, 64,203, 29,151,164, 31,254,248, 62, 0, 52,137,156,169,146,112,154,141, 13,156, 24, 15, 9,
-167,217,216, 36,114,230,233, 7, 39, 55,150,214,100,139, 80, 34, 9,216,179,123,119,115,103,149, 8, 2,154, 2,195, 80, 16, 48,
- 52,140,102, 14, 47,143,122,229, 47,107,230, 50,143,230, 3,232,178,205,178,193, 3,223, 25,114, 19,142,215,165, 78, 40, 70,228,
-122,244,240, 33,129,135,163, 4, 12, 67,129,161, 1,134,166,144,162, 54, 96,226,196, 55, 28,159, 87,176,247,239,234,209,241,253,
-209, 65,253,194, 66, 92,218,252,120,137,114, 12,235, 63,218, 53,207, 40,127,125,239, 47,103, 95, 33,221,102, 95, 33,132, 95,153,
-113,113,253,175, 53,145,152, 76, 38,117,191,200,254, 14,148, 64, 33, 63,253,243,142,238, 2,154,130,149, 35, 96, 57, 2,174,124,
-111, 84,170,252, 13,134,166, 41, 16,158,224,173,183, 38,162, 95,100,127, 61,207,242, 25,182,119,114,244,206,147,167,255,112, 55,
- 89,121,172,218,184,125,145,174, 88,179,232,225,125,215, 20,109,113,222,108, 67,110,130,205,251, 96,208, 32, 29,210, 31,196, 78,
-222,125,244, 50, 66, 90,182, 0,199,151,217, 25,228,171,192,238, 99,151, 17, 28, 20, 92,102, 55, 79, 16,232,167, 68,199, 14, 29,
-129,103,182, 38,179, 85,100,169, 62,235, 49,112,220,194, 65, 47, 79,128,135,187, 59,104, 98, 29,116,250,216,238, 65,223,125,185,
-242,125,214, 88,178,170, 78,100,132,123,244, 92, 32, 60,255,220, 94,167, 6, 13, 26,184,119,236,248, 56, 28, 35,203,178,104,212,
-168, 17, 50, 51, 51,131,234,243,158,230,237,237, 61,112,254,252,249, 30, 3, 6, 12, 16,122,121,121, 1, 0,114,114,114,124, 78,
-158, 60, 25, 58,127,254,252,220,236,236,236, 99,168, 33,162, 15,103,165, 69,180, 0,140, 84, 42, 47,203, 35, 40,122,206,140,215,
-218,120,122, 55,168,114, 35,119,141, 38, 71,252,193,244,179,148, 64, 32, 42, 63, 31, 52, 33, 60, 85,131,151, 40, 66, 40, 20, 86,
- 57, 66, 97, 97, 28,194,136,208,241, 77,154,161,203, 26, 43,107,213, 20,166, 93,111, 81, 7, 79, 92, 43,161, 88,180,101,228,232,
- 9, 93, 94, 26, 49, 20,222,238,142, 56,125,241, 22,166,204,120,215,202, 90,172,107,234,213,121, 48,140, 32, 55, 55, 55,197,217,
-217,217,235,249,159,183, 84,227,223, 78,157,240, 56,125, 38,106,238,234,117, 27,166, 90,204,172,149, 39,228,209, 62,198, 50,153,
- 68,216,103,208, 40, 7,143,166, 97,210, 13,243,223, 20,254, 23,122,180,182,253, 37, 66, 75, 44, 83,141,250,244,131,153,210,197,
-187, 46,227,216,230, 41,121,250,146, 60,247, 71,111, 10, 14, 78,215,117, 37, 69,161,245,177, 80,233, 30, 24, 78, 49,130,201, 20,
-195, 40, 40,154, 18,243, 28,159,206,154,205, 75, 12,249, 9,217,207,155,123,158, 39,248,233,207,220,186, 9, 32,130,102, 59,127,
- 60,228,225,233, 36,129,209,194, 97,244,152,113,248,225,135, 31, 84,238,142, 98, 24,205, 44, 86,174, 94, 93,170, 77, 57,230,145,
-146, 94,152, 25, 49,248,221, 95, 31, 36,231,198,166,101, 27,247,213,213, 54,147,133, 67,137,158,133,222, 68,163,121,171,142, 88,
-185, 38, 88,154,150,250,240,221, 29,223,125,243,246,221,187,204, 15, 60, 67, 47, 52,102,223,171,114,175, 19,185, 87, 72, 63, 7,
-103,215, 61,195, 39,127,238,148,144, 43, 0,129, 5, 73, 14, 82,140,122,253,109,135, 38, 94, 50, 40,164,140,211,195,212, 76,239,
- 57,239,191,127,241, 1, 71, 58,149,104, 30, 60,172,205,158,134, 13, 27,142, 24, 52,104,144,252,189,247,222, 19,250,249,249,225,
-187,221,251, 3,186,245,123,121,112, 86,182,218,143, 16, 2, 79, 15,143,244,183,222,120,249,200,241,227,199, 83,211,211,211,133,
- 43, 86,172,232,124,232,208,161,150, 57, 57, 57, 54,191,153,114,132,192,104,226,192,149, 63, 32, 53,197,166, 58,235, 83, 31, 31,
- 31, 73,102,102,166,169,146,151,129,122,236, 40,164,250,245,238,209, 89,176,245, 68, 50,180, 70, 14, 10,169, 16,201,106, 61, 58,
-180,107, 77,125,205,177,109,171, 34,156, 56,106,224, 60, 79, 37,137, 28, 18,222, 24, 30,206,114,124,187,233,115, 28,190,244, 48,
- 82,173,165,176,145, 48,147,189, 37,130, 62, 10, 62,123,227,139, 29,154,122,245,106, 31,128,107, 29,154,122,157,143,137,139,151,
-189,188,122,102,166, 86,120,186,240,228,219,165, 85,119, 60, 52, 92, 84, 34,108, 63,149, 10,185, 84, 0,133, 84, 0,133,164,236,
-147,166,169,231,123,171,245,110,225,199,240,220, 68,134, 17, 76,124,101,212,203, 13,198,190,242, 50, 1, 67, 99,255, 79, 71,134,
-238,218,181, 51,219,106, 49,127,195,209,204,246,234,218,207, 19, 5, 74, 3, 30,142, 98,188,255, 77, 44, 28,100, 66,168,228, 66,
- 56,200,133,232,213,198, 29, 12, 93,111, 19,157,167, 12,109, 50, 96,202,240,134, 61,131,252,149,205,111, 38, 21,223,157,184, 36,
-122,221,239, 69, 61,223,217,180,182,165,171,182,200, 44,248,108,206, 91,130,140,172,172,158,251,143,156,235,197,153, 39,196,177,
- 22,221,199,154, 91,251,171,244, 10,103,196, 93, 10,245, 9,123, 73,106,209, 90,111,223,140,203,104, 90,104,146,224, 78, 74, 9,
- 20, 82, 1,148, 21,101, 43, 21, 64, 33, 21, 66, 41, 21, 32, 43, 35, 25, 5, 58,230, 98,166, 43,221, 19,231, 46,177,117, 49,220,
-104,225,112,227,161, 22, 13,131,218,193,219,187, 1,204, 3, 94,109,120, 37,234,167, 95,174,158,251,121,153, 62,231,254,199,182,
-242,236, 62,122, 25,115,103, 79,142,161,128,235,229, 15,233,208,207,150,111,110,191,104,238,244, 39,210,230, 44,220,208,190,254,
-158, 44,213,188, 94,195,167, 45,236,214,103, 56, 74, 11,212,248,243,215,125,232, 55,104, 36, 94,157, 48, 11, 78, 78,110, 43,215,
- 44,249,224, 38,107, 42,137,122,166,207,245, 10,126,161,117, 72,139, 93, 62, 13, 26,248,241,124,217, 46, 31,132, 0,218,210, 98,
-124,240,206, 91,224, 9, 65,219,208, 78,189,164,221,250, 16, 82,190, 27, 72, 94,126,158, 46,238,254,221, 8, 99,110,220, 21,155,
-203,210,104,180,106, 52, 26,220,184,113, 3,241,241,241,184,115,231, 14,242,243,243,225,232,232,168,213,233,234, 20,251,205,161,
- 77,155, 54, 99,163,162,162,164,206,206,143, 55,105, 48,155,205, 80,169, 84, 24, 59,118,172,176,111,223,190, 62, 3, 7, 14, 28,
- 31, 27, 27,187, 27, 64, 73,149,246, 20, 36,102,169, 60,131,190,234,241, 98,143,169, 0, 32,115,240,126,184,241,187, 35,119,106,
-124,161,117,108, 16,208,165, 75,215,166, 32, 4, 20,200,122,125,126,124, 78, 13, 94, 34,197,229,203,151,155, 48, 12, 35,120,252,
- 12,226,241,229,183, 63, 6,255,118,225,246,136,229, 43, 87, 73, 29, 20, 18,104,138,205,120,243,213,225, 54, 63,131,101,158, 65,
- 3,186,116,233,254,203,162,133,159, 10,148, 10, 5,126,189,242, 0, 51,223,121,223,152,157, 18,187,138,240,194,205,122, 77,124,
-238,115, 62, 42, 9,254, 2, 52,247, 85, 66, 53,164,159,116,202,107, 67,164,102, 43,135, 34,157, 21, 38, 11, 7,142, 39, 40,214,
- 89,113, 55,173, 20,110, 14,117,223,202,141, 16,210, 17,128, 59, 0, 13, 69, 81,215, 42,127,175,120,161,171,208,198, 79,125,207,
- 43,127, 62,184, 2, 48,163,108,165,254,163,230, 83,254,189,186,244,138,235,239, 2,104, 81,206,201, 1,184, 74, 81, 84, 97, 53,
- 98,235, 25, 47,151,224,232,209,163,100,208,160, 65,143,122,252,167,191, 63, 13,137, 72,216, 64,225,232, 14, 66,238,129,162, 30,
-159,230,225,229,147,191,106,205, 58,151, 25,211, 38,167,150, 20, 21, 4,148, 39,159,182,229, 97, 33,160,152, 53, 61,186,134,245,
-157, 58,109, 26,130,154,248,138, 56,142, 35,177,241, 15,173, 59,182,127,251,250,249, 75,226,117, 37, 25,177,243, 42,185, 32,235,
-180,236,147,227,185,140,167, 61, 88, 28,207, 61,253,118,251,236, 38,213, 20,224,164, 20,227,171, 19,201, 32, 4,160, 64,224,168,
- 16, 98,239,239, 25,120, 24,115,176,100, 80,219, 18,221,216,229, 11,122,245, 28,240,118,212,221, 36,227,190,220, 92,227, 41, 0,
- 57, 53,113, 86,221,161,243, 48, 89, 56, 88, 89, 22, 7,142, 28, 65,100,175,206,232,210,165, 51,186,119,235, 34,136,142,185, 53,
- 97,218,212,183,252,240,120,117,199, 35, 78,169,103,179,142, 74, 71,183,125, 35,166,174, 80,221,206, 96, 33, 96,128,198, 94, 50,
-184,168, 68, 48,179, 20, 82, 52,150,242, 59,199, 9, 51,231, 44,116,153,251,238,212,227, 37, 26,113, 8,112,207, 82, 83,222,245,
-122,189,120,220,184,113, 66,171,213,106, 25,251,230,172,190, 57, 57,154,161, 95,174,255, 66,226,225,225, 9,189,145, 69,204,157,
-196, 22,139, 22, 45,108,124,228,228,239, 63, 47,120,127,202, 47,145,145,145,142, 63,254,248, 35, 95, 91,121, 62,241,134,168,206,
-219,244,237,174, 3, 63,172, 93,181, 20,113,169,133,216,190,117, 51, 8,199,126, 85, 75, 81, 85,230, 36,227,198,141,147,253,252,
-243,207,190, 25, 25, 25, 37,122,189, 94,243,132, 63,130,166, 4,234, 2, 61,220, 84, 98,136, 4, 52, 60,157,165,240,112,148, 64,
-200, 0, 52, 69,113, 85,113,110,223,119,108, 9,175, 47,198,225, 61,230, 87,190,221,244, 57, 38,204,248, 4,177,121,226,147,180,
-220,113,201,244, 87, 70,204,117,151,113,145, 13,156,104,143, 94,237, 27, 66, 33, 21,225,163,183,199,161, 83, 76,138, 71,102, 17,
-255,137,198,192,180, 91,120,242,209,102,221,167,159,116,142,148,121,176, 84,114, 33, 78,238, 90,153,171, 43,214, 20, 87, 12,201,
-153, 77,198, 84, 27,155,241,233, 42,222,108,231,182,107,221,234,243,169,147, 38,210, 93,195, 59, 17,154, 22, 34,175,212, 76, 17,
- 2,188, 51,115, 10,166, 79,121,203, 43, 61, 43,247,179,205,155,191,154, 23,245, 27, 89,172,211,220, 95, 80, 19, 39, 77,149,121,
-129,148, 82, 1,148,178, 50,225,162,148, 10, 96, 52,115,160, 40, 48, 78,254,161,197, 84,153, 39, 55,171, 32,181,218, 55,240, 39,
- 56, 93,252, 91,157,249,237,161, 42,184,112, 95,225,165,228,172, 59, 75, 98,110,169,175, 2, 40,240,235,238, 52,222,194, 18,104,
-141, 44,146,213,122,176, 22, 66, 77,232, 31,128, 70, 47, 81, 65, 75,191,189,254,195,137, 91,112,168,212,233, 63,193,153,121,249,
-128,209, 53,100,248,232,181, 27,182, 94, 91,245,249, 39, 76, 94,177, 25, 60, 33,144,138, 25,200,196,130,242,131,129, 65, 87,140,
-205, 91,190,206, 97, 65,141,192,185,115,108, 93,218, 39,120,242,234,240, 1,221,247, 82,128,152,162, 69, 25, 13, 2, 26, 6,244,
- 30,252,186,180,247,144,113,224, 88,243,220,152, 11,228,172, 62, 55,238,140, 45,156, 33, 45, 91,128, 2,174,235,114,227,167, 0,
-128,194, 35,240,171,224,160,224,246, 79,167, 53,107, 22,212,222,150,122,127,228, 41,149,170,102, 56,187,184,127, 18,212,170,157,
-135,186,208, 68,169, 92,125,145,156,112, 3,123,182,124,182,147, 55,154, 23,158, 57,182,239,243,117,219, 15,141,234, 29, 57, 28,
-223,126,249,197, 71,249,217,143,132,214,233, 74,222,170, 87,119,124,179,205, 79, 40,150,192,202,242,176,114,164,236,147,229, 80,
- 80, 80, 8, 43,203, 67, 42, 87,129,229, 41, 88, 57, 30, 86,150,135,201,204, 42,166,140, 27, 56,205, 8, 92,169,202, 78,159,224,
- 30,167, 68, 18, 73, 0, 65,217,222,181,132, 16, 36,231, 24,104,111,111,239,221, 0, 32,145, 72, 32,145, 72,192,243, 60, 98,226,
- 52, 51,220,130, 2,167,162, 92,224,113, 22,115,106, 81,202, 31,253,170,203,187,151,151,215,224,167, 69,150,209,104,132, 86,171,
-197,133, 75,215, 28,191,249,225, 64,100,114,106, 70, 19,158, 56,154, 84, 30, 77,250,149,230, 62, 24, 92, 93,121,150,170,227,166,
- 57,132,189, 69,191, 55,125,124,179, 13, 59,142, 94, 77, 60,181,164,198,121, 90,141,122,127,104,126,111,242,200, 14,203,215,111,
- 79, 40,252,227,171,217,181,213,145, 64, 32, 16,106, 52,154, 71,247,247,198,175,247,116,184, 30,151, 57,108,221,218,117,210,152,
- 7,165,184,157,156,133,241, 17,254,101,111, 56, 54,212,187,194,179,137, 91,227,166, 77,119,111, 94,191, 92,144,144,101,196,166,
-131, 87, 17,245,203, 87, 23,114,114,175, 68, 66,157,109,168, 79, 31,242, 23, 8,173,106, 57,207,222,202,131,214,200,194,100,102,
- 97,229, 9, 74,244, 86,228, 22,153, 81,162,183, 64,107, 96, 49,190,143,127,149,215,213,162, 71,220, 41,138, 58, 74, 8, 25, 68,
- 8,137, 0, 32,174,248, 94,246,204,166,142,150, 11,178, 39,190,207,157, 59,247,227,101,203,150,221,169, 56,183, 34,189,226,220,
-154,210, 43, 93,239,250,209, 71, 31,133, 44, 95,190,124,105,120,120,248,222, 63,255,252,243, 33,128, 66, 91,135, 15, 5,149, 51,
-115,244,232,209,218, 10,186,137,197,106,145, 56,200,132,104,220,200, 31,111,124,252,173,219,247,203, 39,230, 74,197, 2,230,196,
-137, 19, 46,249,102, 37,104,154,177,249, 21, 69,233,222,188,139, 72, 36, 62,182,122,245,106,188, 50,184,155, 44, 45,207,170,189,
-149,102, 80,235,204, 96, 61,220, 3,197, 75,150, 46, 87, 46, 95,177,114,250,209,195,124,145, 86,125,119,101,213, 67,124, 29,162,
- 25,170,210, 28, 44,138, 2,225,185,140,194,148,107, 29, 0,224,121,230, 98,105,141, 86, 48,229,115,107, 40, 10,208, 27, 89, 48,
- 12,149, 91, 20,183,239,238,216,197, 75,122,237,220,251, 91, 22,161,157, 74,117,186,100, 57,202,246, 28,172, 51,140,102, 14, 38,
- 43,135, 59, 55, 99,208, 61,172, 37,186,116, 8,134,222,200, 65,111, 98,209,168,105, 16, 0,184, 85, 89,113, 12,253,144,112, 86,
- 35, 33,156,106, 80, 71,119,120, 56,137,225,237, 44,129, 68, 44,128,149, 5, 12,102, 30, 70, 51,135,148, 92, 3, 74, 13, 50,180,
-238,241,114, 99, 87,239,104, 83, 78,138,236,231,130,180,232, 17, 53,138, 83,142,195,142,221, 7,154,101,101,169,135, 30,255,121,
-151, 68, 83, 98,197,173, 20, 29,114,139, 76, 0,227,142,249, 75, 55, 73, 62,156, 61,105,216,142, 61, 63,165,246,238,214, 57,181,
-174,121,214,107,226,118,238,219,127,224,171, 65,131,134,201,238, 92, 57,142,132, 27,103, 62,215,229,214,105,126, 22,221,182,109,
- 91,118,210,164, 73,165, 75,151, 46,245, 59,124,248,112, 35,141, 70,115, 3,128,213,201,201, 41, 56,176, 89,192,205, 95, 79,158,
-240, 25, 56,236,101, 97, 70,158, 1,142,114, 17, 2, 60,228,184,116,225,148, 85, 44, 22, 86, 57,223,164,124,120,112, 12,122,127,
-128,195,151, 30, 70,222,201,255, 63,246,206, 59, 60,170,162,109,227,247,217,222,210,123, 2, 9, 53, 33,180, 4, 66,239, 69, 4,
-164, 11,104, 40, 26,148,174,136,138, 40, 32, 40, 32, 32,136,130,116, 20, 1,105,210,123, 15, 45, 52,145,146, 64, 32, 4, 18,210,
-123,207,246,190,123,230,251, 99, 19,164,164,108, 0,191,215, 50,191,235,218, 43, 57,155,205,189,115,218,156,123,158,121,102, 70,
- 28, 53,126,108, 68,122,228,165,135,197,171,183, 69,126, 87,203,193,124, 91,204, 22,174,190,213,186,161,207,204,143,222,193,226,
- 85,219,113, 49,250, 97,129,134,227,187, 40,215, 96, 57, 83,121, 40, 29,224,113, 25, 56, 74,248,208, 40, 11, 21, 73, 49,167, 26,
-189,162, 48,117, 68,228,161,237,156, 18,149, 25,153, 69,122, 38,167, 68, 5, 43, 75,224, 34, 21,192,194, 18,200, 75,138,152, 29,
-219,183,225,230,205,107, 28,112, 57,227, 0,204,171,242,128, 50,182,174, 66, 7, 49,223, 22, 17,146,216,126,154,173, 44,130, 3,
- 27, 98,195,234,229, 78, 30, 94,222,232,220,213,254,220,104, 71,247, 58, 45,118,253,186, 26, 81,191,199,116,191,184, 98, 77, 27,
- 7, 63,207, 85, 12, 99,253, 1, 4,122,131,201, 10,133,188, 20, 66, 99, 38,218,214, 42,132,155,212,138, 52,165, 47,238,229, 37,
- 58, 84, 87,225, 23,223, 59,120,155, 33, 67,230,236, 59,122,126,113,159,215,187,227, 94,154, 18, 18, 33, 15, 98, 33, 23, 98, 33,
- 23,124,198,138,229,235,127, 50,151, 42, 84, 3,138,227, 14, 23,189,192,245,121,182,172,245,107, 51,119, 86,181,231,246, 85,115,
-182,142,255, 98,105,159,190,111,142, 97,238,221,188,240,165, 22, 56,103, 95, 67,143,216,245, 30,203,218,255,140, 19, 59,122,172,
-156, 58, 99,225,212,222, 3,222, 2,151,203,131,217,108,198,254,221,219,241,235,154,185, 15,140,234,226, 49, 0, 88, 99, 1,119,
-194,158,237,235,223,250,226,235,229, 76,243, 22,109,219, 93,200,125,126,121, 79,150,203,252,252,238,216,137,225,222,222,222,142,
-127, 70,180, 8, 26, 5, 55, 69,191, 65,195,112,250,240, 65,220,143,139, 5, 75,108,134,137,101, 9,228,165,197,121, 22,179,113,
- 75,165, 61, 30, 98,113,157,205,191,110, 11,226,112,152,199, 11,200,127,250,193,123,198, 73,159,124,217,185, 95,239,110,113, 66,
- 46,148,105, 25,185, 46,215, 98,226, 67, 88,190,131,255,216,233,203, 5,122,131, 21, 10,173, 25, 39, 54, 85,238,117,196,174, 1,
- 29,234,182,234, 55,118,210, 87, 27, 68, 34, 46,199,212,172,145,127, 74,183,246,205, 50, 3,252, 60, 84,223, 44, 89,211,246,202,
-245,152,126,111,143, 26, 43,142,104,220,138,241,115,151, 56,190, 55,234,205, 80,171,197,244,174,182, 36,179,210,249, 5,249, 82,
- 87,121, 64,189, 64,237,159, 17,163, 70, 7, 24,130,250, 79, 57, 15, 6, 41,186,252,132,161, 0,224,235, 23,160,231,139,156, 84,
- 53,136,192, 16, 0, 88,245,203,206,214,119, 18,114,198,255,248,227, 10,105,116,178, 10,183,147, 21, 16, 9, 56, 48,153, 89, 48,
-118, 6,181, 89,194,157, 56,123,214, 76,167, 82,141, 21, 81,177,133,136,187,117,129, 24,213,250, 81, 82,139,211, 80,120, 57,190,
- 11,160, 33,128, 36,134, 33, 63,107,242,125, 14, 3, 23, 45, 53,189,238, 89,214,214, 94,118,242,108, 80,223,202, 19,245,227, 11,
-101, 29, 24,134, 52, 99, 8, 92, 1,146, 93, 82,246, 76,181,215,169,105,242, 19,176,244,219,175,177,114,227, 65,228, 20,235,225,
-108,205,196,225, 77, 11,241,217,226,223,160, 51, 84,158,213, 80,157, 31,169,200, 24, 61,107,184,202,127, 47,255,220,226,197,139,
- 7, 60,115,110, 6, 84,114,206,158,251, 92,249,255, 47, 89,178,228,219, 39,254,174,181,215,100, 61, 54, 90,229, 59, 85,141,217,
-106,228,233, 91,231,247,195,135, 14,184,150,170, 77, 16, 11,184, 8,168, 23,136,121,171, 15,123,190,209,218, 3, 69, 38,103,236,
-220,240, 67,137, 94,171,218,109, 87,101,225, 21,220, 78,226, 32, 59,113, 96,255, 65, 52, 8,240, 18,236,184, 92,146, 26,147,162,
-123, 28,234, 85, 22,166, 11,235, 57,105,121, 67,223,124, 83,122,238,252,133, 79,212, 64,133, 70,139,203,112,107,255,178,109,191,
-151,163,132, 15,134, 1, 84, 58, 11,198,191, 59,236,229, 31, 99,132,229,142, 29, 19, 1,166,204,100, 41,139,243,240,229,140, 15,
-244, 50,115,226,253,140,180,140,236, 94, 3, 63, 59,167, 84, 51,250,240,119, 62,184,121, 63, 97,113,169, 86,251, 98,139,252, 24,
-140, 86, 24, 76, 44,146,147,147,240,105,196,235,224,115, 57,224,114, 89, 91,178,180,165,242,139, 81,157,147, 80, 2, 31,193,240,
-237,203,166,252,226,231,237,229,238, 32,147, 16, 7,169,136,105,214, 56, 72,208,190,125, 71, 97,189,224, 80,193,229,120, 29, 50,
- 10,117, 72,201, 81, 64,228,221,146, 55,162,231, 27,216,190, 98,122,247,146,140, 91, 28, 60,159,164,248, 20,103,162,254, 24,184,
-113,253,143,162,124,185, 9, 15, 50,212,200, 43,213, 35,183,212,128,188, 18, 61, 28, 36,124,116, 29, 52, 65,116,252,240,207, 3,
- 95,235,210,110,213,139,236,119, 74, 74,234,241,180,236,220,183, 66,195,218, 98,251,214, 95,187,184,184,212,115,146,203, 83,149,
-246,158,157,133, 11, 23, 10,151, 44, 89,194, 91,189,122,181,178,125,251,246, 62,179,102,205,234, 83, 80, 80,112,163,110,221,186,
-193,167, 15,108, 57,223,178,235,224, 54, 96, 77,158, 93,186,245, 16,136, 88, 30, 34,143, 29, 51,237,217,189,163, 88,167, 83, 77,
-170,210,112, 72,157, 23,230,171, 25,120,214,170, 19,144,162, 6, 0, 0, 32, 0, 73, 68, 65, 84, 21,231, 32,180,190,206,227,200,
- 19, 74, 79, 77,221, 86, 10, 28,104,208,247,163,179, 23,110, 61, 76,104, 29,157,230,117, 62,250, 81, 65,137,214,212, 40,249,212,
-103, 85, 86,188, 92,134, 1,159,203,129,163,132, 7, 78, 89,173,234,224, 23,250, 8, 12,227, 89, 30, 57,101,192,148,253, 4, 24,
- 6, 57,165, 25,183,237,200,217, 96, 8, 75,128,135, 89, 26,168,245,182,208,124,109, 15, 41, 10,243,179,176,110,213, 22,196,220,
-186,137,222,111, 12,194,218, 95,118, 96,252,187,111,233,171,107,253,112, 56,101, 17,173, 39,162, 89, 14, 18, 30, 0, 6,114,141,
- 25,251,175,100,162, 97,125,142,221, 15, 6, 0,112,116,144, 66,161,210,129, 35,112, 68, 82,244, 9,233,201, 11,215,103,205, 89,
-240,227,231,165,185,177, 25,143,238, 94, 70,176,135, 2,245,107,153, 16,151,231,132, 91,197,245, 16, 28,216, 0, 28,193, 77,187,
-180,139,226, 66,150, 30,230,236, 31,208,186,101,211, 14,117,188, 92,160, 51, 90,203,162, 90, 92,252,186,121, 27,210, 82,179,198,
- 22,223, 63, 28,243, 42, 28,173,166, 32,165, 80,228, 21,248,225,221,235,231, 82,222, 28,245, 33,124,107, 5,180,144,103,220,182,
-243,225,101,159,169,178,218,105,180, 4, 82,151, 89,159,206,254,110,106,239,254,195,241,199,229,115,184, 29,151,132,118,237,218,
-224,141, 33, 35,160, 82,150, 52,222,187,109,197,235, 22,173,234, 52, 79,100,153,218,182, 99, 79,134,181, 90,145,248,224, 94, 82,
- 69, 90,186,220,135,183,175,229, 62,116,122,170,123,202,163,113, 11, 7,103,183,219, 6,147, 21,217,217, 89,184,250,123, 84,152,
- 46,247, 97,141, 38, 16, 22, 9,184,136,140, 41,128,169,108, 13,211,174,221, 94, 55, 10, 56,134, 46,139,126,220,220, 62, 55, 39,
-151, 35,115,242, 96,221,106, 53, 17,248,138, 76,134, 59,201, 10,129,201,204,162,129,159,172, 74, 77, 79,191,192,111,167, 79,255,
-180, 9, 87, 32,129, 74, 99, 48,230,230,100,251,108,216,121, 65, 29,255,224,110,173,218, 94,206, 78,223,173,248, 89,160,212, 51,
- 40, 80, 24, 80,162, 82, 50,163, 38,126,225,183,113,205,226,209, 85, 25,173, 10,210, 69,234, 31,143,188,220,216,213, 81,192,168,
-245, 22,182, 88,105,178,142, 26,242,114,131, 46,203, 76,214,132, 31,151,175,144,198, 36,171,112, 39, 89, 1,177,128, 11,161,128,
- 3,163,153,133,157,183, 19,199,199,203,103, 82,199,214, 33, 56,125,187, 8, 92, 46, 7, 58, 85,169,150,135,226,132,214,221,123,
- 75, 91,181,109,143, 30,221,187,225, 81,194,195,128, 99, 71,246,191,118,237,234,197, 60,139,169,209, 20, 77, 97,194,193, 26, 5,
- 22,180, 90,174, 89,232,243,158,111,173,186,157,134,142,120,207,185, 78, 64, 45,198,203,195, 29, 22,194,195,132,119,135,217,125,
-231,219,140, 57,176,100,193, 44, 24, 12, 70,120,186, 8, 65, 8,176,121,213, 60, 24,141, 70,248,185,139,160,208, 84,190,154, 92,
-117,126,164,178, 40, 84,141,114, 79,158, 48, 99, 85,189,207, 48,204,177,153, 51,103,126, 9,128,204,156, 57,243,203,242,237,197,
-139, 23,235, 0,228, 84,211,117,184,225, 41,163, 85,190,115,149,223,221,130, 96, 15,119,223,107,145,167, 79, 57, 31,186,195,226,
-143,131,183,208,191,157, 47, 4, 60, 14,164,206,126,184,147,170,192,241, 3,235,229,135,119,253,156,109, 48, 24,190,175,190,175,
- 57,176,181,131, 84,118,122,235,246,221,172,135,187, 59,103, 93,100, 97,114,177,202,242,184, 75, 43,225,250, 17,246,214,233, 13,
-190, 4,204, 41,177, 88, 28,104, 52, 26, 93,171, 59,177,155, 35,211,203,146,120,153, 87, 81,183,130,225,114,173,219,119,108,135,
-135,147, 16, 6, 51,139,153,159,127,172,139,232,237, 32, 31,245,246,136,158, 61,250, 77, 61,207,151, 5,157,235, 24, 22, 68, 90,
-182,108, 41,231,114,185,118,165, 82,120,121,121,205,227,112, 56, 35,133, 66,161,163,209,104, 84, 25, 89,189, 84,163, 55, 66,111,
- 2,180, 90, 61,248, 2,155, 89,228,115, 25,232,244, 70,104,117,198,170,111,140,188,123, 87, 0, 52, 82, 62, 17, 83, 58, 23,223,
- 64,248,219,222,195, 31, 15,127, 59,124, 78,173, 22, 67, 28, 82,115, 21, 16, 48, 38,180,105,226,139, 11,167, 14,146,172,180,132,
- 79,171, 51, 89, 0, 80, 80, 88,226,239,233,233,141,152, 20, 53,178,139,117,200, 43, 51, 89,185,165, 6,168,116, 42,132,214,241,
-131, 92,161,240,127,225,227, 11, 28, 60,125,250,244, 91,253, 6,135, 99,234,231,243, 59,111, 90,255, 67,172, 76,200,127, 95,147,
-159, 24,101,143,209,186,119,239, 94,201,140, 25, 51, 26,254,242,203, 47,156,209,163, 71,235, 66, 66, 66,196,239,188,243, 78,231,
-109,219,182,137,165, 82,177,238,206,229, 35,115,198,125, 52,115,240,134,149, 11, 91,148,150,150, 50, 22,179,249,164,169,180,116,
-166,186, 26, 51,151,121,228,203, 7,115,147, 77, 99, 94,239,226,121,196, 77,202,105, 38, 34,198, 17,104, 50,111, 55,226,231,153,
-146, 79,173, 86, 73,222, 90,246, 81,142,156,157,173,231,120, 45,170,206,100, 1, 0,135,203,192,104,177,194, 81,194, 7,135,195,
- 41, 55,241,190,191,238, 62, 41,245,116, 22,130,207,229,128,199,101,160,212,154, 81,164, 52,225,195,247,236,157, 33,132,176, 22,
- 43,129,206,104,129,182,172,117,168, 82, 22, 97,214,231,211,240,198,192, 55, 49,110,210, 52,148,234,128, 91, 41, 42,152,204,230,
-106,111, 10, 14,195,129,214, 96,193,251,189,235,160, 68,109,130, 70,103,129,209,194, 66, 42,228,129,207,227, 64, 38,230,193, 73,
-202, 7, 8, 17,148, 87, 38,124, 62, 95,111, 54,155,183, 87,209,162, 71, 61,127,111,232,204, 28,180, 13,255, 1,189, 58, 52, 66,
-220,149,253,188,139,127,220,173,255,201,231,179,241,241,248,129,216,247,160, 33,220,188,234,192, 65, 38,129,153,112, 0, 16, 59,
- 19,246,230,177, 28,211,155, 35,127,250,101,243,195,111,190,158, 41,150,107, 24,136, 4, 92,156, 63,119, 22,215,174,223, 90, 89,
-116,255,240,118,188, 66,248,132,227,237,228,228, 4,177,144, 11,163,201, 96,180, 63,117,129,128, 0, 97, 50,175, 70, 63,149,181,
-248,195,172, 44, 42,120,175,122,163,197, 19, 59,205,156,242,249, 55,223,246,238, 63, 28,145,199,246, 97,239,190,221,214, 14,125,
-199,114,119,252,186, 30,157,123, 13, 66,231,222,225, 56,121,112,219, 52, 13,203, 52,157, 48,117,206,130,174, 61,251, 33,242,248,
- 62,228,231,101, 45,179,183,188, 92, 62, 51,181,231,235, 3,161, 55, 90,209,229,181, 1, 56,117,244,224, 71, 40, 27,100, 97,255,
- 67,236,153,250, 25, 28,203,180, 79,167,242, 11,228, 70,126,161,210,136,172, 66, 45, 82,243,181, 56,188,107, 19,177,191,190, 48,
-182,233, 26, 90,155, 63, 97,233,249, 76,255,218,190, 6,190, 65, 39, 73, 72, 74,110, 60,238,189, 8,126,253,192,198,156, 2,133,
- 1,133, 10, 3,138, 20, 6,168,245, 22, 4,214, 14,226,152, 45, 76,135,154,158,103, 15,103, 33,127,237,209, 20, 56,201,248,232,
-216,248,197, 7,218,178, 44,251,167,201,250,209,102,178, 98, 83, 20, 16, 9,184, 16, 9, 56, 16, 9,184,176, 88,137, 93, 13, 23,
-137, 87,163,126, 31, 78,249,192,207,104, 1,138, 21, 70,240,184, 12,188, 60, 92,101,109, 90,140,196,230, 31, 62, 2, 0,140,159,
-177, 14,227,222,127, 7, 77,154,133, 64, 94, 90,234, 51,114,120,191, 31, 1, 28,180,183,172, 39, 34,163, 2, 34, 47,197,204,248,
-112,250, 92,135,183, 7,246,224,222, 78, 86, 32,183,196,128,164, 4, 85,141, 34,111, 0, 96,177,178, 32, 32,216,178,251, 24, 36,
- 66, 30, 10, 21, 38, 16, 66,176,112,245, 30, 56, 74,248,200, 45,181,117,247, 87, 69,149,126,164,138,136, 84, 13,162,141, 3, 96,
-203,229,242,180, 55,162,181,120,241,226,184,197,139, 23, 87, 24, 33,123,194,100,189,216,162,210, 2,129,172,177,147,187,199, 31,
-145,167, 78, 56, 30,188, 99,197,133, 59,197, 24,222,165, 54,212, 37, 25,248,254,243,183, 75, 24, 16, 35,135,203,149, 27,116,218,
- 3, 58,157,102, 17, 0, 83,149, 23,141, 79,163, 48,153,216,225,236,218, 13, 91, 45, 30, 94, 94,216,126,185, 36,171, 84, 99, 49,
-255,217,109,101,102,110,157,222, 80,223,194,154,251,234,243, 31,221,172,174, 37,206, 18, 8, 22,175, 63, 12,128,128,101, 89, 16,
-150, 5, 95,236, 32,243,104,208, 62,191,172,162, 19,243, 56,140,254,201, 26,128,176,150,172,162,148,170,195,160, 12, 0,103, 41,
- 31,187, 47,102, 3, 64, 62, 87, 21, 29, 63,234,109, 91,119,161,222, 40, 86, 54,107,216,144,180,105,211, 70, 46,145,216, 53,253,
- 21,215,219,219,251,198,156, 57,115, 26,143, 27, 55, 78, 36, 20, 10, 97,177, 88,220,126,222,176,129,221,176,104, 60,134,126,180,
- 22, 2,161, 8, 58,189, 9,124, 62, 15,165, 10, 53,228, 74, 45, 84, 90,115,205,175,160,228,100, 99, 33,176,244,208, 65,225,155,
-125, 28, 66,219, 10, 57, 2,180, 10,246,197,133,211,135,200, 31,167, 54,143,215, 21, 36,108,181,243, 66,132, 90,111, 70, 78,177,
- 30,217,197,122,228,149,234,145, 87, 98, 64, 94,169, 30, 12,195, 64,111,180,188,212,131, 75, 83,240,112,239,246,173, 27, 7, 25,
- 76, 24,209,181,247,155,152, 54,119,109,157,237, 63, 45, 57,155, 66, 56,157,236, 76,180,181,198,197,197,165,189,247,222,123, 45,
-118,238,220,201,109,222,188,185, 46, 62, 62, 94, 90,102, 34, 77, 14, 14, 82,201,166, 53,139, 79,183,109,219,118,119,118,194,131,
-115,101,253,233,213, 86,236,117,186,141, 17, 73, 76, 49, 19, 2,100, 29,251, 52,240,145, 34, 64,166,234,211,216,225,206,247,197,
- 61, 63,254,182,240,252,202,130, 92,131,229, 76,161,142,219, 50, 91,205,183, 43, 7,207,108,208,167, 15, 29, 62, 2, 92,134, 3,
-147, 94,155, 94,126,113,121, 57, 11, 49,111,199, 3, 56,136,249,112,148,240,224, 32,225,163,115, 83, 55,212,160, 62, 35,102, 43,
- 11,173,193, 10,157,193, 2,189,209, 2, 15,127, 87,252,178,125, 47, 50, 10,116, 56,124,179, 8, 15,211, 85, 8,170, 45, 3, 33,
-213, 87,147,172,213,172, 25, 56,108,180, 35,151,195,128,203, 97, 56, 77, 27, 55, 66,137,218, 4, 1,143, 3,129, 88, 2,153,136,
- 7, 39, 9, 31, 2, 1, 31, 5, 5, 5, 48, 24, 12, 8, 8, 8, 16, 87,109, 5, 9, 28, 29, 36, 8,170,239, 7,147,217,130, 19,
-151,238, 99,209,167, 67,241,122,215,214, 96,248, 14,120, 96, 8,131,163,155, 35, 88, 14, 7, 38, 11, 11,163,201, 10,128,163,175,
- 76,207,223,223,191,167, 76, 38,147,105,181, 90, 85, 70, 70, 70, 84,222,195,131, 25, 86,238,224, 9,167, 34,207,111, 31,240,198,
-235,136,137,141,195,190,131, 71, 46, 23,185, 43,166,151,255, 79,179,102,205,218,123,120,120, 56, 20, 23, 23, 43,239,221,187,119,
-227, 69,219, 5,132,195,249,164, 67,231,238, 80,203, 11,144,159,153,106,119, 43,186, 73, 29, 71,124,181,120,109,171,224, 70,193,
-173,172,196,102,188,154, 6, 56,226,179,185,171, 90, 53, 12,106,212,170,124, 64, 72,147,128,170,167,101,227, 73, 29,123,191, 59,
-110,218,226, 65,195,199,224,124,228, 17, 44, 95,244,249,118,153,179,103, 19, 55, 87,231,150,205,219,247,198,229,179, 71, 32,118,
-244,129,171,187, 79,231,209,239, 79,233, 53,124,244, 68, 92,187,124, 22, 43,151,124,185,205,106, 80,253,102, 79, 89,101, 94,245,
- 61, 91,132,181, 29,229,232,230, 13,185, 66, 5, 71, 87, 47, 52, 9,109, 51,234,254, 29,195, 12, 77, 65, 74,225, 11,155, 14, 66,
- 96, 48, 17,148,170, 77,200, 44,212, 33, 45,207,102,180, 88,182, 6, 57, 65, 86,150,113, 16,243,120,110,230, 71, 1,119,207,158,
- 39,117,252,189,153,165, 11, 62,231,154, 32, 70,161,220,102,178, 10,149, 70, 20, 42,140, 80,235,205,112,147,241,192, 90,217, 26,
-183,186, 75,213, 38, 56, 74,249,112,150, 10,236,142, 50, 86,196,250, 95,119, 7,223, 73,200, 25,178,124,249, 10,233,237,148, 39,
- 76, 22,223, 22,205, 18, 9,184,176,178, 44, 96,199, 29,207,231,241,167, 14,238,215, 11,153, 69, 58,219,168,101, 14,131,160,144,
-182,240,144,176,120, 45,124, 38, 0, 96, 96, 63, 91,106, 91, 74,174, 6, 71,255, 40, 4,158, 78,236,174,186, 46,214,233,184, 27,
-118, 28,255,100,239,158, 93,206,122, 43, 15, 63,159, 76,131,214, 96,129, 88,192,133, 72,192,133, 68,192,125, 42, 31,187,122,163,
-101,203,185,203, 40, 50, 67,171,215, 67,169, 51,131, 0,184,241, 72, 13,157,209, 2,133,198,140,246,141, 93, 95, 46, 16,194, 48,
-199, 9, 33,253,159, 53, 68,207,154,165, 39, 34, 82, 21,105,220,124, 82,163,252,243,149, 25,185, 39,115,182, 0,212,104, 4, 23,
-239, 89,231,248,228,182, 64,230,218,196,217,209,249,143, 83, 39,143, 57, 28,188,195, 34, 42,214,102,178,204,186, 34, 44,155, 49,
- 50, 75, 41, 47,234, 1, 32,217,222, 47,147,122, 52, 9, 21, 11, 69,231,191, 91,241,179,201,203,187, 22,123,224, 15,121,129, 66,
-107,125,202, 77, 88, 13, 6, 14, 97,137, 64,159,255,200,174, 62, 4, 14,135, 49,205,253,232, 77,176,132, 96,222,138,189,248,118,
-122, 56, 28, 36,163,165, 12,195, 72, 53,122, 11, 62,157,191, 17,203,190, 26,235, 40, 21,241,192, 48,182,156,168,119, 71,188,105,
-223, 5,168,183, 32,233,250, 78,181, 42,229, 88,252,147,221,133,237, 58,191,113,171, 93,187,118,114, 87, 87, 87, 72, 36,146, 63,
- 35, 21,149,224,237,237,253,213,220,185,115,131, 39, 77,154,244,120,178, 79, 30,143,135, 15, 63,248,128, 99,181, 18,156, 60,185,
- 25,158,117,195,112,228,204, 31,232,219,179, 13,212, 90, 61, 74,228, 42,176,224,190,240,133,168,146, 23,157,207, 75,187,219,182,
- 83,143,129,136, 58,125,136,252,113,114,211,248,154,204,209,227,234,230,154, 25,125, 55,169, 9,195,184,217, 34, 90,101, 38,203,
-104,102, 81,199, 91,138,204,180, 36,184, 56, 59,103,218,171, 39,241, 12, 30,204,112,200, 36, 6,100,179, 38, 63,113, 47, 0,162,
-201,141, 31,185,247,183, 13,177,113,247,110, 47, 26, 48,106, 42,175,247,240, 15,184, 63, 45,158,242, 37, 0,123, 39,222, 51, 61,
-124,248,240,254,216,177, 99, 59, 94,187,118,205, 10, 64,203, 48,140,153,203,229, 74,141, 70,163,160, 71,143, 30,138, 7, 15, 30,
- 68,161,226,164,197,167,232,252,222, 94, 15, 70,164,122, 67,200,154, 70,214,113, 84,189,222,163, 75, 7,116,104,230,143,204, 46,
- 29, 0, 96,106,186,218, 33, 88,223,112,227,110,179, 69,114,226,167, 95,143,126, 59, 62,188,215,167,219,121,243,150,231, 30,155,
- 87,101, 34,106,102,252,197, 62, 21,217,120, 30,151, 3, 71, 9, 31, 14, 18, 30, 28, 37,124, 56,138,249, 48, 91, 72, 77, 90,142,
-196,108, 97,109, 17, 45,163, 5,106,157, 5,231,111,231, 35, 79, 97,132, 92,101,130,206,100, 5, 1,177,181, 70,237,168,205, 11,
- 31, 93,117, 41,127,146,186, 4,132, 41, 54,172,254,193,105,255,149,172,199, 35,250,156,165, 66, 56, 74,109,163,177, 47, 93,186,
- 4,119,247,234, 91,251, 44,203, 98,223,169, 27, 88,190,229, 60, 78,109,254, 2, 98, 1, 23,161,131,231, 99,204,144,118, 96, 9,
-139,164,135,113,249, 65, 77, 91,120,115, 56, 18,112, 24, 6, 6, 51, 11,128, 84,122, 60,141, 70,163,123, 70, 70,134, 50, 48, 48,
-208,199,207,207,111, 56,151,203, 37, 80,221, 54, 28,218, 85,162, 61,119,236, 55,169, 70,103,176, 74, 45,138,205,129,185,186,254,
- 8, 12, 4,195, 48,196,201,201, 73,112,254,252,121,117, 72, 72,136,231, 11,222, 74, 28,137, 87,163,149,227, 38,127, 50,188, 97,
-131, 6,216,251,219,102, 16,194,236,183,247,159,119, 28,189,134, 5,179,158, 30, 97,248,217,220, 85,173,150,205,159,250,212,123,
-147,103, 45,175,114,212,161, 68,228, 48,125,232,200, 9,184,117,227,119,124, 63,255,179, 93, 6,117,201, 24,179,197,252, 86, 73,
-110,202,174,250, 77,219,129,152, 84,136,220,243, 3,194,223, 25, 47,234, 61, 96, 56,174, 93, 62,139,111,191,156,188, 67, 43, 47,
-120, 15,118, 38, 57,179,132, 63,169, 71,159, 33,124,157,193,132, 85, 75,191,198,196,233,139,208,190,231, 64,254,189,219,127, 76,
- 2,240,141,221,233, 16, 38, 43,122,132,120,216,204,179,153,197,145, 20, 46,175,162, 43,144,199,101, 56, 45, 27,184, 64,103,180,
- 64, 89, 77,163,146, 39,224,231,201, 21,202,186,107,190,253,132,171,209, 91, 80,168, 48,162, 64, 97, 64,145,252, 79,131, 85,164,
- 48,160, 80, 97, 4,159,199, 32, 33, 57, 29, 28, 62,175,198,249,121,165,106, 51,218, 54,114,181,221,163, 47,216, 59, 98,230, 57,
-181, 59,117,241,206,208,229,203,127, 20,223, 73, 85, 33, 54, 69, 89, 22,201,226, 66,196,231, 64, 88,246,187,149,181,229, 70, 86,
-133,147,103,131,250, 17,239,142,126,205,201, 65,130,156,196, 2,240,184,182, 41, 98,156,189,252,225, 44,210, 99,202,228, 9,240,
-112,119, 65, 70,145, 1, 43, 15, 38, 32,246,254, 35,176,186,154,237,246,170,159,119,245, 29,247,225,103, 46, 28,190, 16,219, 78,
-167,218,202,201,181,226,193, 31, 71,245, 57, 73,119, 53,106,101, 49, 1,177,218,153,131,204, 16,139,213,118,185,125, 59,111, 38,
-118,109, 89,135,211,209, 5,143,175,192, 43,251,151,225,147, 89, 11, 81,164, 52,162,162,235,178, 42, 63, 2,160,240,137, 72,212,
-115,219, 79,152,163,138,182,153,178,109, 99, 37, 26,198,103,204,149,241,153,247,141,207,232, 85, 52,247,223,134,106,187, 14,159,
- 51, 69, 46,158,205,165, 98,217,239, 39, 79, 30,149, 29,138, 37,143, 77,150, 73, 91, 68, 22, 77, 29,152,165,148, 23,246,174,145,
-201,242, 12,106, 46,146,138, 46,206, 89,184,210,224, 93,171,174,229,196,109,101,177, 74,111,181, 60,159,131, 32,179,202,156, 61,
-245, 60,161,104, 57, 95,103,252,186,168, 40, 94, 83, 93,228,137, 37, 4,199,174,231,129, 16, 91, 19,105,207,165,108,148,181,204,
- 97,101,109,221, 42,103,110, 23,128, 87,150,135, 98,111,248,123,253,207,235,148,253, 67, 20,154, 81,223,206,123,220, 93,216,190,
-133, 45,146,229,228,228, 4, 23, 23, 23, 56, 56, 56,160,186,174, 67,134, 97,222, 29, 55,110,220,115,173,255,130,130, 2,244,122,
-173, 7, 86,175,251, 5, 45, 94,139,192,153,171,167, 97, 50,179, 8,109,218, 0,117,253, 92,145,153,175,122,161, 27, 93,230, 29,
-252, 97,219, 30, 67,190,236,220,115, 32,206,159, 58, 64,254, 56,245,235,132,154, 78,132,216,191, 87,199,163, 11, 22,204,171, 63,
-103,209, 26,145,163,152,135,120,181, 17, 28,134, 65, 29,111, 41,220,101, 28, 68, 29,218,166, 15, 31,216,209,238,201,241,252,253,
-107,109, 95,182,122,131,108,217,146,249, 61,110, 69, 51,231,213, 57, 9, 37, 0,160,205,127,184,244, 1,112,191,246,239,145, 39,
- 90,116,123, 19,222,126, 13, 94, 79,201,127, 96,183,217, 0,160, 77, 78, 78, 78,153, 51,103, 78,240,146, 37, 75, 8,151,203,101,
- 1,136, 86,172, 88,161, 77, 76, 76,188, 13,219,208, 92, 84,247,176,121,237,245,102,159, 58, 8,173,237,221,164,156,102, 13,124,
-164,232,208,204,214, 43, 26,222,191, 51,252, 3, 2,144,156,167,109, 89,162,101,249,106, 35,183,193,218,159, 99,111,214,243,224,
-142,183,232,140,247, 1, 28,174,233,249, 97,240,103,130,124,121, 52,203, 81,194, 7,107,187, 86,106,100,180, 12, 38, 43,116, 6,
- 43,116, 70, 11, 52, 70, 43,180, 70, 43, 88, 98,187, 39, 24,134,129,201,194,194,174,102,243, 51,215,190,147,155, 7, 26,212, 99,
-224, 36,181,149,205,169,108,186, 7, 6,128,187,187, 59,188,188,188,236,138,138, 26, 77,182, 91,220,104,102, 31,119,235, 27, 77,
- 22, 16, 66,144,144,240,240,139,180,148,148,193,129, 65,129, 93,155,134,182,112,147,138, 56, 0, 80,169,209,210,106,181, 86, 71,
- 71, 71, 47, 55, 55, 55, 78,118,118,246, 99,243, 28,216,178,135,229,224,129,253, 24, 58,244, 77,117,252,141, 59,143,135,184,235,
-116, 58,166, 83,167, 78, 78,254,254,254, 28,131,193,160,172,233,105,146,121, 54, 26,226,234,238,182,232,221,247, 38, 54,234,209,
-171, 47, 46,156,139,196,225, 3, 59,183,106, 11, 19, 34,237, 21, 9, 14,110,252,220,168,195,134, 65,141,158, 27,117, 88,183,126,
- 80,149, 70,171,105,104,155,118,132,225,225,244,177, 61, 68,207, 49, 77, 6,192, 90,245,170, 61,187,215,127,245,205,200, 73,179,
- 26,246, 27, 52, 18,239,190, 51, 6, 60, 30, 23, 81,103,142, 98,217,252,105,199,213,138,130, 8,123,210, 4,108,161,183, 38,130,
- 90, 18,255,143, 3, 26, 54, 71,244, 31,151,145,148,112, 47,238,206,205,107,205, 2, 67,218,195,211,175,206,199,233, 30,220, 37,
-136,143, 55, 85, 39, 99,212,235,211,199, 68,188,131, 39, 71, 29,118, 8, 11,118,103,158,189, 1, 0,104, 85, 5,166, 77, 63,124,
-154, 88, 62,234,144, 53, 25,211, 43,211, 85,148, 22,238,139,186,122,125,250,224,254,125, 57, 69, 74,163, 45,130,165, 48,150,189,
- 12, 40, 42,255, 93,105, 64,144,159, 3, 30,198, 69,179,122, 69,209,254, 26,222,151,250, 49,111,245,185, 95,126,237,178, 44, 1,
- 3,232,107,220, 45,197,119,154,176,244,251,229,226, 59, 41,106,196,166, 42,109, 93,133,124,174,205, 96,241, 57,143, 77,151,109,
- 52,123, 53,209, 33,134,251,237,251, 17, 35, 80,164, 52,129,101, 1, 30,151, 83,246, 18, 32, 67,197, 32, 83,165, 69, 81,105, 33,
- 82,210,210, 33,207, 75, 2,135,195,129,135, 95, 35,187,103,146,182, 18,161,175,214, 72, 66,134,247,239,202, 59,240,123, 46,164,
- 34, 30, 12,170,124,156,220,253, 67,161, 65,173, 92,164,211,170, 15,216, 51,159,227,159, 41, 8, 76,161, 82,173,247, 22,241,185,
-216,187,101, 13,222, 26, 51,249,169,218,247,139,217, 11, 0, 14,131,146, 82, 21, 24,134, 41,172, 89,189,196,220,172,106,251, 5,
- 35, 99, 47,173, 81,129,217,122,190,161, 80,121,107,148,156,140, 60,117, 84,118, 37, 77,132, 27, 15,115,203, 76, 86, 33,187,240,
-163,254, 89, 42, 69, 73, 31, 0, 9, 53,107, 23,114,250,132,191, 63, 61,174, 65,163,166,134, 11,247,212,169,114,141,185,210, 60,
-135, 14,195,231,196,221, 58,190,186,159,194,156,252,129,204,183,169,149,181, 88,150,234, 10, 19,230, 87,210,117, 40,156,191,114,
-239,227,110,195, 25, 75,182,217,126,183, 90, 97, 37, 44, 8, 11, 76,249,106, 61, 44,172, 21,172,213, 10,214, 74, 96,182, 18,105,
-117,197,245,242,171,123,160,244,193,158,198,163,190,121,190,187,208,197,197, 5,238,238,238,112,119,119,135,147,147, 83,181, 70,
-139,207,231, 59,240,120, 79, 31,234,244,244,116,164,165,165,193,201,201, 9,132, 53,195,104, 6,154,183,239,141,187, 73,247,112,
-246,202,109, 16,214, 10,153, 67,205, 87,121,145,121, 7,127,208,166,251,224, 53, 61, 7,141,197,153, 3, 63,147,155,151,142, 78,
-212, 21, 36,108,180, 59, 66,111,181, 50,102,179, 25,253,123,119, 79,143,137,123,116,106,246,244, 73,125, 59, 14,152, 40,234, 16,
- 92, 11,122,163, 21, 89,105, 73,136, 58,244,171,190, 81,125,223,211,175,117,105,151,110, 54,155, 97,181, 90,171,125,144,235,141,
-166, 34, 46, 95, 34, 27, 49, 98, 20,255,230,141, 27,251,101,158, 65,123,173, 12,231, 14, 67,216, 80,134,144,161,161,161, 77, 96,
- 50,179,208,106,149,165, 53,221,103,149, 74,149,178,121,243,230,250, 17, 17, 17,210,166, 77,155,242,147,146,146,176,108,217,178,
- 98,149, 74,149, 98,175, 70,228,165,135, 43,120, 76,105, 98,121, 68, 43,163,115, 7,140, 24,208, 25,187,142, 95, 65,212,229,107,
- 72, 87, 59,220, 86, 91,120,135, 50,211,115, 12,205,220,148,251, 7,117,168,203,221,187,165,116,127, 92,247,153,111, 19, 34,138,
- 44,186, 56, 79, 99,255,205, 13,168,116,102, 56, 73,109,243, 61,149, 71,182,184, 12, 99,183, 35, 98,128,148,203,215,162,155,183,
- 14,106,138,152, 20, 5, 10,228, 6,232, 12, 22,176, 44, 1, 11, 2,119, 71, 33,196, 2, 14, 50,210, 82,192, 18, 83,106, 13, 31,
- 21,133,221,186,118,227, 1, 12, 24,134,240,248, 60, 30, 8,108,243, 43, 74, 36, 18,181,151,151,151, 93, 17, 45,147,197,130,161,
-125,219,161,125,155, 80, 12,158,104,155, 51,243,220,214,153,112,117,224, 99,215,246,141,200,188,180, 98,123,253, 14,147, 34,239,
-221,141, 27, 22, 23,243,251,168, 55, 90, 73, 90,250,240,114, 4,149,133, 73, 53, 26,205,126, 0, 66,129, 64,208,183,107,215,174,
-110,251,247,239,151,123,120,120,176, 66,129,160,112,208,192, 1, 44, 95, 32, 40, 41,255,236,213,171, 87,249, 19, 39, 78,116, 44,
- 45, 45,205,200,207,207,191, 6,192, 92,117, 67, 48,184, 23, 56,216, 9,134, 17, 59, 72,164,233,245,234, 53,240,107,211,190,157,
-243,144,161,111, 65, 36, 20,225, 76,228, 41,172,250,113,201, 30,117,110,252,251, 53, 57,146,175,106,212, 97, 86, 70,106,138, 86,
-103, 8,105,222,186, 59,115, 57,242,208, 84, 19, 60,126,228,138, 76, 63,244, 26, 58,185, 97, 74,142, 26,171, 22,127, 1, 87,103,
- 25, 82,147, 30,232, 18,227,239,174, 55,235,149, 95,216,109,178, 0, 72,139,173,195, 58,188,211,215,213, 96,178,226,210,249,227,
-122,214,194,246,189,118,241, 68, 82,237, 70,109,196,205,219,188,230, 90,116,120,227, 80, 45,176,171, 58,157,236, 7,207, 71,112,
-137, 81,158,122,238,252, 89,103,239, 58,205,184, 12, 24,152, 12,122, 20, 38,223,180,104,243, 31, 40,149,217,247,236, 26,133, 91,
-156,137,175,102,205,253,238,131, 54,173, 91,203, 8,196, 79, 69,176,202, 13, 86,145,210, 8, 15, 71, 33,116,202, 66, 36,222, 60,
-165,215, 22,114,171,156,239,204, 98,212, 72,139, 10,242,133,127,166, 51, 36,180,175,234,243, 69, 5,249, 66,139, 81, 35,173,254,
- 81,199,133,147, 76,136,187,169,217,143, 19,223, 69,124, 91,110,150,144,207,125,156,167, 85, 94, 23, 84, 67,119,129,216, 5,217,
-197,122, 48, 32, 96,173, 22, 88,204, 70,168,148, 74,100,231,228, 33, 63, 47, 31, 42,149, 28, 82, 7, 87, 52,111,217, 22,142, 50,
- 49,238, 68,237, 1, 33,196,174,121, 13,205, 12, 63,184, 77,251, 46,162,123,105,182, 92, 44, 49,159,224,232,206, 37,197,106,101,
- 65, 23,117,110, 98, 98, 77,235, 98,139,213,122, 54,246,126, 98,179,218,190,245,152,219, 73, 10,108,255,101, 53,140,101,145, 77,
-179,217,138,123, 25, 26,228,150,104,145,145, 28, 79, 88,171,245, 44,254, 35,240, 42, 15, 0,130, 23,218,188, 9,122,143, 30,130,
-117,235,214, 35, 57, 37,141, 93, 52,181, 95,134, 90, 37,127,163, 6, 38,171, 23,202,230,218,208,230, 63, 92,170,115,109,147,117,
- 36,166,132,163, 51,146, 42, 19,124,196,158,117,208,229,253,101,167,117,170, 18,161,213,160,229, 29,221,254,254,206,138, 52,109,
- 14, 26,198, 69,159,133,195, 65,194, 3,195, 48, 40,239, 46, 92,187, 96, 2,164, 34, 91,223,178,206, 96,193,232, 79,151, 99,251,
-242,105, 32, 0, 70,190,117, 69, 91, 89, 57, 97, 91,187,112,138, 47,110,212, 78, 79, 43,200,238, 53,240,179,115,122,147,200, 48,
-224,205,136, 91,173, 91,183,150, 75, 36, 18, 72, 36, 18, 56, 57, 57,193,213,213, 21, 46, 46, 46,213,238,187,217,108, 86, 27,141,
- 70,119,161, 80, 8,150,101,145,154,154,138,212,212, 84, 40, 20, 10, 20, 22, 22, 66,163, 86, 90,110,156,219,203,107,222,161, 31,
-252, 26,132,160, 78, 80, 11,240,185, 12,120, 60, 14,162,142,252, 82, 89, 57, 43, 54, 89,221, 6,173,125,109,240, 56,156, 57,176,
-129,220,188,116,116,146,174, 32,225, 23,123,207, 81, 89,119,207,157,161, 67,135,134, 76,156, 56, 81, 48,119,250,196,211,199, 35,
-163, 18,246, 30,219, 48,176,180, 84,238, 79, 8,129,139,179,115,102,248,192,142, 71,123,116,106,147,126,238,220, 57,118,231,206,
-157, 6,134, 97,238, 86,165,105,171,164, 10,182,158, 59,123,126, 94,151,110,221,177,113,203,206,110,113,247,227,187, 37, 37, 37,
-194,191, 78, 3,212,171, 31, 4, 45,227,138,243, 23, 47, 67, 45, 47,216,106, 79, 57,159,137,106, 49,165,165,165,191,135,135,135,
-247,190,114,229, 10, 39, 60, 60, 92, 91, 84, 84,116,245,137, 40, 22,169, 78,243,218, 79,111, 22, 2,216, 90,167,219,152, 61,217,
- 38,249,199, 0,150, 4,212, 9, 64,212,229,107,184,118,229,250,250, 34,105,192,252,247, 71,191, 55,161,238, 32,238,184, 65, 29,
-234,114,189, 92,165,248,109,195, 50,238,145,107,105,203,211,138,173, 27,151, 92,156,183,192,158,115,244,248,193,161, 50,161, 83,
- 19, 55,152,173, 4, 44,177, 85,184,142, 98,126,101, 21,239,115,154, 60,163,232,253, 73, 19, 39, 38, 53, 15,109,249,201,232,247,
- 38, 9, 90, 54,240,199,141, 71,114,128, 97,224,230, 35, 67,110,110, 46, 46,237,219, 96, 41,205,126,176,158,203,101,191,169,193,
-241, 68,105,250,237,192, 39, 54, 39, 20, 21, 21, 33, 42, 42, 10,229, 6,203,211,211,179, 50,163,245,148,102,113,126,206,213, 5,
-223,255,220,105,252,187,111, 98, 64,247,102,184,120, 51, 9,198,178,249,154,202,135,146,167, 92,251, 73,248,113,120, 3,227, 7,
- 67, 27, 41,117,102, 97,218, 87,169,138, 75,176,173,193,202, 86, 82, 78, 99, 73, 73,201,145,135, 15, 31,118,110,209,162, 69,221,
- 19, 39, 78,148,196, 93, 63, 61,245,201, 66,124,246,217,103, 14,235,214,173,147, 18, 66,174, 26,141,198,100,187,246,157,131,223,
-162,111,221,114, 55,153, 89, 92,190,126,167,201,107,157, 90,130, 37,192,205,155, 55,177,113,211, 70,253,221,216,219, 63,104,242,
-125,190,169,194,188, 84,120, 60,173, 47, 55,234,240,177,102,110,118,218, 15,103,142,239,219,222,166,219, 64,140,154,242,205, 55,
- 81,199,119,206,107,213,101, 0,167, 73,155,222,136,190,118, 30,103, 79,156,250,206,164, 46,153,135,234,115, 71, 42, 44,167, 72,
- 34,253,168,105,171,110,200, 72, 79, 67,106,226,189,173,250,146, 71, 57,233, 73,220,173, 57, 89,233,147,234, 55,235,132, 43,167,
-119, 77,173,194,104, 85,121,205,251,123, 74, 54,156, 56,118,100, 68, 86,214, 79, 62, 26,157, 94, 68, 8,209,139,132,188, 60, 7,
-142,106,183,210,238,114,198,155, 10,115,234, 14,125,107,244,164,227,171, 86,253,200,247,118,145, 34,175, 84, 15,165,206, 4,149,
-214, 4, 14,195, 32,208, 79, 6,173,170, 4, 23,247,125,111, 54,170, 75,195,129, 36, 83,101,154, 50,175,224,133,165,143,206, 79,
-249,108,242, 5, 8,157,253,253,234,245,156, 85,101,180, 78,149,125,123,224,103,147,143, 6, 19, 66, 94,147,121, 5,171, 52, 5,
- 15,231, 84,182,239, 12, 99,187,191, 71,245,240,135,201, 98,155,127,204,194, 2, 86,150, 45,139,242, 1,228,113,127, 62, 83,205,
-190, 51,236,238,227, 87,145,147, 47,135,206,104,134,193,104,129,201,108, 5,135,203,133,139,171, 11,130,234,133,193,217,197, 9,
-249,121, 57,184,118,238, 8, 18, 98, 47, 94,101, 8,230,235, 10, 19,207,217,115,142, 4, 18,151, 96, 95, 63, 31, 78,174,210, 8,
-137,144,139,219, 23, 79,152,204, 70,195, 15,118,154,172,231, 52,229,197, 37,203, 63,153,254,249,200, 95, 55,111,241, 9,169,239,
-132,172, 34, 29,178, 10,245, 80,233,205,101, 70,140,133, 65, 93,132,216,243, 91,242,172,122,213,114,252, 71,168,212,104, 89, 76,
-122,213,254, 83, 55,220,103,206,251,158,251, 40, 41,217,188,240,227,254, 89, 58,181,178, 95,141, 35, 89, 79,240,235,135,245,119,
-253, 21, 59,241, 92,119, 33, 97,193, 18,130,163,215,243, 30,119, 23,178,101,153,151, 49, 73, 85, 47, 35,248,228,218,133,221,251,
- 77, 61, 19,251, 80,181, 67,167,203,119,126,240,232,135, 82, 0,224,114,185,143, 95,229,185, 89,122,189,222, 88, 77, 23,202,182,
- 95,126,249,101,198,164, 73,147, 68,153,153,153, 72, 74, 74,130, 92, 46,135, 88, 44,198,169, 83,167,204, 96, 45, 63,196, 94, 57,
-152,250, 48, 58,242,235,224,214,189,107,135,116,232, 7,169, 84, 6, 30,177, 63, 25, 83,234,213,104, 68,235,110,131,214,188, 54,
-100, 60,206, 30,252,133,220,188,120,100,178,174, 48, 97, 67, 77,143,165, 92, 46,143, 3,144,248,195, 15, 63,180,220,184,113, 99,
-253,233,211,167, 39,111, 91, 51,111, 21, 0, 20, 23, 23, 3, 0, 98, 98, 98,200,228,201,147, 13,122,189, 62,165,180,180, 52, 26,
-213, 12,128, 0, 0, 93,161,244,219,141,107,151, 52,207,204,206,125,179, 65,243,182,240,172,223, 22, 62,129,237, 80,170, 50,225,
-198,163, 28, 36,199,159, 67,252,229,125, 39,180, 14,150,121,168,225,252,198, 45, 90,180,240,231,112, 56,245,212,106,181, 79,211,
-166, 77, 91,200,100,178,152, 22, 45, 90,132,241,120,188,172, 91,183,110,165,213, 68, 43,253,226, 22, 67,157,110, 99, 86,166,171,
- 28,123, 36,231,105,195,210, 85,142, 49, 90,145,243,180,194,243, 43, 13,191,114,107, 45, 39,166,162,184,189, 91,148,251,127,219,
-176,140, 59,122,194,103,214,123, 10,215,143,121, 18,225,153,154,133,171, 57,185, 31, 68, 12,254,115,122,135,178, 72, 86,217,239,
-118,133,233, 21,138, 88, 5,128, 25,177,247,249,107,238,125, 60,113, 65,104,155, 78,239,116,125, 35,156, 99, 17, 56,224,244,193,
-159, 72, 74,236,249,189, 60, 98,157,173,179, 99, 53,128,106,187,131,140, 70,123, 76,214,243,101,204,148,117,223,187,115,211,152,
-253, 7, 15, 44, 30, 50,104,176,251,218,175,222,198,247, 63, 31,130, 76, 34, 2, 97, 89,188,221,195,127,248,215,227, 26, 15,244,
-247, 22,215,218,127, 33,235,210,148, 31,239,205,208,106, 77, 9,118, 68, 98, 72, 81, 81,209,101, 7, 7,135,194,206,157, 59,183,
- 23,137, 68, 76, 81, 81, 17,207,203,203,203,226,236,236,108,204,202,202,210, 26, 12,134,253, 0,106, 52,237,184,201,204, 34, 53,
- 95,143,195, 7,246,227,206,245,115,136,143,127,168,138,191, 31,191,154,225,145, 31, 53,249,137, 37, 64,141, 27,248, 96, 43, 28,
-117, 72,106, 60,234,208,106, 80,253,182,109,253,194,158, 90,189, 97, 76,139,142,253, 81,183, 73, 39,142,201,108,197,221,155, 23,
-112, 97,223,143,223,155,212, 37, 51, 95,230, 28,251,213,174, 31, 68,184, 66,252, 30,117, 28,132,101,215, 3, 0, 97,217,245, 49,
- 87, 78, 76,106,215,111, 28,220,188,234,182,144,103,196, 48,120,129,217,195, 5, 60,142,230,228,254, 95, 15,166,166,166,226,193,
-131, 7,120,244,232, 17, 74, 74, 74,240,219,111,169, 53, 58, 63,218,210,180, 51, 9,247, 57,125,134,189, 61,234,232,240, 17,239,
-138,235, 7,133,112,130,107,187,194,221,129,135,135,143,210,144,112, 43,150,125,120,227,132,222,164, 44, 24,162, 43, 77,171,212,
-248, 73, 61,154,120, 3,214,153,229,107, 23,118,232,208, 41,248,243, 69,139,219,187,123,122, 85, 88,143, 23, 23, 22, 8,191,152,
-114, 36,248,218, 31,191,219,181,214, 33,107,181, 22, 79, 24, 19,206,114,109, 11,133,226,113,156,186,236,232,217, 26, 83,182,247,
- 9,107,169, 54,130,255,222,155, 93, 96, 97, 89,104,116, 38, 40, 53, 6, 40, 84,122,228, 22, 20,227, 78,108, 44, 46, 30, 61,130,
-164,135,119, 82,204, 70, 99, 36,135,195,236,211,229, 39, 92,172, 89, 79, 19,175,190,187,155, 27, 82, 74,212, 16, 11,121, 72, 75,
-184,101,208, 40, 21, 59, 94,244, 58,210, 21, 39,230, 22,112,153,222,225,225, 35, 78,245,236, 51,200,185, 77,199, 94, 82, 15, 39,
- 23, 8,120, 4,137,169, 57,136,190,122, 74,147,124,231,146,210,108, 84,247,125, 21,171,190,252,205,169,126,212,161,201,160, 25,
- 56,114,112,183, 3, 92, 46, 79,200,178, 22,131,201,104, 24,246, 50, 38,235,175,130, 16,107,214,152,145,111, 62,213, 54,176,176,
- 68, 50,242,173,211,186, 39,219, 10,102, 43,145,142,124,235,170,214, 86,129, 84,158,216,231,235,235,214,191,124,237,194,244,244,
-226,155, 37, 37,134, 11, 0,178,244,122,253, 11,151, 49, 63, 63,127,193,162, 69,139, 6,104,181,218,198,221,187,119, 23, 57, 57,
- 57,161,184,184, 24,145,145,145,230, 99,199,142,221, 47, 40, 40,248, 26, 40,176,232, 16,182, 53, 86,127, 48,226,225,173,200,175,
- 27,183,238, 83, 59,164, 99, 63,251, 43, 51,145,100,124,207, 65, 99,153,179,135,126, 33, 55,162, 14,125,160, 43, 76,252,249, 37,
- 14,171, 73,175,215, 95,215,235,245,247,102,207,158,221,198,219,219,219,251,235,175,191, 22, 43,149, 74,254,218,181,107,245, 69,
- 69, 69,121, 74,165,242, 26,170,200,167,121,158, 24,179, 34, 27, 67, 79,238,255,165, 7,217,255,203,235, 46, 30,181,122, 59,123,
-214,110, 40, 47,204, 78, 81, 20,230, 68, 2, 56, 91, 54, 81,100,141,104,217,178,101, 3,134, 97,194, 1, 52,151,201,100,129, 14,
- 14, 14, 34, 66, 72, 99,134, 97,226, 88,150,141,109,218,180,233,177,251,247,239,215,104, 50,217,244,139, 91, 12,254,193,157,118,
-150,104, 89,129,145, 35,216,153,126,113,139, 1, 0, 10,206,124,174, 5,112,248,126,247, 25, 67,143, 92, 75, 91, 21, 87,234, 60,
-181, 48,106,241,145,154,150, 89,145,117, 39,240, 85, 93,255,250,220,251, 89, 0,198,196,222,194,178,187, 49,215,230, 50, 4,124,
- 43, 44, 11,117, 5,143,110,189, 10,125, 62,159,175,175, 85,171, 86,133,163, 11, 69, 34,145,222,108, 39,159,116, 0, 0, 32, 0,
- 73, 68, 65, 84, 96,168, 42,128,114,209,162,206,197, 70,160,219,150, 3,123,182,140, 57,116,228,240,226,174,175, 13,113, 23,215,
-174,141,122, 94, 12,182,204,108, 53,245, 92, 76,225,141, 65,159, 95, 90,151,156,163,143, 69, 13,243, 97,212,106,117, 2,128, 82,
-181, 90, 61,152, 16,146,201, 48,140,127,105,105,233,109,179,217,124,183,198,134,128,197,168, 14, 29,218,254,198, 48, 12,143, 88,
-216,165,215,248,220,157,250,220,248, 44,188,228,178, 36, 33,245,156,240,233,215, 43, 91, 53, 12,108,212,170,124,173,195,102,117,
- 29, 49,113,198,178, 86,117,235, 7,181,250,115,253,195,106,211, 4,136, 89, 91,250,254,129, 77, 75, 47,197,252,113,225, 75, 15,
-223,186,117,243,178,146,227, 51, 31,221, 94, 96,213, 43, 15,188,236,121, 78,125, 20,247,227,198, 31,102, 76,207,205, 78,217,168,
- 45, 76,188, 7, 0,218,194,196,123,241,209,248,170, 40, 47,107,122,113, 65,242, 15, 47,122, 44, 52, 26, 77,206,142, 29, 59, 92,
- 58,117,234,196,241,246,246, 70, 97, 97, 33, 46, 92,184,192,178, 44,155, 93, 99,173,146,148, 11,154, 18,198,109,235,207,107,150,
- 10,100,142,253, 44, 22,139, 31, 33, 0,143,199,203, 53,106,149,167, 84, 28,217,231, 40, 77,211, 87,253,204, 96, 25, 0,156,242,
-181, 11, 89,150,101,150,174,218,146,198, 23, 59, 86, 56, 25,162, 89,175,146,178, 44,107,247, 90,135,242,140,232,134,175,234,254,
-102, 8,153,223,162,117,251, 47,205,102,147,190,236,254,208, 3,208, 19,130, 98, 14,135,185,200,101,205,167,149, 47,209,152, 98,
- 24, 56, 17,134, 7, 71, 9, 15, 12, 24,168, 21, 37,164, 38, 57, 89, 21, 26,226,130,132, 56,109, 65,183, 58, 39,141,123, 34,206,
-159, 57,241,150,213,106,173, 87, 22, 51, 72, 53,232, 52,123,213,185,174, 91,129, 91, 22,252,251, 57, 94,110,182,152,191,248,139,
-236,234, 70,249, 59,105, 6,215,151, 12,174, 93,203, 59, 34, 53,173,224, 70,114,166,118, 43,158, 94, 86,231,101,202,201,245,246,
-246,254,138, 97,152,119,132, 66,161,131,209,104,212, 16, 66,182,229,231,231, 47,192,115,139,255,134,241, 37, 94,186, 8,161, 88,
- 58,199,164,215,252,174, 45, 72, 24, 85,221,190, 75, 61, 27,245, 22,203,100, 51,244, 58,205, 54,109,126,194,150, 87,124, 60,157,
- 69, 34, 81,152,131,131, 3,191,168,168,232, 58, 0,197,223,233,188,183,104,209, 34,128,195,225,212, 99, 89,214, 27,128, 51,108,
-163, 66,138,120, 60, 94,118, 89, 68,139,212, 84,179,243,123,123, 61, 94,123,189,217,167,145,151, 30,174, 40,235, 86,124, 76,173,
-225,203,197,239,244,235,241,217,214, 3,135, 43, 26,117,248,143,187,230,255,255, 52,187,241, 28,124,139,198,112,132,206, 11, 95,
- 11,214,107,139,114,178, 39, 95,190, 91,120, 29,128,234,101,202, 41, 16, 8, 70,155, 76, 38,137, 64, 32,208,153, 76,166, 29,127,
-151,125,151,120, 5,143,229,128,216,189, 50, 5, 11,230,214, 51,131, 86,254, 45,215, 18, 55, 36, 36,164,139, 64, 32, 8,176, 90,
-173, 82,163,209,168,213,233,116,169,105,105,105,191,163,242,133,207,255,210,114,202,188,130,126, 20, 8, 68, 31, 3,128,201,100,
- 88,169, 41, 72,252,180,170,127,172,226,243,255,232,115,228, 81,175,117, 34,143,203,247, 68,217,196,220,172,197, 82,152,159,114,
- 51,232,127, 88, 78,202, 11,158, 92,170, 73, 53,169, 38,213,124, 22, 14, 61,158, 84,243,127,169, 41,246,109,226, 47,246,109, 98,
-247,164,203,149,124,158, 30, 79, 74, 57, 19, 42,120, 1,176, 99,194, 82, 10,133, 66,249, 11, 96,233, 33,160,252, 47,209,231,198,
-103,254,149,159,167,252,231,168, 52, 39,154,169,194,149,214, 36, 36,248, 34,206,246, 44,213,164,154, 84,147,106, 82, 77,170, 73,
- 53,255,115,154,213,105,255, 19,187, 36, 39, 60,179,125, 28,192,255, 75,194, 63, 13,171, 82, 77,170, 73, 53,169, 38,213,164,154,
- 84,243,191,198, 99,227,197,161,199,130, 66,161, 80, 40, 20, 10,229,175,129,230,104, 81, 40, 20, 10,133, 66,161,188, 28, 21,117,
- 29, 82,163, 69,161, 80, 40, 20, 10,133,242, 10,168, 52, 25,158,118, 29, 82, 40, 20, 10,133, 66,161,188, 28,229, 17, 45, 95, 60,
- 51,189, 3, 53, 90, 20, 10,133, 66,161, 80, 40,175,134, 92, 84, 20,221, 58,118,236, 24,169,232,119, 10,133, 66,161, 80, 40,148,
-255, 15,254,225, 94,228,201, 72,214,132,178,109, 0, 79, 68,180,168,193,162, 80, 40, 20, 10,133,242,119, 49, 91,255, 48,202, 35,
- 89,229,175,220,231,140,214,128, 1, 3, 24,106,182, 40, 20, 10,133, 66,161,252,175,248, 55,122, 17,206,179, 59, 72, 79, 51,133,
- 66,161, 80, 40,148,255,165,217,250, 55,237, 15,157,222,129, 66,161, 80, 40, 20, 10,229,229,240, 5,208,255,137,237,255,183, 37,
-120, 40, 20, 10,133, 66,161, 80,254,237, 76,168,108,155, 70,180, 40, 20, 10,133, 66,161, 80, 94,189,217,162, 80, 40, 20, 10,133,
- 66,161,252,147,161, 43,155, 83, 77,170, 73, 53,169, 38,213,164,154, 84,243,223, 78,249, 60, 90, 64,101,243,104, 81, 40, 20, 10,
-133, 66,161, 80, 94,136,254,176,205,159, 53,161,236,103,127,106,180, 40, 20, 10,133, 66,161, 80, 94, 45,207, 45,191, 67,141, 22,
-133, 66,161, 80, 40, 20,202,171, 53, 88, 27,168,209,162, 80, 40, 20, 10,133, 66,249,139,161, 70,139, 66,161, 80, 40, 20, 10,229,
- 47,130, 65,229, 35, 7,206,214, 64,231, 69, 70, 31,156,165,154, 84,147,106, 82, 77,170, 73, 53,169,230,127, 78,179, 58,237,179,
-248,231, 81, 62, 51,252,113,252,153, 8,191,225,255,227,139,233,208, 87,170, 73, 53,169, 38,213,164,154, 84,147,106,254,219,153,
-240,204,207,199,208,174, 67, 10,133, 66,161, 80, 40,148, 87,107,182,232, 18, 60, 20, 10,133, 66,161, 80, 40,175,136, 74,187, 9,
-105, 68,139, 66,161, 80, 40, 20, 10,229,229,168,116, 81,105,106,180, 40, 20, 10,133, 66,161, 80,254, 26,195, 69,141, 22,133, 66,
-161, 80, 40, 20,202, 43, 52, 89, 19, 42,252,235,177, 99,199, 8, 61, 70, 20, 10,133, 66,161, 80,254, 87,252,107,189, 72,249,142,
- 81,179, 69,161, 80, 40, 20, 10,133,122,145, 26,227,139, 63, 71, 27, 78, 40,219, 6, 64, 71, 29, 82, 40, 20, 10,133, 66,161,188,
- 44,253,241,244,200,195, 9,229,219,212,104, 81, 40, 20, 10,133, 66,161,188, 60, 19,170,252, 43,237, 54,164, 80, 40, 20, 10,133,
-242,191,228,223,232, 69, 24,122, 90, 41, 20, 10,133, 66,161, 80, 94,138,138,162, 89, 27,232, 97,161, 80, 40, 20, 10,133, 66,249,
-107, 13, 23,133, 66,161, 80, 40, 20, 10,229,175, 48, 89,127,245,132,165,116,101,115,170, 73, 53,169, 38,213,164,154, 84,147,106,
-254, 87, 76,214,147, 83, 60, 0,160,163, 14, 41, 20, 10,133, 66,161, 80, 94, 22,186,168, 52,133, 66,161, 80, 40, 20,202, 95, 4,
- 93, 84,154, 66,161, 80, 40, 20, 10,229,255,217,112, 81,163, 69,161, 80, 40, 20, 10,133,242, 10, 77,214, 83,102,139,230,104, 81,
- 40, 20, 10,133, 66,161,188, 28,149,230,104, 49,168,124,228,192,217, 26,124,193,139,140, 62, 56, 75, 53,169, 38,213,164,154, 84,
-147,106, 82,205,255,156,102,117,218,103,241,207,103, 2,254,159, 38, 44,165, 67, 95,169, 38,213,164,154, 84,147,106, 82, 77,170,
-249, 95,131, 78,239, 64,161, 80, 40, 20, 10,133,242,170,141,213,179, 80,163, 69,161, 80, 40, 20, 10,133,242,114,208,121,180, 40,
- 20, 10,133, 66,161, 80,254, 34,124, 97,139,106,149,255, 12,163, 70,139, 66,161, 80, 40, 20, 10,229,213,208, 31,182,168, 86,249,
- 79,106,180, 40, 20, 10,133, 66,161, 80, 94, 33, 21,206,163,197, 0,192,177, 99,199, 72,217,118,247, 1, 3, 6, 92,164,199,138,
- 66,161, 80, 40, 20,202,255, 39,255, 86, 47,242, 56,162, 53, 96,192, 0, 6, 64, 20, 61,213, 20, 10,133, 66,161, 80,254, 23,252,
- 27,189, 8,231, 25, 39,217,157,158,102, 10,133, 66,161, 80, 40,255, 11,254,141, 94,132,247,140,139,164, 80, 40, 20, 10,133, 66,
-249,159,240, 15,246, 34,190,176, 37,194, 31, 47,251, 9,148, 77,249, 64,231,209,162, 80, 40, 20, 10,133, 66,121, 57,202, 71, 27,
- 62,183,244, 14,141, 98, 81, 40, 20, 10,133, 66,161,188, 28, 21,205, 12,191,129, 30, 22, 10,133, 66,161, 80, 40,148,191, 16, 26,
-209,162, 80, 40, 20, 10,133, 66,121,121,158,140,106,253,191, 69,179,232,202,230, 84,147,106, 82, 77,170, 73, 53,169, 38,213,252,
- 47,153,172,167,182,233,204,240, 20, 10,133, 66,161, 80, 40,127, 17,116,212, 33,133, 66,161, 80, 40, 20,202,203, 81, 62,226,240,
-201,109,106,180, 40, 20, 10,133, 66,161, 80, 94,161,217,122, 14,218,117, 72,161, 80, 40, 20, 10,133,242,114, 76,168,236, 15,212,
-104, 81, 40, 20, 10,133, 66,161,252, 69,134,139, 65,229, 35, 7,206,214, 64,248, 69, 70, 31,156,165,154, 84,147,106, 82, 77,170,
- 73, 53,169,230,127, 78,179, 58,237,179,248,231,241, 63,155,176,148, 14,125,165,154, 84,147,106, 82, 77,170, 73, 53,169,230,127,
- 22,218,117, 72,161, 80, 40, 20, 10,133,242, 55, 48, 90,158, 60, 30,239, 75,137, 68,178, 78, 34,145,252,204,227,241,126, 0,224,
- 90,211, 47,148,201,100, 83,125,124,124, 30,248,248,248,100, 5, 4, 4,156,112,116,148,126,210, 64,132,174, 0,248,175,104,127,
-130, 1,124, 34,145, 72,226,197, 98,113, 26,128,237, 0, 62, 1,224,241, 50,194, 11,252, 48,236,222,199,131, 15, 45,240,195,176,
-103,254,212,223,219,219,251, 50,128,222,175,234,164,140,144,162,215,112, 25, 50,134,203,144, 49, 66,250,226,173, 6, 71, 71,199,
-119,124,125,125,175,185,187,187,103,251,250,250, 94, 21,139,197,195,107, 40,225,229,237,237,253,189,191,191,127,130,159,159,223,
- 10,216, 86, 39,255,219,210, 69,132, 46,237, 69, 40,236, 32,132,170,147, 16,235, 58, 8,241,250,235,128,244, 5,229, 58, 3,216,
-231,228,228,116,155,199,227, 29, 3, 48,180,236,250, 26,202,227,241,142, 57, 57, 57,221, 6,176,175,236,115, 47,114,157,126, 15,
- 32, 27,192,183,101,219, 31,249,251,251,171, 66, 67, 67,211, 66, 67, 67,127, 13, 12, 12,124,215, 94, 49,169, 84,250,186,191,191,
-255,254,128,128,128,180, 14, 29, 58,148,212,170, 85,235, 97,237,218,181,183,136, 68,162,238,180,138,163, 80, 40,148,191, 63, 3,
- 1, 44, 6,176, 58, 54, 54, 54,154, 16, 18, 77, 8,137,142,141,141,141, 6,176, 14,192, 18, 84, 30, 66,124,234,125,119,119,247,
-249, 11, 23, 46,212,231,230,230,146,194,194, 66,146,144,144, 64,126,156, 51,131,237,227,198, 35, 13, 60, 93,181,190,190,190, 73,
-117,106,215,222,213,204,129, 51, 3, 64, 67,123, 52,159,192, 85, 34,145, 92,159, 51,103,142,250,242,229,203,106,163,209,168,102,
- 89, 86,157,147,147,163, 62,123,246,172,186, 83,167, 78,106, 0,159, 2,224,214, 64,243, 49,223,248,225, 34,217,244, 21,249,198,
- 15, 23,159,124,191,113,227,198,247, 89,150, 37,195,134, 13, 51, 0,168, 85, 19,205,103,169, 5,136,155, 57,193,101,184, 3,242,
- 45, 91, 22, 16,178,118, 58, 25, 46, 67,198,139,104,122,121,121, 29,158, 58,117,170, 50, 59, 59,155, 24, 12, 6,146,145,145, 65,
- 38, 78,156,168,240,242,242,218, 97,231,190,187,135,132,132,228, 95,187,118,141,149,203,229, 36, 42, 42,138,109,222,188,121,190,
-157,102,171,215, 51,101,217,224,231,231,119,162, 38, 47, 47, 47,175,141, 53, 61, 71,237, 68,200, 48, 69, 95, 32,228,102, 36, 57,
- 50,172, 3,249,177,117,109, 50,212, 77, 40,239, 44,196, 71,221, 42,158,202,164, 50,205,183,186,117,235,166,185,123,247,174,181,
-184,184,152,220,191,127,159, 29, 63,126,188, 30, 64,220,248,241,227,245,247,239,223,103,139,139,139,201,221,187,119,173,221,186,
-117,211, 0, 24, 87,131,114,114, 0,108,158, 55,111, 30, 33,132,144,133, 11, 23,146,208,208, 80,210,179,103, 79,162, 86,171, 9,
- 33, 36,141, 16,242,171,197, 98, 25, 99,143,166,179,179,243, 59, 83,167, 78, 85,107,181, 90, 82, 14,203,178, 68, 46,151,147,213,
-171, 87,107,124,124,124, 78, 84,210,200,160, 93, 30, 84,147,106, 82,205,191,155,230, 63, 25, 95,216,242,180,202, 95,118, 7, 38,
- 70,206,152, 49,163,220, 84,157,236,220,185,243,141, 49, 99,198, 68,143, 25, 51, 38,186,115,231,206, 81, 0, 78,223,186,117, 43,
-250,139, 47,190,136, 6, 48,178,154, 19,225,218,177, 99, 71,121, 94, 94, 30, 9, 10, 10, 34,117,235,214, 37,121,121,121,132, 16,
- 66,110,190,213,138,156,107, 2,146,121,233, 36,137, 60,184,143,140,247,229,145, 46,190,206,102, 95, 31,159, 98, 15, 15,143, 69,
-120,122, 77,198,138, 78,238,155, 77,154, 52, 81,197,197,197,169, 19, 19, 19,213,243,231,207, 87,247,236,217, 83, 29, 18, 18,162,
- 30, 58,116,168,122,213,170, 85,106,147,201,164,222,184,113,163,218,201,201, 41,174, 2,179,245,194, 70,139,199,227,173,140,141,
-141, 37, 73, 73, 73,164, 44, 74, 81,153,166,179,139,139, 75, 95, 87, 87,215, 79, 93, 92, 92,250, 2,112, 6,128, 32,192,161,133,
- 51, 2, 62,106,209,160,241,177,145,189, 26,174,238,213,166,213,112, 71,142,220,188,102, 58, 33,195, 2, 94,200,104, 57, 59, 59,
-191,243,201, 39,159,168, 12, 6, 3,209,106,181, 68,173, 86, 19,173, 86, 75, 84, 42, 21, 25, 57,114,164, 82, 44, 22,191, 89,157,
-166,135,135,199,130, 75,151, 46, 89,242,242,242,200,165, 75,151,200,137, 19, 39,200,218,181,107, 89, 47, 47,175,229, 53,189, 1,
-125,124,124,206, 68, 70, 70, 70,199,196,196, 68, 95,191,126, 61,218,108, 54, 71,155, 76,166,104,147,201, 20,125,236,216,177,232,
- 3, 7, 14, 68,239,222,189, 59,218,104, 52, 70, 27,141,198,104,131,193, 16, 93,191,126,253, 83, 53, 61, 71,109, 69,200, 52, 94,
- 62, 66,200,242, 15,137,226,187,201, 68, 62,173, 31, 41,152,216,149,172,107, 83,155,116,149,224, 40,158, 95,219,179, 66, 77, 62,
-159,127, 49, 45, 45,141,157, 53,107,150,177,105,211,166,138,247,223,127, 95,111, 48, 24, 8, 33,132, 24, 12, 6,242,254,251,239,
-235,155, 54,109,170,152, 53,107,150, 49, 53, 53,149,229,241,120,103,107, 80,206, 37,229, 38,235,226,197,139,228, 73,212,106, 53,
-233,217,179,103, 90,104,104,232,175,245,234,213, 27, 85,157,166,131,131,195,224,153, 51,103,170, 73, 5,152,205,102,162, 82,169,
- 72,106,106, 42, 91,183,110,221, 28, 0,238,180, 50,167,154, 84,147,106, 82,163,245,151, 49,161,154,237,138, 15,226, 23, 95,124,
- 17, 77, 8,137,158, 61,123,118,116, 89,100, 75, 0,192,161,236,197, 3, 48, 98,230,204,153,209,132,144,232, 25, 51,102,148,127,
-166,178, 19, 49,112,239,222,189,166, 21, 43, 86, 16,111,111,111,226,227,227, 67, 86,174, 92, 73, 88,150, 37,121,199,118,144,115,
- 77, 64,226,191,140, 32,132, 16,146,176,104, 10, 57,215, 4, 36,121,253, 55,100,244,232,209, 90,169, 84, 58,178,138,147,235,214,
-170, 85, 43,149, 78,167, 83,111,217,178, 69, 45,149, 74,111, 2,104, 10, 91, 87, 36, 83, 86,214,119,155, 54,109,170,188,119,239,
-158,122,231,206,157,106, 0,243,237,188, 96, 26, 2,232, 33,147,201,134,206,172,197, 79, 36,155,190, 34, 51,189,113, 23, 64,115,
- 0,158,101,159,241,155, 49, 99, 6, 33,132, 16,127,127,255, 75,149,104, 58,135,132,132,204, 72, 76, 76,156,107, 54,155,231,198,
-196,196,204,109,212,168,209,172, 65,245,125, 59, 28, 26,249,122,152,226,155,201, 97,100,217,180,144, 31,222,104,219,107, 87,120,
-247,145,239,213,243,184,252,190,151, 88,251,182, 51, 87,245, 76,215,161, 93, 23,118,173, 90,181,174,103,100,100, 60, 54, 87, 42,
-149,138,100,103,103,147,148,148, 20,114,249,242,101,226,235,235,123,174, 58, 77, 31, 31,159,251, 25, 25, 25,100,253,143, 63,146,
- 97,205, 27,147,174, 46,142,164,155,171, 35,105,237, 32,214, 52, 1, 90,215,212,104,221,190,125, 59, 26, 64, 52,128,232,226,226,
-226,232,226,226,226,232,210,210,210,199,239, 1,136, 86, 40, 20,209, 10,133, 34,218,104, 52, 70, 55,104,208,160,198, 70,171,147,
- 24,157,218,137, 81,210, 65, 4,221,192, 90, 30, 57,147,235,123, 88,255, 24,217,129,148,126,216,147,172, 8,171, 69, 58, 11,241,
-145,157,154, 3,133, 66, 97, 20,128,233,101,166, 60,162,111,223,190, 90, 66, 8,233,219,183,175, 22, 64, 68,217,251,159,148,153,
-172,190,118,150,147, 19, 24, 24,168, 41,143,100, 1,248, 61, 48, 48, 80, 19, 26, 26, 74, 66, 67, 67,137,191,191,191,170, 76,219,
-174, 10,173, 97,195,134, 9, 58,157,238,177, 1,148,203,229, 36, 39, 39,135, 36, 39, 39,147,184,184, 56,114,243,230, 77,146,150,
-150, 70,246,236,217, 99,117,113,113, 57, 78, 43,115,170, 73, 53,169, 38, 53, 90,127,169,209,122,246,245, 52,199,142, 29, 35,207,
-188,245,221,173, 91,183,162,103,206,156, 25, 93,141, 51,155, 48,123,246,236,242,168,215,226, 42, 30,254, 27, 19, 18, 18, 72, 68,
- 68, 4, 9, 14, 14, 38,193,193,193,100,204,152, 49, 68,161, 80, 16,245,163,123,228, 92, 19,144,155,111,183, 38,132, 16,162,138,
-143, 33,231,154,128, 68,143,238, 72,238,220,185, 67,106,215,174, 29, 89,197,247, 31,189,122,245,106,225,142, 29, 59,242, 96,203,
-199,226, 3,104, 15, 96,165, 68, 34,217, 12, 91,119, 97, 93, 0,174, 65, 65, 65, 37, 90,173, 86, 61,108,216, 48, 53,128,128, 42,
- 52,187, 5, 7, 7, 39,109,220,184,145, 20, 20, 20,144,146,146, 18,178,180, 83, 35, 66, 54,125, 69, 22,182,174,203,174, 95,191,
-222, 48,125,250,116,141,155,155,219, 49, 0,126,195,134, 13,179, 16, 66, 72,215,174, 93,243, 43, 18,115,113,113,233,155,152,152,
- 56, 87,175,215,207,149,203,229,115, 75, 74, 74,230, 30, 57,116,104,110,159,230,141, 34, 20,223, 76, 14, 59, 52,242,245,176, 55,
-106,185, 14, 93,222,187,205,164,236, 89,227,134,205,238,216, 52, 94,191,228,227, 11,111,213,247,254,254, 69,206,182,167,167,103,
-174,193, 96, 32, 0,158,123, 37, 37, 37, 17,119,119,247,140,234, 52,220,220,220,102,127, 50, 34,220,250,102,221, 90, 36,105,197,
- 28, 98, 62,179,147,152, 79,108, 33,143,190,155, 70, 6,249,120, 40,219, 11, 56, 51,237, 45,143,143,143,207,153,235,215,175, 63,
-101,180, 74, 75, 75, 43, 52, 90, 74,165, 50,218,104, 52, 70, 7, 6, 6,158,122,217,171,190,189, 16, 13,186, 73,184, 55, 99, 34,
-186,144,194,201, 61, 73, 95,103,126,218, 75,200,141, 0, 16, 5, 96,116, 13,255,143, 3, 96, 73,185,161,250,238,187,239, 8, 33,
-132, 4, 6, 6,106,240,114,131, 81,156, 27, 55,110,156, 50,110,220, 56, 75,147, 38, 77, 10, 58,117,234, 36,191,113,227, 6,185,
-120,241, 34, 57,113,226, 4,217,183,111, 31,185,119,239, 30,201,206,206, 38, 9, 9, 9,164,127,255,254,114, 0,221,104, 93, 72,
-161, 80,254,206, 84,224, 69,254,241,112,202,119,108,192,128, 1,204, 19, 59,232, 12, 64,220,186,117,235,194, 37, 75,150, 44,131,
-109, 46, 8, 38,132,139,183,122, 74,120,119,122, 74,120,119, 66,184,120,171, 44, 98,180, 97,209,162, 69, 11, 66, 67, 67,115, 1,
- 72, 0,248, 84,244, 69,132,144, 46,238,238,238,200,200,200,128,179,179, 51,156,157,157,145,145,145, 1, 66, 8, 44, 4, 48, 19,
-192, 96, 50, 65,167,211, 65,207, 18,232, 88, 64,169, 86,195,199,199, 7, 38,147,169, 65, 37,229,111,241,246,219,111, 55, 8, 9,
- 9, 41,252,226,139, 47,114, 96,203,149,217, 60,118,236,216, 51,191,255,254,123,136, 90,173, 46,137,139,139,211, 55,111,222,188,
- 47, 0,159,196,196,196,119, 86,175, 94,141,136,136, 8, 84,241,208,105,222,191,127,255, 19,247,238,221,107, 48,122,244,104, 68,
- 69, 69, 97,233,210,165, 40, 42, 42, 34, 0, 96, 48, 24,136,213,106, 53,117,236,216,209,180, 98,197,138,182, 93,187,118,189, 94,
-191,126,125, 46, 0,164,164,164, 60,170, 72,144, 97,152, 70,117,234,212,129,193, 96, 64, 97, 97, 33,238,221,187, 7, 71,103,103,
-196,230, 20,121,119, 95,190,190,248,203, 67,103,248, 35,218,134,184,125,250,122, 39,195,183,145, 81, 65, 77,253,188,189,141, 38,
-179, 79, 66,110,126,206,139,156, 84,129, 64,144, 81, 84, 84, 4,163,209, 8,157, 78, 7,165, 82,137,226,226, 98, 20, 21, 21, 33,
- 39, 39, 7, 2,129, 32,169, 58, 13,167,146,146, 75, 41, 87, 47, 50,123,126,250, 14, 13, 44, 37,224,237, 95, 9,222,225,117,104,
-104, 44,196,207,115, 38, 58, 26,221, 61,231, 57, 57, 58,150,186,184,184,108, 0, 16, 88,157, 94, 88, 88, 24,138,139,139, 81, 92,
- 92, 12,119,119,119,184,186,186,194,213,213, 21,114,185, 28, 10,133, 2, 74,165, 18, 65, 65, 65,104,209,162, 5,182,109,219,246,
- 74, 46,238, 63,140, 72,182,192, 58,249,204,195, 28, 8,100, 50,212,119,117,168,211,198, 1,110, 85,252, 75, 79, 62,159,191,215,
-205,205, 45, 18,192,135, 0,100, 0, 62,116,115,115,139,228,243,249, 67, 0, 44, 4,176,163,134,197,248,118,222,188,121, 51, 18,
- 19, 19,165,119,238,220,193, 23, 95,124,129,249,243,231,227,209,163, 71,107, 0,176,101,159,249,192,221,221,253, 24,135,195,249,
- 5, 64, 63, 0,125,125,125,125, 95,171, 70,119,200,244,233,211,245,173, 90,181, 74,136,143,143, 31,114,245,234,213,214,211,166,
- 77, 83,164,167,167, 35, 33, 33, 1,190,190,190,240,247,247,135, 90,173, 70,105,105, 41,134, 12, 25,226,236,228,228, 52,146, 86,
-227, 20, 10,229,239,108,178,158,241, 34,255,180,136, 86,133,219, 21,182,168,165, 82,233,188,232,232,232, 14,161,161,161, 60, 0,
-123, 0, 32,132,139,225, 67, 58,182,220,124,104,195,119,161, 7, 86,204, 9,237, 19, 26,180, 57,132,139,242, 81,108,199, 90,183,
-110,237, 26, 29, 29,221, 81, 36, 18,125, 84, 73, 33, 8, 0,184,186,186,194,217,217, 25, 46, 46, 46,112,117,117, 5,203,178, 80,
-107,245,208, 88, 1,149,222, 8,133, 66, 1, 85,217,182,218, 96,130, 70,163,121,252,191, 21,208,125,220,184,113,133,171, 87,175,
- 46,200,205,205,253, 14, 64,243,136,136,136,193,171, 86,173,194,249,243,231,245,253,130, 27,186, 47,234,210,114, 65,211,220, 71,
-115,131,249, 24, 15,224,210,165, 75,151,208,177, 99, 71, 48, 12, 19, 94,145,160, 68, 34, 89,183,107,215, 46, 73, 92, 92, 28, 26,
- 54,108, 24, 23, 30, 30,254,214,119,223,125,215, 64,166, 46,185, 2, 0,150,226,188,184, 41, 83,166,124,181,104,209,162,194,194,
-194, 66,147, 86,171,245, 26, 52,104, 16, 50, 50, 50,144,157,157,253,123, 37, 38, 51, 33, 38, 38,134, 40, 20, 10, 36, 39, 39, 35,
- 38, 38, 70,242,213, 87, 95,181,181,114, 56,131,179,224,248, 94, 68,167,214,109, 71,183,111,137, 29,215,238, 8, 46, 63, 76,113,
-105, 93,183,150,235,237,204,220,122,102, 6, 73, 47,114,182, 85, 42,213,202, 5, 11, 22,168,213,106, 53,178,178,178,112,247,238,
- 93,196,199,199, 35, 45, 45, 13, 75,151, 46, 85,151,148,148,172,170, 78,195, 79,204,251,236,251,105, 99, 25,222,253,223,129, 59,
- 23, 1,173, 10,208,169, 97,120, 16,141, 95, 31,228, 97,237,254,131,194,244,140, 12,151,221,187,119,143, 11, 8, 8,136, 6, 16,
- 84,149, 30, 33,182, 83,200,225,112,158, 53,161,224,112, 56, 42, 0,121, 50,153, 44,211,209,209, 49,147,195,225,228, 17, 66, 52,
-175,164, 37, 97,129, 9, 92, 46, 32,148,128,195,175,114,105,207,183,194,195,195,119,101,102,102,246, 73, 78, 78,238,176,106,213,
-170, 5, 98,177, 56,118,213,170, 85, 11,146,147,147, 59,100,102,102,246, 9, 15, 15,223, 5,224,221,154,124,127, 96, 96,224,148,
-185,115,231, 98,233,210,165,104,209,162, 5,130,130,130,180,243,230,205, 91, 9, 96, 14,128,143, 2, 3, 3,175, 76,153, 50,229,
-253,130,130, 2,159,172,172,172, 22,107,214,172,153,184,114,229,202, 54, 57, 57, 57,226,106,164, 59,247,238,221, 27, 39, 79,158,
- 4,128, 92, 0,201,197,197,197,150,156,156, 28, 52,110,220, 24,109,219,182,133, 90,173,134, 90,173,134, 92, 46, 71,157, 58,117,
-192,178,108, 7, 90,149, 83, 40, 20,202,255,171,225,170,216,104,137,197, 98,215,176,176, 48,212,175, 95,223, 21,101,163,181,220,
-133,188, 89,159,142, 27, 33,117,136, 62, 5, 38,230, 28,194,187, 52,147,186, 11,121,179,202,254,133, 87,167, 78, 29, 81, 88, 88,
- 24,100, 50, 89,173, 74,190, 60, 42, 47, 47, 15, 97, 97, 97,112,113,113,129,179,179, 51,194,194,194, 96, 50,153,160, 80,169,160,
-177, 2, 90, 51, 11,133, 66,129,146,194,124,104,173,128,197,209, 29,105,105,105,224,114,185, 41,149,104,250, 54,108,216,176, 48,
- 54, 54,182, 16,192, 37, 0,147,230,207,159,143,153, 51,103,226,235,175,191,222, 37,205, 77,237,189,235,228, 97,247,223,230,125,
-224, 25, 36,100, 70, 0, 48,101,102,102,194,197,197, 5, 50,153,172, 66, 99,208,181,107,215, 86, 50,153, 12, 91,182,108, 33, 89,
- 89, 89,157, 96, 27,194,159,194, 48, 54,179, 39,225, 64, 1, 96,101,116,116,116,187,175,190,250,234, 97,175, 94,189,248,237,219,
-183,199,194,133, 11, 1,224, 88, 69,154,114,185,252,143,119,223,125,215,120,225,194, 5, 60,120,240, 64,118,232,208,161,225, 11,
- 23, 46,108,150,158,158, 46, 58,122,226,212, 27,219, 51,149,195,191,139,188, 44, 94,116, 58,234, 15, 15, 39, 89,211,122, 30,110,
-136, 73,207, 22, 88,185,184, 81,221, 25,109,199,231,142,235, 46,230,197,116, 17,113,114,187,139,121,209,109,248,220,177, 42,149,
-106,247,145, 35, 71, 78, 79,155, 54, 77, 93, 80, 80, 0, 71, 71, 71, 20, 23, 23,227,219,111,191, 85,199,196,196,236, 55, 26,141,
- 71,171,211,181,178,164,149,127,221, 0, 32, 41,246,241,123, 38,150,224,134, 81,128, 1,147, 62, 70,112,227,198, 48, 26,141,104,
-222,188, 57, 51,127,254,124,153,179,179,243,231,213,154, 30,206,115,151,155,133, 97,152, 60, 66, 72,182, 90,173,206,146, 72, 36,
-233, 2,129, 32,189,164,164, 36,139, 16,146,255, 42,124, 22,225,224,179,142,205, 3, 1,145, 4,233,197,234,156,155,106,148, 84,
-244, 65, 71, 71,199,177,107,215,174, 21,111,218,180,201, 60,101,202, 20,195,196,137, 19,249, 58,157,206,107,226,196,137,252, 41,
- 83,166, 24, 54,109,218,100, 94,187,118,173,216,193,193, 97,232,139, 20,196,108, 54, 35, 54, 54,246,187, 71,143, 30,201, 96,155,
-110,228,227,121,243,230, 69, 36, 38, 38,138, 87,175, 94,141,125,251,246, 97,223,190,125, 24, 60,120, 48,166, 78,157,138,185,115,
-231, 86, 37, 39, 13, 13, 13, 13,115,119,119,199,197,139, 23,115, 0,164, 3,104,229,224,224,224, 56,120,240, 96,244,233,211, 7,
-122,189, 30, 38,147,233,177,209,226,114,185,112,113,113,113,167,117, 32,133, 66,161,252,229, 38,235, 41,179,197, 3,128,242, 80,
-221,128, 1, 3,152,170, 30,140,214,210, 2,200, 53, 90,164, 41,180,200, 40,101,159,250, 27,203,178, 85,126,123, 78, 78,206,209,
-107,215,174,141, 13, 11, 11,227,229,228,216,122,196,194,194,194,160,213,106,145,115,231, 58, 52, 44, 32,107, 24, 2,141, 70,131,
-210,248,219,112, 8,237, 0,247,254,163,177,124,245,106, 67,113,113,241, 79, 21,105, 10,133, 66,126,237,218,181, 11, 83, 82, 82,
- 44, 0, 74,156,157,157,123, 7, 4, 4, 32, 42, 42, 10, 0,118, 16,224,123,196, 92, 0, 46, 30, 0,177,133, 84, 28,234,212,169,
-131,130,130, 2,168,213,234,168,138, 52,175, 93,187,150,104, 54,155,155, 15, 26, 52,136,217,186,117,235, 30,165, 82,249, 53,128,
-187, 6, 22,220, 59,153,249,208, 88, 33, 6,240,186,171,171,235, 39,115,231,206,125,109,202,148, 41, 56,114,228, 8, 34, 35, 35,
- 77,176,229,130, 93,171, 64, 86,145,156,156,252,243,244,233,211,219,115, 56,156, 73,103,206,156,177, 4, 5, 5, 41, 77, 38,147,
-181, 81,112, 48,231,235,249,223, 8, 62,156, 52,193,165, 88,139,251,125, 26,249,118,100, 24,224,126,118, 65,250, 35, 53,138,171,
- 58,166, 93,133,220, 99, 67, 58,133,118, 29, 27, 62,208, 65,214,176, 41, 52,247,174,251,252,188,247,196,114, 73, 76,226,128,139,
- 5, 5,131,143, 28, 57, 50, 60, 42, 42,234, 67,163,209, 88, 95, 36, 18, 37,201,229,242, 21,106,181,186, 90,147,197,229,114,251,
- 27,124,107,187,202, 75, 74, 32, 46,139, 68, 41,205, 44,138, 12, 22, 60,112, 9,194,200,218,254,143,187, 65,243,242,242,224,227,
-227,195, 88,173,214,129, 85,105, 70, 70, 70, 98,192,128, 1,229,198, 19, 12,195,128, 97,152,162,224,224,224,124,145, 72, 84, 44,
- 16, 8,148,223,127,255,189, 94,175,215,131,199,227,137,173, 86, 43,247,101,174,246,182, 82,120,137, 8,179,110,226,160, 30,189,
- 90, 52,109, 76, 46,221,188,195,148,106,245,191, 86, 17, 5, 92, 19, 24, 24,200, 43, 41, 41, 57, 10,224,129,217,108,254,109,207,
-158, 61,226,119,222,121, 71,191,119,239,222, 81, 0, 26, 44, 91,182,108,184, 90,173,174,209,146, 10,143, 30, 61, 90,179,104,209,
-162, 25,179,103,207,198,182,109,219,166, 60,122,244,104,102, 89,164,107,240,220,185,115,241,253,247,223, 99,219,182,109,236,131,
- 7, 15, 78,176, 44,251,104,218,180,105,161,222,222,222, 69,185,185,185,143,170,144,109,221,183,111, 95,195,149, 43, 87,132, 42,
-149,234, 50,128, 79, 38, 79,158, 60,174, 93,187,118,202,240,240,112,135,146,146, 18,185, 84, 42, 21,110,220,184,209,149,199,227,
- 65,163,209,128, 97, 24,168, 84, 42, 35,173, 7, 41, 20,202,223,149,202,188,200, 63,132, 74,159, 13,188,138,118, 80,171,213,230,
-103,100,100, 52,206,206,206,182, 0,176, 0, 64,177,209,178,120,209,198, 3,155,134,182, 15,148,229,154,205, 56,116, 51, 78, 91,
-108,180,148, 39,191, 91,178,179,179, 85,233,233,233,142, 58,157, 78, 93,201,119,253,190,110,221, 58,221,133, 11, 23, 28,147,147,
-147, 97,181, 90,209,170, 85, 43, 36, 36, 36,160,244, 65, 44,100,141, 91, 65,214,109, 0,226,162,111, 34, 38,242, 44, 82,213, 70,
-203,195, 57,139, 20,106,141,102,174,201,100, 58, 84,145, 32,159,207, 47, 1, 64, 8, 33, 86, 0, 80, 42,149,119,213,106,117, 23,
-111,111,111,220,191,127, 95,166,177, 98,234,240, 89,203, 87, 17, 66,172, 2,219,104,174, 79,195,195,195,113,235,214, 45, 0,184,
- 85,145,166, 82,169,156, 50,126,252,248, 11, 91,182,108,225, 37, 39, 39,247,217,180,105, 83,159,135, 15, 31, 18,166, 36,195,122,
- 69,203, 71,131,136,169,109,214,215, 9,142, 28, 48, 96, 0,124,125,125,177,113,227, 70,172, 88,177,194,252,193, 7, 31, 36,174,
- 88,177,162, 77, 65, 65,193,111,149,236,191, 66, 46,151,159,114,119,119,255,176, 89,179,102, 42,141, 70,131,226,226, 98,228,228,
-228,192,205,221,157, 99, 1,167,163,167,139,203,111, 71,243, 84, 50,222,169, 63,112, 61, 43,183,202,104, 86,123, 62,247,221,161,
- 93, 91,118,253,104,246, 44, 7, 92, 57, 4,102,252, 92,144, 77, 11,240,241,152,225,142,122,195,111,221, 52,119,210,222,137, 86,
- 42,183, 43,149,202,125, 53,188, 88,250,118,236,216,113,215,162, 69,139, 36, 95, 46, 93,132,101,141,107,193, 82, 92,140, 66,131,
- 21, 69, 6, 11,148,165, 15,112,255,126, 28,220,221, 61,144,154,154, 10,189, 94,143,248,248,120,194,229,114,143, 86, 23,209, 41,
-231,137,238, 66,185, 72, 36, 42,230,243,249,249, 60, 30,175, 36, 57, 57, 89,163,215,235,193,225,112,100, 86,171, 85, 98, 71, 89,
-107,123,120,120, 76,131,109, 50,209, 35,170,162,162,149, 97,124,184,128,135,238,117, 60,220,223,152, 51,241, 29,143, 0, 63, 47,
-121,114, 98,146,249,167,211, 87,139,244,134,202, 7,107, 0, 56, 86, 82, 82,242, 56, 34,185,119,239,222,143,247,238,221, 59, 14,
-192,102,216,214,221, 58, 43,151,203,215,191,192,205, 55,103,255,254,253, 51,102,207,158, 13,137, 68,242,120,242, 84,137, 68, 34,
- 6,128,157, 59,119,226,254,253,251,237, 80,150,175,197,178,236,174,220,220,220,234, 52, 27,132,132,132, 36, 31, 56,112, 64, 8,
-192,111,242,228,201, 29, 86,173, 90,133, 49, 99,198, 20,198,197,197,181, 7,144, 2,160,193,164, 73,147,110,108,219,182,205,149,
-101, 89,148,150,150,194,104, 52,166,208,170,156, 66,161, 80,179,245,151, 16, 6, 32, 6,182,249,179,250, 3, 56, 14, 91, 90, 71,
-165,248,151,185,179,211, 0, 6,149, 63, 31, 43, 73,134, 7,108, 35,178, 78, 1,248, 5,128,119,101,162,238,238,238,159, 71, 68,
- 68,152,179,178,178, 72, 94, 94, 30,217,183,111, 31,249,116,108,132,245,245,134,126,108, 67, 63,111,141,167,167,103,130,175,135,
-219,175, 45,165,248, 20, 64,109, 59,118, 44,226,225,195,135, 19, 34, 34, 34,198,150,125,239,216, 93,187,118,169,207,156, 57,163,
-230,114,185,199, 96,155,218,161,220, 80,190, 59,112,224, 64,181,193, 96, 80, 7, 7, 7,151,192,150,184, 95, 25,195,187,119,239,
- 94,122,242,228, 73, 98,181, 90,159,155,163,168,176,176,144, 68, 70, 70,146, 78,157, 58,201, 1,188,243,218,107,175, 69, 93,189,
-122, 53,170,115,231,206,251,171, 43,176,135,135,199,172, 59,119,238,220, 74, 75, 75,139, 62,126,252,120,244,111,191,253, 22, 61,
-105,210,164,187,161,161,161,186,196,196, 68,214, 98,177,144, 59,183,111,147,224, 70,141, 52, 0,234, 84,166,211, 83,194,187,161,
-220,184,128,232, 23,142, 33,250, 33,254, 4, 0, 81, 45,255,156,228, 79,233, 69, 18, 62,124,131,244, 16,115,175,189,200,149,226,
-230,230,118,250,214,173, 91, 68,165, 82,145,123,247,238,145,119, 7,244, 33,215,198,245, 34,167,250, 4,146,109,221,234,145,229,
-189, 67, 73,159,110, 93,200,186,117,235,200,129, 3, 7,200,172, 89,179, 88, 15, 15, 15, 21,170,200,209,242,241,241, 57,179,103,
-207,158,104, 0,209, 92, 46, 55, 90,169, 84, 70,171, 84,170,163,153,153,153,107,131,131,131,103, 52,107,214,108, 84,227,198,141,
-123,246,168, 87,103,198,107,142,162,132, 94, 78,226,164, 70, 14,210,229,120,126,222,171,199, 56, 3,117, 26, 54,104,160,186,120,
-241, 34,107, 48, 24,200,229,203,151,217, 38,141,130,244,203,222,238,187, 63,117,227,146,253,250,147, 91, 79,107, 15,111,184,186,
-247,189, 1,177,221,165,156,173, 29,100,143,167,227,120, 81, 70, 0, 56,132, 63, 71, 29, 70, 0, 56,140,170, 71, 33,114, 0,108,
- 94,184,112,225,147, 35, 13, 1,128, 19, 26, 26, 26, 77, 8,137, 14, 13, 13,141,174,105, 65,164, 82,233,180, 35, 71,142,204, 11,
- 8, 8, 88, 26, 30, 30,190, 81, 46,151, 31, 31, 53,106, 84, 44,108,131, 65, 24,216, 86, 71, 24, 88,187,118,237,194,152,152, 24,
- 18, 21, 21, 69,134, 13, 27,166, 18, 8, 4,163,105, 53, 78,161, 80, 40,127, 9, 19, 42,249, 89, 37,139, 98, 99, 99,203,231,208,
-154, 92,149,248,204,153, 51,163,111,221,186, 21, 13,219, 44,241, 85,194,227,241, 14,126,240,193, 7,196,219,219, 91,237,229,229,
-117,144,207,229,142,243,151, 32, 12, 47, 54,212,189,203,246,237,219, 7,175, 89,179,166, 63,128,118, 0,248,181,106,213,202,201,
-203,203, 83, 95,189,122, 85,221,169, 83, 39,181,135,135, 71, 65, 72, 72,136,122,217,178,101,106,179,217,172,158, 54,109,154, 26,
-207,207,247, 85, 17, 98, 0, 31, 10,133,194,131, 77,154, 52,137,157, 51,168,167,121,233,212,113, 36, 34,208, 83, 13, 96, 13,128,
- 15, 0,184, 0,224, 15, 31, 62,252, 92,124,124,252,233,144,144,144,255, 99,239,186,195,162, 58,214,247,123,206,158,237,187,176,
-212,101,233, 42, 69, 69, 65,197, 26, 11,246,142,189,196, 30,141,229, 26,189, 26, 19, 53,182, 32, 24, 53,106, 98,140, 73, 76,212,
- 24, 81,209,136, 5, 75,176,163, 70, 52, 86, 44, 8,138,130, 32, 77,202,210,150,133,101,217, 62,191, 63, 20, 46, 49,148,197, 36,
-191,155,228,238,251, 60,251,176,236,206,121,119,102,206,204, 57,239,249,230,155,239,219, 97, 6,175, 75,235,214,173, 47, 29, 60,
-120, 48, 46, 42, 42,234,238,146, 37, 75,226,236,237,237,179,147,147,147, 77,149,149,149,164,164,164,132, 40, 20, 10,114,234,212,
- 41,163,157,157,221,215,117, 54,156,199,202, 37,231,247,215, 26,194, 33,107,229,100,210,141, 75,191,120,147,145, 34, 18,137,138,
-139,138,138, 72, 94, 94, 30, 73, 77, 77, 37, 71,143, 30, 37,131,186,118, 34,145,255, 26, 77,246,191, 59,130,124, 54,168, 19,233,
-108,197, 87,201,172,196,113, 86, 86, 86,114,115,118, 29,202,100,178, 11, 26,141,166, 58,124,131,155,155,219,221, 22, 45, 90, 68,
- 5, 4, 4,124,113,242,228,201,133, 91,182,108, 25,209,187,169,231, 71,235, 7,118, 85, 87,196, 28, 38,101,135,190, 33,203,218,
-251, 86,190, 18,243,181,194,213,222, 46,226,202,207, 63,155,170,196,175,193, 96, 32,199,143, 29, 35,227, 7,247,143, 47, 61,251,
-227,247, 87, 87,207, 63,248, 65,123,223,227,221,248,152, 80,159, 96,171,126, 20, 17,195, 62,200,154,222, 54,196,195, 46,183,135,
-132,254,166,139,213,175,210, 75,141,247,245,245, 77, 37,132,228,182,108,217, 50, 21,192,254,150, 45, 91,214,252,127,122, 29,180,
-213,193, 73, 67,137,255,220,133, 0, 0, 32, 0, 73, 68, 65, 84, 67, 67,201,171,249, 65, 3, 8, 89,183,110,221, 93, 66,200, 93,
- 31, 31,159,107, 0,208, 86, 4,135,158, 18,250,251,225, 94, 78, 69, 61, 37,244,247,109, 69,181,167,140,242,228,160,121, 15, 71,
-225,213, 17, 62,206,101,189, 92, 37,177,251,195,127,216, 52,100,200,144, 93, 0,190, 6,240,137,189,189,253,213, 9, 19, 38, 60,
-218,183,111,223,163,205,155, 55,235,146,147,147,201,140, 25, 51, 84, 60, 30,239, 19,203,117,208, 2, 11, 44,176,224, 79, 67, 85,
-100,120,231,198, 8,173, 97, 31,125,244,209, 93, 66, 72, 85, 44,173, 41,181,148, 25,190,114,229,202,187,132,144,170,232,240,175,
- 7, 48,171, 45,160, 89,232,182,109,219, 8,143,199,251,254, 13, 27, 83,147, 83, 54,114,228,200, 46, 74,165,178,163,147,147, 83,
-199, 87,150, 43,119, 7, 7,135,212, 3, 7, 14,148,171,213,234,114, 66, 72,185,193, 96, 40,143,139,139, 43,239,213,171, 87,121,
-141,167,254,134,234,249, 43,172,144,225,218,157, 85,239,146, 21, 50, 92,123,237,171,201,187,119,239, 62,147,150,150,246,147,181,
-181,245, 82, 51, 57,221, 29, 29, 29, 67,236,236,236,206, 57, 56, 56,172,176,179,179,203,213,233,116,164,164,164,132, 60,125,250,
-148,252,252,243,207,228,198,141, 27,196,206,206, 46,187,174,122,246, 21, 48, 55, 75, 54,205, 35,166,221,235,136,246,171,229, 4,
- 0, 81,108, 89, 70, 10,191, 13, 35,119,102, 13, 36,189,248,172,235,111,208,159,176,177,177,217,121,236,216, 49, 83, 74, 74, 10,
-137,142,142, 38,167, 78,157, 34, 11, 22, 44, 32,205, 93,156, 53, 93,184,116,126, 15, 30,115,238, 77, 2,150,106, 52,154,187, 74,
-165,242,110,121,121,249, 93, 63, 63,191,187,157, 58,117,138,234,210,165,203, 23,135, 15, 31, 94,184,126,253,250, 17,125,173,120,
- 79, 43, 98, 14, 19,178,100, 48, 33,243,186,147,103, 51,123,145, 62, 2,230, 65,157,156, 78, 78,217, 85,209,218, 85, 42, 21,137,
-141,141, 37,151, 46, 93, 34, 50, 7, 7,101,144,128, 53,187, 27, 15, 61,187, 89,195,198,220,122,246,150,208,225, 55,191,253,212,
-168, 62,179,143,252, 56,109,176,161,151, 13,189,173, 70,185, 72, 66, 72,238,152, 49, 99,158, 19, 66,114,143, 30, 61,154, 69, 8,
-201, 29, 61,122,244,115, 66, 72, 46,128,131,181,113,190, 22,156,116,247, 43,145, 53, 47, 52, 52,244, 46, 33,228,110,104,104,232,
- 93,224,101, 16,213,158, 18,122,207,173, 29,159,153, 52,167,246,144,195, 51,134, 26,123, 74,232, 61,181,214,211,134,249,233,222,
-238, 45, 68,123,110, 63, 57,182, 96,146,177,187,204,250,138,175,175,239,103, 11, 23, 46,140,186,113,227,198, 67,163,209,248, 40,
- 53, 53,245,209,215, 95,127,253,232,173,183,222,186,102,111,111, 31,207,229,114,223,107,232, 28,253, 65,176,112, 90, 56, 45,156,
- 22, 78, 11, 94, 55, 48,213,243,221, 79, 27, 55,110, 20, 17, 66, 62, 24, 59,118, 44, 54,108,216, 48,190,117,235,214, 19, 92, 93,
- 93, 29, 1, 32, 39, 39,167, 34, 33, 33, 65, 57,118,236, 88,132,132,132, 96,211,166, 77, 95,224,165, 47,203,255, 39,242,142, 31,
- 63,238, 54,127,254,124,249,250,245,235, 77, 51,102,204,104, 9, 32,161,176,176,176,249,164, 73,147,230, 49, 12, 51,214,211,211,
- 51, 32, 55, 55,183, 64,173, 86,239, 7,176, 3, 13,172,153,214, 5, 30, 13, 99,135, 38,206, 56, 71,195, 88,227,227,193, 33, 33,
- 33,111,143, 30, 61, 90,183,101,203, 22,131, 82,169, 60,105, 38, 93, 86, 65, 65,193,154,170,127,236,236,236,100, 15, 30, 60,120,
- 79, 42,149,210,169,169,169,208,104, 52, 72, 73, 73, 49,225,229,210, 84,173, 40, 55,144,173,223, 29,189,208,226,131,201,193,214,
- 21, 73,247,193, 97,177,160,103,115,145,119,243, 28,118,199, 38, 41, 85, 58,124,245, 38,237, 84, 40, 20,159, 47, 88,176, 96,210,
-210,165, 75,249,158,158,158,212,245,235,215,113,232,208, 33,141, 92, 46, 31, 4,224,202,127, 66, 63, 53, 14, 38,147, 9, 92, 46,
- 23, 0,176,108,217, 50,208, 52,205,150,203,229, 92,138,162,120, 20, 69, 9, 41,138, 98,233,211, 30,193,164, 44, 65,126,137, 2,
- 89,249,138,122,249,140, 38,211,161, 91,183,110, 45,106,215,174, 29,125,231,206, 29, 20, 20, 20, 32, 37, 37,133, 24, 9, 57, 24,
-171, 54,190,116, 74,212,152, 95, 63,161,157,253,200,182,182, 60,154, 27, 30,130, 32, 45,205,218,110,194, 24,188,140,165, 5, 0,
-187, 41,138,226, 0, 40,242,243,243,235,253,248,241, 99,129,159,159,159, 58, 41, 41,233, 12, 69, 81,174, 0,246,212,198, 41, 16,
- 8, 10, 1, 20, 30, 61,122, 20, 0,102,225,101,231,181, 95,189,122,117,110,108,108, 44, 66, 67, 67,243, 1,108, 3, 0,177,173,
-253,240, 0, 9,135,226,238, 13,197, 91, 26,208, 95,153, 72,173, 86, 87,177,212,169, 79,107, 17, 13,246, 15, 31,163,163,172, 5,
-205, 53,232,252,195,194,194, 98,203,203,203, 53,145,145,145,218,233,211,167,179,146,147,147,111, 3,184, 10,224, 40, 94,249, 88,
- 90, 96,129, 5, 22, 88,240,167,226,117, 11, 86,131, 62, 90,175,171,214, 13, 0,190,123,242,228, 73,117, 82,233, 39, 79,158,220,
- 5,176, 29, 47,163,193, 15,107,132,226, 93,245,202,162,181,227, 13, 27,243, 58, 39, 63, 48, 48, 80,240,248,241, 99, 14,106, 79,
-226, 72,189, 1,231,111, 80, 91,174, 67, 95, 95,223, 47,245,122,125,212,246,237,219, 15,179, 88,172, 73,191, 67,237,123,250,248,
-248,148, 28, 56,112,192, 20, 29, 29, 77, 86,173, 90,101,116,118,118, 46,193,111,125,180,126,197, 25,196,101, 29, 89,220,210, 85,
- 25, 55,165, 59,121,182,112, 56,185, 58,185, 23,153,237, 42, 86, 6,241, 89,135,126,231, 83,137,143, 68, 34,217, 45, 16, 8,148,
-214,214,214, 23, 0,116,253, 61,231,200,222,222,126,159, 76, 38,187, 80,243,229,228,228, 20,229,232,232,248,141,131,131,195, 42,
- 27, 27,155, 57, 94,124,238,150,133,205, 93, 42,227, 71,250,145,152,110,142,100,178, 3,247,245,165,195,215,235,233,236,229,229,
- 85, 20, 17, 17, 97,250,233,167,159,200,242,229,203, 77, 77,154, 52, 81,162, 30,191,182,122, 45, 90, 54,172, 67, 71, 70,119, 49,
-229, 15,117, 37, 27, 90, 90,153,122,219,178,234,218,161, 56,249,149, 0,158,214, 16,167,183,183,247,118, 66, 72,248,218,181,107,
-195,241,159, 92,160,253,195,194,194, 86, 19, 66, 86,135,133,133,173, 6, 48, 16, 0,130, 36,116,196,254, 17, 29,140, 57, 67, 92,
-200,167, 45,197,198, 32, 9, 29, 81,171, 37,211,142, 57,126, 98,230, 80, 83,238,204,110, 36,196, 71,100,236, 98,199,187,200,229,
-114, 23,226,165,197,185, 19, 0,174,229,169,217,194,105,225,180,112, 90, 44, 90,127, 57,225,101, 22,100,118,118,118,187,155, 53,
-107,118,216,211,211,243,176, 88, 44,254, 2, 47,157,230, 27,123, 34,188,214,173, 91,167,148, 72, 36,109,255,192,147, 43, 5,224,
-138,223, 38,206,253,195, 6,204, 26,103,204, 79, 94, 58,254,193, 26,103,204,175,241,113,167,150, 45, 91,126,138,151,209,188,127,
-239, 32,244,180,179,179,251,218,206,206, 46,251,149,111,150,167, 57,156, 29, 88,172, 73,189,249,172,235, 93,185,116, 94,111, 62,
-243, 75, 71, 22,107,226,223,116, 2,214,183,217,162, 46, 78, 55, 7, 7,135, 45,118,118,118, 57, 14, 14, 14, 95, 55, 82,100,253,
-138,179,173, 0,206,125,108, 88,199,187, 90, 81,170, 62, 18,214,209, 14,194,186, 55,117, 52,162,237,129,161,161,161,239, 16, 66,
-222,113,113,113, 25, 91, 67,248, 7,132,132,132, 4, 19, 66,130,171, 34,192,119, 18, 66,218,203,134,117,160,155, 53,165,232,101,
-195, 58,208, 73, 8,105, 93,245,236,109,195, 58,212,205,154, 82, 4, 89,211, 7, 60,120,104, 98,185,152, 91, 56, 45,156, 22, 78,
-139,208,250,103, 8, 45,203,128,177,112, 90, 56, 45,156, 22, 78, 11,167,133,211,194,105, 17, 90,181, 11,171,154,175,234, 21, 54,
-198,210, 55, 22, 88, 96,129, 5, 22, 88, 96,129, 5,191, 11,117, 6, 44,165,234, 81,165,141,113,108,127, 19,101, 27, 99,225,180,
-112, 90, 56, 45,156, 22, 78, 11,167,133,243,127,142,179, 33,238,255,239,141,117,127,107, 88,204,170, 22, 78, 11,167,133,211,194,
-105,225,180,112, 90, 56,255,103, 65, 91,186,192, 2, 11, 44,176,192, 2, 11, 44,176,224,119, 33,240,213,223,215, 3,151,214,238,
-163,197,116, 90,155,111, 48, 24,164, 0,192, 48,140, 92,127,123,149,115,125,236,108,160,175,225,101,250, 29, 48,192, 44, 3,112,
-161, 22,206, 11, 6,131,193,246, 21,103,137,254,246,170,129,245,114,118, 90,123,174,102,121,195,237, 85,253, 95, 47, 67, 0, 22,
-187,211,218,156,215,234,234, 98,110,175, 80,248, 85, 76,172, 63,173,158,127, 23,206,255,101,176, 59,175,205,215,235, 95,142, 35,
- 54,155,145,235,110,213, 63,142, 56,157,215,230,212, 44,175,191,181,202,169, 62, 78,161,128, 87,228,237,234,248, 69,125,156,169,
- 57,133, 31,168, 42, 42,237,235,227,108,236,220,116,119,118,238,107,124, 53, 55, 89,192,172,236,220,220, 11,127,177,177,212, 1,
-192, 42, 0,214, 53, 62,139, 7,240,190,101, 84, 90, 96,129, 5,127, 51,161,117, 15, 47,243, 28,238,124, 37,182,118,214, 41,180,
- 12, 6,131,244,238,177,213, 80,105,128,190, 83,215, 74,189, 70,238,248, 77,162,100, 67,101, 9, 87,145, 24, 25,192,210, 43,109,
- 29, 25,157,117, 78, 78, 14, 5, 0, 20, 69,125, 15,192,163, 22, 78,219,187,199, 86,163, 66, 11, 4, 77, 8,179,245, 0,172, 11,
- 56,156, 15, 5, 34, 81,111,181, 90,221, 26, 0, 4, 2, 65,162, 90,165,186,236,168,211,109,126,189,124, 93, 45,171, 89,215, 62,
- 83,214, 74, 91,142,220,177,192,104, 50,113, 95,220,217, 30, 84, 89,152,204,176, 13,154,109, 43,128, 51,171,107, 17, 85,117,240,
-253,231,119,199, 45,183,103, 3,125,184,124,126, 91, 27, 91,219, 30, 38, 66,252, 76, 38, 19,101, 52, 24, 30, 41, 75, 75,175,154,
- 12,134, 7, 6,173,202,254,238,201, 79, 77,245,213,243,245,182,140, 3,152, 99,192, 88,145, 88,220,155,197,102,119, 5, 0,163,
- 94,127, 93, 85, 94,126,121, 20,112,196,156,182,155,219, 63,111, 90,254,127, 13,122,189, 65,154,118,110, 53, 52,122, 32,112,204,
-167,210, 54,147,246, 30, 0, 0,173,252,129, 83,121,242,201,206, 0, 32,242, 14,190,197,147, 5,230, 3, 0,147,145, 43,125, 26,
-189, 18, 26, 61,224, 23, 28, 38,109,136,115,122,200, 33,251,165,179, 71,243, 0,224,252,209,111,154, 95,138,250,110, 48, 0,244,
- 25, 61,247,204,128, 49,243,159, 2,192,166,157, 81,246, 7, 63, 29, 95, 47,167,121,115,179,148, 83,154, 28,237,163, 85,230,218,
-184,139, 24, 89,114,114, 50, 13, 0, 46, 46, 46,102,205, 77, 55, 64,146, 11,204,163, 89,172, 30,222, 62, 62,129, 0, 72,234,179,
-103,247,140, 6,195, 53,103, 96,219, 31, 60,150, 22, 16,242,235,224,172, 20, 69, 89, 6,164, 5, 22, 88,240,119,195,169, 87,226,
-234,212,111, 30,102,235, 58, 66,165, 1,174,164, 0, 61,187,180,193,236, 73, 67,196, 53,191, 59,178, 35,204, 35,249,206,137,150,
- 63,236,221, 76,183,105,211, 6,105,105,105,102,213,162, 66, 11,252,156, 12, 64,241,216,170, 68, 36,122,182,229,179,207,172,251,
-247,239,207,184,184,184,128,162, 40,228,229,229,117,137,137,137,233,176,104,209,162,127, 65,241,184,164, 66,139,178,159,147, 27,
-230,173,170,107,235,230, 77,176,106,254,120, 9, 0,172,152,186,173,195,157, 39,249,118,207,158, 61,235,251,209, 71, 31, 21,177,
- 46, 95,254,206, 1, 8,207, 7,178,204,169,231,190,159,110,241, 37,185, 63,122, 77,158, 63,255,168,143,143,143,216,211,211,147,
-178,178,178, 2,139,197, 66, 73, 73,137, 71, 66, 66,194,224,219,183,111,171, 98,174,124,207,141,187, 61, 60, 85,206,239, 92,105,
- 86,219,213, 57,252,243, 86, 86,137, 83, 70,141,114, 27, 63,126, 60,223,219,219, 27, 0,240,236,217, 51,223, 35, 71,142, 76, 56,
-122,244,104, 8,212, 57,134, 10, 45, 42, 27,106,123, 53, 39, 0, 62,208,213, 70, 42,157,204, 98,179, 91, 27, 12, 6,215, 87,214,
-134, 23, 70,189, 62, 81, 33,151,239,127,189,188, 5,191,133, 70, 15, 60,206, 5,250,245, 8,196,148,209,253, 68, 0,240,209,219,
-235,186,100, 60, 79,225,104,181, 90, 52,111,225,215,237,147, 79,191, 56, 7,154, 70, 68, 84, 76,117,121,115, 56,227, 31,167, 97,
-245, 39, 91,144,243,240, 72, 23, 99,105, 74,239, 50,101, 41, 11, 0,172, 37,146,209, 71, 34,127,188,236, 18, 48,246,102, 74,161,
-206, 44,206,250,230,230,217,200,175,157,179, 19, 46,183,250,246,252,110,182,135,135, 7, 30, 62,124,216,184,185, 89,250,196,202,
-228,236,252,104,243,146, 37,178,160,160, 32,136,197, 98, 48, 12, 3,131,193,208,239,218,181,107,253, 86,175, 94, 61, 23,165, 79,
- 84,230,206, 77, 51,176,153,162,168,222,211,103, 47,112, 30, 50, 98, 44, 70, 15,234, 86,111, 97,157, 86,203,226,112,185, 70,203,
-104,181,192, 2, 11,254, 66,168,178, 94,213,220,121,184,179, 94,161,197, 48,140,188,255,180,245,210, 30,157,253,113,231,193,211,
-210,244,204,220,242,170,239,138, 19,143, 52, 31,209,205,181, 85,108,236, 21,104, 52, 26, 92,191,126, 29, 15, 30, 60,192,243,231,
-207, 49,103,206, 28,205,171,165,195,218, 56, 75,130, 38,132,217,162, 52, 89,236,203,125,210, 52, 38, 41,137, 85, 89, 89,137,216,
-216, 88,148,148,148,128,203,229,194,205,205, 13, 3, 6, 12, 96,146,146,146,236,250,246, 31, 36, 9, 26, 52, 49, 13, 18,223,114,
-134, 97, 74,234,202, 35,194, 48,140,188,239,212,181,210, 86,190, 77,240, 44, 61,167,116,213,167, 63,148,155, 76,132, 73,125,158,
-161,187,114,229, 10, 2, 3, 3,113,225,194, 5,251,226,226,226,143,183,109,219,182,138,189,241,219,173,122,109,209, 98,212,205,
- 87, 18, 52, 33,204,214, 94,126,216,243,210,217,227,156,196,196, 68,206,246,237,219, 81, 84, 84, 4, 46,151, 11, 27, 27, 27,200,
-100, 50, 52,111,222,156, 90,177, 98,133, 56, 56, 56, 17,255,158, 53,214, 83,231, 53,243, 73, 93,245,172,110,123,121,134,208, 65,
-121,222, 59,234,212, 41,186,123,247,238,191,122,108,111,214,172, 25, 6, 14, 28,200,159, 60,121,178,247,248, 9,147, 76, 65, 67,
-167, 63,131,216,179,162, 65, 78, 85,150,192,190,226,134, 75,191, 9, 19, 78,134,133,133,217,200,100, 50,136, 68, 34, 0, 64,105,
-105,169, 91,122,122,122,151,144,144,144, 49,183,226, 35,153,160,224,172, 28,136,220,213,245,245,231,255, 42,216,108, 70, 94,101,
- 69,178, 18, 9, 74,178,178,243, 85, 0,160,213,106,161,213,106,161,209,104,240,222,220, 57,172, 89, 99, 58,249,120,246, 88,112,
-255,249,139,252, 98,191,152,155,118, 85,199,234, 27,224,100, 42,158, 43, 20,153, 23,103,173, 94,178, 68,230,228,244,159, 21,193,
-136,125,251, 88,197,197,197,253, 86,175, 94,221,138, 8,123, 41,252,130,195,108,234,227,172,111,110, 42,158,158,106,250,201,252,
-129,109,119,124, 26, 13,163,209,136, 27, 55,110, 32, 54, 54, 22, 95,124,241, 5, 57,115,230, 76,169,181, 72, 52, 11,245,206,205,
- 39, 86,221,157,243,188, 54,110, 60, 74,241,120, 60,156, 56,113, 2, 73, 73, 73,160,105, 26,109,218,180,193,148, 41, 83,208,175,
- 95, 63,217,236,217,115, 72,208,160,183, 83, 33,105, 81,246, 59,199, 18, 13, 96,193,242,213, 27,157,167,206,156,135, 77,159,172,
-104, 80,104, 89, 68,150, 5, 22, 88,240, 23,182,102,213, 25,226, 1,209,209,209,228,213,171, 39, 0, 16,128,110, 54,114,199,193,
-195,113,166, 83,205, 70,238, 56, 72, 0,154, 0,180, 53,208,164, 93,187,118,122,133, 66, 65,110,223,190, 77,222,123,239, 61,213,
-214,173, 91, 47,159, 58,117,234,136, 65,167,219,229,226,236,252, 57,169,195,193,158, 0,180, 39, 32, 17, 10,133, 5,153,153,153,
-228,244,233,211, 36, 52, 52,148,236,223,191,159,156, 57,115,134,196,196,196,144, 51,103,206,144,131, 7, 15,146,248,248,120,242,
-244,233, 83, 34, 18,137, 10, 60, 1, 73, 61,156, 44, 2,176,154,143,220,190,248,232, 29,125, 88,139,145, 59, 22, 17,128,101, 11,
-180,108,215,174,157,241,200,145, 35, 36, 34, 34,130,236,221,187,151,196,199,199,147,194,194, 66,194,240, 68, 5, 85,199,213, 85,
- 79, 2,208,174,174,174, 5, 10,133,130,184,187,187, 19, 46,151, 75,156,156,156, 72,243,230,205, 73,151, 46, 93,200,224,193,131,
-201,164, 73,147,200,199, 31,127, 76, 20, 10, 5,225,243,249,249, 85,199,213,197, 25, 8, 8, 68, 34, 81,230,221,187,119, 73, 93,
- 80,171,213,164,176,176,144,156, 59,119,142,136, 68,162,204, 64, 64, 80, 31,167, 0,104, 31, 16, 16, 80, 80, 88, 88, 72,116, 58,
- 29,201,204,204, 36, 9, 9, 9, 36, 41, 41,137,100,102,102, 18,181, 90, 93,205,253,244,233, 83,226,229,229, 85, 32, 0,218, 19,
-203, 38,136, 58,199,210,235, 47, 15, 39,167,193, 50,153, 76,125,244,232, 81,242,226,197, 11,178,103,207, 30, 66, 3,235, 94, 47,
- 87, 31, 39, 23, 24,208,189,123,119,227,141, 27, 55,200,253,251,247,201,178,101,203,200,192,129, 3,201,160, 65,131,200,234,213,
-171, 73,118,118, 54,201,206,206, 38,131, 7, 15, 54,114,129, 1, 13,141,207,218,230,166, 4,240, 8, 14, 14, 86,235,116, 58,146,
-154,154, 74, 90,183,110,157,205, 2, 38,139,128, 86, 61, 1, 94, 67,227,211, 21,176,117,118,118,206,189,113,227, 6,137,138,138,
- 34,158,158,158, 5, 44, 96,186, 53,208,204, 26,104,198, 2,166, 55,107,214,172,224,198,141, 27,164,168,168,136,120,120,120,228,
-186, 2,182,191, 99, 44,209, 0,118, 47, 95,189,145, 60,201, 86,145,229,171, 55, 18, 0,153,132, 16,130, 90,124, 60, 45,176,192,
-130,127, 62, 94,215, 34,255, 20, 84, 95, 36,131,131,131, 41, 0, 63,215, 87, 88,205, 98,173,223,180,105, 19, 83, 89, 89,137, 31,
-126,248,161,108,220,152, 49,135,123,246,232,145,218,212,211, 83, 65,209,116,131,217,134, 11,120,188,133,155, 54,109,178,209,106,
-181,136,139,139, 67,135, 14, 29, 32,147,201, 32, 22,139, 33, 22,139, 33,149, 74,209,162, 69, 11,200,229,114, 88, 89, 89, 97,233,
-210,165,146, 2, 30,111, 97, 67,188, 38, 19, 97, 0,192,104, 50,113, 57,192,108,175,142, 29,227, 66, 66, 66,104,123,123,123,216,
-217,217, 65, 44, 22, 35, 41, 41, 9, 90,173, 22, 66,129,208,172, 32,173, 52, 77,211, 98,177, 24,151, 46, 93,194,130, 5, 11,208,
-181,107, 87,216,216,216,192,202,202, 10,173, 91,183,198,128, 1, 3, 48,107,214, 44,164,166,166,130, 50,195,169,228, 17,195,204,
-155, 53,107,150, 52, 48, 48,176,214,239, 43, 43, 43,161, 80, 40, 80, 80, 80, 0, 55, 55, 55,140, 29, 59, 86,250,136, 97,230,213,
-197,103, 15,200,220,124,125, 79,222,190,125,219, 65, 36, 18, 33, 34, 34, 2,199,143, 31,199,217,179,103,113,250,244,105, 68, 71,
- 71,227,196,137, 19, 40, 40, 40, 0, 0,248,250,250,226,208,161, 67, 14, 98,169, 52,218, 30,144, 89,166,180,121,200,200,207, 63,
-223, 58, 47,207, 97,242,164, 73, 87,203,203,203, 49,121,242,100,172,223,176, 97, 5, 27, 88,100,206,241, 45, 0,137,157,179,115,
-248,198,141, 27,233,188,188, 60,140, 26, 53,170,112,243,134, 13,239,222, 59,119,206,251,238,217,179,222,235,195,194,222,237,217,
-179,103, 97,118,118, 54,246,237,219, 71, 59,121,120,132,183, 0, 36,141,173,103, 25,176,224,203, 47,191,228, 87, 86, 86,162,127,
-255,254,169,166,196,196, 22, 6,224,199,114, 32,233,103, 64,215,208,241,185,192,188,165, 75,151,202,120, 60, 30, 62,252,240,195,
-194,138,140, 12,127, 3,176,183, 20, 72, 47, 5,210, 13,192,222,178,180, 52,255,169, 83,167, 22,242,120, 60,108,217,178, 69,150,
-251,159,164,219,230,162, 3,128,147, 0,174, 0,200,153, 62,123,193,244,192, 78,111, 97,223,174,109,248, 52,236,163,112, 0,227,
- 40,138,218, 15, 96,177,101,228, 89, 96,193,255, 38,204,209, 34,127, 81,212,153,114,135,169,169, 36, 1,244,170,143,197,214,222,
-190,131,191,191, 63, 98, 99, 99, 17, 16, 16,112,219,198,198,198,192,225,241,192,102,179, 65, 76, 13,234, 44, 8, 68,162,190,253,
-250,245, 99,110,222,188, 9, 47, 47, 47, 8, 4, 2,176,217,236, 95,189, 56, 28, 14,156,157,157,161, 84, 42,209,183,111, 95,246,
- 87, 95,125,213, 23, 26,205, 39, 13,222, 16,147, 19,196, 5, 55, 55, 78,250,126, 79,120,179,160,160, 32,148,150, 42, 97, 50,153,
- 32, 20, 10,161,213,106,193, 48,204,203, 37, 32, 61, 81,154,211, 99, 70,163,209,200, 98,177,224,229,229,133,245,235,215,163,178,
-178, 18, 28, 14, 7, 0,160, 84, 42,161, 80, 40,144,144,144,128,244,244,116,188,122, 10,175, 23, 86, 18,201,144,241,227,199,215,
-154,240, 87,163,209,160,180,180, 20,165,165,165, 80, 40, 20,168,172,172,196, 91,111,189,197, 61, 21, 29, 61, 4, 69, 69,155,107,
- 61,134,207, 31,179,111,223, 62, 41,151,203,133, 90,173, 70, 89, 89, 25,178,178,178,144,145,145, 81, 41,151,203, 13, 86, 86, 86,
-180,167,167, 39,205,227,241,120, 35, 71,142,164,148, 74, 37, 40,138, 66,112,112,176,253,129,136,136,241,208,106,191,176, 76,105,
-243,112, 30,208,180,215,106,135,117,238,212,233,210,237, 59,119, 2, 23, 46, 92,136,248,248,248,141,194,200,200, 43, 21,192,131,
-250,142, 77, 5,230,125, 94, 67,192,144,140,140, 0, 29, 80, 80,163, 72,186,103, 90,218,217,169, 83,167, 62,140,143,143,119,216,
-178,101,139,108,220,168, 81,243, 0,172,107, 76, 29,173, 36,146,142,206,206,206, 56,115,230, 12, 50,159, 63,255,200, 0,168, 27,
-245,196,197, 98,117, 15, 10, 10,194,137, 19, 39,144,157,145,241,145,225,215,117,124,249,160, 4, 20, 48,169,169, 31,133,135,135,
-239,158, 49, 99, 6, 88, 12,211, 29,134, 70, 45, 28,254,198,241,125,198,156,133, 8,223,249, 85, 56,128,153, 0, 76, 0,110, 91,
- 70,156, 5, 22,252,111, 91,181, 26,210, 34,127, 35,177,181,179,209, 22, 45,169, 84,234, 42, 22,139,145,147,147, 3,191,150, 45,
-229, 60, 30, 15, 92, 54, 27,124, 46,215,172, 26, 84, 84, 84, 4,184,184,184,160,180,180, 20, 14, 14, 14,224,112, 56,213, 47, 46,
-151, 91,253,222,202,202, 10, 52, 77,195,195,195, 3, 21, 21, 21, 1, 13,242,230, 39, 72, 35,191,154,251,222,141, 43,103,154,141,
- 26, 53, 26,182,182,118,112,119,119,131, 84, 42,133, 64, 32,128,187,187, 59,188,189,189,201,230,205,155, 33,148,182, 49,235, 66,
- 94, 83, 60, 49, 12, 3,163,209,136,252,252,124, 60,121,242, 4,241,241,241,184,113,227, 6,238,223,191,143,178,178, 50,152,161,
-179, 80,161, 86,183,101, 24,166, 86,145,165, 80, 40,160, 80, 40,170,133, 86, 65, 65, 1,210,211,211, 81,174, 82,181,171, 71,244,
-142,246,247,247,103, 1,128, 64, 32, 64,187,118,237,176, 99,199, 14,195, 79,199,143,191,221,234,198, 13, 59,247,115,231,108,190,
-223,190,253,237,177, 99,199, 26,111,222,188, 9,165, 82,137,199,143, 31,195,209,209,145,225,242,249,227, 45,211,185,113,184, 11,
-168, 28,202,202, 6,117,237,218, 53,173,180,180, 20,159,125,246, 25,205,182,178,218, 25, 86,199, 18, 95, 53, 88,172,110, 65, 65,
- 65, 56,121,242, 36,114, 50, 50,150,101,212, 34, 96, 50,128,130,204,212,212,101,225,225,225, 24, 48, 96, 0, 40,134,233,214,216,
-250,117,233,210,197,223,100, 50,225,225,195,135,176, 1,110, 53,246,120,111, 31,159,192, 42,203,175, 8,184, 90, 87, 57, 17,112,
-245,222,189,123, 16, 8, 4,240,107,213,170,125, 35,127,102, 51, 69, 81,185, 51,230, 44, 68,212,217, 95, 0, 0,225, 59,191,202,
-175, 33,178, 44,176,192, 2,139, 69,235,239,106,209,170, 18, 86, 53, 95,248,149,208, 50, 83,124, 0, 0,216,108, 54,184, 60, 30,
-184, 92,238, 75,129,196,227,153,205, 65, 81, 20,248,124,126,181,176,170, 41,176,106,190, 23, 10,133,102, 9, 24, 0, 40, 73, 57,
-219, 99,230,187, 51,184, 60, 30, 15, 90,173, 6,132, 16,240,120,124,216,216,216,192,203,203, 11, 74,165, 18, 93,187,245,212,100,
- 41, 56,209,246,126, 35,227,223,164,247, 12, 6, 3, 84, 42, 21, 74, 74, 74, 80, 92, 92, 12,165, 82, 9,181, 90,109,246, 86,116,
-147,201,196,202,202,202,194,143, 63,254,136,162,162, 34, 0, 47, 29,173,171,196, 85,213,223,180,180, 52, 68, 68, 68,224,249,243,
-231,141, 58, 63, 61,122,244, 64,116,116, 52,171, 87,223,190,187, 46,120,122,230, 92,240,244,204,233,213,183,239,174,147, 39, 79,
-178, 92, 93, 93,145,158,158,142,184,184, 56,148,148,148,128, 16, 98,217, 63,255, 6,120, 6,148, 84, 20, 23,207, 88,177, 98, 5,
- 17,139,197,248,236,243,207,219,174, 3, 38,154, 43, 96, 36,245, 8, 24,201,239, 19, 48, 32,132,192,100, 50,193,104,124, 51, 95,
-113,138,162, 40, 54,155,221,216,208, 10,141, 41, 92,237,248,190,244,227,245, 56,125,226, 72,213,231,201, 22,145,101,129, 5, 22,
-252, 3, 80,167, 35, 60, 83, 67, 65, 86,255,173, 11,249,249,249, 47, 84, 42, 85, 51, 79, 79, 79,100,103,103, 75, 61, 60, 60, 50,
-184,108, 54, 56, 92, 46, 40,186, 97, 77, 32, 20, 10, 31,230,228,228,116,115,117,117,133,193, 96,168, 22, 85,175, 47, 29, 86, 89,
-105,238,223,191, 15,161, 80,248, 16,149,245, 70, 78,128, 81, 91,210,164,125,251,246,213,150, 33, 27, 27, 27,216,216, 72,192,227,
-241,177,114,229, 74,211,150,205,155,183,121,244, 9, 43,125,103,209, 10,178, 98,221,174, 63,180,103,205,189, 49, 9,133,194,135,
-238,238,238,111, 73, 36, 18, 68, 69, 69, 33, 61, 61, 29, 37, 37, 37,168,168,168,128, 70,163, 65, 69, 69, 5,180, 90, 45,248,124,
- 62, 90,181,106, 5,107,107,107,196,196,196, 60,132, 70, 83,187,184, 44, 42,138,122,248,240,225, 91,157, 58,117,170,182,168,244,
-238,221,155,234,221,187,183, 67,181, 21,173,162, 2,133,133,133,184,125,251, 54, 98, 98, 98, 64, 81, 20,146,147,147,141, 26,181,
-250,160,101, 78,188, 25, 42,129,235,172,240,240,221,255,250,215,191,222,237,214,173, 27,140,192, 96, 0, 17,255, 69, 1, 3, 0,
-184,113,227, 70,130,209,104,236,214,188,121,115, 40,128,206, 0, 78, 52, 74, 68,166,164,220, 51, 24, 12,125,219,182,109,139,168,
-195,135,123, 0, 72,175,173,156, 10,232, 17, 24, 24, 8,181, 90,141,199,143, 30,221,109,132,200,218,181,124,245,198,233, 83,103,
-206,195,190, 93,219, 16,190,243,171,172,221, 59,182,186,195, 12,255, 49, 11, 44,176,224,127,202,154,213,160, 22,249,139, 98,118,
- 93,226,139,105, 12, 75,105, 73,201,221,123,247,238, 53,107,223,190, 61,118,237,218,213,169,235, 91,111,189,224,112,185, 6, 46,
-135, 3,218,140, 27,137, 90,165,186,120,241,226,197,206, 35, 71,142,100,110,222,188, 9,153, 76, 86, 45,180,170,254, 50, 12, 3,
- 66, 8,132, 66, 33,142, 29, 59,166, 83,171, 84, 23, 27,180, 22, 25, 77, 70,250,149,208, 35,132, 64,161, 80,128,195,225,224,139,
- 47,182,224,235,205,155, 39, 25,129, 35,190, 34,199, 37, 0,248,255,181, 27,116, 69,197,165,211,167, 79,119, 8, 9, 9, 97,187,
-185,185, 65,161, 80,160,164,164, 4, 69, 69, 69, 80, 42,149, 80, 42,149, 40, 41, 41,129, 66,161, 0,159,207, 71,124,124,188,190,
-178,162,226, 82, 93,124,188,202,202,163,211,166, 77, 91,122,239,222, 61,103,134, 97,160,215,235, 97, 50,153, 96, 50,153,160,211,
-233,144,146,146,130,196,196, 68, 36, 37, 37,161,184,184, 24,108, 54, 27, 44, 22, 11,247,239,223, 47, 17,233,245,135,181,150, 57,
-253,198, 96, 3, 81,215,174, 93,123,119,202,148, 41,112,113,115,235,137,236,108,179, 4,204,241,122, 4, 76,233,155, 9,152,255,
- 8,160,178,178, 59,105,105,105,221,122,245,234, 5,103, 55,183,141,173,178,179, 47, 60,106,132,159,150,209, 96,184,122,237,218,
-181,190, 83,167, 78,197,174, 93,187, 54, 58,166,165,157, 45,120,109,153,211, 17,112,108,234,237,189,113,250,244,233, 56,127,254,
- 60,140, 6,195,213,122, 40,107, 70,124,111, 50,125,246, 2,247,215, 28,223,119, 80, 20, 53, 31,192,103,150, 17,101,129, 5, 22,
-252,147, 45, 90,141, 90, 58, 20, 24,141,203, 23, 47, 94,172,167,105, 26,163, 71,143,182, 58,113,242,228,216,251, 15, 30,120,201,
-229,114, 27,163,209,216, 32,151,163, 70,179,117,241,226,197, 10,173, 86,139, 22, 45, 90,160,184,184, 24, 70,163, 17, 12,195,128,
- 97, 24, 80, 20, 5,154,166, 33, 22,139,113,239,222, 61,236,222,189, 91,233,168,209,108,109,240, 38, 97, 52, 62,140,136,136, 0,
-139,197, 34,124, 62, 31, 20, 69,129, 97, 24,108,217,178, 69,254, 53, 16, 5, 0, 44,154,214, 2, 0, 77, 83,230,122,239, 54,184,
-110,201,229,114, 97,122,185, 9,160,193,178,182, 26,205,151,155, 54,109, 42,123,252,248, 49, 84, 42, 85,181,245,173,188,188,188,
-218,185, 94,161, 80,128,162, 40,168, 84, 42,156, 60,121,178,204, 86,163,249,178, 46,190, 34, 32, 47, 59, 57,121,120,167, 78,157,
-138,210,210,210, 80, 90, 90,138,135, 15, 31, 34, 38, 38, 6,135, 14, 29,194,249,243,231,145,146,146, 2,131,193, 0, 87, 87, 87,
- 16, 66,112,252,248,241, 82, 67, 89,217,224, 34, 32,207, 50, 39,234, 70, 19,153,172,175,147, 84,154,233,232,224,144,221, 68, 38,
-235,251,250,247, 18,224,233,211,167, 79, 97, 48, 24,224,229,229,101, 87,159,159, 22, 49, 24,174, 93,187,118, 13, 83,167, 78,133,
-123,179,102, 27, 60, 1,199,215,203,120, 2,142,158,222,222, 27,170, 4, 12, 49, 24,174, 53,182,206, 86,192, 87, 75,150, 44, 81,
-115, 56, 28, 68, 70, 70,122,233,125,124,146, 24, 96,162, 24,104,217, 11,224, 52,116,188, 51,176,237,227,143, 63,206,163, 40, 10,
-251,247,239,119,144,120,123, 39, 48,192, 52, 9,208, 68, 2, 52, 97,128,105, 18,111,239,132,200,200, 72, 7,131,193,128, 69,139,
- 22,229, 57, 3,219,234,161, 92, 64, 8, 25, 70, 8, 9, 34,132,184,239,222,177, 21,167, 79, 28,169, 18, 89, 51,241,210,233,125,
- 10,128, 4,203,136,179,192, 2, 11,254,201,168,213, 12,197,116, 90,155, 15, 16,105,207, 46,109,112,231,193,147, 82, 7, 91,235,
-115, 85,223, 21, 39, 30,105,222, 39,192,186,205,183,223,126, 11, 54,155,141,172,172, 44, 60,122,244, 8,214,214,214,152, 52,105,
-146, 70, 93, 86, 54,188, 70,174,195,126, 0, 98, 94,113,190,204,167, 86,154, 44,246,102,226,155,157, 61, 29,205,146, 72, 36, 40,
- 47, 47, 7, 77,211,224,243,249, 16, 10,133, 16, 8, 4,136,139,139,195,208, 97, 35,140, 5,194,160,255, 4, 44,253, 79, 62,181,
-106,206,170, 88, 67,157, 1,225, 61,224, 67,169,139,203,226, 85,171, 86, 9, 6, 14, 28, 8, 14,135, 3,183, 38,190,121, 94,131,
- 62,251,138,166, 41, 67,118,145,114,165,119, 19, 23,201,163,228,116, 0,148, 92,127,123,149, 75,141, 92,135,191,169,167,135,246,
-138,215,177,189,155,173,219,181,123,233,143,174, 80, 40,144,159,159, 15,185, 92, 14,133, 66, 1,149, 74, 5, 0,136,142,142,198,
-233,216, 36,165,218,109,108,106, 93,245,252, 79,219,159, 88,185,232,110, 53, 61, 16,177,151,229,232,232,136,252,252,124, 20, 20,
- 20, 64,161, 80, 64,173, 86,195,104, 52,162,184,184, 24, 63,132,239, 53, 22,137,131,158, 87, 7,132,172,143, 83,149, 37,176, 43,
-255,197, 53,176,149, 39,121,247,221,119,173,172,173,173, 97, 50,153, 80, 82, 82,130,204,204, 76,164,165,165, 33, 54, 54, 86, 37,
- 87,104,161,114,232,159, 93, 29,176,180, 22,206, 63, 16,127, 59,206,154,113,171, 92,156,157,115, 50, 50, 50,164, 70,163, 17,174,
-174,174, 6, 69,113,241, 6, 46,112,222, 10,200, 5, 64, 10,129, 85, 95,126,245,213,140, 17, 35, 70,160, 99,199,142, 89,121,249,
-249, 77,107, 27, 75, 4, 96,181, 0, 36, 21,110,110,137,183,111,223,150,101,102,102, 98,234,212,169,133, 25,207,158, 45,171,242,
-215, 42, 5,122,120,122,123,111,136,140,140,116,104,214,172, 25, 2, 2, 2,242,248,153,153,173,159, 0,165,117,140,207, 58,231,
-166,226,233,169,166,115, 71,249,119,124,239,189,247, 96, 48, 24, 16, 27, 27,139, 91,183,110, 33, 35, 35, 3,191,252,242,139,194,
- 90, 36,122,187, 70,174,195, 90,199,231, 96, 95,149,215,254,253, 17, 20,135,195, 65,120,120, 56,238,221,187, 7, 0, 8, 12, 12,
-196,244,233,211, 97, 48, 24, 48,121,242, 20,114,234,137, 32,181,190,241, 9,192, 31,192,231,120, 41,242, 58, 18, 66,248, 20, 69,
-229, 0,112, 71,227,124,178, 44,227,211,194,105,225,252,223,225,252, 71,162,193, 92,135,107,191,131,228,215,105, 62,102,229, 28,
-217, 17,198,116,239, 17,212, 50, 44,116, 53,221,169, 83, 39,184,187,187, 35, 48, 48, 16,153,153,153, 60, 27, 27,155,134,242,169,
-149, 7, 13,154,152,214,166, 77, 27,155,101,203,150, 73, 6, 12, 24,192,118,119,119, 7, 33, 4,247,238,221, 67, 84, 84,148,110,
-215,174, 93,202, 10,167, 97,138,187,151,127, 44, 55, 39,159,218, 45,160, 2,192, 26,183,156,156,157,243,230,206, 93,221,174,125,
-251,119, 67, 67, 67,105,177, 80,192, 94,191,114, 38, 31, 0,214,126,115, 72, 50, 98,236, 36,124,233, 3,244,156, 88,123, 30,185,
-154,245,204,204,158,149, 49,100, 84, 95,159, 15,231,207, 48,142, 31, 63, 94,100,109,109, 13,119,119,119,216,218,218, 34, 53, 53,
- 21,217,217,217,228,167,159,126, 42,191,113,255, 41,251,248,249, 59, 25,124,137,179, 57,121, 9,203,130, 6,142,123, 62,100,200,
- 16,219,105,211,166, 89,117,232,208,129,205,227,241,192,227,241,144,159,159,143,148,148, 20,221, 79, 63,253, 84, 94, 33, 29, 92,
-114,247,114,100,153,153,185, 14,213, 65, 19,194, 82,174, 94, 8, 93,148,248,240,225, 20, 19,208, 86,167,211,185, 26,141, 70,138,
-166,233, 92,147,201,244, 80, 87, 86,182, 91, 19, 24,186,197,146,235,208, 60, 24,141, 70,142,209,104,132, 66,161,192,133, 11, 23,
-152,103,207,158,173,122,240,224,193,170,156,156, 28,232,245,122,140, 25, 51, 6,129,129,129,184,124,249, 50, 10,242,243,127,170,
-143,235, 9, 80,202,203,206,158, 62,107,214,172, 51, 17, 17, 17,244,131, 7, 15, 28,194,195,195,127,168, 77,192, 76,153, 50,197,
-148,159,153, 57, 93, 3,148,214, 51, 62,235,155,155,133,103, 35,191,126, 48,114,244,216, 86,161, 33,171,216, 93,187,118,133,131,
-131, 3,122,244,232, 1,157, 78,103,227,231,231,215,208,220, 44, 11, 26,244,118,106,219,182,109, 69, 91,182,108,145,205,152, 49,
- 3,243,231,207, 7, 0,168,213,106,156, 63,127, 30,139, 22, 45,202,203,100, 58,171, 26, 26,159,175, 44, 85, 85, 2,236, 10,128,
- 32, 0,169,176, 56,190, 91, 96,129, 5,255, 76, 84, 37,149,118,198,203,196,210,167,240,242,225,188,225, 92,135, 87,111, 37,160,
-102,154,143,151,112,126,100,240,152,246,108,206,226, 13, 1, 44,189,210,150, 77, 85, 90, 39, 63,125, 74, 53,148,243,176, 58,159,
-154,196,183,220, 62,237, 96,167,245,107,215, 46,252,242,203, 47,251, 86,133,112, 16, 10,133, 15,213, 42,213, 69, 71,141,102,107,
-133,196,247, 98, 99,115,243,101, 3,249, 0,230,218,222,189,251, 85,240,136, 49,155,248,118, 94,236, 21,235,118, 85,178,104, 90,
-155,146, 83,128, 47,125, 0,145, 25, 27, 36, 43,180, 64,162,194,217,144,111, 63,246,201,199, 75,150,124,184,118,205,154, 78, 98,
-177,184,167,206, 96,240, 53,153, 76,128,201,148, 92,161, 82, 93, 33, 58,221,109, 77, 96,200,102,190,196,153,152,157,151,208,198,
-175,204,238,249,145, 78,123,118,239, 94,112,248,240,225,223,180,221, 94,163,249,170,194,198, 47,198,156,182,215, 44, 83, 9, 92,
-135, 92,126,189, 62,211,165, 37,215,161,153, 79, 31, 38,211,108, 91, 91,219,125,125,251,246,229,247,235,215, 15, 67,135, 14, 69,
-215,174, 93, 97, 50,153, 64, 8, 65, 89, 89, 25, 14, 29, 58,132, 77,155, 54, 37, 55, 5,214, 52,196,167, 1, 46,242, 78,159, 30,
-220,182,109,219,240,250, 4,204, 43,145,213,160, 79, 98,253,115,147,151,108,144, 12, 79,159, 48,111,189,143, 86,153,107, 99, 47,
- 52,200, 18, 19, 30,210,230,207,205, 22,101,198,123,135, 58,143, 25, 53,106, 30,139, 97,122,188,218, 1, 73, 30, 63,122,116,183,
- 42,169, 52, 2,167, 95,104,228, 88,170,138, 93,103,113,124,183,192, 2, 11,254,233, 66,107, 40, 94,250,107, 85,167,228,169, 51,
-215, 97,149,213,135, 97, 24,121,234,241, 57,147,234, 99,103, 3,125, 95, 89,178,208, 96,174,195, 87,239,211,129, 50,104, 52,159,
-252, 42, 24,105,141,221,133,236,215,202, 55, 38, 44, 98, 9,240, 4, 6, 77, 48,228,143,128,147,115, 95,242,117, 90,251, 81,205,
- 54,213,121,147,253,213,239,114,138, 43,129,171, 40, 47,191,138,242,242, 90,157,118,217, 12,167,184,161,122,190,222,246, 76, 64,
-249,123,219,254, 58,103,131,226,225,119,244,231,255, 26, 94, 20, 22, 30, 7, 32,118,139,142,118, 58, 27, 29, 61,254,195, 15, 62,
- 24,227,236,226,226,237,224,224, 96,107,101,101, 69,223,188,121, 61,198,135, 44, 0, 0, 32, 0, 73, 68, 65, 84, 51,205, 80, 89,
-249, 85, 59, 96,207, 43,107,106,131,208, 0, 23, 91,100,102,182, 30, 55,106,212, 60,138, 97,186,215, 20, 48,196, 96,248,197, 11,
-216, 86,159, 37,235, 77,231,166, 59,207,185,239, 43, 75, 22, 88,192, 44,115,198, 70,246,203,122,172,131,193,176, 14,241,241,181,
-140,249, 70,143,165,181, 20, 69,149,193,226,248,110,129, 5, 22,252,115, 81,149,239,240,212,255,247, 15,247,179,112, 90, 56,255,
- 65,156, 44,188,220, 69,103,233, 79, 11,167,133,211,194,105,225,180,192, 44, 48,150, 46,176,192, 2,179, 97,196,127,150,193, 44,
-176,192, 2, 11, 44,176,160, 10, 85,190, 89, 53,177, 19,120,233,186, 83,151, 42,109,204,110,130, 55, 81,182, 49, 22, 78, 11,167,
-133,211,194,105,225,252,175,112, 10,241,219,101,111, 75,127, 90, 56,255,191, 56, 27,226,254, 59,238,102,172,242,201,170,246,205,
-250,255,130,197,172,106,225,180,112, 90, 56, 45,156, 22, 78, 11,167,133,243,159, 14,231, 87, 34,171,230, 11, 64, 35, 3,150, 90,
- 96,129, 5, 22,252, 83, 17, 26, 10,154, 16, 80,132,132,210,132, 28,102, 17, 50,150, 69, 8,126, 87, 42,144,177, 99,107, 15,102,
-251,239, 73,182, 86,150, 30,183,192,130,127, 20,114, 81, 71, 82,105,139,143,214,127, 23, 30, 50,153,108, 7, 0, 42, 47, 47,111,
- 54,128, 76, 75,151,252,245, 96,103,103,215,215, 96, 48, 64,169, 84, 94,252,163, 56, 89, 44, 22,101, 52, 26,201, 95,161,125,173,
-188, 49,138,208,240,171,254,128, 32,243,113, 10,246,213, 86,214,207, 7, 83, 65,253, 39, 22, 23,101,194,227, 71,207,112,172, 17,
- 63, 71, 15,238,231,190, 13, 0,206,196,100,205,195,159, 19, 87,171,185,163,163,227, 57,134, 97, 24,163,209, 56, 87, 46,151, 71,
-215, 45,132,198,178, 0,128, 77, 46, 47, 87,228, 73,151,189,255, 47,138, 93,161,217,173,208,168, 85,165, 44, 54,235, 57,143, 45,
-187, 54,103, 6,125,166,164,252,173, 71,181, 29,127,228,200,145, 58,179,120,183,246,193, 96,218,216,106, 88,160,127, 90,234,231,
- 91, 59,125,217,211,203,129,157,150,117, 95,188,113,123,233, 14,174,141,231,176,169,227,169,104, 70, 72, 77,217,189,187,168,252,
-159, 58,119,214, 3,180,158,205,110, 65,153, 76, 94,160, 40, 33, 5,128,152, 76, 38,138,166,211,248, 6,195,211,197, 64,249, 27,
-112,218,233,128, 0, 54,143,231,110, 52, 24,156, 40,128,176, 24, 38, 95,175,209,100,113,128,248,229,128,226,159,206,201,225,241,
-220,140, 6,131, 19, 0,252, 21,235,105,193,175, 81,167,208, 18,139,197,113, 52, 77,187,213, 76,134, 91,149, 79,176,234,179,154,
-223, 81, 20, 5,163,209,152, 93, 82, 82,210,161, 17,191,111, 13, 96, 60,128,170, 45,234, 7, 0, 28,194,155, 59, 28, 91,115, 56,
-156,197, 34,145,168,143, 90,173,110, 13, 0, 2,129, 32, 81,165, 82, 93,210,233,116,159,191, 33, 47, 3, 96,156, 88, 44,238, 77,
-211,116,111, 66, 8, 69, 8,185, 92, 94, 94,126, 9,192, 97, 0,111, 18, 41, 65, 32,149, 74,215,217,217,217, 77, 92,190,124,121,
-145,189,189,125,139, 69,139, 22,221, 41, 46, 46,254,177,176,176,112, 37, 26,145,163,238, 79,134,183, 76, 38, 59,192,102,179, 89,
- 89, 89, 89,189, 1,192,221,221,253,178, 86,171, 53,202,229,242, 73, 0,158, 53,146, 79, 4,160,139, 88, 44,238, 32, 22,139,131,
-140, 70,163,223,171,252,140,143,203,203,203, 99,117, 58, 93, 28,128,155, 0, 84,127,161, 57, 98,197, 48, 76,196,171,177,238, 11,
-160,236,143, 32,253,171,136, 44, 0, 32, 52,252, 30, 37, 38,181,168, 22, 94,173, 91,214, 93,152,130, 71, 45,101,205, 22, 90,125,
-122, 58, 15, 27, 62,188, 63, 13, 0, 90,253,153, 97,151,174,228,158,248,131,155,211,124,244,232,209,215, 35, 34, 34,108, 53, 26,
- 13,102,207,158,125, 32, 38, 38,102,155, 82,169, 92, 94,239,133, 67,108,187,232,179, 45,231,133, 20, 69, 3,128,212,100, 50, 74,
- 95,188,120,230,251, 40,225,250,160,196,196, 27,235,213, 73,151,110,154, 40,246, 28, 29,122, 36,153, 83, 9, 63, 47, 4, 15, 27,
- 51,106,232,154, 53,161,152,248,246,196, 38,137,137,149, 2, 87,235, 84,110,177, 90,228, 99,239, 40, 29,190,102,237, 17,234,218,
-213,227,195, 35,194,195, 46,205,152, 97,223,231, 31, 40,182,168,213, 92,174,135,222,104, 28, 68, 3,185,140,149, 85, 42, 56,156,
- 10, 0,160,141, 70,150, 86,169,244,174, 96,152,201,159, 0,183, 63, 54, 24,238,155,203,185,150, 97,186, 72,124,124,130,222, 62,
-126, 28, 98,119,119,134,225,241,104, 0, 48,104, 52,238,229, 89, 89,206,145,195,135,119, 14,125,250,244,231, 80,224,150,133,243,
-191,194,105, 65, 99,132, 22, 77,211,110, 47, 94,188,144,138, 68,162,151, 23, 99, 66, 96, 52, 26, 97, 52, 26,171,147, 23, 19, 66,
-170,255, 26, 12, 6,180,108,217,210,172, 39, 90, 0,125, 0,188,211,171, 87,175,177,159,127,254, 57, 59, 32, 32,160, 42,101, 72,
-143, 21, 43, 86,124,115,239,222,189,163, 0,246,224,101,240, 70,115,159,120, 7,138, 68,162,253,159,125,246,153,117,255,254,253,
- 25, 23, 23, 23, 80, 20,133,188,188,188, 46, 49, 49, 49, 29, 22, 45, 90, 52, 87,165, 82, 77, 6,112,174, 17,253,227,111,101,101,
-117,100,212,168, 81,110, 61,123,246,228,183,106,213, 10, 70,163, 17,247,239,223,159, 17, 23, 23, 55,225,232,209,163,171,203,202,
-202,198,194,252,124,109,148, 88, 44,158,102,109,109,189, 46, 36, 36,196,110,242,228,201,220,132,132,132, 18, 47, 47, 47,234,218,
-181,107,142,135, 14, 29,154,187, 97,195,134,113, 74,165,114,101,121,121,249, 94,152,145, 67,209,202,202, 42,142,166,105, 55,115,
-132,240,171, 27,188,185, 98,184, 93,211,166, 77, 15, 93,189,122,181,105,122,122,186,113,228,200,145,251, 0,224,210,165, 75, 1,
-122,189,158, 26, 48, 96,192,153,236,236,236,241, 0,204,189, 72,182,177,179,179, 59, 49,113,226, 68, 59,111,111,111, 97,211,166,
- 77, 41,145, 72, 4, 22,139,133,210,210, 82,151,132,132,132,126,183,110,221, 82,199,196,196, 20,107, 52,154,225, 0,226, 27,113,
-158,186, 74,165,210, 41,108, 54,219,223, 96, 48,184, 2, 0,195, 48, 47,244,122,125,130, 92, 46,143, 0,112,253, 77, 39,136,147,
-147,211,215,235,214,173,115,144,203,229,100,195,134, 13, 95,151,149,149, 77, 51,231,184,240,240,112,122,250,244,233,127, 74, 20,
-244, 53,107,194,216, 33, 33,171,245,127, 52,239,129, 31, 15, 35,238,206, 45,224,101,218, 28,170,150,241, 71, 1,224,188,255,254,
- 7,232,208,177, 51, 38, 77, 28,215, 32,231,144,190,110,159,177,185, 28,251,202,202,202,235,165, 21,154,195, 34, 33,127,252,196,
- 9,193,201, 0,112,230,236,207,227, 59,117,178,189, 44, 17,242,198,241,249,252,174,122,173,174,232,244,197,236, 37,141, 17, 85,
-174,174,174,231,108,109,109,133,197,197,197,121, 5, 5, 5,223, 13, 27, 54,108,237,158, 61,123,108,211,210,210,144,149,149,133,
-133, 11, 23,138,179,179,179,231,197,199,199,223,208,106,181,117, 90,182,202,202,138,183,174, 88, 54, 34, 68, 34,113, 96,137,132,
-214,176,146,216,193,203,187, 45,186,116, 29,134,193, 67,223, 69, 74,242,189, 46,123,194,215,220,123,241, 34,230, 83,177, 93,179,
-181, 10, 69,211, 58,207,109,171,230,232, 57,124,212, 75,145, 21, 18, 18,138,167, 73, 73,101,233,207,233,127,159, 58,206, 8, 7,
-247,109,201, 51,104,243,210,175, 93, 61,222,180,123,143,145, 0,208, 33, 34, 60,236,210,191, 39,217,246,253,250, 64, 73,217, 63,
-228,190, 66,173, 97,179,253, 97, 48, 52,183,119,118,142,172, 52,153,136,190,180,212,221, 84, 81,225, 12, 0, 6, 54, 91, 43, 18,
-139, 31,186,248,248,196, 62,189,123, 55,232, 19,134,233,241,113,253, 9,202,171, 56,167, 13,220,178, 69, 26, 56,119, 46,167,252,
-249,115, 93,234,246,237, 21,249,177,177, 70,134,199, 35,238,131, 6, 81,142,189,123,243,231, 62,126,204,249,101,195,134, 32,118,
- 88,152,215, 74,157,110,191,133,243,255,149,243,127, 29, 85, 78,240, 53,119, 31,238,172, 87,104, 81, 20, 5,145, 72,132,200,200,
- 72,176,217,108, 48, 12, 3, 54,155, 93,231,123, 15, 15, 15,115, 42, 50, 90, 38,147,125,179,109,219, 54,167,129, 3, 7,130,207,
-231, 87,127,193, 98,177,208,191,127,127,244,235,215,143,157,147,147, 51, 33, 50, 50,114,194,250,245,235,243, 21, 10,197,124,188,
- 74, 12, 93, 15,122,183,104,209, 34,234,252,249,243,130,202,202, 74,196,198,198,162,164,164, 4, 92, 46, 23,110,110,110, 24, 48,
- 96, 0,147,148,148,100,215,191,127,255,168,167, 79,159, 6, 3,184,108, 70, 93, 59, 72,165,210, 43,135, 15, 31,230,183,109,219,
-150, 74, 73, 73, 65, 96, 96, 32, 0,160,180,180, 20, 35, 71,142,228, 79,158, 60,217,123,194,132, 9, 55,229,114,121, 79, 0,113,
- 13,240,181,151,201,100,123, 71,141, 26,229,178,126,253,122,107, 43, 43, 43,164,167,167,231,202,100, 50,223,170,254,158, 48, 97,
- 2,119,216,176, 97,206,155, 54,109,218,122,228,200,145, 37,114,185,124, 26,128,187,245,170,214, 87,130, 88, 40, 20, 34, 63, 63,
- 31, 7, 14, 28,192,188,121,243,192, 98,177, 32,151,203,113,232,208, 33,252,251,223,255,174, 18, 52,102,137, 97,161, 80,216,207,
-199,199,231,135, 75,151, 46,185,217,216,216,192,197,197,133,254,248,227,143,253,189,188,188, 4, 77,154, 52, 97,229,230,230, 34,
- 42, 42,202,107,202,148, 41, 39, 50, 51, 51,103,104, 52,154, 6,151,212,156,156,156,118,159, 58,117,202, 35, 49, 49, 17,219,183,
-111, 71,113,113, 49,184, 92, 46,108,108,108, 32,147,201,224,235,235, 75, 45, 91,182, 76, 56,108,216, 48,225,252,249,243,119,107,
-181,218,118,102,156,163,182, 82,169,116, 71,239,222,189,189,194,194,194,108,100, 50, 25,170, 30, 12, 74, 75, 75,221,210,211,211,
-187,132,132,132,140,141,139,139, 75,147,203,229,115, 0, 60,104,228,196,105,215,170, 85,171,224,145, 35, 71,178,114,115,115, 17,
- 17, 17, 17, 92, 86, 86,214,206, 28,113,201, 48,204,159,102,177, 50, 17,194, 3,240,135, 11,173,184, 59,183, 48,251,189,133,229,
- 46,238,238,156,243,231,126, 24,125,228, 88,243, 59, 54,130,151, 9,169, 21,106,232,198,142,122,218,113,192,192,119, 57, 67,134,
-142, 44,223,249,237, 86,177, 57, 66,139,205,229,216, 31,216,255, 69,230,213,107,113,254, 23, 98,110, 13, 26, 61,124, 56,225,112,
-108,188, 0, 96,201,162,247,217, 81, 39, 79,134,247,239,215, 57,167, 71,247, 14,153,147, 38,127,224,209,136,234, 54,111,222,188,
-249,207,247,238,221,115,226,241,120, 40, 46, 46,182,223,185,115,231, 23,221,187,119,167, 83, 83, 83,145,148,148,132,231,207,159,
-163,180,180, 20,253,251,247, 23,223,189,123,247, 59, 0,117, 10, 45, 29,221,103,157, 75, 19,253, 87,246, 2, 81, 83,157, 81, 41,
- 37,250,220, 86, 23, 78, 93,104,115, 48, 66, 29,232,228,220,210,247,157,233,171,177,102,237, 81,246,143, 7, 54,134, 92,140, 57,
- 8,208, 77,235,206, 8, 64,208,117,197,202,229, 80,150,105, 48,121,226, 44, 76,153, 56,203,158, 64,235, 76,140,149, 34,173,186,
-196,198,138,243, 56,122,219,174, 47, 70, 1,112,171, 33,182, 46,254, 83,196,214, 26, 14,167, 41, 76, 38, 47,223,145, 35,143,167,
-158, 61,219,140,232,116, 14, 44, 46, 55,219,202,206, 46,223,160,209, 16,189, 78,199, 81,171,213,174,169,137,137,206,221,151, 45,
-187,120,109,195,134,158,159,176, 88, 29, 63, 54, 26,239,212,201,201, 48,157,131,191,249,198,209,127,230, 76,222,131,176, 48, 85,
- 97,108,172,218,103,200,144,146,192,127,253, 75, 3, 0,101,207,159,115,158,174, 94, 45,116, 12, 10, 18,188,181,120,177,173, 81,
-171,149,173, 89,179,166, 83,200,203,228,229,141,226,244, 24, 63,222, 24, 18, 30,222, 49,246,131, 15,122, 81,122, 61,107,208, 91,
-111,221,223, 16, 17,241,226,247,112,254,145,245,204,185,114, 69, 83,236,229,133,192,145, 35,139, 60,164, 82,205, 31,217,246,223,
- 83, 79, 11,170, 81,229,171, 53,187,230, 19, 42,162,163,163,123, 2,248, 25, 64, 88,112,112,112, 40, 0, 72, 36,146,124,133, 66,
- 33,141,138,138,106, 80,100,177,217,108, 56, 59, 59,195,215,215, 87, 46,151,203,157,234,169, 64,150,201,100,114, 35,132, 84, 91,
- 95,234,130, 70,163, 65,114,114, 50,218,180,105,147,141,151,137,104,235, 52,234, 8,133,194,212,164,164, 36,135, 71,143, 30, 33,
- 46, 46, 14, 94, 94, 94,176,181,181, 5,155,205,134, 94,175,135, 82,169, 68,139, 22, 45,192,227,241,208,190,125,251, 66,149, 74,
-229,213,192, 18, 16, 79, 36, 18, 37, 95,185,114,197, 61, 48, 48, 16,183,111,223,134,187,187, 59,100, 50, 25, 0,224,249,243,231,
-184,118,237, 26,134, 12, 25,130,123,247,238, 97,204,152, 49, 89, 42,149,202, 23,128,166, 46, 66, 59, 59,187,220, 75,151, 46,101,
- 7, 4, 4, 84,170, 84, 42, 58, 63, 63,159, 29, 27, 27,107, 40, 43, 43, 19,151,150,150,178, 21, 10, 5, 91,169, 84, 50, 42,149,
-138, 77,211, 52, 71,173, 86,179, 47, 94,188,200,210,233,116,245, 6,200,172, 58, 79, 39, 79,158, 68, 64, 64, 0,162,162,162,240,
-225,135, 31,226,151, 95,126,129,187,187, 59, 14, 31, 62,140,197,139, 23,227,201,147, 39,112,112,112, 64,171, 86,173, 26, 58, 71,
-240,246,246, 78,121,248,240,161, 55,135,195,169,202,235, 88,149, 47, 15, 5, 5, 5,120,246,236, 25, 94,188,120, 1, 31, 31, 31,
- 76,156, 56,241,217,139, 23, 47,124, 26, 26,121,174,174,174, 5,137,137,137, 14,109,218,180, 65,126,126, 62,108,108,108, 32,145,
- 72, 96, 99, 99, 83,253,222,203,203, 11, 31,124,240, 1,100, 50,153,188,178,178,210,169, 33, 17, 20, 16, 16,112,238,226,197,139,
- 14,214,214,214,200,203,203,131, 82,169, 4,195, 48, 16, 10,133,112,112,112,168, 22,242,201,201,201, 24, 58,116,104, 97,106,106,
-234,192, 70, 88,224,104, 39, 39,167,164,248,248,120, 95, 66, 8, 50, 51, 51,241,228,201, 19,188,247,222,123,201,149,149,149, 45,
-241, 95,204,217,183,119,207, 94,222,180,119,166,105,254, 40,190, 26,126, 87,156,105,211,103,115, 70,141,232,170,125,156, 24, 77,
-241, 76, 79,208,206,223,186, 20, 0,238, 39, 40, 37, 26,186, 5,252, 90, 7,147, 99, 39,174,115,247,238,217,201,134, 9, 78,160,
-240,228,113, 50, 62,169,139,123, 64,111,231,153,239,191, 63,195,191, 87,247,158,116,153, 74, 37,253,238,187, 45,237, 83, 83, 31,
- 75, 1,192,203,203, 79, 62,119,238,162,187, 86, 34,145,252,231,107, 87, 76, 95,126,185, 59,225,252,229,220, 93,102, 84,217,203,
-215,215,247,198,201,147, 39, 29,164, 82, 41, 36, 18, 9, 84, 42, 21,116, 58, 29, 30, 61,122, 84, 25, 25, 25,169,183,182,182,182,
-202,203,203,131, 66,161, 0, 69, 81, 56,121,242,100, 38, 0,207,215,137,170,124,180, 0,224,189,193,126,236, 86,125,124,109, 57,
- 60,131, 64,192,126,234, 12,202,200,163,136,216,233,204,185,251,109,206, 92,184, 61,105,212,232, 15, 29,123,244, 28,133,144, 85,
- 99,245, 57, 57,153,129, 58,244, 72,170,205, 71,171,165, 15,250,140, 28, 51,106,220,154, 53,161, 8, 13, 9, 67,244,201,227,165,
- 98, 17,173,177,182, 97, 75,130,186,116,171,252, 96,222,136,172,242,242, 28,247, 53,155, 34, 39, 14, 29,241,129, 91,247, 30, 35,
-113,237,234,113, 68,132,135,197, 81, 2,242,183, 94, 70, 92, 13,112,104,134,121,215,165,105,211,253,242,156, 28, 87,161, 88,204,
- 94, 24, 19, 35, 53, 26,141,119,198, 45, 94, 92,118,236,226,197,234, 7,144,143,105,218,133,197, 98,185,248, 14, 29, 26,159, 18,
- 29,253, 46,207, 96,136,250, 8, 40,120,157, 51, 20,176,181,241,242,154,179, 32, 57,153,243, 32, 52,180,220,144,147, 83,210, 97,
-209,162,194,218,126, 63,251,194, 5, 17,215,197,197,218,118,248,112,187,173,158,158, 68, 47,151,239,168,205,199,168, 54,206, 24,
-177,216,230,224,153, 51,125, 9,155,221,115,233, 71, 31, 9,130,131,131,161, 84, 42,113,244,232, 81,236,216,190, 93,227,236,236,
-252,208, 37, 33,225,158,191, 82,185,202, 92,206, 14,139, 22, 21, 26,141, 70,106,220,226,197,253, 19,159, 63,239,147, 39,151, 55,
- 1, 0,103, 59,187,172, 14, 94, 94,113,187,163,163,159,124,221,180,169,201,220,122,126,127,246,172,211,145,244,244,153,118,118,
-118,130,124,185,156,225,113,185, 69, 93, 90,181, 58,252,237,202,149, 63, 27,226,227, 57,124, 55, 55,107, 73,112,112,163,219,222,
- 97,209,162,194,226,178, 50,102,193,218,181,221, 50,242,243,155,148,107, 52, 62,138,178, 50,153, 81,175,167,173,133,194,162,102,
- 45, 90,200,213,177,177,185,205, 42, 42, 22,238, 2,228,127,214,248,169, 77,139,252,141,240,122, 28,173,223,228, 58,252, 57, 56,
- 56,248, 55,187,107, 8, 33,102, 89,179,216,108,246,175,150,169,234, 1,135,162, 40,220,189,123, 23,246,246,246,144,201,100,224,
-241,126,157,124,176,160,160, 0,191,252,242, 11, 30, 63,126,140,182,109,219, 86, 45, 99,212,173,136,120,188,247, 55,109,218,100,
-163,213,106, 17, 23, 23,135, 14, 29, 58,128,199,227,129,195,225,252, 74, 4,202,229,114,180,110,221, 26, 75,151, 46,149,172, 95,
-191,254,125,141, 70,179,166, 30,107,196,252, 89,179,102, 73,171, 44, 88, 89, 89, 89,104,223,190,125,245,247,142,142,142,184,127,
-255, 62, 58,116,232, 0, 55, 55, 55,140, 29, 59, 86, 26, 17, 17, 49,223, 96, 48,124, 94, 23, 39,151,203,165, 3, 2, 2, 58, 2,
-128, 72, 36, 2, 77,211, 79,173,173,173, 29,157,156,156, 68,214,214,214,156, 90,150,158, 20, 52, 77, 55,104,181,160,105, 26,121,
-121,121,240,247,247, 71,105,233,203, 12, 46, 42,149, 10, 62, 62, 62, 80, 42,149,213,162,213,197,197, 5,106,117,253,174, 95,109,
-218,180, 9,109,217,178,229, 0,145, 72,196, 99,179,217,120,240,224, 1, 2, 3, 3, 17, 25, 25, 9, 15, 15, 15, 8,133, 66, 36,
- 39, 39, 35, 32, 32, 0, 87,174, 92,129,163,163, 35, 90,183,110,205,147, 74,165, 87,139,139,139, 47,103,100,100,132,214, 83, 79,
- 90, 44, 22,227,202,149, 43,216,189,123, 55,158, 63,127,142,156,156, 28, 88, 89, 89,161, 93,187,118,104,213,170, 21,186,118,237,
-138,228,228,100, 80, 13, 15, 38,153,175,175,111,244,237,219,183, 29, 8, 33,136,136,136, 64,121,121, 57,180, 90, 45,104,154, 6,
-159,207,135,173,173, 45,250,244,233, 3, 71, 71, 71,248,250,250,226,208,161, 67, 14,131, 7, 15, 62, 45,151,203,219, 1,200,107,
-168, 95,109,109,109, 23,174, 94,189,218, 93, 42,149, 34, 61, 61, 29,165,165,165,112,114,114, 66,175, 94,189, 92, 99, 98, 98, 22,
-234,245,250, 45,255,173,217,252, 71,138, 44, 0,168,225,248, 78,157, 63,247,195,104,223,102, 37, 1,109, 91, 8,221,163,162,157,
-220, 35,163,229,173, 1,192,223,207, 41,113,116,176, 48,235, 65, 98,116,214,249,115,199,227, 30, 63, 69,148, 57, 75,219,165, 21,
-154,195, 23, 98,110, 13, 10,108,219,222,180,105,227,226,161,243,222,155,201,147, 58,189,139,252,204,227,136,185,116,215, 99,241,
-135,179, 28, 63,223,252,253,153, 11, 49,183,232,210, 10,205, 42,243, 76, 89, 30, 95,239,249,182,171, 67, 89,225, 17,164, 36,113,
- 33,176,242,135,151, 87,115, 40,149, 74,240,249,124,254,196,137, 19,141,203,151, 47,175,176,182,182, 22, 82, 20,133,203,151, 47,
-203, 1, 12,108,136,183, 82,106, 75,140, 58,189,129,112, 89, 38, 66, 89,169, 41, 99, 49, 55,225, 81, 26, 6,244,235,157,223,189,
-179,255,250,229,107, 54,175,240,109, 30,232, 56, 99,102, 24,123,109,232,164,237,160,208,163, 54,158,164, 20, 92,162, 14, 31, 19,
- 0, 24,186,230,147, 80,164,166, 38,219,206,126, 71, 17,198,240, 4, 46, 45, 61,187, 89,109,223,125,121,144,143, 79,211, 38, 31,
-204, 31,123,234,139,111,190, 24, 90,211,178,181, 39,124,245, 9, 0,125,205,233,219,191, 34,104,134,105, 65, 83, 84,150,178,162,
-130, 69,116, 58,135,133, 49, 49,234,243, 55,111, 94,140,159, 61,219,170, 13,135,211,188, 13,135, 3,150, 78, 87,180, 18, 40,252,
-196,100,202, 89,205, 48,214,105, 39, 78,184, 48, 92,238,189, 74,147, 41, 0, 38, 83,109,241,147,218, 76,137,142, 70,121,102,166,
-190,248,234,213,202,190,223,124, 83,232, 62,112,224, 22,173, 78,231, 80,117,169,160, 41, 10, 84,149,235,132,201, 68, 49, 75,151,
-210,132, 97,160,183,181,125, 7, 37, 37,205, 27,226,252, 48, 55,119,244,164,153, 51,135,158, 56,123, 22, 77,155, 54,173,190,159,
-217,216,216, 96,241,226,197, 88,180,104, 17,239,254,253,251,157,142, 28, 57,210,233,243,207, 62,115, 2, 48,218,156,122,158,191,
-121,211,246, 95,107,214,172,108,219,161,131,199,190, 3, 7,120,222,222,222, 0,128,103,207,158,249,110,220,176,193,211, 63, 32,
- 32,127,253,251,239,239, 73, 92,190,188, 53,128,171,245,113,230,197,198,106,143,164,167,207,188,116,249,178,141,191,191, 63, 0,
-224,201,147, 39,210,173, 91,183,206,106, 61,118,236,228, 53,115,231,174, 10,174,172, 84, 88, 23, 20,240,130,191,254,154, 57, 56,
-110, 92,131,156, 85,245, 4,128, 94, 51,102,188,223,163,119,239, 86,163,103,206,180,243,240,240,160,196, 98, 49,116, 58, 29,114,
-114,114,108, 19, 19, 19,189,163,203,202,148,199,110,222,140,128,209,216,255, 79, 28, 66,181,106,145,191,153, 37,235,183,243,226,
-213,223, 94,209,209,209,228,149,154,172,190,129, 27,141, 70,179, 68, 22,195, 48,160, 40,202, 92,177, 5, 66, 8, 10, 11, 11,145,
-144,144,128,103,207,158, 65,165, 82, 33, 45, 45, 13, 59,119,238,196,198,141, 27,113,231,206, 29,232,245,122,232,116, 13,231,160,
- 21,137, 68,253,250,245,235,199,220,188,121, 19, 94, 94, 94, 16, 8, 4,224,114,185,224,112, 56,213, 47, 62,159, 15,103,103,103,
- 40,149, 74,244,237,219,151, 45, 18,137,250, 53, 96, 37, 26, 50,126,252,120,110,213,255,229,229,229, 96,177, 88,213,162,165,188,
-188, 28,197,197,197, 80, 40, 20,200,205,205,197, 91,111,189,197,149, 72, 36, 67,204, 61, 27, 21, 21, 21,229,114,185,220,166, 71,
-143, 30,182,143, 31, 63,254, 77,182,223,159,127,254,185,178,178,178,146, 77,211,180, 89,142,246,251,247,239, 71, 84, 84, 20, 46,
- 94,188,136,236,236,108,108,223,190, 29,251,246,237,195,201,147, 39,145,156,156,140,175,190,250, 10,223,125,247, 29,246,236,217,
- 83,239, 57,106,217,178,229,224,136,136,136,206, 93,186,116, 17,178, 88, 44, 60,121,242, 4, 31,124,240, 1, 20, 10, 5, 28, 29,
- 29, 1, 0,249,249,249,216,178,101, 11, 52, 26, 13,196, 98, 49, 92, 93, 93,249,107,214,172,233,238,232,232, 56,160,190, 58, 26,
-141, 70, 35,139,197,130,167,167, 39, 66, 66, 66,240,221,119,223,225,220,185,115, 56,124,248, 48,230,206,157,139, 86,173, 90,225,
-222,189,123,184,115,231, 14, 8, 33,245,222,100,248,124,254,216,125,251,246, 73,185, 92, 46, 76, 38, 19,202,202,202,144,153,153,
-137, 91,183,110, 85, 30, 63,126,188,252,212,169, 83, 21, 87,175, 94,173,188,126,253, 58, 1, 80, 45, 56,131,131,131,237,185, 92,
-238,219,102,116,169,163, 76, 38, 91, 49,107,214, 44,126,205, 49,155,151,151,135,209,163, 71, 11, 5, 2,193,114, 0,142,245, 17,
- 68, 68, 68,252,105, 23,139,208,176, 80,235, 63,137,154, 28, 57,214,252, 14,207,244, 4, 81,209, 47,220, 51,178,141,221, 22, 47,
-217,108,183,120,201,102,187,140,108, 99,183,168,232, 23,238, 60,211, 19, 28, 57,214,252,142, 25, 66,128,238,211,211,121,132,147,
-189,205,142,209,195,135,147,239,190,219,210,126,222,123, 51,121,158,205, 23,131, 47,153, 8, 87,175,127,161,111,144, 7,213,166,
- 21,205,255,238,187, 45,237, 71, 15, 31, 78,156,236,109,118,244,233,233, 60, 2, 13,132,157,145,218,243, 93,133, 60, 21,188,125,
- 91,161, 87,207,182, 96, 83, 41, 56,122,120, 55,114,115,115,145,147,147,131,252,252,124,209,176, 97,195,144,151,151, 87,121,249,
-242,101,185, 90,173,238, 9,224,105, 67,141,207,206,126,100,170, 44, 55,234, 76, 70,182,161,172,148, 83, 49,119,225,145,126,119,
- 18, 57,211,243, 20,174,195,184, 60, 91,238,224,254,157, 14,236,222, 21,130,102,205,252,209,177,211,128,183,108,197, 55, 90,213,
- 41, 94, 83, 17,253,211,209, 99, 39, 38,142,159,104,120,158,150,158,214,220,137,175, 37,132,232, 23, 46,251,190, 63, 91,228,222,
-198,219, 47,200,241,113,138,209, 57,100,233,219, 63,158, 58,241, 69,246,181,171,199,209,189,199, 72,184,186,248,246,124,231, 29,
-112,255,174, 22, 45,138, 16, 47,182, 88,156,170, 47, 45,245,100,120,188, 76,163,209,232,112,123,206, 28, 27, 29,135,227,108,212,
-233,114,140, 58, 93,142,142,203,181,222,230,231,231, 70, 8,177,183,113,115,123, 65,184, 92, 15,131, 78,151, 66,209,116,179, 90,
-159,206,121, 60, 55,177,167, 39,147,119,254,188,214,107,216,176, 18, 0,208,234,116, 14,207,211,211, 37,249,114,185, 36, 47, 63,
- 95,146,145,149, 37, 73, 77, 75,147, 36,167,164, 72,146, 82, 82,172, 31, 38, 36,136,239, 63,124, 40,166, 88, 44, 39,115, 56,159,
-231,228,180, 89,186,116, 41, 4, 2, 1, 12, 6, 67,109,215,108,168, 84, 42,188,243,206, 59,168, 0,186,152,195,105, 52, 26,169,
-127,173, 89,179,242,163,149, 43,189,163,162,162,120,157, 59,119,134,157,157, 29,236,236,236,208,185,115,103, 28, 57,122,148, 59,
-119,254,124,183, 21,187,118,189, 67,243,120,238, 13,113, 22,250,248,192,206,206, 78, 80, 37,178, 0,160, 69,139, 22,216,190,125,
- 59,239,236,185,115,146, 79,126,248, 97,115,216,245,235, 1,154,140, 12,149,125,243,230,132,203,227,185,153,219,159, 0, 80, 86,
- 89,233,191,101,235, 86,123, 7, 7, 7, 42, 63, 63, 31, 41, 41, 41,200,200,200,128,193, 96, 64,199,142, 29,169,195, 71,143, 74,
-180, 44, 86,167, 63,121, 8,253, 70,139,252,141, 48, 27,117,196,209, 98, 94,221,128,174, 0,160,162,163,163, 73,213,114,226,171,
-155, 99,181,152, 50, 71,104,189, 9, 20, 10, 5, 20, 10, 5,118,237,218, 85, 45,140,170,160,213,106,205, 17, 45, 1, 46, 46, 46,
- 40, 45, 45, 69,243,230,205,127,101,201,226,112, 56, 96, 24, 6, 28, 14, 7, 60, 30, 15, 26,141, 6, 30, 30, 30,168,168,168, 8,
-168,143, 83,173, 86,183,179,179,179,171,190,193,106, 52,154,106,145, 85, 85, 95,173, 86,139,146,146, 18,148,151,151,163,172,172,
- 12, 42,149, 42,208,156,246,154, 76, 38, 36, 36, 36, 60,107,209,162, 69, 59, 22,139, 5,177, 88, 44, 82,169, 84,213,190, 69,197,
-197,197,216,187,119,175,106,234,212,169, 14, 39, 79,158,108, 48, 97, 49, 69, 81,248,247,191,255, 13, 30,143,135,138,138, 10,124,
-247,221,119, 88,176, 96, 1, 56, 28, 14,202,202,202,176,125,251,118,124,240,193, 7, 96, 24, 6, 90,173, 22, 91,183,110,173,147,
-235,209,163, 71,207,111,222,188, 25,216,190,125,123,219, 99,199,142, 21,244,239,223,223,113,224,192,129, 16, 8, 4, 80,171,213,
-208,235,245,232,210,165, 11, 90,182,108, 9,185, 92,142, 51,103,206, 20,250,250,250, 58,220,186,117,203,148,151,151,151,209,128,
-184, 38, 53, 44,134, 48, 26,141,200,207,207,135, 66,161, 64, 65, 65, 1,114,114,114,144,157,157, 13,134, 97,208,128,206,130,189,
-189,253, 24,127,127,127, 22, 0, 8, 4, 2,180,107,215, 14, 43, 87,174, 52,168,213,234,241, 0,206,188, 42, 54,248,251,239,191,
- 63,118,237,218, 53,198,197,197, 5, 73, 73, 73,112,116,116,100,248,124,254,219, 90,173,182, 94,107,148, 76, 38, 11,255,233,167,
-159,236,170,196,117, 85, 63, 87, 84,188, 60, 29,163, 71,143,182,219,183,111, 95,184,193, 96,168, 83, 92,231,230,230,254,121, 86,
- 3,138,165,249,179,184,109, 4,224,180,243,183, 46,141,140,150,183, 94,188,100, 51,211,210,255,229,195,235,236, 57, 96, 62,255,
-236,195,214,147, 71, 88,159,178, 17, 40, 57, 13,241, 12,238,231,190,109,248,240,254,244,196, 9,193,201, 28,142,141,215,142,157,
- 97, 82,169,211,187, 53, 26, 97, 13,123, 7,107,120,121,114,169, 35,167, 30, 75,151, 45,255, 68,179,127,223, 23,169, 63, 30,140,
- 30,196,101, 95, 24,112, 38, 38,107,110, 93,220, 79,159, 41, 78, 86,104,248,126,202,162,120,202,206,169, 27,218,181,109, 1,169,
- 99, 9,190, 15,143, 68,211,102, 29,161,209,104, 96,109,109, 45, 52, 26,141, 58, 22,139,181,223, 28,145, 5, 0, 23, 47, 42, 76,
-173, 91, 43,180,172, 50,147, 97,222,130,207, 71,245, 31, 60,188, 85,159, 62,253, 76,231, 47,156,215,117, 11,212,229, 14, 30,216,
- 46,255,236,133,109,201,185, 57,105,190,173, 3,186,227, 81,226,229, 65,132, 32,129,162,106, 23,157,137, 41, 56, 91,105,122,116,
- 57, 50,114,182, 73,109,186, 39, 88,187,238,225,224,161, 67,167,249, 7,245, 8, 50, 93,136,185,164,229,162,240,177,117,247,174,
- 47,230,205, 28,124,236,135,253, 91, 7,156, 61, 19,238, 83,170,204,136,222,179, 7, 26,252, 77, 65, 40,202,209, 74, 36, 42, 40,
- 42, 43,107, 59, 38, 44, 76, 57,110,241,226,115,109, 24,166,149, 81,167, 75, 11, 3,212,132, 16,202,100, 48, 44,127,120,224, 0,
- 43,148,162,150,133, 1,166,117, 44, 22, 59,219,100,170,112,165,105,225,106,128, 9,123,109, 39,183,209, 96,112, 98,120, 60,186,
-224,242,101, 67,192,187,239,106,170,230,163, 80, 40,196,137, 19, 39,192,229,114,171, 95, 28, 14,167,250,189,147,147, 19,168, 87,
-219, 72,127,243,224, 87, 11,103,213,188,205,203,203,131, 68, 34,129,163,163, 35,242,242,242,112,253,250,117, 60,125,250, 20,108,
- 54, 27,131, 6, 13, 2, 93,135,111,243,235,156,227, 22, 47,238,239, 23, 16,224, 49,103,206, 28,250,245,251,163, 78,167, 67,113,
-113, 49, 70,140, 24, 65,159, 57,115, 70,118, 54, 51,115, 56,128,253,245,113, 6, 14, 29, 90,148,127,228, 72,173,191,221,190,125,
-123,234,151, 95,126,225, 13, 26, 56,112,209,135,235,214,109,251,122,223,190, 44,163,193, 32,107, 76,219,105,154,166, 41,138,130,
-187,187, 59,138,139,139, 81, 94,254,114, 5, 91, 44, 22,195,214,214, 22,122,189, 30, 38, 66,216,127,230,248,169, 75,139,252, 77,
-176,179,134,224,250,149,101,139,121,181, 46, 90,117,161,232, 85,243,198, 98, 50,153,204, 18, 89,108, 54,187, 65,159, 43,115,172,
- 92,175,195, 28,161, 85, 85, 87, 62,159,255, 43, 75, 86,149,192,170,170, 39, 77,211, 96,177, 88, 13,222,196, 95,137, 33, 86, 89,
- 89, 25,142, 30, 61,138,158, 61,123, 86, 47, 75,149,150,150, 66,161, 80,160,180,180, 20,149,149,149,120,254,252, 57, 46, 94,188,
- 8, 31, 31, 31,192,204,224,175,169,169,169,113, 77,155, 54,237, 80,117, 19,239,221,187,183,219,158, 61,123,114,134, 12, 25,226,
- 66, 8,193,170, 85,171, 10,187,116,233,226, 80,243, 38,223, 16, 88, 44, 22,174, 95,191, 14, 31, 31, 31, 16, 66,192,225,112,240,
-228,201, 19, 72,165, 82,152, 76, 38, 48, 12,131,130,130, 2, 88, 89,213, 31, 35, 49, 33, 33, 97,250,140, 25, 51,114, 36, 18, 73,
-155,162,162,162, 92, 30,143,215, 35, 54, 54,214, 93,167,211,193,218,218, 26,214,214,214, 56,125,250, 52,108,108,108,240,254,251,
-239,103,170,213,234,235, 34,145,200, 73,173, 86,199,231,229,229,173,106,204,249, 54, 24, 12, 80,169, 84, 40, 41, 41, 65,113,113,
- 49,148, 74, 37, 42, 43, 43, 27,172, 99,109,232,209,163, 7,162,163,163, 89,159,126,250,233, 15,169,169,169, 0, 0, 47, 47, 47,
-188,255,254,251, 44, 87, 87, 87, 60,127,254, 28,113,113,113,208,233,116, 32,132,212, 59,121, 25,134,233, 61,117,234,212,238, 30,
- 30, 30,148, 78,167,131,201,100,130, 70,163, 65,213,251,204,204, 76,248,249,249,209,158,158,158,111,165,166,166,246, 70, 29, 27,
- 43,106, 62, 48,252,209, 8, 9,249, 88,139,191, 33,242, 51,143,195,149, 45, 5,104,107, 16,245,113, 20, 21,190, 89, 20, 23,185,
- 92,190,110,233,199,191,188,251,245, 38,157, 83,118, 46,208,194,127, 36,124, 91,245,197,244, 41, 6,124,250,217, 81,120,120,182,
- 64, 70, 70, 6,122,247,238,205,201,201,201,153, 81, 94, 94,190,216, 92,238, 11, 23,110, 26,207,159, 62, 51,118,220,219,211, 58,
-244,235, 55,196,112,238,220,105, 36,196,159, 75,156,241,246, 24, 57, 49,149, 83,118, 54,130,123, 79,146,238,248,182,105,215, 11,
- 90,131,177, 7, 16,186, 9, 8, 37,117,207,119,104, 79,157,114,166, 79, 29, 15,159, 50,113,242, 59,109,251,246, 29,160, 63,119,
-225, 39,196,221,184,240, 96,243,166, 89, 87, 62,221,122,168,119,255, 65, 99, 90, 59, 58, 93, 63,237,223, 92, 51,211,221, 94,242,
-236,251, 61,197,248, 27,131,225,240,249, 6, 0,180,141,167,167,219,177,139, 23,211,219,177,217, 44,107,192, 72, 8,105, 1,192,
-129,102,152, 21, 39,103,206, 12,244,123,117, 35, 53, 0, 38, 63,128, 46, 5,180, 34,128,139, 58, 66,230, 48,124,190, 9,175,174,
-139, 52, 69,129, 16,242, 43,145,245,186,208,162,105,186, 65, 3, 64, 77,206,154,247,162,170, 7,234, 29, 59,118,128,199,227,129,
-203,229,130,205,102, 55,232,126, 81,147, 51,241,249,243, 62,123,247,239,231,213, 38,178,138,138,138, 80, 84, 84,132,242,242,114,
- 76,152, 48,129, 19,118,231, 78,123,188,114,253,168,139,211,195,217, 89, 35, 18, 8,242, 31, 61,122,228,210,170, 85,171, 95,213,
- 87,169, 84, 66, 32, 16, 96,255,129, 3,156,224,161, 67,223,235,123,250,244,102, 52, 16,255,170,182,182, 83, 20, 5,169, 84, 10,
- 91, 91, 91, 80, 20, 5,131,193,128,188,188, 60, 36, 38, 38,226,206,157, 59, 96, 81,148,225,207, 28, 60,181,105,145,191,161, 85,
-235, 55,203,135, 85, 22, 45,170, 46,235,139,185, 66,139,197, 98,189,177, 85,171, 46,152,179,116, 40, 20, 10, 31,230,228,228,116,
-115,117,117,133,193, 96,168, 22, 90, 53, 45,113, 85, 55, 61,129, 64,128,251,247,239, 67, 40, 20, 62,172,172,172,172,151,147, 16,
-242, 86,167, 78,157, 16, 21, 21,133,203,151, 47, 35, 45, 45, 13, 21, 21, 21,208,104, 52, 80,171,213, 72, 76, 76,132,201,100,130,
-191,191, 63, 68, 34, 17,132, 66,225,195, 42,203, 87, 93, 80,169, 84,185,108, 54,187,133, 64, 32,168,254,204,217,217, 25, 69, 69,
- 69, 38,189, 94,143,189,123,247, 42,101, 50,153, 72, 32, 16,152, 45, 92, 41,138,130, 92, 46,135,155,155, 91,181,143, 86, 89, 89,
- 25,164, 82,105,149,176,128, 70,163,129,149,149, 21, 8, 33, 13,157,163,202,148,148,148, 15,107,252,223,113,220,184,113, 63, 70,
- 70, 70, 54,139,137,137,193,173, 91,183,224,232,232,136,245,235,215,167,165,167,167, 79, 4,112, 71, 46,255, 99,253, 34,205, 25,
- 67, 69, 69, 69, 71, 31, 62,124,248, 86,167, 78,157,170,175, 18,189,123,247,166,122,247,238,237, 80,211,212, 95, 80, 80,128,219,
-183,111, 35, 38, 38, 6, 20, 69, 33, 57, 57,217,168, 86,171,127,172,135,154,227,234,234,186,103,229,202,149, 98,131,193, 80, 61,
-182, 5, 2, 1,248,124, 62, 56, 28, 14, 88, 44, 22,210,211,211, 49, 98,196, 8,201, 55,223,124, 19,174,209,104,188, 1,252,102,
-160, 46, 90,180,232,111,233, 99,163, 80, 67,119, 63, 65, 41,241,247,115, 74,220,185,227,211,110,179,231,188,188, 70,236,220,241,
-169,193,223, 79,154,120, 63, 33, 95,210, 65,138, 6, 39,230,153,152,172,121, 90,253,153, 97,103,206,254, 60,126,201,162,247,217,
- 94, 94,126,242,152, 75,119, 61,250, 26, 62,161,236, 29,172, 81, 84,168, 68,122,102, 62, 82, 51,180,196,203,203, 79, 30,119,251,
- 33,239,179, 45, 95,250,170, 42, 42, 15, 93,186,146,251, 83, 3,244,149, 87,175,167,141,220,252, 21,239,202,180, 25, 29,185, 2,
-129, 11,138, 11, 31,194,195,195, 17, 35,130,219, 96,247,190,235,144, 72,236,224,228,228, 4,154,166, 69,230,182,189,176,176,144,
- 58,122,240,234,187, 83,223,153,213,101,224,128,161,134,179,231, 78, 49,151,207,159,188, 30,190,115,197, 49,194, 82, 9, 41, 82,
- 38,104,210, 84, 22,255, 44,229,254,196, 62,253, 38, 64,192,177,242, 1, 90,214, 58, 96,171, 55, 24, 16,100, 70, 69,134,242,167,
-190, 51,187,235,192,129,195, 13,231,206, 29,199,185,211,251,110,174, 94,221,228,116,218,139, 3,156, 27,119,178,249, 35,199,206,
- 45,137, 62,243, 88, 59,102, 88,211,167, 46,162,118,106, 32,237,111,171,178,104,138, 82, 22, 22, 20, 88,179,217,108,117,248,164,
- 73,201, 0,160,103,152,162, 50, 22,203,145,162,168, 39, 0,158,172, 3, 28,192,229,150,142, 51, 24,140,139, 61, 60, 56, 76,110,
- 46,171,196,104, 52,178, 0,238,146,223,230, 95, 4,139, 97,242, 13, 26,141,187,219,192,129,172,138,140, 12,182,216,201,201, 0,
- 0,122,189,190, 65,161,133, 58, 54,173,188,206,105,110,251, 42, 42, 42, 96,170, 67, 8,190,206,153, 39,151, 55,121,245, 16, 94,
- 13,189, 94, 95, 45,178,138,138,138,160, 80, 40, 32, 18,137, 80,160,209, 56,153,195, 57,160,115,231,189, 97,161, 14, 57, 34,244,
- 0, 0, 32, 0, 73, 68, 65, 84,161,139,143, 28, 61,202,169, 41,178,170, 94,108, 54, 27, 27, 55,109,226, 44, 88,178,100,238,123,
- 12,179, 16,181, 44,131,214,213,159, 85, 15,237, 44, 22, 11, 12,195, 32, 35, 35, 3,153,153,153,200,200,200, 64, 70, 70, 6, 4,
- 2, 1,200,159,188, 9,232,111,236,159,133, 26, 75,133,179, 95,183,114,213, 27,222,161, 49,206,240,230, 10, 3,163,209,248,135,
- 10, 45,149, 74, 21,115,241,226,197,206, 35, 71,142,100,110,222,188, 9,153, 76, 86, 45,180,170,254, 86, 45, 71, 9,133, 66, 28,
- 59,118, 76,167, 82,169, 98, 26,152, 76, 23, 79,159, 62,221, 33, 36, 36,132, 61,125,250,116, 60,122,244, 8,115,230,204,129, 66,
-161,128, 82,169, 68, 81, 81, 17, 42, 42, 42,208,185,115,103,240,249,124,196,199,199,235, 43, 42, 42, 46, 54,180,116, 38,151,203,
-203, 29, 29, 29,157, 95,255,110,236,216,177, 78,223,126,251,109, 69, 82, 82,146,190, 91,183,110,214,230, 10,142, 42, 28, 60,120,
-176,218, 82,247,244,233, 83,124,251,237,183, 32,132,128, 16,130,187,119,239,226,243,207, 63,175,142,125,214, 72,220, 41, 44, 44,
- 52,232,245,122,248,248,248,192,213,213, 21,149,149,149,248,242,203, 47, 13, 0,238,252,183, 70,115,101,101,229,145,105,211,166,
-125,116,239,222, 61,103,134, 97, 94,154,180, 95,181, 79,167,211, 33, 37, 37, 5,137,137,137, 72, 74,250, 63,246,174, 59,190,169,
-234,125, 63, 55,187, 77,186, 23, 29,180,140, 2,165,139,101, 1,101,239,213, 34,138,130, 3,196,197, 82, 20, 5, 68, 16, 4, 4,
-148, 33, 32,160, 32, 75, 5,100,111, 40,200,110, 41,163, 32,155,238,210, 66,103,210, 38, 93, 73,155,125,199,249,253, 65, 91, 11,
-118, 36, 5,253,169,223, 60,159, 79, 62,185,185,185,247,201, 57,231,158,156,251,220,247,188,231,125, 83, 80, 82, 82, 82,253, 32,
-112,251,246,237, 82,154,166,247,214,197,235,233,233, 57,247,231,159,127,246,150, 74,165,143,245,231, 42,107,104,149,149, 84,165,
- 82,193,197,197, 5,253,251,247,247, 58,119,238,220, 92,163,209, 56, 15,255, 13, 80,175,190,156,214,249,227, 15, 95,194,200, 40,
-105,238,193,232,252,203, 43,190,157, 94,233, 12,239,149, 56, 50,202, 47,247, 78,170, 11, 94,125,249,112,103, 0,121,168,223, 79,
-139, 59,127, 65,113,164, 75, 23,215,152,131, 71,143,254, 50,123,230,167, 55,103, 76, 31,239,169,211,103,216, 5, 54, 19, 83, 0,
-144,153,109, 34,119,147, 56,195,138,149,159,222, 92,178,252, 7, 94, 97,113,217,196,223,127,175, 59,188, 65, 77,241,194,227,193,
- 46, 48,184,183,188, 77, 80,143, 22, 87,175,236,128,131, 84,143,182,193,157, 49,120,208, 11,136,137,189,141, 2,149, 1, 10,133,
- 2, 70,163,177,222,112, 9, 41,119, 15,141, 37, 20, 9,160, 8,149, 67,241,136,221,216,113,239,247,140,140,124,145, 68, 71, 31,
-101, 14, 31,218,113,105,239,175,107,247,243, 68, 66,129,222,228,108,162, 40,131, 26,188,132,164, 10,237,163, 7, 26,161, 68, 84,
-183,249,181, 50,176,107,104, 88,176,247,216,113, 19,157,135, 13, 29, 65, 78,156, 56,204,237,221,179, 45,102,239,150,118, 59, 56,
-158, 70,164,200,213, 73,212, 26, 90, 77, 40,177, 75,133,134,211, 21,102,182, 50,248, 70,190,106, 6,246,255,107, 59, 16,225,184,
-108, 98, 50,181,128, 80,152, 75, 24,198, 27, 52, 93,242,149,193,144,191, 72, 44,110, 62, 95, 32,120, 14, 20,197,153, 41, 74, 11,
-147, 41, 19, 0,220,114,114,124, 76, 78, 78, 5,124,131,161, 21, 88,182,214, 0,200,102,163, 49,175, 34, 55,215,199,173,119,111,
-201,253, 5, 11,164, 77,186,118, 53, 80,149, 62,196,245, 9, 45, 62,159, 15,240,120,156, 37,156,150,214, 79,175,215,131,171, 35,
-180, 74, 67,156, 12,195, 60, 38,178,170,132, 86,213,255,197, 18,206, 77,243,231, 95, 13, 24, 60,184, 36, 54, 54,182, 73,159, 62,
-125,168,242,242,114,148,151,151, 63, 38,182,124,125,125,169,208,240,112,233,238,152,152, 64, 75,219,211, 34, 17,205,227,253,229,
- 66,235, 95,142, 58, 19, 73, 11, 26,152, 66,179, 88,104, 89,104,209,162,105,154,134,151,151, 23,138,138,138,234,188,241,243,120,
- 60,216,219,219, 87,205, 17,215,187,242,206,104, 52,174,158, 49, 99,198,148,161, 67,135,122,180,109,219, 22, 42,149, 10, 77,154,
- 52,129,157,157, 93,181,239, 88, 21,223,205,155, 55,241,243,207, 63,107,140, 70,227,234, 6, 56,191, 91,190,124,249,135, 35, 71,
-142,116,243,246,246,134,171,171, 43,238,222,189, 11, 87, 87, 87,104, 52, 26,164,166,166,194,209,209,177,218,111,231,232,209,163,
-229, 70,163,241,187, 6,196, 27,137,139,139, 51, 59, 58, 58,222, 85,169, 84,252,146,146, 18, 65,105,105,169, 64,163,209, 8,213,
-106,181,240,228,201,147, 30,206,206,206,186,243,231,207,171, 2, 2, 2,248, 15, 30, 60,224,211, 52,221,160,122,165, 40, 10, 83,
-167, 78,133, 72, 36,130,209,104,196,234,213,171, 49, 99,198,140,106,159,172,229,203,151, 99,206,156, 57,213,194,121,243,230,205,
-214, 13,156,132,192,108, 54,131,166,105,139, 23, 40, 60,213, 19,177,101,130,189, 32, 61, 61, 61,170, 75,151, 46,167,247,237,219,
-231, 94, 25,147, 12,133,133,133, 40, 44, 44,132, 74,165, 66, 69, 69, 5, 24,134,129,159,159, 31, 10, 11, 11,113,248,240, 97,117,
-121,121,249, 96,212,179,226,144,207,231,143,235,217,179,167,224,201, 50, 84, 61,229, 85,137,119,137, 68, 2,185, 92,142,190,125,
-251,138, 99, 99, 99,199, 1,248, 87, 11,173,154,225, 29, 6, 13,126, 79, 20, 18,214,205,116, 39, 49, 58, 55,184, 69, 97,238,152,
- 17, 78,199, 1,224,118, 66,161,243,157, 84, 23,132,132, 69,145, 65,131, 93, 35, 10, 11, 54,181, 3, 96,174, 47, 93, 15, 0, 56,
- 75, 37,163, 6, 14,232, 42,119,148,201,120, 43, 86,110,254,237,199, 31,191,123,110,255,241, 63,194, 59,172, 88,249, 40,188,195,
-192, 1, 93,185,148,228,148, 81, 0,182, 88, 42, 94,162,162,134,223,250,121,235,207, 72, 73, 60,239,251,249,212,246,226,146, 66,
- 26,246, 14,254,136,232,216, 4,155,182,222,195,157, 59,119, 10, 76, 38, 83,223,122,251, 55, 69, 2, 18,147, 18,130,218,133,133,
-122,143, 29, 55,193, 41, 42,106, 4,162,163,143,224,215,109, 91,226, 94,121,125,228, 79,249,165, 26,190,151, 80, 42,146, 18, 78,
-204, 23, 57, 11, 68, 18,123,165,201,244, 40, 2,129, 80,104,231, 4,140,170,247,198, 51,105,194, 24,231,126, 3, 70,224,248,137,
- 35,248,117,219,166, 11, 95,134,189,186,165, 69,167, 16,170,235,115,223, 78,110,209,178, 69, 51,109, 69,161,134, 71,137,205, 6,
- 3,231,248,237,182,172, 85,153,115,198,101, 2, 88,137,127,233,170, 67, 49,203,222, 49,154,205, 99,252, 35, 34,174,203,175, 95,
-111,247, 13, 77,187,125, 1,148,124,105, 50,101,237, 3,114,203, 0,222,196,202, 49,125, 37, 96,167, 23, 8,124,156,121,188,219,
-229, 44, 59, 20,124,126, 34,106,127, 16,191,251,235,176, 97, 93, 62,206,200, 16,121,246,232, 97, 47,143,137,145, 86,102, 34,169,
- 87,104, 9, 4, 2,144,186,167,186, 30,227,164,182,111,231, 1,143,166,252,235, 26,227, 68, 34, 17,116, 58, 29,104,212,105,209,
-125,140,211,231,212,169,220,140,140,140, 54,110,110,110,143,137,172,146,146,146,234,109,131,193, 0,157, 78, 7,123,123,251, 68,
-125,237, 51, 34,143,113, 22,198,197, 25,150, 78,157, 58,239,141,215, 95, 95,123,246,220, 57, 59,119,119,119,168,213,234,199,132,
-150,201,100, 66,191,254,253, 69,203,111,221, 26, 11,141,102,190, 37,237,217,164,111,223, 6,253,129,249,124, 62,184,191,120,234,
-240, 63,128, 9,181, 9, 47, 94, 67, 83, 56,150,174, 58,172,227, 6,249,228,234,190, 57, 17, 17, 17,134,180,180, 52, 4, 4, 4,
- 84,139,149,154,191,233,228,228, 4, 23, 23, 23,220,188,121, 19, 95,127,253,181, 30,192,156, 6, 56,203,117, 58,221,107, 3, 7,
- 14,212, 11, 4, 2, 4, 7, 7, 87,199,207,226, 56, 14, 98,177, 24, 50,153, 12,183,110,221,194,240,225,195,117, 58,157,238, 53,
-252, 57,134,214,147,156,106,157, 78,247,230,160, 65,131,116, 73, 73, 73,232,217,179, 39,238,220,185,131,138,138, 10, 84, 84, 84,
-224,225,195,135, 8, 13, 13,133, 78,167,195,250,245,235,245, 58,157,238, 77, 0,234,250, 56,203,203,203,135,207,152, 49,131,191,
-107,215,174, 22,126,126,126, 97,157, 59,119,110,219,191,127,255, 86, 47,191,252,114,179, 97,195,134,249,180,105,211,198, 48,120,
-240, 96,207,161, 67,135,122,234,116, 58,225,229,203,151, 21, 52, 77, 15,109,160,156,213,226, 36, 45, 45,173,122,170, 80, 32, 16,
-160,168,168,168, 58,114,127,213,160, 84,135, 16, 30,208,144,216,174, 18, 88, 85,130,203, 2, 63,183,218, 56, 27, 60, 73, 44, 22,
- 87, 89, 60,137, 5,156,183,147,147,147, 7,246,238,221,251,246,123,239,189, 87, 94, 80, 80, 0, 71, 71, 71, 4, 6, 6, 34, 40,
- 40, 8, 30, 30, 30, 48,155,205, 56,116,232,144,246,240,225,195,247,212,106,117, 95,252, 57,134,214,128, 39,218,241, 97,109,131,
-108,149, 53,171, 74,104,217,217,217,193,207,207,175,170,109, 31, 90,211,158,141,196, 95,203, 89, 41, 96,250,247, 27,220,114, 88,
-228, 75,206,135,142, 92, 17,175, 93,119,248, 94,196, 0,108,118,111,174, 57,234,222, 92,115, 52, 98, 0, 54,175, 93,119,248,222,
-161, 35, 87,196,195, 34, 95,114,238,223,111,112,203,164,196,148,182, 53,243, 30,214, 86, 78, 59, 59,187,110, 61,123, 68,148,198,
- 94,186,192, 45, 89,254, 3,175, 95,223, 87,110,109,249,233,208,161, 45, 63, 29, 58,212,175,239, 43,183,150, 44,255,129, 23,123,
-233, 2,215,179, 71, 68,169,157,157, 93, 55, 75,234, 62,105,194, 24,231,200, 97, 35, 16, 29,125,136,217,191,123,253,242, 61, 7,
-210,123,191, 63, 37,174, 48, 45,237, 14, 81,230,157,130,144,151,141,228,228,100,117,165,200, 74,179,132,115,226,248, 49, 53, 69,
-214, 69,119,239,158,155,147,147,193,158, 57,115,140, 62,119,238,150,254,226,109,165,250, 70, 82, 81,137, 92, 85,242, 64,163, 41,
- 54,113, 28, 11,150,101,249, 95,125, 85,237,176, 91,235, 53,234,222,189, 15,206,159,221,137,109, 91, 55,170, 57, 14,134, 81,251,
-247,179,163, 70, 45, 32,205,154, 55,111,182, 99,247, 78, 42,234,197,151,156, 9,192, 13, 31, 57,194,101,215,158, 93, 84,203,214,
- 45,155, 7, 6, 86,135,180,249,215,245,165,207,129, 10, 10, 72, 86,252,254,123,103,135,158, 61,239, 50, 66, 97,208, 66,145,168,
-213, 26, 64, 60, 10, 96, 39, 2,244,124,128, 55, 31,240,211, 11, 4, 29,236, 25,230, 78,185, 78,215, 20, 0, 22, 17,242,160, 54,
-206, 5, 64,169, 38, 59,251,194,205, 31,126, 48, 54,121,237, 53, 55,113,147, 38, 78, 96, 89,170,106,124,175,235, 37, 16, 8,158,
-180,192,212,201,233,231,225,145,127,244,232, 81, 4, 5, 5,193,207,207, 15, 53,125,100,171, 2,114,187,187,187,227,192,129, 3,
- 32,143, 7,167,174,147,179, 83,139, 22, 55,151, 45, 93,106,226, 56, 14,165,165,165,127,178,102,149,150,150,130,227, 56,156, 56,
-126,220,164,121,148, 9,196,162,186,247,229,243, 43,222,232,213,107, 73,100,100,164, 57, 35, 35,163,122,229,117,149,101, 75,169,
- 84,194,193,193, 1, 6,163,209, 31,128,212, 18, 78,229,201,147, 50, 52, 48,174,215, 98,209,250, 43,250,210,191, 93,100,213, 76,
- 40, 61,193, 34,139, 22,195, 48,240,247,247,127, 44,165, 11,143,199,123,236,101,229,138,195,237, 73, 73, 73,167, 6, 15, 30, 60,
-239,249,231,159,159, 52,111,222, 60,126,219,182,109,161, 86,171,225,234,234, 10, 47, 47, 47,164,166,166,226,232,209,163,108, 81,
- 81,209, 6, 0, 11, 81, 75, 0,187, 90, 16,147,158,158, 30,213,190,125,251, 61,179,102,205,114, 30, 52,104,144,208,223,223, 31,
-132, 16,220,186,117, 11, 7, 15, 30, 52,111,217,178, 69, 83, 41,178, 98, 44, 44,235,105,185, 92,254,202,208,161, 67,119,140, 27,
- 55,206,145,101, 89,225,195,135, 15, 97, 52, 26, 65,211, 52,114,114,114,204,209,209,209, 21, 58,157,110, 12,128,211, 22,240,221,
- 44, 43, 43, 11, 61,115,230,204,184,203,151, 47,127,253,222,123,239,185,247,239,223, 95,196, 48, 12, 46, 93,186,164,234,212,169,
-147,151, 82,169, 52, 31, 56,112,160,216, 96, 48,204, 97, 89,214,162, 20, 60, 20, 69, 65,163,209,192,195,195, 3, 70,163, 17, 28,
-199,193,100, 50,193,193,193,161, 58,109, 18, 33, 4,214, 56,215, 63,209, 7,248,102,179, 25,175,191,254, 58, 56,142,195,234,213,
-171,193, 48,140,213,100,206,206,206, 55,110,223,190, 29,213,177, 99,199,106,241, 82,213,135, 36, 18, 9, 60, 60, 60,224,238,238,
-142,232,232,104, 8,133,194, 27, 13,249,187, 85,226, 78, 81, 81, 81,167, 51,103,206,116,187,119,239,222, 91, 0, 58,154,205,102,
- 63,150,101, 41, 30,143,167, 32,132,220,213,104, 52, 63,193,194, 20, 60, 74,165,242,235,183,223,126,187,211,206,157, 59, 29, 4,
-130, 63,254, 26, 2,129, 0, 18,137, 4, 85,193, 49, 9, 33, 48,153, 76,152, 59,119,174, 70,171,213,126,253, 95, 25, 37, 34, 58,
-119,197,166,245,107, 28,206,157, 63,165, 74, 78,199, 65, 87,215,228, 39,251, 95, 94, 97,193,166,118,242,220, 92,135,136,206, 93,
- 45,226,164, 77,230,226, 55,199, 76, 11,168, 76,193, 51,247,225,195,172,141, 59,182,175,202, 4,128,111,191, 91,221,166,176,184,
-108, 98,114, 82,202,168, 13, 27,118,119, 99,204,230, 98, 75, 56,255, 16, 47, 59,212, 32, 48, 0,184,118,235, 94, 97,139,225,175,
-157,156,211,186,165,211,139,202, 98,125,126, 69,133,238, 35, 0,153,150,214,189, 71,247,222, 56,127,122, 23,126,221,182, 67, 67,
- 56,190,193,195,195,131, 0, 64,114,178, 7, 73, 78, 46, 35,127,248, 21,187,104,133,228,206,194,105, 31,245,159,166,214,148,124,
-183,122,125,253, 83, 41,237, 59, 60,143,246, 29,158,199,148,143,190,112, 14, 13, 11, 14, 0,128,253,251,193,134,181, 78, 58, 54,
-239,203, 5, 47, 46, 92,184, 0,154,114, 35,170,210,245,164, 38, 36, 29,207,204,132,233,223,220,143,230, 49,204,165,133,132,188,
-172,139,139,107,215,237,179,207,126,191,184, 98, 69, 11, 53,159,223,253, 43,128,227, 81, 20, 11, 66,236,121, 60,158, 66, 70,211,
-183,202,197, 98, 31,138,227,158,115,100,217, 67,116, 61,249, 63,231, 49,204, 53, 76,155,214, 70, 87, 82,226,217,227,243,207, 61,
- 4,159,125,198,171,207, 25,190,230,255,215, 18,206,235,119,239, 30,159,248,254,251,249,243,231,205, 27,188, 97,227, 70,251,118,
-237,218,161,160,160, 0,193,193,193,240,243,243,195,153, 51,103,112, 96,239, 94,109, 89,121,249, 28, 0, 63, 90,194,185,253,196,
-137,212,182, 97, 97, 69, 27, 55,110,244,141,140,140,164,180, 90, 45,212,106, 53,212,106, 53,140, 70, 35, 42, 3, 66,147,180,244,
-244,100,154,166, 55, 88, 90,119, 86,165,178, 91,216,181,107,158,136,227,150,189, 50,114,228,140,133,139, 22, 73, 90,182,108, 73,
- 25,141,198,106,171,150,217,108,134,131,131,131,217,100, 50,185,163, 22,191,183,218, 56, 37, 91,182, 48, 42,149, 10,158,158,158,
-213,225,154,106,198, 37, 44, 47, 47, 7, 33,228, 63,155, 0,253,175, 68,157, 10,201,213,213,245,134, 64, 32,104, 90,211,186, 85,
- 91,238,188,154,251,104,154,206, 43, 42, 42,138,120, 66,241,214,229, 15, 21, 8,224,155,126,253,250,189, 50,125,250,116, 42, 54,
- 54, 22,135, 15, 31, 38,153,153,153,251, 43,173, 88,153,245, 60, 61,213,197,233, 40,145, 72, 62,145,201,100, 3,170, 66, 56, 72,
-165,210,123, 90,173,246,108,229,116, 97,121, 35, 56,157, 36, 18,201, 84,153, 76, 54,176, 50,253, 10, 28, 29, 29,111,107,181,218,
- 51, 70,163,113, 13,234, 78, 84, 93, 31,167,189,179,179,243,215, 30, 30, 30,111,126,246,217,103,238,113,113,113,138,243,231,207,
-139,202,202,202,118,154, 76,166,250,146, 74,255,137,211,205,205,237, 6,159,207,111,250, 23, 93, 35,180,111,223, 62,122,248,240,
-225,145, 99,198,140, 1, 77,211,248,241,199, 31,113,230,204,153,227,247,239,223,143,106,224, 9,247, 73, 78,143,166, 77,155,198,
- 78,154, 52,169,217,235,175,191, 46,117,117,117,133, 64, 32,128, 86,171,197,253,251,247,113,235,214, 45,114,228,200,145,138,155,
- 55,111,230,233,116,186, 62, 0,138,172,104,207,167,121, 18,127,140, 83, 32, 16,244,246,247,247,223, 61,127,254,124,199,129, 3,
- 7,218,187,187,187,131,207,231,131,166,105, 40, 20, 10, 36, 36, 36,224,212,169, 83,218,253,251,247,107,139,139,139, 95, 7,112,
-225,255,163,156,207,146, 51,164, 13,190,124, 34, 81,116,157,209,222, 27, 56,182,193,114,246,235,237, 51, 98,212, 43, 67,135, 16,
- 66,176,239,192,201,147, 49,113, 13, 38,149,174,179,156, 13,149,213, 18,206,224,214,188,249,137, 73, 9,143, 5,180, 12, 11, 13,
- 79, 11,105, 55,114,177, 37, 68, 53, 34,195, 63, 86,247, 26,211,177, 53,109,186,143, 77,179,134, 4, 34,106,196,168,151, 35,191,
-152, 51, 27,223,124,189, 4, 71,246, 29, 58,158,156,249, 88,154,160,127, 93, 95,170,121,111,249,138,207,239,199,227,241,252, 41,
-177,248,119, 90,171, 77,119, 4,132,229, 0,255, 43, 64,187, 80, 36,106, 5,150, 13, 3, 33,130,114,138,138, 94,193,178,174, 0,
-228, 13,113, 46, 22, 8,158,151,250,248,244, 90,205,113,179,239, 36, 36, 56,212,124, 96,171,178, 60,215,124,168,244,245,245, 85,
- 42, 20,138, 38,150,112, 70,125,255,189, 89, 39,147, 73,102, 47, 91,214,187,194, 96,232,189,112,225, 66,193,245,235,215,177,254,
-135, 31, 24, 67, 94,222, 14, 21, 48,181,142,217,144, 58, 57,155, 77,157,106, 55,115,253,250,119, 2, 91,183,246,122,235,173,183,
-132, 66,161, 16, 90,173, 22,185,185,185, 56,125,234,148, 41, 41, 57, 57, 73,163,209,188,104, 77,221,163,190,255,222,236, 18, 24,
- 8,169,167, 39, 57, 23, 19,227, 60,241,147, 79, 38, 53,111,209,194,121,240,144, 33, 66, 39, 39, 39,148,150,150,226,225,195,135,
- 56,116,232,144,178,162,162,194, 23, 0,107, 9,231,142,203,151,219,159,184,112,225,213,197,139, 23,139,195,195,195,225,236,236,
-140,242,242,114, 36, 36, 36,224,194,133, 11,198, 13, 27, 54,168,213,106,245, 36,150,101,143,254,133,125,233, 63, 57,117,248, 87,
-123,248, 91,114, 33, 34, 0,124, 89,185,189, 8, 13,231, 12,252, 55, 15, 62, 79, 34,192,205,205,109,147,193, 96, 32,122,189,126,
- 34,128,156,127, 96, 57, 5, 17, 17, 17,235,149, 74,101, 55, 66, 8,156,157,157,175, 36, 38, 38,126,128, 58, 86,222, 52,192,201,
- 7,208,205,193,193,161,171,163,163, 99,111,163,209, 24, 82, 57,253,150,172,213,106, 47,152,205,230,107,149,214, 39,246,255,185,
-238,124, 0, 3,125,125,125,223,231, 56,174, 53, 69, 81, 46, 44,203,130,166,233, 50,142,227,238,171,213,234, 45, 0,206,252, 3,
-202,249, 76, 56, 67, 91,225,101,194, 67, 72, 93,130,224, 49,161,245,132,128,160, 56, 36, 39,101,224,144, 21,229,228, 13, 25,224,
-191,142, 99,129,211, 49,185, 31,162, 97,231,218, 63,132,150, 5,226,197,106,145,217,138,255, 54,161,200, 99,156, 20,161,114,130,
-219,191,252,235,211, 8, 45, 75, 17, 26,132,222, 32,232,198, 17, 92, 75,185,143,243,255,181,177,110, 62,208,132,199,227,117,161,
-120,188, 86, 4,208, 82, 20,197,128, 16, 55, 16,146, 1, 62, 63,113,158,217,156,129,218, 19,152,215,201,249, 13,224,246,131,171,
-235, 21,158, 64,224, 13,128, 87,105,125,225, 56,138, 98, 9, 69, 49, 53,167,183,158,120,176,172,151,211, 12,180, 19, 74, 36,254,
- 44,195, 52, 41, 0, 28, 78,176,236,115, 6, 66, 42,154, 2, 95,222, 6, 82,173,173,123, 21, 39, 95, 34, 9, 56, 65,200, 8,149,
- 76,214, 94,169,215,123, 2, 32, 14, 50, 89,178, 70,171,221,102, 48, 24,214, 89, 91,119, 51,208, 78, 36,145, 52,101, 25,166, 9,
- 0,240, 4, 2,229, 30,163,209, 63,207,201,233, 45,131,209,216,204,193,193,129, 54,153, 76, 26,131,193, 48,134, 97,152,115,214,
-212,253, 62,195,132, 94,230,241,122,154,101, 50,119, 51, 69,201, 76, 12, 99, 54,153,205,185, 6,131,225, 30,128, 85, 0, 50,254,
-226,190,100, 67, 35,255,128, 54, 78, 27,167,141,211,198,105,227,252, 31,231, 92, 10, 56,125, 3,184,217,218,243, 47,229,148, 2,
- 8,168,124, 88,252, 55,214,253, 63,105,221, 18,216,218,194, 6, 27,108,176,193,134,191, 26,179,234,118,179,176,225,217, 65,135,
- 90,124,178,108,248,255, 5, 85,143, 42,181,198, 36,216, 24,101,123,214,198,105,227,180,113,218, 56,109,156, 54, 78, 27,231,255,
- 28,103, 67,220,255,198, 41,201, 9,181,236,219,244,119,252,176,205,252,107,227,180,113,218, 56,107,197,240,225,195,121,182,246,
-180,113,218, 56,109,156,255,117,240,108, 77, 80, 39,154, 84,190,158,245,177, 54,252,183,251,194,223, 1,191,202,151, 53,199,251,
-252,211, 26,245,216,177, 99, 28, 0,220, 75, 78,144,148,151,151,219,198, 34, 27,108,176,193, 38,180,254,230,155,214,211,220,220,
-158,246,198,184,132,162, 32,167, 40,200, 1, 44,121,134,199, 54, 4, 95, 15, 15,143,143, 67, 67, 67,119, 52,105,210,100, 10, 0,
- 47, 43,207,111, 35,149, 74,215,200,100,178, 88,153, 76, 22, 43,149, 74,215, 0,104,243,140,174, 27, 5, 96,162, 68, 34,137,241,
-241,241,201, 23,139,197, 49, 0, 38,161,241, 43, 87,219,226, 81,156,180, 69, 0,218, 91,115,162, 87,216,136,189,158, 97, 35,238,
-122,134,141, 72,112, 15, 31,222,198, 51,108, 68,130,103,216,136,187, 94, 97, 35,246,254, 5,253,245, 89, 94,223,103, 85,158, 28,
-138, 66,142,133,229, 89, 69, 1,185, 20,133,188,127, 72,249,255,132,118, 33,225,198, 81,163, 71,219,219,134, 99, 27,108,176,225,
-127, 30,190,190,190,175,248,248,248,156,245,241,241, 57,227,235,235,251,138, 5,167, 12,168,229, 38,193, 82, 20,216, 6, 6,253,
-250,142,107,200, 92, 89,243,220, 21, 22, 86,173, 38,103, 19,138, 2, 75, 42, 65, 81,224,188,188,188,214,250,248,248, 44,121,242,
-229,229,229,181,150,162,192,213, 56,150,173, 33,240,172, 53,171, 54, 25, 59,118,236,190,210,210,210,104,147,201, 20,157,158,158,
- 30,221,167, 79,159, 61, 79, 88, 34,234,228,180,179,179,123,163, 75,215,110, 55, 47, 92,186,150,158,118, 63, 75,158,148,250, 32,
-235,216,201,115,215,195,219,181,255,221,206,206,238, 13, 43,174, 17, 5, 96,162, 64, 32,136,113,112,112,200, 19, 8, 4, 49, 0,
- 38,243,249,252,163, 75,151, 46,205, 74, 76, 76, 44,188,124,249,114,217,133, 11, 23,242,223,123,239,189,251, 20, 69, 29,171, 69,
-176, 15,176,192, 2, 51, 47, 59, 59,251,164, 66,161, 56,101,111,111,255,181, 5,199, 87,115,122,134,141,184,171, 84,155,137, 82,
-109, 38,158, 97, 35, 72,141,237,187, 86,182,121, 67,215,232, 79,125, 65, 34,145, 4, 52, 32,232,255, 74, 19,253,159,202, 3,192,
-187,242,187, 8, 0,223, 87,190,170,150,179,123,219, 73, 36,207,170,127, 62,139,246,180,113,218, 56,109,156, 54,206,255, 42, 58,
- 85,190,251,224,145,191, 86,245,189,219,218, 85,135, 31,166,167,167, 59, 0, 64, 80, 80,208, 7, 0, 14, 88, 35, 36, 40, 10, 51,
- 57,142,240, 0,128,199,163, 62,239,219,183, 95, 39,123,123,251,199,162, 32,235,245,122,113, 76,204,249,254, 28, 71,168,202,227,
-102, 18,130, 53, 0, 10, 45,253, 13,147,201,200, 19, 10,197,224,241,168,105,225,225,237,154, 23, 21, 21,197,241,120,188, 29,249,
-249,249,165, 86,155,113, 40, 10,155, 55,111, 14,242,241,241,249, 83,180,102,133, 66, 33, 30, 49,226, 69,171,248,222, 6, 36, 70,
-137,164,171,136,162,124, 88,134,113, 1, 0,129, 64, 80,122, 93, 44,142,248,102,241, 98, 41, 69, 81, 92,113,113, 49,244,122, 61,
- 62,253,244, 83,251,164,164,164,151,138,138,138,214, 53, 64, 27,212,190, 67,167, 79, 79,157, 58, 25,162, 41, 41, 53,108,254,110,
-227, 77,189, 64,164,107, 17, 26, 44, 90,191,105,155,235,132,119,198,124,148,146,146,120, 27,181,167, 35,169, 9, 30,128, 67,159,
-124,242, 73, 88, 84, 84,148,184,188,188,220, 78,175,215, 55,223,177, 99,199,220,136,136, 8,135,142, 29, 59,138,119,239,222, 77,
-169,213,106, 16, 66,164,193,193,193,100,244,232,209,134, 61,123,246, 76, 1,176,182, 30,225, 59,243, 81, 91,242, 86,183,109,219,
-118, 62, 0,164,167,167,139,106,180,177, 48, 36, 36, 68, 6, 0,169,169,169, 95, 17,194,125, 2, 0,132, 96, 57,128,217,181,152,
-214,210,195,122,140, 2, 40,180, 78,188,180,207, 46,172,231, 40, 3, 8,238, 83, 64,122,229, 3,193, 66,160, 70, 92,168,199,145,
- 44,151,203, 27,149,155, 48, 50, 50,138,162, 40,106,255,205,155, 55, 15, 40,149,202, 22, 28,199,142,175,175,156,117, 93, 43, 79,
- 79,207, 83, 44,203, 26, 75, 74, 74,170, 3,101,122,182,127,185,155,187,163,172,191,170,180, 60,174, 56,233,200, 5, 11,251, 38,
-229,238,238,254,118, 81, 81,209, 18, 0,239, 39, 39, 39,119, 2,128,144,144, 16, 17,128, 27, 78, 78, 78,221,205, 38, 19,101, 27,
-255,108,176,193, 6, 27,254, 22,161,117, 11, 64, 36,254, 72,193,179,169, 49, 66, 75, 12, 0,113,113,113, 0, 32,105, 68, 65,168,
-154, 2,102,234,212,169,240,241,241,121, 82,188, 32, 54, 54,230,105, 42,251,216,111, 44, 90,180,200,161,172,172,108,192, 79, 63,
-253,212,139, 16,178, 66, 46,151, 95,109,224,252, 66, 66,176,156,199,163, 62,167, 40, 10, 18,137, 93,218,164, 73,147,110, 85,126,
-215,252,216,177, 99,210,225,195,135,235, 0,100, 1,128, 68, 98,231,199,231,243,130, 8, 33, 85, 55,220, 58, 5,225,171, 64, 32,
- 35, 22,247,155,248,253,247,204,115,195,135, 11,100,158,158, 20, 0,100,165,164,184, 47,255,246,219,238,165,153,153, 98,189,187,
-123,113,177, 86,171, 79, 75, 75,131, 68, 34,161,248,124,254,115, 13, 85, 88, 38,147,125,188,248,155,101, 50, 77, 73,153,222,160,
- 41, 55,241, 25,218,232,104, 47,101, 11, 11,148,197, 14,246, 50,221,231, 95, 46, 16,127, 56,126,220,199, 90,173,246,131, 6,168,
-166, 76,155, 54, 45,164, 75,151, 46,126,123,247,238,165,212,106, 53, 4, 2,129, 67,199,142, 29, 17, 17, 17,193,158, 63,127,158,
-106,209,162, 5,194,195,195,113,233,210, 37, 92,185,114,133,234,212,169,147,244,224,193,131, 99,105,154, 94,219,144,184,230,243,
-121,159, 6, 7, 7,119,148,201,100,166,160,160, 32,140, 31, 63, 30,132, 16, 12, 24, 48, 32,220,193,193,225,128, 86,171, 21,167,
-166,166,244,106, 72,100, 43, 19,143,140,174,178,108, 1,104, 7,130,251,170,196, 35, 53,167, 31, 67, 82, 83, 83,159, 47, 45, 45,
-197,163,235, 66,170, 19,152,247,234,213,203,154,190, 84, 72, 8,150, 15, 31, 30,245, 57, 64, 81, 3, 6, 12, 40,155, 50,101, 10,
- 47, 37, 37,229,205,151, 95,126, 41, 60, 61,253, 62,172,124, 24, 8, 26, 52,104,208,165, 19, 39, 78,184, 7, 5, 5,169, 74, 74,
- 74,170,191,240,118,119, 25,124,225,224,234,143,191, 94,179, 35,120, 59,161,202, 84,201,135,239, 53,208, 55,169,183,223,126,167,
-208,193,193, 97,228,254,253,251, 83, 21, 10,133, 64, 36,170,214,174,124, 47, 47, 47,207,160,160,160,201,110,110,110, 74, 62,143,
-231, 69, 64, 72, 67,253,243,255, 27,233,105, 41,194, 54, 65,193,180,109,188,182,193, 6, 27,254,133, 56, 94, 41,174,142, 63,249,
-133, 0, 0,162,163,163,171, 35,211, 70, 69, 69,213,249, 4, 76, 8, 41,188,115,231,142,191, 78,167, 3, 33,196,146, 1,187,230,
- 18,205, 66,138,226,173,231,241,168, 15, 40,138, 66,120,120,187, 7,171, 87,175,174, 45,167,151, 41, 60,188,221, 3, 62,159,215,
-146, 16, 2,138,226,253, 72, 8, 87, 88, 7,103,173, 55, 34,177, 88, 50, 19, 0,188,189,125, 50,127,251,237, 55,211,171,175,190,
-138,111,191,253, 86, 52,107,214,172, 25, 2,129, 96, 74, 78, 78, 78, 65, 61,229, 4,128,217,158,158, 94,210,205,155, 55, 7, 77,
-154, 52,233,150, 66,161,152, 13, 0, 62, 62, 62, 75, 0,132, 2,200,170,177, 15, 27, 54,236,201, 31, 63,126,124,154, 82,169,156,
- 93, 23,231, 72,160,149,127,112,112,191,133,113,113,132,103, 52, 82, 69, 23, 47,106, 84,133,133,116,134, 74, 37,221,122,227, 70,
-212,220, 37, 75,132,254, 1, 1,136, 61,122,212,163, 72,167, 83,169,141, 70, 67, 97, 97, 33, 97, 24,230,138, 5,117, 15,243,242,
-244,146,110, 92,245,227,117, 71, 33,159,243,106,234, 71, 9,221,220, 4, 60,169,147,152, 47,224, 25, 91, 54,111, 35, 6, 16,214,
-208, 53, 18,137, 68, 99, 7, 13, 26, 36,221,179,103, 15, 21, 30, 30, 14, 23, 23, 23, 92,188,120, 17,183,111,223, 70,105,105, 41,
-143,166,105,116,238,220, 25,203,150, 45, 67, 64, 64, 0,202,202,202,144,147,147,227, 33, 22,139, 61,105,154,174,171, 61, 31,235,
- 79, 51,103,206,132,143,143, 15, 24,134, 65, 73, 73, 9, 24,134,129,131,131, 3, 0, 32, 47, 47, 15, 71,143, 30,177,164, 47, 53,
- 8, 66, 8, 94,120,225,133,114,138,162,146,159,180,104, 89,195,233,231,231,183, 91,165, 42, 26,218,175, 95, 63,148,150,150,210,
- 11, 22, 44, 64,251,246,237, 17, 20, 20,212, 96, 57,125,125,125, 39, 50, 12, 51, 15, 0,204,102,243, 86, 59, 59,187,119,127,253,
-245, 87,247,154, 41, 66,170, 44, 89,133,202,226,210, 43,215, 19, 83,167, 77,124,181, 79,220,213,132, 92,179,112, 68,142,250,238,
- 17,117, 45,229,156, 45, 18,137,127,106,214,172,217,170,169, 83,167,250,184,185,185,193,104, 52,206, 45, 40, 40,192,228,201,147,
- 1, 0,195,134, 13,107, 47, 20, 10,127,123,239,189,247,208,162, 69,139,252,146,146,146,156,155, 55,111,142,215,233,116, 9,141,
-109, 79, 11,241, 84,156,117,136,172,127, 92, 57,109,156, 54, 78, 27,231, 95,195,105,169, 22,249,135, 66,129,199,195, 57,108,122,
- 76,104, 69, 69, 69, 81,209,209,209,196,130,138, 21, 55,109,218,212,223,222,222, 30, 0,138,173, 45, 5,199,113, 83,220,221,221,
-149,179,103,207,238, 17, 20, 20,100,154, 50,101, 74, 66, 86, 86,214,156,154,199, 52,111,222,252,235, 31,126,248, 1,105,105,105,
- 89, 75,150, 44,185, 84, 92, 92,108,109, 30,179, 89,132, 96,117,165,117,172,232,232,209,163,237,227,226,226, 62,248,238,187,239,
- 60, 63,252,240, 67,209,199, 31,127, 60, 6,192,183, 13,145,240,249,124, 93,109,211,133,181,193,199,199,199,196,231,243,235, 12,
- 18, 23, 5,216,219,137,197,125, 23,198,197, 17, 83, 86,150,238,231,149, 43, 29, 55,254,254,251,124,154,144, 38, 94, 94, 94,232,
-217,189,123,133, 29,159, 95,164, 44, 40,224,188, 90,181,226, 63,252,237, 55, 15,189, 88, 44,223,179,103,143,186,184,184,248,112,
-131, 38, 60,138,210,112,132,152, 28,154, 6,208,175,190, 52, 48,252,250,181,219, 41,142, 94, 30,188, 78, 29,195,219,167,164,101,
-221, 4,199,153, 41,138,106, 48, 88,160,179,179,115, 80,113,113, 49, 52, 26, 13, 60, 61, 61,177,122,245,106,120,123,123, 67,167,
-211, 33, 49, 49,145, 52,109,218,148,138,139,139, 67,211,166, 77,161, 82,169, 96, 50,153, 80, 94, 94,174, 52, 26,141,117,229,102,
- 44,228,241,248,191,240,120,212, 59, 20, 69,161,101,203,192,236,117,235,214,153, 56,142, 67, 72, 72, 8, 94,126,249,101, 28, 60,
-120, 16,137,137,137, 85,150, 39, 83,179,102,205,179,121, 60,170, 89,165, 86,106,180, 5,166, 42,181,143, 92, 46, 31,217,200, 63,
- 13,207,215,215,119, 76,235,214,173, 63,120,227,141, 55,104,177, 88, 12,173, 86, 91,213, 22,244,208,161,195,202,134, 15,143,114,
- 62,126,252,120,157,229, 52,155,205,243,242,243,243,125,244,122, 61,134, 12, 25,242,241,138, 21, 43,100, 98,177, 24, 0,192,178,
-236, 99,150,172,197,223,109, 63,245,201,188,117, 49,167,118, 47,243, 93, 60,235,221, 62, 99,166,124, 29, 3,224,100,109, 5, 51,
-153, 76,153,106,181,250,253,105,211,166,237,216,176, 97,131,235,156, 57,115,192,113, 28, 8, 33, 96, 24,166, 58,145, 56,199,113,
- 56,116,232, 16, 50, 50, 50,190,126, 66,100,217, 96,131, 13, 54,252,227, 96,133, 22,249, 39,194, 7,143,166, 13,241,164,216,250,
-219, 35,195,243,249,252,141,167, 79,159,238,216,171, 87, 47, 65,255,254,253,195, 79,158, 60, 25,158,159,159,159, 80,105, 61, 8,
-239,223,191,127,184,151,151, 23,214,172, 89,163,227,243,249, 27, 27,249, 51,213, 55,189,130,130,130, 91, 0, 86, 28, 60,120,112,
-249,196,137, 19,225,237,237, 29,170, 80, 40,254,214, 58, 59, 73, 36,157,222, 91,189,154, 17,210, 52,239,251, 21, 43,156, 86,198,
-196, 44,223,187,111,159,224,133, 23, 94,160, 8, 33,184,119,247,174,253,178,181,107,165,175,191,244, 82, 86,106,102, 38,115,228,
-212, 41,186, 48, 63,191, 36, 95,165,154, 7,160,164, 33,126,154,166,227,211,211,211,125,123,246,126,193,239,194,239, 9,183, 95,
-125,105, 88, 63,161,128, 71,221,207,202,187,225,227,237,225, 28, 27,115, 86, 79,211,116,124, 67, 60, 90,173,246, 33,195, 48,110,
-132, 16,207,216,216, 88,120,122,122,162,180,180, 20, 52, 77,195,100, 50,153,116, 58,157, 93,113,113, 49, 12, 6, 3,140, 70, 35,
-156,156,156,112,239,222,189, 66,134, 97,206,215,197,201,178,236,123, 18,137,100,145, 80, 40, 20,139, 68, 34,249,141, 27, 55,160,
-209,104,154,187,184,184,124,203, 48, 12,228,114, 57,226,226,226, 62,115,114,114,202, 2, 0, 59, 59, 59,136,197, 18,119,163,209,
-200, 0,200,111,108,155, 19, 66, 26,125,189,188,189,189, 3,236,237,237, 23,126,254,249,204,144, 14, 29, 58, 66,165, 82,129,227,
- 56,200,100, 50,232,116, 58, 56, 57, 57,161, 91,183,110, 15, 23, 46, 92,168, 32, 4, 19,234, 17,131,252,202,235,131,137, 19, 39,
-202,156,156,156,144,155,155,139,224,224,224,106,161,165, 80, 21,223,187,124, 61, 33,101,218,164, 81,189,119, 30,141, 73, 62, 21,
-123, 35,249,165, 33,221, 59, 80, 20,105, 94, 95, 25,149, 74,165, 74, 32, 16, 76,153, 56,113,226,162,160,160,160,150,132, 16,180,
-105,211, 6,131, 6, 13,194,111,191,253,134,180,180, 52,104,181, 90,246,234,213,171,187, 20, 10,197, 49,219, 16,110,131, 13, 54,
-216,240,151,226, 79,190, 89,143, 89,180,254, 78, 40,149, 74, 85, 74, 74,202,201,155, 55,111, 70,141, 30, 61, 26,177,177,177,111,
- 3,152, 6, 0, 18,137,228,237,209,163, 71,227,230,205,155, 72, 73, 73, 57,169, 84, 42, 85,207,226, 55,197, 98,177,193,100,122,
-100,156,178,179,179,179,179,242,244,230,149, 83,134, 0,208,188,158,125,117,155, 70, 4, 2,159,118, 67,134, 8, 74,111,223,214,
-108,190,118,109,209,142, 29, 59, 4, 61,122,244,160,104,179, 25, 44,199, 33, 48, 48,144,234, 63, 96,128,236,151, 29, 59,220, 88,
-173, 54,110,241,231,159, 95,220,244,222,123, 21,233,149,126, 96, 13,193,104, 52,174,253, 96,242,251, 3, 98, 98, 47,250,133, 6,
-183,114, 59,121, 58,230,150,187,187,179, 52,168,117,107, 89,113,105, 9, 59,103,214,103, 2,163,209,248,125, 67, 60,122,189,254,
-208,217,179,103, 95,242,247,247,247, 76, 72, 72,128,201,100, 2,203,178,232,223,191, 63, 8, 33, 18, 0,156, 64, 32, 64, 74, 74,
- 10,204,102,179, 50, 61, 61, 93,126,255,254,125, 9,128,165, 13,148, 47,219,104, 52, 34, 57,249,209,172, 93,211,166, 77, 7, 70,
- 70, 70,130, 97, 24, 12, 25, 50, 4, 71,142, 28, 25,152,156,156,188,178,166,230,123,218,107, 94,105, 33, 11,241,245,245, 61, 88,
-185,203, 34, 39,120, 63, 63,191,240,192,192,192, 13, 75,151, 46, 21, 53,109,218, 20,132, 16,184,186,186, 64,167,211,161,168,168,
- 24,161,161,161,240,247,247,199,210,165, 75, 1, 96, 87,125, 22, 55,142,227,160, 80, 40,240,240,225, 67,100,102,102,194,223,223,
- 31, 20, 69,161,188,188, 28, 12,243, 40, 39,183,180, 92,115,252,135, 95,142,245,221,183, 97, 94, 88,215,118,109, 2,174,221, 74,
- 82,142, 29, 57, 80,218,166, 69, 64,144, 42, 97, 1, 15, 88, 80,103,210,101,185, 92,126, 95, 46,151,143, 86, 42,149,162,178,178,
-178,136,129, 3, 7,174, 25, 48, 96, 0,110,221,186,133,139, 23, 47,190, 46,145, 72,148,102,179,153,241,246,246,158, 64, 81,148,
-147,217,108,222, 89, 92, 92,172,176,141,135, 54,216, 96,131, 13,207, 28, 85, 62, 90,168,241,110,157, 69, 43, 36, 36, 68,150,149,
-149,245, 86,243,230,205,197, 0, 96,111,111, 31, 26, 24, 24, 56, 35, 51, 51,179,220,218,210,232,116,186,189, 59,118,236, 24,180,
-106,213, 42,209,176, 97,195, 90, 29, 60,120,176, 11, 0, 12, 27, 54,172,149,163,163, 35,118,236,216, 97,214,233,116,207, 44, 38,
- 18, 77,211,189, 58,119,238,140,146,146, 18,100,101,101, 89, 53,133,114,236,216, 49, 41, 30,249,101,213,187,175, 62, 48, 38,147,
-171,139,159, 31, 47, 63, 38,198, 92,162,209,248,244,234,221,155,162,205,102,240,120, 60, 20, 23, 23, 35, 39, 39, 7,206, 46, 46,
- 84, 74,122,186,195,150,153, 51, 79,183,209,185, 0, 0, 32, 0, 73, 68, 65, 84,143, 53,239,208, 65,204,154, 76,238, 86, 20, 83,
- 91,164, 44,124,231,163, 41, 31, 30,218,185,115,151,103,153, 70,147, 97,111, 47, 53, 74, 36, 34,239,169, 31,125,196,150,148,148,
-140, 3, 80, 97, 1,207,210,157, 59,119, 14, 25, 50,100,200,221,128,128, 0, 47,149, 74,229, 93, 86, 86,198,150,148,148,240,241,
-200,215,138, 2,128,152,152, 24,104, 52, 26,134,101,217, 56, 60,138,133,101,178,180,160,205,154, 53,115,142,136,136,232,227,233,
-233, 9,181, 90, 13,119,119,119,116,236,216,177, 15,159,207,255, 41, 59, 59, 91,253, 44,123,253,153, 51,103, 28, 9, 33,207, 19,
- 66, 48,100,200, 16,139,206, 97, 89,246,221,200,200, 72, 17, 69, 81,208,235,117,176,179,179,135, 76,230, 0, 71, 71, 39, 4, 5,
-181,133, 92, 46,199,224,193,131, 77, 25, 25, 25,235, 21, 10,197,222, 6,184, 32,151,203,161, 82,169,144,147,147,131,162,162, 34,
- 0, 64, 81, 81, 81,181,115,254,179,128, 90,173, 30,209,173, 91,183,233,147, 39, 79, 6,195, 48, 24, 49, 98, 4,114,115,115, 87,
- 62,124,248,112,143,175,175,239,152,119,223,125,215,211,221,221, 29,211,167, 79,183, 7,240,149,109, 60,180,193, 6, 27,108,120,
-230,120,210, 71,235,207, 22,173,250,230, 68,189,189,189,123, 82, 20, 53, 87,175,215,139,171,166,100, 40,138, 18,123,122,122, 30,
-209,235,245, 75, 20, 10,133, 85, 78,113,101,101,101,154, 7, 15, 30, 28,137,143,143, 31, 53,114,228, 72,156, 57,115,102, 28, 0,
-140, 28, 57, 18,241,241,241,120,240,224,193,145,178,178,178,103,146,128,212,207,207,111,104,239,222,189, 71,118,238,220, 25,209,
-209,209, 96, 89,246,138, 53,231,215, 92, 97,136, 90, 86, 29, 86,237,179,136,140,207, 7, 69, 81,213,214,140, 34,149, 10,105,169,
-169, 40, 41, 45,133,209, 96,128, 86,167, 99,131, 90,180,208,171, 77, 38, 33, 5, 88, 59,247,149,125,243,250,213, 28,157, 86,235,
-229,238,234,166,151, 74, 37, 40,211,168, 69, 55,174, 95,173, 0,144, 97, 33,135,137, 16,210,251,183,223,126,155,199,231,243, 71,
- 59, 56, 56,224,131, 15, 62,224,247,233,211, 7, 34,145, 8, 70,163, 17,101,101,101,216,177, 99,135,138,101,217,150,149,231, 56,
- 72,165,210,109,124, 62, 63,175,188,188,124,110,131, 63, 96, 50, 13,139,138,138, 18,152, 76, 38, 44, 94,188, 24,243,231,207,199,
-144, 33, 67, 4,215,175, 95, 31, 6, 96,231,179,234,241, 28,199, 97,224,192,129, 53,157,225,147, 45, 57, 79, 40, 20,134,183,110,
-221, 26, 42,149, 10, 42,149, 10,158,158,158,240,245,245,133,183,183, 55, 86,174, 92, 73,214,172, 89,115,210,108, 54,175, 47, 42,
- 42, 42,180,164, 12,153,153,153,213,150, 65,131,193, 0,173, 86,139,220,220,220,234,169, 67,189,204,105,200,148,119,134,119,208,
-234,245,186,107,247,210,115,230,126, 60,230, 5,173, 94,175, 75,127,152,147, 6,172,229, 44,232,223, 19,198,141, 27, 55, 97,212,
-168, 81,168,168,168, 64,124,124, 60,186,119,239,142,229,203,151,251,196,197,197, 77,235,220,185, 51,132, 66, 33, 98, 99, 99,193,
- 48, 76,174,109, 44,180,193, 6, 27,254,201,248,151,250,103,213,139,122, 45, 90,254,254,254, 46, 44,203,126, 22, 25, 25, 57,240,
-165,151, 94,194,224,193,131, 31,251,126,231,206,157,142, 7, 14, 28, 88,178,118,237,218, 33,102,179,121,169, 53, 83,125, 28,199,
- 29,218,185,115,231,176, 23, 94,120, 65,218,183,111,223, 64, 0,144, 72, 36,166,157, 59,119,234, 56,142, 59,212,136,186, 84, 5,
- 98, 44, 4, 0, 95, 95,223,246, 2,129, 96,228,208,161, 67,219,191,243,206, 59, 72, 76, 76,196,142, 29, 59,238, 7, 5, 5, 93,
- 42, 44,180,202,191, 58,171,129, 85,135, 75, 26,178,110,241,197,226,226,178,130, 2, 23,135,128, 0,161,171,163,163, 34, 58, 58,
-218,127,192,128, 1, 84,110,110, 46, 74, 75, 75, 97, 48, 24,112,253,250,117, 78, 0,100, 11, 92, 93,169,236,248,120,138, 47, 22,
- 23,131,182,110,165,187,191,143,107,155, 47,103, 77,106,110, 48, 26,194,212,106, 53, 35, 16, 10,133, 77,189, 93,114, 83, 51,172,
-154,137, 51, 74,165,210, 8, 0, 2,142,227,116,110,110,110,210,211,167, 79, 67, 44, 22,131,162, 40,180,107,215, 14,118,118,118,
- 34, 66, 72, 14, 0, 56, 58, 58,138, 55,110,220,232, 60,102,204,152,139, 13, 17,119,234,212, 73, 40,145, 72, 94, 12, 10, 10, 66,
-124,124, 60, 18, 18, 18,178,227,227,227,155,117,234,212, 9, 1, 1, 1, 47,250,248,248,236,187,117,235,214, 51, 89,222,255,104,
-197,170,245,206,240, 44,203,114, 20, 69,129,199,227,129,227, 56,168, 84, 42,180,108,217, 18,235,214,173,195,234,213,171, 23, 43,
- 20,138,163, 86,112,177, 26,141, 6, 50,153, 12, 9, 9, 9,198,200,200, 72, 9,143,199,195,253,251,247,171,133,150,151,135, 91,
-104,247,206,225,193,139,191,219,126, 74, 38,145, 72, 6,247,137, 8, 73, 74,207,206, 35,132,106,112,218, 56, 36, 36, 68,212,178,
-101,203,113,163, 70,141, 66,102,102, 38,150, 44, 89, 82,164, 80, 40, 98, 78,157, 58,245,202,228,201,147,249,221,187,119, 71,113,
-113, 49,126,249,229, 23,230,198,141, 27, 63, 23, 20, 20,108,183, 13,227, 54,216, 96,131, 13,255, 16,161,229,239,239, 63, 74, 36,
- 18, 77,127,237,181,215,248,109,219,182, 69, 97, 97, 33,156,156,156,104,138,162,132, 0,224,226,226, 66,219,219,219, 99,210,164,
- 73,232,208,161, 67,207,153, 51,103,118, 23, 8, 4,235,228,114,249, 54, 75,126, 88,169, 84,234,120, 60,222,254, 15, 62,248, 96,
-233,237,219,183, 90, 2,192,239,191,255,254, 64, 46,151,207, 82, 42,149, 58, 43,235, 81, 21, 20,147,146, 72,236,174,181,105,211,
-230, 97, 68, 68,132,211, 75, 47,189, 4, 79, 79, 79,220,188,121, 19,203,150, 45, 75, 55,153, 76,243, 46, 92,184,192,252,221,141,
-204, 24,141, 5, 55, 14, 31,118,236,243,230,155, 78, 83, 35, 35, 87,124,248,193, 7,171,190,252,242, 75, 65,219,182,109, 41,157,
- 78,135,107,215,174,145, 3, 7, 14,208,191, 44, 90,180, 26, 50,153, 48,254,192, 1,177,201,100,202,182,210,114,215,187, 71,175,
-158,109, 87,172, 90, 11,131,190, 2,215,174, 28, 71,105,169, 10, 27, 55, 29,108,235,231, 71,122,231,231,231, 95,176,148,139,162,
-168,160, 51,103,206,120, 17, 66, 32, 22,139,177,112,225, 66,248,250,250,194,201,201, 9,229,229,229,152, 54,109,154,243, 39,159,
-124,226, 12, 0,137,137,137,213,225, 25, 26,130, 92, 46,239, 54,105,210, 36, 71,134, 97,112,242,228, 73, 19, 69, 81,115,207,158,
- 61,251, 83,187,118,237,196, 61,123,246,116,220,190,125,123,119, 0,177,207, 74,104, 53,242,188,251,167, 79,159,238, 60,122,244,
-104, 34, 20, 10,169,178,178, 50,184,184,184, 96,221,186,117, 90,133, 66,113,220, 74,174,133,179,102,205,154, 87,185,189,117,238,
-220,185,239, 47, 93,186,212,179,160,160,160,218,170,169, 44, 42, 57,223, 45,242, 35,182,184, 76,109,250,249,187,153,175,218,219,
- 73,196,115,151,254, 28, 75,243,113,181,193,126,197, 48, 98,169, 84, 42, 38,132, 96,255,254,253,200,206,206,126,183,184,184,184,
-128,101,217,131,159,125,246,217,140,182,109,219,182, 72, 77, 77,205, 46, 47, 47, 95,174, 84, 42, 31,218,134, 59, 27,108,176,193,
-134,191, 12, 85, 78,240, 85,171, 15,143,227,209,116, 98,221, 66,139,101,217, 73,167, 78,157,226,115, 28,135, 77,155, 54,225,198,
-141, 27, 68, 42,149,206,149, 74,165, 63,216,219,219,179,122,189,126,226,248,241,227,199,204,159, 63,159,215,179,103, 79,196,199,
-199,243, 90,182,108, 57, 14, 64, 77,161, 53, 0,245,196,218, 80,171,213,215, 11, 11, 11, 90,214, 8, 80,217, 82, 34,177,187,222,
- 64,101,158,228,124, 50, 40,102,215,133, 11, 23,106,125,124,124, 76, 9, 9, 9,216,176, 97, 3,119,227,198,141, 24,177, 88,188,
- 81,161, 80, 24, 45,228,124, 22,168,230, 20, 51,204,205, 95,103,204, 8,121,110,196, 8,238,253,233,211, 43, 68,246,246, 31,175,
- 88,187,118,102, 89,121,185, 47, 40,138,184, 59, 59,103,111, 90,184,112,201,144, 23, 95,172, 72,188,112,193,238,246,153, 51, 66,
- 79,154,190, 99, 77, 57,243,243,243, 47,196,198, 94,196,214,205,171, 96, 54, 27,161,200,127,164,211,138,138,213,104, 64,100,253,
-137,147, 97, 24,245, 43,175,188, 34, 2, 96, 63,118,236, 88,177, 82,169, 68,171, 86,173, 0, 0, 26,141, 6,199,143, 31, 71,112,
-112, 48, 0,224,222,189,123,213,219, 13,149, 83, 38,147,189,216,189,123,119,100,103,103, 35, 49, 49,241,156, 66,161, 40, 6,112,
- 46, 55, 55,119, 88,231,206,157,113,232,208,161,225,245, 8, 45,171,174,145,133, 66,235, 79,156,246,246,246,179, 14, 30, 60,248,
-238,149, 43, 87, 70,207,152, 49, 67,216,191,127,127, 0, 64,121,121,185, 14, 0,107, 13,167, 94,175,223, 8,160,122,229,108, 86,
- 86,214,175,211,167, 79,143,251,244,211, 79, 61,171,202,167, 74, 58, 26,175, 2,226,195,250,188,251,101,183,206, 97,109,191, 94,
-179,227, 84, 78,110,225, 14,117,242, 17,181, 37,117, 39,132,128,166,105,112, 28, 7, 55, 55, 55,109,113,113, 49,148, 74,229, 67,
-165, 82,249, 65, 70, 70,134, 85,117,127,150,125,222,198,105,227,180,113,218, 56,255, 71, 97,121,100,120, 66, 8,195,113, 28, 98,
- 99, 99,113,240,224, 65,214,108, 54, 79, 80, 40, 20, 53,163, 85,175,189,121,243,230,153, 87, 94,121,101, 91,106,106, 42, 63, 41,
- 41, 9,132, 16,214,154,210, 24, 12, 6,154,162,254,188,239,105,107,185,117,235, 86, 20, 20, 20,152,115,115,115,207, 50, 12,115,
-232, 41, 87, 47, 62,245,170,195,173,128,241, 13,147,233,236,252, 30, 61, 6,206, 59,115, 70,242,254, 23, 95, 24,223,126,231,157,
-207, 88,147,137,230,139, 68,156, 88, 38,227,177, 18,137, 48,241,194, 5,187, 53,147, 39,187,233,141,198,147, 59,172,112, 48,175,
-178,104,245,233,211, 19,111,191,255, 41,244, 53, 44, 90,241,215,211, 96, 52,195, 42,139,150,209,104, 12, 83, 40, 20,176,179,179,
-203, 1,224,253,214, 91,111,129,227, 56,232,245,122,148,151,151, 67, 46,151,171,223,121,231, 29,182, 82, 60, 9, 70,142, 28,233,
-100, 9,111, 96, 96,160,175, 80, 40,196,201,147, 39, 33, 20, 10,143, 3,128, 80, 40, 60,126,230,204,153, 97,175,191,254, 58,252,
-252,252, 2, 51, 51, 51, 41, 52,224,159,230, 21, 54, 98, 47, 1,218,128, 66,235, 71, 38, 56,180,246, 12, 27,113,151, 2,210, 43,
-163,198, 39,119,234,212, 9,176,208, 47,171, 38, 42, 23,119,172,166,105,122,223,204,153, 51, 63,232,218,181,235,160,249,243,231,
- 83,168, 12,213,240,148, 72,203,207,207,239, 53,123,246,236, 83,132,144,199, 68,191,178,168,228,252, 11, 81, 83, 72, 89,153,250,
-182, 42,249,232, 61,171, 44,166, 12,243, 84,225, 44,108,176,193, 6, 27,108,120,102, 86,173, 63,161, 78,161, 69, 81,212,166,222,
-189,123, 79, 0,192,167, 40,106,131, 92, 46,255,211,224,175, 80, 40,210,124,125,125,191,109,209,162,197, 68, 0,132,162,168, 77,
- 86, 22,170,144, 16, 44,227,241,168,153,143,196, 93,163, 2, 84, 86,165, 37,153, 9,128,226,241,248,219,110,221,186,245, 69, 78,
- 78,142,202, 66, 11, 68,189,120, 22,171, 14, 1, 96, 23,240,240,181,236,236, 83,211,195,195, 7, 12,153, 60, 25,237,135, 12,113,
-242,109,214,140,213,155,205,220,189, 75,151,168, 43,251,247,139,110,159, 57, 35,212, 27,141, 39, 15, 1, 57,214,150, 51, 63, 63,
-255,194,249,152, 11,167, 95, 29, 57,108, 80, 96, 11,223, 71,162,225,161, 28, 69, 37,234,211,214,136,172, 39, 68,239,136,117,235,
-214, 29, 21,137, 68,130,154,169,108,204,102,115,137,209,104, 12, 3,128,210,210, 82,223, 77,155, 54,237,230,241,120,217, 13,241,
- 37, 37, 37, 29,153, 55,111,222,200,172,172,172,211,185,185,185, 89, 0,144,147,147,147, 69,211,244, 54,133, 66, 49, 50, 59, 59,
-251, 0, 44, 88, 4, 64,128, 54,137,151,246,181, 3,128,176, 30,163,144,120,105,159, 29,128,118, 97, 61, 70, 1, 0, 26,155,203,
-176, 38, 42,195, 32,204,141,143,143,223, 57,104,208,160,241,120,138,152, 94, 79,138, 45,179,217,220,236,201,157, 85,150, 45,107,
-136, 76, 38, 19,173,215,235, 25,150,101, 5,102,179,153,152, 76, 38, 91,250, 26, 27, 26,130, 45,247,165, 13,255, 90, 16, 66, 58,
- 3,240,172, 26, 54, 43,223, 61,159,216, 54,161, 50, 93, 96,213, 80, 89,249, 89, 69, 81,212,245, 26, 28,213,251, 45, 56, 23, 0,
-138, 0,220,165, 40,170, 46, 35,200,166,186, 62,215, 41,180,228,114,249, 1, 88,144, 52,218,210,227,234,193,236,202, 60,113, 64,
-227,243,176, 85,115,176, 44, 91,152,147,147,243,212, 23,148,199,227, 61, 28, 62,124,184, 85,199, 55,116,204, 30, 32,251, 35,163,
-113,123,244,247,223,119, 60,185, 97,131, 31,203, 48,238, 20, 64,248, 98,113,177,201,100,202,242,164,233, 59,214, 90,178, 30,179,
-198, 60,200, 31,156,249, 32, 31,173, 91,183, 38,247,239,223,127, 22,131,234, 29,173, 86,235,223, 80, 23,208,233,116, 61, 45, 20,
-131,187,242,243,243,119,213, 34,216,119, 43, 20,138,221, 86,220, 41,210, 43, 69, 21,143,163,184, 87,195,122,140,218, 15,128,171,
- 74, 42,253, 44, 81, 80, 80,144,138,202, 56,111,255, 52,100,103,103, 27, 41,138,250,117,217,178,101, 99,111,223,190,189, 71, 46,
-151, 27,109, 67,177, 13, 54,216,240, 95, 22, 89, 20, 69, 69, 87,126,142,170, 52, 10, 69, 63,185, 93,117, 76,213,113, 53,143,169,
-226,120,114,127,125,231, 2,192,172, 89,179,190, 88,178,100,137, 20,128,165,201,152, 27,157, 84,250,175, 66,225, 63,132,163,166,
- 40,216,252, 87, 84,244,123,192, 4,134,185, 10,166,134, 79, 62,253,108, 13, 17,247,239,223,255, 79, 63,181, 86, 37,149,174,129,
-240,255,213,193, 39, 43, 43,107, 93, 64, 64,192, 70,185, 92,206,192, 6, 27, 44,184, 95,217,154,192,134,127, 41, 60,107, 19, 70,
-117,136,178,168,250,190,127,236,193,189,150,227,106,251, 76, 81, 84,244,146, 37, 75,162,172, 40,111,181, 69,139,103,187,118, 54,
-216,240,239,198,255,199, 74, 90, 27,108,176,193,134,255,196,147,199, 19, 86,172, 42,241,245,228,231, 89,179,102,125,129,250,103,
-156,124,240,200,138,229, 83,249,185,218, 95,139,194,163,149, 3,181,193,154,213, 4, 3, 26, 81,191,179, 54, 78, 27,167,141,211,
-198,105,227,180,113,218, 56,255,231, 56, 27,226, 62, 91,139, 32,138,172,107,170,175,190,105,196, 39,183, 27, 58,183,161, 99, 41,
-138,170, 43,204, 79,213, 84,225,147,239,127, 57, 6,216, 56,109,156, 54, 78, 27,167,141,211,198,105,227,180,113, 62, 13, 8, 33,
-157, 9, 33,145,120, 52,253, 77, 8, 33,145,132,144, 33,179,102,205,154, 93,181,111,214,172, 89,179, 9, 33,253,171,142,171, 60,
-166,250,156,170,125, 79,190, 63,185,175,190, 99,235, 41,226,132, 39,182,171, 63,255, 83,124,180,108,176,193, 6, 27,108,176,193,
- 6, 27,106, 69,213,138,193, 26,214, 38, 21,128,123, 75,150, 44, 41,173,225, 59,165, 2,112, 7, 64,135,202,227, 84,149, 34,173,
-166,111,149,169,242,179,169,150, 99, 76,150, 28, 91, 7, 54,213,177,109, 19, 90,117,161,131, 55,111, 81, 64, 83,175,136,202, 11,
- 0, 82,153, 4,152,171,140, 87, 68,170, 2, 23,113, 28, 8, 33,144, 43,203,110,222, 83,226,203,198,254, 94,144, 47,220,188,236,
-236, 86,115,132,244,168,220,117, 65, 93,108,252, 52, 81,131, 50, 75, 57,130,155, 32,196,142,135,207, 56,130,246, 0,192,163,112,
-215,192,225,219,148, 66,235,227, 73,213,214,207,195, 60, 49, 65,108, 47,125,205,217,197,181,117,105,105, 81,186,217, 96,220,151,
-164,194, 70, 52,194,193, 54,208, 21,207,115, 4, 95, 0,224, 9,121, 88,153, 94, 98,241, 74, 14, 27,108,176,193,134,167,181,142,
- 60, 85, 92, 60,138,162,216, 90, 56,169,167,228,180, 45, 84,176, 64,108,213,178,251,247, 90,246, 93,255, 39,149,219, 42,161, 21,
-234,137,201,160,176, 0, 0, 1,193, 87, 73, 42,252,104,213,249, 62, 24, 96,199,231,111, 1,192, 55,152,217,233,132, 67, 92,173,
-141,201, 67, 47, 59, 17,127, 37, 0,206,192,178,239, 37, 41, 44,247, 23, 11,243,195, 16, 1,199,251,149, 35, 68,200,114,100, 27,
- 8,162, 29, 68,184,124, 53, 31, 6,107,202, 26,208,212, 43,226,240,239,138, 65, 49, 63, 78, 69,215,246,173, 64, 88, 6,224,104,
- 72,123,126,134,115,223,189,133,174, 33, 1, 32, 28, 13,112, 12, 28,134,174,192,208,112,103,114, 79,217,184, 60,216, 65,190,112,
-107,230,225,149,176,121,243, 22,111,223,192, 80,138, 99,204, 72,253,253,244,152, 79,102,206,235, 23, 6,117,184, 37, 98,171,189,
- 15,222, 15,104,222,246,179, 79, 23,172,226,251,248,250,203, 56,218,200, 20, 60, 76,238,180,118,249,188, 3, 34, 94,246,202,187,
- 10,108,177,180, 47,135,122, 98,162, 64, 34, 30,101,111, 39,107,173,211,149,223,103,205,244, 62,158, 80, 48,228,219, 21,171, 59,
-246, 25, 56,204,129, 45, 47,224,209, 28, 66,247,238,217,221,236,251,117,235,135, 37, 40,216, 23, 1,112,214,212,153, 35,152,153,
-182,125,194, 48,161,128, 79,133,188,187,153, 15, 48,141, 18, 90, 33, 94,120,131, 34,104, 48,188, 4,161,112, 49, 89,137, 93,141,
-249,141, 96, 47,252, 68, 17, 4,129,194,126,138, 96,119,146, 10, 74,219,144,103,131, 13,255, 45,240,120,188, 24,142,227,250, 62,
- 99, 97,240, 60, 33,228,170,173,117,255,183, 97,157, 69,139,194,226,196,140, 92, 87,176,102,132, 5, 5, 46, 2,172, 19, 90,118,
-124,254,182,235,233,133,222, 96,204,216,252,245, 7,123, 76, 52,192,208,102,176, 12, 13,150,161,193, 48,102,176, 52, 13, 66, 27,
- 49,239,231, 24,192, 84,142,136,240, 54,219, 0,214,199,210,223, 16, 18,222,175, 55, 47,157,118,163, 76,106,236,250,113,201, 71,
-185,170,138,143,206,222,149, 23,133,122,233,103, 39, 41,241,139, 53,130, 32,102,195, 84,236, 56,116, 60,111,205, 79,218, 20,142,
- 16,184, 57,217,183, 29, 19,149,232,191,253, 72, 76,238,234,109,134, 20, 0,112,150,137,219,142,187,155, 30,240, 52, 23,193,203,
-206,110,245,198,245,223,123,251,184,219, 83,204,149,165, 96, 88, 22,254,205, 34,249,179,167,140,241, 89,252,221,150,239,160, 49,
-190, 93,223,249,109,189, 16,218,188, 69,200,244,109,199,175, 4,104, 53, 74,211,233,157, 95,100,192, 8,218,219, 47, 68,184,104,
-201, 42,254,156,207,167, 78, 51,177,121,215, 82,149, 72,106,104,172, 9,241,194,145, 37, 75, 87,180,239, 55, 52,202,129,171, 80,
-241, 13,218,138,160,205, 63,111, 89, 16,220,190,139,180,103,120, 83,145,114,223, 36, 74, 95, 94, 2, 51,207, 78,210, 47,108,128,
-147,126,236,235,244,230,173, 59,166, 36, 41,177,214,154, 58,179,228,143,190,199,113,141,143,186, 78, 17,244,188,125, 53,102, 34,
- 43,191, 14,194,210, 0,107,174,126, 7, 75,131,112,143,222,187, 78,250, 25, 64,227,132, 22,143, 96,208,217, 75,215,125, 10, 11,
- 20,157,191, 91,241,205,108,114,253,250,111, 96,241,107,114, 9, 46, 88, 43, 48, 1, 4,181,116,231,159,162, 89, 24,115,203,216,
-160,170,157,253,130, 36,221,124, 28,168,254, 57,106, 42,238, 98,134,254,130,109,104,178,193,134,255, 23,139, 9, 67, 8, 17, 60,
- 99,206, 97,132,144, 19, 79, 73,243, 25,128,247, 43,183,183, 0,248,246, 25, 20,173, 41, 0,239,202,237, 2, 0,121,182, 30,240,
- 84,120,210,249,189,209,113,180,236, 64, 56, 96,255, 75, 0, 96,111,109, 41, 8, 96, 7,138, 15,208, 90,140, 24, 58, 16, 30, 94,
-222, 0,173, 3,204, 58,128,214, 3,180, 22,160,245, 40, 82,100, 3,102, 45,144,249, 27, 24, 66, 36, 86, 87,215,168, 6,210,246,
-161,127,167, 0,120, 58,219, 97,234,136, 80,143, 77, 39,211,182,108, 57,157, 58, 32, 73,137,215, 44, 42, 43, 33,232,218,174, 53,
-214,108,209,166, 28,187,165, 26, 12, 0,195, 58,184,159,236, 26,218,204,127,245, 54, 67,202,137,123,165, 67, 0, 96, 72,152,211,
-111, 93,218,250, 4,112, 79, 17,158,134, 35,164,167,111,243,214, 20,123,123, 35, 56, 77, 30, 52, 26, 61,242, 30,110,135,171,223,
-115, 60,150, 67,239,134,206,183,231, 99,214,199,115,150, 9,117,154, 66, 19,103, 86,177,158,252, 82,190, 64,204, 81,200,191, 96,
-172,224,202,216, 79, 39,188,197, 76,255,242,235, 89, 0,198,212,199, 19,234,133, 41, 43, 87,174,110,215, 61, 34,216,171,224,192,
- 84,170,162,180, 16, 12, 95, 42, 25,241, 66,119,184,180, 9,229, 10, 99, 87, 82,226,192, 1,112,113, 15, 68,254,149,157,200,186,
-122,144,234,209,105,164,228,151, 93,162,177,128,185, 86,161,213,218, 3, 61, 6,247,234,178, 39, 48,192,215,135, 16, 14, 28, 71,
- 64, 56, 22, 21, 6, 26,179,247,102,130,101, 89,188, 50,184, 71,127,153,152, 34, 28,199,129, 16, 14,185, 5,197,186,243,215, 82,
-250,103,150,226,154, 37,150,170, 14,207,247,237,113,247,230,213, 96, 58,237, 24, 34,198, 44, 73,161,128, 75, 53,250, 92,143, 91,
-167,126, 9, 6,126,110,188,150,163,192,102,157, 92,138,128, 94, 19,248, 27,119,157,244, 84,171,242,199, 29,216,190,254,213, 31,
- 55,110,220,145,162,196, 36,107, 68,214, 39,189,196,151,190, 59,175,113,127, 33, 80,166,202,173, 97,167,108,233,202, 27,188,225,
- 68,210,199,241, 11,187, 6,207, 57, 78,202,226, 50, 12,247,108,227,150, 13, 54,252,189, 32,132, 60,115,177,149,157,157, 45,127,
- 26,177,229,231,231,215, 43, 63, 63,127,121,149,183, 10, 69, 81,203,155, 55,111, 62,239,143, 7,213,199,158,245,212, 44,203,142,
-201,207,207,143,171,143, 51, 50, 50,210,247,248,241,227, 45,106,112,182, 0,208,162,182, 99, 93, 92, 92,216,110,221,186,101, 29,
- 63,126, 92,110,235, 33,141, 18, 92, 86, 11,173,148,156,125, 83, 59, 25, 21, 21, 0,144, 98,193,241,143, 77,249, 25,104,118,233,
-214, 5,111, 45, 13,107,238,134,114,173, 9,167,111,100,129,101,105,176, 12, 83,105,217, 98,192, 50, 52, 6,119,240, 64, 55,195,
- 36,172,141, 78, 5,195,114, 75,234,227,124, 18,102,194,189,209,113,192,232,189, 28, 71,196, 18, 33, 79, 29,228,239,238, 53,253,
-149, 14,188,169, 35,194,160, 55, 51,163,119,198,102,156, 79, 86, 98,179, 69,156,220,159,195, 19,145,218,246,177, 76,131,117,175,
-199, 26,213,117, 64,159,158, 78,196,168, 6, 93,148,137,114, 29,141,204, 98, 26, 5,134, 50, 72, 40,133, 69,156, 28, 65,251,166,
-126, 62,210,203,123, 62,127,232,206,215, 8,188,248,140, 72,204, 99,192,114,132, 79,202,146,140,110,193, 3,133, 85,126, 91,245,
-149,211, 94,234,248, 86,175, 65,145,206, 57, 59, 39, 80,246, 65,131,225,213,201, 31, 15,227,182, 66,121, 35, 26,197,242, 44,202,
-201, 80,134, 38,238,173, 48,116,204,107,248,246,181,206, 40,215,148,131,175,200,112, 22, 11, 37, 46,128,185, 86, 78,194, 98,204,
-202,101, 95,251, 8,248,188, 71,237, 89,245, 98,105,232,141, 70,128,101, 96, 39,224, 64,145,170,239,104,176,180, 89,218,126,228,
-231, 31, 0,236,181,134,234,158,172,196,174, 80, 79,244, 4, 71, 7, 19, 90, 15, 10,184,148,164,250, 67,252,132,120,225,141,231,
- 6,191,211,147, 80,184,216,152,107, 20,238,142,168,136, 22, 14, 50,153, 38, 5,121,251, 63, 66, 6,236, 72,147,238,239,227,141,
-119,167, 72, 55,109,218, 52, 28, 32,147,241,184,143, 90, 53,103,112, 19,254, 68,154,197, 60, 0,208,211,100,171,163,152,122,119,
-229,238,120,119,240,255,200,240, 80,101,201,202, 40,230, 74,205, 49,115, 83,159,159, 30,221,167,221,237, 62,185, 20, 37,201,185,
-112,223,168,182,166, 47, 89, 9, 27,167,141,243, 47,231,116,114,114,106,217,188,121,243,121, 52, 77,247, 18,137, 68, 77,204,102,
- 51, 56,142, 43, 16,139,197, 23,179,178,178, 22,106, 52,154, 7,255,180,186,223,189,123,215, 26,177,213, 32,167, 80, 40, 68,106,
-106,234,125, 43,196,214,217, 39,206,255,245,210,165, 75,216,187,119, 47, 0, 32, 45, 45, 13,109,218,180,145,213,118,226,195,135,
- 15,101,125,250,244,249, 21,128,127,125,156,247,238,221,107,121,236,216, 49,236,223,191, 31, 0,144,154,154,138,160,160,160, 90,
- 11,115,233,210, 37,254,155,111,190,217, 18,128,252,111,184, 70,255, 5,145, 85,243,253, 15,161, 21, 29, 29, 77,162,162,162,168,
- 39,183,107, 65,102,128,171,184, 19, 12, 44, 0,100, 90, 91,130,228, 66, 44, 91,179,253,212,144,115,251,215,245,178, 19,241, 48,
-127,243,244, 92, 85, 73,249,243, 2,234,209,244, 11, 67,192,115,117, 16,199, 47, 25,215, 33,160,180,194,128,163,191,231,199, 37,
- 41,173, 51,145, 38, 41,112, 6,224, 92, 30,125, 98, 97,208, 43,131,198,125,123,102,247,238, 89, 67,218,127, 58,162, 61,142, 92,
-201,250, 20, 96, 26,140,250, 78, 56, 14,132, 99,170,157,223, 43, 31, 29, 0,238,241, 4,190, 28,200,163,125,156,117, 22,173,222,
-128,160,212, 11, 67, 29,165,226, 31, 38, 78, 28,239, 68,171,210, 81, 98, 18, 33,183,212,128, 2,189, 16, 21, 2, 47,228,167,220,
- 99,121, 20,206, 52,104,114,161,160, 33,140,193,197, 85,236,192, 11, 31,248,129,159,230,228, 23,165, 98,138,225, 59,189,188,216,
-165,232,220,170, 44, 70,171,210, 82, 20, 26, 12, 63,239,236,236,210,198, 80,156,197, 87,151, 22,193,197, 59, 12, 67, 70, 71,225,
-171,200, 80,148,107,180, 80,149,196,147,214, 62, 78, 84,246,197, 29,152, 51, 52, 4,197,133, 10, 24,105,128,210, 26, 75, 12, 38,
- 67, 69,157,237,200,195,198, 79,102,204,124,163,153,143,167,172,106, 81, 1,225, 88,116, 8, 9,196,192, 94, 93,113,230,210,101,
- 92,191,151, 6,174,114, 81, 1,225, 56,228, 41, 75, 11, 13,102,118,171, 85, 13,202, 50, 32,180,161, 86, 33,134, 70, 76, 25,134,
-123, 65,202, 2, 95,118,110,233,248,222,172,168,102,142, 50, 9, 5, 3,205,194, 96,162, 81,126,249, 7,184, 55,111, 7,169,157,
- 29,213, 9,122,193, 45,212,222,182, 6, 26,243, 30, 40,202,124, 80, 81,128, 55, 7,134,125,188,109,201,135, 50,202,238, 81,215,
-164,217,199, 45, 89,151, 23,116, 62,245,230,162,195, 49,123,247,189,238,251,237,103,111,245, 25, 60,109,107, 12,128,147,182,113,
-203,134,127, 35, 94,125,245, 85,187,194,194,194, 88,127,127,255,208,129, 3, 7, 74,123,246,236, 9,173, 86,139,211,167, 79, 67,
-171,213, 54,243,247,247,111,118,250,244,233,145, 57, 57, 57, 73, 77,155, 54,237,179,127,255,126,139,125,104, 43, 5, 16,191,122,
- 8, 6, 24,138,162, 80,185,143,170,220,215,232, 60,183, 98,177, 24,217,217,217,207,220,178,149,159,159,127,191, 49,150,173,138,
-138, 10,145,159,159, 31, 60, 61, 61,193,178, 44,180, 90, 45, 14, 31, 62, 12,181, 90, 13,142,227, 96,111,111,143,197, 43, 55, 35,
-229, 86, 44,174, 93,187, 6,181, 90, 45,106,136, 51, 47, 47,143,234,208,161, 3,140, 70, 35, 24,134,129,193, 96,192,217,179,103,
-171, 63, 11, 4, 2,204, 92,244, 29,210,110,196,226,246,237,219,200,203,203,251, 91,178,141, 88,161, 69,254,137,168, 51,102,214,
-223,190,234,144,101,153,217,155,182,237,142,159, 61,233, 53, 76,121,125,128,255,194,117, 7, 7, 36, 23, 97, 27, 0,132,120, 96,
-220,216,190,173, 3, 92,164, 66,124,181,243, 6, 64,200,236,167,253,189,196, 18,164,133, 54,225, 62, 61,116, 45, 59,246,139,215,
- 58, 33,208,199,169, 77,169,184, 68,156,153,105, 65, 78, 65,142,129,171,131,164,237,176, 14,238, 39,193,113,112,113,148, 4,131,
-101,224,226, 32,105, 59, 36,204,233, 55, 0,112,146, 10,131,107,179,124,213,133, 8,127,225, 4,169, 68, 48, 65,230,232, 18,240,
-246,240,129,246,195,134,143,180,119, 16, 50, 40,190,118, 26, 26, 97, 83,208,110,205, 96,164, 75,144,247, 32,131, 61,119, 53, 57,
-191,168,220, 56,189,193, 98, 18,196,229, 63, 72,245,108,217,126,160,107, 81,244, 28,101,203,119,118,182,224,129,227,149,239,120,
-185, 80,230,213,197,254,247,204, 7, 21, 28,169,213,162,243, 24, 52,106,117, 22,205,194, 71,207, 10, 28, 51, 98,126,193,172,161,
-237, 80, 90,162,132,193,204, 64,173,103,204,222, 46,118, 18,227,131, 4, 24,205, 12, 76, 52, 7,161,139, 31, 78,199,223, 43,226,
-104,250,183,186, 56, 51,139,113, 59,243,240,109,135,154,251, 2, 61,208,225,115, 39,251,219,160,245,200,206,147, 99,219,241,248,
- 78,153,197,184,253, 52,215,153,112,204,163,233,231, 26,150, 44,138,160,103, 99,156,224,131,189,208, 69,100, 39,250,126,249,167,
-111,134,190, 16,228, 38,225,242,226, 65,113,102,200, 88, 1,244, 98, 22,206,254,129,224, 76,229, 68,103, 48,148, 37, 2,245, 93,
-124, 62, 0, 16,179, 22,223,190, 21, 38,163, 92, 3,193,102,158,132,160,227, 4,208,149,214,254,140, 98,238,158, 57,102,110, 74,
-183, 25,199,122, 47, 58,211, 55, 89,126,124,126,178,223,171, 63,116, 0,182, 54,183,221,174,109,248, 55,162,109,219,182,222,249,
-249,249,137, 51,102,204,112,123,249,229,151,113,232,208, 33,104, 52, 26,108,221,186, 21,171, 87,175,198,130, 5, 11, 64,211, 52,
- 54,109,218, 36, 61,112,224, 64,151,245,235,215,231, 5, 4, 4,132,229,228,228, 20, 52, 32,176, 40, 0, 18, 0,194,202,123, 23,
- 5,128, 59,113,226, 4,134, 13, 27,134, 19, 39, 78,112,149,251, 88, 60,122,248,105, 84,238, 79,177, 88, 12,177, 88, 12,181, 90,
-253, 76,196,150, 80, 40,132,131,131, 3,196, 98, 49,202,203,203,173, 22, 91, 12,195,240,243,242,242,160, 86,171, 49,112,248,112,
-124,183,100, 9,250,246,237,139,129, 3, 7,130, 16,130,179,103,207, 98, 64,247,112,188,246, 98, 31, 36, 39, 39,131, 97, 24,139,
-202, 91, 80, 80,128,194,194, 66, 12, 25, 62, 28,155,215,175, 71,215,174, 93,209,182,109, 91, 48, 12,131,216,216, 88,188, 58,184,
- 59,236, 94, 26,128,180,180, 52, 91,167,182,220,154,245, 76,124,180,158, 26,137, 42, 92,229,142, 92,136,126,125,112,151,168,225,
- 61, 66,177,121,207,185,175,225,169,217, 13, 0,238, 70,201,226,183,250, 6, 34, 41,167, 20,231,110,203,163,147,139,240, 76, 86,
-107,112, 44, 60,220,157,164, 0, 95, 12,189,153, 99,156, 50, 27,118, 96,230, 8,129,180,215,231, 24, 59, 60,201,191,107,168,191,
-127,213,170, 67,135, 97,171, 48,238,222,253,128,206,109,189, 3,192,210, 0, 75,195,233,181,157,192, 34, 89,131,229,232,222, 66,
-124,230,147,169, 83,187, 13,125,105,180,189, 88,234, 12, 86,147, 11,186,224, 30,138,211,227,160,149,182, 65, 65,118, 38,246,158,
-186,166, 78,207, 43,214,240,120, 56, 93,168, 54,126,150, 89,138,138,134,120, 13, 52,150,204,155, 51, 61,114,239,238, 61,142,146,
-192, 30, 84,198, 15,195,212, 98, 1, 35,241,108,241, 28, 79,103,231, 65,190,217,186,199, 73,107,194,210,134,120,116, 90,205,193,
-179,167, 79,190,214,186,101, 15,199,135,215,143, 67,111, 48,194, 72, 3, 97, 93,250,128,101,137,152,226, 81,156, 19,159, 79, 41,
-139, 75, 65,209,108,225,197, 59, 15, 21,151,238,100,242,141,142, 88, 90,111,116,145, 39,213, 61,197,255,120,120,159,142, 0,173,
-199,139,189,218,225,187, 29,231, 62, 2,216,119,158,238, 34, 63,178,104, 17,160, 71,168, 39, 54, 16,130, 30, 55, 14,175, 14,142,
-120,233, 19, 88, 99,209, 10,243,192,208,144,150,190,191,124,183,248,115, 55,247,166,109,248, 20, 71,131,120,183, 7, 52,121,132,
-202,139,135,179, 95, 87,176,190,221,177,105,237,138, 10,142, 35,187, 81, 79,104, 11,150, 3,184,156, 11, 96, 83, 14, 33, 51, 51,
- 19, 30,205,110, 0, 20, 15,164,249, 67,152,153, 71,167, 25,205,228,248,154,173,199,250,126,214,111, 73,216,240, 96, 65, 64,252,
-157, 12,229,232,119,125,165,207, 7,240,131,146, 20, 50, 94,145, 86,203,217,198, 47, 27,254, 77, 48, 24, 12, 7,151, 45, 91,230,
- 22, 21, 21, 85,101,145, 65,124,124, 60,182,108,217, 2,153,236,241,113,114,216,176, 97, 32,132,184,205,159, 63,255, 32,128, 23,
-234,226,236,214,173,219,240,219,183,111,203, 59,118,236,152, 89, 41,182, 68, 0,120, 9, 9, 9,188,220,220, 92,202,213,213,149,
-248,250,250,210,114,185,156, 3,192,190,251,238,187,252,125,251,246,181,214,106,181, 23, 26, 43,180,196, 98,241, 51,241,217, 18,
- 10,133,160, 40, 10, 98,177, 24, 34,145, 8,132, 16,171,196, 22,203,178,130, 19, 39, 78,224,198,141, 27, 88,208,177, 35, 62,245,
-243,131,155,155, 27, 98, 99, 99, 65, 8,129, 76, 38, 67, 73, 73, 9,118,239,222,141,126,253,250,129, 97, 24,145, 37,188,251,247,
-239,199,205,155, 55,177, 40, 34, 2,159, 58, 59,195,193,193, 1,103,207, 62,154, 13,148, 72, 36,200,206,206,198,217,179,103,209,
-167, 79, 31, 91,167,126, 74, 88,220,121,122, 3,130, 18, 10,222,102,147, 30,132, 33, 0, 5,223,144, 16,136,146,147, 31,119,206,
-177, 4, 60, 30,230,172,221, 22, 29,185,234,147,225,212,132, 17,157,124, 23,254, 18, 51, 25, 0,222,123, 37,200, 79, 42, 17, 96,
-205,145, 36,194,227, 97,206,179,168, 96, 72, 8, 68, 84, 49, 38, 15,236,218, 22,242, 50, 19, 50,228,101,231,147, 1,139,178, 56,
-159, 91, 53, 22,219,143,198,230,174,222,110, 72, 33,132,192,197, 65,210,118,220,221,140,128, 95, 78,220,204, 89,185,215,144, 66,
- 56, 2, 23,169, 48,248,157,228,238, 13,174, 58,140,240, 23, 78,152, 54,125,122,247, 17,239,204,176, 99, 82,246,193,148,113, 10,
-156, 89, 15,141, 89,132, 50,190, 55,242,114,114,240,205,166,232, 92,141,214,244, 90,162,202, 58,129,153, 94,140, 10, 1,165,121,
-249,155,175,190, 56,179,100,241,124, 7,125,102,108, 5,159, 98,244,252,230,189, 5,139, 23,172,162,202,141,166,209,153,165, 40,
-111,136,199,232,136,165,203, 86,174,141, 28, 63,102,100, 74, 80,155,222,238,172,252,129,187, 65,163, 81,238, 60,121,211,187,242,
- 73,145, 2,128,140,188, 98,168,212, 90,134,101,232, 11,142, 66, 44, 76,178,196, 58, 88,137,150, 94,240,140,234, 17,246,166,167,
-163, 8,250,138, 50,120, 57, 10, 49,184,107,171, 55,233,223,211, 62,127,160,180, 70,174, 61, 41,180,104, 16, 90,143,171, 75,251,
- 5, 19,150, 14, 6, 75,195,124,247, 87,235, 45, 99, 20, 62,157,210,203,193,201,213,244,144, 7,173, 12,176,247, 0,229,212, 12,
-112,110, 65, 9, 67, 70, 67,158,153,200,124,244,230,152,226, 7, 89,121, 63,121,216,215, 63,173, 77,115, 4, 92, 86, 44, 42, 10,
- 51,144, 32, 55, 35, 76,249,104,182,221,169,240, 22, 88, 91,196, 28, 27,254,163,200,206,206,126,107,246,236,217,151,186,118,237,
-218,196,195,195, 3,237,218,181,195,209,163, 71, 49, 99,198,140,234, 99, 58,118,236, 8, 66, 8, 74, 74, 74,176,108,217,178, 2,
-185, 92,254, 86,189, 15,232,137,137, 41,219,183,111,239, 21, 26, 26,106, 22,137, 68,101, 0, 36,101,101,101,118, 37, 37, 37,148,
-193, 96, 0,199,113,156,179,179, 51, 43,151,203,233,215, 94,123,205,120,229,202,149, 86, 90,173, 54,251,105, 44, 90,254,254,254,
- 9,197,197,197,106,138,162,158, 58,244, 67,149,200,242,240,240,240,172,168,168,224, 0,148, 54, 38,244, 3,195, 48,136,136,136,
-192,169,184, 91, 56,113,238, 10, 52,242, 84, 76, 30,255, 22,218,181,107,135, 83,167, 78, 53,250,154,117,232,208, 1, 39,207, 94,
-194,165, 27,119,144,157,118, 23, 31, 77, 30,143,176,176, 48,156, 60,105,243, 94,176, 2,199,241,184,111,214,241, 39,133, 86,159,
-232,232,232,170,161,255, 79,242, 53,216, 3, 29,132, 46,226, 95,231, 15,109, 21, 34, 28, 56, 31,148,208, 30,251,218,156,236, 62,
-231,155, 31, 82,248, 94,217, 99, 18,148, 13,175, 14,123,236, 79,163, 68, 34,185,150,178,235, 78,114,240,155, 47,118,245,199,230,
-163,210, 47, 1, 96,116,207,150,248, 61, 93,133,107,105,202, 93, 73, 42, 36, 62,109,173,195,189, 32,101,139,176,107,217,199, 35,
-250, 52,107,234,141, 45,135, 46,129,162,112,208,162, 27, 46, 33,164,107,104, 51,172,222,254,228, 10, 67,239,128,149,123, 13, 41,
-167, 19,203,135, 2,192,192, 96,233,111,157, 91,185, 6,144,154,142, 91,181,192, 94, 44,152, 56,116,228, 88, 59, 38,237, 40,144,
-117, 22, 20, 99,132,222,204, 65, 81, 84, 14,157,179, 63, 98,227,239,232,213, 6,211, 39, 73,170,198, 89,241,146,139,144, 41,186,
-126, 39,167, 66,171,247,145,122,182, 50,240,121, 28, 87, 97, 36,248, 61, 41, 75,147, 84,128, 84, 75, 56, 50, 51, 97,122,222,143,
-233,185, 97,219,222,121, 66,145,120, 52,159, 2,229,229, 34,243,220,176,106, 17, 28, 29, 29,192,153, 42, 0,173, 10, 47,127,248,
-141, 42, 65, 78,183, 4,128, 54,238,112,232,217, 82,184, 77,192,163,242, 98, 50,204,115, 27,250, 13,138,198,164, 49,131, 59, 10,
- 57,147, 22, 31, 47,219,131,141,159,143,192,216,254, 33,194,227,151,211, 38, 1, 88,216,216,107, 77, 88, 6,132,214,227,133, 47,
-226, 82, 40,224, 18, 1,122,220,216,187, 56, 24,184,101, 49, 71, 39, 64,200, 10, 91,182,255,223, 0, 0, 32, 0, 73, 68, 65, 84,
-168,144,246, 1, 50, 17,151,119, 25, 92,222,101,194,247,239, 14, 42,160, 23, 69,121, 71,144,239,151, 47,208,110,222,188,229, 52,
-199,195, 87, 22,132,202, 0,203, 1, 69,105,151, 96, 50,153, 64,179,128,193, 96,128, 86,171,133, 44,227,100,181,143,150, 72, 72,
- 13,153,250,246,240, 14,164, 66,174, 59,150,194,228,108, 25, 31,252, 2,169,144,235,174,230,176,105, 69, 90,163,205,154,101,195,
-191, 17,153,114,185,124,200,176, 97,195,206,157, 58,117,202, 45, 60, 60, 28, 0,112,227,198,141, 71, 15,157, 17, 17, 8, 10, 10,
- 66, 97, 97, 33, 94,127,253,245, 34,133, 66, 49, 4, 13,248,252,150,151,151, 63,216,191,127,127, 19,173, 86,219,113,238,220,185,
-202,102,205,154,105, 12, 6, 3, 85, 86, 86,198, 49, 12, 3, 87, 87, 87,113,199,142, 29,209,173, 91,183,138,248,248,248,230,185,
-185,185,229, 0,178, 26, 83,248, 17, 35, 70, 32, 46,238,209,162,189,103, 17, 87, 75, 36, 18, 33, 60, 60,220, 47, 51, 51, 51,191,
-242,222, 98,245, 24, 95,243,246,114,231,206, 29, 92,184,149, 7,129, 73, 15,177, 74,142,171,135,246, 99,248,196, 15,192, 48,141,
-207, 45,127,231,206, 29, 28, 62,123, 21, 50,137, 0,169,169,137,216,191,127, 63, 38, 79,158,252, 84,156,141, 68,189, 90,228, 31,
- 14, 5,234,240,211, 18, 0, 64, 84, 84,212,133, 42,107, 69, 77, 4, 6, 66, 44,169,192,252,129,157,252,102,142,238,209,138, 79,
-107,228,224, 88, 14,124, 33,224,229,225,132, 95,127,221,213,114,215,158, 61,241,235,215,173, 95,203, 49,204,156, 4, 37,116, 86,
- 20,106,254,170, 61,151, 70,255, 58,189,143, 96,242,208, 96, 55, 0, 16, 9,120, 88,115, 52,145, 1, 48,255,105,106,251,188, 31,
-236, 42,104, 76,240,114,119,254,114,246,251,145,110,125, 34,130,112,225, 90, 2,214,238,143,143, 19, 43,177,221,226,206,205,209,
-120, 82, 63,213,182,234, 16, 92,195,126,151, 44, 75,188, 69, 50, 87,152,179, 98, 0,179, 1, 6,163, 25,185,197, 44,114, 75, 12,
- 16, 72, 69,184,145,150,167,119, 47, 64,244, 83, 84,155,146, 73,237,124,231,125,189,178,169, 65, 95,193,104, 74,139, 24,145,248,
-170, 80,106, 47, 81, 88,227,170,112, 53, 31,134, 94, 45,132,207, 1, 28, 95,108, 71,116, 95, 76,123, 91,150,159,116, 10,173,121,
-114, 80,132,192, 62, 36, 18,142,246,124, 81,143,230,194, 28, 0,144,201,164,226,101, 95,205,112,254,228,243,175, 26,244, 1, 11,
- 1, 68, 65,129,222,159,132, 55,115, 69,220,205, 20,196,221,203, 78,140,187,145, 26,214,183,157, 47,130,154,186, 76, 21,151,150,
- 45, 77,134,245, 22,210, 71, 23,134, 1,104, 67,245,170,195, 16, 47,188,209,121,244,220,186, 86, 27,214,138, 22, 0,151,198, 18,
- 80,124, 62, 64,241, 30,173,128,204,189, 12,129, 75, 32,217,181,247,176,110,203,150,237,139,146,139, 44, 95,156, 65,179, 96, 53,
- 26, 13,100, 50, 25, 78,166, 49,198,177,131, 69, 18, 30,143,135,220,180, 91,127, 56,195,187,241, 66, 69,125, 23, 7, 95, 94,208,
-249,148,163,152,146,248, 70,126, 21,194,220,219,158,215,216,155,132, 13, 54,252, 19,160, 86,171,239, 38, 39, 39, 15,110,223,190,
-253,214,143, 63,254,216,113,204,152, 49,190,227,199,143,231, 1, 64, 97, 97, 33,183,122,245,106,249,247,223,127,175, 46, 42, 42,
-122,135,166,105, 75, 66,153, 16,133, 66,113,229,167,159,126, 82, 93,188,120, 49,172, 75,151, 46,146,231,158,123,142,115,117,117,
- 21, 72, 36, 18,214,100, 50, 25,210,210,210,216,204,204, 76,159,178,178,178,251, 0, 50,208,136,140, 21,149,214,171,133,124, 62,
-127, 30, 33, 36,252, 89,248,104, 73,165, 82, 95, 0,247, 41,138,106,109,237,180,225,159,110,216, 2, 1, 74, 75, 75,161, 43, 72,
-132, 93, 94, 58,218,203,120, 8,117,117,128,147,147,211, 83,137, 34,181, 90, 13,104,243,113,233,210, 29,128, 97,224,236,236, 12,
-103,103,231,191, 93,104,213,165, 69,254, 37,152, 80,203,190,250,125,180, 66, 61, 49,217,222,132,213, 19, 35, 91,137, 90, 4, 52,
-133, 49,239, 6,238,228, 86, 96,206,243, 93,146,248, 18, 71,195,196,183, 70, 68,140,124,181, 57,250,116,235, 76,181,240,113,158,
-186,116,213,143, 31,134,162,104, 70,146, 18,107, 44, 41, 81,146, 10, 15, 56, 40,183,196,220,205,155,212, 84,170, 7,199, 17,196,
-220, 83,224, 94, 86,233,150, 20, 21, 30, 88, 83,187, 80, 31, 12, 16,128,183,135, 16, 98,231, 44,147,149,135, 6, 53,245, 24,240,
- 66, 7,222,144,222, 17, 16,241,129, 75,191,223,193,167,171, 14, 94,229, 56, 18,121,203,194,105,195, 71, 43, 12, 31, 23, 80,143,
- 86, 24,210,143,173, 48, 36,132,144, 71,171, 14,235, 55, 62,240,249, 84,129, 46,251,186,183,208,189, 13,244, 25, 49,200, 42,229,
-144,173, 44,135, 70,224, 13, 99,126, 62, 64,184,156, 11,245, 59, 86,215, 11, 15, 15, 15,175,150,161, 65,173,126,216,182, 31,102,
-157, 26, 15, 98,183,162,162, 84,129,197, 27,142,182,242,243,115,239,157,159,159,127,193,138,193, 38,232, 92,244, 46, 47, 16,128,
- 47,148,224,248,250,189, 40,114,183,135,135, 84, 4,238,255,216, 59,239,176, 40,174, 54,138,159, 41,219, 88,150,206,210,139, 72,
- 4, 68,177,247, 18, 53,182, 24, 49,246, 22,141, 45, 42, 49, 26, 53, 38,118,163, 49,198,110,196,216, 75,242,217,187,209,136, 73,
- 84, 18,177,139, 93, 80, 17, 65, 81,122,239,236,178,101,202,247, 7, 44, 1,165,236,162,105,102,126,207, 51,207,108,153, 61, 59,
-253,158,121,239,189,239, 85,103, 96,226,180, 17, 86,189,186,143,176, 2,128,231,143,238,192, 83,174, 54, 74, 87,103,135, 1, 67,
-186,248, 89, 67,175,198,174, 95,239, 20,147,192,187,187,207,220,143,237, 82,223, 90, 54,164,131,167,205,226,228,220,129,200,170,
- 93, 82, 81, 67, 68,171, 44,194, 87,139,222,134, 71, 0,182, 62,135,216,131, 87,210,205, 7,117,111, 46, 23,211, 4,193, 23, 38,
-129, 55,179,199,230, 93,135, 11, 37,122,211, 70, 98,231,128,197,173,151, 61,253,178,228, 60,193,206, 94,203,110,126,116,118, 65,
- 27,101,106,106, 42,116,165,117,135, 79,179,185,223, 63,236,222,128, 77,204,227,180,103,150,247, 31, 68,152, 41, 37, 95,172,218,
- 29,198, 3, 66, 54,105,129,127, 53,106,181,250,150, 90,173,110,244,197, 23, 95, 12,159, 59,119,238,219,230,230,230,117, 1,160,
-168,168,232,169, 94,175,191, 80,122,125,154,210, 59,144, 7, 16, 19, 27, 27,251, 52, 54, 54,214,113,239,222,189,214, 0,100,165,
-223, 21, 3,200, 5,144,134, 87,232,113,104, 48, 85, 4, 65,124,249,186,246,131,193, 84, 17, 4, 81,175, 54,191, 39, 73,146, 37,
- 8, 2, 4, 65, 64, 42,149,226,226,197,139, 24,220,187, 59, 30,158,202, 69,128,181, 2,173,198, 76,196,193,179,103, 65, 81, 20,
- 8,130, 0, 69, 81, 38,149, 35, 52, 77,227,210,165, 75, 24, 57,108, 16,164, 52, 96,101,101,133, 47,190,248, 2, 39, 78,156, 0,
- 77, 11,163,244,153,192,182,114,134,203,200, 60, 90, 4, 22,159,221,185, 84, 12, 86,143,147, 59, 87, 35, 36,178, 80,251, 40, 3,
-243,252, 50, 16,124, 4, 5, 92,198,183,187,131,206, 94,138, 92, 53,118,104,160,252,157, 46,221,241, 78,231, 46,116,195,150,157,
- 22, 0, 21,140, 86, 55, 84,147,107,131,229,240,245,182, 95,163, 38, 30, 12,139, 38,160, 43,192,208, 30, 45,121,150,195,215, 53,
-108,204, 75,154, 86,102,138,131,151,174, 94,181,129,174, 16,207,238,252, 46,171, 83,247, 45,128,213, 33, 38,230, 49,214,239,250,
-145, 11,187,254,104,143,150,193,167, 79,114, 80,100,172,102, 73, 73,201,192,202, 92,226,247,110, 67,203, 95, 56,240,176,150,139,
-235,243, 28, 11,107,185,168,126,247,250,242, 95,120,158,231, 45,204, 68,245,121, 86, 95,163,166, 90,203,108,221,245,195,142, 53,
-227,198,141, 51,207, 76, 76, 69,114,126, 36, 10, 37,174,208,203,221, 17,123,231,130, 90,165, 97,140, 41,196,171,220,159,153,153,
-153,233,183,194,179,113,112,203, 50,232,181, 26,164, 39,150,120,213,228,204,124, 88,218,187, 94, 77, 74, 74, 50, 90, 83,199,112,
-121, 3, 70, 76, 16,155, 89,192,108,228,128, 64, 73,108,150, 6,205, 92, 44, 74,110, 26,133, 25,120, 24,122, 9,157, 75,219,152,
- 62, 73, 32,225,217,196,197,168,245,180,144,137, 63,237,213,220, 21, 79,227, 83,112,241,126,210,174,167,217, 72,102,163, 82,118,
-197, 38,231, 6,245,109,227,129,181, 39, 30, 76, 1,244,251, 77,217,118,127, 7, 12,231,121,116, 40,105, 12,175, 6, 15,116,240,
-119,192,112, 35,123, 26,190,164, 73,139,241,193,154, 95,158,207, 63,124, 35,179,239,204, 15, 58, 90,182,107,247,158, 4,140, 22,
- 5,106,141,254, 97, 46,242, 77,209,204, 87,115, 91, 1,108, 53,124,113, 43,145,219,211,113,225,213, 11,251,199,187, 43, 13, 94,
-253, 66,172,230, 42,128,171, 99, 91,155, 45, 16,119, 89,226,119,117,113,235,211, 17, 41,220,222, 11,177,101, 57,180,106,188,142,
-106,137,160, 41,104,254, 21,154, 44,128, 61,122,189,126, 79,110,110,238,235,212, 76,198,203,121,157, 94,105,219,203, 87, 19,242,
- 60, 79,151, 70,179,106,106, 12, 95,173,102,249,106, 66,158,231,127, 46,141,102,213, 20,213,170,160,201,113, 92,114,139, 22, 45,
-108,251,244,233, 3,150,101,241,248,241, 99, 60, 79, 72, 64,183,160, 41,176,182,182,198,133,123,247,240,232,209, 35,124,249,229,
-151,208,235,245, 56,126,252,120, 98, 77,154, 52, 77,235,222,122,235, 45,113,191,126,253,192, 48, 12,158, 60,121,130,164,164, 36,
- 76,159, 62, 29, 86, 86, 86,184,117,235, 86,153,102,102,102, 38,104,154,214, 85, 18,221,250, 51,206,165,127, 59, 47,153,172,234,
-141, 22,192,130,213, 35,239,236, 66,172,187, 8,157, 78,143,250, 15, 50, 16,247,224,143,136,212,102, 42,252,222,201,123,145, 81,
- 79,111, 93,126, 71,130,244, 8,152,250, 36,241, 56, 11, 41, 22,178,130, 2,232, 10, 44,241,228, 23,196,165, 21, 20, 62,206, 66,
-138,201, 79, 12, 28, 75, 64,167, 2, 82,110,226,202,133,243, 8,187,118, 23, 55, 34,162,216, 43,183,162, 15,146, 28,190,126,152,
-133,199,181,120, 10,129,162,247, 90,140,142,136,241,104,233,235,232, 1,150, 1,207,233, 97, 53,116, 63,198, 60,104,231,209,210,
-219,218,163, 36,146,165,135,205, 71,191, 3,107,100,213,234,221, 76,208,111,147,156, 56, 61,176, 32, 55,171, 77,215, 78,109,205,
-173,252,123, 33, 51, 38, 26,143,239, 94, 82,223,138,140,189,114, 51, 65,191,237, 85,142,174,171,171,235,219, 93, 59,249, 97,232,
-196, 57,208,169,242,240, 36,236, 7, 20,102,167,226,226, 85, 5,162,242,243,219, 2, 48, 58,162,117, 53,158,105,136,248, 28,180,
-175, 35,138,183,128,198,233,195,192, 62,144, 18,197,224, 52,249, 32, 84,153,136, 77,210,230, 13,220,146,192, 2,128, 92, 74,208,
-230,124,158,165, 81,145, 71, 79, 59, 31, 57,165,199,238,179,247,193,113, 37,195, 55,113, 28, 54,239,254, 61, 54,232,235,145,205,
-208,192,195,166,201,157,164,116, 2, 38,132,252, 9, 30, 29,111, 28,252,170,126,241,111, 11, 0, 78,135, 75, 83,109,235,119, 92,
-151,221, 17,181, 28,110, 39, 50, 25, 73, 0,130, 64,171,182, 78, 93,247,235,130, 22,103, 31,116,152,241, 81, 95, 75,240,175,165,
-135,110,244,131, 84,246,237,214,203,159,159,230,248,138,245,185, 37,145, 45,127, 62, 57,159,191,115, 33, 86, 35,100,133, 23, 16,
- 16, 0, 0, 20, 22, 22, 78, 28, 51,102,204, 86,145, 72,164, 4, 64,112, 28, 7,142,227,232, 85,171, 86,137, 88,150, 37, 73,146,
-100, 41,138, 98,126,254,249,103, 61,203,178, 25,197,197,197, 19,107,210,100, 24, 38,118,210,164, 73,111,213,212, 67,241,192,129,
- 3, 6,147, 21, 43, 28, 9,163, 76, 86,249,121, 89,148,139,174, 38, 72,251, 85,251,145, 11, 23, 2, 32,192, 99,209,131, 12,196,
-189,184, 72, 68, 54,146, 27, 80,186,233, 13, 91,118, 90,104,248,141,169,107, 86,204,178,131, 90, 54,242, 61, 0, 0, 26,158, 29,
- 89,155,173,203,215,168,135, 52,109,217,246, 32,199,243, 52,195,243, 59, 72, 14, 71,139, 25, 60, 52,166,167, 93, 85, 36,167,231,
-222,234, 21, 96,197, 3, 37, 85,134,101,213,133,165,105, 28,120,158,231,203,170, 11, 87,203,144,153,167,169, 49, 15,212,229, 56,
-109,119, 45,115, 99,194,153,203,119, 38,178, 44,239, 68, 81, 68,170, 90,203,108,125, 85,147, 5, 0, 73, 73, 73,231, 67,207, 38,
-157,185,215,196,177,135,189,188, 52,202,165, 2, 50, 85, 56,147,148, 81,120,190, 54,154, 57, 69,250,190,115,131, 79,252, 36, 17,
- 81, 52,120,190, 36,161, 40,207,163, 88,199,102, 95,141,103, 26, 2, 64, 35, 91,184,124,113,156, 57, 64, 81,196,243,154,244,194,
- 31,165,172, 29,186, 60,244,243,251,207,114,118, 60,203, 69, 36, 0, 60,203, 69,228,161, 75,113, 11, 98, 83, 11, 62,143,124,158,
-179, 26, 38,182,171,224, 9, 92,108, 57,116,225, 75,159,189,234,254,140, 74,193, 93, 0,253,129,196,238, 67,103,172,159, 65, 16,
-120, 93,195, 79, 68,171,117,188,231,139, 31, 26, 34, 91,194,189, 74, 64,224,159,129, 33,170, 69,146,228,226,215,168,249, 51, 65,
- 16,239, 1,136, 49,225,103,225,133,133,133,141, 94,243,230,101, 49, 12,147,101,204,130,127, 67,131,248,127, 43,219,254,174, 63,
-238, 38,104,254,245,154,245,234,213,227, 77, 48, 44,194,254, 20, 52, 5, 77, 65,243, 63,165,201,243, 60,245, 42, 83, 21,154,196,
-171, 76,194, 49,250,215, 51,161,170,247, 66, 75,183, 55,144,152,152, 24, 66,216, 11, 2, 2, 2, 2,149, 67, 16, 4,251, 39,104,
- 10,217,241, 4, 12, 6,171, 66,116,139, 20,246,137,128,128,128,128,128,128,128,192,107, 49, 89,229,231, 37, 38, 28, 85,135,255,
- 76,233, 77, 80,155, 16, 98,168,160, 41,104, 10,154,130,166,160, 41,104, 10,154,255, 57,205,154,180,133,222,140,127,178, 1, 19,
- 52, 5, 77, 65, 83,208, 20, 52, 5, 77, 65,243,191,167,249,111,166,202, 54, 90, 66,213,161,128,128,128,128,128,128,128,192,159,
-132,208, 24, 94, 64, 64, 64, 64, 64, 64, 64,224,213,168,113, 80,105, 1, 1, 1, 1, 1, 1, 1, 1,129,218, 81,253,160,210, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,181,198,244, 65,165, 5, 4, 4, 4, 4, 4, 4, 4, 4,140, 98,155,176, 11, 4, 4, 4, 4, 4,
- 4, 4, 4,254, 26, 42,246, 58, 12, 9, 9,225,203,207, 5, 4, 4, 4, 4, 4, 4, 4,254, 74,222, 84, 47, 34, 84, 29, 10, 8,
- 8, 8, 8, 8, 8, 8,188, 26, 19, 4,163, 37, 32, 32, 32, 32, 32, 32, 32,240,231, 80,101, 27, 45, 67,194,210,206,165,161,186,
-206,194,190, 18, 16, 16, 16, 16, 16, 16,248, 27,120,179,189,136,208, 62, 75, 64, 64, 64, 64, 64, 64, 64,240, 34, 2, 2, 2, 2,
- 2, 2, 2, 2, 2,255, 36,132,177, 14, 5, 4, 4, 4, 4, 4, 4, 4,254, 98,195,245,167, 27, 45, 97,100,115, 65, 83,208, 20,
- 52, 5, 77, 65, 83,208, 20, 52,255, 75, 38,171,130,217, 18,122, 29, 10, 8, 8, 8, 8, 8, 8, 8,188, 26, 53,246, 58, 20, 16,
- 16, 16, 16, 16, 16, 16, 16,168, 29, 19, 0, 4,150,190, 14, 68,185,168,150, 16,209, 18, 16, 16, 16, 16, 16, 16, 16,120, 53,182,
- 1,112, 46, 53, 88,167, 0,164, 8, 70, 75, 64, 64, 64, 64, 64, 64, 64,224,245, 80,190, 93, 86,239,114,230, 75, 48, 90, 2, 2,
- 2, 2, 2, 2, 2, 2,175, 72,149,109,180, 8, 84,221,115, 32,212,132, 63,168, 77,239,131, 80, 65, 83,208, 20, 52, 5, 77, 65,
- 83,208, 20, 52,255,115,154, 53,105,135,226,223,199, 4, 83,204,215,235, 68,232,250, 42,104, 10,154,130,166,160, 41,104, 10,154,
-130,230,127,150,215,222,235,176, 25, 96, 38,236,214, 55, 18,199,210, 73, 64, 64, 64, 64, 64, 64,160,122,254,156, 94,135,254,192,
- 71, 35, 2,148, 91,244,145, 25,150,145,128,170,186,101,149, 74,229, 86,185, 92, 62, 66,165, 82, 21, 17, 4,193, 25, 62,231,121,
- 30, 0,202,143,117,244, 36, 35, 35,163, 99, 77,255, 45,145, 72,130, 29, 29, 29, 63, 42, 44, 44, 84, 17, 4,193, 19, 4, 1,130,
- 32, 0,224,165, 57,203,178,137, 89, 89, 89, 45,254,213,135,144,231, 41,123, 71,199,235, 34,138,114, 53,245,167, 44,199,197,165,
-167,165,181, 53,225, 39,203, 8, 2, 51, 75,254, 22, 43, 1,204,121,211,174, 8, 30,160,140, 89, 46, 0,176,136, 6,134,178, 36,
- 57, 69, 4,108,212,112,220, 22, 0, 32, 0,182,182,255,173, 9,199, 91, 4,143, 38, 4, 1, 43,158, 71, 30, 79,224,174,180, 53,
- 98,255,166, 93, 49, 64, 36, 18,245,181,180,180, 84,100,101,101,157, 7,112, 0,192, 48, 59, 59,187, 78,249,249,249,133,122,189,
-254, 4,128, 99,181, 17,238,216, 4,179, 36, 98,209,216, 98,157,126,197,229,187,248,161, 83, 51,216, 49, 28,150,203,196,116, 71,
-141,150, 89,121,233, 30,118,152, 40, 73,148, 78,134,123,134,201, 99,164, 29, 54,242,184, 3,192,113, 27, 27, 95,169,210,242, 55,
-145,132,138,203, 77, 43, 28, 49, 40, 61, 61, 97,240, 43, 28,247,127, 34,246,246,246,163, 73,146,252,134,231,121,176, 44, 59, 47,
- 59, 59,123,231,107,146,158, 7,192,186,244,117, 46,128,111, 94, 81,239, 57, 0,143,210,215,241, 0, 60,133,114,189,214,108,254,
-241,199, 31,131,186,116,233,130,181,107,215, 98,243,230,205,207, 50, 50, 50,150, 3,216, 5, 64,251, 55,232, 8, 84, 69, 3,224,
-189, 85, 61, 91,179,250,255,125,205,149,251,184, 91, 21, 23,243,247, 31,126,248,161,142,231,121,254,209,163, 71,188, 86,171,229,
-245,122, 61,207, 48, 12,207, 48, 12,175,215,235,203, 38, 87, 87,215,164, 23,126,254,146, 38, 73,146,235, 6, 14, 28, 88,192,243,
- 60,127,243,230, 77, 94,173, 86,243, 26,141,134,215,106,181,124,113,113, 49,175, 86,171, 43, 76,142,142,142,105,213,105, 90, 90,
- 90,222,180,177,177, 73,179,177,177, 73,179,181,181, 77,179,181,181, 77,179,179,179, 43,155,236,237,237,203, 38,165, 82,153,166,
- 84, 42,211,108,109,109,111,214,180,158,165,244, 4,112,222,136,169,103, 37,191,237, 86,222,104, 57, 59, 59,167,241,181,192,205,
-205, 45,193,136,245, 52,224, 72, 16, 96, 13,191, 37, 8,112, 82,169,212,163,252,247,120, 57,210, 85, 99, 72,217,197,197,101,160,
-179,179,115,168,179,179,243, 89, 23, 23,151,129, 70,156, 98, 21, 52, 45, 44, 44,110,218,219,219,167, 57, 57, 57,165, 27, 38,103,
-103,231, 10,147,139,139, 75,217,228,232,232,152,102, 99, 99, 83,229, 49,226, 1,170,170, 41, 12,160,165,192, 59, 52, 69,133, 56,
- 58, 58,230, 71, 68, 68,176, 60,207,243, 36, 73, 38, 25,150, 49,101,219, 95, 52, 89,170, 75,152,151,121, 78, 26, 94, 24,183, 60,
- 47,243,156, 52, 92,117, 9,243, 52,225,120,171,182,154, 70, 82,153,230,168, 81,163, 70,221, 77, 75, 75, 75,202,205,205, 77,217,
-178,101, 75,180, 76, 38,187,180,101,203,150,232,220,220,220,148,180,180,180,164, 81,163, 70,221, 5, 48,201, 4, 77, 0, 64,219,
- 38,104, 51,110,128,179,234,238,241,145,170,119, 90,210,119,218, 7, 32,176,123, 91,113,210,134,217,254,170, 11,219, 59,168,186,
- 52, 39, 35, 77,212, 36,104,154,110,231,225,225, 49, 86,169, 84,126, 88, 58,141, 52, 76, 78, 78, 78, 35,157,156,156, 70,218,216,
-216, 12,174, 78,243, 48, 64, 25, 51,185,203,100,237, 6,215,245, 80, 61, 95,188,136,143,152, 54,133, 31,235,237,158, 63,200,193,
-161,206,223,112,140,254, 84, 77, 7, 7,135,100,189, 94,207,235,116, 58,222,206,206, 46,249, 53,174,231,106,158,231, 87,243, 60,
-191, 26,192,234,215,160, 89,118, 63, 51,193, 96, 87,167, 41,163, 73,114,134, 92, 34, 57, 43,165,233,116, 41, 77,167,203, 37,146,
-179, 52, 73,126, 14, 64,246, 79, 58, 70,127,130,166, 66,169, 84, 62, 13, 14, 14,230, 85, 42, 21,175, 82,169,248,224,224, 96, 94,
-169, 84, 62, 5,160, 48, 65,179,182, 58,111, 82, 4,235,197,233,245, 69,180,252,129, 22,239, 52,169,119,116,234,232,161,224,142,
- 4, 19, 53, 60, 49,125,223,182, 69,139,177,187,118,237, 2, 0,140,232,219, 23, 61, 90,181,130,133,194, 28, 18, 73,201,234, 16,
- 60, 1,177, 72,140,126,211, 63, 51,230,239, 87,246,235,215,239,131, 35, 71,142, 40, 0, 96,243,230,205, 24, 48, 96, 0,108,109,
-109, 33,151,203, 33, 22,139, 33, 18,137, 42,204,107,130,162, 40,183,164,164, 36, 7,153, 76, 86, 22,101,227, 56,174,194,196,243,
-188, 33,250, 6,134, 97,224,227,227, 99,236,238,154,157,151,151,247,118, 81, 81, 81,153, 70,101, 83,221,186,117, 1,224,180, 49,
-130,223, 44,249, 26, 28, 83, 4,154, 6, 24, 6,208,232, 72,112,124,165,230, 6,147, 38, 77, 42, 91,239,218,208,187,119, 32, 65,
- 16,196,145, 91,183,110, 29, 77, 79, 79,247,226, 56,118,124, 45, 35, 93,159, 60,126,252, 88, 1, 0,190,190,190,147, 0, 28, 53,
-101, 61,104,154,118,187,119,239,158,131, 84, 42,173, 50,114, 89, 46,130, 9,157, 78,135,102,205,154, 49,166,252,135, 35,224,145,
- 77,146,227,155, 54,111, 62, 97, 97,191,126,178,235,215,175,203, 72,146, 4,195, 48, 88,181,106, 21,195,243,188,117, 3,192,242,
- 1,144, 95,141,204, 92, 0,163, 75, 11,131, 29, 0, 86, 85,112, 11, 60,154,168,245,210,192, 39,133,253, 90,181,174, 51, 11, 15,
-238, 71,180,242, 86, 28,135, 5,173,137, 5,254,218,168,150,165,165,101,223,181,107,215, 42,119,236,216,145,255,232,209, 35,221,
-150, 45, 91,148, 19, 39, 78,180,208,233,116, 8, 10, 10,202,240,243,243, 19,175, 93,187, 86,121,236,216,177,119,138,138,138, 54,
-153,116,188, 8,124, 61,172,111, 15, 20,235, 73,232,245,140,210, 89,105,177,103,234,168,206, 34,158,215, 98,247,137, 91,208, 51,
-220, 15, 38, 70,178,218, 14, 26, 52,200,123,255,254,253,116, 84, 84, 20, 93,191,126,125,112, 28, 7,150,101,161,215,235, 1, 0,
- 28,199,161, 94,189,122,175,188, 95,198, 2,190,246,142,182,103,219,190,215,203,204, 89, 38,133,109, 78, 6,198,137,105,139,157,
-114,205, 94, 0,237,222,168,200, 46,207,131,166,105, 36, 36, 36,192,193,193,193,140,227,184, 20, 0,139,114,114,114,182,225,205,
-165,149,132,166,143,238,254, 97,157, 83,235,118,237, 40, 71,103, 7, 68, 63,142, 7, 77,176,221,238,221,184,213,121,236,199, 51,
-166,106, 25,102, 32,128,235,111,218,134, 59,181,155,212,159, 32,169,205, 4,207,225,171, 13, 63, 21, 44, 91, 25, 44, 15, 26, 63,
-138,154, 62,125, 58,220,221,221,189,250,247,239,191, 18,192,199, 53,234,180,158,212, 31, 20,185, 25, 60,143,133,235,127, 42, 88,
-186, 50, 88,254,113, 45,116,254,229, 84,121,141,188,178,209,242, 7,188, 27,186, 59,156, 89, 54,243, 99, 17,255,203,255, 72, 85,
- 86,122,149,203, 42,149,202,173,239,190,251,238,136,157, 59,255,136, 70,183, 13, 8, 64,255,119, 58,192,193,206, 10,114,115, 73,
- 73,113,196, 17,184,251, 40,206, 40, 67,224,238,238, 30,116,244,232, 81, 69,121, 51, 33, 22,139,203,166,242, 38,203, 48, 25, 10,
-224,234,144,201,100, 8, 13, 13, 5, 77,211,160, 40, 10, 52, 77,151, 77,229,223, 83, 20, 5, 71, 71,147,154, 46, 45,183,178,178,
-106, 92, 80, 80, 96,153,155,155, 11, 15, 15,143,124, 0,247,202,125,223, 56, 35, 35,195,210, 20, 65,142, 41,194,244,113,254, 16,
-105,175, 65, 43,106, 5, 53,221, 30, 87,110, 60, 68,200,233,243, 72, 74, 78, 69,135, 54, 77,241,225,240, 65, 56,123,246, 44, 88,
-214,228,154,142, 52,158,199,202, 62,125, 2,103, 1, 4,209,173, 91,183,220,201,147, 39,147, 81, 81, 81, 31,244,239,223, 47,224,
-241,227,152,210,168, 34, 49,147,231,177, 14, 64,154,145,186, 18, 0,184,112,225, 2, 0, 72,107,115,238, 73,165, 82, 92,189,122,
- 21,134,106, 98,146, 36, 65,146, 36, 40,138,194,201, 24,123, 20,105, 73,168,210, 34, 49, 37,208, 3,117,235,214, 5, 73,214,220,
- 36,177, 51, 32,187, 2,244, 39, 68,162,233,206, 46, 46, 94,157,188,189,229,161,161,161, 20, 0,120,122,122,242, 41, 41, 41,185,
- 39, 78,156, 40,160,129,205,158, 60,191,171, 58,147,229,238,238,222, 62, 41, 41,233, 27,195, 62, 39, 8, 98,101,157, 58,117,190,
- 44, 59,110, 28,135, 69, 63, 20,137,166, 78,157, 38,110,221,121, 62, 0,160,117,159,253,200,127,178,204,159,200,158,107,245, 87,
-223, 37,242,243,243, 15,214,171, 87,143,202,202,202,186, 2,224,185, 94,175,159,189,103,207, 30,135,113,227,198,165,239,221,187,
-119, 57, 0,151, 21, 43, 86,116, 46, 42, 42, 58,100,138,110,135,198,120,175,121,227,128, 54, 30,238,238, 56,127,229, 58,196, 18,
-145,245,164,209,129, 80, 40,104,172,222,113,138,123,158,152, 61,249,210, 61,236, 50,193,100,181, 26, 52,104,144,215,254,253,251,
- 37, 0,112,239,222, 61,164,166,166, 66,169, 84,194,204,204, 12, 34,145, 8, 20, 69, 65, 36, 18,189, 22,147,101,229,110, 23,126,
-252,248, 9, 51, 91, 91,107,108,248,108, 42, 62, 76, 79,131,181,133, 2,250,194, 34,175, 55,172,160,240,237,216,177,163,140,101,
- 89, 20, 21, 21, 33, 44, 44,204,202,204,204,204,202,205,205,109, 33, 76,232, 61, 37,147,201,210,138,139,139, 29, 74, 95,167, 23,
- 23, 23, 59, 2,200,151, 74,165,134,251,116, 97,233,220,216,234,196,231,120,185,154, 48,158, 32,136,242,159,213,150,150,173, 90,
- 54, 14, 61,118,100,159, 34,175, 32, 21,214, 54,233, 32,145,135,109,219, 54,194,204,204, 18, 11, 23,206,165,227,186,189,227,218,
-243,189,129,161,247, 31, 70,119,123,227,204, 22, 79,108,235,214,103,132,173,153,220,162,180, 44,209, 99,231,246,169, 32, 73, 18,
- 95,126,249, 37, 26, 54,108, 56,225,254,253,251,243, 1,100, 87, 47,131,109,141,222, 30, 98, 43,145,149, 28, 98,142,213, 99,203,
-129,207, 75,116,230, 76,196,176, 62,117, 39,124, 49,232,233,175, 13,189, 81, 80,250, 96,174, 22,145,136, 39, 90,163,204, 48,132,
-132,132,116, 10, 12, 12, 60, 95,213,251,127, 1,206,248, 35,127, 86, 5,243, 69,135,132,132,240,129,129,129, 68,185,141,171,240,
-190, 58,154, 0,246, 54, 86,242,208,205,139,166, 42,232,107,167, 40,117,124, 12,146,139, 43, 20,228, 21,186,104,202,229,242, 17,
- 59,119,238,172, 16, 82,242,112,116,128, 88, 44,130, 72, 76,192,186, 99, 73,246,250,220,139, 33, 32,136, 42, 77, 86, 5,205,162,
-162,162,226, 59,119,238, 40,118,236,216, 1, 7, 7, 7,120,121,121, 65, 46,151, 67, 38,147, 85, 48, 87,229, 13, 87, 37, 70,171,
-130,166,225,123,154,166, 65,146, 36,206,158, 61, 11,134, 97, 48,104,208,160,151, 76, 22, 77,211, 85, 25,183,170,186,167,158, 6,
-112,143,231,249,183, 75, 11,224,123, 0, 58,149,251,190,167, 82,169,156, 13, 96,185,177,154, 20,197,131, 42,190, 2,206, 45, 24,
-116,194, 84,104, 69, 77,112,238,210, 45,236,220,186, 22, 0,224, 85,191, 37, 6,247, 15, 44,139,198, 25,185,158,101,184,186,186,
- 30,200,200,200,236,245,206, 59,239, 32, 39, 39, 71,191,104,209, 34, 52,110,220, 24,190,190,190, 70, 29,163, 42,158,156,211,238,
-221,187,231,174, 86,171,193,243,188, 49,230,236, 37, 77,130, 32,176,103,207, 30, 20, 23, 23,191,180,176, 77,167,165,248,124,128,
- 39,198, 76,217,133,149,143, 14, 97,211,166, 77,213,110,187, 28,104, 92,108, 85,111,157,132, 98, 26, 47,159,251,137,244,195, 15,
- 63,164,198,140, 25,131,248,248,120,140, 27, 55,174,248,236,217,179,218,212,148,148, 19, 18,142,219,160,171,104,140,171,212,148,
- 74,165,187, 79,159, 62,141, 67,135, 74,124, 73,116,116, 52,124,124,124,204, 43,152,228,236,195, 40,120,190, 1,225, 39,163,208,
-186,207,126,132,159, 28, 14, 54,247,148,168,133, 15,242, 76,217,159,181,160, 50,205, 67, 89, 89, 89,101, 38,106,239,222,189,102,
-123,247,238,237, 7,224, 39, 0,135, 0, 32, 59, 59,251, 91, 19, 53, 1, 2, 99,134, 12,232, 7, 90,108,129,168,152, 68,116,106,
-219, 12,142, 14, 14,184,247, 48, 22,207,147,178,211, 8, 2,163,123,182,147, 44, 87,171,181,243, 47,222,197,247, 53,104, 18,110,
-110,110,190,135, 15, 31, 22,151,139, 64,151, 93,227, 20, 69,149,189, 55, 24,239,218,156,159, 6,147,101,225,166, 8,255,122, 99,
-123,243,240,136,189,240,241,124, 15, 54,239, 5,226,251, 51,103,240,248,254,131, 98,173,138,233,250, 55, 28,163, 63, 75,211,119,
-192,128, 1, 87,246,237,219,103,157,144,144,128, 11, 23, 46,192,203,203, 11, 42,149,202,152, 7,222, 10,154,197,197,197, 14,134,
-223, 16, 4,225, 96, 8,188,107,181, 90,195,193, 48, 92,136,214,229,150,179,174, 70,211,163,220,114, 6,115,229,249, 26,182, 93,
- 34, 19,139, 15, 31, 63,118, 64,241, 32,234, 2,154, 54,105, 3,133, 85, 3,112,108, 42,178,178, 11,145, 19,147,140, 37, 75, 86,
- 98,225,162,121,248,233,199, 35, 10, 63,255, 38, 71,181, 12, 83, 15, 64,241, 27,115,220, 9,126, 66,232,201,189,155, 9,158,131,
- 58, 45, 74, 42, 42,122, 42, 31, 49,124, 32, 53,116,232, 80,252,244,211, 79,184,127,255,254,230,106, 76, 86,104,185,200,252,132,
-200, 11,135, 54,131,231,161, 78,143,146,138,213, 79,229,163, 62, 24, 76,125, 56,172, 7,174,253,190, 14, 61,154, 62,141,116,113,
- 64,255,156, 82,139, 77, 83,200,146,202,112,153, 15,199,181,114,102, 43, 12, 0, 81,206, 96,133,225,143, 54,152,255, 6,122,151,
- 26,171, 9, 47, 62,152,208,181, 49, 88, 0,224, 3, 40, 8,137, 56,124,231,194, 79, 92,228,241,247,105, 77,228, 85, 36,107, 56,
-126,203, 51,134,107, 6,152,221, 6,212, 47,254, 70,165, 82, 21,197,198,198,154,141,238,223, 31,237, 2, 2,224,108,103,135,122,
-110,110, 48,147, 74, 32, 17,139, 42, 60,178, 26, 93,135, 64, 16,188,159,159, 31,250,244,233, 3,145, 72, 4,185, 92, 14,133, 66,
- 1,137, 68, 82,105, 52,203,216,167, 92,158,231, 65, 81, 20, 34, 35, 35,241,252,249,115, 88, 91, 91,227,242,229,203,232,218,181,
-235, 75, 81,173,242,230,204,148, 16,125, 37, 5,191,193,136,157, 54, 69,139,101, 9, 20,242, 77, 32,123, 54, 25, 42,162, 25, 52,
- 26, 6, 26,141, 6,223, 95,210,225,122,108, 17,116, 58, 45, 52, 26, 77,117,255, 89, 21,164,139,139,203,136,122,245,234, 77, 26,
- 62,124,184, 94, 34,145,160,168,168, 8, 42,149, 10,247,239,223,215,247,234,245, 94,110,159, 62,129, 86,167, 78,157,226, 75,171,
- 14,211, 76,208,206,114,117,117,117, 47,173,158,205,170,205, 89, 77, 16, 68,153,137,121,145,209,223, 62, 0, 77,149, 28,147,205,
-155, 55,131,101, 89,240, 60, 95,229, 65, 42, 38,136,223, 22, 45, 93, 99,181, 34,248, 7, 88,217, 58,226,252,249,243,236,175,191,
-254, 90, 64, 0,209,143,239,223,255,246,125,224,231,195,128,206,148,245,203,201,201, 49,243,242,242,130,155,155, 27, 56,142,131,
- 94,175, 47,139,190,100,101,101, 65,173, 86,195,214, 60, 23,111,217,185,129, 41, 8, 67, 74,228, 87,112, 86, 68, 97,215,105,173,
-190,185, 47,238,254, 3,110, 28,255, 43,157, 94,241,169, 25,174, 14, 78,238, 32,121, 61,146,211,179,208,175,119, 15, 80, 98, 5,
-226, 18, 50,209,164,129,183,243, 7,239,183,119,166, 8, 6, 51,151,239,159, 4,112,223,215, 36, 87, 88, 88,200, 70, 69, 69,225,
-222,189, 18,191,107,105,105, 9,115,115,243, 10,215, 56, 73,146,175, 20,209, 50,152,172,165,155,187,154,147,162, 34,228,179,161,
-216,177,231, 22,154,248, 5, 98, 75,248,141, 98, 54, 45,187,219,234,226,226,232, 3,255,226, 96,134,147,147,211, 68,142,227, 22,
-242, 60,159,219,161, 67, 7,199,253,251,247,219, 36, 37, 37,225,214,173, 91,248,242,203, 47, 51, 88,150,101,120,158, 39,120,158,
-255,234, 53,252, 29, 87,206, 96,189, 78, 68,114, 25,166,216, 91, 18,125,105,210,210,139,201, 47,140,203,212,242, 39, 84, 12,183,
- 30,128,190,218,155, 27, 73,126,116,228,224,102, 23,123, 37,135,206,202,119,144,146,166,195,210,207, 70, 33, 43,171, 0,223,111,
- 95, 6, 64, 2, 29, 67,225,237,206, 3,225,224,224,138, 9,227, 39, 56,109,222,186,229, 19,134,227, 86,227, 13, 33,245,202,166,
- 31, 1,132, 42,149,202,251,159, 76,152,160,244,242, 26, 9,153, 76,134, 3, 7, 14, 96,255,134, 13,108, 48, 48, 88, 10,156, 11,
- 2,126,172, 86, 39,252, 15,157,169, 65, 65, 74,127,255, 32, 72,165, 82,252,254,235,255, 80,156,186,167,160,119, 59,232, 84,197,
-232, 93,167, 15,111,251,236, 36,145, 45, 18, 33, 6, 0, 68, 50,164, 0,120,177, 26,236,223,102,176, 12,156,194, 31,237,178, 38,
- 84,136,104,213,250,222, 41,146, 68,108,159, 54,204,211, 17, 26, 66,123,233, 36,146, 52, 28,187,226,177,142,186,157,199,127,254,
-176, 18,147, 85,122, 98,115, 30, 30, 30,120,167, 69, 11,244,239,216, 17, 52, 77, 67, 38, 17,195, 66,102, 6,158, 45,137,100, 25,
-170, 14,171, 41, 19, 81, 89,244,201,206,206, 14, 98,177,184,204, 96,153, 16,205,170, 84,147,227, 56,208, 52,141,123,247,238,161,
- 67,135, 14,112,119,119,199,161, 67,135,208,179,103,207,151,170, 18, 77, 53, 89, 6,163,245, 66, 53, 94, 79, 0,134, 72,150, 73,
- 70,171, 88, 75, 32, 83,219, 4, 4, 17, 0,134, 1, 88, 30,208, 20, 23,131,231, 1,158, 7,244, 58, 45,138,139,139,203,254,211,
-152, 42, 89, 39, 39, 39, 15, 51, 51,179,197,179,102,205,244,111,210,164, 41, 50, 50, 50,192,113, 28,204,205,205,161, 82,169, 96,
-105,105,137,118,237,218,197, 45, 94,188, 56,133,231, 49,193, 68,147,245,202, 24,246,249,153, 51,103, 42, 84, 27, 26,166,162,148,
- 68,140,249,116, 47, 36,116, 73,213,146,161, 13, 79,117,247,221, 46,111,183,199,149,219,209,204, 71, 51,215,105, 68, 89,183,150,
- 59,113,220,206,196, 87,216, 46,158,231,145,153,153,137,180,180, 52,244,237,215, 15,251,247,237,195,179,103,207,208,160, 65, 3,
-116,233,210, 5, 14, 14, 14,120,246,236, 25,174, 95,212, 64,147,147,141,108,237, 45,200, 45, 90,227,248,249, 88,205,151,155,117,
-177,127,227, 13,163, 47,128, 81,150,150,150,117, 85, 42, 85, 10,195, 48,135, 1, 28, 6, 48,152,166,233,193,114,185,220, 57, 63,
- 63,255, 41, 74,122, 19,157,168, 73,204, 76, 38,179,147,202, 44,193, 49, 26,208, 52, 13,119,119, 47,240,172, 22, 57,249,106,140,
- 30,218, 7,183,239, 61,196,175,231,174, 49,122, 61,247,157, 49,187,149,162, 40,222,215,215, 23,233,233,233, 16,137, 68, 48, 51,
- 51,131, 66,161,192,156, 57,115,176, 97,195,134, 50,147, 85, 91,163, 53, 22,240,181,244, 80, 92,251,102, 99,137,201, 74, 77, 78,
- 65, 90,162, 8, 74, 59, 71,124,183, 33,184, 40,231, 89,106,235, 31,128,232,127,123, 33,203,113,220, 87, 73, 73, 73, 14, 52, 77,
- 59, 49, 12,131,132,132, 4,220,188,121, 19,147, 39, 79, 78,203,202,202,234,140, 90,110,163, 76, 38, 75, 55, 68,178, 74,171, 14,
-171,170, 78,204, 45, 23,201,202,173, 70,178,170,106, 66,111, 47, 55,139,179,219,215, 78,247,104,217,186, 29, 41,167, 45,115, 10,
- 99, 82, 59, 92,186,112,190,221,228,181,223,127,242, 60,167,176, 7,128, 39, 85,137, 74, 69,162, 94,109,218,183,167,193,167,129,
-150,116,192,202, 21, 67,145,145,153,143,156,236, 2,136,197,230,208,234, 41,176, 28,129,118, 29, 58,226,127,187, 14,162,225,248,
-113,148, 68, 36,234,206,104,181,111,140,209, 42,101,217,250,245,235, 61,252,252,252,176,115,231, 78,156,219,189, 27, 31,230,229,
-225, 60, 73, 82,122,145,200,254,103,189,126, 27,106, 48, 90,229,117, 26, 54,108,136, 31,126,248, 1,123,246,236,137, 31,209, 53,
-253,232,244, 17,112,208,233,240,238,173, 71,176,173,211, 7,184,245, 8,182,205,253, 80,143,161, 17, 67, 16, 21,211, 65,133,132,
-132,116, 42, 63,255,151,145,130, 42,170,216,105, 0,157, 67, 66, 66,248,242,243, 26,111,156, 74,159,160,101, 61,234,122, 6,188,
-229, 65,232, 15,173, 67, 66, 17,163,157,255, 72, 39,121, 92,200, 79,127, 8, 4, 87,243, 4,193, 83, 20, 5, 11, 51, 51, 40,173,
-173, 75,194,252, 36, 9,112, 0,167, 7, 8,182,196, 0,240, 28, 1,158, 53,233,134, 1,137, 68, 82,105,195,119, 83,219,102,149,
-215, 44, 40, 40, 64, 92, 92, 28, 38, 76,152, 0,185, 92, 94,226,220, 83, 83,225,233,233, 9,154,166,145,148,148,132,223,127,255,
- 29,117,235,214,133, 84, 42, 53,201,109,149,139, 46, 53, 70, 73, 47,195,198, 41, 41, 41,150,206,206,206, 48, 57,162,197,241, 80,
-105, 8,104,181, 44, 30, 63,126,140,228,228,100,196, 61,141, 65,203,162,124,240,160,192,243,188, 73, 17, 45, 87, 87,215, 0,111,
-111,239, 45,203,151, 47, 23,187,185,185,129,231,121,216,216, 88, 67,165, 82, 33, 51, 51, 11, 13, 26, 52,128,187,187, 59,150, 47,
- 95, 14, 0,251,255,106,147,245,194, 57, 85,102,180,202, 27,174, 79,223,247, 64,118,182, 2, 20, 69,150, 25,231, 26,218,104,137,
- 1,160,115,143, 1,244,217, 95,127, 54,103,128,197,169, 20,181,152,174,249, 56,234, 89,142,147, 87,245,125, 66, 66, 2, 68, 34,
-155,237,138,119, 0, 0, 32, 0, 73, 68, 65, 84, 17,142, 28, 62,140,236,180, 52, 52,105,210, 4,173, 90,181, 66, 76, 76, 12,110,
-223,190, 13, 59, 59, 59, 40,221,218,226,252, 83, 29, 30, 36,171, 97,101,101,133,216, 68,242,239, 76, 25, 48,190, 91,183,110, 95,
-126,251,237,183, 14, 78, 78, 78,162,140,140, 12,191,141, 27, 55, 54,217,184,113,227,212, 79, 62,249,196,241,147, 79, 62,177, 81,
- 42,149,116,106,106,170,239,103,159,125,214, 60, 52, 52,180, 46,128, 53,213, 9,154,155, 91,216, 82, 98,115, 16, 4, 13,107, 43,
- 27,208, 18,115,112, 12, 13,150, 3, 44,173,148,184,114,251, 8, 46, 71, 20, 76, 76,207,194, 97,163,226, 99,165,199,221,206,206,
-238,165, 72,245,228,201,147,177,125,251,246,178,106,196,218,154,172,165, 27,187, 42,136, 82,147,149,154, 64,131,208,212,197,201,
- 31,175,230,230, 60, 75,237,240, 38,152, 44,195, 61,142,231,121, 60,125,250, 20, 42,149, 10, 23, 47, 94,196, 87, 95,125,149,241,
-162,201,114,112,112, 24,111,105,105,185,168,176,176,112,101,106,106,234,186, 26, 31,252, 74, 76,148,225,181, 97, 94,105,117,162,
-145,171,234, 89, 89, 36,203,221, 89,118,250,246,197,189,158, 86,252, 93, 2,207, 39, 0,143,243,239, 91,132, 59,188,253, 94,203,
-222,100,179, 77, 95,215,105, 53,113,206,233,132,252, 98,191,170, 34, 91, 28,203, 54, 51, 87, 88, 0, 72,199,173,155, 97,101, 38,
- 43, 43, 59, 15, 26, 29, 5,141,150, 64,177,142,196, 59,221,222,197,134, 45,123,144,148,158, 13,150,101, 27,189, 97, 38,203, 54,
- 32, 32, 32,104,240,224,193, 88,188,120, 49, 66,191,253, 86,251, 49, 65,228,211, 0,127,138,101,193,241, 60, 65, 26,215,136,189,
-130,206,234,213,171,127, 4, 48,108,249,100,180,205, 41,196,104,151, 62,188,109,157, 62, 37, 11, 14,154,197, 3,128,109, 70,104,
-197, 34, 51, 48, 48,144, 48,212,172,153, 90,195,246, 79,135, 14, 12, 12, 60, 31, 18, 18,130,242,243,234,126, 96,225,232,247,222,
- 23, 51, 38,173,104,217,179, 35,145, 50,163, 59,178,243,139,153,185, 15,116,146, 68,117,245, 38,171, 60, 95,108,220,136,219,209,
- 37,215,177,155,131, 3,102,126,240, 1,120, 6,184,124,255, 1, 14,134,134, 98,104,183,110, 48,151,201,140,142,108,112, 28, 87,
-105, 20,171,124, 52,203,212,168, 83,110,110, 46, 14, 31, 62,140, 86,173, 90, 65, 46,151,131,166,105, 52,110,220, 24, 15, 31, 62,
-132,183,183, 55, 8,130,192,241,227,199,209,191,127,127, 60,121,242, 4,109,219,182, 85, 60,127,254,220,100,163,245,224,193, 3,
- 75,158,231,223, 54, 68, 63,106,139, 70,163, 65, 84, 84, 20,250,244,233, 3, 27, 27, 27,184,186,238, 71,232,233,189,144, 7,124,
- 8,130,128, 73, 70,139,101,217,177,189,123,247, 22, 19, 4, 1,181, 90, 5,153,204, 12,230,230, 10, 88, 88, 88,194,215,215, 15,
-201,201,201,232,217,179,167, 54, 54, 54,118, 83, 74, 74,202, 33, 83,215,213,223,223,223,252,217,179,103, 31,214,169, 83, 71, 2,
- 0,102,102,102, 13,188,189,189, 63,127,242,228, 73,129,169, 81, 45,131,193, 34, 8, 2, 20, 69,149, 25, 45,154, 36,225,236,228,
- 80,246,190,180,125, 26, 81,141, 86,126, 82,150, 70, 10, 0, 30, 30, 30,216,176,245, 39,178,119,239,222,152, 58,117, 42,244,122,
- 61, 54,109, 42,233,100, 55,124,248,112,232,116, 58, 28, 61, 90,210, 73,146,166,233,106,195, 38, 55,111,222,196,173, 91,183,160,
-215,235,145,151,151,135, 95,126,249, 5,231, 47, 92,192,129,227,191,225,217,211, 24, 52,246,243,196,184,113, 99, 33, 18,137,176,
-107,215, 46,116,232,208,225,111,189, 33,136, 68,162, 17,219,183,111,119,222,185,115,103,238,241,227,199,139,218,180,105, 35, 13,
- 14, 14,118,216,176, 97,131, 82,171,213, 98,218,180,105,233,215,174, 93,211,244,235,215,207,124,219,182,109,206,111,189,245, 86,
-119,134, 97, 42, 51, 90,230, 0,134, 2, 24,153, 83,160,165,115, 11,212,224, 24, 45,158, 62,139, 67, 94,161, 22, 28,171, 67,124,
- 98, 50, 10,139, 89,100,101, 23,160,113,179, 30,235,195,194,194,230,233,116,186,185, 0, 66,106, 90,207,251,247,239,227,218,181,
-107,120,246,236, 25,158, 62,125, 90,209, 41,142, 31,143, 61,123,246,152, 28,209,170,220,100, 81, 32, 52,222, 8, 57, 30,158,155,
- 30,147,242,198,152,172,210,123,208, 66,103,103,231,133,206,206,206,178, 51,103,206, 88,213,169, 83, 7, 12,195,104, 95,140,100,
-117,238,220,121,254,246,237,219,157,189,189,189, 39, 3, 88,247, 79, 88,119,146,196,248,149,155,131,236, 45, 36,241,201,120,188,
-166, 52,151, 32, 5,168,242,129,176,125,160,219, 47,136,155,220,111,150,205,236,157,139,199,115,224,170,236, 33, 27,251, 36, 1,
-155, 55,111,192,244,105,163,241,191,239, 87,130,227,104,104,244, 20, 60,188,218, 64,163,227, 64,144, 52,154, 52,107,129,115, 97,
- 23, 33, 34,129,195, 59, 55,191, 97, 62, 11,217,145,145,145,155,142, 31, 63, 62,101,234,212,169,224, 56, 78,178,104,243,102,117,
- 70, 70,198, 50,152,150,255,234, 69,157,254,155, 55,111,142,158,189, 33,227,199,233, 35, 64, 61, 59, 73,100,223,122, 4,219, 65,
-179,120, 28, 89, 65,160,185, 31,178,229,149, 23,241, 23, 94,152,191, 25, 70,203,224, 36,203,207, 43,163,153, 79,221,175,173,108,
-109,198,146, 22,174,246, 51,167,126, 76, 63, 73, 45,198,209, 58, 31, 20,254,190,251, 59,243, 84, 70,186, 62, 22,197,193,166,252,
-241,193,223,127, 47,123,189,106,255,254, 74,191, 75, 25, 52,200,232, 39,179,170,162, 88,166, 70,178, 0, 64, 46,151, 91,119,239,
-222, 29, 93,187,118,197,192,129, 3,203,218,100, 53,109,218, 20, 7, 14, 28,192,128, 1, 3,112,231,206, 29, 56, 59, 59,163,126,
-253,250,168, 95,191, 62,126,254,249,103, 83,111,114, 96, 89, 22, 1, 1, 1,134, 94,135,141, 19, 19, 19, 45,107,123, 32, 53, 26,
- 13,178,178,178, 96,107,107, 11,137, 68,130,214,173, 91, 97,202,167,173, 97,239,252, 3, 2,252,253, 80, 84, 84, 84,214,253,221,
-136,194, 54,160, 94,189,122,200,200,200, 64, 70, 70, 6,148, 74, 37, 92, 92, 92,224,228,228,132, 53,107,214,240,235,214,173,251,
- 85,167,211,109,202,204,204, 52, 57,146,229,228,228,212,145, 32,136,249,106,181, 90, 82,238, 9, 87,162, 84, 42, 79,168,213,234,
-101, 41, 41, 41, 70, 55, 4, 37, 8, 2, 58,157, 14, 4, 65,224,212, 83, 23, 20,105, 9,228, 39,222,194,212,247, 61, 43, 24, 47,
-145, 72, 84, 99,117, 41,207,243, 69,195,134, 13,115,112,119,119, 67, 66,236,125, 28, 57,194,227,219,111,191, 53,244,138, 68,116,
-233,131,129,225,125,151, 46, 93,224,229,229, 5,222,132, 92, 25, 28,199,225,222,189,123,216,127,226, 60,156, 61,253, 17,255, 56,
- 10,183,127, 62,137, 58, 74, 91, 52,108,214, 2,122,189,254,149, 82,111,188, 14,244,122,253, 14, 31, 31, 31, 94,171,213,158, 7,
-176, 33, 34, 34, 98,116, 74, 74,202,180,159,126,250,201,101,240,224,193,201, 39, 79,158, 12, 6,176, 51, 34, 34, 34,104,201,146,
- 37, 93, 25,134,169,180,183, 32, 69, 81,255,251,236,179,207, 58, 15, 30, 60,152, 16,147,122,237,153,211,187,104,134,209, 19, 95,
-204,221,193,134, 93, 58, 79, 50,140,158, 24, 56,236, 51,238,231,223, 35,200,137,159,174, 98,155,182,233,141,200,200, 72,167,192,
-192,192, 37,122,189,190, 90,163,101,136, 84, 85, 21,161,164, 40, 10,163, 71,143,198,129, 3,198,183,160, 26, 7,120, 91,122, 42,
-174, 45,221,216, 77, 65,208,133,229, 76,214, 91, 8, 57, 30,158,155,246, 56,249,141, 50, 89, 0,144,149,149,181, 21,192, 86,142,
-227,210,204,205,205, 81, 80, 80, 80,217,249, 39,139,136,136,144, 73, 36, 18,244,232,209,195, 54, 52, 52, 52,154, 36,201,117,201,
-201,201, 85, 58,142,202,170, 9, 43,171, 78,196, 43,244, 58,180, 81, 34,176,117,199,102, 22,143,172, 22, 91,200,232,226, 59,117,
-162,101,150, 4,128, 60,141,227,211, 43,207,135,230, 19,233,210,166, 45,186, 52,135, 37,109, 30,152,203, 20, 84,106,180, 72,138,
-186,157,151,147,219, 43,191, 64,139, 75,151, 35, 49,108,104, 61,104,116, 4, 56,142, 68, 97,145, 6,160, 68, 32, 1, 12,255, 96,
- 20,120,130, 70,118, 90, 50, 40,138,138, 0,195,224, 13, 99, 78, 80, 80, 80,175,185,115,231,214,157, 57,115, 38,102,206,156,233,
-185,125,251,246,173, 75,151, 46,157,153,145,145,209, 8, 53, 36, 31,175, 70,167,206,201, 3, 11,102,156,184,184, 37,175,119, 59,
-245,227,230,126, 37,145,175,230,126,200, 22,137, 16, 67, 83,200,226,249,138,205,140, 2, 3, 3, 59,149,159,255,203,120,177, 17,
-124,217,123,163,218,104,213,171,235,250,110,179,166, 1,159,206,155, 59,207,226,225,149, 48,204,254,122, 3,239,211,162,123,193,
-214,139,183,181,133,230, 94,189, 10, 51, 99, 46, 27,235, 47, 0,224,221,119, 6,160,113,131, 86, 47,125,217,161, 75, 73,178,246,
- 75,231,110, 34, 45, 35,201,232,194,182,212, 28, 84,218, 38,203,152, 46,253, 47,162, 86,171,115, 35, 35, 35, 29, 18, 19, 19, 43,
- 52,124,247,242,242, 2, 65, 16, 8, 15, 15,199,181,107,215, 48,108,216, 48,208, 52, 13,145, 72,132,243,231,207,155, 20,141, 41,
- 23, 93, 50,244, 58,236,233,230,230, 86, 85,111,195, 26,181,212,106, 53,242,242,242,112,250,244,105,212,171, 87, 15, 75,151, 46,
-133,139,179, 35,230,205,155, 1,142,227,144,159,159, 15,150,101,141,141,104,113,134,104, 17,199,113,200,200,200, 64,221,186,117,
-177,113,227, 70, 4, 7, 7, 47, 73, 73, 73,249,201,212,117,116,119,119,183,102, 89,246,139,222,189,123,119,239,215,175, 31,122,
-246,172,152,143,117,223,190,125, 22, 71,143, 30, 93,246,221,119,223,189,171,211,233,150,167,167,167,103, 24,163,251,195, 15, 37,
-233,151,228,109, 22, 98,246,224, 58, 24, 57,105, 23,214,172, 57, 6,169, 84, 90,161,224, 93,188,120,113,181, 38,134,227,121, 31,
-113,230,149,228, 25,179, 86, 59, 44, 91, 22,138,208,208,116,144, 36, 9,103,103,103,144, 36,137,184,184, 56,144, 36, 9, 79, 79,
- 79,144, 36,137,164,164, 36, 67,155,192, 28, 84,210,235,177,242,167,112, 18,197,197,197, 72,136,127,134,196,216,104, 40,242, 83,
-161,180,148, 35,231,254, 61, 52, 30, 55,190, 44,255,211,223,204, 30,173, 86,187,167,220,251,213, 39, 79,158,212, 18, 4, 49, 16,
- 37,237, 52, 12, 17,141, 37, 12,195, 44,169, 74,164, 77,155, 54, 77,231,206,157, 43, 50,164,219,112,241,248,134,209,233,116, 28,
- 0,248, 53,126,187,130,219,143,137,137,193,154, 53,107, 80, 84, 84, 4,177, 88, 44, 54,102, 63,112, 28, 87,214,195,176, 50, 19,
-102,138,201, 2, 0, 59, 79,183,245,225,183,206,179,119, 99,183,168, 35, 30,253, 98,150, 18, 79,130,212,190,185, 38,235,197,200,
-150,155,155,219, 66,142,227,120,158,231, 23,148,251, 74,234,225,225,113,241,204,153, 51,118, 12,195,224,187,239,190,179, 78, 77,
- 77,181,126,251,237,183,103, 3,168,210,104, 85, 86, 77, 88, 89,117, 34,202,245, 58,148, 74,165,182, 90,109,149,193,147,151,122,
- 29,178, 44,124, 45, 45,172,145,131, 68,104,236,245, 77,115,237,152,236,179, 41,227,239,184, 60,111,214,192,156,213,215, 37,243,
-181,112,149, 91,131,227,249, 42,187, 70,107,244,250, 95,238,220,186,221,195,195,189, 30,245, 83,200, 5,244,237, 63, 24, 26, 13,
-137, 98, 61, 1,130, 18,129,160,196,104,212,184, 25,234, 55,108, 12, 30,192,205,235, 87, 24,173, 94,127,246, 77, 58,246,206,237,
-167, 12, 35, 8,172, 3,207,241,149,228,209,170,219,191,127,255,101, 0, 62,173, 73,199,161,205,148, 97, 36, 89,162, 83, 62,143,
-214,103, 83,130,112,255,186,200,234,194,173, 21,226,158,109,112, 42, 35,148,128, 92,246, 71,175, 67, 17,249, 74,169, 57,254, 45,
-134,171,102,163,229,238,238,110,109, 41,149,253,240,201,184,177, 22,207,239, 94, 69,234,131,112, 92,190, 16,157,115,240,232,177,
-236,162,172,244,113, 38,152,172,178,106, 62, 59,167, 58,240,242,127,217,104,201, 20, 74, 0,128,151,127, 43, 80,230,166,165, 17,
-170, 44,154, 85, 27,147, 85,254,134, 93, 89, 14,173,137, 19, 39, 98,251,246,237,104,223,190, 61,124,124,124,202,110,246,166, 70,
-205, 42,137, 46,153,220,219,176, 60, 5, 5, 5,240,244,244,196,182,109,219, 16, 17, 17, 1, 11, 11, 11, 12, 27, 54, 12, 5, 5,
- 5,101, 6,203,216,198,240, 60,207,199,156, 57,115,166,229,144, 33, 67,120,145, 72, 68,228,230,230,194,218,218, 26, 27, 55,110,
- 44, 74, 73, 73, 57, 85, 11,147, 53, 88, 44, 22,207, 24, 58,116, 40,229,231,231,135,180,180, 52, 88, 90, 90,234, 9,130, 16, 1,
-128,181,181,181,222,204,204, 12, 65, 65, 65,104,210,164, 73,199,153, 51,103,182,167,105,122, 99,114,114,242,174,234,206, 37,130,
- 32,202, 10,212,113,235,162,160,213,150, 20,208,155, 54,109, 66,105, 91,183, 63,170, 8, 98, 99, 1, 35,122,178, 40, 20, 10,248,
-248,248, 84,122,236, 59,118,236,136,155, 55,111,150, 84, 77,210, 52, 28, 28, 28,112,249,242,101,163,122, 82, 25, 18, 65, 70, 70,
- 70,194,223,203, 30, 17,161,103, 96, 47, 23,161,137,139, 19,220, 58,118, 66,116,116,244,223, 25,205, 34, 80,210, 14,163, 91,233,
- 57,184, 3,192,196,114,239, 55, 2, 88,111,138, 32,195, 48, 60, 73,146, 68, 66, 66,130, 78, 46,151, 19,182,182,182,180, 84, 42,
-133, 70,163, 41, 51, 92, 49, 49, 49, 8, 9, 9, 65, 98, 98, 34,108,109,109, 73, 43, 43, 43,232,116,186, 28, 99,244,125,125,125,
-225,228,228, 84,161,225,251,184,113,227,106,101,178, 70, 3, 1,219,191, 89, 94, 71, 74, 82, 86,254,246,239,226,105, 84, 92, 49,
-169,133,236,191, 96,178, 0, 32, 55, 55,119, 43,128,173,134,247,246,246,246, 99, 40,138,154,167,209,104,172,206,159, 63,111,173,
- 84, 42,137, 93,187,118,233, 23, 44, 88,144, 75, 81, 84, 14, 65, 16,107,255,126,115,136, 7,153,121,177,158, 34, 27, 23,238,110,
- 49,127,101, 90,194,236,250, 57,162,122, 74,162, 97, 0,250,167, 63,188, 52,134,137,109,151,150,146, 74,242,224, 30, 84,115, 15,
-222, 49,123,238,226, 47,162,163,110,123,200, 44,101,152, 24, 52, 23,167,126, 61, 7,130, 20,225,226,149,112,104,117, 44, 50,179,
-243, 48,116,248, 8,184, 57,219,227,193,181,211, 25, 12,199,109,124,179, 76, 54,183,161, 71,223, 49, 54, 82, 51,121,233, 62, 97,
-177,231,251, 25, 32,201,117,248,242,203, 47, 17, 16, 16, 48, 41, 50, 50,242, 43,212,144, 71,139, 32,184, 13,141, 58, 13,183, 17,
- 75, 75,116,120,142,197,182,195,179, 75,243,104, 77,199,198,173, 71, 27, 53,244,122,186,168,186, 60, 90,111,144,201, 42, 63,175,
-222,104,121,122,122, 74,205, 69,152, 32,162,232,153,159,124,208, 79,153, 30,123, 31,137, 15,111,151, 84, 47,232,212,186,212,199,
- 15,141, 73,133,222, 13, 21,243,119,240,213, 85, 93, 21, 23, 27,245, 68, 95, 65,211, 80,224,190, 24,205, 50,209,100,189,164, 89,
-222,108,149,207,155,229,238,238,142,101,203,150, 25,147, 71,235,197,109, 55,208, 19, 37, 13,224,203, 55,134,239,105,164,201,170,
- 84, 83,169, 84, 34, 43,171, 36, 67, 66,231,206,157,209,185,243, 31,253, 25,116, 58, 93, 89, 20,203,194,194,162,178,136,214, 75,
-154,102,102,102,179,143, 29, 59, 54,246,202,149, 43, 67, 62,255,252,115, 81,215,174, 93, 13,102, 78, 5,227,198,118,171,160,201,
-178,108,208,233,211,167, 41,142,227,176,109,219, 54,220,188,121,147,151,203,229,243,229,114,249, 6, 51, 51, 51, 86,173, 86, 79,
- 28, 63,126,252,136, 69,139, 22,145, 29, 59,118,196,213,171, 87,201,186,117,235,142, 2, 42, 36,177,172,116,219,195,195,195, 65,
-146, 36,152,236,120, 76,154,125, 16,230,102, 52,162,162,162,144,157,157,253, 82, 18, 83, 99,246,103,249, 72,137, 97,234,216,177,
- 99, 89, 53,100,235,214,173, 65, 81, 20,238,220,185, 83, 85, 53,108,121, 77,222,206,206,174,236,252, 16,139,197, 56,119,238, 28,
-190,254,250,107,120,216, 90, 35,231, 97, 4,156, 58,191,131,238, 99,199, 99,216,176, 97,160, 40, 10,182,182,182,101,145, 95, 35,
-206,165, 87,161,188,230, 88,127,127,255, 81, 15, 30, 60,112,107,212,168,145,115,100,100,100,151,128,128, 0,207,136,136, 8,195,
-123, 41,140,107,155, 83,166,121,227,198,141, 35, 27, 54,108, 8, 26, 61,122,180,152,227, 56,246,249,243,231,122, 0,132,147,147,
- 19,117,227,198, 13,238,167,159,126,130, 90,173,134,155,155, 27,233,234,234, 74,156, 61,123,150,123,248,240, 97, 56,207,243,115,
-141,217,118,150,101, 43,164,113, 48,188,222,183,111,159,201,215,123,157,250,190, 75,187,190,237,231,158,153,124, 7, 41, 73,177,
- 96,243,148,186,144,227, 39, 53, 38,154,172, 63,251, 24,253,149,154,139, 31, 63,126,236,170,209,104, 32,145, 72,176,105,211, 38,
-221,178,101,203, 30,100,102,102,118, 64,229, 61,202, 43,104,214,178,215, 97,118, 53,154, 47,245, 58,204,203,194,169,227, 39,110,
-180, 84,244,223,129, 73,201, 25,101, 13, 27,121,130,176, 61,230,216,160,131,188, 85,163, 36,242,231,133,100, 1,171, 58, 85,205,
-182,107,213, 90,237,224,254, 3,134,255,118,224,192,126,197,130,133, 11,113, 57, 60, 2, 89,185,133,224,120, 10, 28, 65, 96,222,
-188, 5,112,178,183, 69,126,242, 99,149, 70,167,235,143,138, 57,180,254,245,199,157, 32,200,201,103,127,218,181,142, 36,192, 21,
-165, 61,146, 82, 5,177,242,145,195,250,211,131, 7, 15,198,177, 99,199, 16, 25, 25,185,165, 26,147, 85,166,201,243,228,228,136,
-243, 7,215, 17, 0,167,206,120, 36,165, 11,159,202, 71,125,208,159, 30, 54,108, 24,126, 12,185,130, 3, 39,159,110, 62,112, 18,
- 39,241,102, 99,122,102,120, 11, 26,145, 29, 26,120,187,118,108,214, 80, 70,179,106, 36, 62,140, 69,118, 81, 49,206,222,127,158,
- 75,242,100,173,115,235,148,220, 32,197,136,143,127, 92,201,147,149,172,180, 64, 47, 54, 73,147, 36,201, 10,209,172, 87,137,100,
-149, 95, 79, 71, 71,199, 10,195,185,148, 47,184, 13,109,128,106,145,218, 97,118,124,124,188,101,124,124, 60,120,158, 71,120,120,
-184,101,235,214,173,103,191, 74, 52,107,198,140, 25,101, 81,171, 23,231,149,125, 86, 19,165,141,210,131,245,122,253,225,153, 51,
-103, 78,106,221,186,117,143,133, 11, 23, 18, 48, 97, 0,222, 23,162, 57, 12,199,113, 8, 11, 11,195,177, 99,199, 88,157, 78, 55,
- 33, 37, 37, 37,162,220, 34,223,221,186,117,235,236,128, 1, 3,118, 61,122,244,136,122,240,224, 1,120,190,230,126,167,106,181,
- 26, 62, 62, 62, 96, 24, 6, 43, 38,185,163,160,160, 17, 24,134, 1,203,178, 48, 55, 55, 47,139,226,149, 55,207, 53,157, 71, 44,
-203,190,100,180,194,195,195, 65, 81, 20, 58,116,232,128,219,183,111,151, 69,180,106,138, 64,233,116,186,120, 71, 71, 71,199,197,
-139, 23,151,173, 87, 70, 70, 6,206,156, 57,131, 54,109,219,161,193,132,137, 72, 78, 78,198,218,181,107,225,226,226,130,165, 75,
-151, 34, 59, 59, 27, 12,195,252,213,225,244, 94, 15, 30, 60,112,251,224,131, 15,210, 35, 34, 34,220, 66, 66, 66,172, 3, 3, 3,
-205,135, 15, 31,158, 30, 17, 17,225, 70, 16, 68, 59,152,216, 8,154,227,184, 57,243,230,205,251,117,233,210,165,179, 63,253,244,
-211,214,163, 71,143, 22,137, 68, 34, 46, 41, 41,137,217,191,127, 63,225,227,227, 67,138,197, 98,226,244,233,211,220,245,235,215,
-175, 49, 12,179, 2,192, 69, 83, 34,206,229, 77, 22, 69, 81,198,154,172, 10, 76,115,144,142,178, 32, 51, 58,108,216,180,140,244,
-243,114,211,237,222,127, 38,225,226,213,199, 79, 40, 13, 51,237,135,106, 82, 3,188,201, 80, 20,117,200,223,223,127,204,228,201,
-147,205,122,246,236, 41, 93,180,104, 81, 94, 65, 65, 65, 85, 38,171,146, 7,230,191,164,215,225,247,115, 62, 15,153,246, 89,163,
- 49,222, 31, 57,213, 65,104, 81, 58,114,104,138,180,180, 38,209,204,147, 66, 65,102,140,242,228,111, 59,227, 0,212,148,151,237,
-198,173,123,145,221, 26, 54,106,122,116,197,210, 21, 14,243,103,205, 20, 29, 13,249, 5, 60,163, 67,248,249,243, 80,136, 89,254,
-225,173,208, 52,141, 78,219, 15,111,224, 16, 60, 41,151,215, 31, 0,112,194,214,214,246,238,216,209,163,125,252,253,135, 67, 46,
-151,227,200,145, 35,216,243,221,119,108, 48, 48, 68, 10,220, 14,170, 33,159, 94,250,181, 50,157, 59,227,199,142,245,109,214,236,
- 35,200,229,114, 28, 62,124, 24,187,130,131,141,214,249,151, 99,200, 12,127, 10,127,100,136,175,161,141, 22, 73, 20, 92,123,252,
-188, 48,252,241,243, 66,112, 60,207,241,188,134, 36,145, 80,164,211, 45,125,252, 52,169, 86,166,192, 80,117,184,228,155,201,175,
-175,206,163,156,249,169,109,151,238, 74, 76, 86, 98,249, 49,210,202, 23,210, 85,189,214,235,245,137, 70,202, 47,247,240,240,120,
-233,179,218,135,126,121,147, 76,150,177,121,180, 0, 32, 43, 43, 43, 5,192,252,171, 87,175,238,235,209,163,199,120, 0, 73,181,
- 60, 70,219, 58,117,234, 52, 1, 0, 69, 16,196,150,228,228,228,136,151, 46,248,148,148,104, 23, 23,151, 85, 94, 94, 94, 19, 75,
- 30, 76,137,109, 53, 20,228, 79, 27, 53,106,164,171,236, 88, 84,245,158,227,184, 26,143, 81,110,110, 46, 90,181,106,245,210,152,
-150, 60,207,227,249,243,231,134,136, 83,217,190,175,206,192, 21, 22, 22, 78,156, 50,101,202, 86,145, 72,228, 1,128, 48,152, 92,
-150,101,169,245,235,215,203, 88,150,165, 0, 16, 36, 73, 50, 34,145,168,248,216,177, 99, 12,195, 48,241, 26,141,102,226, 95,124,
-131, 56, 76,148, 12,197, 80,244,224,193, 3,191,210, 72, 86, 98,100,100,228,157, 3, 7, 14, 40, 1, 28,172,165,238, 69,149, 74,
-117,113,217,178,101, 29, 55,109,218, 52,103,226,196,137,173,134, 13, 27, 70,119,238,220, 25,167, 78,157, 98,195,194,194,194,213,
-106,245,114, 83, 12, 86,233,177,204,115,119,119, 47, 51, 92, 53, 92,203,213, 54,228,181,243,148,110, 24,241,177,139,108,219,242,
- 51,133,153,201,218, 43,250, 66,237,220,157, 64, 36,254,195,164,165,165,125, 14, 96,193,218,181,107,147,155, 52,105, 34, 21,139,
-197, 90, 99, 77,214, 95, 8,195,229, 22,190,247,109,247, 65, 39, 58,205,155,226,213,189, 75, 7,185,123, 29, 7,215,135,177,105,
-136,185,122,170,232,238,201,111,158,241,154,156,190, 0,140,105,185,126, 93,163,211,213,155, 49,115,198, 36,137, 72,212,131,101,
-217,198, 93,207, 30,231, 41,138,138,208,234,245,103, 75,171, 11,139,223,224, 67,190,100,213,170, 85, 62,254,254,254, 56,114,228,
- 8,206,238,221,139,161,153,153, 56, 71, 81, 20, 41, 22,219,157,212,233, 86,195, 56,131,180,100,205,154, 53,190, 1, 1, 1, 56,
-116,232, 16, 78,239,218,133, 33,181,211,169,170,172,107, 9, 64, 89,250, 54, 19,192, 35, 0,205, 1,152, 1,208,160,100,104, 39,
-251,242, 69, 88,233,119,134,239, 47, 16, 4,241,103, 54,132,173, 57, 51,252,139, 68,198, 60,107,254,186,215, 66,173, 86,103,251,
-248,248,152,212,231, 90,175,215, 87, 91,135,203, 48, 76,162,183,183,183,209, 81, 11, 99, 76, 81,118,118,118,139, 63,241, 96,188,
- 82, 91,172, 10,133, 8,199, 61,115,118,118,230, 12,133,126,101, 38,172,178,207,120, 32,206,148,255, 73, 77, 77,125, 4,224,179,
-218,174,103,114,114,242, 81, 24, 49,104,180,177,203, 1, 64, 78, 78,206,107, 31,204,151,224,249,164, 69,139, 22,153,100,176,193,
-243,213,153,207,136,194,194,194,214,198,252,183, 78,167,195,223,200,161,210,137,140,140,140, 28, 79, 16, 68, 79,148, 84, 9,108,
-193,235,201,230,125, 49, 63, 63,255,226,202,149, 43, 59,110,219,182,109, 26,207,243,200,207,207, 15, 54,213, 96,149, 61, 61,167,
-167,159,122, 93, 27,158,157,166,253,125,255,150,196,119,212,185,186,105,219, 11,181,187, 32, 80, 22,140,226,121,254,127, 35, 71,
-142,108, 3, 96,231,171,138, 85,209,235,240, 85,137,227,114,242,154,156,155,241,245,216,115,214, 22,189,193,210,126,208,146, 39,
-161,205, 58, 5,224, 7, 24,215,204,161,108,123, 25,142, 91,195,104,181,107,202, 21, 46,255,133,227,108, 27, 16, 16, 48,109,204,
-152, 49, 88,176, 96, 1, 78,175, 94,173,251,152, 32,242, 68, 0,255,107,201,131, 38, 73, 0,179,140,213, 25, 53,106, 20, 22, 44,
- 88,128,159, 87,172,168,173, 78,117, 40, 9,130, 8, 1,128,217,179,103,207, 93,182,108,153,205,156, 57,115, 26, 47, 95,190,124,
-105,233,251,251,134,239, 75,203,186,192, 57,115,230, 52, 44,247,125, 1,128, 27,127,242,254,172, 52, 51,252,159, 77, 55, 65, 83,
-208, 20, 52, 5, 77, 65, 83,208, 20, 52, 5,205, 87,129,231,249,222, 37,179,170,231, 85,189, 46, 55,255, 91,160, 33, 32, 32, 32,
- 32, 32, 32, 32,240, 47,164,124, 20,171, 54,223,191, 70, 12,109,180,202,179, 13, 40,233,214, 93,149, 43, 53,165,215, 67,109,156,
-109,168,160, 41,104, 10,154,130,166,160, 41,104, 10,154,255, 57,205,154,180, 95,250, 61,207,243,189, 9,130, 8,225,121, 62,176,
-170,185,193, 88,189,248,186,220,252,181, 53, 59,168, 4, 67,219,172,151,218,104,253,217, 8, 97, 85, 65, 83,208, 20, 52, 5, 77,
- 65, 83,208, 20, 52, 95, 9, 67, 21, 32, 0,126,246,236,217,115,254,129, 85,135,206,165, 38,171,252, 4,160,154,170, 67,158, 63,
- 76, 37, 37,193, 82, 34,145,139, 1, 64,171, 85,233, 92, 93,145, 79, 16,131,255,206, 1,111, 5,254,157, 24,186,123,167,189,230,
-101, 5, 4, 4, 4, 4,254, 27,100, 24, 34, 85, 0, 50, 0, 16,165,239,181,165,243,140, 82, 67,246,226,235, 10,223,255,137,164,
-160,138, 72, 22, 93,149,201,202,204,148,219,211,116,142, 47,203, 22,215, 7, 0,154, 38,163, 50, 51,109,162,121,254,112,102,109,
-204,150,189,131,195, 45, 17, 69,185, 26,179,172,158,101,147, 50,211,210, 42,166,142, 39,136, 55,193,224, 25,107, 34, 94,197,108,
-252,233, 70,197,222,222,222,209,209,209,241,125, 75, 75,203,182,185,185,185,215, 51, 50, 50,126,172,102,220,195,101, 4,129,153,
- 37,231, 21, 86, 2,152, 83,141,180, 41,203,190,136,143, 92, 46,159, 68, 16, 68, 64,233, 5, 22,169, 82,169, 54, 1,120,252, 31,
-188, 33,153, 1,232, 71,211,244, 40,123,123,251, 86,169,169,169,139, 0,212, 54,155, 55, 13, 96,134,181,181,245, 80,107,107,107,
-239,236,236,236, 39,249,249,249,135, 0,172, 1, 80, 99, 87,233, 69,159, 58,183,237,220,179,243,252,176,211, 97, 75, 22,125,151,
-114,245,165,239,103, 56,219,245,232,222,126, 65,216,201, 43,139,231,110, 76,206, 54,113,221,200,210, 9, 40,233, 29,201,227,229,
-100,175,175,138, 8, 64, 31, 0,157, 1,132, 1, 56,105,204,118, 87, 65, 27, 0,115, 75,215,121, 13,128,115,255,240,243,200,220,
-209,209,113, 5,128, 62, 52, 77, 63, 72, 74, 74,154, 0, 32,241,111, 94, 39, 26, 64, 75, 0, 1, 40, 73,195,113, 3,198,165,112,
-168, 17, 59, 59,187, 64,154,166, 39,149,166,118,217,148,149,149, 21,242, 79, 61, 48, 18,137, 36,216,201,201,233, 35,181, 90,173,
- 34, 8,130, 47,159,239,145, 97,152,196,204,204,204, 22,111,218, 77,141, 32,136, 27,255,240, 85,156, 80,201,103, 85,231,209, 74,
- 74,130, 37, 77,231,248,166,167, 70, 12, 77, 78,185, 55, 4, 0, 92,156, 27, 31,114,112,106,116, 48, 41, 73,162,115,242,235,175,
- 16,201,233, 77, 20, 37,106, 90,172,213,216,139,104, 81,166,142,209,223, 33,181,252,164,212, 71, 63, 86,154,108, 81, 68, 81,174,
-207,162,207, 57, 48,186,108,136,100, 46, 16,153,121, 84,185,182, 46, 46, 46,181,218, 74, 27, 27,111, 11,157, 84, 54, 77, 36,162,
-186,115, 60, 19,192,115, 0, 73,136, 34, 25, 86,255,155, 88,163,249, 54, 39,231, 73, 65,109,247,160,159, 29,156,120, 96, 24, 8,
-116, 7,143,179, 4,112,224, 81, 22, 82, 77,144, 48,214, 68,188,138,217, 40,255,219,181, 0, 62,127,221,103,146,171,171,171, 77,
- 96, 96, 96,240,215, 95,127,109,166, 80, 40,136,248,248,248,158,179,102,205,122,251,230,205,155,159, 37, 37, 37, 37,191,104,250,
- 8, 2, 51, 57,142, 39, 1,128, 36,137, 89, 74,165,131,156,162,168,151,114, 27,177, 44, 43,207,200, 72,159,204,113, 60, 81,186,
-236, 76,158,199, 58, 99, 12,163, 76, 38, 27, 30,208,168,233,103, 43, 86,173, 81, 56, 58, 56,152, 51, 44,167,139,123,254, 76, 62,
-127,246,231,173, 99, 99, 30,175, 43, 46, 46,222, 95,155,235,154,162,168,161, 82,169, 52, 16,128,127,233,103, 15, 53, 26, 77, 8,
-203,178, 7,141, 45,208, 29, 29, 29, 47, 80, 20, 85,199,148, 63,102, 89, 54, 62, 45, 45,173, 67, 45, 15,209, 96, 15, 15,143, 31,
- 58,117,234, 36,111,213,170, 21, 36, 18, 9, 22, 44, 88, 48, 35, 37, 37,165, 38,163, 69, 3,152, 33,151,203,135,154,155,155,123,
- 23, 22, 22,198,170,213,234,163, 18,137,164,219,186,117,235,220,219,183,111,111,145,150,150, 70, 80, 20,229,248,243,207, 63,127,
- 24, 28, 28,220,147, 97,152,174, 53, 21,114,121,177,252,124,105, 31,255,142,121,177,231,230, 3,232,245,226,247, 76,177,108, 20,
- 79,185, 7,170,249,219, 9,165,230,195,104,147, 37, 18,137,214, 57, 57, 57,141, 41, 46,201, 21,192,191, 88,224, 0,128, 86,171,
-205,201,205,205,245,171,205, 37, 15, 96,156,181,181,245,152, 47,190,248,194,166, 87,175, 94,216,187,119,239, 39,219,183,111,207,
-201,207,207,255, 31, 74, 18, 97, 62, 50, 81,115,102,106,106,234,123, 34,145,136,112,119,119,167,212,106,181, 41, 70,203, 23, 37,
-131, 48,223, 0,176, 9, 37,169, 11,186, 0, 37,215, 59,128,149, 6,227, 70,146,228, 38, 63, 63,191,247, 31, 62,124,184, 25,192,
-146,218, 94,235, 78, 78, 78, 91, 55,110,220, 56,164,111,223,190, 84, 70, 70,134,107,147, 38, 77,246,165,166,166,118,124, 13,183,
-145,177, 82,169,116,122,227,198,141, 27, 60,122,244, 40, 58, 63, 63,127, 77,233,254,172,238,154,114, 3,208,205,218,218,186,235,
-188,121,243, 20,129,129,129,216,182,109,219,123,219,183,111, 47, 44, 40, 40,248, 13, 37,109,122, 94,201, 4,210, 52, 61, 41, 49,
- 49,209,158,231,121, 56, 59, 59, 79, 2,240,143, 52, 90, 36, 73,174, 27, 48, 96,192,152,125,251,246,201,159, 61,123, 38,119,117,
-117, 45, 75,158, 77, 16, 68,173,203, 79,129, 87,102, 91, 57,195, 85,115, 30, 45,137, 68, 46,102,217,226,250,201, 41,247,134,188,
-221,105,189, 21, 0, 92, 56, 63,101,136,131, 83,195, 72,137, 68, 30, 45,181,148, 29, 27,208,167, 91,211, 65,129,157, 8, 55,103,
- 7, 36,166,164, 59,126,127,224,244,187, 33,167,207, 29, 67, 73, 2,177, 74, 97,116,217, 48,211,133,226,209,165,239, 96,223, 57,
- 25, 27,126, 78,196,213,187,113, 80,229,101,162,142,147, 25, 86, 77,235, 1, 39, 27,121,237, 30,189, 28,124,186, 48,180,244,224,
- 7,195, 71, 90,189,223,207, 95,228,233,228, 4,158,151, 34, 58,182,176,221, 47,103,206,181, 60,122,120,255, 36,115,145,207,208,
-162,244,199, 70,223,220,154, 57,195,172, 72,135,126, 52, 69,124,216,190, 69,131,174,195,223,235, 72, 54,240,175,135, 7,247, 31,
-246, 56,241,123,248, 42,242,202,253,223, 24,150,223,109, 46,198,241,219, 41,213, 38,244,123,201,112,116,237,218,173,163, 84, 42,
-173,144, 60, 73,163,209,136,127,251, 45,180, 77,109,204,134,225, 63,180, 90, 13, 41, 18, 73, 64,146,196,103, 1, 1,141,252, 51,
- 51, 51,207, 17, 4,241, 67,114,178,105,209,130, 41,128, 36,135,166,155,147, 82,169, 51,171,213,218, 1, 0, 33,145,228,196,145,
-100,163,121,115,231, 42, 40,138,226,178,178,178,160, 82,169,136,241,227,199,203, 98, 99, 99, 7, 36, 37, 37,125, 87,195, 19, 9,
-182,111,223,238,235,236,236,252,210,232,177, 41, 41, 41,146,190,125,223,175,205,161,247,109,220,164,217,244,211,167,127,245,207,
-207,206, 41,222,190,118,235, 45,189, 76,174,169,235,239, 39,218,180,109,151,213,132, 49, 35,166, 68, 69,221,191, 3,211,198,171,
-243, 48, 51, 51, 59,182,122,245,234,128, 46, 93,186,136, 28, 28, 28,144,150,150,134,135, 15, 31, 6,252,254,251,239,253,118,237,
-218, 53, 67,173, 86, 15, 0,140, 26, 16,213,231,183,221, 63, 56,152,219,218,129,213,235,225,210,184, 89, 89,126,179,152,223,207,
-128,209,233,192,233,245,240, 15,236, 87, 26, 77,230,225,239,239, 95,219,172,187, 46, 13, 27, 54,220,179,116,233, 82,177, 70,163,
- 65,120,120, 56,206,157, 59,199,165,164,164,212,148, 16,151, 38, 8,226,204,194,133, 11,221, 58,116,232, 96,145,153,153, 9,150,
-101,237,143, 31, 63, 62,169,105,211,166,150,238,238,238,146,221,187,119,163,176,176, 16, 12,195,216,122,123,123,219, 14, 31, 62,
- 92,187,123,247,238, 25, 0, 86, 84, 21,201,202,143,229,231,167, 16,222,239,250, 53, 31,133, 84,226,215,119,167,191,139, 95, 44,
-223, 34,202, 34, 91,239,122,123, 91,228, 39,201,103, 41, 44, 27,217,230, 39,133,206,122,215,219,123,251,175, 79,140,122, 24, 34,
- 75, 11,155, 15, 14, 28, 56, 32,127,248,240,161,220,223,223, 31, 28,199,149,101,224, 55, 36,156,245,241,241,169,205,126, 92, 30,
- 20, 20, 52,107,200,144, 33,104,220,184,113, 89, 82,212, 47,191,252, 18,179,102,205,178,185,112,225,194,140,253,251,247,207,248,
-241,199, 31, 87, 0,152,109, 98, 52,198,128,169,199,248,171,167, 79,159, 14, 62,118,236,216,136,153, 51,103,250, 0,152, 12, 96,
- 65, 86, 86, 86,167,210,104,140,164,212,104,141,157, 49, 99,198,199,179,103,207,198,123,239,189,183, 32, 60, 60,252,155, 90, 70,
-249, 40,134, 97,222,235,219,183, 47,165,215,235, 97,110,110, 14,189, 94,255,214,171, 6, 37, 0,108,156, 56,113,226,199, 65, 65,
- 65,176,177,177,129, 94,175,247, 61,112,224,192,246, 5, 11, 22,180, 5, 48,174,138,117, 29,245,241,199, 31, 15, 28, 57,114, 36,
- 90,180,104, 1,154, 46,217,141,171, 87,175,198,226,197,139, 21,103,206,156,233,183,123,247,238,126, 39, 78,156, 56,138,138,195,
-118,153, 4,199,113,160,105, 26, 9, 9, 9,112,112,112,144,114, 28,119,154, 32,136,109,217,217,217, 63,254,131, 10,243,149,131,
- 7, 15,254, 96,223,190,125, 10, 0, 88,181,106, 21,166, 79,159, 14, 71, 71, 71, 40, 20, 10,193,234,252,115, 34, 90, 19,106,140,
-104,213,132, 74,165,106, 54,231,211, 15, 65,146, 37, 79,141,245,234,122, 96,217,220, 9,196,137,144,211,205,170,141,193,203, 92,
-240,232,210,119,144,186, 79,131, 70,207,224,218,221,167, 56,187,170,103, 73,105,217,107, 30, 52,186,174,134,194,198, 86, 98,102,
-182, 82,203,178,151,225,228, 20,142,231,207, 51,106, 50, 89, 74, 39,199,144, 45, 91, 86,152, 5,188,229, 7, 29,163, 71, 82,122,
- 18, 8, 66, 10, 55, 87, 11,140, 29,213, 75,212,169,147,139,253, 87, 95,109, 61,149,202,161,191, 42,243,113,141, 9, 67,125,237,
-177,179, 89,128,207,144,225,189, 59, 72, 27, 5, 52,132, 88,106, 86,246, 93,243, 22, 45,208,188, 69, 11,114,118, 97, 65,247,235,
- 55,110,117, 63,114,230,154, 70,165,127,126, 40, 58, 19,163,107,184,201,148, 25,142,169, 83,167,194,209,209,177,194, 2,105,105,
-105,248,253,247,223, 42,253,141, 9, 55,178,178,255,248,230,155,111, 44,114,114,114,122,237,216,177,227, 29,142,227,190, 73, 77,
- 77,189,100,140,200, 72,160, 78,158, 84,218,117,204,154, 53, 92,211,247,223,167,172,157,156, 72,142,101,137,228, 39, 79,236,214,
-126,247, 93,231,236,152, 24,179, 34, 91,219,236, 28,181, 90, 21, 29, 29, 13,153, 76, 70,208, 52,221,178, 18,169, 52,158,199, 74,
-146, 36,102, 17, 4, 1,169, 84, 22, 29, 20, 20,116,187,244,187, 58, 39, 79,158,148,247,233,211, 71, 5,224, 25, 0, 72,165, 50,
- 87,138, 34,125, 75, 50,177, 99,165, 49, 6,211,220,220,252,211, 37, 75, 87,152,231,103,231,170,117, 69, 69,122,165,165,130, 32,
- 20, 22, 84,126, 94, 65, 65, 82, 74,134,102,222,162,197,212,196,177, 35, 63, 45, 42, 42,154,100,172,201,106,210,164,201,245, 99,
-199,142, 57,216,217,217, 33, 55, 55, 23, 89, 89, 89,184,126,253, 58, 56,142,195,128, 1, 3,164,237, 90,183,106, 54,119,222,252,
-171, 9, 73, 73,109,141, 49, 91,230,182,246, 88,213,161,105, 73, 97,253, 44,171,236,248,108, 27, 28, 88,182,204,226,196, 60, 67,
-116,238, 85,134,144,106,219,181,107, 87, 49, 0,140, 27, 55, 46,191,160,160, 96, 25,128,125,168, 57,163,255,140,249,243,231,187,
-214,173, 91,215,115,223,190,125, 40, 44, 44, 4, 0,135,186,117,235,194,215,215,151, 13, 11, 11,131,175,175, 47, 44, 44, 44,112,
-225,194, 5, 92,189,122, 21, 45, 90,180,176, 16,139,197, 67,116, 58, 93,165, 70,171,115,207,206,243,165,125,252, 59,250, 53, 31,
- 5,133,165, 51,182,239, 63,136, 71,183,118,117,212,232, 30,206, 23,179,231, 71,170,121,233,232,140,120,197,236, 58, 45, 58,217,
-213,107,248, 62, 60,155,223,182, 47,102, 47, 62,215, 9,111,111, 0, 0, 32, 0, 73, 68, 65, 84,157,223,189,238,114, 90, 86,188,
-107,209,154,148,172,170, 76, 22,128, 85, 3, 6, 12, 24,124,224,192, 1,107, 0,136,136,136, 64, 90, 90, 26,148, 74, 37,100, 50,
- 25, 68, 34, 81,217,248,164,181,100,244,166, 77,155,202, 76, 27,195, 48,101,163, 0,200,229,114,188,253,246,219,104,218,180, 41,
-126,252,241,199,209, 85, 24,173, 14,173, 91,183,222,235,233,233,233, 94,254,195,162,162, 34, 12, 27, 54, 12, 0,208,169, 83,167,
-174,102,102,102,188,193, 16,166,164,164, 20,222,184,113,163, 59,128,240, 42,156,165, 58, 41, 41, 9, 95,124,241, 5,226,226,226,
- 62,217,178,101,203,115, 0, 50,137, 68, 82,246,124, 12,192,183, 97,195,134,235,166, 79,159,142,216,216, 88, 60,120,240,224, 58,
-106, 95,149,202,154,155,155,199,232,245,250, 22, 12,195, 64,173, 86,163,127,255,254,178,163, 71,143,166, 81, 20, 21,149,153,153,
- 57, 2, 37,109, 82,140, 69, 6, 96, 77, 80, 80,208,199, 51,103,206,196,111,191,253,134, 19, 39, 78, 96,228,200,145,152, 54,109,
- 26, 20, 10,197,152,105,211,166, 93, 69,201,128,230, 47,210,117,211,166, 77, 96, 89,246,165,107, 67, 38,147,161, 67,135, 14,104,
-208,160, 1, 78,156, 56,209,245, 21,140,150,103,135, 14, 29, 36, 28,199,161,168,168, 8, 97, 97, 97, 10, 51, 51, 51,133,155,155,
-219,120, 0,255, 24,163,229,233,233, 25,116,224,192, 1, 69,249,218, 31,169, 84,138,114,231,129,192,223, 31,209,170,246, 9,171,
- 12,173, 86,165,163,105, 50,202,197,185,241,161, 11,231,167,148, 85, 29, 2,100,148, 86,171,210, 1, 0,203,241,200, 87, 49, 48,
-147,146,120,150, 90,128,251, 79, 50, 43,147,170,208, 69, 83,100,230, 1,105,171,103,224,121, 30, 90, 29, 11, 77, 94, 42,150,157,
- 82,225, 97, 98, 49,180, 69, 57,208,234, 74,154, 97,217,219,219,211,167, 79,255, 50, 61, 52,244,247,143,255,247,191,255, 81,137,
- 86, 86, 15, 10,128,102,149,105,218,216,120, 91,112, 18,201,161,205, 91, 22,152,241,212, 19, 68,199, 23,161,158, 91, 43,216, 91,
-187, 35, 53,179, 8,151, 31,252,140,168,199, 33,168,235,236,137,105,159,190, 43, 91,178,116,223, 65, 49,227,229,145,155, 27,151,
- 95,213,122, 26,158,162,182,254, 26, 13, 38,251, 9,216,172, 88,176, 5,201, 47, 45,160, 80,122,160,121, 23, 87, 40,221,223,146,
-142,158,182,120, 20, 80,193,104,149,215, 76, 35, 8,114, 51, 73, 18, 31, 19, 4,129,198,141,155, 36,174, 89,179,166,178, 84,224,
-186,198,141,155, 36, 82, 20,233, 86,114, 99, 39, 55,241, 60,151, 86,195,122, 86, 48, 53, 18,137,116,102, 73,216,223, 57,225,212,
-169, 83,186,193,131, 7, 99,245,234,213,146, 89,179,102,205,163, 40,106, 92, 37,213,123, 21, 52,251, 3, 30,214,111,189,213,227,
-155,203,151,121,145, 94, 79,100, 95,191,158,159,155,146,194,164, 22, 20, 72, 14, 71, 69,189,247,209,231,159, 75,220,221,221,113,
- 41, 36,196, 46,163,168,136,207,213,104,212,185,185,185, 60,195, 48,215,171,208,156,163, 84, 58,200,183,111,223,238, 27, 20, 20,
-116, 59, 37, 37,101, 14, 0, 56, 59, 59, 47, 3,208, 0,192,179,114,159, 97,203,150,131, 73,227,199,143,143, 78, 79, 79,159, 83,
-221,122,150,163,161,131,210, 65,190,127,235,238,123,182, 22,102,164,210,205,133, 20, 89, 91,211,140,196, 76,204, 1,234,186,238,
-111,153, 3,104, 88,197,111, 95,212, 36,204,204,204,142,253,244,211, 79, 14, 34,145, 8, 44,203, 66,169, 84, 34, 46, 46, 14,185,
-185,185, 40, 40, 40,192,211,168,135,240,114,119,199, 87,179,103, 57, 79,158, 53,251,152, 74,165,106,241, 66, 97,246,242, 0,200,
-122,221, 75,145,189,202, 70, 49,120,177,218,203,200,227, 94,158,184,248,248,120, 40, 20, 10, 4, 4, 4, 40, 46, 95,190,124,177,
- 26,147, 85,126, 16,224, 33,237,219,183,183,216,183,111, 31, 90,180,104, 1, 43, 43, 43,132,133,133, 33, 34, 34, 2, 58,157,142,
- 44, 44, 44,132, 66,161,192,242,229,203,225,225,225,129,130,130, 2, 60,123,246,204, 78, 36, 18,217,191,144,209,190, 76, 51,236,
-116,216,146,188,216,115,243, 83,137, 95,223,221,190,255, 32,198, 15, 31, 10, 39,254,201, 69,171,183,136, 37, 61,250,180,255,146,
-167,220, 3,205, 45, 26,219,248, 4,244,129, 88,162,192,228,153,139, 17, 29,121,210, 70, 85,112,239, 19,130, 77,112, 95,180,230,
-240,212, 74,182,157, 0, 64,186,187,187,127,116,248,240, 97,139,178,208, 11, 69,149,141,121, 88,126, 16,248,106, 6,124,175,113,
-127, 18, 4,129,184,184, 56, 56, 56, 56, 64,161, 80,148, 13, 32,254,240,225, 67, 92,187,118, 13,134,209, 40,170,208, 28, 17, 26,
- 26,234,110,110,110, 94, 97, 1,158,231,145,153,153, 9,134, 97, 32,151,203,193,178, 44,116, 58, 29,244,122, 61,138,139,139, 21,
- 13, 26, 52,152,164,215,235,195, 43,211,228, 56,238,179, 33, 67,134,180, 15, 15, 15,247,254,238,187,239,160,213,106, 87,165,166,
-166, 98,224,192,129,224, 56, 14, 93,187,118,109,195,243,252,163,121,243,230, 1, 0,166, 79,159,174, 47, 42, 42, 10,170,205,182,
-151,210,160,121,243,230,222,191,253,246, 27, 58,118,236, 8,141, 70,131,213,171, 87, 91,110,217,178,197,114,247,238,221,202,153,
- 51,103,254,144,145,145,209,179, 6, 77, 2,192, 42, 39, 39,167,143, 59,119,238,108, 86, 58,134, 41,118,237,218,133,175,190,250,
-234, 0,128,121,191,252,242,203,194, 19, 39, 78,140,250,232,163,143,240,213, 87, 95, 77,203,205,205,221, 81,149,230,211,167, 79,
-161, 84, 42, 97,105,105, 89,114,179,212,233,112,231,206, 29,156, 61,123, 22,245,235,215, 55,102,155,170, 90, 79,207, 1, 3, 6,
-252,176,127,255,126,139,132,132, 4, 92,184,112, 1, 94, 94, 94, 80,169, 84,198,140, 13, 27,250, 39, 20,216, 85,106,170,213,234,
-226,248,248,120,197,138, 21, 43,224,236,236, 12, 79, 79, 79,200,100, 50, 16, 4, 1,189, 94, 95,221,240,106, 53,174,103,167, 78,
-160, 51,147,108,250, 90, 89,219,124,194,243, 60,157,151,151,179, 85,135,220, 35, 79,158, 64,251, 23,110,251,191,153,102, 0,110,
-163,226,152,135, 41,101, 70, 43, 36, 36,132, 15, 12, 12, 36, 12,115, 87, 87,228,103,102,218, 68, 59, 56, 53, 58,232,224,212,176,
-116,220, 47, 50,138,162,108,162, 29, 29, 85,249, 0,160, 99,120, 92,137,202,197,189,152, 84, 68,196,164,194, 92,106, 92,240, 69,
-163, 99, 74, 90,172,242, 60,138, 11,255,120,104,213,169,114,160,209,149, 52,247,208,106, 84,200,203,120, 64, 12,238,223, 93,246,
-241,199, 19,225,236,236,170,172, 74, 79, 39,149, 77,155, 60,253, 61,107, 91,107, 17, 66, 46,255,138, 54,245,251, 67, 38, 21, 33,
- 43,175, 24, 32,128,199, 79,206, 2,156, 5, 34,163,227,209,186,161, 28, 61,123,248, 43,126, 60,242,232,115, 0, 11,140, 89, 95,
- 38,241, 58,196, 62,189, 32, 98,245,208,103, 62, 2,151,251, 28, 48,119,130,154, 80, 32, 43,229, 57,162, 46, 30, 53,234,153,145,
-227,184, 79,236,237,237,115,231,205,155,215,185, 94,189,122,186, 73,147, 38,221,125,254,252,249,103, 47, 60,173,124,187,105,211,
- 38,196,196,196, 36,125,243,205, 55, 97,153,153,153,243, 77, 60,208,179,121, 30,193,165, 85,113,153,199,143, 31,111,126,254,252,
-249,105,193,193,193,142, 83,166, 76,145, 76,153, 50,101, 44,128,175,171,171, 46,204,151, 74,187,125,115,225, 2,207, 36, 38,106,
-246,172, 95, 47,217,120,229,202, 60, 29,199,185,216, 59, 56, 16,237, 90,183, 46,146,147,100,102, 86, 90, 26,163,244,246,166,226,
-206,158,181,227,205,204,146,127,249,229,151,252,194,194,194, 42,135,206,161, 40, 74, 85, 89,117, 97,101, 56, 59, 59,107, 43,107,
-195, 85, 77,129,152,207,241,188,206,186,110, 93,190, 71,215,182,245, 98, 30, 61,121, 34,179,182,166,124,234,121,249,221,143,138,
-187,206,179,108, 49, 65, 16,249, 70,213,149, 80,212,208,224,224,224, 70,150,150,150,224, 56, 14, 86, 86, 86,200,200,200,128, 86,
-171, 69,126,126, 62,180, 5,121,208,230,229, 33,226,121, 28,218,119,238,140,193,239,246,240,223,125,252,167,161, 44,203, 30,168,
-182, 62,175,113,179,178, 72,214,226, 58,118,127,212, 5, 37,228,150,153,174, 21,205,124, 32, 86, 40,208,253,179,217,175,114,161,
-223, 62,117,234,212,207, 3, 6, 12,120,239,243,207, 63, 39, 83, 82, 82,126,141,139,139,107, 15,224, 65,117, 63, 82, 40, 20,111,
-101,102,102,162,176,176, 16, 86, 86, 86, 8, 14, 14,134,163,163, 35, 84, 42, 21,110,220,184,193,187,185,185, 17, 97, 97, 97,112,
-115,115, 67, 86, 86, 22,116, 58, 29,212,106,117,170, 86,171,173,178,186,188,180,122,176,215,244,119,241,203,163, 91,187, 58,186,
- 18, 79,111, 12,153,209, 41,230, 81, 68, 84,252,153,179,151,191,102,138,101, 9,185,137,161,179,234,182,188,109,255,201, 23, 95,
- 97,195,170,133,120, 20,126, 33,219,209, 35,127,163, 25,161,217, 89,221,250, 22, 21, 21, 21, 71, 69, 69, 89,220,189,123, 23, 4,
- 65,192,202,202, 10,114,185,188, 82,179, 85, 11,200,242, 17,168,162,162, 34,136,197, 98,216,217,217, 97,199,142, 29,101, 5,175,
-151,151, 87,117, 26, 91,187,119,239, 62,212,195,195,195,162,252,135, 45, 91,182,196,196,137, 19,177,121,243,102, 92,185,114,165,
-194,120,154,169,169,169, 41,122,189,190,186,237,206, 77, 75, 75,123,183,127,255,254,183, 46, 94,188,104,185, 99,199, 14, 48, 12,
- 83,233,180,125,251,118, 92,187,118,109, 1,128,168, 90,158, 71,245, 7, 14, 28,120, 97,239,222,189,214, 25, 25, 25, 48,156, 27,
- 69, 69, 69, 96, 89, 22,126,126,126, 4,195, 48, 53,181,123, 35, 41,138, 58,190,126,253,250, 62,227,199,143, 7, 77,211,208,106,
-181, 88,191,126, 61,102,205,154,149, 86,250, 80,170, 3, 48,111,231,206,157,163,222,127,255,125, 52,105,210,196,255,220,185,170,
- 91,118, 20, 22, 22,162,176,176, 16, 34,145, 8, 78, 78, 78, 88,178,100, 9,180,218,146,219,138,175,239,255,217,187,238,176, 40,
-174,246,123,102,182,194,238,210,123, 81,172,160, 96,239, 5, 69,108,104,236, 29, 75,236, 26, 21,123, 67,141, 53, 81, 76, 52,177,
- 43,214, 24,236, 61, 17, 27,138,138, 5, 43, 29, 81, 84,122, 19, 16,150,182,125,103,103,126,127, 80,130, 72, 89,208,228,251,126,
-249,246, 60,207, 62,187,179, 59,115,246,157,123,239,204, 61,243,222,123,223,215,169,236, 50, 6,112,208,201,201,105, 72,108,108,
-236,118, 20,207, 93,251, 12,214,214,214, 35, 24,134,153,165,209,104, 10,123,244,232, 97,118,250,244,105,131,180,180, 52,132,132,
-132, 96,237,218,181, 98,154,166, 53, 52, 77, 19, 50,153, 44,222,210,210, 50,132,207,231,235, 75,165,210,220,156,156,156, 45, 0,
-110,254,167,122,114,130, 32, 8, 14,135,131,233,211,167,131,205,102, 67, 95, 95, 31,114,185, 28,106,181,186, 76,204,163,150,195,
-210, 77,155,138,204,216,224,206, 52, 49,112, 89, 52,102,225, 96, 11, 27, 91, 59, 24, 27,242, 17, 19,243,170,251,221,192,219,123,
-120,236, 55,190,180, 82,237,251, 38, 49,255,111, 79,118, 95, 81,139,252, 63, 21, 90,159,229, 60,100, 87, 94,153, 99, 52, 12,115,
-254, 99, 90, 26, 79,197,227, 9, 98, 75,189, 92, 86, 86,210, 2,130, 24,163,177,104, 49, 12,148, 74, 93,114,163, 96, 74, 94, 90,
- 10, 45,181, 6,239,222, 68,225, 97,192,159, 48,151,166,225, 99,124, 91,128,219, 10, 74, 89, 62,228, 74, 85,137, 40,209, 32, 60,
- 36, 16, 5,249,185,104,217, 97, 48, 64,146, 79,171,226, 51, 50, 35, 6,119,107,223,154,245, 46, 57, 10, 29,157, 70,163,177,125,
- 15, 36,101, 20, 32,175, 72, 1,113,129, 28,109, 91,122, 35, 91, 44, 67,129, 84,142, 87,239,252, 96,103,219,152, 36,216,113,125,
-180, 21, 90,138, 87,151,160,120,253, 7,184, 14,221,193,107, 54, 20, 44, 7, 87, 36, 71,220, 67,248,141, 29, 72,141,126, 4,134,
-214,192,198,169,147,182, 23,201,158,155, 55,111,118,234,222,189, 59,187,111,223,190,109,174, 95,191,222, 38, 35, 35, 35,188, 68,
- 96,180,233,219,183,111, 27, 11, 11, 11,236,218,181, 75, 70, 16,196,158, 58, 86,118,153, 7, 44, 43, 43,235, 57,128,205,151, 46,
- 93,218, 51,123,246,108, 88, 90, 90,182, 74, 79, 79,175,242,192,108, 14,167,205,148, 45, 91, 24, 14,139,197,156,217,187,151,187,
-241,230,205, 95,126, 59,126,156,219,219,221,157, 96, 24, 6, 97, 97, 97,130,159,246,238, 21, 76, 24, 54, 44, 49, 41, 43,139, 10,
- 10, 14, 86,101,164,166, 22,102, 73, 36, 27, 51, 50, 50, 62,252, 39, 90,182, 90,173,126, 18,159, 16,111,215,161,115, 91,139,208,
-152,248,104,143,222,221,186,145, 36, 73,190,137, 75, 10,182,176, 48, 20,220, 14,184,173, 82,171,213, 79,180,225,226,243,249,131,
-123,247,238,205, 22,139,197,176,181,181, 69,118,118, 54,210,210,210,138, 61, 14,249, 98,168,242,243,161, 46,200,131, 70, 82,132,
-248, 23,207,209,182,113, 35,254,121, 62,127,176, 84, 42,173, 86,104,149, 62,101, 86,150,232,186,244, 59,158,129, 1,120, 34, 17,
-136,218, 15, 27, 14, 51, 54, 54, 94,153,151,151,119, 29,192,143, 42,149,202,107,229,202,149, 29,119,239,222,109,190,121,243,102,
-195, 89,179,102,157, 47, 42, 42,106,139,226,164,170, 85,117, 96,239, 41,138, 50, 3, 96, 21, 24, 24, 8, 75, 75, 75,228,231,231,
-151,122, 90,148, 82,169, 84, 47, 39, 39, 7, 10,133, 2, 74,165, 18,134,134,134,120,249,242,101, 46, 69, 81, 87,107, 50,206,176,
- 9,241,163, 66, 21,243,189,153,179, 48, 93, 69,153,184,101,229,210,226, 13,191,100,108, 2,240,203,128,198,141, 15,171,232, 7,
-241,111,163,174,154, 36,188,184,159,155,254, 86,210,248,200,245,248,234,230,104, 49, 0,104,130, 32, 24, 39, 39, 39,100,103,103,
-131,197, 98, 65, 32, 16, 64, 36, 18, 97,213,170, 85,216,179,103, 79, 93,132,150,158, 80, 40,220, 66,146,228, 56,146, 36, 45, 52,
- 26, 13,188,189,189, 49,100,200, 16,240,120, 60,168, 84,170, 50,143,102,169,151,170, 6, 79, 71,216,211,167, 79, 13,159, 62,253,
-228,182,229,110,110,110,126, 87,161, 80, 32, 46, 46, 14, 87,174, 92,233, 5, 32,168,150,117, 29, 23, 22, 22, 54,192,213,213,245,
-247,246,237,219, 55, 97, 24, 6,173, 90,181,130,167,167, 39,252,252,252, 16, 30, 30,142,252,252,124,250,246,237,219,191, 1,216,
- 94,219, 62,188,164,124,155,141, 26, 53,234,209,169, 83,167, 76,114,114,114, 32,147,201, 32,145, 72,112,254,252,121,116,239,222,
- 29,230,230,230, 56,121,242, 36,197, 48, 76,117,117, 79,146, 36,121,196,215,215,119,200,140, 25, 51,176,111,223, 62,156, 57,115,
- 6, 67,135, 14,197,184,113,227,144,157,157,109,181,109,219,182,201, 37,195,132,235, 61, 61, 61, 81, 84, 84,132, 23, 47, 94,196,
-104,121,205, 35, 47, 47, 15,121,121,121,208,215,215, 47,127,141, 17, 0,252,118,236,216, 49,126,209,162, 69,104,220,184,241,250,
-248,248,248, 29,168,100,149, 40, 77,211,223,165,165,165,153,176,217,108, 51,138,162,144,146,146,130,151, 47, 95, 98,222,188,121,
-185,185,185,185,179, 1, 36, 1, 88, 51,125,250,244, 31,151, 44, 89, 82,214,150,150, 44, 89,226,127,253,250,245, 1,255,180, 55,
-199,201,201,184, 5,143,197, 95, 40, 46,100,153,137,197,226,178,123,135, 82,169,132, 66,161,248,196,147,197,229,114,204, 58,182,
-173,127, 77, 38, 45, 92,253,234,109, 94,149, 9,210,157,155, 24,181, 22, 8,141, 22,117,239,209,123, 98,255, 1,195, 89,148, 90,
-141, 91,183,174,226,232,209,253,112,119,117, 66,227,166,173, 48,127,193, 66, 35,133,146,242,190,125,251,230, 74,227,167, 15,111,
- 22, 22,228,173,170,142,243,127, 28,215, 74,196,213,181, 74,135, 14, 43, 83,144, 37, 33, 28,196, 37,155,230, 38, 38, 38,123, 53,
- 26,141,187,161,161, 33,232,188, 88,188,122,249, 12,185, 98, 14, 20, 50, 13,104,166, 88,108,105, 37, 92, 20, 74, 60,184,245, 7,
-118,238,248, 5, 57, 57, 57,112,237,217, 11, 69,236,122,168, 95,175, 62,228, 50,105,201, 69, 3,168,148,106, 88, 88, 57, 32, 52,
- 52, 92, 93, 32,145, 84,121, 67,226,234,169,156,235, 91, 57, 65,161,234, 10, 61, 30, 15,249,133, 74,136, 75, 68,214,201, 11, 99,
-161,144,202, 64, 41, 85,160,148,106, 88,212, 31,133,230, 86,189, 65,107,174,182,168, 85,241,209, 26,168, 18, 30, 64,149,240, 0,
-250, 93, 23,224, 79,159,241, 21, 58, 82,237,242,238,102,103,103,103, 69, 71, 71, 95, 13, 11, 11, 27, 49,118,236, 88,220,187,119,
-111, 22,128, 57, 37,195, 55,179,198,142, 29,139,176,176, 48, 68, 71, 71, 95,205,206,206,206,250, 26, 53,207,227,241,100, 10, 69,
-113, 31, 43, 16, 8,244,106,216,215,174,227,200,145,100,126,104,104,193,142,199,143,215, 31, 62,114,132,219,183, 79, 31, 66, 77,
- 81,160, 53, 26, 52,117,116, 36,250,247,239, 47,244, 59,119,206,140,165, 86, 63, 93,238,229, 21,120, 96,210,164,194,231, 18,137,
-182, 19,205, 27,148, 12, 25, 2, 64,131,106,190,211, 26, 10,133, 98,247,119, 51,167,246, 13,122,240,168, 94,253,122,118,134,183,
-110, 7,133,243,245,121,100,227,134, 77, 88,226,252, 92,246,166,245,171,245, 21, 10,133,182,162,213,217,220,220, 28, 31, 62,124,
-192,187,119,239,160, 80, 40,160, 86,171, 65, 75, 37, 80,138,243,160,204,207, 5, 33,151,129,175,209, 64,254, 49, 19, 13, 26, 55,
- 2,254, 90,145, 88,227, 80, 84,101, 66,171,244, 93,207,208, 16, 92,161, 8, 36,135,163,117,114,116, 0,237, 59,117,234,116,238,
-226,197,139,220,105,211,166,117,190,115,231,206, 94, 0, 73,105,105,105,125,214,174, 93,251,124,239,222,189,252,217,179,103, 55,
-219,190,125,251,100, 0, 7,171, 34,145,203,229,231,174, 93,187, 54,193,193,193,193, 42, 50, 50, 18,114,185, 28, 52, 77, 99,224,
-192,129, 64,241,220, 26, 0,192,155, 55,111,100,114,185, 60, 43, 42, 42,170, 32, 41, 41, 73, 5, 45, 86, 9,110,216,157,241,164,
-224,195,131,145, 86,214,118, 79,245,244, 27, 52,100,138, 66, 71, 44, 30,109,183,109,199,133, 52,249,205,184,184,194,239,251, 53,
-218, 42, 41,140,152,103,108, 95,180,239,166,127,188, 54, 19,225,203, 86, 23,154,153,153,129,205,102,131,195,225,128,203,229,130,
- 32, 8, 44, 88,176, 0,135, 14, 29,170,105,232,240, 19,145,101, 96, 96, 16,189,113,227, 70,251,217,179,103,115,245,244,244, 32,
- 22,139,113,242,228, 73, 76,159, 62, 29, 71,143, 30,173,116,254,139, 22, 67, 74, 21,189,165,139, 38, 77,154, 4,165, 82, 9, 79,
- 79, 79, 28, 62,124,120,145, 70,163, 9,170,195, 37,253, 52, 60, 60,220, 49, 60, 60,220, 16,192,208,113,227,198, 29, 31, 53,106,
- 20,130,130,130,112,245,234,213, 94, 40, 94,244, 33, 3,224, 3,192,178,228,189,186,235, 83,104,101,101,181,159,166,233,161, 22,
- 22, 22,225, 78, 78, 78, 45, 79,157, 58,101,156,149,149, 85,186,248, 1, 9, 9, 9, 56,118,236, 88,198,145, 35, 71, 10, 52, 26,
-141, 25, 73,146,215,242,242,242, 86, 85, 35,216,142,236,216,177, 99,106,201,112, 32, 46, 94,188,200,252,242,203, 47,196,218,181,
-107, 33, 22,139,225,238,238, 14, 95, 95,223,133, 69, 69, 69,109,126,249,229,151,153, 99,198,140,193,166, 77,155, 32,145, 72,118,
-212,244,176, 82,141,248, 34, 0,116,219,177, 99,135,195,162, 69,139,112,241,226, 69,180,111,223, 94, 63, 62, 62,254, 0,128, 25,
-149,213, 31,195, 48,136,143,143,135, 84, 42,197,163, 71,143,176,126,253,122,113, 57,145,181,112,206,156, 57, 63, 46, 92,184, 16,
- 91,182,108, 97, 34, 35, 35,179, 70,141, 26,101,117,232,208, 33, 86,211,166, 77, 23, 74,165,210,127, 76,104, 53,107,106,186,181,
- 99,251, 30, 43,109,236,154,226,228,169,211,200,205,205, 45, 43,147,210,114, 97, 24, 6,133,133,133,248,240,225, 3,140, 12, 13,
-176,109,251,143,223,204,157, 53,181, 30,138,195, 96,124,238,178,108,108,178,125,212,184,105, 75, 61, 39, 76, 69,100,120, 8,252,
-142, 31, 68, 84,100, 88, 25, 31,165, 86, 33, 54,230, 37, 98, 99, 94,194,202,218, 1,253,251,246, 34,198,143, 31, 63,112,210,132,
-113, 22, 0,254,182,208, 17,255,143,189, 89,192,231,113,180, 14,125, 34,180,106,112,215,153,155,152,152, 68,159, 61,123,214,204,
-213,213,149, 69, 81, 20,110,222,186,133,121,115,190,197,228, 73,222, 80,193, 4,148,146, 11,154,171,167,149, 37, 50,153, 20, 12,
- 24, 72, 36, 18, 4, 7, 7,131,161, 41,248, 29,250, 5, 12, 67,151, 9, 45,128,129, 82,165,130, 93,253,102,216,127,120, 51, 5,
- 14,231, 57,212,149,135,174, 41,200, 97,105,212, 20,131,180,172,100, 36,103, 68,193,200,160, 62,216,156,250,200,201,147,130, 77,
- 90, 67, 45,127, 3, 77,201,177, 82, 73, 42,100,170, 47,171, 63, 77, 37,222, 83,166, 22, 55, 93,153, 76,118,226,196,137, 19,223,
-252,250,235,175,188, 65,131, 6, 57, 93,184,112,161, 27, 0, 12, 26, 52,200,201,208,208, 16, 39, 78,156, 80,202,100,178, 19, 95,
-209,227,211,187, 83,167, 78, 16,139,197, 72, 72, 72, 8,175,246,220,148, 74, 51,145,165, 37, 43,235,222, 61,117,182, 88, 92,175,
-119,239,222,132,154,162, 64, 18, 4,114,243,243,145,148,152, 8, 99, 99, 99, 34,250,205, 27,209,158,249,243, 47, 59,181,108,201,
- 46, 93,145,168, 13,174, 94,189, 42, 64,241,188,172,106,191,171, 37, 36, 89,153, 31,166,122,121,121, 93, 62,113,226,164, 81,102,
- 86,102, 44,159,199,163, 68, 34, 61,219, 73, 19,231,178,243,242,242, 38, 0, 40,210,150, 76, 44, 22, 35, 62, 62, 30,250,250,250,
-224,114, 56,160,101, 82,104, 36, 69,144,231,102,131,165, 82,130,167,209,192, 84,192, 71, 61, 43, 43,212,183, 48,215,138,243,221,
-221,128,178,137,239,229,135, 11,183,117,114, 6, 79, 40, 2,207, 64,132,185,254,247, 75,158, 70,185,192,218, 31,180,161, 53,183,
-179,179,251,243,212,169, 83,220,236,236,108,132,133,133,133, 3,200, 7, 96, 0,128,142,137,137,185, 19, 21, 21, 53,184,100,213,
- 93, 77,171,197,126,185,116,233, 82, 63, 87, 87, 87,170, 97,195,134,194,172,172,172,122, 98,177,152,206,200,200,248,196, 37, 20,
- 16, 16,192, 47, 44, 44,148,208, 52,125,185, 68,100,213, 24,191,104,241,104, 59,189,224, 80, 44,112,243,104,208,202,208,188, 53,
-114,169,208, 86, 79,195, 51, 22, 44, 30,109,183,123,199,133, 52,185, 62,161, 56, 78,104, 82,234,177,245,228,218, 78, 98,102,128,
-226,185, 82,193,193,193, 72, 74, 74, 66,124,124,252, 39,130,106,214,172, 89,240,243,243,211,202,163, 37, 20, 10,183,108,216,176,
-193,126,209,162, 69,220,114,162, 8, 94, 94, 94,200,207,207,199,225,195,135,225,229,229, 85,235,142,191, 2, 26,245,238,221,123,
-144,141,141, 13,114,114,114, 96,109,109, 13, 87, 87,215, 33, 65, 65, 65, 13, 1, 36,212,177,221,207,245,240,240,248,113,227,198,
-141, 80,171,213,152, 62,125, 58,222,190,125,123,238,237,219,183, 59,235,215,175,191, 96,197,138, 21, 86, 86, 86, 86, 24, 59,118,
-172,144,162,168,145, 85,145,152,154,154,250, 28, 60,120,112,194,160, 65,131, 72,149, 74,213,243,238,221,187, 72, 76, 76,132, 82,
-169, 4, 69, 81,120,255,254, 61,188,188,188, 50, 74, 86, 55,190,215,194,174,105,107,214,172,153,186, 96,193, 2,252,244,211, 79,
-216,176, 97,195,111, 70, 70, 70, 45,219,182,109,219,110,195,134, 13, 88,190,124, 57, 28, 28, 28, 96,102,102,214,124,237,218,181,
-206, 75,150, 44,193,238,221,187,177,126,253,250,223, 0, 28,171, 75, 65,208, 52, 77,108,221,186,181,205,142, 29, 59,108, 74, 69,
- 22, 73,146, 56,123,246, 44, 66, 67, 67,135,196,197,197, 85,118,140,175,181,181,245, 44, 27, 27, 27,222,237,219,183, 69, 14, 14,
- 14,160, 40, 74, 93, 34,178,246,212,175, 95,127,222,251,247,239, 49,104,208, 32,196,197,197,157, 0, 48,217,200,200, 72,178,100,
-201, 18,129,190,190,190,145, 84, 42,253,167, 58,111,176, 72, 98,202,150, 77,203,241, 34,244, 13, 46, 93,226,226,197,139, 23,176,
-178,178, 2,159,207, 7,195, 48, 80, 40, 20,200,206,206,134, 90,165, 64,171, 22,141,240,251,145,173,200,202,202, 6, 72,162,202,
- 41, 55, 4, 73, 76,156,250,237, 8, 60,124,116, 11, 7, 14, 28, 68, 81,145,164,138,135,111, 61, 52,117,114,134,157,173, 37, 82,
- 82, 83, 64,144, 48,255, 59,207,245,255,249,208, 97,217, 45, 8,218,132,119, 40, 15, 99, 99,227,157,103,206,156, 49,115,119,119,
-103, 73, 36, 18,208, 52,141, 30,174,174, 88,176,104, 17,174,158, 58, 5,199,206,158, 32,148, 34, 80, 2,237, 86, 61,200,101, 82,
-184,180,235,134, 49, 99,199, 33, 57, 41, 9, 30,131, 71, 65, 46,151,150, 61, 97,148,122,180,148, 74, 21,204, 45,235, 33, 32, 32,
-128,133,233,211, 95, 97, 79,229, 78, 9,141,138, 23, 17,251, 94,222, 61, 79, 22,138,224, 23,126, 80, 41, 84,104,213,106, 45, 84,
-180, 25, 44,237,103, 65,173,190,130,130,236,187,197,195, 24,102,238, 72, 77, 78, 6,201,226, 70,215,181, 4,105, 73,246, 23,221,
-116,243,243,243,243,227,227,227, 47, 4, 7, 7, 79, 28, 57,114, 36, 2, 2, 2,102, 2,192,200,145, 35, 17, 28, 28,140,248,248,
-248, 11,249,249,249,249, 95,163,182,109,108,108,134,246,234,213,203,179, 99,199,142,240,247,247, 7,195, 48, 15,181,186,176, 57,
- 28,134, 36, 73,208, 52, 13, 2, 64, 78, 94, 30,222,190,125,139,156,143, 31,161, 86,171, 33, 41, 42,162,157,157,156,138, 24,154,
- 54,168,141, 61,229, 87, 24,162,146, 85,135,165,223,213,225, 84,147,158, 63,125,156, 92, 88, 84,100, 97, 98,108, 82,200,227,241,
- 52,226,188,188,252, 87,209,145, 74, 45, 59,135, 82,196, 68, 69, 69,181, 76, 79, 79, 71,114,114, 50, 40, 73, 33, 88, 10, 37, 72,
-133, 20,125,186,117,133, 62, 24,232,129, 6,135, 86,131,195,226,160,176,120,117, 94,141,195, 29,154,114, 15, 9,165, 34,139, 32,
-136,226,225, 66,161, 16, 60,145,193, 39, 30, 46,109,218, 19,159,207, 63,117,254,252,121, 27, 59, 59, 59,108,218,180, 9,246,246,
-246,205,109,109,109,165, 70, 70, 70,250, 86, 86, 86,112,113,113, 65,183,110,221,112,227,198, 13,104, 81, 6, 20,195, 48,253, 31,
- 62,124,184,244,241,227,199, 99,132, 66, 33, 49,127,254,124,246,192,129, 3,193,231,243, 33,149, 74, 33, 22,139,113,250,244,233,
-143, 52, 77,151, 46, 74, 49, 19, 8, 4,199, 8,130, 72,144, 72, 36,139, 42, 18,254,254,107, 43,219,172, 92,122, 58, 83, 36, 24,
-225,230,209,160, 85,111,143,190,104,228,216, 27,189, 61,146, 1, 96,171, 41, 59,209,243,231, 53,198,151,141, 13,136, 99, 1, 55,
-111,175,119,117,235,189,102,101,209,189, 31,127, 58,148, 87,227,124, 58,130, 32, 64,211,244, 39,177,131, 42,254, 62,121,242,100,
-156, 61,123,182,198,114, 36, 73,114,220,236,217,179,185, 21, 60,207, 72, 75, 75,195,224,193,131, 49,114,228,200, 79,132,150,185,
-185, 57,172,173,173,145,152,152, 8, 0, 57, 90,182,171, 5,211,166, 77, 35,100, 50, 25,102,204,152,129,195,135, 15,195,211,211,
-147, 8, 10, 10, 90, 0, 96, 81,109, 27, 59, 73,146,219, 86,172, 88,177,212,203,203, 11,185,185,185,184,126,253, 58, 6, 14, 28,
-136,179,103,207, 90, 92,191,126,125,139,187,187, 59, 88, 44, 22,252,253,253, 65, 81, 84,181,177,190,184, 92,238,208, 65,131, 6,
-145, 41, 41, 41,224,114,185,232,208,161, 3, 82, 83, 83, 33,149, 74,145,150,150,134,133, 11, 23,126,200,201,201,233,165,237,117,
-196,229,114, 23, 45, 88,176, 0,103,206,156,129,183,183,247,113, 0, 51,242,243,243,199, 60,126,252,248,204,176, 97,195,144,150,
-150,134,203,151, 47, 99,253,250,245,196,228,201,147,177,111,223, 62, 44, 92,184,240,183, 18,175, 83, 85, 13,191, 48, 43, 43,203,
-168, 73,147, 38,200,204,204, 68, 81, 81, 17, 46, 95,190,108,121,227,198,141,134,118,118,118,134,241,241,241,154, 31,126,248,129,
-183,104,209, 34,236,220,185, 19, 97, 97, 97,240,243,243, 67,239,222,189,169,184,184,184, 74,189,100, 37, 33, 27, 46, 51, 12,115,
- 91, 40, 20,162,176,176,176,244,186, 91,230,237,237,237,229,227, 83,236,100, 79, 79, 79,199,148, 41, 83, 38, 5, 6, 6,210,238,
-238,238, 2, 46,151, 11,185, 92, 46,249, 39,123,109, 90, 67, 3,160,209,176,158, 8,183,174, 30, 65, 72,120, 28, 66,194,163,192,
-227, 23, 79,130,151,201,164,104,215,170, 41, 58,119,232,132,244,140, 52,156,240, 59, 2, 83,115,187,106,239, 35, 12,195,128,203,
-214,192,217,201, 26,167,252, 14,194,255,122, 32,252, 78,156, 46,155,243,198,102,115,208,182, 93,103,116,232,224,138,184,248,247,
- 56,114,228, 0, 44, 44,235,233, 6, 7,235,136,178,161,195,242,239, 21,148,127,111, 87, 87, 87, 86, 81, 81, 17,228,114, 57, 62,
-124,248,128,196,196, 68, 24,155, 24, 35, 46, 61, 1,189, 4, 42,124,160, 11, 16, 19, 30,173, 33, 88,156,176,154,254,112,144, 91,
- 91,192,173, 45,230, 77,243,172,230,145,149,129,208,208,188,120,232,134,162,222, 97,247,110,170, 42,161, 69,105,212,119,110,221,
-190,219,105,218,228,161,156,128,187,135,161, 86,210,144,169,141, 32,145, 43, 33, 81,113, 64, 26, 13, 4, 62, 6,129,197,230,163,
- 75,155,166,184,124,233,134,138,161,212,129, 90, 23,144, 85, 75, 80,153, 81,229,132, 86, 86,133,113, 7, 83,173,135, 14,203, 58,
- 94,141,230,236,201,147, 39,135,119,237,218, 85,224,238,238,222,164,164,227, 84,157, 60,121, 82, 90, 18, 12,179,182,248, 36, 26,
-188,181,181,117, 59, 46,151,235, 57,112,224,192,118, 83,167, 78,197,171, 87,175,112,226,196,137,216,166, 77,155,222,203,200,168,
-122, 69, 54,139,199,203, 41,202,202, 50, 22, 53,108,200, 54, 49, 48, 72,191,113,253,186, 67,223,126,253,136,228,228,100,228,228,
-228, 64, 46,151, 35, 44, 60,156,225,176, 88,169,132,161, 33,249, 38, 52,148,100,241,120, 57, 85,121, 27, 43, 65, 98, 13,171, 14,
-125,234,234,221,170,103, 99,210,100,189,247,119,141,228, 10,121,203,130,130, 2,138,205,225,112,236,173,141,147,222,188,215,254,
-158,168, 80, 40,252,239,220,185, 51,188,111,223,190,252,216,136, 48, 80,249,249, 80,230,139,193,165, 53, 48,109,215, 6, 44,149,
- 2, 80,170, 97,231,204, 64,158, 39, 64,208,179, 55,106,133, 66, 81, 99, 80,195, 82,161, 69, 86, 16, 6, 60,145, 8,124, 3, 67,
-240, 69,162,138,130,161,166, 39, 57, 65,255,254,253,251,116,233,210, 5, 12,195,224,208,161, 67, 80,169, 84, 60,149, 74, 5,165,
- 82, 9,149, 74,133,130,130, 2,248,249,249, 97,255,254,253,143, 1,252,166,197,233, 83,250,250,250,195, 8,130,176,100,179,217,
- 82, 11, 11, 11,225,217,179,103,203,194, 77,180,109,219, 22, 6, 6, 6, 92,148, 4,133,180,180,180,228, 28, 61,122,212,120,200,
-144, 33, 15, 42, 29,238,104,213,124,121, 35,202,196, 77, 79,191, 65, 67, 67,243,214,104,228,216, 27, 0,208,111,240, 52, 52,106,
- 90, 31, 5, 31, 35, 26,202,101,137, 35,184,108,177, 73,244,238,180, 87,250,131, 90, 78,149,100,221,127,139,202,151,247, 87,218,
- 81,144, 36, 89,229,112,172, 54, 34,171, 88,179,144, 22,165,243,124, 0, 32, 39, 39, 7, 25, 25, 25,136,137,137, 65,179,102,205,
-144,155,155, 11, 59, 59, 59, 40,149, 74,116,236,216, 17, 50,153, 12, 59,118,236,192,163, 71,143, 30, 3, 88,168,197,127,232, 59,
- 58, 58, 78,105,215,174, 29,174, 95,191,142, 23, 47, 94,164,221,186,117,203,206,213,213, 21, 13, 27, 54,156,154,144,144,176,186,
-100,168, 79, 91, 8, 93, 93, 93,231,123,121,121, 33, 42, 42, 10,223,125,247, 93, 78, 74, 74,202,229,115,231,206,205, 88,191,126,
- 61,233,225,225,129,140,140, 12,108,219,182, 77,243,232,209,163,237, 0, 54,213, 80,142,175, 83, 82, 82,236,229,114, 57,114,115,
-115, 65, 81, 20,164, 82, 41,110,220,184, 1, 63, 63,191,204, 18,145,245, 78, 91,227,218,180,105,227, 66,146, 36,206,156, 57, 3,
- 0,223,163, 56, 98,255,229, 17, 35, 70,164,253,240,195, 15,118,171, 86,173,194,204,153, 51,161, 82,169,240,211, 79, 63, 97,213,
-170, 85,215, 74, 68, 86,117, 55,209, 95,173,173,173,103,125,247,221,119,205,151, 44, 89,130,224,224, 96,203,151, 47, 95,118, 8,
- 11, 11, 67,189,122,245,144,147,147,195, 54, 51, 51,195,206,157, 59,177,120,241,226,139, 0, 62, 62,121,242,100, 92,124,124,188,
- 15,128,109, 53,136,118, 95, 59, 59,187, 89, 12,195, 48, 82,169, 52,209,219,219,123,219,230,205,155,177,120,241, 98, 68, 71, 71,
- 35, 63, 63, 31, 6, 6, 6,196,138, 21, 43,166,124,255,253,247,152, 62,125, 58, 35,145, 72,246,255,211, 29, 53,195,104, 32, 21,
- 71, 65,163, 48, 65,219, 86,205,208,182,101, 3,220,186, 27, 2, 0,232, 51,202, 21, 82, 73, 33,142, 31, 63,132,119,239,222,130,
-205,225,192,216,212, 90, 27, 79, 32,148, 5,175,145,167,202, 64, 95,247, 14, 24,232,209, 11,191,253,126, 22,148, 90,133, 25,211,
- 38, 64,156,151,135,223,127, 63,130,184,248,247, 96,115, 56, 48, 51,255,251, 3,161, 86,167, 69,254,223, 11, 45, 45,134,159, 64,
-211, 52,210,210,210,240,242,229, 75, 36, 36, 36, 64, 32, 16, 64, 70,105,232, 3,119, 30,209, 4,193, 77,165, 25,230, 49, 67,149,
- 69, 41,254,156, 67,163, 73, 43, 23,177,214,200,196,196,132,167, 80,200, 64, 81,234,114,189, 10, 1, 16, 0,151, 13,216,216, 54,
- 66, 74,114, 10, 35,151,203,239, 87,251, 4,165,144,239,252,227,242,121,175,110,221, 93,205, 7,246,217,136,203, 87,214, 66, 92,
- 80, 0,185,138, 3,137, 92, 5,169, 28, 48, 54,117, 66,199, 86,173,145,158,158,131,136, 23, 65, 69,108,133, 84,155,137,162,111,
-247,172,153,230, 56,109,222,114,232, 59,116,135, 34,230, 50,232,162,204, 50,143,150,158,200, 4,166,245,157,145, 39, 81,224,124,
- 96, 8, 80,139, 84, 47, 89, 89, 89, 82, 22,139,117,210,203,203,235,167,144,144,151,246, 0, 16, 18, 18,146,154,145,145,177, 50,
- 43, 43,171,182, 62,233,210,104,240,132,158,158,126, 72,211,166, 77,211, 59,116,232, 96, 52, 98,196, 8,152,155,155, 35, 44, 44,
- 12, 62, 62, 62,175, 85, 42,213,242,160,160,160,106,135,122,148, 74,101, 90,200,149, 43,134,189,190,253,214,120,249,144, 33,219,
-188,188,188,118,110,218,180,137,227,232,232, 72,168, 85, 42, 68, 70, 70, 50,167, 78,158, 84,239, 95,181,106, 7, 79, 40,100, 63,
-255,227, 15, 14,165, 80,164,253,167, 27,177,157,157,157,155,107,207, 30,206,219,127,221, 13,185,172, 8,207,130,175, 65, 44,206,
-198,193, 67,151,156,237,236, 24,183,180,180,180, 32,109, 5,240,177, 99,199,150,118,110,215,174, 93,227,122,245, 16,153,148, 0,
- 30,173, 1,151,162,192, 82, 41, 64, 82,114,212,107,201,128, 32, 13,144,241,161, 0,155,207, 92,136,210, 70, 24, 55,255,102, 40,
- 54,165,230,131, 32, 8,252,210,181, 37,120, 6, 34,112,133, 34,204,253,243,110,153, 48,240,223,180, 10, 60,145, 8, 77, 58,107,
- 21, 16, 94,122,239,222,189,151,145,145,145, 29, 91,182,108,137,165, 75,151, 34, 49, 49, 17, 52, 77, 35, 51, 51, 83,158,145,145,
-145,150,157,157,157,136,226,248, 63,135,107,232,196,202,171, 14,187,160,160,160,178,225,134,192,192, 64,216,218,218,194,200,200,
- 8, 5, 5, 5,152, 61,123,182,241,186,117,235, 0, 0, 47, 95,190, 68,121,129, 82, 17,145, 33, 49,219,243, 10, 25, 49, 83, 20,
- 58, 34,151, 10,109,213,219, 35, 5,253, 6, 79,197,109,255,223,112,247,214, 29,152,178, 19, 19, 32, 44,188,241, 49,225, 99, 65,
-170,196,209,215,185,253, 12, 86,134,228,150,239,252,161,177, 44, 27, 27,250,252,170, 3, 5,121,213,217,234,232,232, 8, 43, 43,
-171,178, 57, 90,108, 54, 27,211,167, 79, 7,195, 48,218,138,172,146,190,134,206,150,203,229, 86,122,122,122,248,240,225, 3,222,
-191,127,143,184,184,184,178,208, 1, 52, 77,171,151, 45, 91,198,153, 63,127, 62, 14, 28, 56,128,251,247,239, 63, 6,176, 17,128,
-182, 15,107, 19,198,142, 29,107,160, 84, 42,113,250,244,105, 10,192,224,243,231,207,191,236,216,177, 35,123,192,128, 1, 6,251,
-246,237,155, 80, 82, 71, 90, 11, 45, 67, 67, 67,174, 74,165,194,190,125,251,144,146,146,226, 6, 32,230,249,243,231,190, 99,199,
-142,221,223,178,101,203,166, 81, 81, 81,111,139,138,138,230, 2,136,168,137, 44, 51, 51,115, 90,135, 14, 29,206,211, 52,237,208,
-183,111, 95,225,175,191,254,106,248,230,205, 27,216,219,219,131,166,233, 72,212, 50,133,213,219,183,111, 99, 50, 50, 50,156,123,
-245,234,133, 27, 55,110,108,213,104, 52, 91, 0,252, 52,103,206, 28,187,164,164, 36,180,107,215, 14,166,166,166,120,243,230, 77,
- 97, 70, 70,198,126, 20,167, 36,170,201,133, 27, 15, 96,165,175,175,111,107, 95, 95, 95, 79, 83, 83,211, 46, 97, 97, 97,120,248,
-240, 33,182,111,223,142,117,235,214,161, 71,143, 30, 88,186,116,233, 71, 0,158, 0,168,248,248, 71, 86,159,181, 0, 0, 32, 0,
- 73, 68, 65, 84,120,173,226,230,149,122,182, 0,160,125,251,246,233, 62, 62, 62,152, 49, 99, 6,115,244,232,209, 93, 39, 79,158,
- 92, 52, 97,194,132,178, 62,112,202,148, 41,204,137, 19, 39,166,160, 56, 13,211, 63, 9,181, 74,165,132,161,105, 35, 20,229, 37,
- 35, 59, 37, 24, 2, 3,107,120,244,110, 3,169, 76,137,171,127, 92, 68, 68,100, 56, 72,146,132,149,117, 61, 24,155,152, 35, 54,
-246, 45, 80,253,106, 99,181, 74,165,130,129, 73, 3, 20,229,167, 64,153, 21, 2,125,145, 37,166,126, 59, 2, 82,153, 10,151, 46,
- 95, 68, 84, 84, 4, 88, 44, 22,172,109,234,193,200,184,152,147, 96,170, 95,193,172, 3,128, 74,226,105,213, 40,180, 88, 44,214,
-189,155, 55,111,142,238,220,185, 51,251,221,187,119,120,247,174,248,225, 70, 44, 22, 83, 4, 52, 23,178, 34,255, 24, 95,205,225,
-125, 81,178, 58,163,124,238, 66,145,129, 65,218,155,215, 49, 86,226,220, 76,132,135, 62,194,187,216, 72, 36,196,197, 64,165,146,
-131, 69,146, 32, 89, 36, 26, 52,106,129, 71,143,131,149,114,138, 10,174,138,179,216,142,184, 66,161,165,227,184, 31, 55,173,246,
- 95,188,124,131,254,152,209, 7, 16,241,230, 21,138, 40,107, 48, 12, 96,109, 38, 68,219,198, 43,144,150,158,141, 51,191,237,147,
-210, 42,213,196, 10, 49,180, 62,227, 4, 0,171,143,112,217,127,232,183,233,135,253, 78,109, 88, 62,127,182,213,176,145, 19,193,
-203,125, 5,117,122, 8, 26,117, 28, 8,130,111,140,235, 1,119, 17,244,242, 85, 38,173, 97, 54, 88,229,224,104,108, 13,156,229,
-145,151,151,247,228,195,135, 12,251,114, 81,224,237,249,124,189,154, 86,199, 85,228,252, 36,226, 60,139, 69,182,255,241,199, 31,
-213, 86, 86, 86,170,168,168, 40, 28, 56,112,128, 14, 9, 9, 9, 32, 73,114, 79, 70, 70,134,188, 38, 78, 11,181, 58,252,148,183,
-183, 75,167,145, 35,153,241,243,231, 75,193,231, 47,216,246,203, 47,222,217, 98,177, 45, 67,211,176, 48, 53, 77,221,182,106,149,
-207,232,177, 99,197,209,143, 30,233, 7, 95,185,162,207,163,168, 16, 45,236,252, 26,168,146, 51, 45, 45, 45,232,254,253,135, 56,
-126,248, 87,168, 84, 10,100,164, 37, 1, 0, 62,230,228,163, 6,145, 85,145,147,145, 74,165, 35,191, 95,183,238,233,247,139, 23,
- 89,247,236,211, 23,201,225, 97, 80,229,102,131, 80, 83,224, 16,108, 72,178, 4,200,202, 44,194,202, 19,231,178,138,164,210,145,
-149,116, 18,149,218, 89,234,177,226, 27, 26,128, 43, 20,129, 39, 50,248,196,139,165,103,104, 8,158, 80, 4, 54,143, 87,217, 4,
-238,207, 56,139,138,138, 70,141, 30, 61, 58,226,249,243,231, 38, 51,102,204, 64,183,110,221, 66,101, 50,153, 59,128,194,186,150,
- 39, 77,211,105, 61,123,246, 36, 9,130, 16, 77,156, 56,145,159,157,157, 93, 22, 89,189,168,168, 8, 55,110,220, 64,179,102,197,
-171,250,163,163,163,209,162, 69,139, 42, 57,103,174,140, 74, 3,176,105,241,104,187,109, 79,195, 51, 22, 0,216,218,168,105, 61,
-220,189,117, 7, 15,239, 6,123,119,105, 73,239,254,102, 98,199, 31, 4,238, 99,151, 59,183,159,193, 18, 25,218,224,247, 75, 23,
- 89, 49, 33, 71, 54, 75,165,145, 77,112,224,242,178,170,236, 36, 8, 2, 12,195,124, 22,202,129,197, 98,225,228,201,147,181, 61,
-247,115,135, 15, 31,158,243,221,119,223,113, 51, 50, 50,240,250,245,107, 72, 36, 18,232,233,233,225,214,173, 91, 20,128,125, 39,
- 79,158,188,117,242,228,201, 1, 40, 94, 77, 20, 88,155,246, 41, 20, 10,189, 60, 60, 60,240,250,245,107,188,120,241,226, 34,128,
-136,208,208,208,139,239,222,189, 27,215,163, 71, 15,252,246,219,111, 94, 50,153,236,112,109, 56,105,154, 46, 31, 51,169, 52,227,
- 67,120, 81, 81, 81,151,224,224,224,218,214,123, 70, 78, 78, 78,247, 18, 97,157, 98,101,101,101, 24, 30, 30,142,250,245,235, 67,
-165, 82,117,174,109, 91,202,207,207,255,117,207,158, 61, 71,167, 77,155,134, 31,126,248, 97,226,185,115,231, 38,126,243,205, 55,
- 24, 52,104, 16,142, 29, 59,134,136,136,136,173,208, 46,173, 88,101,231, 30, 1, 32,194,202,202,106, 94,189,122,245,176,125,251,
-118, 68, 70, 70,250,108,218,180,105, 85, 68, 68, 4,154, 53,107,198,143,137,137,161,234,114, 15, 1, 0, 67, 67, 67, 67,181, 90,
-141, 43, 87,174, 60, 3,176,120,226,196,137,150, 59,119,238,244, 20,137, 68,200,205,205,149, 69, 69, 69, 77, 0,240,199, 63,125,
-175, 99, 8, 98,205,140,153, 11,124,103,206,152,160,215,161,125, 91, 72, 11, 82, 33, 43,202,132,180,240, 3,246, 28, 14, 0, 65,
-144,176,176,176,129,165,181, 61,146,146,146,241,248,218,117,165, 68, 42,219,201, 83,211, 91,171,231,156, 95,204,217,174,152, 83,
- 42,201,130,172, 40,171,140,211,210,210,182,132, 51, 9,143,130,175,203,101, 18,201,175, 74,134,248,249,111, 62,247,255,207,168,
- 93,174,195,242, 16,139,197, 11,103,207,158,237,190,114,229, 74, 51,138,162, 88,166,166,166, 72, 74, 74,162, 46, 92,184,144, 91,
- 84, 84,180,176, 46,214,176, 57,156, 8, 71,167,102,238,195,134, 13,163,134, 14, 29,194,157, 52,109, 0,219,194,210, 18,249,121,
- 57,136,125, 29,134, 55,175, 66,224,216,172, 13,214,111,218, 1, 24, 27,215,152, 72,178, 36,173,206,224,141,223, 47, 59,219,221,
-173,191, 97,179, 22,109,184,109,155, 24, 65,165,166,144,154,154,138, 63,174,132,171,162, 94, 62, 44,160, 41,229, 56,233, 71,237,
- 82,240, 4, 1, 20,114,112,176,165,165,234,228,150,109,123,150,238, 59,120,124,249,202, 5, 51,132, 61, 92,251, 33,242,206,111,
-184,232,127, 86, 34, 87, 40,183,113, 89,248, 37, 42, 7,210,216, 90,150,129, 92, 46, 87, 85,236, 79,229,114,185,234, 75,107,250,
-216,177, 99,200,204,204, 84, 38, 38, 38,222,164, 40,234, 92, 53,201,158, 63,195, 30, 64, 57, 66,161,184,243,189,171,235,128,239,
-111,221,210,155,178, 98,133,114,226,164, 73,203,160, 80,168,192,227, 49,108,161,144, 4,159,207,137,126,244, 72,127,215,156, 57,
-166,132, 82,121,251,120, 53, 97, 3, 42,193, 87, 95,117, 88,234,209,234,213,171, 7,166,204, 88, 12, 89, 57,143,214,147, 23,177,
- 80,168,160,181, 71,171, 4,201,137, 41, 41, 93, 22,172,249,254,210, 56,143, 62,206, 45, 29, 26,240, 45, 26, 54,128,200,218, 26,
- 57,217,217,120,244,226,141,122,211,217, 75, 81, 37, 34, 75,171,184, 50, 52, 77, 23, 79,114, 7,208,103,225, 74, 16, 44, 22, 80,
- 18,198,161,116,229, 80,195,142,221, 64,176,217,208, 48, 52, 20, 10,133, 54,147,254, 82,223,191,127, 63,106,226,196,137,129,254,
-254,254,164,135,135, 71,219,203,151, 47,211, 95,210,118,100, 50, 89, 23, 0,208,211,211, 75, 48, 54, 54,182,155, 54,109, 26,212,
-106, 53,164, 82, 41,242,243,243,145,154,154,154, 55,109,218, 52, 21, 0,232,235,235,243, 70,143, 30,109, 88, 19,231,142, 11,105,
-242,197,163,237,118,155,178, 19, 61, 11, 62, 70, 52, 52,101, 39, 38,116,105, 73,239,222,113, 33, 77,110,104, 43,249,241, 99, 98,
- 80,108,134,228,150,239,239,151, 46,178, 38,143, 24,165,177, 23,189,245,214,179,100, 46,212,196, 75, 16,196,103,193, 73,181, 20,
- 89,159,160,176,176,112,213,218,181,107, 7,137,197, 98,251, 1, 3, 6,112,157,157,157,241,244,233, 83,248,251,251, 83, 79,158,
- 60, 73,145, 72, 36,171, 1,200, 1, 4,212,165, 76,157,156,156, 26,178,217,236,210,161,180,189, 37, 95,239,189,124,249,242,184,
- 25, 51,102,160, 65,131, 6, 46, 49, 49, 49,124,212,226, 58, 98, 24,166,108,148,225,107,130, 32,136,184, 93,187,118,217, 89, 91,
- 91, 19, 55,110,220,160, 88, 44, 86, 93, 60, 55,199,142, 28, 57,210, 89,173, 86,207,156, 53,107, 22,220,220,220, 64, 81, 20, 78,
-156, 56,129, 35, 71,142,104, 43,178,170, 69,108,108,108, 72, 74, 74, 74,207,101,203,150, 97,251,246,237,171,150, 45, 91,134,148,
-148, 20,196,198,198,134,125, 9,111, 65, 65,129, 44, 57, 57, 89,208,181,107,215, 14, 81, 81, 81, 81,238,238,238, 45,102,204,152,
-129,173, 91,183, 50,247,239,223, 31, 13,224,198,127,162,247,126,243, 46,215,143,163, 97,223,218,244,227,175,235,154, 52,110,248,
-221,244,169, 99, 89, 78,142, 45, 32,201, 79,133,153,185, 21,236,235, 53, 66,118,214, 71,220,188,121, 67,243,241, 99,222, 49, 13,
- 73,108,124,247, 46, 55,253, 75, 56,237,236, 27, 33, 43, 43, 11,215,175, 95,215,228,137, 11, 14, 65, 77,110,138, 73,202,203,132,
- 14,218,120,178,102,161,154, 40,241,213,193,220,196,196,228,180,161,161, 97,166,161,161, 97,166,137,137,201,105, 64,171,213, 7,
-125,203,221, 29, 88,159,188, 70,143,214,131,158, 94, 23,176,217, 75,140, 77, 76,110, 24, 25, 25,229,244,234,213, 75,233,235,235,
- 43,143,137,137,166,211,210, 82, 24, 35, 35,163,252,178,253, 43,227,172, 0, 19,147,198, 6, 66,155, 22,235,140,236,219, 62, 18,
-217,184, 20,138,108, 92, 10,141,236,219, 60, 22,218,184,108, 48, 49,105,108,160,149,157, 85,160,145, 37, 44, 28,205,177,175,153,
- 5, 33,115, 52,199,190, 70,150,176,208,250,220,171, 31,246,211, 16, 4, 52, 40, 94,134,141, 58,112,150,114,208, 44, 22,235,184,
-189,189,189, 13,106, 23,176,238, 51,206, 73, 64,131, 73,124,254,204,243,222,222, 83, 18,238,223,159, 88, 16, 31, 63, 62, 63, 46,
-110,108,216,217,179,227,246,142, 27, 55,105, 60,159, 63,107, 52,208, 88, 91, 78, 27, 27, 27,159,144,144, 16,127,109, 95,229,132,
-151,214,229,217,184,145,221, 45,143,190,157, 25,175,217, 35, 25,175,217, 35, 25,143,190,157,153,198,141,236,110,125, 65, 29, 17,
- 44, 22,203, 83, 32, 16,156, 22, 10, 4,145, 66,129, 32, 82, 32, 16,156,102,177, 88,158,168,126, 14,213, 39,156,102,102,102, 47,
-173,172,172, 50,107,243, 50, 55, 55, 15,173,133,157,227, 27, 54,108,152, 66,146,228,142, 90, 94,211,213,113, 58,234,235,235,199,
- 9,133,194,212,242, 47,125,125,253,242,129,161,204, 4, 2,193, 85,161, 80,184, 83, 27,206,159,215,180, 88,247, 56, 96, 94,196,
-207,107, 90,172,171,248,219,252,225, 38,211,158, 6,110,204,153, 63,220,100,154, 54,118, 90, 90, 90,222,183,180,180,204,176,180,
-180,204,176,178,178,170,246,101,110,110,254, 82, 11, 78, 61, 3, 3,131,157, 6, 6, 6,153, 66,161, 80, 35, 18,137, 50,133, 66,
-225, 14,148, 11,109, 81,215,242, 36, 73,114,171,139,139,139,156,197, 98, 29,173,240,211,246, 38, 77,154,200,217,108,246,182, 90,
-114, 26,246,232,209, 67, 19, 30, 30,206,184,185,185, 49, 0, 76,190, 98,189, 91,155,152,152,220, 48, 52, 52, 76, 54, 48, 48,216,
- 3, 64, 88, 71, 78, 2,128,167,157,157, 93, 88,239,222,189,165,118,118,118,193, 0,134,125, 69, 59, 7, 13, 31, 62,156, 78, 78,
- 78,102, 24,134, 97,146,147,147,153,225,195,135,211, 40, 14, 20,249, 37,247,228, 53,115,230,204, 97,158, 60,121,194, 60,121,242,
-132, 9, 14, 14,102, 6, 13, 26, 68, 3,248,246, 11,239,243,248, 90,231,238,220,200,188,113,243,166, 38,231, 38,140,114,165, 3,
-254,216,193,172, 95,253, 29,211,207,173, 5,211,172,137,201, 37, 71, 71, 51,199,175,193,185,110,245,108,166,111, 79, 23,218,185,
-177,201, 89,231, 70,230,141,255,225,115,255, 55,122,181,240,119, 79, 56,251,203,181,248,169, 88,170, 28,182,182,182,200,201,233,
-172,199,102,187,242,249,124,119,146,197,186,151,155,157,189,168,228,113, 75,243, 79,185,106,171,237,208, 27,131, 87, 77, 74,130,
-186,112,126, 50,145,189,142,156,181,225,208,138,179,170,164,210,180, 66,145,110, 70, 81, 47,247,160,218, 50,248,132,211,206,206,
-110, 38, 77,211, 13,181, 53,136, 36,201,132,180,180,180,195,117, 41,207,166, 77,155, 50, 37,195,219,196,215,172,247,191,163, 45,
-253, 47,113,254,254,107, 43,219,102,173,154, 47,143, 12,137,217, 94, 50,172, 88,134, 13,243, 77, 12, 92,123,247, 90,251,232,238,
-253, 31, 54,236, 17, 23,254,135,207,157,132,150,115,218,190, 2,103,105,144,208, 90,113,114, 56, 28,223, 78,157, 58,205,124,250,
-244,233, 81,141, 70, 51,235,127,180,125, 14, 98,177, 88,203,156,156,156,218,198,198,198,134,105, 52,154,237,168, 36, 80,100, 29,
-236, 92,221,176, 97,195,185, 92, 46,151, 95, 84, 84, 36, 78, 79, 79, 95, 11,224,220,127, 91,121, 58, 55, 53,237,192, 48,101, 65,
-183, 55,191,126,159,251,252,171,113, 50,180,134,102, 88, 63,198,198,231,132,254, 7,234,253,223, 38,178, 14,253, 19,127,220, 87,
-199,169,227,212,113,234, 56,117,156, 95,157, 83, 95, 87,158, 58,206,127, 33,231,191, 18,108, 93, 17,232,160,131, 14, 58,252,191,
-131, 76, 87, 4, 58,232,240, 95,135,242, 94,173, 50,111, 22, 81,141, 42,173,141, 75,176, 46,202,246,142,142, 83,199,169,227,212,
-113,234, 56,117,156, 58,206,255, 57,206,127,171,200, 58, 84,205,246,223, 6,157, 91, 85,199,169,227,212,113,234, 56,117,156, 58,
- 78, 29,231,255,130,208,170,116, 91, 55,116,168,195,223,142,221, 35, 96, 7, 0, 11, 46, 35,237,239,216, 95, 7, 29,116,208, 65,
- 7, 29,254,195, 56,132, 42,134, 14,255, 27,132,150, 45,128, 46, 40, 78,124,251, 6,192, 67, 0,226, 47,224, 51, 7, 48,150, 32,
-136, 49, 0,192, 48,204,121, 20,175, 26,249,168,205,193,122,122,122,153,114,185,220,178,228,115,150, 92, 46, 47,159,203,128,192,
-231,171,217,152,114,175, 74,209,176, 97,195, 76,133, 66, 97,169,197,223,231, 51, 12, 19, 65,146,100,164, 72, 36,186, 27, 27, 27,
-235, 95,155, 19,119,119,119,159,194, 98,177, 54, 3,128, 70,163, 89,115,239,222,189,227,127, 99,189,117,174,103,107,253,155, 74,
-173,162, 50,179,115,215,226,243, 64,126, 0,128,125,131,225, 67, 80, 88, 94,242,121,219, 60,255,234,227,232,212,118,255,106,208,
-129,195,225,120, 89, 89, 89, 13, 76, 77, 77,125, 9, 96, 5, 80,115, 84,227,122,245,234,125,203,102,179, 39,106, 52,154,198, 44,
- 22, 43,142,162,168,147, 41, 41, 41,126,186,123,136, 14, 58,232,160,131, 14, 90,136,173,207, 80, 43,161,213,204, 12,214, 12,224,
- 9, 2,253,192,224, 54, 1,156,121,147,131, 15,218, 30,255, 77, 51,168,213, 84,241,127,114, 73,104,110,188, 39, 15, 13, 28, 56,
-208,126,254,252,249,232,214,173, 27,158, 62,125,218,245,216,177, 99,211,206,157, 59, 23, 65,211,244, 61, 0, 79, 1,173, 66, 41,
- 8, 81, 28,167,101,194,192,129, 3,251,110,222,188,153,213,162, 69, 11,200,100, 50,220,191,127,223,117,219,182,109, 59, 31, 63,
-126,124, 7,192,169, 18, 65, 80,101, 2, 60,185, 92,110, 89,154,140,147, 32, 8,203,209,163, 71, 63, 47, 47,174, 74,242,171, 17,
- 12,195, 60, 33, 8, 34, 88,163,209, 60,189,112,225, 66, 74, 51,160,243,236,134,220, 11,139, 18, 84,246, 21, 57, 21, 10,133,229,
-149,159,183,128,205,231, 67, 81, 88,128,174, 83,255, 18,189,183,215, 45, 7, 65, 83, 96,129, 17,187,255,184, 51, 2, 64,100,122,
-122,122,132,155,155, 91, 66,109,107,152,197, 98,109,190,121,243,166, 13,195, 48,240,240,240,216, 12,224,239, 18, 90,252, 46, 29,
-218,220,187,122,241,180, 94, 81,110, 38, 6, 12, 27,119,242,109, 74,214, 20, 0, 23, 63, 17, 77, 3, 97, 69, 16, 88, 62,103,203,
- 41, 22, 0,236, 95, 61, 97,197,142,254,216,189, 56, 0, 31, 0,184,151,136, 31, 0,248, 25,192,189,125, 3, 97, 5, 96,229,156,
- 45,167, 8, 0, 56,176,122,194,242,125, 3,177,107,222,141, 90,135,173,152, 59,101,202,148,221,155, 55,111,102,217,216,216, 32,
- 45, 45,109,128,139,139,139, 83, 65, 65,129, 11,170,153, 68,220,160, 65,131,179, 61,122, 15,105, 52,114,140,167,192,194,220, 4,
-233, 25, 31, 13,207,158, 62, 58,155,245,228,254,192,196,196,196,113,186,123,136, 14, 58,232,160,131, 14, 85,160,238,145,225,219,
-217, 64, 95,162,194,112, 54,139,248,182,123, 7,151, 62,227,191,233, 65,186, 56, 55,197,171,232,152,254,127,220,125,182,141, 12,
-142, 14,164, 52,140,159,144,139, 43,161, 25,213,175,132, 81, 83, 96, 7, 92, 57, 85,220, 19, 78,155,192,122,254,252,121,211,246,
-237,219,151,165,134,233,211,167, 15,250,244,233, 67,236,223,191,191, 77, 64, 64, 64,155, 35, 71,142,168, 2, 3, 3,127, 67,245,
-241, 81,188,154, 52,105,178,109,247,238,221,124, 55, 55, 55,240,249,252,178, 31, 68, 34, 17,134, 12, 25,130, 33, 67,134,176,210,
-211,211, 61,174, 94,189,234,241,243,207, 63, 43,147,146,146,150,225,175, 40,205,213, 98,237,218,181, 29, 42,249,250, 38, 65, 16,
-239, 41,138, 10,107,211,166, 77,138, 19,208,116,246, 55,221,110,207,237,238, 40, 92,180,234, 88,165, 60,108, 30, 15,191, 79, 41,
-238,171,203, 11,173,132,187, 55, 32, 50, 52,200, 17, 24, 24, 68, 0,136, 4, 16,193, 48, 76,100, 92, 92, 92, 76,115,160, 77, 23,
- 19,242,183,163, 98,186,117, 45,196, 22, 82, 82, 82, 96,100,100,164,239,230,230,150, 65, 16,196,134,251,247,239,127,237, 9,121,
-157, 55, 44,159,203, 21, 39, 70,224,195,235, 39, 88, 50,198, 85,176,104,207,159, 63,200,149,234,139,213, 29, 68, 16, 36,249,115,
- 48,237,141,226,100,188,107,115,114,114,220, 0,192,204,204,140, 7,224,222,142,103,248,102,113,119,226, 75, 98,187,113, 89, 44,
-214,190, 99,199,142,205,248,246,219,111,139, 83, 71, 60,122, 4,145, 72,132, 77,155, 54, 53, 88,186,116,169, 15, 69, 81, 11,171,
-242,100,245,232, 61,164,209,174,237, 63,184, 20,230,230, 43, 14,238, 59,247,194,182,101, 51,114,142,215, 82,131, 93, 42,133,181,
- 70,163,249, 86,231,217,210, 65, 7, 29,116,208,161, 54,222,172, 26,133,150,147, 57,142,183,107,233, 56,118,252, 32, 87,126,171,
-150, 45,192,229,255, 21,186,165,125,135, 14,104,223,161, 3,233, 93, 84,216,239,249,139,144,126, 23, 2,158, 42,164,234,164,115,
-177, 31, 49, 69, 91,171, 74,147,210,110, 30,102,213, 91,146,151,165, 7, 0, 66, 99, 75,249,234, 43, 31,238,118,239,222, 29,246,
-246,246,220,192,192,192,233, 53, 8,173,213,111,222,188,225,179, 88,213,199, 67,181,181,181,197,232,209,163,209,172, 89, 51, 94,
-175, 94,189, 86, 87, 37,180,244,244,244,178, 8,130,176, 4, 0, 83, 83, 83,205,134, 13, 27,194,152, 98, 0, 0,195, 48,204, 19,
-146, 36,159,210, 52,253,236,207, 63,255, 76,117, 1, 44, 7,180,111,246,112,238,164,209, 2,230,194,206, 42, 69,130,188,160,160,
-210,239, 5, 34, 97,182,190, 80, 24,193, 23,232, 69,162, 56,151, 87,164,189,189,125,140, 11, 96,223,169, 89,195,128,253,139, 39,
- 24, 28,157,245, 67,141,101,217,174, 93, 59,167,214,173, 91,235,105, 52, 26, 72, 36, 18, 28, 56,112,192, 72, 95, 95,223,104,224,
-192,129,235,203, 55, 0,103,160,213, 40, 91,214,172,141,233,154,121,117,104, 72,198, 61,186,118, 72, 28, 61,100,160, 97,135, 46,
- 61,240,246,222, 9,228,230, 22, 34, 63,175, 8, 52, 77,127, 22,215,103,222, 13,100,238, 27,140,109,251, 87, 77, 88, 73,144, 36,
-209,102,196, 10, 12,181,206, 95,224,235,235, 27, 13,128,195,227,241,202,183, 67, 91,125,187,150,219,154,246,239,129, 3,107, 38,
-129,161,105, 6,192,182, 90,120,179, 44, 13, 12, 12,254, 8, 8, 8,232,220,177, 99, 71, 60,125,250, 20,241,241,241,152, 59,119,
-174,114,222,188,121,220,201,147, 39, 19, 75,150, 44,153,255,243,207, 63, 95, 0,240,248,179, 11,129,205,158, 56,108,228, 56, 94,
- 81, 94,129, 92,169, 80, 41, 77,205,141,105,133, 68, 46,253, 40, 46,144,143,155, 48, 83, 25, 29,250,108, 34,128,207,132,214, 23,
-150,167, 14, 58,232,160,131, 14, 90,128, 97,152,142, 0, 44, 0,100, 19, 4,241,162,252,118,201, 46,165,217, 90, 42,110,127, 68,
-241,168,148, 89, 57,186,143, 40,158,238, 99, 1, 64, 3,224, 57, 65, 16,226, 47, 52,177,250, 85,134,254,254,254, 76,249,247,114,
- 66,139, 97, 24,134, 81,231,188,103, 20,177, 55, 24,233,139,195,159,189,100,209, 23,153,140,231,231,152,103,167,214, 49, 78,230,
-213,103, 97,255,166, 25,212, 19, 90,131,153,211, 17,204,194, 94,198,242,231,207,159, 7,210, 52,237,239,221, 3, 12,243,234, 20,
-195,188, 58,197, 44,238, 10,230,194,133, 11, 55,125,124,124,252,253,252,252,252, 1,212, 52, 79, 41,179,240, 69, 48,243,204, 18,
- 76, 85,120,243,230, 13,227,235,235,203,172, 90,181,138, 57,122,244, 40,131, 26, 34,168,123,120,120,220,143,138,138, 98, 38, 79,
-158, 28,134,106, 2, 3, 58, 3,194,137, 13,172, 95, 43,206,238, 84, 41,191,109,197,136,123,234, 85,122,254, 54, 54, 54,159,216,
-179,213,209,154,217,219,201,145, 57,222,175,253, 7,134, 97,110, 50, 12,179,149, 97,152,113, 12,195, 52, 3,128,118,128,225, 48,
- 27,179,119,242,115,187,100,202, 89, 93,106,204,123,215,174, 93, 59,167,101,203,150,229, 42,149, 74, 38, 33, 33,129, 57,120,240,
- 32,115,251,246,109,230,202,149, 43,140,171,171,107,122, 57,123,173,166, 53,115,200, 84, 30,217,168,168, 75, 43,226,176, 88,123,
- 95,220,190,192,188,123,120,158,121,126,198,135, 57,249,253,120,102,254,176,206, 42, 67,125,190, 28, 64,239,170,142,155,215, 29,
- 77,155, 53,176,136, 77, 74, 74, 98, 84, 42, 21, 51,117,234, 84,198,195,195,131,233,223,191, 63,211,183,111, 95,166, 79,159, 62,
- 76,239,222,189,153,187,119,239, 50,233,233,233, 76,223, 30,237, 37,131,157,209,161, 22,166,181,116,112,112,248,144,144,144,192,
-168, 84, 42, 38, 48, 48,144, 57,113,226, 4, 19, 24, 24,200,120,123,123, 51, 0,142,207,153, 51, 71, 38, 22,139, 25, 15, 15,143,
- 84, 84, 18, 53,222,193,193, 33, 38, 42, 54, 37,101,199,150,195,119,127,223,123,250,238,165, 11,183,239,254,113,235,249,181, 43,
-183, 94,156,123, 22, 30,119,197,193,193, 33,166,146,250,255,162,242,212, 65, 7, 29,116,208,161,102, 45, 82, 34,180, 6,149, 56,
- 59, 6, 49, 12,211,183,194,246,160, 18,225,244,217,182,183,183,247,170,242,219,165,251,120,123,123,175, 2,192,116,237,218,245,
- 52,195, 48, 77,191,130,249,179, 42,121,213,236,209, 42, 5,149,250, 28, 92,199,129,224,104,212, 80,127,124, 3, 58, 47, 9, 16,
- 90, 67, 70,136,144,147,145,132,215, 15, 47, 86,159, 72,162, 4,215,223,128, 3, 32, 48, 38, 38, 6,175, 95,191, 70, 74, 74, 10,
- 4, 2,193,103,251, 61,122,244, 8,250,250,250,176,177,177,209, 78,233, 42, 63,237,231, 34,218, 59, 64,212,213, 13, 31,199,127,
-135,192,192, 64,100,101,101,129,203,229,130,199,227,129,162,168, 26,249, 72,178, 56,227,111,169, 23,171,178,125,220, 0, 54,223,
- 84,116,117,255,250,133, 13,201, 39,254, 28, 89,242, 59,164,203, 53,218,121,242, 68, 66, 8,132,130, 12,125,125, 65,217,112, 33,
-128, 72,130, 32,222,182, 3, 56, 66,145,222,213,223,126, 92, 98,205, 10, 13,212,147,189,139,168,148,163,111,223,190,179, 1,172,
-103, 24, 38,175,117,235,214, 86,155, 55,111, 54, 73, 75, 75,195,171, 87,175,112,238,220,185,108,170,248, 68, 9,134, 97, 54, 2,
- 64, 23, 64,207,216,194,248,214,222,117, 11, 13,112,239, 44,175, 46,173,200,200,121,200,181, 81,147,231,204,219,189,112, 8, 36,
-133, 50,156,186, 29,138,155, 33,239,135, 2,120,132,106,230,189,237,123,140,119, 64,118,159,145, 35, 71,134, 61,120,240,192,252,
-200,145, 35,160, 40,170,210,215,145, 35, 71,112,231, 97,200, 2, 0, 47,181, 52,203,182, 97,195,134,119,158, 61,123,102, 33, 16,
- 8,112,251,246,109,228,229,229,149,121,178,166, 76,153, 66,228,229,229,121, 30, 56,112, 96, 84, 98, 98,226,246,135, 15, 31,230,
-160, 56, 23,228, 39, 13,129,197, 98,189,167, 40, 85,115, 27,231,166,236, 49, 67,122,244, 40,202,137,128,200,172, 53,158,132,191,
-191,154, 39,206,145,177, 88,172,247,229,247,255, 26,229,169,131, 14, 58,232,160, 67,237, 64, 16,132, 63,195, 48,131, 9,130,240,
-175,248, 93,197,207,165,251,249,248,248,148,109,151, 30,179,117,235,214, 45,229,182,165, 95,201,188,106, 39,195,247, 42, 81,144,
-189, 42,219, 73,241,234, 18, 20,175,255, 0,215,161, 59,120,205,134,130,229,224,138,228,136,123, 8,191,177, 3,169,209,143,192,
-208, 26,216, 56,117,210,214, 16,121,243,230,205, 33,151, 23, 79,205, 82, 40, 20,224, 10, 77,228, 75,102, 77,208, 3, 0,154,173,
-167, 40,167, 96,181, 34, 52,232,238,142, 78,153, 12,158, 91, 21, 59, 42, 58,101, 22, 31,247,227,212,169,224,114,185,224,114,185,
- 32, 74,166,254,104, 35,180,136,146,157,233,226,225,171,202,140, 32,164,124,206,169, 51,235,189, 58,241, 19, 35,121,138,168, 39,
- 72, 87,208,204,213, 76,205, 53,109,236, 21, 8, 5,105,250, 2, 65,164,190, 72, 88, 38,180, 8,130,120, 15, 0, 12,135,227,119,
- 98,163, 87,107, 97,102,156, 80,254, 34, 16, 25,114, 90, 85, 5,205,198, 27, 55,110, 88,178,217,108,107,141, 70,131,228,228,100,
- 68, 71, 71, 99,215,174, 93,153,133,133,133,189, 66, 67, 67, 99,203,107, 71,141, 62,239,156,223,166,133,141,216, 17, 65,122,138,
-247, 81,181,110, 61,230, 45,135,123, 12,237,213,230,218,236, 73,107, 48,252,155,254,152,220,203,133, 73, 72,207,149, 3,184, 93,
-226,122,173, 9,105,161,161,161,253,122,246,236,121,178,109,219,182,206, 12,195,160, 85,171, 86,240,244,244,132,159,159, 31,194,
-195,195, 81, 80, 80,160, 10, 8, 8,216, 9,224,152,150,102, 9, 76, 76, 76,110,222,189,123,215, 66, 32, 16, 32, 32, 32, 0, 50,
-153, 12, 54, 54, 54,152, 55,111, 30,111,235,214,173,191, 23, 20, 20,140,241,241,241,209, 75, 72, 72,216,123,235,214,173, 6, 40,
-206, 59,247, 89, 35, 80, 42,149,135, 78,249, 29,223, 61,207,107,190,221,221,167,175, 2, 21, 69,133, 70, 14, 14, 41, 5, 22, 38,
- 34,131,157, 63,109,172,175, 84, 42,103, 87, 94,158,247,235, 84,158, 58,232,160,131, 14, 58,124,134,106,181, 72,121,241, 84, 81,
-108,213, 70,164, 1,144,121,123,123,175, 38, 8,194,223,219,219,123,181,143,143,143, 12, 64,250,223, 33,178,202,132,214,224,193,
-131,131,252,253,253, 49,120,240,224,160, 42, 41,104, 13, 84, 9, 15,160, 74,120, 0,253,174, 11,240,167,207,248, 10, 39, 79,215,
-217,186, 33,155,110,223, 85, 40, 20,236,227,199,143,151,205,219, 2, 0,141, 70,243,213,107,177, 54, 66,171, 68,232,125,102, 68,
- 67,190, 40,232,208,226, 49, 93,204, 52, 82,142,242,209, 85,164, 41,104,106,251, 59,149,244, 69, 30,243,115, 85,156, 87, 22,205,
- 70,202,195, 59, 16,136, 68, 41, 51, 30, 68,150,121,177, 74, 68, 86, 60, 0, 52,224, 27, 4,250, 46, 28,238,106,205, 5, 87,121,
-237, 60,210, 21,180,194, 55, 81,125,172,138,198, 6,134, 97, 16, 31, 31, 15,169, 84,138,224,224, 96, 92,188,120, 49,187, 18,145,
-133,134,124,209,253,163, 43, 38,118, 54, 44,252,192, 85,190,184,131,116, 5,173,213, 80,151,121,171,225,221,185, 36, 17, 64,144,
- 44,253, 62, 93,156,176,104,230, 8,236, 56,250, 39,165,180,236, 49,120,247, 31,215,199, 22, 41, 84,171,181, 20, 89,101,206,198,
-208,208, 80,151,208,208, 80, 62, 0,119, 79, 79,207,235,163, 70,141, 66, 80, 80, 16,174, 94,189,234, 8, 32,163,100,191, 77, 40,
- 78,148,253, 51,128,184,170, 28,143, 92, 46,247,204,157, 59,119, 90,216,218,218,226,206,157, 59,144,201,100,152, 51,103,142,210,
-203,203,139, 59,101,202, 20, 34, 63, 63,191,204,147, 21, 28, 28,156, 83,149,200, 2,128,180,180,180, 27, 23,207,157,232,214,179,
-103,207, 17,141, 28,155, 25,198, 21, 22,100, 9, 4,122,250, 15,131,238,113, 95, 60,123,188, 55, 45, 45,237,121,229,229, 25,168,
-117,121,234,160,131, 14, 58,232, 80, 53,180,210, 34, 21, 60, 83,181, 65,185,227, 56, 62, 62, 62,209, 62, 62, 62,159,120,188,190,
- 16, 21, 87, 29, 94, 43,237,211,234, 20, 71, 75,147,159,252,249, 9,208,116,109, 78,246,179,239, 76, 76, 76, 40,125,125,253, 79,
-132, 22,173, 37,103,238,229,211,136,155, 59,161,204,147, 85,234,217,194,128, 41, 95, 36,180,104,154, 14, 6,240,137, 17, 2, 75,
-167,241, 59,135, 56,119,119,105,100, 71,170,207,237, 66,170,148,146,175,127,163,146,191, 46,100,134,198, 84, 50,201,186,140,147,
- 82, 67, 79,168,159,164, 47, 18, 86, 20, 89,137, 0, 32,180,114, 28,181,125, 96,179, 94,109,154, 53, 33,169,179,191, 34, 77,170,
- 46,242,142, 81,169,226, 36,204,165, 42,202,112,125,255,254,253,215,155,153,153,233,237,222,189,219,200,193,193, 1, 20, 69, 41,
- 43,138, 44,129,165,211,248, 93,195, 91,118,119,178, 54, 33,213, 23,246, 32, 69,166,145,238,138, 83,255,174,141,200, 50, 55, 18,
-221,242,221, 50, 87, 95,192,231, 64, 46,151, 99,235,254, 11, 8,120, 28, 53,248, 99,212,149, 91, 0,110,125, 65,131,156, 49,120,
-240,224, 29,155, 54,109,130, 90,173,198,244,233,211,241,254,253,251,128, 55,111,222,236,170, 95,191,254,178, 21, 43, 86,216, 90,
- 91, 91, 99,236,216,177, 92,181, 90, 61,165, 10,142,159, 78,157, 58, 53,184, 77,155, 54, 8, 10, 10, 66, 94, 94, 30,108,108,108,
-224,229,229,197,243,241,241,249,189,160,160, 96,204,150, 45, 91,244,226,227,227,171,245,100,125,210,174, 53,154, 31, 15,238,152,
-187,172, 99, 23, 87,242,221,187, 88, 42,185,147, 27,121,239,206,213, 7,102,102,102,191, 39, 39, 39,255, 85,158, 35, 90,213,186,
- 60,117,208, 65, 7, 29,116,248, 58, 32, 8,226, 90,201,188,171, 79,188, 92, 21, 69, 88,169,199,170,252,118,197,253, 75,126,255,
- 26, 15,203,135, 42, 17, 94,159,134,119, 24, 60,120,176,214,203,234,105, 73,182, 86,226,169, 34,190,105, 6,181,157, 8,236,213,
-110, 36,184, 66, 19,249,144, 77,183,239, 86,181,175, 80, 40,212,218,163, 69, 43,228, 53, 85, 74,173,132, 86,201, 28,173,155, 12,
-195,124, 34,180,140,172,156,220, 86,174, 88,184,211,117,212, 0, 50,115,102, 87,228, 21, 41, 20, 43, 94, 81,116,170,180,122,145,
- 85,220,139,171, 19, 4, 66, 81,164,158, 80, 80, 94,100, 37, 3,128,158,101,147, 78,203, 23,205,219,223,123,252, 16, 34,123,142,
- 43,196,121, 50,197,178,104,138, 72,147, 49, 99, 98,128,123,149,209,221,189,123,247, 32,128,131,110,110,110,153, 66,161, 16, 69,
- 69, 69,159,213, 65,169,189,221, 71, 13, 32, 51,103,116, 70,174, 68,165, 88, 17, 77, 33, 93, 70,159,169, 73,100, 89, 24, 27,220,
-242,221, 60, 87,144,158,154, 8, 46,151, 11,145, 72,132,219,143, 34,241, 49,250,143, 47, 17, 88, 32, 73,114,131,183,183,247,250,
-121,243,230, 33, 39, 39, 7, 87,175, 94,197, 55,223,124,131,211,167, 79, 59, 92,191,126,125,135,187,187, 59, 88, 44, 22,252,253,
-253,161, 86,171,223, 86, 65, 51, 98,214,172, 89,203, 70,141, 26,133,231,207,159, 35, 35, 35,227, 19, 79, 86, 94, 94,158,231,254,
-253,251, 71, 37, 36, 36,212,232,201,170,128, 78, 13,155,180,227,174, 90,251, 11, 20,210, 44,118,118,218,211,160,192,219,228,147,
-220,220, 92, 1,128,252,186,150,167, 14, 58,232,160,131, 14, 90,123,181,170,210, 34,217, 37, 34, 42,187,178,237,114, 2,171,178,
-109,162,130, 23, 76, 89,225,247,240,191,243,156,180,242,104,177,173, 90,130,202,140, 42, 39,180,178, 62,249, 93,207,192, 84,171,
-161, 67, 53, 5,182,239,177,178, 56, 90,122, 57, 57, 57,122,230,230,230,242,242, 2, 65, 32, 16,192,214,214, 22, 98,177, 24,135,
- 14, 29, 2,106,158, 20, 77, 25,142,154,132, 78,227,167,227,133, 61, 15,140, 90, 85,230,217,242,157, 58,245, 19,177,197,229,114,
- 75,231,134,213,212,233, 62, 43,241, 52, 61, 1,192,180,115,108,244,131,158, 80, 56, 85,207,188,158,249,162,185, 51, 56, 9, 89,
- 10,220,117, 93,149,119,225,167,149,162, 20, 70, 52, 47, 25,249,143,107,224,139, 27,118,224, 68, 69, 79, 86,106, 91,199, 70,107,
-244, 4,122, 51,121,166, 13,172,189,151,204,229, 36,100, 42,136,187,157, 86, 20, 92,252,121,133, 32, 30, 6,203, 82,145,119, 79,
-139,234, 89,255,205, 55,223,172,103, 24,134,161,105,122, 45, 0,148,183,119,137,215, 76, 78,220, 7, 57, 2, 93,215,136, 47,254,
-180,210, 32, 5,213,219,107,222,106,120,119, 43, 19,195, 91,190, 91,230, 9, 50,210,146,192,231,243, 97, 96, 96,128,148,204,124,
-112,216, 44,217, 23,182, 55,126,143, 30, 61, 86,206,157, 59, 23,145,145,145,152, 51,103, 78, 70,114,114,242,165,179,103,207,206,
- 89,183,110, 29,219,195,195, 3, 25, 25, 25,216,182,109,155,250,209,163, 71, 91, 0,108,171,180, 61,178,217, 51,126,248,225, 7,
- 38, 61, 61,157,136,143,143,135,141,141, 13,230,207,159,207,219,178,101, 75,217,156,172,218,120,178, 74,145,150,150, 22, 20,112,
-231, 9,134,222,216, 9, 74,173, 8,202,203, 73,126,240, 58, 78, 28,100,202,227, 45,181,107,215,170, 78,229,169,131, 14, 58,232,
-160,195, 87,241, 98,189,168,110,251,191, 0,149, 13, 29,106, 37,180,222,238, 89, 51,205,113,218,188,229,208,119,232, 14, 69,204,
-101,208, 69,153,101, 30, 45, 61,145, 9, 76,235, 59, 35, 79,162,192,249,192, 16, 0,120, 91, 27,171, 10, 11, 11,209,190,125,123,
-236,155,226,212, 91, 94,152,163,167, 15, 64,193, 55,148, 95,225,245,184,123,253,250,117, 41, 77,211,103, 0, 92,175,129,102, 67,
-139, 22, 45,246,254,242,203, 47, 60,231,241,211, 80,244,244, 97, 69, 15, 10,244,245,245,193,231,243, 17, 17, 17,129,187,119,239,
- 42, 1,108,168,161, 66,159, 81, 20, 21,126,246,236,217,212,166,141,236, 6,180,111,219,122,193,234, 85,222, 6,175, 30, 6, 96,
-237,150,189,116,211, 14, 30,249, 91, 79, 95, 41,204, 23,213,239, 35,203,120, 19,166,197,169,134, 87, 16, 89,233,205, 27,214,235,
-221,182,101,139,229,107,215,174, 49,140,126,120, 27,235,126,246,101, 28,219,244,205,255,249,226, 31, 5, 31, 5, 13,250,203,179,
- 94, 63,215,166, 12,131,130,130, 14, 2, 56, 88,186, 93,209, 94,239, 77,187,104,167,142, 3,196, 91, 79, 95,148, 20, 24,212,239,
- 91,157,189, 22,206, 35,186,217, 91,152,220,218,243,227,119,130, 15,105,201,224,243,249, 16,137, 68, 72,206,200,195,250,157,231,
- 36, 42,154, 30,240,165, 66,203,192,192,128,175, 82,169,176,111,223, 62, 36, 39, 39,119, 5,144,252,242,229, 75,223,113,227,198,
-237,110,213,170, 85,243,232,232,232,183, 69, 69, 69,243, 0,188,174,138,196,216,216,184,171,133,133, 5,241,228,201, 19,124,247,
-221,119,202,249,243,231,115, 39, 79,158, 76,136,197,226,186,122,178, 0, 0,118,118,118,110,253,250,116, 65,247,126,115,130,148,
-242,188, 7, 9,175,127, 15, 34,153,199,122,117, 45, 79, 29,116,208, 65, 7, 29,254,103, 80,183,192,224,110, 0,219,201, 12,179,
- 91,216,113, 63,248,253, 52,159, 41,140, 11,102,100,207, 15, 50, 5,151,103, 50,215,182, 77,102,174,239, 89,196,204, 25,212,130,
-105,110, 73,124,112, 50,195,108,183,207,133,219, 39,217,189,191,105, 6,117,191, 38, 96,250, 53, 1, 51,200, 9,106, 0,171,219,
-181,107,119,197,171,211, 95,113,180,188, 58,129, 1,240, 29, 0, 81, 21,102, 85,150, 49,220, 6,192,161,246,237,219, 83,247,238,
-221, 99,222,140,233,203,132, 54, 55,103,230,205,155,199,172, 91,183,142,153, 48, 97, 2, 99, 97, 97, 65,149, 20,132, 77, 77,156,
- 67,135, 14,181, 7,128,122,245,234, 25,119,112,110,250, 33, 34,240, 42,243,192,111, 55,115,212,107, 36,211,185,149,243, 71,235,
-230, 61,195,245,109,154,181,173,161,248,202, 56,173,173,173, 87, 49, 12, 51,128, 97, 24, 27, 0,112,116, 52, 19,181,107,222, 52,
- 61,252,206, 85,230,225,137,189,204, 81,175,145, 76,151,214, 46, 57,246,206,238,175,245, 44,155,119,210,134,179, 50, 84,106,111,
-203,230, 31,173,154,118, 11,171,198,222, 50,206, 70,157,198,254,145,154,158,201, 60,123,246,140,185,126,253, 58,243,240,225, 67,
-198,239,236, 31, 76,253,142, 99,138,204, 91, 13,239, 94,139,166, 83,149,157, 70,131, 6, 13, 98,222,190,125,203, 12, 28, 56,144,
- 1, 96, 84, 71,206, 43, 9, 9, 9, 76, 84, 84, 20,179,122,245,106, 6,192,241,185,115,231,202,242,243,243,153,190,125,251, 38,
-151, 8, 44,118, 93,236,108,220,208,110,235,136, 33, 61, 54,120,125, 55,202,237, 75,203,243, 43, 66,199,169,227,212,113,234, 56,
-255, 23, 56,255, 63,195,166,196,171, 85,250,222, 78, 43,143, 86, 16, 64, 33, 7, 7, 91, 90,170, 78,110,217,182,103,233,190,131,
-199,151,175, 92, 48, 67,216,195,181, 31, 34,239,252,134,139,254,103, 37,114,133,114, 27,151,133, 95,162,114, 32,141,173,193,138,
-146, 56, 90,159, 32, 52, 52, 84, 96,218,228,175, 24, 76,239,138, 99,179,250,214,242, 4, 51, 0,204, 10, 9, 9,249,197,221,221,
-125,243,204,238,157, 70,122,117,235, 13,181, 90, 13, 63, 63, 63, 36, 37, 37, 93, 2,176, 70, 91,143, 91,100,100,228, 71,151, 38,
- 14, 11, 57, 44,147, 13,103, 68, 0, 0, 32, 0, 73, 68, 65, 84,246,242,121, 19, 70, 88,100,191,127,133,212,152, 80, 0,128, 66,
- 33, 83,127,120,251,160, 77,109,140,211,215,215,127,102, 97, 97,241,198,194,194, 66,236,212,168,222, 44, 62, 56,107,231,120, 14,
-179,204, 73,120,141,148,232,226,145, 81,133, 92,170, 74,125,123,175,121, 93,106,215,193,193,129, 47,228, 96,118,165,246, 42,229,
-234,204,119,175,219,106,195, 35, 85, 40,183,108,220,225,215,255,199,229, 83,249,134,134,134, 8,137,122,135,181,191,158,150,200,
-148,234, 1, 31, 35,175,124,149,225, 49,134, 97,160, 86,171,181, 94,232, 80, 5, 86,182,105,211,166,217,230,205,155, 29,167, 76,
-153,130, 47,245,100,149, 71, 92, 66,154,183, 93,189,198, 46,239,222,132,184,155,234,115, 79,126, 73,121,234,160,131, 14, 58,232,
-240, 63,131, 65, 37,206,156, 89,229,222, 67,107, 20, 90,165,136,202,130, 20,192,166, 70,172, 34,223, 85,155,119,172, 39,137,157,
- 83,105,134,249,141, 34,177, 49, 62, 7,217, 95,104,156,148,195, 6,213,127,248, 4, 54, 0,112,216,117,235, 32, 75,240, 22,192,
-168,195,143,159,119, 60,252,248,249,247, 37,223,253, 8,160, 86, 99,185, 6,108, 68,185,186, 52,182,235,209,174,133, 30, 75, 35,
- 67,106,204,123,228, 74,228,184, 29,157,148, 71, 50,228,111,181, 53, 42, 62, 62,254, 62, 0, 88, 25, 9, 98,122,184, 52,169,223,
-179,125, 11, 1,135, 80, 34,245, 85, 8,242,101, 74, 4, 68, 39,229,131, 32,234, 60,161,250,107,217,155, 25,249,199,139, 63, 65,
-244, 37, 8,226,206,106,175,241,252,245,191,158,249,170, 34, 11,128, 52, 45, 45, 45, 71, 42,149,154,165,167,167, 43, 81,247, 32,
-113,239, 10, 10, 10, 90, 45, 90,180,104,211,178,101,203,150,255,244,211, 79,220,186,204,201,170, 10,226,180,164,203, 61, 91,124,
-189,250,215, 65, 7, 29,116,208,225,127, 2,179, 42,188, 67,107,161, 85, 38, 24,178,144, 13, 96, 94,227,198,204,146,184, 56, 40,
-191,150,101,149,121,186,190, 16, 47, 0, 12,169,243,209, 36, 81,248,244,109, 82,209,179,183, 73, 69,160, 25,134,102, 24, 5, 73,
- 34, 69,162, 82,109,121, 27,159, 86,247, 85,119, 4,161,121,241, 46, 89,246,242,125,138,156,161,105,134,102, 24, 37, 65,224,131,
- 90, 77,111,137,142, 79,250,227,191,193,222,143,145, 87, 30,251, 83, 68,143,199,207,162,150, 72, 36,170,189, 31, 99,174, 4,127,
-197,122, 81, 71, 70, 70, 78,236,218,181,235, 52,141, 70,227, 11, 64,253, 5, 92, 74,138,162, 86,110,221,186,245, 82,100,100,228,
-185,224,224,224,140,175, 33,178,254,214,250,215, 65, 7, 29,116,208,225,223,138,186, 37,149,174, 10, 95, 83,100,253, 55, 34,234,
- 93, 98,251,191,131, 55,250, 93, 98,203,255, 15,246,102,198, 92,126,153, 9,120,254, 77,197, 27,160,209,104, 2,190,166,168,190,
-121,243,102, 67, 84,146, 86,231,191,173,254,117,208, 65, 7, 29,116,248,215, 98, 86, 85,226,139,173, 43, 27, 29,254, 5, 96,190,
-150,200,210, 65, 7, 29,116,208, 65,135, 58,160, 74,143, 22,129,170, 87, 14,220,169,197, 31,212,101,245,193, 29, 29,167,142, 83,
-199,169,227,212,113,234, 56,117,156,255,115,156,255, 70,216,160,120, 66,252,181,146,247,106,197,215,215,132,110,233,171,142, 83,
-199,169,227,212,113,234, 56,117,156, 58,206,127, 59, 42,157, 8, 15, 20, 79, 30,214, 65, 7, 29,116,208, 65,135,255, 79,224,151,
-188,234,250,187, 14, 58,252,221, 98,171, 76,112,213,101,142, 86,211,146,247,119,127,163,177, 94, 54, 54, 54,179, 90,183,110,237,
-204,229,114,201,194,194,194,141,247,238,221,219, 80,113,167, 30, 46,236,151, 44, 18,246,127,125, 67, 0, 4, 11, 32, 73,104, 24,
-164, 62,140,144,117,208,213,251,127, 53, 28,244, 13, 45,254, 36, 72, 22, 79, 67,169,160, 81,171, 80, 60,221,170, 24, 52, 77, 37,
-105, 84, 10,143,170, 14,182,110, 51,162, 62,165,161,127, 2,152,125, 0, 57, 23,160,247, 19, 96,207, 97, 64, 29, 32,192,250, 14,
- 44,230,103,104,136, 21,108, 14,107, 85, 70,232,133,148,127, 67,129,157, 63,127,158,245, 37,199,143, 25, 51,166,210, 4,162,182,
-182,182,254, 2,129,160, 73, 85,199, 73, 36,146,140,140,140, 12,247,127,121,123,236, 9, 96, 15,128, 22, 21,190,127, 13, 96, 33,
-128,192, 47,253, 3, 55,128,109, 5,204,230, 2, 43, 0, 64, 5,252,156, 9, 28, 12,250, 47,154, 99,104, 97, 97,241,128,205,102,
- 59, 74, 36, 18, 73, 97, 97, 97, 99, 3, 3,131, 56,161, 80, 40,164, 40,234,109,118,118,118,207,234,142,101,138, 23,165,212,136,
-150,128, 65, 44, 48, 78, 67,146,243, 57,192, 62, 5, 77,251,150,220,193,181, 73,112, 59, 23,127,165,231, 90, 14, 96,127, 45,127,
-215, 65,135,191, 3, 95,180,234,208,169,248,254, 0, 55, 0, 61, 59,118,236,104, 37,145, 72,240,250,245,235, 76, 0, 15, 0, 4,
-149,188, 98,191,134,165, 36, 73,110,223,177, 99,199,210,249,243,231,151, 37,131,142,136,136, 64,155, 54,159,199, 8,101,145,176,
-191,119,245,142,229,139,200, 88,116,236, 59,186, 68,104,145,128, 36, 3,238,253, 58,213,213, 4, 3, 19, 19,147,141, 4, 65,140,
- 33, 73,178,198,155, 6, 77,211, 26,134, 97,206,139,197,226,245, 0, 10,107,243, 71, 66, 1, 95, 77,105, 52,149,254, 7,155,197,
-210, 72,164,138, 42,195, 94,152,154,154, 6,147, 36,217,168,124,194,108,224,211, 4,218, 85,253, 70, 81, 84,234,199,143, 31,181,
- 17,161,122, 36,155,187,144, 32,184,253, 64,210, 78, 0, 1, 2,100, 44,173, 81,222,166, 41,213, 46, 0,242, 47, 17, 89, 54,245,
- 26, 63, 92,188,102,171,125, 84,204,107,172,246,154,128,159,246, 28,199,170,133,211,176,235,208,105, 44,156, 53, 30, 46, 46, 45,
-170,189,235,210,224,110, 89,179, 96, 76, 95,159,125,231, 92, 87,205, 27,195,247,217,119,190,199,106,175,113,188, 45,123,207,245,
- 88,237, 53,150,239,179,247,156,235,170, 5, 99,244,183,236,191, 64, 3,152, 84, 23, 35,199, 59,218, 74, 8,138,170,244,201,152,
- 97,179, 21,167,223,166, 11,255, 19, 87,244,148, 41, 83, 90,203,100,178,144, 9,253,218,109,109,235,100,151, 86,217, 62, 57, 31,
-210,236,226,222,132,122,115,184,250,237,135,121, 31,143,168,214, 61,192,231, 55,122,253,250,181, 35, 77,211,208,104, 52,160, 40,
-170,236, 93,169, 84,162,103,207,158, 95,107,225,204, 16, 0, 27,139, 47, 86,248, 0, 56,247, 5, 92, 34, 54,155,189,152,199,227,
-185, 81, 20,229, 12, 0, 28, 14, 39, 70,161, 80, 4, 81, 20,181, 3, 64, 81, 45,249,118,166,165,165,185,136, 68, 34,168, 84,170,
-178, 4,244, 44, 22,171,121,253,250,245,247,201,229,114,199, 47, 61,121, 43, 96,118, 55, 87,215, 93,147,151, 46,101,201, 30, 60,
-192,174, 99,199,118,162,160, 0, 0,246,213,116, 44,143,199,187, 69,146,164, 67,109,254,143,166,233, 36,165, 82,233, 81,155, 99,
-216,108,182, 99,122,122,186,165,173,173, 45, 10, 11, 11, 33, 20, 10,133,165,219, 95,130, 32,128, 24, 0,244,164, 88,172, 69,102,
-230,230, 61, 66, 2, 2,132, 45, 91,182, 36, 89, 44,214, 42,104, 31,164,154, 15, 96, 27,195, 48,250, 37,253,197,174, 46, 93,186,
-116, 37, 8,130, 2,192,208, 52, 77, 62,123,246,108, 60, 77,211,236,146,123,222, 54, 0,199, 0, 40,116, 58, 64,135,127,192,155,
-117,168,182, 66,235, 58, 0,183,142, 29, 59,234,123,122,122,194,205,205, 13,142,142,142,208,211,211, 43,190,137,231,228, 88,133,
-133,133,141,125,240,224,193,216,171, 87,175,226,213,171, 87, 50, 0,143, 0, 84,122, 81,247, 25,236, 58, 95, 79,196,223, 13, 0,
-217,169, 57, 25,169,241, 89,187, 51, 50, 50,182, 1, 40, 31, 34,188,241,164, 73,147,150, 44, 88,176, 0,254,254,254, 56,125,250,
- 52, 20, 10, 5, 10, 11,171,209, 47,210, 44,136,239,110, 5,132, 9, 64,114, 16, 32,176, 4,132, 86,117, 46, 41, 19, 19,147,141,
- 11, 23, 46, 92,228,226,226, 82, 22,197, 92,173, 86,131,162, 40,168,213,106,136,197, 98, 44, 89,178,164,184,163,101, 24,208, 52,
-141, 27, 55,110,204,159, 53,107, 22,196, 98,241,226,202, 56,187,180,175,247,146, 36, 72,251, 82, 95, 13,163,209,164, 62, 13, 75,
-237, 64,105, 52, 44,185, 92, 85,105,166,114, 61, 61,110,181, 34,143,195,225,216,191,250,243, 79, 75,146,199, 3,163,209, 0, 52,
- 13,134,166, 75,138,179,228,197, 20,127,199,104,104, 48,106, 13,104,138, 6, 37, 83,160,211,220,185,218, 20, 69, 55, 14, 79,255,
-244,196,153, 75,173, 59,119,233,194,105, 80,207, 22,148,134,198,251,132, 84,235,144,151, 79,187,159,255,125,223, 28,165,172,112,
- 60,128, 58,197,217,226, 9, 12, 3,246, 30, 56,108,255, 34, 44, 10,129,247, 30,224,206,221, 32, 0,192,173,123,193,165,130,187,
-198,170, 2, 85,212,106,225,244,225,252,173,123,207,112, 22, 78, 31,193,250,105,239, 89,206,130,105,195, 88, 91,119,159,230, 46,
-152, 54,140,181,117,207,105,238,130,233,195, 89, 62,187,142,182, 6, 96, 2, 64, 92, 21, 89, 85,117, 68, 80, 20,255,100, 92, 38,
- 11, 0,178,125,125,161,206,202,130,237,250,245, 0,128,137,141,173,180, 30,154, 48, 55, 55,127,201,225,112,236,107,218, 79,173,
- 86,215, 40,130,167, 76,153,210, 70, 38,147,189,164, 40,138, 97,179,217,222, 19, 70,244,191, 50,160, 71,155,156,242,251, 68, 68,
-132,155,109,217,242,231,240,115, 33,133,204,216,246, 6, 33,254,219,167,116, 24,188,236,120,120, 53, 29, 50,169, 80, 40,240,246,
-237, 91,148, 79,242, 94, 14,154, 58, 94, 82, 36,128, 93,102,102,102,157,115,114,114, 38, 2, 88, 93, 80, 80,208,154,197, 98,193,
-212,212,116,181, 82,169,124,111,100,100,116, 36, 63, 63, 63,184,196,107,164,109,202,128,158,134,134,134,126,151, 47, 95, 54,105,
-215,174, 29,249,241,227, 71, 52,108,216, 16,185,185,185,157, 30, 60,120,208,126,250,244,233,211, 11, 11, 11,191, 45,121, 24,212,
- 22,205, 4, 2, 1, 51,121,242,100, 66,163,249,235,116,143, 30, 61, 10,143,150, 84, 19, 11, 99,129, 84,174,100,242, 3,223, 26,
-125,199,229,114, 31, 37, 37, 37,229,215,182, 48,184,192,138,201, 75,151,178, 68,137,137, 16,133,135, 99, 98, 65, 1,251,167, 98,
-239, 86,141, 66,139, 36, 73, 7,191,211,191, 57,242,120, 60, 80, 20, 85, 38, 6, 75,239, 81,106,181, 26, 42,149, 10,106,181, 26,
- 26,141, 6,106,149, 26, 62, 63,254, 92,231,123,161, 64, 32, 16,216,216,216,100, 10, 4, 2,193, 23,138,203,250,185, 36, 57,179,
-109,251,246,179,214, 15, 31,174,247,252,249,115, 61,146, 36, 65, 81, 20,182,109,219, 70, 49, 12, 99,236, 2, 24,190, 2, 10,106,
-203,205,231,243,217,191,255,254,251,120, 30,143, 7, 0, 80, 42,149,104,217,178, 37,161,235,243,117,248, 15,138,173,207,188, 92,
-213, 9,173,129, 5, 5, 5,208,104, 52, 48, 48, 48, 0,139,245,105,191,111,102,102,134,126,253,250,161,103,207,158,240,244,244,
-196,171, 87,175,244, 61, 61, 61,251, 85, 69, 54, 97,233, 96,212,115,180, 42,233, 76,104,155,199,215,194,182, 30,253,225,130,197,
-135, 15, 31,150,150,219,109,250,236,217,179,137,156,156, 28,140, 25, 51,230,129, 66,161, 24,138,106, 46, 62, 13,141, 84,119,207,
-137,160, 25, 66,127,199,179,195,132, 82, 46, 99, 72,146,148,149, 14, 29,214,165,148, 8,130, 24, 99,107,107,139, 51,103,206, 64,
-169,252, 60, 92,152,161,161, 33,162,163,163,255,242,170,177, 88,232,210,165, 11,139, 32,136, 49, 0, 22, 87,206, 73,218, 63,126,
-145,104, 89,186, 61,184, 95, 11,110,151,246,100,102,122,166,132, 1, 64,172, 89,179,166, 76,184, 1,192,198,141, 27,181,177, 19,
- 36,135,131,236,160,160,191,110,196,108, 18, 36,151, 0,193, 1, 72,118,241, 40, 42, 24,128,209, 0, 52, 5,208,106, 64,207,166,
-158, 54,197,208,201,174,190,163,255,150, 95,247, 27, 43,212, 12,206,252, 17,136,132,132,120,176, 72, 18,141,155, 56,162,127,175,
- 30,156,246, 29,187,214,251,121,195,210,171,233,201,239, 6, 2,120, 94,235,130,166, 25,189, 38,245,205,113,228,104, 8, 44, 76,
- 68, 24, 51,252, 27,232,235,241,241,211,158,223,240,227, 42, 47, 56, 54,118,192,193,157,155,171, 60,220,200,200,104,147,179, 99,
- 19,135,253,191, 95,131,115,243,230,172,253,126,215,224,236, 82,242,222,194,153,181,223,239, 26, 92, 90,184,176,246,251, 93, 67,
-235, 22,205, 26,188,204,120,182, 41, 55, 55,215,171,234,242,172, 80, 71,253,139,235,136, 83, 68,151,221,180, 19,231,204, 1,128,
- 50,161, 85, 27,112, 56, 28,251,244,244,116,203,154,246,171,201,107, 80,226,201,122, 73, 81, 20,178,178,178,136,188,188, 60,198,
-216,216,120,248,205,131,171, 47,123,184,182,201, 5,128,240,240,112, 83, 31,159, 45,195,207,190, 44,128,236,233, 94,226,228,159,
- 65,244,196,161,110, 47,255,216, 58,165, 61, 74, 82, 66, 84,132, 66,161, 72,104,219,182, 45, 83,242,217,142,207,231,115, 43,180,
- 55,219,166, 77,155,126,230,181,214, 98, 72,113,215,147, 39, 79,188, 92, 92, 92,208,188,121,243,224,206,157, 59, 27, 10,133, 66,
-220,188,121, 19,206,206,206, 45, 12, 13, 13,159,157, 63,127,158,179,114,229,202, 54,199,142, 29, 3,128,249, 90, 20,103, 95,119,
-119,247, 51,254,254,254,122, 92, 46, 23, 50,153, 12,209,209,209, 48, 50, 50, 2,143,199,195,176, 97,195, 88,221,187,119, 55,235,
-213,171,215,197,216,216,216,241,168,197, 10, 40,185, 92,206,172, 94,189, 26, 2,129, 0, 2,129, 0, 66,161, 16, 66,161, 16, 34,
- 61, 16,190, 11,235,235, 47, 56,148,167,191,120,189,239, 86,191,253, 27,238,213,171, 71,175, 75, 73, 73,201,171,109, 91,144, 61,
-120, 0, 81,120, 56, 80,238,218,213, 22, 70, 66, 83,120,123,123,215,228,145, 2,151,203, 69,183,110,221,106,228, 51, 53, 53,189,
-196,102,179, 63,121, 50,165, 40, 74,207,219,219, 91, 19, 27, 27, 43, 36, 73, 82, 72,211, 52,188,189,189, 53, 20, 69,233, 89, 90,
- 90, 6,211, 52,157,249,241,227,199,255, 99,239,186,195,162,184,214,247, 59,179,125,233,189,169,160,162, 40, 8,130, 13,197,134,
- 93, 19, 49,177,198,216,141, 38,222, 36,150, 88, 18,177, 69, 99,131,196, 26, 19,141,154,196,104,188, 54,236, 98,239, 38,118, 5,
-145,162,160, 72, 19, 22, 88,250,194,182,217,157,153,223, 31,176, 43, 32, 91,208,220,223, 45,217,247,121,246,217,157,157,217,119,
-207,153,114,206,123,190,239, 59,223, 25,105,140,183, 15, 32,186, 5,140, 32,120,188,185,158, 94, 94, 45,194,125,125,173, 46, 93,
-186,196, 1, 0, 31, 31, 31, 86, 34,145,148,157, 56,113, 66,198, 5,126,242, 97,217, 61,141, 16, 89, 42, 0, 95,146, 36,249,189,
- 80, 40,228, 54,111,222, 60,107,217,178,101,183,107, 44,164, 96, 89,150,108,222,188,121,168, 88, 44,246, 81,169, 84, 90, 84,187,
- 14, 45,214,172,255, 1,176, 44,219,169, 90,183,235,161, 6, 32,208, 25,240,171,123, 59,184,212,251, 30, 0,138,106, 6,138,238,
- 6,182,139, 1, 36, 3,104, 11,192,173,102,223,125,130, 32, 74,222,160,152,134, 45, 90,177,177,177,250, 33,108, 68, 68,132,190,
- 99,177,181,181,197,253,251,247, 65, 16, 4,108,109,109, 97,103,103, 7,123,123,123, 84, 84, 84, 32, 57, 57, 25, 79,158, 60, 65,
-102,102, 38, 8,130,128,175,175, 47,116, 55,123, 45,232, 27,184,125, 27, 98, 33,178, 17,130, 32,128,142,253,130, 17,220, 59, 8,
- 93,238,165,207,121,112,137,216, 41,145, 72,210, 0,112,131,130,130,166,117,235,214, 13, 27, 55,110,132, 74,165,218,104, 64,100,
-233, 57,255, 72,214,118, 6, 0, 79, 79,207, 5,123,207, 61,183,154, 56,164,149, 92, 34,145,172,127,131,147, 83,167, 33, 46, 42,
- 42, 50,123, 45, 62,134, 97, 80, 90, 90,106,148,179,190,133, 96,211,247, 63, 58,200,202, 11,176,234,219,189,208,104, 52,152, 63,
-127, 62, 24,134,209,191,202,202,202,204, 42, 39, 75,211,175,219, 14,200,106,239, 41,193, 5,188,199, 86,235,138,236, 3, 63,130,
- 96, 1,130, 6,240,122,189,234,119, 66, 34, 14, 95,124,112,197,183, 91, 28,226,158,188,196,137,203,113,160, 42,114, 33,121,116,
-172,218,228,216,125, 28, 14,169, 56,232, 26,220, 10, 95, 44,249,206,113,233, 23,147, 14,170, 21, 50,127,212,117, 35, 94, 50,253,
-208,208, 88,181,114, 37,118,110,217,136,239, 54,110, 65, 69,121, 25,120, 60,151,154,134,158, 6, 77,211,198,235,206,178, 67, 34,
-231, 76, 37,190,253,233, 40, 66,219,121,226,200,185,123,232,217,193, 7,199, 46, 60, 64,239, 78, 45,112,226, 82, 28,250,117,109,
-133, 51,215, 19,241,197,140,113,196,184,243,187,134, 52,230, 26,109,222,252,163,131,172,162, 0,177,107,246,160,112,235, 86,100,
-205,156,137,208,154, 99,238, 17, 4,248, 77,155, 2,124,211,215,168, 62, 82, 82, 82,160, 82,169, 26, 26,153, 35, 32, 32,192,228,
-117, 87, 40, 20, 15,181, 90, 45, 91, 80, 80, 64, 20, 20, 20,192,218,218,154, 72, 74, 74,164, 3, 3,131, 70,176, 79, 14,255, 12,
- 0, 81, 81,107, 71, 28,122, 88, 1,249,173, 45, 80,220,254, 1,252, 22, 9,228,206,111,102, 80,159, 44,223,241,176,214, 51, 90,
-167,156,249,249,249,239,228,231,231, 3, 0, 90,182,108,249, 36, 53, 53,181,173,206,213, 92,227, 66,228,107,181, 90, 63,157, 59,
- 81,171,213, 66,165, 82, 97,192,128, 1, 28, 99,117,119,116,116,236, 22, 16, 16,128,184,184, 56,108,217,178,197,169,111,223,190,
-120,246,236, 25, 8,130,192,218,181,107,137,118,237,218,241,138,138,138, 48,120,240, 96, 28, 61,122,180,123, 69, 69,133,169,243,
-105,107,109,109,189,235,212,169, 83, 34,146, 36, 33,147,201,192, 48, 12,122,244,232, 1,146, 36,145,152,152,136, 37, 75,150,224,
-232,209,163, 56,126,252,184,184, 83,167, 78,187,228,114,121, 0,234,186,245, 13, 93, 35, 86,169, 84,178, 66,161, 16, 66,161, 16,
- 34,145, 8, 34,145, 8, 2,129, 0,149, 74,224,147, 77, 89, 42,142,200,133, 9,236,208,179,213,212,217,107,201,245,203, 62,186,
- 2,224,132,185,247, 60, 80, 29,147,245,253,111,191,109,153, 80, 94, 78, 2,192, 47, 4,193, 80, 44,251,157, 57,207, 59, 0, 84,
- 42,203,225,227,219, 20, 71, 14, 30,199,168,177,195, 27, 20, 89, 60, 30, 31,124, 30, 15,118, 78,214, 38, 57,249,124,190,251,147,
- 39, 79,156,121, 60, 30, 88,150, 5, 77,211,160, 40,170, 96,233,210,165,174, 67,135, 14,181, 61,123,246, 44, 57,116,232, 80,198,
-209,209,177,234,222,189,123,133, 90,173,214,185, 87,175, 94, 6, 57,173,128, 96,165,125,235,239, 5, 28,109,112,244,226,207,133,
-147, 38, 77,226, 76,157, 58, 21,217,217,217,152, 54,109,154,242,226,197,139,234,124,137,228,132,128, 97,126,164,128, 4,115,219,
-228,122,216, 22, 28, 28,220,241,216,177, 99, 31, 69, 70, 70, 62, 88,176, 96,193,170,218, 59,215,173, 91,183,242,204,153, 51, 62,
- 35, 70,140,248,253,209,163, 71,219, 26,211, 46,189,109,223, 97,225,124, 59, 24,210, 34, 58,227, 40, 65, 16,177,181,218,236, 8,
-221,118,100,100,228,226,168,168,168, 36,130, 32, 98,107,127,175, 59,174,102,176, 24,219,208,118,205,111,157, 22, 45, 90, 20, 20,
- 29, 29,189, 54, 44, 44,236,192,173, 91,183, 94, 0,104,172,208, 50, 30,163,165,171, 80,237, 74,214,235,212, 80, 81, 81,129,138,
-138, 10,228,228,228, 96,251,246,237, 53, 15, 52, 15, 92, 46, 23, 92, 46, 87, 31,207, 96, 8,151, 99,255,252, 1,192, 15, 29, 59,
-118,228, 61,190, 29,115,246,171,157,179,251,119, 30,208,145,243,240,242,227,209,168, 94,143,240,157,201,147, 39,187, 0,192,158,
- 61,123,138, 0,156,253, 55,169,230,152,180,180,180, 47, 60, 61, 61,245, 49, 42,181,221,135, 90,173, 22, 34,145, 8,186, 88, 22,
-165, 82,137,237,219,183,107, 89,150,141, 49,194,137,212,164, 43, 72, 75,186, 90,253, 59,134, 1, 67,191,250,253,138, 21, 43,192,
-178,172,190,179,255,180,198,114, 98, 82,228, 53,116,206,217,122,239,245,190,103,105,218,132,123,130, 63,123,244,164,153,158, 12,
-193,197,201, 43,241,224,241,120, 96,106, 89, 51,121,156,234,209,114,210,179, 60,120,185, 7,226,189,113, 51, 60,142,253,254,227,
-108, 45,165,252,182,177,231,218, 63, 56, 12,115,190,248, 2, 63,239,220,137, 37,203, 87,234, 21,128,150,166,161, 53, 89, 78,146,
- 28,208, 35, 8,218,202, 60,112, 56, 28,244, 11,109, 5, 14,135,131,129, 97,109,192,225,112, 48,184,135, 63,184, 92, 46,134,244,
-108,135,214,173, 91,131,203,229,146, 38,174, 59, 82,147, 46, 35, 45,233, 90, 45,209,203,130, 5, 64, 73, 36,175, 29,175,145, 72,
-192,122, 59, 55,246,222,194,180,105,211,202,114,114,114,168,250,251,154, 53,107,198,191,113,227,134,131, 1,183,157, 30, 98,177,
-184, 19,151,203,125, 88, 82, 82,194, 88, 89, 89,145, 12, 67, 51,129,129, 65,156,115, 59, 22, 31,211, 29,179,104,209,226, 99, 31,
-116,178, 27,177, 55, 38,150,229, 55,239, 73, 16, 60,161,246,227,229, 59,248, 60,190,184, 19,160, 48,103,240, 64,170, 84, 42, 60,
-125,250, 20,166,202,195,178,172, 81, 55, 77,105,105,233,228,128,128,128, 27, 63,252,240,131, 19, 65, 16,248,227,143, 63,192,225,
-112,244,175,244,244,116,144, 36,137,175,190,250,138,170,168,168,152,110,170,108, 92, 46,247,139, 35, 71,142,216, 11, 4, 2,200,
-100, 50,253,115,195,225,112,240,228,201, 19,172, 95,191, 30,147, 39, 79, 70,118,118, 54,188,188,188, 48,127,254,124,155,232,232,
-232, 47, 40,138, 90,105,198, 37, 74, 80,171,213,157,173,172,172, 32, 18,137,160, 19, 92, 0,112, 33,137,151,168, 80, 40,218, 59,
- 59,203, 61, 92,175,199,158,236,222,247,189, 16,103, 87,207, 48,137, 68,210,168,165,179,158, 3, 59, 51,104,122,233, 59,199,142,
-185,221, 60,118,140,185,115,234,212, 75,161, 76,182,195,236,123, 72, 67, 34, 43,253, 37, 58,117,234,132,135, 15, 31,162, 83,167,
- 78,181, 69, 19, 4, 2, 1,248,124, 62,248,124, 62, 92, 28,205, 10,161, 96, 73,146,196,205,155, 55, 65,211, 52,212,106, 53,212,
-106, 53,218,181,107, 87,114,245,234, 85, 27, 0, 72, 79, 79,103, 39, 78,156, 88,118,247,238, 93,116,232, 96,124, 61,117, 37, 65,
- 92, 94,177,118,131,253,183,155,119,193,222,201, 29,215,175, 95,167,207,157, 59, 39, 35,128,212,180,164,164,141,239, 1,103, 98,
- 0,170, 49,231,204,221,221,253, 6,135,195,105, 94,251,187,226,226, 98,199,145, 35, 71,162,180,180,244,221,145, 35, 71,246,172,
-105, 19,114, 15, 31, 62, 60, 17, 0, 4, 2, 1, 72,146,164, 97,193,127, 21, 76,105,145,218, 66,169,190,224,138,138,138,138,168,
-255, 93,109, 81,213,208,231,218,191,141,142,142, 94, 91,139, 91,241, 6,197, 55, 29,163, 21, 27, 27,203, 54,160, 32,205,134, 41,
-161,165, 67, 92, 92,156,198,203,203,235,231,180,248,204,254,173,130,125, 33,182, 22, 14, 2,240,131, 80, 40,156, 55,105,210, 36,
-220,185,115, 7,137,137,137,191,226, 45,103,225, 4, 5, 5,157, 23, 10,133, 62, 6,220, 36, 89,137,137,137,131, 13,116, 12,203,
- 79,157, 58, 5, 99,193,240, 87,174, 92,169,221, 41,213, 14,134,111,248,198, 96, 88,104, 40, 13,170,228,138, 87,157,120,141,208,
-170,170,170,194,216,177, 99,235, 88,180, 10, 11, 11, 77,214,143, 32, 8,172, 63,113, 2, 23, 99, 98,240,110, 72, 8,142,222,187,
-135,232, 73,227,225,239,211, 4, 44, 77,128, 37,128,236,253, 63,162,184,162, 18,251, 46,223, 68,137, 76,142, 9,189,122,193,207,
-206,197, 56, 47,143, 63, 48,180, 91, 24,255,210,173,100,240,120, 92,144, 96,192,106,228,240, 10,232, 3, 14, 73,194,222,189, 5,
-248, 60, 30,120, 60, 46,210,115,138, 16, 16,212, 69, 16, 43, 16, 13,124, 19,161,213,204,167, 5,104,154,198,228,201,147,113,224,
-192, 1, 56,123,248,192,190, 89, 16, 86,111,220,137,119, 7,244, 50, 89,127,221, 8,158,203,229,130,195,225,188,246,174,251,108,
-142,117,146,101, 88, 80,245,175, 17,195, 2, 44,139,166,107,214,160,233,154, 53,184, 87,243,159,237,170,170,160, 80, 40,128,174,
-129,141, 18, 89,106,181, 26, 57, 57, 57, 84,126,126,190,123, 3,251, 11,212,106,181, 73, 97,179,123,247,238,132, 41, 83,166,116,
-118,114,114,122,144,240,232,145, 38, 56, 36,132,119,118,251,226,227, 58,183, 33, 0,132,132,132,148, 44, 94,188,248,248,196, 49,
- 17,195,183, 69,126, 72,127,182,242,119,174, 80, 44,238, 28,177, 96,119,194,254, 49, 99, 76,251,102, 84,170,140,224,224, 96,214,
-156,122,201,229,242,124, 35,187,135, 1,248,166, 99,199,142,118,125,251,246,197,141, 27, 55, 48,106,212, 40, 21, 69, 81,105, 0,
- 48,116,232,208, 54,251,246,237, 19, 36, 39, 39,195,213,213,149,151,149,149,181, 11, 38, 2,228, 5, 2, 65,159, 46, 93,186,144,
- 42,149,234, 53,145, 21, 29, 29,141,113,227,198,161, 77,155, 54, 96, 24, 6,149,149,149,232,219,183, 47,111,203,150, 45,125,204,
- 20, 90,115,252,253,253,215,163,122,214, 97,237,182, 48,165,198, 5,133,226,226,226,252,248,187,151,147,122, 13, 24,217,185,121,
-235, 32,207,196,132,135, 70, 9,221,220,220, 22,145, 36,249, 1,195, 48,156,138,138,138,156,120,181,186,117, 59, 31, 31,247, 30,
-195,135,163,156,199,227,124,127,249, 50, 89, 32,147,217, 0, 48,203, 5,169,212, 84,193,199,183, 58,212,111,212,216,225,120,248,
-240, 33, 70,127, 56, 2,124, 62, 31, 92, 46,175,250,217,228, 87, 91,180, 28, 92,236,204,186, 55, 53, 26,141,190, 13,215,197,121,
- 81, 20, 5, 93,104,150,149,149,149,126,159, 74,165, 2, 65, 16,198,238, 13,178,111,239, 30,184, 21,151,170,157,254,213,247, 42,
- 94,241,195,104, 15,134,217,253, 18, 40,120,139,230,220,239,208,202,101,110, 98, 59,123,208, 26, 13, 2,135,143,214, 63, 39,119,
-127,217, 38, 6,195,136,203,178, 50, 48, 43,230,212, 95,189,102,174, 5,255, 6,152,210, 34,181,133,210,219,130, 32,136,216,200,
-200,200,197, 0,216,200,200,200,197,186,237,168,168, 40, 5,128,220, 55, 20, 91,175, 89,185,184,127,133,200,210,185, 23,140,161,
-111,223,190,179,108,109,109,183,232,182,115,238,228, 34,231, 78, 46, 2,218, 6,246,232, 24,210,185,124,220,184,113,112,118,118,
-198,130, 5, 11, 88, 0,191, 54,246,255,211, 83,147,108, 0,176,158,158,158, 11,106, 26,228,144,123,247,238,185,222,191,127, 31,
- 93,186,116,121,101,186,167, 40,244,236,217,211, 24,149,172, 38,168,125,238, 95,103, 37, 99, 64, 81, 20,228,114, 5,212,106, 10,
- 90, 13, 3,173, 86,139, 78,129,182,248,125,103,100,245,119, 90,157,245,172,218,106,214,212,195, 22,182, 54, 60, 13, 73, 18,138,
- 7, 9,249, 13,182,152,106,181, 26, 9, 89, 89,120,148,153, 9, 0,120, 47,202,120,224,235,239,151,111,160, 93,187,118,166, 74,
-219,170,169,151, 7,242, 46, 38, 84, 55,222,138, 28,220,255,243, 16,108,109,109, 0, 0,129,225, 19,192,231, 87, 11,173, 42, 5,
- 5,151,182,205, 64,176,172,193,180, 0, 86,142, 30,231,185,124,145, 15, 75, 51, 96, 89, 6, 44, 67,131,101, 25,112,120,124,171,
- 89,159,126, 4,134,161, 17, 26, 26, 10,130,195, 1,173, 81, 97,204,176,129, 40, 45,151,193,217,193,188, 78,130,207,231, 35, 60,
- 60, 92,108,104,255,179,103,207, 20,181,133,153,241,107,164, 65, 85,149, 2, 42,149, 10,148, 90, 11, 74,163, 5,221,146,143, 85,
- 75,199, 67, 75,105, 33,255, 48, 12,148, 70, 11,230,139, 17,160,212, 26,100, 91,145,100,112,128,139,134, 4,161,136, 79,145,218,
-153, 18, 90, 58,113, 96, 8, 13,197, 4, 26, 16, 91,143,166, 76,153,210, 41, 56, 36,228,225, 7, 3, 66, 54, 60, 78, 76,202,123,
-156,152,244,218,113, 62,109, 66, 50, 62,139, 62, 48,159,199, 23,119,138, 88, 96,124,214, 97,109,212,118, 35,190, 37, 22,203,100,
-178, 96, 27, 27, 27,164,166,166,130,195,225,128, 32,136,103, 0,130, 1,192,211,211,243, 57,151,203,245,229,112, 56,216,186,117,
- 43,193,229,114,219,135,133,133, 45, 86, 42,149,135,140, 12,232, 2,108,109,109,235, 88,179,248,124, 62, 34, 35, 35, 49,113,226,
- 68,189,200,226,243,249,216,189,123, 55, 58,119,238, 12,181, 90, 29, 96,102,121,239, 3,232,101,134,197,143,168, 17,231, 38,197,
-168, 86,171,157, 82,252,193, 7,173,113,253, 58,122,248,250,182,235,212,169, 19, 40,234,149, 65,199,215,215,183,153, 76, 38,203,
- 87, 40, 20,255, 68,117, 26,130,120,163,162, 72,201, 32, 43,189, 58,252,244,225,195,135, 8, 13, 13,213, 91,176,106, 91,179,248,
-124, 62,196, 2,155, 70, 9, 45,134,169,110,151,100, 50, 25,121,253,250,117, 23,127,127,127, 2, 0,252,253,253,137,248,248,120,
- 39, 43, 43,171,162, 86,173, 90,153, 26, 0,243, 1,160,207,160,145,220,139,231,206, 88,107,129,149,249, 28,206, 74,174,201, 54,
-146,213,208, 12, 99, 48,232, 94,108,103,143,221, 83,198, 2, 0,190, 30, 48, 68, 63,216, 58,247,205, 98,240,120, 60,244, 95,176,
-248,181,103,137, 97, 24, 14, 44,248,159, 18, 89, 13, 89,180,222,174,111,126,101,209,138,138,138, 74,138,138,138,122,205, 58,214,
- 72,152,182,104,213, 54,221, 53, 22,186,135,213, 16, 54,110,220,136,246,237,219, 27,237,136,182,108,217,130,189,123,247,110, 4,
-144,222,104,147, 99,255,142,129,216,116, 44,201,183, 77, 32, 1, 0, 43,191, 24, 70, 86, 85, 85,225,230,205,155,176,183,183,199,
-179,103,102,167,253,178,181,183,183,255,134, 36,201, 49,156,250, 51, 0, 26, 22,152, 52,195, 48, 49,229,229,229, 6,211, 59,176,
- 44, 64,105,180,168,146, 43,161, 86,171,241,197, 87, 63,154, 44, 68, 20, 64, 80,106, 25, 55,188,119,152,216,144, 69, 39,180,125,
- 31,124, 62,201,230,181,206,155, 67, 2, 36, 9,116, 8,173,182,184,196,223, 75, 2,195, 0, 52, 3,184,184, 57,226,215,253, 27,
-140,138,124, 45,205,212,140,142,105, 84,170,104, 4,116,139,192,203,148,235,122, 11,146,128, 95,237, 50,230,243,120, 96, 88,162,
- 58,235,131,161, 86, 87, 32,246, 41,149,164,251,237,140,125,140, 79, 34,218,227,240,165, 4,140, 30, 16,140,171,119,147,209,183,
-107, 59, 36,165,101, 34,208,175, 57,182,238,138, 1,203, 66,246,211,166,213,249,175, 58, 52,109,150, 57, 22,173, 59,119,238, 40,
-234, 91,177,106,191,179,166,251, 67,176,236, 43,139,150, 66,169,194,130, 69,102,165,222,169,190, 70,189,186,137,205, 57,216,152,
-197,202, 28, 33, 86,223,178, 5, 19,233, 89, 90, 2,232, 12, 44,252,119, 54,156, 52, 77,227,244,233,211,250,235,209,208,117,172,
-125,237,204, 16, 57,200,202,202, 66, 82, 82, 18,186,117,235,134,242,242,114,240, 72, 18,243, 31, 63, 70,187, 73,147,160,230,243,
-193, 48, 12, 4, 2, 1,102,204,152, 97,246,249,108,100,235, 92, 19,120, 77,155, 34,223, 16, 22, 22,214, 58,181,170, 10, 73, 79,
-158, 96,192,138, 21, 0,128, 51,103,206,212,185, 39,230,205,155, 39, 72, 78, 78,158,246,224,193,131,105,121,121,121, 27, 1,204,
- 55,216,206,178, 42,125,140,214, 7,227, 71,161,181,127, 75,236,253,109,191,126,255,188, 47,231,128,199,227,131,199,231,193,193,
-222,193,172,218,104, 52, 26,189,104,149,203,229,228,153, 51,103,154, 14, 28, 56,144, 63,103,206, 28, 2, 0,246,238,221, 75,254,
-240,195, 15,214, 23, 47, 94,228, 55,105,210, 68, 98,194, 66, 80,145, 91,172, 18, 2,128,183,183, 55,126,220,113,146, 28, 58,116,
- 40,230,204,153, 3,141, 70,131,109,219,170,159,171,113,227,198,129,162, 40, 28, 57,114, 68,247, 28, 27,181, 70,105, 41,234,181,
-251,134, 32, 8,240,120, 60,240, 5,124,128, 97, 64, 16,132,245,186,117,235, 86, 38, 37, 37,117,241,247,247,135, 74,165,154,132,
-234,201, 31,150, 60, 90,255,101, 98,203,152, 22,105, 40,214,170,198, 42,101, 8,210,218,113, 91,134,132, 90,237,152, 45,188,217,
- 4, 10,243, 98,180, 26, 2,135,195, 49,105,173,210, 77,213, 53,134,121,243,230,193,214,214,214, 80, 7,196, 62,126,252, 56, 89,
- 34,145,236, 4,240,227, 27, 93,156,203,113, 73,223,204, 29, 33, 67,141,111,213,193,193,161,168, 95,191,126,149, 0,168, 67,135,
-234, 14,144, 85, 42,149,193, 14,220,222,222,254,155, 95,126,249,101,246,240,225,195,201,250, 41, 6,106,187,247,116, 47,141, 70,
-131, 67,135, 14,205, 94,184,112, 33,202,203,203,231, 26,235,196,229, 85, 10, 40,106, 2,161,159, 39, 30, 54,183, 81, 55,184,203,
-198,193, 19, 77, 91, 6, 27,236, 76, 72,126,117, 12,145,187,247,171, 14,204,214, 86, 4,218, 8, 39, 65,144,233,153,217,121, 77,
-154,121, 56,225,121,142, 20,238,205,219,163, 52,247,213,121,224,114, 57,224,213,184, 14, 29,236,172, 33, 45, 44, 4, 73,114,140,
- 10,227,213,251,226,112, 55, 49, 19, 71, 46,197,131, 82, 86, 97,211,158,115,160, 84,149,160,148, 85,160,148,213,239,107, 23,126,
- 12,130, 64,190, 70, 85,213,166, 49,215,157,203,229,162,107,215,174, 6,133, 78,110,110,174,153, 22, 45, 86,111,209, 82, 40, 27,
-121,141,204, 27, 57, 25,181, 88,233,246,191,169, 48,208,165,124, 16,139,197,157,119,239, 54,156,198,161, 33,120,120,120,156,181,
-177,177,105, 97,238,241,141, 72, 94,186,214,193,193,225, 27,127,127,255,128, 77,155, 54,241, 56, 28, 14,250,247,239,223,198,195,
-195, 35, 11, 0, 2, 3, 3,189,116,109,204,103,159,125,198,222,185,115, 39,177,122,140, 97, 24, 2,129,224,137,189,189,125,231,
-190,125,251,162,188,188, 28, 57, 57, 57,176,182,182, 70,187, 13, 27,240,248,179,207, 16,178,125, 59,200,126,253, 64, 16, 4, 4,
- 2, 1, 30, 63,126, 12,177, 88,252, 68,169, 52,152,242,173, 43,128,239, 0,244,192, 43,119, 33, 11,224, 38,170,211, 46,220,109,
-160,189, 35, 1,128,102, 24, 83, 23,107,252,130, 5, 11, 80,198,227, 1, 67,135,130,159,158, 14,138,162,208,173, 91, 55,189,149,
-189, 91,183,110,224,114,185, 8, 14, 14,134,151,151, 23,182,110,221, 58,222,152,208, 82, 86, 82,200, 74,127,137,176,176, 48,189,
-229,106,232,208,161,122,139, 22,143,199,211, 91,182, 8,218,180,112, 37, 8,130,173, 61, 72,166,105,154,224,114,185,220,185,115,
-231, 18,163, 70,141, 98,213,106, 53, 35, 16, 8,200, 35, 71,142, 16, 87,175, 94,229, 86, 85, 85,153,178, 54, 84,125,248,225,135,
-110,205,154, 53, 69,206,243, 36, 28, 62,204, 98,227,198,141,184,113,163, 58,203, 70,106,106,245,196, 85,221,118,223,190,125,209,
-162, 69, 11,176, 38,110,252,160, 17, 99,240,245,192,119,170,219,147, 22,174,224,241,121, 16,240,249, 88,240,228,165,254, 90,219,
-237, 62, 32,136,142,142, 30,237,239,239, 95,237,218, 7,184,150, 60, 90,255, 93, 48, 97,232,145,214, 19, 73,234, 90,219, 82, 0,
- 68,205,182,180,150,160,146, 18, 4,113,159,101,217, 46,245,142,213,237, 87,215,123,215,237,127,244, 6,197,215,173,117,248,154,
-248, 50, 54, 34, 78,187,125,251,182, 95,167, 78,157,144,157,157,253,218, 76, 56, 93,199,101,109,109, 13,177, 88,140, 91,183,110,
- 1, 64,154, 33,178,171, 87,175,254,128,234,172,203,168,113, 27,132,245,253,160,207,173,208, 33, 93,176, 47,106,127,185, 68, 34,
- 9,198,171, 28, 58,132,151,151,215, 68,158,128, 59,214, 55,200, 59, 28, 12,243,221,229, 83, 55, 87, 24,171,161,111,155,192, 74,
- 0, 10,221,172,195, 55,156,125, 8,146, 36,199, 12, 31, 62,156, 76, 78, 78,198,216,177, 99,177,119,239, 94,131,199, 78,156, 56,
- 17, 7, 14, 28,192,240,225,195,201, 69,139, 22, 25, 76,239, 80,215, 90,162,254,203,110,202,212,103,143,240,251,129, 95, 12,198,
- 32,185,185, 85,199, 99, 21, 22, 22,233,191,235,210,201,184,103,132,209,170, 47,198, 61,184, 23,214,189,119,127,126, 78, 65, 25,
- 24,173, 10, 74,217,171,223,203,203, 10,192,106,149,224, 91, 57,193,195,197, 30, 15,111, 95, 80, 83,106,229, 69, 99,156,179,135,
- 7,226,179, 97, 1, 0,203, 96,196,252, 95, 17,251,227, 44,253, 8,186,231,168, 57,184,124,232,123,179, 99,252,234,131,199,227,
-225,241,227,199, 10, 67,214, 44, 14,135, 99, 78, 78,174, 26,171,163, 6,114,185, 2,114,133,242,175,108, 59, 92,221,221,221,127,
-114,116,116, 20, 25, 16, 82,174,174,174,174, 63, 57, 59, 59,139,204,117, 29, 26, 18, 89, 53,121,181, 30, 76,153, 50,165, 81, 98,
- 75, 40, 20,182, 72, 75, 75,211, 39, 43, 53,246,174, 86,171,209,183,111, 95,115,147,151,158, 2,240,194,211,211,243,102,187,118,
-237,236,159, 63,127,142,253,251,247,243,121, 60,158,183,174,253,144,201,100,224,112, 56, 40, 44, 44,212, 0,248, 8, 38, 92,103,
- 42,149,234,250,245,235,215, 59, 12, 27, 54,140,243,228,201, 19,112, 56,156,234,114,133,133, 33,100,251,118, 36,206,157,139,240,
-204, 76, 40, 41, 10, 34,145, 8,231,207,159,167,228,114,249,117, 67,124, 98,177,120,103, 70, 70, 70,160, 72, 36, 2, 69, 81, 96,
- 24, 6, 36, 73, 18, 92, 46,183,167,131,131,195, 22, 0, 93,234,139,229, 85,148, 0, 0, 32, 0, 73, 68, 65, 84, 93, 44,183,144,
- 46,125,219,210, 90, 45, 45,201,126, 46, 53,117, 2,138,139,139,113,234,212, 41,116,235,214, 13,225,225,225,200,205,205, 69,122,
-122, 58,222,125,247, 93,253, 49,143, 30, 61, 66, 92, 92, 28, 90,181,106,101,218,162, 71,106,208,170,109, 11,240,249,252,106,107,
- 14,143, 95, 51,240,225,233, 45, 89,124, 30, 31, 60, 46, 15, 34,177,200,108,139, 22, 65, 16, 32, 73, 18, 4, 65, 64, 44, 22,235,
- 6,217, 76,211,166, 77, 37, 37, 37, 37,158, 0, 56, 98,177, 24, 52, 77, 27, 29,180, 48, 44,235,199, 47,186,149, 55,127,225,122,
-183,168,168, 75,184,116,169, 16, 36, 73,194,211,211, 19, 36, 73, 34, 35, 35, 3, 36, 73,194,199,199, 7, 36, 73, 34, 55, 55, 87,
- 39, 18, 75, 97, 88, 12,235,159, 27,130, 32,244, 34,139, 47,224,235, 45, 91, 0, 80, 86, 86,166, 28, 62,124,248, 63, 85, 42,213,
- 84,188,217,170, 39, 22,252, 7,131, 32,136,251,255,142,223, 54, 2, 67,107,132,213,107, 65,241,198,110,198,119,187,119,239,190,
-125,220,184,113,253, 55,111,222, 12, 27, 27, 27, 72, 36, 18,125,135, 40, 16, 8,208,172, 89, 51,148,148,148, 96,199,142, 29,120,
-249,242,229, 21, 0, 51,204, 45,145, 68, 34,185,243, 44, 62,173,184,239,232,238,206,129,221,219, 58,228,164,189,236, 38,145, 72,
-110,213,136,172, 95,199,205,123,119,106,223,145,161,224, 11,120,200,121,150,143,203,167,110,254,191, 92, 76, 14,135,195, 33, 8,
- 2, 99,199,142, 53,235,248, 15, 63,252, 16,215,175, 95,135, 49, 55, 35,163,179,104,201,149,168, 82,252,117, 3,171,207,103, 77,
-196,231,179, 38,234,197,132, 57,174, 23, 0,240,242, 58,104, 68,104, 81,155, 99, 15,238,248,164, 99,104,152, 79,231,192, 22,184,
-251, 32, 30,251,182,191, 50, 50,236,250, 97, 37,190,221,117, 5,205,220, 29, 65,169,170,112,246,240,207,249,148, 74,190,249, 13,
-141,114,213,226,150, 32,192,178, 76,163,234,174, 19, 79, 60, 30, 15, 65, 65, 65, 6, 45, 90, 37, 37, 37, 10, 83,214, 44,253, 53,
- 82,107, 80, 89,165,128, 66,254,151, 9,173,144,158, 61,123, 94,140,137,137,113,118,115,115, 67, 94, 94, 94,125,161, 21,210,163,
- 71,143,139, 49, 49, 49,206,238,238,238,200,201,201, 49, 59,173, 72, 3, 34, 11, 82,169,148, 40, 45, 45,101, 28, 29, 29, 27, 37,
-182, 72,146,132, 74,165, 66, 74, 74,138,185,127,107,246,108, 46,123,123,251,221, 7, 14, 28,176, 47, 42, 42, 2,135,195, 65, 74,
- 74, 74,157, 89,135,186,215,175,191,254,202, 31, 49, 98,196, 47,101,101,101, 70,167,181,105,181,218,141, 19, 39, 78,156,150,155,
-155,235,232,230,230, 6,137, 68, 2,129, 64, 0,150,101, 65,244,237,139, 94, 47, 94,128,162,105,136,197, 98,164,166,166, 98,231,
-206,157, 85, 53,169, 98, 26, 52,144, 17, 4,225,199,231,243, 49, 97,194,132, 58, 59,246,236,217,131,247, 58,115, 58,187,218,115,
- 43,181, 16,169, 10,196,239,156,229,112, 56, 68, 72,215,126,109,186,246, 30, 26,244, 52,241,238,115,105,193, 75, 83,141,146, 70,
-173, 86,195,223,223, 31,247,239,223,199,165, 75,151,208,175, 95, 63,132,135,135, 35, 33, 33, 1, 23, 46, 92, 64, 92, 92, 28, 8,
-130,128,179,179,179, 46,252,194,104, 12,134, 90,174, 69, 97, 94,241,107,214,171,250,219,124, 62, 31, 42,133,121,147,251,158, 60,
-121,130,251,247,239,235, 83,203,112, 56, 28,237,164, 73,147,192,178, 44,155,145,145, 1, 91, 91, 91,118,202,148, 41, 52,151,203,
-213,230,230,154, 23, 31,108, 99, 99, 3, 63, 63,191, 58, 3, 31,221,171, 87,175, 94,120,240,224, 1, 72,146, 4,151,203,133,155,
-155, 27,110,222,188,105,242,198,215,137, 42,157,200,226,242,121,117, 68, 31,195, 48,178,132,132,132, 79, 0, 36,212, 88,178, 0,
- 75, 30, 45, 11,254,255,112, 26,175, 47, 44,109,210,162,245, 2,192,128,253,251,247,143, 63,126,252,248,198, 45, 91,182,184, 70,
- 68, 68,160,180,180, 20, 62, 62, 62,240,244,244, 68,108,108, 44,206,156, 57, 83, 68,211,244,124, 0, 13,153,126, 6,192, 72,206,
-154,220,231,146, 24, 85,101,229,103,157,194, 3,112,229,208, 31, 81, 30, 30, 30, 51, 56, 28,206, 23, 83, 22,191, 63,181,207,240,
- 46, 72,141,203,192,157, 11,143, 81,144, 93,100,146,179,126, 48,188,131,131,195, 52, 43, 43, 43, 1, 26,152, 74,220,192,172, 67,
- 61, 39, 77,211,180, 90,173,198,193,131, 7,205, 18, 91,251,247,239,135, 82,169, 4,253,186,127, 85,207,201, 50, 44,193,229, 9,
-225,213,204, 31, 20, 85, 5,134,121,227, 9,149,122, 78,221, 8,244,185, 64, 0,183,162, 34,220,189,123,215, 60,201, 61,116,168,
-169,107,164, 84, 43,101, 19,190, 95,179, 32,118,102,228,119, 14,253,186,119,192,215, 27,246,128,162,118,129,228,144, 16, 11,249,
-232, 20,218, 3, 28,168,240, 83,244,151,101,242,138,210, 9,120,125, 41,158, 58,156,172, 49, 15, 11, 11,208, 12,131, 75, 55,238,
-153, 93,247, 90,110, 14,112,185, 92, 60,123,246, 76,209,208,108, 67, 14,167,218,205,169, 27,169, 27,227,100, 25,134,224,241, 69,
-104,230,211, 14,106, 85,229, 95,114,141,220,220,220,190, 60,118,236,152,179, 46, 85, 66, 66, 66, 2, 8,130, 72,121,101,113,172,
-222,175, 80, 40,144,152,152,136,132,132, 4,160,122,134,155,217,207,145,206,146, 37,149, 74, 9,137, 68, 2, 43, 43, 43, 50, 33,
- 33, 65, 21, 28, 28,252,192,196,243,173,231, 84, 42,149,153,134,226, 39,149, 74,101, 19,145, 72,196,171,215,225,121,181,110,221,
- 58,181, 1, 23,226,107,229, 44, 47, 47,191,187,112,225,194, 78, 67,134, 12,193,151, 95,126, 89,226,232,232,104,251,211, 79, 63,
-113, 57, 28, 14, 49,115,230, 76,186,176,176,176,242,231,159,127,182, 63,126,252, 56,202,202,202,110,153, 81,119,153, 82,169,252,
-164,123,247,238,123,206,157, 59,103,229,231,231,135,138,138, 10,176, 44,139,221,187,119, 99,230,204,153, 16,137, 68, 72, 77, 77,
-197,123,239,189, 39,151,203,229,159,224,245,216, 73, 29, 39, 65, 16, 4,203, 48, 12,150, 45, 91,166, 79, 78,170, 75, 86,106, 43,
- 38,176,115, 94, 75,235, 57, 63,151, 91,143,255,250,231, 73, 0, 64,107,181,244,211,196,187,207,119,255,248,245, 85, 62,159,127,
-195,196, 53, 90, 50,103,206,156,159,134, 14, 29, 42,182,177,177, 65, 73, 73, 9,110,222,188,137,219,183,111,227,206,157, 59, 80,
-171,213,112,118,118,134,163,163, 35, 36, 18, 9,158, 60,121,162, 0,176,196, 24,167,192,138, 7,223, 54,186,153,191,213, 22, 44,
- 94,173,217,134,181,173, 91,124, 30,207,172,231,168,119,239,222,232,218,181,171, 78,172,208, 89, 89, 89, 18,149, 74, 69,212, 18,
-253,185, 58, 65,238,237,237,173,221,187,119, 47,107,138,147, 97,152,215,196,116,175, 94,189,244,131,194,174, 93,187,130,195,225,
- 32, 62, 62,222, 80,104, 74, 29,206, 59, 59,183,226,220,170, 37, 16,240,249,152,159,146,163, 23, 93,123,250,117, 4, 79,192, 71,
-192,176, 81,181,127,187, 13,213,238, 66,212, 19, 89,198,250,163,183,126,222, 45,156,127,123, 72,240, 6, 75,240,232,176, 79,169,
- 84,158,253,248,227,143,163, 67, 66, 66, 62,222,180,105, 19,193,231,243,177, 98,197, 10, 54, 47, 47,239,183,154, 17, 67,233,155,
-148,138,101,217,223,174, 29,189,245,233,228,200,225,196,188,205, 83,122, 62,184,156,248,164,125,119, 63,180,239,238,135, 7, 87,
-146,241,227,226,253,123,105, 13,189, 44, 63, 63, 63,219, 4,149,106, 64,143,182,245,131,225,157,175, 95,189,236,220,216, 89,135,
- 12,195,196,236,223,191,127,246,200,145, 35,201,123,247,238,189, 22,147,165, 91,118,135, 97, 24, 92,188,120, 17, 20, 69,225,183,
-223,126, 99, 24,134, 49,156, 71, 11,236,137,239, 55, 71, 79,254,237,247, 19, 2, 1,159,192,237, 27, 71, 80, 94,106,124, 86, 23,
-159,207,195,175,187,143, 82,124, 62,239,105, 67,251, 41,138,202,185,124,249,178,251, 96,154,230,145, 36,217,144,128,106, 16, 49,
- 49, 49, 26,134, 97,178, 76, 28,118,171,224,101,246,176,213, 95,126,180,127,232, 7, 31,187,119,239,222,147,231,226,230, 14,130,
- 32, 80, 88, 80,136,212,196,123,154,179, 71,126, 41,168,146,155,183, 4,207, 71,235,175,233, 99,178, 0, 32, 98,230, 22,125,124,
- 22, 0, 12,155,178, 16,125,187, 5,130, 48,199,244,244, 74,100, 49, 90,173, 22,214,214,214,208,106,181, 13,166,120,176,183,183,
- 23, 43,149, 74, 69, 77, 34, 70,163, 35,102, 22,248,203,175, 17, 77,211, 1,165,165,165,168,170,170,194,237,219,183,217, 53,107,
-214, 72,165, 82,169, 62,104, 83,163,209, 4,148,148,148,160,178,178, 18,183,110,221, 98,163,163,163,165,197,197,197,139, 27,243,
- 12,137,197,226,206, 92, 46,247, 65,105,105, 41, 99,101,101, 69,106, 52, 26, 77,112,112,176, 80, 44, 22,155,189,160,186, 68, 34,
- 25, 98,104,159,175,175,111, 90, 90, 90, 90,107,154,166,107,175,129,200, 87, 42,149,126,221,187,119, 55,167,253,152,179,107,215,
- 46, 28, 61,122, 52,180,162,162, 98, 98, 86, 86,214, 30, 0,161, 92, 46, 23,241,241,241, 41, 74,165,114,220,200,145, 35,119,151,
-150,150,222, 69,245, 18, 60,230,224, 92,106,106,234,132,128,128,128, 93,223,124,243,141, 77,120,120, 56,215,203,203, 11, 93,186,
-116, 65,106,106, 42, 78,159, 62,173,217,182,109, 91,149, 92, 46,255, 8,192, 69,227,151, 29,132, 86,171,133, 64, 32,208,191,132,
- 66, 33,248,124, 62,100, 10, 22,211, 55,164, 43,180, 16, 43, 54,174,248,228, 52, 11, 16,249, 57,233, 69,133,249, 57,119, 9,130,
-184, 33,145, 72,202, 13,156, 51,129, 82,169,236,192,178, 44,135, 32,136,205, 20, 69, 77,153, 53,107,150,231,218,181,107,209,182,
-109, 91, 20, 21, 21,193,218,218, 26,126,126,126,144, 74,165,184,119,239, 30, 45,151,203,183, 3, 88,137,154,248, 17, 67, 40, 43,
-170, 64, 83, 15,239, 58,150, 79,150,101,193,210,128, 70, 69,131,166, 88,168, 9, 13,120, 60, 13,248,124,190, 57, 46, 21,150, 97,
- 24,148,122,122,130, 73, 76,196,157, 59,119,192,178,172, 65,171,154,191,191,191, 89, 22, 82,154,166, 95, 19, 90,119,239,222, 5,
-135,195, 65,207,158, 61, 17, 23, 23,167,183,104,153, 21,151,200, 50, 16, 8, 5,117,220,133, 4, 65,128, 47, 16,128, 39,224, 55,
- 52, 27,199, 98,197,178,224, 63, 6,230,250,177,203, 0,204,120,244,232,209,158, 62,125,250,196,178, 44,203, 67,181, 63,242,143,
-183,249,243,252,252,252,135,183, 78, 63, 92,228,222,212, 49,250,157,137, 61,209,182,131, 15,104, 45,141,155,103,226,241,219,218,
-227, 7,114,115,114,167,192,140,181,207, 24,134,185,218,163,115, 91, 18,181,114,117,123,121,121, 49,111, 50,235,176,188,188,124,
-249,252,249,243,241,229,151, 95,190,201,172,195, 6,241,248,137,116, 6, 1,182,233,176,119,122, 13, 6, 65,178,106,181,202, 72,
-195, 7,125,230, 82, 62,159,247,244,126,130, 36,184,161,227,164, 82,233,224,169, 83,167, 94,228,114,185, 45, 26,115,206, 25,134,
-201, 42, 40, 40,232,111,250, 72,237, 77,149,162,194,239,212,129, 29,115,207, 29,221, 53,152, 97,232, 86, 4, 0, 14,151,255, 92,
- 67, 81,231, 85,138,138, 77, 48,115, 81,233,117, 51,194, 48,231,251, 11,216,250,229, 48,204,138, 62,132, 95,150, 77,199,162, 13,
-251,241,221,151,115,176,102,203, 63,241,245,156, 9, 24, 61,126, 42,195, 18,228,159,230,214,131,195,225,156,219,177, 99,199,228,
-233,211,167,235, 39, 45,176, 44, 91,167, 17,214,104, 52, 10,134, 97,176,125,251,118, 6,192, 57, 99,124,117,175, 17,193, 26,139,
-151, 50,247, 26, 85, 84, 84,124, 20, 22, 22,182, 27,128,144,101,217,103,165,165,165,255, 0, 94, 45, 13, 85, 89, 89,249, 81,247,
-238,221,119,179, 44, 43, 36, 8,226,181,253,230,160, 38,213, 67,103, 71, 71,199, 7, 53,150, 44,225,155, 4,196, 27, 59,213, 70,
-220,138,230,184, 16, 25, 0,179,106,101,124, 95, 27, 26, 26, 90,123, 81,233,148,210,210,210,206,111, 80,174,139, 10,133, 34,112,
-217,178,101,115, 69, 34, 81, 95,185, 92,222, 6, 0,172,173,173, 83, 85, 42,213, 85,133, 66,177, 9,166,115, 83,169, 25,134, 73,
-213,106,181, 65,174,174,174,213, 51,106,107,196, 22, 0,156,124, 64, 63, 0,232, 46,213, 70,241,125,102, 23,236,204,153, 51,205,
- 29, 29, 29, 7, 17, 4, 49,154,101, 89,127,153, 76,166, 90,182,108,217,173,152,152,152,242, 22, 45, 90,188, 51,116,232, 80,194,
-201,201, 9,247,239,223,103,139,139,139,143, 0, 88, 12, 51,102, 90, 51, 12,147,181,110,221, 58, 52,246,121, 55,182,159,162,168,
-252, 51,103,206,184, 12, 41, 44,228, 50, 12,131, 97,195,134,213, 17,112,245,241,244,233, 83,168, 84, 42,147,201, 28,203,202,202,
- 16, 26, 26, 90,103,128,170,123,101,101,101,193,201,201,169,206,255,152, 26, 99,169,202, 75,209,111,238, 66,160,102, 70,169, 14,
-213,150, 44, 22,172,218,162,171, 44,248,207,197,191,122,241, 77,179, 76,139,158,158,158, 99, 69,214,194,207,125,218,120, 6,231,
-165, 23, 38,203,202,229,123, 37, 18,201, 14, 3, 13,185, 89,156,141, 76, 88,106, 49,255,254,139, 56, 95,229,209,162,193,178, 52,
- 88,134, 5,203, 50, 96, 24,186,122,193,107,150, 1, 75,211, 4, 65,224, 79,181,194,104,102,240,250,229,116,116,113,113, 89,201,
-178,236, 16, 14,135, 67,214,110,168,107,127,174,177,100,157,147, 74,165, 95, 55, 96,121,253,175, 59,159, 49, 49, 49, 13,138,127,
-115,103, 29,142, 25, 51,134,110,228,179,121,213,218,218,218,179,161,125, 85, 85, 85,217, 18,137,100,208,127,200,249,172, 61, 99,
-176, 49,156,141,158,117,104,138,211,199,199, 71, 72, 81, 84, 71, 0,126, 4, 65, 56, 0, 40,161, 40,234,124, 81, 81, 81, 1,128,
-206, 0,150,213,252,102, 21,128, 7,255,230,231, 93,236,226,226,178,139, 36,201,166,230,252, 88,171,213,170, 75, 74, 74, 38,215,
- 27, 16,188,114,193, 3, 28, 17,159,127, 15, 36,217,164,161,231,209,208,103,176,108,110,149, 66, 17, 74,188,106,243,245,156,206,
-206,206, 15,184, 92,110, 83, 51,202,246,178,184,184,184,179,165, 77,254,175,230,252,111, 70,253, 32,120,131,153,226,255, 21, 66,
-203,194,105,225,180,112, 90, 56, 45,156, 22, 78, 11,167,133,243,127, 93,104, 53,184,109,153, 2,107,129, 5, 22, 88, 96,129, 5,
- 22, 88,240,118, 56, 93, 79,108,157,214,125, 32,140,168,210,198,152, 4,223, 68,217, 94,178,112, 90, 56, 45,156, 22, 78, 11,167,
-133,211,194,249,183,227,180,224, 47,132,197,172,106,225,180,112, 90, 56, 45,156, 22, 78, 11,167,133,243,127, 29, 6, 93,135,164,
-229,220, 88, 96,129, 5, 22, 88, 96,129, 5, 22,252,107, 96,182,208,178,118,247, 15,112,241, 9,222,237,216,180,125,130, 99,211,
-246, 9, 46, 62,193,187,173,221,253, 3,254,166,231, 77, 12, 96, 60,151,203,189,232,225,225, 81, 1, 3, 75,239,252, 15,192, 14,
-192,104, 84,231,247, 25, 1,192,234,175, 36, 15, 7,184, 99,129,207, 39, 1,217,147,128,236,177,192,231,225,255,131,113,131, 43,
-102,123,134,221, 56, 59,254,236,138,217,158, 97, 13,238,159,239,233,124,231,194,152,239,215,126,238,229,244, 23,253,165,173,155,
-155,219, 78,119,119,247, 76, 55, 55,183, 44, 55, 55,183, 93, 0,236, 45,205,157, 5, 22, 88, 96,193,191, 12,186, 24, 45,221, 75,
- 31,163,197, 5,128,216,216,216,112, 0,215, 0,244,137,136,136,184, 94,255,215,142,222, 65,211, 91,181,108,245,229,234, 21,139,
- 9, 15, 55, 23, 43, 45,205, 80, 25,153, 57,237,150,175,142, 62,156, 39,224,110, 44,205, 78,252,229, 13, 10, 69,112, 56,156,177,
- 66,161, 48, 2,128, 78,176,165,168, 84,170, 88,154,166, 15,194,188,105,218,112,119,119,191,193,225,112,154, 55,230,143,105,154,
-206, 46, 40, 40,232,249,134, 39,115,140,183,183,247,174,240,240,112,171,208,208, 80, 8, 4, 2, 44, 91,182,108,190, 68, 34,217,
-100, 46,129,163,163,175, 45, 37, 20,125,193, 21, 8, 6,178, 26,117, 16, 11, 22, 32,133,137,140, 86,117,153,175, 82,109, 44, 45,
- 77,151,153, 73,181, 24,192,148,154,115,245, 11,128,117,111,115,151, 76,238, 0,141,134,174,190, 39,248, 92,208, 39, 94,216, 95,
- 91,178,100, 9, 55, 34, 34, 2,191,252,242, 75,207,157, 59,119,126, 34,147,201, 46, 3, 56, 9,224,249,219,222,149,238,192,140,
-238, 61,123,126, 63,121,254,124,142,226,198, 13,124,191,107,215,102, 84,231, 91,218,218,216,123,137,207,199,104, 23, 23, 94, 4,
-203,162, 35, 1, 16, 4, 16, 47, 45,102,206, 80, 20,125, 16,102,228, 98, 51,130,241,168, 59, 29,127, 95, 99, 9,202,159,179, 75,
-133,195, 2,122,149, 63,191,186, 20,192, 59,245,247,107,149,162,201, 44,167, 89,132,130,141,203, 1,176,225, 45, 79,171,149,171,
-171,107,194,137, 19, 39,154,134,134,134,114, 1,224,193,131, 7,147, 34, 34, 34,250, 73,165,210, 32, 0, 21,255,166, 70, 72,196,
- 37,201,207, 5, 60,222, 64,154,166,219, 3, 0,135,195,121,172,214,104, 46,106, 25,102, 43,204,204,201,102,129, 5, 22,252,239,
-194,148, 22,249, 15,135,193,204,240,186,202,177,181,223,107,195,218,173,109,187,110,253, 71, 61, 45,151,201,149,153,153,185,165,
-243, 62, 95,115,241,147, 57,235,143,111,248, 57,246,204,245,187, 41,119, 2, 66, 7, 37, 91,187,181,109,103,128,218,144, 15,215,
- 91, 44, 22, 63,220,182,109, 27,149,154,154,202,150,149,149,177, 79,159, 62,101,143, 28, 57,194,126,250,233,167, 74,177, 88,252,
- 16,128,183, 57,156,238,238,238, 5, 79,175, 92, 96, 95, 38,196,177, 89, 15,238,178, 26,141,134,165, 40,138,165, 40,138, 77, 62,
- 23,203, 38,156, 60,202,198, 31, 57,200,170,213,106, 86,173, 86,179, 42,149,138,109,217,178,101,158,153,229,172, 15,175,192,192,
- 64,117,108,108, 44,123,248,240, 97,118,254,252,249,108, 72, 72, 8, 13, 96,166,185,117,183,118,243,235,107,219, 36, 88, 58, 61,
-114, 43,117,250,214,121, 54,233, 69, 60,155,244, 34,141,141,185,148,194, 78, 89,176,133,178,109, 18, 34,181,118,243,235,107,170,
-238,142,142,142,221, 8,130, 96,117, 0,192, 54,111,222,188,178,246,203,219,219,187,206,171, 89,179,102,149, 45, 90,180,120,238,
-236,236,220,177, 33,206,113,237,193,178,201,251, 88, 54,121, 31,187,164, 55,216,164,164,164, 59, 44,203, 94,211,189, 20, 10,197,
-181, 99,199,142, 93,123,255,253,247,175, 1,120,207,200,121, 50,235,124, 78, 2,178,101, 39, 78,176,236,166, 77, 44, 27, 30,206,
-166, 0,236, 36, 32,187,145,156, 45, 61, 60,120,241,235,215,125,162, 62,113,226, 55,246,236,217,211,236,153, 51,177,236,241, 99,
-187,216,205,155, 62,167,220,221,121,137, 0, 90, 55,130,147, 11, 96, 13,128,141,168,182, 92,166, 74,165, 82, 54, 63, 63,159, 5,
-144, 90,243,221, 70, 87, 87,215, 13,104,216,250, 54,160,182, 37,107,238, 16,143,179, 31,188,211,147,149,149,231,177, 31,188,211,
-147,157, 59,196,163,142,101,107,136,175,175,237,172, 97,237,165, 73, 15,246,210,179,134,181,151, 14,241,245,181,125,195,243, 73,
-160,122,157,208,109, 87,174, 92,209,178,181,160,209,104,216, 61,123,246,208,142,142,142,191, 53,130,179,141,171,171,107,150,147,
-147, 83,106,237, 47, 93,131, 71,116,247,239, 53,105,185,115,187,247,195, 27, 81,206, 80, 17,159,255,242,226,161,159,232,226,236,
-199,172, 90, 81,192,150, 63,139, 99, 95,166,220, 97,247,236,216,168, 17,112,185, 47, 1,132,190,205,189,212, 72, 88, 56, 45,156,
- 22,206,255, 64, 78, 99, 90,228,191, 25,220,250, 21,172, 15,161, 80, 16,185,124,201, 66,162,172,184, 76,161,172,144,169, 53, 74,
-165,146,228,179,202,199,201, 47, 10, 73, 46,167,108,238,156,217,182,145,139,150, 68, 86, 1, 19,204,252, 79,239,144,144,144,123,
- 71,143, 30,117,115,114,114, 66,121,121, 57,138,139,139,113,239,222, 61,176, 44,139,145, 35, 71, 10,187,118,233,210,113,233,178,
-101,183, 95,230,230,134,193,112,199,251, 74,188, 56,185, 96, 93,207,234,181,104,191,206, 44,174,238,117, 8, 2, 59,199, 68,232,
-143, 89,249,178,122,181, 12,145, 72,164, 95,144,248, 13, 16,214,191,127,127, 62, 0, 76,155, 54,173, 66, 38,147, 69,213, 88, 56,
-204, 90,105,213,218,205,175,175,139,167, 87,236, 79,219,215,137,219,183,242, 3,165,209, 34, 43, 63, 15, 92,158, 3,154, 54,229,
- 99,234,132,129,188,222,221,157, 92,214,172,218,121, 58,159,193, 8,121, 81,218,121, 67, 92, 14, 14, 14,123, 14, 30, 60,136, 67,
-135, 14, 1, 0, 82, 83, 83,225,231,231,103,109,170, 12,137,137,137,190,239,189,247,222,129,226,226,226,214,166,142,173,159, 24,
- 95, 40, 20,162,103,207,158,104,215,174, 29, 78,156, 56,209,167,198,178,245, 86, 80,220,184, 1,155, 71,143,128,235,111, 52,120,
-105,217,169,147,207,157, 51,167,247,186,156, 62,147,130, 13, 27,118,225,249,243,106, 67,155,175,175, 47,198,143, 27,195,123,252,
-248, 86,224,232,209,227,111,253,241,199,243,158, 53, 66,201, 20,190,249,249,231,159, 23,183,104,209, 2,163, 71,143, 30, 19, 24,
- 24,232, 97,103,103,135, 29, 59,118,192,211,211,211, 87,173, 86, 63, 59,113,226,132, 87,126,126, 62,102,207,158,141,130,130,130,
-249,134,136,250, 12,238,179, 84, 56, 44,160, 87,219, 78,147, 97, 99,231,137,159,247, 31,196,211,135,123,122,169,168,148,165,124,
-250,250, 68, 5, 43,156, 34,205,182,137,108,222, 57,220,185,117,224,123,240,233, 20,231,162,164,255,120,177,116, 96,203,104,174,
- 72,185,103,197, 6, 73,241,107,164,163, 99, 56, 65, 21, 79,156, 18, 47,162, 24, 88,193,232, 4,150,222, 90,203,226,189,222,189,
-123,235, 47, 92,102,102, 38, 84, 42, 21, 2, 2, 2, 72,181, 90,221,215,204,243,218,102,208,160, 65,127,158, 57,115,198,185, 77,
-155, 54,210,146,146, 18,253, 14, 15,103,135,193,215,143,110,158,189,230,251,127,250,255,206, 18,101,210,148,227,143, 77,112,133,
-246,232,214,233,210,217,163,123,109,136,202, 28, 8, 28,138, 0,166, 24,233, 7,126, 5, 97,229,132,177,159,206,227,246,237,223,
-175,201,192,119, 70, 93,122,154,246,188, 63,128,251,150,113,189, 5, 22,252,173,173, 90,236,255, 90,157,244, 66, 43, 34, 34,130,
-104,168,130, 12,203, 4,187,187, 57,139, 55,175,223,125,159, 67,169,213,214, 14,246,106,158,189, 29, 67,216,218,115, 40,181,166,
-210,199,215, 71,192,176, 76,176, 1,254,250, 83, 60, 9,177, 88,124,244,228,201,147,110, 60, 30, 15, 12,195,192,213,213, 21, 25,
- 25, 25, 40, 43, 43,131, 76, 38,195,243,148, 20,180,240,110,134, 21,145, 11, 61,103, 47,140, 60, 42,151,203, 59,163,174, 27,241,
-181,105,163,180,166,238,186,209,186, 37, 88, 94, 27,242,215,124,215,192, 62,115,167,162,102,100,103,103,195,198,198, 6, 65, 65,
- 65, 54, 55,111,222,252,195,136,200,170,195,233,232,232,107,203, 8, 5,135,182,253,180, 76, 76,105, 18,145,156, 94,130,182, 45,
-122,193,221,217, 27,121, 37,106,220,185,119, 18,137, 9,251,208,170,137, 55,102,126,218, 79, 20,189,238,240, 65,190,182,133,119,
- 89, 89, 70, 69, 67,156, 21, 21, 21, 54, 45, 91,182,132,183,119,245,186,103, 52, 77, 35, 57, 57, 25, 52, 77,235,183,107,191,239,
- 62,114, 5,218,138, 44, 76,158, 52, 9,197,197,197, 54, 13,113,242, 56,208,206,251,100, 60, 87,204, 3, 4,214, 78,234,202,202,
- 74,253, 50, 28, 20, 69, 33, 62, 62, 30, 97, 97, 97,225, 49, 49, 49,166, 84,145, 89,231,147, 2,190,251,254,183,223,182, 76, 40,
- 47, 39, 1,224, 23,130, 96, 40,150,253,206,220,123,201,205,141,119,228,220,217,223, 93, 56,228, 19, 56,217,127,139,123,247,178,
- 64, 81,213,229, 45, 46, 46,196,172,207, 43,192,231,217,226,196,137,127, 58, 7, 4,244, 60,146,159, 79, 5,161,174, 27,177,161,
-114,138,206,158, 61,139, 89,179,102, 33, 57, 57,217, 75,183, 70,155, 88, 44,198,250,245,235, 57, 1, 1, 1, 94,214,214,214, 56,
-119,238, 28, 10, 10, 10, 8, 99,229,188,118,254,218,234,242,231, 87,151,230, 19,231,134,252,188,255, 32, 62, 30, 55, 22, 30,108,
-250, 31,246,173,136,213,131,134,245,248,154,229, 52,139,176,182, 13,118,244, 11, 26, 6,190,192, 6, 51,191, 90,137,212,196, 83,
-142,114, 89,194,231, 4,157,211,108,197,134,152, 57,175,149,243,240, 24,122,218,190,155,157, 46,122,223,247,121, 20,255,201, 93,
- 73,220,206,132, 87, 66,203,151, 75,144,180, 61, 80,189,172,201,179,103,207,240,252,249,115,112,185, 92, 40, 20, 10,104,181,218,
- 6,203,233,229,229, 53, 67,171,213,126, 93,115,157,119,139, 68,162,143,246,238,221,235, 92, 91,104,187, 6,143,232,238,108,107,
-221,191,160,176,184,244,214,253,164,167,243,102,140,238,115,227, 78, 98, 14,197,123, 63,187, 60,225, 68,185,129,243, 41, 18, 11,
- 4, 71,206, 29,251,167,141,230,197, 21, 88, 7,244, 1,207,198, 15,180, 38, 23,242,210, 42,200,158, 75,160,250,233, 71,116,248,
-124, 46, 78, 29, 63,108, 19,216,190,115,140, 74,163,241, 3,160,126,131,103,179, 49,176,112, 90, 56, 45,156,255,153,156, 6,181,
- 8,203,178,157, 0,184,215,108, 22,215,232, 2, 23, 0, 69,168, 94, 81,192,189,166,237, 16,212,250, 89,253,237,218,199,214,223,
-174,253,185,184,230,179, 91,205,251,125,130, 32, 74, 76, 20,221, 19,213, 75, 19,158,174,121, 7,106, 92,137, 38, 3,143, 9,130,
-172,160,105, 70,200,119,117, 83, 78,251,160,127,251, 11,151, 30,196, 91,185,216,113, 7,247,233, 24,126,239,241,139,219, 4, 73,
-104, 8,130, 52, 43,238,131,195,225,140,221,188,121,115,123, 59, 59, 59, 48, 12, 3,123,123,123, 72,165, 82,168,213,106,148,151,
-151, 67, 37,171, 0, 37,171,192,163,156, 76,244, 8,239,131, 81, 67, 6, 5,252,243,248,201,177, 52, 77, 31, 48,198,235, 21,220,
- 81,111,201, 90,217,220,249,149,105, 34,167, 76, 47,186,190,237,232, 7,190,141, 13, 6,206,139,124,155,123, 32,238,244,233,211,
-103, 71,142, 28,249,206,130, 5, 11, 72,137, 68,114, 46, 35, 35,163, 7,128,100,147,162, 66, 40,250,226,179, 47, 34, 28, 29,109,
- 88,196, 92, 60,137,222, 29,199,193, 74,192, 65,113, 5, 5,130, 0, 82,146,142,130, 32,156,144,144, 42, 65,175, 14,118, 24, 52,
- 56,192,230,248,225,148, 5,120, 21, 31,244,218,165, 41, 45, 45, 69, 97, 97, 33, 52, 26, 13, 52, 26, 13, 70,143, 25,131,223,247,
-236, 65, 85, 85, 21, 20, 10, 5,212,106, 53,104,154, 6, 73,146,184, 24, 27,131,156, 23, 41,232, 30, 22, 6, 24, 88,122,105, 79,
- 60,120, 0,238, 60,125,250, 20, 41, 41, 41,120,249,242, 37, 68, 34, 17, 60, 60, 60,176,114,229, 74,168, 84,213,235,137,141, 25,
- 51, 38, 28,192,227,183,125,160,158, 3, 59, 51,104,122,233, 59,199,142,185,221, 60,118,140,185,115,234,212, 75,161, 76,182,195,
-156,223,242,249, 24,189,238,187, 79,219, 90, 91, 91,227,101,246,102,248,251,243, 49,127,174, 51,162,190, 45, 2, 0,204,158,213,
- 20, 93, 58,187,160,162,236, 48, 92,220, 22, 99,203,150, 57,173,166, 76,217, 56, 73, 46,167,119,155,160, 94,122,242,228,201, 81,
-126,126,126, 77,226,226,226, 8,129, 64, 0,177, 88, 12,177, 88, 12,145, 72,132,194,194, 66,100,100,100,176,235,214,173,203, 5,
-176,212, 24,209,138, 45,146,219, 0,222,153, 59, 4,103,159, 62,220,211,171, 9,231,197,163, 81, 51,123,102, 38,220,137,147, 93,
-184,120,115,149, 86, 41,202, 41,123,121,105, 97,203, 46,113, 46,159,127,249, 13,126, 92,183, 28, 79,239,222, 40,113,247,174,216,
- 42, 38, 84, 13,150, 51, 60,124, 5,215,211,221, 73, 59, 99,202, 40,135, 83,238,183,102,156,225, 18,210,252,162,135,235,145, 17,
-167, 16,182,238, 56,177,141, 47,169,190,114,229,138,184,119,239,222, 80, 42,149,122,203,228,222,189,123, 25,173, 86,123,181,193,
-123,147,162,190,206,205,205,245, 84, 40, 20, 24, 50,100,200,236,245,235,215, 91,235,214,147,163,105,186,142, 37,107,245,166,223,
-207,127,241,245,214,171,231, 15,124,235,181, 58,242,163, 62, 19,102,174,185, 10, 3,235, 72,114, 73,242,243, 83,199,118,121,136,
- 28, 53, 16, 59, 13,130,178, 64,129,167, 59, 63,134,188, 66,137, 46,171,191, 1, 32,128, 90, 67, 98,199,176,209,224, 57,123, 97,
-249,244,143,188,150,236,248,249, 83,134, 97, 54, 91,198,245, 22, 88, 96, 65, 61,184, 19, 4, 17, 11, 0,145,145,145,139,163,162,
-162,146, 8,130,136,101, 89, 54,162,198,128, 18,203,178,108,132,238,152, 26,113,246,218,182,238,216,250,219,245, 63, 47, 90,180,
- 40, 48, 58, 58,122,109, 88, 88,216,129, 91,183,110,189, 0, 96, 74,104, 13,173, 17, 86,175, 45,189, 67,234, 20,100,237,247, 58,
- 22, 45,134,185,241,236, 69,166,124,208,128,174, 77, 99,175, 63,190, 63,117,234,208,254, 99,135,245, 30,156,145, 93,156,210,202,
-199,195, 37, 41,233,177, 29,195, 48, 55,204, 57, 75, 66,161, 48,162, 95,191,126,220,210,210, 82, 88, 89, 89, 65, 42,149, 34, 55,
- 55, 23, 20, 69, 65, 89, 94, 6, 85,121, 25,148,101,165,160,202, 75,241,252,193, 61, 4,183,242, 21,214, 4,203, 27,133,206,234,
- 82,223, 82, 85,219,178, 37,176,181,133,208,214, 22, 68,227,221,134,239, 59, 56, 56,220,209,117,170, 20, 69,125,190,112,225,194,
- 34,134, 97,176,102,205, 26, 59, 27, 27,155, 24, 0, 66, 83, 36,182,174,156,136,176, 14, 65,228,147,140, 4,244, 12,153,140, 54,
- 45,223, 69, 70,129, 2, 69, 50, 10,133,101, 20,186,244,254, 1,205, 67,190, 65,179, 14, 81, 72,201, 42,129, 87, 19, 63, 18, 92,
-161,209,197,159,115,114,114,234,108, 31,216,191, 31,114,185, 28,173, 90,181,194,184,113,227,176,112,225, 66,140, 27, 55, 14, 94,
- 94, 94,152,240,193,123, 88,190,124, 57,242,243,243, 77, 21, 85,213,166, 77, 27,149,143,143,143,202,199,199, 71, 69, 81, 20, 42,
- 43, 43, 81, 86, 86, 86,255,124,207,105,236,137,116,115,115, 91,228,225,225,145,224,230,230,150, 36, 20, 10,207,196, 19,196, 19,
-165,143,143,123,143,225,195,137,118, 31,124,192,201, 18,139,137,235,128,141, 57, 92, 46, 78,188,161,125,251,189, 35, 40, 43,221,
-165, 55, 82,125, 52,213, 21,127, 94, 15,196,205, 63, 58, 99,214,231,173, 64,144, 34, 16,164, 0,242,170, 43,232, 26, 26,198,119,
-112, 32, 76,221, 75,227, 1,196,247,232,209,195,107,230,204,153,132, 80, 40,196,236,217,179,169,233,211,167,167,141, 27, 55, 46,
-237,242,229,203,180,143,143, 15,154, 53,107, 70, 52,107,214,204, 19, 64,124,205,111,140,194,174, 21,177, 90, 69,165,252,225,224,
-103,253,130,134, 75,247, 74,141,112,244,138, 13,146,226,213,219, 94,108,200,120, 42,247,125,122,247, 70,113, 90,226, 41, 38,227,
-254,181,162,188, 52,153,239,234,109, 47, 54, 44,222,154,215,224, 67,125,253, 58,152,163,177,215, 41,121,149,156, 59,124, 88, 95,
-249,140,105, 99,219, 56,217, 4,238, 69,147, 65, 33,205,189,155, 78, 88,190,118, 11, 53,253,211, 47,168, 95,126,221,197,202,100,
- 50, 84, 84, 84, 96,203,150, 45,218, 83,167, 78,229,210, 52,253,133,161, 49, 16, 0,104, 52, 26,204,152, 49,195,218,206,206, 14,
- 57, 57, 57,122,139, 40, 0, 72,164,197,143,111,222, 79,124, 50,239, 31, 99,194,171, 84, 42,213,249,107, 15, 82,218,249,249, 52,
- 37, 8,214,224, 68, 20, 1,143, 55,176,115,215,174, 28,150, 45, 3,193,245,198,243, 61,235, 80,145, 95,130,138,194, 18,112,120,
-214,208, 66, 8, 13, 35,128, 67,112, 40, 82,239,199,161,137,171, 59, 87,200,227, 13,182,244, 39, 22, 88,240,247,132, 49, 45, 82,
- 91, 44, 69, 71, 71,175, 53,182,191,214,187,186,222,182, 94, 72,213, 23, 97,181, 63, 3, 64,116,116,244, 90,150,101, 35,110,221,
-186,181, 31,128,194,204, 42,124, 82,235,221,252, 60, 90, 28,165, 58,106,193,194,165,112,180, 23,219,135,118,244,243, 56,113,238,
-250,131, 27,183, 30,164, 52,111,230,226,202,106,212,142,223,109,252,177, 41, 33, 87, 68,155, 89,136, 0, 23, 23, 23, 80, 20,133,
-103,207,158,225,229,203,151,160, 40, 10,218,170, 42,168,202,202,160, 44, 45, 5, 93, 37, 3,159,166,161,144, 22,194,217, 74, 4,
-188,154,145,104,194,242, 70, 52, 40,180,116,239, 34, 59, 59, 8,109,237, 64,242,120, 38, 87,138,175,133, 78,161,161,161,135, 18,
- 19, 19,187, 14, 24, 48, 96, 21,170,167,200,103,229,230,230,246, 95,182,108,153,202,221,221, 29, 51,102,204,104, 11, 96,178, 73,
-145, 41, 80, 7,248,120,180, 69, 27,223,201,104,222,172, 31,202,170, 52,144, 86,104, 80, 88, 70, 97,199, 15, 97, 56,242, 75, 40,
-254, 60,210, 11,137,231, 7,162, 76,227, 1, 27,175,247,193,210,234, 64, 99,156, 23, 47, 94,196,202,149, 43,177,106,213, 42,172,
- 89,179, 6,171, 86,173, 66,110,110, 46,130,130,130,144,157,157,141,179,103,207, 66, 34,145,192,197,197, 5,247,238,221,195,166,
- 77,155,240,231,159,127,154,172,180, 78,184,154,113, 76,163,124,233, 90,173,118,138,100,248,240,246, 5, 78, 78,237, 58,118,236,
-248,206,236,217,179,125,123,244,232,161,223,239,235,235,235, 45, 22,139,243, 81, 61,131,178,131, 49, 46, 6,232,232,234, 26, 4,
-181,234, 73,205, 53,230,129, 32, 68,232, 55, 48, 5, 61,122, 61, 0,165,225,131, 36,132, 32, 73, 17,180,218, 98, 56, 58,122,129,
-101,137, 32, 19, 69, 92, 38,149, 74,253, 46, 93,186, 68,102,100,100, 64, 36, 18, 1, 64,230,138, 21, 43,126,220,176, 97, 67,178,
-179,179, 51, 29, 27, 27,139,227,199,143, 35, 34, 34,130, 51,125,250,116,191,102,205,154,109, 55, 85,239, 21, 91, 36,183,247,109,
- 60,251, 33, 79,227,216, 65, 36,110,222, 2, 85, 54,239,127, 22,238, 98, 13, 0,231,210,211,101,110,222, 21,209, 85,178,132,108,
-135,166,149,223,158, 75, 55, 53,227,116, 5,243, 48,237,201,157,125,199,206,149, 23, 22,148,242, 58,182, 15, 84, 68,173,252,146,
-223,188, 69,235,239,150, 47,252,135, 71,110,133,168,108,224,236,179, 79,142,158,187, 87, 57,113,234,199,218,105,159,204, 84,158,
- 61,119,241, 24,195, 48,237, 97, 96,198, 33,195, 48,144, 72, 36, 72, 74, 74, 66,122,122, 58,164, 82, 41,138,138,138, 32,147,201,
-244,238, 70, 43, 89,197,233, 31,127, 59,245,200, 90, 44,182,234,218,222,207,251,110, 92,114,161,181, 88,108,229,215,194,187, 13,
-176,162,193,118,132,166,233,246, 34, 43, 49, 0, 2,101,137, 55, 80, 89, 90,137,202,178, 74,200, 74, 42,161,162, 56, 80,170, 72,
- 40,212, 36,124,194, 7,161,178, 74,137,202,226,114, 48, 52, 29, 98,233,110, 44,176,192, 2, 35,125,125,108,100,100,228, 98, 51,
-143, 53,219,189, 89, 95,120, 69, 70, 70, 46, 38, 8, 34,118,209,162, 69,129, 48, 60,161,170, 54,118, 54,240, 2, 96, 70,122,135,
-226,226,180, 74, 91, 34, 96,228,220,175,190, 62,187,255,215, 31,220, 84, 42,121,182,179,163, 13,109, 99, 37,112,153, 54, 99, 13,
-100,149,165, 35,170,204, 79, 71,128,210,210, 82,188,120,241, 2, 98,177, 24,124, 30, 15,180, 66, 1, 90, 81, 5, 69,105, 49, 72,
- 74, 5, 62, 77,195,201, 74, 12, 31, 47, 15, 52,119,247, 48,139,243,217,149, 11,250,192,247,218,238,194,117,161, 1, 16, 88,219,
- 64, 96,107,131,207, 98,175, 1, 0,248,124, 62,176,108,149, 89, 70,147, 38, 77,154,156,220,183,111, 31, 95, 42,149, 34, 62, 62,
-254, 17,128,114, 0,182, 0,152,148,148,148, 75,137,137,137, 17,126,126,126, 0,208,202, 20, 89, 69, 17, 73,107,180, 44,114,242,
- 51,145,241, 50, 14, 78,246, 45,193,179,106,131,194, 50, 10, 66,113, 75,104, 84,175,188,143,202,138, 44, 40, 40,142, 89,117, 87,
-171,213,208,106,181,208,106,181, 80,171,213,248,228,147, 79,112,243,214, 45, 28, 56,126, 25, 47,158,167,162,109, 11, 15, 76,154,
- 52, 17,161,161,161,184,117,235,150, 81,174,201, 29,160,105, 98, 3,238,198,119, 72, 8,108,156, 85,221, 22,158,191,107, 74,108,
- 17, 4,193,194,128, 43,178, 30, 54,132,133,133,181, 78,173,170, 66,210,147, 39, 24,176, 98, 5, 0,224,204,153, 51,117,234, 50,
-111,222, 60, 65,114,114,242,180, 7, 15, 30, 76,203,203,203,219, 8,160,225, 96,115, 22, 56,125,250, 54,254,241,143,100, 72,165,
- 82, 0,192,193,253,175,116,105,198, 11, 10, 67,134, 86,123,180, 28, 28, 28,176,113, 99,144, 89,231,147,166,105,236,220,185, 83,
-239, 46, 4, 0, 46,151,219, 99,222,188,121, 35, 27, 58,190,117,235,214,124, 83,156,115, 71, 55, 17,253,249,136,253,220,190,117,
-243, 64, 59,151, 96, 20,107,226,130,226,114, 37,179,230,142,110,178,121,211,225, 92,165,152, 80,237, 38,232,156,102, 92,145,114,
-143, 57,101, 76, 63,247,131,186,216,103,202,158,124,105,197,146,153, 31,143,119,182,115,112,171,250,229,199, 40, 71,146, 67,178,
- 39, 31, 80,101,129,190,206, 14,239,119,251,190,242, 31,115,151,197,169,181, 57, 51,145,115, 50, 21, 70, 82, 92,213,158,247, 9,
- 0, 0, 32, 0, 73, 68, 65, 84,208, 52,141,188,188, 60, 72,165, 82,100,103,103,163,168,168,218,253, 90, 84, 84, 4,134, 97,222,
-166, 65,132, 34, 59, 27, 89,199,126, 65,243,137, 19,209,101,213, 74,208, 12, 23, 10, 57,141,141,221,251,163,180, 92, 1, 21, 67,
-192,171, 83,119,124,124,230, 15,144, 44, 13,236,216,106,233, 73, 44,176,224,111, 10,115,210, 59,232, 4, 81, 84, 84, 84,196, 95,
-253,255,181,197, 86, 84, 84, 84, 82, 84, 84, 84, 99,254,171,190,203, 80,191,173,139,209,186, 86, 43, 0,237,181, 78, 83, 86,148,
-146,158,156,204,205,171, 82, 84, 89,185,187,185,170,172, 68, 66,166,188, 66,198,137,123,252,136,170,202,127,254,180, 17,245, 72,
- 73, 76, 76, 12,202,203,203, 67,118, 86, 22,180,138, 42,144, 42, 53, 88,165, 28, 3,122,118,135, 8,128,136, 36,192,103, 40,112,
- 57, 2,200, 42, 43, 0, 32,197,100,231,168,209,188,102,217, 34, 8, 2, 2, 91, 91, 8,172,173, 33,176,177,173, 99,225, 50,199,
- 98, 35, 20, 10,247,197,196,196,120, 54,105,210, 4, 43, 87,174, 68,211,166, 77,253,189,188,188,228,246,246,246, 98,119,119,119,
-180,107,215, 14,221,187,119,199,217,179,103, 1, 51,114, 74,105,180,162,132,167,153,232, 81, 84,114, 11,127, 92,251, 9,106,133,
- 10, 29,195,127, 2,197,109, 14,215,192,111,192, 60,219, 11,121,254,137,106,235,129,199, 48,188,204,206, 4,193, 17, 36,153,107,
-121,210,125,126,244,232, 17,246,159,184, 14, 79,159, 0,100,167, 61,193,147,171,151,112,211,213, 25, 62, 1,237,244,110, 32,131,
-101,164,193, 93,189,181, 58, 77,212,210,207,199, 11, 75, 74, 74,132, 78, 78, 78, 42,221,185,243,244,244,124, 27,177, 53,126,193,
-130, 5, 40,227,241,128,161, 67,193, 79, 79, 7, 69, 81,232,214,173, 27,186,116,233, 2, 0,232,214,173, 27,184, 92, 46,130,131,
-131,225,229,229,133,173, 91,183,142, 55, 36,180, 72, 2,241, 90,109,177,191,175,175,175, 94,104,237,249, 93,138,184, 7, 3, 65,
- 64,128, 45, 63, 62,211, 31,235,237,237,141,124, 73, 58, 8,130, 77, 52, 81,198, 85, 30, 30, 30,203, 60, 61, 61,125, 55,108,216,
-192, 17,137, 68,248,244,211, 79, 91, 86, 86, 86, 54,175, 49, 37, 99,209,162, 69, 0,128,229,203,151, 99,197,138, 21, 80,169, 84,
-114, 67,100,123, 54,182,247, 42, 44, 97,166,177,149, 86, 35,250,186, 52,111,223,111,240, 0,180,244,235,135,126,131,179, 1, 96,
-173, 19, 55,243,131,239,150, 56, 28,115,176, 37,118, 93, 56,119,113,121,207,240,126, 75, 22, 86, 94, 93,253,237,206, 50,147, 49,
-143,229, 89,187,101, 79, 5, 99, 55,253,176,253,247, 77, 95, 47,154, 35,202,150,170, 75,115, 75,217, 74, 27, 33,215,166,149, 59,
- 97, 51,235,171, 85, 47,242,242,210,231, 35,231,156,201,153,150, 12,195, 32, 61, 61, 93, 31,211,167, 84, 42, 81, 85, 85,133,156,
-156, 28,253, 61,163,176,182, 27, 50,115,234,176,144, 42,133, 66,126,247,113, 90,246,210,217, 19,194,170, 20, 10,121, 90, 70,118,
- 42,176,165, 65, 53, 70,146,228, 99,185, 76, 62, 64, 94,166,132, 52,254, 41,154,246,247,129, 70, 75, 64,173,165, 33, 45,150, 65,
-165, 5,104,146,135,192, 15, 38,129, 38,184, 40,202,203, 5,201,225, 60, 66,221,160,125, 11, 44,176,224,239, 3,163, 90, 68,103,
-209, 10, 11, 11, 59, 80,219,234,164,251, 12, 64, 5,227,161, 60,210,218, 98, 74,231, 78, 52,244, 63,245,120,205,197,107, 49, 90,
- 38,211, 59,232,254,179,153,125,133,215,186,229, 19,154, 50, 90,109,219,194,162, 2, 45,151, 43,228, 53,179, 87, 72, 74,178,205,
-255,119,149, 74, 21,123,233,210,165,225, 3, 7, 14, 20,166, 61,126, 4,117,121, 57,212,229,101,224, 49, 90, 56,137, 59,131,164,
- 84, 32,212,106, 52,241,103,160,148,137,113,253,102,162, 70,165, 82,197,154, 43,180, 72, 14,167,110, 92,150,141, 13,132,182,118,
- 16,218,216,212,119, 45,154, 18, 5, 86,131, 6, 13,234,223,173, 91, 55,176, 44,139,157, 59,119,130,162, 40, 1, 69, 81, 80,171,
-213,160, 40, 10, 21, 21, 21,248,253,247,223,177,109,219,182,155, 0,126, 51,217,153,105,213,151,206, 95,188, 18,250,209,132, 8,
-222,153,216,141,208,170,105, 40,136,166,168,170,210,160, 82,109, 5,218,121, 34, 80,112, 26, 28,174, 8, 97,193, 45,113,226,240,
- 81, 10, 90,213,101, 51, 85,120, 29,171, 80, 78,118, 38, 94, 62, 79,133, 77, 69, 62, 92,237,172, 32, 79, 79, 69,199, 73,147,223,
-200, 58,209,172, 89, 51, 48, 12,131,190,125,251,234,131,171,223, 84,108, 21, 23, 23,227,212,169, 83,232,214,173, 27,194,195,195,
-145,155,155,139,244,244,116,188,251,238,187,250, 99, 30, 61,122,132,184,184, 56,180,106,101,220, 72, 88, 84,162, 57,243, 50, 39,
-126,204,251,239,191,207,191,115,231, 14, 88,150,133,159,159, 29,236,108,173, 65,144, 66, 4, 4,184, 1,168, 30, 3,244,233,211,
- 7, 21, 21,233,218,210, 82,246,140,137,234,238, 3,112, 92,173, 86, 63,235,221,187,183,215,243,231,207, 49,119,238, 92,238,193,
-131, 7,117,166,100, 68, 70,214,157, 76,161, 80, 24,118,221,183,109,239,255,101, 75,173, 99,184, 72,220,188,133,157, 75, 48, 90,
-250,245, 3, 0, 12,140,248, 8, 45, 91,123,163,162, 40,161,133, 82,145, 57,130,207, 45,117, 76,216,146,155, 44, 30, 26, 52, 85,
- 89,120, 45, 13,213,174, 83,147,151, 93,145,118,176, 32,155, 55,241,208,241,147,103,103,188, 27,241, 30, 79, 67,107,181, 65, 62,
- 60,135,152, 99,167, 11,115,179,178,191, 71,246,185,196, 87,246, 63,163, 86, 60,186,162,162, 2,214,214,214, 72, 76, 76, 84, 13,
- 29, 58, 84, 72,146, 36,158, 61,123,166, 23, 90,110, 46, 78,237,122,116, 9,242, 95,189,233,247,243,214, 66,161,112,112,159,206,
- 1,201,105, 89, 47, 89,150,200, 52,104,109,213,104, 46, 62,142,127,212,215,213,171, 53, 39,253,218, 29, 56,247,122, 23, 42, 21,
- 9,133,154,129, 74, 11,104, 57,124,120,118,232, 10,135, 86, 1, 96, 1,220,191,115, 83,163,210,104,206, 91,250, 26, 11, 44,248,
- 91, 91,181, 88, 99, 34,169,230,115, 9,128,204,168,168,168,162, 90,214, 38, 41,128, 71, 0, 66,106,142,147,214,251,157,148, 32,
-136,251, 44,203,118,169,197, 35,173, 37,184,106,127, 86,215, 59,230, 81, 35, 68, 86,237,247,186, 66,203,208,148, 74, 0,112,113,
-113,113,235,216,177,115,171,159,127, 61, 4,150,101,241, 52,110, 61, 74, 11,159, 96,217,218,219,173,154, 52,105, 18,158,155,155,
-123,221,156, 18,208, 52,125,112,215,174, 93,243,187,118,234,216,177, 69,211,166,120,148,153, 1, 62, 75,131, 79,211, 32, 41, 21,
-184,180, 26, 77,131,104,144,132, 13,242,242,202, 17,189,239, 80, 98, 77,150,120,163,240,127,247, 61,172,124, 89, 14,130, 32,176,
- 33, 44, 8, 2, 91, 27,240,173,109,240,217,201, 43,122,113, 21,187,114, 17, 4, 54, 54,104,213,213,172,132,240,242,171, 87,175,
- 62,120,252,248,113,151,160,160, 32,204,159, 63, 31,153,153,153, 96, 24, 6, 5, 5, 5, 74,137, 68,146, 43,149, 74, 51, 1, 28,
- 3,240, 51,204,200, 60,206, 87, 41, 55,199, 30,217, 51, 51,172,103,184,203,251, 35,182,225,248,225,121, 40, 43,175,128, 92, 43,
- 70,149, 82,139, 42, 21, 7, 78,206,237,209, 53, 56, 24,121,185,133, 72,186,115,190,146,171,146,175,111,204, 13, 74, 16, 4,226,
-226,226,224,235,101,139,212, 63,174,195,197,138,135, 16, 47, 15,120,245,232,169,207, 47,101, 12, 60, 14,180,227,199,143,215,103,
-134, 31, 52,104, 80,198,196,137, 19, 61,231,205,155,135, 95,127,253, 21, 55,111,222,124, 45, 64, 59, 60, 60, 28, 55,110,220,248,
- 6,192,114, 83, 70, 61,181, 90, 13,127,127,127,220,191,127, 31,151, 46, 93, 66,191,126,253, 16, 30, 30,142,132,132, 4, 92,184,
-112, 1,113,113,113, 32, 8, 2,206,206,206,208, 84,139,103,141, 33, 50,138, 66,204,183,223,237, 90,188,105,211,182,192, 9, 19,
- 38,224,200,145, 3,248,104,106, 91, 16,164, 16, 4, 33,196,123,195,218, 98,229,170,251,232,218,181, 15, 92, 92,120,216,180,241,
-196, 11,133,130,254,221,140,211,184,250,194,133, 11, 94, 74,165, 18,101,101,101,172,141,141, 13, 81, 92, 92, 61,163,181, 33,139,
-150, 92, 46, 23, 25, 34,122,252, 48,101,125,153,140, 45,101, 43,227, 70,148,104,227,218,247, 27,156,131,129, 17, 83,113, 49,246,
- 55, 92, 57,127, 9, 78,220,204, 12, 88,203,206, 22,101, 20, 85, 72,170,252,182, 7,116,154,206,121, 89,117,126,251,172,247, 82,
- 57,158,158, 76,204,162,159, 42,202,140, 9, 45, 0, 68, 73,242,222,147,199, 88,188,215, 61,172,107,235, 32,111, 79, 65,105, 81,
- 33,123,248,196,217, 68, 42,227,200,169, 90, 2,139, 53, 33,212, 87, 70, 70, 70,126, 93,243,121,247,210,165, 75,167, 71, 71, 71,
-187,230,231,231,235, 99,180, 10,139, 74,174,116, 31, 58,139, 46, 46, 43, 87,239,218,244,213,104,177, 72, 40, 88, 26,189,235,154,
-134,131, 59,134,120,181, 12,179,245,131,185,203,230,164, 61,141,107,210, 92, 44,192,137,175,150,227,209,133,171,208,144,124,252,
-227,210, 93,168, 40, 26,101, 69,197,184, 60,237,115,216,184, 59, 98,219,181, 35, 5, 12,195,252,100,233,106, 44,176,224,239, 11,
- 67, 90,132, 32,136,134,114,236, 21, 52,240,221,125, 99,191, 51,192,243, 87,192, 96, 86,120,179,166,224, 21, 21, 21, 21,222,184,
-113, 23,215, 98, 87,227,122,236,106, 36,197, 61, 66, 94,174, 26,185, 5, 74,216,217,217,221, 54,242,211,250,153, 99, 89,185, 92,
- 62,114,233,178,175,243, 69, 98, 43,244,238,223, 31, 30,174,110,176,226,243,192,209, 50,224, 16, 60, 84, 74, 29,144,154, 32,199,
-194, 93,123, 11, 43,229,242,145, 13,116, 18, 3, 12,137, 12,130, 32, 32,180,179,133,192,198, 22, 66, 91,187, 58,110, 68,145,157,
- 29, 68,182,118,224, 10, 4, 13, 5,195,191,198, 89, 89, 89, 57,106,244,232,209,165,229,229,229,152, 62,125, 58,174, 95,191, 30,
-119,254,252,121,187,132,132, 4,177, 84, 42,109, 13, 96, 16,128, 29, 70, 68, 86, 29,206,210,210,116, 25,171, 85,141,141,250,250,
- 11,133, 82,235,140, 49,147, 15,194,154,204,129,150,102,192, 2,240,114, 18,160,199,128, 85, 40, 84,119,199,193,237,107,228, 12,
-165,156, 80, 47,135, 86, 29, 78,150,101, 89,119,119,247,215,206,193,165, 75,151, 48,102,244, 40, 12, 30, 49, 28,174, 45,124,225,
- 54,224, 93, 12,158,254, 15,108,223,190, 29, 36, 73,194,197,197,165,126,199,171,231,220, 19, 15,222,254,199, 32,246, 63, 6,177,
- 59, 14, 92, 0,147,246,238,221,251,109, 72, 72,200,213,155, 55,111,174, 7, 48,182,246,127,213,194,138,122,214,172,134,174,209,
-146, 57,115,230, 40,210,210,210, 96,109,109, 13,173, 86,139,155, 55,111, 98,219,182,109,216,176, 97, 3,226,226,226,224,236,236,
-140, 86,173, 90, 65,165, 82,225,254,253,251, 10, 0, 75,140,112, 50, 82,169,118,212,150, 45,209,197, 17, 17,189,176,107,215,143,
-240,240,232, 14, 30,215, 3, 92,158, 43,172,109,252,241,203,207,223,226,157,119, 58,226,228,137, 67, 37, 69,197,218, 81, 0,180,
-102,220, 75,202,187,119,239, 98,251,246,237, 24, 61,122,116,238,152, 49, 99,232,242,242,114,189, 69,139,101, 89,176, 44,139, 21,
- 53, 49,102, 42,149, 74,104,136,243,227,133,137,185, 95,173, 73, 90, 89,144,159,219,237,250,213,219,227,175,156,191,132, 23,105,
- 87,112,229,252, 37,252,113,229, 86,100, 65,126,110,183,142,161,109,248, 35,167,207,252,114,207,209, 35, 28, 27, 59, 79,236, 57,
-122,132, 51,110,214, 23,107, 58, 15,238,183,196,212, 61, 95,115, 29,217,202,194,130, 69,107,215,255, 80,169,165,148,228,186,239,
-183,230, 41,164,146, 37,181,238, 75,214,212,253,169, 80, 40,118, 40,149, 74, 47,165, 82,233,165, 82,169,150,100,102,102,246,158,
- 63,127,190,148,166,105,189,181, 84,154,124,242,246,147, 63,119,175,117,115,113, 20,119,239, 18,216,118,227,142,195,215,178,115,
- 10,254, 89, 43,135, 86, 67,229, 84, 86, 42,148,163,134,143,156, 88, 85, 86,170, 66,216, 23,145, 96, 68, 54, 80,209,128,134,229,
- 64, 75,112,241,120,245, 70,136,157,108,177, 47,227,161,188, 92, 67,141, 66,221, 28, 90,198,234,254, 54,176,112, 90, 56, 45,156,
-255,153,156,255,205,240, 68,221,181, 14, 61,235, 88,180, 76, 77,169,108,210,164, 73,239,247,223, 27,128, 62, 17, 75,193,178, 44,
-158, 60,252, 14,165,210,167,104,226, 33, 68,122,118, 69, 24,128,235,141, 40, 76,118,102, 78, 78,183, 57, 75,150, 30, 29, 51,168,
-127, 64, 80,139, 22,194,230,205,125, 96,237,230,134,162, 34, 41,254,188,147,172, 89,179, 63, 38,177, 70,100,153,229,152,100, 24,
-166, 58,200, 29, 64,255, 57, 11, 65,112, 56, 64, 77, 26, 7, 93,199,216,162, 75,119, 16, 92, 46,104,150,129, 74,165, 50,103,182,
-220,203,231,207,159,143,154, 48, 97,194,229,216,216, 88,114,240,224,193, 29,142, 29, 59,246, 54,107,230,161,170, 48,237, 42,128,
-136, 53,139,102, 28,236,214,111,184,157, 95, 96,103,126,231,230, 28, 80, 26, 2,121,185, 89,136, 61,122,143, 74,190,123,190,130,
-213, 42,199,202,139,210,174, 26,227,162, 40, 42,187,117,235,214,238,219,183,111,215, 7,195,211, 52,141,162,162, 34,220,190,125,
- 27,237,187,116, 69,192,212,105,144, 74,165,216,178,101, 11,188,189,189, 49,108,216, 48,148,148,148, 64,171,213,154,235,240,165,
- 1,156,175,121,161,158,200, 34,106,150, 0, 50,234, 54,244,245,245, 21, 40,149,202, 14, 44,203,114, 8,130,216,172, 86,171,167,
- 44, 90,180,200,115,237,218,181,104,219,182, 45,138,138,138, 96,109,109, 13, 63, 63, 63, 72,165, 82,220,187,119,143,150,203,229,
-219, 81,189,144,181,212, 68,249,158,221,187,151,209,109,246,236,207,142,126, 27, 61,195, 79,169,234, 35,112,114,234, 9,150,213,
- 66, 42,205,132,172,226, 38,181,106,229,111,207, 11, 10, 53, 35, 1,164,153, 89,231,229, 51,103,206, 4, 0, 17,128,165,233,233,
-233,241, 1, 1, 1,126,134, 44, 90,230, 96,211,225, 92, 37,128,253,163, 6,123,205,173, 40, 74,240,115,226,102,102,116, 11, 98,
-182,108, 58,156,171,180,243,170, 90, 93,148,121, 61, 85, 82,117,126,251,158,163, 71, 56,147, 71,140,162,155,218,164, 69,138,220,
-216,195,102, 80,179, 33, 33, 33,205, 8,162,164,101, 97,241,211, 7, 31, 77,159,241,129, 61, 95,113, 38,164,105,113, 43,210,187,
-163, 40, 46, 46, 46, 3,141,156, 25, 90,131,212,220,220,220,222,139, 22, 45, 58,207,178,108,157,216,132,194,162,146, 43, 97, 17,
- 51,217,178,178,242,120,105,202, 73,115,114,169,221,187,247, 48,174,127, 80,251,142, 71,190, 93, 27,237,222,103,206,124,110,234,
-213,107, 0,173, 65,214,245,107,160,133,106,102,227,173,139, 5,229, 20, 53, 2,150,172,240, 22, 88,240,183,183,102, 25,211, 34,
-255,225, 24, 10, 3,193,240,102, 87,198,183,101,147,243,109,253,154, 15,242,110,234, 10, 0, 72,207,200, 67,122, 70,238,133,244,
- 23,185,131, 77, 40, 94, 67,211, 43,245,139, 74, 19, 53, 41, 28, 88,243, 22,149,174,195,233,236,236,252,128,203,229, 54,109,204,
-217,160,105, 58,175,168,168,168,163,153,229, 28,215,162, 69,139,232,172,172,172,163, 12,195,204,109,164,218,111,144, 83,183,168,
- 52,201, 21, 12, 96,181,234,246, 0, 64,112, 5,230, 44, 42, 93,155,179,189,141,141,205, 14, 30,143,231,173,187,142,186, 24, 44,
-154,166, 57, 20, 69,137,104,154,230, 0, 32, 72,146,212,242,120, 60, 37, 65, 16, 90,173, 86,155,173, 82,169,102,224, 85,194, 81,
- 99,117, 55,217,209,215, 8, 45, 52, 96,209,186, 4, 0,105,105,105,109, 28, 29, 29,199, 18, 4, 49,154,101, 89,127,153, 76,166,
- 90,182,108, 89, 92, 76, 76, 76, 69,139, 22, 45,134, 12, 29, 58,148, 72, 72, 72, 64, 98, 98, 34, 91, 92, 92,124,184,198,138,149,
-222,200,123,137, 20, 10, 57, 31, 58, 57,145, 67, 89, 22, 33, 96, 65, 16, 36, 30,151,151, 51,103,228,114,250,159, 53,130,177,177,
-247,167, 14,227,155, 55,111,254, 91, 70, 70, 6,207,144, 37,213, 80,221,235,227,187, 37,129, 75,195,122,245, 26,117,251,143, 63,
-142,125,181, 38,105,101,237,125,179,134, 59,126, 52,238,243, 57,223,237,223,250,253, 87, 63, 28, 47,221,101, 78, 57, 59,116,232,
-224, 75, 16,196, 88, 0, 65, 44,203,182,102, 89, 66, 68, 16,108, 41, 65, 16, 73, 0, 18,212,106,117,108,114,114,242,203,183,168,
-251,155,140,112, 13,113,234, 23,149, 6, 77, 7,211, 0,107,230,162,210,255,223,229,180,112, 90, 56, 45,156,255, 62,206,255,102,
-124,210,192,119,230,101,134,215, 33,253, 69,238,224,244, 23,185,104,221,186, 53,251,236,217,179, 70,137, 52, 67,157, 52, 77,211,
- 7,228,114,249,129,183, 33, 41, 46, 46,238,252, 47, 62,121,251, 51, 50, 50,246,255,149,132, 53, 66,106,101,205,235, 77,241,184,
-178,178,178,171,185, 7, 83, 20,245,175, 56, 55, 68,141, 53,235, 27, 67, 7, 12, 26, 52, 40,139,162,168, 75, 0,114, 8,130,112,
- 0, 80, 66, 81,212,121,173, 86, 91,240,236,217,179,206, 27, 55,110,212,101,190, 95, 5,224,193, 27,150,131, 81,169,232,125,121,
-121,244,190,127, 65, 29,247,169,213,234,121,206,206,206,173,148, 74,165, 64,169, 84,242,107, 79, 62, 16,139,197, 82, 99, 1,241,
-181,225, 96, 75,236,230,115, 75,157, 29,108,137,250, 66, 10, 78, 77,112, 68, 81,149,216,214,169, 9,142,152, 91,176,248,248,248,
-244,144,144,144,189, 36, 73,182, 96, 89,214, 29, 96,237, 89, 22, 82,150,101,139,184, 92,110,110,114,114,114,238,127, 80, 35,164,
-212, 50,204,122,173, 90,253, 42,238,208, 50,187,208, 2, 11, 44,248,223,129,193, 24, 45,110, 99,153,158, 61,123, 70, 88,206,167,
- 5,181,197,150,177,157, 89, 89, 89, 42, 0,183,106, 94,245,241, 0,192,176,255,244, 10, 74, 36,146,142,134,246,153, 43,178,128,
-234,152, 45, 32,177,193,236,236, 43,126, 40,149,225,135,163, 95, 54,182,108,143, 30, 61,202,134,153, 46,118, 11, 44,176,192, 2,
- 11,254,101,120,123,139,150, 5, 22, 88, 96,129, 5, 22, 88, 96,129, 5, 13, 98,103, 45,193, 85,199,186, 69,192,240,204,129,198,
-248, 94,223,100,246,193, 37, 11,167,133,211,194,105,225,180,112, 90, 56, 45,156,127, 59,206,255, 85,188, 38,178,254, 63, 96,153,
-250,106,225,180,112, 90, 56, 45,156, 22, 78, 11,167,133,243,239, 32,178,234,191, 0, 88, 92,135, 22, 88, 96,193,223, 24, 49, 49,
- 49,102, 45, 42,250,225, 87,191, 68,216,216, 56, 46,171,172, 40,143,254, 63,246,174, 59, 46,138,171,107, 63, 51,179,179,125, 23,
-216,165, 46,197, 2, 10, 34,160,128, 5,123, 68, 77,140,189, 68, 44, 81,177,151, 24, 53, 49,106,212,168,209, 88,227,107, 98,137,
- 38,246,222, 91, 20,236,189, 87, 52, 86,172,244, 46,117, 97,123,153,249,254,128, 37,168,148, 5, 77,222,228,253, 56,191,223, 56,
-206, 48,243,236,189,119,110,121,238,185,231,158,179,123,233,176, 67,150,251, 97, 97, 97,230,234, 82,172,150,106,169, 22, 84,197,
- 24,222,211,211,221,143, 52, 51, 45, 89,150,164, 88,146, 53, 18, 74,205,158, 87, 57, 57,111,184, 29,240,240,240,176,163, 73,116,
- 35, 88, 86, 76, 16,140,153,161,200,171, 49, 49, 73,143, 43,145, 48,158, 76, 38,251,146,203,229,118,208,235,245,238, 36, 73, 38,
-233,116,186, 51,106,181,122, 21,222,117, 92,248, 95, 19, 31, 31,159, 1, 23, 46, 92,176,107,213,170,149, 78, 40, 20,154, 52, 26,
- 13,231,196,137, 19,252, 78,157, 58,229,190,124,249,178, 74, 59, 18, 93, 93, 93,219,109,216,176,193,179, 99,199,142,168, 91,183,
-174,170, 95,191,126,220,230,205,155,115, 71,140, 24, 17,147,146,146,114,174,146,112,126, 4, 65,108, 35, 8,130, 98, 24,102, 48,
-254,116,221,240,161,133, 36, 73,114, 52, 65, 16,189, 88,150,245, 34, 8,226, 21,203,178,135, 24,134, 41,207,113,107,121,242, 25,
-128,206, 36, 73, 6, 3, 0,195, 48,119, 1, 28, 3,172,223,121,247,119, 98,138, 68,162, 32, 0, 80,171,213,247, 62, 20, 38, 65,
- 16, 65, 0,192,178,108, 85, 49,135, 10,133,194,145, 0,160,209,104,214,195,138,112, 80,111, 11,187,198,151, 13,158, 27, 13, 0,
-184,251,189, 47, 0,160, 50,215,196,152,104,162, 50,191, 85, 26, 94,101, 48, 74,145,206, 3, 7, 14, 92,184, 99,199,142,239, 1,
- 28,254, 43, 42,190,139,139,199,170,159, 86,172,115,253,234,203,225,139, 81, 24, 17,162,252, 6, 9,124,204,163,168,238,122,179,
-249,242, 99, 96, 31, 0,142, 92, 46, 31,192,227,241,218,232,245,122, 5,135,195, 73,213,235,245,151,242,242,242,118,161,156, 8,
- 8, 86,151,235, 19,200, 12,106,184, 16,204,159,113,222, 88, 18, 58,174, 8,105, 68,125,228,252, 3,186, 81, 18,192,196,162,188,
-110, 68,217,238, 60,202,235,124,190,114,117,117,237,165, 84, 42,213, 20, 69,177, 40,220,245, 92,248, 79,225,223, 9,134, 97, 50,
-178,179,179, 7, 87,132, 37,174,129,122, 60, 49,177,205,108,132,198,164, 99,199,170, 18, 17, 45,241, 64, 11, 22, 24,204, 2,181,
- 73,138,116,100, 24, 38, 21,192, 57,210,132,136,130, 20,188,248,135, 14,238, 53,139,202,181, 86,209, 53, 13,192, 25,192,125, 0,
- 95, 1, 40,168,230, 63,127,155,188,109, 12,127, 20, 64,106, 49,209, 42,225,238,190,109,215,174, 93, 47,122,122,186,251,245,233,
-217,123,225,152,209, 99, 9,138, 34,241,240,209, 35,206,231,131,135,126, 34,147,201,220, 36, 58, 93,125, 16, 4,163, 22, 8, 30,
- 42,149,121,201,251,118,237,144,250,214,171,103, 54,155, 25,172, 89,251, 91,167,253,191, 31,156, 97, 37,217,242,113,113,113,217,
- 54,109,218, 52,151,238,221,187, 83, 46, 46, 46,136,139,139,179,219,189,123,119,189, 95,126,249,165,111, 78, 78,206, 96, 0,207,
-170,144,217,214, 46,114,242, 19,169,144,104,143,124, 51,242,141, 56,155,166,193, 41, 0,151,171, 90,122,106,181,122,188, 90,173,
- 14,105,210,164, 9,187,113,227, 70, 98,200,144, 33, 44, 65, 16,132, 70,163,217, 2,160, 74, 68, 75, 44, 22,175,238,216,177,163,
-183,183,183,247,171,151, 47, 95,118,222,187,119,239,177,240,240,112, 47,177, 88,252, 28,128, 79, 37,225, 54,103,101,101, 5,106,
- 52, 26,184,187,187,111, 4,208,232, 47,168, 68, 4, 69, 81,135,220,220,220,216, 37, 75,150, 28, 14, 12, 12,116,206,206,206, 54,
- 77,153, 50,165,195,141, 27, 55, 58,153,205,230,238,149, 32, 91, 50,130, 32,214, 58, 59, 59, 59, 44, 94,188,248, 69,227,198,141,
-239,243,249,124,222,243,231,207, 69,147, 38, 77,250,250,217,179,103,125, 89,150, 29, 13, 84,106,128,144, 17, 4,177,214,213,213,
-213, 97,225,194,133,113,193,193,193, 15,185, 92, 46,247,249,243,231,226,111,191,253,246,171,232,232,232, 42, 97,146, 36,185, 38,
- 36, 36, 68,246,253,247,223, 63,169, 87,175,222, 53,138,162,120, 73, 73, 73,228,156, 57,115,190, 60,125,250,116, 24,195, 48, 99,
-170,146, 78, 39, 39, 39,217,156, 57,115,158, 52,111,222,252, 6,151,203,229, 62,125,250,148,156, 54,109,218,151, 47, 94,188,176,
- 58,157,114,185, 60,148, 32,136,117,105,105,105, 28, 0, 80, 40, 20, 77,109,108,108,126, 41, 25,211,210,226,138,194,104, 52,230,
-107,181,218,129,217,217,217,165, 58,194, 29, 50,125,101, 55, 0,248,197, 96,185, 46, 60, 87,116, 13,172,137,176, 38,211, 65, 46,
-133,126,241,126, 82, 13,235, 9, 0, 3,138, 66,133,255,164, 2, 56, 28, 14, 19,228,242, 21,123, 47,173, 82, 46, 99,122,180,107,
-215,110,206,185,115,231,126,107,219,182,237,183,219,183,111,119, 74, 76, 76,252,241,242,229,203, 30,253,251,247, 31,114,246,236,
-217, 69,153,153,153,251, 63, 84,229,231,113,249,124,130, 36, 32, 20,136,108,172,121,158, 38,201,174,215,122,244, 24,185,254,233,
-211,224, 95,162,163, 61, 85, 10, 69,200,132, 9, 19,156,123,247,238, 77,122,120,120,224,197,139, 23,246,219,183,111,175,191,126,
-253,250, 94,185,185,185, 19, 1,196,191, 15,201, 82,229,162,129, 78,143, 96,150,133, 93,113,131, 37,144,203, 55,224, 46,251, 4,
- 15,254, 1,100,107,246,230,205,155,191,127,241,226, 5, 22, 45, 90, 4, 0,171, 42,249,254,164, 30, 61,122,116, 57,120,240,160,
-112,223,190,125,194, 38, 77,154,192,197,197, 5, 69,147,169, 98,199,212,158,158,158,214,149, 25,131,159,150, 31, 27,214,232, 97,
-246,113,172,238,157,182, 72,232, 14, 83,139, 30,222,189,186, 14, 9,134,173,163, 8, 2, 9, 7,185, 89,202,128,167,119, 19, 59,
-158,223,251,226,199, 23, 81,175, 23,171, 18, 48, 27,101,251,228,251,175,136,189,189,253,198,152,152,152, 80,177, 88,252,198,253,
- 87,175, 94, 5,121,123,123,231, 1,248,166,178,196,205,209,209,113, 39,195, 48,186,172,172,172,225, 0, 32,149, 74,119,136,197,
- 98, 89,106,106,234,140,191,106, 34, 99,145,183,185,200,191, 92,163, 85,108,175, 85, 90,172, 67,130, 52, 51, 45,199,140, 30, 75,
-244, 27,208, 63,237,197,171, 24,134, 67,243, 6,156, 56,121, 82,228,231,231, 71,234, 86,173,130,233,245,107, 24,191,254,186,197,
-153, 51,103,140, 97, 3, 6,105,104,138,216,236,229, 89, 91,180,103,215,110,151,131, 7,246,183, 4, 80, 17,209,226,185,184,184,
-108,187,112,225,130,155,167,167, 39,114,115,115, 17, 23, 23, 7,149, 74,133,190,125,251,210, 45, 91,182,116,235,211,167,207,182,
-188,188,188, 86,149,208,108, 57,215,117,231, 68,142, 30,218,219,167,211, 39, 45,197,110, 30,117,192,166,105,145,248, 50,186, 73,
-228,133, 27, 19, 54, 31, 56,246,236, 69, 30,219, 21,165,199, 70, 42, 87, 50, 51, 51,167,246,234,213,235, 64,104,104,168, 35,159,
-207,135,171,171, 43,209,189,123,247,140,148,148,148,185, 85,102, 45, 69, 33,108, 72,146, 52,151, 60,151, 18, 30,200, 26,113,151,
-201,100,144,201,100, 0,224,246,190, 51, 79, 59, 59,187, 85, 82,169,180,143, 82,169,212,144, 36,201, 18, 4,193,234,245,122,161,
- 76, 38,251,227, 73,244, 51, 87,157, 78, 87,119,233,242,245, 43,218,181, 14,180, 57,125,250, 52,122,247,238,205,158, 58,117,106,
-180,181,113,234, 8,130, 88,219,171, 87, 47,245,172, 89,179,180, 47, 94,197,185, 61,121,246,138, 16, 11,120,140,131,131, 3,125,
-235,214, 45,206,178,101,203, 4,115,230,204, 89,203,178,108,159, 74,148,231,218,254,253,251, 27, 38, 79,158,156,250,244, 69,140,
-211,131, 39, 47, 88,137,128, 54, 57, 56,216, 83, 55,110,220, 96,170,130, 73,146,228,154,169, 83,167, 42, 71,143, 30,157,147,149,
-157,231,146,163, 44, 96,249, 52,101,116,113,113,225, 28, 62,124, 88,183,115,231, 78,114,228,200,145,107, 24,134, 9,171, 68,249,
-174,233,222,189,123,254,180,105,211,114,159,191,138,117,121,240,248, 25, 68,124,218,232,236,236, 68,221,190,125,219,176,116,233,
- 82,114,254,252,249, 86,165, 83, 44, 22,111,221,187,119, 47,231,240,225,194,190,239,250,245,235,164,151,151,151,168,228, 51, 26,
-173, 14, 36, 1,100,102,102,138,154, 55,111,190, 21,192, 59,206,125,131,231, 70, 99,200,116, 96,252,248,241,169,149,173, 44,193,
-138, 9, 21, 62, 99,254,205,151, 93,166, 30,214,147,195,225, 48, 35, 71,142, 76,123,251,239, 90,173,150, 0,208, 29, 63, 90, 79,
-182, 58,119,238,252,221,209,163, 71,235,108,223,190,253,231,157, 59,119,234, 1, 64, 32, 16, 56,236,222,189,123, 81,223,190,125,
-209,183,111,223, 89,251,247,239,255, 96, 68,203,204,154, 13, 0,192, 23,240,249,209,209,209,132,175,175,111,185, 30,247, 13, 12,
-115,103,253,211,167,141,191,240,245,109,146,205, 48,117,185,157, 58, 21, 76,154, 52, 41, 83,169, 84, 34, 46, 46, 14, 6,131, 1,
- 67,134, 12,161,218,182,109,235,218,183,111,223,149,249,249,249,159, 1, 48, 88, 81, 39,151,186,185,185,141,202,203,203, 43,176,
-104,117, 90, 13, 54,115,218, 4,153,248, 13,235, 26,121, 92,202,196,237,246, 53, 67,156, 90, 69,168,124, 61,113, 5, 0,184,106,
-188,174,228,100,160, 84,177,113,135,167,153,198,124, 71,119, 97,187,215,241,154, 31, 84, 9,229,146,165,207,196, 98,113, 79,149,
- 74,181,191,104,112,246,233,218,181, 43,110,220,184, 1, 0, 45,139,136, 86, 59,146, 36, 63,103, 24,102, 3,128,242, 66,185, 77,
-232,209,163,199,199, 7, 15, 30,148, 2,192,254,253,251, 97, 52, 26,225,229,229, 5, 46,151, 11, 30,143, 7,154,166,139,163,131,
- 88, 41, 10, 71, 71, 7, 56,216,210,144,201,197,157,190,253,181, 7,167,134,159, 13, 50,204,143,144,205,230,194,196,234,192,181,
- 23,163, 94, 71, 59, 4,127,210,142,140, 88,243,112, 70,196,234, 39,141,213, 36,186, 33, 30,186,127,202,200, 78,146, 36,255,254,
-253,251,112,117,117,125,227, 62, 69, 81, 0,208,166, 10,144,179, 94,189,122,213, 60, 42, 42, 10,161,161,161,179, 26, 52,104,240,
-233,197,139, 23, 93,178,178,178, 16, 26, 26,186, 50, 41, 41,233,240, 95,157,167,146, 92,228,127, 69,213, 69,190,197, 36,219, 22,
-206,130, 73,138,162, 72,196,188,138, 51,134,134,182, 15, 79, 72, 72,144,132,132,132,144, 52, 77, 67,117,238, 28,180,183,111, 67,
- 34,145,160, 87,175, 94,244,165, 75,151,108,108, 36, 54, 35, 98, 99, 98,243, 41,138, 4,203,146, 21,218, 60,200,100,178, 47,103,
-204,152,225,226,237,237, 13,147,201, 84,236,209,220,100, 50, 33, 49, 49, 17, 18,137, 4,131, 7, 15,118, 18,137, 68, 95, 90,153,
-143, 90, 62, 94, 78,119, 47, 28, 91,219,104,210,152,206, 98, 31,209,105,136, 19, 39, 66,178,255, 11,212, 79, 57,129,105, 61, 67,
-196,167, 86,207, 10,174,227, 42,191, 91, 66,197,106,181,232,116,186, 43, 15, 31, 62, 28,113,241,226, 69, 6, 0,206,159, 63,207,
- 62,121,242,100,244,251,204, 66, 25,134, 65,110,110, 46, 24,134,161,138,174, 45,231,255,106,125,176,177,177, 89,243,233,167,159,
-246,143,143,143, 23, 30, 63,126,220, 62, 33, 33,193, 33, 54, 54,214,209,199,199,135,179,104,209,162,163, 90,157,129, 50,154, 89,
-189,201,108,204, 79,125,244,232, 85, 78,122,250,221, 77,155, 54,105, 8,130,232,101,229,111,124,166, 80, 40,236,167, 79,159, 14,
-130, 22, 53,173, 87,191,129, 55, 69, 11,109, 73,154,103,171,209,104,205, 49, 49, 49,137,211,167, 79,175, 29, 24, 24,232,138,194,
-229, 53,171, 48, 93, 93, 93, 29, 38, 79,158, 12, 14, 95, 26,212, 48, 48,184, 14,143, 47,150, 82,180, 80, 26, 18, 18,210,246,213,
-171, 87, 41,211,166, 77, 83, 52,105,210,164, 82,152, 77,154, 52,145,141, 28, 57,210, 36, 16, 74,155,123,122,122,213,111,232, 95,
-191,139,143,143, 79, 79, 14,135, 99,122,253,250,117,252,224,193,131, 21,221,186,117,115,174, 12,166,147,147,147,108,218,180,105,
- 38,143,154, 94, 29, 59,126,252, 73, 51,174, 80,106,203,225,137,237,212,106,173,249,233,211,167,241, 51,103,206, 84, 4, 5, 5,
- 57, 89,131,169, 86,171,105, 7, 7, 7, 4, 4, 4,192,207,203, 11,121,121,121, 56,120,240, 32, 54,111,222,140, 13, 27, 54, 96,
-215,174, 93,104,220,234, 19, 72,165, 82,164,164,164, 64,169, 84,210,127,119,133, 50,255,230,203,254,162, 31,213,125,236,216,177,
- 41, 35, 71,142, 76, 19, 10,133,204,219,135, 92, 46, 55, 15, 28, 56, 48,125,240,183,203,187, 91,150, 22, 43,208,100,221, 63,118,
-236,216,203,237,219,183,195,207,207, 15, 29, 59,118,228, 1,192,151, 95,126,201,235,219,183, 47,246,238,221,139,253,251,247, 63,
-246,246,246,190, 10,160,135, 53,233, 28, 60,120,112,171,176,176,176,203, 97, 97, 97,247,250,245,235,183,110,244,232,209,111,140,
- 92,169, 41, 73,119,244,122, 61, 2,131,155,136,230,109,188, 57,176, 34,188, 39,192,246,117,209,209,155, 23, 63,122, 20, 63,203,
-207,207,174,102,108,172,124,203,210,165, 14,150, 32,221, 70,163, 17,137,137,137,144,201,100, 24, 56,112,160, 3,159,207, 31,108,
- 69, 50,151,245,232,209, 99,104, 66, 66,130,100,253,250,245,138,123,247,238,185,166,166,166, 42,206,158, 57,233, 56,229,155, 47,
-165,182, 18, 30, 47,229, 53, 75, 0, 64,108, 10,196,209, 49,104,197,178,176, 43,185,156, 88, 37, 81, 64, 40,116,199, 47,117, 90,
-217, 61,155,188, 55,168,223,180,200, 96, 7,153,130, 63,189,156, 55, 26, 46, 89,178,100, 95, 68, 68,196,128, 86,173, 90, 29, 0,
- 32, 44,229, 25, 65,227,198,141, 15,238,221,187,119,104,235,214,173,175, 0, 8, 40,115, 22,233,238,222,235,247,223,127,183,183,
- 92, 59, 56, 56, 64, 32, 16,188, 67,178,184, 92, 46, 72,146,172,116,246, 22,236, 30,192,145,215,215,225, 97,206, 49,236, 93,114,
- 31, 75, 58, 61,101, 22,182,136,213,173, 26, 28,141, 83,123,239, 35, 3,247,209,249,139, 58, 24, 48, 51,176,131,200,140,249,255,
-164, 1,252,245,235,215,159,183,105,211,102, 95,231,206,157,117, 81, 81, 81,120,253,250, 53,220,220,138,231,218,105, 85,128,148,
-139, 68, 34,120,120,120,192,219,219,123,192,165, 75,151, 92,140, 70, 35, 98, 99, 99,145,145,145,113,247,239,200, 83, 73, 46,242,
- 47,147,183, 13,225,143,190, 67,180,138, 98, 11, 93, 0, 0,150, 32, 84,247, 31, 62,164, 41, 30,111,208,142,157, 59,249, 92, 46,
- 23,241,241,241,120,252,248, 49,212,103,207, 66,115,237, 26,210,211,211, 81, 80, 80, 0,103,103,103,172,221,184, 81,172, 55,179,
-195,158, 62,123, 70,177, 36, 91,210,222,160,212, 45,158,124, 62,191, 67,239,222,189,203, 36,100, 41, 41, 41,232,220,185, 51, 77,
- 81, 84,105,187, 26,222,198, 36, 92, 29,137,136,179, 7,230, 41, 20,188,199,192,139, 73, 64,254, 93,128,213, 1, 38, 61,144,252,
- 0, 56, 58, 23, 53, 11,162,137,147,243,194, 93,220, 68,156,136, 82,152,114, 69, 91, 81,189,124,125,125, 55, 12, 26, 52,136, 4,
-128,118,237,218, 17,190,190,190,235, 0,120,149,243,206,153, 10, 6,201, 27, 57, 57, 57,232,219,183,175,125,157, 58,117,206,244,
-237,219,215,222,114,191,170,152, 22,109,178,159,159, 95,150, 64, 32,216, 5, 88,213,193, 22, 99,218,217,217,173,234,220,185,115,
-159,157, 59,119,114, 1,224,194,133, 11,136,136,136,192,163, 71,143,240,252,249,115, 38, 56, 56,216,113,249,134,125,107, 86,253,
-182,117, 89,207,150,129,174,109,155, 6,215,151, 20,228, 20, 56, 59, 59,183,100, 89,214,203,202,116,118,158, 59,119,238,227, 39,
- 47,227,109, 73, 14,205,225,210, 28,190,141,141,216, 89, 38, 21,187,203, 69, 2, 55, 62, 73, 72,212,106,117,218,174, 93,187, 24,
- 0,157,173,197,156, 55,111, 94,204,147, 23,241,118, 4,201,225,208, 28,154, 43,145,136,236, 58,117, 12,109, 2, 0, 92,176, 92,
-165, 82,153,190,121,243,102, 67,101, 48,191,255,254,251,135,217,185, 5, 50, 14, 77,211, 28, 14, 85, 92,150, 98,161,208, 81,196,
-231,243,116, 58, 93,242,138, 21, 43, 52,149,193,156, 59,119,238,227,167, 47, 19,228, 36, 65, 80, 4, 65,114,108,164, 98,123,123,
- 91,145,163,163, 68,232, 32,226, 80, 60,165, 82,153,188,109,219, 54,171, 48, 13, 6, 3, 55, 61, 61, 29, 79,158, 60,129, 71,147,
- 38, 56,125,250, 52,106,212,168,129,190,125,251,162,127,255,254, 16, 10,133,104,215,188, 1,166, 79,159,142,151, 47, 95,194, 96,
- 48,240, 75,195,180,216, 73,189, 45,174,174,174, 81, 21, 85,158,183,222,125, 35,157, 65, 46, 96,127,209,143,234, 94,146, 96,149,
-133, 47,151,203,205,165,105,187,222,198,236,220,185,243,119,103,207,158,173,179,109,219,182,238,131, 7, 15,190,178,109,219, 54,
- 52,107,214, 12, 79,158, 60, 65,237,218,181,177,101,203, 22,244,239,223,255,202,202,149, 43,187, 71, 69, 69, 5,122,122,122,206,
-168, 8,179, 95,191,126,227,130,130,130,206,165,165,165, 53,207,206,206, 14, 56,120,240,224,176, 94,189,122,197, 12, 24, 48,160,
-125, 49, 97, 52, 26,119, 30, 61,114, 0, 93,186,247, 70, 61,255,128, 53, 67,102,108,111, 80, 65,219,100, 31, 1,235, 54,167,166,
-190,222,169,213,170,251,210,180, 72,116,243,166,124,255,111,191, 57,148,140, 44,144,156,156,140,110,221,186,209, 92, 46,183,117,
- 5,233, 92,210,179,103,207,190, 7, 15, 30,148, 89,180, 58,215,174, 93,195,131, 7, 15, 16, 23, 23,135,220,220, 92,180, 31, 93,
-128,177,139, 10,177,199, 46, 98,241,201,151,172,184,138,125, 72,177, 8,107,192,197,222,134,115,117,216,138,122, 95,142, 90,227,
-199,145,200,105,236,248,246, 57, 50, 99,117,251,203,192, 36,154, 55,111,190, 61, 44, 44,140,208,235,245,208,235,245,122, 0,165,
-122,245,117,115,115, 19, 52,108,216, 16,163, 71,143, 38,109,108,108, 86,150,149, 78,149, 74,165, 59,118,236, 24, 6, 15, 30,140,
-137, 19, 39,162,110,221,186,144,201,100,160,105, 26, 91,183,239,113,232, 63,108,140, 79,163, 86,109, 2,253, 26, 53,107,152,175,
-163,154,208, 66,217,200, 50,180, 33,165,230,189,192, 41, 10, 15, 99,175,227,151,238, 73,204,173, 45,234,130, 41,159,255, 39,250,
-233,197,244, 71, 51,194,214, 61, 90,247, 12,164, 0, 0, 32, 0, 73, 68, 65, 84,100,175,183,200,220,254, 85, 2,210,141, 79,208,
-186,111, 77,120, 6,201,190, 22,123,192,183,170,229,105,165, 84, 10,179, 65,131, 6,173,110,221,186,197,111,211,166, 13,226,227,
-227, 65,211,197,243, 41,243,251,164,115,238,220,185,124,173, 86,139, 63,254,248, 3,225,225,225,201, 6,131,225,235,247, 73,103,
-101, 52, 90, 22, 46,242, 47,147,117,111, 29,169,101,105,180,230, 2,128,145, 65,196,160,240, 97,234,200,200, 72, 17,143,199, 67,
-124,124, 60, 82, 83, 83,177,117,243,102,115, 59, 39,167,252,142,110,110,202,173,155, 55,179,122,189, 30, 44,203,194,215,215, 23,
-125,250,244, 17,126,214,119, 64, 6,161,212,236,177, 98,153, 71, 97, 89, 95, 31, 54,108,216, 59,127,159, 50,101, 10,108,108,108,
- 64, 16,132,139, 21,153, 11,155, 48,183,167,187,204,211, 46,157, 77,219,154, 13, 74, 0,112,164, 0,199, 6, 16,216, 2,124, 41,
-192, 19, 65, 23,117, 46,155,100, 59,198,245,110, 61,220, 13, 64,101,150,122,224,234,234, 58,235,220,185,115,142, 81, 81, 81,172,
- 82,169, 68,106,106, 42,187,112,225, 66, 71, 87, 87,215, 89, 85,253, 34, 41, 41, 41,243,186,116,233,146, 30, 30, 30,110,123,226,
-196, 9,143,240,240,112,219, 46, 93,186,164,167,164,164,204,123,159, 47,205,229,114,169, 71,143, 30,201,231,207,159,223, 31,192,
- 29,127,127,255, 44, 55, 55,183, 59, 40, 52,154, 44, 87,164, 82,105, 49,201,178,104,215, 56, 28, 14,104,154,134,171,171,171, 62,
- 59, 59,219,220,186,145,151,208,215,150, 52,186,242,185, 66,185, 80,224, 46,181,177, 13,201,202,202,186, 79, 16,196, 43, 43,151,
-248,130,154, 54,109, 74,155, 89,154, 25, 59,168,157,235,151, 67, 67,157,126,157, 63,178,198,138,121,163,220,150,204, 25,225, 59,
-111,234,192, 80,146, 97,180,181,107,215,118,177, 24,180, 91,161, 62, 15,110,220,184, 49,135, 1,141, 39,207,226,210,227,147,146,
-243, 63,110,219,188, 88,115,233, 23, 20,220,209,209,209,177,141,175,175,111, 99,130, 32,172,218,146, 44, 20, 10,131,234,213,171,
-199, 33, 41,154,176,151, 73, 61,164, 18,161,115,241, 18,138,157, 93, 11,185,163, 99, 24,201,178,121, 10,133,194, 73, 40, 20, 6,
- 85, 34,239, 28, 6, 92, 56, 59,201,109, 29, 29,236, 36, 29, 67, 91,214,109,222,162,185, 79,131,144,102,205,253, 27, 53,254,140,
- 48,153,148, 94, 94, 94, 78, 22, 35,249, 10, 52,173,130,157, 59,119, 98,254,252,249,104, 88,179, 38,220,220,220,224,228,228,132,
-107,215,174,225,214,173, 91,144,201,100,200,200,200,192,210,165, 75,113,232,208, 33, 24, 12, 6,105,101,235,147, 53,100,171, 60,
- 49,153, 76,228,219, 4,171, 44,124,161, 80,200, 88,140,228,203,146, 99,199,142,109,183,104,178,190,250,234,171, 86,203,151, 47,
-191, 18, 29, 29, 13,137, 68,130, 91,183,110, 97,216,176, 97, 87, 86,174, 92,217,106,204,152, 49,216,188,121, 51, 98, 98, 98, 54,
-150,135,215,175, 95,191, 57, 35, 70,140, 88,113,241,226, 69,210,217,217, 25, 50,153, 12, 61,123,246,196,198,141, 27, 57, 38,147,
-105, 83, 88, 88,216,189,176,176,176,123,230,196, 83,223,237,219,176,240,218,195,251,247, 48,110,194,100,158,222,100,156,102, 69,
-246, 89,141, 68,146,111,106,211, 38,123,175,209,168,238,199,229,138,108,239,221,147, 71,108,218, 84, 76,182,166, 79,159, 14, 91,
- 91, 91,160,208,128, 25,229,104,117, 70, 29, 58,116,168,184, 63,180,183,183, 7,143,199, 3,151,203, 5, 77,211,160, 40, 10,103,
-214,136,241,219,244, 66,126,241,219,116, 2,167, 86, 17,170,247,249,118, 34, 55, 4,200,156,121,247,190,216,226, 31, 24,208,222,
- 30,215,118,167, 97, 97,151,168,164, 91,123, 95, 79,210,102,224,167, 50, 94,107, 52,101,202, 20,191,140,140, 12,220,190,125, 27,
-183,111,223, 46, 75, 3,164, 61,114,228,200,143, 5, 5, 5,240,244,244, 68,143, 30, 61,218, 0,104, 82, 70,187, 65,227,198,141,
-209,173, 91, 55,132,134,134,162, 97,195,134,208, 27, 76,116,216,160, 81,245, 30,197,188,118, 91,184,116,161,232,220,249,131,228,
-149, 43, 23,169,237, 7, 78,217, 54, 15,253,100, 5, 87,170,184, 1,161,189,194,154,124,170,205, 89, 8, 82,116,194,186,179, 19,
-200, 95, 46,132, 75,182, 70,252,226, 37,149, 74,137,187,183,239, 25,183,174,222,155, 16, 32,238,145,113, 99,119, 22,212, 68, 26,
-218, 15,245, 36, 25,160,207, 63,101,100, 23, 8, 4,203, 47, 94,188,232, 98, 48, 24,240,240,225, 67, 76,156, 56, 81,251,158,144,
-197, 10, 16, 15, 15, 15, 92,184,112, 1, 3, 7, 14,212,166,167,167, 95,255,187,242, 84,146,139,252,175, 8,167, 4,131, 44,150,
-196,196,196, 92,153, 76,230, 86,175, 94, 61, 82,175,215, 23, 46, 73,236,223,111,222,176,105,211, 81,173, 86, 59, 1, 0,119,213,
-175,191,174,113,115,119, 15, 29, 52,120, 48, 97, 52, 26,209,165, 75, 23, 94,100,100,164,253,171,140,140,124, 43, 6,156, 55,126,
-111,200,144, 33, 88,190,124, 57, 0, 96,252,248,241,197,170,117,194, 10,131, 37,137, 45, 58,119,236,218,216, 38, 81,252,139,141,
-161,133,177,160,214, 75,233, 13,113,129,176, 49, 72, 30, 7, 2, 10,140,193,104,122,158,209,235,206,203,231,245,253,132,217, 89,
-181, 59,248,127,132, 13,167,183,117, 86,155,181,123,173,238,112, 68,162,166, 18,137, 4,119,238,220,201,110,220,184,113, 46,203,
-178,182,243,230,205,115, 16,137, 68, 77,223,163,236, 99,159, 61,123,214,166,101,203,150, 95,146, 36,217,129, 97,152, 51,233,233,
-233,171, 0,196, 90,249,254, 88, 0,223, 3, 40,158, 89,234,245,122,144, 36, 9,150,101,209,175, 95, 63, 76,159, 62,221,239,193,
-131, 7, 56,119,238,156,188, 67,135, 14, 55, 0,228, 2, 24, 14,160, 84,173,153, 82,169,212,220,186,117, 75,120,238,220, 57, 48,
- 12, 3,185, 92, 14, 27, 27, 27,240,249,124,244,236,217, 83, 50,109,218,180,246, 39, 79,158,204, 80,214,170, 65, 9, 82,147, 85,
-124,137, 68, 10, 23,183,214, 99, 6,124, 30,205,178,236,161, 74,116, 14, 60, 33,199,164, 37,204, 58,114,201,236,149,164,136,203,
- 37, 4, 92, 14,248,140, 26,223,253,184,128,224,178,102, 14, 42,185, 62,207,229,114,185, 82, 62,244, 20,143, 50,138, 8,176, 31,
-162,113, 80, 20,197, 19,112,203,182,199,160, 73,146, 36, 73,146, 11,192,234,160,125,124, 62,159, 43,229,179,101, 98, 10, 41,130,
- 34, 8,130,135, 50,118,162, 5,185,128,181,104,145,120, 19, 94,233, 74,146,226,214,173, 91,227,232,185, 59,216, 31,113, 6,153,
-241,247, 49,243,219,175,208,164, 73, 19, 68, 70, 70,150,155, 38,139,141, 86, 89,218,101, 87, 87,215,168,148,148,148, 70,101,189,
- 91,222,146, 97, 25, 90,170,119,241,103,219, 34,120,110, 52, 42,176,209,234,209,186,117,235,113, 59,119,238,212,127,250,233,167,
-188,126,253,250, 33, 32, 32,160,213,208,161, 67, 1, 0, 29, 58,116,192,242,229,203, 91, 13, 29, 58, 20,123,246,236,193,193,131,
- 7,117,109,219,182,253,246,194,133, 11,201, 40,220,209,249,142, 48, 12,211,109,237,218,181,111,107, 10, 97, 50,153, 96, 52, 26,
- 21, 38,147, 73, 81,212, 23, 97,197,138,149,153,167, 78, 70,226,219, 25,115,225,228,232, 18,100,101, 29, 34,134, 76,158,156,185,
-101,233, 82, 44,221,179, 7,147,107,215, 22,109,123,252, 24,167,180, 90,236, 61,119, 46,179,232,119, 42,180,205, 84,169, 84,154,
- 99,199,142,217,236,221,187, 23,118,118,118,168, 91,183, 46,228,114, 57,104,154, 6, 73, 9, 65,113,101,168,231,223, 20,192, 45,
- 0, 64,109, 87,168,124, 61,113,133, 32,144,203,146,149,183, 41,226,215, 64, 45, 7,119,193,197,113,155, 3,236,108,156,184, 56,
-177, 42, 1, 39,127, 73, 60,164,205,196,207, 48,225, 41,202,182,249,106,236,233,233,137,140,140, 12, 28, 59,118, 76, 5,148, 73,
-200,192, 48,204,143,191,254,250,235,148, 25, 51,102,240,125,125,125, 1, 32, 8,192,237,210,158, 21,139,197,112,115,115, 43, 38,
-150,253,194,199,120,141,158, 52, 70,216,235,147, 80,112, 56, 14,200, 85, 25,145,149,111,132,204, 65,130,111, 39,133, 9,206, 52,
-118,107,178,118,229,142, 35, 26, 13,154, 0,239,246, 7, 4,129,219, 55,239, 95,105, 32,240, 5, 8, 18, 72, 36,207,131, 0,129,
- 2,194, 8,130,162, 88,179,217,140,132,132, 4,176, 44,139,129,189,134, 37,142, 90,120,208,169,213, 64, 37, 60,234,185,130, 96,
-241,209, 63,133, 8,216,219,219, 7,101,101,101, 33, 54, 54, 22,225,225,225,201,153,153,153,167, 85, 42,213,176,148,148, 20, 0,
-200,174, 2,100, 49,153, 15, 10, 10, 66,211,166, 77,209,183,111, 95,129, 90,173, 14,243,242,242,114,123,253,250,117,139,191, 50,
- 63,111,115,145,255, 41,162, 85,106, 67, 51, 26,235,233,214,172,129,234,204, 25,240, 78,157,194, 94, 87,215, 2,173, 86,251, 13,
-128,196,162,134,255,213,230, 45, 91,174,118,191,126,221, 70, 31, 29, 13,175, 7, 15, 64,219,217, 5, 85, 54, 1,155, 54,109,130,
- 82,169, 68, 94, 94, 30, 0,224,151, 95,126,129, 82,169,132,201,202,128,179, 28, 46, 90,185, 56,213, 70, 26,158,131,225,144,146,
-184,122,234,102, 18,173, 52,197, 45,193, 89,149, 71,186, 33, 58, 62, 68,172,201,210, 55, 35, 40, 61,180,153,106,184,181,172, 11,
- 14, 56,173, 42,147, 70,203,186, 63,135,195,201,126,246,236, 89, 55, 31, 31,159, 8, 0, 14, 85,177, 7,120, 75, 94,164,167,167,
- 79,168,202,139, 20, 69,125, 31, 19, 19,227,180,113,227,198, 47,231,205,155,199,150, 36, 90,150,255,115, 56, 28,176, 44, 11, 91,
- 91, 91,208, 52,237,124,237,218, 53,231,144,144,144,213, 12,195, 4,149,145, 79, 54, 32, 32, 0, 49, 49, 49,224,112, 56,176,181,
-181, 5, 99, 50, 96,238,164, 49, 48, 83,124,206,212,169, 83,131,122,247,238,253,112,227,198,141, 70,155,230, 45, 91,100,101,101,
- 61, 26, 55,112,208,195,195,135, 15,235,139, 92, 60, 84, 60,197,103,217,123,207,159, 63,167,220, 93,157, 41,214,164,102,196, 92,
- 64,112,127, 5,203,147,184, 64,192,161, 88, 46, 65,130, 47, 16,218,198, 38, 37,101, 49, 12,243,196, 26, 76,134, 97,238,198,196,
-196, 8,157,157,236, 57,106,141,190, 64, 72,179,188,184,187,119, 94,213, 10,110,236, 5, 0,218,187,183, 46,240,235,213, 23,198,
-165,191, 22,215,174, 93,219, 42, 76,141, 70,115, 47, 57, 57,153,114,118,118,230,196, 39, 38, 29,177,147,136, 29,109,236,236,154,
- 1,128, 33, 63,239, 22,169,211,189,166,104,142,243,235,172,172,108,141, 70, 19, 99,109,222, 95,190,124,201, 81, 40,156,168, 19,
-167,206, 70, 56,139,248, 78, 82, 30,199,134, 79, 16,132,136, 34,148, 92, 19,147, 41, 16,137,156, 98,147,146,178, 89,150, 45, 83,
- 67,184, 56,119, 80,175,194,239, 53,119, 79, 9,108,220,191,127, 31,199,175, 60,129,152,213,131,208,230,225,212,230,245, 24, 56,
-117,198,123,219,253, 85, 68,182,170,164,205, 90, 91, 63,234, 45,124,164, 86, 96, 8, 63,112,224,192,185,219,183,111, 47, 54, 64,
-121,242,228, 9,218,181,107,103, 89,230, 64,199,142, 29, 17, 18, 18,130, 39, 79,158,192,219,219, 27,231,206,157,227, 83, 20,197,
- 31, 52,104,208,194, 29, 59,118, 28,171, 80,239,191,110, 29,134, 13, 27, 86,154, 97,245, 75, 0, 90, 66,230, 91, 48,125,241, 86,
-135,236,172, 76,100,188, 78,187,103,109, 57, 16, 4,129, 33,147, 39,103,174,213,235,177,243,230, 77, 12, 22,139, 69, 91, 94,188,
- 64,151,144, 16, 52,104,215, 46,211,154,190,206,162,213,209,106,181,160,105, 26, 54, 54, 54,176,183,183, 7,151,203, 5, 69,187,
-130,195, 11, 4,201,229, 34,184,117, 32,150,126, 35, 86,135,119,194, 74,130, 64, 46,159,135,187, 92, 81,153,182, 58,132,184, 6,
-122,178, 44,148,234, 68,156,183, 16, 18,219,154,176,165,165,244,169, 17,171,125,237,108,156,184, 56,190, 50, 30,167, 86, 39, 29,
-208,166, 97,102, 81, 89, 48,229, 76, 36, 26,216,217,217, 33, 49, 49, 17, 9, 9, 9,143, 81,190,129,191,250,201,147, 39,175,248,
-124,190,159,163,163, 35, 0,120,150, 53, 49,103, 24,166,216, 14,107,219,206,125, 14, 65,109,188, 4, 31,183,242,195,214,136, 5,
-248, 34,108, 37,104,138,128,217,108,192,207,203,187,194,172, 43, 64, 88,247, 81,196, 71, 29,188, 3,207, 68,232, 71, 24, 53, 57,
-235,223,153, 8,112, 48,255, 63,253,175,217,241, 37,100, 3, 48,132,157,131,131,147,152,203,229,194,222, 70,161,159, 49,250,235,
- 84,150,101,139,219, 13, 77,113,141,100,190, 92,147,149, 86, 32,180,163, 53, 0, 75,214,170,154, 55,155, 15, 47, 73, 73, 73, 19,
-218,180,105,179, 48, 63, 63, 63, 71,165, 82, 13, 4, 0, 79, 79,207,154, 36, 73,242, 1,148,183, 58, 82, 19,165,187,133,224, 62,
-120,240, 0, 82,169, 20,201,201,201, 37,149, 47, 96, 24,230, 31,179, 9,224, 31, 42,193, 0,238, 2, 80, 0,232,130, 18,238, 29,
-200, 34, 85,221, 71,145,145,145,108,100,100,228, 71,197,131, 23,203, 50,166,236,108,176,186,194,178,165,105,154, 5, 80,114, 71,
-147,200,206,206,142,160,221,221, 65,240, 11, 77, 63,216, 15,184,245,213,104,180,206,181, 12, 99, 6, 5,194, 0,182,196,164, 69,
- 37, 32,176,192,161, 61, 38,240,102, 33,141,103, 87,114,164, 3, 76, 44,204, 96,168, 74, 38,135, 85,169, 84, 48,153, 76,178, 58,
-117,234, 28, 53,153, 76,178,162,193,141,253,111,125, 81,179,217,252,138,162, 40,124,249,229,151,176,104,127,244,122, 61,210,210,
-210,160,211,233,160,215,235, 17, 19, 19,131,188,188, 60,232,245,122, 60,122,244, 8,158,158,158,160, 40, 74, 81, 78,103,206,178,
- 44, 11, 15, 15, 15,212,170, 85, 11, 20,193, 98,195,146, 57,248,110,226, 24,244,247,100,176,105,213,207,104,219,182,109,253,218,
-181,107, 55,231,112, 56,102, 23, 23, 23,238,193,131, 7,143,152,205,230,158,176,190,231, 57, 54,125,250,244, 90,254,254,254, 78,
-118, 54, 82, 35,159, 71,129,103, 84,177,124, 93, 22,203, 81,103,194,195,163,166, 9, 66,145,247,224,193,131,205,101,105, 33, 74,
-195,252,230,155,111, 20,190,190,190,182, 50, 59,169,138, 71, 83, 25, 92,176,153,121,247,111,223, 0, 0,158,163,147, 22, 2,145,
- 95,120,120,184,169, 50,152,179,102,205,242,116,116,116,180, 35,193,230,155, 13,134, 63,215,219,117,250, 44,130,166, 53,224,242,
- 26,143, 31, 63,158,168, 12,230,148, 41, 83,106,251,249,249,217,217,217,136, 11, 56, 52,149,202,101,152, 84, 1,152, 52, 90,111,
-200, 17, 56, 58,168, 33,146, 4, 15, 30, 60,184, 76, 76,139, 54,107,218,180,105,137,111, 17,111,100,103,103, 67,155,246, 16,220,
-228,104, 4, 74,104, 52,113,148,129,207,231, 23,111,125, 47,171,186,150,101,163, 85, 26,217,178,246,221,198, 63,148,179, 4,184,
-182,126,212,219,126,179, 82, 82, 82,160, 80, 40,202,109, 79, 59,118,236,152, 17, 26, 26,154,209,177, 99, 71,253,209,163, 71, 65,
- 16, 4,206,157, 59,135,228,228,100,116,236,216, 17, 44,203, 90,118,181,225,222,189,123,232,208,161,131,190, 77,155, 54,201, 69,
-254,181, 42,148, 97,195,134,193,104, 52,162,160,160, 0,217,217,217,136,140,140, 68, 96, 96, 32, 43, 18,137,122, 83, 30,159, 44,
- 8, 27, 49,163, 69, 64,195, 32,172, 94,185, 84,207,227,208,139, 43,211, 94, 9,130, 64,248, 55,223,100,230, 5, 7,103,111, 83,
-169,212, 67,108,108, 68,117, 18, 19,229,119, 78,158,116, 48, 24, 12, 86, 97, 88,180, 58,238,238,238,197, 36,139,203,229,130,195,
-115, 4, 37,110, 0,158,125, 71,136, 92,122,227,252, 93,190,206, 86,140, 67, 82, 9, 78,136,237,202,118,237, 32,242,192,130, 22,
-253, 20, 7, 91,246, 87,156, 21,213,192,198,162,241,128,100, 57,196,193,161, 63,251,212,113,172, 37,196,245,125,105, 56,181, 58,
-233,119,109, 26,230, 0,120, 81, 81, 59, 55, 24, 12, 90,179,217, 12,146, 36,193,225,112, 74,218, 4, 94,253,253,247,223,113,231,
-206, 29,160,132,219,158,252,252,124, 51, 69, 81, 16, 8, 4, 0, 32, 41,167,191, 3, 77,211,160,105, 26, 23,110, 92,178,239,255,
- 89, 87,226,218, 31,167,209, 50,112, 0,178, 10, 12, 72,207, 51, 32, 87, 13,248, 55,153,137,128, 14,135,112, 63, 38, 31, 65, 13,
- 3, 40,138, 39, 14, 47, 13, 79, 27,139, 68, 85, 2,250,100, 61,102,234,234,147,132,199,175, 31,126,242,248,210,254,251,143,118,
-255, 26,241,162, 69,147, 54,170, 34,101, 2, 10, 10, 10, 88,130, 32,216,175, 71,206,120,181,109, 88,142,121,229,192,251, 12, 71,
- 39,120,249, 55,118,245, 53, 29, 29, 29,175,217,219,219,159, 43, 34, 71, 53,165, 82,233, 85,133, 66, 17,141,194,141, 30,135, 83,
- 83, 83,125, 85, 42, 85, 75, 20,110,206,138,207,202,202,106, 87,164,121,138, 47, 71, 19,182, 81,169, 84,126,101, 54,155,187, 23,
- 29,157,204,102,115,208,243,231,207,253,130,130,130, 30,123,121,121,221,243,242,242, 58,238,229,229,117,196,203,203,235, 72,104,
-104,232,114,139,187,135,191,120,217,240, 29, 46,242, 47, 35, 90, 40, 34, 89,235,138,206, 40, 38, 90, 0, 46,188,109,128,102,226,
-243, 31,153,198,141,131,221,145, 35,160,159, 63,199,208,240,112, 27,145, 72,180, 18,133, 62,154, 90, 74, 36,146,213,115,230,204,
-145, 58, 44, 90, 4,215, 75,151, 16, 23, 25, 9, 35, 77,223,174, 74,234, 52, 26, 13, 56, 28, 78,177, 38, 70, 44, 22,195,108, 54,
-163, 52,149,239, 59, 13,208,132,235,201,233,209,224,161, 22, 24,176, 5, 39,148,109,110, 14,120, 53,211, 41, 82,233,233,253, 66,
-197,245,254,193,177,153,211,202,154,173,110,170, 8, 78, 1,207, 78,128,132,132, 68,152,193, 84,106,189, 89,171,213,230,169, 84,
- 42, 4, 5, 5,217,223,185,115,167, 78, 96, 96,160,188,232,254,173,247,252, 48,205, 93, 93, 93,247,185,185,185,197,186,186,186,
-238, 3,208,188, 18,239,110,188,124,249, 50, 40,138,194,156, 57,115,144,159,159, 15,131,193,128,172,172, 44, 36, 36, 36, 64,175,
-215, 35, 41, 41, 9, 79,159, 62,133, 94,175, 71, 92, 92, 28,116,186,138, 39, 36, 12,195,192,198,198, 6, 90, 77, 1,126, 91,240,
- 29,102, 77,155,132,188,151, 81, 72, 74, 73,135,157,173, 24, 19, 38, 76,160,100, 50, 25,195, 48, 76, 45,179,217,220,129, 97,152,
- 53,214,124,167, 18,245,237,138,135,135, 71,192,146, 37, 75,252,190, 91,176,134,107,195, 41, 96,249, 82, 1,195,147,242, 89, 94,
-253,102, 24, 54,115, 37,119,197,178,159,158, 93,191,126, 61, 25,214, 57,239, 36, 1, 92, 9, 14, 14,246, 73, 78, 78, 14,244,245,
-245,173,231, 80,179, 54,159,175,112,203,229, 42,106, 40, 89,157,246, 38,225, 86,163,245,154, 53,107, 30, 94,189,122, 53,165, 50,
-152, 98,177,184,254,214,173, 91, 3,156,157,157, 3,104,161, 80,160,206,203,219,107, 82,171,246, 81,118, 50, 1,105, 99,215,233,
-208,161, 67, 81, 7, 14, 28, 72,171, 12,166,183,183,183,239,130, 5, 11,252, 27, 52,104,224,239,226, 89,135, 47,116,243,200, 18,
-184,215,204, 18, 54, 8,228,195,189,214,167,171, 87,175,190,119,253,250,117,171, 48, 41,138, 50,145, 36, 9,154,166, 33, 18,137,
-112,226,196, 9,140, 27, 49, 0, 30,110,246,168,231,235,139,246, 95,124,133, 3, 7, 14, 20,219,240, 80, 20, 85,230,136,190,101,
-209,132,136, 96, 5, 17,133,181,245,163,176,182,126, 84,176,130,136, 42,147,108, 21,253,189,180,103,172,234,141,202, 88,110,180,
-130,108, 29,187,112,225,194,143, 67,134, 12,225,117,238,220, 25, 55,111,222,196,176, 97,195,174, 28, 60,120, 16, 0,112,243,230,
- 77,124,253,245,215, 87,206,158, 61,139, 49, 99,198,160, 93,187,118,188,203,151, 47,175,134, 21,190,127, 76, 38, 19, 54,109,218,
- 4,147,201, 4,137, 68, 2,185, 92,142,174, 93,187,226,225,195,135, 99, 54,111,222, 28, 77,209,244,231, 93,186,127,134,163, 71,
- 14,226,233,163,135, 99,182, 44, 28, 84,105,167,192, 36, 73,162,115,120,120,102,166,191,127,246, 22,165, 82, 61, 92, 38, 19,249,
-166,165,201,207,239,219,231, 96, 5, 81, 35,204,102,115, 49,185,178,144, 14,203,193,225, 57,130, 35, 14, 0, 71,218, 4,247, 95,
-112,141,220, 16,220,229, 53,193,147,242,252,103,209, 60,114, 88,239,239, 60,209,251, 59, 79,244,152, 90,123,168,168, 6, 54,136,
-107, 96,108,231,137,181, 66,189,154,216, 66,153, 97, 64,228,207,113,241,218, 44, 44, 2,240,212,154,118,206, 48,204,227,228,228,
-100,240,120, 60,212,168, 81,195, 7,128,197, 46,112,227,200,145, 35,199,255,240,195, 15,147, 0,252, 80,116, 79, 18, 26, 26,234,
- 95, 80, 80,128,231,207,159, 3,192,157,114,180,193,197,187, 12,179,149,113,252,218,174, 13, 16, 88,127, 52,100,178,134, 72,206,
-214, 35, 37, 91,143, 13,191,245, 68,212,229,249,184,115,106, 48,226,211,210, 32,116,233, 5,179, 73, 23, 96,197,164,222,245,143,
- 63,254, 32, 46, 95,190, 76, 48, 12, 3,163,209,200,230, 43,149,236,221, 43, 87,160,185,120,145,176,177,177, 33, 90, 53,109, 83,
-176,101,254,209, 91,135, 86, 93,185, 99, 80, 87,122,162,254, 62, 50,235,213,171, 87,205,247,237,219, 23, 10, 96, 86,131, 6, 13,
-174, 39, 36, 36,180,184,116,233, 82, 61,119,119,247,149, 85, 5,181,184,133,136,139,139,123,227, 40,114, 11,161, 47, 34, 13,157,
-139,200, 92, 15, 0, 95,227, 61,118,217, 87, 66, 46,252,139,141,225,143,226,173,221,134,111, 19,173,146,142,194,224, 37,147, 73,
-141, 70, 67,210,233,211,167, 13, 36, 73, 66, 36, 18, 97,200,176, 97,228,111,191,254,218,122, 64,243,230,231, 70,125,252,241,241,
-115,103,207, 6,135,132,132,128,101, 89,144, 36,137, 61,123,246,104,180, 90, 77,150,135,135,135,157, 53,157, 70,201, 6,164, 84,
- 42,139,137, 86, 94, 94, 30,156,157,157,173, 94, 58, 84, 41,113,230,236,137,168, 28,214,252, 69, 66,231, 23,203, 12,139,211,122,
-134,228, 50,102, 78,158,217,136, 60, 13,139,124, 45, 56, 55, 73,121,200, 16,239, 94,134,152, 14, 33, 79, 47, 70, 95,203,210,154,
-181,149,218, 45,145,145,145,241, 93, 88, 88, 88,150, 66,161, 32,108,108,108,224,230,230, 70,246,232,209, 35, 51, 49, 49,241,135,
-170,126, 17,123,123,251,254,161,161,161, 17,201,201,201,125, 46, 94,188, 88,235,210,165, 75,125, 66, 67, 67, 35,236,237,237,251,
- 91, 9,177,119,198,140, 25, 42, 30,143,135,102,205,154, 33, 63, 63, 31, 69,187,124,202, 61,172, 89, 34,229,114,185, 88,187,228,
-123,204,154, 54, 9,217,209, 55,113,255,202,105, 92, 72, 35, 48,115,193, 79,224,114,185, 85,242,245, 85,215, 81,212,160,129,171,
-244,201,215,195,250,165, 76,159, 54, 77,122,239,222, 61,122,252,196,175,217,184,212,108,240, 58, 47,165,240,209,119,228, 31, 42,
- 71,116,233,212, 30,115,102, 77,110, 80,228,180,179, 92,169,239, 40,106, 16,224, 42,125, 60,121,212,128, 87, 19, 39, 78, 20, 46,
- 94,188, 88,219,188,121,115, 77,122,122,186, 80, 44,147,251,114,108,237, 2,226, 82,211, 36,205,155, 55,143,249,226,139, 47,114,
- 43,139, 57,115,230, 76,209,201,147, 39, 57, 97, 97, 97,166,156,156, 28, 9, 45, 20, 6, 17,124, 65,211,215, 57, 57,182,125,194,
-194, 94,244,233,211, 71, 93,228,176,212,106,204,217,179,103,139,158, 62,125,202,105,222,188,185, 49, 45, 45, 77, 42,182,119, 8,
-164,236,228, 77, 98, 83,211,109,154,134,132,188, 28, 63,126,188,170,188,116,150, 36, 41, 82,169, 52,185,101,203,150,248,249,231,
-159,177, 98,197, 10,124,250,233,167,120,248,232, 33,186,140,159, 4,191,177, 95,227,200,181, 27, 72, 78, 78,198,188,121,243, 16,
- 24, 24, 8, 46,151,251,180,212,246, 56, 38,154,184,151, 6,226, 94, 26, 8, 98, 76, 52, 97,185, 46, 83,179,245, 67, 30, 74, 62,
- 95,218,115,119,102,151,174,233, 10, 86, 16, 81,229,217, 97, 85, 68,182,250,244,233, 51,206,226,194, 97,248,240,225, 87, 86,174,
- 92,217,106,248,240,194,137,118,179,102,205, 48,127,254,252, 86, 51,103,206,188,178, 96,193, 2,180,111,223, 30, 94, 94, 94, 21,
-110,124, 49,155,205, 48,153, 76, 24, 48, 96, 0, 76, 38, 19, 94,191,126,141,103,207,158, 97,221,186,117, 96, 89, 86, 0, 0, 10,
- 87,247,198, 60, 30, 15,127,220,189,173,158, 53, 60,100, 71, 37, 52, 89, 68,201, 73, 76, 65, 65, 1,250,140, 29,155,153, 84,183,
-110,246,154,204, 76,245, 8,153, 76, 84, 59, 62, 94, 46,213,235,221, 80,142, 93, 34, 65, 16, 96, 24,166,152, 88, 89, 8,215,219,
- 71,209, 64,105,149, 24,212,204,177, 75,219, 83, 0, 0,109, 6,185,162,199,212,218, 67, 21,222,162, 95, 90, 15, 44, 84,122, 31,
-152,255,138,205, 79, 49, 47,134, 17,143, 43,161,177,190,121,243,230, 77,216,217,217, 33, 44, 44,140, 79,146,228, 34,203,124, 21,
-133,190,179,150, 89,176,248,124,254,210,193,131, 7,147,185,185,185,184,127,255, 62, 0,156, 45,171, 95, 98, 89,182, 56,239, 5,
-217, 4,204, 12, 15, 87,239,158,192,169, 75,251, 17,155,252, 26,241, 25, 90,128, 99, 11,173, 42, 9, 6, 77, 50,244,185,119,161,
-212,137,172, 74, 48,151,203,125,221,160, 65, 3,182, 73,147, 38, 44,203,178,120,249,242,165, 41, 46, 62,222,116,123,249,114,246,
-193,232,209,132,244,217, 51,174, 80, 40, 36, 60, 61, 61, 33, 16, 8, 24,129, 64,144,245, 55, 14,222,127,137,187,133,191,192, 45,
-196,135,212,106,177,248,119, 74, 42,222,220,109, 88,236,192,180, 52,135,165, 96,109,132,253,246,175,254,205, 54,108,192, 32, 85,
- 96, 96,160,204,205,205, 13, 4, 65,160,103,175, 94, 68,232,197,139, 82,218,213, 21,246,141, 26, 21, 47, 71,156, 57,125, 26, 39,
- 78,156, 80, 29,253,253,144,219,176, 17, 35,186, 1,216, 90, 78, 98, 56,124, 62,191,248,119, 83, 83, 83,193,231,243,139,109, 34,
-148, 74, 37, 28, 29, 29,145,154,154, 10, 43, 87,230,182, 77,159,118, 99, 90, 70,200,119,158, 33, 82,154, 56,174, 74,131,153,101,
- 65, 19,102, 64,195,194,104, 6,116, 70, 22,141,107, 83,242, 83, 26,147, 44,242,230,193, 24, 0,219, 42, 83,122, 58,157,238,252,
-189,123,247, 70, 51, 12,179, 31, 0,121,241,226, 69,230,241,227,199,227, 96,189,225,250,187,106,123,145,104,234,185,115,231,228,
- 83,167, 78,205,137,140,140,204,235,218,181,171,237,186,117,235,228,237,218,181,155,154,149,149,181,219, 26, 69, 96, 66, 66,194,
-214,196,196,196,113, 77,154, 52, 65,118,118, 54, 12, 6, 3,162,162,162,224,237,237,141, 59,119,238,192,199,199, 7,183,111,223,
- 70,189,122,245, 96, 54,155,161,213,106,193, 48,140,185,162,206, 60, 59,243, 53,144,149,128,148,155,199,241,236, 65, 20,206,165,
- 16, 88,181, 59, 2, 53,106,121, 86,201, 79,141,143,147,200, 95,225,104,127,106,241,220,217, 78,113,231,247,224,224,166, 85,204,
-133,227,199,253,120, 82,140,254,104,192, 87,159,233,141,168, 9,128,215, 34,164, 9, 58,203,158,154, 69,181,144,118,238,113,249,
- 14, 22,125,156, 68,254,206, 14,246, 39,255,179,232, 7,233,203, 19, 91,176,119,237,207,236,129,237,187, 2,181, 64,136,191,191,
-127,103,146, 36,237, 0,104,139,236,188,172, 10,109, 83, 26,230,153,136,136, 96, 45, 16,114,248,240,225,206, 34,145,200, 5,128,
- 81,173, 86,191,122, 31,204,179,145,145,193,150,116, 18, 4,225, 4,192,192,178,236, 75, 84, 50, 4, 79,223,190,125,231,127,253,
-245,215,211,204,102,179, 99,137,217, 57,181,116,233, 82, 14,195, 48, 20,203,178, 6,146, 36, 13, 39, 79,158, 52,155, 76,166, 20,
-173, 86, 59,246,125,122,145,207, 62,251, 12, 55,110,220,152,139,194, 77, 24,214,106,171,223,176,211, 42, 10,217, 83,101,252,139,
- 23, 47,206,251,252,243,207,167,239,222,189,251,217,202,149, 43,187,143, 25, 51, 6,123,246,236, 65,221,186,117,241,199, 31,127,
-224,187,239,190, 3,128, 86, 51,103,206, 60,178,113,227, 70,175,184,184,184,165, 86,104, 52, 96, 50,153,176,107,215, 46,244,236,
-217, 19,142,142,142,112,117,117, 5, 65, 16,231, 71,140, 24,241, 43, 0, 80, 4,197, 5, 0,157, 86,167,243,245,109, 98,181, 6,
-151,203,229, 22,247,117,105,105,105,197, 59, 5, 63,249,252,243,204, 13,139, 23, 99,135, 70,131, 17, 50,153, 40,201,221, 93,113,
-228,229,203, 81,143, 10, 59,103,182, 60,173, 78, 69, 36,203, 90,147, 6, 77, 42,102,252,190, 48,214, 5,192,167,109, 6,185,162,
-205, 32, 87, 52,233,225, 68,144, 20,129, 7,167,178,240,240, 76,246, 1,163, 18,231, 81,185,112, 57,143, 23, 45, 90,116,228,163,
-143, 62,234, 94,191,126,125,140, 28, 57,242,139, 77,155, 54,113,141, 70,227, 68,252,233,230,193,150, 36,201, 31,214,174, 93, 59,
- 74, 46,151,227,242,229,203,184,116,233,210,121, 0, 9,101,245, 75, 0,138,125,102,213,240,240,209, 62,141, 43, 16,101, 36, 95,
-197,149,203,191,163,110,224, 87, 16,186,116,131,220,119, 1, 12,209, 43,160,207, 58, 5,185, 71, 87, 36,197,189, 4,197,225, 63,
-172,200, 8,133,101,217, 71, 73, 73, 73, 94, 94, 94, 94, 68,108,108,172, 9, 0,107, 54,155, 89, 67,235,214, 70,191,197,139,233,
-135, 95,124, 65,180,120,250,148, 98, 9,130,137,138,138, 2,128, 39,255,141, 81,220,226,110,225,225,195,135,101,185, 91,168,148,
- 52,104,208,160,213,165, 75,151,248, 90,173, 22, 23, 46, 92, 64,211,166,197,123,187,254,171,222,239, 75,114,145,127,153,140, 42,
-229,222,186, 55, 52, 90,111, 84,108,134,160,235,249,248,152,185, 36, 54,247,236,214, 77,125,239,222,189,226, 89,159,246,214, 45,
-168, 78,156,128,217,108, 6,203,178,184,116,241, 34, 6, 15, 26, 84, 64, 83,196,134,218,181,107,177, 4,251,134,239,150, 14,165,
-204, 30,194,194,194,194,138, 59,159,196,196, 68,136,197, 98,240,120, 60, 48, 12, 3,147,201, 4,138,162, 96,107,107, 11,147,201,
- 84,154, 10,230,109, 76,163, 57, 91,213,103, 99,151,129,169,174, 5, 6,118,180, 93,109,212,228, 10,139, 27,167,139, 13,129,238,
-129, 52, 28, 56, 25,236,217,165, 31,167, 48,186,172, 62,120,119, 71, 87, 69, 91,254,125, 26, 54,108,248,235,224,193,131, 73, 0,
-232,208,161, 3,217,176, 97,195, 95, 80,126,168,156,114, 49, 5, 2, 1, 31, 0, 34, 34, 34,178,159, 61,123,246,105, 68, 68, 68,
-118,201,251, 86, 98,174, 91,178,100, 9, 68, 34, 17, 76, 38, 19,244,122,125,177,125, 86,201,179,193, 96,128,131,131, 3,142, 30,
- 61, 10,179,217,124,180,162,116,122,212,172, 5,194,177, 14,182, 70,156,195,165, 76,110, 85, 72, 86, 49,102, 29, 23,113, 61, 23,
- 7,251,211,255, 89, 56,207, 49,231, 69, 20,146,146,146,216,147, 39,142, 94,215, 2,201,121,249,152,149,171, 66, 61,141, 30,130,
-166, 94, 72, 56,189,246, 91,118,102, 27, 24, 81,250,174,193, 98, 76, 63, 23,113, 61, 55, 71,251,147, 63,253,103,161, 52,247, 69,
- 20, 82,211,210,112,236,104,196, 61, 45, 96, 89,110, 28,202, 48, 76, 0,195, 48, 1, 0,134,150, 67, 94, 42,133,169, 86,171, 27,
-168,213,234, 6, 31, 18,147,101,217, 6, 44,203, 90,141, 89,210, 38,106,217,178,101,209,169,169,169,131, 51, 50, 50, 58, 90,142,
-156,156,156, 14, 5, 5, 5,109,213,106,117,107,205,178, 90,182,106,181,218,169,160,160, 64,161,213,106, 27, 3,136,170, 68,157,
- 47,150,146, 94,167, 83, 83, 83,231,164,166,166, 18, 21,165,147, 26, 27, 77,236,252,105,242,239,107,215,174, 85,188, 39,254, 27,
-233,204,204,204,220,191,123,247,238, 32, 79, 79, 79,175,161, 67,135, 98,205,154, 53, 88,185,114,165, 14, 0, 54,110,220,168, 43,
-161,201,242,136,139,139,107, 82,198,178, 97,135, 18,218,146,109,159,124,242, 9,123,233,210, 37,244,236,217,179,216,145,232,250,
-245,235, 97, 50,153,148,237,219,183,103, 0, 64,163, 85, 43, 89,134,133,222, 80,230,250,251, 59,229,201,227,241, 58,149,244, 23,
-104,113,198,204,227,241,192,178, 44,234,181,106,149,153, 27, 24,152,189, 41, 47, 79, 61,167, 65, 3,155, 81,190,190, 67,235, 3,
-131, 74,195, 36, 8,226, 13,173,206,219, 71, 37, 52, 89, 37,211,153,161, 73,193,200,223, 23,198,158,176,104,182, 4, 18, 14,180,
-249, 38, 28, 90, 28,251, 90,251, 26,235,203, 34, 63,229,229, 61, 59, 59,123,252,226,197,139,117, 50,153, 12,159,125,246, 25, 22,
- 44, 88, 48,162, 85,171, 86,121, 78, 78, 78, 55,234,214,173,251,160, 95,191,126,169, 81, 81, 81,227, 67, 67, 67,241,252,249,115,
-252,244,211, 79,185, 57, 57, 57, 3,203,195, 36, 8,162, 88,147,215,163, 75,135,236,223,126,249,153,105,255,209, 56,136,132, 54,
- 48,210, 30,200, 46, 48, 34, 71,197, 66,207, 15, 1,143,203, 71,199,230,254,184,113,114,139,218,172, 87,109,173,168,206, 23, 20,
- 20, 28, 24, 50,100,136,146,203,229, 66,175,215,179, 52, 77,131, 95,104,119,204,208,159,126,106,104,241,248,177,201,204,178, 12,
- 65, 16,248,230,155,111, 84, 57, 57, 57,187,171,210,142, 42, 33, 37, 49, 63,148,187,133, 14,111,141, 63, 31,194, 45,196, 95,145,
-247,127,179,172, 43,229,248, 83,163,101,217, 82,105, 57, 19, 4, 99, 54,155, 25,212,246,172, 45,141,139, 77, 88,213,183,111,216,
-240,206,157,187,136,186,116,233, 34,240,143, 46,156,141, 70, 68, 68,224,224,193,131,234, 83,167, 78, 41,249, 52,181,209,163,134,
-135,179,217,204,128, 32,152,114,217,176, 84, 42,157, 56, 99,198, 12, 97, 94, 94, 30, 86,174, 92,201, 4, 5, 5,145, 98,177, 24,
- 6,131, 1, 27, 55,110, 52,250,251,251,211, 36, 73, 34, 47, 47, 15, 36, 73, 62,181, 50,131,247,243, 18,146, 59,254, 26,218,251,
- 96,147, 47,135,217,251,133,182,144,181,245,112,131,177, 17,139,148,196, 88, 60, 59,123, 42,231,209,201,229, 89,208,166,247, 70,
-197,225,129, 74, 27, 8,190, 63,117,234,148,211,248,241,227, 89,173, 86, 75, 36, 36, 36,176, 11, 23, 46,116, 26, 57,114,228,247,
- 41, 41, 41,253,171,248, 81,136,220,220, 92, 16, 4,193, 20,117, 36,150, 89,127,101,214,229, 30,110,221,186,245,112,175, 94,189,
-122,180,111,223, 30,209,209,209,197, 75,132, 37,137,150,101,247,225,162, 69,139,114, 1, 76,175, 8,148,166,105,172,220,186, 31,
-185, 57,153,112,118,118,133, 64, 40, 68, 85,119, 88,242, 72,114,206,143,243,102, 59,101, 62,185, 65, 60,188,126,142,217,119, 63,
- 61,195,100,102, 75,247,248,159,159,194, 22,177,255,242,103, 51, 36, 53,231,199,133, 63,216, 90,150, 53,119,223, 77, 85, 18,102,
-118,252,123, 53,145,127, 11,230,223, 44,174,174,174, 72, 77, 77, 37, 92, 93, 93,217, 34, 27, 45,182, 28,162,245,102, 5, 47, 92,
- 46, 35,202, 91, 54,172, 42,126, 76, 76,204,194, 70,141, 26, 77,126,254,252,249, 62, 63, 63,191, 49, 0,106,232,116,186,220,153,
- 51,103,254,103,227,198,141,195,173,209,100, 1,192,158, 61,123,150, 15, 27, 54,236, 68,183,110,221,190,101, 24,166, 97,137,129,
- 61,198,201,201,169,120, 9,247,117,122,218,180,209,195, 7, 76, 43, 40,200,177,218,207,157, 68, 34, 25, 53,115,230, 76,129, 74,
-165,194,234,213,171, 25,127,127,127,210, 50, 41,218,190,125,187,201,199,199,135, 19, 54,110, 92,230,178,180, 52,204,191,124, 89,
- 53, 45, 32, 32,104,211,179,103,141,193, 48,219,202,210,234,148,166,201,178,152, 93, 84, 81, 82,138,200,214,122, 0,159,182,232,
-235,130,195, 75, 98,145, 19,167,255, 15, 76,120, 9, 43,194, 2,149, 34, 73, 7, 14, 28,232,152,158,158,126,120,246,236,217,182,
-141, 27, 55, 70, 64, 64, 0, 45,145, 72, 66, 44,238, 98,242,242,242,112,230,204, 25,172, 89,179, 70,255,232,209,163, 94,229, 45,
- 87,153,205,230, 12, 31, 31, 31, 75, 57,176, 4, 65,100, 41,117,132,237,222,250, 33,146,161,163,247, 17, 87,110, 95, 67,138,129,
-129,206,200,160,182,103, 48,218,126,186, 12, 71,142, 63, 48,167,196, 61,126,108,212,228,108,176, 34,189, 47, 95,188,120,113,104,
-222,188,121,125,191,253,246, 91, 97,102,102,166, 89,167,211, 49,251,247,239,167,134, 14, 29,106,102, 57, 28,134,203,225, 96,226,
-196,137,154,220,220,220,223,129,191, 53,192,244, 95,226,110,225, 47,112, 11,241,193,180, 89, 37,207,255, 43, 82,106, 11,101, 40,
-242,234,154,181,191,117,218,179,107,183, 11, 69,145, 46, 47, 95,189,186,221,189,119,159,228,211,167, 79,203,185,182,182, 77, 1,
- 48,250, 49, 99,174, 27,116,154,236,200,195,135,107,214,174, 93, 43,176, 40,168, 52,203, 80,228,213,242,126,176,160,160, 64,117,
-249,242,101,245,244,233,211,137,196,196,196,157,206,206,206,253,142, 31, 63, 46,233,221,187,183, 38, 58, 58,250,128,139,139, 75,
-143,208,208, 80,233,228,201,147,117, 5, 5, 5,149, 9, 60,250,152,125,157, 83,255,214,236,165,159,223, 90,242,219,199,224, 80,
- 45,161,163, 1,198,120, 21,134,252,211, 0,118,162, 18,254,142, 74,138, 88, 44, 14, 20,137, 68,184,119,239, 94, 78, 72, 72,136,
- 94,171,213,114, 23, 44, 88, 96, 47, 22,139, 3,171, 90,240, 44,203,178, 57, 57,179, 49,226,226, 0, 0, 32, 0, 73, 68, 65, 84,
- 57, 96, 24,134, 3,128, 40, 58,131,169,252, 94,252,254,221,187,119, 63,188,119,239,222, 79,186,116,233, 2, 47, 47, 47, 24,141,
- 70,248,248,248, 64,175,215,195,219,219, 27, 58,157, 14,115,231,206, 69, 94, 94,222, 36,148, 19,243,140, 32, 8,152, 76,166, 98,
- 99, 91, 55,247,154,133,126,122,222,195,141,133,152, 38,189,158, 70,110, 66, 70, 86, 38,179,247,143,244,116,181,193,220,241,197,
-107,245,163,183,159, 83,155,161, 10, 29, 58, 33, 25, 0,116, 76,249, 17,231,197, 60,120, 61, 59,186, 30,233, 25,153,216,115, 55,
- 53, 87,101, 96, 62,125, 86, 10,102,165,210,249, 47,193, 12,158, 27,141, 62, 19,172,127,246,125,196, 90, 66, 85,150,220, 75, 3,
-113, 71,180,137,197,218, 77,165,250,200,122, 79,252,195,207,159, 63, 63, 12, 0,143, 31, 63, 78, 28, 48, 96,192,180,216,216,216,
-121, 0,142,197,197,197,173,173, 12,208,166, 77,155,158, 3, 24, 86,222, 51,187,151, 14, 59, 4,224, 80,101,112,243,243,243,181,
- 81, 81, 81,218,201,147, 39, 19,137,137,137,199, 93, 92, 92, 62, 57,113,226,132,168,119,239,222,186,135, 15, 31,158,117,117,117,
-109,211,161, 67, 7,201,177,155, 55,147,213, 47, 95, 70, 70,198,198,186, 27, 25, 38,178,188,246,249,129, 73,214, 27,100,235,208,
-252,216, 31, 15,255, 24,219,129,209,225,128, 62, 7,215, 1, 36,189, 7,230,165,171, 87,175,250, 13, 26, 52,104,111,215,174, 93,
- 91,248,249,249,161, 70,141, 26,120,246,236, 25, 94,191,126,141,251,247,239, 35, 34, 34, 34, 66,171,213, 86, 24, 80, 59, 59, 59,
-251,221,240, 68, 2,185,235,150,213,115, 34,110, 95,105,234,211,186,203, 16, 97,128, 43, 3,189,129, 69, 98,252, 75,204,157,181,
- 65,157, 26,255,252,177,193,100,232, 5, 43, 55,234,104, 52,154,117, 43, 86,172,160, 35, 35, 35,187,172, 90,181, 74, 90,179,102,
- 77,138,203,229,146, 0,216, 59,119,238,176, 19, 38, 76, 80,101,102,102, 30, 85, 42,149,235,254,230, 49,250,210,171, 87,175,130,
- 41,138,250,160,238, 22,222,195, 45, 68,181,124, 72,241,244,116,247,171, 83,211,117,140, 87, 13,247,113,158, 53, 61,194, 75, 51,
-114,247,146,201,164,158,181,220, 70,121,213,112, 31, 87,167,166,235, 24, 79, 79,119, 63, 43, 84,139, 94, 54, 54, 54,199, 21, 10,
- 69, 16, 0,216,218,218,246,176,179,179,123,100,107,107,219,163,104, 22,216, 67, 34,145, 60,241,247,247, 31,249, 55,170, 43,203,
-197,244,241,241, 25, 80, 80, 80,240,133,143,143,207, 0,203,245,203,151, 47,139,175,171,130,233,225,225,209,254,206,157, 59,253,
-151, 46, 93,250, 89,221,186,117,123, 44, 92,184,240,179,223,127,255,189,191,187,187,123,227, 42, 96,242, 1,236,160,105, 58,157,
-199,227,101,208, 52,157,110, 57, 56, 28, 78, 58, 69, 81,233, 0,214,150,161, 45,235, 80, 98,150,115,197,217,217, 57,206,217,217,
- 57,206,197,197, 37,206,197,197, 37, 78,161, 80,188,115, 56, 56, 56, 92,177,182, 60,125, 93, 36,173, 66,106, 72,175, 54, 80, 72,
-174,212,119, 22,251,126,136,111,228,235, 34,105,213,180,134,237,213, 6, 10,233,229,255,111,152, 65, 46, 96,217, 53,190, 44,187,
-198,151, 13,114, 1, 91,209,245,135, 84,251, 43, 20, 10, 86,161, 80,204,249,171,150, 18,202,192,255,219,219,251, 7,196,244,146,
- 74,165,187,107,212,168, 97,233,235,186,217,216,216,156,151, 72, 36,221,138,250,186,110, 98,177,248,162,191,191,255,144,138, 48,
-229,114,249, 29, 39, 39,167,180,162, 35,213,217,217, 57,213,217,217, 57,213,201,201, 41,197,201,201, 41,197,209,209, 49,217,114,
-216,217,217,221,168, 98,222,157, 0, 52, 3,208, 24,128,205, 7, 44, 79, 79, 0,163,139,250,160,197, 0, 70, 2,104,248, 1,190,
- 17, 65, 11,229, 99,249,118, 30, 87,105,137, 99, 62, 45,113,204,231,219,186, 95, 45, 39, 4,143, 53,152,245,228,114,249, 2, 27,
- 27,155,223,165, 82,233,101,169, 84,122,216,193,193, 97, 33,128,122,255,165,186, 36, 1,176, 17,133,254,153,142,161,112, 41,252,
- 48, 10, 55, 21,212,252, 7,214,249,255,207, 50,234,191,245,195, 29,170, 49,171, 49,171, 49,171, 49,171, 49,171, 49,255,133,152,
-100,117,121, 86, 19,173, 74, 18,173,183, 15, 0,229,120,134,175,150,106,169,150,106,169,150,106,249,127, 44, 76,117, 17, 84, 75,
- 37,165,212,165,101,162, 28, 86, 90, 25, 95, 83, 85, 97,182,103,170, 49,171, 49,171, 49,171, 49,171, 49,171, 49,171, 49,255,223,
- 97, 86,203, 7,148,106,181,106, 53,102, 53,102, 53,102, 53,102, 53,102, 53,102, 53,230,255,186, 84, 47, 29, 86, 75,181, 84, 75,
-181, 84, 75,181, 84, 75,181,252, 69,178,174, 4,225,122, 99, 9,177,154,104, 85, 94, 72, 0, 95, 0,232, 3,160, 14, 10,163,217,
-239, 7,240, 43,170,182,166,111, 3, 96, 26,128,150, 40,220,157, 19, 3,224, 50, 10,119,231, 20, 84, 23,119,233,226,224,224, 48,
-131,166,105, 59,160, 48,180,137,229, 92,242,255,102,179, 57, 87,169, 84, 46,252,139,146, 64,193, 74, 15,202,150,180,150, 76, 91,
-201,179,209,104,252, 43,211, 89, 45,255, 76,241,145,203,229, 59,178,179,179, 7,162, 68,144,229,106,169,150,255, 5,113,116,116,
- 28, 99, 48, 24,102,114,185,220, 5,175, 95,191,254,237,255, 81,214,223, 33, 89,111, 16,173,200,200,200,139, 0,208,181,107,215,
-143, 0,192,206,206,238, 26, 73,146,158,149,249, 5,134, 97, 98,114,115,115,203,116,160,102,103,103,119,141,162,168,119, 48,141,
- 70,163,148,195,225,228,151,246,142,201,100, 74, 82, 42,149,141,255, 33,133, 72, 0,136,148,201,100,218,121,243,230,253,218,182,
-109, 91,143,148,148, 20,211,212,169, 83,219,252,241,199, 31, 93, 0,116,170, 36,217,106, 78, 16,196,150,160,160,160, 67,225,225,
-225,123, 67, 66, 66,120, 89, 89, 89,210,253,251,247,187,109,221,186, 53,138, 97,152,129, 40, 39,208,234,255,103,161,105,218, 46,
- 41, 41, 73, 10, 20,134, 38, 41, 34, 86, 48, 26,141, 48, 26,141, 80,169, 84, 8, 12, 12,252,224,191,235,226,226, 18, 76, 16,196,
- 42,137, 68,210,184,160,160,224, 54,128,113,169,169,169,127, 84, 38,173, 38,147, 9, 44,203, 22,167,211,207,207,175,250,131, 86,
- 78, 70,240,120,188, 79,189,189,189,155,234,116,186,156,152,152,152, 91,102,179,121, 54, 62, 92,140, 54, 91, 0,179,249,124,126,
- 72,157, 58,117, 60,158, 63,127,158,104, 48, 24,110,162, 48, 24,114,222,135, 32, 89, 31,125,244,209,149,213,171, 87,219,143, 29,
- 59,246,202,229,203,151, 91, 85,147,173,106,249,111,137,135,135,135,157, 74,165,218, 0, 32,152,166,105, 23,129, 64, 0,161, 80,
-152,198,231,243,239, 9,133,194,225, 87,175, 94,205,173, 44,166,217,108,158, 29, 23, 23,231,210,172, 89,179, 37, 78, 78, 78,115,
- 51, 51, 51,181, 6,131,225,108, 78, 78,206, 36, 0,202,242,222,125,155,139,252,203, 72, 86,201, 51, 44,164,139, 83,148, 49, 22,
- 64,219, 55, 24, 24,135,227, 30, 31, 31,239, 36, 16, 8,192, 48, 76,241, 96,246,246, 97,185,175,215,235, 17, 16, 16, 96,168, 96,
-192,241, 72, 76, 76,116,226,241,120,197,247,244,122, 61,220,220,220,152,164,164, 36,167,162,176, 7,197,162,211,233,224,238,238,
-254, 79,138,121,244,133, 92, 46,207, 75, 72, 72, 12,212,234, 12, 63,140, 28, 63,125,198,192, 62, 31,203,174, 93,187,198,116,234,
-212, 73,119,241,226,197, 47, 80, 24, 56,213,170,206,156, 32,136,173, 83,167, 78,157, 43, 16,217,216,159,187,246, 88,183,117,255,
-209,228, 32,159,218,196,164, 73,147,168, 9, 19, 38, 92, 10, 14, 14,222,193, 48, 76, 35, 84, 66,179, 37,147,201, 78,240,249,252,
- 90, 69,229,151,144,147,147,243,201, 63,176, 66,114,240,174,243,216,210,238, 85, 40, 89, 89, 89,208,104, 52,239, 28,126,126,126,
-214,198,202,172, 84,186,105,154, 62,188,104,209, 34,183,180,212, 84,252,188,108, 89, 51, 20,106, 50,155, 89,243,114, 70, 70,198,
- 59,233,244,245,245, 69,181, 84, 74,166,205,157, 59,119,209,231,159,127, 14,179,217, 12,141, 70,227,250,226,197, 11,255,153, 51,
-103,246,122,249,242,101, 83, 0,175,222,119, 50,238,237,237, 29,253,213, 87, 95,201,155, 54,109,138,162, 40, 21,174,151, 47, 95,
-110,182,113,227,198,193, 9, 9, 9,190, 0, 94,191,207, 15,200,229,242, 29,235,215,175,183, 23,137, 68, 56,114,228,136,125,251,
-246,237, 47,223,189,123,183,245,123,144, 45,210,222,222,126, 2,128,118, 12,195,240, 0,220,204,201,201,153,143,202,123,117, 87,
- 72, 36,146, 3, 36, 73,214, 6,254,244, 70, 79,146,164, 3, 65, 16,153,150,123, 4, 65, 56, 49, 12,115, 61, 59, 59,187, 69,117,
-117,252,119,139,189,189,253,136,244,244,244,213,124, 62,159, 43,147,201, 32, 18,137,192,225,112,192,225,112,106,240,249,252, 26,
-124, 62,191,115,104,104,232,184,243,231,207,151,235, 97,191,121,144,243, 80,144,196, 15, 20, 65, 82, 0, 64,210, 98, 27, 91, 91,
- 91,252,240,195, 15,226, 30, 61,122,136, 1,224,202,149, 43,225, 67,134, 12,105,159,148,148, 20, 80, 22,217, 42,141,139,252,139,
-100, 93,121, 3, 30,138,216,227,197, 55, 90, 46, 73,130,199,227,225,198,141, 27,176,198, 89,185, 37, 68, 66,185,189, 65,145,135,
-241, 63,254,248, 83, 1, 96, 25,104,120, 60, 30,174, 94,125,211,169,124,243,230,205,139, 27,251,223, 37,125,252, 10,157, 60,238,
-251,178, 48, 93, 97,171, 10,189,107,239,251,210, 23,109,126,138, 71,159, 9,115,250,169,181,134, 38, 0, 84,185, 57, 57, 57,183,
- 15, 30, 76, 9,242,241,225,238,216,177,163,169,155,155, 91,159, 74, 16,173,105,141, 26, 53, 58, 64, 9,109, 29,194,135, 12, 13,
- 31,206, 33, 13,131, 71, 79, 94,144,152,154,169, 26, 53,106,212,193, 35, 71,142,132,255,248,227,143, 79,166, 76,153, 50, 13,192,
-119,214,166, 95, 32, 16,212,122,250,244,169,183,217,108,134,159,159,223, 63, 49,140, 65, 16, 10,157,239,125, 14, 96, 87,209,189,
- 1, 40,244,220, 31, 12,224, 94,101,192, 44, 26,172,210,142, 15, 45,110,110,110,190,131, 6, 13,114,200,206,204,196,207,203,150,
- 89,110, 55, 70, 5,203,136,150,246,163,215,235,241,217,103,159, 13, 50,155,205, 28, 11, 9,212,233,116,250,188,188, 60, 45,254,
- 52, 44,125, 13,224, 99, 43,146,227, 41, 22,139,255, 3, 32, 88,163,209,184, 1,128, 88, 44, 78,102, 24,230,144, 74,165,250, 14,
-127, 6,240,173,244, 4, 23,128, 63,202, 14, 5,197, 46, 90,180,232,249,244,233,211, 95,253, 23, 48,107, 57, 59, 59, 47, 12, 11,
- 11,195,209,163, 71,113,236,216, 49,163, 80, 40,228, 12, 25, 50,132, 24, 55,110,156,236,171,175,190,234, 12, 96,197,123,126,230,
-206,115,231,206,149,215,175, 95, 31,251,247,239,199,253,251,247, 53,222,222,222,194,182,109,219,130,195,225,200,103,204,152,209,
- 9,192,150,247,249,129,236,236,236,249,147, 39, 79,222,186,107,215, 46,105, 76, 76, 12, 86,173, 90,229,208,175, 95,191,139, 9,
- 9, 9, 31, 85,130,108,241, 1, 76, 0, 16, 74, 81, 84,235, 33, 67,134,152,198,143, 31, 79,147, 36,105, 92,182,108,153,227,198,
-141, 27,251,209, 52, 29,156,149,149,101,205, 36,141, 4,240,195,240,225,195,135,157, 63,127, 94,118,235,214, 45,158,189,189, 61,
-204,102,115,177,166,152, 97, 24, 39, 75,157, 53,153, 76,240,245,245,117, 47,241,190,240,223, 74, 52, 72,146, 52, 48, 12, 67, 3,
- 16, 0,208, 85,116,253,191, 68,178,228,114,249,216,236,236,236, 95, 93, 92, 92,224,236,236,252,206, 88,171,211,233, 32, 16, 8,
-184, 46, 46, 46,235,123,244,232, 65, 31, 62,124,184,204, 37, 64,130, 34,102, 31,217, 61,207, 77, 46,147, 2, 0,150,175, 57,169,
- 6,128,223,127,255, 29, 41, 41, 41,144,201,100, 8, 8, 8,160,230,205,155,167,152, 52,105,210,207, 57, 57, 57,195,203,194,122,
-155,139,252,203, 52, 90,235, 74,187, 46,215, 70,139,101,217,226, 56,121, 86, 86,218,183,111,157,121, 11,143,208,235,245,120, 91,
-163,101,105,188, 52, 77,191,173,126, 4, 65, 16,108,121,152,165,200, 16,177, 88, 28,168, 82,169,126,169,196,236,182, 24,115,223,
-151,190,216,202,159, 58,192, 18,137,180,243,228,194,243, 86, 0,215, 98,135,175, 90,253,209, 71,110, 19,102,173,156,163,201, 74,
-201,156, 49,168, 91, 45,111, 23,123,161, 56, 55, 35, 79, 94,175, 94,199,183, 52, 50, 21,165,179, 77,120,120,248,182, 83, 55,226,
- 8,129,128,203,229, 80, 20,221,170,129,143,189,135, 45,101, 43, 5,108, 19, 95, 61,191, 54,116,232,208, 6, 83,166, 76,105, 93,
- 9, 76, 20, 13,184,216,190,125, 59, 8,130, 32, 43,147,247, 15, 40,103,202, 35, 89, 44,203,130, 32,136,157, 37, 6,149,157, 69,
-247,238,150, 32, 91,156,242,202,211,162, 77,181,144,170, 33, 67,134, 12, 50,153, 76,156, 18,157,196,219, 4,166, 52, 18, 99, 85,
-222, 21, 10,197, 41, 0, 31, 19, 4, 1,189, 86,171,255,207, 79, 63,149,252,243,157,183, 72,214,153,178,218,146,209,104,132,217,
-108,230,220,189,123,151, 46, 81,215,105, 0, 98, 0, 14, 44,203,130, 36,201, 7, 86,148,167,175, 72, 36,186, 22, 17, 17, 97,211,
-184,113, 99,130,199,227,193,100, 50,225,225,195,135, 30, 63,254,248,227,232, 51,103,206,116, 82,169, 84,126,120, 55,120,186, 53,
-223,200,255,242,229,203, 42, 47, 47,175, 82,137,163, 82,169,228,248,248,248,124, 84, 6, 41,250,171, 49,147,210,211,211,123,126,
-252,241,199, 99,210,210,210,162, 77, 38,211,183, 0, 2, 28, 28, 28,238,246,238,221, 27, 66,161, 48, 84,163,209,172,120,159, 58,
-239,228,228,212,163, 69,139, 22, 88,181,106, 21,126,252,241,199, 14, 0,206, 2,104,175, 84, 42,207,116,239,222, 29,118,118,118,
- 61,115,115,115,183,188, 71, 59,242,105,211,166,205,250, 31,126,248, 65,122,244,232, 81,120,123,123, 35, 63, 63, 31,223,124,243,
-141,211,247,223,127,127, 33, 55, 55,183,109,137,118, 81, 22,166, 31,159,207,223,178,107,215, 46,137,151,151,151, 23,151,203, 37,
-189,188,188,144,157,157, 13,173, 86,203, 95,176, 96, 65, 3,161, 80,248,199,138, 21, 43,182, 0,232, 93, 65, 58, 73, 0,243,215,
-174, 93, 59,102,212,168, 81,118,131, 6, 13, 50,235,245,122,236,221,187, 23, 20, 69,129,166,105,136, 68,162,226,224,213, 92, 46,
- 23,245,234,189,227, 36,253, 72, 57,249,205, 67,161, 29,170, 29, 42,183,236,122,166, 28,188,226,165, 15,154,166, 33, 16, 8, 32,
- 16, 8,192,231,243,241,244,233,211, 89, 2,129, 96, 25, 65, 16, 38,107, 48,137, 63,217, 69, 32,128, 91, 21, 93,227, 93,211,144,
-191,179,255,180,136, 59, 65, 16,203, 1,132, 22, 14,187,228, 69, 7, 7,135,137,233,233,233,241,214, 98, 42, 20, 10,251,172,172,
-172, 21, 10,133, 2,206,206,206,197,227,183,155,155, 27,140, 70, 35,210,211,211,193,178, 44,114,115,115, 33, 18,137,224,234,234,
-186, 98,212,168, 81,251,215,173, 91,151, 85, 42, 38,131, 31,187,247,155, 57,155,162, 40, 18, 0, 40,142, 68,242,213,116,160, 86,
-173, 90,104,213,170, 21,180, 90, 45,242,242,242,224,239,239,207, 33, 8, 34,156, 32, 8, 27,150,101,127, 3,112,238,127, 80, 81,
- 88,166, 49,252,220,183,215, 69, 45,209,226,185, 92,174, 85, 68,171,232,249,138, 52, 40,164,209,104, 4,151,203,125, 67, 35, 65,
- 16, 4,204,102,243, 27,247, 45, 68,171, 42, 68,125,220,184,113,204,250,245,235,199,228,228,228,172, 65, 21,151, 18,194,195,195,
-223,177,247,152, 52,105, 82, 82, 70, 70, 6,251, 89,199, 64,113,244,241,148,212, 58, 50,137,208, 81, 42,173, 45,144,201,237,178,
-178,178,174, 23,117, 38,214, 74,221, 70,141, 26, 9,183, 30,188,156, 52,242,235, 69,243, 26,123,217,219, 52,116,119,144,185,216,
- 10,121, 18,146, 80, 9, 76,198, 36,185, 92,238, 93,217,116, 91,250, 5,145, 72, 4,146, 36,255, 73, 26, 45,142,133,100,101,103,
-103,227,232,209,163,232,210,165,203, 93, 11, 9, 81, 42,149, 72, 77, 77,133, 66,161,184, 91,164,249,168,112, 25,145, 97, 24, 24,
- 12, 6, 24, 12,134, 98, 2, 83,162, 14, 21, 19, 24,203,179, 20, 69, 61,168, 98,218,231,201,100,178, 54,161,161,161,188,221,123,
-247,242, 88,150, 85,161, 48,134, 90, 1,203,150, 17, 32,251, 45, 49,153, 76,197, 90, 54,154,166,145,144,144, 80, 60,112, 89, 98,
- 75, 10, 4, 2,235, 84, 25,124,254,228, 61,123,246,216, 52,109,218,148,200,202,202, 2,195, 48,197,157,228,175,191,254, 42,232,
-211,167,143, 91, 84, 84,212, 12,157, 78, 55,183, 10,121, 37,202, 34, 68, 0, 96, 99, 99, 99,130,117, 30,179, 43,196, 52,153, 76,
- 68,203,150, 45,167,100,102,102, 54,208,104, 52, 11,172, 41, 70, 0, 71,146,146,146, 74, 14,236,127, 68, 71, 71,107,250,246,237,
- 43,172, 93,187,118,200,227,199,143,223,171,146,250,248,248, 52,167,105, 26, 55,111,222,212, 1,176,204,172, 47,222,191,127, 95,
-215,187,119,111,190,135,135, 71,243,220, 92,171, 77, 86,124,124,125,125, 79, 59, 57, 57, 9, 45,125,168,163,163, 35,189,110,221,
- 58,105,114,114, 50, 12, 6, 3,166, 77,155,134,174, 93,187,194,193,193, 1,147, 38, 77,114, 94,178,100,201,142,130,130,130, 70,
-229, 41,173,121, 60,222,182, 23, 47, 94,120, 43, 20, 10,225,141, 27, 55,208,176, 97, 67,100,102,102, 34, 45, 45, 13, 5, 5, 5,
- 72, 75, 75,195,240,225,195,157,126,254,249,103, 87, 43, 52, 89,197, 36,107,221,186,117,185, 7, 14, 28,160, 54,108,216, 32,165,
-105,186,152,104,113, 56,156, 98,162,101,137,173, 88,133,149,134,220, 34,210,102,151,151,151,247, 62,118,110,124, 0,188,146, 36,
-139,207,231,131,207,231, 67, 32, 16,188, 87, 92,214,127,137,184, 17, 4,241,152,203,229,242, 69, 34, 17,151, 36, 73,240,249,252,
-142,114,185,252, 81, 64, 64, 64,192,233,211,167,227,172, 1,209,106,181,219,248,124, 62,237,228,228, 4, 0,240,246,246, 70,195,
-134, 13,161, 82,169,152,188,188, 60,216,217,217,145,241,241,241,208,104, 52, 72, 77, 77, 69,205,154, 53,105,146, 36,183,161,208,
- 14,249, 29,185,118, 55,109, 13,128, 53,150,107, 7, 7,135,244,146,154, 78,129, 64, 0, 55, 55, 55, 36, 39, 39, 67, 42,149, 82,
-223,127,255,125,239,189,123,247,246,186,118,237, 90, 56,128,237, 37,160,230,254,139,109,180, 44, 36,171,228,249, 79,162,213,181,
-107,215, 57,145,145,145, 31,149, 54, 11,167,105,250,131,217,186, 88, 8,149,141,141,205,219, 90, 43, 48, 12, 83,150, 70,171,210,
-191, 35, 16, 8,132, 99,199,142,205,255,237,183,223, 42, 77,182,194, 86, 69, 23,107,177,222,153, 70,250,249, 93,155, 49, 99, 70,
-143,243,231,207, 39, 55,246,170,205, 17,167,196, 23, 8,108,236,236,224, 94,163,203,144,158,189,239,163,112,247,161,181,242, 34,
- 63, 63, 95, 88,199, 93,164, 39, 73, 45, 81,131,207,145, 42,196, 92,190,139, 76,230,198,213,235, 50,108,100, 50,158, 78,167,203,
- 69, 57, 65,160, 1,192,217,217,249,164, 80, 40,172,105,185,150,201,100,182, 44,203, 66, 36, 18, 65,161, 80, 72, 40,138,122, 86,
-162,113,197,167,167,167,119,172, 40, 97,118,118,118, 39,249,124,126, 77,146, 36, 65, 16, 4, 40,138, 2, 73,146, 32, 73,178,248,
-255, 20, 69,129, 32, 8,168,213,234,248,184,184,184,142, 86,228,215, 4, 32,152, 32,136,187, 71,143, 30, 69, 72, 72, 8,142, 31,
- 63,142, 79, 63,253, 20,121,121,121,120,248,240, 33,218,180,105, 3, 20, 46, 41, 90, 37, 37,141,223, 45,147,130,167, 79,159, 22,
- 19,151,146,135, 84, 42,125, 31, 21,251,149,176,176, 48,172, 95,191,158, 45,154, 76,136, 9,130,104,104,107,107,251,244,201,147,
- 39, 86,217,193,176, 44, 11,131,225,207, 71, 45,131, 87,145, 61, 68,165,130, 3, 83, 20,213,177, 81,163, 70, 68, 94, 94,158,133,
- 64,130,195,225,128,162, 40, 80, 20,133,213,171, 87, 11,155, 54,109, 58,147,207,231, 79,225,114,185, 74,163,209,184, 91,171,213,
- 46, 0,144,251, 79,234,145, 90,183,110,253,117, 98, 98, 98,215,154, 53,107, 70,188, 7, 12,107, 52, 26,245, 0,132, 20, 69,209,
- 31,160,143,162,138,234,150,182, 4,217, 55, 21, 93,243, 81,184, 76,108,149, 56, 56, 56,236, 56,118,236,152,123,205,154, 53, 97,
- 52, 26, 97, 50,153, 80, 80, 80,128,139, 23, 47, 66,167,211,193,100, 50,193,219,219, 27,179,103,207,214, 78,156, 56, 81,176,118,
-237,218,140,130,130,130,129, 21,192, 78,220,191,127,191, 88,161, 80, 8, 53, 26, 13, 94,189,122,133, 70,141, 26, 33, 63, 63, 31,
- 42,149, 10,106,181, 26, 6,131, 1, 74,165,210,206,108, 54,235, 43,192,154, 85,146,100,141, 30, 61,250, 1,143,199,107, 52,126,
-252,120, 36, 37, 37, 21,183,249,145, 35, 71,194,217,217,185,184, 45, 21,245,201,149,234,152, 57, 28, 14,248,124, 62,184, 92,110,
-110,141, 26, 53, 64, 16,132, 32, 62, 62,190, 42, 75,113, 54, 0,148, 52, 77,243, 74, 18, 44, 62,159,143,155, 55,111,206,224,241,
-120,101,105,179,202,106,151,108,101,174,255,219, 66, 16,196,114, 46,151,203,151,203,229,220, 18, 19, 78,174, 68, 34,129,147,147,
-211, 42, 0,157,173,204,119,144, 92, 46, 47,238,223, 3, 3, 3,145,152,152,120, 40, 47, 47,111,112, 70, 70, 6, 72,146,220, 70,
-146,100, 47,203, 36, 53, 39, 39, 7, 30, 30, 30, 65,101,225,181, 8,118, 25, 3,130,125, 67,163,245,214, 4, 13, 54, 54, 54,136,
-141,141,133, 74,165, 98,159, 63,127, 78,140, 29, 59,150,208,235,245,155,163,162,162,174,163,112,183,125,153, 92,228, 95, 34,149,
-183,209,178,104,180,172, 29, 0, 8,130,168,112, 54, 97, 52, 26, 37,254,254,254,165, 25,124, 17,165, 17,173,162,229,164, 42, 85,
-116,154,166,165, 85, 37, 91,111, 75,196,129, 93,206, 63,206,158, 54, 91,238, 90,187,206,148, 41,179, 56,221,186,117,187,177,117,
-235, 86,179,188,126,231,246,231, 78,110,119, 94,241,205,212,227,199,142, 29, 3, 10, 13,163,173,149, 43,145,145,145, 46,147, 38,
-140,195,236,201, 19, 79,216,120, 59,240, 36,132, 92, 44,208,169, 94, 75,192,106,248,117,125,187, 30,140,136, 72, 5, 16, 85, 30,
-136, 72, 36,170,249,248,241, 99,239,146, 27, 9,244,122, 61, 68, 34, 17,206,157, 59,231, 40, 20, 10, 29, 1, 64,163,209, 32, 32,
- 32,192, 90,141, 73,205,103,207,158,121, 75,165, 82,168,213,106,232,116, 58, 24,141, 70, 48, 12, 3,130, 32, 64,211, 52,120, 60,
- 30,196, 98,113,101,119,246,221, 3,240,121,151, 46, 93,118, 30, 63,126, 28,254,254,254,200,201,201, 65,116,116,180,133,100, 85,
-202, 70,203,162, 37, 42,105,143,197,225,112,176,195,203, 11, 35, 83, 82,138, 9,204,114, 91, 91,204,102,170, 22, 77, 35, 32, 32,
-128,189,114,229, 10, 78,156, 56,129,238,221,187, 19,135, 15, 31, 54,152,205,102,110, 74, 74,202,131,148,148, 20,171, 48,152,255,
-107,239, 58,195,155,184,210,238,153, 25,117, 89,150,123,197, 96, 3, 1, 76, 7,211,123, 13, 16, 32, 75, 18,218, 38,212,133,152,
- 16,216, 44, 36, 11, 36, 31,201,134, 56,148, 64, 96, 33,129, 80,188, 16,218, 66, 18, 90,232, 16, 74,108, 76,232, 54, 4, 99, 27,
-211,221,155, 44,171, 90, 86,153,209,124, 63, 44, 41,178,113,145,108,153,146,213,121,158,121,172,209,140,142,239,220,185,229,220,
-247,190,247,189,102,179, 45,173,214,118,219, 94, 96, 57, 43,180,104,154,246,228,243,249, 40, 43, 43,131,213,242, 96,127, 52,107,
-214, 12,114,185,156,163, 82,169, 56,185,185,185,226,165, 75,151,254, 61, 46, 46, 46, 68,173, 86,191,253, 60, 91,161, 77,155, 54,
-133,191,251,238,187,153, 28, 14,135, 29, 49, 98,196,228,140,140,140, 55, 66, 66, 66,206,253,250,235,175,107, 0,180,114,150,207,
-223,223,255, 6,135,195, 9, 83,169, 84,188,125,251,246,153,212,106, 53, 47, 32, 32,160,192,218,118, 88,243,218,100, 50, 57,180,
-114,217,223,223,255,134, 76, 38,227,173, 95,191,222, 84, 92, 92,204, 11, 10, 10, 42,176,242, 40, 20, 10,222,190,125,251, 76, 42,
-149,138,231,229,229,117, 67,169, 84,214,202, 39,147,201, 38, 77,157, 58, 53,225,220,185,115,254, 20, 69, 33, 35, 35, 3,197,197,
-197,240,246,246,198,174, 93,187, 16, 30, 30,142,253,251,247,203,229,114,249,204,175,191,254,250, 83,139,200,170,205, 71,171,127,
-143, 30, 61,194, 21, 10, 5,188,189,189,161,213,106,113,227,198, 13,180,109,219, 22,185,185,185, 32, 73, 18,222,222,222,216,184,
-113, 99, 41, 65, 16,242,154,136, 68, 34,209, 27,209,209,209,222, 0, 16, 29, 29,237, 29, 29, 29, 93,101, 7,215,171, 87, 47,108,
-216,176,161,178,208,114,102, 96, 96,179, 58,217,137,163,178,158, 61,123, 34, 46, 46,110,161,147,226,200, 96, 21,109,149,173, 89,
- 2,129,192,233,197, 52,102,179,153,135,114,151, 6,194,145,243, 23, 0, 3, 68, 34, 17,175,242,151,165,165,165,188,144,144,144,
-126, 78, 8, 95, 63,145,168,220,224, 20, 30, 30, 14,165, 82,201, 24, 12,134,137,187,119,239, 54, 1, 64, 84, 84,212, 68,134, 97,
-202,104,154,166,248,124, 62,180, 90, 45, 2, 3, 3,253,106,176,141, 46, 58,242,195,210,224,202, 62, 90, 33, 33, 33,136,138,138,
-130, 94,175, 71, 94, 94, 30,226,227,227, 77, 12,195,236,217,180,105,147, 57, 32, 32,224,111, 99,199,142,165, 18, 19, 19,231, 2,
-152, 95,157, 22,121,201,172, 89,177,213, 10, 45,139,130,140, 3, 48,176,242, 67, 86, 22, 63, 53, 9,173,218,166, 14,249,124,190,
- 34, 51, 51,211,195,190, 83,161,105, 26,161,161,161,102,150,101,137,170,132, 86,125, 76,193, 92, 46,215,243,147, 79, 62, 81,108,
-218,180,105,210,227,199,143,151, 56,242,155,125,115, 91, 99,103, 37,145,181,121,101,204,134,245, 43,151,250, 62, 56,181, 29, 91,
-191, 93,205, 48, 12, 18, 59,116,232,208, 79,163,209,112,188, 60, 76,144, 41,112,210, 34,178, 28, 21,133, 36,128,239,175, 93,187,
-150, 56,114,228,200,223,190,255,241,160,111,238,195,135,151, 5, 42, 89,158,180, 69, 75, 14,175, 81,248,155,234,178, 50,222,196,
-137, 19, 3, 0,140,173,173, 17, 83, 40, 20,200,207,207,175, 44,192,112,247,238,221,167,238,117, 40,113, 36, 9,134, 97,112,224,
-192, 1,136,197, 98,120,120,120, 84, 56,172, 34,171,142, 11, 21,210, 1, 96,196,136, 17,144,203,229,144, 72, 36, 14,167,171,178,
-120, 97, 89, 22, 6,131, 1, 6,131, 1, 70,163,145, 1,192,229,112, 56,152,145,157,109,179,242, 56, 35, 96, 42,163, 67,135, 14,
-236,165, 75,151,240,219,111,191, 65,171,213, 98,253,250,245, 8, 9, 9, 25, 12,224, 51,103,185,236,156,244, 25,149, 74,197, 85,
-169, 84, 54,235, 32,151,203,181, 89, 15, 28,180,228,241, 56, 28,142,109, 52,106, 61,236,173, 90, 20, 69, 33, 40, 40, 8,193,193,
-193,216,188,121, 51,175,105,211,166,163,159,103, 11,180,106,213,170, 22,235,214,173,219,182,115,231,206,147,147, 38, 77,250, 41,
- 57, 57,121,186,151,151,215,237,243,231,207, 47, 21, 8, 4,230, 58,214,239,176,220,220,220, 64,251,175,204,102,179,152,166,105,
-155,176, 45, 45, 45,117,120,128,193,229,114,195, 82, 82, 82,196, 0,176,116,233, 82, 46, 0,177,213, 25,220,202, 89, 90, 90,202,
-109,219,182,109,152,163,101, 61, 33, 33,161,223,208,161, 67, 47,157, 57,115,198, 39, 60, 60, 28, 57, 57, 57,200,201,201, 65,139,
- 22, 45,176,124,249,114,173, 74,165,234, 3, 32, 93,163,209, 28,118,144, 51,212,199,199,135,155,153,153, 9,154,166,209,185,115,
-103,108,220,184, 17, 19, 39, 78, 68,251,246,237,161, 82,169,144,146,146,130, 29, 59,118,248,240,120,188, 26,219, 14,157, 78,119,
- 56, 54, 54,182,113,101,139,214,228,201,147, 61, 10, 10, 10,108,101, 50, 38, 38,166,194, 20,162, 51,109,178,101,106,171,218,163,
- 46,160,105, 90, 42, 20, 10, 85, 2,129,128,111,245,207,138,143,143,119,218,154, 85,105, 0,232,204,249,115,131, 85,180, 86,209,
-183, 34, 56, 56,216, 97, 30,129, 64, 64, 88,219, 70,154,166,161, 84, 42,153,144,144, 16,219,244,126, 82, 82, 18, 19, 17, 17,193,
- 80, 20, 69,241,249,124, 16, 4, 1,177, 88, 92,109,131,207, 50,108,204,235, 19, 63,171,176,234,112,222, 39,128,209,104, 68, 82,
- 82, 18,140, 70, 35,226,227,227, 77, 95,127,253,117,174, 66,161,152, 7,128,115,250,244,233,169, 11, 23, 46,164, 2, 3, 3,135,
- 22, 22, 22,162, 54, 45,242, 18,137,173,167,172, 92,214, 94, 40,110,244,232,209,132,101,105, 37, 97, 21, 78,206, 8, 45, 75,229,
-171,181,231, 37, 8, 2,121,121,121,182,243,192,192, 64,167,255,151,163,240,243,243,211,246,234,213,203, 83, 38,147, 29, 94,181,
-106, 85,157, 44, 89,155, 87,198,108, 88,241,229,231,190,242,212, 43,200,206,205,131,188,208,148,120,241,246,227, 67, 0, 14, 1,
- 0,182,180,137, 35,222, 75,251,206, 81,206,214,254,162, 78, 92, 30,231,208,171, 35, 71, 55,158, 16, 61,159,124,255,253,247,251,
- 78,157, 58, 85, 57,105,210,164, 15, 36, 18, 73, 43,163,209, 88,114,240,248,241, 39, 19, 38, 76,104,202, 48,204, 84,212, 18,115,
- 68,167,211,101, 12, 28, 56,208, 62, 63,165,103,207,158, 13,122,242,228, 9,230,204,153, 83,148,147,147,163,176,191,215,145, 52,
- 26,141,198,140, 78,157, 58, 85, 59, 93,104,157, 82, 4, 0,181, 90,157,225, 68,150,190, 13,139,227,123,113,113, 49,238,222,189,
- 11, 14,135,131,158, 61,123,226,226,197,139,232,219,183,111,146, 51, 86,173,178,178, 50,132,135,135,163,172,172, 12, 90,173,182,
- 20,128, 96, 87,211,166, 0,128,185,197,197,184,241,245,215,184,178, 98, 5,236,203,179,163,232,216,177, 35,123,229,202, 21,220,
-190,125, 27,122,189, 30, 51,103,206, 4, 0,194, 82,118,157, 9,153,209,156,162,168, 17, 35, 71,142, 12, 5, 0,173, 86, 75, 92,
-187,118, 13, 66,161,208, 86, 23,142, 30, 61,138,156,156, 28, 16, 4, 1, 31, 31,159,176,146,146,146,166, 0, 30,215, 96,246, 39,
- 30, 63,126,140,175,190,250, 10,102,179, 25, 11, 23, 46, 68,203,150, 45,109, 2, 43, 35, 35, 3, 75,151, 46, 5,195, 48,248,252,
-243,207,209,162, 69, 11,152, 76, 38, 33,234, 24, 66,195, 21,248,240,195, 15, 31, 28, 58,116,232,100, 86, 86,214,107, 43, 87,174,
- 28, 64, 16,132,121,193,130, 5, 95, 73,165, 82,166, 62,188, 37, 74, 53,238,222,207,176, 9,161,202, 71,128,191,175,211,124,247,
- 30,102,217,126,207, 48,246,124, 12,252,124,125,156, 77, 98,169,201,100,210,190,249,230,155,222, 7, 14, 28, 32, 90,180,104,129,
- 71,143, 30, 89, 45, 67,165,112, 62,164, 67,142, 92, 46,111, 73, 81, 20,239,254,253,251,136,136,136, 64,143, 30, 61,176,108,217,
- 50,200,100, 50,208, 52,141,192,192, 64,179,201,100, 74, 50, 26,141, 23,106,225,138,153, 53,107, 22, 15,192,123, 22,203, 86,135,
-121,243,230,153, 87,175, 94,141,164,164, 36,155, 5,203,222, 25,222,217,169, 67,123,171,147,253, 17, 31, 31,191,144,207,231,179,
- 0,174,194,249, 64,207,134,202, 22,173,186, 88,179, 26, 10, 13,185,146, 49, 36, 36, 36,222,211,211,115,116, 73, 73, 73, 5,171,
- 86,159, 62,125,140, 65, 65, 65, 9,142,242, 72, 36,146, 18,138,162,252, 0, 32, 39, 39, 7, 30, 30, 30,188,135, 15, 31,174, 64,
-121,240,108, 52,109,218,116,133, 92, 46,231, 53,181,180,167,193,193,193, 48, 24, 12,213,186,177, 92,190, 89,176, 29,192,118,235,
-185,175,175,111,158, 82,169, 20,173, 94,189, 90,179, 98,197, 10, 29,195, 48,122, 0,231, 21, 10,133, 45,142, 86,126,126,190,146,
-203,229,250,122,123,123, 55,178, 10,173,170,180,200, 75,134,234, 45, 90, 22, 37,201, 86, 22, 68, 4, 65, 60,229,160, 94,139,208,
-170, 85,100, 49, 12, 83,193,202, 96,117,120,175,234,127, 89, 58,245, 58, 77, 29, 90, 68,150,240,224,193,131,187, 86,173, 90,117,
-213,209,223,217,251,104,109, 89,243,229, 74,171,200,250,253,183, 51, 56,156,166,148, 45, 92,177,118, 93, 93,223, 64, 27,127,113,
-199,160, 32,191,184,175,151,199, 72, 31,156,218,129,159,182,252,155,253,253,250,245,238,215,175, 95,159, 50,103,206,156, 38,150,
-130, 37, 7,112, 11,192, 4, 56,176, 74, 39, 39, 39,103,120,165, 78, 56,157,199,227, 5,137,197, 98,228,228,228,104,238,221,187,
-231,244,148,140, 76, 38, 27,222, 0, 5,144, 99, 21, 89, 50,153, 12, 41, 41, 41, 24, 52,104, 16, 0,224,226,197,139,232,211,167,
- 15, 18, 19, 19,209,165, 75,151, 36, 0,221, 80, 75,160, 86,147,201,164,104,211,166,141,205,186,165, 84, 42,205, 0, 16,157,151,
-135,216,144, 16,112, 56, 28, 92, 89,177, 2,139, 77, 38, 44,115, 82,192,119,234,212,137,189,118,237, 26,158, 60,121, 2,154,166,
- 49,102,204, 24,212,177,210,183,111,221,186,245,217,243,231,207, 7, 72, 36, 18,104,181, 90,104, 52, 26, 76,155, 54, 13, 19, 39,
- 78,132, 94,175,199,190,125,251,112,228,200, 17,120,122,122, 66,171,213, 66,171,213,250,140, 26, 53,234, 82,122,122,122,127, 0,
-247,171, 17, 90,236,240,225,195,145,144,144, 0,138,162,208,189,123,119, 20, 23,255,177, 24, 40, 40, 40,168,170,107,212,243, 20,
- 90, 28, 14,135,141,143,143, 95, 57, 96,192, 0,100,101,101,189,214,165, 75,151,245,211,167, 79,207,169, 47,175,143,151, 39, 58,
-181,109, 14,189, 94, 15,189, 94,143,208,208, 80,168,213,106, 60,120,240, 0,122,189, 30, 65,129,222, 78,243, 69,181,111, 97,227,
- 11, 12, 12,132, 86,171,197,227,199,143, 97, 48, 24,224,239,239,148,208,106, 60,124,248,240, 95,247,236,217,227,183, 99,199, 14,
-195,192,129, 3,249,235,215,175, 39,164, 82, 41,236, 58, 22,103, 17,127,241,226,197,240,161, 67,135, 70,166,166,166, 34, 62, 62,
- 30, 6,131, 1, 81, 81, 81,184,119,239, 30,122,245,234, 5,141, 70,115,245,250,245,235, 71, 28, 49, 12, 3,248,116,214,172, 89,
-176,138,173,132,132, 4,228,229,229,193,211,211,243, 41,161,101,245,125,180,172, 26, 15,117, 36,177, 86, 65,100,103,121, 90,236,
-237,237,109, 4,176,174,142,214, 39, 0, 64, 86, 86,150,160, 67,135, 14,122,161, 80,200,183,136,182,181,245,225,115, 37, 92,176,
-146,177, 90, 4, 7, 7,207,243,247,247, 31,218,172, 89, 51, 20, 20, 20,240,248,124, 62,250,244,233, 99,236,214,173,155, 49, 56,
- 56,120,174,163, 60, 2,129, 32,149,199,227,245, 47, 31, 76, 48,200,204,204, 4,203,178, 11,219,183,111,255, 15,181, 90,141,226,
-226, 98,190, 84, 42,181, 13,170, 35, 35, 35,161,215,235, 83,157,176,188,197, 68, 68, 68,124,202,227,241,150,201,100,178,170,194,
- 66,240,189,189,189,165, 60, 30, 15, 70,163,177,130,216,172,172, 69, 94,118,145, 85, 65,104,217,169,200, 10, 66,199, 25,139,150,
- 35, 86, 3,171,131,189,253,185, 85,212, 85,254, 95,117,141,161,229,229,229,165,183,138,172,101,203,150, 93,173, 11,199,254, 61,
-187, 67,188,204,165,141,115,175,158, 64,250,237, 68, 28, 74, 81,200, 22,174, 88,251,193,235, 99,223, 46,168, 44,204, 28, 65,203,
- 0,113,251,160, 64,191,184, 53,171, 86, 72,229,169, 87,144,151,159,143, 19, 87,175, 39, 26,129, 20, 0, 11, 93,105, 90, 6,202,
-167, 14, 41,138,122,145, 10,172,205, 25, 62, 47, 47,207, 42,178,162, 0,160,111,223,190, 73, 22,145, 5, 71, 45, 90, 10,133,162,
-242,150, 53, 67, 1,248, 91,159,159,195,225,160,207,167,159, 58, 45,178, 0,176,137,137,137,144,203,229,214,145, 98, 93, 69, 22,
-130,131,131,255,121,254,252,249,128,239,191,255, 94,181,115,231,206, 98,179,217,204,237,212,169, 83, 88,215,174, 93,137, 93,187,
-118, 1, 0, 38, 76,152,128,133, 11, 23,226,206,157, 59,240,240,240, 64,223,190,125,153, 37, 75,150, 4,206,155, 55,111,110, 65,
- 65,193, 7, 85,246,142,102, 51, 79, 40, 20,158, 3, 48, 56, 53, 53, 21, 0, 46,161,124, 11, 39,171, 21,161,218,107,142,116,190,
-106,181,154,235,233,233, 89,101,104, 8, 94,249,104,200, 89, 11,132,141,243,183,223,126,251,106,205,154, 53,135, 62,250,232,163,
-251,245,228,172,210,162, 53,122,244,104,232,244, 70,100, 23, 40,193, 48, 52,116,198, 66,167,249,236, 45, 90,163, 71,143, 70,105,
-153, 1,153,121,114,208, 52, 3,181,206,225,190, 92,252,234,171,175,158,254,225,135, 31,130, 47, 95,190, 12,134, 97,204,247,238,
-221,123,252,230,155,111, 74, 23, 44, 88,224, 87,143, 69, 70,223,190,253,246,219,227,126,251,237, 55,121,100,100,164,239,213,171,
- 87, 81, 88, 88, 8,154,166, 49,120,240, 96,240,249,252,204, 21, 43, 86,240, 0,124,235,232,187,177,136, 45,227,245,235,215,223,
-189,114,229,138,175,175,175, 47,223,220,186, 53,242,206,156,193,129, 3, 7,158,250,193,150, 45, 91, 0, 7,163,240, 91, 45, 78,
-215,174, 93,115,137,192,170,208, 83,243,249,117,158,126,124, 89,113,237,218,181,156,247,223,127,191,173, 84, 42, 93,215,175, 95,
-191, 65,126,126,126,164,143,143, 79,124,163, 70,141,254,209,169, 83, 39,135,103, 23,184, 92,238,116, 15, 15,143, 7, 52, 77, 83,
-195,213,223, 10, 0, 0, 32, 0, 73, 68, 65, 84, 26,141, 6, 90,173,182,188,145,166,105, 62, 73,146,104,218,180,169,173, 47,233,
-222,189, 59,130,131,131,153,180,180,180,233,142,242, 23, 21, 21, 85, 88,133, 88, 5,102,245,233,211,135,163,215,235,241,228,201,
-147,139,246, 23,170,210, 34, 47, 9,162,107, 20, 95,214,135,178,127,184, 70,141, 26,101,153, 76, 38, 54, 5, 96,111,221,186,197,
- 70, 71, 71,215,120,148,149,149,177,129,129,129,121, 85,116,126,176,231,212,235,245, 21,126,167,215,235,217,160,160, 32, 70,167,
-211, 61,197,169,211,233,216,176,176,176,156,154, 56,171,192,180,155, 55,111,110, 90,188,120,113, 15, 39, 50,200,198,201,110,110,
-205,238,216,177,227,175, 44,203, 14,232,215, 54,252,246,248, 78, 65,108,159,150,129,185, 71,246,239,153,200,178,236,128,202,135,
- 53,192,105, 77,156,173,131, 60,218, 12,105,215,164,228,247, 83,123,217,243,171,255,206,174, 25,211,146,237, 18,230,169,104,237,
- 47,114,118,143,152, 90,119, 75,111,215,174, 93,186,217,108,102, 13, 6, 3,219,174, 93,187,123,174,224,172, 3,106,226,236,140,
-114, 95,182,183,171,248,174,115, 61,210,249, 59,203,178,172, 92, 46,103, 53, 26, 13,171,215,235, 89,134, 97, 88,123, 0,248,221,
- 1, 78,214,104, 52,178, 37, 37, 37, 44, 28,247,185,171,146, 51, 36, 36,228,241,195,135, 15,217, 87, 94,121, 37,203, 98,142,159,
-167,213,106,217,202,208,106,181,236,160, 65,131,216,123,247,238,177, 17, 17, 17,101,247,238,221, 99, 67, 66, 66,238,214,146,206,
-102,141, 27, 55, 62,231,239,239, 31, 15,160,165, 19,215,106,204,207,125,251,246, 53,103, 89,118, 38,203,178,209,213, 28, 51, 89,
-150,109,253,188, 57, 45,249, 91,192,178, 44, 91, 90, 90,202,202,229,114, 54, 55, 55,151, 45, 45, 45,101, 53, 26, 13,123,243,230,
- 77,246,242,229,203,236,237,219,183, 89, 95, 95,223, 2, 71, 56,173,124, 6,131,129, 85,169, 84,108, 97, 97, 33,171,211,233, 88,
-173, 86,203, 38, 39, 39,179, 55,110,220, 96, 83, 83, 83,171,226,123,138,211,207,207,111, 75,126,126,190,230,210,165, 75,165,155,
- 55,111, 46, 13, 14, 14, 78, 5, 16, 14,160,149,143,143, 79,254,223,255,254,119, 86, 34,145,100,212,177, 30,181,229,114,185, 55,
- 87,174, 92,121,237,216,177, 99, 5, 71,142, 28, 49,108,219,182, 45,123,206,156, 57, 23, 56, 28,206, 77, 0,109,235, 88,143, 2,
-189,189,189, 47, 93,189,122,149, 46, 41, 41, 97, 21, 10, 5,171, 82,169, 88,173, 86,203,234,116, 58,214, 96, 48,176, 38,147,137,
-189,112,225, 2, 27, 20, 20,100, 63, 45,185,168,134,129,245,124,150,101,255,201,178, 44,199,213,109,157, 29,119, 63, 87,113,186,
-162,173, 35, 73,210,104,105, 59,122,150,159,214,124,254,188,210, 57,100,200,144,207, 39, 78,156,200,142, 24, 49,130,141,138,138,
-122,234,232,210,165, 11, 59,123,246,108,246,216,177, 99,236,215, 95,127,253,185, 11,210,201, 65,249,162,151,229, 67,134, 12, 49,
- 37, 36, 36,176, 19, 38, 76, 96, 1, 12,175, 73,139,252, 25, 4,151, 53,188, 3, 97,255, 23, 0,140, 70, 99, 86,122,122,122, 72,
- 36, 77, 83, 0,240,221,119,223, 61,101,153,178, 71, 66, 66, 2, 77, 16,196,131,154,254,187,209,104,204, 58,127,254,124,208,134,
- 13, 27,184,118, 38, 96,208, 52,109,206,205,205, 37,215,175, 95, 95,225,254,184,184, 56,154,166,233, 76, 39, 31,114, 71,231,206,
-157,119,184, 34,183, 46,220,121,242,143,211, 39,126,246,239,217,163,159, 66,234,235, 91,229, 40,108,223,220,214, 32,222,171,217,
-170, 69,112,200,101, 43,151,199,120, 91,167, 32,127, 76,202, 87,148,233,153, 65,105, 50,221,239,174,126,195, 26,141,230,137,117,
- 37,160, 86,171,205,124, 1, 11,225, 77,148,199,184,162, 43,125,215, 13,245,116, 58, 53,155,205,240,242,242,178, 89, 67,235, 96,
- 17,101,173, 22, 86,235,171,171, 79,122, 88,150,253, 45, 57, 57, 57, 98,218,180,105,158, 59,119,238,124,200, 48, 12,119,198,140,
- 25,198,224,224, 96,222,197,139, 23, 77, 0,136, 1, 3, 6,112,242,243,243,217,156,156, 28,249, 95,254,242, 23,245,187,239,190,
-235,119,235,214, 45,190,217,108,174, 45,104,225,163,172,172,172, 33,117,184, 86, 35,198,143, 31,255, 16,245,223,198,166,193, 57,
-173,144, 43, 84,120,248, 36,199, 18,193,220, 12, 38,163,192,230, 87,101, 50,209,144,171,138,157,182,104, 61,120,156, 99,217, 98,
-140, 1,195,228, 90,248,202, 29,226,217,146,210,218,123, 19, 14,167,239,146, 37, 75, 70,146, 36, 73, 94,185,114, 69,191,106,213,
-170,172,162,162,162, 49, 0, 50, 1,160,164,164,100,224,142, 29, 59,254,235, 64, 40,135,234,144, 98, 50,153,122, 45, 90,180,232,
- 3, 0,125, 1, 52,177,112, 95,180, 88,178,234, 26,193,188, 80,161, 80, 12, 27, 57,114,228, 25,138,162,154,218,213, 35,127, 0,
- 50,107,189, 96, 89, 54,176,160,160,224, 53, 71, 8, 9,130, 88,219, 80, 13, 73, 67,114,215,179, 29,122, 41, 86, 50,158, 59,119,
-238,139, 49, 99,198,112,194,195,195,255, 47, 60, 60,156, 44, 41, 41,129, 70,163, 1, 73,146, 8, 14, 14, 70,187,118,237, 16, 28,
- 28,108, 78, 77, 77, 93,254,241,199, 31,215, 26,147,175, 77,155, 54,205, 77, 38,211, 43, 36, 73, 54, 7,208,156,101,217,230, 4,
- 65, 52, 7,224, 11, 0, 82,169, 84, 26, 17, 17,193,233,217,179, 39,122,244,232,129,184,184, 56,236,223,191,127, 59,128,211,246,
-214,172,202, 90,228, 69, 64, 74,103,176,109,111,130,184,211, 5, 3, 8, 51,226, 88, 18, 3,219, 37,218,226,236, 85, 22, 89,213,
-111, 42, 93,133,233,111,248,224,193,131,109, 21,206,129, 78,229, 73,109,149,175,168,168,104,248,244,233,211, 43,112, 50, 12,163,
- 47, 46, 46,126,191,119,239,222, 27, 41,138, 18, 84, 42,176, 25,133,133,133,207,116,175,190,202,113,180,134,143,124, 67, 86, 95,
- 78, 9,143,124, 37,253,248,127, 80, 80, 40,195,143, 73,249, 37,106, 3, 51,240,158,172, 52,185, 33,210,159,145,145, 49,226, 37,
- 80,252, 85,137,214,250,110,158, 93,228, 64, 64,210,218,246,168, 35, 44,225, 68, 92, 82,201,243,243,243, 87,127,250,233,167,195,
-150, 47, 95, 30,112,242,228, 73,169,117,128,242,214, 91,111, 21, 38, 39, 39,247, 3, 32, 40, 43, 43, 59,187,124,249,242,128,152,
-152, 24, 63, 0,126, 0, 48,106,212,168,130,130,130,130, 13,112,163, 70,152, 76,166,236,118,109, 34,109, 3, 63,251,144, 14,246,
-159,105,154,206,118,134,175, 42, 30,251,115,134, 97,106,228,163, 40,234,163, 30, 61,122, 80, 31,125,244, 81,193,201,147, 39,173,
- 27,233,218, 43,180,244, 90,130,146, 58, 2, 61,128, 85,150,195,149,208,202,229,242, 94, 78,254,134,113,151,198, 42, 7,148,206,
-156, 63, 23, 28, 62,124,248,179, 9, 19, 38,236,240,245,245,221,221,188,121,243,200,160,160, 32,169, 72, 36,130, 94,175, 87, 27,
- 12,134,187,233,233,233,147, 62,251,236,179, 71, 14, 89, 56,118,236,160, 0,240,204,102,179,144, 36, 73, 15, 0, 82,130, 32,124,
-172, 66,139, 32, 8, 24,141, 70, 60,121,242, 4,139, 23, 47,102,206,157, 59,247, 53,128,207,157, 24,184,118, 3, 16, 96,215,142,
- 7, 0, 48,160, 60,128,109, 17, 65, 16,215, 27, 58,191, 8, 51,226,218,222, 4,145,210, 25, 85,245, 19, 53,111, 42, 93, 93,133,
- 43, 42, 42,234,229,234, 74, 92, 29,103, 81, 81, 81,248,139, 82, 67,166,234, 87,237,197,150, 85, 21,246, 57,180,138,176,170,206,
-107,131, 82, 71,207,249,246,244,157,213,122,154, 53, 27,105,243,223,238, 21,149,166,184,219, 33,151,227, 85, 87,213, 37, 23,166,
- 41, 57, 45, 45,173,247,156, 57,115, 62, 19,139,197,221, 1,160,180,180,244, 74,110,110,238,151,176,172, 42,172,237,186, 27,213,
- 67, 38,147,117,125, 17,249, 12, 6,195, 63,122,247,238,253, 13,195, 48,107,104,154,190,248, 63,240, 42,202,220,165,241,229,197,
- 79, 63,253,244, 8, 64, 47, 0, 24, 55,110, 28, 5, 0,251,247,239,119, 90, 60, 79,155, 54,141, 97, 89,214,104, 41, 15, 90,148,
-175, 46, 44,177,182,169, 90,173,182, 36, 55, 55, 55,149, 97,152, 84, 0,255,133,243, 43,110, 3, 8,130, 56,198,178,236,104,139,
-112, 59,198,178,236,104,251,239, 26,218,170, 85,203, 45,181, 59,195,187, 81,142,253, 41, 32, 42, 79, 5,214,118, 94, 27,210, 11,
-180,241, 0,186,184,115,247,127, 18, 15,115,115,115,167,214,227,186, 27, 47, 31, 50, 13, 6,195,152,255,161,231, 85,186, 95,249,
-159,164,255,171,131,192,178, 34, 53, 53,181,193, 92, 4,158, 55,218,222,172, 56, 0,175,124,110,135,232,170,132,151, 91,104,185,
-225,134, 27,110,184, 81, 31, 40,220, 89,224,198,159, 25, 86,223, 44,235,121, 53, 62, 90,149,253,179,108,231, 4,170, 95, 57,224,
-204,174,228,117, 89, 37,113,214,205,233,230,116,115,186, 57,221,156,207,157,211, 27, 64, 4,128,149,181,220, 87,121,117, 97, 1,
- 0, 25, 0,147, 59, 63,221,156,245,208, 15, 14,129,101,217, 81, 53, 77, 29, 18, 4,113,188,161,132,150,205, 25,190, 51,150,180,
-187,137, 37,214,115, 71,133, 86, 67, 99,168,155,211,205,233,230,116,115,186, 57,221,156,110, 78, 55,103, 61,133,214,160,143, 63,
-254,248, 19,148,135,198, 96, 63,254,248,227, 79, 88,150, 29, 85,126,137, 29,213,144,255,251, 78, 23, 12, 72,233, 12,214,122,220,
-233,130, 1,213,220, 26,109,119,216,224,158, 58,116,195, 13, 55,220,112,195, 13, 55, 94,116, 92, 90,177, 98, 69,233,138, 21, 43,
-172,142,239, 69, 0, 8,139,133,171,168, 33,255,177,101,154,208,145,133, 82, 53,111,193,243, 28, 16, 74,114,120,147,185, 60,193,
- 32,176,230,118, 0, 0,146,186,195, 24,202,126,165,105,227,110, 0,185,117, 37,110, 13,180,105,225, 45, 58,162,103, 24, 94,150,
-218, 48, 46,173,124,155, 3,167, 49, 14,232, 35,224,243,127, 17,120,123,139,170,186,174, 87, 40,116,122,131, 97,216,126,224, 55,
-119, 29,112,195, 13, 55,220,112,227, 37,129,135,143,143,207, 57,146, 36,195,173, 95,216,199, 29,172, 28,131,144, 97,152, 60,185,
- 92, 62, 12,229, 83,197,207,146,211,254,247, 6,212,177, 47,119, 53,156,157, 58,228, 0, 21,162,176, 62,147, 29,179, 41,174,224,
- 93, 79, 47,239,101,127,157,254, 15,191,150,173, 34,137,198,141, 27, 1, 44,144,153,149, 29,244,224,254,189, 33, 63,237,252,246,
- 67,149, 82,190,216,164,215,255,199, 89,238, 54,128, 71, 19,137,224,226,127, 62,126,199,155, 3, 26,111, 47,221,115,138,208, 24,
- 27,167,150, 47, 55,117, 74,100,121,251,249,157, 94,113,246,172,200,167, 99,199, 10,215, 88,150, 45,223, 95,239,247,223, 69,255,
- 55,108,216,233,113,114,249,112,183,216,250, 83, 34, 88, 42,149,206,227,114,185, 3,141, 70, 99, 56,159,207,207, 98, 24, 38,190,
-164,164,100, 29,128, 28,119,246,252,185, 17, 25,236,209, 47,178,121,248,158,220,252,130, 36, 85,153, 97, 70,122,174, 70,238,206,
- 21,167, 81,211,254,154,207,109,239, 77, 0,144, 72, 36, 55, 72,146, 12,179, 23, 1,214, 61,123,173,231,149,255,154,205,230, 71,
-114,185,188,119, 13,180,205,125,125,125, 55, 2,232, 86, 91,192,100, 75,108,182,235,114,185,252,125, 84,191, 90,207,211,199,199,
-231, 11,130, 32,198,147, 36, 73,213,246, 76,102,179,153, 97, 89,118, 95, 73, 73,201,231, 0,212,213,221,231,227,227,115, 54, 45,
- 45,173, 91, 96, 96, 96,173, 86, 26,154,166,145,153,153, 25,208,189,123,247, 11,114,185,188,117, 67,114, 62,107, 45, 82, 87,212,
-176,234,176,218,130, 14,160,194,254, 66, 13, 26,145,149, 39,148, 28,233,213,127,248,160,217, 31,124,228,113, 51,249, 46,126,137,
-187, 12,149, 86, 15,138, 36,225,237, 41, 70,171, 86,175, 16,107, 99, 15,248,111,223,188,118,205,149,132, 51,163,202,180,202,191,
- 56, 37,211,197,156,197, 11,223,236,238,225,231,203, 0,102, 6,255, 28,217,201,227,255,142, 37, 45, 70, 41,253,137,211, 34,235,
-220, 57,113, 97, 65, 1, 98, 66, 67,193,161,105, 8, 73, 18, 66,130,128,144, 36,225, 33, 20, 98,196,182,109,248,242,228, 73,241,
-103,175,189,230, 22, 91,127, 50, 72, 36,146,233,161,161,161,171,182,110,221,234,215,172, 89, 51,120,120,120, 64, 46,151,251,167,
-167,167,119,158, 63,127,254,212,188,188,188, 79, 85, 42,213, 22,119, 78,253,121, 97, 54, 99,242,247,203,222,111,148,151,113,191,
-209,172,229,123, 91, 17,126,204,192,187,197,186,124,119,206, 56,140,206, 0,146, 80,245,254,165, 53, 93,171, 22, 66,161,176,160,
-172,172, 44,176,166,123,248,124,126,161,193, 96, 8,170,141,139, 36,201,176,156,156,156, 64,177, 88, 12,134, 97, 44,187, 1,152,
-109, 3,105,251,221, 79, 44,129,106,209,186,117,107, 99, 77,156,158,158,158,223, 21, 22, 22, 14,181,238, 19,104, 39,168,170, 68,
- 78, 78,206,208,182,109,219,126,167, 86,171,135, 85, 35, 94,190,248,224,131, 15,230,181,111,223,222,106, 5,178,236,130, 80,254,
- 87, 38,147, 97,206,156, 57,182,255, 97, 54,155,113,230,204,153, 15,166, 79,159,142,146,146,146,249, 53, 60,123,120, 96, 96, 32,
- 97,217, 80,188, 90, 44, 89,178, 4, 75,150, 44,193,183,223,126, 75,112,185, 92,239, 90,242,211, 37,156,207, 74,139,212,197,130,
- 85, 75,100,248,227,168,232,155,117,252, 41,161,245, 44, 64,113, 5,127,235,214,123,232,192, 57,243, 22,122,236,253,249, 60,210,
- 83,127, 71,218,197, 31, 42,220,211,117,216,116,228,203,212,152, 62,251,159, 18,130,226, 12, 76, 56,123,248,111, 38,189,238,123,
- 7,173, 89, 65,225, 2,254,223,123,118,111,199,205, 17,165, 35,216, 71,132,190, 93, 90,112, 27,159,190,253,119, 45,232,111, 82,
-203, 87,201, 56, 37,178,182,190,243, 14,250,153, 76, 8,164, 40, 80, 4, 1, 10, 0, 73, 16, 40,211,235,113,125,242,100,116,223,
-181, 11,159, 31, 61, 42,254,226,245,215,157, 18, 91, 30, 30, 30, 55, 9,130,240,209,104, 52,163, 80,190,177,244,203,128,182, 18,
-137,228, 56,203,178, 37, 90,173,182,243, 11,148,174, 16,148,207,209, 87, 30, 29,243, 80,190,162,202,169,157,133, 5, 2,193,187,
-227,198,141, 91,187, 97,195, 6,113, 65, 65, 1,114,115,115,193, 48, 12,132, 66, 33, 90,182,108, 73,156, 61,123,214,111,225,194,
-133,171,143, 31, 63, 46, 80,171,213,223, 56, 51,176,225,114,185,177,190,190,190,175, 5, 5, 5,121, 20, 22, 22,150, 42, 20,138,
- 51,122,189,254, 93,212,125,219, 20,146,203,229, 78,138,136,136,120, 35, 52, 52, 52, 40, 39, 39, 71,150,157,157,125, 68,175,215,
-111, 71, 29, 55,106,182,203,211,142,176, 68,171, 7,144, 23, 17, 17,113,231,201,147, 39,133, 46,228,204,141,136,136, 72,169, 3,
-167, 7,128,159, 0,132,214,114, 95, 46,128, 9,112,210,154,109,203, 88,214,124, 98,233,186,173, 51, 98,166,245, 37,190,159, 63,
-180,229,123,223,158,189, 76,242,216,254,169,121,101, 89,110, 13,229,152,200,178,108,105, 85, 89, 80,213,116,173, 70,232,245,250,
- 0,163,209, 8,110, 53,155,197,107,181, 90,120,122,122, 6, 56,154, 72,145, 72,132, 31,126,248, 1, 92, 46, 23, 92, 46, 23, 37,
- 37, 37, 8, 11, 11,179,157,243,120, 60,219,231, 38, 77,154,212,202,199, 48, 76,119,138,162,160,209,104,192, 48,140,237, 80, 40,
- 20, 96, 89, 22, 2,129, 0, 12, 83,190,157,147,221,245,238,213,241, 17, 4, 49, 62, 52, 52, 20,123,247,238,133,193, 96,120,234,
-186, 84, 42, 69,114,242, 31,155,140, 80, 20,133, 30, 61,122,144, 4, 65,140, 7, 48,191, 6, 94, 22, 0,162,163,163, 65, 81, 20,
- 40,138, 2, 73,146,182,207,214,131, 97, 24, 44, 89,178, 4,149,182, 38,123,102,156, 47, 26,106,137, 12,159,135,106,124,180,200,
- 6, 78,151,253, 18,207, 80,177,135,244,171,247,255,241, 79,201,241, 11,183,145,153,149,249,148,200, 2,128, 27,191,108, 71, 94,
-110, 14,146,210,178, 49,233,111,115, 37, 82,169,247, 87,149, 26,212,106,151,141,122,121,242,190,254,120, 66, 95,161,198,148, 11,
-181, 15, 64, 53,231,131, 43,214, 98,225,232,142, 2,169, 39,111,149, 35,233, 20,240,249,191,172, 56,123,214, 38,178,250,232,245,
- 16, 48, 12,104,134,177,137, 44, 3, 77, 67,103, 48, 32, 68,163,193,131,233,211,193,154, 76,248,244,208, 33,177,128,207,255,197,
-145,116, 2, 0,143,199, 11, 57,114,228, 72,147, 14, 29, 58,196,193,241, 96,166,103, 27,248, 29,213,132, 46,157, 58,117,138,223,
-181,107, 87, 19, 30,143, 23,226, 10, 78,161, 80, 56,214,195,195,163, 72, 40, 20,142,173, 99, 58, 73, 0, 75,103,204,152,145,248,
-202, 43,175,156,183, 8, 43,155,168,121,229,149, 87,206,206,152, 49,227, 38,128, 37,213,148,245,170, 56, 27,133,134,134, 46,219,
-176, 97,131,248,222,189,123,200,201,201,129,201,100,194,219,111,191, 13,134, 97,160,211,233, 96, 48, 24,176,114,229, 74, 15, 63,
- 63,191,197, 40,223, 40,216,145,103,231,121,121,121,221,219,185,115,231,184,199,143, 31, 75,206,159, 63, 79, 36, 39, 39,123,172,
- 94,189,122,140,159,159, 95, 58, 0, 65, 29,242,147, 12, 9, 9,249,254,240,225,195,239, 39, 39, 39,135, 29, 60,120,144,123,229,
-202,149,144,205,155, 55,207, 12, 9, 9,217, 5,128,170,227, 59,234, 44, 22,139,135, 44, 88,176,192,124,233,210,165,156, 75,151,
- 46,229,172, 93,187, 22,253,250,245,235, 19, 19, 19, 19, 85, 71,206, 46,158,158,158,131, 23, 44, 88, 96, 78, 72, 72,200,189,122,
-245,106,246,234,213,171,201,193,131, 7,247, 93,182,108, 89, 71, 39, 57,127,186,116,233,210,128,172,172,172,102,217,217,217, 77,
-179,179,179, 35,178,179,179, 35,114,114,114,194,243,242,242,154,228,231,231, 55, 46, 44, 44,108, 28, 31, 31,223, 23,192, 30, 71,
- 56, 35,131, 60,222,159,255,246,208,210,197,127, 27,201,126, 50,229, 85,118,225,219, 3,216,215,250,119,248,153,226,112,136,171,
- 41,153, 8,243, 2,182,207,233, 22,222,216,223, 35,185,157,175,164,213, 11, 86, 55, 95, 52, 78,142, 85, 72,201,229,114, 28, 63,
-126, 28, 22,235, 85,103,123,145,165, 82,169,144,151,151,103,189,198,113, 36,157, 82,169,244,220,214,173, 91,217,178,178, 50, 40,
-149, 74, 20, 22, 22, 34, 43, 43, 11, 15, 30, 60, 64,113,113, 49,238,222,189, 11,177, 88,124,206,145,116, 18, 4, 1,134, 97,108,
- 66,234,204,153, 51,152, 49, 99, 6,228,114,185,237, 59, 14,135, 99,251,108,253, 77,109,156, 86,203, 19,195, 48,184,122,245, 42,
-102,205,154,133,181,107,215, 98,207,158, 61, 56,118,236, 24,228,114,185, 77,108,209, 52, 93, 43,167, 76, 38,131,217,236,216,152,
-137,101, 89, 40,149, 74,135,223,187,189, 0,226,112, 56, 79,137, 34,235,225, 76, 89,170, 39,231, 11, 11, 7, 34,195, 87, 63,194,
-182,126,176,152,234, 6, 54, 84, 34, 73, 14,111,210,248,105, 31,248,101, 23,170,144, 83,160, 4, 69,254,209,239, 69, 13,157, 6,
- 14, 69,226,218,233,114,195, 21, 73, 81, 80,106,245, 80,104,140, 24, 55,109,158,239,127,214,254,107, 18,109, 44,171, 49,198, 75,
-123,160,101, 59,137,228,205,182,109,155,144,169,130, 52, 68,189,118, 17,140, 25, 96, 19, 94, 71,231,146, 64,170,245, 47,252, 55,
-181,106,227,178,100,224, 94,141,214, 12,111,111,145, 79,199,142,136, 9, 13, 69,127,147, 9, 60,150,197,171, 5, 5,248,125,222,
- 60,232, 15, 28, 0, 9,128, 55,118, 44, 6,173, 91,135, 11,161,161, 8,214,233,160,248,240, 67, 4,156, 58, 5,158, 84, 42, 66,
-145, 99,139, 31, 8,130,192,192,129, 3,113,246,236, 89,191, 17, 35, 70,156,190,125,251,246, 91, 52, 77, 95,168, 75,222,122,121,
-121,221,224,112, 56, 97,181,221, 71,211,116,182, 82,169,116,122,155, 17, 14,135,211,191, 71,143, 30,135, 14, 30, 60,232, 99, 52,
- 26, 93, 50, 10,225,243,249, 35,198,140, 25,179,117,211,166, 77,210,153, 51,103,110, 61,118,236, 88,169,193, 96, 56,229, 76,145,
- 2,176,116,203,150, 45,239, 69, 71, 71,123,207,156, 57,147,125,240,224,129,189,245, 42,160, 95,191,126,175,108,221,186, 53,184,
- 91,183,110, 31,204,154, 53,139, 7,224,211,218,172, 60, 18,137,100,246,214,173, 91,253,101, 50, 25, 52, 26,141,173,145,205,206,
-206,134, 72, 36, 2, 73,146, 32, 73, 18, 92, 46, 23, 95,125,245,149,223,236,217,179,231,201,229,242,121, 14, 88,201, 98, 55,110,
-220, 24, 48,108,216, 48,242,241,227,199, 32, 73, 18, 66,161, 16,239,188,243, 14,169,211,233,124, 98, 98, 98,118,104,181,218,137,
-206,228, 33,151,203,157, 20, 27, 27,219,170, 79,159, 62,156,180,180, 52,244,234,213, 11,215,174, 93,195,216,177, 99,185,106,181,
-186,233,194,133, 11,103,232,245,122,103,227,184,132,136,197,226,246,191,254,250,107, 86,227,198,141,109, 13, 75,211,166, 77,153,
- 81,163, 70,201,211,210,210, 34, 47, 93,186, 84,220,187,119,111,103, 54, 44,111, 36, 22,139, 91,159, 56,113, 34, 47, 38, 38,102,
-200,150, 45, 91,198, 0, 64,247,238,221,143,124,249,229,151,231,229,114,121,187, 11, 23, 46,200,251,247,239,159,237, 32, 95,104,
- 72, 72, 8, 51,103,206, 28, 73, 77, 55,109,219,182, 77,129,242, 13,151,155, 1,168,113,191,182,200,136,224,197,171,230,141, 23,
-129, 49,130, 53,233, 0, 99, 41, 96,212,192,108, 40, 5,193, 19, 1, 38, 29, 2, 4,114,252, 52, 59, 82,186,104,239,195, 84,230,
- 46, 49, 42, 77,166, 62, 5, 55,170,108,106, 0, 68, 17, 4,145,116,252,248,113,244,232,209, 3,199,143, 31,199,168, 81,163,146,
-236,197, 64,114,114, 50,250,247,239, 15,139, 69,203, 33, 95, 45,165, 82,249,241,146, 37, 75, 18, 38, 77,154, 36,174,208, 24,144,
- 36,188,189,189, 49,114,228,200, 50,173, 86,251,177,163, 9,101, 24, 6, 28, 14, 7,217,217,217,216,182,109, 27,150, 47, 95,142,
-150, 45, 91,194,100, 50, 61, 37,182, 44,237,158, 67,141, 31, 77,211,184,126,253, 58,118,239,218,133, 79, 23, 47,134,167,167, 39,
- 0,192,104, 52, 66, 94, 82, 2,161, 80,104, 19, 99,181, 8,167,125,247,239,223,159, 23, 22, 22, 86, 97,202,208,250,215,210,102,
-193,108, 54,131,166,105,148,149,149, 97,237,218,181, 52,203,178,251,106,235,127,172,162,104,222,188,121,208,235,255, 48,168,119,
-180,248, 36, 71, 68, 68,160, 83,167, 78,182,115,146, 36, 89, 71, 57,255,211,187, 61,116,118,119, 71, 46, 89, 13, 0, 8, 11, 11,
- 67,100,100, 36, 66, 66, 66,170,229,108,104, 45, 82, 23, 56, 17, 25,190,122,161,245, 44,118,202,230,242,132,131,154,183,104, 69,
-100,230,201,193,225,112,224,225,229,143,222,111,204, 7, 69,145,144,120,251,131, 96,116,127, 40, 98,146, 2,135,226, 64,174,214,
- 33,162, 89, 11, 82, 32, 20, 13,210,214, 34,180,164, 94,220,141, 11, 38,246, 22, 22,211,217, 16, 53, 17,130,177,118,167,161,124,
-144,126,106,124, 52,162,165, 40,250,200,237,141, 80,154, 6, 59,146, 94,138,166, 17, 72, 81, 48,178, 44,126,159, 55, 15, 81,177,
-177, 72,178, 10,195,216, 88, 36, 69, 71,195,151,203,133,128, 36,193,154, 76, 79,205,233, 59, 34,180, 0, 32, 43, 43, 11, 7, 14,
- 28,240, 29, 63,126,252,161,228,228,228, 73, 78,138, 13, 43,151,255,213,171, 87, 3,155, 53,107, 86,237, 61,143, 30, 61, 66,215,
-174, 93,157,158,158,226,243,249, 35, 6, 15, 30,188,247,192,129, 3, 94, 41, 41, 41, 8, 12, 12,172,183,208, 18, 8, 4,253,135,
- 14, 29,186,119,231,206,157,210,162,162, 34,196,198,198, 74, 95,127,253,245, 61,137,137,137,111,232,245,122, 71,196,102, 5,145,
- 21, 27, 27,171,216,182,109,219,127, 80,113,138, 48,111,219,182,109,223,119,235,214,237,253,232,232,104,111, 0,239, 89,124, 7,
-106, 20, 91, 2,129, 96, 96,243,230,205, 43,140,106, 5,130,114, 99,147,135,135, 7,188,188,188,192,227,241,160,215,235, 17, 21,
- 21, 69,240,249,252,190,142, 60,179,167,167,231,208, 55,223,124,147,188,120,241, 34,242,243,243,225,237,237, 13,137, 68, 2,134,
- 97, 48,115,230, 76,106,237,218,181, 3,181, 90,231,102,184, 26, 55,110, 60,102,200,144, 33,156, 59,119,238,224,241,227,199,208,
-235,245, 72, 79, 79,135, 84, 42,197,148, 41, 83,120,171, 86,173,122, 61, 39, 39,199, 89,161,213, 62, 58, 58,186,192, 94,100, 89,
-225,225,225, 65,180,106,213, 74,238,231,231,215, 5,128, 51, 66,171,253,220,185,115, 11, 87,172, 88,209,255,236,217,179,182,160,
-151,103,207,158, 93, 8, 0,223,124,243, 77, 66, 64, 64, 64, 23, 0,142, 10, 45,176, 44,107,254,235, 95,255,154,193,231,243,193,
-229,114,193,231,243, 43, 28, 60, 30, 15, 36, 73,122, 90,171,115,109,124,169,143,243, 87,206, 92,184,122,181,135,144,226,254,227,
-141, 14,104,226,205, 3, 68,190,224,245, 95, 4,194,187,220,104,201,202, 31, 1,191, 44,194,154, 55,229,100,244,127,203,126, 54,
- 50, 62, 1, 15, 75, 74,212,207,185, 15,232, 6,224,223, 40,223, 92,119, 49,128,171, 47, 72,223,116, 19, 64,212,168, 81,163,108,
- 98,235,228,201,147, 24, 49, 98, 4, 20, 10, 5,238,220,185, 99, 47,178,156,217, 96,249,166,201,100,186,245,195, 15, 63,244, 30,
- 63,126, 60, 97, 87,191,144,146,146,130,187,119,239, 38, 57,202, 71,146, 36,204,102, 51,184, 92, 46, 86,175, 94, 13,163,209,136,
-255,254,247,191,216,191,127, 63, 72,146, 4, 65, 16, 32, 8, 2, 82,169, 20,223,126,251,173, 83,237, 30,195, 48,216,177, 99, 7,
- 22, 45, 92,104, 19, 89,150,153, 12, 4, 7, 5,193,207,223, 31, 15, 31, 62,172, 85,104,149,148,148,124,126,244,232, 81,212,228,
- 12,127,244,232, 81,219,231, 74,206,240,181,247,115, 20, 5,189, 94,143, 87, 95,253, 99,171,216,185,115,231,218, 62,203,229,114,
- 80, 20,101,205, 11,194, 81, 78, 29, 11,188, 33,252,227,187,145, 31,125, 84,193, 66, 87, 29,231,179,208, 34,174,178,110, 85, 33,
-182,162, 44,214,217, 16, 0,163, 80,238,163,149, 7, 60, 67, 31, 45,150, 53,183, 14,107, 20,138, 91, 15,146,193,161, 40,240,189,
-252,225,229, 27, 4, 51,109,128,178,240, 49,226, 14,126, 7, 0,216,178, 99, 31, 72,146, 4,135, 67, 65,111, 96,208,178, 73, 40,
-204,102,115,235,154,184,219, 0,189, 7, 6,249,247,104, 28,238, 77,220,241,121,140, 86,129,126,149, 38, 66, 4,104,153, 43, 33,
-122, 73, 68,221, 75,148,170,222,169,192,165, 90,197, 0, 73,130, 36, 8,136,121, 60,232, 15, 28, 40,247,218,140, 45,239,179,146,
-162,163, 65,254,252, 51, 60, 5, 2, 80, 4, 1,142,197, 4, 93, 23,168, 84, 42, 16, 4,129,221,187,119,251, 76,153, 50,101,207,
-157, 59,119,162,203,202,202, 14, 56,195,161, 80, 40, 70,245,233,211,231,252,142, 29, 59, 2,130,131,131,159,186,158,159,159,143,
-105,211,166, 21, 41, 20, 10,167,130,186, 9,133,194,177, 99,198,140,217,186,125,251,118,233,253,251,247,161,209,104, 16, 16, 16,
- 80,223,162,208,165,103,207,158,135, 14, 28, 56,224,149,159,159, 15,165, 82, 9,189, 94,143,221,187,119,123,143, 28, 57,242, 64,
- 90, 90,218, 8, 0,137,181,112,124,102, 47,178,102,205,154,117, 27, 64, 32,128,141,149, 53,168,229, 90, 7, 59,177,165, 4,176,
-170,134,145,104,184,135,135, 7, 10, 11, 11, 49,109,218, 52,220,187,247,135, 1, 52, 52, 52,212, 54,210,123,248,240, 33, 2, 2,
- 2, 64, 16, 68,160, 35, 15, 29, 16, 16, 32, 49, 24, 12,152, 49, 99, 6,178,178,178, 42,112,102,103,103,131, 32, 8,177,179, 25,
- 25, 20, 20, 20,164,211,233,208,175, 95, 63,148,149,149,239,235, 59, 97,194, 4,112,185, 92, 20, 22, 22,130,203,229,250,215,225,
-253,248,143, 26, 53,170,218,208, 42, 82,169,212,232,227,227,211,198, 73, 78,191,215, 95,127, 61, 39, 54, 54,246,169,133, 45,215,
-174, 93,251,139,175,175,239, 89, 95, 95,223, 86, 78,114,154,237, 69, 21,143,199,171, 32,180,184, 92, 46, 72,146,116,216, 71,237,
- 94,161,118, 3,135,200,235,180, 98,206,176,105, 77, 2,189,192,106, 10,192, 27,252, 57,110, 21,137,176,122,237, 9, 0,192, 63,
-223,233,138,142, 67,151,194,176,125, 24,230,245,162,248,147,179,245, 11, 0,124,246,156,219,252,175, 1, 88, 87,193,109, 2,208,
-233, 5,234,143,108, 98,235,228,201,147,104,215,174, 29, 74, 74, 74,144,150,150, 86, 87,145,101,109,239, 22,125,241,197, 23,191,
-188,245,214, 91, 30,214, 65,171, 72, 36,194,135, 31,126,168,211,104, 52,139,156, 42, 68,102, 51, 56, 28,142,109,144, 44, 20, 10,
- 17, 21, 21,101, 19, 89, 4, 65,160,180,180, 20, 28, 14,199,186, 34,145,112, 48,141, 8, 9, 14,134,167,167, 39, 90,180,108,137,
-251,150,118,196,250, 89, 32, 16,128, 32, 8,208,116,173,134, 60,181,197,169,125,190,171,187,100,171, 40,170,209,116, 28, 26, 10,
-179,217,108, 21,153,172, 43, 56,253,253,253,161,209,104, 28,229,124, 33, 81,141, 69,203, 42,180, 70,161,220, 87,235,169,240, 14,
- 3, 0,196,161, 1,151, 84, 18, 96, 9, 51,203,130, 67,145,150,185, 91, 10, 20, 69, 66, 94,148,135,117,159,191,103, 17, 89,251,
-113, 60, 33, 13, 97,205,219,253, 49,143, 75, 16, 0, 91,115,225, 14,240,226,197,206,126,171,167,168,128,200,131,119,168, 24, 66,
- 97, 37,253,232,195, 3, 17, 65, 98,206,192, 48,241,245,163,101,177,169, 74, 99,173, 29,133,144, 36,203,157,223, 9,162, 74,231,
- 30,210,114,141, 34, 8,176, 44, 11,214,236,156,223,177, 85,200,139, 68, 34, 24,141, 70, 80, 20,133,245,235,215,123, 15, 29, 58,
-116,163,179, 66, 11, 64, 74, 65, 65,193,200,153, 51,103,158,220,183,111,159,191,191,191,127,133,209,195,204,153, 51,101, 5, 5,
- 5, 35,225,164,211, 61,151,203,221,184,105,211, 38,233,147, 39, 79, 80, 90, 90, 10,145, 72,100,107,124,234, 90, 62,187,119,239,
-126,250,212,169, 83, 62, 74,165, 18, 70,163, 17, 34,145, 8, 44,203,130,162, 40,252,248,227,143,126,163, 71,143, 62,145,153,153,
- 57,184,166,180,138, 68,162, 55, 44,194, 9,209,209,209,222,209,209,209, 3,128,106, 35,245,218, 16, 29, 29,237, 61,127,254,252,
-215,117, 58,221,170, 26,158, 57, 75, 46,151, 7,139, 68, 34, 28, 60,120, 16, 18,137, 4, 98,177, 24,161,161,161,144,203,229, 16,
-139,197, 96, 89, 22, 38,147,201,218, 88, 20, 59,242,224, 69, 69, 69, 26,154,166,189, 78,158, 60,137,226,226, 63,126,210,164, 73,
- 19, 40, 20, 10,152,205,230, 82,103, 51, 51, 55, 55,183,128, 32,136,198,183,110,221,194,147, 39, 79, 48, 98,196, 8,252,252,243,
-207,232,218,181,124,118,216, 96, 48,212, 37,136, 31, 67, 81, 20, 91, 67,185, 37, 0,248,184,146,211,210,121, 57,197,105, 54,155,
-205, 86,145,101,255,215, 94,124,213,242, 63, 43, 84,231, 54, 65,146,109, 43,102, 15,153, 54,172,157, 63,116, 69,143, 33,244,244,
- 7,225, 29,129,213,107, 79,224,206,163,242,247,181,122,207, 13,236,141, 25, 9,136,124, 17,233, 37, 67,176, 39,231,205,187,133,
-207, 93,104,121,217,143, 19, 94,212,142,105,196,136, 17,144,203,229,144, 72, 36,174,240,207,185,172,211,233,210, 15, 31, 62,220,
-101,212,168, 81,224,243,249, 72, 79, 79, 71, 98, 98, 98, 26,128,203,206, 10, 45, 46,151,139, 47,190,248, 2,239,189,247, 30,130,
-130,130,176,104,209, 34,112, 56, 28,219, 65, 16,132,205,194,229, 12, 2,131,106, 94,248,104,117,136,175,205, 24,238,229,229,245,
- 5, 73,146,227, 41, 7, 50,142, 97, 24,198,108, 54,239, 83, 42,149, 53,134,119,176, 58,174, 59,242, 46,236,243,160,150, 62,173,
-222,156,207, 66,139,212, 5,149, 87, 27, 86, 99,209,178,174, 58,124,106, 43, 32,235, 83,198, 89, 76,118,113, 13,149, 80,130,164,
-238,102,231,228,194,207, 71, 98, 17, 89,150,131, 36,209,177, 93,249, 96,246,120, 66, 26,194,154,181, 3,135,162,192,161, 40, 72,
- 68, 2, 20,228,231,129,195, 33,239, 86,199,219,158,194, 91,111,181,106, 28,225,227,199,133, 44,192,128,144,160,106, 12, 3, 93,
- 60, 17, 22,194,199,112, 63, 97,120,123, 10,111,213,108,125, 99,109, 66,203, 72,211,224,141, 29,107,155, 46, 76,138,142, 70, 84,
-108, 44,152, 49, 99,160, 53, 26, 43,152,138,235, 42,180, 68, 34, 17,212,106, 53, 38, 77,154, 36, 55,153, 76,239,215, 49,139, 19,
-139,139,139,199, 77,158, 60,185,216, 42, 96,140, 70, 35, 38, 79,158, 92, 92, 92, 92, 60,206, 1, 43,209, 83, 48,153, 76,239,119,
-237,218, 85, 46,147,201,108,233,172, 75,131, 99,133,175,175,239,241,109,219,182,249,234,245,122,208, 52,109,227, 20,137, 68,160,
- 40, 10, 1, 1, 1,216,187,119,111,128,175,175,111,141,123, 86,233,116,186,195,177,177,177, 10, 0,136,141,141, 85, 16, 4, 17,
- 79, 16,196,102,130, 32, 54, 85, 58, 54, 19, 4, 17,111,127,175, 78,167, 59, 84, 19,183,193, 96,136, 79, 75, 75, 99,197, 98, 49,
- 40,138,130,209,104,132, 80, 40,180,153,196, 85, 42, 21,116,186,242,105,238,196,196, 68,152, 76,166,139,142, 60,187, 90,173, 62,
-183, 99,199, 14,115,147, 38, 77,208,174, 93, 59, 68, 69, 69,161,103,207,158, 8, 15, 15,199,151, 95,126,201,104,181, 90,167,235,
- 94,110,110,238,241,159,126,250,201,212,184,113, 99,116,233,210, 5, 2,129, 0, 29, 59,118, 68,104,104, 40,150, 47, 95,110, 80,
- 42,149, 39,235,240,154, 50,147,147,147,169, 26, 68,174, 20, 14,172,222,173,132,172,235,215,175, 83, 61,123,246, 60, 82,249, 66,
-247,238,221,143, 72, 36, 18, 47,171,137,221,153, 17,185,189,184, 18, 8, 4,182,195,250, 61,135,195,113,100,244, 67,182, 9,146,
-108,251,234,189, 65,211,134,181,243,193,145,115, 87,193, 51, 42, 0, 67, 13, 51,130,140, 9, 4,207, 3, 65, 94,220,176, 23,160,
- 15,152, 7,224, 54,202,227, 48, 45,194,139, 5,155,227,123,113,113, 49,210,210,210,144,152,152,136,158, 61,123,226,226,197,139,
-192, 31, 14,242, 78, 67,169, 84, 46,138,137,137,209, 90, 87,242, 45, 94,188, 88,167, 86,171, 23, 57,219, 6,179, 44, 11, 46,151,
-139,200,200, 72,204,159, 63, 31, 39, 78,156, 64,122,122, 58, 76, 38,147, 77, 8, 89,125, 50,157,177,104,241,120, 60, 4, 5, 5,
-193,100, 50,217,172, 89, 0,112,255,222, 61,112, 56, 28,152,205,102, 24, 12,134, 90, 45, 90, 94, 94, 94, 95,108,221,186,245, 3,
-153, 76, 22, 82, 84, 84, 20,104,127, 20, 20, 20, 4,230,229,229, 5,230,228,228, 4,102,101,101, 5,102,100,100, 4, 62,126,252,
- 56,100,229,202,149, 31,120,121,121,125,225, 72, 58, 41,138, 66,199,142, 29, 49,119,238, 92,219,177, 97,195, 6,219, 17, 23, 23,
-231,180,243, 58, 69, 81,136, 92,178, 26, 35,139, 88,219,113, 34,128,176, 29,119,254, 57,171, 38,206, 6,215, 34,117,210, 47,150,
-213,134,246, 27, 75, 87, 1,235,170, 67,107, 91,102,115,219,168,236, 12,223, 96,160, 13,101,231, 31, 61,184, 55, 40,178,125, 55,
- 50, 95,166,169,176,252, 51,106,224, 56, 16, 4,129, 70,205,218,129,226,112, 64, 81, 36, 56, 20, 5,111,169, 16,105,183,110,153,
-245, 58,221,249,170, 56, 7, 0, 28,190,136,191,225,157,225, 29,133,185,252, 66, 4,132,120,128,199, 45,215,142,236,163,113,149,
-122, 8, 14,208,222, 19,211,115,252, 68,231, 11,202, 54,248,104,141, 71,226,171, 25, 1,154,205,102, 72, 4, 2,148,233,245,208,
-209, 52, 6,174, 91,103,155, 46, 36, 9, 2, 55, 1,116, 88,183, 14,151, 14, 28,128,148,207, 7, 4, 2,135, 87,133, 84, 37,180,
-100, 50, 25,166, 78,157, 90,156,151,151, 55,165, 46, 62, 90, 86,232,245,250, 11,249,249,249, 83,198,141, 27,183,251,224,193,131,
-190,227,198,141,147,231,231,231, 79,113,208,239,233, 41,148,149,149, 29,200,202,202, 42,157, 58,117,234,174, 61,123,246,248,249,
-251,251,219, 70, 34,117, 42,172, 4, 33, 27, 50,100,136,192,145,251,106,185, 37,198,226,220,254,158,197,178,213, 97,214,172, 89,
-151, 80,238,127,101,143, 37, 91,182,108,153, 96, 55,197,184, 25,192,186,154,136, 85, 42,213,166,249,243,231,255,237,194,133, 11,
-254, 66,161, 16, 4, 65,128,199,227,161, 69,139, 22,182, 85, 52, 92, 46, 23, 44,203,226,163,143, 62,146, 21, 22, 22,126,227,224,
-187,153, 21, 19, 19,211,191,172,172,204,103,234,212,169,148, 80, 40, 68, 65, 65, 1,214,174, 93,203,108,223,190, 93,161,213,106,
-167,213, 65, 8,239,248,215,191,254, 53, 80,163,209, 52,155, 57,115, 38, 79,169, 84, 66,167,211, 97,193,130, 5,134,239,191,255,
- 62, 91,167,211, 57, 29,240,183, 87,175, 94, 15, 50, 50, 50,250,150,150,150,150,136,197,226,202,214, 62,194,195,195,163, 27,128,
- 93,206,112, 70, 69, 69, 61,204,204,204,236,185,116,233,210,120,147,201,196,189,118,237,154,205, 25,126,253,250,245,113, 66,161,
-112, 8,156,220,124,149, 32, 8,179, 64, 32,168, 96,193,170,252,153,195,225,212,218,166,181, 14, 22, 47,253,234,221,254,211, 94,
-109,227,133,195,231,110, 32,230,208,163,187, 45,167, 5, 68,190,226, 83, 4,115, 81, 26,254,249, 78, 87,172,222,115, 3, 64,249,
-212,161,185,240, 14,216,146,135, 96, 61, 27,227,246, 78,196,155, 0, 0, 10,184, 73, 68, 65, 84,177, 92,150,251, 2,244, 1,113,
- 40, 15,153,241,162,161,130,200,186,115,231, 14, 6, 13, 26, 4, 0,184,120,241, 34,250,244,233,131,139, 23, 47,162,111,223,190,
- 78,199,210,178,224, 87,149, 74,149, 17, 23, 23,215,182,113,227,198,184,124,249,242, 99, 0,191, 58,155, 72,171,208,226,112, 56,
-120,251,237,183, 49,116,232, 80, 52,105,210,164,194,106, 67,235,103,103,196, 6, 77,211,104,223,190, 61,244, 6, 3,120, 60,158,
-109,106,146,195,225, 32, 32, 48, 16, 15, 30, 60,112,200,162, 69,146,228,248, 55,222,120,131, 76, 73, 73,193,196,137, 19,177,123,
-247,238,106,239,157, 60,121, 50,126,248,225, 7,188,241,198, 27,228, 39,159,124, 82, 99,120, 7,171, 19,186, 35,207,100,237,167,
-107,107,247, 93,197,217,208, 90,164, 62,176, 11,237, 80,229,164, 73, 21,223,197, 86, 16, 90,118, 65,194, 26, 70,104,209,198,221,
- 63,255,247,187,249, 61, 55,246, 13, 8, 9,244,130, 92,169,179,137,173,164,184,253, 0,128,183,102, 45, 3,135, 42,159, 82,148,
- 74,132, 16,241, 40, 28,216,249,141,204,104, 44,171,178,116,169,185,228,123,159,244,110,225,197,247, 48, 65, 21,204,162, 93,192,
- 31, 59,229, 16,205,246, 63, 45,184, 58,251,192,255, 78, 9,222,121, 69, 34,253, 38, 69,241, 30, 76,230, 13, 79,117,136, 10,133,
- 78,113,235,150,104,196,214,173,184, 54,101, 10, 26, 49, 12,226, 67, 67,225,203,229,194, 75, 32, 0, 73, 16,208, 29, 59,134, 75,
- 7, 15, 34, 72, 32, 0, 60, 61, 65,127,249, 37,244,105,105, 48,169,213,186, 58,140,204, 48, 97,194, 4,153, 76, 38, 27,103, 48,
- 24, 46,212, 55,159,117, 58,221,169,172,172,172,247,122,245,234,181,209,100, 50,189,175,211,233,234,181, 50,202, 96, 48,156,202,
-207,207, 31, 59, 97,194,132,253,135, 14, 29,242,247,246,246,174, 51, 87,113,113,113, 87, 23, 21, 39, 51,128, 79, 45,206,237,239,
- 69, 71, 71,123, 95,191,126,253,111,219,182,109,219,104, 55,154, 8,156, 49, 99,198,187,149, 68, 86,173,171, 14, 1,100, 22, 22,
- 22,126,249,225,135, 31, 46, 91,179,102,141,196,234,248,254,251,239,191,131,166,105,112,185, 92, 48, 12,131, 25, 51,102,104,138,
-139,139, 87,163,250,136,206, 79, 21, 45,149, 74,213, 98,233,210,165,219,214,173, 91, 55,148,162, 40, 15,134, 97,180,165,165,165,
-241,101,101,101,211, 80,183, 56, 90,230,162,162,162,169,159,125,246,217,212,181,107,215,190, 65,146,100, 32, 77,211, 50,181, 90,
-125, 84,167,211,125,143, 58, 76, 37, 93,190,124,185,232,157,119,222,121, 84, 84, 84,212, 58, 44, 44, 76, 41,145, 72, 12, 6,131,
-129, 18,137, 68, 82, 15, 15,143, 40, 0,151, 9,130, 72,117,134, 51, 41, 41, 41,127,230,204,153, 79,244,122,125,228,230,205,155,
- 19,164, 82,233, 57,130, 32, 8, 30,143,231, 35, 18,137, 6, 1,136, 39, 8,226,190, 51,156, 36, 73,154,237,173, 87,149,253,179,
-248,124,190, 67, 62, 90,205, 2,196,211,135,182,224,224,240,249, 27,136, 57,156,185,131, 97,217,131, 7,147, 74,142, 45,234, 3,
- 24,247,189,131,142,227,118,149, 79, 23, 2, 48, 23,222,129,113,223,100, 16, 98,127, 36,228,112,161,212, 25,143,195,141,170, 96,
- 11,239, 32,147,201,144,146,146, 98, 21, 89, 81, 0,208,183,111,223, 36,171,216, 74, 76, 76, 68,151, 46, 93,146, 0,112,157, 45,
-175, 42,149,234,195, 73,147, 38,157,178, 12,142, 63,172,195,192,207, 38,180,172,130,170, 73,147, 38,182,115,251,195,206, 71,203,
- 33, 48, 12, 3, 30,143, 7, 14,135,131,144,208, 80,219,255, 98, 89, 22, 15, 30, 60,128, 92, 46,119, 72,104, 81, 20, 69, 17, 4,
-129,137, 19, 29, 91,144,252,215,191,254, 21,241,241,241,160, 28, 84,133, 20, 69, 33, 34, 34,162,214,123,172,186,212, 81,206,176,
-176,176, 58,115, 54,180, 22,169,171,192,170,234,115, 85,162,170,186, 10,241,172,144,171,209, 40, 63,221,185,117,253,154, 25,179,
- 63,146,220,121, 88, 0,165, 70, 15,138, 34,237, 27, 79,112, 56, 20,164, 30, 66, 52, 14,246,194,158,255,252, 91,173, 86, 41, 62,
- 67, 53,251, 30, 54,241,228,205, 26,210,237, 21, 1, 47, 68,139,200, 14, 19, 64, 9,255, 16, 1,108,126, 53,179,131,125,126,193,
-107,153, 90,225,207,153,218, 89, 55, 75, 12, 79, 11, 45,131, 97,216,226,225,195, 79,199,156, 56, 33,238,190, 99, 7, 30,206,152,
-129, 80,157, 14, 2,203, 84, 34, 73, 16,144,240,120,144,240,120,229, 34,107,237, 90,232,104, 26,235,166, 76, 41,213, 27, 12,195,
-157,169,228,197,197,197, 24, 51,102, 76, 81,110,110,238, 72,212, 97,106,175, 58,104,181,218, 3, 0, 14,184,138, 79,175,215, 95,
-200,206,206,126,109,204,152, 49, 39, 78,157, 58, 21,240,130, 4,153,179,138, 45,227,245,235,215,223, 77, 72, 72,120,136,138, 27,
-139, 42, 18, 18, 18, 30,206,156, 57,147,216,182,109,219,247, 0,254, 5, 7, 3,120,106,181,218,245,103,206,156, 65,255,254,253,
-255,181, 98,197, 10,191,174, 93,187, 34, 48, 48, 16,106,181, 26,137,137,137,152, 55,111,158, 92,165, 82,173, 80, 40, 20,107,156,
- 76,179, 81,175,215, 79,182, 95, 74,237,138,124,208,235,245,219,243,242,242,182,187,138,112,206,156, 57,191, 63,120,240,160, 56,
- 32, 32,160, 7,143,199,235,128,114, 63,160,124, 0,223, 59, 43,136,172,152, 61,123,246,173, 7, 15, 30,200, 26, 53,106,212,211,
-194,233,141,242,109,140,182,214,129, 51,247,198,141, 27, 97,221,186,117, 35,185, 92, 46, 75, 81, 20,184, 92, 46,203,225,112, 88,
-139, 95, 13, 11, 0, 71,143, 30, 21, 0,168,113,219,156,135,133,186,165,147,255,253,219, 39,169,249,101, 7,211, 10, 74,231, 3,
- 96,247,221, 17,255,210, 49,128, 26, 54,172, 85, 54,244,177,125, 65, 72,203, 3, 85,178,154, 60, 16, 30, 65,200, 54, 55,194,146,
- 35,119,243,105, 16,171,220,154,170,234,113, 53, 44,225, 29,242,242,242,236, 69,150,213,106, 21,213,183,111,223, 36,139,200,178,
- 94,171,139,127,217, 89,179,217, 92,175, 62,140,101, 89,196,196,196, 96,203,150, 45,168, 45,162,185,101,117, 31, 81, 27,159,213,
-162,197, 48, 12,140, 70, 35,238,220,185, 99,139,217,101,157, 46,180,134,118,160,105,186,198,213,234, 12,195, 48, 6,131, 1, 63,
-254,248,163, 67, 98,107,239,222,189, 40, 43, 43, 3, 83,139,130,179, 15,197,208,169, 83, 39,200,229,114,219, 98,159,168,168, 63,
- 66,229, 25,141, 70,167,132,171,149, 51, 50, 50, 18, 50,153, 12, 86,127,225,198, 83,254, 48,246,208, 90,237,159,181,220, 87,107,
-209,122,230, 61,166, 64, 44, 61,213,181,247,208, 62, 83,222,157,231,161,209, 51,120,242, 36, 3, 69,133,121, 32, 9, 18, 33,141,
-194, 16, 30, 30, 1, 17,159,196,238,216, 53,218,164, 75,231,126,211,168, 75, 70, 84,199, 53,202,139,119,105,237,216, 62, 61,155,
- 55,247, 36, 64,155, 0,198, 4,208, 38,192,108,249,107,253,206, 92,177,204,165,164, 40,216, 79,110,202,175, 28, 87, 26,171,220,
-179,106, 28,208,199,219,215,247,244,146,163, 71,197,102,163, 17,197, 31,126, 8, 49, 77, 67,104, 25,149,148, 63,136, 0,244,151,
- 95,150,139,172,201,147, 75,149, 10,133, 83, 91,240,248,251,251,223, 32, 8,194,191,168,168,232,165,138, 12, 31, 16, 16,112,156,
-101, 89,153, 76, 38,235,250, 2,165, 43, 16,128, 2,128,177,138,129, 68, 0,156,247,255,177, 34, 34, 32, 32,224, 19,146, 36,123,
-177, 44,235, 71,146,100,137,217,108,190, 92, 88, 88,184, 18,192, 3,119,127,250,220, 96,141, 12,223,180,150,251, 10, 1,252, 3,
-229, 78,193, 79, 28, 37,239,232,229,229,165,231,155, 14,253,165,157, 96,224,248, 40, 47, 52, 11,246, 4,151, 39, 68,174,138,198,
-217, 84, 21,182,198,229,103,233, 76,204,232,123, 69,165,201,238, 87, 81, 35, 92,190, 5,143, 43,225,235,235,123,245,244,233,211,
- 93,155, 53,107, 70,218, 59,188, 91, 99,229, 89,167,183, 56,156,114, 45,119,225,194, 5,122,226,196,137,151, 11, 10, 10,250, 87,
-199,233,233,233,249,203,237,219,183, 95, 85, 42,149, 79, 9, 42,251, 72,241,214,115,173, 86,139,217,179,103,159,169,110, 11, 30,
- 47, 47,175,181,107,214,172,249,224,173,183,222, 34,173,225, 40,236, 15,235,118, 65,214,195,104, 52, 98,215,174, 93,230,111,190,
-249,230, 91,165, 82, 89,237,212, 97, 72, 72, 72, 86,110,110,110,152, 53,212,130, 35, 65, 69, 35, 34, 34,242, 50, 50, 50, 66,159,
- 37,231, 75, 44,184, 42, 88,183,158,139,105,130, 43, 18,205,241,148,248,124,254,214,164,185,126, 17,205, 91, 18, 65, 33,141, 64,
-128, 68, 65,126, 14, 50, 30,221, 99, 15,253,247,187, 98,173, 74,254,133, 78,167,253,174, 38,158, 54, 64,243,166, 82,222, 62, 62,
-131, 86,176, 10,160, 74,251, 83, 61, 53,226, 0, 96,228,146,119,159,168, 77, 19, 82,107,152,246,177,138,173, 79, 15, 29, 18,243,
- 91,181,122, 42, 80,156,217,108,134, 62, 45, 13,235,166, 76,113, 90,100,185,225,134, 27, 46, 65, 51,212, 30, 35,203,132,242,248,
- 92,206, 90, 76,136,200, 64,143, 9, 44, 48,158,132,185, 61, 73, 16,124,154, 69, 58, 88,252, 34,230,148,110, 76,202,131,206,157,
-253, 14,225,133,221, 84, 26,128,135,175,175,239, 57,138,162,194,173, 22, 25,123,107,125, 21, 27, 74, 63, 41, 40, 40, 24, 2,160,
-166, 21,194,205, 61, 61, 61,191, 99, 24,166,187, 35,155, 74, 83, 20,117, 77,173, 86,207, 65, 13,155, 74, 55,196,170, 67, 63, 63,
-191, 7, 25, 25, 25,205,173,171,168,237,251,202,170, 86,150,223,191,127, 31, 3, 6, 12,200,200,207,207,143,120,150,156, 47, 42,
-170, 89,117,248,226, 88,180,236, 16,202, 19, 72,166,242, 69,194,193,102, 19, 29, 9, 2,224,112,185,119, 13,101,186,243,122,157,
-102, 39,170,153, 46,124,150, 24, 7,244, 17,240,249,191,240,164, 82, 81, 85,162,205,164, 86,235,244, 6,195, 48,183,200,114,195,
- 13, 55,220,112,227, 37, 66, 43, 95, 95,223,211, 92, 46, 87, 96, 47, 38, 43,127,182,130,166,233,178,162,162,162, 17, 0,210,159,
- 49,231,255, 38,156,116, 82, 27,234, 40,167,229, 24,240,162,115, 54,224,179,179, 46,228, 28, 96,225, 92,242,146,164,115,192,139,
-202,105,125, 94, 39,120,135, 58, 83,142, 92,149,159,118,233,100, 93,157,206,134,226,116, 85, 61,170, 34,157,108, 3,188,247, 37,
- 47, 73, 58, 7,188,104,156,149,203,143,131,188, 78,113, 58, 88,166,156, 77, 39,235,234,116, 54, 20,103,125,235, 81, 13,233,100,
-235, 91,150,170,121,247, 75,240, 18, 34,165, 51,216,148,206, 96,239,116,169, 50,110, 99,116,117,191,115,202,145,176,161, 86, 2,
- 88,195,238, 91,248,137, 23,149,211, 62, 31, 92,185, 85, 64, 3,108, 59, 16,231,106,206, 74,249,233, 42, 44,177,172, 48,137,135,
- 3, 1, 71,157,121,118, 87,188,247, 74,207,234, 18,222, 58,136, 44,167, 56, 93, 85,238, 27,154,211, 85,117,169, 50,167, 43,202,
-125, 85,239,189, 1,223,145,171,210,233,146,186,212, 16,101,190,138,242, 83,111,222,202,156,174,168, 75,149, 57, 93, 81,238,159,
- 5,167, 43,234, 82, 85,156,174, 40,247,213,189,251,151,213,208,100,157, 46,180,132,120, 32, 28, 16, 91,177, 0, 64,214, 37,211,
- 26,208, 82, 54,208,213,156,174, 78,115, 67,136, 77, 39, 44, 48,207,157,211,197,239,104,137,133,211,149,163,155,129,174,122, 71,
- 13, 81,222,237, 57, 93,197, 95,153,199, 21,239,169, 42,206,250,166,183,154,116,186,252,217,235, 91,238,159, 21,167,139,223,145,
- 75,234, 82, 37,206,129, 46, 30, 12, 12,180, 59, 95,226, 74, 78, 87,213,165, 42,210, 89,239,247, 84, 21,103,125,211, 91, 77, 58,
- 93,254,236,174,232, 67, 26,138,247,121, 90,180, 88,178,218, 50, 17, 91,233,120, 38, 66,227,185, 77,201, 57,201,253,167,226,116,
-114,122,102,104, 3,188,251,231,154, 78, 87,114, 86, 78,163, 43,167,123, 26, 50,157,174,228,116, 34,173,127, 58,206,151,237,189,
-191,136,249, 89, 29, 95,125,166,165,170,179,142, 54, 68, 58, 93,201,233, 32,247,159,130,179, 30,239,254, 79, 7,206,139,146, 16,
-107,198,187,120,100, 2, 23, 91, 96, 26,236,185, 93,156,206,129, 13, 97, 33,108, 0,184, 60,157,150,145,242,231, 13,240,236, 47,
- 75,158,186,235,146,187, 46,189,112,117,169, 82,153, 28,232, 66, 75,145, 75, 45,207,149, 57, 93,241, 63,236, 57, 92, 85, 70, 27,
-250,217, 93, 89,151, 26,226,221,191,108,248,127,192,195,143, 90, 43, 71,167,194, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/blob.png.c b/source/blender/editors/datafiles/blob.png.c
deleted file mode 100644
index c6540511709..00000000000
--- a/source/blender/editors/datafiles/blob.png.c
+++ /dev/null
@@ -1,344 +0,0 @@
-/** \file blender/editors/datafiles/blob.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <blob_png> */
-
-int datatoc_blob_png_size= 10703;
-char datatoc_blob_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68,
- 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252,
- 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215,
- 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 20, 5, 32, 44,179,189, 3,155, 0, 0, 32, 0,
- 73, 68, 65, 84,120,218,237,125,121,152,101, 87, 85,239, 90,251,156,123,111,221,174,121,234,185,134,158,170,186,186,122,202, 64,
- 63, 50,116, 39,129, 4, 18,201,128, 33, 6, 8,248, 16,240, 1, 65, 1,101,242,227,201,167, 79, 68, 69,248,228, 41, 40, 2, 15,
- 21,103,209, 39, 2, 79,145, 48, 42, 36, 16, 50, 66, 72, 39,157, 30,211,115,117,141,119, 58,227,222,123,173,247,199,222,251,156,
-115, 43, 33, 9,208, 74,252,244, 38, 95,213,173, 91,183,206, 93,103,237,181,215,240, 91,191,181, 27,247,237,219, 7, 79,251,120,
- 38,111,242,179,103,247, 62,248, 93,153,202, 32,104,213, 22, 23, 78,157, 56,250,139,111,125, 71,246, 43, 97,190,125,243,238,123,
-101, 42,147, 36, 73,226, 68, 42,229,151, 58, 74, 37,127,249,155,130, 48,104,181, 90,173, 86, 51, 8, 90, 97, 16,164, 82,126,229,
-107, 95,255,212,167, 62,213,246,166,250,210, 98,189,182,212,168,213,162, 40,138,194,232,210,203,175,148, 82,161,231,191,255,183,
-223, 7, 0,130,136,238,125,224,193,102,179,217,168,215, 17,113,114,235,182,177, 13, 27, 14, 30,120,184, 86, 91,106,212,235, 97,
- 24, 90,193, 17,189,109,219,119,106, 77,243,179,103,231,231,102, 23,230,231, 15,236,127,104, 98,106,251,204,217, 51, 39, 79, 60,
-254, 59, 31,248,109, 31, 0, 52, 49, 49, 48, 83,111,223,224, 3,247,223,179, 48,119,110,239, 85,215, 28, 61,124,112,106,122,251,
-202, 85,171,146, 40,242, 1,128,180,102,210, 90, 19, 3,239,216,185, 59,149,169,146,114, 98,235,212, 61,223,186,107,221,200, 40,
- 32, 8, 0, 32,173,180, 38, 34,173,149,210, 90, 51, 49, 17, 53,234,245,141,155, 39, 6, 7, 7,153,193, 7, 0,169, 20, 51,107,
-173, 73,107,165,149,121,104,173,181,150, 7, 31,123,172, 84,242,241, 25,173,221, 51,121,160,249,246,233,207,124,118,253,200, 88,
- 20, 69,205,122,109, 97,126,246, 85,175,122, 85,241, 77, 86,227,107,214,174, 79,146, 36, 78,146, 84, 74,165,233,189,191,254,107,
-203,175,244,133, 59,238,240, 75, 29, 74,202, 40,142, 90,205,102,173,182,116,209,197,123,154,141,218, 13,215,191, 40, 77, 83,123,
-165, 90,173, 86,175, 45,213,235,245,102,189,158, 36, 49, 48,104, 98,165,249, 15, 63,250, 81,115, 37,239,158,251, 30, 56,115,250,
-100,146,166, 97, 24,110,223,181,187,179,171, 59, 14, 3,225,121,245,250,210,210,226,226,250,213,131, 15,124,231,123,190,240,252,
-237,187, 46, 34,210, 74,233,249,185,185, 32,104,213,106,181,174,238,158,217,153,153,153,179,167, 43,149,142, 74,165,236, 51, 19,
- 17,144, 38,102, 62,244,216,163, 81, 20, 30, 63,122,100,237,250, 17,207, 19, 8,188,243,194, 61,239, 25,223,136,119,223,247, 0,
-105, 98, 38,173, 73, 74, 41,165,212, 74, 74, 41,147, 56, 78,146, 36, 12, 91,205,122, 77,144, 54,235,161,181,214, 68,196, 68, 90,
-107,173, 52, 17,109,158,152, 96,102, 0,240,149, 82,164, 89,147, 38, 34,183,110, 74,107,165,181,126,116,255,126,173, 53, 17,195,
-249, 90, 59,255,137, 47,121,158,119,247,183,239,149, 90,203, 52, 77,211, 36,142,162, 48,104,221,254,134, 55, 44, 46, 45, 61,211,
- 11,253,249, 95,252,213,214,169,109, 12,168, 73,107, 77,154,152, 8,136, 1,208,251,224,255,254,221,160,213,168, 45,206,253,242,
-175,188,231, 73, 47, 36,178,103, 95,249,234, 87,199,198,199,227, 56,142,162, 48, 12,195, 40, 50,223,131, 40,138,226, 36, 78, 82,
-153, 74,133, 94,249, 93,239,124,235,211, 72,212,108,182,252, 82,138,136, 68,172, 73, 43,169,164,148, 82,166,105,146, 36, 73,156,
-166,233,115, 47,187, 2, 17,211, 52,185,242,154,235,131, 86,163,182,180,248,241,143,253,225,221,223,190,215, 42,100,108,108,236,
-248,241,227,223,190,247,190, 51,167, 78, 26,175, 19,197, 81, 28,134,105,154,148, 74,165, 45, 19, 19, 61, 61, 61,149, 74, 5,129,
-122,250, 6,162, 48,136,172,196, 97, 20, 69, 99, 99, 99, 27, 71, 86, 61,240,157,239, 1,128, 55, 50, 50,242,247,255,240, 57,225,
-121, 67, 43,215, 0,112,173,182,148, 38,169,214,106,124,108,172,127,104, 40, 77,146, 48, 12,195, 32, 8,130, 96,255, 67, 15, 86,
- 58,170,173, 86,171,217,104, 52, 27,245, 90,173,182,184, 48, 55,119,238,116, 87, 87,207,233, 51,103,125, 0, 64, 33,136, 1,152,
-251, 7,134,250, 7, 6,137, 8,128, 15, 29,120,164, 84,238,208,164,147, 56,105, 53, 27,181,165, 69, 34,189,106,245,154, 83, 39,
- 30,127,252,232,225,161,225,225, 99,135, 31,155, 61,115,116,223,213, 55, 92,186,175,116,211,141, 55, 8, 0,208,100,254,179,246,
- 72, 68, 90,211,248,198,137,117, 35, 99, 90,169,199, 30,125,248,224,163,251, 75,165,210,202,213,107,238,189,251,174,147, 39,142,
- 63,255,133,215,169, 52, 78,162,230, 79,190,252,181,221, 61,253,194,243, 75,149,170, 15, 0, 90, 19,176,125, 16, 49, 51, 49,179,
-185,236,186,245, 35,171,215,172, 35,178, 70, 77,164,131, 32,248,252,231,254, 97,114,106,122,203,182,221,125, 3,195,179, 51,167,
- 1, 0, 17,125, 0,208, 74, 51, 51, 3, 48,105, 0, 48,130,217, 75,146,217, 58,102,203,106, 38,242,125,255,130,139,247,144,166,
-137,173,219, 14, 62,186,191,187,187,219,188,193, 72,164,184,240, 32, 34, 50,206,146,136,137, 53,105,119,191,218,110, 68,173,181,
-214,113, 28,165, 73,172, 59, 59,181, 86, 90,211,249,243,147,231,229, 49, 58, 58, 42,206,215,181,158,100,247,191,247, 55,126,243,
-234,107, 94,160,148, 74,211, 52, 73,226, 40, 12,230,207,205,188,238, 13,183, 63,163, 8,144, 61,238,123,224, 59, 0,168,180, 86,
- 74,165, 73,146, 36, 73, 18, 69, 81,212,106,212,235,175,127,195, 27,158,233,173,221,115,223, 3,196,160, 52,217,245, 33, 34, 34,
- 2, 34, 70,225,121,191,243,129,247, 63,133, 68,249,133,238,188,235,155,154, 88,187, 40, 40,165, 84, 74, 90,175, 74, 74, 19, 49,
-224,187,223,245,206,167,215,145,210,196, 32, 25,128,136,204, 85,164, 76,165, 76,149, 84, 50, 85, 74, 41, 34,242,203, 21, 33, 4,
- 17,125,223, 11, 93,118,217,165,105,154, 8,161, 25,152, 52, 41,173,149, 76,165,148,105,154, 38, 73, 98, 46, 55, 48, 56,116,217,
-190,171,246, 93,117, 77,171,217, 56,123,250,196,235,223,240,198, 39,185,181,125,123,247,198,113,156, 36,113, 18, 39, 73, 18,167,
- 73,108, 20,109,191,199, 49, 51,239,188,224, 34, 20, 2, 0, 81,120,221,189, 3, 31,250,189,223,123,146, 11, 37,105,146,196,113,
- 28, 69,113, 28,197,113, 28,199,113, 18,199, 74, 74, 64,102, 38, 20,226,185,151,237, 85, 82,165,105, 42,149,210, 90, 17,145,240,
-188,119,189,243,109,109,183,118,235,173,183, 94,121,197,149,245,102, 75, 8,143, 25,136, 72,147, 46,149,202, 19, 91, 38, 24,184,
-213,108, 46,206,207, 18,113,154, 38,105,154, 36,113,146,196,137,185,160,240,114, 21,251,247,220,119, 31,162,199, 12,139, 15, 63,
-164, 64, 51, 3,145, 22,194,219,188,121,179,240,252, 52, 77,153, 1, 61,255,193,123,191,181,113,203,214, 84,166,137, 17, 56, 54,
-178, 39,249,173,121, 94, 9, 81, 8,207,155,222,121,129,231,121,198,237,120,158, 72, 83, 25,199,113, 20, 69, 81, 20, 38, 73,162,
-180,126,244,225,239,134,173,150,113,188, 97, 16, 4,173, 86,208,106,124,240, 3,239,115, 58, 66, 1,136,198,129, 76, 78, 77, 79,
-239,216,181, 99,247,238,238,174, 21,205,102,163,217,108,180,154,205, 32,104,133,173, 32, 12,130, 83, 39,143, 19,115, 20, 4,205,
-102,189, 81,175,215,235,181,197,185,153, 82,185,227, 55,127,253, 87,152, 57,191, 73,102, 98, 6, 19,237,123,250, 6,103,206,158,
- 69, 33,100,154,134, 97,208,168,215, 23, 22,230,111,121,249,127,159,159,155, 61,117,252, 8, 3, 70, 81, 56,127,238,140, 38, 22,
-158, 95,174,172,184,234,138,203,125,243,199,204, 12,204, 0,246,121,165, 99, 69,189,182, 40,149, 86, 82, 70, 97, 80, 91, 90,106,
- 52,106,243,115,115, 75,139, 11,173, 86,176,239,121, 47, 56,118,228, 80,185, 82, 90,183,110, 4, 1,132,231,251,165,178,176,110,
-218,250,105,235,114,153,105,251,206, 11,183,239,220, 29, 71,225,252,220,108, 24,182,174,185,246,250, 99, 71, 14, 29, 57,244,216,
-141, 55,223,218,168, 45, 62,246,232, 35, 19,147,219,202,149, 14, 6, 64, 33, 80,120,120,207,253,223,209, 68, 0, 12,204, 90, 3,
-179, 54, 66,185,192,162,181,210,196, 68,154,152,116, 87,119,119, 16, 69,103, 78,158,240, 4,158, 56,126,108,116,108,163, 73, 51,
-246,239,127, 88, 16, 49, 48,177,102,173, 25, 64,155, 59, 37, 34, 48,210, 49,160, 91, 10, 34,170,213,106,247,223,125,215,221,119,
-126,173,167,111,224,202,171,127, 34, 8, 90, 0, 12, 8, 0, 40,108,224, 1, 27,139,200,197, 35, 34, 50, 47,104,210,144,197, 40,
-173,167,182,239,188,250,218, 27,207,158, 62, 89,237,168,156, 60,126,204,168, 23, 0,124,235,115, 24,204,154,217,191, 39, 2, 32,
- 38,178, 41, 31, 19, 17, 91,247, 68, 68, 76,125,253,131,251, 31,126, 40, 12, 90, 86,191,192,249,133, 24, 40, 87,187,141,143,196,
- 76, 70, 78,102,237, 94, 51,177, 74, 15,173, 92,181,227,130,231,200, 52, 37, 98,224, 92, 34,123, 9, 98,119, 65, 27,212,178, 16,
- 87,124,104, 34,154, 61,123, 86,166, 41,217,143, 57,127, 57,228,121,121,140,140,140, 8,120, 54, 61,108, 46,242,204, 31,151, 92,
-122,233, 45,183,220, 50, 49,185,181,187,171, 91,147, 86, 82,134, 97,112,248,208,193,187,238,186,235, 51,159,249,236,249,145,105,
-223,190,125, 95,255,250,215,159,226, 29,183,189,226,149,111,249,197,183, 2, 8,132,220,220, 93, 98,163,148, 52,129,207,228,190,
-113,154, 38, 39,143, 31,255,213, 95,123,207, 15,157,137, 60,149,134,238,248,210,151, 6, 7,135, 25,133,177,121,118,201, 33,105,
-107,182, 68,204, 0, 12,192,108, 34,148,239,121,180,118,253,200,239,127,248, 67, 81,216,250,165,119,189,251, 73,195,232, 83, 63,
-158,220,134, 46,185,228,146,111,125,251,190,190,254, 65, 98,176,229,151,210, 42,251, 95, 43,165,148,150, 74,107,173,204, 75, 54,
- 17,182, 91, 5, 16,133, 87,122,207,175,253,202, 43, 94,118,203,121, 16,232,218,107,175,125,223,251, 63,160,181, 86,210,132,126,
-251,200, 18, 10,243, 99,170,210, 84, 74,165,148, 84, 74,154, 4,195,200,166,205,118, 38, 0,220,176,113,243,235, 94,243,211, 63,
-106,206,247,214,183,189, 93, 41, 77, 4,136,152, 5, 20,155,109, 59,255, 97,234, 56,173,109, 37,154, 21,166,202,100, 44, 74, 51,
- 96,111,223,192,158, 75,166, 60, 33,110,184,249,165, 71,142, 28,254,230,157,119,125,230,179,159, 53, 53,251, 15, 32,208, 91,222,
-242,230, 52, 77, 60, 77, 40,132, 19, 40,147,201,120,220, 98, 21,173,181,210, 74, 43,210, 90, 74,169,148, 50,161,166,163, 90,189,
-120,207,115,129,153,136,149, 86,194, 47, 79, 77,239,220,180,121,242,165, 47,191, 45,142,163, 48,104,125,252,163, 31,189,247,254,
- 7,158,145, 64,157, 43, 86,196, 81, 44,124, 37, 80, 32, 34,219, 32,158,151, 57,148, 85, 37,218,213, 19, 90,105,169,165,150, 90,
- 41, 20, 98,116,108,124,253,250, 81,115, 3, 90,155,253,104,238,132,153, 17, 81,120, 94,233,103, 94,253,154,151,188,228, 37,239,
-121,239,123,195, 48,122, 26,129, 70,199, 70,146, 36, 22,202, 67, 20, 8,104,211, 19, 96, 38, 87,114, 17,153, 28, 72,120,158, 95,
- 42,245,246,246, 34, 98, 18,199,113, 20, 74,169,250, 6, 6, 7,135,134,164,146, 38, 48,104,210, 90, 41,169,148, 86, 50, 77, 83,
-169, 82, 41,149,210,154,152, 81,136,183,253,194, 91, 62,248,187,191, 23,180,203,228,155,232,120,215,183,190,229,123, 37, 20, 98,
-246,220,153,249,185, 57,212, 2,193, 36, 75, 0, 0, 38,191,101,102, 64, 40,149, 74, 93, 93,221, 35,163, 99,136, 72, 68, 38, 13,
- 47,149,202,190, 95,138,162, 96, 97,110,230,236,201, 99, 19,211,187,164,148,217,130,106,165,165, 76,149, 43,213,211, 52, 77, 83,
-187, 77, 94,241,178,159,250,248, 31,255,217,114,129,238,189,255, 65, 0, 48,250, 88,181,102,164,111, 96,248,232,161,131, 54,123,
- 32, 27,114,141,220, 66,136,145, 13,235, 43, 29, 43,180,182,144,141,245,137, 50,149, 74,106,173, 25, 48,145,234,158,111,254,235,
-196,182,157, 89,137,104,182,159,148,105,150,173,199,113, 20,133, 81, 20,134,113, 28,110,217,178,233,208,161, 35,109, 75, 38,132,
-103,238, 30, 0,145,185, 82,238,216, 58,189, 19, 17,136, 88,201,180,213,106, 45, 46, 46, 68, 81,200,196, 3,253, 61,105,154,106,
- 6, 68, 97, 64, 59,173,204, 98, 88,140, 34,138,162, 36, 73, 90,173,224,238,175,127,117,122,247, 69, 0,160,164,115, 10, 86, 59,
- 73,154, 38, 81, 24, 69, 65,171,217, 88,170, 45,156,251,249, 55,190, 49, 73,162,143,124,228, 99,143,159, 56,233,108, 8, 49, 79,
- 65,129,209,196, 8, 70, 0,242,124,175,167,183,175,167,183,151,153,128,197,210,194, 76,189, 86,243, 74, 37,129,130, 1, 92,248,
- 80, 6, 17, 74,226, 56,138,162, 32,104, 53,234,245, 23,221,244,146,114,165,210,172, 47, 45, 44,204, 55, 27, 13,153,166, 82,201,
- 52, 73,156,122,130,160, 81,171, 45,158,187,242, 5, 55,248,165, 18, 51,223,126,251,235,211, 56,252,195,255,243, 73, 31,242,125,
- 4,128, 12, 12, 4,204,128, 8,198,124, 17,192,102, 53,128,212, 63,180,250,236,153, 7, 24, 0,133, 7,128,196,164, 85,142,226,
-196, 81, 20,134, 65,216,106,221,112,243,173,158,239, 7,173,102, 20, 39, 82,170, 52,137, 70, 70,199, 55,108,158,104,212,107,179,
-231,206,126,251,206,175,205,205, 28, 87, 82,191,240,198,151,122,158, 64,244, 76, 34, 76,204, 47,188,230,106,223, 74, 3,192,230,
- 19, 0,208, 36,157,192,204,192, 8,192, 86, 70, 96,214,160, 38,182,237,100,166,135, 30,188, 47, 12, 67, 35,141, 93,136, 36, 73,
-147, 36,137,163, 29, 23, 94,188, 48, 63, 79,164,147, 36, 9,195,160,190,180, 52, 55, 59,179,115,247, 5, 75, 75,139,243,179,179,
-243,115,115, 94,169,242,147, 47,123,141, 82,202,134, 27,173, 16,133, 16,158,239,149,132,231,249, 0, 96, 98, 56, 2, 24,172,135,
-192, 73,228,212, 5, 96,226, 42,216,138,130,121,122,231, 5, 76,100,130,153, 19,219,216, 61, 3,176,214,252,232,254,135,102,207,
-205,148, 74,254,139,111,121,185,148, 42,104, 53,151, 22, 23, 22,230,103,119,236,220,181,101, 98,178, 86, 91, 18,136, 44, 16,136,
- 1, 17, 16, 1, 16, 5,218,124,200, 21, 10,204,132,104, 4, 0, 34, 70, 96,178,122, 98, 0, 96,114, 90,115,181, 14,123, 2,177,
-228,219, 31, 29, 50,196,140,136,188,117,122,199,228,212,116, 71,117,197,193, 3,143,104, 77, 97, 24,212,107, 75, 39,143, 29,157,
-156,218,118,232,177, 71,247, 92,114,121,146, 36, 71, 15, 29, 0, 20,246, 3,208,228,249,104,151,140,180, 9, 93,198,110,136, 1,
- 51, 49, 17,205,199, 0, 34, 16, 59, 37, 2, 16, 0, 48, 24,247, 13,108,222,158, 99, 86, 76, 68, 0, 65,171, 89, 93,209,105,182,
-226,170,213,107,135,134, 87,239,127,232,161,131, 7, 30, 30,221,176,169,182,180,116,236,216,209,141,155,182,152,213, 0, 46,108,
-123,147,115,153,245, 96, 64,102, 70,100, 34,155,234,184,204,221, 85, 38, 0, 78, 37,196, 54, 79, 98, 6, 42, 66,104, 70, 70,151,
- 49, 17, 34,118,247,244,104, 34,102,238,238,217,112,201,229,251,226, 36, 81, 82,118,118,118, 57, 47, 7,153,171,203, 5, 98, 70,
-155,108,229,142,208,106,204,252,224, 22,202,138, 78,238, 57,185, 42,131,243, 50, 42,147, 46,255,207,104, 46, 85,234,232,145,195,
-165, 82,233,228,241, 99,157, 93, 93, 92, 72,245,204,223, 57,129,204,173,187,250,213,236,245,204, 35,100,242,219, 74, 5,236,178,
- 0,184,207, 4, 91, 48, 1, 19, 1,176, 45,150,220,218,185, 32,152, 71, 67,166, 93, 23,237, 57,240,240, 67,218,150, 89, 46, 32,
- 0,251,136,248,181,175,126,217,238, 31, 52, 18,184, 37, 53, 47, 49, 23, 94,179, 91,137, 51,111,145,189,194,252,125,158, 21,181,
-110,205,130,153,249,254,251,137, 25,216,201,169, 53, 49, 47, 46, 46, 61,203,240, 70, 83,155, 61,123,132,217,183,111,159, 77, 11,
-159, 61,143,103, 87,229,250,108, 20,232, 7, 40,165,203,229,242,207,253,220,207, 95,188,231, 57,107, 87,175, 65,129, 74, 41,153,
-166,103,206,156,121,236,192,129,191,253,187,191,125,252,241,227,255,126, 2,109,221,186,245,143,254,248,147,194,247,129,193,246,
- 46,180, 70,100,225,149, 86,175, 89, 59, 52, 60,124,241,115,246, 40,149,126,242, 79,254,228,139, 95,250,242,143, 90,219,143,142,
-142,158, 56,113,226, 41,222,113,239,253, 15, 48, 34, 50,146,173,163, 45, 38,158,117, 8,109, 53,153, 38, 73, 28,167,105,252,214,
-183,189,189,217,108,253,208,187,204,235,237,237,173,215,235, 79,250,235, 29, 59,118,124,254, 11, 95, 68, 33, 0, 69,150,196, 21,
-235,198, 12, 39,179, 79,129,153,248,170, 43,175, 40,151,253, 3, 7, 14,254, 16, 2,141,141,141,125, 95,163,222, 58, 53,245,199,
-127,250,103, 38, 37,128, 44,102,114, 17,242,115,226, 89,104,135, 1, 16, 4, 10,225,239,219,119,197, 43, 94,118,235,249,220,101,
-221,221,221,159,252,211, 63, 7, 7, 93,114,174,143,182,160,100, 51, 20, 7,190,130, 73, 49, 17,133, 16,219,119,238,184,112,247,
-206,243, 38,208, 63,223,241, 69, 68, 65, 46,147,205,214,196,228,156, 89,153,175, 11,112, 33, 3, 80, 30,133, 81, 8,255,198,235,
- 95,228,251,254,121, 16,232,246,219,111, 7,192, 54, 88,193,213,206,217, 22, 51, 37,151,107,246,101,101,127,182,178,192,204, 32,
-188, 55,190,238,213,231, 97,219,191,236,182, 87, 48,128, 38, 66, 64, 83,182, 22, 87,202, 8,104,165,211,182, 21,229, 32, 85,157,
-193,180, 70, 79,213, 21,157,213,106, 71, 20,197, 63,188,134, 38, 39, 39, 13,198, 99, 97, 5, 91,160,103,157, 74, 85,160, 16,232,
- 28,110,104,123,162,153, 24, 17, 61,223,171,116, 84,175,220,123,201, 15,164,161,229,219,254,163, 31,251,104, 71,181,154, 43,166,
-176,173,141,120, 6, 68,208, 74,107, 42, 8,225,228, 51, 96,145,113, 7,155, 38,182,110,223,177,235,210,203,175,120,254,243,159,
- 55, 53, 53,213,106, 53,103,102,102,158,118,219, 47, 95,178,142,142, 14,173, 52,123,128, 68,166,243,104, 76,194,180,137,237,215,
-130,111,212, 90, 81, 81, 97, 90, 19, 3, 0, 94,252,220,203,170,213,170, 41,254,215,172, 91, 63, 52,188,242,226,231,236, 73,162,
-240, 35, 31,249,131,111,220,121,215, 15,176,100,172,217, 66,136,166, 74,214, 5, 32, 81,103,125, 71, 91, 65,107,173, 72,147, 42,
-188, 98,234,187,221, 23, 61,167,171,179, 27, 81,160,240,236, 87,225, 9,207, 19,190,255,154,215,254,236,135, 63,244,187,207, 84,
- 32,207,243, 28,164,105,122,157, 74, 41, 37, 93,199, 83,101, 48,162,118, 79,148, 69,127,204, 43, 68,132,136,189,125,253, 61, 61,
- 61, 46, 27,206,202, 76, 3,139, 11,207, 47,149, 43, 29, 31,248,237,223,122, 70, 2, 33,162,145,197,162,207,230, 73,222,132,205,
-162, 87,206, 80,202,168, 49, 90,217, 6,254,244,206, 93,198,101,230, 91,145, 51, 80,199,124,138,240, 75,229, 95,125,247,187,158,
-126,219,155, 11, 51,160,231, 49,146,200,202, 55,199, 16, 96,118, 72, 30, 48, 35,128, 16,130,129,209, 60,132,240, 16,215,143,140,
-145, 38, 3,112,233,162,119,176,110, 44, 19, 11,253, 82,101,237,154,213,103,206,206, 60,149, 64,215, 93,119,157, 82,202, 99, 36,
-178, 31, 99,202,177, 2,109,193,150,202,194,247,153,185,179,179,171, 90,237, 80, 74, 38, 81, 24, 69, 49, 49,172, 94,187,150, 44,
-101,200, 57, 9,165,200,128,181,110, 59, 24,183, 14, 0, 47,187,229,230, 15,126,248, 35, 79, 46, 80, 87, 87,215,231,191,240,133,
- 74,185,227,209, 71,190,103, 96, 43,151,107,163,171, 15,109, 80,243, 60,207,243,253,254,190,254,149,171, 87, 41,105,178,180,212,
-243, 60, 20, 34, 12, 90, 11,115,231,250, 6,134, 13,249,204,110, 67,165,164,227,161, 21, 54, 35, 17,179,120,178,192, 34, 0,224,
-166, 23,191,248,203, 95,253, 90,185,220, 33, 60, 31, 1,180,214,228,254, 86, 74,149, 19,219,180, 2, 4, 33,196,248,248,248,202,
- 85, 43, 77, 59, 1, 80, 0, 10,131,167, 8,175,116,246,244,169, 70,163,166,148,212, 22, 77,183, 20, 45,173,149, 86, 82,201, 76,
- 38, 43,224,134,209,245,203, 5,122,245,171, 95,253,174,255,249,203, 66,120,158,231, 33, 98, 71, 71, 21, 0, 52,232, 28,137,214,
-118,239, 3, 51, 48,172, 93,183,182, 84, 42, 49, 96,193, 48, 52,185, 58,151, 0, 14, 31,216,111,208, 68, 37,149, 76, 29,214,105,
- 48, 78,149, 63, 53, 59,117,205,234,149,203, 5,170,116, 84, 61,207, 23, 66, 0, 8, 64,216, 52,185,173,187,187, 7, 25, 51, 91,
-214,121, 92,231, 74,165, 82, 42,149,181,166,220, 21, 57, 87,101,240,104,102,150,105,122,244,200,193, 36,137,165, 76,165,116, 34,
-164,210, 73, 99,210, 75,243, 53,222,176, 97,116,185, 64,102,135,152, 6,172,217, 84, 99, 27, 55, 77, 76, 77, 87,171, 85, 3, 33,
-101, 62,129,153,250,122,187,140,169,186,214,135,148, 42, 53,132, 71,169,164,210,202,172,246,204,233,147,134,214, 32,101, 42,211,
- 52,131, 95,165, 69,132, 83, 3,182, 37, 73, 60, 60, 52,252,190,223,248, 95,203,108, 8, 1, 1,208,104, 8,153,136, 9, 74, 37,
-127,227,230,201,169,233,237,155, 54, 79, 12,175, 92, 85,233,168,250,190, 87, 42,149,149, 38, 3,184, 74,153,164, 73,226, 62,192,
-246, 99,148,148, 42,149, 74,233, 52, 77, 27,245, 90,142, 6,167,150,224,146, 36, 73, 26, 39, 73, 28,167,134,143, 16,180,214,141,
-110,244, 75, 29,191,242,238, 95, 42, 8,212, 94,184, 50, 32, 32, 24, 16, 6, 16, 43,213,142, 85,171, 87,111,153,152,220, 58,189,
- 99,211,150, 9, 41, 13,153, 35, 78,226,216,124,138,129, 22,211, 52,113,116, 17,251,193, 90,169,114,185,194,192, 90,147, 76,147,
- 52,141,210, 36, 78, 19, 7,213,134, 97, 20, 54, 26,245,133,206,174,174, 82,201,239,236,236,122,253,207,190,170,184,237,209,250,
- 64, 98,131,233, 33, 90,156, 17, 13,210, 8,136,192,126,169,148,196, 9,179, 16,158,103,160, 81,109,129,115, 35,103,108, 88, 39,
-113, 28,149,203,229, 93, 23, 94, 28,180,154,245, 37, 14, 90,173, 40, 10,173,249,152,119, 68, 81, 20,181,130,102,125,112,120,157,
- 76, 37, 10,207,247, 75, 35,163,227,207,185,120,119,123,232, 48,232, 89, 1,190,204, 72, 15, 6,195, 67, 0,165, 84, 20,134, 81,
- 24,197, 81,219,255, 81, 28,197,134,210, 27,134, 73, 28, 95,119,227,205,214,215, 0, 34,114,189,182,168,164,236,239, 31,232,238,
-238,137,194, 32,104, 53, 90,141,165, 48,104, 77, 78,239, 16,158,135, 40,132,240,125,191,116,253,139,126,194, 2, 86, 14,154, 2,
- 6,100, 2, 11,156,131,105,102,216,184,200, 68,128, 98,120,213,186, 83, 39,142, 33, 10, 20,130,136,141, 71,177,184,112, 18, 71,
- 97, 24, 4, 45,207,243, 0, 48,138, 66,195, 13,149, 82,147, 82,215,190,228,197, 97, 16, 44, 46,204, 87,171,229, 59,255,229,203,
- 97,171,190,109,231,197, 93,221, 61,158,239,147, 38, 64, 33, 60,207,247, 74, 0,224, 91, 24,202,172, 12, 35, 32,217, 68,136,173,
-111, 65, 48, 8, 25, 2, 83,119,119, 79,181,186, 98,105,105,209, 56,158,188,181,144, 38, 73, 18,135, 65, 16, 6,173,107,174,187,
- 49,104, 53,211, 52, 53, 26,139,194,160, 21,180,194, 32,136,194, 32,142, 35, 69,188,114,245,186, 29,187,111, 18, 2, 45, 96, 75,
- 44, 4, 10, 97, 44, 33,139,101, 6,251, 69, 98, 66,139,159, 3,130,129, 16, 1, 1,217, 2,180, 8,163, 27, 54,117,118,247, 28,
- 62,120, 64,107,109,221,137, 76,173,141,199,177,241,206,245,122, 93,202, 52,142,162,102,179, 81, 91, 90,218,184,105,139, 74,147,
- 86,171,213,168,213,154,245,198,228,214,233,234,138,170,225, 9,106,173, 77,150,129, 40, 16, 61, 0,240, 57,135,162, 49, 71,243,
- 1, 44,140,110, 86,203,193,141,134,148, 49, 48, 56,180,231,146,203, 23, 22,230, 79, 62,126,236,220,204, 25, 35,141,146,170,187,
-167,103,199,238,139,130, 32,136,227, 72,166, 73, 24,134,245,165,165,107,174,123, 81,103, 87,119,163, 94, 15, 26,245,179,103, 78,
-159,124,252,200,232,248,213, 38, 59, 96,173,161, 0, 9,163, 64,163, 33,135, 92,155, 24,111, 63,219, 66,251,192, 96,165, 49, 48,
- 62, 48,147, 69,171,187,187,123, 38,167,166, 55, 79,108,181,142,195,217, 62, 0,204,206,204, 28, 57,123,166,190,180,120,237, 13,
- 55,117,117,247,198,113,148,196,145,102, 22,192,175,189,253, 45,143, 61,250, 61, 39, 70, 65, 26, 68,179,217,141, 13, 17, 0,154,
- 45, 79, 89,158,135,182, 81,239,120, 74, 89,209,108,216, 55,128,136,158,231,161, 64,118, 80, 51,128, 48,239, 28, 90,185,114, 96,
-104,168, 92,169, 0, 83,163, 81,143,163,176,217,108, 54,155,205,122,163, 54, 63, 63, 87,111,180,134,134,134, 65,107,187, 2,214,
- 53,219,158,179,111, 33, 86,215,117, 65,116,183,153, 75, 79,224,122, 88,214,246,209,181, 60,204, 85,208, 1,180,142, 84, 96, 68,
-151,105,154,164, 73,216, 10,146, 52, 9,154,205,249,185,217,142,106, 53,142, 66,153, 38, 91, 38, 39, 79,157, 56, 94, 91, 92,180,
-123, 41, 7,242, 65, 0, 56,234, 14, 80, 86, 11,179, 67,164, 77, 95,209,226, 26,224,122,211, 38, 69,181,232, 52, 19,176, 33, 46,
- 65, 17,209,102, 86, 74,149, 75,229,249,249,217,199,143, 30, 62,118,248,224,177,195,143, 94,241,252,235,130, 32,232,239,239,111,
- 54,155, 73,154,206,156, 61, 93,144, 36, 75,208,236, 13,161, 69,229, 25, 17,108,221,153,129,247,142, 29,197,166, 7,139,133,212,
- 22, 29,160, 77,174, 11,224, 74, 58, 6,102,165,228,232,232,248,240,240,170, 32,104, 13, 12, 60,239,224,129,253,103, 78,159,218,
-176,113,211,252,220,220,217, 51,167,151, 22,231,135, 86,174,206, 96,112,215,115,205, 90, 99,204,166,129,199, 0, 68, 38,206, 2,
- 0,163, 13,109,217, 50,218, 58,217,129,233,228,140, 43, 55,179, 2, 96, 14, 0, 92,169, 84, 74,229,146,210,170,179,179,123,219,
-244,206,109,211,211,141,102,179, 89, 91,172,110,153,130,118,164,222,105,200,114, 74,236,157, 33, 60, 17,172, 39,104,183,237,252,
-105, 1,197, 42,130,246,217, 19,179,210,198, 76,202,229,242,232,248,134,102, 43,104, 53,155,154, 11, 93, 1,206, 12, 15,124,183,
-242,224, 26,226, 72,110, 79,154,101,200,154,100, 80,220,221,203,250, 5,100, 93,153,165,194,217, 95,154, 54, 13, 21, 4,230,249,
-185,217, 86,179,217,106, 53, 79,159, 60,177,122,205,154,130, 30,205,218,128,176,198,108, 20, 69,206, 61,176,179, 82,147, 31, 57,
- 13, 57, 83,177,224,148,107,137, 16,152,222, 99,161, 64,201, 76, 60, 43,198,205,103, 55, 27, 13,173, 85,255,192,192,153,147,199,
-202,229, 74,222, 23,177,177,194,104,104,121,120,207, 37,110,107,108,130,237, 0,185,214,154,165, 59, 64, 1,237, 43,172, 99,118,
- 71,204,237, 45,171,158,222,190, 52, 77, 38,183,109,127,226,219,173,134,150, 93,174,176, 16, 4,182, 55,199,108,120,200,236,186,
-117,148,201, 67,148,191,208,222,196, 3,199, 65,160, 34, 37,157,107, 75,139,213,106,231,208,240,234,226, 6, 96,215, 86,114,137,
-116,161,205, 4, 5, 35,163,204, 96, 92,139,216, 53,238,168, 96,204,212,190, 5, 50,246, 74,150, 91,113,177, 43,200,204,115,231,
-102, 14,236,255, 30,219,132, 34,215, 0, 0,248,199,142, 30, 45, 54,199, 50,179,135,204, 49,231,246,190, 76,100, 40, 50, 86, 97,
-121,102, 87,252,168,226,218,228,207, 30,217,255, 8, 23,250,123,198,205,224,190,125,251,150,150,150,106,181,218,179,173, 45,244,
-227,125, 48,115, 95, 95, 95,127,127,191, 15, 0,245,122,253,228,201,147,255,165,148, 39,146, 60,251,251,251,197,127, 41,226, 63,
- 88, 59,241, 63,112,123,243,135,252, 0,223,239,235,235,171, 86,171,157,157,157, 29, 29,213,106,181,163, 84, 42, 3,112, 16, 4,
- 81, 20,197,113,220,106,181,194, 48,108,181, 90,255, 89, 20, 52, 60, 60,124,235,173,183,222,246,202,159,182,160, 41,228,237, 45,
- 83,220,153, 62, 72, 54,212,102, 1, 90,109, 9,181,231,102,102,254,233,159, 62,255,165, 47,127,229,217,226,137,246,237,219,247,
-248,227,143, 63,117, 7,248,105, 31,107,215,174,251,133, 95,252,133,203,247,238, 43,149,202,150,116,237, 50,115,202,146,152, 44,
- 87,113, 12,103,109, 41, 49, 58,107,202,153, 9, 99,195,246, 85, 74,157, 61,125,234, 27,119,222,249,249,127,190,227,199,162,154,
-209,209,209,241,241,241, 31,201,130, 86,174, 92,249,166, 55,191,229,218,107,175, 99, 68,145,181,172, 5, 34, 35, 51, 35, 35,163,
- 99,174, 1,186, 42,199,212,202,200,150, 4, 7,128, 2,208,244, 64, 4,162,135, 2, 16, 60, 1,224, 1,174, 89, 55,242,147, 55,
-223,114,211, 77, 47,142,163,240,175,255,230, 83,119,127,251,158,255, 48, 91,108,106,106,234, 67,191,255,145,222,222, 94, 33, 60,
- 70, 48,173,241,156,250,152, 33, 77, 92, 44,210, 10,156,236,156,143,152,189, 25,243, 58,145, 45, 0,139, 40, 60,207, 3,230,114,
-165,122,219,109, 47,127,233,173,183, 28, 59,122,244,195,127,240, 81,254,119, 84,144, 55, 54, 54, 86,171,213,190, 31,167,225,137,
-143, 77,155, 54,125,234,239,254,239,109,175,120,101,185, 82, 17,194,195, 2,128,226,120,127,109, 57,106,219,172,105, 27,249, 32,
-239,250,231,165, 2,216,182, 49, 45,171, 53,236,110,133,238,158,158,171,174,216,187,162, 90, 61,120,232,240,191,181,106,122,123,
-123,251,250,250,126, 48, 11,122,211,155,223,124,219, 43, 94, 41,132,111, 81, 85,178,232,113, 94,160, 88,187, 33,206,190, 23, 8,
- 34,121,121,196, 69,118, 4, 23, 74,187,204, 79, 65,161,160,179,168,158,237,198,121,165, 61,123,246,236,222,185,227, 19,127,242,
-167,103,103,206, 61, 91,182,152,231,121, 95,184,227,139, 43,186,186, 12,158, 38, 0,137, 93,165,148,161,109, 25, 75, 54, 35,213,
- 22,149,148,213,138, 38,138, 17, 51, 91, 55,205,142, 28,144, 35, 78,203, 11,166,108,251, 89, 66,137, 40,149, 94,243, 51,175,252,
-251, 79,127,238,192,193, 67, 63,254, 68,113,120,120,248, 47,255,242,175, 58, 58, 86,176,173,161, 29,251, 54,139, 66,108,227, 16,
-187, 39,197, 94,150,105,183,113,198, 20,177,109, 68,219,131, 43,244,217,114,246, 17,217,241,118, 71,215,200, 63,208,106,205,224,
-154, 55, 94,127,221,222, 75,246,252,248, 45,232,253,239,127,255,234,181,107,137, 9,137, 81, 8,208,136,224,200,251,174,186,254,
-126, 21, 51, 23, 39, 2, 51, 54, 44,155, 81, 12,203,104,161,108,236,176, 48, 29,232,102, 65,136, 51,138,172,115, 86,128, 32,204,
- 36, 9,240, 69, 23, 95, 56, 59, 63,255,216,161,163, 63, 54, 5,189,227, 29,239, 24, 29, 27, 35, 77,128, 44,132, 48, 52,117,132,
- 2,206,152,161, 13,102,103,101, 95,219,144,162,130,103, 38,183,209,204,208,170,214, 25,191,206, 40,174, 72, 43,177,108, 23,211,
-200,181,140, 8,225,121,190,239, 99,185,220,221,213,213,229,121,162,167,167,255, 99,159,248,163, 32, 8,179, 6,217,191,159,130,
-214,174, 93,187,119,239, 94, 41,149,240, 88, 8,193, 22, 28, 71,120, 50, 5, 21,112,254,140,143, 94,228,207, 17,183,135, 45,199,
-234,115, 27,202,106,199,204,208,228,163, 98,153, 35, 55, 97,191,111, 96, 96,108,124,195,138, 21,157,224,248,219,227,155, 38,247,
- 61,255, 5,228,216, 49, 90,202, 48, 12, 27,245,218,191,254,235,191,124,250, 31, 62,155, 36,201,191,161,130,246,237,221,107,250,
- 96,192, 64,130, 17,201,106,199,133,246, 34,100, 90,132, 32,185, 77, 79,142,178, 95,112,216,153,118, 10, 3,188, 84,200,177,173,
- 25,153,217,102, 68, 96,128,238,158,222, 45,147, 83, 43, 86,172,200, 45,148,136,144,124, 20, 68, 26, 81, 48,160, 7, 0, 12,213,
- 21,157,165,114,229,134,155,110,126,209,139,110,144, 42, 61,116,232,208,223,252,205,167,142, 30, 61,118,254, 21,180,126,253,122,
-227, 91,153, 25, 8,179,198,189,157,197, 3, 40, 96,234,185, 25,229,241,135,178,120,191, 44,150, 81, 62,166,108,102, 64,237, 86,
-203, 92,144, 54,243,254,238,163,112,227,230,205,107,215,173,179,203, 35,132, 9,151,102,157,216,146, 12,204,155,133, 97, 76, 9,
- 65,190,231, 41,102,143, 97,211,166, 45,239,120,251,219,149, 76,239,184,227,142,127,252,252, 23,206,155,130,124,223,175, 84,202,
- 90,105, 38, 70, 33,132,157, 81, 68,204,170,132,162,126,218,176,218, 54,212,215,142,161, 20,195,124,161,137,228, 28,119,129,145,
- 73,164,137,144, 25,132, 0,102,225,249,219,119,238,238,236,236,108,211, 62, 23, 6,193,205, 68, 65,238,195,193, 54,246,209,229,
- 78, 40, 60,191, 68,196,207,123,254,213,151, 93,122,233,199, 63,241,137, 99,143,159, 56, 63, 22,100,122,204, 66,120, 66, 8, 18,
-194, 54,231, 16,224, 9,236, 7, 46,228,139,217,126,179, 99, 60, 68, 79, 14, 6,231,221,204,182,228,219,244, 82, 81, 8, 6, 88,
-209,217, 57,185,109,186, 82,174, 20,251, 37,185,219,207, 78,127,201,117,107,153, 57,153,231,114,108, 89,179,178, 66,248,254,107,
- 94,253, 51,223,121,240,193, 79,127,246, 31,153,249, 71, 82,144, 82, 42, 8, 67,173, 20,123, 76, 36,208, 45,136,213, 78, 97, 70,
-143,219,113,255,220,144,242, 25, 44,211,102,115,143,172,247,239,121,204, 76,236, 17, 17,161,176,199, 48, 8,207, 52, 73, 75,229,
-242,228,212,180,239,151,180,166, 66, 36, 40,204, 63, 25, 54,144,115, 2,218,206,171,230,212,220,108,199,178,107, 17, 0, 8, 6,
-220,182,109, 90, 74,249,185,127,250,194, 15,169,160, 53,107,214,252,214,251,222, 55,185,117,235,204,233, 83,245, 70,195, 99, 54,
-233, 43,228, 14, 8,219,173, 7,158,124,135, 89, 62,141,101, 43, 34,218, 32,221,211,219,211,211,221, 35, 60,145, 37,146, 74, 42,
-165, 82,101,143,132, 74,181,214,136,162,186,162,211,243,252,172, 73, 74,133,194, 36,203, 26, 52, 17,179,118, 36,101,205, 54,245,
- 84, 69, 62,110,193,186,220, 72, 24,194,196,228,196,222,165,197,111,124,243,158,167, 87, 80,102,105, 23, 92,112,193,207,191,233,
- 77,211,219,183, 35, 10,102, 16, 66,120,126, 9,128, 73,107, 68, 34,182, 83,192,203, 27, 0, 54, 3,106,239,167,101, 44, 78,225,
- 9, 79, 8, 33,202,149,242,208,224,112, 87, 87,151,109,234,155, 12, 64, 24,236, 3, 60,159, 25, 74,204,192,140,196,192, 32,211,
- 36, 9,231,103,231,231,206,173, 92,189,174,175,127,192, 28, 95,150,199,187, 76, 75,164,205,113, 91,236,200,156,236, 88,114,110,
-230, 88, 21,105,128,198,156,180, 34, 38,222,182,117,235,195,251, 15, 44,213, 27, 79,165, 32,211,223,120,237,107,127,246,250, 27,
-111, 80, 74, 3,160, 16,134,123,134,136,216,213,221,189,180,184, 96,237, 66,107, 88,166, 32,203, 30,104, 51, 33,215,143, 66, 33,
- 80,160, 64,132,106, 71,199,234, 53,107,202,149, 14, 68, 64, 16,134,162,239,242,196,220,217, 26,208,131, 93, 14, 33,132,135,232,
- 73, 25,159, 56,118,248,212,113,111,124,211,132, 73,196,178, 89,185,204,197,187, 28, 51, 59,132, 42,163,111, 82,126, 72,129,157,
-206,182,167, 23, 25,189, 17,240,216,232,250,165,239, 61,242, 52, 10,122,249,109,183, 93,243,130,107,137,216,243,124, 96, 6, 67,
-225, 1, 4,128,158,190,193,205,213,206, 19, 71, 15, 39,105,106, 42, 69, 87,171, 35, 50, 16, 80,129,247,148, 79,114, 2,176,231,
-121,198,148, 6, 7, 7,251,250,251,132,240,152, 8, 16, 9,138,115,130, 69,130,127,150, 22,178,171,195,140,109,162, 38, 74,146,
-228,192,254,239,142,140,111, 44,149, 43, 70,145,214,142,128, 51, 42,173, 35,251, 22,184,182, 42, 99,152,231,231, 16,216,179, 19,
-210, 84,166,169,146,178,163,163,252, 52, 85,250,232,232,232,196,228,214, 77,155, 55, 91, 64, 1,156, 51, 22,118,140,220,243,188,
-193,225, 85, 3, 67,195,229, 74,135, 84,169, 86,218,210,171,242, 16,111,226, 84,158, 69, 35,162, 97,134,173, 92, 57,216,217,217,
- 9,110, 32,158, 11, 64,107,182, 15,220,193,126,150,196, 74,170,200, 66,181,119,102,136,127, 51,103, 78,117,118,246, 0,176,214,
-202, 2,180, 82,102,111,165,236,111, 40, 35,118, 26, 78,174, 44,144, 74,237,128,178,148, 73,146, 70,105, 20,108,218,180,241,197,
- 55,221,148,164,201,137,147,167,158, 10, 15, 66, 20, 0, 4, 88, 12,225,104,200, 55,102,184,216,243,252,254,129,193,254,129, 1,
- 96, 78,149, 10,131, 32, 10, 90, 81, 28,165,105,170,164, 66, 55,254, 10,194,100, 74, 0, 0,221, 93, 93, 2,133, 82,154, 65, 9,
-102,227,223, 51, 53, 22, 82,158,226,172,131,206,136,237,202,158,139, 97,184,186,148, 38, 73,154,166, 7, 30,249,238,196,212, 14,
-227, 4,218,243,112, 42,164,152,249,129,111, 74,103, 84,125,199, 63,149,134,100, 25,199, 97, 24, 69,173,145,238,141, 43, 58,187,
- 95,124,227,141,225, 7,206, 58, 0, 0, 9, 64, 73, 68, 65, 84,207,191,234,138, 63,251,139,191,126, 98,126,228,134,234,209, 18,
-134,218, 19, 28, 70, 64, 55, 64,106,152, 57, 0,128, 37,223,235,237,237,237,233,233, 53,211,183, 89,169,105,206,138, 76,211, 84,
- 41,201,204,190, 96,165, 36, 8, 33, 52,101, 73,102, 86,148, 80, 54, 22,227,176, 17,123, 50,135,178, 49, 77, 75, 37, 11,199,139,
-164, 82,166, 73,204, 0,179, 51,103, 6,135, 87,121, 46,164, 50, 81,166, 5,139,159, 20,103, 56,156, 85,154,232,168,164,148,105,
-156,196,113, 18,135, 81,208, 96,134,145,241, 77, 74, 74,207,247,187,187,251, 94,247, 63, 94, 27,180, 26, 31,250,131,143, 55, 26,
-205, 39,134,121, 92,174,157, 28, 39,182,155,198, 80,225, 12,255,212,233, 11, 1, 88, 8, 32,242,124, 31,125,223,175, 86, 59, 50,
-106,232,194,236,153, 56,138, 53,177, 16, 30, 10, 47,111, 1, 25, 35,202,121,252,230, 4,156,118,126,183,155,137,176,252,221, 56,
- 78,226, 40,142,162,145,177, 13, 23, 92,180, 7,128,211, 36, 78,146, 52,142,163, 64, 74,153, 74,231,137,149, 61, 26,198, 1, 79,
-133, 1, 6, 41,101, 42,147, 36, 77,227, 36, 14,147,176,149, 36,233,190,171,175,147, 82,122,158,103,152,127, 62, 64, 87,119,239,
- 59,223,246,230,239, 62,244,208,223,253,253,255, 51,110,213,127,178,190, 61, 88, 45,160,229,119,182,143, 31,131, 59,160, 0,208,
- 58,105, 68, 75,206, 7,167, 4, 68,132, 82,185,163,209,168, 75,165, 60,223, 55, 37, 18,184,227, 93,178,244,186,224,167, 85,166,
-159,194,236,136, 37,138,166,105,162, 82,249,223, 46,191, 98, 98,114,202,252, 82,168,146,231,107,207,243,124, 95, 32,235, 40,104,
- 37,238,104, 41, 98, 50, 83, 7,214,135,105, 59,242, 33,211, 36, 77,227, 36, 10,146, 36,212, 10,118, 93,124,137, 57,226,192,228,
- 34,204, 96,149,193,184,115,199,238,169,201,173, 95,249,151,111,124,223, 68,209, 4, 28,100, 52,179,124,150,243,135,192,100, 14,
- 8,195,204,130,152,185,160, 29,195, 24, 1, 68, 70,196,158,190,129,165,197,133, 56,142, 49, 73,209,243,138,233,101, 86, 49, 56,
-228,199,156, 91,105, 14,154, 41, 44,185,148, 73,146, 40,153, 40,165, 46,124,206,115, 55,108,220,146,166,169,213,157, 97,208, 43,
-165,181, 37,153,197, 65, 99,245,250,209,205, 19,219, 58, 87,172, 32,230, 56, 10,131, 86,115, 97,126,246,216,145,195,103,207,156,
- 52,132,238, 52, 9,210, 52, 97,246,183,237,220, 61,188,114,181,231, 9,223, 46,158, 1,115,136,205, 56, 3,251,136,213, 45,155,
- 55, 31, 57,118,220,207,168,183,217,225, 11,206, 87, 96,118, 76,131,113, 68, 64,198, 82,204,214,202, 15, 39, 48,217, 29,160,225,
- 71,187, 31,129, 1, 96,108,227,150, 51,167, 79, 46,204,206, 2,130,249,117,110,167,217,217, 55, 68, 76, 79,136, 91,198,107, 36,
-137,148, 50,137,163,233, 93, 23,140,140,111, 8,195,150,225, 63,154, 81, 32,123, 90, 97, 28,199,177,217, 57,105,217, 47,245,244,
-244,154, 72,101,124,187, 95,170,172, 90,189, 78, 43,117,228,224,126, 41,147,222,190,193,137,109,187, 6,135,134, 77,101,231,121,
- 2, 13, 4,232, 26, 2,136,108, 52, 4,204, 38, 20,248,133,141, 69,232, 34,151, 25,104, 65, 4,115,219, 64,128, 0,140,100, 52,
- 99,189, 53,177,181, 53, 59,178, 0, 69,155, 34,178, 58, 90,189,102,221,224,208,202, 51,167, 78,204,207,205,185, 97, 87,157, 87,
-241, 25,252,147, 71,176,108,192, 35,213, 74,166, 73, 50, 50,190,113,116,116,188, 81,171,153,141,105,189, 84,154,166,210,158,182,
- 18,134, 65,179,209,104,214,107,196, 28, 70, 97, 18,199,230,232, 67,115,238, 73, 20, 71, 12,112,249, 85, 47, 28, 24, 90,105, 60,
-122, 97,216,213,226, 49,104,103,121, 80, 8,212, 44, 4,122, 44,216, 76,239, 22, 78, 38, 52, 53,138,217, 81,104,249,184,118,170,
- 22,209,170, 9,201,176,224, 1,173, 5, 89,227,202,211,104, 2, 51,155, 7,185, 16,158,231,141,140,110, 24, 29,223, 40,165,156,
- 57,123,122,126,246, 92, 20,199, 42, 77,117, 1,198, 55,150, 67,133,137, 80,163,190,222,190,129,177, 13,155,154,205, 70,134,105,
- 91, 15, 85,160,213,151, 74,254,115, 47,221,187,102,221,186, 36,138,130, 48, 8,154,141, 56,138,194, 56,142,194, 40, 8, 90,245,
-218, 82,125,113,126,116,124,131, 64,212,136, 38, 25,206, 60, 96,145, 13,148,129, 57, 86, 85,136,174, 22, 3,199, 39,181, 30,199,
- 53, 72,209,113,107,201, 88,142,161,188, 18, 34, 18, 25, 15,141, 76,224,182, 27,184, 60,128, 32,227,204,185, 20,193,236, 41, 33,
-196,218,117, 35,171, 86,175, 37,109,206,174, 34,115, 48, 83, 28, 69,113, 28, 75,153,154,132,171,163,163, 82,233,232, 40,151, 43,
-158,231,155,236, 73, 41, 57,123,110,166, 81,175,103,213,108,154,202, 36,142, 7,134,134, 94,112,221,245, 93,221,221, 74,107, 37,
-165,182, 3,189,101,130, 56, 14,131,115,103, 78, 37, 82,141,140,140,142,143,143,247,244,246,187,238, 47, 16, 35,100, 7,188,184,
-187,182,171, 92,128,144, 32, 83,144,241, 65,196,206, 44,236, 43, 86, 91,166,175,236,250, 93, 89, 24,178, 91, 42,203,165, 33,159,
-248,176,190,216,158, 91, 66, 86, 71,156,119,182, 64,120, 2,201, 23,101,246,201,175,148, 43,157, 93, 93, 14, 68, 2,215,144,110,
- 35, 30,150, 74,165,117,235, 71,214,173, 31, 73,146,164,209,168, 55,235, 53,165,244,218,117,107, 87,174, 90, 35,132, 23,134,161,
- 57, 76,201, 29, 86, 27,197,113,156, 74, 37, 60,255,178,231, 94,222, 63, 48, 84,175,215,102,206,156,210, 90,245,246, 13, 2,105,
-123,224, 77, 27,105, 60,203,140, 1, 51,186,122, 49, 15,114,100, 96, 75,198, 6,116,238,197, 29,107, 99, 67, 25, 18, 24,234, 50,
-218,222,133,243, 59,224,252,119,222,108,119,202,129, 12,157,198, 12, 57, 96, 70,129, 64, 54,243,102, 34, 70, 64,147,119, 34,230,
-115, 7, 54,104,228,236, 91,223,247, 7, 6, 6, 7, 6, 6, 75,165, 82,185, 82,105,212,235,230, 79, 76,154,234,142, 5,143,194,
-160,213,168,215,234, 75,139, 81, 24,122, 94,109,118,102,102,118,118,182,115, 69,117,106,219,234,102,179,213,168,215,149,214, 8,
- 72,121,104, 42, 80, 43,156,203,118, 3, 9, 14, 14, 68, 32, 51,180, 1,228, 56,229,104, 41, 26,144,185, 25, 66, 35,177,157,156,
- 2,180, 21,168,123, 98,148, 96,206,252, 49, 57, 81,198,118,183,102,230,190, 58,238, 42,102,104, 11,101, 84, 86, 51, 11, 81,168,
-245, 10,252,101,187, 38,105,154,104,173, 65,136,249,217,217, 36,137,178, 67,253,146, 36, 10,195,160, 81, 91, 82, 74, 93,127,243,
- 79, 85,202,149,197,133,133, 40,106,237,218,125,193,218,245, 99,105,154, 18,163, 82,122,110,246,156, 82,178, 90, 93,145,121,208,
-204, 65,112,129,190, 95,220, 98,118, 43,100, 80, 60,103, 63, 58,164,199,109, 57,206,246, 90,230,146, 17, 41,203,158, 12, 33, 57,
- 59, 80,213,106, 33, 75,160,193,157, 18,230,158, 59, 94,120, 1,173,205,231,162,138,108,121,112,149,161, 53, 72,210, 41, 0, 12,
- 12, 14, 70, 97, 56,119,110,102,110,118,102,105, 97, 62, 12, 26, 68,180,117,122,215,214,233, 29, 81, 16, 46,206, 47, 52,234,181,
-179,103, 78, 35,138, 82,185, 34,149,138,163,168,213,108, 52,155,141,218,226,252,198, 45,147, 25, 13,218,221,118,190,197, 10,128,
- 89,113,148,192,121, 17,231,167, 45, 3,127, 57,175, 28,178, 33,242, 12, 42,198, 39, 78, 36,128, 59,189, 41,119, 93,144,205,152,
-112,222,214,167,172, 45,194, 57,232,214,246, 23, 79, 0,115,243, 87,168,163,218,177,126,108,108,221,232, 40,216,249, 8, 66,196,
- 70,189,126,230,244,201,249,217,115,181,165,249,169,233, 93,187, 47,188,216,243,132,249,167, 5,230,103,207, 29,124,244,123, 27,
- 55, 79,186,251,201, 8, 41,121, 37,180,172, 22,115,242,145, 1,155, 25,237, 52,148,245, 48,198,129, 48, 0,130,113,205,228,234,
- 68,123,106,134,233, 83,161,157, 99,194,162,146,140, 26,201,213,187,152,245,203,204,188, 28, 20, 38, 81,156,199,167,220,219,183,
-209,196,115, 88,186,125, 22,160,205,137,178,157, 97,168, 86, 87,108,216,180,101,211,230,137,145,177, 13, 29,149, 10, 49, 40, 37,
-117,146,150, 74,229, 85,171,215,148, 74,126,119, 79,159,251,252,130, 62,218,248, 77,237, 91,172,109,205,172, 55, 33,114, 69, 87,
-110,241,100, 53,146,213, 85,133,164, 11,218,166, 33,160, 48, 6, 98,247, 17,113, 14, 62, 82,214, 12,113, 86, 5,109, 83,126,206,
-180,219, 59, 3,109, 70,152,143,154,112, 62, 71, 6,133,115,225, 0, 69, 24,134,205, 70, 61, 3, 27,130, 86,171, 86,175, 45, 44,
-204,151, 43, 29,229, 74,199, 19, 40,247,185, 68,109,152,180, 61, 81,173, 72,242,202,176,242,162,249, 67,230, 92,218,125,103,161,
-229,144,137,159, 77,183, 33,187,193,174,236,207,178, 17, 21,204, 90, 62,249, 13, 22,118,110,251,230, 2,104, 27,240, 41,236,186,
-101, 93,221,108, 69,148,146,115,231,102,152,121,105,113, 33, 12,131, 36, 78, 90,205,250,236,185,211,131,131, 43, 43, 29, 29,133,
-107, 64,225,150,218,116, 84, 60,227,219,185,158,226, 68,196,114,243,103,123,140, 95,225,130,136, 46, 11, 71, 4, 87,114,216,253,
-106,175,233, 90,244, 5,215, 13,238, 68, 64, 42,220, 33, 96,225, 88, 55, 40,206,122,180, 53,254,219,242,116,230,246, 78, 65,118,
- 32,162,125,193,252,139, 10,155, 38, 38,251,251, 7,194, 48, 60,254,248,145,129,193,193,129,225, 85,224,230,222,184,253, 52, 32,
-200, 52,196,208,150, 73, 23,124,159, 65,254, 48,223,255,136,121,255,130,184, 77,167,110,212, 44, 63,100,208,165, 0,246,192, 26,
-116, 25, 22, 20,156, 97,123,171, 49,183, 91,130,246,125,199,197,136,198,197,121, 46,224, 39,106,135,139,174, 40, 63, 95,136,137,
-120,126,110,246,220,217,179, 65,171, 9,166,224, 82, 74, 20, 28, 34, 44, 87,112,254, 17, 62, 20,224,171,194, 70,207,162, 48, 47,
- 27, 5,202,120,207, 8, 80,140, 44, 46,169,228, 98,218, 84,152,139, 5, 42, 72,142,128,150, 44, 12,109, 33,105,249,184,142,203,
- 85,157,229,180,109, 53,104,211, 68,150,142,112,251, 49,144,246,147, 85, 42, 81,224,170, 53,107,130, 86,112,234,248,209,114,185,
-210, 81,237, 44,208,115, 96, 25,173, 50, 91, 51,127,249,252, 6, 60,233, 11,110,106,221,121, 41,155, 4, 50,100, 19,238,214,205,
-160, 69,244, 41, 67,182, 93, 6,144,229,233,150, 28,204,152, 21, 47, 5, 47,189, 76, 7, 80,172, 62,242,153,185,229,219, 43, 91,
-200,124,107, 44, 31,243, 2, 32,173,107, 75, 75,164,105,124,211, 68,158, 65, 0,180,157, 56,153, 7,163, 2,145,188,205,146,255,
- 51, 78,245,192, 19,255, 73,146,204, 62,254, 63,235,161, 95,175,171,129, 25,182, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/blur.png.c b/source/blender/editors/datafiles/blur.png.c
deleted file mode 100644
index 3fae863c92a..00000000000
--- a/source/blender/editors/datafiles/blur.png.c
+++ /dev/null
@@ -1,301 +0,0 @@
-/** \file blender/editors/datafiles/blur.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <blur_png> */
-
-int datatoc_blur_png_size= 9327;
-char datatoc_blur_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68,
- 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252,
- 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215,
- 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 21, 0, 4, 16,211, 77, 59, 52, 0, 0, 32, 0,
- 73, 68, 65, 84,120,218,237,125, 89,172,109,217, 85,221, 24,115,173,125,206,185,205,171,215, 84,231,178, 41,155,234,136,171, 30,
- 54,174,206,101, 19, 18, 59,177,171,140, 76,172, 96,132,137, 2, 31, 65, 10,157,146,208,217,198, 54, 54, 16, 41,182, 48,144, 31,
- 48, 31,129, 8, 16, 40,226, 35, 16,164,240,199, 87, 76,147, 16, 97, 3, 70, 33, 64,117, 70,118,217, 46, 85,149,171,185,239,246,
-231,236,189,230,204,199,156,107,237,125,238,189, 85,101, 7, 19, 5,169,206,123,186,205,121,231,236,179,246, 92,179, 29,115,204,
-245,128, 47,247,241,178, 27,110,184,233,166,155, 79, 63, 79, 0,239,255,192, 7, 75, 25, 8,136, 8, 69,114,206, 93,206,185,235,
- 62,244,193, 31,245, 23,165, 31,248,193, 31,234,251, 85, 41,131,170, 22, 85,213, 98,254, 80,125,235, 91,239,127,240,161, 7,247,
-247,246,100,181, 90,246,171, 85,191,234,251,161, 31,250,126,181, 92,245,125,111,106,170,101,181, 90,125,223,247,126, 95,215,117,
-124,215, 63,255,206,255,253,232,225,222, 81, 33,229,214,175,218,120,217, 53,139, 11, 87,205,183, 55, 55, 82, 74, 36, 41, 50,235,
-186,244,220,240,202,101, 95,204,204,212, 72,187,178,215,155, 33, 39,146,166, 58,248, 39,167,173, 75,183, 18,128, 1,134,156, 96,
-102, 71,199,101,213,151,237,141, 68,129,193,104, 72,219,151,110, 53, 51,127,213, 44, 67, 13,123,135,195,147,207,246, 7,135,229,
-218,139, 29, 9, 0,105,235,194, 45,100,188,168,203, 60, 90,150,161, 87,144,251, 7,229,209,207, 31, 13, 5,215, 92,232,120,237,
-205,111, 33, 18, 4, 52,154, 8, 65, 18, 68, 98, 74,164,144, 2,201,217,212,140, 5,133, 34,132,194, 8, 64, 0,133, 1,128,145,
- 9,250, 37,109, 87,106, 63,109,108,108,222,120,227,141, 34, 60, 58, 58, 58,185,119,119,221,117,215, 91,222,122,191,153, 9, 73,
-145,148,146,111,220,239,252,206,239,252,143,255,254, 7,241,162, 31,248,129, 31, 52, 24, 65, 17,161, 48, 73,202,254,232,186,156,
-243,143,125,232,131, 0,100, 85, 55,174, 31,250,213,114,181,234, 87,165, 20, 83,235,251,213,106,181,252,240,135, 63, 2,128,111,
-126,219,119, 60,250,249, 99,146,243, 89,190,227,230,205,107, 46,204,175,218,222, 88, 44,230, 36, 1,228,156,231,139, 69, 90,230,
-155, 0,168,154, 16,203, 85,217, 59, 44,179, 76, 18,106, 5, 48,168,169, 89,218,186,230, 54,154, 2, 72,201, 4, 90,212, 14,143,
-134,156,177,232, 8,139, 63,105,235,210,173, 52, 0, 72, 68,162,153,225,169,157,254,137, 47, 46, 47,158,239,230, 51,186, 72,211,
-214,165,155, 1, 51, 0,180,156,184,123, 56,152,161,168,125,254,137,213,231,159, 90, 94,127,105,214,117,228,181, 55,189,149, 34,
-160, 16, 48, 80, 72, 8,193, 68, 36, 74, 74,146, 32, 57, 43, 84,204,104, 48, 0, 66, 83, 18,164, 8, 80,226,109,166,248, 74, 61,
- 56,253,229,135,126,248,221, 91,155, 91,190, 73,254,135, 66,161, 72, 18,146, 73,210,199, 62,246,179, 79, 62,249,228,217, 23,122,
-239,143,188,175,104,129, 1,106,126, 89,162,222,162, 16,160, 36,138, 8, 41, 41, 37, 33, 83, 74, 34, 41,231,252,129, 15,188,111,
-237, 66,255,234, 95,255, 27,192,239, 30, 0, 56,121,128, 32, 41, 34, 34,146, 36,165,148,124,121,238, 50, 68, 36,229,252,107,191,
-246,171,143, 60,252, 48,128,220,175, 86, 0,212,108,185,178,189,195, 65,141, 91, 27,233,194,118, 30, 10,134,130, 46, 75,151, 83,
-215, 37,100,144,204,146, 76,213, 12,165, 20, 10,101, 24,190,253,219,191, 35,165,244, 19, 63,254, 99,252,234,215,126, 75, 81, 43,
-197,111,138, 0, 32, 92,116,114,254, 92, 78, 73,206,109,164,139, 87,117,219, 91,179,141, 69, 55,235,114,215,165, 36, 52, 3,233,
-139,151,228, 75,235,114,218, 56,127,155,170,186,158,208, 20,132,169,145, 16, 90, 25,236,120, 85,118, 15,135,189,253,254,232,120,
-232,251,162,165, 20, 45,106,170,170, 48, 51,109,174,206,210,246,213,183, 2, 10,133, 65, 73,194,212,128,148, 84,104,106,166, 69,
-139, 90, 41,122,112, 92,174,236,245,203, 85,217,152,145, 48,162, 93,196,212,212,204,120,253,173,111,131, 9, 4, 6,250, 23, 51,
-235,114,154,207, 8, 64,200,227,222,134, 66,128, 20, 18, 36,185,177,200,175,124,217,226, 85, 55,108,204,187,148,179,248,118,240,
-218, 91,238, 7, 72,208,252, 27, 5, 48,128, 27,243, 52, 12, 54,168,185,223, 17,208, 32, 20,129,133,112, 92,160,164,108,111,230,
- 75, 23,230, 89,181,248, 62, 3, 0,196,180,248,234, 14,143, 53,180,138,164,153,145, 32, 80, 12, 34, 0, 76,139, 43,155, 26,246,
-143,134,131, 99,205,102,234,154, 12, 10, 66,216, 20,154,251,106, 24, 77, 40, 6,136, 59, 70,129, 21, 64, 8, 49, 40,140,164,153,
-194,196,240,255,221,131,103, 62,123,241,226,197, 11, 23, 46, 2, 88, 46,143,119,118,118, 14, 15, 15,191,140, 11,221,122,219,109,
-239,122,215,183,185, 3,101,253,230,166, 47, 34, 41,165,157,157, 43,255,254,103,126,234,133, 46,244,129, 31,253,160, 22, 53, 51,
-183, 93, 2, 20,169, 54, 32,213,104, 69, 82, 74,146,114,151,223,255,190, 31, 57,227, 66,239,126,207,123,171,231, 13,149, 33, 41,
- 97,252, 32, 19,133, 41,133, 27, 73,226, 75, 76,143,125,238,177, 95,252,133,255, 48,189,144, 12,195,208, 15,253, 48, 12, 67, 25,
-134, 50,104, 25,180, 12,165,148, 50,184, 93, 13, 90, 74, 25,138,150, 82,134, 97, 40,131,127,189,241,198, 27,127,234,167,127,230,
-228,133, 74,252,245, 55,251, 99, 24,191,123, 42,226,182, 85,180,104, 41,195, 48,244,125,191, 90,253,228, 71, 71,145,137,150,162,
-237,225, 6,168,102,234, 43,136,171,169, 42,253,230, 9, 40,212,124,149,195, 48, 12, 31,253,232, 79, 71, 76,190,243,206,187, 12,
-182, 92,150,103,118, 86, 87,246,203, 48, 20, 17,154,233,170,215,126, 80,115,203,138, 52, 70, 72,152, 33,182,165,254,240,154,215,
-188,230, 19,127,244, 71,121,103,127,245,200, 99,199,207,236,244,230,219, 14,118,157, 92,115,190,187,106, 59,111, 45,210,246,150,
- 45,212, 64, 10,147,168,186,233,121,158,163, 84, 0, 24,134,107,174,190,134, 96, 58,148,155,247, 14, 7, 53, 79, 47,212,204, 84,
- 49,159, 97,217,235,225, 81,233, 7, 75,130, 36,148,106,215,161, 40,102,102,163,125,221,255,192, 3,105,227,226,215, 64,253, 41,
- 95, 19,132, 86, 10, 68,160,102,171, 65,151,189, 37, 50, 73,168,174,154,170,105,104,140,191,137, 52,179,116,238,234,191, 7,142,
- 23,114,103,150, 19, 69, 92,175, 76, 13,253, 96, 66, 72,114,135, 21,110, 97,124,135, 25,192,172, 86,226,190,141, 16, 83, 99, 6,
- 13, 40, 69,204, 10, 76, 0, 28,152,145, 16, 65,151,145, 40,144,100, 70, 49, 51, 90,232, 49,134, 76,255, 96, 16, 52, 24,104, 48,
-113,191,174, 80, 0,102, 4, 11,175,236,245,170,182, 49, 39, 23, 57, 39, 72, 18, 83, 73, 98,234, 59, 0,164,173,171,111, 53, 51,
- 16,109, 81, 66,186,116, 61,197,236, 7, 61, 56, 42,123,135,195,206,222,112,112, 84, 54,230,146,147,199, 96,120, 42,136,200, 55,
- 47,222,194, 42, 72,130,177, 56, 34, 37, 2, 86, 20,203,190,148, 33,196,114,116,172, 95,188,210,175,122,237,178,228, 92,223, 71,
- 95,209,165, 91, 12,132, 85,175,237, 27, 39, 32, 13,138,163, 85, 81, 37, 0,250,178,193,161,232,149,221,242,228,206,176,179, 55,
-172, 6, 91,204, 36, 39,130,228,117, 55, 63, 0, 26, 32, 32,219,194,114,146,156, 88, 10, 6,141, 24, 2, 8, 1, 80, 40, 2,128,
- 16,247, 19, 41,165,237,205,124,233,252, 44, 27, 20, 0,161, 48, 81,143, 39,134,126,176,190,104,220, 37,197,220,201,131,180, 48,
- 26,131,210, 4,128,170,238,238,151,253,195,227, 12,243, 12, 30,100,196, 31,191, 21,154,191, 23, 30, 35,204, 0, 65, 40,159, 17,
- 52, 19, 19, 55, 23, 49, 5,196,160,190,237, 85,231,141, 6,170,193, 84, 9, 51,143,206, 10,152,153,194, 76, 97,160, 2,160,194,
-180,198,107,131,152,185,250,170,193, 96,170, 10,131,186,174,211,212, 63,160, 46,163, 46, 94,107,129, 66,144, 32,214,236,238,165,
-199,151, 21,103,219,227,230,155,111,185,227,142, 59,110,186,229,150, 75, 23, 47,142,207, 70,230, 7,122,242, 28,223,100,103,103,
-231,225,135, 31,250,243, 63,255, 95,159,254,244,167,191, 50, 11,218,222,222,126,215,187,190,237,134, 27, 94,174,170, 54, 38,204,
-214,114,212,154,197, 3, 99, 92, 31, 31, 50,254, 36, 66, 1,145,187,238,191,252,198,111,252,241, 31,127,242, 75, 87, 14,190,227,
- 29,239,184,227,142,203,170, 99,136,137, 42,104,125,201,244,220,177, 45,165,254,176,190, 36, 47, 56,198,101,213,133,138,136, 12,
-101,248,143,191,248, 11,159,251,220,231, 94,100, 65, 63,244,195,239, 65,141,117, 39,150,210, 60,211,228,207,218,106,176, 86,102,
-212,181, 96, 92,202, 9,225,137, 36,146, 41,167,127,251, 19, 63,126,124,124,124,118, 1,125,239,189,247, 70,106, 96, 58,166,223,
-147,224,103,167,255, 76,130, 53,108, 44,133,154, 9,215, 40,229,183,232,111,168,105, 61, 76, 85,223,244,166, 55, 63,240,192,219,
- 62,243,153,207, 60,251,236,179, 39, 23,116,247, 61,247,152,122,220, 60,177,150,168, 49,208, 46,136,246,172,191, 88, 79,188,126,
- 42, 56,131, 49, 10, 71, 83, 3, 98, 57,227,171,213,244,117,119,222,249,192, 3,111,123,244,145, 71,174, 92,185,210, 22,148,203,
- 48, 76,172, 39,182,108, 24, 60, 92, 69, 0, 0,145,133,146,188, 90,247,251, 31,119,204, 49,155, 4, 81, 2,132, 64,162,136,133,
-227, 47, 6, 90, 1,104,132,182, 93, 86, 85,138,136,169,126,215,119,127,207,172,155,189,255,253,145,143,166,215,126,221,157,170,
-214, 15,186, 26,116,181,210,131,165, 30, 29,149,231,118,251,189,195, 97,119,127,216, 59, 44,203,149, 30, 29,171, 22, 27, 6, 91,
-245,186, 26,116,213,219, 48,104, 95,148,128,106,168, 94,172,159,145, 81,143, 70,224, 59, 25,126, 25, 85, 95,167,251,104, 69,203,
- 91,223,114,255,227,143, 63,254,244,211, 79,243,157,223,250, 47, 12,246,244,206,176,187, 63, 28,247,186,127, 88, 92,234,190, 3,
- 38,160, 17,176,148, 36, 37, 92, 58,223,109,205, 83, 78,220, 92, 8,133,155,139, 36,228,124,150, 68, 56,235,146,136,228,156,146,
- 80, 82,170, 90, 93,237, 98,221,110, 99,217,174,236,226,133,108, 34,249,123,191,247,113,222,112,251, 63, 13, 32,169, 69,105,131,
-213,223,253,171,153,167, 0,220,152,203,246, 70, 54, 56, 58,196,237, 69, 34,121,225, 92, 78, 89, 54,231, 57, 37,233,114,172, 41,
-101, 17, 74,196,244,137, 93, 78,188, 89, 43, 67,125, 73,226, 95,115,152, 9, 43,248, 96, 58,145,181, 53,117, 17, 82, 4, 69,181,
- 31, 6, 24, 40, 66,226,202,160, 20, 30,173,138, 16,231,183,187, 89,151, 54,230,105, 54,147,156,210,172, 19,146,174,127, 81,203,
-120,190, 65,105, 18,178,234, 20,172, 22,166, 52,203, 8, 69,101, 20,196, 6, 19,181,106,186,162,102,108, 70,109, 52,233,135, 66,
- 10,173, 0, 72, 34, 30,244, 1,246,195,138,228,214, 34, 45, 22,121,158,185,185,153, 19,185,177, 72, 36,187, 46,196, 0, 64, 21,
- 20, 24,163, 98,138, 84,155,160,131,114,102,185,102, 29, 0, 97,230,168, 1, 1,165,167, 34, 36,224, 94,156, 80,154,168,170,208,
- 10,197,179,148, 34,160,138,187, 43, 33,184, 91,116,239,112,200,137, 87, 45,243,124, 38, 91,155, 11,161,152, 26,200, 18, 91,101,
- 52,120,193, 47, 16,149, 2, 23, 17, 64,163,208,178,122,122,236, 58,102, 0, 20,254, 46,194,160, 4,105,244,100,136, 98,166, 98,
- 84, 53,136,194,168, 28,104,108,119,168,171, 1, 7,135,234, 73,220, 23,190,200, 46,203, 19, 79,175,186,196, 87,189, 98, 35, 39,
-110, 45,114, 18,183, 18, 33, 11, 40, 64, 9,171, 17,178, 24, 73, 19,102,247, 19, 48,255, 70,170,175, 22,145, 52, 91,100, 83,142,
-112,169,105,162,136, 65, 1, 49, 19,129, 25,246, 15, 11,140, 69, 35,205, 37,221,202,101,213,151, 39,159, 81,144,207,238,245, 66,
-190,236,234,121,215,241,154, 11,179,141, 69, 74, 34, 93, 54,165, 16, 5, 32, 75,213,112,149,108, 40,142,115,208,106, 14,107, 10,
- 95,156,129, 84,144, 48,170,154, 99, 27,165, 20, 26, 33, 44,134,163,101, 1, 88,138, 25,104,117,179, 61,123, 36,139, 65, 84,141,
-196,193,145, 2, 60, 94, 41, 5,143,127,113,149, 51, 55, 23,249,220,102, 90,204,210,213, 23,186, 36,156,207, 18, 43,160,147, 61,
-127,245, 93,138,123,244,228, 83, 66,145, 35,243, 84,128,166,106, 40,208, 40,246, 56,148,186,225, 82, 43, 31, 10,204,179,105, 49,
- 83, 2,102,162, 69, 77,168, 43, 16,232,251,158,228,222,254,240,116,150,156,248,216, 83, 41,145, 27,243, 36, 34,219, 27, 73,146,
- 56,206,109, 4,169, 36, 21, 74,139, 44,158, 4, 77,205,133, 20, 73, 54,116,105, 94, 52,194,140,158,149,123, 54, 12, 51, 19,143,
- 14, 48,136,169, 74, 20, 55,234,185, 59,160, 6, 20, 21,154,150, 34, 88, 41, 64, 28, 20, 1,186, 46,145, 92,204, 83, 18,201,128,
-214, 8, 72, 51,186, 45,121, 25,100,172, 5,137,121,142,168,170, 44,138,138, 21,122,188,160,235, 83, 72,211,104, 98, 2,163,193,
-132, 94, 75, 80,196, 91, 9,164, 4,126, 8,139,218, 75,161,130,213,170, 80,100,213, 27,192, 92,245,217,241, 50,215, 28,173, 57,
- 42,232, 26,239,138, 26, 93, 12, 40,107,145,232, 91,237,118, 97, 38,181,106,209,184, 73, 35, 68,163,234, 16, 2,170, 74, 97, 69,
-216, 4, 6,191,186, 87, 69, 4, 76,144,225,176,156,208,160, 6,161, 42, 71, 39,111, 26, 32, 98, 56,211, 8,242,158,234,132,222,
- 3,161,238,225,142, 56, 6,250,240, 58,238,225,162, 56, 53, 70, 94, 2, 53,146, 16,152, 25,148, 16, 19, 47,211, 92, 47,155, 82,
- 48,242, 30, 47,166,217, 50, 52, 53, 53, 56,102, 99,158,137,121,144, 51,131,169, 17, 48,245,152,110,245, 31,105, 80, 83, 16, 80,
- 76,162,107, 5, 44,234, 30, 71,214,195,150, 83,189,244,120,233,241,183, 90,185,142,185,119,151, 55, 55, 54,103,179,217, 98,177,
-209,117, 29, 34,245,238,143,143,151,203,229,241,193,193, 65,241,174,199,223,234,130,186,174,123,221,235,238,124,245,237,183,191,
-234,149,175, 74,185,118, 28,141,144,176, 51, 47, 1, 61,221, 51,179,191,254,235,191,254,171,191,252,139, 63,249,147, 63, 89,173,
- 86, 95,225, 5,125,211, 63,121,199,229,203,151,187,220, 53, 24,144,147,166,207,137,202,177, 85,248, 0,188, 21,181, 90,173, 62,
-245,167,127,250,219,191,253, 95,255, 70, 11,202, 57, 95,190,124,249,237,111,255, 38,107,185,107, 67, 38, 39, 37,253,180,194, 95,
- 47, 78,215, 75,123, 82, 68,118,119,119, 63,246,115, 63,123,112,112,240,229, 45,232,210,165, 75,111,127,251,219, 95,254,242,175,
-114,204,104,146, 77, 79, 94, 52, 77,250, 39, 95,159,119, 77,158,157, 2, 41,167,167,158,124,242,215,126,245, 87, 79, 23,169,103,
- 47,232,251,191,255,251, 55, 54,182, 70,188,119,189,194, 31, 43, 6,182, 13,155, 74, 41, 74, 29,207,249,167, 85,189,112,186,153,
- 76, 41, 61,252,208,195,191,242, 43,191,244,226,205,241,127,240, 15,223,164, 69, 13, 86,172,180,170,185,198,132, 86,223,123,110,
-235,145, 36,126,137, 16, 91,235, 62,182,236,105, 44,243,189,252,141,128,112,245,213, 87,191,237, 27,191,241, 15,255,231, 31,246,
- 47,168,242,233,190,251,222, 96,222,198, 60, 3,107,136,176, 86, 69, 54, 65, 26, 70, 52, 97,130,151,159,126,212, 58, 42, 46,163,
-250,230, 55,253,163,220,117,143, 62,250,200,243, 46,232,245,247,221,183,254,193,147,191,102,167,236,208, 78,255, 24, 88,105, 5,
-243, 57,130, 92,152, 24, 69, 21,173,225,166,175,190,233,213,183,223,254,201, 79,124,226,204, 5,137,169, 70, 12, 87, 13,132,162,
-253,197,243,128, 52, 58, 62,169, 35, 24, 82,119, 25,173, 45, 91, 1,143,250, 17,170,170, 90,138,150, 87,188,252, 21, 31,249,200,
- 79,158,189,160,232, 9, 77,123, 67,235, 15,255,248,120,213,248,228,248,175,241,161, 21,209,169,242,165, 55, 57, 92, 19,218,213,
- 74,124, 45, 32,254,221,135, 63,114,150,132,218, 37, 95,224,161, 1,233,180,223, 99, 73, 54, 89, 84,160,146,166, 14, 79, 51,202,
-167,218,237,208,138, 66,169,150,226,226, 19,145, 15,252,232, 7, 79,111,217,243,172,103, 2,151,181,175,254,123,169,210, 80,191,
-242,120, 5,173, 29,152, 9,200, 1,194, 17,204, 41,144, 86,111,228,220,246,185,127,249, 93,223,189,166,212,119,221,117,247,218,
-235, 96,125,111,195, 96, 67,209, 97,176,226,155,160,234,233,103,232, 69,212,132,102, 54,105,147, 87, 44, 67,214, 24, 14,158,222,
- 6, 36, 83,193,139,168, 82,188,152,185,116,241,210,238,238,238,227,143, 63, 30, 1, 99,226,147,173, 31,204,128,131, 67, 29,130,
- 56,192,156, 48,159,167, 44,220,222,132, 25,134, 2,192,123, 41,154, 50,133, 34,166,217,196,196, 32, 6,122, 50,172, 41,156, 17,
- 35,137,175, 25,110, 88, 95, 75,219, 75, 17, 17, 21,188,243, 91,190,229, 47,255,242, 47,188,235,156,190,238,117,119,170,217,114,
-208,161,183,163,149,246,254,117,101,253, 96,195,128, 98,102,198, 82,204,140,253, 96, 69,173,245,141, 61,110, 84,118, 0,166, 96,
- 79,236,148, 4,172, 54,129,188, 79,248, 12,247,249, 80,179,215,191,254,190, 63,248,253,223, 7,144,247,143,134, 97,176,207, 62,
-177, 84,197,206,110, 63,232, 36,122,213,184, 33, 68, 78,210,101,190,236,234,153, 16, 27,139,156,147,205,103,185,203,150, 18,186,
- 12, 17, 2, 16, 35,147, 17, 38, 48, 21, 21,101, 32,125,228,186, 15,173, 24,164,168, 66, 76, 53,137,204,231,243,123,239,125,253,
- 39, 63,249, 9,233,123,237, 7, 45,197, 74, 41,165,185, 20, 53,115, 3,181,106, 22,102, 69,181,168, 14,197, 84,181,168, 21,119,
- 41, 5,163, 95,138,151,187,209, 5, 47,110,106,243,167,252, 72,152,107, 81, 53,181,111,126,231, 59, 73,166,227,124,203,147,207,
-174, 14,142,202,209, 82, 85,199,232, 25,213,147,177,221,218,162, 75, 6,172, 6, 59, 90,150,195, 35, 93,246,122,188,210, 97,240,
- 34, 31, 66, 20, 5, 73, 53,215,218,232,172,142, 94, 99, 68,111, 79,236, 88,221, 89,181,171,206, 95,149, 54, 46,125, 77,209,105,
-178, 17, 5, 82, 0,123,244, 21, 17, 98,195, 96,139, 78, 90, 13, 41,194, 68,138,112,214,145, 64, 78, 2, 48, 9, 39,248,221, 90,
-188,107, 79,156,204, 11, 39, 61,130, 27,111,124,101, 58,119,205,171, 81,149,180,226,186, 70, 72, 13, 71,230,215,207, 66, 33, 82,
- 10,109, 80, 99, 81,237, 7,237,123, 59, 94,233,241, 74, 73,172, 6, 75,130,161,152,227,208,240,230,160, 69,143,207,106, 67,135,
-173,201,203,218,203,142, 90,153, 32,178, 99, 6, 54,130,122,254,175,158, 79,104,244, 91,225, 75,100,120, 71,133,147,102, 10, 65,
- 88, 79, 5, 48, 12, 42,130,161,168, 8, 75, 81,113, 36, 5, 53,145,106, 88,186, 83,142,124,115, 85,125, 23,160, 80, 17, 66,169,
-204,117,103,213,161,140,128, 17, 76, 39,105,180, 47, 43, 90,144, 37,250,231,116, 26,211, 0,218, 32,170,101,103,207, 59,252, 38,
- 34,102,160,112,209,137, 8,147,144, 14,189,122,187,181,161, 38, 19, 15, 64, 49, 83,245, 6,109,118, 50, 26,171,136, 28,201,208,
-144,161, 81,131, 99, 64, 9,105,105,189, 1,133, 84,244,216,243,205, 65, 68,230, 75,138,216, 44, 51,101, 22,129,153,144, 72,222,
- 0,166,176,234,182, 68, 47,184,149,251, 22, 42, 98,150,182,175,190, 45, 80,133,216, 42,135, 94, 67, 80, 70, 58,170,147, 4, 32,
- 82,244,236, 91,163,189, 53, 92,198, 39, 85,145, 19,213,208,101, 38, 25, 27,240,147,132, 13,103,122, 73,127,105,118,233,195, 96,
-212, 80, 51,142,249,170,139,206, 27,209, 14,141, 58,160,236, 86,234,168,160,131,201, 25, 84,227,254, 97,168, 96,151,211,214, 34,
-128,243,113, 41, 22, 52, 3,227,201, 44, 51, 58, 89,102,217, 91,237,177,188, 64,151, 28, 14, 2, 2, 24, 14, 24,202, 33, 40, 11,
-193,177, 90, 65,160,105, 6, 74,237,197, 44,251, 82,212, 14,142,196, 12, 93,150,156,132,130,148, 4,193,194, 88, 91, 71,213,171,
-120,115,118,109,114, 79,230,242, 8,136, 26,234, 33,187,146, 94,252,157,166,161,146, 1,205,165, 68, 85,205, 73, 74, 41, 7, 43,
- 28, 30,171, 8,113,133, 0,118,246,134, 89, 39,215, 94,154, 93,125, 85,151,179,108, 44, 60,136, 48, 66,171, 19, 33, 96,161,204,
- 30,125, 84,115, 80,104,204,129, 55, 54, 40,143, 81, 90,232, 88,246,180,234, 34,136,130,230, 23, 45, 5,203,126,136, 22, 27, 90,
-102,129, 65, 45, 21,237,123, 93, 13,106,134,156, 16,221, 15, 4, 39,195, 73, 42,209,232,169, 4,173,180,125,233, 54, 4,180, 31,
- 20, 20,178,230,236,140,133, 1,230, 40,113, 74, 16, 9, 71, 65,154, 8,251, 65,151,189,149, 98,131, 66, 53, 20,196,227,253,114,
-101,135, 75,221, 61, 40, 79,239,244, 59,251,195, 48,216,225,177, 46,230, 73,213,146, 96,236, 16,182, 18, 29, 32,144, 39,138,239,
-200,155,192, 17,186,168,157,171, 67, 82, 66,204, 20, 90,235, 11, 18,125,241,212,209,115, 84, 58,218, 74, 42, 76,212, 20, 34, 84,
-150,162, 61,217, 13, 58, 12, 70,154,170, 25, 89,212,132, 69, 36,153, 55, 86, 28,228,134,128,204,149,137,232,253, 21, 97,164,195,
- 48, 37, 39,118,167, 86,168,110,114, 69, 32, 32, 86, 43,167,128, 82,205, 70, 32, 90, 2,105, 39, 67,241,134,130,162,195,170,151,
-131,227,146, 40, 79, 62,179, 18,225,165,243, 93, 22,185,246,226,108, 54,147, 46, 51,103,168,139,222, 44,135, 10,153, 43,112,227,
-118, 25,221, 67,107,224,194, 38, 81,155, 6,101,217, 51,148, 2,163,154, 17, 84,223,222, 80, 57,103,158, 72, 88,161,129, 84, 93,
-169, 48, 21,208,146,200,214, 70, 26,146, 21, 85, 45,176,148, 44, 90, 41,162,102, 25,222, 72, 96,253, 6, 32, 66, 76, 56, 34, 5,
-105, 6,133, 2,170, 20,232, 96,132, 97, 40,102, 48, 43, 98, 52, 49,130,198,160,228, 68, 91, 84, 43, 84,236, 54, 32,166, 86,228,
-120,165, 2,123,242,153, 21,137,231,118,123, 73,178,152,165,156, 56,239,210, 98,158, 40,146,107, 55, 83,233, 46,135, 17, 93, 61,
-162,132,117,209,252,234, 6, 43,198, 82, 52,186, 68, 90,101,211, 8, 25, 10,136,186, 61,187,215,142,116, 95, 77,133, 2,213,129,
- 42,214, 31,129,196,225,145, 26,177,152,167, 44,220, 88,228,173, 13, 35,153, 91, 27, 51,114, 1,139,182, 98, 36, 53,170,173,211,
-108,102, 67, 81,127, 14,140,254, 80,203,184, 42, 42, 79, 95, 83,116,186, 68,106, 9, 77,170, 41,163,163,239, 32,188,247, 80,134,
-193, 76,160,203, 82, 20,160,228, 17, 26,111,221,104,173, 96, 61,107,243,171,126,110, 95,154,159,143, 22,150,184, 51, 65,165, 14,
- 88,229,167,209, 59, 67,198, 86,217, 67,162,177, 58,246,152, 13,100, 63,232, 64,193,160, 71, 71,230,132, 46, 68, 67,211, 57, 81,
- 21,190, 15,127, 29, 54, 51,102,147, 52,243,108,192, 27,110,206,230,106, 81,170,118, 59,170, 57, 55,196,223,165, 66,255, 55,183,
-116, 27,229, 80,163, 58,188, 64,168,159,166,222,239, 8,118, 60, 21,163, 71, 80,133, 42, 42, 83,144,244,202, 26,209, 55,176,214,
- 45, 0, 44, 58, 47, 33,194,241, 29,209, 78, 54,163,213, 46, 91,253,103,167,151,209, 96, 6,113, 69,128, 53, 89, 27,148,141, 73,
-226,140, 83,140, 49, 5, 48,213,192, 96,205,181, 9, 99,147,212,170,143, 15,223,197, 42,142,136, 18,214, 42,199,104,164, 90,237,
-248,214,254, 18,133, 33, 0,215, 85,196,213,181, 78,170, 68,169,174,222,113,173,139,171,140, 9, 34,184,162,222,140,140, 98,193,
-223,108,225,239, 45, 74,233,232,203,120, 60, 26,203, 16, 79, 31,226, 26, 74,173,145, 9,166, 53,192, 89, 37,253, 5, 45,175,133,
-153,218, 28,142,178,216, 24, 12,189, 80, 47, 13, 33, 52, 25,185,128,221,141, 57, 12,224, 77,210, 9,144,193, 88,154, 90,109,199,
- 5, 93, 53,196,235,201,128,182, 69, 88,124,170,153, 65,209,106, 43,212, 36,169,185,226, 74,140, 85,160,142, 1, 85,227,244, 6,
- 84,160,122,209, 94, 67,237,239,161,181,178,235, 88,136,184,208,195, 38, 12,132,106,248,126,191, 96,101, 20, 40, 53, 90,173,177,
-115, 33,170,192, 53,227, 94,194, 75,120, 94, 21, 27, 55,210,154,162,242,177,120,209,180,114,172,206,236,165,134,217, 75,143,151,
- 30, 47, 61,254, 78,244, 91, 95,232, 18,228,246,185,115, 87,157, 59,183,181,181,125,254,194,249, 75, 23, 47,157,191,112,225,252,
- 85, 87,109,110,109,111,109,109,204,102,115,199, 65,177, 6,152,213, 18,200, 48, 12,195,209,209,225,238,222,238,222,222,254, 83,
- 79, 61,185,191,183,127,101,247,202,222,238,238,206,206,206,222,222,222,223, 61, 1,109,110,110,222,122,219,215,188,226, 21,175,
-184,254,186,235,206,159,191,176,185,181,153,115, 62, 19,244,157,246,103,113, 10,189, 91,251,161,209, 29, 79,241,161,135, 97, 56,
- 60, 56,188,178,123,229,241,199,191,240,240, 67, 15, 61,242,240,195,195, 87,168,243,253, 21, 19,208,117,215, 93,119,231, 93,119,
-125,237,215,190,118, 62,159,153,141, 89,197,139, 95, 55, 82, 58, 76,112,169,248,149,173,210,142, 66,157,152, 52, 75,167, 13,221,
-152,229,172,164, 80,131,249, 84,215, 99,143,125,246,119, 63,254,241, 7, 31,252, 43, 85,253,127, 42,160,237,237,237,235,175,191,
-254, 53,175,121,237,173,183,222,230,136,142, 77, 7,129,198, 81, 30,123,158,171, 76,148,102,100,177,142,200,216,180,247,255, 2,
- 93,110, 76, 4, 53,105,125, 75,147,212,200, 21, 16,121,238,185,231,254,224,247,127,239,193, 7, 31,124,230,153,103,254, 86, 4,
-116,221,117,215, 93,190,124,249,166,155,110,186,238,250,235, 75, 81, 39,164,174, 11,197, 94,168,195, 59, 21,208,136,149,243,196,
-243,107,206, 7,103,208,250,207, 36, 3,188,216,147, 81,114,250, 68, 31,192,199, 62,251,153, 63,254,228, 39, 63,245,103,159,234,
-251,254, 43, 35,160, 15,125,232, 67,203, 85,223,122,223, 35,238, 56,237,217,124, 73,114,230, 73,122,242,244,201, 51, 94,118,130,
-182,241, 2,170,116,130,186, 48, 53,195,102,125,211,201, 74,146, 92, 30, 47,127,247,119, 63,254,241,143,255,183,191,169,128,222,
-253,158,247, 54,194,137, 53,130,219, 25, 82, 57,229,121,166, 52,153,117,185, 76,158, 60,173, 74,235, 70,120,138,215, 50,142,104,
-156, 96,114,188,184,138, 17,147,238, 97,112,116, 36,245,125,255,235,191,254,159, 30,124,240,193,255,187,249,167,160, 51,172,205,
- 66,140,165,202,244,239, 89,173,201,181, 39,167, 74,119, 2,177,183,169, 11,179,181,137,196,117,175, 54,189,132,157,246,118, 19,
-186, 78,219,197,250,235,153, 95,189, 3,255,186,215,221,121,255,253, 15,220,112,195,203,191,240,133,207,159, 62,235,225, 69,248,
-100,166,106, 47,210,126,120,126, 27, 91,239, 10,112,100,193, 76,222,121,198,179,173, 65,101,129, 62,113,242, 43, 78,127, 95,255,
-132,214,204, 27,169,213, 54,101,242, 27,201, 82, 74,227, 14, 1, 32, 11,202,237,119,220,126,249,107,239,216,221,221,255,205,223,
-248,207,143, 60,242,240,151,170, 65,247,220,251,250,145, 45, 82,105, 11,186,206,209, 57, 77,119, 24, 27,222,245,135, 19,147, 66,
-107,220, 5, 76,222, 50, 14,101,213,182,196, 26,121,106,156,224,152,108,141, 77,252,213,152,101, 4,100,223, 24, 67, 78,101,168,
-134, 52, 82, 48,166,151, 83,155,117,221, 93,119,221,253,143,223,242,214,199, 30,251,236,151,194,243, 74,247,222,115,239,212, 56,
-170,221, 76, 72, 67, 19,250,237, 73,159,180,238,187,214,122, 75,103,104,224,132, 53,209, 38,177, 78,188,236,140,118,240,154,103,
-138,142,156, 19,180, 29, 24,171,157,189, 41,129, 16, 19, 14,148, 77, 62,191, 81,175, 72,220,125,247,221,111,124,227,215, 63,245,
-212, 83, 79, 63,253,244, 11,106,208, 61,247,158,229,132,237,236,156,120,253,149,163,187,157,128,156,211,128,222,254, 93, 43,177,
- 25, 48, 91,159, 30,199,250,216, 26, 43, 20, 58, 97,212, 8,185,158,118,215,182, 37,199,110,108,149, 84, 27,189, 94,247,131,118,
-138,107,168, 69,187,174,187,243,206,187,238,184,124,249,211,143, 62,250,124,190, 41,221,125,207, 61, 54,110, 64,251,123,234,183,
-209,202, 38, 54,181, 54, 46,100,207,151,153,215,118,229,186,224,237,140, 76,106,146,221, 76, 74, 16,177,150, 30, 78,226,126, 72,
-204, 90,172, 31, 93,190,157,176, 80,156,242,223,163,205,169,158, 59,119,213,223,255,134,111,216,222, 58,247,208, 67, 15,158,225,
-102,191,251,123,190,247,108,251, 9, 22, 60, 0, 20,197,106,208, 97, 8,182, 84, 60, 79, 16, 76,194,156, 99,242, 90,200,217,140,
- 89, 70,129,169,214, 81, 50,131, 54, 24,151,136, 51, 28,136,122,188,211,152,222,136,180, 73,203,145, 7,213,216,153,141,225,234,
-205,165,105,208,227,201, 64, 51, 58, 51,114,125,252,117,226,191,199, 79, 2, 73,254,252,207,255,220, 19, 79, 60,113,130,224,117,
-215,153,155,174,102,170,129,101,170,218,114,229, 4, 30, 43,102, 69,109, 80, 43,206,122,171,138,161,106, 49,184, 88, 27,197, 62,
- 35,224, 95, 85,161,211, 67, 16, 56, 6,164,177,197,111,152,142,169, 54,108,158,210, 48,232,198, 1,174, 29,188,152, 18,173, 8,
- 46,240,124,101, 51,166,174,125, 61, 69,152,154,228, 27,238,123,227,198,230,166, 31,170, 19, 97,254,240, 40,138,227,162,230,148,
- 33, 55,158, 97,176,227,165, 54,124,185, 20, 88,139,202, 83, 10, 51, 41, 82, 55, 71,216, 37, 58, 81,128,194,197, 92,102, 89,234,
- 33, 59,156,117, 49, 81, 66,114,150, 99,208, 19,128, 8,115,170,202,162,204,162,149, 68,167, 38, 20,241,129, 32, 35, 32,168, 45,
-135,218,169,183,218,241, 32, 27, 31,101, 93, 12,209,206,178,113, 7,106,164,108,105, 65,169,180, 52, 5, 76,236,235,223,248,245,
-215, 94,115,237,111,253,214,111, 58,216,194,111,253,103,223,233,239, 28,138, 61,187,219,239, 29, 20, 85, 51,195,114,176,195,163,
- 82,244, 84,189,197, 70,100, 33, 71,233, 71, 85,148, 36,212, 57,103,158,223,206,155,115,103,157, 91,206,178,152, 73, 18, 24, 32,
-228,188,147,148, 26,225, 26, 93,150,170, 48,210,229,145,236, 44, 41,232,116, 18, 51,148, 39,193,146, 49, 62,132, 37,171,157, 21,
- 19,125,204,118, 29, 60,136,201,200,105,249, 34, 45,255, 78,121,103,231,185, 95,254,229, 95,122,238,185,231,210,197,151,189,122,
-255, 80,247, 15,135,253,195,178,119, 88,142,150,218, 23, 27,138,246,131, 13, 90,199,122, 24,243, 71,190,147,161,249,181,183, 4,
- 78, 6, 60,205,146, 48, 9, 69,152, 19, 72, 56,169,208,205,179,239,109,213,219,106, 80, 55,210,126,192,208,199,208,188,186,147,
-170, 62, 43, 40, 64,134, 54,209, 90,251,127,235,169,183, 53,134,223, 41,233,156, 17,138, 79,166,230, 39,216,235, 19,118,146,109,
-108,108,220,247,134, 55,252,217,167, 62,197, 27, 94,253,205,167, 18,213, 83, 23, 93, 47,175, 88,137,208, 28, 15,250,168, 3, 88,
-117, 87,102,153, 91, 27, 41, 9,155, 5,112, 82,155,206, 58,201,153,226,175,236,210,230,194, 93, 51, 68,100, 49, 19, 63, 77,134,
-100,206,146, 38, 35,241,105, 66,174, 19,174,103,148, 83,189, 57, 89, 32,243, 12,164,174, 6,197,117, 92,128, 83,183, 45, 73,172,
- 4,133, 1,235,120,214,120, 6,204, 73,125,173, 41, 76, 37,242,212, 86,166, 51,157,168,173, 89,182, 26, 88, 14,108,107, 67,186,
- 44,173,149,235,239, 23, 97, 81,197,224,183,110,198, 34, 43,243, 56,149, 4, 66,164,100,109, 34, 23,217,131,158, 57,117,162,149,
-161, 38,235,128,201,153,224,139,197,241, 84,107,174,186,250,176,105,117, 99, 21,192, 67,163,110,153,169, 65,146,100,197,212,129,
-141,167, 6,212,182,103,147, 85, 60, 85,159,172,168,209,122,229, 47,132, 68, 27,222,146, 64, 21, 67,239,252, 57,164, 26,133,138,
- 90, 41, 78, 44,112, 31,207,163,227,152, 68,206, 73, 86, 27,169,203,226, 81,120, 49,147,174, 19,178,144, 76, 34, 57,215,202,138,
- 72, 77,133, 88,103,251, 78,227, 78,193,196, 40,161, 60, 45, 1,109,249,104,212,110,209, 64,118,156,115, 28,214,134,162, 32,199,
- 97, 2, 60,153,242,219, 26, 25, 52,154,151,141,119, 48, 1, 57,116, 50,122,192, 56,126, 97,156,163,159, 48, 24,170,213, 79,134,
-236, 25,233,180, 66,133, 52, 43,208,126, 8, 51, 20,101,159, 32,226,172,100,131,153,208, 76,216, 76,164, 85,184,228, 26, 6,197,
-245,133,159,153, 90, 55,154,237,154,190,177, 13, 89,198, 69, 85,144, 39,195, 40,227,177, 34,161, 74,141, 66,239, 20, 2,176, 85,
-151,180,137,188, 70,118,136,214, 29,168,108, 85, 85, 31,202,165,255,219,232, 9,172, 70, 12,163,162,200,136,230,172,122,245,115,
-140,146, 96, 49, 75,243,153,120, 66, 55,203, 92,204, 83,184, 42,114, 54,147,122, 64, 20, 83,114,133, 66,237,243,215,101, 53,159,
-255, 60,206,234,244, 19,214, 64,115,128,102, 2,102,173,117, 20,199,233,152,145, 99,211,146,136,186, 89,109,126,102, 66, 67,105,
-248,209,212,218,216, 92, 88, 36,135,193,144,165, 66,163, 9,100,237,202, 22,132, 29, 37,144, 32, 37,134,240,139,106,113, 78, 0,
-100, 16,209, 70, 30, 17,170,214,164,146, 52,231,114,197,110,138,176, 97, 5,136, 19,142, 70, 22,240, 89,127,226, 84, 39,182, 86,
- 66, 60, 69,154,150,204,154,233, 88,176, 76, 39,202, 98,104,231,252, 25,156,246,198,105, 9,234, 68, 5, 35,215, 74, 55,142, 89,
-170,105,101,140, 88,205,226,162, 94,109,124,105, 40,125,196, 56,226, 79, 28, 20,229, 71,152, 21, 59, 58, 14, 73,116,153,199, 43,
-233,146,128,236, 50, 47,108,231, 46,167, 9,139, 18,235, 83, 24,103,102,210,118, 38,126,213, 42, 21, 15, 61,163,137,121, 38, 13,
-234, 73,220, 93,235,104,118,101,212,113, 18,212, 44,132, 20,130, 28,117,152,118, 98, 76,203,214,143, 4,178,202,168,171,213,110,
-221, 63, 39,164, 77,226, 67,240, 56, 4, 5,147,225,116,176,235,233,132, 69,241, 0,129,202,139,173,182,193,177, 96,111,247,235,
-132, 60, 26, 91, 97, 99,156,240,134, 78, 35,113,227,146,205,144, 82,174,186,216,156,211, 36,122, 85,106, 87,104,139,105,176, 69,
- 44,210, 8, 39, 38, 5,164,101,113,106, 1, 84,166,152,108,204,192,215,186, 64,125, 2,198,143, 20, 48, 39,241,141, 4, 26, 63,
-119,161, 81,154, 87,189,174,134, 17, 66,219,221, 31, 42,251, 89,158,219, 27,230, 89, 72,166,132,237,205,180,189,145, 82,138, 10,
-116,150, 41, 18,149,190, 31,146, 82, 63,222,121,207, 62,157, 30,107,107,185,137,131,179,163,103,242,141, 41, 37,163,142, 87, 76,
-103, 33,107,192,111,142,175, 57,139,240, 61,214, 70, 25,218,177, 0, 85,177,108,162,146, 22, 52, 81,192, 32, 99,158,229, 84,208,
-112, 83,148, 48,102, 53,211, 1,199,203,210,151, 32,164, 5,175, 13, 39, 18, 30,118, 73, 85,109, 62, 19, 0, 57, 75, 74,152,119,
-126, 34, 5, 83, 22, 63, 33, 32,140,142,230, 44, 70, 78,168,139, 62,128,100, 30, 77,198,131,118,160,230,251,181, 6,107,102, 39,
-239,209,166,136, 24,180, 82,199, 49,230, 84, 60,145, 29, 49,232,132,193,203,106,116, 78,139,232, 59,222, 89,213,198, 17,154,153,
-164,178,166,134,161,183, 74, 85,131,123,101,215, 78,173,148, 43,178,178,113,225, 3,108, 56, 92,150,229,160, 4, 69, 74, 63,232,
-254, 97,241, 96, 55,239,100,107, 67,186, 68, 35,178,200, 98, 46, 93,110, 39,245, 88,205,163, 44,144,236,117, 12,119,204,150,109,
- 20,113,134, 78,231, 42,235, 13, 84,154,165, 53, 95,194,170,145, 99, 28, 4,198,243,109, 66, 46,126,100,139,191,182, 24,156,184,
-235,231,163, 68, 70,196,214, 52, 53, 63,218,182, 40,134, 82,119,205, 16, 7,168,144, 45,133,138, 72,212,102,100,137, 98,126,154,
- 71,100, 65, 71, 75,189,178, 63,120, 80,219, 88,164, 11,219,185,203, 2,218, 44, 39, 32,145, 41, 50,100,225,250,172,209,180,210,
- 62, 27, 35, 33,144,117,236, 40,180, 56,230, 38,198, 9,199,158, 99,170, 84, 9,152, 81, 23, 91, 27,163, 59, 81, 52,142,165, 73,
-177,218, 87,175,196, 68,159,254, 66,216,145, 31, 10,232,154, 88, 3,180, 26, 61, 89, 2,235,228,138, 53,212,144, 33,196, 74,103,
- 44, 40,149,151,187,236,185,127, 88,114, 86, 18, 57,169,154, 30, 46, 99,222,167,203, 50,235,232,243,217, 89,216,229, 40, 0, 3,
-192, 19, 54, 37,153,220, 87, 59, 58,167,241, 29, 57,222,216,104, 27,172,195, 65,117, 89,147,233, 37,141,113,161,234,190,171,129,
-132,151, 10, 85,174,213, 14, 12,174, 50, 90, 96,140, 48,101,237,212,212,246,249,117,104,201, 9,237,145,161, 78, 34,154, 49,166,
-147, 20, 84,211,162,177,214,229,210,246, 15,135, 56,109, 91, 56,203, 76,226,246,133,173, 69,218,218,240, 84,147,139,185, 92, 60,
-151,103, 51,241,186,183,235, 36, 53,120,189,114, 36, 28,232,203,168,113,138,141,228,138, 32,150,219, 88, 11,140, 93, 78,180, 3,
- 62, 99, 14,134, 85,180,225,124,217, 14,212,180,113, 46,187, 90,106, 21,156, 54,216, 30,214, 78, 68,105,243, 49, 13,210, 98, 59,
- 62, 70,107,122,212, 56,213,170, 0, 0, 3,224, 73, 68, 65, 84,212, 70,116, 20,227, 57,151,149,207,202,154,156,213, 20, 85,181,
-198, 28,193, 80,108, 57,168, 84, 37,216,207,195,108, 72, 94, 63,118, 57,229, 84, 9, 18, 21,246,245,243,218,242,132, 43, 95, 39,
-190,173,154, 68, 16, 91, 39, 51, 62,218,168, 42, 45,223, 80,140,186, 73,181,152,119, 33, 89, 52,120,217,140,185,220, 24,193,173,
-158, 56, 18,199,112,215,206,135,143,177,180,152,202,160, 6, 75,189, 14, 71,141, 87,172, 83,119,186, 86, 83,251,216, 82,216,141,
-106,225, 82, 1,248,184, 13, 15,142, 11,118, 91, 56,170,104, 1, 67,131,178,196,209, 4,243, 25, 55,230, 41,137,120,136,201, 26,
-103, 64, 53,197,117,109,208,150, 7,198,166, 68, 90,214,182,198,198,115, 89,171, 85,214, 54,195, 56,205,139, 58,225,217, 26, 60,
-245,244,208, 74,211,109, 72, 50,131, 15,173, 52,142,135,238,196, 74, 24, 71, 38,121,134, 29,163,119,145,147,197,181,199,176,200,
-122,118,144,135,241,137,147, 48,104,100, 95,164,243,185, 9,210,196,178,154,210,104, 44, 38,165,176, 12,102, 41,196,146, 91,153,
- 96, 49,105, 94,171, 62,142,137, 77,203,226,108, 68,116,195,151, 71, 29, 49,202, 40,202, 78, 5,172,216, 80,236,249,208, 26, 27,
- 79, 72,170,243, 42,116,194,255,232,243,199, 2,178,157, 75, 84, 15, 8,164, 15,145,140,211,169,230, 39,115,181, 89,188,166,159,
-238, 78, 26,162,238,155,168,230,115, 46, 6,192, 10,143,189,180, 3, 1, 59, 60, 46, 59, 19, 82, 68, 30,119,111, 60,185, 43, 52,
- 63,112,160,134,162,105, 3, 5,171, 43,153, 30,167,215,182,247, 20,197, 99, 13,216,171,142,150,141,183, 29, 1,161, 1,242,109,
-152, 46, 80,129, 74, 50,111, 71, 75, 26,140,202, 9,200, 50,194,119,238,172,218,136, 64,140, 40,182,153,217,234, 33,195, 75,178,
-233, 65,245,117, 54,198,157,136,229,217,218, 36, 86,213,165, 22,178, 66,177, 26,198,214, 36,101, 13, 90, 35,168, 86,203, 90, 59,
- 69, 42, 91,107, 87,217,216,116,168, 8,150,181,224,173,129, 44,105,235, 91,196,169, 98,106,182,118,206,162, 23,244, 86, 83,119,
-186,235,169,153,155,213,168,137,170, 75, 6, 19,182,233, 75,218,216,210,111,125, 53, 70,244,181, 58,204, 55,126, 0, 53,219, 24,
-215,219,204, 26, 91, 56,243,117,106, 36,108,213,104, 39,210, 68, 59,148,113,205,208,214,154,253, 99,114, 54, 30,149,169,117, 30,
-148,205,121,185,195,103, 45, 91, 67,155,154, 15,148, 10, 2,112, 60,148, 52, 74,231, 72,150, 26,204, 28, 40,112, 29,234, 82,212,
-129,117,182,179,195, 66, 70,172,152,121, 45, 65, 48, 53, 99, 35,152,107,152,156, 48, 12, 38, 57,139,151,154,110,125,225,199,170,
- 49, 25,167,149, 26,235,249,160, 88, 71, 12, 49,246, 1,218, 44, 77, 67,191,173,166, 24,181, 58,241,141,157,158, 42, 51,102, 29,
-218,112,237, 58,239, 91,163,139, 77,164, 50,173, 13,109,212,151,166, 92,126,254,160,249,161,106,145,139, 26,218,118,180,212,173,
- 37,128,185,253,183, 51,117,188, 55,240, 29,104,157,148, 25, 89, 21, 53, 48,105,148,240,161,101, 21,222, 61,147, 62,133,230,174,
-214,178,124,179,233,225,228,227,168, 60, 99,132, 22,205,224, 98,201,168, 3,181, 86,127,182,122,224, 64, 61,131, 46, 92, 75, 59,
-187, 47,140, 56,138,164,112,254,168,119, 84,229, 19,101,215, 26,183,166,222, 54,128,108,173,232,212,233, 97, 5,106, 35,162,101,
- 1,138,177,150,144,173, 1,172,117, 36, 45, 6,145,200, 19,112, 19, 78,124,183,113,174,166, 85, 17, 35, 81, 49, 48, 82, 95, 64,
-228, 0,110, 44, 97,252,218, 64,112,133, 10,164,202, 40,208,113, 31,124,231,164,188,170,194,179, 54, 94, 88,115,118,214, 62,237,
-104,103, 99, 40, 9,156,202, 8,230,152,171,182,134, 79,248,252,249,244,156,192,234,203, 84,199,227, 18,214, 36,101, 35, 30, 20,
- 93,242,241, 56,214,105,103,170, 70,134,209,127, 53,110,143, 85,237,156,228, 80,118,194, 49,181,234,212,111, 56,142,125,154,140,
- 97,250, 8,166,197,152,161,203, 92, 9,177, 81, 88,117,210,218,143, 68, 25,147, 22,159,138, 28, 53,179,229,163, 25,163,151,174,
- 39,215,199,240,218,216, 79, 97, 77, 92,106, 73,221,150, 59, 77,243, 70,108,241, 4,225, 74,219,120, 36,177,214, 43,161,141,201,
- 66,211, 59,182,147,159,226,191, 89, 8, 53,178,105,106, 90,243,164,150,160, 76,108,195,106,139,167,185,159,230,141,234,126, 84,
-252,106,250, 50,155,192,248, 35, 63, 9,255, 7, 14,224,164, 93, 7, 57, 57,190, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/bmonofont.ttf.c b/source/blender/editors/datafiles/bmonofont.ttf.c
deleted file mode 100644
index 36f50403da2..00000000000
--- a/source/blender/editors/datafiles/bmonofont.ttf.c
+++ /dev/null
@@ -1,9684 +0,0 @@
-/** \file blender/editors/datafiles/bmonofont.ttf.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <bmonofont_ttf> */
-
-int datatoc_bmonofont_ttf_size= 309588;
-char datatoc_bmonofont_ttf[]= {
- 0, 1, 0, 0, 0, 18, 1, 0, 0, 4, 0, 32, 70, 70, 84, 77, 76,195, 13,197,
- 0, 0, 1, 44, 0, 0, 0, 28, 71, 68, 69, 70,107,171,118, 72, 0, 0, 1, 72, 0, 0, 0,174, 71, 80, 79, 83, 85,176, 56, 58,
- 0, 0, 1,248, 0, 0, 53,184, 71, 83, 85, 66, 11, 72,224,153, 0, 0, 55,176, 0, 0, 4,240, 79, 83, 47, 50,135,252,137,178,
- 0, 0, 60,160, 0, 0, 0, 86, 99,109, 97,112,173,161, 29,196, 0, 0, 60,248, 0, 0, 20,198, 99,118,116, 32,233,151, 7, 12,
- 0, 0, 81,192, 0, 0, 2, 48,102,112,103,109, 91, 2,107,223, 0, 0, 83,240, 0, 0, 0,172,103, 97,115,112, 0, 7, 0, 7,
- 0, 0, 84,156, 0, 0, 0, 12,103,108,121,102, 94, 39,215, 74, 0, 0, 84,168, 0, 3,133, 48,104,101, 97,100,233, 47, 44,226,
- 0, 3,217,216, 0, 0, 0, 54,104,104,101, 97, 8,183, 2, 7, 0, 3,218, 16, 0, 0, 0, 36,104,109,116,120,224, 90,223, 8,
- 0, 3,218, 52, 0, 0, 23,172,108,111, 99, 97, 19,189,108,128, 0, 3,241,224, 0, 0, 47, 76,109, 97,120,112, 17,120, 9,216,
- 0, 4, 33, 44, 0, 0, 0, 32,110, 97,109,101, 96,229,233,137, 0, 4, 33, 76, 0, 0, 33, 21,112,111,115,116,106, 10,163,233,
- 0, 4, 66,100, 0, 0,111,212,112,114,101,112, 58,199,192, 7, 0, 4,178, 56, 0, 0, 7, 27, 0, 0, 0, 1, 0, 0, 0, 0,
-196, 21,105, 4, 0, 0, 0, 0,196, 86,210, 96, 0, 0, 0, 0,196, 86,210, 96, 0, 1, 0, 0, 0, 12, 0, 0, 0,166, 0, 0,
- 0, 2, 0, 25, 0, 3, 2,123, 0, 1, 2,124, 2,141, 0, 3, 2,142, 2,142, 0, 1, 2,143, 2,149, 0, 3, 2,150, 2,151,
- 0, 1, 2,152, 2,156, 0, 3, 2,157, 2,158, 0, 1, 2,159, 2,163, 0, 3, 2,164, 2,164, 0, 1, 2,165, 2,173, 0, 3,
- 2,174, 2,180, 0, 1, 2,181, 2,186, 0, 3, 2,187, 2,187, 0, 1, 2,188, 2,188, 0, 3, 2,189, 4, 3, 0, 1, 4, 4,
- 4, 15, 0, 3, 4, 16, 4,100, 0, 1, 4,101, 4,101, 0, 3, 4,102, 4,103, 0, 1, 4,104, 4,117, 0, 3, 4,118, 10,148,
- 0, 1, 10,149, 10,150, 0, 2, 10,151, 11, 98, 0, 1, 11, 99, 11,106, 0, 2, 11,107, 11,209, 0, 1, 0, 4, 0, 0, 0, 2,
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0,164, 0,236, 0, 6, 97,114, 97, 98, 0, 38, 99,121,114,108, 0, 52,100,102,108,116,
- 0, 70,103,114,101,107, 0, 80,108, 97,111, 32, 0, 92,108, 97,116,110, 0,106, 0, 4, 0, 0, 0, 0,255,255, 0, 2, 0, 0,
- 0, 3, 0, 10, 0, 1, 83, 82, 66, 32, 0, 10, 0, 0,255,255, 0, 1, 0, 1, 0, 4, 0, 0, 0, 0,255,255, 0, 0, 0, 4,
- 0, 0, 0, 0,255,255, 0, 1, 0, 1, 0, 4, 0, 0, 0, 0,255,255, 0, 2, 0, 2, 0, 4, 0, 40, 0, 6, 73, 83, 77, 32,
- 0, 40, 75, 83, 77, 32, 0, 40, 76, 83, 77, 32, 0, 40, 78, 83, 77, 32, 0, 40, 83, 75, 83, 32, 0, 40, 83, 83, 77, 32, 0, 40,
- 0, 0,255,255, 0, 1, 0, 1, 0, 5,109, 97,114,107, 0, 32,109, 97,114,107, 0, 44,109, 97,114,107, 0, 52,109,107,109,107,
- 0, 58,114,116, 98,100, 0, 66, 0, 0, 0, 4, 0, 2, 0, 3, 0, 4, 0, 5, 0, 0, 0, 2, 0, 6, 0, 7, 0, 0, 0, 1,
- 0, 8, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9, 0, 10, 0, 22, 0, 30, 0, 38, 0, 46, 0, 54, 0, 62, 0, 70,
- 0, 80, 0, 88, 0, 96, 0, 6, 0, 1, 0, 1, 0, 82, 0, 6, 0, 1, 0, 1, 0,120, 0, 5, 0, 1, 0, 1, 0,192, 0, 4,
- 0, 1, 0, 1, 1,154, 0, 5, 0, 1, 0, 1, 9,118, 0, 4, 0, 1, 0, 1, 10,152, 0, 4, 0, 0, 0, 2, 18,114, 27, 2,
- 0, 1, 0, 0, 0, 1, 49,196, 0, 4, 0, 0, 0, 1, 49,236, 0, 1, 0, 8, 0, 1, 52, 84, 0, 1, 0, 28, 0, 22, 0, 1,
- 0, 34, 0, 12, 0, 1, 0, 4, 0, 1, 2,112,253,228, 0, 1, 0, 1, 4, 14, 0, 1, 0, 1, 4, 9, 0, 1, 0, 0, 0, 6,
- 0, 1, 2,104, 0, 0, 0, 1, 0, 38, 0, 30, 0, 1, 0, 48, 0, 12, 0, 2, 0, 6, 0, 12, 0, 1, 2, 99, 7, 34, 0, 1,
- 2, 99, 6,224, 0, 1, 0, 2, 4, 10, 4, 13, 0, 1, 0, 3, 4, 7, 4, 8, 4, 11, 0, 3, 0, 0, 0, 14, 0, 0, 0, 20,
- 0, 0, 0, 26, 0, 1, 2, 93, 4,106, 0, 1, 2, 93, 4,106, 0, 1, 2, 98, 4,106, 0, 1, 0,184, 0,174, 0, 1, 0,194,
- 0, 12, 0, 8, 0, 18, 0, 36, 0, 54, 0, 72, 0, 90, 0,108, 0,126, 0,144, 0, 2, 0, 6, 0, 12, 0, 1, 3,224, 0, 80,
- 0, 1, 3,124, 0, 72, 0, 2, 0, 6, 0, 12, 0, 1, 3, 48,255,224, 0, 1, 2,172,255,220, 0, 2, 0, 6, 0, 12, 0, 1,
- 3,224, 0, 80, 0, 1, 3,124, 0, 72, 0, 2, 0, 6, 0, 12, 0, 1, 3, 60,255,136, 0, 1, 2, 80,255,132, 0, 2, 0, 6,
- 0, 12, 0, 1, 3,168, 0, 44, 0, 1, 1, 32,253,220, 0, 2, 0, 6, 0, 12, 0, 1, 3, 84,255, 96, 0, 1, 1, 12,253,220,
- 0, 2, 0, 6, 0, 12, 0, 1, 3,224, 0, 80, 0, 1, 3,124, 0, 72, 0, 2, 0, 6, 0, 12, 0, 1, 2, 12,255,164, 0, 1,
- 3, 16, 0, 32, 0, 2, 0, 1, 11, 99, 11,106, 0, 0, 0, 1, 0, 3, 4, 6, 4, 9, 4, 14, 0, 3, 0, 0, 0, 14, 0, 0,
- 0, 20, 0, 0, 0, 26, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 7,186, 7,110, 0, 1,
- 7,196, 0, 12, 0,236, 1,218, 1,224, 1,230, 1,236, 1,242, 1,248, 1,254, 2, 4, 2, 10, 2, 16, 2, 22, 2, 28, 2, 34,
- 2, 40, 2, 46, 2, 52, 2, 58, 2, 64, 2, 70, 2, 76, 2, 82, 2, 88, 2, 94, 2,100, 2,106, 2,112, 2,118, 2,124, 2,130,
- 2,136, 2,142, 2,148, 2,154, 2,160, 2,166, 2,172, 2,178, 2,184, 2,190, 2,196, 2,202, 2,208, 2,214, 2,220, 2,226,
- 2,232, 2,238, 2,244, 2,250, 3, 0, 3, 6, 3, 12, 3, 18, 3, 24, 3, 30, 3, 36, 3, 42, 3, 48, 3, 54, 3, 60, 3, 66,
- 3, 72, 3, 78, 3, 84, 3, 90, 3, 96, 3,102, 3,108, 3,114, 3,120, 3,126, 3,132, 3,138, 3,144, 3,150, 3,156, 3,162,
- 3,168, 3,174, 3,180, 3,186, 3,192, 3,198, 3,204, 3,210, 3,216, 3,222, 3,228, 3,234, 3,240, 3,246, 3,252, 4, 2,
- 4, 8, 4, 14, 4, 20, 4, 26, 4, 32, 4, 38, 4, 44, 4, 50, 4, 56, 4, 62, 4, 68, 4, 74, 4, 80, 4, 86, 4, 92, 4, 98,
- 4,104, 4,110, 4,116, 4,122, 4,128, 4,134, 4,140, 4,146, 4,152, 4,158, 4,164, 4,170, 4,176, 4,182, 4,188, 4,194,
- 4,200, 4,206, 4,212, 4,218, 4,224, 4,230, 4,236, 4,242, 4,248, 4,254, 5, 4, 5, 10, 5, 16, 5, 22, 5, 28, 5, 34,
- 5, 40, 5, 46, 5, 52, 5, 58, 5, 64, 5, 70, 5, 76, 5, 82, 5, 88, 5, 94, 5,100, 5,106, 5,112, 5,118, 5,124, 5,130,
- 5,136, 5,142, 5,148, 5,154, 5,160, 5,166, 5,172, 5,178, 5,184, 5,190, 5,196, 5,202, 5,208, 5,214, 5,220, 5,226,
- 5,232, 5,238, 5,244, 5,250, 6, 0, 6, 6, 6, 12, 6, 18, 6, 24, 6, 30, 6, 36, 6, 42, 6, 48, 6, 54, 6, 60, 6, 66,
- 6, 72, 6, 78, 6, 84, 6, 90, 6, 96, 6,102, 6,108, 6,114, 6,120, 6,126, 6,132, 6,138, 6,144, 6,150, 6,156, 6,162,
- 6,168, 6,174, 6,180, 6,186, 6,192, 6,198, 6,204, 6,210, 6,216, 6,222, 6,228, 6,234, 6,240, 6,246, 6,252, 7, 2,
- 7, 8, 7, 14, 7, 20, 7, 26, 7, 32, 7, 38, 7, 44, 7, 50, 7, 56, 7, 62, 7, 68, 7, 74, 7, 80, 7, 86, 7, 92, 0, 1,
- 2, 88, 0, 0, 0, 1, 2,100,253,223, 0, 1, 1,212, 2,124, 0, 1, 2,100,255,178, 0, 1, 2,104,254,136, 0, 1, 2, 48,
-255, 96, 0, 1, 2,116,255, 88, 0, 1, 2,116,255, 88, 0, 1, 1,252,253,204, 0, 1, 2, 12,253,208, 0, 1, 2, 60,253,183,
- 0, 1, 2, 8,255,124, 0, 1, 2, 8,255,140, 0, 1, 2, 48,253,224, 0, 1, 2, 48,253,236, 0, 1, 2,104,254, 76, 0, 1,
- 2,160,254,132, 0, 1, 3, 40,254,220, 0, 1, 3, 32,254,192, 0, 1, 1, 84,255,112, 0, 1, 1,108,255,120, 0, 1, 2,144,
-253,204, 0, 1, 2,136,253,208, 0, 1, 2, 96,255,120, 0, 1, 2, 60,255, 68, 0, 1, 2, 40,254, 68, 0, 1, 1,252,255,100,
- 0, 1, 2, 20,254,124, 0, 1, 2,116,255, 88, 0, 1, 2, 76,254, 92, 0, 1, 2, 56,255, 40, 0, 1, 2, 80,253,220, 0, 1,
- 2, 64,254,180, 0, 1, 2, 64,253,224, 0, 1, 2,116,255, 88, 0, 1, 2,116,255, 88, 0, 1, 2, 52,253,232, 0, 1, 2,120,
-253,208, 0, 1, 2,116,255, 88, 0, 1, 2, 96,253,224, 0, 1, 2,116,255, 88, 0, 1, 2,100,253,236, 0, 1, 2, 68,253,216,
- 0, 1, 1,244,253,208, 0, 1, 2, 12,253,231, 0, 1, 2, 52,253,220, 0, 1, 2, 52,253,224, 0, 1, 2, 88,253,220, 0, 1,
- 2, 72,253,224, 0, 1, 2, 46,253,228, 0, 1, 2, 69,253,223, 0, 1, 2, 17,253,227, 0, 1, 1,212,255, 68, 0, 1, 2, 53,
-255,106, 0, 1, 2, 84,255,106, 0, 1, 2, 8,254,110, 0, 1, 2, 96,255, 95, 0, 1, 2, 80,253,220, 0, 1, 2, 13,254,112,
- 0, 1, 2, 13,254,112, 0, 1, 2,105,253,168, 0, 1, 2, 70,253,168, 0, 1, 2, 87,253,218, 0, 1, 2, 87,253,218, 0, 1,
- 2,133,253,168, 0, 1, 2, 64,253,168, 0, 1, 2, 84,253,218, 0, 1, 2, 81,253,218, 0, 1, 2, 88,253,168, 0, 1, 2, 58,
-253,168, 0, 1, 2, 66,253,218, 0, 1, 2, 96,253,218, 0, 1, 2,130,255,106, 0, 1, 2, 76,255,106, 0, 1, 2, 91,255,155,
- 0, 1, 2, 90,255,156, 0, 1, 2, 91,255,106, 0, 1, 2, 73,255,106, 0, 1, 2, 87,255,156, 0, 1, 2, 84,255,156, 0, 1,
- 2, 76,255,106, 0, 1, 2, 52,255,106, 0, 1, 2, 75,255,156, 0, 1, 2, 93,255,156, 0, 1, 1,212,255, 76, 0, 1, 1,148,
-255, 64, 0, 1, 1,244,255,106, 0, 1, 2, 86,255,106, 0, 1, 1,224,255, 56, 0, 1, 1,136,255, 56, 0, 1, 1,244,255,106,
- 0, 1, 2, 98,255,106, 0, 1, 2,116,253,168, 0, 1, 2, 92,253,168, 0, 1, 1,172,254, 12, 0, 1, 2, 88,254, 12, 0, 1,
- 2, 84,253,168, 0, 1, 2, 72,253,168, 0, 1, 1,132,255, 6, 0, 1, 2, 88,255, 6, 0, 1, 2, 84,253,168, 0, 1, 2, 56,
-253,167, 0, 1, 1,184,253,228, 0, 1, 2, 88,254, 12, 0, 1, 2,104,253,168, 0, 1, 2,100,253,168, 0, 1, 1,196,253,228,
- 0, 1, 2, 88,254, 12, 0, 1, 1,244,254, 12, 0, 1, 1,244,254, 12, 0, 1, 1,244,254, 12, 0, 1, 1,244,254, 12, 0, 1,
- 2, 63,255,106, 0, 1, 1,198,255,106, 0, 1, 1, 44,255,106, 0, 1, 1, 44,255,106, 0, 1, 2, 84,255, 95, 0, 1, 1,238,
-255,106, 0, 1, 1, 44,255,106, 0, 1, 1, 44,255,106, 0, 1, 2, 84,255,100, 0, 1, 2, 84,255,100, 0, 1, 1,184,255,100,
- 0, 1, 2, 16,255,100, 0, 1, 2, 76,254,112, 0, 1, 1,152,254,112, 0, 1, 2, 79,254,162, 0, 1, 2, 91,254,162, 0, 1,
- 2,192, 0, 28, 0, 1, 2,100,253,216, 0, 1, 2,204,253,216, 0, 1, 2, 24,255,128, 0, 1, 2,100,255, 88, 0, 1, 2,100,
-255,120, 0, 1, 2,176,255, 88, 0, 1, 2,100,254,104, 0, 1, 2, 28,254,104, 0, 1, 2, 68,254,140, 0, 1, 2, 88,254,140,
- 0, 1, 2, 44,255, 76, 0, 1, 2,108,255,132, 0, 1, 2,108,255,132, 0, 1, 2, 84,255,112, 0, 1, 2, 60,255,132, 0, 1,
- 2, 88,255,124, 0, 1, 2,108,255,132, 0, 1, 2, 72,255,128, 0, 1, 2, 72,255,124, 0, 1, 2, 84,255,116, 0, 1, 2, 0,
-253,144, 0, 1, 2, 0,253,144, 0, 1, 2, 8,254,136, 0, 1, 2, 12,254,108, 0, 1, 2, 0,253,144, 0, 1, 2, 0,253,144,
- 0, 1, 1, 60,255,132, 0, 1, 1, 84,255,112, 0, 1, 2, 0,253,144, 0, 1, 2, 0,253,144, 0, 1, 1,124,255,128, 0, 1,
- 1, 68,255, 92, 0, 1, 2, 56,255, 92, 0, 1, 2, 56,255, 92, 0, 1, 2, 56,255, 92, 0, 1, 2, 56,255, 92, 0, 1, 1,188,
-253,192, 0, 1, 1,140,253,189, 0, 1, 1,188,253,192, 0, 1, 1,156,253,188, 0, 1, 1,152,254, 12, 0, 1, 1, 88,254, 16,
- 0, 1, 1, 44,255,108, 0, 1, 1, 16,255,100, 0, 1, 1, 92,254, 28, 0, 1, 1, 9,254, 24, 0, 1, 1, 44,255,108, 0, 1,
- 1, 44,255,108, 0, 1, 1,120,254, 20, 0, 1, 1, 68,254, 17, 0, 1, 1, 44,255,108, 0, 1, 1, 44,255,108, 0, 1, 1, 76,
-254, 16, 0, 1, 1, 32,254, 24, 0, 1, 1, 44,255,108, 0, 1, 1, 4,255,108, 0, 1, 0,240,255,108, 0, 1, 0,216,255,108,
- 0, 1, 0,240,255,108, 0, 1, 0,208,255,112, 0, 1, 0,240,255,108, 0, 1, 0,208,255,104, 0, 1, 0,240,255,108, 0, 1,
- 0,220,255,108, 0, 1, 1,122,253,215, 0, 1, 1,122,253,215, 0, 1, 1,224,255,147, 0, 1, 2, 94,255,141, 0, 1, 1,122,
-253,215, 0, 1, 1,122,253,215, 0, 1, 1,146,255,159, 0, 1, 2, 94,255,159, 0, 1, 2, 94,255, 45, 0, 1, 2,100,255, 15,
- 0, 1, 1,158,255,117, 0, 1, 2,106,255,129, 0, 1, 1,224,254, 25, 0, 1, 1,224,253,185, 0, 1, 1, 56,255,141, 0, 1,
- 2,106,255,129, 0, 1, 2, 58,255, 75, 0, 1, 1,218,255, 81, 0, 1, 0,216,255,129, 0, 1, 0,162,255, 93, 0, 1, 2, 88,
-254,109, 0, 1, 1,254,254, 97, 0, 1, 2,100,255,135, 0, 1, 2,106,255,117, 0, 1, 3, 18,255,117, 0, 1, 2,172,254,163,
- 0, 1, 2, 70,255, 21, 0, 1, 2, 88,255, 39, 0, 1, 1,254,254, 85, 0, 1, 1,194,253,197, 0, 1, 2, 64,255,129, 0, 1,
- 2, 76,255,123, 0, 1, 2, 82,255, 75, 0, 1, 2, 82,255,111, 0, 1, 1,176,255, 39, 0, 1, 2, 16,253,210, 0, 1, 2, 76,
-253,233, 0, 1, 2, 4,253,209, 0, 1, 2, 46,254,145, 0, 1, 2, 28,253,173, 0, 1, 1,146,253,188, 0, 1, 2, 58,254,139,
- 0, 1, 2, 82,254,133, 0, 2, 0, 12, 3,223, 3,223, 0, 0, 3,227, 4, 3, 0, 1, 4, 33, 4, 50, 0, 34, 4, 52, 4, 55,
- 0, 52, 4, 57, 4, 60, 0, 56, 10,151, 10,210, 0, 60, 10,213, 10,216, 0,120, 10,219, 10,222, 0,124, 10,238, 10,238, 0,128,
- 10,245, 10,246, 0,129, 10,249, 11, 93, 0,131, 11, 95, 11, 98, 0,232, 0, 1, 0, 3, 4, 6, 4, 9, 4, 14, 0, 3, 0, 0,
- 0, 14, 0, 0, 0, 20, 0, 0, 0, 26, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 0,184,
- 0,174, 0, 1, 0,206, 0, 12, 0, 8, 0, 18, 0, 36, 0, 54, 0, 72, 0, 90, 0,108, 0,126, 0,144, 0, 2, 0, 6, 0, 12,
- 0, 1, 3,156, 6,104, 0, 1, 0,147, 7, 53, 0, 2, 0, 6, 0, 12, 0, 1, 3,156, 6,104, 0, 1, 0, 91, 7, 25, 0, 2,
- 0, 6, 0, 12, 0, 1, 3,156, 6,104, 0, 1, 0,155, 7,246, 0, 2, 0, 6, 0, 12, 0, 1, 3, 84, 6,108, 0, 1, 0, 43,
- 7,250, 0, 2, 0, 6, 0, 12, 0, 1, 3,156, 6,104, 0, 1, 0,223, 5,221, 0, 2, 0, 6, 0, 12, 0, 1, 3,156, 6,104,
- 0, 1, 0,223, 5,221, 0, 2, 0, 6, 0, 12, 0, 1, 3,156, 6,104, 0, 1, 0,223, 5,221, 0, 2, 0, 6, 0, 12, 0, 1,
- 3, 92, 6,104, 0, 1, 0,159, 5,221, 0, 2, 0, 1, 11, 99, 11,106, 0, 0, 0, 1, 0, 9, 4, 4, 4, 5, 4, 7, 4, 8,
- 4, 10, 4, 11, 4, 12, 4, 13, 4, 15, 0, 9, 0, 0, 0, 38, 0, 0, 0, 44, 0, 0, 0, 50, 0, 0, 0, 56, 0, 0, 0, 62,
- 0, 0, 0, 68, 0, 0, 0, 74, 0, 0, 0, 80, 0, 0, 0, 86, 0, 1, 2, 93, 4,106, 0, 1, 2, 93, 4,106, 0, 1, 2, 93,
- 4,106, 0, 1, 2, 93, 4,106, 0, 1, 2, 93, 4,106, 0, 1, 2, 98, 4,106, 0, 1, 2, 93, 4,106, 0, 1, 2, 93, 4,106,
- 0, 1, 2,104, 4,176, 0, 1, 7,112, 7, 30, 0, 1, 7,134, 0, 12, 0,226, 1,198, 1,204, 1,210, 1,216, 1,222, 1,228,
- 1,234, 1,240, 1,246, 1,252, 2, 2, 2, 8, 2, 14, 2, 20, 2, 26, 2, 32, 2, 38, 2, 44, 2, 50, 2, 56, 2, 62, 2, 68,
- 2, 74, 2, 80, 2, 86, 2, 92, 2, 98, 2,104, 2,110, 2,116, 2,122, 2,128, 2,134, 2,140, 2,146, 2,152, 2,158, 2,164,
- 2,170, 2,176, 2,182, 2,188, 2,194, 2,200, 2,206, 2,212, 2,218, 2,224, 2,230, 2,236, 2,242, 2,248, 2,254, 3, 4,
- 3, 10, 3, 16, 3, 22, 3, 28, 3, 34, 3, 40, 3, 46, 3, 52, 3, 58, 3, 64, 3, 70, 3, 76, 3, 82, 3, 88, 3, 94, 3,100,
- 3,106, 3,112, 3,118, 3,124, 3,130, 3,136, 3,142, 3,148, 3,154, 3,160, 3,166, 3,172, 3,178, 3,184, 3,190, 3,196,
- 3,202, 3,208, 3,214, 3,220, 3,226, 3,232, 3,238, 3,244, 3,250, 4, 0, 4, 6, 4, 12, 4, 18, 4, 24, 4, 30, 4, 36,
- 4, 42, 4, 48, 4, 54, 4, 60, 4, 66, 4, 72, 4, 78, 4, 84, 4, 90, 4, 96, 4,102, 4,108, 4,114, 4,120, 4,126, 4,132,
- 4,138, 4,144, 4,150, 4,156, 4,162, 4,168, 4,174, 4,180, 4,186, 4,192, 4,198, 4,204, 4,210, 4,216, 4,222, 4,228,
- 4,234, 4,240, 4,246, 4,252, 5, 2, 5, 8, 5, 14, 5, 20, 5, 26, 5, 32, 5, 38, 5, 44, 5, 50, 5, 56, 5, 62, 5, 68,
- 5, 74, 5, 80, 5, 86, 5, 92, 5, 98, 5,104, 5,110, 5,116, 5,122, 5,128, 5,134, 5,140, 5,146, 5,152, 5,158, 5,164,
- 5,170, 5,176, 5,182, 5,188, 5,194, 5,200, 5,206, 5,212, 5,218, 5,224, 5,230, 5,236, 5,242, 5,248, 5,254, 6, 4,
- 6, 10, 6, 16, 6, 22, 6, 28, 6, 34, 6, 40, 6, 46, 6, 52, 6, 58, 6, 64, 6, 70, 6, 76, 6, 82, 6, 88, 6, 94, 6,100,
- 6,106, 6,112, 6,118, 6,124, 6,130, 6,136, 6,142, 6,148, 6,154, 6,160, 6,166, 6,172, 6,178, 6,184, 6,190, 6,196,
- 6,202, 6,208, 6,214, 6,220, 6,226, 6,232, 6,238, 6,244, 6,250, 7, 0, 7, 6, 7, 12, 0, 1, 2,152, 4,132, 0, 1,
- 2,100, 8,116, 0, 1, 2,208, 5, 32, 0, 1, 1,204, 4,184, 0, 1, 2,104, 6,168, 0, 1, 2,100, 2,252, 0, 1, 2, 56,
- 4,160, 0, 1, 2,124, 3,212, 0, 1, 2, 36, 4,160, 0, 1, 1,244, 4,124, 0, 1, 2, 4, 4, 96, 0, 1, 2, 4, 5, 72,
- 0, 1, 1,208, 4, 76, 0, 1, 1,192, 5, 68, 0, 1, 2, 4, 2,252, 0, 1, 1,152, 4, 32, 0, 1, 2, 92, 3,240, 0, 1,
- 1,220, 5,116, 0, 1, 1, 64, 3,184, 0, 1, 1, 52, 4, 72, 0, 1, 0,232, 6,184, 0, 1, 0,236, 6,212, 0, 1, 1,156,
- 5, 40, 0, 1, 1,124, 5,244, 0, 1, 2, 88, 4, 84, 0, 1, 2,252, 5,132, 0, 1, 2,156, 5,248, 0, 1, 1,240, 5,204,
- 0, 1, 3,144, 6,196, 0, 1, 2,152, 4, 40, 0, 1, 1,248, 4,108, 0, 1, 1,240, 3,240, 0, 1, 2,116, 3,188, 0, 1,
- 2,172, 4, 60, 0, 1, 2,152, 4, 48, 0, 1, 2,124, 3,212, 0, 1, 2,188, 4,218, 0, 1, 2,111, 4,126, 0, 1, 1, 24,
- 5,120, 0, 1, 1,174, 5,120, 0, 1, 3,234, 8, 52, 0, 1, 2, 95, 4, 96, 0, 1, 2,212, 4,196, 0, 1, 1,159, 3, 12,
- 0, 1, 1,135, 4,144, 0, 1, 2,105, 3,232, 0, 1, 2, 70, 3,232, 0, 1, 2, 87, 3,232, 0, 1, 2, 87, 3,232, 0, 1,
- 2,133, 3,232, 0, 1, 2, 64, 3,232, 0, 1, 2, 84, 3,232, 0, 1, 2, 84, 3,232, 0, 1, 2, 91, 3,232, 0, 1, 2, 58,
- 3,232, 0, 1, 2, 66, 3,232, 0, 1, 2, 96, 3,232, 0, 1, 2,130, 4, 76, 0, 1, 2, 76, 4, 76, 0, 1, 2, 91, 5, 19,
- 0, 1, 2, 90, 5, 20, 0, 1, 2, 91, 4,157, 0, 1, 2, 73, 4,175, 0, 1, 2, 87, 5, 20, 0, 1, 2, 84, 5, 20, 0, 1,
- 2, 76, 4,226, 0, 1, 2, 52, 4,226, 0, 1, 2, 75, 5,170, 0, 1, 2, 93, 5,170, 0, 1, 1,144, 5,108, 0, 1, 1, 56,
- 4,244, 0, 1, 1,244, 6, 64, 0, 1, 2, 94, 5,170, 0, 1, 1, 32, 5, 32, 0, 1, 1, 8, 4,228, 0, 1, 1,244, 6, 64,
- 0, 1, 2, 98, 5,170, 0, 1, 1,210, 3,232, 0, 1, 1,186, 3,232, 0, 1, 1,172, 3,232, 0, 1, 2, 88, 3,232, 0, 1,
- 1,178, 3,232, 0, 1, 1,166, 3,232, 0, 1, 1,132, 3,232, 0, 1, 2, 88, 3,232, 0, 1, 1,178, 3,232, 0, 1, 1,150,
- 3,231, 0, 1, 1,184, 3,232, 0, 1, 2, 88, 3,232, 0, 1, 1,198, 3,232, 0, 1, 1,194, 3,232, 0, 1, 1,196, 3,232,
- 0, 1, 2, 88, 3,232, 0, 1, 2,111, 4, 77, 0, 1, 2,188, 4,226, 0, 1, 2,170, 4,191, 0, 1, 2,152, 4,241, 0, 1,
- 2, 33, 5, 84, 0, 1, 1,177, 5, 25, 0, 1, 1,255, 6, 14, 0, 1, 1,241, 6, 14, 0, 1, 1,140, 5,120, 0, 1, 0,243,
- 5,120, 0, 1, 0,250, 6,164, 0, 1, 0,250, 6,164, 0, 1, 2, 84, 4,128, 0, 1, 2, 84, 4,128, 0, 1, 1,184, 4,128,
- 0, 1, 2, 16, 4,128, 0, 1, 1,204, 3, 38, 0, 1, 1,148, 2,126, 0, 1, 2, 79, 3,232, 0, 1, 2, 91, 3,232, 0, 1,
- 2,176, 4,184, 0, 1, 2, 12, 8,216, 0, 1, 2, 88, 8,224, 0, 1, 2,140, 5, 80, 0, 1, 2, 88, 5, 68, 0, 1, 1,128,
- 4,216, 0, 1, 1, 28, 3,244, 0, 1, 2, 44, 5, 97, 0, 1, 2, 68, 5,102, 0, 1, 2, 92, 6,216, 0, 1, 2, 80, 6,232,
- 0, 1, 2,104, 3, 60, 0, 1, 2, 16, 2,232, 0, 1, 2, 12, 3,200, 0, 1, 2, 92, 3,156, 0, 1, 2, 4, 4,200, 0, 1,
- 2, 92, 4,216, 0, 1, 2, 92, 3,244, 0, 1, 2, 48, 4, 20, 0, 1, 2, 44, 4,196, 0, 1, 2, 48, 4,224, 0, 1, 2, 64,
- 4,240, 0, 1, 2, 44, 5, 0, 0, 1, 2, 32, 5,100, 0, 1, 2, 32, 5, 96, 0, 1, 1,248, 4,128, 0, 1, 1,212, 4,124,
- 0, 1, 1,116, 4, 76, 0, 1, 1, 96, 4, 48, 0, 1, 1,220, 4,164, 0, 1, 1,200, 4,176, 0, 1, 1, 48, 4,144, 0, 1,
- 1,128, 4,132, 0, 1, 1,220, 5, 64, 0, 1, 1,216, 5, 92, 0, 1, 1, 32, 4,224, 0, 1, 1, 24, 4,220, 0, 1, 2, 12,
- 4,172, 0, 1, 2, 4, 4,184, 0, 1, 2, 8, 5, 84, 0, 1, 2, 20, 5, 96, 0, 1, 2, 64, 3, 20, 0, 1, 1,180, 3, 16,
- 0, 1, 1,148, 4, 76, 0, 1, 1, 56, 4,136, 0, 1, 2, 52, 4, 15, 0, 1, 1,206, 3,183, 0, 1, 2, 53, 3,222, 0, 1,
- 1,243, 3,197, 0, 1, 1, 24, 5, 68, 0, 1, 0,180, 5, 56, 0, 1, 1, 48, 5, 72, 0, 1, 1, 12, 5, 60, 0, 1, 1, 68,
- 3,140, 0, 1, 0,220, 3, 60, 0, 1, 1,200, 3,152, 0, 1, 1,120, 3,136, 0, 1, 1, 40, 4, 76, 0, 1, 0,208, 4, 88,
- 0, 1, 1, 36, 4, 84, 0, 1, 0,212, 4,116, 0, 1, 0,240, 6,216, 0, 1, 0,192, 6,220, 0, 1, 0,232, 6,220, 0, 1,
- 0,192, 6,228, 0, 1, 0,236, 6,244, 0, 1, 0,208, 6,228, 0, 1, 0,240, 6,232, 0, 1, 0,200, 6,224, 0, 1, 1,132,
- 5, 48, 0, 1, 1,168, 4, 84, 0, 1, 1,196, 5, 76, 0, 1, 2,104, 4,132, 0, 1, 1,132, 6, 48, 0, 1, 1,216, 5,112,
- 0, 1, 1,128, 6, 76, 0, 1, 2,104, 5, 60, 0, 1, 2,248, 5,112, 0, 1, 2,248, 4,248, 0, 1, 1,172, 5,184, 0, 1,
- 2,108, 5, 36, 0, 1, 2,100, 5,172, 0, 1, 2, 96, 4,212, 0, 1, 1, 48, 5,156, 0, 1, 2,104, 5, 56, 0, 1, 2, 60,
- 6, 8, 0, 1, 1,224, 6, 0, 0, 1, 1,247, 5,239, 0, 1, 2, 10, 6, 20, 0, 1, 2, 80, 6, 20, 0, 1, 1,200, 6, 16,
- 0, 1, 2, 76, 6,100, 0, 1, 2,104, 6,188, 0, 1, 2,140, 3,216, 0, 1, 2,120, 3,132, 0, 1, 2, 56, 3,132, 0, 1,
- 2, 84, 3,180, 0, 1, 1,228, 4,136, 0, 1, 1,135, 3, 82, 0, 1, 2, 32, 4,109, 0, 1, 2, 36, 4,118, 0, 1, 1,234,
- 3,136, 0, 1, 2, 50, 3,122, 0, 1, 1,175, 4, 96, 0, 1, 1,238, 3, 28, 0, 1, 2,131, 3, 77, 0, 1, 2, 59, 3, 41,
- 0, 1, 1,252, 3, 82, 0, 1, 1,166, 2, 68, 0, 1, 2, 5, 3,104, 0, 1, 1,112, 2, 95, 0, 1, 2, 41, 3, 73, 0, 1,
- 2, 32, 3, 82, 0, 2, 0, 13, 3,223, 3,223, 0, 0, 3,225, 3,226, 0, 1, 3,228, 4, 3, 0, 3, 4, 36, 4, 36, 0, 35,
- 4, 48, 4, 49, 0, 36, 4, 53, 4, 55, 0, 38, 4, 57, 4, 60, 0, 41, 10,151, 10,210, 0, 45, 10,213, 10,216, 0,105, 10,219,
- 10,222, 0,109, 10,238, 10,238, 0,113, 10,241, 10,244, 0,114, 10,247, 11, 98, 0,118, 0, 1, 0, 9, 4, 4, 4, 5, 4, 7,
- 4, 8, 4, 10, 4, 11, 4, 12, 4, 13, 4, 15, 0, 9, 0, 0, 0, 38, 0, 0, 0, 44, 0, 0, 0, 50, 0, 0, 0, 56, 0, 0,
- 0, 62, 0, 0, 0, 68, 0, 0, 0, 74, 0, 0, 0, 80, 0, 0, 0, 86, 0, 1, 2, 93, 4,106, 0, 1, 2, 93, 4,106, 0, 1,
- 2, 93, 4,106, 0, 1, 2, 93, 4,106, 0, 1, 2, 93, 4,106, 0, 1, 2, 98, 4,106, 0, 1, 2, 93, 4,106, 0, 1, 2, 93,
- 4,106, 0, 1, 2,104, 4,176, 0, 1, 8,126, 7,246, 0, 1, 8,132, 0, 12, 0,253, 1,252, 2, 2, 2, 8, 2, 14, 2, 20,
- 2, 26, 2, 32, 2, 38, 2, 44, 2, 50, 2, 56, 2, 62, 2, 68, 2, 74, 2, 80, 2, 86, 2, 92, 2, 98, 2,104, 2,110, 2,116,
- 2,122, 2,128, 2,134, 2,140, 2,146, 2,152, 2,158, 2,164, 2,170, 2,176, 2,182, 2,188, 2,194, 2,200, 2,206, 2,212,
- 2,218, 2,224, 2,230, 2,236, 2,242, 2,248, 2,254, 3, 4, 3, 10, 3, 16, 3, 22, 3, 28, 3, 34, 3, 40, 3, 46, 3, 52,
- 3, 58, 3, 64, 3, 70, 3, 76, 3, 82, 3, 88, 3, 94, 3,100, 3,106, 3,112, 3,118, 3,124, 3,130, 3,136, 3,142, 3,148,
- 3,154, 3,160, 3,166, 3,172, 3,178, 3,184, 3,190, 3,196, 3,202, 3,208, 3,214, 3,220, 3,226, 3,232, 3,238, 3,244,
- 3,250, 4, 0, 4, 6, 4, 12, 4, 18, 4, 24, 4, 30, 4, 36, 4, 42, 4, 48, 4, 54, 4, 60, 4, 66, 4, 72, 4, 78, 4, 84,
- 4, 90, 4, 96, 4,102, 4,108, 4,114, 4,120, 4,126, 4,132, 4,138, 4,144, 4,150, 4,156, 4,162, 4,168, 4,174, 4,180,
- 4,186, 4,192, 4,198, 4,204, 4,210, 4,216, 4,222, 4,228, 4,234, 4,240, 4,246, 4,252, 5, 2, 5, 8, 5, 14, 5, 20,
- 5, 26, 5, 32, 5, 38, 5, 44, 5, 50, 5, 56, 5, 62, 5, 68, 5, 74, 5, 80, 5, 86, 5, 92, 5, 98, 5,104, 5,110, 5,116,
- 5,122, 5,128, 5,134, 5,140, 5,146, 5,152, 5,158, 5,164, 5,170, 5,176, 5,182, 5,188, 5,194, 5,200, 5,206, 5,212,
- 5,218, 5,224, 5,230, 5,236, 5,242, 5,248, 5,254, 6, 4, 6, 10, 6, 16, 6, 22, 6, 28, 6, 34, 6, 40, 6, 46, 6, 52,
- 6, 58, 6, 64, 6, 70, 6, 76, 6, 82, 6, 88, 6, 94, 6,100, 6,106, 6,112, 6,118, 6,124, 6,130, 6,136, 6,142, 6,148,
- 6,154, 6,160, 6,166, 6,172, 6,178, 6,184, 6,190, 6,196, 6,202, 6,208, 6,214, 6,220, 6,226, 6,232, 6,238, 6,244,
- 6,250, 7, 0, 7, 6, 7, 12, 7, 18, 7, 24, 7, 30, 7, 36, 7, 42, 7, 48, 7, 54, 7, 60, 7, 66, 7, 72, 7, 78, 7, 84,
- 7, 90, 7, 96, 7,102, 7,108, 7,114, 7,120, 7,126, 7,132, 7,138, 7,144, 7,150, 7,156, 7,162, 7,168, 7,174, 7,180,
- 7,186, 7,192, 7,198, 7,204, 7,210, 7,216, 7,222, 7,228, 0, 1, 4, 68, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,179,
- 0, 0, 0, 1, 1,120, 0, 0, 0, 1, 2,122, 0, 0, 0, 1, 1, 79, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 3,226, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 4, 68, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 4, 28, 0, 0, 0, 1,
- 3,228, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 1, 42, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 4, 68, 0, 0, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 3,147, 0, 0, 0, 1, 4, 68, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 3,198, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,208, 0, 0, 0, 1,
- 2,104, 0, 0, 0, 1, 2,118, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104,254, 86, 0, 1, 3,190, 0, 0, 0, 1, 2,104,
- 0, 0, 0, 1, 1,185,254, 89, 0, 1, 4, 68, 0, 0, 0, 1, 3,120, 0, 0, 0, 1, 4, 27, 0, 0, 0, 1, 3,190, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 1, 26,254, 86, 0, 1, 3,194,254, 86, 0, 1, 1,198, 0, 0, 0, 1, 2,104, 0, 0, 0, 1,
- 3,120, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 3,115, 0, 0, 0, 1, 4, 68, 0, 0, 0, 1, 1, 26,
-254, 86, 0, 1, 2,104, 0, 0, 0, 1, 4, 68, 0, 0, 0, 1, 4, 68, 0, 0, 0, 1, 4, 68, 0, 0, 0, 1, 4, 68, 0, 0,
- 0, 1, 4, 68, 0, 0, 0, 1, 4, 68, 0, 0, 0, 1, 2,122, 0, 0, 0, 1, 2,122, 0, 0, 0, 1, 2,122, 0, 0, 0, 1,
- 2,122, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2, 54,
- 0, 0, 0, 1, 3,228, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 1, 52, 0, 0, 0, 1, 2, 54, 0, 0, 0, 1, 3,198, 0, 0, 0, 1, 3,198,
- 0, 0, 0, 1, 3,198, 0, 0, 0, 1, 3,198, 0, 0, 0, 1, 3,198, 0, 0, 0, 1, 3,198, 0, 0, 0, 1, 2,118, 0, 0,
- 0, 1, 2,118, 0, 0, 0, 1, 2,118, 0, 0, 0, 1, 2,118, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 3,190, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 1, 26,254, 86, 0, 1, 1, 26,254, 86, 0, 1,
- 1, 26,254, 86, 0, 1, 4, 68, 0, 0, 0, 1, 4, 68, 0, 0, 0, 1, 3,198, 0, 0, 0, 1, 2,179, 0, 0, 0, 1, 2,179,
- 0, 0, 0, 1, 2,208, 0, 0, 0, 1, 2,179, 0, 0, 0, 1, 2,208, 0, 0, 0, 1, 2,179, 0, 0, 0, 1, 2,208, 0, 0,
- 0, 1, 2, 54, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2, 54, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,122, 0, 0, 0, 1,
- 2,118, 0, 0, 0, 1, 2,122, 0, 0, 0, 1, 2,118, 0, 0, 0, 1, 2,122, 0, 0, 0, 1, 2,118, 0, 0, 0, 1, 2,122,
- 0, 0, 0, 1, 2,118, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 2,104,254, 86, 0, 1, 2,154, 0, 0, 0, 1, 2,104,254, 86,
- 0, 1, 2,154, 0, 0, 0, 1, 2,104,254, 86, 0, 1, 2,104,254, 86, 0, 1, 3,226, 0, 0, 0, 1, 3,190, 0, 0, 0, 1,
- 3,226, 0, 0, 0, 1, 3,190, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,154, 0, 0,
- 0, 1, 1,185,254, 89, 0, 1, 4, 68, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 3,120, 0, 0, 0, 1, 2,154, 0, 0, 0, 1,
- 3,120, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 3,120, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 3,120, 0, 0, 0, 1, 3,228,
- 0, 0, 0, 1, 3,190, 0, 0, 0, 1, 3,228, 0, 0, 0, 1, 3,190, 0, 0, 0, 1, 4, 57, 0, 0, 0, 1, 2,104,254, 86,
- 0, 1, 2,104,254, 86, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 4, 68, 0, 0, 0, 1, 1,198, 0, 0, 0, 1, 4, 68, 0, 0, 0, 1, 1,198,
- 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 3,120, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 3,120, 0, 0, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 3,147, 0, 0,
- 0, 1, 3,115, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 1, 26,254, 86, 0, 1, 2,104, 0, 0, 0, 1, 2,154, 0, 0, 0, 1,
- 2,104, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 2, 10, 0, 0, 0, 1, 2,179, 0, 0, 0, 1, 2,208, 0, 0, 0, 1, 2, 54, 0, 0, 0, 1,
- 2, 54, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104,254, 86, 0, 1, 2, 86, 0, 0, 0, 1, 2,104,
- 0, 0, 0, 1, 2,179, 0, 0, 0, 1, 1, 34,254, 86, 0, 1, 1,104,254, 86, 0, 1, 2,154, 0, 0, 0, 1, 2,104,254, 86,
- 0, 1, 3,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 4, 68, 0, 0, 0, 1, 4, 68, 0, 0, 0, 1,
- 3,120, 0, 0, 0, 1, 4, 8, 0, 0, 0, 1, 4, 28, 0, 0, 0, 1, 3,228, 0, 0, 0, 1, 3,190,254, 86, 0, 1, 2,104,
- 0, 0, 0, 1, 1,249, 0, 0, 0, 1, 1,255, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 4, 88,254, 86, 0, 1, 1,210, 0, 0,
- 0, 1, 1, 26,254, 86, 0, 1, 4,106,254,248, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 2,
- 0, 22, 0, 36, 0, 61, 0, 0, 0, 68, 0, 93, 0, 26, 0,130, 0,135, 0, 52, 0,138, 0,152, 0, 58, 0,154, 0,167, 0, 73,
- 0,170, 0,184, 0, 87, 0,186, 0,194, 0,102, 0,196, 0,197, 0,111, 0,200, 0,200, 0,113, 0,202, 0,217, 0,114, 0,220,
- 0,227, 0,130, 0,229, 0,239, 0,138, 0,242, 0,243, 0,149, 0,246, 0,247, 0,151, 0,250, 0,252, 0,153, 0,255, 1, 6,
- 0,156, 1, 9, 1, 19, 0,164, 1, 22, 1, 23, 0,175, 1, 26, 1, 31, 0,177, 1, 34, 1, 35, 0,183, 1, 38, 1, 51, 0,185,
- 1, 54, 1,107, 0,199, 0, 1, 0, 1, 2,163, 0, 1, 0, 0, 0, 6, 0, 1, 2,124, 0, 0, 0, 1, 20,168, 20, 38, 0, 2,
- 20,214, 0, 12, 1,127, 5,254, 6, 4, 6, 10, 6, 16, 6, 22, 6, 28, 6, 34, 6, 40, 6, 46, 6, 52, 6, 58, 6, 64, 6, 70,
- 6, 76, 6, 82, 6, 88, 6, 94, 6,100, 6,106, 6,112, 6,118, 6,124, 6,130, 6,136, 6,142, 6,148, 6,154, 6,160, 6,166,
- 6,172, 6,178, 6,184, 6,190, 6,196, 6,202, 6,208, 6,214, 6,220, 6,226, 6,232, 6,238, 6,244, 6,250, 7, 0, 7, 6,
- 7, 12, 7, 18, 7, 24, 7, 30, 7, 36, 7, 42, 7, 48, 7, 54, 7, 60, 7, 66, 7, 72, 7, 78, 7, 84, 7, 90, 7, 96, 7,102,
- 7,108, 7,114, 7,120, 7,126, 7,132, 7,138, 7,144, 0, 0, 7,150, 0, 0, 7,156, 7,162, 7,168, 7,174, 7,180, 7,186,
- 7,192, 7,198, 7,204, 7,210, 7,216, 7,222, 7,228, 7,234, 7,240, 7,246, 7,252, 8, 2, 8, 8, 8, 14, 8, 20, 8, 26,
- 8, 32, 8, 38, 8, 44, 8, 50, 8, 56, 8, 62, 8, 68, 8, 74, 8, 80, 8, 86, 8, 92, 0, 0, 8, 98, 0, 0, 8,104, 0, 0,
- 8,110, 0, 0, 8,116, 0, 0, 8,122, 0, 0, 8,128, 8,134, 8,140, 8,146, 0, 0, 0, 0, 8,152, 0, 0, 8,158, 0, 0,
- 8,164, 0, 0, 8,170, 0, 0, 8,176, 0, 0, 8,182, 0, 0, 8,188, 0, 0, 8,194, 8,200, 8,206, 0, 0, 8,212, 0, 0,
- 8,218, 0, 0, 8,224, 0, 0, 8,230, 0, 0, 8,236, 0, 0, 8,242, 8,248, 8,254, 0, 0, 9, 4, 0, 0, 9, 10, 0, 0,
- 9, 16, 0, 0, 9, 22, 0, 0, 9, 28, 9, 34, 9, 40, 9, 46, 9, 52, 0, 0, 9, 58, 0, 0, 9, 64, 0, 0, 9, 70, 0, 0,
- 9, 76, 0, 0, 9, 82, 0, 0, 9, 88, 9, 94, 9,100, 9,106, 0, 0, 0, 0, 9,112, 0, 0, 9,118, 0, 0, 9,124, 0, 0,
- 9,130, 0, 0, 9,136, 0, 0, 9,142, 0, 0, 9,148, 0, 0, 9,154, 0, 0, 9,160, 0, 0, 9,166, 0, 0, 9,172, 0, 0,
- 9,178, 0, 0, 9,184, 0, 0, 9,190, 0, 0, 9,196, 9,202, 9,208, 0, 0, 9,214, 0, 0, 9,220, 0, 0, 9,226, 0, 0,
- 9,232, 0, 0, 9,238, 9,244, 9,250, 0, 0, 10, 0, 0, 0, 10, 6, 0, 0, 10, 12, 0, 0, 10, 18, 10, 24, 0, 0, 10, 30,
- 0, 0, 0, 0, 10, 36, 0, 0, 10, 42, 0, 0, 10, 48, 0, 0, 10, 54, 0, 0, 10, 60, 0, 0, 10, 66, 0, 0, 10, 72, 0, 0,
- 10, 78, 0, 0, 10, 84, 10, 90, 10, 96, 10,102, 10,108, 0, 0, 10,114, 0, 0, 10,120, 0, 0, 10,126, 0, 0, 10,132, 0, 0,
- 10,138, 0, 0, 10,144, 10,150, 0, 0, 10,156, 0, 0, 0, 0, 10,162, 0, 0, 10,168, 0, 0, 10,174, 0, 0, 10,180, 0, 0,
- 10,186, 0, 0, 10,192, 0, 0, 10,198, 0, 0, 10,204, 10,210, 0, 0, 0, 0, 10,216, 0, 0, 10,222, 0, 0, 10,228, 10,234,
- 10,240, 10,246, 10,252, 0, 0, 11, 2, 0, 0, 11, 8, 0, 0, 11, 14, 0, 0, 11, 20, 0, 0, 11, 26, 0, 0, 11, 32, 11, 38,
- 0, 0, 0, 0, 11, 44, 11, 50, 11, 56, 0, 0, 11, 62, 0, 0, 11, 68, 11, 74, 0, 0, 11, 80, 0, 0, 11, 86, 11, 92, 0, 0,
- 11, 98, 0, 0, 11,104, 11,110, 0, 0, 11,116, 0, 0, 0, 0, 11,122, 0, 0, 11,128, 11,134, 11,140, 11,146, 11,152, 11,158,
- 11,164, 11,170, 11,176, 0, 0, 11,182, 0, 0, 11,188, 11,194, 0, 0, 11,200, 0, 0, 0, 0, 11,206, 0, 0, 11,212, 0, 0,
- 11,218, 11,224, 11,230, 11,236, 11,242, 0, 0, 11,248, 0, 0, 11,254, 0, 0, 12, 4, 0, 0, 12, 10, 0, 0, 12, 16, 0, 0,
- 12, 22, 12, 28, 12, 34, 12, 40, 12, 46, 0, 0, 12, 52, 0, 0, 12, 58, 12, 64, 0, 0, 12, 70, 0, 0, 0, 0, 12, 76, 12, 82,
- 12, 88, 0, 0, 12, 94, 0, 0, 12,100, 0, 0, 12,106, 0, 0, 12,112, 12,118, 0, 0, 12,124, 0, 0, 0, 0, 12,130, 0, 0,
- 12,136, 12,142, 0, 0, 12,148, 0, 0, 0, 0, 12,154, 0, 0, 12,160, 12,166, 12,172, 12,178, 12,184, 0, 0, 12,190, 0, 0,
- 12,196, 0, 0, 12,202, 0, 0, 12,208, 0, 0, 12,214, 0, 0, 12,220, 0, 0, 12,226, 0, 0, 12,232, 0, 0, 12,238, 0, 0,
- 12,244, 12,250, 0, 0, 13, 0, 0, 0, 0, 0, 13, 6, 0, 0, 13, 12, 0, 0, 13, 18, 0, 0, 13, 24, 0, 0, 13, 30, 0, 0,
- 13, 36, 0, 0, 13, 42, 0, 0, 13, 48, 0, 0, 13, 54, 0, 0, 13, 60, 0, 0, 13, 66, 13, 72, 13, 78, 13, 84, 13, 90, 13, 96,
- 13,102, 13,108, 13,114, 13,120, 13,126, 13,132, 13,138, 13,144, 13,150, 13,156, 13,162, 13,168, 13,174, 13,180, 13,186, 13,192,
- 13,198, 13,204, 13,210, 13,216, 13,222, 13,228, 13,234, 13,240, 13,246, 13,252, 14, 2, 14, 8, 14, 14, 14, 20, 14, 26, 14, 32,
- 14, 38, 14, 44, 14, 50, 14, 56, 14, 62, 14, 68, 14, 74, 14, 80, 14, 86, 14, 92, 14, 98, 14,104, 14,110, 14,116, 14,122, 14,128,
- 14,134, 14,140, 14,146, 14,152, 14,158, 14,164, 14,170, 14,176, 14,182, 14,188, 14,194, 14,200, 14,206, 14,212, 14,218, 14,224,
- 14,230, 14,236, 14,242, 14,248, 14,254, 15, 4, 15, 10, 15, 16, 15, 22, 15, 28, 15, 34, 15, 40, 15, 46, 15, 52, 15, 58, 15, 64,
- 15, 70, 15, 76, 15, 82, 15, 88, 15, 94, 15,100, 15,106, 15,112, 15,118, 15,124, 15,130, 15,136, 15,142, 15,148, 15,154, 15,160,
- 15,166, 15,172, 15,178, 15,184, 15,190, 15,196, 15,202, 15,208, 15,214, 15,220, 15,226, 15,232, 15,238, 15,244, 15,250, 16, 0,
- 16, 6, 16, 12, 16, 18, 16, 24, 16, 30, 16, 36, 16, 42, 16, 48, 16, 54, 16, 60, 16, 66, 16, 72, 16, 78, 16, 84, 16, 90, 16, 96,
- 16,102, 16,108, 16,114, 16,120, 16,126, 16,132, 16,138, 16,144, 16,150, 16,156, 16,162, 16,168, 16,174, 16,180, 16,186, 16,192,
- 16,198, 16,204, 16,210, 16,216, 16,222, 16,228, 16,234, 16,240, 16,246, 16,252, 17, 2, 17, 8, 17, 14, 17, 20, 17, 26, 17, 32,
- 17, 38, 17, 44, 17, 50, 17, 56, 17, 62, 17, 68, 17, 74, 17, 80, 17, 86, 17, 92, 17, 98, 17,104, 17,110, 17,116, 17,122, 17,128,
- 17,134, 17,140, 17,146, 17,152, 17,158, 17,164, 17,170, 17,176, 17,182, 17,188, 17,194, 17,200, 17,206, 17,212, 17,218, 17,224,
- 17,230, 17,236, 17,242, 17,248, 17,254, 18, 4, 18, 10, 18, 16, 18, 22, 18, 28, 18, 34, 18, 40, 18, 46, 18, 52, 18, 58, 18, 64,
- 18, 70, 18, 76, 18, 82, 18, 88, 18, 94, 18,100, 18,106, 18,112, 18,118, 18,124, 18,130, 18,136, 18,142, 18,148, 18,154, 18,160,
- 18,166, 18,172, 18,178, 18,184, 18,190, 18,196, 18,202, 18,208, 18,214, 18,220, 18,226, 18,232, 18,238, 18,244, 18,250, 19, 0,
- 19, 6, 19, 12, 19, 18, 19, 24, 19, 30, 19, 36, 19, 42, 19, 48, 19, 54, 19, 60, 19, 66, 19, 72, 19, 78, 19, 84, 19, 90, 19, 96,
- 19,102, 19,108, 19,114, 19,120, 19,126, 19,132, 19,138, 19,144, 19,150, 19,156, 19,162, 19,168, 19,174, 19,180, 19,186, 19,192,
- 19,198, 19,204, 19,210, 19,216, 19,222, 19,228, 19,234, 19,240, 19,246, 19,252, 20, 2, 20, 8, 0, 0, 0, 0, 20, 14, 20, 20,
- 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,179, 5,213,
- 0, 1, 2,179, 0, 0, 0, 1, 2, 54, 5,213, 0, 1, 2, 54, 0, 0, 0, 1, 2,122, 5,213, 0, 1, 2,122, 0, 0, 0, 1,
- 2,158, 5,213, 0, 1, 2,158, 0, 0, 0, 1, 2,154, 5,213, 0, 1, 2,154, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,154, 5,213, 0, 1, 2,154, 0, 0, 0, 1, 2,104, 5,213,
- 0, 1, 2,104, 0, 0, 0, 1, 2,154, 5,213, 0, 1, 2,154, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1,
- 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2, 54, 5,213, 0, 1, 2, 54, 0, 0, 0, 1, 2,104, 5,213,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1,
- 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,154, 5,213, 0, 1, 2,154, 0, 0, 0, 1, 2,104, 4, 96,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 6, 20, 0, 1, 2,104, 0, 0, 0, 1, 2,179, 4, 96, 0, 1, 2,179, 0, 0, 0, 1,
- 2,104, 6, 20, 0, 1, 2,104, 0, 0, 0, 1, 2,118, 4, 96, 0, 1, 2,118, 0, 0, 0, 1, 2,104, 6, 20, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,104, 6, 20, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104,254, 86, 0, 1, 2,154, 6, 20, 0, 1, 2,154, 0, 0, 0, 1, 2, 50, 6, 20, 0, 1, 2, 50, 0, 0, 0, 1,
- 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,104, 4, 96,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 6, 20, 0, 1, 2,104, 0, 0, 0, 1,
- 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,104, 4, 96,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,122, 5,213, 0, 1, 2,122, 0, 0, 0, 1, 2,179, 5,213, 0, 1, 2,122,
- 0, 0, 0, 1, 2,122, 0, 0, 0, 1, 2,122, 0, 0, 0, 1, 2,122, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2, 54, 5,213, 0, 1, 2, 54, 0, 0, 0, 1, 2,104, 0, 0, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
- 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 2, 54, 5,213, 0, 1, 2, 54, 0, 0, 0, 1, 2, 54, 5,213, 0, 1, 2, 54, 0, 0, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,179, 4, 96, 0, 1, 2,118, 0, 0, 0, 1, 2,118, 0, 0,
- 0, 1, 2,118, 0, 0, 0, 1, 2,118, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104,254, 86, 0, 1, 2,104, 6, 20, 0, 1,
- 2,104,254, 86, 0, 1, 2,104,254, 86, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
- 5,213, 0, 1, 2,104, 4, 96, 0, 1, 2,179, 0, 0, 0, 1, 2,179, 0, 0, 0, 1, 2,179, 0, 0, 0, 1, 2,179, 0, 0,
- 0, 1, 2,179, 0, 0, 0, 1, 2,179, 0, 0, 0, 1, 2,179, 0, 0, 0, 1, 2, 54, 0, 0, 0, 1, 2,104, 0, 0, 0, 1,
- 2, 54, 5,213, 0, 1, 2, 54, 0, 0, 0, 1, 2,104, 6, 20, 0, 1, 2,104, 0, 0, 0, 1, 2,122, 0, 0, 0, 1, 2,118,
- 0, 0, 0, 1, 2,122, 0, 0, 0, 1, 2,118, 0, 0, 0, 1, 2,122, 0, 0, 0, 1, 2,118, 0, 0, 0, 1, 2,122, 5,213,
- 0, 1, 2,118, 4, 96, 0, 1, 2,122, 0, 0, 0, 1, 2,118, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 2,104,254, 86, 0, 1,
- 2,154, 0, 0, 0, 1, 2,104,254, 86, 0, 1, 2,154, 0, 0, 0, 1, 2,104,254, 86, 0, 1, 2,154, 5,213, 0, 1, 2,104,
-254, 86, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 6, 20,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104,
- 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 2,104,254, 86, 0, 1, 2,104, 5,213, 0, 1, 2,154, 6, 20, 0, 1, 2,154, 4, 96,
- 0, 1, 2,154, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 2, 50, 0, 0, 0, 1, 2,154, 5,213, 0, 1, 2, 50, 6, 20, 0, 1,
- 2,154, 0, 0, 0, 1, 2, 50, 0, 0, 0, 1, 2,154, 5,213, 0, 1, 2,154, 0, 0, 0, 1, 2, 50, 6, 20, 0, 1, 2, 50,
- 0, 0, 0, 1, 2,154, 5,213, 0, 1, 2,154, 0, 0, 0, 1, 2, 50, 6, 20, 0, 1, 2, 50, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1,
- 2,227, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104,254, 86, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2, 54, 0, 0, 0, 1,
- 2,104, 0, 0, 0, 1, 2, 54, 5,213, 0, 1, 2,104, 4, 96, 0, 1, 2, 54, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213,
- 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 6, 20, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 6, 20, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1,
- 2,104, 5,213, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
-254, 86, 0, 1, 2,104, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,154, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,154, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 6, 20, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 6, 20, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
- 6, 20, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 6, 20, 0, 1, 2,104, 0, 0,
- 0, 1, 2, 10, 5,213, 0, 1, 2, 10, 0, 0, 0, 1, 2,179, 5,213, 0, 1, 2,179, 0, 0, 0, 1, 2,179, 4, 96, 0, 1,
- 2,179, 0, 0, 0, 1, 2, 54, 5,213, 0, 1, 2, 54, 0, 0, 0, 1, 2, 54, 5,213, 0, 1, 2, 54, 0, 0, 0, 1, 2,104,
- 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 6, 20, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86,
- 0, 1, 2, 86, 5,213, 0, 1, 2, 86, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,179, 5,213, 0, 1,
- 2,179, 0, 0, 0, 1, 3, 2, 5,213, 0, 1, 3, 2,254, 86, 0, 1, 2,104, 6, 20, 0, 1, 2,104,254, 86, 0, 1, 2,154,
- 5,213, 0, 1, 2,154, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104,254, 86, 0, 1, 2,104, 6, 20, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1,
- 2,104, 0, 0, 0, 1, 2,154, 6, 20, 0, 1, 2,154, 0, 0, 0, 1, 2, 50, 6, 20, 0, 1, 2, 50, 0, 0, 0, 1, 2,104,
- 6, 20, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104,254, 86,
- 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 1,249, 5,213, 0, 1,
- 1,249, 0, 0, 0, 1, 1,255, 4, 96, 0, 1, 1,255, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
- 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,236, 5,213, 0, 1, 2,236, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86,
- 0, 1, 2, 54, 5,213, 0, 1, 2, 54,254, 86, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 5,213, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
- 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,140, 6, 20, 0, 1, 2,140, 0, 0, 0, 1, 2, 41, 4, 96, 0, 1,
- 2, 41, 0, 0, 0, 1, 2,179, 4, 96, 0, 1, 2,179, 0, 0, 0, 1, 2, 89, 6, 20, 0, 1, 2, 89, 0, 0, 0, 1, 2,104,
- 6, 20, 0, 1, 2,104, 0, 0, 0, 1, 2,118, 4, 96, 0, 1, 2,118, 0, 0, 0, 1, 2,118, 4, 96, 0, 1, 2,118, 0, 0,
- 0, 1, 1,154, 4, 96, 0, 1, 1,154, 0, 0, 0, 1, 2,118, 4, 96, 0, 1, 2,118, 0, 0, 0, 1, 2, 90, 4, 96, 0, 1,
- 2, 90, 0, 0, 0, 1, 1,114, 4, 96, 0, 1, 1,114, 0, 0, 0, 1, 2,118, 4, 96, 0, 1, 2,118, 0, 0, 0, 1, 2,177,
- 4, 96, 0, 1, 2,177,254, 86, 0, 1, 2, 62, 6, 20, 0, 1, 2, 62,254, 86, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86,
- 0, 1, 2,149, 4, 96, 0, 1, 2,149, 0, 0, 0, 1, 2,110, 4, 96, 0, 1, 2,110,254, 86, 0, 1, 2,104, 4, 96, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,111, 6, 20, 0, 1, 2,111, 0, 0, 0, 1, 2,111,
- 6, 20, 0, 1, 2,111,254, 86, 0, 1, 2, 68, 4, 96, 0, 1, 2, 68, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0,
- 0, 1, 2, 56, 6, 20, 0, 1, 2, 56, 0, 0, 0, 1, 2, 80, 6, 20, 0, 1, 2, 80, 0, 0, 0, 1, 2, 62, 6, 20, 0, 1,
- 2, 62,254, 86, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,104,
- 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,182, 4, 96, 0, 1, 2,182,254, 86, 0, 1, 1,252, 4,102, 0, 1, 2, 38,254, 86,
- 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 6, 20, 0, 1, 2,104,254, 86, 0, 1, 2,104,
- 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 6, 20, 0, 1, 2,104, 0, 0, 0, 1, 2, 54, 4, 96, 0, 1, 2, 54,254, 86,
- 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2, 99, 4, 96, 0, 1,
- 2, 99, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2, 0, 4, 96, 0, 1, 2, 0, 0, 0, 0, 1, 2, 0,
- 4, 96, 0, 1, 2, 0, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,115, 6, 20, 0, 1, 2,115,254, 86,
- 0, 1, 2,115, 6, 20, 0, 1, 2,115,254, 86, 0, 1, 2,120, 4, 96, 0, 1, 2,120,254, 86, 0, 1, 2,115, 6, 20, 0, 1,
- 2,115,254, 86, 0, 1, 2,164, 4, 96, 0, 1, 2,164,254, 86, 0, 1, 2,104, 6, 20, 0, 1, 2,104,254, 86, 0, 1, 2,104,
- 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 6, 20, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2, 28, 4, 96, 0, 1, 2, 28,254, 86, 0, 1, 2,104,
- 4, 96, 0, 1, 2,104,255,142, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86,
- 0, 1, 2, 36, 6, 20, 0, 1, 2, 36, 0, 0, 0, 1, 2,170, 6, 20, 0, 1, 2,170, 0, 0, 0, 1, 2, 36, 6, 20, 0, 1,
- 2, 36, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2, 32, 4, 96, 0, 1, 2, 32, 0, 0, 0, 1, 2, 62,
- 4, 96, 0, 1, 2, 62, 0, 0, 0, 1, 2, 26, 6, 20, 0, 1, 2, 26, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 4, 96, 0, 1, 2,104,254, 86, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 6, 20, 0, 1,
- 2,104,254, 86, 0, 1, 2, 36, 6, 20, 0, 1, 2, 36, 0, 0, 0, 1, 2,170, 6, 20, 0, 1, 2,170, 0, 0, 0, 1, 2,104,
- 5,224, 0, 1, 2,104, 2,156, 0, 1, 2, 82, 5,224, 0, 1, 2, 82, 2,156, 0, 1, 2, 69, 5,224, 0, 1, 2, 69, 2,156,
- 0, 1, 2, 94, 5,224, 0, 1, 2, 94, 2,156, 0, 1, 2,114, 5,224, 0, 1, 2,114, 2,156, 0, 1, 2,144, 5,224, 0, 1,
- 2,144, 2,156, 0, 1, 2,104, 5,224, 0, 1, 2,104, 2,156, 0, 1, 2,104, 5,224, 0, 1, 2,104, 2,156, 0, 1, 2,188,
- 5,224, 0, 1, 2,188, 2,156, 0, 1, 2, 63, 5,224, 0, 1, 2, 63, 2,156, 0, 1, 2, 97, 5,224, 0, 1, 2, 97, 2,156,
- 0, 1, 2,105, 5,224, 0, 1, 2,105, 2,156, 0, 1, 2,104, 5,224, 0, 1, 2,104, 2,156, 0, 1, 2,104, 5,224, 0, 1,
- 2,104, 2,156, 0, 1, 2,104, 5,224, 0, 1, 2,104, 2,156, 0, 1, 2, 71, 5,224, 0, 1, 2, 71, 2,156, 0, 1, 2, 27,
- 5,224, 0, 1, 2, 27, 2,156, 0, 1, 2,104, 5,224, 0, 1, 2,104, 2,156, 0, 1, 2,104, 5,224, 0, 1, 2,104, 2,156,
- 0, 1, 2,104, 5,224, 0, 1, 2,104, 2,156, 0, 1, 2, 54, 5,213, 0, 1, 2, 92, 2,156, 0, 1, 2,104, 5,213, 0, 2,
- 0, 21, 0, 36, 0, 61, 0, 0, 0, 68, 0, 93, 0, 26, 0,130, 0,152, 0, 52, 0,154, 0,184, 0, 75, 0,186, 0,194, 0,106,
- 0,196, 0,200, 0,115, 0,202, 0,240, 0,120, 0,242, 0,243, 0,159, 0,246, 1,107, 0,161, 1,205, 1,205, 1, 23, 1,226,
- 1,226, 1, 24, 1,238, 2, 5, 1, 25, 2, 7, 2, 11, 1, 49, 2, 13, 2, 52, 1, 54, 2, 54, 2, 58, 1, 94, 2, 60, 2, 64,
- 1, 99, 4,172, 4,172, 1,104, 4,174, 4,192, 1,105, 5, 22, 5, 22, 1,124, 6,169, 6,169, 1,125, 11,209, 11,209, 1,126,
- 0, 2, 0, 7, 2,124, 2,141, 0, 0, 2,143, 2,149, 0, 18, 2,152, 2,156, 0, 25, 2,159, 2,162, 0, 30, 2,165, 2,173,
- 0, 34, 2,181, 2,186, 0, 43, 2,188, 2,188, 0, 49, 0, 50, 0, 0, 0,202, 0, 0, 0,208, 0, 0, 0,214, 0, 0, 0,220,
- 0, 0, 0,226, 0, 0, 0,232, 0, 0, 0,238, 0, 0, 0,244, 0, 0, 0,250, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0, 1, 12,
- 0, 0, 1, 18, 0, 0, 1, 24, 0, 0, 1, 30, 0, 0, 1, 36, 0, 0, 1, 42, 0, 0, 1, 48, 0, 0, 1, 54, 0, 0, 1, 60,
- 0, 0, 1, 66, 0, 1, 1, 72, 0, 1, 1, 78, 0, 1, 1, 84, 0, 1, 1, 90, 0, 1, 1, 96, 0, 1, 1,102, 0, 1, 1,108,
- 0, 1, 1,114, 0, 1, 1,120, 0, 1, 1,126, 0, 1, 1,132, 0, 1, 1,138, 0, 1, 1,144, 0, 1, 1,150, 0, 1, 1,156,
- 0, 1, 1,162, 0, 1, 1,168, 0, 1, 1,174, 0, 1, 1,180, 0, 1, 1,186, 0, 1, 1,192, 0, 1, 1,198, 0, 1, 1,204,
- 0, 1, 1,210, 0, 1, 1,216, 0, 1, 1,222, 0, 0, 1,228, 0, 0, 1,234, 0, 0, 1,240, 0, 1, 2,104, 4, 96, 0, 1,
- 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104,
- 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96,
- 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1,
- 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1,
- 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104,
- 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0,
- 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 0, 0, 0, 1, 2,104, 4, 96, 0, 1, 2,104, 4, 96, 0, 1,
- 2,104, 4, 96, 0, 1, 0, 8, 0, 4,251, 47, 0, 2, 0, 6, 2,124, 2,141, 0, 0, 2,143, 2,149, 0, 18, 2,152, 2,156,
- 0, 25, 2,159, 2,173, 0, 30, 2,181, 2,186, 0, 45, 2,188, 2,188, 0, 51, 0, 1, 1,200, 1,190, 0, 2, 1,216, 0, 12,
- 0, 27, 0,110, 0,116, 0,122, 0,128, 0,134, 0,140, 0,146, 0,152, 0,158, 0,164, 0,170, 0,176, 0,182, 0,188, 0,194,
- 0,200, 0,206, 0,212, 0,218, 0,224, 0,230, 0,236, 0,242, 0,248, 0,254, 1, 4, 1, 10, 1, 16, 1, 22, 1, 28, 1, 34,
- 1, 40, 1, 46, 1, 52, 1, 58, 1, 64, 1, 70, 1, 76, 1, 82, 1, 88, 1, 94, 1,100, 1,106, 1,112, 1,118, 1,124, 1,130,
- 1,136, 1,142, 1,148, 1,154, 1,160, 1,166, 1,172, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0,
- 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1, 4,209,254, 20, 0, 1, 4,209, 4,160, 0, 1,
- 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1, 4,209,254, 20, 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,209,
- 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1, 4,209,254, 20,
- 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1,
- 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,210, 6, 16, 0, 1, 4,209, 0, 0, 0, 1, 4,209,
- 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,210, 6, 16, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0,
- 0, 1, 4,210, 6, 16, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 6, 16, 0, 1,
- 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,209,
- 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0,
- 0, 1, 4,209, 4,160, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 4,160, 0, 2, 0, 1, 4, 72, 4, 98, 0, 0, 0, 2, 0, 2,
- 4,101, 4,101, 0, 0, 4,104, 4,117, 0, 1, 0, 15, 0, 1, 0, 62, 0, 1, 0, 68, 0, 1, 0, 74, 0, 1, 0, 80, 0, 1,
- 0, 86, 0, 0, 0, 92, 0, 0, 0, 98, 0, 1, 0,104, 0, 0, 0,110, 0, 1, 0,116, 0, 1, 0,122, 0, 1, 0,128, 0, 1,
- 0,134, 0, 1, 0,140, 0, 1, 0,146, 0, 1,255,247, 4,116, 0, 1, 4,209, 4,119, 0, 1, 4,209, 4,119, 0, 1, 4,209,
- 4,119, 0, 1, 4,209, 4,119, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 0, 0, 0, 1, 4,209, 4,116, 0, 1, 4,209, 0, 0,
- 0, 1, 4,209, 4, 96, 0, 1, 4,209, 4,126, 0, 1, 4,209, 4,126, 0, 1, 4,209, 4, 96, 0, 1, 4,209, 4,126, 0, 1,
- 4,209, 4, 96, 0, 1, 0, 8, 0, 4,251, 47, 0, 2, 0, 2, 4,101, 4,101, 0, 0, 4,104, 4,117, 0, 1, 0, 1, 0, 0,
- 0, 10, 0,192, 1, 58, 0, 6, 97,114, 97, 98, 0, 38, 99,121,114,108, 0, 60,100,102,108,116, 0, 88,103,114,101,107, 0, 98,
-108, 97,111, 32, 0,110,108, 97,116,110, 0,120, 0, 4, 0, 0, 0, 0,255,255, 0, 6, 0, 2, 0, 3, 0, 4, 0, 5, 0, 8,
- 0, 9, 0, 10, 0, 1, 83, 82, 66, 32, 0, 18, 0, 0,255,255, 0, 1, 0, 0, 0, 0,255,255, 0, 2, 0, 0, 0, 6, 0, 4,
- 0, 0, 0, 0,255,255, 0, 0, 0, 4, 0, 0, 0, 0,255,255, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0,255,255, 0, 0, 0, 40,
- 0, 6, 73, 83, 77, 32, 0, 50, 75, 83, 77, 32, 0, 50, 76, 83, 77, 32, 0, 50, 78, 83, 77, 32, 0, 50, 83, 75, 83, 32, 0, 50,
- 83, 83, 77, 32, 0, 50, 0, 0,255,255, 0, 2, 0, 0, 0, 1, 0, 0,255,255, 0, 3, 0, 0, 0, 1, 0, 7, 0, 10, 99, 99,
-109,112, 0, 62,100,108,105,103, 0, 68,102,105,110, 97, 0, 74,105,110,105,116, 0, 80,105,115,111,108, 0, 86,108,105,103, 97,
- 0, 92,108,111, 99,108, 0, 98,108,111, 99,108, 0,104,109,101,100,105, 0,110,114,108,105,103, 0,116, 0, 0, 0, 1, 0, 1,
- 0, 0, 0, 1, 0, 9, 0, 0, 0, 1, 0, 4, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 3, 0, 0, 0, 1, 0, 8, 0, 0,
- 0, 1, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 1, 0, 7, 0, 11, 0, 24, 0, 32, 0, 40, 0, 48,
- 0, 56, 0, 64, 0, 72, 0, 80, 0, 88, 0, 96, 0,104, 0, 1, 0, 0, 0, 1, 0, 88, 0, 6, 0, 0, 0, 1, 0, 92, 0, 1,
- 0, 0, 0, 1, 0,228, 0, 1, 0, 9, 0, 1, 0,232, 0, 1, 0, 9, 0, 1, 0,236, 0, 1, 0, 9, 0, 1, 1,148, 0, 1,
- 0, 9, 0, 1, 2, 46, 0, 4, 0, 9, 0, 1, 2,200, 0, 4, 0, 9, 0, 1, 2,230, 0, 4, 0, 0, 0, 1, 3, 36, 0, 1,
- 0, 0, 0, 1, 3, 60, 0, 1, 0, 6, 10,197, 0, 1, 0, 1, 1, 12, 0, 2, 0, 20, 0, 28, 0, 36, 0, 36, 0, 4, 0, 0,
- 0, 88, 0, 0, 0, 0, 0, 1, 0, 2, 0, 76, 0, 77, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 8, 0, 76, 0, 77, 0, 1,
- 2,124, 2,145, 0, 2, 2,146, 2,149, 0, 3, 2,152, 2,156, 0, 3, 2,159, 2,175, 0, 3, 2,181, 2,184, 0, 3, 2,185,
- 2,188, 0, 2, 2,191, 2,191, 0, 2, 0, 3, 0, 8, 0, 22, 0, 38, 0, 0, 0, 1, 0, 1, 0, 2, 0, 1, 0, 0, 0, 10,
- 0, 0, 0, 1, 0, 2, 0, 3, 0, 2, 0, 1, 0, 0, 0, 10, 0, 0, 0, 1, 0, 3, 0, 3, 0, 3, 0, 2, 0, 1, 0, 0,
- 0, 10, 0, 1, 0, 6, 7, 54, 0, 1, 0, 1, 3, 94, 0, 1, 0, 6, 6,149, 0, 1, 0, 1, 4, 50, 0, 2, 0,112, 0, 53,
- 10,240, 10,242, 10,244, 10,246, 10,248, 10,252, 10,254, 11, 2, 11, 4, 11, 8, 11, 12, 11, 16, 11, 20, 11, 24, 11, 26, 11, 28,
- 11, 30, 11, 32, 11, 36, 11, 40, 11, 44, 11, 48, 11, 52, 11, 56, 11, 60, 11, 64, 11, 68, 11, 72, 11, 76, 11, 80, 11, 84, 11, 88,
- 11, 92, 11, 94, 11, 96, 10,172, 10,164, 10,152, 10,156, 10,168, 10,160, 10,188, 10,184, 10,192, 10,196, 10,202, 10,200, 10,176,
- 10,204, 10,208, 10,212, 10,214, 10,220, 0, 2, 0, 10, 3,224, 3,248, 0, 0, 3,250, 4, 3, 0, 25, 4, 33, 4, 35, 0, 35,
- 4, 38, 4, 40, 0, 38, 4, 43, 4, 44, 0, 41, 4, 46, 4, 48, 0, 43, 4, 50, 4, 50, 0, 46, 4, 52, 4, 54, 0, 47, 4, 56,
- 4, 57, 0, 50, 4, 59, 4, 59, 0, 52, 0, 2, 0, 82, 0, 38, 10,250, 11, 0, 11, 6, 11, 10, 11, 14, 11, 18, 11, 22, 11, 34,
- 11, 38, 11, 42, 11, 46, 11, 50, 11, 54, 11, 58, 11, 62, 11, 66, 11, 70, 11, 74, 11, 78, 11, 82, 11, 86, 11, 90, 11, 98, 10,174,
- 10,166, 10,154, 10,158, 10,170, 10,162, 10,190, 10,186, 10,194, 10,198, 10,178, 10,206, 10,210, 10,216, 10,222, 0, 1, 0, 38,
- 3,228, 3,230, 3,232, 3,233, 3,234, 3,235, 3,236, 3,241, 3,242, 3,243, 3,244, 3,245, 3,246, 3,247, 3,248, 3,250,
- 3,251, 3,252, 3,253, 3,254, 3,255, 4, 0, 4, 3, 4, 33, 4, 34, 4, 35, 4, 38, 4, 39, 4, 40, 4, 43, 4, 44, 4, 46,
- 4, 47, 4, 52, 4, 53, 4, 54, 4, 57, 4, 59, 0, 2, 0, 82, 0, 38, 10,249, 10,255, 11, 5, 11, 9, 11, 13, 11, 17, 11, 21,
- 11, 33, 11, 37, 11, 41, 11, 45, 11, 49, 11, 53, 11, 57, 11, 61, 11, 65, 11, 69, 11, 73, 11, 77, 11, 81, 11, 85, 11, 89, 11, 97,
- 10,173, 10,165, 10,153, 10,157, 10,169, 10,161, 10,189, 10,185, 10,193, 10,197, 10,177, 10,205, 10,209, 10,215, 10,221, 0, 1,
- 0, 38, 3,228, 3,230, 3,232, 3,233, 3,234, 3,235, 3,236, 3,241, 3,242, 3,243, 3,244, 3,245, 3,246, 3,247, 3,248,
- 3,250, 3,251, 3,252, 3,253, 3,254, 3,255, 4, 0, 4, 3, 4, 33, 4, 34, 4, 35, 4, 38, 4, 39, 4, 40, 4, 43, 4, 44,
- 4, 46, 4, 47, 4, 52, 4, 53, 4, 54, 4, 57, 4, 59, 0, 1, 0, 30, 0, 2, 0, 10, 0, 20, 0, 1, 0, 4, 11,105, 0, 2,
- 10,252, 0, 1, 0, 4, 11,106, 0, 2, 10,252, 0, 1, 0, 2, 11, 77, 11, 78, 0, 1, 0, 62, 0, 2, 0, 10, 0, 36, 0, 3,
- 0, 8, 0, 14, 0, 20, 11,103, 0, 2, 10,246, 11,101, 0, 2, 10,242, 11, 99, 0, 2, 10,240, 0, 3, 0, 8, 0, 14, 0, 20,
- 11,104, 0, 2, 10,246, 11,102, 0, 2, 10,242, 11,100, 0, 2, 10,240, 0, 1, 0, 2, 11, 77, 11, 78, 0, 1, 0, 26, 0, 1,
- 0, 8, 0, 2, 0, 6, 0, 12, 10,150, 0, 2, 0, 79, 10,149, 0, 2, 0, 76, 0, 1, 0, 1, 0, 73, 0, 2, 0, 10, 0, 2,
- 0,243, 1,226, 0, 1, 0, 2, 0, 76, 0, 77, 0, 1, 4,209, 1,144, 0, 5, 0, 0, 5, 51, 5,153, 0, 0, 1, 30, 5, 51,
- 5,153, 0, 0, 3,215, 0,102, 2, 18, 0, 0, 2, 11, 6, 9, 3, 8, 4, 2, 2, 4,230, 0, 34,255,210, 0,249,251, 2, 0,
- 0, 40, 0, 0, 0, 0, 80,102, 69,100, 0, 64, 0, 32,255,255, 6, 20,254, 20, 1,154, 7,109, 1,227, 96, 0, 0,223,255,223,
- 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 44, 0, 0, 0, 4, 0, 0, 7,156, 0, 1, 0, 0, 0, 0, 18,188,
- 0, 3, 0, 1, 0, 0, 0, 44, 0, 3, 0, 10, 0, 0, 7,156, 0, 4, 7,112, 0, 0, 1,216, 1, 0, 0, 7, 0,216, 0, 0,
- 0,126, 1,185, 1,190, 1,195, 1,227, 1,240, 1,246, 1,249, 2, 27, 2, 33, 2, 65, 2, 69, 2,185, 2,193, 2,201, 2,205,
- 2,211, 2,214, 2,222, 2,233, 2,243, 3, 63, 3, 67, 3, 88, 3, 97, 3,117, 3,122, 3,126, 3,138, 3,140, 3,161, 3,206,
- 3,225, 4, 95, 4,155, 4,163, 4,179, 4,187, 4,196, 4,200, 4,204, 4,249, 6, 12, 6, 21, 6, 27, 6, 31, 6, 58, 6, 85,
- 6, 90, 6,111, 6,116, 6,135, 6,146, 6,152, 6,161, 6,164, 6,169, 6,175, 6,181, 6,186, 6,190, 6,198, 6,204, 6,206,
- 6,213, 6,249, 14,130, 14,132, 14,136, 14,138, 14,141, 14,151, 14,159, 14,163, 14,165, 14,167, 14,171, 14,185, 14,188, 14,205,
- 16,252, 29, 2, 29, 9, 29, 20, 29, 23, 29, 31, 29, 46, 29, 60, 29, 91, 29,101, 29,120, 29,123, 29,133, 29,183, 29,191, 30, 19,
- 30, 37, 30, 45, 30, 75, 30, 99, 30,119, 30,139, 30,143, 30,150, 30,155, 30,161, 30,177, 30,185, 30,189, 30,205, 30,229, 30,245,
- 30,249, 31, 21, 31, 29, 31, 69, 31, 77, 31, 87, 31, 89, 31, 91, 31, 93, 31,125, 31,180, 31,196, 31,211, 31,219, 31,239, 31,244,
- 31,254, 32, 10, 32, 21, 32, 35, 32, 38, 32, 49, 32, 58, 32, 62, 32, 73, 32, 95, 32,113, 32,142, 32,148, 32,166, 32,172, 32,177,
- 32,181, 33, 2, 33, 14, 33, 22, 33, 34, 33, 38, 33, 43, 33, 95, 33,255, 34, 2, 34, 13, 34, 15, 34, 19, 34, 21, 34, 26, 34, 32,
- 34, 45, 34, 61, 34,105, 34,139, 34,146, 34,161, 34,198, 34,205, 34,233, 34,239, 35, 6, 35, 21, 35, 25, 35, 33, 35, 40, 35, 43,
- 35, 53, 35, 62, 35, 68, 35, 73, 35, 77, 35, 80, 35, 84, 35, 92, 35, 96, 35,101, 35,105, 35,112, 35,122, 35,125, 35,131, 35,139,
- 35,149, 35,174, 35,207, 36, 35, 38, 47, 38,139, 38,156, 38,161, 38,177, 39, 4, 39, 9, 39, 39, 39, 75, 39, 77, 39, 82, 39, 86,
- 39, 94, 39,117, 39,148, 39,175, 39,190, 39,224, 39,233, 41,235, 41,251, 42, 47, 43, 26, 44,119, 46, 24, 46, 46,246,197,251, 2,
-251,129,251,149,251,159,251,173,251,233,251,255,254,116,254,252,254,255,255,253,255,255, 0, 0, 0, 0, 0, 32, 0,160, 1,187,
- 1,192, 1,205, 1,230, 1,244, 1,248, 1,252, 2, 30, 2, 36, 2, 69, 2, 80, 2,187, 2,198, 2,204, 2,208, 2,214, 2,216,
- 2,224, 2,243, 3, 0, 3, 67, 3, 88, 3, 97, 3,116, 3,122, 3,126, 3,132, 3,140, 3,142, 3,163, 3,208, 3,240, 4,144,
- 4,162, 4,170, 4,186, 4,192, 4,199, 4,203, 4,207, 6, 12, 6, 21, 6, 27, 6, 31, 6, 33, 6, 64, 6, 90, 6, 96, 6,116,
- 6,121, 6,145, 6,152, 6,161, 6,164, 6,169, 6,175, 6,181, 6,186, 6,190, 6,198, 6,204, 6,206, 6,213, 6,240, 14,129,
- 14,132, 14,135, 14,138, 14,141, 14,148, 14,153, 14,161, 14,165, 14,167, 14,170, 14,173, 14,187, 14,200, 16,208, 29, 2, 29, 8,
- 29, 20, 29, 22, 29, 29, 29, 44, 29, 48, 29, 62, 29, 98, 29,119, 29,123, 29,133, 29,155, 29,185, 30, 0, 30, 24, 30, 40, 30, 48,
- 30, 86, 30,104, 30,126, 30,142, 30,146, 30,155, 30,160, 30,176, 30,184, 30,188, 30,202, 30,228, 30,242, 30,248, 31, 0, 31, 24,
- 31, 32, 31, 72, 31, 80, 31, 89, 31, 91, 31, 93, 31, 95, 31,128, 31,182, 31,198, 31,214, 31,221, 31,242, 31,246, 32, 0, 32, 16,
- 32, 23, 32, 38, 32, 47, 32, 57, 32, 60, 32, 69, 32, 95, 32,112, 32,116, 32,144, 32,166, 32,172, 32,177, 32,180, 33, 2, 33, 14,
- 33, 22, 33, 34, 33, 38, 33, 42, 33, 83, 33,144, 34, 2, 34, 5, 34, 15, 34, 17, 34, 21, 34, 23, 34, 29, 34, 39, 34, 56, 34, 65,
- 34,109, 34,143, 34,149, 34,197, 34,205, 34,218, 34,239, 35, 0, 35, 8, 35, 24, 35, 28, 35, 37, 35, 43, 35, 53, 35, 55, 35, 65,
- 35, 71, 35, 75, 35, 80, 35, 82, 35, 87, 35, 94, 35, 99, 35,104, 35,107, 35,115, 35,125, 35,128, 35,136, 35,149, 35,155, 35,206,
- 36, 35, 37, 0, 38, 56, 38,144, 38,160, 38,176, 39, 1, 39, 6, 39, 12, 39, 41, 39, 77, 39, 79, 39, 86, 39, 88, 39, 97, 39,148,
- 39,152, 39,177, 39,224, 39,232, 41,235, 41,250, 42, 47, 43, 18, 44,117, 46, 24, 46, 46,246,197,251, 1,251, 82,251,138,251,158,
-251,170,251,232,251,252,254,112,254,118,254,255,255,249,255,255, 0, 0,255,227,255,194,255,193,255,192,255,183,255,181,255,178,
-255,177,255,175,255,173,255,171,255,168,255,158,255,157,255,153,255,151,255,149,255,147,255,146,255,145,255,136,255,124,255,121,
-255,101,255, 93,255, 75,255, 71,255, 68,255, 63,255, 62,255, 61,255, 60,255, 59,255, 45,254,253,254,247,254,241,254,235,254,231,
-254,229,254,227,254,225,253,207,253,199,253,194,253,191,253,190,253,185,253,181,253,176,253,172,253,168,253,159,253,154,253,146,
-253,144,253,140,253,135,253,130,253,126,253,123,253,116,253,111,253,110,253,104,253, 78,245,199,245,198,245,196,245,195,245,193,
-245,187,245,186,245,185,245,184,245,183,245,181,245,180,245,179,245,168,243,166,231,161,231,156,231,146,231,145,231,140,231,128,
-231,127,231,126,231,120,231,103,231,101,231, 92,231, 71,231, 70,231, 6,231, 2,231, 0,230,254,230,244,230,240,230,234,230,232,
-230,230,230,226,230,222,230,208,230,202,230,200,230,188,230,166,230,154,230,152,230,146,230,144,230,142,230,140,230,138,230,137,
-230,136,230,135,230,134,230,132,230,131,230,130,230,128,230,127,230,125,230,124,230,123,230,118,230,117,230,115,230,107,230,100,
-230, 99,230, 93,230, 72,230, 56,230, 54,230, 53,230, 36,230, 31,230, 27,230, 25,229,205,229,194,229,187,229,176,229,173,229,170,
-229,131,229, 83,229, 81,229, 79,229, 78,229, 77,229, 76,229, 75,229, 73,229, 67,229, 57,229, 54,229, 51,229, 48,229, 46,229, 11,
-229, 5,228,249,228,244,228,228,228,227,228,225,228,223,228,220,228,218,228,209,228,208,228,206,228,204,228,203,228,201,228,200,
-228,198,228,197,228,195,228,193,228,192,228,190,228,188,228,186,228,182,228,173,228,168,228,137,228, 54,227, 90,227, 82,227, 78,
-227, 75,227, 61,226,238,226,237,226,235,226,234,226,233,226,232,226,229,226,228,226,226,226,196,226,193,226,192,226,159,226,152,
-224,151,224,137,224, 86,223,116,222, 26,220,122,220,101, 19,207, 15,148, 15, 69, 15, 61, 15, 53, 15, 43, 14,241, 14,223, 12,111,
- 12,110, 12,108, 11,115, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 12, 0, 0, 0, 0, 11, 32, 0, 0, 0, 0, 0, 0, 0,236, 0, 0, 0, 32, 0, 0, 0,126, 0, 0, 0, 3, 0, 0, 0,160,
- 0, 0, 1,185, 0, 0, 0, 98, 0, 0, 1,187, 0, 0, 1,190, 0, 0, 1,124, 0, 0, 1,192, 0, 0, 1,195, 0, 0, 1,128,
- 0, 0, 1,205, 0, 0, 1,227, 0, 0, 1,132, 0, 0, 1,230, 0, 0, 1,240, 0, 0, 1,155, 0, 0, 1,244, 0, 0, 1,246,
- 0, 0, 1,166, 0, 0, 1,248, 0, 0, 1,249, 0, 0, 1,169, 0, 0, 1,252, 0, 0, 2, 27, 0, 0, 1,171, 0, 0, 2, 30,
- 0, 0, 2, 33, 0, 0, 1,203, 0, 0, 2, 36, 0, 0, 2, 65, 0, 0, 1,207, 0, 0, 2, 69, 0, 0, 2, 69, 0, 0, 1,237,
- 0, 0, 2, 80, 0, 0, 2,185, 0, 0, 1,238, 0, 0, 2,187, 0, 0, 2,193, 0, 0, 2, 88, 0, 0, 2,198, 0, 0, 2,201,
- 0, 0, 2, 95, 0, 0, 2,204, 0, 0, 2,205, 0, 0, 2, 99, 0, 0, 2,208, 0, 0, 2,211, 0, 0, 2,101, 0, 0, 2,214,
- 0, 0, 2,214, 0, 0, 2,105, 0, 0, 2,216, 0, 0, 2,222, 0, 0, 2,106, 0, 0, 2,224, 0, 0, 2,233, 0, 0, 2,113,
- 0, 0, 2,243, 0, 0, 2,243, 0, 0, 2,123, 0, 0, 3, 0, 0, 0, 3, 63, 0, 0, 2,124, 0, 0, 3, 67, 0, 0, 3, 67,
- 0, 0, 2,188, 0, 0, 3, 88, 0, 0, 3, 88, 0, 0, 2,189, 0, 0, 3, 97, 0, 0, 3, 97, 0, 0, 2,190, 0, 0, 3,116,
- 0, 0, 3,117, 0, 0, 2,191, 0, 0, 3,122, 0, 0, 3,122, 0, 0, 2,193, 0, 0, 3,126, 0, 0, 3,126, 0, 0, 2,194,
- 0, 0, 3,132, 0, 0, 3,138, 0, 0, 2,195, 0, 0, 3,140, 0, 0, 3,140, 0, 0, 2,202, 0, 0, 3,142, 0, 0, 3,161,
- 0, 0, 2,203, 0, 0, 3,163, 0, 0, 3,206, 0, 0, 2,223, 0, 0, 3,208, 0, 0, 3,225, 0, 0, 3, 11, 0, 0, 3,240,
- 0, 0, 4, 95, 0, 0, 3, 29, 0, 0, 4,144, 0, 0, 4,155, 0, 0, 3,141, 0, 0, 4,162, 0, 0, 4,163, 0, 0, 3,153,
- 0, 0, 4,170, 0, 0, 4,179, 0, 0, 3,155, 0, 0, 4,186, 0, 0, 4,187, 0, 0, 3,165, 0, 0, 4,192, 0, 0, 4,196,
- 0, 0, 3,167, 0, 0, 4,199, 0, 0, 4,200, 0, 0, 3,172, 0, 0, 4,203, 0, 0, 4,204, 0, 0, 3,174, 0, 0, 4,207,
- 0, 0, 4,249, 0, 0, 3,176, 0, 0, 6, 12, 0, 0, 6, 12, 0, 0, 3,219, 0, 0, 6, 21, 0, 0, 6, 21, 0, 0, 3,220,
- 0, 0, 6, 27, 0, 0, 6, 27, 0, 0, 3,221, 0, 0, 6, 31, 0, 0, 6, 31, 0, 0, 3,222, 0, 0, 6, 33, 0, 0, 6, 58,
- 0, 0, 3,223, 0, 0, 6, 64, 0, 0, 6, 85, 0, 0, 3,249, 0, 0, 6, 90, 0, 0, 6, 90, 0, 0, 4, 15, 0, 0, 6, 96,
- 0, 0, 6,111, 0, 0, 4, 16, 0, 0, 6,116, 0, 0, 6,116, 0, 0, 4, 32, 0, 0, 6,121, 0, 0, 6,135, 0, 0, 4, 33,
- 0, 0, 6,145, 0, 0, 6,146, 0, 0, 4, 48, 0, 0, 6,152, 0, 0, 6,152, 0, 0, 4, 50, 0, 0, 6,161, 0, 0, 6,161,
- 0, 0, 4, 51, 0, 0, 6,164, 0, 0, 6,164, 0, 0, 4, 52, 0, 0, 6,169, 0, 0, 6,169, 0, 0, 4, 53, 0, 0, 6,175,
- 0, 0, 6,175, 0, 0, 4, 54, 0, 0, 6,181, 0, 0, 6,181, 0, 0, 4, 55, 0, 0, 6,186, 0, 0, 6,186, 0, 0, 4, 56,
- 0, 0, 6,190, 0, 0, 6,190, 0, 0, 4, 57, 0, 0, 6,198, 0, 0, 6,198, 0, 0, 4, 58, 0, 0, 6,204, 0, 0, 6,204,
- 0, 0, 4, 59, 0, 0, 6,206, 0, 0, 6,206, 0, 0, 4, 60, 0, 0, 6,213, 0, 0, 6,213, 0, 0, 4, 61, 0, 0, 6,240,
- 0, 0, 6,249, 0, 0, 4, 62, 0, 0, 14,129, 0, 0, 14,130, 0, 0, 4, 72, 0, 0, 14,132, 0, 0, 14,132, 0, 0, 4, 74,
- 0, 0, 14,135, 0, 0, 14,136, 0, 0, 4, 75, 0, 0, 14,138, 0, 0, 14,138, 0, 0, 4, 77, 0, 0, 14,141, 0, 0, 14,141,
- 0, 0, 4, 78, 0, 0, 14,148, 0, 0, 14,151, 0, 0, 4, 79, 0, 0, 14,153, 0, 0, 14,159, 0, 0, 4, 83, 0, 0, 14,161,
- 0, 0, 14,163, 0, 0, 4, 90, 0, 0, 14,165, 0, 0, 14,165, 0, 0, 4, 93, 0, 0, 14,167, 0, 0, 14,167, 0, 0, 4, 94,
- 0, 0, 14,170, 0, 0, 14,171, 0, 0, 4, 95, 0, 0, 14,173, 0, 0, 14,185, 0, 0, 4, 97, 0, 0, 14,187, 0, 0, 14,188,
- 0, 0, 4,110, 0, 0, 14,200, 0, 0, 14,205, 0, 0, 4,112, 0, 0, 16,208, 0, 0, 16,252, 0, 0, 4,118, 0, 0, 29, 2,
- 0, 0, 29, 2, 0, 0, 4,163, 0, 0, 29, 8, 0, 0, 29, 9, 0, 0, 4,164, 0, 0, 29, 20, 0, 0, 29, 20, 0, 0, 4,166,
- 0, 0, 29, 22, 0, 0, 29, 23, 0, 0, 4,167, 0, 0, 29, 29, 0, 0, 29, 31, 0, 0, 4,169, 0, 0, 29, 44, 0, 0, 29, 46,
- 0, 0, 4,172, 0, 0, 29, 48, 0, 0, 29, 60, 0, 0, 4,175, 0, 0, 29, 62, 0, 0, 29, 91, 0, 0, 4,188, 0, 0, 29, 98,
- 0, 0, 29,101, 0, 0, 4,218, 0, 0, 29,119, 0, 0, 29,120, 0, 0, 4,222, 0, 0, 29,123, 0, 0, 29,123, 0, 0, 4,224,
- 0, 0, 29,133, 0, 0, 29,133, 0, 0, 4,225, 0, 0, 29,155, 0, 0, 29,183, 0, 0, 4,226, 0, 0, 29,185, 0, 0, 29,191,
- 0, 0, 4,255, 0, 0, 30, 0, 0, 0, 30, 19, 0, 0, 5, 6, 0, 0, 30, 24, 0, 0, 30, 37, 0, 0, 5, 26, 0, 0, 30, 40,
- 0, 0, 30, 45, 0, 0, 5, 40, 0, 0, 30, 48, 0, 0, 30, 75, 0, 0, 5, 46, 0, 0, 30, 86, 0, 0, 30, 99, 0, 0, 5, 74,
- 0, 0, 30,104, 0, 0, 30,119, 0, 0, 5, 88, 0, 0, 30,126, 0, 0, 30,139, 0, 0, 5,104, 0, 0, 30,142, 0, 0, 30,143,
- 0, 0, 5,118, 0, 0, 30,146, 0, 0, 30,150, 0, 0, 5,120, 0, 0, 30,155, 0, 0, 30,155, 0, 0, 5,125, 0, 0, 30,160,
- 0, 0, 30,161, 0, 0, 5,126, 0, 0, 30,176, 0, 0, 30,177, 0, 0, 5,128, 0, 0, 30,184, 0, 0, 30,185, 0, 0, 5,130,
- 0, 0, 30,188, 0, 0, 30,189, 0, 0, 5,132, 0, 0, 30,202, 0, 0, 30,205, 0, 0, 5,134, 0, 0, 30,228, 0, 0, 30,229,
- 0, 0, 5,138, 0, 0, 30,242, 0, 0, 30,245, 0, 0, 5,140, 0, 0, 30,248, 0, 0, 30,249, 0, 0, 5,144, 0, 0, 31, 0,
- 0, 0, 31, 21, 0, 0, 5,146, 0, 0, 31, 24, 0, 0, 31, 29, 0, 0, 5,168, 0, 0, 31, 32, 0, 0, 31, 69, 0, 0, 5,174,
- 0, 0, 31, 72, 0, 0, 31, 77, 0, 0, 5,212, 0, 0, 31, 80, 0, 0, 31, 87, 0, 0, 5,218, 0, 0, 31, 89, 0, 0, 31, 89,
- 0, 0, 5,226, 0, 0, 31, 91, 0, 0, 31, 91, 0, 0, 5,227, 0, 0, 31, 93, 0, 0, 31, 93, 0, 0, 5,228, 0, 0, 31, 95,
- 0, 0, 31,125, 0, 0, 5,229, 0, 0, 31,128, 0, 0, 31,180, 0, 0, 6, 4, 0, 0, 31,182, 0, 0, 31,196, 0, 0, 6, 57,
- 0, 0, 31,198, 0, 0, 31,211, 0, 0, 6, 72, 0, 0, 31,214, 0, 0, 31,219, 0, 0, 6, 86, 0, 0, 31,221, 0, 0, 31,239,
- 0, 0, 6, 92, 0, 0, 31,242, 0, 0, 31,244, 0, 0, 6,111, 0, 0, 31,246, 0, 0, 31,254, 0, 0, 6,114, 0, 0, 32, 0,
- 0, 0, 32, 10, 0, 0, 6,123, 0, 0, 32, 16, 0, 0, 32, 21, 0, 0, 6,134, 0, 0, 32, 23, 0, 0, 32, 35, 0, 0, 6,140,
- 0, 0, 32, 38, 0, 0, 32, 38, 0, 0, 6,153, 0, 0, 32, 47, 0, 0, 32, 49, 0, 0, 6,154, 0, 0, 32, 57, 0, 0, 32, 58,
- 0, 0, 6,157, 0, 0, 32, 60, 0, 0, 32, 62, 0, 0, 6,159, 0, 0, 32, 69, 0, 0, 32, 73, 0, 0, 6,162, 0, 0, 32, 95,
- 0, 0, 32, 95, 0, 0, 6,167, 0, 0, 32,112, 0, 0, 32,113, 0, 0, 6,168, 0, 0, 32,116, 0, 0, 32,142, 0, 0, 6,170,
- 0, 0, 32,144, 0, 0, 32,148, 0, 0, 6,197, 0, 0, 32,166, 0, 0, 32,166, 0, 0, 6,202, 0, 0, 32,172, 0, 0, 32,172,
- 0, 0, 6,203, 0, 0, 32,177, 0, 0, 32,177, 0, 0, 6,204, 0, 0, 32,180, 0, 0, 32,181, 0, 0, 6,205, 0, 0, 33, 2,
- 0, 0, 33, 2, 0, 0, 6,207, 0, 0, 33, 14, 0, 0, 33, 14, 0, 0, 6,208, 0, 0, 33, 22, 0, 0, 33, 22, 0, 0, 6,209,
- 0, 0, 33, 34, 0, 0, 33, 34, 0, 0, 6,210, 0, 0, 33, 38, 0, 0, 33, 38, 0, 0, 6,211, 0, 0, 33, 42, 0, 0, 33, 43,
- 0, 0, 6,212, 0, 0, 33, 83, 0, 0, 33, 95, 0, 0, 6,214, 0, 0, 33,144, 0, 0, 33,255, 0, 0, 6,227, 0, 0, 34, 2,
- 0, 0, 34, 2, 0, 0, 7, 83, 0, 0, 34, 5, 0, 0, 34, 13, 0, 0, 7, 84, 0, 0, 34, 15, 0, 0, 34, 15, 0, 0, 7, 93,
- 0, 0, 34, 17, 0, 0, 34, 19, 0, 0, 7, 94, 0, 0, 34, 21, 0, 0, 34, 21, 0, 0, 7, 97, 0, 0, 34, 23, 0, 0, 34, 26,
- 0, 0, 7, 98, 0, 0, 34, 29, 0, 0, 34, 32, 0, 0, 7,102, 0, 0, 34, 39, 0, 0, 34, 45, 0, 0, 7,106, 0, 0, 34, 56,
- 0, 0, 34, 61, 0, 0, 7,113, 0, 0, 34, 65, 0, 0, 34,105, 0, 0, 7,119, 0, 0, 34,109, 0, 0, 34,139, 0, 0, 7,160,
- 0, 0, 34,143, 0, 0, 34,146, 0, 0, 7,191, 0, 0, 34,149, 0, 0, 34,161, 0, 0, 7,195, 0, 0, 34,197, 0, 0, 34,198,
- 0, 0, 7,208, 0, 0, 34,205, 0, 0, 34,205, 0, 0, 7,210, 0, 0, 34,218, 0, 0, 34,233, 0, 0, 7,211, 0, 0, 34,239,
- 0, 0, 34,239, 0, 0, 7,227, 0, 0, 35, 0, 0, 0, 35, 6, 0, 0, 7,228, 0, 0, 35, 8, 0, 0, 35, 21, 0, 0, 7,235,
- 0, 0, 35, 24, 0, 0, 35, 25, 0, 0, 7,249, 0, 0, 35, 28, 0, 0, 35, 33, 0, 0, 7,251, 0, 0, 35, 37, 0, 0, 35, 40,
- 0, 0, 8, 1, 0, 0, 35, 43, 0, 0, 35, 43, 0, 0, 8, 5, 0, 0, 35, 53, 0, 0, 35, 53, 0, 0, 8, 6, 0, 0, 35, 55,
- 0, 0, 35, 62, 0, 0, 8, 7, 0, 0, 35, 65, 0, 0, 35, 68, 0, 0, 8, 15, 0, 0, 35, 71, 0, 0, 35, 73, 0, 0, 8, 19,
- 0, 0, 35, 75, 0, 0, 35, 77, 0, 0, 8, 22, 0, 0, 35, 80, 0, 0, 35, 80, 0, 0, 8, 25, 0, 0, 35, 82, 0, 0, 35, 84,
- 0, 0, 8, 26, 0, 0, 35, 87, 0, 0, 35, 92, 0, 0, 8, 29, 0, 0, 35, 94, 0, 0, 35, 96, 0, 0, 8, 35, 0, 0, 35, 99,
- 0, 0, 35,101, 0, 0, 8, 38, 0, 0, 35,104, 0, 0, 35,105, 0, 0, 8, 41, 0, 0, 35,107, 0, 0, 35,112, 0, 0, 8, 43,
- 0, 0, 35,115, 0, 0, 35,122, 0, 0, 8, 49, 0, 0, 35,125, 0, 0, 35,125, 0, 0, 8, 57, 0, 0, 35,128, 0, 0, 35,131,
- 0, 0, 8, 58, 0, 0, 35,136, 0, 0, 35,139, 0, 0, 8, 62, 0, 0, 35,149, 0, 0, 35,149, 0, 0, 8, 66, 0, 0, 35,155,
- 0, 0, 35,174, 0, 0, 8, 67, 0, 0, 35,206, 0, 0, 35,207, 0, 0, 8, 87, 0, 0, 36, 35, 0, 0, 36, 35, 0, 0, 8, 89,
- 0, 0, 37, 0, 0, 0, 38, 47, 0, 0, 8, 90, 0, 0, 38, 56, 0, 0, 38,139, 0, 0, 9,138, 0, 0, 38,144, 0, 0, 38,156,
- 0, 0, 9,222, 0, 0, 38,160, 0, 0, 38,161, 0, 0, 9,235, 0, 0, 38,176, 0, 0, 38,177, 0, 0, 9,237, 0, 0, 39, 1,
- 0, 0, 39, 4, 0, 0, 9,239, 0, 0, 39, 6, 0, 0, 39, 9, 0, 0, 9,243, 0, 0, 39, 12, 0, 0, 39, 39, 0, 0, 9,247,
- 0, 0, 39, 41, 0, 0, 39, 75, 0, 0, 10, 19, 0, 0, 39, 77, 0, 0, 39, 77, 0, 0, 10, 54, 0, 0, 39, 79, 0, 0, 39, 82,
- 0, 0, 10, 55, 0, 0, 39, 86, 0, 0, 39, 86, 0, 0, 10, 59, 0, 0, 39, 88, 0, 0, 39, 94, 0, 0, 10, 60, 0, 0, 39, 97,
- 0, 0, 39,117, 0, 0, 10, 67, 0, 0, 39,148, 0, 0, 39,148, 0, 0, 10, 88, 0, 0, 39,152, 0, 0, 39,175, 0, 0, 10, 89,
- 0, 0, 39,177, 0, 0, 39,190, 0, 0, 10,113, 0, 0, 39,224, 0, 0, 39,224, 0, 0, 10,127, 0, 0, 39,232, 0, 0, 39,233,
- 0, 0, 10,128, 0, 0, 41,235, 0, 0, 41,235, 0, 0, 10,130, 0, 0, 41,250, 0, 0, 41,251, 0, 0, 10,131, 0, 0, 42, 47,
- 0, 0, 42, 47, 0, 0, 10,133, 0, 0, 43, 18, 0, 0, 43, 26, 0, 0, 10,134, 0, 0, 44,117, 0, 0, 44,119, 0, 0, 10,143,
- 0, 0, 46, 24, 0, 0, 46, 24, 0, 0, 10,146, 0, 0, 46, 46, 0, 0, 46, 46, 0, 0, 10,147, 0, 0,246,197, 0, 0,246,197,
- 0, 0, 10,148, 0, 0,251, 1, 0, 0,251, 2, 0, 0, 10,149, 0, 0,251, 82, 0, 0,251,129, 0, 0, 10,151, 0, 0,251,138,
- 0, 0,251,149, 0, 0, 10,199, 0, 0,251,158, 0, 0,251,159, 0, 0, 10,211, 0, 0,251,170, 0, 0,251,173, 0, 0, 10,213,
- 0, 0,251,232, 0, 0,251,233, 0, 0, 10,217, 0, 0,251,252, 0, 0,251,255, 0, 0, 10,219, 0, 0,254,112, 0, 0,254,116,
- 0, 0, 10,223, 0, 0,254,118, 0, 0,254,252, 0, 0, 10,228, 0, 0,254,255, 0, 0,254,255, 0, 0, 11,107, 0, 0,255,249,
- 0, 0,255,253, 0, 0, 11,108, 0, 1,214,112, 0, 1,214,163, 0, 0, 11,113, 0, 1,215,246, 0, 1,215,255, 0, 0, 11,165,
- 0, 6, 2, 10, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13,
- 0, 14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 29,
- 0, 30, 0, 31, 0, 32, 0, 33, 0, 34, 0, 35, 0, 36, 0, 37, 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, 45,
- 0, 46, 0, 47, 0, 48, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 54, 0, 55, 0, 56, 0, 57, 0, 58, 0, 59, 0, 60, 0, 61,
- 0, 62, 0, 63, 0, 64, 0, 65, 0, 66, 0, 67, 0, 68, 0, 69, 0, 70, 0, 71, 0, 72, 0, 73, 0, 74, 0, 75, 0, 76, 0, 77,
- 0, 78, 0, 79, 0, 80, 0, 81, 0, 82, 0, 83, 0, 84, 0, 85, 0, 86, 0, 87, 0, 88, 0, 89, 0, 90, 0, 91, 0, 92, 0, 93,
- 0, 94, 0, 95, 0, 96, 0, 97, 0, 0, 0,134, 0,135, 0,137, 0,139, 0,147, 0,152, 0,158, 0,163, 0,162, 0,164, 0,166,
- 0,165, 0,167, 0,169, 0,171, 0,170, 0,172, 0,173, 0,175, 0,174, 0,176, 0,177, 0,179, 0,181, 0,180, 0,182, 0,184,
- 0,183, 0,188, 0,187, 0,189, 0,190, 6,149, 0,114, 0,100, 0,101, 0,105, 6,151, 0,120, 0,161, 0,112, 0,107, 6,210,
- 0,118, 0,106, 7,150, 0,136, 0,154, 7,103, 0,115, 7,154, 7,155, 0,103, 0,119, 7, 83, 7, 94, 7, 93, 2,252, 7,110,
- 0,108, 0,124, 2,229, 0,168, 0,186, 0,129, 0, 99, 0,110, 7,101, 1, 84, 7,126, 7, 85, 0,109, 0,125, 6,153, 0, 98,
- 0,130, 0,133, 0,151, 1, 20, 1, 21, 6,137, 6,138, 6,145, 6,146, 6,141, 6,142, 0,185, 9, 36, 0,193, 1, 58, 0, 0,
- 6,203, 6,157, 6,158, 10,149, 10,150, 6,150, 0,121, 6,143, 6,147, 6,155, 0,132, 0,140, 0,131, 0,141, 0,138, 0,143,
- 0,144, 0,145, 0,142, 0,149, 0,150, 0, 0, 0,148, 0,156, 0,157, 0,155, 0,243, 2, 95, 2,110, 0,113, 2,106, 2,107,
- 2,108, 0,122, 2,111, 2,109, 2, 96, 0, 0, 0,184, 0,203, 0,184, 0,203, 0,170, 1,145, 0,184, 0,102, 0, 0, 0,184,
- 0,135, 2,127, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0,184, 0,195, 0,203, 0, 2, 0,203, 0,184, 0,184, 1,203, 1,137,
- 1,186, 0,203, 0,166, 0,252, 0,203, 0,131, 0,242, 1, 10, 3,199, 1, 55, 0,131, 0,190, 0, 0, 0, 88, 4, 33, 0,203,
- 0,143, 0,156, 0, 2, 0, 2, 0,143, 3,231, 0,117, 3,188, 0,211, 0,201, 0,219, 0,117, 3,231, 1, 57, 3,186, 0,203,
- 1,211, 0, 33, 1,223, 0,184, 0,137, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 3,190, 0,137, 0,195, 3,190, 0,123, 3,190,
- 3, 88, 1, 31, 1,109, 0,164, 1,174, 0, 0, 0,123, 0,184, 1,111, 0,127, 2,123, 0,184, 2, 82, 0,143, 0,205, 4,209,
- 0, 0, 0,205, 0,135, 0,135, 0,147, 0,164, 0,111, 0,205, 0,203, 0,184, 0,131, 1,145, 0,221, 0,180, 0,139, 0,244,
- 0,152, 2,233, 0, 90, 0,180, 0,186, 0,197, 4, 33, 0,254, 0, 14, 0, 2, 0, 2, 0, 2, 1,213, 0,246, 0,127, 2,170,
- 2, 61, 2,102, 0,139, 0,197, 0,143, 0,154, 0,154, 1,131, 0,213, 0,115, 4, 0, 1, 10, 0,254, 0,225, 5,213, 2, 43,
- 0,164, 0,180, 0,156, 0, 0, 0, 98, 0,156, 5,213, 5,152, 0,135, 2,127, 5,213, 5,213, 5,240, 0,164, 0, 0, 0, 29,
- 6,184, 6, 20, 7, 35, 1,211, 0,184, 0,203, 0,166, 1,188, 1, 49, 2, 78, 0,211, 1, 10, 0,123, 0, 84, 3, 92, 3,113,
- 3,219, 1,133, 4, 35, 4,119, 3,233, 0,143, 2, 0, 3, 96, 0,106, 0,207, 5,213, 6, 20, 0,143, 7, 35, 0,143, 6,102,
- 1,121, 4, 96, 4, 96, 4, 96, 4,123, 0, 0, 0,123, 2,119, 4, 96, 1,170, 0,233, 6, 20, 7, 98, 3,248, 0,123, 2, 33,
- 0,197, 0,156, 0,127, 2,123, 0, 0, 0,180, 2, 82, 5, 78, 5, 78, 4,209, 0,102, 0,156, 0,156, 0,102, 0,156, 0,143,
- 0,102, 0,156, 0,143, 6, 16, 0,205, 3,250, 0,131, 0,145, 2,254, 1, 72, 4, 70, 3, 63, 0,143, 0,123, 4, 76, 0,152,
- 0,162, 0, 0, 0, 39, 0,111, 0, 0, 0,111, 3, 53, 0,106, 0,111, 0,123, 5,141, 5,141, 5,141, 5,141, 0,170, 0,170,
- 0, 45, 5,141, 3,150, 2,123, 0,246, 0,127, 2,170, 1, 51, 2, 61, 0,156, 2,102, 1,139, 0,143, 2,246, 0,205, 0,111,
- 3, 68, 0, 55, 0,102, 0, 29, 5,238, 0,133, 1,180, 6, 20, 0, 0, 7,125, 0,115, 5,213, 0, 0, 20, 0,183, 7, 6, 5,
- 4, 3, 2, 1, 0, 44, 32, 16,176, 2, 37, 73,100,176, 64, 81, 88, 32,200, 89, 33, 45, 44,176, 2, 37, 73,100,176, 64, 81, 88,
- 32,200, 89, 33, 45, 44, 32, 16, 7, 32,176, 0, 80,176, 13,121, 32,184,255,255, 80, 88, 4, 27, 5, 89,176, 5, 28,176, 3, 37,
- 8,176, 4, 37, 35,225, 32,176, 0, 80,176, 13,121, 32,184,255,255, 80, 88, 4, 27, 5, 89,176, 5, 28,176, 3, 37, 8,225, 45,
- 44, 75, 80, 88, 32,184, 1, 23, 69, 68, 89, 33, 45, 44,176, 2, 37, 69, 96, 68, 45, 44, 75, 83, 88,176, 2, 37,176, 2, 37, 69,
- 68, 89, 33, 33, 45, 44, 69, 68, 45, 44,176, 2, 37,176, 2, 37, 73,176, 5, 37,176, 5, 37, 73, 96,176, 32, 99,104, 32,138, 16,
-138, 35, 58,138, 16,101, 58, 45, 0, 0, 0, 2, 0, 8, 0, 2,255,255, 0, 3, 0, 2, 0,104,254,150, 4,104, 5,164, 0, 3,
- 0, 7, 0, 31,188, 0, 4, 1, 20, 0, 0, 0, 6, 1, 20,182, 1, 8, 5,131, 2, 4, 0, 47,196,212,236, 49, 0, 16,212,236,
-212,236, 48, 19, 17, 33, 17, 37, 33, 17, 33,104, 4, 0,252,115, 3, 27,252,229,254,150, 7, 14,248,242,114, 6, 41, 0, 0, 0,
- 0, 2, 2, 4, 0, 0, 2,207, 5,213, 0, 5, 0, 9, 0, 31, 64, 15, 3,135, 6,134, 0,136, 8, 4, 3, 7, 1, 3, 6, 0,
- 10, 16,212, 60,236, 50, 57, 57, 49, 0, 47,228,252,236, 48, 1, 51, 17, 3, 35, 3, 17, 51, 21, 35, 2, 4,203, 21,161, 21,203,
-203, 5,213,253,113,254,155, 1,101,253,184,254, 0, 2, 1, 82, 3,170, 3,127, 5,213, 0, 3, 0, 7, 0, 29, 64, 14, 5, 1,
-137, 4, 0,136, 8, 0, 4, 2, 6, 4, 4, 8, 16,212,236,220,236, 49, 0, 16,244, 60,236, 50, 48, 1, 17, 35, 17, 35, 17, 35,
- 17, 3,127,174,209,174, 5,213,253,213, 2, 43,253,213, 2, 43, 0, 2, 0, 2, 0, 0, 4,205, 5,190, 0, 27, 0, 31, 0, 74,
- 64, 48, 28, 23, 7,140, 3, 0, 25, 5, 1, 30, 21, 9,140, 19, 15, 11, 17, 13, 31, 30, 29, 28, 27, 26, 24, 23, 22, 19, 18, 17,
- 16, 15, 14, 13, 12, 10, 9, 8, 5, 4, 3, 2, 1, 0, 26, 6, 20, 32, 16,212,204, 23, 57, 49, 0, 47, 60,212, 60, 60,252, 60,
- 60,212, 60, 60,196, 50,236, 50, 50, 48, 1, 3, 51, 19, 51, 3, 51, 21, 33, 3, 51, 21, 33, 3, 35, 19, 35, 3, 35, 19, 33, 53,
- 33, 19, 33, 53, 33, 19, 1, 35, 3, 51, 2,172,104,245,105,160,105,244,254,231, 84,250,254,223,104,160,105,246,105,159,104,254,
-254, 1, 41, 84,254,246, 1, 47,104, 1, 8,245, 84,246, 5,190,254, 97, 1,159,254, 97,154,254,178,153,254, 98, 1,158,254, 98,
- 1,158,153, 1, 78,154, 1,159,253,199,254,178, 0, 3, 0,190,254,211, 4, 90, 6, 20, 0, 6, 0, 13, 0, 47, 0,100, 64, 57,
- 8, 40, 36, 0, 7, 41, 24, 4, 37, 20, 47, 16, 23, 19, 1, 37,139, 36,142, 31, 40,143, 30, 20,139, 19,142, 1,143, 14, 33, 30,
- 16, 4, 6, 36, 8, 44, 5, 0, 11, 6, 27, 19, 5, 40, 32, 14, 3, 0, 7, 30, 23, 15, 3, 7, 48, 16,212, 23, 60,236, 23, 50,
-252, 60,236, 16,252,228,238, 49, 0, 47,198, 50,196,238,246,238, 16,238,198,246,238, 17, 18, 57, 17, 57, 17, 18, 23, 57, 17, 18,
- 57, 48, 1, 17, 62, 1, 53, 52, 38, 39, 17, 14, 1, 21, 20, 22, 19, 35, 3, 46, 1, 39, 53, 30, 1, 23, 17, 46, 1, 53, 52, 54,
- 55, 53, 51, 23, 30, 1, 23, 21, 46, 1, 39, 17, 30, 1, 21, 20, 6, 7, 2,180,110,124,112,222,104,117,109,212,100, 1,102,201,
- 98,100,203, 99,200,202,211,191,100, 1, 79,162, 84, 85,161, 80,206,216,233,188, 2, 68,254, 78, 3,116,100, 93,103,209, 1,157,
- 4,112, 94, 86,100,251,192, 1, 45, 5, 46, 41,180, 62, 66, 2, 1,202, 31,182,150,157,187, 14,235,235, 5, 30, 26,173, 43, 47,
- 4,254, 81, 31,194,154,154,206, 9, 0, 0, 0, 0, 5, 0, 33, 0, 0, 4,176, 5,152, 0, 11, 0, 26, 0, 30, 0, 42, 0, 57,
- 0, 86, 64, 47, 30, 55, 29, 40, 34, 28, 15, 27, 3, 9,146, 15, 34,146, 55,147, 40,146, 46,145, 15,147, 3,146, 24, 28, 27, 43,
- 31, 30, 29, 6, 10, 21, 11, 0, 10, 12, 37, 10, 52, 11, 31, 10, 43, 12, 58, 16,196,212,236,252,236, 16,238,254,238, 57, 57, 17,
- 18, 57, 57, 49, 0, 47,238,238,246,238,254,238, 16,238, 17, 57, 17, 57, 17, 18, 57, 18, 57, 48, 1, 20, 22, 51, 50, 54, 53, 52,
- 38, 35, 34, 6, 7, 52, 54, 51, 50, 22, 23, 30, 1, 21, 20, 6, 35, 34, 38, 1, 39, 1, 23, 37, 20, 22, 51, 50, 54, 53, 52, 38,
- 35, 34, 6, 7, 52, 54, 51, 50, 22, 23, 30, 1, 21, 20, 6, 35, 34, 38, 2,184,105, 78, 77,107,108, 76, 78,105,135,184,134, 64,
-115, 46, 46, 50,186,135,136,182,254, 72, 35, 4, 18, 41,252, 23,105, 79, 77,108,108, 77, 77,107,135,184,135, 64,117, 45, 45, 49,
-186,134,135,184, 1, 63, 78,106,107, 77, 77,108,106, 79,135,185, 48, 46, 47,116, 63,133,186,183, 1, 26, 96, 1,162, 96,229, 79,
-105,107, 77, 77,107,106, 78,135,185, 48, 45, 45,117, 65,134,185,184, 0, 0, 0, 0, 2, 0, 57,255,227, 4,197, 5,240, 0, 42,
- 0, 55, 0,179, 64, 98, 17, 16, 2, 18, 15, 23, 12, 13, 12, 14, 23, 13, 13, 12, 45, 44, 2, 46, 43, 23, 0, 1, 0, 50, 51, 52,
- 53, 54, 5, 49, 55, 23, 1, 1, 0, 66, 55, 12, 9, 6, 1, 5, 7, 15, 49, 13, 24, 0, 43, 3, 34, 7, 49,151, 18, 34, 33, 37,
-151, 30,150, 18,153, 7, 13, 0, 40, 1, 7, 6, 3, 33, 12, 8, 4, 55, 43, 33, 24, 40, 27, 15, 33, 4, 19, 8, 40, 18, 33, 27,
- 8, 13, 16, 27, 46, 18, 21, 56, 16,220,236,196,252,196, 16,198,238, 16,238, 17, 57, 17, 18, 57, 17, 57, 57, 17, 18, 57, 18, 23,
- 57, 17, 57, 49, 0, 47,198,228,246,238,214,206, 16,238, 17, 18, 23, 57, 17, 18, 57, 17, 23, 57, 48, 75, 83, 88, 7, 16, 14,237,
- 17, 23, 57, 7, 16, 14,237, 17, 23, 57, 7, 16, 5,237, 7, 16, 5,237, 17, 23, 57, 89, 34, 9, 1, 62, 1, 53, 52, 47, 1, 51,
- 21, 20, 6, 7, 23, 35, 39, 14, 1, 35, 34, 0, 53, 52, 54, 55, 46, 1, 53, 52, 54, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6, 21,
- 20, 22, 7, 14, 1, 21, 20, 22, 51, 50, 54, 55, 62, 1, 55, 2, 35, 1,160, 39, 38, 3, 1,164, 74, 75,170,213, 78, 83,186,106,
-216,254,230,138,139, 50, 48,199,173, 65,131, 70, 59,125, 69, 97,112, 58, 54, 92, 91,200,155, 42, 92, 44, 27, 35, 16, 3,139,253,
-209, 49,150,104, 32, 70, 7, 39,161,243, 88,229,109, 70, 68, 1, 13,204,137,234,100, 72,138, 71,150,174, 24, 23,183, 39, 37, 91,
- 77, 59,129,207, 73,163, 92,151,199, 24, 23, 15, 23, 13, 0, 0, 0, 1, 2, 16, 3,170, 2,190, 5,213, 0, 3, 0, 18,183, 1,
- 0,136, 4, 0, 4, 2, 4, 16,212,236, 49, 0, 16,244,196, 48, 1, 17, 35, 17, 2,190,174, 5,213,253,213, 2, 43, 0, 0, 0,
- 0, 1, 1,170,254,242, 3,117, 6, 18, 0, 13, 0, 31, 64, 15, 6,156, 0,155, 14, 13, 7, 0, 3, 18, 6, 0, 24, 10, 14, 16,
-212,236, 50,236, 17, 57, 57, 49, 0, 16,252,236, 48, 1, 6, 2, 21, 20, 18, 23, 35, 38, 2, 53, 52, 18, 55, 3,117,133,131,131,
-133,160,151,148,148,151, 6, 18,228,254, 59,230,229,254, 58,230,238, 1,195,224,223, 1,196,236, 0, 1, 1, 92,254,242, 3, 39,
- 6, 18, 0, 13, 0, 31, 64, 15, 7,156, 0,155, 14, 7, 1, 11, 8, 0, 24, 4, 18, 11, 14, 16,212,252,236, 50, 17, 57, 57, 49,
- 0, 16,252,236, 48, 1, 51, 22, 18, 21, 20, 2, 7, 35, 54, 18, 53, 52, 2, 1, 92,160,151,148,148,151,160,133,131,131, 6, 18,
-236,254, 60,223,225,254, 60,236,232, 1,198,227,228, 1,198, 0, 0, 1, 0,166, 2, 74, 4, 43, 5,240, 0, 17, 0, 78, 64, 44,
- 16, 13, 11, 0, 4, 12, 9, 7, 4, 2, 4, 8, 3,157, 5, 17, 12,157, 10, 1, 14,150, 18, 8, 12, 10, 3, 9, 6, 17, 3, 1,
- 3, 2, 0, 25, 15, 4, 11, 9, 25, 13, 6, 18, 16,212, 60,236, 50,220, 60,236, 50, 23, 57, 17, 18, 23, 57, 49, 0, 16,244,212,
- 60,236, 50,196,236, 50, 23, 57, 18, 23, 57, 48, 1, 13, 1, 7, 37, 17, 35, 17, 5, 39, 45, 1, 55, 5, 17, 51, 17, 37, 4, 43,
-254,154, 1,102, 57,254,176,115,254,176, 57, 1,102,254,154, 57, 1, 80,115, 1, 80, 4,223,194,195, 98,203,254,135, 1,121,203,
- 98,195,194, 99,203, 1,121,254,135,203, 0, 0, 0, 1, 0, 88, 0,113, 4,121, 4,147, 0, 11, 0, 39, 64, 20, 0,161, 9, 1,
-160, 5,161, 7, 3, 12, 2, 26, 4, 0, 28, 8, 26, 10, 6, 12, 16,212, 60,236,252, 60,236, 49, 0, 16,212, 60,236,252, 60,236,
- 48, 1, 17, 33, 21, 33, 17, 35, 17, 33, 53, 33, 17, 2,188, 1,189,254, 67,168,254, 68, 1,188, 4,147,254, 68,170,254, 68, 1,
-188,170, 1,188, 0, 1, 1,147,254,225, 2,242, 1, 47, 0, 5, 0, 24, 64, 11, 3,163, 0,162, 6, 3, 4, 1, 29, 0, 6, 16,
-212,236,212,204, 49, 0, 16,252,236, 48, 1, 51, 21, 3, 35, 19, 1,246,252,197,154, 99, 1, 47,207,254,129, 1,127, 0, 0, 0,
- 0, 1, 1,100, 1,223, 3,109, 2,131, 0, 3, 0, 17,182, 0,160, 2, 4, 1, 0, 4, 16,212,196, 49, 0, 16,212,236, 48, 1,
- 33, 21, 33, 1,100, 2, 9,253,247, 2,131,164, 0, 1, 1,233, 0, 0, 2,229, 1, 49, 0, 3, 0, 16,182, 0,162, 2, 1, 29,
- 0, 4, 16,212,236, 49, 0, 47,236, 48, 1, 51, 17, 35, 1,233,252,252, 1, 49,254,207, 0, 0, 0, 1, 0,102,255, 66, 4, 55,
- 5,213, 0, 3, 0, 24, 64, 11, 2, 0,136, 4, 1, 30, 0, 2, 30, 3, 4, 16,212,236,212,236, 49, 0, 16,244,196, 48, 1, 51,
- 1, 35, 3,121,190,252,238,191, 5,213,249,109, 0, 3, 0,133,255,227, 4, 76, 5,240, 0, 11, 0, 23, 0, 35, 1, 10, 64, 26,
- 3,165, 9, 18,151, 30, 12,151, 24,150, 30,153, 36, 21, 30, 27, 6, 33, 0, 27, 34, 15, 30, 33, 31, 36, 16,252,236,236,212,236,
- 16,238, 49, 0, 16,228,244,236, 16,238,212,238, 48, 64,214, 47, 0, 47, 1, 47, 2, 47, 3, 47, 4, 47, 5, 47, 6, 47, 7, 47,
- 8, 47, 9, 47, 10, 47, 11, 63, 0, 63, 1, 63, 2, 63, 3, 63, 4, 63, 5, 63, 6, 63, 7, 63, 8, 63, 9, 63, 10, 63, 11, 79,
- 0, 79, 1, 79, 2, 79, 10, 79, 11, 95, 0, 95, 1, 95, 2, 95, 10, 95, 11,159, 0,159, 1,159, 2,159, 3,159, 4,159, 5,159,
- 6,159, 7,159, 8,159, 9,159, 10,159, 11,175, 0,175, 1,175, 2,175, 3,175, 4,175, 5,175, 6,175, 7,175, 8,175, 9,175,
- 10,175, 11,191, 0,191, 1,191, 2,191, 3,191, 4,191, 5,191, 6,191, 7,191, 8,191, 9,191, 10,191, 11, 70, 47, 0, 47, 1,
- 47, 2, 47, 3, 47, 4, 47, 5, 47, 6, 47, 7, 47, 8, 47, 9, 47, 10, 47, 11, 95, 0, 95, 1, 95, 2, 95, 3, 95, 4, 95, 5,
- 95, 6, 95, 7, 95, 8, 95, 9, 95, 10, 95, 11,191, 0,191, 1,191, 2,191, 3,191, 4,191, 5,191, 6,191, 7,191, 8,191, 9,
-191, 10,191, 11, 36, 93, 1, 93, 1, 52, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 19, 34, 2, 17, 16, 18, 51, 50, 18, 17, 16, 2,
- 39, 50, 18, 17, 16, 2, 35, 34, 2, 17, 16, 18, 1,227, 77, 54, 56, 80, 79, 57, 56, 75,133,141,139,139,141,142,139,139,142,239,
-245,245,239,239,244,244, 2,238, 55, 80, 80, 55, 56, 78, 76, 2,156,254,208,254,201,254,202,254,208, 1, 48, 1, 54, 1, 55, 1,
- 48,160,254,120,254,129,254,130,254,120, 1,136, 1,126, 1,127, 1,136, 0, 0, 0, 1, 0,246, 0, 0, 4, 70, 5,213, 0, 10,
- 0, 38, 64, 20, 3,151, 4, 2,151, 5,136, 7, 0,151, 9, 8, 35, 6, 30, 3, 0, 35, 1, 11, 16,212,236,196,252,236, 49, 0,
- 47,236, 50,244,236,212,236, 48, 37, 33, 17, 5, 53, 37, 51, 17, 33, 21, 33, 1, 14, 1, 58,254,174, 1, 80,202, 1, 54,252,200,
-170, 4,117, 76,184, 74,250,213,170, 0, 0, 0, 0, 1, 0,152, 0, 0, 4, 35, 5,240, 0, 28, 0, 81, 64, 41, 0, 28, 37, 5,
- 6, 5, 24, 25, 26, 3, 23, 27, 37, 6, 6, 5, 66, 16, 17,167, 13,151, 20,150, 4, 0,151, 2, 0, 16, 10, 2, 1, 10, 30, 23,
- 34, 16, 3, 36, 29, 16,252,196,252,236,192,192, 17, 18, 57, 49, 0, 47,236, 50,244,236,244,204, 48, 75, 83, 88, 7, 16, 5,237,
- 17, 23, 57, 7, 16, 5,237, 23, 50, 89, 34, 37, 33, 21, 33, 53, 54, 0, 55, 62, 1, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51,
- 50, 4, 21, 20, 6, 7, 14, 1, 1,117, 2,174,252,117,187, 1, 24, 53,100, 70,147,128, 91,200,112,103,199, 97,219, 1, 11, 89,
-100, 56,213,170,170,170,197, 1, 46, 62,122,151, 79,125,142, 66, 67,204, 49, 50,233,189, 96,192,116, 65,230, 0, 0, 1, 0,137,
-255,227, 4, 55, 5,240, 0, 40, 0, 71, 64, 41, 0, 19,151, 21, 10,139, 9,166, 13,151, 6, 31,139, 32,166, 28,151, 35,150, 6,
-153, 21,169, 41, 22, 19, 0, 3, 20, 25, 30, 38, 16, 30, 3, 34, 31, 20, 9, 31, 41, 16,252,196,196,252,236,212,236, 17, 23, 57,
- 49, 0, 16,236,228,244,236,244,236, 16,238,246,238, 16,238, 57, 48, 1, 30, 1, 21, 20, 4, 35, 34, 38, 39, 53, 30, 1, 51, 50,
- 54, 53, 52, 38, 43, 1, 53, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 4, 21, 20, 6, 3, 8,147,156,254,235,
-245,103,214,103,102,198, 98,166,178,178,152,154,154,139,156,145,134, 89,190,104,121,189, 73,218, 1, 5,137, 3, 31, 39,199,149,
-206,235, 38, 36,201, 53, 52,150,141,130,153,166,122,109,115,123, 40, 40,186, 32, 32,219,181,123,164, 0, 0, 0, 0, 2, 0,102,
- 0, 0, 4,111, 5,213, 0, 2, 0, 13, 0, 66, 64, 31, 1, 13, 3, 13, 0, 3, 3, 13, 66, 0, 3, 11, 7,151, 5, 1, 3,136,
- 9, 1, 12, 10, 0, 30, 8, 4, 6, 15, 12, 36, 14, 16,252,252,212, 60,236, 50, 17, 57, 49, 0, 47,228,212, 60,236, 50, 18, 57,
- 48, 75, 83, 88, 7, 16, 4,201, 7, 16, 5,201, 89, 34, 9, 1, 33, 3, 51, 17, 51, 21, 35, 17, 35, 17, 33, 53, 2,223,254, 41,
- 1,215, 33,234,199,199,201,253,135, 5, 29,252,235, 3,205,252, 51,164,254,156, 1,100,191, 0, 0, 1, 0,143,255,227, 4, 45,
- 5,213, 0, 29, 0, 61, 64, 34, 4, 7, 29, 26,151, 7, 17,139, 16,142, 20,151, 13, 2,151, 0,136, 13,153, 7,170, 30, 3, 30,
- 0, 23, 30, 1, 10, 34, 0, 16, 31, 30, 16,252,196,252,196,236, 16,238, 49, 0, 16,228,228,244,236, 16,238,246,238, 16,254,196,
- 18, 57, 48, 19, 33, 21, 33, 17, 62, 1, 51, 50, 0, 21, 20, 0, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 35, 34, 6,
- 7,207, 2,244,253,196, 43, 87, 44,232, 1, 16,254,227,247,119,197, 78, 92,186, 97,167,181,187,167, 81,154, 70, 5,213,170,254,
-145, 16, 15,254,238,234,236,254,240, 32, 32,205, 50, 49,176,162,160,178, 37, 37, 0, 2, 0,133,255,227, 4, 76, 5,240, 0, 24,
- 0, 36, 0, 61, 64, 35, 7, 31, 25,151, 10, 31,151, 16, 10,171, 4, 1,139, 0,142, 4,151, 22,150, 16,153, 37, 34, 30, 0, 38,
- 13, 34, 7, 6, 28, 1, 19, 31, 37, 16,252,236,236,252,228,236, 49, 0, 16,228,244,236,244,236, 16,229, 16,238, 16,238, 17, 57,
- 48, 1, 21, 46, 1, 35, 34, 2, 17, 62, 1, 51, 50, 18, 21, 20, 2, 35, 32, 2, 17, 16, 0, 33, 50, 22, 1, 34, 6, 21, 20, 22,
- 51, 50, 54, 53, 52, 38, 3,223, 63,142, 77,192,198, 48,170,110,216,237,244,221,254,252,242, 1, 35, 1, 20, 74,148,254,221,129,
-148,148,129,134,136,136, 5,180,186, 37, 39,254,223,254,231,100,107,254,247,243,242,254,246, 1,117, 1,145, 1,122, 1,141, 31,
-253,108,186,164,164,186,177,173,174,176, 0, 0, 0, 1, 0,139, 0, 0, 4, 55, 5,213, 0, 6, 0, 53, 64, 25, 5, 37, 2, 3,
- 2, 3, 37, 4, 5, 4, 66, 5,151, 0,136, 3, 5, 3, 1, 4, 1, 34, 0, 31, 7, 16,252,236,196, 17, 57, 57, 49, 0, 47,244,
-236, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 5,237, 89, 34, 19, 33, 21, 1, 35, 1, 33,139, 3,172,253,234,211, 2, 8,253, 53,
- 5,213, 86,250,129, 5, 43, 0, 0, 3, 0,131,255,227, 4, 78, 5,240, 0, 11, 0, 35, 0, 47, 0, 67, 64, 37, 24, 12, 0,151,
- 39, 6,151, 30, 45,151, 18,150, 30,153, 39,169, 48, 24, 12, 36, 42, 30, 21, 36, 30, 15, 9, 30, 21, 27, 34, 3, 30, 15, 33, 31,
- 48, 16,252,196,236,252,196,236, 16,238, 16,238, 17, 57, 57, 49, 0, 16,236,228,244,236, 16,238, 16,238, 57, 57, 48, 1, 34, 6,
- 21, 20, 22, 51, 50, 54, 53, 52, 38, 37, 46, 1, 53, 52, 54, 51, 50, 22, 21, 20, 6, 7, 30, 1, 21, 20, 4, 35, 34, 36, 53, 52,
- 54, 19, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 2,104,135,147,149,133,136,147,149,254,202,129,145,242,208,209,242,145,129,
-150,159,254,254,228,228,254,255,159, 77,128,121,122,128,127,123,121,128, 2,197,151,138,138,153,151,140,137,152, 84, 33,180,127,
-178,209,209,178,127,180, 33, 33,200,159,202,228,227,201,160,201, 1, 98,120,126,126,120,122,128,129, 0, 0, 0, 0, 2, 0,127,
-255,227, 4, 70, 5,240, 0, 11, 0, 36, 0, 59, 64, 34, 19, 6, 0,151, 22,171, 16, 13,139, 12,142, 16,151, 34, 6,151, 28,150,
- 34,153, 37, 19, 6, 3, 1, 31, 34, 9, 30, 12, 38, 25, 31, 37, 16,252,228,236,252,236,236, 49, 0, 16,228,244,236, 16,238,246,
-238, 16,245,238, 17, 57, 48, 1, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22, 3, 53, 30, 1, 51, 50, 18, 17, 14, 1, 35, 34, 2,
- 53, 52, 18, 51, 32, 18, 17, 16, 0, 33, 34, 38, 2, 84,129,147,147,129,134,136,135,225, 63,142, 77,192,197, 47,170,110,216,237,
-243,222, 1, 4,242,254,221,254,235, 73,148, 2,150,186,164,164,186,177,173,174,176,253,137,186, 37, 39, 1, 33, 1, 25,100,107,
- 1, 10,244,241, 1, 9,254,138,254,111,254,135,254,115, 31, 0, 0, 2, 1,233, 0, 0, 2,229, 4, 39, 0, 3, 0, 7, 0, 27,
- 64, 13, 2,162, 0,172, 4,162, 6, 5, 1, 29, 4, 0, 8, 16,212, 60,236, 50, 49, 0, 47,236,244,236, 48, 1, 51, 17, 35, 17,
- 51, 17, 35, 1,233,252,252,252,252, 4, 39,254,209,254, 57,254,207, 0, 0, 0, 0, 2, 1,147,254,225, 2,242, 4, 39, 0, 5,
- 0, 9, 0, 37, 64, 19, 8,162, 6, 3,163, 0,162, 6,172, 10, 3, 4, 0, 29, 1, 7, 29, 6, 10, 16,212,252,212,252,212,204,
- 49, 0, 16,228,252,236, 16,238, 48, 1, 51, 21, 3, 35, 19, 3, 51, 17, 35, 1,246,252,197,154, 99, 13,252,252, 1, 47,207,254,
-129, 1,127, 3,199,254,209, 0, 0, 1, 0, 88, 0,141, 4,121, 4,119, 0, 6, 0, 33, 64, 18, 5, 4, 2, 1, 0, 5, 3,174,
- 6,173, 7, 1, 2, 0, 40, 4, 39, 7, 16,252,236, 50, 57, 49, 0, 16,244,236, 23, 57, 48, 9, 2, 21, 1, 53, 1, 4,121,252,
-174, 3, 82,251,223, 4, 33, 3,193,254,192,254,195,183, 1,162,166, 1,162, 0, 0, 2, 0, 88, 1, 96, 4,121, 3,162, 0, 3,
- 0, 7, 0, 27, 64, 12, 4,160, 6, 2,160, 0, 8, 5, 1, 4, 0, 8, 16,212, 60,196, 50, 49, 0, 16,212,236,212,236, 48, 19,
- 33, 21, 33, 17, 33, 21, 33, 88, 4, 33,251,223, 4, 33,251,223, 2, 12,172, 2, 66,170, 0, 0, 0, 1, 0, 88, 0,141, 4,121,
- 4,119, 0, 6, 0, 33, 64, 18, 6, 5, 3, 2, 0, 5, 4,174, 1,173, 7, 6, 2, 40, 4, 0, 39, 7, 16,252, 60,236, 57, 49,
- 0, 16,244,236, 23, 57, 48, 19, 53, 1, 21, 1, 53, 1, 88, 4, 33,251,223, 3, 82, 3,193,182,254, 94,166,254, 94,183, 1, 61,
- 0, 2, 0,244, 0, 0, 4, 16, 5,240, 0, 30, 0, 34, 0,123, 64, 66, 11, 10, 9, 8, 7, 5, 12, 6, 37, 25, 26, 25, 3, 4,
- 2, 2, 5, 37, 26, 26, 25, 66, 29, 26, 5, 2, 4, 6, 25, 15, 0, 31, 16,139, 15,141, 12,151, 19,150, 31,134, 33, 6, 32, 25,
- 22, 9, 5, 1, 0, 26, 32, 9, 0, 3, 1, 9, 41, 22, 15, 1, 32, 3, 31, 35, 16,212,236,196,212,212,236, 16,238, 17, 18, 57,
- 17, 18, 57, 17, 18, 57, 18, 57, 49, 0, 47,238,246,254,244,238, 16,205, 17, 57, 57, 23, 57, 48, 75, 83, 88, 7, 16, 4,237, 17,
- 23, 57, 7, 16, 4,237, 17, 23, 57, 89, 34, 1, 35, 53, 52, 54, 63, 1, 62, 1, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50,
- 22, 21, 20, 6, 15, 1, 14, 1, 29, 1, 3, 51, 21, 35, 2,172,190, 61, 84, 90, 62, 47,131,109, 78,178, 98, 94,191,104,186,221,
- 67, 94, 88, 69, 38,197,203,203, 1,145,154, 98,137, 82, 89, 59, 88, 49, 89,110, 69, 68,188, 57, 56,192,161, 76,131, 92, 86, 66,
- 84, 61, 47,254,242,254, 0, 0, 0, 2, 0, 27,254,193, 4,154, 5,115, 0, 11, 0, 52, 0,112, 64, 49, 40, 43, 36, 26, 23, 3,
- 14, 12, 9, 27, 52, 3,175, 23, 9,175, 12, 17, 39, 36,175, 43, 23, 30,175, 49, 43, 53, 39, 13, 6, 40, 12, 0, 6, 43, 20, 0,
- 26, 13, 46, 12, 20, 33, 43, 12, 45, 46, 53, 16,220,236,252,196, 16,254, 60,196, 16,238, 17, 18, 57, 17, 18, 57, 49, 0, 16,196,
-212,252,196, 16,254,196,213,196,238, 16,238, 57, 57, 17, 18, 57, 17, 18, 57, 17, 18, 57, 48, 64, 13,128, 5,128, 6,128, 7,128,
- 19,128, 20,128, 21, 6, 1, 93, 1, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 19, 35, 53, 14, 1, 35, 34, 38, 53, 52, 54, 51,
- 50, 22, 23, 53, 52, 38, 35, 34, 0, 17, 16, 0, 33, 50, 54, 55, 23, 14, 1, 35, 32, 0, 17, 16, 0, 33, 50, 18, 21, 4, 14,128,
-107,107,129,129,107,107,128,140,144, 37,131, 82,161,211,211,161, 80,134, 36,176,145,246,254,221, 1, 74, 1, 18, 54,108, 57, 48,
- 63,123, 58,254,155,254, 93, 1,120, 1, 60,209,250, 2, 33,129,155,155,129,130,155,155,254,232,111, 63, 68,242,188,188,242, 70,
- 61, 63,156,190,254,129,254,185,254,183,254,122, 20, 21,135, 25, 24, 1,210, 1,140, 1,134, 1,206,254,246,224, 0, 2, 0, 37,
- 0, 0, 4,172, 5,213, 0, 2, 0, 10, 0,152, 64, 65, 0, 37, 1, 0, 4, 5, 4, 2, 37, 5, 4, 7, 37, 5, 4, 6, 37, 5,
- 5, 4, 9, 37, 3, 10, 8, 37, 3, 10, 1, 37, 10, 3, 10, 0, 37, 2, 0, 3, 3, 10, 66, 0, 3, 7,151, 1,176, 3,136, 9,
- 5, 9, 8, 7, 6, 4, 3, 2, 1, 0, 9, 5, 47, 10, 11, 16,220,236, 23, 57, 49, 0, 47, 60,228,252,236, 18, 57, 48, 75, 83,
- 88, 7, 16, 8,237, 7, 16, 5,237, 7, 5,237, 7, 5,237, 7, 16, 5,237, 7, 5,237, 7, 5,237, 7, 16, 8,237, 89, 34,178,
- 7, 3, 1, 1, 93, 64, 26, 10, 0, 15, 0,143, 0,143, 0, 4, 3, 1, 11, 2, 4, 3, 12, 4, 9, 7, 6, 8,134, 1,137, 2,
- 8, 93, 0, 93, 1, 3, 33, 1, 51, 1, 35, 3, 33, 3, 35, 2,104,213, 1,170,254,177,245, 1,201,209,110,253,245,108,209, 5,
- 35,253, 4, 3,174,250, 43, 1,133,254,123, 0, 0, 3, 0,166, 0, 0, 4,113, 5,213, 0, 8, 0, 17, 0, 32, 0, 61, 64, 35,
- 25, 0,151, 10, 9,151, 18,136, 1,151, 10,177, 31, 17, 11, 25, 31, 19, 8, 2, 5, 0, 14, 30, 22, 5, 50, 28, 49, 9, 0, 30,
- 18, 48, 33, 16,252,236, 50,252,236,212,236, 17, 23, 57, 57, 57, 49, 0, 47,236,236,244,236, 16,238, 57, 48, 1, 17, 51, 50, 54,
- 53, 52, 38, 35, 3, 17, 51, 50, 54, 53, 52, 38, 35, 37, 33, 50, 22, 21, 20, 6, 7, 30, 1, 21, 20, 4, 41, 1, 1,113,239,176,
-150,158,168,239,235,146,131,129,148,254, 74, 1,186,229,248,131,131,147,167,254,246,254,249,254, 70, 2,201,253,221,123,141,146,
-137, 2,102,254, 62,112,125,113,100,166,198,181,137,158, 20, 22,207,160,203,207, 0, 1, 0,139,255,227, 4, 49, 5,240, 0, 25,
- 0, 46, 64, 26, 25,179, 0,178, 22,151, 3, 13,179, 12,178, 16,151, 9,150, 3,153, 26, 19, 50, 12, 0, 49, 6, 48, 26, 16,252,
-236, 50,236, 49, 0, 16,228,244,236,244,236, 16,238,246,238, 48, 37, 14, 1, 35, 32, 0, 17, 16, 0, 33, 50, 22, 23, 21, 46, 1,
- 35, 34, 2, 17, 16, 18, 51, 50, 54, 55, 4, 49, 77,162, 91,254,225,254,195, 1, 63, 1, 29, 91,162, 77, 74,170, 86,197,196,196,
-197, 88,169, 73, 53, 41, 41, 1,150, 1,112, 1,110, 1,153, 41, 41,207, 61, 64,254,208,254,205,254,206,254,208, 64, 61, 0, 0,
- 0, 2, 0,137, 0, 0, 4, 82, 5,213, 0, 8, 0, 17, 0, 40, 64, 21, 6,151, 9,136, 0,151, 15, 6, 0, 15, 9, 7, 3, 50,
- 12, 49, 7, 30, 16, 48, 18, 16,252,236,252,236, 17, 57, 57, 57, 57, 49, 0, 47,236,244,236, 48, 37, 32, 54, 17, 16, 38, 33, 35,
- 17, 19, 32, 0, 17, 16, 0, 41, 1, 17, 1,180, 0,255,202,201,255, 0, 96,100, 1, 86, 1, 68,254,188,254,170,254,209,166,251,
- 1, 72, 1, 75,251,251,119, 5, 47,254,148,254,128,254,130,254,149, 5,213, 0, 0, 1, 0,197, 0, 0, 4, 78, 5,213, 0, 11,
- 0, 41, 64, 22, 6,151, 4, 2,151, 0,136, 8,151, 4,177, 10, 1, 5, 9, 49, 7, 3, 30, 0, 51, 12, 16,252,236, 50,252,196,
-196, 49, 0, 47,236,236,244,236, 16,238, 48, 19, 33, 21, 33, 17, 33, 21, 33, 17, 33, 21, 33,197, 3,118,253, 84, 2,142,253,114,
- 2,191,252,119, 5,213,170,254, 70,170,253,227,170, 0, 0, 0, 0, 1, 0,233, 0, 0, 4, 88, 5,213, 0, 9, 0, 36, 64, 19,
- 6,151, 4, 2,151, 0,136, 4,177, 8, 5, 1, 49, 7, 3, 30, 0, 52, 10, 16,252,236, 50,252,196, 49, 0, 47,236,244,236, 16,
-238, 48, 19, 33, 21, 33, 17, 33, 21, 33, 17, 35,233, 3,111,253, 92, 2,101,253,155,203, 5,213,170,254, 72,170,253, 55, 0, 0,
- 0, 1, 0,102,255,227, 4, 80, 5,240, 0, 29, 0, 60, 64, 33, 25, 26, 0, 22, 3, 26,151, 28, 22,151, 3, 13,179, 12,178, 16,
-151, 9,150, 3,153, 30, 27, 25, 30, 12, 0, 54, 19, 50, 6, 53, 30, 16,252,236,252,196,252,196, 49, 0, 16,228,244,236,244,236,
- 16,254,212,238, 17, 18, 57, 17, 57, 48, 37, 14, 1, 35, 32, 0, 17, 16, 0, 33, 50, 22, 23, 21, 46, 1, 35, 34, 2, 17, 16, 18,
- 51, 50, 54, 55, 17, 35, 53, 33, 4, 80, 81,203,118,254,228,254,196, 1, 64, 1, 29, 94,172, 80, 81,170, 95,197,197,191,198, 67,
-101, 41,217, 1,154,123, 75, 77, 1,151, 1,111, 1,110, 1,153, 53, 54,207, 77, 73,254,207,254,206,254,201,254,213, 31, 33, 1,
-145,166, 0, 0, 0, 1, 0,137, 0, 0, 4, 72, 5,213, 0, 11, 0, 38, 64, 20, 8,151, 2,177, 4, 0,136, 10, 6, 7, 3, 30,
- 5, 49, 9, 1, 30, 0, 48, 12, 16,252,236, 50,252,236, 50, 49, 0, 47, 60,228, 50,252,236, 48, 19, 51, 17, 33, 17, 51, 17, 35,
- 17, 33, 17, 35,137,203, 2, 41,203,203,253,215,203, 5,213,253,156, 2,100,250, 43, 2,199,253, 57, 0, 0, 0, 0, 1, 0,201,
- 0, 0, 4, 6, 5,213, 0, 11, 0, 37, 64, 19, 10, 2,151, 0,136, 8, 4,151, 6, 5, 1, 55, 3, 30, 7, 0, 55, 9, 12, 16,
-212,236, 50,252,236, 50, 49, 0, 47,236, 50,244,236, 50, 48, 19, 33, 21, 33, 17, 33, 21, 33, 53, 33, 17, 33,201, 3, 61,254,199,
- 1, 57,252,195, 1, 57,254,199, 5,213,170,251,127,170,170, 4,129, 0, 0, 0, 0, 1, 0,109,255,227, 3,188, 5,213, 0, 17,
- 0, 44, 64, 23, 12, 7, 8, 1, 0,178, 4,151, 15, 8,151, 10,136, 15,153, 18, 9, 7, 30, 11, 0, 53, 18, 16,252,212,252,196,
- 49, 0, 16,228,244,236, 16,238,246,206, 17, 57, 57, 48, 55, 53, 30, 1, 51, 50, 54, 53, 17, 33, 53, 33, 17, 16, 6, 35, 34, 38,
-109, 91,194,104,143,113,254,131, 2, 71,211,247, 96,190, 61,236, 81, 81,149,203, 3, 68,170,252, 18,254,230,234, 44, 0, 0, 0,
- 0, 1, 0,137, 0, 0, 4,201, 5,213, 0, 11, 0,151, 64, 33, 8, 37, 9, 8, 5, 6, 5, 7, 37, 6, 5, 66, 8, 5, 2, 3,
- 3, 0,180, 10, 6, 8, 5, 4, 3, 6, 1, 9, 1, 30, 0, 48, 12, 16,252,236, 50, 16,192, 23, 57, 49, 0, 47, 60,236, 50, 23,
- 57, 48, 75, 83, 88, 7, 5,237, 7, 16, 8,237, 89, 34,178, 8, 4, 1, 1, 93, 64, 76, 7, 5, 22, 5, 23, 8, 38, 5, 38, 8,
- 54, 2, 70, 2, 85, 2, 87, 8, 88, 9,100, 2,122, 5,121, 8,123, 9, 14, 2, 3, 1, 4, 7, 5, 0, 6, 2, 7, 22, 5, 23,
- 8, 39, 5, 44, 6, 43, 7, 38, 8, 58, 3, 73, 3, 71, 6, 71, 7, 91, 3, 87, 5, 88, 6, 88, 7, 87, 8,107, 3,122, 3,120,
- 7, 23, 93, 0, 93, 19, 51, 17, 1, 51, 9, 1, 35, 1, 7, 17, 35,137,203, 2,119,237,253,187, 2, 86,244,254, 25,154,203, 5,
-213,253,104, 2,152,253,158,252,141, 2,236,164,253,184, 0, 0, 0, 1, 0,215, 0, 0, 4,115, 5,213, 0, 5, 0, 24, 64, 12,
- 2,151, 0,136, 4, 1, 30, 3, 49, 0, 52, 6, 16,252,236,236, 49, 0, 47,228,236, 48, 19, 51, 17, 33, 21, 33,215,203, 2,209,
-252,100, 5,213,250,213,170, 0, 0, 1, 0, 86, 0, 0, 4,121, 5,213, 0, 12, 0,133, 64, 44, 8, 2, 3, 2, 7, 3, 3, 2,
- 10, 1, 2, 1, 9, 2, 2, 1, 66, 10, 7, 2, 3, 0, 8, 3, 0,180, 11, 5, 9, 8, 3, 2, 1, 5, 10, 6, 6, 4, 47, 10,
- 6, 0, 48, 13, 16,252,236,252,236, 17, 23, 57, 49, 0, 47, 60,236, 50,196, 17, 23, 57, 48, 75, 83, 88, 7, 16, 5,201, 7, 16,
- 4,201, 7, 16, 4,201, 7, 16, 5,201, 89, 34,178, 15, 10, 1, 0, 93, 64, 36, 5, 8, 10, 9, 23, 1, 24, 3, 23, 8, 24, 9,
- 38, 1, 41, 3, 38, 8, 41, 9, 54, 1, 57, 3, 54, 8, 56, 9, 14, 15, 7, 15, 7, 15, 10, 3, 93, 1, 93, 19, 33, 9, 1, 33,
- 17, 35, 17, 1, 35, 1, 17, 35, 86, 1, 14, 1, 2, 1, 4, 1, 15,187,254,246,153,254,245,186, 5,213,253, 8, 2,248,250, 43,
- 5, 39,252,237, 3, 19,250,217, 0, 1, 0,139, 0, 0, 4, 70, 5,213, 0, 9, 0,109, 64, 28, 7, 1, 2, 1, 2, 6, 7, 6,
- 66, 7, 2, 3, 0,180, 8, 5, 6, 1, 7, 2, 17, 4, 49, 7, 17, 0, 48, 10, 16,252,236,252,236, 17, 57, 57, 49, 0, 47, 60,
-236, 50, 57, 57, 48, 75, 83, 88, 7, 16, 4,201, 7, 16, 4,201, 89, 34,178, 23, 1, 1, 1, 93, 64, 38, 23, 2, 24, 7, 41, 2,
- 38, 7, 56, 7, 87, 2,100, 2,106, 7,117, 2,122, 7, 10, 24, 6, 38, 1, 41, 6, 70, 1, 73, 6, 87, 1,103, 1,104, 6, 8,
- 93, 0, 93, 19, 33, 1, 17, 51, 17, 33, 1, 17, 35,139, 1, 0, 1,248,195,255, 0,254, 8,195, 5,213,251, 51, 4,205,250, 43,
- 4,205,251, 51, 0, 2, 0,117,255,227, 4, 92, 5,240, 0, 11, 0, 23, 0, 35, 64, 19, 9,151, 15, 3,151, 21,150, 15,153, 24,
- 0, 50, 12, 54, 6, 50, 18, 53, 24, 16,252,236,252,236, 49, 0, 16,228,244,236, 16,238, 48, 1, 16, 2, 35, 34, 2, 17, 16, 18,
- 51, 50, 18, 19, 16, 2, 35, 34, 2, 17, 16, 18, 51, 50, 18, 3,137,135,154,153,135,135,153,154,135,211,247,253,253,246,247,252,
-253,247, 2,233, 1, 73, 1, 26,254,230,254,183,254,184,254,230, 1, 25, 1, 73,254,122,254,128, 1,126, 1,136, 1,135, 1,128,
-254,128, 0, 0, 0, 2, 0,197, 0, 0, 4,117, 5,213, 0, 8, 0, 19, 0, 43, 64, 24, 1,151, 16, 0,151, 9,136, 18, 16, 10,
- 8, 2, 4, 0, 5, 50, 13, 56, 17, 0, 30, 9, 51, 20, 16,252,236, 50,252,236, 17, 23, 57, 49, 0, 47,244,236,212,236, 48, 1,
- 17, 51, 50, 54, 53, 52, 38, 35, 37, 33, 50, 4, 21, 20, 4, 43, 1, 17, 35, 1,143,234,140,157,156,141,254, 76, 1,180,250, 1,
- 2,254,255,251,234,202, 5, 47,253,207,148,133,133,147,166,227,219,221,226,253,168, 0, 0, 0, 0, 2, 0,117,254,242, 4, 92,
- 5,240, 0, 17, 0, 29, 0, 61, 64, 32, 0, 30, 16, 17, 15, 27,151, 3, 21,151, 9,150, 3,153, 17, 30, 17, 24, 16, 12, 15, 0,
- 24, 18, 50, 12, 54, 24, 50, 6, 53, 30, 16,252,236,252,236, 17, 57, 57, 17, 57, 17, 57, 49, 0, 16,196,228,244,236, 16,238, 57,
- 18, 57, 18, 57, 48, 5, 34, 6, 35, 34, 2, 17, 16, 18, 51, 50, 18, 17, 16, 2, 7, 23, 7, 19, 16, 2, 35, 34, 2, 17, 16, 18,
- 51, 50, 18, 2,143, 7, 26, 8,250,247,247,252,253,247,137,139,200,151, 16,135,154,153,135,135,153,154,135, 27, 2, 1,128, 1,
-134, 1,135, 1,128,254,128,254,121,254,218,254,153, 72,190,100, 3,247, 1, 73, 1, 26,254,230,254,183,254,184,254,230, 1, 25,
- 0, 2, 0,143, 0, 0, 4,209, 5,213, 0, 19, 0, 28, 0,106, 64, 56, 9, 8, 7, 3, 10, 6, 37, 3, 4, 3, 5, 37, 4, 4,
- 3, 66, 6, 4, 0, 21, 3, 4, 21,151, 9, 20,151, 13,136, 11, 4, 5, 17, 22, 9, 6, 3, 10, 3, 17, 0, 28, 14, 3, 10, 25,
- 50, 4, 17, 49, 20, 10, 30, 12, 48, 29, 16,252,236, 50,252,196,236, 17, 23, 57, 17, 57, 17, 23, 57, 17, 57, 49, 0, 47, 60,244,
-236,212,236, 18, 57, 18, 57, 18, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 14,237, 17, 23, 57, 89, 34, 1, 30, 1, 23, 19, 35,
- 3, 46, 1, 43, 1, 17, 35, 17, 33, 50, 4, 21, 20, 6, 1, 17, 51, 50, 54, 53, 52, 38, 35, 2,248, 78,110, 82,203,217,178, 77,
-123, 99,193,203, 1,160,246, 1, 6,161,253,208,221,145,142,151,144, 2,193, 20,111,166,254,104, 1,121,161, 93,253,137, 5,213,
-222,210,148,187, 2, 89,253,238,130,134,129,137, 0, 1, 0,139,255,227, 4, 74, 5,240, 0, 39, 0,132, 64, 61, 13, 12, 2, 14,
- 11, 37, 30, 31, 30, 8, 9, 2, 7, 10, 37, 31, 31, 30, 66, 10, 11, 30, 31, 4, 1, 21,179, 20,167, 24,151, 17, 1,179, 0,167,
- 4,151, 37,150, 17,153, 40, 30, 10, 11, 31, 27, 7, 0, 38, 27, 57, 14, 49, 20, 7, 57, 34, 48, 40, 16,252,236,196,252,236,228,
- 17, 18, 57, 57, 57, 57, 49, 0, 16,228,244,236,244,236, 16,238,246,238, 17, 23, 57, 48, 75, 83, 88, 7, 16, 14,237, 17, 23, 57,
- 7, 16, 14,237, 17, 23, 57, 89, 34,178, 8, 2, 1, 1, 93, 64, 10, 7, 0, 7, 1, 7, 2, 3, 7, 2, 1, 93, 0, 93, 1, 21,
- 46, 1, 35, 34, 6, 21, 20, 22, 31, 1, 30, 1, 21, 20, 4, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 47, 1, 46, 1,
- 53, 52, 36, 51, 50, 22, 3,244, 92,185, 94,143,166,109,149,106,210,192,254,248,252,105,212,107,115,205,104,153,170,117,145,108,
-208,188, 1, 13,223, 86,190, 5,162,205, 59, 60,133,113, 99,104, 35, 24, 49,210,181,213,224, 45, 45,215, 73, 68,137,123,112,118,
- 32, 25, 47,190,160,200,241, 39, 0, 1, 0, 47, 0, 0, 4,162, 5,213, 0, 7, 0, 28, 64, 14, 6, 2,151, 0,136, 4, 1, 58,
- 3, 30, 0, 58, 5, 8, 16,212,236,252,236, 49, 0, 47,244,236, 50, 48, 19, 33, 21, 33, 17, 35, 17, 33, 47, 4,115,254, 45,203,
-254, 43, 5,213,170,250,213, 5, 43, 0, 0, 0, 0, 1, 0,147,255,227, 4, 61, 5,213, 0, 29, 0, 41, 64, 23, 15, 3, 18, 0,
- 4, 1, 9,151, 24,153, 16, 1,136, 30, 15, 30, 17, 49, 2, 30, 0, 48, 30, 16,252,236,252,236, 49, 0, 16,228, 50,244,236, 17,
- 23, 57, 48, 19, 17, 51, 17, 20, 22, 23, 30, 1, 51, 50, 54, 55, 62, 1, 53, 17, 51, 17, 20, 6, 7, 14, 1, 35, 34, 38, 39, 46,
- 1,147,203, 12, 15, 32,121, 86, 87,120, 33, 15, 12,202, 57, 70, 66,170,106,105,170, 67, 69, 58, 2, 61, 3,152,252, 12,109, 93,
- 25, 59, 60, 60, 59, 25, 92,108, 3,246,252,104,229,193, 63, 59, 58, 58, 59, 62,197, 0, 0, 0, 0, 1, 0, 57, 0, 0, 4,152,
- 5,213, 0, 6, 0, 76, 64, 41, 1, 37, 2, 3, 2, 0, 37, 6, 0, 3, 3, 2, 0, 37, 1, 0, 4, 5, 4, 6, 37, 5, 5, 4,
- 66, 0, 5, 1,180, 3, 6, 4, 3, 1, 0, 5, 2, 47, 5, 48, 7, 16,252,236, 23, 57, 49, 0, 47,236, 50, 57, 48, 75, 83, 88,
- 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 89, 34, 37, 1, 51, 1, 35, 1, 51, 2,104, 1, 95,209,254, 75,
-245,254, 75,209,170, 5, 43,250, 43, 5,213, 0, 0, 1, 0, 0, 0, 0, 4,209, 5,213, 0, 12, 0,225, 64, 68, 5, 6, 5, 9,
- 10, 9, 4, 10, 9, 3, 10, 11, 10, 2, 1, 2, 11, 11, 10, 6, 37, 7, 8, 7, 5, 37, 4, 5, 8, 8, 7, 2, 37, 3, 2, 12,
- 0, 12, 1, 37, 0, 12, 66, 10, 5, 2, 3, 8, 3, 6, 0,180, 11, 8, 12, 11, 10, 9, 8, 6, 5, 4, 3, 2, 1, 11, 7, 0,
- 47,204, 23, 57, 49, 0, 47, 60,252, 60,196, 17, 23, 57, 48, 75, 83, 88, 7, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,
-237, 7, 16, 8,201, 7, 16, 5,201, 7, 5,201, 7, 16, 8,201, 89, 34,178, 24, 9, 1, 1, 93, 64, 94, 31, 3, 31, 4, 31, 10,
- 47, 3, 47, 4, 43, 10, 63, 3, 63, 4, 56, 10, 90, 2, 90, 5, 11, 23, 11, 38, 2, 42, 3, 37, 4, 42, 5, 40, 8, 43, 9, 37,
- 11, 38, 12, 53, 2, 58, 3, 53, 4, 58, 5, 59, 8, 58, 9, 52, 11, 54, 12, 84, 0, 84, 1, 90, 2, 88, 3, 87, 4, 86, 5, 91,
- 6, 91, 7, 82, 8, 87, 9, 88, 11, 93, 12,103, 8,104, 12,121, 3,118, 4,121, 9,118, 11, 35, 93, 0, 93, 17, 51, 27, 1, 51,
- 27, 1, 51, 3, 35, 11, 1, 35,197,143,170,211,172,143,197,223,191,203,202,191, 5,213,251, 68, 3, 34,252,220, 4,190,250, 43,
- 3,119,252,137, 0, 1, 0, 18, 0, 0, 4,190, 5,213, 0, 11, 0,198, 64, 75, 9, 37, 10, 11, 10, 8, 37, 7, 8, 11, 11, 10,
- 8, 37, 9, 8, 5, 6, 5, 7, 37, 6, 6, 5, 3, 37, 4, 5, 4, 2, 37, 1, 2, 5, 5, 4, 2, 37, 3, 2, 11, 0, 11, 1,
- 37, 0, 0, 11, 66, 11, 8, 5, 2, 4, 3, 0,180, 9, 6, 11, 8, 7, 5, 2, 5, 0, 4, 59, 6, 47, 0, 59, 10, 48, 12, 16,
-252,228,252,228, 17, 23, 57, 49, 0, 47, 60,236, 50, 23, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7,
- 16, 5,237, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 89, 34,178, 55, 2, 1, 0, 93, 64, 56, 13, 5, 4,
- 11, 24, 5, 39, 1, 40, 3, 41, 5, 38, 11, 88, 11,120, 2,121, 5,119, 11, 11, 0, 2, 0, 2, 15, 8, 15, 8, 20, 2, 26, 8,
- 33, 2, 37, 5, 43, 8, 37, 11, 53, 2, 85, 2, 89, 8, 88, 11,101, 2,115, 2, 16, 93, 1, 93, 19, 51, 9, 1, 51, 9, 1, 35,
- 9, 1, 35, 1, 86,217, 1, 72, 1, 78,217,254, 65, 1,223,217,254,146,254,117,218, 1,244, 5,213,253,205, 2, 51,253, 66,252,
-233, 2,131,253,125, 3, 23, 0, 0, 1, 0, 37, 0, 0, 4,172, 5,213, 0, 8, 0, 89, 64, 46, 3, 37, 4, 5, 4, 2, 37, 1,
- 2, 5, 5, 4, 2, 37, 3, 2, 8, 0, 8, 1, 37, 0, 0, 8, 66, 2, 3, 0,180, 6, 2, 7, 3, 5, 4, 1, 7, 0, 4, 60,
- 5, 30, 0, 60, 7, 9, 16,212,236,252,236, 17, 18, 57, 17, 18, 57, 17, 57, 49, 0, 47,236, 50, 57, 48, 75, 83, 88, 7, 16, 5,
-237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 89, 34, 19, 51, 9, 1, 51, 1, 17, 35, 17, 37,215, 1,108, 1,107,217,254,
- 33,203, 5,213,253,109, 2,147,252,201,253, 98, 2,158, 0, 0, 0, 1, 0,156, 0, 0, 4,145, 5,213, 0, 9, 0, 69, 64, 28,
- 8, 37, 2, 3, 2, 3, 37, 7, 8, 7, 66, 8,151, 0,136, 3,151, 5, 8, 3, 0, 1, 4, 47, 0, 6, 48, 10, 16,252,196,252,
-196, 17, 57, 57, 49, 0, 47,236,244,236, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 5,237, 89, 34,178, 8, 8, 1, 1, 93,178, 7,
- 3, 1, 93, 19, 33, 21, 1, 33, 21, 33, 53, 1, 33,178, 3,201,252,244, 3, 34,252, 11, 2,247,253, 31, 5,213,154,251,111,170,
-154, 4,145, 0, 0, 1, 1,207,254,242, 3,119, 6, 20, 0, 7, 0, 30, 64, 15, 4,182, 6,183, 2,182, 0,181, 8, 5, 1, 3,
- 61, 0, 8, 16,212,252,196, 50, 49, 0, 16,252,236,244,236, 48, 1, 33, 21, 35, 17, 51, 21, 33, 1,207, 1,168,240,240,254, 88,
- 6, 20,143,249,252,143, 0, 0, 0, 1, 0,102,255, 66, 4, 55, 5,213, 0, 3, 0, 24, 64, 11, 1, 0,136, 4, 1, 30, 2, 0,
- 30, 3, 4, 16,212,236,212,236, 49, 0, 16,244,196, 48, 9, 1, 35, 1, 1, 37, 3, 18,190,252,237, 5,213,249,109, 6,147, 0,
- 0, 1, 1, 90,254,242, 3, 2, 6, 20, 0, 7, 0, 30, 64, 15, 3,182, 1,183, 5,182, 0,181, 8, 0, 61, 6, 2, 4, 8, 16,
-212,196, 50,236, 49, 0, 16,252,236,244,236, 48, 1, 17, 33, 53, 51, 17, 35, 53, 3, 2,254, 88,240,240, 6, 20,248,222,143, 6,
- 4,143, 0, 0, 0, 1, 0, 72, 3,168, 4,137, 5,213, 0, 6, 0, 24, 64, 10, 3, 4, 1, 0,136, 7, 3, 1, 5, 7, 16,212,
-204, 57, 49, 0, 16,244,204, 50, 57, 48, 9, 1, 35, 9, 1, 35, 1, 2,193, 1,200,178,254,145,254,146,178, 1,200, 5,213,253,
-211, 1,139,254,117, 2, 45, 0, 0, 1, 0, 0,254, 29, 4,209,254,109, 0, 3, 0, 15,181, 0,184, 1, 4, 0, 2, 47,204, 49,
- 0, 16,212,236, 48, 1, 21, 33, 53, 4,209,251, 47,254,109, 80, 80, 0, 0, 0, 0, 1, 1, 23, 4,238, 2,246, 6,102, 0, 3,
- 0, 37, 64, 9, 1,186, 0,185, 4, 1, 60, 3, 4, 16,212,236, 49, 0, 16,244, 75,176, 9, 84, 75,176, 14, 84, 91, 88,185, 0,
- 0, 0, 64, 56, 89,236, 48, 9, 1, 35, 1, 1,221, 1, 25,154,254,187, 6,102,254,136, 1,120, 0, 2, 0,133,255,227, 4, 35,
- 4,123, 0, 11, 0, 41, 0,110, 64, 42, 10, 7, 0, 26, 32, 12, 24, 15, 7, 0,182, 24, 7,140, 18, 33,139, 32,191, 29,140, 36,
-190, 18,153, 24, 13, 1, 24, 4, 25, 14, 10, 6, 12, 68, 32, 4, 6, 21, 62, 42, 16,244,236,196,252,236, 50, 50, 17, 57, 57, 49,
- 0, 47,196,228,244,252,244,236, 16,238, 16,238, 17, 57, 17, 57, 18, 57, 17, 18, 57, 48, 64, 29, 48, 31, 48, 32, 48, 33, 48, 34,
-160, 0,160, 1,160, 2,160, 10,160, 11,162, 22,160, 23,160, 24,160, 25,160, 26, 14, 93, 1, 35, 34, 6, 21, 20, 22, 51, 50, 54,
- 55, 53, 55, 17, 35, 53, 14, 1, 35, 34, 38, 53, 52, 54, 59, 1, 53, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 23, 30, 1,
- 2,190, 61,161,163,122,108,152,174, 1,185,185, 59,179,128,171,204,251,243,247, 1,134,147, 94,192, 91,102,187, 88,139,197, 61,
- 38, 32, 2, 51,113,112,101,112,211,186, 41, 76,253,129,166,100, 95,193,162,187,194, 29,134,121, 54, 52,184, 39, 39, 82, 82, 50,
-147, 0, 0, 0, 0, 2, 0,193,255,227, 4, 88, 6, 20, 0, 11, 0, 28, 0, 48, 64, 26, 24, 12, 9, 3,140, 15, 9,140, 21,153,
- 15,190, 27,155, 25, 0, 18, 18, 71, 24, 12, 6, 6, 26, 70, 29, 16,244,236, 50, 50,252,236, 49, 0, 47,236,228,244,236, 16,238,
- 17, 57, 57, 48, 1, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 1, 62, 1, 51, 50, 18, 17, 16, 2, 35, 34, 38, 39, 21, 35, 17,
- 51, 3,150,136,133,134,138,138,134,133,136,253,227, 44,155,102,202,232,233,203,100,153, 46,184,184, 2, 47,214,218,219,213,212,
-220,218, 2,120, 82, 88,254,201,254,239,254,235,254,197, 87, 83,141, 6, 20, 0, 0, 1, 0,195,255,227, 4, 37, 4,123, 0, 25,
- 0, 47, 64, 26, 12,139, 13,192, 16, 0,139, 25,192, 22,140, 3, 16,140, 9,190, 3,153, 26, 19, 18, 12, 0, 6, 70, 26, 16,244,
-196, 50,236, 49, 0, 16,228,244,236, 16,254,244,238, 16,245,238, 48, 37, 14, 1, 35, 32, 0, 17, 16, 0, 33, 50, 22, 23, 21, 46,
- 1, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 4, 37, 74,157, 82,254,252,254,219, 1, 37, 1, 4, 81,154, 78, 73,147, 93,173,186,
-187,172, 96,152, 65, 57, 43, 43, 1, 56, 1, 20, 1, 20, 1, 56, 42, 44,193, 65, 58,224,208,207,225, 59, 62, 0, 0, 2, 0,123,
-255,227, 4, 18, 6, 20, 0, 16, 0, 28, 0, 48, 64, 26, 5, 0, 20, 26,140, 14, 20,140, 8,153, 14,190, 1,155, 3, 23, 4, 0,
- 6, 2, 71, 17, 18, 11, 72, 29, 16,244,236,252,236, 50, 50, 49, 0, 47,236,228,244,236, 16,238, 17, 57, 57, 48, 1, 17, 51, 17,
- 35, 53, 14, 1, 35, 34, 2, 17, 16, 18, 51, 50, 22, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 3, 90,184,184, 46,153,100,
-203,233,234,202,101,154,254, 15,136,133,133,139,139,133,133,136, 3,209, 2, 67,249,236,141, 83, 87, 1, 59, 1, 21, 1, 17, 1,
- 55, 87,254, 11,214,218,220,212,213,219,218, 0, 0, 2, 0,123,255,227, 4, 88, 4,123, 0, 21, 0, 28, 0, 69, 64, 38, 0, 22,
- 3, 1, 10,139, 9,141, 6, 22,182, 1, 6,140, 13, 1,193, 25,140, 19,190, 13,153, 29, 3, 2, 28, 16, 9, 22, 6, 0, 73, 28,
- 18, 16, 72, 29, 16,244,236,252,236,196, 17, 18, 57, 57, 49, 0, 16,228,244,236,228, 16,238, 16,238, 16,244,238, 18, 57, 17, 57,
- 48, 1, 21, 33, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 32, 0, 17, 16, 0, 51, 50, 18, 7, 46, 1, 35, 34, 6, 7, 4, 88,
-252,227,191,174, 88,192,109,105,195, 91,254,251,254,218, 1, 32,240,214,247,184, 4,145,136,133,172, 16, 2, 94, 90, 6,183,200,
- 56, 57,183, 43, 43, 1, 57, 1, 19, 1, 12, 1, 64,254,222,197,162,169,176,156, 0, 1, 0,195, 0, 0, 4, 39, 6, 20, 0, 19,
- 0, 52, 64, 26, 5, 16, 1, 12, 8,182, 6, 1,140, 0,155, 14, 6,194, 10, 2, 19, 7, 0, 9, 5, 6, 13, 15, 11, 20, 16,212,
- 60,196,252, 60,196, 50, 57, 57, 49, 0, 47,228, 50,252,236, 16,238, 50, 18, 57, 57, 48, 1, 21, 35, 34, 6, 29, 1, 33, 21, 33,
- 17, 35, 17, 33, 53, 33, 53, 52, 54, 51, 4, 39,209, 99, 77, 1,129,254,127,184,254,213, 1, 43,169,179, 6, 20,153, 81,103, 99,
-143,252, 47, 3,209,143, 78,184,174, 0, 0, 0, 0, 2, 0,123,254, 72, 4, 18, 4,123, 0, 11, 0, 41, 0, 72, 64, 39, 25, 12,
- 30, 27, 39, 9, 3, 18,139, 19, 22, 9,140, 30, 22,140, 15, 3,140, 36,190, 30, 15,195, 40,194, 42, 39, 25, 0, 6, 12, 71, 6,
- 18, 18, 33, 72, 42, 16,244,196,236,252,236, 50, 50, 49, 0, 16,228,228,196,244,236, 16,238, 16,238, 16,213,238, 17, 18, 57, 57,
- 17, 57, 57, 48, 1, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 19, 20, 2, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 61, 2, 14,
- 1, 35, 34, 2, 17, 16, 18, 51, 50, 22, 23, 53, 51, 3, 90,135,129,135,142,143,136,127,135,184,238,231, 76,166, 83, 98,160, 67,
-149,136, 44,152,109,196,234,234,196,108,150, 47,184, 2, 57,207,215,215,207,207,217,218,254,221,252,254,252, 28, 27,182, 46, 44,
-162,176, 8,125, 94, 92, 1, 58, 1, 7, 1, 8, 1, 58, 86, 90,145, 0, 0, 0, 0, 1, 0,195, 0, 0, 4, 27, 6, 20, 0, 19,
- 0, 44, 64, 24, 9, 14, 3, 0, 3, 1, 6,140, 17,190, 12,155, 10, 1, 2, 6, 0, 74, 13, 9, 6, 11, 70, 20, 16,244,236, 50,
-252,236, 49, 0, 47, 60,236,244,236, 17, 23, 57, 57, 48, 1, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 17, 62, 1, 51,
- 50, 22, 4, 27,185,106,113,129,139,184,184, 49,168,115,171,169, 2,182,253, 74, 2,182,151,142,183,171,253,135, 6, 20,253,164,
- 96, 99,225, 0, 0, 2, 0,178, 0, 0, 4, 68, 6, 20, 0, 9, 0, 13, 0, 46, 64, 25, 8,182, 0, 12,196, 10,155, 0,194, 6,
- 2,182, 4, 3, 76, 11, 1, 6, 5, 76, 0, 75, 10, 7, 14, 16,212, 60,228,236,252, 60,236, 49, 0, 47,236, 50,228,252,236, 16,
-238, 48, 1, 33, 17, 33, 21, 33, 53, 33, 17, 33, 1, 51, 21, 35, 1, 0, 1,215, 1,109,252,110, 1,109,254,225, 1, 31,184,184,
- 4, 96,252, 47,143,143, 3, 66, 2, 67,233, 0, 0, 2, 0,186,254, 86, 3, 16, 6, 20, 0, 13, 0, 17, 0, 56, 64, 29, 5, 0,
- 1, 10,140, 8, 1,182, 3, 16,196, 14,155, 3,194, 8,195, 18, 11, 8, 2, 9, 2, 15, 4, 6, 14, 0, 18, 16,212, 60,236, 50,
-196,196, 18, 57, 57, 49, 0, 16,228,228,252,236, 16,238, 16,238, 17, 57, 57, 48, 5, 17, 33, 53, 33, 17, 20, 6, 43, 1, 53, 51,
- 50, 54, 17, 51, 21, 35, 2, 88,254,195, 1,245,179,165,254,234, 90, 90,184,184, 20, 3,229,143,251,140,195,211,156,125, 6,165,
-233, 0, 0, 0, 0, 1, 0,236, 0, 0, 4,178, 6, 20, 0, 11, 0,197, 64, 58, 8, 23, 9, 8, 5, 6, 5, 7, 23, 6, 6, 5,
- 9, 23, 3, 2, 8, 23, 7, 8, 3, 2, 5, 23, 6, 5, 2, 3, 2, 4, 23, 3, 3, 2, 66, 8, 5, 2, 3, 3,194, 0,155, 10,
- 6, 8, 5, 4, 3, 6, 9, 1, 6, 6, 68, 0, 69, 12, 16,244,236,236, 50, 17, 23, 57, 49, 0, 47, 60,236,228, 23, 57, 48, 75,
- 83, 88, 7, 16, 5,237, 7, 16, 8,237, 7, 8,237, 7, 4,237, 7, 16, 5,237, 7, 16, 8,237, 89, 34,178, 8, 7, 1, 1, 93,
- 64, 82, 6, 2, 8, 8, 22, 2, 24, 5, 24, 8, 53, 2, 52, 5, 54, 8, 70, 2,102, 2,117, 2,118, 5, 12, 9, 3, 8, 8, 25,
- 3, 23, 4, 24, 5, 25, 6, 26, 7, 24, 8, 40, 3, 39, 5, 40, 7, 59, 3, 59, 4, 55, 5, 57, 7, 55, 8, 74, 3, 73, 7, 89,
- 6, 89, 7,107, 3,105, 4,105, 6,105, 7,121, 3,120, 5,121, 6,121, 7, 28, 93, 0, 93, 19, 51, 17, 1, 51, 9, 1, 35, 1,
- 7, 17, 35,236,190, 1,227,224,254, 71, 1,254,225,254, 98,137,190, 6, 20,252,123, 1,209,254, 90,253, 70, 2, 66,129,254, 63,
- 0, 1, 0,160, 0, 0, 4, 10, 6, 31, 0, 13, 0, 38, 64, 19, 9, 0, 3, 10,182, 12,197, 3,182, 5, 3, 6, 4, 0, 6, 11,
- 76, 9, 14, 16,212,236,252,204, 57, 57, 49, 0, 47,236,252,236, 17, 57, 57, 48, 1, 20, 22, 59, 1, 21, 35, 34, 38, 53, 17, 33,
- 53, 33, 2,127, 91, 89,215,233,165,181,254,217, 1,223, 1,150,124,126,156,212,194, 3,249,144, 0, 1, 0,109, 0, 0, 4,111,
- 4,123, 0, 34, 0,163, 64, 39, 24, 18, 15, 9, 4, 7, 0, 29, 27, 6, 7, 21, 12,140, 32, 3,190, 27,194, 25, 16, 7, 0, 17,
- 15, 8, 77, 6, 78, 17, 77, 15, 78, 28, 24, 77, 26, 69, 35, 16,244, 75,176, 12, 84, 75,176, 17, 84, 91, 88,185, 0, 26,255,192,
- 56, 89,252, 60,252,236,252,236, 17, 18, 57, 49, 0, 47, 60, 60,228,244, 60,236, 50, 17, 57, 17, 57, 57, 17, 23, 57, 48, 64, 71,
- 48, 4, 48, 5, 48, 6, 48, 7, 48, 8, 48, 9, 48, 10, 48, 11, 63, 22, 63, 23, 63, 24, 63, 25, 63, 26, 63, 27, 63, 28, 63, 29,
- 63, 30,128, 3,128, 4,128, 5,128, 6,128, 7,128, 8,128, 9,128, 10,128, 11,143, 22,143, 23,143, 24,143, 25,143, 26,143, 27,
-143, 28,143, 29,143, 30, 35, 1, 93, 1, 62, 1, 51, 50, 22, 25, 1, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 52, 38, 35, 34,
- 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 2,164, 34,105, 74,135,111,168, 53, 70, 80, 59,168, 57, 74, 73, 57,167,167, 33,
- 99, 63, 76,101, 3,238, 72, 69,209,254,223,253,119, 2,129,237,115,123,229,253,127, 2,129,240,112,123,229,253,127, 4, 96, 96,
- 60, 63, 70, 0, 0, 1, 0,195, 0, 0, 4, 27, 4,123, 0, 19, 0, 44, 64, 24, 9, 14, 3, 0, 3, 1, 6,140, 17,190, 12,194,
- 10, 1, 2, 6, 0, 74, 13, 9, 6, 11, 70, 20, 16,244,236, 50,252,236, 49, 0, 47, 60,228,244,236, 17, 23, 57, 57, 48, 1, 17,
- 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 4, 27,185,106,113,129,139,184,184, 49,168,115,171,169,
- 2,182,253, 74, 2,182,151,142,183,171,253,135, 4, 96,168, 96, 99,225, 0, 0, 0, 2, 0,137,255,227, 4, 72, 4,123, 0, 11,
- 0, 23, 0, 35, 64, 19, 6,140, 18, 0,140, 12,190, 18,153, 24, 9, 18, 15, 68, 3, 18, 21, 62, 24, 16,244,236,252,236, 49, 0,
- 16,228,244,236, 16,238, 48, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 39, 50, 18, 17, 16, 2, 35, 34, 2, 17, 16, 18, 2,
-104,140,144,144,140,141,144,144,141,233,247,246,234,233,246,246, 3,223,218,214,213,219,219,213,214,218,156,254,210,254,226,254,
-225,254,211, 1, 45, 1, 31, 1, 30, 1, 46, 0, 0, 2, 0,190,254, 86, 4, 84, 4,123, 0, 16, 0, 28, 0, 51, 64, 28, 5, 0,
- 20, 26,140, 14, 20,140, 8,190, 14,153, 1,195, 3,194, 29, 17, 18, 11, 71, 23, 4, 0, 6, 2, 70, 29, 16,244,236, 50, 50,252,
-236, 49, 0, 16,228,228,228,244,236, 16,238, 17, 57, 57, 48, 37, 17, 35, 17, 51, 21, 62, 1, 51, 50, 18, 17, 16, 2, 35, 34, 38,
- 1, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 1,119,185,185, 46,153,100,203,231,232,202,102,153, 1,240,135,133,134,138,138,
-134,133,135,141,253,201, 6, 10,143, 83, 87,254,198,254,234,254,239,254,201, 87, 1,245,214,218,219,213,212,220,218, 0, 0, 0,
- 0, 2, 0,137,254, 82, 4, 31, 4,119, 0, 11, 0, 28, 0, 51, 64, 28, 24, 12, 9, 3,140, 15, 9,140, 21,190, 15,153, 27,195,
- 25,194, 29, 24, 12, 6, 6, 26, 71, 0, 18, 18, 62, 29, 16,244,236,252,236, 50, 50, 49, 0, 16,228,228,228,244,236, 16,238, 17,
- 57, 57, 48, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 14, 1, 35, 34, 2, 17, 16, 18, 51, 50, 22, 23, 53, 51, 17, 35,
- 1, 76,135,133,133,137,137,133,133,135, 2, 26, 45,153,101,201,233,232,202,100,153, 46,185,185, 2, 43,214,218,219,213,213,219,
-218,253,138, 83, 89, 1, 55, 1, 17, 1, 22, 1, 58, 87, 83,143,249,246, 0, 0, 0, 1, 1,106, 0, 0, 4,131, 4,123, 0, 17,
- 0, 79, 64, 19, 6, 7, 11, 3, 0, 17, 3,151, 14,190, 9,194, 7, 10, 6, 6, 0, 8, 18, 16,212,196,236, 50, 49, 0, 47,228,
-244,236,212,204, 17, 57, 17, 57, 48, 64, 37, 16, 0, 16, 1, 16, 17, 32, 0, 32, 1, 32, 17, 48, 0, 48, 1, 51, 16, 48, 17, 64,
- 0, 64, 1, 67, 16, 64, 17, 80, 0, 80, 1, 80, 16, 80, 17, 18, 93, 1, 46, 1, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51,
- 50, 22, 23, 4,131, 59,122, 73,172,182,185,185, 46,191,131, 68,118, 54, 3,121, 46, 42,216,204,253,211, 4, 96,219,119,127, 34,
- 36, 0, 0, 0, 0, 1, 0,213,255,227, 4, 6, 4,123, 0, 39, 0,117, 64, 64, 13, 12, 2, 14, 11, 23, 31, 30, 8, 9, 2, 7,
- 10, 23, 30, 31, 30, 66, 29, 30, 24, 10, 11, 30, 31, 4, 21, 0,139, 1,192, 4, 20,139, 21,192, 24,140, 17, 4,140, 37,190, 17,
-153, 40, 29, 10, 11, 31, 27, 7, 0, 79, 27, 6, 14, 73, 7, 6, 20, 34, 69, 40, 16,244,196,236,252,236,228, 17, 18, 57, 57, 57,
- 57, 49, 0, 16,228,244,236, 16,254,245,238, 16,245,238, 18, 23, 57, 17, 18, 57, 48, 75, 83, 88, 7, 16, 14,237, 17, 23, 57, 7,
- 14,237, 17, 23, 57, 89, 34, 1, 21, 46, 1, 35, 34, 6, 21, 20, 22, 31, 1, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51,
- 50, 54, 53, 52, 47, 2, 46, 1, 53, 52, 54, 51, 50, 22, 3,205, 79,160, 83,125,123, 92,183, 74,137,141,236,210, 83,182,106,103,
-188, 84,122,134,245, 8, 69,159,146,218,202, 90,166, 4, 57,180, 46, 46, 81, 83, 75, 74, 35, 14, 26,156,125,166,187, 35, 35,190,
- 53, 53, 99, 89,128, 49, 2, 14, 31,147,127,161,175, 33, 0, 0, 0, 1, 0,131, 0, 0, 4, 8, 5,158, 0, 19, 0, 49, 64, 24,
- 14, 5, 8, 15, 3,182, 0, 17, 1,194, 8,182, 10, 8, 11, 9, 2, 4, 0, 6, 16, 18, 14, 20, 16,212, 60,196,252, 60,196, 50,
- 57, 57, 49, 0, 47,236,244, 60,196,236, 50, 17, 57, 57, 48, 1, 17, 33, 21, 33, 17, 20, 22, 59, 1, 21, 35, 34, 38, 53, 17, 33,
- 53, 33, 17, 2,102, 1,162,254, 94, 94,117,207,225,207,170,254,213, 1, 43, 5,158,254,194,143,253,160,124, 98,147,166,203, 2,
- 96,143, 1, 62, 0, 1, 0,195,255,227, 4, 27, 4, 94, 0, 19, 0, 44, 64, 24, 9, 14, 3, 0, 3, 1, 6,140, 17,153, 10, 1,
-194, 12, 13, 9, 6, 11, 74, 2, 6, 0, 70, 20, 16,244,236,252,236, 50, 49, 0, 47,228, 50,244,236, 17, 23, 57, 57, 48, 19, 17,
- 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 35, 53, 14, 1, 35, 34, 38,195,184,107,112,130,138,185,185, 49,169,113,172,168, 1,
-168, 2,182,253, 74,151,142,183,171, 2,121,251,162,168, 97,100,225, 0, 0, 0, 0, 1, 0,100, 0, 0, 4,109, 4, 96, 0, 6,
- 0,101, 64, 41, 3, 23, 4, 5, 4, 2, 23, 1, 2, 5, 5, 4, 2, 23, 3, 2, 6, 0, 6, 1, 23, 0, 0, 6, 66, 2, 3, 0,
-194, 5, 6, 5, 3, 2, 1, 5, 4, 73, 0, 69, 7, 16,244,236, 23, 57, 49, 0, 47,228, 50, 57, 48, 75, 83, 88, 7, 16, 5,237,
- 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 89, 34,178, 39, 2, 1, 0, 93, 64, 14, 7, 0, 7, 1, 8, 3, 8, 4, 4, 5,
- 2, 37, 2, 2, 93, 1, 93, 19, 51, 9, 1, 51, 1, 35,100,191, 1, 69, 1, 70,191,254,114,237, 4, 96,252, 84, 3,172,251,160,
- 0, 1, 0, 0, 0, 0, 4,209, 4, 96, 0, 12, 1, 17, 64, 69, 11, 2, 3, 2, 10, 9, 10, 3, 3, 2, 10, 11, 10, 4, 5, 4,
- 9, 5, 5, 4, 6, 23, 7, 8, 7, 5, 23, 4, 5, 8, 8, 7, 2, 23, 3, 2, 12, 0, 12, 1, 23, 0, 12, 66, 10, 5, 2, 3,
- 8, 3, 6, 0,194, 11, 8, 12, 11, 10, 9, 8, 6, 5, 4, 3, 2, 1, 11, 7, 0, 47,204, 23, 57, 49, 0, 47, 60,244, 60,196,
- 17, 23, 57, 48, 75, 83, 88, 7, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 7, 16, 5,201, 7, 16, 8,201, 7, 16,
- 8,201, 7, 16, 5,201, 89, 34,178, 15, 10, 1, 0, 93, 64,140, 11, 9, 4, 11, 31, 0, 31, 1, 29, 2, 26, 3, 28, 4, 25, 5,
- 28, 9, 27, 10, 26, 11, 31, 12, 38, 0, 38, 1, 41, 2, 38, 5, 41, 6, 41, 7, 35, 8, 44, 12, 57, 2, 54, 5, 57, 6, 57, 7,
- 51, 8, 60, 12, 69, 8, 73, 9, 70, 11, 74, 12, 86, 8, 88, 9, 87, 11, 89, 12,102, 2,105, 3,102, 4,105, 5,106, 9,101, 11,
-118, 2,122, 5,120, 8,124, 9,114, 11, 45, 15, 10, 25, 2, 31, 3, 31, 4, 25, 5, 31, 10, 31, 10, 43, 2, 43, 5, 62, 2, 62,
- 5, 60, 10, 72, 10, 89, 10,106, 2,105, 5,104, 10,123, 2,127, 3,121, 4,127, 4,122, 5,124, 10,127, 10, 24, 93, 1, 93, 17,
- 51, 27, 1, 51, 27, 1, 51, 1, 35, 11, 1, 35,182,195,160,157,162,195,182,254,250,176,179,178,176, 4, 96,252,119, 2, 66,253,
-190, 3,137,251,160, 2,102,253,154, 0, 0, 0, 0, 1, 0, 76, 0, 0, 4,133, 4, 96, 0, 11, 0,169, 64, 72, 5, 23, 6, 7,
- 6, 4, 23, 3, 4, 7, 7, 6, 4, 23, 5, 4, 1, 2, 1, 3, 23, 2, 2, 1, 11, 23, 0, 1, 0, 10, 23, 9, 10, 1, 1, 0,
- 10, 23, 11, 10, 7, 8, 7, 9, 23, 8, 8, 7, 66, 10, 7, 4, 1, 4, 8, 0,194, 5, 2, 10, 7, 4, 1, 4, 8, 0, 2, 73,
- 8, 6, 69, 12, 16,244,196,252,196, 17, 23, 57, 49, 0, 47, 60,228, 50, 23, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 8,237,
- 7, 16, 8,237, 7, 16, 5,237, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 89, 34,178, 7, 10, 1, 0, 93,
- 64, 30, 9, 1, 6, 7,102, 1,105, 7,118, 1,121, 7, 6, 7, 1, 7, 7, 6, 10, 21, 10, 58, 4, 52, 10, 90, 4, 86, 10, 8,
- 93, 1, 93, 9, 2, 35, 9, 1, 35, 9, 1, 51, 9, 1, 4, 94,254,111, 1,184,213,254,184,254,185,213, 1,184,254,111,204, 1,
- 41, 1, 39, 4, 96,253,232,253,184, 1,193,254, 63, 2, 72, 2, 24,254,107, 1,149, 0, 0, 0, 0, 1, 0,104,254, 86, 4,129,
- 4, 96, 0, 18, 0,160, 64, 69, 13, 23, 14, 13, 2, 3, 2, 10, 11, 2, 9, 12, 23, 3, 3, 2, 17, 23, 18, 0, 18, 16, 23, 15,
- 16, 0, 0, 18, 16, 23, 17, 16, 13, 14, 13, 15, 23, 14, 14, 13, 66, 16, 19, 13, 0, 14, 9,140, 7,195, 17, 14,194, 19, 17, 16,
- 15, 13, 10, 7, 0, 7, 18, 8, 18, 73, 14, 69, 19, 16,244,236,196, 17, 23, 57, 49, 0, 16,228, 50,244,236, 17, 57, 57, 18, 57,
- 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7, 16, 5,237, 7, 16, 5,237, 17, 23, 57, 7, 16, 8,237, 89,
- 34,178, 56, 18, 1, 1, 93, 64, 26, 4, 16,118, 16, 2, 8, 17, 8, 18, 25, 12, 25, 13, 38, 14, 38, 15, 56, 17, 73, 17, 73, 18,
- 89, 13, 10, 93, 0, 93, 1, 6, 7, 2, 7, 14, 1, 43, 1, 53, 51, 50, 54, 55, 1, 51, 9, 1, 51, 3, 90, 46, 71, 99, 34, 46,
-138, 92,148,109, 81, 92, 71,254, 79,195, 1, 76, 1, 71,195, 1,104,117,191,254,248, 58, 78, 78,154, 94,196, 4, 78,252,148, 3,
-108, 0, 0, 0, 0, 1, 0,203, 0, 0, 4, 16, 4, 98, 0, 9, 0, 88, 64, 28, 3, 23, 7, 8, 7, 8, 23, 2, 3, 2, 66, 8,
-182, 0,194, 3,182, 5, 8, 3, 0, 4, 1, 73, 0, 6, 69, 10, 16,244,196,236, 50, 17, 57, 57, 49, 0, 47,236,244,236, 48, 75,
- 83, 88, 7, 16, 5,237, 7, 16, 5,237, 89, 34,178, 56, 8, 1, 1, 93, 64, 21, 54, 3, 56, 8, 69, 3, 74, 8, 87, 3, 88, 8,
-101, 3,106, 8,117, 3,122, 8, 10, 93, 19, 33, 21, 1, 33, 21, 33, 53, 1, 33,227, 3, 45,253,125, 2,131,252,187, 2,131,253,
-149, 4, 98,168,252,220,150,170, 3, 37, 0, 0, 0, 1, 0,221,254,178, 3,244, 6, 20, 0, 36, 0,102, 64, 53, 25, 15, 21, 11,
- 6, 37, 9, 26, 16, 21, 29, 11, 5, 32, 33, 3, 0, 11,182, 9, 0,182, 1,198, 9,199, 21,182, 19,181, 37, 12, 9, 10, 5, 36,
- 22, 25, 0, 29, 10, 5, 19, 2, 20, 0, 32, 25, 61, 10, 15, 5, 37, 16,212, 60,196,252, 60,196, 50, 57, 57, 17, 18, 57, 17, 18,
- 57, 57, 17, 18, 57, 57, 49, 0, 16,252,236,228,244,236, 16,238, 18, 23, 57, 18, 57, 17, 57, 57, 17, 18, 57, 17, 18, 57, 57, 48,
- 5, 21, 35, 34, 38, 61, 1, 52, 38, 43, 1, 53, 51, 50, 54, 61, 1, 52, 54, 59, 1, 21, 35, 34, 6, 29, 1, 20, 6, 7, 30, 1,
- 29, 1, 20, 22, 51, 3,244, 64,249,169,107,140, 62, 62,141,106,169,249, 64, 70,140, 85, 91,110,111, 90, 85,140,190,144,148,221,
-239,151,116,143,114,150,240,221,147,143, 87,142,248,157,142, 25, 27,142,156,248,143, 86, 0, 0, 0, 1, 2, 18,254, 29, 2,190,
- 6, 29, 0, 3, 0, 18,183, 1, 0,181, 4, 0, 4, 2, 4, 16,212,236, 49, 0, 16,252,204, 48, 1, 17, 35, 17, 2,190,172, 6,
- 29,248, 0, 8, 0, 0, 0, 0, 0, 1, 0,221,254,178, 3,244, 6, 20, 0, 36, 0,106, 64, 55, 31, 37, 27, 22, 12, 15, 8, 27,
- 11, 21, 25, 15, 4, 5, 32, 3, 0, 25,182, 27, 0,182, 35,198, 27,199, 15,182, 17,181, 37, 28, 25, 26, 21, 15, 1, 4, 0, 8,
- 26, 21, 35, 18, 4, 0, 26, 31, 21, 61, 16, 0, 11, 4, 37, 16,212, 60,196, 50,252, 60,196, 17, 18, 57, 57, 17, 18, 57, 17, 18,
- 57, 57, 17, 18, 57, 57, 49, 0, 16,252,236,228,244,236, 16,238, 18, 23, 57, 17, 18, 57, 57, 17, 57, 17, 57, 57, 17, 18, 57, 48,
- 23, 51, 50, 54, 61, 1, 52, 54, 55, 46, 1, 61, 1, 52, 38, 43, 1, 53, 51, 50, 22, 29, 1, 20, 22, 59, 1, 21, 35, 34, 6, 29,
- 1, 20, 6, 43, 1,221, 68,141, 86, 90,111,110, 91, 86,141, 68, 62,249,168,107,141, 64, 64,141,107,168,249, 62,190, 88,141,248,
-156,142, 27, 25,142,157,248,141, 88,143,147,221,240,150,114,143,116,151,239,221,148, 0, 0, 0, 0, 1, 0, 88, 1,236, 4,121,
- 3, 12, 0, 27, 0, 38, 64, 18, 1, 11, 4, 15, 0, 14, 4,160, 25, 18, 0,160, 11, 28, 0, 14, 39, 28, 16,252,196, 49, 0, 16,
-212,252, 60,212,236, 50, 18, 57, 17, 18, 57, 48, 1, 21, 14, 1, 35, 34, 39, 38, 39, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50,
- 22, 23, 22, 23, 22, 51, 50, 54, 4,121, 75,143, 79, 90,113, 22, 11, 77,103, 51, 79,141, 73, 78,146, 83, 53,100, 74, 12, 21,116,
- 93, 70,137, 3, 12,174, 59, 55, 51, 10, 4, 33, 24, 59, 63,174, 60, 54, 22, 31, 5, 10, 55, 61, 0, 2, 2, 4, 0, 0, 2,207,
- 5,213, 0, 3, 0, 9, 0, 30, 64, 14, 6, 0,134, 1,136, 4, 7, 6, 8, 2, 3, 4, 0, 10, 16,212, 60,236, 50, 57, 57, 49,
- 0, 47,244,252,204, 48, 1, 53, 51, 21, 3, 17, 19, 51, 19, 17, 2, 4,203,203, 21,161, 21, 4,215,254,254,251, 41, 2,143, 1,
-101,254,155,253,113, 0, 0, 0, 0, 2, 0,213,254,199, 4, 37, 5,152, 0, 26, 0, 33, 0, 78, 64, 42, 27, 8, 5, 4, 28, 0,
-139, 1,141, 28, 9,139, 8,141, 5,203, 12, 28,203, 22, 24, 21,190, 15, 12,153, 13, 34, 27, 21, 14, 7, 23, 12, 4, 8, 0, 31,
- 30, 18, 69, 34, 16,244,236,212, 60,212, 60, 60,236, 50, 50, 49, 0, 16,196,228, 50,244, 60,196,236, 16,254,244,238, 16,245,238,
- 17, 57, 17, 18, 57, 48, 1, 21, 46, 1, 39, 17, 62, 1, 55, 21, 14, 1, 7, 17, 35, 17, 38, 0, 53, 52, 0, 55, 17, 51, 17, 30,
- 1, 1, 17, 14, 1, 21, 20, 22, 4, 37, 67,130, 63, 63,131, 66, 73,130, 57,103,225,254,252, 1, 7,222,103, 57,130,254,222,132,
-160,160, 4, 53,172, 40, 44, 4,252,154, 5, 45, 40,172, 31, 34, 3,254,226, 1, 30, 22, 1, 57,251,250, 1, 61, 19, 1, 31,254,
-225, 3, 34,252, 43, 3, 96, 12,236,184,184,235, 0, 1, 0,139, 0, 0, 4, 88, 5,240, 0, 27, 0, 62, 64, 32, 7, 22, 1, 18,
- 10,182, 20, 8, 12, 1,139, 0,167, 4,151, 25,150, 16, 12,151, 14, 0, 13, 9, 11, 7, 30, 15, 19, 21, 17, 28, 16,212, 60,196,
-196,252, 60,196,212,196, 49, 0, 47,236, 50,244,236,244,236, 16,212, 60,238, 50, 18, 57, 57, 48, 1, 21, 46, 1, 35, 34, 6, 29,
- 1, 33, 21, 33, 17, 33, 21, 33, 53, 51, 17, 35, 53, 51, 53, 52, 54, 51, 50, 22, 4, 68, 62,127, 67,134,127, 1,115,254,141, 2,
- 25,252, 51,236,199,199,219,223, 65,137, 5,182,184, 44, 44,179,192,217,143,254, 47,170,170, 1,209,143,238,254,250, 29, 0, 0,
- 0, 2, 0,205, 0,195, 4, 76, 4, 66, 0, 11, 0, 47, 0,129, 64, 26, 32, 22, 27, 23, 14, 40, 45, 13, 24, 30, 27, 9, 42, 12,
- 45, 39, 33, 21, 15, 4, 3, 9,255, 31, 23, 27,184, 1, 0, 64, 39, 3,255, 41, 13, 45, 48, 31, 41, 36, 32, 13, 23, 18, 14, 33,
- 39, 36, 6, 15, 21, 18, 42, 30, 24, 12, 4, 6, 0,120, 22, 14, 18,121, 6,120, 40, 32, 36, 48, 16,212,196, 50,236,252,196, 50,
-236, 17, 23, 57, 17, 57, 57, 17, 18, 57, 57, 17, 18, 57, 57, 17, 18, 57, 57, 49, 0, 16,212,196, 50,236,252,196, 50,236, 17, 23,
- 57, 18, 57, 57, 17, 18, 57, 57, 17, 18, 57, 57, 17, 18, 57, 57, 48, 1, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 3, 55, 23,
- 7, 30, 1, 21, 20, 6, 7, 23, 7, 39, 14, 1, 35, 34, 38, 39, 7, 39, 55, 46, 1, 53, 52, 54, 55, 39, 55, 23, 62, 1, 51, 50,
- 22, 3,100,124, 91, 90,125,125, 90, 91,124, 24,166, 90,166, 30, 29, 30, 31,168, 94,166, 46, 91, 50, 48, 96, 48,164, 92,166, 31,
- 29, 31, 31,168, 94,166, 46, 91, 51, 46, 94, 2,131, 90,123,123, 90, 92,125,126, 1,116,166, 93,166, 49, 93, 48, 50, 91, 45,166,
- 94,167, 31, 30, 29, 28,163, 90,166, 51, 93, 46, 50, 93, 45,166, 95,168, 31, 30, 29, 0, 0, 0, 0, 1, 0, 37, 0, 0, 4,172,
- 5,213, 0, 24, 0,127, 64, 68, 3, 37, 4, 9, 4, 2, 37, 1, 2, 9, 9, 4, 2, 37, 3, 2, 20, 0, 20, 1, 37, 0, 0, 20,
- 66, 2, 7, 5, 16, 12,231, 18, 10, 23, 5,231, 21, 7, 3, 0,136, 14, 24, 1, 17, 2, 15, 8, 5, 3, 3, 6, 4, 60, 11, 6,
-101, 13, 9, 30, 22, 17,101, 0, 60, 19, 15, 25, 16,212, 60,236,236, 50,252, 60,236, 50,236, 18, 23, 57, 18, 57, 17, 57, 57, 49,
- 0, 47,228, 50,212, 60,236, 50,212, 60,236, 50, 17, 18, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 8,237, 7, 16, 8,237, 7,
- 16, 5,237, 89, 34, 19, 51, 9, 1, 51, 1, 51, 21, 33, 7, 21, 33, 21, 33, 17, 35, 17, 33, 53, 33, 53, 39, 33, 53, 51, 37,215,
- 1,108, 1,107,217,254,182,252,254,197, 86, 1,145,254,111,203,254,113, 1,143, 90,254,203,243, 5,213,253,109, 2,147,253,207,
-111,151, 35,111,253,244, 2, 12,111, 35,151,111, 0, 2, 2, 18,254,162, 2,190, 5,152, 0, 3, 0, 7, 0, 33,188, 0, 5, 1,
- 7, 0, 4, 0, 0, 1, 7,183, 1, 8, 4, 0, 4, 6, 2, 8, 16,212, 60,236, 50, 49, 0, 16,212,236,212,236, 48, 1, 17, 35,
- 17, 19, 17, 35, 17, 2,190,172,172,172, 5,152,253, 10, 2,246,252, 0,253, 10, 2,246, 0, 0, 0, 2, 0,199,255, 61, 4, 12,
- 5,240, 0, 50, 0, 62, 0,106, 64, 60, 35, 36, 30, 57, 51, 11, 17, 36, 42, 4, 1, 27,143, 26,206, 30,207, 23, 1,143, 0,206,
- 4,207, 48,150, 23, 63, 35, 7, 17, 60, 33, 42, 54, 11, 36, 57, 51, 4, 7, 33, 85, 20, 7, 85, 45, 20, 60, 85, 0, 38, 14, 45,
- 26, 38, 54, 85, 39, 63, 16,212,236,228,196,212,228,236,196, 16,238, 16,238, 17, 23, 57, 18, 57, 17, 18, 57, 18, 57, 49, 0, 16,
-196,244,236,244,236, 16,238,246,238, 17, 23, 57, 57, 57, 17, 18, 57, 48, 1, 21, 46, 1, 35, 34, 6, 21, 20, 23, 22, 23, 30, 1,
- 21, 20, 6, 7, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 47, 1, 46, 1, 53, 52, 54, 55, 46, 1, 53,
- 52, 54, 51, 50, 22, 1, 14, 1, 21, 20, 22, 23, 62, 1, 53, 52, 38, 3,168, 83,143, 57, 97,107,205, 26, 14,212,130, 91, 93, 61,
- 58,204,173, 73,155, 87, 87,148, 57,102,113,221, 24,214,128, 93, 91, 60, 59,200,167, 72,153,254,141, 62, 61,141,247, 62, 60,143,
- 5,182,164, 39, 39, 80, 71, 90,115, 15, 8,119,154,101, 90,140, 53, 52,109, 64,142,168, 29, 29,164, 39, 39, 84, 76,102,123, 14,
-120,153,102, 91,143, 49, 44,112, 69,130,159, 29,253,213, 45, 90, 47, 76,135,133, 45, 90, 47, 76,136, 0, 0, 0, 0, 2, 1, 63,
- 5, 70, 3,145, 6, 16, 0, 3, 0, 7, 0, 29, 64, 14, 6, 2,222, 4, 0,221, 8, 5, 97, 4, 1, 97, 0, 8, 16,212,252,212,
-236, 49, 0, 16,244, 60,236, 50, 48, 1, 51, 21, 35, 37, 51, 21, 35, 1, 63,203,203, 1,136,202,202, 6, 16,202,202,202, 0, 0,
- 0, 3, 0, 0, 0,125, 4,209, 5, 78, 0, 25, 0, 49, 0, 73, 0, 68, 64, 39, 13,218, 14, 10,218, 17,220, 38,212, 62, 1,218,
- 0, 4,218, 23,217, 26,212, 62,211, 50,209, 74, 7, 92, 20, 13, 0, 94, 44, 7, 56, 20, 32, 7, 56, 89, 68, 47,230,254,197, 16,
-254,229, 50, 16,238, 49, 0, 16,244,236,252,244,236,212,236, 16,254,253,238,214,238, 48, 1, 21, 46, 1, 35, 34, 6, 21, 20, 22,
- 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 53, 52, 54, 51, 50, 22, 39, 34, 6, 7, 14, 1, 21, 20, 22, 23, 30, 1, 51, 50, 54, 55,
- 62, 1, 53, 52, 38, 39, 46, 1, 39, 50, 22, 23, 30, 1, 21, 20, 6, 7, 14, 1, 35, 34, 38, 39, 46, 1, 53, 52, 54, 55, 62, 1,
- 3, 96, 58,111, 58,117,135,140,130, 56,103, 50, 52,114, 61,180,207,208,179, 61,114,196,106,181, 75, 75, 77, 77, 75, 76,181,105,
-106,181, 76, 76, 75, 76, 75, 75,181,107,127,218, 90, 90, 92, 91, 91, 91,218,126,125,218, 91, 91, 91, 92, 90, 90,218, 4, 47,108,
- 28, 27,149,128,132,142, 25, 26,104, 23, 22,200,172,173,202, 22,161, 74, 75, 75,184,106,104,183, 75, 76, 76, 76, 76, 76,181,105,
-106,184, 75, 75, 74,103, 90, 90, 91,220,126,125,218, 91, 91, 91, 91, 91, 91,218,125,126,220, 91, 90, 90, 0, 0, 0, 3, 1, 14,
- 1,213, 3,193, 5,240, 0, 10, 0, 37, 0, 41, 0,100, 64, 54, 9, 6, 0, 25, 31, 11, 23, 14, 6, 0, 40,243, 38, 0,237, 23,
- 38,241, 6,237, 12, 17, 32,239, 31,238, 28,237, 17,240, 35,150, 42, 38, 31, 20, 0, 23, 9, 3, 40, 39, 24, 13, 9,106, 11,107,
- 31, 3,106, 20,105, 42, 16,252,236,196,252,236, 50, 50,192,192, 17, 18, 57, 57, 17, 18, 57, 49, 0, 16,244,228,252,244,236, 16,
-196,238,237,214,238, 16,238, 17, 18, 57, 18, 57, 17, 57, 17, 18, 57, 48, 1, 34, 6, 21, 20, 22, 51, 50, 54, 61, 1, 55, 17, 35,
- 53, 14, 1, 35, 34, 38, 53, 52, 54, 59, 1, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 1, 33, 21, 33, 2,172,144,124,
- 87, 72,105,131,143,143, 49,131, 82,129,150,187,172,182,119,117, 51,125, 67, 68,135, 63,184,172,253,107, 2,156,253,100, 4, 80,
- 68, 78, 64, 77,143,115, 29, 61,254, 64,112, 65, 66,136,116,129,140, 4, 90, 92, 35, 33,127, 28, 28,172,253, 12,123, 0, 0, 0,
- 0, 2, 0,119, 0,141, 4, 18, 4, 35, 0, 6, 0, 13, 0, 47, 64, 23, 9, 2, 11, 4,252, 7, 0,172, 14, 2, 12, 5, 9, 0,
- 10, 7,118, 12, 3, 0,118, 5, 14, 16,212,252, 60,212,236, 50, 17, 57, 17, 18, 57, 49, 0, 16,244, 60,236, 50, 57, 57, 48, 1,
- 21, 9, 1, 21, 1, 53, 1, 21, 9, 1, 21, 1, 53, 2, 76,254,211, 1, 45,254, 43, 3,155,254,211, 1, 45,254, 43, 4, 35,191,
-254,244,254,244,191, 1,162, 82, 1,162,191,254,244,254,244,191, 1,162, 82, 0, 0, 1, 0, 88, 1,115, 4,121, 3, 94, 0, 5,
- 0, 24, 64, 11, 4,160, 2, 0, 6, 3, 28, 1, 0, 39, 6, 16,252,212,236, 49, 0, 16,212,196,236, 48, 19, 33, 17, 35, 17, 33,
- 88, 4, 33,168,252,135, 3, 94,254, 21, 1, 63, 0, 1, 1,100, 1,223, 3,109, 2,131, 0, 3, 0, 17,182, 0,160, 2, 4, 1,
- 0, 4, 16,212,196, 49, 0, 16,212,236, 48, 1, 33, 21, 33, 1,100, 2, 9,253,247, 2,131,164, 0, 4, 0, 0, 0,125, 4,209,
- 5, 78, 0, 19, 0, 28, 0, 52, 0, 76, 0,133, 64, 73, 15, 14, 13, 3, 16, 12, 93, 9, 10, 9, 11, 93, 10, 10, 9, 66, 12, 10,
- 6, 22, 9, 10, 22,215, 15, 20,215, 0, 17, 10,214, 65,212, 41, 0,213, 53,212, 41,211, 29,209, 77, 23, 20, 15, 12, 4, 0, 6,
- 16, 9, 26, 3, 21, 16, 92, 18, 26, 92, 10, 3, 91, 71, 7, 35, 18, 88, 59, 7, 35, 89, 47, 47,230,254,229, 16,254,245,196,238,
- 16,238, 50, 17, 18, 57, 17, 57, 57, 23, 57, 49, 0, 16,244,236,252,228, 16,254,237, 50, 16,238,214,238, 18, 57, 18, 57, 18, 57,
- 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 4,237, 17, 23, 57, 89, 34, 1, 50, 22, 21, 20, 6, 7, 30, 1, 31, 1, 35, 39, 46, 1,
- 43, 1, 17, 35, 17, 23, 35, 21, 51, 50, 54, 53, 52, 38, 3, 50, 22, 23, 30, 1, 21, 20, 6, 7, 14, 1, 35, 34, 38, 39, 46, 1,
- 53, 52, 54, 55, 62, 1, 23, 34, 6, 7, 14, 1, 21, 20, 22, 23, 30, 1, 51, 50, 54, 55, 62, 1, 53, 52, 38, 39, 46, 1, 2, 88,
-147,144, 88, 80, 19, 58, 38,114,143,107, 49, 61, 45, 55,130,232,102,102, 90, 74, 74, 68,127,218, 90, 90, 92, 91, 91, 91,218,126,
-125,218, 91, 91, 91, 92, 90, 90,218,126,106,181, 75, 75, 77, 77, 75, 76,181,105,106,181, 76, 76, 75, 76, 75, 75,181, 4, 76, 98,
-101, 71, 93, 14, 5, 67, 59,186,174, 80, 42,254,216, 2,182, 84,232, 54, 63, 62, 53, 1, 86, 90, 90, 91,220,126,125,218, 91, 91,
- 91, 91, 91, 91,218,125,126,220, 91, 90, 90,103, 74, 75, 75,184,106,104,183, 75, 76, 76, 76, 76, 76,181,105,106,184, 75, 75, 74,
- 0, 1, 1, 61, 5, 98, 3,147, 5,246, 0, 3, 0, 17,182, 2,182, 0, 4, 1, 0, 4, 16,212,204, 49, 0, 16,212,236, 48, 1,
- 33, 21, 33, 1, 61, 2, 86,253,170, 5,246,148, 0, 2, 1, 43, 3,117, 3,166, 5,240, 0, 14, 0, 26, 0, 32, 64, 17, 21,204,
- 9,205, 15,204, 0,150, 27, 24, 83, 6, 84, 18, 83, 12, 27, 16,212,236,252,236, 49, 0, 16,244,236,252,236, 48, 1, 50, 22, 23,
- 30, 1, 21, 20, 6, 35, 34, 38, 53, 52, 54, 23, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 2,104, 65,117, 44, 45, 47,186,134,
-135,180,184,133, 79,111,109, 79, 80,113,112, 5,240, 49, 46, 45,114, 66,132,183,180,135,134,186,129,111, 80, 80,108,110, 78, 79,
-112, 0, 0, 0, 0, 2, 0, 88, 0, 0, 4,121, 4,147, 0, 3, 0, 15, 0, 46, 64, 24, 9,227, 11, 7,160, 4,227, 13, 5, 0,
-160, 2, 6, 1, 26, 8, 4, 28, 12, 0, 26, 14, 10, 16, 16,212, 60,236, 50,252, 60,236, 50, 49, 0, 47,236,212, 60,236,252, 60,
-236, 48, 55, 33, 21, 33, 1, 17, 33, 21, 33, 17, 35, 17, 33, 53, 33, 17, 88, 4, 33,251,223, 2,100, 1,189,254, 67,168,254, 68,
- 1,188,170,170, 4,147,254,183,170,254,180, 1, 76,170, 1, 73, 0, 1, 1, 66, 2,156, 3,125, 5,240, 0, 24, 0, 97, 64, 19,
- 0, 87, 4, 5, 4, 22, 23, 2, 21, 24, 87, 5, 5, 4, 66, 5, 24, 14, 0, 65, 9, 1, 9, 0, 2, 0, 14, 1, 9, 0, 15, 0,
- 2, 1, 10, 0, 11, 1, 9, 64, 14, 18,150, 25, 5, 0, 24, 14, 8,127, 1, 21, 14, 3, 25, 16,212,196,212,196,236, 17, 57, 57,
- 57, 49, 0, 16,244,236,228,212,236, 16,238, 17, 57, 57, 48, 75, 83, 88, 7, 16, 4,237, 17, 23, 57, 7, 16, 5,237, 89, 34, 1,
- 33, 21, 33, 53, 55, 62, 1, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 21, 20, 6, 7, 1,227, 1,154,253,197,231,101,
- 81,100, 82, 49,113, 63, 65,121, 59,142,172, 74,119, 3, 14,114,110,226, 97,122, 51, 61, 76, 36, 36,125, 28, 28,133,107, 57,119,
-117, 0, 0, 0, 0, 1, 1, 70, 2,141, 3,156, 5,240, 0, 40, 0, 92, 65, 20, 0, 0, 0, 19, 1, 9, 0, 21, 0, 10, 1, 9,
- 0, 9, 1, 11, 0, 21, 0, 13, 1, 9, 0, 6, 0, 31, 1, 9, 0, 32, 1, 11, 0, 6, 1, 10, 0, 28, 1, 9, 64, 19, 35,150,
- 41, 22, 19, 13, 0, 3, 20, 25,127, 38, 16,127, 3, 31, 20, 9, 41, 16,212,196,196,212,236,212,236, 17, 23, 57, 57, 49, 0, 16,
-244,236,228,244,236, 16,238,198,246,238, 16,238, 57, 48, 1, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52,
- 38, 43, 1, 53, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 21, 20, 6, 2,219, 94, 99,190,177, 58,114, 59,
- 69,113, 45,101,118,110,109, 66, 74, 93, 98, 96, 87, 44,112, 59, 69,117, 50,145,168, 88, 4, 96, 21,108, 80,124,134, 21, 20,121,
- 27, 26, 81, 68, 74, 76,108, 63, 60, 56, 63, 24, 23,121, 17, 18,118, 99, 71, 93, 0, 1, 1,219, 4,238, 3,186, 6,102, 0, 3,
- 0, 37, 64, 9, 2,186, 0,185, 4, 1, 60, 3, 4, 16,212,236, 49, 0, 16,244, 75,176, 9, 84, 75,176, 14, 84, 91, 88,185, 0,
- 0, 0, 64, 56, 89,236, 48, 1, 51, 1, 35, 2,244,198,254,187,154, 6,102,254,136, 0, 0, 0, 0, 1, 0,195,254, 84, 4,158,
- 4, 96, 0, 32, 0, 76, 64, 42, 19, 25, 31, 3, 22, 6, 3, 9, 12, 3, 1, 18, 6,140, 15,139, 28, 22,153, 0,195, 10, 1,194,
- 33, 25, 11, 9, 32, 31, 2, 0, 18, 9, 6, 11, 74, 2, 6, 0, 70, 33, 16,244,236,252,236,196, 17, 18, 57, 57, 17, 18, 57, 49,
- 0, 16,228, 50,228,244, 60,236,252,196, 17, 23, 57, 17, 18, 23, 57, 48, 19, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20,
- 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 39, 14, 1, 35, 34, 38, 39, 17,195,184,120,111,127,129,185, 32, 33, 9, 29, 28, 38,
- 68, 34, 62, 75, 12, 46,133, 89, 92,127, 44,254, 84, 6, 12,253, 72,142,151,170,166, 2,141,252,160, 59, 56, 10, 13,148, 23, 22,
- 79, 79, 80, 78, 76, 80,253,213, 0, 1, 0,106,255, 59, 4, 6, 5,213, 0, 13, 0, 35, 64, 17, 4, 8, 0,136, 6, 2, 14, 0,
- 7, 87, 5, 3, 87, 1, 49, 11, 14, 16,220,252,252,212,236, 57, 49, 0, 16,196, 50,244,196,204, 48, 1, 33, 17, 35, 17, 35, 17,
- 35, 17, 46, 1, 53, 52, 36, 2, 70, 1,192,141,191,141,215,236, 1, 5, 5,213,249,102, 6, 31,249,225, 3, 78, 17,221,184,190,
-232, 0, 0, 0, 0, 1, 1,233, 2, 47, 2,229, 3, 96, 0, 3, 0, 21,185, 0, 2, 1, 1,181, 0, 4, 1, 29, 0, 4, 16,212,
-236, 49, 0, 16,212,236, 48, 1, 51, 17, 35, 1,233,252,252, 3, 96,254,207, 0,255,255, 1,139,254,117, 3, 41, 0, 0, 16, 6,
- 2,163, 0, 0, 0, 1, 1, 88, 2,156, 3,147, 5,223, 0, 10, 0, 57, 65, 11, 0, 7, 0, 0, 1, 9, 0, 9, 0, 3, 1, 9,
- 0, 4, 0, 9, 1, 10, 0, 2, 1, 9, 64, 13, 5,150, 11, 8, 97, 6, 87, 3,125, 0, 97, 1, 11, 16,212,236,236,252,236, 49,
- 0, 16,244,236,228,212,236, 16,238, 50, 48, 1, 51, 17, 7, 53, 55, 51, 17, 51, 21, 33, 1,106,205,223,229,138,204,253,215, 3,
- 10, 2, 99, 41,116, 39,253, 43,110, 0, 0, 0, 0, 3, 0,244, 1,213, 3,221, 5,240, 0, 11, 0, 23, 0, 27, 0, 51, 64, 28,
- 26,243, 24,241, 6,237, 18,240, 0,237, 12,150, 28, 25, 15, 9, 24, 21, 3, 9,106, 15,107, 3,106, 21,105, 28, 16,252,236,252,
-236, 17, 18, 57, 17, 18, 57, 49, 0, 16,244,236,244,236,252,236, 48, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 39, 50, 22,
- 21, 20, 6, 35, 34, 38, 53, 52, 54, 3, 33, 21, 33, 2,104,102,115,115,102,101,117,115,103,170,203,202,171,170,202,203,171, 2,
-164,253, 92, 5,123,156,139,139,154,157,136,139,156,117,224,188,187,223,223,187,188,224,252, 96,123, 0, 0, 0, 0, 2, 0,193,
- 0,141, 4, 92, 4, 35, 0, 6, 0, 13, 0, 47, 64, 23, 12, 5, 10, 3,252, 7, 0,172, 14, 5, 8, 1, 12, 7, 1,118, 3, 0,
- 8,118, 10, 7, 14, 16,212, 60,252,212, 60,236, 18, 57, 17, 18, 57, 49, 0, 16,244, 60,236, 50, 57, 57, 48, 9, 1, 21, 1, 53,
- 9, 1, 37, 1, 21, 1, 53, 9, 1, 2,135, 1,213,254, 43, 1, 45,254,211,254, 58, 1,213,254, 43, 1, 45,254,211, 4, 35,254,
- 94, 82,254, 94,191, 1, 12, 1, 12,191,254, 94, 82,254, 94,191, 1, 12, 1, 12,255,255, 0, 27,254,242, 4, 90, 6,123, 16, 39,
- 6,170, 0,184,252, 86, 16, 39, 0,123,254,254, 0,156, 16, 6, 11,182, 0, 0,255,255, 0, 27,254,242, 4, 90, 6,123, 16, 39,
- 0,123,254,254, 0,156, 16, 38, 11,182, 0, 0, 16, 7, 0,116, 0,201,252, 86,255,255, 0, 27,254,242, 4, 90, 6,140, 16, 39,
- 6,170, 0,184,252, 86, 16, 39, 0,117,255, 29, 0,156, 16, 6, 11,182, 0, 0, 0, 2, 0,193,255,229, 3,221, 5,213, 0, 33,
- 0, 37, 0,130, 64, 71, 11, 10, 9, 8, 7, 5, 12, 6, 37, 25, 26, 25, 3, 4, 2, 2, 5, 37, 26, 26, 25, 66, 33, 26, 5, 2,
- 4, 6, 25, 0, 16,139, 15,141, 12, 0, 34,134, 36, 12,151, 19,153, 36,136, 38, 6, 35, 25, 22, 9, 31, 5, 0, 3, 29, 1, 26,
- 35, 9, 41, 22, 15, 29, 3, 1, 15, 34, 30, 35, 38, 16,212,252,196,212,236, 16,214,238, 17, 57, 17, 18, 23, 57, 17, 18, 57, 18,
- 57, 49, 0, 16,228,244,236, 16,254,205, 16,244,238, 18, 57, 57, 23, 57, 48, 75, 83, 88, 7, 16, 4,237, 17, 23, 57, 7, 16, 4,
-237, 17, 23, 57, 89, 34, 1, 51, 21, 20, 6, 15, 1, 14, 1, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 53, 52, 54, 63,
- 1, 62, 1, 53, 52, 53, 54, 53, 19, 35, 53, 51, 2, 37,190, 61, 84, 90, 62, 47,131,109, 78,178, 98, 94,191,104,186,221, 67, 94,
- 88, 67, 38, 2,196,202,202, 4, 68,154, 98,137, 82, 89, 59, 88, 49, 89,110, 69, 68,188, 57, 56,192,161, 76,131, 92, 86, 64, 84,
- 63, 1, 4, 23, 19, 1, 14,254,255,255, 0, 37, 0, 0, 4,172, 7,107, 16, 38, 0, 36, 0, 0, 17, 7, 11,179, 0, 0, 1,117,
- 0, 7, 64, 3, 79, 11, 1, 93, 49, 0, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7,107, 16, 38, 0, 36, 0, 0, 17, 7, 11,177,
- 0, 0, 1,117, 0, 7, 64, 3, 79, 11, 1, 93, 49, 0, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7,109, 16, 38, 0, 36, 0, 0,
- 17, 7, 11,180, 0, 0, 1,117, 0, 20,180, 5, 13, 17, 10, 7, 43, 64, 9, 32, 17, 47, 13, 0, 17, 15, 13, 4, 93, 49, 0, 0,
-255,255, 0, 37, 0, 0, 4,172, 7, 94, 16, 38, 0, 36, 0, 0, 17, 7, 11,178, 0, 0, 1,117, 0, 16,180, 5, 35, 20, 10, 7,
- 43, 64, 5, 79, 35, 64, 20, 2, 93, 49, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7, 78, 16, 38, 0, 36, 0, 0, 17, 7, 11,176,
- 0, 0, 1,117, 0, 28,180, 5, 17, 14, 10, 7, 43, 64, 17,112, 14,127, 17, 48, 14, 63, 17, 32, 14, 47, 17, 0, 14, 15, 17, 8,
- 93, 49, 0, 0, 0, 3, 0, 37, 0, 0, 4,172, 7,109, 0, 11, 0, 14, 0, 33, 0,193, 64, 87, 12, 37, 13, 12, 27, 28, 27, 14,
- 37, 28, 27, 30, 37, 28, 27, 29, 37, 28, 28, 27, 32, 37, 15, 33, 31, 37, 15, 33, 13, 37, 33, 15, 33, 12, 37, 14, 12, 15, 15, 33,
- 66, 12, 27, 15, 9, 30,151, 13, 3,200, 21, 9,144, 13,201, 32, 28, 29, 28, 24, 32, 33, 31, 13, 18, 6, 30, 14, 24, 12, 6, 27,
- 0, 80, 24, 15, 6, 80, 18, 24, 75, 28, 47, 18, 75, 33, 34, 16,220,228,252,228, 16,238, 50, 16,238, 50, 17, 57, 17, 57, 57, 17,
- 18, 57, 57, 17, 57, 17, 18, 57, 49, 0, 47, 60,230,230,214,238, 16,238, 18, 57, 57, 57, 48, 75, 83, 88, 7, 16, 8,237, 7, 16,
- 5,237, 7, 5,237, 7, 5,237, 7, 16, 5,237, 7, 5,237, 7, 5,237, 7, 16, 8,237, 89, 34,178,128, 31, 1, 0, 93, 64, 20,
-133, 13,138, 14,138, 30,133, 31, 4,143, 12,143, 12,128, 13,128, 14,128, 30, 5, 93, 1, 93, 1, 52, 38, 35, 34, 6, 21, 20, 22,
- 51, 50, 54, 7, 3, 33, 1, 46, 1, 53, 52, 54, 51, 50, 22, 21, 20, 6, 7, 1, 35, 3, 33, 3, 35, 3, 0, 89, 63, 64, 87, 88,
- 63, 63, 89,152,213, 1,170,254,148, 58, 65,160,114,114,161, 64, 59, 1,172,209,110,253,245,108,209, 6, 90, 63, 89, 87, 65, 63,
- 88, 88,252,253, 8, 3, 80, 33,121, 73,114,161,161,114, 73,118, 36,250,137, 1,133,254,123, 0, 0, 2, 0, 0, 0, 0, 4,156,
- 5,213, 0, 15, 0, 19, 0,103, 64, 55, 13, 37, 15, 14, 12, 37, 15, 14, 17, 37, 14, 15, 14, 16, 37, 15, 15, 14, 66, 5,151, 3,
- 11,151, 17, 16, 1,151, 0,136, 7,151, 17,176, 3,177, 13, 9, 17, 16, 15, 13, 12, 5, 14, 10, 0, 4, 8, 6, 2, 99, 18, 10,
- 14, 47,212, 60,238, 50,214,196,196, 17, 18, 23, 57, 49, 0, 47, 60,238,238,238,244,238, 50, 16,238, 16,238, 48, 75, 83, 88, 7,
- 16, 5,237, 7, 16, 5,237, 7, 5,237, 7, 5,237, 89, 34, 1, 21, 33, 17, 33, 21, 33, 17, 33, 21, 33, 17, 33, 3, 35, 1, 23,
- 3, 33, 17, 4,137,254,174, 1, 51,254,205, 1,101,253,225,254,160,101,184, 1,154,120,202, 1, 53, 5,213,170,254, 70,170,253,
-227,170, 1,127,254,129, 5,213,170,252,252, 3, 4, 0, 0, 0,255,255, 0,139,254,117, 4, 49, 5,240, 16, 38, 2,163,100, 0,
- 16, 6, 0, 38, 0, 0, 0, 0,255,255, 0,197, 0, 0, 4, 78, 7,107, 16, 38, 0, 40, 0, 0, 16, 7, 11,179, 0, 18, 1,117,
-255,255, 0,197, 0, 0, 4, 78, 7,107, 16, 38, 0, 40, 0, 0, 16, 7, 11,177, 0, 18, 1,117,255,255, 0,197, 0, 0, 4, 78,
- 7,109, 16, 38, 0, 40, 0, 0, 16, 7, 11,180, 0, 18, 1,117,255,255, 0,197, 0, 0, 4, 78, 7, 78, 16, 38, 0, 40, 0, 0,
- 16, 7, 11,176, 0, 18, 1,117,255,255, 0,201, 0, 0, 4, 6, 7,107, 16, 38, 0, 44, 0, 0, 16, 7, 11,179, 0, 0, 1,117,
-255,255, 0,201, 0, 0, 4, 6, 7,107, 16, 38, 0, 44, 0, 0, 16, 7, 11,177, 0, 0, 1,117,255,255, 0,201, 0, 0, 4, 6,
- 7,109, 16, 38, 0, 44, 0, 0, 17, 7, 11,180, 0, 0, 1,117, 0, 11,180, 16, 32, 1, 0, 0, 16, 73, 99, 58, 49, 0, 0, 0,
-255,255, 0,201, 0, 0, 4, 6, 7, 78, 16, 38, 0, 44, 0, 0, 17, 7, 11,176, 0, 0, 1,117, 0, 8,180, 1, 18, 15, 0, 7,
- 43, 49, 0, 0, 0, 2, 0, 8, 0, 0, 4, 78, 5,213, 0, 12, 0, 25, 0, 59, 64, 33, 23, 8,182, 10, 19,151, 0,136, 13,151,
- 21, 10, 6, 19, 13, 6, 0, 4, 22, 20, 16, 50, 3, 49, 9, 48, 24, 20, 30, 11, 7, 48, 26, 16,252, 60,236, 50,236,252,236, 16,
-196, 23, 57, 49, 0, 47,198, 50,238,246,238, 16,238, 50, 48, 1, 32, 0, 17, 16, 0, 41, 1, 17, 35, 53, 51, 17, 1, 32, 54, 17,
- 16, 38, 33, 35, 17, 33, 21, 33, 17, 1,180, 1, 86, 1, 68,254,187,254,171,254,209,125,125, 1, 47, 0,255,202,201,255, 0, 96,
- 1, 8,254,248, 5,213,254,148,254,128,254,130,254,149, 2,197,149, 2,123,250,209,251, 1, 72, 1, 75,251,254, 43,149,253,225,
-255,255, 0,139, 0, 0, 4, 70, 7, 98, 16, 38, 0, 49, 0, 0, 17, 7, 11,178, 0, 0, 1,121, 0, 16,180, 4, 34, 19, 0, 7,
- 43, 64, 5, 79, 34, 64, 19, 2, 93, 49, 0, 0,255,255, 0,117,255,227, 4, 92, 7,107, 16, 38, 0, 50, 0, 0, 17, 7, 11,179,
- 0, 0, 1,117, 0, 7, 64, 3, 79, 24, 1, 93, 49, 0, 0, 0,255,255, 0,117,255,227, 4, 92, 7,107, 16, 38, 0, 50, 0, 0,
- 17, 7, 11,177, 0, 0, 1,117, 0, 7, 64, 3, 79, 24, 1, 93, 49, 0, 0, 0,255,255, 0,117,255,227, 4, 92, 7,109, 16, 38,
- 0, 50, 0, 0, 17, 7, 11,180, 0, 0, 1,117, 0, 20,180, 12, 26, 30, 18, 7, 43, 64, 9, 32, 30, 47, 26, 0, 30, 15, 26, 4,
- 93, 49, 0, 0,255,255, 0,117,255,227, 4, 92, 7, 94, 16, 38, 0, 50, 0, 0, 17, 7, 11,178, 0, 0, 1,117, 0, 16,180, 12,
- 48, 33, 18, 7, 43, 64, 5, 79, 48, 64, 33, 2, 93, 49, 0, 0,255,255, 0,117,255,227, 4, 92, 7, 78, 16, 38, 0, 50, 0, 0,
- 17, 7, 11,176, 0, 0, 1,117, 0, 28,180, 12, 30, 27, 18, 7, 43, 64, 17,112, 27,127, 30, 48, 27, 63, 30, 32, 27, 47, 30, 0,
- 27, 15, 30, 8, 93, 49, 0, 0, 0, 1, 0,150, 0,174, 4, 59, 4, 84, 0, 11, 0, 46, 64, 28, 10, 8, 7, 6, 4, 2, 1, 0,
- 8, 11, 9, 5, 3, 12, 11, 10, 9, 8, 7, 5, 4, 3, 1, 9, 6, 2, 0, 12, 16,212, 60,204, 23, 57, 49, 0, 16,212, 60,204,
- 50, 23, 57, 48, 19, 9, 1, 55, 9, 1, 23, 9, 1, 7, 9, 1,150, 1, 94,254,162,116, 1, 94, 1, 95,116,254,162, 1, 92,116,
-254,163,254,164, 1, 37, 1, 92, 1, 94,117,254,162, 1, 94,117,254,162,254,164,119, 1, 94,254,162, 0, 0, 0, 0, 3, 0, 8,
-255,186, 4,176, 6, 23, 0, 9, 0, 19, 0, 43, 0,107, 64, 58, 43, 41, 38, 11, 10, 9, 0, 4, 14, 29, 31, 32, 20, 14, 3, 42,
- 38, 30, 3,151, 26, 14,151, 38,150, 26,153, 31, 31, 30, 44, 32, 35, 17, 42, 20, 23, 11, 10, 9, 0, 4, 6, 29, 35, 17, 41, 6,
- 43, 6, 50, 23, 54, 17, 50, 35, 53, 44, 16,252,236,252,236,192, 18, 57, 17, 18, 57, 18, 23, 57, 17, 57, 57, 17, 18, 57, 17, 57,
- 57, 49, 0, 47,228,244,236, 16,238,192, 16,192, 17, 18, 57, 57, 18, 57, 18, 23, 57, 17, 57, 57, 48, 1, 30, 1, 51, 50, 18, 17,
- 52, 38, 39, 9, 1, 46, 1, 35, 34, 2, 17, 20, 22, 1, 22, 18, 21, 16, 2, 35, 34, 38, 39, 7, 39, 55, 38, 2, 53, 16, 18, 51,
- 50, 22, 23, 55, 23, 1,115, 30,131, 84,154,135, 10, 10,253,221, 1,248, 25,115, 86,157,131, 5, 2,187, 41, 43,247,253,121,180,
- 61,143,103,178, 32, 37,247,252,115,173, 57,139,100, 1, 47, 78, 90, 1, 25, 1, 73,110,136, 45,253,203, 2,207, 81, 85,254,220,
-254,134, 80,101, 2,230, 81,254,254,163,254,122,254,128, 81, 81,203, 70,252, 73, 1, 6,158, 1,135, 1,128, 82, 80,201, 74, 0,
-255,255, 0,147,255,227, 4, 61, 7,107, 16, 38, 0, 56, 0, 0, 17, 7, 11,179, 0, 0, 1,117, 0, 7, 64, 3, 79, 31, 1, 93,
- 49, 0, 0, 0,255,255, 0,147,255,227, 4, 61, 7,107, 16, 38, 0, 56, 0, 0, 17, 7, 11,177, 0, 0, 1,117, 0, 7, 64, 3,
- 79, 31, 1, 93, 49, 0, 0, 0,255,255, 0,147,255,227, 4, 61, 7,109, 16, 38, 0, 56, 0, 0, 17, 7, 11,180, 0, 0, 1,117,
- 0, 20,180, 17, 32, 36, 1, 7, 43, 64, 9, 32, 36, 47, 32, 0, 36, 15, 32, 4, 93, 49, 0, 0,255,255, 0,147,255,227, 4, 61,
- 7, 78, 16, 38, 0, 56, 0, 0, 17, 7, 11,176, 0, 0, 1,117, 0, 28,180, 17, 36, 33, 1, 7, 43, 64, 17,112, 33,127, 36, 48,
- 33, 63, 36, 32, 33, 47, 36, 0, 33, 15, 36, 8, 93, 49, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7,107, 16, 38, 0, 60, 0, 0,
- 17, 7, 11,177, 0, 0, 1,117, 0, 7, 64, 3, 32, 9, 1, 93, 49, 0, 0, 0, 0, 2, 0,201, 0, 0, 4,141, 5,213, 0, 8,
- 0, 21, 0, 52,181, 1,151, 18, 0,151, 11,184, 1, 8, 64, 19, 9,136, 20, 8, 2, 18, 12, 0, 5, 50, 15, 56, 19, 10, 0, 30,
- 9, 51, 22, 16,252,236, 50, 50,252,236, 17, 57, 57, 57, 57, 49, 0, 47,244,252,236,212,236, 48, 1, 17, 51, 50, 54, 53, 52, 38,
- 35, 1, 51, 17, 51, 32, 22, 21, 20, 6, 33, 35, 17, 35, 1,147,234,158,157,157,158,254, 76,202,254, 1, 4,248,248,254,252,254,
-202, 4, 33,253,243,132,131,131,131, 1,180,254,242,210,218,219,209,254,145, 0, 0, 1, 0,188,255,227, 4,125, 6, 20, 0, 47,
- 0, 86, 64, 49, 45, 39, 33, 12, 4, 6, 13, 32, 0, 4, 42, 22,139, 23, 26,140, 19, 42,140, 3,155, 19,153, 46, 12, 9, 13, 29,
- 32, 33, 39, 9, 1, 36, 39, 6, 6, 29, 6, 36, 16, 22, 45, 6, 16, 68, 0, 70, 48, 16,244,236,252,204, 16,198,238,212,238, 16,
-238, 17, 57, 57, 18, 57, 18, 57, 49, 0, 47,228,254,238, 16,254,213,238, 18, 23, 57, 23, 57, 48, 19, 52, 54, 51, 50, 22, 23, 14,
- 1, 21, 20, 22, 31, 1, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 47, 1, 46, 1, 53, 52, 54, 55,
- 46, 1, 35, 34, 6, 21, 17, 35,188,210,216,204,210, 2,155,168, 55, 67, 58,151,111,224,196, 69,135, 66, 76,133, 59,108,128, 65,
-120, 67, 92, 91,162,156, 2,121,113,121,114,187, 4,113,213,206,221,216, 14,124,100, 49, 77, 42, 37, 93,164,116,154,178, 25, 24,
-164, 31, 30, 97, 81, 71, 95, 74, 39, 56,133, 79,128,171, 35,107,114,131,139,251,147, 0, 0, 0,255,255, 0,133,255,227, 4, 35,
- 6,102, 16, 38, 0, 68, 0, 0, 16, 6, 0, 67, 0, 0, 0, 0,255,255, 0,133,255,227, 4, 35, 6,102, 16, 38, 0, 68, 0, 0,
- 16, 6, 0,118, 0, 0, 0, 0,255,255, 0,133,255,227, 4, 35, 6,102, 16, 38, 0, 68, 0, 0, 16, 6, 2, 95, 0, 0, 0, 0,
-255,255, 0,133,255,227, 4, 35, 6, 55, 16, 38, 0, 68, 0, 0, 16, 6, 2,110, 0, 0, 0, 0,255,255, 0,133,255,227, 4, 35,
- 6, 16, 16, 38, 0, 68, 0, 0, 16, 6, 0,106, 0, 0, 0, 0,255,255, 0,133,255,227, 4, 35, 7, 6, 16, 38, 0, 68, 0, 0,
- 16, 6, 2,108, 0, 0, 0, 0, 0, 3, 0, 41,255,227, 4,176, 4,123, 0, 10, 0, 19, 0, 67, 0,143, 64, 73, 61, 55, 15, 48,
- 12, 18, 3, 54, 11, 37, 8, 0, 30, 67, 11, 1, 31,139, 30,141, 27, 8,140, 34, 55,139, 54,191, 15, 46, 11,182, 20, 1,193, 51,
- 15,140, 64, 58,190, 40, 34,153, 68, 2, 5, 0, 24, 37, 61, 3, 47, 18, 46, 5, 21, 18, 77, 47, 0,117, 30, 11, 77, 20, 67, 5,
- 77, 54, 43,115, 68, 16,244,196,236,252,236,196,252,196,236, 50, 18, 57, 17, 18, 23, 57, 17, 18, 57, 49, 0, 16,228, 50,244, 60,
-236, 50,244, 60,236, 50, 16,244,238, 16,254, 60,244,238, 17, 18, 57, 18, 57, 17, 57, 17, 18, 23, 57, 17, 18, 57, 48, 64, 9, 48,
- 53, 48, 54, 48, 55, 48, 56, 4, 93, 1, 53, 35, 34, 6, 21, 20, 22, 51, 50, 54, 1, 53, 52, 38, 35, 34, 6, 29, 1, 5, 33, 14,
- 1, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 39, 14, 1, 35, 34, 38, 53, 52, 54, 59, 1, 53, 52, 38, 35, 34, 6, 7,
- 53, 62, 1, 51, 50, 22, 23, 62, 1, 51, 50, 22, 17, 2, 31, 49,169,120, 89, 83, 92, 74, 1,237, 77, 87, 87, 76, 1,235,254, 21,
- 1, 1,101,112, 79,129, 50, 55,132, 71,110,149, 32, 39,133, 97,156,163,200,191,117, 99, 94, 56,132, 62, 77,132, 60, 91,124, 37,
- 33,132, 89,174,145, 1,186, 72, 90,113, 89, 97,133, 1,143, 52,151,133,136,157, 43,143, 15, 35, 34,161,144, 51, 51,172, 41, 43,
- 82, 78, 80, 80,172,164,171,179, 88,120,128, 43, 39,168, 35, 33, 63, 64, 61, 66,237,254,206, 0,255,255, 0,195,254,117, 4, 37,
- 4,123, 16, 38, 2,163,104, 0, 16, 6, 0, 70, 0, 0, 0, 0,255,255, 0,123,255,227, 4, 88, 6,102, 16, 38, 0, 72, 0, 0,
- 16, 6, 0, 67, 14, 0, 0, 0,255,255, 0,123,255,227, 4, 88, 6,102, 16, 38, 0, 72, 0, 0, 16, 6, 0,118, 14, 0, 0, 0,
-255,255, 0,123,255,227, 4, 88, 6,102, 16, 38, 0, 72, 0, 0, 16, 6, 2, 95, 14, 0, 0, 0,255,255, 0,123,255,227, 4, 88,
- 6, 16, 16, 38, 0, 72, 0, 0, 17, 6, 0,106, 14, 0, 0, 7, 64, 3, 64, 29, 1, 93, 49, 0,255,255, 0,178, 0, 0, 4, 68,
- 6,102, 16, 38, 0,243, 0, 0, 16, 6, 0, 67, 0, 0, 0, 0,255,255, 0,178, 0, 0, 4, 68, 6,102, 16, 38, 0,243, 0, 0,
- 16, 6, 0,118, 0, 0, 0, 0,255,255, 0,178, 0, 0, 4, 68, 6,102, 16, 38, 0,243, 0, 0, 17, 6, 2, 95, 0, 0, 0, 9,
- 64, 5, 64, 10, 48, 10, 2, 93, 49, 0, 0, 0,255,255, 0,178, 0, 0, 4, 68, 6, 16, 16, 38, 0,243, 0, 0, 17, 6, 0,106,
- 24, 0, 0, 8,180, 3, 16, 13, 6, 7, 43, 49, 0, 2, 0,137,255,227, 4, 72, 6, 20, 0, 26, 0, 41, 0,139, 64, 79, 18, 23,
- 19, 18, 1, 0, 13, 14, 15, 16, 4, 17, 23, 0, 1, 0, 22, 23, 23, 24, 23, 21, 23, 20, 21, 24, 24, 23, 66, 26, 25, 24, 21, 20,
- 19, 6, 22, 15, 30, 18, 0, 22, 30,140, 12, 36,140, 6,153, 12, 22,155, 42, 18, 21, 24, 3, 39, 20, 19, 22, 3, 33, 9, 26, 25,
- 3, 15, 0, 33, 39, 18, 3, 68, 33, 18, 9, 62, 42, 16,244,236,252,236, 17, 57, 57, 17, 57, 57, 17, 18, 23, 57, 17, 23, 57, 49,
- 0, 16,236,204,244,236, 16,238, 18, 57, 57, 18, 57, 18, 23, 57, 48, 75, 83, 88, 7, 16, 8,237, 7, 16, 5,237, 7, 16, 5,237,
- 23, 57, 7, 8,237, 89, 34, 1, 22, 18, 21, 16, 2, 35, 34, 2, 17, 16, 18, 51, 50, 22, 23, 46, 1, 39, 5, 39, 55, 39, 51, 23,
- 37, 23, 3, 46, 1, 35, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 2,205,197,182,251,229,228,251,251,224, 34, 35, 15, 33, 72,
- 38,254,233, 30,237,182,219,127, 1, 33, 33,174, 35, 82, 45,146,153,148,136,137,148, 58, 5, 47,212,254,132,200,254,244,254,216,
- 1, 40, 1, 12, 1, 9, 1, 40, 2, 2, 45, 89, 44, 92, 98, 80,200,145, 94, 98,254, 23, 13, 13,210,199,196,212,212,196,110,203,
-255,255, 0,195, 0, 0, 4, 27, 6, 55, 16, 38, 0, 81, 0, 0, 16, 6, 2,110, 0, 0, 0, 0,255,255, 0,137,255,227, 4, 72,
- 6,102, 16, 38, 0, 82, 0, 0, 16, 6, 0, 67, 0, 0, 0, 0,255,255, 0,137,255,227, 4, 72, 6,102, 16, 38, 0, 82, 0, 0,
- 16, 6, 0,118, 0, 0, 0, 0,255,255, 0,137,255,227, 4, 72, 6,102, 16, 38, 0, 82, 0, 0, 17, 6, 2, 95, 0, 0, 0, 16,
-180, 15, 26, 30, 21, 7, 43, 64, 5, 15, 26, 0, 30, 2, 93, 49,255,255, 0,137,255,227, 4, 72, 6, 55, 16, 38, 0, 82, 0, 0,
- 17, 6, 2,110, 0, 0, 0, 24,180, 15, 46, 32, 21, 7, 43, 64, 13, 48, 32, 63, 46, 32, 32, 47, 46, 16, 32, 31, 46, 6, 93, 49,
-255,255, 0,137,255,227, 4, 72, 6, 16, 16, 38, 0, 82, 0, 0, 17, 6, 0,106, 0, 0, 0, 24,180, 9, 30, 27, 3, 7, 43, 64,
- 13,127, 30,112, 27, 95, 30, 80, 27, 79, 30, 64, 27, 6, 93, 49, 0, 3, 0, 88, 0,150, 4,121, 4,111, 0, 3, 0, 7, 0, 11,
- 0, 39, 64, 19, 2,254, 0, 4,254, 6, 8,160, 0, 10, 12, 9, 5, 1,119, 8, 4, 0, 12, 16,212, 60,196,252, 60,196, 49, 0,
- 16,212,196,252,212,236, 16,238, 48, 1, 51, 21, 35, 17, 51, 21, 35, 5, 33, 21, 33, 1,238,245,245,245,245,254,106, 4, 33,251,
-223, 1,139,245, 3,217,246,162,170, 0, 0, 0, 0, 3, 0, 47,255,160, 4,150, 4,188, 0, 9, 0, 19, 0, 43, 0,115, 64, 62,
- 43, 44, 38, 31, 29, 26, 19, 10, 1, 0, 4, 13, 41, 38, 32, 20, 13, 4, 42, 38, 30, 26, 4,140, 38, 13,140, 26,190, 38,153, 44,
- 43, 44, 42, 20, 23, 16, 32, 30, 35, 19, 10, 1, 0, 4, 7, 41, 23, 16, 29, 7, 31, 7, 18, 35, 68, 16, 18, 23, 62, 44, 16,244,
-236,252,236,192, 18, 57, 17, 18, 57, 18, 23, 57, 17, 57, 57, 17, 18, 57, 57, 17, 57, 49, 0, 16,228,244,236, 16,238, 16,192, 16,
-192, 17, 18, 57, 57, 18, 57, 18, 23, 57, 17, 57, 57, 17, 18, 57, 48, 9, 1, 30, 1, 51, 50, 54, 53, 52, 38, 39, 46, 1, 35, 34,
- 6, 21, 20, 22, 23, 7, 46, 1, 53, 16, 18, 51, 50, 22, 23, 55, 23, 7, 30, 1, 21, 16, 2, 35, 34, 38, 39, 7, 39, 3,109,254,
- 49, 36,101, 65,141,144, 12, 72, 35, 99, 67,139,149, 14, 14,139, 39, 41,246,233,100,158, 60,147, 93,164, 42, 44,246,234,103,157,
- 57,160, 92, 3, 12,253,209, 47, 47,219,213, 52,111,175, 48, 46,214,202, 48,116, 71,160, 71,195,113, 1, 30, 1, 46, 55, 56,176,
- 77,195, 66,193,122,254,225,254,211, 59, 60,186, 76, 0, 0, 0,255,255, 0,195,255,227, 4, 27, 6,102, 16, 38, 0, 88, 0, 0,
- 16, 6, 0, 67, 0, 0, 0, 0,255,255, 0,195,255,227, 4, 27, 6,102, 16, 38, 0, 88, 0, 0, 16, 6, 0,118, 0, 0, 0, 0,
-255,255, 0,195,255,227, 4, 27, 6,102, 16, 38, 0, 88, 0, 0, 17, 6, 2, 95, 0, 0, 0, 16,180, 11, 22, 26, 1, 7, 43, 64,
- 5, 15, 22, 0, 26, 2, 93, 49,255,255, 0,195,255,227, 4, 27, 6, 16, 16, 38, 0, 88, 0, 0, 17, 6, 0,106, 0, 0, 0, 24,
-180, 10, 26, 23, 2, 7, 43, 64, 13,127, 26,112, 23, 95, 26, 80, 23, 79, 26, 64, 23, 6, 93, 49,255,255, 0,104,254, 86, 4,129,
- 6,102, 16, 38, 0, 92, 0, 0, 16, 6, 0,118, 0, 0, 0, 0, 0, 2, 0,190,254, 86, 4, 84, 6, 31, 0, 16, 0, 28, 0, 51,
- 64, 28, 5, 0, 26, 20,140, 8, 26,140, 14,153, 8,190, 1,195, 3,197, 29, 17, 18, 11, 71, 23, 4, 0, 6, 2, 70, 29, 16,244,
-236, 50, 50,252,236, 49, 0, 16,236,228,228,244,236, 16,238, 17, 57, 57, 48, 37, 17, 35, 17, 51, 17, 62, 1, 51, 50, 18, 17, 16,
- 2, 35, 34, 38, 1, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 1,119,185,185, 46,153,100,203,231,232,202,102,153, 1,240,135,
-133,134,138,138,134,133,135,141,253,201, 7,201,253,178, 83, 87,254,198,254,234,254,239,254,201, 87, 1,245,214,218,219,213,212,
-220,218, 0, 0,255,255, 0,104,254, 86, 4,129, 6, 16, 16, 38, 0, 92, 0, 0, 16, 6, 0,106, 0, 0, 0, 0,255,255, 0, 37,
- 0, 0, 4,172, 7, 48, 16, 38, 11,189, 0, 0, 17, 6, 0, 36, 0, 0, 0, 20,180, 9, 2, 3, 14, 7, 43, 64, 9, 64, 3, 79,
- 2, 32, 3, 47, 2, 4, 93, 49,255,255, 0,133,255,227, 4, 35, 5,246, 16, 38, 2,128, 0, 0, 16, 6, 0, 68, 0, 0, 0, 0,
-255,255, 0, 37, 0, 0, 4,172, 7,109, 16, 38, 11,184, 0, 0, 17, 6, 0, 36, 0, 0, 0, 24,180, 19, 8, 0, 24, 7, 43, 64,
- 13, 95, 8, 80, 0, 79, 8, 64, 0, 47, 8, 32, 0, 6, 93, 49,255,255, 0,133,255,227, 4, 35, 6, 72, 16, 38, 2,130, 0, 0,
- 16, 6, 0, 68, 0, 0, 0, 0,255,255, 0, 37,254,117, 4,224, 5,213, 16, 39, 2,109, 1,199, 0, 0, 16, 6, 0, 36, 0, 0,
-255,255, 0,133,254,117, 4,114, 4,123, 16, 39, 2,109, 1, 89, 0, 0, 16, 6, 0, 68, 0, 0,255,255, 0,139,255,227, 4, 49,
- 7,107, 16, 38, 0, 38, 0, 0, 16, 7, 11,177, 0, 90, 1,117,255,255, 0,195,255,227, 4, 37, 6,102, 16, 38, 0, 70, 0, 0,
- 16, 6, 0,118, 90, 0, 0, 0,255,255, 0,139,255,227, 4, 49, 7,116, 16, 39, 11,180, 0,126, 1,124, 16, 6, 0, 38, 0, 0,
-255,255, 0,195,255,227, 4, 37, 6,102, 16, 38, 2, 95, 90, 0, 16, 6, 0, 70, 0, 0, 0, 0,255,255, 0,139,255,227, 4, 49,
- 7, 80, 16, 38, 11,185, 75, 0, 16, 6, 0, 38, 0, 0, 0, 0,255,255, 0,195,255,227, 4, 37, 6, 16, 16, 38, 2,131, 75, 0,
- 16, 6, 0, 70, 0, 0, 0, 0,255,255, 0,139,255,227, 4, 49, 7,109, 16, 38, 0, 38, 0, 0, 16, 7, 11,181, 0, 90, 1,117,
-255,255, 0,195,255,227, 4, 37, 6,102, 16, 38, 0, 70, 0, 0, 16, 6, 2, 96, 90, 0, 0, 0,255,255, 0,137, 0, 0, 4, 82,
- 7,103, 16, 38, 0, 39, 0, 0, 16, 7, 11,181,255,178, 1,111,255,255, 0,123,255,227, 5, 32, 6, 21, 16, 39, 11,175, 2, 58,
-255,175, 17, 6, 0, 71, 0, 0, 0, 13,185, 0, 0, 0, 64, 56, 64, 3,127, 0, 1, 93, 49, 0,255,255, 0, 8, 0, 0, 4, 78,
- 5,213, 16, 6, 0,146, 0, 0, 0, 2, 0,123,255,227, 4,209, 6, 20, 0, 24, 0, 36, 0, 72, 64, 9, 13, 0, 34, 28, 7, 3,
-231, 9, 1,184, 1, 12, 64, 28, 34,140, 22, 28,140, 16,153, 22,190, 5,155, 11, 2, 31, 12, 4, 3, 0, 6, 8, 10, 6, 71, 25,
- 18, 19, 72, 37, 16,244,236,252, 60,196,252, 23, 60,196, 49, 0, 47,236,228,244,236, 16,238,253, 60,238, 50, 17, 18, 57, 57, 48,
- 1, 17, 33, 53, 33, 53, 51, 21, 51, 21, 35, 17, 35, 53, 14, 1, 35, 34, 2, 17, 16, 18, 51, 50, 22, 1, 20, 22, 51, 50, 54, 53,
- 52, 38, 35, 34, 6, 3, 90,254,207, 1, 49,184,191,191,184, 46,153,100,203,233,234,202,101,154,254, 15,136,133,133,139,139,133,
-133,136, 3,209, 1, 53,121,149,149,121,250,250,141, 83, 87, 1, 59, 1, 21, 1, 17, 1, 55, 87,254, 11,214,218,220,212,213,219,
-218, 0, 0, 0,255,255, 0,197, 0, 0, 4, 78, 7, 48, 16, 38, 11,189, 18, 0, 16, 6, 0, 40, 0, 0, 0, 0,255,255, 0,123,
-255,227, 4, 88, 5,246, 16, 38, 2,128, 35, 0, 16, 6, 0, 72, 0, 0, 0, 0,255,255, 0,197, 0, 0, 4, 78, 7,109, 16, 38,
- 11,184, 18, 0, 16, 6, 0, 40, 0, 0, 0, 0,255,255, 0,123,255,227, 4, 88, 6, 72, 16, 38, 2,130, 14, 0, 16, 6, 0, 72,
- 0, 0, 0, 0,255,255, 0,197, 0, 0, 4, 78, 7, 80, 16, 38, 11,185, 18, 0, 16, 6, 0, 40, 0, 0, 0, 0,255,255, 0,123,
-255,227, 4, 88, 6, 16, 16, 38, 2,131, 14, 0, 16, 6, 0, 72, 0, 0, 0, 0,255,255, 0,197,254,117, 4, 78, 5,213, 16, 39,
- 2,109, 1, 49, 0, 0, 16, 6, 0, 40, 0, 0,255,255, 0,123,254,117, 4, 88, 4,123, 16, 39, 2,109, 0,246, 0, 0, 16, 6,
- 0, 72, 0, 0,255,255, 0,197, 0, 0, 4, 78, 7,103, 16, 38, 0, 40, 0, 0, 16, 7, 11,181, 0, 36, 1,111,255,255, 0,123,
-255,227, 4, 88, 6, 97, 16, 38, 0, 72, 0, 0, 16, 6, 2, 96, 35,251, 0, 0,255,255, 0,102,255,227, 4, 80, 7,109, 16, 39,
- 11,180, 0, 0, 1,117, 16, 6, 0, 42, 0, 0,255,255, 0,123,254, 72, 4, 18, 6,102, 16, 38, 2, 95, 0, 0, 16, 6, 0, 74,
- 0, 0, 0, 0,255,255, 0,102,255,227, 4, 80, 7,109, 16, 38, 11,184, 50, 0, 16, 6, 0, 42, 0, 0, 0, 0,255,255, 0,123,
-254, 72, 4, 18, 6, 72, 16, 38, 2,130, 0, 0, 16, 6, 0, 74, 0, 0, 0, 0,255,255, 0,102,255,227, 4, 80, 7, 80, 16, 38,
- 11,185, 50, 0, 16, 6, 0, 42, 0, 0, 0, 0,255,255, 0,123,254, 72, 4, 18, 6, 16, 16, 38, 2,131, 0, 0, 16, 6, 0, 74,
- 0, 0, 0, 0,255,255, 0,102,253,195, 4, 80, 5,240, 16, 39, 2,162, 0,128,255,225, 16, 6, 0, 42, 0, 0,255,255, 0,123,
-254, 72, 4, 18, 6, 78, 16, 39, 2,142, 0, 17, 1, 46, 16, 6, 0, 74, 0, 0,255,255, 0,137, 0, 0, 4, 72, 7,109, 16, 39,
- 11,180, 0, 0, 1,117, 17, 6, 0, 43, 0, 0, 0, 20,180, 12, 2, 6, 7, 7, 43, 64, 9, 32, 6, 47, 2, 0, 6, 15, 2, 4,
- 93, 49, 0, 0,255,255, 0,195, 0, 0, 4, 27, 7,109, 16, 39, 11,180, 0, 0, 1,117, 17, 6, 0, 75, 0, 0, 0, 24, 0, 75,
-176, 18, 81, 88,185, 0, 0, 0, 64, 56, 89, 64, 7,112, 0, 96, 0, 79, 0, 3, 93, 48, 0, 0, 0, 2, 0, 3, 0, 0, 4,206,
- 5,213, 0, 19, 0, 23, 0, 63, 64, 33, 6, 2, 18,151, 9, 20, 17, 12,151, 21,177, 4, 0,136, 14, 10, 7, 12, 23, 4, 30, 9,
- 5, 49, 18, 13, 20, 1, 30, 16, 0, 48, 24, 16,252, 60,236, 50, 50,204,252, 60,236, 50, 50,204, 49, 0, 47, 60,228, 50,252,236,
-220, 60, 60,236, 50, 50, 48, 19, 51, 21, 33, 53, 51, 21, 51, 21, 35, 17, 35, 17, 33, 17, 35, 17, 35, 53, 51, 23, 21, 33, 53,137,
-202, 2, 42,202,135,135,202,253,214,202,134,134,202, 2, 42, 5,213,224,224,224,164,251,175, 2,199,253, 57, 4, 81,164,164,224,
-224, 0, 0, 0, 0, 1, 0, 70, 0, 0, 4, 27, 6, 20, 0, 27, 0, 63, 64, 34, 9, 22, 3, 0, 3, 1, 18, 14,182, 21, 13, 6,
-140, 25,190, 16,155, 10, 1, 2, 6, 0, 74, 16, 19, 17, 21, 9, 6, 14, 16, 11, 70, 28, 16,244, 60,204,252, 50, 50,204, 16,252,
-236, 49, 0, 47, 60,236,244,236,220, 60,236, 50, 17, 23, 57, 57, 48, 1, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 35, 53,
- 51, 53, 51, 21, 33, 21, 33, 17, 62, 1, 51, 50, 22, 4, 27,185,106,113,129,139,184,125,125,184, 1, 97,254,159, 49,168,115,171,
-169, 2,182,253, 74, 2,182,151,142,183,171,253,135, 4,246,164,122,122,164,254,194, 96, 99,225,255,255, 0,201, 0, 0, 4, 6,
- 7, 94, 16, 39, 11,178, 0, 0, 1,117, 17, 6, 0, 44, 0, 0, 0, 24,180, 31, 24, 9, 30, 7, 43, 64, 13, 79, 24, 64, 9, 63,
- 24, 48, 9, 47, 24, 32, 9, 6, 93, 49, 0, 0,255,255, 0,178, 0, 0, 4, 68, 6, 55, 16, 38, 2,110, 0, 0, 16, 6, 0,243,
- 0, 0, 0, 0,255,255, 0,201, 0, 0, 4, 6, 7, 48, 16, 38, 11,189, 0, 0, 17, 6, 0, 44, 0, 0, 0, 16,180, 5, 2, 3,
- 4, 7, 43, 64, 5, 79, 2, 64, 3, 2, 93, 49,255,255, 0,178, 0, 0, 4, 68, 5,246, 16, 38, 2,128, 0, 0, 16, 6, 0,243,
- 0, 0, 0, 0,255,255, 0,201, 0, 0, 4, 6, 7,109, 16, 38, 11,184, 0, 0, 17, 6, 0, 44, 0, 0, 0, 16,180, 15, 8, 0,
- 14, 7, 43, 64, 5, 79, 8, 64, 0, 2, 93, 49,255,255, 0,178, 0, 0, 4, 68, 6, 72, 16, 38, 2,130, 0, 0, 16, 6, 0,243,
- 0, 0, 0, 0,255,255, 0,201,254,117, 4, 6, 5,213, 16, 38, 0, 44, 0, 0, 16, 6, 2,109, 70, 0, 0, 0,255,255, 0,178,
-254,117, 4, 68, 6, 20, 16, 38, 0, 76, 0, 0, 16, 6, 2,109, 80, 0, 0, 0,255,255, 0,201, 0, 0, 4, 6, 7, 80, 16, 38,
- 11,185, 0, 0, 16, 6, 0, 44, 0, 0, 0, 0, 0, 1, 0,178, 0, 0, 4, 68, 4, 96, 0, 9, 0, 34, 64, 18, 8,182, 0,194,
- 6, 2,182, 4, 3, 76, 1, 6, 5, 76, 0, 75, 7, 10, 16,212,228,236,252,236, 49, 0, 47,236, 50,244,236, 48, 1, 33, 17, 33,
- 21, 33, 53, 33, 17, 33, 1, 0, 1,215, 1,109,252,110, 1,109,254,225, 4, 96,252, 47,143,143, 3, 66, 0, 0, 0, 2,255,255,
-255,230, 4,204, 5,216, 0, 20, 0, 32, 0, 61, 64, 31, 1, 0,178, 4,151, 17,153, 33, 10, 24, 32,151, 11, 21,136, 25, 29,151,
- 27, 1, 11, 9, 12, 34, 26, 22, 24, 29, 21, 31, 33, 16,212,204, 50,220,204, 50, 16,212,204,196,196, 49, 0, 47,236, 50,244, 60,
-236, 50, 50, 16,244,236,244,204, 48, 37, 53, 30, 1, 51, 50, 55, 54, 53, 17, 33, 53, 33, 17, 16, 7, 6, 35, 34, 39, 38, 1, 33,
- 21, 35, 17, 51, 21, 33, 53, 51, 17, 35, 2,140, 61,132, 71, 97, 39, 38,254,253, 1,141, 72, 72,168, 65, 65, 64,253, 45, 2, 93,
-228,228,253,163,228,228, 64,236, 81, 81, 74, 75,203, 3, 68,170,252, 18,254,230,117,117, 22, 22, 5,195,170,251,127,170,170, 4,
-129, 0, 0, 0, 0, 4,255,251,254, 75, 4,138, 6, 20, 0, 13, 0, 17, 0, 27, 0, 31, 0, 73, 64, 38, 10,140, 9,195, 32, 2,
- 27,182, 18, 17, 31,196, 14, 28,155, 3, 18,194, 20, 24,182, 23, 10, 3, 14, 1, 6, 15, 4, 33, 21, 29, 19, 24, 18, 28, 26, 32,
- 16,212, 60,196,204,220, 60,204, 16,220, 60,252, 60,196,196, 49, 0, 47,236, 50,228, 50,252, 60,236, 50, 16,238, 50, 16,244,236,
- 48, 5, 17, 33, 53, 33, 17, 20, 6, 43, 1, 53, 51, 50, 54, 17, 51, 21, 35, 5, 33, 17, 33, 21, 33, 53, 33, 17, 35, 19, 51, 21,
- 35, 3,210,254,195, 1,245,179,165,254,234, 90, 90,184,184,252,105, 1,130, 1, 44,253, 18, 1, 43,235,235,151,151, 31, 3,229,
-143,251,140,195,211,156,125, 6,165,233,192,252, 47,143,143, 3, 66, 2, 67,233,255,255, 0,109,255,227, 3,202, 7,109, 16, 39,
- 11,180, 0, 48, 1,117, 16, 6, 0, 45, 0, 0,255,255, 0,186,254, 86, 3,168, 6,102, 16, 38, 2, 95, 0, 0, 16, 6, 1,226,
- 0, 0, 0, 0,255,255, 0,137,253,224, 4,201, 5,213, 16, 38, 2,162,106,254, 16, 6, 0, 46, 0, 0, 0, 0,255,255, 0,236,
-253,224, 4,178, 6, 20, 16, 39, 2,162, 0,144,255,254, 16, 6, 0, 78, 0, 0, 0, 1, 0,236, 0, 0, 4,178, 4, 96, 0, 11,
- 0,196, 64, 57, 8, 23, 9, 8, 5, 6, 5, 7, 23, 6, 6, 5, 9, 23, 3, 2, 8, 23, 7, 8, 3, 2, 5, 23, 6, 5, 2, 3,
- 2, 4, 23, 3, 3, 2, 66, 8, 5, 2, 3, 3, 0,194, 10, 6, 8, 5, 4, 3, 6, 9, 1, 6, 6, 68, 0, 69, 12, 16,244,236,
-236, 50, 17, 23, 57, 49, 0, 47, 60,236, 50, 23, 57, 48, 75, 83, 88, 7, 16, 5,237, 7, 16, 8,237, 7, 8,237, 7, 4,237, 7,
- 16, 5,237, 7, 16, 8,237, 89, 34,178, 8, 7, 1, 1, 93, 64, 82, 6, 2, 8, 8, 22, 2, 24, 5, 24, 8, 53, 2, 52, 5, 54,
- 8, 70, 2,102, 2,117, 2,118, 5, 12, 9, 3, 8, 8, 25, 3, 23, 4, 24, 5, 25, 6, 26, 7, 24, 8, 40, 3, 39, 5, 40, 7,
- 59, 3, 59, 4, 55, 5, 57, 7, 55, 8, 74, 3, 73, 7, 89, 6, 89, 7,107, 3,105, 4,105, 6,105, 7,121, 3,120, 5,121, 6,
-121, 7, 28, 93, 0, 93, 19, 51, 17, 1, 51, 9, 1, 35, 1, 7, 17, 35,236,190, 1,227,224,254, 71, 1,254,225,254, 98,137,190,
- 4, 96,254, 47, 1,209,254, 90,253, 70, 2, 66,129,254, 63, 0,255,255, 0,200, 0, 0, 4,115, 7,108, 16, 39, 11,177,254,237,
- 1,118, 17, 6, 0, 47, 0, 0, 0, 7, 64, 3, 32, 0, 1, 93, 49, 0, 0, 0,255,255, 0,160, 0, 0, 4, 10, 7,108, 16, 39,
- 11,177,255,161, 1,118, 17, 6, 0, 79, 0, 0, 0, 24, 0, 75,176, 14, 81, 88,185, 0, 0, 0, 64, 56, 89, 64, 7,159, 0,143,
- 0, 79, 0, 3, 93, 48, 0, 0,255,255, 0,215,253,224, 4,115, 5,213, 16, 38, 2,162,102,254, 16, 6, 0, 47, 0, 0, 0, 0,
-255,255, 0,160,253,224, 4, 10, 6, 31, 16, 38, 2,162,251,254, 16, 6, 0, 79, 0, 0, 0, 0,255,255, 0,215, 0, 0, 4,115,
- 5,213, 16, 39, 11,175, 0,174,255,109, 16, 6, 0, 47, 0, 0,255,255, 0,160, 0, 0, 4,134, 6, 31, 16, 39, 11,175, 1,160,
-255,185, 16, 6, 0, 79, 0, 0,255,255, 0,215, 0, 0, 4,115, 5,213, 16, 39, 0,121, 1, 96, 0,134, 16, 6, 0, 47, 0, 0,
-255,255, 0,160, 0, 0, 4,188, 6, 31, 16, 39, 0,121, 1,215, 0,144, 16, 6, 0, 79, 0, 0, 0, 1,255,246, 0, 0, 4,115,
- 5,213, 0, 13, 0, 55, 64, 30, 12, 11, 10, 4, 3, 2, 6, 0, 6,151, 0,136, 8, 3, 4, 7, 1, 11, 14, 0, 12, 5, 1, 30,
- 7, 49, 9, 0, 52, 14, 16,252, 60,236,236, 50, 46, 17, 18, 57, 17, 18, 57, 57, 49, 0, 47,228,236, 17, 23, 57, 48, 19, 51, 17,
- 37, 23, 1, 17, 33, 21, 33, 17, 7, 39, 55,215,203, 1, 59, 78,254,119, 2,209,252,100,145, 80,225, 5,213,253,152,219,111,254,
-238,253,227,170, 2, 59,106,110,158, 0, 0, 0, 0, 1, 0, 76, 0, 0, 4, 10, 6, 31, 0, 21, 0, 62, 64, 33, 20, 19, 18, 12,
- 11, 10, 6, 9, 0, 3, 14,182, 16,197, 3,182, 5, 11, 12, 22, 15, 19, 3, 6, 20, 4, 17, 0, 6, 15, 13, 9, 22, 16,212, 60,
-204,252, 60,204, 50, 57, 57, 57, 17, 18, 57, 57, 49, 0, 47,236,252,236, 17, 57, 57, 23, 57, 48, 1, 20, 22, 59, 1, 21, 35, 34,
- 38, 53, 17, 5, 39, 1, 17, 33, 53, 33, 17, 37, 23, 1, 2,127, 91, 89,215,233,165,181,254,213, 80, 1,123,254,217, 1,223, 1,
- 59, 80,254,117, 1,150,124,126,156,212,194, 1, 36,209,111, 1, 8, 2, 47,144,253,190,219,110,254,237, 0, 0,255,255, 0,139,
- 0, 0, 4, 70, 7,107, 16, 39, 11,177, 0, 33, 1,117, 16, 6, 0, 49, 0, 0,255,255, 0,195, 0, 0, 4, 27, 6,109, 16, 38,
- 0,118, 20, 7, 16, 6, 0, 81, 0, 0, 0, 0,255,255, 0,139,253,224, 4, 70, 5,213, 16, 38, 2,162, 42,254, 16, 6, 0, 49,
- 0, 0, 0, 0,255,255, 0,195,253,224, 4, 27, 4,123, 16, 38, 2,162, 48,254, 16, 6, 0, 81, 0, 0, 0, 0,255,255, 0,139,
- 0, 0, 4, 70, 7,109, 16, 38, 0, 49, 0, 0, 16, 7, 11,181, 0, 42, 1,117,255,255, 0,195, 0, 0, 4, 27, 6,102, 16, 38,
- 0, 81, 0, 0, 16, 6, 2, 96,244, 0, 0, 0,255,255, 0, 24, 0, 0, 4,150, 6, 20, 16, 38, 0, 81,123, 0, 16, 7, 2, 89,
-254, 73, 0, 0, 0, 1, 0,147,254, 86, 4, 61, 5,242, 0, 29, 0, 50, 64, 28, 24, 19, 13, 0, 4, 21, 16,151, 27,150, 22,136,
- 21, 7,151, 6, 21, 7, 13, 30, 0, 49, 19, 23, 30, 22, 48, 30, 16,244,236, 50,252,236,196, 49, 0, 47,212,236, 16,228,244,236,
- 17, 23, 57, 48, 1, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51,
- 50, 18, 4, 61, 89, 90,165,205,167, 90, 45, 44,116,124,141,152,202,202, 54,184,126,187,185, 3,231,252, 5,195,105,106,156, 62,
- 62,146, 3,241,180,169,218,203,252, 87, 5,213,198,111,116,254,251, 0, 0, 0, 0, 1, 0,195,254, 86, 4, 27, 4,123, 0, 32,
- 0, 50, 64, 28, 25, 20, 13, 0, 4, 22, 16,140, 29,190, 23,194, 22, 6,182, 7, 22, 7, 13, 6, 0, 74, 20, 24, 6, 23, 70, 33,
- 16,244,236, 50,252,236,196, 49, 0, 47,212,236, 16,228,244,236, 17, 23, 57, 48, 1, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54,
- 53, 17, 52, 38, 35, 34, 7, 6, 21, 17, 35, 17, 51, 21, 54, 55, 54, 51, 50, 23, 22, 4, 27, 89, 90,165,205,185, 90, 45, 44,106,
-113,129, 70, 69,184,184, 49, 84, 84,115,171, 84, 85, 2,182,253, 54,195,105,106,156, 62, 62,126, 2,202,151,142, 91, 92,171,253,
-135, 4, 96,168, 96, 50, 49,113,112, 0, 0, 0,255,255, 0,117,255,227, 4, 92, 7, 48, 16, 38, 11,189, 0, 0, 17, 6, 0, 50,
- 0, 0, 0, 20,180, 16, 2, 3, 22, 7, 43, 64, 9, 79, 2, 64, 3, 47, 2, 32, 3, 4, 93, 49,255,255, 0,137,255,227, 4, 72,
- 5,246, 16, 38, 2,128, 0, 0, 17, 6, 0, 82, 0, 0, 0, 8,180, 19, 2, 3, 25, 7, 43, 49,255,255, 0,117,255,227, 4, 92,
- 7,109, 16, 38, 11,184, 0, 0, 17, 6, 0, 50, 0, 0, 0, 16,180, 26, 8, 0, 32, 7, 43, 64, 5, 47, 8, 32, 0, 2, 93, 49,
-255,255, 0,137,255,227, 4, 72, 6, 72, 16, 38, 2,130, 0, 0, 17, 6, 0, 82, 0, 0, 0, 16,180, 29, 8, 0, 35, 7, 43, 64,
- 5, 15, 8, 0, 0, 2, 93, 49,255,255, 0,117,255,227, 4, 92, 7,107, 16, 38, 11,186, 0, 0, 16, 6, 0, 50, 0, 0, 0, 0,
-255,255, 0,137,255,227, 4, 72, 6,102, 16, 38, 2,135, 0, 0, 16, 6, 0, 82, 0, 0, 0, 0, 0, 2, 0, 72, 0, 0, 4,193,
- 5,213, 0, 16, 0, 25, 0, 59, 64, 31, 14,151, 12, 17, 10,151, 8,136, 23, 0,151, 12,177, 1, 23, 17, 8, 2, 20, 15, 11, 30,
- 24, 9, 13, 0, 45, 20, 30, 5, 26, 16,220,236,252,196,196,212,236, 50, 18, 57, 57, 57, 57, 49, 0, 47,236,236, 50,244,236, 50,
- 16,238, 48, 37, 21, 33, 32, 2, 17, 16, 18, 41, 1, 21, 33, 17, 33, 21, 33, 17, 1, 34, 6, 17, 16, 22, 59, 1, 17, 4,193,253,
-163,254,217,245,244, 1, 40, 2, 82,254,154, 1, 72,254,184,254,254,177,139,139,177, 61,170,170, 1, 77, 1,156, 1,161, 1, 75,
-170,254, 70,170,253,227, 4,129,230,254,164,254,166,229, 4,129, 0, 3, 0, 14,255,227, 4,186, 4,123, 0, 10, 0, 22, 0, 56,
- 0,105, 64, 57, 50, 47, 9, 6, 0, 25, 31, 23, 38, 32, 11, 56, 23, 0, 32,139, 31,141, 11, 0,182, 23, 28, 11,140, 35, 23,193,
- 17, 6,140, 53, 47,190, 41, 35,153, 57, 0, 3, 50, 38, 24, 9, 77, 14,117, 31, 3, 77, 23, 67, 20, 77, 44,115, 57, 16,244,236,
-252,236,196,252,236, 50, 57, 57, 17, 57, 49, 0, 16,228, 50,244, 60,236, 50,228, 16,238, 50, 16,238, 16,244,238, 17, 18, 57, 17,
- 18, 57, 17, 18, 57, 17, 18, 57, 17, 57, 48, 1, 52, 54, 53, 52, 38, 35, 34, 6, 29, 1, 1, 50, 54, 53, 16, 38, 35, 34, 6, 17,
- 16, 22, 1, 33, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 39, 14, 1, 35, 34, 2, 17, 16, 18, 51, 50, 22, 23, 62, 1,
- 51, 50, 22, 17, 4, 23, 2, 80, 86, 87, 77,254,166,102, 82, 80,104,103, 80, 80, 3,172,254, 21, 99,112, 80,131, 47, 59,125, 74,
- 98,147, 48, 52,128, 84,189,170,170,189, 89,128, 47, 37,130, 87,175,144, 2,145, 11, 38, 9,145,135,137,158, 43,253,234,168,239,
- 1, 35,174,167,254,243,254,243,167, 1,135, 84,163,144, 53, 51,172, 43, 41, 67, 66, 68, 65, 1, 20, 1, 56, 1, 56, 1, 20, 62,
- 65, 62, 65,237,254,206, 0, 0,255,255, 0,143, 0, 0, 4,209, 7,107, 16, 39, 11,177,255,181, 1,117, 16, 6, 0, 53, 0, 0,
-255,255, 1,106, 0, 0, 4,136, 6,109, 16, 39, 0,118, 0,206, 0, 7, 16, 6, 0, 85, 0, 0,255,255, 0,143,253,224, 4,209,
- 5,213, 16, 38, 2,162,114,254, 16, 6, 0, 53, 0, 0, 0, 0,255,255, 1, 32,253,224, 4,131, 4,123, 16, 38, 2,162,136,254,
- 16, 6, 0, 85, 0, 0, 0, 0,255,255, 0,143, 0, 0, 4,209, 7,103, 16, 38, 0, 53, 0, 0, 16, 7, 11,181,255,196, 1,111,
-255,255, 1,106, 0, 0, 4,131, 6,102, 16, 38, 0, 85, 0, 0, 16, 6, 2, 96, 90, 0, 0, 0,255,255, 0,139,255,227, 4, 74,
- 7,107, 16, 39, 11,177, 0, 25, 1,117, 16, 6, 0, 54, 0, 0,255,255, 0,213,255,227, 4, 6, 6,109, 16, 38, 0,118, 26, 7,
- 16, 6, 0, 86, 0, 0, 0, 0,255,255, 0,139,255,227, 4, 74, 7,109, 16, 39, 11,180, 0, 0, 1,117, 16, 6, 0, 54, 0, 0,
-255,255, 0,213,255,227, 4, 6, 6,102, 16, 38, 2, 95, 0, 0, 16, 6, 0, 86, 0, 0, 0, 0,255,255, 0,139,254,117, 4, 74,
- 5,240, 16, 38, 2,163, 0, 0, 16, 6, 0, 54, 0, 0, 0, 0,255,255, 0,213,254,117, 4, 6, 4,123, 16, 38, 2,163, 0, 0,
- 16, 6, 0, 86, 0, 0, 0, 0,255,255, 0,139,255,227, 4, 74, 7,109, 16, 38, 0, 54, 0, 0, 16, 7, 11,181, 0, 0, 1,117,
-255,255, 0,213,255,227, 4, 6, 6,102, 16, 38, 0, 86, 0, 0, 16, 6, 2, 96, 0, 0, 0, 0,255,255, 0, 47,254,117, 4,162,
- 5,213, 16, 38, 2,163, 0, 0, 16, 6, 0, 55, 0, 0, 0, 0,255,255, 0,131,254,117, 4, 8, 5,158, 16, 38, 2,163,121, 0,
- 16, 6, 0, 87, 0, 0, 0, 0,255,255, 0, 47, 0, 0, 4,162, 7,109, 16, 38, 0, 55, 0, 0, 17, 7, 11,181, 0, 6, 1,117,
- 0, 8,180, 1, 13, 9, 0, 7, 43, 49, 0, 0,255,255, 0,131, 0, 0, 4, 8, 6,126, 16, 38, 0, 87, 0, 0, 16, 7, 11,175,
- 1, 20, 0, 24, 0, 1, 0, 47, 0, 0, 4,162, 5,213, 0, 15, 0, 45, 64, 23, 4, 12,151, 7, 11, 3, 15,151, 0,136, 8, 1,
- 58, 5, 7, 3, 30, 12, 0, 58, 10, 14, 16, 16,212, 60,236,204,252, 60,204,236, 49, 0, 47,244,236, 50,212, 60,236, 50, 48, 19,
- 33, 21, 33, 17, 33, 21, 33, 17, 35, 17, 33, 53, 33, 17, 33, 47, 4,115,254, 45, 1, 9,254,247,203,254,247, 1, 9,254, 43, 5,
-213,170,253,192,170,253,191, 2, 65,170, 2, 64, 0, 1, 0,131, 0, 0, 4, 8, 5,158, 0, 27, 0, 66, 64, 33, 18, 9, 12, 5,
- 21,182, 8, 20, 4, 24,182, 27, 1, 25,194, 12,182, 15, 12, 15, 13, 2, 6, 8, 4, 0, 6, 21, 25, 19, 23, 27, 28, 16,212, 60,
- 60,196,196,252, 60, 60,196,196, 50, 57, 57, 49, 0, 47,236,244, 60,196,236, 50,212, 60,236, 50, 17, 57, 57, 48, 1, 17, 33, 21,
- 33, 21, 51, 21, 35, 21, 20, 22, 59, 1, 21, 35, 34, 38, 61, 1, 35, 53, 51, 53, 33, 53, 33, 17, 2,102, 1,162,254, 94,229,229,
- 94,117,207,225,207,170,229,229,254,213, 1, 43, 5,158,254,194,143,233,142,233,124, 98,147,166,203,233,142,233,143, 1, 62, 0,
-255,255, 0,147,255,227, 4, 61, 7, 94, 16, 39, 11,178, 0, 0, 1,117, 17, 6, 0, 56, 0, 0, 0, 16,180, 47, 24, 9, 31, 7,
- 43, 64, 5, 79, 24, 64, 9, 2, 93, 49, 0, 0,255,255, 0,195,255,227, 4, 27, 6, 55, 16, 38, 2,110, 0, 0, 17, 6, 0, 88,
- 0, 0, 0, 16,180, 39, 22, 8, 29, 7, 43, 64, 5, 47, 22, 32, 8, 2, 93, 49,255,255, 0,147,255,227, 4, 61, 7, 48, 16, 38,
- 11,189, 0, 0, 17, 6, 0, 56, 0, 0, 0, 20,180, 21, 2, 3, 5, 7, 43, 64, 9, 79, 2, 64, 3, 47, 2, 32, 3, 4, 93, 49,
-255,255, 0,195,255,227, 4, 27, 5,246, 16, 38, 2,128, 0, 0, 17, 6, 0, 88, 0, 0, 0, 8,180, 15, 1, 0, 5, 7, 43, 49,
-255,255, 0,147,255,227, 4, 61, 7,109, 16, 38, 11,184, 0, 0, 17, 6, 0, 56, 0, 0, 0, 16,180, 31, 8, 0, 15, 7, 43, 64,
- 5, 47, 8, 32, 0, 2, 93, 49,255,255, 0,195,255,227, 4, 27, 6, 72, 16, 38, 2,130, 0, 0, 17, 6, 0, 88, 0, 0, 0, 16,
-180, 25, 8, 0, 15, 7, 43, 64, 5, 15, 8, 0, 0, 2, 93, 49,255,255, 0,147,255,227, 4, 61, 8, 85, 16, 38, 0, 56, 0, 0,
- 16, 7, 2,108, 0, 10, 1, 79,255,255, 0,195,255,227, 4, 27, 6,217, 16, 38, 0, 88, 0, 0, 16, 6, 2,108, 15,211, 0, 0,
-255,255, 0,147,255,227, 4, 61, 7,107, 16, 38, 11,186, 0, 0, 16, 6, 0, 56, 0, 0, 0, 0,255,255, 0,195,255,227, 4, 27,
- 6,102, 16, 38, 2,135, 0, 0, 16, 6, 0, 88, 0, 0, 0, 0,255,255, 0,147,254,101, 4, 61, 5,213, 16, 38, 0, 56, 0, 0,
- 16, 6, 2,109, 28,240, 0, 0,255,255, 0,195,254,117, 4,176, 4, 94, 16, 38, 0, 88, 0, 0, 16, 7, 2,109, 1,151, 0, 0,
-255,255, 0, 0, 0, 0, 4,209, 7,116, 16, 39, 11,180, 0, 0, 1,124, 17, 6, 0, 58, 0, 0, 0, 8,180, 14, 2, 6, 7, 7,
- 43, 49, 0, 0,255,255, 0, 0, 0, 0, 4,209, 6,109, 16, 38, 2, 95, 0, 7, 17, 6, 0, 90, 0, 0, 0, 8,180, 14, 2, 6,
- 7, 7, 43, 49,255,255, 0, 37, 0, 0, 4,172, 7,116, 16, 39, 11,180, 0, 0, 1,124, 17, 6, 0, 60, 0, 0, 0, 8,180, 11,
- 2, 6, 7, 7, 43, 49, 0, 0,255,255, 0,104,254, 86, 4,129, 6,109, 16, 38, 2, 95, 12, 7, 16, 6, 0, 92, 0, 0, 0, 0,
-255,255, 0, 37, 0, 0, 4,172, 7, 78, 16, 38, 0, 60, 0, 0, 17, 7, 11,176, 0, 0, 1,117, 0, 8,180, 4, 15, 12, 0, 7,
- 43, 49, 0, 0,255,255, 0,156, 0, 0, 4,145, 7,107, 16, 39, 11,177, 0, 27, 1,117, 16, 6, 0, 61, 0, 0,255,255, 0,203,
- 0, 0, 4, 16, 6,109, 16, 38, 0,118, 86, 7, 16, 6, 0, 93, 0, 0, 0, 0,255,255, 0,156, 0, 0, 4,145, 7, 80, 16, 38,
- 11,185, 50, 0, 16, 6, 0, 61, 0, 0, 0, 0,255,255, 0,203, 0, 0, 4, 16, 6, 16, 16, 38, 2,131, 0, 0, 16, 6, 0, 93,
- 0, 0, 0, 0,255,255, 0,156, 0, 0, 4,145, 7,109, 16, 38, 0, 61, 0, 0, 16, 7, 11,181, 0, 0, 1,117,255,255, 0,203,
- 0, 0, 4, 16, 6,102, 16, 38, 0, 93, 0, 0, 16, 6, 2, 96, 0, 0, 0, 0, 0, 1, 0,195, 0, 0, 4, 39, 6, 20, 0, 15,
- 0, 44, 64, 22, 0, 7, 12, 4,182, 5, 12,140, 11,155, 5,194, 2, 13, 10, 11, 0, 6, 5, 3, 7, 16, 16,212, 60,196,252,196,
- 57, 57, 49, 0, 47,228,252,236, 16,238, 18, 57, 57, 48, 1, 17, 35, 17, 33, 53, 33, 53, 52, 54, 59, 1, 21, 35, 34, 6, 2,166,
-184,254,213, 1, 43,169,179,221,209, 99, 77, 4,195,251, 61, 3,209,143, 78,184,174,153, 81, 0, 0, 2, 0, 70,255,227, 4, 88,
- 6, 20, 0, 26, 0, 37, 0, 0, 1, 62, 1, 51, 50, 18, 17, 16, 2, 35, 34, 38, 39, 21, 35, 17, 35, 53, 51, 53, 51, 21, 51, 33,
- 21, 33, 35, 0, 16, 38, 35, 34, 6, 21, 20, 22, 51, 50, 1,121, 44,155,102,202,232,233,203,100,153, 46,184,123,123,184, 2, 1,
- 97,254,159, 2, 2, 29,136,133,134,138,138,134,133, 3,209, 82, 88,254,201,254,239,254,235,254,197, 87, 83,141, 4,246,164,122,
-122,164,252, 99, 1,172,218,219,213,212,220, 0, 0, 3, 0, 20, 0, 0, 4,165, 5,213, 0, 8, 0, 17, 0, 41, 0, 63, 64, 36,
- 25, 0,151, 10, 9,151, 18,136, 1,151, 10,177, 31, 17, 11, 25, 31, 19, 8, 2, 7, 0, 14, 30, 22, 5, 50, 28, 9, 0, 30, 18,
- 33, 36, 39, 43, 16,212,220,212, 57,236, 50,220,236,212,236, 17, 23, 57, 49, 0, 47,236,236,244,236, 16,238, 57, 48, 1, 17, 51,
- 50, 54, 53, 52, 38, 35, 3, 17, 51, 50, 54, 53, 52, 38, 35, 37, 33, 50, 22, 21, 20, 6, 7, 30, 1, 21, 20, 4, 41, 1, 17, 34,
- 6, 29, 1, 35, 53, 52, 54, 2, 28,120,176,150,158,168,120,116,146,131,129,148,254,194, 1, 66,229,248,131,131,147,167,254,246,
-254,249,254,190, 62,100,156,169, 2,201,253,221,123,141,146,137, 2,102,254, 62,112,125,113,100,166,198,181,137,158, 20, 22,207,
-160,203,207, 5, 47, 87,112, 49, 70,159,185, 0,255,255, 0,166, 0, 0, 4,113, 5,213, 16, 6, 3, 62, 0, 0, 0, 2, 0,193,
-255,227, 4, 88, 6, 20, 0, 18, 0, 29, 0, 0, 1, 62, 1, 51, 50, 18, 17, 16, 2, 35, 34, 38, 39, 21, 35, 17, 33, 21, 33, 0,
- 16, 38, 35, 34, 6, 21, 20, 22, 51, 50, 1,121, 44,155,102,202,232,233,203,100,153, 46,184, 2,240,253,200, 2, 29,136,133,134,
-138,138,134,133, 3,209, 82, 88,254,201,254,239,254,235,254,197, 87, 83,141, 6, 20,184,251,253, 1,172,218,219,213,212,220, 0,
- 0, 2, 0, 48, 0, 0, 4,161, 5,213, 0, 10, 0, 24, 0, 0, 1, 17, 51, 50, 55, 54, 53, 52, 39, 38, 35, 39, 51, 4, 23, 22,
- 21, 20, 7, 6, 41, 1, 17, 39, 1, 1,161,239,176, 75, 75, 79, 79,168,239,235, 1,123,101, 53,133,133,254,249,254, 70,166, 1,
-113, 2,201,253,221, 62, 61,141,146, 68, 69,164, 15,191,100,161,203,103,104, 3,180,228, 1, 61, 0, 2, 0, 60,255,227, 4,148,
- 6, 20, 0, 12, 0, 33, 0, 0, 0, 16, 38, 35, 34, 7, 6, 21, 20, 23, 22, 51, 50, 1, 62, 1, 51, 50, 23, 22, 17, 16, 7, 6,
- 35, 34, 39, 38, 39, 21, 35, 17, 39, 1, 3,210,136,132,134, 70, 68, 68, 70,134,132,254,108, 44,154,102,202,116,116,116,116,204,
-100, 76, 76, 46,184,194, 1,122, 1, 89, 1,172,218,109,110,213,212,110,110, 3, 82, 82, 88,155,156,254,239,254,235,158,157, 43,
- 44, 83,141, 3,180,228, 1,124, 0, 1, 0,139,255,227, 4, 49, 5,240, 0, 25, 0, 47, 64, 7, 19, 50, 6, 49, 0, 12, 26, 16,
-220, 60,244,236, 49, 0, 64, 18, 13,179, 12,178, 16,151, 9, 25,179, 0,178, 22,151, 3,150, 9,153, 26, 16,228,244,236,244,236,
- 16,238,246,238, 48, 19, 62, 1, 51, 32, 0, 17, 16, 0, 33, 34, 38, 39, 53, 30, 1, 51, 50, 18, 17, 16, 2, 35, 34, 6, 7,139,
- 77,162, 91, 1, 29, 1, 63,254,195,254,225, 91,162, 77, 73,169, 88,197,196,196,197, 86,170, 74, 5,158, 41, 41,254,103,254,146,
-254,144,254,106, 41, 41,207, 61, 64, 1, 48, 1, 50, 1, 51, 1, 48, 64, 61, 0, 0, 1, 0, 60,255,227, 4,149, 6,103, 0, 34,
- 0, 0, 37, 14, 1, 35, 32, 0, 17, 16, 0, 33, 50, 23, 54, 55, 54, 59, 1, 21, 34, 7, 6, 29, 1, 46, 1, 35, 34, 2, 21, 16,
- 18, 51, 50, 54, 55, 3,226, 77,162, 91,254,225,254,195, 1, 63, 1, 29, 90, 79, 23, 42, 90,165, 20, 84, 51, 44, 74,170, 86,197,
-196,196,197, 88,169, 73, 53, 41, 41, 1,150, 1,112, 1, 42, 1,153, 20, 51, 50,106,156, 62, 53,135, 70, 61, 64,254,208,239,254,
-206,254,208, 64, 61, 0, 0, 0, 0, 1, 0, 94,255,227, 4,115, 5,142, 0, 33, 0, 0, 37, 14, 1, 35, 32, 0, 16, 0, 33, 50,
- 23, 54, 55, 54, 59, 1, 21, 34, 7, 6, 29, 1, 46, 1, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 3,192, 74,157, 82,254,252,254,
-219, 1, 37, 1, 4, 70, 67, 19, 61, 90,165, 20, 90, 45, 44, 73,147, 93,173,186,187,172, 96,152, 65, 57, 43, 43, 1, 56, 2, 40,
- 1, 56, 16,114, 71,106,156, 62, 62,126,148, 65, 58,224,208,207,225, 59, 62, 0,255,255, 0, 8, 0, 0, 4, 78, 5,213, 16, 6,
- 0,146, 0, 0, 0, 2, 0, 8, 0, 0, 4,201, 5,213, 0, 18, 0, 27, 0, 0, 1, 51, 32, 0, 17, 16, 0, 33, 35, 17, 34, 7,
- 6, 29, 1, 35, 53, 52, 54, 1, 32, 54, 17, 16, 38, 33, 35, 17, 1, 70,233, 1, 86, 1, 68,254,188,254,170,233, 54, 60, 48,156,
-192, 1, 99, 0,255,202,201,255, 0, 26, 5,213,254,148,254,128,254,130,254,149, 5, 47, 47, 38,114, 49, 70,181,163,250,209,251,
- 1, 72, 1, 75,251,251,119, 0, 0, 2, 0,131, 0, 0, 4, 78, 5,213, 0, 8, 0, 22, 0, 0, 1, 35, 34, 6, 21, 20, 22, 59,
- 1, 1, 53, 33, 17, 33, 32, 36, 53, 52, 55, 54, 37, 51, 17, 3,131,239,168,158,150,176,239,253, 69, 3,134,254, 70,254,249,254,
-246, 53,101, 1,123,235, 2,201,137,146,141,123, 4,137,166,250, 43,207,203,161,100,191, 15, 1,194, 0, 0, 0, 0, 2, 0,157,
-255,227, 4, 52, 6, 20, 0, 10, 0, 29, 0, 0, 0, 16, 22, 51, 50, 54, 53, 52, 38, 35, 34, 3, 53, 33, 17, 35, 53, 14, 1, 35,
- 34, 2, 17, 16, 18, 51, 50, 22, 23, 17, 1, 95,136,133,134,138,138,134,133,163, 2,240,184, 46,153,100,203,233,232,202,102,155,
- 44, 3, 5,254, 84,218,220,212,213,219, 1,125,184,249,236,141, 83, 87, 1, 59, 1, 21, 1, 17, 1, 55, 88, 82, 1,139, 0, 0,
- 0, 2, 0,136,254, 61, 4, 71, 4,123, 0, 11, 0, 55, 0, 0, 37, 50, 54, 53, 52, 38, 35, 34, 6, 21, 20, 22, 5, 22, 23, 22,
- 21, 20, 7, 6, 35, 34, 47, 1, 53, 22, 23, 22, 51, 50, 51, 55, 54, 63, 1, 54, 53, 52, 39, 38, 39, 38, 39, 38, 39, 38, 17, 16,
- 18, 51, 50, 18, 17, 16, 7, 6, 2,104,140,144,144,140,141,144,144, 1,167, 19, 40, 62,118,119,197,102, 50,151, 66, 70, 75, 73,
- 9, 10, 32, 73, 60, 39, 27, 13, 17, 41, 24,105,235,121,124,246,234,233,246,123, 31,127,218,214,213,219,219,213,214,218, 76, 9,
- 40, 61, 92,136, 82, 82, 12, 36,173, 24, 15, 15, 1, 2, 43, 28, 24, 46, 33, 19, 24, 21, 13, 1, 3,148,151, 1, 30, 1, 31, 1,
- 45,254,211,254,225,254,226,151, 38, 0, 0, 0, 0, 1, 0,197, 0, 0, 4, 78, 5,213, 0, 11, 0, 43, 64, 10, 8, 4, 30, 0,
- 49, 11, 6, 3, 51, 12, 16,252,196,196,252,236, 50, 49, 0, 64, 12, 6,151, 8, 10,151, 0,136, 4,151, 8,177, 2, 47,236,236,
-244,236, 16,238, 48, 1, 17, 33, 53, 33, 17, 33, 53, 33, 17, 33, 53, 4, 78,252,119, 2,191,253,114, 2,142,253, 84, 5,213,250,
- 43,170, 2, 29,170, 1,186,170, 0, 2, 0,117,255,227, 4, 92, 5,240, 0, 21, 0, 28, 0, 61, 64, 12, 3, 2, 28, 50, 16, 54,
- 9, 22, 50, 0, 53, 29, 16,244,236,196,244,236, 57, 57, 49, 0, 64, 20, 0, 22, 3, 1, 10,179, 9, 6,151, 13,150, 29, 22,151,
- 1, 25,151, 19,153, 29, 16,244,236,212,238, 16,244,244,212,238, 18, 57, 17, 57, 48, 19, 53, 33, 53, 52, 2, 35, 34, 6, 7, 53,
- 62, 1, 51, 50, 18, 17, 16, 2, 35, 34, 2, 19, 20, 18, 51, 50, 18, 55,117, 3, 19,138,150, 86,170, 74, 77,162, 91,253,247,247,
-253,253,246,215,140,148,148,126, 9, 2,233, 83, 8,241, 1, 23, 64, 61,207, 41, 41,254,128,254,121,254,122,254,128, 1,126, 1,
- 35,248,254,251, 0,255,254, 0, 0, 1, 0,137,255,227, 4, 55, 5,240, 0, 40, 0, 62, 64, 11, 20, 9, 31, 16, 50, 3, 25, 50,
- 38, 48, 41, 16,252,236,212,236,212,196,196, 49, 0, 64, 22, 10,179, 9, 13,151, 6,150, 41, 0, 22,151, 19,177, 41, 31,179, 32,
- 28,151, 35,153, 41, 16,244,236,212,236, 16,244,236, 57, 16,244,236,212,236, 48, 1, 46, 1, 53, 52, 36, 51, 50, 22, 23, 21, 46,
- 1, 35, 34, 6, 21, 20, 22, 59, 1, 21, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 36, 53, 52, 54, 1,184,131,
-137, 1, 5,218, 73,189,121,104,190, 89,134,145,156,139,154,154,152,178,178,166, 98,198,102,103,214,103,245,254,235,156, 3, 31,
- 34,162,123,181,221, 32, 32,186, 40, 40,123,115,109,122,166,153,130,141,150, 52, 53,201, 36, 38,235,206,149,199, 0, 1, 0, 63,
-254, 86, 4,146, 5,213, 0, 19, 0, 0, 1, 33, 21, 33, 17, 33, 21, 33, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 53, 1,124,
- 3, 22,253,181, 2, 12,253,244, 89, 90,165,176,138, 90, 45, 44, 5,213,170,254, 72,170,253, 35,195,105,106,156, 62, 62,126, 0,
- 0, 1, 0,195,254, 86, 4, 39, 6, 20, 0, 36, 0, 0, 1, 21, 43, 1, 34, 7, 6, 29, 1, 33, 21, 33, 17, 20, 7, 6, 43, 1,
- 53, 51, 50, 55, 54, 53, 3, 33, 53, 33, 53, 52, 55, 54, 55, 54, 59, 2, 4, 39,209, 2, 97, 39, 38, 1,129,254,127, 81, 82,181,
- 70, 49,105, 38, 38, 2,254,215, 1, 40, 87, 37, 60, 70, 97, 9, 3, 6, 20,153, 41, 40,103, 99,143,252, 27,214, 96, 96,156, 48,
- 49,153, 3,229,143, 78,180, 92, 39, 21, 26, 0, 0, 1, 0, 52,255,227, 4,157, 6,103, 0, 40, 0, 0, 37, 14, 1, 35, 32, 0,
- 17, 16, 0, 33, 50, 23, 22, 23, 54, 55, 54, 59, 1, 21, 34, 7, 6, 7, 21, 46, 1, 35, 34, 2, 17, 16, 18, 51, 50, 54, 55, 17,
- 35, 53, 33, 4, 30, 82,202,118,254,228,254,196, 1, 64, 1, 28, 94, 86, 17, 17, 15, 21, 90,166, 19, 84, 51, 43, 1, 80,170, 96,
-196,198,192,198, 66,102, 40,216, 1,154,123, 75, 77, 1,151, 1,111, 1,110, 1,153, 26, 6, 6, 26, 25,106,156, 62, 54,134, 27,
- 77, 73,254,207,254,206,254,201,254,213, 31, 33, 1,145,166, 0, 0, 2, 0, 28,254, 82, 4,182, 5, 73, 0, 13, 0, 21, 0, 0,
- 1, 0, 17, 20, 33, 32, 53, 16, 9, 1, 51, 9, 1, 51, 1, 2, 17, 20, 51, 50, 53, 16, 2,218, 1, 68,254, 96,254, 72, 1, 38,
-254, 48,216, 1,116, 1,116,218,253,162,198,216,204, 2,138,254, 63,254,117,236,236, 1,111, 1,228, 2,184,253,213, 2, 43,252,
-166,254,211,254,188,138,138, 1, 69, 0, 0, 0, 0, 1, 0, 65, 0, 0, 4,144, 6, 20, 0, 38, 0, 0, 1, 17, 35, 20, 23, 22,
- 55, 54, 55, 54, 53, 17, 51, 17, 20, 6, 35, 34, 39, 38, 53, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 17, 54, 55, 54, 51, 50,
- 22, 2,243, 1, 34, 38, 55, 19, 54, 47,167,152,154,127, 74, 73, 95, 66, 71,125,166,166, 77, 17, 75, 85,118,152, 2,182,254,224,
-153, 49, 52, 4, 2, 73, 66,156, 1,155,254,101,228,225, 96, 96,214, 1, 32,151,142,183,171,253,135, 6, 20,253,164,134, 12, 49,
-225, 0, 0, 0, 0, 1, 0,201, 0, 0, 4, 58, 5,213, 0, 17, 0, 0, 1, 33, 53, 33, 21, 33, 17, 20, 23, 22, 59, 1, 23, 35,
- 34, 39, 38, 53, 2, 2,254,199, 3, 61,254,199, 44, 45, 90,185, 1,217,170, 92, 89, 5, 43,170,170,252,122,127, 61, 62,171,106,
-102,198, 0, 0, 0, 1, 0,201, 0, 0, 4, 6, 5,213, 0, 21, 0, 0, 19, 33, 21, 33, 17, 51, 33, 21, 33, 35, 17, 33, 21, 33,
- 53, 33, 17, 33, 53, 33, 17, 33,201, 3, 61,254,199, 2, 1, 9,254,247, 2, 1, 57,252,195, 1, 57,254,249, 1, 7,254,199, 5,
-213,170,253,192,170,254,105,170,170, 1,151,170, 2, 64, 0, 0, 0, 1, 0,110, 0, 0, 4,195, 5,213, 0, 25, 0, 0, 1, 54,
- 55, 54, 51, 50, 31, 1, 7, 39, 38, 35, 34, 7, 6, 15, 1, 1, 35, 1, 7, 17, 35, 17, 51, 17, 2,135,161,105, 21, 20,126, 92,
- 47,106, 33, 45, 60, 17, 19, 66,109,164, 2, 86,244,254, 25,154,203,203, 4,156,170, 12, 3, 99, 51,114, 37, 51, 4, 15,115,172,
-252,141, 2,236,164,253,184, 5,213,253,104, 0, 0, 1, 0,236, 0, 0, 4,178, 6, 20, 0, 23, 0, 0, 19, 53, 52, 55, 54, 59,
- 1, 21, 35, 34, 7, 6, 21, 51, 17, 1, 51, 9, 1, 35, 1, 7, 17, 35,236, 89, 90,165,205,185, 90, 45, 44, 5, 1,227,224,254,
- 71, 1,254,225,254, 98,137,190, 3,234,148,195,105,106,156, 62, 62,126,254, 17, 1,209,254, 90,253, 70, 2, 66,129,254, 63, 0,
- 0, 1, 0,160, 0, 0, 4, 10, 6, 31, 0, 23, 0, 0, 1, 20, 22, 59, 1, 21, 35, 34, 38, 61, 1, 35, 53, 51, 17, 33, 53, 33,
- 17, 59, 1, 21, 43, 1, 2,127, 91, 89,215,233,165,181,228,228,254,217, 1,223, 9,221,221, 9, 1,150,124,126,156,212,194,196,
-142, 2,167,144,252,201,142, 0, 0, 1, 0, 49, 0, 0, 4,109, 5,213, 0, 15, 0, 0, 1, 37, 23, 9, 1, 35, 9, 1, 35, 1,
- 39, 5, 39, 1, 3, 51, 2, 67, 1, 92, 80,254,141, 1,241,191,254,191,254,182,191, 1,169, 34,254,150, 80, 1,129,174,191, 4,
-189,242,110,254,254,251,193, 2,192,253, 64, 3,145, 74,251,111, 1, 10, 1,124, 0, 1, 0,109,255,229, 4,111, 5,213, 0, 34,
- 0, 0, 37, 14, 1, 35, 34, 38, 25, 1, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 35, 53,
- 14, 1, 35, 34, 38, 2, 56, 34,105, 74,135,111,168, 53, 70, 80, 59,168, 57, 74, 73, 57,167,167, 33, 99, 63, 76,101,114, 72, 69,
-209, 1, 33, 3,254,252, 10,237,115,123,229, 3,246,252, 10,240,112,123,229, 3,246,250, 43, 96, 60, 63, 70, 0, 0, 1, 0, 29,
-254, 86, 4, 25, 5,213, 0, 18, 0, 0, 19, 51, 1, 17, 51, 17, 35, 1, 17, 20, 7, 6, 43, 1, 53, 50, 55, 54, 53,190,230, 1,
-198,175,230,254, 59, 81, 81,148, 27, 81, 40, 40, 5,213,251, 51, 4,205,250, 43, 4,205,251, 31,195,105,106,156, 62, 61,127, 0,
- 0, 1, 0,195,254, 82, 4, 27, 4,123, 0, 19, 0, 0, 1, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51,
- 50, 22, 4, 27,185,106,113,129,139,184,184, 49,168,115,171,169, 2,182,251,156, 4,100,151,142,183,171,253,135, 4, 96,168, 96,
- 99,225, 0, 0, 0, 3, 0,117,255,227, 4, 92, 5,240, 0, 10, 0, 19, 0, 28, 0, 0, 1, 16, 2, 32, 2, 17, 16, 18, 51, 50,
- 18, 3, 2, 39, 38, 35, 34, 7, 6, 3, 23, 22, 23, 22, 51, 50, 55, 54, 55, 4, 92,247,254, 6,246,247,252,253,247,212, 8, 58,
- 68,154,153, 67, 59, 8, 1, 9, 57, 67,153,154, 68, 56, 9, 2,233,254,122,254,128, 1,126, 1,136, 1,135, 1,128,254,128,254,
-204, 1, 8,123,141,141,123,254,248,184,250,118,141,141,117,251,255,255, 0, 6,255,227, 4,167, 6, 21, 16, 39, 2,151, 1,121,
- 1,164, 16, 6, 0, 50,145, 0,255,255, 0, 32,255,227, 4,178, 4,123, 16, 39, 2,151, 1,132, 0, 0, 16, 6, 0, 82,151, 0,
- 0, 2, 0, 45,255,227, 4,164, 5,240, 0, 16, 0, 27, 0, 0, 19, 16, 37, 54, 51, 50, 23, 55, 51, 17, 35, 17, 7, 17, 6, 32,
- 2, 1, 38, 35, 34, 2, 17, 16, 18, 51, 50, 55, 45, 1, 78, 53, 62,206,111,147,230,175,180,111,254, 56,221, 2,136, 61,138,138,
-121,121,138,138, 61, 2,233, 2,160, 89, 14,158,131,250, 43, 4,205,160,252,118,192, 1,126, 3, 94,141,254,230,254,183,254,184,
-254,230,141, 0, 0, 2, 0, 86,254, 82, 4,171, 4,123, 0, 19, 0, 32, 0, 0, 19, 16, 55, 54, 51, 50, 23, 21, 55, 51, 17, 35,
- 17, 7, 17, 6, 35, 34, 39, 38, 55, 16, 23, 22, 51, 50, 55, 17, 38, 35, 34, 3, 6, 86,250, 80,101,210,111,126,231,176,181,110,
-211,234,111, 86,176,215, 19, 21,127, 65, 65,127,206, 40, 9, 2, 47, 1,180,115, 37,151, 43,110,250, 43, 4,205,157,253,248,151,
-188,146,254,254,117, 34, 3,109, 2,134,109,254,226, 66, 0, 0, 0, 2, 0, 56, 0, 0, 4,153, 5,213, 0, 23, 0, 33, 0, 0,
- 1, 16, 5, 6, 43, 1, 17, 35, 17, 34, 7, 6, 29, 1, 35, 53, 52, 55, 54, 51, 33, 32, 19, 22, 1, 50, 55, 54, 53, 52, 38, 43,
- 1, 17, 4,153,254,200, 86,110, 93,202, 54, 60, 48,156, 96, 96,126, 1, 39, 1,151, 82, 19,254, 4,211, 64, 22,156,141, 93, 4,
- 23,254,164, 77, 22,253,168, 5, 47, 47, 38,114, 49, 70,181, 82, 81,254,220, 69,254,146,157, 56, 68,133,147,253,207, 0, 0, 0,
- 0, 2, 0,190,254, 86, 4, 84, 5,152, 0, 14, 0, 42, 0, 0, 1, 16, 23, 22, 51, 50, 54, 53, 16, 39, 34, 35, 34, 3, 6, 17,
- 54, 55, 50, 51, 50, 18, 17, 16, 2, 35, 34, 38, 39, 17, 35, 17, 16, 55, 54, 59, 1, 21, 35, 34, 7, 6, 21, 1,119,209, 29, 34,
-133,135,251, 9, 8,214, 46, 12, 91,194, 7, 7,203,231,232,202,102,153, 44,185,203, 63, 78,205,185,169, 9, 1, 2, 47,254,137,
- 50, 7,218,214, 1,162, 14,254,239, 70, 1, 73,164, 6,254,198,254,234,254,239,254,201, 87, 83,253,201, 5,172, 1, 46, 79, 25,
-156,221, 14, 15, 0, 2, 0,143,254,248, 4,209, 5,213, 0, 22, 0, 31, 0, 0, 1, 22, 23, 22, 23, 19, 35, 3, 46, 1, 43, 1,
- 17, 35, 17, 51, 17, 51, 50, 4, 21, 20, 6, 1, 17, 51, 50, 54, 53, 52, 38, 35, 2,248, 78, 55, 54, 83,203,217,178, 77,123, 99,
-193,203,203,213,246, 1, 6,161,253,208,221,145,142,151,144, 1,185, 20, 55, 55,167,254,104, 1,121,161, 93,254,145, 5,213,254,
-248,222,210,148,187, 2, 89,253,238,130,134,129,137, 0, 0, 0, 0, 1, 0,139,255,227, 4, 74, 5,240, 0, 39, 0, 0, 19, 62,
- 1, 51, 50, 4, 21, 20, 6, 15, 1, 14, 1, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 36, 53, 52, 54, 63, 1, 62, 1, 53,
- 52, 38, 35, 34, 6, 7,225,105,190, 86,223, 1, 13,188,208,108,145,117,170,153,104,205,115,107,212,105,252,254,248,192,210,106,
-149,109,166,143, 94,185, 92, 5,162, 39, 39,241,200,160,190, 47, 25, 32,118,112,123,137, 68, 73,215, 45, 45,224,213,181,210, 49,
- 24, 35,104, 99,113,133, 60, 59, 0, 1, 0,213,255,227, 4, 6, 4,123, 0, 39, 0, 0, 1, 62, 1, 51, 50, 22, 21, 20, 6, 15,
- 2, 6, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 53, 52, 54, 63, 1, 62, 1, 53, 52, 38, 35, 34, 6, 7, 1, 14, 80,
-166, 90,202,218,146,159, 69, 8,245,134,122, 84,188,103,106,182, 83,210,236,141,137, 74,183, 92,123,125, 83,160, 79, 4, 57, 33,
- 33,175,161,127,147, 31, 14, 2, 49,128, 89, 99, 53, 53,190, 35, 35,187,166,125,156, 26, 14, 35, 74, 75, 83, 81, 46, 46, 0, 0,
-255,255, 0,120, 0, 0, 4,109, 5,213, 16, 6, 2,223, 0, 0, 0, 2, 0,118,254, 86, 4, 91, 6, 20, 0, 8, 0, 33, 0, 0,
- 1, 38, 39, 38, 35, 34, 7, 6, 51, 5, 3, 20, 23, 22, 59, 1, 21, 35, 34, 39, 38, 53, 17, 35, 32, 53, 52, 33, 50, 23, 22, 23,
- 51, 21, 2, 56, 7, 18, 33,110,124, 3, 3,119, 1,120, 2, 39, 37,100,176,174,195, 81, 87,190,254,242, 1, 47,181, 82, 53, 18,
-191, 5, 4, 45, 23, 48, 65, 51,154,251, 61,103, 41, 40,153, 86, 92,180, 4,174,210,216, 96, 64,111,155, 0, 0, 0, 1, 0,131,
-254, 86, 4, 8, 5,158, 0, 32, 0, 0, 1, 17, 33, 21, 33, 17, 20, 22, 59, 1, 29, 1, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54,
- 61, 1, 35, 34, 38, 53, 17, 33, 53, 33, 17, 2,102, 1,162,254, 94, 94,117,207, 89, 90,165,205,185, 90, 45, 44, 40,207,170,254,
-213, 1, 43, 5,158,254,194,143,253,160,124, 98,147, 20,195,105,106,156, 62, 62,126, 20,166,203, 2, 96,143, 1, 62, 0, 0, 0,
- 0, 1, 0, 47, 0, 0, 4,162, 5,213, 0, 16, 0, 0, 1, 38, 7, 6, 29, 1, 35, 53, 52, 54, 51, 33, 21, 33, 17, 35, 17, 1,
-197,131, 70, 49,156,192,214, 2,221,254, 45,203, 5, 47, 8, 55, 38,114, 49, 70,181,163,170,250,213, 5, 43, 0, 0, 1, 0,131,
- 0, 0, 4, 8, 6, 20, 0, 29, 0, 0, 1, 33, 21, 33, 17, 20, 22, 59, 1, 21, 35, 34, 38, 53, 17, 33, 53, 33, 53, 52, 55, 54,
- 59, 1, 21, 35, 34, 7, 6, 21, 2,102, 1,162,254, 94, 94,117,207,225,207,170,254,213, 1, 42, 89, 90,165,205,185, 90, 45, 44,
- 4, 96,143,253,160,124, 98,147,166,203, 2, 96,143, 30,195,105,106,156, 62, 62,126, 0, 0, 0, 0, 1, 0, 47,254, 86, 4,162,
- 5,213, 0, 21, 0, 0, 19, 33, 21, 33, 17, 29, 1, 20, 23, 22, 59, 1, 21, 35, 34, 39, 38, 61, 2, 17, 33, 47, 4,115,254, 45,
- 44, 45, 90,185,223,165, 90, 89,254, 43, 5,213,170,251, 85,128, 20,126, 62, 62,156,106,105,195, 20,128, 4,171,255,255, 0, 9,
-255,227, 4,200, 6, 25, 16, 39, 2,151, 1,154, 1,168, 16, 7, 0, 56,255,118, 0, 0, 0, 0,255,255, 0, 39,255,227, 4,170,
- 4,113, 16, 39, 2,151, 1,124, 0, 0, 16, 7, 0, 88,255,100, 0, 0, 0, 0, 0, 1, 0, 74, 0, 0, 4,135, 5,180, 0, 30,
- 0, 0, 1, 21, 35, 22, 18, 21, 16, 0, 35, 34, 0, 17, 52, 18, 55, 35, 53, 33, 21, 6, 2, 21, 20, 18, 32, 18, 53, 52, 2, 39,
- 53, 4,135,245,123,110,254,224,240,242,254,223,111,123,248, 1,207,120,134,180, 1, 52,179,134,120, 5,180,172,134,254,224,188,
-254,201,254,145, 1,110, 1, 56,188, 1, 33,133,172,172, 76,254,183,222,230,254,247, 1, 9,230,222, 1, 73, 76,172, 0, 0, 0,
- 0, 1, 0,154, 0, 0, 4, 42, 5,213, 0, 24, 0, 0, 33, 34, 39, 38, 53, 17, 51, 17, 20, 23, 22, 51, 50, 18, 53, 52, 2, 39,
- 51, 22, 18, 21, 16, 7, 6, 1,250,170, 92, 90,204, 44, 44, 90,154,180,134,120,218,122,110,144,147,106,102,198, 4, 63,251,208,
-126, 62, 62, 1, 9,230,222, 1, 73, 76,134,254,224,188,254,201,184,188, 0, 0, 0, 1, 0, 17, 0, 0, 4,192, 5,215, 0, 22,
- 0, 0, 1, 3, 17, 35, 17, 1, 51, 1, 19, 54, 55, 54, 51, 50, 31, 1, 7, 39, 38, 35, 34, 7, 6, 3,107,246,183,254, 83,193,
- 1, 72,199, 99,109, 46, 45, 80, 75, 25, 71, 10, 34, 40, 28, 31, 51, 4,116,254, 42,253, 98, 2,158, 3, 55,253,109, 1,145,200,
- 42, 18, 57, 19,134, 9, 31, 16, 24, 0, 0, 0, 0, 1, 0, 24,254, 86, 4,201, 4,109, 0, 28, 0, 0, 5, 6, 7, 6, 43, 1,
- 53, 51, 50, 54, 63, 1, 1, 51, 9, 1, 54, 55, 54, 51, 50, 31, 1, 7, 39, 38, 35, 34, 7, 2,110, 81, 71, 74,124,147,108, 76,
- 84, 51, 33,254, 59,195, 1, 94, 1, 23, 50, 81, 43, 51, 49, 55, 48, 53, 28, 28, 22, 43, 16,104,203, 58, 61,154, 72,134, 84, 4,
- 78,252,148, 2,187,126, 41, 22, 20, 17,147, 10, 11, 41, 0, 0, 0, 1, 0,156, 0, 0, 4,145, 5,213, 0, 18, 0, 0, 19, 33,
- 21, 1, 51, 21, 33, 35, 1, 33, 21, 33, 53, 1, 35, 53, 33, 1, 33,178, 3,201,254,117,232,254,247, 80,254,240, 3, 34,252, 11,
- 1, 19,180, 1, 34, 1,118,253, 31, 5,213,154,253,176,170,254,105,170,154, 1,167,170, 2, 64, 0, 1, 0,156, 0, 0, 4, 53,
- 4, 98, 0, 18, 0, 0, 19, 33, 21, 1, 33, 21, 33, 35, 3, 33, 21, 33, 53, 19, 33, 53, 33, 1, 33,222, 3, 45,254,242, 1, 56,
-254,158, 89,242, 2,131,252,187,225,254,245, 1,142, 1, 31,253,149, 4, 98,168,254,174,164,254,210,150,170, 1, 26,164, 1,103,
- 0, 1, 0, 26,255,228, 4,183, 5,213, 0, 31, 0, 0, 19, 20, 23, 22, 32, 55, 54, 53, 52, 39, 38, 43, 1, 53, 1, 33, 53, 33,
- 21, 1, 50, 23, 22, 23, 22, 21, 20, 4, 33, 32, 36, 53,228,100, 99, 1,123,100,100, 92, 94,164,174, 1,114,253, 30, 3,202,254,
-136,104,130, 98, 86, 80,254,208,254,232,254,220,254,208, 1,179,143, 75, 75, 75, 75,143,134, 73, 74,166, 1,185,170,168,254, 71,
- 56, 43,108,104,138,221,242,242,221, 0, 0, 0, 0, 1, 0, 26,255,228, 4,183, 5,213, 0, 31, 0, 0, 1, 51, 20, 4, 33, 32,
- 36, 53, 52, 55, 54, 55, 54, 51, 1, 53, 33, 21, 33, 1, 21, 35, 34, 7, 6, 21, 20, 23, 22, 32, 55, 54, 3,238,200,254,208,254,
-220,254,232,254,208, 82, 85, 99,129,105,254,136, 3,200,253, 32, 1,114,174,166, 92, 92,100, 99, 1,123,100,100, 1,179,221,242,
-242,221,138,104,108, 43, 56, 1,185,168,170,254, 71,166, 74, 73,134,143, 75, 75, 75, 75, 0, 0, 0, 1, 0,125,254, 76, 4, 84,
- 4, 96, 0, 32, 0, 0, 9, 1, 53, 33, 21, 33, 1, 21, 35, 34, 7, 6, 21, 20, 23, 22, 51, 50, 54, 55, 21, 6, 7, 6, 35, 32,
- 36, 53, 52, 55, 54, 55, 54, 2,112,254,101, 3,106,253,101, 1,174,174,165, 93, 92,100, 99,190,109,200, 84,106,100, 99, 94,254,
-232,254,208, 81, 86, 98,128, 1,220, 1,220,168,147,254, 13,166, 74, 75,132,143, 75, 75, 50, 49,195, 37, 19, 18,242,221,138,104,
-109, 42, 56, 0, 0, 1, 0,152, 0, 0, 4, 35, 5,240, 0, 32, 0, 0, 19, 54, 51, 50, 4, 21, 20, 7, 6, 7, 51, 21, 35, 7,
- 1, 33, 21, 33, 53, 1, 33, 53, 33, 54, 55, 54, 53, 52, 39, 38, 35, 34, 7,164,208,191,219, 1, 11, 45, 34, 66, 80,230, 56,254,
-187, 2,174,252,117, 1,126,254,229, 1,178,105, 30, 22,150, 57, 68,181,222, 5,141, 99,233,189, 96, 96, 74, 85,170, 63,254,168,
-170,170, 1,151,170,130, 84, 60, 62,185, 60, 22,133, 0, 0, 0, 0, 1, 0, 26,255,228, 4,182, 5,213, 0, 32, 0, 0, 37, 32,
- 55, 54, 53, 52, 39, 38, 35, 33, 17, 33, 21, 33, 17, 33, 50, 23, 22, 23, 22, 21, 20, 4, 33, 32, 3, 38, 53, 51, 20, 23, 22, 2,
-104, 1, 60, 61, 13, 92, 94,164,254, 71, 3,156,253, 47, 1, 34,105,129, 99, 85, 80,254,208,254,232,254, 82,122, 44,202,158, 91,
-142,199, 43, 51,134, 73, 74, 3, 9,170,254, 73, 56, 43,108,101,141,221,242, 1, 0, 91,116,181, 71, 41, 0, 0, 0, 1, 0,125,
-254, 76, 4, 84, 4, 96, 0, 28, 0, 0, 1, 32, 55, 54, 53, 52, 39, 38, 35, 33, 17, 33, 21, 33, 17, 55, 54, 23, 22, 23, 22, 21,
- 20, 4, 33, 34, 39, 53, 22, 2, 6, 1, 55, 63, 15, 92, 93,165,254,212, 2,240,253,200,168,103,131, 99, 85, 81,254,208,254,232,
-187,212,170,254,246,195, 45, 53,134, 73, 74, 3, 44,184,254, 51, 1, 1, 57, 43,108,104,138,221,242, 74,195, 99, 0, 1, 0,194,
-255,227, 4, 15, 5,158, 0, 32, 0, 0, 1, 52, 39, 38, 43, 1, 17, 35, 53, 51, 17, 51, 17, 51, 21, 35, 21, 22, 23, 22, 21, 20,
- 7, 6, 33, 34, 39, 53, 22, 51, 50, 55, 54, 3, 77, 74, 89,173, 62,229,229,202,231,231,165,108,117,110,138,254,238,171,152,156,
-159,179, 99, 57, 1,183,114, 79, 95, 1, 15,164, 1, 20,254,236,164,125, 29,110,119,176,185,126,157, 70,172, 86,114, 65, 0, 0,
- 0, 1, 2, 3, 0, 0, 2,206, 5,213, 0, 3, 0, 0, 1, 51, 17, 35, 2, 4,202,202, 5,213,250, 43, 0, 0,255,255, 1, 57,
- 0, 0, 3,152, 5,213, 16, 39, 1,128,255, 54, 0, 0, 16, 7, 1,128, 0,202, 0, 0, 0, 0, 0, 1, 0,164, 0, 0, 4, 45,
- 5,213, 0, 19, 0, 0, 1, 51, 17, 33, 21, 33, 21, 33, 21, 33, 17, 35, 17, 33, 53, 33, 53, 33, 53, 33, 2, 4,202, 1, 94,254,
-162, 1, 94,254,162,202,254,160, 1, 96,254,160, 1, 96, 5,213,254,108,168,240,170,254, 1, 1,255,170,240,168,255,255, 2, 3,
- 0, 0, 2,206, 5,213, 16, 6, 0, 4,255, 0,255,255, 0, 37, 0, 0, 4,172, 7,109, 16, 38, 0, 36, 0, 0, 16, 7, 11,181,
- 0, 0, 1,117,255,255, 0,133,255,227, 4, 35, 6,102, 16, 38, 0, 68, 0, 0, 16, 6, 2, 96, 0, 0, 0, 0,255,255, 0,201,
- 0, 0, 4, 6, 7,109, 16, 38, 0, 44, 0, 0, 16, 7, 11,181, 0, 0, 1,117,255,255, 0,178, 0, 0, 4, 68, 6,102, 16, 38,
- 0,243, 0, 0, 16, 6, 2, 96, 0, 0, 0, 0,255,255, 0,117,255,227, 4, 92, 7,109, 16, 38, 0, 50, 0, 0, 16, 7, 11,181,
- 0, 0, 1,117,255,255, 0,137,255,227, 4, 72, 6,102, 16, 38, 0, 82, 0, 0, 16, 6, 2, 96, 0, 0, 0, 0,255,255, 0,147,
-255,227, 4, 61, 7,109, 16, 38, 0, 56, 0, 0, 17, 7, 11,181, 0, 0, 1,117, 0, 20,180, 17, 35, 31, 1, 7, 43, 64, 9, 32,
- 31, 47, 35, 0, 31, 15, 35, 4, 93, 49, 0, 0,255,255, 0,195,255,227, 4, 27, 6,102, 16, 38, 0, 88, 0, 0, 16, 6, 2, 96,
- 0, 0, 0, 0,255,255, 0,147,255,227, 4, 61, 7,160, 16, 39, 11,176, 0, 0, 0,249, 16, 38, 0, 56, 0, 0, 16, 7, 2, 98,
- 0, 0, 1,170,255,255, 0,195,255,227, 4, 27, 7, 50, 16, 38, 2,132, 0, 0, 16, 38, 0, 88, 0, 0, 16, 7, 0,113, 0, 0,
- 1, 60, 0, 0,255,255, 0,147,255,227, 4, 61, 7,249, 16, 39, 11,176, 0, 0, 0,249, 16, 38, 0, 56, 0, 0, 16, 7, 11,177,
- 0, 0, 2, 3,255,255, 0,195,255,227, 4, 27, 7,162, 16, 38, 2,132, 0, 0, 16, 38, 0, 88, 0, 0, 16, 7, 2,125, 0, 0,
- 1, 60, 0, 0,255,255, 0,147,255,227, 4, 61, 7,251, 16, 39, 11,176, 0, 0, 0,249, 16, 38, 0, 56, 0, 0, 16, 7, 11,181,
- 0, 0, 2, 3,255,255, 0,195,255,227, 4, 27, 7,162, 16, 38, 2,132, 0, 0, 16, 38, 0, 88, 0, 0, 16, 7, 2,136, 0, 0,
- 1, 60, 0, 0,255,255, 0,147,255,227, 4, 61, 7,249, 16, 39, 11,176, 0, 0, 0,249, 16, 38, 0, 56, 0, 0, 16, 7, 11,179,
- 0, 0, 2, 3,255,255, 0,195,255,227, 4, 27, 7,162, 16, 39, 2,124, 0, 0, 1, 60, 16, 6, 0,190, 0, 0,255,255, 0,122,
-255,227, 4, 87, 4,123, 18, 6, 1,247, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7,160, 16, 39, 11,176, 0, 0, 0,249, 16, 39,
- 2, 98, 0, 0, 1,170, 16, 6, 0, 36, 0, 0,255,255, 0,133,255,227, 4, 35, 7, 50, 16, 39, 0,113, 0, 0, 1, 60, 16, 6,
- 0,166, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7,160, 16, 39, 2, 98, 0, 0, 1,170, 16, 38, 11,185, 0,132, 16, 6, 0, 36,
- 0, 0, 0, 0,255,255, 0,133,255,227, 4, 35, 7, 50, 16, 39, 0,113, 0, 0, 1, 60, 18, 6, 1,210, 0, 0,255,255, 0, 0,
- 0, 0, 4,156, 7, 48, 16, 39, 11,189, 0,170, 0, 0, 16, 6, 0,136, 0, 0,255,255, 0, 41,255,227, 4,176, 5,246, 16, 38,
- 2,128, 0, 0, 16, 6, 0,168, 0, 0, 0, 0,255,255, 0,102,255,227, 4, 80, 7,109, 16, 39, 11,181, 0, 0, 1,117, 16, 6,
- 0, 42, 0, 0,255,255, 0,123,254, 72, 4, 18, 6,102, 16, 38, 2, 96, 0, 0, 16, 6, 0, 74, 0, 0, 0, 0,255,255, 0,137,
- 0, 0, 4,201, 7,109, 16, 39, 11,181, 0, 0, 1,117, 16, 6, 0, 46, 0, 0,255,255, 0,236, 0, 0, 4,178, 7,109, 16, 39,
- 11,181, 0, 0, 1,117, 16, 6, 0, 78, 0, 0,255,255, 0,117,254,101, 4, 92, 5,240, 16, 38, 2,109, 28,240, 16, 6, 0, 50,
- 0, 0, 0, 0,255,255, 0,137,254,101, 4, 72, 4,123, 16, 38, 2,109, 28,240, 16, 6, 0, 82, 0, 0, 0, 0,255,255, 0,117,
-254,101, 4, 92, 7, 48, 16, 38, 11,189, 0, 0, 16, 6, 1,159, 0, 0, 0, 0,255,255, 0,137,254,101, 4, 72, 5,246, 16, 38,
- 2,128, 0, 0, 16, 6, 1,160, 0, 0, 0, 0,255,255, 0, 26,255,228, 4,183, 7,109, 16, 39, 11,181, 0, 0, 1,117, 16, 6,
- 1,121, 0, 0,255,255, 0,125,254, 76, 4, 84, 6,102, 16, 38, 2, 96, 0, 0, 16, 6, 2, 48, 0, 0, 0, 0,255,255, 0,186,
-254, 86, 3,203, 6, 97, 16, 38, 2, 96, 35,251, 16, 6, 1,226, 0, 0, 0, 0,255,255, 0,102,255,227, 4, 80, 7,107, 16, 39,
- 11,177, 0, 90, 1,117, 16, 6, 0, 42, 0, 0,255,255, 0,123,254, 72, 4, 18, 6,102, 16, 38, 0,118, 0, 0, 16, 6, 0, 74,
- 0, 0, 0, 0, 0, 1, 0, 61,255,227, 4,148, 5,213, 0, 29, 0, 0, 37, 50, 55, 54, 25, 1, 51, 17, 16, 7, 6, 35, 34, 39,
- 38, 17, 53, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 16, 23, 22, 3,109, 54, 25, 33,182,104, 57,133,128, 72,134,254,213,182,182,
- 1, 43,183, 82, 23,135, 79,102, 1, 14, 1, 39,254,192,254,139,140, 77, 83,153, 1, 98,150,253, 57, 5,213,253,156, 2,100,252,
-117,254,239,139, 39, 0, 0, 0,255,255, 0,139, 0, 0, 4, 70, 7,107, 16, 39, 11,179, 0, 0, 1,117, 16, 6, 0, 49, 0, 0,
-255,255, 0,195, 0, 0, 4, 27, 6,102, 16, 38, 0, 67, 0, 0, 16, 6, 0, 81, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 4,156,
- 7,107, 16, 39, 11,177, 0,240, 1,117, 16, 6, 0,136, 0, 0,255,255, 0, 41,255,227, 4,176, 6,102, 16, 38, 0,118, 0, 0,
- 16, 6, 0,168, 0, 0, 0, 0,255,255, 0, 8,255,186, 4,176, 7,107, 16, 39, 11,177, 0, 0, 1,117, 16, 6, 0,154, 0, 0,
-255,255, 0, 47,255,160, 4,150, 6,102, 16, 38, 0,118, 0, 0, 16, 6, 0,186, 0, 0, 0, 0,255,255, 0, 37, 0, 0, 4,172,
- 7,107, 16, 38, 11,187, 0, 0, 16, 6, 0, 36, 0, 0, 0, 0,255,255, 0,133,255,227, 4, 35, 6,102, 16, 38, 2,139, 0, 0,
- 16, 6, 0, 68, 0, 0, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7,109, 16, 38, 11,183, 0, 0, 16, 6, 0, 36, 0, 0, 0, 0,
-255,255, 0,133,255,227, 4, 35, 6, 72, 16, 38, 2,141, 0, 0, 16, 6, 0, 68, 0, 0, 0, 0,255,255, 0,187, 0, 0, 4, 78,
- 7,107, 16, 38, 11,187, 0, 0, 16, 6, 0, 40, 0, 0, 0, 0,255,255, 0,123,255,227, 4, 88, 6,102, 16, 38, 2,139, 14, 0,
- 16, 6, 0, 72, 0, 0, 0, 0,255,255, 0,197, 0, 0, 4, 78, 7,109, 16, 38, 11,183, 0, 0, 16, 6, 0, 40, 0, 0, 0, 0,
-255,255, 0,123,255,227, 4, 88, 6, 72, 16, 38, 2,141, 14, 0, 16, 6, 0, 72, 0, 0, 0, 0,255,255, 0,187, 0, 0, 4, 6,
- 7,107, 16, 38, 11,187, 0, 0, 16, 6, 0, 44, 0, 0, 0, 0,255,255, 0,178, 0, 0, 4, 68, 6,102, 16, 38, 2,139, 0, 0,
- 16, 6, 0,243, 0, 0, 0, 0,255,255, 0,201, 0, 0, 4, 6, 7,109, 16, 38, 11,183, 0, 0, 16, 6, 0, 44, 0, 0, 0, 0,
-255,255, 0,178, 0, 0, 4, 68, 6, 72, 16, 38, 2,141, 0, 0, 16, 6, 0,243, 0, 0, 0, 0,255,255, 0,117,255,227, 4, 92,
- 7,107, 16, 38, 11,187, 0, 0, 16, 6, 0, 50, 0, 0, 0, 0,255,255, 0,137,255,227, 4, 72, 6,102, 16, 38, 2,139, 0, 0,
- 16, 6, 0, 82, 0, 0, 0, 0,255,255, 0,117,255,227, 4, 92, 7,109, 16, 38, 11,183, 0, 0, 16, 6, 0, 50, 0, 0, 0, 0,
-255,255, 0,137,255,227, 4, 72, 6, 72, 16, 38, 2,141, 0, 0, 16, 6, 0, 82, 0, 0, 0, 0,255,255, 0,137, 0, 0, 4,209,
- 7,107, 16, 38, 11,187,206, 0, 16, 6, 0, 53, 0, 0, 0, 0,255,255, 1,104, 0, 0, 4,131, 6,102, 16, 39, 2,139, 0,150,
- 0, 0, 16, 6, 0, 85, 0, 0,255,255, 0,143, 0, 0, 4,209, 7,109, 16, 38, 11,183,206, 0, 16, 6, 0, 53, 0, 0, 0, 0,
-255,255, 1,106, 0, 0, 4,131, 6, 72, 16, 39, 2,141, 0,150, 0, 0, 16, 6, 0, 85, 0, 0,255,255, 0,147,255,227, 4, 61,
- 7,107, 16, 38, 11,187, 0, 0, 16, 6, 0, 56, 0, 0, 0, 0,255,255, 0,195,255,227, 4, 27, 6,102, 16, 38, 2,139, 0, 0,
- 16, 6, 0, 88, 0, 0, 0, 0,255,255, 0,147,255,227, 4, 61, 7,109, 16, 38, 11,183, 0, 0, 16, 6, 0, 56, 0, 0, 0, 0,
-255,255, 0,195,255,227, 4, 27, 6, 72, 16, 38, 2,141, 0, 0, 16, 6, 0, 88, 0, 0, 0, 0,255,255, 0,139,253,226, 4, 74,
- 5,240, 16, 38, 2,162, 0, 0, 16, 6, 0, 54, 0, 0, 0, 0,255,255, 0,213,253,226, 4, 6, 4,123, 16, 38, 2,162, 0, 0,
- 16, 6, 0, 86, 0, 0, 0, 0,255,255, 0, 47,253,226, 4,162, 5,213, 16, 38, 2,162, 0, 0, 16, 6, 0, 55, 0, 0, 0, 0,
-255,255, 0,131,253,226, 4, 8, 5,158, 16, 38, 2,162, 89, 0, 16, 6, 0, 87, 0, 0, 0, 0,255,255, 0,137, 0, 0, 4, 72,
- 7,109, 16, 39, 11,181, 0, 0, 1,117, 16, 6, 0, 43, 0, 0,255,255, 0,195, 0, 0, 4, 27, 7,109, 16, 39, 11,181, 0, 0,
- 1,117, 16, 6, 0, 75, 0, 0, 0, 1, 0,147,254, 82, 4, 61, 5,242, 0, 19, 0, 0, 1, 17, 35, 17, 52, 38, 35, 34, 6, 21,
- 17, 35, 17, 51, 21, 62, 1, 51, 50, 18, 4, 61,203,116,124,141,152,202,202, 54,184,126,187,185, 3,231,250,107, 5,159,180,169,
-218,203,252, 87, 5,213,198,111,116,254,251, 0, 0, 3, 0, 18,255,108, 4,159, 6, 20, 0, 6, 0, 40, 0, 49, 0, 0, 37, 22,
- 55, 50, 55, 54, 34, 39, 20, 23, 54, 55, 54, 21, 16, 35, 34, 39, 6, 7, 35, 55, 38, 47, 1, 6, 7, 6, 39, 38, 39, 38, 17, 16,
- 18, 51, 50, 22, 23, 17, 51, 0, 16, 22, 50, 54, 53, 52, 38, 34, 3,109, 12, 66,123, 3, 4,128,169, 13,114,104,164,250, 71, 48,
- 30, 20,119, 68, 32, 38, 16, 28, 56, 77,100,163, 92, 93,187,161, 80,123, 35,184,253,153,108,212,111,111,212,144, 18, 1,155, 62,
- 62,116, 35,244, 1, 2,218,254,199, 17, 79, 57,194, 13, 89, 37, 90, 53, 72, 1, 2,155,158, 1, 21, 1, 17, 1, 55, 87, 83, 2,
- 67,252,241,254, 84,218,220,212,213,219, 0, 0, 0, 1, 0,156,254, 86, 4,146, 5,213, 0, 23, 0, 0, 19, 33, 21, 1, 33, 21,
- 51, 21, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 61, 1, 33, 53, 1, 33,178, 3,201,252,244, 3, 34, 1, 89, 90,165,205,185, 90,
- 45, 44,252,195, 2,247,253, 31, 5,213,154,251,111, 42,148,195,105,106,156, 62, 62,126, 20,154, 4,145, 0, 0, 0, 1, 0,203,
-254, 86, 4, 16, 4, 98, 0, 23, 0, 0, 19, 33, 21, 1, 33, 21, 35, 21, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 61, 1, 33, 53,
- 1, 33,227, 3, 45,253,125, 2,131, 8, 89, 90,165,205,185, 90, 45, 44,253,124, 2,131,253,149, 4, 98,168,252,220,150, 20,195,
-105,106,156, 62, 62,126, 20,170, 3, 37, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7, 80, 16, 38, 11,185, 0, 0, 16, 6, 0, 36,
- 0, 0, 0, 0,255,255, 0,133,255,227, 4, 35, 6, 16, 16, 38, 2,131, 0, 0, 16, 6, 0, 68, 0, 0, 0, 0,255,255, 0,197,
-254,117, 4, 78, 5,213, 16, 38, 2,163, 50, 0, 16, 6, 0, 40, 0, 0, 0, 0,255,255, 0,123,254,117, 4, 88, 4,123, 16, 38,
- 2,163, 50, 0, 16, 6, 0, 72, 0, 0, 0, 0,255,255, 0,117,255,227, 4, 92, 7,160, 16, 39, 11,176, 0, 0, 0,249, 16, 39,
- 2, 98, 0, 0, 1,170, 16, 6, 0, 50, 0, 0,255,255, 0,137,255,227, 4, 72, 7, 50, 16, 39, 0,113, 0, 0, 1, 60, 16, 6,
- 0,184, 0, 0,255,255, 0,117,255,227, 4, 92, 7,160, 16, 38, 0, 50, 0, 0, 16, 39, 11,178, 0, 0, 0,245, 16, 7, 2, 98,
- 0, 0, 1,170,255,255, 0,137,255,227, 4, 72, 7, 50, 16, 39, 0,113, 0, 4, 1, 60, 16, 6, 0,183, 0, 0,255,255, 0,117,
-255,227, 4, 92, 7, 80, 16, 38, 11,185, 0, 0, 16, 6, 0, 50, 0, 0, 0, 0,255,255, 0,137,255,227, 4, 72, 6, 16, 16, 38,
- 2,131, 0, 0, 16, 6, 0, 82, 0, 0, 0, 0,255,255, 0,117,255,227, 4, 92, 7,160, 16, 39, 2, 98, 0, 0, 1,170, 16, 38,
- 11,185, 0,132, 16, 6, 0, 50, 0, 0, 0, 0,255,255, 0,137,255,227, 4, 72, 7, 50, 16, 39, 0,113, 0, 0, 1, 60, 16, 6,
- 1,218, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7, 48, 16, 38, 11,189, 0, 0, 16, 6, 0, 60, 0, 0, 0, 0,255,255, 0,104,
-254, 86, 4,129, 5,246, 16, 38, 2,128, 0, 0, 16, 6, 0, 92, 0, 0, 0, 0, 0, 2, 0,160,255,108, 4, 10, 6, 31, 0, 6,
- 0, 29, 0, 0, 37, 22, 55, 50, 55, 54, 34, 3, 6, 7, 35, 55, 38, 39, 38, 53, 17, 33, 53, 33, 17, 20, 23, 54, 55, 54, 21, 16,
- 35, 34, 2,216, 12, 66,123, 3, 4,128,144, 29, 20,119, 68, 19, 51, 39,254,217, 1,223, 13,114,104,164,250, 70,144, 18, 1,155,
- 62,254,156, 79, 57,194, 5, 97, 74,184, 3,249,144,251,119,116, 35,244, 1, 2,218,254,199, 0, 0, 2, 0,106,255,108, 4,103,
- 4,123, 0, 6, 0, 46, 0, 0, 37, 22, 55, 50, 55, 54, 34, 39, 20, 23, 54, 55, 54, 23, 20, 21, 16, 7, 34, 39, 6, 7, 35, 55,
- 38, 39, 38, 61, 1, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 23, 22, 17, 3, 52, 12, 66,123, 3, 4,128,185,
- 22,122,103,159, 5,250, 71, 49, 29, 20,119, 68, 19, 51, 39, 53, 90, 73, 57,167,167, 33, 99, 63,133, 57, 56,144, 18, 1,155, 62,
- 62,114, 46,252, 2, 2,206, 6, 6,254,200, 1, 17, 79, 57,194, 5, 97, 74,184,235,237,115,123,229,253,127, 4, 96, 96, 60, 63,
-105,101,254,220, 0, 2, 0,131,255,108, 4, 8, 5,158, 0, 6, 0, 35, 0, 0, 37, 22, 55, 50, 55, 54, 34, 39, 20, 23, 54, 55,
- 54, 21, 16, 35, 34, 39, 6, 7, 35, 55, 38, 39, 38, 53, 17, 33, 53, 33, 17, 51, 17, 33, 21, 33, 2,191, 12, 66,123, 3, 4,128,
-169, 13,114,104,164,250, 71, 48, 30, 20,119, 68, 19, 51, 39,254,213, 1, 43,184, 1,162,254, 94,144, 18, 1,155, 62, 62,116, 35,
-244, 1, 2,218,254,199, 17, 79, 57,194, 5, 97, 74,184, 2, 59,143, 1, 62,254,194,143, 0, 0, 0, 1, 0,186,254, 86, 3, 16,
- 4, 96, 0, 13, 0, 44, 64, 22, 5, 0, 1, 10,140, 8, 1,182, 3,194, 8,195, 14, 11, 8, 2, 9, 2, 4, 6, 0, 14, 16,212,
-236,196,196, 18, 57, 57, 49, 0, 16,228,244,238, 16,238, 17, 57, 57, 48, 5, 17, 33, 53, 33, 17, 20, 6, 43, 1, 53, 51, 50, 54,
- 2, 88,254,195, 1,245,179,165,254,234, 90, 90, 20, 3,229,143,251,140,195,211,156,125, 0, 0, 0, 3, 0,120,255,227, 4, 89,
- 6, 20, 0, 8, 0, 19, 0, 49, 0, 0, 18, 16, 22, 50, 54, 53, 52, 38, 34, 0, 16, 38, 35, 34, 6, 21, 20, 22, 51, 50, 3, 62,
- 1, 51, 50, 18, 17, 16, 2, 35, 34, 38, 39, 21, 35, 53, 14, 1, 35, 34, 2, 17, 16, 18, 51, 50, 22, 23, 17, 51,237, 81,160, 83,
- 83,160, 2,166, 81, 80, 81, 82, 82, 81, 80,243, 26, 93, 61,122,139,140,122, 60, 92, 27,111, 27, 92, 60,122,140,141,121, 60, 93,
- 26,111, 3, 5,254, 84,218,220,212,213,219,253,122, 1,172,218,219,213,212,220, 3, 82, 82, 88,254,201,254,239,254,235,254,197,
- 87, 83,141,141, 83, 87, 1, 59, 1, 21, 1, 17, 1, 55, 87, 83, 2, 67, 0, 0, 0, 3, 0,120,254, 74, 4, 89, 4,123, 0, 8,
- 0, 19, 0, 49, 0, 0, 0, 16, 38, 34, 6, 21, 20, 22, 50, 0, 16, 22, 51, 50, 54, 53, 52, 38, 35, 34, 19, 14, 1, 35, 34, 2,
- 17, 16, 18, 51, 50, 22, 23, 53, 51, 21, 62, 1, 51, 50, 18, 17, 16, 2, 35, 34, 38, 39, 17, 35, 3,228, 81,160, 83, 83,160,253,
- 90, 81, 80, 80, 83, 83, 80, 80,243, 26, 93, 61,121,140,140,122, 60, 92, 27,111, 27, 92, 60,122,140,141,121, 61, 92, 26,111, 1,
- 89, 1,172,218,220,212,213,219, 2,134,254, 84,218,219,213,212,220,252,174, 82, 88, 1, 55, 1, 17, 1, 21, 1, 59, 87, 83,141,
-141, 83, 87,254,197,254,235,254,239,254,201, 87, 83,253,189, 0, 0, 3, 0, 8,255,186, 4,176, 6, 23, 0, 15, 0, 18, 0, 21,
- 0, 0, 1, 51, 19, 1, 23, 9, 1, 35, 3, 33, 15, 1, 35, 7, 39, 55, 1, 33, 3, 39, 11, 1, 1,238,245, 96, 1, 9,100,254,
-193, 1, 59,209,110,254, 67,130, 56, 86, 49,103, 52, 1,230, 1, 27, 81, 43, 89,207, 5,213,254,199, 1,123, 74,254, 56,251,251,
- 1,133,186,203, 70, 70, 74, 1,221, 1, 33,155, 1, 64,253, 25, 0, 2, 0, 8,255,186, 4,176, 6, 23, 0, 8, 0, 41, 0, 0,
- 9, 1, 39, 38, 35, 34, 2, 17, 20, 1, 14, 1, 35, 32, 47, 1, 7, 39, 19, 38, 17, 16, 0, 33, 50, 23, 22, 23, 55, 23, 7, 21,
- 38, 39, 1, 22, 23, 22, 51, 50, 54, 55, 1,112, 2, 52, 18, 85, 86,197,196, 2,211, 77,162, 91,254,225,158, 9,178,103,212, 81,
- 1, 63, 1, 29, 91, 81, 59, 56, 70,100,127, 16, 17,253,139, 16, 21, 98,197, 88,169, 73, 2, 2, 3, 36, 6, 32,254,208,254,205,
-126,253,202, 41, 41,203, 11,255, 70, 1, 47,179, 1, 7, 1,110, 1,153, 20, 15, 26,100, 74,181, 73, 13, 12,252,126, 39, 32,152,
- 64, 61, 0, 0, 0, 2, 0, 47,255,160, 4,150, 4,188, 0, 7, 0, 40, 0, 0, 9, 1, 38, 35, 34, 6, 21, 20, 1, 14, 1, 35,
- 32, 47, 1, 7, 39, 19, 38, 53, 16, 0, 33, 50, 23, 22, 23, 55, 23, 7, 21, 38, 39, 1, 22, 23, 22, 51, 50, 54, 55, 1,149, 1,
-220, 62, 71,173,186, 2,160, 74,157, 82,254,252,146, 8,195, 92,216, 68, 1, 37, 1, 4, 81, 77, 40, 40, 95, 93,113, 34, 33,253,
-228, 13, 15, 94,172, 96,152, 65, 1,150, 2, 55, 18,224,208, 83,254, 93, 43, 43,156, 9,232, 76, 1, 2,132,189, 1, 20, 1, 56,
- 21, 11, 17,114, 77,134,133, 30, 22,253,127, 21, 18,113, 59, 62, 0, 1, 0, 21, 0, 0, 4,188, 5,213, 0, 13, 0, 0, 1, 51,
- 17, 33, 21, 33, 17, 33, 21, 33, 17, 33, 53, 33, 1, 32,203, 1, 7,254,249, 2,209,252,100,254,245, 1, 11, 5,213,253, 22,170,
-254,105,170, 2, 65,170, 0, 0, 0, 2, 0, 33,255,186, 4,201, 6, 23, 0, 2, 0, 18, 0, 0, 1, 19, 35, 3, 17, 33, 53, 33,
- 55, 23, 7, 21, 35, 1, 17, 35, 17, 1, 39, 2,205,243,243,203,254, 45, 4, 8, 46,100, 39, 74,254,117,203,254,134,103, 3,208,
- 1, 91,253,132, 2,124,170, 66, 74, 56,106,253,205,253, 8, 1,214,253,228, 70, 0, 1, 0,213,254, 16, 4, 25, 4,123, 0, 53,
- 0, 0, 1, 21, 46, 1, 35, 34, 6, 21, 20, 22, 31, 1, 30, 1, 21, 20, 7, 6, 7, 31, 1, 22, 51, 21, 35, 34, 39, 38, 47, 1,
- 38, 47, 1, 53, 54, 23, 22, 51, 50, 54, 53, 52, 47, 2, 38, 39, 38, 53, 52, 54, 51, 50, 22, 3,205, 79,160, 83,125,123, 92,183,
- 74,137,141,118,104,176,152,147, 42, 76, 39, 84,114, 71, 89,237, 51,101, 50,123,122, 68, 62,122,134,245, 8, 69,161, 71, 73,218,
-202, 90,166, 4, 57,180, 46, 46, 81, 83, 75, 74, 35, 14, 26,156,125,166, 94, 82, 10,152,126, 36,154, 61, 38, 91,243, 53, 35, 16,
-190, 5, 96, 15, 99, 89,128, 49, 2, 14, 33, 71, 74,127,161,175, 33, 0, 0, 0, 0, 1, 0,203,254, 16, 4, 16, 4, 98, 0, 23,
- 0, 0, 19, 33, 21, 1, 22, 23, 1, 23, 22, 59, 1, 21, 35, 34, 39, 38, 47, 1, 38, 35, 61, 1, 1, 33,227, 3, 45,253,106, 49,
- 32, 1, 8,147, 42, 76, 52, 91, 84,114, 71, 89,237, 61, 90, 2,131,253,149, 4, 98,168,252,203, 17, 32,254,248,126, 36,154, 61,
- 38, 91,243, 63,156, 14, 3, 37, 0, 1, 0, 55, 0, 0, 4,154, 5,213, 0, 26, 0, 0, 1, 34, 7, 6, 29, 1, 35, 53, 52, 54,
- 51, 33, 50, 4, 21, 20, 4, 35, 17, 35, 17, 51, 50, 54, 16, 38, 35, 1,118, 54, 60, 48,156,192,126, 1, 39,250, 1, 2,254,255,
-251,202,202,140,157,156,141, 5, 47, 47, 38,114, 49, 70,181,163,227,219,221,226,253,168, 2,254,148, 1, 10,147, 0, 1, 0, 57,
- 0, 0, 4,152, 5,213, 0, 6, 0, 0, 9, 1, 35, 1, 51, 1, 35, 2,105,254,161,209, 1,181,245, 1,181,209, 5, 43,250,213,
- 5,213,250, 43, 0, 2, 0,154,255,227, 4, 56, 4,123, 0, 11, 0, 41, 0, 0, 1, 51, 50, 54, 53, 52, 38, 35, 34, 6, 29, 1,
- 7, 17, 51, 21, 62, 1, 51, 50, 22, 21, 20, 6, 43, 1, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 39, 46, 1, 1,254,
- 62,160,164,122,108,152,176,184,184, 60,178,128,172,204,252,242,248,136,146, 94,192, 92,102,188, 88,138,198, 60, 38, 32, 2, 43,
-113,112,101,112,211,186, 41, 76, 2,127,166,100, 95,193,162,187,194, 29,134,121, 54, 52,184, 39, 39, 82, 82, 50,147, 0, 0, 0,
- 0, 2, 0,123,255,227, 4, 18, 4,123, 0, 16, 0, 28, 0, 48, 64, 26, 5, 0, 20, 26,140, 14, 20,140, 8,153, 14,190, 1,194,
- 3, 23, 4, 0, 6, 2, 71, 17, 18, 11, 72, 29, 16,244,236,252,236, 50, 50, 49, 0, 47,236,228,244,236, 16,238, 17, 57, 57, 48,
- 1, 53, 51, 17, 35, 53, 14, 1, 35, 34, 2, 17, 16, 18, 51, 50, 22, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 3, 90,184,
-184, 46,153,100,203,233,234,202,101,154,254, 15,136,133,133,139,139,133,133,136, 3,209,141,251,162,141, 83, 87, 1, 59, 1, 21,
- 1, 17, 1, 55, 87,254, 11,214,218,220,212,213,219,218, 0, 0, 0, 2, 0,192,255,225, 4, 87, 4,121, 0, 11, 0, 28, 0, 48,
- 64, 26, 24, 12, 9, 3,140, 15, 9,140, 21,153, 15,190, 27,194, 25, 0, 18, 18, 71, 24, 12, 6, 6, 26, 70, 29, 16,244,236, 50,
- 50,252,236, 49, 0, 47,236,228,244,236, 16,238, 17, 57, 57, 48, 1, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 1, 62, 1, 51,
- 50, 18, 17, 16, 2, 35, 34, 38, 39, 21, 35, 17, 51, 3,149,136,133,133,139,139,133,133,136,253,227, 46,153,100,203,233,234,202,
-101,154, 44,184,184, 2, 45,214,218,220,212,213,219,218, 2,120, 83, 87,254,197,254,235,254,239,254,201, 87, 83,139, 4, 94, 0,
- 0, 2, 0,193,255,227, 4, 88, 6, 20, 0, 11, 0, 36, 0, 57, 64, 31, 3,140, 12, 15, 9,140, 24, 21,153, 15,190, 25, 33,140,
- 30,155, 25, 0, 18, 18, 71, 30, 33, 31, 24, 12, 6, 6, 26, 70, 37, 16,252,236, 50, 50,196, 57, 57,244,236, 49, 0, 47,252,236,
- 16,228,244,196,236, 16,198,238, 48, 1, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 1, 62, 1, 51, 50, 18, 17, 16, 2, 35, 34,
- 38, 39, 21, 35, 17, 52, 54, 59, 1, 21, 35, 34, 6, 21, 3,150,136,133,134,138,138,134,133,136,253,227, 44,155,102,202,232,233,
-203,100,153, 46,184,179,165,204,184, 90, 90, 2, 47,214,218,219,213,212,220,218, 2,120, 82, 88,254,201,254,239,254,235,254,197,
- 87, 83,141, 4,126,195,211,156,125,125, 0, 0, 0, 1, 0,184,255,227, 4, 26, 4,123, 0, 25, 0, 48, 64, 6, 19, 18, 6, 0,
- 12, 26, 16,220, 60,212,236, 49, 0, 64, 19, 0,139, 25,192, 22, 12,139, 13,192, 16,140, 9, 22,140, 3,190, 9,153, 26, 16,228,
-244,236, 16,254,244,238, 16,245,238, 48, 19, 62, 1, 51, 32, 0, 17, 16, 0, 33, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38,
- 35, 34, 6, 7,184, 74,156, 82, 1, 4, 1, 38,254,218,254,252, 80,154, 78, 72,148, 92,174,186,188,172, 96,152, 64, 4, 37, 43,
- 43,254,200,254,236,254,236,254,200, 42, 44,193, 65, 58,224,208,207,225, 59, 62, 0, 2, 0,195,255,115, 4, 58, 4,123, 0, 33,
- 0, 41, 0, 0, 5, 52, 55, 38, 39, 38, 17, 16, 0, 33, 50, 22, 23, 21, 46, 1, 35, 34, 6, 21, 20, 23, 22, 23, 54, 51, 32, 21,
- 20, 33, 34, 39, 6, 21, 19, 22, 51, 50, 53, 52, 35, 34, 1,180, 13, 57, 48,149, 1, 37, 1, 4, 81,154, 78, 73,147, 93,173,186,
- 99, 7, 6, 85,195, 1, 45,254,178, 82, 71, 6, 43, 60, 74,146,132,101,141,104, 81, 35, 51,161, 1, 12, 1, 20, 1, 56, 42, 44,
-193, 65, 58,224,208,220, 99, 7, 7,176,246,189, 17, 57, 68, 1, 31, 19, 57, 75, 0, 2, 0,123,254, 86, 4, 56, 6, 20, 0, 8,
- 0, 36, 0, 0, 0, 16, 22, 50, 54, 53, 52, 38, 34, 5, 17, 51, 17, 20, 23, 22, 59, 1, 21, 35, 34, 39, 38, 61, 1, 6, 7, 6,
- 35, 34, 2, 17, 16, 18, 51, 50, 22, 1, 60,109,213,112,112,213, 1, 69,181, 35, 36, 72, 6, 56,132, 72, 71, 37, 61, 61, 80,180,
-207,208,179, 81,123, 3, 5,254, 84,218,220,212,213,219, 14, 2, 67,249,216,126, 62, 62,156,106,105,195,161, 83, 44, 43, 1, 59,
- 1, 21, 1, 17, 1, 55, 87, 0, 0, 2, 0,123,255,227, 4, 55, 6, 20, 0, 10, 0, 38, 0, 0, 0, 16, 22, 51, 50, 54, 53, 52,
- 38, 35, 34, 37, 53, 52, 55, 54, 59, 1, 21, 35, 34, 7, 6, 21, 17, 35, 53, 14, 1, 35, 34, 2, 17, 16, 18, 51, 50, 22, 23, 1,
- 59,109,106,107,111,111,107,106, 1, 68, 71, 72,132, 56, 5, 72, 36, 35,183, 36,123, 80,180,206,207,179, 81,123, 35, 3, 5,254,
- 84,218,220,212,213,219, 11,148,195,105,106,156, 62, 62,126,251,130,141, 83, 87, 1, 59, 1, 21, 1, 17, 1, 55, 87, 83, 0, 0,
- 0, 2, 0,122,255,227, 4, 87, 4,123, 0, 21, 0, 28, 0, 0, 19, 52, 18, 51, 50, 0, 17, 16, 0, 33, 34, 38, 39, 53, 30, 1,
- 51, 50, 54, 61, 1, 33, 55, 33, 46, 1, 35, 34, 6,122,247,214,240, 1, 32,254,218,254,251, 91,195,105,109,192, 88,174,191,252,
-227,184, 2, 94, 16,172,133,136,149, 2, 94,251, 1, 34,254,192,254,244,254,237,254,199, 43, 43,183, 57, 56,200,183, 6,143,156,
-176,170, 0, 0, 0, 2, 0,122,255,227, 4, 87, 4,123, 0, 21, 0, 28, 0, 63, 64, 12, 3, 2, 28, 18, 16, 73, 9, 22, 6, 0,
- 72, 29, 16,244,236,196,244,236, 57, 57, 49, 0, 64, 22, 0, 22, 3, 1, 10,139, 9,141, 6,140, 13,190, 29, 22,182, 1,193, 25,
-140, 19,153, 29, 16,244,236,244,238, 16,244,244,244,238, 18, 57, 17, 57, 48, 19, 53, 33, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1,
- 51, 32, 0, 17, 16, 0, 35, 34, 2, 55, 20, 22, 51, 50, 54, 55,122, 3, 29,191,174, 88,192,109,105,195, 91, 1, 5, 1, 38,254,
-224,240,214,247,184,149,136,133,172, 16, 2, 0, 90, 6,183,200, 56, 57,183, 43, 43,254,199,254,237,254,244,254,192, 1, 34,198,
-162,170,176,156, 0, 2, 0, 30,255,227, 4,179, 4,123, 0, 9, 0, 41, 0, 0, 37, 54, 53, 52, 39, 1, 22, 23, 22, 50, 3, 50,
- 23, 55, 51, 21, 20, 22, 59, 1, 21, 35, 34, 38, 53, 7, 22, 21, 16, 2, 32, 39, 38, 39, 1, 38, 39, 38, 32, 7, 53, 54, 2, 66,
- 76, 7,254, 43, 23, 25, 62,231,151,252,119,154,140, 57, 80, 33, 49,132,129,106, 23,226,254,148, 99, 71, 20, 2, 70, 15, 20, 58,
-254,194,147,154,214,138,207, 62, 56,254,156, 69, 35, 90, 3,252,232,117,148,153, 97,156,186,200, 81, 96,118,254,237,254,189,145,
-103,156, 1,187, 40, 34, 99,104,174, 86, 0, 0, 0, 1, 0,169,255,234, 4, 40, 4,123, 0, 48, 0, 57, 64, 31, 11,140, 12, 16,
-140, 7,190, 50, 27,182, 23, 50, 38,140, 37, 33,140, 42,153, 50, 24, 11, 38, 19, 18, 4, 29, 18, 46, 70, 49, 16,252,236,212,236,
-212,196,196, 49, 0, 16,244,236,212,236, 16,212,236, 16,244,236,212,236, 48, 1, 38, 39, 38, 53, 52, 54, 51, 50, 23, 22, 23, 21,
- 38, 39, 38, 35, 34, 6, 21, 20, 23, 22, 59, 1, 21, 35, 34, 6, 21, 20, 23, 22, 51, 50, 55, 54, 55, 21, 6, 7, 6, 35, 34, 39,
- 38, 53, 52, 54, 1,193,119, 65, 64,244,209, 81, 91, 92,105,104, 87, 86, 76,138,148, 72, 72,135,166,159,150,168, 90, 91,173, 99,
- 91, 91, 77, 97, 90, 91, 86,254,139,138,148, 2, 95, 25, 65, 64, 94,134,158, 12, 12, 24,167, 27, 13, 12, 86, 74, 61, 43, 44,144,
-110, 81, 98, 53, 52, 18, 17, 34,173, 28, 14, 14, 91, 92,166,109,148, 0, 0, 0, 0, 1, 0,169,255,234, 4, 40, 4,123, 0, 40,
- 0, 60, 64, 33, 32,139, 31,192, 28,140, 35,190, 41, 0, 20,182, 21, 41, 9,139, 10,192, 13,140, 6,153, 41, 25, 18, 38, 16, 18,
- 3, 21, 32, 10, 41, 16,220,196,196,212,236,212,236, 49, 0, 16,244,252,252,236, 16,212,236, 57, 16,244,252,253,238, 48, 1, 30,
- 1, 21, 20, 4, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 43, 1, 53, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 53, 62,
- 1, 51, 50, 22, 21, 20, 6, 3, 15,132,149,254,235,255, 85,182, 96, 76,182,100,173,181,169,150,158,165,136,144,149,138, 75,173,
-104,105,183, 80,210,244,130, 2, 95, 23,148,109,166,183, 28, 28,173, 34, 35,105, 98, 81,110,144, 87, 61, 74, 86, 25, 27,167, 24,
- 24,158,134, 94,129, 0, 0, 0, 0, 1, 0, 56,255,234, 4,153, 4,123, 0, 66, 0, 0, 1, 22, 23, 22, 21, 20, 7, 6, 35, 34,
- 38, 39, 53, 22, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38, 43, 1, 53, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 7, 53, 54,
- 55, 54, 51, 50, 23, 22, 23, 55, 51, 21, 20, 23, 22, 59, 1, 21, 35, 34, 39, 38, 53, 7, 53, 7, 6, 2, 5, 99, 56, 56,104,104,
-191, 64,136, 72, 57, 68, 68, 75,130, 67, 69, 64, 63,113,118,124,102, 54, 54, 56, 56,104, 56, 65, 65, 78, 79, 68, 69, 60,158, 91,
- 75, 14,169,138, 29, 28, 79, 32, 48,131, 65, 61,211, 5, 49, 2, 95, 23, 74, 74,109,166, 92, 91, 28, 28,173, 34, 17, 18, 52, 53,
- 98, 81, 55, 55,144, 44, 43, 61, 74, 43, 43, 12, 13, 27,167, 24, 12, 12, 79, 65,102,131,148,153, 49, 48,156, 96, 90,200,162, 1,
- 6, 65, 0, 0, 0, 2, 0,176,255,213, 4, 34, 4,121, 0, 20, 0, 40, 0, 0, 1, 32, 17, 16, 33, 50, 55, 54, 53, 52, 39, 38,
- 43, 1, 53, 51, 50, 55, 54, 52, 38, 37, 54, 51, 50, 22, 21, 20, 6, 7, 30, 1, 21, 20, 6, 35, 34, 39, 36, 17, 16, 2,158,254,
-173, 1, 83,118, 60, 59, 59, 33,139,136,136,139, 33, 59,121,254,177, 85,161,160,201,107, 98, 98,107,203,160,159, 85,254,237, 3,
-216,254, 94,254, 65, 59, 59, 76, 76, 54, 30,157, 30, 55,154,115,115, 46,173,148,103,142, 27, 28,142,103,148,174, 61,194, 1, 88,
- 1,138, 0, 0, 0, 1, 0,186,254, 86, 4,113, 4, 94, 0, 21, 0, 0, 1, 21, 33, 17, 20, 6, 43, 1, 53, 51, 50, 54, 53, 17,
- 33, 53, 33, 17, 33, 53, 33, 17, 4,113,254,159,179,165,254,234, 90, 90,254,129, 1,127,254,195, 1,245, 2,104,164,254, 40,195,
-211,156,125,125, 1,216,164, 1,103,143,254, 10, 0, 2, 0,123,254, 72, 4, 52, 6, 20, 0, 38, 0, 48, 0, 0, 1, 53, 52, 55,
- 54, 59, 1, 21, 35, 34, 7, 6, 21, 17, 20, 7, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 61, 2, 14, 1, 35, 34, 2, 17, 52,
- 18, 51, 19, 17, 35, 34, 6, 16, 22, 51, 50, 54, 2,237, 72, 72,134, 49, 26, 58, 29, 28,104,104,206, 62,134, 67, 79,130, 54,120,
-110, 35,123, 88,174,208,208,174,247,214,109,115,115,110,103,110, 4, 94, 32,195,105,106,156, 62, 62,126,251,202,251,131,130, 28,
- 27,182, 46, 44,162,176, 8,125, 94, 92, 1, 58, 1, 7,233, 1, 60,253,219, 1,167,216,254, 98,217,218, 0, 0, 0, 2, 0,157,
-254, 72, 4, 52, 4, 94, 0, 9, 0, 36, 0, 0, 1, 17, 33, 34, 6, 16, 22, 51, 50, 54, 19, 20, 2, 35, 34, 38, 39, 53, 30, 1,
- 51, 50, 54, 61, 2, 14, 1, 35, 34, 2, 17, 52, 55, 54, 51, 33, 3,124,254,248,135,142,143,136,127,135,184,238,231, 76,166, 83,
- 98,160, 67,149,136, 44,152,109,196,234,117,113,200, 1,233, 2, 57, 1,167,216,254, 98,217,218,254,221,252,254,252, 28, 27,182,
- 46, 44,162,176, 8,125, 94, 92, 1, 58, 1, 7,225,165,159, 0, 0, 1, 0,122, 0, 0, 4, 88, 4,152, 0, 32, 0, 0, 37, 17,
- 35, 53, 33, 17, 6, 7, 6, 35, 34, 0, 17, 16, 0, 33, 50, 23, 22, 23, 21, 38, 39, 38, 35, 34, 7, 6, 16, 23, 22, 51, 50, 3,
-178,156, 1, 66, 72, 88, 78,202,252,254,214, 1, 44, 1, 6, 62,104,104,128,120,112, 86, 72,178,100, 98, 98,100,178,174,178, 1,
- 26,140,253,240, 34, 20, 18, 1, 62, 1, 14, 1, 18, 1, 58, 18, 17, 75,172, 77, 27, 22,114,113,254,102,113,114, 0, 2, 0,102,
-254, 81, 4,107, 4, 94, 0, 18, 0, 27, 0, 0, 1, 0, 17, 20, 14, 2, 34, 46, 2, 53, 16, 9, 1, 51, 9, 1, 51, 0, 50, 54,
- 53, 16, 3, 2, 17, 20, 2,226, 1, 28, 43, 93,159,220,158, 94, 43, 1, 32,254,114,218, 1, 46, 1, 36,216,253,135,227, 97,203,
-219, 2, 60,254, 84,254,179, 56, 86, 65, 34, 34, 65, 86, 56, 1, 84, 1,172, 2, 27,254,114, 1,142,250,150, 76, 69, 1, 34, 1,
- 29,254,208,254,241, 69, 0, 0, 0, 2, 0,102, 0, 0, 4,106, 4, 94, 0, 12, 0, 20, 0, 0, 1, 22, 16, 33, 32, 53, 52, 55,
- 1, 51, 9, 1, 51, 1, 6, 21, 20, 51, 50, 53, 52, 2,214,178,254,227,254,209,184,254,114,218, 1, 40, 1, 42,216,253,246,117,
-123,113, 2, 63,241,254,178,167,177,242, 2, 20,254,115, 1,141,253, 90,158, 59,104,104, 63, 0, 0, 1, 0,188,254, 82, 4, 21,
- 4, 94, 0, 19, 0, 0, 19, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 35, 17, 14, 1, 35, 34, 38,188,184,108,112,130,138,
-184,184, 50,168,114,172,168, 1,168, 2,182,253, 74,151,142,183,171, 2,121,249,244, 2, 86, 97,100,225, 0, 0, 0, 1, 0,195,
- 0, 0, 4, 27, 6, 20, 0, 30, 0, 0, 1, 7, 62, 1, 51, 50, 22, 21, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 53, 52,
- 55, 54, 59, 1, 21, 35, 34, 6, 21, 1,125, 2, 50,168,114,172,168,184,106,114,128,140,184, 90, 90,164,206,186, 90, 88, 3,194,
- 10, 96, 99,225,228,253, 74, 2,182,151,142,183,171,253,135, 3,234,148,195,105,106,156,124,126, 0, 1, 0,195,254, 86, 4, 27,
- 6, 20, 0, 40, 0, 0, 1, 7, 62, 1, 51, 50, 22, 21, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 52, 38, 35, 34, 6,
- 21, 17, 35, 17, 53, 52, 55, 54, 59, 1, 21, 35, 34, 6, 21, 1,125, 2, 49,169,114,171,169, 88, 91,165,204,184, 91, 45, 44,106,
-114,128,140,184, 90, 90,164,206,186, 90, 88, 3,194, 10, 96, 99,225,228,253, 54,195,105,106,156, 62, 62,126, 2,202,151,142,183,
-171,253,135, 3,234,148,195,105,106,156,124,126, 0, 2, 0,142, 0, 0, 4, 50, 6, 20, 0, 3, 0, 21, 0, 0, 1, 51, 21, 35,
- 5, 33, 17, 33, 21, 33, 17, 33, 21, 33, 53, 33, 17, 33, 53, 33, 17, 33, 2, 12,184,184,254,226, 1,214, 1, 98,254,158, 1,110,
-252,110, 1,108,254,130, 1,126,254,226, 6, 20,233,205,254, 10,164,254,203,143,143, 1, 53,164, 1,105, 0, 0, 0, 1, 0,198,
- 0, 0, 4, 10, 4, 94, 0, 14, 0, 0, 33, 35, 34, 39, 38, 53, 17, 33, 53, 33, 17, 20, 22, 59, 1, 4, 10,204,166, 90, 88,254,
-224, 1,216, 88, 90,186,106,102,198, 2, 59,141,253, 56,126,124, 0, 1, 0,160, 0, 0, 4, 50, 4, 94, 0, 11, 0, 0, 19, 33,
- 21, 33, 17, 33, 21, 33, 53, 33, 17, 33,160, 3,146,254,146, 1,110,252,110, 1,108,254,148, 4, 94,141,252,190,143,143, 3, 66,
- 0, 1, 0, 88, 0, 0, 4,121, 6, 31, 0, 38, 0, 0, 1, 20, 23, 22, 59, 1, 21, 35, 34, 38, 61, 1, 38, 35, 34, 6, 7, 53,
- 62, 1, 51, 50, 23, 17, 33, 53, 33, 17, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 39, 2,146, 46, 72, 62,216,234,164,182, 46, 47,
- 79,141, 73, 78,146, 83, 41, 38,254,218, 1,222,114, 92, 70,137, 74, 75,143, 79, 85,105, 1,150,147, 40, 63,156,212,194,198, 10,
- 59, 63,174, 60, 54, 6, 2,137,144,252,167, 53, 61, 62,174, 59, 55, 45, 0, 0, 0, 2, 0,157, 0, 0, 4, 52, 6, 31, 0, 25,
- 0, 32, 0, 0, 1, 20, 22, 59, 1, 21, 35, 34, 38, 61, 1, 35, 32, 53, 52, 51, 50, 23, 17, 33, 53, 33, 17, 51, 21, 35, 39, 38,
- 35, 34, 21, 20, 51, 2,170, 91, 89,214,232,165,181, 62,254,233,246, 53, 42,254,217, 1,223,250,250,184, 23, 71, 78, 92, 1,150,
-124,126,156,212,194,220,189,246, 25, 1,131,144,252,243,160,160,132, 75, 57, 0, 0, 1, 0,160,254, 86, 4, 10, 6, 31, 0, 13,
- 0, 0, 5, 20, 22, 59, 1, 21, 35, 34, 38, 53, 17, 33, 53, 33, 2,127, 91, 89,215,233,165,181,254,217, 1,223, 20,124,126,156,
-212,194, 5,163,144, 0, 0, 0, 0, 1, 0, 40,254, 76, 4,168, 6, 31, 0, 45, 0, 0, 1, 20, 22, 59, 1, 21, 35, 34, 38, 53,
- 17, 35, 53, 33, 17, 33, 21, 1, 50, 23, 22, 23, 22, 21, 20, 6, 35, 34, 39, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 39, 38, 43,
- 1, 53, 1, 33, 1,168, 72, 72,172,187,132,145,236, 1,128, 2,186,254,183, 84,103, 79, 69, 64,243,224, 75, 79, 80, 85, 67,160,
- 87,152,160, 74, 74,132,140, 1, 88,253,236, 1,150,124,126,156,212,194, 3,249,144,254, 65,168,254, 36, 56, 43,108,104,138,221,
-242, 18, 19, 37,195, 49, 50,150,143,132, 75, 74,166, 1,243, 0, 0, 1, 0,104, 0, 0, 4,106, 4,123, 0, 33, 0, 0, 37, 14,
- 1, 35, 34, 38, 25, 1, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 22, 50, 54, 53, 17, 51, 17, 35, 53, 14, 1, 35, 34, 38,
- 2, 50, 34,104, 74,136,110,168, 52, 70, 80, 60,168, 56,148, 56,168,168, 32,100, 62, 76,102,141, 72, 69,209, 1, 33, 2,137,253,
-127,237,115,123,229, 2,129,253,127,240,112,123,229, 2,129,251,160, 96, 60, 63, 70, 0, 0, 0, 0, 1, 0,104,254, 82, 4,106,
- 4,123, 0, 33, 0, 0, 37, 14, 1, 35, 34, 38, 25, 1, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 22, 50, 54, 53, 17, 51,
- 17, 35, 17, 14, 1, 35, 34, 38, 2, 50, 34,104, 74,136,110,168, 52, 70, 80, 60,168, 56,148, 56,168,168, 32,100, 62, 76,102,141,
- 72, 69,209, 1, 33, 2,137,253,127,237,115,123,229, 2,129,253,127,240,112,123,229, 2,129,249,215, 2, 41, 60, 63, 70, 0, 0,
- 0, 1, 0,103,254, 86, 4,105, 4,123, 0, 43, 0, 0, 1, 62, 1, 51, 50, 22, 25, 1, 20, 6, 43, 1, 53, 51, 50, 54, 53, 17,
- 52, 38, 35, 34, 6, 21, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 23, 22, 2,158, 34,105, 74,135,
-111,161,150,186,168, 83, 78, 53, 70, 80, 59,168, 57, 74, 73, 57,167,167, 33, 99, 63, 83, 44, 53, 3,238, 72, 69,209,254,223,253,
- 99,194,212,156,124,126, 2,149,237,115,123,229,253,127, 2,129,240,112,123,229,253,127, 4, 94, 94, 64, 59, 35, 43, 0, 0, 0,
- 0, 1, 0,178,254, 86, 4, 77, 4,123, 0, 31, 0, 0, 5, 20, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 51, 21, 54, 55, 54, 51,
- 50, 23, 22, 21, 17, 35, 17, 52, 38, 35, 34, 7, 6, 21, 1,234,123,136, 53, 2, 68, 28, 28,186, 49, 68, 67, 87,168, 86, 86,185,
- 92, 94,111, 65, 64, 20,214,192,156, 48, 49,153, 4,114,172,101, 50, 50,119,120,232,253, 92, 2,158,159,158, 95, 95,164, 0, 0,
- 0, 1, 0,136,254, 86, 4, 30, 4,123, 0, 32, 0, 0, 5, 17, 52, 39, 38, 35, 34, 7, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51,
- 50, 23, 22, 21, 17, 20, 23, 22, 59, 1, 21, 35, 34, 39, 38, 2,232, 46, 47, 93,112, 64, 65,181,181, 50,134, 88,168, 86, 86, 29,
- 29, 63, 4, 52,136, 60, 62, 20, 2,178,159, 79, 79, 95, 95,164,253,135, 4, 94,172,101,100,119,120,232,253, 72,153, 49, 48,156,
- 96, 96, 0, 0, 0, 1, 0,144, 0, 0, 4, 65, 4,123, 0, 9, 0, 0, 19, 33, 1, 17, 51, 17, 33, 1, 17, 35,144, 1, 16, 1,
-221,196,254,240,254, 35,196, 4,123,252,121, 3,135,251,133, 3,135,252,121, 0, 0, 3, 0,137,255,227, 4, 72, 4,123, 0, 10,
- 0, 19, 0, 28, 0, 0, 0, 32, 18, 17, 16, 2, 35, 34, 2, 17, 16, 37, 34, 7, 6, 7, 33, 38, 39, 38, 19, 33, 22, 23, 22, 51,
- 50, 55, 54, 1,127, 1,210,247,246,234,233,246, 1,223,140, 72, 63, 8, 2, 55, 8, 63, 72,138,253,211, 14, 52, 72,140,141, 72,
- 52, 4,123,254,210,254,226,254,225,254,211, 1, 45, 1, 31, 1, 30,146,109, 95,176,176, 95,109,253,224,132, 79,109,109, 79, 0,
- 0, 2, 0, 69, 0, 0, 4,140, 4, 96, 0, 18, 0, 29, 0, 0, 1, 21, 33, 17, 33, 21, 33, 17, 33, 21, 33, 34, 39, 38, 17, 16,
- 55, 54, 51, 23, 35, 34, 7, 6, 21, 20, 23, 22, 59, 1, 4,129,254,139, 1,100,254,156, 1,128,253,168,243,126,126,126,126,243,
- 32, 23,151, 75, 75, 75, 75,151, 23, 4, 96,170,254,237,155,254,164,172,142,143, 1, 20, 1, 18,142,143,147,104,103,207,208,104,
-105, 0, 0, 0, 0, 2, 0,170,255,226, 4, 38, 4,123, 0, 22, 0, 46, 0, 0, 1, 52, 39, 38, 35, 34, 7, 6, 21, 16, 51, 50,
- 55, 54, 61, 1, 51, 21, 20, 23, 22, 51, 50, 19, 20, 7, 6, 35, 34, 39, 38, 39, 6, 7, 6, 35, 34, 39, 38, 53, 16, 55, 18, 33,
- 50, 23, 22, 3,128, 57, 80,145,131, 72, 74,124, 34, 41, 22,117, 23, 41, 32,125,166, 48, 55,137, 95, 67, 27, 16, 16, 27, 67, 95,
-118, 68, 56, 64,106, 1, 21,235,120, 90, 1,254,156,113,161,111,115,231,254,200, 79, 43,185,182,182,185, 43, 79, 1, 8,171,136,
-158,122, 50,101,101, 50,122,154,124,183, 0,255,173, 1, 32,237,176, 0, 0, 0, 0, 3, 0,137,254, 86, 4, 72, 6, 19, 0, 29,
- 0, 38, 0, 47, 0, 0, 1, 35, 53, 33, 21, 35, 21, 22, 23, 22, 17, 16, 7, 6, 7, 21, 51, 21, 33, 53, 51, 53, 38, 39, 38, 17,
- 16, 55, 54, 55, 23, 17, 54, 55, 54, 53, 52, 39, 38, 3, 17, 6, 7, 6, 21, 20, 23, 22, 2, 20,240, 2,152,240,161, 95,124,123,
- 95,162,240,253,104,240,172,100,123,123,100,172,184, 69, 44, 72, 72, 44,253, 79, 49, 72, 72, 49, 5,111,164,164,252, 26,117,151,
-254,226,254,225,150,117, 26,240,165,165,237, 23,123,150, 1, 31, 1, 30,151,123, 23,168,252,194, 26, 66,110,213,214,109, 66,252,
-215, 3, 72, 24, 73,109,214,213,110, 73, 0, 0, 0, 1, 0,152,255,229, 3,177, 4, 94, 0, 17, 0, 0, 55, 30, 1, 51, 50, 54,
- 53, 17, 51, 17, 35, 53, 14, 1, 35, 34, 38, 39,152, 59,122, 73,172,182,185,185, 46,191,131, 68,118, 54,231, 46, 42,216,204, 2,
- 43,251,162,219,119,127, 34, 36, 0, 1, 0,152,255,229, 3,177, 6, 31, 0, 17, 0, 0, 55, 30, 1, 51, 50, 54, 53, 17, 51, 17,
- 35, 53, 14, 1, 35, 34, 38, 39,152, 59,122, 73,172,182,185,185, 46,191,131, 68,118, 54,231, 46, 42,216,204, 3,236,249,225,219,
-119,127, 34, 36, 0, 1, 0,102,254, 86, 4,128, 4, 94, 0, 25, 0, 0, 5, 20, 22, 59, 1, 21, 35, 34, 38, 61, 1, 14, 1, 35,
- 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 17, 51, 3,127, 89, 90, 78, 98,165,179, 46,191,131, 68,118, 54, 59,122, 73,172,182,185,
- 20,125,125,156,211,195,239,119,127, 34, 36,188, 46, 42,216,204, 2, 43, 0, 0, 0, 1, 1,106,254, 86, 4,131, 4,123, 0, 17,
- 0, 0, 1, 46, 1, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 23, 4,131, 59,122, 73,172,182,185,185, 46,191,131,
- 68,118, 54, 3,121, 46, 42,216,204,252, 41, 6, 8,217,119,127, 34, 36, 0, 0, 0, 1, 1,106,254, 86, 4,131, 4,123, 0, 27,
- 0, 0, 5, 20, 23, 22, 59, 1, 21, 35, 34, 38, 53, 17, 51, 21, 62, 1, 51, 50, 22, 23, 21, 46, 1, 35, 34, 7, 6, 21, 2, 35,
- 44, 44, 91,234,254,165,179,185, 46,191,131, 68,118, 54, 59,122, 73,172, 91, 91, 20,125, 63, 62,156,211,195, 4,114,217,119,127,
- 34, 36,188, 46, 42,108,108,204, 0, 1, 0,160, 0, 0, 4, 50, 4,123, 0, 17, 0, 0, 1, 52, 55, 54, 59, 1, 21, 35, 34, 7,
- 6, 21, 17, 33, 21, 33, 53, 33, 2, 8, 82, 82,180,210,188,106, 38, 36, 1,112,252,110, 1,104, 2,229,212, 98, 96,156, 48, 50,
-152,253,170,143,143, 0, 0, 0, 0, 1, 0,160, 0, 0, 4, 50, 4,123, 0, 16, 0, 0, 1, 17, 33, 21, 33, 53, 33, 17, 52, 38,
- 43, 1, 53, 51, 50, 23, 22, 2,200, 1,106,252,110, 1,110, 72,108,186,208,180, 82, 82, 2,229,253,170,143,143, 2, 86,154, 96,
-156, 96, 98, 0, 0, 2, 0,122, 0, 0, 4, 87, 4, 94, 0, 22, 0, 33, 0, 0, 1, 22, 23, 22, 23, 19, 35, 3, 38, 39, 38, 43,
- 1, 17, 35, 17, 33, 50, 23, 22, 21, 20, 6, 1, 17, 51, 50, 55, 54, 53, 52, 39, 38, 35, 2,212, 55, 53, 52, 53,174,195,162, 63,
- 59, 59, 97,169,185, 1,132,217,108,107,112,253,245,198,119, 63, 64, 64, 63,119, 2, 13, 17, 54, 54, 94,254,206, 1, 31,113, 36,
- 37,254, 39, 4, 94, 78, 77,166,105,140, 1,157,254,175, 43, 43, 83, 84, 42, 42, 0, 2, 0,122, 0, 0, 4, 87, 4, 94, 0, 22,
- 0, 33, 0, 0, 1, 30, 1, 21, 20, 7, 6, 35, 33, 17, 51, 17, 51, 50, 55, 54, 55, 19, 51, 3, 6, 7, 6, 1, 51, 50, 55, 54,
- 53, 52, 39, 38, 43, 1, 2,212,106,112,107,108,217,254,124,185,169, 97, 59, 59, 63,162,195,174, 53, 52, 53,254, 40,198,119, 63,
- 64, 64, 63,119,198, 2, 83, 27,140,105,162, 81, 80, 4, 94,254, 41, 37, 36,113, 1, 29,254,208, 94, 54, 54,254, 55, 42, 42, 84,
- 83, 43, 43, 0, 0, 1, 0,188,254, 86, 4, 20, 4,123, 0, 56, 0, 0, 1, 21, 46, 1, 35, 34, 7, 6, 21, 20, 23, 22, 31, 1,
- 22, 23, 22, 21, 20, 7, 6, 35, 34, 39, 20, 23, 22, 59, 1, 21, 35, 34, 38, 61, 1, 22, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38,
- 47, 1, 38, 39, 38, 53, 52, 54, 51, 50, 22, 3,216, 78,167, 91,136, 68, 70, 50, 48,148, 64,196, 82, 82,122,124,216,104,106, 38,
- 34,110,232,254,180,164,102,100, 98, 98,130, 70, 70, 50, 52,170, 64,172, 76, 76,224,206,102,181, 4, 63,174, 40, 40, 42, 42, 84,
- 64, 37, 36, 33, 14, 42, 77, 76,137,157, 90, 91, 21,159, 55, 48,156,192,214,251, 53, 26, 27, 45, 44, 81, 75, 40, 40, 37, 15, 36,
- 74, 75,130,158,172, 30, 0, 0, 0, 1, 0,125,254, 86, 4, 84, 6, 20, 0, 19, 0, 0, 5, 20, 6, 43, 1, 53, 51, 50, 54, 53,
- 17, 52, 54, 59, 1, 21, 35, 34, 6, 21, 2,211,179,165,254,234, 90, 90,169,179,221,209, 99, 77, 20,195,211,156,125,125, 4,194,
-184,174,153, 81,103, 0, 0, 0, 0, 1, 0,125,254, 86, 4, 84, 6, 20, 0, 31, 0, 0, 1, 21, 33, 17, 20, 6, 43, 1, 53, 51,
- 50, 54, 53, 17, 33, 53, 33, 17, 33, 53, 33, 53, 52, 54, 59, 1, 21, 35, 34, 6, 21, 17, 4, 52,254,159,179,165,254,234, 90, 90,
-254,129, 1,127,254,195, 1, 61,169,179,221,209, 99, 77, 2,104,164,254, 40,195,211,156,125,125, 1,216,164, 1,105,141, 80,184,
-174,153, 81,103,253,165, 0, 0, 0, 1, 0,125,254, 86, 4, 84, 4, 94, 0, 21, 0, 0, 1, 17, 20, 23, 22, 59, 1, 21, 35, 34,
- 38, 53, 17, 52, 39, 38, 43, 1, 53, 51, 50, 22, 2,211, 39, 38, 99,209,221,179,169, 45, 45, 90,234,254,165,179, 2,200,252,223,
-103, 40, 41,153,174,184, 3, 12,124, 64, 62,156,211, 0, 0, 0, 0, 2, 0,118,254, 86, 4, 91, 6, 20, 0, 8, 0, 33, 0, 0,
- 5, 35, 34, 21, 20, 51, 50, 55, 54, 55, 51, 21, 35, 6, 7, 6, 35, 32, 53, 52, 33, 51, 17, 52, 55, 54, 59, 1, 21, 35, 34, 7,
- 6, 21, 2, 56,179,116,127,110, 33, 18,202,183,191, 18, 53, 82,181,254,209, 1, 14,190, 87, 81,195,174,176,100, 37, 39,154, 51,
- 65, 48, 23,199,155,111, 64, 96,216,210, 4,174,180, 92, 86,153, 40, 41,103, 0, 0, 1, 0,166,254,194, 4, 43, 4, 96, 0, 19,
- 0, 0, 1, 17, 33, 53, 33, 17, 52, 38, 43, 1, 53, 51, 50, 22, 21, 17, 33, 21, 33, 17, 2, 72,254, 94, 1,162, 94,117,207,225,
-207,170, 1, 43,254,213,254,194, 1, 62,143, 2, 96,124, 98,147,166,203,253,160,143,254,194, 0, 0, 1, 0,131,254, 87, 4, 8,
- 5,158, 0, 19, 0, 0, 1, 17, 33, 21, 33, 17, 20, 22, 59, 1, 21, 35, 34, 38, 53, 17, 33, 53, 33, 17, 2,102, 1,162,254, 94,
- 94,117,207,225,207,170,254,213, 1, 43, 5,158,254,194,143,251,247,124, 98,147,166,203, 4, 9,143, 1, 62, 0, 0, 2, 0, 0,
-255,227, 4,209, 4, 96, 0, 23, 0, 33, 0, 0, 17, 53, 51, 17, 51, 17, 33, 17, 51, 17, 51, 21, 35, 17, 35, 53, 6, 7, 6, 35,
- 34, 38, 61, 1, 41, 1, 21, 20, 23, 22, 51, 50, 55, 54,142,184, 2, 58,184,153,153,184, 67, 89, 89,117,193,199, 2,241,253,199,
- 62, 62,124,149, 87, 77, 1,196,164, 1,248,254, 8, 1,248,254, 8,164,254, 60,172,102, 50, 49,240,231, 10, 3,159, 80, 79, 95,
- 85, 0, 0, 0, 0, 1, 0, 95,255,226, 4,114, 4, 96, 0, 35, 0, 0, 19, 53, 33, 21, 6, 7, 6, 21, 20, 22, 32, 55, 54, 53,
- 52, 39, 38, 39, 53, 33, 21, 35, 22, 23, 22, 21, 20, 0, 32, 39, 38, 53, 52, 55, 54, 55, 95, 1,186,109, 63, 66,176, 1, 32, 88,
- 88, 66, 71,100, 1,180,236,114, 56, 54,254,228,254, 62,142,142, 52, 53,119, 3,188,164,220, 69,105,111,135,159,194, 97, 98,158,
-146,100,111, 63,220,164,100,113,110,136,235,254,220,145,146,228,147,107,109,104, 0, 1, 0, 65, 0, 0, 4,119, 4, 96, 0, 32,
- 0, 0, 1, 33, 22, 23, 22, 21, 20, 0, 43, 1, 34, 39, 38, 53, 17, 35, 53, 33, 17, 20, 23, 22, 63, 1, 50, 55, 54, 53, 52, 39,
- 38, 39, 38, 2, 85, 1, 66,114, 56, 54,254,228,225, 70,181, 82, 81,155, 1, 83, 38, 40,103, 51,144, 88, 88, 66, 79, 92, 76, 3,
-218,100,113,110,136,235,254,220, 96, 96,214, 2, 59,143,253, 54,153, 49, 50, 2, 1, 97, 98,158,146,100,119, 55, 44, 0, 0, 0,
- 0, 1, 0, 72, 0, 0, 4,138, 4, 96, 0, 6, 0, 0, 33, 35, 9, 1, 35, 1, 51, 4,138,196,254,162,254,162,194, 1,164,250,
- 3,172,252, 84, 4, 96, 0, 0, 0, 1, 0, 15, 0, 0, 4,194, 4, 96, 0, 12, 0, 0, 33, 35, 11, 1, 35, 11, 1, 35, 19, 51,
- 27, 1, 51, 4,194,148,184,183,173,184,184,147,235,173,193,194,173, 3,106,252,150, 3,106,252,150, 4, 96,252,106, 3,150, 0,
- 0, 1, 0, 72, 0, 0, 4,138, 6, 10, 0, 15, 0, 0, 1, 62, 1, 59, 1, 21, 35, 34, 6, 15, 1, 1, 35, 9, 1, 35, 2, 52,
- 78,148,124,146,108, 76, 84, 50, 34, 1,198,196,254,162,254,162,194, 4,200,200,122,154, 72,134, 84,251,178, 3,108,252,148, 0,
- 0, 1, 0,102, 0, 0, 4,107, 4,125, 0, 8, 0, 0, 19, 51, 9, 1, 51, 1, 17, 35, 17,102,217, 1, 37, 1, 46,217,254, 93,
-203, 4,125,254, 56, 1,200,253,144,253,243, 2, 13, 0, 0, 0, 0, 1, 0,194,254, 86, 4, 15, 4, 96, 0, 20, 0, 0, 19, 33,
- 21, 1, 33, 23, 20, 23, 22, 59, 1, 21, 35, 34, 38, 61, 1, 33, 53, 1, 33,213, 2,167,253,249, 2, 25, 1, 21, 21, 59, 27, 52,
-136,122,253,233, 2, 7,254, 12, 4, 96,168,252,219,167,153, 49, 48,156,192,214, 20,168, 3, 37, 0, 2, 0,167,255,145, 4, 42,
- 4, 96, 0, 20, 0, 27, 0, 0, 33, 6, 21, 35, 52, 55, 33, 53, 1, 33, 53, 33, 21, 1, 51, 18, 51, 50, 23, 22, 33, 39, 51, 50,
- 53, 52, 35, 6, 2,170, 3,153, 3,254,150, 2,180,253,101, 3,106,253, 76,175, 60,219,227, 1, 1,254,178, 20, 20,174, 70, 88,
- 51, 60, 59, 52,168, 3, 37,147,168,252,219, 1, 32,246,189,147, 54, 91, 2, 0, 0, 1, 0,125,254, 76, 4, 84, 4, 96, 0, 32,
- 0, 0, 1, 50, 23, 22, 23, 22, 21, 20, 4, 33, 34, 39, 38, 39, 53, 30, 1, 51, 50, 55, 54, 53, 52, 39, 38, 43, 1, 53, 1, 33,
- 53, 33, 21, 2, 97,106,128, 98, 86, 81,254,208,254,232, 94, 99,100,106, 84,200,109,190, 99,100, 92, 93,165,174, 1,174,253,101,
- 3,106, 1,220, 56, 42,109,104,138,221,242, 18, 19, 37,195, 49, 50, 75, 75,143,132, 75, 74,166, 1,243,147,168, 0, 2, 0,105,
-254, 76, 4,104, 4, 96, 0, 36, 0, 45, 0, 0, 1, 32, 55, 54, 5, 22, 23, 54, 53, 52, 39, 38, 43, 1, 53, 1, 33, 53, 33, 21,
- 1, 50, 23, 22, 23, 22, 21, 20, 7, 22, 21, 35, 52, 39, 48, 7, 6, 55, 38, 35, 34, 7, 20, 51, 50, 55, 1,227,254,177, 2, 2,
- 1, 42,246,158, 12, 92, 94,164,174, 1,174,253,101, 3,106,254,101,105,129,100, 84, 81, 39,100,153, 40, 20,151, 9,125,197,131,
- 1,158,190, 99,254, 76,189,251, 5, 4, 59, 42, 49,133, 74, 74,166, 1,243,147,168,254, 36, 56, 43,108,103,139,113, 85,101,164,
- 82, 56, 17,121,250, 42, 75, 47, 75, 0, 0, 0, 0, 1, 0,194, 0, 0, 4, 15, 6, 18, 0, 28, 0, 0, 1, 51, 50, 55, 54, 53,
- 52, 39, 38, 35, 34, 7, 6, 7, 53, 54, 55, 54, 51, 32, 23, 22, 21, 20, 7, 6, 7, 17, 35, 1,190, 63,191, 87, 58, 58,102,176,
- 80, 79, 78, 78, 76, 81, 81, 85, 1, 19,138,109,108,112,170,203, 3, 30,114, 76, 98,133, 65,114, 22, 21, 43,172, 35, 17, 18,157,
-125,186,170,115,119, 30,253,116, 0, 1, 0,194, 0, 0, 4, 15, 6, 18, 0, 28, 0, 0, 1, 17, 35, 17, 38, 39, 38, 53, 52, 55,
- 54, 33, 50, 23, 22, 23, 21, 38, 39, 38, 35, 34, 7, 6, 7, 20, 23, 22, 51, 3, 18,202,170,112,108,110,137, 1, 19, 85, 81, 81,
- 76, 78, 79, 78, 80,179, 99, 57, 1, 58, 86,192, 3, 30,252,226, 2,140, 30,119,115,170,186,125,157, 18, 17, 35,172, 43, 21, 22,
-114, 65,133, 98, 76,114, 0, 0, 0, 1, 0,194, 0, 0, 4, 15, 6, 18, 0, 28, 0, 0, 1, 17, 51, 17, 22, 23, 22, 21, 20, 7,
- 6, 33, 34, 39, 38, 39, 53, 22, 23, 22, 51, 50, 55, 54, 55, 52, 39, 38, 35, 1,190,203,170,112,108,109,138,254,237, 85, 81, 81,
- 76, 78, 78, 79, 80,179, 99, 57, 1, 58, 86,192, 2,244, 3, 30,253,116, 30,119,115,170,186,125,157, 18, 17, 35,172, 43, 21, 22,
-114, 65,133, 98, 76,114, 0, 0, 0, 1, 0,194,254, 74, 4, 15, 6, 18, 0, 35, 0, 0, 19, 52, 55, 54, 33, 50, 23, 22, 23, 21,
- 38, 39, 38, 35, 34, 7, 6, 7, 17, 22, 23, 22, 51, 50, 55, 54, 55, 21, 6, 7, 6, 35, 32, 39, 38, 53,194,110,137, 1, 19, 85,
- 81, 81, 76, 78, 79, 78, 80,179, 99, 57, 1, 1, 57, 99,179, 80, 78, 79, 78, 76, 81, 81, 85,254,237,137,110, 4, 62,186,125,157,
- 18, 17, 35,172, 43, 21, 22,114, 65,133,251,224,133, 65,114, 22, 21, 43,172, 35, 17, 18,157,125,186, 0, 0, 0, 0, 3, 0, 95,
- 0, 45, 4,115, 4, 66, 0, 12, 0, 26, 0, 40, 0, 0, 19, 52, 55, 54, 51, 50, 23, 22, 21, 20, 0, 32, 0, 55, 20, 23, 22, 32,
- 54, 53, 52, 39, 38, 35, 34, 7, 6, 23, 52, 55, 54, 51, 50, 23, 22, 21, 20, 6, 34, 39, 38, 95,154,154,216,212,154,154,254,209,
-254, 79,254,204,181,101,100, 1, 26,198,100,101,138,141,100,101,227, 34, 33, 47, 46, 34, 33, 66, 94, 33, 34, 2, 53,212,156,157,
-157,156,212,216,254,208, 1, 48,217,141, 99, 99,198,141,138,102,102,102,102,137, 46, 34, 34, 34, 34, 46, 47, 66, 33, 33, 0, 0,
- 0, 3, 0,209, 0, 0, 4, 0, 4,125, 0, 8, 0, 17, 0, 32, 0, 45, 64, 24, 25, 0,182, 10, 32, 9,182, 18,194, 1,182, 32,
- 14, 18, 22, 5, 18, 28, 0, 9, 6, 18, 70, 33, 16,252,236, 50,212,236,212,236, 49, 0, 47,236,244,236, 16,212,236, 57, 48, 1,
- 17, 51, 50, 54, 53, 52, 38, 35, 3, 17, 51, 50, 54, 53, 52, 38, 35, 37, 33, 50, 22, 21, 20, 6, 7, 30, 1, 21, 20, 6, 35, 33,
- 1,155,221, 93, 95, 90, 94,225,210, 85, 84, 84, 86,254,101, 1,141,178,192, 98, 96,115,127,209,193,254, 99, 2, 18,254,152,105,
- 63, 92,100, 1,194,254,232, 85, 63, 46, 86,169,148,136,105,125, 15, 25,156,117,154,168, 0, 0, 0, 2, 0,176,255,213, 4, 34,
- 4,121, 0, 21, 0, 43, 0, 0, 1, 34, 7, 6, 20, 23, 22, 59, 1, 21, 35, 34, 7, 6, 21, 20, 23, 22, 51, 36, 17, 16, 39, 4,
- 17, 16, 5, 6, 39, 34, 39, 38, 53, 52, 54, 55, 46, 1, 53, 52, 55, 54, 51, 50, 2, 50,115, 57, 64, 60, 32,138,137,137,138, 32,
- 60, 64, 55,117, 1, 84,120, 1, 20,254,236, 86,147,173,100,100,106, 98, 98,106,100,100,173,150, 3,216, 54, 61,154, 55, 30,157,
- 30, 54, 78, 74, 64, 54, 1, 1,190, 1,162,115,151,254,120,254,168,194, 62, 2, 87, 86,148,103,142, 28, 27,142,103,148, 87, 86,
- 0, 1, 0, 54, 0, 0, 4,108, 6, 18, 0, 48, 0, 0, 37, 17, 35, 53, 33, 17, 6, 7, 6, 35, 34, 39, 38, 17, 16, 55, 54, 51,
- 50, 23, 22, 23, 53, 52, 55, 54, 59, 1, 21, 35, 34, 7, 6, 29, 1, 35, 21, 38, 39, 38, 35, 34, 7, 6, 16, 23, 22, 51, 50, 2,
-206,116, 1, 30, 1,163, 58,152,212,123,125,127,124,219, 51, 72, 24, 13, 62, 60,136,190,129, 78, 30, 28, 2, 29,189, 63, 55,134,
- 75, 74, 74, 75,134,130,178, 1, 26,140,253,240, 4, 50, 18,159,160, 1, 13, 1, 15,160,157, 18, 6, 5, 1,216, 94, 96,156, 48,
- 51,151,148,106, 38, 66, 22,114,113,254,102,113,114, 0, 0, 0, 0, 1, 0,144, 0, 0, 4, 65, 4,123, 0, 11, 0, 0, 19, 51,
- 17, 33, 17, 51, 17, 35, 17, 33, 17, 35,144,202, 2, 29,202,202,253,227,202, 4,123,254, 65, 1,191,251,133, 2, 18,253,238, 0,
- 0, 3, 0,202,254, 86, 4, 7, 6, 20, 0, 3, 0, 20, 0, 29, 0, 0, 1, 51, 21, 35, 23, 17, 51, 21, 35, 6, 7, 6, 35, 32,
- 53, 52, 33, 51, 17, 33, 53, 1, 35, 34, 23, 22, 51, 50, 55, 54, 2,154,184,184,184,180,190, 19, 53, 81,181,254,208, 1, 14,194,
-254,194, 1, 51,181,119, 3, 3,123,106, 38, 17, 6, 20,233,203,251,160,155,112, 63, 96,221,205, 3,209,143,251, 6, 51, 65, 48,
- 23, 0, 0, 0, 0, 1, 0,119,254, 76, 4, 90, 4, 96, 0, 10, 0, 0, 1, 35, 17, 1, 35, 9, 1, 51, 1, 17, 51, 4, 90,186,
-253,220,236, 2, 82,253,150,240, 2, 56,186,254, 76, 3,151,254, 29, 2, 12, 2, 84,253,221, 2, 35, 0, 0, 0, 0, 1, 0,245,
- 0, 0, 3,220, 4,123, 0, 5, 0, 0, 19, 51, 17, 33, 21, 33,245,202, 2, 29,253, 25, 4,123,252, 47,170, 0, 0, 2, 0, 35,
-254, 86, 4,124, 6, 18, 0, 29, 0, 41, 0, 0, 37, 6, 7, 6, 35, 34, 39, 38, 16, 55, 54, 51, 50, 23, 22, 23, 53, 52, 55, 54,
- 59, 1, 21, 35, 34, 7, 6, 21, 17, 35, 0, 16, 23, 22, 50, 55, 54, 16, 39, 38, 34, 7, 2,187, 44, 66, 67, 93,174,110,109,109,
-110,174, 93, 67, 66, 44, 61, 61,136,190,127, 79, 29, 28,185,254, 41, 63, 63,219, 63, 63, 63, 63,219, 63,168,100, 48, 49,162,162,
- 2, 16,162,162, 49, 48,100,198,214, 96, 96,156, 48, 49,153,249,218, 4,164,254,106,116,115,115,116, 1,150,116,115,115, 0, 0,
- 0, 1, 0,194, 0, 0, 4, 15, 6, 18, 0, 36, 0, 0, 1, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 7, 53, 54, 55, 54,
- 51, 32, 23, 22, 21, 20, 7, 6, 7, 21, 51, 21, 35, 17, 35, 17, 35, 53, 51, 1,190, 63,191, 87, 58, 58,102,176, 80, 79, 78, 78,
- 76, 81, 81, 85, 1, 19,138,109,108,112,170,231,231,202,229,228, 3, 30,114, 76, 98,133, 65,114, 22, 21, 43,172, 35, 17, 18,157,
-125,186,170,115,119, 30,212,164,254,236, 1, 20,164, 0, 0, 0, 0, 1, 0,194, 0, 0, 4, 15, 6, 18, 0, 36, 0, 0, 1, 53,
- 38, 39, 38, 53, 52, 55, 54, 33, 50, 23, 22, 23, 21, 38, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 59, 1, 17, 51, 21, 35, 17, 35,
- 17, 35, 53, 2, 72,170,112,108,110,137, 1, 19, 85, 81, 81, 76, 78, 79, 78, 80,176,102, 58, 58, 87,191, 62,229,229,202,231, 1,
-184,212, 30,119,115,170,186,125,157, 18, 17, 35,172, 43, 21, 22,114, 65,133, 98, 76,114,254,154,164,254,236, 1, 20,164, 0, 0,
- 0, 3, 0, 29,255,227, 4,154, 6, 20, 0, 7, 0, 32, 0, 35, 0, 0, 18, 16, 22, 50, 54, 16, 38, 34, 5, 17, 51, 17, 33, 21,
- 1, 33, 21, 33, 43, 1, 53, 6, 7, 6, 35, 34, 2, 16, 18, 51, 50, 23, 22, 23, 17, 1,168,100,175,101,101,175, 1, 20,110, 2,
- 11,254, 97, 1,159,253,245, 16, 94, 33, 59, 56, 78,128,161,161,128, 78, 56, 58,144, 1,143, 2,250,254,106,231,231, 1,150,231,
- 43, 2, 94,254, 76,168,252,219,147,168, 97, 51, 49, 1, 68, 2, 16, 1, 68, 49, 48, 77,252,251, 3, 5, 0, 0, 0, 2, 0, 27,
-254, 76, 4,180, 6, 20, 0, 13, 0, 67, 0, 0, 18, 16, 23, 22, 51, 50, 55, 54, 16, 39, 38, 35, 34, 7, 37, 19, 35, 53, 6, 7,
- 6, 35, 34, 39, 38, 16, 55, 54, 51, 50, 23, 22, 23, 17, 51, 3, 33, 21, 3, 50, 23, 22, 23, 22, 21, 20, 6, 35, 34, 39, 38, 39,
- 53, 30, 1, 51, 50, 55, 54, 53, 52, 39, 38, 43, 1, 53, 1, 33,141, 50, 50, 88, 87, 51, 50, 50, 51, 87, 88, 50, 1,180, 1,111,
- 35, 53, 53, 74,122, 76, 77, 77, 76,122, 74, 53, 53, 35,111, 1, 2, 12,246, 63, 77, 59, 51, 49,182,168, 57, 59, 60, 64, 51,120,
- 65,114, 59, 60, 55, 56, 99,104, 1, 2,254,113, 2,250,254,106,116,115,115,116, 1,150,116,115,115, 95,252, 51,168,100, 48, 49,
-162,162, 2, 16,162,162, 49, 48,100, 2, 94,254, 76,168,254, 36, 56, 42,109,104,138,221,242, 18, 19, 37,195, 49, 50, 75, 75,143,
-132, 75, 74,166, 1,243, 0, 0, 0, 4, 0, 54,255,145, 4,153, 6, 20, 0, 7, 0, 11, 0, 44, 0, 51, 0, 0, 18, 16, 22, 50,
- 54, 16, 38, 34, 5, 19, 1, 33, 53, 33, 21, 1, 51, 18, 51, 50, 21, 22, 43, 1, 6, 21, 35, 52, 55, 39, 35, 53, 14, 1, 35, 34,
- 2, 16, 18, 51, 50, 22, 23, 17, 51, 1, 51, 50, 53, 52, 35, 6,169,100,175,101,101,175, 1,127, 3, 1,141,254,115, 2, 9,254,
- 97,105, 36,132,136, 1,200, 25, 2, 92, 1,216, 92, 35,106, 75,121,153,153,121, 75,106, 35,110, 1, 48, 12,104, 42, 53, 2,250,
-254,106,231,231, 1,150,231, 20,252,254, 3, 2,147,168,252,219, 1, 32,246,189, 51, 60, 83, 27, 1,168,100, 97, 1, 68, 2, 16,
- 1, 68, 97,100, 2, 94,250,127, 54, 91, 2, 0, 0, 1, 0,153,255,227, 4, 56, 5,158, 0, 62, 0, 0, 1, 21, 46, 1, 35, 34,
- 6, 21, 20, 22, 31, 1, 22, 23, 22, 21, 20, 6, 35, 34, 39, 38, 39, 21, 35, 34, 38, 53, 17, 35, 53, 51, 17, 51, 17, 51, 21, 35,
- 17, 20, 22, 59, 1, 53, 30, 1, 51, 50, 54, 53, 52, 39, 38, 47, 1, 46, 1, 53, 52, 54, 51, 50, 22, 4, 20, 47,101, 54, 82, 82,
- 59, 89, 37,119, 48, 50,148,130, 54, 58, 56, 62,113,128, 97, 81, 81,111,227,227, 45, 69,107, 62,118, 59, 78, 84, 31, 27,106, 38,
-103, 91,135,123, 61,108, 4, 63,174, 40, 40, 84, 84, 64, 73, 33, 14, 44, 75, 76,137,156,182, 17, 17, 33, 38,159,210, 2, 96,143,
- 1, 62,254,194,143,253,160,137, 78, 77, 53, 53, 89, 81, 75, 40, 36, 41, 15, 36,149,130,158,172, 30, 0, 0, 0, 0, 2, 0,153,
-254, 86, 4, 52, 6, 20, 0, 37, 0, 46, 0, 0, 1, 17, 33, 53, 52, 55, 54, 59, 1, 21, 35, 34, 7, 6, 21, 19, 20, 7, 6, 43,
- 1, 53, 51, 50, 55, 54, 61, 1, 35, 34, 39, 38, 53, 17, 35, 53, 51, 17, 1, 2, 17, 33, 17, 20, 23, 22, 51, 1,137, 1, 25, 65,
- 60,147,130,132, 74, 28, 30, 2, 61, 61,136, 53, 37, 78, 29, 29,141,161, 59, 61,101,101, 1,165, 1,254,231, 28, 29, 85, 5,158,
-254,194, 78,182, 90, 86,153, 40, 41,103,251, 41,215, 95, 96,156, 48, 50,152, 20, 80, 77,212, 2, 96,143, 1, 62,250,252, 1, 23,
- 2, 32,253,160,138, 38, 39, 0, 0, 3, 0,181,255,112, 4, 18, 5,158, 0, 46, 0, 54, 0, 64, 0, 0, 1, 17, 51, 21, 54, 51,
- 50, 23, 22, 23, 21, 38, 39, 38, 35, 34, 7, 6, 16, 23, 22, 23, 54, 51, 50, 23, 20, 35, 34, 39, 6, 21, 7, 52, 55, 38, 39, 21,
- 35, 34, 38, 53, 17, 35, 53, 51, 17, 1, 22, 51, 50, 53, 52, 35, 34, 7, 38, 53, 16, 55, 35, 17, 20, 22, 51, 1,117,228, 90,157,
- 51, 49, 48, 46, 47, 47, 47, 48,108, 59, 59, 59, 4, 4, 50,118,179, 1,200, 49, 43, 3, 92, 7, 33, 28,114,128, 97, 81, 81, 1,
-254, 36, 45, 87, 79, 61,213, 77, 84,221, 45, 69, 5,158,254,194,130,157, 17, 18, 35,172, 43, 22, 21,113,114,254,102,114, 7, 7,
-176,246,189, 17, 57, 68, 3,104, 84, 34, 50,128,159,210, 2, 96,143, 1, 62,250,244, 19, 57, 75,105,157,248, 1, 7,155,253,160,
-137, 78, 0, 0, 0, 1, 0,135,254, 86, 4, 72, 6, 20, 0, 51, 0, 0, 1, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17,
- 52, 38, 35, 34, 6, 21, 17, 35, 17, 35, 17, 35, 17, 35, 53, 51, 53, 52, 54, 59, 1, 21, 35, 34, 6, 29, 1, 59, 2, 21, 54, 55,
- 54, 51, 50, 23, 22, 4, 71, 49, 49,108,153,140, 63, 23, 23, 75, 74, 89,104,111,180,110,106,106,104,113,105,106, 59, 47,180, 2,
-109, 40, 53, 54, 70,116, 60, 59, 2,164,253, 72,214, 96, 96,156, 48, 49,153, 2,178,159,158,190,164,253,135, 3,209,252, 47, 3,
-209,143, 78,187,171,153, 80,104, 99,174,101, 50, 50,119,120, 0, 0, 2, 0,230,255,227, 3,235, 6, 20, 0, 37, 0, 55, 0, 0,
- 1, 21, 38, 39, 38, 35, 34, 6, 21, 20, 23, 22, 31, 1, 22, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 39, 21, 35, 17, 51, 17, 54,
- 55, 54, 51, 50, 23, 22, 1, 17, 22, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38, 47, 1, 38, 39, 38, 3,190, 59, 62, 65, 66,103,102,
- 36, 38,110, 47,149, 60, 62, 93, 91,163, 65, 76, 79, 68,138,138, 8, 75, 84,155, 76, 68, 67,253,235, 75, 69, 74, 73, 97, 53, 52,
- 37, 34,133, 48,128, 57, 50, 4, 63,174, 41, 19, 20, 84, 84, 63, 38, 36, 33, 14, 44, 75, 76,137,155, 92, 91, 17, 21, 29, 38, 6,
- 20,253, 58,138, 77, 86, 15, 15,254,183,253,206, 51, 23, 27, 45, 43, 82, 75, 40, 35, 42, 15, 36, 74, 65, 0, 0, 0, 2, 0,219,
- 0, 0, 3,244, 6, 20, 0, 10, 0, 13, 0, 0, 19, 51, 17, 33, 21, 1, 33, 21, 33, 43, 1, 19, 17, 1,219,138, 2,143,253,249,
- 2, 7,253,113, 20,118,138, 1,243, 6, 20,254, 76,168,252,219,147, 3,205,252,250, 3, 6, 0, 0, 2, 0,143,255,226, 4, 66,
- 5, 32, 0, 12, 0, 25, 0, 0, 19, 51, 27, 1, 51, 27, 1, 51, 3, 35, 11, 1, 35, 3, 51, 27, 1, 51, 27, 1, 51, 3, 35, 11,
- 1, 35,143,116,145,144,137,145,144,116,185,136,152,153,136,185,116,145,144,137,145,144,116,185,136,152,153,136, 2, 85,254, 23,
- 1,233,254, 23, 1,233,253,141, 2, 2,253,254, 5, 61,254, 23, 1,233,254, 23, 1,233,253,141, 2, 2,253,254, 0, 2, 0,143,
- 0,173, 4, 66, 5, 31, 0, 7, 0, 15, 0, 0, 19, 33, 17, 35, 17, 33, 17, 35, 17, 33, 17, 35, 17, 33, 17, 35,143, 3,179,143,
-253,107,143, 3,179,143,253,107,143, 2, 85,254, 88, 1, 5,254,251, 4,114,254, 88, 1, 5,254,251, 0, 0, 0, 0, 1, 0,178,
-254, 74, 4, 31, 6, 20, 0, 24, 0, 0, 5, 32, 25, 1, 52, 38, 43, 1, 53, 51, 50, 22, 21, 17, 16, 51, 50, 54, 53, 17, 51, 17,
- 35, 17, 6, 2,132,254,219, 57, 79, 37, 53,136,122,186,112,129,138,138, 99, 29, 1,215, 2,196,153, 97,156,192,214,253, 66,254,
-195,190,164, 2,121,249,236, 2, 98,201, 0, 0, 0, 1, 0,197,254, 86, 4, 12, 6, 20, 0, 34, 0, 0, 1, 16, 51, 50, 54, 53,
- 17, 51, 17, 6, 22, 59, 1, 21, 35, 34, 39, 38, 39, 53, 6, 35, 34, 25, 1, 52, 39, 38, 43, 1, 53, 51, 50, 22, 21, 1,190,148,
- 90,103,111, 2, 48, 62, 30, 42,109, 47, 50, 1, 79,138,235, 23, 23, 63, 29, 42,109, 98, 1,192,254,195,190,164, 2,121,251,142,
-148,102,156, 92,103,231,172,201, 1,215, 2,196,153, 49, 48,156,192,214, 0, 0, 0, 1, 1, 65, 2,156, 3,144, 6, 4, 0, 19,
- 0, 32, 64, 6, 0, 3, 14, 10, 11, 20, 16,212,220, 60, 47,204, 75, 49, 0, 64, 6, 6, 17, 12, 2, 11, 20, 16,212, 60,196,212,
-204, 48, 1, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 17, 62, 1, 51, 50, 22, 3,144,116, 78, 78, 94,108,117,117, 41,
-113, 74,121,125, 4, 23,254,133, 1,119, 89, 89,107, 92,254,158, 3,103,254,171, 56, 56,134, 0, 0, 1, 1, 65, 2,154, 3,144,
- 6, 2, 0, 31, 0, 0, 1, 51, 62, 1, 51, 50, 22, 21, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 53, 52, 55, 54, 59, 1,
- 21, 35, 34, 7, 6, 21, 1,181, 1, 41,113, 74,121,125,116, 78, 78, 94,108,117, 52, 51,114,160,147, 66, 24, 24, 4,172, 57, 56,
-134,130,254,134, 1,119, 89, 88,106, 92,254,158, 2, 49, 83,119, 54, 54, 87, 27, 28, 85, 0, 0, 0, 2, 1,230, 1,173, 2,235,
- 6, 4, 0, 11, 0, 15, 0, 0, 1, 51, 17, 20, 6, 43, 1, 53, 51, 50, 54, 53, 17, 51, 21, 35, 2,119,116,103,114, 44, 31, 66,
- 48,116,116, 5, 15,253,130,120,108, 88, 54, 86, 3,114,130, 0, 0, 1, 1,153, 2,156, 3, 56, 5, 31, 0, 17, 0, 0, 1, 46,
- 1, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 23, 3, 55, 19, 46, 28, 98,106,116,116, 37,117, 84, 12, 29, 18, 4,
-175, 10, 9,113,107,254,182, 2,115, 97, 57, 55, 2, 3, 0, 0, 0, 1, 1,153, 2,140, 3, 56, 5, 16, 0, 17, 0, 0, 1, 30,
- 1, 51, 50, 54, 53, 17, 51, 17, 35, 53, 14, 1, 35, 34, 38, 39, 1,154, 19, 46, 28, 98,106,116,116, 37,117, 84, 12, 29, 18, 2,
-252, 10, 9,113,107, 1, 74,253,141, 97, 57, 55, 3, 2, 0, 0, 0, 1, 1, 81, 1,173, 3,128, 5, 16, 0, 31, 0, 0, 1, 30,
- 1, 51, 50, 54, 53, 17, 51, 17, 29, 1, 20, 23, 22, 59, 1, 21, 35, 34, 39, 38, 61, 1, 35, 53, 14, 1, 35, 34, 38, 39, 1, 81,
- 20, 46, 28, 98,105,117, 24, 24, 66, 31, 45,114, 51, 51, 1, 36,118, 83, 12, 29, 18, 2,252, 10, 9,113,107, 1, 74,253,213, 72,
- 11, 86, 27, 27, 88, 54, 54,120, 11, 97, 57, 55, 3, 2, 0, 0, 0, 2, 1, 48, 2,156, 3,161, 5, 16, 0, 22, 0, 33, 0, 0,
- 1, 30, 1, 21, 20, 7, 6, 43, 1, 17, 51, 17, 51, 50, 55, 54, 63, 1, 51, 7, 6, 7, 6, 1, 51, 50, 55, 54, 53, 52, 39, 38,
- 43, 1, 2,172, 67, 71, 68, 68,137,244,117,106, 61, 37, 37, 40,102,123,110, 33, 33, 33,254,215,124, 75, 40, 40, 40, 40, 75,124,
- 3,233, 15, 78, 59, 91, 45, 45, 2,115,254,247, 21, 20, 63,161,171, 53, 30, 30,255, 0, 23, 24, 47, 46, 24, 25, 0, 1, 0,143,
- 2,156, 4, 66, 5, 16, 0, 12, 0, 0, 19, 51, 27, 1, 51, 27, 1, 51, 3, 35, 11, 1, 35,143,116,145,144,137,145,144,116,185,
-136,152,153,136, 5, 15,254, 23, 1,233,254, 23, 1,233,253,141, 2, 2,253,254, 0, 1, 1, 17, 1,173, 3,192, 5, 16, 0, 15,
- 0, 0, 1, 14, 1, 43, 1, 53, 51, 50, 54, 63, 1, 1, 51, 27, 1, 51, 2,138, 49, 93, 79, 92, 68, 48, 53, 32, 21,254,226,123,
-220,221,123, 2, 98,112, 69, 87, 40, 75, 47, 2,105,254, 22, 1,234, 0, 0, 0,255,255, 1,236, 4,116, 2,235, 6,102, 16, 6,
- 2,191, 0, 0,255,255, 1,207, 3,199, 3, 45, 6, 20, 16, 6, 6,141, 0, 0,255,255, 1,207, 3,199, 3, 45, 6, 20, 16, 6,
- 6,142, 0, 0,255,255, 1,240, 4,194, 2,225, 6,193, 16, 6, 2,144, 0, 0, 0, 1, 1,223, 3,239, 2,242, 6, 20, 0, 16,
- 0, 0, 1, 52, 53, 50, 54, 53, 52, 38, 35, 52, 53, 50, 23, 22, 20, 7, 6, 1,224, 64, 88, 88, 64,114, 80, 80, 80, 80, 3,239,
- 61, 62, 88, 64, 63, 88, 61, 62, 80, 79,230, 80, 80, 0, 0, 0, 0, 1, 1,223, 3,239, 2,242, 6, 20, 0, 16, 0, 0, 1, 34,
- 39, 38, 52, 55, 54, 51, 20, 21, 34, 6, 21, 20, 22, 51, 20, 2,242,116, 80, 78, 78, 80,116, 64, 88, 88, 64, 3,239, 80, 80,230,
- 79, 80, 62, 61, 88, 63, 64, 88, 62, 0, 0, 0, 0, 1, 1, 94, 3,142, 3,115, 6,245, 0, 28, 0, 0, 1, 51, 50, 55, 54, 53,
- 52, 39, 38, 35, 34, 7, 6, 7, 53, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 7, 17, 35, 1,253, 40,121, 54, 36, 36, 62,113,
- 51, 49, 50, 49, 48, 51, 51, 54,173, 87, 69, 68, 71,107,127, 5, 77, 64, 42, 55, 75, 36, 64, 12, 12, 24, 96, 20, 9, 10, 88, 70,
-104, 95, 64, 67, 17,254,147, 0, 0, 1, 1, 94, 3,142, 3,115, 6,245, 0, 28, 0, 0, 1, 17, 35, 17, 38, 39, 38, 53, 52, 55,
- 54, 51, 50, 23, 22, 23, 21, 38, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 51, 2,211,127,107, 71, 68, 70, 86,173, 54, 51, 51, 48,
- 49, 50, 49, 51,113, 62, 36, 36, 54,121, 5, 77,254, 65, 1,109, 17, 67, 64, 95,104, 70, 88, 10, 9, 20, 96, 24, 12, 12, 64, 36,
- 75, 55, 42, 64, 0, 1, 1, 41, 4,238, 3,168, 6,102, 0, 6, 0, 55, 64, 12, 4, 5, 2,186, 0,185, 7, 4, 2, 11, 6, 7,
- 16,212,236, 57, 49, 0, 16,244,236, 50, 57, 48, 0, 75,176, 9, 84, 75,176, 14, 84, 91, 88,189, 0, 7,255,192, 0, 1, 0, 7,
- 0, 7, 0, 64, 56, 17, 55, 56, 89, 1, 51, 19, 35, 39, 7, 35, 2, 31,147,246,139,181,180,139, 6,102,254,136,245,245, 0, 0,
- 0, 1, 1, 41, 4,238, 3,168, 6,102, 0, 6, 0, 55, 64, 12, 3, 0,186, 4, 1,185, 7, 3, 5, 11, 1, 7, 16,212,236, 57,
- 49, 0, 16,244, 60,236, 57, 48, 0, 75,176, 9, 84, 75,176, 14, 84, 91, 88,189, 0, 7,255,192, 0, 1, 0, 7, 0, 7, 0, 64,
- 56, 17, 55, 56, 89, 1, 3, 51, 23, 55, 51, 3, 2, 31,246,139,180,181,139,246, 4,238, 1,120,245,245,254,136, 0, 1, 2, 36,
- 3,231, 2,173, 6, 18, 0, 3, 0, 19, 64, 3, 0, 3, 4, 16,212,204, 49, 0, 64, 3, 3, 2, 4, 16,212,196, 48, 1, 17, 35,
- 17, 2,172,136, 6, 18,253,213, 2, 43, 0, 0,255,255, 1, 61, 5, 98, 3,147, 5,246, 16, 6, 2,128, 0, 0, 0, 1, 2, 36,
-254,209, 2,173, 0,252, 0, 3, 0, 19, 64, 3, 0, 3, 4, 16,212,204, 49, 0, 64, 3, 3, 2, 4, 16,212,196, 48, 37, 17, 35,
- 17, 2,172,136,252,253,213, 2, 43, 0, 0, 0,255,255, 1, 61,254,155, 3,148,255, 47, 16, 6, 2,173, 0, 0, 0, 2, 1,182,
- 0, 0, 3, 27, 4, 35, 0, 2, 0, 5, 0, 0, 1, 3, 33, 3, 19, 33, 2,104,178, 1,101,179,179,254,155, 2,217, 1, 74,253,
- 39,254,182, 0, 0, 1, 1,182, 2,216, 3, 27, 4, 35, 0, 2, 0, 0, 1, 3, 33, 2,104,178, 1,101, 2,217, 1, 74, 0, 0,
-255,255, 1,223, 1,254, 2,242, 4, 35, 16, 7, 2, 91, 0, 0,254, 15, 0, 0,255,255, 1,223, 1,254, 2,242, 4, 35, 16, 7,
- 2, 92, 0, 0,254, 15, 0, 0, 0, 1, 0,193, 1,137, 3, 23, 3,223, 0, 11, 0, 0, 1, 53, 51, 21, 51, 21, 35, 21, 35, 53,
- 35, 53, 1,162,148,225,225,148,225, 2,254,225,225,148,225,225,148, 0, 0, 0,255,255, 1, 47, 5, 41, 3,162, 6, 72, 16, 6,
- 2,130, 0, 0,255,255, 2, 1, 5, 68, 2,206, 6, 16, 16, 6, 2,131, 0, 0, 0, 2, 1, 86, 4,225, 3,123, 7, 6, 0, 11,
- 0, 23, 0, 87,178, 15,200, 9,184, 1, 4, 64, 12, 21,200, 3, 24, 12, 80, 0,123, 18, 80, 6, 24, 16,212,236,244,236, 49, 0,
- 16,212,236,244,236, 48, 0, 75,176, 9, 84, 75,176, 12, 84, 91, 88,189, 0, 24,255,192, 0, 1, 0, 24, 0, 24, 0, 64, 56, 17,
- 55, 56, 89, 1, 75,176, 9, 84, 88,189, 0, 24, 0, 64, 0, 1, 0, 24, 0, 24,255,192, 56, 17, 55, 56, 89, 1, 20, 6, 35, 34,
- 38, 53, 52, 54, 51, 50, 22, 7, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 3,123,159,116,115,159,159,115,116,159,123, 88, 64,
- 64, 87, 87, 64, 64, 88, 5,244,115,160,160,115,115,159,159,115, 63, 88, 87, 64, 65, 87, 88, 0, 0, 1, 1,164,254,117, 3, 25,
- 0, 0, 0, 19, 0, 34,179, 11, 14, 10, 7,184, 1, 6, 64, 9, 14, 0, 1, 0, 10, 4,124, 17, 20, 16,212,236,196,212,204, 49,
- 0, 47,212,252,196, 18, 57, 48, 33, 51, 14, 1, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 53, 52, 54, 2, 16,119, 45,
- 43, 55, 54, 32, 62, 31, 38, 68, 30,122,115, 53, 61, 88, 31, 46, 46, 15, 15,133, 10, 10, 87, 93, 48,105, 0, 0, 0, 1, 1, 31,
- 5, 29, 3,178, 6, 55, 0, 27, 0,187, 64, 33, 0, 18, 7, 14, 11, 4, 1, 18, 7, 15, 11, 4, 18,204, 25, 7, 4,204, 21, 11,
- 28, 15, 1, 14, 0, 7, 21, 80, 22, 7, 80, 8, 28, 16,212,236,212,236, 17, 57, 57, 57, 57, 49, 0, 16,212, 60,252,212, 60,236,
- 17, 18, 57, 17, 18, 57, 17, 18, 57, 17, 18, 57, 48, 0, 75,176, 9, 84, 75,176, 12, 84, 91, 88,189, 0, 28,255,192, 0, 1, 0,
- 28, 0, 28, 0, 64, 56, 17, 55, 56, 89, 0, 75,176, 15, 84, 88,189, 0, 28, 0, 64, 0, 1, 0, 28, 0, 28,255,192, 56, 17, 55,
- 56, 89, 64, 63, 9, 0, 12, 10, 12, 11, 12, 12, 11, 15, 11, 16, 15, 17, 15, 18, 15, 19, 15, 20, 15, 21, 15, 22, 15, 23, 9, 27,
- 25, 0, 25, 1, 27, 10, 27, 11, 27, 12, 27, 13, 27, 14, 27, 15, 27, 16, 27, 17, 27, 18, 27, 19, 31, 20, 31, 21, 31, 22, 26, 23,
- 25, 27, 31, 1, 93, 1, 39, 46, 1, 35, 34, 6, 7, 35, 62, 1, 51, 50, 22, 31, 1, 30, 1, 51, 50, 54, 55, 51, 14, 1, 35, 34,
- 38, 2,100, 57, 21, 33, 14, 38, 36, 2,124, 1,102, 91, 39, 64, 37, 57, 21, 33, 13, 39, 36, 1,125, 1,102, 91, 39, 64, 5, 90,
- 55, 20, 19, 74, 81,134,148, 28, 33, 55, 20, 19, 74, 81,134,148, 28, 0, 0, 0,255,255, 1, 88, 4,238, 4, 23, 6,102, 16, 6,
- 2,135, 0, 0, 0, 1,254,161, 1,222, 3,115, 4, 8, 0, 15, 0, 0, 1, 37, 51, 21, 20, 23, 22, 59, 1, 21, 33, 34, 39, 38,
- 53, 5,254,161, 2,107,184, 38, 38,105,250,254,241,175, 87, 82,253,150, 3,100,164,148,153, 49, 48,156, 96, 90,200,162, 0, 0,
- 0, 2, 1, 37, 1,170, 3,172, 5, 15, 0, 13, 0, 21, 0, 0, 1, 22, 21, 20, 7, 4, 39, 38, 55, 3, 51, 23, 55, 51, 1, 6,
- 23, 22, 51, 50, 53, 54, 2,181,178,242,254,246, 1, 1,182,250,136,191,184,136,254,188,139, 3, 1,135,128, 1, 3,220,249,180,
-129, 3, 3,135,192,241, 1, 47,224,224,254,138,174,152, 77, 77,140, 0, 0, 0, 0, 1, 1, 86, 2,156, 3,124, 6, 10, 0, 13,
- 0, 0, 1, 20, 22, 59, 1, 21, 35, 34, 38, 53, 17, 35, 53, 33, 2,132, 56, 56,136,146,104,114,186, 1, 46, 3,127, 69, 71, 87,
-119,108, 2, 58, 81, 0, 0, 0, 0, 1, 1, 91, 2,156, 3,118, 5, 47, 0, 41, 0, 0, 1, 21, 46, 1, 35, 34, 6, 21, 20, 22,
- 31, 1, 22, 23, 22, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 39, 38, 47, 1, 46, 1, 53, 52, 54, 51, 50, 22,
- 3, 80, 49,106, 56, 87, 86, 62, 93, 40,125, 50, 52,155,137, 56,123, 68, 64,125, 61, 82, 88, 32, 28,111, 41,107, 96,141,130, 64,
-113, 5, 13, 97, 22, 22, 47, 47, 36, 41, 18, 8, 24, 42, 43, 77, 87,102, 20, 19,107, 30, 30, 50, 45, 42, 23, 20, 23, 8, 21, 83,
- 73, 88, 97, 17, 0, 1, 1, 18, 2,156, 3,191, 5, 15, 0, 11, 0, 0, 1, 3, 1, 35, 39, 7, 35, 1, 3, 51, 23, 55, 3,177,
-255, 1, 13,137,206,205,137, 1, 18,250,136,188,187, 5, 15,254,207,254,190,246,246, 1, 72, 1, 43,223,223, 0, 0, 1, 1, 94,
- 2,156, 3,115, 6, 2, 0, 28, 0, 0, 1, 17, 35, 17, 38, 39, 38, 53, 52, 55, 54, 51, 50, 23, 22, 23, 21, 38, 39, 38, 35, 34,
- 7, 6, 21, 20, 23, 22, 51, 2,211,127,107, 71, 68, 70, 86,173, 54, 51, 51, 48, 49, 50, 49, 51,113, 62, 36, 36, 54,121, 4, 91,
-254, 65, 1,109, 17, 67, 64, 95,104, 70, 88, 10, 9, 20, 96, 24, 12, 12, 64, 36, 75, 55, 42, 64, 0, 1, 0,214, 0, 0, 3, 29,
- 5, 88, 0, 5, 0, 0, 33, 17, 33, 53, 33, 17, 2,149,254, 65, 2, 71, 4,208,136,250,168, 0, 0, 1, 0,214, 0, 0, 3, 29,
- 5, 88, 0, 7, 0, 0, 33, 17, 33, 53, 33, 17, 51, 17, 2,149,254, 65, 1,191,136, 3,156,136, 1, 52,250,168, 0, 1, 0,214,
- 0, 0, 3, 29, 5, 88, 0, 7, 0, 0, 1, 17, 51, 17, 35, 17, 33, 53, 2,149,136,136,254, 65, 2,240, 2,104,250,168, 2,104,
-136, 0, 0, 0, 0, 1, 0,214, 0, 0, 3, 29, 5, 88, 0, 7, 0, 0, 1, 17, 51, 17, 35, 17, 33, 53, 2,149,136,136,254, 65,
- 1,188, 3,156,250,168, 1, 52,136, 0, 0, 0, 0, 1, 0,214, 0, 0, 3, 29, 5, 88, 0, 5, 0, 0, 37, 17, 51, 17, 33, 53,
- 2,149,136,253,185,136, 4,208,250,168,136, 0,255,255, 1,141,254, 10, 3, 68,255,193, 16, 6, 2,161, 0, 0,255,255, 1, 23,
- 4,238, 2,246, 6,102, 16, 6, 0, 67, 0, 0,255,255, 1,219, 4,238, 3,186, 6,102, 16, 6, 0,118, 0, 0,255,255, 1, 41,
- 4,238, 3,168, 6,102, 16, 6, 2, 95, 0, 0,255,255, 1, 31, 5, 29, 3,178, 6, 55, 16, 6, 2,110, 0, 0, 0, 1, 1, 61,
- 5, 98, 3,147, 5,246, 0, 3, 0, 17,182, 2,182, 0, 4, 1, 0, 4, 16,212,204, 49, 0, 16,212,236, 48, 1, 33, 21, 33, 1,
- 61, 2, 86,253,170, 5,246,148,255,255, 0, 0, 5,187, 4,209, 6, 11, 16, 6, 6,161, 0, 0, 0, 1, 1, 47, 5, 41, 3,162,
- 6, 72, 0, 13, 0, 32,185, 0, 11, 1, 3, 64, 12, 4, 7, 0,185, 14, 7, 80, 8, 1, 80, 0, 14, 16,212,236,220,236, 49, 0,
- 16,244, 60,212,236, 48, 1, 51, 30, 1, 51, 50, 54, 55, 51, 14, 1, 35, 34, 38, 1, 47,119, 11, 96, 87, 85, 96, 14,119, 11,158,
-145,144,158, 6, 72, 76, 74, 74, 76,143,144,144, 0, 1, 2, 1, 5, 68, 2,206, 6, 16, 0, 3, 0, 20, 64, 9, 2,222, 0,221,
- 4, 1, 97, 0, 4, 16,212,236, 49, 0, 16,244,236, 48, 1, 51, 21, 35, 2, 1,205,205, 6, 16,204, 0, 0, 0,255,255, 1, 63,
- 5, 70, 3,145, 6, 16, 16, 6, 0,106, 0, 0, 0, 1, 1,153, 4,242, 3, 56, 6,198, 0, 21, 0, 0, 1, 50, 23, 22, 21, 20,
- 7, 6, 7, 21, 35, 53, 54, 55, 54, 53, 52, 35, 34, 7, 53, 54, 2, 74,230, 7, 1, 28, 50, 52,148, 67, 49, 22,120, 90, 64, 86,
- 6,198,170, 5, 5, 64, 36, 67, 33, 88,108, 22, 48, 20, 53, 94, 32,131, 24, 0,255,255, 1, 86, 4,225, 3,123, 7, 6, 16, 6,
- 2,108, 0, 0, 0, 2, 1, 88, 4,238, 4, 23, 6,102, 0, 3, 0, 7, 0, 37, 64, 17, 6, 2,186, 4, 0,185, 8, 0, 7, 3,
- 4, 1, 5, 7, 1, 3, 8, 16,212,220,212,204, 17, 57, 17, 18, 57, 49, 0, 16,244, 60,236, 50, 48, 1, 51, 3, 35, 1, 51, 3,
- 35, 2, 23,170,224,137, 2, 12,179,248,135, 6,102,254,136, 1,120,254,136, 0,255,255, 1, 41, 4,238, 3,168, 6,102, 16, 6,
- 2, 96, 0, 0, 0, 1, 2, 34, 4,238, 2,170, 6,170, 0, 3, 0, 0, 1, 17, 35, 17, 2,170,136, 6,170,254, 68, 1,188, 0,
-255,255, 1, 86, 4,238, 3,118, 6,170, 16, 39, 2,137, 0,204, 0, 0, 16, 7, 2,137,255, 52, 0, 0, 0, 0, 0, 2, 0,210,
- 4,238, 3,144, 6,102, 0, 3, 0, 7, 0, 0, 1, 19, 35, 3, 33, 19, 35, 3, 1,132,205,135,248, 2, 0,190,137,223, 6,102,
-254,136, 1,120,254,136, 1,120,255,255, 1, 47, 5, 41, 3,162, 6,220, 16, 39, 2,107, 0, 0, 0,204, 16, 6, 2,106, 0, 0,
- 0, 1, 1, 47, 5, 41, 3,162, 6, 72, 0, 13, 0, 0, 1, 62, 1, 51, 50, 22, 23, 35, 46, 1, 35, 34, 6, 7, 1, 47, 11,158,
-144,145,158, 11,119, 14, 96, 85, 87, 96, 11, 5, 41,143,144,144,143, 76, 74, 74, 76, 0, 0, 0, 0, 1, 1,213, 3,199, 3, 34,
- 5, 32, 0, 3, 0, 0, 1, 35, 19, 51, 2,196,239,187,146, 3,199, 1, 89, 0, 0, 1, 1,239, 4,194, 2,226, 6,193, 0, 8,
- 0, 0, 1, 16, 35, 53, 22, 53, 35, 53, 51, 2,225,241,112,112,241, 5,195,254,255,123, 3,137,254, 0, 0, 0, 0, 1, 1,240,
- 4,194, 2,225, 6,193, 0, 8, 0, 0, 1, 53, 51, 21, 35, 20, 51, 21, 34, 1,240,241,112,112,241, 5,195,254,254,134,123, 0,
- 0, 1, 1,219, 4,238, 2,230, 6,102, 0, 3, 0, 0, 1, 51, 3, 35, 2, 32,198,113,154, 6,102,254,136, 0,255,255, 1,121,
-253,184, 3, 88,255, 48, 16, 7, 0, 67, 0, 98,248,202, 0, 0,255,255, 1,121,253,184, 3, 88,255, 48, 16, 7, 0,118,255,158,
-248,202, 0, 0, 0, 1, 1,156,253, 1, 2,212,254,235, 0, 7, 0, 0, 1, 53, 51, 17, 35, 53, 35, 53, 2, 76,136,136,176,254,
- 58,177,254, 22,177,136, 0, 0, 0, 1, 1,204,253, 1, 3, 4,254,235, 0, 7, 0, 0, 1, 21, 35, 17, 51, 21, 51, 21, 2, 84,
-136,136,176,253,178,177, 1,234,177,136, 0, 0, 0, 1, 1,115, 5,134, 3, 94, 7,112, 0, 5, 0, 0, 1, 33, 53, 33, 17, 35,
- 2,214,254,158, 1,234,136, 6,232,136,254, 22, 0, 1, 1,163, 2,252, 3, 46, 4,113, 0, 19, 0, 0, 1, 53, 30, 1, 51, 50,
- 54, 53, 52, 38, 39, 51, 30, 1, 21, 20, 6, 35, 34, 38, 1,163, 61, 88, 31, 46, 46, 15, 15,133, 10, 10, 87, 93, 48,105, 3,104,
-119, 45, 43, 55, 54, 32, 62, 31, 38, 68, 30,122,115, 53, 0, 0, 0, 1, 1,250,254, 10, 2,214,255,193, 0, 12, 0, 0, 1, 21,
- 34, 38, 52, 54, 51, 21, 34, 6, 21, 20, 22, 2,214, 93,127,127, 93, 51, 71, 71,254,108, 98,128,184,127, 98, 71, 50, 51, 71, 0,
- 0, 1, 1, 98,253,178, 3, 76,254,235, 0, 7, 0, 0, 1, 51, 21, 33, 53, 51, 53, 51, 2,155,177,254, 22,177,136,254, 58,136,
-136,177, 0, 0, 0, 1, 1, 94,253,178, 3, 72,254,235, 0, 7, 0, 0, 1, 35, 53, 33, 21, 35, 21, 35, 2, 15,177, 1,234,177,
-136,254, 99,136,136,177, 0, 0, 0, 1, 1, 95,253, 1, 3, 73,254,235, 0, 11, 0, 0, 1, 35, 53, 51, 53, 51, 21, 51, 21, 35,
- 21, 35, 2, 16,177,177,136,177,177,136,253,178,136,177,177,136,177, 0, 0, 0, 0, 1, 1,115,254, 99, 3, 94,254,235, 0, 3,
- 0, 0, 1, 53, 33, 21, 1,116, 1,234,254, 99,136,136, 0, 0, 0, 1, 1,246,254, 86, 4, 27, 0,128, 0, 13, 0, 0, 37, 21,
- 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 61, 1, 4, 27, 89, 90,165,205,185, 90, 45, 44,128,148,195,105,106,156, 62, 62,126,148,
- 0, 1, 0,182,254, 86, 2,219, 0,128, 0, 13, 0, 0, 55, 51, 21, 20, 23, 22, 59, 1, 21, 35, 34, 39, 38, 53,182,185, 44, 45,
- 90,185,205,165, 90, 89,128,148,126, 62, 62,156,106,105,195, 0, 0, 1, 2, 1,254, 99, 2,206,255, 47, 0, 3, 0, 19, 64, 8,
- 2,222, 0, 4, 1, 97, 0, 4, 16,212,236, 49, 0, 16,212,236, 48, 5, 51, 21, 35, 2, 1,205,205,209,204, 0, 0, 2, 1, 63,
-254,100, 3,146,255, 46, 0, 3, 0, 7, 0, 28, 64, 13, 6, 2,222, 4, 0, 8, 5, 97, 4, 1, 97, 0, 8, 16,212,252,212,236,
- 49, 0, 16,212, 60,236, 50, 48, 5, 51, 21, 35, 37, 51, 21, 35, 1, 64,202,202, 1,136,202,202,210,202,202,202, 0, 2, 1,141,
-254, 10, 3, 68,255,193, 0, 11, 0, 23, 0, 29,181, 12, 0, 18, 0, 6, 24, 16,212,204,204, 16,204, 49, 0,181, 15, 9, 21, 9,
- 3, 24, 16,212,204,204, 16,204, 48, 1, 20, 6, 35, 34, 38, 53, 52, 54, 51, 50, 22, 7, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50,
- 54, 3, 68,127, 93, 92,127,127, 92, 93,127, 98, 71, 51, 51, 70, 70, 51, 51, 71,254,230, 92,128,128, 92, 92,127,127, 92, 50, 71,
- 70, 51, 52, 70, 71, 0, 0, 0, 0, 1, 1,152,253,226, 2,229,255, 59, 0, 3, 0, 17, 64, 6, 0, 3, 4, 1, 3, 4, 16,212,
-204, 49, 0, 16,212,204, 48, 5, 51, 3, 35, 1,246,239,187,146,197,254,167, 0, 0, 1, 1,139,254,117, 3, 41, 0, 0, 0, 19,
- 0, 56,179, 9, 6, 10, 13,186, 1, 6, 0, 6, 1, 5, 64, 9, 0, 9, 16, 19, 0, 16,124, 3, 20, 16,212,236,212,204, 16,196,
- 49, 0, 47,246,254,197, 18, 57, 48, 1, 64, 13, 73, 1, 89, 1,105, 1,121, 1,137, 1,153, 1, 6, 93, 33, 30, 1, 21, 20, 6,
- 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 39, 2,188, 56, 53,120,118, 45, 87, 44, 34, 75, 47, 58, 61, 44, 44, 62,105,
- 48, 89, 91, 12, 12,131, 17, 15, 48, 46, 30, 87, 61, 0, 0, 0,255,255, 1,174,254,117, 3, 35, 0, 0, 16, 6, 2,109, 10, 0,
- 0, 1, 2, 36,253,115, 2,173,255, 47, 0, 3, 0, 0, 5, 17, 35, 17, 2,172,136,209,254, 68, 1,188, 0, 0, 0, 1, 1, 85,
-253,229, 3,124,255, 47, 0, 7, 0, 0, 5, 17, 35, 53, 33, 21, 35, 17, 3,124,137,254,235,137,209,254,182,194,194, 1, 74, 0,
- 0, 1, 0,206,254, 57, 4, 3,255, 88, 0, 20, 0, 0, 1, 6, 35, 34, 3, 52, 53, 51, 22, 51, 50, 55, 51, 22, 23, 50, 55, 51,
- 2, 7, 34, 2,104, 59,116,218, 17,118, 13,103,102, 16,118, 11,105,102, 15,118, 15,220,116,254,139, 82, 1, 26, 2, 3,150,150,
-149, 1,150,254,226, 1, 0, 0, 0, 1, 1, 41,254, 27, 3,168,255,147, 0, 6, 0, 25, 64, 11, 3, 0,186, 4, 1, 7, 3, 5,
- 11, 1, 7, 16,212,236, 57, 49, 0, 16,212, 60,236, 57, 48, 1, 3, 51, 23, 55, 51, 3, 2, 31,246,139,180,181,139,246,254, 27,
- 1,120,245,245,254,136, 0, 0, 0, 1, 1, 41,254, 27, 3,168,255,147, 0, 6, 0, 25, 64, 11, 4, 5, 2,186, 0, 7, 4, 2,
- 11, 6, 7, 16,212,236, 57, 49, 0, 16,212,236, 50, 57, 48, 5, 51, 19, 35, 39, 7, 35, 2, 31,147,246,139,181,180,139,109,254,
-136,245,245, 0, 0, 1, 1, 47,254, 25, 3,162,255, 56, 0, 13, 0, 32,185, 0, 11, 1, 3, 64, 12, 4, 7, 0,185, 14, 7, 80,
- 8, 1, 80, 0, 14, 16,212,236,220,236, 49, 0, 16,244, 60,212,236, 48, 5, 51, 30, 1, 51, 50, 54, 55, 51, 14, 1, 35, 34, 38,
- 1, 47,119, 11, 96, 87, 85, 96, 14,119, 11,158,145,144,158,200, 76, 74, 74, 76,143,144,144, 0, 0, 1, 1, 47,254, 27, 3,162,
-255, 58, 0, 13, 0, 0, 1, 35, 46, 1, 35, 34, 6, 7, 35, 62, 1, 51, 50, 22, 3,162,119, 11, 96, 87, 85, 96, 14,119, 11,158,
-145,144,158,254, 27, 76, 74, 74, 76,143,144,144, 0, 1, 1, 31,254, 27, 3,178,255, 53, 0, 27, 0,134, 64, 33, 0, 18, 7, 14,
- 11, 4, 1, 18, 7, 15, 11, 4, 18,204, 25, 7, 4,204, 21, 11, 28, 15, 1, 14, 0, 7, 21, 80, 22, 7, 80, 8, 28, 16,212,236,
-212,236, 17, 57, 57, 57, 57, 49, 0, 16,212, 60,252,212, 60,236, 17, 18, 57, 17, 18, 57, 17, 18, 57, 17, 18, 57, 48, 64, 63, 9,
- 0, 12, 10, 12, 11, 12, 12, 11, 15, 11, 16, 15, 17, 15, 18, 15, 19, 15, 20, 15, 21, 15, 22, 15, 23, 9, 27, 25, 0, 25, 1, 27,
- 10, 27, 11, 27, 12, 27, 13, 27, 14, 27, 15, 27, 16, 27, 17, 27, 18, 27, 19, 31, 20, 31, 21, 31, 22, 26, 23, 25, 27, 31, 1, 93,
- 1, 39, 46, 1, 35, 34, 6, 7, 35, 62, 1, 51, 50, 22, 31, 1, 30, 1, 51, 50, 54, 55, 51, 14, 1, 35, 34, 38, 2,100, 57, 21,
- 33, 14, 38, 36, 2,124, 1,102, 91, 39, 64, 37, 57, 21, 33, 13, 39, 36, 1,125, 1,102, 91, 39, 64,254, 88, 55, 20, 19, 74, 81,
-134,148, 28, 33, 55, 20, 19, 74, 81,134,148, 28, 0, 1, 1, 61,254,155, 3,148,255, 47, 0, 3, 0, 17,182, 2,182, 0, 4, 1,
- 0, 4, 16,212,204, 49, 0, 16,220,236, 48, 5, 33, 21, 33, 1, 62, 2, 86,253,170,209,148, 0,255,255, 0, 0,254, 29, 4,209,
-254,109, 16, 6, 0, 66, 0, 0,255,255, 0, 0,254, 29, 4,209,255, 93, 16, 6, 6,140, 0, 0,255,255, 0, 88, 1,236, 4,121,
- 3, 12, 16, 6, 0, 97, 0, 0, 0, 1, 0,141, 1,196, 4, 38, 2,104, 0, 3, 0, 0, 1, 21, 33, 53, 4, 38,252,104, 2,104,
-164,164, 0, 0, 0, 1, 0, 0, 1,196, 4,209, 2,104, 0, 3, 0, 0, 17, 53, 33, 21, 4,209, 1,196,164,164, 0, 1, 0, 47,
-255,160, 4,150, 4,188, 0, 3, 0, 0, 23, 39, 1, 23,139, 92, 4, 10, 93, 96, 76, 4,208, 77, 0, 1, 0, 8,255,186, 4,176,
- 6, 23, 0, 3, 0, 0, 23, 39, 1, 23,111,103, 4, 68,100, 70, 70, 6, 23, 74, 0, 1, 1,250,254, 10, 2,214,255,193, 0, 12,
- 0, 0, 1, 50, 54, 53, 52, 38, 35, 53, 50, 22, 20, 6, 35, 1,250, 51, 71, 71, 51, 93,127,127, 93,254,108, 71, 51, 50, 71, 98,
-127,184,128, 0, 0, 1, 1, 85,254,128, 3,124,255,202, 0, 7, 0, 0, 1, 17, 51, 21, 33, 53, 51, 17, 1, 85,137, 1, 21,137,
-254,128, 1, 74,194,194,254,182, 0, 2, 1, 85,253, 9, 3,124,255, 47, 0, 3, 0, 7, 0, 0, 5, 17, 33, 17, 1, 17, 33, 17,
- 3,124,253,217, 1,158,254,235,209,253,218, 2, 38,254, 98, 1, 22,254,234, 0, 0, 1, 0,206,254, 57, 4, 3,255, 88, 0, 20,
- 0, 0, 5, 54, 51, 50, 19, 20, 21, 35, 38, 35, 34, 7, 35, 38, 39, 34, 7, 35, 18, 55, 50, 2,104, 60,116,218, 17,117, 14,104,
-101, 15,118, 12,105,102, 15,118, 15,220,116,250, 82,254,230, 2, 3,150,150,149, 1,150, 1, 30, 1, 0, 0, 0, 0, 1, 1,139,
- 4,203, 3, 70, 6,135, 0, 11, 0, 0, 1, 7, 39, 55, 39, 55, 23, 55, 23, 7, 23, 7, 2,104,125, 96,125,125, 96,125,126, 96,
-125,125, 96, 5, 73,125, 96,125,125, 97,126,126, 97,125,125, 96, 0, 1, 1,219, 4,194, 2,246, 6,210, 0, 29, 0, 0, 1, 46,
- 1, 53, 52, 54, 55, 21, 14, 1, 21, 20, 23, 22, 31, 1, 30, 1, 21, 20, 6, 7, 53, 62, 1, 53, 52, 39, 38, 39, 2, 24, 32, 28,
-146,136, 82, 74, 10, 11, 19, 54, 34, 28,148,134, 82, 72, 9, 11, 18, 5,199, 28, 48, 28, 80, 81, 2,110, 2, 27, 28, 10, 12, 15,
- 14, 43, 28, 48, 28, 80, 81, 2,110, 2, 27, 28, 10, 12, 15, 14,255,255, 0, 0, 4,203, 4,209, 6, 11, 16, 38, 6,161, 0, 0,
- 16, 7, 6,161, 0, 0,255, 16,255,255, 1,239, 4,194, 2,226, 6,193, 16, 6, 2,143, 0, 0,255,255, 4, 2, 5, 68, 4,207,
- 6, 16, 16, 7, 2,107, 2, 1, 0, 0, 0, 0, 0, 1,255, 19, 5,240, 5,190, 7, 55, 0, 15, 0, 0, 0, 34, 5, 4, 7, 35,
- 52, 37, 54, 50, 23, 4, 21, 35, 38, 37, 2,160,110,254,226,254,244,126,118, 1,252,228,233,229, 1,252,118,127,254,243, 6,174,
- 25, 23,142,240, 60, 27, 27, 60,240,142, 23, 0, 0, 1, 1,236, 4,116, 2,235, 6,102, 0, 3, 0, 0, 1, 19, 51, 3, 1,236,
- 65,190,110, 4,116, 1,242,254, 14, 0, 0, 0, 0, 1, 1,230,254, 86, 2,229, 0, 72, 0, 3, 0, 0, 37, 3, 35, 19, 2,229,
- 65,190,110, 72,254, 14, 1,242, 0, 1, 2, 30,254, 86, 2,250,255,164, 0, 9, 0, 0, 1, 35, 34, 61, 1, 51, 21, 20, 59, 1,
- 2,250,132, 88,149, 51, 20,254, 86,183,151,164,104, 0, 0, 0,255,255, 1,147,254,225, 2,242, 4, 39, 16, 6, 0, 30, 0, 0,
-255,255, 1,219, 4,238, 3,186, 6,102, 16, 6, 0,118, 0, 0,255,255, 1, 63, 5, 70, 3,186, 7,216, 16, 38, 0,106, 0, 0,
- 16, 7, 2,195, 0, 0, 1,114,255,255, 0, 25, 0, 0, 4,172, 6,102, 16, 38, 2,206, 0, 0, 16, 7, 2,195,254, 62, 0, 0,
-255,255, 1,233, 2, 47, 2,229, 3, 96, 16, 6, 0,121, 0, 0,255,255,255, 31, 0, 0, 4, 78, 6,102, 16, 38, 2,210, 0, 0,
- 16, 7, 2,195,253, 68, 0, 0,255,255,254,237, 0, 0, 4, 72, 6,102, 16, 38, 2,212, 0, 0, 16, 7, 2,195,253, 18, 0, 0,
-255,255,255, 31, 0, 0, 4, 6, 6,102, 16, 38, 2,214, 0, 0, 16, 7, 2,195,253, 68, 0, 0,255,255,255,181,255,227, 4, 92,
- 6,102, 16, 38, 2,220, 0, 0, 16, 7, 2,195,253,218, 0, 0,255,255,254,112, 0, 0, 4,172, 6,102, 16, 38, 2,225, 0, 0,
- 16, 7, 2,195,252,149, 0, 0,255,255,255,206, 0, 0, 4,135, 6,102, 16, 38, 2,229, 0, 0, 16, 7, 2,195,253,243, 0, 0,
-255,255, 1, 54, 0, 0, 3,207, 7,216, 16, 38, 2,245, 0, 0, 16, 6, 2,196, 0, 0, 0, 0,255,255, 0, 37, 0, 0, 4,172,
- 5,213, 16, 6, 0, 36, 0, 0,255,255, 0,166, 0, 0, 4,113, 5,213, 16, 6, 0, 37, 0, 0,255,255, 0,215, 0, 0, 4,115,
- 5,213, 16, 6, 3, 64, 0, 0, 0, 2, 0, 37, 0, 0, 4,172, 5,213, 0, 2, 0, 6, 0, 49,180, 3, 47, 4, 48, 7, 16,244,
-228, 49, 0,180, 5,180, 2,151, 4, 47,236,228, 48, 5, 64, 16, 1, 37, 5, 4, 0, 37, 3, 6, 3, 2, 37, 1, 37, 4, 5, 4,
- 7, 16,236,236, 7, 16,236, 8,236, 37, 9, 1, 5, 33, 1, 51, 3,170,254,190,254,190, 3,134,251,121, 1,201,245,170, 4,121,
-251,135,170, 5,213, 0, 0, 0,255,255, 0,197, 0, 0, 4, 78, 5,213, 16, 6, 0, 40, 0, 0,255,255, 0,156, 0, 0, 4,145,
- 5,213, 16, 6, 0, 61, 0, 0,255,255, 0,137, 0, 0, 4, 72, 5,213, 16, 6, 0, 43, 0, 0, 0, 3, 0,117,255,227, 4, 92,
- 5,240, 0, 3, 0, 15, 0, 27, 0, 54, 64, 11, 3, 4, 50, 16, 54, 2, 10, 50, 22, 53, 28, 16,252,236,196,252,236,196,178,128,
- 3, 1, 93, 49, 0, 64, 15, 7,151, 25,150, 28, 1,151, 2,177, 28, 13,151, 19,153, 28, 16,244,236, 16,244,236, 16,244,236, 48,
- 1, 33, 53, 33, 23, 16, 2, 35, 34, 2, 17, 16, 18, 51, 50, 18, 19, 16, 2, 35, 34, 2, 17, 16, 18, 51, 50, 18, 3, 48,254,113,
- 1,143, 89,135,154,153,135,135,153,154,135,211,247,253,253,246,247,252,253,247, 2,199,170,136, 1, 73, 1, 26,254,230,254,183,
-254,184,254,230, 1, 25, 1, 73,254,122,254,128, 1,126, 1,136, 1,135, 1,128,254,128, 0, 0,255,255, 0,201, 0, 0, 4, 6,
- 5,213, 16, 6, 0, 44, 0, 0,255,255, 0,137, 0, 0, 4,201, 5,213, 16, 6, 0, 46, 0, 0, 0, 1, 0, 37, 0, 0, 4,172,
- 5,213, 0, 6, 0, 48,180, 4, 47, 1, 48, 7, 16,244,228, 49, 0,179, 2,180, 5, 1, 47, 60,228, 48, 5, 64, 16, 6, 37, 2,
- 1, 5, 37, 3, 4, 3, 6, 37, 0, 37, 1, 2, 1, 7, 16,236,236, 7, 16,236, 8,236, 51, 35, 1, 51, 1, 35, 1,246,209, 1,
-201,245, 1,201,209,254,141, 5,213,250, 43, 5, 35, 0, 0, 0,255,255, 0, 86, 0, 0, 4,121, 5,213, 16, 6, 0, 48, 0, 0,
-255,255, 0,139, 0, 0, 4, 70, 5,213, 16, 6, 0, 49, 0, 0, 0, 3, 0,137, 0, 0, 4, 72, 5,213, 0, 3, 0, 7, 0, 11,
- 0, 40,183, 7, 8, 0, 49, 6, 11, 3, 12, 16,212, 60,196,244, 60,196, 49, 0, 64, 12, 2,151, 3,136, 10, 5,151, 6,177, 11,
-151, 10, 47,236,244,236, 16,244,236, 48, 1, 21, 33, 53, 1, 33, 53, 33, 19, 21, 33, 53, 4, 72,252, 65, 2,244,253,215, 2, 41,
-203,252, 65, 5,213,170,170,252,242,170,253, 57,170,170, 0, 0,255,255, 0,117,255,227, 4, 92, 5,240, 16, 6, 0, 50, 0, 0,
-255,255, 0,137, 0, 0, 4, 72, 5,213, 16, 6, 3, 76, 0, 0,255,255, 0,197, 0, 0, 4,117, 5,213, 16, 6, 0, 51, 0, 0,
- 0, 1, 0,120, 0, 0, 4,109, 5,213, 0, 11, 0, 60,181, 2, 9, 49, 5, 8, 12, 16,212, 60,228, 50, 49, 0, 64, 9, 11, 7,
-151, 8,136, 1, 5,151, 4, 47,236, 50,244,236, 50, 48, 5, 64, 16, 0, 37, 6, 5, 11, 37, 6, 7, 6, 0, 37, 1, 37, 5, 6,
- 5, 7, 16,236,236, 7, 16,236, 8,236, 9, 1, 33, 21, 33, 53, 9, 1, 53, 33, 21, 33, 3, 18,254, 57, 3, 34,252, 11, 1,198,
-254, 58, 3,245,252,222, 2,235,253,191,170,170, 2, 65, 2, 64,170,170, 0, 0,255,255, 0, 47, 0, 0, 4,162, 5,213, 16, 6,
- 0, 55, 0, 0,255,255, 0, 37, 0, 0, 4,172, 5,213, 16, 6, 0, 60, 0, 0, 0, 3, 0,117, 0, 0, 4, 90, 5,213, 0, 29,
- 0, 38, 0, 47, 0, 77, 64, 19, 34, 50, 5, 11, 28, 9, 38, 0, 30, 14, 27, 25, 44, 50, 20, 16, 40, 25, 48, 16,212, 60, 60,220,
-236, 16,196, 50,252, 60, 60,196, 50,220,236, 49, 0, 64, 20, 38, 40,151, 1, 24, 0, 26,151, 27,136, 13, 30, 39,151, 9, 16, 10,
- 14,151, 13, 47,252, 60,220, 60,236, 50, 16,244,252, 60,220, 60,236, 50, 48, 1, 21, 22, 23, 22, 21, 20, 7, 6, 7, 21, 51, 21,
- 33, 53, 51, 53, 38, 39, 38, 53, 52, 55, 54, 55, 53, 35, 53, 33, 21, 3, 54, 55, 54, 53, 52, 39, 38, 39, 3, 17, 6, 7, 6, 21,
- 20, 23, 22, 2,205,176, 97,124,123, 97,177,147,254, 15,147,177, 97,123,123, 98,176,147, 1,241,147, 76, 43, 67, 67, 43, 76,203,
- 76, 42, 68, 68, 42, 5, 43,118, 19, 91,115,235,235,115, 90, 19,116,170,170,116, 19, 90,115,235,235,115, 91, 19,118,170,170,252,
-163, 16, 42, 68,157,158, 68, 42, 16,253,201, 2, 55, 16, 42, 68,158,157, 68, 42,255,255, 0, 18, 0, 0, 4,190, 5,213, 16, 6,
- 0, 59, 0, 0, 0, 1, 0,117, 0, 0, 4, 90, 5,213, 0, 31, 0, 57, 64, 15, 6, 30, 7, 14, 12, 0, 30, 17, 31, 25, 30, 24,
- 19, 31, 32, 16,212, 60,212,236, 16,196,252, 60,196,212,236, 49, 0, 64, 13, 1, 30,151, 12, 19, 13, 17,151, 6, 31, 24,136, 16,
- 47,228, 50, 50,252, 60,220, 60,236, 50, 48, 1, 17, 54, 55, 54, 25, 1, 51, 17, 16, 7, 6, 7, 21, 51, 21, 33, 53, 51, 53, 38,
- 39, 38, 25, 1, 51, 17, 16, 23, 22, 23, 17, 2,205, 73, 46, 75,203,123, 98,176,147,254, 15,147,176, 98,123,203, 76, 45, 73, 5,
-213,252, 91, 34, 87,145, 1, 68, 1, 87,254,169,254,120,191,151, 32,214,170,170,214, 32,151,191, 1,136, 1, 87,254,169,254,188,
-145, 87, 34, 3,165, 0, 0, 0, 0, 1, 0, 74, 0, 0, 4,135, 5,180, 0, 31, 0, 64, 64, 23, 2, 30, 27, 14, 17,113, 21, 30,
-113, 27, 15,114, 21,111, 11,112, 0,114, 27,111, 5,108, 32, 16,244,236,228,244,236,228, 16,228, 16,228, 57, 17, 18, 57, 49, 0,
- 64, 12, 24,248, 8,247, 30, 18, 14, 3, 1,249, 16, 0, 47, 60,238, 23, 50,246,238, 48, 51, 53, 51, 38, 2, 53, 16, 0, 51, 50,
- 0, 17, 20, 2, 7, 51, 21, 33, 53, 54, 18, 53, 52, 2, 35, 34, 2, 21, 20, 18, 23, 21, 74,245,123,110, 1, 32,240,242, 1, 33,
-111,123,248,254, 49,120,134,180,154,154,179,134,120,172,134, 1, 32,188, 1, 55, 1,111,254,146,254,200,188,254,223,133,172,172,
- 76, 1, 73,222,230, 1, 9,254,247,230,222,254,183, 76,172, 0,255,255, 0,201, 0, 0, 4, 6, 7, 78, 16, 39, 11,176, 0, 0,
- 1,117, 16, 6, 2,214, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7, 78, 16, 39, 11,176, 0, 0, 1,117, 16, 6, 2,225, 0, 0,
-255,255, 0, 70,255,230, 4,149, 6,102, 16, 38, 2,237, 0, 0, 16, 6, 2,195, 0, 0, 0, 0,255,255, 0,169,255,234, 4, 40,
- 6,102, 16, 38, 2,241, 0, 0, 16, 6, 2,195, 0, 0, 0, 0,255,255, 0,195,254, 86, 4, 27, 6,102, 16, 38, 2,243, 0, 0,
- 16, 6, 2,195, 0, 0, 0, 0,255,255, 1, 54, 0, 0, 3,207, 6,102, 16, 38, 2,245, 0, 0, 16, 6, 2,195, 0, 0, 0, 0,
-255,255, 0, 51,255,255, 4,105, 7,216, 16, 38, 3, 1, 0, 0, 16, 6, 2,196, 0, 0, 0, 0, 0, 2, 0, 70,255,230, 4,149,
- 4,122, 0, 13, 0, 42, 0, 0, 1, 39, 38, 39, 38, 7, 6, 21, 20, 23, 22, 51, 50, 55, 18, 27, 1, 51, 3, 23, 22, 23, 22, 59,
- 1, 21, 35, 34, 39, 38, 39, 6, 7, 6, 39, 38, 39, 38, 17, 16, 55, 54, 55, 2,254, 44, 45,177, 98, 61, 77, 74, 77, 85,133, 72,
-105, 59, 99,164,205, 40, 9, 35, 41, 32, 88,110, 94, 84, 41, 17, 46, 92, 45,143,198,114,118,126,143,161, 2, 9,231,236, 1, 1,
-111,137,183,220,105,107,213, 3, 42,254,189, 1, 37,253,161,219, 49, 41, 48,156, 84, 42, 88,109, 89, 42, 1, 2,150,156, 1, 20,
- 1, 41,135,151, 3, 0, 0, 0, 0, 2, 0,151,254, 86, 4, 97, 6, 35, 0, 14, 0, 28, 0, 0, 37, 17, 35, 17, 16, 5, 4, 17,
- 2, 7, 4, 19, 18, 5, 6, 3, 22, 23, 4, 17, 16, 5, 53, 4, 17, 52, 39, 36, 17, 1, 81,185, 1,205, 1,143, 1,171, 1, 22,
- 2, 4,254, 26,130,171, 81,227, 1, 32,254, 48, 1,107,234,254,251, 69,254, 17, 6, 3, 1,231, 31, 27,254,154,254,236, 98, 54,
-254,209,254, 61, 23, 6, 1,113,141, 21, 25, 1, 39, 1, 26, 22,170, 6, 1, 48,189, 13, 15,254,224, 0, 0, 0, 0, 1, 0, 32,
-254, 86, 4,109, 4, 96, 0, 14, 0, 0, 19, 38, 43, 1, 53, 51, 50, 23, 9, 1, 51, 1, 17, 35, 17,220, 45, 94, 49, 70,194, 65,
- 0,255, 1, 70,191,254, 91,190, 3, 68,126,158,176,253, 83, 3, 93,251,160,254, 86, 1,170, 0, 0, 2, 0,137,255,227, 4, 72,
- 6, 34, 0, 11, 0, 52, 0, 0, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 37, 38, 39, 38, 53, 52, 54, 51, 50, 31, 1, 21,
- 38, 39, 38, 15, 1, 6, 15, 1, 6, 21, 20, 23, 22, 23, 22, 23, 22, 23, 22, 17, 16, 2, 35, 34, 2, 17, 16, 55, 54, 2,104,140,
-144,144,140,141,144,144,254, 89, 19, 40, 62,237,197,102, 50,151, 66, 70, 85, 82, 32, 73, 60, 39, 27, 13, 17, 41, 24,105,235,121,
-124,246,234,233,246,123, 31, 3,223,218,214,213,219,219,213,214,218, 76, 9, 40, 61, 92,136,164, 12, 36,173, 24, 15, 17, 2, 1,
- 2, 43, 28, 24, 46, 33, 19, 24, 21, 13, 1, 3,148,151,254,226,254,225,254,211, 1, 45, 1, 31, 1, 30,151, 38,255,255, 0,169,
-255,234, 4, 40, 4,123, 16, 6, 1,249, 0, 0, 0, 1, 0,152,254, 82, 4, 38, 6, 20, 0, 29, 0, 0, 37, 22, 23, 22, 21, 20,
- 7, 6, 35, 52, 53, 22, 55, 54, 53, 52, 39, 38, 35, 32, 3, 2, 1, 33, 53, 33, 21, 0, 19, 18, 2,248,132, 79, 84, 74, 80,163,
- 69, 42, 32, 32, 31, 58,253,181, 20, 17, 2, 76,253,236, 3,102,252,254, 46, 44,127, 1, 75, 79,120,115, 80, 87, 75, 76, 5, 44,
- 35, 37, 53, 44, 42, 2, 51, 1,224, 1,101,185,185,254, 97,254, 90,254,105, 0, 0, 1, 0,195,254, 86, 4, 27, 4,123, 0, 19,
- 0, 46, 64, 10, 2, 6, 0, 74, 13, 9, 6, 11, 70, 20, 16,244,236, 50,252,236, 49, 64, 15, 9, 14, 3, 0, 4, 10, 6,140, 17,
-190, 12,194, 1,195, 10, 0, 47,228,228,244,236, 17, 23, 57, 48, 1, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62,
- 1, 51, 50, 22, 4, 27,185,106,113,129,139,184,184, 49,168,115,171,169, 2,182,251,160, 4, 96,151,142,183,171,253,135, 4, 96,
-168, 96, 99,225, 0, 3, 0,137,255,227, 4, 72, 5,220, 0, 8, 0, 17, 0, 29, 0, 57, 64, 11, 9, 0, 18, 21, 68, 10, 8, 18,
- 27, 62, 30, 16,244,236, 50,252,236, 50, 49, 64, 14, 9,182, 0, 14,140, 24, 0, 4,140, 18,155, 24,153, 30, 0, 16,228,244,236,
-196, 16,236,182,239, 0,191, 0, 64, 0, 3, 93, 16,236, 48, 1, 38, 39, 38, 35, 34, 7, 6, 7, 5, 33, 22, 23, 22, 51, 50, 55,
- 54, 1, 50, 18, 17, 16, 2, 35, 34, 2, 17, 16, 18, 3,131, 7, 63, 72,141,140, 72, 63, 7, 2, 53,253,203, 6, 64, 72,140,141,
- 72, 64,254,235,233,247,246,234,233,246,246, 3, 60,226,135,153,153,135,226,184,224,137,154,154,137, 4, 56,254,119,254,141,254,
-138,254,121, 1,135, 1,118, 1,115, 1,137, 0, 0, 1, 1, 54, 0, 0, 3,207, 4, 96, 0, 15, 0, 29, 64, 6, 6, 0, 6, 15,
- 13, 16, 16,212,204,252,204, 49, 64, 7, 13,182, 0,194, 6,182, 7, 0, 47,236,244,236, 48, 1, 17, 20, 23, 22, 59, 1, 21, 35,
- 34, 39, 38, 39, 17, 35, 53, 2,196, 34, 36,108, 89,111,180, 82, 81, 1,210, 4, 96,253, 43,145, 46, 48,156, 96, 98,212, 2, 59,
-143, 0, 0, 0,255,255, 0,236, 0, 0, 4,178, 4, 96, 18, 6, 0,250, 0, 0, 0, 1, 0, 68, 0, 0, 4,134, 6, 21, 0, 13,
- 0, 0, 9, 1, 35, 9, 1, 35, 1, 39, 38, 7, 35, 53, 23, 4, 2,130, 2, 4,195,254,198,254,126,195, 1,235, 74, 47,154, 49,
- 70, 1, 18, 5,101,250,155, 3, 60,252,196, 4, 50,198,127, 1,158, 2, 7, 0,255,255, 0,195,254, 84, 4,158, 4, 96, 16, 6,
- 0,119, 0, 0, 0, 1, 0,116, 0, 0, 4, 66, 4, 96, 0, 21, 0, 0, 33, 1, 51, 1, 54, 55, 54, 55, 54, 39, 38, 39, 51, 49,
- 22, 23, 22, 21, 20, 7, 6, 7, 1,202,254,170,198, 1, 33,120,100, 76, 4, 2, 24, 28,106,186, 69, 46, 42,136,177,123, 4, 96,
-252, 84,124,172,129,112, 53,100,119,131, 89,124,114, 78,196,175,228,116, 0, 0, 0, 1, 0,161,254, 82, 4, 56, 6, 20, 0, 38,
- 0, 0, 37, 22, 23, 22, 21, 20, 7, 6, 35, 52, 53, 22, 55, 54, 53, 52, 39, 38, 35, 32, 3, 52, 37, 36, 17, 52, 55, 35, 53, 33,
- 21, 32, 17, 20, 5, 21, 4, 23, 18, 3, 17,132, 79, 84, 74, 80,163, 69, 42, 32, 32, 32, 57,253,146, 1, 1, 77,254,232,220,208,
- 3, 21,253,139, 2, 16,253,199, 1, 2,127, 1, 75, 79,120,115, 80, 87, 75, 76, 5, 44, 35, 37, 53, 44, 42, 1,225,232,112, 36,
- 1, 4,197, 82,185,185,254,221,191, 9,170, 38,220,254,191, 0,255,255, 0,137,255,227, 4, 72, 4,123, 16, 6, 0, 82, 0, 0,
- 0, 1, 0, 80,255,217, 4,158, 4, 96, 0, 23, 0, 0, 19, 33, 21, 35, 17, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 53,
- 17, 33, 17, 35, 17, 35, 80, 4, 49,141, 49, 55, 15, 44, 7, 35, 74, 37,113, 92,254, 84,180,143, 4, 96,184,253, 80, 72, 63, 5,
- 1,133, 13, 12,131,176, 2,156,252, 88, 3,168, 0, 2, 0,190,254, 86, 4, 84, 4,124, 0, 16, 0, 28, 0, 46, 64, 10, 17, 18,
- 4, 71, 23, 10, 6, 12, 70, 29, 16,244,236, 50,252,236, 49, 64, 14, 10, 20, 26,140, 7, 20,140, 0,190, 7,153, 11,195, 29, 0,
- 16,228,228,244,236, 16,238, 17, 57, 48, 1, 54, 23, 22, 17, 16, 2, 35, 34, 38, 39, 17, 35, 17, 16, 55, 54, 1, 52, 38, 35, 34,
- 6, 21, 20, 22, 51, 50, 54, 2,132,232,116,116,232,202,102,153, 44,185,110,131, 1,228,135,133,134,138,138,134,133,135, 4,123,
- 1,158,157,254,234,254,239,254,201, 87, 83,253,201, 3,198, 1, 60,134,157,253,180,214,218,219,213,212,220,218, 0, 1, 0,195,
-254, 82, 4, 37, 4,123, 0, 36, 0, 0, 37, 22, 23, 22, 21, 20, 7, 6, 35, 52, 53, 22, 55, 54, 53, 52, 39, 38, 35, 32, 0, 16,
- 0, 33, 50, 22, 23, 21, 46, 1, 35, 34, 6, 21, 20, 23, 22, 2,236,132, 79, 84, 74, 80,163, 69, 42, 32, 32, 31, 58,254,252,254,
-219, 1, 37, 1, 4, 81,154, 78, 73,147, 93,173,186, 93, 94,127, 1, 75, 79,120,115, 80, 87, 75, 76, 5, 44, 35, 37, 53, 44, 42,
- 1, 56, 2, 40, 1, 56, 42, 44,193, 65, 58,224,208,209,110,111, 0, 2, 0,137,255,226, 4,107, 4, 96, 0, 13, 0, 29, 0, 50,
- 64, 10, 29, 10, 18, 16, 68, 4, 18, 23, 62, 30, 16,244,236,244,236,196,179, 14, 27, 23, 16, 17, 18, 57, 57, 49, 64, 11, 7,140,
- 20, 0, 14,182, 27,194, 20,153, 30, 0, 16,228,244,236, 50, 16,236, 48, 1, 34, 7, 6, 21, 20, 22, 51, 50, 54, 53, 52, 39, 38,
- 55, 22, 17, 20, 7, 6, 39, 34, 2, 17, 16, 55, 54, 51, 33, 21, 2, 97,135, 70, 72,144,140,141,144,172, 60,221,206,151,114,215,
-233,246,123,115,241, 2, 3, 3,167, 80, 83,213,213,219,219,146,249,129, 45, 21,162,254,230,228,167,127, 1, 1, 45, 1, 31, 1,
- 9,153,143,184, 0, 1, 0,159, 0, 0, 4, 50, 4, 94, 0, 17, 0, 33, 64, 7, 13, 3, 15, 6, 12, 10, 18, 16,212,204,252,196,
-204, 49, 0, 64, 8, 15, 11,140, 12,194, 3,182, 4, 47,236,244,236, 50, 48, 37, 22, 59, 1, 21, 35, 34, 39, 38, 53, 17, 33, 53,
- 33, 21, 33, 17, 20, 2,230, 36,108, 89,111,180, 82, 82,254,152, 3,146,254,146,204, 48,156, 96, 98,212, 2, 18,182,182,253,227,
-145, 0, 0, 0, 0, 1, 0, 51,255,255, 4,105, 4, 96, 0, 30, 0, 0, 37, 50, 55, 54, 55, 54, 39, 38, 39, 51, 49, 22, 23, 22,
- 21, 20, 7, 6, 37, 34, 39, 38, 53, 3, 35, 53, 33, 17, 20, 23, 22, 2,116,150, 90, 59, 15, 8, 30, 28,106,186, 70, 45, 42,128,
-133,254,250,180, 82, 82, 1,210, 1,143, 34, 35,156,179,118,187,102,128,119,131, 90,123,115,154,225,203,211, 1, 96, 98,212, 2,
- 59,143,253, 43,145, 46, 48, 0, 0, 2, 0, 76,254, 86, 4,133, 4,104, 0, 10, 0, 41, 0, 79, 64, 13, 7, 18, 15, 19, 3, 6,
- 30, 22, 39, 35, 18, 26, 42, 16,176, 10, 75, 81, 88,220, 27,212, 89,236,212,180, 48, 39,128, 39, 2, 93, 60,196,252, 60,212,180,
- 48, 15,128, 15, 2, 93,236, 49, 64, 16, 3, 39,140, 22, 31, 0,140, 30, 11,190, 19, 22,153, 21,195, 42, 0, 16,236,228, 50,244,
- 60,236, 50, 16,236, 50, 48, 1, 34, 21, 17, 50, 55, 54, 53, 52, 39, 38, 39, 50, 23, 22, 17, 16, 7, 6, 35, 17, 35, 17, 34, 39,
- 38, 17, 16, 55, 54, 55, 21, 6, 7, 6, 21, 20, 23, 22, 51, 17, 16, 3, 5, 65, 92, 86, 77, 77, 71, 42,138,119,127,127,129,193,
-183,199,124,126,126,104,154, 65, 49, 76, 76, 78,101, 3,203,145,253, 82,104, 93,223,221, 99, 91,157,132,141,254,217,254,230,150,
-152,254,110, 1,145,153,155, 1, 20, 1, 44,132,109, 28,163, 26, 75,115,190,216,101,103, 2,175, 1, 46, 0, 0, 0, 1, 0, 89,
-254, 86, 4,120, 4, 96, 0, 23, 0, 0, 5, 3, 1, 35, 1, 3, 38, 43, 1, 53, 51, 32, 23, 19, 1, 51, 1, 19, 22, 59, 1, 21,
- 35, 32, 2,238,142,254,247,191, 1,116,183, 47,156, 49, 70, 1, 0, 67,143, 1, 10,191,254,139,182, 47,157, 49, 70,254,255,250,
- 1,122,253,214, 3, 9, 1,229,126,158,176,254,132, 2, 44,252,244,254, 30,126,158, 0, 0, 0, 0, 1, 0,131,254, 86, 4, 78,
- 4, 96, 0, 27, 0, 0, 37, 54, 55, 54, 53, 17, 51, 17, 20, 7, 6, 7, 17, 35, 17, 38, 39, 38, 53, 17, 51, 17, 20, 23, 22, 23,
- 17, 51, 2,196, 63, 62, 84,185,130,121,143,183,143,121,130,185, 84, 62, 63,183,140, 22, 64, 87,166, 2,129,253,120,216,145,135,
- 1,254,111, 1,145, 1,135,145,216, 2,136,253,127,166, 87, 64, 22, 3,212, 0, 0, 1, 0, 70,255,227, 4,140, 4, 96, 0, 38,
- 0, 0, 1, 18, 16, 7, 6, 35, 34, 38, 39, 14, 1, 35, 34, 39, 38, 16, 19, 51, 2, 17, 6, 23, 22, 55, 54, 55, 54, 17, 51, 16,
- 23, 22, 23, 22, 55, 54, 39, 16, 3, 4, 9,131, 50, 75,186, 85,130, 21, 20,128, 88,186, 75, 50,131,190,126, 1, 18, 41, 64, 86,
- 34, 25,170, 25, 34, 86, 64, 41, 18, 1,126, 4, 96,254,248,253,191,123,185,103, 76, 72,107,185,123, 2, 65, 1, 8,254,237,254,
-225,226, 62,145, 2, 2,111, 82, 1,121,254,135, 82,111, 2, 2,145, 62,226, 1, 31, 1, 19, 0,255,255, 1, 54, 0, 0, 3,207,
- 6, 16, 16, 38, 2,245, 0, 0, 16, 6, 0,106, 0, 0, 0, 0,255,255, 0, 51,255,255, 4,105, 6, 16, 16, 38, 3, 1, 0, 0,
- 16, 6, 0,106, 0, 0, 0, 0,255,255, 0,137,255,227, 4, 72, 6,102, 16, 38, 2,251, 0, 0, 16, 6, 2,195, 0, 0, 0, 0,
-255,255, 0, 51,255,255, 4,105, 6,102, 16, 38, 3, 1, 0, 0, 16, 6, 2,195, 0, 0, 0, 0,255,255, 0, 70,255,227, 4,140,
- 6,102, 16, 38, 3, 5, 0, 0, 16, 6, 2,195, 0, 0, 0, 0, 0, 3, 0,149,255,232, 4, 67, 6, 36, 0, 9, 0, 25, 0, 35,
- 0, 0, 1, 32, 55, 54, 39, 38, 7, 6, 7, 6, 5, 4, 3, 6, 37, 36, 39, 38, 3, 2, 55, 54, 51, 32, 19, 22, 5, 6, 39, 18,
- 23, 22, 55, 54, 55, 54, 1, 93, 1, 12, 78,147, 26, 31,172,142, 73, 53, 1,237, 1,124,192,117,255, 0,254,237,116,102, 10, 9,
-128,134,210, 1, 77, 50, 27,254,142, 67,240, 6, 54, 82,165,175, 54, 87, 3,112, 65,123,137,161, 6, 5,165,122,253,250,254,137,
-225, 12, 15,198,178, 1,151, 1,127,202,212,254,130,205,255, 30, 10,254,253,105,161, 4, 4,152,245, 0, 0, 0, 0, 2, 0,114,
-255,233, 4, 83, 6, 36, 0, 9, 0, 36, 0, 0, 1, 54, 39, 38, 39, 38, 7, 6, 23, 22, 23, 4, 39, 38, 55, 18, 33, 50, 23, 22,
- 3, 2, 7, 6, 35, 34, 39, 38, 19, 23, 18, 23, 22, 51, 50, 55, 54, 3,139, 4, 53, 74,103,172, 31, 26,147, 78,233,254,221,110,
-240, 29, 45, 1, 82,171,135,128, 9, 9,128,137,228,193,159,149, 13,195, 7, 78,114, 94,121,100, 80, 3,112,191,119,166, 4, 6,
-161,137,123, 65,170, 10, 75,164,251, 1,126,212,200,254,127,254,125,198,213,213,200, 1,235, 1,254, 83,106,156,157,126, 0, 0,
- 0, 1, 0, 34, 0, 0, 4,185, 5,225, 0, 27, 0, 0, 1, 6, 3, 6, 21, 17, 35, 17, 52, 39, 2, 39, 38, 7, 53, 54, 23, 4,
- 19, 18, 55, 54, 23, 22, 7, 6, 39, 38, 3,173,113, 79, 42,203, 42,100, 92,116,120, 76,151, 1, 15, 74,115,229,111, 64,122, 56,
- 32,118, 86, 5, 17, 79,254,250,141,165,253,118, 2,138,180,126, 1, 42, 43, 52, 26,170, 24, 27, 48,254,114, 1,137, 53, 26, 49,
- 95,148, 84, 24, 18, 0, 0, 0,255,255,254,112, 0, 0, 4,185, 6,102, 16, 38, 3, 13, 0, 0, 16, 7, 2,195,252,149, 0, 0,
-255,255, 0, 34, 0, 0, 4,185, 7, 78, 16, 38, 3, 13, 0, 0, 16, 7, 11,176, 0, 0, 1,117, 0, 3, 0,109,254, 86, 4,100,
- 5,213, 0, 21, 0, 30, 0, 39, 0, 0, 1, 35, 17, 38, 39, 38, 17, 16, 55, 54, 55, 17, 51, 17, 22, 23, 22, 17, 16, 7, 6, 7,
- 53, 54, 55, 54, 53, 52, 39, 38, 39, 3, 17, 6, 7, 6, 21, 20, 23, 22, 2,196,184,179,104,132,132, 93,190,184,178,105,133,133,
- 94,189, 86, 53, 82, 82, 42, 97,184, 87, 52, 81, 81, 40,254, 86, 1,147, 24,121,150, 1, 31, 1, 14,167,118, 26, 1, 97,254,159,
- 24,120,151,254,226,254,242,167,120, 25,165, 23, 71,110,213,188,135, 70, 25,252,189, 3, 67, 22, 73,109,214,185,138, 68, 0, 0,
- 0, 2, 0, 57,255,255, 4,152, 4, 96, 0, 13, 0, 30, 0, 0, 1, 33, 6, 7, 2, 51, 50, 3, 51, 2, 55, 54, 3, 38, 55, 22,
- 23, 18, 37, 38, 3, 2, 35, 32, 19, 54, 55, 35, 53, 33, 21, 3,146,253,176, 39, 3, 4, 84,177, 5,170, 3,175, 81, 1, 1,157,
- 48, 6, 14,254,228,238, 39, 40,237,254,231, 11, 4, 48, 65, 4, 95, 3,168,144,253,254,171, 1,211,254, 43, 2, 1, 1, 84,253,
-144,145,247,253,223, 1, 1, 1, 51,254,204, 2, 32,239,153,184,184, 0, 0, 0, 0, 1, 0, 51,254, 91, 4,146, 4,103, 0, 47,
- 0, 0, 5, 38, 39, 38, 55, 7, 2, 7, 6, 39, 38, 55, 54, 55, 54, 39, 38, 35, 34, 7, 53, 54, 23, 22, 23, 22, 7, 55, 18, 55,
- 54, 23, 22, 7, 6, 7, 6, 23, 22, 51, 50, 55, 2, 7, 6, 39, 53, 4, 3,189,246, 33, 21, 24,189, 96,200,141, 3, 1, 61, 96,
-136, 91, 43, 26,142, 57, 91, 82,126,246, 33, 19, 42,189, 96,200,141, 3, 1, 61, 96,136, 91, 43, 26,142, 57, 91, 38,205,152,173,
- 1, 55, 10, 32,240,156, 99,108,254,247,124, 89,145, 68, 84,132,124,203,169,104,108,224, 61, 17, 34,238,140,112,108, 1, 9,124,
- 89,145, 68, 84,132,124,203,169,104,108,253,224,102, 77, 90,160,160, 0, 0, 0, 0, 2, 0,117,254, 86, 4, 92, 5,240, 0, 10,
- 0, 27, 0, 0, 0, 16, 2, 35, 34, 2, 17, 16, 18, 51, 50, 1, 17, 38, 39, 38, 17, 16, 18, 51, 50, 18, 17, 16, 7, 6, 7, 17,
- 3,137,135,154,153,135,135,153,154,255, 0,179, 95,123,247,252,253,247,124, 94,181, 1,160, 2,146, 1, 26,254,230,254,183,254,
-184,254,230,253,207, 1,150, 34,148,191, 1,136, 1,135, 1,128,254,128,254,121,254,124,194,149, 34,254,106, 0, 0, 2, 0,137,
-254, 86, 4, 72, 4,123, 0, 11, 0, 27, 0, 0, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 3, 17, 35, 17, 38, 39, 38, 17,
- 16, 18, 32, 18, 17, 16, 7, 6, 2,104,140,144,144,140,141,144,144, 49,184,168, 96,123,246, 1,210,247,123, 95, 3,223,218,214,
-213,219,219,213,214,218,252, 10,254,109, 1,147, 26,119,150, 1, 31, 1, 30, 1, 46,254,210,254,226,254,225,150,118, 0, 0, 0,
- 0, 1, 0,139,254, 82, 4, 76, 5,213, 0, 35, 0, 0, 1, 34, 7, 6, 17, 16, 18, 51, 50, 23, 22, 21, 20, 7, 6, 35, 52, 53,
- 22, 55, 54, 53, 52, 39, 38, 35, 34, 39, 38, 17, 16, 55, 54, 41, 1, 21, 2,231,218, 77, 98,176,129,122, 89, 84, 74, 80,163, 69,
- 42, 32, 32, 32, 57,234,159,123,159,139, 1, 50, 1,101, 5, 43,119,152,254,205,254,206,254,208, 84, 79,120,115, 80, 87, 75, 76,
- 5, 44, 35, 37, 53, 44, 42,203,158, 1,157, 1,110,205,177,170, 0, 1, 0,155,254, 82, 4, 41, 4, 96, 0, 35, 0, 0, 1, 33,
- 34, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 35, 52, 53, 22, 55, 54, 53, 52, 39, 38, 35, 34, 0, 17, 16, 55, 54,
- 41, 1, 4, 41,254,155,193, 73, 93, 93, 95, 98,133, 78, 84, 74, 80,163, 69, 42, 32, 32, 32, 57,187,254,219,147,138, 1, 12, 1,
-101, 3,196, 85,108,212,209,110,111, 2, 2, 74, 79,120,115, 80, 87, 75, 76, 5, 44, 35, 37, 53, 44, 42, 1, 56, 1, 20, 1, 40,
-136,129, 0, 0,255,255, 0,233, 0, 0, 4, 88, 5,213, 18, 6, 0, 41, 0, 0, 0, 1, 0, 0,254, 86, 4, 6, 6, 20, 0, 35,
- 0, 0, 33, 17, 52, 55, 54, 51, 50, 22, 23, 21, 46, 1, 35, 34, 7, 6, 21, 17, 33, 21, 33, 17, 20, 7, 6, 35, 34, 38, 39, 53,
- 30, 1, 51, 50, 55, 54, 1,174,136, 96,169, 49, 99, 51, 36, 82, 44,120, 58, 75, 1, 65,254,191,139, 98,173, 57,102, 46, 49,100,
- 48, 87, 64, 82, 4,130,160,142,100, 18, 18,164, 28, 29, 62, 81,111,254,201,143,253, 63,146,165,115, 21, 22,164, 31, 33, 75, 95,
- 0, 1, 0, 96,255,252, 4,129, 5,213, 0, 23, 0, 0, 1, 3, 1, 3, 6, 23, 22, 55, 21, 34, 39, 38, 55, 19, 1, 19, 54, 39,
- 38, 7, 53, 50, 23, 22, 1,227,110, 3, 12,234, 39, 27, 66,131,230, 81, 95, 19,154,253, 6,172, 39, 27, 66,131,230, 81, 95, 4,
-135,254, 91, 1,126,253, 44, 96, 42,108, 35,189, 70, 82,182, 1,218,254,145, 2,144, 96, 42,108, 35,189, 70, 82, 0, 1, 0,132,
- 0, 0, 4, 77, 6, 19, 0, 7, 0, 0, 9, 1, 35, 19, 33, 1, 51, 3, 4, 77,254,231,184,226,253, 38, 1, 25,184,226, 3,112,
-252,144, 2,198, 3, 77,253, 93, 0, 1, 0, 33,254, 86, 4,154, 5,241, 0, 33, 0, 0, 1, 17, 35, 17, 6, 7, 53, 54, 5, 4,
- 19, 18, 17, 16, 3, 35, 18, 17, 16, 39, 48, 7, 6, 21, 17, 35, 48, 17, 16, 63, 1, 38, 39, 38, 1,129,170, 98, 84,155, 1, 5,
- 1, 66,215,192,224,225,238, 60,102, 90,203,208,112,140,157, 75, 5, 75,253,140, 2, 73, 10, 77,198,102, 5, 7,254,213,254,241,
-253,189,254, 55,254,179, 1, 76, 1,202, 1,243, 91, 79, 70,235,253,198, 2, 53, 1, 2,177, 96,182, 52, 25, 0, 0, 1, 0, 89,
-254,144, 4,120, 4,120, 0, 22, 0, 0, 1, 3, 35, 1, 38, 39, 1, 35, 1, 38, 39, 38, 35, 53, 32, 23, 22, 19, 18, 17, 35, 16,
- 39, 3, 80,239,185, 1,100, 14, 50,254, 70,185, 2, 31, 98, 46,188,211, 1, 45,242,224,172,116,168, 96, 1, 52,254,204, 1,192,
- 35, 77,253,208, 2,176,127, 33,132,164,216,200,254, 80,254,223,254,137, 1, 94,246, 0, 0, 0, 0, 1, 0, 52,255,242, 4,145,
- 4,103, 0, 51, 0, 0, 1, 2, 7, 6, 35, 34, 53, 52, 1, 54, 53, 52, 39, 38, 35, 34, 7, 53, 54, 51, 50, 23, 4, 17, 20, 7,
- 55, 18, 55, 54, 51, 50, 21, 20, 1, 6, 21, 20, 23, 22, 51, 50, 55, 21, 6, 35, 34, 39, 36, 17, 52, 55, 1,236, 96,200, 55, 34,
- 55, 1, 36, 62, 14, 26,142, 57, 91, 64, 91, 26, 27, 1, 29, 29,189, 96,200, 55, 34, 55,254,220, 62, 14, 26,142, 57, 91, 64, 91,
- 26, 27,254,227, 29, 1,153,254,247,124, 34, 79,154, 1, 9,138,122, 58, 54,104,108,224, 48, 4, 37,254,193, 91, 77,108, 1, 9,
-124, 34, 79,154,254,247,138,122, 58, 54,104,108,224, 48, 4, 37, 1, 63, 91, 77, 0, 2, 0,190,254, 86, 4, 84, 4,124, 0, 21,
- 0, 32, 0, 0, 19, 16, 55, 54, 51, 54, 23, 22, 17, 16, 2, 35, 34, 38, 39, 18, 41, 1, 21, 33, 32, 17, 36, 16, 38, 35, 34, 6,
- 21, 20, 22, 51, 50,190,110,129,215,232,116,116,232,202,102,153, 44, 5, 1, 28, 1,168,254,104,254, 22, 2,213,135,133,134,138,
-138,134,133, 2, 28, 1, 60,134,157, 1,158,157,254,234,254,239,254,201, 87, 83,254,115,170, 2,218, 41, 1,172,218,219,213,212,
-220, 0, 0, 0,255,255, 0,195,255,227, 4, 37, 4,123, 18, 6, 0, 70, 0, 0,255,255, 0,186,254, 86, 3, 16, 6, 20, 18, 6,
- 0, 77, 0, 0, 0, 3, 0,117,255,227, 4, 92, 5,240, 0, 8, 0, 17, 0, 28, 0, 0, 1, 38, 39, 38, 35, 34, 7, 6, 7, 5,
- 33, 18, 23, 22, 51, 50, 55, 54, 19, 16, 2, 32, 2, 17, 16, 18, 51, 50, 18, 3,134, 11, 53, 68,154,153, 67, 54, 11, 2, 62,253,
-191, 2, 66, 67,153,154, 68, 64,214,247,254, 6,246,247,252,253,247, 3,113,223,111,141,141,112,222,170,254,213,136,141,141,134,
- 1, 79,254,122,254,128, 1,126, 1,136, 1,135, 1,128,254,128, 0, 1, 0,162,255,227, 4, 9, 4,123, 0, 33, 0, 0, 1, 38,
- 39, 38, 35, 34, 7, 6, 7, 33, 21, 33, 22, 23, 22, 51, 50, 63, 1, 21, 7, 6, 35, 32, 39, 38, 16, 55, 54, 33, 50, 23, 22, 23,
- 4, 9, 37, 37, 99,106,183,102, 95, 18, 2,165,253, 91, 18, 95,102,183,128, 77, 74, 79,104,107,254,244,156,157,157,156, 1, 12,
-101,110, 40, 39, 3,174, 13, 10, 26, 99, 92,169,144,169, 92, 99, 26, 25,167, 18, 22,156,156, 2, 40,156,156, 22, 8, 12, 0, 0,
- 0, 1, 0,162,255,227, 4, 9, 4,123, 0, 34, 0, 0, 19, 48, 53, 54, 55, 54, 51, 32, 23, 22, 16, 7, 6, 33, 34, 47, 1, 53,
- 23, 22, 51, 50, 55, 54, 55, 33, 53, 33, 38, 39, 38, 35, 34, 7, 6,162, 39, 40,110,101, 1, 12,156,157,157,156,254,244,107,104,
- 79, 74, 77,128,183,102, 95, 18,253, 91, 2,165, 18, 95,102,183,106, 99, 37, 3,174,163, 12, 8, 22,156,156,253,216,156,156, 22,
- 18,167, 25, 26, 99, 92,169,144,169, 92, 99, 26, 10, 0, 0, 0,255,255, 0,201, 0, 0, 4,141, 5,213, 18, 6, 0,160, 0, 0,
-255,255, 0,190,254, 86, 4, 84, 6, 31, 18, 6, 0,192, 0, 0,255,255, 0,139,255,227, 4, 49, 5,240, 18, 6, 0, 38, 0, 0,
- 0, 1, 0, 86, 0, 0, 4,121, 5,213, 0, 12, 0, 0, 19, 33, 9, 1, 33, 17, 35, 17, 1, 35, 1, 17, 35, 86, 1, 14, 1, 2,
- 1, 4, 1, 15,187,254,246,153,254,245,186, 5,213,254,123, 1,133,250, 43, 5, 39,254, 96, 1,160,250,217, 0, 0, 1, 0,127,
-254, 86, 4, 79, 4, 96, 0, 12, 0, 0, 19, 33, 27, 1, 33, 17, 35, 17, 3, 35, 3, 17, 35,127, 1, 27,204,206, 1, 27,185,226,
-153,227,185, 4, 96,254,123, 1,133,251,160, 3,178,254, 96, 1,160,250,164, 0, 0, 2, 0, 85,254, 86, 4, 84, 4,124, 0, 24,
- 0, 35, 0, 0, 1, 21, 35, 53, 35, 53, 51, 17, 16, 55, 54, 51, 54, 23, 22, 17, 16, 2, 35, 34, 38, 39, 17, 33, 21, 18, 16, 38,
- 35, 34, 6, 21, 20, 22, 51, 50, 1,119,185,105,105,110,131,213,232,116,116,232,202,102,153, 44, 1,225, 59,135,133,134,138,138,
-134,133,254,198,112,112,170, 2,172, 1, 62,132,157, 1,158,157,254,234,254,239,254,201, 87, 83,254,227,170, 2,147, 1,172,218,
-219,213,212,220, 0, 1, 0,139,255,227, 4, 49, 5,240, 0, 25, 0, 0, 55, 53, 30, 1, 51, 50, 18, 17, 16, 2, 35, 34, 6, 7,
- 53, 62, 1, 51, 32, 0, 17, 16, 0, 33, 34, 38,139, 73,169, 88,197,196,196,197, 86,170, 74, 77,162, 91, 1, 29, 1, 63,254,195,
-254,225, 91,162, 53,207, 61, 64, 1, 48, 1, 50, 1, 51, 1, 48, 64, 61,207, 41, 41,254,103,254,146,254,144,254,106, 41, 0, 0,
-255,255, 0,139,255,227, 4, 49, 5,240, 18, 38, 3, 38, 0, 0, 16, 7, 0,121, 0,139, 0, 0,255,255, 0,139,255,227, 4, 49,
- 5,240, 16, 39, 0,121,255, 99, 0, 0, 16, 6, 3, 42, 0, 0,255,255, 0,197, 0, 0, 4, 78, 7,107, 16, 39, 11,179, 0, 0,
- 1,117, 16, 6, 3, 66, 0, 0,255,255, 0,197, 0, 0, 4, 78, 7, 78, 16, 39, 11,176, 0, 56, 1,117, 16, 6, 3, 66, 0, 0,
- 0, 1,255,190,254, 42, 4,111, 5,215, 0, 47, 0, 0, 1, 23, 22, 51, 50, 54, 53, 17, 52, 38, 35, 34, 7, 6, 7, 6, 21, 17,
- 35, 17, 35, 53, 33, 21, 33, 17, 54, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 17, 16, 7, 6, 35, 34, 39, 52, 2, 61,
- 78, 13, 12,143,113,106,113,106, 87, 46, 22, 69,203,246, 3,126,254, 67, 37, 48, 34, 14, 64,149, 26, 22,160, 88, 14, 11, 85,107,
-105,247, 83, 17,254,225, 17, 2,149,203, 1,160,151,142, 42, 21, 28, 92,171,254,111, 5, 45,170,170,253,243, 42, 24, 17, 9, 37,
- 10, 2, 84, 13, 16,112,228,254, 70,254,232,119,117, 2, 2, 0,255,255, 0,215, 0, 0, 4,115, 7,107, 16, 39, 11,177, 0, 72,
- 1,117, 16, 6, 3, 64, 0, 0, 0, 1, 0,139,255,227, 4, 49, 5,240, 0, 24, 0, 76, 64, 33, 0,151, 22,177, 25, 5,179, 6,
-178, 3,151, 8, 17,179, 16,178, 19,151, 14,150, 8,153, 25, 23, 0, 22, 50, 17, 6, 49, 11, 48, 25, 16,252,236, 50,252, 50,204,
- 49, 0, 16,228,244,236,244,236, 16,238,246,238, 16,252,238,177, 22, 19, 73,177, 3, 0, 73, 80, 88,179, 22, 0, 64, 2, 23, 56,
- 89, 48, 1, 22, 18, 51, 50, 55, 21, 6, 35, 32, 0, 17, 16, 0, 33, 50, 23, 21, 38, 35, 34, 2, 3, 33, 21, 1, 94, 4,192,189,
-188,150,154,176,254,225,254,195, 1, 63, 1, 29,176,154,152,190,190,163, 23, 2,115, 2,149,228,254,214,125,207, 82, 1,150, 1,
-111, 1,111, 1,153, 82,207,125,254,244,254,255,170, 0, 0, 0,255,255, 0,139,255,227, 4, 74, 5,240, 16, 6, 0, 54, 0, 0,
-255,255, 0,201, 0, 0, 4, 6, 5,213, 16, 6, 0, 44, 0, 0,255,255, 0,201, 0, 0, 4, 6, 7, 78, 16, 38, 3, 51, 0, 0,
- 17, 7, 11,176, 0, 0, 1,117, 0, 8,180, 1, 18, 15, 0, 7, 43, 49, 0, 0,255,255, 0,109,255,227, 3,188, 5,213, 16, 6,
- 0, 45, 0, 0, 0, 2,255,237, 0, 0, 4,199, 5,213, 0, 7, 0, 29, 0, 0, 37, 51, 50, 54, 16, 38, 43, 1, 25, 1, 51, 50,
- 4, 16, 4, 43, 1, 17, 35, 21, 16, 2, 6, 35, 53, 50, 54, 18, 25, 1, 3, 33, 21, 90,125,121, 94, 21, 21,144, 1, 1,254,254,
-143,207,172, 24,202,236,138,118, 20,166,142, 1, 14,149, 2,254,253,168,226,254, 72,227, 5, 43,250,254,198,253,247,238,164,143,
- 1,161, 1, 87, 1,170, 0, 0, 0, 2, 0, 34, 0, 0, 4,199, 5,213, 0, 8, 0, 28, 0, 0, 37, 51, 50, 54, 53, 52, 38, 43,
- 1, 3, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 51, 50, 23, 22, 21, 20, 4, 35, 3, 33, 21, 90,125,120, 95, 21,186,254,117,
-186,186, 1,139,186, 21,179,119,103,254,254,143,166,142,130,140,149,253, 41, 2,199,253, 57, 5,213,253,156, 2,100,253,168,113,
- 99,234,220,227, 0, 1,255,190, 0, 0, 4,111, 5,215, 0, 34, 0, 0, 1, 17, 54, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23,
- 22, 21, 17, 35, 17, 52, 38, 35, 34, 7, 6, 7, 6, 21, 17, 35, 17, 35, 53, 33, 21, 1,127, 37, 48, 34, 14, 64,149, 26, 22,160,
- 88, 14, 11, 85,203,106,113,106, 87, 46, 22, 69,203,246, 3,126, 5, 45,253,243, 42, 24, 17, 9, 37, 10, 2, 84, 13, 16,112,228,
-254, 24, 1,206,151,142, 42, 21, 28, 92,171,254,111, 5, 45,170,170, 0, 0, 0,255,255, 0,137, 0, 0, 4,201, 7,107, 16, 39,
- 11,177, 0, 27, 1,117, 16, 6, 3, 71, 0, 0,255,255, 0,139, 0, 0, 4, 70, 7,107, 16, 39, 11,179, 0, 0, 1,117, 16, 6,
- 3, 69, 0, 0,255,255, 0,104, 0, 0, 4,129, 7,109, 16, 38, 11,184, 0, 0, 16, 6, 3, 80, 0, 0, 0, 0, 0, 1, 0,137,
-254,190, 4, 72, 5,213, 0, 11, 0, 0, 51, 17, 51, 17, 33, 17, 51, 17, 33, 17, 35, 17,137,203, 2, 41,203,254,118,171, 5,213,
-250,213, 5, 43,250, 43,254,190, 1, 66, 0, 0,255,255, 0, 37, 0, 0, 4,172, 5,213, 16, 6, 0, 36, 0, 0, 0, 2, 0,166,
- 0, 0, 4,113, 5,213, 0, 8, 0, 23, 0, 50, 64, 28, 0,151, 12, 9,151, 22,136, 1,151, 12, 20, 20, 12, 8, 2, 4, 0, 23,
- 5, 50, 16, 49, 10, 0, 30, 22, 48, 24, 16,252,236, 50,252,236,196, 17, 23, 57, 49, 0, 47,204,236,244,236, 16,236, 48, 1, 17,
- 51, 50, 54, 53, 52, 38, 35, 1, 33, 17, 51, 4, 23, 22, 21, 20, 7, 6, 41, 1, 17, 33, 1,113,239,176,150,158,168, 1,204,253,
- 69,235, 1,123,101, 53,133,133,254,249,254, 70, 3,134, 2,201,253,221,123,141,146,137, 2,102,254, 62, 15,191,100,161,203,103,
-104, 5,213, 0,255,255, 0,166, 0, 0, 4,113, 5,213, 16, 6, 0, 37, 0, 0, 0, 1, 0,215, 0, 0, 4,115, 5,213, 0, 5,
- 0, 24,182, 2, 49, 4, 30, 1, 52, 6, 16,252,236,236, 49, 0,180, 3,151, 1,136, 5, 47,244,236, 48, 51, 17, 33, 21, 33, 17,
-215, 3,156,253, 47, 5,213,170,250,213, 0, 0, 0, 2, 0, 33,254,190, 4,176, 5,213, 0, 15, 0, 26, 0, 48, 64, 13, 4, 30,
- 1, 16, 30, 15, 18, 30, 13, 5, 30, 8, 27, 16,212,236,220,236,212,236,220,236, 49, 0, 64, 11, 17,151, 14,136, 1, 26, 8,151,
- 3, 7, 5, 47,204, 50,236, 50, 50,244,236, 48, 37, 51, 17, 35, 17, 33, 17, 35, 17, 51, 50, 19, 18, 25, 1, 33, 7, 33, 17, 20,
- 3, 2, 6, 21, 20, 51, 33, 4, 55,121,170,252,197,170, 77, 48, 39, 30, 3, 84,203,254, 66, 28, 27, 11, 47, 1,209,170,254, 20,
- 1, 66,254,190, 1,236, 1, 76, 1, 0, 1, 13, 1,210,170,254,215,224,254,225,254,225, 28, 8, 22, 0, 0, 0,255,255, 0,197,
- 0, 0, 4, 78, 5,213, 16, 6, 0, 40, 0, 0, 0, 1, 0, 15, 0, 0, 4,194, 5,213, 0, 19, 0,120, 64, 11, 8, 5, 4, 3,
- 6, 9, 1, 30, 12, 0, 20, 16,220, 60,252, 60,192, 23, 57, 49, 0, 64, 12, 66, 8, 5, 2, 3, 17, 3, 0,180, 15, 10, 6, 47,
- 60, 60,236, 50, 50, 23, 57, 48, 75, 83, 88, 64, 9, 8, 37, 9, 8, 5, 7, 37, 6, 5, 7, 5,237, 16, 8,237, 89, 1, 64, 19,
- 13, 0, 8, 14, 0, 7, 15, 0, 6, 16, 0, 5, 17, 0, 4, 18, 0, 3, 1, 16, 73, 58, 73, 58, 73, 58, 73, 58, 73, 58, 73, 58,
- 0,183, 12, 9, 13, 8, 16, 5, 19, 2, 16, 60, 16, 60, 16, 60, 16, 60, 1, 51, 17, 1, 51, 9, 1, 35, 3, 7, 17, 35, 17, 39,
- 3, 35, 9, 1, 51, 1, 2, 11,187, 1, 28,207,254,225, 1, 48,197,222, 89,187, 89,222,197, 1, 48,254,225,207, 1, 28, 5,213,
-253,173, 2, 83,253,166,252,133, 2,138,186,254, 48, 1,208,186,253,118, 3,123, 2, 90,253,173,255,255, 0,137,255,227, 4, 55,
- 5,240, 16, 6, 0, 22, 0, 0, 0, 1, 0,139, 0, 0, 4, 70, 5,213, 0, 9, 0, 60, 64, 28, 8, 4, 3, 4, 3, 9, 8, 9,
- 66, 8, 2, 3, 5,180, 7, 0, 9, 4, 3, 8, 17, 6, 49, 3, 17, 1, 48, 10, 16,252,236,252,236, 17, 57, 57, 49, 0, 47, 60,
-236, 50, 57, 57, 48, 75, 83, 88, 7, 16, 4,201, 7, 16, 4,201, 89, 34, 51, 17, 51, 17, 1, 33, 17, 35, 17, 1,139,195, 1,248,
- 1, 0,195,254, 8, 5,213,251, 51, 4,205,250, 43, 4,205,251, 51, 0, 0, 0,255,255, 0,139, 0, 0, 4, 70, 7,109, 16, 38,
- 11,184, 0, 0, 16, 6, 3, 69, 0, 0, 0, 0,255,255, 0,137, 0, 0, 4,201, 5,213, 16, 6, 0, 46, 0, 0, 0, 1, 0, 4,
- 0, 0, 4, 70, 5,213, 0, 15, 0, 36, 64, 8, 15, 30, 12, 1, 30, 10, 6, 16, 16,212,220,236,212,236, 49, 0, 64, 9, 6,151,
- 5, 0,151, 11,136, 14, 5, 47, 60,244,236, 16,236, 48, 1, 21, 16, 2, 6, 35, 53, 50, 54, 18, 25, 1, 33, 17, 35, 17, 1,227,
- 23,203,253,138,118, 20, 3, 46,203, 5, 43,250,254,187,254, 2,238,164,143, 1,161, 1, 87, 1,170,250, 43, 5, 43, 0, 0, 0,
-255,255, 0, 86, 0, 0, 4,121, 5,213, 16, 6, 0, 48, 0, 0,255,255, 0,137, 0, 0, 4, 72, 5,213, 16, 6, 0, 43, 0, 0,
-255,255, 0,117,255,227, 4, 92, 5,240, 16, 6, 0, 50, 0, 0, 0, 1, 0,137, 0, 0, 4, 72, 5,213, 0, 7, 0, 30, 64, 9,
- 4, 30, 1, 49, 5, 30, 0, 48, 8, 16,252,236,252,236, 49, 0,181, 4,151, 0,136, 6, 2, 47, 60,244,236, 48, 19, 33, 17, 35,
- 17, 33, 17, 35,137, 3,191,203,253,215,203, 5,213,250, 43, 5, 43,250,213, 0,255,255, 0,197, 0, 0, 4,117, 5,213, 16, 6,
- 0, 51, 0, 0,255,255, 0,139,255,227, 4, 49, 5,240, 16, 6, 0, 38, 0, 0,255,255, 0, 47, 0, 0, 4,162, 5,213, 16, 6,
- 0, 55, 0, 0, 0, 1, 0,104, 0, 0, 4,129, 5,213, 0, 20, 0, 63, 64, 13, 66, 8,151, 7,153, 19, 16,136, 21, 20, 8, 16,
- 21, 16,212,196,196, 49, 0, 16,228, 50,244,236, 48, 75, 83, 88, 64, 18, 18, 37, 0, 16, 15, 19, 37, 20, 20, 0, 18, 37, 15, 17,
- 37, 16, 16, 15, 5, 7, 16,236, 16,236, 7, 16,236, 8, 16,236, 89, 1, 6, 7, 6, 7, 6, 43, 1, 53, 51, 50, 55, 54, 55, 54,
- 55, 1, 51, 9, 1, 51, 2,229, 59, 69, 44, 76, 69, 92,148,109, 81, 46, 45, 34, 14, 15,254, 88,217, 1, 55, 1, 52,213, 1,169,
-158,111, 74, 43, 39,172, 47, 46, 77, 32, 42, 4, 53,252,194, 3, 62, 0, 0, 0, 0, 3, 0, 66, 0, 0, 4,143, 5,213, 0, 6,
- 0, 24, 0, 31, 0,103, 64, 15, 28, 50, 12, 15, 31, 9, 30, 24, 4, 50, 21, 18, 1, 24, 32, 16,212, 60, 60,212,236, 16,252, 60,
- 60,212,236, 49, 0, 64, 14, 31, 1,151, 9, 24, 7,136, 17, 25, 0,151, 15, 18, 17, 47,220, 60,236, 50, 16,244,220, 60,236, 50,
- 48, 1,176, 13, 75, 84,176, 16, 75, 84, 91,176, 21, 75, 84, 91,176, 25, 75, 84, 91, 88,191, 0, 33, 0, 32,255,192, 0, 2, 0,
- 0, 0, 32, 0, 32, 0, 64, 56, 18, 54, 23, 56, 89, 1, 17, 14, 1, 21, 20, 22, 19, 51, 21, 4, 18, 17, 16, 2, 5, 21, 35, 53,
- 38, 2, 17, 16, 18, 37, 19, 62, 1, 53, 52, 38, 39, 2, 3,165, 73, 73,165,203, 1, 11,182,182,254,245,203,250,199,184, 1, 9,
-203,165, 73, 73,165, 1, 60, 3,123, 26,220,199,200,220, 4,127,122, 10,254,170,254,255,254,252,254,172, 10,152,152, 10, 1, 87,
- 1, 1, 1, 4, 1, 83, 10,251,225, 26,220,200,199,220, 26, 0,255,255, 0, 18, 0, 0, 4,190, 5,213, 16, 6, 0, 59, 0, 0,
- 0, 1, 0, 80,254,190, 4,149, 5,213, 0, 11, 0, 36, 64, 18, 6, 2,136, 10, 8, 4,151, 11, 11, 30, 8, 4, 30, 6, 3, 30,
- 0, 12, 16,212,236,212,236,220,236, 49, 0, 47,236, 50,204,236, 50, 48, 51, 17, 51, 17, 33, 17, 51, 17, 51, 17, 35, 17, 80,203,
- 2, 41,203,134,170, 5,213,250,213, 5, 43,250,213,254, 20, 1, 66, 0, 0, 0, 0, 1, 0,137, 0, 0, 4, 68, 5,213, 0, 19,
- 0, 32, 64, 16, 17,151, 6, 1, 10,136, 13, 14, 9, 30, 11, 3, 30, 0, 48, 20, 16,252,236,212,236, 50, 49, 0, 47,236, 50,220,
-236, 48, 19, 17, 51, 17, 20, 22, 51, 50, 54, 55, 17, 51, 17, 35, 17, 14, 1, 35, 34, 38,137,203,110,109,117,122, 91,203,203,118,
-150,126,183,175, 3,212, 2, 1,254, 25,163, 80, 29, 69, 2,120,250, 43, 2,146, 58, 23,196, 0, 0, 1, 0,114, 0, 0, 4, 96,
- 5,213, 0, 11, 0, 38, 64, 10, 11, 30, 10, 8, 30, 6, 3, 30, 1, 12, 16,212,236,220,236,220,236, 49, 0, 64, 8, 6, 11, 2,
-136, 8, 4,151, 1, 47,236, 50,252, 60, 60, 48, 41, 1, 17, 51, 17, 51, 17, 51, 17, 51, 17, 51, 4, 96,252, 18,186,224,186,224,
-186, 5,213,250,213, 5, 43,250,213, 5, 43, 0, 0, 1, 0, 60,254,190, 4,176, 5,213, 0, 15, 0, 47, 64, 13, 15, 30, 12, 11,
- 30, 9, 7, 30, 5, 3, 30, 1, 16, 16,212,236,220,236,220,252,220,236, 49, 0, 64, 10, 6, 9, 2,136, 11, 8, 4,151, 14, 0,
- 47,204,236, 50, 50,252, 60, 60, 48, 51, 17, 51, 17, 51, 17, 51, 17, 51, 17, 51, 17, 51, 17, 35, 17, 60,186,224,186,224,186,134,
-170, 5,213,250,213, 5, 43,250,213, 5, 43,250,213,254, 20, 1, 66, 0, 0, 0, 0, 2, 0, 32, 0, 0, 4,117, 5,213, 0, 8,
- 0, 21, 0, 42, 64, 9, 4, 50, 18, 14, 0, 30, 9, 11, 22, 16,212,220,236, 50, 47,236, 49, 0, 64, 12, 14,151, 8,177, 22, 10,
-182, 13,136, 0,151, 9, 47,236,244,236, 16,244,236, 48, 37, 51, 50, 54, 53, 52, 38, 43, 1, 3, 17, 33, 53, 33, 17, 51, 50, 4,
- 21, 20, 4, 35, 1,239,138,141,156,157,140,138,202,254,251, 1,207,138,251, 1, 1,254,254,250,166,147,133,133,148,253, 41, 5,
- 43,170,253,168,226,221,219,227, 0, 3, 0, 65, 0, 0, 4,110, 5,213, 0, 3, 0, 13, 0, 24, 0, 44, 64, 11, 3, 30, 0, 9,
- 50, 21, 17, 4, 30, 14, 25, 16,212,236, 50, 47,236,220,236, 49, 0, 64, 11, 17,151, 13,177, 4,151, 1, 15,136, 14, 0, 47, 60,
-228, 50,236,244,236, 48, 33, 17, 51, 17, 37, 51, 50, 55, 54, 53, 52, 38, 43, 1, 3, 17, 51, 17, 51, 50, 4, 21, 20, 4, 35, 3,
-163,203,252,157, 91,102, 78, 60,121,119, 91,202,202, 91,194, 1, 1,254,254,193, 5,213,250, 43,166, 74, 56,150,133,148,253, 41,
- 5,213,253,168,226,221,219,227, 0, 2, 0,197, 0, 0, 4,117, 5,213, 0, 8, 0, 21, 0, 43, 64, 24, 8,151, 12, 0,151, 10,
-136, 9, 21, 13, 1, 7, 4, 0, 4, 50, 17, 56, 0, 12, 30, 10, 51, 22, 16,252,236, 50,252,236, 17, 23, 57, 49, 0, 47,228,236,
-212,236, 48, 37, 51, 50, 54, 53, 52, 38, 43, 1, 3, 17, 51, 17, 51, 50, 23, 22, 21, 20, 7, 6, 35, 1,143,234,141,156,157,140,
-234,202,202,234,251,128,129,129,129,250,166,147,133,133,148,253, 41, 5,213,253,168,113,113,221,219,113,114, 0, 0, 1, 0,139,
-255,227, 4, 49, 5,240, 0, 27, 0, 77, 64, 9, 11, 9, 12, 50, 25, 49, 19, 2, 29, 16,220, 60,244,236, 50,196, 49, 0, 64, 23,
- 9,151, 12,177, 29, 3,179, 2,178, 5,151, 0, 18,179, 19,178, 16,151, 21,150, 0,153, 28, 16,228,244,236,244,236, 16,238,246,
-238, 16,252,238,177, 12, 16, 73,177, 5, 9, 73, 80, 88,179, 9, 12, 64, 2, 23, 56, 89, 48, 5, 34, 39, 53, 22, 51, 50, 55, 54,
- 55, 33, 53, 33, 2, 39, 38, 35, 34, 7, 53, 54, 51, 32, 23, 22, 16, 7, 6, 1,213,176,154,150,188,189, 96, 95, 5,253,136, 2,
-115, 30, 63, 98,188,187,152,154,176, 1, 29,160,159,159,158, 29, 82,207,125,147,148,231,170, 1, 20, 97,152,125,207, 82,204,205,
-253, 34,203,203, 0, 2, 0, 60,255,227, 4,149, 5,240, 0, 11, 0, 30, 0, 64, 64, 36, 24, 23, 15, 14, 4, 16, 22, 3,151, 16,
-150, 9,151, 22,153, 28, 26,151, 12,177, 30,136, 28, 0, 30, 19, 28, 5, 30, 25, 13, 26, 12, 30, 28, 31, 16,212,236, 50,212, 50,
-236, 16,212,236, 49, 0, 47,228,252,238, 16,228,238,244,236, 17, 18, 23, 57, 48, 1, 16, 2, 35, 34, 2, 17, 16, 18, 51, 50, 18,
- 1, 51, 26, 1, 51, 50, 18, 17, 16, 2, 35, 34, 2, 3, 35, 17, 35, 17, 51, 3,207, 95,107,107, 95, 95,107,107, 95,253, 56,111,
- 10,187,202,202,198,198,202,203,186, 10,111,203,203, 2,233, 1, 73, 1, 26,254,230,254,183,254,184,254,230, 1, 25, 1,164, 1,
- 67, 1,105,254,128,254,121,254,122,254,128, 1,106, 1, 77,253,102, 5,213, 0, 0, 2, 0, 76, 0, 0, 4,109, 5,213, 0, 8,
- 0, 22, 0, 67, 64, 13, 10, 20, 0, 5, 20, 30, 17, 49, 0, 50, 13, 9, 23, 16,212,212,236,244,236, 50, 18, 17, 57, 49, 0, 64,
- 11, 66, 10, 4,151, 21, 5,151, 17,136, 19, 9, 47, 60,244,236,212,236, 57, 48, 75, 83, 88,183, 21, 37, 10, 22, 37, 9, 9, 10,
- 7, 16, 5,237, 16,237, 89, 1, 20, 22, 51, 33, 17, 33, 34, 6, 9, 1, 46, 1, 53, 52, 36, 51, 33, 17, 35, 17, 33, 1, 1,116,
-142,145, 1, 15,254,249,144,151,254,216, 1,113,108,178, 1, 6,246, 1,210,203,254,222,254,162, 4, 37,134,130, 2, 18,137,251,
- 90, 2,154, 39,178,178,210,222,250, 43, 2,119,253,137, 0, 0,255,255, 0,133,255,227, 4, 35, 4,123, 16, 6, 0, 68, 0, 0,
- 0, 2, 0,125,255,227, 4, 72, 6, 55, 0, 8, 0, 42, 0, 54, 64, 13, 34, 35, 0, 18, 14, 68, 4, 18, 9, 6, 20, 62, 43, 16,
-244,236,236,252,236,212,196, 49, 0, 64, 16, 7,140, 17, 34,182, 35, 30,182, 40, 2,140, 11,190, 17,153, 43, 16,228,244,236,220,
-236,212,236, 16,238, 48, 1, 16, 33, 32, 17, 20, 22, 51, 32, 1, 54, 51, 50, 18, 17, 16, 2, 35, 34, 2, 19, 54, 47, 1, 38, 52,
- 55, 54, 55, 54, 55, 54, 37, 54, 55, 23, 6, 15, 1, 6, 7, 6, 7, 3,133,254,227,254,228,144,140, 1, 29,253,152,120,222,222,
-247,246,234,233,251, 5, 1, 1, 7, 5, 2, 20, 36, 91,167,128, 1, 28, 51, 35, 70, 35, 51,240, 98, 74,197, 21, 2, 47, 1,176,
-254, 80,213,219, 3,129,123,254,210,254,225,254,226,254,211, 1, 51, 1, 25, 45, 17,167,119, 82, 15,149, 73,185, 85, 65, 12, 2,
- 16,142, 13, 5, 24, 10, 43,116,154, 0, 0, 0, 0, 3, 0,209, 0, 0, 4, 0, 4, 96, 0, 8, 0, 17, 0, 32, 0, 45, 64, 24,
- 25, 0,182, 10, 32, 9,182, 18,194, 1,182, 32, 14, 18, 22, 5, 18, 28, 0, 9, 6, 18, 70, 33, 16,252,236, 50,212,236,212,236,
- 49, 0, 47,236,244,236, 16,212,236, 57, 48, 1, 17, 51, 50, 54, 53, 52, 38, 35, 3, 17, 51, 50, 54, 53, 52, 38, 35, 37, 33, 50,
- 22, 21, 20, 6, 7, 30, 1, 21, 20, 6, 35, 33, 1,137,239, 95,101, 85,107,243,228, 85, 84, 84, 86,254,101, 1,141,170,200, 95,
- 99,133,109,209,193,254, 99, 2, 3,254,147,112, 80, 79, 94, 1,199,254,207, 85, 67, 67, 86,150,154,112,111,129, 14, 25,136,117,
-154,168, 0, 0, 0, 1, 1, 1, 0, 0, 3,241, 4, 96, 0, 5, 0, 22, 64, 10, 0,182, 3,194, 1, 4, 0, 6, 2, 6, 16,220,
-236,196, 49, 0, 47,252,236, 48, 1, 17, 35, 17, 33, 21, 1,185,184, 2,240, 3,202,252, 54, 4, 96,150, 0, 0, 0, 2, 0,105,
-254,226, 4,104, 4, 96, 0, 14, 0, 24, 0, 48, 64, 13, 4, 6, 2, 15, 6, 14, 17, 6, 12, 5, 6, 8, 25, 16,212,236,220,236,
-212,236,220,236, 49, 0, 64, 11, 16,182, 13,194, 1, 15, 8,182, 3, 7, 5, 47,204, 50,236, 50, 50,244,236, 48, 37, 51, 17, 35,
- 17, 33, 17, 35, 17, 51, 50, 18, 53, 17, 33, 3, 17, 33, 17, 20, 7, 14, 1, 20, 51, 3,239,121,150,253, 45,150, 67, 55, 32, 2,
-236,185,254,132, 20, 8, 14, 34,150,254, 76, 1, 30,254,226, 1,180, 1,198,100, 1,160,252, 54, 3, 52,254,242,100,247,144, 33,
- 26, 0, 0, 0,255,255, 0,123,255,227, 4, 88, 4,123, 16, 6, 0, 72, 0, 0, 0, 1, 0, 59, 0, 0, 4,151, 4, 96, 0, 19,
- 0,120, 64, 11, 8, 5, 4, 3, 6, 9, 1, 30, 6, 0, 20, 16,220, 60,252, 60,192, 23, 57, 49, 0, 64, 12, 66, 8, 5, 2, 3,
- 17, 3, 0,194, 15, 10, 6, 47, 60, 60,236, 50, 50, 23, 57, 48, 75, 83, 88, 64, 9, 8, 23, 9, 8, 5, 7, 23, 6, 5, 7, 5,
-237, 16, 8,237, 89, 1, 64, 19, 13, 0, 8, 14, 0, 7, 15, 0, 6, 16, 0, 5, 17, 0, 4, 18, 0, 3, 1, 16, 73, 58, 73, 58,
- 73, 58, 73, 58, 73, 58, 73, 58, 0,183, 12, 9, 13, 8, 16, 5, 19, 2, 16, 60, 16, 60, 16, 60, 16, 60, 1, 51, 17, 1, 51, 3,
- 1, 35, 3, 7, 17, 35, 17, 39, 3, 35, 1, 3, 51, 1, 2, 21,168, 0,255,199,239, 1, 3,179,191,104,168,104,191,179, 1, 3,
-239,199, 0,255, 4, 96,254, 80, 1,176,254,108,253, 52, 2, 16,177,254,161, 1, 95,177,253,240, 2,204, 1,148,254, 80, 0, 0,
-255,255, 0,169,255,234, 4, 40, 4,123, 16, 6, 1,250, 0, 0, 0, 1, 0,195, 0, 0, 4, 26, 4, 96, 0, 9, 0, 61, 64, 10,
- 6, 0, 6, 8, 1, 5, 6, 2, 70, 10, 16,252,236, 50,212,236, 50, 49, 0, 64, 8, 66, 0, 5, 7, 3,194, 9, 2, 47, 60,236,
- 50, 57, 57, 48, 75, 83, 88, 64, 10, 0, 23, 6, 5, 6, 5, 23, 1, 0, 1, 7, 0, 16,233, 7, 16,233, 89, 9, 1, 35, 17, 51,
- 17, 1, 51, 17, 35, 3, 98,254, 25,184,184, 1,231,184,184, 3, 41,252,215, 4, 96,252,215, 3, 41,251,160, 0,255,255, 0,195,
- 0, 0, 4, 26, 6, 72, 16, 38, 2,130, 0, 0, 16, 6, 3,101, 0, 0, 0, 0,255,255, 0,236, 0, 0, 4,178, 4, 96, 18, 6,
- 0,250, 0, 0, 0, 1, 0, 30, 0, 0, 4, 26, 4, 96, 0, 17, 0, 34, 64, 8, 4, 6, 1, 5, 6, 17, 11, 18, 16,212,220,236,
-212,236, 49, 0, 64, 8, 5,182, 0,194, 12,182, 11, 2, 47, 60,236,244,236, 48, 1, 33, 17, 35, 17, 33, 21, 20, 2, 6, 43, 1,
- 53, 51, 50, 54, 18, 53, 1, 9, 3, 17,184,254, 95, 27,151,186, 55, 35, 85, 94, 21, 4, 96,251,160, 3,202,245,189,254,209,233,
-150,118, 1, 24,174, 0, 0, 0, 0, 1, 0, 61, 0, 0, 4,155, 4, 96, 0, 12, 0, 78, 64, 21, 66, 10, 7, 2, 8, 3, 0,194,
- 9, 6, 12, 3, 7, 6, 4, 13, 1, 10, 6, 0, 13, 16,220,236, 50, 16,220,236, 50, 49, 0, 47, 60,196,236, 50, 17, 23, 57, 48,
- 75, 83, 88, 64, 16, 8, 23, 3, 7, 23, 3, 2, 3, 9, 23, 2, 10, 23, 2, 2, 1, 4, 7, 16,237, 16, 5,237, 4, 7, 16,237,
- 16, 5,237, 89, 19, 51, 9, 1, 51, 17, 35, 17, 1, 35, 1, 17, 35, 61,184, 1,119, 1,119,184,184,254,229,184,254,229,184, 4,
- 96,253, 77, 2,179,251,160, 2,229,254, 31, 1,225,253, 27, 0, 0, 1, 0,195, 0, 0, 4, 26, 4, 96, 0, 11, 0, 36, 64, 18,
- 1,182, 6, 9, 4,194, 10, 2, 0, 8, 6, 9, 1, 5, 6, 3, 70, 12, 16,252,236, 50,212,236, 50, 49, 0, 47, 60,228, 50,212,
-236, 48, 1, 33, 17, 35, 17, 51, 17, 33, 17, 51, 17, 35, 3, 98,254, 25,184,184, 1,231,184,184, 2, 3,253,253, 4, 96,254, 57,
- 1,199,251,160,255,255, 0,137,255,227, 4, 72, 4,123, 16, 6, 0, 82, 0, 0, 0, 1, 0,195, 0, 0, 4, 26, 4, 96, 0, 7,
- 0, 28, 64, 14, 1,182, 4,194, 6, 2, 0, 6, 5, 1, 6, 3, 70, 8, 16,252,236,212,236, 49, 0, 47, 60,244,236, 48, 1, 33,
- 17, 35, 17, 33, 17, 35, 3, 98,254, 25,184, 3, 87,184, 3,202,252, 54, 4, 96,251,160, 0, 0,255,255, 0,190,254, 86, 4, 84,
- 4,123, 16, 6, 0, 83, 0, 0,255,255, 0,195,255,227, 4, 37, 4,123, 16, 6, 0, 70, 0, 0, 0, 1, 0,225, 0, 0, 4, 7,
- 4, 96, 0, 7, 0, 28, 64, 13, 0, 3,182, 5,194, 1, 7, 1, 4, 3, 6, 1, 8, 16,220,252,204, 16,204, 49, 0, 47,252,252,
- 60, 48, 1, 17, 35, 17, 33, 53, 33, 21, 2,208,184,254,201, 3, 38, 3,202,252, 54, 3,202,150,150, 0, 0, 0,255,255, 0,104,
-254, 86, 4,129, 4, 96, 16, 6, 0, 92, 0, 0, 0, 3, 0, 99,254, 86, 4,101, 6, 20, 0, 6, 0, 24, 0, 31, 0, 99, 64, 17,
- 29, 18, 19, 13, 10, 22, 25, 16, 6, 13, 3, 18, 10, 7, 0, 13, 32, 16,212, 60, 60,212,236, 16,252, 60, 60, 73, 59,236, 49, 0,
- 64, 17, 25, 0,140, 16, 13,190, 26, 6,140, 22, 7,153, 24,195, 14,155, 32, 16,236,236,244, 60,236, 50,244, 60,236, 50, 48, 1,
-176, 13, 75, 84,176, 16, 75, 84, 91, 88,191, 0, 33, 0, 32,255,192, 0, 2, 0, 0, 0, 32, 0, 32, 0, 64, 56, 18, 54, 23, 56,
- 89, 1, 14, 1, 21, 20, 22, 23, 21, 38, 2, 17, 16, 18, 55, 17, 51, 17, 22, 18, 17, 16, 2, 7, 17, 35, 19, 17, 62, 1, 53, 52,
- 38, 2, 8,120,106,106,120,220,201,199,222,184,222,199,201,220,184,184,120,106,106, 3,214, 25,153,245,245,162, 25,156, 22, 1,
- 11, 1, 43, 1, 43, 1, 11, 22, 1,153,254,103, 22,254,245,254,213,254,213,254,245, 22,254,115, 5,128,252,169, 25,162,245,245,
-153, 0, 0, 0,255,255, 0, 76, 0, 0, 4,133, 4, 96, 16, 6, 0, 91, 0, 0, 0, 1, 0,124,254,226, 4, 94, 4, 96, 0, 11,
- 0, 36, 64, 18, 9, 5,194, 2, 0, 8,182, 3, 3, 6, 0, 8, 6, 10, 7, 6, 5, 12, 16,220,236,212,236,220,236, 49, 0, 47,
-236, 50,204,236, 50, 48, 37, 17, 35, 17, 33, 17, 51, 17, 33, 17, 51, 17, 4, 94,150,252,180,184, 1,230,184,150,254, 76, 1, 30,
- 4, 96,252, 54, 3,202,252, 54, 0, 1, 0,195, 0, 0, 4, 27, 4, 98, 0, 19, 0, 33, 64, 9, 14, 9, 6, 11, 3, 6, 0, 70,
- 20, 16,252,236,212,236, 50, 49, 0,182, 17,182, 6, 10, 1,194, 13, 47,236, 50,220,236, 48, 19, 17, 51, 17, 20, 22, 51, 50, 54,
- 55, 17, 51, 17, 35, 17, 14, 1, 35, 34, 38,195,184,107,110, 88,114, 69,184,184, 53,140,139,140,200, 2,243, 1,111,254,145,100,
- 93, 20, 39, 1,245,251,158, 1,210, 21, 43,163, 0, 1, 0,125, 0, 0, 4, 85, 4, 96, 0, 11, 0, 36, 64, 18, 6, 11, 2,194,
- 8, 4,182, 1, 11, 6, 10, 8, 6, 6, 3, 6, 1, 12, 16,220,236,220,236,220,236, 49, 0, 47,236, 50,252, 60,196, 48, 41, 1,
- 17, 51, 17, 51, 17, 51, 17, 51, 17, 51, 4, 85,252, 40,168,240,168,240,168, 4, 96,252, 54, 3,202,252, 54, 3,202, 0, 0, 0,
- 0, 1, 0, 80,254,226, 4,184, 4, 96, 0, 15, 0, 45, 64, 13, 0, 6, 13, 11, 6, 10, 8, 6, 6, 3, 6, 1, 16, 16,220,236,
-220,236,220,252,220,236, 49, 0, 64, 9, 6, 11, 2,194, 8, 4,182, 15, 1, 47,204,236, 50,252, 60,196, 48, 41, 1, 17, 51, 17,
- 51, 17, 51, 17, 51, 17, 51, 17, 51, 17, 35, 4, 34,252, 46,168,240,168,240,168,144,150, 4, 96,252, 54, 3,202,252, 54, 3,202,
-252, 54,254, 76, 0, 2, 0, 30, 0, 0, 4,140, 4, 96, 0, 8, 0, 21, 0, 41, 64, 9, 4, 18, 18, 14, 0, 6, 9, 11, 22, 16,
-212,220,236, 50, 47,236, 49, 0, 64, 11, 8,182, 14, 22, 10,182, 13,194, 0,182, 9, 47,236,244,236, 16,212,236, 48, 37, 51, 50,
- 54, 53, 52, 38, 43, 1, 3, 17, 35, 53, 33, 17, 33, 50, 22, 21, 20, 6, 35, 1,206,248,124,134,137,121,248,184,248, 1,176, 1,
- 0,209,237,232,214,156, 88, 90, 90, 90,253,254, 3,202,150,254, 59,167,168,168,164, 0, 0, 0, 0, 3, 0,104, 0, 0, 4,105,
- 4, 96, 0, 3, 0, 12, 0, 23, 0, 43, 64, 11, 3, 6, 0, 9, 18, 21, 16, 4, 6, 13, 24, 16,212,236, 50, 47,236,220,236, 49,
- 0, 64, 10, 12,182, 16, 4,182, 1, 14,194, 13, 0, 47, 60,228, 50,236,212,236, 48, 33, 17, 51, 17, 37, 51, 50, 54, 53, 52, 38,
- 43, 1, 3, 17, 51, 17, 51, 50, 22, 21, 20, 6, 35, 3,177,184,252,181, 83,124,134,137,121, 83,182,182, 91,209,237,232,214, 4,
- 96,251,160,154, 89, 91, 91, 91,253,252, 4, 96,254, 59,167,168,168,164, 0, 0, 0, 2, 0,195, 0, 0, 4, 56, 4, 96, 0, 8,
- 0, 19, 0, 42, 64, 23, 8,182, 12, 0,182, 10,194, 9, 19, 13, 1, 7, 4, 0, 4, 18, 16, 0, 12, 6, 10, 70, 20, 16,252,236,
- 50,220,236, 17, 23, 57, 49, 0, 47,228,236,212,236, 48, 37, 51, 50, 54, 53, 52, 38, 43, 1, 3, 17, 51, 17, 33, 50, 22, 21, 20,
- 6, 35, 1,123,248,129,128,129,128,248,184,184, 1, 0,208,237,231,214,153, 89, 90, 94, 88,253,254, 4, 96,254, 59,167,168,168,
-164, 0, 0, 0, 0, 1, 0,195,255,227, 4, 37, 4,123, 0, 31, 0, 75, 64, 8, 10, 11, 8, 18, 25, 19, 0, 32, 16,220, 60,212,
-236, 50,196, 49, 0, 64, 22, 19,139, 18,192, 15, 0,139, 1,192, 4,140, 29, 10,182, 8, 15,140, 22,190, 29,153, 32, 16,228,244,
-236,220,238, 16,254,244,238, 16,245,238,177, 10, 15, 73,177, 4, 8, 73, 80, 88,179, 10, 8, 64, 2, 23, 56, 89, 48, 55, 53, 30,
- 1, 51, 50, 55, 54, 55, 33, 53, 33, 38, 39, 38, 35, 34, 6, 7, 53, 62, 1, 51, 32, 0, 17, 16, 7, 6, 33, 34, 38,195, 65,152,
- 96,172, 94, 83, 9,253,226, 2, 25, 18, 69, 94,172, 93,147, 73, 78,154, 81, 1, 4, 1, 37,147,146,254,252, 82,157, 57,191, 62,
- 59,113,100,176,144,137, 82,112, 58, 65,193, 44, 42,254,200,254,236,254,236,156,156, 43, 0, 0, 0, 2, 0, 78,255,227, 4,144,
- 4,123, 0, 11, 0, 30, 0, 63, 64, 35, 24, 23, 15, 14, 4, 16, 22, 3,140, 16,190, 9,140, 22,153, 28, 26,182, 12, 30,194, 28,
- 0, 6, 19, 28, 5, 6, 25, 13, 26, 12, 6, 28, 31, 16,220,236, 50,212, 50,236, 16,212,236, 49, 0, 47,228,220,238, 16,228,238,
-244,236, 17, 18, 23, 57, 48, 1, 52, 38, 35, 34, 6, 21, 20, 22, 55, 50, 54, 1, 51, 26, 1, 51, 50, 18, 17, 16, 2, 35, 34, 2,
- 39, 35, 17, 35, 17, 51, 3,205,112, 76, 76,113,106, 85, 85,101,253, 57,142, 17,210,157,157,223,230,154,153,211, 16,142,184,184,
- 2, 63,198,217,244,193,193,234, 1,250, 1, 1, 1, 0, 1, 1,254,220,254,211,254,210,254,231, 1, 20,237,254, 28, 4, 96, 0,
- 0, 2, 0,168, 0, 0, 3,216, 4, 96, 0, 8, 0, 22, 0, 66, 64, 12, 10, 20, 0, 5, 20, 8, 17, 0, 18, 13, 9, 23, 16,220,
-212,236,212,236, 50, 18, 17, 57, 49, 0, 64, 11, 66, 10, 4,182, 21, 5,182, 17,194, 19, 9, 47, 60,244,236,212,236, 57, 48, 75,
- 83, 88,183, 21, 23, 10, 22, 23, 9, 9, 10, 7, 16, 5,237, 16,237, 89, 1, 20, 22, 59, 1, 17, 35, 34, 6, 3, 1, 46, 1, 53,
- 52, 54, 51, 33, 17, 35, 17, 35, 1, 1,147,114, 55,228,227, 56,114,235, 1, 16, 53,170,220,150, 1,141,184,193,254,254, 3, 19,
- 97, 85, 1,109, 86,252,140, 1,223, 22,130,167,168,154,251,160, 1,199,254, 57,255,255, 0,123,255,227, 4, 88, 6,109, 16, 38,
- 3, 98, 0, 0, 16, 6, 0, 67,226, 7, 0, 0,255,255, 0,123,255,227, 4, 88, 5,191, 16, 38, 3, 98, 0, 0, 16, 6, 0,106,
- 35,175, 0, 0, 0, 1, 0, 35,254, 86, 4, 84, 6, 20, 0, 31, 0, 0, 19, 53, 51, 17, 51, 17, 33, 21, 33, 17, 62, 1, 51, 50,
- 22, 21, 16, 2, 7, 53, 54, 18, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 35,190,184, 1,192,254, 64, 49,168,124,176,182,250,237,
-121,173,106,123,138,139,184, 3,209,143, 1,180,254, 76,143,254,115, 96, 99,230,223,254,180,254,142, 46,165, 25, 1, 24, 1, 22,
-152,141,183,171,254,251, 3,209,255,255, 1, 1, 0, 0, 4, 11, 6,109, 16, 38, 3, 96, 0, 0, 16, 6, 0,118, 81, 7, 0, 0,
- 0, 1, 0,195,255,227, 4, 37, 4,123, 0, 31, 0, 76, 64, 32, 13,139, 14,192, 17, 0,139, 31,192, 28,140, 3, 22,182, 24, 17,
-140, 10,190, 3,153, 32, 22, 0, 21, 24, 18, 13, 0, 7, 70, 32, 16,244,196, 50,252, 50, 16,196, 49, 0, 16,228,244,236,220,238,
- 16,254,244,238, 16,245,238,177, 22, 17, 73,177, 28, 24, 73, 80, 88,179, 22, 24, 64, 2, 23, 56, 89, 48, 37, 14, 1, 35, 32, 39,
- 38, 17, 16, 0, 33, 50, 22, 23, 21, 46, 1, 35, 34, 7, 6, 7, 37, 21, 33, 22, 23, 22, 51, 50, 54, 55, 4, 37, 74,157, 82,254,
-252,146,147, 1, 37, 1, 4, 81,154, 78, 73,147, 93,173, 93, 69, 18, 2, 25,253,226, 9, 83, 94,172, 96,152, 65, 57, 43, 43,156,
-156, 1, 20, 1, 20, 1, 56, 42, 44,193, 65, 58,112, 83,137, 1,144,176,100,113, 59, 62, 0, 0,255,255, 0,213,255,227, 4, 6,
- 4,123, 16, 6, 0, 86, 0, 0,255,255, 0,178, 0, 0, 4, 68, 6, 20, 16, 6, 0, 76, 0, 0,255,255, 0,178, 0, 0, 4, 68,
- 6, 16, 16, 38, 0,243, 0, 0, 17, 6, 0,106, 24, 0, 0, 8,180, 3, 16, 13, 6, 7, 43, 49,255,255, 0,186,254, 86, 3, 16,
- 6, 20, 16, 6, 0, 77, 0, 0, 0, 2, 0, 10, 0, 0, 4,203, 4, 96, 0, 5, 0, 30, 0, 0, 37, 50, 16, 43, 1, 17, 23, 35,
- 17, 35, 21, 20, 2, 7, 6, 43, 1, 53, 51, 50, 54, 18, 53, 17, 33, 17, 51, 50, 22, 16, 6, 3, 55,208,208, 13, 21,189,229, 27,
- 82, 67,188, 39, 35, 85, 94, 21, 2, 53, 21,159,237,232,153, 1,105,254,151,153, 3,202,245,189,254,209,128,105,150,118, 1, 24,
-174, 1,142,254, 59,167,254,176,164, 0, 0, 0, 0, 2, 0, 65, 0, 0, 4,158, 4, 96, 0, 6, 0, 24, 0, 0, 37, 50, 53, 52,
- 43, 1, 25, 1, 51, 50, 22, 16, 6, 43, 1, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 3, 10,208,208, 13, 21,159,237,232,164,189,
-254,148,168,168, 1,108,168,153,181,180,254,151, 2, 2,167,254,176,164, 2, 3,253,253, 4, 96,254, 57, 1,199, 0, 1, 0, 35,
- 0, 0, 4, 57, 6, 20, 0, 27, 0, 0, 19, 53, 51, 17, 51, 17, 33, 21, 33, 17, 62, 1, 51, 50, 22, 21, 17, 35, 17, 52, 38, 35,
- 34, 6, 21, 17, 35, 17, 35,190,184, 1,192,254, 64, 49,168,115,171,169,185,106,113,129,139,184, 3,209,143, 1,180,254, 76,143,
-254,115, 96, 99,225,228,254,190, 1, 66,151,142,183,171,254,251, 3,209, 0, 0,255,255, 0,236, 0, 0, 4,178, 6,109, 16, 38,
- 3,103, 0, 0, 16, 6, 0,118, 48, 7, 0, 0,255,255, 0,195, 0, 0, 4, 26, 6,109, 16, 38, 3,101, 0, 0, 16, 6, 0, 67,
- 64, 7, 0, 0,255,255, 0,104,254, 86, 4,129, 6, 72, 16, 38, 2,130, 0, 0, 16, 6, 3,112, 0, 0, 0, 0, 0, 1, 0,195,
-254,226, 4, 26, 4, 96, 0, 11, 0, 0, 51, 17, 51, 17, 33, 17, 51, 17, 33, 17, 35, 17,195,184, 1,231,184,254,160,151, 4, 96,
-252, 54, 3,202,251,160,254,226, 1, 30, 0, 0, 0, 1, 0,215, 0, 0, 4,115, 7, 7, 0, 7, 0, 28, 64, 14, 3, 5,151, 1,
-136, 7, 3, 4, 49, 6, 30, 1, 52, 8, 16,252,236,252,204, 49, 0, 47,244,236,204, 48, 51, 17, 33, 19, 51, 17, 33, 17,215, 2,
-242, 3,167,253, 47, 5,213, 1, 50,254, 36,250,213, 0, 0, 0, 0, 1, 1, 1, 0, 0, 3,242, 5,154, 0, 7, 0, 26, 64, 12,
- 5, 0,182, 3,194, 1, 4, 7, 0, 6, 2, 8, 16,220,236,220,204, 49, 0, 47,252,236,204, 48, 1, 17, 35, 17, 33, 17, 51, 3,
- 1,185,184, 2, 56,185, 1, 3,168,252, 88, 4, 96, 1, 58,254, 14, 0, 0, 0, 0, 1, 0, 85, 0, 0, 4,115, 5,213, 0, 13,
- 0, 0, 19, 51, 17, 33, 21, 33, 17, 33, 21, 33, 17, 35, 17, 35, 85,130, 3,156,253, 47, 2, 35,253,221,203,130, 3,232, 1,237,
-170,254,189,170,252,194, 3, 62, 0, 1, 0,127, 0, 0, 3,241, 4, 96, 0, 13, 0, 0, 33, 17, 35, 53, 51, 17, 33, 21, 33, 17,
- 33, 21, 33, 17, 1, 1,130,130, 2,240,253,200, 1,160,254, 96, 1,244,170, 1,194,184,254,246,170,254, 12, 0, 0, 1, 0,215,
-254,102, 4,115, 5,213, 0, 28, 0, 0, 1, 17, 35, 17, 33, 21, 33, 17, 33, 50, 23, 22, 21, 17, 16, 7, 6, 43, 1, 53, 51, 50,
- 55, 54, 53, 17, 52, 38, 35, 1,162,203, 3,156,253, 47, 1, 55,186,113,111,104,102,228, 76, 62,134, 56, 55,124,124, 2,199,253,
- 57, 5,213,170,254, 70,119,114,238,254,206,254,244,124,122,170, 75, 75,194, 1, 34,159,158, 0, 0, 1, 1, 1,254, 86, 4, 82,
- 4, 96, 0, 29, 0, 0, 1, 17, 35, 17, 33, 21, 33, 17, 51, 32, 23, 22, 21, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17,
- 52, 39, 38, 35, 1,185,184, 2,240,253,200,250, 1, 5, 72, 82, 82, 81,181,193,172,110, 33, 38, 38, 49,134, 1,231,254, 25, 4,
- 96,184,254,207, 71, 81,229,254,242,214, 96, 96,156, 48, 55,147, 1, 8,170, 32, 41, 0, 0, 0, 0, 1, 0, 15,254,190, 4,194,
- 5,213, 0, 23, 0, 0, 51, 9, 1, 51, 1, 17, 51, 17, 1, 51, 1, 19, 51, 17, 35, 17, 35, 3, 7, 17, 35, 17, 39, 3, 15, 1,
- 48,254,225,207, 1, 28,187, 1, 28,207,254,225,246, 58,170, 27,222, 89,187, 89,222, 3,123, 2, 90,253,173, 2, 83,253,173, 2,
- 83,253,166,253, 47,254, 20, 1, 66, 2,138,186,254, 48, 1,208,186,253,118, 0, 0, 1, 0, 59,254,226, 4,174, 4, 96, 0, 23,
- 0, 0, 51, 1, 3, 51, 1, 17, 51, 17, 1, 51, 3, 19, 51, 17, 35, 17, 35, 3, 7, 17, 35, 17, 39, 3, 59, 1, 3,239,199, 0,
-255,168, 0,255,199,239,205, 77,150, 52,191,104,168,104,191, 2,204, 1,148,254, 80, 1,176,254, 80, 1,176,254,108,253,202,254,
- 76, 1, 30, 2, 16,177,254,161, 1, 95,177,253,240, 0, 0, 0,255,255, 0,137,254,117, 4, 55, 5,240, 16, 38, 2,163,183, 0,
- 16, 6, 3, 68, 0, 0, 0, 0,255,255, 0,169,254,117, 4, 40, 4,123, 16, 38, 2,163,189, 0, 16, 6, 3,100, 0, 0, 0, 0,
- 0, 1, 0,137,254,190, 4,201, 5,213, 0, 15, 0, 0, 37, 51, 17, 35, 17, 35, 1, 7, 17, 35, 17, 51, 17, 1, 51, 1, 4, 86,
-114,212, 31,254, 25,154,203,203, 2,119,237,253,187,170,254, 20, 1, 66, 2,236,164,253,184, 5,213,253,104, 2,152,253,158, 0,
- 0, 1, 0,236,254,226, 4,178, 4, 96, 0, 15, 0, 0, 37, 51, 17, 35, 17, 35, 1, 7, 17, 35, 17, 51, 17, 1, 51, 1, 4, 44,
-134,196, 29,254, 98,137,190,190, 1,227,224,254, 71,184,254, 42, 1, 30, 2, 66,129,254, 63, 4, 96,254, 47, 1,209,254, 90, 0,
- 0, 1, 0, 31,254,190, 4,179, 5,213, 0, 15, 0, 0, 37, 51, 17, 35, 17, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 3,222,
-213,213,203,253,215,203,203, 2, 41,203,170,254, 20, 1, 66, 2,199,253, 57, 5,213,253,156, 2,100, 0, 0, 0, 0, 1, 0, 98,
-254,226, 4,124, 4, 96, 0, 15, 0, 0, 37, 51, 17, 35, 17, 35, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 3,185,195,195,184,254,
- 25,184,184, 1,231,184,184,254, 42, 1, 30, 1,249,254, 7, 4, 96,254, 67, 1,189, 0, 0, 0,255,255, 0,139,254,117, 4, 49,
- 5,240, 16, 38, 2,163,100, 0, 16, 6, 3, 78, 0, 0, 0, 0,255,255, 0,195,254,117, 4, 37, 4,123, 16, 38, 2,163,104, 0,
- 16, 6, 3,110, 0, 0, 0, 0, 0, 1, 0, 47,254,190, 4,162, 5,213, 0, 11, 0, 0, 37, 51, 17, 35, 17, 35, 17, 33, 53, 33,
- 21, 33, 2,207,213,213,203,254, 43, 4,115,254, 45,170,254, 20, 1, 66, 5, 43,170,170, 0, 0, 0, 1, 0,225,254,226, 4, 7,
- 4, 96, 0, 11, 0, 0, 37, 51, 17, 35, 17, 35, 17, 33, 53, 33, 21, 33, 2,208,195,195,184,254,201, 3, 38,254,201,184,254, 42,
- 1, 30, 3,174,178,178, 0, 0,255,255, 0, 37, 0, 0, 4,172, 5,213, 16, 6, 0, 60, 0, 0, 0, 1, 0, 92,254, 86, 4,116,
- 4, 96, 0, 8, 0, 0, 19, 51, 9, 1, 51, 1, 17, 35, 17, 92,195, 1, 73, 1, 73,195,254, 84,192, 4, 96,252,148, 3,108,251,
-178,254, 68, 1,188, 0, 0, 0, 0, 1, 0, 37, 0, 0, 4,172, 5,213, 0, 16, 0, 0, 19, 51, 9, 1, 51, 1, 21, 33, 21, 33,
- 17, 35, 17, 33, 53, 33, 53, 37,215, 1,108, 1,107,217,254, 33, 1, 10,254,246,203,254,248, 1, 8, 5,213,253,109, 2,147,252,
-201, 80,170,254, 92, 1,164,170, 80, 0, 0, 0, 0, 1, 0, 92,254, 86, 4,116, 4, 96, 0, 16, 0, 0, 19, 51, 9, 1, 51, 1,
- 21, 51, 21, 35, 21, 35, 53, 35, 53, 51, 53, 92,195, 1, 73, 1, 73,195,254, 84,200,200,192,200,200, 4, 96,252,148, 3,108,251,
-178, 53,150,241,241,150, 53, 0, 0, 1, 0, 18,254,190, 4,191, 5,213, 0, 15, 0, 0, 37, 51, 17, 35, 17, 35, 9, 1, 35, 9,
- 1, 51, 9, 1, 51, 1, 4, 88,102,212, 5,254,146,254,117,218, 1,244,254, 80,217, 1, 72, 1, 78,217,254, 65,170,254, 20, 1,
- 66, 2,131,253,125, 3, 23, 2,190,253,205, 2, 51,253, 66, 0, 0, 1, 0, 76,254,226, 4,134, 4, 96, 0, 15, 0, 0, 37, 51,
- 17, 35, 17, 35, 9, 1, 35, 9, 1, 51, 9, 1, 51, 1, 3,250,140,196, 18,254,184,254,185,213, 1,184,254,111,204, 1, 41, 1,
- 39,207,254,111,184,254, 42, 1, 30, 1,193,254, 63, 2, 72, 2, 24,254,107, 1,149,253,232, 0, 0, 1, 0,140, 0, 0, 4, 71,
- 5,215, 0, 28, 0, 0, 1, 17, 35, 17, 52, 38, 35, 34, 7, 6, 7, 6, 21, 17, 35, 17, 51, 17, 54, 63, 1, 54, 63, 1, 50, 23,
- 22, 23, 22, 4, 71,203,106,113,106, 87, 46, 22, 69,203,203, 35, 50, 48, 64,149, 48,160, 88, 14, 11, 85, 1,244,254, 12, 1,218,
-151,142, 42, 21, 28, 92,171,254, 99, 5,215,253, 85, 39, 27, 26, 37, 10, 2, 84, 13, 16,112, 0,255,255, 0,195, 0, 0, 4, 27,
- 6, 20, 16, 6, 0, 75, 0, 0,255,255, 0,201, 0, 0, 4, 6, 5,213, 16, 6, 0, 44, 0, 0,255,255, 0, 15, 0, 0, 4,194,
- 7,109, 16, 38, 11,184, 0, 0, 16, 6, 3, 67, 0, 0, 0, 0,255,255, 0, 59, 0, 0, 4,151, 6, 72, 16, 38, 2,130, 0, 0,
- 16, 6, 3, 99, 0, 0, 0, 0, 0, 1, 0,137,254,102, 4,184, 5,213, 0, 30, 0, 0, 1, 51, 50, 23, 22, 21, 17, 16, 7, 6,
- 43, 1, 53, 51, 50, 55, 54, 53, 17, 52, 38, 43, 1, 7, 17, 35, 17, 51, 17, 1, 51, 2,115, 24,183,116,111,104,102,228, 76, 62,
-134, 56, 55,124,124,151,119,203,203, 2,119,237, 3,113,119,114,238,254,206,254,244,124,122,170, 75, 75,194, 1, 34,159,158,127,
-253,184, 5,213,253,104, 2,152, 0, 1, 0,236,254, 86, 4,109, 4, 96, 0, 31, 0, 0, 1, 51, 32, 23, 22, 21, 17, 20, 7, 6,
- 43, 1, 53, 51, 50, 55, 54, 53, 17, 52, 39, 38, 43, 1, 7, 17, 35, 17, 51, 17, 1, 51, 2,106, 58, 1, 5, 72, 82, 82, 81,181,
-193,172,110, 33, 38, 38, 49,134,221, 39,190,190, 1,227,224, 2,119, 71, 81,229,254,242,214, 96, 96,156, 48, 55,147, 1, 8,170,
- 32, 41, 38,254, 63, 4, 96,254, 47, 1,209, 0, 0, 1, 0,137,254,102, 4, 72, 5,213, 0, 21, 0, 0, 37, 16, 7, 6, 43, 1,
- 53, 51, 50, 55, 54, 53, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4, 72,104,103,227, 76, 62,134, 56, 55,253,215,203,203, 2, 41,
-203,104,254,242,122,122,170, 75, 75,194, 2, 95,253, 57, 5,213,253,156, 2,100, 0, 1, 0,195,254, 86, 4, 26, 4, 96, 0, 21,
- 0, 0, 5, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 53, 17, 33, 17, 35, 17, 51, 17, 33, 17, 51, 4, 26, 82, 81,181,193,172,110,
- 33, 38,254, 25,184,184, 1,231,184, 20,214, 96, 96,156, 48, 55,147, 2, 13,254, 7, 4, 96,254, 67, 1,189, 0, 0, 1, 0,140,
-254,190, 4, 71, 5,215, 0, 32, 0, 0, 37, 17, 6, 15, 1, 6, 15, 1, 34, 39, 38, 39, 38, 53, 17, 51, 17, 20, 22, 51, 50, 55,
- 54, 55, 54, 53, 17, 51, 17, 35, 17, 35, 17, 3,124, 35, 51, 47, 64,149, 48,160, 88, 14, 12, 84,203,106,113,106, 87, 46, 21, 70,
-203,203,213,170, 2, 36, 39, 27, 26, 37, 10, 2, 84, 13, 16,112,228, 1,209,254, 73,151,142, 42, 21, 28, 92,171, 1,122,250, 41,
-254,190, 1,236, 0, 1, 0,195,254,226, 4, 27, 4, 98, 0, 26, 0, 0, 37, 17, 6, 7, 54, 7, 6, 35, 34, 38, 53, 17, 51, 17,
- 20, 22, 51, 50, 54, 61, 1, 51, 17, 35, 17, 35, 17, 3, 99, 27, 60, 3, 49, 84,115,171,169,185,106,113,129,139,184,184,195,184,
- 1,126, 51, 36, 1, 28, 50,225,228, 1, 11,254,245,151,142,183,171,206,251,158,254,226, 1,214, 0, 1, 1,199, 0, 0, 2,127,
- 6, 31, 0, 3, 0, 0, 1, 17, 35, 17, 2,127,184, 6, 31,249,225, 6, 31, 0,255,255, 0, 37, 0, 0, 4,172, 7,109, 16, 38,
- 11,184, 0, 0, 17, 6, 3, 61, 0, 0, 0, 24,180, 19, 8, 0, 24, 7, 43, 64, 13, 95, 8, 80, 0, 79, 8, 64, 0, 47, 8, 32,
- 0, 6, 93, 49,255,255, 0,133,255,227, 4, 35, 6, 72, 16, 38, 2,130, 0, 0, 16, 6, 3, 93, 0, 0, 0, 0,255,255, 0, 37,
- 0, 0, 4,172, 7, 78, 16, 38, 3, 61, 0, 0, 17, 7, 11,176, 0, 0, 1,117, 0, 28,180, 5, 17, 14, 10, 7, 43, 64, 17,112,
- 14,127, 17, 48, 14, 63, 17, 32, 14, 47, 17, 0, 14, 15, 17, 8, 93, 49, 0, 0,255,255, 0,133,255,227, 4, 35, 6, 16, 16, 38,
- 0,106, 0, 0, 16, 6, 3, 93, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 4,156, 5,213, 16, 6, 0,136, 0, 0,255,255, 0, 41,
-255,227, 4,176, 4,123, 16, 6, 0,168, 0, 0,255,255, 0,197, 0, 0, 4, 78, 7,109, 16, 38, 11,184, 18, 0, 16, 6, 3, 66,
- 0, 0, 0, 0,255,255, 0,123,255,227, 4, 88, 6, 72, 16, 38, 2,130, 14, 0, 16, 6, 3, 98, 0, 0, 0, 0,255,255, 0,117,
-255,227, 4, 92, 5,240, 18, 6, 1, 81, 0, 0,255,255, 0,122,255,227, 4, 87, 4,123, 18, 6, 1,247, 0, 0,255,255, 0,117,
-255,227, 4, 92, 7, 78, 16, 39, 11,176, 0, 0, 1,117, 16, 6, 3,185, 0, 0,255,255, 0,122,255,227, 4, 87, 6, 16, 16, 38,
- 0,106, 0, 0, 16, 6, 3,186, 0, 0, 0, 0,255,255, 0, 15, 0, 0, 4,194, 7, 78, 16, 39, 11,176, 0, 0, 1,117, 16, 6,
- 3, 67, 0, 0,255,255, 0, 59, 0, 0, 4,151, 6, 16, 16, 38, 0,106, 0, 0, 16, 6, 3, 99, 0, 0, 0, 0,255,255, 0,137,
-255,227, 4, 55, 7, 78, 16, 39, 11,176,255,239, 1,117, 16, 6, 3, 68, 0, 0,255,255, 0,169,255,234, 4, 40, 6, 16, 16, 38,
- 0,106,241, 0, 16, 6, 3,100, 0, 0, 0, 0,255,255, 0, 26,255,228, 4,183, 5,213, 16, 6, 1,121, 0, 0,255,255, 0,125,
-254, 76, 4, 84, 4, 96, 16, 6, 2, 48, 0, 0,255,255, 0,139, 0, 0, 4, 70, 7, 48, 16, 38, 11,189, 0, 0, 16, 6, 3, 69,
- 0, 0, 0, 0,255,255, 0,195, 0, 0, 4, 26, 5,246, 16, 38, 2,128, 0, 0, 16, 6, 3,101, 0, 0, 0, 0,255,255, 0,139,
- 0, 0, 4, 70, 7, 78, 16, 39, 11,176, 0, 0, 1,117, 16, 6, 3, 69, 0, 0,255,255, 0,195, 0, 0, 4, 26, 6, 16, 16, 38,
- 0,106, 0, 0, 16, 6, 3,101, 0, 0, 0, 0,255,255, 0,117,255,227, 4, 92, 7, 78, 16, 38, 3, 75, 0, 0, 17, 7, 11,176,
- 0, 0, 1,117, 0, 28,180, 12, 30, 27, 18, 7, 43, 64, 17,112, 27,127, 30, 48, 27, 63, 30, 32, 27, 47, 30, 0, 27, 15, 30, 8,
- 93, 49, 0, 0,255,255, 0,137,255,227, 4, 72, 6, 16, 16, 38, 3,107, 0, 0, 17, 6, 0,106, 0, 0, 0, 20,180, 15, 30, 27,
- 21, 7, 43, 64, 9,127, 30,112, 27, 79, 30, 64, 27, 4, 93, 49,255,255, 0,117,255,227, 4, 92, 5,240, 16, 6, 3, 33, 0, 0,
-255,255, 0,137,255,227, 4, 72, 4,123, 16, 6, 2, 19, 0, 0,255,255, 0,117,255,227, 4, 92, 7, 78, 16, 39, 11,176, 0, 0,
- 1,117, 16, 6, 3,201, 0, 0,255,255, 0,137,255,227, 4, 72, 6, 16, 16, 38, 0,106, 0, 0, 16, 6, 3,202, 0, 0, 0, 0,
-255,255, 0,139,255,227, 4, 49, 7, 78, 16, 39, 11,176,255,223, 1,117, 16, 6, 3, 90, 0, 0,255,255, 0,195,255,227, 4, 37,
- 6, 16, 16, 38, 0,106,236, 0, 16, 6, 3,122, 0, 0, 0, 0,255,255, 0,104, 0, 0, 4,129, 7, 48, 16, 38, 11,189, 0, 0,
- 16, 6, 3, 80, 0, 0, 0, 0,255,255, 0,104,254, 86, 4,129, 5,246, 16, 38, 2,128, 0, 0, 16, 6, 3,112, 0, 0, 0, 0,
-255,255, 0,104, 0, 0, 4,129, 7, 78, 16, 39, 11,176, 0, 0, 1,117, 16, 6, 3, 80, 0, 0,255,255, 0,104,254, 86, 4,129,
- 6, 16, 16, 38, 0,106, 0, 0, 16, 6, 3,112, 0, 0, 0, 0,255,255, 0,104, 0, 0, 4,129, 7,107, 16, 38, 11,186, 0, 0,
- 16, 6, 3, 80, 0, 0, 0, 0,255,255, 0,104,254, 86, 4,129, 6,102, 16, 38, 2,135, 0, 0, 16, 6, 3,112, 0, 0, 0, 0,
-255,255, 0,137, 0, 0, 4, 68, 7, 78, 16, 39, 11,176, 0, 0, 1,117, 16, 6, 3, 84, 0, 0,255,255, 0,195, 0, 0, 4, 27,
- 6, 16, 16, 38, 0,106, 0, 0, 16, 6, 3,116, 0, 0, 0, 0, 0, 1, 0,215,254,190, 4,115, 5,213, 0, 9, 0, 0, 37, 51,
- 17, 35, 17, 35, 17, 33, 21, 33, 1,162,213,213,203, 3,156,253, 47,170,254, 20, 1, 66, 5,213,170, 0, 0, 0, 0, 1, 1, 1,
-254,226, 3,241, 4, 96, 0, 9, 0, 0, 37, 51, 17, 35, 17, 35, 17, 33, 21, 33, 1,185,195,195,184, 2,240,253,200,184,254, 42,
- 1, 30, 4, 96,184, 0, 0, 0,255,255, 0, 65, 0, 0, 4,110, 7, 78, 16, 39, 11,176, 0, 0, 1,117, 16, 6, 3, 88, 0, 0,
-255,255, 0,104, 0, 0, 4,105, 6, 16, 16, 38, 0,106, 0, 0, 16, 6, 3,120, 0, 0, 0, 0, 0, 1, 1,214, 0, 0, 2,251,
- 1,236, 0, 5, 0, 0, 33, 35, 53, 19, 51, 3, 2,169,211,164,129, 82,172, 1, 64,254,192, 0, 0, 2, 1,100, 4,253, 3,109,
- 6,241, 0, 10, 0, 27, 0, 0, 1, 51, 50, 55, 54, 53, 52, 39, 6, 7, 6, 23, 43, 1, 53, 51, 17, 51, 17, 54, 55, 54, 23, 22,
- 21, 20, 7, 6, 2, 53, 55, 77, 23, 53, 30, 15, 57, 51, 23,175,112, 81,102, 36,104, 63, 70, 65, 64, 54, 5, 98, 13, 33, 21, 31,
- 16, 4, 22, 20,169,101, 1,143,254,191, 73, 40, 24, 26, 25, 82, 91, 50, 42, 0, 0, 2, 1,214, 0, 0, 2,251, 5, 17, 0, 5,
- 0, 9, 0, 0, 1, 35, 53, 19, 51, 11, 1, 51, 21, 35, 2,169,211,164,129, 82,211,211,211, 3, 37,172, 1, 64,254,192,253, 45,
-254, 0, 0, 0, 0, 2, 0,218, 0, 0, 3,247, 5,240, 0, 3, 0, 36, 0, 0, 37, 21, 35, 53, 55, 53, 52, 38, 39, 46, 1, 47,
- 1, 46, 1, 53, 52, 54, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6, 21, 20, 22, 31, 1, 30, 1, 29, 1, 3, 3,203, 6, 6, 6, 8,
- 39, 47, 88, 90, 72,223,184,103,193, 94, 97,179, 79,108,131, 51, 57, 90, 90, 56,254,254,254,147,123, 52, 60, 21, 25, 53, 47, 86,
- 86,137, 76,159,194, 56, 57,188, 67, 70,110, 89, 49, 94, 53, 89, 86,130,101,154, 0, 1, 1,178, 0, 85, 4, 45, 3,222, 0, 34,
- 0, 0, 37, 53, 54, 55, 54, 55, 38, 39, 38, 53, 52, 55, 54, 55, 54, 51, 50, 23, 21, 38, 7, 6, 7, 6, 23, 20, 23, 22, 55, 54,
- 55, 21, 6, 7, 6, 1,178, 47, 83, 68, 52,142, 51, 53, 21, 30,103, 99, 98,110, 90,100, 70, 51, 49, 96, 1,200, 57, 58, 72, 58,
- 90,205,231, 85,176, 6, 25, 20, 33, 24, 76, 79, 84, 65, 75,118, 63, 61, 22,185, 31, 2, 1, 26, 48,112,115, 50, 14, 15, 19, 35,
-185, 60, 80, 90,255,255, 1, 0, 0, 0, 3,208, 7,131, 16, 38, 3,229, 0, 0, 16, 7, 4, 12, 0, 0, 1,194,255,255, 1,189,
- 0, 0, 3, 20, 7,254, 16, 38, 3,229, 0, 0, 16, 7, 4, 13, 0, 0, 1,134,255,255, 0, 76,254, 12, 4, 51, 4,182, 16, 38,
- 4, 1, 0, 0, 16, 7, 4, 13, 0, 99,254, 62,255,255, 1,189,254, 12, 3, 20, 6, 20, 16, 38, 3,229, 0, 0, 16, 6, 4, 14,
- 0, 0, 0, 0,255,255, 0, 25,254,243, 4,209, 4, 92, 16, 38, 4, 2, 0, 0, 16, 7, 4, 13,255,114,253,228, 0, 1, 2, 12,
- 0, 0, 2,196, 6, 20, 0, 3, 0, 0, 1, 51, 17, 35, 2, 12,184,184, 6, 20,249,236, 0, 0,255,255, 0, 69,254,200, 4,176,
- 2, 27, 16, 39, 11,195, 2, 44,254,200, 16, 6, 4, 30, 0, 0,255,255, 0,222,255,198, 3,243, 4, 26, 16, 39, 11,196, 1,113,
- 3,132, 16, 6, 4, 0, 0, 0,255,255, 0, 69,255,235, 4,176, 3, 32, 16, 39, 11,196, 1,184, 2,138, 16, 6, 4, 30, 0, 0,
-255,255, 0, 69,255,235, 4,176, 4, 26, 16, 39, 11,197, 1,164, 2,138, 16, 6, 4, 30, 0, 0,255,255, 0, 88,254, 11, 4,173,
- 3,103, 16, 39, 11,195, 2,151, 0, 13, 16, 6, 3,235, 0, 0, 0, 1, 0, 88,254, 11, 4,173, 3,103, 0, 30, 0, 0, 19, 36,
- 23, 4, 23, 21, 36, 7, 6, 21, 20, 23, 22, 5, 50, 55, 21, 6, 7, 4, 39, 38, 53, 16, 55, 54, 55, 38, 7, 6, 7, 88, 1, 20,
-195, 1, 36,196,254,218,215,224, 74,129, 1, 19,193,212,150,250,254,148,169,131,212, 96,137,101,159,135, 95, 3, 39, 64, 1, 1,
- 53,154, 13,180,188,247,137, 94,163, 1,118,184, 98, 1, 2,196,152,222, 1, 2,223,101, 52, 3, 22, 19, 41, 0,255,255, 0, 88,
-254, 11, 4,173, 4,176, 16, 39, 11,195, 1,202, 4, 26, 16, 6, 3,235, 0, 0, 0, 1, 0,232,255,218, 3,232, 3,106, 0, 25,
- 0, 0, 37, 54, 55, 54, 53, 52, 39, 38, 39, 51, 22, 23, 22, 21, 20, 7, 6, 5, 6, 35, 34, 39, 53, 22, 51, 50, 2, 84,174, 33,
- 8, 60, 73,166,227,107, 72, 82, 32, 80,254,250, 46, 94,151,103,115,133, 82,151, 50,111, 27, 42, 91,103,120,179,108,131,152,105,
- 99, 75,195, 40, 7, 38,184, 42,255,255, 0,232,255,218, 3,232, 4,200, 16, 39, 11,195, 2, 28, 4, 50, 16, 6, 3,237, 0, 0,
- 0, 1,255,204,254, 8, 4, 68, 2, 34, 0, 17, 0, 0, 37, 54, 53, 52, 39, 51, 22, 21, 20, 7, 2, 5, 4, 5, 53, 32, 55, 36,
- 3,133, 10, 53,184, 50, 8, 41,254,181,254,239,254, 21, 1,188,220, 0,255,154, 58, 72,126,136,118,132, 82, 62,254,181,173,143,
- 9,184,128,146,255,255,255,204,254, 8, 4, 68, 3,182, 16, 39, 11,195, 3, 85, 3, 32, 16, 6, 3,239, 0, 0, 0, 1,255, 33,
-254, 20, 4,152, 2,238, 0, 63, 0, 0, 37, 6, 7, 6, 7, 6, 35, 34, 39, 38, 55, 54, 55, 51, 6, 23, 22, 23, 22, 51, 50, 55,
- 54, 55, 54, 39, 52, 47, 1, 51, 23, 22, 23, 22, 23, 22, 55, 54, 53, 51, 6, 23, 22, 51, 50, 25, 1, 51, 17, 20, 7, 6, 7, 6,
- 35, 34, 39, 38, 39, 6, 7, 6, 7, 6, 1,140, 9, 29, 38, 60, 71,114, 95,101,117, 18, 19, 61,164, 88, 6, 7, 33, 47, 47, 54,
- 50, 34, 26, 24, 2, 16, 42,160, 18, 16, 22, 48, 40, 46, 46, 36,164, 4, 38, 31, 43,104,164, 62, 33, 85, 22, 78, 66, 24, 65, 25,
- 31, 69, 51, 73, 48, 60,168, 94,121, 77, 92,100,115,213,232,130,225,137,172, 43, 59, 72, 50,122,109,165, 94, 92,234,156,145, 35,
- 80, 3, 3,125,103,194,163,141,120, 1, 24, 1, 38,254,170,159,153, 82, 34, 9, 25, 67,126,109, 56, 40, 2, 2,255,255,255, 33,
-254, 20, 4,152, 4,176, 16, 39, 11,197, 1, 99, 3, 32, 16, 6, 3,241, 0, 0, 0, 2,255, 16,254, 20, 4,192, 2,143, 0, 12,
- 0, 61, 0, 0, 37, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 7, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 43, 1, 34,
- 39, 38, 53, 20, 7, 6, 7, 6, 35, 34, 39, 38, 53, 52, 55, 51, 6, 21, 20, 23, 22, 55, 54, 55, 54, 53, 52, 39, 38, 39, 51, 20,
- 23, 22, 2, 72,128,141, 73,106, 40, 36, 64, 71,103, 76,196, 75, 49,142,154,172, 90, 88,184,127,127,218, 37, 53, 44, 48, 46, 51,
- 99, 77,130, 91,124,100,172,104, 60, 50, 61, 66, 37, 65, 9, 33, 13,170, 14, 10,184, 46, 68, 70, 45, 37, 33,109, 78, 6,128, 60,
-177, 82, 78,121,190,109, 75, 30, 26, 16,175,131,129, 43, 86, 90,127,203,188,172,204,156,145, 50, 41, 3, 4, 59,106,136,104, 62,
-212, 72, 15, 55, 40, 0, 0, 0,255,255,255, 16,254, 20, 4,192, 3, 77, 16, 39, 11,195, 1, 79, 2,183, 16, 6, 3,243, 0, 0,
- 0, 2, 0, 10, 0, 0, 4,164, 6, 20, 0, 12, 0, 31, 0, 0, 37, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 19, 33, 35,
- 53, 51, 17, 51, 17, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 2, 44,129,140, 73,106, 40, 36, 63, 71,104, 75,136,253,251,224,
-224,184, 76, 49,142,154,171, 91, 87,184,126,184, 46, 68, 70, 45, 37, 33,109, 78,254,216,184, 5, 92,251, 14,128, 60,177, 82, 78,
-121,190,109, 75,255,255, 0, 10, 0, 0, 4,164, 6, 20, 16, 39, 11,195, 2, 89, 3, 22, 16, 6, 3,245, 0, 0, 0, 1, 0,122,
-254, 12, 4,183, 4, 42, 0, 42, 0, 0, 5, 22, 33, 50, 55, 21, 6, 35, 32, 39, 38, 53, 52, 55, 54, 55, 38, 39, 38, 53, 52, 55,
- 54, 51, 21, 34, 7, 6, 21, 20, 23, 22, 51, 50, 55, 54, 55, 21, 4, 7, 6, 21, 20, 1, 88,119, 1, 83,193,212,150,250,254, 91,
-166, 98, 87,113, 77, 51, 47, 88,204,124,252,195,116, 93, 48, 45, 46, 40, 41,158,254,254,239,236,209,177,158,118,184, 99,188,111,
-201,177,101,131, 25, 4, 30, 56,130,208,127, 77,169, 65, 52,104, 75, 25, 24, 18, 69, 29,184, 26,149,131,185,117,255,255, 0,122,
-254, 12, 4,183, 5, 70, 16, 39, 11,195, 1,125, 4,176, 16, 6, 3,247, 0, 0, 0, 1,255,236, 0, 0, 4,229, 0,184, 0, 3,
- 0, 0, 35, 53, 33, 21, 20, 4,249,184,184, 0,255,255,255,181,255,164, 4,140, 4,204, 16, 39, 11,195, 2,252, 4, 54, 16, 6,
- 4, 51, 0, 0,255,255, 0, 31,254,124, 4,116, 5, 20, 16, 39, 11,196, 2, 83, 4,126, 16, 6, 4, 31, 0, 0, 0, 2, 0, 8,
-255,200, 4,159, 6, 20, 0, 33, 0, 61, 0, 0, 1, 21, 6, 7, 6, 21, 20, 23, 22, 23, 22, 21, 20, 7, 6, 35, 34, 39, 53, 22,
- 51, 50, 55, 54, 53, 52, 39, 38, 39, 38, 55, 54, 55, 54, 1, 54, 25, 1, 51, 17, 16, 7, 6, 7, 6, 35, 6, 39, 38, 53, 52, 55,
- 51, 6, 21, 22, 23, 22, 51, 50, 55, 54, 2,123, 74, 38, 80, 14, 12, 68,102, 88, 82, 78, 66, 56, 68, 45, 60, 57, 60, 78, 74, 18,
- 32, 1, 2, 75, 85, 1,171, 52,184, 86,130, 67,155,184,173,163,217, 16,184, 14, 2,152,121, 87,127, 62,119, 4, 76, 82, 4, 14,
- 30, 33, 28, 18, 16, 10, 15, 88,110, 42, 39, 11, 88, 10, 26, 26, 30, 38, 17, 16, 28, 47, 46, 81, 38, 43,252,209, 56, 1, 18, 3,
-177,252, 79,254,154, 92,136, 25, 55, 2, 57, 76,184, 75, 53, 58, 44, 93, 45, 35, 27, 52, 0, 0, 0, 1, 0, 66,254,200, 4, 75,
- 6, 20, 0, 27, 0, 0, 37, 54, 25, 1, 51, 17, 16, 7, 6, 7, 6, 35, 34, 39, 38, 3, 38, 55, 51, 6, 21, 20, 23, 22, 51, 50,
- 55, 54, 3,117, 30,184, 50,108,101,150,162, 99,119,242, 1, 1, 64,184, 65,166, 40, 73,105, 84, 99, 73, 57, 1, 40, 4,106,251,
-150,254,122, 71,156, 49, 72, 42, 86, 1, 3,138, 92,115,115,126, 66, 16, 34, 41, 0, 2, 0,130,254, 20, 4, 84, 2,243, 0, 17,
- 0, 46, 0, 0, 1, 22, 51, 50, 55, 54, 53, 52, 39, 38, 39, 38, 35, 34, 7, 6, 21, 20, 7, 38, 7, 6, 21, 17, 35, 17, 52, 55,
- 54, 51, 38, 53, 52, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 35, 6, 2, 88,122, 76, 44, 21, 53, 6, 21, 59, 40, 46, 59,
- 27, 68,110, 50, 75, 25,200,120, 65, 90, 2,162, 77, 92, 77, 79,182, 28, 8, 98,120, 88,178, 1, 39, 42, 22, 57, 58, 24, 20, 88,
- 17, 12, 27, 68, 68, 40,193, 28, 78, 26, 79,254, 20, 1,236,173,102, 55, 42, 40,148,132, 63, 36, 83,167, 45, 56,146, 65, 80, 2,
-255,255, 0, 54,254,181, 4,141, 3, 96, 16, 39, 11,195, 1,234, 2,202, 16, 6, 4, 56, 0, 0, 0, 2, 0,222,255,198, 3,243,
- 2,222, 0, 15, 0, 31, 0, 0, 1, 34, 7, 6, 23, 22, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38, 39, 50, 23, 22, 21, 6, 7, 6,
- 35, 34, 39, 38, 53, 52, 55, 54, 2, 14, 66, 33, 26, 1, 1, 55, 57, 57, 91, 93, 75, 66,123,152,198,182,141, 1,147,165,132, 96,
- 81,167, 37, 84, 2, 42, 87, 69,123, 82, 44, 44, 57, 46, 85, 77, 65,120,179,160,124,148,200, 75, 85, 35, 74,239,181, 78,185, 0,
- 0, 2, 0, 76,254, 12, 4, 51, 2,134, 0, 11, 0, 38, 0, 0, 1, 34, 7, 6, 21, 20, 23, 22, 23, 52, 39, 38, 1, 16, 7, 6,
- 7, 6, 33, 53, 32, 55, 54, 55, 38, 39, 38, 39, 38, 53, 52, 55, 54, 51, 50, 23, 22, 23, 22, 2,225, 63, 44, 24, 51, 47,192, 86,
- 37, 1, 46,172, 45,186,190,254,106, 1,115,161,224, 49,118, 45,139, 51,116,211, 57, 62, 89, 72,131, 24, 17, 1,196, 57, 33, 36,
- 55, 43, 40, 4,184, 59, 25,254,244,254,218,174, 46, 84, 86,184, 76,104,139, 3, 7, 24, 43, 98,137,217, 90, 24, 51, 91,142,102,
- 0, 1, 0, 25,254,243, 4,209, 3, 28, 0, 53, 0, 0, 37, 6, 7, 6, 35, 34, 39, 36, 17, 52, 55, 51, 6, 23, 22, 23, 22, 51,
- 50, 55, 54, 55, 54, 53, 52, 39, 38, 39, 38, 55, 54, 55, 54, 51, 50, 23, 22, 23, 35, 52, 39, 38, 7, 6, 7, 6, 21, 20, 23, 22,
- 23, 22, 23, 22, 4,121,132,224,177, 93,129, 72,254,219, 63,184, 66, 1, 2,164, 75, 83,120,108,107, 65, 59, 27, 34,132, 98, 1,
- 1, 94, 77, 96,143, 55, 50, 17,184, 19, 27, 39, 20, 24, 35,125, 91, 55, 31, 1, 1, 12,195, 48, 38, 26,104, 1, 5,117,113,131,
- 99,147, 45, 20, 35, 35, 78, 71, 34, 46, 42, 51, 58, 44,131,150, 61, 50, 73, 66,137, 61, 25, 34, 4, 2, 20, 30, 57, 41, 44, 32,
-103, 58, 94, 77,255,255, 0, 25,254, 12, 4,209, 3, 28, 16, 39, 11,196, 1,114,254, 12, 16, 6, 4, 2, 0, 0, 0, 2, 1, 68,
- 4,186, 3,140, 6,154, 0, 3, 0, 7, 0, 0, 1, 53, 37, 21, 1, 53, 37, 21, 1, 68, 2, 72,253,184, 2, 72, 5,170,110,130,
-110,254,142,110,130,110, 0, 0, 0, 2, 1, 68, 4,186, 3,140, 6,253, 0, 38, 0, 53, 0, 0, 1, 54, 55, 38, 39, 38, 53, 52,
- 55, 54, 51, 50, 23, 22, 21, 20, 7, 22, 51, 22, 51, 21, 34, 47, 1, 6, 7, 6, 35, 34, 39, 38, 53, 51, 20, 23, 22, 51, 50, 55,
- 54, 55, 54, 53, 52, 38, 35, 34, 7, 6, 21, 20, 23, 22, 2,116, 36, 22, 33, 23,108, 68, 29, 63, 73, 39, 56, 13, 19, 14, 19, 19,
- 46, 20, 52, 26, 76, 84, 94,115, 55, 16, 90, 12, 36, 48, 56,158, 4, 2, 10, 34, 20, 24, 10, 18, 44, 20, 5,100, 36, 42, 7, 13,
- 57, 94, 87, 52, 21, 39, 54, 79, 39, 38, 1, 1,110, 2, 5, 61, 78, 86,154, 41,113, 97, 26, 75,238, 7, 7, 21, 24, 34, 28, 9,
- 13, 28, 37, 18, 8, 0, 0, 0, 0, 2, 1, 68,254, 22, 3,140,255,246, 0, 3, 0, 7, 0, 0, 1, 53, 37, 21, 37, 53, 37, 21,
- 1, 68, 2, 72,253,184, 2, 72,254, 22,110,130,110,110,110,130,110, 0, 0, 0, 0, 1, 1, 68, 4,186, 3,140, 5,170, 0, 3,
- 0, 0, 1, 53, 37, 21, 1, 68, 2, 72, 4,186,110,130,110, 0, 0, 2, 1, 68, 4,185, 3,140, 6,253, 0, 31, 0, 47, 0, 0,
- 1, 38, 39, 38, 53, 52, 55, 54, 51, 50, 23, 22, 21, 20, 7, 22, 51, 22, 51, 21, 34, 39, 38, 39, 6, 7, 6, 35, 53, 50, 55, 54,
- 55, 54, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 2,146, 9, 19,108, 68, 29, 63, 73, 39, 56, 15, 17, 18, 19, 19,
- 34, 32, 31, 27, 43, 69,201,147,153,139, 22, 86, 4, 2, 10, 18, 16, 20, 24, 10, 18, 44, 20, 5,186, 2, 10, 56, 95, 87, 52, 21,
- 39, 54, 79, 32, 45, 1, 1,110, 2, 2, 3, 61, 42,123,110,109, 18,112, 7, 7, 21, 24, 34, 14, 14, 9, 13, 28, 37, 18, 8, 0,
- 0, 1, 1, 68,254,232, 3,140,255,216, 0, 3, 0, 0, 1, 53, 37, 21, 1, 68, 2, 72,254,232,110,130,110, 0, 0, 1, 1, 48,
- 4,202, 3,161, 6,244, 0, 40, 0, 0, 1, 6, 7, 6, 7, 6, 39, 38, 53, 52, 55, 51, 6, 23, 22, 23, 22, 55, 54, 55, 54, 53,
- 51, 20, 23, 22, 55, 54, 53, 52, 39, 51, 22, 7, 6, 7, 6, 7, 6, 39, 38, 2,120, 15, 33, 57, 69, 79, 41, 34, 16, 97, 12, 1,
- 3, 22, 19, 50, 61, 4, 2, 96, 3, 14, 75, 71, 13,103, 15, 3, 3, 24, 38, 90, 71, 31, 27, 5,132, 77, 39, 68, 1, 2, 65, 50,
-111,109, 98,125, 56, 84, 34, 28, 23, 26,168, 82, 89, 36, 54,197, 2, 1,173,115, 57, 73,116,133, 54, 88, 11, 9, 33, 30, 0, 0,
- 0, 2, 1, 86, 4,225, 3,122, 7, 6, 0, 9, 0, 19, 0, 0, 1, 52, 38, 34, 6, 21, 20, 22, 50, 62, 1, 20, 6, 35, 34, 38,
- 52, 54, 51, 50, 3, 0, 88,128, 88, 88,128, 88,122,158,116,114,160,160,114,116, 5,244, 63, 88, 87, 64, 65, 87, 88,179,230,160,
-160,230,159, 0, 0, 1, 1, 0, 4,185, 3,208, 5,193, 0, 18, 0, 0, 1, 55, 22, 23, 22, 51, 50, 55, 54, 55, 21, 6, 7, 6,
- 35, 34, 38, 39, 7, 1, 0,160,103, 67, 42, 54, 58, 42,107, 87, 90, 90, 66, 54, 34,152, 68,166, 5, 54,123, 83, 21, 13, 16, 41,
- 76,125, 64, 29, 22, 34, 70,128,255,255, 1,189, 4,191, 3, 20, 6,120, 16, 6, 4, 32, 0,141,255,255, 1,189,254, 12, 3, 20,
-255,197, 16, 7, 4, 32, 0, 0,248,218, 0, 0, 0, 1, 1, 92, 4,238, 3,118, 6, 52, 0, 6, 0, 0, 1, 3, 51, 23, 55, 51,
- 3, 2, 30,194,138,130,130,140,196, 4,238, 1, 70,195,195,254,186, 0, 0, 0, 0, 1, 1,250, 1,194, 2,214, 2,188, 0, 3,
- 0, 0, 1, 51, 21, 35, 1,250,220,220, 2,188,250, 0, 0, 0, 0, 1, 1,150, 0, 0, 3, 60, 5, 20, 0, 9, 0, 0, 33, 35,
- 16, 39, 2, 3, 51, 18, 19, 22, 3, 60,180, 38, 49,155,196,121, 73, 32, 1,169,220, 1, 33, 1,110,254,221,254,148,155, 0, 0,
- 0, 1, 0,154, 0, 0, 4, 56, 5, 20, 0, 24, 0, 0, 1, 22, 23, 22, 17, 35, 16, 39, 2, 3, 51, 22, 23, 22, 51, 22, 55, 54,
- 55, 51, 6, 7, 2, 35, 34, 1,237, 28, 23, 32,180, 38, 49,155,198, 67, 3, 82,180,122, 54, 32, 8,180, 8, 42, 98,244,111, 3,
- 97,106,114,155,254, 22, 1,169,220, 1, 33, 1,110,155, 5,152, 2,149, 85, 80,121,109,254,250, 0, 1, 0,134, 0, 0, 4, 76,
- 5, 20, 0, 37, 0, 0, 1, 22, 23, 22, 17, 35, 16, 39, 2, 3, 51, 22, 23, 22, 55, 54, 55, 54, 53, 51, 20, 23, 22, 23, 22, 55,
- 54, 53, 51, 16, 7, 6, 35, 34, 39, 6, 7, 6, 1,228, 24, 16, 32,180, 38, 49,155,196, 47, 40, 19, 48, 72, 8, 6,180, 14, 21,
- 47, 60, 14, 14,180, 40, 70,156,132, 33, 51, 52, 46, 3, 53, 87, 89,190,254, 57, 1,169,220, 1, 33, 1,110,114,124, 62, 8, 12,
- 64, 50,166,222, 25, 37, 2, 2, 44, 42,202,254,207, 59,108, 62, 51, 12, 10, 0, 0, 1, 0,236,255,236, 3,228, 5, 32, 0, 42,
- 0, 0, 1, 21, 6, 7, 6, 21, 20, 23, 22, 23, 21, 34, 7, 6, 21, 20, 23, 22, 23, 50, 55, 54, 55, 21, 6, 7, 6, 35, 34, 39,
- 38, 53, 52, 55, 54, 55, 38, 39, 38, 39, 38, 55, 54, 3, 96,121,103,136, 92, 78, 78, 89,135,112, 48, 60, 74, 98, 88,126, 86, 72,
-124,101,101,150,112,100,108, 64, 88, 72, 44, 55, 1, 1,225,113, 5, 32,168, 17, 52, 67, 64, 35, 57, 48, 4,164, 76, 64,114, 82,
- 60, 74, 1, 23, 33, 43,196, 37, 28, 23,125,112,165,134,128, 76, 24, 32, 48, 58, 63,150,128, 63, 0, 2, 0,202,255,236, 4, 8,
- 5, 37, 0, 13, 0, 28, 0, 0, 0, 34, 7, 6, 7, 6, 23, 22, 32, 55, 54, 39, 38, 39, 3, 22, 19, 22, 21, 16, 7, 6, 32, 39,
- 38, 17, 52, 55, 18, 2,171,133, 86, 79, 3, 5, 71, 41, 0,255, 40, 72, 4, 4, 78,154,191,135, 90, 86,104,254, 61,105, 84, 90,
-135, 4,104,212,192,174,199,115, 66, 66,115,199,174,192, 1,144, 1,254,161,235,179,254,203,117,144,144,117, 1, 53,179,235, 1,
- 97, 0, 0, 0, 0, 1, 0,154, 0, 0, 4, 55, 5, 20, 0, 17, 0, 0, 1, 16, 19, 18, 19, 35, 2, 3, 2, 39, 6, 35, 34, 39,
- 53, 22, 51, 50, 3,147, 37, 29, 98,196, 85, 31, 28, 2, 96,142,178,167,180,165,210, 5, 20,254,220,254,159,254,235,254,134, 1,
- 68, 1, 75, 1, 42,145, 28, 50,180, 50, 0, 0, 0, 1, 0,126, 0, 0, 4, 82, 5, 20, 0, 18, 0, 0, 33, 38, 3, 2, 39, 51,
- 18, 19, 22, 23, 54, 55, 18, 19, 51, 2, 3, 2, 7, 2, 14, 16, 98,160,126,196,154, 90, 48, 2, 2, 48, 90,154,196,164,120, 86,
- 30,246, 1, 58, 1,254,230,254,202,254,197,168, 11, 11,168, 1, 59, 1, 54,254,211,254, 73,254,202,250, 0, 0, 0, 1, 0,126,
- 0, 0, 4, 82, 5, 20, 0, 18, 0, 0, 1, 51, 22, 19, 18, 19, 35, 2, 3, 38, 39, 6, 7, 2, 3, 35, 54, 19, 18, 2, 14,180,
- 30, 86,120,164,196,154, 90, 48, 2, 2, 48, 90,154,196,126,160, 98, 5, 20,250,254,202,254, 73,254,211, 1, 54, 1, 59,168, 11,
- 11,168,254,197,254,202,230, 1,254, 1, 58, 0, 0, 2, 0,161, 0, 0, 4, 48, 5, 31, 0, 20, 0, 35, 0, 0, 1, 38, 39, 38,
- 39, 38, 39, 38, 55, 54, 23, 22, 23, 22, 23, 22, 23, 18, 19, 35, 2, 3, 39, 38, 39, 38, 35, 34, 7, 6, 23, 22, 23, 22, 23, 22,
- 2,252,205, 61,165, 66,103, 2, 4, 99,126,146,154, 92,128, 14, 10, 18, 36, 91,196, 92, 36, 7, 10, 34, 56,107, 78, 58, 58, 2,
- 1, 59, 33, 77, 79, 2, 85, 3, 15, 41, 65,101,123,142, 98,126, 1, 1, 84,118,167,135,150,254,205,254,164, 1,156, 1,110, 87,
-108, 60, 97, 55, 54, 71, 57, 54, 31, 13, 14, 0, 0, 3, 0,200, 0, 0, 4, 10, 5, 20, 0, 3, 0, 7, 0, 11, 0, 0, 37, 51,
- 21, 35, 1, 51, 21, 35, 37, 51, 1, 35, 3, 70,180,180,253,144,180,180, 2,148,160,253, 94,160,250,250, 5, 20,250,250,250,236,
- 0, 1, 1, 54,255, 31, 3,155, 2,139, 0, 17, 0, 0, 5, 54, 55, 54, 55, 54, 53, 52, 39, 51, 22, 21, 20, 7, 6, 7, 6, 7,
- 1, 54,168,113,107, 47, 25, 21,150, 24, 75, 79,165,106,188, 70, 5,113,109,143, 80, 79, 96, 96, 78,111,170,160,166,113, 72, 6,
- 0, 1, 1,214, 3,254, 2,251, 5,213, 0, 5, 0, 0, 1, 51, 21, 3, 35, 19, 2, 40,211,164,129, 82, 5,213,152,254,193, 1,
- 63, 0, 0, 0, 0, 1, 0,146, 0,206, 4, 64, 4, 76, 0, 9, 0, 0, 19, 33, 27, 1, 33, 5, 19, 37, 5, 19,146, 1,103,111,
-113, 1,103,254,221,112,254,219,254,221,111, 2,247, 1, 85,254,171,212,254,171,211,211, 1, 85, 0, 1, 0, 69,255,235, 4,176,
- 2, 27, 0, 25, 0, 0, 1, 22, 21, 20, 7, 6, 5, 6, 39, 38, 53, 52, 55, 51, 6, 21, 20, 23, 22, 51, 50, 55, 54, 53, 52, 39,
- 4,150, 26,166,152,254,233,223,154,157, 41,184, 43,117, 98,132,188,106,123, 25, 2, 27, 71,132,123,121,111, 1, 1, 57, 59,225,
- 62,124,138, 48,108, 30, 25, 65, 76,106, 64, 71, 0, 2, 0, 31,254,124, 4,116, 3,217, 0, 15, 0, 56, 0, 0, 1, 54, 53, 52,
- 39, 38, 7, 6, 7, 6, 7, 20, 23, 22, 51, 50, 1, 54, 55, 54, 17, 6, 35, 34, 39, 38, 53, 52, 55, 54, 55, 54, 51, 50, 23, 22,
- 23, 22, 21, 20, 7, 6, 7, 6, 39, 38, 39, 38, 53, 52, 55, 51, 6, 7, 20, 23, 22, 3,129, 41, 66, 31, 44, 52, 40, 40, 1, 55,
- 40, 42, 72,254, 91,212, 98,203, 63,122,133, 75, 98, 8, 23,150, 78, 76, 99, 57,103, 39, 33, 46, 57,165,187,233,206,138, 77, 82,
-183, 86, 2, 18, 86, 2, 25, 43, 77, 59, 51, 25, 1, 1, 42, 41, 51, 80, 38, 25,253, 59, 2,102,212, 1, 52, 75, 67, 87,129, 45,
- 51,148, 69, 36, 50, 90,119,102,160,252,142,179,131,148, 1, 1,191,106,125,180,216,187,153, 72, 40,176, 0, 0, 0, 1, 1,189,
- 5, 50, 3, 20, 6,235, 0, 24, 0, 0, 1, 55, 38, 39, 38, 55, 54, 55, 54, 23, 22, 23, 21, 38, 35, 34, 7, 6, 21, 20, 23, 22,
- 55, 21, 5, 1,189, 78, 44, 16, 17, 1, 2, 54, 56, 94, 61, 53, 51, 63, 66, 17, 29, 94, 33,120,254,169, 5,150, 18, 20, 36, 37,
- 45, 95, 44, 46, 1, 1, 32,100, 33, 18, 32, 26, 77, 27, 10, 29,102, 77, 0, 0,255,255, 0, 69,255,235, 4,176, 4,153, 16, 39,
- 3,220, 0, 42,253,168, 16, 6, 4, 30, 0, 0,255,255, 0, 69,255,235, 4,176, 4, 26, 16, 39, 11,204, 2, 22, 3,132, 16, 6,
- 4, 30, 0, 0,255,255, 0, 69,254, 12, 4,176, 2, 27, 16, 39, 11,204, 2, 16,255, 6, 16, 6, 4, 30, 0, 0,255,255, 0, 69,
-254, 12, 4,176, 3, 32, 16, 39, 11,208, 1,152,254, 12, 16, 38, 4, 30, 0, 0, 16, 7, 11,196, 1,184, 2,138,255,255, 0, 69,
-255,235, 4,176, 3,182, 16, 39, 11,203, 1,169, 3, 32, 16, 6, 4, 30, 0, 0,255,255, 0, 69,254, 12, 4,176, 2, 27, 16, 39,
- 11,203, 1,158,255, 6, 16, 6, 4, 30, 0, 0,255,255, 0, 69,255,235, 4,176, 4, 26, 16, 39, 11,205, 1,164, 3,132, 16, 6,
- 4, 30, 0, 0,255,255, 0, 69,254, 12, 4,176, 2, 27, 16, 39, 11,205, 1,158,255, 6, 16, 6, 4, 30, 0, 0,255,255, 0, 88,
-254, 11, 4,173, 5,176, 16, 39, 4, 13,255,174,255, 56, 16, 6, 3,235, 0, 0,255,255, 0, 88,254, 11, 4,173, 5,170, 16, 39,
- 11,204, 1,194, 5, 20, 16, 6, 3,235, 0, 0,255,255, 0, 88,254, 11, 4,173, 3,103, 16, 39, 11,196, 2, 42, 0, 81, 16, 6,
- 3,235, 0, 0,255,255, 0, 88,254, 11, 4,173, 3,103, 16, 39, 11,204, 2,203, 0,175, 16, 6, 3,235, 0, 0,255,255, 0, 88,
-254, 11, 4,173, 5,170, 16, 39, 11,197, 1, 84, 4, 26, 16, 6, 3,235, 0, 0,255,255, 0, 88,254, 11, 4,173, 3,103, 16, 39,
- 11,203, 2,106, 0,150, 16, 6, 3,235, 0, 0,255,255, 0, 88,254, 11, 4,173, 3,103, 16, 39, 11,205, 2, 98, 0,175, 16, 6,
- 3,235, 0, 0,255,255,255,204,254, 8, 4,208, 4,168, 16, 38, 3,239, 0, 0, 16, 7, 3,220, 1, 98,253,183,255,255,255,204,
-254, 8, 4,181, 4, 6, 16, 38, 3,239, 0, 0, 16, 7, 4, 15, 1, 62,253,210,255,255,255,204,254, 8, 4,101, 4,113, 16, 39,
- 11,197, 2,213, 2,225, 16, 6, 3,239, 0, 0, 0, 2,255,181,255,164, 4,140, 3,120, 0, 14, 0, 57, 0, 0, 1, 54, 53, 52,
- 39, 38, 7, 34, 6, 7, 20, 23, 22, 51, 50, 19, 6, 7, 6, 35, 34, 39, 38, 3, 38, 55, 51, 6, 21, 20, 23, 22, 51, 50, 55, 54,
- 55, 54, 55, 6, 35, 34, 39, 38, 53, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 16, 3,163, 41, 66, 31, 44, 52, 80, 1, 55,
- 38, 44, 72,157,105,167,178,165,163,114,244, 2, 2, 36,184, 36,120, 90,131,127, 84,188, 48, 65, 38, 63,122,133, 75, 98, 8, 23,
-150, 78, 76, 90, 66, 96, 46, 23, 1,184, 44, 76, 57, 53, 26, 2, 84, 50, 82, 36, 26,254,166, 84, 38, 40, 41, 88, 1, 21,138, 92,
- 94,136,147, 45, 34, 22, 50, 28, 40,104, 76, 68, 86,130, 44, 52,148, 68, 36, 50, 72,102, 51,139,254,187, 0, 0,255,255,255,181,
-255,164, 4,140, 5,153, 16, 39, 11,197, 2,112, 4, 9, 16, 6, 4, 51, 0, 0, 0, 1, 0, 10,255,167, 5, 93, 6, 20, 0, 42,
- 0, 0, 37, 50, 54, 55, 54, 53, 52, 47, 1, 38, 53, 52, 55, 54, 55, 1, 21, 1, 6, 21, 20, 31, 1, 22, 21, 20, 7, 6, 7, 6,
- 35, 34, 39, 36, 17, 52, 55, 51, 6, 21, 20, 23, 22, 2, 38,162,218, 54, 52, 95,183, 62, 18, 46, 86, 2, 15,254,104, 71, 32,148,
-142,104, 82,164, 99,207,112,108,254,182, 63,184, 65,203, 79, 88,106, 60, 57, 85, 57,105,202, 68, 71, 84, 31, 79, 65, 1,142,209,
-254,194, 55, 46, 63, 35,162,155,111,157,117, 92, 78, 47, 32, 98, 1, 11,138, 92, 94,136,120, 72, 28, 0, 0, 0,255,255, 0, 10,
-255,167, 5, 97, 7, 56, 16, 39, 11,206, 2,170, 0, 0, 16, 6, 4, 53, 0, 0,255,255, 0, 66,254,200, 4,250, 7,196, 16, 39,
- 4, 15, 1,132, 1,144, 16, 6, 3,253, 0, 0, 0, 1, 0, 54,254,181, 4,141, 2,176, 0, 29, 0, 0, 1, 20, 7, 6, 7, 6,
- 35, 34, 39, 38, 17, 52, 55, 51, 6, 21, 20, 23, 22, 51, 50, 55, 54, 55, 54, 53, 52, 39, 51, 22, 4,141,100, 71,142,140,129,172,
-123,234, 53,184, 55,161, 57,129, 84, 63,157, 58, 34, 70,184, 72, 0,255,187,164,116, 60, 59, 63,120, 1, 18,174,142,174,142,180,
- 67, 24, 20, 51,167, 98, 96,249,152,159, 0, 0, 0, 3, 0, 0,255,189, 4,147, 3,229, 0, 38, 0, 54, 0, 70, 0, 0, 40, 1,
- 39, 38, 53, 52, 55, 51, 6, 21, 20, 23, 22, 51, 50, 55, 38, 39, 38, 53, 52, 55, 54, 23, 38, 39, 53, 22, 23, 4, 23, 22, 21, 20,
- 7, 6, 35, 34, 39, 55, 54, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 37, 22, 21, 20, 7, 6, 7, 22, 51, 50, 55,
- 54, 53, 52, 39, 38, 1,221,254,220, 67,118, 16,184, 14, 30, 45, 40, 59, 71, 45, 15, 18, 45, 48, 77, 44, 81,219,220, 1, 5, 59,
- 14, 40, 74,175,131,154, 21, 36, 34, 39, 15, 22, 58, 65, 23, 22, 7, 21, 1, 71, 6, 98, 12, 17, 52, 49,126, 16, 7, 33, 29, 36,
- 64,128, 75, 53, 58, 44, 43, 11, 16, 11,105, 69, 78, 64, 84, 83, 90, 9, 39, 14,185, 67,180,214,217, 52, 57,103, 61,113,108,228,
- 27, 64, 72, 61, 46, 37, 52, 45, 43, 35, 30, 37,118,188, 37, 39,138,114, 14, 19, 46, 67, 30, 33, 60, 78, 69, 0,255,255, 0, 76,
-254, 12, 4, 51, 4, 72, 16, 39, 4, 15, 0,112,254, 20, 16, 6, 4, 1, 0, 0,255,255, 0, 25,254,243, 4,209, 3, 28, 16, 6,
- 4, 2, 0, 0,255,255, 0, 25,254,243, 4,209, 4, 20, 16, 39, 4, 15,255, 40,253,224, 16, 6, 4, 2, 0, 0,255,255, 0,222,
-255,198, 3,243, 2,222, 16, 6, 4, 0, 0, 0,255,255, 1,250, 1,194, 2,214, 2,188, 16, 6, 4, 16, 0, 0,255,255, 1,150,
- 0, 0, 3, 60, 5, 20, 16, 6, 4, 17, 0, 0,255,255, 0,154, 0, 0, 4, 56, 5, 20, 16, 6, 4, 18, 0, 0,255,255, 0,134,
- 0, 0, 4, 76, 5, 20, 16, 6, 4, 19, 0, 0, 0, 1, 0,175, 0, 0, 4, 34, 5, 37, 0, 39, 0, 0, 1, 38, 53, 52, 55, 54,
- 51, 50, 23, 21, 38, 7, 6, 7, 6, 21, 20, 23, 22, 55, 54, 55, 21, 6, 35, 34, 39, 22, 23, 22, 17, 35, 16, 39, 2, 3, 51, 22,
- 23, 22, 2, 37, 4, 88, 92,108, 84, 88, 92, 68, 56, 30, 31, 25, 47, 48, 69,141,195, 61,141,146, 27, 23, 32,180, 37, 49,156,199,
- 66, 3, 27, 4, 20, 15, 19,120, 58, 61, 25,156, 36, 2, 1, 33, 34, 21, 52, 21, 39, 2, 2, 17,180, 26, 81,106,114,155,254, 22,
- 1,169,220, 1, 33, 1,110,155, 5, 56, 0, 0, 0, 2, 0,172,255,244, 4, 37, 5, 36, 0, 19, 0, 39, 0, 0, 1, 22, 51, 50,
- 55, 54, 53, 52, 39, 38, 34, 7, 6, 21, 20, 23, 22, 51, 50, 55, 23, 6, 39, 38, 39, 38, 53, 16, 55, 18, 51, 50, 19, 22, 19, 22,
- 7, 6, 7, 6, 2,194, 45, 50, 34, 18, 27, 87, 90,174, 91, 86, 27, 15, 37, 51, 44, 90, 40,145,160, 46, 53, 95,179,170,162,187,
- 94, 1, 1, 53, 51,156,144, 1, 90,161, 74,107, 86,215,216,224,224,213,218, 60,133, 74,161,208,151, 2, 2,156,181,124, 1, 38,
-196, 1,118,254,138,187,254,209,141,164,157, 1, 2, 0, 0, 0, 0, 1, 1, 8, 0, 0, 3,200, 5, 32, 0, 32, 0, 0, 33, 18,
- 55, 54, 55, 34, 39, 38, 53, 52, 55, 54, 55, 54, 23, 21, 38, 35, 34, 7, 6, 21, 20, 23, 22, 51, 50, 55, 21, 6, 7, 6, 7, 1,
- 8, 66,110, 68,100, 78, 46,134, 98,112,140,121, 87, 86,116, 62, 48, 66, 55, 44,103,140, 96,225,111,134, 54, 0,255,181,111, 85,
- 37,109,151,175, 96,109, 2, 2, 33,180, 51, 47, 65, 98, 77, 51, 41, 41,180, 73,152,183,225, 0,255,255, 0,126, 0, 0, 4, 82,
- 5, 20, 16, 6, 4, 23, 0, 0,255,255, 0,126, 0, 0, 4, 82, 5, 20, 16, 6, 4, 24, 0, 0,255,255, 0,161, 0, 0, 4, 48,
- 5, 31, 16, 6, 4, 25, 0, 0, 0, 3, 0, 62,255,235, 4,100, 4,123, 0, 7, 0, 15, 0, 42, 0, 62, 64, 13, 35, 6, 37, 10,
- 2, 27, 20, 14, 6, 22, 6, 16, 43, 16,220,236,204,204,220, 60,204,204, 47,236, 49, 0, 64, 7, 0, 22, 4, 18,153, 37, 43, 16,
- 60,244,204,220,204, 64, 9, 12, 25, 8, 40,140, 29, 33,190, 44, 16,252, 60,236,204,220,204, 48, 37, 38, 21, 20, 55, 54, 39, 38,
- 3, 38, 21, 20, 55, 54, 39, 38, 19, 20, 35, 34, 53, 52, 55, 17, 6, 35, 34, 53, 52, 51, 50, 23, 54, 51, 32, 25, 1, 35, 17, 52,
- 35, 34, 7, 1, 20, 63, 63, 66, 1, 1, 76, 63, 63, 66, 1, 1,162,198,230,244, 21, 21,202,202,145, 44, 76,189, 1,150,184,226,
-137, 87,244, 2, 66, 65, 1, 1, 63, 62, 3, 5, 2, 66, 65, 1, 1, 63, 62,252,195,205,201,202, 6, 1,112, 8,208,191, 81, 81,
-254,190,252,199, 3, 57,170,142, 0, 2, 0,108,255,221, 4,174, 4,141, 0, 3, 0, 44, 0, 0, 0, 34, 20, 50, 7, 34, 53, 52,
- 55, 54, 55, 36, 19, 22, 5, 7, 4, 23, 22, 51, 50, 54, 51, 50, 23, 7, 38, 35, 34, 6, 35, 32, 39, 52, 37, 55, 54, 53, 52, 5,
- 6, 7, 22, 23, 20, 1,130,128,128, 68,210,188,187,151, 1,229, 1, 2,254,152,182,254,227, 3, 5,231, 74,214, 80,158,138,134,
-105, 63, 51,204,107,254, 93, 1, 1,180,178,214,254,200, 75, 77, 63, 1, 3,111,128,148,228,137, 97, 98, 1, 2,254,169,237,117,
- 59, 92, 83,102,142,213, 97,145,127,249,198,142, 58, 70,130,189, 3, 1, 55, 56, 85,216, 0, 0, 0, 3, 0,121,255,235, 4, 80,
- 4,141, 0, 7, 0, 17, 0, 56, 0, 0, 1, 22, 51, 50, 55, 38, 39, 34, 19, 22, 39, 38, 35, 34, 23, 20, 21, 22, 37, 52, 55, 38,
- 55, 54, 36, 23, 4, 18, 25, 1, 35, 17, 16, 38, 7, 14, 1, 23, 54, 55, 32, 7, 20, 35, 34, 39, 6, 23, 22, 23, 54, 51, 50, 21,
- 20, 7, 4, 1, 89, 54, 5, 23, 48, 73, 1, 18,127, 54, 2, 3, 49, 54, 2, 1,254,174, 42, 44, 3, 6, 1, 11,229, 1, 33,191,
-184,127,169,177,155, 3, 42, 58, 1, 5, 1,250, 57, 20, 31, 3, 2, 20, 23,171,204,204,254,117, 2, 96, 20, 18, 17, 1,254, 16,
- 1, 48, 39, 34, 1, 3, 47,220,127,128, 54, 79,211,217, 1, 1,254,224,254,214,253,191, 2, 65, 1, 1,183, 3, 3,184, 75, 18,
- 1,165,165, 11, 37, 91, 57, 46,141,200,181, 1, 1, 0, 0, 0, 0, 2, 0,246,254, 24, 3,219, 4,140, 0, 25, 0, 33, 0, 0,
- 19, 52, 54, 51, 32, 25, 1, 16, 6, 35, 34, 38, 39, 55, 22, 51, 50, 53, 17, 16, 35, 22, 21, 6, 39, 38, 19, 38, 23, 6, 55, 22,
- 39, 54,247,162,221, 1,101,155,204,214,116, 13,189, 33,121,175,130, 2, 6,215,209,215, 67, 3, 2, 66, 66, 2, 1, 3,166,113,
-117,253,244,253,143,254,249,240,208,141, 10,209,243, 2,223, 1,104, 21, 33,207, 1, 1, 1, 9, 1, 65, 67, 3, 2, 66, 66, 0,
- 0, 2, 0,124,255,255, 4, 85, 4,154, 0, 11, 0, 41, 0, 0, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 3, 50, 23, 22,
- 25, 1, 7, 19, 52, 39, 20, 39, 38, 53, 52, 51, 50, 23, 16, 5, 6, 7, 6, 29, 1, 35, 53, 52, 55, 54, 2,110, 36, 28, 32, 32,
- 37, 27, 32, 42,250,124,123,184, 1,101,200,217,218,244, 54,254,196,207, 76, 17,184, 30,106, 2, 96, 32, 32, 37, 27, 34, 30, 37,
- 27, 2, 58,121,120,254,217,253,126, 1, 1, 41,142, 82,166, 1, 2,183,192,104, 1,149, 5, 4,134, 30,134, 75, 75,170, 62,220,
- 0, 2, 0, 97,254, 25, 4,201, 4,131, 0, 11, 0, 57, 0, 0, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 3, 38, 53, 52,
- 53, 54, 55, 54, 55, 36, 19, 22, 13, 1, 6, 23, 22, 51, 50, 55, 54, 51, 50, 21, 20, 19, 48, 7, 2, 17, 6, 33, 32, 53, 52, 45,
- 1, 54, 53, 52, 5, 6, 7, 22, 23, 6, 1, 54, 36, 28, 32, 32, 37, 27, 32, 35,210, 2,229,118,202, 1,201, 2, 1,254,138,254,
-251,169, 5, 4,199,179, 93, 35,120,151,134,144,176, 46,254,164,254,127, 1, 62, 1, 1,229,254,226,114, 62, 62, 1, 36, 3,111,
- 32, 32, 37, 27, 34, 30, 37, 27,254,236, 16,209, 2, 1,133,125, 64, 1, 2,254,188,214,126, 89, 57,112,101,183, 68,216,243,254,
-181, 81, 1, 99, 1, 70,211,248,226,108, 87, 78,110,169, 3, 1, 45, 55, 86,188, 0, 2, 0,114,255,238, 4, 92, 4,150, 0, 11,
- 0, 44, 0, 0, 1, 50, 54, 53, 52, 38, 39, 38, 6, 21, 20, 22, 3, 20, 33, 32, 25, 1, 51, 17, 16, 37, 36, 17, 52, 53, 54, 55,
- 38, 55, 18, 5, 22, 21, 20, 7, 6, 39, 22, 23, 22, 55, 21, 7, 6, 1,215, 36, 28, 33, 31, 37, 27, 32,130, 1, 47, 1, 64,184,
-254, 8,254, 15, 3,162,166, 1, 1, 1,108,180,192,126, 46, 2, 90, 65,144,141,147, 3,164, 32, 32, 36, 27, 1, 1, 33, 32, 36,
- 28,253,140,174, 1,184, 2, 63,253,193,253,180, 1, 1, 1, 61, 2, 1,145, 81,109,234, 1, 46, 2, 1,176,186, 2, 1,117,189,
- 71, 52, 12,161, 23, 24, 0, 0, 0, 2, 0,123,255,227, 4, 86, 4,124, 0, 7, 0, 28, 0, 44, 64, 9, 27, 6, 8, 6, 16, 2,
- 21, 6, 14, 47,252,204,220,204, 47,236, 49, 0, 64, 12, 11,140, 24,190, 29, 0, 14, 4, 18,153, 28, 29, 16, 60,244,204,220,204,
- 16,252,252, 48, 37, 34, 21, 20, 51, 50, 53, 52, 5, 17, 52, 5, 4, 21, 17, 36, 23, 22, 35, 34, 53, 17, 52, 36, 55, 54, 4, 21,
- 17, 1,102, 64, 64, 64, 1,248,254,202,254,203, 1, 24, 1, 1,231,235, 1, 19,218,197, 1, 41,235, 64, 64, 64, 64,235, 3, 31,
-201, 3, 3,195,254, 80, 27,223,200,200, 2,142,199,121, 2, 2,120,204,252,199, 0, 2, 0,149,255,226, 4,111, 4,161, 0, 11,
- 0, 42, 0, 0, 37, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 19, 34, 2, 35, 34, 7, 3, 32, 21, 20, 35, 34, 53, 17, 16, 51,
- 50, 18, 51, 50, 18, 55, 50, 25, 1, 35, 17, 52, 35, 34, 2, 1,128, 36, 28, 32, 32, 37, 27, 32,228,122,119, 15, 54, 1, 1, 1,
- 25,213,251,242,131, 94, 34, 36, 74,133,242,184, 55, 22,102,241, 32, 32, 37, 27, 34, 30, 37, 27, 1,250, 1, 38,225,254, 80,196,
-218,210, 2,150, 1, 87,254,224, 1, 31, 1,254,169,252,182, 3, 48,219,254,224, 0, 3, 0, 26,254, 20, 4, 62, 4,124, 0, 3,
- 0, 7, 0, 35, 0, 0, 36, 34, 20, 50, 0, 34, 20, 50, 19, 50, 23, 22, 35, 34, 53, 17, 6, 35, 38, 53, 54, 55, 54, 23, 54, 51,
- 32, 22, 21, 17, 35, 17, 52, 35, 34, 7, 2, 38,128,128,254,237,128,128,166,241, 2, 2,218,211, 33, 31,167, 1,179,145, 55,121,
-139, 1, 6,158,184,244,123, 94,220,128, 3,166,128,253,221,185,195,227, 2, 73, 7, 2,190,178, 1, 1,101,100,213,109,250,219,
- 5, 37,163,139, 0, 2, 0,106,255,226, 4,104, 4,124, 0, 7, 0, 39, 0, 62, 64, 7, 6, 12, 2, 8, 36, 6, 15, 47,252, 60,
-204,220,204, 64, 7, 20, 6, 32, 24, 6, 26, 41, 16,220,236,220,236, 49, 0, 64, 6, 17,140, 34,153, 26, 41, 16, 60,244,236, 64,
- 9, 4, 38, 0, 29,140, 22, 10,190, 41, 16,252, 60,236,204,220,204, 48, 1, 38, 23, 6, 55, 22, 39, 54, 5, 52, 51, 50, 21, 20,
- 6, 21, 20, 51, 50, 53, 17, 52, 23, 4, 21, 17, 35, 17, 52, 7, 6, 21, 3, 2, 37, 36, 17, 16, 55, 34, 1, 54, 67, 3, 2, 66,
- 67, 3, 2,254,244,202,216,254,170,178,252, 1, 0,164, 98, 82, 1, 1,254,172,254,176,216,214, 4, 18, 2, 66, 67, 3, 1, 65,
- 67, 75,177,173,202,224,212,216,188, 2, 74,254, 1, 1,251,252,129, 3,127,106, 3, 3,101,253,183,254,173, 1, 1, 1,104, 1,
- 48,154, 0, 0, 0, 2, 0, 75,255,227, 4, 84, 4,141, 0, 5, 0, 32, 0, 0, 0, 50, 52, 35, 34, 7, 3, 53, 51, 50, 54, 53,
- 17, 36, 53, 52, 55, 54, 21, 17, 22, 55, 54, 53, 17, 51, 17, 16, 33, 34, 39, 6, 35, 1, 3,128, 64, 62, 2,184,122, 93, 85,254,
-232,226,238, 93,120,152,184,254,180,174, 84,114,217, 3,115,128, 64,252, 48,143,101,156, 1,103, 8,204,221, 1, 1,219,253,117,
-169, 1, 1,177, 3, 47,252,209,254,178,115,115, 0, 2, 0,124,255,238, 4, 84, 4,125, 0, 3, 0, 25, 0, 0, 0, 34, 20, 50,
- 1, 52, 55, 38, 55, 54, 23, 22, 7, 6, 0, 21, 22, 37, 32, 25, 1, 51, 17, 16, 37, 36, 1,169,128,128,254,212,182,183, 1, 1,
-229,237, 1, 1,254,236, 1, 1, 37, 1, 60,184,254, 12,254, 29, 3,238,128,253,210,218,196, 38,182,196, 2, 2,188,151,254,209,
-168,204, 1, 1, 39, 2,180,253, 76,254, 66, 1, 1, 0, 0, 0, 0, 2, 0,124,255,238, 4, 84, 6, 20, 0, 3, 0, 25, 0, 0,
- 0, 34, 20, 50, 1, 52, 55, 38, 55, 54, 23, 22, 7, 6, 0, 21, 22, 33, 32, 25, 1, 51, 17, 16, 37, 36, 1,169,128,128,254,212,
-182,183, 1, 1,229,237, 1, 1,254,236, 1, 1, 37, 1, 60,184,254, 12,254, 29, 3,238,128,253,210,218,196, 38,182,196, 2, 2,
-188,151,254,209,168,203, 1, 39, 4,104,251,152,254, 66, 1, 1, 0, 3, 0, 99,255,239, 4,246, 5, 27, 0, 11, 0, 23, 0, 74,
- 0, 0, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 5, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 1, 43, 1, 38, 39, 6,
- 35, 34, 39, 38, 53, 17, 52, 51, 50, 21, 6, 39, 16, 21, 20, 51, 50, 53, 17, 51, 17, 20, 55, 54, 53, 17, 38, 55, 52, 23, 22, 23,
- 54, 53, 38, 39, 55, 22, 23, 22, 7, 19, 20, 7, 6, 3,132, 36, 28, 32, 32, 37, 27, 32,253,146, 36, 28, 32, 32, 38, 26, 32, 1,
-224, 2, 2, 99,103,101,133,126, 80, 76,210,216, 1,241,102,138,184,114,116,243, 1,208,179, 27, 30, 1, 74,119, 84, 1, 3,152,
- 2, 92, 85, 3,250, 32, 32, 38, 26, 34, 30, 36, 28, 1, 32, 32, 37, 27, 34, 30, 37, 27,251,246, 1, 73, 74, 84, 79,154, 2, 98,
-223,197,199, 23,254,111, 59,132,132, 1, 52,254,203,139, 5, 5,130, 1,204, 8,168,209, 1, 1,152, 22, 80, 54, 65, 94,103, 91,
-195,111,254, 6,164, 80, 73, 0, 0, 2, 0, 99,255,239, 4, 98, 6, 20, 0, 36, 0, 48, 0, 0, 1, 20, 7, 6, 43, 2, 38, 39,
- 6, 35, 34, 39, 38, 53, 17, 52, 51, 50, 21, 6, 39, 16, 21, 20, 51, 50, 53, 17, 51, 17, 20, 55, 54, 53, 17, 51, 1, 34, 6, 21,
- 20, 22, 51, 50, 54, 53, 52, 38, 4, 98, 92, 85,123, 2, 2, 99,103,101,133,126, 80, 76,210,216, 1,241,102,138,184,114,116,184,
-252,212, 36, 28, 32, 32, 38, 26, 32, 1, 44,164, 80, 73, 1, 73, 74, 84, 79,154, 2, 98,223,197,199, 23,254,111, 59,132,132, 1,
- 52,254,203,139, 5, 5,130, 4,232,253,229, 32, 32, 37, 27, 34, 30, 37, 27, 0, 0, 2, 0,101,255,238, 4,108, 4,126, 0, 11,
- 0, 44, 0, 0, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 19, 50, 53, 17, 51, 17, 6, 55, 54, 53, 17, 51, 17, 16, 37, 38,
- 39, 6, 35, 32, 17, 52, 55, 38, 55, 54, 23, 22, 7, 6, 0, 23, 20, 1, 98, 36, 28, 32, 32, 36, 28, 32, 48,110,184, 1,117,104,
-184,254,224,105,103,101,143,254,222,152,138, 2, 2,228,237, 1, 2,254,214, 2, 3,210, 32, 32, 37, 27, 34, 30, 37, 27,252,179,
-167, 1, 52,254,203,174, 5, 5,165, 3, 47,252,209,254,192, 3, 1, 73, 74, 1, 61,240,166, 37,158,249, 1, 1,219,143,254,170,
-144,167, 0, 0, 0, 2, 0,101,255,238, 4,108, 6, 20, 0, 11, 0, 44, 0, 0, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38,
- 19, 50, 53, 17, 51, 17, 6, 55, 54, 53, 17, 51, 17, 16, 37, 38, 39, 6, 35, 32, 17, 52, 55, 38, 55, 54, 23, 22, 7, 6, 0, 23,
- 20, 1, 98, 36, 28, 32, 32, 36, 28, 32, 48,110,184, 1,117,104,184,254,224,105,103,101,143,254,222,152,138, 2, 2,228,237, 1,
- 2,254,214, 2, 3,210, 32, 32, 37, 27, 34, 30, 37, 27,252,179,167, 1, 52,254,203,175, 6, 5,165, 4,232,251, 24,254,192, 3,
- 1, 73, 74, 1, 61,240,166, 37,158,249, 1, 1,219,143,254,170,144,167, 0, 0, 0, 1, 0, 16,255,227, 4, 96, 4, 96, 0, 23,
- 0, 0, 1, 51, 17, 16, 51, 50, 25, 1, 51, 17, 16, 33, 34, 39, 6, 35, 34, 53, 52, 51, 50, 7, 50, 53, 1, 99,184,189,208,184,
-254,120,240, 41, 51,182,198,156,144, 2, 41, 4, 96,253, 44,254,237, 1, 19, 2,212,252,197,254,190, 56, 56,156,150,123,139, 0,
- 0, 2, 0,114,255,238, 4, 92, 6, 20, 0, 11, 0, 44, 0, 0, 1, 50, 54, 53, 52, 38, 39, 38, 6, 21, 20, 22, 3, 20, 33, 32,
- 25, 1, 51, 17, 16, 37, 36, 17, 52, 53, 54, 55, 38, 55, 18, 5, 22, 21, 20, 7, 6, 39, 22, 23, 22, 55, 21, 7, 6, 1,215, 36,
- 28, 33, 31, 37, 27, 32,130, 1, 47, 1, 64,184,254, 8,254, 15, 3,162,166, 1, 1, 1,108,180,192,126, 46, 2, 90, 65,144,141,
-147, 3,164, 32, 32, 36, 27, 1, 1, 33, 32, 36, 28,253,140,174, 1,184, 3,218,252, 38,253,180, 1, 1, 1, 61, 2, 1,145, 81,
-109,234, 1, 46, 2, 1,176,186, 2, 1,117,189, 71, 52, 12,161, 23, 24, 0, 0, 0, 2, 0,100,255,238, 4,109, 4,140, 0, 11,
- 0, 43, 0, 0, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 5, 38, 33, 32, 19, 18, 33, 32, 23, 7, 38, 7, 4, 23, 22, 5,
- 4, 3, 2, 37, 36, 38, 55, 54, 23, 22, 21, 20, 7, 22, 55, 54, 1, 61, 36, 28, 32, 32, 36, 28, 32, 2, 87, 1,254,189,253,243,
- 1, 1, 2, 21, 1, 54,184,116,177,211,254,169, 3, 5, 1,109, 1,225, 3, 2,254, 50,254,167,223, 1, 1,210,224, 22, 74,142,
-219, 1, 88, 32, 32, 36, 28, 32, 32, 36, 28, 16,232, 1, 56, 1, 36,220,123,188, 1, 2,138,158, 1, 1,254,144,254,154, 1, 1,
-178,123,204, 1, 1,209, 78, 20, 38, 1, 2, 0, 0, 2, 0, 96,255,238, 4,112, 4,141, 0, 11, 0, 46, 0, 0, 37, 34, 6, 21,
- 20, 22, 51, 50, 54, 53, 52, 38, 1, 4, 25, 1, 20, 37, 38, 2, 39, 38, 7, 22, 7, 6, 39, 38, 55, 18, 33, 50, 18, 55, 54, 53,
- 17, 16, 33, 34, 7, 6, 7, 39, 54, 55, 54, 1, 70, 37, 27, 32, 32, 36, 28, 32, 1, 8, 2, 2,254,244,232, 87,139, 68, 12,227,
- 2, 2,207,250, 1, 1, 1, 78,232, 98,102, 80,254,198,229, 39, 26, 2,183, 6, 17, 71,248, 33, 31, 36, 28, 32, 32, 36, 27, 3,
-149, 1,254,137,253,212,250, 1, 1, 1,221, 2, 1, 84, 1,183,214, 1, 1,235, 1,137,254, 30, 2, 2,174, 1,168, 1, 24,114,
- 74, 99, 20,111, 60,249, 0, 0, 0, 2, 0,111,255,228, 4, 98, 4,123, 0, 5, 0, 31, 0, 0, 1, 34, 20, 51, 50, 54, 1, 18,
- 33, 32, 25, 1, 16, 37, 38, 36, 39, 52, 23, 50, 23, 22, 7, 22, 51, 32, 53, 17, 52, 33, 32, 7, 1, 80, 64, 64, 60, 8,254,244,
- 41, 1,189, 1,244,254, 34,240,254,220, 1,229,217, 4, 1, 70, 25,127, 1, 30,254,204,254,233, 24, 1, 84,128,128, 1,206, 1,
- 89,254,215,253,184,254,217, 2, 1,156,143,211, 1,215, 61, 73, 8,216, 1,196,204,213, 0, 0, 0, 3, 0, 97,255,238, 5, 35,
- 5,156, 0, 11, 0, 50, 0, 58, 0, 0, 37, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 37, 17, 6, 33, 36, 55, 54, 33, 32, 23,
- 54, 39, 38, 39, 55, 22, 23, 22, 7, 17, 20, 37, 38, 2, 39, 38, 7, 22, 7, 6, 39, 38, 55, 18, 33, 50, 18, 55, 54, 1, 32, 53,
- 52, 33, 32, 21, 20, 1, 72, 38, 26, 32, 32, 36, 28, 32, 2, 74, 70,254,234,254, 10, 2, 2, 1,242, 1,142,114, 28, 2, 11, 99,
-158,128, 2, 2,178,254,244,232, 88,138, 68, 12,226, 2, 2,206,251, 1, 2, 1, 78,232, 98,102, 80,254,164, 1,116,254,140,254,
-182,248, 33, 31, 36, 28, 32, 32, 36, 27, 61, 1,153, 14, 1,252,233,154, 49, 18, 84,132,118,174,160,146,151,253,195,250, 1, 1,
- 1,221, 2, 1, 84, 1,183,214, 1, 1,235, 1,137,254, 30, 2, 2, 2,209, 69,109, 77,100, 0, 0, 3, 0, 19,255,231, 4,189,
- 4,154, 0, 6, 0, 13, 0, 54, 0, 0, 0, 34, 21, 6, 51, 50, 55, 36, 34, 21, 6, 51, 50, 55, 3, 36, 17, 16, 55, 38, 55, 54,
- 23, 22, 7, 14, 1, 17, 20, 51, 54, 53, 17, 6, 43, 1, 38, 55, 54, 51, 50, 23, 54, 55, 54, 25, 1, 35, 17, 52, 35, 34, 7, 19,
- 16, 1, 26,128, 1, 65, 63, 1, 1,145,128, 1, 65, 63, 1,238,254, 96,130,140, 1, 1,198,190, 1, 1,186,223,225, 20, 29, 2,
-185, 1, 1,166,162, 53, 64, 86,247,184, 67, 63, 47, 1, 4, 26, 64, 64, 64, 76, 64, 64, 64,252, 2, 1, 1, 69, 1, 62,169, 47,
-153,181, 1, 1,178,125,204,254,159,182, 1,181, 2, 8, 9, 6,183,169, 99, 98, 1, 4,254,186,252,169, 3, 87,157, 90,253,154,
-254,179, 0, 0, 0, 3, 0,119,255,238, 4,106, 4,141, 0, 11, 0, 37, 0, 45, 0, 0, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53,
- 52, 38, 55, 36, 17, 16, 5, 4, 25, 1, 20, 37, 38, 39, 38, 55, 54, 23, 22, 21, 20, 7, 22, 51, 32, 53, 17, 6, 19, 52, 5, 4,
- 7, 6, 5, 4, 1, 92, 36, 28, 32, 32, 37, 27, 32,244,254, 7, 1,249, 1,250,254, 10,202,170,134, 1, 1,220,237, 61, 65, 56,
- 1, 41, 83, 85,254,196,254,192, 1, 1, 1, 66, 1, 60, 1, 83, 32, 32, 37, 27, 34, 30, 36, 28,208, 1, 1, 51, 1, 54, 1, 1,
-254,209,253,140,251, 2, 1, 72, 57,170,215, 1, 1,216, 71, 41, 35,175, 1, 36, 54, 1, 55,156, 1, 1,154,159, 1, 1, 0, 0,
- 0, 2, 0, 84,255,238, 4,218, 4,216, 0, 11, 0, 54, 0, 0, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 1, 36, 39, 38,
- 37, 36, 55, 54, 33, 50, 23, 22, 51, 50, 19, 23, 2, 7, 6, 39, 38, 35, 34, 23, 22, 5, 4, 3, 2, 37, 36, 39, 38, 55, 54, 23,
- 22, 21, 20, 21, 6, 7, 22, 1, 50, 36, 28, 32, 32, 37, 27, 32, 1, 0, 1, 84, 1, 1,254,192,253,254, 3, 3, 1,158,136, 92,
-111, 69,104, 64,148, 77,243,135,113, 75, 85,210, 5, 5, 1, 80, 1,230, 1, 1,253,240,254,236,136,110, 1, 1,224,215, 1, 94,
-153, 1,139, 32, 32, 37, 27, 34, 30, 37, 27,254,249, 2,254,195, 43, 68,231,252, 89,108, 1, 4, 48,254,149, 1, 1,121, 80, 94,
-100, 54, 81,254,193,254,113, 2, 1,116, 94,125,223, 1, 1,214, 2, 1, 93, 70, 28, 0, 0, 0, 0, 2, 0, 48,255, 38, 4,169,
- 4,161, 0, 3, 0, 36, 0, 0, 0, 34, 20, 50, 3, 39, 1, 0, 39, 38, 15, 1, 6, 39, 36, 3, 2, 33, 32, 7, 6, 39, 38, 53,
- 34, 21, 20, 51, 50, 63, 1, 54, 23, 22, 21, 20, 1, 2, 42,128,128,202,129, 2, 43, 1, 24, 61, 25,120,165,130,215,254,226, 7,
- 9, 1,136, 1, 15, 1, 1,211,212, 35,101,115, 90,140,175,104,224,254,225, 4, 13,128,251,153,134, 2, 78, 1, 41, 61, 25,137,
-187,147, 1, 1, 1,109, 1,144,206,216, 3, 4,205,205,195,100,157,196, 2, 5,189,157,254,207,255,255, 0, 90,255,229, 4,101,
- 4,128, 16, 39, 4,101, 4,209,250,201, 16, 7, 4,101, 4,209,253,117, 0, 0, 0, 2,251,137, 5, 28,255,148, 7, 11, 0, 19,
- 0, 26, 0, 0, 3, 2, 33, 32, 38, 55, 54, 23, 50, 7, 6, 7, 22, 51, 36, 53, 52, 39, 55, 22, 4, 52, 7, 34, 21, 6, 23,109,
- 2,254, 5,254,182,195, 1, 1,229,241, 3, 1, 35, 33, 65, 1, 28, 86,138,168,253, 28, 66, 56, 1, 63, 6, 29,254,255,168,107,
-217, 1,216, 80, 36, 4, 1, 85, 46, 70,138,143,140,126, 1, 62, 61, 1, 0, 0, 0, 2, 0,157, 0, 0, 4, 33, 4,123, 0, 16,
- 0, 22, 0, 0, 1, 32, 25, 1, 35, 17, 16, 35, 34, 7, 50, 21, 20, 35, 34, 53, 16, 18, 20, 51, 50, 52, 35, 2,106, 1,183,184,
-255,164, 61,218,229,225,166, 59, 67, 62, 4,123,254,106,253, 27, 2,203, 1, 25, 86,193,199,199, 1,174,254,137,110,110, 0, 0,
-255,255,252,197, 0, 0, 4, 33, 6,114, 16, 38, 4,102, 0, 0, 16, 7, 4,117,251, 47, 0, 0, 0, 1, 0, 83, 4,236, 4,126,
- 7,105, 0, 17, 0, 0, 1, 20, 33, 21, 32, 17, 16, 33, 32, 17, 16, 33, 53, 32, 55, 52, 33, 32, 1, 18, 1, 36,254, 30, 2, 38,
- 2, 4,254, 62, 1, 2, 2,254,186,254,152, 6, 37,187,126, 1, 63, 1, 62,254,194,254,193,126,187,197, 0, 0, 0, 1, 0, 83,
- 4,230, 5, 19, 7,105, 0, 21, 0, 0, 1, 20, 33, 21, 32, 17, 16, 33, 32, 17, 20, 7, 51, 21, 33, 61, 1, 32, 55, 52, 33, 32,
- 1, 17, 1, 37,254, 29, 2, 38, 2, 4, 62,212,253,169, 1, 1, 2,254,186,254,152, 6, 37,187,126, 1, 63, 1, 62,254,194,119,
- 74,132, 6,126,187,197, 0, 0, 0, 2, 0, 83, 4,236, 4,126, 7,105, 0, 17, 0, 21, 0, 0, 1, 20, 33, 21, 32, 17, 16, 33,
- 32, 17, 16, 33, 53, 32, 55, 52, 33, 32, 5, 21, 35, 53, 1, 18, 1, 36,254, 30, 2, 38, 2, 4,254, 62, 1, 2, 2,254,186,254,
-152, 1,222,238, 6, 37,187,126, 1, 63, 1, 62,254,194,254,193,126,187,197, 78,220,220, 0, 0, 0, 2, 0, 83, 4,230, 5, 19,
- 7,105, 0, 21, 0, 25, 0, 0, 1, 20, 33, 21, 32, 17, 16, 33, 32, 17, 20, 7, 51, 21, 33, 61, 1, 32, 55, 52, 33, 32, 5, 21,
- 35, 53, 1, 17, 1, 37,254, 29, 2, 38, 2, 4, 62,212,253,169, 1, 1, 2,254,186,254,152, 1,221,238, 6, 37,187,126, 1, 63,
- 1, 62,254,194,119, 74,132, 6,126,187,197, 84,220,220, 0, 0, 0, 2, 1,207,253, 51, 3,135,255,178, 0, 4, 0, 21, 0, 0,
- 4, 34, 20, 51, 54, 3, 54, 53, 52, 39, 6, 35, 34, 53, 52, 51, 50, 23, 22, 21, 20, 7, 2,191,130, 65, 65, 92,144, 5, 40, 68,
-179,170,101, 78, 91,204,188,129, 1,254,207,111, 91, 17, 16, 36,158,186, 78, 91,139,117,214, 0, 0, 2, 1,120,253,142, 3,153,
-255,175, 0, 5, 0, 26, 0, 0, 4, 34, 20, 51, 50, 53, 19, 34, 53, 52, 55, 38, 53, 52, 50, 21, 20, 6, 21, 20, 51, 50, 53, 17,
- 51, 17, 20, 2, 5, 44, 23, 21,114,243, 62, 74,234,109,130,158,132,178, 44, 21,254, 87,146,115, 62, 10, 91,121,117, 63,123, 69,
- 66, 88, 1, 70,254,186,195, 0, 0, 2, 0, 68, 5, 28, 4,141, 7, 11, 0, 20, 0, 27, 0, 0, 1, 22, 7, 39, 54, 53, 54, 37,
- 34, 7, 22, 7, 6, 7, 6, 39, 38, 55, 54, 33, 32, 0, 52, 7, 34, 23, 20, 51, 4,140, 1,168,138, 86, 1,254,165, 65, 33, 46,
- 10, 21,217,229, 1, 1,123,120, 1, 26, 2, 57,252,225, 60, 63, 1, 56, 6, 10, 95,143,138, 70, 46, 85, 1, 4, 68, 87,176, 1,
- 1,217, 84, 95, 96,254,174,126, 1, 63, 61, 0, 0, 2,255,240,253,199, 4,225,255,177, 0, 7, 0, 26, 0, 0, 19, 50, 53, 52,
- 35, 34, 21, 20, 5, 34, 2, 35, 22, 21, 20, 35, 34, 53, 16, 33, 50, 18, 51, 50, 55, 23, 6,176, 48, 48, 43, 2,201,218,172,184,
- 92,196,184, 1, 76,222,222, 96, 93,166,134,191,254, 78, 48, 47, 46, 49,105, 1, 51, 32,114,191,167, 1, 67,254,208,198,114,240,
- 0, 1, 2, 14, 4,241, 2,195, 6, 86, 0, 3, 0, 0, 1, 51, 17, 35, 2, 14,180,180, 6, 86,254,155, 0, 0, 0, 2, 0, 86,
- 4,224, 4,123, 7, 33, 0, 7, 0, 27, 0, 0, 19, 22, 39, 54, 7, 34, 23, 6, 37, 20, 2, 41, 1, 53, 54, 53, 6, 55, 52, 23,
- 22, 29, 1, 20, 7, 32, 54, 53,241, 42, 1, 1, 42, 44, 2, 2, 3,181,214,254,132,254, 85,144,183, 1,157,145, 71, 1,177,243,
- 6,109, 1, 43, 43, 2, 41, 44,125,229,254,221,133, 46,112, 7,157,136, 1, 1,131,183, 92, 40,141,250, 0, 0, 0, 1, 0, 95,
- 4,199, 5, 80, 6,243, 0, 52, 0, 0, 1, 34, 17, 16, 33, 50, 22, 55, 54, 55, 54, 51, 50, 21, 20, 7, 22, 55, 54, 55, 51, 6,
- 7, 6, 33, 35, 53, 54, 53, 52, 35, 34, 7, 6, 39, 38, 39, 38, 35, 34, 21, 20, 59, 1, 38, 53, 52, 51, 22, 7, 6, 7, 6, 1,
- 80,240, 1, 36, 50,126, 42, 38, 74, 72, 72,220,158,132, 66, 80, 4,154, 2,104, 40,254,226,196,208, 76, 24, 66, 68, 92,106, 36,
- 62, 24,146,102, 62, 46, 96,104, 2, 2, 62, 52, 4,200, 1, 20, 1, 23,130, 1, 1, 65, 63,215,126, 61, 4, 13, 16,104,130, 92,
- 36,133,107, 98, 56, 58, 59, 1, 1, 45, 70,144,161, 2, 95, 90, 1,107,102, 50, 41, 0, 0, 0, 0, 1, 1, 73, 4,224, 3,136,
- 7, 30, 0, 11, 0, 0, 1, 53, 51, 53, 51, 21, 51, 21, 35, 21, 35, 53, 1, 74,216,142,216,216,142, 5,184,142,216,216,142,216,
-216, 0, 0, 0,255,255,255,240, 5, 23, 4,225, 7, 1, 16, 7, 4,111, 0, 0, 7, 80, 0, 0, 0, 2, 1,150, 4,246, 3, 59,
- 6,114, 0, 7, 0, 12, 0, 0, 1, 52, 51, 50, 21, 20, 35, 34, 18, 20, 51, 50, 52, 1,150,212,208,212,208,132, 76, 84, 5,190,
-180,180,200, 1, 16,144,144, 0, 0, 1, 0,160, 0, 0, 4, 51, 4,122, 0, 21, 0, 0, 1, 2, 33, 32, 17, 52, 55, 51, 6, 21,
- 16, 33, 32, 17, 52, 39, 36, 3, 51, 22, 23, 4, 4, 51, 1,254, 49,254, 61, 80,190, 85, 1, 15, 1, 17,189,254,220, 2,181, 1,
-126, 1,105, 1,239,254, 17, 1,201,105, 98, 99, 87,254,183, 1, 79,214, 74,102, 1, 20,161, 51,130, 0, 0, 0, 0, 2, 0,158,
- 0, 0, 4, 52, 6, 22, 0, 18, 0, 26, 0, 0, 1, 16, 33, 32, 3, 18, 37, 53, 54, 39, 38, 53, 51, 20, 23, 22, 29, 1, 4, 3,
- 18, 33, 4, 17, 16, 33, 32, 4, 52,254, 60,254, 49, 3, 3, 1,131, 1,163,141,181,126,161, 1,107,188, 1,254,239,254,241, 1,
- 22, 1, 9, 2, 32,253,224, 2, 33, 1,171, 84,138,120, 28, 27,189, 89, 27, 57,185,144,118,254,119, 1,115, 3,254,149,254,107,
- 0, 2, 0,110,254, 87, 4, 98, 4, 21, 0, 25, 0, 33, 0, 0, 37, 16, 33, 32, 17, 18, 37, 54, 55, 52, 35, 34, 23, 20, 23, 7,
- 38, 53, 16, 33, 32, 3, 20, 7, 21, 4, 3, 16, 37, 32, 3, 16, 37, 4, 4, 97,254, 9,254, 4, 1, 2, 28,108, 2,213,183, 1,
- 15,137, 46, 1, 95, 1,139, 1,122, 1, 45,179,254,190,254,182, 2, 1, 70, 1, 72, 43,254, 44, 1,212, 1,205, 5, 83,169,142,
-139, 46, 43, 82, 76,111, 1, 9,254,219,164, 84, 20,110,254,181, 1, 66, 1,254,189,254,192, 1, 1, 0, 0, 0, 0, 2, 0, 55,
-254, 87, 4,154, 4, 12, 0, 33, 0, 44, 0, 0, 23, 54, 55, 53, 0, 17, 16, 5, 50, 23, 51, 54, 51, 32, 17, 21, 16, 33, 32, 17,
- 53, 52, 43, 1, 34, 17, 21, 16, 0, 23, 7, 38, 36, 7, 1, 53, 52, 43, 1, 34, 29, 1, 16, 51, 50,221, 40, 84,254,222, 1, 88,
- 91, 80, 20, 60,170, 1,102,254,166,254,170, 73, 43,129, 2,121,104,202, 90,254,203,116, 2,212,149, 71,119,186,153,225, 44, 18,
- 11, 1, 22, 1,200, 1,198, 1, 98, 98,254, 43, 20,254, 6, 2, 15,234, 93,254,196,109,254, 76,254,255,200, 1,167, 14, 86, 3,
- 3,212,241,182,247,254,232, 0, 0, 1, 0,160,254, 87, 4, 51, 4, 22, 0, 26, 0, 0, 5, 2, 33, 32, 17, 52, 55, 51, 6, 21,
- 16, 33, 32, 53, 17, 16, 32, 21, 20, 23, 7, 38, 53, 16, 5, 32, 19, 4, 51, 1,254, 73,254, 37,141,188,144, 1, 36, 1, 6,254,
- 38, 62,176, 56, 1,150, 1,157, 1, 32,254,119, 1,146,143,106,115,133,254,251,241, 2,164, 1, 13,222,111,101, 1, 75,133, 1,
-114, 1,254,100, 0, 1, 0,158,254, 87, 4, 50, 4, 21, 0, 39, 0, 0, 5, 16, 33, 32, 3, 54, 55, 51, 6, 21, 16, 33, 32, 61,
- 1, 52, 43, 1, 53, 51, 22, 55, 52, 35, 32, 7, 22, 23, 35, 38, 53, 16, 33, 32, 17, 20, 7, 21, 22, 17, 4, 50,254, 52,254, 58,
- 2, 2,105,192,112, 1, 13, 1, 20,237, 73, 73,226, 1,225,254,252, 1, 1, 45,161, 60, 1,177, 1,158,229,237, 45,254,132, 1,
-152, 93,109,120, 82,254,246,223, 98,243,140, 1,240,243,202, 88,120, 82,126, 1, 88,254,123,209, 92, 20, 43,254,254, 0, 0, 0,
- 0, 3, 0,158, 0, 0, 4, 50, 6, 20, 0, 17, 0, 24, 0, 32, 0, 0, 1, 2, 33, 32, 17, 16, 55, 53, 38, 55, 2, 33, 32, 17,
- 6, 7, 21, 4, 3, 16, 5, 4, 19, 2, 32, 3, 52, 39, 34, 21, 6, 23, 54, 4, 50, 1,254, 53,254, 56,200,200, 1, 1, 1, 84,
- 1, 87, 1, 92, 1, 70,185,254,235,254,245, 1, 1, 2, 32,205,190,168, 1,186,175, 1,248,254, 8, 1,249, 1, 73, 74, 20, 58,
-233, 1, 81,254,189,155, 85, 20, 45,254, 92, 1,112, 2, 1,254,144,254,152, 4, 33,212, 2,214,218, 1, 1, 0, 0, 2, 0, 55,
- 0, 0, 4,154, 4, 11, 0, 26, 0, 37, 0, 0, 1, 21, 16, 7, 35, 54, 17, 53, 16, 43, 1, 34, 29, 1, 16, 33, 32, 17, 53, 16,
- 33, 50, 23, 51, 54, 51, 32, 1, 17, 54, 35, 7, 38, 17, 21, 16, 51, 50, 4,154,239,162,212,132, 33, 83,254,203,254,135, 1,125,
-146, 71, 14, 74,116, 1, 65,253,170, 2, 70, 87,180,165,172, 2, 72, 67,254,162,167,174, 1, 66,117, 1, 25,182,220,254, 20, 2,
- 7, 30, 1,230, 99, 99,253,121, 1,105,145, 1, 1,254,239,189,254,225, 0, 0, 0, 1, 0,159, 0, 0, 4, 51, 4, 21, 0, 17,
- 0, 0, 1, 16, 7, 35, 18, 3, 16, 33, 32, 17, 16, 19, 35, 38, 19, 2, 33, 32, 4, 50,240,146,201, 1,254,252,254,230,198,148,
-238, 2, 2, 1,210, 1,195, 2, 35,254,165,200, 1, 4, 1, 31, 1, 99,254,160,254,230,254,244,207, 1, 90, 1,236, 0, 0, 0,
- 0, 1, 0,158,254, 89, 4, 52, 4, 2, 0, 31, 0, 0, 5, 2, 33, 32, 17, 52, 55, 51, 6, 21, 16, 33, 32, 61, 1, 16, 43, 1,
- 53, 51, 50, 53, 52, 33, 53, 32, 17, 22, 5, 21, 4, 19, 4, 52, 1,254, 67,254, 40,112,173, 98, 1, 29, 1, 2,238, 65, 65,228,
-254, 90, 2, 90, 1,254,245, 1, 26, 2, 30,254,119, 1,167,139,102,113,128,254,230,252, 50, 1, 16,152,198,230,154,254,128,208,
- 49, 20, 49,254,216, 0, 0, 0, 0, 1, 0,160,254, 87, 4, 50, 4, 21, 0, 27, 0, 0, 1, 32, 17, 16, 0, 21, 35, 38, 36, 7,
- 39, 54, 63, 1, 2, 17, 16, 33, 32, 17, 20, 6, 23, 7, 38, 54, 53, 16, 2,108,254,237, 2, 95,190, 36,254,179, 94, 77, 62,112,
- 13,249, 1,204, 1,198,118, 20,159, 20, 92, 3,136,254,189,254, 89,254, 49,120,176, 79,104, 95, 91, 13, 14, 1, 5, 1,130, 1,
-203,254, 41,101,181,156, 1,157,168,117, 1, 71, 0, 2, 0,158, 0, 0, 4, 52, 6, 21, 0, 21, 0, 28, 0, 0, 1, 16, 33, 32,
- 17, 16, 33, 50, 23, 51, 17, 52, 33, 6, 29, 1, 35, 53, 16, 33, 32, 17, 3, 16, 32, 17, 2, 33, 32, 4, 52,254, 69,254, 37, 1,
-203,196, 68, 20,254,228,232,187, 1,163, 1,203,188,253,226, 1, 1, 30, 1, 1, 1,239,254, 17, 2, 13, 2, 9,125, 1, 2,237,
- 1,152, 62, 62, 1, 38,254,134,253, 84, 1,151,254,137,254,130, 0, 2, 0,158, 0, 0, 4, 51, 5,251, 0, 17, 0, 25, 0, 0,
- 1, 18, 33, 32, 25, 1, 2, 41, 1, 21, 33, 34, 21, 17, 51, 54, 51, 4, 3, 16, 33, 32, 17, 16, 37, 4, 4, 50, 1,254, 50,254,
- 58, 1, 1, 77, 1,206,254, 30,141, 35, 64,184, 1,205,185,254,234,254,239, 1, 17, 1, 22, 2, 36,253,220, 1,234, 2,182, 1,
- 91,143,176,254,218,128, 1,254, 12, 1,103,254,133,254,132, 1, 1, 0, 0, 0, 0, 1, 0, 55, 0, 0, 4,154, 4, 11, 0, 35,
- 0, 0, 1, 20, 7, 35, 54, 53, 17, 52, 7, 35, 34, 21, 17, 35, 17, 52, 43, 1, 34, 21, 17, 6, 23, 35, 38, 61, 1, 16, 33, 50,
- 23, 51, 54, 51, 32, 17, 4,154,188,179,179,153, 75, 64,160, 66, 77,148, 2,203,194,199, 1,123,104, 73, 17, 70, 96, 1,128, 1,
-198,236,218,192,207, 1, 25,215, 1,207,254,235, 1, 21,207,228,254,252,214,192,225,236,102, 1,216,104,104,254, 38, 0, 0, 0,
- 0, 1, 0,159, 0, 0, 4, 52, 6, 15, 0, 33, 0, 0, 1, 16, 33, 32, 19, 52, 55, 51, 6, 21, 16, 33, 32, 17, 16, 33, 35, 53,
- 51, 50, 55, 52, 37, 36, 53, 51, 20, 23, 4, 17, 20, 7, 21, 22, 4, 52,254, 68,254, 39, 1,101,175, 91, 1, 31, 1, 0,254,236,
- 63, 82,215, 1,254,233,254,220,172,239, 1, 87,186,232, 1,218,254, 38, 1,178,183, 90,126,147,254,223, 1, 73, 1, 74,135,200,
-149, 33, 54,176, 71, 41, 41,254,251,203, 61, 20,105, 0, 0, 0, 0, 1, 0,159,254, 89, 4, 51, 4, 50, 0, 23, 0, 0, 5, 2,
- 33, 32, 3, 51, 6, 33, 32, 25, 1, 5, 21, 22, 21, 16, 5, 53, 32, 39, 18, 37, 53, 37, 4, 51, 1,254, 48,254, 62, 1,187, 1,
- 1, 4, 1, 39,254, 77,221,253,241, 1,104, 1, 1,254,152, 3,148, 18,254,107, 1,111,227, 1, 11, 3,168, 52, 60, 89,238,254,
-206, 1,167,140, 1, 3, 75,130,129, 0, 0, 0, 0, 1, 0, 55, 0, 0, 4,154, 6, 21, 0, 41, 0, 0, 1, 21, 20, 7, 35, 54,
- 61, 1, 16, 43, 1, 34, 21, 17, 35, 19, 54, 43, 1, 34, 17, 21, 20, 23, 35, 38, 17, 53, 52, 0, 37, 23, 4, 3, 51, 55, 50, 23,
- 51, 54, 51, 32, 4,154,208,197,216,132, 88, 65,160, 1, 1, 74,124,103,230,210,210, 1, 90, 1,167, 25,254,150,218, 24, 86,165,
- 72, 15, 73,160, 1, 58, 2, 84,142,244,210,184,219,193, 1, 42,167,254,195, 1, 61,167,254,219,165,252,184,210, 1, 24,103,251,
- 2, 78,123,148, 82,254,159, 61, 98, 98, 0, 0, 0, 1, 0,159, 0, 0, 4, 51, 5,241, 0, 21, 0, 0, 1, 16, 33, 32, 25, 1,
- 51, 17, 16, 33, 32, 17, 52, 36, 53, 52, 55, 23, 6, 21, 20, 4, 4, 51,254, 61,254, 47,182, 1, 27, 1, 9,254,241,206, 87,142,
- 1, 50, 2, 3,253,253, 2, 3, 3,238,252, 18,254,142, 1,114,175,161,103,148,125,124, 56, 59, 67,188, 0, 0, 0, 2, 0, 45,
-254, 89, 4,164, 4,234, 0, 10, 0, 21, 0, 0, 19, 16, 37, 3, 51, 3, 4, 17, 2, 33, 32, 19, 16, 33, 32, 17, 16, 37, 19, 35,
- 19, 4, 45, 1,250, 15,166, 15, 1,245, 2,253,202,253,193,188, 1,127, 1,134,254,193, 15,165, 14,254,194, 1, 34, 2,117, 82,
- 1, 1,254,251, 78,253,133,253, 61, 2,201,253,195, 2, 61, 1,231,111,253,229, 2, 26,110, 0, 0, 1, 0, 55,254, 89, 4, 74,
- 4, 12, 0, 41, 0, 0, 5, 2, 33, 32, 17, 52, 55, 51, 6, 21, 16, 33, 32, 53, 17, 52, 35, 6, 17, 7, 35, 39, 16, 39, 14, 1,
- 35, 34, 39, 55, 22, 51, 50, 54, 51, 50, 23, 51, 54, 23, 36, 19, 4, 74, 2,254, 77,254, 31,145,179,138, 1, 39, 1, 3,130,132,
- 10,133, 9,110, 62, 62, 62, 72, 83, 50, 62, 43, 51, 60, 76,103, 69, 20, 72,137, 1, 43, 1, 43,254,132, 1,164,159, 90,123,126,
-254,232,240, 2,234,191, 1,254,242,193,193, 1, 14, 1, 1,134, 95,181, 98, 99,184,184, 1, 1,254,179, 0, 0, 0, 2, 0, 55,
-254, 87, 4,157, 4, 11, 0, 45, 0, 56, 0, 0, 5, 16, 33, 35, 32, 17, 51, 20, 59, 1, 32, 61, 1, 52, 39, 35, 53, 51, 54, 61,
- 1, 52, 43, 1, 34, 29, 1, 16, 33, 4, 17, 53, 16, 33, 50, 23, 51, 54, 51, 32, 17, 20, 7, 21, 22, 21, 1, 52, 43, 1, 34, 17,
- 21, 16, 51, 50, 17, 4,157,254, 52, 56,254, 82,183,249, 47, 1, 22, 57, 80, 80, 54,100, 83, 59,254,190,254,142, 1,119,138, 67,
- 17, 96,139, 1, 35,158,161,253,165, 94, 77,162,176,157, 61,254,148, 1,133,247,222,101,166, 2,151, 1,148,182,204,123,202,254,
- 32, 1, 1,153,128, 1,154, 99, 99,254,109,251, 84, 20, 91,142, 2,171,167,254,250,120,254,215, 1, 5, 0, 0, 0, 1, 0,160,
-254, 87, 4, 49, 5,241, 0, 30, 0, 0, 37, 16, 33, 32, 17, 52, 55, 23, 6, 21, 16, 33, 32, 3, 19, 16, 5, 38, 21, 20, 23, 35,
- 38, 53, 16, 33, 22, 23, 51, 19, 51, 4, 49,254, 84,254, 27,134,176,125, 1, 41, 1, 1, 1, 2,254,223,197, 82,179, 70, 1,113,
-142,124, 17, 1,173, 67,254, 20, 1,169,132,100, 1,121,113,254,232, 1, 94, 1, 40, 2, 30, 3, 3,164,182, 89,111,160, 1, 49,
- 1,189, 2,153, 0, 1, 0, 55,254, 86, 4,154, 4, 12, 0, 43, 0, 0, 23, 54, 55, 53, 0, 17, 53, 16, 33, 22, 23, 51, 54, 55,
- 4, 17, 21, 20, 15, 1, 54, 61, 1, 52, 43, 1, 34, 21, 17, 35, 17, 52, 43, 1, 34, 17, 21, 16, 0, 23, 39, 38, 36, 7,237, 57,
- 65,254,208, 1, 95,131, 74, 16, 70,149, 1, 76,169,140,120,134,100, 58,160, 65, 76,151, 2,150, 69,203, 25,254,196,130,201, 83,
- 2, 22, 1, 5, 1, 39, 80, 1,238, 1,103,103, 1, 1,254, 63, 70,244,177, 1,167,174,219,240,175,254,203, 1, 53,175,254,250,
-138,254,141,254,179,216, 1,142,112,122, 0, 0, 0, 1, 0,158,254, 89, 4, 50, 3,247, 0, 26, 0, 0, 5, 16, 33, 32, 17, 51,
- 16, 5, 36, 61, 1, 35, 6, 35, 32, 17, 16, 37, 51, 4, 21, 16, 33, 32, 53, 17, 51, 4, 50,254, 70,254, 38,188, 1, 30, 1, 7,
- 20, 88,175,254, 58, 1, 23,216,254,204, 1, 11, 1, 27,179, 47,254,136, 1,144,254,252, 1, 1,240,244, 98, 1,229, 1, 4,167,
-206,221,254,175,235, 2, 9, 0, 0, 2, 0, 55, 0, 0, 4, 52, 6, 20, 0, 31, 0, 39, 0, 0, 1, 16, 33, 32, 3, 16, 37, 22,
- 23, 51, 17, 52, 35, 34, 29, 1, 35, 53, 52, 35, 34, 21, 35, 16, 51, 50, 23, 51, 54, 51, 32, 11, 1, 2, 33, 32, 19, 2, 33, 50,
- 4, 52,254, 89,254, 18, 1, 1,198,193, 70, 20,142,141,157,160, 85,155,220,186, 63, 20, 58,172, 1, 46, 2,184, 1,254,233,254,
-247, 1, 1, 1, 56,232, 1,221,254, 35, 2, 13, 2, 8, 1, 1,129, 1, 33,213,210, 33, 35,208,226, 1,108,193,193,254,192,253,
- 47, 1,133,254,133,254,132, 0, 0, 2, 0,158, 0, 0, 4, 52, 6, 20, 0, 19, 0, 29, 0, 0, 1, 22, 19, 2, 5, 35, 36, 19,
- 16, 37, 36, 25, 1, 35, 19, 16, 33, 32, 19, 22, 39, 38, 35, 34, 21, 17, 51, 54, 5, 54, 3, 77,230, 1, 1,254,233,178, 1, 14,
- 1,254,250,254,221,178, 2, 1,112, 1,127, 30, 1,164, 30,217,195, 30, 63, 1, 37, 56, 3,218,104,254,146,254,184,188,199, 1,
- 65, 1,106, 1, 19,254,197,253,181, 4,190, 1, 86,254,199, 96, 77,191,214,254,228,128, 30,134, 0, 1, 0, 86,254, 89, 4,122,
- 4, 37, 0, 35, 0, 0, 1, 20, 7, 21, 22, 21, 2, 33, 32, 17, 53, 16, 19, 23, 6, 3, 21, 18, 33, 32, 3, 54, 43, 1, 53, 51,
- 50, 39, 54, 39, 38, 39, 51, 20, 23, 22, 4, 92,171,201, 2,253,247,253,231,209,145,164, 1, 1, 1, 92, 1, 88, 1, 1,183,184,
-176,164, 1, 1,161,143, 1,183,130,167, 2,133,153, 88, 20,123,191,254, 19, 2,195, 97, 1, 68, 1,100, 76,250,254,219,158,253,
-201, 1,130,218,136,184,119, 47, 46,173,125, 46, 56, 0, 0, 0, 0, 2, 0,158, 0, 0, 4, 52, 5,241, 0, 11, 0, 19, 0, 0,
- 1, 18, 33, 32, 17, 16, 33, 50, 23, 51, 17, 51, 3, 16, 33, 32, 17, 16, 33, 32, 4, 51, 2,254, 47,254, 58, 1,198,215, 50, 20,
-178,186,254,234,254,246, 1, 9, 1, 23, 2, 5,253,251, 1,253, 2, 25,115, 2, 78,252, 22, 1,128,254,118,254,148, 0, 0, 0,
- 0, 2, 0,160, 0, 0, 4,156, 6, 20, 0, 31, 0, 39, 0, 0, 19, 2, 33, 50, 23, 51, 54, 51, 50, 17, 35, 52, 35, 34, 29, 1,
- 35, 53, 52, 35, 34, 21, 17, 51, 54, 55, 32, 17, 2, 5, 32, 17, 55, 18, 51, 36, 3, 18, 5, 32,161, 2, 1, 48,172, 58, 20, 63,
-186,218,153, 85,160,157,141,142, 20, 70,193, 1,193, 1,254, 43,254, 69,186, 1,252, 1, 34, 1, 1,254,249,254,233, 4,212, 1,
- 64,193,193,254,148,226,208, 35, 33,210,213,254,223,129, 1,253,238,253,253, 1, 2, 15, 38,254, 92, 1, 1,114, 1,133, 1, 0,
- 0, 2, 0,159,254, 89, 4, 52, 5,241, 0, 37, 0, 45, 0, 0, 5, 16, 33, 32, 19, 52, 55, 23, 6, 21, 20, 5, 32, 3, 52, 39,
- 38, 39, 7, 32, 17, 16, 33, 23, 17, 51, 17, 22, 23, 51, 21, 35, 20, 15, 1, 22, 23, 22, 1, 20, 51, 22, 39, 54, 35, 38, 4, 52,
-254, 52,254, 54, 2, 81,143, 38, 1, 14, 1, 17, 1,176,113, 3, 89,254,203, 1, 65, 77,157, 94, 1,184,189, 82, 1, 1,172,141,
-253, 66,163,171, 1, 1,162,172, 20,254,109, 1,149,105, 94,105, 36, 73,250, 1, 1, 8,160, 99,111,102, 19, 1, 72, 1, 77, 9,
- 1,180,254, 1, 59,105,162,105, 55, 72, 65,105, 97, 2, 66,201, 3,204,193, 1, 0, 2, 0,159, 0, 0, 4, 52, 5,241, 0, 11,
- 0, 19, 0, 0, 1, 2, 33, 32, 25, 1, 51, 17, 51, 54, 51, 4, 3, 16, 33, 32, 17, 16, 33, 32, 4, 52, 1,254, 57,254, 51,171,
- 41, 74,175, 1,200,187,254,242,254,238, 1, 20, 1, 12, 2, 13,253,243, 2, 13, 3,228,253,161,132, 1,253,248, 1,123,254,131,
-254,134, 0, 0, 0, 1, 0,159,254, 89, 4, 52, 4,215, 0, 31, 0, 0, 37, 16, 33, 32, 17, 52, 55, 23, 6, 21, 16, 5, 32, 17,
- 54, 39, 38, 39, 53, 37, 53, 5, 53, 51, 17, 5, 21, 37, 21, 20, 23, 22, 4, 52,254, 46,254, 61,107,144, 64, 1, 8, 1, 22, 1,
-194,170, 1,254,185, 1, 71,146, 1, 80,254,176,215,190, 41,254, 48, 1,207,125,140, 89,105, 71,254,190, 1, 1, 66,173,157,171,
-135,160,120,180,128,232,254,243,127,177,134,125, 72,186,183, 0, 0, 1, 0,158, 0, 0, 4, 52, 6, 20, 0, 43, 0, 0, 1, 16,
- 33, 32, 17, 53, 51, 21, 2, 33, 32, 39, 52, 39, 35, 53, 51, 50, 53, 54, 43, 1, 53, 51, 50, 55, 52, 37, 38, 53, 51, 20, 5, 22,
- 21, 20, 7, 21, 22, 21, 20, 7, 21, 22, 4, 52,254, 55,254, 51,188, 1, 1, 12, 1, 21, 2,108,251,251,100, 1,101,251,249, 91,
- 1,255, 0,233,166, 1, 20,233,144,154,148,158, 1,104,254,152, 1,160,101,101,254,236,212,174, 1,150,122,115,152,132, 85, 32,
- 33,208,120, 26, 26,190,140, 47, 20, 54,137,126, 58, 20, 95, 0, 0, 1, 0,118,254, 89, 4, 51, 6, 20, 0, 61, 0, 0, 5, 2,
- 33, 32, 17, 16, 19, 54, 3, 51, 18, 3, 6, 3, 18, 33, 50, 39, 52, 39, 35, 53, 51, 54, 53, 52, 43, 1, 53, 51, 50, 53, 52, 7,
- 35, 53, 51, 50, 53, 38, 39, 38, 39, 51, 20, 23, 22, 23, 6, 7, 21, 22, 23, 6, 7, 21, 22, 23, 6, 7, 21, 22, 4, 51, 1,254,
- 84,253,240, 55, 54,104,185, 84, 37, 49, 1, 1, 1, 84,251, 2,134,136,136,134,132,138,138,132,134,136,136,134, 1,185,145, 1,
-166,189,156, 1, 1,178,178, 1, 1,178,178, 1, 2,177,178,124,254,213, 1,216, 1, 43, 1, 13,227, 1, 63,254,249,254,229,225,
-254,169,254,179,160,198, 2,142, 1,134,164,138,156,132, 1,145,142, 82, 33, 34,178, 72, 54, 49,152,165, 34, 20, 40,159,187, 30,
- 20, 38,183,146, 48, 20, 58, 0, 0, 2, 0,160,254,243, 4, 52, 4, 22, 0, 17, 0, 25, 0, 0, 23, 50, 55, 36, 17, 18, 37, 32,
- 17, 16, 5, 22, 55, 21, 36, 39, 6, 7, 19, 16, 5, 36, 3, 18, 33, 32,201,149, 80,254,242, 3, 1,197, 1,204,254,231, 92,143,
-254,248,150,193,222,144, 1, 15, 1, 18, 1, 1,254,233,254,246, 60, 89,170, 1, 64, 2, 14, 1,253,241,254,192,170, 94, 5,209,
- 69,194,193, 70, 3, 20,254,196, 85, 85, 1, 60, 1,127, 0, 0, 0, 1, 0,159,254, 87, 4, 52, 4, 21, 0, 29, 0, 0, 5, 2,
- 5, 32, 17, 55, 23, 7, 18, 33, 32, 17, 53, 16, 5, 35, 53, 51, 32, 19, 39, 5, 21, 35, 17, 37, 16, 5, 4, 17, 4, 52, 1,254,
- 48,254, 60, 31,180, 21, 1, 1, 10, 1, 14,254,194,114,114, 1, 30, 1, 2,254, 32,173, 3,108,254,236, 1, 20, 20,254,109, 2,
- 1,149,111, 20, 91,254,249, 1, 7, 32, 1, 43, 1,160, 1,101, 74, 30,204, 1, 93, 29,254, 48,185,113,254,241, 0, 1, 0,159,
-254, 87, 4, 52, 6, 22, 0, 36, 0, 0, 5, 16, 33, 32, 17, 51, 16, 33, 32, 17, 53, 52, 33, 35, 53, 51, 36, 17, 6, 35, 4, 17,
- 16, 5, 21, 32, 21, 20, 33, 50, 55, 17, 18, 5, 21, 4, 21, 4, 52,254, 52,254, 55,190, 1, 11, 1, 13,254,237,156,156, 1, 20,
-125,143,254, 53, 1,203,254,200, 1, 54,238,221, 1,254,203, 1, 53, 20,254,107, 1,149,254,248, 1, 8, 55,236,157, 11, 1,158,
- 37, 3, 1,100, 1,133, 1,142,246,210,168,254,248,254,117,105, 20, 62,246, 0, 0, 3, 0,139, 0, 0, 4,124, 6, 21, 0, 23,
- 0, 31, 0, 39, 0, 0, 1, 21, 16, 33, 32, 17, 16, 37, 33, 53, 33, 36, 17, 16, 33, 32, 17, 21, 51, 21, 35, 21, 51, 21, 37, 33,
- 32, 21, 20, 33, 32, 53, 1, 20, 41, 1, 53, 52, 33, 32, 4, 10,254, 73,254, 56, 1,196, 1, 17,254,239,254, 60, 1,204, 1,179,
-114,114,114,254,228,254,239,254,250, 1, 14, 1, 9,253,233, 1, 6, 1, 17,254,247,254,242, 2, 5,182,254,177, 1, 79, 1,102,
- 2,161, 1, 1,107, 1, 81,254,175,216,148,161,178, 30,206,201,211, 3, 99,214,216,195, 0, 0, 0, 2, 0, 55,254, 88, 4,154,
- 4, 22, 0, 33, 0, 44, 0, 0, 1, 16, 33, 34, 39, 35, 21, 2, 33, 53, 50, 39, 17, 52, 35, 7, 38, 21, 17, 20, 51, 21, 36, 17,
- 53, 16, 33, 50, 23, 51, 54, 51, 4, 17, 3, 17, 52, 43, 1, 34, 21, 17, 20, 51, 50, 4,154,254,205,126, 26, 15, 11,254,179,183,
- 9, 77, 97,115,128,254,194, 1, 49,183, 68, 16, 62,182, 1, 51,189,136, 76, 73,167,118, 1,150,254,106,116,152,254,124,142,231,
- 3, 9,178, 1, 1,189,254,193,217,148, 3, 1,120,240, 1,140,145,145, 1,254,117,254,174, 1,161,175,167,254,131,211, 0, 0,
- 0, 1, 0,107,254, 89, 4,102, 4, 22, 0, 31, 0, 0, 33, 2, 33, 32, 3, 16, 37, 36, 53, 52, 35, 34, 7, 23, 7, 39, 16, 33,
- 32, 17, 6, 5, 4, 17, 2, 33, 32, 19, 52, 39, 55, 22, 4,102, 1,253,245,254, 18, 1, 1, 71, 1, 68,152,181, 1, 5,165, 10,
- 1, 96, 1, 85, 1,254,175,254,200, 1, 1, 54, 1, 73, 1, 64,154, 98,254, 89, 1,167, 1,115,114,103,127,188,159, 56, 21, 65,
- 1, 58,254,168,212,131, 77,254,238,254,220, 1, 41,123, 54, 92,108, 0, 0, 0, 0, 1, 0,161,254, 89, 4, 52, 4, 40, 0, 27,
- 0, 0, 19, 51, 17, 22, 33, 32, 17, 52, 37, 55, 4, 19, 16, 37, 35, 34, 39, 35, 21, 2, 37, 32, 17, 51, 2, 33, 32, 17,161,173,
- 1, 1, 35, 1, 7,254,249,171, 1, 22, 1,254, 62, 2,185, 85, 20, 2, 1, 38, 1, 7,187, 1,254, 59,254, 51, 3,254,253,204,
-191, 1, 48,253,177, 63,226,254,245,254, 55, 1, 89,227,254,251, 1, 1, 4,254,112, 1,140, 0, 0, 2, 0,109,254, 87, 4, 99,
- 4, 36, 0, 22, 0, 30, 0, 0, 19, 2, 33, 4, 17, 16, 5, 4, 21, 20, 23, 54, 61, 1, 51, 21, 2, 33, 32, 17, 52, 55, 36, 19,
- 22, 5, 36, 53, 16, 33, 32,110, 1, 2, 0, 1,246,254,150,254,218,158,195,178, 1,254,140,254,170,239,254,100,191, 1, 1, 63,
- 1, 59,254,197,254,192, 2,107, 1,185, 1,254, 72,254,235,169,117,158,181, 1, 1,140, 76, 76,254,230, 1, 56,231, 84, 87, 1,
- 74,255, 38, 41,252, 1, 42, 0, 0, 1, 0,160,255,121, 4, 51, 4, 22, 0, 26, 0, 0, 5, 53, 52, 38, 35, 34, 7, 39, 54, 55,
- 53, 38, 17, 16, 37, 4, 1, 39, 0, 37, 32, 3, 30, 1, 23, 22, 23, 2,239,116, 95,130, 67,130, 67,116,236, 1,228, 2,167,254,
-121,145, 1, 17,254, 96,254,220, 1, 3, 94,113,178,124,135, 1, 5,121,116, 74,102, 24, 30,173, 1, 73, 1,181, 1, 56,253, 5,
- 61, 2, 92, 11,254,219,163,202, 98, 42,147, 0, 0, 3, 1, 35, 0, 50, 3,174, 3,227, 0, 3, 0, 7, 0, 11, 0, 0, 1, 51,
- 21, 35, 5, 51, 21, 35, 5, 51, 21, 35, 1, 35,192,192, 1,209,186,186,254, 47,189,189, 3,227,176,189,174,232,174, 0, 0, 0,
- 0, 2, 1,149, 2,245, 3, 60, 6, 20, 0, 15, 0, 23, 0, 0, 1, 50, 3, 16, 7, 34, 25, 1, 52, 59, 1, 21, 37, 34, 29, 1,
- 23, 52, 35, 34, 7, 20, 51, 50, 2,108,208, 1,213,209,185,235,254,254, 70,237,124,112, 1,117,120, 5, 36,254,239,254,227, 1,
- 1, 30, 1, 76,181, 82, 2, 81,158,194,180,186,201, 0, 0, 0, 0, 3, 0, 41,255,227, 4,176, 4,123, 0, 10, 0, 18, 0, 66,
- 0, 0, 1, 21, 51, 50, 54, 53, 52, 38, 35, 34, 6, 1, 21, 20, 22, 50, 54, 61, 1, 37, 33, 62, 1, 53, 52, 38, 35, 34, 6, 7,
- 53, 62, 1, 51, 50, 22, 23, 62, 1, 51, 50, 22, 21, 20, 6, 43, 1, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 39, 14,
- 1, 35, 34, 38, 17, 2,186, 49,169,120, 89, 83, 92, 74,254, 19, 77,174, 76,254, 21, 1,235, 1, 1,101,112, 79,129, 50, 55,132,
- 71,110,149, 32, 39,133, 97,156,163,200,191,117, 99, 94, 56,132, 62, 77,132, 60, 91,124, 37, 33,132, 89,174,145, 2,164, 72, 90,
-113, 89, 97,133,254,113, 52,151,133,136,157, 43,143, 15, 35, 34,161,144, 51, 51,172, 41, 43, 82, 78, 80, 80,172,164,171,179, 88,
-120,128, 43, 39,168, 35, 33, 63, 64, 61, 66,237, 1, 50, 0, 0, 0, 1, 0,169,255,234, 4, 40, 4,123, 0, 48, 0, 0, 1, 22,
- 23, 22, 21, 20, 6, 35, 34, 39, 38, 39, 53, 22, 23, 22, 51, 50, 54, 53, 52, 39, 38, 43, 1, 53, 51, 50, 54, 53, 52, 39, 38, 35,
- 34, 7, 6, 7, 53, 54, 55, 54, 51, 50, 23, 22, 21, 20, 6, 3, 16,119, 65, 64,244,209, 81, 91, 92,105,104, 87, 86, 76,138,148,
- 72, 72,135,166,159,150,168, 90, 91,173, 99, 91, 91, 77, 97, 90, 91, 86,254,139,138,148, 2, 6, 25, 65, 64, 94,134,158, 12, 12,
- 24,167, 27, 13, 12, 86, 74, 61, 43, 44,144,110, 81, 98, 53, 52, 18, 17, 34,173, 28, 14, 14, 91, 92,166,109,148, 0, 2, 0,178,
-254, 80, 4, 68, 4,100, 0, 9, 0, 13, 0, 0, 37, 33, 17, 33, 53, 33, 21, 33, 17, 33, 1, 35, 53, 51, 3,246,254, 41,254,147,
- 3,146,254,147, 1, 31,254,225,184,184, 4, 3,209,143,143,252,190,253,189,233, 0, 3, 0, 14,255,227, 4,186, 4,123, 0, 10,
- 0, 21, 0, 54, 0, 0, 19, 20, 6, 21, 20, 22, 51, 50, 54, 61, 1, 1, 34, 6, 21, 16, 22, 51, 50, 54, 16, 38, 1, 33, 53, 52,
- 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 23, 62, 1, 51, 50, 18, 16, 2, 35, 34, 38, 39, 14, 1, 35, 34, 38, 17,177, 2, 80,
- 86, 87, 77, 1, 90,102, 82, 80,104,103, 80, 80,252, 84, 1,235, 99,112, 80,131, 47, 59,125, 74, 98,147, 48, 52,128, 84,189,170,
-170,189, 89,128, 47, 37,130, 87,175,144, 1,205, 11, 38, 9,145,135,137,158, 43, 2, 22,168,239,254,221,174,167, 2, 26,167,254,
-121, 84,163,144, 53, 51,172, 43, 41, 67, 66, 68, 65,254,236,253,144,254,236, 62, 65, 62, 65,237, 1, 50, 0, 0, 0, 1, 0,137,
- 2, 47, 4, 72, 4,123, 0, 12, 0, 0, 19, 16, 18, 32, 18, 17, 35, 52, 38, 35, 34, 6, 21,137,246, 1,210,247,195,144,141,140,
-144, 2, 47, 1, 30, 1, 46,254,210,254,226,214,218,218,214, 0, 0, 1, 0,136,255,227, 4, 71, 2, 47, 0, 12, 0, 0, 1, 16,
- 2, 32, 2, 17, 51, 20, 22, 51, 50, 54, 53, 4, 71,246,254, 46,247,195,144,141,140,144, 2, 47,254,226,254,210, 1, 46, 1, 30,
-214,218,218,214, 0, 1, 0, 43, 0, 2, 4,166, 3, 91, 0, 19, 0, 0, 37, 33, 53, 33, 50, 54, 53, 52, 38, 35, 33, 53, 33, 21,
- 35, 30, 1, 21, 20, 6, 2,225,253, 74, 2,182,151,142,183,171,253,135, 4, 94,168, 97,100,225, 2,184,108,112,130,138,184,184,
- 50,168,114,172,168, 0, 0, 0, 0, 3, 0, 63,255,254, 4,146, 3, 87, 0, 3, 0, 7, 0, 27, 0, 0, 55, 53, 51, 21, 3, 53,
- 51, 21, 1, 33, 53, 33, 50, 54, 53, 52, 38, 35, 33, 53, 33, 21, 35, 30, 1, 21, 20, 6, 63,142,142,142, 2,136,254, 26, 1,230,
-105,100,128,120,254, 69, 3, 15,118, 68, 70,158,122,204,204, 1,136,202,202,253,252,184,108,112,130,138,184,184, 50,168,114,172,
-168, 0, 0, 0, 0, 1, 0, 43, 0, 1, 4,166, 4, 3, 0, 34, 0, 0, 1, 30, 1, 21, 20, 6, 41, 1, 53, 33, 50, 54, 53, 52,
- 38, 35, 33, 53, 33, 50, 54, 53, 52, 38, 35, 33, 53, 33, 21, 35, 30, 1, 21, 20, 6, 4, 25, 72, 69,209,254,223,253,119, 2,129,
-237,115,123,229,253,127, 2,129,240,112,123,229,253,127, 4, 96, 96, 60, 63, 70, 1,204, 34,105, 74,135,111,168, 53, 70, 80, 59,
-168, 57, 74, 73, 57,167,167, 33, 99, 63, 76,101, 0, 2, 0,252, 2,156, 3,214, 5,224, 0, 2, 0, 10, 0, 0, 1, 3, 33, 3,
- 51, 1, 35, 39, 33, 7, 35, 2,104,134, 1, 12,210,154, 1, 32,132, 68,254,182, 68,132, 5,124,254, 85, 2, 15,252,188,218,218,
- 0, 2, 0,245, 2,156, 3,220, 5,224, 0, 15, 0, 19, 0, 0, 1, 21, 35, 21, 51, 21, 35, 17, 51, 21, 33, 53, 35, 7, 35, 1,
- 23, 3, 51, 17, 3,208,213,194,194,225,254,170,221, 64,116, 1, 2, 76,127,194, 5,224, 95,248, 95,254,209, 95,214,214, 3, 68,
- 95,254, 80, 1,176, 0, 0, 0, 0, 3, 1, 55, 2,156, 3,154, 5,224, 0, 8, 0, 17, 0, 32, 0, 0, 1, 17, 51, 50, 54, 53,
- 52, 38, 35, 3, 21, 51, 50, 54, 53, 52, 38, 35, 37, 33, 50, 22, 21, 20, 6, 7, 30, 1, 21, 20, 6, 35, 33, 1,182,151,111, 94,
- 99,106,151,149, 91, 83, 81, 93,254,236, 1, 22,144,157, 83, 83, 93,105,167,166,254,234, 4, 43,254,206, 69, 79, 82, 76, 1, 88,
-252, 63, 70, 63, 56, 93,111,101, 77, 88, 12, 12,116, 89,114,116, 0, 2, 1, 55, 2,156, 3,154, 5,224, 0, 8, 0, 17, 0, 0,
- 1, 50, 54, 53, 52, 38, 43, 1, 17, 19, 50, 22, 21, 20, 6, 43, 1, 17, 1,244,160,128,127,161, 61, 63,216,204,204,216,191, 2,
-249,141,183,186,140,253,118, 2,231,204,215,214,203, 3, 68, 0, 0, 1, 1, 76, 2,156, 3,134, 5,224, 0, 11, 0, 0, 1, 33,
- 21, 33, 21, 33, 21, 33, 17, 33, 21, 33, 1, 76, 2, 46,254, 80, 1,156,254,100, 1,188,253,198, 5,224, 95,248, 95,254,209, 95,
- 0, 1, 1, 76, 2,156, 3,134, 5,224, 0, 11, 0, 0, 1, 33, 21, 33, 21, 33, 21, 33, 17, 33, 21, 33, 3,134,253,210, 1,174,
-254,100, 1,156,254, 70, 2, 58, 5,224, 95,248, 95,254,209, 95, 0, 1, 1, 44, 2,140, 3,164, 5,239, 0, 28, 0, 0, 1, 14,
- 1, 35, 34, 38, 16, 54, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 53, 35, 53, 33, 3,164, 52,126, 76,
-178,200,202,180, 60,108, 50, 52,106, 60,124,124,120,124, 42, 64, 26,136, 1, 2, 2,225, 42, 43,228, 1,154,229, 29, 31,116, 43,
- 41,170,172,174,167, 17, 18,225, 93, 0, 0, 0, 0, 1, 1, 58, 2,156, 3,150, 5,224, 0, 11, 0, 0, 1, 51, 17, 33, 17, 51,
- 17, 35, 17, 33, 17, 35, 1, 58,128, 1, 94,126,126,254,162,128, 5,224,254,169, 1, 87,252,188, 1,142,254,114, 0, 1, 1,100,
- 2,156, 3,110, 5,224, 0, 11, 0, 0, 1, 33, 21, 35, 17, 51, 21, 33, 53, 51, 17, 35, 1,100, 2, 10,198,198,253,246,196,196,
- 5,224, 95,253,122, 95, 95, 2,134, 0, 0, 0, 0, 1, 1, 94, 2,140, 3,115, 5,224, 0, 17, 0, 0, 1, 53, 30, 1, 51, 50,
- 54, 53, 17, 35, 53, 33, 17, 20, 6, 35, 34, 38, 1, 94, 57,122, 66, 90, 71,240, 1,111,133,155, 61,119, 2,190,132, 45, 45, 83,
-114, 1,212, 95,253,205,158,131, 24, 0, 0, 0, 0, 1, 1, 18, 2,156, 3,192, 5,224, 0, 11, 0, 0, 1, 51, 17, 1, 51, 9,
- 1, 35, 1, 7, 17, 35, 1, 18,128, 1,142,148,254,146, 1,122,154,254,204, 96,128, 5,224,254,140, 1,116,254,170,254, 18, 1,
-163, 92,254,185, 0, 1, 1, 69, 2,156, 3,140, 5,224, 0, 5, 0, 0, 1, 51, 17, 33, 21, 33, 1, 69,128, 1,199,253,185, 5,
-224,253, 27, 95, 0, 1, 1, 27, 2,156, 3,182, 5,224, 0, 12, 0, 0, 1, 51, 27, 1, 51, 17, 35, 17, 3, 35, 3, 17, 35, 1,
- 27,170,163,164,170,117,168, 96,169,117, 5,224,254, 86, 1,170,252,188, 2,227,254, 71, 1,185,253, 29, 0, 0, 0, 1, 1, 60,
- 2,156, 3,149, 5,224, 0, 9, 0, 0, 1, 51, 1, 17, 51, 17, 35, 1, 17, 35, 1, 60,161, 1, 61,123,161,254,194,122, 5,224,
-253, 80, 2,176,252,188, 2,176,253, 80, 0, 0, 0, 1, 1, 60, 2,156, 3,149, 5,224, 0, 9, 0, 0, 1, 35, 1, 17, 35, 17,
- 51, 1, 17, 51, 3,149,161,254,194,122,161, 1, 61,123, 5,224,253, 80, 2,176,252,188, 2,176,253, 80, 0, 0, 0, 2, 1, 46,
- 2,140, 3,163, 5,239, 0, 10, 0, 19, 0, 0, 0, 16, 38, 35, 34, 6, 21, 20, 22, 51, 50, 19, 20, 6, 32, 38, 16, 54, 32, 22,
- 3, 30, 85, 97, 96, 85, 85, 96, 97,218,156,254,194,155,155, 1, 62,156, 3,133, 1,112,158,158,184,183,158, 1, 85,218,215,214,
- 1,182,215,215, 0, 2, 1, 63, 2,156, 3,146, 5,224, 0, 8, 0, 18, 0, 0, 1, 17, 51, 50, 54, 53, 52, 38, 35, 37, 33, 50,
- 22, 20, 6, 43, 1, 17, 35, 1,190,148, 88, 99, 98, 89,254,237, 1, 19,157,163,162,158,148,127, 5,131,254,198, 83, 74, 75, 82,
- 93,127,246,127,254,176, 0, 0, 0, 2, 1, 17, 2,156, 3,192, 5,224, 0, 19, 0, 28, 0, 0, 1, 30, 1, 31, 1, 35, 39, 46,
- 1, 43, 1, 17, 35, 17, 33, 50, 22, 21, 20, 6, 1, 17, 51, 50, 54, 53, 52, 38, 35, 2,150, 49, 69, 52,128,137,112, 49, 77, 62,
-122,128, 1, 6,155,165,101,254,159,139, 92, 89, 95, 91, 4, 39, 11, 63, 93,228,211, 90, 52,254,159, 3, 68,124,118, 83,104, 1,
- 80,254,215, 73, 75, 72, 77, 0, 0, 1, 1, 2, 2,156, 3,207, 5,224, 0, 7, 0, 0, 1, 33, 21, 33, 17, 35, 17, 33, 1, 2,
- 2,205,254,218,128,254,217, 5,224, 95,253, 27, 2,229, 0, 0, 0, 1, 1, 65, 2,140, 3,144, 5,224, 0, 29, 0, 0, 1, 17,
- 51, 17, 20, 22, 23, 30, 1, 51, 50, 54, 55, 62, 1, 53, 17, 51, 17, 20, 6, 7, 14, 1, 35, 34, 38, 39, 46, 1, 1, 65,127, 8,
- 10, 20, 76, 54, 55, 75, 21, 10, 7,128, 36, 44, 42,107, 67, 66,107, 42, 44, 36, 3,221, 2, 3,253,201, 61, 52, 14, 33, 33, 33,
- 33, 14, 52, 60, 2, 56,253,253,128,108, 36, 33, 32, 32, 33, 35,110, 0, 0, 0, 0, 1, 0,228, 2,156, 3,237, 5,224, 0, 12,
- 0, 0, 19, 51, 27, 1, 51, 27, 1, 51, 3, 35, 11, 1, 35,228,124, 90,107,133,109, 90,124,141,120,128,127,121, 5,224,253, 89,
- 1,193,254, 62, 2,168,252,188, 1,241,254, 15, 0, 2, 1, 69, 2,140, 3,140, 5, 30, 0, 11, 0, 41, 0, 0, 1, 35, 34, 6,
- 21, 20, 22, 51, 50, 54, 55, 53, 55, 17, 35, 53, 14, 1, 35, 34, 38, 53, 52, 54, 59, 1, 53, 46, 1, 35, 34, 6, 7, 53, 62, 1,
- 51, 50, 22, 23, 30, 1, 2,171, 38,102,102, 77, 68, 95,110, 1,116,116, 38,112, 81,108,128,158,153,156, 1, 84, 93, 59,121, 58,
- 65,118, 55, 88,124, 38, 24, 20, 3,215, 63, 63, 56, 63,118,104, 23, 43,254,154, 93, 56, 53,108, 91,104,109, 16, 75, 68, 30, 29,
-103, 21, 22, 46, 46, 28, 82, 0, 0, 2, 1, 69, 2,140, 3,140, 5, 30, 0, 11, 0, 41, 0, 0, 1, 51, 50, 54, 53, 52, 38, 35,
- 34, 6, 7, 21, 7, 17, 51, 21, 62, 1, 51, 50, 22, 21, 20, 6, 43, 1, 21, 30, 1, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 39,
- 46, 1, 2, 38, 38,102,102, 77, 68, 95,110, 1,116,116, 38,112, 81,108,128,158,153,156, 1, 84, 93, 59,121, 58, 65,118, 55, 88,
-124, 38, 24, 20, 3,211, 63, 63, 56, 63,118,104, 23, 43, 1,102, 93, 56, 53,108, 90,105,109, 16, 75, 68, 30, 29,103, 21, 22, 46,
- 46, 28, 82, 0, 0, 2, 1, 71, 2,140, 3,138, 5, 30, 0, 16, 0, 26, 0, 0, 1, 53, 51, 17, 35, 53, 14, 1, 35, 34, 38, 53,
- 52, 54, 51, 50, 22, 4, 20, 22, 51, 50, 54, 52, 38, 35, 34, 3, 22,116,116, 29, 96, 63,128,147,147,128, 63, 97,254,199, 86, 84,
- 83, 88, 88, 83, 84, 4,191, 78,253,143, 79, 47, 48,176,155,153,174, 48,161,240,122,123,238,123, 0, 3, 0,251, 2,140, 3,214,
- 5, 30, 0, 10, 0, 18, 0, 66, 0, 0, 1, 21, 51, 50, 54, 53, 52, 38, 35, 34, 6, 5, 21, 20, 22, 50, 54, 61, 1, 37, 33, 52,
- 54, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 23, 62, 1, 51, 50, 22, 21, 20, 6, 43, 1, 21, 20, 22, 51, 50, 54, 55,
- 21, 14, 1, 35, 34, 38, 39, 14, 1, 35, 34, 38, 53, 2,153, 31,107, 75, 56, 52, 58, 47,254,202, 48,110, 48,254,202, 1, 54, 1,
- 64, 70, 50, 81, 32, 35, 83, 45, 69, 94, 20, 25, 84, 61, 98,103,126,121, 73, 62, 59, 35, 84, 39, 49, 83, 38, 57, 78, 24, 20, 84,
- 56,109, 92, 4, 23, 41, 51, 63, 50, 54, 74,224, 29, 85, 74, 76, 88, 24, 80, 9, 19, 19, 90, 81, 28, 29, 96, 23, 24, 46, 43, 45,
- 44, 96, 92, 96,100, 49, 67, 72, 24, 22, 94, 20, 18, 35, 36, 34, 37,132,172, 0, 0, 2, 1, 71, 2,140, 3,138, 6, 3, 0, 7,
- 0, 24, 0, 0, 0, 52, 38, 34, 6, 20, 22, 50, 3, 62, 1, 51, 50, 22, 21, 20, 6, 35, 34, 38, 39, 21, 35, 17, 51, 3, 16, 86,
-168, 87, 87,168,255, 28, 97, 65,127,146,147,128, 63, 96, 29,116,116, 3, 93,240,122,123,238,123, 1,220, 46, 49,174,153,155,176,
- 48, 47, 79, 3,103, 0, 0, 0, 0, 2, 1, 71, 2,140, 3,138, 6, 3, 0, 16, 0, 26, 0, 0, 1, 17, 51, 17, 35, 53, 14, 1,
- 35, 34, 38, 53, 52, 54, 51, 50, 22, 4, 20, 22, 51, 50, 54, 52, 38, 35, 34, 3, 22,116,116, 29, 96, 63,128,147,147,128, 63, 97,
-254,199, 86, 84, 83, 88, 88, 83, 84, 4,191, 1, 68,252,153, 79, 47, 48,176,155,153,174, 48,161,240,122,123,238,123, 0, 0, 0,
- 0, 2, 1, 49, 2,140, 3,160, 5, 30, 0, 21, 0, 28, 0, 0, 1, 21, 33, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38,
- 53, 52, 54, 51, 50, 22, 7, 46, 1, 35, 34, 6, 7, 3,160,254, 10,120,110, 55,121, 69, 66,123, 57,165,185,181,152,134,156,116,
- 2, 92, 85, 84,109, 10, 3,239, 50, 3,103,112, 31, 32,102, 24, 24,175,154,150,179,162,110, 90, 95, 99, 87, 0, 0, 2, 1, 49,
- 2,140, 3,160, 5, 30, 0, 21, 0, 28, 0, 0, 1, 53, 33, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 21, 20, 6, 35,
- 34, 38, 55, 30, 1, 51, 50, 54, 55, 1, 49, 1,246,120,110, 55,121, 69, 66,123, 57,165,185,181,152,134,156,116, 2, 92, 85, 84,
-109, 10, 3,187, 50, 3,103,112, 31, 32,102, 24, 24,175,154,150,179,162,110, 90, 95, 99, 87, 0, 0, 1, 1, 79, 2,144, 3,130,
- 5, 30, 0, 40, 0, 0, 1, 46, 1, 53, 52, 54, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6, 21, 20, 22, 59, 1, 21, 35, 34, 6, 21,
- 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 53, 52, 54, 1,255, 75, 81,153,132, 51,115, 67, 66,109, 48, 87, 93, 91, 85,104,
-100, 94,106,114,109, 62,115, 48, 61,114, 54,160,174, 93, 3,240, 14, 72, 53, 75, 88, 13, 14, 93, 15, 14, 48, 42, 34, 48, 81, 62,
- 45, 55, 59, 20, 19, 97, 16, 15,102, 93, 61, 83, 0, 1, 1, 79, 2,144, 3,130, 5, 30, 0, 40, 0, 0, 1, 30, 1, 21, 20, 6,
- 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 43, 1, 53, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22,
- 21, 20, 6, 2,210, 75, 81,153,132, 51,115, 67, 66,109, 48, 87, 93, 91, 85,104,100, 94,106,114,109, 62,115, 48, 61,114, 54,160,
-174, 93, 3,190, 14, 72, 53, 75, 88, 13, 14, 93, 15, 14, 48, 42, 34, 48, 81, 62, 45, 55, 59, 20, 19, 97, 16, 15,102, 93, 61, 83,
- 0, 2, 1, 71, 1,166, 3,138, 5, 30, 0, 9, 0, 39, 0, 0, 0, 52, 38, 35, 34, 6, 20, 22, 51, 50, 23, 20, 6, 35, 34, 38,
- 39, 53, 30, 1, 51, 50, 54, 61, 2, 14, 1, 35, 34, 38, 53, 52, 54, 51, 50, 22, 23, 53, 51, 3, 22, 85, 81, 85, 90, 90, 86, 80,
-201,150,145, 48,105, 52, 62,100, 43, 93, 86, 28, 95, 69,124,147,147,124, 68, 94, 30,116, 3,103,232,120,120,232,122, 41,141,145,
- 15, 15,102, 25, 25, 91, 98, 5, 70, 53, 51,175,148,147,176, 48, 50, 81, 0, 0, 0, 2, 1, 73, 1,170, 3,136, 5, 17, 0, 9,
- 0, 13, 0, 0, 1, 33, 17, 35, 53, 33, 21, 35, 17, 51, 3, 35, 53, 51, 3, 87,254,216,230, 2, 63,230,181,181,115,115, 2,158,
- 2, 35, 80, 80,254, 45,254,188,131, 0, 0, 0, 0, 1, 1, 56, 2,156, 3,153, 6, 3, 0, 11, 0, 0, 1, 51, 17, 1, 51, 5,
- 1, 35, 1, 7, 21, 35, 1, 56,120, 1, 48,141,254,234, 1, 66,142,254,251, 86,120, 6, 3,254, 8, 1, 4,236,254,121, 1, 68,
- 73,251, 0, 0, 0, 1, 1, 37, 2,156, 3,172, 5, 30, 0, 34, 0, 0, 1, 62, 1, 51, 50, 22, 21, 17, 35, 17, 52, 38, 35, 34,
- 6, 21, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 2,139, 21, 66, 47, 85, 70,106, 34, 44, 50,
- 37,106, 36, 47, 46, 35,106,106, 20, 63, 39, 48, 64, 4,207, 41, 38,117,162,254,149, 1,103,133, 64, 69,128,254,153, 1,103,134,
- 63, 69,128,254,153, 2,115, 54, 34, 35, 39, 0, 0, 1, 1, 91, 1,173, 3,118, 5, 30, 0, 31, 0, 0, 1, 17, 20, 7, 6, 43,
- 1, 53, 51, 50, 55, 54, 53, 17, 52, 38, 35, 34, 7, 6, 21, 17, 35, 17, 51, 21, 54, 55, 54, 51, 50, 22, 3,118, 56, 57,104,129,
-117, 57, 28, 28, 67, 71, 82, 44, 43,116,116, 31, 53, 52, 73,108,106, 4, 33,254,112,109, 59, 60, 88, 35, 34, 71, 1,144, 84, 80,
- 51, 52, 96,254,158, 2,115, 94, 54, 28, 27,126, 0, 2, 1, 58, 2,140, 3,151, 5, 30, 0, 11, 0, 22, 0, 0, 1, 34, 6, 21,
- 20, 22, 51, 50, 54, 53, 52, 46, 1, 32, 22, 21, 20, 6, 35, 34, 38, 53, 52, 2,104, 88, 91, 91, 88, 89, 91, 91,236, 1, 38,156,
-155,148,147,155, 4,199,122,120,119,123,123,119,120,122, 87,169,160,161,168,168,161,160, 0, 0, 0, 1, 1, 88, 2,140, 3,121,
- 5, 30, 0, 23, 0, 0, 1, 62, 1, 51, 50, 22, 16, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 52, 38, 35, 34, 6, 7, 1, 88,
- 46, 99, 52,164,184,184,164, 51, 97, 49, 46, 92, 59,109,117,118,108, 61, 95, 41, 4,238, 24, 24,174,254,202,174, 23, 25,108, 36,
- 33,126,232,126, 33, 35, 0, 0, 0, 1, 1, 58, 3,213, 3,151, 5, 30, 0, 12, 0, 0, 1, 52, 54, 32, 22, 21, 35, 52, 38, 35,
- 34, 6, 21, 1, 58,155, 1, 38,156,123, 91, 89, 88, 91, 3,213,160,169,169,160,120,122,122,120, 0, 1, 1, 58, 2,140, 3,151,
- 3,213, 0, 12, 0, 0, 1, 20, 6, 32, 38, 53, 51, 20, 22, 51, 50, 54, 53, 3,151,155,254,218,156,123, 91, 89, 88, 91, 3,213,
-160,169,169,160,120,122,122,120, 0, 2, 1, 71, 1,173, 3,138, 5, 30, 0, 16, 0, 24, 0, 0, 1, 17, 35, 17, 51, 21, 62, 1,
- 51, 50, 22, 21, 20, 6, 35, 34, 38, 36, 52, 38, 34, 6, 20, 22, 50, 1,188,117,117, 29, 96, 63,128,146,146,128, 64, 96, 1, 56,
- 85,168, 87, 87,168, 2,235,254,194, 3, 98, 80, 47, 48,176,155,153,174, 48,161,240,122,123,238,123, 0, 0, 0, 0, 1, 1, 77,
- 2,156, 3,132, 5,193, 0, 19, 0, 0, 1, 21, 33, 21, 33, 17, 20, 22, 59, 1, 21, 35, 34, 38, 53, 17, 35, 53, 51, 53, 2,125,
- 1, 7,254,249, 59, 74,130,141,131,107,188,188, 5,193,178, 80,254,172, 70, 55, 82, 93,114, 1, 84, 80,178, 0, 0, 1, 1, 91,
- 2,140, 3,118, 5, 14, 0, 19, 0, 0, 1, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 35, 53, 14, 1, 35, 34, 38, 1, 91,
-116, 67, 71, 82, 87,116,116, 31,107, 71,108,106, 3,137, 1,133,254,123, 84, 80,103, 96, 1, 98,253,142, 94, 54, 56,126, 0, 0,
- 0, 1, 0,255, 2,157, 3,210, 4,125, 0, 19, 0, 0, 1, 33, 53, 33, 50, 54, 53, 52, 38, 35, 33, 53, 33, 21, 35, 30, 1, 21,
- 20, 6, 2,180,254, 75, 1,181, 96, 89,115,108,254,113, 2,193,106, 61, 63,142, 2,157,103, 60, 63, 73, 77,104,104, 27, 95, 63,
- 97, 94, 0, 0, 0, 1, 1, 37, 2,156, 3,172, 5, 30, 0, 34, 0, 0, 1, 14, 1, 35, 34, 38, 53, 17, 51, 17, 20, 22, 51, 50,
- 54, 53, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 35, 53, 14, 1, 35, 34, 38, 2, 70, 21, 66, 47, 85, 70,106, 34, 44, 50,
- 37,106, 36, 47, 46, 35,106,106, 20, 63, 39, 48, 64, 2,235, 40, 39,117,162, 1,107,254,153,132, 65, 69,128, 1,103,254,153,134,
- 63, 69,128, 1,103,253,141, 54, 34, 35, 39, 0, 0, 1, 1, 35, 2,156, 3,174, 5, 15, 0, 6, 0, 0, 1, 51, 27, 1, 51, 3,
- 35, 1, 35,120,205,206,120,251,149, 5, 15,253,242, 2, 14,253,141, 0, 0, 0,255,255, 1, 72, 0, 0, 3,136, 3,103, 16, 7,
- 6,169, 0, 0,253,100, 0, 0,255,255, 1,153, 0, 0, 3, 56, 2,131, 16, 7, 2, 81, 0, 0,253,100, 0, 0,255,255, 1, 91,
-255,240, 3,118, 2,114, 16, 7, 4,214, 0, 0,253,100, 0, 0,255,255, 1, 35, 0, 0, 3,174, 2,115, 16, 7, 4,217, 0, 0,
-253,100, 0, 0, 0, 2, 0,123,254, 72, 4, 18, 4,123, 0, 10, 0, 40, 0, 0, 37, 20, 22, 51, 50, 54, 16, 38, 35, 34, 6, 3,
- 52, 18, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6, 29, 2, 62, 1, 51, 50, 18, 17, 16, 2, 35, 34, 38, 39, 21, 35, 1, 51,135,129,
-135,142,143,136,127,135,184,238,231, 76,166, 83, 98,160, 67,149,136, 44,152,109,196,234,234,196,108,150, 47,184,138,207,215,215,
- 1,158,217,218, 1, 35,252, 1, 4, 28, 27,182, 46, 44,162,176, 8,125, 94, 92,254,198,254,249,254,248,254,198, 86, 90,145, 0,
-255,255, 1, 58, 2,156, 3,150, 5,224, 16, 6, 4,179, 0, 0, 0, 1, 0,156, 0, 0, 4, 53, 4, 96, 0, 19, 0, 0, 1, 21,
- 33, 17, 33, 21, 33, 53, 33, 17, 33, 53, 33, 17, 33, 53, 33, 21, 33, 17, 4, 53,254,143, 1,110,252,110, 1,108,254,144, 1,112,
-254,148, 3,146,254,146, 2,104,164,254,203,143,143, 1, 53,164, 1,105,143,143,254,151, 0, 0, 0, 1, 0,160,254, 86, 4, 10,
- 6, 31, 0, 27, 0, 0, 1, 20, 22, 59, 1, 29, 2, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 61, 1, 35, 34, 38, 53, 17, 33, 53,
- 33, 2,127, 91, 89,215, 89, 90,165,205,185, 90, 45, 44, 48,165,181,254,217, 1,223, 1,150,124,126, 28,128, 20,195,105,106,156,
- 62, 62,126, 20,212,194, 3,249,144, 0, 0, 0, 0, 2, 1, 71, 2,140, 3,138, 5, 30, 0, 16, 0, 26, 0, 0, 1, 21, 35, 17,
- 51, 21, 62, 1, 51, 50, 22, 21, 20, 6, 35, 34, 38, 36, 52, 38, 35, 34, 6, 20, 22, 51, 50, 1,187,116,116, 29, 96, 63,128,147,
-147,128, 63, 97, 1, 57, 86, 84, 83, 88, 88, 83, 84, 2,235, 78, 2,113, 79, 47, 48,176,155,153,174, 48,161,240,122,123,238,123,
- 0, 1, 1, 88, 2,140, 3,121, 5, 30, 0, 24, 0, 0, 1, 14, 1, 35, 34, 38, 16, 54, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6,
- 21, 20, 22, 51, 50, 54, 55, 3,121, 46, 99, 52,164,184,184,164, 51, 97, 49, 46, 92, 59,109,117,118,108, 61, 95, 41, 2,188, 24,
- 24,174, 1, 54,174, 23, 25,108, 36, 33,125,117,116,126, 33, 35, 0, 2, 1, 81, 2, 73, 3,128, 5, 28, 0, 7, 0, 43, 0, 0,
- 1, 22, 51, 50, 53, 38, 35, 34, 7, 6, 21, 7, 52, 55, 38, 39, 38, 53, 52, 55, 54, 51, 50, 23, 22, 23, 21, 46, 1, 35, 34, 7,
- 6, 20, 23, 22, 23, 54, 51, 50, 23, 20, 35, 34, 2,100, 38, 47, 92, 1, 82, 64, 53, 3, 97, 8, 36, 30, 94, 96, 94,165, 54, 51,
- 51, 48, 50, 98, 51,113, 62, 62, 62, 4, 4, 53,124,188, 1,210, 52, 2,236, 11, 32, 42,154, 32, 38, 2, 58, 47, 20, 29, 90,150,
-153, 88, 88, 9, 11, 19, 96, 24, 24, 64, 63,230, 64, 4, 3, 98,138,106, 0, 0, 0, 2, 1, 58, 2,140, 3,151, 6, 3, 0, 26,
- 0, 41, 0, 0, 1, 30, 1, 21, 20, 6, 35, 34, 38, 53, 52, 54, 51, 50, 22, 23, 46, 1, 39, 7, 39, 55, 39, 51, 23, 55, 23, 3,
- 46, 1, 35, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 2,168,124,115,159,144,143,159,159,141, 21, 22, 10, 21, 46, 24,175, 19,
-149,115,138, 80,183, 20,109, 22, 52, 28, 92, 97, 94, 85, 86, 94, 37, 5,131,119,212,112,150,166,166,150,148,166, 1, 1, 25, 50,
- 24, 51, 55, 44,112, 81, 53, 55,254,238, 7, 8,118,111,110,119,119,110, 61,114, 0, 1, 1, 79, 2,144, 3,130, 5, 30, 0, 40,
- 0, 0, 1, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 43, 1, 53, 51, 50, 54, 53, 52, 38, 35, 34,
- 6, 7, 53, 62, 1, 51, 50, 22, 21, 20, 6, 2,209, 84, 93,174,161, 53,115, 60, 47,115, 63,109,114,106, 95, 99,104, 85, 91, 94,
- 87, 47,109, 66, 67,115, 50,133,153, 82, 3,240, 13, 83, 61, 93,102, 15, 16, 97, 19, 20, 59, 55, 45, 62, 81, 48, 34, 42, 48, 14,
- 15, 93, 14, 13, 88, 75, 53, 72, 0, 1, 1, 87, 2,156, 3,122, 6, 3, 0, 19, 0, 0, 1, 21, 35, 34, 6, 29, 1, 51, 21, 35,
- 17, 35, 17, 35, 53, 51, 53, 52, 54, 51, 3,122,132, 62, 49,243,243,116,188,188,107,113, 6, 3, 85, 46, 57, 56, 80,253,221, 2,
- 35, 80, 44,103, 97, 0, 0, 0, 0, 1, 1, 98, 1,173, 3,111, 5, 15, 0, 23, 0, 0, 1, 53, 51, 17, 35, 53, 33, 17, 51, 21,
- 35, 21, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 61, 1, 1,206,153,200, 1, 60,148,148, 57, 56,104,160,147, 57, 28, 29, 2,156,
- 92, 1,199, 80,253,233, 92, 11,109, 59, 60, 88, 35, 35, 70, 11, 0, 2, 1, 71, 1,166, 3,138, 5, 13, 0, 10, 0, 36, 0, 0,
- 1, 48, 53, 39, 34, 6, 20, 22, 51, 50, 54, 23, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 61, 2, 14, 1, 35, 34, 38, 53,
- 52, 54, 51, 33, 3, 22,166, 85, 90, 90, 86, 80, 85,116,150,145, 48,105, 52, 62,100, 43, 93, 86, 28, 95, 69,124,147,145,126, 1,
- 52, 3,219,119,117,120,232,122,122,163,141,145, 15, 15,102, 25, 25, 91, 98, 5, 70, 53, 51,175,148,127,179, 0, 0, 1, 1, 91,
- 1,171, 3,118, 5, 14, 0, 19, 0, 0, 1, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 35, 17, 14, 1, 35, 34, 38, 1, 91,
-116, 67, 71, 82, 87,116,116, 31,107, 71,108,106, 3,137, 1,133,254,123, 84, 80,103, 96, 1, 98,252,157, 1, 79, 54, 56,126, 0,
- 0, 2, 1, 67, 2,156, 3,142, 6, 3, 0, 3, 0, 21, 0, 0, 1, 51, 21, 35, 7, 33, 17, 51, 21, 35, 21, 51, 21, 33, 53, 51,
- 53, 35, 53, 51, 53, 35, 2, 52,116,116,181, 1, 41,223,223,230,253,192,230,241,241,181, 6, 3,130,114,254,230, 92,173, 80, 80,
-173, 92,202, 0, 0, 1, 1, 97, 2,156, 3,112, 5, 15, 0, 13, 0, 0, 1, 35, 34, 38, 53, 17, 35, 53, 33, 17, 6, 22, 59, 1,
- 3,112,129,104,113,181, 1, 41, 1, 57, 57,117, 2,156,117,110, 1, 64, 80,254,112, 70, 70, 0, 0, 1, 1, 73, 2,156, 3,136,
- 5, 15, 0, 11, 0, 0, 1, 33, 21, 35, 17, 51, 21, 33, 53, 51, 17, 35, 1, 73, 2, 63,230,230,253,193,230,230, 5, 15, 80,254,
- 45, 80, 80, 1,211, 0, 0, 0, 0, 1, 1, 71, 2,156, 3,138, 5, 15, 0, 19, 0, 0, 1, 21, 35, 21, 51, 21, 33, 53, 51, 53,
- 35, 53, 51, 53, 35, 53, 33, 21, 35, 21, 3,138,232,230,253,193,230,232,232,230, 2, 63,230, 3,245, 92,173, 80, 80,173, 92,202,
- 80, 80,202, 0, 0, 3, 1,100, 1,173, 3,109, 6, 3, 0, 3, 0, 18, 0, 28, 0, 0, 1, 51, 21, 35, 3, 34, 53, 52, 59, 1,
- 17, 51, 17, 51, 21, 35, 6, 7, 6, 39, 48, 35, 34, 23, 22, 51, 50, 55, 54, 2,135,116,116,100,191,170,121,116,114,120, 12, 33,
- 51, 21,114, 74, 1, 3, 77, 66, 24, 11, 6, 3,130,252, 44,124,115, 2,115,253,141, 87, 63, 35, 53,152, 29, 36, 27, 13, 0, 0,
- 0, 1, 1, 85, 1,173, 3,124, 6, 10, 0, 13, 0, 0, 1, 20, 22, 59, 1, 21, 35, 34, 38, 53, 17, 35, 53, 33, 2,131, 57, 56,
-136,147,100,118,186, 1, 46, 2,145, 70, 70, 88,116,112, 3, 40, 81, 0, 0, 0, 0, 1, 1, 85, 1,173, 3,124, 6, 10, 0, 25,
- 0, 0, 1, 20, 22, 59, 1, 21, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 61, 1, 35, 34, 38, 53, 17, 35, 53, 33, 2,131, 57, 56,
-136, 56, 57,104,129,116, 57, 29, 27, 30,104,114,186, 1, 46, 3,127, 69, 71, 98,109, 59, 60, 88, 35, 34, 71, 11,119,108, 2, 58,
- 81, 0, 0, 0, 0, 1, 1,126, 2,156, 3, 83, 5, 30, 0, 5, 0, 0, 1, 51, 17, 33, 21, 33, 1,126,128, 1, 85,254, 43, 5,
- 30,253,221, 95, 0, 1, 1, 37, 1,173, 3,171, 5, 30, 0, 48, 0, 0, 1, 62, 1, 51, 50, 23, 22, 21, 17, 21, 20, 7, 6, 43,
- 1, 53, 51, 50, 55, 54, 61, 1, 49, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1,
- 51, 50, 22, 2,138, 22, 66, 46, 86, 34, 35, 50, 51, 95,117,106, 51, 26, 25, 34, 44, 50, 37,106, 36, 47, 46, 36,105,105, 21, 62,
- 40, 48, 64, 4,207, 41, 38, 58, 59,162,254,221, 83,109, 59, 60, 88, 35, 34, 71, 11, 1,103,133, 64, 69,128,254,153, 1,103,134,
- 63, 69,128,254,153, 2,115, 54, 34, 35, 39, 0, 0, 1, 1, 37, 1,171, 3,172, 5, 30, 0, 34, 0, 0, 1, 14, 1, 35, 34, 38,
- 53, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 20, 22, 51, 50, 54, 53, 17, 51, 17, 35, 17, 14, 1, 35, 34, 38, 2, 70, 21,
- 66, 47, 85, 70,106, 34, 44, 50, 37,106, 36, 47, 46, 35,106,106, 20, 63, 39, 48, 64, 2,235, 40, 39,117,162, 1,107,254,153,132,
- 65, 69,128, 1,103,254,153,134, 63, 69,128, 1,103,252,141, 1, 54, 34, 35, 39, 0, 1, 1, 85, 1,173, 3,124, 5, 30, 0, 27,
- 0, 0, 1, 20, 6, 43, 1, 53, 51, 50, 54, 53, 17, 51, 21, 62, 1, 51, 50, 22, 21, 17, 35, 17, 52, 38, 35, 34, 6, 21, 2, 24,
- 77, 85, 33, 23, 49, 36, 88, 31, 84, 56, 91, 93, 86, 59, 59, 70, 81, 2,145,120,108, 88, 54, 86, 2,126, 97, 56, 56,134,129,254,
-133, 1,119, 89, 89,107, 92, 0, 0, 1, 1, 85, 1,173, 3,124, 5, 30, 0, 36, 0, 0, 1, 53, 17, 52, 39, 38, 35, 34, 7, 6,
- 21, 17, 35, 17, 51, 21, 54, 55, 54, 51, 50, 23, 22, 21, 17, 29, 1, 20, 22, 59, 1, 21, 35, 34, 39, 38, 53, 2,185, 29, 30, 58,
- 71, 40, 41, 87, 87, 31, 42, 43, 55, 91, 47, 47, 36, 49, 23, 33, 85, 38, 39, 2,156, 72, 1, 47, 89, 44, 45, 53, 54, 92,254,158,
- 2,115, 97, 56, 28, 28, 66, 68,129,254,205, 72, 11, 86, 54, 88, 54, 54,120, 0, 0, 1, 1, 63, 2,156, 3,146, 5, 30, 0, 9,
- 0, 0, 1, 51, 1, 17, 51, 17, 35, 1, 17, 35, 1, 63,171, 1, 45,123,171,254,211,123, 5, 30,254, 7, 1,249,253,126, 1,250,
-254, 6, 0, 0, 0, 3, 1, 58, 2,140, 3,151, 5, 30, 0, 14, 0, 23, 0, 32, 0, 0, 0, 32, 23, 22, 21, 20, 7, 6, 35, 34,
- 39, 38, 53, 52, 55, 23, 34, 7, 6, 7, 33, 38, 39, 38, 19, 33, 22, 23, 22, 51, 50, 55, 54, 1,213, 1, 38, 78, 78, 78, 77,148,
-147, 77, 78, 78,224, 88, 45, 40, 5, 1,101, 5, 40, 45, 87,254,161, 9, 33, 45, 88, 89, 45, 33, 5, 30, 84, 85,160,161, 84, 84,
- 84, 84,161,160, 85, 3, 61, 53, 99, 99, 53, 61,254,207, 74, 44, 61, 61, 44, 0, 0, 3, 1, 58, 1,174, 3,151, 6, 3, 0, 29,
- 0, 38, 0, 47, 0, 0, 1, 35, 53, 33, 21, 35, 21, 22, 23, 22, 21, 20, 7, 6, 7, 21, 51, 21, 33, 53, 51, 53, 38, 39, 38, 53,
- 52, 55, 54, 55, 23, 17, 54, 55, 54, 53, 52, 39, 38, 3, 17, 6, 7, 6, 21, 20, 23, 22, 2, 51,151, 1,162,151,102, 60, 78, 78,
- 60,102,151,254, 94,151,108, 63, 78, 78, 63,108,116, 44, 27, 46, 46, 27,160, 50, 30, 46, 46, 30, 5,167, 92, 92,141, 15, 65, 85,
-160,161, 84, 65, 15,134, 92, 92,133, 13, 68, 84,161,160, 85, 68, 13, 93,254, 47, 14, 37, 62,119,120, 61, 37,254, 59, 1,214, 13,
- 41, 61,120,119, 62, 41, 0, 0, 0, 1, 1, 91, 1,173, 3,118, 5, 30, 0, 60, 0, 0, 1, 21, 46, 1, 35, 34, 7, 6, 21, 20,
- 23, 22, 31, 1, 22, 23, 22, 21, 20, 7, 6, 35, 34, 47, 1, 21, 20, 22, 59, 1, 21, 35, 34, 39, 38, 61, 3, 22, 23, 22, 51, 50,
- 54, 53, 52, 39, 38, 47, 1, 46, 1, 53, 52, 55, 54, 51, 50, 23, 22, 3, 80, 49,106, 56, 87, 42, 44, 31, 31, 93, 40,123, 52, 52,
- 77, 78,137, 56, 62, 13, 48, 66,147,160,114, 51, 52, 64, 62, 63, 61, 82, 88, 31, 33,107, 41,107, 96, 70, 71,130, 64, 57, 56, 4,
-253, 98, 23, 22, 23, 24, 47, 36, 21, 20, 18, 8, 24, 43, 42, 77, 87, 51, 51, 9, 3, 7, 86, 54, 88, 54, 54,120, 34, 49, 57, 29,
- 15, 15, 50, 45, 42, 23, 22, 21, 8, 20, 84, 73, 88, 48, 48, 8, 8, 0, 0, 0, 0, 1, 1,120, 1,173, 3, 89, 6, 3, 0, 20,
- 0, 0, 1, 2, 3, 52, 54, 59, 1, 21, 35, 34, 6, 21, 19, 20, 6, 43, 1, 53, 51, 50, 54, 2, 9, 1, 1,106,123,109,111, 62,
- 49, 2,103,114, 44, 31, 66, 48, 2,145, 1, 93, 1, 77,101, 99, 85, 45, 58,253, 74,120,108, 88, 54, 0, 0, 0, 0, 1, 1, 77,
- 1,173, 3,132, 5,193, 0, 33, 0, 0, 1, 21, 33, 21, 33, 17, 20, 23, 22, 59, 1, 21, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54,
- 61, 1, 35, 34, 39, 38, 53, 17, 35, 53, 51, 53, 2,125, 1, 7,254,249, 30, 29, 74,130, 56, 56,104,130,117, 57, 28, 28, 25,131,
- 53, 54,188,188, 5,193,178, 80,254,172, 70, 27, 28, 93,109, 59, 60, 88, 35, 34, 71, 11, 46, 47,114, 1, 84, 80,178, 0, 0, 0,
- 0, 2, 0,208, 2,140, 4, 1, 5, 15, 0, 23, 0, 33, 0, 0, 19, 53, 51, 17, 51, 17, 33, 17, 51, 17, 51, 21, 35, 21, 35, 53,
- 6, 7, 6, 35, 34, 38, 61, 1, 41, 1, 21, 20, 23, 22, 51, 50, 55, 54,208,109,116, 1,103,116,117,117,116, 42, 56, 55, 74,122,
-126, 1,219,254,153, 39, 39, 78, 94, 55, 49, 3,153, 92, 1, 26,254,230, 1, 26,254,230, 92,253, 96, 57, 28, 27,134,130, 5, 2,
- 89, 44, 45, 54, 47, 0, 0, 0, 0, 1, 1, 32, 2,139, 3,177, 5, 15, 0, 29, 0, 0, 1, 53, 33, 21, 14, 1, 21, 20, 22, 50,
- 54, 53, 52, 38, 39, 53, 33, 21, 35, 30, 1, 21, 20, 6, 32, 38, 53, 52, 54, 55, 1, 32, 1, 22, 68, 82,111,182,111, 87, 63, 1,
- 19,149, 72, 69,178,254,228,179, 66, 75, 4,179, 92,123, 39,121, 75, 89,109,109, 89, 82,118, 35,123, 92, 56,125, 76,131,164,163,
-128, 82,121, 58, 0, 1, 1, 70, 2,156, 3,139, 5, 15, 0, 26, 0, 0, 1, 51, 49, 30, 1, 21, 20, 6, 43, 1, 34, 38, 53, 17,
- 51, 17, 20, 22, 63, 1, 50, 54, 53, 52, 38, 39, 38, 2, 51,203, 72, 69,179,141, 45,114,102,116, 49, 65, 32, 91,110, 91, 58, 48,
- 4,196, 56,125, 76,131,164,108,119, 1,144,254,112, 85, 56, 1, 1,109, 89, 81,123, 31, 24, 0, 0, 1, 1, 17, 2,156, 3,192,
- 5, 15, 0, 6, 0, 0, 1, 35, 11, 1, 35, 1, 51, 3,192,123,221,220,123, 1, 9,157, 2,156, 2, 14,253,242, 2,115, 0, 0,
- 0, 1, 1, 97, 2,156, 3,112, 5, 16, 0, 9, 0, 0, 1, 33, 21, 1, 33, 21, 33, 53, 1, 33, 1,112, 2, 0,254,107, 1,149,
-253,241, 1,149,254,122, 5, 16, 94,254, 62, 84, 95, 1,195, 0, 0, 1, 1, 94, 1,173, 3,115, 5, 15, 0, 22, 0, 0, 1, 33,
- 21, 1, 33, 21, 35, 21, 20, 22, 59, 1, 21, 35, 34, 39, 38, 61, 1, 33, 53, 1, 33, 1,106, 1,157,254,185, 1, 71, 1, 36, 50,
- 23, 33, 86, 38, 39,254,175, 1, 71,254,197, 5, 15, 94,254, 61, 82, 11, 86, 54, 88, 54, 54,120, 11, 94, 1,195, 0, 2, 1, 77,
- 2, 94, 3,132, 5, 15, 0, 20, 0, 28, 0, 0, 1, 6, 21, 35, 52, 55, 35, 53, 1, 33, 53, 33, 21, 1, 51, 54, 51, 50, 21, 22,
- 35, 39, 48, 51, 50, 53, 52, 35, 6, 2,146, 2, 97, 3,229, 1,180,254, 92, 2, 39,254, 76,110, 38,138,143, 1,210, 13, 13,109,
- 44, 56, 2,156, 29, 33, 33, 29, 94, 1,195, 82, 94,254, 61,162,138,106, 82, 31, 51, 1, 0, 0, 0, 1, 1, 51, 1,168, 3,158,
- 5, 15, 0, 28, 0, 0, 1, 50, 23, 30, 1, 21, 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 43, 1, 53, 1, 33,
- 53, 33, 21, 2,100, 67, 80, 62,105,191,177, 59,125, 67, 53,126, 68,120,126,117,104,110, 1, 15,254, 92, 2, 39, 3,167, 32, 23,
-120, 77,124,135, 21, 20,109, 27, 28, 84, 80, 74, 83, 93, 1, 24, 82, 94, 0, 0, 0, 3, 1, 58, 2,140, 3,151, 5,228, 0, 6,
- 0, 13, 0, 24, 0, 0, 1, 46, 1, 35, 34, 6, 7, 5, 33, 30, 1, 51, 50, 54, 0, 32, 22, 21, 20, 6, 35, 34, 38, 53, 52, 3,
- 26, 4, 85, 89, 88, 85, 4, 1, 99,254,157, 3, 86, 88, 89, 86,254,190, 1, 38,156,155,148,147,155, 4,108,126,162,162,126,103,
-126,163,163, 2, 93,220,208,209,219,219,209,208,255,255, 0, 37,254, 10, 4,172, 5,213, 16, 38, 2,161, 0, 0, 16, 6, 0, 36,
- 0, 0, 0, 0,255,255, 0,133,254, 10, 4, 35, 4,123, 16, 38, 2,161, 0, 0, 16, 6, 0, 68, 0, 0, 0, 0,255,255, 0,166,
- 0, 0, 4,113, 7, 80, 16, 38, 11,185, 0, 0, 16, 6, 0, 37, 0, 0, 0, 0,255,255, 0,193,255,227, 4, 88, 6, 20, 16, 38,
- 2,131, 50, 0, 16, 6, 0, 69, 0, 0, 0, 0,255,255, 0,166,254, 99, 4,113, 5,213, 16, 38, 2,159, 0, 0, 16, 6, 0, 37,
- 0, 0, 0, 0,255,255, 0,193,254, 99, 4, 88, 6, 20, 16, 38, 2,159, 0, 0, 16, 6, 0, 69, 0, 0, 0, 0,255,255, 0,166,
-254,155, 4,113, 5,213, 16, 38, 2,173, 0, 0, 16, 6, 0, 37, 0, 0, 0, 0,255,255, 0,193,254,155, 4, 88, 6, 20, 16, 38,
- 2,173, 0, 0, 16, 6, 0, 69, 0, 0, 0, 0,255,255, 0,139,254,117, 4, 49, 7,107, 16, 39, 11,177, 0, 90, 1,117, 16, 38,
- 2,163,100, 0, 16, 6, 0, 38, 0, 0, 0, 0,255,255, 0,195,254,117, 4, 37, 6,102, 16, 38, 0,118, 90, 0, 16, 38, 2,163,
-104, 0, 16, 6, 0, 70, 0, 0,255,255, 0,137, 0, 0, 4, 82, 7, 80, 16, 38, 11,185,206, 0, 16, 6, 0, 39, 0, 0, 0, 0,
-255,255, 0,123,255,227, 4, 18, 6, 20, 16, 38, 2,131,206, 0, 16, 6, 0, 71, 0, 0, 0, 0,255,255, 0,137,254, 99, 4, 82,
- 5,213, 16, 38, 2,159,206, 0, 16, 6, 0, 39, 0, 0, 0, 0,255,255, 0,123,254, 99, 4, 18, 6, 20, 16, 38, 2,159, 0, 0,
- 16, 6, 0, 71, 0, 0, 0, 0,255,255, 0,137,254,155, 4, 82, 5,213, 16, 38, 2,173,206, 0, 16, 6, 0, 39, 0, 0, 0, 0,
-255,255, 0,123,254,155, 4, 18, 6, 20, 16, 38, 2,173, 0, 0, 16, 6, 0, 71, 0, 0, 0, 0,255,255, 0,125,254,117, 4, 82,
- 5,213, 16, 39, 2,163,254,242, 0, 0, 18, 6, 0, 39, 0, 0,255,255, 0,123,254,117, 4, 18, 6, 20, 16, 38, 2,163,236, 0,
- 18, 6, 0, 71, 0, 0, 0, 0,255,255, 0,137,254, 27, 4, 82, 5,213, 16, 38, 2,169,206, 0, 16, 6, 0, 39, 0, 0, 0, 0,
-255,255, 0,123,254, 27, 4, 18, 6, 20, 16, 38, 2,169, 0, 0, 16, 6, 0, 71, 0, 0, 0, 0,255,255, 0,197,254, 27, 4, 78,
- 5,213, 16, 38, 2,169, 18, 0, 16, 6, 0, 40, 0, 0, 0, 0,255,255, 0,123,254, 27, 4, 88, 4,123, 16, 38, 2,169, 14, 0,
- 16, 6, 0, 72, 0, 0, 0, 0,255,255, 0,197,254, 27, 4, 78, 5,213, 16, 38, 2,172, 18, 0, 16, 6, 0, 40, 0, 0, 0, 0,
-255,255, 0,123,254, 27, 4, 88, 4,123, 16, 38, 2,172, 14, 0, 16, 6, 0, 72, 0, 0, 0, 0,255,255, 0,197,254,117, 4, 78,
- 7,109, 16, 38, 11,184, 18, 0, 16, 38, 0, 40, 0, 0, 16, 6, 2,163, 50, 0,255,255, 0,123,254,117, 4, 88, 6, 72, 16, 38,
- 2,130, 14, 0, 16, 38, 0, 72, 0, 0, 16, 6, 2,163, 50, 0,255,255, 0,233, 0, 0, 4, 88, 7, 80, 16, 38, 11,185, 54, 0,
- 16, 6, 0, 41, 0, 0, 0, 0,255,255, 0,195, 0, 0, 4, 39, 7, 80, 16, 38, 11,185, 0, 0, 16, 6, 0, 73, 0, 0, 0, 0,
-255,255, 0,102,255,227, 4, 80, 7, 48, 16, 38, 11,189, 50, 0, 16, 6, 0, 42, 0, 0, 0, 0,255,255, 0,123,254, 72, 4, 18,
- 5,246, 16, 38, 2,128, 0, 0, 16, 6, 0, 74, 0, 0, 0, 0,255,255, 0,137, 0, 0, 4, 72, 7, 80, 16, 38, 11,185, 0, 0,
- 16, 6, 0, 43, 0, 0, 0, 0,255,255, 0,195, 0, 0, 4, 27, 7, 80, 16, 38, 11,185, 0, 0, 16, 6, 0, 75, 0, 0, 0, 0,
-255,255, 0,137,254, 99, 4, 72, 5,213, 16, 38, 2,159, 0, 0, 16, 6, 0, 43, 0, 0, 0, 0,255,255, 0,195,254, 99, 4, 27,
- 6, 20, 16, 38, 2,159, 0, 0, 16, 6, 0, 75, 0, 0, 0, 0,255,255, 0, 20,254,117, 4, 72, 5,213, 16, 39, 2,163,254,137,
- 0, 0, 16, 6, 0, 43, 0, 0,255,255, 0, 55,254,117, 4, 27, 6, 20, 16, 39, 2,163,254,172, 0, 0, 16, 6, 0, 75, 0, 0,
-255,255, 0,137,254, 25, 4, 72, 5,213, 16, 38, 2,170, 0, 0, 16, 6, 0, 43, 0, 0, 0, 0,255,255, 0,195,254, 25, 4, 27,
- 6, 20, 16, 38, 2,170, 0, 0, 16, 6, 0, 75, 0, 0, 0, 0,255,255, 0,201,254, 27, 4, 6, 5,213, 16, 38, 2,172, 0, 0,
- 16, 6, 0, 44, 0, 0, 0, 0,255,255, 0,178,254, 27, 4, 68, 6, 20, 16, 38, 2,172, 0, 0, 16, 6, 0, 76, 0, 0, 0, 0,
-255,255, 0,137, 0, 0, 4,201, 7,107, 16, 39, 11,177, 0, 0, 1,117, 16, 6, 0, 46, 0, 0,255,255, 0,236, 0, 0, 4,178,
- 7,107, 16, 39, 11,177,255, 37, 1,117, 16, 6, 0, 78, 0, 0,255,255, 0,137,254, 99, 4,201, 5,213, 16, 38, 2,159, 0, 0,
- 16, 6, 0, 46, 0, 0, 0, 0,255,255, 0,236,254, 99, 4,178, 6, 20, 16, 38, 2,159, 50, 0, 16, 6, 0, 78, 0, 0, 0, 0,
-255,255, 0,137,254,155, 4,201, 5,213, 16, 38, 2,173, 0, 0, 16, 6, 0, 46, 0, 0, 0, 0,255,255, 0,236,254,155, 4,178,
- 6, 20, 16, 38, 2,173, 50, 0, 16, 6, 0, 78, 0, 0, 0, 0,255,255, 0,215,254, 99, 4,115, 5,213, 16, 38, 2,159, 50, 0,
- 16, 6, 0, 47, 0, 0, 0, 0,255,255, 0,160,254, 99, 4, 10, 6, 31, 16, 38, 2,159, 0, 0, 16, 6, 0, 79, 0, 0, 0, 0,
-255,255, 0,215,254, 99, 4,115, 7, 48, 16, 38, 11,189, 0, 0, 16, 6, 5, 52, 0, 0, 0, 0,255,255, 0,160,254, 99, 4, 10,
- 7, 48, 16, 38, 11,189, 0, 0, 16, 6, 5, 53, 0, 0, 0, 0,255,255, 0,215,254,155, 4,115, 5,213, 16, 38, 2,173, 50, 0,
- 16, 6, 0, 47, 0, 0, 0, 0,255,255, 0,160,254,155, 4, 10, 6, 31, 16, 38, 2,173, 0, 0, 16, 6, 0, 79, 0, 0, 0, 0,
-255,255, 0,215,254, 27, 4,115, 5,213, 16, 38, 2,169, 50, 0, 16, 6, 0, 47, 0, 0, 0, 0,255,255, 0,160,254, 27, 4, 10,
- 6, 31, 16, 38, 2,169, 0, 0, 16, 6, 0, 79, 0, 0, 0, 0,255,255, 0, 86, 0, 0, 4,121, 7,107, 16, 39, 11,177, 0, 0,
- 1,117, 16, 6, 0, 48, 0, 0,255,255, 0,109, 0, 0, 4,111, 6,102, 16, 38, 0,118, 0, 0, 16, 6, 0, 80, 0, 0, 0, 0,
-255,255, 0, 86, 0, 0, 4,121, 7, 80, 16, 38, 11,185, 0, 0, 16, 6, 0, 48, 0, 0, 0, 0,255,255, 0,109, 0, 0, 4,111,
- 6, 16, 16, 38, 2,131, 0, 0, 18, 6, 0, 80, 0, 0, 0, 0,255,255, 0, 86,254, 99, 4,121, 5,213, 16, 38, 2,159, 0, 0,
- 16, 6, 0, 48, 0, 0, 0, 0,255,255, 0,109,254, 99, 4,111, 4,123, 16, 38, 2,159, 0, 0, 16, 6, 0, 80, 0, 0, 0, 0,
-255,255, 0,139, 0, 0, 4, 70, 7, 80, 16, 38, 11,185, 0, 0, 16, 6, 0, 49, 0, 0, 0, 0,255,255, 0,195, 0, 0, 4, 27,
- 6, 16, 16, 38, 2,131, 0, 0, 16, 6, 0, 81, 0, 0, 0, 0,255,255, 0,139,254, 99, 4, 70, 5,213, 16, 38, 2,159, 0, 0,
- 16, 6, 0, 49, 0, 0, 0, 0,255,255, 0,195,254, 99, 4, 27, 4,123, 16, 38, 2,159, 0, 0, 16, 6, 0, 81, 0, 0, 0, 0,
-255,255, 0,139,254,155, 4, 70, 5,213, 16, 38, 2,173, 0, 0, 16, 6, 0, 49, 0, 0, 0, 0,255,255, 0,195,254,155, 4, 27,
- 4,123, 16, 38, 2,173, 0, 0, 16, 6, 0, 81, 0, 0, 0, 0,255,255, 0,139,254, 27, 4, 70, 5,213, 16, 38, 2,169, 0, 0,
- 16, 6, 0, 49, 0, 0, 0, 0,255,255, 0,195,254, 27, 4, 27, 4,123, 16, 38, 2,169, 0, 0, 16, 6, 0, 81, 0, 0, 0, 0,
-255,255, 0,197, 0, 0, 4,117, 7, 80, 16, 38, 11,185, 0, 0, 16, 6, 0, 51, 0, 0, 0, 0,255,255, 0,190,254, 86, 4, 84,
- 6, 16, 16, 38, 2,131, 0, 0, 18, 6, 0, 83, 0, 0, 0, 0,255,255, 0,143, 0, 0, 4,209, 7, 80, 16, 38, 11,185,206, 0,
- 16, 6, 0, 53, 0, 0, 0, 0,255,255, 1,106, 0, 0, 4,131, 6, 16, 16, 38, 2,131, 0, 0, 16, 6, 0, 85, 0, 0, 0, 0,
-255,255, 0,143,254, 99, 4,209, 5,213, 16, 38, 2,159,206, 0, 16, 6, 0, 53, 0, 0, 0, 0,255,255, 1,106,254, 99, 4,131,
- 4,123, 16, 38, 2,159, 0, 0, 16, 6, 0, 85, 0, 0, 0, 0,255,255, 0,143,254, 99, 4,209, 7, 48, 16, 38, 11,189,206, 0,
- 16, 6, 5, 78, 0, 0, 0, 0,255,255, 1, 61,254, 99, 4,131, 5,246, 16, 38, 2,128, 0, 0, 16, 6, 5, 79, 0, 0, 0, 0,
-255,255, 0,143,254,155, 4,209, 5,213, 16, 38, 2,173, 0, 0, 16, 6, 0, 53, 0, 0, 0, 0,255,255, 1, 61,254,155, 4,131,
- 4,123, 16, 38, 2,173, 0, 0, 16, 6, 0, 85, 0, 0, 0, 0,255,255, 0,139,255,227, 4, 74, 7, 80, 16, 38, 11,185, 0, 0,
- 16, 6, 0, 54, 0, 0, 0, 0,255,255, 0,213,255,227, 4, 6, 6, 16, 16, 38, 2,131, 0, 0, 18, 6, 0, 86, 0, 0, 0, 0,
-255,255, 0,139,254, 99, 4, 74, 5,240, 16, 38, 2,159, 0, 0, 16, 6, 0, 54, 0, 0, 0, 0,255,255, 0,213,254, 99, 4, 6,
- 4,123, 16, 38, 2,159, 0, 0, 16, 6, 0, 86, 0, 0, 0, 0,255,255, 0,139,254, 99, 4, 74, 7, 80, 16, 38, 11,185, 0, 0,
- 16, 38, 0, 54, 0, 0, 16, 6, 2,159, 0, 0,255,255, 0,213,254, 99, 4, 6, 6, 16, 16, 38, 2,131, 0, 0, 16, 38, 0, 86,
- 0, 0, 16, 6, 2,159, 0, 0,255,255, 0, 47, 0, 0, 4,162, 7, 80, 16, 38, 11,185, 0, 0, 16, 6, 0, 55, 0, 0, 0, 0,
-255,255, 0,131, 0, 0, 4, 8, 7, 80, 16, 38, 11,185, 0, 0, 16, 6, 0, 87, 0, 0, 0, 0,255,255, 0, 47,254, 99, 4,162,
- 5,213, 16, 38, 2,159, 0, 0, 16, 6, 0, 55, 0, 0, 0, 0,255,255, 0,131,254, 99, 4, 8, 5,158, 16, 38, 2,159, 0, 0,
- 16, 6, 0, 87, 0, 0, 0, 0,255,255, 0, 47,254,155, 4,162, 5,213, 16, 38, 2,173, 0, 0, 16, 6, 0, 55, 0, 0, 0, 0,
-255,255, 0,131,254,155, 4, 8, 5,158, 16, 38, 2,173, 0, 0, 16, 6, 0, 87, 0, 0, 0, 0,255,255, 0, 47,254, 27, 4,162,
- 5,213, 16, 38, 2,169, 0, 0, 16, 6, 0, 55, 0, 0, 0, 0,255,255, 0,131,254, 27, 4, 8, 5,158, 16, 38, 2,169, 0, 0,
- 16, 6, 0, 87, 0, 0, 0, 0,255,255, 0,147,254,100, 4, 61, 5,213, 16, 38, 2,160, 0, 0, 16, 6, 0, 56, 0, 0, 0, 0,
-255,255, 0,195,254,100, 4, 27, 4, 94, 16, 38, 2,160, 0, 0, 16, 6, 0, 88, 0, 0, 0, 0,255,255, 0,147,254, 27, 4, 61,
- 5,213, 16, 38, 2,172, 0, 0, 16, 6, 0, 56, 0, 0, 0, 0,255,255, 0,195,254, 27, 4, 27, 4, 94, 16, 38, 2,172, 0, 0,
- 16, 6, 0, 88, 0, 0, 0, 0,255,255, 0,147,254, 27, 4, 61, 5,213, 16, 38, 2,169, 0, 0, 16, 6, 0, 56, 0, 0, 0, 0,
-255,255, 0,195,254, 27, 4, 27, 4, 94, 16, 38, 2,169, 0, 0, 16, 6, 0, 88, 0, 0, 0, 0,255,255, 0, 57,254, 99, 4,152,
- 5,213, 16, 38, 2,159, 0, 0, 16, 6, 0, 57, 0, 0, 0, 0,255,255, 0,100,254, 99, 4,109, 4, 96, 16, 38, 2,159, 0, 0,
- 16, 6, 0, 89, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 4,209, 7,114, 16, 39, 11,179, 0, 0, 1,124, 16, 6, 0, 58, 0, 0,
-255,255, 0, 0, 0, 0, 4,209, 6,109, 16, 38, 0, 67,192, 7, 16, 6, 0, 90, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 4,209,
- 7,114, 16, 39, 11,177, 0, 0, 1,124, 16, 6, 0, 58, 0, 0,255,255, 0, 0, 0, 0, 4,209, 6,109, 16, 38, 0,118, 64, 7,
- 16, 6, 0, 90, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 4,209, 7, 52, 16, 39, 0,106, 0, 0, 1, 36, 16, 6, 0, 58, 0, 0,
-255,255, 0, 0, 0, 0, 4,209, 5,191, 16, 38, 0,106, 0,175, 16, 6, 0, 90, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 4,209,
- 7, 80, 16, 38, 11,185, 0, 0, 16, 6, 0, 58, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 4,209, 6, 16, 16, 38, 2,131, 0, 0,
- 16, 6, 0, 90, 0, 0, 0, 0,255,255, 0, 0,254, 99, 4,209, 5,213, 16, 38, 2,159, 0, 0, 16, 6, 0, 58, 0, 0, 0, 0,
-255,255, 0, 0,254, 99, 4,209, 4, 96, 16, 38, 2,159, 0, 0, 16, 6, 0, 90, 0, 0, 0, 0,255,255, 0, 18, 0, 0, 4,190,
- 7, 80, 16, 38, 11,185, 0, 0, 16, 6, 0, 59, 0, 0, 0, 0,255,255, 0, 76, 0, 0, 4,133, 6, 16, 16, 38, 2,131, 0, 0,
- 16, 6, 0, 91, 0, 0, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7, 80, 16, 38, 11,185, 0, 0, 16, 6, 0, 60, 0, 0, 0, 0,
-255,255, 0,104,254, 86, 4,129, 6, 16, 16, 38, 2,131, 0, 0, 16, 6, 0, 92, 0, 0, 0, 0,255,255, 0,156,254, 99, 4,145,
- 5,213, 16, 38, 2,159, 50, 0, 18, 6, 0, 61, 0, 0, 0, 0,255,255, 0,203,254, 99, 4, 16, 4, 98, 16, 38, 2,159, 0, 0,
- 18, 6, 0, 93, 0, 0, 0, 0,255,255, 0,156,254,155, 4,145, 5,213, 16, 38, 2,173, 50, 0, 16, 6, 0, 61, 0, 0, 0, 0,
-255,255, 0,203,254,155, 4, 16, 4, 98, 16, 38, 2,173, 0, 0, 16, 6, 0, 93, 0, 0, 0, 0,255,255, 0,195,254,155, 4, 27,
- 6, 20, 16, 38, 2,173, 0, 0, 16, 6, 0, 75, 0, 0, 0, 0,255,255, 0,195, 0, 0, 4, 39, 7, 80, 16, 38, 11,185, 0, 0,
- 16, 6, 1, 65, 0, 0, 0, 0,255,255, 0, 37,254, 99, 4,172, 5,213, 16, 38, 2,159, 0, 0, 16, 6, 0, 36, 0, 0, 0, 0,
-255,255, 0,133,254, 99, 4, 35, 4,123, 16, 38, 2,159, 0, 0, 16, 6, 0, 68, 0, 0, 0, 0,255,255, 0, 37, 0, 0, 4,172,
- 7,249, 16, 38, 11,184, 0,128, 16, 38, 0, 36, 0, 0, 16, 7, 11,179, 0, 0, 2, 3, 0, 0,255,255, 0,133,255,227, 4, 35,
- 7,162, 16, 39, 2,124, 0, 0, 1, 60, 18, 6, 0,197, 0, 0,255,255, 0,197,254, 99, 4, 78, 5,213, 16, 38, 2,159, 18, 0,
- 16, 6, 0, 40, 0, 0, 0, 0,255,255, 0,123,254, 99, 4, 88, 4,123, 16, 38, 2,159, 14, 0, 16, 6, 0, 72, 0, 0, 0, 0,
-255,255, 0,197, 0, 0, 4, 78, 7, 94, 16, 39, 11,178, 0, 42, 1,117, 16, 6, 0, 40, 0, 0,255,255, 0,123,255,227, 4, 88,
- 6, 55, 16, 38, 2,110, 0, 0, 16, 6, 0, 72, 0, 0, 0, 0,255,255, 0,201,254, 99, 4, 6, 5,213, 16, 38, 2,159, 0, 0,
- 16, 6, 0, 44, 0, 0, 0, 0,255,255, 0,178,254, 99, 4, 68, 6, 20, 16, 38, 2,159, 0, 0, 16, 6, 0, 76, 0, 0, 0, 0,
-255,255, 0,117,254, 99, 4, 92, 5,240, 16, 38, 2,159, 0, 0, 16, 6, 0, 50, 0, 0, 0, 0,255,255, 0,137,254, 99, 4, 72,
- 4,123, 16, 38, 2,159, 0, 0, 16, 6, 0, 82, 0, 0, 0, 0,255,255, 0,147,254, 99, 4, 61, 5,213, 16, 38, 2,159, 0, 0,
- 16, 6, 0, 56, 0, 0, 0, 0,255,255, 0,195,254, 99, 4, 27, 4, 94, 16, 38, 2,159, 0, 0, 16, 6, 0, 88, 0, 0, 0, 0,
-255,255, 0, 37, 0, 0, 4,172, 7,114, 16, 39, 11,179, 0, 0, 1,124, 16, 6, 0, 60, 0, 0,255,255, 0,104,254, 86, 4,129,
- 6,109, 16, 38, 0, 67,204, 7, 16, 6, 0, 92, 0, 0, 0, 0,255,255, 0, 37,254, 99, 4,172, 5,213, 16, 38, 2,159, 0, 0,
- 16, 6, 0, 60, 0, 0, 0, 0,255,255, 0,104,254, 86, 4,129, 4, 96, 16, 39, 2,159, 0,250, 0, 0, 16, 6, 0, 92, 0, 0,
-255,255, 0, 37, 0, 0, 4,172, 7, 94, 16, 39, 11,178, 0, 0, 1,117, 16, 6, 0, 60, 0, 0,255,255, 0,104,254, 86, 4,129,
- 6, 55, 16, 38, 2,110, 0, 0, 16, 6, 0, 92, 0, 0, 0, 0,255,255, 0, 70,255,230, 4,149, 6,114, 16, 38, 2,237, 0, 0,
- 16, 6, 6, 66, 0, 0, 0, 0,255,255, 0, 70,255,230, 4,149, 6,114, 16, 38, 2,237, 0, 0, 16, 6, 6,122, 0, 0, 0, 0,
-255,255, 0, 70,255,230, 4,149, 6,114, 16, 38, 2,237, 0, 0, 16, 6, 6, 79, 0, 0, 0, 0,255,255, 0, 70,255,230, 4,149,
- 6,114, 16, 38, 2,237, 0, 0, 16, 6, 6, 92, 0, 0, 0, 0,255,255, 0, 70,255,230, 4,149, 6,114, 16, 38, 2,237, 0, 0,
- 16, 6, 6, 80, 0, 0, 0, 0,255,255, 0, 70,255,230, 4,149, 6,114, 16, 38, 2,237, 0, 0, 16, 6, 6, 93, 0, 0, 0, 0,
-255,255, 0, 70,255,230, 4,149, 7,209, 16, 38, 2,237, 0, 0, 16, 6, 6, 81, 0, 0, 0, 0,255,255, 0, 70,255,230, 4,149,
- 7,209, 16, 38, 2,237, 0, 0, 16, 6, 6, 94, 0, 0, 0, 0,255,255, 0, 37, 0, 0, 4,172, 6,114, 16, 38, 2,206, 0, 0,
- 16, 7, 6, 66,254,162, 0, 0,255,255, 0, 37, 0, 0, 4,172, 6,114, 16, 38, 2,206, 0, 0, 16, 7, 6,122,254,112, 0, 0,
-255,255,254,107, 0, 0, 4,172, 6,114, 16, 38, 2,206, 0, 0, 16, 7, 6, 79,253,118, 0, 0,255,255,254,107, 0, 0, 4,172,
- 6,114, 16, 38, 2,206, 0, 0, 16, 7, 6, 92,253,118, 0, 0,255,255,255, 26, 0, 0, 4,172, 6,114, 16, 38, 2,206, 0, 0,
- 16, 7, 6, 80,253,243, 0, 0,255,255,255, 6, 0, 0, 4,172, 6,114, 16, 38, 2,206, 0, 0, 16, 7, 6, 93,253,243, 0, 0,
-255,255,255,193, 0, 0, 4,172, 7,209, 16, 38, 2,206, 0, 0, 16, 7, 6, 81,254,162, 0, 0,255,255,255,143, 0, 0, 4,172,
- 7,209, 16, 38, 2,206, 0, 0, 16, 7, 6, 94,254,112, 0, 0,255,255, 0,169,255,234, 4, 40, 6,114, 16, 38, 2,241, 0, 0,
- 16, 6, 6, 66, 0, 0, 0, 0,255,255, 0,169,255,234, 4, 40, 6,114, 16, 38, 2,241, 0, 0, 16, 6, 6,122, 0, 0, 0, 0,
-255,255, 0,169,255,234, 4, 40, 6,114, 16, 38, 2,241, 0, 0, 16, 6, 6, 79, 0, 0, 0, 0,255,255, 0,169,255,234, 4, 40,
- 6,114, 16, 38, 2,241, 0, 0, 16, 6, 6, 92, 0, 0, 0, 0,255,255, 0,169,255,234, 4, 40, 6,114, 16, 38, 2,241, 0, 0,
- 16, 6, 6, 80, 0, 0, 0, 0,255,255, 0,169,255,234, 4, 40, 6,114, 16, 38, 2,241, 0, 0, 16, 6, 6, 93, 0, 0, 0, 0,
-255,255,255,126, 0, 0, 4, 78, 6,114, 16, 38, 2,210, 0, 0, 16, 7, 6, 66,253,143, 0, 0,255,255,255,126, 0, 0, 4, 78,
- 6,114, 16, 38, 2,210, 0, 0, 16, 7, 6,122,253,143, 0, 0,255,255,253,138, 0, 0, 4, 78, 6,114, 16, 38, 2,210, 0, 0,
- 16, 7, 6, 79,252,149, 0, 0,255,255,253,138, 0, 0, 4, 78, 6,114, 16, 38, 2,210, 0, 0, 16, 7, 6, 92,252,149, 0, 0,
-255,255,254, 7, 0, 0, 4, 78, 6,114, 16, 38, 2,210, 0, 0, 16, 7, 6, 80,252,224, 0, 0,255,255,253,243, 0, 0, 4, 78,
- 6,114, 16, 38, 2,210, 0, 0, 16, 7, 6, 93,252,224, 0, 0,255,255, 0,195,254, 86, 4, 27, 6,114, 16, 38, 2,243, 0, 0,
- 16, 6, 6, 66, 0, 0, 0, 0,255,255, 0,195,254, 86, 4, 27, 6,114, 16, 38, 2,243, 0, 0, 16, 6, 6,122, 0, 0, 0, 0,
-255,255, 0,195,254, 86, 4, 27, 6,114, 16, 38, 2,243, 0, 0, 16, 6, 6, 79, 0, 0, 0, 0,255,255, 0,195,254, 86, 4, 27,
- 6,114, 16, 38, 2,243, 0, 0, 16, 6, 6, 92, 0, 0, 0, 0,255,255, 0,195,254, 86, 4, 30, 6,114, 16, 38, 2,243, 0, 0,
- 16, 6, 6, 80, 0, 0, 0, 0,255,255, 0,195,254, 86, 4, 30, 6,114, 16, 38, 2,243, 0, 0, 16, 6, 6, 93, 0, 0, 0, 0,
-255,255, 0,195,254, 86, 4, 27, 7,209, 16, 38, 2,243, 0, 0, 16, 6, 6, 81, 0, 0, 0, 0,255,255, 0,195,254, 86, 4, 27,
- 7,209, 16, 38, 2,243, 0, 0, 16, 6, 6, 94, 0, 0, 0, 0,255,255,255, 76, 0, 0, 4, 72, 6,114, 16, 38, 2,212, 0, 0,
- 16, 7, 6, 66,253, 93, 0, 0,255,255,255, 76, 0, 0, 4, 72, 6,114, 16, 38, 2,212, 0, 0, 16, 7, 6,122,253, 93, 0, 0,
-255,255,253, 63, 0, 0, 4, 72, 6,114, 16, 38, 2,212, 0, 0, 16, 7, 6, 79,252, 74, 0, 0,255,255,253, 63, 0, 0, 4, 72,
- 6,114, 16, 38, 2,212, 0, 0, 16, 7, 6, 92,252, 74, 0, 0,255,255,253,163, 0, 0, 4, 72, 6,114, 16, 38, 2,212, 0, 0,
- 16, 7, 6, 80,252,124, 0, 0,255,255,253,143, 0, 0, 4, 72, 6,114, 16, 38, 2,212, 0, 0, 16, 7, 6, 93,252,124, 0, 0,
-255,255,254, 99, 0, 0, 4, 72, 7,209, 16, 38, 2,212, 0, 0, 16, 7, 6, 81,253, 68, 0, 0,255,255,254, 99, 0, 0, 4, 72,
- 7,209, 16, 38, 2,212, 0, 0, 16, 7, 6, 94,253, 68, 0, 0,255,255, 1, 54, 0, 0, 3,207, 6,114, 16, 38, 2,245, 0, 0,
- 16, 6, 6, 66, 0, 0, 0, 0,255,255, 1, 54, 0, 0, 3,207, 6,114, 16, 38, 2,245, 0, 0, 16, 6, 6,122, 0, 0, 0, 0,
-255,255, 0,245, 0, 0, 3,240, 6,114, 16, 38, 2,245, 0, 0, 16, 6, 6, 79, 0, 0, 0, 0,255,255, 0,245, 0, 0, 3,240,
- 6,114, 16, 38, 2,245, 0, 0, 16, 6, 6, 92, 0, 0, 0, 0,255,255, 1, 39, 0, 0, 4, 30, 6,114, 16, 38, 2,245, 0, 0,
- 16, 6, 6, 80, 0, 0, 0, 0,255,255, 1, 19, 0, 0, 4, 30, 6,114, 16, 38, 2,245, 0, 0, 16, 6, 6, 93, 0, 0, 0, 0,
-255,255, 1, 31, 0, 0, 3,207, 7,209, 16, 38, 2,245, 0, 0, 16, 6, 6, 81, 0, 0, 0, 0,255,255, 1, 31, 0, 0, 3,207,
- 7,209, 16, 38, 2,245, 0, 0, 16, 6, 6, 94, 0, 0, 0, 0,255,255,255,126, 0, 0, 4, 6, 6,114, 16, 38, 2,214, 0, 0,
- 16, 7, 6, 66,253,143, 0, 0,255,255,255,126, 0, 0, 4, 6, 6,114, 16, 38, 2,214, 0, 0, 16, 7, 6,122,253,143, 0, 0,
-255,255,253,163, 0, 0, 4, 6, 6,114, 16, 38, 2,214, 0, 0, 16, 7, 6, 79,252,174, 0, 0,255,255,253,163, 0, 0, 4, 6,
- 6,114, 16, 38, 2,214, 0, 0, 16, 7, 6, 92,252,174, 0, 0,255,255,254, 7, 0, 0, 4, 6, 6,114, 16, 38, 2,214, 0, 0,
- 16, 7, 6, 80,252,224, 0, 0,255,255,253,243, 0, 0, 4, 6, 6,114, 16, 38, 2,214, 0, 0, 16, 7, 6, 93,252,224, 0, 0,
-255,255,254,174, 0, 0, 4, 6, 7,209, 16, 38, 2,214, 0, 0, 16, 7, 6, 81,253,143, 0, 0,255,255,254,174, 0, 0, 4, 6,
- 7,209, 16, 38, 2,214, 0, 0, 16, 7, 6, 94,253,143, 0, 0,255,255, 0,137,255,227, 4, 72, 6,114, 16, 38, 2,251, 0, 0,
- 16, 6, 6, 66, 0, 0, 0, 0,255,255, 0,137,255,227, 4, 72, 6,114, 16, 38, 2,251, 0, 0, 16, 6, 6,122, 0, 0, 0, 0,
-255,255, 0,137,255,227, 4, 72, 6,114, 16, 38, 2,251, 0, 0, 16, 6, 6, 79, 0, 0, 0, 0,255,255, 0,137,255,227, 4, 72,
- 6,114, 16, 38, 2,251, 0, 0, 16, 6, 6, 92, 0, 0, 0, 0,255,255, 0,137,255,227, 4, 72, 6,114, 16, 38, 2,251, 0, 0,
- 16, 6, 6, 80, 0, 0, 0, 0,255,255, 0,137,255,227, 4, 72, 6,114, 16, 38, 2,251, 0, 0, 16, 6, 6, 93, 0, 0, 0, 0,
-255,255,255,201,255,227, 4, 92, 6,114, 16, 38, 2,220, 0, 0, 16, 7, 6, 66,253,218, 0, 0,255,255,255,126,255,227, 4, 92,
- 6,114, 16, 38, 2,220, 0, 0, 16, 7, 6,122,253,143, 0, 0,255,255,253,138,255,227, 4, 92, 6,114, 16, 38, 2,220, 0, 0,
- 16, 7, 6, 79,252,149, 0, 0,255,255,253,138,255,227, 4, 92, 6,114, 16, 38, 2,220, 0, 0, 16, 7, 6, 92,252,149, 0, 0,
-255,255,254,157,255,227, 4, 92, 6,114, 16, 38, 2,220, 0, 0, 16, 7, 6, 80,253,118, 0, 0,255,255,254,137,255,227, 4, 92,
- 6,114, 16, 38, 2,220, 0, 0, 16, 7, 6, 93,253,118, 0, 0,255,255, 0, 51,255,255, 4,105, 6,114, 16, 38, 3, 1, 0, 0,
- 16, 6, 6, 66, 0, 0, 0, 0,255,255, 0, 51,255,255, 4,105, 6,114, 16, 38, 3, 1, 0, 0, 16, 6, 6,122, 0, 0, 0, 0,
-255,255, 0, 51,255,255, 4,105, 6,114, 16, 38, 3, 1, 0, 0, 16, 6, 6, 79, 0, 0, 0, 0,255,255, 0, 51,255,255, 4,105,
- 6,114, 16, 38, 3, 1, 0, 0, 16, 6, 6, 92, 0, 0, 0, 0,255,255, 0, 51,255,255, 4,105, 6,114, 16, 38, 3, 1, 0, 0,
- 16, 6, 6, 80, 0, 0, 0, 0,255,255, 0, 51,255,255, 4,105, 6,114, 16, 38, 3, 1, 0, 0, 16, 6, 6, 93, 0, 0, 0, 0,
-255,255, 0, 51,255,255, 4,105, 7,209, 16, 38, 3, 1, 0, 0, 16, 6, 6, 81, 0, 0, 0, 0,255,255, 0, 51,255,255, 4,105,
- 7,209, 16, 38, 3, 1, 0, 0, 16, 6, 6, 94, 0, 0, 0, 0,255,255,254,232, 0, 0, 4,172, 6,114, 16, 38, 2,225, 0, 0,
- 16, 7, 6,122,252,249, 0, 0,255,255,253, 63, 0, 0, 4,172, 6,114, 16, 38, 2,225, 0, 0, 16, 7, 6, 92,252, 74, 0, 0,
-255,255,253, 68, 0, 0, 4,172, 6,114, 16, 38, 2,225, 0, 0, 16, 7, 6, 93,252, 49, 0, 0,255,255,254, 24, 0, 0, 4,172,
- 7,209, 16, 38, 2,225, 0, 0, 16, 7, 6, 94,252,249, 0, 0,255,255, 0, 70,255,227, 4,140, 6,114, 16, 38, 3, 5, 0, 0,
- 16, 6, 6, 66, 0, 0, 0, 0,255,255, 0, 70,255,227, 4,140, 6,114, 16, 38, 3, 5, 0, 0, 16, 6, 6,122, 0, 0, 0, 0,
-255,255, 0, 70,255,227, 4,140, 6,114, 16, 38, 3, 5, 0, 0, 16, 6, 6, 79, 0, 0, 0, 0,255,255, 0, 70,255,227, 4,140,
- 6,114, 16, 38, 3, 5, 0, 0, 16, 6, 6, 92, 0, 0, 0, 0,255,255, 0, 70,255,227, 4,140, 6,114, 16, 38, 3, 5, 0, 0,
- 16, 6, 6, 80, 0, 0, 0, 0,255,255, 0, 70,255,227, 4,140, 6,114, 16, 38, 3, 5, 0, 0, 16, 6, 6, 93, 0, 0, 0, 0,
-255,255, 0, 70,255,227, 4,140, 7,209, 16, 38, 3, 5, 0, 0, 16, 6, 6, 81, 0, 0, 0, 0,255,255, 0, 70,255,227, 4,140,
- 7,209, 16, 38, 3, 5, 0, 0, 16, 6, 6, 94, 0, 0, 0, 0,255,255,255,201, 0, 0, 4,135, 6,114, 16, 38, 2,229, 0, 0,
- 16, 7, 6, 66,253,218, 0, 0,255,255,255,101, 0, 0, 4,135, 6,114, 16, 38, 2,229, 0, 0, 16, 7, 6,122,253,118, 0, 0,
-255,255,253,138, 0, 0, 4,135, 6,114, 16, 38, 2,229, 0, 0, 16, 7, 6, 79,252,149, 0, 0,255,255,253,138, 0, 0, 4,135,
- 6,114, 16, 38, 2,229, 0, 0, 16, 7, 6, 92,252,149, 0, 0,255,255,254,182, 0, 0, 4,135, 6,114, 16, 38, 2,229, 0, 0,
- 16, 7, 6, 80,253,143, 0, 0,255,255,254,162, 0, 0, 4,135, 6,114, 16, 38, 2,229, 0, 0, 16, 7, 6, 93,253,143, 0, 0,
-255,255,254,249, 0, 0, 4,135, 7,209, 16, 38, 2,229, 0, 0, 16, 7, 6, 81,253,218, 0, 0,255,255,254,174, 0, 0, 4,135,
- 7,209, 16, 38, 2,229, 0, 0, 16, 7, 6, 94,253,143, 0, 0,255,255, 0, 70,255,230, 4,149, 6,102, 16, 38, 2,237, 0, 0,
- 16, 6, 0, 67, 0, 0, 0, 0,255,255, 0, 70,255,230, 4,149, 6,102, 16, 6, 2,232, 0, 0,255,255, 0,169,255,234, 4, 40,
- 6,102, 16, 38, 2,241, 0, 0, 16, 6, 0, 67, 0, 0, 0, 0,255,255, 0,169,255,234, 4, 40, 6,102, 16, 6, 2,233, 0, 0,
-255,255, 0,195,254, 86, 4, 27, 6,102, 16, 38, 2,243, 0, 0, 16, 6, 0, 67, 0, 0, 0, 0,255,255, 0,195,254, 86, 4, 27,
- 6,102, 16, 6, 2,234, 0, 0,255,255, 1, 23, 0, 0, 3,207, 6,102, 16, 38, 2,245, 0, 0, 16, 6, 0, 67, 0, 0, 0, 0,
-255,255, 1, 54, 0, 0, 3,207, 6,102, 16, 6, 2,235, 0, 0,255,255, 0,137,255,227, 4, 72, 6,102, 16, 38, 2,251, 0, 0,
- 16, 6, 0, 67, 0, 0, 0, 0,255,255, 0,137,255,227, 4, 72, 6,102, 16, 6, 3, 8, 0, 0,255,255, 0, 51,255,255, 4,105,
- 6,102, 16, 38, 3, 1, 0, 0, 16, 6, 0, 67, 0, 0, 0, 0,255,255, 0, 51,255,255, 4,105, 6,102, 16, 6, 3, 9, 0, 0,
-255,255, 0, 70,255,227, 4,140, 6,102, 16, 38, 3, 5, 0, 0, 16, 6, 0, 67, 0, 0, 0, 0,255,255, 0, 70,255,227, 4,140,
- 6,102, 16, 6, 3, 10, 0, 0,255,255, 0, 70,254, 86, 4,149, 6,114, 16, 38, 5,146, 0, 0, 16, 6, 2,193,156, 0, 0, 0,
-255,255, 0, 70,254, 86, 4,149, 6,114, 16, 38, 5,147, 0, 0, 16, 6, 2,193,156, 0, 0, 0,255,255, 0, 70,254, 86, 4,149,
- 6,114, 16, 38, 5,148, 0, 0, 16, 6, 2,193,156, 0, 0, 0,255,255, 0, 70,254, 86, 4,149, 6,114, 16, 38, 5,149, 0, 0,
- 16, 6, 2,193,156, 0, 0, 0,255,255, 0, 70,254, 86, 4,149, 6,114, 16, 38, 2,193,156, 0, 16, 6, 5,150, 0, 0, 0, 0,
-255,255, 0, 70,254, 86, 4,149, 6,114, 16, 38, 2,193,156, 0, 16, 6, 5,151, 0, 0, 0, 0,255,255, 0, 70,254, 86, 4,149,
- 7,209, 16, 38, 5,152, 0, 0, 16, 6, 2,193,156, 0, 0, 0,255,255, 0, 70,254, 86, 4,149, 7,209, 16, 38, 5,153, 0, 0,
- 16, 6, 2,193,156, 0, 0, 0,255,255, 0, 37,254, 86, 4,172, 6,114, 16, 38, 5,154, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,
-255,255, 0, 37,254, 86, 4,172, 6,114, 16, 38, 5,155, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,255,255,254,107,254, 86, 4,172,
- 6,114, 16, 38, 5,156, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,255,255,254,107,254, 86, 4,172, 6,114, 16, 38, 5,157, 0, 0,
- 16, 6, 6, 65, 0, 0, 0, 0,255,255,255, 26,254, 86, 4,172, 6,114, 16, 38, 6, 65, 0, 0, 16, 6, 5,158, 0, 0, 0, 0,
-255,255,255, 6,254, 86, 4,172, 6,114, 16, 38, 6, 65, 0, 0, 16, 6, 5,159, 0, 0, 0, 0,255,255,255,193,254, 86, 4,172,
- 7,209, 16, 38, 5,160, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,255,255,255,143,254, 86, 4,172, 7,209, 16, 38, 5,161, 0, 0,
- 16, 6, 6, 65, 0, 0, 0, 0,255,255, 0,195,254, 86, 4, 27, 6,114, 16, 38, 5,174, 0, 0, 16, 7, 2,193,254,200, 0, 0,
-255,255, 0,195,254, 86, 4, 27, 6,114, 16, 38, 5,175, 0, 0, 16, 7, 2,193,254,200, 0, 0,255,255, 0,195,254, 86, 4, 27,
- 6,114, 16, 38, 5,176, 0, 0, 16, 7, 2,193,254,200, 0, 0,255,255, 0,195,254, 86, 4, 27, 6,114, 16, 38, 5,177, 0, 0,
- 16, 7, 2,193,254,200, 0, 0,255,255, 0,195,254, 86, 4, 30, 6,114, 16, 39, 2,193,254,200, 0, 0, 16, 6, 5,178, 0, 0,
-255,255, 0,195,254, 86, 4, 30, 6,114, 16, 39, 2,193,254,200, 0, 0, 16, 6, 5,179, 0, 0,255,255, 0,195,254, 86, 4, 27,
- 7,209, 16, 38, 5,180, 0, 0, 16, 7, 2,193,254,200, 0, 0,255,255, 0,195,254, 86, 4, 27, 7,209, 16, 38, 5,181, 0, 0,
- 16, 7, 2,193,254,200, 0, 0,255,255,255, 76,254, 86, 4, 72, 6,114, 16, 38, 5,182, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,
-255,255,255, 76,254, 86, 4, 72, 6,114, 16, 38, 5,183, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,255,255,253, 63,254, 86, 4, 72,
- 6,114, 16, 38, 5,184, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,255,255,253, 63,254, 86, 4, 72, 6,114, 16, 38, 5,185, 0, 0,
- 16, 6, 6, 65, 0, 0, 0, 0,255,255,253,163,254, 86, 4, 72, 6,114, 16, 38, 6, 65, 0, 0, 16, 6, 5,186, 0, 0, 0, 0,
-255,255,253,143,254, 86, 4, 72, 6,114, 16, 38, 6, 65, 0, 0, 16, 6, 5,187, 0, 0, 0, 0,255,255,254, 99,254, 86, 4, 72,
- 7,209, 16, 38, 5,188, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,255,255,254, 99,254, 86, 4, 72, 7,209, 16, 38, 5,189, 0, 0,
- 16, 6, 6, 65, 0, 0, 0, 0,255,255, 0, 70,254, 86, 4,140, 6,114, 16, 38, 5,230, 0, 0, 16, 6, 2,193, 0, 0, 0, 0,
-255,255, 0, 70,254, 86, 4,140, 6,114, 16, 38, 5,231, 0, 0, 16, 6, 2,193, 0, 0, 0, 0,255,255, 0, 70,254, 86, 4,140,
- 6,114, 16, 38, 5,232, 0, 0, 16, 6, 2,193, 0, 0, 0, 0,255,255, 0, 70,254, 86, 4,140, 6,114, 16, 38, 5,233, 0, 0,
- 16, 6, 2,193, 0, 0, 0, 0,255,255, 0, 70,254, 86, 4,140, 6,114, 16, 38, 2,193, 0, 0, 16, 6, 5,234, 0, 0, 0, 0,
-255,255, 0, 70,254, 86, 4,140, 6,114, 16, 38, 2,193, 0, 0, 16, 6, 5,235, 0, 0, 0, 0,255,255, 0, 70,254, 86, 4,140,
- 7,209, 16, 38, 5,236, 0, 0, 16, 6, 2,193, 0, 0, 0, 0,255,255, 0, 70,254, 86, 4,140, 7,209, 16, 38, 5,237, 0, 0,
- 16, 6, 2,193, 0, 0, 0, 0,255,255,255,201,254, 86, 4,135, 6,114, 16, 38, 5,238, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,
-255,255,255,101,254, 86, 4,135, 6,114, 16, 38, 5,239, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,255,255,253,138,254, 86, 4,135,
- 6,114, 16, 38, 5,240, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,255,255,253,138,254, 86, 4,135, 6,114, 16, 38, 5,241, 0, 0,
- 16, 6, 6, 65, 0, 0, 0, 0,255,255,254,182,254, 86, 4,135, 6,114, 16, 38, 6, 65, 0, 0, 16, 6, 5,242, 0, 0, 0, 0,
-255,255,254,162,254, 86, 4,135, 6,114, 16, 38, 6, 65, 0, 0, 16, 6, 5,243, 0, 0, 0, 0,255,255,254,249,254, 86, 4,135,
- 7,209, 16, 38, 5,244, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,255,255,254,174,254, 86, 4,135, 7,209, 16, 38, 5,245, 0, 0,
- 16, 6, 6, 65, 0, 0, 0, 0,255,255, 0, 70,255,230, 4,149, 6, 72, 16, 38, 2,130, 0, 0, 16, 6, 2,237, 0, 0, 0, 0,
-255,255, 0, 70,255,230, 4,149, 5,246, 16, 38, 2,128, 0, 0, 16, 6, 2,237, 0, 0, 0, 0,255,255, 0, 70,254, 86, 4,149,
- 6,102, 16, 38, 5,246, 0, 0, 16, 6, 2,193,156, 0, 0, 0,255,255, 0, 70,254, 86, 4,149, 4,122, 16, 38, 2,237, 0, 0,
- 16, 6, 2,193,156, 0, 0, 0,255,255, 0, 70,254, 86, 4,149, 6,102, 16, 38, 2,232, 0, 0, 16, 6, 2,193,156, 0, 0, 0,
-255,255, 0, 70,255,230, 4,149, 6, 55, 16, 38, 2,237, 0, 0, 16, 6, 6, 67, 0, 0, 0, 0,255,255, 0, 70,254, 86, 4,149,
- 6, 55, 16, 38, 6, 57, 0, 0, 16, 6, 2,193,156, 0, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7,109, 16, 38, 11,184, 0, 0,
- 16, 6, 2,206, 0, 0, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7, 48, 16, 38, 11,189, 0, 0, 16, 6, 2,206, 0, 0, 0, 0,
-255,255,255,135, 0, 0, 4,172, 6,102, 16, 38, 2,206, 0, 0, 16, 7, 6,110,254,112, 0, 0,255,255, 0, 25, 0, 0, 4,172,
- 6,102, 16, 6, 2,197, 0, 0,255,255, 0, 37,254, 86, 4,172, 5,213, 16, 38, 2,206, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,
-255,255, 1,239, 4,194, 2,225, 6,114, 16, 6, 6, 66, 0, 0,255,255, 2, 30,254, 86, 2,250,255,164, 16, 6, 2,193, 0, 0,
- 0, 1, 1,239, 4,194, 2,225, 6,114, 0, 8, 0, 0, 1, 16, 35, 53, 50, 53, 35, 53, 51, 2,225,241,142,142,241, 5,195,254,
-255,100,157,175,255,255, 1, 31, 5, 29, 3,178, 6, 55, 16, 6, 2,110, 0, 0,255,255, 1, 31, 5, 70, 3,178, 7,139, 16, 38,
- 0,106, 0, 0, 16, 7, 6, 67, 0, 0, 1, 84,255,255, 0,195,254, 86, 4, 27, 6,102, 16, 38, 5,250, 0, 0, 16, 7, 2,193,
-254,200, 0, 0,255,255, 0,195,254, 86, 4, 27, 4,123, 16, 38, 2,243, 0, 0, 16, 7, 2,193,254,200, 0, 0,255,255, 0,195,
-254, 86, 4, 27, 6,102, 16, 38, 2,234, 0, 0, 16, 7, 2,193,254,200, 0, 0,255,255, 0,195,254, 86, 4, 27, 6, 55, 16, 38,
- 2,243, 0, 0, 16, 6, 6, 67, 0, 0, 0, 0,255,255, 0,195,254, 86, 4, 27, 6, 55, 16, 38, 6, 72, 0, 0, 16, 7, 2,193,
-254,200, 0, 0,255,255,254,141, 0, 0, 4, 78, 6,102, 16, 38, 2,210, 0, 0, 16, 7, 6,110,253,118, 0, 0,255,255,255, 31,
- 0, 0, 4, 78, 6,102, 16, 6, 2,199, 0, 0,255,255,254, 91, 0, 0, 4, 72, 6,102, 16, 38, 2,212, 0, 0, 16, 7, 6,110,
-253, 68, 0, 0,255,255,254,237, 0, 0, 4, 72, 6,102, 16, 6, 2,200, 0, 0,255,255, 0,137,254, 86, 4, 72, 5,213, 16, 38,
- 2,212, 0, 0, 16, 6, 6, 65, 0, 0, 0, 0,255,255, 0,245, 4,194, 3,240, 6,114, 16, 39, 6, 66,255, 6, 0, 0, 16, 7,
- 6,110, 0,250, 0, 0, 0, 0,255,255, 1, 39, 4,194, 4, 30, 6,114, 16, 39, 6, 66,255, 56, 0, 0, 16, 6, 6,121,100, 0,
-255,255, 1, 31, 4,194, 3,178, 7,209, 16, 38, 6, 66, 0, 0, 16, 7, 6, 67, 0, 0, 1,154,255,255, 1, 47, 0, 0, 3,207,
- 6, 72, 16, 38, 2,130, 0, 0, 16, 6, 2,245, 0, 0, 0, 0,255,255, 1, 54, 0, 0, 3,207, 5,246, 16, 38, 2,128, 0, 0,
- 16, 6, 2,245, 0, 0, 0, 0,255,255, 1, 23, 0, 0, 3,207, 7,216, 16, 38, 2,245, 0, 0, 16, 6, 6,108, 0, 0, 0, 0,
-255,255, 1, 54, 0, 0, 3,207, 7,216, 16, 6, 2,205, 0, 0,255,255, 1, 31, 0, 0, 3,207, 6, 55, 16, 38, 2,245, 0, 0,
- 16, 6, 6, 67, 0, 0, 0, 0,255,255, 1, 31, 0, 0, 3,207, 7,139, 16, 38, 2,245, 0, 0, 16, 6, 6, 68, 0, 0, 0, 0,
-255,255, 0,201, 0, 0, 4, 6, 7,109, 16, 38, 11,184, 0, 0, 16, 6, 2,214, 0, 0, 0, 0,255,255, 0,201, 0, 0, 4, 6,
- 7, 48, 16, 38, 11,189, 0, 0, 16, 6, 2,214, 0, 0, 0, 0,255,255,254,191, 0, 0, 4, 6, 6,102, 16, 38, 2,214, 0, 0,
- 16, 7, 6,110,253,168, 0, 0,255,255,255, 31, 0, 0, 4, 6, 6,102, 16, 6, 2,201, 0, 0,255,255, 0,245, 4,194, 3,240,
- 6,114, 16, 39, 6,122,255, 6, 0, 0, 16, 7, 6,110, 0,250, 0, 0, 0, 0,255,255, 1, 19, 4,194, 4, 30, 6,114, 16, 39,
- 6,122,255, 36, 0, 0, 16, 6, 6,121,100, 0,255,255, 1, 31, 4,194, 3,178, 7,209, 16, 38, 6,122, 0, 0, 16, 7, 6, 67,
- 0, 0, 1,154,255,255, 0, 51,255,255, 4,105, 6, 72, 16, 38, 2,130, 0, 0, 16, 6, 3, 1, 0, 0, 0, 0,255,255, 0, 51,
-255,255, 4,105, 5,246, 16, 38, 2,128, 0, 0, 16, 6, 3, 1, 0, 0, 0, 0,255,255, 0, 51,255,255, 4,105, 7,216, 16, 38,
- 3, 1, 0, 0, 16, 6, 6,108, 0, 0, 0, 0,255,255, 0, 51,255,255, 4,105, 7,216, 16, 6, 2,236, 0, 0,255,255, 0,190,
-254, 86, 4, 84, 6,114, 16, 38, 2,253, 0, 0, 16, 6, 6, 66, 0, 0, 0, 0,255,255, 0,190,254, 86, 4, 84, 6,114, 16, 38,
- 2,253, 0, 0, 16, 6, 6,122, 0, 0, 0, 0,255,255, 0, 51,255,255, 4,105, 6, 55, 16, 38, 3, 1, 0, 0, 16, 6, 6, 67,
- 0, 0, 0, 0,255,255, 0, 51,255,255, 4,105, 7,139, 16, 38, 3, 1, 0, 0, 16, 6, 6, 68, 0, 0, 0, 0,255,255, 0, 37,
- 0, 0, 4,172, 7,109, 16, 38, 11,184, 0, 0, 16, 6, 2,225, 0, 0, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7, 48, 16, 38,
- 11,189, 0, 0, 16, 6, 2,225, 0, 0, 0, 0,255,255,254, 91, 0, 0, 4,172, 6,102, 16, 38, 2,225, 0, 0, 16, 7, 6,110,
-253, 68, 0, 0,255,255,254,112, 0, 0, 4,172, 6,102, 16, 6, 2,203, 0, 0,255,255,255,126, 0, 0, 4,117, 6,114, 16, 38,
- 2,222, 0, 0, 16, 7, 6,122,253,143, 0, 0,255,255, 1, 23, 5, 70, 3,145, 7,216, 16, 38, 0,106, 0, 0, 16, 7, 6,110,
- 0, 0, 1,114,255,255, 1, 63, 5, 70, 3,186, 7,216, 16, 6, 2,196, 0, 0,255,255, 1, 23, 4,238, 2,246, 6,102, 16, 6,
- 0, 67, 0, 0,255,255, 0, 70,254, 86, 4,140, 6,102, 16, 38, 6, 2, 0, 0, 16, 6, 2,193, 0, 0, 0, 0,255,255, 0, 70,
-254, 86, 4,140, 4, 96, 16, 38, 3, 5, 0, 0, 16, 6, 2,193, 0, 0, 0, 0,255,255, 0, 70,254, 86, 4,140, 6,102, 16, 38,
- 3, 10, 0, 0, 16, 6, 2,193, 0, 0, 0, 0,255,255, 0, 70,255,227, 4,140, 6, 55, 16, 38, 3, 5, 0, 0, 16, 6, 6, 67,
- 0, 0, 0, 0,255,255, 0, 70,254, 86, 4,140, 6, 55, 16, 38, 6,114, 0, 0, 16, 6, 2,193, 0, 0, 0, 0,255,255,254,166,
-255,227, 4, 92, 6,102, 16, 38, 2,220, 0, 0, 16, 7, 6,110,253,143, 0, 0,255,255,255,181,255,227, 4, 92, 6,102, 16, 6,
- 2,202, 0, 0,255,255,254,166, 0, 0, 4,135, 6,102, 16, 38, 2,229, 0, 0, 16, 7, 6,110,253,143, 0, 0,255,255,255,206,
- 0, 0, 4,135, 6,102, 16, 6, 2,204, 0, 0,255,255, 0, 74,254, 86, 4,135, 5,180, 16, 38, 2,229, 0, 0, 16, 6, 6, 65,
- 0, 0, 0, 0,255,255, 1,219, 4,238, 3,186, 6,102, 16, 6, 0,118, 0, 0, 0, 1, 1,239, 4,194, 2,225, 6,114, 0, 8,
- 0, 0, 1, 53, 51, 21, 35, 6, 51, 21, 34, 1,240,240,141, 1,143,241, 5,195,175,175,157,100, 0, 1, 1,100, 1,223, 3,109,
- 2,131, 0, 3, 0, 17,182, 0,160, 2, 4, 1, 0, 4, 16,212,196, 49, 0, 16,212,236, 48, 1, 33, 21, 33, 1,100, 2, 9,253,
-247, 2,131,164,255,255, 1,100, 1,223, 3,109, 2,131, 16, 6, 6,134, 0, 0, 0, 1, 0, 0, 1,236, 4,209, 2,121, 0, 3,
- 0, 16,182, 2,182, 0,253, 4, 1, 0, 47,198, 49, 0, 16,252,236, 48, 17, 33, 21, 33, 4,209,251, 47, 2,121,141, 0, 0, 0,
- 0, 1, 0, 0, 1,236, 4,209, 2,121, 0, 3, 0, 16,182, 2,182, 0,253, 4, 1, 0, 47,198, 49, 0, 16,252,236, 48, 17, 33,
- 21, 33, 4,209,251, 47, 2,121,141, 0, 0, 0, 0, 1, 0, 0, 1,236, 4,209, 2,121, 0, 3, 0, 15,181, 2,182, 0, 4, 1,
- 0, 47,196, 49, 0, 16,212,236, 48, 17, 33, 21, 33, 4,209,251, 47, 2,121,141, 0, 1, 0, 0, 1,236, 4,209, 2,121, 0, 3,
- 0, 15,181, 2,182, 0, 4, 1, 0, 47,196, 49, 0, 16,212,236, 48, 17, 33, 21, 33, 4,209,251, 47, 2,121,141,255,255, 0, 0,
-254, 29, 4,209,255, 93, 16, 38, 0, 66, 0, 0, 16, 7, 0, 66, 0, 0, 0,240, 0, 1, 1,207, 3,199, 3, 45, 6, 20, 0, 5,
- 0, 24, 64, 11, 0,163, 3,181, 6, 3, 4, 0, 29, 1, 6, 16,212,252,212,204, 49, 0, 16,252,236, 48, 1, 35, 53, 19, 51, 3,
- 2,203,252,196,154, 98, 3,199,207, 1,126,254,130, 0, 0, 0, 0, 1, 1,207, 3,199, 3, 45, 6, 20, 0, 5, 0, 24, 64, 11,
- 3,163, 0,181, 6, 3, 4, 1, 29, 0, 6, 16,212,236,212,204, 49, 0, 16,252,236, 48, 1, 51, 21, 3, 35, 19, 2, 49,252,197,
-153, 98, 6, 20,206,254,129, 1,127, 0, 0, 0, 0, 1, 1,147,254,225, 2,242, 1, 47, 0, 5, 0, 26,178, 3,163, 0,184, 1,
- 1,182, 6, 3, 4, 1, 29, 0, 6, 16,212,236,212,204, 49, 0, 16,252,236, 48, 1, 51, 21, 3, 35, 19, 1,246,252,197,154, 99,
- 1, 47,207,254,129, 1,127, 0, 0, 1, 1,207, 3,199, 3, 45, 6, 20, 0, 5, 0, 0, 1, 21, 19, 35, 3, 53, 2,203, 98,153,
-197, 6, 20,206,254,129, 1,127,206, 0, 0, 0, 0, 2, 0,211, 3,199, 3,254, 6, 20, 0, 5, 0, 11, 0, 37, 64, 18, 6, 0,
-163, 9, 3,181, 12, 3, 4, 0, 29, 1, 7, 29, 6, 9, 10, 12, 16,212,204,212,236,212,252,212,204, 49, 0, 16,252, 60,236, 50,
- 48, 1, 35, 53, 19, 51, 3, 5, 35, 53, 19, 51, 3, 3,156,252,196,154, 98,254, 53,254,199,153, 98, 3,199,207, 1,126,254,130,
-207,207, 1,126,254,130, 0, 0, 0, 2, 0,211, 3,199, 3,252, 6, 20, 0, 5, 0, 11, 0, 39, 64, 19, 9, 3,163, 6, 0,181,
- 12, 9, 10, 6, 3, 4, 1, 29, 0, 6, 29, 7, 12, 16,212,236,212,236,212,204, 16,212,206, 49, 0, 16,252, 60,236, 50, 48, 1,
- 51, 21, 3, 35, 19, 37, 51, 21, 3, 35, 19, 3, 0,252,197,153, 98,254, 53,252,196,154, 98, 6, 20,206,254,129, 1,127,206,206,
-254,129, 1,127, 0, 2, 0,211,254,225, 3,252, 1, 47, 0, 5, 0, 11, 0, 42,180, 9, 3,163, 6, 0,184, 1, 1, 64, 13, 12,
- 9, 10, 6, 3, 4, 1, 29, 0, 6, 29, 7, 12, 16,212,236,212,236,212,204, 16,212,206, 49, 0, 16,252, 60,236, 50, 48, 1, 51,
- 21, 3, 35, 19, 37, 51, 21, 3, 35, 19, 3, 0,252,197,153, 98,254, 53,252,196,154, 98, 1, 47,207,254,129, 1,127,207,207,254,
-129, 1,127, 0, 0, 2, 0,211, 3,199, 3,252, 6, 20, 0, 5, 0, 11, 0, 0, 1, 21, 19, 35, 3, 53, 33, 21, 19, 35, 3, 53,
- 1,207, 98,153,197, 2,199, 98,154,196, 6, 20,206,254,129, 1,127,206,206,254,129, 1,127,206, 0, 1, 0,162,255, 59, 4, 47,
- 5,213, 0, 11, 0, 39, 64, 20, 8, 4,203, 10, 2, 0,136, 6,202, 12, 3, 82, 5, 1, 81, 9, 82, 7, 0, 12, 16,212, 60,236,
-252, 60,236, 49, 0, 16,228,244,212, 60,236, 50, 48, 1, 51, 17, 33, 21, 33, 17, 35, 17, 33, 53, 33, 2, 16,177, 1,110,254,146,
-177,254,146, 1,110, 5,213,254, 92,153,251,163, 4, 93,153, 0, 0, 1, 0,162,255, 59, 4, 47, 5,213, 0, 19, 0, 60, 64, 31,
- 18, 6,203, 0, 16, 8,203, 14, 10, 12, 4, 0, 2,202, 12,136, 20, 15, 0, 82, 17, 13, 1, 81, 9, 5, 82, 11, 7, 3, 20, 16,
-212, 60, 60,236, 50,252, 60, 60,236, 50, 49, 0, 16,228,244,196, 50, 16,212, 60,238, 50, 16,238, 50, 48, 37, 33, 17, 35, 17, 33,
- 53, 33, 17, 33, 53, 33, 17, 51, 17, 33, 21, 33, 17, 33, 4, 47,254,146,177,254,146, 1,110,254,146, 1,110,177, 1,110,254,146,
- 1,110,223,254, 92, 1,164,154, 2, 31,153, 1,164,254, 92,153,253,225, 0, 0, 0, 1, 1, 63, 1,209, 3,145, 4, 33, 0, 11,
- 0, 18,183, 9,208, 3, 12, 6, 86, 0, 12, 16,212,236, 49, 0, 16,212,228, 48, 1, 52, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38,
- 1, 63,172,125,124,173,174,125,124,171, 2,250,124,171,172,123,124,173,171, 0, 0, 1, 1, 63, 1,129, 3,225, 4,113, 0, 2,
- 0, 0, 1, 17, 1, 1, 63, 2,162, 1,129, 2,240,254,136, 0, 0, 3, 0, 80, 0, 0, 4,127, 1, 49, 0, 3, 0, 7, 0, 11,
- 0, 35, 64, 17, 8, 4, 0,162, 10, 6, 2, 4, 29, 5, 8, 29, 9, 1, 29, 0, 12, 16,212,252,212,236,212,236, 49, 0, 47, 60,
- 60,236, 50, 50, 48, 19, 51, 17, 35, 1, 51, 17, 35, 1, 51, 17, 35, 80,252,252, 3, 51,252,252,254,102,252,252, 1, 49,254,207,
- 1, 49,254,207, 1, 49,254,207, 0, 7, 0, 0, 0, 0, 4,209, 5,152, 0, 3, 0, 15, 0, 27, 0, 39, 0, 51, 0, 63, 0, 75,
- 0,116, 64, 14, 3, 2, 37, 31, 1, 49, 0, 61, 13,200, 19, 31,200, 49,184, 1, 2,181, 37,200, 43,145, 67, 19,184, 1, 2, 64,
- 38, 55, 7,200, 73, 25, 3, 70, 2, 58, 52, 1, 40, 0, 28, 16, 58, 80, 70,122, 52, 80, 64, 10, 80, 22,122, 4, 80, 16, 34, 80,
- 46,122, 16, 28, 80, 64, 40, 47,196,236,196,244,236, 16,238,246,238, 16,238,246,238, 17, 18, 57, 18, 57, 17, 18, 57, 17, 57, 49,
- 0, 47, 60,238, 50,238, 50,246,238,254,238, 16,238, 50, 57, 18, 57, 17, 18, 57, 57, 48, 19, 39, 1, 23, 1, 20, 22, 51, 50, 54,
- 53, 52, 38, 35, 34, 6, 7, 52, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 19, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 52,
- 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 52, 54, 51, 50, 22, 21, 20, 6, 35,
- 34, 38, 72, 37, 4, 20, 39,252, 72, 95, 69, 68, 98, 99, 67, 69, 95,121,165,120,120,166,167,119,121,164, 76, 97, 69, 69, 97, 99,
- 67, 69, 97,121,166,121,120,166,166,120,121,166, 3, 12, 97, 69, 70, 96, 98, 68, 69, 97,121,166,121,120,167,167,120,121,166, 2,
- 55, 97, 1,159, 96,253, 74, 71, 97, 99, 69, 67, 99, 97, 69,121,165,166,120,121,168,166, 3,211, 69, 97, 97, 69, 67, 99, 97, 69,
-120,167,167,120,121,168,167,253, 34, 71, 97, 97, 71, 67, 99, 97, 69,120,166,166,120,121,168,167, 0, 7, 0, 0, 0, 0, 4,209,
- 5,152, 0, 11, 0, 21, 0, 25, 0, 68, 0, 80, 0, 92, 0,104, 0, 0, 17, 52, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 54, 20,
- 22, 50, 54, 53, 52, 38, 35, 34, 3, 39, 1, 23, 1, 52, 54, 50, 23, 22, 23, 54, 55, 54, 51, 50, 23, 22, 23, 54, 55, 54, 51, 50,
- 22, 21, 20, 6, 35, 34, 39, 38, 39, 6, 7, 6, 35, 34, 39, 38, 39, 6, 7, 6, 35, 34, 38, 55, 20, 22, 51, 50, 54, 53, 52, 38,
- 35, 34, 6, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 5, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6,166,121,120,166,166,
-120,121,166,121, 97,138, 97, 99, 67, 69,146, 37, 4, 20, 39,251,162,138,200, 69, 10, 9, 9, 10, 70,101,100, 69, 11, 8, 9, 10,
- 70,101,100,139,139,100,101, 70, 10, 9, 8, 11, 69,100,101, 70, 10, 9, 9, 10, 70, 99,101,137,101, 79, 58, 56, 82, 82, 56, 58,
- 79, 1,120, 81, 58, 58, 80, 82, 56, 58, 81, 1,122, 81, 58, 58, 80, 82, 56, 58, 81, 4,121,120,167,167,120,121,168,167,191,138,
- 97, 97, 69, 67, 99,253, 24, 97, 1,159, 96,253, 74,121,165, 83, 12, 14, 14, 12, 83, 83, 12, 13, 13, 12, 83,166,120,121,168, 84,
- 12, 13, 13, 12, 84, 84, 12, 14, 13, 13, 84,166,123, 71, 97, 99, 69, 67, 99, 97, 69, 71, 97, 97, 71, 67, 99, 97, 69, 71, 97, 97,
- 71, 67, 99, 97, 0, 1, 1, 90, 0,141, 3, 47, 4, 35, 0, 6, 0, 26, 64, 12, 2, 4,252, 0,172, 7, 2, 3, 0,118, 5, 7,
- 16,212,236, 50, 57, 49, 0, 16,244,236, 57, 48, 1, 21, 9, 1, 21, 1, 53, 3, 47,254,211, 1, 45,254, 43, 4, 35,191,254,244,
-254,244,191, 1,162, 82, 0, 0, 0, 1, 1,164, 0,141, 3,121, 4, 35, 0, 6, 0, 26, 64, 12, 5, 3,252, 0,172, 7, 5, 1,
-118, 3, 0, 7, 16,212, 60,236, 57, 49, 0, 16,244,236, 57, 48, 9, 1, 21, 1, 53, 9, 1, 1,164, 1,213,254, 43, 1, 45,254,
-211, 4, 35,254, 94, 82,254, 94,191, 1, 12, 1, 12, 0, 0, 0,255,255, 0,208, 0, 0, 4, 3, 5,213, 16, 39, 0, 4,254,204,
- 0, 0, 16, 7, 0, 4, 1, 52, 0, 0, 0, 0, 0, 3, 0,244, 0, 0, 4, 16, 5,240, 0, 23, 0, 27, 0, 37, 0, 0, 1, 35,
- 17, 6, 7, 6, 7, 53, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 15, 1, 14, 1, 21, 3, 53, 51, 21, 3, 17, 55, 54, 55, 54,
- 53, 52, 39, 38, 2,172,190, 31, 32, 89, 98, 94, 96, 95,104,186,111,110, 34, 33, 94, 88, 69, 38,197,203, 6, 45, 62, 23, 24, 66,
- 37, 1,145, 3,173, 8, 12, 35, 68,188, 57, 28, 28, 96, 96,161, 76, 65, 66, 92, 86, 66, 84, 61,253,197,254,254, 5, 66,254, 82,
- 45, 59, 44, 44, 49, 89, 55, 31,255,255, 0, 0, 5,187, 4,209, 6, 11, 16, 7, 0, 66, 0, 0, 7,158, 0, 0, 0, 1, 1,207,
-254,242, 3,119, 6, 20, 0, 11, 0, 0, 1, 33, 21, 35, 17, 51, 21, 35, 17, 51, 21, 33, 1,207, 1,168,240,240,240,240,254, 88,
- 6, 20,143,253, 69,143,253, 70,143, 0, 0, 0, 0, 1, 1, 90,254,242, 3, 2, 6, 20, 0, 11, 0, 0, 1, 17, 33, 53, 51, 17,
- 35, 53, 51, 17, 35, 53, 3, 2,254, 88,240,240,240,240, 6, 20,248,222,143, 2,186,143, 2,187,143, 0, 0, 0,255,255, 0, 33,
- 0, 0, 4,177, 5,241, 16, 39, 11,188,254,188, 0, 0, 16, 7, 11,188, 1, 28, 0, 0, 0, 0,255,255, 0, 33, 0, 0, 4, 3,
- 5,241, 16, 39, 11,188,254,188, 0, 0, 16, 7, 0, 4, 1, 52, 0, 0, 0, 0,255,255, 0,208, 0, 0, 4,177, 5,241, 16, 39,
- 0, 4,254,204, 0, 0, 16, 7, 11,188, 1, 28, 0, 0, 0, 0, 0, 3, 1, 61, 2,141, 3,149, 5,240, 0, 12, 0, 28, 0, 44,
- 0, 0, 0, 52, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 34, 19, 34, 7, 6, 21, 20, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38, 39,
- 50, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 53, 52, 55, 54, 2, 22, 24, 23, 34, 37, 23, 24, 24, 25, 70, 36, 87, 43, 44, 44, 43,
- 87, 88, 43, 44, 44, 43, 88,149, 76, 76, 76, 76,149,150, 74, 75, 75, 76, 4, 32, 64, 23, 22, 22, 23, 32, 33, 20, 21, 1,161, 85,
- 85,175,174, 85, 85, 85, 85,174,175, 85, 85, 89,110,109,215,214,110,109,109,110,214,215,109,110, 0, 2, 1, 72, 2,156, 3,136,
- 6, 3, 0, 9, 0, 13, 0, 0, 1, 33, 17, 51, 21, 33, 53, 51, 17, 35, 19, 51, 21, 35, 1,122, 1, 40,230,253,192,230,180,180,
-116,116, 5, 15,253,221, 80, 80, 1,211, 1, 68,130, 0, 0, 0, 0, 2, 1, 12, 2,156, 3,141, 5,223, 0, 10, 0, 13, 0, 53,
-179, 11, 0, 12, 2,184, 1, 9,178, 8, 4, 6,186, 1, 10, 0, 0, 1, 21, 64, 11, 14, 12, 9, 11, 7, 87, 3, 5, 1, 9, 14,
- 16,212,212, 60,196,236, 50, 17, 57, 49, 0, 16,244,244,212, 60,236, 50, 17, 57, 48, 1, 51, 17, 51, 21, 35, 21, 35, 53, 33, 53,
- 9, 1, 33, 2,119,162,116,116,138,254,125, 1,131,254,238, 1, 18, 5,223,253,230,111,186,186,121, 1,147,254, 99, 0, 0, 0,
- 0, 1, 1, 63, 2,141, 3,125, 5,223, 0, 33, 0, 0, 1, 33, 21, 33, 21, 62, 1, 51, 50, 23, 22, 21, 20, 7, 6, 35, 34, 38,
- 39, 53, 22, 23, 22, 51, 50, 54, 53, 52, 38, 35, 34, 7, 6, 7, 1,102, 1,214,254,157, 26, 54, 28,144, 84, 84, 88, 89,153, 74,
-122, 48, 52, 63, 57, 60,104,112,116,103, 51, 47, 48, 44, 5,223, 95,204, 9, 8, 77, 76,131,132, 76, 76, 18, 18,114, 26, 15, 14,
- 98, 91, 89,100, 10, 11, 20, 0, 0, 2, 1, 73, 2,141, 3,161, 5,240, 0, 29, 0, 41, 0, 0, 1, 21, 46, 1, 35, 34, 7, 6,
- 21, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 35, 34, 38, 53, 52, 54, 51, 50, 23, 22, 3, 34, 6, 20, 22, 51, 50, 55, 54, 52,
- 39, 38, 3, 93, 39, 88, 48,119, 62, 61, 32, 50, 53, 68,135, 73, 74, 76, 76,137,161,150,180,171, 46, 46, 46,180, 80, 92, 92, 80,
- 83, 42, 42, 42, 42, 5,207,104, 20, 22, 81, 81,158, 59, 28, 30, 74, 74,137,135, 75, 74,208,225,212,222, 9, 8,254,142,104,184,
-104, 50, 49,194, 49, 50, 0, 0, 0, 1, 1, 61, 2,156, 3,133, 5,223, 0, 6, 0, 0, 1, 33, 21, 1, 35, 1, 33, 1, 61, 2,
- 72,254,180,131, 1, 67,254, 68, 5,223, 48,252,237, 2,228, 0, 0, 3, 1, 59, 2,140, 3,150, 5,238, 0, 14, 0, 46, 0, 61,
- 0, 0, 1, 34, 7, 6, 20, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 51, 50, 23, 22, 21, 20, 7,
- 6, 7, 22, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 53, 52, 55, 54, 55, 20, 23, 22, 51, 50, 55, 54, 53, 52, 38, 35, 34, 7, 6,
- 2,104, 84, 45, 46, 46, 47, 82, 85, 45, 46, 46, 47,192, 80, 45, 45, 75, 75,129,130, 75, 75, 45, 45, 80, 93, 49, 50, 80, 80,142,
-141, 80, 80, 50, 49, 48, 39, 40, 75, 76, 40, 39, 78, 77, 75, 40, 39, 4, 41, 43, 42,154, 43, 43, 42, 43, 78, 77, 42, 43, 47, 18,
- 50, 51, 71, 99, 59, 58, 58, 59, 99, 71, 51, 50, 18, 19, 56, 56, 89,113, 63, 64, 63, 64,112, 90, 56, 56,198, 67, 35, 36, 36, 35,
- 67, 68, 72, 36, 36, 0, 0, 0, 0, 2, 1, 48, 2,141, 3,136, 5,240, 0, 15, 0, 46, 0, 0, 1, 50, 55, 54, 53, 52, 39, 38,
- 35, 34, 7, 6, 21, 20, 23, 22, 3, 53, 30, 1, 51, 50, 55, 54, 53, 14, 1, 35, 34, 39, 38, 53, 52, 55, 54, 51, 50, 23, 22, 21,
- 20, 7, 6, 35, 34, 39, 38, 2, 83, 80, 45, 46, 46, 45, 80, 83, 43, 42, 42, 42,140, 40, 88, 47,120, 61, 61, 29,106, 68,136, 72,
- 73, 75, 76,137,162, 75, 75, 90, 91,172, 45, 46, 46, 4, 15, 52, 52, 93, 92, 52, 52, 50, 49, 97, 98, 50, 49,254,159,104, 20, 22,
- 81, 80,158, 56, 60, 74, 75,137,135, 74, 74,104,105,225,211,111,111, 8, 9, 0, 0, 1, 1, 28, 2,219, 3,182, 5, 44, 0, 11,
- 0, 0, 1, 21, 33, 21, 33, 21, 35, 53, 33, 53, 33, 53, 2,158, 1, 24,254,232,106,254,232, 1, 24, 5, 44,249, 95,249,249, 95,
-249, 0, 0, 0, 0, 1, 1, 28, 3,212, 3,182, 4, 51, 0, 3, 0, 0, 1, 33, 21, 33, 1, 28, 2,154,253,102, 4, 51, 95, 0,
- 0, 2, 1, 28, 3, 97, 3,182, 4,165, 0, 3, 0, 7, 0, 0, 1, 33, 21, 33, 17, 33, 21, 33, 1, 28, 2,154,253,102, 2,154,
-253,102, 3,193, 96, 1, 68, 95, 0, 1, 1,216, 2, 5, 2,250, 6, 2, 0, 12, 0, 0, 1, 14, 1, 21, 20, 22, 23, 35, 46, 1,
- 52, 54, 55, 2,250, 84, 84, 84, 84,102, 94, 94, 94, 94, 6, 2,127,254,129,128,254,129,133,253,250,253,132, 0, 0, 1, 1,216,
- 2, 5, 2,249, 6, 2, 0, 13, 0, 0, 1, 51, 30, 1, 21, 20, 6, 7, 35, 62, 1, 53, 52, 38, 1,216,101, 95, 93, 93, 95,101,
- 84, 83, 83, 6, 2,132,253,125,126,253,132,130,254,127,128,254, 0, 1, 1, 65, 2,156, 3,144, 5, 31, 0, 19, 0, 32, 64, 6,
- 0, 3, 14, 10, 11, 20, 16,212,220, 60, 47,204, 75, 49, 0, 64, 6, 6, 17, 12, 2, 11, 20, 16,212, 60,196,212,204, 48, 1, 17,
- 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 3,144,116, 78, 78, 94,108,117,117, 41,113, 74,121,125,
- 4, 23,254,133, 1,119, 89, 89,107, 92,254,158, 2,115, 97, 56, 56,134, 0, 0,255,255, 1, 61,255,241, 3,149, 3, 84, 16, 7,
- 6,168, 0, 0,253,100, 0, 0,255,255, 1, 88, 0, 0, 3,147, 3, 67, 16, 7, 0,123, 0, 0,253,100, 0, 0,255,255, 1, 66,
- 0, 0, 3,125, 3, 84, 16, 7, 0,116, 0, 0,253,100, 0, 0,255,255, 1, 70,255,241, 3,156, 3, 84, 16, 7, 0,117, 0, 0,
-253,100, 0, 0,255,255, 1, 12, 0, 0, 3,141, 3, 67, 16, 7, 6,170, 0, 0,253,100, 0, 0,255,255, 1, 63,255,241, 3,125,
- 3, 67, 16, 7, 6,171, 0, 0,253,100, 0, 0,255,255, 1, 73,255,241, 3,161, 3, 84, 16, 7, 6,172, 0, 0,253,100, 0, 0,
-255,255, 1, 61, 0, 0, 3,133, 3, 67, 16, 7, 6,173, 0, 0,253,100, 0, 0,255,255, 1, 59,255,240, 3,150, 3, 82, 16, 7,
- 6,174, 0, 0,253,100, 0, 0,255,255, 1, 48,255,241, 3,136, 3, 84, 16, 7, 6,175, 0, 0,253,100, 0, 0,255,255, 1, 28,
- 0, 63, 3,182, 2,144, 16, 7, 6,176, 0, 0,253,100, 0, 0,255,255, 1, 28, 1, 56, 3,182, 1,151, 16, 7, 6,177, 0, 0,
-253,100, 0, 0,255,255, 1, 28, 0,197, 3,182, 2, 9, 16, 7, 6,178, 0, 0,253,100, 0, 0,255,255, 1,216,255,105, 2,250,
- 3,102, 16, 7, 6,179, 0, 0,253,100, 0, 0,255,255, 1,216,255,105, 2,249, 3,102, 16, 7, 6,180, 0, 0,253,100, 0, 0,
-255,255, 1, 69,255,240, 3,140, 2,130, 16, 7, 4,193, 0, 0,253,100, 0, 0,255,255, 1, 49,255,240, 3,160, 2,130, 16, 7,
- 4,199, 0, 0,253,100, 0, 0,255,255, 1, 58,255,240, 3,151, 2,130, 16, 7, 4,208, 0, 0,253,100, 0, 0,255,255, 1, 18,
- 0, 0, 3,191, 2,115, 16, 7, 2,116, 0, 0,253,100, 0, 0,255,255, 1, 49,255,240, 3,160, 2,130, 16, 7, 4,200, 0, 0,
-253,100, 0, 0, 0, 5, 0, 0, 0, 0, 4,209, 5,213, 0, 2, 0, 6, 0, 34, 0, 38, 0, 41, 0, 0, 1, 39, 21, 19, 39, 35,
- 21, 3, 33, 19, 51, 17, 51, 17, 51, 21, 35, 21, 51, 21, 35, 17, 33, 3, 35, 17, 35, 17, 35, 53, 51, 53, 35, 53, 51, 5, 23, 51,
- 53, 3, 23, 53, 1,181, 79,183, 57,126,196, 1, 16,211,230,196,162,162,162,162,254,240,211,230,196,162,162,162,162, 2, 18, 57,
-126, 79, 79, 3,175,206,206,254,242,147,147, 3, 52,253,218, 2, 38,253,218,123,147,123,253,218, 2, 38,253,218, 2, 38,123,147,
-123,123,147,147,254,242,206,206, 0, 1, 0, 37,255,227, 4, 37, 5,240, 0, 51, 0,112, 64, 60, 13, 0,231, 49, 15, 38, 24,231,
- 22, 31,179, 32,178, 28,151, 40, 22, 35, 7,179, 6,178, 10,151, 3,150, 35,153, 52, 51, 40, 39, 49, 41, 45, 24, 22, 16, 3, 19,
- 15, 23, 14, 38, 0, 45, 25, 13, 23, 19, 14, 50, 39, 19, 30, 31, 6, 23, 45, 52, 16,212,196,196, 50,236,196, 50,196, 17, 18, 57,
- 57, 18, 57, 57, 17, 18, 57, 17, 23, 57, 18, 57, 57, 17, 57, 57, 49, 0, 16,228,244,236,244,236, 16,198, 50,238,246,238, 16,238,
- 50,213, 60,238, 50, 48, 19, 18, 0, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6, 7, 33, 7, 33, 14, 1, 21, 20, 22, 23, 33, 7, 33,
- 30, 1, 51, 50, 54, 55, 21, 14, 1, 35, 34, 0, 3, 35, 55, 51, 38, 39, 38, 53, 52, 55, 54, 55, 35, 55,211, 48, 1, 18,223, 84,
-147, 74, 66,159, 78,146,174, 24, 1,225, 49,254, 70, 2, 1, 1, 1, 1,105, 49,254,211, 23,174,147, 79,157, 67, 72,148, 85,226,
-254,237, 44,174, 49,117, 1, 1, 2, 2, 1, 1,166, 49, 3,180, 1, 27, 1, 33, 40, 42,207, 61, 68,208,204,108, 20, 45, 46, 15,
- 38, 23,110,203,209, 67, 62,207, 42, 40, 1, 32, 1, 28,110, 12, 20, 45, 15, 18, 47, 19, 11,108, 0, 4, 0,106, 0, 0, 4,209,
- 5,213, 0, 26, 0, 31, 0, 36, 0, 41, 0, 0, 19, 33, 32, 19, 51, 21, 35, 22, 7, 51, 21, 35, 6, 7, 6, 43, 1, 17, 35, 17,
- 35, 53, 51, 53, 35, 53, 51, 55, 21, 33, 38, 35, 19, 33, 21, 51, 50, 55, 54, 39, 33, 21,197, 1,180, 1,130, 94,120, 95, 9, 8,
- 94,114, 38, 97,126,225,234,202, 91, 91, 91, 91,202, 1,220, 77,165,253,254, 25,234,177,117, 7, 9,253,242, 5,213,254,247,116,
- 58, 57,115,123, 70, 89,253,168, 3,114,115,115,116, 99, 99, 99,254, 67,116,231, 59, 56,115, 0, 0, 1, 0, 0,255,227, 4,209,
- 5,240, 0, 54, 0, 0, 1, 54, 55, 54, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 4, 21, 20, 7, 51, 21, 35, 6, 15, 1,
- 33, 21, 33, 6, 21, 20, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 36, 53, 52, 55, 35, 53, 51, 54, 55, 54, 55, 33, 53, 3, 63, 10,
- 9, 55,166,143, 94,185, 92,105,190, 86,223, 1, 13, 21,156,233, 94,204, 39, 2, 58,252,167, 44,170,153,104,205,115,107,212,105,
-252,254,248, 18,157,217, 9, 9, 72,136,254, 69, 3,175, 7, 9, 52, 99,113,133, 60, 59,205, 39, 39,241,200, 75, 61,123, 91, 47,
- 9,123, 57, 98,123,137, 68, 73,215, 45, 45,224,213, 78, 64,123, 11, 10, 79, 47,123, 0, 0, 0, 0, 2, 0,130,254,211, 4, 79,
- 6, 20, 0, 33, 0, 44, 0, 0, 1, 21, 38, 39, 38, 35, 17, 50, 55, 54, 55, 21, 6, 7, 6, 7, 17, 35, 17, 38, 39, 38, 17, 53,
- 16, 55, 54, 55, 53, 55, 21, 22, 23, 22, 1, 3, 6, 7, 6, 7, 6, 23, 22, 23, 22, 4, 79, 91, 84, 85,101,101, 85, 84, 91, 89,
- 92, 89, 91,100,185,115,212,212,121,178,101, 93, 89, 92,254,138, 1, 91, 67,118, 15, 14, 14, 25,108, 67, 4,164,213,105, 45, 45,
-251,241, 45, 45,105,211, 72, 36, 34, 2,254,240, 1, 21, 23,117,214, 1, 57, 17, 1, 66,203,116, 23,230, 2,226, 2, 34, 35,251,
-163, 3,249, 23, 66,117,170,161,102,180,108, 67, 0, 2, 0,140,255,228, 4, 49, 5,240, 0, 23, 0, 32, 0, 0, 37, 22, 51, 50,
- 54, 55, 21, 14, 1, 35, 32, 0, 17, 16, 0, 33, 50, 22, 23, 21, 46, 1, 34, 15, 1, 6, 7, 6, 17, 16, 23, 22, 23, 2, 1, 95,
-124,100,157, 84, 9,200,132,254,248,254,184, 1, 69, 1, 22,125,144, 61, 91,126,232,111,105, 8, 11,137,134, 12, 10,131, 55, 64,
- 44,131, 5, 76, 1,168, 1, 93, 1,114, 1,149, 52, 30,130, 42, 58, 48, 78, 8, 14,178,254,175,254,204,190, 17, 11, 0, 0, 0,
- 0, 1, 0, 84, 0, 0, 4, 72, 6, 20, 0, 26, 0, 0, 1, 3, 35, 19, 54, 55, 54, 53, 52, 38, 35, 34, 6, 7, 3, 35, 1, 51,
- 3, 62, 1, 51, 50, 22, 21, 20, 6, 4, 51,135,184,135, 1, 2, 15, 93, 87,127,178, 33,123,184, 1, 47,184,116, 75,175, 98,139,
-154, 11, 2,182,253, 74, 2,183, 4, 10, 71, 39, 81, 87,186,168,253,135, 6, 20,253,164, 97, 98,145,130, 32, 94, 0, 4, 0, 10,
- 0, 0, 4,199, 5,213, 0, 3, 0, 9, 0, 13, 0, 35, 0, 0, 0, 32, 16, 32, 19, 34, 16, 51, 50, 16, 3, 33, 21, 33, 1, 17,
- 51, 19, 17, 52, 54, 51, 21, 34, 6, 21, 17, 35, 3, 17, 20, 6, 35, 53, 50, 54, 3,101, 1, 98,254,158,177, 50, 50, 51,228, 1,
- 98,254,158,253, 32,245,204, 87,220, 85, 38,245,204, 87,220, 85, 38, 3, 12,253,234, 1,149,254,236, 1, 20,254, 9,148, 1, 49,
- 4,164,251, 81, 3,126,131,174,184, 62, 59,251, 92, 4,175,252,130,131,174,184, 62, 0, 0, 0, 0, 2, 0, 0, 3,147, 4,102,
- 5,213, 0, 7, 0, 20, 0,104, 64, 54, 15, 9, 10, 9, 14, 10, 10, 9, 17, 8, 9, 8, 16, 9, 9, 8, 66, 17, 14, 9, 3, 1,
- 15, 18, 12, 3, 5, 1,215, 10, 8, 0,136, 21, 16, 15, 10, 9, 8, 5, 17, 13, 96, 11, 17, 96, 19, 0, 95, 2, 96, 4, 95, 6,
- 47,252,254,236,213,238,214,238, 17, 23, 57, 49, 0, 16,244, 60, 60,236, 50,212, 60, 60,196, 17, 23, 57, 48, 75, 83, 88, 7, 16,
- 5,201, 7, 16, 4,201, 7, 16, 4,201, 7, 16, 5,201, 89, 34, 1, 21, 35, 17, 35, 17, 35, 53, 33, 27, 1, 51, 17, 35, 17, 3,
- 35, 3, 17, 35, 17, 1,182,162,114,162, 2,180,137,125,172,114,156, 55,166,113, 5,213, 94,254, 28, 1,228, 94,255, 0, 1, 0,
-253,190, 1,226,254,211, 1, 45,254, 30, 2, 66,255,255, 0, 74, 0, 0, 4,135, 5,180, 16, 6, 2,229, 0, 0,255,255, 0,137,
- 0, 0, 4,201, 5,213, 16, 6, 0, 46, 0, 0,255,255, 0, 37, 0, 0, 4,172, 7,109, 16, 6, 0,135, 0, 0,255,255, 0, 27,
-254,227, 4,101, 6,123, 16, 39, 0,117, 0,201,252, 86, 16, 38, 11,182, 0, 0, 16, 7, 0,123,254,254, 0,156,255,255, 0, 27,
-254,227, 4,101, 6,140, 16, 39, 0,117, 0,201,252, 86, 16, 38, 11,182, 0, 0, 16, 7, 0,116,254,254, 0,156,255,255, 0, 27,
-254,227, 4, 90, 6,123, 16, 39, 6,171, 0,201,252, 86, 16, 38, 11,182, 0, 0, 16, 7, 0,123,254,254, 0,156,255,255, 0, 27,
-254,227, 4, 90, 6,140, 16, 39, 6,171, 0,201,252, 86, 16, 38, 11,182, 0, 0, 16, 7, 0,116,254,254, 0,156,255,255, 0, 27,
-254,227, 4, 90, 6,140, 16, 39, 6,171, 0,201,252, 86, 16, 38, 11,182, 0, 0, 16, 7, 0,117,254,254, 0,156,255,255, 0, 10,
-254,227, 4, 90, 6,123, 16, 39, 6,171, 0,201,252, 86, 16, 38, 11,182, 0, 0, 16, 7, 6,170,254,254, 0,156,255,255, 0, 27,
-254,227, 4,106, 6,123, 16, 39, 6,172, 0,201,252, 86, 16, 38, 11,182, 0, 0, 16, 7, 0,123,254,254, 0,156,255,255, 0, 27,
-254,227, 4,106, 6,123, 16, 39, 6,172, 0,201,252, 86, 16, 38, 11,182, 0, 0, 16, 7, 6,171,254,254, 0,156,255,255, 0, 27,
-254,226, 4, 95, 6,123, 16, 39, 6,174, 0,201,252, 86, 16, 38, 11,182, 0, 0, 16, 7, 0,123,254,254, 0,156,255,255, 0, 27,
-254,226, 4, 95, 6,140, 16, 39, 6,174, 0,201,252, 86, 16, 38, 11,182, 0, 0, 16, 7, 0,117,254,254, 0,156,255,255, 0, 27,
-254,226, 4, 95, 6,123, 16, 39, 6,174, 0,201,252, 86, 16, 38, 11,182, 0, 0, 16, 7, 6,171,254,254, 0,156,255,255, 0, 27,
-254,226, 4, 95, 6,123, 16, 39, 6,174, 0,201,252, 86, 16, 38, 11,182, 0, 0, 16, 7, 6,173,254,254, 0,156,255,255, 0, 27,
- 1,248, 4, 90, 6,123, 16, 38, 11,182, 0, 0, 16, 7, 0,123,254,254, 0,156, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 9,
- 0, 0, 19, 53, 1, 23, 7, 33, 21, 33, 23, 7, 66, 1, 35, 90,160, 3,112,252,144,160, 90, 2, 8, 82, 1, 35, 90,160,164,160,
- 90, 0, 0, 0, 0, 1, 1, 28, 0, 0, 3,181, 4, 77, 0, 9, 0, 0, 9, 1, 7, 39, 17, 35, 17, 7, 39, 1, 2,146, 1, 34,
- 90,160,164,160, 90, 1, 36, 4, 77,254,221, 90,160,252,144, 3,112,160, 90, 1, 35, 0, 0, 0, 0, 1, 0, 66, 0,229, 4,143,
- 3,125, 0, 9, 0, 0, 9, 1, 39, 55, 33, 53, 33, 39, 55, 1, 4,143,254,221, 90,160,252,144, 3,112,160, 90, 1, 35, 2, 8,
-254,221, 90,160,164,160, 90,254,221, 0, 0, 0, 0, 1, 1, 28, 0, 0, 3,181, 4, 77, 0, 9, 0, 0, 33, 1, 55, 23, 17, 51,
- 17, 55, 23, 1, 2, 64,254,220, 90,160,164,160, 90,254,222, 1, 35, 90,160, 3,112,252,144,160, 90,254,221, 0, 0, 1, 0, 66,
- 0,229, 4,143, 3,125, 0, 15, 0, 0, 1, 33, 23, 7, 1, 53, 1, 23, 7, 33, 39, 55, 1, 21, 1, 39, 3,178,253,109,160, 90,
-254,221, 1, 35, 90,160, 2,147,160, 90, 1, 35,254,221, 90, 1,223,160, 90, 1, 35, 82, 1, 35, 90,160,160, 90,254,221, 82,254,
-221, 90, 0, 0, 0, 1, 1, 28, 0, 0, 3,181, 4, 77, 0, 15, 0, 0, 37, 55, 23, 1, 35, 1, 55, 23, 17, 7, 39, 1, 51, 1,
- 7, 39, 2,186,160, 90,254,222, 82,254,220, 90,160,160, 90, 1, 36, 82, 1, 34, 90,160,221,160, 90,254,221, 1, 35, 90,160, 2,
-147,160, 90, 1, 35,254,221, 90,160, 0, 0, 0, 0, 1, 0,184, 0, 0, 4, 25, 3, 97, 0, 9, 0, 0, 19, 55, 33, 21, 35, 1,
- 7, 1, 21, 35,184, 58, 1,156,227, 2,110,116,253,146,127, 3, 39, 58,127,253,146,116, 2,110,227, 0, 0, 0, 0, 1, 0,184,
- 0, 0, 4, 25, 3, 97, 0, 9, 0, 0, 1, 17, 35, 53, 1, 39, 1, 35, 53, 33, 4, 25,127,253,146,116, 2,110,227, 1,156, 3,
- 39,254,100,227,253,146,116, 2,110,127, 0, 0, 0, 1, 0,184, 0, 0, 4, 25, 3, 97, 0, 9, 0, 0, 41, 1, 53, 51, 1, 55,
- 1, 53, 51, 17, 3,223,254,100,227,253,146,116, 2,110,127,127, 2,110,116,253,146,227,254,100, 0, 1, 0,184, 0, 0, 4, 25,
- 3, 97, 0, 9, 0, 0, 55, 17, 51, 21, 1, 23, 1, 51, 21, 33,184,127, 2,110,116,253,146,227,254,100, 58, 1,156,227, 2,110,
-116,253,146,127, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 17, 0, 0, 1, 51, 21, 33, 7, 39, 55, 33, 23, 7, 1, 53, 1, 23,
- 7, 33, 55, 23, 3,193,206,254,209,147,142, 99,254,125,160, 90,254,221, 1, 35, 90,160, 1,227,148,142, 2,131,164,250, 82,168,
-160, 90, 1, 35, 82, 1, 35, 90,160,250, 82, 0, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 17, 0, 0, 1, 35, 53, 33, 55, 23,
- 7, 33, 39, 55, 1, 21, 1, 39, 55, 33, 7, 39, 1, 16,206, 1, 47,147,142, 99, 1,131,160, 90, 1, 35,254,221, 90,160,254, 29,
-148,142, 1,223,164,250, 82,168,160, 90,254,221, 82,254,221, 90,160,250, 82, 0, 0, 1, 0, 89, 1,139, 4,120, 3, 97, 0, 53,
- 0, 0, 1, 22, 23, 22, 23, 22, 51, 50, 55, 54, 55, 54, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 7, 38, 39, 38, 39,
- 38, 35, 34, 7, 14, 1, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 47, 1, 21, 35, 17, 55, 33, 21, 1, 36, 7,102, 18, 32, 25, 33,
- 31, 26, 24, 26, 21, 13, 17, 43, 33, 51, 45, 54, 56, 43, 50, 34, 44, 24,106, 5, 33, 17, 33, 24, 33, 28, 28, 25, 51, 10, 14, 46,
- 30, 54, 43, 56, 53, 46, 48, 36,109,127, 58, 1,156, 2,226, 12,119, 21, 18, 15, 15, 12, 29, 22, 39, 48, 55, 41, 27, 23, 23, 28,
- 40, 54, 59, 67, 18, 43, 22, 19, 14, 14, 12, 58, 32, 44, 58, 39, 29, 24, 24, 25, 43,128,224, 1,156, 58,127, 0, 0, 1, 0, 89,
- 1,139, 4,120, 3, 97, 0, 53, 0, 0, 1, 33, 53, 33, 23, 17, 35, 53, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 46, 1, 39,
- 38, 35, 34, 7, 6, 7, 6, 7, 39, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 51, 50, 55, 54, 55, 54,
- 3,173,254,245, 1,156, 58,127,109, 36, 48, 46, 53, 56, 43, 54, 30, 46, 14, 10, 51, 25, 28, 28, 33, 24, 33, 17, 33, 5,106, 24,
- 44, 34, 50, 43, 56, 54, 45, 51, 33, 43, 17, 13, 21, 26, 24, 26, 31, 33, 25, 32, 18,102, 2,226,127, 58,254,100,224,128, 43, 25,
- 24, 24, 29, 39, 58, 44, 32, 58, 12, 14, 14, 19, 22, 43, 18, 67, 59, 54, 40, 28, 23, 23, 27, 41, 55, 48, 39, 22, 29, 12, 15, 15,
- 18, 21,119, 0, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 17, 0, 0, 1, 33, 21, 33, 23, 7, 39, 35, 23, 7, 1, 53, 1, 23,
- 7, 51, 55, 23, 2,105, 2, 38,253,218,160, 90,250,150,160, 90,254,221, 1, 35, 90,160,150,250, 90, 2,131,164,160, 90,250,160,
- 90, 1, 35, 82, 1, 35, 90,160,250, 90, 0, 0, 0, 1, 1, 28, 0, 0, 3,181, 4, 77, 0, 17, 0, 0, 1, 7, 39, 55, 53, 7,
- 39, 1, 51, 1, 7, 39, 21, 23, 7, 39, 17, 35, 2, 22,160, 90,250,160, 90, 1, 36, 82, 1, 34, 90,160,250, 90,160,164, 2, 38,
-160, 90,250,150,160, 90, 1, 35,254,221, 90,160,150,250, 90,160,253,218, 0, 0, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 17,
- 0, 0, 1, 39, 55, 23, 51, 39, 55, 1, 21, 1, 39, 55, 35, 7, 39, 55, 33, 53, 2,104,160, 90,250,150,160, 90, 1, 35,254,221,
- 90,160,150,250, 90,160,253,218, 2,131,160, 90,250,160, 90,254,221, 82,254,221, 90,160,250, 90,160,164, 0, 0, 0, 1, 1, 28,
- 0, 0, 3,181, 4, 77, 0, 17, 0, 0, 1, 55, 23, 7, 21, 55, 23, 1, 35, 1, 55, 23, 53, 39, 55, 23, 17, 51, 2,186,160, 90,
-250,160, 90,254,222, 82,254,220, 90,160,250, 90,160,164, 2, 39,160, 90,250,150,160, 90,254,221, 1, 35, 90,160,150,250, 90,160,
- 2, 38, 0, 0, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 14, 0, 0, 1, 23, 7, 39, 33, 23, 7, 1, 53, 1, 23, 7, 33, 55,
- 23, 3,157,242, 90,250,253,228,160, 90,254,221, 1, 35, 90,160, 2, 28,250, 90, 2, 49,242, 90,250,160, 90, 1, 35, 82, 1, 35,
- 90,160,250, 90, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 14, 0, 0, 1, 39, 55, 23, 33, 39, 55, 1, 21, 1, 39, 55, 33, 7,
- 39, 1, 52,242, 90,250, 2, 28,160, 90, 1, 35,254,221, 90,160,253,228,250, 90, 2, 49,242, 90,250,160, 90,254,221, 82,254,221,
- 90,160,250, 90, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 13, 0, 0, 1, 53, 51, 17, 35, 53, 33, 23, 7, 1, 53, 1, 23, 7,
- 3,235,164,164,253, 52,160, 90,254,221, 1, 35, 90,160, 2,131,250,253,104,250,160, 90, 1, 35, 82, 1, 35, 90,160, 0, 0, 0,
- 0, 1, 1, 28, 0, 0, 3,181, 4, 77, 0, 13, 0, 0, 37, 17, 7, 39, 1, 51, 1, 7, 39, 17, 51, 21, 33, 53, 2, 22,160, 90,
- 1, 36, 82, 1, 34, 90,160,250,253,104,164, 2,204,160, 90, 1, 35,254,221, 90,160,253, 52,164,164, 0, 0, 0, 0, 1, 0, 66,
- 0,229, 4,143, 3,125, 0, 13, 0, 0, 19, 33, 39, 55, 1, 21, 1, 39, 55, 33, 21, 35, 17, 51,230, 2,204,160, 90, 1, 35,254,
-221, 90,160,253, 52,164,164, 2,131,160, 90,254,221, 82,254,221, 90,160,250, 2,152, 0, 0, 0, 0, 1, 1, 28, 0, 0, 3,181,
- 4, 77, 0, 13, 0, 0, 1, 17, 55, 23, 1, 35, 1, 55, 23, 17, 35, 53, 33, 21, 2,186,160, 90,254,222, 82,254,220, 90,160,250,
- 2,152, 3,169,253, 52,160, 90,254,221, 1, 35, 90,160, 2,204,164,164, 0, 0, 0, 1, 1, 28, 0, 0, 3,181, 4, 77, 0, 19,
- 0, 0, 37, 39, 55, 23, 17, 7, 39, 1, 51, 1, 7, 39, 17, 55, 23, 7, 51, 21, 33, 53, 2, 22,250, 90,160,160, 90, 1, 36, 82,
- 1, 34, 90,160,160, 90,250,250,253,104,164,250, 90,160, 2, 24,160, 90, 1, 35,254,221, 90,160,253,232,160, 90,250,164,164, 0,
- 0, 1, 0, 66, 0,229, 4,143, 4, 35, 0, 40, 0, 0, 1, 50, 55, 54, 55, 54, 55, 54, 53, 52, 39, 38, 39, 38, 39, 38, 35, 53,
- 50, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 33, 23, 7, 1, 53, 1, 23, 7, 3,100, 30, 26, 23, 19, 17, 10, 10,
- 9, 10, 18, 16, 26, 23, 25, 62, 98, 45, 42, 22, 22, 21, 20, 44, 37, 58, 48, 31,253,147,160, 90,254,221, 1, 35, 90,160, 2,131,
- 10, 9, 18, 17, 23, 24, 25, 27, 21, 23, 18, 16, 11, 10,164, 42, 43, 40, 53, 52, 60, 56, 53, 50, 46, 38, 26, 21,160, 90, 1, 35,
- 82, 1, 35, 90,160, 0, 0, 0, 0, 1, 0, 66, 0,229, 4,143, 4, 35, 0, 41, 0, 0, 1, 33, 39, 55, 1, 21, 1, 39, 55, 33,
- 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51, 21, 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22,
- 1,109, 2, 69,160, 90, 1, 35,254,221, 90,160,253,147, 31, 48, 58, 37, 44, 20, 21, 22, 22, 42, 45, 49, 49, 62, 25, 23, 26, 16,
- 18, 10, 9, 10, 10, 17, 19, 23, 26, 2,131,160, 90,254,221, 82,254,221, 90,160, 21, 26, 38, 46, 50, 53, 56, 60, 52, 53, 40, 43,
- 21, 21,164, 10, 11, 16, 18, 23, 21, 27, 25, 24, 23, 17, 18, 9, 10, 0, 0, 0, 0, 2, 0, 66, 0,229, 4,143, 4, 35, 0, 36,
- 0, 62, 0, 0, 1, 50, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 43, 1, 21, 35, 53, 33, 23, 7, 1, 53, 1, 23, 7,
- 33, 53, 52, 55, 54, 55, 54, 55, 54, 23, 34, 7, 6, 7, 6, 7, 6, 29, 1, 51, 50, 55, 54, 55, 54, 55, 54, 53, 52, 39, 38, 39,
- 38, 39, 38, 3,108, 62, 98, 45, 42, 22, 22, 21, 20, 44, 37, 58, 48, 31,151,164,254,206,160, 90,254,221, 1, 35, 90,160, 1, 50,
- 21, 22, 41, 45, 48, 49, 57, 17, 26, 22, 18, 15, 12, 9,111, 30, 26, 23, 19, 17, 10, 10, 9, 10, 18, 16, 26, 23, 4, 35, 42, 43,
- 40, 53, 52, 60, 56, 53, 50, 46, 38, 26, 21,213,213,160, 90, 1, 35, 82, 1, 35, 90,160,125, 59, 52, 55, 40, 43, 21, 20,163, 10,
- 10, 17, 15, 27, 22, 26,125, 10, 9, 18, 17, 23, 24, 25, 27, 21, 23, 18, 16, 11, 10, 0, 0, 0, 0, 2, 0, 65, 0,229, 4,143,
- 4, 35, 0, 37, 0, 63, 0, 0, 1, 22, 23, 22, 23, 22, 23, 22, 29, 1, 33, 39, 55, 1, 21, 1, 39, 55, 33, 21, 35, 53, 35, 34,
- 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 23, 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 59, 1,
- 53, 52, 39, 38, 39, 38, 39, 38, 1,101, 57, 49, 48, 45, 41, 22, 21, 1, 50,160, 90, 1, 35,254,221, 90,160,254,206,164,151, 31,
- 48, 58, 37, 44, 20, 21, 22, 22, 42, 45, 49, 49, 62, 25, 23, 26, 16, 18, 10, 9, 10, 10, 17, 19, 23, 26, 30,111, 9, 12, 15, 18,
- 22, 26, 4, 35, 1, 20, 21, 43, 40, 55, 52, 59,125,160, 90,254,221, 82,254,221, 90,160,213,213, 21, 26, 38, 46, 50, 53, 56, 60,
- 52, 53, 40, 43, 21, 21,164, 10, 11, 16, 18, 23, 21, 27, 25, 24, 23, 17, 18, 9, 10,125, 26, 22, 27, 15, 17, 10, 10, 0, 0, 0,
- 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 88, 0, 0, 1, 51, 22, 23, 22, 23, 30, 1, 50, 54, 55, 54, 55, 54, 55, 54, 55, 54,
- 51, 50, 23, 22, 23, 22, 23, 22, 23, 30, 1, 50, 54, 55, 54, 55, 54, 63, 1, 39, 55, 1, 21, 1, 39, 55, 35, 38, 7, 6, 7, 6,
- 7, 6, 34, 39, 38, 39, 38, 39, 38, 39, 38, 39, 38, 34, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 34, 39, 38, 39, 38, 39, 38, 7,
- 35, 23, 7, 1, 53, 1, 23, 1, 31, 8, 33, 24, 24, 25, 7, 16, 19, 16, 7, 7, 4, 11, 22, 23, 26, 27, 31, 33, 25, 30, 19, 22,
- 11, 3, 7, 7, 17, 18, 17, 7, 30, 19, 23, 26, 15,160, 90, 1, 35,254,221, 90,160, 6, 12, 6, 9, 7, 27, 21, 27, 62, 27, 27,
- 22, 25, 8, 3, 7, 7, 9, 8, 19, 8, 8, 7, 7, 3, 8, 26, 21, 28, 26, 62, 27, 24, 25, 7, 9, 6, 11, 7,160, 90,254,221,
- 1, 35, 90, 2,131, 3, 16, 17, 34, 9, 11, 11, 9, 12, 12, 42, 33, 35, 16, 17, 17, 21, 30, 36, 39, 12, 12, 9, 11, 11, 9, 42,
- 9, 12, 4, 3,160, 90,254,221, 82,254,221, 90,160, 1, 5, 5, 10, 37, 13, 17, 17, 18, 32, 39, 37, 12, 11, 10, 5, 6, 6, 5,
- 10, 8, 15, 37, 39, 32, 18, 17, 17, 16, 34, 10, 5, 5, 1,160, 90, 1, 35, 82, 1, 35, 90, 0, 0, 1, 0, 66, 0,209, 4,143,
- 3,145, 0, 23, 0, 0, 1, 33, 3, 39, 55, 35, 23, 7, 1, 53, 1, 23, 7, 33, 19, 23, 7, 51, 39, 55, 1, 21, 1, 39, 3,178,
-254,232, 60,140, 50,229,160, 90,254,221, 1, 35, 90,160, 1, 6, 60,140, 50,247,160, 90, 1, 35,254,221, 90, 1,223,254,242, 32,
-238,160, 90, 1, 35, 82, 1, 35, 90,160, 1, 14, 32,238,160, 90,254,221, 82,254,221, 90, 0, 0, 0, 1, 0,113, 0, 0, 4, 96,
- 5,149, 0, 13, 0, 0, 37, 55, 23, 5, 39, 3, 55, 23, 19, 1, 19, 23, 3, 1, 3, 93,184, 74,254,177, 81,239,103,132,122,253,
- 61,151,160, 90, 2,195,211,132,104,239, 13, 1, 80, 74,185, 2,212,254, 86, 3,125, 30,253,236, 1,170, 0, 0, 0, 1, 0,183,
- 0, 0, 4, 26, 5,101, 0, 11, 0, 0, 1, 23, 7, 1, 53, 1, 23, 7, 33, 17, 35, 17, 1,148,160, 90,254,222, 1, 34, 90,160,
- 2,134,164, 3,199,160, 90, 1, 35, 82, 1, 35, 90,160,251,149, 3,199, 0, 0, 0, 1, 0,183, 0, 0, 4, 26, 5,101, 0, 11,
- 0, 0, 1, 33, 17, 35, 17, 33, 39, 55, 1, 21, 1, 39, 3, 60,254, 32,164, 2,132,160, 90, 1, 36,254,220, 90, 3,199,252, 57,
- 4,107,160, 90,254,221, 82,254,221, 90, 0, 0, 0, 1, 0,183, 0, 0, 4, 26, 5,101, 0, 11, 0, 0, 1, 33, 17, 51, 17, 33,
- 23, 7, 1, 53, 1, 23, 1,148, 1,226,164,253,122,160, 90,254,222, 1, 34, 90, 1,158, 3,199,251,149,160, 90, 1, 35, 82, 1,
- 35, 90, 0, 0, 0, 1, 0,183, 0, 0, 4, 26, 5,101, 0, 11, 0, 0, 1, 39, 55, 1, 21, 1, 39, 55, 33, 17, 51, 17, 3, 60,
-160, 90, 1, 36,254,220, 90,160,253,124,164, 1,158,160, 90,254,221, 82,254,221, 90,160, 4,107,252, 57, 0, 0, 0, 1, 0,186,
- 0, 0, 4, 23, 4, 82, 0, 11, 0, 0, 37, 17, 33, 53, 33, 17, 55, 23, 1, 35, 1, 55, 2,121,254, 65, 2, 99,160, 90,254,221,
- 82,254,221, 90,221, 2,209,164,252,139,160, 90,254,221, 1, 35, 90, 0, 0, 0, 0, 1, 0, 63, 0, 0, 4,146, 3, 93, 0, 11,
- 0, 0, 1, 33, 17, 51, 17, 33, 23, 7, 1, 53, 1, 23, 1, 28, 2,210,164,252,138,160, 90,254,222, 1, 34, 90, 1,158, 1,191,
-253,157,160, 90, 1, 35, 82, 1, 35, 90, 0, 0, 0, 1, 0, 81, 1, 88, 4,128, 3,229, 0, 41, 0, 0, 1, 55, 54, 55, 54, 55,
- 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 23, 35, 52, 39, 38, 39, 38, 39, 38, 7, 6, 7, 6, 7, 6, 7, 6, 23, 21, 55, 23,
- 1, 35, 1, 55, 1, 75, 1, 1, 36, 30, 60, 57, 74, 71, 84, 87, 68, 76, 55, 58, 32, 30, 1,152, 19, 19, 37, 35, 48, 40, 55, 57,
- 41, 46, 37, 36, 20, 17, 2,160, 90,254,221, 82,254,221, 90, 2, 53, 24, 78, 83, 72, 59, 57, 30, 29, 29, 33, 54, 58, 73, 70, 84,
- 55, 47, 48, 39, 36, 23, 19, 1, 1, 18, 20, 38, 36, 50, 40, 71, 23,160, 90,254,221, 1, 35, 90, 0, 1, 0, 81, 1, 88, 4,128,
- 3,229, 0, 42, 0, 0, 1, 55, 23, 1, 35, 1, 55, 23, 53, 54, 39, 38, 39, 38, 39, 38, 39, 38, 7, 6, 7, 6, 7, 6, 21, 48,
- 35, 54, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 23, 3,134,160, 90,254,221, 82,254,221, 90,160, 2, 17, 20, 36,
- 37, 46, 41, 57, 55, 40, 48, 35, 37, 19, 19,152, 1, 30, 32, 58, 55, 76, 68, 87, 84, 71, 74, 57, 60, 30, 36, 1, 2, 53,160, 90,
-254,221, 1, 35, 90,160, 23, 71, 40, 50, 36, 38, 20, 18, 1, 1, 19, 23, 36, 39, 48, 47, 55, 84, 70, 73, 58, 54, 33, 29, 29, 30,
- 57, 59, 72, 83, 78, 0, 0, 0, 0, 2, 0, 50, 0, 0, 4,159, 4, 26, 0, 9, 0, 13, 0, 0, 19, 55, 33, 21, 35, 1, 7, 1,
- 21, 35, 3, 53, 33, 21,184, 58, 1,156,227, 2,110,116,253,146,127,134, 4,108, 3, 39, 58,127,253,146,116, 2,110,227, 2, 63,
- 80, 80, 0, 0, 0, 2, 0, 66, 0, 0, 4,143, 4,214, 0, 13, 0, 27, 0, 0, 19, 1, 23, 7, 33, 21, 33, 23, 7, 1, 17, 35,
- 17, 51, 1, 17, 51, 17, 35, 17, 1, 39, 55, 33, 53, 33, 39, 55,230, 1, 35, 90,160, 2,204,253, 52,160, 90,254,221,164,164, 3,
- 5,164,164,254,221, 90,160,253, 52, 2,204,160, 90, 3,179, 1, 35, 90,160,164,160, 90, 1, 35,254,221, 2,152,252,159, 1, 35,
-253,104, 1, 35,254,221, 90,160,164,160, 90, 0, 0, 1, 0, 88, 0, 0, 4,121, 3,249, 0, 54, 0, 0, 1, 23, 22, 23, 22, 21,
- 20, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 23, 6, 7, 6, 21, 20, 22, 23, 22, 23, 22, 50,
- 55, 54, 55, 62, 1, 53, 52, 39, 38, 47, 1, 21, 35, 17, 55, 33, 21, 3,149, 29, 74, 37, 37, 37, 39, 72, 68, 95, 83,108,104, 88,
- 91, 72, 74, 37, 37, 37, 37, 74,119, 52, 24, 25, 50, 50, 45, 65, 56,144, 59, 62, 49, 49, 50, 25, 30, 45, 33,127, 58, 1,156, 3,
-122, 29, 74, 90, 91,103,104, 88, 92, 72, 67, 43, 37, 37, 39, 71, 75, 89, 91,101,103, 91, 87, 77,115, 50, 61, 62, 70, 68,123, 50,
- 44, 30, 25, 25, 27, 47, 50,123, 68, 70, 62, 72, 39, 28,227, 1,156, 58,127, 0, 0, 1, 0, 88, 0, 0, 4,121, 3,249, 0, 54,
- 0, 0, 1, 35, 53, 33, 23, 17, 35, 53, 7, 6, 7, 6, 21, 20, 22, 23, 22, 23, 22, 50, 55, 54, 55, 62, 1, 53, 52, 39, 38, 39,
- 55, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 1, 60,227, 1,156, 58,127,
- 33, 45, 30, 25, 50, 49, 49, 62, 59,144, 56, 65, 45, 50, 50, 25, 24, 52,119, 74, 37, 37, 37, 37, 74, 72, 91, 88,104,108, 83, 95,
- 68, 72, 39, 38, 38, 38, 73, 3,122,127, 58,254,100,227, 28, 39, 72, 62, 70, 68,123, 50, 47, 27, 25, 25, 30, 44, 50,123, 68, 70,
- 62, 61, 50,115, 77, 87, 91,103,101, 91, 89, 75, 71, 39, 37, 37, 43, 67, 72, 92, 88,104,103, 91, 91, 73, 0, 0, 0, 1, 0, 66,
- 1,223, 4,143, 3,125, 0, 6, 0, 0, 19, 53, 1, 23, 7, 33, 21, 66, 1, 35, 90,160, 3,112, 1,223,123, 1, 35, 90,160,164,
- 0, 1, 0, 66, 0,229, 4,143, 2,131, 0, 6, 0, 0, 19, 33, 21, 33, 23, 7, 1, 66, 4, 77,252,144,160, 90,254,221, 2,131,
-164,160, 90, 1, 35, 0, 0, 0, 0, 1, 2, 22, 0, 0, 3,181, 4, 77, 0, 6, 0, 0, 1, 51, 1, 7, 39, 17, 35, 2, 22,124,
- 1, 34, 90,160,164, 4, 77,254,221, 90,160,252,144, 0, 0, 0, 0, 1, 1, 28, 0, 0, 2,187, 4, 77, 0, 6, 0, 0, 1, 17,
- 35, 17, 7, 39, 1, 2,186,164,160, 90, 1, 36, 4, 77,251,179, 3,112,160, 90, 1, 35, 0, 0, 0, 1, 0, 66, 1,223, 4,143,
- 3,125, 0, 6, 0, 0, 1, 33, 53, 33, 39, 55, 1, 4,143,251,179, 3,112,160, 90, 1, 35, 1,223,164,160, 90,254,221, 0, 0,
- 0, 1, 0, 66, 0,229, 4,143, 2,131, 0, 6, 0, 0, 1, 21, 1, 39, 55, 33, 53, 4,143,254,221, 90,160,252,144, 2,131,123,
-254,221, 90,160,164, 0, 0, 0, 0, 1, 2, 22, 0, 0, 3,181, 4, 77, 0, 6, 0, 0, 33, 17, 51, 17, 55, 23, 1, 2, 22,164,
-160, 90,254,222, 4, 77,252,144,160, 90,254,221, 0, 1, 1, 71, 0, 0, 2,229, 4, 77, 0, 6, 0, 0, 33, 35, 1, 55, 23, 17,
- 51, 2,229,123,254,221, 90,160,164, 1, 35, 90,160, 3,112, 0, 0, 2, 0, 66, 0, 0, 4,143, 4,124, 0, 9, 0, 19, 0, 0,
- 9, 1, 39, 55, 33, 53, 33, 39, 55, 9, 1, 53, 1, 23, 7, 33, 21, 33, 23, 7, 4,143,254,221, 90,160,252,144, 3,112,160, 90,
- 1, 35,251,179, 1, 35, 90,160, 3,112,252,144,160, 90, 3, 7,254,221, 90,160,164,160, 90,254,221,253,202, 82, 1, 35, 90,160,
-164,160, 90, 0, 0, 2, 0, 42, 0, 0, 4,167, 4, 77, 0, 9, 0, 19, 0, 0, 33, 1, 55, 23, 17, 51, 17, 55, 23, 9, 1, 51,
- 1, 7, 39, 17, 35, 17, 7, 39, 3, 50,254,220, 90,160,164,160, 90,254,222,253,202, 82, 1, 34, 90,160,164,160, 90, 1, 35, 90,
-160, 3,112,252,144,160, 90,254,221, 4, 77,254,221, 90,160,252,144, 3,112,160, 90, 0, 0, 0, 0, 2, 0, 66, 0, 0, 4,143,
- 4,124, 0, 9, 0, 19, 0, 0, 1, 21, 1, 39, 55, 33, 53, 33, 39, 55, 37, 1, 23, 7, 33, 21, 33, 23, 7, 1, 4,143,254,221,
- 90,160,252,144, 3,112,160, 90,252,214, 1, 35, 90,160, 3,112,252,144,160, 90,254,221, 1,117, 82,254,221, 90,160,164,160, 90,
-193, 1, 35, 90,160,164,160, 90, 1, 35, 0, 0, 0, 1, 0, 66, 0, 0, 4,143, 4,124, 0, 17, 0, 0, 1, 39, 53, 1, 23, 7,
- 33, 21, 33, 23, 7, 33, 21, 33, 23, 7, 1, 53, 1, 11,201, 1, 35, 90,160, 3,112,252,144,160,160, 3,112,252,144,160, 90,254,
-221, 2, 62,201, 82, 1, 35, 90,160,164,160,160,164,160, 90, 1, 35, 82, 0, 0, 0, 1, 0, 42, 0, 0, 4,167, 4, 77, 0, 17,
- 0, 0, 1, 55, 51, 1, 7, 39, 17, 35, 17, 7, 39, 17, 35, 17, 7, 39, 1, 51, 2,104,202, 82, 1, 34, 90,160,164,160,160,164,
-160, 90, 1, 36, 82, 3,132,201,254,221, 90,160,252,144, 3,112,160,160,252,144, 3,112,160, 90, 1, 35, 0, 0, 0, 1, 0, 66,
- 0, 0, 4,143, 4,124, 0, 17, 0, 0, 1, 23, 21, 1, 39, 55, 33, 53, 33, 39, 55, 33, 53, 33, 39, 55, 1, 21, 3,198,201,254,
-221, 90,160,252,144, 3,112,160,160,252,144, 3,112,160, 90, 1, 35, 2, 62,201, 82,254,221, 90,160,164,160,160,164,160, 90,254,
-221, 82, 0, 0, 0, 1, 0, 42, 0, 0, 4,167, 4, 77, 0, 17, 0, 0, 37, 7, 35, 1, 55, 23, 17, 51, 17, 55, 23, 17, 51, 17,
- 55, 23, 1, 35, 2,104,200, 82,254,220, 90,160,164,160,160,164,160, 90,254,222, 82,201,201, 1, 35, 90,160, 3,112,252,144,160,
-160, 3,112,252,144,160, 90,254,221, 0, 0, 0, 0, 2, 0, 66, 0, 65, 4,143, 4, 33, 0, 6, 0, 13, 0, 0, 1, 21, 1, 39,
- 55, 33, 61, 2, 1, 23, 7, 33, 21, 4,143,254,221, 90,160,252,144, 1, 35, 90,160, 3,112, 1,223,123,254,221, 90,160,164,164,
-123, 1, 35, 90,160,164, 0, 0, 0, 2, 0, 66, 0, 65, 4,143, 4, 33, 0, 6, 0, 13, 0, 0, 19, 33, 21, 33, 23, 7, 9, 1,
- 33, 53, 33, 39, 55, 1, 66, 4, 77,252,144,160, 90,254,221, 4, 77,251,179, 3,112,160, 90, 1, 35, 1,223,164,160, 90, 1, 35,
- 1, 31,164,160, 90,254,221, 0, 0, 2, 0, 66, 0,229, 4,143, 3,125, 0, 21, 0, 26, 0, 0, 1, 33, 55, 23, 7, 51, 21, 33,
- 7, 33, 21, 33, 7, 39, 55, 35, 23, 7, 1, 53, 1, 23, 5, 33, 7, 23, 33, 1,113, 1,163, 86, 97, 54,250,254,210, 90, 1,136,
-254, 69, 86, 96, 54,227, 78, 90,254,221, 1, 35, 90, 1, 34,254, 62, 82, 82, 1,106, 2,213,168, 59,109, 82,164, 82,166, 58,108,
- 78, 90, 1, 35, 82, 1, 35, 90,160, 82, 82, 0, 0, 3, 0, 66, 0,229, 4,143, 3,175, 0, 4, 0, 28, 0, 33, 0, 0, 1, 33,
- 7, 23, 51, 55, 51, 39, 55, 1, 21, 1, 39, 55, 35, 7, 39, 55, 35, 23, 7, 1, 53, 1, 23, 7, 51, 55, 23, 3, 7, 33, 55, 39,
- 2, 33,254,254, 82, 82,223,200,154, 78, 90, 1, 35,254,221, 90, 78,227, 31,140, 27,124, 78, 90,254,221, 1, 35, 90, 78,194, 46,
-140, 57, 35, 1, 33, 82, 82, 2,131, 82, 82,246, 78, 90,254,221, 82,254,221, 90, 78,158, 32,126, 78, 90, 1, 35, 82, 1, 35, 90,
- 78,218, 32,254,244,164, 82, 82, 0, 2, 0, 66, 0,229, 4,143, 3,125, 0, 21, 0, 26, 0, 0, 1, 33, 7, 39, 55, 35, 53, 33,
- 55, 33, 53, 33, 55, 23, 7, 51, 39, 55, 1, 21, 1, 39, 37, 33, 55, 39, 33, 3, 96,254, 93, 86, 97, 54,250, 1, 46, 90,254,120,
- 1,187, 86, 96, 54,227, 78, 90, 1, 35,254,221, 90,254,222, 1,194, 82, 82,254,150, 1,141,168, 59,109, 82,164, 82,166, 58,108,
- 78, 90,254,221, 82,254,221, 90,160, 82, 82, 0, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 14, 0, 0, 1, 7, 23, 33, 21, 33,
- 23, 7, 1, 53, 1, 23, 7, 33, 21, 1, 31, 82, 82, 3,112,252,226, 78, 90,254,221, 1, 35, 90, 78, 3, 30, 2,131, 82, 82, 82,
- 78, 90, 1, 35, 82, 1, 35, 90, 78, 82, 0, 0, 0, 1, 1, 28, 0, 0, 3,181, 4, 77, 0, 14, 0, 0, 1, 17, 35, 17, 7, 39,
- 1, 51, 1, 7, 39, 17, 35, 19, 39, 2, 22, 82, 78, 90, 1, 36, 82, 1, 34, 90, 78, 82, 1, 83, 3,112,252,144, 3, 30, 78, 90,
- 1, 35,254,221, 90, 78,252,226, 3,112, 82, 0, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 14, 0, 0, 1, 33, 53, 33, 39, 55,
- 1, 21, 1, 39, 55, 33, 53, 33, 55, 3,178,252,144, 3, 30, 78, 90, 1, 35,254,221, 90, 78,252,226, 3,112, 82, 2,131, 82, 78,
- 90,254,221, 82,254,221, 90, 78, 82, 82, 0, 0, 0, 1, 1, 28, 0, 0, 3,181, 4, 77, 0, 14, 0, 0, 37, 3, 51, 17, 55, 23,
- 1, 35, 1, 55, 23, 17, 51, 17, 23, 2,187, 1, 82, 78, 90,254,222, 82,254,220, 90, 78, 82, 82,221, 3,112,252,226, 78, 90,254,
-221, 1, 35, 90, 78, 3, 30,252,144, 82, 0, 0, 0, 2, 0, 66, 0,229, 4,143, 3,125, 0, 5, 0, 21, 0, 0, 1, 33, 7, 23,
- 33, 55, 47, 1, 55, 1, 21, 1, 39, 55, 33, 23, 7, 1, 53, 1, 23, 7, 3,178,253,109, 82, 82, 2,147, 82,164, 78, 90, 1, 35,
-254,221, 90, 78,254, 17, 78, 90,254,221, 1, 35, 90, 78, 2,131, 82, 82, 82,164, 78, 90,254,221, 82,254,221, 90, 78, 78, 90, 1,
- 35, 82, 1, 35, 90, 78, 0, 0, 0, 2, 1, 28, 0, 0, 3,181, 4, 77, 0, 5, 0, 21, 0, 0, 1, 39, 7, 17, 23, 55, 19, 17,
- 55, 23, 1, 35, 1, 55, 23, 17, 7, 39, 1, 51, 1, 7, 2,187, 83, 82, 82, 83, 81, 78, 90,254,222, 82,254,220, 90, 78, 78, 90,
- 1, 36, 82, 1, 34, 90, 3,112, 82, 82,253,109, 82, 82, 2, 65,254, 17, 78, 90,254,221, 1, 35, 90, 78, 1,239, 78, 90, 1, 35,
-254,221, 90, 0, 0, 1, 0,155,255,198, 4, 54, 3, 97, 0, 14, 0, 0, 1, 35, 21, 1, 7, 1, 21, 35, 17, 55, 33, 21, 35, 1,
- 7, 1,142,116, 2,110, 58,253,204,127, 58, 1,156,110, 2, 51, 58, 2,226,116,253,146, 58, 2, 53,112, 1,156, 58,127,253,204,
- 58, 0, 0, 0, 0, 1, 0,155,255,198, 4, 54, 3, 97, 0, 14, 0, 0, 9, 1, 39, 1, 35, 53, 33, 23, 17, 35, 53, 1, 39, 1,
- 53, 3, 67,253,146, 58, 2, 51,110, 1,156, 58,127,253,204, 58, 2,110, 2,226,253,146, 58, 2, 52,127, 58,254,100,112,253,203,
- 58, 2,110,116, 0, 1, 0,155, 0, 0, 4, 54, 3,155, 0, 14, 0, 0, 37, 1, 55, 1, 53, 51, 17, 7, 33, 53, 51, 1, 55, 1,
- 51, 3,183,253,146, 58, 2, 52,127, 58,254,100,112,253,203, 58, 2,110,116,243, 2,110, 58,253,205,110,254,100, 58,127, 2, 52,
- 58,253,146, 0, 0, 1, 0,155, 0, 0, 4, 54, 3,155, 0, 14, 0, 0, 37, 1, 23, 1, 51, 21, 33, 39, 17, 51, 21, 1, 23, 1,
- 21, 1,142, 2,110, 58,253,205,110,254,100, 58,127, 2, 52, 58,253,146,127, 2,110, 58,253,204,127, 58, 1,156,112, 2, 53, 58,
-253,146,116, 0, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 15, 0, 0, 1, 7, 1, 53, 1, 23, 33, 21, 33, 7, 33, 21, 33, 23,
- 33, 21, 1,191, 90,254,221, 1, 35, 90, 2,208,252,222,119, 3,153,252,103,119, 3, 34, 1, 63, 90, 1, 35, 82, 1, 35, 90, 82,
-119, 82,119, 82, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 15, 0, 0, 1, 33, 53, 33, 55, 33, 53, 33, 39, 33, 53, 33, 55, 1,
- 21, 1, 3, 18,253, 48, 3, 34,119,252,103, 3,153,119,252,222, 2,208, 90, 1, 35,254,221, 1, 63, 82,119, 82,119, 82, 90,254,
-221, 82,254,221, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 22, 0, 0, 1, 51, 23, 55, 23, 55, 23, 55, 51, 21, 7, 39, 7, 39,
- 7, 39, 35, 23, 7, 1, 53, 1, 23, 1, 31,129, 58,151,150,150,150, 59, 33, 92,150,150,150,151, 91, 96,160, 90,254,221, 1, 35,
- 90, 2,131, 67,173,173,173,173, 67,164,106,173,173,173,173,106,160, 90, 1, 35, 82, 1, 35, 90, 0, 1, 0, 66, 0,229, 4,143,
- 3,125, 0, 22, 0, 0, 1, 39, 55, 1, 21, 1, 39, 55, 35, 7, 39, 7, 39, 7, 39, 53, 51, 23, 55, 23, 55, 23, 55, 3,178,160,
- 90, 1, 35,254,221, 90,160, 96, 91,151,150,150,150, 92, 33, 59,150,150,150,151, 58, 2,131,160, 90,254,221, 82,254,221, 90,160,
-106,173,173,173,173,106,164, 67,173,173,173,173, 67, 0, 0, 0, 0, 1, 1, 28, 0, 0, 3,181, 4, 77, 0, 25, 0, 0, 37, 21,
- 35, 53, 35, 53, 51, 53, 35, 53, 51, 53, 7, 39, 1, 51, 1, 7, 39, 21, 51, 21, 35, 21, 51, 21, 2,186,164,250,250,250,250,160,
- 90, 1, 36, 82, 1, 34, 90,160,250,250,250,188,188,188,164,116,164,248,160, 90, 1, 35,254,221, 90,160,248,164,116,164, 0, 0,
- 0, 1, 1, 28, 0, 0, 3,181, 4, 77, 0, 25, 0, 0, 1, 53, 51, 21, 51, 21, 35, 21, 51, 21, 35, 21, 55, 23, 1, 35, 1, 55,
- 23, 53, 35, 53, 51, 53, 35, 53, 2, 22,164,250,250,250,250,160, 90,254,222, 82,254,220, 90,160,250,250,250, 3,144,189,189,164,
-116,164,247,160, 90,254,221, 1, 35, 90,160,247,164,116,164, 0, 0, 3, 0, 66, 0,229, 4,143, 3,125, 0, 9, 0, 13, 0, 17,
- 0, 0, 1, 21, 33, 23, 7, 1, 53, 1, 23, 7, 5, 53, 51, 21, 51, 53, 51, 21, 2, 33,254,254,160, 90,254,221, 1, 35, 90,160,
- 1,127,187,123,187, 2,131,164,160, 90, 1, 35, 82, 1, 35, 90,160,164,164,164,164,164, 0, 0, 0, 3, 1, 28, 0, 0, 3,181,
- 4, 77, 0, 9, 0, 13, 0, 17, 0, 0, 1, 17, 7, 39, 1, 51, 1, 7, 39, 19, 7, 23, 35, 55, 19, 21, 35, 55, 2, 22,160, 90,
- 1, 36, 82, 1, 34, 90,160, 1, 1, 1,165, 1,163,164, 1, 2,110, 1, 2,160, 90, 1, 35,254,221, 90,160,254,254,125,187,187,
-254,202,187,187, 0, 3, 0, 66, 0,229, 4,143, 3,125, 0, 9, 0, 13, 0, 17, 0, 0, 1, 33, 39, 55, 1, 21, 1, 39, 55, 33,
- 43, 1, 53, 51, 5, 35, 53, 51, 2,176, 1, 2,160, 90, 1, 35,254,221, 90,160,254,254,125,187,187,254,202,187,187, 2,131,160,
- 90,254,221, 82,254,221, 90,160,164,164,164, 0, 0, 3, 1, 28, 0, 0, 3,181, 4, 77, 0, 9, 0, 13, 0, 17, 0, 0, 1, 17,
- 55, 23, 1, 35, 1, 55, 23, 17, 55, 39, 51, 21, 3, 39, 51, 21, 2,186,160, 90,254,222, 82,254,220, 90,160, 1, 1,164,163, 1,
-164, 1,223,254,254,160, 90,254,221, 1, 35, 90,160, 1, 2,125,187,187, 1, 54,187,187, 0, 0, 0, 1, 0, 66, 0,229, 4,143,
- 3,125, 0, 13, 0, 0, 19, 1, 23, 7, 33, 21, 33, 23, 7, 1, 17, 35, 17, 51,230, 1, 35, 90,160, 2,204,253, 52,160, 90,254,
-221,164,164, 2, 90, 1, 35, 90,160,164,160, 90, 1, 35,254,221, 2,152, 0, 0, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 13,
- 0, 0, 1, 17, 51, 17, 35, 17, 1, 39, 55, 33, 53, 33, 39, 55, 3,235,164,164,254,221, 90,160,253, 52, 2,204,160, 90, 2, 90,
- 1, 35,253,104, 1, 35,254,221, 90,160,164,160, 90, 0, 0, 0, 0, 2, 0, 25, 0,188, 4,143, 3,166, 0, 6, 0, 13, 0, 0,
- 1, 7, 23, 53, 33, 53, 33, 19, 9, 1, 21, 33, 17, 33, 1, 63,194,194, 3, 10,252,246, 79,254,139, 1,117, 3, 1,252,255, 2,
-244,195,195, 93,204,254, 37, 1,117, 1,117,201,254,168, 0, 0, 0, 2, 0,243, 0, 0, 3,222, 4,118, 0, 6, 0, 13, 0, 0,
- 1, 51, 17, 51, 17, 51, 39, 1, 35, 17, 33, 17, 35, 1, 1,166, 92,204, 94,196, 1,118,202,254,168,200, 1,116, 3, 80,252,246,
- 3, 10,194,254,239,252,255, 3, 1, 1,117, 0, 0, 2, 0, 66, 0,188, 4,185, 3,166, 0, 6, 0, 13, 0, 0, 1, 21, 33, 21,
- 33, 21, 55, 1, 53, 33, 17, 33, 53, 1, 3,146,252,246, 3, 10,194,254,240,252,254, 3, 2, 1,116, 2,244, 93,204, 93,195,254,
-139,201, 1, 88,201,254,139, 0, 0, 2, 0,243, 0, 0, 3,222, 4,118, 0, 6, 0, 13, 0, 0, 1, 35, 17, 35, 17, 35, 23, 1,
- 51, 17, 33, 17, 51, 1, 3, 44, 94,204, 92,194,254,140,200, 1, 88,202,254,138, 1, 38, 3, 10,252,246,194, 1, 17, 3, 1,252,
-255,254,139, 0, 0, 4, 0,243, 0, 0, 3,222, 4,118, 0, 6, 0, 10, 0, 14, 0, 21, 0, 0, 1, 17, 51, 39, 7, 51, 25, 1,
- 21, 51, 53, 37, 33, 17, 33, 25, 1, 35, 9, 1, 35, 17, 2,206, 94,196,194, 92,204,254,238, 1, 88,254,168,200, 1,116, 1,118,
-202, 1,224, 1,112,194,194,254,144,254,242,140,140, 70,254,232, 1,154, 1,103, 1,117,254,139,254,153, 0, 0, 0, 2, 0,243,
- 0, 0, 3,222, 4,118, 0, 10, 0, 21, 0, 0, 37, 17, 51, 39, 7, 51, 17, 35, 21, 33, 53, 37, 17, 35, 9, 1, 35, 17, 51, 17,
- 33, 17, 2,206, 94,196,194, 92,200, 2, 94,254, 36,200, 1,116, 1,118,202,202,253, 22,210, 2,126,194,194,253,130,140,140, 70,
- 1,233, 1,117,254,139,254, 23,254,232, 1, 24, 0, 3, 0,243, 0, 0, 3,222, 4,118, 0, 11, 0, 14, 0, 25, 0, 0, 1, 35,
- 7, 51, 17, 35, 21, 33, 53, 35, 17, 51, 47, 1, 7, 3, 17, 35, 9, 1, 35, 17, 51, 17, 33, 17, 2,224,240, 74, 92,200, 2, 94,
-202, 94,124, 72, 71,101,200, 1,116, 1,118,202,202,253, 22, 3,154, 74,253,130,140,140, 2,126,123, 71, 71,253, 77, 1,233, 1,
-117,254,139,254, 23,254,232, 1, 24, 0, 0, 0, 0, 3, 0,243, 0, 0, 3,222, 4,118, 0, 6, 0, 13, 0, 24, 0, 0, 1, 7,
- 51, 17, 35, 21, 33, 19, 17, 33, 53, 35, 17, 51, 1, 17, 35, 9, 1, 35, 17, 51, 17, 33, 17, 2, 70,160, 92,200, 1, 12, 70, 1,
- 12,202, 94,254,144,200, 1,116, 1,118,202,202,253, 22, 3,239,159,253,130,140, 3,169,252, 87,140, 2,126,253,200, 1,233, 1,
-117,254,139,254, 23,254,232, 1, 24, 0, 0, 0, 0, 3, 0,243, 0, 0, 3,222, 4,118, 0, 6, 0, 12, 0, 23, 0, 0, 1, 51,
- 39, 7, 51, 17, 51, 3, 51, 39, 7, 51, 55, 7, 35, 9, 1, 35, 23, 35, 17, 33, 17, 35, 2,206, 94,196,194, 92,204, 8,102,196,
-194,100, 94,172,200, 1,116, 1,118,202,202,202,254,168,200, 2,136,194,194,253,190, 3, 10,194,194, 94,173, 1,117,254,139,200,
-253,199, 2, 57, 0, 3, 0,243, 0, 0, 3,222, 4,118, 0, 10, 0, 16, 0, 31, 0, 0, 1, 17, 35, 21, 33, 53, 35, 17, 51, 39,
- 7, 37, 51, 39, 7, 51, 55, 3, 35, 55, 35, 9, 1, 35, 23, 35, 17, 51, 17, 33, 17, 51, 2, 2,200, 2, 94,202, 94,196,194, 1,
- 32,102,196,194,100, 94,172,200,200,200, 1,116, 1,118,202,202,202,202,253, 22,200, 2,136,254, 74,140,140, 1,182,194,194,200,
-194,194, 94,254,139,200, 1,117,254,139,200,254,223,254,232, 1, 24, 0, 0, 0, 0, 2, 0, 66, 0,188, 4,185, 3,166, 0, 10,
- 0, 21, 0, 0, 1, 39, 35, 17, 51, 53, 33, 21, 55, 39, 21, 1, 21, 33, 17, 33, 21, 33, 53, 9, 1, 53, 1, 21, 1,140,140, 2,
-126,194,194,253,200,254,232, 1, 24, 1,234, 1,116,254,140, 2,151,201,253,162,201, 93,195,195, 93,254,238,201, 2,234,201,201,
-254,139,254,139,201, 0, 0, 0, 0, 2, 0, 69, 0, 0, 4,140, 4, 70, 0, 9, 0, 15, 0, 0, 1, 55, 33, 21, 35, 1, 7, 1,
- 21, 35, 1, 21, 33, 17, 35, 17, 1, 42, 58, 1,156,227, 2,110,116,253,146,127, 3, 97,252, 4, 73, 3, 39, 58,127,253,146,116,
- 2,110,227, 2,187, 73,252, 3, 4, 70, 0, 0, 0, 2, 0, 69, 0, 0, 4,140, 4, 70, 0, 9, 0, 15, 0, 0, 37, 33, 53, 51,
- 1, 55, 1, 53, 51, 17, 19, 17, 33, 53, 33, 17, 3,108,254,100,228,253,146,116, 2,110,126,230,251,186, 3,252,229,127, 2,110,
-116,253,146,227,254,100, 3, 38,251,187, 73, 3,252, 0, 0, 0, 0, 2, 0,243, 0, 0, 3,222, 4,118, 0, 9, 0, 19, 0, 0,
- 1, 17, 35, 23, 55, 35, 17, 51, 39, 7, 23, 35, 9, 1, 35, 17, 51, 9, 1, 51, 2, 2, 92,194,196, 94, 94,196,194, 22,200, 1,
-116, 1,118,202,202,254,138,254,140,200, 3, 80,253,214,194,194, 2, 42,194,194, 79, 1,117,254,139,254,116,254,139, 1,117, 0,
- 0, 3, 0, 66, 0,229, 4,143, 3,125, 0, 30, 0, 39, 0, 48, 0, 0, 1, 6, 7, 6, 35, 34, 39, 38, 39, 35, 53, 51, 54, 55,
- 54, 51, 50, 22, 23, 22, 23, 22, 23, 51, 39, 55, 1, 21, 1, 39, 55, 37, 38, 39, 38, 35, 34, 7, 6, 7, 5, 33, 22, 23, 22, 51,
- 50, 55, 54, 2,197, 19, 52, 82,118,120, 78, 49, 18,107,107, 19, 50, 79,119, 57,103, 39, 32, 28, 6, 4,237,160, 90, 1, 35,254,
-221, 90,160,254,153, 11, 17, 48, 71, 68, 50, 18, 11, 1, 38,254,219, 12, 15, 43, 74, 68, 53, 17, 1,223, 64, 51, 80, 79, 50, 66,
-164, 66, 52, 82, 44, 40, 32, 58, 12, 14,160, 90,254,221, 82,254,221, 90,160,164, 20, 17, 49, 49, 17, 20,164, 19, 17, 47, 48, 16,
- 0, 2, 0, 42, 0, 0, 4,167, 4, 77, 0, 9, 0, 19, 0, 0, 33, 35, 1, 55, 23, 17, 51, 17, 55, 23, 19, 1, 7, 39, 17, 35,
- 17, 7, 39, 1, 1,160, 82,254,220, 90,160,164,160, 90,194, 1, 34, 90,160,164,160, 90, 1, 36, 1, 35, 90,160, 3,112,252,144,
-160, 90, 3, 42,254,221, 90,160,252,144, 3,112,160, 90, 1, 35, 0, 1, 0, 66,255, 1, 4,143, 5, 97, 0, 25, 0, 0, 1, 55,
- 33, 53, 33, 39, 55, 33, 53, 33, 39, 55, 1, 21, 7, 23, 21, 7, 23, 21, 1, 39, 55, 33, 53, 33, 3, 18,160,252,144, 3,112,160,
-160,252,144, 3,112,160, 90, 1, 35,201,201,201,201,254,221, 90,160,252,144, 3,112, 1, 63,160,164,160,160,164,160, 90,254,221,
- 82,201,201, 82,201,201, 82,254,221, 90,160,164, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 17, 0, 0, 1, 21, 35, 53, 33, 23,
- 7, 1, 53, 1, 23, 7, 33, 53, 51, 21, 33, 21, 3, 30,164,254,165,160, 90,254,221, 1, 35, 90,160, 1, 91,164, 1,113, 1,223,
-250,250,160, 90, 1, 35, 82, 1, 35, 90,160,250,250,164, 0, 0, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 17, 0, 0, 1, 33,
- 53, 33, 53, 51, 21, 33, 39, 55, 1, 21, 1, 39, 55, 33, 21, 35, 1,178,254,144, 1,112,164, 1, 92,160, 90, 1, 35,254,221, 90,
-160,254,164,164, 1,223,164,250,250,160, 90,254,221, 82,254,221, 90,160,250, 0, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 23,
- 0, 0, 1, 35, 23, 7, 1, 53, 1, 23, 7, 51, 53, 51, 21, 51, 39, 55, 1, 21, 1, 39, 55, 35, 21, 35, 2, 22,247,160, 90,254,
-221, 1, 35, 90,160,247,164,248,160, 90, 1, 35,254,221, 90,160,248,164, 1,223,160, 90, 1, 35, 82, 1, 35, 90,160,250,250,160,
- 90,254,221, 82,254,221, 90,160,250, 0, 0, 0, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 25, 0, 0, 1, 21, 35, 53, 35, 21,
- 35, 53, 35, 23, 7, 1, 53, 1, 23, 7, 51, 53, 51, 21, 51, 53, 51, 21, 51, 21, 3,210,164,116,164,247,160, 90,254,221, 1, 35,
- 90,160,247,164,116,164,189, 1,223,250,250,250,250,160, 90, 1, 35, 82, 1, 35, 90,160,250,250,250,250,164, 0, 0, 1, 0, 66,
- 0,229, 4,143, 3,125, 0, 25, 0, 0, 19, 35, 53, 51, 53, 51, 21, 51, 53, 51, 21, 51, 39, 55, 1, 21, 1, 39, 55, 35, 21, 35,
- 53, 35, 21, 35,254,188,188,164,116,164,248,160, 90, 1, 35,254,221, 90,160,248,164,116,164, 1,223,164,250,250,250,250,160, 90,
-254,221, 82,254,221, 90,160,250,250,250, 0, 0, 0, 1, 0, 66, 0,229, 4,143, 3,125, 0, 31, 0, 0, 1, 23, 7, 1, 53, 1,
- 23, 7, 51, 53, 51, 21, 51, 53, 51, 21, 51, 39, 55, 1, 21, 1, 39, 55, 35, 21, 35, 53, 35, 21, 35, 53, 1, 31,160, 90,254,221,
- 1, 35, 90,160,167,134, 56,134,168,160, 90, 1, 35,254,221, 90,160,168,134, 56,134, 1,223,160, 90, 1, 35, 82, 1, 35, 90,160,
-250,250,250,250,160, 90,254,221, 82,254,221, 90,160,250,250,250,250, 0, 0, 0, 0, 2, 0, 25, 0,188, 4,143, 3,166, 0, 2,
- 0, 9, 0, 0, 1, 7, 23, 19, 33, 21, 33, 17, 9, 1, 1, 63,194,194, 79, 3, 1,252,255,254,139, 1,117, 2,244,195,195, 1,
- 21,164,254,221, 1,117, 1,117, 0, 2, 0, 66, 0,188, 4,184, 3,166, 0, 2, 0, 9, 0, 0, 1, 17, 55, 37, 17, 9, 1, 17,
- 33, 53, 3,146,194,254,239, 1,117,254,139,252,255, 2,244,254,122,195, 82, 1, 35,254,139,254,139, 1, 35,164, 0, 3, 0, 25,
- 0,188, 4,184, 3,166, 0, 2, 0, 5, 0, 15, 0, 0, 1, 7, 23, 1, 17, 55, 5, 17, 9, 1, 17, 33, 17, 9, 1, 17, 1, 63,
-194,194, 2, 83,194,253, 58,254,139, 1,117, 1,181, 1,117,254,139, 2,244,195,195, 1,134,254,122,195, 82,254,221, 1,117, 1,
-117,254,221, 1, 35,254,139,254,139, 1, 35, 0, 0, 2, 0,190,255,231, 4, 23, 5, 45, 0, 29, 0, 41, 0, 58, 64, 14, 0, 39,
- 33, 9, 27, 6, 39, 21, 6, 15, 33, 27, 15, 21,184, 1, 13, 64, 10, 42, 12, 36, 3, 0, 30, 18, 36, 24, 42, 16,212,204,220,204,
- 57, 57, 17, 57, 49, 0, 16,228,204,220,204, 16,206, 16,206, 17, 18, 57, 17, 18, 57, 48, 1, 62, 1, 53, 52, 38, 35, 34, 6, 35,
- 34, 38, 53, 52, 54, 51, 50, 18, 17, 16, 0, 35, 34, 38, 53, 52, 18, 51, 50, 22, 7, 52, 38, 35, 34, 2, 21, 20, 22, 51, 50, 18,
- 3, 74, 15, 15, 73, 72, 55,144, 36, 36, 48,144,101,180,214,254,223,213,152,203,221,162,101,130, 11, 87, 79,109,141, 86, 80,109,
-141, 2,109, 87,163, 75,129,131,116, 44, 31, 62, 98,254,202,254,249,254,177,254, 70,216,163,198, 1, 1, 91,224,116,125,254,254,
-207,116,123, 1, 4, 0, 0, 0, 0, 3, 0, 73, 0, 98, 4,138, 4,163, 0, 33, 0, 48, 0, 63, 0, 0, 1, 23, 7, 22, 23, 22,
- 21, 20, 7, 6, 7, 14, 1, 34, 39, 38, 39, 7, 39, 55, 38, 39, 38, 53, 52, 55, 54, 55, 62, 1, 50, 23, 22, 23, 6, 34, 7, 6,
- 7, 14, 1, 21, 20, 23, 22, 23, 1, 38, 39, 23, 1, 22, 23, 22, 50, 55, 54, 55, 62, 1, 53, 52, 39, 38, 4, 38, 99,118, 45, 26,
- 39, 39, 39, 79, 79,190,221, 95, 64, 56,118, 99,117, 45, 27, 39, 39, 39, 79, 79,190,221, 95, 65, 58,247,163, 71, 69, 58, 59, 57,
- 28, 17, 26, 2, 40, 36, 40,175,253,216, 35, 38, 71,163, 70, 70, 58, 59, 57, 28, 16, 4,162, 99,118, 56, 64, 95,112,109, 95, 95,
- 79, 78, 80, 40, 26, 45,118, 99,117, 58, 65, 95,109,112, 95, 95, 79, 79, 80, 40, 28, 45, 28, 30, 30, 57, 59,140, 83, 80, 70, 40,
- 36, 2, 40, 26, 17,142,253,216, 25, 16, 30, 30, 30, 57, 59,140, 80, 83, 70, 39, 0, 2,255,250, 0, 0, 4,217, 5,143, 0, 3,
- 0, 6, 0, 79, 64, 42, 4,105, 5, 4, 2, 3, 2, 6,105, 3, 3, 2, 5,105, 0, 1, 0, 4,105, 6, 4, 1, 1, 0, 66, 4,
- 1, 5,249, 1,251, 0, 6, 5, 4, 2, 1, 5, 7, 3, 0, 7, 16,212,204, 17, 23, 57, 49, 0, 47,228,236, 17, 57, 48, 75, 83,
- 88, 7, 16, 8,237, 7, 16, 5,237, 7, 16, 5,237, 7, 16, 8,237, 89, 34, 35, 1, 51, 9, 2, 33, 6, 2, 6,209, 2, 8,253,
-143,254,144, 2,225, 5,143,250,113, 4,195,251,233, 0, 0, 0, 0, 2,255,250, 0, 0, 4,217, 5,143, 0, 3, 0, 6, 0, 0,
- 3, 33, 1, 35, 55, 1, 33, 6, 4,223,253,248,209,104, 1,113,253, 31, 5,143,250,113,204, 4, 23, 0, 0, 0, 0, 1, 0,129,
- 0, 0, 4, 80, 5,184, 0, 26, 0, 0, 1, 22, 23, 30, 1, 51, 33, 21, 33, 34, 38, 2, 16, 18, 54, 51, 33, 21, 33, 34, 7, 6,
- 7, 6, 7, 33, 21, 1, 48, 8, 34, 44,152, 90, 1,216,254, 40,136,232,134,134,232,136, 1,216,254, 40, 92, 74, 78, 42, 34, 8,
- 3, 30, 2,135,102, 95,130,150,170,196, 1, 81, 1,142, 1, 81,196,170, 75, 77,128, 95,102,170, 0, 3, 0,129,255, 79, 4, 80,
- 6,105, 0, 28, 0, 37, 0, 43, 0, 0, 37, 22, 51, 33, 21, 33, 34, 39, 7, 39, 55, 38, 39, 38, 16, 18, 54, 59, 1, 55, 23, 7,
- 51, 21, 35, 3, 33, 21, 33, 19, 35, 34, 7, 6, 7, 6, 7, 33, 7, 35, 22, 23, 22, 23, 2, 76, 21, 23, 1,216,254, 40, 48, 44,
- 58,163, 67,121, 69, 66,134,232,136,170, 54,163, 39,124,176,144, 1, 62,254,142, 18,118, 92, 74, 75, 45, 34, 8, 1, 46, 52,250,
- 8, 34, 36, 58,174, 4,170, 12,189, 49,221, 99,172,169, 1,142, 1, 81,196,177, 50,127,170,254, 35,170, 2,135, 75, 75,130, 95,
-102,170,102, 95,108, 70, 0, 0, 0, 1, 0,130, 0,165, 4, 79, 4, 93, 0, 23, 0, 66, 0,176, 8, 47,176, 9, 51,176, 10, 51,
-177, 5, 4,237,177, 6, 4,237,177, 7, 4,237,176, 1,176, 5, 16,222,176, 2, 50,177, 0, 4,237,177, 23, 4,237,176, 18,176,
- 0, 16,222,176, 19, 50,176, 20, 50,177, 15, 4,237,177, 16, 4,237,177, 17, 4,237, 1, 48, 49, 1, 21, 33, 22, 23, 22, 51, 33,
- 21, 33, 34, 46, 1, 16, 62, 1, 51, 33, 21, 33, 34, 7, 6, 7, 4, 78,252,237, 22, 61, 99,133, 1,216,254, 40,136,230,134,134,
-230,136, 1,216,254, 40,133, 99, 61, 22, 2,214,170, 73, 57, 91,170,127,220, 1, 2,220,127,170, 91, 57, 73, 0, 0, 1, 0,129,
- 0, 0, 4, 80, 5,184, 0, 26, 0, 0, 1, 38, 39, 46, 1, 35, 33, 53, 33, 50, 22, 18, 16, 2, 6, 35, 33, 53, 33, 50, 55, 54,
- 55, 54, 55, 33, 53, 3,160, 8, 32, 44,152, 90,254, 40, 1,216,136,232,134,134,232,136,254, 40, 1,216, 92, 74, 76, 44, 32, 8,
-252,226, 3, 49,102, 95,130,150,170,196,254,175,254,114,254,175,196,170, 75, 77,128, 95,102,170, 0, 3, 0,129,255, 79, 4, 80,
- 6,105, 0, 28, 0, 37, 0, 43, 0, 0, 1, 38, 35, 33, 53, 33, 50, 23, 55, 23, 7, 22, 23, 22, 16, 2, 6, 43, 1, 7, 39, 55,
- 35, 53, 51, 19, 33, 53, 33, 3, 51, 50, 55, 54, 55, 54, 55, 33, 55, 51, 38, 39, 38, 39, 2,133, 21, 22,254, 40, 1,216, 47, 45,
- 57,163, 67,121, 68, 68,134,232,136,171, 54,163, 39,123,174,146,254,192, 1,114, 18,120, 92, 74, 74, 46, 32, 8,254,211, 52,249,
- 8, 32, 37, 58, 5, 10, 4,170, 12,189, 49,221, 99,172,169,254,114,254,175,196,177, 50,127,170, 1,221,170,253,121, 75, 75,130,
- 95,102,170,102, 95,108, 70, 0, 0, 1, 0,130, 0,165, 4, 79, 4, 93, 0, 23, 0, 0, 19, 53, 33, 38, 39, 38, 35, 33, 53, 33,
- 50, 30, 1, 16, 14, 1, 35, 33, 53, 33, 50, 55, 54, 55,131, 3, 19, 22, 62, 98,134,254, 40, 1,216,136,230,134,134,230,136,254,
- 40, 1,216,134, 98, 62, 22, 2, 44,170, 73, 57, 91,170,127,220,254,254,220,127,170, 91, 57, 73, 0, 1, 0,152,254, 76, 4, 57,
- 5,238, 0, 7, 0, 31,185, 0, 5, 1, 15, 64, 11, 1, 3, 0, 8, 4,128, 2, 6,128, 0, 8, 16,212,236,212,236, 49, 0, 16,
-196, 50,212,236, 48, 19, 17, 33, 17, 35, 17, 33, 17,152, 3,161,155,253,149,254, 76, 7,162,248, 94, 7, 30,248,226, 0, 0, 0,
- 0, 1, 0,143,254, 76, 4, 61, 5,238, 0, 11, 0, 55,180, 11, 5, 12, 9, 0,191, 1, 15, 0, 2, 0, 9, 1, 15, 0, 7, 1,
- 14, 0, 2, 1, 16, 64, 11, 12, 11, 10, 8, 5, 0, 5, 1, 6, 3, 12, 16,212, 60,196, 23, 57, 49, 0, 16,228,244,236, 16,238,
- 17, 18, 57, 57, 48, 1, 33, 21, 33, 53, 9, 1, 53, 33, 21, 33, 1, 1, 76, 2,241,252, 82, 2, 37,253,219, 3,154,253, 35, 2,
- 10,254,213,137, 92, 3,151, 3, 80, 95,140,252,221, 0, 0, 0, 0, 1, 0, 88, 2, 45, 4,121, 2,215, 0, 3, 0, 17,182, 0,
-160, 2, 4, 1, 0, 4, 16,212,196, 49, 0, 16,212,236, 48, 19, 33, 21, 33, 88, 4, 33,251,223, 2,215,170, 0, 0, 2, 0, 88,
- 0, 0, 4,121, 4,147, 0, 3, 0, 15, 0, 0, 1, 33, 53, 33, 1, 17, 33, 53, 33, 17, 51, 17, 33, 21, 33, 17, 4,121,251,223,
- 4, 33,253,155,254, 68, 1,188,168, 1,189,254, 67, 3,233,170,251,109, 1, 73,170, 1, 76,254,180,170,254,183, 0, 1, 0,102,
-255, 66, 4, 55, 5,213, 0, 3, 0, 24, 64, 11, 2, 0,136, 4, 1, 30, 0, 2, 30, 3, 4, 16,212,236,212,236, 49, 0, 16,244,
-196, 48, 1, 51, 1, 35, 3,121,190,252,238,191, 5,213,249,109,255,255, 0,166, 0,175, 4, 43, 4, 85, 16, 7, 0, 13, 0, 0,
-254,101, 0, 0,255,255, 1, 43, 1, 71, 3,166, 3,194, 16, 7, 0,114, 0, 0,253,210, 0, 0,255,255, 1, 63, 1,154, 3,145,
- 3,234, 16, 6, 6,151, 0,201, 0, 1, 0, 59,255,217, 4,160, 6,160, 0, 10, 0, 47, 64, 26, 10, 3, 2, 1, 0, 5, 11, 5,
- 4, 8, 6, 11, 10, 9, 8, 7, 4, 3, 2, 7, 5, 0, 11, 5, 1, 11, 16,212,196, 18, 57, 17, 23, 57, 49, 0, 16,212,196,192,
-192, 18, 23, 57, 48, 19, 39, 37, 19, 1, 51, 21, 35, 1, 35, 3,100, 41, 1, 35,219, 1,211,148, 47,254, 6,127,246, 2,221,125,
- 98,253, 37, 5,191,131,249,188, 3, 57, 0, 0, 0, 2, 0,186, 0,250, 4, 23, 3,240, 0, 11, 0, 37, 0, 0, 1, 46, 1, 35,
- 34, 6, 21, 20, 22, 51, 50, 54, 1, 34, 38, 39, 14, 1, 35, 34, 38, 53, 52, 54, 51, 50, 22, 23, 62, 1, 51, 21, 34, 6, 7, 30,
- 1, 51, 2,170, 56, 92, 60, 72, 90, 82, 68, 68,106, 1,154, 80,128, 78, 66,132, 84,126,166,158,132, 94,136, 56, 46,148, 90, 56,
-104, 46, 56, 92, 58, 2,123,134, 99,133,106,109,129,118,254,253,100,131,124,107,214,165,173,206,115,129,117,127,140,117,124,136,
-100, 0, 0, 0, 0, 3, 0, 41, 0,250, 4,168, 3,240, 0, 11, 0, 23, 0, 47, 0, 55, 64, 28, 36, 24, 9, 21, 3,225, 39, 33,
-226, 15, 9,225, 45, 27,223, 48, 12, 0, 36, 24, 18, 6,100, 30, 18,100, 42, 48, 16,212,236,212,236, 17, 57, 57, 57, 57, 49, 0,
- 16,252, 60,236, 50,252, 60,236, 50, 17, 57, 57, 48, 1, 30, 1, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 46, 1, 35, 34, 6, 21,
- 20, 22, 51, 50, 54, 19, 62, 1, 51, 50, 22, 21, 20, 6, 35, 34, 38, 39, 14, 1, 35, 34, 38, 53, 52, 54, 51, 50, 22, 2,182, 57,
- 91, 61, 71, 91, 84, 70, 66,105,203, 56, 92, 61, 71, 91, 83, 68, 67,106,126, 47,147, 91,119,172,163,126, 83,128, 78, 65,132, 85,
-125,166,157,132, 94,136, 2,115,136,100,134,108,107,128,117,116,134, 99,133,106,109,129,118, 0,255,117,127,219,160,167,212,100,
-131,124,107,214,165,173,206,115, 0, 1, 0,125, 1, 31, 4, 84, 4,245, 0, 5, 0, 0, 1, 33, 17, 51, 17, 33, 4, 84,252, 42,
-170, 3, 44, 1, 31, 3,214,252,212, 0, 0, 0, 0, 1, 0,125, 1, 31, 4, 84, 4,245, 0, 5, 0, 0, 1, 33, 1, 51, 1, 33,
- 4, 84,252, 42, 3, 24,170,253,112, 2,164, 1, 31, 3,214,252,212, 0, 0, 0, 0, 1, 0,164, 0, 0, 4, 44, 4,162, 0, 6,
- 0, 0, 51, 1, 51, 1, 35, 9, 1,164, 1, 78,237, 1, 77,191,254,251,254,251, 4,162,251, 94, 3,172,252, 84, 0, 1, 0,164,
- 0, 0, 4, 44, 4,162, 0, 6, 0, 0, 19, 51, 9, 1, 51, 1, 35,164,191, 1, 5, 1, 5,191,254,179,237, 4,162,252, 84, 3,
-172,251, 94, 0, 0, 1, 0,164, 0, 0, 4, 44, 4,162, 0, 36, 0, 0, 19, 52, 55, 54, 55, 54, 55, 54, 51, 50, 22, 23, 22, 23,
- 22, 21, 17, 35, 17, 52, 39, 38, 39, 38, 39, 38, 35, 34, 7, 6, 7, 6, 7, 6, 21, 17, 35,164, 25, 26, 59, 57, 95, 85,105,106,
-170, 66, 57, 29, 24,172, 12, 10, 7, 29, 75, 71, 76, 86, 60, 83, 21, 13, 4, 12,173, 2, 68,230, 98,103, 58, 56, 32, 29, 58, 59,
- 51,108, 92,238,253,188, 2,162, 93, 65, 57, 14, 57, 32, 30, 30, 41, 48, 33, 38,112, 48,253, 96, 0, 1, 0,164, 0, 0, 4, 44,
- 4,162, 0, 36, 0, 0, 19, 17, 51, 17, 20, 23, 22, 23, 22, 23, 22, 51, 50, 55, 54, 55, 54, 55, 54, 53, 17, 51, 17, 20, 7, 6,
- 7, 14, 1, 35, 34, 39, 38, 39, 38, 39, 38,164,173, 12, 4, 13, 21, 83, 60, 86, 76, 71, 75, 29, 7, 10, 12,172, 24, 29, 57, 66,
-170,106,105, 85, 95, 57, 59, 26, 25, 2, 94, 2, 68,253, 96, 48,112, 38, 33, 48, 41, 30, 30, 32, 57, 14, 57, 65, 93, 2,162,253,
-188,238, 92,108, 51, 59, 58, 29, 32, 56, 58,103, 98, 0, 0, 0, 0, 1, 0,129,254,136, 4, 80, 6,249, 0, 23, 0, 26, 64, 5,
- 12, 13, 6, 1, 0, 47, 60,252, 60, 49, 0, 64, 6, 5,140, 10, 22,140, 17, 47,236, 47,236, 48, 5, 17, 52, 55, 54, 55, 54, 23,
- 7, 38, 7, 6, 21, 17, 20, 7, 6, 7, 6, 39, 55, 22, 55, 54, 2, 12, 94, 65,145,134,142,106, 92, 78,120, 93, 65,145,134,142,
-106, 92, 78,119, 68, 6, 34,106,100, 69, 7, 6,113,113, 67, 3, 5,146,249,222,106,100, 69, 7, 6,113,113, 67, 3, 5, 0, 0,
- 0, 2, 0, 63,254,124, 4,145, 7, 5, 0, 23, 0, 47, 0, 0, 5, 17, 52, 55, 54, 51, 50, 23, 7, 38, 7, 6, 21, 3, 20, 7,
- 6, 35, 34, 39, 55, 22, 55, 54, 37, 19, 52, 55, 54, 51, 50, 23, 7, 38, 7, 6, 21, 17, 20, 7, 6, 35, 34, 39, 55, 22, 55, 54,
- 2,228, 57, 67,109,106, 90, 67, 67, 58, 53, 1, 57, 67,109,106, 90, 67, 77, 48, 54,254, 80, 1, 57, 67,109,106, 90, 67, 67, 58,
- 54, 57, 67,109,106, 90, 67, 77, 48, 53, 68, 6, 34, 98, 92,105, 57,127, 38, 10, 9,155,249,222, 98, 92,105, 57,127, 43, 15, 17,
-147, 6, 34, 98, 92,105, 57,127, 38, 10, 9,155,249,222, 98, 92,105, 57,127, 43, 15, 17, 0, 0, 0, 3, 0, 53,254,150, 4,157,
- 6,235, 0, 23, 0, 47, 0, 71, 0, 0, 5, 17, 52, 55, 54, 55, 54, 23, 7, 38, 35, 34, 21, 17, 20, 7, 6, 7, 6, 39, 55, 22,
- 51, 50, 37, 17, 52, 55, 54, 55, 54, 23, 7, 38, 35, 34, 21, 17, 20, 7, 6, 7, 6, 39, 55, 22, 51, 50, 37, 17, 52, 55, 54, 55,
- 54, 23, 7, 38, 35, 34, 21, 17, 20, 7, 6, 7, 6, 39, 55, 22, 51, 50, 3, 82, 49, 45,113, 50, 74, 36, 34, 50, 27, 50, 45,113,
- 50, 74, 36, 34, 50, 28,254,188, 49, 45,113, 50, 74, 36, 34, 50, 27, 50, 45,113, 50, 74, 36, 34, 50, 28,254,186, 50, 45,113, 50,
- 74, 36, 34, 50, 28, 49, 45,113, 50, 74, 36, 34, 50, 27,127, 6, 93,109, 83, 74, 2, 1, 29,142, 14, 78,249,163,111, 81, 74, 2,
- 1, 29,142, 14, 78, 6, 93,109, 83, 74, 2, 1, 29,142, 14, 78,249,163,111, 81, 74, 2, 1, 29,142, 14, 78, 6, 93,109, 83, 74,
- 2, 1, 29,142, 14, 78,249,163,111, 81, 74, 2, 1, 29,142, 14,255,255, 0, 88, 2, 45, 4,121, 4,132, 16, 38, 7, 95, 0, 0,
- 16, 7, 7,208, 0, 2, 1, 36, 0, 3, 0, 74, 0,134, 4,135, 4,132, 0, 3, 0, 7, 0, 11, 0, 0, 1, 51, 17, 35, 3, 51,
- 17, 35, 1, 33, 21, 33, 3,139,252,252, 2,252,252,252,193, 2,234,253, 22, 4,132,254,207,254,100,254,207, 2, 81,170, 0, 0,
-255,255, 0, 87, 0,134, 4,125, 4,132, 16, 38, 7, 95, 0, 0, 16, 39, 7,208, 1,148, 1, 36, 16, 39, 7,208, 1,152,254, 87,
- 16, 39, 7,208,254,111, 1, 36, 16, 7, 7,208,254,110,254, 87,255,255, 0, 88, 0,134, 4,121, 4,132, 16, 38, 7,117, 0, 0,
- 16, 39, 7,208, 0, 2, 1, 36, 16, 7, 7,208, 0, 1,254, 87, 0, 1, 0, 88, 1,241, 4,121, 3, 18, 0, 27, 0, 0, 1, 21,
- 14, 1, 35, 34, 39, 38, 39, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 23, 22, 23, 22, 51, 50, 54, 4,121, 75,143, 79, 90,
-113, 22, 11, 77,103, 51, 79,141, 73, 78,146, 83, 53,100, 75, 10, 22,116, 93, 70,137, 3, 18,175, 59, 55, 51, 10, 4, 34, 24, 59,
- 64,174, 60, 55, 22, 32, 4, 11, 54, 60, 0, 0, 0, 1, 0, 88, 1,241, 4,121, 3, 18, 0, 27, 0, 0, 19, 30, 1, 51, 50, 55,
- 54, 55, 62, 1, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6, 7, 6, 7, 6, 35, 34, 38, 39, 88, 74,137, 70, 93,116, 22, 10, 75,100,
- 53, 83,146, 78, 73,141, 79, 51,103, 77, 11, 22,113, 90, 79,143, 75, 3, 18, 63, 60, 54, 11, 4, 32, 22, 55, 60,174, 64, 59, 24,
- 34, 4, 10, 51, 55, 59, 0, 0, 0, 1, 0, 88, 0,174, 4,121, 4, 71, 0, 31, 0, 0, 1, 38, 39, 38, 35, 34, 6, 7, 53, 62,
- 1, 51, 50, 23, 22, 23, 19, 23, 3, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 39, 3, 39, 2, 24, 29, 23, 52, 51, 79,141, 73, 78,
-146, 83, 54, 49, 45, 29, 78,136, 83, 88, 73, 70,137, 74, 75,143, 79, 81,100, 83,136, 2, 80, 11, 5, 12, 59, 64,174, 60, 55, 11,
- 11, 12, 1, 87, 31,254,145, 34, 60, 63,175, 59, 55, 41,254,148, 31, 0, 0, 0, 0, 2, 0, 88, 1, 49, 4,121, 3,162, 0, 3,
- 0, 29, 0, 0, 19, 33, 21, 33, 5, 21, 14, 1, 35, 34, 47, 1, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 23, 51, 23, 22, 51,
- 50, 54, 88, 4, 33,251,223, 4, 33, 75,143, 79, 90,113, 33, 83, 99, 49, 78,141, 74, 79,146, 82, 96,130, 1, 33,116, 93, 68,138,
- 3,162,170,164,176, 59, 56, 51, 15, 36, 23, 60, 65,174, 62, 55, 55, 15, 55, 61, 0, 2, 0, 88, 1, 96, 4,121, 3,195, 0, 3,
- 0, 31, 0, 0, 19, 33, 21, 33, 1, 21, 14, 1, 35, 34, 39, 38, 39, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 23, 22, 23,
- 22, 51, 50, 54, 88, 4, 33,251,223, 4, 33, 75,143, 79, 90,113, 22, 11, 77,103, 51, 79,141, 73, 78,146, 83, 53,100, 75, 10, 22,
-116, 93, 70,137, 2, 12,172, 2, 99,175, 59, 55, 51, 10, 4, 34, 24, 59, 64,174, 60, 55, 22, 32, 4, 11, 54, 60, 0, 1, 0, 88,
- 0, 98, 4,122, 4,213, 0, 39, 0, 0, 1, 3, 22, 55, 54, 55, 21, 6, 7, 6, 35, 34, 39, 7, 33, 21, 33, 7, 39, 55, 35, 53,
- 33, 55, 38, 39, 38, 7, 6, 7, 53, 54, 55, 54, 55, 54, 31, 2, 19, 3,199,167,102, 89, 85, 69, 53,107, 73, 81, 37, 92,110, 2,
- 42,253,120,152,114, 89,233, 1, 81,146, 77,111, 73, 70, 92, 60, 91, 69, 84, 70, 82,130, 13, 29,198, 4,113,254,224, 19, 36, 34,
- 66,178, 50, 40, 26, 30,178,171,254,100,154,171,231, 37, 5, 4, 31, 40, 57,172, 76, 19, 22, 2, 3, 53, 5, 16, 1, 88, 0, 0,
- 0, 3, 0, 88, 0,192, 4,121, 4,143, 0, 3, 0, 7, 0, 36, 0, 0, 19, 33, 21, 33, 21, 33, 21, 33, 1, 21, 14, 1, 35, 34,
- 39, 38, 39, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 23, 22, 23, 22, 23, 22, 51, 50, 54, 88, 4, 33,251,223, 4, 33,251,223,
- 4, 33, 75,143, 79, 90,113, 22, 11, 77,103, 51, 79,141, 73, 78,146, 83, 53, 50, 39, 86, 10, 22,116, 93, 70,137, 2,216,172,192,
-172, 3,207,175, 59, 55, 51, 10, 4, 34, 24, 59, 64,174, 60, 55, 11, 9, 34, 4, 11, 54, 60, 0, 0, 2, 0, 88, 0, 49, 4,121,
- 4,143, 0, 19, 0, 48, 0, 0, 37, 35, 53, 33, 55, 33, 53, 33, 55, 23, 7, 51, 21, 33, 7, 33, 21, 33, 7, 39, 1, 21, 14, 1,
- 35, 34, 39, 38, 39, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 23, 22, 23, 22, 23, 22, 51, 50, 54, 1, 81,249, 1,117,139,254,
- 0, 2,123,104,113, 44,249,254,139,139, 2, 0,253,132,103,113, 3, 84, 75,143, 79, 90,113, 22, 11, 77,103, 51, 79,141, 73, 78,
-146, 83, 53, 50, 39, 86, 10, 22,116, 93, 70,137,192,172,192,172,143, 82, 61,172,192,172,143, 82, 4, 12,175, 59, 55, 51, 10, 4,
- 34, 24, 59, 64,174, 60, 55, 11, 9, 34, 4, 11, 54, 60, 0, 0, 0, 1, 0, 88, 0, 0, 4,121, 5, 46, 0, 49, 0, 0, 37, 33,
- 53, 33, 55, 33, 53, 33, 55, 38, 39, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 23, 22, 31, 1, 55, 23, 7, 22, 51, 50, 54, 55,
- 21, 14, 1, 35, 34, 39, 7, 33, 21, 33, 7, 33, 21, 33, 7, 39, 1,104,254,240, 1, 77, 69,254,110, 1,208, 75, 9, 6, 77,103,
- 51, 79,141, 73, 78,146, 83, 53, 50, 51, 74, 58, 86,155, 81, 11, 12, 70,137, 74, 75,143, 79, 31, 33, 56, 1,161,254, 33, 69, 2,
- 36,253,159, 70,156,192,172,192,172,209, 4, 2, 34, 24, 59, 64,174, 60, 55, 11, 11, 32, 25,238, 56,225, 1, 60, 63,175, 59, 55,
- 6,156,172,192,172,192, 55, 0, 0, 2, 0, 88, 1, 49, 4,121, 3,195, 0, 27, 0, 55, 0, 75, 64, 38, 29, 39, 32, 49, 48, 43,
- 3, 53, 28, 1, 11, 4, 15, 25, 11,160, 18, 0, 25,160, 14, 4, 42, 32,160, 53, 39,160, 46, 28, 56, 49, 48, 28, 0, 42, 14, 56,
- 16,212, 60,196, 50, 57, 57, 49, 0, 16,212, 60,236,212,236, 50,220, 60,252,212, 60,236, 18, 57, 17, 18, 57, 17, 18, 23, 57, 17,
- 18, 57, 48, 1, 21, 14, 1, 35, 34, 39, 38, 39, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 23, 22, 23, 22, 51, 50, 54, 19,
- 21, 14, 1, 35, 34, 39, 38, 39, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 23, 51, 22, 23, 22, 51, 50, 54, 4,121, 75,143, 79,
- 90,113, 22, 11, 77,103, 51, 79,141, 73, 78,146, 83, 53,100, 75, 10, 22,116, 93, 70,137, 74, 75,143, 79, 90,113, 22, 11, 83, 99,
- 49, 78,141, 74, 79,146, 82, 96,130, 1, 11, 22,116, 93, 68,138, 3,195,175, 59, 55, 51, 10, 4, 34, 24, 59, 64,174, 60, 55, 22,
- 32, 4, 11, 54, 60,254,208,176, 59, 56, 51, 10, 5, 36, 23, 60, 65,174, 62, 55, 55, 5, 10, 55, 61, 0, 0, 0, 0, 1, 0, 88,
- 0, 48, 4,121, 4,195, 0, 56, 0, 0, 1, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 23, 55, 38, 39, 38, 35, 34, 6, 7, 53, 62,
- 1, 51, 50, 23, 22, 23, 19, 23, 3, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 39, 7, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 47,
- 1, 3, 39, 1,221, 48, 48, 78,141, 74, 79,146, 82, 58, 71, 54, 55, 39, 52, 51, 79,141, 73, 78,146, 83, 53, 50, 48, 78, 93,138,
- 97, 57, 49, 70,137, 74, 75,143, 79, 63, 74, 52,114, 91, 68,138, 75, 75,143, 79,100,103, 31, 98,138, 1,163, 11, 60, 65,174, 62,
- 55, 20,178, 22, 9, 12, 59, 64,174, 60, 55, 11, 11, 33, 1, 55, 41,254,189, 15, 60, 63,175, 59, 55, 25,175, 53, 61, 64,176, 59,
- 56, 51, 16,254,188, 41, 0, 0, 0, 3, 0, 88, 0,192, 4,121, 4,147, 0, 27, 0, 55, 0, 59, 0, 0, 1, 21, 14, 1, 35, 34,
- 39, 38, 39, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 23, 22, 23, 22, 51, 50, 54, 19, 21, 14, 1, 35, 34, 39, 38, 39, 46,
- 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 23, 51, 22, 23, 22, 51, 50, 54, 1, 33, 21, 33, 4,121, 75,143, 79, 90,113, 22, 11, 77,
-103, 51, 79,141, 73, 78,146, 83, 53,100, 75, 10, 22,116, 93, 70,137, 74, 75,143, 79, 90,113, 22, 11, 83, 99, 49, 78,141, 74, 79,
-146, 82, 96,130, 1, 11, 22,116, 93, 68,138,252, 42, 4, 33,251,223, 4,147,175, 59, 55, 51, 10, 4, 34, 24, 59, 64,174, 60, 55,
- 22, 32, 4, 11, 54, 60,254,208,176, 59, 56, 51, 10, 5, 36, 23, 60, 65,174, 62, 55, 55, 5, 10, 55, 61,254,136,172, 0, 0, 0,
- 0, 3, 0, 88, 0,149, 4,121, 4,147, 0, 27, 0, 55, 0, 83, 0, 0, 1, 21, 14, 1, 35, 34, 39, 38, 39, 46, 1, 35, 34, 6,
- 7, 53, 62, 1, 51, 50, 23, 51, 22, 23, 22, 51, 50, 54, 19, 21, 14, 1, 35, 34, 39, 38, 39, 46, 1, 35, 34, 6, 7, 53, 62, 1,
- 51, 50, 22, 23, 22, 23, 22, 51, 50, 54, 19, 21, 14, 1, 35, 34, 39, 38, 39, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 23, 51,
- 22, 23, 22, 51, 50, 54, 4,121, 75,143, 79, 90,113, 22, 11, 83, 99, 49, 78,141, 74, 79,146, 82, 96,130, 1, 11, 22,116, 93, 68,
-138, 75, 75,143, 79, 90,113, 22, 11, 77,103, 51, 79,141, 73, 78,146, 83, 53,100, 75, 10, 22,116, 93, 70,137, 74, 75,143, 79, 90,
-113, 22, 11, 83, 99, 49, 78,141, 74, 79,146, 82, 96,130, 1, 11, 22,116, 93, 68,138, 1,184,176, 59, 56, 51, 10, 5, 36, 23, 60,
- 65,174, 62, 55, 55, 5, 10, 55, 61, 3, 27,175, 59, 55, 51, 10, 4, 34, 24, 59, 64,174, 60, 55, 22, 32, 4, 11, 54, 60,254,208,
-176, 59, 56, 51, 10, 5, 36, 23, 60, 65,174, 62, 55, 55, 5, 10, 55, 61, 0, 0, 0, 3, 0, 88, 0,192, 4,121, 4,143, 0, 3,
- 0, 7, 0, 36, 0, 0, 1, 21, 33, 53, 1, 21, 33, 53, 17, 30, 1, 51, 50, 55, 54, 55, 54, 55, 54, 51, 50, 22, 23, 21, 46, 1,
- 35, 34, 6, 7, 6, 7, 6, 35, 34, 38, 39, 4,121,251,223, 4, 33,251,223, 74,137, 70, 93,116, 22, 10, 86, 39, 50, 53, 83,146,
- 78, 73,141, 79, 51,103, 77, 11, 22,113, 90, 79,143, 75, 2,216,172,172,254,148,172,172, 3, 35, 63, 60, 54, 11, 4, 34, 9, 11,
- 55, 60,174, 64, 59, 24, 34, 4, 10, 51, 55, 59, 0, 2, 0, 87, 0,221, 4,121, 4, 39, 0, 8, 0, 17, 0, 0, 0, 32, 37, 53,
- 4, 23, 50, 37, 21, 0, 32, 5, 21, 36, 39, 34, 5, 53, 3, 49,254,112,254,182, 1, 90,184,185, 1, 86,253, 40, 1,144, 1, 73,
-254,167,184,185,254,169, 2,217,156,178,156, 7,163,178,254,182,156,178,156, 7,163,178, 0, 0, 0, 2, 0, 88, 0, 68, 4,122,
- 4,190, 0, 29, 0, 59, 0, 0, 37, 22, 55, 54, 55, 54, 55, 33, 21, 35, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 35, 53,
- 33, 22, 23, 22, 23, 22, 19, 6, 7, 6, 7, 6, 7, 33, 53, 51, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 51, 21, 33, 38,
- 39, 38, 39, 38, 2,105, 49, 42, 43, 27, 21, 4, 1, 86,225, 9, 25, 27, 87, 74, 82, 78, 77, 82, 32, 25, 9,225, 1, 87, 4, 21,
- 26, 44, 33, 58, 58, 33, 44, 26, 21, 4,254,169,225, 6, 28, 22, 92, 72, 83, 76, 80, 77, 37, 23, 11,225,254,170, 3, 22, 27, 43,
- 42,223, 3, 37, 39, 72, 58, 94,168, 50, 58, 65, 60, 51, 51, 54, 71, 56, 52,168, 94, 58, 72, 39, 30, 3, 64, 4, 30, 39, 72, 63,
- 89,168, 32, 76, 61, 64, 51, 51, 47, 78, 48, 60,168, 94, 58, 72, 39, 37, 0, 0, 0, 2, 0, 88, 1, 96, 4,122, 4,190, 0, 29,
- 0, 33, 0, 0, 1, 6, 7, 6, 7, 6, 7, 33, 53, 51, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 51, 21, 33, 38, 39, 38,
- 39, 38, 1, 33, 21, 33, 2,105, 58, 33, 44, 26, 21, 4,254,169,225, 6, 28, 22, 92, 72, 83, 76, 80, 77, 37, 23, 11,225,254,170,
- 3, 22, 27, 43, 42,253,190, 4, 33,251,223, 4, 35, 4, 30, 39, 72, 63, 89,168, 32, 76, 61, 64, 51, 51, 47, 78, 48, 60,168, 94,
- 58, 72, 39, 37,253,228,170, 0,255,255, 0, 88, 1, 96, 4,121, 5, 25, 16, 38, 0, 32, 0, 0, 16, 7, 7,208, 0, 2, 1,185,
-255,255, 0, 88,255,233, 4,121, 5, 25, 16, 38, 0, 32, 0, 0, 16, 39, 7,208, 0, 2, 1,185, 16, 39, 7,208, 0, 2, 1,185,
- 16, 7, 7,208, 0, 1,253,186,255,255, 0, 88,255,236, 4,121, 5, 25, 16, 39, 7,208, 1,148,253,189, 16, 38, 0, 32, 0, 0,
- 16, 7, 7,208,254,111, 1,185,255,255, 0, 87,255,236, 4,122, 5, 25, 16, 39, 7,208, 1,148, 1,185, 16, 38, 0, 32, 0, 0,
- 16, 7, 7,208,254,110,253,189, 0, 4, 0, 74, 1, 46, 4,135, 3,213, 0, 3, 0, 7, 0, 11, 0, 15, 0, 0, 19, 51, 17, 35,
- 17, 51, 17, 35, 5, 21, 33, 53, 1, 21, 33, 53, 74,236,236,236,236, 4, 61,252,251, 3, 5,252,251, 2, 62,254,240, 2,167,254,
-240,185,172,172, 1,150,170,170, 0, 4, 0, 74, 1, 46, 4,135, 3,213, 0, 3, 0, 7, 0, 11, 0, 15, 0, 0, 1, 17, 35, 17,
- 19, 17, 35, 17, 1, 33, 21, 33, 17, 33, 21, 33, 4,135,236,236,236,252,175, 3, 5,252,251, 3, 5,252,251, 2, 62,254,240, 1,
- 16, 1,151,254,240, 1, 16,254, 55,172, 2, 66,170, 0, 0, 0, 0, 2, 0, 88, 1, 96, 4,121, 3,162, 0, 9, 0, 27, 0, 0,
- 1, 6, 21, 20, 23, 51, 54, 53, 38, 39, 23, 33, 21, 33, 53, 33, 38, 53, 52, 55, 33, 53, 33, 21, 33, 22, 21, 20, 2, 37, 52, 51,
-145, 52, 1, 52,141, 1, 56,251,223, 1, 62, 25, 27,254,192, 4, 33,254,201, 26, 2,250, 48, 73, 71, 48, 48, 71, 71, 50,240,170,
-170, 63, 56, 62, 59,168,168, 26, 95, 56, 0, 0, 0, 4, 0, 88, 1, 96, 4,121, 6, 21, 0, 3, 0, 7, 0, 17, 0, 32, 0, 0,
- 19, 33, 21, 33, 17, 33, 21, 33, 1, 34, 6, 21, 20, 22, 50, 54, 52, 38, 39, 50, 22, 23, 30, 1, 21, 20, 6, 35, 34, 38, 53, 52,
- 54, 88, 4, 33,251,223, 4, 33,251,223, 2, 17, 73,100,100,146,100,101, 72, 58,108, 39, 42, 42,169,122,123,164,168, 2, 12,172,
- 2, 66,170, 2,172, 98, 70, 69, 96, 96,139, 98,113, 43, 40, 40,100, 58,115,161,158,118,118,163, 0, 3, 0, 88, 1, 96, 4,121,
- 5, 75, 0, 3, 0, 7, 0, 17, 0, 0, 19, 33, 21, 33, 17, 33, 21, 33, 1, 50, 23, 21, 38, 39, 6, 7, 53, 54, 88, 4, 33,251,
-223, 4, 33,251,223, 2, 18,230,203,215,218,216,220,210, 2, 12,172, 2, 66,170, 2, 83,151,178,151, 9, 2,158,178,151, 0, 0,
- 0, 3, 0, 88, 1, 96, 4,121, 6, 68, 0, 3, 0, 7, 0, 14, 0, 0, 19, 33, 21, 33, 17, 33, 21, 33, 55, 19, 51, 19, 35, 11,
- 1, 88, 4, 33,251,223, 4, 33,251,223,214,234,162,233,143,171,166, 2, 12,172, 2, 66,170,242, 2, 90,253,166, 1,170,254, 86,
- 0, 3, 0, 88, 1, 96, 4,121, 6, 68, 0, 3, 0, 7, 0, 14, 0, 0, 19, 33, 21, 33, 17, 33, 21, 33, 19, 51, 27, 1, 51, 3,
- 35, 88, 4, 33,251,223, 4, 33,251,223,214,149,166,171,143,233,162, 2, 12,172, 2, 66,170, 3, 76,254, 86, 1,170,253,166, 0,
- 0, 3, 0, 88, 1, 96, 4,121, 6,165, 0, 3, 0, 7, 0, 17, 0, 0, 19, 33, 21, 33, 17, 33, 21, 33, 19, 33, 27, 1, 33, 7,
- 19, 39, 7, 19, 88, 4, 33,251,223, 4, 33,251,223,176, 1, 13, 84, 85, 1, 12,218, 85,220,219, 84, 2, 12,172, 2, 66,170, 2,
-173, 1, 0,255, 0,158,255, 0,159,159, 1, 0, 0, 4, 0, 88, 1, 96, 4,121, 6,176, 0, 3, 0, 7, 0, 10, 0, 14, 0, 0,
- 19, 33, 21, 33, 17, 33, 21, 33, 1, 3, 33, 3, 51, 1, 33, 88, 4, 33,251,223, 4, 33,251,223, 2, 16,150, 1, 45,201,101, 1,
- 4,253,147, 2, 12,172, 2, 66,170, 3, 21,254,122, 2, 40,253,105, 0, 0, 0, 0, 7, 0, 69, 1, 96, 4,140, 6, 29, 0, 3,
- 0, 7, 0, 27, 0, 48, 0, 55, 0, 71, 0, 79, 0, 0, 19, 33, 21, 33, 17, 33, 21, 33, 1, 21, 35, 34, 6, 29, 1, 51, 21, 35,
- 17, 35, 17, 35, 53, 51, 53, 52, 54, 51, 3, 21, 33, 30, 1, 51, 50, 54, 55, 21, 14, 1, 35, 34, 38, 53, 52, 54, 51, 50, 22, 7,
- 46, 1, 35, 34, 6, 7, 39, 53, 51, 17, 35, 53, 14, 1, 35, 34, 38, 52, 54, 51, 50, 22, 6, 20, 22, 50, 54, 52, 38, 34, 88, 4,
- 33,251,223, 4, 33,251,223, 4, 52, 64, 35, 28,109,109, 67, 63, 63, 63, 68,237,254,208, 4, 74, 66, 38, 71, 36, 36, 75, 38, 97,
-113,107, 91, 81, 95, 66, 1, 59, 49, 56, 66, 5,199, 67, 67, 21, 63, 45, 73, 92, 92, 73, 45, 63,204, 60,105, 60, 60,105, 2, 12,
-172, 2, 66,170, 3, 36, 55, 29, 37, 36, 51,254,160, 1, 96, 51, 28, 68, 61,254,170, 32, 68, 72, 19, 18, 62, 15, 16,112, 96, 99,
-116,105, 70, 54, 65, 63, 57,105,218,253,208, 61, 36, 35,116,190,117, 35,103,147, 83, 83,147, 83, 0, 3, 0, 88, 1, 96, 4,121,
- 6, 20, 0, 3, 0, 7, 0, 42, 0, 0, 19, 33, 21, 33, 17, 33, 21, 33, 1, 62, 1, 51, 50, 22, 21, 17, 35, 17, 52, 38, 35, 34,
- 6, 21, 17, 35, 17, 52, 38, 35, 34, 6, 21, 17, 35, 17, 51, 21, 62, 1, 51, 50, 22, 88, 4, 33,251,223, 4, 33,251,223, 2, 46,
- 34, 93, 63, 84, 92, 89, 56, 56, 69, 81, 89, 55, 58, 68, 81, 89, 89, 31, 85, 59, 59, 82, 2, 12,172, 2, 66,170, 2,165, 61, 58,
-120,111,254,181, 1, 72, 79, 77, 93, 81,254,202, 1, 72, 80, 76, 94, 80,254,202, 2, 37, 85, 50, 48, 61, 0, 0, 0, 4, 0, 88,
- 1, 96, 4,121, 6,218, 0, 3, 0, 7, 0, 11, 0, 44, 0, 0, 19, 33, 21, 33, 17, 33, 21, 33, 1, 51, 21, 35, 55, 35, 53, 52,
- 54, 63, 1, 62, 1, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 21, 20, 6, 15, 1, 14, 1, 7, 14, 1, 21, 88, 4, 33,
-251,223, 4, 33,251,223, 1,195,102,102, 99, 96, 28, 45, 45, 29, 25, 65, 54, 40, 89, 49, 47, 97, 51, 92,112, 36, 45, 44, 24, 19,
- 4, 3, 3, 2, 12,172, 2, 66,170, 1,105,127,200, 78, 50, 65, 43, 44, 27, 47, 24, 45, 55, 35, 33, 94, 28, 28, 97, 79, 38, 69,
- 43, 43, 23, 27, 13, 10, 30, 26, 0, 1, 0, 88, 0, 37, 4,121, 4,221, 0, 19, 0, 60, 64, 32, 13, 12, 10, 3, 2, 4, 0,160,
- 6, 12, 14, 10,160, 18, 6, 16, 8, 20, 18, 14, 13, 12, 8, 4, 3, 2, 8, 9, 5, 15, 0, 20, 16,212, 60,196, 50, 23, 57, 49,
- 0, 16,212, 60,196, 50,252, 60,196, 16,254, 60,196, 57, 17, 18, 57, 48, 19, 33, 19, 23, 7, 51, 21, 33, 7, 33, 21, 33, 3, 39,
- 55, 35, 53, 33, 55, 33, 88, 2,135,246,125,164,203,254,178,184, 2, 6,253,121,248,125,164,201, 1, 74,184,253,254, 3,162, 1,
- 59,102,213,170,236,172,254,197,104,211,172,236, 0, 3, 0, 88, 0,192, 4,121, 4, 66, 0, 3, 0, 7, 0, 11, 0, 0, 19, 33,
- 21, 33, 21, 33, 21, 33, 17, 33, 21, 33, 88, 4, 33,251,223, 4, 33,251,223, 4, 33,251,223, 2,216,172,192,172, 3,130,170, 0,
- 0, 1, 0, 88, 0, 10, 4,121, 4,250, 0, 27, 0, 0, 37, 35, 53, 33, 55, 33, 53, 33, 55, 33, 53, 33, 55, 23, 7, 51, 21, 33,
- 7, 33, 21, 33, 7, 33, 21, 33, 7, 39, 1, 71,239, 1, 61, 88,254,107, 1,229, 88,253,195, 2,139, 85,141, 55,235,254,200, 89,
- 1,145,254, 32, 90, 2, 58,253,119, 83,141,192,172,192,172,192,170,184, 65,119,170,192,172,192,172,182, 64, 0, 0, 4, 0, 88,
- 0, 0, 4,121, 4,238, 0, 3, 0, 7, 0, 11, 0, 15, 0, 0, 55, 33, 21, 33, 17, 33, 21, 33, 21, 33, 21, 33, 17, 33, 21, 33,
- 88, 4, 33,251,223, 4, 33,251,223, 4, 33,251,223, 4, 33,251,223,172,172, 3,132,172,192,172, 3,130,170, 0, 0, 2, 0, 88,
- 0, 0, 4,121, 4, 63, 0, 6, 0, 10, 0, 40, 64, 22, 6, 5, 3, 2, 0, 5, 1,229, 4,228, 7,160, 8, 6, 7, 4, 0, 40,
- 9, 2, 39, 11, 16,252, 60,236, 50, 50, 57, 49, 0, 47,236,244,236, 23, 57, 48, 1, 21, 1, 53, 1, 21, 5, 1, 21, 33, 53, 4,
-121,251,223, 4, 33,252,223, 3, 33,251,223, 1,182,182, 1, 76,168, 1, 75,184,231,254, 10,170,170, 0, 0, 0, 0, 2, 0, 88,
- 0, 0, 4,121, 4, 63, 0, 6, 0, 10, 0, 40, 64, 22, 5, 4, 2, 1, 0, 5, 6,229, 3,228, 7,160, 9, 1, 8, 4, 40, 7,
- 2, 0, 39, 11, 16,252, 60, 60,236, 50, 57, 49, 0, 47,236,244,236, 23, 57, 48, 19, 45, 1, 53, 1, 21, 1, 21, 33, 21, 33, 88,
- 3, 35,252,221, 4, 33,251,223, 4, 33,251,223, 1,182,234,231,184,254,181,168,254,180, 86,170, 0, 3, 0, 86,255, 84, 4,119,
- 4,159, 0, 3, 0, 10, 0, 14, 0, 0, 51, 33, 21, 33, 1, 21, 1, 53, 1, 21, 5, 1, 21, 33, 53, 86, 4, 33,251,223, 4, 33,
-251,223, 4, 33,252,223, 3, 33,251,223,172, 2,194,182, 1, 76,168, 1, 75,184,231,254, 10,170,170, 0, 0, 0, 0, 3, 0, 86,
-255, 84, 4,119, 4,159, 0, 3, 0, 10, 0, 14, 0, 0, 51, 33, 21, 33, 17, 45, 1, 53, 1, 21, 1, 5, 21, 33, 53, 86, 4, 33,
-251,223, 3, 33,252,223, 4, 33,251,223, 4, 33,251,223,172, 2,194,234,231,184,254,181,168,254,180, 86,170,170, 0, 2, 0, 86,
-254,181, 4,119, 4,159, 0, 19, 0, 26, 0, 0, 5, 35, 53, 33, 55, 33, 53, 33, 55, 23, 7, 51, 21, 33, 7, 33, 21, 33, 7, 39,
- 1, 21, 1, 53, 1, 21, 5, 1, 32,202, 1,112, 91,254, 53, 2,109,154,123, 42,201,254,149, 91, 1,198,253,148,153,121, 3,126,
-251,223, 4, 33,252,223,172,172, 96,170,161,117, 44,170, 96,172,159,118, 2,235,182, 1, 76,168, 1, 75,184,231, 0, 2, 0, 86,
-254,181, 4,119, 4,159, 0, 19, 0, 26, 0, 0, 5, 35, 53, 33, 55, 33, 53, 33, 55, 23, 7, 51, 21, 33, 7, 33, 21, 33, 7, 39,
- 3, 45, 1, 53, 1, 21, 1, 1, 32,202, 1,112, 91,254, 53, 2,109,154,123, 42,201,254,149, 91, 1,198,253,148,153,121,163, 3,
- 33,252,223, 4, 33,251,223,172,172, 96,170,161,117, 44,170, 96,172,159,118, 2,235,234,231,184,254,181,168,254,180, 0, 0, 0,
- 0, 1, 0, 87, 0, 0, 4,121, 5, 4, 0, 27, 0, 0, 1, 38, 37, 53, 4, 55, 19, 23, 3, 54, 55, 21, 6, 15, 1, 22, 5, 21,
- 36, 7, 3, 39, 19, 6, 7, 53, 54, 55, 2, 52,189,254,224, 1, 91,216,194,154,130,122,154,216,162, 98,190, 1, 31,254,165,216,
-193,154,129,124,152,219,160, 2,219, 18,136,178,170, 8, 1,127, 77,254,254, 41, 73,178,103, 35,194, 18,136,178,170, 8,254,129,
- 77, 1, 2, 40, 74,178,104, 35, 0, 2, 0, 88,255,227, 4,121, 5, 32, 0, 15, 0, 18, 0, 0, 1, 37, 53, 37, 19, 23, 7, 37,
- 21, 5, 3, 5, 21, 37, 3, 39, 19, 5, 23, 1,225,254,119, 2, 50,114,153, 75, 1, 47,254,146,100, 1,210,253,254,116,153,228,
-254,217,233, 1,148,155,166,222, 1,109, 48,241,120,182,138,254,187,174,183,203,254,139, 48, 2,221,111, 86, 0, 0, 2, 0, 88,
-255,227, 4,121, 5, 32, 0, 15, 0, 18, 0, 0, 1, 5, 21, 5, 3, 39, 55, 5, 53, 37, 19, 37, 53, 5, 19, 23, 3, 37, 39, 2,
-240, 1,137,253,206,114,153, 75,254,209, 1,110,100,254, 46, 2, 2,116,153,228, 1, 39,233, 3,111,155,166,222,254,147, 48,241,
-120,182,138, 1, 69,174,183,203, 1,117, 48,253, 35,111, 86, 0, 0, 2, 0, 88,255, 13, 4,121, 5, 8, 0, 2, 0, 26, 0, 0,
- 1, 5, 23, 3, 33, 53, 33, 19, 37, 53, 37, 19, 23, 7, 37, 21, 5, 7, 5, 21, 37, 7, 33, 21, 33, 7, 39, 2, 88,255, 0,211,
-199,254,244, 1, 67, 95,254, 94, 2, 63,115,161, 77, 1, 27,254,164, 78, 1,170,254, 35, 78, 2, 43,253,158, 80,162, 2,234, 74,
- 62,253,158,170, 1, 31,131,168,180, 1, 96, 53,237, 89,184,100,241,124,182,150,236,170,243, 53, 0, 2, 0, 88,255, 13, 4,121,
- 5, 8, 0, 23, 0, 26, 0, 0, 1, 5, 21, 5, 7, 33, 21, 33, 7, 39, 55, 35, 53, 51, 55, 5, 53, 37, 55, 37, 53, 5, 19, 23,
- 3, 55, 39, 2,224, 1,153,253,203, 78, 2,131,253, 69, 79,162, 62,179,235, 58,254,219, 1,102, 76,254, 78, 1,230,116,161,208,
-248,206, 3,116,128,168,177,241,170,243, 53,190,170,178, 92,182,104,236,125,184,152, 1, 97, 53,253,133, 72, 60, 0, 2, 0, 86,
-255,212, 4,119, 4, 63, 0, 28, 0, 35, 0, 0, 37, 21, 14, 1, 35, 34, 39, 38, 39, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50,
- 23, 22, 23, 22, 23, 22, 51, 50, 54, 19, 21, 1, 53, 1, 21, 5, 4,119, 75,143, 79, 90,113, 22, 11, 77,103, 51, 79,141, 73, 78,
-146, 83, 53, 50, 39, 86, 10, 22,116, 93, 70,137, 74,251,223, 4, 33,252,223,245,175, 59, 55, 51, 10, 4, 34, 24, 59, 64,174, 60,
- 55, 11, 9, 34, 4, 11, 54, 60, 1, 0,182, 1, 76,168, 1, 75,184,231, 0, 0, 0, 2, 0, 86,255,212, 4,119, 4, 63, 0, 33,
- 0, 40, 0, 0, 37, 21, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 35, 34, 7, 6, 7, 53, 54, 55, 54, 51, 50, 23, 22, 23, 22,
- 23, 22, 51, 50, 55, 54, 1, 45, 1, 53, 1, 21, 1, 4,119, 75, 72, 71, 79, 90,113, 22, 11, 77, 51, 52, 51, 79, 70, 71, 73, 78,
- 73, 73, 83, 53, 50, 39, 86, 10, 22,116, 93, 70, 68, 69,252, 41, 3, 33,252,223, 4, 33,251,223,245,175, 59, 27, 28, 51, 10, 4,
- 34, 12, 12, 29, 30, 64,174, 60, 28, 27, 11, 9, 34, 4, 11, 54, 30, 30, 1, 0,234,231,184,254,181,168,254,180, 0, 2, 0, 86,
-255, 13, 4,119, 5, 8, 0, 43, 0, 46, 0, 0, 37, 34, 6, 7, 53, 62, 1, 51, 50, 23, 55, 37, 53, 37, 19, 23, 7, 37, 21, 5,
- 7, 5, 21, 37, 7, 22, 23, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 39, 38, 39, 38, 39, 3, 39, 1, 5, 23, 1,125, 81,141, 73,
- 78,146, 83, 21, 21, 69,254, 94, 2, 65,115,161, 77, 1, 25,254,167, 80, 1,169,254, 35, 66, 24, 29,116, 93, 70,137, 74, 75,143,
- 79, 90,113, 22, 11, 32, 28, 95,162, 1, 52,254,253,213, 79, 59, 64,174, 60, 55, 2,214,131,168,181, 1, 95, 53,236, 88,184, 99,
-242,124,182,150,207, 8, 15, 54, 60, 63,175, 59, 55, 51, 10, 4, 14, 11,254,223, 53, 3,169, 75, 62, 0, 0, 0, 0, 2, 0, 86,
-255, 13, 4,119, 5, 8, 0, 2, 0, 50, 0, 0, 1, 55, 39, 55, 5, 21, 5, 7, 22, 23, 22, 23, 22, 51, 50, 55, 54, 55, 21, 6,
- 7, 6, 35, 34, 39, 38, 39, 38, 39, 3, 39, 19, 6, 7, 6, 7, 53, 54, 55, 54, 63, 1, 5, 53, 37, 55, 37, 53, 5, 19, 23, 2,
-131,244,202, 51, 1,151,253,205, 59, 24, 76, 10, 22,116, 93, 70, 68, 69, 74, 71, 76, 71, 79, 90,113, 22, 11, 80, 60,103,162, 85,
- 31, 29, 71, 73, 78, 73, 53, 58, 34,254,216, 1,103, 78,254, 75, 1,232,116,161, 2, 89, 71, 59,152,127,168,177,184, 5, 31, 4,
- 11, 54, 30, 30, 63,175, 56, 30, 28, 51, 10, 4, 36, 13,254,199, 53, 1, 3, 7, 12, 30, 64,174, 60, 28, 20, 5,106, 93,182,105,
-234,126,184,153, 1, 98, 53, 0, 0, 2, 0, 86,255, 74, 4,119, 4,211, 0, 6, 0, 13, 0, 0, 51, 45, 1, 53, 1, 21, 9, 1,
- 21, 1, 53, 1, 21, 5, 86, 3, 33,252,223, 4, 33,251,223, 4, 33,251,223, 4, 33,252,223,234,231,184,254,181,168,254,180, 3,
- 0,182, 1, 76,168, 1, 75,184,231, 0, 0, 0, 0, 2, 0, 86,255, 74, 4,119, 4,211, 0, 6, 0, 13, 0, 0, 33, 21, 1, 53,
- 1, 21, 5, 1, 45, 1, 53, 1, 21, 1, 4,119,251,223, 4, 33,252,223,255, 0, 3, 33,252,223, 4, 33,251,223,182, 1, 76,168,
- 1, 75,184,231, 1, 96,234,231,184,254,181,168,254,180, 0, 0, 0, 3, 0, 86,254,112, 4,119, 5,177, 0, 2, 0, 30, 0, 33,
- 0, 0, 1, 5, 31, 1, 5, 21, 37, 7, 5, 21, 5, 3, 39, 55, 7, 53, 37, 19, 37, 53, 5, 55, 37, 53, 37, 19, 23, 7, 55, 21,
- 5, 3, 37, 39, 2,132,254,210,252,163, 1,130,254, 78, 25, 1,203,253,155,109,162, 76,249, 1, 52, 80,254,124, 1,181, 24,254,
- 51, 2,104,110,162, 76,245,254,206,250, 1, 44,250, 3,139, 87, 74, 47,113,182,136, 78,144,168,193,254,155, 48,248, 78,182, 90,
- 1, 7,112,184,137, 79,145,168,193, 1,104, 50,249, 77,184, 88,252,207, 88, 72, 0, 3, 0, 86,254,112, 4,119, 5,177, 0, 27,
- 0, 30, 0, 33, 0, 0, 1, 23, 3, 5, 21, 5, 7, 37, 21, 5, 7, 5, 21, 37, 3, 39, 19, 37, 53, 37, 55, 5, 53, 37, 55, 37,
- 53, 5, 1, 55, 7, 1, 7, 55, 3, 44,162,126, 1, 39,254, 98, 29, 1,187,254, 10, 48, 2, 38,253,170,124,162,125,254,214, 1,
-162, 29,254, 65, 1,249, 48,253,215, 2, 89,254,255, 17,105, 1,204, 17,102, 5,177, 50,254,101, 92,168,130, 96,139,184,145,159,
-161,182,188,254,106, 48, 1,152, 94,168,131, 95,140,182,147,158,160,184,188,252,185, 56, 30, 2, 99, 55, 30, 0, 0, 1, 0, 86,
-255,211, 4,119, 5, 47, 0, 10, 0, 0, 1, 0, 5, 4, 1, 21, 0, 37, 53, 36, 1, 4,119,254,185,254, 92, 1,172, 1, 63,254,
-185,253, 38, 2,222, 1, 67, 4, 64,254,152, 87, 97,254,162,239, 1,197,150,166,148, 1,199, 0, 0, 1, 0, 88,255,211, 4,121,
- 5, 47, 0, 10, 0, 0, 19, 53, 0, 5, 21, 4, 1, 53, 0, 37, 36, 88, 1, 67, 2,222,253, 38,254,185, 1, 63, 1,172,254, 92,
- 4, 64,239,254, 57,148,166,150,254, 59,239, 1, 94, 97, 87, 0, 0, 2, 0, 86,255, 4, 4,119, 5,177, 0, 9, 0, 24, 0, 0,
- 37, 38, 37, 53, 4, 23, 4, 23, 21, 38, 19, 0, 5, 4, 1, 21, 38, 37, 38, 37, 53, 36, 55, 36, 55, 2,164,224,254,146, 1,112,
-222, 1, 8,203,177,177,254,221,254,108, 1,148, 1, 35,183,254,228,247,254,169, 1, 97,237, 1, 28,183,155,154, 54,200, 56,131,
-156,220,252,207, 4,239,254,208, 79, 93,254,222,239,201,151,130, 57,166, 61,125,150,203, 0, 0, 0, 2, 0, 86,255, 4, 4,119,
- 5,177, 0, 9, 0, 24, 0, 0, 37, 4, 7, 53, 54, 37, 54, 37, 21, 4, 1, 53, 22, 5, 22, 5, 21, 4, 7, 4, 7, 53, 0, 37,
- 36, 2, 41,254,222,177,203, 1, 8,222, 1,112,254,146,253, 77,183, 1, 28,237, 1, 97,254,169,247,254,228,183, 1, 35, 1,148,
-254,108,155,200,207,252,220,156,131, 56,200, 54, 3,141,239,203,150,125, 61,166, 57,130,151,201,239, 1, 34, 93, 79, 0, 0, 0,
- 0, 2, 0, 86,255,142, 4,119, 5,177, 0, 27, 0, 42, 0, 0, 37, 21, 14, 1, 35, 34, 39, 38, 39, 46, 1, 35, 34, 6, 7, 53,
- 62, 1, 51, 50, 22, 23, 22, 23, 22, 51, 50, 54, 19, 0, 5, 4, 1, 21, 38, 37, 38, 37, 53, 36, 55, 36, 55, 4,119, 75,143, 79,
- 90,113, 22, 11, 77,103, 51, 79,141, 73, 78,146, 83, 53,100, 75, 10, 22,116, 93, 70,137, 74,254,221,254,108, 1,148, 1, 35,183,
-254,228,247,254,169, 1, 97,237, 1, 28,183,175,175, 59, 55, 51, 10, 4, 34, 24, 59, 64,174, 60, 55, 22, 32, 4, 11, 54, 60, 4,
- 82,254,208, 79, 93,254,222,239,201,151,130, 57,166, 61,125,150,203, 0, 0, 0, 0, 2, 0, 86,255,142, 4,119, 5,177, 0, 27,
- 0, 42, 0, 0, 37, 21, 14, 1, 35, 34, 39, 38, 39, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 23, 22, 23, 22, 51, 50, 54,
- 1, 53, 22, 5, 22, 5, 21, 4, 7, 4, 7, 53, 0, 37, 36, 4,119, 75,143, 79, 90,113, 22, 11, 77,103, 51, 79,141, 73, 78,146,
- 83, 53,100, 75, 10, 22,116, 93, 70,137,252, 41,183, 1, 28,237, 1, 97,254,169,247,254,231,186, 1, 35, 1,148,254,108,175,175,
- 59, 55, 51, 10, 4, 34, 24, 59, 64,174, 60, 55, 22, 32, 4, 11, 54, 60, 4, 82,239,203,150,125, 61,166, 57,130,148,204,239, 1,
- 34, 93, 79, 0, 0, 2, 0, 86,255, 91, 4,119, 5,167, 0, 21, 0, 26, 0, 0, 1, 23, 3, 54, 55, 21, 6, 7, 3, 22, 23, 21,
- 38, 37, 3, 39, 19, 38, 39, 53, 36, 55, 3, 55, 6, 7, 22, 3, 52,163,104,155,109,160,181, 85,233,193,178,254,214,160,162,166,
-192,233, 1, 71,246, 99, 32, 95,101, 84, 5,167, 50,254,170,119,153,239,176,110,254,235,119,212,239,247,157,253,244, 50, 2, 34,
- 79, 48,166, 66,127,254,188,106, 37, 21, 19, 0, 0, 2, 0, 86,255, 91, 4,119, 5,167, 0, 21, 0, 26, 0, 0, 5, 39, 19, 6,
- 7, 53, 54, 55, 19, 38, 39, 53, 22, 5, 19, 23, 3, 22, 23, 21, 4, 7, 19, 7, 54, 55, 38, 1,153,163,104,155,109,160,181, 85,
-233,193,178, 1, 42,160,162,166,192,233,254,185,246, 99, 32, 95,101, 84,165, 50, 1, 86,119,153,239,176,110, 1, 21,119,212,239,
-247,157, 2, 12, 50,253,222, 79, 48,166, 66,127, 1, 68,106, 37, 21, 19, 0, 0, 0, 1, 0, 88, 0,163, 4,121, 4, 95, 0, 20,
- 0, 0, 37, 33, 34, 39, 38, 53, 52, 55, 54, 51, 33, 21, 33, 34, 6, 21, 20, 23, 22, 51, 33, 4,121,253,189,201,138,139,139,138,
-200, 2, 68,253,188,137,190, 95, 96,136, 2, 68,163,139,139,200,198,141,139,150,192,136,138, 94, 96, 0, 0, 0, 0, 1, 0, 88,
- 0,163, 4,121, 4, 95, 0, 20, 0, 0, 55, 53, 33, 50, 55, 54, 53, 52, 38, 35, 33, 53, 33, 50, 23, 22, 21, 20, 7, 6, 35, 88,
- 2, 68,136, 96, 95,190,137,253,188, 2, 68,200,138,139,139,138,201,163,150, 96, 94,138,136,192,150,139,141,198,200,139,139, 0,
- 0, 2, 0, 88,255,196, 4,121, 5, 62, 0, 8, 0, 32, 0, 0, 1, 35, 34, 6, 21, 20, 23, 22, 23, 7, 38, 39, 38, 53, 52, 55,
- 54, 59, 1, 55, 23, 7, 33, 21, 33, 3, 33, 21, 33, 34, 35, 7, 39, 2,127, 74,137,190, 95, 43, 51, 48, 84, 68,139,139,138,200,
-126, 75,161, 57, 1, 19,254,186,221, 2, 35,253,189, 10, 10, 75,162, 3,201,192,136,138, 94, 43, 24,144, 35, 69,139,200,198,141,
-139,223, 53,170,150,253,112,150,223, 53, 0, 0, 0, 2, 0, 88,255,196, 4,121, 5, 62, 0, 8, 0, 32, 0, 0, 1, 51, 50, 54,
- 53, 52, 39, 38, 39, 55, 22, 23, 22, 21, 20, 7, 6, 43, 1, 7, 39, 55, 33, 53, 33, 19, 33, 53, 33, 50, 51, 55, 23, 2, 82, 74,
-137,190, 95, 43, 51, 48, 84, 68,139,139,138,200,126, 75,161, 57,254,237, 1, 70,221,253,221, 2, 67, 10, 10, 75,162, 1, 57,192,
-136,138, 94, 43, 24,144, 35, 69,139,200,198,141,139,223, 53,170,150, 2,144,150,223, 53, 0, 0, 0, 2, 0, 88, 0, 0, 4,121,
- 5, 0, 0, 3, 0, 24, 0, 0, 37, 21, 33, 53, 37, 33, 34, 39, 38, 53, 52, 55, 54, 51, 33, 21, 33, 34, 6, 21, 20, 23, 22, 51,
- 33, 4,121,251,223, 4, 33,253,189,201,138,139,139,138,200, 2, 68,253,188,137,190, 95, 96,136, 2, 68,170,170,170,154,139,139,
-200,198,141,139,150,192,136,138, 94, 96, 0, 0, 0, 2, 0, 88, 0, 0, 4,121, 5, 0, 0, 3, 0, 24, 0, 0, 37, 21, 33, 61,
- 2, 33, 50, 55, 54, 53, 52, 38, 35, 33, 53, 33, 50, 23, 22, 21, 20, 7, 6, 35, 4,121,251,223, 2, 68,136, 96, 95,190,137,253,
-188, 2, 68,200,138,139,139,138,201,170,170,170,154,150, 96, 94,138,136,192,150,139,141,198,200,139,139, 0, 0, 0, 2, 0, 88,
-255, 44, 4,121, 5,214, 0, 29, 0, 38, 0, 0, 37, 33, 21, 33, 7, 39, 55, 35, 53, 33, 55, 38, 39, 38, 53, 52, 55, 54, 59, 1,
- 55, 23, 7, 51, 21, 33, 3, 33, 21, 33, 19, 35, 34, 6, 21, 20, 23, 22, 23, 2, 36, 2, 85,253,114, 71,159, 54,227, 1, 27, 58,
-113, 89,139,139,138,200,178, 71,158, 53,226,254,236,220, 1,240,253,221, 94,127,137,190, 95, 61, 82,170,170,212, 53,159,170,172,
- 32, 89,139,200,198,141,139,214, 53,161,150,253,112,150, 3, 38,192,136,136, 96, 61, 23, 0, 0, 0, 2, 0, 88,255, 44, 4,121,
- 5,214, 0, 33, 0, 43, 0, 0, 1, 22, 23, 22, 21, 20, 7, 6, 43, 1, 7, 33, 21, 33, 7, 39, 55, 35, 53, 33, 55, 33, 53, 33,
- 19, 38, 35, 33, 53, 33, 50, 23, 55, 23, 1, 51, 50, 55, 54, 53, 52, 39, 38, 39, 3,131, 57, 50,139,139,138,201, 68, 52, 2, 86,
-253,113, 70,159, 53,226, 1, 27, 51,254,178, 1,129,219, 12, 12,253,188, 2, 68, 38, 35, 73,158,254,188, 20,136, 96, 95, 95, 24,
- 26, 4,199, 32, 50,141,198,200,139,139,154,170,212, 53,159,170,154,150, 2,143, 1,150, 5,219, 53,252, 57, 96, 94,138,136, 96,
- 24, 18, 0, 0, 0, 1, 0, 88,255, 48, 4,121, 5, 0, 0, 33, 0, 0, 37, 21, 33, 7, 39, 55, 33, 53, 33, 55, 35, 34, 39, 38,
- 53, 52, 55, 54, 51, 33, 21, 33, 34, 6, 21, 20, 23, 22, 51, 33, 21, 33, 23, 7, 4,121,254, 24,167,132, 82,254,160, 1,232,124,
-134,201,138,139,139,138,200, 2, 68,253,188,137,190, 95, 97,135, 2, 68,254,177, 65, 81,170,170,208,106,102,170,154,139,140,199,
-198,141,139,150,192,136,138, 94, 96,150, 53,101, 0, 1, 0, 88,255, 48, 4,121, 5, 0, 0, 34, 0, 0, 37, 21, 33, 7, 39, 55,
- 33, 53, 33, 55, 6, 35, 33, 53, 33, 50, 55, 54, 53, 52, 38, 35, 33, 53, 33, 50, 23, 22, 21, 20, 7, 6, 7, 23, 7, 4,121,254,
- 24,167,132, 82,254,160, 1,232,124, 16, 17,253,189, 2, 68,135, 97, 95,190,137,253,188, 2, 68,200,138,139,139, 93,122, 84, 81,
-170,170,208,106,102,170,155, 1,150, 96, 94,138,136,192,150,139,141,198,199,140, 94, 30, 68,101, 0, 1, 0, 88, 0,119, 4,121,
- 4,139, 0, 7, 0, 49, 0,176, 6, 47,176, 7, 51,177, 4, 4,237,177, 5, 4,237,176, 2,176, 4, 16,222,176, 3, 50,177, 0,
- 4,237,177, 1, 4,237, 1,176, 0, 47,176, 7, 51,177, 3, 4,237,177, 4, 4,237, 48, 49, 19, 33, 21, 33, 17, 33, 21, 33, 88,
- 4, 33,252,137, 3,119,251,223, 4,139,170,253, 64,170, 0, 0, 0, 1, 0, 88, 0,119, 4,121, 4,139, 0, 7, 0, 49, 0,176,
- 1, 47,176, 2, 51,177, 3, 4,237,177, 4, 4,237,176, 5,176, 3, 16,222,176, 6, 50,177, 0, 4,237,177, 7, 4,237, 1,176,
- 4, 47,176, 5, 51,177, 0, 4,237,177, 1, 4,237, 48, 49, 1, 17, 33, 53, 33, 17, 33, 53, 4,121,251,223, 3,119,252,137, 4,
-139,251,236,170, 2,192,170, 0, 0, 2, 0, 88, 0, 14, 4,121, 4,244, 0, 3, 0, 11, 0, 72, 0,176, 2, 47,176, 3, 51,177,
- 0, 4,237,177, 1, 4,237,176, 10,176, 0, 16,222,176, 11, 50,177, 8, 4,237,177, 9, 4,237,176, 6,176, 8, 16,222,176, 7,
- 50,177, 4, 4,237,177, 5, 4,237, 1,176, 0, 47,176, 3, 51,176, 4, 51,176, 11, 51,177, 7, 4,237,177, 8, 4,237, 48, 49,
- 55, 33, 21, 33, 17, 33, 21, 33, 17, 33, 21, 33, 88, 4, 33,251,223, 4, 33,252,137, 3,119,251,223,184,170, 4,230,170,253,152,
-170, 0, 0, 0, 0, 2, 0, 88, 0, 14, 4,121, 4,244, 0, 3, 0, 11, 0, 74, 0,176, 1, 47,176, 2, 51,177, 0, 4,237,177,
- 3, 4,237,176, 5,176, 0, 16,222,176, 6, 50,177, 7, 4,237,177, 8, 4,237,176, 9,176, 7, 16,222,176, 10, 50,177, 4, 4,
-237,177, 11, 4,237, 1,176, 8, 47,176, 9, 51,177, 0, 4,237,177, 1, 4,237,177, 4, 4,237,177, 5, 4,237, 48, 49, 37, 21,
- 33, 53, 1, 17, 33, 53, 33, 17, 33, 53, 4,121,251,223, 4, 33,251,223, 3,119,252,137,184,170,170, 4, 60,252, 68,170, 2,104,
-170, 0, 0, 0, 0, 3, 0, 79, 0,105, 4,130, 4,158, 0, 25, 0, 51, 0, 63, 0, 0, 0, 50, 22, 23, 22, 23, 22, 21, 20, 7,
- 6, 7, 14, 1, 34, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 4, 34, 7, 6, 7, 14, 1, 21, 20, 22, 23, 22, 23, 22, 50, 55,
- 54, 55, 62, 1, 53, 52, 38, 39, 38, 39, 7, 51, 17, 33, 21, 33, 17, 35, 17, 33, 53, 33, 1,250,221,190, 79, 79, 39, 39, 39, 39,
- 79, 79,190,221,190, 79, 79, 39, 39, 39, 39, 79, 79, 1,126,163, 71, 69, 58, 59, 57, 57, 59, 58, 69, 71,163, 70, 70, 58, 59, 57,
- 57, 59, 58, 70,222,140, 1, 20,254,236,140,254,237, 1, 19, 4,158, 80, 79, 79, 95, 95,112,109, 95, 95, 79, 78, 80, 80, 78, 79,
- 95, 95,109,112, 95, 95, 79, 79, 61, 30, 30, 57, 59,140, 83, 80,140, 59, 57, 30, 30, 30, 30, 57, 59,140, 80, 83,140, 59, 57, 30,
- 22,254,235,140,254,238, 1, 18,140, 0, 0, 0, 0, 3, 0, 79, 0,105, 4,130, 4,158, 0, 25, 0, 51, 0, 55, 0, 0, 0, 50,
- 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 14, 1, 34, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 4, 34, 7, 6, 7, 14, 1, 21,
- 20, 22, 23, 22, 23, 22, 50, 55, 54, 55, 62, 1, 53, 52, 38, 39, 38, 39, 19, 21, 33, 53, 1,250,221,190, 79, 79, 39, 39, 39, 39,
- 79, 79,190,221,190, 79, 79, 39, 39, 39, 39, 79, 79, 1,126,163, 71, 69, 58, 59, 57, 57, 59, 58, 69, 71,163, 70, 70, 58, 59, 57,
- 57, 59, 58, 70,194,253, 77, 4,158, 80, 79, 79, 95, 95,112,109, 95, 95, 79, 78, 80, 80, 78, 79, 95, 95,109,112, 95, 95, 79, 79,
- 61, 30, 30, 57, 59,140, 83, 80,140, 59, 57, 30, 30, 30, 30, 57, 59,140, 80, 83,140, 59, 57, 30,254,213,140,140, 0, 3, 0, 79,
- 0,105, 4,130, 4,158, 0, 25, 0, 51, 0, 63, 0, 0, 0, 50, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 14, 1, 34, 38, 39, 38,
- 39, 38, 53, 52, 55, 54, 55, 54, 4, 34, 7, 6, 7, 14, 1, 21, 20, 22, 23, 22, 23, 22, 50, 55, 54, 55, 62, 1, 53, 52, 38, 39,
- 38, 39, 5, 55, 23, 55, 23, 7, 23, 7, 39, 7, 39, 55, 1,250,221,190, 79, 79, 39, 39, 39, 39, 79, 79,190,221,190, 79, 79, 39,
- 39, 39, 39, 79, 79, 1,126,163, 71, 69, 58, 59, 57, 57, 59, 58, 69, 71,163, 70, 70, 58, 59, 57, 57, 59, 58, 70,254, 66, 99,196,
-195, 99,195,194, 99,194,194, 99,194, 4,158, 80, 79, 79, 95, 95,112,109, 95, 95, 79, 78, 80, 80, 78, 79, 95, 95,109,112, 95, 95,
- 79, 79, 61, 30, 30, 57, 59,140, 83, 80,140, 59, 57, 30, 30, 30, 30, 57, 59,140, 80, 83,140, 59, 57, 30,173, 99,196,195, 99,195,
-194, 99,194,194, 99,194, 0, 0, 0, 3, 0, 79, 0,105, 4,130, 4,158, 0, 25, 0, 51, 0, 55, 0, 0, 0, 50, 22, 23, 22, 23,
- 22, 21, 20, 7, 6, 7, 14, 1, 34, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 4, 34, 7, 6, 7, 14, 1, 21, 20, 22, 23, 22,
- 23, 22, 50, 55, 54, 55, 62, 1, 53, 52, 38, 39, 38, 39, 31, 1, 1, 39, 1,250,221,190, 79, 79, 39, 39, 39, 39, 79, 79,190,221,
-190, 79, 79, 39, 39, 39, 39, 79, 79, 1,126,163, 71, 69, 58, 59, 57, 57, 59, 58, 69, 71,163, 70, 70, 58, 59, 57, 57, 59, 58, 70,
- 44, 99,254, 24, 99, 4,158, 80, 79, 79, 95, 95,112,109, 95, 95, 79, 78, 80, 80, 78, 79, 95, 95,109,112, 95, 95, 79, 79, 61, 30,
- 30, 57, 59,140, 83, 80,140, 59, 57, 30, 30, 30, 30, 57, 59,140, 80, 83,140, 59, 57, 30, 75, 99,254, 24, 99, 0, 0, 3, 0, 79,
- 0,105, 4,130, 4,158, 0, 3, 0, 29, 0, 55, 0, 0, 1, 51, 17, 35, 18, 50, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 14, 1,
- 34, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 4, 34, 7, 6, 7, 14, 1, 21, 20, 22, 23, 22, 23, 22, 50, 55, 54, 55, 62, 1,
- 53, 52, 38, 39, 38, 39, 1,233,252,252, 17,221,190, 79, 79, 39, 39, 39, 39, 79, 79,190,221,190, 79, 79, 39, 39, 39, 39, 79, 79,
- 1,126,163, 71, 69, 58, 59, 57, 57, 59, 58, 69, 71,163, 70, 70, 58, 59, 57, 57, 59, 58, 70, 3, 16,254,207, 2,191, 80, 79, 79,
- 95, 95,112,109, 95, 95, 79, 78, 80, 80, 78, 79, 95, 95,109,112, 95, 95, 79, 79, 61, 30, 30, 57, 59,140, 83, 80,140, 59, 57, 30,
- 30, 30, 30, 57, 59,140, 80, 83,140, 59, 57, 30, 0, 4, 0, 79, 0,105, 4,130, 4,158, 0, 14, 0, 24, 0, 50, 0, 76, 0, 0,
- 1, 50, 22, 23, 30, 1, 21, 20, 6, 35, 34, 38, 53, 52, 54, 22, 34, 6, 20, 22, 51, 50, 54, 53, 52, 2, 50, 22, 23, 22, 23, 22,
- 21, 20, 7, 6, 7, 14, 1, 34, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 4, 34, 7, 6, 7, 14, 1, 21, 20, 22, 23, 22, 23,
- 22, 50, 55, 54, 55, 62, 1, 53, 52, 38, 39, 38, 39, 2,104, 55, 98, 37, 38, 39,156,113,113,151,154,167,110, 78, 76, 56, 56, 79,
-244,221,190, 79, 79, 39, 39, 39, 39, 79, 79,190,221,190, 79, 79, 39, 39, 39, 39, 79, 79, 1,126,163, 71, 69, 58, 59, 57, 57, 59,
- 58, 69, 71,163, 70, 70, 58, 59, 57, 57, 59, 58, 70, 3,143, 41, 39, 37, 96, 56,110,154,151,113,113,156,135, 77,112, 76, 77, 55,
- 55, 1,228, 80, 79, 79, 95, 95,112,109, 95, 95, 79, 78, 80, 80, 78, 79, 95, 95,109,112, 95, 95, 79, 79, 61, 30, 30, 57, 59,140,
- 83, 80,140, 59, 57, 30, 30, 30, 30, 57, 59,140, 80, 83,140, 59, 57, 30, 0, 0, 0, 7, 0, 79, 0,105, 4,130, 4,158, 0, 25,
- 0, 33, 0, 39, 0, 47, 0, 55, 0, 61, 0, 69, 0, 0, 0, 50, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 14, 1, 34, 38, 39, 38,
- 39, 38, 53, 52, 55, 54, 55, 54, 5, 17, 37, 38, 39, 38, 39, 38, 13, 2, 54, 53, 52, 3, 39, 17, 54, 55, 54, 55, 54, 5, 17, 7,
- 22, 23, 22, 23, 22, 45, 2, 6, 21, 20, 19, 5, 17, 6, 7, 6, 7, 6, 1,250,221,190, 79, 79, 39, 39, 39, 39, 79, 79,190,221,
-190, 79, 79, 39, 39, 39, 39, 79, 79, 1,102, 0,255, 15, 18, 58, 70, 45, 1, 6,254,236, 1, 19, 28, 84,254, 49, 45, 70, 58, 17,
-254,158,254, 15, 17, 58, 69, 46,254,251, 1, 19,254,236, 27, 83, 0,255, 49, 46, 69, 58, 18, 4,158, 80, 79, 79, 95, 95,112,109,
- 95, 95, 79, 78, 80, 80, 78, 79, 95, 95,109,112, 95, 95, 79, 79, 65,254,207,154, 19, 19, 57, 30, 19,238,150,150, 70, 80, 81,254,
-188,153,254,210, 7, 19, 30, 57, 18,131, 1, 46,153, 18, 18, 57, 30, 19,235,150,150, 69, 81, 80, 1, 68,154, 1, 49, 7, 19, 30,
- 57, 19, 0, 0, 0, 4, 0, 79, 0,105, 4,130, 4,158, 0, 3, 0, 7, 0, 33, 0, 59, 0, 0, 1, 33, 21, 33, 17, 33, 21, 33,
- 18, 50, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 14, 1, 34, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 4, 34, 7, 6, 7, 14,
- 1, 21, 20, 22, 23, 22, 23, 22, 50, 55, 54, 55, 62, 1, 53, 52, 38, 39, 38, 39, 1, 43, 2,123,253,133, 2,123,253,133,207,221,
-190, 79, 79, 39, 39, 39, 39, 79, 79,190,221,190, 79, 79, 39, 39, 39, 39, 79, 79, 1,126,163, 71, 69, 58, 59, 57, 57, 59, 58, 69,
- 71,163, 70, 70, 58, 59, 57, 57, 59, 58, 70, 2, 59,103, 1, 90,102, 1,214, 80, 79, 79, 95, 95,112,109, 95, 95, 79, 78, 80, 80,
- 78, 79, 95, 95,109,112, 95, 95, 79, 79, 61, 30, 30, 57, 59,140, 83, 80,140, 59, 57, 30, 30, 30, 30, 57, 59,140, 80, 83,140, 59,
- 57, 30, 0, 0, 0, 3, 0, 79, 0,105, 4,130, 4,158, 0, 25, 0, 51, 0, 55, 0, 0, 0, 50, 22, 23, 22, 23, 22, 21, 20, 7,
- 6, 7, 14, 1, 34, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 4, 34, 7, 6, 7, 14, 1, 21, 20, 22, 23, 22, 23, 22, 50, 55,
- 54, 55, 62, 1, 53, 52, 38, 39, 38, 39, 19, 33, 53, 33, 1,250,221,190, 79, 79, 39, 39, 39, 39, 79, 79,190,221,190, 79, 79, 39,
- 39, 39, 39, 79, 79, 1,126,163, 71, 69, 58, 59, 57, 57, 59, 58, 69, 71,163, 70, 70, 58, 59, 57, 57, 59, 58, 70, 50,254,109, 1,
-147, 4,158, 80, 79, 79, 95, 95,112,109, 95, 95, 79, 78, 80, 80, 78, 79, 95, 95,109,112, 95, 95, 79, 79, 61, 30, 30, 57, 59,140,
- 83, 80,140, 59, 57, 30, 30, 30, 30, 57, 59,140, 80, 83,140, 59, 57, 30,254, 73,140, 0, 0, 0, 0, 3, 0, 80, 0,105, 4,131,
- 4,156, 0, 3, 0, 7, 0, 19, 0, 0, 37, 17, 33, 17, 3, 33, 17, 33, 1, 51, 17, 33, 21, 33, 17, 35, 17, 33, 53, 33, 3,244,
-252,232,140, 4, 51,251,205, 1,210,140, 1, 56,254,200,140,254,201, 1, 55,245, 3, 27,252,229, 3,167,251,205, 3,152,254,199,
-140,254,202, 1, 54,140, 0, 0, 0, 3, 0, 80, 0,105, 4,131, 4,156, 0, 3, 0, 7, 0, 11, 0, 0, 37, 17, 33, 17, 3, 33,
- 17, 33, 1, 21, 33, 53, 3,244,252,232,140, 4, 51,251,205, 3,114,253, 77,245, 3, 27,252,229, 3,167,251,205, 2, 95,140,140,
- 0, 3, 0, 80, 0,105, 4,131, 4,156, 0, 3, 0, 7, 0, 19, 0, 0, 37, 17, 33, 17, 3, 33, 17, 33, 19, 55, 9, 1, 23, 9,
- 1, 7, 9, 1, 39, 1, 3,244,252,232,140, 4, 51,251,205,172, 99, 1, 11, 1, 12, 99,254,244, 1, 8, 99,254,248,254,246, 99,
- 1, 10,245, 3, 27,252,229, 3,167,251,205, 3, 35, 99,254,245, 1, 12, 99,254,244,254,248, 99, 1, 8,254,247, 99, 1, 9, 0,
- 0, 3, 0, 80, 0,105, 4,131, 4,156, 0, 3, 0, 7, 0, 11, 0, 0, 1, 51, 17, 35, 5, 17, 33, 17, 3, 33, 17, 33, 1,233,
-252,252, 2, 11,252,232,140, 4, 51,251,205, 3, 16,254,207,234, 3, 27,252,229, 3,167,251,205, 0, 1, 1,233, 2, 47, 2,229,
- 3, 96, 0, 3, 0, 21,185, 0, 2, 1, 1,181, 0, 4, 1, 29, 0, 4, 16,212,236, 49, 0, 16,212,236, 48, 1, 51, 17, 35, 1,
-233,252,252, 3, 96,254,207, 0, 0, 1, 1, 8, 1,155, 3,201, 4, 55, 0, 9, 0, 0, 1, 33, 19, 23, 33, 7, 23, 39, 7, 19,
- 1, 9, 1, 12, 84, 83, 1, 12,217, 84,218,218, 83, 3, 56, 0,255,255,158,255,158,158, 0,255, 0, 2, 0, 88, 1, 96, 4,121,
- 3,195, 0, 3, 0, 31, 0, 0, 1, 21, 33, 53, 17, 30, 1, 51, 50, 55, 54, 55, 62, 1, 51, 50, 22, 23, 21, 46, 1, 35, 34, 6,
- 7, 6, 7, 6, 35, 34, 38, 39, 4,121,251,223, 74,137, 70, 93,116, 22, 10, 75,100, 53, 83,146, 78, 73,141, 79, 51,103, 77, 11,
- 22,113, 90, 79,143, 75, 2, 12,172,172, 1,183, 63, 60, 54, 11, 4, 32, 22, 55, 60,174, 64, 59, 24, 34, 4, 10, 51, 55, 59, 0,
- 0, 3, 0, 88,254, 65, 4,121, 6, 21, 0, 6, 0, 13, 0, 17, 0, 0, 55, 53, 1, 21, 1, 53, 37, 19, 21, 1, 53, 1, 21, 5,
- 1, 21, 33, 53, 88, 4, 33,251,223, 3, 35,254,251,223, 4, 33,252,223, 3, 33,251,223,202,182,254,180,168,254,181,184,231, 3,
-172,182, 1, 76,168, 1, 75,184,231,254, 10,170,170, 0, 0, 0, 0, 3, 0, 88,254, 65, 4,121, 6, 21, 0, 6, 0, 13, 0, 17,
- 0, 0, 37, 13, 1, 21, 1, 53, 9, 1, 45, 1, 53, 1, 21, 1, 21, 33, 21, 33, 4,121,252,221, 3, 35,251,223, 4, 33,251,223,
- 3, 33,252,223, 4, 33,251,223, 4, 33,251,223,202,234,231,184, 1, 75,168, 1, 76, 2, 12,234,231,184,254,181,168,254,180, 86,
-170, 0, 0, 0, 0, 2, 0, 86, 0, 0, 4,119, 4, 63, 0, 6, 0, 10, 0, 0, 1, 13, 1, 21, 1, 53, 1, 53, 33, 53, 33, 4,
-119,252,223, 3, 33,251,223, 4, 33,251,223, 4, 33, 2,137,234,231,184, 1, 75,168, 1, 76, 86,170, 0, 0, 0, 0, 2, 0, 88,
- 0, 0, 4,121, 4, 63, 0, 6, 0, 10, 0, 0, 19, 53, 1, 21, 1, 53, 37, 1, 53, 33, 21, 88, 4, 33,251,223, 3, 35,252,221,
- 4, 33, 2,137,182,254,180,168,254,181,184,231, 1,246,170,170, 0, 2, 0, 86,255, 4, 4,119, 5,177, 0, 9, 0, 24, 0, 0,
- 1, 36, 55, 21, 6, 5, 6, 5, 53, 36, 1, 21, 38, 37, 38, 37, 53, 36, 55, 36, 55, 21, 0, 5, 4, 2,164, 1, 34,177,203,254,
-248,222,254,144, 1,110, 2,179,183,254,228,237,254,159, 1, 87,247, 1, 28,183,254,221,254,108, 1,148, 4, 26,200,207,252,220,
-156,131, 56,200, 54,252,115,239,203,150,125, 61,166, 57,130,151,201,239,254,222, 93, 79, 0, 0, 0, 2, 0, 86,255, 4, 4,119,
- 5,177, 0, 9, 0, 24, 0, 0, 1, 22, 5, 21, 36, 39, 36, 39, 53, 22, 3, 0, 37, 36, 1, 53, 22, 5, 22, 5, 21, 4, 7, 4,
- 7, 2, 41,224, 1,110,254,144,222,254,248,203,177,177, 1, 35, 1,148,254,108,254,221,183, 1, 28,247, 1, 87,254,159,237,254,
-228,183, 4, 26,154, 54,200, 56,131,156,220,252,207,251, 17, 1, 48, 79, 93, 1, 34,239,201,151,130, 57,166, 61,125,150,203, 0,
- 0, 2, 0, 86,254,140, 4,119, 6, 41, 0, 37, 0, 42, 0, 0, 1, 23, 7, 54, 55, 21, 6, 7, 3, 22, 23, 21, 38, 39, 7, 23,
- 4, 23, 21, 38, 37, 38, 39, 3, 39, 19, 38, 39, 53, 22, 23, 55, 38, 37, 53, 36, 63, 1, 3, 55, 6, 7, 22, 3,100,162, 77,106,
- 84,129,152, 86,202,165,169,254, 51, 7, 1, 8,203,177,254,222, 31, 33,179,162,186,163,208,247,182, 51,210,254,242, 1, 97,237,
- 52,109, 34, 99,106, 88, 6, 41, 51,245, 83, 93,239,135, 91,254,238,101,165,239,185,143,161, 4,156,220,252,207,200, 21, 20,253,
-200, 51, 2, 78, 64, 30,200, 37, 72,163, 90, 45,166, 61,125, 29,254,164,107, 36, 21, 20, 0, 0, 0, 2, 0, 86,254,140, 4,119,
- 6, 41, 0, 36, 0, 40, 0, 0, 1, 23, 3, 22, 23, 21, 4, 15, 1, 54, 37, 21, 4, 15, 1, 3, 39, 19, 6, 7, 53, 54, 63, 1,
- 6, 7, 53, 54, 37, 55, 36, 39, 53, 22, 5, 22, 31, 1, 7, 55, 38, 3, 37,162,165,154,187,255, 0,203, 68,209, 1, 62,254,146,
-224, 22,161,162, 87,119, 90,140,169, 78,231,156,204, 1, 2, 40,254,229,219,183, 1, 28, 43, 47,109, 5, 34, 15, 6, 41, 51,253,
-243, 51, 32,166, 43, 83,216,105, 48,200, 54,154, 15,254, 0, 51, 1, 22,104,105,252,152,121,247,135,172,239,203,106,127,101,229,
-239,203,150, 23, 20,220, 14, 8, 3, 0, 0, 0, 0, 2, 0, 88,255, 91, 4,121, 5,167, 0, 15, 0, 19, 0, 0, 1, 23, 7, 51,
- 21, 33, 1, 33, 21, 33, 3, 39, 55, 35, 17, 33, 9, 1, 33, 17, 3, 80,158, 89,228,254,216,254,230, 2, 66,253,122,114,158, 89,
-228, 2,134,254,162, 1, 26,254,104, 5,167, 63,221,170,253, 64,170,254,228, 63,221, 4, 20,252,150, 2,192,253, 64, 0, 0, 0,
- 0, 2, 0, 88,255, 91, 4,121, 5,167, 0, 15, 0, 19, 0, 0, 1, 23, 7, 51, 17, 33, 3, 39, 55, 35, 53, 33, 1, 33, 53, 33,
- 23, 1, 33, 17, 3, 80,158, 89,228,253,122,114,158, 89,228, 1, 40, 1, 26,253,190, 2,134,115,254,230, 1,152, 5,167, 63,221,
-251,236,254,228, 63,221,170, 2,192,170,170,253, 64, 2,192, 0, 0, 1, 0, 88,255, 62, 4,121, 4,244, 0, 20, 0, 0, 19, 33,
- 21, 33, 17, 33, 21, 33, 23, 7, 33, 21, 33, 7, 39, 55, 33, 53, 33, 55, 33, 88, 4, 33,252,137, 3,119,254,210, 32, 82, 1, 96,
-254, 24,167,132, 82,254,160, 1,232,103,253,177, 4,244,170,253,152,170, 26,102,170,208,106,102,170,128, 0, 0, 0, 1, 0, 88,
-255, 62, 4,121, 4,244, 0, 20, 0, 0, 37, 21, 33, 7, 39, 55, 33, 53, 33, 55, 33, 53, 33, 17, 33, 53, 33, 17, 33, 23, 7, 4,
-121,254, 24,167,132, 82,254,160, 1,232,103,253,177, 3,119,252,137, 4, 33,254,210, 32, 82,184,170,208,106,102,170,128,170, 2,
-104,170,252, 68, 26,102, 0, 0, 0, 1, 0, 86,254,237, 4,119, 4, 63, 0, 37, 0, 0, 37, 38, 39, 38, 35, 34, 6, 7, 53, 62,
- 1, 51, 50, 22, 23, 55, 37, 53, 1, 21, 13, 1, 21, 37, 7, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 39, 3, 39, 2, 22, 29, 23,
- 52, 51, 79,141, 73, 78,146, 83, 58, 90, 29, 48,253,236, 4, 33,252,223, 3, 33,254,120, 50, 88, 73, 70,137, 74, 75,143, 79, 81,
-100, 62,136, 51, 11, 5, 12, 59, 64,174, 60, 55, 22, 12,210,167,168, 1, 75,184,231,234,182,123,223, 34, 60, 63,175, 59, 55, 41,
-254,240, 31, 0, 0, 1, 0, 86,254,237, 4,119, 4, 63, 0, 38, 0, 0, 19, 45, 1, 53, 1, 21, 5, 23, 3, 22, 51, 50, 54, 55,
- 21, 14, 1, 35, 34, 39, 3, 39, 19, 38, 39, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 23, 55, 5, 86, 3, 33,252,223, 4, 33,
-254, 63, 69, 62, 88, 73, 70,137, 74, 75,143, 79, 81,100, 62,136, 67, 29, 23, 52, 51, 79,141, 73, 78,146, 83, 58, 90, 29, 48,253,
-236, 1,182,234,231,184,254,181,168,141, 16,254,237, 34, 60, 63,175, 59, 55, 41,254,240, 31, 1, 39, 11, 5, 12, 59, 64,174, 60,
- 55, 22, 12,212,167, 0, 0, 0, 0, 2, 0, 86,254, 75, 4,119, 5,177, 0, 31, 0, 46, 0, 0, 5, 38, 39, 38, 35, 34, 6, 7,
- 53, 62, 1, 51, 50, 23, 22, 23, 19, 23, 3, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 39, 3, 39, 1, 0, 5, 4, 1, 21, 38, 37,
- 38, 37, 53, 36, 55, 36, 55, 2, 22, 29, 23, 52, 51, 79,141, 73, 78,146, 83, 54, 49, 45, 29, 78,136, 83, 88, 73, 70,137, 74, 75,
-143, 79, 81,100, 83,136, 2,185,254,221,254,108, 1,148, 1, 35,183,254,228,247,254,169, 1, 97,237, 1, 28,183, 19, 11, 5, 12,
- 59, 64,174, 60, 55, 11, 11, 12, 1, 87, 31,254,145, 34, 60, 63,175, 59, 55, 41,254,148, 31, 6, 88,254,208, 79, 93,254,222,239,
-201,151,130, 57,166, 61,125,150,203, 0, 0, 0, 0, 2, 0, 86,254, 75, 4,119, 5,177, 0, 31, 0, 46, 0, 0, 5, 38, 39, 38,
- 35, 34, 6, 7, 53, 62, 1, 51, 50, 23, 22, 23, 19, 23, 3, 22, 51, 50, 54, 55, 21, 14, 1, 35, 34, 39, 3, 39, 1, 53, 22, 5,
- 22, 5, 21, 4, 7, 4, 7, 53, 0, 37, 36, 2, 22, 29, 23, 52, 51, 79,141, 73, 78,146, 83, 54, 49, 45, 29, 78,136, 83, 88, 73,
- 70,137, 74, 75,143, 79, 81,100, 83,136,254,152,183, 1, 28,237, 1, 97,254,169,247,254,231,186, 1, 35, 1,148,254,108, 19, 11,
- 5, 12, 59, 64,174, 60, 55, 11, 11, 12, 1, 87, 31,254,145, 34, 60, 63,175, 59, 55, 41,254,148, 31, 6, 88,239,203,150,125, 61,
-166, 57,130,148,204,239, 1, 34, 93, 79, 0, 0,255,255, 0, 80, 1,234, 4,127, 3, 27, 16, 7, 6,153, 0, 0, 1,234, 0, 0,
-255,255, 0, 73, 0, 98, 4,138, 4,163, 16, 6, 7, 84, 0, 0, 0, 1, 0,114, 1, 76, 4, 82, 3,140, 0, 7, 0, 0, 1, 17,
- 1, 53, 5, 17, 1, 21, 2,162,253,208, 1,176, 2, 48, 2,122,254,210, 1, 74,194,250, 1, 46,254,182,194, 0, 0, 2, 0,146,
- 0, 0, 4, 63, 4,196, 0, 4, 0, 9, 0, 0, 51, 17, 9, 1, 17, 37, 33, 17, 9, 1,146, 1,214, 1,214,252,206, 2,184,254,
-164,254,164, 2,135, 2, 61,253,195,253,121,122, 1,213, 1,171,254, 85, 0, 0, 0, 1, 0,146, 3, 63, 4, 62, 5,248, 0, 5,
- 0, 0, 9, 1, 35, 9, 1, 35, 2,104, 1,214,163,254,205,254,205,163, 5,248,253, 71, 1,199,254, 57, 0, 0, 0, 1, 0,146,
-254,242, 4, 62, 1,172, 0, 5, 0, 0, 9, 1, 51, 9, 1, 51, 2,104,254, 42,163, 1, 51, 1, 51,163,254,242, 2,186,254, 56,
- 1,200, 0, 0, 0, 2, 0,146, 0, 0, 4, 62, 3,142, 0, 3, 0, 9, 0, 0, 19, 33, 21, 33, 5, 1, 35, 9, 1, 35,156, 3,
-153,252,103, 1,204, 1,214,163,254,205,254,205,163, 3,142,114, 99,253, 71, 1,199,254, 57, 0, 0, 3, 0,146, 0, 0, 4, 62,
- 4,136, 0, 3, 0, 7, 0, 13, 0, 0, 19, 33, 21, 33, 21, 33, 21, 33, 5, 1, 35, 9, 1, 35,156, 3,153,252,103, 3,153,252,
-103, 1,204, 1,214,163,254,205,254,205,163, 4,136,114,136,114, 99,253, 71, 1,199,254, 57, 0, 0, 1, 1,207,254,242, 3,119,
- 6, 20, 0, 5, 0, 0, 1, 33, 21, 35, 17, 35, 1,207, 1,168,240,184, 6, 20,143,249,109, 0, 0, 1, 1, 90,254,242, 3, 2,
- 6, 20, 0, 5, 0, 0, 1, 17, 35, 17, 35, 53, 3, 2,184,240, 6, 20,248,222, 6,147,143, 0, 0, 1, 1,207,254,242, 3,119,
- 6, 20, 0, 5, 0, 0, 1, 17, 51, 17, 51, 21, 1,207,184,240,254,242, 7, 34,249,109,143, 0, 0, 1, 1, 90,254,242, 3, 2,
- 6, 20, 0, 5, 0, 0, 1, 33, 53, 51, 17, 51, 3, 2,254, 88,240,184,254,242,143, 6,147, 0, 0, 2, 2, 37, 0,150, 4,175,
- 3, 67, 0, 3, 0, 7, 0, 0, 1, 33, 21, 33, 7, 51, 17, 35, 2,242, 1,189,254, 67,205,114,114, 3, 67,114, 91,254, 32, 0,
- 0, 2, 0, 13, 0,150, 2,151, 3, 67, 0, 3, 0, 7, 0, 0, 19, 33, 21, 33, 5, 51, 17, 35, 13, 1,189,254, 67, 2, 24,114,
-114, 3, 67,114, 91,254, 32, 0, 0, 2, 2, 37, 2,209, 4,175, 5,126, 0, 3, 0, 7, 0, 0, 1, 33, 21, 33, 3, 51, 17, 35,
- 2,242, 1,189,254, 67,205,114,114, 3, 67,114, 2,173,254, 32, 0, 2, 0, 13, 2,209, 2,151, 5,126, 0, 3, 0, 7, 0, 0,
- 19, 33, 21, 33, 1, 51, 17, 35, 13, 1,189,254, 67, 2, 24,114,114, 3, 67,114, 2,173,254, 32, 0, 1, 0, 88, 1,115, 4,121,
- 3, 94, 0, 5, 0, 0, 1, 21, 33, 17, 35, 17, 4,121,252,135,168, 3, 94,172,254,193, 1,235, 0, 2, 0, 97, 1, 2, 4,112,
- 5, 18, 0, 7, 0, 15, 0, 0, 19, 36, 5, 2, 19, 4, 37, 18, 1, 18, 3, 4, 37, 2, 19, 36,231, 1,129, 1,129,137,137,254,
-127,254,127,137,254,241,184,184, 2, 7, 2, 8,184,184,253,248, 1,138,137,137, 1,128, 1,130,138,138,254,126,253,248, 1,244,
- 2, 28,177,177,254, 12,253,229,177, 0, 0, 0,255,255, 0, 6, 1,176, 4,203, 4, 24, 16, 6, 9, 58, 0,156, 0, 2, 0, 6,
- 1,176, 4,203, 4, 24, 0, 7, 0, 15, 0, 0, 19, 16, 37, 54, 32, 23, 4, 17, 37, 33, 38, 39, 38, 34, 7, 6, 6, 1, 49,152,
- 1, 49,153, 1, 50,251,192, 3,187, 42,192,122,244,122,192, 1,176, 1, 96,176, 88, 88,176,254,160,114,197,111, 71, 71,110, 0,
- 0, 2, 0,184, 1, 89, 4, 24, 4, 24, 0, 8, 0, 13, 0, 0, 0, 32, 23, 22, 23, 9, 1, 54, 55, 4, 34, 7, 9, 1, 1,210,
- 1, 44,155, 74, 53,254, 80,254, 80, 53, 74, 1,173,248,133, 1, 2, 1, 0, 4, 24, 88, 42, 55,253,250, 2, 6, 55, 42, 35, 76,
-254,200, 1, 56, 0, 2, 0,166, 0,229, 4, 21, 4, 80, 0, 7, 0, 25, 0, 0, 0, 34, 6, 20, 22, 50, 54, 52, 3, 50, 23, 30,
- 1, 21, 20, 6, 35, 34, 39, 7, 39, 55, 38, 53, 52, 54, 3, 4,196,138,135,199,140,238,158,105, 53, 54,216,157,127, 93,204, 81,
-205, 66,214, 3,201,137,199,135,137,195, 1, 18,111, 51,133, 78,152,214, 69,204, 81,204, 92,124,157,216, 0, 0, 0, 6, 0, 71,
- 0,233, 4,138, 5, 43, 0, 3, 0, 45, 0, 55, 0, 65, 0, 74, 0, 84, 0, 0, 1, 51, 53, 35, 17, 21, 20, 6, 34, 38, 53, 52,
- 54, 59, 1, 53, 35, 34, 38, 52, 54, 50, 22, 29, 1, 51, 53, 52, 54, 50, 22, 20, 6, 43, 1, 21, 51, 50, 22, 21, 20, 6, 34, 38,
- 61, 1, 1, 53, 52, 38, 35, 34, 6, 20, 22, 51, 19, 35, 34, 6, 21, 20, 22, 50, 54, 53, 1, 51, 50, 54, 52, 38, 34, 6, 21, 17,
- 21, 20, 22, 50, 54, 53, 52, 38, 35, 2, 1,207,207,130,183,129,129, 89,120,120, 89,129,129,183,130,207,130,184,128,128, 90,120,
-120, 90,128,128,184,130,254,201, 69, 49, 47, 69, 69, 48,117,117, 48, 69, 69, 96, 69, 1,159,118, 47, 69, 68, 97, 69, 69, 97, 68,
- 69, 47, 2,162,208,254,200,119, 90,128,129, 92, 90,130,208,130,182,129,128, 90,119,119, 90,128,129,182,130,208,130, 90, 92,129,
-128, 90,119, 1,160,117, 48, 69, 69, 96, 69,254, 96, 69, 47, 49, 69, 69, 48, 2, 21, 69, 96, 69, 69, 48,253,235,117, 48, 69, 69,
- 49, 47, 69, 0, 0, 1, 0, 88, 1,115, 4,121, 3, 94, 0, 5, 0, 0, 1, 33, 17, 51, 17, 33, 4,121,251,223,168, 3,121, 1,
-115, 1,235,254,193, 0, 0, 0, 0, 1, 1, 43, 2,209, 3,181, 5,126, 0, 5, 0, 0, 1, 33, 17, 35, 17, 33, 3,181,253,232,
-114, 2,138, 5, 12,253,197, 2,173, 0, 0, 0, 0, 1, 1, 28, 2,209, 3,166, 5,126, 0, 5, 0, 0, 1, 53, 33, 17, 35, 17,
- 1, 28, 2,138,114, 5, 12,114,253, 83, 2, 59, 0, 1, 1, 43,255,142, 3,181, 2, 59, 0, 5, 0, 0, 33, 21, 33, 17, 51, 17,
- 3,181,253,118,114,114, 2,173,253,197, 0, 0, 0, 1, 1, 28,255,142, 3,166, 2, 59, 0, 5, 0, 0, 41, 1, 17, 51, 17, 33,
- 1, 28, 2, 24,114,253,118, 2, 59,253, 83, 0, 0, 1, 2, 0,254, 0, 4, 76, 6, 14, 0, 25, 0, 0, 1, 17, 52, 55, 26, 1,
- 51, 50, 22, 21, 20, 6, 35, 34, 39, 38, 39, 46, 1, 35, 34, 3, 2, 21, 48, 17, 2, 1, 3, 12,190,202, 80,100, 64, 55, 42, 29,
- 24, 15, 6, 9, 16,104, 17, 8,254, 0, 3,170, 36,129, 2, 3, 1,188, 84, 65, 54, 63, 19, 16, 38, 15, 72,253,149,254,211, 2,
-251,246, 0, 0, 0, 1, 0,124,254, 26, 2,200, 6, 40, 0, 25, 0, 0, 1, 17, 20, 7, 10, 1, 35, 34, 38, 53, 52, 54, 51, 50,
- 23, 22, 23, 30, 1, 51, 50, 19, 18, 53, 48, 17, 2,199, 3, 12,190,202, 80,100, 64, 55, 42, 29, 24, 15, 6, 9, 16,104, 17, 8,
- 6, 40,252, 86, 36,129,253,253,254, 68, 84, 65, 54, 63, 19, 16, 38, 15, 72, 2,107, 1, 45, 2, 4, 10, 0, 0, 0, 2, 0,104,
- 0,233, 4,105, 4,201, 0, 7, 0, 11, 0, 0, 19, 33, 1, 33, 21, 33, 1, 35, 37, 33, 21, 33,104, 1, 92, 1,145, 1, 20,254,
-114,254,111,226, 2, 97, 1,160,254, 96, 4,201,252,222,190, 3, 34,190,190, 0, 0, 5, 0, 6, 1, 40, 4,203, 4, 73, 0, 4,
- 0, 10, 0, 13, 0, 18, 0, 21, 0, 0, 9, 1, 33, 17, 33, 9, 1, 35, 3, 19, 51, 1, 23, 55, 33, 35, 17, 51, 27, 1, 39, 7,
- 4,203,254, 81,252,234, 3, 22, 1, 5,254,211, 39,200,200, 39,254, 72,131,131,254,111, 57, 57,200,201,131,131, 2,185,254,111,
- 3, 33,254,112, 1, 30,254,225,254,226, 2, 61,187,187,253,195, 1, 30,254,226,187,187, 0, 0, 0, 5, 0,125, 1, 40, 4, 84,
- 4, 73, 0, 4, 0, 8, 0, 11, 0, 16, 0, 19, 0, 0, 1, 17, 35, 3, 19, 23, 33, 17, 33, 5, 23, 55, 33, 35, 17, 51, 27, 1,
- 39, 7, 3,226,108,200,200,222,252, 41, 3,215,253,145,131,131,254,111,107,107,200,201,131,131, 1,154, 2, 61,254,225,254,226,
-114, 3, 33,114,187,187,253,195, 1, 30,254,226,187,187, 0, 0, 0, 43, 0, 50, 1,179, 4,159, 4, 34, 0, 11, 0, 23, 0, 35,
- 0, 47, 0, 59, 0, 71, 0, 83, 0, 95, 0,107, 0,119, 0,131, 0,143, 0,155, 0,167, 0,179, 0,191, 0,203, 0,215, 0,227,
- 0,239, 0,251, 1, 7, 1, 19, 1, 31, 1, 43, 1, 55, 1, 67, 1, 79, 1, 91, 1,103, 1,115, 1,127, 1,139, 1,151, 1,163,
- 1,175, 1,187, 1,199, 1,211, 1,227, 1,239, 1,251, 2, 7, 0, 0, 19, 33, 50, 21, 17, 20, 35, 33, 34, 53, 17, 52, 23, 17,
- 20, 51, 33, 50, 53, 17, 52, 35, 33, 34, 19, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59,
- 1, 50, 55, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 7, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34,
- 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21,
- 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59,
- 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 37, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34,
- 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21,
- 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59,
- 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 39, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 7, 21, 20, 43, 1, 34,
- 61, 1, 52, 59, 1, 50, 7, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 7, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 7, 21,
- 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 7, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 7, 21, 20, 43, 1, 34, 61, 1, 52, 59,
- 1, 50, 7, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 39, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34,
- 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21,
- 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59,
- 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 23, 21, 20, 43, 1, 34,
- 61, 1, 52, 59, 1, 50, 7, 50, 29, 1, 20, 43, 1, 34, 61, 1, 52, 34, 61, 1, 52, 51, 19, 21, 20, 43, 1, 34, 61, 1, 52, 59,
- 1, 50, 23, 21, 20, 43, 1, 34, 61, 1, 52, 59, 1, 50, 5, 34, 61, 1, 52, 51, 33, 50, 29, 1, 20, 35,142, 3,181, 92, 92,252,
- 75, 92, 61, 31, 3,181, 30, 30,252, 75, 31,108, 15, 31, 15, 15, 31, 15, 93, 15, 31, 15, 15, 31, 15,138, 15, 31, 16, 16, 31, 15,
-184, 16, 31, 15, 15, 31, 16, 92, 16, 30, 16, 16, 30, 16,184, 16, 30, 16, 16, 30, 16, 92, 15, 31, 16, 16, 31, 15, 92, 15, 31, 16,
- 16, 31, 15, 92, 15, 31, 15, 15, 31, 15, 93, 16, 31, 15, 15, 31, 16,166, 16,105, 15, 15,105, 16,252,197, 15, 31, 15, 15, 31, 15,
- 92, 15, 31, 15, 15, 31, 15, 93, 16, 31, 15, 15, 31, 16, 91, 15, 31, 15, 15, 31, 15, 93, 16, 31, 15, 15, 31, 16, 92, 16, 31, 15,
- 15, 31, 16, 92, 15, 31, 16, 16, 31, 15, 92, 15, 31, 16, 16, 31, 15, 15, 15, 31, 16, 16, 31, 15, 92, 15, 31, 16, 16, 31, 15, 92,
- 16, 31, 15, 15, 31, 16, 92, 16, 31, 15, 15, 31, 16, 92, 16, 30, 16, 16, 30, 16, 92, 16, 31, 15, 15, 31, 16, 93, 15, 31, 15, 15,
- 31, 15, 92, 15, 31, 15, 15, 31, 15, 15, 15, 31, 15, 15, 31, 15, 92, 15, 31, 15, 15, 31, 15, 93, 16, 31, 15, 15, 31, 16, 92, 16,
- 31, 15, 15, 31, 16, 92, 16, 31, 15, 15, 31, 16, 92, 16, 31, 15, 15, 31, 16, 92, 16, 30, 16, 16, 30, 16, 92, 15, 31, 16, 16, 31,
- 15, 92, 15, 31, 15, 15, 31, 15,120, 16, 58, 15, 15, 58, 16, 16, 16, 16,102, 18, 30, 15, 62, 16, 31, 15, 15, 31, 16, 93, 16, 31,
- 15, 15, 31, 16,253, 89, 15, 15, 1,173, 15, 15, 4, 34, 92,254, 73, 92, 92, 1,183, 92, 92,254, 73, 31, 31, 1,183, 31,254, 96,
- 30, 16, 16, 30, 16, 15, 31, 16, 16, 31, 15, 76, 31, 15, 15, 31, 16, 16, 31, 15, 15, 31, 16, 16, 31, 15, 15, 31, 16, 16, 31, 15,
- 15, 31, 16, 16, 31, 15, 15, 31, 16, 16, 31, 15, 15, 31, 16, 16, 31, 15, 15, 31, 16, 16, 31, 15, 15, 31, 16, 16, 31, 15, 15, 31,
- 16, 76, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15,
- 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 77, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15,
- 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31, 15, 15, 31,
- 15, 75, 31, 15, 15, 31, 16, 16, 31, 15, 15, 31, 16, 16, 31, 15, 15, 31, 16, 16, 31, 15, 15, 31, 16, 16, 31, 15, 15, 31, 16, 16,
- 31, 15, 15, 31, 16, 16, 31, 15, 15, 31, 16, 16, 31, 15, 15, 31, 16, 16, 31, 15, 15, 31, 16, 16, 31, 15, 15, 31, 16, 92, 15,121,
- 15, 15, 62, 14, 15, 30, 16,254,222, 31, 16, 16, 31, 15, 15, 31, 16, 16, 31, 15, 62, 16, 31, 15, 15, 31, 16, 0, 0, 5, 0, 6,
- 1, 40, 4,203, 4, 73, 0, 4, 0, 10, 0, 13, 0, 18, 0, 21, 0, 0, 19, 1, 33, 17, 33, 9, 1, 51, 19, 3, 35, 41, 1, 23,
- 37, 3, 19, 51, 17, 1, 33, 39, 6, 1,175, 3, 22,252,234,254,251, 1, 45, 39,200,200, 39, 1,184,254,250,131, 1, 14,200,200,
- 57,254, 54, 1, 6,131, 2,185, 1,144,252,223, 1,145,254,225, 1, 30, 1, 31,187,187,254,225,254,226, 2, 61,253,195,187, 0,
- 0, 1, 0, 72,255,211, 4,136, 2, 74, 0, 5, 0, 0, 5, 1, 55, 9, 1, 23, 2,104,253,224, 72, 1,216, 1,216, 72, 45, 2,
- 45, 74,254, 28, 1,228, 74, 0, 0, 2, 1, 0,255, 52, 3,209, 6,161, 0, 3, 0, 7, 0, 0, 5, 33, 17, 33, 3, 17, 33, 17,
- 1,114, 1,237,254, 19,114, 2,209, 90, 6,137,249, 5, 7,109,248,147, 0, 0, 0, 4, 0, 6,255, 52, 4,203, 6,161, 0, 3,
- 0, 7, 0, 11, 0, 15, 0, 0, 23, 17, 33, 17, 37, 33, 17, 33, 53, 33, 53, 33, 53, 33, 17, 33, 6, 4,197,251,173, 3,225,252,
- 31, 3,225,252, 31, 3,225,252, 31,204, 7,109,248,147,114, 1,186,172,236,170, 2,141, 0, 0, 0, 5, 0, 6,255, 52, 4,203,
- 6,161, 0, 3, 0, 7, 0, 11, 0, 15, 0, 19, 0, 0, 1, 51, 21, 35, 17, 51, 21, 35, 1, 17, 33, 17, 37, 33, 17, 33, 53, 33,
- 17, 33, 1,238,245,245,245,245,254, 24, 4,197,251,173, 3,225,252, 31, 3,225,252, 31, 4,111,246,254, 18,245,254,158, 7,109,
-248,147,114, 2,135,170, 3, 88, 0, 4, 0, 6,255, 52, 4,203, 6,161, 0, 3, 0, 8, 0, 12, 0, 17, 0, 0, 19, 9, 3, 33,
- 17, 9, 2, 33, 17, 33, 9, 2, 17, 33,195, 1,165, 1,166,254, 90,254, 16, 3,225,254, 15,254, 16, 4, 83,251, 59, 4,197,251,
-173, 1,240, 1,241,252, 31, 2,220,254, 90, 1,166, 1,166,251, 36, 2,196,254, 16, 1,240,252,202, 7,109,252,173, 1,240,254,
- 16, 2,225, 0,255,255, 0, 6,255, 52, 4,203, 6,161, 16, 38, 11,193, 0, 0, 16, 6, 8, 66, 0, 0, 0, 0, 0, 4, 0, 6,
-255, 52, 4,203, 6,161, 0, 13, 0, 24, 0, 28, 0, 39, 0, 0, 18, 16, 23, 22, 51, 50, 55, 54, 16, 39, 38, 35, 34, 7, 3, 33,
- 17, 6, 7, 6, 35, 34, 39, 38, 39, 1, 33, 17, 33, 1, 54, 55, 54, 51, 50, 23, 22, 23, 17, 33,128,244,122,122,122,122,245,245,
-122,122,122,122,252, 3,225, 73,119,153,152,153,152,119, 72, 4, 83,251, 59, 4,197,251,173, 72,119,152,153,152,153,119, 73,252,
- 31, 3,245,253,206,141, 71, 71,141, 2, 50,141, 71, 71,251, 36, 1,202, 95, 69, 88, 88, 69, 94,253,197, 7,109,253,168, 95, 68,
- 88, 88, 69, 95, 1,231, 0, 0, 0, 3, 0, 6,254,162, 4,203, 7, 51, 0, 19, 0, 27, 0, 35, 0, 0, 18, 16, 37, 54, 55, 17,
- 51, 17, 22, 23, 4, 16, 5, 6, 7, 17, 35, 17, 38, 39, 2, 16, 23, 22, 23, 17, 6, 7, 37, 17, 54, 55, 54, 16, 39, 38, 6, 1,
- 49,114,115,152,114,115, 1, 50,254,206,115,114,152,115,114,183,244, 84, 84, 84, 84, 1, 64, 84, 84,245,245, 84, 1,124, 2,192,
-176, 66, 17, 1,244,254, 12, 17, 66,176,253, 64,176, 66, 17,254, 41, 1,215, 17, 66, 3, 41,253,206,141, 49, 15, 3,204, 15, 49,
- 64,252, 52, 15, 49,141, 2, 50,141, 49, 0, 0,255,255, 0, 6, 0,116, 4,203, 5, 68, 16, 38, 11,193, 0, 0, 16, 7, 9, 37,
- 0, 0, 0,200, 0, 3, 0, 6,255, 52, 4,203, 6,161, 0, 3, 0, 6, 0, 9, 0, 0, 23, 17, 33, 17, 37, 1, 33, 5, 1, 33,
- 6, 4,197,251,173, 3, 89,252,167, 3,225,252,158, 3, 98,204, 7,109,248,147,198, 6, 53, 65,249,184, 0, 0, 0, 3, 0, 6,
-255, 52, 4,203, 6,161, 0, 3, 0, 6, 0, 9, 0, 0, 5, 33, 17, 33, 3, 17, 33, 7, 17, 33, 4,203,251, 59, 4,197,114,252,
-167,136, 3, 98,204, 7,109,249, 89, 6, 53, 65,249,184, 0, 0, 0, 4, 0, 6,255, 52, 4,203, 6,161, 0, 3, 0, 7, 0, 11,
- 0, 14, 0, 0, 23, 17, 33, 17, 37, 33, 17, 1, 53, 1, 17, 33, 1, 17, 1, 6, 4,197,251,173, 3,225,252, 31, 3,225,252, 31,
- 3,225,252,206,204, 7,109,248,147,114, 1, 88, 1,136,192, 1,136, 1, 97,251,133, 2,101,254,204, 0, 0, 0, 0, 4, 0, 6,
-255, 52, 4,203, 6,161, 0, 3, 0, 7, 0, 10, 0, 14, 0, 0, 23, 17, 33, 17, 37, 33, 17, 1, 25, 1, 9, 2, 17, 33, 6, 4,
-197,251,173, 3,225,252, 31, 3, 50,252,206, 3,225,252, 31,204, 7,109,248,147,114, 2,224,254,120, 3, 27,253,155, 1, 49, 1,
-233,254,120, 2,233, 0, 0, 0, 0, 3, 0, 6,255, 52, 4,203, 6,161, 0, 3, 0, 10, 0, 17, 0, 0, 23, 17, 33, 17, 37, 33,
- 17, 33, 23, 7, 1, 53, 1, 23, 7, 33, 17, 33, 6, 4,197,251,173, 3,225,252,238,160, 90,254,235, 1, 21, 90,160, 3, 18,252,
- 31,204, 7,109,248,147,114, 2,207,160, 90, 1, 21,110, 1, 21, 90,160, 3, 22, 0, 3, 0, 6,255, 52, 4,203, 6,161, 0, 3,
- 0, 10, 0, 17, 0, 0, 5, 33, 17, 33, 3, 17, 1, 39, 55, 33, 17, 1, 17, 33, 17, 33, 39, 55, 4,203,251, 59, 4,197,114,254,
-235, 90,160,252,238, 3,225,252, 31, 3, 18,160, 90,204, 7,109,249, 5, 2,234,254,235, 90,160,253, 49, 3, 88, 3, 49,252,234,
-160, 90, 0, 0, 0, 3, 0, 6,255,196, 4,203, 5,213, 0, 8, 0, 30, 0, 39, 0, 0, 19, 16, 23, 22, 51, 50, 55, 1, 6, 1,
- 6, 35, 34, 39, 36, 17, 16, 37, 39, 51, 23, 54, 51, 50, 23, 4, 17, 16, 5, 19, 35, 9, 1, 54, 17, 16, 39, 38, 35, 34,128,244,
-122,122, 61, 62,254,108,207, 2,150, 87, 87,153,152,254,207, 1, 21,115,191, 80, 89, 88,152,153, 1, 50,254,231,129,190,254,118,
- 1,148,210,245,122,122, 62, 2,220,254,231,141, 71, 18, 3,106,140,252,178, 29, 88,176, 1, 96, 1, 79,176,250,174, 29, 88,176,
-254,160,254,175,176,254,233, 4,242,252,149,140, 1, 5, 1, 25,141, 71, 0, 0, 0, 3, 0, 37,254,162, 4,172, 7, 51, 0, 11,
- 0, 14, 0, 17, 0, 0, 1, 17, 51, 17, 51, 1, 33, 17, 35, 17, 33, 1, 19, 17, 3, 33, 51, 3, 2, 28,152, 47, 1,201,254, 8,
-152,254, 9, 1,201, 46,246, 1,142,246,246, 5,213, 1, 94,254,162,250, 43,254,162, 1, 94, 5,213,250,213, 3,107,252,149, 3,
-107, 0, 0, 0, 0, 3, 0, 6,255, 52, 4,203, 6,161, 0, 4, 0, 8, 0, 14, 0, 0, 19, 17, 9, 1, 17, 55, 17, 33, 17, 19,
- 17, 33, 17, 1, 35,120, 1,240, 1,241,114,251, 59,114, 3,225,254, 99,166, 6, 47,254,237,251,179, 4, 75, 1, 21,114,248,147,
- 7,109,252,236,252, 25, 3,229,252,117, 0, 0, 0, 4, 0, 6,255, 52, 4,203, 6,161, 0, 2, 0, 6, 0, 11, 0, 17, 0, 0,
- 37, 9, 2, 17, 33, 17, 37, 33, 53, 48, 33, 53, 1, 51, 1, 17, 33, 3,138,254,222,254,222,254,192, 4,197,251,173, 3,225,252,
- 31, 1,130,221, 1,130,252, 31,170, 4,121,251,135,254,138, 7,109,248,147,114, 90, 91, 5,122,250,134, 5,212, 0, 3, 0, 6,
-255, 52, 4,203, 6,161, 0, 3, 0, 10, 0, 17, 0, 0, 19, 33, 17, 33, 37, 33, 17, 33, 1, 7, 39, 3, 17, 7, 39, 1, 33, 17,
- 6, 4,197,251, 59, 2,180, 1,159,254, 71, 1, 20, 90,160,164,160, 90, 1, 20,254, 72, 6,161,248,147,114, 6,137,254,236, 90,
-160,250, 69, 5,187,160, 90, 1, 20,249,119, 0, 0, 3, 0, 37,254,162, 4,172, 7, 51, 0, 11, 0, 14, 0, 17, 0, 0, 33, 35,
- 1, 33, 17, 51, 17, 33, 1, 35, 17, 35, 17, 35, 27, 1, 17, 19, 2, 28, 46,254, 55, 1,247,152, 1,248,254, 55, 47,152,246,246,
-152,246, 5,213, 1, 94,254,162,250, 43,254,162, 6,137,252,149, 3,107,252,149, 3,107, 0, 0, 0, 3, 0, 6,255, 52, 4,203,
- 6,161, 0, 4, 0, 8, 0, 14, 0, 0, 23, 33, 17, 9, 2, 33, 17, 33, 9, 1, 51, 1, 17, 33,120, 3,225,254, 15,254, 16, 4,
- 83,251, 59, 4,197,251,173, 1,158,166, 1,157,252, 31, 90, 1, 21, 4, 75,251,179,254,123, 7,109,251,167, 3,141,252,117, 3,
-229, 0, 0, 0, 0, 4, 0, 6,255, 52, 4,203, 6,161, 0, 2, 0, 6, 0, 12, 0, 16, 0, 0, 1, 33, 9, 1, 17, 33, 17, 37,
- 33, 17, 1, 35, 1, 53, 33, 53, 33, 3,138,253,188, 1, 34,253,158, 4,197,251,173, 3,225,254,126,221,254,126, 3,225,252, 31,
- 5, 43,251,135,254,130, 7,109,248,147,114, 5,212,250,134, 5,122, 91, 90, 0, 0, 3, 0, 6,255, 52, 4,203, 6,161, 0, 3,
- 0, 10, 0, 17, 0, 0, 23, 17, 33, 17, 1, 17, 55, 23, 1, 33, 17, 41, 1, 17, 33, 1, 55, 23, 6, 4,197,253,239,160, 90,254,
-236, 1,185,253,189,254, 98, 1,184,254,236, 90,160,204, 7,109,248,147, 6,251,250, 69,160, 90,254,236, 6,137,249,119, 1, 20,
- 90,160, 0, 0,255,255, 1, 0,255, 52, 3,209, 5,213, 16, 38, 11,192, 0, 0, 16, 6, 0, 10, 0, 0, 0, 0,255,255, 0, 6,
-255, 52, 4,203, 5,213, 16, 38, 11,191, 0, 0, 16, 6, 2,209, 0, 0, 0, 0,255,255, 0, 6,255, 52, 4,203, 5, 63, 16, 38,
- 11,191, 0, 0, 16, 7, 9, 33, 0, 0, 0,200,255,255, 1, 0,255, 52, 3,209, 3,233, 16, 38, 11,192, 0, 0, 16, 6, 11,193,
- 0, 0, 0, 0,255,255, 0, 6,255, 52, 4,203, 5, 68, 16, 38, 11,191, 0, 0, 16, 7, 9, 37, 0, 0, 0,200,255,255, 0, 6,
-255, 52, 4,203, 6,161, 16, 38, 0, 10, 0, 0, 16, 6, 8, 66, 0, 0, 0, 0,255,255,255,236, 0, 90, 4,229, 5, 94, 16, 39,
- 9, 73, 0, 0, 0,200, 16, 6, 7,209, 0, 0,255,255, 0, 6,255, 52, 4,203, 6,161, 16, 38, 0, 29, 0, 0, 16, 6, 8, 66,
- 0, 0, 0, 0,255,255, 1, 8, 1,155, 3,201, 5, 22, 16, 39, 11,194, 0, 0,255, 6, 16, 6, 7,209, 0, 0,255,255, 1, 63,
- 1,212, 3,145, 5, 72, 16, 39, 11,194, 0, 0,255, 56, 16, 6, 11,193, 0, 0,255,255, 0, 6, 0,116, 4,203, 6,166, 16, 39,
- 11,194, 0, 0, 0,150, 16, 7, 9, 37, 0, 0, 0,200, 0, 0,255,255, 0, 88, 1,236, 4,121, 5, 72, 16, 39, 11,194, 0, 0,
-255, 56, 16, 6, 0, 97, 0, 0,255,255, 0, 88, 0,141, 4,121, 5, 72, 16, 39, 11,194, 0, 0,255, 56, 16, 6, 0, 33, 0, 0,
- 0, 3, 0, 37, 0, 0, 4,172, 5,213, 0, 10, 0, 32, 0, 42, 0, 0, 1, 33, 19, 22, 23, 22, 23, 22, 23, 22, 23, 37, 21, 6,
- 7, 6, 7, 3, 35, 3, 6, 7, 6, 7, 53, 54, 55, 3, 33, 3, 54, 55, 54, 5, 27, 1, 38, 39, 38, 39, 38, 39, 38, 3,170,253,
-124,122, 42, 40, 50, 74, 11, 22, 69, 60, 1,105, 75, 72, 35, 38,186,245,217, 23, 22, 71, 73, 74, 69,194, 4,135,216, 11, 11, 69,
-253,162,151,124, 45, 50, 23, 10, 77, 51, 10, 5, 43,254, 79, 2, 9, 11, 31, 5, 10, 33, 13,114,174, 59, 27, 14, 7,253,159, 2,
-198, 6, 10, 29, 63,174, 57, 27, 2,121,253, 63, 5, 5, 30,112,253,230, 1,184, 13, 22, 10, 4, 33, 12, 2, 0, 0, 3, 0, 88,
-255,227, 4,121, 5,240, 0, 23, 0, 42, 0, 61, 0, 0, 0, 32, 23, 22, 19, 54, 55, 21, 6, 7, 2, 7, 6, 32, 39, 38, 3, 6,
- 7, 53, 54, 55, 18, 55, 37, 34, 7, 6, 7, 54, 51, 50, 22, 23, 22, 23, 22, 51, 50, 55, 2, 39, 38, 1, 18, 23, 22, 51, 50, 55,
- 54, 55, 6, 35, 34, 39, 38, 39, 46, 1, 35, 34, 1,121, 1,222,123,104, 15, 24, 24, 23, 23, 9,112,123,254, 34,122,105, 15, 23,
- 24, 23, 23, 9,112, 1,105,141, 69, 53, 13, 27, 28, 53,100, 74, 11, 22,116, 93, 16, 17, 3, 66, 70,254, 90, 3, 67, 69,141,142,
- 70, 52, 13, 22, 23, 90,113, 23, 10, 77,103, 51, 23, 5,240,196,167,254,208, 17, 20,174, 18, 15,254,176,180,196,196,168, 1, 49,
- 17, 21,174, 18, 15, 1, 80,179, 36,152,115,206, 3, 22, 31, 5, 10, 55, 2, 1, 37,146,152,253,130,254,219,146,152,152,115,206,
- 2, 51, 10, 4, 33, 24, 0, 0, 0, 1, 0, 88,254,162, 4,121, 7, 51, 0, 31, 0, 0, 1, 21, 14, 1, 35, 34, 39, 17, 35, 17,
- 38, 39, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 23, 22, 23, 17, 51, 17, 22, 51, 50, 54, 4,121, 75,143, 79, 71, 85,152, 31, 25,
- 52, 51, 79,141, 73, 78,146, 83, 53, 50, 19, 23,152, 94, 78, 70,137, 3,122,174, 59, 55, 32,252, 40, 4, 21, 11, 6, 12, 59, 63,
-174, 60, 54, 11, 4, 7, 3,207,251,243, 39, 61, 0, 2, 1, 0,254,225, 3,209, 4, 39, 0, 3, 0, 17, 0, 0, 1, 51, 17, 35,
- 19, 51, 21, 7, 33, 21, 33, 7, 35, 55, 35, 53, 51, 55, 1,233,252,252, 13,252, 96, 1, 63,254,135, 43,154, 21,168,198, 48, 4,
- 39,254,209,254, 55,207,186,114, 83, 83,114,186, 0, 3, 0, 6,255, 52, 4,203, 6,161, 0, 3, 0, 7, 0, 27, 0, 0, 23, 33,
- 17, 33, 3, 17, 33, 17, 1, 33, 19, 23, 7, 51, 21, 33, 7, 33, 21, 33, 3, 39, 55, 35, 53, 33, 55, 33,120, 3,225,252, 31,114,
- 4,197,251,247, 2, 5,197,100,131,162,254,245,147, 1,158,253,251,199,100,131,160, 1, 8,147,254,101, 90, 6,137,249, 5, 7,
-109,248,147, 4,110, 1, 59,102,213,170,236,172,254,197,104,211,172,236, 0, 0,255,255, 0, 6,255, 52, 4,203, 6,161, 16, 38,
- 0, 34, 0, 0, 16, 6, 8, 66, 0, 0, 0, 0,255,255, 1, 54, 0, 0, 3,207, 4, 96, 16, 6, 2,245, 0, 0,255,255, 0,190,
-254, 86, 4, 84, 4,124, 16, 6, 2,253, 0, 0,255,255, 0, 70,255,227, 4,140, 4, 96, 16, 6, 3, 5, 0, 0,255,255, 0, 6,
-255, 52, 4,203, 4,122, 16, 38, 11,191, 0, 0, 16, 6, 2,237, 0, 0, 0, 0,255,255, 0,156,255, 52, 4, 53, 4,123, 16, 38,
- 11,190, 0, 0, 16, 6, 3, 34, 0, 0, 0, 0,255,255, 1, 0,255, 52, 3,209, 4, 96, 16, 38, 11,192, 0, 0, 16, 6, 2,245,
- 0, 0, 0, 0,255,255, 0, 6,255, 52, 4,203, 4, 96, 16, 38, 11,191, 0, 0, 16, 6, 3, 5, 0, 0, 0, 0,255,255, 0, 70,
-255,230, 4,149, 4,122, 16, 6, 2,237, 0, 0, 0, 1, 0, 26,254, 46, 4,183, 0,181, 0, 11, 0, 33,183, 6, 6, 10, 8, 5,
- 6, 1, 3, 47,220,236, 47,220,236, 49, 0,183, 0,182, 6, 9, 2,182, 7, 4, 47, 60,236, 50,220,236, 48, 19, 17, 35, 53, 33,
- 17, 33, 17, 33, 21, 35, 17,225,199, 1,111, 1,191, 1,111,199,254, 46, 1,218,173,254, 37, 1,219,173,254, 38, 0, 3, 0, 72,
-255,211, 4,136, 4, 58, 0, 5, 0, 17, 0, 48, 0, 0, 5, 1, 55, 9, 1, 23, 37, 35, 34, 6, 21, 20, 22, 51, 50, 54, 61, 1,
- 55, 17, 35, 53, 14, 1, 35, 34, 38, 53, 52, 54, 59, 1, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 23, 22, 23, 30, 1, 2,
-104,253,224, 72, 1,216, 1,216, 72,254, 24, 35, 91, 93, 69, 62, 86, 99,105,105, 33,102, 72, 97,116,142,138,140, 76, 84, 53,109,
- 52, 58,106, 50, 79, 56, 53, 37, 22, 18, 45, 2, 45, 74,254, 28, 1,228, 74,243, 63, 63, 56, 63,118,104, 23, 43,254,154, 93, 56,
- 53,108, 91,104,109, 16, 75, 68, 30, 29,103, 21, 22, 23, 22, 47, 28, 82, 0, 0, 0, 6, 0, 6, 0,218, 4,203, 4, 58, 0, 3,
- 0, 7, 0, 11, 0, 15, 0, 27, 0, 57, 0, 0, 1, 51, 53, 35, 23, 51, 53, 35, 5, 51, 53, 35, 1, 33, 53, 33, 1, 35, 34, 6,
- 21, 20, 22, 51, 50, 54, 61, 1, 55, 17, 35, 53, 14, 1, 35, 34, 38, 53, 52, 54, 59, 1, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1,
- 51, 50, 22, 23, 30, 1, 3, 97,115,115,170,115,115,254,172,115,115, 2, 20,251, 59, 4,197,252,183, 35, 91, 93, 69, 62, 86, 99,
-105,105, 33,102, 72, 97,116,142,138,140, 76, 84, 53,109, 52, 58,106, 50, 79,112, 34, 22, 18, 1,184,127,127,127,127,127,254,163,
-114, 1,167, 63, 63, 56, 63,118,104, 23, 43,254,154, 93, 56, 53,108, 91,104,109, 16, 75, 68, 30, 29,103, 21, 22, 46, 46, 28, 82,
- 0, 6, 0, 6, 0,218, 4,203, 4, 58, 0, 3, 0, 7, 0, 19, 0, 49, 0, 61, 0, 91, 0, 0, 37, 53, 33, 21, 33, 53, 33, 21,
- 3, 35, 34, 6, 21, 20, 22, 51, 50, 54, 61, 1, 55, 17, 35, 53, 14, 1, 35, 34, 38, 53, 52, 54, 59, 1, 53, 52, 38, 35, 34, 6,
- 7, 53, 62, 1, 51, 50, 22, 23, 30, 1, 5, 35, 34, 6, 21, 20, 22, 51, 50, 54, 55, 53, 55, 17, 35, 53, 14, 1, 35, 34, 38, 53,
- 52, 54, 59, 1, 53, 46, 1, 35, 34, 6, 7, 53, 62, 1, 51, 50, 22, 23, 30, 1, 2,155, 2, 48,251, 59, 2, 48,180, 35, 91, 93,
- 69, 62, 86, 99,105,105, 33,102, 72, 97,116,142,138,140, 76, 84, 53,109, 52, 58,106, 50, 79,112, 34, 22, 18, 1,127, 34, 91, 93,
- 69, 62, 86, 98, 1,105,105, 34,101, 73, 97,115,142,138,140, 1, 76, 83, 53,109, 52, 58,106, 50, 79,112, 34, 22, 18,218,114,114,
-114,114, 2, 25, 63, 63, 56, 63,118,104, 23, 43,254,154, 93, 56, 53,108, 91,104,109, 16, 75, 68, 30, 29,103, 21, 22, 46, 46, 28,
- 82,125, 63, 63, 56, 63,118,104, 23, 43,254,154, 93, 56, 53,108, 91,104,109, 16, 75, 68, 30, 29,103, 21, 22, 46, 46, 28, 82, 0,
- 0, 8, 0, 6, 1,107, 4,203, 4,138, 0, 30, 0, 42, 0, 46, 0, 50, 0, 54, 0, 58, 0, 62, 0, 66, 0, 0, 1, 17, 35, 53,
- 14, 1, 35, 34, 38, 53, 52, 54, 59, 1, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51, 50, 23, 22, 23, 30, 1, 7, 35, 34, 6, 21,
- 20, 22, 51, 50, 54, 61, 1, 1, 21, 37, 61, 1, 33, 21, 33, 17, 37, 21, 5, 45, 1, 21, 5, 21, 33, 21, 33, 21, 5, 21, 37, 3,
-113,105, 33,102, 72, 97,116,142,138,140, 76, 84, 53,109, 52, 58,106, 50, 79, 56, 53, 37, 22, 18,209, 35, 91, 93, 69, 62, 86, 99,
- 1,202,254,212, 1, 44,254,212, 1, 44,254,212,253,147,254,212, 1, 44,254,212, 1, 44,254,212, 1, 44, 3, 30,254,154, 93, 56,
- 53,108, 91,104,109, 16, 75, 68, 30, 29,103, 21, 22, 23, 22, 47, 28, 82,125, 63, 63, 56, 63,118,104, 23,254,241,121,140,121,188,
-114, 1, 68,140,121,140,121,140,121,140, 89,114, 74,140,121,140, 0, 7, 0, 82, 0, 56, 4,126, 4,207, 0, 52, 0, 60, 0, 68,
- 0, 76, 0, 84, 0, 90, 0, 96, 0, 0, 37, 35, 53, 38, 39, 38, 39, 38, 39, 7, 39, 55, 38, 53, 52, 55, 53, 39, 55, 23, 54, 55,
- 54, 55, 54, 55, 53, 51, 21, 22, 23, 22, 23, 22, 23, 55, 23, 7, 23, 22, 21, 20, 7, 21, 23, 7, 39, 6, 7, 6, 7, 6, 7, 53,
- 54, 55, 54, 55, 54, 55, 39, 17, 21, 55, 38, 39, 38, 39, 38, 39, 6, 7, 6, 7, 6, 7, 23, 17, 53, 7, 22, 23, 22, 23, 22, 39,
- 55, 39, 6, 21, 20, 37, 7, 23, 54, 53, 52, 2,154,100, 51, 47, 68, 57, 19, 15,177, 50,176, 28, 28,176, 50,177, 16, 18, 57, 68,
- 47, 51,100, 52, 46, 69, 57, 18, 15,177, 50,176, 1, 28, 28,175, 50,176, 16, 18, 57, 69, 46, 52, 31, 29, 50, 42, 9, 7,168,168,
- 7, 9, 42, 50, 29,131, 31, 28, 50, 42, 9, 8,168,168, 8, 9, 42, 50, 28,188,169,169, 16, 2, 42,169,169, 17, 56,203, 6, 20,
- 29, 56, 19, 19,102, 87,102, 69, 79, 80, 68, 1,102, 87,103, 20, 19, 56, 29, 20, 6,203,203, 6, 20, 29, 56, 18, 20,102, 87,101,
- 2, 68, 80, 79, 69, 1,101, 87,102, 20, 18, 56, 29, 20, 6,103, 5, 12, 21, 42, 9, 9, 97, 1,112,195, 97, 9, 9, 42, 21, 12,
- 5, 5, 12, 21, 42, 9, 9, 97,254,144,195, 97, 9, 9, 42, 21, 12,179, 98, 97, 46, 52, 51,149, 97, 98, 45, 52, 53, 0, 0, 0,
- 0, 4, 0, 70, 0, 94, 4,138, 4,162, 0, 15, 0, 30, 0, 39, 0, 48, 0, 0, 18, 52, 62, 2, 50, 30, 2, 20, 14, 2, 34, 46,
- 1, 19, 51, 27, 1, 51, 38, 39, 46, 2, 34, 14, 1, 7, 6, 5, 35, 3, 54, 55, 62, 1, 55, 54, 1, 3, 35, 22, 23, 30, 1, 23,
- 22, 70, 86,147,202,222,202,147, 86, 86,147,202,222,202,147, 28,240,192,193,239, 7, 24, 34,118,160,178,160,118, 34, 24, 3, 90,
-164,207, 56, 51, 80,118, 34, 25,254, 24,206,165, 7, 25, 34,118, 80, 51, 2, 17,222,202,147, 86, 86,147,202,222,202,147, 86, 86,
-147, 1,110,254,152, 1,104, 60, 56, 80,118, 68, 68,118, 80, 56,162,254,130, 8, 22, 34,118, 80, 57,254,193, 1,126, 63, 57, 80,
-118, 34, 22, 0, 0, 5, 0, 70, 0, 94, 4,138, 4,162, 0, 2, 0, 18, 0, 28, 0, 38, 0, 48, 0, 0, 1, 19, 33, 0, 52, 62,
- 2, 50, 30, 2, 20, 14, 2, 34, 46, 1, 18, 20, 30, 1, 23, 22, 23, 1, 6, 7, 55, 33, 38, 39, 46, 1, 34, 6, 7, 6, 5, 1,
- 54, 55, 62, 2, 52, 39, 38, 2,104,243,254, 26,254,209, 86,147,202,222,202,147, 86, 86,147,202,222,202,147, 25, 68,118, 80, 52,
- 55,254,180, 4, 3, 57, 2,176, 17, 19, 59,160,178,160, 59, 19, 2,209,254,180, 55, 52, 80,118, 68, 34, 3, 1, 77, 1,199,254,
-253,222,202,147, 86, 86,147,202,222,202,147, 86, 86,147, 1,146,178,160,118, 34, 22, 8, 2,105, 8, 9, 99, 21, 19, 59, 68, 68,
- 59, 19,103,253,151, 8, 22, 34,118,160,178, 80, 9, 0, 0, 0, 0, 3, 0, 70, 0, 94, 4,138, 4,162, 0, 2, 0, 9, 0, 37,
- 0, 0, 1, 55, 39, 23, 1, 7, 1, 7, 3, 5, 1, 51, 20, 30, 2, 50, 62, 2, 52, 46, 2, 35, 53, 50, 30, 2, 20, 14, 2, 34,
- 46, 2, 1, 5,145,174,205, 1,238, 86,254, 18,151, 70, 1,202,253,250,111, 68,118,160,178,160,118, 68, 68,118,160, 89,111,202,
-147, 86, 86,147,202,222,202,147, 86, 3, 83,146, 28,119,254, 18, 86, 1,238,151, 1,202, 70,254, 95, 89,160,118, 68, 68,118,160,
-178,160,118, 68,111, 86,147,202,222,202,147, 86, 86,147,202, 0, 0, 2, 0, 6,255, 52, 4,203, 6,161, 0, 3, 0, 7, 0, 0,
- 23, 33, 17, 33, 3, 17, 33, 17,120, 3,225,252, 31,114, 4,197, 90, 6,137,249, 5, 7,109,248,147, 0, 0, 0, 0, 1, 1, 24,
-253,240, 3,184, 7,134, 0, 11, 0, 0, 1, 35, 53, 16, 19, 18, 19, 51, 0, 3, 2, 17, 1,219,195,160,186,166,160,254,252, 90,
-127,253,240,234, 3,151, 1,226, 2, 48, 1, 3,253,243,254,134,253,238,252,237, 0, 1, 1, 24,253,252, 1,219, 7,137, 0, 3,
- 0, 0, 1, 51, 17, 35, 1, 24,195,195, 7,137,246,115, 0, 0, 0, 1, 1, 24,254, 20, 3,184, 7,137, 0, 11, 0, 0, 1, 21,
- 16, 19, 18, 19, 35, 2, 3, 2, 17, 53, 1,219,127,147,203,160,208,144,160, 7,137,234,252,165,254, 87,254, 20,254,101, 1, 69,
- 1,238, 2, 37, 3, 51,234, 0, 0, 1, 1, 25,253,240, 3,185, 7,134, 0, 11, 0, 0, 1, 53, 16, 3, 2, 1, 51, 18, 19, 18,
- 17, 21, 2,246,127, 90,254,252,160,166,186,160,253,240,234, 3, 19, 2, 18, 1,122, 2, 13,254,253,253,208,254, 30,252,105,234,
- 0, 1, 2,246,253,252, 3,185, 7,137, 0, 4, 0, 0, 1, 17, 35, 17, 48, 3,185,195, 7,137,246,115, 9,141, 0, 1, 1, 25,
-254, 20, 3,185, 7,137, 0, 11, 0, 0, 1, 51, 21, 16, 3, 2, 3, 35, 18, 19, 18, 17, 2,246,195,160,144,208,160,203,147,127,
- 7,137,234,252,205,253,219,254, 18,254,187, 1,155, 1,236, 1,169, 3, 91, 0, 0, 1, 1, 24,253,252, 3,184, 7,109, 0, 5,
- 0, 0, 1, 35, 17, 33, 21, 33, 1,219,195, 2,160,254, 35,253,252, 9,113,195, 0, 1, 1, 24,253,252, 1,219, 7,137, 0, 3,
- 0, 0, 1, 51, 17, 35, 1, 24,195,195, 7,137,246,115, 0, 0, 0, 1, 1, 24,254, 20, 3,184, 7,137, 0, 5, 0, 0, 1, 17,
- 33, 21, 33, 17, 1,219, 1,221,253, 96, 7,137,247, 78,195, 9,117, 0, 0, 0, 0, 1, 1, 24,253,252, 3,184, 7,109, 0, 5,
- 0, 0, 1, 17, 33, 53, 33, 17, 2,245,254, 35, 2,160,253,252, 8,174,195,246,143, 0, 0, 0, 0, 1, 2,245,253,252, 3,184,
- 7,122, 0, 3, 0, 0, 1, 51, 17, 35, 2,245,195,195, 7,122,246,130, 0, 0, 0, 1, 1, 24,254, 20, 3,184, 7,122, 0, 5,
- 0, 0, 1, 51, 17, 33, 53, 33, 2,245,195,253, 96, 1,221, 7,122,246,154,195, 0, 1, 2, 12,253,234, 4,193, 7,109, 0, 13,
- 0, 0, 1, 35, 17, 52, 55, 54, 51, 33, 21, 33, 34, 7, 6, 21, 2,198,186,111,121,186, 1, 19,254,231,101, 68, 57,253,234, 7,
-117,223,145,158,176,102, 87,153, 0, 1, 0, 17,253,252, 2,198, 7,134, 0, 24, 0, 0, 1, 22, 23, 22, 25, 1, 35, 17, 16, 39,
- 38, 37, 39, 53, 51, 32, 55, 54, 25, 1, 51, 17, 16, 7, 6, 1,253, 58, 42,101,186,110, 75,254,251, 61, 61, 1, 3, 77,110,186,
-101, 40, 2,193, 32, 61,147,254, 67,253,232, 2, 12, 1,183, 95, 65, 4, 1,187, 69, 99, 1,179, 2, 12,253,232,254, 72,152, 60,
- 0, 1, 2, 12,254, 20, 4,193, 7,134, 0, 13, 0, 0, 1, 17, 20, 23, 22, 51, 33, 21, 33, 34, 39, 38, 53, 17, 2,198, 57, 68,
-101, 1, 25,254,237,184,123,111, 7,134,248,148,154, 86,102,176,158,143,225, 7,100, 0, 0, 0, 0, 1, 2, 12,253,244, 2,198,
- 7,140, 0, 3, 0, 0, 1, 35, 17, 51, 2,198,186,186,253,244, 9,152, 0, 0, 0, 1, 0, 16,253,234, 2,197, 7,109, 0, 13,
- 0, 0, 1, 17, 52, 39, 38, 35, 33, 53, 33, 50, 23, 22, 21, 17, 2, 11, 57, 68,101,254,231, 1, 19,186,121,111,253,234, 7,125,
-153, 87,102,176,158,145,223,248,139, 0, 0, 0, 0, 1, 2, 11,253,252, 4,192, 7,134, 0, 24, 0, 0, 1, 38, 39, 38, 25, 1,
- 51, 17, 16, 23, 22, 33, 51, 21, 7, 4, 7, 6, 25, 1, 35, 17, 16, 55, 54, 2,212, 60, 40,101,186,110, 77, 1, 3, 61, 61,254,
-251, 75,110,186,101, 42, 2,193, 33, 60,152, 1,184, 2, 24,253,244,254, 77, 99, 69,187, 1, 4, 65, 95,254, 73,253,244, 2, 24,
- 1,189,147, 61, 0, 1, 0, 16,254, 20, 2,197, 7,134, 0, 13, 0, 0, 1, 51, 17, 20, 7, 6, 35, 33, 53, 33, 50, 55, 54, 53,
- 2, 11,186,111,123,184,254,237, 1, 25,101, 68, 57, 7,134,248,156,225,143,158,176,102, 86,154, 0, 1, 2, 1,254, 0, 2,199,
- 6, 40, 0, 3, 0, 0, 1, 17, 51, 17, 2, 1,198,254, 0, 8, 40,247,216, 0, 0, 2, 0, 25, 0,188, 4,143, 4,118, 0, 8,
- 0, 17, 0, 0, 37, 9, 1, 21, 33, 17, 33, 17, 33, 1, 33, 53, 7, 23, 53, 33, 17, 35, 1,142,254,139, 1,117, 1,169, 1, 88,
-252,255, 1,239,253,194,194,194, 3, 10,204,188, 1,117, 1,117,201, 1,153,253, 15, 1, 18, 93,195,195, 93, 2,101, 0, 0, 0,
- 0, 2, 0, 6, 0, 0, 4,203, 4,196, 0, 2, 0, 6, 0, 0, 1, 33, 9, 1, 33, 17, 33, 4,203,251, 59, 2, 98, 2, 99,251,
- 59, 4,197, 2,160, 2, 36,251, 60, 1,248, 0, 0, 1, 0,150,254, 46, 4, 58, 0,181, 0, 7, 0, 28,183, 4, 6, 6, 9, 3,
- 6, 1, 8, 16,220,236, 16,220,236, 49, 0,180, 0,182, 4, 6, 2, 47, 60,220,236, 48, 19, 17, 51, 17, 33, 17, 51, 17,150,168,
- 2, 84,168,254, 46, 2,135,254, 37, 1,219,253,121, 0, 0, 0, 0, 1,255,236, 1,240, 4,229, 2,156, 0, 3, 0, 0, 3, 53,
- 33, 21, 20, 4,249, 1,240,172,172, 0, 0, 0, 0, 1,255,236, 1,154, 4,229, 2,242, 0, 3, 0, 0, 3, 17, 33, 17, 20, 4,
-249, 1,154, 1, 88,254,168, 0, 0, 1, 2, 24,253,150, 2,184, 7,200, 0, 3, 0, 0, 1, 17, 51, 17, 2, 24,160,253,150, 10,
- 50,245,206, 0, 0, 1, 1,200,253,150, 3, 8, 7,200, 0, 3, 0, 0, 1, 17, 33, 17, 1,200, 1, 64,253,150, 10, 50,245,206,
- 0, 3,255,236, 1,240, 4,229, 2,156, 0, 3, 0, 7, 0, 11, 0, 0, 1, 53, 33, 21, 33, 53, 33, 21, 33, 53, 33, 21, 3,177,
- 1, 52,252,239, 1, 41,252,239, 1, 52, 1,240,172,172,172,172,172,172, 0, 0, 0, 3,255,236, 1,154, 4,229, 2,242, 0, 3,
- 0, 7, 0, 11, 0, 0, 1, 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, 17, 3,177, 1, 52,252,239, 1, 41,252,239, 1, 52, 1,154,
- 1, 88,254,168, 1, 88,254,168, 1, 88,254,168, 0, 3, 2, 24,253,150, 2,184, 7,200, 0, 3, 0, 7, 0, 11, 0, 0, 1, 17,
- 51, 17, 3, 17, 51, 17, 3, 17, 51, 17, 2, 24,160,160,160,160,160,253,150, 3, 12,252,244, 3,192, 2,178,253, 78, 3,102, 3,
- 12,252,244, 0, 0, 3, 1,200,253,150, 3, 8, 7,200, 0, 3, 0, 7, 0, 11, 0, 0, 1, 17, 33, 17, 1, 17, 33, 17, 1, 17,
- 33, 17, 1,200, 1, 64,254,192, 1, 64,254,192, 1, 64,253,150, 3, 12,252,244, 3,192, 2,178,253, 78, 3,102, 3, 12,252,244,
- 0, 4,255,235, 1,240, 4,229, 2,156, 0, 3, 0, 7, 0, 11, 0, 15, 0, 0, 3, 53, 51, 21, 51, 53, 51, 21, 51, 53, 51, 21,
- 51, 53, 51, 21, 21,188,180,179,180,178,180,189, 1,240,172,172,172,172,172,172,172,172, 0, 0, 0, 4,255,236, 1,154, 4,230,
- 2,242, 0, 3, 0, 7, 0, 11, 0, 15, 0, 0, 3, 17, 51, 17, 51, 17, 51, 17, 51, 17, 51, 17, 51, 17, 51, 17, 20,188,180,179,
-180,178,180,189, 1,154, 1, 88,254,168, 1, 88,254,168, 1, 88,254,168, 1, 88,254,168, 0, 0, 0, 4, 2, 24,253,150, 2,184,
- 7,200, 0, 3, 0, 7, 0, 11, 0, 15, 0, 0, 1, 17, 51, 17, 3, 17, 51, 17, 3, 17, 51, 17, 3, 17, 51, 17, 2, 24,160,160,
-160,160,160,160,160, 5,150, 2, 50,253,206,248, 0, 2, 50,253,206, 5,115, 1,217,254, 39,253,115, 1,217,254, 39, 0, 0, 0,
- 0, 4, 1,200,253,150, 3, 8, 7,200, 0, 3, 0, 7, 0, 11, 0, 15, 0, 0, 1, 17, 33, 17, 1, 17, 33, 17, 1, 17, 33, 17,
- 1, 17, 33, 17, 1,200, 1, 64,254,192, 1, 64,254,192, 1, 64,254,192, 1, 64, 5,150, 2, 50,253,206,248, 0, 2, 50,253,206,
- 5,115, 1,217,254, 39,253,115, 1,217,254, 39, 0, 1, 2, 24,253,150, 4,229, 2,156, 0, 5, 0, 0, 1, 17, 33, 21, 33, 17,
- 2, 24, 2,205,253,211,253,150, 5, 6,172,251,166, 0, 0, 0, 0, 1, 2, 24,253,150, 4,229, 2,242, 0, 5, 0, 0, 1, 17,
- 33, 17, 33, 17, 2, 24, 2,205,253,211,253,150, 5, 92,254,168,251,252, 0, 0, 0, 1, 1,200,253,150, 4,229, 2,156, 0, 5,
- 0, 0, 1, 17, 33, 21, 33, 17, 1,200, 3, 29,254, 35,253,150, 5, 6,172,251,166, 0, 0, 0, 0, 1, 1,200,253,150, 4,229,
- 2,242, 0, 5, 0, 0, 1, 17, 33, 17, 33, 17, 1,200, 3, 29,254, 35,253,150, 5, 92,254,168,251,252, 0, 0, 0, 1,255,236,
-253,150, 2,184, 2,156, 0, 5, 0, 0, 1, 17, 33, 53, 33, 17, 2, 24,253,212, 2,204,253,150, 4, 90,172,250,250, 0, 0, 0,
- 0, 1,255,236,253,150, 2,184, 2,242, 0, 5, 0, 0, 1, 17, 33, 17, 33, 17, 2, 24,253,212, 2,204,253,150, 4, 4, 1, 88,
-250,164, 0, 0, 0, 1,255,236,253,150, 3, 8, 2,156, 0, 5, 0, 0, 1, 17, 33, 53, 33, 17, 1,200,254, 36, 3, 28,253,150,
- 4, 90,172,250,250, 0, 0, 0, 0, 1,255,236,253,150, 3, 8, 2,242, 0, 5, 0, 0, 1, 17, 33, 17, 33, 17, 1,200,254, 36,
- 3, 28,253,150, 4, 4, 1, 88,250,164, 0, 0, 0, 1, 2, 24, 1,240, 4,229, 7,200, 0, 5, 0, 0, 1, 17, 51, 17, 33, 21,
- 2, 24,160, 2, 45, 1,240, 5,216,250,212,172, 0, 1, 2, 24, 1,154, 4,229, 7,200, 0, 5, 0, 0, 1, 17, 51, 17, 33, 17,
- 2, 24,160, 2, 45, 1,154, 6, 46,251, 42,254,168, 0, 0, 0, 0, 1, 1,200, 1,240, 4,229, 7,200, 0, 5, 0, 0, 1, 17,
- 33, 17, 33, 21, 1,200, 1, 64, 1,221, 1,240, 5,216,250,212,172, 0, 0, 0, 0, 1, 1,200, 1,154, 4,229, 7,200, 0, 5,
- 0, 0, 1, 17, 33, 17, 33, 17, 1,200, 1, 64, 1,221, 1,154, 6, 46,251, 42,254,168, 0, 0, 0, 1,255,236, 1,240, 2,184,
- 7,200, 0, 5, 0, 0, 3, 53, 33, 17, 51, 17, 20, 2, 44,160, 1,240,172, 5, 44,250, 40, 0, 0, 1,255,236, 1,154, 2,184,
- 7,200, 0, 5, 0, 0, 3, 17, 33, 17, 51, 17, 20, 2, 44,160, 1,154, 1, 88, 4,214,249,210, 0, 1,255,236, 1,240, 3, 8,
- 7,200, 0, 5, 0, 0, 3, 53, 33, 17, 33, 17, 20, 1,220, 1, 64, 1,240,172, 5, 44,250, 40, 0, 1,255,236, 1,154, 3, 8,
- 7,200, 0, 5, 0, 0, 3, 17, 33, 17, 33, 17, 20, 1,220, 1, 64, 1,154, 1, 88, 4,214,249,210, 0, 0, 0, 0, 1, 2, 24,
-253,150, 4,229, 7,200, 0, 7, 0, 0, 1, 17, 51, 17, 33, 21, 33, 17, 2, 24,160, 2, 45,253,211,253,150, 10, 50,250,212,172,
-251,166, 0, 0, 0, 1, 2, 24,253,150, 4,229, 7,200, 0, 7, 0, 0, 1, 17, 51, 17, 33, 17, 33, 17, 2, 24,160, 2, 45,253,
-211,253,150, 10, 50,251, 42,254,168,251,252, 0, 0, 1, 1,200,253,150, 4,229, 7,200, 0, 9, 0, 0, 1, 17, 35, 17, 33, 17,
- 33, 21, 33, 17, 2, 24, 80, 1, 64, 1,221,253,211,253,150, 4, 90, 5,216,250,212,172,251,166, 0, 1, 1,200,253,150, 4,229,
- 7,200, 0, 9, 0, 0, 1, 17, 51, 17, 51, 17, 33, 21, 33, 17, 1,200, 80,160, 2, 45,254, 35,253,150, 5, 6, 5, 44,250,212,
-172,251,166, 0, 0, 1, 1,200,253,150, 4,229, 7,200, 0, 7, 0, 0, 1, 17, 33, 17, 33, 21, 33, 17, 1,200, 1, 64, 1,221,
-254, 35,253,150, 10, 50,250,212,172,251,166, 0, 0, 1, 1,200,253,150, 4,229, 7,200, 0, 9, 0, 0, 1, 17, 35, 17, 33, 17,
- 33, 17, 33, 17, 2, 24, 80, 1, 64, 1,221,253,211,253,150, 4, 4, 6, 46,251, 42,254,168,251,252, 0, 0, 0, 0, 1, 1,200,
-253,150, 4,229, 7,200, 0, 9, 0, 0, 1, 17, 51, 17, 51, 17, 33, 17, 33, 17, 1,200, 80,160, 2, 45,254, 35,253,150, 5, 92,
- 4,214,251, 42,254,168,251,252, 0, 1, 1,200,253,150, 4,229, 7,200, 0, 7, 0, 0, 1, 17, 33, 17, 33, 17, 33, 17, 1,200,
- 1, 64, 1,221,254, 35,253,150, 10, 50,251, 42,254,168,251,252, 0, 1,255,236,253,150, 2,184, 7,200, 0, 7, 0, 0, 1, 17,
- 33, 53, 33, 17, 51, 17, 2, 24,253,212, 2, 44,160,253,150, 4, 90,172, 5, 44,245,206, 0, 0, 0, 1,255,236,253,150, 2,184,
- 7,200, 0, 7, 0, 0, 1, 17, 33, 17, 33, 17, 51, 17, 2, 24,253,212, 2, 44,160,253,150, 4, 4, 1, 88, 4,214,245,206, 0,
- 0, 1,255,236,253,150, 3, 8, 7,200, 0, 9, 0, 0, 1, 17, 33, 53, 33, 17, 33, 17, 35, 17, 2, 24,253,212, 1,220, 1, 64,
- 80,253,150, 4, 90,172, 5, 44,250, 40,251,166, 0, 1,255,236,253,150, 3, 8, 7,200, 0, 9, 0, 0, 1, 17, 33, 53, 33, 17,
- 51, 17, 51, 17, 1,200,254, 36, 2, 44,160, 80,253,150, 4, 90,172, 5, 44,250,212,250,250, 0, 0, 1,255,236,253,150, 3, 8,
- 7,200, 0, 7, 0, 0, 1, 17, 33, 53, 33, 17, 33, 17, 1,200,254, 36, 1,220, 1, 64,253,150, 4, 90,172, 5, 44,245,206, 0,
- 0, 1,255,236,253,150, 3, 8, 7,200, 0, 9, 0, 0, 1, 17, 33, 17, 33, 17, 33, 17, 35, 17, 2, 24,253,212, 1,220, 1, 64,
- 80,253,150, 4, 4, 1, 88, 4,214,249,210,251,252, 0, 0, 0, 0, 1,255,236,253,150, 3, 8, 7,200, 0, 9, 0, 0, 1, 17,
- 33, 17, 33, 17, 51, 17, 51, 17, 1,200,254, 36, 2, 44,160, 80,253,150, 4, 4, 1, 88, 4,214,251, 42,250,164, 0, 1,255,236,
-253,150, 3, 8, 7,200, 0, 7, 0, 0, 1, 17, 33, 17, 33, 17, 33, 17, 1,200,254, 36, 1,220, 1, 64,253,150, 4, 4, 1, 88,
- 4,214,245,206, 0, 1,255,236,253,150, 4,229, 2,156, 0, 7, 0, 0, 1, 17, 33, 53, 33, 21, 33, 17, 2, 24,253,212, 4,249,
-253,211,253,150, 4, 90,172,172,251,166, 0, 0, 0, 1,255,236,253,150, 4,229, 2,242, 0, 9, 0, 0, 1, 17, 33, 17, 33, 21,
- 33, 21, 33, 17, 2, 24,253,212, 2,204, 2, 45,253,211,253,150, 4, 4, 1, 88, 86,172,251,166, 0, 1,255,236,253,150, 4,229,
- 2,242, 0, 9, 0, 0, 1, 17, 33, 53, 33, 53, 33, 17, 33, 17, 2, 24,253,212, 2, 44, 2,205,253,211,253,150, 4, 90,172, 86,
-254,168,251,252, 0, 1,255,236,253,150, 4,229, 2,242, 0, 7, 0, 0, 1, 17, 33, 17, 33, 17, 33, 17, 2, 24,253,212, 4,249,
-253,211,253,150, 4, 4, 1, 88,254,168,251,252, 0, 1,255,236,253,150, 4,229, 2,156, 0, 7, 0, 0, 1, 17, 33, 53, 33, 21,
- 33, 17, 1,200,254, 36, 4,249,254, 35,253,150, 4, 90,172,172,251,166, 0, 0, 0, 1,255,236,253,150, 4,229, 2,242, 0, 9,
- 0, 0, 1, 17, 33, 17, 33, 21, 33, 21, 33, 17, 1,200,254, 36, 3, 28, 1,221,254, 35,253,150, 4, 4, 1, 88, 86,172,251,166,
- 0, 1,255,236,253,150, 4,229, 2,242, 0, 9, 0, 0, 1, 17, 33, 53, 33, 53, 33, 17, 33, 17, 1,200,254, 36, 1,220, 3, 29,
-254, 35,253,150, 4, 90,172, 86,254,168,251,252, 0, 1,255,236,253,150, 4,229, 2,242, 0, 7, 0, 0, 1, 17, 33, 17, 33, 17,
- 33, 17, 1,200,254, 36, 4,249,254, 35,253,150, 4, 4, 1, 88,254,168,251,252, 0, 1,255,236, 1,240, 4,229, 7,200, 0, 7,
- 0, 0, 3, 53, 33, 17, 51, 17, 33, 21, 20, 2, 44,160, 2, 45, 1,240,172, 5, 44,250,212,172, 0, 1,255,236, 1,154, 4,229,
- 7,200, 0, 9, 0, 0, 3, 17, 33, 17, 51, 17, 33, 21, 33, 21, 20, 2, 44,160, 2, 45,253,211, 1,154, 1, 88, 4,214,250,212,
-172, 86, 0, 0, 0, 1,255,236, 1,154, 4,229, 7,200, 0, 9, 0, 0, 3, 53, 33, 17, 51, 17, 33, 17, 33, 53, 20, 2, 44,160,
- 2, 45,253, 51, 1,240,172, 5, 44,251, 42,254,168, 86, 0, 0, 0, 1,255,236, 1,154, 4,229, 7,200, 0, 7, 0, 0, 3, 17,
- 33, 17, 51, 17, 33, 17, 20, 2, 44,160, 2, 45, 1,154, 1, 88, 4,214,251, 42,254,168, 0, 0, 0, 1,255,236, 1,240, 4,229,
- 7,200, 0, 7, 0, 0, 3, 53, 33, 17, 33, 17, 33, 21, 20, 1,220, 1, 64, 1,221, 1,240,172, 5, 44,250,212,172, 0, 0, 0,
- 0, 1,255,236, 1,154, 4,229, 7,200, 0, 9, 0, 0, 3, 17, 33, 17, 33, 17, 33, 21, 33, 21, 20, 1,220, 1, 64, 1,221,254,
- 35, 1,154, 1, 88, 4,214,250,212,172, 86, 0, 0, 1,255,236, 1,154, 4,229, 7,200, 0, 9, 0, 0, 3, 53, 33, 17, 33, 17,
- 33, 17, 33, 53, 20, 1,220, 1, 64, 1,221,252,227, 1,240,172, 5, 44,251, 42,254,168, 86, 0, 0, 1,255,236, 1,154, 4,229,
- 7,200, 0, 7, 0, 0, 3, 17, 33, 17, 33, 17, 33, 17, 20, 1,220, 1, 64, 1,221, 1,154, 1, 88, 4,214,251, 42,254,168, 0,
- 0, 1,255,236,253,150, 4,229, 7,200, 0, 11, 0, 0, 1, 17, 35, 17, 33, 53, 33, 17, 51, 17, 33, 21, 2,184,160,253,212, 2,
- 44,160, 2, 45, 1,240,251,166, 4, 90,172, 5, 44,250,212,172, 0, 1,255,236,253,150, 4,229, 7,200, 0, 11, 0, 0, 1, 17,
- 33, 17, 33, 17, 51, 17, 33, 21, 33, 17, 2, 24,253,212, 2, 44,160, 2, 45,253,211,253,150, 4, 4, 1, 88, 4,214,250,212,172,
-251,166, 0, 0, 0, 1,255,236,253,150, 4,229, 7,200, 0, 11, 0, 0, 1, 17, 33, 53, 33, 17, 51, 17, 33, 17, 33, 17, 2, 24,
-253,212, 2, 44,160, 2, 45,253,211,253,150, 4, 90,172, 5, 44,251, 42,254,168,251,252, 0, 0, 0, 1,255,236,253,150, 4,229,
- 7,200, 0, 11, 0, 0, 1, 17, 33, 17, 33, 17, 51, 17, 33, 17, 33, 17, 2, 24,253,212, 2, 44,160, 2, 45,253,211,253,150, 4,
- 4, 1, 88, 4,214,251, 42,254,168,251,252, 0, 0, 1,255,236,253,150, 4,229, 7,200, 0, 11, 0, 0, 1, 17, 33, 53, 33, 17,
- 33, 17, 33, 21, 33, 17, 2, 24,253,212, 1,220, 1, 64, 1,221,253,211,253,150, 4, 90,172, 5, 44,250,212,172,251,166, 0, 0,
- 0, 1,255,236,253,150, 4,229, 7,200, 0, 11, 0, 0, 1, 17, 33, 53, 33, 17, 51, 17, 33, 21, 33, 17, 1,200,254, 36, 2, 44,
-160, 2, 45,254, 35,253,150, 4, 90,172, 5, 44,250,212,172,251,166, 0, 0, 0, 0, 1,255,236,253,150, 4,229, 7,200, 0, 11,
- 0, 0, 1, 17, 33, 53, 33, 17, 33, 17, 33, 21, 33, 17, 1,200,254, 36, 1,220, 1, 64, 1,221,254, 35,253,150, 4, 90,172, 5,
- 44,250,212,172,251,166, 0, 0, 0, 1,255,236,253,150, 4,229, 7,200, 0, 13, 0, 0, 1, 17, 33, 17, 33, 17, 33, 17, 33, 21,
- 33, 21, 35, 17, 2, 24,253,212, 1,220, 1, 64, 1,221,254, 35, 80,253,150, 4, 4, 1, 88, 4,214,250,212,172, 86,251,252, 0,
- 0, 1,255,236,253,150, 4,229, 7,200, 0, 13, 0, 0, 1, 17, 35, 53, 33, 53, 33, 17, 33, 17, 33, 17, 33, 17, 2, 24, 80,254,
- 36, 1,220, 1, 64, 1,221,253,211,253,150, 4, 4, 86,172, 5, 44,251, 42,254,168,251,252, 0, 0, 1,255,236,253,150, 4,229,
- 7,200, 0, 13, 0, 0, 1, 17, 33, 17, 33, 17, 51, 17, 51, 21, 33, 21, 33, 17, 1,200,254, 36, 2, 44,160, 80, 1,221,254, 35,
-253,150, 4, 4, 1, 88, 4,214,251, 42, 86,172,251,166, 0, 0, 0, 1,255,236,253,150, 4,229, 7,200, 0, 13, 0, 0, 1, 17,
- 33, 53, 33, 53, 51, 17, 51, 17, 33, 17, 33, 17, 1,200,254, 36, 1,220, 80,160, 2, 45,254, 35,253,150, 4, 90,172, 86, 4,214,
-251, 42,254,168,251,252, 0, 0, 0, 1,255,236,253,150, 4,229, 7,200, 0, 11, 0, 0, 1, 17, 33, 17, 33, 17, 33, 17, 33, 17,
- 33, 17, 2, 24,253,212, 1,220, 1, 64, 1,221,253,211,253,150, 4, 4, 1, 88, 4,214,251, 42,254,168,251,252, 0, 1,255,236,
-253,150, 4,229, 7,200, 0, 11, 0, 0, 1, 17, 33, 17, 33, 17, 51, 17, 33, 17, 33, 17, 1,200,254, 36, 2, 44,160, 2, 45,254,
- 35,253,150, 4, 4, 1, 88, 4,214,251, 42,254,168,251,252, 0, 0, 1,255,236,253,150, 4,229, 7,200, 0, 11, 0, 0, 1, 17,
- 33, 17, 33, 17, 33, 17, 33, 21, 33, 17, 1,200,254, 36, 1,220, 1, 64, 1,221,254, 35,253,150, 4, 4, 1, 88, 4,214,250,212,
-172,251,166, 0, 0, 1,255,236,253,150, 4,229, 7,200, 0, 11, 0, 0, 1, 17, 33, 53, 33, 17, 33, 17, 33, 17, 33, 17, 1,200,
-254, 36, 1,220, 1, 64, 1,221,254, 35,253,150, 4, 90,172, 5, 44,251, 42,254,168,251,252, 0, 0, 1,255,236,253,150, 4,229,
- 7,200, 0, 11, 0, 0, 1, 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, 17, 1,200,254, 36, 1,220, 1, 64, 1,221,254, 35,253,150,
- 4, 4, 1, 88, 4,214,251, 42,254,168,251,252, 0, 2,255,236, 1,240, 4,229, 2,156, 0, 3, 0, 7, 0, 0, 3, 53, 33, 21,
- 51, 53, 33, 21, 20, 2, 44,160, 2, 45, 1,240,172,172,172,172, 0, 2,255,236, 1,154, 4,229, 2,242, 0, 3, 0, 7, 0, 0,
- 1, 17, 33, 17, 33, 17, 33, 17, 2,184, 2, 45,251, 7, 2, 44, 1,154, 1, 88,254,168, 1, 88,254,168, 0, 0, 0, 2, 2, 24,
-253,150, 2,184, 7,200, 0, 3, 0, 7, 0, 0, 1, 17, 51, 17, 3, 17, 51, 17, 2, 24,160,160,160, 2,242, 4,214,251, 42,250,
-164, 4, 4,251,252, 0, 0, 0, 0, 2, 1,200,253,150, 3, 8, 7,200, 0, 3, 0, 7, 0, 0, 1, 17, 33, 17, 1, 17, 33, 17,
- 1,200, 1, 64,254,192, 1, 64, 2,242, 4,214,251, 42,250,164, 4, 4,251,252, 0, 2,255,236, 1, 68, 4,229, 3, 72, 0, 3,
- 0, 7, 0, 0, 3, 53, 33, 21, 1, 53, 33, 21, 20, 4,249,251, 7, 4,249, 2,156,172,172,254,168,172,172, 0, 0, 2, 1,120,
-253,150, 3, 88, 7,200, 0, 3, 0, 7, 0, 0, 1, 17, 51, 17, 51, 17, 51, 17, 1,120,160,160,160,253,150, 10, 50,245,206, 10,
- 50,245,206, 0, 0, 1, 2, 24,253,150, 4,229, 3, 72, 0, 9, 0, 0, 1, 17, 33, 21, 33, 21, 33, 21, 33, 17, 2, 24, 2,205,
-253,211, 2, 45,253,211,253,150, 5,178,172,172,172,252, 82, 0, 0, 1, 1,120,253,150, 4,229, 2,156, 0, 9, 0, 0, 1, 17,
- 33, 21, 33, 17, 35, 17, 35, 17, 1,120, 3,109,254,115,160,160,253,150, 5, 6,172,251,166, 4, 90,251,166, 0, 0, 2, 1,120,
-253,150, 4,229, 3, 72, 0, 5, 0, 11, 0, 0, 1, 17, 33, 21, 33, 17, 51, 17, 33, 21, 33, 17, 1,120, 3,109,253, 51,160, 2,
- 45,254,115,253,150, 5,178,172,250,250, 4, 90,172,252, 82, 0, 0, 1,255,236,253,150, 2,184, 3, 72, 0, 9, 0, 0, 1, 17,
- 33, 53, 33, 53, 33, 53, 33, 17, 2, 24,253,212, 2, 44,253,212, 2,204,253,150, 3,174,172,172,172,250, 78, 0, 0, 1,255,236,
-253,150, 3, 88, 2,156, 0, 9, 0, 0, 3, 53, 33, 17, 35, 17, 35, 17, 35, 17, 20, 3,108,160,160,160, 1,240,172,250,250, 4,
- 90,251,166, 4, 90, 0, 0, 0, 0, 2,255,236,253,150, 3, 88, 3, 72, 0, 5, 0, 11, 0, 0, 1, 17, 33, 53, 33, 17, 33, 17,
- 33, 53, 33, 17, 2,184,253, 52, 3,108,254, 32,254,116, 2, 44,253,150, 5, 6,172,250, 78, 3,174,172,251,166, 0, 1, 2, 24,
- 1, 68, 4,229, 7,200, 0, 9, 0, 0, 1, 17, 51, 17, 33, 21, 33, 21, 33, 21, 2, 24,160, 2, 45,253,211, 2, 45, 1, 68, 6,
-132,251,128,172,172,172, 0, 0, 0, 1, 1,120, 1,240, 4,229, 7,200, 0, 9, 0, 0, 1, 17, 51, 17, 51, 17, 51, 17, 33, 21,
- 1,120,160,160,160, 1,141, 1,240, 5,216,250,212, 5, 44,250,212,172, 0, 0, 0, 2, 1,120, 1, 68, 4,229, 7,200, 0, 5,
- 0, 11, 0, 0, 1, 17, 51, 17, 33, 21, 1, 17, 51, 17, 33, 21, 2,184,160, 1,141,252,147,160, 2,205, 2,156, 5, 44,251,128,
-172,254,168, 6,132,250, 40,172, 0, 1,255,236, 1, 68, 2,184, 7,200, 0, 9, 0, 0, 3, 53, 33, 53, 33, 53, 33, 17, 51, 17,
- 20, 2, 44,253,212, 2, 44,160, 1, 68,172,172,172, 4,128,249,124, 0, 0, 0, 0, 1,255,236, 1,240, 3, 88, 7,200, 0, 9,
- 0, 0, 3, 53, 33, 17, 51, 17, 51, 17, 51, 17, 20, 1,140,160,160,160, 1,240,172, 5, 44,250,212, 5, 44,250, 40, 0, 0, 0,
- 0, 2,255,236, 1, 68, 3, 88, 7,200, 0, 5, 0, 11, 0, 0, 3, 53, 33, 17, 51, 17, 1, 53, 33, 17, 51, 17, 20, 1,140,160,
-253,212, 2,204,160, 2,156,172, 4,128,250,212,254,168,172, 5,216,249,124, 0, 0, 1, 2, 24,253,150, 4,229, 7,200, 0, 11,
- 0, 0, 1, 17, 51, 17, 33, 21, 33, 21, 33, 21, 33, 17, 2, 24,160, 2, 45,253,211, 2, 45,253,211,253,150, 10, 50,251,128,172,
-172,172,252, 82, 0, 2, 1,120,253,150, 4,229, 7,200, 0, 3, 0, 11, 0, 0, 1, 17, 51, 17, 51, 17, 51, 17, 33, 21, 33, 17,
- 1,120,160,160,160, 1,141,254,115,253,150, 10, 50,245,206, 10, 50,250,212,172,251,166, 0, 0, 0, 3, 1,120,253,150, 4,229,
- 7,200, 0, 5, 0, 9, 0, 15, 0, 0, 1, 17, 51, 17, 33, 21, 1, 17, 51, 17, 51, 17, 33, 21, 33, 17, 2,184,160, 1,141,252,
-147,160,160, 2, 45,254,115, 2,156, 5, 44,251,128,172,250,250, 10, 50,245,206, 4, 90,172,252, 82, 0, 0, 0, 0, 1,255,236,
-253,150, 2,184, 7,200, 0, 11, 0, 0, 1, 17, 33, 53, 33, 53, 33, 53, 33, 17, 51, 17, 2, 24,253,212, 2, 44,253,212, 2, 44,
-160,253,150, 3,174,172,172,172, 4,128,245,206, 0, 2,255,236,253,150, 3, 88, 7,200, 0, 7, 0, 11, 0, 0, 1, 17, 33, 53,
- 33, 17, 51, 17, 51, 17, 51, 17, 1,120,254,116, 1,140,160,160,160,253,150, 4, 90,172, 5, 44,245,206, 10, 50,245,206, 0, 0,
- 0, 3,255,236,253,150, 3, 88, 7,200, 0, 5, 0, 11, 0, 15, 0, 0, 3, 53, 33, 17, 51, 17, 3, 17, 33, 53, 33, 17, 51, 17,
- 51, 17, 20, 1,140,160,160,254,116, 2, 44,160,160, 2,156,172, 4,128,250,212,250,250, 3,174,172,251,166, 10, 50,245,206, 0,
- 0, 2,255,236,253,150, 4,229, 3, 72, 0, 7, 0, 11, 0, 0, 1, 17, 33, 53, 33, 21, 33, 17, 1, 53, 33, 21, 2, 24,253,212,
- 4,249,253,211,253, 52, 4,249,253,150, 3,174,172,172,252, 82, 5, 6,172,172, 0, 1,255,236,253,150, 4,229, 2,156, 0, 11,
- 0, 0, 3, 53, 33, 21, 33, 17, 35, 17, 35, 17, 35, 17, 20, 4,249,254,115,160,160,160, 1,240,172,172,251,166, 4, 90,251,166,
- 4, 90, 0, 0, 0, 3,255,236,253,150, 4,229, 3, 72, 0, 3, 0, 9, 0, 15, 0, 0, 3, 53, 33, 21, 1, 17, 33, 53, 33, 17,
- 51, 17, 33, 21, 33, 17, 20, 4,249,252,147,254,116, 2, 44,160, 2, 45,254,115, 2,156,172,172,250,250, 3,174,172,251,166, 4,
- 90,172,252, 82, 0, 2,255,236, 1, 68, 4,229, 7,200, 0, 3, 0, 11, 0, 0, 3, 53, 33, 21, 1, 53, 33, 17, 51, 17, 33, 21,
- 20, 4,249,251, 7, 2, 44,160, 2, 45, 1, 68,172,172, 1, 88,172, 4,128,251,128,172, 0, 0, 0, 1,255,236, 1,240, 4,229,
- 7,200, 0, 11, 0, 0, 3, 53, 33, 17, 51, 17, 51, 17, 51, 17, 33, 21, 20, 1,140,160,160,160, 1,141, 1,240,172, 5, 44,250,
-212, 5, 44,250,212,172, 0, 0, 0, 3,255,236, 1, 68, 4,229, 7,200, 0, 3, 0, 9, 0, 15, 0, 0, 3, 53, 33, 21, 1, 53,
- 33, 17, 51, 17, 51, 17, 51, 17, 33, 21, 20, 4,249,251, 7, 1,140,160,160,160, 1,141, 1, 68,172,172, 1, 88,172, 4,128,250,
-212, 5, 44,251,128,172, 0, 0, 0, 1,255,236,253,150, 4,229, 7,200, 0, 19, 0, 0, 1, 17, 33, 53, 33, 53, 33, 53, 33, 17,
- 51, 17, 33, 21, 33, 21, 33, 21, 33, 17, 2, 24,253,212, 2, 44,253,212, 2, 44,160, 2, 45,253,211, 2, 45,253,211,253,150, 3,
-174,172,172,172, 4,128,251,128,172,172,172,252, 82, 0, 0, 0, 0, 1,255,236,253,150, 4,229, 7,200, 0, 19, 0, 0, 3, 53,
- 33, 17, 51, 17, 51, 17, 51, 17, 33, 21, 33, 17, 35, 17, 35, 17, 35, 17, 20, 1,140,160,160,160, 1,141,254,115,160,160,160, 1,
-240,172, 5, 44,250,212, 5, 44,250,212,172,251,166, 4, 90,251,166, 4, 90, 0, 0, 4,255,236,253,150, 4,229, 7,200, 0, 5,
- 0, 11, 0, 17, 0, 23, 0, 0, 1, 17, 33, 21, 33, 17, 33, 17, 33, 53, 33, 17, 1, 53, 33, 17, 51, 17, 51, 17, 51, 17, 33, 21,
- 2,184, 2, 45,254,115,254, 32,254,116, 2, 44,253,212, 1,140,160,160,160, 1,141,253,150, 4, 90,172,252, 82, 3,174,172,251,
-166, 5, 6,172, 4,128,250,212, 5, 44,251,128,172, 0, 0, 0, 0, 1, 2, 24,253,150, 4,229, 2,156, 0, 12, 0, 0, 1, 17,
- 52, 55, 54, 51, 33, 21, 33, 34, 6, 21, 17, 2, 24, 81, 91,168, 1,121,254,135, 89, 91,253,150, 3, 96,161,127,134,172,126,124,
-252,160, 0, 0, 0, 1,255,236,253,150, 2,184, 2,156, 0, 13, 0, 0, 1, 17, 52, 39, 38, 35, 33, 53, 33, 50, 23, 22, 21, 17,
- 2, 24, 46, 45, 89,254,136, 1,120,168, 91, 81,253,150, 3, 96,126, 61, 63,172,134,120,168,252,160, 0, 0, 0, 0, 1,255,236,
- 1,240, 2,184, 7,200, 0, 12, 0, 0, 3, 53, 33, 50, 54, 53, 17, 51, 17, 20, 7, 6, 35, 20, 1,120, 89, 91,160, 81, 91,168,
- 1,240,172,126,124, 4, 50,251,206,168,120,134, 0, 1, 2, 24, 1,240, 4,229, 7,200, 0, 12, 0, 0, 1, 33, 34, 39, 38, 53,
- 17, 51, 17, 20, 22, 51, 33, 4,229,254,135,168, 91, 81,160, 91, 89, 1,121, 1,240,134,120,168, 4, 50,251,206,124,126, 0, 0,
- 0, 1,255,147,253,150, 5, 62, 7,200, 0, 3, 0, 0, 3, 1, 51, 1,109, 4,249,178,251, 7,253,150, 10, 50,245,206, 0, 0,
- 0, 1,255,147,253,150, 5, 62, 7,200, 0, 3, 0, 0, 1, 35, 1, 51, 5, 62,178,251, 7,178,253,150, 10, 50, 0, 1,255,147,
-253,150, 5, 62, 7,200, 0, 11, 0, 0, 1, 35, 9, 1, 35, 9, 1, 51, 9, 1, 51, 1, 5, 62,178,253,220,253,221,178, 2,125,
-253,131,178, 2, 35, 2, 36,178,253,132,253,150, 4, 99,251,157, 5, 25, 5, 25,251,157, 4, 99,250,231, 0, 0, 0, 1,255,236,
- 1,240, 2,124, 2,156, 0, 3, 0, 0, 3, 53, 33, 21, 20, 2,144, 1,240,172,172, 0, 0, 0, 0, 1, 2, 24, 2, 70, 2,184,
- 7,200, 0, 3, 0, 0, 1, 17, 51, 17, 2, 24,160, 2, 70, 5,130,250,126, 0, 0, 1, 2,124, 1,240, 4,229, 2,156, 0, 3,
- 0, 0, 1, 53, 33, 21, 2,124, 2,105, 1,240,172,172, 0, 0, 0, 1, 2, 24,253,150, 2,184, 2, 70, 0, 3, 0, 0, 1, 17,
- 51, 17, 2, 24,160,253,150, 4,176,251, 80, 0, 0, 1,255,236, 1,154, 2,124, 2,242, 0, 3, 0, 0, 3, 17, 33, 17, 20, 2,
-144, 1,154, 1, 88,254,168, 0, 0, 1, 1,200, 2, 70, 3, 8, 7,200, 0, 3, 0, 0, 1, 17, 33, 17, 1,200, 1, 64, 2, 70,
- 5,130,250,126, 0, 1, 2,124, 1,154, 4,229, 2,242, 0, 3, 0, 0, 1, 17, 33, 17, 2,124, 2,105, 1,154, 1, 88,254,168,
- 0, 1, 1,200,253,150, 3, 8, 2, 70, 0, 3, 0, 0, 1, 17, 33, 17, 1,200, 1, 64,253,150, 4,176,251, 80, 0, 1,255,236,
- 1,154, 4,229, 2,242, 0, 7, 0, 0, 3, 53, 33, 53, 33, 17, 33, 53, 20, 2,144, 2,105,253,151, 1,240,172, 86,254,168, 86,
- 0, 1, 1,200,253,150, 3, 8, 7,200, 0, 7, 0, 0, 1, 17, 51, 17, 51, 17, 51, 17, 1,200, 80,160, 80,253,150, 4,176, 5,
-130,250,126,251, 80, 0, 0, 0, 0, 1,255,236, 1,154, 4,229, 2,242, 0, 7, 0, 0, 3, 17, 33, 21, 33, 21, 33, 21, 20, 2,
-144, 2,105,253,151, 1,154, 1, 88, 86,172, 86, 0, 1, 1,200,253,150, 3, 8, 7,200, 0, 7, 0, 0, 1, 17, 35, 17, 33, 17,
- 35, 17, 2, 24, 80, 1, 64, 80,253,150, 4,176, 5,130,250,126,251, 80, 0, 0,255,255,255,236, 2, 20, 4,229, 6, 40, 16, 7,
- 8,222, 0, 0, 4, 20, 0, 0, 0, 1,255,236,254, 0, 4,229,255, 5, 0, 3, 0, 0, 3, 17, 33, 17, 20, 4,249,254, 0, 1,
- 5,254,251, 0, 0, 1,255,236,254, 0, 4,229, 0, 10, 0, 3, 0, 0, 3, 17, 33, 17, 20, 4,249,254, 0, 2, 10,253,246, 0,
- 0, 1,255,236,254, 0, 4,229, 1, 15, 0, 3, 0, 0, 3, 17, 33, 17, 20, 4,249,254, 0, 3, 15,252,241, 0, 0, 1,255,236,
-254, 0, 4,229, 2, 20, 0, 3, 0, 0, 3, 17, 33, 17, 20, 4,249,254, 0, 4, 20,251,236, 0, 0, 1,255,236,254, 0, 4,229,
- 3, 25, 0, 3, 0, 0, 3, 17, 33, 17, 20, 4,249,254, 0, 5, 25,250,231, 0, 0, 1,255,236,254, 0, 4,229, 4, 30, 0, 3,
- 0, 0, 3, 17, 33, 17, 20, 4,249,254, 0, 6, 30,249,226, 0, 0, 1,255,236,254, 0, 4,229, 5, 35, 0, 3, 0, 0, 3, 17,
- 33, 17, 20, 4,249,254, 0, 7, 35,248,221, 0, 0, 1,255,236,254, 0, 4,229, 6, 40, 0, 3, 0, 0, 3, 17, 33, 17, 20, 4,
-249,254, 0, 8, 40,247,216, 0, 0, 1,255,236,254, 0, 4, 70, 6, 40, 0, 3, 0, 0, 3, 17, 33, 17, 20, 4, 90,254, 0, 8,
- 40,247,216, 0, 0, 1,255,236,254, 0, 3,167, 6, 40, 0, 3, 0, 0, 3, 17, 33, 17, 20, 3,186,254, 0, 8, 40,247,216, 0,
- 0, 1,255,236,254, 0, 3, 8, 6, 40, 0, 3, 0, 0, 3, 17, 33, 17, 20, 3, 27,254, 0, 8, 40,247,216, 0, 0, 1,255,236,
-254, 0, 2,104, 6, 40, 0, 3, 0, 0, 3, 17, 33, 17, 20, 2,124,254, 0, 8, 40,247,216, 0, 0, 1,255,236,254, 0, 1,201,
- 6, 40, 0, 3, 0, 0, 3, 17, 33, 17, 20, 1,221,254, 0, 8, 40,247,216, 0, 0, 1,255,236,254, 0, 1, 42, 6, 40, 0, 3,
- 0, 0, 3, 17, 33, 17, 20, 1, 62,254, 0, 8, 40,247,216, 0, 0, 1,255,236,254, 0, 0,139, 6, 40, 0, 3, 0, 0, 3, 17,
- 51, 17, 20,158,254, 0, 8, 40,247,216, 0, 0,255,255, 2,105,254, 0, 4,229, 6, 40, 16, 7, 8,230, 2,125, 0, 0, 0, 0,
- 0, 12,255,236,254, 0, 4, 70, 6, 40, 0, 3, 0, 7, 0, 11, 0, 15, 0, 19, 0, 23, 0, 27, 0, 31, 0, 35, 0, 39, 0, 43,
- 0, 47, 0, 0, 1, 17, 51, 17, 33, 17, 51, 17, 19, 17, 51, 17, 33, 17, 51, 17, 1, 17, 51, 17, 33, 17, 51, 17, 19, 17, 51, 17,
- 33, 17, 51, 17, 1, 17, 51, 17, 33, 17, 51, 17, 19, 17, 51, 17, 33, 17, 51, 17, 3,166,160,252,228,159,159,159,252,229,158, 3,
- 28,160,252,228,159,159,159,252,229,158, 3, 28,160,252,228,159,159,159,252,229,158,254, 0, 1, 5,254,251, 1, 5,254,251, 1,
-109, 1, 5,254,251, 1, 5,254,251, 1,110, 1, 5,254,251, 1, 5,254,251, 1,109, 1, 5,254,251, 1, 5,254,251, 1,110, 1,
- 5,254,251, 1, 5,254,251, 1,109, 1, 5,254,251, 1, 5,254,251, 0, 0, 0, 0, 20,255,236,254, 0, 4,229, 6, 40, 0, 3,
- 0, 7, 0, 11, 0, 15, 0, 19, 0, 23, 0, 27, 0, 31, 0, 39, 0, 47, 0, 55, 0, 63, 0, 71, 0, 79, 0, 87, 0, 95, 0,103,
- 0,111, 0,119, 0,127, 0, 0, 23, 51, 17, 35, 25, 1, 35, 17, 19, 17, 51, 17, 3, 17, 35, 17, 19, 17, 51, 17, 3, 17, 35, 17,
- 19, 17, 51, 17, 3, 17, 35, 17, 1, 59, 1, 17, 35, 25, 1, 35, 17, 59, 1, 17, 35, 25, 1, 35, 17, 59, 1, 17, 35, 25, 1, 35,
- 17, 59, 1, 17, 35, 25, 1, 35, 1, 59, 1, 17, 35, 25, 1, 35, 17, 59, 1, 17, 35, 25, 1, 35, 17, 59, 1, 17, 35, 25, 1, 35,
- 17, 59, 1, 17, 35, 25, 1, 35, 1, 59, 1, 17, 35, 25, 1, 35, 17, 59, 1, 17, 35, 25, 1, 35, 17, 59, 1, 17, 35, 25, 1, 35,
- 17, 59, 1, 17, 35, 25, 1, 35,138,160,160,158,158,160,160,158,158,160,160,158,158,160,160,158, 1, 62,159,159,159,159,159,159,
-159,159,159,159,159,159,159,159,159,159, 1, 62,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159, 1, 62,160,159,
-159,160,160,159,159,160,160,159,159,160,160,159,159,160,251,254,251, 1, 5, 1, 5,254,251, 1, 5, 1, 5,254,251, 1, 5, 1,
- 5,254,251, 1, 5, 1, 5,254,251, 1, 5, 1, 5,254,251, 1, 5, 1, 5,254,251, 1, 5, 1, 5,254,251,249,226,254,251, 1,
- 5, 1, 5, 1, 5,254,251, 1, 5, 1, 5, 1, 5,254,251, 1, 5, 1, 5, 1, 5,254,251, 1, 5, 1, 5,248,221,254,251, 1,
- 5, 1, 5, 1, 5,254,251, 1, 5, 1, 5, 1, 5,254,251, 1, 5, 1, 5, 1, 5,254,251, 1, 5, 1, 5,248,221,254,251, 1,
- 5, 1, 5, 1, 5,254,251, 1, 5, 1, 5, 1, 5,254,251, 1, 5, 1, 5, 1, 5,254,251, 1, 5, 1, 5, 0, 0, 7,255,236,
-254, 0, 4,229, 6, 40, 0, 25, 0, 29, 0, 33, 0, 37, 0, 41, 0, 45, 0, 49, 0, 0, 3, 17, 51, 17, 35, 17, 51, 17, 35, 17,
- 51, 17, 33, 17, 51, 17, 33, 17, 35, 17, 35, 17, 33, 17, 35, 25, 1, 51, 17, 35, 1, 51, 17, 35, 1, 51, 17, 35, 1, 51, 17, 35,
- 1, 51, 17, 35, 1, 51, 17, 35, 20,158,158,158,158,158, 1,222,159, 1,222,159,160,254, 35,159,159,159, 2,124,160,160,254,194,
-159,159,254,194,159,159, 2,124,160,160,254,194,159,159,254, 0, 1,109, 1, 5, 1,214, 1, 5, 1,214, 1, 5,254,251, 1, 5,
-247,216, 1, 5,254,251, 1, 5,254,251, 5,182, 1, 5,254,251, 1, 5,253,141, 1, 5,253,142, 1, 5,254,251, 1, 5,253,141,
- 1, 5, 0, 0,255,255,255,236, 5, 35, 4,229, 6, 40, 16, 7, 8,219, 0, 0, 7, 35, 0, 0,255,255, 4, 69,254, 0, 4,228,
- 6, 40, 16, 7, 8,233, 4, 90, 0, 0, 0, 0, 0, 1,255,236,254, 0, 2,104, 2, 20, 0, 3, 0, 0, 3, 17, 33, 17, 20, 2,
-124,254, 0, 4, 20,251,236, 0,255,255, 2,105,254, 0, 4,229, 2, 20, 16, 7, 8,240, 2,125, 0, 0, 0, 0,255,255,255,236,
- 2, 20, 2,104, 6, 40, 16, 7, 8,240, 0, 0, 4, 20, 0, 0,255,255,255,236,254, 0, 4,229, 6, 40, 16, 38, 8,240, 0, 0,
- 16, 38, 8,241, 0, 0, 16, 6, 8,242, 0, 0,255,255,255,236,254, 0, 4,229, 6, 40, 16, 38, 8,241, 0, 0, 16, 6, 8,242,
- 0, 0, 0, 0,255,255,255,236,254, 0, 4,229, 6, 40, 16, 38, 8,240, 0, 0, 16, 38, 8,242, 0, 0, 16, 6, 8,247, 0, 0,
-255,255,255,236,254, 0, 4,229, 6, 40, 16, 38, 8,241, 0, 0, 16, 38, 8,242, 0, 0, 16, 6, 8,247, 0, 0,255,255, 2,105,
- 2, 20, 4,229, 6, 40, 16, 7, 8,240, 2,125, 4, 20, 0, 0,255,255,255,236,254, 0, 4,229, 6, 40, 16, 38, 8,240, 0, 0,
- 16, 6, 8,247, 0, 0, 0, 0,255,255,255,236,254, 0, 4,229, 6, 40, 16, 38, 8,240, 0, 0, 16, 38, 8,241, 0, 0, 16, 6,
- 8,247, 0, 0, 0, 1, 0, 6,255,177, 4,203, 4,119, 0, 3, 0, 0, 23, 17, 33, 17, 6, 4,197, 78, 4,196,251, 60, 0, 0,
- 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 3, 0, 7, 0, 0, 55, 33, 17, 33, 3, 17, 33, 17,120, 3,225,252, 31,114, 4,197,
- 36, 3,224,251,174, 4,196,251, 60, 0, 0, 0, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 11, 0, 23, 0, 0, 19, 20, 51, 33,
- 50, 53, 17, 52, 35, 33, 34, 21, 3, 17, 16, 41, 1, 32, 25, 1, 16, 41, 1, 32,120,228, 2, 25,228,228,253,231,228,114, 1, 86,
- 2, 25, 1, 86,254,170,253,231,254,170, 1, 8,228,228, 2, 24,228,228,253,232, 2, 24, 1, 86,254,170,253,232,254,170, 0, 0,
-255,255, 0, 6,255,177, 4,203, 4,119, 16, 38, 9, 4, 0, 0, 16, 6, 8,251, 0, 0, 0, 0, 0, 6, 0, 6,255,177, 4,203,
- 4,119, 0, 3, 0, 7, 0, 11, 0, 15, 0, 19, 0, 23, 0, 0, 23, 17, 33, 17, 37, 33, 53, 33, 53, 33, 53, 33, 53, 33, 53, 33,
- 53, 33, 53, 33, 53, 33, 53, 33, 6, 4,197,251,173, 3,225,252, 31, 3,225,252, 31, 3,225,252, 31, 3,225,252, 31, 3,225,252,
- 31, 78, 4,196,251, 60,114,110,114,106,114,107,114,107,114,106, 0, 6, 0, 6,255,177, 4,203, 4,119, 0, 3, 0, 7, 0, 11,
- 0, 15, 0, 19, 0, 23, 0, 0, 23, 17, 33, 17, 39, 51, 17, 35, 3, 51, 17, 35, 3, 51, 17, 35, 3, 51, 17, 35, 3, 51, 17, 35,
- 6, 4,197,225,110,110,220,106,106,220,106,106,222,108,108,220,106,106, 78, 4,196,251, 60,114, 3,224,252, 32, 3,224,252, 32,
- 3,224,252, 32, 3,224,252, 32, 3,224, 0, 0, 0, 26, 0, 6,255,177, 4,203, 4,119, 0, 3, 0, 7, 0, 11, 0, 15, 0, 19,
- 0, 23, 0, 27, 0, 31, 0, 35, 0, 39, 0, 43, 0, 47, 0, 51, 0, 55, 0, 59, 0, 63, 0, 67, 0, 71, 0, 75, 0, 79, 0, 83,
- 0, 87, 0, 91, 0, 95, 0, 99, 0,103, 0, 0, 19, 51, 53, 35, 17, 51, 53, 35, 17, 51, 53, 35, 17, 51, 53, 35, 17, 51, 53, 35,
- 19, 51, 53, 35, 17, 51, 53, 35, 17, 51, 53, 35, 17, 51, 53, 35, 17, 51, 53, 35, 19, 51, 53, 35, 17, 51, 53, 35, 17, 51, 53, 35,
- 17, 51, 53, 35, 17, 51, 53, 35, 19, 51, 53, 35, 17, 51, 53, 35, 17, 51, 53, 35, 17, 51, 53, 35, 17, 51, 53, 35, 19, 51, 53, 35,
- 17, 51, 53, 35, 17, 51, 53, 35, 17, 51, 53, 35, 17, 51, 53, 35, 5, 17, 33, 17,120,106,106,106,106,106,106,106,106,106,106,220,
-108,108,108,108,108,108,108,108,108,108,222,106,106,106,106,106,106,106,106,106,106,220,106,106,106,106,106,106,106,106,106,106,
-220,110,110,110,110,110,110,110,110,110,110,252, 28, 4,197, 3,154,106,254,185,107,254,184,107,254,185,106,254,182,110, 3, 8,
-106,254,185,107,254,184,107,254,185,106,254,182,110, 3, 8,106,254,185,107,254,184,107,254,185,106,254,182,110, 3, 8,106,254,
-185,107,254,184,107,254,185,106,254,182,110, 3, 8,106,254,185,107,254,184,107,254,185,106,254,182,110,224, 4,196,251, 60, 0,
- 0, 8, 0, 6,255,177, 4,203, 4,119, 0, 3, 0, 7, 0, 11, 0, 17, 0, 21, 0, 25, 0, 28, 0, 31, 0, 0, 23, 17, 33, 17,
- 1, 21, 1, 51, 1, 21, 1, 55, 1, 21, 1, 51, 53, 1, 51, 1, 53, 1, 51, 1, 53, 1, 51, 23, 53, 1, 21, 51, 6, 4,197,251,
-173, 1, 52,138,254, 66, 2, 96,149,253, 11, 3,151, 74,252,108,161, 2,243,253,164,162, 1,186,254,208,162,142,252, 31,146, 78,
- 4,196,251, 60, 2, 48,139,254,205, 2,245,150,253,160, 1, 3,224, 74,252,106, 76, 3,148,253, 14,151, 2, 91,254, 70,139, 1,
- 47,142,142,252,178,146, 0, 0, 0, 8, 0, 6,255,177, 4,203, 4,119, 0, 3, 0, 7, 0, 11, 0, 17, 0, 21, 0, 25, 0, 28,
- 0, 31, 0, 0, 23, 17, 33, 17, 37, 51, 1, 53, 1, 23, 1, 53, 1, 51, 1, 53, 35, 1, 53, 1, 35, 1, 53, 1, 35, 1, 53, 55,
- 35, 1, 51, 53, 6, 4,197,253,208,138, 1, 52,253, 11,149, 2, 96,252, 31, 74, 3,151, 77,252,108, 2,243,151,253,164, 1,186,
-138,254,208,142,142, 3, 79,146, 78, 4,196,251, 60,114, 1, 51,139,254, 66, 1, 2, 96,150,253, 11, 3,150, 74,252,108,162, 2,
-242,253,165,161, 1,186,254,209,161,142,252, 32,146, 0, 0, 0, 0, 26, 0, 6,255,177, 4,203, 4,119, 0, 4, 0, 9, 0, 14,
- 0, 19, 0, 23, 0, 28, 0, 33, 0, 37, 0, 41, 0, 45, 0, 50, 0, 55, 0, 59, 0, 63, 0, 67, 0, 71, 0, 75, 0, 80, 0, 84,
- 0, 88, 0, 92, 0, 97, 0,102, 0,106, 0,111, 0,115, 0, 0, 37, 23, 51, 53, 39, 1, 23, 55, 39, 35, 17, 23, 55, 39, 7, 1,
- 23, 55, 39, 35, 7, 23, 55, 39, 3, 23, 55, 39, 7, 1, 23, 55, 39, 35, 7, 23, 55, 39, 7, 23, 55, 39, 7, 23, 55, 39, 3, 51,
- 55, 39, 7, 1, 23, 55, 53, 35, 7, 23, 55, 39, 7, 23, 55, 39, 7, 23, 55, 39, 7, 23, 55, 39, 7, 23, 55, 39, 1, 23, 55, 53,
- 39, 7, 23, 55, 39, 7, 23, 55, 39, 7, 23, 55, 39, 7, 23, 51, 55, 39, 37, 23, 55, 53, 39, 7, 23, 55, 39, 7, 23, 51, 55, 39,
- 5, 17, 33, 17, 3,235, 36, 74, 35,252, 66, 34, 76, 33, 77, 28, 76, 70, 34, 1, 15, 69, 76, 27, 85,189, 69, 76, 70,190, 35, 69,
- 75, 29, 2, 65, 76, 69, 33, 85,183, 75, 76, 76,231, 75, 76, 76,231, 76, 75, 76,184, 74, 36, 75, 35, 3,116, 75, 34, 77,182, 75,
- 69, 75,226, 76, 75, 75,232, 75, 76, 76,230, 75, 75, 76,224, 75, 69, 75, 2,193, 74, 29, 34,226, 75, 76, 75,232, 75, 76, 76,230,
- 74, 76, 76,224, 36, 78, 30, 75, 2, 36, 69, 35, 29,231, 69, 75, 69,231, 30, 78, 36, 69,253, 2, 4,197, 72, 36, 76, 35, 3, 39,
- 34, 76, 32,254,127, 29, 76, 69, 34, 1, 14, 69, 76, 26,189, 69, 76, 69,253,196, 34, 69, 75, 28, 2, 65, 76, 69, 33,183, 75, 75,
- 76,232, 75, 75, 76,231, 76, 75, 76,253,195, 36, 75, 35, 3,116, 76, 34, 74,182, 76, 69, 76,226, 75, 75, 76,232, 75, 75, 75,230,
- 76, 75, 75,224, 75, 69, 75, 1,137, 76, 29, 82, 34,226, 75, 76, 75,232, 75, 76, 74,230, 76, 76, 74,224, 36, 30, 75,237, 69, 34,
- 82, 28,231, 69, 75, 69,231, 30, 36, 69,219, 4,196,251, 60, 0, 0, 1, 0,219, 0,135, 3,245, 3,161, 0, 3, 0, 0, 55, 17,
- 33, 17,219, 3, 26,135, 3, 26,252,230, 0, 0, 0, 2, 0,219, 0,135, 3,245, 3,161, 0, 3, 0, 7, 0, 0, 37, 33, 17, 33,
- 3, 17, 33, 17, 1, 77, 2, 54,253,202,114, 3, 26,249, 2, 54,253, 88, 3, 26,252,230, 0, 0, 0, 1, 0, 6, 0,240, 4,203,
- 3, 56, 0, 3, 0, 0, 37, 33, 17, 33, 4,203,251, 59, 4,197,240, 2, 72, 0, 0, 2, 0, 6, 0,240, 4,203, 3, 56, 0, 3,
- 0, 7, 0, 0, 1, 17, 33, 17, 5, 33, 17, 33, 4, 89,252, 31, 4, 83,251, 59, 4,197, 1, 98, 1,100,254,156,114, 2, 72, 0,
- 0, 1, 1, 68,255,177, 3,141, 4,119, 0, 3, 0, 0, 5, 17, 33, 17, 1, 68, 2, 72, 78, 4,196,251, 60, 0, 0, 2, 1, 68,
-255,177, 3,141, 4,119, 0, 3, 0, 7, 0, 0, 37, 33, 17, 33, 3, 17, 33, 17, 1,182, 1,100,254,156,114, 2, 72, 36, 3,224,
-251,174, 4,196,251, 60, 0, 0, 0, 1, 0, 6, 0,240, 4,203, 3, 56, 0, 3, 0, 0, 37, 33, 1, 33, 3,151,252,111, 1, 52,
- 3,145,240, 2, 72, 0, 0, 0, 0, 2, 0, 6, 0,240, 4,203, 3, 56, 0, 3, 0, 7, 0, 0, 1, 19, 33, 3, 5, 33, 1, 33,
- 3, 97,188,253, 83,188, 2,227,252,111, 1, 52, 3,145, 1, 98, 1,100,254,156,114, 2, 72, 0, 0, 1, 0, 6,255,177, 4,203,
- 4,119, 0, 2, 0, 0, 23, 9, 1, 6, 2, 98, 2, 99, 78, 4,196,251, 60, 0, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2,
- 0, 5, 0, 0, 55, 33, 9, 3,177, 3,111,254, 72,253,158, 2, 98, 2, 99, 36, 3,110,252, 32, 4,196,251, 60, 0, 1, 0,219,
- 0,135, 3,245, 3,161, 0, 2, 0, 0, 55, 9, 1,219, 1,141, 1,141,135, 3, 26,252,230, 0, 0, 2, 0,219, 0,135, 3,245,
- 3,161, 0, 2, 0, 5, 0, 0, 37, 33, 3, 9, 2, 1,134, 1,196,226,254,115, 1,141, 1,141,249, 1,196,253,202, 3, 26,252,
-230, 0, 0, 0, 0, 1, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 0, 23, 17, 1, 6, 4,197, 78, 4,196,253,158, 0, 0, 0,
- 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 5, 0, 0, 55, 9, 1, 3, 17, 1,120, 3,111,252,145,114, 4,197, 92, 1,
-184, 1,184,251,230, 4,196,253,158, 0, 0, 0, 0, 1, 0,219, 0,135, 3,245, 3,161, 0, 2, 0, 0, 55, 17, 1,219, 3, 26,
-135, 3, 26,254,115, 0, 0, 0, 0, 2, 0,219, 0,135, 3,245, 3,161, 0, 2, 0, 5, 0, 0, 1, 45, 1, 3, 17, 1, 1, 77,
- 1,196,254, 60,114, 3, 26, 1, 50,226,226,253,145, 3, 26,254,115, 0, 0, 0, 0, 1, 0, 6, 0,135, 4,203, 3,161, 0, 2,
- 0, 0, 55, 17, 1, 6, 4,197,135, 3, 26,254,115, 0, 0, 0, 0, 2, 0, 6, 0,135, 4,203, 3,161, 0, 2, 0, 5, 0, 0,
- 19, 45, 1, 3, 17, 1,120, 3, 54,252,202,114, 4,197, 1, 50,226,226,253,145, 3, 26,254,115, 0, 1, 0, 6,255,177, 4,203,
- 4,119, 0, 2, 0, 0, 5, 1, 33, 2,104,253,158, 4,197, 78, 4,196, 0, 0, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2,
- 0, 5, 0, 0, 37, 1, 33, 9, 1, 33, 2,104, 1,149,252,215, 1,148,253,158, 4,197,205, 3, 40,251,189, 4,196, 0, 0, 0,
- 0, 1, 0,219, 0,135, 3,245, 3,161, 0, 2, 0, 0, 37, 1, 33, 2,104,254,115, 3, 26,135, 3, 26, 0, 0, 0, 2, 0,219,
- 0,135, 3,245, 3,161, 0, 2, 0, 5, 0, 0, 1, 19, 33, 19, 1, 33, 2,104,226,254, 60,226,254,115, 3, 26, 1,107, 1,196,
-253, 88, 3, 26, 0, 1, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 0, 19, 1, 17, 6, 4,197, 2, 20, 2, 98,251, 60, 0, 0,
- 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 5, 0, 0, 19, 1, 17, 9, 1, 17,234, 3,111,251,173, 4,197, 2, 20,254,
- 72, 3,112,254, 72, 2, 98,251, 60, 0, 0, 0, 0, 1, 0,219, 0,135, 3,245, 3,161, 0, 2, 0, 0, 19, 1, 17,219, 3, 26,
- 2, 20, 1,141,252,230, 0, 0, 0, 2, 0,219, 0,135, 3,245, 3,161, 0, 2, 0, 5, 0, 0, 1, 5, 17, 5, 1, 17, 1,191,
- 1,196,253, 88, 3, 26, 2, 20,226, 1,196,226, 1,141,252,230, 0, 1, 0, 6, 0,135, 4,203, 3,161, 0, 2, 0, 0, 19, 1,
- 17, 6, 4,197, 2, 20, 1,141,252,230, 0, 0, 0, 2, 0, 6, 0,135, 4,203, 3,161, 0, 2, 0, 5, 0, 0, 1, 5, 17, 5,
- 1, 17, 1, 35, 3, 54,251,173, 4,197, 2, 20,226, 1,196,226, 1,141,252,230, 0, 1, 0, 6,255,177, 4,203, 4,119, 0, 3,
- 0, 0, 19, 9, 2, 6, 2, 98, 2, 99,253,157, 2, 20, 2, 98,253,158,253,158, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 3,
- 0, 7, 0, 0, 19, 9, 6,195, 1,165, 1,166,254, 90,253,158, 2, 98, 2, 99,253,157, 2, 20,254, 90, 1,166, 1,166,254, 90,
- 2, 98,253,158,253,158, 0, 0, 0, 3, 0, 6,255,177, 4,203, 4,119, 0, 3, 0, 7, 0, 11, 0, 0, 19, 9, 10,250, 1,110,
- 1,110,254,146,254, 54, 1,202, 1,203,254, 53,253,158, 2, 98, 2, 99,253,157, 2, 20, 1,110,254,146,254,146, 1,110,254, 54,
- 1,202, 1,202,254, 54, 2, 98,253,158,253,158, 0, 3, 0, 6,255,172, 4,203, 4,124, 0, 13, 0, 27, 0, 41, 0, 0, 18, 16,
- 55, 54, 51, 50, 23, 22, 16, 7, 6, 35, 34, 39, 0, 16, 23, 22, 51, 50, 55, 54, 16, 39, 38, 35, 34, 7, 0, 16, 37, 54, 51, 50,
- 23, 4, 16, 5, 6, 35, 34, 39,220,198, 99, 99, 99, 99,199,199, 99, 99, 99, 99,254,222,244,122,122,122,122,245,245,122,122,122,
-122,254,146, 1, 49,152,153,152,153, 1, 50,254,206,153,152,153,152, 1, 47, 1,202,114, 57, 57,114,254, 54,114, 57, 57, 2,113,
-253,204,140, 71, 71,141, 2, 50,141, 71, 71,252,250, 2,192,176, 88, 88,176,253, 64,176, 88, 88, 0, 2, 0,117,254, 35, 4, 92,
- 6,117, 0, 3, 0, 7, 0, 34, 64, 17, 2, 6, 0, 8, 4, 6, 8, 6, 4, 3, 2, 1, 0, 6, 5, 7, 8, 16,212,204, 23, 57,
- 49, 0, 16,212,204, 17, 57, 18, 57, 48, 9, 7, 2,104,254,127, 1,129, 1,129,254,127, 1,244,254, 12,254, 13, 5,129,252,207,
-252,199, 3, 57, 4, 37,251,219,251,211, 4, 45, 0, 2, 0, 6,255,172, 4,203, 4,124, 0, 13, 0, 27, 0, 0, 18, 16, 23, 22,
- 51, 50, 55, 54, 16, 39, 38, 35, 34, 7, 0, 16, 37, 54, 51, 50, 23, 4, 16, 5, 6, 35, 34, 39,128,244,122,122,122,122,245,245,
-122,122,122,122,254,146, 1, 49,152,153,152,153, 1, 50,254,206,153,152,153,152, 3, 46,253,204,140, 71, 71,141, 2, 50,141, 71,
- 71,252,250, 2,192,176, 88, 88,176,253, 64,176, 88, 88, 0, 0, 0, 8, 0, 6,255,172, 4,203, 4,124, 0, 9, 0, 19, 0, 29,
- 0, 39, 0, 47, 0, 55, 0, 63, 0, 71, 0, 0, 55, 22, 23, 22, 23, 7, 38, 39, 38, 39, 5, 54, 55, 54, 55, 23, 6, 7, 6, 7,
- 19, 38, 39, 38, 39, 55, 22, 23, 22, 23, 37, 6, 7, 6, 7, 39, 54, 55, 54, 55, 19, 22, 50, 55, 23, 6, 34, 39, 1, 54, 52, 39,
- 55, 22, 20, 7, 1, 38, 34, 7, 39, 54, 50, 23, 1, 6, 20, 23, 7, 38, 52, 55,212, 34, 46, 36, 44, 61, 55, 45, 58, 42, 2,237,
- 44, 36, 41, 39,101, 49, 51, 45, 55, 99, 34, 46, 36, 44, 61, 55, 45, 58, 42,253, 19, 44, 36, 46, 34,101, 42, 58, 45, 55,185, 60,
-120, 60, 30, 75,150, 75, 2,114, 13, 13,119, 16, 16,254, 37, 60,120, 60, 30, 75,150, 75,253,143, 13, 13,119, 16, 16,250, 47, 38,
- 30, 25,106, 32, 37, 48, 58, 69, 25, 30, 34, 51, 70, 65, 42, 37, 32, 3, 42, 47, 38, 30, 25,106, 32, 37, 48, 58, 69, 25, 30, 38,
- 47, 71, 58, 48, 37, 32,252, 20, 17, 17,119, 21, 21, 1,219, 57,126, 57, 30, 71,158, 71, 2,114, 17, 17,119, 21, 21,254, 37, 57,
-126, 57, 30, 71,158, 71, 0, 0, 0, 6, 0, 6,255,172, 4,203, 4,124, 0, 13, 0, 23, 0, 27, 0, 37, 0, 47, 0, 51, 0, 0,
- 54, 16, 37, 54, 51, 50, 23, 4, 16, 5, 6, 35, 34, 39, 19, 17, 22, 23, 22, 23, 17, 6, 7, 6, 7, 6, 16, 23, 1, 17, 22, 51,
- 50, 55, 17, 38, 35, 34, 23, 17, 54, 55, 54, 55, 17, 38, 39, 38, 23, 17, 54, 16, 6, 1, 49,152,153,152,153, 1, 50,254,206,153,
-152,153,152, 29, 15, 17, 38, 38, 38, 38, 17,129, 98, 98, 1, 80, 27, 27, 26, 26, 26, 26, 27,193, 39, 39, 14, 14, 14, 14, 39,181,
-103,180, 2,192,176, 88, 88,176,253, 64,176, 88, 88, 3,163,252,218, 10, 9, 22, 15, 3,150, 15, 22, 9,113,122,254,156,122, 3,
- 21,252, 46, 4, 3, 3,212, 3, 33,252,104, 15, 23, 8, 9, 3, 42, 9, 8, 23,139,253,156,124, 1,108, 0, 0, 0, 4, 0, 6,
-255,172, 4,203, 4,124, 0, 13, 0, 27, 0, 41, 0, 55, 0, 0, 0, 20, 23, 22, 51, 50, 55, 54, 52, 39, 38, 35, 34, 7, 2, 16,
- 55, 54, 51, 50, 23, 22, 16, 7, 6, 35, 34, 39, 0, 16, 23, 22, 51, 50, 55, 54, 16, 39, 38, 35, 34, 7, 0, 16, 37, 54, 51, 50,
- 23, 4, 16, 5, 6, 35, 34, 39, 1,226, 67, 34, 33, 34, 33, 68, 68, 33, 34, 33, 34,177,122, 61, 61, 61, 61,123,123, 61, 61, 61,
- 61,254,146,244,122,122,122,122,245,245,122,122,122,122,254,146, 1, 49,152,153,152,153, 1, 50,254,206,153,152,153,152, 2, 97,
-154, 39, 20, 20, 39,154, 39, 20, 20,254,255, 1, 26, 70, 35, 35, 70,254,230, 70, 35, 35, 1,237,253,204,140, 71, 71,141, 2, 50,
-141, 71, 71,252,250, 2,192,176, 88, 88,176,253, 64,176, 88, 88, 0, 1, 0, 6,255,172, 4,203, 4,124, 0, 13, 0, 0, 54, 16,
- 37, 54, 51, 50, 23, 4, 16, 5, 6, 35, 34, 39, 6, 1, 49,152,153,152,153, 1, 50,254,206,153,152,153,152,180, 2,192,176, 88,
- 88,176,253, 64,176, 88, 88, 0, 0, 2, 0, 6,255,172, 4,203, 4,124, 0, 7, 0, 21, 0, 0, 37, 50, 55, 54, 16, 39, 38, 35,
- 0, 16, 37, 54, 51, 50, 23, 4, 16, 5, 6, 35, 34, 39, 2,104,122,122,245,245,122,122,253,158, 1, 49,152,153,152,153, 1, 50,
-254,206,153,152,153,152, 39, 71,141, 2, 50,141, 71,252,179, 2,192,176, 88, 88,176,253, 64,176, 88, 88, 0, 0, 0, 2, 0, 6,
-255,172, 4,203, 4,124, 0, 7, 0, 21, 0, 0, 1, 34, 7, 6, 16, 23, 22, 51, 36, 16, 37, 54, 51, 50, 23, 4, 16, 5, 6, 35,
- 34, 39, 2,104,122,122,244,244,122,122,253,158, 1, 49,152,153,152,153, 1, 50,254,206,153,152,153,152, 4, 1, 71,140,253,204,
-140, 71,141, 2,192,176, 88, 88,176,253, 64,176, 88, 88, 0, 0, 0, 2, 0, 6,255,172, 4,203, 4,124, 0, 8, 0, 22, 0, 0,
- 1, 16, 39, 38, 35, 34, 7, 6, 17, 2, 16, 37, 54, 51, 50, 23, 4, 16, 5, 6, 35, 34, 39, 4, 81,245,122,122,122,122,244,122,
- 1, 49,152,153,152,153, 1, 50,254,206,153,152,153,152, 2, 20, 1, 25,141, 71, 71,140,254,230,254,160, 2,192,176, 88, 88,176,
-253, 64,176, 88, 88, 0, 0, 0, 0, 2, 0, 6,255,172, 4,203, 4,124, 0, 8, 0, 22, 0, 0, 19, 16, 23, 22, 51, 50, 55, 54,
- 17, 0, 16, 37, 54, 51, 50, 23, 4, 16, 5, 6, 35, 34, 39,128,244,122,122,122,122,245,251,181, 1, 49,152,153,152,153, 1, 50,
-254,206,153,152,153,152, 2, 20,254,230,140, 71, 71,141, 1, 25,254,160, 2,192,176, 88, 88,176,253, 64,176, 88, 88, 0, 0, 0,
- 0, 2, 0, 6,255,172, 4,203, 4,124, 0, 12, 0, 26, 0, 0, 1, 34, 7, 6, 16, 23, 22, 51, 50, 55, 54, 17, 33, 0, 16, 37,
- 54, 51, 50, 23, 4, 16, 5, 6, 35, 34, 39, 2,104,122,122,244,244,122,122,122,122,245,254, 23,253,158, 1, 49,152,153,152,153,
- 1, 50,254,206,153,152,153,152, 4, 1, 71,140,253,204,140, 71, 71,141, 1, 25,254,160, 2,192,176, 88, 88,176,253, 64,176, 88,
- 88, 0, 0, 0, 0, 2, 0, 6,255,172, 4,203, 4,124, 0, 5, 0, 19, 0, 0, 1, 34, 7, 6, 17, 33, 0, 16, 37, 54, 51, 50,
- 23, 4, 16, 5, 6, 35, 34, 39, 2,104,122,122,244, 1,232,253,158, 1, 49,152,153,152,153, 1, 50,254,206,153,152,153,152, 4,
- 1, 71,140,254,230,254,160, 2,192,176, 88, 88,176,253, 64,176, 88, 88, 0, 0, 0, 1, 1, 55,255,172, 3,154, 4,124, 0, 7,
- 0, 0, 5, 34, 39, 36, 16, 37, 54, 51, 3,154,154,152,254,208, 1, 48,152,154, 84, 88,176, 2,192,176, 88, 0, 0, 1, 1, 55,
-255,172, 3,154, 4,124, 0, 7, 0, 0, 1, 50, 23, 4, 16, 5, 6, 35, 1, 56,150,154, 1, 50,254,206,154,150, 4,124, 88,176,
-253, 64,174, 90, 0, 2,255,236,255,236, 4,229, 6, 40, 0, 11, 0, 15, 0, 0, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6,
- 1, 17, 33, 17, 1, 63,171,124,125,174,173,124,125,172,254,173, 4,249, 2,250,126,171,173,124,123,172,171,252,118, 6, 60,249,
-196, 0, 0, 0, 0, 3,255,236,254, 0, 4,229, 6, 40, 0, 13, 0, 27, 0, 31, 0, 0, 54, 16, 55, 54, 51, 50, 23, 22, 16, 7,
- 6, 35, 34, 39, 0, 16, 5, 22, 51, 50, 55, 36, 16, 37, 38, 35, 34, 7, 1, 17, 33, 17,128,244,122,122,122,122,245,245,122,122,
-122,122,254,146, 1, 49,152,153,152,153, 1, 50,254,206,153,152,153,152,254,181, 4,249,250, 2, 52,140, 71, 71,141,253,206,141,
- 71, 71, 3, 6,253, 64,176, 88, 88,176, 2,192,176, 88, 88,249,220, 8, 40,247,216, 0, 0, 0, 0, 2,255,236, 2, 20, 4,229,
- 6, 40, 0, 12, 0, 21, 0, 0, 3, 17, 33, 17, 35, 16, 37, 38, 35, 34, 7, 4, 17, 41, 1, 16, 55, 54, 51, 50, 23, 22, 20, 4,
-249, 26,254,206,153,152,153,152,254,207, 4, 75,252, 47,244,122,122,122,122,245, 2, 20, 4, 20,251,236, 1, 96,176, 88, 88,176,
-254,160, 1, 25,141, 71, 71,141, 0, 2,255,236,254, 0, 4,229, 2, 20, 0, 12, 0, 21, 0, 0, 3, 17, 51, 16, 5, 22, 51, 50,
- 55, 36, 17, 51, 17, 1, 33, 16, 7, 6, 35, 34, 39, 38, 20, 26, 1, 49,152,153,152,153, 1, 50, 26,251,155, 3,209,245,122,122,
-122,122,244,254, 0, 4, 20,254,160,176, 88, 88,176, 1, 96,251,236, 4, 20,254,231,141, 71, 71,141, 0, 0, 0, 0, 1, 1, 55,
- 2, 20, 3,154, 4,124, 0, 9, 0, 0, 1, 16, 37, 54, 51, 23, 34, 7, 6, 17, 1, 55, 1, 49,152,153, 1,123,121,244, 2, 20,
- 1, 96,176, 88,123, 71,140,254,230, 0, 0, 0, 0, 1, 1, 55, 2, 20, 3,154, 4,124, 0, 9, 0, 0, 1, 50, 23, 4, 17, 35,
- 16, 39, 38, 35, 1, 56,150,154, 1, 50,123,244,123,120, 4,124, 88,176,254,160, 1, 25,141, 71, 0, 1, 1, 55,255,172, 3,154,
- 2, 20, 0, 9, 0, 0, 5, 53, 50, 55, 54, 17, 51, 16, 5, 6, 1, 56,120,123,244,123,254,206,154, 84,123, 71,141, 1, 25,254,
-160,174, 90, 0, 0, 1, 1, 55,255,172, 3,154, 2, 20, 0, 9, 0, 0, 5, 34, 39, 36, 17, 51, 16, 23, 22, 51, 3,153,153,152,
-254,207,123,244,121,123, 84, 88,176, 1, 96,254,230,140, 71, 0, 0, 1, 0, 6, 2, 20, 4,203, 4,124, 0, 17, 0, 0, 19, 16,
- 37, 54, 51, 50, 23, 4, 17, 35, 16, 39, 38, 35, 34, 7, 6, 17, 6, 1, 49,152,153,152,153, 1, 50,122,245,122,122,122,122,244,
- 2, 20, 1, 96,176, 88, 88,176,254,160, 1, 25,141, 71, 71,140,254,230, 0, 0, 0, 1, 0, 6,255,172, 4,203, 2, 20, 0, 18,
- 0, 0, 19, 48, 51, 16, 23, 22, 51, 50, 55, 54, 17, 51, 16, 5, 6, 35, 34, 39, 36, 6,122,244,122,122,122,122,245,122,254,206,
-153,152,153,152,254,207, 2, 20,254,230,140, 71, 71,141, 1, 25,254,160,176, 88, 88,176, 0, 0, 0, 1, 0, 6,255,177, 4,203,
- 4,119, 0, 2, 0, 0, 23, 1, 17, 6, 4,197, 78, 4,196,251, 60, 0, 0, 0, 0, 1, 0, 6,255,177, 4,203, 4,119, 0, 2,
- 0, 0, 23, 17, 1, 6, 4,197, 78, 4,196,251, 60, 0, 0, 0, 0, 1, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 0, 23, 17,
- 33, 6, 4,197, 78, 4,196, 0, 0, 1, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 0, 19, 33, 17, 6, 4,197, 4,118,251, 60,
- 0, 2, 1, 63, 1,209, 3,145, 4, 33, 0, 11, 0, 23, 0, 0, 1, 20, 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 52, 54, 51,
- 50, 22, 21, 20, 6, 35, 34, 38, 1,122,137, 99,100,140,139, 99,100,138, 59,172,125,124,173,174,125,124,171, 2,250,101,137,139,
- 99, 98,138,137, 99,124,171,172,123,124,173,171, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 3, 0, 7, 0, 0, 37, 33, 17, 33,
- 1, 17, 33, 17, 2,104, 1,240,254, 16,253,158, 4,197, 36, 3,224,251,174, 4,196,251, 60, 0, 0, 2, 0, 6,255,177, 4,203,
- 4,119, 0, 3, 0, 7, 0, 0, 55, 33, 17, 33, 3, 17, 33, 17,120, 1,240,254, 16,114, 4,197, 36, 3,224,251,174, 4,196,251,
- 60, 0, 0, 0, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 6, 0, 0, 55, 33, 17, 1, 17, 33, 17,120, 3,224,251,174,
- 4,197, 36, 3,224,251,174, 4,196,251, 60, 0, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 6, 0, 0, 55, 1, 33, 3,
- 17, 33, 17,120, 3,225,252, 31,114, 4,197, 36, 3,224,251,174, 4,196,251, 60, 0, 3, 0, 6,255,177, 4,203, 4,119, 0, 3,
- 0, 7, 0, 11, 0, 0, 37, 33, 17, 33, 1, 33, 17, 33, 3, 17, 33, 17, 2,161, 1,183,254, 73,253,215, 1,183,254, 73,114, 4,
-197, 36, 3,224,252, 32, 3,224,251,174, 4,196,251, 60, 0, 0, 0, 3, 0, 6,255,177, 4,203, 4,119, 0, 11, 0, 14, 0, 17,
- 0, 0, 1, 52, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 1, 33, 9, 3, 1,226, 78, 56, 56, 78, 79, 56, 56, 77,254,207, 3,111,
-254, 72,253,158, 2, 98, 2, 99, 1,106, 56, 77, 77, 56, 55, 78, 77,254,242, 3,110,252, 32, 4,196,251, 60, 0, 0, 2, 0, 6,
-255,177, 4,203, 4,119, 0, 2, 0, 5, 0, 0, 37, 33, 9, 3, 2,104, 1,184,254, 72,253,158, 2, 98, 2, 99, 36, 3,110,252,
- 32, 4,196,251, 60, 0, 0, 0, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 5, 0, 0, 55, 33, 17, 9, 2,177, 1,183,
-253,158, 2, 98, 2, 99, 36, 3,110,252, 32, 4,196,251, 60, 0, 0, 2,255,236,255,146, 4,229, 4,150, 0, 13, 0, 27, 0, 0,
- 18, 16, 5, 22, 51, 50, 55, 36, 16, 39, 38, 35, 34, 7, 0, 16, 37, 54, 51, 50, 23, 4, 16, 5, 6, 35, 34, 39,107, 0,255,126,
-128,127,128, 0,255,255,128,127,128,126,254,130, 1, 62,158,160,159,159, 1, 63,254,193,159,159,160,158, 3, 58,253,180,147, 73,
- 73,147, 2, 76,147, 73, 73,252,216, 2,222,184, 91, 91,184,253, 34,184, 91, 91, 0, 3, 0, 6,255,177, 4,203, 4,119, 0, 3,
- 0, 7, 0, 13, 0, 0, 23, 17, 33, 17, 1, 33, 17, 33, 17, 33, 17, 33, 17, 33, 6, 4,197,251,173, 1,183,254, 73, 3,224,254,
- 73,253,215, 78, 4,196,251, 60, 2,154, 1,184,252, 32, 3,224,253,214, 0, 0, 0, 3, 0, 6,255,177, 4,203, 4,119, 0, 3,
- 0, 7, 0, 13, 0, 0, 23, 17, 33, 17, 37, 33, 17, 33, 53, 33, 17, 33, 17, 33, 6, 4,197,251,173, 1,183,254, 73, 2, 41, 1,
-183,252, 32, 78, 4,196,251, 60,114, 1,182,114,253,216, 3,224, 0, 3, 0, 6,255,177, 4,203, 4,119, 0, 3, 0, 7, 0, 13,
- 0, 0, 23, 17, 33, 17, 37, 33, 17, 33, 1, 33, 17, 33, 17, 33, 6, 4,197,253,214, 1,183,254, 73,253,215, 1,183, 2, 41,252,
- 32, 78, 4,196,251, 60,114, 1,182,254, 74, 2, 40, 1,184, 0, 0, 3, 0, 6,255,177, 4,203, 4,119, 0, 3, 0, 7, 0, 13,
- 0, 0, 23, 17, 33, 17, 1, 33, 17, 33, 1, 33, 17, 33, 17, 33, 6, 4,197,253,214, 1,183,254, 73,253,215, 3,224,253,215,254,
- 73, 78, 4,196,251, 60, 2,154, 1,184,252, 32, 1,182, 2, 42, 0, 3, 0, 6,255,172, 4,203, 4,124, 0, 13, 0, 19, 0, 32,
- 0, 0, 54, 16, 37, 54, 51, 50, 23, 4, 16, 5, 6, 35, 34, 39, 19, 6, 7, 6, 7, 33, 5, 22, 23, 22, 51, 50, 55, 54, 16, 39,
- 38, 39, 17, 6, 1, 49,152,153,152,153, 1, 50,254,206,153,152,153,152,248, 94, 93,219, 22, 1,172,254, 84, 23,218,122,122,122,
-122,245,245, 94, 93,180, 2,192,176, 88, 88,176,253, 64,176, 88, 88, 3,249, 13, 54,126,240,114,238,126, 71, 71,141, 2, 50,141,
- 54, 13,253,221, 0, 3, 0, 6,255,172, 4,203, 4,124, 0, 13, 0, 26, 0, 32, 0, 0, 54, 16, 37, 54, 51, 50, 23, 4, 16, 5,
- 6, 35, 34, 39, 37, 54, 55, 54, 16, 39, 38, 35, 34, 7, 6, 7, 33, 5, 22, 23, 22, 23, 17, 6, 1, 49,152,153,152,153, 1, 50,
-254,206,153,152,153,152, 1,106, 93, 94,245,245,122,122,122,122,219, 22, 2, 30,253,226, 23,218, 93, 94,180, 2,192,176, 88, 88,
-176,253, 64,176, 88, 88, 39, 13, 54,141, 2, 50,141, 71, 71,126,240,114,238,126, 54, 13, 1,175, 0, 3, 0, 6,255,172, 4,203,
- 4,124, 0, 13, 0, 26, 0, 32, 0, 0, 54, 16, 37, 54, 51, 50, 23, 4, 16, 5, 6, 35, 34, 39, 2, 16, 23, 22, 23, 17, 33, 38,
- 39, 38, 35, 34, 7, 1, 54, 55, 54, 55, 33, 6, 1, 49,152,153,152,153, 1, 50,254,206,153,152,153,152,183,244, 93, 94, 2, 31,
- 22,220,122,122,122,122, 1, 45, 93, 94,219, 23,254, 83,180, 2,192,176, 88, 88,176,253, 64,176, 88, 88, 3, 41,253,206,141, 54,
- 13, 2, 33,240,126, 71, 71,252,113, 13, 54,126,238, 0, 0, 0, 0, 3, 0, 6,255,172, 4,203, 4,124, 0, 13, 0, 26, 0, 32,
- 0, 0, 54, 16, 37, 54, 51, 50, 23, 4, 16, 5, 6, 35, 34, 39, 2, 16, 23, 22, 51, 50, 55, 54, 55, 33, 17, 6, 7, 1, 38, 39,
- 38, 39, 17, 6, 1, 49,152,153,152,153, 1, 50,254,206,153,152,153,152,183,244,122,122,122,122,219, 23,253,225, 94, 93, 2,218,
- 22,220, 94, 93,180, 2,192,176, 88, 88,176,253, 64,176, 88, 88, 3, 41,253,206,141, 71, 71,126,238, 2, 35, 13, 54,254,146,240,
-126, 54, 13,254, 79, 0, 0, 0, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 5, 0, 0, 55, 1, 33, 3, 17, 33,120, 3,
- 54,252,202,114, 4,197,206, 3, 54,251,174, 4,196, 0, 0, 0, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 5, 0, 0,
- 9, 1, 17, 37, 33, 17, 1, 35, 3, 54,251,173, 4,197, 4, 4,252,202, 3, 54,114,251, 60, 0, 0, 2, 0, 6,255,177, 4,203,
- 4,119, 0, 2, 0, 5, 0, 0, 55, 33, 1, 3, 17, 1,120, 3, 54,252,202,114, 4,197, 36, 3, 54,252, 88, 4,196,251, 60, 0,
- 0, 2, 0, 97, 0, 13, 4,111, 4, 27, 0, 3, 0, 7, 0, 0, 55, 33, 17, 33, 3, 17, 33, 17,211, 3, 42,252,214,114, 4, 14,
-127, 3, 42,252,100, 4, 14,251,242, 0, 0, 0, 0, 1, 0, 97, 0, 13, 4,111, 4, 27, 0, 3, 0, 0, 55, 17, 33, 17, 97, 4,
- 14, 13, 4, 14,251,242, 0, 0, 0, 2, 0,175, 0, 91, 4, 33, 3,205, 0, 3, 0, 7, 0, 0, 37, 33, 17, 33, 3, 17, 33, 17,
- 1, 33, 2,142,253,114,114, 3,114,205, 2,142,253, 0, 3,114,252,142, 0, 0, 0, 1, 0,175, 0, 91, 4, 33, 3,205, 0, 3,
- 0, 0, 55, 17, 33, 17,175, 3,114, 91, 3,114,252,142, 0, 0, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 5, 0, 0,
- 37, 33, 17, 9, 1, 17, 1, 35, 3, 54,251,173, 4,197, 36, 3, 54,252, 88, 4,196,251, 60, 0, 0, 9, 0, 34, 0,164, 4,175,
- 5, 49, 0, 7, 0, 12, 0, 19, 0, 34, 0, 42, 0, 50, 0, 58, 0, 65, 0, 73, 0, 0, 1, 51, 23, 17, 7, 35, 39, 17, 5, 23,
- 21, 7, 39, 37, 23, 7, 35, 38, 39, 53, 5, 50, 31, 1, 20, 7, 6, 35, 34, 39, 38, 53, 52, 55, 54, 5, 33, 23, 21, 7, 33, 39,
- 53, 37, 33, 23, 21, 7, 33, 39, 53, 7, 51, 22, 23, 21, 7, 39, 53, 37, 51, 23, 21, 7, 39, 53, 37, 51, 23, 17, 7, 35, 39, 17,
- 2, 78, 60, 4, 4, 60, 5, 1,186, 46,194, 48,253,167,196, 47, 2,157, 35, 1,181,163, 69, 10,148, 55, 36,137, 76, 28,143, 52,
-253,228, 1, 8, 5, 5,254,248, 5, 3,122, 1, 14, 5, 5,254,242, 4, 56, 3,104, 89, 47,194,254, 54, 2, 46,192, 48, 1,165,
- 60, 4, 4, 60, 5, 5, 49, 5,254,239, 4, 4, 1, 17,121, 49, 2,198, 49,186,199, 50,156, 43, 3,141,176, 75,147, 79, 17,130,
- 49, 72,141, 80, 22,215, 5, 61, 5, 5, 61, 5, 5, 61, 5, 5, 61,218,102, 94, 2, 49,198, 3, 32, 46, 3,198, 49, 3, 92, 4,
-254,239, 5, 5, 1, 17, 0, 0, 0, 1, 0, 50, 0, 8, 4,159, 1,209, 0, 34, 0, 0, 1, 51, 50, 31, 1, 54, 51, 22, 21, 20,
- 7, 22, 29, 1, 6, 35, 33, 53, 50, 55, 54, 59, 1, 39, 52, 63, 1, 23, 39, 52, 63, 1, 50, 23, 54, 3, 0, 13,134, 72, 12, 24,
- 34, 83, 21, 63, 11, 49,251,209, 35, 82, 29, 32, 20, 7, 98, 24, 26, 3,125, 41, 30, 28, 74, 1,209,143, 53, 22, 17, 67, 30, 32,
- 14, 44, 16, 63, 6,107, 24, 30, 67, 30, 2, 2, 7, 91, 55, 5, 27, 62, 0, 0, 0, 1, 0, 34, 0, 6, 4,175, 4, 45, 0, 63,
- 0, 0, 1, 51, 23, 21, 51, 32, 19, 22, 29, 1, 35, 38, 39, 38, 43, 1, 34, 7, 21, 20, 7, 39, 38, 35, 17, 20, 15, 1, 34, 47,
- 1, 53, 55, 51, 23, 21, 22, 59, 1, 50, 63, 1, 17, 34, 7, 6, 35, 39, 53, 55, 35, 38, 39, 35, 34, 15, 1, 35, 53, 54, 55, 54,
- 51, 53, 2, 97, 41, 4, 2, 1, 56,199, 31, 1, 16, 14, 24, 41, 31,107, 79, 6, 24,107, 97, 75, 21, 65, 26, 2, 4, 31, 4, 7,
- 45, 7, 39, 14, 4,150, 61, 12, 10, 5, 5, 3, 47,141, 47, 71, 24, 14, 2, 41,137,170,221, 4, 44, 4, 89,254,166, 61, 9, 6,
- 11, 33, 17, 72, 36, 11, 1, 47, 43,254, 25, 72, 17, 1, 68, 20, 18, 5, 5, 8, 72, 41, 29, 1,225, 43, 41, 4, 9, 36, 46, 19,
- 44, 12, 1,102,155,159, 89, 0, 0, 15, 0, 89,255,250, 4,120, 5,171, 0, 9, 0, 17, 0, 25, 0, 33, 0, 61, 0, 90, 0,133,
- 0,177, 0,220, 1, 8, 1, 16, 1, 24, 1, 32, 1, 76, 1,120, 0, 0, 1, 22, 55, 51, 6, 7, 38, 39, 51, 22, 55, 38, 39, 54,
- 55, 22, 23, 6, 5, 38, 39, 54, 55, 22, 23, 6, 3, 38, 39, 54, 55, 22, 23, 6, 39, 6, 21, 20, 22, 51, 50, 54, 53, 52, 39, 38,
- 39, 22, 55, 54, 53, 52, 38, 35, 34, 6, 21, 20, 23, 22, 51, 6, 19, 54, 55, 50, 31, 1, 22, 20, 7, 6, 7, 22, 23, 22, 21, 20,
- 4, 32, 36, 53, 52, 55, 54, 55, 38, 39, 38, 52, 55, 1, 23, 39, 38, 50, 15, 1, 55, 54, 51, 50, 21, 20, 15, 1, 23, 22, 21, 20,
- 35, 34, 47, 1, 23, 22, 35, 34, 63, 1, 7, 6, 35, 34, 53, 52, 63, 1, 39, 38, 53, 52, 51, 50, 3, 23, 39, 38, 51, 50, 15, 1,
- 55, 54, 51, 50, 21, 20, 15, 1, 23, 22, 21, 20, 35, 34, 47, 1, 23, 22, 35, 34, 63, 1, 7, 6, 35, 34, 53, 52, 63, 1, 39, 38,
- 53, 52, 51, 50, 1, 23, 39, 38, 51, 50, 15, 1, 55, 54, 51, 50, 21, 20, 15, 1, 23, 22, 20, 35, 34, 47, 1, 23, 22, 35, 34, 63,
- 1, 7, 6, 35, 34, 53, 52, 63, 1, 39, 38, 53, 52, 51, 48, 31, 1, 39, 38, 51, 50, 15, 1, 55, 54, 51, 50, 21, 20, 15, 1, 23,
- 22, 21, 20, 35, 34, 47, 1, 23, 22, 35, 34, 63, 1, 7, 6, 35, 34, 53, 52, 63, 1, 39, 38, 53, 52, 51, 50, 1, 38, 53, 52, 51,
- 50, 21, 20, 5, 38, 53, 54, 51, 50, 21, 20, 55, 38, 53, 52, 51, 50, 21, 20, 19, 23, 39, 38, 51, 50, 15, 1, 55, 54, 51, 50, 21,
- 20, 15, 1, 23, 22, 21, 20, 35, 34, 47, 1, 23, 22, 35, 34, 63, 1, 7, 6, 35, 34, 53, 52, 63, 1, 39, 38, 53, 52, 51, 50, 1,
- 23, 39, 38, 51, 50, 15, 1, 55, 54, 51, 50, 21, 20, 15, 1, 23, 22, 21, 20, 35, 34, 47, 1, 23, 22, 35, 34, 63, 1, 7, 6, 35,
- 34, 53, 52, 63, 1, 39, 38, 53, 52, 51, 50, 2, 80, 79, 28, 25, 5,128,126, 9, 24, 41,185, 42, 1, 3, 43, 39, 3, 3,254,235,
- 41, 3, 3, 43, 40, 3, 3, 64, 38, 2, 3, 39, 36, 2, 2,202,124,247,175,174,248,124,101,139, 63, 47, 65,125, 93, 92,138, 66,
- 45, 55,144, 21, 26,147,132, 49, 2, 83, 76, 20, 24,111, 87,142,254,228,254,106,254,227,143, 92,118, 21, 19, 76, 76, 2,114, 37,
- 6, 1, 28, 1, 6, 37, 4, 4, 14, 7, 44, 42, 7, 12, 6, 2, 35, 4, 1, 14, 14, 1, 5, 36, 2, 5, 13, 8, 41, 42, 8, 14,
- 3,110, 36, 5, 1, 13, 16, 2, 6, 37, 4, 4, 13, 7, 43, 41, 8, 12, 6, 2, 36, 5, 1, 15, 13, 1, 4, 35, 2, 5, 14, 8,
- 42, 43, 8, 15, 4,253, 28, 21, 3, 1, 9, 9, 1, 4, 22, 2, 2, 9, 4, 26, 24, 5, 8, 3, 1, 22, 4, 1, 9, 9, 1, 3,
- 21, 1, 3, 8, 4, 25, 26, 4, 9, 63, 19, 4, 1, 8, 9, 1, 4, 19, 2, 3, 8, 5, 22, 22, 4, 7, 2, 3, 19, 3, 1, 8,
- 8, 1, 4, 19, 3, 2, 7, 4, 22, 22, 5, 8, 3, 1,249, 39, 43, 38,254,180, 40, 1, 41, 38,251, 40, 43, 38,112, 23, 4, 1,
- 9, 9, 1, 3, 21, 2, 2, 8, 3, 26, 25, 4, 8, 3, 1, 21, 2, 1, 8, 9, 1, 3, 22, 1, 3, 8, 6, 24, 25, 5, 9, 2,
-252,242, 37, 5, 1, 13, 14, 1, 5, 37, 4, 4, 13, 7, 43, 41, 8, 12, 4, 4, 36, 4, 1, 14, 13, 1, 4, 36, 4, 2, 14, 8,
- 42, 43, 8, 15, 2, 3,132, 5, 42, 69, 5, 7, 67, 42, 90, 2, 42, 44, 3, 3, 41, 45, 4, 2, 41, 45, 3, 3, 42, 44,254, 18,
- 2, 37, 38, 2, 2, 37, 38,158,102,147,145,208,208,145,147,102, 85, 32, 2, 53, 72,104,102,101,101,102,104, 72, 50, 30, 1,217,
-112, 24,117, 19, 94,232, 81, 24, 16, 28, 70,115,165,163,230,230,163,165,115, 75, 26, 15, 22, 81,232, 71,254,129, 31, 52, 13, 13,
- 52, 31, 3, 16, 9, 3, 20, 19, 3, 9, 14, 2, 30, 50, 15, 15, 50, 30, 2, 14, 8, 4, 19, 20, 4, 8, 16, 1, 48, 31, 52, 14,
- 14, 52, 31, 3, 16, 7, 3, 21, 19, 4, 9, 14, 2, 30, 50, 14, 14, 50, 30, 2, 14, 9, 4, 19, 21, 4, 6, 16, 1, 57, 17, 29,
- 10, 10, 29, 17, 3, 10, 4, 2, 13, 10, 2, 14, 1, 17, 30, 7, 7, 30, 17, 1, 7, 7, 2, 10, 13, 2, 4, 10,251, 16, 28, 7,
- 7, 28, 16, 2, 7, 6, 2, 9, 11, 2, 5, 8, 2, 15, 26, 8, 8, 26, 15, 2, 8, 5, 2, 11, 9, 2, 6, 7,253, 76, 2, 37,
- 40, 39, 42,222, 2, 37, 41, 40, 42, 2, 2, 37, 41, 40, 42, 4,116, 17, 30, 8, 8, 30, 17, 2, 8, 7, 1, 11, 12, 2, 5, 9,
- 1, 17, 28, 9, 9, 28, 17, 1, 9, 4, 3, 12, 11, 2, 6, 8,254, 49, 31, 52, 14, 14, 52, 31, 3, 16, 8, 3, 20, 19, 4, 9,
- 14, 3, 29, 50, 14, 14, 50, 29, 3, 14, 9, 4, 19, 20, 4, 7, 16, 0, 0, 0, 0, 15, 0, 29, 0, 48, 4,180, 5,114, 0, 19,
- 0, 33, 0, 50, 0, 67, 0, 84, 0,101, 0,118, 0,135, 0,152, 0,169, 0,186, 0,203, 0,220, 0,237, 0,254, 0, 0, 1, 22,
- 7, 6, 15, 1, 6, 43, 1, 38, 39, 38, 53, 52, 63, 2, 54, 23, 22, 7, 6, 23, 22, 31, 1, 22, 63, 1, 54, 47, 1, 38, 7, 19,
- 50, 23, 22, 29, 1, 20, 7, 6, 35, 34, 47, 1, 53, 52, 55, 54, 55, 50, 23, 22, 29, 1, 20, 7, 6, 35, 34, 47, 1, 53, 52, 55,
- 54, 55, 50, 23, 22, 29, 1, 20, 7, 6, 35, 34, 39, 61, 1, 52, 55, 54, 55, 50, 23, 22, 29, 1, 20, 7, 6, 35, 34, 47, 1, 53,
- 52, 55, 54, 19, 50, 23, 22, 29, 1, 20, 7, 6, 35, 34, 47, 1, 53, 52, 55, 54, 7, 50, 23, 22, 29, 1, 20, 7, 6, 35, 34, 39,
- 61, 1, 52, 55, 54, 1, 50, 23, 22, 29, 1, 20, 7, 6, 35, 34, 47, 1, 53, 52, 55, 54, 55, 50, 23, 22, 29, 1, 20, 7, 6, 35,
- 34, 39, 61, 1, 52, 55, 54, 55, 50, 23, 22, 29, 1, 20, 7, 6, 35, 34, 47, 1, 53, 52, 55, 54, 1, 50, 23, 22, 29, 1, 20, 7,
- 6, 35, 34, 47, 1, 53, 52, 55, 54, 55, 50, 23, 22, 29, 1, 20, 7, 6, 35, 34, 47, 1, 53, 52, 55, 54, 55, 50, 23, 22, 29, 1,
- 20, 7, 6, 35, 34, 47, 1, 53, 52, 55, 54, 55, 50, 23, 22, 29, 1, 20, 7, 6, 35, 34, 47, 1, 53, 52, 55, 54, 1,108, 61, 46,
- 15, 37, 16, 71, 92, 17, 38, 29, 35, 45, 31, 9, 76,106, 46,196, 78, 26, 4, 10, 11, 48,100, 38, 75, 17, 24, 52,105,185, 21, 11,
- 6, 20, 8, 10, 27, 9, 1, 19, 10,125, 22, 11, 5, 19, 8, 10, 27, 9, 1, 19, 10,103, 21, 11, 5, 19, 8, 10, 26, 11, 19, 10,
-115, 21, 11, 6, 20, 7, 11, 26, 10, 1, 19, 10, 2, 21, 12, 5, 20, 7, 11, 26, 10, 1, 20, 9,141, 22, 11, 5, 19, 8, 10, 27,
- 10, 19, 10, 1, 38, 21, 11, 5, 19, 8, 10, 26, 11, 1, 20, 10,144, 22, 11, 5, 19, 8, 10, 27, 10, 19, 10,145, 21, 11, 6, 20,
- 8, 10, 27, 9, 1, 19, 10,254, 2, 22, 11, 6, 20, 8, 10, 27, 9, 1, 19, 10,204, 21, 12, 5, 20, 7, 11, 26, 10, 1, 20, 9,
-217, 21, 11, 6, 20, 8, 10, 26, 10, 1, 19, 10,193, 21, 12, 5, 20, 7, 11, 26, 10, 1, 20, 9, 1,198, 72,131, 53, 45, 19, 86,
- 5, 34, 42, 60, 67, 90, 43, 10, 93, 2, 9, 95, 95,102, 17, 12, 13, 56, 65, 37, 92,109, 36, 61, 70, 1, 14, 23, 9, 12, 4, 23,
- 14, 5, 33, 10, 3, 23, 15, 6,234, 22, 9, 12, 5, 22, 14, 6, 34, 9, 4, 22, 15, 6,230, 23, 9, 11, 5, 22, 15, 5, 34, 9,
- 4, 22, 15, 6,236, 23, 9, 11, 4, 23, 14, 5, 33, 9, 3, 24, 14, 6,253,197, 23, 9, 11, 5, 23, 14, 5, 33, 11, 2, 24, 14,
- 6,194, 23, 9, 11, 4, 24, 14, 5, 34, 10, 3, 23, 14, 6, 1,131, 22, 9, 11, 6, 22, 14, 5, 33, 9, 4, 22, 16, 5,187, 23,
- 9, 11, 5, 23, 14, 5, 34, 9, 3, 23, 15, 6,194, 24, 9, 11, 4, 23, 14, 6, 34, 10, 3, 23, 14, 7,252, 77, 22, 9, 11, 5,
- 23, 14, 6, 34, 9, 4, 23, 14, 6,158, 22, 9, 11, 5, 22, 15, 6, 35, 9, 3, 23, 15, 5,172, 23, 9, 10, 5, 24, 13, 5, 33,
- 10, 2, 24, 14, 6,151, 23, 9, 11, 4, 24, 13, 6, 34, 10, 2, 24, 14, 6, 0, 0, 1, 0, 58, 0, 15, 4,151, 4, 51, 0, 9,
- 0, 0, 19, 33, 27, 1, 33, 5, 19, 37, 5, 19, 58, 1,170,132,133, 1,170,254,167,133,254,165,254,167,132, 2,158, 1,149,254,
-107,251,254,108,250,250, 1,148, 0, 2, 0, 58, 0, 20, 4,151, 4, 57, 0, 9, 0, 19, 0, 0, 19, 33, 27, 1, 33, 5, 19, 37,
- 5, 19, 55, 3, 37, 5, 3, 37, 33, 11, 1, 33, 58, 1,170,132,133, 1,170,254,167,133,254,165,254,167,132, 48,100, 1, 9, 1,
- 18,109, 1, 28,254,167,104,100,254,165, 2,164, 1,148,254,108,251,254,108,250,250, 1,148, 15,254,203,191,201, 1, 64,199, 1,
- 56,254,200, 0, 0, 1, 0,200, 0, 5, 4, 9, 5,214, 0, 17, 0, 0, 1, 22, 23, 20, 7, 9, 1, 55, 19, 37, 55, 1, 38, 53,
- 52, 55, 1, 54, 3,206, 57, 2, 9,253,125, 1,238, 86, 38,254, 55,224,253,221, 19, 65, 2,147, 11, 5,214, 2, 54, 36, 12,253,
-133,253,244,230,254, 56, 39, 94, 2, 52, 23, 23, 27, 63, 2,134, 10, 0, 0, 0, 0, 1, 0, 59,255,255, 4,150, 5,217, 0, 25,
- 0, 0, 19, 33, 50, 21, 20, 7, 9, 1, 55, 19, 37, 55, 1, 38, 53, 52, 55, 1, 33, 17, 20, 35, 34, 53, 17, 52,122, 3,214, 60,
- 26,253,229, 1,201, 83, 35,254, 78,216,254, 16, 14, 49, 1,199,253, 12, 68, 67, 5,217, 83, 34, 27,253,197,254, 27,213,254, 61,
- 34,108, 2, 22, 15, 46, 27, 51, 1,223,250,252, 69, 68, 5, 91, 58, 0, 0, 0, 0, 3, 0, 43, 0, 7, 4,166, 4,129, 0, 13,
- 0, 25, 0, 38, 0, 0, 1, 20, 0, 35, 34, 0, 53, 52, 18, 36, 51, 50, 4, 18, 5, 20, 0, 32, 0, 53, 52, 46, 1, 32, 14, 1,
- 5, 20, 6, 35, 34, 38, 53, 52, 62, 1, 50, 30, 1, 4,165,254,177,238,237,254,177,154, 1, 19,143,144, 1, 20,153,251,191, 1,
- 45, 1,173, 1, 46,138,248,254,252,248,138, 2,148, 84, 60, 58, 85, 39, 69, 71, 69, 39, 2, 68,238,254,178, 1, 78,238,149, 1,
- 20,148,148,254,237,150,214,254,211, 1, 45,214,136,246,133,133,246,136, 60, 83, 83, 60, 38, 69, 36, 36, 69, 0, 0, 3, 0, 15,
- 0, 5, 4,194, 5, 29, 0, 10, 0, 22, 0, 67, 0, 0, 0, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 37, 34, 6, 21, 20, 22, 51,
- 50, 54, 53, 52, 38, 37, 22, 23, 22, 21, 20, 6, 35, 34, 38, 53, 52, 55, 54, 55, 54, 53, 52, 36, 32, 4, 21, 20, 23, 22, 23, 22,
- 20, 6, 35, 34, 38, 52, 55, 54, 55, 38, 53, 52, 0, 51, 50, 0, 21, 20, 4, 11,113, 79, 79, 57, 56, 79,252,164, 56, 80, 80, 56,
- 56, 79, 79, 3, 34, 19, 17, 70,140, 99, 99,139, 68, 62, 85, 93,255, 0,254,144,255, 0, 92, 96, 67, 68,139, 99, 98,141, 70, 14,
- 14, 93, 1, 87,246,248, 1, 87, 1,177, 90, 65, 64, 90, 90, 64, 65, 90, 90, 65, 64, 91, 91, 64, 65, 90, 75, 15, 20, 80,114,113,
-160,160,113,114, 80, 71, 8,101,134,157,222,222,157,134,100, 3, 77, 80,228,160,160,228, 80, 15, 13,125,159,217, 1, 50,254,206,
-217,155, 0, 0, 0, 3, 0, 18,255,254, 4,191, 5,107, 0, 10, 0, 22, 0, 65, 0, 0, 1, 52, 38, 35, 34, 6, 21, 20, 22, 50,
- 54, 37, 52, 38, 35, 34, 6, 21, 20, 22, 51, 50, 54, 1, 20, 0, 35, 34, 0, 53, 52, 55, 38, 39, 38, 52, 54, 51, 50, 22, 20, 7,
- 6, 7, 6, 21, 20, 4, 32, 36, 53, 52, 39, 38, 39, 38, 52, 54, 51, 50, 22, 20, 7, 6, 7, 22, 4, 88, 80, 55, 57, 78, 78,113,
- 79,253, 46, 78, 57, 55, 79, 79, 55, 57, 78, 3, 39,254,171,247,245,254,171, 93, 14, 14, 69,139, 97, 99,139, 68, 67, 95, 92, 0,
-255, 1,110, 0,255, 92, 85, 62, 68,139, 98, 99,138, 69, 17, 19, 88, 4, 70, 68, 98, 98, 68, 69, 97, 97, 69, 69, 97, 97, 69, 68,
- 97, 97,254, 43,232,254,185, 1, 71,232,169,132, 14, 17, 85,242,171,171,242, 85, 83, 3,106,142,169,235,235,169,143,105, 9, 76,
- 86,242,171,171,242, 86, 21, 16,130, 0, 0, 0, 0, 2, 0, 54, 0, 1, 4,155, 5,202, 0, 11, 0, 27, 0, 0, 1, 34, 6, 21,
- 20, 22, 51, 50, 54, 53, 52, 38, 55, 22, 23, 22, 16, 0, 35, 34, 0, 16, 0, 51, 50, 23, 1, 23, 2, 63,143,201,201,143,142,201,
-199,190, 19, 18,152,254,206,217,215,254,206, 1, 47,218, 96, 84, 1, 14,154, 3, 99,200,144,142,201,201,142,144,200, 59, 16, 19,
-153,254, 80,254,207, 1, 49, 1,176, 1, 50, 29, 1,211, 89, 0, 0, 3, 0, 46, 0, 3, 4,163, 5,203, 0, 8, 0, 17, 0, 49,
- 0, 0, 1, 34, 6, 20, 22, 50, 54, 52, 38, 0, 34, 6, 20, 22, 51, 50, 54, 52, 1, 22, 21, 20, 2, 35, 34, 2, 53, 52, 18, 51,
- 50, 23, 22, 23, 55, 38, 53, 52, 18, 51, 50, 18, 21, 20, 2, 35, 34, 39, 38, 39, 1, 64, 75,106,106,150,106,105, 2, 79,151,105,
-105, 76, 75,105,253,247, 24,161,114,113,161,160,114,116, 80, 1, 1,138, 18,159,115,115,160,161,114,113, 81, 7, 7, 2,220,169,
-240,169,169,240,169, 2, 90,169,240,169,169,240,253,228, 84,100,181,254,255, 1, 1,181,183, 1, 1,128, 3, 2,137, 73, 85,183,
- 1, 1,254,255,183,181,254,255,129, 11, 12, 0, 0, 14, 0, 20,255,255, 4,189, 4,200, 0, 23, 0, 41, 0, 53, 0, 65, 0, 77,
- 0, 89, 0,100, 0,112, 0,123, 0,134, 0,145, 0,157, 0,169, 0,181, 0, 0, 1, 51, 4, 23, 22, 21, 6, 47, 1, 38, 55, 54,
- 39, 33, 6, 23, 22, 15, 1, 6, 39, 52, 55, 54, 1, 53, 51, 21, 20, 23, 22, 21, 17, 33, 17, 52, 55, 54, 61, 1, 51, 21, 3, 20,
- 22, 51, 50, 54, 53, 52, 38, 35, 34, 6, 5, 20, 6, 35, 34, 38, 53, 52, 54, 51, 50, 22, 39, 20, 6, 35, 34, 38, 53, 52, 54, 51,
- 50, 22, 17, 20, 6, 35, 34, 38, 53, 52, 54, 51, 50, 22, 2, 22, 6, 7, 6, 38, 39, 38, 54, 55, 54, 19, 22, 6, 7, 6, 38, 39,
- 38, 54, 55, 54, 22, 1, 30, 1, 14, 1, 39, 46, 1, 55, 62, 1, 4, 30, 1, 7, 14, 1, 39, 46, 1, 55, 54, 36, 54, 22, 23, 22,
- 6, 7, 6, 38, 39, 38, 37, 54, 22, 23, 22, 6, 7, 6, 38, 39, 38, 54, 1, 62, 1, 23, 30, 1, 7, 14, 1, 39, 46, 1, 19, 62,
- 1, 23, 30, 1, 7, 14, 1, 39, 46, 1, 2,102, 5, 1, 60,135,142, 20, 59,214, 46, 21, 61, 43,253,178, 44, 62, 21, 47,214, 59,
- 20,142,135, 1,187, 75,127,121,252,129,122,126, 76, 90,124, 87, 88,123,123, 88, 88,123, 1, 73, 69, 49, 49, 69, 69, 49, 49, 69,
- 84, 17, 12, 12, 18, 18, 12, 12, 17, 17, 12, 12, 18, 18, 12, 12, 17,109, 13, 3, 10, 10, 24, 7, 8, 4, 10, 10,226, 7, 3, 11,
- 10, 23, 8, 7, 4, 10, 10, 24,254,249, 13, 10, 7, 22, 12, 11, 12, 4, 4, 22, 1, 59, 23, 11, 4, 4, 22, 11, 12, 11, 4, 4,
-254,201, 23, 22, 4, 3, 10, 12, 12, 22, 4, 4, 1, 82, 11, 22, 4, 4, 11, 12, 11, 23, 3, 4, 11,254,255, 7, 24, 10, 10, 4,
- 8, 6, 25, 10, 10, 4,202, 8, 23, 10, 11, 3, 7, 7, 24, 10, 10, 4, 4,200, 14,127,135,139,133, 8,115, 22, 64,100, 6, 6,
-100, 64, 22,115, 8,133,139,135,125,254,189, 62,125, 61, 47, 78,234,254,110, 1,146,234, 78, 47, 61,125, 62,254, 64,137,192,192,
-137,136,193,193,135, 77,108,108, 77, 78,107,107,182, 18, 28, 28, 18, 19, 28, 28,253,233, 20, 27, 27, 20, 19, 28, 28, 1,235, 31,
- 38, 11, 12, 6, 15, 17, 37, 12, 11,254, 73, 16, 37, 13, 10, 5, 17, 15, 37, 12, 10, 5, 1, 34, 7, 33, 36, 18, 5, 6, 35, 18,
- 18, 18,160, 12, 34, 18, 18, 17, 6, 6, 33, 19, 18, 5, 12, 17, 18, 19, 34, 7, 4, 17, 18, 18,200, 6, 18, 18, 18, 33, 7, 6,
- 18, 18, 18, 33,254,214, 15, 5, 10, 12, 38, 14, 17, 5, 10, 13, 37, 1,177, 16, 6, 11, 12, 37, 17, 15, 6, 12, 11, 38, 0, 0,
- 0, 16, 0, 8, 0, 11, 4,201, 4,201, 0, 17, 0, 29, 0, 37, 0, 45, 0, 53, 0, 65, 0, 77, 0, 89, 0,100, 0,112, 0,124,
- 0,136, 0,148, 0,166, 0,192, 0,218, 0, 0, 1, 53, 35, 21, 6, 7, 6, 21, 17, 33, 17, 52, 39, 38, 39, 53, 35, 21, 7, 50,
- 22, 21, 20, 6, 35, 34, 38, 53, 52, 54, 22, 34, 6, 20, 22, 50, 54, 52, 38, 34, 6, 20, 22, 50, 54, 52, 2, 34, 6, 20, 22, 50,
- 54, 52, 3, 14, 1, 23, 30, 1, 55, 62, 1, 39, 46, 1, 19, 14, 1, 23, 30, 1, 55, 62, 1, 39, 46, 1, 37, 6, 22, 23, 22, 54,
- 55, 54, 38, 39, 38, 6, 5, 6, 22, 23, 22, 62, 1, 38, 39, 38, 6, 5, 30, 1, 55, 62, 1, 39, 46, 1, 7, 14, 1, 37, 30, 1,
- 55, 62, 1, 39, 46, 1, 7, 14, 1, 3, 22, 54, 55, 54, 38, 39, 38, 6, 7, 6, 22, 19, 22, 54, 55, 54, 38, 39, 38, 6, 7, 6,
- 22, 55, 53, 51, 21, 20, 23, 22, 21, 17, 33, 17, 52, 55, 54, 61, 1, 51, 21, 39, 6, 23, 22, 15, 1, 6, 39, 54, 55, 54, 37, 22,
- 50, 55, 4, 23, 22, 23, 6, 47, 1, 38, 55, 54, 39, 55, 22, 7, 6, 31, 1, 22, 55, 38, 39, 38, 47, 1, 21, 35, 6, 7, 6, 7,
- 22, 63, 1, 54, 39, 38, 55, 1,212, 26, 8,108,105, 3, 1,105,108, 4, 30,140, 89,122,123, 88, 87,124,123,137, 98, 69, 69, 98,
- 69,100, 25, 17, 17, 25, 17, 17, 25, 17, 17, 25, 17,145, 10, 4, 7, 8, 24, 10, 10, 3, 7, 7, 24,185, 10, 4, 7, 7, 25, 10,
- 10, 4, 8, 7, 24,254,236, 4, 12, 11, 12, 22, 4, 3, 10, 13, 11, 22, 1, 56, 4, 11, 11, 12, 22, 7, 11, 11, 12, 22,254,193,
- 4, 22, 12, 12, 10, 3, 4, 22, 12, 11, 12, 1, 64, 3, 22, 12, 11, 11, 4, 3, 22, 12, 11, 11,241, 10, 24, 7, 8, 4, 10, 10,
- 24, 8, 7, 4,205, 10, 24, 7, 8, 4, 10, 10, 25, 7, 7, 4, 46, 72,120,116,252,172,116,120, 72,184, 37, 63, 37, 53,200, 69,
- 36, 7,132,133, 1, 54, 13, 26, 12, 1, 54,133,132, 7, 36, 68,201, 53, 37, 63, 37, 14, 45, 53, 33, 33,174, 49, 40, 5,127,167,
-255, 26, 29,255,167,126, 6, 40, 49,175, 32, 32, 53, 44, 3, 26, 52,116, 52, 40, 52,196,254,178, 1, 78,196, 52, 40, 52,116, 52,
- 59,188,132,133,187,187,133,132,188,141,104,150,104,104,150,224, 26, 37, 26, 26, 37,254, 35, 26, 37, 26, 26, 37, 1,216, 11, 36,
- 16, 14, 7, 11, 12, 37, 15, 14, 6,254, 95, 12, 36, 16, 15, 6, 12, 11, 36, 15, 16, 5,248, 18, 33, 6, 5, 16, 19, 17, 34, 5,
- 6, 18,173, 17, 33, 6, 6, 17, 36, 33, 6, 6, 16, 47, 18, 17, 6, 6, 33, 17, 18, 18, 6, 6, 33,138, 18, 17, 5, 6, 33, 18,
- 17, 18, 6, 5, 34,254,191, 12, 6, 15, 16, 36, 11, 11, 5, 16, 15, 36, 1,139, 11, 7, 14, 16, 36, 11, 12, 6, 15, 15, 37,234,
- 58,127, 45, 44, 71,217,254,140, 1,116,217, 71, 44, 45,127, 58,186, 13, 88, 76, 15,134, 8,172,162, 82,113, 14, 1, 1, 14,113,
- 82,162,172, 8,134, 15, 76, 88, 13, 23, 33, 91, 36, 31,110, 30,147,128, 91,105, 20, 1, 1, 20,105, 91,128,147, 30,110, 31, 36,
- 91, 33, 0, 0, 0, 2, 0,111, 0, 4, 4, 98, 4, 8, 0, 7, 0, 11, 0, 0, 19, 33, 23, 17, 7, 33, 39, 17, 23, 17, 33, 17,
-116, 3,233, 4, 4,252, 23, 4, 75, 3, 90, 4, 7, 5,252, 7, 4, 4, 3,249, 71,252,149, 3,107, 0, 0, 0, 0, 3, 0, 99,
-255,253, 4,110, 4, 24, 0, 7, 0, 11, 0, 34, 0, 0, 19, 33, 23, 17, 7, 33, 39, 17, 23, 17, 33, 17, 7, 21, 6, 7, 2, 7,
- 6, 35, 6, 35, 38, 43, 1, 53, 55, 50, 23, 51, 54, 55, 54, 55, 54,104, 4, 1, 5, 5,251,255, 5, 78, 3,110, 95, 53, 29,230,
- 44, 4, 11, 83, 9, 71,144, 16,114,106, 51, 5, 35, 45, 69,109, 68, 4, 24, 4,251,239, 5, 5, 4, 17, 74,252,130, 3,126,111,
- 4, 46, 40,254,201,227, 42, 33,182, 4, 52, 92,116, 82,126,131, 85, 0, 0, 0, 0, 3, 0,133, 0, 5, 4, 76, 3,218, 0, 7,
- 0, 11, 0, 26, 0, 0, 19, 33, 23, 17, 7, 33, 39, 17, 23, 17, 33, 17, 5, 9, 1, 23, 9, 1, 21, 7, 1, 35, 1, 35, 39, 9,
- 1,138, 3,189, 4, 4,252, 67, 4, 73, 3, 51,253, 90, 1, 13, 1, 12, 62,254,244, 1, 12, 60,254,242, 2,254,245, 3, 60, 1,
- 12,254,244, 3,217, 4,252, 53, 5, 5, 3,203, 68,252,189, 3, 67, 88,254,245, 1, 11, 60,254,243,254,242, 1, 60, 1, 11,254,
-247, 59, 1, 14, 1, 13, 0, 0, 0, 1, 0,201, 0, 89, 4, 8, 5, 68, 0, 20, 0, 0, 1, 51, 1, 54, 1, 50, 55, 51, 23, 9,
- 1, 21, 7, 1, 35, 1, 35, 39, 1, 0, 53, 1, 38, 5, 1, 60, 12, 1, 43, 4, 7, 4, 90,254,192, 1, 64, 92,254,193, 2,254,
-191, 3, 92, 1, 68,254,188, 5, 67,253,236, 9, 1,251, 16, 90,253,228,253,232, 3, 89, 2, 23,253,235, 92, 2, 24, 2, 21, 7,
- 0, 8, 0, 28,255,252, 4,181, 5, 53, 0, 8, 0, 17, 0, 26, 0, 35, 0, 44, 0, 53, 0, 62, 0,126, 0, 0, 1, 51, 6, 43,
- 1, 38, 61, 1, 52, 37, 51, 6, 43, 1, 38, 61, 1, 52, 37, 51, 6, 43, 1, 38, 61, 1, 52, 23, 51, 6, 43, 1, 38, 61, 1, 52,
- 37, 51, 6, 43, 1, 38, 61, 1, 52, 23, 51, 6, 43, 1, 38, 61, 1, 52, 23, 51, 6, 43, 1, 38, 61, 1, 52, 37, 51, 23, 21, 51,
- 32, 19, 22, 29, 1, 35, 38, 39, 38, 43, 1, 34, 7, 21, 20, 7, 39, 38, 35, 17, 20, 15, 1, 34, 47, 1, 53, 55, 51, 23, 21, 22,
- 59, 1, 50, 63, 1, 17, 34, 7, 6, 35, 39, 53, 55, 35, 38, 39, 35, 34, 15, 1, 35, 53, 54, 55, 54, 51, 53, 1, 31, 2, 21, 64,
- 4, 41, 1,163, 1, 20, 65, 4, 40, 1,123, 2, 21, 64, 5, 40,173, 2, 21, 64, 4, 41, 1,123, 3, 21, 65, 4, 41,206, 1, 19,
- 65, 5, 40, 64, 2, 21, 65, 4, 40,254, 94, 41, 4, 1, 1, 52,196, 30, 1, 16, 13, 25, 39, 31,105, 79, 5, 23,106, 95, 74, 21,
- 64, 26, 1, 4, 30, 4, 7, 44, 7, 38, 14, 4,147, 60, 12, 10, 5, 5, 3, 47,137, 47, 70, 23, 14, 2, 40,134,168,218, 4, 48,
-145, 7, 25, 1, 39,249,144, 5, 25, 2, 38,159,145, 6, 25, 2, 38,130,144, 5, 25, 2, 39,220,144, 5, 25, 2, 39, 74,144, 4,
- 26, 2, 38,164,145, 6, 25, 1, 40,108, 4, 78,254,210, 53, 9, 5, 9, 29, 15, 62, 33, 9, 1, 41, 38,254, 86, 63, 15, 1, 60,
- 17, 16, 4, 4, 7, 63, 36, 25, 1,165, 38, 36, 4, 8, 32, 39, 17, 38, 11, 1, 90,135,139, 78, 0, 9, 0, 78, 0, 6, 4,131,
- 5,130, 0, 9, 0, 15, 0, 24, 0, 47, 0, 62, 0, 69, 0,113, 0,119, 0,134, 0, 0, 19, 6, 23, 33, 54, 55, 52, 35, 33, 6,
- 19, 22, 23, 33, 54, 63, 1, 6, 7, 54, 55, 54, 39, 52, 35, 39, 6, 7, 51, 50, 21, 20, 7, 6, 7, 6, 7, 51, 50, 55, 54, 55,
- 54, 55, 54, 53, 52, 35, 1, 51, 20, 6, 7, 20, 22, 23, 35, 38, 39, 38, 39, 38, 54, 3, 22, 37, 54, 55, 33, 22, 5, 54, 55, 50,
- 23, 21, 20, 15, 1, 23, 20, 7, 33, 38, 61, 1, 55, 53, 36, 47, 1, 53, 54, 51, 22, 23, 38, 17, 52, 51, 33, 22, 21, 51, 50, 21,
- 20, 7, 6, 7, 6, 43, 1, 39, 1, 22, 23, 33, 54, 55, 3, 6, 7, 6, 7, 35, 62, 1, 53, 52, 38, 53, 51, 30, 1,176, 1, 12,
- 3, 42, 8, 2, 21,252,236, 19, 44, 4, 11, 2,199, 10, 6, 51, 6, 41, 61, 34, 22, 2, 23, 40, 1, 1, 38, 41, 48, 31, 57, 22,
- 36, 5, 41, 27, 13, 76, 38, 21, 16, 84,254, 6, 6, 69, 1, 96, 3, 6, 13, 77, 23, 7, 2, 80,206,248, 1, 5, 24, 65,253, 91,
- 26, 2, 77,178, 72, 13, 4,252, 89, 1, 11,254,142, 12, 3,254,223, 36, 2, 3, 13, 59,151,141, 38, 3, 24, 23, 38,101, 61, 24,
- 79, 37, 47, 5, 12,253, 78, 4, 7, 2,255, 8, 3,253, 5, 13, 44, 8, 4, 2, 56, 40, 4, 7, 46, 2,143, 55, 76, 49, 82, 21,
- 4,254,224, 24, 17, 21, 20,187,102,126, 1, 72, 56, 83, 16, 81, 27, 30, 44,122, 72, 37, 1, 57, 68, 54, 13, 29, 41,106, 71, 80,
- 64, 2,246, 52,128, 82,106,100,166,137, 95, 42, 75,102,115,251, 68, 22, 20, 15,142, 73, 82, 23, 9, 9, 10, 15, 57, 33, 10, 14,
- 7, 6, 15, 6, 2, 2, 79, 17, 12, 4, 10, 8, 19,238, 1, 28, 45, 2, 22, 93,145,144, 38, 21, 67, 4, 1, 43, 25, 17, 18, 24,
- 1,213, 47, 26, 60, 85,103, 64, 65, 53, 79, 33, 43, 71, 0, 0, 0, 2, 0, 56, 0, 7, 4,153, 5,223, 0, 7, 0, 12, 0, 0,
- 9, 1, 19, 7, 33, 39, 19, 9, 1, 3, 33, 3, 1, 2,110, 1,235, 63, 2,251,167, 4, 66, 1,241,254, 90, 57, 3,183, 54,254,
- 92, 5,223,254,119,251,180, 3, 6, 4, 76, 1,134,254, 53,252, 95, 3,161, 1, 75, 0, 0, 0, 0, 1, 0, 47, 0, 2, 4,162,
- 5,210, 0, 9, 0, 0, 9, 1, 19, 23, 7, 33, 39, 19, 0, 55, 2,108, 1,241, 66, 2, 2,251,149, 4, 68, 1,230, 16, 5,210,
-254,119,251,191, 3, 3, 6, 4, 68, 1,128, 6, 0, 1, 0, 38, 0, 7, 4,171, 4,196, 0, 66, 0, 0, 1, 39, 38, 53, 52, 55,
- 54, 51, 50, 22, 54, 51, 50, 23, 22, 21, 20, 15, 1, 55, 54, 23, 22, 23, 22, 21, 20, 7, 14, 1, 22, 7, 6, 7, 6, 35, 34, 39,
- 38, 47, 1, 18, 7, 35, 54, 3, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 54, 38, 39, 38, 53, 52, 55, 54, 55, 54, 23, 2, 82,165,
- 56, 67, 28, 29, 67, 66, 67, 44, 71, 42, 10, 69,152,248,104, 93, 27, 26, 54, 6, 13,101, 59, 22, 8, 25, 44, 48, 25, 27, 81, 58,
-157, 31,110, 72,136, 30,157, 59, 80, 27, 25, 48, 43, 26, 9, 21, 59,101, 13, 6, 54, 26, 27, 92,105, 2,126,250, 84, 90, 87, 52,
- 18, 88, 88, 92, 34, 31,103, 94,225, 82, 41, 32, 10, 22, 53, 54, 17, 17, 46, 39, 95, 69, 30, 22, 33, 10, 27, 83,226,254,190,241,
-241, 1, 66,226, 83, 27, 10, 33, 22, 30, 69, 95, 39, 46, 17, 16, 55, 53, 22, 10, 32, 41, 0, 0, 0, 2, 0, 47, 1,160, 4,162,
- 4,116, 0, 57, 0, 62, 0, 0, 1, 22, 23, 20, 7, 6, 7, 22, 23, 51, 23, 7, 35, 6, 7, 34, 39, 52, 51, 22, 55, 50, 55, 38,
- 39, 35, 34, 7, 22, 21, 6, 7, 36, 3, 52, 55, 22, 23, 21, 7, 20, 23, 50, 55, 18, 55, 22, 7, 20, 7, 54, 55, 50, 53, 54, 55,
- 54, 38, 3, 6, 23, 53, 38, 3,251, 85, 15, 56,134, 15,195, 41, 21, 15, 36, 2, 13,116, 74, 19, 15, 12, 46, 59, 9,199, 5, 3,
-100, 51,102, 7,255,254, 44, 34, 51, 39, 6, 10, 86, 68, 10, 40,227,153, 4, 32, 71, 76, 47, 55, 59, 59, 44,103, 11,185, 24, 4,
-116, 4, 94, 70, 21, 29, 36, 22,221, 60, 10,142, 7, 76, 68, 38, 1, 63, 62,196, 88, 52, 82,200, 13, 2, 1, 33, 47, 8, 3, 35,
- 19, 32, 73, 10, 63, 1,132, 16, 4,137, 32, 80, 63, 16, 31, 68, 33, 41, 77,254,230,118, 62, 2,147, 0, 0, 0, 0, 1, 0, 47,
- 1, 14, 4,162, 4,122, 0, 50, 0, 0, 1, 33, 34, 38, 53, 52, 54, 55, 54, 55, 51, 55, 35, 38, 39, 38, 53, 52, 62, 1, 59, 1,
- 55, 35, 34, 38, 53, 52, 54, 55, 54, 55, 33, 55, 33, 34, 38, 53, 52, 62, 1, 51, 33, 54, 55, 54, 51, 33, 50, 22, 21, 4,104,253,
-244, 33, 46, 21, 19, 14, 14, 41, 3,103, 36, 19, 24, 22, 39, 19,137, 1,196, 51, 48, 23, 19, 15, 17, 1, 1, 2,253,185, 33, 47,
- 22, 38, 20, 2,106, 6, 13, 23, 33, 1, 29, 32, 47, 1, 14, 58, 40, 26, 47, 12, 9, 3, 11, 2, 24, 29, 41, 25, 47, 26, 10, 57,
- 41, 24, 47, 13, 11, 2, 9, 57, 41, 26, 48, 24, 21, 16, 29, 58, 42, 0, 0, 0, 0, 1, 0, 47, 1, 14, 4,162, 4,122, 0, 50,
- 0, 0, 19, 3, 52, 54, 51, 33, 50, 23, 22, 23, 33, 50, 30, 1, 21, 20, 6, 35, 33, 23, 33, 22, 23, 30, 1, 21, 20, 6, 43, 1,
- 23, 51, 50, 30, 1, 21, 20, 7, 6, 7, 35, 23, 51, 22, 23, 30, 1, 21, 20, 6, 35,105, 57, 47, 32, 1, 29, 33, 23, 13, 6, 2,
-106, 20, 38, 22, 47, 33,253,185, 2, 1, 1, 17, 15, 19, 23, 48, 51,196, 1,137, 19, 39, 22, 24, 19, 36,103, 3, 41, 14, 14, 19,
- 21, 46, 33, 1, 14, 3, 8, 42, 58, 29, 16, 21, 24, 48, 26, 41, 57, 9, 2, 11, 13, 47, 24, 41, 57, 10, 26, 47, 25, 41, 29, 24,
- 2, 11, 3, 9, 12, 47, 26, 40, 58, 0, 0, 0, 0, 2, 0, 14, 1, 26, 4,195, 4, 33, 0, 33, 0, 67, 0, 0, 1, 19, 52, 38,
- 35, 33, 34, 7, 33, 38, 21, 20, 51, 33, 7, 33, 34, 21, 20, 51, 33, 7, 35, 34, 21, 20, 59, 1, 7, 35, 34, 21, 20, 51, 7, 38,
- 39, 54, 55, 51, 55, 35, 38, 39, 54, 55, 51, 55, 33, 34, 39, 54, 55, 33, 55, 33, 34, 39, 54, 51, 33, 54, 55, 33, 50, 22, 21, 3,
- 4,101, 59, 39, 27,254,225, 43, 19,253,112, 67, 67, 2,111, 10,254,224, 67, 67, 0,255, 7,180, 67, 67,142, 16, 50, 67, 67, 23,
- 75, 1, 1, 75, 60, 4,139, 76, 1, 1, 76,185, 2,255, 0, 75, 1, 1, 75, 1, 37, 3,253,147, 74, 1, 1, 74, 2,148, 26, 54,
- 1, 48, 34, 50, 61, 1, 50, 2,129, 30, 41, 46, 2, 61, 60, 61, 61, 60, 64, 61, 58, 62, 61, 59, 24, 1, 84, 84, 1, 11, 1, 85,
- 83, 1, 15, 85, 84, 1, 12, 85, 84, 56, 1, 51, 36,253, 81, 0, 0, 2, 0,140, 0, 0, 4, 69, 5,202, 0, 33, 0, 68, 0, 0,
- 55, 5, 50, 54, 53, 17, 52, 39, 17, 54, 35, 34, 21, 17, 39, 17, 52, 35, 34, 21, 17, 39, 53, 52, 35, 34, 29, 1, 39, 53, 52, 35,
- 34, 21, 39, 54, 55, 22, 23, 21, 23, 53, 54, 55, 22, 23, 21, 23, 17, 52, 55, 22, 23, 17, 23, 17, 54, 55, 22, 21, 17, 22, 23, 17,
- 20, 6, 35, 37, 19,170, 3, 21, 36, 52, 58, 2, 74, 73, 76, 76, 72, 79, 75, 72, 76, 75, 73, 29, 1,104,103, 1, 14, 1,104,103,
- 1, 18,105,103, 1, 15, 1,104,103, 68, 2, 62, 45,252,178, 1,115, 74, 49, 32, 1, 98, 54, 22, 3, 39, 83, 83,253, 2, 13, 1,
- 99, 82, 82,254,196, 9,223, 83, 83,174, 18, 63, 83, 83, 28, 92, 1, 1, 92, 75, 4,172, 92, 1, 1, 92,228, 3, 1, 59, 92, 1,
- 1, 92,254,150, 4, 2,253, 93, 1, 1, 93,252,212, 33, 65,254,138, 42, 62, 75, 2,155, 0, 0, 0, 2, 0, 14, 1, 26, 4,195,
- 4, 33, 0, 33, 0, 68, 0, 0, 19, 33, 50, 53, 52, 43, 1, 39, 51, 50, 53, 52, 43, 1, 39, 33, 50, 53, 52, 35, 33, 39, 33, 50,
- 53, 52, 7, 33, 38, 35, 33, 34, 6, 21, 1, 48, 33, 3, 52, 54, 51, 33, 22, 23, 33, 50, 23, 6, 35, 33, 23, 33, 22, 23, 6, 35,
- 33, 23, 51, 22, 23, 6, 7, 35, 23, 51, 22, 23, 6,108, 2, 31, 67, 67, 50, 16,142, 67, 67,180, 7, 0,255, 67, 67,254,224, 10,
- 2,111, 67, 67,253,112, 19, 43,254,225, 27, 39, 2,113,253,170, 61, 50, 34, 1, 48, 54, 26, 2,148, 74, 1, 1, 74,253,147, 3,
- 1, 37, 75, 1, 1, 75,255, 0, 2,185, 76, 1, 1, 76,139, 4, 60, 75, 1, 1, 1, 50, 59, 61, 62, 58, 61, 64, 60, 61, 61, 60,
- 61, 2, 46, 41, 30,253,103, 2,175, 36, 51, 1, 56, 84, 85, 12, 1, 84, 85, 15, 1, 83, 85, 1, 11, 1, 84, 84, 0, 2, 0,140,
-255,249, 4, 69, 5,194, 0, 33, 0, 67, 0, 0, 19, 20, 51, 50, 61, 1, 55, 21, 20, 51, 50, 61, 1, 55, 17, 20, 51, 50, 53, 17,
- 55, 17, 20, 51, 50, 39, 17, 54, 53, 17, 52, 38, 35, 5, 39, 37, 50, 22, 21, 17, 6, 7, 17, 20, 7, 38, 39, 17, 7, 17, 6, 7,
- 38, 53, 17, 7, 21, 6, 7, 38, 39, 53, 7, 21, 6, 7, 38, 39,170, 73, 75, 76, 72, 75, 79, 72, 76, 76, 73, 74, 2, 58, 52, 36,
-252,235, 30, 3, 78, 45, 62, 2, 68,103,104, 1, 15, 1,103,105, 18, 1,103,104, 1, 14, 1,103,104, 1, 2,179, 83, 83, 61, 20,
-174, 83, 83,221, 9,254,198, 83, 83, 1, 98, 13,253, 1, 83, 83, 3, 39, 23, 54, 1, 97, 33, 48, 74, 41, 75, 62, 42,254,138, 66,
- 32,252,212, 92, 1, 1, 92, 2,252, 4,254,152, 93, 1, 1, 93, 1, 58, 2,228, 93, 1, 1, 93,171, 4, 74, 93, 1, 1, 93, 0,
- 0, 29, 0, 12,255,254, 4,197, 4,191, 0, 79, 0,128, 0,136, 0,144, 0,159, 0,174, 0,181, 0,188, 0,205, 0,211, 0,218,
- 0,222, 0,226, 0,230, 0,234, 0,238, 0,242, 0,246, 0,250, 0,254, 1, 2, 1, 17, 1, 29, 1, 33, 1, 37, 1, 41, 1, 45,
- 1, 49, 1, 53, 0, 0, 1, 50, 23, 22, 29, 1, 20, 7, 23, 21, 20, 7, 51, 54, 53, 54, 59, 1, 50, 21, 22, 29, 1, 6, 35, 39,
- 6, 7, 21, 23, 55, 22, 21, 20, 7, 20, 43, 1, 34, 47, 1, 6, 35, 34, 39, 6, 21, 6, 43, 1, 34, 53, 38, 53, 52, 55, 23, 55,
- 53, 39, 7, 34, 39, 53, 52, 55, 54, 59, 1, 50, 31, 1, 53, 39, 55, 38, 53, 54, 55, 54, 1, 20, 23, 51, 53, 38, 53, 54, 59, 1,
- 23, 7, 23, 21, 7, 21, 20, 23, 22, 29, 1, 23, 51, 55, 52, 55, 54, 53, 39, 55, 53, 39, 55, 22, 29, 1, 7, 23, 54, 61, 1, 52,
- 39, 38, 43, 1, 32, 7, 6, 5, 22, 7, 6, 39, 34, 39, 52, 33, 22, 23, 6, 35, 34, 39, 38, 19, 51, 54, 51, 23, 54, 53, 38, 53,
- 38, 35, 6, 7, 6, 21, 37, 6, 35, 6, 21, 23, 55, 22, 23, 53, 52, 39, 38, 53, 38, 5, 23, 21, 7, 38, 53, 52, 55, 22, 21, 20,
- 7, 39, 53, 3, 22, 51, 54, 55, 38, 55, 6, 7, 6, 43, 1, 38, 39, 38, 39, 22, 55, 22, 23, 51, 53, 38, 5, 21, 50, 63, 1, 34,
- 7, 5, 21, 23, 53, 55, 21, 55, 53, 7, 21, 23, 53, 51, 21, 55, 39, 7, 21, 55, 39, 7, 21, 51, 53, 51, 21, 51, 53, 7, 21, 23,
- 53, 23, 21, 51, 53, 7, 21, 51, 53, 5, 39, 7, 21, 22, 21, 22, 51, 50, 55, 54, 55, 38, 53, 6, 37, 7, 22, 21, 20, 23, 50, 63,
- 1, 38, 35, 7, 37, 7, 23, 53, 7, 21, 23, 53, 39, 21, 23, 53, 23, 21, 55, 53, 55, 21, 55, 53, 55, 21, 55, 53, 2,117,233,111,
- 44, 77, 5, 19, 4,122, 34, 27, 6, 48, 54, 20, 48, 68,189, 47,178, 53, 73, 58, 50, 4, 39, 53,144, 58,131,134, 54,160, 38, 34,
- 11, 42, 58, 68, 58,173,231, 83, 52, 6, 54, 3, 30, 25, 36, 46,101, 19, 9, 81, 26,201, 78,254,240, 53, 5, 23, 8, 10, 10, 14,
- 10, 25, 15,117, 52, 77, 68, 97,149, 25, 20, 26, 10, 23, 19, 23, 4, 54,170, 98, 85, 29,254,254, 80, 15, 1, 25, 43, 10, 44, 72,
- 59, 27, 1, 96,155, 4, 28, 73, 50, 51, 2,181, 4,214, 18, 78, 24, 53, 6, 15, 21, 40,189,253, 13, 13, 10, 40, 35, 73, 48,183,
- 77,154, 19, 1,211, 10, 39, 29, 94, 53, 31, 37,204, 35,163,165, 33, 5, 25, 27, 21, 58, 88, 43,145, 9, 6, 34, 22, 7, 15, 19,
- 5, 7, 1, 42, 11, 3, 19, 10, 18,254,236, 14,222, 20,227, 19,155, 21, 2, 54, 18, 3, 87, 24, 15, 19,125, 19, 87, 19, 58, 24,
-254,117, 87, 5, 52, 5, 10, 15, 53,118, 26, 14,142, 2, 84, 13,173, 38, 16, 9, 47, 4, 24, 72,254, 51, 3, 23, 19, 19, 86, 19,
-156, 20, 12, 19, 15, 20, 4,190,156, 88, 68, 57, 92, 83, 76, 5, 43, 38, 51, 49, 46,100, 43, 28, 19, 37, 6, 88, 33, 15, 81, 10,
- 14, 36, 31, 50, 96, 96, 75, 80, 80, 80, 20, 71, 91, 54, 37, 35, 10, 10, 81, 15,121, 6, 45, 11, 22, 54, 91, 91, 51, 5, 71, 75,
- 91,175,187, 79, 23,254,194, 96, 95, 65, 91, 45, 41, 15, 36,116, 55,136, 10, 76, 25, 45, 36, 20, 10, 21, 76, 54, 29, 61,152,127,
- 15, 34, 17, 9, 28, 40,141, 20, 67, 74, 35,171, 82, 34,196, 48,169, 13, 58,130, 4,126, 71, 8, 66,123,126, 69,254,111,106, 4,
- 6, 8, 60, 30, 52, 8, 83, 91, 16,191, 90, 30, 21, 8, 4, 15, 97, 11, 76, 21, 67, 53, 29, 11, 5,129, 41, 10, 46, 85, 37, 43,
- 90, 38, 7, 41,131,254,205,162, 12,155, 55,101, 31,141, 60, 18, 73, 76, 65, 97, 77, 30,111, 75, 51, 51, 75, 64, 71, 54, 11, 36,
- 4, 36, 4, 40, 8, 38, 12, 40, 4, 39, 39, 6, 38, 5, 49, 2, 47, 4, 45, 45, 45, 45, 50, 41, 4, 40, 11, 40, 45, 5, 40, 40,
-100, 4, 4, 16, 46, 39, 45, 84, 63, 24, 30, 24, 79, 75, 56, 84, 36, 12, 33, 84, 51, 15, 4,166, 40, 5, 45, 60, 40, 5, 40, 26,
- 39, 6, 41, 20, 41, 5, 41, 3, 40, 4, 41, 8, 41, 6, 40, 0, 0, 1, 0, 9,255,251, 4,200, 5,211, 0, 38, 0, 0, 1, 50,
- 23, 22, 21, 20, 7, 1, 7, 20, 23, 37, 50, 23, 21, 20, 35, 5, 34, 39, 38, 61, 1, 52, 55, 0, 55, 54, 53, 52, 39, 35, 5, 34,
- 39, 53, 52, 55, 51, 2,244,116, 92, 42,101,253,232, 9, 79, 2,201, 64, 7, 85,253, 67,131, 88, 22,113, 1,249, 16, 9, 80, 9,
-253, 83, 46, 9, 80, 11, 5,211,141, 77, 79,138, 98,253,160, 62, 89, 26,209, 97, 3, 89,198,174, 53, 56, 24,138,108, 2, 55, 27,
- 27, 22, 80, 32,204, 80, 30, 64, 12, 0, 0, 0, 0, 6, 0, 8, 0, 2, 4,201, 4,195, 0, 17, 0, 36, 0, 48, 0, 60, 0, 70,
- 0, 88, 0, 0, 1, 32, 19, 22, 21, 16, 5, 6, 43, 1, 32, 3, 38, 61, 1, 16, 37, 54, 5, 38, 35, 34, 7, 6, 21, 16, 23, 22,
- 51, 32, 19, 54, 61, 1, 16, 37, 38, 3, 35, 34, 39, 19, 22, 59, 1, 50, 55, 19, 6, 3, 6, 29, 1, 33, 53, 52, 55, 54, 55, 19,
- 6, 37, 22, 23, 33, 38, 39, 38, 39, 19, 22, 5, 50, 23, 22, 21, 20, 7, 6, 43, 1, 34, 39, 38, 61, 1, 52, 55, 54, 2, 94, 1,
- 55,215, 92,254,255,158,172, 26,254,203,213, 80, 1, 18,151, 1,184,135,135,244,191,103,227,145,181, 1, 21,190, 72,254,236, 4,
-244, 22,137,114,169, 39, 46, 6, 41, 37,173,115,234, 77,254,167,233, 14, 16,170, 5, 2, 13, 77, 2,254,166, 1, 25, 27, 35,170,
-102,254,155, 67, 45, 20, 55, 33, 37, 6, 65, 46, 17, 59, 32, 4,194,254,211,142,174,254,239,206,119, 1, 58,142,144, 23, 1, 19,
-210,107,139, 75,240,143,158,254,255,183,113, 1, 26,122,134, 13, 1, 24,182, 3,252, 43, 72, 1, 42, 25, 24,254,214, 71, 2,144,
- 59, 77, 4, 13,234,178, 10, 10,254,214, 3,116,117,143, 47, 38, 40, 21, 1, 40, 65,247, 65, 30, 38, 58, 43, 26, 67, 30, 31, 4,
- 59, 46, 23, 0, 0, 6, 0, 34, 0, 7, 4,175, 4, 47, 0, 9, 0, 19, 0, 29, 0, 56, 0, 80, 0,105, 0, 0, 1, 62, 1, 39,
- 54, 55, 22, 6, 7, 38, 3, 38, 6, 7, 38, 39, 54, 22, 23, 6, 5, 20, 22, 23, 6, 7, 46, 1, 55, 22, 1, 6, 35, 34, 39, 38,
- 39, 7, 6, 7, 6, 35, 34, 39, 22, 54, 55, 54, 39, 55, 22, 55, 23, 6, 23, 30, 1, 3, 22, 23, 22, 7, 51, 22, 23, 22, 29, 1,
- 46, 1, 35, 6, 7, 39, 54, 39, 53, 54, 55, 54, 38, 1, 38, 53, 52, 55, 54, 23, 39, 38, 39, 54, 55, 14, 1, 23, 22, 31, 1, 6,
- 23, 7, 38, 7, 38, 6, 2,220, 48, 55, 5, 26, 26, 9, 94, 60, 12, 5, 49,120, 44, 23, 15, 66,177, 53, 18,254,177, 64, 50, 2,
- 11, 74, 86, 8, 30, 2,171, 77,118, 33, 35,117, 65, 1, 43, 85, 66, 68, 88, 91,102,185, 42, 59, 45, 49, 48, 41, 46, 46, 67, 44,
-157,183,115, 66, 35, 72, 2, 75, 85,139, 9,149, 80,130, 93, 49, 5, 50,129, 60, 48, 27,252,209, 3, 86, 81,137, 1, 31, 2, 12,
-196,125, 37, 39, 72,136, 1, 54, 8, 45, 84,125, 94,128, 1, 36, 29,107, 55, 10, 4, 82,151, 26, 27, 1,135, 27, 5, 31, 16, 20,
- 50, 7, 39, 23,198, 55,102, 23, 27, 24, 33,157, 65, 4,254, 92, 59, 5, 25,121, 1, 63, 49, 33, 53, 48, 66, 69,116,132, 30, 34,
- 33, 28,122,107, 81, 59, 4, 15, 48,154,113,117, 7, 48, 92,183, 7,111,130, 7,105, 29, 58, 19, 53, 22,111, 80,165,253, 90, 17,
- 17,106,115, 88, 4, 1, 70, 97,192, 80, 74,194, 71,108, 27, 59, 24, 52, 26,101, 4, 1,106, 0, 0, 23, 0, 78,255,255, 4,131,
- 5, 94, 0, 3, 0, 19, 0, 25, 0, 29, 0, 49, 0, 70, 0, 91, 0,113, 0,139, 0,149, 0,154, 0,159, 0,164, 0,169, 0,174,
- 0,179, 0,184, 0,189, 0,194, 0,199, 0,204, 0,209, 0,252, 0, 0, 1, 6, 55, 38, 23, 38, 7, 6, 39, 55, 39, 54, 23, 22,
- 23, 6, 7, 38, 39, 36, 1, 6, 7, 35, 38, 55, 3, 22, 39, 38, 19, 21, 6, 35, 34, 39, 53, 38, 55, 54, 55, 22, 23, 6, 7, 6,
- 4, 7, 35, 38, 39, 21, 39, 53, 36, 39, 54, 55, 22, 23, 6, 7, 6, 4, 23, 22, 7, 39, 54, 39, 54, 3, 21, 39, 53, 36, 39, 54,
- 55, 22, 23, 6, 23, 6, 4, 23, 6, 7, 39, 54, 53, 54, 7, 38, 39, 54, 55, 22, 23, 6, 21, 20, 4, 23, 6, 7, 38, 39, 54, 39,
- 38, 39, 21, 39, 19, 21, 39, 53, 36, 55, 54, 55, 54, 23, 7, 23, 6, 39, 38, 7, 6, 4, 23, 6, 7, 38, 39, 54, 39, 54, 1, 20,
- 30, 1, 51, 38, 55, 34, 14, 1, 5, 22, 23, 55, 38, 39, 22, 23, 55, 38, 39, 22, 23, 55, 38, 39, 22, 7, 55, 38, 39, 22, 7, 23,
- 54, 39, 6, 7, 23, 54, 37, 23, 54, 55, 6, 7, 23, 54, 55, 6, 7, 23, 54, 55, 6, 31, 1, 38, 55, 6, 23, 55, 38, 55, 6, 23,
- 55, 38, 39, 6, 23, 21, 39, 53, 38, 7, 34, 39, 54, 37, 22, 23, 22, 51, 53, 38, 39, 46, 1, 53, 52, 62, 1, 50, 30, 1, 21, 20,
- 6, 7, 6, 7, 51, 20, 35, 21, 54, 55, 4, 23, 6, 35, 38, 3, 5, 16, 56, 9,112, 10, 43, 87, 68, 84, 99, 39, 72,188, 12, 2,
-130, 64,145, 1, 1,254,162, 88, 28, 14, 1, 79, 96, 61, 19, 32,220, 10, 24, 31, 3,161, 1, 4, 59, 42, 41, 56, 1, 2, 1, 32,
- 2, 14, 24,107, 68,254,255, 4, 2,118, 47, 80,157, 3, 5, 1,146, 5, 4,107, 45, 74, 12, 1, 75, 68,254,176, 2, 4,104, 71,
- 97,202, 13, 9, 2, 68, 1, 4,138, 96,150, 2,235,247, 5, 1,103, 66, 68,150, 1,234, 3, 4,160, 30, 54,166, 5, 2,172, 68,
- 68, 68,254,159, 1, 12,188, 61, 51,100, 84, 68, 87, 44, 9, 3, 2,155, 6, 6,160, 58,103,242, 1, 11,254,149, 17, 30, 17, 28,
- 28, 16, 31, 17, 1,151,106, 41, 25, 89,138,105, 35, 39, 87,116, 73, 16, 45, 57,119, 49, 1, 56, 36, 94, 2, 23, 56, 2, 59, 46,
- 47, 55, 45,253, 73, 25, 41,106, 83, 41, 39, 35,105, 92, 18, 45, 16, 73, 77, 15, 57, 2, 49, 68, 59, 56, 23, 2, 37, 97, 55, 47,
- 46, 7,216, 68, 61,117,246, 82, 78, 1, 66, 22, 82, 1, 1, 2, 2, 19, 21, 21, 38, 39, 37, 22, 21, 18, 3, 3, 1, 1, 81, 22,
- 1, 66, 78, 82,246,113, 3,207, 32, 22, 18,100, 50, 10, 31, 14, 21, 23, 68, 13, 3,115, 57, 30, 16, 8, 18,253, 16, 31, 56, 67,
- 32, 3, 91, 24, 34, 8,252,124, 52, 24, 52, 38, 27, 51, 44, 22, 12, 5, 20, 17, 39, 50, 94, 51,159, 82, 12, 84, 40, 66, 63, 29,
- 18, 8, 23, 35, 39, 57, 67, 45, 13, 11, 18, 33, 21, 1,121,129, 12,126, 35, 90, 49, 20, 19, 6, 15, 29, 48, 62, 78, 63, 30, 25,
- 36, 23, 37,151, 30, 89, 52, 28, 11, 7, 30, 41, 37, 70, 78, 63, 19, 13, 10, 29, 40, 28, 27,123, 11, 1,219,117, 8,115, 19,105,
-115, 4, 3, 60, 22, 21, 14, 32, 10, 51, 40, 38, 94, 84, 18, 15, 14, 25, 48, 29, 2, 53, 17, 29, 16, 60, 62, 15, 30, 55, 59, 44,
- 35, 52, 20, 91, 58, 31, 79, 40,118, 65, 17,102, 71,135, 69, 7,116, 89,143, 66, 10,122, 94,126, 52, 23,106, 10, 35, 44, 59, 16,
- 98, 31, 58, 91, 39,126, 17, 65,118, 64,126, 7, 69,135, 81,130, 10, 66,143, 97,107, 23, 52,126, 95,170,190, 6,178, 72, 35,152,
- 84, 6, 50, 27, 1, 22, 1, 1, 10, 36, 20, 19, 36, 20, 20, 36, 19, 20, 36, 10, 1, 1, 1, 20, 27, 50, 6, 84,152, 34, 0, 0,
- 0, 2, 0, 96,255,255, 4,113, 5,216, 0, 7, 0, 36, 0, 0, 1, 38, 39, 6, 7, 22, 23, 54, 7, 38, 39, 54, 55, 22, 23, 22,
- 7, 51, 50, 55, 17, 38, 7, 35, 17, 20, 23, 33, 54, 53, 17, 35, 38, 7, 17, 22, 51, 2,214, 2,106,106, 1, 7,100,110,175,104,
- 10, 2,177,177, 3, 4,119,143,158,152,150,160,143, 87,254,209, 86,147,159,150,152,158, 4,221,177, 2, 2,177,142,113, 90,114,
-101,184,243, 2, 2,243,194, 91, 99,254,247, 55, 1,254, 12,181,174,174,181, 1,244, 1, 55, 1, 9, 99, 0, 0, 0, 3, 0,121,
-255,254, 4, 88, 5,218, 0, 3, 0, 32, 0, 44, 0, 0, 1, 21, 51, 53, 39, 53, 51, 21, 51, 21, 35, 21, 51, 5, 21, 33, 17, 23,
- 21, 39, 3, 35, 3, 39, 53, 23, 17, 33, 53, 33, 53, 35, 53, 19, 51, 17, 33, 53, 33, 53, 35, 21, 33, 21, 33, 1,252,202,182,170,
-126,126, 10, 1,148,254, 98,144,136, 2,176, 2,134,134,254,108, 1,150,118,164, 70, 1, 12,254,244, 70,254,244, 1, 12, 5, 65,
- 60, 60, 51,102,102,162, 88, 1,175,253,232,139,156,133,254,238, 1,188,134,155,130, 1,113,176, 88,162,252,207, 1,187, 71, 99,
- 99, 71, 0, 0, 0, 2, 0, 97, 0, 7, 4,112, 6, 2, 0, 7, 0, 32, 0, 0, 1, 17, 51, 50, 54, 52, 38, 35, 1, 17, 33, 50,
- 22, 21, 20, 6, 43, 1, 21, 55, 51, 9, 1, 35, 39, 21, 35, 53, 7, 35, 9, 1, 51, 2,109,171, 96,104,104, 96,254,206, 1, 50,
-169,174,174,169,171,179,180,254,177, 1, 96,179,196,136,209,179, 1,104,254,182,181, 5,124,254, 59,118,217,118,252,188, 3,202,
-183,177,178,182,252,194,254,147,254,125,214,214,228,228, 1,138, 1,102, 0, 0, 0, 1, 0,204,255,251, 4, 5, 5,205, 0, 31,
- 0, 0, 1, 51, 23, 21, 51, 23, 21, 7, 35, 21, 33, 23, 21, 7, 33, 17, 7, 35, 39, 17, 33, 39, 53, 55, 33, 53, 35, 39, 53, 55,
- 51, 53, 2, 12,182, 6,175, 6, 6,175, 1, 54, 7, 7,254,202, 6,182, 6,254,204, 6, 6, 1, 52,174, 5, 5,174, 5,205, 5,
-154, 6,148, 6,112, 6,152, 5,252,134, 5, 5, 3,122, 5,152, 6,112, 6,148, 6,154, 0, 0, 0, 1, 0, 55, 0, 1, 4,154,
- 4,100, 0, 43, 0, 0, 1, 33, 23, 21, 7, 35, 17, 33, 53, 55, 51, 23, 17, 7, 35, 39, 53, 33, 17, 51, 23, 21, 7, 33, 39, 53,
- 55, 51, 17, 33, 21, 7, 35, 39, 17, 55, 51, 23, 21, 33, 17, 35, 39, 53, 1,196, 1, 73, 4, 4,120, 1,172, 5, 79, 5, 5, 79,
- 5,254, 84,120, 4, 4,254,183, 4, 4,128,254, 83, 5, 86, 4, 4, 86, 5, 1,173,128, 4, 4,100, 5, 89, 4,254, 92,121, 5,
- 5,254,183, 5, 5,118,254, 86, 4, 80, 4, 4, 80, 4, 1,170,118, 5, 5, 1, 73, 5, 5,121, 1,164, 4, 89, 0, 2, 0, 30,
- 0, 3, 4,179, 5, 39, 0, 27, 0, 44, 0, 0, 1, 51, 50, 23, 35, 39, 32, 3, 6, 21, 16, 5, 22, 51, 55, 21, 6, 7, 6, 43,
- 1, 32, 3, 38, 53, 16, 37, 54, 1, 51, 50, 23, 51, 21, 7, 22, 21, 39, 7, 35, 53, 55, 39, 53, 51, 2,109, 16,175,166, 4,189,
-254,240,165, 74, 1, 14,108,123,203,126,109, 64, 43, 22,254,221,188,104, 1, 52,136, 1,250, 2, 5, 49,165,133, 52,140,134, 2,
- 52,136,168, 5, 39,129, 48,254,239,138,163,254,190,188, 62, 44, 5, 95, 22, 10, 1, 23,169,205, 1,118,210, 78,254,107,177, 3,
-110,165, 15,109,109, 3,177,110, 3, 0, 0, 0, 0, 4, 0, 8, 0, 0, 4,201, 4,193, 0, 22, 0, 79, 0, 98, 0,115, 0, 0,
- 1, 22, 51, 50, 55, 22, 51, 50, 55, 53, 51, 23, 21, 20, 15, 1, 34, 39, 6, 35, 34, 39, 52, 23, 51, 22, 23, 50, 21, 3, 51, 54,
- 17, 52, 39, 53, 22, 29, 1, 20, 7, 6, 7, 21, 22, 59, 1, 21, 6, 43, 1, 34, 7, 39, 35, 34, 39, 53, 51, 50, 55, 53, 39, 38,
- 39, 38, 53, 52, 63, 1, 21, 6, 21, 16, 23, 53, 3, 53, 55, 50, 39, 21, 6, 7, 6, 21, 20, 23, 21, 35, 38, 39, 38, 53, 52, 55,
- 54, 51, 52, 37, 22, 23, 22, 29, 1, 20, 7, 6, 7, 52, 55, 54, 61, 1, 16, 39, 1,220, 22, 52, 38, 26, 31, 35, 54, 17, 4, 2,
- 56, 25, 36, 28, 27, 36, 66, 13,144, 2, 41, 27, 7, 8, 1,238, 90,181,182, 62, 38, 65,134, 21, 95, 59,105, 17, 56, 56,117, 45,
-111, 49, 98, 70, 71,102, 29, 81,162, 27, 95,239, 15, 3, 28,208, 77, 53,109,119, 2,128, 76, 31,218, 98, 29, 2, 4,107,106,143,
-135, 73, 25, 44, 75,242, 4,192, 61, 39, 39, 56, 5, 32, 4, 48, 22, 3, 35, 35, 82, 27,109, 52, 9, 4,252,218,185, 1, 43,158,
-168, 2,175,225, 29,220,180, 53, 18, 4, 33, 4, 27, 80, 80, 23, 4, 34, 3, 52, 92, 61,143,144,209,187, 25, 4,156,184,254,232,
-199, 2, 2,142, 18,138, 34, 5, 56, 81,165,195,189,174, 1, 60,189, 87, 84,218,166, 57, 3, 2, 25, 91,148,176, 38,172,148, 66,
- 5, 6, 67,142,155, 2, 1, 40,198, 0, 0, 0, 0, 3, 0,103,255,249, 4,106, 5, 91, 0, 84, 0, 95, 0,103, 0, 0, 1, 50,
- 23, 15, 1, 22, 23, 22, 21, 20, 7, 21, 35, 21, 50, 55, 54, 53, 52, 39, 55, 51, 22, 21, 16, 3, 38, 35, 34, 21, 20, 23, 22, 7,
- 6, 35, 6, 39, 38, 39, 21, 6, 23, 20, 35, 34, 53, 54, 61, 1, 6, 21, 6, 39, 34, 39, 52, 54, 39, 52, 35, 34, 7, 2, 17, 52,
- 55, 51, 23, 6, 21, 20, 23, 22, 23, 53, 35, 53, 38, 53, 52, 55, 47, 1, 54, 3, 20, 23, 51, 54, 53, 52, 39, 6, 7, 6, 37, 6,
- 21, 20, 23, 54, 53, 52, 2,105, 61, 75, 17, 14,117, 47, 51,188,110,111,131,124,115, 20, 4,215,137,110, 73, 51,110, 30, 2, 12,
- 39, 59, 6, 54, 87, 4, 78, 96,102, 73,141, 7, 58, 37, 13,141, 3, 43, 75,107,141,209, 5, 19,115,197, 58,111,109,188,219, 22,
- 15, 80,189,124, 4, 64, 26, 82, 47, 37, 1, 83, 32, 60,133, 5, 91, 69, 14,114, 42, 74, 75, 78,183, 90, 69,110,118,145,182,162,
-105, 17,152,237,254,247,254,226,160, 41, 26,135, 37, 42, 54, 8, 38,219, 45,138, 67,108, 54, 55,106, 71,135, 86,176, 34, 2, 54,
- 59,155, 30, 37,159, 1, 10, 1, 50,214,153, 17,112,160,231,150, 43, 16,110, 69, 85,187,175, 95,114, 17, 66,254, 40,134, 69, 97,
-128, 76,116, 23, 68, 58,149,106, 91,126, 94, 57,154,140, 0, 0, 0, 1, 0, 15, 0, 5, 4,194, 5, 34, 0, 50, 0, 0, 1, 50,
- 23, 22, 21, 20, 7, 23, 7, 35, 39, 6, 35, 34, 39, 21, 3, 35, 38, 39, 54, 1, 54, 51, 22, 51, 50, 55, 39, 7, 35, 38, 39, 55,
- 22, 21, 7, 22, 23, 53, 54, 61, 1, 52, 39, 38, 43, 1, 34, 7, 54, 2,171,190,169,120,100,156,113, 2,149,133,175,137,115,209,
- 2,165, 3, 21, 1, 22, 19, 6, 91,127,154,121,174, 87, 5,151, 7,188,227,101,185, 23, 54,202,111, 96, 29, 79, 97,137, 5, 33,
-165,136,188,176,121,129,115,149, 96, 77, 3,254,107,123, 6, 22, 1,101, 26, 75, 91,174,101,102, 10,226, 12, 5,139,153, 12, 1,
- 79,109, 31,222, 89, 60, 48,125, 0, 5, 0, 27, 0, 5, 4,182, 4,160, 0, 11, 0, 18, 0, 22, 0, 26, 0, 33, 0, 0, 19, 52,
- 0, 51, 50, 0, 21, 20, 0, 35, 34, 0, 55, 20, 23, 1, 3, 6, 0, 19, 22, 23, 27, 1, 54, 55, 9, 1, 54, 53, 52, 0, 39, 17,
- 27, 1, 89,244,245, 1, 89,254,167,245,244,254,167,120, 95, 1, 80, 2,154,254,237,136,139,151, 2, 75,161,134,254,217, 1, 92,
- 89,254,236,166, 2, 81,245, 1, 90,254,166,245,244,254,169, 1, 87,244,180, 95, 1,139, 1, 98, 3,254,237,253,241,140, 4, 1,
-229,254, 25, 6,129, 1, 89,254,228, 88,193,196, 1, 19, 3,254,161, 0, 0, 0, 0, 4, 0, 14, 0, 5, 4,195, 4,186, 0, 18,
- 0, 30, 0, 40, 0, 52, 0, 0, 1, 21, 30, 1, 51, 50, 54, 53, 52, 0, 35, 34, 0, 7, 62, 1, 51, 50, 22, 5, 20, 6, 35, 34,
- 38, 53, 52, 54, 51, 50, 22, 5, 52, 38, 34, 6, 21, 20, 22, 50, 54, 37, 20, 0, 35, 34, 0, 53, 52, 0, 51, 50, 0, 2,105, 8,
-158,116,118,161,254,179,228,234,254,199, 16, 19,143,120,115,159, 1,113, 49, 31, 34, 48, 48, 34, 32, 48,253,205, 47, 66, 47, 47,
- 66, 47, 3, 35,254,160,250,250,254,159, 1, 97,250,250, 1, 96, 2,105, 21,114,155,166,124,224, 1, 72,254,199,250,138,144,155,
-127, 33, 47, 47, 33, 34, 48, 48, 34, 34, 48, 48, 34, 33, 47, 48, 32,250,254,161, 1, 95,250,250, 1, 98,254,158, 0, 10, 0, 5,
- 0,146, 4,204, 5, 57, 0, 14, 0, 62, 0, 68, 0, 74, 0, 80, 0, 86, 0, 92, 0, 98, 0,104, 0,110, 0, 0, 1, 20, 23, 22,
- 50, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 5, 38, 55, 51, 54, 55, 39, 54, 55, 23, 54, 55, 53, 54, 23, 21, 22, 23, 55, 22, 23,
- 7, 22, 23, 51, 22, 7, 35, 6, 7, 23, 6, 7, 39, 6, 7, 21, 6, 39, 53, 38, 39, 7, 38, 39, 55, 38, 39, 37, 54, 55, 39, 6,
- 7, 5, 22, 23, 55, 38, 39, 1, 54, 55, 39, 6, 7, 37, 22, 23, 55, 38, 39, 1, 38, 39, 7, 22, 23, 37, 6, 7, 23, 54, 55, 5,
- 6, 7, 23, 54, 55, 37, 38, 39, 7, 22, 23, 1,234, 38, 36,104, 37, 36, 37, 37, 51, 52, 36, 38,254, 49, 43, 43, 88, 21, 83, 65,
- 11, 78, 64, 96,152, 61, 61,142,107, 62, 80, 13, 67, 82, 22, 88, 43, 43, 88, 15, 89, 67, 13, 80, 62,107,142, 61, 61,141,108, 63,
- 76, 13, 63, 81, 21, 1,139, 26, 28, 9,111, 76, 1, 43, 32, 23,143, 78,110,254,249, 7, 17,159, 59, 18, 2, 80, 19, 5,214, 15,
- 63,253,252, 16, 8,212, 17, 59, 2, 28, 6, 18,160, 64, 13,254,203, 26, 29, 10,110, 77,254,211, 22, 31,143, 78,110, 2,228, 51,
- 37, 37, 37, 37, 51, 52, 37, 38, 38, 37,115, 61, 61,143, 96, 63, 74, 12, 62, 80, 23, 87, 44, 44, 87, 17, 87, 63, 11, 75, 63, 95,
-144, 61, 61,137,102, 63, 72, 8, 63, 80, 23, 87, 44, 44, 87, 18, 85, 63, 8, 72, 63, 94,145,234, 15, 8,210, 17, 60,133, 8, 15,
-155, 61, 16,254,161, 29, 21,133, 75,101, 43, 24, 26, 8, 99, 76,254,171, 24, 32, 13,109, 67,190, 29, 27,134, 80, 96,107, 14, 8,
-213, 24, 60,129, 7, 15,151, 60, 24, 0, 0, 0, 0, 5, 0, 33, 0,164, 4,176, 5, 52, 0, 15, 0, 30, 0, 40, 0, 48, 0, 56,
- 0, 0, 19, 52, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 55, 20, 23, 22, 51, 50, 55, 54, 53, 52, 0, 35, 34, 7,
- 6, 1, 38, 7, 35, 18, 37, 4, 19, 35, 38, 55, 38, 39, 54, 55, 22, 23, 6, 5, 38, 39, 54, 55, 22, 23, 6, 33,171,171,241,243,
-171,170,170,171,243,241,171,171,118,137,136,192,193,137,137,254,238,193,192,136,137, 1,211,164, 61, 54, 15, 1, 12, 1, 4, 15,
- 53, 78, 39, 86, 3, 4, 91, 83, 4, 4,254, 46, 85, 4, 5, 91, 82, 5, 5, 2,234,243,171,172,172,171,243,241,171,170,170,171,
-241,191,137,138,138,137,191,195, 1, 16,136,136,254,222, 10,204, 1, 16, 14, 18,254,245,202,175, 4, 88, 91, 5, 7, 86, 91, 4,
- 4, 88, 91, 5, 7, 86, 91, 0, 0, 5, 0, 33, 0,164, 4,176, 5, 52, 0, 15, 0, 30, 0, 40, 0, 48, 0, 56, 0, 0, 19, 52,
- 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 55, 20, 23, 22, 51, 50, 55, 54, 53, 52, 0, 35, 34, 7, 6, 1, 22, 55,
- 51, 2, 5, 36, 3, 51, 22, 1, 38, 39, 54, 55, 22, 23, 6, 5, 38, 39, 54, 55, 22, 23, 6, 33,171,171,241,243,171,170,170,171,
-243,241,171,171,118,137,136,192,193,137,137,254,238,193,192,136,137, 1,209,166, 61, 54, 15,254,243,254,253, 15, 51, 81, 1, 78,
- 86, 3, 4, 91, 83, 4, 4,254, 46, 85, 4, 5, 91, 82, 5, 5, 2,234,243,171,172,172,171,243,241,171,170,170,171,241,191,137,
-138,138,137,191,195, 1, 16,136,136,254,119, 9,204,254,240, 14, 19, 1, 10,202, 1, 39, 4, 88, 91, 5, 7, 86, 91, 4, 4, 88,
- 91, 5, 7, 86, 91, 0, 0, 0, 0, 4, 0, 33, 0,164, 4,176, 5, 52, 0, 15, 0, 25, 0, 33, 0, 41, 0, 0, 19, 52, 55, 54,
- 51, 50, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 37, 35, 18, 5, 36, 19, 39, 6, 39, 6, 1, 38, 39, 6, 7, 22, 23, 54, 37, 38,
- 39, 6, 7, 22, 23, 54, 33,171,171,241,243,171,170,170,171,243,241,171,171, 1, 52, 62, 18, 1, 59, 1, 68, 18, 64, 75,199,178,
- 2, 6, 6, 99,110, 6, 5,103,107,254, 63, 5,100,110, 5, 4,104,107, 2,234,243,171,172,172,171,243,241,171,170,170,171,237,
-254,189, 22, 17, 1, 73, 2,248, 11, 10, 1,214,107, 8, 6,112,105, 7, 7,110,105, 8, 6,112,105, 7, 7, 0, 0, 10, 0, 33,
- 0,164, 4,176, 5, 52, 0, 7, 0, 12, 0, 19, 0, 34, 0, 42, 0, 50, 0, 58, 0, 65, 0, 73, 0, 88, 0, 0, 1, 51, 23, 17,
- 7, 35, 39, 17, 5, 23, 21, 7, 39, 37, 23, 7, 35, 38, 39, 53, 5, 50, 31, 1, 20, 7, 6, 35, 34, 39, 38, 53, 52, 55, 54, 5,
- 33, 23, 21, 7, 33, 39, 53, 37, 33, 23, 21, 7, 33, 39, 53, 7, 51, 22, 23, 21, 7, 39, 53, 37, 51, 23, 21, 7, 39, 53, 37, 51,
- 23, 17, 7, 35, 39, 17, 3, 6, 21, 20, 23, 22, 51, 50, 55, 54, 53, 39, 38, 35, 34, 2, 77, 61, 5, 5, 61, 4, 1,188, 44,194,
- 47,253,165,197, 48, 3,156, 35, 1,182,168, 72, 10,153, 56, 38,141, 79, 29,148, 54,253,227, 1, 9, 5, 5,254,247, 4, 3,124,
- 1, 14, 5, 5,254,242, 5, 55, 2,105, 89, 48,194,254, 54, 2, 46,193, 47, 1,164, 61, 5, 5, 61, 4, 29,101, 19, 54, 97, 25,
- 38,105, 7, 49,114, 31, 5, 52, 5,254,238, 5, 5, 1, 18,122, 48, 2,199, 49,185,198, 50,156, 43, 3,142,176, 75,147, 78, 19,
-131, 50, 72,140, 81, 21,214, 5, 62, 5, 5, 62, 5, 5, 62, 5, 5, 62,219,102, 94, 2, 50,198, 3, 34, 47, 3,198, 49, 3, 93,
- 5,254,238, 5, 5, 1, 18, 1,211, 56, 96, 49, 34, 89, 13, 52,102, 50,121, 0, 0, 2, 0,156, 0, 5, 4, 53, 5,198, 0, 23,
- 0, 43, 0, 0, 1, 32, 1, 22, 21, 16, 5, 6, 43, 1, 34, 39, 53, 36, 55, 54, 17, 16, 37, 38, 39, 53, 52, 55, 23, 21, 4, 17,
- 16, 5, 7, 21, 51, 50, 55, 54, 55, 54, 61, 1, 16, 1, 38, 35, 1, 59, 1,133, 1, 12,104,254,122,176,173, 48, 47, 79, 1, 16,
-123,153,254,183,134, 91,146, 40, 1,194,254,180, 42, 6, 84,156,229, 81, 28,254,171,161,155, 5,197,254,141,170,195,254,126,253,
- 96, 14, 6, 78,174,199, 1, 8, 1,138,220, 79, 16, 3, 10, 14, 61, 3,194,254, 28,254,116,228, 24, 4, 82,150,240, 91, 92, 9,
- 1, 56, 1, 1,100, 0, 0, 0, 0, 2, 0,149, 0, 7, 4, 60, 5,223, 0, 23, 0, 43, 0, 0, 37, 32, 1, 38, 53, 16, 1, 54,
- 59, 1, 50, 23, 21, 4, 7, 6, 17, 16, 5, 22, 23, 21, 20, 7, 39, 53, 36, 17, 16, 37, 55, 53, 35, 34, 7, 6, 7, 6, 29, 1,
- 16, 1, 22, 51, 3,154,254,118,254,238,104, 1,140,178,178, 48, 46, 80,254,236,126,154, 1, 78,136, 94,150, 40,254, 56, 1, 80,
- 44, 6, 86,160,232, 82, 28, 1, 90,164,158, 7, 1,121,173,198, 1,136, 1, 1, 99, 15, 7, 79,177,203,254,245,254,112,225, 79,
- 16, 4, 10, 14, 62, 3,197, 1,237, 1,145,232, 24, 3, 83,150,245, 92, 94, 9,254,194,254,252,102, 0, 0, 0, 0, 2, 0,189,
-255, 96, 4, 20, 5,171, 0, 49, 0, 66, 0, 0, 1, 22, 23, 22, 21, 20, 7, 6, 7, 21, 55, 21, 7, 23, 35, 53, 35, 53, 51, 39,
- 38, 39, 38, 53, 52, 55, 54, 55, 38, 39, 38, 61, 1, 51, 21, 20, 23, 22, 23, 51, 54, 55, 54, 61, 1, 51, 21, 20, 7, 6, 7, 35,
- 6, 7, 6, 21, 20, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38, 3, 79, 38, 34,125,124,102,135,204,208, 1,122,191,191, 2,139,103,
-125,125, 34, 38, 38, 34,125,134, 85, 81,110, 36,109, 81, 85,134,125, 34,250, 36,110, 81, 85, 86, 86,123,120, 86, 86, 85, 81, 4,
- 60, 25, 34,123,179,177,117, 94, 14,197, 2, 94, 1,191,192, 92,197, 13, 95,117,177,179,123, 34, 25, 23, 35,124,177, 8, 10,122,
- 85, 79, 6, 6, 79, 85,122, 10, 8,177,124, 35, 89, 6, 79, 84,123,122, 81, 80, 80, 81,122,123, 84, 79, 0, 0, 0, 2, 0,145,
-255,155, 4, 64, 5, 62, 0, 14, 0, 41, 0, 0, 1, 52, 39, 38, 35, 34, 7, 6, 21, 20, 22, 51, 50, 55, 54, 5, 38, 53, 52, 55,
- 54, 51, 50, 23, 22, 21, 20, 7, 6, 7, 21, 55, 21, 7, 23, 35, 39, 35, 53, 51, 39, 38, 3,173, 96, 95,132,135, 95, 95,190,135,
-132, 95, 96,253,111,139,138,138,197,194,138,138,137,113,147,223,228, 2,135, 2,209,209, 1,153, 3,107,135, 93, 94, 94, 93,135,
-134,178, 89, 89,193,129,195,197,136,137,137,136,197,195,129,104, 15,217, 1,103, 2,209,211,102,217, 14, 0, 0, 0, 2, 0,145,
-255,155, 4, 64, 5, 62, 0, 12, 0, 39, 0, 0, 1, 34, 7, 6, 16, 22, 51, 50, 55, 54, 16, 39, 38, 39, 55, 35, 53, 51, 55, 51,
- 7, 23, 21, 39, 21, 22, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 53, 52, 55, 54, 2,106,135, 95, 95,190,135,132, 95, 96, 96, 95,
-200, 1,209,209, 2,135, 2,228,223,147,113,137,138,138,194,197,138,138,139,113, 2,165, 89, 88,254,242,186, 93, 93, 1, 14, 88,
- 89,134,218,102,211,210, 1,104, 2,218, 15,104,129,195,196,136,137,137,136,196,195,129,106, 0, 0, 2, 0, 21, 0,154, 4,188,
- 5, 48, 0, 13, 0, 39, 0, 0, 1, 38, 39, 38, 7, 6, 20, 23, 22, 51, 22, 55, 54, 38, 19, 6, 43, 1, 34, 39, 38, 53, 39, 52,
- 55, 54, 23, 22, 23, 1, 37, 55, 33, 17, 7, 17, 1, 22, 23, 22, 2,162, 90,123,122, 91, 90, 90, 91,126,127, 92, 89, 8, 16,131,
-182, 1,185,130,129, 2,131,130,178,178, 87, 1, 26,254,222,109, 1,130,112,254,231, 78, 7, 6, 3, 35, 90, 4, 4, 88, 91,254,
- 91, 89, 1, 90, 91,246,254, 80,128,128,129,183, 3,182,131,129, 7, 6, 81, 1, 16, 2,109,254,128,112, 1, 35,254,239, 84,178,
-177, 0, 0, 0, 0, 1, 0, 71, 0, 42, 4,138, 5,174, 0, 31, 0, 0, 1, 53, 50, 55, 54, 52, 39, 38, 35, 34, 7, 6, 29, 1,
- 35, 52, 54, 51, 50, 23, 22, 21, 20, 7, 51, 17, 51, 17, 35, 17, 33, 53, 1,232,115, 80, 81, 80, 80,116,114, 81, 80,142,244,173,
-177,121,122,103,214,143,143,252, 76, 2, 31, 1, 81, 81,228, 81, 80, 80, 81,114, 2,174,246,123,123,174,159,116, 3,143,250,124,
- 1,103,142, 0, 0, 1, 0,174, 0, 42, 4, 35, 5,174, 0, 34, 0, 0, 1, 35, 53, 51, 53, 51, 21, 51, 21, 35, 17, 54, 51, 50,
- 23, 22, 21, 20, 6, 29, 1, 35, 52, 55, 54, 53, 52, 38, 35, 34, 7, 6, 21, 17, 35, 1, 18,100,100,143,168,168,105,144,167,113,
-113,132,143, 67, 66,146,105,103, 73, 73,143, 4,117,143,170,170,143,254,147,103,122,121,177, 85,216,114, 2,125,112,112, 68,116,
-160, 80, 81,115,254, 95, 0, 0, 0, 2, 0, 67, 0,133, 4,142, 5, 83, 0, 13, 0, 55, 0, 0, 1, 34, 7, 6, 21, 20, 22, 50,
- 55, 54, 53, 52, 39, 38, 55, 22, 23, 22, 21, 20, 7, 6, 35, 34, 38, 53, 52, 55, 54, 55, 17, 35, 17, 35, 53, 51, 17, 35, 53, 51,
- 17, 51, 17, 51, 17, 51, 17, 51, 21, 35, 17, 51, 21, 35, 17, 35, 2,104, 46, 32, 32, 64, 92, 32, 33, 32, 32, 16, 50, 40, 62, 62,
- 63, 90, 87,126, 62, 39, 51,237,251,127,127,251,237,124,237,250,125,125,250,237, 1,203, 33, 32, 45, 47, 64, 32, 32, 47, 45, 32,
- 33, 94, 15, 39, 63, 88, 89, 63, 63,126, 89, 88, 63, 40, 14, 1, 70,254,152,125, 2, 82,125,254,152, 1,104,254,152, 1,104,125,
-253,174,125, 1,104, 0, 0, 0, 0, 1, 0, 76, 0,133, 4,133, 5, 83, 0, 60, 0, 0, 1, 21, 35, 53, 35, 53, 51, 53, 38, 39,
- 38, 39, 53, 7, 39, 55, 51, 23, 21, 39, 21, 51, 21, 35, 22, 23, 22, 23, 17, 7, 39, 55, 51, 23, 21, 39, 17, 54, 55, 54, 61, 1,
- 51, 53, 7, 39, 55, 51, 23, 21, 39, 21, 49, 21, 20, 7, 6, 7, 21, 51, 21, 2,167,124,144,144,135,101,123, 1,118, 1,119,125,
-119,119, 2, 2, 1, 85, 65, 84,119, 1,120,124,120,120, 83, 64, 87, 1,119, 1,120,125,118,118,124,100,136,144, 1, 31,154,154,
-124,114, 18,101,123,177, 69,117,115,126,126,115,117, 69, 2,124, 86, 65, 16, 2, 75,116,114,127,127,114,116,253,182, 16, 64, 88,
-123, 1, 73,117,115,126,126,115,117, 73, 4,173,123,100, 19,114,124, 0, 0, 0, 0, 2, 0,215, 0, 42, 3,250, 5,174, 0, 18,
- 0, 29, 0, 0, 19, 33, 32, 23, 22, 21, 20, 7, 6, 35, 33, 17, 33, 23, 21, 7, 33, 39, 17, 23, 17, 33, 50, 55, 54, 55, 52, 39,
- 38, 35,223, 1,129, 1, 29, 95, 30,237, 56, 50,254,189, 2, 86, 8, 8,253, 41, 8,137, 1, 51,123, 68, 15, 8,153, 35, 77, 5,
-174,197, 72, 90,251, 87, 16,253,207, 7,123, 8, 8, 5,115,123,254, 63,122, 25, 75,155, 56, 16, 0, 1, 0, 24, 0, 1, 4,185,
- 5, 33, 0, 32, 0, 0, 37, 16, 2, 35, 34, 2, 23, 35, 38, 53, 52, 54, 51, 32, 19, 22, 23, 54, 55, 18, 33, 50, 22, 21, 20, 7,
- 35, 54, 2, 35, 34, 2, 17, 2, 59,205,122, 92, 41, 77, 97, 66,117,104, 1, 11, 95, 5, 4, 3, 5, 95, 1, 11,105,116, 66, 97,
- 77, 40, 93,121,205, 2, 2, 13, 2,164,254,228,142,116,140,116,164,253, 91, 43, 35, 35, 43, 2,165,164,116,140,116,142, 1, 28,
-253, 92,253,243, 0, 2, 0, 53,255,248, 4,156, 4,196, 0, 8, 0, 46, 0, 0, 1, 34, 6, 20, 22, 50, 54, 52, 38, 39, 54, 55,
- 62, 2, 51, 21, 34, 2, 7, 6, 7, 22, 23, 22, 21, 20, 6, 35, 34, 38, 53, 52, 55, 54, 55, 38, 39, 38, 2, 35, 53, 50, 30, 1,
- 23, 22, 2,104,113,158,158,225,159,157,114,100, 58, 66, 74,124,141, 94,128,100, 16, 18, 35, 33,112,226,161,160,226,113, 32, 36,
- 18, 16, 99,131, 93,141,143, 55, 65, 59, 2,186,170,241,169,169,241,170,123, 4, 50, 54,148,142, 88,255, 0, 89, 15, 13, 24, 34,
-122,172,172,242,242,172,172,122, 34, 25, 12, 15, 89, 1, 0, 88,142,148, 54, 50, 0, 2, 0, 27, 0, 12, 4,182, 4,206, 0, 19,
- 0, 25, 0, 0, 1, 38, 39, 53, 4, 32, 37, 21, 6, 7, 17, 22, 23, 21, 36, 32, 5, 53, 54, 63, 1, 54, 23, 17, 6, 39, 1, 46,
-136,139, 1, 26, 2,106, 1, 23,143,135,135,143,254,233,253,150,254,230,139,136,124,189,189,189,189, 4, 25, 18, 42,120, 73, 73,
-122, 39, 19,252,168, 19, 38,124, 74, 74,120, 44, 17, 9, 21, 21, 3, 70, 21, 21, 0, 4, 0, 52, 0, 50, 4,157, 5, 15, 0, 8,
- 0, 27, 0, 36, 0, 56, 0, 0, 0, 34, 6, 20, 22, 51, 50, 54, 52, 1, 44, 1, 39, 53, 22, 4, 39, 38, 53, 52, 54, 51, 50, 22,
- 16, 7, 14, 1, 1, 50, 54, 52, 38, 34, 6, 20, 22, 19, 12, 1, 23, 21, 38, 36, 23, 22, 21, 20, 6, 35, 34, 38, 53, 52, 55, 62,
- 1, 3,200,156,109,109, 78, 77,109,254,169,255, 0,254,213,125,207, 1,201, 9,108,168,121,122,169, 85, 60,202,254, 22, 77,110,
-110,154,110,109,234, 1, 1, 1, 43,125,207,254, 55, 9,108,168,121,122,169, 85, 60,201, 2,131,124,178,124,124,178,254, 44, 1,
- 38, 40,117, 79, 31, 35,101,156,138,194,194,254,237, 97, 72, 71, 2,138,124,178,124,124,178,124, 2, 81, 2, 39, 40,115, 79, 30,
- 35,101,156,139,194,194,139,137, 96, 73, 72, 0, 0, 2, 0, 61,255,253, 4,148, 5, 33, 0, 10, 0, 60, 0, 0, 0, 62, 1, 39,
- 46, 1, 7, 14, 1, 23, 22, 19, 52, 54, 51, 50, 22, 21, 20, 2, 21, 22, 23, 50, 55, 23, 6, 35, 34, 38, 53, 52, 18, 53, 52, 38,
- 35, 34, 6, 21, 20, 22, 23, 30, 1, 7, 6, 7, 6, 38, 39, 38, 53, 52, 55, 54, 55, 54, 23, 54, 38, 1, 68,132, 57, 25, 26,130,
- 66, 66, 56, 26, 26,205,196,158,151,192,255, 3,118, 63, 87, 58,112, 98, 87,126,252,144,116,112,132, 41, 22, 32, 14, 34, 45,102,
-102,201, 41, 20, 24, 45,103,116,112, 21, 81, 1, 64, 51,131, 65, 65, 58, 26, 26,129, 65, 67, 2,106,141,177,194,155,165,254, 71,
-158,109, 3, 78, 63,105,106, 98,175, 1,166,171,118,145,136,114, 53,127, 54, 87,192, 71,101, 40, 40, 87,105, 48, 49, 53, 52,100,
- 41, 45, 63, 1,195, 0, 0, 0, 0, 2, 0, 47,254,234, 4,162, 4,127, 0, 54, 0, 63, 0, 0, 1, 50, 22, 21, 62, 1, 51, 50,
- 22, 29, 1, 62, 1, 51, 50, 22, 21, 16, 5, 20, 23, 35, 38, 39, 6, 7, 53, 54, 55, 39, 17, 54, 39, 14, 1, 7, 17, 35, 17, 52,
- 38, 7, 38, 6, 7, 17, 35, 17, 52, 39, 51, 22, 23, 62, 1, 1, 17, 54, 19, 52, 38, 7, 34, 6, 1,193, 45, 83, 29,139, 53, 44,
- 57, 34, 92, 48, 43, 70,254,244,103,118, 33, 52,117,124,135, 87, 6, 2, 34, 41, 94, 44,107, 22, 25, 29,127, 13,105,107,100, 83,
- 26, 16,129, 1,242,182, 17, 33, 21, 21,101, 4,127,152, 98, 91,159,128,168,154, 95, 91,177,209,254,199,245, 72,148, 31,124, 78,
- 5, 89, 21, 67,166, 2,142,242, 1, 1,166,153,253, 58, 2,194,246, 82, 1, 1,174,164,253, 72, 3, 66,146,146, 61,134, 71,144,
-253, 96,254, 83,191, 1, 3,148,110, 4,158, 0, 0, 2, 0, 85, 0,181, 4,124, 4,234, 0, 3, 0, 35, 0, 0, 19, 33, 21, 33,
- 1, 33, 53, 51, 38, 53, 52, 54, 51, 50, 22, 21, 20, 7, 33, 21, 33, 53, 35, 54, 55, 54, 53, 52, 38, 34, 6, 21, 20, 23, 22, 23,
- 85, 4, 39,251,217, 1,140,254,116,252, 48,183,132,132,184, 48, 1, 20,254, 90, 1, 13, 12, 61,121,173,121, 61, 11, 13, 1, 58,
-133, 1, 93,134, 90,115,162,227,227,162,115, 90,134,134, 11, 15, 74,106,107,149,149,107,106, 74, 15, 11, 0, 0, 0, 1, 0, 50,
-255,102, 4,159, 4,198, 0, 52, 0, 0, 37, 20, 22, 23, 51, 53, 51, 23, 7, 39, 53, 35, 34, 39, 38, 39, 3, 18, 39, 14, 1, 7,
- 17, 35, 17, 16, 38, 7, 38, 6, 7, 17, 35, 17, 52, 39, 51, 22, 23, 62, 1, 51, 50, 22, 21, 62, 1, 51, 50, 22, 29, 1, 17, 3,
- 89, 69, 59, 60, 2,136,136, 2, 60,135, 45, 30, 5, 14, 2, 33, 38, 89, 42,100, 21, 24, 27,120, 13, 99,102, 95, 79, 24, 15,122,
- 46, 42, 79, 27,132, 50, 41, 55,226, 90,101, 1, 96,141,142, 3, 96, 98, 60, 96, 2,129, 1, 1, 1, 1,176,163,253, 15, 2,237,
- 1, 5, 87, 1, 1,184,175,253, 30, 3,117,154,156, 65,143, 76,153,161,104, 96,169,136,178,164,253,251, 0, 0, 0, 1, 0, 56,
- 0, 6, 4,153, 4,199, 0, 19, 0, 0, 1, 33, 53, 33, 21, 49, 21, 17, 35, 17, 7, 17, 35, 17, 1, 39, 1, 33, 53, 33, 3,213,
-254, 95, 2,100,114,192,114,253,149, 80, 2,107,254, 94, 2, 19, 4, 75,123, 85, 1,253,190, 1,199,209,253,190, 1,198,253, 95,
- 87, 2,161,123, 0, 2, 0, 21, 0, 3, 4,188, 4,207, 0, 39, 0, 47, 0, 0, 1, 50, 18, 55, 54, 51, 50, 22, 21, 20, 6, 35,
- 34, 39, 14, 1, 7, 35, 53, 55, 54, 19, 38, 2, 35, 34, 2, 23, 7, 52, 2, 39, 53, 50, 22, 23, 54, 55, 62, 1, 1, 22, 51, 50,
- 55, 38, 39, 34, 2, 50, 88, 67, 20, 90,159,100,125,117,117,127,100, 36,103,113,138,126,100, 86, 41, 52, 48, 29,132, 5,129,116,
-108,120,132, 33, 38, 37, 34,100, 1, 25, 76,107,132, 7, 5,131,125, 4,206,253, 58, 3,181,155, 85,119,140,109,131,177, 3, 97,
- 1, 3, 1, 52, 13, 2,136,254,115,170, 2,208, 1,151, 5, 79,182,226,165, 72, 75,123,252,215,119,162,129, 15, 0, 2, 0, 89,
- 1, 64, 4,120, 3,174, 0, 32, 0, 65, 0, 0, 19, 54, 51, 50, 23, 22, 55, 54, 51, 50, 23, 22, 55, 54, 51, 50, 23, 7, 38, 7,
- 6, 34, 39, 38, 7, 6, 35, 34, 39, 38, 6, 35, 39, 17, 54, 51, 50, 23, 22, 55, 54, 50, 23, 22, 55, 54, 51, 50, 23, 7, 38, 7,
- 6, 35, 34, 39, 38, 7, 6, 35, 34, 39, 38, 6, 35, 39, 89,231, 82, 32, 9, 35,123, 61, 40, 39, 17, 37,123, 31, 29, 88, 78, 67,
- 69,122, 62, 79, 18, 38,122, 62, 39, 40, 17, 35,243, 4, 38,231, 82, 31, 10, 35,123, 61, 79, 16, 38,123, 30, 29, 89, 78, 67, 69,
-122, 62, 39, 40, 19, 37,123, 61, 40, 39, 17, 35,243, 4, 38, 1,136,192, 28,101,101, 50, 50,101,101, 25,224, 36,201,108, 54, 54,
-107,100, 50, 51,100,201, 69, 1, 80,192, 28,100,100, 51, 51,100,100, 25,224, 36,202,108, 55, 54,107,100, 51, 52,101,202, 69, 0,
- 0, 1, 0, 94, 0, 5, 4,115, 5, 35, 0, 28, 0, 0, 1, 7, 2, 3, 7, 0, 19, 33, 53, 33, 2, 1, 23, 18, 19, 51, 18, 19,
- 55, 0, 3, 33, 7, 33, 18, 1, 39, 2, 3, 2,210,211, 28,243,145, 1, 13, 24,254,253, 1, 3, 25,254,244,145,243, 28,212, 27,
-244,144,254,244, 24, 1, 2, 1,254,253, 26, 1, 12,145,244, 27, 2, 76, 3,254,216,254,231, 2, 1, 51, 1, 16,151, 1, 15, 1,
- 52, 3,254,232,254,216, 1, 40, 1, 24, 3,254,204,254,241,151,254,240,254,205, 2, 1, 25, 1, 40, 0, 0, 0, 0, 5, 0, 67,
- 0, 5, 4,142, 4,128, 0, 15, 0, 32, 0, 36, 0, 84, 0,100, 0, 0, 1, 54, 55, 38, 39, 38, 34, 14, 1, 21, 20, 22, 23, 22,
- 23, 33, 51, 33, 54, 55, 62, 1, 53, 52, 46, 1, 35, 34, 7, 6, 7, 22, 23, 1, 21, 33, 53, 1, 17, 38, 39, 46, 1, 53, 52, 62,
- 1, 51, 50, 23, 53, 52, 54, 55, 54, 55, 53, 35, 53, 51, 53, 51, 21, 51, 21, 35, 21, 22, 23, 30, 1, 29, 1, 54, 51, 50, 30, 1,
- 21, 20, 6, 7, 6, 7, 17, 1, 20, 30, 1, 51, 50, 62, 1, 53, 52, 46, 1, 35, 34, 14, 1, 2, 51, 1, 1, 27, 39, 56,120,112,
- 65, 63, 57, 17, 17, 1, 7,108, 1, 6, 18, 17, 57, 62, 64,113, 60, 59, 57, 39, 26, 1, 1,254,168, 2, 68,253,125, 32, 29, 53,
- 82, 84,151, 80, 61, 58, 28, 24, 10, 13, 83, 83, 80, 83, 83, 12, 10, 24, 28, 59, 60, 80,151, 84, 82, 52, 30, 32,254, 88, 19, 35,
- 17, 19, 34, 19, 19, 34, 19, 17, 35, 19, 2,234, 3, 2, 33, 21, 32, 62,114, 62, 62,112, 30, 11, 6, 6, 11, 30,112, 62, 62,114,
- 62, 32, 21, 33, 2, 3,254, 65,232,232,254,219, 1, 37, 10, 17, 41,150, 82, 83,151, 81, 24, 2, 27, 49, 13, 6, 3, 41, 54, 66,
- 66, 54, 41, 3, 6, 13, 49, 27, 2, 24, 81,151, 83, 82,150, 41, 17, 10,254,219, 3,112, 20, 32, 20, 20, 32, 20, 18, 34, 18, 18,
- 34, 0, 0, 0, 0, 8, 0, 86, 0, 0, 4,123, 4,122, 0, 72, 0, 78, 0, 82, 0,104, 0,124, 0,144, 0,165, 0,187, 0, 0,
- 19, 38, 39, 52, 62, 1, 51, 50, 30, 1, 21, 6, 7, 19, 3, 34, 39, 52, 62, 1, 51, 50, 30, 1, 21, 6, 7, 27, 1, 38, 39, 52,
- 62, 1, 51, 50, 30, 1, 21, 6, 7, 27, 1, 38, 53, 52, 62, 1, 51, 50, 30, 1, 21, 6, 7, 3, 19, 38, 53, 52, 62, 1, 51, 50,
- 30, 1, 21, 6, 35, 3, 17, 33, 17, 5, 53, 7, 33, 39, 29, 2, 33, 53, 1, 23, 3, 54, 55, 62, 1, 53, 52, 46, 1, 35, 34, 14,
- 1, 21, 20, 30, 1, 51, 50, 51, 19, 23, 3, 54, 55, 62, 1, 52, 46, 1, 35, 34, 14, 1, 20, 30, 1, 51, 50, 51, 1, 55, 19, 22,
- 51, 50, 62, 1, 52, 46, 1, 35, 34, 14, 1, 20, 22, 23, 22, 23, 1, 51, 3, 50, 55, 62, 1, 53, 52, 46, 1, 35, 34, 14, 1, 21,
- 20, 22, 23, 22, 23, 19, 55, 19, 22, 51, 50, 62, 1, 53, 52, 46, 1, 35, 34, 14, 1, 21, 20, 22, 23, 22, 23,169, 73, 9, 22, 41,
- 22, 22, 41, 22, 3, 44,183, 40, 63, 14, 22, 41, 23, 22, 40, 23, 2, 35,144, 33, 51, 1, 23, 40, 21, 22, 41, 23, 3, 51, 29,142,
- 36, 23, 41, 21, 23, 41, 22, 8, 66, 71,197, 33, 23, 40, 22, 23, 40, 22, 10, 75,123,253,109, 2,103,138,254,234,140, 2, 44,253,
-180, 59,177, 5, 5, 14, 16, 16, 27, 15, 14, 26, 17, 16, 27, 14, 6, 6,238,104,143, 4, 4, 13, 15, 15, 27, 14, 15, 27, 15, 15,
- 27, 15, 5, 6, 1, 73, 88, 73, 4, 4, 14, 29, 14, 16, 27, 14, 14, 27, 16, 16, 13, 6, 6,254,238, 76, 36, 14, 12, 13, 16, 16,
- 26, 15, 14, 28, 15, 15, 14, 11, 12,227, 80,127, 8, 9, 14, 27, 15, 16, 26, 14, 16, 26, 15, 15, 13, 3, 3, 3, 12, 2, 72, 22,
- 39, 21, 21, 39, 22, 49, 16,254,124, 2, 26, 71, 21, 39, 21, 21, 39, 21, 35, 26,253,196, 2,115, 23, 37, 22, 39, 20, 20, 39, 22,
- 41, 19,253,139, 2, 55, 36, 32, 21, 39, 21, 21, 39, 21, 65, 12,253,236, 1,138, 27, 32, 22, 39, 21, 21, 39, 22, 72,254,158,254,
- 84, 1,172,221,172, 57, 46,161, 37,126,126, 1, 4, 32, 1,147, 2, 3, 8, 27, 14, 16, 26, 16, 16, 26, 16, 14, 27, 15,254,114,
- 24, 2, 70, 2, 2, 8, 27, 29, 27, 15, 15, 27, 29, 27, 15,253,195, 20, 2, 41, 1, 15, 27, 29, 28, 14, 14, 28, 29, 27, 8, 3,
- 2,253,188, 2,126, 8, 8, 26, 16, 14, 27, 15, 15, 27, 14, 16, 26, 8, 6, 2,253,151, 32, 1,119, 2, 16, 26, 16, 14, 28, 14,
- 14, 28, 14, 16, 26, 8, 2, 1, 0, 5, 0,112, 0, 0, 4, 97, 5, 29, 0, 29, 0, 33, 0, 39, 0, 45, 0, 50, 0, 0, 1, 51,
- 21, 51, 53, 51, 21, 35, 21, 7, 17, 23, 21, 51, 21, 33, 53, 51, 53, 55, 51, 17, 35, 39, 53, 35, 53, 51, 21, 51, 1, 53, 33, 21,
- 1, 55, 53, 33, 21, 23, 17, 7, 21, 33, 53, 39, 53, 17, 55, 33, 17, 1,237,242,150,236,101, 80, 80,101,252, 15,101, 81, 1, 1,
- 81,101,232,149, 2, 68,252,112, 2,225, 72,253, 62, 72, 64, 2,178, 65, 1,253,206, 5, 29,136,136,142,126,131,254, 0,130,125,
-143,143,125,133, 1,252,132,126,142,136,251,156, 48, 48, 3,109,114, 84, 84,114,253,199,101,112,112,101, 45, 1,221, 2,254, 33,
- 0, 4, 0,222,255,248, 3,243, 4,197, 0, 55, 0, 67, 0, 81, 0, 94, 0, 0, 1, 38, 53, 52, 55, 54, 55, 38, 39, 38, 39, 53,
- 54, 55, 54, 55, 54, 55, 38, 39, 38, 53, 52, 62, 1, 51, 50, 30, 1, 21, 20, 7, 6, 7, 22, 23, 22, 23, 22, 23, 21, 6, 7, 6,
- 7, 22, 23, 22, 21, 20, 7, 6, 7, 19, 33, 27, 1, 53, 51, 53, 35, 53, 35, 21, 35, 21, 51, 21, 19, 54, 53, 52, 46, 1, 34, 14,
- 1, 21, 20, 23, 3, 33, 0, 20, 30, 1, 50, 62, 1, 52, 46, 1, 35, 34, 6, 1,194, 25, 26, 6, 9, 49, 29, 34, 1, 1, 34, 35,
- 64, 23, 24, 21, 14, 18, 37, 64, 35, 33, 64, 37, 17, 13, 22, 23, 24, 63, 36, 35, 1, 1, 35, 30, 48, 9, 7, 25, 26, 1, 2,231,
-252,237,222,220,141,141, 97,141,141,133, 49, 37, 63, 69, 63, 37, 52,182, 2, 21,254,153, 24, 44, 47, 45, 23, 24, 45, 22, 24, 43,
- 1, 68, 44, 47, 49, 43, 14, 12, 31, 52, 59, 65, 3, 66, 60, 62, 34, 11, 9, 14, 24, 32, 34, 35, 62, 34, 34, 62, 35, 34, 32, 24,
- 15, 8, 11, 34, 62, 60, 66, 3, 65, 59, 51, 32, 12, 14, 43, 49, 48, 44, 3, 3,254,188, 1, 75, 1, 18,102, 89,101,101, 89,102,
-254,238, 37, 60, 35, 64, 34, 34, 64, 35, 52, 45,254,233, 4, 47, 48, 43, 23, 23, 43, 48, 43, 23, 23, 0, 0, 0, 0, 4, 0,144,
- 0, 6, 4, 65, 4,199, 0, 30, 0, 42, 0, 51, 0, 86, 0, 0, 1, 54, 38, 55, 22, 7, 0, 19, 33, 38, 53, 52, 36, 39, 6, 7,
- 6, 7, 39, 7, 38, 39, 54, 39, 54, 55, 46, 1, 55, 22, 23, 7, 54, 59, 1, 6, 21, 20, 43, 1, 34, 39, 53, 3, 23, 20, 7, 35,
- 34, 61, 1, 54, 19, 38, 39, 6, 22, 7, 6, 7, 22, 7, 22, 23, 55, 7, 54, 55, 54, 55, 22, 4, 23, 20, 23, 37, 2, 1, 50, 53,
- 35, 54, 38, 39, 6, 22, 7, 2, 7, 11, 42, 73,125, 32, 1,142, 37,252,235, 10, 1, 71, 7, 73, 46, 37,128, 8, 35,113, 26, 74,
- 12, 39, 59, 17, 10, 31, 84, 44,132, 31, 78, 4, 35, 56, 17, 6, 3, 5, 5, 58, 8, 23, 33,176, 29, 62, 35, 49, 20, 48, 36, 17,
- 73, 20, 84, 78, 28,110, 23, 86, 66, 44,254,165, 2, 9, 2,199, 31,254,110, 1, 3, 32, 17, 63, 37, 35, 15, 4, 3, 20, 78, 97,
-106,105,254,249,253, 27, 45, 47,130,246, 52, 94, 2,116, 14, 18, 25, 38, 65,234,171, 89, 99, 26, 27,103, 21, 98,225, 51, 37, 29,
- 39, 24, 12,254,187, 28, 43, 12, 25, 18, 40, 2, 40, 78, 31, 86, 56, 27, 79, 81,196,191, 62, 19, 58, 60, 8,117, 3,141,121,250,
-103, 42, 42, 1, 2,156, 1, 53, 1, 10,107, 60, 88, 62, 27, 0, 0, 4, 0,156, 0, 6, 4, 53, 4,104, 0, 13, 0, 29, 0, 80,
- 0, 91, 0, 0, 0, 20, 30, 1, 51, 50, 62, 1, 52, 46, 1, 35, 34, 6, 55, 20, 30, 1, 51, 50, 62, 1, 53, 52, 46, 1, 35, 34,
- 14, 1, 1, 21, 33, 53, 7, 38, 53, 52, 54, 55, 54, 55, 38, 39, 38, 53, 52, 54, 55, 54, 55, 38, 39, 38, 52, 62, 1, 51, 50, 30,
- 1, 20, 7, 6, 7, 22, 23, 30, 1, 21, 20, 7, 6, 7, 22, 23, 30, 1, 21, 20, 7, 39, 38, 39, 46, 1, 35, 34, 6, 7, 6, 7,
- 1,200, 43, 76, 41, 43, 76, 42, 43, 77, 41, 40, 76, 72, 12, 21, 11, 12, 21, 12, 12, 22, 11, 10, 22, 12, 1,196,252,227, 62, 9,
-124,110, 28, 30, 22, 16, 32, 64, 58, 20, 22, 20, 11, 17, 33, 58, 31, 30, 59, 33, 15, 13, 19, 20, 23, 56, 65, 31, 17, 22, 28, 29,
-110,125, 9, 69, 3, 48, 52,184, 96, 97,183, 51, 48, 3, 2,216, 84, 76, 42, 42, 76, 84, 77, 40, 40,202, 12, 20, 11, 11, 20, 12,
- 11, 22, 12, 12, 22,252, 13, 1, 1, 1, 43, 43,120,220, 58, 16, 12, 21, 29, 56, 62, 62,113, 31, 11, 7, 15, 21, 30, 63, 57, 32,
- 32, 57, 63, 30, 21, 15, 7, 11, 31,113, 62, 62, 56, 29, 21, 12, 16, 58,220,120, 43, 43, 99, 94, 85, 90, 98, 98, 90, 85, 94, 0,
- 0, 8, 0,106,255,252, 4,103, 4, 37, 0, 15, 0, 32, 0, 36, 0, 84, 0,100, 0,104, 0,121, 0,138, 0, 0, 1, 52, 55, 38,
- 39, 38, 34, 14, 1, 21, 20, 22, 23, 22, 23, 59, 2, 54, 55, 62, 1, 53, 52, 46, 1, 35, 34, 7, 6, 7, 22, 23, 1, 21, 33, 53,
- 1, 17, 38, 39, 46, 1, 53, 52, 62, 1, 51, 50, 23, 53, 52, 54, 55, 54, 55, 53, 35, 53, 51, 53, 51, 21, 51, 21, 35, 21, 22, 23,
- 30, 1, 29, 1, 54, 51, 50, 30, 1, 21, 20, 6, 7, 6, 7, 17, 1, 20, 30, 1, 51, 50, 62, 1, 53, 52, 46, 1, 35, 34, 14, 1,
- 1, 21, 33, 53, 55, 35, 38, 39, 46, 1, 53, 52, 62, 1, 51, 50, 23, 22, 23, 6, 21, 51, 52, 39, 54, 55, 54, 51, 50, 30, 1, 21,
- 20, 6, 7, 6, 7, 35, 2, 55, 2, 25, 36, 53,111,104, 60, 58, 53, 16, 16,244,100,243, 17, 16, 52, 58, 59,105, 56, 54, 53, 37,
- 24, 1, 1,254,193, 2, 26,253,171, 29, 27, 49, 77, 78,141, 74, 57, 54, 25, 23, 9, 12, 77, 77, 74, 77, 77, 12, 9, 22, 26, 54,
- 56, 74,141, 78, 77, 48, 28, 29,254,118, 18, 32, 16, 18, 32, 17, 17, 32, 18, 16, 32, 18, 1, 43,254, 48,146,199, 13, 12, 43, 47,
- 48, 85, 45, 44, 44, 29, 21, 2,172, 2, 21, 29, 43, 44, 46, 84, 49, 47, 44, 12, 13,198, 2,172, 2, 3, 30, 20, 29, 57,106, 57,
- 58,104, 28, 10, 6, 6, 10, 28,104, 58, 57,106, 57, 29, 20, 30, 3, 2,254, 97,215,215,254,240, 1, 16, 9, 16, 38,140, 76, 77,
-140, 75, 22, 1, 26, 45, 13, 5, 2, 39, 50, 61, 61, 50, 39, 2, 5, 13, 45, 26, 1, 22, 75,140, 77, 76,140, 38, 16, 9,254,240,
- 3, 49, 18, 31, 17, 17, 31, 18, 17, 32, 16, 16, 32,253,169,142,142,147, 5, 8, 24, 86, 47, 47, 88, 47, 23, 17, 25, 2, 2, 2,
- 2, 25, 17, 23, 47, 88, 47, 47, 86, 24, 8, 5, 0, 3, 0, 54, 0, 4, 4,155, 4,197, 0, 72, 0, 76, 0, 80, 0, 0, 19, 38,
- 39, 52, 62, 1, 51, 50, 30, 1, 21, 6, 7, 19, 3, 34, 39, 52, 62, 1, 51, 50, 30, 1, 21, 6, 7, 27, 1, 38, 39, 52, 62, 1,
- 51, 50, 30, 1, 21, 6, 7, 27, 1, 38, 53, 52, 62, 1, 51, 50, 30, 1, 21, 6, 7, 3, 19, 38, 53, 52, 62, 1, 51, 50, 30, 1,
- 21, 6, 35, 3, 17, 33, 17, 5, 53, 33, 21, 5, 53, 33, 21,141, 77, 10, 24, 44, 23, 23, 44, 23, 4, 46,194, 42, 67, 15, 23, 44,
- 25, 23, 43, 23, 2, 37,154, 35, 55, 1, 24, 43, 22, 23, 44, 24, 2, 55, 31,150, 37, 23, 44, 22, 25, 43, 24, 9, 70, 75,209, 35,
- 24, 43, 23, 24, 43, 24, 11, 80,130,253, 68, 2,141,253,178, 2, 78,253,178, 3, 65, 1, 77, 23, 42, 22, 22, 42, 23, 52, 17,254,
-100, 2, 59, 75, 23, 41, 22, 22, 41, 23, 36, 28,253,160, 2,155, 24, 39, 23, 42, 21, 21, 42, 23, 44, 19,253,100, 2, 89, 38, 34,
- 22, 42, 22, 22, 42, 22, 69, 13,253,204, 1,163, 27, 35, 23, 42, 22, 22, 42, 23, 76,254,136,254, 58, 1,198,165, 63, 63,242, 64,
- 64, 0, 0, 0, 0, 4, 0,148, 0, 5, 4, 61, 4,197, 0, 3, 0, 7, 0, 37, 0, 41, 0, 0, 1, 53, 33, 21, 1, 53, 33, 21,
- 19, 51, 21, 51, 53, 51, 21, 35, 21, 7, 17, 23, 21, 51, 21, 33, 53, 51, 53, 55, 51, 17, 35, 39, 53, 35, 53, 51, 21, 51, 1, 53,
- 33, 21, 3,109,253,248, 2, 68,253,128,205,225,139,219, 94, 74, 74, 94,252, 87, 94, 75, 1, 1, 75, 94,215,139, 2, 26,252,178,
- 3,178, 76, 76,252,230, 90, 90, 4, 44,125,125,131,117,122,254, 37,121,117,132,132,117,123, 1,216,123,117,131,125,251,235, 45,
- 45, 0, 0, 0, 0, 2, 0,226, 0, 6, 3,239, 4,199, 0, 52, 0, 64, 0, 0, 1, 52, 55, 54, 55, 38, 39, 38, 39, 53, 54, 55,
- 54, 55, 54, 55, 38, 39, 38, 53, 52, 62, 1, 51, 50, 30, 1, 21, 20, 7, 6, 7, 22, 23, 22, 23, 22, 23, 21, 6, 7, 6, 7, 22,
- 23, 22, 21, 20, 7, 19, 33, 19, 38, 55, 53, 51, 53, 35, 53, 35, 21, 35, 21, 51, 21, 1,170, 26, 7, 9, 49, 29, 33, 1, 1, 33,
- 35, 63, 23, 24, 21, 14, 18, 37, 63, 35, 33, 63, 37, 17, 13, 21, 22, 24, 62, 36, 34, 1, 1, 34, 30, 47, 9, 6, 26, 26,225,252,
-245,220, 21,238,140,140, 95,140,140, 1,168, 49, 43, 14, 12, 30, 52, 58, 65, 3, 65, 60, 61, 34, 11, 8, 15, 23, 32, 33, 35, 61,
- 34, 34, 61, 35, 33, 32, 23, 16, 7, 11, 34, 61, 60, 65, 3, 65, 58, 51, 31, 12, 14, 43, 49, 47, 43,254,185, 1, 72, 43,228,101,
- 88,101,101, 88,101, 0, 0, 0, 0, 4, 0,103, 0, 2, 4,106, 5, 32, 0, 34, 0, 46, 0, 55, 0, 61, 0, 0, 1, 54, 38, 55,
- 30, 1, 7, 51, 20, 35, 0, 19, 33, 38, 53, 52, 0, 39, 6, 39, 6, 39, 55, 7, 38, 39, 54, 39, 54, 55, 54, 38, 55, 22, 23, 7,
- 21, 22, 59, 1, 50, 53, 52, 55, 35, 34, 7, 3, 21, 20, 59, 1, 54, 53, 39, 34, 1, 23, 4, 19, 51, 2, 1,248, 54, 71, 74, 75,
- 21, 38, 4, 2, 1,213, 39,252,175, 11, 1,110, 12, 61,108, 82, 93, 42, 94,100, 23, 87, 12, 42, 87, 9, 62, 33, 91, 49,148, 3,
- 7, 18, 61, 37, 5, 84, 32,101, 25, 9, 62, 6, 54, 1,144, 46, 1, 72, 5, 67, 39, 4, 76, 34,139, 39, 71,128, 13, 1,254,215,
-252,225, 49, 50,140, 1, 0,104,152, 6,132, 4, 91, 70, 25, 72,229,184, 96, 91, 36, 37,111, 23,107,223, 14, 26, 43, 29, 42, 56,
-254,100, 21, 25, 13, 46, 30, 1,248, 78,235,253, 99, 2,232, 0, 0, 1, 0,118, 0, 5, 4, 91, 4,198, 0, 46, 0, 0, 55, 38,
- 53, 52, 54, 55, 54, 55, 38, 39, 38, 53, 52, 54, 55, 54, 55, 38, 39, 38, 52, 62, 1, 51, 50, 30, 1, 20, 7, 6, 7, 22, 23, 30,
- 1, 21, 20, 7, 6, 7, 22, 23, 30, 1, 21, 20, 7,127, 9,134,119, 31, 32, 24, 17, 34, 69, 62, 22, 24, 21, 13, 18, 35, 64, 33,
- 33, 63, 37, 18, 13, 21, 22, 25, 61, 69, 33, 18, 24, 31, 31,119,135, 10, 6, 46, 47,130,238, 64, 17, 12, 24, 30, 61, 67, 68,122,
- 34, 12, 8, 15, 24, 31, 69, 62, 34, 34, 62, 69, 31, 24, 16, 7, 12, 34,122, 68, 67, 61, 30, 24, 13, 16, 64,238,130, 47, 46, 0,
- 0, 1, 0,128, 0,133, 4, 81, 5, 79, 0, 35, 0, 0, 1, 22, 23, 22, 23, 22, 29, 1, 20, 7, 6, 35, 34, 39, 35, 21, 20, 23,
- 35, 53, 54, 53, 39, 35, 7, 6, 35, 34, 47, 1, 53, 52, 55, 0, 63, 1, 2,107, 77,177,195, 5, 32,133, 44, 52,127, 78, 34, 68,
-177, 70, 2, 32, 38, 70,105,153, 63, 7,154, 1, 2, 74, 2, 5, 79,137,227,228, 47, 70, 66, 33,137, 79, 18,182, 10,233,123, 5,
-124,234, 3, 73,109,172, 60, 38,150,167, 1, 61,136, 2, 0, 0, 0, 2, 0, 14, 0,133, 4,195, 5, 77, 0, 24, 0, 50, 0, 0,
- 1, 50, 23, 22, 21, 50, 55, 54, 51, 50, 23, 22, 29, 1, 20, 7, 0, 7, 35, 1, 38, 53, 52, 55, 54, 3, 21, 20, 23, 1, 51, 1,
- 54, 61, 1, 52, 39, 38, 35, 34, 3, 6, 21, 35, 52, 39, 38, 35, 34, 7, 6, 1, 61,179, 96, 23, 5, 10, 93,193,172,100, 31,182,
-254,142, 50, 5,254, 13, 99,164, 66,188,171, 1,134, 3, 1,216, 85,155, 59, 47,217, 71, 8, 5, 59, 83,156,143, 88, 30, 5, 77,
-226, 66, 20, 58,254,174, 64, 66, 10,213,189,254, 59, 55, 2,104,146,150,173,102, 37,254,208, 13,180,187,254, 35, 2, 62,133,124,
- 31,142, 92, 23,254,144, 31, 21, 64,172,184,146, 57, 0, 0, 0, 0, 2, 0,145, 0,133, 4, 64, 5, 79, 0, 8, 0, 13, 0, 0,
- 9, 1, 21, 0, 7, 38, 1, 38, 53, 9, 4, 2,105, 1,215,254, 67, 26, 12,254,110, 58, 1,213,254, 94, 1,165, 1,166,254,168,
- 5, 79,253,158, 5,253,185, 28, 9, 2, 14, 71, 10, 2, 32,253,222,253,219, 2, 37, 1,189, 0, 0, 1, 0, 50, 0,133, 4,159,
- 5, 79, 0, 55, 0, 0, 1, 50, 23, 22, 23, 20, 15, 1, 51, 54, 59, 1, 50, 23, 22, 21, 20, 7, 6, 7, 34, 39, 35, 21, 16, 23,
- 21, 35, 39, 54, 17, 53, 35, 6, 35, 34, 39, 38, 53, 52, 55, 54, 59, 1, 50, 23, 51, 53, 38, 39, 38, 61, 1, 52, 55, 54, 2,106,
-176, 83, 10, 3, 99, 49, 2, 61, 69, 16,195, 79, 19,172, 32, 59,199, 83, 2, 67,171, 5, 70, 2, 82,202,157, 84, 20,202, 54, 42,
- 8, 70, 64, 3, 69, 24, 49,176, 59, 5, 79,186, 43, 46, 96,132, 49, 23,166, 54, 50,168, 86, 10, 5,226, 8,254,230, 89, 5, 5,
-105, 1, 18, 2,228,166, 56, 47,192, 68, 10, 23, 2, 59, 56, 91, 66, 12,165, 86, 15, 0, 0, 0, 0, 3, 0,127, 0,134, 4, 82,
- 5, 80, 0, 34, 0, 60, 0, 66, 0, 0, 1, 22, 1, 22, 29, 1, 20, 7, 6, 43, 1, 34, 39, 35, 21, 20, 23, 35, 53, 54, 53, 35,
- 7, 6, 43, 1, 34, 39, 38, 53, 55, 53, 52, 55, 18, 55, 6, 1, 6, 21, 22, 23, 22, 59, 1, 50, 55, 51, 50, 23, 22, 59, 1, 50,
- 55, 54, 61, 1, 52, 39, 38, 3, 51, 38, 39, 34, 7, 2,105,104, 1, 59, 70,148, 28, 40, 18,119, 81, 34, 68,177, 71, 34, 46, 70,
- 87, 18,131, 67, 20, 2,169,239, 78,102,254,234, 66, 8,121, 18, 34, 13, 98, 79,150, 6, 26, 68, 85, 15,113, 53, 8,166,189,117,
- 52, 11, 12, 5, 13, 5, 80,185,254,136,114,111, 2,172, 64, 13,179, 11,230,127, 5,124,239, 83, 96,143, 54, 52, 11, 2,164,175,
- 1, 39, 60,164,254,183,107,110,153, 44, 7,179, 58,121,137, 33, 25, 25,145,170,236,252, 64, 19, 74, 68, 0, 0, 0, 1, 0, 11,
- 0,133, 4,198, 5, 79, 0, 23, 0, 0, 1, 50, 23, 22, 23, 51, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 1, 35, 1, 38, 53, 52,
- 55, 54, 1, 59,167, 95, 35, 2, 2, 29, 75, 89,111,172,104, 26,171,254, 77, 5,254, 50,138,164, 69, 5, 79,193, 76, 41,133, 88,
- 89,184, 68, 60,206,186,253,246, 2, 54,169,179,173,102, 37, 0, 0, 1, 0,145, 0,133, 4, 64, 5, 79, 0, 8, 0, 0, 9, 1,
- 22, 21, 1, 38, 1, 52, 55, 2,105, 1,158, 57,254, 41, 10,254, 50, 92, 5, 79,253,231, 69, 11,253,159, 6, 2, 91, 11,114, 0,
- 0, 3, 0, 49, 0,134, 4,160, 5, 86, 0, 50, 0, 96, 0,103, 0, 0, 1, 50, 23, 22, 21, 20, 15, 1, 54, 59, 1, 50, 23, 22,
- 21, 20, 7, 6, 7, 34, 39, 35, 21, 16, 23, 21, 35, 39, 54, 17, 53, 35, 6, 35, 34, 39, 38, 53, 52, 55, 54, 59, 1, 50, 23, 38,
- 39, 53, 52, 55, 54, 3, 20, 31, 1, 21, 38, 43, 1, 34, 15, 1, 20, 23, 22, 51, 50, 55, 54, 55, 51, 22, 23, 22, 51, 50, 55, 54,
- 61, 1, 52, 47, 1, 35, 34, 7, 53, 54, 55, 54, 53, 52, 39, 38, 35, 34, 7, 19, 20, 7, 51, 53, 38, 53, 2,109,166, 86, 21, 94,
- 18, 25, 50, 34,204, 76, 13,173, 28, 60,198, 84, 2, 67,172, 5, 70, 2, 82,203,157, 85, 21,203, 55, 42, 32, 50, 25, 81, 23,177,
- 59,198,139, 10, 88, 97, 7,200, 50, 6,112, 50, 64,173, 94, 13, 18, 6, 30, 68, 74,130,138, 70, 10,208, 44, 5, 97, 88,106, 26,
- 21,153, 45, 33,152, 68,216, 23, 50, 23, 5, 86,169, 57, 47,109,136, 19, 5,177, 46, 48,173, 82, 10, 6,227, 7,254,228, 90, 4,
- 4,106, 1, 19, 3,230,167, 57, 47,194, 67, 10, 5, 92,145, 32,167, 86, 15,254,239,128,167, 10, 3, 8,175, 55,121, 77, 31,243,
- 22, 53, 98,111,109,156, 38, 35, 5,183, 39, 3, 8, 3,112, 91, 63, 36,150, 71, 14,165,252,141, 23, 79, 3, 81, 18, 0, 0, 0,
- 0, 4, 0, 46, 0, 7, 4,163, 4,198, 0, 14, 0, 29, 0, 44, 0, 72, 0, 0, 1, 51, 20, 6, 7, 20, 22, 23, 35, 38, 39, 38,
- 39, 38, 54, 37, 51, 20, 6, 7, 20, 22, 23, 35, 38, 39, 38, 39, 38, 54, 5, 51, 20, 6, 7, 20, 22, 23, 35, 38, 39, 38, 39, 38,
- 54, 19, 30, 1, 21, 20, 6, 4, 32, 36, 38, 53, 52, 54, 55, 51, 6, 7, 6, 20, 30, 1, 32, 62, 1, 52, 39, 38, 39, 1,126, 11,
-118, 1,165, 6, 11, 23,133, 39, 12, 4,138, 1, 5, 11,119, 2,167, 5, 11, 23,132, 40, 12, 3,138, 1, 24, 11,119, 1,166, 5,
- 10, 23,133, 39, 13, 3,138, 36,136,155,150,254,239,254,217,254,239,150,154,136, 3,107, 61, 70,136,245, 1, 13,246,135, 70, 62,
-106, 4, 71, 51,126, 80,106, 98,164,135, 94, 42, 73,101,114,192, 78,192,123,160,152,249,204,145, 63,113,154,174, 74, 65,159,101,
-131,125,206,169,118, 54, 92,126,144,254,120, 40,143, 79, 78,143, 80, 80,143, 78, 79,143, 40, 33, 56, 63,136,124, 69, 69,124,136,
- 63, 56, 33, 0, 0, 1, 1,114, 0, 33, 3, 95, 5,170, 0, 17, 0, 0, 1, 51, 23, 17, 20, 15, 1, 35, 34, 47, 1, 52, 63, 1,
- 50, 23, 51, 17, 3, 21, 68, 6,185, 45, 33,200, 26, 4,199, 31, 93, 85, 4, 5,170, 7,251, 70,154, 43, 3,125, 29,123, 23, 4,
- 60, 4,142, 0, 0, 1, 0,162, 0, 33, 4, 47, 5,170, 0, 29, 0, 0, 1, 51, 23, 21, 22, 23, 22, 21, 20, 7, 35, 39, 54, 53,
- 52, 39, 38, 39, 17, 20, 7, 35, 34, 53, 52, 55, 51, 50, 23, 17, 2, 54, 82, 8, 25,163,227,115, 4, 28, 57,215, 87, 23,212, 53,
-229,200, 22, 91, 83, 5,170, 6, 37, 51, 59, 66,131,137, 91, 30, 47, 79, 66, 67, 39, 25,252, 18,144, 42,158,124, 21, 60, 4,144,
- 0, 1, 0,106,255, 95, 4,103, 5,165, 0, 30, 0, 0, 1, 5, 23, 17, 20, 7, 35, 34, 61, 1, 52, 63, 1, 50, 23, 17, 37, 17,
- 20, 15, 1, 35, 34, 61, 1, 52, 63, 1, 50, 23, 17, 1,217, 2,140, 2,181, 51,201,167, 37, 81, 77,253,251,142, 63, 25,203,160,
- 41, 84, 75, 5,165,191, 4,251, 55,146, 40,155, 4,119, 20, 3, 55, 3,209,159,252, 23,129, 53, 7,146, 7,115, 32, 3, 63, 4,
-141, 0, 0, 0, 0, 2, 0, 17, 0,124, 4,192, 5, 79, 0, 24, 0, 28, 0, 0, 1, 23, 17, 20, 7, 34, 39, 52, 55, 50, 23, 51,
- 17, 33, 17, 6, 7, 35, 34, 53, 52, 55, 50, 23, 17, 23, 21, 33, 53, 4,189, 3,214,192, 15,192, 89, 65, 3,253, 62, 7,199, 3,
-212,194, 82, 72, 73, 2,194, 5, 79, 3,251,243,176, 17,135,113, 12, 49, 2, 32,253,211,171, 29,145,103, 13, 52, 4, 2,170,128,
-128, 0, 0, 0, 0, 2, 1, 68, 0, 37, 3,141, 5,174, 0, 12, 0, 19, 0, 0, 1, 51, 23, 17, 51, 54, 51, 22, 23, 2, 5, 39,
- 17, 19, 17, 36, 17, 54, 39, 34, 1, 73, 43, 4, 3,161,136,215, 18, 27,253,212, 2, 52, 1,139, 12,152,112, 5,174, 5,252,117,
-224, 3,242,254,111, 83, 2, 5,130,252, 16,254,177, 94, 1, 31,163, 8, 0, 0, 0, 2, 1,177, 0, 42, 3, 32, 5,175, 0, 13,
- 0, 19, 0, 0, 1, 51, 23, 17, 37, 23, 17, 7, 35, 39, 17, 5, 35, 17, 19, 17, 51, 37, 17, 35, 1,182, 39, 6, 1, 59, 2, 4,
- 38, 5,254,194, 2, 50, 1, 1, 13, 2, 5,175, 5,254, 73,152, 2,251,166, 5, 5, 1,202,151, 4, 72,253,188,254,147,135, 1,
-106, 0, 0, 0, 0, 2, 1, 55, 0, 42, 3,154, 5,175, 0, 40, 0, 44, 0, 0, 1, 51, 23, 17, 55, 23, 21, 6, 7, 17, 55, 21,
- 6, 7, 17, 7, 35, 39, 17, 5, 17, 7, 35, 39, 17, 7, 53, 52, 55, 17, 35, 7, 53, 55, 17, 55, 51, 23, 21, 37, 17, 1, 17, 37,
- 17, 2,246, 44, 5,112, 3, 3,112,115, 1,114, 5, 44, 4,254,240, 5, 39, 5,122,122, 2,120,122, 5, 39, 5, 1, 16,254,240,
- 1, 16, 5,175, 5,254,225, 57, 2,133, 7, 56,254,160, 52,128, 4, 63,254,232, 4, 4, 1, 2,132,254,185, 4, 4, 1, 47, 57,
-134, 6, 57, 1,101, 53,131, 62, 1, 15, 3, 3,248,127, 1, 58,253,185,254,156,131, 1, 95, 0, 0, 1, 0, 96,255,254, 4,113,
- 5, 28, 0, 69, 0, 0, 1, 35, 38, 7, 35, 34, 39, 53, 54, 53, 52, 39, 53, 54, 55, 51, 22, 59, 1, 53, 52, 39, 53, 54, 55, 51,
- 22, 50, 55, 51, 22, 23, 21, 6, 29, 1, 51, 50, 55, 51, 22, 23, 21, 6, 21, 20, 23, 21, 6, 43, 1, 38, 7, 35, 17, 20, 23, 21,
- 6, 7, 35, 38, 34, 7, 35, 38, 39, 53, 54, 53, 2, 42,148,159, 71, 49, 21, 9, 86, 86, 1, 28, 50, 73,158,147,115, 3, 25, 51,
- 39,123, 39, 51, 25, 3,115,143,158, 73, 49, 28, 2, 86, 86, 9, 22, 48, 71,160,143,115, 3, 25, 51, 39,123, 39, 51, 25, 3,115,
- 2,173, 1, 80, 31, 51, 43, 49, 61, 39, 51, 25, 3,115,153,159, 72, 49, 29, 2, 87, 87, 2, 29, 49, 72,159,153,115, 3, 25, 51,
- 39, 61, 49, 43, 51, 31, 80, 1,254,136,159, 72, 50, 28, 2, 87, 87, 2, 28, 50, 72,159, 0, 0, 0, 6, 0, 46,255,240, 4,163,
- 5, 15, 0, 6, 0, 13, 0, 20, 0, 27, 0, 59, 0, 71, 0, 0, 19, 6, 7, 22, 23, 55, 53, 5, 21, 23, 54, 55, 38, 39, 1, 38,
- 39, 6, 7, 23, 51, 3, 35, 7, 22, 23, 54, 55, 3, 51, 55, 22, 23, 6, 7, 39, 35, 17, 23, 6, 7, 38, 39, 55, 17, 35, 7, 38,
- 39, 54, 55, 23, 51, 53, 39, 54, 55, 22, 23, 15, 1, 21, 35, 21, 51, 17, 51, 17, 51, 53, 35, 53,206, 19, 42, 41, 20, 83, 2,144,
- 82, 20, 41, 41, 20,254,181, 38, 42, 38, 39, 59, 40, 1, 40, 58, 39, 38, 41, 39, 6,200,182, 8,107,107, 8,182,200,110, 92, 92,
- 91, 91,110,200,182, 9,107,107, 9,182,200,110, 91, 91, 92, 92,110, 96,102,102, 47,101,101, 3, 46, 40, 40, 38, 40, 59, 40, 1,
- 40, 58, 40, 38, 40, 40, 1, 64, 20, 41, 41, 20, 83,252,200, 83, 20, 42, 42, 20, 2,152,110, 92, 93, 91, 91,111,254,132,182, 10,
-106,106, 10,182, 1,124,111, 91, 92, 92, 92,110,187,183, 10,106,106, 10,183,101,139, 40,254,176, 1, 80, 40,139, 0, 12, 0, 47,
-255,251, 4,162, 4, 78, 0, 20, 0, 35, 0, 46, 0, 54, 0, 67, 0, 77, 0,104, 0,119, 0,140, 0,151, 0,166, 0,175, 0, 0,
- 1, 33, 50, 31, 1, 55, 51, 50, 21, 7, 33, 39, 53, 54, 55, 53, 38, 39, 38, 61, 1, 7, 51, 50, 23, 22, 21, 6, 7, 35, 38, 39,
- 53, 54, 55, 54, 23, 21, 19, 7, 21, 51, 55, 7, 38, 47, 1, 5, 23, 55, 38, 43, 1, 34, 7, 5, 22, 31, 1, 21, 20, 7, 6, 43,
- 1, 38, 39, 53, 31, 1, 51, 50, 63, 1, 52, 47, 1, 6, 37, 51, 50, 23, 22, 21, 7, 35, 39, 6, 15, 1, 23, 7, 35, 38, 39, 38,
- 61, 1, 52, 63, 1, 35, 39, 53, 55, 23, 21, 23, 51, 21, 20, 7, 21, 22, 23, 19, 51, 23, 53, 39, 5, 51, 23, 21, 33, 50, 55, 51,
- 23, 21, 6, 7, 6, 43, 1, 21, 7, 35, 38, 61, 1, 39, 23, 17, 7, 35, 34, 47, 1, 53, 52, 55, 5, 7, 23, 51, 53, 52, 59, 1,
- 50, 63, 1, 33, 38, 61, 1, 5, 6, 7, 21, 20, 31, 1, 51, 53, 2, 20, 1, 45, 44, 22, 59, 75, 6, 4,132,254,247, 4, 14, 62,
-142, 12, 35, 87, 18, 85, 42, 23,134, 12, 3,229, 3,121, 12, 34,209,154, 17,154, 72, 21, 86, 13, 15,253,206,183,122, 47, 59, 21,
- 64, 34, 2,191, 14,113, 4, 61, 17, 28,111, 9,137, 41,119,101, 41, 28, 1, 36, 73,173,253,197, 15, 7, 89, 39, 4, 4, 76,137,
- 11, 3, 4, 5, 2, 17,132, 15, 65, 15, 2, 76, 4, 97, 14, 2, 88, 1,119,152, 2, 21, 72, 1,229, 4, 3, 1, 27, 32, 27, 2,
- 4, 5,149, 19, 26,149, 3, 7,131, 62, 6, 4,227, 88, 37, 4, 67, 1,201, 73, 73, 4, 6,176, 16, 36, 80,254,204, 6,254, 67,
- 47, 4, 68, 23,206, 4, 78, 54,103, 43, 5,229, 4, 4, 13, 32, 4,248, 15, 17, 3, 4, 10, 98, 37, 8,239, 13,131, 6, 2,215,
- 6, 35, 18, 1,254,241, 11, 2,131, 9,150, 10, 3,230,106,213,110, 78,203, 13,208, 32, 15, 58, 51, 14, 8,242, 3, 11,212, 79,
- 20, 43, 53,123, 98, 81,164, 60, 10, 4, 44,235, 26, 16, 30, 4, 21,229, 20, 23, 6, 21,100, 31, 45, 4, 4, 29, 4, 10, 2, 6,
-150, 8, 20,193, 1, 9, 6, 3,131,229, 4, 88, 25, 4, 1, 16,255, 22, 93, 3,220, 10, 3,136, 5,254,247, 3,102, 29, 9, 39,
- 94, 9,131,130, 6, 22, 74,137, 1, 15, 6, 22, 74, 28, 7, 65, 33, 4,211, 0, 0, 4, 0, 60, 0, 10, 4,149, 4, 56, 0, 10,
- 0, 31, 0, 50, 0, 69, 0, 0, 1, 51, 17, 7, 53, 55, 51, 17, 51, 21, 33, 5, 38, 53, 52, 63, 1, 39, 55, 23, 39, 7, 6, 23,
- 22, 55, 33, 21, 33, 34, 39, 38, 37, 6, 7, 35, 21, 39, 55, 21, 51, 54, 55, 54, 39, 3, 55, 19, 22, 21, 20, 1, 22, 31, 1, 55,
- 7, 39, 55, 39, 38, 7, 6, 7, 3, 39, 19, 54, 55, 54, 1,220,125,136,147, 93,125,254,158,254,129, 32, 28, 61, 45,171, 18, 45,
- 72, 15, 27, 29, 87, 1, 40,254,159, 55, 42, 33, 4, 11, 62,128,121,154,154,144, 42, 19, 18, 49,147, 99,177, 27,253,189,123, 70,
- 61, 46, 18,171, 44, 72, 28, 45, 46, 39,148,100,176, 29, 40, 35, 1, 89, 1, 43, 19, 71, 22,254,139, 67,134, 56, 57, 53, 55,106,
- 26, 78,187, 26,125, 41, 37, 37, 6,116, 24, 20, 71,108, 7, 53,110,109, 51, 8, 40, 44, 72, 1, 1, 58,254,206, 48, 47, 40, 3,
- 95, 1,107,105, 26,188, 78, 26,125, 33, 4, 7, 78,255, 0, 57, 1, 50, 48, 24, 20, 0, 0, 0, 0, 4, 0, 75, 0, 9, 4,134,
- 4, 28, 0, 28, 0, 49, 0, 68, 0, 87, 0, 0, 1, 51, 21, 33, 53, 62, 1, 55, 62, 1, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1,
- 51, 50, 22, 21, 20, 6, 7, 14, 1, 5, 38, 53, 52, 63, 1, 39, 55, 23, 39, 7, 6, 23, 22, 55, 33, 21, 33, 34, 39, 38, 37, 6,
- 7, 35, 21, 39, 55, 21, 51, 54, 55, 54, 47, 1, 55, 19, 22, 21, 20, 1, 22, 31, 1, 55, 7, 39, 55, 39, 38, 7, 6, 15, 1, 39,
- 19, 54, 55, 54, 2, 64,242,254,137, 46,146, 17, 35, 26, 53, 42, 34, 73, 63, 54, 79, 34, 91,109, 27, 34, 10, 99,253,229, 31, 27,
- 60, 44,167, 17, 43, 71, 14, 26, 28, 85, 1, 32,254,168, 53, 41, 32, 3,240, 60,124,119,149,149,141, 41, 18, 17, 47,144, 97,173,
- 26,253,203,121, 68, 60, 44, 17,167, 43, 71, 27, 44, 44, 38,145, 97,171, 28, 40, 33, 1, 62, 66, 60, 35,113, 15, 29, 39, 19, 28,
- 37, 17, 27, 78, 18, 14, 71, 57, 27, 49, 32, 9, 77,232, 55, 56, 51, 53,104, 26, 76,183, 26,123, 39, 36, 36, 5,113, 24, 19, 69,
-104, 8, 51,107,106, 50, 8, 39, 43, 71,250, 56,254,214, 47, 46, 38, 3, 72, 1,103,104, 26,183, 76, 25,123, 32, 5, 6, 76,250,
- 56, 1, 42, 47, 23, 19, 0, 0, 0, 4, 0, 68, 0, 10, 4,141, 4, 42, 0, 40, 0, 61, 0, 80, 0, 99, 0, 0, 1, 30, 1, 21,
- 20, 6, 35, 34, 38, 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 43, 1, 53, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 53, 62, 1, 51,
- 50, 22, 21, 20, 6, 1, 38, 53, 52, 63, 1, 39, 55, 23, 39, 7, 6, 23, 22, 55, 33, 21, 33, 34, 39, 38, 37, 6, 7, 35, 21, 39,
- 55, 21, 51, 54, 55, 54, 47, 1, 55, 19, 22, 21, 20, 1, 22, 31, 1, 55, 7, 39, 55, 39, 38, 7, 6, 15, 1, 39, 19, 54, 55, 54,
- 2,246, 8, 68,124,113, 37, 78, 50, 52, 72, 39, 67, 66, 61, 57, 80, 83, 51, 52, 54, 52, 30, 69, 62, 54, 79, 35, 93,111, 60,253,
-107, 32, 28, 60, 45,170, 17, 44, 71, 15, 26, 29, 86, 1, 36,254,164, 54, 41, 34, 3,254, 61,126,120,152,152,142, 42, 18, 18, 48,
-146, 98,175, 27,253,196,122, 69, 60, 46, 18,169, 43, 71, 27, 45, 45, 38,147, 98,173, 28, 41, 34, 1,237, 1, 60, 43, 66, 73, 10,
- 13, 78, 22, 13, 36, 37, 32, 36, 66, 28, 27, 28, 30, 10, 15, 71, 11, 9, 64, 54, 37, 54,254,161, 55, 57, 52, 54,105, 26, 77,185,
- 26,124, 40, 36, 37, 6,115, 24, 20, 69,105, 8, 52,109,107, 51, 8, 40, 44, 71,254, 57,254,210, 48, 46, 39, 3, 83, 1,105,105,
- 26,185, 77, 26,123, 33, 5, 6, 77,253, 56, 1, 47, 47, 23, 20, 0, 5, 0, 36, 0, 7, 4,173, 4,100, 0, 2, 0, 13, 0, 34,
- 0, 53, 0, 72, 0, 0, 1, 7, 51, 3, 51, 17, 51, 21, 35, 21, 35, 53, 33, 53, 1, 38, 53, 52, 63, 1, 39, 55, 23, 39, 7, 6,
- 23, 22, 55, 33, 21, 33, 34, 39, 38, 37, 6, 7, 35, 21, 39, 55, 21, 51, 54, 55, 54, 39, 3, 55, 19, 22, 21, 20, 1, 22, 31, 1,
- 55, 7, 39, 55, 39, 38, 7, 6, 7, 3, 39, 19, 54, 55, 54, 2,129,175,175, 15,135, 92, 92,120,254,221,254,232, 34, 29, 64, 47,
-179, 18, 46, 75, 16, 28, 30, 91, 1, 53,254,143, 57, 43, 35, 4, 57, 65,133,128,159,159,151, 44, 20, 19, 51,154,103,185, 29,253,
-163,128, 74, 64, 48, 19,179, 46, 75, 29, 48, 48, 40,155,104,184, 29, 43, 36, 2,119,196, 1, 44,254,212, 72,109,109, 73,254,222,
- 59, 60, 55, 57,111, 28, 81,196, 28,131, 43, 38, 39, 6,121, 25, 21, 74,112, 8, 55,115,113, 53, 8, 42, 47, 75, 1, 12, 60,254,
-193, 50, 50, 41, 3,133, 1,111,111, 28,196, 81, 27,131, 34, 4, 7, 82,254,245, 59, 1, 64, 50, 25, 21, 0, 0, 0, 4, 0, 62,
- 0, 9, 4,147, 4, 51, 0, 29, 0, 50, 0, 69, 0, 88, 0, 0, 1, 33, 21, 35, 21, 50, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38,
- 39, 53, 30, 1, 51, 50, 54, 53, 52, 38, 35, 34, 6, 7, 1, 38, 53, 52, 63, 1, 39, 55, 23, 39, 7, 6, 23, 22, 55, 33, 21, 33,
- 34, 39, 38, 37, 6, 7, 35, 21, 39, 55, 21, 51, 54, 55, 54, 39, 3, 55, 19, 22, 21, 20, 1, 22, 31, 1, 55, 7, 39, 55, 39, 38,
- 7, 6, 15, 1, 39, 19, 54, 55, 54, 1,202, 1, 72,230, 4, 31, 17,101,118,121,110, 36, 76, 50, 55, 67, 39, 60, 67, 67, 60, 28,
- 59, 50,254,149, 32, 27, 61, 45,171, 18, 45, 72, 14, 26, 29, 87, 1, 39,254,160, 55, 41, 34, 4, 9, 62,128,121,153,153,144, 42,
- 18, 19, 49,147, 99,177, 26,253,191,123, 70, 61, 46, 19,170, 44, 72, 28, 45, 46, 38,149, 99,176, 28, 41, 34, 2,184, 69, 82, 5,
- 85, 72, 72, 83, 10, 11, 83, 23, 13, 47, 40, 42, 46, 9, 18,254,200, 56, 57, 53, 54,106, 26, 78,187, 27,126, 40, 37, 37, 6,116,
- 24, 20, 71,107, 8, 53,110,109, 51, 8, 40, 44, 72, 1, 0, 58,254,207, 48, 48, 39, 3, 92, 1,106,105, 26,187, 78, 25,125, 33,
- 4, 7, 78,255, 57, 1, 49, 47, 24, 20, 0, 0, 0, 5, 0, 75, 0, 0, 4,134, 4, 18, 0, 9, 0, 34, 0, 55, 0, 74, 0, 93,
- 0, 0, 1, 34, 6, 20, 22, 51, 50, 54, 52, 38, 55, 21, 46, 1, 35, 34, 6, 7, 6, 54, 51, 50, 22, 21, 20, 6, 35, 34, 38, 53,
- 52, 54, 51, 50, 22, 1, 38, 53, 52, 63, 1, 39, 55, 23, 39, 7, 6, 23, 22, 55, 33, 21, 33, 34, 39, 38, 37, 6, 7, 35, 21, 39,
- 55, 21, 51, 54, 55, 54, 47, 1, 55, 19, 22, 21, 20, 1, 22, 31, 1, 55, 7, 39, 55, 39, 38, 7, 6, 15, 1, 39, 19, 54, 55, 54,
- 2, 93, 39, 48, 48, 39, 42, 47, 47,108, 43, 50, 24, 62, 65, 2, 5, 66, 40, 83, 96,100, 84, 94,100,121,103, 27, 55,253,157, 31,
- 27, 60, 44,167, 17, 43, 71, 14, 26, 28, 85, 1, 32,254,168, 53, 41, 32, 3,240, 60,124,119,149,149,141, 41, 18, 17, 47,144, 97,
-173, 26,253,203,121, 68, 60, 44, 17,167, 43, 71, 27, 44, 44, 38,145, 97,171, 28, 40, 33, 1,219, 46, 84, 45, 45, 84, 46,192, 72,
- 15, 10, 68, 38, 5, 29, 82, 69, 67, 83,117,107,102,123, 8,253,220, 55, 56, 51, 53,104, 26, 76,183, 26,123, 40, 35, 36, 5,113,
- 24, 19, 69,105, 7, 52,108,106, 50, 8, 39, 43, 71,250, 56,254,214, 47, 46, 38, 3, 72, 1,104,103, 26,183, 76, 25,122, 32, 4,
- 6, 76,250, 56, 1, 42, 46, 24, 19, 0, 0, 0, 0, 4, 0, 45, 0, 12, 4,164, 4, 88, 0, 6, 0, 27, 0, 46, 0, 65, 0, 0,
- 1, 33, 21, 3, 35, 19, 33, 1, 38, 53, 52, 63, 1, 39, 55, 23, 39, 7, 6, 23, 22, 55, 33, 21, 33, 34, 39, 38, 37, 6, 7, 35,
- 21, 39, 55, 21, 51, 54, 55, 54, 39, 3, 55, 19, 22, 21, 20, 1, 22, 31, 1, 55, 7, 39, 55, 39, 38, 7, 6, 7, 3, 39, 19, 54,
- 55, 54, 1,178, 1,129,204,110,191,254,250,254,156, 33, 29, 63, 47,177, 18, 46, 74, 15, 27, 30, 89, 1, 48,254,149, 56, 43, 34,
- 4, 40, 64,131,125,158,158,148, 44, 19, 18, 50,151,102,182, 28,253,172,127, 72, 63, 47, 19,175, 45, 74, 29, 46, 48, 39,153,102,
-180, 30, 42, 35, 2,192, 38,254, 75, 1,148,254, 28, 58, 59, 54, 56,110, 27, 80,193, 27,129, 42, 37, 39, 6,119, 25, 20, 73,110,
- 8, 55,114,112, 53, 8, 41, 46, 74, 1, 8, 60,254,198, 50, 49, 40, 3,118, 1,109,109, 27,193, 81, 26,129, 34, 5, 7, 80,254,
-249, 59, 1, 58, 49, 25, 20, 0, 0, 3, 0, 45, 0, 0, 4,164, 4, 75, 0, 20, 0, 39, 0, 58, 0, 0, 55, 38, 53, 52, 63, 1,
- 39, 55, 23, 39, 7, 6, 23, 22, 55, 33, 21, 33, 34, 39, 38, 37, 6, 7, 35, 21, 39, 55, 21, 51, 54, 55, 54, 39, 3, 55, 19, 22,
- 21, 20, 1, 22, 31, 1, 55, 7, 39, 55, 39, 38, 7, 6, 7, 3, 39, 19, 54, 55, 54, 78, 33, 29, 63, 47,177, 18, 46, 74, 15, 27,
- 30, 89, 1, 48,254,149, 56, 43, 34, 4, 40, 64,131,125,158,158,148, 44, 19, 18, 50,151,102,182, 28,253,172,127, 72, 63, 47, 19,
-175, 45, 74, 29, 46, 48, 39,153,102,180, 30, 42, 35,136, 58, 60, 54, 56,109, 27, 80,192, 27,129, 42, 38, 38, 6,119, 25, 20, 72,
-110, 7, 55,113,112, 53, 9, 41, 46, 74, 1, 8, 59,254,198, 49, 49, 41, 3,119, 1,110,108, 27,193, 80, 26,130, 33, 4, 7, 80,
-254,248, 59, 1, 59, 49, 25, 20, 0, 6, 0, 57,255,255, 4,152, 4, 57, 0, 16, 0, 26, 0, 39, 0, 57, 0, 72, 0, 82, 0, 0,
- 1, 33, 50, 31, 1, 55, 51, 21, 6, 7, 33, 53, 54, 55, 3, 38, 35, 7, 50, 31, 1, 7, 38, 39, 54, 55, 54, 1, 22, 21, 23, 20,
- 7, 6, 43, 1, 38, 39, 54, 55, 5, 22, 23, 39, 6, 15, 1, 23, 35, 3, 39, 54, 55, 54, 53, 39, 53, 51, 1, 51, 21, 33, 50, 55,
- 51, 20, 3, 6, 43, 1, 21, 35, 47, 1, 23, 17, 7, 35, 34, 47, 1, 52, 55, 2, 24, 1, 36, 44, 25, 55, 74, 5,118, 12,254,255,
- 73, 3,148, 26, 10, 77, 79, 32, 36,144,201, 20,112, 16, 37, 2,132,124, 2, 73, 11, 30, 94, 11,131, 18,151,253, 91,128, 1, 84,
-144, 3, 2, 4, 4,151, 6, 3, 60, 20, 75,171, 2, 34, 1, 1, 40, 25, 22, 2,150, 18, 24,153, 3,126, 71, 4, 4,217, 87, 36,
- 3, 63, 4, 56, 63, 93, 41, 2,206, 16, 4, 40, 7, 1, 9, 19, 3, 69, 65,247,115, 15,194, 22, 35,254,192,208, 17, 30, 76, 44,
- 6, 12,235, 17, 84, 20,216, 10, 48,248, 12, 31, 21, 1, 4, 24, 24, 96, 30, 9, 43, 2,254,252, 87, 20, 7,254,251, 17, 86,219,
-132, 4,254,255, 4, 96, 36, 36, 97, 0, 0, 0, 0, 7, 0, 46, 0, 7, 4,163, 4,124, 0, 19, 0, 37, 0, 50, 0, 60, 0, 74,
- 0, 92, 0,101, 0, 0, 1, 51, 32, 19, 22, 29, 1, 16, 5, 6, 43, 1, 32, 3, 38, 61, 1, 16, 55, 54, 23, 21, 50, 31, 1, 21,
- 6, 7, 21, 51, 54, 55, 35, 7, 38, 39, 38, 35, 5, 22, 51, 54, 55, 38, 35, 38, 35, 34, 7, 6, 7, 5, 21, 23, 51, 50, 55, 52,
- 47, 1, 34, 5, 23, 6, 7, 20, 31, 1, 51, 52, 63, 1, 51, 23, 39, 5, 7, 22, 23, 51, 53, 55, 51, 50, 63, 1, 53, 35, 6, 43,
- 1, 39, 53, 5, 6, 29, 1, 20, 31, 1, 51, 53, 2, 94, 21, 1, 45,185, 74,254,206,124,139, 3,254,183,176, 64,241,145,104, 29,
- 39, 92, 20, 45,214, 7,101, 2, 64, 60, 14, 16, 19,254, 30,185, 6, 3,114, 50, 18, 22, 38, 72, 41, 59, 10, 1,232,117, 90, 74,
- 20, 77, 31, 11,252,205, 61, 57, 8,106, 22, 2, 21,108, 7, 58,106, 1,128,103, 5, 98, 3, 4,131, 28, 46, 81, 2, 17, 26,241,
- 4,254,105, 50, 81, 20,192, 4,124,254,233,133,157, 5,254,182,179, 58, 1, 42,127,125, 40, 1, 11,184,100,112, 2, 82,157, 2,
- 17, 24, 2, 6,183, 33,104, 17, 9,220,106, 11,196, 96, 14, 93, 95, 23,169, 3,204,105, 36,120, 58, 45, 40, 94, 37, 17,177, 44,
- 51, 19,189, 34,184,216,191, 2,180, 69, 5, 97,135, 2, 12, 5, 72, 77, 80, 30, 9, 69, 31, 3,222, 0, 0, 0, 0, 8, 0, 55,
- 0, 4, 4,154, 4,103, 0, 15, 0, 32, 0, 47, 0, 58, 0, 66, 0, 82, 0, 96, 0,106, 0, 0, 1, 32, 19, 22, 21, 16, 5, 6,
- 35, 32, 3, 38, 53, 16, 37, 54, 1, 16, 5, 22, 59, 1, 32, 19, 54, 53, 16, 37, 38, 35, 32, 3, 6, 1, 51, 50, 31, 1, 55, 21,
- 6, 7, 35, 53, 55, 38, 47, 1, 35, 50, 31, 1, 7, 35, 38, 39, 54, 55, 54, 1, 22, 29, 1, 6, 43, 1, 39, 37, 51, 23, 7, 35,
- 39, 35, 6, 7, 21, 38, 47, 1, 52, 55, 39, 5, 51, 21, 51, 50, 55, 21, 15, 1, 35, 7, 21, 35, 39, 37, 51, 23, 21, 7, 35, 34,
- 47, 1, 54, 2,106, 1, 49,178, 77,254,227,123,157,254,199,174, 71, 1, 38,128,254,122, 1, 10,118,127, 36, 1, 14,172, 69,254,
-240,120,138,254,221,168, 69, 1,197,235, 40, 18, 43, 61, 82, 20,204, 58,110, 19, 20, 58, 68, 23, 33,115, 2,171, 13, 89, 21, 33,
- 1,250,103, 16, 81, 75,117,253,162,207,109, 2, 2, 59, 2,125, 4, 9,117, 2, 65, 59, 2, 62, 5,245, 15, 18,130, 17,127, 4,
- 5,101,254,231,225, 4, 4,184, 61, 29, 5, 1, 4,103,254,241,134,158,254,194,175, 67, 1, 23,121,165, 1, 63,176, 63,253,205,
-254,212,162, 66, 1, 3,124,147, 1, 42,168, 62,254,252,119, 1, 18, 52, 73, 32, 2,153, 26, 2, 39,191, 29, 9, 53, 64,194, 96,
- 12,160, 19, 24,254,253,169, 25, 17, 98,199, 67,183, 2, 36,208, 16, 20, 9,205, 13, 21,106, 36,206, 72, 15, 4,219, 7, 5, 63,
-178,105, 4,207, 4, 77, 33, 37, 0, 5, 0, 46, 0, 7, 4,163, 4,124, 0, 7, 0, 23, 0, 31, 0, 55, 0, 72, 0, 0, 1, 22,
- 23, 50, 55, 38, 39, 6, 1, 32, 19, 22, 21, 16, 5, 6, 35, 32, 3, 38, 53, 16, 37, 54, 1, 6, 7, 22, 51, 54, 55, 38, 5, 21,
- 35, 6, 39, 46, 1, 55, 38, 54, 55, 50, 23, 54, 51, 30, 1, 7, 22, 6, 7, 6, 39, 35, 37, 16, 5, 22, 59, 1, 32, 19, 54, 53,
- 16, 37, 38, 35, 32, 3, 6, 1, 4, 1,140,109, 74, 66,124,133, 1,101, 1, 54,180, 79,254,222,125,159,254,194,176, 73, 1, 43,
-129, 1,111,124, 66, 74,110,139, 2, 2,254,155, 2, 94,143,106, 97, 5, 3,121,103,119, 97, 97,121,103,120, 2, 4, 97,106,143,
- 94, 2,253,229, 1, 14,119,130, 36, 1, 19,174, 70,254,236,121,141,254,216,170, 70, 2, 71,156, 2,155,148, 3, 2, 1,162,254,
-237,135,162,254,189,177, 68, 1, 28,123,167, 1, 67,180, 63,254, 96, 3,148,155, 2,156,146,205, 22,150, 6, 12,147, 66, 93,119,
- 1,130,130, 1,119, 93, 66,147, 12, 6,150, 74,254,208,165, 67, 1, 7,125,150, 1, 46,171, 63,254,248,121, 0, 0, 2, 0, 80,
- 0, 8, 4,129, 5, 37, 0, 24, 0, 46, 0, 0, 1, 50, 21, 6, 7, 23, 51, 50, 23, 7, 35, 23, 33, 22, 19, 55, 23, 6, 7, 38,
- 3, 33, 34, 3, 52, 1, 6, 35, 34, 46, 1, 53, 52, 55, 54, 55, 23, 6, 7, 20, 30, 1, 50, 54, 55, 23, 6, 1,140,134, 1,112,
- 21,241, 11, 14, 4,241, 11, 1,133, 11,123,117, 42, 4,240, 14,130,254, 95, 11, 74, 1,185, 99,108,108,198,109, 56, 28, 42, 35,
- 22, 2, 73,133,145,132, 37, 60, 40, 5, 36,124,143, 1,202,128, 3, 88, 6,254,164, 35,123, 7, 78, 21, 1,119, 2,192,116,251,
- 27, 55,109,197,110,108,100, 52, 41,190, 53, 58, 73,133, 73, 73, 66,147, 44, 0, 0, 3, 0, 60, 0, 5, 4,149, 4, 95, 0, 23,
- 0, 27, 0, 31, 0, 0, 1, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 1, 17,
- 33, 17, 37, 33, 17, 33, 1,255, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14,254, 62, 4, 87,
-252, 36, 3, 96,252,160, 2, 52, 31, 21, 23, 16, 14, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21,253,241, 4, 90,251,
-166,124, 3, 98, 0, 4, 0, 60, 0, 5, 4,149, 4, 95, 0, 23, 0, 47, 0, 51, 0, 55, 0, 0, 1, 52, 55, 54, 55, 54, 51, 50,
- 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 1, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6,
- 7, 6, 35, 34, 39, 38, 39, 38, 1, 17, 33, 17, 37, 33, 17, 33, 1, 23, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21,
- 32, 31, 21, 23, 16, 14, 1,209, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14,253, 85, 4, 87,
-252, 36, 3, 96,252,160, 1, 72, 31, 21, 23, 15, 14, 14, 15, 23, 21, 31, 32, 21, 23, 15, 15, 15, 15, 23, 21, 1,244, 32, 21, 22,
- 16, 14, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 14, 16, 23, 20,253, 9, 4, 90,251,166,124, 3, 98, 0, 0, 0, 0, 5, 0, 60,
- 0, 5, 4,149, 4, 95, 0, 23, 0, 47, 0, 71, 0, 75, 0, 79, 0, 0, 1, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20,
- 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 19, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38,
- 39, 38, 19, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 1, 17, 33, 17, 37, 33,
- 17, 33, 1, 23, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14,232, 14, 16, 23, 20, 32, 32, 21,
- 22, 16, 14, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14,233, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 14, 16, 23, 20, 32, 32, 21, 22,
- 16, 14,253, 85, 4, 87,252, 36, 3, 96,252,160, 1, 72, 31, 21, 23, 15, 14, 14, 15, 23, 21, 31, 32, 21, 23, 15, 15, 15, 15, 23,
- 21, 1, 12, 31, 21, 23, 16, 14, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21, 1, 8, 32, 21, 22, 16, 14, 14, 15, 23,
- 21, 32, 31, 21, 23, 16, 14, 14, 16, 23, 20,253, 9, 4, 90,251,166,124, 3, 98, 0, 6, 0, 60, 0, 1, 4,149, 4, 91, 0, 23,
- 0, 47, 0, 71, 0, 95, 0, 99, 0,103, 0, 0, 1, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34,
- 39, 38, 39, 38, 1, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 37, 52, 55, 54,
- 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 1, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22,
- 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 1, 17, 33, 17, 37, 33, 17, 33, 1, 23, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14,
- 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 1,209, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14,
-254, 47, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 1,209, 14, 15, 23, 21, 32, 31, 21, 23,
- 16, 14, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14,253, 85, 4, 87,252, 36, 3, 96,252,160, 3, 24, 32, 21, 23, 15, 15, 15, 15, 23,
- 21, 32, 31, 21, 23, 15, 14, 14, 15, 23, 21,254, 75, 31, 21, 23, 16, 14, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21,
- 32, 31, 21, 23, 16, 14, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21, 1,244, 32, 21, 23, 15, 15, 15, 15, 23, 21, 32,
- 31, 21, 23, 15, 14, 14, 15, 23, 21,253, 8, 4, 90,251,166,124, 3, 98, 0, 0, 0, 7, 0, 60, 0, 5, 4,149, 4, 95, 0, 23,
- 0, 47, 0, 71, 0, 95, 0,119, 0,123, 0,127, 0, 0, 1, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6,
- 35, 34, 39, 38, 39, 38, 1, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 37, 52,
- 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 1, 52, 55, 54, 55, 54, 51, 50, 23, 22,
- 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 7, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6,
- 35, 34, 39, 38, 39, 38, 1, 17, 33, 17, 37, 33, 17, 33, 1, 23, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 31,
- 21, 23, 16, 14, 1,209, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14,254, 47, 14, 16, 23, 20,
- 32, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 1,209, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 14, 16, 23, 20,
- 32, 32, 21, 22, 16, 14,233, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14,254, 62, 4, 87,252,
- 36, 3, 96,252,160, 3, 28, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 14, 16, 23, 20,254, 76, 31, 21, 23, 15,
- 14, 14, 15, 23, 21, 31, 32, 21, 23, 15, 15, 15, 15, 23, 21, 32, 31, 21, 23, 15, 14, 14, 15, 23, 21, 31, 32, 21, 23, 15, 15, 15,
- 15, 23, 21, 1,244, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 14, 16, 23, 20,200, 31, 21, 23, 16, 14, 14, 16,
- 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21,253,241, 4, 90,251,166,124, 3, 98, 0, 0, 0, 0, 8, 0, 60,255,252, 4,149,
- 4, 86, 0, 23, 0, 47, 0, 71, 0, 95, 0,119, 0,143, 0,147, 0,151, 0, 0, 1, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22,
- 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 37, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34,
- 39, 38, 39, 38, 17, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 1, 52, 55, 54,
- 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 37, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22,
- 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 1, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34,
- 39, 38, 39, 38, 1, 17, 33, 17, 37, 33, 17, 33, 2,231, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 31, 21, 23,
- 16, 14,254, 48, 14, 15, 24, 20, 32, 32, 20, 23, 16, 14, 14, 15, 24, 20, 32, 32, 20, 23, 16, 14, 14, 16, 23, 20, 32, 32, 21, 22,
- 16, 14, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 1,209, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 14, 16, 23, 20, 32, 32, 21, 22,
- 16, 14,254, 47, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 1,209, 14, 15, 23, 21, 32, 31,
- 21, 23, 16, 14, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14,253, 85, 4, 87,252, 36, 3, 96,252,160, 2, 43, 32, 21, 22, 16, 14, 14,
- 15, 23, 21, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 32, 21, 22, 16, 14, 14, 15, 23,
- 21, 1, 46, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21,254, 0, 32, 21, 22, 16, 14, 14, 15, 23,
- 21, 32, 31, 21, 23, 16, 14, 14, 16, 23, 20, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 31, 21, 23, 16, 14, 14, 16, 23, 20, 2,
- 64, 32, 21, 22, 16, 14, 14, 15, 23, 21, 32, 32, 21, 22, 16, 14, 14, 15, 23, 21,252,227, 4, 90,251,166,124, 3, 98, 0, 0, 0,
- 0, 3, 0, 46, 0, 0, 4,163, 4,116, 0, 12, 0, 27, 0, 41, 0, 0, 1, 50, 4, 18, 16, 2, 4, 32, 36, 2, 16, 18, 36, 1,
- 20, 30, 1, 32, 62, 1, 53, 52, 46, 1, 35, 34, 14, 1, 4, 52, 62, 1, 51, 50, 30, 1, 20, 14, 1, 35, 34, 38, 2,104,144, 1,
- 16,154,150,254,240,254,217,254,240,150,153, 1, 16,254,152,133,240, 1, 7,240,133,137,240,128,127,242,135, 2,185, 26, 46, 25,
- 24, 46, 26, 27, 45, 24, 25, 45, 4,116,147,254,238,254,214,254,242,151,151, 1, 14, 1, 42, 1, 18,147,253,198,132,240,132,132,
-240,132,131,243,130,130,243,156, 50, 46, 25, 25, 46, 50, 47, 24, 24, 0, 0, 0, 0, 4, 0, 46, 0, 5, 4,163, 4,121, 0, 12,
- 0, 27, 0, 41, 0, 54, 0, 0, 1, 50, 4, 18, 16, 2, 4, 32, 36, 2, 16, 18, 36, 1, 20, 30, 1, 32, 62, 1, 53, 52, 46, 1,
- 35, 34, 14, 1, 4, 52, 62, 1, 51, 50, 30, 1, 20, 14, 1, 35, 34, 38, 36, 50, 30, 1, 20, 14, 1, 35, 34, 46, 1, 52, 54, 2,
-104,144, 1, 16,154,150,254,240,254,217,254,240,150,153, 1, 16,254,152,133,240, 1, 7,240,133,137,240,128,127,242,135, 2,185,
- 26, 46, 25, 24, 46, 26, 27, 45, 24, 25, 45,253,230, 49, 46, 26, 26, 45, 26, 24, 46, 26, 27, 4,121,147,254,238,254,214,254,242,
-151,151, 1, 14, 1, 42, 1, 18,147,253,198,132,240,132,132,240,132,131,243,130,130,243,156, 50, 46, 25, 25, 46, 50, 47, 24, 24,
-168, 24, 47, 50, 46, 25, 25, 46, 50, 47, 0, 0, 0, 2, 0, 46, 0, 0, 4,163, 4,116, 0, 12, 0, 26, 0, 0, 1, 50, 4, 18,
- 16, 2, 4, 32, 36, 2, 16, 18, 36, 1, 50, 62, 1, 52, 46, 1, 35, 34, 14, 1, 20, 30, 1, 2,104,144, 1, 16,154,150,254,240,
-254,217,254,240,150,153, 1, 16, 1,178, 24, 45, 27, 26, 46, 24, 25, 46, 26, 27, 45, 4,116,147,254,238,254,214,254,242,151,151,
- 1, 14, 1, 42, 1, 18,147,253,102, 24, 47, 50, 46, 25, 25, 46, 50, 47, 24, 0, 0, 3, 0, 46,255,246, 4,163, 4,106, 0, 12,
- 0, 26, 0, 39, 0, 0, 1, 50, 4, 18, 16, 2, 4, 32, 36, 2, 16, 18, 36, 1, 50, 62, 1, 52, 46, 1, 35, 34, 14, 1, 20, 30,
- 1, 36, 20, 30, 1, 51, 50, 62, 1, 52, 46, 1, 34, 6, 2,104,144, 1, 16,154,150,254,240,254,217,254,240,150,153, 1, 16, 1,
-178, 24, 45, 27, 26, 46, 24, 25, 46, 26, 27, 45,253,113, 26, 46, 24, 26, 45, 26, 26, 46, 49, 45, 4,106,147,254,238,254,214,254,
-242,151,151, 1, 14, 1, 42, 1, 18,147,253,102, 24, 47, 50, 46, 25, 25, 46, 50, 47, 24,121, 50, 46, 25, 25, 46, 50, 47, 24, 24,
- 0, 1, 0, 82, 0, 7, 4,127, 0,150, 0, 3, 0, 0, 55, 33, 21, 33, 82, 4, 45,251,211,150,143, 0, 0, 0, 0, 2, 0, 82,
- 0, 7, 4,127, 0,150, 0, 3, 0, 7, 0, 0, 55, 33, 21, 33, 37, 33, 21, 33, 82, 1,179,254, 77, 2,122, 1,179,254, 77,150,
-143,143,143, 0, 0, 2, 0,150,255,254, 4, 59, 4,187, 0, 9, 0, 26, 0, 0, 1, 54, 4, 55, 17, 6, 39, 38, 7, 47, 1, 35,
- 39, 51, 21, 35, 21, 54, 23, 22, 55, 17, 6, 36, 7, 17, 35, 1, 37,135, 1,128,215,175,190,143,210, 16, 80, 61, 1,219, 61,205,
-176,204,188,231,254, 98,146, 78, 2, 27, 43,187, 35, 1,240, 33,102,129, 34, 2, 75, 43, 43, 21, 33,124,111, 53,253,155, 60,201,
- 63,254, 49, 0, 0, 1, 0,115, 0, 5, 4, 94, 5, 30, 0, 16, 0, 0, 19, 35, 39, 51, 21, 35, 21, 54, 23, 22, 55, 17, 6, 36,
- 7, 17, 35,182, 66, 1,236, 66,221,189,220,203,249,254, 66,157, 84, 4,240, 46, 46, 23, 35,133,120, 58,253,107, 65,217, 68,254,
- 13, 0, 0, 0, 0, 1, 0, 39,255,255, 4,170, 4, 40, 0, 31, 0, 0, 1, 39, 7, 39, 55, 39, 55, 23, 55, 23, 7, 23, 55, 39,
- 55, 23, 55, 23, 7, 22, 19, 39, 7, 31, 1, 7, 47, 1, 15, 1, 39, 55, 2, 37,237,132,140,132, 33, 98, 31,131,140,130,236,237,
-131,141,131, 31, 97, 32, 50, 24,214,236,126,227,131,192,128,126,192,131,225, 1,196,239,132,141,133, 31, 98, 31,132,142,132,239,
-238,133,142,133, 32, 98, 31, 80,254,230,220,240,127,193,132,228,127,127,228,132,193, 0, 0, 0, 0, 2, 0, 31, 0, 0, 4,178,
- 4,211, 0, 15, 0, 82, 0, 0, 1, 20, 30, 1, 51, 50, 62, 1, 53, 52, 46, 1, 35, 34, 14, 1, 19, 21, 35, 6, 35, 34, 39, 53,
- 35, 21, 35, 34, 38, 39, 38, 39, 7, 3, 23, 7, 48, 23, 22, 23, 22, 23, 17, 33, 53, 33, 53, 38, 39, 46, 1, 52, 62, 1, 51, 50,
- 30, 1, 20, 6, 7, 6, 7, 21, 33, 21, 33, 17, 54, 55, 54, 55, 54, 55, 39, 55, 3, 39, 6, 7, 6, 7, 6, 1,252, 32, 58, 31,
- 33, 57, 33, 34, 57, 32, 30, 58, 33,184, 6, 30, 32, 2, 3, 5, 6,137,251, 70, 13, 11, 71, 23,249, 70, 5, 59,107, 89, 95,254,
-207, 1, 49, 21, 21, 50, 55, 56,101, 53, 54,100, 58, 56, 49, 22, 22, 1, 41,254,215, 82, 76,107, 60, 2, 3, 71,250, 24, 71, 10,
- 14, 69,126, 94, 3,255, 32, 58, 32, 32, 58, 32, 32, 59, 32, 32, 59,251,229, 1, 2, 1, 1, 1, 78, 71, 14, 13, 53, 1, 13,101,
- 52, 5, 71, 40, 32, 6, 2, 76,105, 41, 7, 11, 28,101,110,102, 55, 55,102,110,101, 28, 11, 7, 41,105,253,182, 9, 27, 40, 71,
- 3, 2, 52,101,254,243, 53, 13, 14, 71, 40, 29, 0, 4, 0,129, 0, 12, 4, 80, 4,109, 0, 4, 0, 9, 0, 57, 0, 89, 0, 0,
- 37, 38, 39, 7, 22, 37, 23, 54, 55, 38, 1, 23, 54, 55, 51, 6, 7, 23, 22, 23, 14, 1, 7, 38, 47, 1, 6, 7, 39, 54, 55, 39,
- 7, 22, 23, 7, 38, 39, 7, 6, 7, 34, 38, 39, 52, 63, 1, 38, 39, 51, 22, 23, 55, 1, 39, 9, 1, 7, 1, 21, 39, 1, 55, 9,
- 1, 23, 1, 3, 38, 47, 1, 30, 1, 23, 55, 38, 39, 19, 23, 35, 23, 6, 7, 23, 62, 1, 55, 7, 6, 7, 4, 14, 36, 15, 7, 3,
-252,177, 6, 15, 37, 56, 2, 24,208, 56, 20, 69, 19, 70,117, 47, 1, 4, 45, 32, 54, 3,117, 78, 68, 29, 76, 50,183,182, 50, 76,
- 29, 69, 78,117, 1, 47, 30, 56, 3, 48,117, 70, 19, 68, 21, 56,209,254,106, 24, 1,230, 1,231, 25,254, 85, 24, 1,189, 4,254,
- 52,254, 53, 3, 1,191,239, 66, 37, 17, 31,121,133, 6, 92, 65,234, 27, 1,204, 64, 89, 7,132,121, 31, 16, 36, 70, 24, 10, 48,
- 6, 61, 47, 6, 48, 10, 9, 1,159,228, 44, 45, 88, 55,136, 2, 48, 32, 25, 1, 3, 59,126, 42, 6, 50, 12, 37,218,218, 37, 12,
- 50, 6, 42,126, 54, 8, 22, 27, 57, 2,136, 55, 88, 45, 44,228, 1,227,111,253,236, 2, 20,111,254, 3, 1, 27, 2, 16, 11,253,
-242, 2, 14, 11,253,244,254,243, 43, 70, 1, 57,100, 49, 12, 28, 41, 1, 12, 30,240, 40, 27, 12, 49,100, 57, 1, 67, 49, 0, 0,
- 0, 5, 0,188,255,253, 4, 21, 5,236, 0, 3, 0, 22, 0, 42, 0, 67, 0, 84, 0, 0, 1, 22, 39, 38, 19, 21, 6, 35, 34, 39,
- 53, 38, 55, 54, 55, 21, 6, 21, 6, 4, 7, 35, 38, 3, 36, 39, 38, 37, 21, 6, 21, 20, 4, 23, 6, 5, 39, 54, 39, 38, 39, 17,
- 39, 19, 17, 39, 17, 36, 39, 54, 55, 54, 23, 7, 23, 6, 39, 38, 7, 6, 4, 23, 6, 5, 53, 36, 39, 54, 37, 39, 3, 46, 1, 53,
- 52, 62, 1, 51, 50, 30, 1, 21, 20, 6, 7, 1,148, 68, 22, 36,250, 12, 28, 34, 4,182, 2, 6,158, 64, 4, 1, 70, 2, 14, 28,
-198,254,232, 6, 2, 1, 16,170, 2, 44, 2, 4,254,238, 2,188, 6, 2,194, 78, 78, 78,254,118, 4, 14,212, 70, 56,112, 94, 76,
- 98, 50, 10, 4, 2,242, 6, 6,254,150, 1, 18, 2, 12,254,216, 78, 4, 22, 24, 24, 42, 22, 24, 42, 24, 24, 20, 4,181, 30, 43,
- 11,251,148, 66, 29, 64, 48, 34, 65, 82, 25, 47, 24, 22, 48, 63,119, 65, 1,183, 37,111,100, 47, 68, 38, 51, 46, 89, 97, 81, 47,
- 53, 35, 51, 36, 34,254,180, 19, 3, 1,254,129, 16, 1,117, 19,138,144, 5, 4, 73, 30, 25, 18, 39, 13, 64, 51, 47,117,138, 16,
- 61, 32, 61, 35,110, 7, 1, 45, 11, 46, 24, 25, 46, 24, 24, 46, 25, 24, 46, 11, 0, 3, 0, 19, 0, 3, 4,190, 4,119, 0, 3,
- 0, 7, 0, 51, 0, 0, 37, 11, 1, 22, 37, 11, 1, 22, 1, 51, 50, 29, 1, 20, 43, 1, 19, 6, 7, 14, 1, 35, 34, 46, 1, 55,
- 19, 33, 19, 22, 14, 1, 34, 38, 39, 38, 39, 19, 35, 38, 61, 1, 52, 59, 1, 55, 23, 51, 55, 23, 51, 55, 4,128,207,207,207,254,
- 68,207,207,207, 2,175,160, 42, 31,145,207, 2, 36, 35,130, 71, 70,129, 72, 2,204,253,250,205, 2, 72,129,141,130, 37, 35, 1,
-206,153, 24, 43,161, 40, 38,189, 97, 97,189, 39,196, 2,109,253,147, 57, 57, 2,109,253,147, 57, 2,249, 32, 18, 30,253,149, 51,
- 46, 48, 53, 53, 95, 52, 2,105,253,151, 52, 95, 53, 53, 48, 46, 51, 2,107, 12, 22, 11, 35,116,116,242,242,116, 0, 2, 0, 22,
- 0, 6, 4,187, 4,107, 0, 22, 0, 34, 0, 0, 1, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 38, 39, 46, 1, 7, 6,
- 7, 39, 18, 1, 19, 35, 3, 35, 17, 35, 3, 35, 3, 35, 19, 1,214,138,118, 41, 37,151, 56, 27, 13, 32, 95, 94,168, 62, 25, 58,
-107,123,149, 90,172, 3,178, 71, 95, 63,215,103, 1,214, 64, 96, 72, 4, 44, 62, 6, 30,124, 58, 61, 43, 44,106, 44, 44, 60,134,
- 54, 79, 47, 50,217, 51, 1, 51,254, 29,254, 60, 1, 98,254,158, 1, 98,254,158, 1,196, 0, 0, 0, 2, 0, 74,255,253, 4,135,
- 5, 30, 0, 13, 0, 49, 0, 0, 0, 20, 30, 1, 51, 50, 62, 1, 52, 46, 1, 35, 34, 6, 19, 21, 51, 22, 54, 55, 20, 4, 7, 6,
- 7, 35, 38, 55, 38, 36, 3, 30, 1, 55, 51, 53, 38, 39, 46, 1, 52, 62, 1, 50, 30, 1, 20, 6, 7, 6, 1,207, 44, 80, 42, 43,
- 80, 44, 46, 78, 43, 41, 80,164, 5,133,198,151,254,100, 34, 47, 1, 37, 40, 2, 4,254, 77, 77,174,216,126, 6, 57, 53, 68, 76,
- 77,137,145,139, 78, 77, 68, 50, 4, 41, 87, 78, 44, 44, 78, 87, 80, 42, 42,254,103,136, 1,168, 33,202,135,132,119,214,156,143,
-115,126, 1, 10, 1,215, 12,135, 6, 31, 38,136,151,138, 74, 74,138,151,136, 38, 28, 0, 0, 0, 0, 3, 0, 30, 0, 0, 4,179,
- 4,211, 0, 63, 0, 71, 0, 79, 0, 0, 0, 50, 31, 1, 22, 23, 55, 22, 23, 7, 22, 23, 55, 22, 23, 7, 22, 20, 7, 23, 6, 7,
- 39, 6, 7, 23, 6, 7, 39, 6, 15, 1, 6, 34, 47, 1, 38, 39, 7, 38, 39, 55, 38, 39, 7, 38, 39, 55, 38, 52, 55, 39, 54, 55,
- 23, 54, 55, 39, 54, 55, 23, 54, 63, 1, 18, 32, 6, 16, 22, 32, 54, 16, 6, 20, 6, 34, 38, 52, 54, 50, 2, 69, 71, 35, 26, 57,
- 54, 92, 62, 52, 50, 40, 28,112, 30, 13, 95, 4, 4, 95, 13, 30,112, 28, 40, 50, 52, 62, 92, 54, 57, 26, 35, 71, 35, 26, 58, 53,
- 92, 62, 52, 50, 40, 28,112, 30, 13, 95, 4, 4, 95, 13, 30,112, 28, 40, 50, 52, 62, 92, 53, 58, 26,218,254,217,209,209, 1, 39,
-209,224, 78,109, 78, 78,109, 4,211, 4,128, 11, 25, 85, 37, 52,109, 43, 51, 13, 69, 74, 53, 30, 58, 29, 54, 74, 69, 13, 51, 43,
-109, 52, 37, 84, 24, 12,127, 5, 5,127, 12, 24, 84, 37, 52,109, 43, 51, 13, 69, 74, 54, 29, 58, 30, 53, 74, 69, 13, 51, 44,108,
- 52, 37, 84, 24, 11,128,255, 0,210,254,217,208,208, 1, 39, 92,110, 77, 77,110, 77, 0, 0, 0, 0, 15, 0, 42, 0, 12, 4,167,
- 5, 63, 0, 8, 0, 13, 0, 18, 0, 23, 0, 28, 0, 33, 0, 38, 0, 43, 0, 48, 0, 53, 0, 58, 0, 63, 0, 68, 0, 80, 0,145,
- 0, 0, 0, 20, 30, 1, 51, 38, 55, 34, 6, 5, 22, 23, 55, 38, 39, 22, 23, 55, 38, 39, 22, 23, 55, 38, 39, 22, 7, 55, 38, 39,
- 22, 7, 23, 54, 39, 6, 7, 23, 54, 37, 23, 54, 55, 6, 7, 23, 54, 55, 6, 7, 23, 54, 55, 6, 31, 1, 38, 55, 6, 23, 55, 38,
- 55, 6, 23, 55, 38, 39, 6, 23, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 39, 53, 38, 39, 46, 1, 52, 62, 1, 51, 50, 30, 1,
- 20, 6, 7, 6, 7, 51, 20, 35, 21, 22, 23, 22, 23, 54, 55, 4, 23, 6, 35, 38, 7, 22, 21, 20, 7, 6, 7, 3, 21, 6, 35, 34,
- 39, 53, 3, 38, 39, 38, 53, 52, 55, 38, 7, 34, 39, 54, 37, 22, 23, 54, 55, 54, 2, 49, 15, 27, 16, 26, 26, 15, 28, 1,180, 97,
- 36, 23, 79,127, 96, 32, 34, 78,105, 66, 14, 42, 52,108, 44, 1, 52, 34, 85, 2, 21, 52, 2, 55, 41, 44, 51, 40,252,224, 23, 36,
- 97, 77, 35, 34, 31, 97, 84, 17, 42, 14, 66, 70, 13, 52, 1, 44, 61, 52, 52, 22, 3, 35, 89, 51, 44, 41, 6,253, 48, 66, 66, 48,
- 47, 67, 66, 79, 3, 2, 16, 19, 19, 34, 18, 18, 33, 19, 18, 17, 1, 3, 1, 1, 45, 36, 3, 3, 70, 19, 1, 36, 70, 74,223, 70,
- 49, 4, 46, 35, 45, 1, 10, 20, 22, 7, 2, 45, 35, 45, 2, 50, 77,223, 74, 70, 1, 36, 19, 71, 6, 8, 35, 5, 9, 30, 27, 16,
- 56, 60, 15,103, 55, 42, 33, 50, 17, 85, 54, 29, 74, 37,110, 61, 17, 95, 67,127, 66, 7,110, 84,135, 62, 9,114, 89,119, 48, 23,
-100, 9, 34, 42, 55, 14, 93, 29, 54, 85, 36,117, 17, 61,110, 59,119, 7, 66,127, 76,122, 9, 62,135, 92,101, 23, 48,119, 90, 51,
- 67, 46, 49, 66, 66, 49, 46, 67, 40, 78, 1, 2, 9, 34, 37, 34, 18, 18, 34, 37, 34, 9, 2, 1, 1, 77, 8, 35, 3, 3,112, 46,
- 5, 80,143, 22, 22, 17, 18, 65, 46, 36, 7,253, 59, 81, 19, 25, 87, 2,185, 7, 36, 46, 65, 15, 15, 28, 23,142, 80, 5, 45,123,
- 9, 8, 34, 0, 0, 15, 0, 82, 0, 11, 4,127, 4,199, 0, 15, 0, 26, 0, 38, 0, 46, 0, 70, 0, 82, 0,138, 0,150, 0,158,
- 0,166, 0,178, 0,186, 0,194, 0,202, 0,214, 0, 0, 1, 50, 30, 1, 21, 20, 14, 1, 35, 34, 46, 1, 53, 52, 62, 1, 7, 38,
- 39, 6, 7, 6, 22, 55, 54, 55, 38, 37, 6, 7, 22, 23, 22, 55, 54, 39, 38, 39, 6, 39, 22, 21, 20, 7, 54, 55, 38, 39, 38, 39,
- 38, 39, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 54, 55, 54, 55, 54, 53, 52, 55, 22, 23, 22, 23, 54, 55, 54, 39, 38, 7,
- 6, 5, 55, 62, 1, 51, 50, 22, 23, 21, 54, 23, 22, 23, 22, 21, 20, 7, 6, 7, 51, 22, 23, 22, 21, 20, 7, 14, 1, 39, 35, 6,
- 7, 6, 35, 34, 39, 38, 39, 6, 38, 39, 38, 53, 52, 55, 54, 55, 38, 39, 38, 53, 52, 55, 54, 55, 54, 5, 38, 39, 38, 35, 34, 7,
- 6, 7, 22, 23, 54, 23, 6, 7, 22, 23, 22, 23, 38, 37, 6, 7, 54, 55, 54, 55, 38, 39, 38, 39, 38, 7, 6, 23, 22, 23, 54, 55,
- 54, 7, 6, 7, 22, 23, 38, 53, 52, 23, 22, 23, 54, 55, 38, 39, 38, 23, 22, 23, 54, 55, 6, 7, 6, 7, 6, 7, 22, 23, 22, 51,
- 50, 55, 54, 55, 38, 2,104, 16, 29, 16, 16, 29, 16, 16, 29, 16, 16, 29,183, 64, 57,104, 41, 44, 41, 82, 80,124, 12, 1,136, 5,
- 11,124, 80, 82, 21, 21, 45, 42,103, 58, 62, 2, 2, 47, 42, 42, 89, 38, 40, 41, 40, 40, 39, 41, 38, 1, 1, 38, 41, 39, 41, 40,
- 40, 41, 37, 3, 20, 12, 5, 64, 57,102, 43, 46, 21, 21, 84, 82,254, 34, 1, 28, 96, 51, 51, 96, 27,138, 92, 95, 26, 9, 28, 46,
-110, 1,112, 44, 27, 9, 26,183,140, 1, 27, 48, 48, 52, 52, 49, 47, 28,139,184, 25, 9, 26, 44,112,110, 44, 28, 9, 26, 93, 93,
- 1,194, 22, 38, 38, 40, 41, 38, 38, 21, 69, 69, 69, 74, 48, 51, 28, 29, 27, 27, 4,254,217, 7, 5, 27, 28, 28, 28, 50, 87,121,
- 81, 84, 20, 22, 46, 44,100, 57, 64, 5, 7, 46, 42, 42, 46, 1, 46, 5, 7, 49, 50, 28, 28, 29,174, 51, 48, 8, 4, 26, 28, 29,
- 73, 68, 69, 21, 37, 38, 42, 42, 37, 38, 21, 70, 2,166, 15, 30, 17, 16, 28, 17, 17, 28, 16, 17, 30, 15,176, 43, 46, 83, 69, 70,
- 69, 3, 3, 46, 73, 77, 77, 73, 46, 3, 3, 34, 35, 70, 69, 83, 46,136, 32, 33, 31, 32, 31, 32, 34, 59, 24, 23, 23, 21, 21, 23,
- 23, 24, 45, 48, 46, 45, 25, 23, 23, 21, 21, 23, 23, 25, 45, 46, 48,217, 73, 77, 43, 46, 82, 69, 70, 36, 36, 4, 4, 8, 2,145,
-156,156,145, 2, 49, 1, 2, 46, 16, 22, 37, 50, 83, 95, 96, 81, 50, 37, 22, 16, 45, 4, 49,143, 79, 81, 81, 79,143, 50, 5, 45,
- 16, 22, 36, 51, 81, 96, 95, 82, 51, 38, 21, 16, 46, 2, 1, 62,131, 71, 73, 73, 71,131, 26, 34, 34, 13, 21, 23, 15, 16, 17, 16,
- 55, 52, 52, 55, 16, 17, 16, 15, 23, 35, 46, 4, 4, 36, 36, 70, 69, 82, 47, 43, 76,127, 31, 34, 32, 31, 32, 31, 33,174, 55, 53,
- 20, 24, 14, 17, 16, 47, 24, 20, 53, 55, 17, 16, 17, 37, 34, 27,128, 73, 74, 74, 73,128, 27, 0, 0, 7, 0, 42,255,254, 4,167,
- 5, 26, 0, 11, 0, 20, 0, 29, 0, 41, 0,112, 0,126, 0,140, 0, 0, 1, 20, 23, 54, 55, 38, 39, 54, 55, 38, 39, 6, 5, 52,
- 38, 21, 6, 21, 22, 23, 54, 37, 6, 23, 54, 55, 46, 1, 39, 6, 5, 52, 39, 6, 7, 22, 23, 6, 7, 22, 23, 54, 3, 38, 7, 6,
- 7, 38, 39, 54, 55, 22, 23, 54, 55, 38, 53, 52, 63, 1, 21, 22, 21, 20, 7, 30, 1, 23, 54, 55, 22, 23, 6, 7, 38, 39, 38, 7,
- 22, 23, 22, 20, 7, 6, 7, 22, 23, 6, 35, 38, 39, 6, 7, 6, 7, 35, 38, 39, 53, 38, 39, 6, 7, 34, 39, 54, 55, 38, 39, 38,
- 52, 55, 54, 6, 20, 30, 1, 51, 50, 62, 1, 52, 46, 1, 35, 34, 6, 55, 50, 30, 1, 20, 14, 1, 35, 34, 46, 1, 52, 62, 1, 2,
-154, 34, 48, 39, 45, 8, 3, 44, 32, 41, 42,255, 0, 35, 39, 7, 48, 19, 1,163, 6, 20, 53, 3, 3, 37, 1, 34,255, 0, 42, 37,
- 37, 44, 3, 12, 41, 44, 44, 34,232, 71, 26, 28, 78, 89, 2, 2,160,148, 73, 39, 43, 34,144, 1,143, 34, 36, 40, 5, 74,147,161,
- 1, 2, 89, 78, 28, 18, 79, 23, 17, 50, 49, 21, 28, 30, 44, 1, 12, 57, 44, 52, 61, 83, 22, 28, 28, 77, 58, 55, 44, 58, 12, 1,
- 45, 30, 28, 20, 49, 50, 17, 45, 91,165, 91, 90,165, 91, 93,166, 87, 88,166,254, 73,139, 79, 77,139, 75, 76,139, 77, 78,140, 2,
- 50,142,147, 13, 31, 89,123,149, 92, 25, 13, 98,179, 67, 87, 1, 68, 74,103, 65, 66, 99,112, 55, 76, 94, 66, 77, 1, 76, 48,148,
- 98, 11, 27, 92,149,117, 93, 33, 13,147, 1, 64, 82, 37, 75, 2, 2,108,104, 2, 6,104, 22, 15, 79, 43,119,213, 1, 1,213,119,
- 43, 79, 11, 23, 3,104, 6, 2,104,108, 2, 2, 75, 36, 80, 27, 30, 90,192, 88, 39, 31, 64, 68, 10, 48, 58, 41, 19, 30,119,119,
- 30, 1, 18, 42, 59, 48, 10, 69, 65, 30, 38, 88,192, 90, 30,119,180,165, 91, 91,165,180,167, 91, 91, 71, 74,140,152,138, 77, 77,
-138,152,140, 74, 0, 4, 0, 34, 0, 2, 4,175, 4, 40, 0, 7, 0, 13, 0, 21, 0, 37, 0, 0, 1, 51, 1, 21, 33, 39, 35, 0,
- 23, 1, 21, 33, 53, 0, 7, 50, 21, 2, 35, 34, 3, 54, 19, 50, 30, 1, 21, 20, 14, 1, 35, 34, 46, 1, 53, 52, 62, 1, 2,111,
- 5, 2, 58,251,129, 6, 6, 2, 53, 16,254, 40, 3,183,254, 54, 14, 55, 37, 18, 16, 39, 18, 36, 14, 26, 15, 14, 27, 14, 14, 26,
- 15, 15, 26, 4, 40,251,225, 6, 6, 4, 7,110,252,170, 12, 6, 3, 72,138, 48,254, 76, 1,186, 42,253,231, 14, 25, 15, 15, 25,
- 14, 14, 25, 15, 15, 25, 14, 0, 0, 1, 0,136, 0, 8, 4, 73, 5, 34, 0, 19, 0, 0, 1, 51, 23, 21, 1, 20, 51, 4, 21, 23,
- 1, 39, 53, 0, 53, 52, 35, 36, 47, 1, 4, 42, 12, 19,253,220, 80, 1, 82, 7,252,198, 12, 2, 54,104,254,193, 14, 6, 5, 34,
- 19, 6,254, 38, 62, 73, 12, 62,253,170, 19, 6, 2, 12, 11, 62, 65, 15, 62, 0, 0, 1, 0,243, 0, 0, 3,223, 5,216, 0, 5,
- 0, 0, 1, 33, 19, 3, 33, 3, 1,174, 1,117,188,188,254,139,187, 5,216,254,137,251,159, 4, 97, 0, 0, 0, 0, 1, 0,222,
- 0, 0, 3,243, 4,193, 0, 19, 0, 0, 1, 22, 21, 20, 7, 3, 33, 3, 38, 53, 52, 55, 54, 39, 35, 53, 33, 23, 7, 22, 3, 43,
-200, 7,193,254,123,192, 8,200,104, 6, 95, 1,129, 1, 97, 1, 3,246, 54,145, 26, 29,253, 8, 2,248, 31, 27,142, 54, 21,109,
- 72, 72, 1,109, 0, 3, 0, 46, 1,114, 4,163, 3,243, 0, 90, 0,121, 0,153, 0, 0, 1, 39, 35, 34, 39, 38, 7, 6, 21, 20,
- 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51, 50, 31, 1, 22, 51, 50, 55, 54, 55,
- 54, 55, 54, 39, 38, 39, 38, 39, 38, 47, 1, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 50, 22, 23, 22, 23, 22, 21, 20,
- 7, 6, 7, 6, 7, 6, 23, 22, 31, 1, 33, 50, 23, 22, 23, 33, 23, 37, 22, 51, 50, 55, 54, 55, 54, 55, 54, 53, 52, 39, 38, 39,
- 38, 39, 38, 35, 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 30, 1, 19, 38, 35, 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22,
- 23, 22, 51, 50, 55, 54, 55, 54, 55, 54, 53, 52, 39, 38, 39, 38, 2,203,151, 80,122, 20, 30, 2, 1, 7, 9, 18, 16, 25, 20, 30,
- 25, 26, 25, 18, 15, 16, 13, 9, 9, 17, 17, 25, 20, 30, 24, 26, 44, 68, 64, 26, 9, 16, 13, 13, 2, 2, 3, 2, 9, 8, 16, 55,
- 59, 43, 26, 18, 20, 10, 14, 9, 9, 18, 19, 22, 25, 50, 51, 18, 22, 9, 13, 9, 6, 9, 12, 2, 4, 24, 29, 77, 57, 1, 22,163,
- 56, 71, 12,254, 41,149,253, 58, 14, 14, 17, 12, 14, 9, 12, 3, 4, 9, 7, 10, 13, 13, 17, 12, 14, 14, 15, 9, 9, 5, 4, 9,
- 7, 21,214, 13, 16, 20, 8, 15, 9, 12, 3, 4, 9, 7, 10, 11, 15, 15, 14, 17, 11, 15, 9, 11, 3, 5, 10, 7, 10, 8, 1,114,
-145, 4, 6, 10, 5, 17, 12, 16, 23, 17, 15, 9, 8, 10, 10, 18, 14, 26, 20, 27, 26, 20, 23, 16, 16, 9, 8, 10, 18, 27, 2, 3,
- 9, 11, 5, 5, 17, 16, 13, 14, 13, 48, 24, 17, 11, 17, 19, 21, 26, 21, 26, 20, 23, 17, 17, 7, 8, 21, 17, 21, 20, 25, 23, 24,
- 21, 17, 8, 12, 5, 9, 15, 19, 76, 58, 22, 29, 53,146, 85, 6, 4, 5, 7, 9, 12, 12, 12, 9, 17, 12, 9, 12, 5, 6, 4, 5,
- 7, 9, 12, 12, 12, 10, 16, 12, 20, 1,231, 7, 4, 5, 7, 11, 10, 12, 12, 11, 15, 12, 10, 9, 7, 6, 3, 5, 8, 10, 10, 12,
- 13, 10, 15, 13, 10, 7, 0, 0, 0, 3, 0, 46, 1, 92, 4,163, 4, 11, 0, 25, 0,114, 0,140, 0, 0, 18, 50, 54, 55, 54, 55,
- 54, 53, 52, 39, 38, 39, 46, 1, 34, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 1, 5, 6, 35, 34, 39, 37, 7, 14, 1, 21, 20,
- 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 59, 1, 50, 55, 62, 1, 55,
- 54, 52, 39, 46, 1, 39, 38, 43, 1, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 50, 23, 22, 23, 22, 23, 22, 21,
- 20, 7, 6, 21, 20, 22, 31, 1, 37, 54, 51, 50, 23, 36, 34, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 30, 1, 50, 54, 55, 54, 55,
- 54, 53, 52, 39, 38, 39, 38,172, 35, 28, 12, 13, 6, 6, 6, 6, 13, 12, 28, 35, 28, 12, 13, 6, 6, 6, 6, 13, 12, 2, 64, 1,
-210, 33, 82, 60,165,254,237, 79,113, 60, 8, 5, 11, 10, 21, 17, 30, 24, 59, 25, 25, 21, 20, 12, 10, 10, 11, 21, 16, 30, 25, 29,
- 51, 64, 77, 20, 28, 9, 9, 9, 9, 28, 20, 74, 67, 51, 29, 25, 30, 16, 21, 11, 10, 10, 12, 20, 21, 25, 25, 59, 24, 30, 17, 21,
- 10, 11, 5, 8, 60,113, 79, 1, 19,165, 60, 82, 33,252, 45, 35, 28, 12, 13, 6, 6, 6, 6, 13, 12, 28, 35, 28, 12, 13, 6, 6,
- 6, 6, 13, 12, 1,152, 10, 10, 11, 11, 12, 14, 14, 12, 11, 11, 9, 11, 11, 9, 11, 11, 12, 14, 14, 12, 11, 11, 10, 1, 18,190,
- 47, 65,110, 33, 47, 10, 10, 6, 17, 12, 19, 26, 23, 22, 19, 16, 12, 10, 10, 10, 18, 15, 26, 23, 26, 26, 23, 22, 19, 16, 12, 10,
- 25, 7, 20, 14, 16, 12, 15, 15, 19, 7, 25, 10, 12, 16, 19, 22, 23, 26, 26, 23, 26, 16, 17, 10, 10, 10, 12, 15, 20, 22, 23, 26,
- 19, 12, 16, 6, 11, 11, 46, 33,109, 66, 48, 95, 11, 9, 11, 11, 12, 14, 14, 12, 11, 10, 10, 11, 11, 10, 10, 11, 12, 14, 14, 12,
- 11, 11, 9, 0, 0, 3, 0, 58, 1, 63, 4,151, 3,178, 0, 89, 0,120, 0,151, 0, 0, 1, 51, 7, 33, 6, 7, 6, 35, 33, 7,
- 6, 7, 6, 21, 20, 23, 22, 23, 22, 21, 20, 7, 6, 7, 14, 1, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 63, 1, 54,
- 55, 54, 55, 54, 55, 54, 39, 38, 39, 38, 39, 38, 35, 34, 15, 1, 6, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 62, 1, 55, 54,
- 51, 50, 23, 22, 23, 22, 23, 22, 21, 20, 23, 22, 55, 54, 59, 1, 37, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 51, 50,
- 54, 55, 54, 55, 54, 53, 52, 39, 38, 39, 38, 39, 38, 35, 34, 19, 54, 55, 54, 55, 54, 53, 52, 39, 38, 39, 38, 39, 38, 35, 34, 6,
- 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 51, 50, 2,201,147,147, 1,205, 12, 69, 55,159,254,241, 57, 69, 34, 20, 14, 9,
- 6, 8, 12, 9, 21, 18, 50, 49, 24, 22, 19, 19, 7, 8, 13, 8, 21, 18, 25, 43, 57, 54, 15, 8, 9, 2, 3, 2, 2, 13, 7, 21,
- 5, 30, 62, 66, 43, 25, 24, 30, 19, 25, 16, 17, 9, 8, 12, 13, 35, 25, 25, 25, 29, 19, 25, 16, 17, 9, 6, 2, 4, 27, 17,122,
- 79,254,111, 15, 10, 6, 11, 9, 4, 5, 9, 7, 16, 12, 16, 14, 29, 10, 11, 7, 8, 4, 4, 10, 5, 19, 11, 16, 14,180, 15, 10,
- 6, 11, 9, 4, 5, 9, 10, 13, 12, 15, 15, 29, 10, 10, 7, 9, 4, 5, 9, 11, 13, 13, 14, 10, 3,178,142, 52, 28, 22, 57, 68,
- 24, 14, 11, 3, 13, 8, 16, 23, 24, 18, 27, 19, 20, 17, 20, 7, 7, 17, 18, 21, 23, 21, 18, 29, 19, 20, 17, 10, 17, 23, 47, 13,
- 13, 14, 15, 16, 6, 5, 10, 5, 7, 2, 27, 17, 10, 8, 9, 15, 16, 22, 22, 23, 24, 23, 22, 34, 10, 10, 8, 9, 15, 16, 22, 16,
- 12, 19, 3, 10, 7, 4, 58, 6, 9, 6, 16, 14, 11, 14, 10, 12, 8, 6, 6, 4, 12, 10, 9, 12, 15, 13, 11, 10, 12, 8, 7, 5,
- 4,254, 24, 6, 9, 5, 17, 13, 11, 15, 10, 11, 9, 8, 4, 3, 12, 9, 10, 12, 13, 12, 15, 9, 11, 9, 9, 3, 4, 0, 0, 0,
- 0, 9, 0, 61, 1, 74, 4,148, 4, 3, 0, 90, 0,120, 0,150, 0,180, 0,210, 0,254, 1, 45, 1, 52, 1, 72, 0, 0, 1, 54,
- 55, 38, 39, 38, 39, 38, 43, 1, 34, 39, 38, 39, 38, 39, 38, 52, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 21, 20,
- 7, 22, 31, 1, 55, 54, 51, 50, 23, 22, 21, 20, 7, 13, 1, 22, 21, 20, 7, 6, 35, 34, 47, 1, 7, 6, 7, 22, 21, 20, 7, 6,
- 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 59, 1, 50, 55, 54, 6, 50, 55, 54, 55, 54, 55,
- 54, 53, 52, 39, 38, 39, 38, 39, 38, 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 18, 50, 55, 54, 55, 54, 55, 54, 53,
- 52, 39, 38, 39, 38, 39, 38, 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 18, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55,
- 54, 55, 54, 55, 54, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 2, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55,
- 54, 55, 54, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 5, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 53, 52, 39, 38,
- 39, 38, 39, 38, 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 59, 1, 50, 23, 22, 23, 22, 23, 55, 54, 7, 45, 1,
- 38, 35, 34, 15, 1, 6, 7, 6, 7, 6, 7, 6, 43, 1, 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 50, 55, 54,
- 55, 54, 55, 54, 53, 52, 39, 38, 53, 52, 55, 54, 37, 23, 22, 51, 50, 55, 37, 38, 20, 7, 6, 7, 6, 34, 39, 38, 39, 38, 52, 55,
- 54, 55, 54, 50, 23, 22, 23, 1,157, 8, 5, 5, 8, 6, 17, 56, 63, 46, 31, 31, 25, 28, 23, 13, 13, 13, 11, 27, 19, 32, 29, 33,
- 32, 30, 29, 24, 27, 9, 13, 5, 33, 97, 61,240,155, 63, 94, 39, 6, 21,254,161, 1, 95, 21, 6, 41, 92, 63,155,240, 61, 97, 33,
- 5, 13, 13, 23, 25, 28, 33, 29, 35, 27, 28, 23, 29, 9, 13, 13, 11, 25, 19, 34, 29, 33, 46, 56, 63, 16,191, 20, 7, 8, 7, 6,
- 3, 2, 2, 3, 6, 7, 8, 7, 20, 7, 8, 7, 7, 2, 2, 2, 2, 7, 7, 8, 7, 20, 7, 8, 7, 6, 3, 2, 2, 3, 6, 7,
- 8, 7, 20, 7, 8, 7, 7, 2, 2, 2, 2, 7, 7, 8, 34, 34, 15, 14, 12, 13, 6, 6, 6, 6, 13, 12, 14, 15, 34, 15, 14, 12,
- 13, 6, 6, 6, 6, 13, 12, 14, 15, 34, 15, 14, 12, 13, 6, 6, 6, 6, 13, 12, 14, 15, 34, 15, 14, 12, 13, 6, 6, 6, 6, 13,
- 12, 14, 1, 12, 26,102, 27, 15, 8, 11, 8, 4, 9, 9, 18, 14, 26, 22, 50, 22, 22, 18, 17, 10, 9, 9, 9, 18, 14, 26, 22, 25,
- 46, 63, 69, 21, 12, 16, 5, 24, 19,130, 1, 83, 1,161, 29, 64, 54,149,252,102, 12, 12, 16, 14, 19, 71, 61, 46, 25, 22, 26, 14,
- 18, 9, 9, 9, 10, 17, 18, 22, 22, 50, 22, 26, 14, 18, 9, 9, 4, 8, 11, 9, 1, 21,197,149, 54, 64, 29,254,136,149, 3, 5,
- 6, 6, 15, 6, 6, 5, 3, 3, 5, 6, 6, 15, 6, 6, 5, 2,152, 6, 8, 10, 5, 4, 7, 22, 11, 9, 23, 19, 29, 26, 66, 26,
- 23, 27, 18, 12, 11, 11, 11, 21, 25, 23, 32, 27, 20, 13, 6, 41, 25, 95, 62, 57, 9, 12, 21, 8,143,142, 8, 26, 8, 8, 57, 62,
- 95, 25, 41, 7, 16, 16, 32, 27, 29, 20, 22, 9, 11, 11, 11, 19, 24, 25, 37, 23, 31, 28, 24, 24, 19, 13, 11, 22, 6,207, 2, 4,
- 5, 5, 5, 3, 5, 5, 3, 5, 5, 5, 3, 3, 3, 3, 6, 4, 5, 3, 5, 5, 4, 4, 5, 5, 4, 1,137, 3, 3, 6, 4, 5,
- 3, 5, 5, 4, 4, 5, 5, 4, 2, 2, 4, 5, 5, 5, 3, 5, 5, 3, 5, 5, 5, 3,254, 73, 5, 5, 10, 11, 12, 12, 15, 15,
- 12, 12, 11, 9, 6, 5, 5, 6, 9, 11, 12, 12, 15, 15, 12, 12, 11, 10, 5, 1,134, 5, 6, 9, 11, 12, 12, 15, 15, 12, 12, 11,
- 10, 5, 5, 5, 5, 10, 11, 12, 12, 15, 15, 12, 12, 11, 9, 6, 63, 10, 42, 5, 3, 4, 5, 10, 7, 16, 10, 16, 22, 20, 18, 17,
- 13, 12, 8, 8, 10, 15, 13, 22, 20, 22, 22, 20, 18, 17, 13, 11, 9, 23, 7, 9, 12, 6, 17, 12,186,133,170, 32, 59,100, 46, 21,
- 20, 11, 9, 7, 24, 8, 11, 13, 17, 19, 19, 22, 23, 19, 22, 13, 15, 10, 8, 8, 11, 13, 18, 18, 19, 23, 16, 9, 17, 7, 14, 1,
- 1, 63, 80, 60, 33,154, 30, 15, 6, 7, 4, 3, 3, 4, 7, 6, 15, 6, 6, 4, 4, 4, 4, 6, 0, 3, 0, 52, 0, 71, 4,157,
- 4,180, 0,110, 0,128, 0,146, 0, 0, 1, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 51, 50, 55, 54, 55, 54, 55, 54, 53, 52,
- 39, 38, 39, 38, 39, 38, 35, 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 21, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51,
- 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 34, 39, 46, 2, 53, 52, 55, 54, 55, 38, 53, 52, 55, 18, 51, 50,
- 23, 22, 21, 20, 7, 6, 35, 34, 7, 6, 7, 6, 21, 20, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 23, 54, 55, 54, 55, 54, 55, 22,
- 23, 22, 7, 6, 7, 6, 7, 6, 39, 38, 1, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 54, 55, 54, 53, 52, 1,122, 3, 1,
- 7, 7, 8, 14, 15, 17, 81,107,100, 89, 87, 71, 74, 35, 35, 35, 34, 75, 69, 89, 88,101, 97, 91, 87, 71, 74, 35, 35, 35, 21, 32,
- 78, 42, 41, 41, 39, 85, 79,103,103,113,113,104, 98, 84, 81, 43, 41, 41, 39, 85, 81,101,103,114,115,101, 30, 50, 26, 13, 10, 20,
- 2, 78,133,123, 59, 5, 11, 26, 25, 6, 40, 31, 22, 50, 46, 12, 13, 16, 25, 39, 28, 13, 12, 55, 17, 30, 36, 18, 17, 2, 33, 5,
- 13, 2, 7, 14, 20, 25, 27, 15, 20, 1, 47, 45, 16, 12, 15, 10, 22, 7, 21, 7, 42, 12, 21, 22, 1, 64, 4, 5, 17, 20, 21, 17,
- 19, 13, 14, 8, 37, 37, 36, 72, 73, 86, 87, 99,103, 87, 83, 77, 70, 38, 37, 37, 36, 72, 73, 87, 87,103, 98, 88, 49, 46,111, 80,
- 98,101,113,115,103, 96, 87, 80, 44, 43, 43, 41, 83, 81,102,100,118,111,103, 95, 87, 82, 42, 43, 43, 13, 48, 63, 35, 34, 32, 24,
- 23, 12, 11,150,174, 1, 36, 6, 14, 41, 42, 50, 47, 31, 22, 91, 84, 71, 23, 16, 20, 22, 6, 33, 51, 30, 20, 40, 9, 24, 31, 45,
- 41, 18, 28, 6, 15, 11, 35, 24, 37, 21, 23, 3, 5, 3, 3, 16, 12, 9, 36, 33, 39, 26, 28, 8, 7, 13, 40, 42, 48, 38, 0, 0,
- 0, 6, 0, 37, 0, 63, 4,172, 4,201, 0, 15, 0, 28, 0, 44, 0, 74, 0,105, 0,137, 0, 0, 1, 38, 39, 38, 39, 55, 6, 21,
- 20, 23, 22, 23, 22, 23, 22, 23, 19, 38, 39, 38, 34, 7, 6, 7, 19, 54, 51, 50, 23, 19, 23, 6, 7, 6, 7, 37, 54, 55, 54, 55,
- 54, 55, 54, 53, 52, 38, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54,
- 55, 54, 55, 19, 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 30, 1, 51, 50, 55, 54, 55, 54, 55, 54, 53, 52, 39, 38, 39, 38,
- 39, 38, 39, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54,
- 55, 54, 1, 36, 48, 24, 5, 3,223, 6, 14, 15, 26, 25, 36, 15, 6,182, 26, 34, 32, 78, 33, 33, 28, 53, 38, 41, 42, 38,102,224,
- 2, 7, 24, 48,254,238, 10, 11, 36, 24, 27, 15, 14,211, 47, 19, 21, 16, 16, 9, 8, 8, 9, 16, 16, 21, 19, 47, 19, 20, 17, 17,
- 8, 8, 8, 8, 17, 17, 20, 42,100, 93, 89, 74, 75, 36, 37, 37, 37, 74, 72,182,102,102, 92, 89, 74, 75, 36, 36, 36, 35, 76, 71,
- 92, 90,104,116,106,101, 86, 84, 44, 43, 43, 40, 88, 82,105,105,117,115,107,100, 86, 84, 44, 42, 42, 40, 88, 81,105,106, 1,110,
- 55, 60, 11, 12,189, 22, 26, 37, 34, 35, 27, 24, 16, 7, 1, 1, 59, 25, 15, 15, 15, 15, 25, 1, 34, 7, 7,254,136,189, 6, 17,
- 60, 55, 98, 4, 4, 16, 24, 27, 35, 34, 37, 25, 88, 8, 9, 15, 18, 19, 21, 23, 22, 21, 19, 17, 16, 9, 8, 8, 9, 16, 17, 19,
- 21, 22, 23, 21, 19, 18, 15, 9, 1,144, 38, 37, 74, 75, 89, 89,106,100, 91, 89, 74, 73, 77, 38, 37, 75, 74, 89, 89,102,106, 89,
- 85, 79, 72, 39, 38, 75, 44, 42, 86, 83,104,103,121,114,106, 98, 89, 84, 43, 45, 45, 42, 85, 83,104,103,117,118,106, 98, 89, 83,
- 45, 44, 0, 0, 0, 1, 0, 61, 0, 60, 4,148, 4, 91, 0, 45, 0, 0, 19, 53, 55, 39, 51, 23, 54, 55, 38, 3, 51, 23, 51, 21,
- 35, 23, 51, 21, 35, 23, 51, 50, 23, 22, 20, 7, 6, 43, 1, 7, 51, 21, 35, 7, 51, 21, 35, 7, 35, 18, 55, 38, 39, 7, 35, 55,
- 82, 27, 48, 75,110,109,215, 40,128, 92, 86,111, 64, 75,115, 70,114,198, 53, 36, 24, 24, 36, 53,198,114, 70,115, 75, 64,111, 86,
- 92,128, 40,215,109,110, 75, 48, 2, 61, 30, 3,164,151, 10, 7,208, 1, 15,113, 60, 97, 60,149, 19, 13, 33, 13, 19,149, 60, 97,
- 60,113, 1, 8,215, 8, 9,150,163, 0, 0, 0, 0, 5, 0, 63, 0,115, 4,146, 3,150, 0, 13, 0, 20, 0, 34, 0, 41, 0, 45,
- 0, 0, 1, 37, 33, 5, 54, 55, 54, 55, 54, 50, 23, 22, 23, 22, 23, 5, 17, 5, 22, 21, 20, 13, 1, 33, 37, 6, 7, 6, 7, 6,
- 34, 39, 38, 39, 38, 39, 37, 17, 37, 38, 53, 52, 1, 17, 33, 17, 2,223, 1, 79,252,117, 1, 79, 5, 6, 22, 28, 26, 63, 26, 33,
- 17, 6, 36, 1, 71,254,185, 2,254,243,254,176, 3,139,254,176, 5, 5, 22, 28, 26, 63, 26, 28, 22, 5, 38,254,186, 1, 70, 2,
-254,111, 4, 83, 2,100,229,229, 7, 6, 21, 13, 11, 11, 15, 19, 7,129,221, 1,241,221, 13, 14, 15, 81,229,229, 6, 6, 21, 12,
- 11, 11, 12, 21, 6,129,221,254, 15,220, 14, 15, 14,254, 96, 3, 35,252,221, 0, 0, 4, 1, 68, 0, 11, 3,141, 4,234, 0, 75,
- 0,198, 0,217, 0,233, 0, 0, 1, 52, 55, 54, 63, 1, 54, 55, 50, 59, 1, 38, 39, 38, 39, 38, 53, 52, 55, 54, 51, 50, 23, 22,
- 23, 22, 31, 1, 22, 23, 54, 55, 54, 55, 54, 55, 54, 53, 52, 39, 38, 55, 54, 51, 50, 23, 22, 23, 22, 15, 1, 6, 31, 1, 22, 21,
- 20, 7, 23, 20, 7, 6, 21, 20, 23, 33, 53, 52, 39, 38, 39, 38, 55, 54, 39, 38, 1, 38, 35, 34, 15, 1, 6, 15, 1, 6, 15, 1,
- 39, 38, 47, 1, 38, 39, 38, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 31, 2, 22, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 39, 38,
- 47, 1, 38, 39, 38, 35, 34, 7, 6, 7, 22, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 21, 20, 23, 22, 23, 22, 23, 22, 21, 20,
- 7, 38, 39, 38, 39, 38, 63, 1, 54, 39, 38, 39, 6, 35, 34, 39, 38, 39, 38, 35, 34, 23, 22, 23, 22, 31, 1, 22, 21, 7, 33, 39,
- 52, 55, 54, 47, 1, 54, 53, 52, 39, 38, 55, 19, 54, 39, 1, 7, 22, 23, 22, 23, 22, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38, 39,
- 38, 7, 6, 7, 22, 23, 22, 51, 50, 55, 54, 53, 52, 39, 38, 47, 1, 1, 68, 31, 18, 14, 43, 17, 31, 2, 2, 3, 21, 34, 25, 16,
- 28, 19, 22, 30, 13, 14, 40, 14, 60, 62, 31, 12, 12, 15, 5, 4, 9, 4, 10, 4, 1, 5, 30, 22, 33, 45, 24, 11, 1, 9, 2, 7,
- 1, 2, 2, 3, 1, 3, 17, 3, 1,254, 64, 4, 7, 31, 40, 1, 2, 24, 15, 2, 19, 3, 32, 28, 4, 4, 1, 8, 29, 4, 18, 44,
- 20, 8, 35, 14, 37, 62, 22, 16, 14, 11, 14, 7, 6, 24, 11, 15, 78,112, 78, 77, 3, 16, 4, 4, 18, 15, 4, 3, 38, 95, 42, 6,
- 35, 24, 16, 10, 5, 4, 3, 7, 40, 33, 10, 7, 38, 41, 17, 12, 1, 44, 19, 20, 44, 8, 2, 23,102, 38, 5, 6, 11, 1, 6, 2,
- 6, 6, 12, 23, 33, 11, 13, 19, 14, 40, 8, 3, 2, 8, 6, 3, 8, 75, 1, 1, 1, 95, 1, 10, 11, 1, 1, 2, 7, 5, 1, 9,
- 1, 2,254, 90, 14, 29, 48, 45, 14, 3, 1, 14, 8, 9, 3, 2, 10, 4, 5, 89,105, 12, 2, 68, 31, 12, 9, 13, 7, 3, 10, 6,
- 9, 99, 2,112, 45, 41, 5, 26, 76, 30, 9, 38,103, 75, 29, 49, 30, 22, 23, 26, 4, 10, 21, 91,154, 78, 30, 17, 14, 51, 36, 26,
- 13,110, 47, 5, 9, 9, 34, 33, 24, 48, 21, 15,123, 73,246, 23, 34, 18, 29, 72, 30, 35,102, 24,109, 15,116, 50, 62,149, 15, 27,
- 44, 55, 72, 31, 66, 73, 46, 2, 59, 47, 56, 91, 24, 44,160, 23, 5, 13, 9, 11, 81, 31, 91,122, 41, 12, 10, 9, 5, 9, 25, 46,
- 22, 41,209, 83, 57, 76, 10, 7, 15, 3, 1, 16, 5, 6, 42, 69, 31, 3, 25, 18, 8, 6, 9, 18, 32, 26, 15, 9, 39, 43, 40, 29,
- 52, 37, 26, 2, 40, 52, 23, 13, 32, 14, 5, 4, 13, 7, 42, 88, 13, 8, 19, 18, 62, 12, 9, 9, 4, 21, 3, 4, 10, 55, 3, 28,
- 65, 41, 18,175, 8, 9,130,150, 48, 39, 45, 53, 55, 48, 43, 73, 59, 45, 37, 1, 10, 14, 42,254,167, 17, 35, 37, 40, 48, 10, 10,
- 14, 13, 7, 8, 17, 19, 7, 4, 93, 15, 16, 39, 53, 46, 7, 14, 9, 8, 15, 14, 9, 4, 85, 0, 0, 8, 0, 45, 0,149, 4,164,
- 3,252, 0, 6, 0, 57, 0, 76, 0,112, 0,123, 0,127, 0,137, 0,141, 0, 0, 19, 22, 55, 54, 53, 52, 39, 5, 34, 39, 38, 35,
- 34, 7, 6, 43, 1, 34, 39, 15, 1, 55, 38, 53, 52, 63, 1, 54, 55, 54, 55, 54, 55, 54, 51, 50, 23, 55, 54, 51, 50, 23, 22, 21,
- 7, 23, 22, 51, 50, 55, 51, 22, 21, 20, 7, 35, 53, 6, 37, 54, 55, 54, 55, 19, 39, 38, 35, 34, 7, 6, 15, 1, 22, 21, 20, 7,
- 54, 37, 34, 47, 1, 7, 20, 7, 54, 55, 22, 21, 20, 7, 6, 35, 34, 7, 22, 21, 20, 7, 50, 55, 54, 51, 50, 23, 22, 51, 50, 55,
- 54, 53, 52, 39, 6, 55, 22, 21, 20, 7, 21, 51, 54, 53, 52, 39, 5, 54, 55, 15, 1, 6, 21, 20, 23, 22, 23, 54, 53, 52, 15, 1,
- 55, 38,169, 19, 15, 11, 12, 2,116, 33, 77, 35, 20, 27,108, 53, 23, 71, 59, 26, 64,188, 92, 5, 10, 50, 20, 18, 66, 88, 45, 48,
- 25, 25, 37, 45,109, 32, 42, 27, 21, 9,135,145, 32, 28, 39, 4,161, 63, 44,177, 78,253,171, 24, 21, 6, 3,239, 26, 12, 22, 63,
-168, 39, 24, 14, 33, 31, 28, 2,159, 38, 17,173, 82, 59, 45, 62, 11, 26, 60, 92, 45, 17, 24, 14, 82, 53, 45, 54, 28, 69, 33, 34,
- 36, 98, 31, 36, 18, 54, 36, 33,113, 34, 44,253,162, 59, 10,116, 64, 80, 34, 22, 31, 16,251, 35, 67, 5, 1,127, 2, 28, 22, 22,
- 22, 12,223, 10, 3, 11, 6, 42, 70, 83,192, 13, 23, 18, 34,165, 68, 24, 88, 64, 33, 19, 9, 37,122, 36, 40, 18, 21,156, 96, 21,
- 21, 93,129,148,106, 77, 26,166, 26, 80, 20, 11, 1, 10, 21, 10,166, 38, 79, 47, 43, 28, 64, 25, 6,252, 12,112, 95,117, 60, 2,
- 30, 10, 15, 13, 11, 28, 1, 28, 51, 30, 32, 9, 8, 9, 4, 26, 68, 77, 75, 90, 5, 21, 82,100, 89, 76, 54, 68,149, 95, 89,171,
- 66, 73,139, 53, 19, 46, 33, 22, 14, 2, 33, 39, 39,107, 71, 28, 26, 0, 0, 0, 0, 7, 0, 87, 0,132, 4,122, 4,166, 0, 21,
- 0, 27, 0, 34, 0, 41, 0, 51, 0, 83, 0, 90, 0, 0, 1, 54, 55, 54, 53, 52, 47, 1, 6, 35, 20, 7, 6, 35, 20, 7, 23, 22,
- 51, 50, 55, 54, 1, 63, 1, 15, 2, 19, 55, 1, 19, 37, 1, 55, 5, 1, 22, 53, 52, 39, 1, 0, 54, 53, 52, 39, 1, 7, 1, 22,
- 51, 1, 54, 55, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 53, 52, 55, 54, 55,
- 54, 23, 7, 1, 22, 51, 50, 39, 3,242, 7, 4, 5, 1, 48, 19, 24, 44, 44, 59, 18,192, 7, 6, 8, 12, 9,253, 40,124, 11,119,
-124, 11,107,215, 2, 6,149,253,228,253,251, 14, 1,105, 1,171, 53, 2,254, 46, 1, 85, 44, 5,254, 92, 92, 1,164, 14, 12,253,
-234, 10, 13, 12, 13, 11, 8, 11, 8, 6, 4, 5, 7, 8, 12, 11, 12, 12, 13, 12, 7, 11, 8, 5, 3, 4, 8, 8, 37,103, 1,210,
- 9, 8, 46, 1, 1, 11, 6, 10, 13, 8, 4, 7,193, 18, 59, 44, 45, 22, 20, 48, 1, 5, 4, 2,106,123,119, 11,123,119, 1, 51,
- 15,253,251,253,228,150, 2, 4,216, 17,254, 86, 1, 46, 8, 10, 1,210,253, 84, 44, 27, 12, 14, 1,165, 92,254, 91, 5, 2, 94,
- 11, 9, 8, 4, 3, 6, 7, 11, 8, 11, 13, 12, 14, 10, 12, 8, 8, 4, 3, 6, 5, 13, 9, 11, 13, 11, 13,198, 11,254, 45, 1,
- 53, 0, 0, 0, 0, 7, 0, 38, 0,224, 4,171, 2,196, 0, 19, 0, 25, 0, 32, 0, 39, 0, 45, 0, 69, 0, 76, 0, 0, 0, 52,
- 39, 38, 39, 38, 47, 1, 20, 7, 22, 20, 7, 22, 21, 55, 54, 55, 54, 55, 5, 53, 39, 7, 21, 23, 3, 55, 33, 13, 1, 33, 39, 55,
- 33, 54, 53, 52, 39, 33, 4, 52, 39, 33, 21, 33, 36, 52, 55, 54, 55, 62, 1, 50, 22, 23, 22, 23, 22, 20, 7, 6, 7, 14, 1, 34,
- 38, 39, 38, 39, 23, 7, 33, 54, 53, 52, 39, 4, 3, 3, 2, 5, 3, 8,149, 15, 36, 36, 15,149, 8, 3, 5, 2,252,230, 67, 67,
- 67,124,124, 2, 93, 1,170,254, 86,253,163,124,234, 1,236, 18, 25,253,226, 2, 86, 35,254, 27, 1,229,253,117, 3, 2, 5, 5,
- 13, 14, 13, 5, 6, 2, 3, 3, 2, 6, 5, 13, 14, 13, 5, 5, 2,142, 57, 2, 30, 25, 18, 1,202, 17, 8, 7, 6, 5, 4, 90,
- 23, 15, 40,102, 40, 14, 23, 89, 4, 5, 7, 7, 60,153, 80, 80,153, 80, 1, 0,142,242,241,142,213, 18, 16, 19, 18,225, 80, 17,
-114, 43, 28, 13, 12, 11, 10, 11, 11, 10, 11, 12, 13, 28, 13, 12, 10, 10, 12, 12, 10, 10, 12, 86, 72, 18, 20, 16, 18, 0, 0, 0,
- 0, 7, 0, 87, 0,187, 4,122, 4,221, 0, 21, 0, 27, 0, 34, 0, 41, 0, 51, 0, 83, 0, 90, 0, 0, 1, 38, 39, 38, 35, 34,
- 15, 1, 22, 21, 50, 23, 22, 21, 50, 23, 55, 54, 53, 52, 39, 38, 1, 39, 31, 2, 39, 7, 47, 1, 1, 37, 3, 1, 39, 23, 1, 54,
- 53, 52, 7, 46, 1, 35, 34, 7, 1, 23, 1, 54, 53, 1, 38, 39, 38, 39, 38, 53, 52, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 23,
- 22, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 39, 38, 55, 1, 54, 35, 34, 7, 1, 3,242, 7, 9, 12, 8, 6, 7,192, 18, 59, 44,
- 44, 24, 19, 48, 1, 5, 4,253, 26,119, 11,124,119, 11,136,161, 14, 2, 5, 2, 28,149,253,250, 15, 12, 1,210, 2, 53, 30, 44,
- 27, 12, 14,254, 92, 92, 1,164, 5,253,163, 12, 8, 8, 4, 3, 5, 8, 11, 7, 12, 13, 12, 12, 11, 12, 8, 7, 5, 4, 6, 8,
- 11, 8, 11, 13, 12, 13, 15, 1,169, 1, 46, 8, 9,254, 46, 4, 86, 7, 5, 4, 1, 48, 20, 22, 45, 44, 58, 19,193, 7, 4, 8,
- 13, 10,253,163, 11,119,123, 11,119,173,160,216, 2, 5,149,253,229,253,250,192,104, 1,211, 10, 8, 46, 1,111, 44, 5,254, 91,
- 92, 1,165, 14, 12,253,232, 12, 13, 11, 13, 11, 9, 13, 5, 6, 3, 4, 8, 8, 12, 10, 14, 12, 13, 11, 8, 11, 7, 6, 3, 4,
- 8, 9,220, 1,170, 54, 2,254, 46, 0, 0, 0, 0, 2, 0, 59, 1, 43, 4,150, 3, 93, 0, 35, 0, 67, 0, 0, 18, 52, 39, 22,
- 37, 5, 21, 37, 46, 1, 39, 38, 34, 7, 6, 7, 6, 7, 6, 20, 23, 22, 23, 22, 23, 22, 50, 55, 62, 1, 55, 37, 21, 5, 36, 7,
- 54, 20, 7, 54, 5, 37, 5, 6, 7, 6, 34, 39, 38, 39, 38, 39, 38, 52, 55, 54, 55, 54, 55, 54, 50, 23, 22, 23, 5, 37, 4, 39,
- 98, 38,224, 1,162, 1,215,254, 73, 4, 11, 13, 10, 23, 10, 11, 8, 8, 4, 5, 5, 6, 6, 8, 11, 10, 23, 10, 13, 11, 4, 1,
-183,254, 41,254, 94,224,116, 17,131, 1,156, 1, 78,254,241, 17, 20, 20, 47, 20, 21, 16, 17, 9, 8, 8, 9, 17, 16, 21, 20, 47,
- 20, 20, 17, 1, 15,254,178,254,100,131, 1,201,247, 73, 3, 87,210, 63, 21, 6, 12, 7, 4, 4, 5, 8, 6, 13, 10, 24, 10, 14,
- 5, 8, 4, 5, 5, 6, 12, 6, 22, 64,209, 86, 2,249,105, 68, 2, 86,141, 18, 16, 9, 9, 9, 9, 16, 17, 20, 21, 47, 20, 20,
- 18, 16, 9, 8, 8, 9, 16, 19,141, 86, 3, 0, 0, 1, 0, 37, 1, 17, 4,172, 3, 27, 0, 38, 0, 0, 1, 37, 21, 5, 36, 7,
- 54, 52, 39, 22, 37, 5, 21, 37, 38, 39, 38, 39, 38, 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 50, 55, 54, 55,
- 54, 2,232, 1,196,254, 4,254, 64,203, 41, 41,203, 1,192, 1,252,254, 60, 5, 13, 11, 15, 14, 34, 14, 15, 11, 13, 5, 7, 7,
- 5, 13, 11, 15, 14, 34, 14, 15, 11, 13, 1,247, 23, 27,226, 93, 2, 78,184, 79, 3, 93,226, 27, 24, 14, 12, 12, 6, 7, 7, 6,
- 12, 12, 14, 15, 17, 16, 15, 14, 12, 12, 6, 7, 7, 6, 12, 12, 0, 1, 0,152, 0,192, 4, 57, 4,124, 0, 28, 0, 0, 1, 50,
- 23, 22, 51, 50, 55, 18, 55, 54, 51, 50, 22, 21, 20, 7, 0, 1, 6, 35, 34, 39, 38, 39, 38, 53, 52, 55, 54, 1, 24, 34, 18, 35,
- 15, 12, 12,245,210, 54,118, 28, 19, 29,254,174,254,224, 20, 62, 63, 12, 30, 40, 45, 61, 37, 2, 80, 56,106, 18, 1,138,243, 63,
- 10, 8, 13, 35,254,106,254, 60, 32, 6, 13,121,134, 34, 36, 34, 22, 0, 0, 0, 0, 1, 0, 74, 0,114, 4,135, 4, 66, 0, 29,
- 0, 0, 1, 50, 23, 22, 51, 50, 55, 18, 55, 54, 51, 50, 23, 22, 21, 20, 7, 0, 7, 6, 35, 34, 39, 38, 39, 38, 53, 52, 55, 54,
- 1, 7, 34, 18, 34, 15, 12, 12,246,209, 89, 84,111, 22, 10, 20,253,205,107, 37,133, 44, 48, 20, 50, 63, 61, 86, 2,142, 56,106,
- 18, 1,105,153, 65, 7, 2, 20, 15, 24,253,123,195, 67, 23, 11,123,156,117, 43, 28, 39, 0, 0, 0, 1, 0,129, 0,113, 4, 80,
- 4, 63, 0, 11, 0, 0, 9, 1, 7, 9, 1, 39, 9, 1, 55, 9, 1, 23, 2,219, 1,115,115,254,141,254,141,115, 1,115,254,141,
-115, 1,115, 1,116,115, 2, 88,254,140,114, 1,115,254,141,114, 1,116, 1,115,115,254,141, 1,115,114, 0, 0, 0, 1, 0, 64,
- 0,188, 4, 81, 4,207, 0, 11, 0, 0, 9, 1, 7, 9, 1, 39, 9, 1, 55, 9, 1, 23, 3, 53, 1, 28,237,254,228,254,229,237,
- 1, 28,254,228,237, 1, 27, 1, 28,237, 2,197,254,229,237, 1, 27,254,229,237, 1, 27, 1, 27,237,254,229, 1, 28,237, 0, 0,
- 0, 1, 0,131,255,236, 4, 78, 4,190, 0, 66, 0, 0, 1, 50, 23, 22, 23, 54, 51, 50, 23, 22, 21, 20, 7, 6, 7, 22, 23, 22,
- 21, 20, 15, 1, 22, 21, 20, 7, 6, 35, 34, 39, 38, 39, 6, 3, 6, 35, 34, 39, 38, 53, 52, 55, 54, 55, 18, 55, 38, 39, 38, 53,
- 52, 55, 54, 51, 50, 23, 54, 55, 54, 51, 50, 23, 22, 23, 54, 55, 54, 3,201, 8, 13, 14, 14, 24, 14, 12, 21, 13, 18,169,159, 66,
-116, 10, 25, 26, 3, 17, 22, 9, 21, 17, 97,104,140,180, 26, 62, 29, 4, 41, 9, 4, 22,166,185, 99, 33, 7, 15, 15, 13, 12, 19,
- 7, 11, 14, 23, 26, 8, 44, 72,115,166, 19, 4,190, 13, 13, 22, 42, 22, 14, 17, 22, 19,183,220,161,194, 17, 9, 19, 20, 18, 10,
- 16, 25, 13, 14, 21,125,169,182,254,208, 44, 34, 23, 50, 65, 25, 11, 34, 1, 3,216,236,127, 28, 9, 11, 21, 21, 23, 14, 9, 13,
- 24,137,123,149,166, 20, 0, 0, 0, 1, 0, 51,255,253, 4,158, 5, 43, 0, 81, 0, 0, 1, 50, 23, 22, 23, 54, 23, 22, 23, 22,
- 21, 20, 7, 6, 3, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 34, 39, 6, 7, 6, 35, 34, 39, 38, 39, 6, 7, 6, 35, 6,
- 39, 38, 39, 6, 35, 34, 39, 38, 53, 52, 55, 38, 39, 38, 53, 52, 55, 54, 55, 38, 39, 38, 53, 52, 55, 54, 51, 50, 23, 54, 55, 54,
- 51, 50, 23, 22, 23, 54, 55, 54, 4, 0, 26, 23, 18, 7, 22, 9, 28, 13, 12, 14,211,206,130,129, 15, 26, 18, 32, 2, 12, 21, 28,
- 32, 26, 7, 12, 31, 24, 20, 23, 78,106,201, 77, 15, 18, 17, 16, 13, 2, 17, 16, 22, 25, 32, 27, 8, 8, 16, 21,114,172,107, 87,
- 19, 20, 14, 19, 23, 42, 1, 10, 20, 14, 38, 12, 92,132,202,218, 10, 5, 42, 26, 19, 51, 1, 5, 10, 12, 12, 18, 35, 14,192,254,
-239,179,142, 15, 22, 42, 23, 15, 2, 15, 30, 51, 21, 16, 9, 24, 24, 84,167,229,118, 22, 2, 33, 27, 12, 11, 26, 31, 15, 23, 40,
- 2, 12, 21, 21, 18, 27,154,186,165,234, 53, 25, 22, 43, 28, 34, 12, 22, 44, 23,171,163,231,191, 10, 0, 0, 0, 0, 3, 0, 64,
- 0, 5, 4,145, 4, 86, 0, 11, 0, 23, 0, 35, 0, 0, 1, 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, 17, 37, 33, 17, 33, 17, 33,
- 17, 33, 17, 33, 17, 33, 3, 33, 21, 33, 17, 35, 17, 33, 53, 33, 17, 51, 3, 11,254,187,254,197, 1, 59, 1, 69, 1, 59,255, 0,
- 1, 74,254,182,254, 69,254,182, 1, 74, 1,187,148, 1, 74,254,182,147,254,182, 1, 74,147, 2,208, 1, 60,254,196,254,187,254,
-197, 1, 59, 1, 69, 59,254, 69,254,182, 1, 74, 1,187, 1, 75,254, 33,148,254,183, 1, 73,148, 1, 75, 0, 0, 0, 1, 0, 86,
- 0, 7, 4,123, 4, 6, 0, 11, 0, 0, 1, 33, 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, 2,247, 1,132,254,124,254,227,254,124,
- 1,132, 1, 29, 2,143,254,238,254,139, 1,117, 1, 18, 1,118, 0, 2, 0, 57, 0, 6, 4,152, 4,102, 0, 11, 0, 15, 0, 0,
- 1, 33, 21, 33, 17, 35, 17, 33, 53, 33, 17, 51, 3, 51, 53, 35, 2,194, 1,214,254, 42,180,254, 43, 1,213,180,179,178,178, 2,
-144,180,254, 42, 1,214,180, 1,214,253,119,178, 0, 2, 0, 48, 0, 0, 4,161, 4,114, 0, 3, 0, 15, 0, 0, 1, 33, 17, 33,
- 37, 33, 17, 33, 17, 33, 17, 33, 17, 33, 17, 33, 1,209, 1, 47,254,209, 1, 48, 1,160,254, 96,254,207,254, 96, 1,160, 1, 49,
- 1,161, 1, 47, 1,254,207,254, 96, 1,160, 1, 49, 1,160, 0, 0, 1, 0,155, 0, 3, 4, 41, 5, 30, 0, 11, 0, 0, 1, 33,
- 21, 33, 17, 35, 17, 33, 53, 33, 17, 51, 2,203, 1, 94,254,162,210,254,162, 1, 94,210, 3,192,210,253, 22, 2,234,210, 1, 94,
- 0, 2, 0,126, 0, 1, 4, 83, 5, 28, 0, 15, 0, 27, 0, 0, 1, 51, 23, 17, 33, 17, 33, 39, 17, 35, 39, 17, 33, 17, 33, 23,
- 7, 17, 35, 17, 33, 21, 33, 17, 51, 17, 33, 53, 3, 76,131,131,254,250,254,188,131,131,132, 1, 7, 1, 68,131,175,193,254,250,
- 1, 6,193, 1, 7, 4, 21,131,254,188,253,179,131, 1,202,131, 1, 68, 1, 7,132,218, 1, 6,254,250,193,253,179, 2, 77,193,
- 0, 3, 0,144, 0, 4, 4, 65, 4,194, 0, 11, 0, 23, 0, 35, 0, 0, 1, 53, 33, 21, 35, 17, 51, 17, 33, 17, 51, 17, 39, 51,
- 17, 35, 17, 33, 17, 35, 17, 51, 53, 33, 3, 51, 21, 35, 17, 35, 17, 35, 53, 51, 53, 51, 3, 6,254,197,245,245, 1, 59,245,175,
-245,245,254, 57,245,245, 1,199,140,245,245,175,245,245,175, 3,157,227,227,254,203,253,221, 2, 35, 1, 53, 65,254, 73,253,221,
- 2, 35, 1,183,228,254,154,179,253,221, 2, 35,179,228, 0, 0, 0, 1, 0, 48, 0, 3, 4,161, 4,118, 0, 81, 0, 0, 1, 35,
- 34, 7, 6, 7, 6, 7, 6, 21, 35, 17, 51, 20, 23, 22, 23, 22, 23, 22, 59, 1, 53, 52, 39, 38, 39, 38, 39, 38, 35, 53, 33, 21,
- 34, 7, 6, 7, 14, 1, 29, 1, 51, 50, 55, 54, 55, 54, 55, 54, 53, 51, 17, 35, 52, 39, 38, 39, 38, 39, 38, 43, 1, 21, 20, 23,
- 22, 23, 22, 23, 22, 51, 21, 33, 53, 50, 55, 54, 55, 62, 1, 53, 2, 47, 93, 76, 69, 68, 55, 51, 33, 28, 38, 38, 28, 31, 53, 52,
- 71, 66, 79, 93, 28, 30, 54, 51, 72, 62, 83, 3,107, 83, 62, 72, 51, 56, 56, 93, 79, 66, 71, 52, 53, 31, 28, 38, 38, 28, 33, 51,
- 53, 70, 69, 76, 93, 28, 30, 54, 51, 72, 62, 83,252,149, 83, 62, 72, 51, 56, 56, 2, 4, 29, 28, 56, 50, 73, 60, 85, 3,106, 84,
- 60, 70, 54, 54, 30, 27, 93, 76, 69, 70, 54, 50, 33, 28, 38, 38, 28, 33, 50, 56,137, 76, 93, 27, 30, 54, 54, 70, 60, 84,252,150,
- 85, 60, 73, 50, 55, 29, 29, 94, 76, 69, 70, 54, 50, 33, 28, 38, 38, 28, 33, 50, 56,137, 76, 0, 0, 8, 0, 71, 0, 2, 4,138,
- 4,238, 0, 11, 0, 17, 0, 20, 0, 23, 0, 26, 0, 29, 0, 32, 0, 35, 0, 0, 1, 19, 33, 3, 19, 33, 11, 1, 33, 19, 3, 33,
- 23, 7, 23, 33, 55, 47, 1, 7, 51, 31, 1, 55, 3, 7, 51, 5, 35, 23, 47, 1, 7, 19, 55, 35, 2,104,182, 1,108,182,182,254,
-148,182,182,254,149,182,182, 1,107, 48,135,135, 1, 13,135,135,135, 87,175,141, 88, 88, 88, 88,176,254,195,175, 87,228, 88, 88,
- 88, 88,176, 4,238,254,196,254,198,254,197,254,197, 1, 59, 1, 59, 1, 58, 81,233,234,234,233,233,152, 81,152,152,254,198,153,
- 81,152,233,153,153, 1, 59,152, 0, 1, 0, 31,255,236, 4,178, 4,127, 0, 67, 0, 0, 1, 53, 52, 39, 38, 53, 52, 55, 54, 50,
- 23, 22, 21, 20, 7, 6, 29, 1, 51, 50, 55, 54, 51, 50, 23, 22, 20, 7, 6, 35, 34, 39, 38, 43, 1, 21, 20, 23, 22, 21, 20, 7,
- 6, 34, 39, 38, 53, 52, 55, 54, 61, 1, 35, 34, 7, 6, 35, 34, 39, 38, 52, 55, 54, 51, 50, 23, 22, 51, 2, 67, 58, 33, 41, 42,
- 91, 42, 41, 33, 58, 24,141, 92, 53, 89, 76, 36, 36, 36, 36, 76, 89, 53, 92,141, 24, 58, 33, 41, 42, 91, 42, 41, 33, 58, 24,141,
- 92, 53, 89, 76, 36, 36, 36, 36, 76, 89, 53, 92,141, 2, 91, 24,141, 92, 53, 89, 76, 36, 36, 36, 36, 76, 89, 53, 92,141, 24, 58,
- 33, 41, 42, 91, 42, 41, 33, 58, 25,141, 91, 53, 89, 76, 36, 37, 37, 36, 76, 89, 53, 91,141, 25, 58, 33, 41, 42, 91, 42, 41, 33,
- 58, 0, 0, 0, 0, 1, 0, 28,255,239, 4,181, 4,137, 0,131, 0, 0, 1, 38, 39, 35, 6, 7, 6, 7, 14, 1, 35, 34, 38, 39,
- 38, 39, 38, 52, 55, 54, 55, 62, 1, 51, 50, 22, 23, 22, 23, 22, 23, 51, 54, 55, 54, 55, 53, 38, 39, 38, 39, 46, 1, 53, 52, 54,
- 55, 54, 55, 54, 50, 23, 22, 23, 30, 1, 21, 20, 6, 7, 6, 7, 6, 7, 21, 22, 23, 22, 23, 51, 54, 55, 54, 55, 62, 1, 51, 50,
- 22, 23, 22, 23, 22, 20, 7, 6, 7, 14, 1, 35, 34, 38, 39, 38, 39, 38, 39, 35, 6, 7, 6, 7, 21, 22, 23, 22, 23, 30, 1, 21,
- 20, 6, 7, 6, 7, 6, 34, 39, 38, 39, 46, 1, 53, 52, 54, 55, 54, 55, 54, 55, 53, 38, 2, 37, 12, 7,162, 1, 8, 15, 22, 25,
- 62, 35, 34, 63, 24, 24, 14, 13, 13, 14, 24, 24, 63, 34, 35, 62, 25, 26, 11, 7, 2,162, 7, 12, 13, 16, 12, 15, 32, 23, 25, 26,
- 26, 25, 25, 30, 30, 71, 30, 30, 25, 25, 26, 26, 25, 27, 28, 18, 9, 16, 13, 12, 7,162, 2, 7, 11, 26, 25, 62, 35, 34, 63, 24,
- 24, 14, 13, 13, 14, 24, 24, 63, 34, 35, 62, 25, 22, 15, 8, 1,162, 7, 12, 13, 16, 9, 18, 28, 27, 25, 26, 26, 25, 25, 30, 30,
- 71, 30, 30, 25, 25, 26, 26, 25, 23, 32, 15, 12, 16, 1,249, 13, 16, 12, 16, 32, 22, 26, 25, 25, 26, 24, 30, 31, 70, 30, 31, 24,
- 25, 26, 26, 25, 26, 29, 17, 10, 16, 13, 12, 8,162, 2, 7, 15, 22, 25, 62, 35, 35, 62, 24, 24, 14, 13, 13, 14, 24, 24, 62, 35,
- 35, 62, 25, 25, 12, 7, 2,162, 8, 12, 13, 16, 10, 17, 29, 26, 25, 26, 26, 25, 24, 31, 30, 70, 31, 30, 24, 26, 25, 25, 26, 22,
- 32, 16, 12, 16, 13, 12, 8,161, 3, 7, 11, 26, 24, 63, 35, 34, 62, 25, 23, 14, 13, 13, 14, 23, 25, 62, 34, 35, 63, 24, 22, 15,
- 8, 2,161, 8, 0, 1, 0, 26,255,237, 4,183, 4,138, 0,155, 0, 0, 1, 52, 39, 38, 39, 38, 39, 38, 39, 46, 1, 53, 52, 55,
- 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 21, 50, 55, 54, 55, 54, 55,
- 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 20, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 39, 38, 39, 38,
- 35, 20, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55,
- 54, 55, 54, 55, 54, 55, 54, 53, 34, 7, 6, 7, 6, 7, 6, 7, 14, 1, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54,
- 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 23, 22, 23, 22, 2, 66, 15, 18, 28, 10, 12, 19, 7, 31, 30, 15, 17, 29, 24, 44, 35, 44,
- 43, 37, 41, 27, 29, 17, 15, 15, 17, 29, 7, 20, 6, 15, 32, 14, 15, 51, 33, 44, 25, 10, 9, 14, 8, 30, 38, 38, 42, 45, 35, 39,
- 29, 28, 18, 16, 16, 18, 28, 29, 39, 35, 45, 42, 38, 38, 30, 8, 14, 9, 10, 31, 38, 36, 48, 15, 20, 26, 9, 13, 19, 7, 30, 16,
- 15, 15, 17, 29, 27, 41, 36, 87, 36, 41, 27, 29, 17, 15, 15, 16, 30, 7, 19, 13, 9, 30, 16, 15, 48, 36, 39, 30, 10, 9, 14, 8,
- 29, 76, 43, 44, 36, 38, 29, 26, 20, 17, 17, 18, 28, 29, 38, 36, 44, 47, 34, 38, 29, 8, 14, 4, 15, 31, 38, 36, 2, 98, 51, 34,
- 41, 26, 11, 9, 14, 7, 29, 77, 42, 44, 37, 38, 29, 24, 22, 16, 16, 19, 27, 29, 38, 37, 44, 46, 34, 39, 29, 7, 14, 4, 16, 30,
- 37, 37, 48, 15, 21, 25, 10, 12, 19, 8, 29, 16, 16, 16, 16, 29, 28, 41, 36, 87, 35, 41, 28, 29, 17, 15, 15, 16, 30, 8, 19, 12,
- 10, 30, 16, 15, 52, 33, 44, 25, 10, 9, 14, 7, 30, 38, 38, 43, 44, 36, 39, 29, 27, 18, 16, 16, 18, 27, 29, 39, 36, 44, 43, 38,
- 38, 30, 7, 14, 9, 10, 31, 38, 36, 49, 15, 16, 30, 11, 12, 18, 8, 30, 31, 15, 17, 29, 25, 44, 35, 44, 43, 36, 41, 28, 29, 16,
- 16, 16, 16, 29, 8, 20, 6, 15, 31, 15, 15, 0, 0, 1, 0, 23,255,229, 4,186, 4,136, 1, 48, 0, 0, 1, 50, 23, 22, 23, 22,
- 23, 22, 21, 20, 7, 6, 7, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 14, 1, 7, 6, 35, 34, 39, 38, 39, 38, 39,
- 21, 51, 38, 39, 38, 39, 38, 53, 52, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 54, 55, 54, 51, 50,
- 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 22, 23, 22, 21, 20, 6, 7, 6, 7, 6, 35, 34, 39,
- 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 35, 21, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7,
- 6, 7, 6, 35, 34, 39, 38, 39, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 6,
- 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51, 50, 22, 23, 22, 23, 53, 35, 22, 23, 22, 23, 22, 21,
- 20, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 52,
- 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 21, 20,
- 7, 6, 7, 6, 7, 51, 53, 6, 7, 6, 7, 6, 35, 34, 39, 46, 1, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23,
- 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 2,104, 23, 18, 21, 14, 15, 8, 8, 8, 8, 15, 8, 15, 19, 22, 23, 18, 20, 15, 15,
- 8, 8, 8, 8, 31, 19, 19, 22, 23, 18, 19, 15, 11, 8,226, 13, 11, 15, 8, 9, 17, 15, 15, 20, 19, 22, 22, 19, 20, 15, 15, 8,
- 9, 9, 6, 7, 15, 20, 19, 21, 25, 17, 19, 16, 14, 9, 8, 8, 9, 14, 17, 18, 20, 22, 21, 19, 20, 15, 7, 6, 9, 17, 15, 13,
- 22, 19, 22, 19, 22, 20, 15, 15, 8, 9, 9, 8, 15, 11, 13,225, 7, 11, 13, 22, 18, 23, 22, 18, 20, 15, 15, 8, 8, 8, 8, 15,
- 14, 21, 17, 23, 20, 21, 15, 9, 15, 8, 9, 9, 8, 15, 14, 21, 18, 45, 18, 21, 14, 15, 8, 9, 9, 8, 15, 9, 15, 18, 23, 23,
- 17, 21, 14, 15, 8, 8, 8, 8, 15, 15, 20, 18, 22, 21, 40, 15, 11, 7,225, 13, 10, 17, 7, 8, 8, 8, 16, 16, 18, 20, 21, 23,
- 19, 19, 15, 15, 9, 8, 8, 6, 8, 17, 18, 19, 22, 22, 19, 20, 15, 14, 9, 8, 8, 9, 14, 13, 22, 19, 22, 22, 19, 20, 15, 8,
- 6, 8, 8, 9, 15, 14, 20, 19, 23, 21, 20, 19, 15, 16, 8, 8, 8, 9, 15, 10, 13,225, 8, 11, 15, 19, 18, 23, 22, 18, 20, 31,
- 7, 9, 9, 7, 16, 14, 21, 17, 23, 23, 18, 15, 9, 16, 8, 8, 8, 8, 16, 14, 20, 18, 4,135, 8, 9, 14, 15, 20, 19, 23, 21,
- 19, 20, 15, 7, 6, 8, 8, 9, 14, 15, 20, 19, 22, 24, 18, 19, 30, 9, 7, 7, 9, 15, 10, 13,224, 7, 11, 15, 19, 18, 23, 22,
- 39, 15, 15, 9, 7, 7, 9, 15, 15, 20, 18, 23, 21, 20, 15, 8, 15, 8, 8, 8, 8, 15, 14, 21, 18, 22, 23, 19, 20, 14, 17, 7,
- 7, 7, 9, 15, 9, 15, 19, 21, 20, 42, 14, 13, 10, 9, 9, 7, 16, 15, 20, 18, 23, 23, 17, 19, 16, 10, 8,225, 14, 10, 12, 11,
- 8, 8, 9, 14, 16, 20, 19, 21, 22, 19, 20, 16, 14, 9, 8, 8, 6, 7, 14, 20, 19, 22, 22, 20, 19, 15, 15, 9, 8, 8, 9, 15,
- 15, 19, 20, 22, 22, 19, 20, 14, 7, 6, 8, 8, 9, 14, 16, 20, 19, 22, 21, 19, 20, 16, 14, 9, 8, 17, 14, 10, 14,224, 7, 10,
- 18, 17, 18, 23, 22, 19, 20, 14, 17, 7, 8, 8, 8, 16, 14, 20, 18, 23, 22, 19, 15, 9, 17, 7, 7, 7, 9, 15, 14, 20, 18, 46,
- 18, 20, 15, 13, 10, 8, 8, 8, 15, 8, 15, 19, 22, 23, 18, 20, 14, 15, 9, 8, 8, 9, 15, 14, 20, 19, 22, 23, 18, 19, 15, 11,
- 7,224, 13, 10, 15, 9, 7, 7, 9, 30, 19, 20, 22, 19, 22, 20, 15, 14, 9, 8, 8, 6, 7, 15, 20, 19, 21, 23, 19, 20, 15, 14,
- 9, 8, 0, 0, 0, 1, 0, 43,255,231, 4,166, 4,106, 0, 31, 0, 0, 19, 50, 55, 54, 55, 54, 55, 54, 53, 20, 23, 22, 23, 22,
- 23, 22, 51, 34, 7, 6, 7, 6, 7, 6, 21, 52, 39, 38, 39, 38, 39, 38, 43,115,105,100, 85, 83, 43, 42, 43, 39, 87, 80,105,104,
-116,116,104,105, 80, 87, 39, 43, 42, 43, 83, 85,100,105, 2, 41, 44, 41, 85, 82,104,101,120,117,104, 98, 88, 82, 44, 44, 44, 44,
- 82, 89, 97,105,116,119,102,103, 83, 85, 41, 44, 0, 2, 0, 37,255,230, 4,172, 4,116, 0, 31, 0, 63, 0, 0, 19, 50, 23, 22,
- 23, 22, 23, 22, 21, 52, 55, 54, 55, 54, 55, 54, 51, 34, 39, 38, 39, 38, 39, 38, 53, 20, 7, 6, 7, 6, 7, 6, 33, 50, 55, 54,
- 55, 54, 55, 54, 53, 20, 23, 22, 23, 22, 23, 22, 51, 34, 7, 6, 7, 6, 7, 6, 21, 52, 39, 38, 39, 38, 39, 38,240, 76, 69, 65,
- 56, 54, 29, 27, 28, 26, 58, 52, 68, 68, 77, 77, 68, 68, 52, 58, 26, 28, 27, 29, 54, 56, 65, 69,254,234,116,106,100, 86, 84, 44,
- 42, 43, 40, 88, 81,106,104,118,118,104,106, 81, 88, 40, 43, 42, 44, 84, 86,100,106, 2, 45, 28, 28, 55, 54, 68, 67, 79, 77, 69,
- 64, 58, 54, 29, 28, 29, 29, 54, 58, 63, 70, 76, 79, 67, 67, 54, 55, 28, 29, 45, 42, 85, 83,104,103,121,118,106, 98, 89, 83, 44,
- 45, 44, 45, 82, 90, 98,106,118,121,103,104, 84, 85, 42, 44, 0, 0, 2, 0, 40,255,240, 4,169, 4, 56, 0, 9, 0, 19, 0, 0,
- 19, 37, 27, 1, 5, 3, 19, 37, 5, 19, 1, 3, 33, 1, 3, 9, 1, 3, 1, 33, 41, 1,116,203,204, 1,116,245, 26,254,155,254,
-156, 26, 1, 74,135,254, 72, 1, 99,136, 1,100, 1,101,136, 1, 99,254, 72, 2,149, 93, 1, 70,254,186, 93,254,217,254,130,143,
-143, 1,126, 2,202,254, 93,254,253,254, 94, 1, 3,254,253, 1,162, 1, 3, 0, 0, 2, 0, 67,255,230, 4,142, 4, 53, 0, 9,
- 0, 41, 0, 0, 1, 3, 33, 5, 3, 37, 5, 3, 37, 33, 3, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 34,
- 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 2,104,122,254,116, 1, 64,122, 1, 64, 1, 65,122, 1, 64,254,116,123,
-110,101, 95, 82, 80, 41, 40, 40, 38, 83, 78, 99,100,111,109,101, 95, 82, 80, 41, 40, 40, 38, 83, 77,100,100, 4, 48,254,135,233,
-254,136,233,233, 1,120,233, 1,125, 42, 40, 81, 79, 98, 98,114,108,101, 93, 84, 80, 41, 42, 42, 40, 81, 79, 98, 98,111,111,101,
- 93, 84, 78, 43, 42, 0, 0, 0, 0, 2, 0, 40,255,230, 4,169, 4, 46, 0, 29, 0, 39, 0, 0, 0, 34, 7, 6, 7, 6, 7, 6,
- 21, 20, 23, 22, 23, 22, 23, 22, 50, 55, 54, 55, 54, 55, 54, 53, 52, 39, 38, 39, 38, 39, 3, 19, 33, 1, 19, 9, 1, 19, 1, 33,
- 2,152, 95, 41, 40, 34, 34, 17, 17, 17, 17, 34, 34, 40, 41, 95, 41, 40, 34, 34, 17, 17, 17, 17, 34, 34, 40, 89,136, 1,184,254,
-157,136,254,155,254,156,136,254,157, 1,184, 2,184, 17, 19, 31, 36, 40, 42, 47, 46, 42, 40, 35, 32, 19, 17, 17, 19, 32, 35, 40,
- 42, 46, 47, 42, 40, 36, 31, 19, 1,135,254, 93,254,253,254, 94, 1, 3,254,253, 1,162, 1, 3, 0, 3, 0, 35,255,233, 4,174,
- 4, 60, 0, 9, 0, 39, 0, 49, 0, 0, 19, 37, 27, 1, 5, 3, 19, 37, 5, 19, 0, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6,
- 7, 6, 7, 6, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 19, 3, 33, 1, 3, 9, 1, 3, 1, 33, 35, 1,120,205,
-206, 1,120,248, 26,254,152,254,153, 26, 1, 29, 97, 41, 40, 35, 34, 17, 17, 17, 17, 34, 35, 40, 41, 97, 41, 40, 35, 34, 17, 17,
- 17, 17, 34, 35, 40, 89,137,254, 68, 1,103,137, 1,103, 1,104,137, 1,103,254, 68, 2,149, 94, 1, 73,254,183, 94,254,214,254,
-127,144,144, 1,129, 1, 87, 17, 19, 32, 36, 40, 42, 48, 46, 43, 40, 36, 32, 19, 17, 17, 19, 32, 36, 40, 43, 46, 48, 42, 40, 36,
- 32, 19, 1,139,254, 89,254,251,254, 90, 1, 5,254,251, 1,166, 1, 5, 0, 0, 0, 3, 0, 40,255,240, 4,169, 4, 56, 0, 9,
- 0, 19, 0, 29, 0, 0, 1, 23, 51, 7, 23, 39, 7, 55, 39, 51, 19, 3, 33, 5, 3, 37, 5, 3, 37, 33, 3, 19, 33, 1, 19, 9,
- 1, 19, 1, 33, 2,104, 69,219,177, 67,178,177, 67,177,219, 68,101,254,181, 1, 12,103, 1, 11, 1, 12,103, 1, 12,254,181,102,
-136, 1,184,254,157,136,254,155,254,156,136,254,157, 1,184, 3, 10,210,129,209,129,129,209,129, 1,105,254,198,194,254,198,195,
-195, 1, 58,194, 1,209,254, 93,254,253,254, 94, 1, 3,254,253, 1,162, 1, 3, 0, 3, 0, 61,255,252, 4,148, 4, 28, 0, 9,
- 0, 19, 0, 29, 0, 0, 1, 23, 51, 7, 23, 39, 7, 55, 39, 51, 27, 1, 33, 5, 19, 37, 5, 19, 37, 33, 55, 7, 33, 23, 7, 55,
- 23, 39, 55, 33, 2,104, 27, 84, 68, 26, 69, 68, 26, 68, 84, 26,131, 1,168,254,170,131,254,168,254,169,131,254,170, 1,168,130,
- 78,255, 0,207, 80,207,208, 80,207,255, 0, 2, 73, 81, 50, 80, 49, 49, 80, 50, 2, 35,254,109,249,254,109,249,249, 1,147,249,
-172,243,150,243,150,150,243,150, 0, 6, 0, 40,255,246, 4,169, 4, 63, 0, 2, 0, 5, 0, 8, 0, 11, 0, 14, 0, 24, 0, 0,
- 45, 1, 53, 37, 5, 55, 1, 3, 39, 37, 33, 7, 17, 3, 23, 17, 19, 33, 1, 19, 9, 1, 19, 1, 33, 1, 93, 1, 11,254, 80, 1,
- 12,164, 1, 12,103,165, 1,177,254,181,102,101,101,136, 1,184,254,157,136,254,155,254,156,136,254,157, 1,184,114,194,173,140,
-194, 54,254,145, 1, 57, 54,140,140, 1,198,254,198,140, 2, 93,254, 94,254,253,254, 94, 1, 3,254,253, 1,162, 1, 3, 0, 0,
- 0, 2, 0, 46, 0, 17, 4,163, 4, 5, 0, 13, 0, 23, 0, 0, 1, 5, 19, 47, 1, 5, 39, 19, 37, 33, 19, 23, 19, 33, 37, 3,
- 33, 23, 3, 55, 23, 3, 55, 33, 4,162,254,196,121,114,235,254,226,114,121,254,196, 1,136,121,113,109, 1, 34,254, 0, 95,254,
-208,246, 94,247,246, 94,246,254,208, 2,108,231,254,140, 37,171,208, 37, 1,116,230, 1,117, 37,254,176,253,254,223,180,254,223,
-179,179, 1, 33,180, 0, 0, 0, 0, 1, 0, 54,255,254, 4,155, 4,130, 0, 17, 0, 0, 1, 17, 51, 17, 37, 23, 13, 1, 7, 37,
- 17, 35, 17, 5, 39, 45, 1, 55, 1,237,247, 1, 58,124,254,198, 1, 58,124,254,198,247,254,198,124, 1, 57,254,199,124, 3, 23,
- 1,107,254,148,182,214,181,182,214,181,254,149, 1,107,181,214,182,181,214, 0, 0, 2, 0, 87,255,255, 4,122, 4, 96, 0, 5,
- 0, 23, 0, 0, 1, 7, 23, 51, 55, 39, 5, 37, 55, 5, 17, 23, 17, 37, 23, 13, 1, 7, 37, 17, 35, 17, 5, 39, 2, 14, 90, 90,
-180, 90, 90,254,242,254,163, 90, 1, 93,180, 1, 94, 90,254,162, 1, 94, 90,254,162,180,254,163, 90, 2,203,155,157,157,155,155,
-202,156,203, 1,148, 1,254,109,203,156,202,203,156,202,254,109, 1,147,202,156, 0, 1, 0, 48,255,253, 4,161, 4,111, 0, 23,
- 0, 0, 9, 1, 7, 1, 17, 35, 17, 1, 39, 1, 33, 53, 33, 1, 55, 1, 17, 51, 17, 1, 23, 1, 33, 21, 2,197, 1, 80, 54,254,
-176, 77,254,176, 54, 1, 80,254, 36, 1,221,254,175, 54, 1, 80, 77, 1, 80, 54,254,175, 1,221, 2, 16,254,175, 54, 1, 82,254,
- 35, 1,220,254,175, 54, 1, 81, 76, 1, 82, 54,254,175, 1,220,254, 36, 1, 81, 54,254,174, 76, 0, 1, 0, 36,255,240, 4,173,
- 4,122, 0, 15, 0, 0, 1, 19, 9, 1, 13, 1, 9, 1, 11, 1, 9, 1, 45, 1, 9, 1, 2,104, 60, 1, 95,254,245, 1,181,254,
- 75, 1, 11,254,161, 60, 59,254,161, 1, 10,254, 76, 1,180,254,246, 1, 95, 4,122,254, 75, 1, 11,254,161, 60, 59,254,160, 1,
- 12,254, 74, 1,182,254,244, 1, 96, 59, 60, 1, 95,254,245, 0, 0, 9, 0, 26,255,233, 4,183, 4,134, 0, 2, 0, 5, 0, 8,
- 0, 11, 0, 14, 0, 17, 0, 20, 0, 23, 0, 39, 0, 0, 1, 15, 1, 33, 39, 7, 1, 47, 1, 17, 55, 39, 1, 63, 1, 33, 23, 55,
- 1, 31, 1, 17, 7, 23, 17, 19, 37, 3, 13, 1, 19, 37, 11, 1, 5, 19, 45, 1, 3, 5, 3,161,222, 91, 1,186,223,219, 1, 57,
- 94,219, 91, 91,254,200,222, 90,254, 71,223,218,254,200, 94,218, 90, 90,122, 1, 39,125, 1, 42,254,214,125,254,217,122,121,254,
-217,125,254,214, 1, 42,125, 1, 39, 3,113, 94,220, 92, 92,254,200,222, 90,254, 71,223,218,254,200, 94,218, 90, 90, 1, 58,222,
- 92, 1,187,223,220, 2, 79,254,214,125,254,216,122,121,254,217,125,254,214, 1, 42,125, 1, 39,121,122, 1, 40,125, 0, 0, 0,
- 0, 1, 0, 50,255,228, 4,159, 5, 0, 0, 11, 0, 0, 1, 19, 37, 9, 1, 37, 11, 1, 5, 9, 1, 5, 2,104, 95, 1,216,254,
-135, 1,121,254, 40, 95, 94,254, 40, 1,122,254,134, 1,216, 4,255,254, 23,163,254,185,254,186,163,254, 21, 1,235,163, 1, 70,
- 1, 71,163, 0, 0, 1, 0, 31,255,224, 4,178, 4,115, 0, 15, 0, 0, 1, 19, 37, 3, 13, 1, 19, 37, 11, 1, 5, 19, 45, 1,
- 3, 5, 2,104, 86, 1, 72,207, 1,122,254,134,207,254,184, 86, 85,254,184,207,254,134, 1,122,207, 1, 72, 4,114,254,134,207,
-254,184, 86, 85,254,184,207,254,133, 1,123,207, 1, 72, 85, 86, 1, 72,207, 0, 0, 1, 0, 26,255,234, 4,183, 4,134, 0, 15,
- 0, 0, 1, 19, 37, 3, 13, 1, 19, 37, 11, 1, 5, 19, 45, 1, 3, 5, 2,104,130, 1, 31,104, 1, 21,254,235,104,254,225,130,
-129,254,225,104,254,235, 1, 21,104, 1, 31, 4,134,254,235,104,254,225,130,130,254,225,104,254,235, 1, 21,104, 1, 31,130,130,
- 1, 31,104, 0, 0, 1, 0, 36,255,221, 4,173, 4,104, 0, 23, 0, 0, 1, 19, 55, 3, 37, 7, 13, 1, 23, 37, 19, 39, 11, 1,
- 7, 19, 5, 55, 45, 1, 39, 5, 3, 23, 2,104, 88,203, 53, 1, 10,180, 1, 1,254,255,180,254,246, 53,203, 88, 86,204, 54,254,
-245,179,255, 0, 1, 0,179, 1, 11, 54,204, 4,103,254,255,179,254,246, 53,203, 86, 87,204, 54,254,246,179,254,255, 1, 1,179,
- 1, 10, 54,204, 87, 86,203, 53, 1, 10,179, 0, 0, 1, 0, 48, 0, 2, 4,161, 4,116, 0, 47, 0, 0, 1, 17, 51, 17, 19, 23,
- 3, 55, 23, 7, 37, 23, 5, 33, 21, 33, 5, 7, 37, 23, 7, 39, 19, 7, 3, 17, 35, 17, 3, 39, 19, 7, 39, 55, 5, 39, 37, 33,
- 53, 33, 37, 55, 5, 39, 55, 23, 3, 55, 2, 59, 91,130, 84,129,239, 65,240, 1, 58, 35,254,197, 1, 84,254,175, 1, 56, 35,254,
-198,240, 65,238,128, 84,130, 91,130, 84,129,239, 65,240,254,198, 35, 1, 57,254,174, 1, 84,254,197, 35, 1, 56,238, 65,238,128,
- 84, 3, 32, 1, 84,254,174, 1, 56, 35,254,199,240, 65,240,130, 84,131, 91,129, 85,131,241, 64,238,254,200, 35, 1, 55,254,175,
- 1, 83,254,199, 35, 1, 57,239, 64,239,129, 85,129, 91,131, 84,129,239, 65,239, 1, 56, 35, 0, 0, 1, 0, 49,255,240, 4,160,
- 4,232, 0,159, 0, 0, 1, 53, 52, 39, 38, 53, 52, 55, 54, 50, 23, 22, 21, 20, 7, 6, 29, 1, 23, 22, 23, 55, 54, 55, 54, 55,
- 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 35, 34, 35, 34, 15, 1, 22, 21, 20, 7, 23, 22, 51, 50, 55, 50, 51,
- 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 47, 1, 6, 15, 1, 21, 20, 23, 22, 21, 20, 7, 6, 34, 39,
- 38, 53, 52, 55, 54, 61, 1, 38, 39, 38, 39, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 51, 50, 51,
- 22, 51, 50, 63, 1, 38, 53, 52, 55, 39, 38, 35, 34, 35, 34, 35, 34, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23,
- 22, 31, 1, 54, 55, 54, 2, 63, 62, 36, 44, 46, 99, 46, 44, 36, 62, 13, 25, 20, 8, 93, 53, 32, 55, 49, 43, 18, 17, 58, 25, 16,
- 4, 11, 72, 51, 62, 5, 5, 8, 9,107, 82, 10, 3, 4, 10, 83,107, 9, 8, 5, 5, 62, 51, 72, 11, 4, 16, 25, 58, 17, 18, 43,
- 49, 55, 32, 55, 90, 12, 22, 20, 13, 62, 36, 44, 46, 99, 46, 44, 36, 63, 7, 7, 23, 19, 12, 90, 55, 32, 55, 49, 43, 18, 17, 58,
- 25, 16, 4, 11, 72, 51, 62, 5, 5, 8, 9,108, 82, 10, 4, 3, 10, 82,107, 9, 8, 5, 5, 62, 51, 72, 11, 4, 16, 25, 58, 17,
- 18, 43, 49, 55, 32, 57, 88, 9, 22, 23, 7, 2,248, 10,105, 98, 57, 64, 82, 39, 41, 41, 39, 82, 64, 57,100,103, 10, 5, 11, 19,
- 5, 56,100, 60, 32, 28, 5, 20, 43, 28, 36, 18, 20, 59, 41, 29, 48, 5, 16, 16, 18, 16, 6, 49, 1, 30, 41, 58, 20, 18, 36, 29,
- 42, 20, 5, 28, 32, 60,103, 52, 7, 21, 7, 5, 13,104, 99, 57, 64, 82, 40, 40, 40, 40, 82, 64, 57, 99,104, 13, 2, 3, 10, 18,
- 7, 52,103, 60, 32, 28, 5, 20, 42, 29, 36, 18, 20, 58, 41, 30, 1, 48, 6, 16, 19, 16, 16, 5, 48, 29, 41, 59, 20, 18, 36, 28,
- 43, 20, 5, 28, 32, 60,107, 48, 5, 20, 9, 3, 0, 2, 0, 55,255,238, 4,154, 4,217, 0, 29, 0,185, 0, 0, 0, 34, 7, 6,
- 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 50, 55, 54, 55, 54, 55, 54, 53, 52, 39, 38, 39, 38, 47, 1, 53, 52, 39, 38, 53,
- 52, 55, 54, 50, 23, 22, 21, 20, 7, 6, 29, 1, 23, 22, 23, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7,
- 6, 43, 1, 34, 35, 34, 15, 1, 22, 21, 20, 7, 23, 22, 51, 50, 59, 1, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39,
- 38, 39, 38, 47, 1, 6, 15, 1, 21, 20, 23, 22, 21, 20, 7, 6, 34, 39, 38, 53, 52, 55, 54, 61, 1, 38, 39, 38, 39, 7, 6, 7,
- 6, 7, 6, 35, 34, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 59, 1, 50, 51, 50, 63, 1, 38, 53, 52, 55, 39, 38, 35, 34, 43, 1,
- 34, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 31, 1, 54, 55, 54, 2,122, 35, 13, 15, 11, 13, 5, 7, 7,
- 5, 13, 11, 15, 13, 35, 13, 15, 11, 13, 5, 7, 7, 5, 13, 11, 15, 72, 61, 36, 44, 46, 97, 46, 44, 36, 62, 13, 25, 20, 8, 92,
- 53, 31, 55, 48, 43, 18, 17, 57, 25, 16, 4, 12, 70, 51, 61, 10, 9, 8,107, 81, 10, 4, 4, 9, 83,106, 9, 8, 10, 61, 51, 70,
- 12, 4, 16, 25, 57, 17, 18, 43, 48, 55, 31, 55, 89, 12, 22, 20, 13, 62, 36, 44, 46, 97, 46, 44, 36, 63, 8, 6, 24, 18, 12, 89,
- 55, 31, 55, 48, 43, 18, 17, 57, 25, 16, 4, 11, 71, 51, 61, 10, 9, 8,107, 82, 9, 4, 4, 10, 81,107, 8, 9, 10, 61, 51, 71,
- 11, 4, 16, 25, 57, 17, 18, 43, 48, 55, 31, 57, 87, 9, 21, 24, 6, 2,183, 7, 6, 12, 12, 14, 14, 17, 17, 14, 14, 12, 12, 6,
- 7, 7, 6, 12, 12, 14, 14, 17, 17, 14, 14, 12, 12, 6, 62, 10,104, 96, 57, 64, 81, 39, 40, 40, 39, 81, 64, 57, 98,102, 10, 5,
- 11, 19, 5, 55, 99, 60, 31, 29, 6, 19, 43, 28, 36, 18, 19, 58, 41, 29, 47, 6, 15, 16, 17, 17, 5, 48, 30, 40, 58, 19, 18, 36,
- 28, 43, 19, 6, 29, 31, 60,102, 51, 7, 21, 7, 5, 12,103, 99, 56, 64, 81, 39, 40, 40, 39, 81, 64, 56, 99,103, 12, 3, 2, 11,
- 17, 7, 51,102, 60, 31, 29, 6, 19, 43, 28, 36, 18, 19, 58, 40, 30, 47, 6, 16, 18, 16, 15, 6, 47, 29, 41, 58, 19, 18, 36, 28,
- 43, 19, 6, 29, 31, 60,105, 48, 5, 20, 9, 3, 0, 1, 0, 43,255,235, 4,159, 4,223, 0,106, 0, 0, 1, 39, 38, 7, 6, 39,
- 38, 39, 38, 55, 54, 55, 54, 23, 22, 23, 22, 31, 1, 53, 52, 39, 38, 53, 52, 55, 54, 50, 23, 22, 21, 20, 7, 6, 29, 1, 55, 54,
- 55, 54, 55, 54, 23, 22, 23, 22, 7, 6, 7, 6, 39, 38, 15, 1, 23, 22, 55, 54, 23, 22, 23, 22, 7, 6, 7, 6, 39, 38, 39, 38,
- 47, 1, 21, 20, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 53, 52, 55, 54, 61, 1, 7, 6, 7, 6, 7, 6, 39, 38, 39, 38, 55, 54,
- 55, 54, 23, 22, 55, 2, 18, 38, 40,151, 90, 68, 76, 14, 23, 34, 35, 90, 58, 76, 71, 35, 58, 46, 39, 87, 52, 44, 67,138, 67, 44,
- 52, 87, 39, 39, 65, 40, 67, 75, 59, 90, 34, 34, 23, 14, 76, 71, 87,144, 47, 39, 39, 39,152, 91, 67, 76, 14, 23, 34, 36, 88, 62,
- 72, 72, 35, 58, 46, 39, 87, 52, 44, 67, 69, 72, 64, 44, 52, 87, 39, 42, 62, 38, 68, 76, 58, 90, 35, 35, 24, 15, 75, 71, 87,147,
- 44, 2,102, 22, 23, 13, 8, 39, 44, 59, 91, 59, 59, 26, 17, 43, 42, 81,132, 27, 23, 45, 45,125, 75, 79, 87, 42, 65, 65, 42, 87,
- 83, 71,117, 53, 45, 23, 23,136, 85, 38, 43, 17, 26, 59, 59, 91, 59, 44, 41, 10, 16, 26, 22, 23, 23, 13, 7, 39, 43, 59, 91, 60,
- 62, 23, 16, 42, 42, 81,133, 27, 22, 45, 45,125, 75, 78, 87, 43, 64, 64, 45, 85, 83, 70,117, 53, 45, 22, 25,135, 83, 40, 43, 17,
- 26, 59, 62, 89, 59, 43, 42, 10, 16, 26, 0, 0, 0, 4, 0, 33,255,229, 4,176, 4,189, 0, 14, 0,153, 0,177, 0,201, 0, 0,
- 1, 54, 55, 54, 53, 52, 39, 38, 34, 7, 6, 21, 20, 23, 22, 19, 23, 22, 51, 50, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6,
- 7, 6, 35, 34, 39, 38, 39, 38, 47, 1, 21, 20, 23, 22, 21, 20, 7, 6, 35, 34, 39, 38, 53, 52, 55, 54, 61, 1, 7, 6, 7, 6,
- 7, 6, 35, 34, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 51, 50, 23, 22, 51, 50, 63, 1, 39, 38, 35, 34, 7, 6, 35, 34, 39, 38,
- 39, 38, 53, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 31, 1, 53, 52, 39, 38, 53, 52, 55, 54, 50, 23, 22, 21, 20, 7, 6, 29,
- 1, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 35, 34, 7, 5, 6, 35, 34, 39, 38,
- 35, 34, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 51, 50, 55, 54, 55, 54, 37, 22, 23, 22, 23, 22, 51, 50, 55, 54, 55, 54, 53, 52,
- 39, 38, 39, 38, 35, 34, 7, 6, 35, 34, 2,105, 23, 47, 31, 25, 41, 70, 41, 26, 31, 47,141, 15, 44, 85, 27, 31, 15, 14, 75, 58,
- 77, 15, 10, 21, 36, 92, 16, 18, 47, 56, 69, 40, 53, 62, 15, 72, 54, 45, 69, 70, 74, 65, 45, 53, 72, 15, 59, 56, 41, 68, 55, 46,
- 19, 17, 92, 35, 21, 9, 16, 76, 59, 75, 14, 15, 30, 27, 85, 44, 16, 16, 42, 85, 28, 31, 15, 14, 75, 59, 75, 17, 10, 22, 35, 92,
- 17, 19, 46, 55, 70, 39, 53, 62, 15, 72, 53, 45, 68,141, 69, 45, 54, 72, 15, 60, 55, 42, 67, 56, 47, 18, 16, 92, 36, 21, 10, 15,
- 77, 58, 75, 14, 15, 32, 27, 85, 43,254,211, 58, 54, 25, 24, 8, 8, 45, 50, 49, 6, 4, 11, 17, 52, 9, 10, 26, 36, 58, 21, 30,
- 1,143, 60, 30, 21, 59, 36, 26, 10, 8, 52, 18, 11, 4, 6, 50, 50, 45, 8, 7, 25, 25, 54, 3, 12, 79, 59, 40, 65, 55, 20, 35,
- 35, 20, 55, 65, 40, 59,254,247, 9, 26, 3, 1, 33, 42, 58, 35, 31, 46, 35, 59, 24, 4, 30, 38, 82,109, 33, 8, 16, 67, 99, 74,
- 77, 85, 41, 63, 63, 44, 82, 77, 74, 99, 67, 16, 8, 31,111, 83, 37, 31, 5, 26, 57, 35, 46, 31, 35, 59, 41, 33, 1, 3, 26, 9,
- 8, 25, 2, 1, 32, 41, 59, 35, 31, 45, 36, 58, 25, 5, 30, 39, 81,110, 33, 8, 16, 68, 99, 73, 77, 85, 42, 63, 63, 42, 85, 77,
- 73, 99, 68, 16, 8, 32,111, 83, 37, 30, 5, 24, 59, 35, 46, 30, 36, 58, 42, 32, 1, 2, 25,102, 14, 3, 1, 28, 27, 31, 20, 16,
- 27, 18, 29, 16, 3, 19, 32, 47, 68, 59, 59, 68, 47, 32, 19, 3, 16, 29, 18, 27, 16, 20, 31, 27, 28, 1, 3, 0, 0, 2, 0, 36,
- 0, 0, 4,173, 4,105, 0, 29, 0,141, 0, 0, 0, 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 50, 55, 54, 55,
- 54, 55, 54, 53, 52, 39, 38, 39, 38, 39, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 34,
- 39, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 39, 6, 7, 6, 7, 6, 7, 6, 35, 34,
- 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 6, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51, 50,
- 23, 22, 23, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 2,160,111, 48, 48, 39,
- 41, 19, 20, 20, 19, 41, 39, 48, 48,111, 48, 48, 39, 41, 19, 20, 20, 19, 41, 39, 48, 93, 48, 29, 43, 41, 42, 43, 37, 35, 32, 18,
- 16, 16, 15, 35, 29, 43, 37, 48, 22, 21, 37, 26, 35, 14, 17, 17, 18, 31, 35, 38, 38, 46, 48, 37, 43, 29, 37, 13, 10, 4, 3, 11,
- 18, 32, 35, 37, 39, 46, 48, 36, 44, 28, 35, 15, 16, 16, 19, 31, 29, 28, 18, 19, 48, 37, 45, 27, 35, 15, 16, 16, 18, 32, 35, 37,
- 39, 46, 48, 36, 46, 32, 6, 5, 16, 16, 18, 32, 35, 37, 39, 45, 49, 36, 44, 28, 35, 15, 16, 16, 5, 3, 36, 20, 22, 37, 42, 47,
- 48, 57, 54, 49, 47, 42, 37, 22, 20, 20, 22, 37, 42, 47, 49, 54, 57, 48, 47, 42, 37, 22, 15, 41, 12, 18, 18, 15, 34, 30, 42, 38,
- 48, 45, 40, 37, 36, 29, 19, 17, 4, 18, 26, 36, 36, 41, 45, 48, 38, 42, 30, 33, 16, 16, 16, 20, 29, 38, 34, 27, 28, 29, 26, 42,
- 30, 33, 16, 16, 16, 20, 29, 36, 36, 41, 45, 48, 38, 45, 27, 26, 17, 4, 17, 21, 28, 35, 37, 40, 45, 48, 38, 42, 30, 34, 15, 17,
- 17, 19, 34, 11, 11, 40, 45, 48, 38, 42, 30, 34, 15, 16, 16, 19, 30, 36, 36, 40, 46, 47, 38, 11, 0, 6, 0, 22, 0, 3, 4,187,
- 4,134, 0,110, 0,138, 0,163, 0,191, 0,216, 0,244, 0, 0, 37, 6, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38,
- 53, 52, 55, 54, 55, 54, 55, 6, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 38, 39, 38,
- 53, 52, 55, 54, 55, 54, 55, 54, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 21,
- 20, 7, 6, 7, 6, 7, 6, 35, 34, 39, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 2,
- 50, 23, 22, 23, 55, 54, 53, 52, 39, 38, 39, 38, 39, 38, 34, 7, 6, 7, 6, 7, 6, 21, 20, 31, 1, 54, 55, 19, 38, 39, 38, 39,
- 38, 39, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 50, 55, 54, 55, 54, 55, 3, 38, 53, 52, 55, 54, 55, 39, 38, 39, 38, 35,
- 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 23, 5, 23, 22, 23, 22, 23, 22, 50, 55, 54, 55, 54, 55, 54, 53, 52,
- 39, 38, 47, 1, 6, 7, 6, 7, 6, 63, 1, 54, 55, 54, 55, 54, 55, 54, 53, 52, 39, 38, 39, 38, 39, 38, 35, 34, 7, 6, 15, 1,
- 22, 23, 22, 21, 20, 2,104, 3, 11, 13, 38, 29, 44, 38, 49, 47, 40, 38, 35, 33, 18, 17, 17, 15, 36, 26, 38, 22, 23, 49, 37, 45,
- 29, 36, 15, 17, 17, 18, 33, 38, 36, 47, 39, 46, 41, 29, 50, 6, 5, 16, 16, 15, 36, 29, 45, 37, 99, 37, 45, 29, 36, 15, 16, 16,
- 5, 6, 50, 29, 45, 42, 43, 43, 38, 36, 33, 18, 17, 17, 15, 36, 29, 45, 37, 49, 23, 22, 38, 26, 36, 15, 17, 17, 18, 33, 35, 38,
- 40, 47, 49, 38, 44, 29, 38, 13, 11, 61,115, 48, 6, 6, 14, 7, 10, 9, 22, 20, 25, 24, 57, 24, 25, 20, 22, 9, 10, 7, 14, 6,
- 6, 53, 28, 25, 53, 37, 24, 21, 82, 19, 12, 10, 10, 10, 21, 20, 25, 24, 57, 24, 26, 19, 19, 12,178, 3, 21, 17, 33, 95, 7, 5,
- 28, 25, 28, 24, 25, 20, 19, 12, 11, 11, 9, 22, 20, 25, 17, 12, 1,186, 44, 12, 19, 19, 26, 24, 57, 24, 25, 20, 21, 10, 10, 10,
- 12, 19, 82, 21, 24, 37, 53, 25,194,115, 12, 17, 25, 20, 22, 9, 11, 11, 12, 19, 20, 25, 24, 28, 25, 28, 5, 7, 95, 33, 17, 21,
-200, 29, 27, 35, 39, 30, 20, 17, 17, 16, 34, 31, 43, 39, 48, 47, 41, 38, 36, 27, 19, 4, 16, 20, 30, 37, 37, 41, 46, 50, 39, 43,
- 31, 36, 14, 18, 18, 13, 42, 10, 11, 39, 49, 46, 42, 37, 37, 30, 20, 16, 16, 20, 30, 37, 37, 42, 46, 49, 39, 11, 10, 42, 13, 18,
- 18, 16, 34, 31, 43, 39, 50, 46, 41, 37, 37, 30, 20, 16, 4, 19, 27, 36, 38, 41, 47, 48, 39, 43, 31, 34, 16, 17, 17, 20, 30, 39,
- 35, 27, 2,142, 20, 3, 3, 76, 37, 16, 28, 26, 24, 21, 19, 11, 11, 11, 11, 19, 21, 24, 26, 28, 16, 37, 76, 3, 3,253,236, 5,
- 11, 24, 37, 23, 35, 77, 19, 27, 25, 29, 28, 25, 24, 21, 19, 11, 11, 11, 11, 19, 19, 26, 1, 76, 17, 19, 58, 50, 40, 38, 54, 3,
- 2, 10, 10, 11, 19, 19, 26, 23, 31, 28, 26, 23, 22, 19, 11, 7, 2,251, 95, 26, 19, 19, 11, 11, 11, 11, 19, 21, 24, 25, 28, 29,
- 25, 27, 19, 77, 35, 23, 37, 24, 11,232, 14, 2, 7, 11, 19, 22, 23, 26, 28, 31, 23, 26, 19, 19, 11, 10, 10, 2, 3, 54, 38, 40,
- 50, 58, 19, 0, 0, 10, 0, 22,255,237, 4,187, 4,148, 0, 45, 0, 91, 0,213, 1, 4, 1, 51, 1, 98, 1,145, 1,175, 1,221,
- 2, 11, 0, 0, 1, 38, 39, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51, 50, 31, 1, 54, 55, 39,
- 38, 35, 34, 6, 7, 6, 7, 6, 20, 23, 22, 23, 22, 23, 22, 51, 50, 55, 37, 6, 7, 23, 22, 51, 50, 55, 54, 55, 54, 55, 54, 52,
- 39, 38, 39, 46, 1, 35, 34, 15, 1, 22, 23, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 34, 39,
- 37, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 52, 54, 55, 54, 55, 54, 50, 23, 22, 23, 30, 1, 21, 54, 55,
- 54, 51, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 22, 23,
- 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 20, 6, 7, 6, 7, 6, 34, 39, 38, 39, 46, 1, 53, 6, 7, 6, 35, 34,
- 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 1, 38, 39, 7, 6, 7,
- 6, 7, 6, 7, 38, 39, 38, 39, 38, 39, 38, 39, 54, 55, 54, 55, 54, 63, 1, 38, 39, 7, 6, 7, 6, 7, 6, 21, 22, 23, 22, 23,
- 30, 1, 51, 50, 55, 54, 55, 54, 55, 1, 22, 23, 55, 54, 55, 54, 55, 54, 53, 38, 39, 38, 39, 46, 1, 35, 34, 7, 6, 7, 6, 15,
- 1, 22, 23, 55, 54, 55, 54, 55, 54, 55, 22, 23, 22, 23, 22, 23, 22, 23, 6, 7, 6, 7, 6, 7, 3, 6, 7, 23, 22, 23, 22, 23,
- 22, 23, 6, 7, 6, 7, 6, 7, 6, 7, 38, 39, 38, 39, 38, 47, 1, 6, 7, 23, 22, 23, 22, 23, 22, 51, 50, 54, 55, 54, 55, 54,
- 55, 52, 39, 38, 39, 38, 39, 1, 54, 55, 39, 38, 39, 38, 39, 38, 35, 34, 6, 7, 6, 7, 6, 7, 20, 23, 22, 23, 22, 31, 1, 54,
- 55, 39, 38, 39, 38, 39, 38, 39, 54, 55, 54, 55, 54, 55, 54, 55, 22, 23, 22, 23, 22, 23, 4, 34, 7, 6, 7, 6, 7, 6, 21, 20,
- 23, 22, 23, 22, 23, 22, 50, 55, 54, 55, 54, 55, 54, 53, 52, 39, 38, 39, 38, 39, 19, 6, 7, 23, 22, 21, 20, 7, 6, 7, 6, 7,
- 6, 34, 39, 38, 39, 38, 39, 38, 53, 52, 63, 1, 38, 39, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 50, 55, 54, 55, 54, 55, 54, 53,
- 52, 39, 3, 22, 23, 55, 54, 53, 52, 39, 38, 39, 38, 39, 38, 34, 7, 6, 7, 6, 7, 6, 21, 20, 31, 1, 54, 55, 39, 38, 53, 52,
- 55, 54, 55, 54, 55, 54, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 1,139, 4, 2,175, 13, 7, 7, 11, 9, 8, 6, 5, 3, 3, 5,
- 6, 8, 9, 9, 9, 7, 13,175, 2, 4,158, 27, 16, 21, 40, 17, 15, 10, 7, 7, 10, 15, 17, 20, 20, 21, 16, 27, 2, 98, 2, 4,
-155, 27, 14, 23, 20, 20, 17, 15, 10, 7, 7, 10, 15, 17, 40, 23, 14, 27,155, 4, 2,172, 13, 5, 13, 7, 9, 8, 6, 5, 3, 3,
- 5, 6, 9, 8, 11, 9, 5, 13,252,205, 28, 13, 13, 13, 12, 25, 25, 31, 31, 35, 33, 34, 31, 28, 26, 25, 25, 30, 31, 71, 31, 30,
- 25, 25, 26, 30, 29, 34, 33, 35, 31, 31, 25, 22, 15, 13, 13, 11, 30, 42, 30, 29, 26, 27, 11, 13, 13, 13, 25, 21, 34, 32, 39, 29,
- 11, 13, 13, 12, 25, 25, 31, 31, 35, 35, 32, 31, 28, 26, 25, 25, 30, 31, 71, 31, 30, 25, 25, 26, 31, 28, 33, 34, 34, 32, 31, 25,
- 25, 12, 13, 13, 13, 27, 39, 32, 29, 26, 27, 12, 12, 12, 14, 25, 26, 29, 30, 1, 89, 15, 13,109, 8, 5, 5, 10, 9, 11, 10, 9,
- 9, 7, 7, 4, 3, 1, 1, 4, 3, 7, 4, 11,138, 11, 8,141, 26, 10, 17, 7, 9, 1, 8, 7, 17, 16, 40, 22, 24, 19, 20, 16,
- 11, 14, 1,121, 12, 7,139, 26, 10, 17, 7, 9, 1, 8, 7, 17, 16, 40, 22, 24, 19, 20, 17, 10, 14, 79, 15, 13,107, 8, 4, 8,
- 8, 9, 11, 10, 9, 9, 7, 7, 4, 3, 1, 1, 4, 4, 6, 4, 11,119, 8, 11,138, 11, 4, 6, 4, 4, 1, 1, 3, 4, 7, 7,
- 9, 9, 10, 11, 9, 8, 7, 5, 8,109, 13, 15, 81, 14, 11, 16, 20, 19, 24, 22, 40, 16, 17, 7, 8, 1, 9, 7, 17, 10, 26,254,
- 28, 14, 14, 79, 14, 10, 17, 20, 19, 24, 22, 40, 16, 17, 7, 8, 1, 9, 7, 17, 10, 26,139, 8, 11,136, 11, 4, 7, 3, 4, 1,
- 1, 3, 4, 7, 7, 9, 9, 10, 13, 7, 10, 6, 4, 8, 1, 26, 63, 27, 27, 23, 22, 12, 11, 11, 12, 22, 23, 27, 27, 63, 27, 27,
- 23, 22, 12, 11, 11, 12, 22, 23, 27, 2, 17, 16, 21, 1, 3, 4, 7, 8, 8, 10, 19, 10, 8, 8, 7, 4, 3, 1, 21, 17, 16, 43,
- 8, 9, 7, 17, 16, 20, 19, 47, 19, 20, 16, 17, 7, 9, 8, 76, 18, 16, 42, 8, 9, 7, 17, 16, 20, 19, 47, 19, 20, 16, 17, 7,
- 9, 8, 42, 17, 17, 21, 1, 3, 4, 7, 8, 8, 10, 19, 10, 8, 8, 8, 3, 3, 1, 2, 3, 17, 17, 21, 2, 5, 3, 7, 8, 8,
- 9, 11, 9, 9, 9, 8, 6, 5, 3, 2, 20, 17, 16, 43, 7, 15, 17, 17, 20, 18, 46, 20, 20, 16, 16, 8, 9, 7, 77, 18, 16, 43,
- 7, 9, 8, 16, 16, 20, 20, 46, 18, 20, 17, 17, 15, 7, 42, 17, 17, 20, 2, 3, 5, 6, 8, 9, 9, 9, 11, 9, 8, 8, 9, 1,
- 5, 2,221, 28, 32, 33, 33, 33, 33, 31, 25, 25, 12, 13, 13, 13, 27, 39, 63, 24, 24, 14, 13, 13, 14, 24, 24, 63, 39, 29, 11, 13,
- 13, 12, 25, 22, 34, 31, 35, 28, 38, 31, 29, 13, 12, 26, 27, 28, 31, 35, 39, 27, 31, 25, 23, 15, 14, 29, 30, 34, 33, 33, 32, 31,
- 25, 25, 13, 12, 12, 13, 28, 39, 63, 25, 23, 14, 13, 13, 14, 23, 25, 63, 39, 30, 11, 12, 12, 13, 25, 25, 31, 32, 33, 34, 33, 32,
- 27, 14, 12, 26, 27, 29, 30, 36, 38, 28, 31, 24, 26, 12, 13,254,140, 9, 10,139, 10, 4, 6, 4, 4, 1, 1, 3, 4, 7, 7, 9,
- 9, 10, 10, 9, 10, 6, 5, 8,109, 13, 14, 80, 15, 11, 15, 20, 19, 24, 22, 21, 19, 17, 16, 15, 7, 9, 15, 11, 25, 1,229, 13,
- 15, 79, 15, 10, 16, 20, 19, 24, 22, 21, 19, 17, 16, 15, 7, 9, 16, 10, 25,139, 9, 11,136, 10, 4, 9, 2, 4, 1, 1, 3, 4,
- 7, 7, 9, 9, 10, 13, 6, 10, 7, 4, 8,254,147, 14, 13,109, 8, 5, 6, 10, 9, 10, 10, 9, 9, 7, 7, 4, 3, 1, 1, 4,
- 3, 7, 4, 10,139, 11, 8,142, 25, 11, 15, 9, 7, 15, 16, 17, 19, 21, 22, 24, 19, 20, 15, 11, 15, 1,121, 11, 9,139, 25, 10,
- 16, 9, 7, 15, 16, 17, 19, 21, 22, 24, 19, 20, 16, 10, 15, 79, 15, 13,107, 8, 4, 8, 9, 9, 10, 10, 9, 9, 7, 7, 4, 3,
- 1, 1, 4, 4, 7, 4, 10,163, 12, 12, 21, 24, 26, 28, 31, 31, 28, 27, 23, 21, 12, 12, 12, 12, 21, 23, 27, 28, 31, 31, 28, 26,
- 24, 21, 12,254,147, 5, 1,175, 13, 7, 8, 10, 9, 8, 7, 4, 3, 3, 4, 7, 8, 9, 9, 9, 7, 13,175, 1, 5,158, 28, 15,
- 22, 20, 19, 17, 15, 9, 9, 9, 9, 15, 17, 19, 20, 22, 15, 28, 2, 98, 1, 5,154, 29, 14, 23, 20, 19, 17, 15, 9, 9, 9, 9,
- 15, 17, 19, 20, 23, 14, 29,154, 5, 1,172, 13, 6, 11, 8, 9, 8, 7, 3, 4, 4, 3, 7, 10, 7, 10, 9, 6, 13, 0, 0, 0,
- 0, 4, 0, 37,255,223, 4,172, 4,106, 0, 29, 0, 60, 0, 92, 0,108, 0, 0, 0, 34, 7, 6, 7, 6, 7, 6, 21, 20, 23, 22,
- 23, 22, 23, 22, 50, 55, 54, 55, 54, 55, 54, 53, 52, 39, 38, 39, 38, 47, 1, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6,
- 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 52, 55, 54, 55, 54, 55, 54, 19, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7,
- 6, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 23, 3, 37, 19, 13, 1, 3, 37, 27, 1, 5, 3, 45, 1, 19,
- 5, 2,150, 91, 39, 39, 33, 32, 16, 16, 16, 16, 32, 33, 39, 39, 91, 38, 40, 32, 33, 16, 16, 16, 16, 33, 32, 40, 84, 66, 51, 57,
- 41, 43, 24, 23, 23, 23, 44, 43, 55, 54, 63, 65, 51, 58, 40, 43, 24, 23, 23, 23, 44, 43, 55, 54, 62,116,106,101, 86, 84, 44, 43,
- 43, 40, 88, 82,105,105,117,115,107,100, 86, 84, 44, 42, 42, 40, 88, 81,105,106,116,117,254,223,122,254,222, 1, 34,122, 1, 33,
-117,118, 1, 33,122, 1, 34,254,222,122,254,223, 3, 4, 17, 18, 30, 35, 38, 40, 44, 45, 39, 39, 34, 30, 18, 17, 17, 18, 30, 34,
- 39, 39, 45, 44, 40, 38, 35, 30, 18,101, 24, 25, 41, 42, 58, 54, 63, 59, 57, 55, 44, 43, 23, 24, 24, 25, 41, 42, 57, 55,122, 56,
- 56, 44, 43, 23, 24, 1, 17, 44, 42, 85, 84,104,103,121,114,105, 99, 89, 84, 43, 44, 44, 42, 85, 83,105,103,116,118,106, 98, 90,
- 82, 45, 44, 6,254,222,122,254,223,118,118,254,224,122,254,222, 1, 34,122, 1, 32,118,118, 1, 33,122, 0, 0, 0, 7, 0, 50,
-255,237, 4,159, 5, 57, 0, 8, 0,147, 0,156, 0,167, 0,178, 0,193, 0,208, 0, 0, 1, 17, 34, 7, 6, 21, 20, 23, 22, 19,
- 23, 22, 51, 50, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 47, 1, 21, 20, 23, 22, 21, 20,
- 7, 6, 35, 34, 39, 38, 53, 52, 55, 54, 61, 1, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 51, 50,
- 23, 22, 51, 50, 63, 1, 39, 38, 35, 34, 7, 6, 35, 34, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 31, 1,
- 53, 52, 39, 38, 53, 52, 55, 54, 50, 23, 22, 21, 20, 7, 6, 29, 1, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7,
- 6, 7, 6, 35, 34, 39, 38, 35, 34, 15, 1, 17, 50, 55, 54, 53, 52, 39, 38, 19, 37, 38, 39, 38, 35, 34, 7, 6, 7, 6, 1, 5,
- 22, 23, 22, 51, 50, 55, 54, 55, 54, 19, 37, 6, 21, 20, 23, 22, 23, 22, 51, 50, 55, 54, 51, 50, 13, 1, 54, 53, 52, 39, 38, 39,
- 38, 35, 34, 7, 6, 35, 34, 2,105, 34, 40, 25, 31, 45,137, 14, 43, 83, 25, 30, 15, 13, 73, 57, 75, 14, 9, 20, 35, 89, 16, 17,
- 46, 54, 67, 38, 52, 60, 14, 70, 52, 44, 67, 68, 72, 63, 44, 52, 70, 15, 57, 54, 40, 66, 53, 45, 18, 17, 89, 34, 21, 9, 15, 75,
- 56, 73, 14, 14, 30, 26, 83, 42, 15, 15, 41, 82, 27, 31, 14, 14, 73, 56, 74, 16, 9, 21, 34, 89, 17, 18, 45, 53, 68, 38, 51, 60,
- 15, 70, 52, 44, 67,136, 67, 44, 52, 70, 14, 58, 54, 40, 65, 54, 46, 17, 16, 89, 35, 20, 9, 14, 75, 57, 73, 13, 15, 30, 27, 82,
- 42,128, 34, 40, 24, 30, 45,141, 1, 54, 17, 50, 8, 10, 25, 35, 57, 20, 30,254,126,254,201, 17, 51, 8, 10, 25, 35, 57, 20, 29,
- 59,254,201, 10, 4, 5, 48, 49, 43, 8, 8, 23, 24, 53, 1,128, 1, 54, 11, 4, 6, 48, 48, 44, 8, 7, 24, 24, 53, 3, 96, 1,
-129, 37, 23, 59, 71, 44, 65,254,222, 10, 28, 3, 1, 36, 46, 63, 39, 33, 51, 38, 64, 27, 5, 33, 42, 89,120, 36, 9, 18, 73,109,
- 80, 84, 93, 45, 69, 69, 48, 90, 84, 80,109, 73, 18, 9, 34,122, 90, 41, 33, 5, 28, 63, 38, 51, 33, 39, 64, 45, 36, 1, 3, 28,
- 10, 9, 28, 3, 1, 35, 44, 65, 39, 33, 50, 39, 63, 28, 5, 33, 42, 89,120, 36, 8, 17, 73,109, 81, 84, 92, 46, 69, 69, 46, 92,
- 84, 81,109, 73, 17, 8, 35,121, 90, 41, 33, 5, 26, 65, 38, 50, 34, 39, 63, 46, 35, 1, 3, 28,214,254,126, 38, 22, 60, 71, 44,
- 64, 1,137,193, 32, 18, 4, 22, 35, 51, 74,254,243,193, 32, 18, 3, 21, 35, 51, 74, 1, 13,193, 19, 30, 17, 22, 34, 30, 30, 1,
- 4,220,193, 20, 29, 18, 21, 34, 30, 30, 1, 3, 0, 1, 0, 32, 0, 2, 4,177, 5, 87, 0, 65, 0, 0, 1, 39, 7, 39, 55, 39,
- 55, 23, 53, 51, 21, 23, 53, 39, 55, 23, 53, 51, 21, 55, 23, 7, 21, 55, 53, 51, 21, 55, 23, 7, 23, 7, 39, 7, 23, 55, 23, 7,
- 23, 7, 39, 21, 35, 53, 39, 21, 23, 7, 39, 21, 35, 53, 7, 39, 55, 53, 7, 21, 35, 53, 7, 39, 55, 39, 55, 23, 2, 1,207,168,
- 52,116,169, 52,169,104,207,168, 52,116,103,116, 52,168,207,104,169, 52,169,116, 52,168,207,207,168, 52,116,169, 52,169,104,207,
-168, 52,116,103,116, 52,168,207,104,169, 52,169,116, 52,168, 2,173,126,102, 95, 70,104, 96,105,142,205,127,254,102, 95, 71,208,
-208, 71, 95,102,253,126,205,142,105, 96,104, 70, 95,102,126,127,102, 95, 70,104, 95,104,142,205,127,254,102, 95, 71,208,208, 71,
- 95,102,254,127,205,142,104, 95,104, 70, 95,102, 0, 7, 0, 48,255,250, 4,161, 4,179, 0, 29, 0, 33, 0, 37, 0, 41, 0, 45,
- 0, 49, 0, 53, 0, 0, 1, 51, 21, 55, 17, 55, 23, 7, 23, 7, 23, 7, 39, 17, 39, 21, 35, 53, 7, 17, 7, 39, 55, 39, 55, 39,
- 55, 23, 17, 23, 7, 21, 23, 53, 55, 7, 21, 55, 5, 7, 23, 55, 37, 7, 23, 55, 5, 7, 21, 63, 1, 21, 23, 53, 2, 56, 97,236,
-214, 49,216,237,236,215, 49,214,236, 97,236,214, 49,215,236,237,216, 49,214,236,138,138,235,138,138,254, 91,139,138,138, 1, 76,
-137,138,138,254, 90,138,138, 97,138, 4,179,249,136,254,240,125, 84,125,136,136,123, 85,125,254,239,137,248,248,137, 1, 17,125,
- 85,123,136,136,125, 84,125, 1, 16,136, 32,159, 80,159, 80, 80,159, 80, 85, 80, 79, 79, 80, 80, 79, 79, 83, 80,160, 80,160,160,
- 80,160, 0, 0, 0, 1, 0, 25, 0, 5, 4,184, 4,192, 0, 65, 0, 0, 1, 51, 21, 55, 23, 7, 21, 55, 53, 51, 21, 55, 23, 7,
- 23, 7, 39, 7, 23, 55, 23, 7, 23, 7, 39, 21, 35, 53, 39, 21, 23, 7, 39, 21, 35, 53, 7, 39, 55, 53, 7, 21, 35, 53, 7, 39,
- 55, 39, 55, 23, 55, 39, 7, 39, 55, 39, 55, 23, 53, 51, 21, 23, 53, 39, 55, 23, 2, 57, 97,114, 81,195,218,162, 72, 49, 74,113,
- 81,195,216,217,195, 81,114, 73, 49, 75,162,214,195, 81,114, 97,114, 81,195,216,162, 74, 49, 72,114, 81,195,217,215,195, 82,114,
- 75, 49, 73,162,219,195, 81,114, 4,191, 84, 66,141,113,249,126,226,132, 42, 84, 43, 66,141,112,124,126,113,141, 65, 43, 84, 43,
-131,225,124,247,113,141, 66, 84, 82, 66,140,113,251,124,225,131, 43, 84, 42, 65,142,113,125,124,113,141, 66, 43, 84, 41,131,225,
-126,252,112,141, 66, 0, 0, 0, 0, 1, 0, 50,255,238, 4,159, 4,216, 0,135, 0, 0, 1, 22, 21, 20, 7, 6, 7, 6, 35, 34,
- 39, 38, 39, 7, 23, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 53, 52, 55, 39, 21, 22,
- 23, 30, 1, 20, 14, 1, 34, 46, 1, 52, 54, 55, 54, 55, 53, 7, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 53, 52, 55,
- 54, 55, 54, 50, 23, 22, 23, 55, 39, 6, 7, 6, 35, 34, 46, 1, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 23, 53,
- 38, 39, 46, 1, 52, 54, 55, 54, 51, 50, 30, 1, 20, 6, 7, 6, 7, 21, 55, 38, 53, 52, 55, 54, 55, 54, 51, 50, 23, 22, 4,137,
- 22, 22, 22, 37, 39, 43, 44, 37, 15, 14,196,196, 14, 15, 37, 44, 43, 39, 37, 22, 22, 22, 23, 36, 39, 43, 41, 40, 38, 22, 21, 3,
-196, 17, 16, 37, 44, 44, 75, 87, 75, 44, 44, 37, 16, 17,196, 3, 21, 22, 38, 38, 43, 44, 38, 37, 22, 22, 22, 22, 37, 39, 86, 38,
- 15, 14,196,196, 13, 16, 40, 41, 44, 75, 44, 22, 22, 37, 39, 43, 41, 40, 38, 22, 21, 3,196, 17, 16, 37, 44, 44, 37, 38, 43, 44,
- 75, 44, 44, 37, 16, 17,196, 3, 21, 21, 39, 37, 44, 43, 39, 41, 3,157, 44, 37, 43, 39, 37, 22, 22, 22, 9, 12,113,113, 12, 9,
- 22, 22, 22, 38, 38, 43, 42, 38, 38, 22, 22, 22, 21, 38, 37, 44, 18, 17,114,227, 6, 8, 22, 75, 88, 75, 44, 44, 75, 88, 75, 22,
- 8, 6,227,114, 17, 18, 44, 37, 38, 21, 22, 22, 21, 38, 37, 44, 43, 38, 38, 22, 22, 22, 9, 12,113,113, 12, 9, 22, 44, 75, 88,
- 37, 38, 21, 22, 22, 21, 38, 37, 44, 18, 17,114,227, 5, 9, 22, 75, 88, 75, 21, 22, 43, 75, 88, 75, 22, 9, 5,227,114, 17, 18,
- 44, 37, 36, 23, 22, 22, 24, 0, 0, 9, 0, 41,255,235, 4,168, 4,106, 0, 7, 0, 11, 0, 15, 0, 19, 0, 23, 0, 46, 0, 69,
- 0, 92, 0,115, 0, 0, 0, 20, 6, 34, 38, 52, 54, 50, 9, 1, 55, 9, 2, 55, 1, 37, 1, 39, 9, 2, 39, 1, 55, 38, 39, 38,
- 39, 38, 53, 52, 55, 54, 55, 54, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 3, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 34,
- 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 39, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23,
- 22, 5, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 2,218, 67, 93, 67, 67, 93, 1,
- 64,254,220, 64, 1, 36,253,198,254,221, 64, 1, 35, 1,250,254,220, 64, 1, 36,254, 70,254,221, 64, 1, 35,139, 43, 11, 17, 3,
- 1, 1, 3, 11, 17, 87, 17, 11, 3, 1, 1, 3, 17, 11, 44, 44, 11, 17, 3, 1, 1, 3, 11, 17, 87, 17, 11, 3, 1, 1, 3, 17,
- 11,120, 45, 18, 28, 51, 22, 62, 52, 23, 49, 24, 37, 37, 24, 49, 23, 52, 62, 22, 51, 28, 18, 1,116, 45, 18, 28, 51, 22, 62, 52,
- 23, 49, 24, 37, 37, 24, 49, 23, 52, 62, 22, 51, 28, 18, 2,102, 94, 67, 67, 94, 66,253,223, 1, 37, 64,254,219, 1,186, 1, 35,
- 64,254,221,227,254,219, 64, 1, 37,253,198,254,221, 64, 1, 35,228, 45, 18, 28, 52, 21, 62, 52, 23, 49, 24, 37, 37, 24, 49, 23,
- 52, 62, 21, 52, 28, 18,254,140, 45, 18, 28, 51, 22, 62, 52, 23, 49, 24, 37, 37, 24, 49, 23, 52, 62, 22, 51, 28, 18,209, 43, 12,
- 17, 3, 1, 2, 2, 11, 18, 86, 17, 11, 3, 1, 1, 3, 17, 11, 43, 43, 11, 17, 3, 1, 1, 3, 11, 17, 86, 18, 11, 2, 2, 1,
- 3, 17, 12, 0, 0, 9, 0, 33,255,227, 4,176, 4,114, 0, 7, 0, 11, 0, 15, 0, 19, 0, 23, 0, 43, 0, 63, 0, 83, 0,103,
- 0, 0, 0, 20, 6, 34, 38, 52, 54, 50, 1, 55, 23, 7, 1, 55, 23, 7, 1, 23, 7, 39, 1, 23, 7, 39, 2, 20, 7, 6, 7, 6,
- 34, 39, 38, 39, 38, 52, 55, 54, 55, 54, 50, 23, 22, 23, 18, 20, 7, 6, 7, 6, 34, 39, 38, 39, 38, 52, 55, 54, 55, 54, 50, 23,
- 22, 23, 0, 50, 23, 22, 23, 22, 20, 7, 6, 7, 6, 34, 39, 38, 39, 38, 52, 55, 54, 55, 36, 50, 23, 22, 23, 22, 20, 7, 6, 7,
- 6, 34, 39, 38, 39, 38, 52, 55, 54, 55, 3, 21,101,143,101,101,143,254, 4,227, 66,228, 2, 3,228, 65,227,253,187,228, 66,227,
- 2,134,227, 65,228, 6, 14, 16, 30, 35, 85, 35, 30, 16, 14, 14, 16, 30, 35, 85, 35, 30, 16, 14, 14, 16, 30, 35, 85, 35, 30, 16,
- 14, 14, 16, 30, 35, 85, 35, 30, 16,253,199, 86, 37, 42, 27, 31, 31, 27, 42, 37, 86, 38, 42, 27, 30, 30, 27, 42, 3, 75, 86, 38,
- 42, 27, 30, 30, 27, 42, 38, 86, 37, 42, 27, 31, 31, 27, 42, 2,126,142,102,102,142,101,253,223,227, 65,227, 2,134,227, 65,227,
- 1, 36,227, 65,227,253,252,227, 65,227, 2,132, 86, 37, 42, 27, 31, 31, 27, 42, 37, 86, 38, 42, 27, 30, 30, 27, 42,252,181, 86,
- 38, 42, 27, 30, 30, 27, 42, 38, 86, 37, 42, 27, 31, 31, 27, 42, 1,204, 14, 16, 30, 35, 85, 35, 30, 16, 14, 14, 16, 30, 35, 85,
- 35, 30, 16, 14, 14, 16, 30, 35, 85, 35, 30, 16, 14, 14, 16, 30, 35, 85, 35, 30, 16, 0, 0, 0, 0, 9, 0, 23,255,234, 4,186,
- 4,141, 0, 12, 0, 25, 0, 38, 0, 51, 0, 64, 0, 77, 0, 89, 0, 97, 0,109, 0, 0, 1, 20, 7, 6, 43, 1, 37, 53, 37, 51,
- 50, 23, 22, 5, 52, 55, 54, 59, 1, 5, 21, 5, 35, 34, 39, 38, 1, 22, 21, 20, 15, 2, 39, 63, 1, 54, 51, 50, 1, 38, 53, 52,
- 63, 2, 23, 15, 1, 6, 35, 34, 3, 54, 51, 50, 31, 2, 7, 47, 1, 38, 53, 52, 1, 6, 35, 34, 47, 2, 55, 31, 1, 22, 21, 20,
- 0, 50, 23, 22, 29, 1, 3, 35, 3, 53, 52, 55, 18, 20, 6, 34, 38, 52, 54, 50, 2, 34, 39, 38, 61, 1, 19, 51, 19, 21, 20, 7,
- 4,185, 21, 22, 30, 8,254,193, 1, 63, 8, 29, 23, 21,251, 95, 21, 22, 30, 8, 1, 63,254,193, 8, 29, 23, 21, 3,244, 22, 20,
- 6,252, 54,198, 5, 21, 32, 32,252,207, 22, 20, 6,252, 54,198, 5, 21, 32, 30, 24, 22, 32, 31, 22, 5,198, 54,252, 6, 20, 3,
- 93, 23, 31, 32, 21, 5,198, 54,252, 6, 20,254, 39, 63, 23, 22, 38, 77, 38, 22,169, 67, 95, 67, 67, 95, 16, 63, 23, 22, 38, 77,
- 38, 22, 2, 60, 32, 23, 22, 39, 76, 38, 22, 23, 31, 31, 23, 22, 38, 76, 39, 22, 23, 1,195, 22, 33, 30, 22, 5,198, 54,252, 5,
- 22,252,162, 23, 32, 30, 22, 5,198, 54,252, 5, 22, 3, 94, 23, 22, 5,252, 54,198, 5, 21, 31, 33,252,207, 23, 22, 5,252, 54,
-198, 5, 21, 31, 32, 3,222, 23, 21, 31, 7,254,194, 1, 62, 7, 30, 22,253,245, 95, 67, 67, 95, 68,253, 60, 22, 21, 31, 7, 1,
- 62,254,194, 7, 30, 22, 0, 0, 0, 1, 0, 34,255,233, 4,175, 4, 27, 0,108, 0, 0, 1, 50, 23, 22, 21, 20, 7, 3, 19, 54,
- 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 7, 5, 37, 54, 51, 50, 23, 22, 20, 7, 6, 35, 34, 39, 37, 5, 22, 51, 22, 21, 20, 7,
- 6, 35, 34, 39, 38, 39, 3, 19, 22, 21, 20, 7, 6, 34, 39, 38, 53, 52, 55, 19, 3, 6, 7, 6, 35, 34, 39, 38, 53, 52, 55, 50,
- 55, 37, 5, 6, 35, 34, 39, 38, 52, 55, 54, 51, 50, 23, 5, 37, 38, 39, 38, 53, 52, 55, 54, 51, 22, 23, 22, 23, 19, 3, 38, 53,
- 52, 55, 54, 2,104, 33, 35, 27, 4, 59,214, 15, 2, 39, 38, 49, 24, 22, 39, 8, 18,254,219, 1,104, 19, 9, 57, 26, 35, 35, 27,
- 56, 5, 28,254,157, 1, 41, 21, 1, 39, 22, 24, 49, 33, 44, 8, 13,210, 59, 4, 27, 35, 65, 35, 27, 4, 59,210, 13, 8, 39, 38,
- 49, 24, 22, 39, 1, 21, 1, 41,254,157, 28, 5, 56, 27, 35, 35, 26, 57, 9, 19, 1,104,254,219, 18, 8, 39, 22, 24, 49, 27, 50,
- 2, 15,214, 59, 4, 27, 35, 4, 26, 32, 24, 52, 5, 21,254,181, 1, 16, 20, 1, 37, 22, 21, 46, 38, 33, 6, 12,194, 54, 3, 23,
- 32, 61, 32, 25, 4, 54,196, 16, 37, 34, 46, 21, 22, 37, 7, 17, 1, 13,254,181, 21, 5, 51, 25, 32, 32, 25, 51, 9, 21, 1, 71,
-254,243, 17, 7, 37, 22, 21, 46, 53, 18, 16,196, 54, 4, 25, 32, 61, 32, 23, 3, 54,194, 12, 6, 37, 34, 46, 21, 22, 14, 23, 1,
- 20,254,240, 1, 71, 21, 9, 52, 24, 32, 0, 0, 0, 2, 0, 36,255,245, 4,173, 4, 56, 0, 11, 0, 33, 0, 0, 19, 20, 0, 32,
- 0, 53, 52, 46, 1, 34, 14, 1, 1, 6, 35, 34, 0, 53, 52, 18, 36, 51, 50, 23, 54, 51, 50, 4, 18, 21, 20, 0, 35, 34, 95, 1,
- 28, 1,148, 1, 28,130,233,246,233,130, 2, 9, 18, 18,224,254,192,147, 1, 6,135, 18, 18, 18, 17,138, 1, 6,146,254,192,226,
- 17, 2, 22,201,254,227, 1, 29,201,128,232,126,126,232,253, 97, 1, 1, 62,226,141, 1, 7,141, 1, 1,141,254,251,143,226,254,
-194, 0, 0, 0, 0, 2, 0, 69,255,193, 4,140, 4, 9, 0, 3, 0, 11, 0, 0, 37, 17, 33, 17, 23, 35, 17, 33, 21, 51, 17, 33,
- 4, 14,252,112, 12, 69, 4, 2, 69,251,254, 63, 3,144,252,112, 57, 4, 2, 69,251,255, 0, 0, 0, 2, 0, 61, 0, 0, 4,148,
- 4, 86, 0, 3, 0, 11, 0, 0, 37, 17, 33, 17, 37, 21, 33, 17, 51, 53, 33, 17, 4, 20,252, 99, 3,215,251,240, 69, 4, 16, 58,
- 3,156,252,100, 12, 70, 4, 16, 70,251,240, 0, 0, 2, 0, 56,255,184, 4,153, 4, 25, 0, 3, 0, 9, 0, 0, 37, 17, 33, 17,
- 7, 17, 33, 23, 17, 33, 4, 24,252, 91, 58, 4, 25, 70,251,252, 58, 3,164,252, 92, 59, 4, 25, 91,251,252, 0, 0, 2, 0, 48,
- 0, 0, 4,161, 4,113, 0, 3, 0, 9, 0, 0, 37, 17, 33, 17, 5, 33, 17, 55, 33, 17, 4, 30,252, 78, 3,237,251,215, 93, 4,
- 20, 60, 3,178,252, 78, 59, 4, 41, 71,251,237, 0, 4, 0, 43,255,250, 4,166, 4,116, 0, 3, 0, 7, 0, 11, 0, 15, 0, 0,
- 19, 9, 14, 44, 1, 3, 1, 4,254,252, 1,111, 1, 4, 1, 3,254,253,253,196, 1, 4, 1, 4,254,252,254,252, 1, 4, 1, 4,
-254,252, 2, 57, 1, 3,254,253,254,252, 1, 4, 1, 2,254,254,254,251, 2, 59, 1, 5,254,251,254,253,254,146, 1, 4,254,252,
-254,252, 0, 0, 0, 1, 2, 27,255, 12, 2,182, 5,156, 0, 3, 0, 0, 1, 17, 35, 17, 2,182,155, 5,156,249,113, 6,143, 0,
- 0, 1, 1,205,255, 10, 3, 4, 5,153, 0, 3, 0, 0, 1, 17, 33, 17, 3, 3,254,203, 5,153,249,114, 6,142, 0, 1, 1, 81,
-254,203, 3,128, 5,107, 0, 3, 0, 0, 1, 17, 33, 17, 3,127,253,211, 5,107,249, 96, 6,160, 0, 1, 1,221, 3,207, 2,244,
- 5,217, 0, 6, 0, 0, 1, 33, 17, 55, 51, 7, 51, 2,244,254,233,125, 98, 62,118, 3,207, 1, 23,243,243, 0, 0, 1, 1,211,
- 3,196, 2,254, 5,199, 0, 6, 0, 0, 1, 33, 17, 7, 35, 55, 35, 1,212, 1, 41,133,105, 67,126, 5,198,254,238,239,239, 0,
-255,255, 1, 0, 3,207, 3,209, 5,217, 16, 39, 10, 63, 0,221, 0, 0, 16, 7, 10, 63,255, 35, 0, 0, 0, 0,255,255, 0,246,
- 3,196, 3,219, 5,199, 16, 39, 10, 64, 0,221, 0, 0, 16, 7, 10, 64,255, 35, 0, 0, 0, 0, 0, 2, 0,103,255, 93, 4,106,
- 5,129, 0, 79, 0, 83, 0, 0, 1, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6, 35, 34, 7, 6, 7, 6, 7, 6,
- 20, 23, 22, 23, 22, 23, 22, 51, 50, 55, 54, 55, 54, 55, 54, 53, 17, 35, 34, 39, 38, 53, 52, 54, 59, 1, 53, 55, 21, 33, 7, 35,
- 17, 20, 7, 6, 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 37, 17, 35, 17, 1,185, 25, 21,
- 22, 18, 17, 10, 8, 8, 10, 17, 18, 22, 21, 21, 23, 16, 15, 13, 14, 6, 7, 8, 8, 13, 16, 13, 19, 26, 52, 50, 59, 37, 45, 20,
- 22,250,180,110, 96,212,174,250,114, 1, 21,114,163, 30, 35, 50, 54, 65, 64, 58, 86, 55, 58, 36, 41, 18, 19, 19, 21, 38, 31, 55,
- 46, 1, 89,155, 1,113, 9, 10, 17, 16, 24, 22, 25, 24, 22, 24, 16, 17, 10, 9, 7, 6, 13, 13, 16, 16, 37, 17, 18, 11, 15, 5,
- 7, 22, 27, 36, 46, 50, 55, 55, 1, 29,103, 91,149,154,189,163, 40,203,100,252,162, 86, 68, 81, 52, 57, 31, 30, 20, 21, 37, 42,
- 44, 48, 52, 63, 40, 41, 45, 35, 23, 20,250, 1,230,254, 26, 0, 0, 2, 0,255,255,217, 3,210, 4,201, 0, 23, 0, 53, 0, 0,
- 1, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 18, 50, 23, 22, 23, 22, 23, 22,
- 21, 20, 7, 6, 7, 6, 7, 6, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 2,104,130, 99, 34, 36, 31, 15, 16,110,
-145,106,108,142,110, 16, 15, 31, 30, 40, 76,102,101, 42, 43, 36, 36, 18, 17, 17, 18, 36, 36, 43, 42,101, 42, 43, 36, 37, 17, 17,
- 17, 17, 37, 36, 43, 4,201, 33, 11, 35, 31, 39, 40, 42,100, 82,106,168,168,106, 83, 99, 42, 40, 39, 31, 29, 17, 33,252,249, 18,
- 20, 34, 37, 42, 44, 50, 48, 44, 43, 37, 34, 20, 17, 17, 20, 34, 37, 43, 44, 48, 50, 44, 42, 37, 34, 20, 0, 0, 0, 2, 0,190,
-255,227, 4, 19, 4,211, 0, 37, 0, 67, 0, 0, 1, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 50, 23, 22, 23, 22, 23, 22, 21,
- 52, 55, 54, 55, 54, 55, 54, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 2, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6,
- 7, 6, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 2,104, 99,216,110, 16, 15, 31, 30, 40, 37, 88, 37, 38, 31, 30,
- 16, 16, 17, 16, 30, 31, 38, 38, 87, 37, 40, 30, 31, 15, 16,110,216,150,101, 42, 43, 36, 36, 18, 17, 17, 18, 36, 36, 43, 42,101,
- 42, 43, 36, 37, 17, 17, 17, 17, 37, 36, 43, 2, 44,159,131, 68,106, 42, 40, 39, 31, 29, 17, 16, 16, 16, 30, 30, 40, 38, 44, 44,
- 38, 40, 30, 30, 16, 16, 16, 17, 29, 31, 39, 40, 42,107, 67,131,255, 0, 17, 20, 34, 38, 42, 44, 49, 49, 44, 42, 37, 35, 19, 18,
- 18, 19, 35, 37, 42, 44, 49, 49, 44, 42, 38, 34, 20, 0, 0, 0, 0, 1, 0, 46, 0,105, 4,163, 4, 15, 0, 37, 0, 0, 37, 38,
- 37, 38, 53, 52, 55, 54, 55, 54, 55, 54, 50, 23, 22, 23, 22, 23, 22, 21, 52, 55, 54, 55, 54, 55, 54, 50, 23, 22, 23, 22, 23, 22,
- 21, 20, 7, 4, 2,104,104,254,195,148, 21, 21, 42, 40, 52, 50,117, 50, 52, 41, 40, 22, 21, 22, 22, 40, 41, 52, 50,117, 50, 52,
- 40, 42, 21, 21,148,254,195,105,194,197, 92,144, 61, 57, 55, 44, 42, 25, 23, 23, 24, 43, 42, 57, 54, 64, 64, 54, 57, 42, 43, 24,
- 23, 23, 25, 42, 44, 55, 57, 61,146, 90,197, 0, 0, 1, 0,114,255,251, 4, 95, 5, 25, 0, 39, 0, 0, 1, 6, 3, 6, 35, 34,
- 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51, 50,
- 23, 18, 4, 95,209,211,100,156, 65, 61, 59, 48, 45, 26, 25, 25, 24, 47, 46, 61, 58, 68, 68, 58, 61, 46, 47, 24, 25, 25, 26, 45,
- 48, 59, 61, 65,158, 98,211, 2,138,120,254,148,170, 24, 23, 49, 46, 61, 56, 68, 67, 57, 60, 47, 46, 26, 24, 25, 24, 47, 48, 59,
- 56, 69, 66, 58, 59, 47, 48, 24, 25,170,254,146, 0, 2, 0, 65, 0, 25, 4,144, 4,137, 0, 13, 0,105, 0, 0, 1, 54, 53, 52,
- 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 23, 6, 7, 54, 51, 50, 23, 22, 21, 20, 7, 6, 21, 20, 51, 50, 55, 54, 51, 50, 21, 20,
- 33, 34, 39, 38, 53, 16, 51, 50, 23, 54, 55, 38, 39, 38, 35, 34, 7, 6, 21, 20, 22, 21, 20, 7, 6, 35, 34, 39, 38, 53, 52, 55,
- 54, 51, 50, 31, 1, 52, 55, 54, 51, 50, 23, 22, 21, 20, 7, 22, 51, 50, 55, 54, 53, 52, 39, 38, 53, 52, 55, 54, 51, 50, 23, 22,
- 21, 20, 7, 6, 35, 34, 2,198, 8, 24, 19, 44, 24, 19, 15, 35, 60, 90, 17, 37, 76, 70,101, 48, 36,251,124, 85, 94, 14, 41, 44,
- 51,255, 0,166,151,161,212, 83, 66, 63, 13, 82,187, 56, 60, 68, 51, 33, 35, 22, 29, 16, 26, 20, 12, 94, 76, 95, 85, 40, 61, 33,
- 35, 63, 62, 40, 41, 13, 49, 70, 61, 34, 37, 17, 34, 17, 25, 46, 52, 34, 17,116, 78, 97, 53, 3,140, 38, 36, 52, 33, 27, 15, 12,
- 22, 47, 28, 46,114, 60, 64, 54, 66, 50, 76,178, 95, 48, 62, 81, 35,107, 73,127,124,133,206, 1, 34,114,122, 55, 38,139, 41, 63,
- 41, 44, 30, 31, 23, 19, 16, 23, 37, 20, 61, 94, 75, 61, 30, 46, 67, 25, 26, 50, 54, 70, 64, 49, 14, 27, 29, 25, 51, 15, 29, 17,
- 46, 22, 33, 57, 27, 43, 99, 77, 51, 0, 0, 0, 0, 2, 0, 49, 1, 51, 4,160, 3,198, 0, 7, 0, 78, 0, 0, 1, 6, 7, 6,
- 7, 54, 55, 54, 1, 32, 53, 52, 55, 38, 39, 38, 7, 22, 7, 6, 7, 22, 51, 50, 55, 22, 21, 20, 35, 34, 39, 35, 53, 51, 54, 55,
- 54, 55, 38, 39, 38, 39, 38, 53, 52, 51, 6, 21, 20, 23, 22, 23, 50, 23, 22, 23, 38, 53, 52, 55, 54, 51, 50, 19, 22, 51, 50, 53,
- 52, 39, 38, 53, 52, 51, 50, 21, 20, 7, 6, 1, 53, 51, 37, 53, 22, 64, 50, 54, 1,154,254,209, 96, 39, 44, 32, 32, 2, 61, 78,
- 82, 21, 54, 35, 33, 6,118, 87, 16, 29, 31, 25, 82, 62, 52, 13, 29, 28, 50, 58, 79, 9,116, 53, 4, 49, 34, 34, 46, 25, 49, 38,
- 88,176, 46, 20, 82, 79, 9, 9, 65, 53,200,143, 2,189, 11, 30, 41, 84, 24, 47, 49,254,165,206, 56, 54, 44, 23, 17, 1, 70, 65,
- 83, 12, 58, 35, 24, 40, 61,139, 58,116, 65, 48, 2, 15, 14, 15, 11, 14, 57, 83, 24, 28, 31, 68, 32, 20, 16, 16, 39, 65, 35, 53,
- 31, 24,254,215,125, 49, 24, 15, 14, 22, 49, 66,141, 79, 57, 0, 0, 1, 0,240,255,155, 3,225, 5,130, 0, 32, 0, 0, 5, 34,
- 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 51, 21, 34, 7, 14, 1, 7, 6, 21, 20, 23, 22, 23, 22, 23, 22, 51, 3,
-225,151,138,131,112,109, 56, 56, 56, 52,113,108,135,138,151, 89, 84, 78,135, 33, 32, 32, 33, 67, 64, 82, 80, 93,101, 58, 54,112,
-108,135,134,152,153,137,128,116,109, 57, 58, 39, 54, 50,213,126,127,149,144,127,126,106,102, 55, 55, 0, 0, 0, 0, 1, 0,240,
-255,155, 3,225, 5,130, 0, 34, 0, 0, 23, 48, 53, 50, 55, 54, 55, 54, 55, 54, 53, 52, 39, 46, 1, 39, 38, 35, 48, 53, 50, 23,
- 22, 23, 22, 23, 22, 21, 20, 7, 6, 7, 6, 7, 6,240, 93, 80, 82, 64, 67, 33, 32, 32, 33,135, 78, 84, 89,151,138,135,108,113,
- 52, 56, 56, 56,109,112,131,138,101, 39, 54, 55,102,106,126,127,144,149,127,126,213, 50, 55, 38, 58, 57,109,116,127,138,153,152,
-133,136,108,111, 55, 58, 0, 0, 0, 1, 1,102,255,135, 3,107, 5, 82, 0, 12, 0, 0, 1, 6, 2, 16, 18, 23, 33, 38, 2, 53,
- 52, 18, 55, 3,106,108,106,106,108,254,239,121,121,120,122, 5, 81,187,254,147,254,137,254,143,186,191, 1,113,182,181, 1,112,
-191, 0, 0, 0, 0, 1, 1,110,255,135, 3, 99, 5, 36, 0, 15, 0, 0, 1, 48, 33, 22, 18, 21, 20, 7, 6, 7, 33, 54, 55, 54,
- 16, 2, 1,110, 1, 9,119,117, 59, 59,118,254,247,105, 52, 51,102, 5, 36,186,254,156,176,176,179,179,185,181,178,178, 1,108,
- 1, 99, 0, 0, 0, 1, 1, 67,255,125, 3,142, 5, 85, 0, 5, 0, 0, 5, 35, 9, 1, 51, 1, 3,141,213,254,140, 1,116,213,
-254,138,130, 2,235, 2,236,253, 20, 0, 0, 0, 0, 1, 1, 68,255,125, 3,141, 5, 85, 0, 5, 0, 0, 5, 9, 1, 51, 9, 1,
- 1, 68, 1,117,254,140,212, 1,116,254,140,130, 2,235, 2,236,253, 20,253, 21, 0, 1, 0,210,255, 86, 3,255, 5, 46, 0, 5,
- 0, 0, 5, 33, 9, 1, 33, 1, 3,254,254,182,254, 31, 1,225, 1, 74,254, 22,169, 2,235, 2,236,253, 20, 0, 0, 1, 0,210,
-255, 86, 3,255, 5, 46, 0, 5, 0, 0, 23, 9, 1, 33, 9, 1,211, 1,234,254, 22, 1, 74, 1,225,254, 31,169, 2,235, 2,236,
-253, 20,253, 21, 0, 1, 0,205,255, 65, 4, 4, 5,209, 0, 5, 0, 0, 5, 33, 9, 1, 33, 1, 4, 3,254,109,254, 94, 1,162,
- 1,147,254, 92,190, 3, 71, 3, 72,252,184, 0, 0, 1, 0,206,255, 66, 4, 3, 5,210, 0, 5, 0, 0, 23, 9, 1, 33, 9, 1,
-206, 1,163,254, 94, 1,146, 1,162,254, 94,190, 3, 72, 3, 72,252,184,252,184, 0, 1, 1,201,254,229, 3, 8, 5,118, 0, 7,
- 0, 0, 33, 23, 7, 39, 17, 55, 23, 7, 2, 68,196, 87,232,232, 87,196,195, 87,231, 4,194,231, 87,195, 0, 0, 0, 1, 1,201,
-254,235, 3, 8, 5,124, 0, 7, 0, 0, 1, 39, 55, 23, 17, 7, 39, 55, 2,141,196, 87,232,232, 87,196, 4, 98,195, 87,231,251,
- 62,231, 87,195, 0, 1, 1, 25,254,184, 3,184, 5, 94, 0, 36, 0, 0, 5, 21, 35, 34, 38, 61, 1, 52, 38, 43, 1, 53, 51, 50,
- 54, 61, 1, 52, 54, 59, 1, 21, 35, 34, 6, 29, 1, 20, 6, 7, 30, 1, 29, 1, 20, 22, 51, 3,184,151,178,120, 77,101, 44, 44,
-102, 76,120,178,151, 49,100, 61, 65, 79, 79, 65, 61,100,198,130,133,199,215,136,105,128,104,134,216,199,132,129, 79,127,223,141,
-128, 23, 24,128,140,223,127, 79, 0, 1, 0,249,254,176, 3,216, 5,105, 0, 40, 0, 0, 23, 51, 50, 54, 61, 1, 52, 54, 55, 38,
- 39, 38, 61, 1, 52, 38, 43, 1, 53, 51, 50, 23, 22, 29, 1, 20, 23, 22, 59, 1, 21, 35, 34, 6, 29, 1, 20, 7, 6, 43, 1,250,
- 53,110, 67, 70, 86, 85, 36, 35, 67,110, 53,165,194, 66, 66, 42, 41,112, 47, 47,111, 84, 66, 66,194,165,204, 80,128,226,142,129,
- 25, 22, 65, 65,143,225,129, 80,130, 68, 66,201,219,135, 52, 53,130,105,138,217,201, 68, 67, 0, 0, 1, 0, 83, 1, 47, 4,126,
- 3,229, 0, 8, 0, 0, 9, 1, 35, 1, 33, 53, 33, 1, 51, 4,125,254,165,227, 1, 6,253, 15, 2,241,254,250,227, 2,138,254,
-165, 1, 6,170, 1, 6, 0, 0, 0, 1, 0,116, 0,146, 4, 93, 4,125, 0, 6, 0, 0, 9, 1, 55, 1, 27, 1, 37, 3, 16,253,
-100,148, 2, 94,186, 61,253,164, 1,138, 2, 93,149,253,100, 1, 14,253,164, 62, 0, 1, 0, 83, 1,162, 4,126, 4, 18, 0, 6,
- 0, 0, 1, 5, 53, 5, 3, 9, 1, 3, 47,253, 37, 2,219, 48, 1,126,254,130, 2,168, 35,170, 35, 1, 5,254,201,254,201, 0,
- 0, 1, 0,116, 0,193, 4, 93, 4,171, 0, 6, 0, 0, 9, 1, 39, 1, 45, 1, 3, 3,102,253,162,148, 2,156,254,241, 2, 92,
- 61, 3, 93,253,100,149, 2, 93,186, 62,253,164, 0, 1, 0, 45, 1,161, 4,164, 3,225, 0, 8, 0, 0, 19, 33, 39, 4, 5, 4,
- 5, 55, 33, 46, 2, 20,128, 1, 9, 1,216,254, 40,254,247,128,253,236, 2,239,242,192, 96, 96,192,242, 0, 0, 0, 1, 0, 73,
- 1, 41, 4,136, 4, 61, 0, 50, 0, 0, 0, 20, 7, 6, 7, 1, 6, 7, 6, 34, 38, 39, 38, 39, 38, 53, 52, 55, 54, 63, 1, 33,
- 34, 46, 1, 39, 38, 52, 55, 62, 2, 51, 33, 39, 38, 39, 38, 53, 52, 55, 54, 55, 62, 1, 50, 23, 22, 23, 1, 22, 4,136, 7, 9,
- 12,254,212, 12, 18, 17, 39, 33, 13, 14, 7, 7, 7, 8, 13,139,253, 96, 19, 33, 27, 8, 6, 6, 8, 27, 33, 19, 2,160,139, 13,
- 8, 7, 7, 7, 14, 13, 33, 39, 17, 18, 12, 1, 44, 14, 2,198, 38, 16, 18, 13,254,212, 12, 8, 7, 14, 13, 15, 16, 16, 19, 20,
- 16, 18, 13,140, 14, 26, 18, 16, 38, 16, 18, 26, 15,139, 13, 18, 17, 19, 19, 16, 17, 14, 13, 15, 7, 9, 12,254,212, 14, 0, 0,
- 0, 1, 0, 83, 1,182, 4,126, 4, 38, 0, 6, 0, 0, 1, 33, 53, 33, 17, 9, 1, 3, 70,253, 14, 2,242, 1, 55,254,201, 2,
-210, 56, 1, 27,254,201,254,201, 0, 1, 0, 45, 1,120, 4,164, 4, 20, 0, 6, 0, 0, 1, 33, 53, 33, 53, 9, 1, 3, 86,252,
-216, 3, 40, 1, 77,254,179, 2,114,168,250,254,178,254,178, 0, 0, 4, 0, 54, 1,117, 4,155, 4, 6, 0, 3, 0, 7, 0, 11,
- 0, 18, 0, 0, 1, 35, 17, 51, 3, 35, 17, 51, 3, 35, 17, 51, 1, 33, 17, 33, 53, 9, 1, 1,233,180,180,240, 90, 90,150, 45,
- 45, 2,239,254,211, 1, 45, 1, 73,254,183, 2, 40, 1, 44,254,212, 1, 44,254,212, 1, 44,254,212, 1, 44,178,254,184,254,183,
- 0, 4, 0, 83, 1,156, 4,126, 4, 11, 0, 8, 0, 12, 0, 16, 0, 20, 0, 0, 1, 53, 22, 23, 6, 7, 53, 33, 17, 3, 35, 17,
- 51, 3, 35, 17, 51, 3, 35, 17, 51, 3, 70,131,180,180,131,254,227, 57,171,171,228, 85, 85,142, 42, 42, 3,169, 98,218, 93, 94,
-218, 98, 1,171,254, 85, 1,171,254, 85, 1,171,254, 85, 1,171, 0, 1, 0, 83, 1,132, 4,126, 3,244, 0, 6, 0, 0, 1, 33,
- 17, 33, 53, 9, 1, 3, 70,253, 14, 2,242, 1, 55,254,201, 2, 46, 1, 28,169,254,201,254,201, 0, 2, 0, 96, 1,116, 4,113,
- 4, 24, 0, 2, 0, 6, 0, 0, 1, 33, 37, 23, 9, 2, 2, 12, 1,168,253,141,113,254,174, 4, 17,251,239, 2,198,203,203, 1,
- 82,254,174,254,174, 0, 0, 0, 0, 2, 0,123, 1,164, 4, 86, 4, 36, 0, 2, 0, 6, 0, 0, 1, 7, 37, 33, 9, 2, 2, 16,
-192, 2, 83,254, 24,254,192, 3,219,252, 37, 2,228,193,193, 1, 64,254,192,254,192, 0, 0, 0, 0, 1, 0,123, 1, 31, 4, 86,
- 4,189, 0, 3, 0, 0, 1, 3, 9, 1, 1,116,249, 3,219,252, 37, 2,238, 1,206,254, 50,254, 50, 0, 0, 0, 0, 1, 0, 54,
- 1,140, 4,155, 4, 61, 0, 22, 0, 0, 19, 17, 20, 23, 22, 23, 22, 23, 22, 51, 33, 53, 9, 1, 53, 33, 34, 39, 38, 39, 38, 39,
- 38, 54, 14, 13, 27, 26, 32, 32, 36, 2,104, 1, 73,254,183,253,152, 36, 32, 32, 26, 27, 13, 14, 2,213, 1,104, 36, 32, 32, 27,
- 25, 15, 13,149,254,183,254,183,149, 13, 15, 25, 27, 32, 32, 0, 0, 1, 0, 54, 1,139, 4,155, 4, 60, 0, 22, 0, 0, 19, 52,
- 55, 54, 55, 54, 55, 54, 51, 33, 53, 9, 1, 53, 33, 34, 7, 6, 7, 6, 7, 6, 21, 54, 14, 13, 27, 26, 32, 32, 36, 2,104, 1,
- 73,254,183,253,152, 36, 32, 32, 26, 27, 13, 14, 2,243, 36, 32, 32, 27, 25, 15, 13,149,254,183,254,183,149, 13, 15, 25, 27, 32,
- 32, 36, 0, 0, 0, 1, 1, 79, 1, 6, 3,130, 4,224, 0, 6, 0, 0, 1, 33, 17, 33, 17, 9, 1, 2,101,254,235, 1, 21, 1,
- 28,254,228, 2, 18, 1,194, 1, 12,254, 19,254, 19, 0, 0, 0, 0, 1, 0, 54, 1,110, 4,155, 4, 0, 0, 8, 0, 0, 1, 53,
- 22, 5, 4, 7, 53, 33, 17, 2,226,108, 1, 77,254,179,108,253, 84, 3,137,119,230, 99, 99,230,119, 1,164, 0, 0, 2, 0,101,
- 1,107, 4,108, 4, 33, 0, 8, 0, 15, 0, 0, 1, 53, 33, 17, 33, 53, 51, 9, 1, 39, 21, 9, 1, 21, 33, 21, 2, 95,254, 6,
- 1,250,178, 1, 91,254,165,121, 1, 34,254,222,254, 6, 1,107,169, 1,100,169,254,165,254,165,226,169, 1, 34, 1, 34,169,242,
- 0, 2, 0,101, 1, 47, 4,108, 3,229, 0, 8, 0, 15, 0, 0, 1, 53, 33, 17, 33, 53, 51, 9, 1, 39, 21, 9, 1, 21, 33, 21,
- 2, 95,254, 6, 1,250,178, 1, 91,254,165, 15, 1, 34,254,222,254, 7, 1, 47,169, 1,100,169,254,165,254,165,226,169, 1, 34,
- 1, 34,169,242, 0, 2, 0, 53, 0,183, 4,156, 3,252, 0, 11, 0, 18, 0, 0, 27, 1, 33, 55, 51, 19, 21, 1, 35, 53, 55, 33,
- 37, 7, 1, 3, 7, 33, 7, 54,205, 2, 85, 99, 71,153,253,249,106, 15,253,253, 2,182, 98, 1,202,122, 98,253,170,140, 1,239,
- 1,100,169,254,147,143,254,184,142, 27,199,169, 1, 34, 1, 34,169,242, 0, 0, 0, 2, 0, 97, 0,214, 4,112, 3,171, 0, 11,
- 0, 18, 0, 0, 19, 53, 33, 39, 53, 51, 1, 21, 3, 35, 39, 33, 1, 33, 23, 33, 23, 55, 37, 97, 1,220, 15, 99, 1,223,142, 65,
- 91,253,216, 1,196,253,216,129, 2, 40, 90,113,254, 90, 2,157,123, 23,123,254,228,123,254,196,146, 1, 3,210,146,251,251, 0,
- 0, 2, 0,125, 0,219, 4, 84, 4, 77, 0, 10, 0, 17, 0, 0, 37, 39, 33, 39, 17, 33, 53, 51, 1, 23, 1, 3, 21, 9, 1, 21,
- 33, 17, 2,147, 59,254,113, 75, 1,202, 82, 1,110, 75,254,146, 97, 1, 50,254,206,254, 54,219,119,150, 1,238,119,254,146,150,
-254,146, 1, 73,119, 1, 50, 1, 50,119,254,138, 0, 2, 0, 84, 0,130, 4,125, 4, 62, 0, 10, 0, 17, 0, 0, 1, 51, 1, 7,
- 1, 35, 53, 33, 17, 55, 33, 23, 33, 17, 33, 21, 9, 1, 2,150, 90, 1,140, 81,254,116, 90,254, 16, 81, 1,176, 48,254, 16, 1,
-240, 1, 76,254,180, 4, 62,254,115,162,254,115,129, 2, 24,163,228,254,106,129, 1, 76, 1, 75, 0, 2, 0, 50, 1, 78, 4,159,
- 4,117, 0, 12, 0, 20, 0, 0, 19, 39, 33, 53, 51, 1, 23, 1, 35, 39, 53, 33, 39, 55, 7, 33, 21, 9, 1, 21, 33,163,112, 2,
-133, 83, 1,110, 37,254,146, 82, 38,253,160, 37,181, 85, 2, 97, 1, 50,254,206,253,159, 3, 7,247,119,254,146, 75,254,146, 74,
- 44, 76,247,187,119, 1, 50, 1, 50,119, 0, 0, 0, 2, 0, 41, 0,253, 4,168, 4, 49, 0, 12, 0, 20, 0, 0, 19, 39, 55, 33,
- 53, 55, 51, 1, 7, 1, 35, 53, 33, 55, 7, 33, 21, 9, 1, 21, 33,156,114, 38, 2,106, 38, 83, 1,116, 38,254,140, 83,253,112,
-184, 87, 2,108, 1, 54,254,202,253,148, 2,113,251, 77, 44, 76,254,140, 76,254,140,121,251,190,121, 1, 55, 1, 55,121, 0, 0,
- 0, 1, 0,145, 0,189, 4, 64, 4,172, 0, 33, 0, 0, 19, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 21, 20, 7, 6,
- 7, 6, 7, 6, 35, 34, 39, 38, 39, 38, 39, 33, 21, 9, 1, 21,145, 32, 54, 73, 89, 90,103, 98, 94, 85, 77, 73, 37, 38, 38, 34,
- 76, 70, 92, 90,102, 99, 94, 85, 77, 51, 33, 1,231, 1,116,254,140, 3,167, 58, 54, 73, 38, 38, 38, 35, 76, 72, 90, 90,104, 99,
- 92, 85, 77, 72, 39, 38, 38, 35, 76, 50, 60,129, 1,116, 1,116,128, 0, 0, 0, 0, 9, 0, 88, 1, 78, 4,121, 3, 22, 0, 3,
- 0, 7, 0, 11, 0, 15, 0, 30, 0, 34, 0, 38, 0, 42, 0, 46, 0, 0, 1, 7, 51, 55, 35, 7, 51, 55, 35, 7, 51, 55, 35, 7,
- 51, 55, 35, 53, 39, 33, 23, 33, 53, 22, 23, 6, 7, 53, 33, 7, 33, 1, 51, 39, 35, 23, 51, 39, 35, 23, 51, 39, 35, 23, 51, 39,
- 35, 2, 8,114, 43,113,127,114, 42,114,128,114, 43,114,128,114, 43,114, 86,133, 1,128,133, 1, 22,123,139,139,123,254,234,133,
-254,128, 1,176, 42,113, 43, 29, 42,114, 42, 28, 43,114, 43, 29, 43,114, 43, 2, 21,171,171,171,171,171,171,171,171, 57,199,199,
-198,134, 92, 93,134,198,199, 1, 0,171,171,171,171,171,171,171, 0, 3, 0,116, 0,185, 4, 93, 4,162, 0, 12, 0, 16, 0, 20,
- 0, 0, 1, 55, 6, 21, 20, 23, 38, 35, 34, 7, 55, 39, 55, 9, 1, 35, 1, 37, 53, 1, 21, 3,178,142, 6, 35,116,133, 54, 57,
-143,207, 46,254,119, 1, 90,230,254,166, 1, 21, 1, 89, 1,147,143, 57, 54,133,116, 34, 6,143,207, 46, 1, 42,254,168, 1, 88,
- 47,230,254,167,229, 0, 0, 0, 0, 3, 0, 83, 1,209, 4,126, 3,107, 0, 8, 0, 12, 0, 16, 0, 0, 1, 53, 22, 23, 6, 7,
- 53, 33, 53, 5, 33, 7, 33, 55, 39, 33, 23, 3,141,110,130,130,110,255, 0,254, 85, 1,170,142,254, 86,142,142, 1,170,142, 2,
-186,177,134, 71, 71,134,177, 56, 58,142,200,143,143, 0, 0, 0, 0, 3, 0,117, 0,129, 4, 92, 4,106, 0, 12, 0, 16, 0, 20,
- 0, 0, 1, 39, 22, 51, 50, 55, 6, 21, 20, 23, 39, 7, 39, 9, 1, 21, 1, 3, 35, 1, 51, 3,131,142, 57, 53,133,116, 34, 5,
-142,207, 46,254,214, 1, 89,254,167, 47,230, 1, 89,230, 3,191,143, 6, 34,117,132, 54, 57,143,207, 46,254,120, 1, 88,230,254,
-168, 1, 21, 1, 88, 0, 0, 0, 0, 1, 0, 78, 0,185, 4,131, 4,238, 0, 50, 0, 0, 37, 38, 35, 34, 7, 54, 55, 54, 55, 1,
- 38, 39, 38, 34, 7, 6, 7, 1, 54, 55, 54, 51, 50, 23, 22, 23, 38, 39, 38, 53, 52, 55, 54, 55, 1, 6, 7, 6, 21, 20, 23, 22,
- 23, 1, 54, 55, 54, 55, 6, 21, 20, 4,130,125,144, 58, 60, 63, 77, 35, 21,254,246, 25, 31, 33, 68, 34, 32, 24,254,141, 31, 36,
- 40, 42, 38, 42, 38, 29, 29, 15, 17, 17, 15, 29, 1,115, 28, 9, 12, 12, 13, 24, 1, 10, 3, 14, 32, 63, 6,186, 36, 6, 62, 34,
- 14, 2, 1, 9, 26, 12, 13, 13, 13, 25, 1,115, 32, 14, 16, 16, 15, 31, 31, 37, 42, 38, 42, 40, 38, 30,254,140, 29, 27, 34, 33,
- 35, 33, 30, 26,254,247, 20, 34, 79, 62, 62, 59,142, 0, 0, 0, 0, 1, 0, 42, 1,137, 4,167, 3, 69, 0, 47, 0, 0, 1, 6,
- 7, 52, 55, 54, 55, 33, 34, 7, 6, 7, 6, 7, 6, 21, 33, 52, 55, 54, 55, 54, 55, 54, 51, 34, 39, 38, 39, 38, 39, 38, 53, 33,
- 20, 23, 22, 23, 22, 23, 22, 51, 33, 38, 39, 38, 53, 22, 4,166,140,118, 28, 12, 11,254,184, 31, 27, 28, 22, 21, 12, 12,254, 53,
- 13, 15, 26, 24, 36, 32, 37, 37, 32, 36, 24, 26, 15, 13, 1,203, 12, 12, 21, 22, 28, 27, 31, 1, 72, 11, 12, 28,118, 2,103, 77,
-144, 77, 69, 30, 14, 11, 12, 22, 20, 30, 27, 31, 37, 33, 35, 25, 24, 16, 14, 14, 16, 24, 26, 34, 33, 37, 31, 27, 30, 20, 22, 12,
- 11, 14, 30, 69, 77,144, 0, 0, 0, 1, 0,117, 0,175, 4, 92, 4,151, 0, 50, 0, 0, 1, 6, 21, 20, 23, 38, 39, 38, 39, 7,
- 6, 7, 6, 21, 20, 23, 22, 23, 1, 38, 39, 38, 53, 52, 55, 54, 55, 6, 7, 6, 35, 34, 39, 38, 39, 1, 22, 23, 22, 50, 55, 54,
- 63, 1, 38, 39, 38, 39, 22, 51, 50, 4, 92, 34, 6, 58, 30, 13, 4,246, 25, 10, 11, 11, 12, 23,254,168, 28, 14, 15, 15, 14, 28,
- 28, 35, 39, 36, 39, 36, 35, 28, 1, 89, 22, 30, 31, 64, 31, 28, 24,246, 20, 31, 73, 58, 56, 54,134, 4,151,115,133, 54, 58, 58,
- 73, 32, 18,246, 27, 25, 31, 31, 31, 32, 29, 23,254,167, 27, 35, 38, 39, 35, 39, 34, 29, 29, 13, 15, 15, 14, 28, 1, 88, 22, 13,
- 12, 12, 12, 23,247, 2, 13, 31, 58, 6, 0, 0, 0, 3, 0, 53, 1, 42, 4,156, 3,236, 0, 22, 0, 43, 0, 66, 0, 0, 1, 54,
- 55, 6, 7, 6, 7, 6, 7, 6, 34, 39, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 36, 52, 55, 54, 55, 54, 55, 54, 50, 23, 4,
- 5, 4, 7, 6, 34, 39, 38, 39, 38, 39, 37, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 55, 54, 50, 23, 22, 23, 22, 23, 22, 23,
- 36, 3, 3,184,224,170, 91, 9, 16, 17, 20, 19, 47, 19, 21, 16, 16, 9, 8, 8, 9, 16, 16,253, 72, 11, 13, 20, 22, 27, 26, 61,
- 27, 1, 8, 2,141,253, 97,246, 27, 61, 26, 31, 18, 22, 11, 2,194, 21, 16, 16, 9, 8, 8, 9, 16, 16, 21, 19, 47, 19, 20, 17,
- 13, 12, 90,171,254,239, 2, 4, 73, 61, 88,194, 22, 15, 15, 10, 8, 8, 10, 15, 15, 22, 20, 24, 22, 20, 22, 15, 16,113, 62, 26,
- 30, 19, 21, 12, 12, 11,100, 40, 42, 99, 10, 11, 14, 19, 24, 25,193, 9, 15, 16, 21, 21, 22, 23, 21, 21, 15, 16, 9, 8, 8, 9,
- 16, 12, 24,194, 88, 74, 0, 0, 0, 2, 0, 29, 1,110, 4,180, 3,176, 0, 26, 0, 46, 0, 0, 19, 54, 55, 54, 55, 54, 55, 54,
- 51, 50, 23, 22, 23, 22, 5, 4, 7, 14, 1, 35, 34, 39, 38, 39, 38, 39, 38, 37, 38, 39, 38, 53, 52, 55, 54, 55, 22, 23, 6, 7,
- 38, 39, 38, 53, 52, 55, 54, 29, 53, 24, 26, 16, 32, 32, 35, 38, 43, 42, 49, 41,132, 1, 70,254,186,132, 45, 89, 41, 41, 32, 46,
- 18, 23, 19, 23, 3, 69, 30, 15, 16, 16, 15, 30, 79,205,205, 79, 30, 15, 16, 16, 15, 2,143, 31, 47, 51, 16, 29, 15, 15, 15, 18,
- 26, 83, 62, 62, 83, 28, 31, 15, 24, 20, 29, 38, 47, 31, 32, 35, 36, 41, 41, 37, 35, 31,195, 93, 93,195, 31, 35, 37, 41, 41, 36,
- 35, 0, 0, 0, 0, 1, 0, 38, 1,190, 4,171, 3,166, 0,101, 0, 0, 0, 20, 6, 15, 1, 6, 7, 6, 34, 39, 38, 39, 46, 1,
- 53, 52, 63, 1, 54, 53, 52, 39, 38, 39, 38, 39, 38, 43, 1, 34, 7, 6, 7, 6, 15, 1, 6, 7, 6, 7, 6, 35, 33, 34, 46, 2,
- 52, 63, 1, 54, 52, 47, 1, 38, 52, 54, 55, 54, 55, 54, 51, 33, 50, 23, 22, 23, 22, 31, 1, 22, 23, 22, 23, 22, 59, 1, 50, 55,
- 54, 55, 54, 55, 54, 53, 52, 47, 1, 38, 53, 52, 54, 55, 54, 55, 54, 50, 23, 22, 31, 1, 22, 4,171, 5, 5,195, 3, 7, 6, 13,
- 6, 5, 5, 5, 5, 2, 22, 3, 3, 2, 5, 4, 6, 7, 6,229, 6, 6, 6, 5, 4, 3, 73, 4, 3, 4, 7, 5, 6,254, 14, 6,
- 11, 10, 5, 2, 93, 3, 3, 93, 2, 5, 5, 5, 5, 6, 6, 1,242, 6, 5, 7, 4, 3, 4, 73, 3, 4, 5, 6, 6, 6,229, 6,
- 7, 6, 4, 5, 2, 3, 3, 22, 2, 5, 5, 5, 5, 6, 13, 6, 7, 3,195, 5, 2,185, 14, 12, 5,195, 3, 4, 2, 2, 3, 4,
- 5, 12, 7, 3, 9, 81, 9, 4, 5, 6, 6, 5, 4, 3, 3, 2, 4, 4, 4, 6,146, 9, 2, 4, 3, 3, 5, 10, 11, 15, 5,185,
- 5, 16, 5,185, 5, 15, 11, 5, 4, 3, 3, 3, 2, 5, 2, 9,146, 6, 4, 4, 4, 2, 3, 3, 4, 5, 6, 6, 5, 4, 9, 81,
- 9, 3, 7, 12, 5, 4, 3, 2, 2, 4, 3,195, 5, 0, 0, 0, 0, 1, 0, 37, 1,101, 4,171, 3,241, 0,103, 0, 0, 0, 20,
- 7, 6, 7, 1, 6, 7, 6, 34, 39, 38, 39, 46, 1, 53, 52, 63, 1, 54, 53, 52, 39, 38, 39, 38, 39, 38, 43, 1, 34, 7, 6, 7,
- 6, 15, 1, 6, 7, 6, 7, 6, 35, 33, 34, 46, 2, 52, 63, 1, 54, 52, 47, 1, 38, 52, 54, 55, 54, 55, 54, 51, 33, 50, 23, 22,
- 23, 22, 31, 1, 22, 23, 22, 23, 22, 59, 1, 50, 55, 54, 55, 54, 55, 54, 53, 52, 47, 1, 38, 53, 52, 54, 55, 54, 55, 54, 50, 23,
- 22, 23, 1, 22, 23, 4,171, 2, 3, 5,254,187, 4, 6, 6, 13, 6, 5, 5, 5, 5, 2, 71, 3, 3, 2, 5, 4, 7, 6, 6, 75,
- 6, 6, 6, 4, 5, 3, 97, 4, 3, 5, 6, 5, 7,253,231, 7, 11, 10, 5, 3,117, 2, 2,126, 2, 5, 5, 5, 5, 6, 6, 2,
- 26, 7, 5, 7, 4, 3, 4,105, 3, 5, 4, 6, 6, 6, 75, 6, 6, 7, 4, 5, 2, 3, 3, 71, 2, 5, 5, 5, 5, 6, 13, 6,
- 6, 4, 1, 69, 5, 3, 2,178, 14, 6, 6, 5,254,220, 4, 3, 3, 3, 3, 4, 5, 11, 7, 6, 7,178, 6, 7, 5, 6, 7, 4,
- 4, 3, 3, 2, 4, 4, 4, 6,195, 8, 3, 4, 3, 3, 5, 10, 11, 15, 5,234, 5, 16, 5,250, 5, 15, 11, 5, 4, 3, 3, 3,
- 2, 5, 2, 9,211, 6, 4, 4, 4, 2, 3, 3, 4, 4, 7, 6, 5, 7, 6,178, 7, 6, 7, 11, 5, 4, 3, 3, 3, 3, 4,254,
-220, 5, 6, 0, 0, 3, 0, 50, 1, 12, 4,159, 3,178, 0, 19, 0, 31, 0, 43, 0, 0, 1, 6, 7, 6, 7, 35, 55, 54, 55, 54,
- 55, 38, 39, 38, 47, 1, 51, 22, 23, 22, 1, 35, 54, 55, 54, 55, 33, 53, 33, 6, 7, 6, 3, 22, 23, 22, 23, 33, 53, 33, 38, 39,
- 38, 39, 4,159,103, 63,106, 55, 82, 8, 61,121, 29, 54, 54, 29,121, 61, 8, 82, 54,107, 63,254, 86, 79, 14, 18, 23, 32,253,156,
- 2,241, 83, 43, 13, 10, 10, 13, 43, 83,253, 15, 2,100, 32, 23, 18, 14, 2, 95, 56, 61,101,121, 17,139,117, 27, 39, 38, 28,117,
-138, 17,116,106, 60,254,117, 44, 42, 52, 52, 71,101,101, 29, 2,135, 29, 29,101,101, 71, 51, 53, 42, 43, 0, 0, 0, 3, 0,117,
-254, 35, 4, 92, 6,117, 0, 3, 0, 6, 0, 9, 0, 0, 9, 5, 33, 9, 1, 33, 2,104, 1,244,254, 12,254, 13, 1,243,254,152,
- 2,209,254,151, 1,105,253, 47, 6,117,251,219,251,211, 4, 45, 3, 49,253, 8,252,142, 3, 0, 0, 1, 1,134,254,242, 3, 75,
- 6, 18, 0, 5, 0, 0, 9, 1, 51, 9, 1, 35, 1,135, 1, 25,170,254,231, 1, 25,170, 2,130, 3,144,252,112,252,112, 0, 0,
- 0, 1, 1,134,254,242, 3, 75, 6, 18, 0, 5, 0, 0, 9, 1, 35, 9, 1, 51, 3, 74,254,231,170, 1, 25,254,231,170, 2,130,
-252,112, 3,144, 3,144, 0, 0, 0, 1, 0,117,254, 35, 4, 92, 6,117, 0, 3, 0, 0, 9, 3, 2,104, 1,244,254, 12,254, 13,
- 6,117,251,219,251,211, 4, 45, 0, 1, 0, 88, 0,113, 4,121, 4,147, 0, 19, 0, 0, 1, 17, 51, 17, 51, 21, 35, 17, 35, 17,
- 35, 17, 35, 17, 35, 53, 51, 17, 51, 17, 2,220,168,245,245,168,232,168,244,244,168, 2,215, 1,188,254, 68,170,254, 68, 1,188,
-254, 68, 1,188,170, 1,188,254, 68, 0, 0, 0, 0, 1, 0, 88, 0,113, 4,121, 4,147, 0, 27, 0, 0, 19, 17, 51, 17, 51, 17,
- 51, 17, 51, 17, 51, 17, 51, 21, 35, 17, 35, 17, 35, 17, 35, 17, 35, 17, 35, 17, 35, 53,202,168,162,168,162,168,115,115,168,162,
-168,162,168,114, 2,215, 1,188,254, 68, 1,188,254, 68, 1,188,254, 68,170,254, 68, 1,188,254, 68, 1,188,254, 68, 1,188,170,
-255,255, 0,150, 0,174, 4, 59, 4, 84, 16, 6, 0,153, 0, 0, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 3, 0, 7, 0, 0,
- 55, 33, 17, 33, 3, 17, 33, 17,120, 3,225,252, 31,114, 4,197, 36, 1,240,253,158, 4,196,251, 60, 0, 0, 0, 0, 2, 0, 6,
-255,177, 4,203, 4,119, 0, 3, 0, 7, 0, 0, 19, 33, 17, 33, 3, 17, 33, 17,120, 3,225,252, 31,114, 4,197, 2, 20, 1,240,
-251,174, 4,196,251, 60, 0, 0, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 6, 0, 0, 55, 33, 1, 3, 17, 33, 17,120,
- 3,225,252, 31,114, 4,197, 36, 3,224,251,174, 4,196,251, 60, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 6, 0, 0,
- 37, 17, 33, 3, 17, 33, 17, 4, 89,252, 31,114, 4,197, 36, 3,224,251,174, 4,196,251, 60, 0, 0, 2, 0, 6,255,177, 4,203,
- 4,119, 0, 2, 0, 6, 0, 0, 37, 9, 5, 2,104, 1,203,254, 53,253,158, 2, 98, 2, 99,253,157, 74, 1,202, 1,202,254, 54,
- 2, 98,253,158,253,158, 0, 0, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 6, 0, 0, 19, 1, 17, 9, 3,158, 1,202,
-253,158, 2, 98, 2, 99,253,157, 2, 20,254, 54, 3,148,254, 54, 2, 98,253,158,253,158, 0, 0, 0, 2, 0, 6,255,177, 4,203,
- 4,119, 0, 2, 0, 6, 0, 0, 19, 9, 1, 33, 9, 2,158, 1,202, 1,203,251,211, 2, 98, 2, 99,253,157, 2, 20,254, 54, 1,
-202, 2, 98,253,158,253,158, 0, 0, 2, 0, 6,255,177, 4,203, 4,119, 0, 2, 0, 6, 0, 0, 19, 33, 9, 4,158, 3,149,254,
- 53,253,158, 2, 98, 2, 99,253,157, 2, 20, 1,202,254, 54, 2, 98,253,158,253,158, 0, 0, 0, 0, 12, 0, 6,255,177, 4,203,
- 4,119, 0, 5, 0, 9, 0, 13, 0, 17, 0, 21, 0, 27, 0, 31, 0, 35, 0, 41, 0, 45, 0, 49, 0, 55, 0, 0, 37, 21, 35, 53,
- 51, 53, 19, 21, 35, 53, 19, 21, 35, 53, 3, 21, 35, 53, 35, 21, 35, 53, 39, 21, 51, 21, 35, 53, 19, 21, 35, 53, 19, 21, 35, 53,
- 1, 21, 35, 53, 35, 53, 35, 21, 35, 53, 35, 21, 35, 53, 35, 21, 35, 21, 35, 53, 4,203,205, 90,115,115,115,115,244,174,154,180,
-240, 86,200,114,114,114,114, 4,197,115, 90,154,174,154,180,154, 86,114,126,204,114, 90, 1, 72,174,174, 1, 78,179,179,253, 16,
-114,114,114,114, 90, 90,114,204, 1, 72,174,174, 1, 78,179,179, 1, 98,200, 86,114,114,114,114,114,114, 86,200, 0, 1, 0,137,
- 0, 0, 4, 72, 5,213, 0, 7, 0, 0, 19, 51, 17, 33, 21, 33, 17, 35,137,203, 2,244,253, 12,203, 5,213,253,156,170,253, 57,
- 0, 1, 0,195, 0, 0, 4, 26, 4, 96, 0, 7, 0, 0, 1, 17, 35, 17, 51, 17, 33, 21, 1,123,184,184, 2,159, 2, 3,253,253,
- 4, 96,254, 57,150, 0, 0, 0, 0, 2, 0, 76,255,231, 4,133, 4,104, 0, 10, 0, 39, 0, 0, 1, 34, 21, 17, 50, 55, 54, 53,
- 52, 39, 38, 39, 50, 23, 22, 17, 16, 7, 6, 35, 7, 34, 39, 38, 17, 16, 55, 54, 55, 21, 6, 7, 6, 21, 20, 23, 22, 51, 17, 16,
- 3, 5, 65, 92, 86, 77, 77, 71, 42,138,119,127,127,129,193,183,199,124,126,126,104,154, 65, 49, 76, 76, 78,101, 3,203,145,253,
- 82,104, 93,223,221, 99, 91,157,132,141,254,217,254,230,150,152, 1,153,155, 1, 20, 1, 44,132,109, 28,163, 26, 75,115,190,216,
-101,103, 2,175, 1, 46, 0, 0, 0, 3, 0,193,255,229, 3,221, 5,213, 0, 23, 0, 27, 0, 37, 0, 0, 1, 51, 17, 54, 55, 54,
- 55, 21, 6, 7, 6, 35, 34, 39, 38, 53, 52, 55, 54, 63, 1, 62, 1, 53, 19, 21, 35, 53, 19, 17, 7, 6, 7, 6, 21, 20, 23, 22,
- 2, 37,190, 31, 32, 89, 98, 94, 96, 95,104,186,111,110, 34, 33, 94, 88, 69, 38,197,203, 6, 45, 62, 23, 24, 66, 37, 4, 68,252,
- 83, 8, 12, 35, 68,188, 57, 28, 28, 96, 96,161, 76, 65, 66, 92, 86, 66, 84, 61, 2, 59,254,254,250,190, 1,174, 45, 59, 44, 44,
- 49, 89, 55, 31,255,255, 0,218, 0, 0, 3,247, 5,240, 16, 6, 3,222, 0, 0, 0, 2, 0,137,255,227, 4, 72, 6, 21, 0, 11,
- 0, 37, 0, 0, 1, 34, 6, 21, 20, 22, 51, 50, 54, 53, 52, 38, 39, 54, 18, 17, 16, 2, 35, 34, 2, 17, 52, 54, 55, 46, 1, 53,
- 52, 54, 51, 37, 21, 33, 34, 21, 20, 22, 2,104,140,144,144,140,141,144,144,141,232,248,246,234,233,246,123, 49, 80, 65,194,158,
- 1,252,254, 40,188,114, 3,223,218,214,213,219,219,213,214,218,156, 1,254,209,254,226,254,225,254,211, 1, 45, 1, 31,229,216,
- 42, 47,142, 49,124,148, 1,150,135, 73, 53, 0, 0, 2, 0, 35, 0, 0, 4, 55, 6, 20, 0, 3, 0, 25, 0, 78, 64, 42, 20, 9,
- 22, 2, 18, 14,182, 10, 5,140, 4, 2,196, 0,155, 4,155, 10,194, 16, 12, 6, 25, 9, 4, 13, 0, 6, 1, 4, 15, 9, 6, 11,
- 1, 74, 19, 69, 21, 17, 69, 26, 16,244, 60,228,236, 50,252, 60,196, 16,238, 50, 17, 18, 57, 57, 49, 0, 47, 60,230,236,254,238,
- 16,238, 16,238, 50, 18, 57, 57, 57, 48, 1, 51, 21, 35, 39, 21, 35, 34, 6, 29, 1, 33, 17, 35, 17, 33, 17, 35, 17, 35, 53, 51,
- 53, 52, 54, 51, 3,127,184,184,119,180, 99, 77, 2,147,184,254, 37,184,201,201,169,179, 6, 18,233,235,153, 81,103,101,251,162,
- 3,209,252, 47, 3,209,143, 78,184,174, 0, 0, 0, 1, 0, 35, 0, 0, 4, 55, 6, 20, 0, 21, 0, 66, 64, 35, 16, 7, 18, 3,
- 14, 10,182, 8, 3,140, 0,155, 8,194, 12, 1, 4, 21, 9, 7, 2, 6, 0, 9, 11, 7, 6, 0, 74, 15, 69, 17, 13, 69, 22, 16,
-244, 60,228,236,252, 60,196, 16,238, 17, 18, 57, 57, 49, 0, 47, 60,230,254,238, 16,238, 50, 18, 57, 57, 57, 48, 1, 17, 35, 17,
- 33, 34, 6, 29, 1, 33, 21, 33, 17, 35, 17, 35, 53, 51, 53, 52, 54, 51, 4, 55,184,254,213, 99, 77, 1, 37,254,219,184,201,201,
-169,179, 6, 20,249,236, 5,123, 81,103,101,141,252, 47, 3,209,143, 78,184,174,255,255, 0, 69,254, 12, 4,176, 2, 27, 16, 38,
- 4, 30, 0, 0, 16, 7, 11,204, 2, 30,255, 6,255,255, 0, 69,254, 12, 4,229, 2, 28, 16, 38, 11,198, 0, 0, 16, 7, 11,204,
- 1,252,255, 6,255,255,255,236,254, 12, 2,188, 2, 88, 16, 38, 10,217, 0, 0, 16, 7, 11,204, 2, 12,255, 6,255,255,255,236,
-254, 12, 4,229, 2, 88, 16, 38, 10,218, 0, 0, 16, 7, 11,204, 2, 12,255, 6,255,255, 0, 69,254, 12, 4,176, 2, 27, 16, 38,
- 4, 30, 0, 0, 16, 7, 11,203, 1,189,255, 6,255,255, 0, 69,254, 12, 4,229, 2, 28, 16, 38, 11,198, 0, 0, 16, 7, 11,203,
- 1,120,255, 6,255,255,255,236,254, 12, 3, 28, 2, 88, 16, 38, 10,217, 0, 0, 16, 7, 11,203, 1,140,255, 6,255,255,255,236,
-254, 12, 4,229, 2, 88, 16, 38, 10,218, 0, 0, 16, 7, 11,203, 1,140,255, 6,255,255, 0, 69,254, 12, 4,176, 2, 27, 16, 38,
- 4, 30, 0, 0, 16, 7, 11,205, 1,147,255, 6,255,255, 0, 69,254, 12, 4,229, 2, 28, 16, 38, 11,198, 0, 0, 16, 7, 11,205,
- 1,114,255, 6,255,255,255,236,254, 12, 3, 10, 2, 88, 16, 38, 10,217, 0, 0, 16, 7, 11,205, 1,122,255, 6,255,255,255,236,
-254, 12, 4,229, 2, 88, 16, 38, 10,218, 0, 0, 16, 7, 11,205, 1,152,255, 6,255,255, 0, 69,255,235, 4,176, 3,189, 16, 38,
- 4, 30, 0, 0, 16, 7, 11,204, 2, 55, 3, 39,255,255, 0, 69,255,236, 4,229, 3,195, 16, 38, 11,198, 0, 0, 16, 7, 11,204,
- 2, 1, 3, 45,255,255,255,236, 0, 0, 2,188, 4,120, 16, 38, 10,217, 0, 0, 16, 7, 11,204, 2, 16, 3,226,255,255,255,236,
- 0, 0, 4,229, 4,109, 16, 38, 10,218, 0, 0, 16, 7, 11,204, 2, 15, 3,215,255,255, 0, 69,255,235, 4,176, 4, 26, 16, 38,
- 4, 30, 0, 0, 16, 7, 11,205, 1,147, 3,132,255,255, 0, 69,255,236, 4,229, 4, 26, 16, 39, 11,205, 1,129, 3,132, 16, 6,
- 11,198, 0, 0,255,255,255,236, 0, 0, 3, 31, 4,121, 16, 38, 10,217, 0, 0, 16, 7, 11,205, 1,143, 3,227,255,255,255,236,
- 0, 0, 4,229, 4,124, 16, 38, 10,218, 0, 0, 16, 7, 11,205, 1,140, 3,230,255,255, 0, 69,255,235, 4,176, 4, 87, 16, 38,
- 4, 30, 0, 0, 16, 7, 3,220, 0, 76,253,102,255,255, 0, 69,255,236, 4,229, 4, 72, 16, 39, 3,220, 0, 52,253, 87, 16, 6,
- 11,198, 0, 0,255,255,255,236, 0, 0, 3,184, 4,245, 16, 38, 10,217, 0, 0, 16, 7, 3,220, 0, 75,254, 4,255,255,255,236,
- 0, 0, 4,229, 5, 4, 16, 38, 10,218, 0, 0, 16, 7, 3,220, 0, 93,254, 19,255,255,255,181,255,164, 4,140, 5,114, 16, 38,
- 4, 51, 0, 0, 16, 7, 11,197, 2,116, 3,226,255,255,255,106,255,164, 4,229, 5, 6, 16, 39, 11,197, 2,132, 3,118, 16, 6,
- 11,202, 0, 0,255,255,255,236, 0, 0, 3, 63, 6, 14, 16, 39, 11,197, 1, 44, 4,126, 16, 6, 11,199, 0, 0,255,255,255,236,
- 0, 0, 4,229, 5, 16, 16, 39, 11,197, 1,150, 3,128, 16, 6, 11,200, 0, 0,255,255,255,181,255,164, 4,140, 5,126, 16, 38,
- 4, 51, 0, 0, 16, 7, 11,205, 2,136, 4,232,255,255,255,106,255,164, 4,229, 5, 10, 16, 39, 11,205, 2,140, 4,116, 16, 6,
- 11,202, 0, 0,255,255,255,236, 0, 0, 3, 63, 6, 14, 16, 39, 11,205, 1, 44, 5,120, 16, 6, 11,199, 0, 0,255,255,255,236,
- 0, 0, 4,229, 5, 32, 16, 39, 11,205, 1,154, 4,138, 16, 6, 11,200, 0, 0,255,255, 0, 88,254, 11, 4,173, 3,103, 16, 38,
- 3,235, 0, 0, 16, 7, 11,204, 2,123, 0,175,255,255, 0, 88,254, 11, 4,249, 3,103, 16, 38, 11, 16, 0, 0, 16, 7, 11,204,
- 2, 47, 0,125,255,255,255,236,254, 62, 4, 92, 3, 47, 16, 39, 11,204, 1, 97,255, 56, 16, 6, 11, 17, 0, 0,255,255,255,236,
-254, 62, 4,252, 3, 47, 16, 39, 11,204, 2, 13,255, 56, 16, 6, 11, 18, 0, 0,255,255, 0, 88,254, 11, 4,173, 3,103, 16, 38,
- 3,235, 0, 0, 16, 7, 11,196, 2,138, 0, 25,255,255, 0, 88,254, 11, 4,249, 3,103, 16, 38, 11, 16, 0, 0, 16, 7, 11,196,
- 2, 38,255,231,255,255,255,236,255, 56, 4, 92, 3, 47, 16, 39, 11,196, 0,188,255, 56, 16, 6, 11, 17, 0, 0,255,255,255,236,
-255, 56, 4,252, 3, 47, 16, 39, 11,196, 1,144,255, 56, 16, 6, 11, 18, 0, 0,255,255, 0, 88,254, 11, 4,173, 3,103, 16, 38,
- 3,235, 0, 0, 16, 7, 11,203, 2, 42, 0,150,255,255, 0, 88,254, 11, 4,249, 3,103, 16, 38, 11, 16, 0, 0, 16, 7, 11,203,
- 1,197, 0, 66,255,255,255,236,254, 22, 4, 92, 3, 47, 16, 39, 11,203, 0,240,255, 16, 16, 6, 11, 17, 0, 0,255,255,255,236,
-254, 62, 4,252, 3, 47, 16, 39, 11,203, 1,144,255, 56, 16, 6, 11, 18, 0, 0,255,255, 0, 88,254, 11, 4,173, 3,103, 16, 38,
- 3,235, 0, 0, 16, 7, 11,205, 2, 50, 0,175,255,255, 0, 88,254, 11, 4,249, 3,103, 16, 38, 11, 16, 0, 0, 16, 7, 11,205,
- 1,197, 0, 94,255,255,255,236,254, 22, 4, 92, 3, 47, 16, 39, 11,205, 0,252,255, 16, 16, 6, 11, 17, 0, 0,255,255,255,236,
-254, 62, 4,252, 3, 47, 16, 39, 11,205, 1,144,255, 56, 16, 6, 11, 18, 0, 0,255,255,255,204,254, 8, 4, 97, 4, 55, 16, 38,
- 3,239, 0, 0, 16, 7, 11,197, 2,208, 2,166,255,255,255, 96,254, 12, 4,229, 4, 68, 16, 39, 11,197, 2, 92, 2,180, 16, 6,
- 11, 28, 0, 0,255,255,255,204,254, 8, 4,194, 4,155, 16, 39, 3,220, 1, 85,253,170, 16, 6, 3,239, 0, 0,255,255,255, 96,
-254, 12, 4,229, 4,132, 16, 39, 3,220, 0,233,253,147, 16, 6, 11, 28, 0, 0,255,255, 0, 10,255,167, 5, 93, 6, 20, 16, 6,
- 4, 53, 0, 0, 0, 1,255,131,255,167, 5, 26, 6, 20, 0, 50, 0, 0, 37, 6, 7, 6, 7, 6, 35, 34, 39, 36, 17, 52, 55, 51,
- 6, 21, 20, 23, 22, 51, 50, 54, 55, 54, 53, 52, 39, 3, 38, 53, 52, 55, 54, 55, 1, 21, 1, 6, 21, 20, 23, 1, 22, 59, 1, 21,
- 35, 34, 39, 38, 39, 3,245, 25, 48, 81,128, 99,207,112,108,254,182, 63,184, 65,203, 79, 76,162,218, 54, 52, 41,182, 62, 18, 46,
- 86, 2, 14,254,104, 70, 18, 1,100, 40, 40, 38, 42, 61, 35, 62, 20,182, 50, 40, 73, 61, 47, 32, 98, 1, 11,138, 92, 94,136,120,
- 72, 28,106, 60, 57, 34, 49, 66, 1, 44,102, 37, 84, 31, 79, 65, 1,142,209,254,194, 55, 46, 78, 29,253,194, 63,184, 18, 30, 30,
-255,255,255,236, 0, 0, 4, 43, 6, 20, 16, 6, 11, 73, 0, 0,255,255,255,236, 0, 0, 4,230, 6, 20, 16, 6, 11, 74, 0, 0,
-255,255, 0, 10,255,167, 5, 99, 7, 71, 16, 38, 4, 53, 0, 0, 16, 7, 11,206, 2,172, 0, 14,255,255,255,131,255,167, 5, 26,
- 7, 74, 16, 39, 11,206, 2, 84, 0, 18, 16, 6, 10,204, 0, 0,255,255,255,236, 0, 0, 4, 43, 7, 57, 16, 39, 11,207, 0,143,
- 0, 0, 16, 6, 10,205, 0, 0,255,255,255,236, 0, 0, 4,230, 7, 57, 16, 39, 11,207, 0,156, 0, 0, 16, 6, 10,206, 0, 0,
-255,255, 0, 54,254,181, 4,141, 2,176, 16, 6, 4, 56, 0, 0, 0, 1,255,213,254, 12, 4,230, 2, 12, 0, 38, 0, 0, 1, 6,
- 7, 6, 35, 34, 39, 38, 17, 52, 55, 51, 6, 21, 20, 23, 22, 51, 50, 55, 54, 55, 54, 53, 52, 39, 51, 22, 23, 22, 23, 22, 59, 1,
- 21, 35, 34, 39, 6, 3,200, 71,142,140,129,172,123,234, 53,184, 55,161, 57,129, 84, 63,157, 58, 33,101,184, 17, 35, 34, 31, 35,
- 86, 52, 94, 87, 14, 6,254,247,116, 60, 59, 63,120, 1, 18,174,142,174,142,180, 67, 24, 20, 51,167, 94,119,184,203, 51, 85, 84,
- 56, 64,184, 48,173, 0, 0, 0,255,255, 0, 0,255,189, 4,147, 3,229, 16, 6, 4, 57, 0, 0, 0, 3, 0, 0,255,255, 4,242,
- 3,229, 0, 38, 0, 54, 0, 68, 0, 0, 37, 51, 21, 33, 34, 39, 6, 7, 6, 39, 38, 53, 52, 55, 51, 6, 21, 20, 23, 22, 51, 50,
- 55, 38, 39, 38, 53, 52, 55, 54, 23, 38, 39, 53, 22, 23, 22, 23, 22, 37, 54, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 21, 20, 23,
- 22, 37, 22, 7, 6, 7, 22, 51, 50, 55, 54, 39, 38, 39, 38, 4,144, 98,254,136,190, 74,131,164,145, 68,118, 16,184, 14, 30, 45,
- 40, 48,103, 58, 23, 18, 45, 48, 77, 44, 81,212,227,249, 71, 24,253,205, 36, 34, 39, 15, 22, 58, 65, 23, 22, 7, 21, 1, 71, 13,
- 22, 25, 53, 28, 39,129, 13, 5, 5, 6, 20, 51,184,184, 52, 51, 1, 1, 37, 64,128, 75, 53, 58, 44, 43, 11, 16, 16, 67,102, 78,
- 64, 84, 83, 90, 9, 39, 14,185, 65,182,200,231, 79, 29, 27, 64, 72, 61, 46, 37, 52, 45, 43, 35, 30, 37,118,188, 95, 85, 91, 49,
- 21, 67, 31, 32, 34, 38, 95, 0,255,255,255,236,255,189, 3,227, 3,229, 16, 6, 11, 89, 0, 0, 0, 3,255,236, 0, 0, 4,242,
- 3,229, 0, 28, 0, 44, 0, 58, 0, 0, 37, 38, 39, 38, 53, 52, 55, 54, 23, 38, 39, 53, 22, 23, 22, 23, 22, 7, 51, 21, 33, 34,
- 39, 6, 43, 1, 53, 51, 50, 55, 54, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 37, 22, 7, 6, 7, 22, 51, 50, 55,
- 54, 39, 38, 39, 38, 1, 92, 58, 23, 18, 45, 48, 77, 44, 81,212,227,249, 71, 24, 13,202,254, 32,190, 74,134,161,247,238, 70,226,
- 36, 34, 39, 15, 22, 58, 65, 23, 22, 7, 21, 1, 71, 13, 22, 25, 53, 28, 39,129, 13, 5, 5, 6, 20, 51,200, 67,102, 78, 64, 84,
- 83, 90, 9, 39, 14,185, 65,182,200,231, 79, 56,184, 52, 52,184, 85, 27, 64, 72, 61, 46, 37, 52, 45, 43, 35, 30, 37,118,188, 95,
- 85, 91, 49, 21, 67, 31, 32, 34, 38, 95, 0, 0, 0, 1,255,236, 0, 0, 2,188, 2, 88, 0, 13, 0, 0, 37, 6, 33, 35, 53, 51,
- 32, 55, 54, 61, 1, 51, 21, 20, 2, 96, 72,254,169,213,158, 1, 29, 44, 49,184, 86, 86,184, 44, 49,106,217,217,187, 0, 0, 0,
- 0, 1,255,236, 0, 0, 4,229, 2, 88, 0, 20, 0, 0, 37, 6, 35, 33, 53, 33, 50, 55, 54, 61, 1, 51, 21, 20, 23, 22, 51, 33,
- 21, 33, 34, 2, 94, 76,215,254,177, 1, 24,162, 44, 48,184, 50, 44,163, 1, 42,254,159,214, 86, 86,184, 44, 49,106,217,217,106,
- 49, 44,184, 0,255,255, 0, 25,254,243, 4,209, 3, 28, 16, 6, 4, 2, 0, 0,255,255,255,123,254,240, 4,229, 2, 2, 16, 6,
- 11, 94, 0, 0,255,255,255,236,254,212, 3, 23, 2, 88, 16, 39, 11,196, 1,135,254,212, 16, 6, 10,217, 0, 0,255,255,255,236,
-254,212, 4,229, 2, 88, 16, 39, 11,196, 1,147,254,212, 16, 6, 10,218, 0, 0,255,255, 1, 68, 4,186, 3,140, 6,154, 16, 6,
- 4, 4, 0, 0,255,255,255,236, 0, 0, 4,229, 6,154, 16, 38, 4, 4, 0, 0, 16, 6, 3,249, 0, 0, 0, 0,255,255, 1, 68,
- 4,186, 3,140, 6,253, 16, 6, 4, 5, 0, 0, 0, 1, 3, 34, 0, 0, 4,229, 1,107, 0, 13, 0, 0, 1, 20, 23, 22, 59, 1,
- 21, 35, 34, 39, 38, 61, 1, 51, 3,218, 49, 44, 99, 75,130,142, 92, 87,184, 1, 76, 55, 49, 44,184, 92, 87,141, 43, 0, 0, 0,
-255,255, 1, 68,254, 22, 3,140,255,246, 16, 6, 4, 6, 0, 0,255,255, 1, 68, 4,186, 3,140, 5,170, 16, 6, 4, 7, 0, 0,
-255,255,255,236, 0, 0, 4,229, 5,170, 16, 38, 3,249, 0, 0, 16, 6, 4, 7, 0, 0, 0, 0,255,255, 1, 68, 4,185, 3,140,
- 6,253, 16, 6, 4, 8, 0, 0,255,255,255,236, 0, 0, 4,229, 6,253, 16, 38, 3,249, 0, 0, 16, 6, 4, 8, 0, 0, 0, 0,
-255,255, 1, 68,254,232, 3,140,255,216, 16, 6, 4, 9, 0, 0,255,255,255,236,254,232, 4,229, 0,184, 16, 38, 3,249, 0, 0,
- 16, 6, 4, 9, 0, 0, 0, 0,255,255, 1, 48, 4,202, 3,161, 6,244, 16, 6, 4, 10, 0, 0,255,255,255,236, 0, 0, 4,229,
- 6,244, 16, 38, 3,249, 0, 0, 16, 6, 4, 10, 0, 0, 0, 0,255,255, 1, 86, 4,225, 3,122, 7, 6, 16, 6, 4, 11, 0, 0,
-255,255,255,236, 0, 0, 4,229, 7, 6, 16, 38, 4, 11, 0, 0, 16, 6, 3,249, 0, 0, 0, 0,255,255, 1,178, 0, 85, 4, 45,
- 3,222, 16, 6, 3,223, 0, 0,255,255, 1, 0, 0, 0, 3,208, 7,131, 16, 38, 3,229, 0, 0, 16, 7, 4, 12, 0, 0, 1,194,
-255,255, 1, 0, 0, 0, 4,230, 7,131, 16, 39, 4, 12, 0, 0, 1,194, 16, 6, 10,252, 0, 0,255,255, 1,179, 0, 0, 3, 10,
- 8, 58, 16, 38, 3,229, 0, 0, 16, 7, 4, 13,255,246, 1,194,255,255, 1,228, 0, 0, 4,230, 8, 58, 16, 39, 4, 13, 0, 39,
- 1,194, 16, 6, 10,252, 0, 0,255,255, 0, 76,254, 12, 4, 51, 4,182, 16, 38, 4, 1, 0, 0, 16, 7, 4, 13, 0, 96,254, 62,
-255,255, 0, 90,254, 12, 4,229, 4,182, 16, 39, 4, 13, 0, 50,254, 62, 16, 6, 11, 92, 0, 0,255,255, 1,182,254, 12, 3, 13,
- 6, 20, 16, 38, 3,229, 0, 0, 16, 6, 4, 14,249, 0, 0, 0,255,255, 2, 19,254, 12, 4,230, 6, 20, 16, 38, 4, 14, 86, 0,
- 16, 6, 10,252, 0, 0, 0, 0,255,255, 0, 25,254,243, 4,209, 4, 87, 16, 38, 4, 2, 0, 0, 16, 7, 4, 13,255, 89,253,223,
-255,255,255,123,254,240, 4,229, 3, 96, 16, 39, 4, 13,254,228,252,232, 16, 6, 11, 94, 0, 0,255,255,255,236, 0, 0, 2,254,
- 4,232, 16, 39, 4, 13,255,234,254,112, 16, 6, 10,217, 0, 0,255,255,255,236, 0, 0, 4,229, 4,232, 16, 39, 4, 13, 0, 0,
-254,112, 16, 6, 10,218, 0, 0,255,255, 2, 12, 0, 0, 2,196, 6, 20, 16, 6, 3,229, 0, 0, 0, 1, 2, 76, 0, 0, 4,230,
- 6, 20, 0, 13, 0, 0, 1, 17, 51, 17, 20, 23, 22, 59, 1, 21, 33, 34, 39, 38, 2, 76,184, 50, 44,180,208,254,248,234, 80, 88,
- 1,115, 4,161,251,107,106, 49, 44,184, 92,101,255,255, 0, 69,254,162, 4,176, 2, 27, 16, 38, 4, 30, 0, 0, 16, 7, 11,195,
- 2, 27,254,162,255,255, 0, 69,254,162, 4,229, 2, 28, 16, 39, 11,195, 1,209,254,162, 16, 6, 11,198, 0, 0,255,255,255,236,
-254,212, 2,188, 2, 88, 16, 38, 10,217, 0, 0, 16, 7, 11,195, 1,248,254,212,255,255,255,236,254,212, 4,229, 2, 88, 16, 38,
- 10,218, 0, 0, 16, 7, 11,195, 2, 20,254,212,255,255, 0,222,255,198, 3,243, 4, 26, 16, 38, 4, 0, 0, 0, 16, 7, 11,196,
- 1,106, 3,132,255,255, 0,242, 0, 0, 4,229, 4, 26, 16, 39, 11,196, 1,198, 3,132, 16, 6, 11, 88, 0, 0,255,255, 0, 69,
-255,235, 4,176, 3, 32, 16, 38, 4, 30, 0, 0, 16, 7, 11,196, 1,191, 2,138,255,255, 0, 69,255,236, 4,229, 3, 32, 16, 39,
- 11,196, 1,156, 2,138, 16, 6, 11,198, 0, 0,255,255,255,236, 0, 0, 3, 35, 3,232, 16, 39, 11,196, 1,147, 3, 82, 16, 6,
- 10,217, 0, 0,255,255,255,236, 0, 0, 4,229, 3,232, 16, 39, 11,196, 1,147, 3, 82, 16, 6, 10,218, 0, 0,255,255, 0, 69,
-255,235, 4,176, 4, 26, 16, 38, 4, 30, 0, 0, 16, 7, 11,197, 1,186, 2,138,255,255, 0, 69,255,236, 4,229, 4, 26, 16, 39,
- 11,197, 1,168, 2,138, 16, 6, 11,198, 0, 0,255,255,255,236, 0, 0, 3, 44, 4,226, 16, 38, 10,217, 0, 0, 16, 7, 11,197,
- 1,156, 3, 82,255,255,255,236, 0, 0, 4,229, 4,188, 16, 38, 10,218, 0, 0, 16, 7, 11,197, 1,155, 3, 44,255,255, 0, 88,
-254, 11, 4,173, 3,103, 16, 38, 3,235, 0, 0, 16, 7, 11,195, 2,159, 0, 25,255,255, 0, 88,254, 11, 4,249, 3,103, 16, 39,
- 11,195, 2,112,255,206, 16, 6, 11, 16, 0, 0,255,255,255,236,254,212, 4, 92, 3, 47, 16, 39, 11,195, 2, 13,254,212, 16, 6,
- 11, 17, 0, 0,255,255,255,236,254,212, 4,252, 3, 47, 16, 39, 11,195, 2, 13,254,212, 16, 6, 11, 18, 0, 0,255,255, 0, 88,
-254, 11, 4,173, 3,103, 16, 6, 3,235, 0, 0, 0, 1, 0, 88,254, 11, 4,249, 3,103, 0, 46, 0, 0, 37, 51, 21, 35, 34, 39,
- 38, 39, 38, 39, 6, 7, 6, 21, 20, 23, 22, 5, 50, 55, 21, 6, 7, 4, 39, 38, 53, 16, 55, 54, 55, 38, 7, 6, 7, 53, 36, 23,
- 4, 23, 21, 6, 7, 23, 22, 23, 22, 4,209, 40, 49,129,123, 82, 61, 6, 73,114, 98,224, 74,129, 1, 19,193,212,150,250,254,148,
-169,131,212, 96,137,101,159,135, 95, 1, 20,195, 1, 36,196,109, 31, 29, 51, 72, 90,184,184,150,100,156, 15,178, 24, 80,183,252,
-138, 93,163, 1,118,184, 98, 1, 2,196,152,222, 1, 2,223,101, 52, 3, 22, 19, 41,184, 64, 1, 1, 53,154, 3, 10, 91,160, 95,
-119, 0, 0, 0, 0, 1,255,236, 0, 0, 4, 92, 3, 47, 0, 30, 0, 0, 1, 38, 39, 38, 39, 38, 7, 53, 54, 55, 50, 23, 4, 23,
- 21, 6, 7, 6, 7, 6, 7, 6, 43, 1, 53, 51, 50, 55, 54, 55, 54, 3, 83, 83,103, 85,180, 82,161, 72, 75,162,172, 1, 2,220,
- 76, 88,166, 74,145, 75,221,163,128,100,227,129,104,116, 94, 2, 29, 23, 23, 19, 16, 7, 6,184, 7, 1, 35, 52, 98,154, 24, 52,
- 98, 66,129, 27, 80,184, 72, 58,106, 86, 0, 0, 0, 1,255,236, 0, 0, 4,252, 3, 47, 0, 41, 0, 0, 1, 4, 23, 21, 6, 7,
- 22, 23, 22, 59, 1, 21, 35, 34, 39, 38, 39, 6, 7, 6, 7, 6, 43, 1, 53, 51, 50, 55, 54, 55, 54, 55, 38, 39, 38, 39, 38, 7,
- 53, 54, 55, 50, 2,126, 1, 2,220, 65, 73, 50, 30,104, 54, 60, 80,151,124, 40, 59, 69, 41,145, 75,221,163,128,100,227,129,104,
-116, 94,101, 83,103, 85,180, 82,161, 72, 75,162, 3, 12, 52, 98,154, 20, 41, 78, 34,119,184,168, 54, 97, 46, 37,129, 27, 80,184,
- 72, 58,106, 86, 35, 23, 23, 19, 16, 7, 6,184, 7, 1, 0, 0,255,255, 0, 88,254, 11, 4,173, 4,176, 16, 38, 3,235, 0, 0,
- 16, 7, 11,195, 1,220, 4, 26,255,255, 0, 88,254, 11, 4,249, 4,176, 16, 39, 11,195, 1,216, 4, 26, 16, 6, 11, 16, 0, 0,
-255,255,255,236, 0, 0, 4, 92, 4, 76, 16, 39, 11,195, 2, 13, 3,182, 16, 6, 11, 17, 0, 0,255,255,255,236, 0, 0, 4,252,
- 4, 76, 16, 39, 11,195, 2, 13, 3,182, 16, 6, 11, 18, 0, 0,255,255, 0,232,255,218, 3,232, 3,106, 16, 6, 3,237, 0, 0,
- 0, 1, 0,232,255,218, 4,229, 3,106, 0, 32, 0, 0, 1, 52, 39, 38, 39, 35, 22, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39,
- 21, 22, 51, 50, 55, 54, 55, 22, 59, 1, 53, 35, 34, 39, 38, 3,232, 82, 72,107,227,170, 69, 60, 8, 34,173, 34, 82,133,115,103,
-151, 94, 46,206, 94, 97,147, 83, 28, 99, 44, 82, 1,122,108,149,131,108,184,115,101, 93, 42, 27,115, 46, 9, 42,184, 38, 7, 31,
-130,130,184, 44, 82, 0, 0, 0,255,255, 0,232,255,218, 3,232, 4,176, 16, 38, 3,237, 0, 0, 16, 7, 11,195, 2, 12, 4, 26,
-255,255, 0,232,255,218, 4,229, 4,176, 16, 39, 11,195, 2, 21, 4, 26, 16, 6, 11, 24, 0, 0,255,255,255,204,254, 8, 4, 68,
- 2, 34, 16, 6, 3,239, 0, 0, 0, 1,255, 96,254, 12, 4,229, 2, 38, 0, 24, 0, 0, 1, 51, 22, 23, 22, 23, 22, 59, 1, 21,
- 35, 34, 39, 6, 5, 4, 33, 53, 32, 55, 36, 55, 54, 53, 52, 2,238,184, 30, 3, 10, 73, 42,101, 60,115,130, 50, 57,254,215,254,
-228,254, 32, 1,189,219, 0,255, 34, 10, 2, 38,112, 30,103, 77, 44,184, 62,253,158,151,184,128,149,197, 58, 72,126, 0, 0, 0,
-255,255,255,204,254, 8, 4, 68, 3,182, 16, 38, 3,239, 0, 0, 16, 7, 11,195, 3, 93, 3, 32,255,255,255, 96,254, 12, 4,229,
- 3,182, 16, 39, 11,195, 2,239, 3, 32, 16, 6, 11, 28, 0, 0,255,255,255, 33,254, 20, 4,152, 2,238, 16, 6, 3,241, 0, 0,
- 0, 1,254,213,254, 20, 4,229, 2,238, 0, 70, 0, 0, 5, 34, 39, 38, 39, 6, 7, 6, 7, 6, 39, 6, 7, 6, 7, 6, 35, 34,
- 39, 38, 55, 54, 55, 51, 6, 23, 22, 23, 22, 51, 50, 55, 54, 55, 54, 39, 38, 47, 1, 51, 23, 22, 23, 22, 23, 22, 55, 54, 53, 51,
- 6, 23, 22, 51, 50, 25, 1, 51, 17, 20, 23, 22, 59, 1, 21, 35, 34, 39, 6, 7, 6, 3, 52, 65, 25, 64, 26, 31, 69, 50, 74, 47,
- 49, 8, 30, 37, 61, 71,113, 95,101,118, 18, 20, 60,164, 87, 5, 8, 33, 46, 48, 53, 50, 35, 26, 24, 2, 1, 16, 41,159, 18, 17,
- 21, 49, 39, 47, 45, 37,164, 4, 37, 32, 42,105,164, 41, 44, 59, 8, 63,100, 60, 31, 71, 33, 29, 25, 67,126,109, 56, 40, 2, 2,
- 80,168, 94,121, 77, 92,100,115,213,232,130,225,137,172, 43, 59, 72, 50,122,109,165, 94, 92,234,156,145, 35, 80, 3, 3,125,103,
-194,163,141,120, 1, 24, 1, 38,254,170,139, 41, 44,184, 96, 97, 19, 9, 0, 0, 0, 1,255,236,255,221, 4,148, 2,232, 0, 49,
- 0, 0, 37, 34, 39, 38, 61, 1, 35, 21, 20, 7, 6, 43, 1, 21, 51, 50, 55, 54, 55, 22, 23, 22, 51, 50, 55, 54, 55, 22, 23, 22,
- 51, 50, 55, 54, 55, 54, 53, 17, 35, 17, 16, 35, 34, 39, 38, 55, 35, 20, 7, 6, 1,230, 71, 21, 26,164, 70, 36, 76, 42, 70,101,
- 59, 69, 21, 12, 44, 81, 50, 73, 51, 70, 31, 25, 65, 24, 66, 78, 22, 85, 33, 62,164,104, 43, 31, 38, 5,165, 37, 42,181, 84,100,
- 79,156,192,118, 71, 35,184, 37, 44, 57, 63, 35, 64, 42, 56,109,126, 67, 25, 9, 34, 82,153,159, 1, 86,254,218,254,232,120,141,
-163,194,103,116, 0, 1,255,236,255,221, 4,230, 2,232, 0, 55, 0, 0, 1, 20, 23, 22, 51, 50, 25, 1, 51, 17, 20, 23, 22, 59,
- 1, 21, 35, 34, 39, 6, 7, 6, 35, 34, 39, 38, 39, 6, 7, 6, 35, 34, 39, 38, 39, 6, 7, 6, 43, 1, 53, 51, 50, 55, 54, 61,
- 1, 51, 21, 20, 23, 22, 50, 55, 54, 53, 2,209, 33, 29, 53,100,164, 42, 44, 34, 34, 64,101, 59, 54, 58, 22, 72, 79, 55, 42, 12,
- 30, 70, 51, 53, 67, 37, 38, 24, 20, 70, 58, 68, 70, 42, 55, 31, 64,162, 26, 22, 96, 42, 37, 2, 82,166,138,120, 1, 24, 1, 38,
-254,170,139, 41, 44,184, 96, 88, 27, 10, 73, 54, 91,109, 56, 42, 54, 55, 53, 57, 44, 37,184, 35, 71,118,192,156, 79,100, 84,116,
-103,194, 0, 0,255,255,255, 33,254, 20, 4,152, 4,176, 16, 38, 3,241, 0, 0, 16, 7, 11,197, 1, 54, 3, 32,255,255,254,213,
-254, 20, 4,229, 4,176, 16, 39, 11,197, 0,236, 3, 32, 16, 6, 11, 32, 0, 0,255,255,255,236,255,221, 4,148, 4,176, 16, 39,
- 11,197, 1,150, 3, 32, 16, 6, 11, 33, 0, 0,255,255,255,236,255,221, 4,230, 4,176, 16, 39, 11,197, 1, 82, 3, 32, 16, 6,
- 11, 34, 0, 0,255,255,255, 16,254, 20, 4,192, 2,143, 16, 6, 3,243, 0, 0, 0, 2,254,197,254, 20, 4,229, 2,143, 0, 12,
- 0, 71, 0, 0, 37, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 37, 20, 7, 22, 23, 22, 59, 1, 21, 35, 34, 47, 1, 6, 43,
- 1, 34, 39, 38, 53, 20, 7, 6, 7, 6, 35, 34, 39, 38, 53, 52, 55, 51, 6, 21, 20, 23, 22, 55, 54, 55, 54, 53, 52, 39, 38, 39,
- 51, 6, 23, 22, 23, 54, 55, 54, 51, 50, 23, 22, 1,253,129,140, 73,106, 40, 36, 63, 71,104, 75, 2, 61, 31, 16, 14, 46, 28, 39,
- 59, 52,102, 28,172,136,218, 38, 52, 45, 47, 47, 51,102, 74,130, 90,125,101,172,104, 60, 50, 60, 67, 37, 64, 9, 33, 13,171, 1,
- 14, 10, 40, 76, 49,146,150,171, 91, 87,184, 46, 68, 70, 45, 37, 33,109, 78, 78, 52, 71, 10, 13, 44,184, 94, 26,120, 30, 26, 16,
-175,131,129, 43, 86, 90,125,205,188,172,204,156,145, 50, 41, 3, 4, 59,103,139,104, 62,212, 72, 15, 55, 40, 50,128, 60,177, 82,
- 78, 0, 0, 0, 0, 2,255,236, 0, 0, 4,193, 2,143, 0, 12, 0, 44, 0, 0, 37, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 7,
- 6, 3, 34, 39, 38, 39, 6, 43, 1, 53, 51, 50, 55, 54, 61, 1, 51, 21, 20, 22, 23, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6,
- 35, 2, 73,129,140, 73,106, 40, 36, 63, 71,104, 75, 82, 74, 78, 65, 39,102, 94,130, 75, 43, 37, 65,184, 18, 45, 76, 49,146,150,
-171, 91, 87,184,126,127,184, 46, 68, 70, 45, 37, 33,109, 78,254,216, 42, 35, 61,138,184, 44, 80,100,114, 78, 24, 80, 50,128, 60,
-177, 82, 78,121,190,109, 75, 0, 0, 2,255,236, 0, 0, 4,229, 2,143, 0, 12, 0, 54, 0, 0, 37, 51, 50, 55, 54, 53, 52, 39,
- 38, 35, 34, 7, 6, 3, 34, 39, 38, 39, 6, 43, 1, 53, 51, 50, 55, 54, 61, 1, 51, 21, 20, 22, 23, 54, 55, 54, 51, 50, 23, 22,
- 21, 20, 7, 22, 23, 22, 59, 1, 21, 35, 34, 47, 1, 6, 35, 1,253,129,140, 73,106, 40, 36, 63, 71,104, 75, 82, 74, 78, 65, 39,
-102, 68, 80, 26, 31, 42, 45,184, 18, 45, 76, 49,146,150,171, 91, 87, 31, 16, 14, 46, 28, 39, 59, 52,102, 28,172,136,184, 46, 68,
- 70, 45, 37, 33,109, 78,254,216, 42, 35, 61,138,184, 46, 50,128,114, 78, 24, 80, 50,128, 60,177, 82, 78,121, 52, 71, 10, 13, 44,
-184, 94, 26,120,255,255,255, 16,254, 20, 4,192, 3, 52, 16, 38, 3,243, 0, 0, 16, 7, 11,195, 1, 79, 2,158,255,255,254,197,
-254, 20, 4,229, 3, 52, 16, 39, 11,195, 1, 4, 2,158, 16, 6, 11, 40, 0, 0,255,255,255,236, 0, 0, 4,193, 3,118, 16, 39,
- 11,195, 1, 87, 2,224, 16, 6, 11, 41, 0, 0,255,255,255,236, 0, 0, 4,229, 3,104, 16, 39, 11,195, 1, 52, 2,210, 16, 6,
- 11, 42, 0, 0,255,255, 0, 10, 0, 0, 4,164, 6, 20, 16, 6, 3,245, 0, 0, 0, 2, 0, 20, 0, 0, 4,229, 6, 20, 0, 12,
- 0, 39, 0, 0, 37, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 37, 20, 7, 22, 59, 1, 21, 35, 34, 47, 1, 6, 35, 33, 35,
- 53, 51, 17, 51, 17, 54, 55, 54, 51, 50, 23, 22, 2, 8,129,140, 73,106, 40, 36, 63, 71,104, 75, 2, 61, 42, 61, 37, 45, 58, 93,
- 85, 28,125,149,253,251,178,178,184, 76, 49,146,150,171, 91, 87,184, 46, 68, 70, 45, 37, 33,109, 78, 78, 53, 70, 67,184, 79, 26,
-105,184, 5, 92,251, 14,128, 60,177, 82, 78, 0, 0, 2,255,236, 0, 0, 4,164, 6, 20, 0, 12, 0, 31, 0, 0, 37, 51, 50, 55,
- 54, 53, 52, 39, 38, 35, 34, 7, 6, 19, 33, 35, 53, 51, 17, 51, 17, 54, 55, 54, 51, 50, 23, 22, 21, 20, 7, 6, 2, 44,129,140,
- 73,106, 40, 36, 63, 71,104, 75,136,253,251,254,254,184, 76, 49,142,154,171, 91, 87,184,126,184, 46, 68, 70, 45, 37, 33,109, 78,
-254,216,184, 5, 92,251, 14,128, 60,177, 82, 78,121,190,109, 75, 0, 2,255,236, 0, 0, 4,229, 6, 20, 0, 12, 0, 39, 0, 0,
- 37, 51, 50, 55, 54, 53, 52, 39, 38, 35, 34, 7, 6, 37, 20, 7, 22, 59, 1, 21, 35, 34, 47, 1, 6, 35, 33, 35, 53, 51, 17, 51,
- 17, 54, 55, 54, 51, 50, 23, 22, 2, 8,129,140, 73,106, 40, 36, 63, 71,104, 75, 2, 61, 42, 61, 37, 45, 58, 93, 85, 28,125,149,
-253,251,218,218,184, 76, 49,146,150,171, 91, 87,184, 46, 68, 70, 45, 37, 33,109, 78, 78, 53, 70, 67,184, 79, 26,105,184, 5, 92,
-251, 14,128, 60,177, 82, 78, 0,255,255, 0, 10, 0, 0, 4,164, 6, 20, 16, 38, 3,245, 0, 0, 16, 7, 11,195, 2, 67, 3, 0,
-255,255, 0, 20, 0, 0, 4,229, 6, 20, 16, 39, 11,195, 2, 67, 3, 0, 16, 6, 11, 48, 0, 0,255,255,255,236, 0, 0, 4,164,
- 6, 20, 16, 39, 11,195, 2, 67, 3, 0, 16, 6, 11, 49, 0, 0,255,255,255,236, 0, 0, 4,229, 6, 20, 16, 39, 11,195, 2, 67,
- 3, 0, 16, 6, 11, 50, 0, 0,255,255, 0,122,254, 12, 4,183, 4, 42, 16, 6, 3,247, 0, 0, 0, 2, 0,148,254, 11, 4,244,
- 3, 14, 0, 44, 0, 55, 0, 0, 51, 52, 55, 38, 39, 38, 53, 52, 55, 54, 55, 54, 50, 23, 22, 23, 22, 21, 20, 7, 6, 7, 22, 23,
- 22, 59, 1, 21, 35, 32, 39, 6, 21, 20, 23, 22, 33, 50, 55, 21, 6, 7, 4, 39, 38, 0, 34, 7, 6, 21, 20, 23, 54, 55, 54, 39,
-148,187, 61, 38, 30, 13, 16,104, 89,238, 89,101, 19, 13, 69,118, 55, 68, 87, 95,148,224,208,254,183,248,154, 41,107, 1, 95,193,
-212,150,250,254, 82,157, 98, 1,169, 52, 30, 47, 70,134, 2, 1, 48,212,140, 50, 72, 57, 27, 31, 41, 55, 52, 45, 45, 51, 56, 38,
- 34, 62, 56, 96, 19, 64, 37, 40,184,228,129,106,109, 61,158,118,184, 98, 1, 2,190,119, 3, 22, 7, 12, 32, 36, 65, 55, 46, 32,
- 12, 0, 0, 0, 0, 1,255,236, 0, 0, 3,249, 4, 42, 0, 26, 0, 0, 55, 50, 55, 38, 39, 38, 53, 16, 55, 54, 51, 21, 34, 6,
- 20, 23, 22, 51, 50, 55, 37, 21, 5, 4, 43, 1, 53, 61,161,202, 75, 52, 88,204,125,251,218,186, 62, 83, 70, 56, 73, 1, 32,254,
- 92,254,162,178, 89,184, 93, 24, 59,100,140, 1, 8,125, 77,169,137,255, 52, 70, 33,129,184,197,164,184, 0, 0, 0, 2,255,236,
- 0, 0, 4,229, 3, 14, 0, 36, 0, 47, 0, 0, 37, 6, 43, 1, 53, 51, 50, 55, 54, 55, 38, 39, 38, 53, 52, 55, 54, 55, 54, 50,
- 23, 22, 23, 22, 21, 20, 7, 6, 7, 22, 23, 22, 59, 1, 21, 35, 34, 2, 34, 7, 6, 21, 20, 23, 54, 53, 52, 39, 2,104,194,202,
-240,218,107, 66, 59, 40, 97, 68, 30, 13, 16,104, 89,238, 89,102, 18, 13, 30, 77, 88, 31, 68, 61,112,219,241,202,168, 52, 30, 47,
-103,103, 47,185,185,184, 40, 36, 39, 85, 90, 39, 45, 31, 41, 55, 52, 45, 45, 51, 56, 41, 31, 45, 39, 98, 77, 31, 44, 40,184, 2,
- 85, 7, 12, 32, 29, 95, 95, 29, 32, 12, 0, 0,255,255, 0,122,254, 12, 4,183, 5, 70, 16, 38, 3,247, 0, 0, 16, 7, 11,195,
- 1,119, 4,176,255,255, 0,148,254, 11, 4,244, 4, 76, 16, 39, 11,195, 1,214, 3,182, 16, 6, 11, 56, 0, 0,255,255,255,236,
- 0, 0, 3,249, 5, 70, 16, 39, 11,195, 1,119, 4,176, 16, 6, 11, 57, 0, 0,255,255,255,236, 0, 0, 4,229, 4, 76, 16, 39,
- 11,195, 2, 27, 3,182, 16, 6, 11, 58, 0, 0,255,255,255,181,255,164, 4,140, 4,192, 16, 38, 4, 51, 0, 0, 16, 7, 11,195,
- 2,240, 4, 42,255,255,255,106,255,164, 4,229, 4, 76, 16, 39, 11,195, 2,246, 3,182, 16, 6, 11,202, 0, 0,255,255,255,236,
- 0, 0, 3, 63, 5, 20, 16, 39, 11,195, 1,169, 4,126, 16, 6, 11,199, 0, 0,255,255,255,236, 0, 0, 4,229, 4,126, 16, 39,
- 11,195, 2, 34, 3,232, 16, 6, 11,200, 0, 0,255,255, 0, 31,254,124, 4,116, 5, 20, 16, 38, 4, 31, 0, 0, 16, 7, 11,196,
- 2, 93, 4,126,255,255,255,237,254, 19, 4,229, 4, 1, 16, 39, 11,196, 2, 78, 3,107, 16, 6, 11,201, 0, 0,255,255,255,236,
- 0, 0, 3, 63, 5, 20, 16, 38, 11,199, 0, 0, 16, 7, 11,196, 1, 44, 4,126,255,255,255,236, 0, 0, 4,229, 4,126, 16, 38,
- 11,200, 0, 0, 16, 7, 11,196, 1,150, 3,232,255,255, 0, 8,255,200, 4,159, 6, 20, 16, 6, 3,252, 0, 0, 0, 2,255,161,
-255,200, 4,229, 6, 20, 0, 33, 0, 68, 0, 0, 1, 21, 6, 7, 6, 21, 20, 23, 22, 23, 22, 21, 20, 7, 6, 35, 34, 39, 53, 22,
- 51, 50, 55, 54, 53, 52, 39, 38, 39, 38, 55, 54, 55, 54, 1, 35, 17, 16, 7, 6, 7, 6, 35, 34, 39, 38, 53, 52, 55, 35, 6, 21,
- 20, 23, 22, 55, 54, 55, 54, 55, 22, 59, 1, 53, 35, 34, 39, 38, 53, 2, 20, 74, 38, 80, 14, 12, 68,102, 88, 82, 78, 66, 56, 68,
- 45, 60, 57, 60, 78, 74, 18, 32, 1, 2, 75, 85, 2,130,184, 52, 74, 81, 98,117, 87,121,154, 14,184, 16,217,163,173,199,103, 79,
- 91,113, 80,130, 75, 26, 44, 49, 4, 76, 82, 4, 14, 30, 33, 28, 18, 16, 10, 15, 88,110, 42, 39, 11, 88, 10, 26, 26, 30, 38, 17,
- 16, 28, 47, 46, 81, 38, 43, 1,204,252, 79,254,249, 67, 95, 35, 38, 35, 45, 93, 44, 58, 53, 75,184, 76, 57, 2, 2, 53, 45, 78,
-123,184, 44, 49,106, 0, 0, 0, 0, 1,255,236, 0, 0, 4, 43, 6, 20, 0, 31, 0, 0, 41, 1, 53, 33, 50, 55, 54, 53, 52, 39,
- 1, 38, 53, 52, 55, 54, 55, 1, 21, 5, 6, 7, 6, 21, 20, 23, 1, 22, 21, 20, 7, 6, 1,146,254, 90, 1,146,147, 46, 16, 54,
-254,202, 50, 10, 31,104, 2,233,253,173, 71, 21, 6, 31, 1, 19,102, 62, 95,184,104, 36, 36, 69, 66, 1,124, 61, 81, 30, 38,118,
- 43, 1, 54,186,250, 30, 40, 11, 25, 32, 37,254,182,122,124,113,101,155, 0, 0, 0, 1,255,236, 0, 0, 4,230, 6, 20, 0, 41,
- 0, 0, 41, 1, 53, 33, 50, 55, 54, 53, 52, 39, 1, 38, 53, 52, 55, 54, 55, 1, 21, 5, 6, 7, 6, 21, 20, 23, 1, 22, 23, 22,
- 59, 1, 21, 35, 34, 39, 38, 47, 1, 6, 7, 6, 1,156,254, 80, 1,156,147, 47, 16, 54,254,202, 50, 10, 30,104, 2,234,253,172,
- 70, 22, 6, 32, 2, 70, 22, 38, 44, 64, 88,132, 66, 58,102, 34, 96, 22, 16, 96,184,104, 36, 36, 69, 66, 1,124, 61, 81, 30, 38,
-118, 43, 1, 54,186,250, 30, 40, 11, 25, 32, 37,253, 63, 26, 14, 16,184, 24, 43, 41,120, 46, 27,155, 0, 0, 0,255,255, 0, 66,
-254,200, 4, 75, 6, 20, 16, 6, 3,253, 0, 0, 0, 1, 0, 9,254,200, 4,229, 6, 20, 0, 36, 0, 0, 1, 35, 17, 16, 7, 6,
- 7, 6, 35, 34, 39, 38, 53, 52, 55, 35, 6, 23, 18, 23, 22, 51, 50, 55, 54, 55, 54, 55, 22, 59, 1, 53, 35, 34, 39, 38, 53, 4,
- 18,184, 30, 69, 99, 84,105, 73, 40,166, 65,184, 64, 1, 1,242,119, 99,125, 94,129,104, 51, 15, 78, 56,130, 75, 43, 44, 49, 6,
- 20,251,150,254,216, 57,131, 41, 34, 16, 66,126,115,115, 92,138,254,253, 86, 42, 34, 47,126, 63, 93, 51,184, 44, 49,106, 0, 0,
- 0, 1,255,236, 0, 0, 3,233, 6, 20, 0, 13, 0, 0, 1, 20, 7, 6, 41, 1, 53, 33, 50, 55, 54, 53, 17, 51, 3,233, 87, 80,
-254,240,253,186, 2, 14,218, 44, 49,184, 1,115,178,101, 92,184, 44, 49,106, 4,149, 0, 0, 0, 0, 1,255,236, 0, 0, 4,229,
- 6, 20, 0, 20, 0, 0, 37, 6, 41, 1, 53, 51, 50, 55, 54, 53, 17, 51, 17, 20, 23, 22, 59, 1, 21, 33, 32, 2,104, 76,254,240,
-254,224,234,218, 44, 48,184, 50, 44,218,233,254,223,254,244, 86, 86,184, 44, 49,106, 4,149,251,107,106, 49, 44,184, 0, 0, 0,
-255,255, 0,130,254, 20, 4, 84, 2,243, 16, 6, 3,254, 0, 0, 0, 2, 0, 71,254, 20, 4,229, 2,116, 0, 17, 0, 52, 0, 0,
- 37, 22, 51, 50, 55, 54, 53, 52, 39, 38, 39, 38, 35, 34, 7, 6, 21, 20, 5, 6, 7, 6, 35, 34, 39, 38, 7, 6, 21, 17, 35, 17,
- 52, 55, 54, 51, 38, 53, 52, 55, 54, 51, 50, 23, 22, 23, 30, 1, 59, 1, 21, 35, 34, 2, 12,122, 76, 44, 21, 53, 6, 21, 59, 40,
- 46, 59, 27, 68, 1,192, 15, 13,133, 75,210,112, 35, 73, 25,200,120, 65, 73, 2,162, 77, 92, 72, 84,170, 40, 14, 82,102, 31, 86,
-173,168, 42, 22, 57, 58, 24, 20, 88, 17, 12, 27, 68, 68, 40,169, 14, 8, 80, 78, 25, 75, 26, 79,254,147, 1,109,173,102, 55, 42,
- 40,148,132, 63, 36, 71,179, 64, 94,184, 0, 0, 0, 2,255,236,255,205, 3,166, 2,109, 0, 24, 0, 42, 0, 0, 37, 6, 7, 6,
- 39, 6, 43, 1, 53, 51, 50, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 37, 22, 51, 50, 55, 54, 53, 52, 39, 38, 39,
- 38, 35, 34, 7, 6, 7, 6, 3,100, 96,140,212,112, 64,104,160,116, 52, 44, 43, 5, 20,135, 94, 93, 69, 69,189, 21, 4,253,240,
- 62,159, 47, 19, 52, 5, 22, 58, 39, 39, 53, 41, 50, 15, 7, 52,101, 1, 2,100, 48,184, 36, 35, 49,181, 80, 56, 29, 79,171, 36,
- 42,142, 77, 69, 18, 53, 69, 19, 18, 88, 17, 12, 27, 33, 97, 37, 0, 2,255,236,255,206, 4,229, 2,109, 0, 29, 0, 47, 0, 0,
- 37, 6, 35, 34, 39, 6, 43, 1, 53, 51, 50, 55, 54, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 23, 22, 59, 1, 21, 35, 34, 37, 22,
- 51, 50, 55, 54, 53, 52, 39, 38, 39, 38, 35, 34, 7, 6, 7, 6, 3,124, 97,139,214,110, 64,104,184,140, 52, 44, 43, 5, 20,135,
- 94, 93, 72, 66,193, 17, 5, 51, 38,105,100,155,174,254, 18, 62,159, 47, 19, 52, 5, 22, 58, 39, 39, 53, 41, 46, 19, 7, 52,102,
- 98, 48,184, 36, 35, 49,181, 80, 56, 29, 83,167, 49, 62, 47,184,199, 69, 18, 53, 69, 19, 18, 88, 17, 12, 27, 30,100, 37, 0, 0,
-255,255, 0, 54,254,181, 4,141, 3,132, 16, 38, 4, 56, 0, 0, 16, 7, 11,195, 1,211, 2,238,255,255,255,213,254, 12, 4,230,
- 2,175, 16, 39, 11,195, 1,119, 2, 25, 16, 6, 10,212, 0, 0,255,255,255,236, 0, 0, 2,188, 3,232, 16, 38, 10,217, 0, 0,
- 16, 7, 11,195, 2, 16, 3, 82,255,255,255,236, 0, 0, 4,229, 3,232, 16, 38, 10,218, 0, 0, 16, 7, 11,195, 2, 21, 3, 82,
-255,255, 0,222,255,198, 3,243, 2,222, 16, 6, 4, 0, 0, 0, 0, 2, 0,242, 0, 0, 4,229, 2,238, 0, 10, 0, 36, 0, 0,
- 1, 38, 39, 38, 39, 6, 7, 6, 23, 30, 1, 19, 38, 39, 51, 22, 23, 22, 23, 22, 59, 1, 21, 35, 34, 39, 38, 39, 6, 35, 34, 39,
- 38, 53, 52, 55, 54, 3, 5, 15, 13, 13, 12,120, 82,111, 2, 1,180,116, 4, 3,184, 1, 36, 21, 56, 31,112,113,168, 90, 73, 45,
- 38,138,156, 56, 58,189,204,109, 1, 26, 42, 49, 50,101, 12, 67, 89, 62, 41, 50, 1,209, 39, 43,168,174,101, 79, 44,184, 51, 31,
- 59, 73, 15, 48,154,173,127, 68, 0, 3,255,236,255,189, 3,227, 3,229, 0, 15, 0, 45, 0, 61, 0, 0, 1, 54, 55, 54, 53, 52,
- 39, 38, 35, 34, 7, 6, 21, 20, 23, 22, 7, 50, 55, 38, 39, 38, 53, 52, 55, 54, 23, 38, 39, 53, 22, 23, 4, 23, 22, 21, 20, 7,
- 6, 35, 34, 39, 6, 43, 1, 53, 1, 22, 21, 20, 7, 6, 7, 22, 51, 50, 55, 54, 53, 52, 39, 38, 1,186, 36, 34, 39, 15, 22, 58,
- 65, 23, 22, 7, 21,249, 52, 78, 45, 15, 18, 45, 48, 77, 44, 81,219,220, 1, 5, 59, 14, 40, 74,175,131,154,120,146,175, 2,209,
- 6, 98, 12, 17, 52, 49,126, 16, 7, 33, 29, 1, 13, 27, 64, 72, 61, 46, 37, 52, 45, 43, 35, 30, 37,118,136, 11,105, 69, 78, 64,
- 84, 83, 90, 9, 39, 14,185, 67,180,214,217, 52, 57,103, 61,113,108, 41,184, 1, 68, 37, 39,138,114, 14, 19, 46, 67, 30, 33, 60,
- 78, 69, 0, 0, 0, 3,255,236,254, 13, 4,229, 2,171, 0, 10, 0, 36, 0, 47, 0, 0, 37, 51, 50, 55, 54, 53, 52, 35, 34, 7,
- 6, 7, 18, 55, 54, 51, 50, 23, 22, 21, 20, 7, 33, 21, 33, 22, 21, 20, 7, 6, 35, 34, 39, 38, 3, 33, 53, 5, 20, 23, 22, 51,
- 50, 53, 52, 39, 38, 35, 1,228, 19, 42, 96,114, 84, 75, 74, 38,184, 9,129,108,129,138, 69, 46,163, 1,232,254, 24,163, 46, 69,
-138,129,108,129, 9,254,192, 1,248, 38, 74, 75, 84,114, 96, 42,184, 76, 90, 52,112,141, 72,117, 1, 10,126,107, 99, 67,114,111,
-108,184,108,111,114, 67, 99,107,128, 1, 8,184,184,117, 72,141,112, 52, 90, 76,255,255, 0, 76,254, 12, 4, 51, 2,134, 16, 6,
- 4, 1, 0, 0, 0, 2, 0, 90,254, 12, 4,229, 2,135, 0, 11, 0, 44, 0, 0, 37, 52, 39, 38, 39, 38, 7, 6, 7, 6, 23, 22,
- 5, 51, 21, 35, 39, 6, 7, 6, 7, 6, 33, 53, 32, 55, 54, 55, 38, 39, 38, 39, 38, 39, 38, 55, 54, 55, 54, 23, 22, 23, 22, 23,
- 22, 3, 60, 16, 24, 46, 60, 60, 67, 13, 17, 64, 47, 1,115,246,194, 70, 25,129, 83,105,192,254,147, 1,105,132,168, 62,118, 45,
-139, 51,106, 10, 2, 10, 27,176, 59, 65, 87, 69,133, 22, 13,184, 76, 57, 80, 30, 41, 26, 29, 56, 75, 54, 40, 4,184, 1,156,129,
- 83, 47, 86,184, 76, 95,148, 3, 7, 24, 43, 89,135, 31, 57,155, 75, 25, 1, 2, 49, 92,141, 83,255,255, 0, 25,254,243, 4,209,
- 3, 28, 16, 6, 4, 2, 0, 0, 0, 1,255,123,254,240, 4,229, 2, 2, 0, 55, 0, 0, 37, 38, 39, 38, 39, 38, 53, 52, 55, 54,
- 55, 54, 51, 50, 23, 22, 59, 1, 21, 35, 34, 39, 38, 35, 6, 7, 6, 21, 20, 23, 22, 21, 20, 7, 6, 7, 6, 35, 34, 39, 38, 39,
- 38, 55, 51, 6, 21, 22, 23, 22, 51, 50, 55, 54, 55, 54, 3, 1, 2, 9, 24, 24, 44, 41, 77, 87, 29, 44,130, 46, 64, 34, 35, 35,
-127, 67, 64, 30, 34, 16, 20, 42, 53, 78,104,181,140, 76,121,147,228, 12, 6, 36,178, 26, 1,141, 69,113,130, 58,128, 20, 60, 51,
- 44, 12, 36, 25, 46, 61, 78, 47, 91, 17, 6,138,192,184,172,165, 1, 16, 18, 32, 3, 69, 87, 60, 83, 83,111, 26, 20, 36, 56,198,
- 92,138, 80,116,106, 26, 13, 17, 37, 15, 46, 0,255,255, 0, 25,254, 12, 4,209, 3, 28, 16, 38, 4, 2, 0, 0, 16, 7, 11,196,
- 1, 89,254, 12,255,255,255,123,254, 12, 4,229, 2, 2, 16, 38, 11, 94, 0, 0, 16, 7, 11,196, 0,192,254, 12,255,255,255,236,
-254,212, 3, 18, 2, 88, 16, 39, 11,196, 1,130,254,212, 16, 6, 10,217, 0, 0,255,255,255,236,254,212, 4,229, 2, 88, 16, 39,
- 11,196, 1,147,254,212, 16, 6, 10,218, 0, 0,255,255,255,150,255,236, 4, 30, 6,237, 16, 39, 4, 12,254,150, 1, 44, 16, 6,
- 11,105, 0, 0,255,255,255, 64,255,236, 4,229, 6,237, 16, 39, 4, 12,254, 64, 1, 44, 16, 6, 11,106, 0, 0,255,255, 0, 83,
-255,236, 4, 30, 7,164, 16, 39, 4, 13,254,150, 1, 44, 16, 6, 11,105, 0, 0,255,255,255,224,255,236, 4,229, 7,164, 16, 39,
- 4, 13,254, 35, 1, 44, 16, 6, 11,106, 0, 0,255,255, 0,133,254, 12, 4, 30, 6, 20, 16, 39, 4, 14,254,200, 0, 0, 16, 6,
- 11,105, 0, 0,255,255, 0, 95,254, 12, 4,229, 6, 20, 16, 39, 4, 14,254,200, 0, 0, 16, 6, 11,106, 0, 0, 0, 1, 0,179,
-255,236, 4, 30, 6, 20, 0, 22, 0, 0, 1, 16, 7, 6, 7, 6, 35, 34, 39, 53, 22, 51, 50, 55, 1, 51, 1, 54, 55, 54, 53, 17,
- 51, 4, 30,139, 55, 77,205,158,106, 75, 96, 85,113,136,254, 22,179, 1,170, 29, 20, 37,184, 3, 66,254,212,218, 85, 71,180, 32,
-184, 32,152, 4, 70,252, 65, 43, 55,137,184, 2,174, 0, 0, 0, 0, 1, 0, 95,255,236, 4,229, 6, 20, 0, 31, 0, 0, 1, 6,
- 7, 6, 35, 34, 39, 53, 22, 51, 50, 55, 1, 51, 1, 54, 55, 54, 53, 17, 51, 17, 20, 23, 22, 59, 1, 21, 35, 34, 39, 38, 3, 63,
- 59, 73,202,161,106, 75, 96, 85,113,136,254, 22,179, 1,170, 29, 20, 37,184, 34, 64, 80,105,129,175,102, 17, 1, 60, 91, 65,180,
- 32,184, 32,152, 4, 70,252, 65, 43, 55,137,184, 2,174,252, 68,174, 84,158,184,243, 41, 0, 0, 0, 3, 0, 82,255, 84, 4,126,
- 7, 24, 0, 5, 0, 38, 0, 42, 0, 0, 9, 1, 17, 9, 1, 17, 1, 53, 52, 55, 54, 63, 1, 54, 55, 54, 53, 52, 38, 35, 34, 6,
- 7, 21, 62, 1, 51, 50, 22, 21, 20, 6, 15, 1, 6, 7, 6, 29, 1, 7, 21, 51, 53, 2,104, 2, 22,253,234,253,234, 2,117, 19,
- 18, 70, 88, 94, 34, 33,221,186,104,191, 94, 98,178, 78,109,131, 47, 62, 90, 85, 29, 31, 7,203, 7, 24,254, 23,252, 14,254, 23,
- 1,233, 3,242,252, 98,170, 61, 42, 40, 68, 86, 92, 66, 65, 76,161,192, 56, 57,188, 68, 69,110, 89, 49, 88, 59, 89, 84, 66, 69,
- 98,154,147,254,254, 0, 0, 0,255,255, 0, 37, 0, 0, 4,172, 5,213, 16, 6, 0, 36, 0, 0,255,255, 0,166, 0, 0, 4,113,
- 5,213, 16, 6, 0, 37, 0, 0,255,255, 0,139,255,227, 4, 49, 5,240, 16, 6, 0, 38, 0, 0,255,255, 0,137, 0, 0, 4, 82,
- 5,213, 16, 6, 0, 39, 0, 0,255,255, 0,197, 0, 0, 4, 78, 5,213, 16, 6, 0, 40, 0, 0,255,255, 0,233, 0, 0, 4, 88,
- 5,213, 16, 6, 0, 41, 0, 0,255,255, 0,102,255,227, 4, 80, 5,240, 16, 6, 0, 42, 0, 0,255,255, 0,137, 0, 0, 4, 72,
- 5,213, 16, 6, 0, 43, 0, 0,255,255, 0,201, 0, 0, 4, 6, 5,213, 16, 6, 0, 44, 0, 0,255,255, 0,109,255,227, 3,188,
- 5,213, 16, 6, 0, 45, 0, 0,255,255, 0,137, 0, 0, 4,201, 5,213, 16, 6, 0, 46, 0, 0,255,255, 0,215, 0, 0, 4,115,
- 5,213, 16, 6, 0, 47, 0, 0,255,255, 0, 86, 0, 0, 4,121, 5,213, 16, 6, 0, 48, 0, 0,255,255, 0,139, 0, 0, 4, 70,
- 5,213, 16, 6, 0, 49, 0, 0,255,255, 0,117,255,227, 4, 92, 5,240, 16, 6, 0, 50, 0, 0,255,255, 0,197, 0, 0, 4,117,
- 5,213, 16, 6, 0, 51, 0, 0,255,255, 0,117,254,242, 4, 92, 5,240, 16, 6, 0, 52, 0, 0,255,255, 0,143, 0, 0, 4,209,
- 5,213, 16, 6, 0, 53, 0, 0,255,255, 0,139,255,227, 4, 74, 5,240, 16, 6, 0, 54, 0, 0,255,255, 0, 47, 0, 0, 4,162,
- 5,213, 16, 6, 0, 55, 0, 0,255,255, 0,147,255,227, 4, 61, 5,213, 16, 6, 0, 56, 0, 0,255,255, 0, 57, 0, 0, 4,152,
- 5,213, 16, 6, 0, 57, 0, 0,255,255, 0, 0, 0, 0, 4,209, 5,213, 16, 6, 0, 58, 0, 0,255,255, 0, 18, 0, 0, 4,190,
- 5,213, 16, 6, 0, 59, 0, 0,255,255, 0, 37, 0, 0, 4,172, 5,213, 16, 6, 0, 60, 0, 0,255,255, 0,156, 0, 0, 4,145,
- 5,213, 16, 6, 0, 61, 0, 0,255,255, 0,133,255,227, 4, 35, 4,123, 16, 6, 0, 68, 0, 0,255,255, 0,193,255,227, 4, 88,
- 6, 20, 16, 6, 0, 69, 0, 0,255,255, 0,195,255,227, 4, 37, 4,123, 16, 6, 0, 70, 0, 0,255,255, 0,123,255,227, 4, 18,
- 6, 20, 16, 6, 0, 71, 0, 0,255,255, 0,123,255,227, 4, 88, 4,123, 16, 6, 0, 72, 0, 0,255,255, 0,195, 0, 0, 4, 39,
- 6, 20, 16, 6, 0, 73, 0, 0,255,255, 0,123,254, 72, 4, 18, 4,123, 16, 6, 0, 74, 0, 0,255,255, 0,195, 0, 0, 4, 27,
- 6, 20, 16, 6, 0, 75, 0, 0,255,255, 0,178, 0, 0, 4, 68, 6, 20, 16, 6, 0, 76, 0, 0,255,255, 0,186,254, 86, 3, 16,
- 6, 20, 16, 6, 0, 77, 0, 0,255,255, 0,236, 0, 0, 4,178, 6, 20, 16, 6, 0, 78, 0, 0,255,255, 0,160, 0, 0, 4, 10,
- 6, 31, 16, 6, 0, 79, 0, 0,255,255, 0,109, 0, 0, 4,111, 4,123, 16, 6, 0, 80, 0, 0,255,255, 0,195, 0, 0, 4, 27,
- 4,123, 16, 6, 0, 81, 0, 0,255,255, 0,137,255,227, 4, 72, 4,123, 16, 6, 0, 82, 0, 0,255,255, 0,190,254, 86, 4, 84,
- 4,123, 16, 6, 0, 83, 0, 0,255,255, 0,137,254, 82, 4, 31, 4,119, 16, 6, 0, 84, 0, 0,255,255, 1,106, 0, 0, 4,131,
- 4,123, 16, 6, 0, 85, 0, 0,255,255, 0,213,255,227, 4, 6, 4,123, 16, 6, 0, 86, 0, 0,255,255, 0,131, 0, 0, 4, 8,
- 5,158, 16, 6, 0, 87, 0, 0,255,255, 0,195,255,227, 4, 27, 4, 94, 16, 6, 0, 88, 0, 0,255,255, 0,100, 0, 0, 4,109,
- 4, 96, 16, 6, 0, 89, 0, 0,255,255, 0, 0, 0, 0, 4,209, 4, 96, 16, 6, 0, 90, 0, 0,255,255, 0, 76, 0, 0, 4,133,
- 4, 96, 16, 6, 0, 91, 0, 0,255,255, 0,104,254, 86, 4,129, 4, 96, 16, 6, 0, 92, 0, 0,255,255, 0,203, 0, 0, 4, 16,
- 4, 98, 16, 6, 0, 93, 0, 0,255,255, 0,133,255,227, 4, 76, 5,240, 16, 6, 0, 19, 0, 0,255,255, 0,246, 0, 0, 4, 70,
- 5,213, 16, 6, 0, 20, 0, 0,255,255, 0,152, 0, 0, 4, 35, 5,240, 16, 6, 0, 21, 0, 0,255,255, 0,137,255,227, 4, 55,
- 5,240, 16, 6, 0, 22, 0, 0,255,255, 0,102, 0, 0, 4,111, 5,213, 16, 6, 0, 23, 0, 0,255,255, 0,143,255,227, 4, 45,
- 5,213, 16, 6, 0, 24, 0, 0,255,255, 0,133,255,227, 4, 76, 5,240, 16, 6, 0, 25, 0, 0,255,255, 0,139, 0, 0, 4, 55,
- 5,213, 16, 6, 0, 26, 0, 0,255,255, 0,131,255,227, 4, 78, 5,240, 16, 6, 0, 27, 0, 0,255,255, 0,127,255,227, 4, 70,
- 5,240, 16, 6, 0, 28, 0, 0, 0, 1, 1,219, 4,238, 2,230, 6,102, 0, 3, 0, 17, 64, 6, 0, 3, 4, 1, 3, 4, 16,212,
-204, 49, 0, 16,212,204, 48, 1, 51, 3, 35, 2, 32,198,113,154, 6,102,254,136, 0, 2, 1, 63, 5, 14, 3,145, 5,217, 0, 3,
- 0, 7, 0, 81, 64, 13, 4, 0,222, 6, 2, 8, 5, 97, 4, 1, 97, 0, 8, 16,212,252,212,236, 49, 0, 16,212, 60,236, 50, 48,
- 0, 75,176, 14, 84, 88,189, 0, 8, 0, 64, 0, 1, 0, 8, 0, 8,255,192, 56, 17, 55, 56, 89, 1, 75,176, 14, 84, 75,176, 13,
- 84, 91, 88,189, 0, 8,255,192, 0, 1, 0, 8, 0, 8, 0, 64, 56, 17, 55, 56, 89, 1, 51, 21, 35, 37, 51, 21, 35, 1, 63,203,
-203, 1,136,202,202, 5,217,203,203,203, 0, 0, 0, 1, 1,219, 4,238, 3, 90, 5,246, 0, 3, 0,107,181, 0, 2, 4, 1, 3,
- 4, 16,212,196, 49, 0, 16,212,196, 48, 0, 75,176, 12, 84, 88,189, 0, 4,255,192, 0, 1, 0, 4, 0, 4, 0, 64, 56, 17, 55,
- 56, 89, 0, 75,176, 14, 84, 88,189, 0, 4, 0, 64, 0, 1, 0, 4, 0, 4,255,192, 56, 17, 55, 56, 89, 64, 38, 15, 0, 15, 1,
- 10, 2, 10, 3, 31, 0, 31, 1, 31, 2, 31, 3, 47, 0, 47, 1, 47, 2, 47, 3, 12, 15, 0, 15, 1, 31, 0, 31, 1, 47, 0, 47,
- 1, 6, 93, 1, 93, 1, 51, 3, 35, 2,160,186,229,154, 5,246,254,248, 0, 0, 0, 1, 1, 31, 5, 14, 3,178, 5,233, 0, 29,
- 0,209, 64, 30, 22, 16, 15, 3, 19, 12, 7, 1, 0, 3, 8, 4,204, 23, 12, 19,204, 27, 8, 30, 16, 1, 15, 0, 7, 22, 24, 7,
- 9, 30, 16,212,196,212,196, 17, 57, 57, 57, 57, 49, 0, 16,212, 60,252,212, 60,236, 17, 23, 57, 17, 18, 23, 57, 48, 0, 75,176,
- 14, 84, 75,176, 17, 84, 91, 88,189, 0, 30, 0, 64, 0, 1, 0, 30, 0, 30,255,192, 56, 17, 55, 56, 89, 64,116, 9, 0, 9, 1,
- 15, 11, 15, 12, 15, 13, 13, 14, 15, 15, 15, 16, 15, 17, 15, 18, 15, 19, 15, 20, 15, 21, 15, 22, 15, 23, 15, 24, 11, 25, 26, 0,
- 26, 1, 29, 11, 29, 12, 29, 13, 30, 14, 31, 15, 31, 16, 31, 17, 31, 18, 31, 19, 31, 20, 31, 21, 31, 22, 31, 23, 31, 24, 33, 15,
- 1, 15, 2, 15, 3, 15, 4, 15, 5, 15, 11, 15, 12, 15, 13, 15, 21, 15, 22, 15, 23, 15, 24, 31, 1, 31, 2, 31, 3, 31, 4, 31,
- 5, 31, 11, 31, 12, 31, 13, 31, 21, 31, 22, 31, 23, 31, 24, 24, 93, 1, 93, 1, 39, 46, 1, 35, 34, 6, 29, 1, 35, 52, 54, 51,
- 50, 22, 31, 1, 30, 1, 51, 50, 54, 61, 1, 51, 14, 1, 35, 34, 38, 2,100, 57, 25, 31, 12, 35, 40,125,103, 85, 36, 61, 49, 57,
- 22, 35, 15, 31, 40,125, 2,102, 84, 34, 60, 5, 57, 33, 14, 11, 50, 45, 6,101,118, 16, 27, 30, 13, 12, 51, 41, 6,100,119, 16,
- 0, 1, 1,121, 4,238, 2,246, 5,246, 0, 3, 0,105,181, 0, 1, 4, 1, 3, 4, 16,212,196, 49, 0, 16,212,196, 48, 0, 75,
-176, 12, 84, 88,189, 0, 4,255,192, 0, 1, 0, 4, 0, 4, 0, 64, 56, 17, 55, 56, 89, 0, 75,176, 14, 84, 88,189, 0, 4, 0,
- 64, 0, 1, 0, 4, 0, 4,255,192, 56, 17, 55, 56, 89, 1, 75,176, 14, 84, 88,189, 0, 4, 0, 64, 0, 1, 0, 4, 0, 4,255,
-192, 56, 17, 55, 56, 89, 64, 13, 15, 0, 15, 3, 31, 0, 31, 3, 47, 0, 47, 3, 6, 0, 93, 1, 19, 35, 3, 2, 49,197,154,227,
- 5,246,254,248, 1, 8, 0, 0, 0, 1, 1, 55, 4,238, 3,154, 5,248, 0, 6, 0, 93, 64, 9, 4, 0, 5, 2, 7, 4, 2, 6,
- 7, 16,212,196, 57, 49, 0, 16,212, 60,196, 57, 48, 0, 75,176, 12, 84, 88,189, 0, 7,255,192, 0, 1, 0, 7, 0, 7, 0, 64,
- 56, 17, 55, 56, 89, 0, 75,176, 14, 84, 88,189, 0, 7, 0, 64, 0, 1, 0, 7, 0, 7,255,192, 56, 17, 55, 56, 89, 64, 19, 15,
- 0, 15, 1, 12, 4, 31, 0, 31, 1, 28, 4, 47, 0, 47, 1, 44, 4, 9, 93, 1, 51, 19, 35, 39, 7, 35, 2, 10,189,211,140,166,
-165,140, 5,248,254,246,178,178, 0, 1, 1, 55, 4,238, 3,154, 5,248, 0, 6, 0,105, 64, 9, 3, 4, 1, 0, 7, 3, 5, 1,
- 7, 16,212,196, 57, 49, 0, 16,212,196, 50, 57, 48, 0, 75,176, 14, 84, 88,189, 0, 7, 0, 64, 0, 1, 0, 7, 0, 7,255,192,
- 56, 17, 55, 56, 89, 0, 75,176, 12, 84, 88,189, 0, 7,255,192, 0, 1, 0, 7, 0, 7, 0, 64, 56, 17, 55, 56, 89, 64, 31, 15,
- 1, 15, 2, 10, 3, 15, 4, 15, 5, 31, 1, 31, 2, 26, 3, 31, 4, 31, 5, 47, 1, 47, 2, 42, 3, 47, 4, 47, 5, 15, 93, 1,
- 3, 51, 23, 55, 51, 3, 2, 10,211,140,165,166,140,211, 4,238, 1, 10,178,178,254,246, 0, 0, 0, 1, 0, 27, 1,248, 4, 90,
- 3,106, 0, 3, 0, 25, 64, 10, 1, 0, 3, 2, 4, 2, 0, 3, 1, 4, 16,212,196, 57, 57, 49, 0, 16,212,220,212,204, 48, 19,
- 39, 1, 23, 51, 24, 4, 36, 27, 1,248,108, 1, 6,108, 0, 0, 0, 1, 1, 47, 6,123, 3,162, 7,109, 0, 12, 0, 0, 1, 62,
- 1, 32, 22, 23, 35, 46, 1, 35, 34, 6, 7, 1, 47, 11,158, 1, 32,159, 11,119, 15, 97, 83, 82,100, 12, 6,123,120,122,123,119,
- 56, 55, 57, 54, 0, 1, 1, 47, 6,123, 3,162, 7,109, 0, 13, 0, 31,178, 7, 0, 4,184, 1, 3, 64, 9, 11, 14, 7, 80, 8,
- 1, 80, 0, 14, 16,212,236,212,236, 49, 0, 16,212,252,196, 50, 48, 1, 51, 30, 1, 51, 50, 54, 55, 51, 14, 1, 35, 34, 38, 1,
- 47,119, 12,100, 82, 83, 97, 15,119, 11,159,144,144,158, 7,109, 54, 57, 55, 56,119,123,122, 0, 0, 1, 2, 1, 6,131, 2,206,
- 7, 80, 0, 3, 0, 18,183, 0,222, 2, 4, 1, 97, 0, 4, 16,212,236, 49, 0, 16,212,236, 48, 1, 51, 21, 35, 2, 1,205,205,
- 7, 80,205, 0, 0, 2, 1, 88, 6, 99, 4, 22, 7,107, 0, 3, 0, 7, 0, 25, 64, 10, 0, 4, 3, 7, 8, 1, 3, 5, 7, 8,
- 16,212,204,212,204, 49, 0, 16,212, 60,204, 50, 48, 1, 51, 3, 35, 3, 51, 3, 35, 3, 92,186,229,154,122,186,229,154, 7,107,
-254,248, 1, 8,254,248, 0, 0, 0, 2, 0,187, 6, 99, 3,121, 7,107, 0, 3, 0, 7, 0, 0, 1, 19, 35, 3, 33, 19, 35, 3,
- 1,117,197,154,229, 1,249,197,154,229, 7,107,254,248, 1, 8,254,248, 1, 8, 0, 2, 1,102, 0, 0, 3,149, 5,241, 0, 36,
- 0, 40, 0, 0, 1, 35, 53, 52, 55, 54, 63, 1, 62, 1, 53, 52, 39, 38, 39, 38, 7, 6, 7, 53, 54, 55, 54, 23, 22, 23, 22, 21,
- 20, 7, 6, 15, 1, 6, 7, 6, 21, 3, 51, 21, 35, 2,174,194, 19, 20, 55, 58, 41, 30, 42, 37, 62, 56, 39, 57, 64, 66, 57, 81,
- 91,126, 67, 71, 21, 22, 61, 57, 46, 12, 12,199,203,203, 1,145,154, 98, 69, 66, 84, 89, 59, 88, 49, 73, 42, 37, 4, 2, 22, 35,
- 68,217, 62, 23, 34, 6, 7, 89, 96,161, 76, 65, 66, 92, 86, 69, 39, 42, 61,254,195,254, 0, 0, 0, 1, 1, 61, 6,156, 3,147,
- 7, 48, 0, 3, 0, 17,182, 2,182, 0, 4, 1, 0, 4, 16,212,204, 49, 0, 16,212,236, 48, 1, 33, 21, 33, 1, 61, 2, 86,253,
-170, 7, 48,148, 0, 1, 0,156,255, 52, 4, 53,255,166, 0, 3, 0, 0, 5, 33, 53, 33, 4, 53,252,103, 3,153,204,114, 0, 0,
- 0, 1, 0, 6,255, 52, 4,203,255,166, 0, 3, 0, 0, 5, 33, 53, 33, 4,203,251, 59, 4,197,204,114, 0, 0, 0, 1, 1, 0,
-255, 52, 3,209,255,166, 0, 3, 0, 0, 5, 33, 53, 33, 3,209,253, 47, 2,209,204,114, 0, 0, 0, 2, 1, 94, 1,212, 3,115,
- 3,233, 0, 11, 0, 19, 0, 0, 1, 50, 23, 30, 1, 21, 20, 6, 34, 38, 52, 54, 22, 34, 6, 20, 22, 50, 54, 52, 2,104,114, 76,
- 38, 39,156,226,151,154,171,118, 85, 82,121, 86, 3,233, 80, 37, 96, 56,110,154,151,226,156,124, 84,121, 82, 84,118, 0, 0, 0,
- 0, 2, 1, 63, 5, 70, 3,145, 6, 16, 0, 3, 0, 7, 0, 0, 1, 51, 21, 35, 37, 51, 21, 35, 1, 63,203,203, 1,136,202,202,
- 6, 16,202,202,202, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,150, 0,150, 0, 3, 0, 0, 53, 51, 21, 35,150,150,150,150, 0, 0,
- 0, 2, 0, 0, 0, 0, 1,144, 0,150, 0, 3, 0, 7, 0, 0, 55, 51, 21, 35, 39, 51, 21, 35,250,150,150,250,150,150,150,150,
-150,150, 0, 0, 0, 3, 0, 0, 0, 0, 1,144, 1,144, 0, 3, 0, 7, 0, 11, 0, 0, 19, 51, 21, 35, 23, 51, 21, 35, 39, 51,
- 21, 35,125,150,150,125,150,150,250,150,150, 1,144,150,100,150,150,150, 0, 0, 0, 1, 0, 69,255,236, 4,229, 2, 28, 0, 38,
- 0, 0, 5, 34, 39, 38, 53, 52, 55, 51, 6, 21, 20, 23, 22, 51, 50, 55, 54, 55, 54, 53, 52, 39, 51, 22, 21, 20, 23, 22, 59, 1,
- 21, 35, 34, 39, 38, 39, 6, 7, 6, 2, 31,186,131,157, 41,184, 43,117, 98,127, 69,130, 87, 45, 55, 29,184, 19, 24, 19, 24, 33,
- 75, 52, 47, 43, 20, 88, 96,116, 20, 56, 65,219, 62,124,138, 48,108, 30, 25, 55, 37, 53, 65, 56, 62, 55, 75, 90,100, 51, 40,184,
- 44, 42, 79, 81, 47, 57, 0, 0, 0, 2,255,236, 0, 0, 3, 63, 3,217, 0, 15, 0, 48, 0, 0, 1, 54, 53, 52, 39, 38, 7, 6,
- 7, 6, 7, 20, 23, 22, 51, 50, 1, 51, 50, 55, 54, 55, 54, 55, 6, 7, 6, 39, 38, 53, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23,
- 22, 21, 20, 7, 6, 7, 6, 35, 33, 2, 86, 41, 66, 31, 44, 52, 40, 40, 1, 55, 40, 42, 72,253,174,241, 84,151, 79, 60, 31, 15,
- 63, 97,130, 78, 98, 8, 23,150, 78, 76, 90, 66, 96, 46, 23, 78, 74,124,109,145,254,191, 2, 25, 43, 77, 59, 51, 25, 1, 1, 42,
- 41, 51, 80, 38, 25,254,183, 23, 12, 93, 48, 50, 55, 2, 2, 69, 87,129, 52, 44,148, 69, 36, 50, 72,102, 51,140,208,143,136, 44,
- 39, 0, 0, 0, 0, 2,255,236, 0, 0, 4,229, 3, 8, 0, 32, 0, 51, 0, 0, 1, 22, 23, 22, 21, 20, 7, 6, 7, 22, 59, 1,
- 21, 33, 34, 39, 6, 35, 33, 53, 51, 50, 55, 38, 39, 38, 53, 52, 55, 54, 55, 54, 50, 6, 34, 7, 6, 7, 6, 21, 20, 23, 22, 23,
- 54, 55, 54, 53, 52, 39, 38, 39, 2,200,183, 25, 8, 22, 28, 36, 38,148,225,254,197,136,186,184,136,254,196,226,146, 40, 30, 36,
- 20, 8, 23,185, 30,128, 50, 28, 18, 56, 24, 10, 24, 30, 68, 64, 36, 24, 10, 24, 56, 2,250, 80,150, 50, 42, 73, 49, 67, 50, 17,
-184, 57, 57,184, 17, 40, 77, 46, 76, 44, 48,143, 87, 14,184, 10, 32, 53, 21, 29, 43, 53, 68, 22, 21, 69, 50, 46, 24, 26, 52, 33,
- 0, 2,255,237,254, 19, 4,229, 2,228, 0, 46, 0, 64, 0, 0, 37, 38, 39, 38, 39, 38, 53, 52, 55, 54, 55, 54, 51, 50, 23, 22,
- 23, 22, 23, 22, 59, 1, 21, 43, 1, 6, 7, 6, 7, 6, 39, 36, 39, 38, 53, 52, 55, 51, 6, 21, 20, 23, 22, 51, 50, 55, 54, 19,
- 54, 39, 38, 39, 38, 35, 34, 7, 6, 7, 6, 21, 20, 23, 22, 23, 22, 3,140, 66, 46,121, 57,147, 6, 40,147, 41, 87,112, 56, 99,
- 50, 20, 6, 26, 4, 88, 93, 48, 30, 76,104,142,151,164,254,211, 94, 69, 62,184, 62, 27, 58,195,108,117,158,123, 4, 22, 19, 47,
- 34, 39, 34, 21, 53, 19, 10, 57, 76,100, 47, 10, 5, 13, 35, 43,109,185, 61, 26,165, 69, 19, 50, 88,145, 58,214, 1,184, 83,109,
-149, 74, 78, 1, 2,190,138,125,166, 96,107,155, 73, 61,130, 60, 81, 1,107,122, 87, 75, 35, 25, 10, 28, 57, 30, 25, 60, 44, 59,
- 20, 9, 0, 0, 0, 2,255,106,255,164, 4,229, 3, 4, 0, 43, 0, 61, 0, 0, 37, 6, 7, 6, 7, 6, 39, 36, 3, 52, 55, 51,
- 6, 21, 20, 23, 22, 51, 50, 55, 38, 39, 38, 53, 52, 55, 54, 55, 54, 51, 50, 23, 22, 23, 22, 21, 20, 7, 22, 59, 1, 21, 35, 34,
- 39, 54, 53, 52, 39, 38, 39, 38, 35, 34, 7, 6, 7, 6, 21, 20, 23, 22, 3,115, 61,118,182,124,139,113,254,218, 2, 64,184, 66,
-170, 71,131,112,151, 34, 29, 82, 4, 22,188, 58, 52, 82, 81,139, 16, 4, 80, 9, 7,149,154,105,111,104, 5, 14, 52, 34, 40, 24,
- 22, 61, 19, 6, 41, 49, 36, 33, 36, 56, 2, 2, 40,103, 1, 8,138, 92, 94,136,125, 69, 29, 58, 27, 44,124,108, 39, 28,155, 75,
- 23, 50, 84,149, 37, 30,131,106, 1,184,223, 65,109, 20, 27, 71, 39, 25, 10, 25, 60, 19, 18, 43, 66, 78, 0, 0, 0, 3, 0, 0,
-255, 6, 1,144, 0,150, 0, 3, 0, 7, 0, 11, 0, 0, 23, 51, 53, 35, 55, 51, 53, 35, 7, 51, 53, 35,125,150,150,125,150,150,
-250,150,150,250,150,100,150,150,150, 0, 0, 0, 0, 2, 0, 0,255, 6, 0,150, 0,150, 0, 3, 0, 7, 0, 0, 21, 51, 21, 35,
- 17, 51, 21, 35,150,150,150,150,100,150, 1,144,150, 0, 0, 0, 0, 4, 0, 0,255, 6, 1,144, 0,150, 0, 3, 0, 7, 0, 11,
- 0, 15, 0, 0, 23, 51, 21, 35, 17, 51, 21, 35, 7, 51, 21, 35, 17, 51, 21, 35,250,150,150,150,150,250,150,150,150,150,100,150,
- 1,144,150,100,150, 1,144,150, 0, 1, 0, 0, 4,116, 2,183, 7, 56, 0, 3, 0, 0, 9, 1, 53, 1, 2,183,253, 73, 2,183,
- 6,134,253,238,178, 2, 18, 0, 0, 1, 0, 0, 4,243, 3,156, 7, 57, 0, 3, 0, 0, 9, 1, 53, 1, 3,156,252,100, 3,156,
- 6,135,254,109,178, 1,147, 0, 0, 2, 0, 0, 0, 0, 1,182, 1,183, 0, 11, 0, 23, 0, 0, 37, 52, 39, 38, 34, 6, 21, 20,
- 23, 22, 50, 62, 1, 20, 7, 6, 34, 39, 38, 52, 55, 54, 50, 23, 1, 60, 28, 28, 82, 56, 28, 28, 82, 56,122, 63, 64,184, 63, 64,
- 64, 63,184, 64,220, 40, 28, 29, 56, 41, 42, 28, 27, 56,133,184, 64, 64, 64, 64,184, 64, 63, 63, 0, 1, 0,149,254, 86, 4, 60,
- 5,213, 0, 19, 0, 68, 64, 33, 17, 1, 2, 1, 2, 16, 17, 16, 66, 17, 2, 3, 0,180, 19, 11,151, 10, 16, 19, 1, 17, 16, 3,
- 17, 11, 4, 49, 17, 17, 0, 48, 20, 16,252,236,252,196,236, 50, 17, 57, 49, 0, 47, 60,212,236, 16,236, 50, 57, 57, 48, 75, 83,
- 88, 7, 16, 4,201, 7, 16, 4,201, 89, 19, 51, 1, 17, 51, 17, 20, 7, 6, 43, 1, 53, 51, 50, 55, 54, 53, 1, 17, 35,149,185,
- 2, 53,185, 89, 90,165,205,185, 90, 45, 44,253,203,185, 5,213,251,151, 4,105,250, 23,195,105,106,156, 62, 62,146, 4,105,251,
-151, 0, 0, 0, 0, 1, 0, 0, 0, 2, 64, 0, 9,134,133,154, 95, 15, 60,245, 0, 31, 8, 0, 0, 0, 0, 0,196, 90,209, 71,
- 0, 0, 0, 0,196, 90,209, 71,251,137,253, 1, 5,190, 8, 85, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0,
- 7,109,254, 29, 0, 0, 4,209,251,137,255, 20, 5,190, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,
- 4,209, 0,104, 0, 0, 0, 0, 4,209, 0, 0, 4,209, 0, 0, 2, 4, 1, 82, 0, 2, 0,190, 0, 33, 0, 57, 2, 16, 1,170,
- 1, 92, 0,166, 0, 88, 1,147, 1,100, 1,233, 0,102, 0,133, 0,246, 0,152, 0,137, 0,102, 0,143, 0,133, 0,139, 0,131,
- 0,127, 1,233, 1,147, 0, 88, 0, 88, 0, 88, 0,244, 0, 27, 0, 37, 0,166, 0,139, 0,137, 0,197, 0,233, 0,102, 0,137,
- 0,201, 0,109, 0,137, 0,215, 0, 86, 0,139, 0,117, 0,197, 0,117, 0,143, 0,139, 0, 47, 0,147, 0, 57, 0, 0, 0, 18,
- 0, 37, 0,156, 1,207, 0,102, 1, 90, 0, 72, 0, 0, 1, 23, 0,133, 0,193, 0,195, 0,123, 0,123, 0,195, 0,123, 0,195,
- 0,178, 0,186, 0,236, 0,160, 0,109, 0,195, 0,137, 0,190, 0,137, 1,106, 0,213, 0,131, 0,195, 0,100, 0, 0, 0, 76,
- 0,104, 0,203, 0,221, 2, 18, 0,221, 0, 88, 0, 0, 2, 4, 0,213, 0,139, 0,205, 0, 37, 2, 18, 0,199, 1, 63, 0, 0,
- 1, 14, 0,119, 0, 88, 1,100, 0, 0, 1, 61, 1, 43, 0, 88, 1, 66, 1, 70, 1,219, 0,195, 0,106, 1,233, 1,139, 1, 88,
- 0,244, 0,193, 0, 27, 0, 27, 0, 27, 0,193, 0, 37, 0, 37, 0, 37, 0, 37, 0, 37, 0, 37, 0, 0, 0,139, 0,197, 0,197,
- 0,197, 0,197, 0,201, 0,201, 0,201, 0,201, 0, 8, 0,139, 0,117, 0,117, 0,117, 0,117, 0,117, 0,150, 0, 8, 0,147,
- 0,147, 0,147, 0,147, 0, 37, 0,201, 0,188, 0,133, 0,133, 0,133, 0,133, 0,133, 0,133, 0, 41, 0,195, 0,123, 0,123,
- 0,123, 0,123, 0,178, 0,178, 0,178, 0,178, 0,137, 0,195, 0,137, 0,137, 0,137, 0,137, 0,137, 0, 88, 0, 47, 0,195,
- 0,195, 0,195, 0,195, 0,104, 0,190, 0,104, 0, 37, 0,133, 0, 37, 0,133, 0, 37, 0,133, 0,139, 0,195, 0,139, 0,195,
- 0,139, 0,195, 0,139, 0,195, 0,137, 0,123, 0, 8, 0,123, 0,197, 0,123, 0,197, 0,123, 0,197, 0,123, 0,197, 0,123,
- 0,197, 0,123, 0,102, 0,123, 0,102, 0,123, 0,102, 0,123, 0,102, 0,123, 0,137, 0,195, 0, 3, 0, 70, 0,201, 0,178,
- 0,201, 0,178, 0,201, 0,178, 0,201, 0,178, 0,201, 0,178,255,255,255,252, 0,109, 0,186, 0,137, 0,236, 0,236, 0,200,
- 0,160, 0,215, 0,160, 0,215, 0,160, 0,215, 0,160,255,246, 0, 76, 0,139, 0,195, 0,139, 0,195, 0,139, 0,195, 0, 24,
- 0,147, 0,195, 0,117, 0,137, 0,117, 0,137, 0,117, 0,137, 0, 72, 0, 14, 0,143, 1,106, 0,143, 1, 32, 0,143, 1,106,
- 0,139, 0,213, 0,139, 0,213, 0,139, 0,213, 0,139, 0,213, 0, 47, 0,131, 0, 47, 0,131, 0, 47, 0,131, 0,147, 0,195,
- 0,147, 0,195, 0,147, 0,195, 0,147, 0,195, 0,147, 0,195, 0,147, 0,195, 0, 0, 0, 0, 0, 37, 0,104, 0, 37, 0,156,
- 0,203, 0,156, 0,203, 0,156, 0,203, 0,195, 0, 70, 0, 20, 0,166, 0,193, 0, 48, 0, 60, 0,139, 0, 60, 0, 94, 0, 8,
- 0, 8, 0,131, 0,157, 0,136, 0,197, 0,117, 0,137, 0, 63, 0,195, 0, 52, 0, 28, 0, 65, 0,201, 0,201, 0,110, 0,236,
- 0,160, 0, 49, 0,109, 0, 29, 0,195, 0,117, 0, 6, 0, 32, 0, 45, 0, 86, 0, 56, 0,190, 0,143, 0,139, 0,213, 0,120,
- 0,118, 0,131, 0, 47, 0,131, 0, 47, 0, 9, 0, 39, 0, 74, 0,154, 0, 17, 0, 24, 0,156, 0,156, 0, 26, 0, 26, 0,125,
- 0,152, 0, 26, 0,125, 0,194, 2, 3, 1, 57, 0,164, 2, 3, 0, 37, 0,133, 0,201, 0,178, 0,117, 0,137, 0,147, 0,195,
- 0,147, 0,195, 0,147, 0,195, 0,147, 0,195, 0,147, 0,195, 0,122, 0, 37, 0,133, 0, 37, 0,133, 0, 0, 0, 41, 0,102,
- 0,123, 0,137, 0,236, 0,117, 0,137, 0,117, 0,137, 0, 26, 0,125, 0,186, 0,102, 0,123, 0, 61, 0,139, 0,195, 0, 0,
- 0, 41, 0, 8, 0, 47, 0, 37, 0,133, 0, 37, 0,133, 0,187, 0,123, 0,197, 0,123, 0,187, 0,178, 0,201, 0,178, 0,117,
- 0,137, 0,117, 0,137, 0,137, 1,104, 0,143, 1,106, 0,147, 0,195, 0,147, 0,195, 0,139, 0,213, 0, 47, 0,131, 0,137,
- 0,195, 0,147, 0, 18, 0,156, 0,203, 0, 37, 0,133, 0,197, 0,123, 0,117, 0,137, 0,117, 0,137, 0,117, 0,137, 0,117,
- 0,137, 0, 37, 0,104, 0,160, 0,106, 0,131, 0,186, 0,120, 0,120, 0, 8, 0, 8, 0, 47, 0, 21, 0, 33, 0,213, 0,203,
- 0, 55, 0, 57, 0,154, 0,123, 0,192, 0,193, 0,184, 0,195, 0,123, 0,123, 0,122, 0,122, 0, 30, 0,169, 0,169, 0, 56,
- 0,176, 0,186, 0,123, 0,157, 0,122, 0,102, 0,102, 0,188, 0,195, 0,195, 0,142, 0,198, 0,160, 0, 88, 0,157, 0,160,
- 0, 40, 0,104, 0,104, 0,103, 0,178, 0,136, 0,144, 0,137, 0, 69, 0,170, 0,137, 0,152, 0,152, 0,102, 1,106, 1,106,
- 0,160, 0,160, 0,122, 0,122, 0,188, 0,125, 0,125, 0,125, 0,118, 0,166, 0,131, 0, 0, 0, 95, 0, 65, 0, 72, 0, 15,
- 0, 72, 0,102, 0,194, 0,167, 0,125, 0,105, 0,194, 0,194, 0,194, 0,194, 0, 95, 0,209, 0,176, 0, 54, 0,144, 0,202,
- 0,119, 0,245, 0, 35, 0,194, 0,194, 0, 29, 0, 27, 0, 54, 0,153, 0,153, 0,181, 0,135, 0,230, 0,219, 0,143, 0,143,
- 0,178, 0,197, 1, 65, 1, 65, 1,230, 1,153, 1,153, 1, 81, 1, 48, 0,143, 1, 17, 1,236, 1,207, 1,207, 1,240, 1,223,
- 1,223, 1, 94, 1, 94, 1, 41, 1, 41, 2, 36, 1, 61, 2, 36, 1, 61, 1,182, 1,182, 1,223, 1,223, 0,193, 1, 47, 2, 1,
- 1, 86, 1,164, 1, 31, 1, 88,254,161, 1, 37, 1, 86, 1, 91, 1, 18, 1, 94, 0,214, 0,214, 0,214, 0,214, 0,214, 1,141,
- 1, 23, 1,219, 1, 41, 1, 31, 1, 61, 0, 0, 1, 47, 2, 1, 1, 63, 1,153, 1, 86, 1, 88, 1, 41, 2, 34, 1, 86, 0,210,
- 1, 47, 1, 47, 1,213, 1,239, 1,240, 1,219, 1,121, 1,121, 1,156, 1,204, 1,115, 1,163, 1,250, 1, 98, 1, 94, 1, 95,
- 1,115, 1,246, 0,182, 2, 1, 1, 63, 1,141, 1,152, 1,139, 1,174, 2, 36, 1, 85, 0,206, 1, 41, 1, 41, 1, 47, 1, 47,
- 1, 31, 1, 61, 0, 0, 0, 0, 0, 88, 0,141, 0, 0, 0, 47, 0, 8, 1,250, 1, 85, 1, 85, 0,206, 1,139, 1,219, 0, 0,
- 1,239, 4, 2,255, 20, 1,236, 1,230, 2, 30, 1,147, 1,219, 1, 63, 0, 25, 1,233,255, 31,254,237,255, 31,255,181,254,112,
-255,206, 1, 54, 0, 37, 0,166, 0,215, 0, 37, 0,197, 0,156, 0,137, 0,117, 0,201, 0,137, 0, 37, 0, 86, 0,139, 0,137,
- 0,117, 0,137, 0,197, 0,120, 0, 47, 0, 37, 0,117, 0, 18, 0,117, 0, 74, 0,201, 0, 37, 0, 70, 0,169, 0,195, 1, 54,
- 0, 51, 0, 70, 0,151, 0, 32, 0,137, 0,169, 0,152, 0,195, 0,137, 1, 54, 0,236, 0, 68, 0,195, 0,116, 0,161, 0,137,
- 0, 80, 0,190, 0,195, 0,137, 0,159, 0, 51, 0, 76, 0, 89, 0,131, 0, 70, 1, 54, 0, 51, 0,137, 0, 51, 0, 70, 0,149,
- 0,114, 0, 34,254,112, 0, 34, 0,109, 0, 57, 0, 51, 0,117, 0,137, 0,139, 0,155, 0,233, 0, 0, 0, 96, 0,132, 0, 33,
- 0, 89, 0, 52, 0,190, 0,195, 0,186, 0,117, 0,162, 0,162, 0,201, 0,190, 0,139, 0, 86, 0,127, 0, 85, 0,139, 0,139,
- 0,139, 0,197, 0,197,255,190, 0,215, 0,139, 0,139, 0,201, 0,201, 0,109,255,237, 0, 34,255,190, 0,137, 0,139, 0,104,
- 0,137, 0, 37, 0,166, 0,166, 0,215, 0, 33, 0,197, 0, 15, 0,137, 0,139, 0,139, 0,137, 0, 4, 0, 86, 0,137, 0,117,
- 0,137, 0,197, 0,139, 0, 47, 0,104, 0, 66, 0, 18, 0, 80, 0,137, 0,114, 0, 60, 0, 32, 0, 65, 0,197, 0,139, 0, 60,
- 0, 76, 0,133, 0,125, 0,209, 1, 1, 0,105, 0,123, 0, 59, 0,169, 0,195, 0,195, 0,236, 0, 30, 0, 61, 0,195, 0,137,
- 0,195, 0,190, 0,195, 0,225, 0,104, 0, 99, 0, 76, 0,124, 0,195, 0,125, 0, 80, 0, 30, 0,104, 0,195, 0,195, 0, 78,
- 0,168, 0,123, 0,123, 0, 35, 1, 1, 0,195, 0,213, 0,178, 0,178, 0,186, 0, 10, 0, 65, 0, 35, 0,236, 0,195, 0,104,
- 0,195, 0,215, 1, 1, 0, 85, 0,127, 0,215, 1, 1, 0, 15, 0, 59, 0,137, 0,169, 0,137, 0,236, 0, 31, 0, 98, 0,139,
- 0,195, 0, 47, 0,225, 0, 37, 0, 92, 0, 37, 0, 92, 0, 18, 0, 76, 0,140, 0,195, 0,201, 0, 15, 0, 59, 0,137, 0,236,
- 0,137, 0,195, 0,140, 0,195, 1,199, 0, 37, 0,133, 0, 37, 0,133, 0, 0, 0, 41, 0,197, 0,123, 0,117, 0,122, 0,117,
- 0,122, 0, 15, 0, 59, 0,137, 0,169, 0, 26, 0,125, 0,139, 0,195, 0,139, 0,195, 0,117, 0,137, 0,117, 0,137, 0,117,
- 0,137, 0,139, 0,195, 0,104, 0,104, 0,104, 0,104, 0,104, 0,104, 0,137, 0,195, 0,215, 1, 1, 0, 65, 0,104, 1,214,
- 1,100, 1,214, 0,218, 1,178, 1, 0, 1,189, 0, 76, 1,189, 0, 25, 2, 12, 0, 69, 0,222, 0, 69, 0, 69, 0, 88, 0, 88,
- 0, 88, 0,232, 0,232,255,204,255,204,255, 34,255, 34,255, 16,255, 16, 0, 10, 0, 10, 0,122, 0,122,255,236,255,182, 0, 31,
- 0, 8, 0, 66, 0,130, 0, 54, 0,222, 0, 76, 0, 25, 0, 25, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 48, 1, 86,
- 1, 0, 1,189, 1,189, 1, 92, 1,250, 1,150, 0,154, 0,134, 0,236, 0,202, 0,154, 0,126, 0,126, 0,161, 0,200, 1, 54,
- 1,214, 0,146, 0, 69, 0, 31, 1,189, 0, 69, 0, 69, 0, 69, 0, 69, 0, 69, 0, 69, 0, 69, 0, 69, 0, 88, 0, 88, 0, 88,
- 0, 88, 0, 88, 0, 88, 0, 88,255,204,255,204,255,204,255,182,255,182, 0, 10, 0, 10, 0, 66, 0, 54, 0, 0, 0, 76, 0, 25,
- 0, 25, 0,222, 1,250, 1,150, 0,154, 0,134, 0,175, 0,172, 1, 8, 0,126, 0,126, 0,161, 0, 62, 0,108, 0,121, 0,246,
- 0,124, 0, 97, 0,114, 0,123, 0,149, 0, 26, 0,106, 0, 75, 0,124, 0,124, 0, 99, 0, 99, 0,101, 0,101, 0, 16, 0,114,
- 0,100, 0, 96, 0,111, 0, 97, 0, 19, 0,119, 0, 84, 0, 48, 0, 90,251,138, 0,157,252,198, 0, 83, 0, 83, 0, 83, 0, 83,
- 1,207, 1,120, 0, 68,255,240, 2, 14, 0, 86, 0, 95, 1, 73,255,240, 1,150, 0,160, 0,158, 0,110, 0, 55, 0,160, 0,158,
- 0,158, 0, 55, 0,159, 0,158, 0,160, 0,158, 0,158, 0, 55, 0,159, 0,159, 0, 55, 0,159, 0, 45, 0, 55, 0, 55, 0,160,
- 0, 55, 0,158, 0, 55, 0,158, 0, 86, 0,158, 0,160, 0,159, 0,159, 0,159, 0,158, 0,118, 0,160, 0,159, 0,159, 0,139,
- 0, 55, 0,107, 0,161, 0,109, 0,160, 1, 35, 1,149, 0, 41, 0,169, 0,178, 0, 14, 0,137, 0,136, 0, 43, 0, 63, 0, 43,
- 0,252, 0,245, 1, 55, 1, 55, 1, 76, 1, 76, 1, 44, 1, 58, 1,100, 1, 94, 1, 18, 1, 69, 1, 27, 1, 60, 1, 60, 1, 46,
- 1, 63, 1, 17, 1, 2, 1, 65, 0,228, 1, 69, 1, 69, 1, 71, 0,251, 1, 71, 1, 71, 1, 49, 1, 49, 1, 79, 1, 79, 1, 71,
- 1, 73, 1, 56, 1, 37, 1, 91, 1, 58, 1, 88, 1, 58, 1, 58, 1, 71, 1, 77, 1, 91, 0,255, 1, 37, 1, 35, 1, 72, 1,153,
- 1, 91, 1, 35, 0,123, 1, 58, 0,156, 0,160, 1, 71, 1, 88, 1, 81, 1, 58, 1, 79, 1, 87, 1, 98, 1, 71, 1, 91, 1, 67,
- 1, 97, 1, 73, 1, 71, 1,100, 1, 85, 1, 85, 1,126, 1, 37, 1, 37, 1, 85, 1, 85, 1, 63, 1, 58, 1, 58, 1, 91, 1,120,
- 1, 77, 0,208, 1, 32, 1, 70, 1, 17, 1, 97, 1, 94, 1, 77, 1, 51, 1, 58, 0, 37, 0,133, 0,166, 0,193, 0,166, 0,193,
- 0,166, 0,193, 0,139, 0,195, 0,137, 0,123, 0,137, 0,123, 0,137, 0,123, 0,125, 0,123, 0,137, 0,123, 0,197, 0,123,
- 0,197, 0,123, 0,197, 0,123, 0,233, 0,195, 0,102, 0,123, 0,137, 0,195, 0,137, 0,195, 0, 20, 0, 55, 0,137, 0,195,
- 0,201, 0,178, 0,137, 0,236, 0,137, 0,236, 0,137, 0,236, 0,215, 0,160, 0,215, 0,160, 0,215, 0,160, 0,215, 0,160,
- 0, 86, 0,109, 0, 86, 0,109, 0, 86, 0,109, 0,139, 0,195, 0,139, 0,195, 0,139, 0,195, 0,139, 0,195, 0,197, 0,190,
- 0,143, 1,106, 0,143, 1,106, 0,143, 1, 61, 0,143, 1, 61, 0,139, 0,213, 0,139, 0,213, 0,139, 0,213, 0, 47, 0,131,
- 0, 47, 0,131, 0, 47, 0,131, 0, 47, 0,131, 0,147, 0,195, 0,147, 0,195, 0,147, 0,195, 0, 57, 0,100, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 76, 0, 37, 0,104, 0,156, 0,203, 0,156, 0,203,
- 0,195, 0,195, 0, 37, 0,133, 0, 37, 0,133, 0,197, 0,123, 0,197, 0,123, 0,201, 0,178, 0,117, 0,137, 0,147, 0,195,
- 0, 37, 0,104, 0, 37, 0,104, 0, 37, 0,104, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 37, 0, 37,
-254,108,254,108,255, 27,255, 7,255,193,255,143, 0,169, 0,169, 0,169, 0,169, 0,169, 0,169,255,127,255,127,253,139,253,139,
-254, 8,253,244, 0,195, 0,195, 0,195, 0,195, 0,195, 0,195, 0,195, 0,195,255, 77,255, 77,253, 64,253, 64,253,164,253,144,
-254, 99,254, 99, 1, 54, 1, 54, 0,245, 0,245, 1, 39, 1, 19, 1, 31, 1, 31,255,127,255,127,253,164,253,164,254, 8,253,244,
-254,174,254,174, 0,137, 0,137, 0,137, 0,137, 0,137, 0,137,255,202,255,127,253,139,253,139,254,158,254,138, 0, 51, 0, 51,
- 0, 51, 0, 51, 0, 51, 0, 51, 0, 51, 0, 51,254,233,253, 64,253, 69,254, 24, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70,
- 0, 70, 0, 70,255,202,255,102,253,139,253,139,254,183,254,163,254,249,254,174, 0, 70, 0, 70, 0,169, 0,169, 0,195, 0,195,
- 1, 23, 1, 54, 0,137, 0,137, 0, 51, 0, 51, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70,
- 0, 37, 0, 37,254,108,254,108,255, 27,255, 7,255,193,255,143, 0,195, 0,195, 0,195, 0,195, 0,195, 0,195, 0,195, 0,195,
-255, 77,255, 77,253, 64,253, 64,253,164,253,144,254, 99,254, 99, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70,
-255,202,255,102,253,139,253,139,254,183,254,163,254,249,254,174, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70, 0, 37,
- 0, 37,255,135, 0, 25, 0, 37, 1,239, 2, 30, 1,239, 1, 31, 1, 31, 0,195, 0,195, 0,195, 0,195, 0,195,254,141,255, 31,
-254, 91,254,237, 0,137, 0,245, 1, 39, 1, 31, 1, 47, 1, 54, 1, 23, 1, 54, 1, 31, 1, 31, 0,201, 0,201,254,191,255, 31,
- 0,245, 1, 19, 1, 31, 0, 51, 0, 51, 0, 51, 0, 51, 0,190, 0,190, 0, 51, 0, 51, 0, 37, 0, 37,254, 91,254,112,255,127,
- 1, 23, 1, 63, 1, 23, 0, 70, 0, 70, 0, 70, 0, 70, 0, 70,254,166,255,181,254,166,255,206, 0, 74, 1,219, 1,239, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,100, 1,100, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1,207, 1,207, 1,147, 1,207, 0,211, 0,211, 0,211, 0,211, 0,162, 0,162, 1, 63, 1, 63, 0, 80, 0, 0, 0, 0,
- 0, 0, 1, 90, 1,164, 0,208, 0,244, 0, 0, 1,207, 1, 90, 0, 33, 0, 33, 0,208, 0, 0, 1, 61, 1, 72, 1, 12, 1, 63,
- 1, 73, 1, 61, 1, 59, 1, 48, 1, 28, 1, 28, 1, 28, 1,216, 1,216, 1, 65, 1, 61, 1, 88, 1, 66, 1, 70, 1, 12, 1, 63,
- 1, 73, 1, 61, 1, 59, 1, 48, 1, 28, 1, 28, 1, 28, 1,216, 1,216, 1, 69, 1, 49, 1, 58, 1, 18, 1, 49, 0, 0, 0, 37,
- 0,106, 0, 0, 0,130, 0,140, 0, 84, 0, 10, 0, 0, 0, 74, 0,137, 0, 37, 0, 27, 0, 27, 0, 27, 0, 27, 0, 27, 0, 10,
- 0, 27, 0, 27, 0, 27, 0, 27, 0, 27, 0, 27, 0, 27, 0, 66, 1, 28, 0, 66, 1, 28, 0, 66, 1, 28, 0,184, 0,184, 0,184,
- 0,184, 0, 66, 0, 66, 0, 89, 0, 89, 0, 66, 1, 28, 0, 66, 1, 28, 0, 66, 0, 66, 0, 66, 1, 28, 0, 66, 1, 28, 1, 28,
- 0, 66, 0, 66, 0, 66, 0, 65, 0, 66, 0, 66, 0,113, 0,183, 0,183, 0,183, 0,183, 0,186, 0, 63, 0, 81, 0, 81, 0, 50,
- 0, 66, 0, 88, 0, 88, 0, 66, 0, 66, 2, 22, 1, 28, 0, 66, 0, 66, 2, 22, 1, 71, 0, 66, 0, 42, 0, 66, 0, 66, 0, 42,
- 0, 66, 0, 42, 0, 66, 0, 66, 0, 66, 0, 66, 0, 66, 0, 66, 1, 28, 0, 66, 1, 28, 0, 66, 1, 28, 0,155, 0,155, 0,155,
- 0,155, 0, 66, 0, 66, 0, 66, 0, 66, 1, 28, 1, 28, 0, 66, 1, 28, 0, 66, 1, 28, 0, 66, 0, 66, 0, 25, 0,243, 0, 66,
- 0,243, 0,243, 0,243, 0,243, 0,243, 0,243, 0,243, 0, 66, 0, 69, 0, 69, 0,243, 0, 66, 0, 42, 0, 66, 0, 66, 0, 66,
- 0, 66, 0, 66, 0, 66, 0, 66, 0, 25, 0, 66, 0, 25, 0,190, 0, 73,255,250,255,250, 0,129, 0,129, 0,130, 0,129, 0,129,
- 0,130, 0,152, 0,143, 0, 88, 0, 88, 0,102, 0,166, 1, 43, 1, 63, 0, 59, 0,186, 0, 41, 0,125, 0,125, 0,164, 0,164,
- 0,164, 0,164, 0,129, 0, 63, 0, 53, 0, 88, 0, 74, 0, 87, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88,
- 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 87, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 87, 0, 74, 0, 74,
- 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 69, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88,
- 0, 86, 0, 86, 0, 86, 0, 86, 0, 87, 0, 88, 0, 88, 0, 88, 0, 88, 0, 86, 0, 86, 0, 86, 0, 86, 0, 86, 0, 86, 0, 86,
- 0, 86, 0, 86, 0, 88, 0, 86, 0, 86, 0, 86, 0, 86, 0, 86, 0, 86, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88,
- 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 88, 0, 79, 0, 79, 0, 79, 0, 79, 0, 79, 0, 79, 0, 79, 0, 79, 0, 79,
- 0, 80, 0, 80, 0, 80, 0, 80, 1,233, 1, 8, 0, 88, 0, 88, 0, 88, 0, 86, 0, 88, 0, 86, 0, 86, 0, 86, 0, 86, 0, 88,
- 0, 88, 0, 88, 0, 88, 0, 86, 0, 86, 0, 86, 0, 86, 0, 80, 0, 73, 0,114, 0,146, 0,146, 0,146, 0,146, 0,146, 1,207,
- 1, 90, 1,207, 1, 90, 2, 37, 0, 13, 2, 37, 0, 13, 0, 88, 0, 97, 0, 6, 0, 6, 0,184, 0,166, 0, 71, 0, 88, 1, 43,
- 1, 28, 1, 43, 1, 28, 2, 0, 0,124, 0,104, 0, 6, 0,125, 0, 50, 0, 6, 0, 72, 1, 0, 0, 6, 0, 6, 0, 6, 0, 6,
- 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 37, 0, 6, 0, 6, 0, 6, 0, 37, 0, 6,
- 0, 6, 0, 6, 1, 0, 0, 6, 0, 6, 1, 0, 0, 6, 0, 6,255,236, 0, 6, 1, 8, 1, 63, 0, 6, 0, 88, 0, 88, 0, 37,
- 0, 88, 0, 88, 1, 0, 0, 6, 0, 6, 1, 54, 0,190, 0, 70, 0, 6, 0,156, 1, 0, 0, 6, 0, 70, 0, 26, 0, 72, 0, 6,
- 0, 6, 0, 6, 0, 82, 0, 70, 0, 70, 0, 70, 0, 6, 1, 24, 1, 24, 1, 24, 1, 25, 2,246, 1, 25, 1, 24, 1, 24, 1, 24,
- 1, 24, 2,245, 1, 24, 2, 12, 0, 17, 2, 12, 2, 12, 0, 16, 2, 11, 0, 16, 2, 1, 0, 25, 0, 6, 0,150,255,236,255,236,
- 2, 24, 1,200,255,236,255,236, 2, 24, 1,200,255,235,255,236, 2, 24, 1,200, 2, 24, 2, 24, 1,200, 1,200,255,236,255,236,
-255,236,255,236, 2, 24, 2, 24, 1,200, 1,200,255,236,255,236,255,236,255,236, 2, 24, 2, 24, 1,200, 1,200, 1,200, 1,200,
- 1,200, 1,200,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,
-255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,
-255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236, 2, 24, 1,200,255,236, 1,120,
- 2, 24, 1,120, 1,120,255,236,255,236,255,236, 2, 24, 1,120, 1,120,255,236,255,236,255,236, 2, 24, 1,120, 1,120,255,236,
-255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236, 2, 24,255,236,255,236, 2, 24,255,147,
-255,147,255,147,255,236, 2, 24, 2,124, 2, 24,255,236, 1,200, 2,124, 1,200,255,236, 1,200,255,236, 1,200,255,236,255,236,
-255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236,255,236, 2,105,255,236,
-255,236,255,236,255,236, 4, 69,255,236, 2,105,255,236,255,236,255,236,255,236,255,236, 2,105,255,236,255,236, 0, 6, 0, 6,
- 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0,219, 0,219, 0, 6, 0, 6, 1, 68, 1, 68, 0, 6, 0, 6,
- 0, 6, 0, 6, 0,219, 0,219, 0, 6, 0, 6, 0,219, 0,219, 0, 6, 0, 6, 0, 6, 0, 6, 0,219, 0,219, 0, 6, 0, 6,
- 0,219, 0,219, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0,117, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6,
- 0, 6, 0, 6, 0, 6, 0, 6, 1, 55, 1, 55,255,236,255,236,255,236,255,236, 1, 55, 1, 55, 1, 55, 1, 55, 0, 6, 0, 6,
- 0, 6, 0, 6, 0, 6, 0, 6, 1, 63, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6,255,236, 0, 6, 0, 6,
- 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 97, 0, 97, 0,175, 0,175, 0, 6, 0, 34, 0, 50,
- 0, 34, 0, 89, 0, 29, 0, 58, 0, 58, 0,200, 0, 59, 0, 43, 0, 15, 0, 18, 0, 54, 0, 46, 0, 20, 0, 8, 0,111, 0, 99,
- 0,133, 0,201, 0, 28, 0, 78, 0, 56, 0, 47, 0, 38, 0, 47, 0, 47, 0, 47, 0, 14, 0,140, 0, 14, 0,140, 0, 12, 0, 9,
- 0, 8, 0, 34, 0, 78, 0, 96, 0,121, 0, 97, 0,204, 0, 55, 0, 30, 0, 8, 0,103, 0, 15, 0, 27, 0, 14, 0, 5, 0, 33,
- 0, 33, 0, 33, 0, 33, 0,156, 0,149, 0,189, 0,145, 0,145, 0, 21, 0, 71, 0,174, 0, 67, 0, 76, 0,215, 0, 24, 0, 53,
- 0, 27, 0, 52, 0, 61, 0, 47, 0, 85, 0, 50, 0, 56, 0, 21, 0, 89, 0, 94, 0, 67, 0, 86, 0,112, 0,222, 0,144, 0,156,
- 0,106, 0, 54, 0,148, 0,226, 0,103, 0,118, 0,128, 0, 14, 0,145, 0, 50, 0,127, 0, 11, 0,145, 0, 49, 0, 46, 1,114,
- 0,162, 0,106, 0, 17, 1, 68, 1,177, 1, 55, 0, 96, 0, 46, 0, 47, 0, 60, 0, 75, 0, 68, 0, 36, 0, 62, 0, 75, 0, 45,
- 0, 45, 0, 57, 0, 46, 0, 55, 0, 46, 0, 80, 0, 60, 0, 60, 0, 60, 0, 60, 0, 60, 0, 60, 0, 46, 0, 46, 0, 46, 0, 46,
- 0, 82, 0, 82, 0,150, 0,115, 0, 39, 0, 31, 0,129, 0,188, 0, 19, 0, 22, 0, 74, 0, 30, 0, 42, 0, 82, 0, 42, 0, 34,
- 0,136, 0,243, 0,222, 0, 46, 0, 46, 0, 58, 0, 61, 0, 52, 0, 37, 0, 61, 0, 63, 1, 68, 0, 45, 0, 87, 0, 38, 0, 87,
- 0, 59, 0, 37, 0,152, 0, 74, 0,129, 0, 64, 0,131, 0, 51, 0, 64, 0, 86, 0, 57, 0, 48, 0,155, 0,126, 0,144, 0, 48,
- 0, 71, 0, 31, 0, 28, 0, 26, 0, 23, 0, 43, 0, 37, 0, 40, 0, 67, 0, 40, 0, 35, 0, 40, 0, 61, 0, 40, 0, 46, 0, 54,
- 0, 87, 0, 48, 0, 36, 0, 26, 0, 50, 0, 31, 0, 26, 0, 36, 0, 48, 0, 49, 0, 55, 0, 43, 0, 33, 0, 36, 0, 22, 0, 22,
- 0, 37, 0, 50, 0, 32, 0, 48, 0, 25, 0, 50, 0, 41, 0, 33, 0, 23, 0, 34, 0, 36, 0, 69, 0, 61, 0, 56, 0, 48, 0, 43,
- 2, 27, 1,205, 1, 81, 1,221, 1,211, 1, 0, 0,246, 0,103, 0,255, 0,190, 0, 46, 0,114, 0, 65, 0, 49, 0,240, 0,240,
- 1,102, 1,110, 1, 67, 1, 68, 0,210, 0,210, 0,205, 0,206, 1,201, 1,201, 1, 25, 0,249, 0, 83, 0,116, 0, 83, 0,116,
- 0, 45, 0, 73, 0, 83, 0, 45, 0, 54, 0, 83, 0, 83, 0, 96, 0,123, 0,123, 0, 54, 0, 54, 1, 79, 0, 54, 0,101, 0,101,
- 0, 53, 0, 97, 0,125, 0, 84, 0, 50, 0, 41, 0,145, 0, 88, 0,116, 0, 83, 0,117, 0, 78, 0, 42, 0,117, 0, 53, 0, 29,
- 0, 38, 0, 37, 0, 50, 0,117, 1,134, 1,134, 0,117, 0, 88, 0, 88, 0,150, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, 6,
- 0, 6, 0, 6, 0, 6, 0,137, 0,195, 0, 76, 0,193, 0,218, 0,137, 0, 35, 0, 35, 0, 69, 0, 69,255,236,255,236, 0, 69,
- 0, 69,255,236,255,236, 0, 69, 0, 69,255,236,255,236, 0, 69, 0, 69,255,236,255,236, 0, 69, 0, 69,255,236,255,236, 0, 69,
- 0, 69,255,236,255,236,255,182,255,106,255,236,255,236,255,182,255,106,255,236,255,236, 0, 88, 0, 88,255,236,255,236, 0, 88,
- 0, 88,255,236,255,236, 0, 88, 0, 88,255,236,255,236, 0, 88, 0, 88,255,236,255,236,255,204,255, 96,255,204,255, 96, 0, 10,
-255,131,255,236,255,236, 0, 10,255,131,255,236,255,236, 0, 54,255,213, 0, 0, 0, 0,255,236,255,236,255,236,255,236, 0, 25,
-255,124,255,236,255,236, 1, 68,255,236, 1, 68, 3, 34, 1, 68, 1, 68,255,236, 1, 68,255,236, 1, 68,255,236, 1, 48,255,236,
- 1, 86,255,236, 1,178, 1, 0, 1, 0, 1,179, 1,228, 0, 76, 0, 90, 1,182, 2, 19, 0, 25,255,124,255,236,255,236, 2, 12,
- 2, 76, 0, 69, 0, 69,255,236,255,236, 0,222, 0,242, 0, 69, 0, 69,255,236,255,236, 0, 69, 0, 69,255,236,255,236, 0, 88,
- 0, 88,255,236,255,236, 0, 88, 0, 88,255,236,255,236, 0, 88, 0, 88,255,236,255,236, 0,232, 0,232, 0,232, 0,232,255,204,
-255, 96,255,204,255, 96,255, 34,254,214,255,236,255,236,255, 34,254,214,255,236,255,236,255, 16,254,197,255,236,255,236,255, 16,
-254,197,255,236,255,236, 0, 10, 0, 20,255,236,255,236, 0, 10, 0, 20,255,236,255,236, 0,122, 0,148,255,236,255,236, 0,122,
- 0,148,255,236,255,236,255,182,255,106,255,236,255,236, 0, 31,255,237,255,236,255,236, 0, 8,255,161,255,236,255,236, 0, 66,
- 0, 9,255,236,255,236, 0,130, 0, 71,255,236,255,236, 0, 54,255,213,255,236,255,236, 0,222, 0,242,255,236,255,236, 0, 76,
- 0, 90, 0, 25,255,124, 0, 25,255,124,255,236,255,236,255,150,255, 64, 0, 83,255,224, 0,133, 0, 95, 0,179, 0, 95, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 37, 0,166, 0,139, 0,137, 0,197, 0,233, 0,102, 0,137, 0,201, 0,109, 0,137,
- 0,215, 0, 86, 0,139, 0,117, 0,197, 0,117, 0,143, 0,139, 0, 47, 0,147, 0, 57, 0, 0, 0, 18, 0, 37, 0,156, 0,133,
- 0,193, 0,195, 0,123, 0,123, 0,195, 0,123, 0,195, 0,178, 0,186, 0,236, 0,160, 0,109, 0,195, 0,137, 0,190, 0,137,
- 1,106, 0,213, 0,131, 0,195, 0,100, 0, 0, 0, 76, 0,104, 0,203, 0,133, 0,246, 0,152, 0,137, 0,102, 0,143, 0,133,
- 0,139, 0,131, 0,127, 1,219, 1, 63, 1,219, 1, 31, 1,121, 1, 55, 1, 55, 0, 27, 1, 47, 1, 47, 2, 1, 1, 88, 0,187,
- 1,102, 1, 61, 0,156, 0, 6, 1, 0, 1, 94, 1, 63, 0, 0, 0, 0, 0, 0, 0, 69,255,236,255,236,255,237,255,106, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 76, 0, 0, 0, 76, 0, 0, 0, 76,
- 0, 0, 0,152, 0, 0, 0,220, 0, 0, 1,152, 0, 0, 2,152, 0, 0, 3,160, 0, 0, 4,252, 0, 0, 5, 44, 0, 0, 5,132,
- 0, 0, 5,220, 0, 0, 6,120, 0, 0, 6,208, 0, 0, 7, 12, 0, 0, 7, 56, 0, 0, 7,100, 0, 0, 7,152, 0, 0, 9, 32,
- 0, 0, 9,120, 0, 0, 10, 40, 0, 0, 10,232, 0, 0, 11,100, 0, 0, 12, 0, 0, 0, 12,184, 0, 0, 13, 20, 0, 0, 13,232,
- 0, 0, 14,156, 0, 0, 14,224, 0, 0, 15, 52, 0, 0, 15,128, 0, 0, 15,196, 0, 0, 16, 12, 0, 0, 16,244, 0, 0, 18, 8,
- 0, 0, 18,216, 0, 0, 19,128, 0, 0, 20, 12, 0, 0, 20,128, 0, 0, 20,220, 0, 0, 21, 44, 0, 0, 21,208, 0, 0, 22, 40,
- 0, 0, 22,128, 0, 0, 22,236, 0, 0, 23,188, 0, 0, 23,244, 0, 0, 24,180, 0, 0, 25, 80, 0, 0, 25,208, 0, 0, 26, 68,
- 0, 0, 26,236, 0, 0, 27,184, 0, 0, 28,180, 0, 0, 28,248, 0, 0, 29,132, 0, 0, 29,248, 0, 0, 31, 16, 0, 0, 32, 20,
- 0, 0, 32,156, 0, 0, 33, 16, 0, 0, 33, 84, 0, 0, 33,140, 0, 0, 33,208, 0, 0, 34, 20, 0, 0, 34, 64, 0, 0, 34,132,
- 0, 0, 35,112, 0, 0, 36, 0, 0, 0, 36,136, 0, 0, 37, 24, 0, 0, 37,192, 0, 0, 38, 56, 0, 0, 39, 0, 0, 0, 39,112,
- 0, 0, 39,216, 0, 0, 40, 80, 0, 0, 41, 76, 0, 0, 41,164, 0, 0, 42,176, 0, 0, 43, 32, 0, 0, 43,152, 0, 0, 44, 44,
- 0, 0, 44,192, 0, 0, 45, 80, 0, 0, 46, 60, 0, 0, 46,176, 0, 0, 47, 32, 0, 0, 47,172, 0, 0, 48,248, 0, 0, 49,228,
- 0, 0, 50,208, 0, 0, 51, 88, 0, 0, 52, 36, 0, 0, 52, 84, 0, 0, 53, 36, 0, 0, 53,164, 0, 0, 53,164, 0, 0, 53,244,
- 0, 0, 54,184, 0, 0, 55, 76, 0, 0, 56,100, 0, 0, 57, 56, 0, 0, 57,132, 0, 0, 58,168, 0, 0, 58,236, 0, 0, 60, 8,
- 0, 0, 60,236, 0, 0, 61, 96, 0, 0, 61,152, 0, 0, 61,196, 0, 0, 63, 44, 0, 0, 63, 88, 0, 0, 63,208, 0, 0, 64, 60,
- 0, 0, 64,240, 0, 0, 65,192, 0, 0, 66, 4, 0, 0, 66,180, 0, 0, 67, 16, 0, 0, 67, 64, 0, 0, 67, 80, 0, 0, 67,184,
- 0, 0, 68, 72, 0, 0, 68,192, 0, 0, 68,224, 0, 0, 69, 0, 0, 0, 69, 32, 0, 0, 70, 20, 0, 0, 70, 56, 0, 0, 70, 92,
- 0, 0, 70,140, 0, 0, 70,184, 0, 0, 70,240, 0, 0, 72, 36, 0, 0, 72,220, 0, 0, 72,244, 0, 0, 73, 12, 0, 0, 73, 36,
- 0, 0, 73, 60, 0, 0, 73, 84, 0, 0, 73,108, 0, 0, 73,132, 0, 0, 73,172, 0, 0, 73,208, 0, 0, 74,108, 0, 0, 74,152,
- 0, 0, 74,188, 0, 0, 74,224, 0, 0, 75, 16, 0, 0, 75, 60, 0, 0, 75,116, 0, 0, 75,232, 0, 0, 76,236, 0, 0, 77, 16,
- 0, 0, 77, 52, 0, 0, 77,100, 0, 0, 77,156, 0, 0, 77,192, 0, 0, 78, 64, 0, 0, 79, 36, 0, 0, 79, 60, 0, 0, 79, 84,
- 0, 0, 79,108, 0, 0, 79,132, 0, 0, 79,156, 0, 0, 79,180, 0, 0, 81, 4, 0, 0, 81, 28, 0, 0, 81, 52, 0, 0, 81, 76,
- 0, 0, 81,100, 0, 0, 81,132, 0, 0, 81,156, 0, 0, 81,180, 0, 0, 81,216, 0, 0, 81,248, 0, 0, 83, 12, 0, 0, 83, 36,
- 0, 0, 83, 60, 0, 0, 83, 84, 0, 0, 83,124, 0, 0, 83,172, 0, 0, 83,220, 0, 0, 84, 56, 0, 0, 85, 60, 0, 0, 85, 84,
- 0, 0, 85,108, 0, 0, 85,148, 0, 0, 85,196, 0, 0, 85,220, 0, 0, 86,112, 0, 0, 86,136, 0, 0, 86,180, 0, 0, 86,204,
- 0, 0, 86,252, 0, 0, 87, 20, 0, 0, 87, 44, 0, 0, 87, 68, 0, 0, 87, 92, 0, 0, 87,116, 0, 0, 87,140, 0, 0, 87,164,
- 0, 0, 87,188, 0, 0, 87,212, 0, 0, 87,236, 0, 0, 88, 4, 0, 0, 88, 28, 0, 0, 88, 68, 0, 0, 88, 84, 0, 0, 89, 16,
- 0, 0, 89, 40, 0, 0, 89, 64, 0, 0, 89, 88, 0, 0, 89,112, 0, 0, 89,136, 0, 0, 89,160, 0, 0, 89,184, 0, 0, 89,208,
- 0, 0, 89,232, 0, 0, 90, 0, 0, 0, 90, 24, 0, 0, 90, 48, 0, 0, 90, 72, 0, 0, 90, 96, 0, 0, 90,120, 0, 0, 90,144,
- 0, 0, 90,168, 0, 0, 90,192, 0, 0, 90,240, 0, 0, 91, 36, 0, 0, 91,176, 0, 0, 92, 68, 0, 0, 92,120, 0, 0, 92,144,
- 0, 0, 92,184, 0, 0, 92,208, 0, 0, 92,248, 0, 0, 93, 16, 0, 0, 93, 40, 0, 0, 93, 64, 0, 0, 93, 88, 0, 0, 93,168,
- 0, 0, 94, 80, 0, 0, 95, 0, 0, 0, 95, 24, 0, 0, 95, 48, 0, 0, 95, 72, 0, 0, 95, 96, 0, 0, 96, 92, 0, 0, 96,128,
- 0, 0, 96,180, 0, 0, 96,204, 0, 0, 96,228, 0, 0, 96,252, 0, 0, 97, 20, 0, 0, 97, 44, 0, 0, 97, 68, 0, 0, 97,184,
- 0, 0, 98, 72, 0, 0, 98, 96, 0, 0, 98,120, 0, 0, 98,144, 0, 0, 98,168, 0, 0, 98,192, 0, 0, 98,216, 0, 0, 98,240,
- 0, 0, 99,128, 0, 0,100, 24, 0, 0,100, 68, 0, 0,100,100, 0, 0,100,140, 0, 0,100,180, 0, 0,100,204, 0, 0,100,228,
- 0, 0,101,124, 0, 0,102,148, 0, 0,102,172, 0, 0,102,196, 0, 0,102,220, 0, 0,102,244, 0, 0,103, 12, 0, 0,103, 36,
- 0, 0,103, 60, 0, 0,103, 84, 0, 0,103,108, 0, 0,103,132, 0, 0,103,156, 0, 0,103,180, 0, 0,103,204, 0, 0,103,228,
- 0, 0,103,252, 0, 0,104, 20, 0, 0,104, 56, 0, 0,104, 80, 0, 0,104,184, 0, 0,105, 76, 0, 0,105,120, 0, 0,105,160,
- 0, 0,105,204, 0, 0,105,236, 0, 0,106, 20, 0, 0,106, 60, 0, 0,106, 84, 0, 0,106,108, 0, 0,106,132, 0, 0,106,156,
- 0, 0,106,180, 0, 0,106,204, 0, 0,106,240, 0, 0,107, 16, 0, 0,107, 52, 0, 0,107, 76, 0, 0,107,112, 0, 0,107,136,
- 0, 0,107,160, 0, 0,107,184, 0, 0,107,208, 0, 0,107,232, 0, 0,108, 0, 0, 0,108,100, 0, 0,108,216, 0, 0,109,152,
- 0, 0,109,168, 0, 0,110, 12, 0, 0,110,100, 0, 0,110,212, 0, 0,111, 96, 0, 0,111,212, 0, 0,112, 64, 0, 0,112, 80,
- 0, 0,112,180, 0, 0,113, 8, 0, 0,113,108, 0, 0,114, 24, 0, 0,114,116, 0, 0,115, 20, 0, 0,115,200, 0, 0,116, 12,
- 0, 0,116,120, 0, 0,116,252, 0, 0,117, 88, 0, 0,117,208, 0, 0,118, 16, 0, 0,118, 92, 0, 0,118,184, 0, 0,119, 12,
- 0, 0,119, 84, 0, 0,119,160, 0, 0,120, 8, 0, 0,120, 76, 0, 0,120,144, 0, 0,120,252, 0, 0,121, 20, 0, 0,121, 44,
- 0, 0,121,144, 0, 0,121,252, 0, 0,122,108, 0, 0,122,240, 0, 0,123, 92, 0, 0,123,212, 0, 0,124, 76, 0, 0,124, 92,
- 0, 0,124,200, 0, 0,125, 44, 0, 0,125,104, 0, 0,125,196, 0, 0,126, 8, 0, 0,126, 36, 0, 0,126, 64, 0, 0,126,172,
- 0, 0,127, 0, 0, 0,127, 88, 0, 0,127,188, 0, 0,128, 4, 0, 0,128, 76, 0, 0,128,184, 0, 0,129, 36, 0, 0,129,144,
- 0, 0,129,252, 0, 0,130,104, 0, 0,130,200, 0, 0,131, 44, 0, 0,131, 72, 0, 0,131,100, 0, 0,131,168, 0, 0,131,184,
- 0, 0,131,208, 0, 0,131,232, 0, 0,132, 0, 0, 0,132, 24, 0, 0,132, 48, 0, 0,132, 72, 0, 0,132,120, 0, 0,132,144,
- 0, 0,132,176, 0, 0,132,208, 0, 0,132,240, 0, 0,133, 16, 0, 0,133, 48, 0, 0,133, 80, 0, 0,133,112, 0, 0,133,136,
- 0, 0,133,152, 0, 0,133,184, 0, 0,133,208, 0, 0,133,240, 0, 0,134, 8, 0, 0,134, 32, 0, 0,134, 56, 0, 0,134, 80,
- 0, 0,134,104, 0, 0,134,128, 0, 0,134,152, 0, 0,134,176, 0, 0,134,200, 0, 0,134,224, 0, 0,134,248, 0, 0,135, 16,
- 0, 0,135, 40, 0, 0,135, 64, 0, 0,135, 88, 0, 0,135,112, 0, 0,135,212, 0, 0,135,236, 0, 0,136, 4, 0, 0,136, 28,
- 0, 0,136, 52, 0, 0,136, 76, 0, 0,136,100, 0, 0,136,124, 0, 0,136,148, 0, 0,136,172, 0, 0,136,196, 0, 0,136,220,
- 0, 0,136,244, 0, 0,137, 12, 0, 0,137, 36, 0, 0,137, 60, 0, 0,137, 84, 0, 0,137,108, 0, 0,137,132, 0, 0,137,156,
- 0, 0,137,180, 0, 0,137,204, 0, 0,137,228, 0, 0,137,252, 0, 0,138, 20, 0, 0,138, 44, 0, 0,138, 68, 0, 0,138, 92,
- 0, 0,138,116, 0, 0,138,140, 0, 0,138,164, 0, 0,138,188, 0, 0,138,212, 0, 0,138,236, 0, 0,139, 4, 0, 0,139, 28,
- 0, 0,139, 52, 0, 0,139,120, 0, 0,140, 24, 0, 0,140,104, 0, 0,140,184, 0, 0,140,208, 0, 0,140,232, 0, 0,141, 0,
- 0, 0,141, 24, 0, 0,141, 56, 0, 0,141, 80, 0, 0,141,112, 0, 0,141,136, 0, 0,141,160, 0, 0,141,184, 0, 0,141,216,
- 0, 0,141,240, 0, 0,142, 8, 0, 0,142, 32, 0, 0,142,132, 0, 0,143, 16, 0, 0,143,132, 0, 0,143,228, 0, 0,144,128,
- 0, 0,145, 28, 0, 0,145,124, 0, 0,146, 16, 0, 0,146,156, 0, 0,146,212, 0, 0,147, 32, 0, 0,147,192, 0, 0,148, 20,
- 0, 0,148,104, 0, 0,148,144, 0, 0,149, 12, 0, 0,149,156, 0, 0,150, 44, 0, 0,150,216, 0, 0,151, 96, 0, 0,151,224,
- 0, 0,152, 84, 0, 0,152,204, 0, 0,153, 48, 0, 0,153,208, 0, 0,154, 88, 0, 0,155, 32, 0, 0,155,212, 0, 0,156,144,
- 0, 0,157, 16, 0, 0,157, 88, 0, 0,157,232, 0, 0,158, 92, 0, 0,158,200, 0, 0,159, 52, 0, 0,159,132, 0, 0,159,200,
- 0, 0,160, 36, 0, 0,160,152, 0, 0,160,232, 0, 0,161, 28, 0, 0,161, 76, 0, 0,161,192, 0, 0,162, 32, 0, 0,162, 84,
- 0, 0,162,220, 0, 0,163, 68, 0, 0,163,172, 0, 0,164, 44, 0, 0,164,140, 0, 0,164,240, 0, 0,165, 32, 0, 0,165,140,
- 0, 0,165,240, 0, 0,166,128, 0, 0,167, 24, 0, 0,167, 84, 0, 0,167,144, 0, 0,167,224, 0, 0,168, 32, 0, 0,168,116,
- 0, 0,168,180, 0, 0,168,240, 0, 0,169, 96, 0, 0,169,208, 0, 0,170,116, 0, 0,170,180, 0, 0,171, 20, 0, 0,171, 92,
- 0, 0,171,192, 0, 0,172, 4, 0, 0,172, 72, 0, 0,172,176, 0, 0,173, 32, 0, 0,173,140, 0, 0,173,180, 0, 0,173,236,
- 0, 0,174, 44, 0, 0,174, 92, 0, 0,174,164, 0, 0,175, 0, 0, 0,175,104, 0, 0,175,248, 0, 0,176, 84, 0, 0,176,180,
- 0, 0,177, 20, 0, 0,177,136, 0, 0,178, 12, 0, 0,178,164, 0, 0,179, 44, 0, 0,179,188, 0, 0,179,236, 0, 0,180, 80,
- 0, 0,180,136, 0, 0,180,168, 0, 0,181, 44, 0, 0,181,156, 0, 0,182, 12, 0, 0,182,136, 0, 0,183, 84, 0, 0,183,248,
- 0, 0,184,168, 0, 0,185, 52, 0, 0,185,240, 0, 0,186,124, 0, 0,187, 40, 0, 0,187,100, 0, 0,187,200, 0, 0,188, 8,
- 0, 0,188, 88, 0, 0,188,192, 0, 0,189, 36, 0, 0,189,132, 0, 0,189,188, 0, 0,189,252, 0, 0,190, 60, 0, 0,190,156,
- 0, 0,191, 8, 0, 0,191, 64, 0, 0,191,128, 0, 0,191,144, 0, 0,191,160, 0, 0,191,176, 0, 0,191,192, 0, 0,191,252,
- 0, 0,192, 56, 0, 0,192,148, 0, 0,192,240, 0, 0,193, 76, 0, 0,193,168, 0, 0,193,216, 0, 0,193,232, 0, 0,194, 24,
- 0, 0,194, 40, 0, 0,194, 80, 0, 0,194,108, 0, 0,194,128, 0, 0,194,148, 0, 0,194,192, 0, 0,194,208, 0, 0,194,224,
- 0, 0,195,132, 0, 0,195,232, 0, 0,197, 0, 0, 0,197, 16, 0, 0,197, 76, 0, 0,197,160, 0, 0,197,212, 0, 0,198, 80,
- 0, 0,198,136, 0, 0,198,228, 0, 0,199, 4, 0, 0,199, 40, 0, 0,199, 80, 0, 0,199,120, 0, 0,199,152, 0, 0,199,168,
- 0, 0,199,184, 0, 0,199,200, 0, 0,199,216, 0, 0,199,232, 0, 0,200, 20, 0, 0,200, 36, 0, 0,200,120, 0, 0,200,168,
- 0, 0,200,184, 0, 0,201, 0, 0, 0,201, 16, 0, 0,201, 96, 0, 0,201,112, 0, 0,201,140, 0, 0,201,168, 0, 0,201,212,
- 0, 0,201,236, 0, 0,202, 36, 0, 0,202, 64, 0, 0,202,104, 0, 0,202,140, 0, 0,202,168, 0, 0,202,188, 0, 0,202,208,
- 0, 0,202,244, 0, 0,203, 24, 0, 0,203, 56, 0, 0,203,124, 0, 0,203,172, 0, 0,203,208, 0, 0,203,244, 0, 0,204, 32,
- 0, 0,204, 60, 0, 0,204,108, 0, 0,204,156, 0, 0,204,200, 0, 0,205, 8, 0, 0,205,116, 0, 0,205,160, 0, 0,206, 28,
- 0, 0,206, 44, 0, 0,206, 72, 0, 0,206,108, 0, 0,206,180, 0, 0,206,244, 0, 0,207, 48, 0, 0,207,132, 0, 0,207,184,
- 0, 0,208,152, 0, 0,208,196, 0, 0,208,212, 0, 0,208,228, 0, 0,208,244, 0, 0,209, 16, 0, 0,209, 40, 0, 0,209, 68,
- 0, 0,209, 96, 0, 0,209,144, 0, 0,209,180, 0, 0,209,224, 0, 0,210, 40, 0, 0,210, 92, 0, 0,210,188, 0, 0,210,212,
- 0, 0,210,228, 0, 0,210,248, 0, 0,211, 56, 0, 0,211, 88, 0, 0,211,116, 0, 0,211,156, 0, 0,211,172, 0, 0,211,188,
- 0, 0,211,212, 0, 0,211,236, 0, 0,211,252, 0, 0,212, 20, 0, 0,212, 44, 0, 0,212, 68, 0, 0,212, 92, 0, 0,212,116,
- 0, 0,212,140, 0, 0,212,164, 0, 0,212,180, 0, 0,212,196, 0, 0,212,212, 0, 0,213, 52, 0, 0,213, 68, 0, 0,213, 84,
- 0, 0,213,100, 0, 0,214, 4, 0, 0,214, 20, 0, 0,214, 36, 0, 0,214,124, 0, 0,214,140, 0, 0,214,156, 0, 0,214,252,
- 0, 0,215, 12, 0, 0,215, 28, 0, 0,215, 44, 0, 0,215,160, 0, 0,215,176, 0, 0,215,192, 0, 0,216,160, 0, 0,216,176,
- 0, 0,217, 84, 0, 0,217,252, 0, 0,218, 20, 0, 0,218, 44, 0, 0,218, 68, 0, 0,218, 92, 0, 0,218,116, 0, 0,218,140,
- 0, 0,218,164, 0, 0,219, 52, 0, 0,219,168, 0, 0,219,228, 0, 0,220,136, 0, 0,220,152, 0, 0,221, 0, 0, 0,221,112,
- 0, 0,222, 24, 0, 0,222,112, 0, 0,222,128, 0, 0,222,192, 0, 0,222,208, 0, 0,223, 32, 0, 0,223,156, 0, 0,223,172,
- 0, 0,223,248, 0, 0,224,136, 0, 0,224,252, 0, 0,225,144, 0, 0,225,240, 0, 0,226, 84, 0, 0,227, 40, 0, 0,227,132,
- 0, 0,227,224, 0, 0,228,100, 0, 0,228,124, 0, 0,228,148, 0, 0,228,172, 0, 0,228,196, 0, 0,228,220, 0, 0,229,104,
- 0, 0,229,236, 0, 0,230, 84, 0, 0,230,108, 0, 0,230,132, 0, 0,231, 12, 0, 0,231,128, 0, 0,232, 32, 0, 0,232,136,
- 0, 0,232,236, 0, 0,233, 92, 0, 0,233,208, 0, 0,233,224, 0, 0,234, 76, 0, 0,234,168, 0, 0,234,212, 0, 0,235, 72,
- 0, 0,235,164, 0, 0,236, 64, 0, 0,236,176, 0, 0,236,192, 0, 0,236,208, 0, 0,237, 60, 0, 0,237,172, 0, 0,238, 28,
- 0, 0,238, 44, 0, 0,238, 60, 0, 0,238, 76, 0, 0,238,136, 0, 0,238,192, 0, 0,239, 48, 0, 0,239,140, 0, 0,239,164,
- 0, 0,239,188, 0, 0,239,212, 0, 0,239,236, 0, 0,240,124, 0, 0,240,148, 0, 0,241, 60, 0, 0,241, 76, 0, 0,241, 92,
- 0, 0,241,128, 0, 0,241,144, 0, 0,241,244, 0, 0,242, 80, 0, 0,242,192, 0, 0,242,216, 0, 0,242,240, 0, 0,243, 8,
- 0, 0,243, 56, 0, 0,243, 72, 0, 0,243,208, 0, 0,243,224, 0, 0,244, 24, 0, 0,244,168, 0, 0,244,184, 0, 0,245,132,
- 0, 0,245,148, 0, 0,246, 0, 0, 0,246, 24, 0, 0,246, 40, 0, 0,246,140, 0, 0,246,156, 0, 0,246,172, 0, 0,246,188,
- 0, 0,247, 0, 0, 0,247, 16, 0, 0,247, 32, 0, 0,247, 48, 0, 0,247,192, 0, 0,248,156, 0, 0,248,172, 0, 0,249, 0,
- 0, 0,249,100, 0, 0,249,184, 0, 0,250, 32, 0, 0,250,148, 0, 0,251, 20, 0, 0,251,136, 0, 0,252, 48, 0, 0,252,224,
- 0, 0,253,124, 0, 0,253,140, 0, 0,254, 88, 0, 0,254,240, 0, 0,255, 40, 0, 0,255,176, 0, 0,255,192, 0, 1, 0,140,
- 0, 1, 0,156, 0, 1, 1, 8, 0, 1, 1, 32, 0, 1, 1, 48, 0, 1, 1,148, 0, 1, 2, 28, 0, 1, 2,112, 0, 1, 2,128,
- 0, 1, 2,196, 0, 1, 2,212, 0, 1, 2,228, 0, 1, 3, 40, 0, 1, 3, 56, 0, 1, 4, 16, 0, 1, 4, 32, 0, 1, 4,116,
- 0, 1, 4,216, 0, 1, 5, 44, 0, 1, 5,144, 0, 1, 6, 4, 0, 1, 6,128, 0, 1, 6,240, 0, 1, 7,164, 0, 1, 8, 76,
- 0, 1, 8,224, 0, 1, 8,248, 0, 1, 9, 16, 0, 1, 9,116, 0, 1, 9,140, 0, 1, 10, 68, 0, 1, 10, 84, 0, 1, 10,100,
- 0, 1, 10,132, 0, 1, 10,148, 0, 1, 10,248, 0, 1, 11, 72, 0, 1, 11,160, 0, 1, 11,184, 0, 1, 11,208, 0, 1, 11,232,
- 0, 1, 12, 24, 0, 1, 12, 92, 0, 1, 12,160, 0, 1, 12,212, 0, 1, 13, 8, 0, 1, 13,100, 0, 1, 13,196, 0, 1, 14, 32,
- 0, 1, 14,124, 0, 1, 14,148, 0, 1, 14,172, 0, 1, 14,236, 0, 1, 15, 44, 0, 1, 15,104, 0, 1, 15,164, 0, 1, 15,188,
- 0, 1, 15,212, 0, 1, 16, 4, 0, 1, 16, 52, 0, 1, 16, 68, 0, 1, 16,116, 0, 1, 16,184, 0, 1, 16,244, 0, 1, 17, 60,
- 0, 1, 17,132, 0, 1, 17,228, 0, 1, 17,244, 0, 1, 18, 4, 0, 1, 18, 28, 0, 1, 18, 52, 0, 1, 18,148, 0, 1, 18,248,
- 0, 1, 19, 64, 0, 1, 19,136, 0, 1, 19,240, 0, 1, 20, 68, 0, 1, 20, 96, 0, 1, 20,144, 0, 1, 20,168, 0, 1, 20,224,
- 0, 1, 20,248, 0, 1, 21, 8, 0, 1, 21, 24, 0, 1, 21, 48, 0, 1, 21, 72, 0, 1, 21, 88, 0, 1, 21,104, 0, 1, 21,128,
- 0, 1, 21,152, 0, 1, 21,176, 0, 1, 21,200, 0, 1, 21,224, 0, 1, 21,248, 0, 1, 22, 8, 0, 1, 22, 24, 0, 1, 22, 48,
- 0, 1, 22, 72, 0, 1, 22, 96, 0, 1, 22,120, 0, 1, 22,176, 0, 1, 22,220, 0, 1, 22,236, 0, 1, 22,252, 0, 1, 23, 20,
- 0, 1, 23, 44, 0, 1, 23, 68, 0, 1, 23, 92, 0, 1, 23,116, 0, 1, 23,140, 0, 1, 23,164, 0, 1, 23,188, 0, 1, 23,212,
- 0, 1, 23,236, 0, 1, 24, 4, 0, 1, 24, 28, 0, 1, 24, 72, 0, 1, 24,116, 0, 1, 24,140, 0, 1, 24,164, 0, 1, 24,196,
- 0, 1, 25, 32, 0, 1, 25, 80, 0, 1, 25,192, 0, 1, 26, 48, 0, 1, 26, 72, 0, 1, 26, 96, 0, 1, 26,120, 0, 1, 26,144,
- 0, 1, 26,168, 0, 1, 26,196, 0, 1, 26,220, 0, 1, 26,244, 0, 1, 27, 12, 0, 1, 27, 36, 0, 1, 27, 60, 0, 1, 27,168,
- 0, 1, 27,192, 0, 1, 28, 20, 0, 1, 28, 44, 0, 1, 28,112, 0, 1, 28,136, 0, 1, 29, 72, 0, 1, 29, 96, 0, 1, 30, 20,
- 0, 1, 30, 44, 0, 1, 30,144, 0, 1, 30,168, 0, 1, 31, 40, 0, 1, 31, 64, 0, 1, 31, 88, 0, 1, 31,112, 0, 1, 31,136,
- 0, 1, 32, 68, 0, 1, 32,160, 0, 1, 33, 44, 0, 1, 33, 68, 0, 1, 33,172, 0, 1, 34, 44, 0, 1, 34,208, 0, 1, 34,232,
- 0, 1, 35, 20, 0, 1, 35,180, 0, 1, 35,224, 0, 1, 35,252, 0, 1, 36,140, 0, 1, 36,168, 0, 1, 37, 44, 0, 1, 37,112,
- 0, 1, 37,180, 0, 1, 37,196, 0, 1, 37,216, 0, 1, 38, 0, 0, 1, 38, 28, 0, 1, 38, 76, 0, 1, 38,164, 0, 1, 39, 32,
- 0, 1, 39,164, 0, 1, 40, 16, 0, 1, 40, 88, 0, 1, 40,168, 0, 1, 40,248, 0, 1, 41,120, 0, 1, 41,172, 0, 1, 41,236,
- 0, 1, 42, 16, 0, 1, 42, 68, 0, 1, 42,152, 0, 1, 43, 72, 0, 1, 43,160, 0, 1, 43,184, 0, 1, 43,208, 0, 1, 43,232,
- 0, 1, 44, 8, 0, 1, 44, 32, 0, 1, 44, 56, 0, 1, 44, 80, 0, 1, 44,104, 0, 1, 44,128, 0, 1, 44,152, 0, 1, 44,176,
- 0, 1, 44,200, 0, 1, 44,224, 0, 1, 44,248, 0, 1, 45, 16, 0, 1, 45, 40, 0, 1, 45, 64, 0, 1, 45, 88, 0, 1, 46, 8,
- 0, 1, 46, 32, 0, 1, 46,168, 0, 1, 46,192, 0, 1, 46,216, 0, 1, 47, 56, 0, 1, 48, 8, 0, 1, 48, 32, 0, 1, 48, 48,
- 0, 1, 48, 72, 0, 1, 48, 88, 0, 1, 48,104, 0, 1, 48,120, 0, 1, 48,136, 0, 1, 48,152, 0, 1, 49, 24, 0, 1, 49,156,
- 0, 1, 50, 4, 0, 1, 50, 20, 0, 1, 50, 36, 0, 1, 50, 52, 0, 1, 50,244, 0, 1, 51,132, 0, 1, 52, 60, 0, 1, 52,172,
- 0, 1, 53, 44, 0, 1, 53,224, 0, 1, 54,116, 0, 1, 55, 0, 0, 1, 55,128, 0, 1, 55,240, 0, 1, 56,176, 0, 1, 57, 24,
- 0, 1, 57,124, 0, 1, 57,220, 0, 1, 58,180, 0, 1, 59, 64, 0, 1, 59,208, 0, 1, 60, 96, 0, 1, 60,172, 0, 1, 61, 64,
- 0, 1, 61,216, 0, 1, 62,116, 0, 1, 62,228, 0, 1, 63,164, 0, 1, 64, 80, 0, 1, 64,236, 0, 1, 65,164, 0, 1, 66, 36,
- 0, 1, 66, 64, 0, 1, 66,160, 0, 1, 66,236, 0, 1, 67, 4, 0, 1, 67, 72, 0, 1, 67,148, 0, 1, 67,228, 0, 1, 68, 60,
- 0, 1, 68,132, 0, 1, 68,212, 0, 1, 69, 56, 0, 1, 69,140, 0, 1, 69,168, 0, 1, 70, 8, 0, 1, 70,164, 0, 1, 70,208,
- 0, 1, 70,228, 0, 1, 71, 20, 0, 1, 71,104, 0, 1, 71,204, 0, 1, 72, 72, 0, 1, 72,212, 0, 1, 73, 48, 0, 1, 73,172,
- 0, 1, 74, 40, 0, 1, 74,160, 0, 1, 74,236, 0, 1, 75, 84, 0, 1, 75,184, 0, 1, 76, 28, 0, 1, 76,128, 0, 1, 76,236,
- 0, 1, 77, 92, 0, 1, 77,184, 0, 1, 78, 56, 0, 1, 78,136, 0, 1, 78,228, 0, 1, 79,104, 0, 1, 80, 8, 0, 1, 80,112,
- 0, 1, 80,248, 0, 1, 81, 84, 0, 1, 81,212, 0, 1, 82, 68, 0, 1, 82,188, 0, 1, 83, 12, 0, 1, 83,140, 0, 1, 84, 32,
- 0, 1, 84,112, 0, 1, 84,220, 0, 1, 85, 92, 0, 1, 86, 20, 0, 1, 86,124, 0, 1, 86,232, 0, 1, 87, 96, 0, 1, 87,228,
- 0, 1, 88,108, 0, 1, 88,224, 0, 1, 89, 68, 0, 1, 89,180, 0, 1, 90, 24, 0, 1, 90, 76, 0, 1, 90,156, 0, 1, 91, 92,
- 0, 1, 91,232, 0, 1, 92, 32, 0, 1, 92,200, 0, 1, 92,252, 0, 1, 93, 48, 0, 1, 93,116, 0, 1, 93,208, 0, 1, 94, 56,
- 0, 1, 94,108, 0, 1, 94,180, 0, 1, 95, 28, 0, 1, 95, 92, 0, 1, 95,140, 0, 1, 95,188, 0, 1, 96, 24, 0, 1, 96, 72,
- 0, 1, 96,120, 0, 1, 96,184, 0, 1, 96,240, 0, 1, 97, 16, 0, 1, 97, 72, 0, 1, 97,120, 0, 1, 97,168, 0, 1, 97,240,
- 0, 1, 98, 52, 0, 1, 98,148, 0, 1, 98,188, 0, 1, 99, 32, 0, 1, 99, 88, 0, 1, 99,212, 0, 1,100, 80, 0, 1,100,164,
- 0, 1,101, 96, 0, 1,101,180, 0, 1,102, 12, 0, 1,102,104, 0, 1,102,196, 0, 1,103, 56, 0, 1,103,172, 0, 1,104, 32,
- 0, 1,104, 88, 0, 1,104,144, 0, 1,104,248, 0, 1,105, 88, 0, 1,105,164, 0, 1,105,244, 0, 1,106, 36, 0, 1,106, 84,
- 0, 1,106,168, 0, 1,106,232, 0, 1,107, 44, 0, 1,107,112, 0, 1,107,216, 0, 1,108, 0, 0, 1,108, 20, 0, 1,108, 40,
- 0, 1,108, 60, 0, 1,108, 80, 0, 1,108,204, 0, 1,108,220, 0, 1,109, 36, 0, 1,109,120, 0, 1,109,204, 0, 1,110, 28,
- 0, 1,110,160, 0, 1,111, 32, 0, 1,111,148, 0, 1,111,212, 0, 1,112, 28, 0, 1,112,136, 0, 1,112,204, 0, 1,113, 16,
- 0, 1,113, 68, 0, 1,113,116, 0, 1,113,176, 0, 1,114, 12, 0, 1,114, 64, 0, 1,114,144, 0, 1,114,176, 0, 1,115, 56,
- 0, 1,115,160, 0, 1,115,244, 0, 1,116, 96, 0, 1,116,144, 0, 1,117, 0, 0, 1,117,148, 0, 1,118, 64, 0, 1,118,136,
- 0, 1,118,236, 0, 1,119, 84, 0, 1,119,176, 0, 1,120, 4, 0, 1,120, 44, 0, 1,120, 92, 0, 1,120,168, 0, 1,121, 4,
- 0, 1,121, 96, 0, 1,121,184, 0, 1,121,208, 0, 1,121,232, 0, 1,122, 0, 0, 1,122, 24, 0, 1,122, 48, 0, 1,122, 72,
- 0, 1,122, 96, 0, 1,122,120, 0, 1,122,152, 0, 1,122,180, 0, 1,122,204, 0, 1,122,228, 0, 1,122,252, 0, 1,123, 20,
- 0, 1,123, 44, 0, 1,123, 68, 0, 1,123, 92, 0, 1,123,116, 0, 1,123,140, 0, 1,123,164, 0, 1,123,188, 0, 1,123,212,
- 0, 1,123,236, 0, 1,124, 4, 0, 1,124, 32, 0, 1,124, 60, 0, 1,124, 84, 0, 1,124,108, 0, 1,124,132, 0, 1,124,156,
- 0, 1,124,180, 0, 1,124,204, 0, 1,124,228, 0, 1,124,252, 0, 1,125, 20, 0, 1,125, 44, 0, 1,125, 68, 0, 1,125, 92,
- 0, 1,125,116, 0, 1,125,140, 0, 1,125,164, 0, 1,125,188, 0, 1,125,212, 0, 1,125,236, 0, 1,126, 4, 0, 1,126, 28,
- 0, 1,126, 52, 0, 1,126, 76, 0, 1,126,100, 0, 1,126,124, 0, 1,126,148, 0, 1,126,172, 0, 1,126,196, 0, 1,126,220,
- 0, 1,126,244, 0, 1,127, 12, 0, 1,127, 36, 0, 1,127, 60, 0, 1,127, 84, 0, 1,127,108, 0, 1,127,132, 0, 1,127,156,
- 0, 1,127,180, 0, 1,127,204, 0, 1,127,228, 0, 1,127,252, 0, 1,128, 20, 0, 1,128, 44, 0, 1,128, 68, 0, 1,128, 92,
- 0, 1,128,116, 0, 1,128,140, 0, 1,128,164, 0, 1,128,188, 0, 1,128,212, 0, 1,128,236, 0, 1,129, 4, 0, 1,129, 28,
- 0, 1,129, 52, 0, 1,129, 76, 0, 1,129,100, 0, 1,129,124, 0, 1,129,152, 0, 1,129,180, 0, 1,129,204, 0, 1,129,228,
- 0, 1,129,252, 0, 1,130, 20, 0, 1,130, 44, 0, 1,130, 68, 0, 1,130, 92, 0, 1,130,116, 0, 1,130,140, 0, 1,130,164,
- 0, 1,130,188, 0, 1,130,212, 0, 1,130,236, 0, 1,131, 4, 0, 1,131, 28, 0, 1,131, 52, 0, 1,131, 76, 0, 1,131,100,
- 0, 1,131,124, 0, 1,131,148, 0, 1,131,172, 0, 1,131,196, 0, 1,131,220, 0, 1,131,244, 0, 1,132, 12, 0, 1,132, 36,
- 0, 1,132, 60, 0, 1,132, 84, 0, 1,132,108, 0, 1,132,132, 0, 1,132,156, 0, 1,132,180, 0, 1,132,204, 0, 1,132,228,
- 0, 1,132,252, 0, 1,133, 20, 0, 1,133, 44, 0, 1,133, 68, 0, 1,133,100, 0, 1,133,124, 0, 1,133,148, 0, 1,133,172,
- 0, 1,133,196, 0, 1,133,220, 0, 1,133,244, 0, 1,134, 12, 0, 1,134, 36, 0, 1,134, 60, 0, 1,134, 84, 0, 1,134,108,
- 0, 1,134,132, 0, 1,134,156, 0, 1,134,180, 0, 1,134,204, 0, 1,134,228, 0, 1,134,252, 0, 1,135, 20, 0, 1,135, 44,
- 0, 1,135, 68, 0, 1,135, 92, 0, 1,135,116, 0, 1,135,140, 0, 1,135,164, 0, 1,135,188, 0, 1,135,212, 0, 1,135,236,
- 0, 1,136, 4, 0, 1,136, 28, 0, 1,136, 52, 0, 1,136, 76, 0, 1,136,100, 0, 1,136,124, 0, 1,136,148, 0, 1,136,172,
- 0, 1,136,196, 0, 1,136,220, 0, 1,136,244, 0, 1,137, 12, 0, 1,137, 36, 0, 1,137, 60, 0, 1,137, 84, 0, 1,137,108,
- 0, 1,137,132, 0, 1,137,156, 0, 1,137,180, 0, 1,137,204, 0, 1,137,228, 0, 1,137,252, 0, 1,138, 20, 0, 1,138, 44,
- 0, 1,138, 68, 0, 1,138, 92, 0, 1,138,116, 0, 1,138,140, 0, 1,138,164, 0, 1,138,188, 0, 1,138,212, 0, 1,138,236,
- 0, 1,139, 4, 0, 1,139, 28, 0, 1,139, 52, 0, 1,139, 76, 0, 1,139,100, 0, 1,139,124, 0, 1,139,148, 0, 1,139,172,
- 0, 1,139,196, 0, 1,139,220, 0, 1,139,244, 0, 1,140, 12, 0, 1,140, 36, 0, 1,140, 60, 0, 1,140, 84, 0, 1,140,108,
- 0, 1,140,132, 0, 1,140,156, 0, 1,140,180, 0, 1,140,204, 0, 1,140,228, 0, 1,140,252, 0, 1,141, 20, 0, 1,141, 44,
- 0, 1,141, 68, 0, 1,141, 92, 0, 1,141,116, 0, 1,141,140, 0, 1,141,164, 0, 1,141,188, 0, 1,141,212, 0, 1,141,236,
- 0, 1,142, 4, 0, 1,142, 28, 0, 1,142, 52, 0, 1,142, 76, 0, 1,142,100, 0, 1,142,124, 0, 1,142,148, 0, 1,142,172,
- 0, 1,142,196, 0, 1,142,220, 0, 1,142,244, 0, 1,143, 12, 0, 1,143, 36, 0, 1,143, 60, 0, 1,143, 84, 0, 1,143,108,
- 0, 1,143,132, 0, 1,143,156, 0, 1,143,180, 0, 1,143,204, 0, 1,143,228, 0, 1,143,252, 0, 1,144, 20, 0, 1,144, 44,
- 0, 1,144, 68, 0, 1,144, 92, 0, 1,144,116, 0, 1,144,132, 0, 1,144,156, 0, 1,144,172, 0, 1,144,196, 0, 1,144,212,
- 0, 1,144,236, 0, 1,144,252, 0, 1,145, 20, 0, 1,145, 36, 0, 1,145, 60, 0, 1,145, 76, 0, 1,145,100, 0, 1,145,116,
- 0, 1,145,140, 0, 1,145,164, 0, 1,145,188, 0, 1,145,212, 0, 1,145,236, 0, 1,146, 4, 0, 1,146, 28, 0, 1,146, 52,
- 0, 1,146, 76, 0, 1,146,100, 0, 1,146,124, 0, 1,146,148, 0, 1,146,172, 0, 1,146,196, 0, 1,146,220, 0, 1,146,244,
- 0, 1,147, 12, 0, 1,147, 36, 0, 1,147, 60, 0, 1,147, 84, 0, 1,147,108, 0, 1,147,132, 0, 1,147,156, 0, 1,147,180,
- 0, 1,147,204, 0, 1,147,228, 0, 1,147,252, 0, 1,148, 20, 0, 1,148, 44, 0, 1,148, 68, 0, 1,148, 92, 0, 1,148,116,
- 0, 1,148,140, 0, 1,148,164, 0, 1,148,188, 0, 1,148,212, 0, 1,148,236, 0, 1,149, 4, 0, 1,149, 28, 0, 1,149, 52,
- 0, 1,149, 76, 0, 1,149,100, 0, 1,149,124, 0, 1,149,148, 0, 1,149,172, 0, 1,149,196, 0, 1,149,220, 0, 1,149,244,
- 0, 1,150, 12, 0, 1,150, 36, 0, 1,150, 60, 0, 1,150, 84, 0, 1,150,108, 0, 1,150,132, 0, 1,150,156, 0, 1,150,180,
- 0, 1,150,204, 0, 1,150,228, 0, 1,150,244, 0, 1,151, 12, 0, 1,151, 28, 0, 1,151, 44, 0, 1,151, 80, 0, 1,151, 96,
- 0, 1,151,120, 0, 1,151,144, 0, 1,151,168, 0, 1,151,192, 0, 1,151,216, 0, 1,151,240, 0, 1,152, 8, 0, 1,152, 24,
- 0, 1,152, 48, 0, 1,152, 64, 0, 1,152, 88, 0, 1,152,116, 0, 1,152,140, 0, 1,152,164, 0, 1,152,188, 0, 1,152,212,
- 0, 1,152,236, 0, 1,152,252, 0, 1,153, 20, 0, 1,153, 44, 0, 1,153, 68, 0, 1,153, 92, 0, 1,153,116, 0, 1,153,132,
- 0, 1,153,160, 0, 1,153,184, 0, 1,153,208, 0, 1,153,232, 0, 1,154, 0, 0, 1,154, 24, 0, 1,154, 40, 0, 1,154, 64,
- 0, 1,154, 88, 0, 1,154,112, 0, 1,154,136, 0, 1,154,160, 0, 1,154,184, 0, 1,154,208, 0, 1,154,224, 0, 1,154,248,
- 0, 1,155, 16, 0, 1,155, 32, 0, 1,155, 48, 0, 1,155, 72, 0, 1,155, 96, 0, 1,155,120, 0, 1,155,144, 0, 1,155,168,
- 0, 1,155,192, 0, 1,155,208, 0, 1,155,232, 0, 1,155,248, 0, 1,156, 16, 0, 1,156, 32, 0, 1,156, 68, 0, 1,156, 68,
- 0, 1,156, 68, 0, 1,156, 68, 0, 1,156, 68, 0, 1,156, 68, 0, 1,156, 68, 0, 1,156, 68, 0, 1,156, 68, 0, 1,156, 68,
- 0, 1,156, 68, 0, 1,156, 68, 0, 1,156,112, 0, 1,156,128, 0, 1,156,172, 0, 1,156,216, 0, 1,157, 0, 0, 1,157, 40,
- 0, 1,157, 64, 0, 1,157,124, 0, 1,157,184, 0, 1,157,244, 0, 1,158, 24, 0, 1,158,116, 0, 1,158,208, 0, 1,159, 48,
- 0, 1,159,100, 0, 1,159,188, 0, 1,160, 64, 0, 1,160,128, 0, 1,160,156, 0, 1,160,244, 0, 1,160,244, 0, 1,162, 68,
- 0, 1,163,112, 0, 1,163,180, 0, 1,163,252, 0, 1,164, 24, 0, 1,164,148, 0, 1,164,168, 0, 1,164,216, 0, 1,165, 8,
- 0, 1,165, 36, 0, 1,165, 64, 0, 1,165, 92, 0, 1,165, 92, 0, 1,165,228, 0, 1,166, 28, 0, 1,166,140, 0, 1,166,244,
- 0, 1,167,116, 0, 1,167,156, 0, 1,168, 84, 0, 1,168,224, 0, 1,169, 16, 0, 1,169, 44, 0, 1,169, 84, 0, 1,169,136,
- 0, 1,169,188, 0, 1,170, 32, 0, 1,170, 52, 0, 1,170, 72, 0, 1,170, 92, 0, 1,170,112, 0, 1,170,132, 0, 1,170,152,
- 0, 1,170,172, 0, 1,170,192, 0, 1,170,212, 0, 1,170,232, 0, 1,170,252, 0, 1,171, 16, 0, 1,171, 36, 0, 1,171, 56,
- 0, 1,171, 76, 0, 1,171, 96, 0, 1,171,116, 0, 1,171,136, 0, 1,171,156, 0, 1,171,176, 0, 1,172, 52, 0, 1,173, 68,
- 0, 1,173,196, 0, 1,174,100, 0, 1,174,248, 0, 1,175,108, 0, 1,175,200, 0, 1,176, 68, 0, 1,176,248, 0, 1,177, 8,
- 0, 1,177, 24, 0, 1,177, 40, 0, 1,177, 72, 0, 1,177,104, 0, 1,177,136, 0, 1,177,168, 0, 1,177,200, 0, 1,177,232,
- 0, 1,178, 8, 0, 1,178, 40, 0, 1,178, 72, 0, 1,178,104, 0, 1,178,136, 0, 1,178,168, 0, 1,178,192, 0, 1,178,240,
- 0, 1,179, 36, 0, 1,179, 88, 0, 1,179,136, 0, 1,179,208, 0, 1,180, 24, 0, 1,180, 72, 0, 1,180,120, 0, 1,180,164,
- 0, 1,180,208, 0, 1,181, 24, 0, 1,181, 96, 0, 1,182, 8, 0, 1,182,176, 0, 1,182,248, 0, 1,183, 64, 0, 1,183,136,
- 0, 1,183,208, 0, 1,184, 16, 0, 1,184, 80, 0, 1,184,140, 0, 1,184,200, 0, 1,185, 4, 0, 1,185, 64, 0, 1,185,140,
- 0, 1,186, 20, 0, 1,186,160, 0, 1,187,100, 0, 1,188, 44, 0, 1,189, 68, 0, 1,189,164, 0, 1,189,232, 0, 1,190, 32,
- 0, 1,190, 88, 0, 1,190,144, 0, 1,190,200, 0, 1,191, 0, 0, 1,191, 56, 0, 1,191,196, 0, 1,192, 84, 0, 1,192,144,
- 0, 1,192,248, 0, 1,193,160, 0, 1,194, 72, 0, 1,194,108, 0, 1,194,148, 0, 1,194,188, 0, 1,194,228, 0, 1,195, 12,
- 0, 1,195, 52, 0, 1,195, 88, 0, 1,195,124, 0, 1,195,208, 0, 1,196, 36, 0, 1,196,120, 0, 1,196,192, 0, 1,197, 8,
- 0, 1,197, 80, 0, 1,197,152, 0, 1,197,212, 0, 1,198, 20, 0, 1,198,120, 0, 1,198,244, 0, 1,199, 88, 0, 1,199,152,
- 0, 1,199,216, 0, 1,200, 24, 0, 1,200, 88, 0, 1,200,180, 0, 1,201, 16, 0, 1,201, 80, 0, 1,201,144, 0, 1,201,208,
- 0, 1,202, 16, 0, 1,202, 80, 0, 1,202,144, 0, 1,202,228, 0, 1,203, 60, 0, 1,203,140, 0, 1,203,220, 0, 1,204, 36,
- 0, 1,204,112, 0, 1,204,184, 0, 1,205, 4, 0, 1,205, 64, 0, 1,205,124, 0, 1,205,188, 0, 1,205,248, 0, 1,206, 52,
- 0, 1,206,112, 0, 1,206,200, 0, 1,207, 24, 0, 1,207,120, 0, 1,207,216, 0, 1,208, 48, 0, 1,208,160, 0, 1,208,244,
- 0, 1,209, 56, 0, 1,209,124, 0, 1,209,204, 0, 1,210,108, 0, 1,210,188, 0, 1,211, 24, 0, 1,211, 92, 0, 1,211,160,
- 0, 1,211,248, 0, 1,212, 72, 0, 1,212,152, 0, 1,213, 0, 0, 1,213, 52, 0, 1,213,104, 0, 1,213,184, 0, 1,214,116,
- 0, 1,215, 64, 0, 1,215,188, 0, 1,215,232, 0, 1,216, 68, 0, 1,216,212, 0, 1,217,104, 0, 1,217,196, 0, 1,218, 84,
- 0, 1,218,164, 0, 1,218,236, 0, 1,219, 92, 0, 1,219,136, 0, 1,219,200, 0, 1,219,252, 0, 1,220, 16, 0, 1,220, 36,
- 0, 1,220, 52, 0, 1,220,152, 0, 1,221, 16, 0, 1,221,212, 0, 1,221,248, 0, 1,222, 32, 0, 1,222, 72, 0, 1,222,112,
- 0, 1,222,228, 0, 1,223, 92, 0, 1,223,204, 0, 1,224,100, 0, 1,225, 60, 0, 1,225, 84, 0, 1,225,140, 0, 1,225,188,
- 0, 1,225,220, 0, 1,226, 56, 0, 1,226,148, 0, 1,227, 0, 0, 1,227, 96, 0, 1,227,200, 0, 1,228, 76, 0, 1,228,196,
- 0, 1,229, 92, 0, 1,229,244, 0, 1,230,232, 0, 1,231,148, 0, 1,232, 76, 0, 1,233, 64, 0, 1,233,184, 0, 1,234, 4,
- 0, 1,234,192, 0, 1,235, 52, 0, 1,235, 76, 0, 1,235,116, 0, 1,235,148, 0, 1,235,180, 0, 1,235,244, 0, 1,236, 60,
- 0, 1,236,152, 0, 1,237, 4, 0, 1,237, 76, 0, 1,237,140, 0, 1,237,204, 0, 1,238, 24, 0, 1,238, 96, 0, 1,239, 68,
- 0, 1,239,200, 0, 1,240, 84, 0, 1,240,216, 0, 1,241, 12, 0, 1,241,104, 0, 1,241,168, 0, 1,242, 8, 0, 1,242,100,
- 0, 1,242,168, 0, 1,242,232, 0, 1,243, 72, 0, 1,243,172, 0, 1,244, 20, 0, 1,244,104, 0, 1,244,188, 0, 1,245, 36,
- 0, 1,245,136, 0, 1,246, 0, 0, 1,246,136, 0, 1,247, 40, 0, 1,247,212, 0, 1,248, 24, 0, 1,248, 92, 0, 1,248,224,
- 0, 1,249,104, 0, 1,249,164, 0, 1,249,220, 0, 1,250, 68, 0, 1,250,172, 0, 1,251, 64, 0, 1,251,208, 0, 1,252, 56,
- 0, 1,252,160, 0, 1,252,232, 0, 1,253, 44, 0, 1,253,152, 0, 1,254, 4, 0, 1,254, 88, 0, 1,254,168, 0, 1,255, 36,
- 0, 1,255,176, 0, 2, 0, 24, 0, 2, 0,132, 0, 2, 0,220, 0, 2, 1, 52, 0, 2, 1,176, 0, 2, 2, 48, 0, 2, 2,248,
- 0, 2, 3,168, 0, 2, 4,116, 0, 2, 5, 40, 0, 2, 5,216, 0, 2, 6,192, 0, 2, 7,176, 0, 2, 8,112, 0, 2, 9, 36,
- 0, 2, 9,116, 0, 2, 9,172, 0, 2, 10, 12, 0, 2, 10, 68, 0, 2, 10,116, 0, 2, 10,164, 0, 2, 11, 12, 0, 2, 11, 92,
- 0, 2, 11,176, 0, 2, 11,232, 0, 2, 12, 28, 0, 2, 12,132, 0, 2, 12,236, 0, 2, 13,132, 0, 2, 14, 24, 0, 2, 14,108,
- 0, 2, 14,188, 0, 2, 15, 8, 0, 2, 15, 84, 0, 2, 15,208, 0, 2, 16, 84, 0, 2, 16,248, 0, 2, 17,152, 0, 2, 17,172,
- 0, 2, 17,188, 0, 2, 17,232, 0, 2, 18, 32, 0, 2, 18, 72, 0, 2, 18,112, 0, 2, 18,164, 0, 2, 18,228, 0, 2, 19, 4,
- 0, 2, 19, 36, 0, 2, 19, 68, 0, 2, 19,100, 0, 2, 19,140, 0, 2, 19,180, 0, 2, 19,220, 0, 2, 20, 4, 0, 2, 20, 36,
- 0, 2, 20,120, 0, 2, 20,136, 0, 2, 20,204, 0, 2, 21, 16, 0, 2, 21,104, 0, 2, 22, 80, 0, 2, 22,116, 0, 2, 22,152,
- 0, 2, 22,184, 0, 2, 22,216, 0, 2, 22,248, 0, 2, 23, 80, 0, 2, 23,168, 0, 2, 23,224, 0, 2, 24, 68, 0, 2, 24,156,
- 0, 2, 29, 72, 0, 2, 29,172, 0, 2, 29,212, 0, 2, 30, 0, 0, 2, 30, 68, 0, 2, 30,148, 0, 2, 30,240, 0, 2, 31, 8,
- 0, 2, 31,148, 0, 2, 32, 24, 0, 2, 32, 48, 0, 2, 32,104, 0, 2, 32,156, 0, 2, 32,232, 0, 2, 33, 52, 0, 2, 33,128,
- 0, 2, 33,208, 0, 2, 34, 96, 0, 2, 34,176, 0, 2, 34,248, 0, 2, 35, 72, 0, 2, 35,152, 0, 2, 35,228, 0, 2, 36, 48,
- 0, 2, 36,128, 0, 2, 36,208, 0, 2, 36,232, 0, 2, 37, 0, 0, 2, 37, 24, 0, 2, 37, 48, 0, 2, 37, 72, 0, 2, 37, 96,
- 0, 2, 37,120, 0, 2, 37,144, 0, 2, 37,168, 0, 2, 37,192, 0, 2, 37,220, 0, 2, 37,244, 0, 2, 38, 12, 0, 2, 38,168,
- 0, 2, 39,116, 0, 2, 39,216, 0, 2, 40, 24, 0, 2, 40,128, 0, 2, 40,152, 0, 2, 40,168, 0, 2, 40,184, 0, 2, 40,200,
- 0, 2, 40,224, 0, 2, 40,248, 0, 2, 41, 16, 0, 2, 41, 40, 0, 2, 41, 56, 0, 2, 41,136, 0, 2, 42, 32, 0, 2, 42,204,
- 0, 2, 43,204, 0, 2, 44,156, 0, 2, 45,204, 0, 2, 46,112, 0, 2, 47, 28, 0, 2, 47,156, 0, 2, 47,200, 0, 2, 48, 0,
- 0, 2, 48, 28, 0, 2, 48, 84, 0, 2, 48,140, 0, 2, 48,168, 0, 2, 48,224, 0, 2, 49, 0, 0, 2, 49, 28, 0, 2, 49, 64,
- 0, 2, 49,100, 0, 2, 49,128, 0, 2, 49,160, 0, 2, 49,212, 0, 2, 50, 44, 0, 2, 50,100, 0, 2, 50,128, 0, 2, 50,184,
- 0, 2, 51, 16, 0, 2, 51, 68, 0, 2, 51, 96, 0, 2, 51,172, 0, 2, 51,216, 0, 2, 52, 28, 0, 2, 52, 56, 0, 2, 52, 84,
- 0, 2, 52,112, 0, 2, 52,140, 0, 2, 52,192, 0, 2, 52,248, 0, 2, 53, 48, 0, 2, 53,108, 0, 2, 53,164, 0, 2, 53,228,
- 0, 2, 54, 44, 0, 2, 54,120, 0, 2, 54,156, 0, 2, 54,192, 0, 2, 54,228, 0, 2, 55, 8, 0, 2, 55, 44, 0, 2, 55, 80,
- 0, 2, 55,116, 0, 2, 55,152, 0, 2, 55,184, 0, 2, 55,220, 0, 2, 56, 0, 0, 2, 56, 36, 0, 2, 56, 68, 0, 2, 56,100,
- 0, 2, 56,132, 0, 2, 56,168, 0, 2, 56,208, 0, 2, 56,248, 0, 2, 57, 36, 0, 2, 57, 80, 0, 2, 57,120, 0, 2, 57,168,
- 0, 2, 57,212, 0, 2, 57,252, 0, 2, 58, 36, 0, 2, 58, 76, 0, 2, 58,120, 0, 2, 58,164, 0, 2, 58,204, 0, 2, 58,252,
- 0, 2, 59, 40, 0, 2, 59, 80, 0, 2, 59,120, 0, 2, 59,164, 0, 2, 59,208, 0, 2, 59,248, 0, 2, 60, 32, 0, 2, 60, 76,
- 0, 2, 60,120, 0, 2, 60,160, 0, 2, 60,196, 0, 2, 60,240, 0, 2, 61, 28, 0, 2, 61, 68, 0, 2, 61,108, 0, 2, 61,152,
- 0, 2, 61,196, 0, 2, 61,236, 0, 2, 62, 28, 0, 2, 62, 80, 0, 2, 62,132, 0, 2, 62,184, 0, 2, 62,236, 0, 2, 63, 32,
- 0, 2, 63, 84, 0, 2, 63,140, 0, 2, 63,196, 0, 2, 63,252, 0, 2, 64, 52, 0, 2, 64,104, 0, 2, 64,156, 0, 2, 64,208,
- 0, 2, 65, 4, 0, 2, 65, 56, 0, 2, 65, 92, 0, 2, 65,136, 0, 2, 65,180, 0, 2, 65,224, 0, 2, 66, 8, 0, 2, 66, 48,
- 0, 2, 66, 92, 0, 2, 66,136, 0, 2, 66,188, 0, 2, 66,232, 0, 2, 67, 20, 0, 2, 67, 72, 0, 2, 67,116, 0, 2, 67,160,
- 0, 2, 67,212, 0, 2, 68, 0, 0, 2, 68, 44, 0, 2, 68, 96, 0, 2, 68,144, 0, 2, 68,196, 0, 2, 69, 8, 0, 2, 69, 56,
- 0, 2, 69,108, 0, 2, 69,172, 0, 2, 69,224, 0, 2, 70, 16, 0, 2, 70, 80, 0, 2, 70,132, 0, 2, 70,180, 0, 2, 70,244,
- 0, 2, 71, 60, 0, 2, 71,128, 0, 2, 71,220, 0, 2, 72, 16, 0, 2, 72, 72, 0, 2, 72,120, 0, 2, 72,172, 0, 2, 72,204,
- 0, 2, 72,232, 0, 2, 73, 40, 0, 2, 73, 68, 0, 2, 73, 96, 0, 2, 73,124, 0, 2, 73,152, 0, 2, 73,180, 0, 2, 73,208,
- 0, 2, 73,236, 0, 2, 74, 8, 0, 2, 74, 44, 0, 2, 74, 84, 0, 2, 74,120, 0, 2, 74,160, 0, 2, 74,180, 0, 2, 74,208,
- 0, 2, 74,236, 0, 2, 75, 8, 0, 2, 75, 36, 0, 2, 75, 64, 0, 2, 75, 92, 0, 2, 75,120, 0, 2, 75,148, 0, 2, 75,176,
- 0, 2, 75,204, 0, 2, 75,232, 0, 2, 76, 4, 0, 2, 76, 32, 0, 2, 76, 60, 0, 2, 76, 88, 0, 2, 76,108, 0, 2, 77, 32,
- 0, 2, 78,168, 0, 2, 79, 80, 0, 2, 79,100, 0, 2, 79,120, 0, 2, 79,148, 0, 2, 79,168, 0, 2, 79,188, 0, 2, 79,216,
- 0, 2, 79,240, 0, 2, 80, 12, 0, 2, 80, 40, 0, 2, 80, 60, 0, 2, 80, 84, 0, 2, 80,112, 0, 2, 80,140, 0, 2, 80,184,
- 0, 2, 81, 12, 0, 2, 81, 36, 0, 2, 81,124, 0, 2, 81,216, 0, 2, 83, 12, 0, 2, 83,148, 0, 2, 84, 28, 0, 2, 85,188,
- 0, 2, 85,216, 0, 2, 86, 4, 0, 2, 86, 32, 0, 2, 86, 76, 0, 2, 86,104, 0, 2, 86,148, 0, 2, 86,180, 0, 2, 86,228,
- 0, 2, 87, 0, 0, 2, 87, 40, 0, 2, 87, 68, 0, 2, 87,112, 0, 2, 87,140, 0, 2, 87,184, 0, 2, 87,212, 0, 2, 88, 0,
- 0, 2, 88, 28, 0, 2, 88, 68, 0, 2, 88, 96, 0, 2, 88,140, 0, 2, 88,168, 0, 2, 88,208, 0, 2, 88,236, 0, 2, 89, 24,
- 0, 2, 89, 52, 0, 2, 89, 92, 0, 2, 89,120, 0, 2, 89,160, 0, 2, 89,192, 0, 2, 89,244, 0, 2, 90, 56, 0, 2, 90,196,
- 0, 2, 91, 24, 0, 2, 91,124, 0, 2, 92,116, 0, 2, 93, 40, 0, 2, 93,220, 0, 2, 94, 20, 0, 2, 94,104, 0, 2, 94,188,
- 0, 2, 95, 20, 0, 2, 95,108, 0, 2, 95,208, 0, 2, 96, 32, 0, 2, 96, 72, 0, 2, 96,112, 0, 2, 96,176, 0, 2, 97, 36,
- 0, 2, 97,116, 0, 2, 97,200, 0, 2, 97,248, 0, 2, 98, 36, 0, 2, 98, 80, 0, 2, 98,124, 0, 2, 98,192, 0, 2, 99, 4,
- 0, 2, 99, 32, 0, 2, 99, 60, 0, 2, 99, 84, 0, 2, 99,108, 0, 2, 99,184, 0, 2, 99,228, 0, 2,100, 16, 0, 2,100, 56,
- 0, 2,100, 96, 0, 2,100,156, 0, 2,100,232, 0, 2,101, 20, 0, 2,101, 60, 0, 2,101,160, 0, 2,101,224, 0, 2,102, 28,
- 0, 2,102, 92, 0, 2,102,156, 0, 2,103, 16, 0, 2,103,132, 0, 2,103,252, 0, 2,104,116, 0, 2,104,156, 0, 2,104,196,
- 0, 2,104,236, 0, 2,105, 24, 0, 2,105, 52, 0, 2,105, 96, 0, 2,105,124, 0, 2,105,164, 0, 2,106,148, 0, 2,107, 0,
- 0, 2,107,180, 0, 2,111,192, 0, 2,114,128, 0, 2,114,180, 0, 2,115, 16, 0, 2,115, 96, 0, 2,115,192, 0, 2,116, 72,
- 0, 2,117, 16, 0, 2,117,216, 0, 2,118, 60, 0, 2,118,216, 0, 2,121, 12, 0, 2,123,176, 0, 2,123,232, 0, 2,124, 96,
- 0, 2,124,212, 0, 2,125, 44, 0, 2,126,132, 0, 2,128, 28, 0, 2,128,100, 0, 2,128,152, 0, 2,129,100, 0, 2,130, 40,
- 0, 2,130,192, 0, 2,131, 88, 0, 2,132, 28, 0, 2,132,228, 0, 2,133,168, 0, 2,134,108, 0, 2,137,220, 0, 2,138, 88,
- 0, 2,139,112, 0, 2,140,196, 0, 2,143,236, 0, 2,144,104, 0, 2,144,240, 0, 2,145, 96, 0, 2,145,196, 0, 2,146, 72,
- 0, 2,146,216, 0, 2,148, 24, 0, 2,149, 60, 0, 2,149,212, 0, 2,150, 96, 0, 2,151, 8, 0, 2,152,120, 0, 2,153, 52,
- 0, 2,153,244, 0, 2,154,136, 0, 2,155,160, 0, 2,156, 52, 0, 2,156,200, 0, 2,157,136, 0, 2,158, 8, 0, 2,158,132,
- 0, 2,159, 16, 0, 2,159,112, 0, 2,159,212, 0, 2,160,116, 0, 2,161, 32, 0, 2,161,132, 0, 2,161,240, 0, 2,162,128,
- 0, 2,162,224, 0, 2,163,152, 0, 2,164, 84, 0, 2,165, 24, 0, 2,165,136, 0, 2,166, 40, 0, 2,166,112, 0, 2,167, 8,
- 0, 2,167,204, 0, 2,168, 72, 0, 2,169,112, 0, 2,171,148, 0, 2,172, 44, 0, 2,173, 72, 0, 2,174, 92, 0, 2,175,108,
- 0, 2,176,248, 0, 2,177,240, 0, 2,178,112, 0, 2,179, 52, 0, 2,179,252, 0, 2,180,140, 0, 2,180,252, 0, 2,181,156,
- 0, 2,181,228, 0, 2,182,132, 0, 2,183, 72, 0, 2,183,156, 0, 2,183,204, 0, 2,184,236, 0, 2,185,208, 0, 2,186, 16,
- 0, 2,186,108, 0, 2,186,208, 0, 2,187, 48, 0, 2,187,128, 0, 2,187,208, 0, 2,188,100, 0, 2,189, 36, 0, 2,190, 8,
- 0, 2,192, 0, 0, 2,192,228, 0, 2,193,244, 0, 2,195, 28, 0, 2,196, 8, 0, 2,197, 24, 0, 2,198, 56, 0, 2,199, 20,
- 0, 2,199,212, 0, 2,200,216, 0, 2,202, 8, 0, 2,203, 84, 0, 2,204, 72, 0, 2,204,224, 0, 2,205, 80, 0, 2,206, 8,
- 0, 2,207, 0, 0, 2,208, 64, 0, 2,209,196, 0, 2,211,140, 0, 2,212, 32, 0, 2,212,216, 0, 2,213, 64, 0, 2,213,204,
- 0, 2,213,232, 0, 2,214, 16, 0, 2,214,112, 0, 2,214,176, 0, 2,215, 36, 0, 2,216, 24, 0, 2,217, 76, 0, 2,218, 96,
- 0, 2,219, 8, 0, 2,219,132, 0, 2,220, 36, 0, 2,221, 36, 0, 2,222,240, 0, 2,225,132, 0, 2,227, 48, 0, 2,227,180,
- 0, 2,228, 0, 0, 2,228, 40, 0, 2,228,112, 0, 2,230, 52, 0, 2,231,208, 0, 2,233,140, 0, 2,237, 68, 0, 2,238,236,
- 0, 2,240,144, 0, 2,241, 24, 0, 2,241,192, 0, 2,244,100, 0, 2,246, 0, 0, 2,247, 48, 0, 2,248, 44, 0, 2,249, 88,
- 0, 2,250, 56, 0, 2,250,188, 0, 2,251, 32, 0, 2,251,132, 0, 2,251,200, 0, 2,252, 12, 0, 2,252,212, 0, 2,253,200,
- 0, 2,254, 72, 0, 2,254,124, 0, 2,254,184, 0, 2,254,252, 0, 2,255, 44, 0, 2,255,140, 0, 2,255,252, 0, 3, 0,228,
- 0, 3, 1,116, 0, 3, 2, 48, 0, 3, 3,176, 0, 3, 5,120, 0, 3, 8,208, 0, 3, 9, 56, 0, 3, 9,252, 0, 3, 10, 96,
- 0, 3, 10,244, 0, 3, 11,132, 0, 3, 12, 64, 0, 3, 12,192, 0, 3, 13, 52, 0, 3, 13,172, 0, 3, 14, 20, 0, 3, 14, 96,
- 0, 3, 14,192, 0, 3, 15, 36, 0, 3, 15,124, 0, 3, 16, 44, 0, 3, 16,112, 0, 3, 16,192, 0, 3, 17, 16, 0, 3, 17,120,
- 0, 3, 18, 36, 0, 3, 19,216, 0, 3, 21,216, 0, 3, 23, 24, 0, 3, 25, 72, 0, 3, 26,228, 0, 3, 29,176, 0, 3, 35,172,
- 0, 3, 37, 8, 0, 3, 39, 88, 0, 3, 40, 24, 0, 3, 40,208, 0, 3, 41,148, 0, 3, 43, 20, 0, 3, 44,144, 0, 3, 45,228,
- 0, 3, 47, 52, 0, 3, 48,120, 0, 3, 48,240, 0, 3, 49, 36, 0, 3, 49, 88, 0, 3, 49,136, 0, 3, 49,184, 0, 3, 50, 16,
- 0, 3, 50, 44, 0, 3, 50, 72, 0, 3, 50,100, 0, 3, 50,136, 0, 3, 50,172, 0, 3, 50,200, 0, 3, 50,228, 0, 3, 51,220,
- 0, 3, 52,136, 0, 3, 53, 92, 0, 3, 53,216, 0, 3, 54, 88, 0, 3, 55,120, 0, 3, 56, 92, 0, 3, 56,200, 0, 3, 57, 52,
- 0, 3, 57,112, 0, 3, 57,176, 0, 3, 57,216, 0, 3, 58, 0, 0, 3, 58, 40, 0, 3, 58, 80, 0, 3, 58,120, 0, 3, 58,160,
- 0, 3, 58,200, 0, 3, 58,240, 0, 3, 59, 84, 0, 3, 59,196, 0, 3, 59,244, 0, 3, 60, 32, 0, 3, 60, 76, 0, 3, 60,120,
- 0, 3, 60,168, 0, 3, 61, 76, 0, 3, 61,116, 0, 3, 61,156, 0, 3, 61,236, 0, 3, 62, 60, 0, 3, 62,100, 0, 3, 62,148,
- 0, 3, 62,196, 0, 3, 62,232, 0, 3, 63, 60, 0, 3, 63,144, 0, 3, 63,188, 0, 3, 63,232, 0, 3, 64, 44, 0, 3, 64,112,
- 0, 3, 64,192, 0, 3, 65, 12, 0, 3, 65, 88, 0, 3, 65,164, 0, 3, 65,248, 0, 3, 66, 76, 0, 3, 66,192, 0, 3, 67, 92,
- 0, 3, 67,180, 0, 3, 67,252, 0, 3, 68, 84, 0, 3, 68,252, 0, 3, 69,148, 0, 3, 70, 56, 0, 3, 71, 20, 0, 3, 71,176,
- 0, 3, 72,220, 0, 3, 74, 16, 0, 3, 74,168, 0, 3, 74,228, 0, 3, 75, 12, 0, 3, 75, 52, 0, 3, 75, 84, 0, 3, 75,152,
- 0, 3, 75,236, 0, 3, 75,252, 0, 3, 76, 40, 0, 3, 76, 84, 0, 3, 76,124, 0, 3, 76,164, 0, 3, 76,212, 0, 3, 77, 4,
- 0, 3, 77, 52, 0, 3, 77,100, 0, 3, 78, 8, 0, 3, 78, 44, 0, 3, 78, 84, 0, 3, 78,212, 0, 3, 79, 80, 0, 3, 79, 96,
- 0, 3, 79,216, 0, 3, 80,120, 0, 3, 81, 0, 0, 3, 81, 24, 0, 3, 81, 48, 0, 3, 81, 72, 0, 3, 81, 96, 0, 3, 81,120,
- 0, 3, 81,144, 0, 3, 81,168, 0, 3, 81,192, 0, 3, 81,216, 0, 3, 81,240, 0, 3, 82, 8, 0, 3, 82, 32, 0, 3, 82, 56,
- 0, 3, 82, 80, 0, 3, 82,104, 0, 3, 82,128, 0, 3, 82,152, 0, 3, 82,176, 0, 3, 82,200, 0, 3, 82,224, 0, 3, 82,248,
- 0, 3, 83, 16, 0, 3, 83, 40, 0, 3, 83, 64, 0, 3, 83, 88, 0, 3, 83,112, 0, 3, 83,136, 0, 3, 83,160, 0, 3, 83,184,
- 0, 3, 83,208, 0, 3, 83,232, 0, 3, 84, 0, 0, 3, 84, 24, 0, 3, 84, 48, 0, 3, 84, 72, 0, 3, 84, 96, 0, 3, 84,120,
- 0, 3, 84,144, 0, 3, 84,168, 0, 3, 84,192, 0, 3, 84,216, 0, 3, 84,240, 0, 3, 85, 8, 0, 3, 85, 32, 0, 3, 85, 56,
- 0, 3, 85, 80, 0, 3, 85,104, 0, 3, 85,128, 0, 3, 85,152, 0, 3, 85,176, 0, 3, 85,200, 0, 3, 85,224, 0, 3, 85,240,
- 0, 3, 86,140, 0, 3, 86,156, 0, 3, 86,172, 0, 3, 86,196, 0, 3, 86,220, 0, 3, 86,244, 0, 3, 87, 12, 0, 3, 87, 28,
- 0, 3, 87,148, 0, 3, 87,164, 0, 3, 88,116, 0, 3, 88,132, 0, 3, 89, 56, 0, 3, 89,108, 0, 3, 89,176, 0, 3, 89,192,
- 0, 3, 89,208, 0, 3, 89,232, 0, 3, 90, 0, 0, 3, 90, 16, 0, 3, 90, 40, 0, 3, 90, 56, 0, 3, 90,108, 0, 3, 90,124,
- 0, 3, 90,140, 0, 3, 90,164, 0, 3, 90,180, 0, 3, 90,204, 0, 3, 90,220, 0, 3, 90,244, 0, 3, 91, 4, 0, 3, 91, 28,
- 0, 3, 91, 44, 0, 3, 91, 68, 0, 3, 91, 84, 0, 3, 91,108, 0, 3, 91,132, 0, 3, 91,156, 0, 3, 91,180, 0, 3, 91,204,
- 0, 3, 91,228, 0, 3, 91,252, 0, 3, 92, 20, 0, 3, 92, 44, 0, 3, 92, 68, 0, 3, 92, 92, 0, 3, 92,116, 0, 3, 92,132,
- 0, 3, 92,184, 0, 3, 92,208, 0, 3, 92,232, 0, 3, 93, 0, 0, 3, 93, 24, 0, 3, 93, 48, 0, 3, 93, 72, 0, 3, 93, 96,
- 0, 3, 93,120, 0, 3, 93,144, 0, 3, 93,168, 0, 3, 93,192, 0, 3, 93,216, 0, 3, 93,240, 0, 3, 94, 8, 0, 3, 94, 32,
- 0, 3, 94, 56, 0, 3, 94, 80, 0, 3, 94,104, 0, 3, 94,120, 0, 3, 95, 16, 0, 3, 95,120, 0, 3, 95,252, 0, 3, 96, 20,
- 0, 3, 96, 44, 0, 3, 96, 68, 0, 3, 96, 92, 0, 3, 96,108, 0, 3, 96,212, 0, 3, 96,236, 0, 3, 97, 4, 0, 3, 97, 20,
- 0, 3, 97,108, 0, 3, 97,132, 0, 3, 97,156, 0, 3, 97,172, 0, 3, 98,128, 0, 3, 99, 16, 0, 3, 99,176, 0, 3, 99,200,
- 0, 3, 99,224, 0, 3, 99,248, 0, 3,100, 16, 0, 3,100, 32, 0, 3,100,240, 0, 3,101,116, 0, 3,102, 16, 0, 3,102, 40,
- 0, 3,102, 64, 0, 3,102, 88, 0, 3,102,112, 0, 3,102,128, 0, 3,102,248, 0, 3,103, 92, 0, 3,103,212, 0, 3,103,236,
- 0, 3,104, 4, 0, 3,104, 28, 0, 3,104, 52, 0, 3,104, 68, 0, 3,104,240, 0, 3,105, 72, 0, 3,105,216, 0, 3,105,240,
- 0, 3,106, 8, 0, 3,106, 32, 0, 3,106, 56, 0, 3,106, 80, 0, 3,106,104, 0, 3,106,128, 0, 3,106,152, 0, 3,106,176,
- 0, 3,106,200, 0, 3,106,224, 0, 3,106,248, 0, 3,107, 8, 0, 3,107,212, 0, 3,108, 64, 0, 3,108,200, 0, 3,108,216,
- 0, 3,109, 76, 0, 3,109,132, 0, 3,109,204, 0, 3,109,220, 0, 3,110,120, 0, 3,110,252, 0, 3,111,140, 0, 3,111,164,
- 0, 3,111,188, 0, 3,111,212, 0, 3,111,236, 0, 3,111,252, 0, 3,112,116, 0, 3,113, 48, 0, 3,113,192, 0, 3,113,208,
- 0, 3,114,100, 0, 3,114,116, 0, 3,115, 24, 0, 3,115, 48, 0, 3,115, 72, 0, 3,115, 96, 0, 3,115,120, 0, 3,115,144,
- 0, 3,115,168, 0, 3,115,192, 0, 3,115,216, 0, 3,115,240, 0, 3,116, 8, 0, 3,116, 92, 0, 3,116,196, 0, 3,116,196,
- 0, 3,116,196, 0, 3,116,196, 0, 3,116,196, 0, 3,116,196, 0, 3,117, 84, 0, 3,117,100, 0, 3,117,116, 0, 3,117,132,
- 0, 3,117,148, 0, 3,117,164, 0, 3,117,180, 0, 3,117,196, 0, 3,117,212, 0, 3,117,228, 0, 3,117,244, 0, 3,118, 4,
- 0, 3,118, 20, 0, 3,118, 36, 0, 3,118, 52, 0, 3,118, 68, 0, 3,118, 84, 0, 3,118,100, 0, 3,118,116, 0, 3,118,132,
- 0, 3,118,148, 0, 3,118,164, 0, 3,118,180, 0, 3,118,196, 0, 3,118,212, 0, 3,118,228, 0, 3,118,244, 0, 3,119, 4,
- 0, 3,119, 20, 0, 3,119, 36, 0, 3,119, 52, 0, 3,119, 68, 0, 3,119, 84, 0, 3,119,100, 0, 3,119,116, 0, 3,119,132,
- 0, 3,119,148, 0, 3,119,164, 0, 3,119,180, 0, 3,119,196, 0, 3,119,212, 0, 3,119,228, 0, 3,119,244, 0, 3,120, 4,
- 0, 3,120, 20, 0, 3,120, 36, 0, 3,120, 52, 0, 3,120, 68, 0, 3,120, 84, 0, 3,120,100, 0, 3,120,116, 0, 3,120,132,
- 0, 3,120,148, 0, 3,120,164, 0, 3,120,180, 0, 3,120,196, 0, 3,120,212, 0, 3,120,228, 0, 3,120,244, 0, 3,121, 4,
- 0, 3,121, 20, 0, 3,121, 36, 0, 3,121, 52, 0, 3,121, 96, 0, 3,121,216, 0, 3,122, 96, 0, 3,123,140, 0, 3,124, 20,
- 0, 3,124,148, 0, 3,125, 36, 0, 3,125, 92, 0, 3,125,144, 0, 3,125,228, 0, 3,126, 16, 0, 3,126, 84, 0, 3,126,128,
- 0, 3,127, 4, 0, 3,127, 48, 0, 3,127, 76, 0, 3,127,104, 0, 3,127,132, 0, 3,127,204, 0, 3,127,244, 0, 3,128, 12,
- 0, 3,128, 48, 0, 3,128, 96, 0, 3,128,212, 0, 3,129,112, 0, 3,130, 12, 0, 3,130,208, 0, 3,131,136, 0, 3,131,184,
- 0, 3,131,220, 0, 3,132, 20, 0, 3,132, 52, 0, 3,132, 84, 0, 3,132,164, 0, 3,133, 48, 0, 1, 0, 0, 11,210, 2, 12,
- 0, 43, 0,107, 0, 6, 0, 2, 0, 16, 0, 64, 0, 8, 0, 0, 5, 87, 7, 27, 0, 5, 0, 4, 0, 0, 0, 22, 1, 14, 0, 1,
- 0, 0, 0, 0, 0, 0, 0, 95, 0,192, 0, 1, 0, 0, 0, 0, 0, 1, 0, 16, 1, 66, 0, 1, 0, 0, 0, 0, 0, 2, 0, 4,
- 1, 93, 0, 1, 0, 0, 0, 0, 0, 3, 0, 16, 1,132, 0, 1, 0, 0, 0, 0, 0, 4, 0, 16, 1,183, 0, 1, 0, 0, 0, 0,
- 0, 5, 0, 12, 1,226, 0, 1, 0, 0, 0, 0, 0, 6, 0, 14, 2, 13, 0, 1, 0, 0, 0, 0, 0, 8, 0, 17, 2, 64, 0, 1,
- 0, 0, 0, 0, 0, 11, 0, 29, 2,142, 0, 1, 0, 0, 0, 0, 0, 13, 9,147, 21,212, 0, 1, 0, 0, 0, 0, 0, 14, 0, 52,
- 31,210, 0, 3, 0, 1, 4, 9, 0, 0, 0,190, 0, 0, 0, 3, 0, 1, 4, 9, 0, 1, 0, 32, 1, 32, 0, 3, 0, 1, 4, 9,
- 0, 2, 0, 8, 1, 83, 0, 3, 0, 1, 4, 9, 0, 3, 0, 32, 1, 98, 0, 3, 0, 1, 4, 9, 0, 4, 0, 32, 1,149, 0, 3,
- 0, 1, 4, 9, 0, 5, 0, 24, 1,200, 0, 3, 0, 1, 4, 9, 0, 6, 0, 28, 1,239, 0, 3, 0, 1, 4, 9, 0, 8, 0, 34,
- 2, 28, 0, 3, 0, 1, 4, 9, 0, 11, 0, 58, 2, 82, 0, 3, 0, 1, 4, 9, 0, 13, 19, 38, 2,172, 0, 3, 0, 1, 4, 9,
- 0, 14, 0,104, 31,104, 0, 67, 0,111, 0,112, 0,121, 0,114, 0,105, 0,103, 0,104, 0,116, 0, 32, 0, 40, 0, 99, 0, 41,
- 0, 32, 0, 50, 0, 48, 0, 48, 0, 51, 0, 32, 0, 98, 0,121, 0, 32, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101,
- 0, 97, 0,109, 0, 44, 0, 32, 0, 73, 0,110, 0, 99, 0, 46, 0, 32, 0, 65, 0,108, 0,108, 0, 32, 0, 82, 0,105, 0,103,
- 0,104, 0,116, 0,115, 0, 32, 0, 82, 0,101, 0,115, 0,101, 0,114, 0,118, 0,101, 0,100, 0, 46, 0, 10, 0, 68, 0,101,
- 0,106, 0, 97, 0, 86, 0,117, 0, 32, 0, 99, 0,104, 0, 97, 0,110, 0,103, 0,101, 0,115, 0, 32, 0, 97, 0,114, 0,101,
- 0, 32, 0,105, 0,110, 0, 32, 0,112, 0,117, 0, 98, 0,108, 0,105, 0, 99, 0, 32, 0,100, 0,111, 0,109, 0, 97, 0,105,
- 0,110, 0, 10, 0, 0, 67,111,112,121,114,105,103,104,116, 32, 40, 99, 41, 32, 50, 48, 48, 51, 32, 98,121, 32, 66,105,116,115,
-116,114,101, 97,109, 44, 32, 73,110, 99, 46, 32, 65,108,108, 32, 82,105,103,104,116,115, 32, 82,101,115,101,114,118,101,100, 46,
- 10, 68,101,106, 97, 86,117, 32, 99,104, 97,110,103,101,115, 32, 97,114,101, 32,105,110, 32,112,117, 98,108,105, 99, 32,100,111,
-109, 97,105,110, 10, 0, 0, 68, 0,101, 0,106, 0, 97, 0, 86, 0,117, 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 32, 0, 77,
- 0,111, 0,110, 0,111, 0, 0, 68,101,106, 97, 86,117, 32, 83, 97,110,115, 32, 77,111,110,111, 0, 0, 66, 0,111, 0,111, 0,
-107, 0, 0, 66,111,111,107, 0, 0, 68, 0,101, 0,106, 0, 97, 0, 86, 0,117, 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 32,
- 0, 77, 0,111, 0,110, 0,111, 0, 0, 68,101,106, 97, 86,117, 32, 83, 97,110,115, 32, 77,111,110,111, 0, 0, 68, 0,101, 0,
-106, 0, 97, 0, 86, 0,117, 0, 32, 0, 83, 0, 97, 0,110, 0,115, 0, 32, 0, 77, 0,111, 0,110, 0,111, 0, 0, 68,101,106,
- 97, 86,117, 32, 83, 97,110,115, 32, 77,111,110,111, 0, 0, 86, 0,101, 0,114, 0,115, 0,105, 0,111, 0,110, 0, 32, 0, 50,
- 0, 46, 0, 50, 0, 53, 0, 0, 86,101,114,115,105,111,110, 32, 50, 46, 50, 53, 0, 0, 68, 0,101, 0,106, 0, 97, 0, 86, 0,
-117, 0, 83, 0, 97, 0,110, 0,115, 0, 77, 0,111, 0,110, 0,111, 0, 0, 68,101,106, 97, 86,117, 83, 97,110,115, 77,111,110,
-111, 0, 0, 68, 0,101, 0,106, 0, 97, 0, 86, 0,117, 0, 32, 0,102, 0,111, 0,110, 0,116, 0,115, 0, 32, 0,116, 0,101,
- 0, 97, 0,109, 0, 0, 68,101,106, 97, 86,117, 32,102,111,110,116,115, 32,116,101, 97,109, 0, 0,104, 0,116, 0,116, 0,112,
- 0, 58, 0, 47, 0, 47, 0,100, 0,101, 0,106, 0, 97, 0,118, 0,117, 0, 46, 0,115, 0,111, 0,117, 0,114, 0, 99, 0,101,
- 0,102, 0,111, 0,114, 0,103, 0,101, 0, 46, 0,110, 0,101, 0,116, 0, 0,104,116,116,112, 58, 47, 47,100,101,106, 97,118,
-117, 46,115,111,117,114, 99,101,102,111,114,103,101, 46,110,101,116, 0, 0, 70, 0,111, 0,110, 0,116, 0,115, 0, 32, 0, 97,
- 0,114, 0,101, 0, 32, 0, 40, 0, 99, 0, 41, 0, 32, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109,
- 0, 32, 0, 40, 0,115, 0,101, 0,101, 0, 32, 0, 98, 0,101, 0,108, 0,111, 0,119, 0, 41, 0, 46, 0, 32, 0, 68, 0,101,
- 0,106, 0, 97, 0, 86, 0,117, 0, 32, 0, 99, 0,104, 0, 97, 0,110, 0,103, 0,101, 0,115, 0, 32, 0, 97, 0,114, 0,101,
- 0, 32, 0,105, 0,110, 0, 32, 0,112, 0,117, 0, 98, 0,108, 0,105, 0, 99, 0, 32, 0,100, 0,111, 0,109, 0, 97, 0,105,
- 0,110, 0, 46, 0, 10, 0, 10, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 32, 0, 86, 0,101,
- 0,114, 0, 97, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0,115, 0, 32, 0, 67, 0,111, 0,112, 0,121, 0,114, 0,105, 0,103,
- 0,104, 0,116, 0, 10, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45,
- 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45, 0, 45,
- 0, 45, 0, 10, 0, 10, 0, 67, 0,111, 0,112, 0,121, 0,114, 0,105, 0,103, 0,104, 0,116, 0, 32, 0, 40, 0, 99, 0, 41,
- 0, 32, 0, 50, 0, 48, 0, 48, 0, 51, 0, 32, 0, 98, 0,121, 0, 32, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101,
- 0, 97, 0,109, 0, 44, 0, 32, 0, 73, 0,110, 0, 99, 0, 46, 0, 32, 0, 65, 0,108, 0,108, 0, 32, 0, 82, 0,105, 0,103,
- 0,104, 0,116, 0,115, 0, 32, 0, 82, 0,101, 0,115, 0,101, 0,114, 0,118, 0,101, 0,100, 0, 46, 0, 32, 0, 66, 0,105,
- 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 32, 0, 86, 0,101, 0,114, 0, 97, 0, 32, 0,105, 0,115, 0, 32,
- 0, 97, 0, 32, 0,116, 0,114, 0, 97, 0,100, 0,101, 0,109, 0, 97, 0,114, 0,107, 0, 32, 0,111, 0,102, 0, 32, 0, 66,
- 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 44, 0, 32, 0, 73, 0,110, 0, 99, 0, 46, 0, 10, 0, 10,
- 0, 80, 0,101, 0,114, 0,109, 0,105, 0,115, 0,115, 0,105, 0,111, 0,110, 0, 32, 0,105, 0,115, 0, 32, 0,104, 0,101,
- 0,114, 0,101, 0, 98, 0,121, 0, 32, 0,103, 0,114, 0, 97, 0,110, 0,116, 0,101, 0,100, 0, 44, 0, 32, 0,102, 0,114,
- 0,101, 0,101, 0, 32, 0,111, 0,102, 0, 32, 0, 99, 0,104, 0, 97, 0,114, 0,103, 0,101, 0, 44, 0, 32, 0,116, 0,111,
- 0, 32, 0, 97, 0,110, 0,121, 0, 32, 0,112, 0,101, 0,114, 0,115, 0,111, 0,110, 0, 32, 0,111, 0, 98, 0,116, 0, 97,
- 0,105, 0,110, 0,105, 0,110, 0,103, 0, 32, 0, 97, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0, 32, 0,111, 0,102, 0, 32,
- 0,116, 0,104, 0,101, 0, 32, 0,102, 0,111, 0,110, 0,116, 0,115, 0, 32, 0, 97, 0, 99, 0, 99, 0,111, 0,109, 0,112,
- 0, 97, 0,110, 0,121, 0,105, 0,110, 0,103, 0, 32, 0,116, 0,104, 0,105, 0,115, 0, 32, 0,108, 0,105, 0, 99, 0,101,
- 0,110, 0,115, 0,101, 0, 32, 0, 40, 0, 34, 0, 70, 0,111, 0,110, 0,116, 0,115, 0, 34, 0, 41, 0, 32, 0, 97, 0,110,
- 0,100, 0, 32, 0, 97, 0,115, 0,115, 0,111, 0, 99, 0,105, 0, 97, 0,116, 0,101, 0,100, 0, 32, 0,100, 0,111, 0, 99,
- 0,117, 0,109, 0,101, 0,110, 0,116, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 32, 0,102, 0,105, 0,108, 0,101, 0,115,
- 0, 32, 0, 40, 0,116, 0,104, 0,101, 0, 32, 0, 34, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116,
- 0,119, 0, 97, 0,114, 0,101, 0, 34, 0, 41, 0, 44, 0, 32, 0,116, 0,111, 0, 32, 0,114, 0,101, 0,112, 0,114, 0,111,
- 0,100, 0,117, 0, 99, 0,101, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,100, 0,105, 0,115, 0,116, 0,114, 0,105, 0, 98,
- 0,117, 0,116, 0,101, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102,
- 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 44, 0, 32, 0,105, 0,110, 0, 99, 0,108, 0,117, 0,100, 0,105, 0,110, 0,103,
- 0, 32, 0,119, 0,105, 0,116, 0,104, 0,111, 0,117, 0,116, 0, 32, 0,108, 0,105, 0,109, 0,105, 0,116, 0, 97, 0,116,
- 0,105, 0,111, 0,110, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,114, 0,105, 0,103, 0,104, 0,116, 0,115, 0, 32, 0,116,
- 0,111, 0, 32, 0,117, 0,115, 0,101, 0, 44, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0, 44, 0, 32, 0,109, 0,101, 0,114,
- 0,103, 0,101, 0, 44, 0, 32, 0,112, 0,117, 0, 98, 0,108, 0,105, 0,115, 0,104, 0, 44, 0, 32, 0,100, 0,105, 0,115,
- 0,116, 0,114, 0,105, 0, 98, 0,117, 0,116, 0,101, 0, 44, 0, 32, 0, 97, 0,110, 0,100, 0, 47, 0,111, 0,114, 0, 32,
- 0,115, 0,101, 0,108, 0,108, 0, 32, 0, 99, 0,111, 0,112, 0,105, 0,101, 0,115, 0, 32, 0,111, 0,102, 0, 32, 0,116,
- 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101,
- 0, 44, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,116, 0,111, 0, 32, 0,112, 0,101, 0,114, 0,109, 0,105, 0,116, 0, 32,
- 0,112, 0,101, 0,114, 0,115, 0,111, 0,110, 0,115, 0, 32, 0,116, 0,111, 0, 32, 0,119, 0,104, 0,111, 0,109, 0, 32,
- 0,116, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114,
- 0,101, 0, 32, 0,105, 0,115, 0, 32, 0,102, 0,117, 0,114, 0,110, 0,105, 0,115, 0,104, 0,101, 0,100, 0, 32, 0,116,
- 0,111, 0, 32, 0,100, 0,111, 0, 32, 0,115, 0,111, 0, 44, 0, 32, 0,115, 0,117, 0, 98, 0,106, 0,101, 0, 99, 0,116,
- 0, 32, 0,116, 0,111, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,102, 0,111, 0,108, 0,108, 0,111, 0,119, 0,105, 0,110,
- 0,103, 0, 32, 0, 99, 0,111, 0,110, 0,100, 0,105, 0,116, 0,105, 0,111, 0,110, 0,115, 0, 58, 0, 10, 0, 10, 0, 84,
- 0,104, 0,101, 0, 32, 0, 97, 0, 98, 0,111, 0,118, 0,101, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0,114, 0,105, 0,103,
- 0,104, 0,116, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,116, 0,114, 0, 97, 0,100, 0,101, 0,109, 0, 97, 0,114, 0,107,
- 0, 32, 0,110, 0,111, 0,116, 0,105, 0, 99, 0,101, 0,115, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,116, 0,104, 0,105,
- 0,115, 0, 32, 0,112, 0,101, 0,114, 0,109, 0,105, 0,115, 0,115, 0,105, 0,111, 0,110, 0, 32, 0,110, 0,111, 0,116,
- 0,105, 0, 99, 0,101, 0, 32, 0,115, 0,104, 0, 97, 0,108, 0,108, 0, 32, 0, 98, 0,101, 0, 32, 0,105, 0,110, 0, 99,
- 0,108, 0,117, 0,100, 0,101, 0,100, 0, 32, 0,105, 0,110, 0, 32, 0, 97, 0,108, 0,108, 0, 32, 0, 99, 0,111, 0,112,
- 0,105, 0,101, 0,115, 0, 32, 0,111, 0,102, 0, 32, 0,111, 0,110, 0,101, 0, 32, 0,111, 0,114, 0, 32, 0,109, 0,111,
- 0,114, 0,101, 0, 32, 0,111, 0,102, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83,
- 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,116, 0,121, 0,112, 0,101, 0,102, 0, 97, 0, 99, 0,101,
- 0,115, 0, 46, 0, 10, 0, 10, 0, 84, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102,
- 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0,109, 0,111, 0,100,
- 0,105, 0,102, 0,105, 0,101, 0,100, 0, 44, 0, 32, 0, 97, 0,108, 0,116, 0,101, 0,114, 0,101, 0,100, 0, 44, 0, 32,
- 0,111, 0,114, 0, 32, 0, 97, 0,100, 0,100, 0,101, 0,100, 0, 32, 0,116, 0,111, 0, 44, 0, 32, 0, 97, 0,110, 0,100,
- 0, 32, 0,105, 0,110, 0, 32, 0,112, 0, 97, 0,114, 0,116, 0,105, 0, 99, 0,117, 0,108, 0, 97, 0,114, 0, 32, 0,116,
- 0,104, 0,101, 0, 32, 0,100, 0,101, 0,115, 0,105, 0,103, 0,110, 0,115, 0, 32, 0,111, 0,102, 0, 32, 0,103, 0,108,
- 0,121, 0,112, 0,104, 0,115, 0, 32, 0,111, 0,114, 0, 32, 0, 99, 0,104, 0, 97, 0,114, 0, 97, 0, 99, 0,116, 0,101,
- 0,114, 0,115, 0, 32, 0,105, 0,110, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0,115, 0, 32,
- 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0,109, 0,111, 0,100, 0,105, 0,102, 0,105, 0,101, 0,100, 0, 32,
- 0, 97, 0,110, 0,100, 0, 32, 0, 97, 0,100, 0,100, 0,105, 0,116, 0,105, 0,111, 0,110, 0, 97, 0,108, 0, 32, 0,103,
- 0,108, 0,121, 0,112, 0,104, 0,115, 0, 32, 0,111, 0,114, 0, 32, 0, 32, 0,111, 0,114, 0, 32, 0, 99, 0,104, 0, 97,
- 0,114, 0, 97, 0, 99, 0,116, 0,101, 0,114, 0,115, 0, 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0, 97,
- 0,100, 0,100, 0,101, 0,100, 0, 32, 0,116, 0,111, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116,
- 0,115, 0, 44, 0, 32, 0,111, 0,110, 0,108, 0,121, 0, 32, 0,105, 0,102, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,102,
- 0,111, 0,110, 0,116, 0,115, 0, 32, 0, 97, 0,114, 0,101, 0, 32, 0,114, 0,101, 0,110, 0, 97, 0,109, 0,101, 0,100,
- 0, 32, 0,116, 0,111, 0, 32, 0,110, 0, 97, 0,109, 0,101, 0,115, 0, 32, 0,110, 0,111, 0,116, 0, 32, 0, 99, 0,111,
- 0,110, 0,116, 0, 97, 0,105, 0,110, 0,105, 0,110, 0,103, 0, 32, 0,101, 0,105, 0,116, 0,104, 0,101, 0,114, 0, 32,
- 0,116, 0,104, 0,101, 0, 32, 0,119, 0,111, 0,114, 0,100, 0,115, 0, 32, 0, 34, 0, 66, 0,105, 0,116, 0,115, 0,116,
- 0,114, 0,101, 0, 97, 0,109, 0, 34, 0, 32, 0,111, 0,114, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,119, 0,111, 0,114,
- 0,100, 0, 32, 0, 34, 0, 86, 0,101, 0,114, 0, 97, 0, 34, 0, 46, 0, 10, 0, 10, 0, 84, 0,104, 0,105, 0,115, 0, 32,
- 0, 76, 0,105, 0, 99, 0,101, 0,110, 0,115, 0,101, 0, 32, 0, 98, 0,101, 0, 99, 0,111, 0,109, 0,101, 0,115, 0, 32,
- 0,110, 0,117, 0,108, 0,108, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,118, 0,111, 0,105, 0,100, 0, 32, 0,116, 0,111,
- 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,101, 0,120, 0,116, 0,101, 0,110, 0,116, 0, 32, 0, 97, 0,112, 0,112, 0,108,
- 0,105, 0, 99, 0, 97, 0, 98, 0,108, 0,101, 0, 32, 0,116, 0,111, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0,115, 0, 32,
- 0,111, 0,114, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101,
- 0, 32, 0,116, 0,104, 0, 97, 0,116, 0, 32, 0,104, 0, 97, 0,115, 0, 32, 0, 98, 0,101, 0,101, 0,110, 0, 32, 0,109,
- 0,111, 0,100, 0,105, 0,102, 0,105, 0,101, 0,100, 0, 32, 0, 97, 0,110, 0,100, 0, 32, 0,105, 0,115, 0, 32, 0,100,
- 0,105, 0,115, 0,116, 0,114, 0,105, 0, 98, 0,117, 0,116, 0,101, 0,100, 0, 32, 0,117, 0,110, 0,100, 0,101, 0,114,
- 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 34, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 32,
- 0, 86, 0,101, 0,114, 0, 97, 0, 34, 0, 32, 0,110, 0, 97, 0,109, 0,101, 0,115, 0, 46, 0, 10, 0, 10, 0, 84, 0,104,
- 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32,
- 0,109, 0, 97, 0,121, 0, 32, 0, 98, 0,101, 0, 32, 0,115, 0,111, 0,108, 0,100, 0, 32, 0, 97, 0,115, 0, 32, 0,112,
- 0, 97, 0,114, 0,116, 0, 32, 0,111, 0,102, 0, 32, 0, 97, 0, 32, 0,108, 0, 97, 0,114, 0,103, 0,101, 0,114, 0, 32,
- 0,115, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101, 0, 32, 0,112, 0, 97, 0, 99, 0,107, 0, 97, 0,103, 0,101,
- 0, 32, 0, 98, 0,117, 0,116, 0, 32, 0,110, 0,111, 0, 32, 0, 99, 0,111, 0,112, 0,121, 0, 32, 0,111, 0,102, 0, 32,
- 0,111, 0,110, 0,101, 0, 32, 0,111, 0,114, 0, 32, 0,109, 0,111, 0,114, 0,101, 0, 32, 0,111, 0,102, 0, 32, 0,116,
- 0,104, 0,101, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114, 0,101,
- 0, 32, 0,116, 0,121, 0,112, 0,101, 0,102, 0, 97, 0, 99, 0,101, 0,115, 0, 32, 0,109, 0, 97, 0,121, 0, 32, 0, 98,
- 0,101, 0, 32, 0,115, 0,111, 0,108, 0,100, 0, 32, 0, 98, 0,121, 0, 32, 0,105, 0,116, 0,115, 0,101, 0,108, 0,102,
- 0, 46, 0, 10, 0, 10, 0, 84, 0, 72, 0, 69, 0, 32, 0, 70, 0, 79, 0, 78, 0, 84, 0, 32, 0, 83, 0, 79, 0, 70, 0, 84,
- 0, 87, 0, 65, 0, 82, 0, 69, 0, 32, 0, 73, 0, 83, 0, 32, 0, 80, 0, 82, 0, 79, 0, 86, 0, 73, 0, 68, 0, 69, 0, 68,
- 0, 32, 0, 34, 0, 65, 0, 83, 0, 32, 0, 73, 0, 83, 0, 34, 0, 44, 0, 32, 0, 87, 0, 73, 0, 84, 0, 72, 0, 79, 0, 85,
- 0, 84, 0, 32, 0, 87, 0, 65, 0, 82, 0, 82, 0, 65, 0, 78, 0, 84, 0, 89, 0, 32, 0, 79, 0, 70, 0, 32, 0, 65, 0, 78,
- 0, 89, 0, 32, 0, 75, 0, 73, 0, 78, 0, 68, 0, 44, 0, 32, 0, 69, 0, 88, 0, 80, 0, 82, 0, 69, 0, 83, 0, 83, 0, 32,
- 0, 79, 0, 82, 0, 32, 0, 73, 0, 77, 0, 80, 0, 76, 0, 73, 0, 69, 0, 68, 0, 44, 0, 32, 0, 73, 0, 78, 0, 67, 0, 76,
- 0, 85, 0, 68, 0, 73, 0, 78, 0, 71, 0, 32, 0, 66, 0, 85, 0, 84, 0, 32, 0, 78, 0, 79, 0, 84, 0, 32, 0, 76, 0, 73,
- 0, 77, 0, 73, 0, 84, 0, 69, 0, 68, 0, 32, 0, 84, 0, 79, 0, 32, 0, 65, 0, 78, 0, 89, 0, 32, 0, 87, 0, 65, 0, 82,
- 0, 82, 0, 65, 0, 78, 0, 84, 0, 73, 0, 69, 0, 83, 0, 32, 0, 79, 0, 70, 0, 32, 0, 77, 0, 69, 0, 82, 0, 67, 0, 72,
- 0, 65, 0, 78, 0, 84, 0, 65, 0, 66, 0, 73, 0, 76, 0, 73, 0, 84, 0, 89, 0, 44, 0, 32, 0, 70, 0, 73, 0, 84, 0, 78,
- 0, 69, 0, 83, 0, 83, 0, 32, 0, 70, 0, 79, 0, 82, 0, 32, 0, 65, 0, 32, 0, 80, 0, 65, 0, 82, 0, 84, 0, 73, 0, 67,
- 0, 85, 0, 76, 0, 65, 0, 82, 0, 32, 0, 80, 0, 85, 0, 82, 0, 80, 0, 79, 0, 83, 0, 69, 0, 32, 0, 65, 0, 78, 0, 68,
- 0, 32, 0, 78, 0, 79, 0, 78, 0, 73, 0, 78, 0, 70, 0, 82, 0, 73, 0, 78, 0, 71, 0, 69, 0, 77, 0, 69, 0, 78, 0, 84,
- 0, 32, 0, 79, 0, 70, 0, 32, 0, 67, 0, 79, 0, 80, 0, 89, 0, 82, 0, 73, 0, 71, 0, 72, 0, 84, 0, 44, 0, 32, 0, 80,
- 0, 65, 0, 84, 0, 69, 0, 78, 0, 84, 0, 44, 0, 32, 0, 84, 0, 82, 0, 65, 0, 68, 0, 69, 0, 77, 0, 65, 0, 82, 0, 75,
- 0, 44, 0, 32, 0, 79, 0, 82, 0, 32, 0, 79, 0, 84, 0, 72, 0, 69, 0, 82, 0, 32, 0, 82, 0, 73, 0, 71, 0, 72, 0, 84,
- 0, 46, 0, 32, 0, 73, 0, 78, 0, 32, 0, 78, 0, 79, 0, 32, 0, 69, 0, 86, 0, 69, 0, 78, 0, 84, 0, 32, 0, 83, 0, 72,
- 0, 65, 0, 76, 0, 76, 0, 32, 0, 66, 0, 73, 0, 84, 0, 83, 0, 84, 0, 82, 0, 69, 0, 65, 0, 77, 0, 32, 0, 79, 0, 82,
- 0, 32, 0, 84, 0, 72, 0, 69, 0, 32, 0, 71, 0, 78, 0, 79, 0, 77, 0, 69, 0, 32, 0, 70, 0, 79, 0, 85, 0, 78, 0, 68,
- 0, 65, 0, 84, 0, 73, 0, 79, 0, 78, 0, 32, 0, 66, 0, 69, 0, 32, 0, 76, 0, 73, 0, 65, 0, 66, 0, 76, 0, 69, 0, 32,
- 0, 70, 0, 79, 0, 82, 0, 32, 0, 65, 0, 78, 0, 89, 0, 32, 0, 67, 0, 76, 0, 65, 0, 73, 0, 77, 0, 44, 0, 32, 0, 68,
- 0, 65, 0, 77, 0, 65, 0, 71, 0, 69, 0, 83, 0, 32, 0, 79, 0, 82, 0, 32, 0, 79, 0, 84, 0, 72, 0, 69, 0, 82, 0, 32,
- 0, 76, 0, 73, 0, 65, 0, 66, 0, 73, 0, 76, 0, 73, 0, 84, 0, 89, 0, 44, 0, 32, 0, 73, 0, 78, 0, 67, 0, 76, 0, 85,
- 0, 68, 0, 73, 0, 78, 0, 71, 0, 32, 0, 65, 0, 78, 0, 89, 0, 32, 0, 71, 0, 69, 0, 78, 0, 69, 0, 82, 0, 65, 0, 76,
- 0, 44, 0, 32, 0, 83, 0, 80, 0, 69, 0, 67, 0, 73, 0, 65, 0, 76, 0, 44, 0, 32, 0, 73, 0, 78, 0, 68, 0, 73, 0, 82,
- 0, 69, 0, 67, 0, 84, 0, 44, 0, 32, 0, 73, 0, 78, 0, 67, 0, 73, 0, 68, 0, 69, 0, 78, 0, 84, 0, 65, 0, 76, 0, 44,
- 0, 32, 0, 79, 0, 82, 0, 32, 0, 67, 0, 79, 0, 78, 0, 83, 0, 69, 0, 81, 0, 85, 0, 69, 0, 78, 0, 84, 0, 73, 0, 65,
- 0, 76, 0, 32, 0, 68, 0, 65, 0, 77, 0, 65, 0, 71, 0, 69, 0, 83, 0, 44, 0, 32, 0, 87, 0, 72, 0, 69, 0, 84, 0, 72,
- 0, 69, 0, 82, 0, 32, 0, 73, 0, 78, 0, 32, 0, 65, 0, 78, 0, 32, 0, 65, 0, 67, 0, 84, 0, 73, 0, 79, 0, 78, 0, 32,
- 0, 79, 0, 70, 0, 32, 0, 67, 0, 79, 0, 78, 0, 84, 0, 82, 0, 65, 0, 67, 0, 84, 0, 44, 0, 32, 0, 84, 0, 79, 0, 82,
- 0, 84, 0, 32, 0, 79, 0, 82, 0, 32, 0, 79, 0, 84, 0, 72, 0, 69, 0, 82, 0, 87, 0, 73, 0, 83, 0, 69, 0, 44, 0, 32,
- 0, 65, 0, 82, 0, 73, 0, 83, 0, 73, 0, 78, 0, 71, 0, 32, 0, 70, 0, 82, 0, 79, 0, 77, 0, 44, 0, 32, 0, 79, 0, 85,
- 0, 84, 0, 32, 0, 79, 0, 70, 0, 32, 0, 84, 0, 72, 0, 69, 0, 32, 0, 85, 0, 83, 0, 69, 0, 32, 0, 79, 0, 82, 0, 32,
- 0, 73, 0, 78, 0, 65, 0, 66, 0, 73, 0, 76, 0, 73, 0, 84, 0, 89, 0, 32, 0, 84, 0, 79, 0, 32, 0, 85, 0, 83, 0, 69,
- 0, 32, 0, 84, 0, 72, 0, 69, 0, 32, 0, 70, 0, 79, 0, 78, 0, 84, 0, 32, 0, 83, 0, 79, 0, 70, 0, 84, 0, 87, 0, 65,
- 0, 82, 0, 69, 0, 32, 0, 79, 0, 82, 0, 32, 0, 70, 0, 82, 0, 79, 0, 77, 0, 32, 0, 79, 0, 84, 0, 72, 0, 69, 0, 82,
- 0, 32, 0, 68, 0, 69, 0, 65, 0, 76, 0, 73, 0, 78, 0, 71, 0, 83, 0, 32, 0, 73, 0, 78, 0, 32, 0, 84, 0, 72, 0, 69,
- 0, 32, 0, 70, 0, 79, 0, 78, 0, 84, 0, 32, 0, 83, 0, 79, 0, 70, 0, 84, 0, 87, 0, 65, 0, 82, 0, 69, 0, 46, 0, 10,
- 0, 10, 0, 69, 0,120, 0, 99, 0,101, 0,112, 0,116, 0, 32, 0, 97, 0,115, 0, 32, 0, 99, 0,111, 0,110, 0,116, 0, 97,
- 0,105, 0,110, 0,101, 0,100, 0, 32, 0,105, 0,110, 0, 32, 0,116, 0,104, 0,105, 0,115, 0, 32, 0,110, 0,111, 0,116,
- 0,105, 0, 99, 0,101, 0, 44, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0,110, 0, 97, 0,109, 0,101, 0,115, 0, 32, 0,111,
- 0,102, 0, 32, 0, 71, 0,110, 0,111, 0,109, 0,101, 0, 44, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 71, 0,110, 0,111,
- 0,109, 0,101, 0, 32, 0, 70, 0,111, 0,117, 0,110, 0,100, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 44, 0, 32, 0, 97,
- 0,110, 0,100, 0, 32, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 32, 0, 73, 0,110, 0, 99,
- 0, 46, 0, 44, 0, 32, 0,115, 0,104, 0, 97, 0,108, 0,108, 0, 32, 0,110, 0,111, 0,116, 0, 32, 0, 98, 0,101, 0, 32,
- 0,117, 0,115, 0,101, 0,100, 0, 32, 0,105, 0,110, 0, 32, 0, 97, 0,100, 0,118, 0,101, 0,114, 0,116, 0,105, 0,115,
- 0,105, 0,110, 0,103, 0, 32, 0,111, 0,114, 0, 32, 0,111, 0,116, 0,104, 0,101, 0,114, 0,119, 0,105, 0,115, 0,101,
- 0, 32, 0,116, 0,111, 0, 32, 0,112, 0,114, 0,111, 0,109, 0,111, 0,116, 0,101, 0, 32, 0,116, 0,104, 0,101, 0, 32,
- 0,115, 0, 97, 0,108, 0,101, 0, 44, 0, 32, 0,117, 0,115, 0,101, 0, 32, 0,111, 0,114, 0, 32, 0,111, 0,116, 0,104,
- 0,101, 0,114, 0, 32, 0,100, 0,101, 0, 97, 0,108, 0,105, 0,110, 0,103, 0,115, 0, 32, 0,105, 0,110, 0, 32, 0,116,
- 0,104, 0,105, 0,115, 0, 32, 0, 70, 0,111, 0,110, 0,116, 0, 32, 0, 83, 0,111, 0,102, 0,116, 0,119, 0, 97, 0,114,
- 0,101, 0, 32, 0,119, 0,105, 0,116, 0,104, 0,111, 0,117, 0,116, 0, 32, 0,112, 0,114, 0,105, 0,111, 0,114, 0, 32,
- 0,119, 0,114, 0,105, 0,116, 0,116, 0,101, 0,110, 0, 32, 0, 97, 0,117, 0,116, 0,104, 0,111, 0,114, 0,105, 0,122,
- 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 32, 0,102, 0,114, 0,111, 0,109, 0, 32, 0,116, 0,104, 0,101, 0, 32, 0, 71,
- 0,110, 0,111, 0,109, 0,101, 0, 32, 0, 70, 0,111, 0,117, 0,110, 0,100, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 32,
- 0,111, 0,114, 0, 32, 0, 66, 0,105, 0,116, 0,115, 0,116, 0,114, 0,101, 0, 97, 0,109, 0, 32, 0, 73, 0,110, 0, 99,
- 0, 46, 0, 44, 0, 32, 0,114, 0,101, 0,115, 0,112, 0,101, 0, 99, 0,116, 0,105, 0,118, 0,101, 0,108, 0,121, 0, 46,
- 0, 32, 0, 70, 0,111, 0,114, 0, 32, 0,102, 0,117, 0,114, 0,116, 0,104, 0,101, 0,114, 0, 32, 0,105, 0,110, 0,102,
- 0,111, 0,114, 0,109, 0, 97, 0,116, 0,105, 0,111, 0,110, 0, 44, 0, 32, 0, 99, 0,111, 0,110, 0,116, 0, 97, 0, 99,
- 0,116, 0, 58, 0, 32, 0,102, 0,111, 0,110, 0,116, 0,115, 0, 32, 0, 97, 0,116, 0, 32, 0,103, 0,110, 0,111, 0,109,
- 0,101, 0, 32, 0,100, 0,111, 0,116, 0, 32, 0,111, 0,114, 0,103, 0, 46, 0, 32, 0, 10, 0, 0, 70,111,110,116,115, 32,
- 97,114,101, 32, 40, 99, 41, 32, 66,105,116,115,116,114,101, 97,109, 32, 40,115,101,101, 32, 98,101,108,111,119, 41, 46, 32, 68,
-101,106, 97, 86,117, 32, 99,104, 97,110,103,101,115, 32, 97,114,101, 32,105,110, 32,112,117, 98,108,105, 99, 32,100,111,109, 97,
-105,110, 46, 10, 10, 66,105,116,115,116,114,101, 97,109, 32, 86,101,114, 97, 32, 70,111,110,116,115, 32, 67,111,112,121,114,105,
-103,104,116, 10, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 10, 10, 67,111,112,121,114,105,103,104,116, 32, 40, 99, 41, 32, 50, 48, 48, 51, 32, 98,121, 32, 66,105,116,115,116,114,
-101, 97,109, 44, 32, 73,110, 99, 46, 32, 65,108,108, 32, 82,105,103,104,116,115, 32, 82,101,115,101,114,118,101,100, 46, 32, 66,
-105,116,115,116,114,101, 97,109, 32, 86,101,114, 97, 32,105,115, 32, 97, 32,116,114, 97,100,101,109, 97,114,107, 32,111,102, 32,
- 66,105,116,115,116,114,101, 97,109, 44, 32, 73,110, 99, 46, 10, 10, 80,101,114,109,105,115,115,105,111,110, 32,105,115, 32,104,
-101,114,101, 98,121, 32,103,114, 97,110,116,101,100, 44, 32,102,114,101,101, 32,111,102, 32, 99,104, 97,114,103,101, 44, 32,116,
-111, 32, 97,110,121, 32,112,101,114,115,111,110, 32,111, 98,116, 97,105,110,105,110,103, 32, 97, 32, 99,111,112,121, 32,111,102,
- 32,116,104,101, 32,102,111,110,116,115, 32, 97, 99, 99,111,109,112, 97,110,121,105,110,103, 32,116,104,105,115, 32,108,105, 99,
-101,110,115,101, 32, 40, 34, 70,111,110,116,115, 34, 41, 32, 97,110,100, 32, 97,115,115,111, 99,105, 97,116,101,100, 32,100,111,
- 99,117,109,101,110,116, 97,116,105,111,110, 32,102,105,108,101,115, 32, 40,116,104,101, 32, 34, 70,111,110,116, 32, 83,111,102,
-116,119, 97,114,101, 34, 41, 44, 32,116,111, 32,114,101,112,114,111,100,117, 99,101, 32, 97,110,100, 32,100,105,115,116,114,105,
- 98,117,116,101, 32,116,104,101, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101, 44, 32,105,110, 99,108,117,100,105,110,
-103, 32,119,105,116,104,111,117,116, 32,108,105,109,105,116, 97,116,105,111,110, 32,116,104,101, 32,114,105,103,104,116,115, 32,
-116,111, 32,117,115,101, 44, 32, 99,111,112,121, 44, 32,109,101,114,103,101, 44, 32,112,117, 98,108,105,115,104, 44, 32,100,105,
-115,116,114,105, 98,117,116,101, 44, 32, 97,110,100, 47,111,114, 32,115,101,108,108, 32, 99,111,112,105,101,115, 32,111,102, 32,
-116,104,101, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101, 44, 32, 97,110,100, 32,116,111, 32,112,101,114,109,105,116,
- 32,112,101,114,115,111,110,115, 32,116,111, 32,119,104,111,109, 32,116,104,101, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,
-114,101, 32,105,115, 32,102,117,114,110,105,115,104,101,100, 32,116,111, 32,100,111, 32,115,111, 44, 32,115,117, 98,106,101, 99,
-116, 32,116,111, 32,116,104,101, 32,102,111,108,108,111,119,105,110,103, 32, 99,111,110,100,105,116,105,111,110,115, 58, 10, 10,
- 84,104,101, 32, 97, 98,111,118,101, 32, 99,111,112,121,114,105,103,104,116, 32, 97,110,100, 32,116,114, 97,100,101,109, 97,114,
-107, 32,110,111,116,105, 99,101,115, 32, 97,110,100, 32,116,104,105,115, 32,112,101,114,109,105,115,115,105,111,110, 32,110,111,
-116,105, 99,101, 32,115,104, 97,108,108, 32, 98,101, 32,105,110, 99,108,117,100,101,100, 32,105,110, 32, 97,108,108, 32, 99,111,
-112,105,101,115, 32,111,102, 32,111,110,101, 32,111,114, 32,109,111,114,101, 32,111,102, 32,116,104,101, 32, 70,111,110,116, 32,
- 83,111,102,116,119, 97,114,101, 32,116,121,112,101,102, 97, 99,101,115, 46, 10, 10, 84,104,101, 32, 70,111,110,116, 32, 83,111,
-102,116,119, 97,114,101, 32,109, 97,121, 32, 98,101, 32,109,111,100,105,102,105,101,100, 44, 32, 97,108,116,101,114,101,100, 44,
- 32,111,114, 32, 97,100,100,101,100, 32,116,111, 44, 32, 97,110,100, 32,105,110, 32,112, 97,114,116,105, 99,117,108, 97,114, 32,
-116,104,101, 32,100,101,115,105,103,110,115, 32,111,102, 32,103,108,121,112,104,115, 32,111,114, 32, 99,104, 97,114, 97, 99,116,
-101,114,115, 32,105,110, 32,116,104,101, 32, 70,111,110,116,115, 32,109, 97,121, 32, 98,101, 32,109,111,100,105,102,105,101,100,
- 32, 97,110,100, 32, 97,100,100,105,116,105,111,110, 97,108, 32,103,108,121,112,104,115, 32,111,114, 32, 32,111,114, 32, 99,104,
- 97,114, 97, 99,116,101,114,115, 32,109, 97,121, 32, 98,101, 32, 97,100,100,101,100, 32,116,111, 32,116,104,101, 32, 70,111,110,
-116,115, 44, 32,111,110,108,121, 32,105,102, 32,116,104,101, 32,102,111,110,116,115, 32, 97,114,101, 32,114,101,110, 97,109,101,
-100, 32,116,111, 32,110, 97,109,101,115, 32,110,111,116, 32, 99,111,110,116, 97,105,110,105,110,103, 32,101,105,116,104,101,114,
- 32,116,104,101, 32,119,111,114,100,115, 32, 34, 66,105,116,115,116,114,101, 97,109, 34, 32,111,114, 32,116,104,101, 32,119,111,
-114,100, 32, 34, 86,101,114, 97, 34, 46, 10, 10, 84,104,105,115, 32, 76,105, 99,101,110,115,101, 32, 98,101, 99,111,109,101,115,
- 32,110,117,108,108, 32, 97,110,100, 32,118,111,105,100, 32,116,111, 32,116,104,101, 32,101,120,116,101,110,116, 32, 97,112,112,
-108,105, 99, 97, 98,108,101, 32,116,111, 32, 70,111,110,116,115, 32,111,114, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,
-101, 32,116,104, 97,116, 32,104, 97,115, 32, 98,101,101,110, 32,109,111,100,105,102,105,101,100, 32, 97,110,100, 32,105,115, 32,
-100,105,115,116,114,105, 98,117,116,101,100, 32,117,110,100,101,114, 32,116,104,101, 32, 34, 66,105,116,115,116,114,101, 97,109,
- 32, 86,101,114, 97, 34, 32,110, 97,109,101,115, 46, 10, 10, 84,104,101, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101,
- 32,109, 97,121, 32, 98,101, 32,115,111,108,100, 32, 97,115, 32,112, 97,114,116, 32,111,102, 32, 97, 32,108, 97,114,103,101,114,
- 32,115,111,102,116,119, 97,114,101, 32,112, 97, 99,107, 97,103,101, 32, 98,117,116, 32,110,111, 32, 99,111,112,121, 32,111,102,
- 32,111,110,101, 32,111,114, 32,109,111,114,101, 32,111,102, 32,116,104,101, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,
-101, 32,116,121,112,101,102, 97, 99,101,115, 32,109, 97,121, 32, 98,101, 32,115,111,108,100, 32, 98,121, 32,105,116,115,101,108,
-102, 46, 10, 10, 84, 72, 69, 32, 70, 79, 78, 84, 32, 83, 79, 70, 84, 87, 65, 82, 69, 32, 73, 83, 32, 80, 82, 79, 86, 73, 68, 69,
- 68, 32, 34, 65, 83, 32, 73, 83, 34, 44, 32, 87, 73, 84, 72, 79, 85, 84, 32, 87, 65, 82, 82, 65, 78, 84, 89, 32, 79, 70, 32, 65,
- 78, 89, 32, 75, 73, 78, 68, 44, 32, 69, 88, 80, 82, 69, 83, 83, 32, 79, 82, 32, 73, 77, 80, 76, 73, 69, 68, 44, 32, 73, 78, 67,
- 76, 85, 68, 73, 78, 71, 32, 66, 85, 84, 32, 78, 79, 84, 32, 76, 73, 77, 73, 84, 69, 68, 32, 84, 79, 32, 65, 78, 89, 32, 87, 65,
- 82, 82, 65, 78, 84, 73, 69, 83, 32, 79, 70, 32, 77, 69, 82, 67, 72, 65, 78, 84, 65, 66, 73, 76, 73, 84, 89, 44, 32, 70, 73, 84,
- 78, 69, 83, 83, 32, 70, 79, 82, 32, 65, 32, 80, 65, 82, 84, 73, 67, 85, 76, 65, 82, 32, 80, 85, 82, 80, 79, 83, 69, 32, 65, 78,
- 68, 32, 78, 79, 78, 73, 78, 70, 82, 73, 78, 71, 69, 77, 69, 78, 84, 32, 79, 70, 32, 67, 79, 80, 89, 82, 73, 71, 72, 84, 44, 32,
- 80, 65, 84, 69, 78, 84, 44, 32, 84, 82, 65, 68, 69, 77, 65, 82, 75, 44, 32, 79, 82, 32, 79, 84, 72, 69, 82, 32, 82, 73, 71, 72,
- 84, 46, 32, 73, 78, 32, 78, 79, 32, 69, 86, 69, 78, 84, 32, 83, 72, 65, 76, 76, 32, 66, 73, 84, 83, 84, 82, 69, 65, 77, 32, 79,
- 82, 32, 84, 72, 69, 32, 71, 78, 79, 77, 69, 32, 70, 79, 85, 78, 68, 65, 84, 73, 79, 78, 32, 66, 69, 32, 76, 73, 65, 66, 76, 69,
- 32, 70, 79, 82, 32, 65, 78, 89, 32, 67, 76, 65, 73, 77, 44, 32, 68, 65, 77, 65, 71, 69, 83, 32, 79, 82, 32, 79, 84, 72, 69, 82,
- 32, 76, 73, 65, 66, 73, 76, 73, 84, 89, 44, 32, 73, 78, 67, 76, 85, 68, 73, 78, 71, 32, 65, 78, 89, 32, 71, 69, 78, 69, 82, 65,
- 76, 44, 32, 83, 80, 69, 67, 73, 65, 76, 44, 32, 73, 78, 68, 73, 82, 69, 67, 84, 44, 32, 73, 78, 67, 73, 68, 69, 78, 84, 65, 76,
- 44, 32, 79, 82, 32, 67, 79, 78, 83, 69, 81, 85, 69, 78, 84, 73, 65, 76, 32, 68, 65, 77, 65, 71, 69, 83, 44, 32, 87, 72, 69, 84,
- 72, 69, 82, 32, 73, 78, 32, 65, 78, 32, 65, 67, 84, 73, 79, 78, 32, 79, 70, 32, 67, 79, 78, 84, 82, 65, 67, 84, 44, 32, 84, 79,
- 82, 84, 32, 79, 82, 32, 79, 84, 72, 69, 82, 87, 73, 83, 69, 44, 32, 65, 82, 73, 83, 73, 78, 71, 32, 70, 82, 79, 77, 44, 32, 79,
- 85, 84, 32, 79, 70, 32, 84, 72, 69, 32, 85, 83, 69, 32, 79, 82, 32, 73, 78, 65, 66, 73, 76, 73, 84, 89, 32, 84, 79, 32, 85, 83,
- 69, 32, 84, 72, 69, 32, 70, 79, 78, 84, 32, 83, 79, 70, 84, 87, 65, 82, 69, 32, 79, 82, 32, 70, 82, 79, 77, 32, 79, 84, 72, 69,
- 82, 32, 68, 69, 65, 76, 73, 78, 71, 83, 32, 73, 78, 32, 84, 72, 69, 32, 70, 79, 78, 84, 32, 83, 79, 70, 84, 87, 65, 82, 69, 46,
- 10, 10, 69,120, 99,101,112,116, 32, 97,115, 32, 99,111,110,116, 97,105,110,101,100, 32,105,110, 32,116,104,105,115, 32,110,111,
-116,105, 99,101, 44, 32,116,104,101, 32,110, 97,109,101,115, 32,111,102, 32, 71,110,111,109,101, 44, 32,116,104,101, 32, 71,110,
-111,109,101, 32, 70,111,117,110,100, 97,116,105,111,110, 44, 32, 97,110,100, 32, 66,105,116,115,116,114,101, 97,109, 32, 73,110,
- 99, 46, 44, 32,115,104, 97,108,108, 32,110,111,116, 32, 98,101, 32,117,115,101,100, 32,105,110, 32, 97,100,118,101,114,116,105,
-115,105,110,103, 32,111,114, 32,111,116,104,101,114,119,105,115,101, 32,116,111, 32,112,114,111,109,111,116,101, 32,116,104,101,
- 32,115, 97,108,101, 44, 32,117,115,101, 32,111,114, 32,111,116,104,101,114, 32,100,101, 97,108,105,110,103,115, 32,105,110, 32,
-116,104,105,115, 32, 70,111,110,116, 32, 83,111,102,116,119, 97,114,101, 32,119,105,116,104,111,117,116, 32,112,114,105,111,114,
- 32,119,114,105,116,116,101,110, 32, 97,117,116,104,111,114,105,122, 97,116,105,111,110, 32,102,114,111,109, 32,116,104,101, 32,
- 71,110,111,109,101, 32, 70,111,117,110,100, 97,116,105,111,110, 32,111,114, 32, 66,105,116,115,116,114,101, 97,109, 32, 73,110,
- 99, 46, 44, 32,114,101,115,112,101, 99,116,105,118,101,108,121, 46, 32, 70,111,114, 32,102,117,114,116,104,101,114, 32,105,110,
-102,111,114,109, 97,116,105,111,110, 44, 32, 99,111,110,116, 97, 99,116, 58, 32,102,111,110,116,115, 32, 97,116, 32,103,110,111,
-109,101, 32,100,111,116, 32,111,114,103, 46, 32, 10, 0, 0,104, 0,116, 0,116, 0,112, 0, 58, 0, 47, 0, 47, 0,100, 0,101,
- 0,106, 0, 97, 0,118, 0,117, 0, 46, 0,115, 0,111, 0,117, 0,114, 0, 99, 0,101, 0,102, 0,111, 0,114, 0,103, 0,101,
- 0, 46, 0,110, 0,101, 0,116, 0, 47, 0,119, 0,105, 0,107, 0,105, 0, 47, 0,105, 0,110, 0,100, 0,101, 0,120, 0, 46,
- 0,112, 0,104, 0,112, 0, 47, 0, 76, 0,105, 0, 99, 0,101, 0,110, 0,115, 0,101, 0, 0,104,116,116,112, 58, 47, 47,100,
-101,106, 97,118,117, 46,115,111,117,114, 99,101,102,111,114,103,101, 46,110,101,116, 47,119,105,107,105, 47,105,110,100,101,120,
- 46,112,104,112, 47, 76,105, 99,101,110,115,101, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,255,126, 0, 90, 0, 0, 0, 1,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,210, 0, 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6,
- 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, 0, 22,
- 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 0, 32, 0, 33, 0, 34, 0, 35, 0, 36, 0, 37, 0, 38,
- 0, 39, 0, 40, 0, 41, 0, 42, 0, 43, 0, 44, 0, 45, 0, 46, 0, 47, 0, 48, 0, 49, 0, 50, 0, 51, 0, 52, 0, 53, 0, 54,
- 0, 55, 0, 56, 0, 57, 0, 58, 0, 59, 0, 60, 0, 61, 0, 62, 0, 63, 0, 64, 0, 65, 0, 66, 0, 67, 0, 68, 0, 69, 0, 70,
- 0, 71, 0, 72, 0, 73, 0, 74, 0, 75, 0, 76, 0, 77, 0, 78, 0, 79, 0, 80, 0, 81, 0, 82, 0, 83, 0, 84, 0, 85, 0, 86,
- 0, 87, 0, 88, 0, 89, 0, 90, 0, 91, 0, 92, 0, 93, 0, 94, 0, 95, 0, 96, 0, 97, 0,172, 0,163, 0,132, 0,133, 0,189,
- 0,150, 0,232, 0,134, 0,142, 0,139, 0,157, 0,169, 0,164, 1, 2, 0,138, 0,218, 0,131, 0,147, 0,242, 0,243, 0,141,
- 0,151, 0,136, 0,195, 0,222, 0,241, 0,158, 0,170, 0,245, 0,244, 0,246, 0,162, 0,173, 0,201, 0,199, 0,174, 0, 98,
- 0, 99, 0,144, 0,100, 0,203, 0,101, 0,200, 0,202, 0,207, 0,204, 0,205, 0,206, 0,233, 0,102, 0,211, 0,208, 0,209,
- 0,175, 0,103, 0,240, 0,145, 0,214, 0,212, 0,213, 0,104, 0,235, 0,237, 0,137, 0,106, 0,105, 0,107, 0,109, 0,108,
- 0,110, 0,160, 0,111, 0,113, 0,112, 0,114, 0,115, 0,117, 0,116, 0,118, 0,119, 0,234, 0,120, 0,122, 0,121, 0,123,
- 0,125, 0,124, 0,184, 0,161, 0,127, 0,126, 0,128, 0,129, 0,236, 0,238, 0,186, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7,
- 1, 8, 0,253, 0,254, 1, 9, 1, 10, 1, 11, 1, 12, 0,255, 1, 0, 1, 13, 1, 14, 1, 15, 1, 1, 1, 16, 1, 17, 1, 18,
- 1, 19, 1, 20, 1, 21, 1, 22, 1, 23, 1, 24, 1, 25, 1, 26, 1, 27, 0,248, 0,249, 1, 28, 1, 29, 1, 30, 1, 31, 1, 32,
- 1, 33, 1, 34, 1, 35, 1, 36, 1, 37, 1, 38, 1, 39, 1, 40, 1, 41, 1, 42, 1, 43, 0,250, 0,215, 1, 44, 1, 45, 1, 46,
- 1, 47, 1, 48, 1, 49, 1, 50, 1, 51, 1, 52, 1, 53, 1, 54, 1, 55, 1, 56, 1, 57, 1, 58, 0,226, 0,227, 1, 59, 1, 60,
- 1, 61, 1, 62, 1, 63, 1, 64, 1, 65, 1, 66, 1, 67, 1, 68, 1, 69, 1, 70, 1, 71, 1, 72, 1, 73, 0,176, 0,177, 1, 74,
- 1, 75, 1, 76, 1, 77, 1, 78, 1, 79, 1, 80, 1, 81, 1, 82, 1, 83, 0,251, 0,252, 0,228, 0,229, 1, 84, 1, 85, 1, 86,
- 1, 87, 1, 88, 1, 89, 1, 90, 1, 91, 1, 92, 1, 93, 1, 94, 1, 95, 1, 96, 1, 97, 1, 98, 1, 99, 1,100, 1,101, 1,102,
- 1,103, 1,104, 1,105, 0,187, 1,106, 1,107, 1,108, 1,109, 0,230, 0,231, 1,110, 1,111, 1,112, 1,113, 1,114, 1,115,
- 1,116, 1,117, 1,118, 1,119, 1,120, 1,121, 1,122, 1,123, 1,124, 1,125, 1,126, 1,127, 1,128, 0,166, 1,129, 1,130,
- 1,131, 1,132, 1,133, 1,134, 1,135, 1,136, 1,137, 1,138, 1,139, 1,140, 1,141, 1,142, 1,143, 1,144, 1,145, 1,146,
- 1,147, 1,148, 1,149, 1,150, 1,151, 1,152, 1,153, 1,154, 1,155, 1,156, 1,157, 1,158, 1,159, 1,160, 1,161, 1,162,
- 1,163, 1,164, 1,165, 1,166, 1,167, 1,168, 1,169, 1,170, 1,171, 1,172, 1,173, 1,174, 1,175, 1,176, 1,177, 1,178,
- 1,179, 1,180, 1,181, 1,182, 1,183, 1,184, 1,185, 1,186, 1,187, 1,188, 1,189, 1,190, 1,191, 1,192, 1,193, 1,194,
- 1,195, 1,196, 1,197, 1,198, 1,199, 1,200, 1,201, 1,202, 1,203, 1,204, 1,205, 1,206, 1,207, 1,208, 1,209, 1,210,
- 1,211, 1,212, 1,213, 1,214, 1,215, 1,216, 1,217, 1,218, 1,219, 1,220, 1,221, 1,222, 1,223, 1,224, 1,225, 1,226,
- 1,227, 1,228, 1,229, 1,230, 1,231, 1,232, 1,233, 1,234, 1,235, 1,236, 1,237, 1,238, 1,239, 1,240, 1,241, 1,242,
- 1,243, 1,244, 1,245, 1,246, 1,247, 1,248, 1,249, 1,250, 1,251, 1,252, 1,253, 1,254, 1,255, 2, 0, 2, 1, 2, 2,
- 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, 2, 8, 2, 9, 2, 10, 2, 11, 2, 12, 2, 13, 2, 14, 2, 15, 2, 16, 2, 17, 2, 18,
- 2, 19, 2, 20, 2, 21, 2, 22, 2, 23, 2, 24, 2, 25, 2, 26, 2, 27, 2, 28, 2, 29, 2, 30, 2, 31, 2, 32, 2, 33, 2, 34,
- 2, 35, 2, 36, 2, 37, 2, 38, 2, 39, 2, 40, 2, 41, 2, 42, 2, 43, 2, 44, 2, 45, 2, 46, 2, 47, 2, 48, 2, 49, 2, 50,
- 2, 51, 2, 52, 2, 53, 2, 54, 2, 55, 2, 56, 2, 57, 2, 58, 2, 59, 2, 60, 2, 61, 2, 62, 2, 63, 2, 64, 2, 65, 2, 66,
- 2, 67, 2, 68, 2, 69, 2, 70, 2, 71, 2, 72, 2, 73, 2, 74, 2, 75, 2, 76, 2, 77, 2, 78, 2, 79, 2, 80, 2, 81, 2, 82,
- 2, 83, 2, 84, 2, 85, 2, 86, 2, 87, 2, 88, 2, 89, 2, 90, 2, 91, 2, 92, 2, 93, 2, 94, 2, 95, 2, 96, 2, 97, 2, 98,
- 2, 99, 2,100, 2,101, 2,102, 2,103, 2,104, 2,105, 2,106, 2,107, 2,108, 2,109, 2,110, 2,111, 2,112, 2,113, 2,114,
- 2,115, 2,116, 2,117, 2,118, 2,119, 2,120, 2,121, 2,122, 2,123, 2,124, 2,125, 2,126, 2,127, 2,128, 2,129, 2,130,
- 2,131, 2,132, 2,133, 2,134, 2,135, 2,136, 2,137, 2,138, 0,216, 0,225, 2,139, 2,140, 2,141, 2,142, 2,143, 2,144,
- 2,145, 2,146, 2,147, 0,219, 0,220, 0,221, 0,224, 0,217, 0,223, 2,148, 2,149, 2,150, 2,151, 2,152, 2,153, 2,154,
- 2,155, 2,156, 2,157, 2,158, 2,159, 2,160, 2,161, 2,162, 2,163, 2,164, 2,165, 2,166, 2,167, 2,168, 2,169, 2,170,
- 2,171, 2,172, 2,173, 2,174, 2,175, 2,176, 2,177, 2,178, 2,179, 2,180, 2,181, 2,182, 2,183, 2,184, 2,185, 2,186,
- 2,187, 2,188, 2,189, 2,190, 2,191, 2,192, 2,193, 2,194, 2,195, 2,196, 2,197, 2,198, 2,199, 2,200, 2,201, 2,202,
- 2,203, 2,204, 2,205, 2,206, 2,207, 2,208, 2,209, 2,210, 2,211, 2,212, 2,213, 2,214, 2,215, 2,216, 2,217, 2,218,
- 2,219, 2,220, 2,221, 2,222, 2,223, 2,224, 2,225, 2,226, 2,227, 2,228, 2,229, 2,230, 2,231, 2,232, 2,233, 2,234,
- 2,235, 2,236, 2,237, 2,238, 2,239, 2,240, 2,241, 2,242, 2,243, 2,244, 2,245, 2,246, 2,247, 2,248, 2,249, 2,250,
- 2,251, 2,252, 2,253, 2,254, 2,255, 3, 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7, 3, 8, 0,159, 3, 9,
- 3, 10, 3, 11, 3, 12, 3, 13, 3, 14, 3, 15, 3, 16, 3, 17, 3, 18, 3, 19, 3, 20, 3, 21, 3, 22, 3, 23, 3, 24, 3, 25,
- 3, 26, 3, 27, 3, 28, 3, 29, 3, 30, 0,155, 3, 31, 3, 32, 3, 33, 3, 34, 3, 35, 3, 36, 3, 37, 3, 38, 3, 39, 3, 40,
- 3, 41, 3, 42, 3, 43, 3, 44, 3, 45, 3, 46, 3, 47, 3, 48, 3, 49, 3, 50, 3, 51, 3, 52, 3, 53, 3, 54, 3, 55, 3, 56,
- 3, 57, 3, 58, 3, 59, 3, 60, 3, 61, 3, 62, 3, 63, 3, 64, 3, 65, 3, 66, 3, 67, 3, 68, 3, 69, 3, 70, 3, 71, 3, 72,
- 3, 73, 3, 74, 3, 75, 3, 76, 3, 77, 3, 78, 3, 79, 3, 80, 3, 81, 3, 82, 3, 83, 3, 84, 3, 85, 3, 86, 3, 87, 3, 88,
- 3, 89, 3, 90, 3, 91, 3, 92, 3, 93, 3, 94, 3, 95, 3, 96, 3, 97, 3, 98, 3, 99, 3,100, 3,101, 3,102, 3,103, 3,104,
- 3,105, 3,106, 3,107, 3,108, 3,109, 3,110, 3,111, 3,112, 3,113, 3,114, 3,115, 3,116, 3,117, 3,118, 3,119, 3,120,
- 3,121, 3,122, 3,123, 3,124, 3,125, 3,126, 3,127, 3,128, 3,129, 3,130, 3,131, 3,132, 3,133, 3,134, 3,135, 3,136,
- 3,137, 3,138, 3,139, 3,140, 3,141, 3,142, 3,143, 3,144, 3,145, 3,146, 3,147, 3,148, 3,149, 3,150, 3,151, 3,152,
- 3,153, 3,154, 3,155, 3,156, 3,157, 3,158, 3,159, 3,160, 3,161, 3,162, 3,163, 3,164, 3,165, 3,166, 3,167, 3,168,
- 3,169, 3,170, 3,171, 3,172, 3,173, 3,174, 3,175, 3,176, 3,177, 3,178, 3,179, 3,180, 3,181, 3,182, 3,183, 3,184,
- 3,185, 3,186, 3,187, 3,188, 3,189, 3,190, 3,191, 3,192, 3,193, 3,194, 3,195, 3,196, 3,197, 3,198, 3,199, 3,200,
- 3,201, 3,202, 3,203, 3,204, 3,205, 3,206, 3,207, 3,208, 3,209, 3,210, 3,211, 3,212, 3,213, 3,214, 3,215, 3,216,
- 3,217, 3,218, 3,219, 3,220, 3,221, 3,222, 3,223, 3,224, 3,225, 3,226, 3,227, 3,228, 3,229, 3,230, 3,231, 3,232,
- 3,233, 3,234, 3,235, 3,236, 3,237, 3,238, 3,239, 3,240, 3,241, 3,242, 3,243, 3,244, 3,245, 3,246, 3,247, 3,248,
- 3,249, 3,250, 3,251, 3,252, 3,253, 3,254, 3,255, 4, 0, 4, 1, 4, 2, 4, 3, 4, 4, 4, 5, 4, 6, 4, 7, 4, 8,
- 4, 9, 4, 10, 4, 11, 4, 12, 4, 13, 4, 14, 4, 15, 4, 16, 4, 17, 4, 18, 4, 19, 4, 20, 4, 21, 4, 22, 4, 23, 4, 24,
- 4, 25, 4, 26, 4, 27, 4, 28, 4, 29, 4, 30, 4, 31, 4, 32, 4, 33, 4, 34, 4, 35, 4, 36, 4, 37, 4, 38, 4, 39, 4, 40,
- 4, 41, 4, 42, 4, 43, 4, 44, 4, 45, 4, 46, 4, 47, 4, 48, 4, 49, 4, 50, 4, 51, 4, 52, 4, 53, 4, 54, 4, 55, 4, 56,
- 4, 57, 4, 58, 4, 59, 4, 60, 4, 61, 4, 62, 4, 63, 4, 64, 4, 65, 4, 66, 4, 67, 4, 68, 4, 69, 4, 70, 4, 71, 4, 72,
- 4, 73, 4, 74, 4, 75, 4, 76, 4, 77, 4, 78, 4, 79, 4, 80, 4, 81, 4, 82, 4, 83, 4, 84, 4, 85, 4, 86, 4, 87, 4, 88,
- 4, 89, 4, 90, 4, 91, 4, 92, 4, 93, 4, 94, 4, 95, 4, 96, 4, 97, 4, 98, 4, 99, 4,100, 4,101, 4,102, 4,103, 4,104,
- 4,105, 4,106, 4,107, 4,108, 4,109, 4,110, 4,111, 4,112, 4,113, 4,114, 4,115, 4,116, 4,117, 4,118, 4,119, 4,120,
- 4,121, 4,122, 4,123, 4,124, 4,125, 4,126, 4,127, 4,128, 4,129, 4,130, 4,131, 4,132, 4,133, 4,134, 4,135, 4,136,
- 4,137, 4,138, 4,139, 4,140, 4,141, 4,142, 4,143, 4,144, 4,145, 4,146, 4,147, 4,148, 4,149, 4,150, 4,151, 4,152,
- 4,153, 4,154, 4,155, 4,156, 4,157, 4,158, 4,159, 4,160, 4,161, 4,162, 4,163, 4,164, 4,165, 4,166, 4,167, 4,168,
- 4,169, 4,170, 4,171, 4,172, 4,173, 4,174, 4,175, 4,176, 4,177, 4,178, 4,179, 4,180, 4,181, 4,182, 4,183, 4,184,
- 4,185, 4,186, 4,187, 4,188, 4,189, 4,190, 4,191, 4,192, 4,193, 4,194, 4,195, 4,196, 4,197, 4,198, 4,199, 4,200,
- 4,201, 4,202, 4,203, 4,204, 4,205, 4,206, 4,207, 4,208, 4,209, 4,210, 4,211, 4,212, 4,213, 4,214, 4,215, 4,216,
- 4,217, 4,218, 4,219, 4,220, 4,221, 4,222, 4,223, 4,224, 4,225, 4,226, 4,227, 4,228, 4,229, 4,230, 4,231, 4,232,
- 4,233, 4,234, 4,235, 4,236, 4,237, 4,238, 4,239, 4,240, 4,241, 4,242, 4,243, 4,244, 4,245, 4,246, 4,247, 4,248,
- 4,249, 4,250, 4,251, 4,252, 4,253, 4,254, 4,255, 5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6, 5, 7, 5, 8,
- 5, 9, 5, 10, 5, 11, 5, 12, 5, 13, 5, 14, 5, 15, 5, 16, 5, 17, 5, 18, 5, 19, 5, 20, 5, 21, 5, 22, 5, 23, 5, 24,
- 5, 25, 5, 26, 5, 27, 5, 28, 5, 29, 5, 30, 5, 31, 5, 32, 5, 33, 5, 34, 5, 35, 5, 36, 5, 37, 5, 38, 5, 39, 5, 40,
- 5, 41, 5, 42, 5, 43, 5, 44, 5, 45, 5, 46, 5, 47, 5, 48, 5, 49, 5, 50, 5, 51, 5, 52, 5, 53, 5, 54, 5, 55, 5, 56,
- 5, 57, 5, 58, 5, 59, 5, 60, 5, 61, 5, 62, 5, 63, 5, 64, 5, 65, 5, 66, 5, 67, 5, 68, 5, 69, 5, 70, 5, 71, 5, 72,
- 5, 73, 5, 74, 5, 75, 5, 76, 5, 77, 5, 78, 5, 79, 5, 80, 5, 81, 5, 82, 5, 83, 5, 84, 5, 85, 5, 86, 5, 87, 5, 88,
- 5, 89, 5, 90, 5, 91, 5, 92, 5, 93, 5, 94, 5, 95, 5, 96, 5, 97, 5, 98, 5, 99, 5,100, 5,101, 5,102, 5,103, 5,104,
- 5,105, 5,106, 5,107, 5,108, 5,109, 5,110, 5,111, 5,112, 5,113, 5,114, 5,115, 5,116, 5,117, 5,118, 5,119, 5,120,
- 5,121, 5,122, 5,123, 5,124, 5,125, 5,126, 5,127, 5,128, 5,129, 5,130, 5,131, 5,132, 5,133, 5,134, 5,135, 5,136,
- 5,137, 5,138, 5,139, 5,140, 5,141, 5,142, 5,143, 5,144, 5,145, 5,146, 5,147, 5,148, 5,149, 5,150, 5,151, 5,152,
- 5,153, 5,154, 5,155, 5,156, 5,157, 5,158, 5,159, 5,160, 5,161, 5,162, 5,163, 5,164, 5,165, 5,166, 5,167, 5,168,
- 5,169, 5,170, 5,171, 5,172, 5,173, 5,174, 5,175, 5,176, 5,177, 5,178, 5,179, 5,180, 5,181, 5,182, 5,183, 5,184,
- 5,185, 5,186, 5,187, 5,188, 5,189, 5,190, 5,191, 5,192, 5,193, 5,194, 5,195, 5,196, 5,197, 5,198, 5,199, 5,200,
- 5,201, 5,202, 5,203, 5,204, 5,205, 5,206, 5,207, 5,208, 5,209, 5,210, 5,211, 5,212, 5,213, 5,214, 5,215, 5,216,
- 5,217, 5,218, 5,219, 5,220, 5,221, 5,222, 5,223, 5,224, 5,225, 5,226, 5,227, 5,228, 5,229, 5,230, 5,231, 5,232,
- 5,233, 5,234, 5,235, 5,236, 5,237, 5,238, 5,239, 5,240, 5,241, 5,242, 5,243, 5,244, 5,245, 5,246, 5,247, 5,248,
- 5,249, 5,250, 5,251, 5,252, 5,253, 5,254, 5,255, 6, 0, 6, 1, 6, 2, 6, 3, 6, 4, 6, 5, 6, 6, 6, 7, 6, 8,
- 6, 9, 6, 10, 6, 11, 6, 12, 6, 13, 6, 14, 6, 15, 6, 16, 6, 17, 6, 18, 6, 19, 6, 20, 6, 21, 6, 22, 6, 23, 6, 24,
- 6, 25, 6, 26, 6, 27, 6, 28, 6, 29, 6, 30, 6, 31, 6, 32, 6, 33, 6, 34, 6, 35, 6, 36, 6, 37, 6, 38, 6, 39, 6, 40,
- 6, 41, 6, 42, 6, 43, 6, 44, 6, 45, 6, 46, 6, 47, 6, 48, 6, 49, 6, 50, 6, 51, 6, 52, 6, 53, 6, 54, 6, 55, 6, 56,
- 6, 57, 6, 58, 6, 59, 6, 60, 6, 61, 6, 62, 6, 63, 6, 64, 6, 65, 6, 66, 6, 67, 6, 68, 6, 69, 6, 70, 6, 71, 6, 72,
- 6, 73, 6, 74, 6, 75, 6, 76, 6, 77, 6, 78, 6, 79, 6, 80, 6, 81, 6, 82, 6, 83, 6, 84, 6, 85, 6, 86, 6, 87, 6, 88,
- 6, 89, 6, 90, 6, 91, 6, 92, 6, 93, 6, 94, 6, 95, 6, 96, 6, 97, 6, 98, 6, 99, 6,100, 6,101, 6,102, 6,103, 6,104,
- 6,105, 6,106, 6,107, 6,108, 6,109, 6,110, 6,111, 6,112, 6,113, 6,114, 6,115, 6,116, 6,117, 6,118, 6,119, 6,120,
- 6,121, 6,122, 6,123, 6,124, 6,125, 6,126, 6,127, 6,128, 6,129, 6,130, 6,131, 6,132, 6,133, 6,134, 6,135, 6,136,
- 6,137, 6,138, 6,139, 6,140, 6,141, 6,142, 6,143, 6,144, 6,145, 6,146, 6,147, 6,148, 6,149, 6,150, 6,151, 6,152,
- 6,153, 6,154, 6,155, 6,156, 6,157, 6,158, 6,159, 6,160, 6,161, 6,162, 6,163, 6,164, 6,165, 6,166, 6,167, 6,168,
- 6,169, 6,170, 0,178, 0,179, 6,171, 6,172, 0,182, 0,183, 0,196, 6,173, 0,180, 0,181, 0,197, 6,174, 0,130, 0,194,
- 0,135, 6,175, 0,171, 6,176, 0,198, 6,177, 0,190, 0,191, 6,178, 6,179, 6,180, 6,181, 6,182, 6,183, 6,184, 6,185,
- 6,186, 6,187, 6,188, 6,189, 6,190, 6,191, 6,192, 6,193, 6,194, 6,195, 6,196, 6,197, 6,198, 6,199, 6,200, 6,201,
- 6,202, 6,203, 6,204, 6,205, 6,206, 6,207, 6,208, 6,209, 6,210, 6,211, 6,212, 6,213, 6,214, 6,215, 6,216, 6,217,
- 6,218, 6,219, 6,220, 6,221, 6,222, 6,223, 6,224, 6,225, 6,226, 6,227, 6,228, 0,140, 6,229, 6,230, 6,231, 6,232,
- 6,233, 6,234, 6,235, 6,236, 6,237, 6,238, 6,239, 6,240, 6,241, 6,242, 6,243, 6,244, 6,245, 6,246, 6,247, 6,248,
- 6,249, 6,250, 6,251, 6,252, 6,253, 6,254, 6,255, 7, 0, 7, 1, 7, 2, 7, 3, 7, 4, 7, 5, 7, 6, 7, 7, 7, 8,
- 7, 9, 7, 10, 7, 11, 7, 12, 7, 13, 7, 14, 7, 15, 7, 16, 7, 17, 7, 18, 7, 19, 7, 20, 7, 21, 7, 22, 7, 23, 7, 24,
- 7, 25, 7, 26, 7, 27, 7, 28, 7, 29, 7, 30, 7, 31, 7, 32, 7, 33, 7, 34, 7, 35, 7, 36, 7, 37, 7, 38, 7, 39, 7, 40,
- 7, 41, 7, 42, 7, 43, 7, 44, 7, 45, 7, 46, 7, 47, 7, 48, 7, 49, 7, 50, 7, 51, 7, 52, 7, 53, 7, 54, 7, 55, 7, 56,
- 7, 57, 7, 58, 7, 59, 7, 60, 7, 61, 7, 62, 7, 63, 7, 64, 7, 65, 7, 66, 7, 67, 7, 68, 7, 69, 7, 70, 7, 71, 7, 72,
- 7, 73, 7, 74, 7, 75, 7, 76, 7, 77, 7, 78, 7, 79, 7, 80, 7, 81, 7, 82, 7, 83, 7, 84, 7, 85, 7, 86, 7, 87, 7, 88,
- 7, 89, 7, 90, 7, 91, 7, 92, 7, 93, 7, 94, 7, 95, 7, 96, 7, 97, 7, 98, 7, 99, 7,100, 0,152, 7,101, 0,168, 7,102,
- 7,103, 7,104, 7,105, 7,106, 7,107, 7,108, 0,154, 0,153, 0,239, 7,109, 7,110, 7,111, 7,112, 7,113, 0,165, 7,114,
- 0,146, 7,115, 7,116, 7,117, 7,118, 7,119, 7,120, 0,156, 7,121, 7,122, 7,123, 7,124, 7,125, 7,126, 7,127, 7,128,
- 7,129, 7,130, 7,131, 7,132, 7,133, 7,134, 7,135, 0,167, 7,136, 7,137, 7,138, 7,139, 7,140, 7,141, 7,142, 7,143,
- 7,144, 7,145, 7,146, 7,147, 7,148, 7,149, 7,150, 7,151, 7,152, 7,153, 7,154, 7,155, 7,156, 7,157, 7,158, 0,143,
- 7,159, 7,160, 7,161, 0,148, 0,149, 7,162, 7,163, 7,164, 7,165, 7,166, 7,167, 7,168, 7,169, 7,170, 7,171, 7,172,
- 7,173, 7,174, 7,175, 7,176, 7,177, 7,178, 7,179, 7,180, 7,181, 7,182, 7,183, 7,184, 7,185, 7,186, 7,187, 7,188,
- 7,189, 7,190, 7,191, 7,192, 7,193, 7,194, 7,195, 7,196, 7,197, 7,198, 7,199, 7,200, 7,201, 7,202, 7,203, 7,204,
- 7,205, 7,206, 7,207, 7,208, 7,209, 7,210, 7,211, 7,212, 7,213, 7,214, 7,215, 7,216, 7,217, 7,218, 7,219, 7,220,
- 7,221, 7,222, 7,223, 7,224, 7,225, 7,226, 7,227, 7,228, 7,229, 7,230, 7,231, 7,232, 7,233, 7,234, 7,235, 7,236,
- 7,237, 7,238, 7,239, 7,240, 7,241, 7,242, 7,243, 7,244, 7,245, 7,246, 7,247, 7,248, 7,249, 7,250, 7,251, 7,252,
- 7,253, 7,254, 7,255, 8, 0, 8, 1, 8, 2, 8, 3, 8, 4, 8, 5, 8, 6, 8, 7, 8, 8, 8, 9, 8, 10, 8, 11, 8, 12,
- 8, 13, 8, 14, 8, 15, 8, 16, 8, 17, 8, 18, 8, 19, 8, 20, 8, 21, 8, 22, 8, 23, 8, 24, 8, 25, 8, 26, 8, 27, 8, 28,
- 8, 29, 8, 30, 8, 31, 8, 32, 8, 33, 8, 34, 8, 35, 8, 36, 8, 37, 8, 38, 8, 39, 8, 40, 8, 41, 8, 42, 8, 43, 8, 44,
- 8, 45, 8, 46, 8, 47, 8, 48, 8, 49, 8, 50, 8, 51, 8, 52, 8, 53, 8, 54, 8, 55, 8, 56, 8, 57, 8, 58, 8, 59, 8, 60,
- 8, 61, 8, 62, 8, 63, 8, 64, 8, 65, 8, 66, 8, 67, 8, 68, 8, 69, 8, 70, 8, 71, 8, 72, 8, 73, 8, 74, 8, 75, 8, 76,
- 8, 77, 8, 78, 8, 79, 8, 80, 8, 81, 8, 82, 8, 83, 8, 84, 8, 85, 8, 86, 8, 87, 8, 88, 8, 89, 8, 90, 8, 91, 8, 92,
- 8, 93, 8, 94, 8, 95, 8, 96, 8, 97, 8, 98, 8, 99, 8,100, 8,101, 8,102, 8,103, 8,104, 8,105, 8,106, 8,107, 8,108,
- 8,109, 8,110, 8,111, 8,112, 8,113, 8,114, 8,115, 8,116, 8,117, 8,118, 8,119, 8,120, 8,121, 8,122, 8,123, 8,124,
- 8,125, 8,126, 8,127, 8,128, 8,129, 8,130, 8,131, 8,132, 8,133, 8,134, 8,135, 8,136, 8,137, 8,138, 8,139, 8,140,
- 8,141, 8,142, 8,143, 8,144, 8,145, 8,146, 8,147, 8,148, 8,149, 8,150, 8,151, 8,152, 8,153, 8,154, 8,155, 8,156,
- 8,157, 8,158, 8,159, 8,160, 8,161, 8,162, 8,163, 8,164, 8,165, 8,166, 8,167, 8,168, 8,169, 8,170, 8,171, 8,172,
- 8,173, 8,174, 8,175, 8,176, 8,177, 8,178, 8,179, 8,180, 8,181, 8,182, 8,183, 8,184, 8,185, 8,186, 8,187, 8,188,
- 8,189, 8,190, 8,191, 8,192, 8,193, 8,194, 8,195, 8,196, 8,197, 8,198, 8,199, 8,200, 8,201, 8,202, 8,203, 8,204,
- 8,205, 8,206, 8,207, 8,208, 8,209, 8,210, 8,211, 8,212, 8,213, 8,214, 8,215, 8,216, 8,217, 8,218, 8,219, 8,220,
- 8,221, 8,222, 8,223, 8,224, 8,225, 8,226, 8,227, 8,228, 8,229, 8,230, 8,231, 8,232, 8,233, 8,234, 8,235, 8,236,
- 8,237, 8,238, 8,239, 8,240, 8,241, 8,242, 8,243, 8,244, 8,245, 8,246, 8,247, 8,248, 8,249, 8,250, 8,251, 8,252,
- 8,253, 8,254, 8,255, 9, 0, 9, 1, 9, 2, 9, 3, 9, 4, 9, 5, 9, 6, 9, 7, 9, 8, 9, 9, 9, 10, 9, 11, 9, 12,
- 9, 13, 9, 14, 9, 15, 9, 16, 9, 17, 9, 18, 9, 19, 9, 20, 9, 21, 9, 22, 9, 23, 9, 24, 9, 25, 9, 26, 9, 27, 9, 28,
- 9, 29, 9, 30, 9, 31, 9, 32, 9, 33, 9, 34, 9, 35, 9, 36, 9, 37, 9, 38, 9, 39, 9, 40, 9, 41, 0,185, 9, 42, 9, 43,
- 9, 44, 9, 45, 9, 46, 9, 47, 9, 48, 9, 49, 9, 50, 9, 51, 9, 52, 9, 53, 9, 54, 9, 55, 9, 56, 9, 57, 9, 58, 9, 59,
- 9, 60, 9, 61, 9, 62, 9, 63, 9, 64, 9, 65, 9, 66, 9, 67, 9, 68, 9, 69, 9, 70, 9, 71, 9, 72, 9, 73, 9, 74, 9, 75,
- 9, 76, 9, 77, 9, 78, 9, 79, 9, 80, 9, 81, 9, 82, 9, 83, 9, 84, 9, 85, 9, 86, 9, 87, 9, 88, 9, 89, 9, 90, 9, 91,
- 9, 92, 9, 93, 9, 94, 9, 95, 9, 96, 9, 97, 9, 98, 9, 99, 9,100, 9,101, 9,102, 9,103, 9,104, 9,105, 9,106, 9,107,
- 9,108, 9,109, 9,110, 9,111, 9,112, 9,113, 9,114, 9,115, 9,116, 9,117, 9,118, 9,119, 9,120, 9,121, 9,122, 9,123,
- 9,124, 9,125, 9,126, 9,127, 9,128, 9,129, 9,130, 9,131, 9,132, 9,133, 9,134, 9,135, 9,136, 9,137, 9,138, 9,139,
- 9,140, 9,141, 9,142, 9,143, 9,144, 9,145, 9,146, 9,147, 9,148, 9,149, 9,150, 9,151, 9,152, 9,153, 9,154, 9,155,
- 9,156, 9,157, 9,158, 9,159, 9,160, 9,161, 9,162, 9,163, 9,164, 9,165, 9,166, 9,167, 9,168, 9,169, 9,170, 9,171,
- 9,172, 9,173, 9,174, 9,175, 9,176, 9,177, 9,178, 9,179, 9,180, 9,181, 9,182, 9,183, 9,184, 9,185, 9,186, 9,187,
- 9,188, 9,189, 9,190, 9,191, 9,192, 9,193, 9,194, 9,195, 9,196, 9,197, 9,198, 9,199, 9,200, 9,201, 9,202, 9,203,
- 9,204, 9,205, 9,206, 9,207, 9,208, 9,209, 9,210, 9,211, 9,212, 9,213, 9,214, 9,215, 9,216, 9,217, 9,218, 9,219,
- 9,220, 9,221, 9,222, 9,223, 9,224, 9,225, 9,226, 9,227, 9,228, 9,229, 9,230, 9,231, 9,232, 9,233, 9,234, 9,235,
- 9,236, 9,237, 9,238, 9,239, 9,240, 9,241, 9,242, 9,243, 9,244, 9,245, 9,246, 9,247, 9,248, 9,249, 9,250, 9,251,
- 9,252, 9,253, 9,254, 9,255, 10, 0, 10, 1, 10, 2, 10, 3, 10, 4, 10, 5, 10, 6, 10, 7, 10, 8, 10, 9, 10, 10, 10, 11,
- 10, 12, 10, 13, 10, 14, 10, 15, 10, 16, 10, 17, 10, 18, 10, 19, 10, 20, 10, 21, 10, 22, 10, 23, 10, 24, 10, 25, 10, 26, 10, 27,
- 10, 28, 10, 29, 10, 30, 10, 31, 10, 32, 10, 33, 10, 34, 10, 35, 10, 36, 10, 37, 10, 38, 10, 39, 10, 40, 10, 41, 10, 42, 10, 43,
- 10, 44, 10, 45, 10, 46, 10, 47, 10, 48, 10, 49, 10, 50, 10, 51, 10, 52, 10, 53, 10, 54, 10, 55, 10, 56, 10, 57, 10, 58, 10, 59,
- 10, 60, 10, 61, 10, 62, 10, 63, 10, 64, 10, 65, 10, 66, 10, 67, 10, 68, 10, 69, 10, 70, 10, 71, 10, 72, 10, 73, 10, 74, 10, 75,
- 10, 76, 10, 77, 10, 78, 10, 79, 10, 80, 10, 81, 10, 82, 10, 83, 10, 84, 10, 85, 10, 86, 10, 87, 10, 88, 10, 89, 10, 90, 10, 91,
- 10, 92, 10, 93, 10, 94, 10, 95, 10, 96, 10, 97, 10, 98, 10, 99, 10,100, 10,101, 10,102, 10,103, 10,104, 10,105, 10,106, 10,107,
- 10,108, 10,109, 10,110, 10,111, 10,112, 10,113, 10,114, 10,115, 10,116, 10,117, 10,118, 10,119, 10,120, 10,121, 10,122, 10,123,
- 10,124, 10,125, 10,126, 10,127, 10,128, 10,129, 10,130, 10,131, 10,132, 10,133, 10,134, 10,135, 10,136, 10,137, 10,138, 10,139,
- 10,140, 10,141, 10,142, 10,143, 10,144, 10,145, 10,146, 10,147, 10,148, 10,149, 10,150, 10,151, 10,152, 10,153, 0,192, 0,193,
- 10,154, 10,155, 10,156, 10,157, 10,158, 10,159, 10,160, 10,161, 10,162, 10,163, 10,164, 10,165, 10,166, 10,167, 10,168, 10,169,
- 10,170, 10,171, 10,172, 10,173, 10,174, 10,175, 10,176, 10,177, 10,178, 10,179, 10,180, 10,181, 10,182, 10,183, 10,184, 10,185,
- 10,186, 10,187, 10,188, 10,189, 10,190, 10,191, 10,192, 10,193, 10,194, 10,195, 10,196, 10,197, 10,198, 10,199, 10,200, 10,201,
- 10,202, 10,203, 10,204, 10,205, 10,206, 10,207, 10,208, 10,209, 10,210, 10,211, 10,212, 10,213, 10,214, 10,215, 10,216, 10,217,
- 10,218, 10,219, 10,220, 10,221, 10,222, 10,223, 10,224, 10,225, 10,226, 10,227, 10,228, 10,229, 10,230, 10,231, 10,232, 10,233,
- 10,234, 10,235, 10,236, 10,237, 10,238, 10,239, 10,240, 10,241, 10,242, 10,243, 10,244, 10,245, 10,246, 10,247, 10,248, 10,249,
- 10,250, 10,251, 10,252, 10,253, 10,254, 10,255, 11, 0, 11, 1, 11, 2, 11, 3, 11, 4, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9,
- 11, 10, 11, 11, 11, 12, 11, 13, 11, 14, 11, 15, 11, 16, 11, 17, 11, 18, 11, 19, 11, 20, 11, 21, 11, 22, 11, 23, 11, 24, 11, 25,
- 11, 26, 11, 27, 11, 28, 11, 29, 11, 30, 11, 31, 11, 32, 11, 33, 11, 34, 11, 35, 11, 36, 11, 37, 11, 38, 11, 39, 11, 40, 11, 41,
- 11, 42, 11, 43, 11, 44, 11, 45, 11, 46, 11, 47, 11, 48, 11, 49, 11, 50, 11, 51, 11, 52, 11, 53, 11, 54, 11, 55, 11, 56, 11, 57,
- 11, 58, 11, 59, 11, 60, 11, 61, 11, 62, 11, 63, 11, 64, 11, 65, 11, 66, 11, 67, 11, 68, 11, 69, 11, 70, 11, 71, 11, 72, 11, 73,
- 11, 74, 11, 75, 11, 76, 11, 77, 11, 78, 11, 79, 11, 80, 11, 81, 11, 82, 11, 83, 11, 84, 11, 85, 11, 86, 11, 87, 11, 88, 11, 89,
- 11, 90, 11, 91, 11, 92, 11, 93, 11, 94, 11, 95, 11, 96, 11, 97, 11, 98, 11, 99, 11,100, 11,101, 11,102, 11,103, 11,104, 11,105,
- 11,106, 11,107, 11,108, 11,109, 11,110, 11,111, 11,112, 11,113, 11,114, 11,115, 11,116, 11,117, 11,118, 11,119, 11,120, 11,121,
- 11,122, 11,123, 11,124, 11,125, 11,126, 11,127, 11,128, 11,129, 11,130, 11,131, 11,132, 11,133, 11,134, 11,135, 11,136, 11,137,
- 11,138, 11,139, 11,140, 11,141, 11,142, 11,143, 11,144, 11,145, 11,146, 11,147, 11,148, 11,149, 11,150, 11,151, 11,152, 11,153,
- 11,154, 11,155, 11,156, 11,157, 11,158, 11,159, 11,160, 11,161, 11,162, 11,163, 11,164, 11,165, 11,166, 11,167, 11,168, 11,169,
- 11,170, 11,171, 11,172, 11,173, 11,174, 11,175, 11,176, 11,177, 11,178, 11,179, 11,180, 11,181, 11,182, 11,183, 11,184, 11,185,
- 11,186, 11,187, 11,188, 11,189, 11,190, 11,191, 11,192, 11,193, 11,194, 11,195, 11,196, 11,197, 11,198, 11,199, 11,200, 11,201,
- 11,202, 11,203, 11,204, 11,205, 11,206, 11,207, 11,208, 11,209, 11,210, 11,211, 11,212, 9,115,102,116,104,121,112,104,101,110,
- 7, 65,109, 97, 99,114,111,110, 7, 97,109, 97, 99,114,111,110, 6, 65, 98,114,101,118,101, 6, 97, 98,114,101,118,101, 7, 65,
-111,103,111,110,101,107, 7, 97,111,103,111,110,101,107, 11, 67, 99,105,114, 99,117,109,102,108,101,120, 11, 99, 99,105,114, 99,
-117,109,102,108,101,120, 10, 67,100,111,116, 97, 99, 99,101,110,116, 10, 99,100,111,116, 97, 99, 99,101,110,116, 6, 68, 99, 97,
-114,111,110, 6,100, 99, 97,114,111,110, 6, 68, 99,114,111, 97,116, 7, 69,109, 97, 99,114,111,110, 7,101,109, 97, 99,114,111,
-110, 6, 69, 98,114,101,118,101, 6,101, 98,114,101,118,101, 10, 69,100,111,116, 97, 99, 99,101,110,116, 10,101,100,111,116, 97,
- 99, 99,101,110,116, 7, 69,111,103,111,110,101,107, 7,101,111,103,111,110,101,107, 6, 69, 99, 97,114,111,110, 6,101, 99, 97,
-114,111,110, 11, 71, 99,105,114, 99,117,109,102,108,101,120, 11,103, 99,105,114, 99,117,109,102,108,101,120, 10, 71,100,111,116,
- 97, 99, 99,101,110,116, 10,103,100,111,116, 97, 99, 99,101,110,116, 12, 71, 99,111,109,109, 97, 97, 99, 99,101,110,116, 12,103,
- 99,111,109,109, 97, 97, 99, 99,101,110,116, 11, 72, 99,105,114, 99,117,109,102,108,101,120, 11,104, 99,105,114, 99,117,109,102,
-108,101,120, 4, 72, 98, 97,114, 4,104, 98, 97,114, 6, 73,116,105,108,100,101, 6,105,116,105,108,100,101, 7, 73,109, 97, 99,
-114,111,110, 7,105,109, 97, 99,114,111,110, 6, 73, 98,114,101,118,101, 6,105, 98,114,101,118,101, 7, 73,111,103,111,110,101,
-107, 7,105,111,103,111,110,101,107, 2, 73, 74, 2,105,106, 11, 74, 99,105,114, 99,117,109,102,108,101,120, 11,106, 99,105,114,
- 99,117,109,102,108,101,120, 12, 75, 99,111,109,109, 97, 97, 99, 99,101,110,116, 12,107, 99,111,109,109, 97, 97, 99, 99,101,110,
-116, 12,107,103,114,101,101,110,108, 97,110,100,105, 99, 6, 76, 97, 99,117,116,101, 6,108, 97, 99,117,116,101, 12, 76, 99,111,
-109,109, 97, 97, 99, 99,101,110,116, 12,108, 99,111,109,109, 97, 97, 99, 99,101,110,116, 6, 76, 99, 97,114,111,110, 6,108, 99,
- 97,114,111,110, 4, 76,100,111,116, 4,108,100,111,116, 6, 78, 97, 99,117,116,101, 6,110, 97, 99,117,116,101, 12, 78, 99,111,
-109,109, 97, 97, 99, 99,101,110,116, 12,110, 99,111,109,109, 97, 97, 99, 99,101,110,116, 6, 78, 99, 97,114,111,110, 6,110, 99,
- 97,114,111,110, 11,110, 97,112,111,115,116,114,111,112,104,101, 3, 69,110,103, 3,101,110,103, 7, 79,109, 97, 99,114,111,110,
- 7,111,109, 97, 99,114,111,110, 6, 79, 98,114,101,118,101, 6,111, 98,114,101,118,101, 13, 79,104,117,110,103, 97,114,117,109,
-108, 97,117,116, 13,111,104,117,110,103, 97,114,117,109,108, 97,117,116, 6, 82, 97, 99,117,116,101, 6,114, 97, 99,117,116,101,
- 12, 82, 99,111,109,109, 97, 97, 99, 99,101,110,116, 12,114, 99,111,109,109, 97, 97, 99, 99,101,110,116, 6, 82, 99, 97,114,111,
-110, 6,114, 99, 97,114,111,110, 6, 83, 97, 99,117,116,101, 6,115, 97, 99,117,116,101, 11, 83, 99,105,114, 99,117,109,102,108,
-101,120, 11,115, 99,105,114, 99,117,109,102,108,101,120, 12, 84, 99,111,109,109, 97, 97, 99, 99,101,110,116, 12,116, 99,111,109,
-109, 97, 97, 99, 99,101,110,116, 6, 84, 99, 97,114,111,110, 6,116, 99, 97,114,111,110, 4, 84, 98, 97,114, 4,116, 98, 97,114,
- 6, 85,116,105,108,100,101, 6,117,116,105,108,100,101, 7, 85,109, 97, 99,114,111,110, 7,117,109, 97, 99,114,111,110, 6, 85,
- 98,114,101,118,101, 6,117, 98,114,101,118,101, 5, 85,114,105,110,103, 5,117,114,105,110,103, 13, 85,104,117,110,103, 97,114,
-117,109,108, 97,117,116, 13,117,104,117,110,103, 97,114,117,109,108, 97,117,116, 7, 85,111,103,111,110,101,107, 7,117,111,103,
-111,110,101,107, 11, 87, 99,105,114, 99,117,109,102,108,101,120, 11,119, 99,105,114, 99,117,109,102,108,101,120, 11, 89, 99,105,
-114, 99,117,109,102,108,101,120, 11,121, 99,105,114, 99,117,109,102,108,101,120, 6, 90, 97, 99,117,116,101, 6,122, 97, 99,117,
-116,101, 10, 90,100,111,116, 97, 99, 99,101,110,116, 10,122,100,111,116, 97, 99, 99,101,110,116, 5,108,111,110,103,115, 7,117,
-110,105, 48, 49, 56, 48, 7,117,110,105, 48, 49, 56, 49, 7,117,110,105, 48, 49, 56, 50, 7,117,110,105, 48, 49, 56, 51, 7,117,
-110,105, 48, 49, 56, 52, 7,117,110,105, 48, 49, 56, 53, 7,117,110,105, 48, 49, 56, 54, 7,117,110,105, 48, 49, 56, 55, 7,117,
-110,105, 48, 49, 56, 56, 7,117,110,105, 48, 49, 56, 57, 7,117,110,105, 48, 49, 56, 65, 7,117,110,105, 48, 49, 56, 66, 7,117,
-110,105, 48, 49, 56, 67, 7,117,110,105, 48, 49, 56, 68, 7,117,110,105, 48, 49, 56, 69, 7,117,110,105, 48, 49, 56, 70, 7,117,
-110,105, 48, 49, 57, 48, 7,117,110,105, 48, 49, 57, 49, 7,117,110,105, 48, 49, 57, 51, 7,117,110,105, 48, 49, 57, 52, 7,117,
-110,105, 48, 49, 57, 53, 7,117,110,105, 48, 49, 57, 54, 7,117,110,105, 48, 49, 57, 55, 7,117,110,105, 48, 49, 57, 56, 7,117,
-110,105, 48, 49, 57, 57, 7,117,110,105, 48, 49, 57, 65, 7,117,110,105, 48, 49, 57, 66, 7,117,110,105, 48, 49, 57, 67, 7,117,
-110,105, 48, 49, 57, 68, 7,117,110,105, 48, 49, 57, 69, 7,117,110,105, 48, 49, 57, 70, 5, 79,104,111,114,110, 5,111,104,111,
-114,110, 7,117,110,105, 48, 49, 65, 50, 7,117,110,105, 48, 49, 65, 51, 7,117,110,105, 48, 49, 65, 52, 7,117,110,105, 48, 49,
- 65, 53, 7,117,110,105, 48, 49, 65, 54, 7,117,110,105, 48, 49, 65, 55, 7,117,110,105, 48, 49, 65, 56, 7,117,110,105, 48, 49,
- 65, 57, 7,117,110,105, 48, 49, 65, 65, 7,117,110,105, 48, 49, 65, 66, 7,117,110,105, 48, 49, 65, 67, 7,117,110,105, 48, 49,
- 65, 68, 7,117,110,105, 48, 49, 65, 69, 5, 85,104,111,114,110, 5,117,104,111,114,110, 7,117,110,105, 48, 49, 66, 49, 7,117,
-110,105, 48, 49, 66, 50, 7,117,110,105, 48, 49, 66, 51, 7,117,110,105, 48, 49, 66, 52, 7,117,110,105, 48, 49, 66, 53, 7,117,
-110,105, 48, 49, 66, 54, 7,117,110,105, 48, 49, 66, 55, 7,117,110,105, 48, 49, 66, 56, 7,117,110,105, 48, 49, 66, 57, 7,117,
-110,105, 48, 49, 66, 66, 7,117,110,105, 48, 49, 66, 67, 7,117,110,105, 48, 49, 66, 68, 7,117,110,105, 48, 49, 66, 69, 7,117,
-110,105, 48, 49, 67, 48, 7,117,110,105, 48, 49, 67, 49, 7,117,110,105, 48, 49, 67, 50, 7,117,110,105, 48, 49, 67, 51, 7,117,
-110,105, 48, 49, 67, 68, 7,117,110,105, 48, 49, 67, 69, 7,117,110,105, 48, 49, 67, 70, 7,117,110,105, 48, 49, 68, 48, 7,117,
-110,105, 48, 49, 68, 49, 7,117,110,105, 48, 49, 68, 50, 7,117,110,105, 48, 49, 68, 51, 7,117,110,105, 48, 49, 68, 52, 7,117,
-110,105, 48, 49, 68, 53, 7,117,110,105, 48, 49, 68, 54, 7,117,110,105, 48, 49, 68, 55, 7,117,110,105, 48, 49, 68, 56, 7,117,
-110,105, 48, 49, 68, 57, 7,117,110,105, 48, 49, 68, 65, 7,117,110,105, 48, 49, 68, 66, 7,117,110,105, 48, 49, 68, 67, 7,117,
-110,105, 48, 49, 68, 68, 7,117,110,105, 48, 49, 68, 69, 7,117,110,105, 48, 49, 68, 70, 7,117,110,105, 48, 49, 69, 48, 7,117,
-110,105, 48, 49, 69, 49, 7,117,110,105, 48, 49, 69, 50, 7,117,110,105, 48, 49, 69, 51, 6, 71, 99, 97,114,111,110, 6,103, 99,
- 97,114,111,110, 7,117,110,105, 48, 49, 69, 56, 7,117,110,105, 48, 49, 69, 57, 7,117,110,105, 48, 49, 69, 65, 7,117,110,105,
- 48, 49, 69, 66, 7,117,110,105, 48, 49, 69, 67, 7,117,110,105, 48, 49, 69, 68, 7,117,110,105, 48, 49, 69, 69, 7,117,110,105,
- 48, 49, 69, 70, 7,117,110,105, 48, 49, 70, 48, 7,117,110,105, 48, 49, 70, 52, 7,117,110,105, 48, 49, 70, 53, 7,117,110,105,
- 48, 49, 70, 54, 7,117,110,105, 48, 49, 70, 56, 7,117,110,105, 48, 49, 70, 57, 7, 65, 69, 97, 99,117,116,101, 7, 97,101, 97,
- 99,117,116,101, 11, 79,115,108, 97,115,104, 97, 99,117,116,101, 11,111,115,108, 97,115,104, 97, 99,117,116,101, 7,117,110,105,
- 48, 50, 48, 48, 7,117,110,105, 48, 50, 48, 49, 7,117,110,105, 48, 50, 48, 50, 7,117,110,105, 48, 50, 48, 51, 7,117,110,105,
- 48, 50, 48, 52, 7,117,110,105, 48, 50, 48, 53, 7,117,110,105, 48, 50, 48, 54, 7,117,110,105, 48, 50, 48, 55, 7,117,110,105,
- 48, 50, 48, 56, 7,117,110,105, 48, 50, 48, 57, 7,117,110,105, 48, 50, 48, 65, 7,117,110,105, 48, 50, 48, 66, 7,117,110,105,
- 48, 50, 48, 67, 7,117,110,105, 48, 50, 48, 68, 7,117,110,105, 48, 50, 48, 69, 7,117,110,105, 48, 50, 48, 70, 7,117,110,105,
- 48, 50, 49, 48, 7,117,110,105, 48, 50, 49, 49, 7,117,110,105, 48, 50, 49, 50, 7,117,110,105, 48, 50, 49, 51, 7,117,110,105,
- 48, 50, 49, 52, 7,117,110,105, 48, 50, 49, 53, 7,117,110,105, 48, 50, 49, 54, 7,117,110,105, 48, 50, 49, 55, 12, 83, 99,111,
-109,109, 97, 97, 99, 99,101,110,116, 12,115, 99,111,109,109, 97, 97, 99, 99,101,110,116, 7,117,110,105, 48, 50, 49, 65, 7,117,
-110,105, 48, 50, 49, 66, 7,117,110,105, 48, 50, 49, 69, 7,117,110,105, 48, 50, 49, 70, 7,117,110,105, 48, 50, 50, 48, 7,117,
-110,105, 48, 50, 50, 49, 7,117,110,105, 48, 50, 50, 52, 7,117,110,105, 48, 50, 50, 53, 7,117,110,105, 48, 50, 50, 54, 7,117,
-110,105, 48, 50, 50, 55, 7,117,110,105, 48, 50, 50, 56, 7,117,110,105, 48, 50, 50, 57, 7,117,110,105, 48, 50, 50, 65, 7,117,
-110,105, 48, 50, 50, 66, 7,117,110,105, 48, 50, 50, 67, 7,117,110,105, 48, 50, 50, 68, 7,117,110,105, 48, 50, 50, 69, 7,117,
-110,105, 48, 50, 50, 70, 7,117,110,105, 48, 50, 51, 48, 7,117,110,105, 48, 50, 51, 49, 7,117,110,105, 48, 50, 51, 50, 7,117,
-110,105, 48, 50, 51, 51, 7,117,110,105, 48, 50, 51, 52, 7,117,110,105, 48, 50, 51, 53, 7,117,110,105, 48, 50, 51, 54, 8,100,
-111,116,108,101,115,115,106, 7,117,110,105, 48, 50, 51, 56, 7,117,110,105, 48, 50, 51, 57, 7,117,110,105, 48, 50, 51, 65, 7,
-117,110,105, 48, 50, 51, 66, 7,117,110,105, 48, 50, 51, 67, 7,117,110,105, 48, 50, 51, 68, 7,117,110,105, 48, 50, 51, 69, 7,
-117,110,105, 48, 50, 51, 70, 7,117,110,105, 48, 50, 52, 48, 7,117,110,105, 48, 50, 52, 49, 7,117,110,105, 48, 50, 52, 53, 7,
-117,110,105, 48, 50, 53, 48, 7,117,110,105, 48, 50, 53, 49, 7,117,110,105, 48, 50, 53, 50, 7,117,110,105, 48, 50, 53, 51, 7,
-117,110,105, 48, 50, 53, 52, 7,117,110,105, 48, 50, 53, 53, 7,117,110,105, 48, 50, 53, 54, 7,117,110,105, 48, 50, 53, 55, 7,
-117,110,105, 48, 50, 53, 56, 7,117,110,105, 48, 50, 53, 57, 7,117,110,105, 48, 50, 53, 65, 7,117,110,105, 48, 50, 53, 66, 7,
-117,110,105, 48, 50, 53, 67, 7,117,110,105, 48, 50, 53, 68, 7,117,110,105, 48, 50, 53, 69, 7,117,110,105, 48, 50, 53, 70, 7,
-117,110,105, 48, 50, 54, 48, 7,117,110,105, 48, 50, 54, 49, 7,117,110,105, 48, 50, 54, 50, 7,117,110,105, 48, 50, 54, 51, 7,
-117,110,105, 48, 50, 54, 52, 7,117,110,105, 48, 50, 54, 53, 7,117,110,105, 48, 50, 54, 54, 7,117,110,105, 48, 50, 54, 55, 7,
-117,110,105, 48, 50, 54, 56, 7,117,110,105, 48, 50, 54, 57, 7,117,110,105, 48, 50, 54, 65, 7,117,110,105, 48, 50, 54, 66, 7,
-117,110,105, 48, 50, 54, 67, 7,117,110,105, 48, 50, 54, 68, 7,117,110,105, 48, 50, 54, 69, 7,117,110,105, 48, 50, 54, 70, 7,
-117,110,105, 48, 50, 55, 48, 7,117,110,105, 48, 50, 55, 49, 7,117,110,105, 48, 50, 55, 50, 7,117,110,105, 48, 50, 55, 51, 7,
-117,110,105, 48, 50, 55, 52, 7,117,110,105, 48, 50, 55, 53, 7,117,110,105, 48, 50, 55, 54, 7,117,110,105, 48, 50, 55, 55, 7,
-117,110,105, 48, 50, 55, 56, 7,117,110,105, 48, 50, 55, 57, 7,117,110,105, 48, 50, 55, 65, 7,117,110,105, 48, 50, 55, 66, 7,
-117,110,105, 48, 50, 55, 67, 7,117,110,105, 48, 50, 55, 68, 7,117,110,105, 48, 50, 55, 69, 7,117,110,105, 48, 50, 55, 70, 7,
-117,110,105, 48, 50, 56, 48, 7,117,110,105, 48, 50, 56, 49, 7,117,110,105, 48, 50, 56, 50, 7,117,110,105, 48, 50, 56, 51, 7,
-117,110,105, 48, 50, 56, 52, 7,117,110,105, 48, 50, 56, 53, 7,117,110,105, 48, 50, 56, 54, 7,117,110,105, 48, 50, 56, 55, 7,
-117,110,105, 48, 50, 56, 56, 7,117,110,105, 48, 50, 56, 57, 7,117,110,105, 48, 50, 56, 65, 7,117,110,105, 48, 50, 56, 66, 7,
-117,110,105, 48, 50, 56, 67, 7,117,110,105, 48, 50, 56, 68, 7,117,110,105, 48, 50, 56, 69, 7,117,110,105, 48, 50, 56, 70, 7,
-117,110,105, 48, 50, 57, 48, 7,117,110,105, 48, 50, 57, 49, 7,117,110,105, 48, 50, 57, 50, 7,117,110,105, 48, 50, 57, 51, 7,
-117,110,105, 48, 50, 57, 52, 7,117,110,105, 48, 50, 57, 53, 7,117,110,105, 48, 50, 57, 54, 7,117,110,105, 48, 50, 57, 55, 7,
-117,110,105, 48, 50, 57, 56, 7,117,110,105, 48, 50, 57, 57, 7,117,110,105, 48, 50, 57, 65, 7,117,110,105, 48, 50, 57, 66, 7,
-117,110,105, 48, 50, 57, 67, 7,117,110,105, 48, 50, 57, 68, 7,117,110,105, 48, 50, 57, 69, 7,117,110,105, 48, 50, 57, 70, 7,
-117,110,105, 48, 50, 65, 48, 7,117,110,105, 48, 50, 65, 49, 7,117,110,105, 48, 50, 65, 50, 7,117,110,105, 48, 50, 65, 51, 7,
-117,110,105, 48, 50, 65, 52, 7,117,110,105, 48, 50, 65, 53, 7,117,110,105, 48, 50, 65, 54, 7,117,110,105, 48, 50, 65, 55, 7,
-117,110,105, 48, 50, 65, 56, 7,117,110,105, 48, 50, 65, 57, 7,117,110,105, 48, 50, 65, 65, 7,117,110,105, 48, 50, 65, 66, 7,
-117,110,105, 48, 50, 65, 67, 7,117,110,105, 48, 50, 65, 68, 7,117,110,105, 48, 50, 65, 69, 7,117,110,105, 48, 50, 65, 70, 7,
-117,110,105, 48, 50, 66, 48, 7,117,110,105, 48, 50, 66, 49, 7,117,110,105, 48, 50, 66, 50, 7,117,110,105, 48, 50, 66, 51, 7,
-117,110,105, 48, 50, 66, 52, 7,117,110,105, 48, 50, 66, 53, 7,117,110,105, 48, 50, 66, 54, 7,117,110,105, 48, 50, 66, 55, 7,
-117,110,105, 48, 50, 66, 56, 7,117,110,105, 48, 50, 66, 57, 7,117,110,105, 48, 50, 66, 66, 7,117,110,105, 48, 50, 66, 67, 7,
-117,110,105, 48, 50, 66, 68, 7,117,110,105, 48, 50, 66, 69, 7,117,110,105, 48, 50, 66, 70, 7,117,110,105, 48, 50, 67, 48, 7,
-117,110,105, 48, 50, 67, 49, 7,117,110,105, 48, 50, 67, 56, 7,117,110,105, 48, 50, 67, 57, 7,117,110,105, 48, 50, 67, 67, 7,
-117,110,105, 48, 50, 67, 68, 7,117,110,105, 48, 50, 68, 48, 7,117,110,105, 48, 50, 68, 49, 7,117,110,105, 48, 50, 68, 50, 7,
-117,110,105, 48, 50, 68, 51, 7,117,110,105, 48, 50, 68, 54, 7,117,110,105, 48, 50, 68, 69, 7,117,110,105, 48, 50, 69, 48, 7,
-117,110,105, 48, 50, 69, 49, 7,117,110,105, 48, 50, 69, 50, 7,117,110,105, 48, 50, 69, 51, 7,117,110,105, 48, 50, 69, 52, 7,
-117,110,105, 48, 50, 69, 53, 7,117,110,105, 48, 50, 69, 54, 7,117,110,105, 48, 50, 69, 55, 7,117,110,105, 48, 50, 69, 56, 7,
-117,110,105, 48, 50, 69, 57, 7,117,110,105, 48, 50, 70, 51, 9,103,114, 97,118,101, 99,111,109, 98, 9, 97, 99,117,116,101, 99,
-111,109, 98, 7,117,110,105, 48, 51, 48, 50, 9,116,105,108,100,101, 99,111,109, 98, 7,117,110,105, 48, 51, 48, 52, 7,117,110,
-105, 48, 51, 48, 53, 7,117,110,105, 48, 51, 48, 54, 7,117,110,105, 48, 51, 48, 55, 7,117,110,105, 48, 51, 48, 56, 13,104,111,
-111,107, 97, 98,111,118,101, 99,111,109, 98, 7,117,110,105, 48, 51, 48, 65, 7,117,110,105, 48, 51, 48, 66, 7,117,110,105, 48,
- 51, 48, 67, 7,117,110,105, 48, 51, 48, 68, 7,117,110,105, 48, 51, 48, 69, 7,117,110,105, 48, 51, 48, 70, 7,117,110,105, 48,
- 51, 49, 48, 7,117,110,105, 48, 51, 49, 49, 7,117,110,105, 48, 51, 49, 50, 7,117,110,105, 48, 51, 49, 51, 7,117,110,105, 48,
- 51, 49, 52, 7,117,110,105, 48, 51, 49, 53, 7,117,110,105, 48, 51, 49, 54, 7,117,110,105, 48, 51, 49, 55, 7,117,110,105, 48,
- 51, 49, 56, 7,117,110,105, 48, 51, 49, 57, 7,117,110,105, 48, 51, 49, 65, 7,117,110,105, 48, 51, 49, 66, 7,117,110,105, 48,
- 51, 49, 67, 7,117,110,105, 48, 51, 49, 68, 7,117,110,105, 48, 51, 49, 69, 7,117,110,105, 48, 51, 49, 70, 7,117,110,105, 48,
- 51, 50, 48, 7,117,110,105, 48, 51, 50, 49, 7,117,110,105, 48, 51, 50, 50, 12,100,111,116, 98,101,108,111,119, 99,111,109, 98,
- 7,117,110,105, 48, 51, 50, 52, 7,117,110,105, 48, 51, 50, 53, 7,117,110,105, 48, 51, 50, 54, 7,117,110,105, 48, 51, 50, 55,
- 7,117,110,105, 48, 51, 50, 56, 7,117,110,105, 48, 51, 50, 57, 7,117,110,105, 48, 51, 50, 65, 7,117,110,105, 48, 51, 50, 66,
- 7,117,110,105, 48, 51, 50, 67, 7,117,110,105, 48, 51, 50, 68, 7,117,110,105, 48, 51, 50, 69, 7,117,110,105, 48, 51, 50, 70,
- 7,117,110,105, 48, 51, 51, 48, 7,117,110,105, 48, 51, 51, 49, 7,117,110,105, 48, 51, 51, 50, 7,117,110,105, 48, 51, 51, 51,
- 7,117,110,105, 48, 51, 51, 52, 7,117,110,105, 48, 51, 51, 53, 7,117,110,105, 48, 51, 51, 54, 7,117,110,105, 48, 51, 51, 55,
- 7,117,110,105, 48, 51, 51, 56, 7,117,110,105, 48, 51, 51, 57, 7,117,110,105, 48, 51, 51, 65, 7,117,110,105, 48, 51, 51, 66,
- 7,117,110,105, 48, 51, 51, 67, 7,117,110,105, 48, 51, 51, 68, 7,117,110,105, 48, 51, 51, 69, 7,117,110,105, 48, 51, 51, 70,
- 7,117,110,105, 48, 51, 52, 51, 7,117,110,105, 48, 51, 53, 56, 7,117,110,105, 48, 51, 54, 49, 7,117,110,105, 48, 51, 55, 52,
- 7,117,110,105, 48, 51, 55, 53, 7,117,110,105, 48, 51, 55, 65, 7,117,110,105, 48, 51, 55, 69, 5,116,111,110,111,115, 13,100,
-105,101,114,101,115,105,115,116,111,110,111,115, 10, 65,108,112,104, 97,116,111,110,111,115, 9, 97,110,111,116,101,108,101,105,
- 97, 12, 69,112,115,105,108,111,110,116,111,110,111,115, 8, 69,116, 97,116,111,110,111,115, 9, 73,111,116, 97,116,111,110,111,
-115, 12, 79,109,105, 99,114,111,110,116,111,110,111,115, 12, 85,112,115,105,108,111,110,116,111,110,111,115, 10, 79,109,101,103,
- 97,116,111,110,111,115, 17,105,111,116, 97,100,105,101,114,101,115,105,115,116,111,110,111,115, 5, 65,108,112,104, 97, 4, 66,
-101,116, 97, 5, 71, 97,109,109, 97, 7,117,110,105, 48, 51, 57, 52, 7, 69,112,115,105,108,111,110, 4, 90,101,116, 97, 3, 69,
-116, 97, 5, 84,104,101,116, 97, 4, 73,111,116, 97, 5, 75, 97,112,112, 97, 6, 76, 97,109, 98,100, 97, 2, 77,117, 2, 78,117,
- 2, 88,105, 7, 79,109,105, 99,114,111,110, 2, 80,105, 3, 82,104,111, 5, 83,105,103,109, 97, 3, 84, 97,117, 7, 85,112,115,
-105,108,111,110, 3, 80,104,105, 3, 67,104,105, 3, 80,115,105, 12, 73,111,116, 97,100,105,101,114,101,115,105,115, 15, 85,112,
-115,105,108,111,110,100,105,101,114,101,115,105,115, 10, 97,108,112,104, 97,116,111,110,111,115, 12,101,112,115,105,108,111,110,
-116,111,110,111,115, 8,101,116, 97,116,111,110,111,115, 9,105,111,116, 97,116,111,110,111,115, 20,117,112,115,105,108,111,110,
-100,105,101,114,101,115,105,115,116,111,110,111,115, 5, 97,108,112,104, 97, 4, 98,101,116, 97, 5,103, 97,109,109, 97, 5,100,
-101,108,116, 97, 7,101,112,115,105,108,111,110, 4,122,101,116, 97, 3,101,116, 97, 5,116,104,101,116, 97, 4,105,111,116, 97,
- 5,107, 97,112,112, 97, 6,108, 97,109, 98,100, 97, 7,117,110,105, 48, 51, 66, 67, 2,110,117, 2,120,105, 7,111,109,105, 99,
-114,111,110, 3,114,104,111, 6,115,105,103,109, 97, 49, 5,115,105,103,109, 97, 3,116, 97,117, 7,117,112,115,105,108,111,110,
- 3,112,104,105, 3, 99,104,105, 3,112,115,105, 5,111,109,101,103, 97, 12,105,111,116, 97,100,105,101,114,101,115,105,115, 15,
-117,112,115,105,108,111,110,100,105,101,114,101,115,105,115, 12,111,109,105, 99,114,111,110,116,111,110,111,115, 12,117,112,115,
-105,108,111,110,116,111,110,111,115, 10,111,109,101,103, 97,116,111,110,111,115, 7,117,110,105, 48, 51, 68, 48, 6,116,104,101,
-116, 97, 49, 8, 85,112,115,105,108,111,110, 49, 7,117,110,105, 48, 51, 68, 51, 7,117,110,105, 48, 51, 68, 52, 4,112,104,105,
- 49, 6,111,109,101,103, 97, 49, 7,117,110,105, 48, 51, 68, 55, 7,117,110,105, 48, 51, 68, 56, 7,117,110,105, 48, 51, 68, 57,
- 7,117,110,105, 48, 51, 68, 65, 7,117,110,105, 48, 51, 68, 66, 7,117,110,105, 48, 51, 68, 67, 7,117,110,105, 48, 51, 68, 68,
- 7,117,110,105, 48, 51, 68, 69, 7,117,110,105, 48, 51, 68, 70, 7,117,110,105, 48, 51, 69, 48, 7,117,110,105, 48, 51, 69, 49,
- 7,117,110,105, 48, 51, 70, 48, 7,117,110,105, 48, 51, 70, 49, 7,117,110,105, 48, 51, 70, 50, 7,117,110,105, 48, 51, 70, 51,
- 7,117,110,105, 48, 51, 70, 52, 7,117,110,105, 48, 51, 70, 53, 7,117,110,105, 48, 51, 70, 54, 7,117,110,105, 48, 51, 70, 55,
- 7,117,110,105, 48, 51, 70, 56, 7,117,110,105, 48, 51, 70, 57, 7,117,110,105, 48, 51, 70, 65, 7,117,110,105, 48, 51, 70, 66,
- 7,117,110,105, 48, 51, 70, 67, 7,117,110,105, 48, 51, 70, 68, 7,117,110,105, 48, 51, 70, 69, 7,117,110,105, 48, 51, 70, 70,
- 7,117,110,105, 48, 52, 48, 48, 7,117,110,105, 48, 52, 48, 49, 7,117,110,105, 48, 52, 48, 50, 7,117,110,105, 48, 52, 48, 51,
- 7,117,110,105, 48, 52, 48, 52, 7,117,110,105, 48, 52, 48, 53, 7,117,110,105, 48, 52, 48, 54, 7,117,110,105, 48, 52, 48, 55,
- 7,117,110,105, 48, 52, 48, 56, 7,117,110,105, 48, 52, 48, 57, 7,117,110,105, 48, 52, 48, 65, 7,117,110,105, 48, 52, 48, 66,
- 7,117,110,105, 48, 52, 48, 67, 7,117,110,105, 48, 52, 48, 68, 7,117,110,105, 48, 52, 48, 69, 7,117,110,105, 48, 52, 48, 70,
- 7,117,110,105, 48, 52, 49, 48, 7,117,110,105, 48, 52, 49, 49, 7,117,110,105, 48, 52, 49, 50, 7,117,110,105, 48, 52, 49, 51,
- 7,117,110,105, 48, 52, 49, 52, 7,117,110,105, 48, 52, 49, 53, 7,117,110,105, 48, 52, 49, 54, 7,117,110,105, 48, 52, 49, 55,
- 7,117,110,105, 48, 52, 49, 56, 7,117,110,105, 48, 52, 49, 57, 7,117,110,105, 48, 52, 49, 65, 7,117,110,105, 48, 52, 49, 66,
- 7,117,110,105, 48, 52, 49, 67, 7,117,110,105, 48, 52, 49, 68, 7,117,110,105, 48, 52, 49, 69, 7,117,110,105, 48, 52, 49, 70,
- 7,117,110,105, 48, 52, 50, 48, 7,117,110,105, 48, 52, 50, 49, 7,117,110,105, 48, 52, 50, 50, 7,117,110,105, 48, 52, 50, 51,
- 7,117,110,105, 48, 52, 50, 52, 7,117,110,105, 48, 52, 50, 53, 7,117,110,105, 48, 52, 50, 54, 7,117,110,105, 48, 52, 50, 55,
- 7,117,110,105, 48, 52, 50, 56, 7,117,110,105, 48, 52, 50, 57, 7,117,110,105, 48, 52, 50, 65, 7,117,110,105, 48, 52, 50, 66,
- 7,117,110,105, 48, 52, 50, 67, 7,117,110,105, 48, 52, 50, 68, 7,117,110,105, 48, 52, 50, 69, 7,117,110,105, 48, 52, 50, 70,
- 7,117,110,105, 48, 52, 51, 48, 7,117,110,105, 48, 52, 51, 49, 7,117,110,105, 48, 52, 51, 50, 7,117,110,105, 48, 52, 51, 51,
- 7,117,110,105, 48, 52, 51, 52, 7,117,110,105, 48, 52, 51, 53, 7,117,110,105, 48, 52, 51, 54, 7,117,110,105, 48, 52, 51, 55,
- 7,117,110,105, 48, 52, 51, 56, 7,117,110,105, 48, 52, 51, 57, 7,117,110,105, 48, 52, 51, 65, 7,117,110,105, 48, 52, 51, 66,
- 7,117,110,105, 48, 52, 51, 67, 7,117,110,105, 48, 52, 51, 68, 7,117,110,105, 48, 52, 51, 69, 7,117,110,105, 48, 52, 51, 70,
- 7,117,110,105, 48, 52, 52, 48, 7,117,110,105, 48, 52, 52, 49, 7,117,110,105, 48, 52, 52, 50, 7,117,110,105, 48, 52, 52, 51,
- 7,117,110,105, 48, 52, 52, 52, 7,117,110,105, 48, 52, 52, 53, 7,117,110,105, 48, 52, 52, 54, 7,117,110,105, 48, 52, 52, 55,
- 7,117,110,105, 48, 52, 52, 56, 7,117,110,105, 48, 52, 52, 57, 7,117,110,105, 48, 52, 52, 65, 7,117,110,105, 48, 52, 52, 66,
- 7,117,110,105, 48, 52, 52, 67, 7,117,110,105, 48, 52, 52, 68, 7,117,110,105, 48, 52, 52, 69, 7,117,110,105, 48, 52, 52, 70,
- 7,117,110,105, 48, 52, 53, 48, 7,117,110,105, 48, 52, 53, 49, 7,117,110,105, 48, 52, 53, 50, 7,117,110,105, 48, 52, 53, 51,
- 7,117,110,105, 48, 52, 53, 52, 7,117,110,105, 48, 52, 53, 53, 7,117,110,105, 48, 52, 53, 54, 7,117,110,105, 48, 52, 53, 55,
- 7,117,110,105, 48, 52, 53, 56, 7,117,110,105, 48, 52, 53, 57, 7,117,110,105, 48, 52, 53, 65, 7,117,110,105, 48, 52, 53, 66,
- 7,117,110,105, 48, 52, 53, 67, 7,117,110,105, 48, 52, 53, 68, 7,117,110,105, 48, 52, 53, 69, 7,117,110,105, 48, 52, 53, 70,
- 7,117,110,105, 48, 52, 57, 48, 7,117,110,105, 48, 52, 57, 49, 7,117,110,105, 48, 52, 57, 50, 7,117,110,105, 48, 52, 57, 51,
- 7,117,110,105, 48, 52, 57, 52, 7,117,110,105, 48, 52, 57, 53, 7,117,110,105, 48, 52, 57, 54, 7,117,110,105, 48, 52, 57, 55,
- 7,117,110,105, 48, 52, 57, 56, 7,117,110,105, 48, 52, 57, 57, 7,117,110,105, 48, 52, 57, 65, 7,117,110,105, 48, 52, 57, 66,
- 7,117,110,105, 48, 52, 65, 50, 7,117,110,105, 48, 52, 65, 51, 7,117,110,105, 48, 52, 65, 65, 7,117,110,105, 48, 52, 65, 66,
- 7,117,110,105, 48, 52, 65, 67, 7,117,110,105, 48, 52, 65, 68, 7,117,110,105, 48, 52, 65, 69, 7,117,110,105, 48, 52, 65, 70,
- 7,117,110,105, 48, 52, 66, 48, 7,117,110,105, 48, 52, 66, 49, 7,117,110,105, 48, 52, 66, 50, 7,117,110,105, 48, 52, 66, 51,
- 7,117,110,105, 48, 52, 66, 65, 7,117,110,105, 48, 52, 66, 66, 7,117,110,105, 48, 52, 67, 48, 7,117,110,105, 48, 52, 67, 49,
- 7,117,110,105, 48, 52, 67, 50, 7,117,110,105, 48, 52, 67, 51, 7,117,110,105, 48, 52, 67, 52, 7,117,110,105, 48, 52, 67, 55,
- 7,117,110,105, 48, 52, 67, 56, 7,117,110,105, 48, 52, 67, 66, 7,117,110,105, 48, 52, 67, 67, 7,117,110,105, 48, 52, 67, 70,
- 7,117,110,105, 48, 52, 68, 48, 7,117,110,105, 48, 52, 68, 49, 7,117,110,105, 48, 52, 68, 50, 7,117,110,105, 48, 52, 68, 51,
- 7,117,110,105, 48, 52, 68, 52, 7,117,110,105, 48, 52, 68, 53, 7,117,110,105, 48, 52, 68, 54, 7,117,110,105, 48, 52, 68, 55,
- 7,117,110,105, 48, 52, 68, 56, 7,117,110,105, 48, 52, 68, 57, 7,117,110,105, 48, 52, 68, 65, 7,117,110,105, 48, 52, 68, 66,
- 7,117,110,105, 48, 52, 68, 67, 7,117,110,105, 48, 52, 68, 68, 7,117,110,105, 48, 52, 68, 69, 7,117,110,105, 48, 52, 68, 70,
- 7,117,110,105, 48, 52, 69, 48, 7,117,110,105, 48, 52, 69, 49, 7,117,110,105, 48, 52, 69, 50, 7,117,110,105, 48, 52, 69, 51,
- 7,117,110,105, 48, 52, 69, 52, 7,117,110,105, 48, 52, 69, 53, 7,117,110,105, 48, 52, 69, 54, 7,117,110,105, 48, 52, 69, 55,
- 7,117,110,105, 48, 52, 69, 56, 7,117,110,105, 48, 52, 69, 57, 7,117,110,105, 48, 52, 69, 65, 7,117,110,105, 48, 52, 69, 66,
- 7,117,110,105, 48, 52, 69, 67, 7,117,110,105, 48, 52, 69, 68, 7,117,110,105, 48, 52, 69, 69, 7,117,110,105, 48, 52, 69, 70,
- 7,117,110,105, 48, 52, 70, 48, 7,117,110,105, 48, 52, 70, 49, 7,117,110,105, 48, 52, 70, 50, 7,117,110,105, 48, 52, 70, 51,
- 7,117,110,105, 48, 52, 70, 52, 7,117,110,105, 48, 52, 70, 53, 7,117,110,105, 48, 52, 70, 54, 7,117,110,105, 48, 52, 70, 55,
- 7,117,110,105, 48, 52, 70, 56, 7,117,110,105, 48, 52, 70, 57, 7,117,110,105, 48, 54, 48, 67, 7,117,110,105, 48, 54, 49, 53,
- 7,117,110,105, 48, 54, 49, 66, 7,117,110,105, 48, 54, 49, 70, 7,117,110,105, 48, 54, 50, 49, 7,117,110,105, 48, 54, 50, 50,
- 7,117,110,105, 48, 54, 50, 51, 7,117,110,105, 48, 54, 50, 52, 7,117,110,105, 48, 54, 50, 53, 7,117,110,105, 48, 54, 50, 54,
- 7,117,110,105, 48, 54, 50, 55, 7,117,110,105, 48, 54, 50, 56, 7,117,110,105, 48, 54, 50, 57, 7,117,110,105, 48, 54, 50, 65,
- 7,117,110,105, 48, 54, 50, 66, 7,117,110,105, 48, 54, 50, 67, 7,117,110,105, 48, 54, 50, 68, 7,117,110,105, 48, 54, 50, 69,
- 7,117,110,105, 48, 54, 50, 70, 7,117,110,105, 48, 54, 51, 48, 7,117,110,105, 48, 54, 51, 49, 7,117,110,105, 48, 54, 51, 50,
- 7,117,110,105, 48, 54, 51, 51, 7,117,110,105, 48, 54, 51, 52, 7,117,110,105, 48, 54, 51, 53, 7,117,110,105, 48, 54, 51, 54,
- 7,117,110,105, 48, 54, 51, 55, 7,117,110,105, 48, 54, 51, 56, 7,117,110,105, 48, 54, 51, 57, 7,117,110,105, 48, 54, 51, 65,
- 7,117,110,105, 48, 54, 52, 48, 7,117,110,105, 48, 54, 52, 49, 7,117,110,105, 48, 54, 52, 50, 7,117,110,105, 48, 54, 52, 51,
- 7,117,110,105, 48, 54, 52, 52, 7,117,110,105, 48, 54, 52, 53, 7,117,110,105, 48, 54, 52, 54, 7,117,110,105, 48, 54, 52, 55,
- 7,117,110,105, 48, 54, 52, 56, 7,117,110,105, 48, 54, 52, 57, 7,117,110,105, 48, 54, 52, 65, 7,117,110,105, 48, 54, 52, 66,
- 7,117,110,105, 48, 54, 52, 67, 7,117,110,105, 48, 54, 52, 68, 7,117,110,105, 48, 54, 52, 69, 7,117,110,105, 48, 54, 52, 70,
- 7,117,110,105, 48, 54, 53, 48, 7,117,110,105, 48, 54, 53, 49, 7,117,110,105, 48, 54, 53, 50, 7,117,110,105, 48, 54, 53, 51,
- 7,117,110,105, 48, 54, 53, 52, 7,117,110,105, 48, 54, 53, 53, 7,117,110,105, 48, 54, 53, 65, 7,117,110,105, 48, 54, 54, 48,
- 7,117,110,105, 48, 54, 54, 49, 7,117,110,105, 48, 54, 54, 50, 7,117,110,105, 48, 54, 54, 51, 7,117,110,105, 48, 54, 54, 52,
- 7,117,110,105, 48, 54, 54, 53, 7,117,110,105, 48, 54, 54, 54, 7,117,110,105, 48, 54, 54, 55, 7,117,110,105, 48, 54, 54, 56,
- 7,117,110,105, 48, 54, 54, 57, 7,117,110,105, 48, 54, 54, 65, 7,117,110,105, 48, 54, 54, 66, 7,117,110,105, 48, 54, 54, 67,
- 7,117,110,105, 48, 54, 54, 68, 7,117,110,105, 48, 54, 54, 69, 7,117,110,105, 48, 54, 54, 70, 7,117,110,105, 48, 54, 55, 52,
- 7,117,110,105, 48, 54, 55, 57, 7,117,110,105, 48, 54, 55, 65, 7,117,110,105, 48, 54, 55, 66, 7,117,110,105, 48, 54, 55, 67,
- 7,117,110,105, 48, 54, 55, 68, 7,117,110,105, 48, 54, 55, 69, 7,117,110,105, 48, 54, 55, 70, 7,117,110,105, 48, 54, 56, 48,
- 7,117,110,105, 48, 54, 56, 49, 7,117,110,105, 48, 54, 56, 50, 7,117,110,105, 48, 54, 56, 51, 7,117,110,105, 48, 54, 56, 52,
- 7,117,110,105, 48, 54, 56, 53, 7,117,110,105, 48, 54, 56, 54, 7,117,110,105, 48, 54, 56, 55, 7,117,110,105, 48, 54, 57, 49,
- 7,117,110,105, 48, 54, 57, 50, 7,117,110,105, 48, 54, 57, 56, 7,117,110,105, 48, 54, 65, 49, 7,117,110,105, 48, 54, 65, 52,
- 7,117,110,105, 48, 54, 65, 57, 7,117,110,105, 48, 54, 65, 70, 7,117,110,105, 48, 54, 66, 53, 7,117,110,105, 48, 54, 66, 65,
- 7,117,110,105, 48, 54, 66, 69, 7,117,110,105, 48, 54, 67, 54, 7,117,110,105, 48, 54, 67, 67, 7,117,110,105, 48, 54, 67, 69,
- 7,117,110,105, 48, 54, 68, 53, 7,117,110,105, 48, 54, 70, 48, 7,117,110,105, 48, 54, 70, 49, 7,117,110,105, 48, 54, 70, 50,
- 7,117,110,105, 48, 54, 70, 51, 7,117,110,105, 48, 54, 70, 52, 7,117,110,105, 48, 54, 70, 53, 7,117,110,105, 48, 54, 70, 54,
- 7,117,110,105, 48, 54, 70, 55, 7,117,110,105, 48, 54, 70, 56, 7,117,110,105, 48, 54, 70, 57, 7,117,110,105, 48, 69, 56, 49,
- 7,117,110,105, 48, 69, 56, 50, 7,117,110,105, 48, 69, 56, 52, 7,117,110,105, 48, 69, 56, 55, 7,117,110,105, 48, 69, 56, 56,
- 7,117,110,105, 48, 69, 56, 65, 7,117,110,105, 48, 69, 56, 68, 7,117,110,105, 48, 69, 57, 52, 7,117,110,105, 48, 69, 57, 53,
- 7,117,110,105, 48, 69, 57, 54, 7,117,110,105, 48, 69, 57, 55, 7,117,110,105, 48, 69, 57, 57, 7,117,110,105, 48, 69, 57, 65,
- 7,117,110,105, 48, 69, 57, 66, 7,117,110,105, 48, 69, 57, 67, 7,117,110,105, 48, 69, 57, 68, 7,117,110,105, 48, 69, 57, 69,
- 7,117,110,105, 48, 69, 57, 70, 7,117,110,105, 48, 69, 65, 49, 7,117,110,105, 48, 69, 65, 50, 7,117,110,105, 48, 69, 65, 51,
- 7,117,110,105, 48, 69, 65, 53, 7,117,110,105, 48, 69, 65, 55, 7,117,110,105, 48, 69, 65, 65, 7,117,110,105, 48, 69, 65, 66,
- 7,117,110,105, 48, 69, 65, 68, 7,117,110,105, 48, 69, 65, 69, 7,117,110,105, 48, 69, 65, 70, 7,117,110,105, 48, 69, 66, 48,
- 7,117,110,105, 48, 69, 66, 49, 7,117,110,105, 48, 69, 66, 50, 7,117,110,105, 48, 69, 66, 51, 7,117,110,105, 48, 69, 66, 52,
- 7,117,110,105, 48, 69, 66, 53, 7,117,110,105, 48, 69, 66, 54, 7,117,110,105, 48, 69, 66, 55, 7,117,110,105, 48, 69, 66, 56,
- 7,117,110,105, 48, 69, 66, 57, 7,117,110,105, 48, 69, 66, 66, 7,117,110,105, 48, 69, 66, 67, 7,117,110,105, 48, 69, 67, 56,
- 7,117,110,105, 48, 69, 67, 57, 7,117,110,105, 48, 69, 67, 65, 7,117,110,105, 48, 69, 67, 66, 7,117,110,105, 48, 69, 67, 67,
- 7,117,110,105, 48, 69, 67, 68, 7,117,110,105, 49, 48, 68, 48, 7,117,110,105, 49, 48, 68, 49, 7,117,110,105, 49, 48, 68, 50,
- 7,117,110,105, 49, 48, 68, 51, 7,117,110,105, 49, 48, 68, 52, 7,117,110,105, 49, 48, 68, 53, 7,117,110,105, 49, 48, 68, 54,
- 7,117,110,105, 49, 48, 68, 55, 7,117,110,105, 49, 48, 68, 56, 7,117,110,105, 49, 48, 68, 57, 7,117,110,105, 49, 48, 68, 65,
- 7,117,110,105, 49, 48, 68, 66, 7,117,110,105, 49, 48, 68, 67, 7,117,110,105, 49, 48, 68, 68, 7,117,110,105, 49, 48, 68, 69,
- 7,117,110,105, 49, 48, 68, 70, 7,117,110,105, 49, 48, 69, 48, 7,117,110,105, 49, 48, 69, 49, 7,117,110,105, 49, 48, 69, 50,
- 7,117,110,105, 49, 48, 69, 51, 7,117,110,105, 49, 48, 69, 52, 7,117,110,105, 49, 48, 69, 53, 7,117,110,105, 49, 48, 69, 54,
- 7,117,110,105, 49, 48, 69, 55, 7,117,110,105, 49, 48, 69, 56, 7,117,110,105, 49, 48, 69, 57, 7,117,110,105, 49, 48, 69, 65,
- 7,117,110,105, 49, 48, 69, 66, 7,117,110,105, 49, 48, 69, 67, 7,117,110,105, 49, 48, 69, 68, 7,117,110,105, 49, 48, 69, 69,
- 7,117,110,105, 49, 48, 69, 70, 7,117,110,105, 49, 48, 70, 48, 7,117,110,105, 49, 48, 70, 49, 7,117,110,105, 49, 48, 70, 50,
- 7,117,110,105, 49, 48, 70, 51, 7,117,110,105, 49, 48, 70, 52, 7,117,110,105, 49, 48, 70, 53, 7,117,110,105, 49, 48, 70, 54,
- 7,117,110,105, 49, 48, 70, 55, 7,117,110,105, 49, 48, 70, 56, 7,117,110,105, 49, 48, 70, 57, 7,117,110,105, 49, 48, 70, 65,
- 7,117,110,105, 49, 48, 70, 66, 7,117,110,105, 49, 48, 70, 67, 7,117,110,105, 49, 68, 48, 50, 7,117,110,105, 49, 68, 48, 56,
- 7,117,110,105, 49, 68, 48, 57, 7,117,110,105, 49, 68, 49, 52, 7,117,110,105, 49, 68, 49, 54, 7,117,110,105, 49, 68, 49, 55,
- 7,117,110,105, 49, 68, 49, 68, 7,117,110,105, 49, 68, 49, 69, 7,117,110,105, 49, 68, 49, 70, 7,117,110,105, 49, 68, 50, 67,
- 7,117,110,105, 49, 68, 50, 68, 7,117,110,105, 49, 68, 50, 69, 7,117,110,105, 49, 68, 51, 48, 7,117,110,105, 49, 68, 51, 49,
- 7,117,110,105, 49, 68, 51, 50, 7,117,110,105, 49, 68, 51, 51, 7,117,110,105, 49, 68, 51, 52, 7,117,110,105, 49, 68, 51, 53,
- 7,117,110,105, 49, 68, 51, 54, 7,117,110,105, 49, 68, 51, 55, 7,117,110,105, 49, 68, 51, 56, 7,117,110,105, 49, 68, 51, 57,
- 7,117,110,105, 49, 68, 51, 65, 7,117,110,105, 49, 68, 51, 66, 7,117,110,105, 49, 68, 51, 67, 7,117,110,105, 49, 68, 51, 69,
- 7,117,110,105, 49, 68, 51, 70, 7,117,110,105, 49, 68, 52, 48, 7,117,110,105, 49, 68, 52, 49, 7,117,110,105, 49, 68, 52, 50,
- 7,117,110,105, 49, 68, 52, 51, 7,117,110,105, 49, 68, 52, 52, 7,117,110,105, 49, 68, 52, 53, 7,117,110,105, 49, 68, 52, 54,
- 7,117,110,105, 49, 68, 52, 55, 7,117,110,105, 49, 68, 52, 56, 7,117,110,105, 49, 68, 52, 57, 7,117,110,105, 49, 68, 52, 65,
- 7,117,110,105, 49, 68, 52, 66, 7,117,110,105, 49, 68, 52, 67, 7,117,110,105, 49, 68, 52, 68, 7,117,110,105, 49, 68, 52, 69,
- 7,117,110,105, 49, 68, 52, 70, 7,117,110,105, 49, 68, 53, 48, 7,117,110,105, 49, 68, 53, 49, 7,117,110,105, 49, 68, 53, 50,
- 7,117,110,105, 49, 68, 53, 51, 7,117,110,105, 49, 68, 53, 52, 7,117,110,105, 49, 68, 53, 53, 7,117,110,105, 49, 68, 53, 54,
- 7,117,110,105, 49, 68, 53, 55, 7,117,110,105, 49, 68, 53, 56, 7,117,110,105, 49, 68, 53, 57, 7,117,110,105, 49, 68, 53, 65,
- 7,117,110,105, 49, 68, 53, 66, 7,117,110,105, 49, 68, 54, 50, 7,117,110,105, 49, 68, 54, 51, 7,117,110,105, 49, 68, 54, 52,
- 7,117,110,105, 49, 68, 54, 53, 7,117,110,105, 49, 68, 55, 55, 7,117,110,105, 49, 68, 55, 56, 7,117,110,105, 49, 68, 55, 66,
- 7,117,110,105, 49, 68, 56, 53, 7,117,110,105, 49, 68, 57, 66, 7,117,110,105, 49, 68, 57, 67, 7,117,110,105, 49, 68, 57, 68,
- 7,117,110,105, 49, 68, 57, 69, 7,117,110,105, 49, 68, 57, 70, 7,117,110,105, 49, 68, 65, 48, 7,117,110,105, 49, 68, 65, 49,
- 7,117,110,105, 49, 68, 65, 50, 7,117,110,105, 49, 68, 65, 51, 7,117,110,105, 49, 68, 65, 52, 7,117,110,105, 49, 68, 65, 53,
- 7,117,110,105, 49, 68, 65, 54, 7,117,110,105, 49, 68, 65, 55, 7,117,110,105, 49, 68, 65, 56, 7,117,110,105, 49, 68, 65, 57,
- 7,117,110,105, 49, 68, 65, 65, 7,117,110,105, 49, 68, 65, 66, 7,117,110,105, 49, 68, 65, 67, 7,117,110,105, 49, 68, 65, 68,
- 7,117,110,105, 49, 68, 65, 69, 7,117,110,105, 49, 68, 65, 70, 7,117,110,105, 49, 68, 66, 48, 7,117,110,105, 49, 68, 66, 49,
- 7,117,110,105, 49, 68, 66, 50, 7,117,110,105, 49, 68, 66, 51, 7,117,110,105, 49, 68, 66, 52, 7,117,110,105, 49, 68, 66, 53,
- 7,117,110,105, 49, 68, 66, 54, 7,117,110,105, 49, 68, 66, 55, 7,117,110,105, 49, 68, 66, 57, 7,117,110,105, 49, 68, 66, 65,
- 7,117,110,105, 49, 68, 66, 66, 7,117,110,105, 49, 68, 66, 67, 7,117,110,105, 49, 68, 66, 68, 7,117,110,105, 49, 68, 66, 69,
- 7,117,110,105, 49, 68, 66, 70, 7,117,110,105, 49, 69, 48, 48, 7,117,110,105, 49, 69, 48, 49, 7,117,110,105, 49, 69, 48, 50,
- 7,117,110,105, 49, 69, 48, 51, 7,117,110,105, 49, 69, 48, 52, 7,117,110,105, 49, 69, 48, 53, 7,117,110,105, 49, 69, 48, 54,
- 7,117,110,105, 49, 69, 48, 55, 7,117,110,105, 49, 69, 48, 56, 7,117,110,105, 49, 69, 48, 57, 7,117,110,105, 49, 69, 48, 65,
- 7,117,110,105, 49, 69, 48, 66, 7,117,110,105, 49, 69, 48, 67, 7,117,110,105, 49, 69, 48, 68, 7,117,110,105, 49, 69, 48, 69,
- 7,117,110,105, 49, 69, 48, 70, 7,117,110,105, 49, 69, 49, 48, 7,117,110,105, 49, 69, 49, 49, 7,117,110,105, 49, 69, 49, 50,
- 7,117,110,105, 49, 69, 49, 51, 7,117,110,105, 49, 69, 49, 56, 7,117,110,105, 49, 69, 49, 57, 7,117,110,105, 49, 69, 49, 65,
- 7,117,110,105, 49, 69, 49, 66, 7,117,110,105, 49, 69, 49, 67, 7,117,110,105, 49, 69, 49, 68, 7,117,110,105, 49, 69, 49, 69,
- 7,117,110,105, 49, 69, 49, 70, 7,117,110,105, 49, 69, 50, 48, 7,117,110,105, 49, 69, 50, 49, 7,117,110,105, 49, 69, 50, 50,
- 7,117,110,105, 49, 69, 50, 51, 7,117,110,105, 49, 69, 50, 52, 7,117,110,105, 49, 69, 50, 53, 7,117,110,105, 49, 69, 50, 56,
- 7,117,110,105, 49, 69, 50, 57, 7,117,110,105, 49, 69, 50, 65, 7,117,110,105, 49, 69, 50, 66, 7,117,110,105, 49, 69, 50, 67,
- 7,117,110,105, 49, 69, 50, 68, 7,117,110,105, 49, 69, 51, 48, 7,117,110,105, 49, 69, 51, 49, 7,117,110,105, 49, 69, 51, 50,
- 7,117,110,105, 49, 69, 51, 51, 7,117,110,105, 49, 69, 51, 52, 7,117,110,105, 49, 69, 51, 53, 7,117,110,105, 49, 69, 51, 54,
- 7,117,110,105, 49, 69, 51, 55, 7,117,110,105, 49, 69, 51, 56, 7,117,110,105, 49, 69, 51, 57, 7,117,110,105, 49, 69, 51, 65,
- 7,117,110,105, 49, 69, 51, 66, 7,117,110,105, 49, 69, 51, 67, 7,117,110,105, 49, 69, 51, 68, 7,117,110,105, 49, 69, 51, 69,
- 7,117,110,105, 49, 69, 51, 70, 7,117,110,105, 49, 69, 52, 48, 7,117,110,105, 49, 69, 52, 49, 7,117,110,105, 49, 69, 52, 50,
- 7,117,110,105, 49, 69, 52, 51, 7,117,110,105, 49, 69, 52, 52, 7,117,110,105, 49, 69, 52, 53, 7,117,110,105, 49, 69, 52, 54,
- 7,117,110,105, 49, 69, 52, 55, 7,117,110,105, 49, 69, 52, 56, 7,117,110,105, 49, 69, 52, 57, 7,117,110,105, 49, 69, 52, 65,
- 7,117,110,105, 49, 69, 52, 66, 7,117,110,105, 49, 69, 53, 54, 7,117,110,105, 49, 69, 53, 55, 7,117,110,105, 49, 69, 53, 56,
- 7,117,110,105, 49, 69, 53, 57, 7,117,110,105, 49, 69, 53, 65, 7,117,110,105, 49, 69, 53, 66, 7,117,110,105, 49, 69, 53, 67,
- 7,117,110,105, 49, 69, 53, 68, 7,117,110,105, 49, 69, 53, 69, 7,117,110,105, 49, 69, 53, 70, 7,117,110,105, 49, 69, 54, 48,
- 7,117,110,105, 49, 69, 54, 49, 7,117,110,105, 49, 69, 54, 50, 7,117,110,105, 49, 69, 54, 51, 7,117,110,105, 49, 69, 54, 56,
- 7,117,110,105, 49, 69, 54, 57, 7,117,110,105, 49, 69, 54, 65, 7,117,110,105, 49, 69, 54, 66, 7,117,110,105, 49, 69, 54, 67,
- 7,117,110,105, 49, 69, 54, 68, 7,117,110,105, 49, 69, 54, 69, 7,117,110,105, 49, 69, 54, 70, 7,117,110,105, 49, 69, 55, 48,
- 7,117,110,105, 49, 69, 55, 49, 7,117,110,105, 49, 69, 55, 50, 7,117,110,105, 49, 69, 55, 51, 7,117,110,105, 49, 69, 55, 52,
- 7,117,110,105, 49, 69, 55, 53, 7,117,110,105, 49, 69, 55, 54, 7,117,110,105, 49, 69, 55, 55, 7,117,110,105, 49, 69, 55, 69,
- 7,117,110,105, 49, 69, 55, 70, 6, 87,103,114, 97,118,101, 6,119,103,114, 97,118,101, 6, 87, 97, 99,117,116,101, 6,119, 97,
- 99,117,116,101, 9, 87,100,105,101,114,101,115,105,115, 9,119,100,105,101,114,101,115,105,115, 7,117,110,105, 49, 69, 56, 54,
- 7,117,110,105, 49, 69, 56, 55, 7,117,110,105, 49, 69, 56, 56, 7,117,110,105, 49, 69, 56, 57, 7,117,110,105, 49, 69, 56, 65,
- 7,117,110,105, 49, 69, 56, 66, 7,117,110,105, 49, 69, 56, 69, 7,117,110,105, 49, 69, 56, 70, 7,117,110,105, 49, 69, 57, 50,
- 7,117,110,105, 49, 69, 57, 51, 7,117,110,105, 49, 69, 57, 52, 7,117,110,105, 49, 69, 57, 53, 7,117,110,105, 49, 69, 57, 54,
- 7,117,110,105, 49, 69, 57, 66, 7,117,110,105, 49, 69, 65, 48, 7,117,110,105, 49, 69, 65, 49, 7,117,110,105, 49, 69, 66, 48,
- 7,117,110,105, 49, 69, 66, 49, 7,117,110,105, 49, 69, 66, 56, 7,117,110,105, 49, 69, 66, 57, 7,117,110,105, 49, 69, 66, 67,
- 7,117,110,105, 49, 69, 66, 68, 7,117,110,105, 49, 69, 67, 65, 7,117,110,105, 49, 69, 67, 66, 7,117,110,105, 49, 69, 67, 67,
- 7,117,110,105, 49, 69, 67, 68, 7,117,110,105, 49, 69, 69, 52, 7,117,110,105, 49, 69, 69, 53, 6, 89,103,114, 97,118,101, 6,
-121,103,114, 97,118,101, 7,117,110,105, 49, 69, 70, 52, 7,117,110,105, 49, 69, 70, 53, 7,117,110,105, 49, 69, 70, 56, 7,117,
-110,105, 49, 69, 70, 57, 7,117,110,105, 49, 70, 48, 48, 7,117,110,105, 49, 70, 48, 49, 7,117,110,105, 49, 70, 48, 50, 7,117,
-110,105, 49, 70, 48, 51, 7,117,110,105, 49, 70, 48, 52, 7,117,110,105, 49, 70, 48, 53, 7,117,110,105, 49, 70, 48, 54, 7,117,
-110,105, 49, 70, 48, 55, 7,117,110,105, 49, 70, 48, 56, 7,117,110,105, 49, 70, 48, 57, 7,117,110,105, 49, 70, 48, 65, 7,117,
-110,105, 49, 70, 48, 66, 7,117,110,105, 49, 70, 48, 67, 7,117,110,105, 49, 70, 48, 68, 7,117,110,105, 49, 70, 48, 69, 7,117,
-110,105, 49, 70, 48, 70, 7,117,110,105, 49, 70, 49, 48, 7,117,110,105, 49, 70, 49, 49, 7,117,110,105, 49, 70, 49, 50, 7,117,
-110,105, 49, 70, 49, 51, 7,117,110,105, 49, 70, 49, 52, 7,117,110,105, 49, 70, 49, 53, 7,117,110,105, 49, 70, 49, 56, 7,117,
-110,105, 49, 70, 49, 57, 7,117,110,105, 49, 70, 49, 65, 7,117,110,105, 49, 70, 49, 66, 7,117,110,105, 49, 70, 49, 67, 7,117,
-110,105, 49, 70, 49, 68, 7,117,110,105, 49, 70, 50, 48, 7,117,110,105, 49, 70, 50, 49, 7,117,110,105, 49, 70, 50, 50, 7,117,
-110,105, 49, 70, 50, 51, 7,117,110,105, 49, 70, 50, 52, 7,117,110,105, 49, 70, 50, 53, 7,117,110,105, 49, 70, 50, 54, 7,117,
-110,105, 49, 70, 50, 55, 7,117,110,105, 49, 70, 50, 56, 7,117,110,105, 49, 70, 50, 57, 7,117,110,105, 49, 70, 50, 65, 7,117,
-110,105, 49, 70, 50, 66, 7,117,110,105, 49, 70, 50, 67, 7,117,110,105, 49, 70, 50, 68, 7,117,110,105, 49, 70, 50, 69, 7,117,
-110,105, 49, 70, 50, 70, 7,117,110,105, 49, 70, 51, 48, 7,117,110,105, 49, 70, 51, 49, 7,117,110,105, 49, 70, 51, 50, 7,117,
-110,105, 49, 70, 51, 51, 7,117,110,105, 49, 70, 51, 52, 7,117,110,105, 49, 70, 51, 53, 7,117,110,105, 49, 70, 51, 54, 7,117,
-110,105, 49, 70, 51, 55, 7,117,110,105, 49, 70, 51, 56, 7,117,110,105, 49, 70, 51, 57, 7,117,110,105, 49, 70, 51, 65, 7,117,
-110,105, 49, 70, 51, 66, 7,117,110,105, 49, 70, 51, 67, 7,117,110,105, 49, 70, 51, 68, 7,117,110,105, 49, 70, 51, 69, 7,117,
-110,105, 49, 70, 51, 70, 7,117,110,105, 49, 70, 52, 48, 7,117,110,105, 49, 70, 52, 49, 7,117,110,105, 49, 70, 52, 50, 7,117,
-110,105, 49, 70, 52, 51, 7,117,110,105, 49, 70, 52, 52, 7,117,110,105, 49, 70, 52, 53, 7,117,110,105, 49, 70, 52, 56, 7,117,
-110,105, 49, 70, 52, 57, 7,117,110,105, 49, 70, 52, 65, 7,117,110,105, 49, 70, 52, 66, 7,117,110,105, 49, 70, 52, 67, 7,117,
-110,105, 49, 70, 52, 68, 7,117,110,105, 49, 70, 53, 48, 7,117,110,105, 49, 70, 53, 49, 7,117,110,105, 49, 70, 53, 50, 7,117,
-110,105, 49, 70, 53, 51, 7,117,110,105, 49, 70, 53, 52, 7,117,110,105, 49, 70, 53, 53, 7,117,110,105, 49, 70, 53, 54, 7,117,
-110,105, 49, 70, 53, 55, 7,117,110,105, 49, 70, 53, 57, 7,117,110,105, 49, 70, 53, 66, 7,117,110,105, 49, 70, 53, 68, 7,117,
-110,105, 49, 70, 53, 70, 7,117,110,105, 49, 70, 54, 48, 7,117,110,105, 49, 70, 54, 49, 7,117,110,105, 49, 70, 54, 50, 7,117,
-110,105, 49, 70, 54, 51, 7,117,110,105, 49, 70, 54, 52, 7,117,110,105, 49, 70, 54, 53, 7,117,110,105, 49, 70, 54, 54, 7,117,
-110,105, 49, 70, 54, 55, 7,117,110,105, 49, 70, 54, 56, 7,117,110,105, 49, 70, 54, 57, 7,117,110,105, 49, 70, 54, 65, 7,117,
-110,105, 49, 70, 54, 66, 7,117,110,105, 49, 70, 54, 67, 7,117,110,105, 49, 70, 54, 68, 7,117,110,105, 49, 70, 54, 69, 7,117,
-110,105, 49, 70, 54, 70, 7,117,110,105, 49, 70, 55, 48, 7,117,110,105, 49, 70, 55, 49, 7,117,110,105, 49, 70, 55, 50, 7,117,
-110,105, 49, 70, 55, 51, 7,117,110,105, 49, 70, 55, 52, 7,117,110,105, 49, 70, 55, 53, 7,117,110,105, 49, 70, 55, 54, 7,117,
-110,105, 49, 70, 55, 55, 7,117,110,105, 49, 70, 55, 56, 7,117,110,105, 49, 70, 55, 57, 7,117,110,105, 49, 70, 55, 65, 7,117,
-110,105, 49, 70, 55, 66, 7,117,110,105, 49, 70, 55, 67, 7,117,110,105, 49, 70, 55, 68, 7,117,110,105, 49, 70, 56, 48, 7,117,
-110,105, 49, 70, 56, 49, 7,117,110,105, 49, 70, 56, 50, 7,117,110,105, 49, 70, 56, 51, 7,117,110,105, 49, 70, 56, 52, 7,117,
-110,105, 49, 70, 56, 53, 7,117,110,105, 49, 70, 56, 54, 7,117,110,105, 49, 70, 56, 55, 7,117,110,105, 49, 70, 56, 56, 7,117,
-110,105, 49, 70, 56, 57, 7,117,110,105, 49, 70, 56, 65, 7,117,110,105, 49, 70, 56, 66, 7,117,110,105, 49, 70, 56, 67, 7,117,
-110,105, 49, 70, 56, 68, 7,117,110,105, 49, 70, 56, 69, 7,117,110,105, 49, 70, 56, 70, 7,117,110,105, 49, 70, 57, 48, 7,117,
-110,105, 49, 70, 57, 49, 7,117,110,105, 49, 70, 57, 50, 7,117,110,105, 49, 70, 57, 51, 7,117,110,105, 49, 70, 57, 52, 7,117,
-110,105, 49, 70, 57, 53, 7,117,110,105, 49, 70, 57, 54, 7,117,110,105, 49, 70, 57, 55, 7,117,110,105, 49, 70, 57, 56, 7,117,
-110,105, 49, 70, 57, 57, 7,117,110,105, 49, 70, 57, 65, 7,117,110,105, 49, 70, 57, 66, 7,117,110,105, 49, 70, 57, 67, 7,117,
-110,105, 49, 70, 57, 68, 7,117,110,105, 49, 70, 57, 69, 7,117,110,105, 49, 70, 57, 70, 7,117,110,105, 49, 70, 65, 48, 7,117,
-110,105, 49, 70, 65, 49, 7,117,110,105, 49, 70, 65, 50, 7,117,110,105, 49, 70, 65, 51, 7,117,110,105, 49, 70, 65, 52, 7,117,
-110,105, 49, 70, 65, 53, 7,117,110,105, 49, 70, 65, 54, 7,117,110,105, 49, 70, 65, 55, 7,117,110,105, 49, 70, 65, 56, 7,117,
-110,105, 49, 70, 65, 57, 7,117,110,105, 49, 70, 65, 65, 7,117,110,105, 49, 70, 65, 66, 7,117,110,105, 49, 70, 65, 67, 7,117,
-110,105, 49, 70, 65, 68, 7,117,110,105, 49, 70, 65, 69, 7,117,110,105, 49, 70, 65, 70, 7,117,110,105, 49, 70, 66, 48, 7,117,
-110,105, 49, 70, 66, 49, 7,117,110,105, 49, 70, 66, 50, 7,117,110,105, 49, 70, 66, 51, 7,117,110,105, 49, 70, 66, 52, 7,117,
-110,105, 49, 70, 66, 54, 7,117,110,105, 49, 70, 66, 55, 7,117,110,105, 49, 70, 66, 56, 7,117,110,105, 49, 70, 66, 57, 7,117,
-110,105, 49, 70, 66, 65, 7,117,110,105, 49, 70, 66, 66, 7,117,110,105, 49, 70, 66, 67, 7,117,110,105, 49, 70, 66, 68, 7,117,
-110,105, 49, 70, 66, 69, 7,117,110,105, 49, 70, 66, 70, 7,117,110,105, 49, 70, 67, 48, 7,117,110,105, 49, 70, 67, 49, 7,117,
-110,105, 49, 70, 67, 50, 7,117,110,105, 49, 70, 67, 51, 7,117,110,105, 49, 70, 67, 52, 7,117,110,105, 49, 70, 67, 54, 7,117,
-110,105, 49, 70, 67, 55, 7,117,110,105, 49, 70, 67, 56, 7,117,110,105, 49, 70, 67, 57, 7,117,110,105, 49, 70, 67, 65, 7,117,
-110,105, 49, 70, 67, 66, 7,117,110,105, 49, 70, 67, 67, 7,117,110,105, 49, 70, 67, 68, 7,117,110,105, 49, 70, 67, 69, 7,117,
-110,105, 49, 70, 67, 70, 7,117,110,105, 49, 70, 68, 48, 7,117,110,105, 49, 70, 68, 49, 7,117,110,105, 49, 70, 68, 50, 7,117,
-110,105, 49, 70, 68, 51, 7,117,110,105, 49, 70, 68, 54, 7,117,110,105, 49, 70, 68, 55, 7,117,110,105, 49, 70, 68, 56, 7,117,
-110,105, 49, 70, 68, 57, 7,117,110,105, 49, 70, 68, 65, 7,117,110,105, 49, 70, 68, 66, 7,117,110,105, 49, 70, 68, 68, 7,117,
-110,105, 49, 70, 68, 69, 7,117,110,105, 49, 70, 68, 70, 7,117,110,105, 49, 70, 69, 48, 7,117,110,105, 49, 70, 69, 49, 7,117,
-110,105, 49, 70, 69, 50, 7,117,110,105, 49, 70, 69, 51, 7,117,110,105, 49, 70, 69, 52, 7,117,110,105, 49, 70, 69, 53, 7,117,
-110,105, 49, 70, 69, 54, 7,117,110,105, 49, 70, 69, 55, 7,117,110,105, 49, 70, 69, 56, 7,117,110,105, 49, 70, 69, 57, 7,117,
-110,105, 49, 70, 69, 65, 7,117,110,105, 49, 70, 69, 66, 7,117,110,105, 49, 70, 69, 67, 7,117,110,105, 49, 70, 69, 68, 7,117,
-110,105, 49, 70, 69, 69, 7,117,110,105, 49, 70, 69, 70, 7,117,110,105, 49, 70, 70, 50, 7,117,110,105, 49, 70, 70, 51, 7,117,
-110,105, 49, 70, 70, 52, 7,117,110,105, 49, 70, 70, 54, 7,117,110,105, 49, 70, 70, 55, 7,117,110,105, 49, 70, 70, 56, 7,117,
-110,105, 49, 70, 70, 57, 7,117,110,105, 49, 70, 70, 65, 7,117,110,105, 49, 70, 70, 66, 7,117,110,105, 49, 70, 70, 67, 7,117,
-110,105, 49, 70, 70, 68, 7,117,110,105, 49, 70, 70, 69, 7,117,110,105, 50, 48, 48, 48, 7,117,110,105, 50, 48, 48, 49, 7,117,
-110,105, 50, 48, 48, 50, 7,117,110,105, 50, 48, 48, 51, 7,117,110,105, 50, 48, 48, 52, 7,117,110,105, 50, 48, 48, 53, 7,117,
-110,105, 50, 48, 48, 54, 7,117,110,105, 50, 48, 48, 55, 7,117,110,105, 50, 48, 48, 56, 7,117,110,105, 50, 48, 48, 57, 7,117,
-110,105, 50, 48, 48, 65, 7,117,110,105, 50, 48, 49, 48, 7,117,110,105, 50, 48, 49, 49, 10,102,105,103,117,114,101,100, 97,115,
-104, 7,117,110,105, 50, 48, 49, 53, 13,117,110,100,101,114,115, 99,111,114,101,100, 98,108, 13,113,117,111,116,101,114,101,118,
-101,114,115,101,100, 7,117,110,105, 50, 48, 49, 70, 7,117,110,105, 50, 48, 50, 51, 7,117,110,105, 50, 48, 50, 70, 7,117,110,
-105, 50, 48, 51, 49, 9,101,120, 99,108, 97,109,100, 98,108, 7,117,110,105, 50, 48, 51, 68, 7,117,110,105, 50, 48, 51, 69, 7,
-117,110,105, 50, 48, 52, 53, 7,117,110,105, 50, 48, 52, 54, 7,117,110,105, 50, 48, 52, 55, 7,117,110,105, 50, 48, 52, 56, 7,
-117,110,105, 50, 48, 52, 57, 7,117,110,105, 50, 48, 53, 70, 7,117,110,105, 50, 48, 55, 48, 7,117,110,105, 50, 48, 55, 49, 7,
-117,110,105, 50, 48, 55, 52, 7,117,110,105, 50, 48, 55, 53, 7,117,110,105, 50, 48, 55, 54, 7,117,110,105, 50, 48, 55, 55, 7,
-117,110,105, 50, 48, 55, 56, 7,117,110,105, 50, 48, 55, 57, 7,117,110,105, 50, 48, 55, 65, 7,117,110,105, 50, 48, 55, 66, 7,
-117,110,105, 50, 48, 55, 67, 7,117,110,105, 50, 48, 55, 68, 7,117,110,105, 50, 48, 55, 69, 7,117,110,105, 50, 48, 55, 70, 7,
-117,110,105, 50, 48, 56, 48, 7,117,110,105, 50, 48, 56, 49, 7,117,110,105, 50, 48, 56, 50, 7,117,110,105, 50, 48, 56, 51, 7,
-117,110,105, 50, 48, 56, 52, 7,117,110,105, 50, 48, 56, 53, 7,117,110,105, 50, 48, 56, 54, 7,117,110,105, 50, 48, 56, 55, 7,
-117,110,105, 50, 48, 56, 56, 7,117,110,105, 50, 48, 56, 57, 7,117,110,105, 50, 48, 56, 65, 7,117,110,105, 50, 48, 56, 66, 7,
-117,110,105, 50, 48, 56, 67, 7,117,110,105, 50, 48, 56, 68, 7,117,110,105, 50, 48, 56, 69, 7,117,110,105, 50, 48, 57, 48, 7,
-117,110,105, 50, 48, 57, 49, 7,117,110,105, 50, 48, 57, 50, 7,117,110,105, 50, 48, 57, 51, 7,117,110,105, 50, 48, 57, 52, 7,
-117,110,105, 50, 48, 65, 54, 4, 69,117,114,111, 7,117,110,105, 50, 48, 66, 49, 7,117,110,105, 50, 48, 66, 52, 7,117,110,105,
- 50, 48, 66, 53, 7,117,110,105, 50, 49, 48, 50, 7,117,110,105, 50, 49, 48, 69, 7,117,110,105, 50, 49, 49, 54, 7,117,110,105,
- 50, 49, 50, 54, 7,117,110,105, 50, 49, 50, 65, 7,117,110,105, 50, 49, 50, 66, 8,111,110,101,116,104,105,114,100, 9,116,119,
-111,116,104,105,114,100,115, 7,117,110,105, 50, 49, 53, 53, 7,117,110,105, 50, 49, 53, 54, 7,117,110,105, 50, 49, 53, 55, 7,
-117,110,105, 50, 49, 53, 56, 7,117,110,105, 50, 49, 53, 57, 7,117,110,105, 50, 49, 53, 65, 9,111,110,101,101,105,103,104,116,
-104, 12,116,104,114,101,101,101,105,103,104,116,104,115, 11,102,105,118,101,101,105,103,104,116,104,115, 12,115,101,118,101,110,
-101,105,103,104,116,104,115, 7,117,110,105, 50, 49, 53, 70, 9, 97,114,114,111,119,108,101,102,116, 7, 97,114,114,111,119,117,
-112, 10, 97,114,114,111,119,114,105,103,104,116, 9, 97,114,114,111,119,100,111,119,110, 9, 97,114,114,111,119, 98,111,116,104,
- 9, 97,114,114,111,119,117,112,100,110, 7,117,110,105, 50, 49, 57, 54, 7,117,110,105, 50, 49, 57, 55, 7,117,110,105, 50, 49,
- 57, 56, 7,117,110,105, 50, 49, 57, 57, 7,117,110,105, 50, 49, 57, 65, 7,117,110,105, 50, 49, 57, 66, 7,117,110,105, 50, 49,
- 57, 67, 7,117,110,105, 50, 49, 57, 68, 7,117,110,105, 50, 49, 57, 69, 7,117,110,105, 50, 49, 57, 70, 7,117,110,105, 50, 49,
- 65, 48, 7,117,110,105, 50, 49, 65, 49, 7,117,110,105, 50, 49, 65, 50, 7,117,110,105, 50, 49, 65, 51, 7,117,110,105, 50, 49,
- 65, 52, 7,117,110,105, 50, 49, 65, 53, 7,117,110,105, 50, 49, 65, 54, 7,117,110,105, 50, 49, 65, 55, 12, 97,114,114,111,119,
-117,112,100,110, 98,115,101, 7,117,110,105, 50, 49, 65, 57, 7,117,110,105, 50, 49, 65, 65, 7,117,110,105, 50, 49, 65, 66, 7,
-117,110,105, 50, 49, 65, 67, 7,117,110,105, 50, 49, 65, 68, 7,117,110,105, 50, 49, 65, 69, 7,117,110,105, 50, 49, 65, 70, 7,
-117,110,105, 50, 49, 66, 48, 7,117,110,105, 50, 49, 66, 49, 7,117,110,105, 50, 49, 66, 50, 7,117,110,105, 50, 49, 66, 51, 7,
-117,110,105, 50, 49, 66, 52, 14, 99, 97,114,114,105, 97,103,101,114,101,116,117,114,110, 7,117,110,105, 50, 49, 66, 54, 7,117,
-110,105, 50, 49, 66, 55, 7,117,110,105, 50, 49, 66, 56, 7,117,110,105, 50, 49, 66, 57, 7,117,110,105, 50, 49, 66, 65, 7,117,
-110,105, 50, 49, 66, 66, 7,117,110,105, 50, 49, 66, 67, 7,117,110,105, 50, 49, 66, 68, 7,117,110,105, 50, 49, 66, 69, 7,117,
-110,105, 50, 49, 66, 70, 7,117,110,105, 50, 49, 67, 48, 7,117,110,105, 50, 49, 67, 49, 7,117,110,105, 50, 49, 67, 50, 7,117,
-110,105, 50, 49, 67, 51, 7,117,110,105, 50, 49, 67, 52, 7,117,110,105, 50, 49, 67, 53, 7,117,110,105, 50, 49, 67, 54, 7,117,
-110,105, 50, 49, 67, 55, 7,117,110,105, 50, 49, 67, 56, 7,117,110,105, 50, 49, 67, 57, 7,117,110,105, 50, 49, 67, 65, 7,117,
-110,105, 50, 49, 67, 66, 7,117,110,105, 50, 49, 67, 67, 7,117,110,105, 50, 49, 67, 68, 7,117,110,105, 50, 49, 67, 69, 7,117,
-110,105, 50, 49, 67, 70, 12, 97,114,114,111,119,100, 98,108,108,101,102,116, 10, 97,114,114,111,119,100, 98,108,117,112, 13, 97,
-114,114,111,119,100, 98,108,114,105,103,104,116, 12, 97,114,114,111,119,100, 98,108,100,111,119,110, 12, 97,114,114,111,119,100,
- 98,108, 98,111,116,104, 7,117,110,105, 50, 49, 68, 53, 7,117,110,105, 50, 49, 68, 54, 7,117,110,105, 50, 49, 68, 55, 7,117,
-110,105, 50, 49, 68, 56, 7,117,110,105, 50, 49, 68, 57, 7,117,110,105, 50, 49, 68, 65, 7,117,110,105, 50, 49, 68, 66, 7,117,
-110,105, 50, 49, 68, 67, 7,117,110,105, 50, 49, 68, 68, 7,117,110,105, 50, 49, 68, 69, 7,117,110,105, 50, 49, 68, 70, 7,117,
-110,105, 50, 49, 69, 48, 7,117,110,105, 50, 49, 69, 49, 7,117,110,105, 50, 49, 69, 50, 7,117,110,105, 50, 49, 69, 51, 7,117,
-110,105, 50, 49, 69, 52, 7,117,110,105, 50, 49, 69, 53, 7,117,110,105, 50, 49, 69, 54, 7,117,110,105, 50, 49, 69, 55, 7,117,
-110,105, 50, 49, 69, 56, 7,117,110,105, 50, 49, 69, 57, 7,117,110,105, 50, 49, 69, 65, 7,117,110,105, 50, 49, 69, 66, 7,117,
-110,105, 50, 49, 69, 67, 7,117,110,105, 50, 49, 69, 68, 7,117,110,105, 50, 49, 69, 69, 7,117,110,105, 50, 49, 69, 70, 7,117,
-110,105, 50, 49, 70, 48, 7,117,110,105, 50, 49, 70, 49, 7,117,110,105, 50, 49, 70, 50, 7,117,110,105, 50, 49, 70, 51, 7,117,
-110,105, 50, 49, 70, 52, 7,117,110,105, 50, 49, 70, 53, 7,117,110,105, 50, 49, 70, 54, 7,117,110,105, 50, 49, 70, 55, 7,117,
-110,105, 50, 49, 70, 56, 7,117,110,105, 50, 49, 70, 57, 7,117,110,105, 50, 49, 70, 65, 7,117,110,105, 50, 49, 70, 66, 7,117,
-110,105, 50, 49, 70, 67, 7,117,110,105, 50, 49, 70, 68, 7,117,110,105, 50, 49, 70, 69, 7,117,110,105, 50, 49, 70, 70, 8,101,
-109,112,116,121,115,101,116, 8,103,114, 97,100,105,101,110,116, 7,101,108,101,109,101,110,116, 10,110,111,116,101,108,101,109,
-101,110,116, 7,117,110,105, 50, 50, 48, 65, 8,115,117, 99,104,116,104, 97,116, 7,117,110,105, 50, 50, 48, 67, 7,117,110,105,
- 50, 50, 48, 68, 7,117,110,105, 50, 50, 49, 51, 7,117,110,105, 50, 50, 49, 53, 12, 97,115,116,101,114,105,115,107,109, 97,116,
-104, 7,117,110,105, 50, 50, 49, 56, 7,117,110,105, 50, 50, 49, 57, 12,112,114,111,112,111,114,116,105,111,110, 97,108, 10,111,
-114,116,104,111,103,111,110, 97,108, 5, 97,110,103,108,101, 10,108,111,103,105, 99, 97,108, 97,110,100, 9,108,111,103,105, 99,
- 97,108,111,114, 12,105,110,116,101,114,115,101, 99,116,105,111,110, 5,117,110,105,111,110, 7,117,110,105, 50, 50, 50, 67, 7,
-117,110,105, 50, 50, 50, 68, 7,117,110,105, 50, 50, 51, 56, 7,117,110,105, 50, 50, 51, 57, 7,117,110,105, 50, 50, 51, 65, 7,
-117,110,105, 50, 50, 51, 66, 7,115,105,109,105,108, 97,114, 7,117,110,105, 50, 50, 51, 68, 7,117,110,105, 50, 50, 52, 49, 7,
-117,110,105, 50, 50, 52, 50, 7,117,110,105, 50, 50, 52, 51, 7,117,110,105, 50, 50, 52, 52, 9, 99,111,110,103,114,117,101,110,
-116, 7,117,110,105, 50, 50, 52, 54, 7,117,110,105, 50, 50, 52, 55, 7,117,110,105, 50, 50, 52, 57, 7,117,110,105, 50, 50, 52,
- 65, 7,117,110,105, 50, 50, 52, 66, 7,117,110,105, 50, 50, 52, 67, 7,117,110,105, 50, 50, 52, 68, 7,117,110,105, 50, 50, 52,
- 69, 7,117,110,105, 50, 50, 52, 70, 7,117,110,105, 50, 50, 53, 48, 7,117,110,105, 50, 50, 53, 49, 7,117,110,105, 50, 50, 53,
- 50, 7,117,110,105, 50, 50, 53, 51, 7,117,110,105, 50, 50, 53, 52, 7,117,110,105, 50, 50, 53, 53, 7,117,110,105, 50, 50, 53,
- 54, 7,117,110,105, 50, 50, 53, 55, 7,117,110,105, 50, 50, 53, 56, 7,117,110,105, 50, 50, 53, 57, 7,117,110,105, 50, 50, 53,
- 65, 7,117,110,105, 50, 50, 53, 66, 7,117,110,105, 50, 50, 53, 67, 7,117,110,105, 50, 50, 53, 68, 7,117,110,105, 50, 50, 53,
- 69, 7,117,110,105, 50, 50, 53, 70, 11,101,113,117,105,118, 97,108,101,110, 99,101, 7,117,110,105, 50, 50, 54, 50, 7,117,110,
-105, 50, 50, 54, 51, 7,117,110,105, 50, 50, 54, 54, 7,117,110,105, 50, 50, 54, 55, 7,117,110,105, 50, 50, 54, 56, 7,117,110,
-105, 50, 50, 54, 57, 7,117,110,105, 50, 50, 54, 68, 7,117,110,105, 50, 50, 54, 69, 7,117,110,105, 50, 50, 54, 70, 7,117,110,
-105, 50, 50, 55, 48, 7,117,110,105, 50, 50, 55, 49, 7,117,110,105, 50, 50, 55, 50, 7,117,110,105, 50, 50, 55, 51, 7,117,110,
-105, 50, 50, 55, 52, 7,117,110,105, 50, 50, 55, 53, 7,117,110,105, 50, 50, 55, 54, 7,117,110,105, 50, 50, 55, 55, 7,117,110,
-105, 50, 50, 55, 56, 7,117,110,105, 50, 50, 55, 57, 7,117,110,105, 50, 50, 55, 65, 7,117,110,105, 50, 50, 55, 66, 7,117,110,
-105, 50, 50, 55, 67, 7,117,110,105, 50, 50, 55, 68, 7,117,110,105, 50, 50, 55, 69, 7,117,110,105, 50, 50, 55, 70, 7,117,110,
-105, 50, 50, 56, 48, 7,117,110,105, 50, 50, 56, 49, 12,112,114,111,112,101,114,115,117, 98,115,101,116, 14,112,114,111,112,101,
-114,115,117,112,101,114,115,101,116, 9,110,111,116,115,117, 98,115,101,116, 7,117,110,105, 50, 50, 56, 53, 12,114,101,102,108,
-101,120,115,117, 98,115,101,116, 14,114,101,102,108,101,120,115,117,112,101,114,115,101,116, 7,117,110,105, 50, 50, 56, 56, 7,
-117,110,105, 50, 50, 56, 57, 7,117,110,105, 50, 50, 56, 65, 7,117,110,105, 50, 50, 56, 66, 7,117,110,105, 50, 50, 56, 70, 7,
-117,110,105, 50, 50, 57, 48, 7,117,110,105, 50, 50, 57, 49, 7,117,110,105, 50, 50, 57, 50, 10, 99,105,114, 99,108,101,112,108,
-117,115, 7,117,110,105, 50, 50, 57, 54, 14, 99,105,114, 99,108,101,109,117,108,116,105,112,108,121, 7,117,110,105, 50, 50, 57,
- 56, 7,117,110,105, 50, 50, 57, 57, 7,117,110,105, 50, 50, 57, 65, 7,117,110,105, 50, 50, 57, 66, 7,117,110,105, 50, 50, 57,
- 67, 7,117,110,105, 50, 50, 57, 68, 7,117,110,105, 50, 50, 57, 69, 7,117,110,105, 50, 50, 57, 70, 7,117,110,105, 50, 50, 65,
- 48, 7,117,110,105, 50, 50, 65, 49, 7,100,111,116,109, 97,116,104, 7,117,110,105, 50, 50, 67, 54, 7,117,110,105, 50, 50, 67,
- 68, 7,117,110,105, 50, 50, 68, 65, 7,117,110,105, 50, 50, 68, 66, 7,117,110,105, 50, 50, 68, 67, 7,117,110,105, 50, 50, 68,
- 68, 7,117,110,105, 50, 50, 68, 69, 7,117,110,105, 50, 50, 68, 70, 7,117,110,105, 50, 50, 69, 48, 7,117,110,105, 50, 50, 69,
- 49, 7,117,110,105, 50, 50, 69, 50, 7,117,110,105, 50, 50, 69, 51, 7,117,110,105, 50, 50, 69, 52, 7,117,110,105, 50, 50, 69,
- 53, 7,117,110,105, 50, 50, 69, 54, 7,117,110,105, 50, 50, 69, 55, 7,117,110,105, 50, 50, 69, 56, 7,117,110,105, 50, 50, 69,
- 57, 7,117,110,105, 50, 50, 69, 70, 7,117,110,105, 50, 51, 48, 48, 7,117,110,105, 50, 51, 48, 49, 5,104,111,117,115,101, 7,
-117,110,105, 50, 51, 48, 51, 7,117,110,105, 50, 51, 48, 52, 7,117,110,105, 50, 51, 48, 53, 7,117,110,105, 50, 51, 48, 54, 7,
-117,110,105, 50, 51, 48, 56, 7,117,110,105, 50, 51, 48, 57, 7,117,110,105, 50, 51, 48, 65, 7,117,110,105, 50, 51, 48, 66, 7,
-117,110,105, 50, 51, 48, 67, 7,117,110,105, 50, 51, 48, 68, 7,117,110,105, 50, 51, 48, 69, 7,117,110,105, 50, 51, 48, 70, 13,
-114,101,118,108,111,103,105, 99, 97,108,110,111,116, 7,117,110,105, 50, 51, 49, 49, 7,117,110,105, 50, 51, 49, 50, 7,117,110,
-105, 50, 51, 49, 51, 7,117,110,105, 50, 51, 49, 52, 7,117,110,105, 50, 51, 49, 53, 7,117,110,105, 50, 51, 49, 56, 7,117,110,
-105, 50, 51, 49, 57, 7,117,110,105, 50, 51, 49, 67, 7,117,110,105, 50, 51, 49, 68, 7,117,110,105, 50, 51, 49, 69, 7,117,110,
-105, 50, 51, 49, 70, 10,105,110,116,101,103,114, 97,108,116,112, 10,105,110,116,101,103,114, 97,108, 98,116, 7,117,110,105, 50,
- 51, 50, 53, 7,117,110,105, 50, 51, 50, 54, 7,117,110,105, 50, 51, 50, 55, 7,117,110,105, 50, 51, 50, 56, 7,117,110,105, 50,
- 51, 50, 66, 7,117,110,105, 50, 51, 51, 53, 7,117,110,105, 50, 51, 51, 55, 7,117,110,105, 50, 51, 51, 56, 7,117,110,105, 50,
- 51, 51, 57, 7,117,110,105, 50, 51, 51, 65, 7,117,110,105, 50, 51, 51, 66, 7,117,110,105, 50, 51, 51, 67, 7,117,110,105, 50,
- 51, 51, 68, 7,117,110,105, 50, 51, 51, 69, 7,117,110,105, 50, 51, 52, 49, 7,117,110,105, 50, 51, 52, 50, 7,117,110,105, 50,
- 51, 52, 51, 7,117,110,105, 50, 51, 52, 52, 7,117,110,105, 50, 51, 52, 55, 7,117,110,105, 50, 51, 52, 56, 7,117,110,105, 50,
- 51, 52, 57, 7,117,110,105, 50, 51, 52, 66, 7,117,110,105, 50, 51, 52, 67, 7,117,110,105, 50, 51, 52, 68, 7,117,110,105, 50,
- 51, 53, 48, 7,117,110,105, 50, 51, 53, 50, 7,117,110,105, 50, 51, 53, 51, 7,117,110,105, 50, 51, 53, 52, 7,117,110,105, 50,
- 51, 53, 55, 7,117,110,105, 50, 51, 53, 56, 7,117,110,105, 50, 51, 53, 57, 7,117,110,105, 50, 51, 53, 65, 7,117,110,105, 50,
- 51, 53, 66, 7,117,110,105, 50, 51, 53, 67, 7,117,110,105, 50, 51, 53, 69, 7,117,110,105, 50, 51, 53, 70, 7,117,110,105, 50,
- 51, 54, 48, 7,117,110,105, 50, 51, 54, 51, 7,117,110,105, 50, 51, 54, 52, 7,117,110,105, 50, 51, 54, 53, 7,117,110,105, 50,
- 51, 54, 56, 7,117,110,105, 50, 51, 54, 57, 7,117,110,105, 50, 51, 54, 66, 7,117,110,105, 50, 51, 54, 67, 7,117,110,105, 50,
- 51, 54, 68, 7,117,110,105, 50, 51, 54, 69, 7,117,110,105, 50, 51, 54, 70, 7,117,110,105, 50, 51, 55, 48, 7,117,110,105, 50,
- 51, 55, 51, 7,117,110,105, 50, 51, 55, 52, 7,117,110,105, 50, 51, 55, 53, 7,117,110,105, 50, 51, 55, 54, 7,117,110,105, 50,
- 51, 55, 55, 7,117,110,105, 50, 51, 55, 56, 7,117,110,105, 50, 51, 55, 57, 7,117,110,105, 50, 51, 55, 65, 7,117,110,105, 50,
- 51, 55, 68, 7,117,110,105, 50, 51, 56, 48, 7,117,110,105, 50, 51, 56, 49, 7,117,110,105, 50, 51, 56, 50, 7,117,110,105, 50,
- 51, 56, 51, 7,117,110,105, 50, 51, 56, 56, 7,117,110,105, 50, 51, 56, 57, 7,117,110,105, 50, 51, 56, 65, 7,117,110,105, 50,
- 51, 56, 66, 7,117,110,105, 50, 51, 57, 53, 7,117,110,105, 50, 51, 57, 66, 7,117,110,105, 50, 51, 57, 67, 7,117,110,105, 50,
- 51, 57, 68, 7,117,110,105, 50, 51, 57, 69, 7,117,110,105, 50, 51, 57, 70, 7,117,110,105, 50, 51, 65, 48, 7,117,110,105, 50,
- 51, 65, 49, 7,117,110,105, 50, 51, 65, 50, 7,117,110,105, 50, 51, 65, 51, 7,117,110,105, 50, 51, 65, 52, 7,117,110,105, 50,
- 51, 65, 53, 7,117,110,105, 50, 51, 65, 54, 7,117,110,105, 50, 51, 65, 55, 7,117,110,105, 50, 51, 65, 56, 7,117,110,105, 50,
- 51, 65, 57, 7,117,110,105, 50, 51, 65, 65, 7,117,110,105, 50, 51, 65, 66, 7,117,110,105, 50, 51, 65, 67, 7,117,110,105, 50,
- 51, 65, 68, 7,117,110,105, 50, 51, 65, 69, 7,117,110,105, 50, 51, 67, 69, 7,117,110,105, 50, 51, 67, 70, 7,117,110,105, 50,
- 52, 50, 51, 8, 83, 70, 49, 48, 48, 48, 48, 48, 7,117,110,105, 50, 53, 48, 49, 8, 83, 70, 49, 49, 48, 48, 48, 48, 7,117,110,
-105, 50, 53, 48, 51, 7,117,110,105, 50, 53, 48, 52, 7,117,110,105, 50, 53, 48, 53, 7,117,110,105, 50, 53, 48, 54, 7,117,110,
-105, 50, 53, 48, 55, 7,117,110,105, 50, 53, 48, 56, 7,117,110,105, 50, 53, 48, 57, 7,117,110,105, 50, 53, 48, 65, 7,117,110,
-105, 50, 53, 48, 66, 8, 83, 70, 48, 49, 48, 48, 48, 48, 7,117,110,105, 50, 53, 48, 68, 7,117,110,105, 50, 53, 48, 69, 7,117,
-110,105, 50, 53, 48, 70, 8, 83, 70, 48, 51, 48, 48, 48, 48, 7,117,110,105, 50, 53, 49, 49, 7,117,110,105, 50, 53, 49, 50, 7,
-117,110,105, 50, 53, 49, 51, 8, 83, 70, 48, 50, 48, 48, 48, 48, 7,117,110,105, 50, 53, 49, 53, 7,117,110,105, 50, 53, 49, 54,
- 7,117,110,105, 50, 53, 49, 55, 8, 83, 70, 48, 52, 48, 48, 48, 48, 7,117,110,105, 50, 53, 49, 57, 7,117,110,105, 50, 53, 49,
- 65, 7,117,110,105, 50, 53, 49, 66, 8, 83, 70, 48, 56, 48, 48, 48, 48, 7,117,110,105, 50, 53, 49, 68, 7,117,110,105, 50, 53,
- 49, 69, 7,117,110,105, 50, 53, 49, 70, 7,117,110,105, 50, 53, 50, 48, 7,117,110,105, 50, 53, 50, 49, 7,117,110,105, 50, 53,
- 50, 50, 7,117,110,105, 50, 53, 50, 51, 8, 83, 70, 48, 57, 48, 48, 48, 48, 7,117,110,105, 50, 53, 50, 53, 7,117,110,105, 50,
- 53, 50, 54, 7,117,110,105, 50, 53, 50, 55, 7,117,110,105, 50, 53, 50, 56, 7,117,110,105, 50, 53, 50, 57, 7,117,110,105, 50,
- 53, 50, 65, 7,117,110,105, 50, 53, 50, 66, 8, 83, 70, 48, 54, 48, 48, 48, 48, 7,117,110,105, 50, 53, 50, 68, 7,117,110,105,
- 50, 53, 50, 69, 7,117,110,105, 50, 53, 50, 70, 7,117,110,105, 50, 53, 51, 48, 7,117,110,105, 50, 53, 51, 49, 7,117,110,105,
- 50, 53, 51, 50, 7,117,110,105, 50, 53, 51, 51, 8, 83, 70, 48, 55, 48, 48, 48, 48, 7,117,110,105, 50, 53, 51, 53, 7,117,110,
-105, 50, 53, 51, 54, 7,117,110,105, 50, 53, 51, 55, 7,117,110,105, 50, 53, 51, 56, 7,117,110,105, 50, 53, 51, 57, 7,117,110,
-105, 50, 53, 51, 65, 7,117,110,105, 50, 53, 51, 66, 8, 83, 70, 48, 53, 48, 48, 48, 48, 7,117,110,105, 50, 53, 51, 68, 7,117,
-110,105, 50, 53, 51, 69, 7,117,110,105, 50, 53, 51, 70, 7,117,110,105, 50, 53, 52, 48, 7,117,110,105, 50, 53, 52, 49, 7,117,
-110,105, 50, 53, 52, 50, 7,117,110,105, 50, 53, 52, 51, 7,117,110,105, 50, 53, 52, 52, 7,117,110,105, 50, 53, 52, 53, 7,117,
-110,105, 50, 53, 52, 54, 7,117,110,105, 50, 53, 52, 55, 7,117,110,105, 50, 53, 52, 56, 7,117,110,105, 50, 53, 52, 57, 7,117,
-110,105, 50, 53, 52, 65, 7,117,110,105, 50, 53, 52, 66, 7,117,110,105, 50, 53, 52, 67, 7,117,110,105, 50, 53, 52, 68, 7,117,
-110,105, 50, 53, 52, 69, 7,117,110,105, 50, 53, 52, 70, 8, 83, 70, 52, 51, 48, 48, 48, 48, 8, 83, 70, 50, 52, 48, 48, 48, 48,
- 8, 83, 70, 53, 49, 48, 48, 48, 48, 8, 83, 70, 53, 50, 48, 48, 48, 48, 8, 83, 70, 51, 57, 48, 48, 48, 48, 8, 83, 70, 50, 50,
- 48, 48, 48, 48, 8, 83, 70, 50, 49, 48, 48, 48, 48, 8, 83, 70, 50, 53, 48, 48, 48, 48, 8, 83, 70, 53, 48, 48, 48, 48, 48, 8,
- 83, 70, 52, 57, 48, 48, 48, 48, 8, 83, 70, 51, 56, 48, 48, 48, 48, 8, 83, 70, 50, 56, 48, 48, 48, 48, 8, 83, 70, 50, 55, 48,
- 48, 48, 48, 8, 83, 70, 50, 54, 48, 48, 48, 48, 8, 83, 70, 51, 54, 48, 48, 48, 48, 8, 83, 70, 51, 55, 48, 48, 48, 48, 8, 83,
- 70, 52, 50, 48, 48, 48, 48, 8, 83, 70, 49, 57, 48, 48, 48, 48, 8, 83, 70, 50, 48, 48, 48, 48, 48, 8, 83, 70, 50, 51, 48, 48,
- 48, 48, 8, 83, 70, 52, 55, 48, 48, 48, 48, 8, 83, 70, 52, 56, 48, 48, 48, 48, 8, 83, 70, 52, 49, 48, 48, 48, 48, 8, 83, 70,
- 52, 53, 48, 48, 48, 48, 8, 83, 70, 52, 54, 48, 48, 48, 48, 8, 83, 70, 52, 48, 48, 48, 48, 48, 8, 83, 70, 53, 52, 48, 48, 48,
- 48, 8, 83, 70, 53, 51, 48, 48, 48, 48, 8, 83, 70, 52, 52, 48, 48, 48, 48, 7,117,110,105, 50, 53, 54, 68, 7,117,110,105, 50,
- 53, 54, 69, 7,117,110,105, 50, 53, 54, 70, 7,117,110,105, 50, 53, 55, 48, 7,117,110,105, 50, 53, 55, 49, 7,117,110,105, 50,
- 53, 55, 50, 7,117,110,105, 50, 53, 55, 51, 7,117,110,105, 50, 53, 55, 52, 7,117,110,105, 50, 53, 55, 53, 7,117,110,105, 50,
- 53, 55, 54, 7,117,110,105, 50, 53, 55, 55, 7,117,110,105, 50, 53, 55, 56, 7,117,110,105, 50, 53, 55, 57, 7,117,110,105, 50,
- 53, 55, 65, 7,117,110,105, 50, 53, 55, 66, 7,117,110,105, 50, 53, 55, 67, 7,117,110,105, 50, 53, 55, 68, 7,117,110,105, 50,
- 53, 55, 69, 7,117,110,105, 50, 53, 55, 70, 7,117,112, 98,108,111, 99,107, 7,117,110,105, 50, 53, 56, 49, 7,117,110,105, 50,
- 53, 56, 50, 7,117,110,105, 50, 53, 56, 51, 7,100,110, 98,108,111, 99,107, 7,117,110,105, 50, 53, 56, 53, 7,117,110,105, 50,
- 53, 56, 54, 7,117,110,105, 50, 53, 56, 55, 5, 98,108,111, 99,107, 7,117,110,105, 50, 53, 56, 57, 7,117,110,105, 50, 53, 56,
- 65, 7,117,110,105, 50, 53, 56, 66, 7,108,102, 98,108,111, 99,107, 7,117,110,105, 50, 53, 56, 68, 7,117,110,105, 50, 53, 56,
- 69, 7,117,110,105, 50, 53, 56, 70, 7,114,116, 98,108,111, 99,107, 7,108,116,115,104, 97,100,101, 5,115,104, 97,100,101, 7,
-100,107,115,104, 97,100,101, 7,117,110,105, 50, 53, 57, 52, 7,117,110,105, 50, 53, 57, 53, 7,117,110,105, 50, 53, 57, 54, 7,
-117,110,105, 50, 53, 57, 55, 7,117,110,105, 50, 53, 57, 56, 7,117,110,105, 50, 53, 57, 57, 7,117,110,105, 50, 53, 57, 65, 7,
-117,110,105, 50, 53, 57, 66, 7,117,110,105, 50, 53, 57, 67, 7,117,110,105, 50, 53, 57, 68, 7,117,110,105, 50, 53, 57, 69, 7,
-117,110,105, 50, 53, 57, 70, 9,102,105,108,108,101,100, 98,111,120, 6, 72, 50, 50, 48, 55, 51, 7,117,110,105, 50, 53, 65, 50,
- 7,117,110,105, 50, 53, 65, 51, 7,117,110,105, 50, 53, 65, 52, 7,117,110,105, 50, 53, 65, 53, 7,117,110,105, 50, 53, 65, 54,
- 7,117,110,105, 50, 53, 65, 55, 7,117,110,105, 50, 53, 65, 56, 7,117,110,105, 50, 53, 65, 57, 6, 72, 49, 56, 53, 52, 51, 6,
- 72, 49, 56, 53, 53, 49, 10,102,105,108,108,101,100,114,101, 99,116, 7,117,110,105, 50, 53, 65, 68, 7,117,110,105, 50, 53, 65,
- 69, 7,117,110,105, 50, 53, 65, 70, 7,117,110,105, 50, 53, 66, 48, 7,117,110,105, 50, 53, 66, 49, 7,116,114,105, 97,103,117,
-112, 7,117,110,105, 50, 53, 66, 51, 7,117,110,105, 50, 53, 66, 52, 7,117,110,105, 50, 53, 66, 53, 7,117,110,105, 50, 53, 66,
- 54, 7,117,110,105, 50, 53, 66, 55, 7,117,110,105, 50, 53, 66, 56, 7,117,110,105, 50, 53, 66, 57, 7,116,114,105, 97,103,114,
-116, 7,117,110,105, 50, 53, 66, 66, 7,116,114,105, 97,103,100,110, 7,117,110,105, 50, 53, 66, 68, 7,117,110,105, 50, 53, 66,
- 69, 7,117,110,105, 50, 53, 66, 70, 7,117,110,105, 50, 53, 67, 48, 7,117,110,105, 50, 53, 67, 49, 7,117,110,105, 50, 53, 67,
- 50, 7,117,110,105, 50, 53, 67, 51, 7,116,114,105, 97,103,108,102, 7,117,110,105, 50, 53, 67, 53, 7,117,110,105, 50, 53, 67,
- 54, 7,117,110,105, 50, 53, 67, 55, 7,117,110,105, 50, 53, 67, 56, 7,117,110,105, 50, 53, 67, 57, 6, 99,105,114, 99,108,101,
- 7,117,110,105, 50, 53, 67, 67, 7,117,110,105, 50, 53, 67, 68, 7,117,110,105, 50, 53, 67, 69, 6, 72, 49, 56, 53, 51, 51, 7,
-117,110,105, 50, 53, 68, 48, 7,117,110,105, 50, 53, 68, 49, 7,117,110,105, 50, 53, 68, 50, 7,117,110,105, 50, 53, 68, 51, 7,
-117,110,105, 50, 53, 68, 52, 7,117,110,105, 50, 53, 68, 53, 7,117,110,105, 50, 53, 68, 54, 7,117,110,105, 50, 53, 68, 55, 9,
-105,110,118, 98,117,108,108,101,116, 9,105,110,118, 99,105,114, 99,108,101, 7,117,110,105, 50, 53, 68, 65, 7,117,110,105, 50,
- 53, 68, 66, 7,117,110,105, 50, 53, 68, 67, 7,117,110,105, 50, 53, 68, 68, 7,117,110,105, 50, 53, 68, 69, 7,117,110,105, 50,
- 53, 68, 70, 7,117,110,105, 50, 53, 69, 48, 7,117,110,105, 50, 53, 69, 49, 7,117,110,105, 50, 53, 69, 50, 7,117,110,105, 50,
- 53, 69, 51, 7,117,110,105, 50, 53, 69, 52, 7,117,110,105, 50, 53, 69, 53, 10,111,112,101,110, 98,117,108,108,101,116, 7,117,
-110,105, 50, 53, 69, 55, 7,117,110,105, 50, 53, 69, 56, 7,117,110,105, 50, 53, 69, 57, 7,117,110,105, 50, 53, 69, 65, 7,117,
-110,105, 50, 53, 69, 66, 7,117,110,105, 50, 53, 69, 67, 7,117,110,105, 50, 53, 69, 68, 7,117,110,105, 50, 53, 69, 69, 7,117,
-110,105, 50, 53, 69, 70, 7,117,110,105, 50, 53, 70, 48, 7,117,110,105, 50, 53, 70, 49, 7,117,110,105, 50, 53, 70, 50, 7,117,
-110,105, 50, 53, 70, 51, 7,117,110,105, 50, 53, 70, 52, 7,117,110,105, 50, 53, 70, 53, 7,117,110,105, 50, 53, 70, 54, 7,117,
-110,105, 50, 53, 70, 55, 7,117,110,105, 50, 53, 70, 56, 7,117,110,105, 50, 53, 70, 57, 7,117,110,105, 50, 53, 70, 65, 7,117,
-110,105, 50, 53, 70, 66, 7,117,110,105, 50, 53, 70, 67, 7,117,110,105, 50, 53, 70, 68, 7,117,110,105, 50, 53, 70, 69, 7,117,
-110,105, 50, 53, 70, 70, 7,117,110,105, 50, 54, 48, 48, 7,117,110,105, 50, 54, 48, 49, 7,117,110,105, 50, 54, 48, 50, 7,117,
-110,105, 50, 54, 48, 51, 7,117,110,105, 50, 54, 48, 52, 7,117,110,105, 50, 54, 48, 53, 7,117,110,105, 50, 54, 48, 54, 7,117,
-110,105, 50, 54, 48, 55, 7,117,110,105, 50, 54, 48, 56, 7,117,110,105, 50, 54, 48, 57, 7,117,110,105, 50, 54, 48, 65, 7,117,
-110,105, 50, 54, 48, 66, 7,117,110,105, 50, 54, 48, 67, 7,117,110,105, 50, 54, 48, 68, 7,117,110,105, 50, 54, 48, 69, 7,117,
-110,105, 50, 54, 48, 70, 7,117,110,105, 50, 54, 49, 48, 7,117,110,105, 50, 54, 49, 49, 7,117,110,105, 50, 54, 49, 50, 7,117,
-110,105, 50, 54, 49, 51, 7,117,110,105, 50, 54, 49, 52, 7,117,110,105, 50, 54, 49, 53, 7,117,110,105, 50, 54, 49, 54, 7,117,
-110,105, 50, 54, 49, 55, 7,117,110,105, 50, 54, 49, 56, 7,117,110,105, 50, 54, 49, 57, 7,117,110,105, 50, 54, 49, 65, 7,117,
-110,105, 50, 54, 49, 66, 7,117,110,105, 50, 54, 49, 67, 7,117,110,105, 50, 54, 49, 68, 7,117,110,105, 50, 54, 49, 69, 7,117,
-110,105, 50, 54, 49, 70, 7,117,110,105, 50, 54, 50, 48, 7,117,110,105, 50, 54, 50, 49, 7,117,110,105, 50, 54, 50, 50, 7,117,
-110,105, 50, 54, 50, 51, 7,117,110,105, 50, 54, 50, 52, 7,117,110,105, 50, 54, 50, 53, 7,117,110,105, 50, 54, 50, 54, 7,117,
-110,105, 50, 54, 50, 55, 7,117,110,105, 50, 54, 50, 56, 7,117,110,105, 50, 54, 50, 57, 7,117,110,105, 50, 54, 50, 65, 7,117,
-110,105, 50, 54, 50, 66, 7,117,110,105, 50, 54, 50, 67, 7,117,110,105, 50, 54, 50, 68, 7,117,110,105, 50, 54, 50, 69, 7,117,
-110,105, 50, 54, 50, 70, 7,117,110,105, 50, 54, 51, 56, 7,117,110,105, 50, 54, 51, 57, 9,115,109,105,108,101,102, 97, 99,101,
- 12,105,110,118,115,109,105,108,101,102, 97, 99,101, 3,115,117,110, 7,117,110,105, 50, 54, 51, 68, 7,117,110,105, 50, 54, 51,
- 69, 7,117,110,105, 50, 54, 51, 70, 6,102,101,109, 97,108,101, 7,117,110,105, 50, 54, 52, 49, 4,109, 97,108,101, 7,117,110,
-105, 50, 54, 52, 51, 7,117,110,105, 50, 54, 52, 52, 7,117,110,105, 50, 54, 52, 53, 7,117,110,105, 50, 54, 52, 54, 7,117,110,
-105, 50, 54, 52, 55, 7,117,110,105, 50, 54, 52, 56, 7,117,110,105, 50, 54, 52, 57, 7,117,110,105, 50, 54, 52, 65, 7,117,110,
-105, 50, 54, 52, 66, 7,117,110,105, 50, 54, 52, 67, 7,117,110,105, 50, 54, 52, 68, 7,117,110,105, 50, 54, 52, 69, 7,117,110,
-105, 50, 54, 52, 70, 7,117,110,105, 50, 54, 53, 48, 7,117,110,105, 50, 54, 53, 49, 7,117,110,105, 50, 54, 53, 50, 7,117,110,
-105, 50, 54, 53, 51, 7,117,110,105, 50, 54, 53, 52, 7,117,110,105, 50, 54, 53, 53, 7,117,110,105, 50, 54, 53, 54, 7,117,110,
-105, 50, 54, 53, 55, 7,117,110,105, 50, 54, 53, 56, 7,117,110,105, 50, 54, 53, 57, 7,117,110,105, 50, 54, 53, 65, 7,117,110,
-105, 50, 54, 53, 66, 7,117,110,105, 50, 54, 53, 67, 7,117,110,105, 50, 54, 53, 68, 7,117,110,105, 50, 54, 53, 69, 7,117,110,
-105, 50, 54, 53, 70, 5,115,112, 97,100,101, 7,117,110,105, 50, 54, 54, 49, 7,117,110,105, 50, 54, 54, 50, 4, 99,108,117, 98,
- 7,117,110,105, 50, 54, 54, 52, 5,104,101, 97,114,116, 7,100,105, 97,109,111,110,100, 7,117,110,105, 50, 54, 54, 55, 7,117,
-110,105, 50, 54, 54, 56, 7,117,110,105, 50, 54, 54, 57, 11,109,117,115,105, 99, 97,108,110,111,116,101, 14,109,117,115,105, 99,
- 97,108,110,111,116,101,100, 98,108, 7,117,110,105, 50, 54, 54, 67, 7,117,110,105, 50, 54, 54, 68, 7,117,110,105, 50, 54, 54,
- 69, 7,117,110,105, 50, 54, 54, 70, 7,117,110,105, 50, 54, 55, 48, 7,117,110,105, 50, 54, 55, 49, 7,117,110,105, 50, 54, 55,
- 50, 7,117,110,105, 50, 54, 55, 51, 7,117,110,105, 50, 54, 55, 52, 7,117,110,105, 50, 54, 55, 53, 7,117,110,105, 50, 54, 55,
- 54, 7,117,110,105, 50, 54, 55, 55, 7,117,110,105, 50, 54, 55, 56, 7,117,110,105, 50, 54, 55, 57, 7,117,110,105, 50, 54, 55,
- 65, 7,117,110,105, 50, 54, 55, 66, 7,117,110,105, 50, 54, 55, 67, 7,117,110,105, 50, 54, 55, 68, 7,117,110,105, 50, 54, 55,
- 69, 7,117,110,105, 50, 54, 55, 70, 7,117,110,105, 50, 54, 56, 48, 7,117,110,105, 50, 54, 56, 49, 7,117,110,105, 50, 54, 56,
- 50, 7,117,110,105, 50, 54, 56, 51, 7,117,110,105, 50, 54, 56, 52, 7,117,110,105, 50, 54, 56, 53, 7,117,110,105, 50, 54, 56,
- 54, 7,117,110,105, 50, 54, 56, 55, 7,117,110,105, 50, 54, 56, 56, 7,117,110,105, 50, 54, 56, 57, 7,117,110,105, 50, 54, 56,
- 65, 7,117,110,105, 50, 54, 56, 66, 7,117,110,105, 50, 54, 57, 48, 7,117,110,105, 50, 54, 57, 49, 7,117,110,105, 50, 54, 57,
- 50, 7,117,110,105, 50, 54, 57, 51, 7,117,110,105, 50, 54, 57, 52, 7,117,110,105, 50, 54, 57, 53, 7,117,110,105, 50, 54, 57,
- 54, 7,117,110,105, 50, 54, 57, 55, 7,117,110,105, 50, 54, 57, 56, 7,117,110,105, 50, 54, 57, 57, 7,117,110,105, 50, 54, 57,
- 65, 7,117,110,105, 50, 54, 57, 66, 7,117,110,105, 50, 54, 57, 67, 7,117,110,105, 50, 54, 65, 48, 7,117,110,105, 50, 54, 65,
- 49, 7,117,110,105, 50, 54, 66, 48, 7,117,110,105, 50, 54, 66, 49, 7,117,110,105, 50, 55, 48, 49, 7,117,110,105, 50, 55, 48,
- 50, 7,117,110,105, 50, 55, 48, 51, 7,117,110,105, 50, 55, 48, 52, 7,117,110,105, 50, 55, 48, 54, 7,117,110,105, 50, 55, 48,
- 55, 7,117,110,105, 50, 55, 48, 56, 7,117,110,105, 50, 55, 48, 57, 7,117,110,105, 50, 55, 48, 67, 7,117,110,105, 50, 55, 48,
- 68, 7,117,110,105, 50, 55, 48, 69, 7,117,110,105, 50, 55, 48, 70, 7,117,110,105, 50, 55, 49, 48, 7,117,110,105, 50, 55, 49,
- 49, 7,117,110,105, 50, 55, 49, 50, 7,117,110,105, 50, 55, 49, 51, 7,117,110,105, 50, 55, 49, 52, 7,117,110,105, 50, 55, 49,
- 53, 7,117,110,105, 50, 55, 49, 54, 7,117,110,105, 50, 55, 49, 55, 7,117,110,105, 50, 55, 49, 56, 7,117,110,105, 50, 55, 49,
- 57, 7,117,110,105, 50, 55, 49, 65, 7,117,110,105, 50, 55, 49, 66, 7,117,110,105, 50, 55, 49, 67, 7,117,110,105, 50, 55, 49,
- 68, 7,117,110,105, 50, 55, 49, 69, 7,117,110,105, 50, 55, 49, 70, 7,117,110,105, 50, 55, 50, 48, 7,117,110,105, 50, 55, 50,
- 49, 7,117,110,105, 50, 55, 50, 50, 7,117,110,105, 50, 55, 50, 51, 7,117,110,105, 50, 55, 50, 52, 7,117,110,105, 50, 55, 50,
- 53, 7,117,110,105, 50, 55, 50, 54, 7,117,110,105, 50, 55, 50, 55, 7,117,110,105, 50, 55, 50, 57, 7,117,110,105, 50, 55, 50,
- 65, 7,117,110,105, 50, 55, 50, 66, 7,117,110,105, 50, 55, 50, 67, 7,117,110,105, 50, 55, 50, 68, 7,117,110,105, 50, 55, 50,
- 69, 7,117,110,105, 50, 55, 50, 70, 7,117,110,105, 50, 55, 51, 48, 7,117,110,105, 50, 55, 51, 49, 7,117,110,105, 50, 55, 51,
- 50, 7,117,110,105, 50, 55, 51, 51, 7,117,110,105, 50, 55, 51, 52, 7,117,110,105, 50, 55, 51, 53, 7,117,110,105, 50, 55, 51,
- 54, 7,117,110,105, 50, 55, 51, 55, 7,117,110,105, 50, 55, 51, 56, 7,117,110,105, 50, 55, 51, 57, 7,117,110,105, 50, 55, 51,
- 65, 7,117,110,105, 50, 55, 51, 66, 7,117,110,105, 50, 55, 51, 67, 7,117,110,105, 50, 55, 51, 68, 7,117,110,105, 50, 55, 51,
- 69, 7,117,110,105, 50, 55, 51, 70, 7,117,110,105, 50, 55, 52, 48, 7,117,110,105, 50, 55, 52, 49, 7,117,110,105, 50, 55, 52,
- 50, 7,117,110,105, 50, 55, 52, 51, 7,117,110,105, 50, 55, 52, 52, 7,117,110,105, 50, 55, 52, 53, 7,117,110,105, 50, 55, 52,
- 54, 7,117,110,105, 50, 55, 52, 55, 7,117,110,105, 50, 55, 52, 56, 7,117,110,105, 50, 55, 52, 57, 7,117,110,105, 50, 55, 52,
- 65, 7,117,110,105, 50, 55, 52, 66, 7,117,110,105, 50, 55, 52, 68, 7,117,110,105, 50, 55, 52, 70, 7,117,110,105, 50, 55, 53,
- 48, 7,117,110,105, 50, 55, 53, 49, 7,117,110,105, 50, 55, 53, 50, 7,117,110,105, 50, 55, 53, 54, 7,117,110,105, 50, 55, 53,
- 56, 7,117,110,105, 50, 55, 53, 57, 7,117,110,105, 50, 55, 53, 65, 7,117,110,105, 50, 55, 53, 66, 7,117,110,105, 50, 55, 53,
- 67, 7,117,110,105, 50, 55, 53, 68, 7,117,110,105, 50, 55, 53, 69, 7,117,110,105, 50, 55, 54, 49, 7,117,110,105, 50, 55, 54,
- 50, 7,117,110,105, 50, 55, 54, 51, 7,117,110,105, 50, 55, 54, 52, 7,117,110,105, 50, 55, 54, 53, 7,117,110,105, 50, 55, 54,
- 54, 7,117,110,105, 50, 55, 54, 55, 7,117,110,105, 50, 55, 54, 56, 7,117,110,105, 50, 55, 54, 57, 7,117,110,105, 50, 55, 54,
- 65, 7,117,110,105, 50, 55, 54, 66, 7,117,110,105, 50, 55, 54, 67, 7,117,110,105, 50, 55, 54, 68, 7,117,110,105, 50, 55, 54,
- 69, 7,117,110,105, 50, 55, 54, 70, 7,117,110,105, 50, 55, 55, 48, 7,117,110,105, 50, 55, 55, 49, 7,117,110,105, 50, 55, 55,
- 50, 7,117,110,105, 50, 55, 55, 51, 7,117,110,105, 50, 55, 55, 52, 7,117,110,105, 50, 55, 55, 53, 7,117,110,105, 50, 55, 57,
- 52, 7,117,110,105, 50, 55, 57, 56, 7,117,110,105, 50, 55, 57, 57, 7,117,110,105, 50, 55, 57, 65, 7,117,110,105, 50, 55, 57,
- 66, 7,117,110,105, 50, 55, 57, 67, 7,117,110,105, 50, 55, 57, 68, 7,117,110,105, 50, 55, 57, 69, 7,117,110,105, 50, 55, 57,
- 70, 7,117,110,105, 50, 55, 65, 48, 7,117,110,105, 50, 55, 65, 49, 7,117,110,105, 50, 55, 65, 50, 7,117,110,105, 50, 55, 65,
- 51, 7,117,110,105, 50, 55, 65, 52, 7,117,110,105, 50, 55, 65, 53, 7,117,110,105, 50, 55, 65, 54, 7,117,110,105, 50, 55, 65,
- 55, 7,117,110,105, 50, 55, 65, 56, 7,117,110,105, 50, 55, 65, 57, 7,117,110,105, 50, 55, 65, 65, 7,117,110,105, 50, 55, 65,
- 66, 7,117,110,105, 50, 55, 65, 67, 7,117,110,105, 50, 55, 65, 68, 7,117,110,105, 50, 55, 65, 69, 7,117,110,105, 50, 55, 65,
- 70, 7,117,110,105, 50, 55, 66, 49, 7,117,110,105, 50, 55, 66, 50, 7,117,110,105, 50, 55, 66, 51, 7,117,110,105, 50, 55, 66,
- 52, 7,117,110,105, 50, 55, 66, 53, 7,117,110,105, 50, 55, 66, 54, 7,117,110,105, 50, 55, 66, 55, 7,117,110,105, 50, 55, 66,
- 56, 7,117,110,105, 50, 55, 66, 57, 7,117,110,105, 50, 55, 66, 65, 7,117,110,105, 50, 55, 66, 66, 7,117,110,105, 50, 55, 66,
- 67, 7,117,110,105, 50, 55, 66, 68, 7,117,110,105, 50, 55, 66, 69, 7,117,110,105, 50, 55, 69, 48, 7,117,110,105, 50, 55, 69,
- 56, 7,117,110,105, 50, 55, 69, 57, 7,117,110,105, 50, 57, 69, 66, 7,117,110,105, 50, 57, 70, 65, 7,117,110,105, 50, 57, 70,
- 66, 7,117,110,105, 50, 65, 50, 70, 7,117,110,105, 50, 66, 49, 50, 7,117,110,105, 50, 66, 49, 51, 7,117,110,105, 50, 66, 49,
- 52, 7,117,110,105, 50, 66, 49, 53, 7,117,110,105, 50, 66, 49, 54, 7,117,110,105, 50, 66, 49, 55, 7,117,110,105, 50, 66, 49,
- 56, 7,117,110,105, 50, 66, 49, 57, 7,117,110,105, 50, 66, 49, 65, 7,117,110,105, 50, 67, 55, 53, 7,117,110,105, 50, 67, 55,
- 54, 7,117,110,105, 50, 67, 55, 55, 7,117,110,105, 50, 69, 49, 56, 7,117,110,105, 50, 69, 50, 69, 7,117,110,105, 70, 54, 67,
- 53, 7,117,110,105, 70, 66, 53, 50, 7,117,110,105, 70, 66, 53, 51, 7,117,110,105, 70, 66, 53, 52, 7,117,110,105, 70, 66, 53,
- 53, 7,117,110,105, 70, 66, 53, 54, 7,117,110,105, 70, 66, 53, 55, 7,117,110,105, 70, 66, 53, 56, 7,117,110,105, 70, 66, 53,
- 57, 7,117,110,105, 70, 66, 53, 65, 7,117,110,105, 70, 66, 53, 66, 7,117,110,105, 70, 66, 53, 67, 7,117,110,105, 70, 66, 53,
- 68, 7,117,110,105, 70, 66, 53, 69, 7,117,110,105, 70, 66, 53, 70, 7,117,110,105, 70, 66, 54, 48, 7,117,110,105, 70, 66, 54,
- 49, 7,117,110,105, 70, 66, 54, 50, 7,117,110,105, 70, 66, 54, 51, 7,117,110,105, 70, 66, 54, 52, 7,117,110,105, 70, 66, 54,
- 53, 7,117,110,105, 70, 66, 54, 54, 7,117,110,105, 70, 66, 54, 55, 7,117,110,105, 70, 66, 54, 56, 7,117,110,105, 70, 66, 54,
- 57, 7,117,110,105, 70, 66, 54, 65, 7,117,110,105, 70, 66, 54, 66, 7,117,110,105, 70, 66, 54, 67, 7,117,110,105, 70, 66, 54,
- 68, 7,117,110,105, 70, 66, 54, 69, 7,117,110,105, 70, 66, 54, 70, 7,117,110,105, 70, 66, 55, 48, 7,117,110,105, 70, 66, 55,
- 49, 7,117,110,105, 70, 66, 55, 50, 7,117,110,105, 70, 66, 55, 51, 7,117,110,105, 70, 66, 55, 52, 7,117,110,105, 70, 66, 55,
- 53, 7,117,110,105, 70, 66, 55, 54, 7,117,110,105, 70, 66, 55, 55, 7,117,110,105, 70, 66, 55, 56, 7,117,110,105, 70, 66, 55,
- 57, 7,117,110,105, 70, 66, 55, 65, 7,117,110,105, 70, 66, 55, 66, 7,117,110,105, 70, 66, 55, 67, 7,117,110,105, 70, 66, 55,
- 68, 7,117,110,105, 70, 66, 55, 69, 7,117,110,105, 70, 66, 55, 70, 7,117,110,105, 70, 66, 56, 48, 7,117,110,105, 70, 66, 56,
- 49, 7,117,110,105, 70, 66, 56, 65, 7,117,110,105, 70, 66, 56, 66, 7,117,110,105, 70, 66, 56, 67, 7,117,110,105, 70, 66, 56,
- 68, 7,117,110,105, 70, 66, 56, 69, 7,117,110,105, 70, 66, 56, 70, 7,117,110,105, 70, 66, 57, 48, 7,117,110,105, 70, 66, 57,
- 49, 7,117,110,105, 70, 66, 57, 50, 7,117,110,105, 70, 66, 57, 51, 7,117,110,105, 70, 66, 57, 52, 7,117,110,105, 70, 66, 57,
- 53, 7,117,110,105, 70, 66, 57, 69, 7,117,110,105, 70, 66, 57, 70, 7,117,110,105, 70, 66, 65, 65, 7,117,110,105, 70, 66, 65,
- 66, 7,117,110,105, 70, 66, 65, 67, 7,117,110,105, 70, 66, 65, 68, 7,117,110,105, 70, 66, 69, 56, 7,117,110,105, 70, 66, 69,
- 57, 7,117,110,105, 70, 66, 70, 67, 7,117,110,105, 70, 66, 70, 68, 7,117,110,105, 70, 66, 70, 69, 7,117,110,105, 70, 66, 70,
- 70, 7,117,110,105, 70, 69, 55, 48, 7,117,110,105, 70, 69, 55, 49, 7,117,110,105, 70, 69, 55, 50, 7,117,110,105, 70, 69, 55,
- 51, 7,117,110,105, 70, 69, 55, 52, 7,117,110,105, 70, 69, 55, 54, 7,117,110,105, 70, 69, 55, 55, 7,117,110,105, 70, 69, 55,
- 56, 7,117,110,105, 70, 69, 55, 57, 7,117,110,105, 70, 69, 55, 65, 7,117,110,105, 70, 69, 55, 66, 7,117,110,105, 70, 69, 55,
- 67, 7,117,110,105, 70, 69, 55, 68, 7,117,110,105, 70, 69, 55, 69, 7,117,110,105, 70, 69, 55, 70, 7,117,110,105, 70, 69, 56,
- 48, 7,117,110,105, 70, 69, 56, 49, 7,117,110,105, 70, 69, 56, 50, 7,117,110,105, 70, 69, 56, 51, 7,117,110,105, 70, 69, 56,
- 52, 7,117,110,105, 70, 69, 56, 53, 7,117,110,105, 70, 69, 56, 54, 7,117,110,105, 70, 69, 56, 55, 7,117,110,105, 70, 69, 56,
- 56, 7,117,110,105, 70, 69, 56, 57, 7,117,110,105, 70, 69, 56, 65, 7,117,110,105, 70, 69, 56, 66, 7,117,110,105, 70, 69, 56,
- 67, 7,117,110,105, 70, 69, 56, 68, 7,117,110,105, 70, 69, 56, 69, 7,117,110,105, 70, 69, 56, 70, 7,117,110,105, 70, 69, 57,
- 48, 7,117,110,105, 70, 69, 57, 49, 7,117,110,105, 70, 69, 57, 50, 7,117,110,105, 70, 69, 57, 51, 7,117,110,105, 70, 69, 57,
- 52, 7,117,110,105, 70, 69, 57, 53, 7,117,110,105, 70, 69, 57, 54, 7,117,110,105, 70, 69, 57, 55, 7,117,110,105, 70, 69, 57,
- 56, 7,117,110,105, 70, 69, 57, 57, 7,117,110,105, 70, 69, 57, 65, 7,117,110,105, 70, 69, 57, 66, 7,117,110,105, 70, 69, 57,
- 67, 7,117,110,105, 70, 69, 57, 68, 7,117,110,105, 70, 69, 57, 69, 7,117,110,105, 70, 69, 57, 70, 7,117,110,105, 70, 69, 65,
- 48, 7,117,110,105, 70, 69, 65, 49, 7,117,110,105, 70, 69, 65, 50, 7,117,110,105, 70, 69, 65, 51, 7,117,110,105, 70, 69, 65,
- 52, 7,117,110,105, 70, 69, 65, 53, 7,117,110,105, 70, 69, 65, 54, 7,117,110,105, 70, 69, 65, 55, 7,117,110,105, 70, 69, 65,
- 56, 7,117,110,105, 70, 69, 65, 57, 7,117,110,105, 70, 69, 65, 65, 7,117,110,105, 70, 69, 65, 66, 7,117,110,105, 70, 69, 65,
- 67, 7,117,110,105, 70, 69, 65, 68, 7,117,110,105, 70, 69, 65, 69, 7,117,110,105, 70, 69, 65, 70, 7,117,110,105, 70, 69, 66,
- 48, 7,117,110,105, 70, 69, 66, 49, 7,117,110,105, 70, 69, 66, 50, 7,117,110,105, 70, 69, 66, 51, 7,117,110,105, 70, 69, 66,
- 52, 7,117,110,105, 70, 69, 66, 53, 7,117,110,105, 70, 69, 66, 54, 7,117,110,105, 70, 69, 66, 55, 7,117,110,105, 70, 69, 66,
- 56, 7,117,110,105, 70, 69, 66, 57, 7,117,110,105, 70, 69, 66, 65, 7,117,110,105, 70, 69, 66, 66, 7,117,110,105, 70, 69, 66,
- 67, 7,117,110,105, 70, 69, 66, 68, 7,117,110,105, 70, 69, 66, 69, 7,117,110,105, 70, 69, 66, 70, 7,117,110,105, 70, 69, 67,
- 48, 7,117,110,105, 70, 69, 67, 49, 7,117,110,105, 70, 69, 67, 50, 7,117,110,105, 70, 69, 67, 51, 7,117,110,105, 70, 69, 67,
- 52, 7,117,110,105, 70, 69, 67, 53, 7,117,110,105, 70, 69, 67, 54, 7,117,110,105, 70, 69, 67, 55, 7,117,110,105, 70, 69, 67,
- 56, 7,117,110,105, 70, 69, 67, 57, 7,117,110,105, 70, 69, 67, 65, 7,117,110,105, 70, 69, 67, 66, 7,117,110,105, 70, 69, 67,
- 67, 7,117,110,105, 70, 69, 67, 68, 7,117,110,105, 70, 69, 67, 69, 7,117,110,105, 70, 69, 67, 70, 7,117,110,105, 70, 69, 68,
- 48, 7,117,110,105, 70, 69, 68, 49, 7,117,110,105, 70, 69, 68, 50, 7,117,110,105, 70, 69, 68, 51, 7,117,110,105, 70, 69, 68,
- 52, 7,117,110,105, 70, 69, 68, 53, 7,117,110,105, 70, 69, 68, 54, 7,117,110,105, 70, 69, 68, 55, 7,117,110,105, 70, 69, 68,
- 56, 7,117,110,105, 70, 69, 68, 57, 7,117,110,105, 70, 69, 68, 65, 7,117,110,105, 70, 69, 68, 66, 7,117,110,105, 70, 69, 68,
- 67, 7,117,110,105, 70, 69, 68, 68, 7,117,110,105, 70, 69, 68, 69, 7,117,110,105, 70, 69, 68, 70, 7,117,110,105, 70, 69, 69,
- 48, 7,117,110,105, 70, 69, 69, 49, 7,117,110,105, 70, 69, 69, 50, 7,117,110,105, 70, 69, 69, 51, 7,117,110,105, 70, 69, 69,
- 52, 7,117,110,105, 70, 69, 69, 53, 7,117,110,105, 70, 69, 69, 54, 7,117,110,105, 70, 69, 69, 55, 7,117,110,105, 70, 69, 69,
- 56, 7,117,110,105, 70, 69, 69, 57, 7,117,110,105, 70, 69, 69, 65, 7,117,110,105, 70, 69, 69, 66, 7,117,110,105, 70, 69, 69,
- 67, 7,117,110,105, 70, 69, 69, 68, 7,117,110,105, 70, 69, 69, 69, 7,117,110,105, 70, 69, 69, 70, 7,117,110,105, 70, 69, 70,
- 48, 7,117,110,105, 70, 69, 70, 49, 7,117,110,105, 70, 69, 70, 50, 7,117,110,105, 70, 69, 70, 51, 7,117,110,105, 70, 69, 70,
- 52, 7,117,110,105, 70, 69, 70, 53, 7,117,110,105, 70, 69, 70, 54, 7,117,110,105, 70, 69, 70, 55, 7,117,110,105, 70, 69, 70,
- 56, 7,117,110,105, 70, 69, 70, 57, 7,117,110,105, 70, 69, 70, 65, 7,117,110,105, 70, 69, 70, 66, 7,117,110,105, 70, 69, 70,
- 67, 7,117,110,105, 70, 69, 70, 70, 7,117,110,105, 70, 70, 70, 57, 7,117,110,105, 70, 70, 70, 65, 7,117,110,105, 70, 70, 70,
- 66, 7,117,110,105, 70, 70, 70, 67, 7,117,110,105, 70, 70, 70, 68, 6,117, 49, 68, 54, 55, 48, 6,117, 49, 68, 54, 55, 49, 6,
-117, 49, 68, 54, 55, 50, 6,117, 49, 68, 54, 55, 51, 6,117, 49, 68, 54, 55, 52, 6,117, 49, 68, 54, 55, 53, 6,117, 49, 68, 54,
- 55, 54, 6,117, 49, 68, 54, 55, 55, 6,117, 49, 68, 54, 55, 56, 6,117, 49, 68, 54, 55, 57, 6,117, 49, 68, 54, 55, 65, 6,117,
- 49, 68, 54, 55, 66, 6,117, 49, 68, 54, 55, 67, 6,117, 49, 68, 54, 55, 68, 6,117, 49, 68, 54, 55, 69, 6,117, 49, 68, 54, 55,
- 70, 6,117, 49, 68, 54, 56, 48, 6,117, 49, 68, 54, 56, 49, 6,117, 49, 68, 54, 56, 50, 6,117, 49, 68, 54, 56, 51, 6,117, 49,
- 68, 54, 56, 52, 6,117, 49, 68, 54, 56, 53, 6,117, 49, 68, 54, 56, 54, 6,117, 49, 68, 54, 56, 55, 6,117, 49, 68, 54, 56, 56,
- 6,117, 49, 68, 54, 56, 57, 6,117, 49, 68, 54, 56, 65, 6,117, 49, 68, 54, 56, 66, 6,117, 49, 68, 54, 56, 67, 6,117, 49, 68,
- 54, 56, 68, 6,117, 49, 68, 54, 56, 69, 6,117, 49, 68, 54, 56, 70, 6,117, 49, 68, 54, 57, 48, 6,117, 49, 68, 54, 57, 49, 6,
-117, 49, 68, 54, 57, 50, 6,117, 49, 68, 54, 57, 51, 6,117, 49, 68, 54, 57, 52, 6,117, 49, 68, 54, 57, 53, 6,117, 49, 68, 54,
- 57, 54, 6,117, 49, 68, 54, 57, 55, 6,117, 49, 68, 54, 57, 56, 6,117, 49, 68, 54, 57, 57, 6,117, 49, 68, 54, 57, 65, 6,117,
- 49, 68, 54, 57, 66, 6,117, 49, 68, 54, 57, 67, 6,117, 49, 68, 54, 57, 68, 6,117, 49, 68, 54, 57, 69, 6,117, 49, 68, 54, 57,
- 70, 6,117, 49, 68, 54, 65, 48, 6,117, 49, 68, 54, 65, 49, 6,117, 49, 68, 54, 65, 50, 6,117, 49, 68, 54, 65, 51, 6,117, 49,
- 68, 55, 70, 54, 6,117, 49, 68, 55, 70, 55, 6,117, 49, 68, 55, 70, 56, 6,117, 49, 68, 55, 70, 57, 6,117, 49, 68, 55, 70, 65,
- 6,117, 49, 68, 55, 70, 66, 6,117, 49, 68, 55, 70, 67, 6,117, 49, 68, 55, 70, 68, 6,117, 49, 68, 55, 70, 69, 6,117, 49, 68,
- 55, 70, 70, 9,100,108, 76,116, 99, 97,114,111,110, 9, 68,105, 97,101,114,101,115,105,115, 5, 65, 99,117,116,101, 5, 84,105,
-108,100,101, 5, 71,114, 97,118,101, 10, 67,105,114, 99,117,109,102,108,101,120, 5, 67, 97,114,111,110, 13,102,114, 97, 99,116,
-105,111,110,115,108, 97,115,104, 12,117,110,105, 48, 51, 49, 49, 46, 99, 97,115,101, 12,117,110,105, 48, 51, 48, 54, 46, 99, 97,
-115,101, 12,117,110,105, 48, 51, 48, 55, 46, 99, 97,115,101, 12,117,110,105, 48, 51, 48, 66, 46, 99, 97,115,101, 12,117,110,105,
- 48, 51, 48, 70, 46, 99, 97,115,101, 12,116,104,105,110,113,117,101,115,116,105,111,110, 12,117,110,105, 48, 51, 48, 52, 46, 99,
- 97,115,101, 8,117,110,100,101,114, 98, 97,114, 13,117,110,100,101,114, 98, 97,114, 46,119,105,100,101, 14,117,110,100,101,114,
- 98, 97,114, 46,115,109, 97,108,108, 3,106,111,116, 17,100,105, 97,101,114,101,115,105,115, 46,115,121,109, 98,111,108,115, 10,
- 97,114, 97, 98,105, 99, 95,100,111,116, 12, 97,114, 97, 98,105, 99, 95, 50,100,111,116,115, 12, 97,114, 97, 98,105, 99, 95, 51,
-100,111,116,115, 12,117,110,105, 48, 54, 54, 69, 46,102,105,110, 97, 12,117,110,105, 48, 54, 65, 49, 46,105,110,105,116, 12,117,
-110,105, 48, 54, 65, 49, 46,109,101,100,105, 12,117,110,105, 48, 54, 54, 70, 46,102,105,110, 97, 12,117,110,105, 48, 54, 65, 49,
- 46,102,105,110, 97, 14, 97,114, 97, 98,105, 99, 95, 51,100,111,116,115, 95, 97, 14, 97,114, 97, 98,105, 99, 95, 50,100,111,116,
-115, 95, 97, 12, 97,114, 97, 98,105, 99, 95, 52,100,111,116,115, 14, 97,114, 97, 98,105, 99, 95,103, 97,102, 95, 98, 97,114, 16,
- 97,114, 97, 98,105, 99, 95,103, 97,102, 95, 98, 97,114, 95, 97, 11, 97,114, 97, 98,105, 99, 95,114,105,110,103, 7, 69,110,103,
- 46, 97,108,116,185, 2,128, 1, 21,178,148, 93, 5, 65, 28, 1, 21, 0,150, 0, 3, 1, 21, 0,128, 0, 4, 1, 20, 0,254, 0,
- 3, 1, 19, 0,254, 0, 3, 1, 18, 0, 18, 0, 3, 1, 17, 0,254, 0, 3, 1, 16, 0,254, 0, 3, 1, 15, 0,154, 0, 3, 1,
- 14, 0,254, 0, 3, 1, 13,178,235, 71, 5, 65, 37, 1, 13, 0,125, 0, 3, 1, 12, 0, 37, 0, 3, 1, 11, 0, 50, 0, 3, 1,
- 10, 0,150, 0, 3, 1, 9, 0,254, 0, 3, 1, 8, 0, 14, 0, 3, 1, 7, 0,254, 0, 3, 1, 6, 0, 37, 0, 3, 1, 5, 0,
-254, 0, 3, 1, 4, 0, 14, 0, 3, 1, 3, 0, 37, 0, 3, 1, 2, 0,254, 0, 3, 1, 1, 64, 89,254, 3,254,254, 3,253,125,
- 3,252,254, 3,251,254, 3,250, 50, 3,249,187, 3,248,125, 3,247,246,140, 5,247,254, 3,247,192, 4,246,245, 89, 5,246,140,
- 3,246,128, 4,245,244, 38, 5,245, 89, 3,245, 64, 4,244, 38, 3,243,242, 47, 5,243,250, 3,242, 47, 3,241,254, 3,240,254,
- 3,239, 50, 3,238, 20, 3,237,150, 3,236,235, 71, 5,236,254, 3,236,184,255,209, 64,255, 4,235, 71, 3,234,233,100, 5,234,
-150, 3,233,100, 3,232,254, 3,231,230, 27, 5,231,254, 3,230, 27, 3,229,254, 3,228,107, 3,227,254, 3,226,187, 3,225,224,
- 25, 5,225,250, 3,224, 25, 3,223,150, 3,222,254, 3,221,254, 3,220,219, 21, 5,220,254, 3,219, 21, 3,218,150, 3,217,216,
- 21, 5,217,254, 3,216,141, 11, 5,216, 21, 3,215,125, 3,214, 58, 3,213,141, 11, 5,213, 58, 3,212,254, 3,211,210, 10, 5,
-211,254, 3,210, 10, 3,209,254, 3,208,254, 3,207,138, 17, 5,207, 28, 3,206, 22, 3,205,254, 3,204,150, 3,203,139, 37, 5,
-203,254, 3,202,254, 3,201,125, 3,200,254, 3,199,254, 3,198,254, 3,197,154, 13, 5,196,254, 3,195,254, 3,194,254, 3,193,
-254, 3,192,141, 11, 5,192, 20, 3,191, 12, 3,190,189,187, 5,190,254, 3,189,188, 93, 5,189,187, 3,189,128, 4,188,187, 37,
- 5,188, 93, 3,188, 64, 4,187, 37, 3,186,254, 3,185,150, 3,184,143, 65, 5,183,254, 3,182,143, 65, 5,182,250, 3,181,154,
- 13, 5,180,254, 3,179,100, 3,178,100, 3,177, 14, 3,176, 18, 3,175,254, 3,174,254, 64,253, 3,173,254, 3,172,254, 3,171,
- 18, 3,170,254, 3,169,168, 14, 5,169, 50, 3,168, 14, 3,167,166, 17, 5,167, 40, 3,166, 17, 3,165,164, 45, 5,165,125, 3,
-164, 45, 3,163,254, 3,162,254, 3,161,254, 3,160,159, 25, 5,160,100, 3,159,158, 16, 5,159, 25, 3,158, 16, 3,157, 10, 3,
-156,254, 3,155,154, 13, 5,155,254, 3,154, 13, 3,153,152, 46, 5,153,254, 3,152, 46, 3,151,143, 65, 5,151,150, 3,150,149,
-187, 5,150,254, 3,149,148, 93, 5,149,187, 3,149,128, 4,148,144, 37, 5,148, 93, 3,148, 64, 4,147,254, 3,146,254, 3,145,
-144, 37, 5,145,187, 3,144, 37, 3,143,139, 37, 5,143, 65, 3,142,141, 11, 5,142, 20, 3,141, 11, 3,140,139, 37, 5,140,100,
- 3,139,138, 17, 5,139, 37, 3,138, 17, 3,137,254, 3,136,254, 3,135,254, 3,134,133, 17, 5,134,254, 3,133, 17, 3,132,254,
- 3,131,254, 3,130, 17, 66, 5,130, 83, 3,129,254, 3,128,120, 3,127,126,125, 5,127,254, 3,126,125, 3,125, 30, 3,124,254,
- 3,123, 14, 3,122,254, 3,119,254, 3,118,254, 3,117,116, 12, 5,117, 15, 3,117,184, 1, 0, 64,218, 4,116, 12, 3,116,192,
- 4,115, 18, 3,115, 64, 4,114,254, 3,113,254, 3,112,254, 3,111,110, 83, 5,111,150, 3,110,109, 40, 5,110, 83, 3,109, 40,
- 3,108,254, 3,107, 50, 3,106,254, 3,105, 50, 3,104,250, 3,103,187, 3,102,254, 3,101,254, 3,100,254, 3, 99, 98, 30, 5,
- 99,254, 3, 98, 0, 16, 5, 98, 30, 3, 97,254, 3, 96,254, 3, 95,254, 3, 94, 90, 11, 5, 94, 14, 3, 93,100, 3, 92,200, 3,
- 91, 90, 11, 5, 91, 20, 3, 90, 11, 3, 89,254, 3, 88, 20, 3, 87,254, 3, 86,254, 3, 85, 27, 25, 5, 85, 50, 3, 84,254, 3,
- 83,254, 3, 82,254, 3, 81,125, 3, 80,254, 3, 79, 20, 3, 78,254, 3, 77, 1, 45, 5, 77,254, 3, 76,187, 3, 75, 40, 3, 74,
- 73, 24, 5, 74, 55, 3, 73, 67, 18, 5, 73, 24, 3, 72, 69, 24, 5, 72,254, 3, 71, 67, 18, 5, 71,100, 3, 70, 69, 24, 5, 70,
-187, 3, 69, 24, 3, 68, 67, 18, 5, 68, 55, 3, 67, 66, 17, 5, 67, 18, 3, 67,184, 2, 64, 64, 9, 4, 66, 65, 15, 5, 66, 17,
- 3, 66,184, 2, 0, 64, 9, 4, 65, 64, 14, 5, 65, 15, 3, 65,184, 1,192, 64, 9, 4, 64, 63, 12, 5, 64, 14, 3, 64,184, 1,
-128, 64, 9, 4, 63, 12, 9, 5, 63, 12, 3, 63,184, 1, 64, 64,100, 4, 62,254, 3, 61, 1, 45, 5, 61,250, 3, 60,254, 3, 59,
- 40, 3, 58,254, 3, 57, 17, 66, 5, 57,100, 3, 56, 49, 26, 5, 56, 75, 3, 55,254, 3, 54, 45, 20, 5, 54,254, 3, 53, 75, 3,
- 52, 48, 26, 5, 52, 75, 3, 51, 48, 26, 5, 51,254, 3, 50, 17, 66, 5, 50,254, 3, 49, 45, 20, 5, 49, 26, 3, 48, 26, 3, 47,
- 45, 20, 5, 47, 24, 3, 46, 9, 22, 5, 46,187, 3, 45, 44, 19, 5, 45, 20, 3, 45,184, 2,128, 64, 9, 4, 44, 16, 17, 5, 44,
- 19, 3, 44,184, 2, 64, 64,150, 4, 43, 42, 37, 5, 43,254, 3, 42, 9, 22, 5, 42, 37, 3, 41, 2, 58, 5, 41,254, 3, 40,254,
- 3, 39,254, 3, 38, 15, 3, 37, 22, 66, 5, 37, 69, 3, 36, 15, 3, 35,254, 3, 34, 15, 15, 5, 34,254, 3, 33, 32, 45, 5, 33,
-125, 3, 32, 45, 3, 31, 75, 3, 30, 17, 66, 5, 30,254, 3, 29,254, 3, 28, 27, 25, 5, 28,254, 3, 27, 0, 16, 5, 27, 25, 3,
- 26,254, 3, 25,254, 3, 24,254, 3, 23, 22, 66, 5, 23, 70, 3, 22, 21, 45, 5, 22, 66, 3, 21, 20, 16, 5, 21, 45, 3, 20, 16,
- 3, 19, 0, 16, 5, 19, 20, 3, 18, 17, 66, 5, 18,254, 3, 17, 1, 45, 5, 17, 66, 3, 16, 15, 15, 5, 16, 17, 3, 16,184, 2,
- 0, 64, 9, 4, 15, 14, 12, 5, 15, 15, 3, 15,184, 1,192, 64, 9, 4, 14, 13, 10, 5, 14, 12, 3, 14,184, 1,128, 64, 9, 4,
- 13, 12, 9, 5, 13, 10, 3, 13,184, 1, 64,180, 4, 12, 9, 3, 12,184, 1, 0, 64, 55, 4, 11,254, 3, 10, 9, 22, 5, 10,254,
- 3, 9, 22, 3, 8, 16, 3, 7,254, 3, 6, 1, 45, 5, 6,254, 3, 5, 20, 3, 3, 2, 58, 5, 3,250, 3, 2, 1, 45, 5, 2,
- 58, 3, 1, 0, 16, 5, 1, 45, 3, 0, 16, 3, 1,184, 1,100,133,141, 1, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 0, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 29, 0,
- 0};
-
diff --git a/source/blender/editors/datafiles/clay.png.c b/source/blender/editors/datafiles/clay.png.c
deleted file mode 100644
index 8e4a62a02b1..00000000000
--- a/source/blender/editors/datafiles/clay.png.c
+++ /dev/null
@@ -1,359 +0,0 @@
-/** \file blender/editors/datafiles/clay.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <clay_png> */
-
-int datatoc_clay_png_size= 11181;
-char datatoc_clay_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73,
- 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143,
- 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0,
- 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 19, 0, 34, 11,191,157, 46, 32, 0, 0,
- 32, 0, 73, 68, 65, 84,120,218,237,124,121,180,165, 89, 85,223,222,251,156,239,251,238,240,134,122,245,170,138,174, 30,170,233,
-102, 38,180, 52, 99, 55, 8,149, 6, 20, 73, 34,194, 66,151, 65, 3,100,153,232, 10, 70,212, 37, 6, 21, 39,156, 34, 70,113, 32,
- 49, 70, 48,113,105, 52, 14,145,128, 64,148, 8, 34,208, 42,131, 49, 34,202,104, 47,160,231,234,174,170, 55,222,123,191,239, 59,
-211,222,249, 99,159,243,221,251, 26,154,201, 86,219,181,188,221,245, 94,189, 87,247,221,119,238, 62,251,236,253,219,191,253,219,
- 7,207,158, 61, 11,159,245,241,185, 60,201, 50,243,187,223,247,255,186,118,190,115,225,238,170,110,166,107,107,198, 84,255,243,
-215,127,229, 53,175,253,133,225, 73, 4, 0, 93,215, 34,153,205,227, 39,187,174,221,189,120,113,118,176,243,143,111,184,225, 85,
- 63,241, 99, 71,158,132, 0, 68,212,212, 13, 25,107,108,181,190,185,125,234, 1,167, 31,117,205,181,191,243,187,191,123,242,228,
-137,252,164,209,120,188,182, 54,117,190,159, 78,215,154,209,104, 60,158, 76,214, 54,108, 61,222,221,221,251,230,151,124, 83,126,
-146, 53,228,156, 79,193,247, 93,219, 52,141,247,174,235,186,187,206,221,177,191,183,183,183,187,251,210,111,125,137, 5,128,196,
-192,204,128,166,235,250,115,119,126, 24, 16, 71,163,145,173,170,174,107,173,173,214,214,215, 9, 0,246,247,119, 47, 94,188,112,
-254,238,187,206,221,121,251,221,119,157,243,174, 55,198,108,110, 30,139, 49, 34,226,124,118, 96, 1,224,206, 59,110,223,185,112,
- 33, 4,239,156, 67,132,233,218,250,169, 7,156,222,223,223, 93,204,231,139,197,252,216,214,182, 5,128, 11,119,223,197,204,136,
- 24, 67, 16,145,186,174, 15, 14,246,239, 62,119,238,226,249,187, 78, 94,114,233,120, 60,182, 0, 80, 85, 53, 18, 6,239,157,115,
-179,131, 61, 0,169,155,209,185,219,111,221,218,222, 62,117,201,233,221,139, 23,240,115,218,187,207,229,129,239,251,211,247,187,
-222,205, 14,247, 47,156, 63,119,242,212,233,209,120, 50, 59,220,127,238,115,190, 98,245, 73, 52, 95,204, 67, 12,163,233,218,230,
-177, 19,123,123,187,251,187, 23, 64,248,135, 95,241,242, 35,175,244,142, 27,255,152,153,235,186,158,207,102, 23,207,223,117,252,
-196,201,233,116,218,119, 11, 16, 89, 44,230, 95,249,149, 95, 5, 0, 68, 68, 27, 27, 27,134,136,136,234,166,153, 78,215,234,102,
-180,113,108,187,237,221,221,119,159,255,214,151,188, 24, 0,236,168,169,152,147,247,254,226,249, 59,167,107, 27, 34,226,156, 59,
- 60, 56,184,112,254,194,254,254,126,223,117, 0, 96,145,172,247,129, 69,198,211,245,115,231,206,221,252,201, 79,140, 70,147,186,
-105, 66,240,174,239, 71,163, 49, 0,224,239,191,227,198,190,239, 22,243,249,197, 11,231,239, 62,119,167,181,118,251,228,169,227,
-219, 39,118,119, 46,222,113,235, 45, 72,212, 45, 14,237,238,206,197,115,119,220,222,182,109, 8, 94, 68,172,173,142,111,111,111,
-110,110,222,121,251,109, 93,215, 18, 81,221,140,232,174, 59,239,152,205, 14, 17, 65, 68, 92,223, 3, 0, 34,221,113,251,109, 23,
- 47,220,125,219,205, 55,157,190,236,138,102, 52,177,204, 60,158, 76, 16,177,239,186,249,236,112, 62,159,133,224,231,243,217,199,
- 63,250,129, 27,158,249,156,190,239,231,179, 67,184,175,246,206,234,167,167, 63,253,233, 63,248, 67, 63, 50, 95,204,247,119, 47,
-112,146,201,116,173,170,107, 99,173, 49, 22, 17,254,224,247,223,246,202, 87,190,242,179,248,192, 83,158,242,148, 87,254,248, 79,
-137, 48, 11, 51, 75,138,190,239,250,110, 49, 95,204, 15,183,182, 79, 86,117, 61, 26,141,235,186, 73,209,127,242,227, 55,237,238,
- 92,248,246,151,125,215,189,174, 40,198, 32, 34, 34,130,136,214,214,147,169, 69,196, 16,227,108, 54,107,154, 38,120, 7,128, 41,
-134,245,141,205,205, 99, 91,191,249,235,191,118,225,226,197,151,124,243,183,124,154, 23, 10, 33,128, 72, 85,215, 77,211, 16, 81,
-223,247,117,221, 76,167,211,197,124, 94, 85,245,116,125, 99, 52, 26, 19, 34, 16, 10,139,247,253,250,177,237,215,191,225,183, 23,
-243,249,238,206,249, 55,189,241,141,111,127,199,187,242, 11,109,109,109, 1, 8,199,200, 34,237, 98,182,191,187, 91, 53, 13, 34,
-141,198,227,209,104, 84,215, 13, 33, 9, 8, 10,196, 24,103,135,243,195,131,189,182,109,231,135,135,231,239,190,243,193, 15,186,
-234,228,246,241,223,120,221, 27, 44,104,104, 18,100,192,196,140,100,215, 54,142,245, 93,235, 92, 47,156,250,158,156,115, 33, 4,
-231,156,115,142,136, 82,138,206, 57,215,119,139,197, 60,134, 96,140,121,200,195, 31, 1,240, 6, 11, 0,174,247,204, 73, 68, 82,
-226, 24,252, 98,177,152,207, 14, 15, 14,246,231,135, 7, 33, 4, 68, 28,141, 39,227,241,164,170,171,170, 26,143,198, 99,231,156,
-119,222,123,111,235,102,205, 90, 34,122,241,191,126,161, 5,128,189,221,139,109,219,182,109,235,157, 11,193,135,160,209,199,121,
-215,139,240,104, 52, 49,214,214,163,102, 58, 93,155, 78,167, 33, 4, 78,236,189,235,251,150,200,136,192,236,224, 96,243,248, 41,
- 11, 0, 23, 47, 92,152,207,103, 93,187,136, 49, 33,162, 8,167,148,130,247, 49, 38, 34, 34, 99, 54, 55,143, 29,223, 62, 97, 43,
-219, 46, 22,123,187, 59,179,195,253,253,253,221,217,254,190,128, 92,118,197, 3,141, 49,174,239, 44, 0,236,238,238,196,224, 1,
-160,170, 42,230,232,125,242,206,117,109, 27,130, 71, 68, 52,116,120,176,223,117, 29,115,234,218,118,111,119,103,111,231,194,173,
-159,248,200, 99,175,187,225,196,169, 7, 48,115,223,247, 49, 70, 11, 0,136,104,140, 21, 16, 16, 1,192,186,174,173,181, 85, 93,
-139, 72, 93, 55,198,152,221,221,157,115,183,221, 12,136, 41,165,217,254,206,195,175,121,220,163, 31,247, 68,102,118,125,223, 46,
- 22,251,123,187,231,239,186,237,190,139,147,247,201,227,204,153, 51,116, 95,189, 86, 62,253,127,252,158,247,118,109,215, 46,102,
- 59, 23,238,154,110,108,141, 70, 35,107,107, 50,134,136, 82, 12, 47,122,225, 11, 46, 92,184,240, 89, 78,255,159,190,255, 47, 98,
-140, 49,198, 16,188,119,174, 93, 44,246,119,207, 79,215, 54, 71,147, 73, 85, 85,214,214,100, 40,134,112,254,220, 29, 47,124,209,
-139, 62,211, 91,243,222,123, 31,152, 19, 2, 90, 91,141, 39,147,205,173, 19, 33,248,190, 93,196, 16,152,163, 37, 51,157, 78, 54,
-143, 29,251,169, 87,253, 56, 17,222,219,107,153,127,241,194, 23,165,148,132,153, 69, 16, 17,201, 32, 98, 74,201, 7, 31,188,247,
-190,143,193,117,237, 34,198,152, 82,188,254,137,143,255,216, 77, 55, 29, 30,206,238,241, 42,155,155,155, 68,100,136, 8, 17, 1,
- 0,144,140, 49,198, 86,100, 12,179, 0,128,181, 13,160, 73, 12, 2,176,125,226,212,195, 30,121,205,247,126,207,203,159,252,164,
-235, 62,141,141,110,252,163,247,198, 20, 75, 84,179, 0,224,157,155,207,103,179,195, 3, 99,204,100,186, 54, 30, 79,234,186, 22,
-225,224,157, 8,131,136,136,196, 16,230,243,195,175,249,218, 23,172,216, 40,250, 16,130, 48, 87, 85,165,126, 12,136,117, 93, 87,
- 85,109,140,169,170,170,105,154,186,105, 70,227,201,250,198,177,201,116,157,108, 29, 98, 90,116,253,124,209,253,240, 15,190, 98,
-153,146, 43, 91, 77,167,211,245,141,141,241,120, 76, 4,125,215,113,138,136, 88,215, 53,145,169,170,202, 88,139, 0, 34, 2, 72,
- 72, 38,132,208,182,237, 98, 62, 63, 60,216,159,207,231,223,246,205,223,152,253,104, 50,153,128,128, 72,138,193,199,152,186,118,
- 30, 66,212,247,104,173,205,175, 2,250,134, 82,215,182,243,249,108,177, 88,116, 93,183, 88, 44,218,118,145, 66, 40, 14, 41,137,
-153,137, 12, 0,178,200,104, 50,233,118, 46, 58,215, 85, 85,221, 52, 99, 97,137, 49, 2,128, 8,120,239, 14, 14,246, 23,243,185,
-115,189,247, 46,120,159, 66, 32,202,103,195, 18, 25, 36,147, 18, 39,102, 16, 32, 52,147,233,186,235, 59,239,122, 0, 8, 49,164,
-196, 10,142,124,240,214,216, 16, 66, 12,209, 59,175,200,170,170,235, 83, 39,182, 1,192, 10, 96, 74, 41,165,196, 44, 2,162,127,
- 15, 33,206, 22,173,191,184, 27, 98, 64, 68,181,148,238, 3, 0,164,148, 98,138, 2, 98,235,186,170,235, 23,190,224,107,127,235,
-245,111,180, 33,132,152, 18,167, 36, 34, 41, 70,239, 93,223,117,179,217,225,225,254, 94,215,117,204, 92,215,141, 0, 52, 68,214,
- 86, 77,211, 8, 39, 17,225,148, 64,112, 60,158,128, 8, 19, 49,179,237,123,231,189, 75, 49,198, 24,125,112,125,215,119,237, 98,
- 62,159,119,109,219,247, 29,145,177,198, 42, 0,174,234,106, 52, 26,121,239, 68, 36, 49,199, 24,201, 16, 89, 74,222, 61,244, 33,
- 87, 91,215,119,109,219,182,237,162,235,218,160, 15,239,189,115, 49, 37,102, 54,198, 26,107,109, 85,141, 70,227,201,100, 90,215,
-141, 48,199, 20,131,247, 41, 69, 68, 27, 82, 34,196,147, 39, 78,218,182,107,219,197,252,240,240,176,235, 22,193, 7,230,148, 82,
-226,148, 56, 37, 68,163, 6,154, 78,167,235,155,155,163,102,228, 92,239,250, 62,120,239,250, 78, 68,230,243,217,177,173,109,199,
-201, 86, 53,181,139,197, 98,177,232,187,214, 59,175, 7,133,144, 4, 32,165,196,204,128,104,140, 25, 79,166, 85, 85,133,224,103,
-179,195,174,235,186,197, 34,134,112,254,220,237,205,104, 60, 93, 91, 27,141, 38,100,140,157, 29, 28,180,237,162,239, 59, 17, 49,
-198, 2,160,128,112, 74, 49, 70, 97,102,182,160, 39,107, 54,243,206,205,102,135,243,217, 97,219, 46,110,191,245,166,211,151, 93,
-125,242,228, 37,198,154,170,105, 16,209,250,224, 83, 74,100,172, 53, 36, 2, 49,134, 24,131,247, 46,120, 23, 83, 18,145,118,220,
-238,237,237, 33,130,247,126,118,120,176,115,241,194,206,221,119,110,108,158, 56,115,213,213,205,104,236,250, 30, 1, 56,177, 37,
- 34, 91, 89,195,130,136,128, 64, 68,194,236,208,197,152,156,235, 92,215,166, 20,187,182,181,214,134,224, 15,246,247, 14,246,118,
- 15,246,119,158,242,180,127, 50,157,174, 59,239, 98, 12,125,223,119, 93,107,133, 89, 88, 88, 24, 24, 68, 88,193,230,218,218,250,
-104, 52, 54,214, 84, 85, 45,194,119,222,113, 91, 59, 63, 4,164,190, 93,236,158,191,243, 43,254,249,215,137,176,238,111,219, 46,
-246,118, 47,182,243,125,184, 95,229,181, 43,174,184,130,224,254,244, 64, 68,251,105,255, 97,109,109, 58, 30,143, 47, 92,184,184,
-250,205,201,100,242,168,107, 30,117,226,196,201, 43, 46,191,220, 88,187,187,179,115,199, 29,119,124,240,131, 31,220,219,219,187,
- 15,215,100, 69, 4, 0,126,254,181,175,189,246, 49,143, 19, 1, 78, 41,166,200, 41,133, 16,162,158,221,190,223,223,185, 96,170,
-122,178,182, 94,215,141,173, 42, 67,198, 24, 67,198, 32,162, 49,132,136,204,192,156,156,235,103, 7,251,223,240, 13, 95,223,182,
-221, 95,107, 65,127,242,103, 31,224,148,152,153, 89, 68, 4,128,136,192, 86, 72,100,200, 88, 91,213,117, 51, 10,222, 59,223,207,
- 14,219,205,205,227,104, 5, 16, 4,196,144, 97, 68, 99, 76, 85, 25,196,170,110,154,186,174,127,249,151,255,251,206,197,139,139,
-249,225,183,191,236, 59,191, 64, 68,211,181, 45, 51, 35, 32, 32,136, 0,128, 0, 0, 34,160, 33,139, 53,145, 53,198, 26, 91, 25,
-107, 67, 8,138, 35,153,211,104,212, 76,167, 27, 70, 44, 33,146, 37, 50, 68, 2, 82, 85, 77, 51, 26, 79,198,237,226,240, 71,127,
-228, 7,172,173,127,224,135,126,248,243, 50,152, 5,128, 98, 25, 65, 1, 69, 35, 0, 0, 32, 8, 68, 6,136, 8, 9, 1, 17, 64,
-152, 37,165, 4, 72,198, 26,102, 92,180, 11, 67, 6,137, 16,128,153, 21,239, 35,192,104, 52,190,244,178, 51,222,245,183,124,242,
-166, 31,124,197,247,213, 77,243,159,127,238,231,255,234,175,110,250, 92, 23,100,140,145,188, 89, 64,192, 26,105, 1, 9, 17, 17,
- 81,191, 15, 34,108,217,218,164, 5,173,136, 16, 17, 34,145,181,214, 90, 67,134,136, 68, 51, 58, 51,167, 40, 34,147,233,116,107,
-251, 4, 17, 34,226,207,252,204,171, 17,229,227, 31,255,196,251,222,247,222,183,188,229,255, 92,188,184,243, 89, 44,196,172, 96,
- 13, 0,128, 16,145,200, 24, 99,140, 1, 0, 17,209, 4, 96,141,229,170,170,121, 36,210, 9, 51, 17, 25, 99,171,170,174,170,186,
-170, 42,107, 45, 25,131, 8,160,235, 98, 78,156,244, 19,167,152, 88,152,227,149, 87, 94,117,217,229, 87, 60,251,217,207,117,174,
-111, 23,243,119,189,235,157,191,246,235,191,121, 79,232,120,230,204,153,179, 55, 60,141, 89, 0,193, 24, 83,215,117, 93, 55,117,
-221,212,117,109,140, 85, 24, 25, 67, 96, 17, 64, 64,200,251, 41, 34,198, 24,173, 53,171,186,174,234,218, 26, 67, 68, 72, 4,136,
-198, 90,181, 28,145, 17,128,196, 28,130,119, 62,244,125,223,119,221,162, 93,204,231,179,217,236,112,125,186,246,132,199, 63,230,
-195, 31,249, 72,239,220, 0, 65, 45, 0, 76,215,214, 0,128,144, 8, 17, 9, 69, 68, 56,113,138,204,236,189,111,219, 69,140,145,
-144,136,140, 8, 35,128, 53, 22, 42,161,188, 93,214,218,138,136,128, 16, 0, 53,184,233, 46, 51,115,136,209, 57,215,247,109,223,
-247,222,251,224,189,178, 31,237, 98,190,152,207,218,197,162,239,219, 23,124,205, 87,191,237,237,239,248,216, 77, 31, 95,110, 89,
-101,140,128, 8, 51, 51, 67, 2, 64,202,158,144,146,158,190,224, 92,140,129,140, 53,198, 20, 7, 50, 85,149,109, 0, 32,194, 12,
- 64,122, 50,244,117, 99, 76, 33,184,190,235,251,190,115,125,239,189,139, 49,166, 24, 67,240,125,175,150,106, 93,223,197, 24,172,
-173,191,228,233, 79, 59,178, 32,230, 4, 0, 72, 68, 96, 88,178, 47,233,255,136, 84, 55, 35, 50,198,185,222,117,109,183,232,140,
- 49,182,174,173,181,154,135,131,119, 62, 32, 8,176, 40,125, 33,194,138, 95,180,164, 9, 33,134, 24, 66, 74, 73, 97, 87,240, 46,
-120, 31, 67,212, 99,164, 96,121, 60,153, 30, 61,101,182, 18, 97, 17, 72,249, 53, 21, 65,234, 27, 22, 22, 97,253,201,102,140,198,
-198, 16,218,174,227,180,208,221, 41,103,130,213,114,186,107,122,216, 0,209, 26,203,156,132,165, 44, 48,132, 24, 99,140, 2,130,
- 68, 68,134,144,170,186, 30,141, 39,255,242,133,207,255,229, 95,249,141,188,160,148,152, 57,233,187,147,229, 3,132, 37, 50,167,
- 24, 83,208,226, 40,120,231,250,190,115,174, 15, 62,196, 24, 82, 74, 25,141,145,177, 85,101,173, 53, 70,233, 55, 99,140, 49,214,
- 90,107, 69,196, 67, 31, 98,200,182,139, 49,113, 2, 1,107, 43, 24,131,112, 50,100, 16,224,212,201, 75, 78,158, 56, 46, 34, 22,
- 0,156,235, 83, 74, 44,172, 39, 54, 27, 94, 18, 39, 78, 49,133, 24,188,115, 74, 70, 56,231, 92,223, 59,215, 43,250,212,130,196,
-144,181,181, 37, 34, 38, 84,228, 79,164,249,196,214,117,131,136,156, 18,162,227,225,145,152,133, 1,177,110, 70, 68,168,142,149,
- 82,122,254, 87,127,213, 27,222,244,187, 74,170,244, 33,134, 24, 99,138, 41, 37,133,235, 49, 69, 13, 32, 41,197,168,251, 31, 66,
-136, 33,120,239, 83, 12,222,123,245, 52,107, 45, 24, 64, 45, 54,137,180, 18,179, 85, 85, 85,117,211, 52, 85, 85,167,164,165,139,
- 48,171,129, 98,140,129, 83, 2, 69,185,130,128,164,181,224,104, 52,185,254,137,143,179,202,118, 43, 48,119,206,121,231,242,137,
- 40,101, 4,231,248, 38,137, 83,118, 23,102, 68, 36, 18, 61, 9,134,168,170,171,186,105,148,164,210, 20, 91, 85,149, 49,150, 57,
-117,157, 15,193,199,168,160,222, 43,255, 67, 68, 32,210,133,150, 0,109, 93,143, 38,107, 49, 56, 99,109, 85, 55, 22, 0,218, 54,
- 47,200, 43,140, 15, 33,165,164,150, 5, 61,201, 26, 21,202,187, 28,182, 85, 55, 8,137,172,173, 70,163,241,100, 58, 25,141,198,
-117, 93,147,181, 40, 16, 98,232,187,174,107, 23, 74, 60,245,125,223,183,173, 15, 94,152, 23,139, 89, 12, 97, 50,153, 54,107,235,
-227,241, 84,132, 29, 0, 32, 24, 99, 45, 0, 44,230,115, 31, 92,112, 33, 4, 23,124, 96, 73,154,205,136, 0,192, 20, 15, 7,100,
- 6, 0, 86, 82, 42,165,156,130, 17,203,154,114,132, 76, 41,121,221, 92, 37,222,186,174,107,219,118,177,104, 23, 11,239,221, 98,
-126,120,176,123,190,110, 38,219,167, 78,111,108,110,142, 39,107,198,152,224,157,158, 86, 50, 70, 23, 52, 11, 33,196, 24, 82,212,
-162, 5, 40,167, 85, 16, 97, 0, 13,153,172, 79, 80,250, 65, 52,213, 16, 35,162, 49, 38,198,216,247, 29, 11, 35, 18,136, 36,230,
- 20, 67,240,190,119,174,239,218,174, 93,116,109,215,119,139,221, 11,231,186,118,118,233,153,135,156,124,192,165,211,181,181,186,
-174, 17, 49,135, 92, 17, 76, 41,159, 50, 1,208,163,139, 21,105,116, 65, 66, 4,212, 40,148, 82, 2, 9,217,155, 66,240,193,235,
-202,132, 25, 16,172,177,174,239,188,243,174,239,172,173,200, 16, 0,112, 98, 45,130,250,174,235,218,182,235, 22,174,109,119, 46,
-222, 49, 93, 63,246,200,107,159,180,181,189, 61, 26,141,137, 72,125, 60, 7,157,148,188,247, 49, 4, 91, 86, 64, 4, 25,129,136,
- 0, 48, 48,176,128, 32,128, 49,132,212, 24, 99,163, 49,198, 88,242, 85,140,158,147, 0,138, 46, 60,197,120,120,176,119,176,183,
-131,132,214, 86,198, 88, 17,137, 41, 4,239, 53, 70,244,237,108,118,176,251,248, 39, 63, 99,243,216, 86,211, 52,198, 88,102,214,
- 60, 50,120,174,235,186,249,236,112,118,184,111, 17,241,131, 31,252, 75, 41, 81,241, 72, 5, 80,254, 90,162, 48,228,229,102,139,
-106,125,138,132, 74, 15, 33, 71, 62,156, 31,204, 14, 15,124,223, 49, 71,102,209, 51,127,217,153,171, 47,191,234,225,139,174, 59,
- 56,156,241,234, 35,197,184, 2,222,163,247, 93,215,223,207,248, 70,173,205,238, 63,139, 57,123,246, 44,173,236,204,253,226,113,
-255,170, 92,239,143, 11,250,244,165,244,246,246,246,238,238,238,145, 67, 7,240,136, 71, 60,226,146,211,167,207, 92,113,197,177,
-173,173,118,209,222,121,231, 29, 55,223,124,243,135, 62,244,161,191,169, 5, 93,122,233,101, 47,255,238,239,126,204, 99, 31,167,
-205, 15,223,247,222,187,195,253, 29, 36,211,140,198,198, 86, 74,171, 34, 25, 45, 75,148, 12,214,240,120,120,176,255,147,175,122,
-213,123,223,251,222,251,128,111, 56,115,230,204, 98,177,248,157,183,252, 30, 32,106,208, 76,133, 82, 47,164,250,236,240,112,127,
-109,125,107, 60, 30,219, 92,238,216,130,194, 8, 0,137,128, 89,148, 44,191,241, 93,239,252,153, 87,255,199,191,214, 41,123,241,
- 55,254,219,183,188,245,237, 72,182,236, 15, 34, 25, 34, 99,172,181, 85, 93, 53,205,100,109,125,235,248, 9,215, 47, 20, 31,102,
- 40, 41,146, 25, 99, 84,186,220,214,117, 51,154, 76,159,244,228,167,188,230, 53,255,101,109,109,250,133, 59, 53,230, 26, 35,149,
-122, 26, 50,224,167, 12, 66,171,170,174, 71,227,245,141, 99,237,226, 48,122, 87, 16, 52, 43, 30, 1, 0, 4, 36, 67,214, 86, 77,
- 61,154, 76, 38,163,209,248,199, 94,249,163,215, 95,247,132, 47,112, 65,137,147, 66,111,230, 56, 0,217,188, 82, 99,140,173,140,
-173, 42, 91, 85,117, 51,153,110,120,239,246, 46,222,157, 98, 84, 24,169,245, 46, 34, 16,146,181,182,174,171,209,104, 52, 26,141,
- 16,225,171,190,242,121,223,242, 77, 47,254,130, 22,148, 83,110, 74, 81,193,160,112, 46,244, 9, 17,149,143,177, 85, 85,168,221,
-166, 30, 77,103,179,131,217,254, 94, 12, 94, 56, 41, 62, 65, 16,144,196,156, 88,152,136,172,177,193,247,151, 94,122,217,119,125,
-199, 75, 63,239, 5, 9, 75,102,131, 57, 9,107, 33,196, 90,121, 98,134,168,121,239,140, 49,138, 76,200, 84,104,108,215,245,179,
-195,195,131,189,221,253,221,157,221,157,243, 23, 47,156,223,219,219,109, 23, 11, 17, 24,141,167,205,104,226, 92,187,181,117,252,
-251,190,231,229,159,103, 96,204,229, 47, 2,162, 96,249, 2, 65, 0, 51,255,161, 5,148, 49, 90,183,107,197,166, 85, 62,145, 33,
- 91,137, 64,140, 28, 98,116,125,239,189, 87, 33,201, 37,167, 47,219, 62,113, 42,133,112,252,248,246, 79,252,135, 87,126, 94, 78,
-189,124,104, 98,211,211, 70, 43, 88,141, 74,181,165,117,123, 41, 9,149,178, 33, 50,214, 86,149,181,149,181,149,177, 86, 15,232,
-104, 60,185,244,242, 43, 31,250,200,107,142,111,111,141,198,227,159,254,201,159,248, 92, 3, 35,106, 13,205, 32, 40,194, 2, 0,
- 40,130,185, 3,166,121,151,181,189,144,201,141, 21,120, 68,132,100,140,181,134,200, 32,228, 42, 87, 31,144, 9, 36, 28,143,199,
- 39, 79,157, 70,128, 55,188,254,127,253,217,159,189,255,173,111,123,235,251,222,247, 39,159,145, 99, 4, 96,102, 0, 24, 56, 43,
-132,188, 33, 72,136, 0,204, 40,162,149, 47, 17, 25, 67,164, 52,153,238,178, 89,122,152, 37, 66, 16, 72, 28, 83,140,194, 92, 58,
-195, 0, 0, 2, 50, 26,143,175,187,254,250,199, 63,225, 9,222,247,127,116,227, 31,190,250, 63,253,236,189,248,208,192,122,101,
-222,147,243, 98,136, 12, 41, 69, 3,197,149,140,181,150,172,213,165,228, 80,173,223,181,149, 86, 29,182,170,234,102, 52, 26, 79,
- 70,147,105,211,140,171,122,100,108,133,100, 0, 48,177, 68,230, 24, 83,140,252,232,107,175,253,233,159,122,213,208,224, 58,178,
- 32,214,170, 38,198, 82,106,233,155, 54,182,178,186, 25,186, 71, 89, 59, 67,198,154, 92,192,231,160,160, 95,150,239,144,209,239,
- 85,182,170,108,221, 24,107,145,140, 8,164,196, 49,166,224,131,243,174,239, 93,239, 92,240,225,251,191,251, 59, 63,173,133,212,
-133,169,178,182,174,234,186, 30,105,123,210, 26,107,136, 10,109,148, 64,148, 98,163, 97, 53,136,164, 62,100, 52,181,149, 66, 14,
- 53,168,146,209,143, 90,202,133, 24,115,203,170,119,202, 26, 57,239,122,231,254,205,215,127,221, 61, 23, 68,198,228, 66,124, 52,
- 26,141, 71,117, 83, 91,107,141, 33, 4, 73, 41,250, 16,130,119, 41, 38,237,186,170,200,160, 80, 28,132,148,255, 66, 72, 80, 90,
-206,186,161, 90, 93,169, 39,100, 82, 32,132,140, 35,188,215, 0, 17, 66,104,154,250,234,171,174, 60,178, 32, 99, 76,211, 52, 77,
-211, 84, 85,101,140,201, 86, 73, 49, 70, 37, 62,122,231,186,224,251, 24, 99, 57, 62,128, 68,217,203,200,168,227,175,226, 96,205,
-188,154,238, 98,202,160, 33,248, 16,188, 47, 11,243,193,123,223,247,222,251,232,195, 63,253,178,103, 30, 57,101,132,104,140, 1,
- 4, 2, 20,145,148,162,158,106, 22, 73,234, 93, 62,176,176, 49, 76,198,104, 66, 69, 0,107,141, 26, 8,145,244, 16, 65, 38,143,
- 69,233,119, 22, 86,244,162,146, 18,181, 77,212, 2,185, 44, 43,165,200,194,134,170,209,168,233,123, 87, 0,154, 54,220, 5, 88,
-162, 54,101, 17, 49, 87,105, 0,218,214,240,157, 75, 49, 26, 91, 17, 17, 39,214,115,103,200, 32, 96,161,203, 24, 16,181,190, 86,
-238, 45,134,208,187,190,239,123,175,236, 86,136, 3,163, 18,243, 35,113, 98,237, 99, 76, 38,147,149, 5, 9, 8, 39, 37,240,141,
-209,176,148,153, 57, 4, 52,182,106, 70,227,196,220, 45,230, 33, 6,107, 43, 34,131, 72,214, 90, 50,148, 77, 1,156, 35, 89,169,
- 42, 83, 74,222,251,190,107,189,119,234, 43, 41, 51, 77, 49,198,200,156, 56, 67, 23,101,223,232,178, 75, 79,239,238,238, 13, 16,
- 86, 16,128,140, 65, 36, 86,118, 65,223, 35,106,203, 3,200,216,166, 25,139, 72,223,181, 49,248,170,170, 81, 11,120,230,152, 34,
- 36, 6,204, 76,121, 33,143, 88,237,160,219,148, 98, 92,109,229,106,180, 27,192, 58, 17, 25, 91, 61,236,161, 15,254,203, 15,126,
-184,164, 14, 68, 50, 54,159,139, 21,144,166,105, 68,191, 64,194,170,174, 1,145, 99,140, 49,184,190,143, 38,154,204, 9,131,128,
-164,196, 74, 30, 42, 5,200,137, 51,226, 22, 30,186, 76,137, 89, 41,175,196, 67, 18,215,188,103,175,190,250, 65, 43, 32, 31, 81,
-129,232,192,164,150, 38, 85, 73, 90,249, 59, 0,128, 44,144, 88, 98,140,226,131,158, 44, 17, 80,158, 85, 65,192,224, 84, 49, 50,
- 25,131, 3, 53,192,138,114,152, 83,210,124, 98, 12,113,202, 45,140,186,174,143, 84, 29,153,103, 40, 60,115,225, 98,139, 62, 66,
- 35, 99, 74, 81,207,171,115,193,251,236,147,169,172,148,200, 26, 83, 74, 17, 13,217, 57,116,139,176, 98, 4, 22,102, 73, 69, 69,
-167, 49, 63,229,240, 73,230, 81,143,124,216, 7, 63,252,177,220,192,211,182, 82,177, 4,103, 78, 70, 6, 83, 39,230, 20, 99, 8,
- 49,122,231, 52,166,121,239, 57, 69,197,225,154,105,196, 90,229,227, 6, 24,103,141, 37, 99, 64, 36,132,144,125,128, 33,191, 87,
- 68, 99, 44, 40,193,133, 0, 0, 79,125,242,245,121, 65,204,146, 18, 31,101,168,243, 35,163,219, 24,189,247,193,103, 98,184,239,
-123,165,172,149,108, 68, 34, 16,237,111,152, 21,214, 6,149, 89, 51,182,210,190,209,192,166,107,196, 7, 1, 21,147,114,138, 32,
-146, 82, 50,182, 94, 95,155, 0,128, 21,230, 24, 67,110,185,151,204,207,146,113,109, 82,217,136,243,222, 59,223, 59,215,187,224,
-189,243, 46,134,160, 71,157,136,176, 66, 17, 97, 16, 83, 66,182,230, 56,133, 74,204, 6, 17,151, 46, 89,220, 65,247,215, 90,203,
-204, 34, 9,137,158,251,229,207,188,229,206, 93,203,194, 26,178,138,161,180,209,149, 41,174,162,194,210, 20,228,135,147, 28, 99,
-150, 30, 13, 73,131, 32,227, 20, 50,134,180, 79, 99,140,177,150, 98,196, 28, 24,178, 31,232,185,203,128,203, 88,223, 45,180, 51,
-182,190,113, 92,238,216,177,204, 28, 98,224,152, 35,169,254, 97, 86, 18, 61,169, 26, 38,134, 48,172,174, 84, 1, 89,225,153, 1,
-157, 26, 38,183,171,169,112,231, 85,222, 44, 16, 89, 70, 42,173, 38,132,140,106, 67,162, 32,165,232,201,152,241,100, 2, 0,150,
- 19,167,160,242, 24,237,103, 21, 58, 54, 37,133, 74,156,202,202,180, 90, 74, 92,200, 96, 64,212,142,172, 54, 23,173, 49, 70,235,
-202,170,174,117, 77, 26, 34,135,142, 66, 42, 17, 82,125, 57,197, 32,234,127,204,166,172,222, 50,167, 2, 14,156,235,157,247, 46,
-248,144, 56,234,207,107, 44, 80,167,202, 65, 54, 7, 37,212,192,159,219,161,214, 86, 85, 85,215,165, 31, 89, 55,214, 86,136, 24,
- 57, 36, 77, 97, 37,124, 39,221,107,130,224, 61, 51, 91,107, 43, 91, 39, 83,105,114, 4, 0, 91,148,153, 81, 29, 37,120,239, 67,
- 72, 49, 22, 11,203,145,188, 32,171, 4, 40,230,146, 9,209,100, 42,160,110, 70,163,186,170,109, 93, 17, 82,140,193,251, 16, 99,
-228,178,243, 49,196,148, 18, 34, 6,239, 98, 8,182,170, 84, 87,196,156, 56, 69, 44, 22,226, 12, 12, 66,254,156, 50,244, 73, 67,
- 22, 81,212, 63,160, 29, 61, 95, 3, 65, 75,132,214,216,186,110,154,166,169,235,218,218,138,144, 18, 39,237,103,149, 22, 89, 12,
-193,171,188, 56, 4,223,119,173, 49,166, 25,141,181,135,156, 82, 26,104, 95,155,146,178,225,185, 31,166, 69,190, 38,124,133, 94,
- 34,130, 40,200,165,101,158, 45, 36, 67,135, 53,215,183,214, 24, 99,145, 72, 68, 50,151,227,156,243,126, 16, 92,133, 16,152, 83,
-240,110,118,120, 0, 0,235,155, 91, 77, 51,170, 71, 35, 67,100,173, 85, 7, 0, 0, 27, 83,116,189,139,218, 20, 11, 62,198,164,
- 1, 99, 40, 98,151,198, 24,226, 55,103,228,176,164,216, 74,187, 58,165, 20, 33,113,140,170, 26,241,174,215,198,175,207, 94,225,
- 15,246,118,156,235,182,142,159,154,174,173,141, 39,147,166,170, 19, 39, 99,109,249,141, 96, 83, 76, 42,188,211,230,104,233,117,
- 80,201,147,229,207, 50, 86, 38,245,107, 68,100, 98,109, 22,105, 48,243,206, 41,184, 83,146, 94, 37, 98,125,175, 66, 49, 23,188,
- 59,220,223,157, 29,238,108,109,159,222, 60,190,189,182,190, 49, 26,141,136, 12, 7, 33, 50,198,100, 80,101,181, 79, 50,116,199,
- 16,134,194, 26,114,203, 53,183,119,243,217,103,142,154,250, 84,146,101,173,229,148, 98,136,222, 59,141, 8, 82, 50,177,243,174,
-215,102, 71,219, 58,215,207,103,135,123, 59,119,173,109,108,159, 56,117,201,198,230,214,120, 60,214, 85, 32, 2, 33,114, 41,226,
-109,241, 9, 64, 84, 1, 78, 46, 11,151,138,135, 35, 41, 95,137,161,164, 63,204,108, 17,209, 88,107,173, 3, 0, 99, 60, 2,106,
-244, 82, 31,234,186,182, 91, 44,250,190,237,218,197,254,206, 93,100,171, 7, 92,122,197,177,227,219,227,201,180,178, 86, 51,119,
-110,199,169,140, 16,192, 14, 71,151,180, 70,214, 62, 76, 78, 73,196, 76, 9,163, 4, 73,197,129, 52,195,165,196, 32, 66, 38,164,
- 20, 53, 76,166, 20,201, 24, 66,146,188,101,190,239,251,174, 93,104,127,126,126,176,215,117,237,213, 15,189,230,248,137,147,147,
-233,180,178, 21, 8,164,172,239,200, 13, 56, 31, 66, 6,249,170, 35,129, 34,219,128,225,136,231, 90,215,136, 8,179, 73,108, 12,
-153,132, 49, 21, 24,174,209, 69,157,171,106,234,202, 86,170,126,208, 45,235,250,206,117,109,223,119,125,183, 56, 60,216, 57,243,
-192,135, 61,224,244,165,107,235, 27,117, 93,131,150, 52, 25,178,197, 16,131,247,174,107, 23, 75, 90, 24, 1, 17,144,145, 17,115,
-155,172,236, 35, 0,160, 49, 6,170, 90, 9, 24, 36,178, 85, 37, 44, 74, 23, 1,115, 74,177,239, 23,125,223, 26, 50,166,170,180,
- 13,173,199,182,239,123,239,186,249,225,206,201, 75, 46,191,234, 33, 15, 31,143,199, 85, 93, 3, 64,226, 33, 41, 5, 31,130, 10,
-168,103, 7,251, 10, 63, 36, 21, 31, 17,144, 82, 97, 73,105, 39,150,115, 77,104, 43,171, 29, 49, 53, 42,101,225, 23, 2,131,247,
-110, 54, 59, 56,216,219,139,135, 94,247, 63,113, 74, 49,184,190, 95, 44,246,215, 55,182,159,240,164, 27,170,202,234, 11,199, 2,
-245, 99,140, 33, 68,239, 92,223,182,237, 98,214,181, 51, 0,176, 23, 46,156,207,253, 94,144, 21,234,126, 72,228,234,188,146,139,
- 28,197,252,152,217, 53, 85, 16, 81,169, 21, 19,154,206,167,197,252, 48,134,144,253, 45,198,181,141,173,173, 83,151,223,114,203,
- 45, 49,134,196, 67,103,187, 28,145,210,123, 15,222,135,208, 3, 0,158, 61,123,118,111,111,111,127,127,255,254,214, 22,250,187,
-125,136,200,177, 99,199,182,182,182, 44, 0, 28, 28, 28,220,118,219,109,255, 96,148, 79, 21,121,110,109,109,209, 63, 24,226,239,
- 89, 59,241, 31, 12,244,247,236, 97, 63,243, 63,175,175,175, 63,235, 89,207,122,250, 51,158,113,213, 85, 87, 3, 64, 74, 81,117,
- 87,179,217,225,141, 55,190,235,246,219,110,159, 76,166,211,181,233,100, 50, 61,182,117,236,138, 43,174,184,228, 1,151,104,230,
-204,194, 22, 44,176,118, 41, 96, 93, 21,111,228,130,237,163, 31,249,200, 7, 62,240,129,247,188,231,221,159,252,228,205,247,187,
- 72,116,246,236,217,155,111,190,249,214, 91,111,213,175,175,189,246,218,175,126,254,243,175,121,212, 23,157, 60,121,138, 65,184,
-112,111,165, 24,207,244,151,214, 89,202,131,247,237,162,109, 23, 0, 88,143,198, 90, 28,170, 34,150, 10, 81,164, 31,112,137, 67,
- 75,139, 73,217,100, 0, 21, 5,101,118,131, 83, 12,225,174,115,231, 62,252,161, 15,189,249,205,111,250,248, 39, 62,249,119,101,
-154, 51,103,206, 60,240,129, 15,196,167, 62,245,169,125,223,127,201,151, 60,243, 57,207,123,158, 53, 54, 49, 67,233, 53,175,176,
-123,188,252,192,204, 25,231, 13,136, 95,165,110,174,107,231, 41,166,170, 25, 53,205,200,168,153,136,140, 49, 75, 57, 79, 1, 43,
-128,218,130,200,237,117, 37, 80, 6,222,175, 84,184,222,123, 31, 92,191,179,115,241,151,126,233,151,222,255,231, 31,208, 66,242,
-111,217, 64,230,204,153, 51,207,121,238,243,190,252, 57,207, 85, 46, 83,123, 36,247, 16, 47,101, 49,152, 34,254, 92,200,230,247,
- 89, 88, 15,237, 70,143,170,186, 65,144,174,155,171, 10, 76,189,100,224,210, 20,232, 13,198, 40, 47,137, 74,130,228,151,194, 50,
-122, 64, 6, 13, 34, 98, 85,213,215, 62,230,218, 47,123,230,151, 62,229,201, 79,250,232, 71, 63, 54,155,205,254,118, 12,180,185,
-185,121,236,216,177, 76,190,198,152, 6, 38,175, 88,103,104, 93, 12, 90,228,242,134,200, 16,138, 16,129,182,235, 9, 85, 36,152,
-155,233,182,170,234, 38,165,212,181,115,230, 84,213,245,116,186,142, 68, 34, 68, 66, 68,152,152,181,161,204, 12,218,109, 43,234,
-246, 82, 42, 3, 26, 35,198, 26, 74,198,144, 33,212,174,105,154,174,175,127,199,203, 94, 26, 66,124,247,187,223,253,250,223,126,
-211,223, 94,144,142,105, 41,248, 95,129,146,131,243,148,230, 14, 34,136, 82, 11, 0, 8, 42,245, 96,212, 6, 21, 35, 25, 50,145,
- 19,165,220, 4,101, 99,173, 30,201,217,108,198,209,219,186,110,234, 81,221, 52,100, 12,162,100, 78, 86, 8, 0, 76,254, 80,218,
-241, 8,144,187,207, 34,201,198, 44,102,175,172,247,189,239, 57,197,235,174,123,226,245,215, 95,247,209,143,125,236,183, 94,247,
-250,217,108,254, 55,110, 32,109,210,137,114, 79,159, 90,112,148,254,253, 10, 91, 38,160,155, 45, 2,153, 26, 68, 68,196,132, 58,
- 60, 0, 49, 1, 68,201,209, 23, 44, 17,216, 10, 64, 66,140, 33, 6, 16, 64,132, 60,214, 57, 30, 3, 8, 33, 8, 11,131, 65,137,
- 26,247, 84,215, 60,208,109, 0,168,172, 92, 12, 65, 21,211,198, 86, 15,121,208,131,191,255,123,191,231,240, 96,255,213, 63,251,
-115,159, 58,231,122, 95, 26, 40, 11,129,177,136,214,239,241, 20,150, 35,186, 74,214, 25,138,161,138, 37, 16, 33,206,179, 40,128,
- 0,105, 8,183,192, 40, 8, 56,180, 16, 16, 68, 15,151, 38,180,200,146, 22, 29, 32, 18,102, 58, 1,135,118,228,209,178, 8, 0,
-172,181,227,201,180,110,154,201,100, 58, 59,220,219,223,219,177, 85, 13,136,235,155,199,126,232, 7, 94,209,117,221,207,191,230,
-181,183,220,122,219,223,136,129, 72, 57, 15,193, 79,173,216,238, 97,175, 44, 53, 85,189, 67,142,183,152,197, 33, 34,196, 0, 4,
-144,103,138, 4,137,129,151, 63,174,157, 79,196, 28,241,139,148, 36, 39,123,202,253,173,204, 14,229,201, 2, 25, 98, 57, 26, 91,
- 25, 11, 32,245,120, 60,217, 56,182,117,250,242, 43,251,174, 61, 60,216,243,206,167,148,166,107,107, 47,123,217,191,115,125,255,
-171,191,250, 63,222,255,129,191,184,175,129,226, 74,147, 66,253, 95, 35,142, 8,136, 50,108,156, 89, 87, 80, 65, 71,126, 59, 56,
- 84,117,250,166,152, 0, 69,136,200, 48,137, 33, 98, 98,212,159,102, 89,118,185,192, 24, 88, 38, 49, 34, 67,102, 41,199, 41,155,
-146,219, 99,153,209,144,149, 3,190, 52,217,120, 60, 57,190,125,178,124, 67,152,147,115,238,219, 94,250,109,139,249,226,191,254,
-183, 95,252,240, 71, 62,146, 82,244, 62,220, 7, 6,194, 97,103, 97,233,225,185,137,200, 75, 82, 72,178, 88, 97, 9,143,151,241,
- 9, 0, 8,136, 81,136, 72,128, 13,145, 16, 25, 67,194,204,132,200, 2,160,179, 4, 43, 71, 83, 27,141, 6,179,204,197,100,253,
- 8, 29,225,126,178, 55,149,126, 70,201, 29,178, 66, 18,229,173, 50,214,214, 77,179,190,190,113,226,132,252,200,191,255, 97,145,
- 60,242,210,247,125,187,152,125,232, 67, 31,121,221,235, 94,247,201,155,111,249,130,130,116,118,235, 12, 17, 21, 8,221, 99,199,
-178, 70,136,142, 40,176, 6, 83, 50, 75,142, 85,152,117,231, 66,198, 24,129, 1, 58,164, 40, 72,176, 66, 50, 99,193, 80,218, 72,
- 83, 87,162, 34, 10, 66,194, 37,181, 57,116, 55,153, 11, 22, 57, 2,215,242, 27,208, 79, 8,128,229, 7, 0, 5,176,170,155,117,
- 99,159,240,196, 39, 62,250,218,199,112,138, 23, 47, 94,120,243,155,222,252,142,119,221,248,121,101, 49, 73, 41,102, 18,143,143,
- 56,180, 34,223, 44,172,164,172,121, 93,201,198,195,234,147, 18,123, 74, 62, 34, 24, 18, 81,182,214, 8,136, 64, 4,200,251,191,
- 34,171,203,253, 61, 99,138,149, 76, 1,220,116,100, 7,192, 12, 43, 82,254,117,104,142, 75, 33,241,185,232, 58,203,188,214, 17,
-158,112, 24,213,138, 33, 52,205,248,217, 95,241,236, 47,123,230,151,190,235,198,119,253,222,219,254, 96,181,111,244, 25,178,216,
-160, 51,205,138, 51, 69, 36,131, 69, 86,172, 99, 86,189, 71, 68,152,137, 57, 14,203, 5, 17, 85,106, 32, 17, 10,152, 18,111, 0,
- 65,123, 92,197,121,178,132, 76, 49,115, 54,147,106,158, 74,219,166,156,158,252,155,176,104,163, 0, 69, 16, 36, 49, 18,229,129,
- 60,157, 55, 21, 29, 41,205, 13,226,124,145,193, 82, 98,162, 74,156,224,189, 15,206, 57,239, 31,251,216,199, 94,243,168,127,244,
-214,183,189,253,207,255,226,131,159, 53,139,105,188,144, 65, 81,153, 21, 92, 5,252, 15,140,239,112,242, 7,159, 31,122, 29,131,
- 26,163,104, 50, 96,217,157, 48, 68, 66, 96, 44, 64, 28,124,112,120,104, 85, 65, 88, 36, 16,195, 32,102, 22, 30,107, 67,144,134,
- 6, 51,228,127, 34, 80,145, 12, 0, 51,228, 85,164,196,203, 78,117,212, 38, 84,204,189,244, 16, 66,136,222,133,220, 10,116,222,
-249, 24,195,211,110, 56,245, 9,220, 77, 0, 0, 11, 30, 73, 68, 65, 84,123,249,101,151,254,239,183,188,245, 51, 25,104,144,126,
- 44,235,237,124,136,224,136,183,228, 8,174, 18, 73,157, 12, 74, 49,250, 16, 3,199, 50,144,178, 60,122,178, 2, 18,242, 16,141,
- 30,150,226, 65,104,244,152,169, 16,145,150, 98, 68, 88,245, 29, 0, 68,100,102, 66, 82,128, 90, 52, 40, 42,173,225, 84,222,127,
-204,122,229, 60, 14, 55,232,129,226,224, 62,249, 62, 21,175, 50, 47,253, 41, 17,185,250,234,171,190,225, 95,189,240, 23,126,241,
- 87,238,221,131,140,169,235, 58,147, 53,184, 90, 69,230, 33, 50, 97, 30, 36,101,203,246,127,226, 48,236, 76, 8,138, 53,245,160,
-232, 17,201,157, 17,109,125,194,178,217,165, 5, 41, 46,133, 51,165,186, 32,194,101,117,188,138, 78, 65,139, 28,144,101,192,206,
- 94,146,155,201, 62,132,168,237,246,200, 75,133,212, 74,252, 89,106, 1,189,119,106, 44,157,248,210, 66,115,212,140,158,113,195,
- 83,223,254,206, 63,188,151, 52,159,243, 60, 74,102,103,150,104,141,203,157, 70,136, 88, 90, 49, 32,144,163,226,176,120, 17, 86,
-221, 71,140, 88,238,177,161, 85,217, 82, 25,142, 71, 90,234, 29,169,112, 68,148,249, 2,102, 25, 78,214, 17,128,177, 68,212,131,
- 50, 35,150,160,171, 31,139,194, 34, 14, 82, 89, 53, 80,121,166, 14,157,170, 93,130, 78, 99,114, 74, 80, 2, 62,146,121,224,149,
-103,214,215,166,179,249,226, 94, 24,197,172,123, 27,252, 87,241, 50, 18, 82, 25,255, 7, 36,200,170,187, 98, 25, 21,119,100, 40,
-141,222, 7, 31, 67, 16,241,136, 67,182, 38, 56, 10,239, 12, 13,234,221, 50,127, 36, 44,140, 64,200,130,171,149,224, 61,230, 89,
-178, 10,122, 41,132,137,131, 74,103,144,199,172,204,191,103,170,111,152, 54, 45,151,207,168, 6,143,243,200, 39,171, 59, 35,145,
-153,174,173, 77,167,247,102, 32, 17,144, 36, 34, 40, 42,133,211,171, 6, 64, 20, 35, 3, 22, 75,231,231,114, 81, 89, 8,104,232,
-168,180,117, 77,182,138,198,135,160,194, 3, 30,244, 40, 69,144,187, 18,151,145,164,104,202,114,179, 59, 21, 96,161,246, 63, 90,
-229,228,115, 61, 88, 34, 79, 68,198, 65, 86,147,231,129, 53,199,171, 19,229,231, 71,181,137, 42, 68, 56,159, 10, 30,164,199, 26,
- 15,141,177, 85, 93, 63,252, 33, 15,190,235,238,243,247,226, 65, 56, 4,229, 12,173,139,118, 1, 69,150,184, 49,139,178,116,108,
-114,229, 13,168, 30, 89, 59,235,100,141,173, 26,221,188,124,151, 3, 51, 35,146,112,201, 95, 9,137, 16, 48, 18, 13, 82,145, 1,
-112, 14,133, 24, 15,194, 27,201, 35,180, 71,252,169, 96, 31, 30,230,202, 83,254, 78,226,172, 6, 27, 98, 16, 23,139, 97, 62, 24,
- 88,196, 86, 58,162, 98,201,218,186,170,191,232,209,215,188,243,143,222,253,105, 99, 16,145, 49,229,246,138, 35,194,201,229, 36,
- 2, 44,205,164,243, 38,165, 52, 41,231,146, 7,108, 73,198, 34, 38, 84, 13,113,105,122,115,140, 73, 35,220,192,191, 14,226,234,
- 12,228,117,144, 5, 84,180,207,203,209,245,101,249, 42,172,146,143, 66,223, 14,250,190,162,223, 20, 62, 34, 32,211,255,211, 32,
-113, 82, 28, 75, 68, 74,243, 33,149,201, 1, 99,172,181,235, 27,155, 95,252,164, 39,252,241,123,254,239,167, 22,171,144,147,206,
-106,173,152, 83, 70, 97,168,139,156,110, 69,162,179,180,223, 48,163, 52, 92, 60, 80, 70, 11,138,148, 46, 49, 75,145,133,173,156,
-160,165,224,247,104, 19,158, 74, 93, 2, 71, 50, 89,230, 84,150, 40,146, 72,146, 32,162, 14,122,220, 99, 61,131,246,106, 73, 5,
- 18, 33, 27, 50,108,152, 25,120, 25, 14,141, 33, 67, 22,235,199, 92,251,152, 15,125,248,163,251, 7,179,123,196, 32, 24,232,249,
- 21,239, 1, 88,157,255,205,145,249,136, 52, 23, 4,100, 69,240, 59,196,197,101,126, 85,190,171,200,183,211,114, 51, 87, 75,124,
- 37, 39, 53, 22,153, 1,179, 47,241, 42,226,138, 6,145, 86,113, 44, 2, 48, 97, 74, 9, 4, 24,121, 69,161,121,180,250, 24, 20,
-196,160,196,142, 1, 11,200, 9, 10,250, 24,118,101, 60,158,124,241,147,174,251,189,183,189, 35,150, 6,129, 29,100,224,217, 95,
-150, 27, 42,131,251,172, 6,205,165,119, 21, 53,211, 16, 41, 7,116, 63,148, 62, 25,227,167, 24, 67, 28,124,138, 75, 35,169, 8,
-159,242, 12,188, 33,202,204,181, 49, 8, 96,136,132, 69, 59,155, 5,158,229,145,163,172, 94,213,113, 36, 22,196, 24,152,145,115,
- 49, 88,234, 86,190, 71,140, 0,206,232, 94, 85,149, 69, 74, 15, 84,196,250, 42, 32,123,224,149, 87,254,179,103, 61,253,141,191,
-243,182,149, 90,172, 44,125, 85,243, 34, 71,173,181, 44, 23,243,129, 7, 21,123, 22, 88,146, 82,138,249, 50,135,108, 30,253, 52,
- 12, 0,100, 39, 90,221, 79, 89, 2, 72, 67, 0,156,161, 18,138, 72, 30,195, 66, 65,201,244, 37,194,114,183,243,156,164, 49,198,
-152,148, 18,128,176,177,204,156, 48,201,234,226,151,199, 77, 68,152, 81,111,247,160,108, 72, 91,233,116,138,102, 36,221,101, 97,
- 70, 50,151, 95,126,197, 23, 95,247,216, 79,220,122,215,210, 64, 49,134,162, 17, 26, 26, 62, 75, 15, 26,226, 17,172,254,190,156,
- 49,242,117, 20,249, 0,149,218,112,152,135, 72,197,100,171,231, 43, 19,176,195,123,206,193, 87,131,157, 2, 9, 42,121, 6,134,
-225, 39, 42, 77, 33,213,234,235,200, 95, 46,211,150,168,234,232, 99,165,184,215, 77, 97, 0, 18, 20, 68,202,243,131, 54,165, 16,
- 99, 64, 64, 13,147,198, 16,218,209, 35, 30,241,136,206,151, 43, 16, 84,204, 52, 84,244, 57,176, 45,243, 70, 78, 91,171, 92,194,
- 81, 74, 33,195,179,114,131,202,112,218, 18, 39,133,254, 69,127,155, 15,114, 9, 61, 58,210,119,164,127,130,121,116,109,217,133,
- 53,134, 72,203, 54,181,205,112,171,138, 14,250,112,140, 90,168,136,172,132,207, 37, 15, 50,164, 52,205,188, 2,128, 76, 72,168,
-243, 20,138,243, 76,138, 33,166,160, 44,148,206,203,174,173,111, 92,117,229,153,243, 59,251, 43, 6, 82, 15, 75,137,143,124, 74,
- 57, 66, 41,242, 26,112,202, 17, 71, 42, 86, 43, 10,203, 21,217, 22,175, 56, 38, 15,105,123, 57, 66,133, 75, 18,174, 12,208,101,
-230,204, 26, 75,102,153,101,140,177, 38,203,178,243, 95, 84, 86, 11,136, 82, 54,118,233, 55,194, 43,123, 21,143, 94,143, 66, 68,
-148, 71,166, 98,130,162,163,101, 22,192,164,113,205, 88, 2,168,117,164, 97,121,196,242, 53, 82, 41,199,163,124,191,197,224, 11,
- 5,140, 29,241, 93, 37,153,143,246,169,151,190, 87, 28,173,108, 44,172,180, 84, 33, 51,148,184,202, 57, 13,252, 98,246, 17,253,
-156,207,148, 49,100,109,238,187, 26,210,246, 64, 76,161,228,202,196, 50,236, 75,202,240, 71, 49,162,170,115, 7, 69, 40,128,190,
- 67, 40, 11, 82,250,174,170,154, 20, 2, 14, 83,169,150, 12, 45, 13,148,197,183,131, 12,125,232,184, 39,189, 79, 39, 67,174,229,
- 81, 91,210,156, 75,175, 88,189,150, 72, 68,247, 8,100,213,247, 75,105,139, 90,144, 22,122,103,184,118, 71,135, 97,135,249, 74,
- 53,146, 53,165,199,175,230, 83, 44, 44, 34, 90,113,168, 22, 94,195,224, 50,129, 22,138, 44,133,229, 13, 72,122,251, 87,214,237,
-231, 81, 75,139,198,234, 30,136, 73, 30, 80, 36,225, 64,153, 27, 3,229,246,165, 84,110,203,225, 52,220, 44, 84,174,128,185, 71,
-246, 89,118,168,203, 68, 23, 46, 11,220,149,192, 94, 0,225, 74,220, 95,161,211,112, 41, 77, 26,244,208,122,160,244,186,180,170,
-170,213, 80,198,216, 66, 60,230,218,127,224,233, 66, 25,104,204, 53,125,222,204,200, 49, 19, 28, 41, 6, 61, 95, 74, 69,132,224,
- 83, 12, 41, 49, 32, 88, 91, 25, 83, 83,249,117,100,140, 36, 18,128, 20,113,133,120,160, 35, 6,138, 49,106,161,183,164,157, 98,
-138, 41,202, 50,184, 14,239, 29,202, 16,100,190,136, 77,212,227,181, 75,168,168,124, 25,125,151,232, 22, 80,111,154, 1, 4, 20,
-100, 0, 83,176,141,100,199,206,215, 55,229,137, 15,141,196,122,250, 52, 25, 47,213, 55,229,126,134,124, 7, 87, 8, 41,198, 20,
-226, 48,127, 25,243, 52, 6,139,128,222,242, 18,188, 23, 97, 50,182,105, 26,189, 93,162,214, 41, 80,107, 65, 32, 1,152,178,133,
- 3, 34, 93, 26,200, 59,183,228, 3,202, 17, 27, 38,145, 87, 83,207, 48,131,144,235,126, 45,175,180,161,160, 99, 37, 74,183, 74,
- 26,132,188, 67, 60, 2, 94,246,111,213,172,165,106, 88,225,122,151,244,107,102,221, 6,228,180, 82,207, 15, 15, 29,199,241,195,
-200, 67,182, 78, 8,153,110,140,209,247,125,223, 45, 98,244,128,212, 52,227,166, 25, 53,163,241,104, 52,174,234,166,174, 43, 99,
-173,142,183,169,227, 16,161,210,248, 3,124,207, 6,114,206,197, 20, 37,199,231,161, 44, 24,178,227, 10,135,190,236, 89, 97,161,
-137,135,194, 62,159,180,149,129,175, 85, 24, 82, 26,249,185, 65, 68,218, 35, 18, 50, 71, 9, 32, 97,144,196, 12, 41, 13, 24,117,
-249, 58, 3,130, 24,168, 84,101,134,188,143,101,112, 43,198,200, 41, 15, 73,170,254, 90,152,235,209,116, 58, 93,159, 76,215, 71,
-227,113, 51, 26,213, 85, 99,171,202, 24, 67,136, 2,144,146,234,233,213, 46,156,119,118,105, 32,253, 5,105,200,244, 60,160,228,
-130,102, 5,100, 40, 32, 11,131, 36, 67,138, 84, 74, 86, 86,240,125, 62,149,204, 75,116, 53,156, 81, 69,178,133, 94, 69,164,196,
- 76, 67, 11, 32,196,168, 48, 61,175, 88,175,158, 40,175, 81,118,176, 16, 66, 33,150,251,155, 66,240, 62,134, 16, 83, 72, 49,122,
-231,250,110, 62,159,237,251,174,165,170, 90,223,216,222,216,216, 26,175,173,143,199,227,186,174,171,186,214,144,143, 68,106,245,
- 44,117, 2,224,210, 32, 24, 26,223, 67, 45, 22, 89, 3,141, 6,226,101, 91, 2,151,109,134,229,165,143, 80,176,217,167, 99, 36,
- 82, 90,169,210, 50,222, 94,233,183, 9, 43, 15,143, 68,194, 75,223, 46, 0,128,153,217, 86, 75,100, 60,140,121,103, 98,168,196,
-160, 50,101,149,133,241,193,151, 97,187, 16, 92,223,182,179,118,182, 31, 99, 24, 79, 55,143,109,159,218,216,220,154, 78,167,205,
-104, 92,110, 2, 49,122,164,121, 37,110,148,179,190,236,216,100,209,196, 0, 98, 17, 81,115, 18, 34, 17, 49,144,145,225,135, 16,
-148, 99, 94, 17,202, 13,119,194, 9,179, 16, 49, 51,174,228,124, 89, 14, 25,175, 16, 95,185,200, 24,230, 49,200, 24,162,104, 99,
- 21, 35,167, 84, 37, 78, 41, 89,107,131,241, 67,147, 99,160,199,164, 76, 69,106, 8,136,229,254, 70,141, 56,106, 25,157,200,232,
- 22, 7,109, 59, 35,164,173, 19,167,143,109, 63, 96, 99, 99,115, 60,153, 52, 77, 99,109,165, 45, 92,132, 50,179, 90,198,169,138,
-203,200, 64, 75,100,210,186, 24,168,176,137,132, 36,134, 33, 81,185,183, 87, 64,168,152, 38,151, 60, 26, 20,244,198, 4, 34, 22,
- 33, 22,102, 70,100,198, 36, 0, 38,243,219, 56, 68,217,193,159,148, 9,206, 45,110, 4, 42, 32,205, 91, 91,249,186,170,245, 70,
- 16, 91,146,186, 89, 42, 42, 86, 39, 41,211,112,163, 97,177,139,146,246,222, 59,223,119,139, 3,215,187,201,218,250,169, 75,174,
-216, 60,118,124, 50, 93, 27,141,199,117, 93,107,153,162,164,214,128,239,115, 28, 72,203, 38, 44,151,121,221, 16,124,136, 97, 73,
-152,105,204, 20, 32, 29,188,213,168, 44, 32, 36,164, 54,210,217,199,124, 82,150,146,129,124, 75,109,230,247,133,136, 40,165, 92,
- 6,198, 24,149,251, 99, 98, 76,148, 48, 25, 49, 60, 48,219, 43, 60, 65,202, 87, 38, 59, 85,124, 82,233, 71,107, 17, 34, 75,118,
-142,121, 21,128, 68, 29, 34, 85, 12, 20, 92,183,104,219, 25,139, 92,118,229,131, 78, 93,114,217,120,178,214, 52, 77, 93,213,166,
-178,164,251,170,231,119,217,240,224,161,121,198, 37,232,231, 81,123,239,189,235,156,235,151,132,153, 20, 37,226,192, 9, 65,209,
- 73,161,138, 1, 80,128, 65, 86,254, 91,153, 60, 28,116, 67, 48,116,171,133,133,140, 45,248, 91, 61, 89, 27, 75, 43,116,215,242,
- 4, 9,115,241,138,224, 67,231, 18, 39, 16, 89, 17, 16, 33, 64,185,126, 60,147, 7, 49,166,200, 57,215, 59,215, 45,124,112,199,
-183, 79, 63,232,161,143,220, 60,190, 61, 92,132, 91,186, 50,122, 85, 20,175, 28,121, 53, 76,204, 29,128,252, 58,222, 7, 31,156,
-243,174,119,125, 27, 92, 55, 4,233, 50,147, 92, 56,141,123,232, 21, 63,117, 22,102,184, 64,117,192,204, 71,199, 64, 8,141, 32,
-161, 8,193, 82, 1,186,172, 42,238, 65, 12,210,138, 80, 68,209,139,235,251,182,157, 47,230,179,190, 91, 4,239, 56, 95, 6,149,
-117,178, 44,185,169, 28,163,143,209, 35,226,246, 37,151, 95,245,160,135,159, 60,117,106, 60,158,232, 96,232,145, 98, 16, 64, 86,
- 11,232,114,185,128,246, 20, 53,148,101,148,160, 87,106,120, 31,130,215,198, 28,158, 61,123,118, 64, 40,127, 71,115, 71,159,126,
-210,230,190,121,161,191,222,203, 34,226,255, 7,169,229,123,123, 99,138,172,155, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/claystrips.png.c b/source/blender/editors/datafiles/claystrips.png.c
deleted file mode 100644
index b6ebc54ebb2..00000000000
--- a/source/blender/editors/datafiles/claystrips.png.c
+++ /dev/null
@@ -1,290 +0,0 @@
-/* DataToC output of file <claystrips_png> */
-
-int datatoc_claystrips_png_size= 9087;
-char datatoc_claystrips_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 6, 0, 0, 0,226,152,
-119, 56, 0, 0, 0, 1,115, 82, 71, 66, 0,174,206, 28,233, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, 0,255, 0,255,160,189,167,
-147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,220,
- 3, 18, 11, 2, 3,179,242, 79,233, 0, 0, 0, 25,116, 69, 88,116, 67,111,109,109,101,110,116, 0, 67,114,101, 97,116,101,100,
- 32,119,105,116,104, 32, 71, 73, 77, 80, 87,129, 14, 23, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,125, 91,143, 37,199,113,230,
- 87,153, 89, 85,231,214, 51,211,195, 33, 72, 13,181, 94,131, 67,137, 23,107, 13,138, 52, 47, 35,122, 73, 8, 16,236, 39, 61, 88,
-128, 40, 81,126,144, 4,239,171,254,131,159, 23,254, 27,122,149, 13,120, 33, 8,235, 39,173, 5,173,177, 90,136, 38, 69, 64,182,
- 41,137,226,144,115, 35,102,166, 79,159, 91, 93, 51,115, 31, 42, 34, 39, 42, 79,158,230,202,242,202, 90,123, 26,104,244,189,186,
- 42, 51, 50,226,139, 47,190,136,147, 1,240,120,240,246,175,246,166, 30, 44,193,131, 13,120,176, 1, 15,222, 30,108,192,131, 13,
-120,240,246, 96, 3, 30,108,192,131,183,223,252,155,249,109,186,153,233,108,134, 43, 79, 60, 1,103, 45,138,162,192,227,143, 63,
-142,178, 44,225,156,195,102,179,193,123,239,189, 55,250,253, 44,203,240,225,245,235, 56, 61, 57,121,176, 1,191,210,177,211, 26,
- 90,107,124,226, 19,159,192,107,175,189,134,171, 87,175,226,145, 71, 31,133, 82,195,129,156,148, 37, 0,192, 57, 7,107, 45,148,
- 82,225,103,222,123,120,239,195,231, 0,112,253,250,117,188,245,214, 91,248,251,183,222,194,141,235,215,113,227,198, 13,116, 93,
- 7,248,223,254, 28, 51,251, 77,101,194, 58,207, 49,159,205,240,228, 83, 79,225,149, 87, 94,193,139, 47,190,136,135, 47, 93,130,
-115, 14, 93,215,193, 90,139,182,235, 0, 0, 69,158, 67, 41, 21, 22, 59,203, 50,104,173,145,101,217,104,241,189, 88, 96,185, 65,
-239,191,255, 62,190,251,221,239,226,199, 63,254, 49,238,220,185,131,174,109,255,253,110, 64, 94, 20,120,242,169,167,240,217,103,
-159,197,213,171, 87,113,229,202, 21,104,173,209,117, 29,156,115, 97, 33,123,107, 97,173, 13,139,169,149, 66,150,101,232,173, 69,
-145,231,208, 90,143,172,158,223,248,107,231,220,240,238, 61, 84,150,193, 58,135,147,123,247,240, 63,254,246,111,241,191,127,244,
- 35,124,240,193, 7, 88,157,158,254,251,217,128,203,143, 61,134, 39, 62,245, 41,124,246,217,103,241,202, 31,254, 33, 30,190,116,
-105,180,232,236,195,121, 3,156,115,104,233, 36,104,173, 81,228,121,248,122, 62,155, 5, 11,143, 23, 94,158, 6,190,142,247, 30,
-150, 54, 68, 41,133,211,211, 83,252,253,155,111,226, 39,239,188,131,159,189,251, 46,174, 93,187,246, 91,227,158,254,197, 55,224,
-241, 43, 87,240,185,207,125, 14,207, 63,255, 60,254,227,239,254, 46,142,207,159, 71,219,117,240,222, 7, 95,206, 11,159,101, 89,
-176, 92,107, 45,250,190, 71,111, 45, 12,197,136,186,105, 96,173,197,185,163, 35,104,173,247, 22, 61,254,200, 27, 32, 55,193,210,
-201,106,154, 6,187,237, 22,215,174, 93,195,123,239,189,135, 55,223,124, 19,255,248, 15,255,240,111, 99, 3,102,243, 57,254,243,
-171,175,226,229,151, 94,194, 39, 63,249, 73, 92,190,124, 57,160, 23, 0,208, 90, 67,101,217,176, 80,145,213,242,231,206, 57,180,
-109,139,182,235,160,148,130,209, 26, 93,223, 3, 0, 22,243, 57,180,214,112,206, 33,203, 50,100,116, 45,190,190,116, 67,124, 45,
-107, 45, 44,197,151,158,174,211,180, 45,154,170, 66, 93,215, 56, 57, 57,193,187, 63,251, 25,254,219, 95,255,245,191,170,107,250,
-181, 54,224,252,241, 49,190,244, 39,127,130,171, 87,175,226,194,241, 49,142, 22,139, 96,229,222,123, 24, 99,194, 63,144,110, 39,
-203,178,251, 65,150,252, 54, 91,170,115, 14,125,223, 7,235, 85, 74, 97, 62,155,133, 83, 99,140, 9,127, 27,191,141, 92,144,181,
-104,218, 22,109,219,134,191,235,186, 14,117, 93,163,218,237,176,221,237,208,181, 45,150,167,167,184,121,227, 6,254,251,223,252,
- 13,110,223,188,249,255,199, 6, 92,124,232, 33,124,227, 27,223,192, 75, 47,191,140,217,116, 58, 44, 52, 45, 44,163, 21,137, 88,
- 84,150, 33, 19,238,199, 57, 7,103,109,248,199,210,109,100, 89,134,190,239,131,251, 49,198, 96, 82,150,240,222,163,235, 58,204,
-231,243,209,181, 83,110, 72,186,183,237,110, 23,126,191,235,186, 1,158, 2,232,105, 51,214,235, 53,178, 44, 67, 93,215,248,201,
- 59,239,224,175,254,242, 47,127,163,168,233, 87,218,128,115,231,207,227,235, 95,255, 58,190,240,133, 47,160, 40,138, 17, 4,140,
-177,186, 86, 10, 16, 27,194,139, 12,239,225,163,127,204, 22,203, 39,196, 57,135,166,105,208,245, 61,138, 60, 15,238,172,239,123,
-204,102,179,189, 83, 21, 47,126,223,247,225,122, 50, 22,244,125, 31, 54,131, 97,111,181,221,226,206,157, 59,152, 76, 38,200,243,
- 28,167,167,167,248,193, 15,126,128, 31,254,240,135,216,109,183,191, 29, 27,144, 23, 5,190,248,197, 47,226,171,111,188,129,243,
-231,206, 5, 95,204, 22,205,254, 89,126, 61,242,205,188,184, 2,201,132,197,243, 62,184, 32,185, 56,117,211,160,235, 58, 76,202,
- 18,179,217, 44,248,245,233,116,186,247,247, 62,113, 10, 56,183,144, 27, 32,175,223,247,253,144,119,120,143,182,105,112,122,122,
-138,249,124, 62, 66, 91,255,248, 79,255,132,239,125,239,123,120,255,151,191, 68,211, 52,225, 57,126, 99, 27,144, 41,133,103, 63,
-251, 89,252,151, 63,251, 51,124,250,211,159, 30,225,116,233,207,179, 44, 11,110, 72,186,128, 44,203,194,131, 75,191,205, 65, 52,
- 88, 45,197, 1,182,126,107, 45,218,182, 69,211,182,112,206, 97, 58,153,132,107,207,102,179,224,214,148, 64, 70,222,251,209,102,
-112, 80,103,100,197,247,237, 68, 96,230,251,104,219, 22,235,213, 10,219,237, 22,211,233, 20, 69, 81,192, 24, 3,173, 53,242,162,
-192,245, 15, 63,196,219,111,191,141,255,249,119,127,135,187,119,238, 96,179,217,192, 19, 0,248,127,182, 1,153, 82,248,210,151,
-190,132,175,253,233,159, 98, 49,159, 7, 24,201, 11,200,214,158, 17,181,192,139, 41,173,159, 79, 69,140,225, 99,183, 17,252, 63,
- 16, 78, 3, 47, 82,219,117,152, 77,167, 97,115,138,162, 24,197,154, 17,158,167, 5,229,239,117,125,143,186,174,209,245, 61, 12,
-221, 87, 79,215,102, 3,225,141,170,171, 42, 24, 24, 7,110,109, 12, 84,150,161, 44, 75, 20,101,137,174,109,241,211,159,254, 20,
- 63,121,231, 29,252,228,237,183,113,227,198,141, 95, 59,159, 72,110,128,210, 26, 95,254,242,151,241,213, 55,222,192,156,142, 63,
- 47,120, 88,120,122, 88,249, 49, 14,142,177, 59,226, 13, 11, 27,112,192,255,243, 6,176, 43, 50, 90,195, 24, 19, 54, 32,143, 50,
-227,216,250,229, 6, 55, 77, 19,172,221, 82, 28,145,167,129,255, 23,103,209,174,239,177,221,110, 67,188, 97,247,202,107, 96,204,
- 64,159,221,190,125, 27,255,235, 71, 63,194,219,111,189,133, 95,252,252,231,255,124,138, 6,192,159,199,139,255,250,235,175,227,
-245,175,124, 5,243,217, 44, 88,190, 49, 38,208, 3,169,119,185,232,108,245, 90, 88,190, 76,194,216, 90, 51,250,200,139,198,139,
-202,191,163,148, 2,188, 71, 71,176,148,131,120, 81, 20, 35, 67,144,159,103,156, 97, 39,178,102,118,135,241, 41,149,208,214,211,
- 66,247,125,143,166,105,194,117, 84,244,236,179,217, 12, 79, 92,185,130, 79, 63,249, 36, 30,122,232, 33,156, 44,151,216,172,215,
-191,230, 6,100, 25,222,248,218,215,240,229,215, 95,199,185,163,163,224,219,195,113,167,223, 73,157, 2,249,181,116, 79,241,239,
-197,249, 64,240,231,226,154, 50,142,240, 27,199, 8,165, 20,138,162,216, 63, 1,194, 0,194,198,136,132,173,167,128, 44,145, 90,
-223,247,163,216,101, 9, 26,231,121, 14, 67,207,108,140, 65, 73,236, 44,111,162,124,198,249,124,142,199, 30,123, 12, 79, 63,253,
- 52,202,201, 4, 63,255, 21, 79, 67,112, 65,231,206,159,199,183,190,245, 45,188,244,210, 75, 56, 90, 44, 70, 15,205,150, 42, 33,
-165, 92, 28, 25,116,247, 78,132,240,205,242,251,169,192,201,239,140, 82, 36, 69,225, 9, 45, 25,173, 49,159,207, 3, 12,150, 49,
- 68, 34, 35,240,102, 18,199,180,217,110,135, 5,213, 58,184, 34,222, 80,201,200, 42,165,208, 81, 54,174,148,194,234,244, 20, 39,
- 39, 39,184,120,241, 34,242, 60, 15,255,131, 93, 25,255,127, 0,168,235, 26,239,190,251, 46,190,253,237,111, 99,189, 90,253,223,
-159,128,231,158,123, 14,255,245, 47,254, 2, 87, 30,127, 28,139,249, 60, 4, 43,165, 84, 8,178,236,251,226,133,148, 46, 71, 90,
-112,216, 12,233,118,132,191,150,113, 32, 70, 70,242, 20,240, 3,202,235, 74, 43,142, 99, 83, 42, 47,136,239,155, 23,159,249, 37,
-134,171,236,218,188,247,232,218, 22,206,123,148,101,137,237,118, 59, 58,185,155,205, 38, 24, 4,159, 70,254,249,133, 11, 23,240,
-194, 11, 47,224,131,235,215,113,239,238,221,143,223,128,167,159,121,230,207,191,249,205,111, 6,254, 70,107, 13,107, 45,202,178,
- 28, 61, 92,252, 32, 33,249, 74, 88,124, 88,244,136, 32,147,167, 73, 90,105,124, 50,100,102,172,148, 26, 78,129,181,200,201, 93,
-228, 84, 47,136, 93, 86,202, 29,202,205,224,235, 4, 74,131, 2, 51, 95, 83, 22,129, 44,185, 39,165, 20,202,162,192,122,189, 70,
-215,117, 48,198,224,252,133, 11, 35, 96, 16,146,204, 44,131,166,204,253,185,231,158, 3,128,143,117, 73,234,115, 87,175, 2, 64,
- 88,112,107, 45,180, 82, 33,250, 75,146,139, 23, 94,243,194, 75, 11, 22,254, 44,184, 4,250,158, 34,107, 83,148, 29,139,149, 9,
- 31,179,136, 39,210,145, 69,243,169,236,201, 37, 65, 4, 76,105,253, 35, 88, 43,232, 17, 25, 51,120,241,229,102, 72, 18, 47,203,
- 50, 20,130,254,232,251, 30,199,199,199, 33, 22,236, 8, 37, 49,194,226,211, 83, 22, 5, 52,185, 52,231, 61, 62,255,249,207,227,
- 43, 95,253, 42, 20,253,239,116, 73, 82, 36, 81,140, 8,140, 49,163, 84, 94, 30,113, 21, 33, 12, 9, 39,101, 80,221, 91,104,233,
- 14,232,231, 50,176,203, 13,201,196,207, 37, 94,215, 90, 67,211,105,236,105,161,242, 40,248,142,114, 11, 50,160,140, 16,150, 12,
-206, 61, 17,127,177, 27,226,205,224, 4,174,169,107,204,230,115,180, 77, 3, 99, 12,150,203, 37, 38,147, 9,180,214, 40,203,114,
-244,127,229,198, 27,173, 97,180,198, 31,188,240, 2,178, 44,195,119,190,243, 29,180, 77,147, 40,207,146,181, 3,128, 86, 10, 5,
- 5,154,192,102, 70,254, 62, 69, 39,179,149,239,185, 24,105,229, 7, 18,177,248,243,140, 16, 6,195, 94,165, 84,192,253,158, 32,
-105,211,182, 33, 96, 34,113, 63, 1,165,208,137,115,244, 51,166,185, 25,210,242,115,179,123,100,151, 35,223,172,181,232,187, 14,
- 57,229, 31, 23, 47, 94,132,214, 26,211,233, 52,184, 66, 94,120,173, 53,114,226,174,216,131,216,190,199, 51,207, 60,131, 63,250,
-227, 63,134,206,243,253, 13,200,232, 2, 0,160,141, 9, 46, 68,137,239, 75, 50, 77, 50,156, 42,225,191,165,127, 15, 31,227,223,
-161, 19, 49,242,223, 34, 56,243, 38,168,136, 89,101, 43,141,171,106,242,132,166,226,129, 18,240,152, 51,237, 56,144, 75, 56,202,
-207,109,180,198,108, 62, 71,223,247, 3, 45,190, 88,160,156, 78,161,180,198,114,185, 28,242, 4,250,123, 25,136,229, 73,208, 4,
- 99,255,224,249,231,241,218,107,175,141,248,176,160,138, 96,107,103,235,144,148, 3, 91,129, 60,194,217, 30,152, 77,159,146,189,
- 19, 16,185,165, 24, 17,141,174, 67, 22, 37,173, 90,146,128,241,145,151,150, 31,111,146,220, 12, 43, 8,181, 80,165,163, 83, 34,
- 51, 94, 6, 35,222,123, 56,186, 15, 38,239,182,155, 77, 72,214,202,178, 68,223,247,168,234, 26, 69,158, 7, 55,206,245,236,172,
-235,208, 57,135,178, 44,241,242, 75, 47,193, 89,139,239,127,255,251,193, 61, 42,208,131, 26, 99,194, 81,149, 55,109,173, 13,214,
- 58, 90,124, 97,217, 18,117,248,120, 65,229,251,190, 15,186,191, 89, 7, 16,145,116, 29, 18, 81,197,185,200, 94, 18, 38, 3,179,
-176, 74, 25,180,115, 50, 58, 54, 50,118, 35, 50, 96, 51,147, 90,237,118,128,247,176,125, 31,114,130,158,104,139, 60,207, 81,144,
-123,153, 16,117,195, 44, 48,127,174,148,194,185,115,231,240,234,171,175,226,197, 23, 95, 20, 6, 67,255,144,143,184, 33,180, 50,
- 98, 44, 19, 22, 31, 47,122,204,116,198, 27, 19,163,158, 56,136,199,144,213,138, 69,214, 74, 5,190, 62,150,160,200, 35, 31,223,
- 71, 12, 85,131,175,167, 0, 25,200, 57, 66, 50,210,141,133, 4,144,138, 66,124, 42,202,201,100, 88,232,201, 4,198, 24,228,121,
-142,166,105, 80,148, 37,234,186,198,106,185, 68,158,231, 1,218, 22,101, 57, 32, 76, 65,217,191,242,202, 43,120,228,145, 71,216,
-149, 15,190,154,143, 78,236, 78,172,181,193,234, 51,177,248, 50,147, 77, 45,124, 42, 48, 38, 93, 81,180, 9, 1,182,146,213, 27,
- 99,130,144,171, 20, 73,143, 68, 71,108,189, 41, 42, 67,210, 40,206,185, 16,216, 3,172,165,140,182,160, 69, 27,197, 0, 99, 48,
-153, 78, 81,148, 37, 76, 81, 12,240,211, 90,204,230,115, 76,166, 83,104,173,177, 94,175, 81,215, 53,118,219, 45,142,142,142,194,
-243, 44,142,142,134,196, 78, 84, 0, 45, 81, 34, 69, 81,224,229,171, 87,161,180,134,226,165,208, 34,121,226, 55, 46,223,177,107,
- 10, 8, 72, 66, 60, 97,141,113, 54,187,151, 20, 69,112, 51,222, 8,127,192,189,177,159,150, 22,202, 11, 47,177,191, 20, 1,240,
-230, 72, 3,144,238,197,210,207,140, 49,131,239,142, 98,128, 68, 68,206, 57, 56,162,182, 79, 79, 78,144,231,121, 64, 64, 77,219,
-222,223,104,165,240,208,165, 75,104,219, 22,155,245,122,160,179, 5,146,155, 76, 38,152, 77,167,152, 78,167,184,112,254, 60, 62,
-243,153,207, 64, 5,151, 34,162,115,202,189,248,216,125, 36,104,135, 20, 85,145, 60, 5,188,192,156,128, 37,114, 10, 31,113, 68,
-188,128, 57,225,244,142,202,142,114,225,101,205, 89, 6,228,120,241, 89, 4,198, 11,220,245,125, 72,168,164, 2,143, 93,145,117,
- 14, 74,107,204, 72,159,180, 89,175, 3,220, 60, 90, 44,134,210,105, 81,192,246, 61,218,166,193,100, 54, 27,174,217,117,152,204,
-102, 33,111,240,228, 90, 89,253,177,152,207, 15,171,163, 25, 10,202, 27, 98,182, 16,145,165,159, 85, 28, 63, 35, 9,216,183,252,
- 67,247, 34,138,250,146,147,231,100, 43, 6, 8,169, 56, 36, 17,157, 44, 28,201,224, 44,197, 5, 18, 0,148, 69, 17,170,100,198,
- 24,172, 86, 43,212,117,141,201,116,138,249,124, 14,219,247,216,108, 54,208, 68, 77,192,123, 44, 22, 11, 84, 85,133,122,183,187,
- 15,169, 41,195,103, 99, 48,198,220,223,128, 81,150, 42,248,115,149, 58, 9, 7, 22, 54, 46,200,164, 24,208, 56, 14,248, 68,133,
- 12,226, 84, 72, 84,195, 6, 97,164,139,161,251,180, 66,101,145,188,158,184,183,156, 54,144, 13,136,209,144, 44,234, 51, 97,199,
-155, 98, 5,162,241, 4, 69, 1,192, 20, 5,166,211,233, 80,212,161, 83, 85, 87, 21,156,181,152, 83, 37,209, 57,135,178, 40, 48,
-153, 76, 80,150, 37,114,170,234,121,112,127, 64,194, 69, 4,122,129,240,174,181,118,175, 40,157, 90,240, 36,250, 73, 36, 97,136,
- 22,122, 47,120, 71,155,144, 58,101,172,148,144, 5,248,179, 72, 57, 41, 32, 96,229,134,230,228,140, 92, 25,187, 34,182,246,212,
- 41, 41,203,114,168, 89, 55, 13,142, 22, 11, 28, 29, 29, 97,179,217, 12, 18, 23,165, 48,161, 18,170, 33, 55,197,155, 39, 11, 84,
- 76,183, 27,196,148,177,120, 72,182, 58, 38,168,156,115, 67, 96, 57, 64, 46, 73, 42, 57,165,126, 56,116, 18,178, 68, 57,241,227,
- 54,149, 23,107, 84, 44,250,152,205,226,123,147,226, 49, 9,101,165, 20,222, 11,177, 88,128,168,121, 14, 77, 39,162,109, 91, 44,
- 79, 78,194, 38, 77,167, 83,116,125, 15,103, 45, 12,233, 90,251,190, 71, 78,238,139,107, 12,147,201, 4,206,251, 16,196, 21,179,
-138,225, 61,162, 3, 82, 5, 15, 31, 45,120,106, 19,246,172, 93, 34,161, 67,137, 89,164,112,115,194,237,201,148,223, 69, 52,134,
- 22,185,139, 36,227,246, 42,111,130, 87,146,137, 22,187, 28, 94,252,160,206,163, 13,225,211, 16,199,141,245,122,141,147,123,247,
- 80, 78, 38, 56, 62, 62,134,179, 22,155,205, 6,125,215,193, 8,101, 69, 57,153, 12, 65,154,174, 23,128, 68,215, 65, 33, 1,253,
-100,246, 40, 57, 32, 62, 54,103,249,217,189,120,146,250, 24, 37,101,238,128,202, 77,110,188,132,115,133,168, 7,200, 83,151,186,
-191, 44,170, 57,135,223, 37,106,187, 19,138,108,201,121, 41,165, 80,150,229,136, 41,182,214,162, 35,216, 57,153, 76,144, 41,133,
-187,119,239, 14,148,196,100, 18,146, 51,195, 37, 77,173,209,145, 52,134,121,173,166,105, 6, 24,107, 12,224,253,125, 24, 42,249,
- 25,169, 84, 72, 21, 53,152,158,216,251,249, 33,173,140,116, 67, 18, 98,210,123,170,182,124,200,173,132,218, 2,163, 26, 82,209,
- 85, 85,181, 39,222,149,174, 71,107, 29, 98,138,124,150, 44,203, 70,149, 48, 73, 71, 56,113, 58, 56, 54,228,100,217, 76,242,157,
-156,156, 96,181, 90, 97, 62,159,227,194,241,241,160, 73,173,235,251, 53, 11,239,135,216,153,101,152,206,102, 40,138, 98,168,180,
-145, 43, 50,114, 97,108, 92,120,161,155,222, 17, 49,181,231, 43,197,105,201, 82,137, 86,204,144,198,191,155,162, 57, 14, 72,207,
-195, 38, 9, 52,196,190, 56,203, 50,148,137, 26,177, 92,108,201,238,202,197,231, 24,199,207, 36,105, 25, 25, 3,216,215, 75,195,
-204,178, 12, 93,215,225,238,157, 59,120,248,225,135,199, 98, 1,231,144,211,198, 58,239,225,233,239,140, 49,104,182, 91, 56,231,
- 80,215,181,128,161,226, 65,227,138, 23,223,164,132,161,214,218,225,194,241,226,127, 12,230,207, 82, 68,220, 25,180,197, 30,199,
- 79,208,144, 51, 85,246,213, 92, 96,137,221, 97,138, 19,226, 86, 40, 22, 2,179, 8, 56,112,248, 66, 20, 16,171, 48,228,189, 24,
- 99, 80, 78, 38, 88,173, 86,104,219, 22,147,201, 4, 71,231,206, 13, 39, 68,107, 52,117, 61, 64, 88,214, 29, 9,215,214,117, 29,
-202,162,184,223,164, 39,249,148, 56, 14,112,224, 83, 7,152,199, 36,245, 28, 23,102, 34,154,195,127, 76,226, 37, 73,183, 56, 31,
-144, 20, 68,219,182,129,117,116, 36,165,145,127, 31,171,239,228, 9,231,103, 27, 81, 14, 98,161,120,227,100,198, 45,101,244, 92,
-138,188,125,251, 54,238,221,189,139,163,163, 35,228,121,142,106,183,131, 39,133,181,230,120,165, 84,112,209, 92,176,209,198, 12,
- 27,224, 36,121, 37,234,182, 25, 45, 24, 87,167, 98,110,197, 37,178, 80, 28, 42,208,124, 12,130, 58,132,166,226,160, 26, 47, 68,
- 31, 89, 23,243, 70, 41, 88, 43, 23, 78,178,159,242,122,114,179,249,251, 49, 10,228,255, 83,150, 37,142,142,142,176, 94,173,176,
- 92, 46,241, 24, 81, 18, 69, 89, 14, 25, 58, 9,203, 10,206, 5,178, 12, 93,211, 64, 41,133,182,235, 80, 87, 21,148, 39,127,197,
- 21,160,192, 9, 37, 84,199,142, 45, 46,166,126, 15, 20, 92, 66, 16,162,119, 31,159, 32, 81,204,207, 14,104, 70, 37, 10,139,121,
- 39, 99, 12, 12,249,126,185, 81, 62,186, 70,124, 93, 67,156, 18, 47,178,204,124,229,166,132,250, 46,209,206,129,132,227, 32, 76,
-144,114,177, 88,224,131, 15, 62,192,102,187, 69,145,231,152,207,231,208,198,160,239, 58,116, 84, 62,117,180, 30,225,228,101, 25,
-202,201, 4,134,143, 47, 43, 22,120, 51, 92,148, 84, 73,218, 90, 30, 99, 21, 87,185, 18,150,183, 39,212, 74, 48,160, 62,194,252,
-242,123, 82,101,237,163,250,174,166, 56,208,146, 66,129, 19,156,164, 4, 68,168, 61,152,144,235,163, 90, 64,236, 94,227, 46,204,
-174,239,209, 19,180,228,205, 45, 39, 19, 44,151, 75,220,187,115, 7,231,207,157, 27,130, 56,197, 22,254, 60, 47,138,128,176, 90,
-170, 31,228,198,192,120, 74,146, 88,135,153,114, 3, 28,136,186,174, 11, 13,119,225,253, 0,247, 63,242,223, 31,179,224, 72,180,
- 48, 73, 12, 31,208, 11,113, 63,177,251,146,106,234, 84,117, 46,174,160,245, 36,127,103,186, 61,150,219,199, 20,119,208, 19,137,
- 56, 25, 19,119,143, 60,250, 40,110,221,186,133,255,240, 59,191,131, 60,207, 49,157,205,194, 41,208, 81, 91,149, 22,140,174,145,
- 62,109,100,185,194,255,115,214, 6, 0, 59,194,219,113,131, 92,172, 9,197, 33,138, 57,177,224, 42,209,184, 17,159,136,184, 3,
- 82,234,254, 51,165, 70,253, 4,135,228,239,161, 51,134,122,199, 24,239,199, 89,116,252,191, 66,193,134,172,152, 99, 15,255, 77,
-211, 52, 88, 44, 22,120,255,151,191,196,127,250,253,223,199,241,133, 11, 35, 69,133,228,161, 24,113,221,231,130,168, 24, 35, 89,
- 78, 25,148,229,162,177, 27, 96, 81, 43,136,172, 11, 15,113,198,130,199,139,157, 9,152,155, 90,236, 67, 27, 32, 85,212, 44, 87,
- 47,242, 28, 59,234,255,146,192, 64, 26, 85,104, 87,165, 77,154,205,102, 48,132,238,228, 6,201, 66, 79, 74, 73,205,139,202,240,
-213,210, 61, 77, 72, 35,244,222, 47,126,129,201, 51,207,220, 87, 61,144, 75,148, 48,190,107,219, 80, 25, 51,153, 40,142,196, 90,
- 77,169,112, 46,104,247,249, 98,206, 57, 40,194,206,129, 51, 74,248,254,176,224, 9,247,227, 18,139,140,132,208, 74, 6,217, 88,
- 1, 97,140, 65, 81,150, 67, 79,153,176, 54,249, 55,142, 92, 84,219,182,208, 74,225,104,177, 8,113, 32,134,150,210, 35,196,174,
-136,117, 62,242,247,180,168, 45, 88,231,240,238,187,239,226,137, 79,125, 10, 57, 41, 36,156,247,128,240, 22,124, 10,114, 18,191,
-153, 61,205, 62, 91,126,148,177, 74, 78, 62, 21,148, 83, 46,200, 71,110,104,143,212, 59,227,116,140,126, 47,225, 86,164,236,144,
-147, 40,153,165,202, 92,161, 23, 69, 24, 54, 32,174,168,241,194,103, 66, 62, 25,187,174, 17,157,109, 12, 50,239,161, 68,166,204,
-235,178,152,207,177, 90,173,198,144, 85, 92, 87, 54,186, 56,242, 38,102, 68, 31,167,168, 1,162, 40,194,142, 43, 21, 84, 4,163,
-230,139,196, 73, 58, 52, 88, 35,213, 97, 19,147,112, 92, 89,114,145, 79,142,185,253, 92,244, 14, 75,221,191,188,127,166, 45,152,
-120,235, 5,197, 32, 75,149,177,223,143, 51,234, 80, 21,164,191,239,186, 14, 77,211,160,105,154, 16,212, 79,150,203,144,224,177,
-120, 87,214, 21,248, 36,122, 42, 12,153, 84, 6,155, 69, 5,114, 45, 52, 57, 82, 27, 31,138,206,146,204, 59, 64, 45, 28, 90,112,
-217,221, 46,239,197, 31,112,101,210,138, 36, 69, 13, 0,109,211, 12,165,194,201,228,254,105, 98, 45, 41,185, 14, 41,187,148,126,
- 61,238, 49,142, 79,162,244,255,177,122,155, 81,207,209,209, 17,250, 15, 62, 64, 83,215,161,227, 50,206,101,164,235,180, 28,132,
- 71, 42, 4,153, 92, 69,228, 26, 31, 85, 57,116, 67,138,159, 14,185, 22, 28,192,250,201, 77,226,251,144, 10,140, 3, 39, 71, 42,
-159,165,133,199, 56, 62, 14,172,103,125, 95,102,220,123,201,160,115, 48,121,126, 63, 87, 34,235,230,161, 34, 69, 81,192, 59,135,
- 15, 63,252, 16,231, 47, 92, 24,209,229,220, 80, 50,146, 87,134, 13, 72, 80, 5, 35,249,160, 56,158,220, 65,210,117,221, 72,174,
-120, 22, 71,116, 40, 43,141, 33,104,170, 40,147,186, 70,140,215, 89, 4, 85,215,117,128,206,177,245,202, 19,196,165, 65, 43, 71,
- 38, 68,150, 30,171, 45, 70,136, 42,203,224,100, 7, 15,117,221,111,169,177,251,218,181,107,120,242,169,167, 70, 48,151, 79, 67,
-181,219,161, 33,165,117, 81,150,247,201, 56,159,232, 78,137, 31, 66, 50,145, 93,223, 67, 19, 22,102,153,246, 89, 45,168,169, 90,
-109, 60,128, 73,138,189, 92,130,142,136,143,190,164,152, 21, 41,147,229,181, 36, 39, 31,199, 14,105,137, 49, 18,226,153, 67,113,
-126, 98,157, 11,254,159,107,209,252,222, 52, 13, 50,165, 48,155,207,113,235,214,173, 80, 46,141, 93,119,215,117, 65, 35,148,101,
- 25,140, 79, 80, 6, 18,130, 58,241, 51, 14,118,121,158,163,109,219, 32, 99,148,141,124,177,111,151,232,232,172,138,215, 33, 42,
- 34, 94, 56,230,105,226,241, 8, 69, 81,160,239,186, 97, 34, 10, 17, 94,210,144,120, 88, 71, 32,217, 36,161, 39,146, 58,173, 20,
-242,168, 1,208, 18, 32, 96, 8,202,198,200, 45,179,252,183,214, 90,108,214,107,220,254,232,163,209,224, 17, 94, 35,126, 30,110,
- 32,183,214,194,100, 17, 93, 32,231, 56,248, 51,132,183, 93,215,193, 79, 38,201, 62,223, 67, 62, 53, 85,108, 65,164,162, 59, 43,
- 35,150,238, 39,190, 78,128,151,130, 42, 1,117, 60, 74,216, 39,209,140, 76,236,228,233, 25,157, 56,225,158,117,158, 67,115, 25,
-149, 54,206, 90,139,150,144, 80, 85, 85,216,237,118,216,110, 54,232,218, 54,120, 6, 54, 28,107, 45,170,170, 66,219,182, 65,216,
-101, 82,130,172, 24, 13,113,207, 20, 39, 27,198, 24, 84,117, 61,238,255,194,253, 97,124,123,149,169,152, 9,149,138, 8,225, 91,
- 15,117, 77,198,244, 64,223,247,131,178, 32,106,168,208, 90,135, 69, 97,171, 15,240, 79,148, 22, 57, 27,150,113, 33, 84,192,200,
-218, 37,157, 30,126,207,251, 80, 92, 97,119,210,118, 29,218,166, 25,180, 63,147, 9, 46, 28, 31,227,198,205,155,161,206, 44,103,
- 87,180, 77, 3,109, 12,102,116, 95, 74,169,241, 6,248,216,250,152, 67, 23, 41,183,247,126,208, 82, 82,243,116,198, 52, 46,245,
- 79, 37,229,138,169,158, 2, 81, 71,254, 56, 58,226, 80,153, 82, 6,114,206, 60,251,168,143,215,139,209, 7, 65,102, 40, 40,231,
-152, 82, 80, 66,166, 51,218,120, 25, 35,200,133,177,112,184,200,243,208,216,200,242,245, 15, 63,252, 16,199, 23, 47,142, 59,112,
-138, 2,166,239,131,166,200, 89, 59,176,161,158,118, 55, 5, 23, 67, 11,191, 96, 19,181,214, 80,100,109,140, 58,152,214,149,250,
-202, 84, 11,145, 44,222,251, 68,118,123,168, 56, 51, 98, 69,163,123,149,174,164, 35, 74,194, 8,245,155,204, 29, 0,160, 21,215,
- 9,106,139, 4,112,224,160, 27, 43, 51, 36,213,209,247, 61, 90, 49,157,171,105, 26,120,231,112,235,214, 45, 60,243,123,191, 55,
-122,182,190,109, 81, 85, 85, 72,220,192, 65, 56,149,132,200,250,111, 28, 0, 57,203, 99, 40,154, 42,130, 39,191, 78,212,129, 67,
-162, 37, 78,139, 63, 35, 72, 75, 50,142,239,131,181, 62, 60, 23, 78,206,130,144,127, 35,185,127, 41,191, 31, 37, 90,214,194, 69,
-153,126,220,155, 44, 93, 22,103,182, 93,215,161,170, 42, 84, 85, 5, 0, 88, 46,151, 1, 9,113,204,100,174, 42,232, 76,181, 30,
-130,112,150,104,184, 8, 86,168,212, 64, 38,209,226, 51,146, 48,198,132,169, 34,241, 28, 55,159,144, 29,142, 18, 44,105,233,226,
- 4,166,170, 95,103, 13, 4,137,169,137, 64, 15,183,109,208,101,114,192,147,194, 94, 69, 49, 65,142, 55,235, 73,205,236, 19,160,
- 96,143,144,163,133,103, 5,116,136, 5,228, 90, 0, 96,183,219, 5, 99,181,148,116,113,214, 94,215, 53,106, 10,220, 6,114,192,
-197, 33, 26, 88,164,242,124, 81, 46, 62,199,110, 32, 38,157, 70, 13, 29, 9,154, 34, 86, 50, 28,170, 13,140,240,184, 64, 48, 28,
-236,248,235, 78, 44,196,174,170, 70, 67, 96, 99,215,193, 69, 28,110,178, 54,220,172,205,255, 87,248,252,216, 75,132, 46, 24, 99,
- 6,139,110, 26,104,165, 80, 85, 21,238,221,187,135,205,118, 59,140,101, 35,218,158, 71, 25, 44,151, 75,236,170,106,168, 19,100,
-217, 16, 3, 36, 39, 62,202, 62,197, 64,189,216,205,140,228,125, 20,248,242, 60, 15, 69,253, 20, 17,151,154,148, 24, 99,252,179,
- 20,114, 50, 75,149,115, 65,165,206, 7, 0,214,171,213,168,173, 40,238,176,148,195,252,130,242,193,185, 17,207,115, 72,161, 33,
-239, 37, 19, 94,161,109,219, 1,130,110,183, 33, 64,243,243, 54,117,141,213,106,133,211,211,211, 97, 38, 42, 53,117, 59,231, 96,
- 88, 19,106, 83,202,231,104,113,184,154,196,197,232,140, 38,224, 26, 99,144,115,122, 79,169,126, 38, 10, 59,135, 84, 5,114,254,
- 68,204, 66,166, 80, 79,120,120,177, 25, 13, 85,182,164, 74,186,109, 91,204,154, 6,115,154,123, 17, 10,239,236, 58,200,141,142,
-148,207, 89, 6, 37, 79, 0, 97,253, 61, 8, 76,168,176,237,186,161, 48, 67, 16,157,209,215,116, 58,133,202,178,209,224,191,134,
- 96,234,185,115,231,208,118, 29,182,155, 13, 60,157, 86,195,205, 3, 18, 53, 72,109,103, 70, 15, 44,131, 72,128,127,162,237, 83,
-182,129,198,104, 37, 37, 57,116, 9, 25, 99,138,157, 60, 36,212, 98,203,231,222, 49,214,247, 79,167, 83, 84,116,196,251,190, 71,
- 79,238,169,161, 5,145, 67, 58,226, 96, 45,179, 94, 47, 44, 93,198, 9, 43, 50,102, 93,150, 40,200, 61,183,212, 31,160,133,218,
- 66,150, 79,101,207,242,108, 54,195,116, 58, 29, 88, 89,151,168,127,166, 70,199,112,242,163, 4, 21,192,124,183,244,197,204,121,
-200, 38,185,184, 74, 21,187,186, 56,144,230,162, 91, 63, 62, 33,222,123,100,162,200, 18, 55,228,149,147, 9,106,202, 74,243,162,
- 8,147,216, 75,146, 9, 90, 49,111, 66,142,196, 57,132,245, 33,122,232,242, 60, 15,149,193,160,172,238,186,161,217,142,202,180,
- 70,107, 76, 72, 45,119,243,230, 77, 92,190,124, 57,244, 19,179, 27, 83, 74, 97,181, 90, 81, 16,142,230, 56, 28,122,240,216, 63,
-243, 6,236,104,214,154, 34,157,166, 84,154,197, 11, 61,154, 57, 17,181,154, 30,146, 35,198,138,181,152,195,145,115,126,120,224,
-171,119, 14, 29,249,232,197, 98, 17,166,162,240,201,130,208,185,118,125, 31,178,219,152,140,211,137, 33, 32, 18,140, 72,151,215,
-182, 45,170,186,198,233,106, 53,140,177,161, 38, 14, 83, 20, 56, 71, 82, 21,134,171,203,229, 18,119,239,222,189, 79, 71,103,130,
-110,149, 92,121, 44,247,102, 9,139, 76, 76, 60,249, 85,173, 53,244, 25, 52,115,236,223, 15,113,239,113,160,142,121,168,184,101,
- 41,110,228, 54,132,208,118,187,221,125,242, 75,184, 79,166, 36,100, 37,207, 71, 19,192, 98,191, 31,244, 61,226, 99,252, 51,174,
- 22,206,166, 83,180, 77,131, 13,117,203, 24,173,209, 91, 27,166, 50,158,158,158, 98,181, 90, 13,227,119,138,130,116, 65,137,102,
-231, 94, 8,139,226,214,211,184, 27,134, 79, 0, 79, 52, 60,212, 47, 48,154,173, 35,160,175, 60,154,103,149, 49,189,247,208,228,
- 71,157,184,159, 82,184, 5, 9, 26,154,186, 30, 70, 21, 19,111,197, 99,243, 57, 65,146, 42,235, 56, 33, 11, 68, 28,183,226,138,
-210,226,168,154, 70,110,136,131,112,215,117,129,202,168,118, 59,244,214, 98,117,122,138,187,119,239,162,170,170,209,240, 39, 0,
- 48,177,168, 41,142, 7,169,252, 32,158, 86, 37,253,187,236,170,145,200, 74,102,159,169,215, 2, 72, 9,114,247,180, 64, 66,197,
- 16,183, 20,197,243,133,186,174,195,122,189,198,226,232, 8,206,185, 16, 87,164, 27,100, 96, 97, 69,112,149, 60,146,146,185,144,
- 82, 1, 21, 73, 57, 35, 67, 80,102, 66,119,187, 29, 90,106,194,240,222,163,169,170, 1,251,239,118, 3,253,192, 11, 79,109,171,
-134,103,107, 86, 85, 53,170, 36,237,233,242, 19, 83,173,138, 60, 15, 29,127,220,255, 42, 45,112,111,100,101,170, 67, 62, 66, 62,
- 54,130,163,146,204,138, 55, 48, 12,141, 37,183, 35, 55,191,216,110, 3, 53,205, 57,129,108,194,147, 61, 16, 78, 36,115, 49,239,
-100, 5, 76,239, 89, 19, 36,160,167,167, 56, 18, 42,113,194,149, 43,165,176,221,110,177, 60, 61, 69, 79,241,130, 65,202,108, 54,
-195, 29, 0,134,199,206,112,144,136, 27,216,226,114, 99, 56,150,212,104,198, 68,156, 21,115,255, 83,243,219, 82,197,239,100, 91,
- 83,162,150,156,211, 32, 17,185,153,114,100,129,142, 38,232, 50, 49,198,247, 50,165, 70,105,134,162,220, 25,207,227,102, 92, 20,
-216,153, 29,117, 18, 98, 83,188, 40,138, 2, 37, 25, 28,215, 4,154,166, 65, 77,133, 22,166,237, 37, 34,156, 77,167, 88,139, 17,
-104,114, 8,136, 97, 30,166,166,155,145, 74, 3, 45,146,171,152,254,149, 11,196,101, 74,105, 57, 49,172,149,110,202,201,169,234,
-137, 18,165, 84, 39,247,180, 24,135,200,185, 0, 93, 69,230,217, 19,223,239,196,160,214,158,104, 96, 54, 34,118, 33,150, 78, 68,
- 75, 42,230, 64,222, 81, 0,149, 30,129, 45,158,239,131, 93, 55,187,177,134, 42, 93, 28, 23, 23,139, 5,154,166, 25, 32,103,219,
-142,158,183, 38,137,167,201, 34,157,191,148,242,201,241, 91, 49, 38,150,141,211,220,115,107,157,131,141,212,105,241, 34,203,210,
-165, 75,100,224,136,168,241,148, 80, 86, 14,214, 11, 83, 94, 40, 39,225,124,132, 19, 29,231, 28,118, 84,133,226,134, 10,182,218,
-174,239, 7,164, 98, 76, 24, 16, 46, 27,181, 37,241, 22, 98, 16,137,186,156,152,184,107, 73, 49,199,243,172,229,218,221,188,121,
-115,232,134,164,252,198,121,143,135, 46, 94, 28, 10,248,222,195, 88,145,112,100,162, 1, 46,158, 40, 37,221, 4, 19, 81, 33, 23,
-216,237, 6, 58, 66,140, 56,139,149,205,161,199, 76, 10,186,162, 65, 73, 41,169, 74,170,211, 61,116,184, 16, 58,145,253,107,252,
- 55, 21,229, 39,211,233, 20,117, 85, 13,155, 50,155,161,164, 97,124, 44, 19, 9, 98, 45,242,233,188,169, 41,151,169,178, 12,208,
- 26, 69,150, 1,162, 9,187,110, 26,212, 44,117,167,198, 12,118,207, 60,131,154,217, 80,103, 45,214,155, 13, 86, 12, 83,229,172,
-184, 84,159,173,117, 14,153, 88, 32, 89,233, 79, 77,175,141, 19, 23, 89, 73,219, 75,232, 68, 16, 5,171,211, 18,101, 72,159, 16,
-208, 6, 20, 70,228, 22, 43, 29, 24,217,176, 75, 89,173,215,152, 76, 38,184,120,241, 98,200, 98, 59,145,120, 49,101, 33, 11,229,
- 41, 5, 30,183, 24,197,131,101,123, 58, 13, 25, 53, 92,120,239, 3,236,237,186, 14, 91, 2, 3,114,192,121, 77, 53,135, 48,178,
-140,253,219,161,196, 72, 90,117, 30, 77, 84, 12, 13,208,162,254,170,196, 64,138, 34, 33,251,142,133,185,253,129,222,227, 84,151,
-140, 44,148,123,231,144, 69,136, 43, 52, 67, 83,137,210,146, 85,242,230,196,226,168, 64, 97,208, 96, 37, 38,207,100, 64,102,244,
- 35, 3,243,136, 92,164,231,204,148, 66,181,219, 13,100,156,181, 88,158,158, 66,122, 24,118,199,125,223,135,154,136,225,116,156,
-253, 92,140,201,229, 6,104, 65,218,133, 14,114, 94,104,178, 66,153,170,167,134, 55, 73,168, 25,187,158,148,184, 75,139,137, 94,
-113, 60,104,187, 14,158, 94, 33,169,174,235,208, 14, 84, 85, 21, 86,171, 21, 54,155, 13,242, 60,199,165, 75,151, 48,159,207, 71,
-250,165,208,124, 40,220,140,156,148, 30,247, 7,199, 39, 53, 32, 25,154,170,213, 52, 13,118,187, 93, 64, 90,121, 81, 4, 84,196,
- 11,239, 40,145,148,242,124,195, 71, 72,214,114, 83,178, 18,217, 42,100,157, 67, 30,213,129, 25,246,229,121, 30,220,128, 19,181,
-130, 67,139, 28,143, 68,142,171, 93,169, 19, 32, 5, 82,172, 81,229,216,210, 52, 13,150,203, 37, 78, 78, 78,208,117, 29, 46, 94,
-188, 56, 12, 93, 37, 40,106,133,134,167, 35, 14,135,221,149, 49, 6, 77,219,134,110,120,110,196, 75,161, 58, 70, 87, 46, 86, 0,
-138,211,188, 38, 94, 40, 12,152,141, 84,223,148,144,233, 32, 39,137,219,126, 98, 55,196, 62,212, 8,139,151,189,183,123,170,103,
- 65, 87, 28, 74,232,112, 70,149, 44,165,170, 11,121,138,214,208, 98,180,152,115, 14,125,219, 34,163,225,120,109,219, 98,179,217,
-224,248,248, 24,115,122,117,167,160,140,176, 22, 53,189,156,149,148,184, 48,244,118,226, 36, 4,119, 41,220, 88, 72,196,200, 69,
- 49, 28,237,173, 13, 52,132, 38, 68,228, 4, 64,224,156, 41, 52,197,132,177,149, 2, 47, 75,210, 73,106,230,181,214,152, 16,165,
- 26, 6, 94,136, 5,110,154, 38, 28, 83, 62, 9,121,180,152,146, 74, 72,225,250, 67,172,169, 68, 97, 35, 53, 91,215,193,208,189,
- 48, 85, 60,235,123,108,214,107, 44,151, 75, 84,117,141,123,247,238, 97, 58,157,134, 23, 99,144,167, 74,206, 2,226,225,123,117,
- 93,135, 83,145, 2, 14, 1,189,113,114, 38, 80, 98,156, 72, 90,154, 17,225, 5, 69,195, 49,131, 73, 77, 99,173, 69,211,117,168,
-118, 59,100,212,190, 41,135, 99,243, 8,128,120,138,148, 28,214, 23, 72, 42, 57, 12, 67,104,244,229, 72,176, 67,228, 94,234, 53,
- 6,124,244,114, 38, 78, 36, 74, 74, 41, 24,106, 27,229, 69,109,154, 6,203,147, 19,172,214,107,220,190,125, 27, 77, 93,163, 41,
- 75,172,215,235,144, 27,152,162, 0, 8, 5, 49,133,109, 8,159, 91,138, 11,204,221,239,197, 29, 81,168, 41,138, 2,104, 91, 52,
- 20, 63,131, 52, 38,234,182, 12, 74,136,178, 12,192, 67,139,193,230,198,211,241,155, 76,167,123, 67,241,120, 40, 29,143,237,226,
-197,142,199,126,133,151,158,162,122,192, 89,242,148,184, 6, 28, 47,184,172, 64,133, 90, 52,161, 29, 67, 80,153,135,162,246,212,
- 37,223, 25,131,150, 94, 29,239,206,157, 59,216, 85, 21,234,166, 65, 57,153,224,233,167,159,198,165,135, 31, 30, 93,191,205, 50,
-228,100, 88,204,224, 86, 85, 53,212, 13,120,146,138,128,164,204, 7,201,207, 57, 25, 11,191, 39, 74,152,153, 82,152,208,164, 21,
-103,109, 56, 5,108,253,204,157,193,123, 42, 73, 10,171,149, 40, 33,206,140,115,177, 0,241, 20, 90,153,213,198, 69,153,152,138,
- 24,189, 40, 67,162, 22,124,232,149, 50, 70, 42,102, 81,171,104,182, 91,108, 54, 27,236,126,171,177,119, 0, 0, 2,206, 73, 68,
- 65, 84,118, 59,228,121,142, 25,128,106,183,195,148, 70,200, 72,132,199,125,190,146,130,150,180, 2, 15,212,107,232,197,127,216,
-247, 59, 41, 40,227, 53,145,129, 89,142,244,177, 22,179,217, 12, 43, 10,194,185,156, 44, 73,180, 8,195, 83,211,117, 29, 26, 78,
- 92, 68,237,210,123, 31, 38, 99,121,162,115,195, 28,207,104,248,133,161,105, 80,188, 73,129,150, 16,173, 64, 41, 69, 68,220,123,
-155,137,121,112,161,205,147, 11,222,252,114, 87, 81,128,102, 56,185, 88, 44, 70,254, 27,192,240,170,123, 98,182, 4,128,176,113,
-210,184, 24, 5, 5,185,137, 40,164, 56, 81, 27,224,207,101,125, 92,146,117,153,112,171, 53, 21,226, 83,221, 65,124,221,193, 5,
- 17,127, 35, 19, 12, 69, 11, 33,155,203,100,191,112,140,203, 25, 31, 55,162, 90,212, 11,148, 32, 37,126,178,217,205,104,141, 76,
-136, 1,248,232, 59, 33,131, 73,141, 39,230,205,110, 9,245,116,109,139, 83,122,169, 17, 69, 10, 57, 69, 90,125,153,179, 56, 42,
-158,112,220,200,148, 10, 35,229,249,101,170, 88, 11,203,229, 67,153,187,184,232,217,246, 52,174,194, 32,184,198,192,181,228, 76,
-180,114, 57, 58, 81, 25, 48, 52,233,105, 10,104, 0, 6, 13, 60,177,126,124, 51, 74,142,174,164, 28, 64,186, 25,249, 66,155,124,
-131,187,170, 66, 71, 86,176,247,138, 71, 52, 67, 39, 12, 1, 20, 15, 16,203, 87,226,124, 36,188,200, 27, 33,150,144,132,209, 98,
-201,226, 74, 93, 85, 88,158,156,132,105,133,172, 96,227,190,134,150,192, 7, 23,108,182,219,237,208,110,196,197, 22, 97, 12, 46,
-114, 53,146,154, 72, 17,137, 18,150, 50,114, 98,113,150,117, 46,240, 96, 33, 19,102, 77,165,124,117, 33, 14, 80,101, 89, 98, 50,
-153,132, 1,213,169, 49,241,178,148,201,242,188,188, 44, 71,163,123,101, 33, 91, 74,202,195, 56, 74, 17, 99,152, 70,144,245, 87,
-230,107,120,209, 55,155,205,200, 18,173,152,232,251,232,163,143,226,242,229,203,152,209, 75,225, 90,231, 0,122,105,196,160,164,
-163,211,204, 19,208,121,174,167, 87,106,152,243,198, 69,123,218,144,150,105,110, 97, 48,225,100, 18, 49,168, 34, 96,161,201,224,
-216, 21,247, 17, 41,105,186,174,195, 71, 31,125,116, 95,116,171,245,253, 57, 65,121, 14, 80,225,165, 44,138, 33,251,229,128,196,
- 92, 12,249, 75,134,109, 85, 85, 13, 20, 65,228,171,227,217,211, 18, 59,143,116, 68,209, 76, 33,239,253,160,191,140, 40,226, 94,
- 8,104,229,171, 44, 49, 50, 89,204,231,120,255,253,247, 67,158,192,244,181, 38,151,215, 81,198,203,226,179,166,174, 67,241,158,
-101, 36, 77,211,160, 37, 94,200, 37, 12,110,143, 32,228, 87,103,162,181,104,154, 38, 12,238,246,228,254, 60,185,160,170,174, 7,
- 20, 84,148, 37, 86,171,213,240,178, 75, 50,173,150,252, 63, 89,167,162, 76, 81,186, 19,185,192, 76, 90,181,109, 59,200,252,132,
-164, 59,140, 50, 16,175,178, 33,199, 9,164, 50,229, 84,214,204,110,145,255,215,150,168,240,176,168,125,143,140, 90, 86, 89,168,
-165, 8, 20,100, 81, 39, 13,191,122,119, 71,214, 45,135,175, 42,238,135, 38, 35,203,164, 98, 46,158,125, 23,189, 46, 50,207, 34,
-109,154, 38,232,146,156, 76,112,133,225,253, 31, 32, 1, 67,246, 69,185,191,176, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/clone.png.c b/source/blender/editors/datafiles/clone.png.c
deleted file mode 100644
index 291633890c2..00000000000
--- a/source/blender/editors/datafiles/clone.png.c
+++ /dev/null
@@ -1,346 +0,0 @@
-/** \file blender/editors/datafiles/clone.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <clone_png> */
-
-int datatoc_clone_png_size= 10774;
-char datatoc_clone_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0,
- 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98,
- 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,
-155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 21, 0, 4, 16,211, 77, 59, 52, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,
-125, 89,208,101,215, 85,222, 90,107,239,125,198, 59,252,147,254, 86,183,108,203,178,100, 2,106,219,106,201, 50, 54,196, 9,161,
-108, 76,149,137,147, 64,202, 84, 5, 30, 82, 64, 24, 94,108,102, 12, 24,120, 8, 46, 8,225,133,209, 85, 41,147,216,174, 60,133,
-228, 33, 84, 37, 41, 94, 82, 4,140, 95,130,193, 41,136, 45, 91,131, 53, 88,106,245,244, 79,119, 58,211,222,107,229, 97,239,125,
-206,185,127,183,100, 25, 68, 42,169,242, 81,247,223,247,158,255,222,115,246,217,123,237, 53,124,235, 91, 75, 0, 95,237,113,247,
-197,139,247,221,247,134,219,207, 35, 0,124,232,103,127,222, 57,139, 0, 68,132, 68, 90,107,163,181, 54,230,195, 63,255,115,225,
- 67, 31,252,209, 31, 19, 17, 0, 33, 36, 36, 34, 66,182,109, 85, 55, 77,103,237,250,248,191,127,234,127,190,120,245, 42,181,109,
-211,181,109,215,118,157,237,108,215, 61,251,244, 19,207,191,248,194,201,209,117, 4, 6,149,252,200, 15,255,136, 49, 70, 61,116,
-229,138, 48, 51, 51, 11, 60,247,220,211, 4,210, 53,205,108,239,128,210,178, 94,159,205,118,246,191,245, 31,124,171,182,157, 69,
- 64, 68, 36,226,114,182,135, 32,139,211,155, 78, 8, 89, 94,243,218, 55,116,109, 43,204,218, 57,139, 8, 0,132,140,205,122,105,
-187, 38,157,236, 53,173,157,151,170,237, 58,165, 24, 68,180,117,150, 0,145, 4,145,154,166, 50,197,222,222,164, 32,165, 58,219,
- 41, 81, 34, 2, 2,154,157, 19, 36, 2, 0,224,245,106,249,250,187, 46, 88,235,148, 8,136,128, 0,136,160,160,118,206, 33,130,
-136, 16,209, 61,175,185,215, 90, 71,196,128, 26, 0, 4, 0, 64, 3, 90,237,172, 35, 18, 0, 37, 34,136, 40,226, 0, 20, 58, 6,
- 1, 0,100,116,196,244,138,150, 75,245,175,242,188,120,237,107, 95, 75,132, 85, 85,157, 95,187, 71, 30,121,228, 93,239,254, 54,
- 17, 33, 68, 36, 82, 74,249,133,251,195, 63,252,195, 79,255,233,167,226,218,125,240, 71, 5, 4, 1,137, 8, 9, 21,169,229,217,
- 45,203,224, 4,202, 60,255,221,223,253, 40, 0, 80, 27, 23,174,179,221,205,107, 47, 92,125,225,185,155,183,142, 87,203, 5, 51,
-158,158, 28,255,242, 47,127, 4, 0,252,218,137,176,136,200,213, 23,158,205,103, 7,229,124, 55,207,114,103,219,187, 47, 94, 34,
-164,247,124,251,183,147,237, 58,107,173,181,221,245,107, 95,158,204,118,159,254,252,103, 23, 71,215, 59,161,198, 1, 0,116,109,
- 91,215,181,182,206, 17, 50, 17,213,117,183, 94,221,186,248,134,175,111,154,234,130,166,233,206,188,107, 59,214, 44, 16,151, 69,
-152,211,178,100,165,187,206, 94, 56,184,203,186, 46,140,192,175,157,115,142,144,133,168, 72,179,214,225,206,164,176,214,138, 0,
-168,176, 46,128,168,157, 99, 33, 68, 17, 68,156,231,169,115, 12, 0,136,214,161, 8, 10, 56, 68, 66,205,108, 1, 20, 17, 1,128,
-136, 35, 66,231, 4, 17, 17, 24,145, 24,153, 89,224,213, 58,112,252,230,199,126,252, 39,202,162,244,139,228,255, 67,191,207, 20,
- 33,162, 34,245, 91,191,245, 27,215,175, 95,191,243,133,126,234,167,127,198,177, 3, 1, 96,241,151, 69, 0, 36, 68, 32, 36, 4,
- 64, 82, 72, 68,136,164,148, 34, 68,165, 20, 41,245,165, 39, 31,251,119, 31,255,247,227, 11,233,205,102, 3, 32, 16,159, 17, 71,
- 7, 32, 44,207, 78, 27, 49,228, 54, 38,155,128, 82,224, 58, 66,100,212,236,224,159,253,211,127,116,249,145,119,124,242,147,159,
-120,226,241,199, 1, 64,119,109,219, 63,164, 32, 32, 34, 33, 34, 98, 93,173, 79, 23, 75, 80, 38,209, 13, 40, 13, 96,235,211, 91,
-243,253, 75,213,250,140,210,210,185,170,216, 61,104,234,250,123,190,231,123,149, 82,191,244,139,191,160,222,242,208, 91,132,153,
- 89,216,139, 29,139, 8, 56,219,221, 58, 57, 75, 38, 59,208, 86,142, 57,207,139,229,217,105, 49,191,139, 73, 3,168,205,226,152,
- 69, 93,188,120,137, 89,188,158,249,214,119,189, 75, 59,103,193, 47, 37, 0, 18,128, 32, 33,159,156,222, 58,122,225,153,253,187,
-239, 89, 45, 78, 38,179,189, 23,143,111, 82,154,106,194,179,147,163,253,123,238,191,120,241, 18, 34,218,174, 67, 36, 38, 34, 34,
-199,172,173,101,194,176,124, 36, 0, 64, 12,178,217, 84, 58, 45, 89,207,156, 44,116, 82, 42, 7,119, 95,184,219, 24,179,179,127,
- 72, 72,182,235,188, 38, 11,138,147,144,152, 53, 59, 43,128, 72, 32,130,204, 72, 36, 32, 50,155,205, 78,186,122,115,118,131, 92,
- 61, 41,139,233,164, 20,128,174,179,164, 8, 1, 73, 17, 2, 41,197, 14, 73, 33,161, 66, 34,214,214, 58, 66, 64, 33, 64, 64, 32,
-182, 66, 68, 90, 39, 38,155,236,204,119,136, 46, 89,235, 16,129,136, 16,145,153,148, 66,102, 82, 68, 44, 72, 68,130,136, 66,138,
-148,118,206, 49, 34,178, 32, 2, 17, 35,146,115, 14, 17,231,179,153,136, 48, 51, 34,136,160, 8, 16, 33,146,136, 35, 34, 16, 39,
- 4, 36, 34, 66,138,128, 17, 80, 59,118, 20, 5,199,107, 65, 63,241,254, 32, 34, 0, 36,191,241,128, 16, 16, 17, 80, 68,136,144,
- 1, 16, 5, 16, 64, 9,190,122,123,237,111,103,211,246,199,238,238,238,206,206, 46, 0, 52, 77,125,122,122,186,217,108,190,138,
- 11, 61,240,198, 55,190,255,253,223, 29, 36, 51,254,227,183, 62, 17, 41,165, 78, 79,207,126,253, 95,255,171,151,187,208,207,254,
-220,207,179,227,160, 15,195,238, 39,132, 96, 63,253,161,252,197, 72,105,163, 63,244, 51, 63,125, 7,123,243, 19, 63,249, 83,206,
- 58,199,142,217, 9, 51,139, 8, 0,136, 8,136, 8,251,127, 0,132, 69,192,235, 71,230,111,124,251,219,238,185,116,233,115,159,
-251,252,150, 26,177,214,250,239,122,253, 27,228, 0,251, 17, 9, 56, 88,158, 46,218,166,110, 54,171,100,231,176,107, 43,110, 27,
- 67,238,215,126,237,215, 63,244,161, 97,104,100,173,117,225,143,115,214,197,195,191,178, 55,110, 30,221, 60, 91, 94,189,126, 19,
-178,121,178,123,209,117,141,206,102,148,228,136,170,235,218, 95,249,213, 97,202,136,157,227,209, 17, 76, 24,179,115,246,249,231,
-158,216, 44,143, 55, 39,215,119,118,166,182,171, 78,175, 61,171,149,114,245, 90,108,219, 57,215,117,157,181,246, 87,127,245,215,
-194,133,220,112, 48, 51,247, 47,159,126,250, 9, 86,165,206,114,102,103, 69, 19,219,157,253,195,245,122,169,117,210,212,149,214,
-198, 49,219,174,107,187,246, 3, 31,252, 32, 0, 16,139, 31,134,147,254, 39,243,233,241,177, 54,217,173,171,207,118, 77, 67,218,
-108,206,142, 64,103,148,228, 89, 54,105,219, 42,205,138,206, 58,255, 40,206,218,131,253, 3, 4, 84, 15, 61,244, 16,128, 0,131,
-244,154, 91, 96,177, 94, 82, 50,157,204,231,200,162,180, 17,233, 22,103, 75, 68, 98, 84,202, 36,157,115,119, 31, 30, 42, 53,120,
- 24,223,246,158,247,104, 97, 22, 47,124, 94,247, 51, 17,130, 99, 87, 24,106,107,150,246,108,179, 18,101,178,114, 58, 39,147, 16,
- 82, 93,213,169, 98,173,141, 99, 39, 32, 34, 2,136,109,219,106, 17,239,250,176, 8,121,237,230, 64,148,179,171,211, 91,139, 91,
- 47, 82, 54,221,219,153,118, 78,184, 93,157,158,220, 72,203,233,225,225,197, 44, 77,153, 25, 1, 65, 0, 8,192, 90,111,216, 25,
- 17, 5,128,200, 49, 32, 10, 8, 34,171,212,118, 85,146,151, 73, 57, 21, 93,234,212,128,198,131,217, 93,147, 34, 67, 68,175,176,
- 72, 80,208, 59,111, 0, 96, 73, 64,152, 25,128,153,129,217, 75, 49,119,213, 26,144,146,114,167,221,172,192,181,110,115,186,147,
-231, 89,162,221, 72, 76,252,166,242,239, 28,179, 22,199, 64,200, 12, 0, 14,145,152,189,114,211,155,205,106,190,119, 72,160,243,
- 98,146, 38,137, 19, 22, 39, 40,226, 21, 44, 9, 1,137, 19, 32,241,219, 94,136, 65,152, 29,179,223, 80, 65, 36, 79,110, 60, 3,
-214, 94,125,250,177,221, 50,213,138,132, 29, 59, 22,246, 99,112,222, 8,134, 63,126,120,204,154, 29, 19,129,128, 48, 3,128, 32,
- 17,179,148, 59, 23,147,188,184,235,194, 69,173, 53, 51, 3, 17,161,176, 0, 49, 51, 34, 10, 11, 19, 1, 32, 50, 16, 2, 3,130,
-210, 34,226, 24, 16,216,155, 10,102, 6,196,189,189,189,166,173,147, 36,241, 98, 34, 34,206, 57, 34, 5,194, 72,132,194, 68, 34,
- 66, 64,194, 64, 8,200, 40, 90,132, 65, 0, 17, 5,144, 69, 16, 0, 68,136,168,200, 75, 0,239,181, 9, 17, 33,130, 8, 51, 18,
- 49, 3, 17, 51, 0, 49,138,162,240, 17,209, 44,140, 72,225, 18,204, 18, 44, 7,248,135, 64,100, 68,100,246, 3, 17, 2, 17, 10,
-254,147, 8,160, 4,189, 37,194, 90, 88, 0,135,239,247,151,136, 74,202,187,244, 10,253, 87, 0,189,222, 67, 1, 65,191,171,208,
-235, 62, 45,194, 0,136,128,204, 28,205, 41, 71, 51, 23, 92, 77, 17, 63, 98, 18, 22, 65, 4, 10, 95, 98, 17, 5, 33,152,128,175,
- 29,127, 45, 59,219, 31,111,120,195,253, 15, 62,248,224,125,247,223,191,183,187, 59,156, 21,129,104, 69,201, 59,156,132,132,116,
-122,122,250,248,227, 95,252,171,191,250,203,167,158,122,234,213, 25,208,100, 50,121,255,251,191,251,226,197, 75,204, 60,168, 93,
- 16, 0,140,254, 55,134,151,131, 93, 31, 14, 26, 94, 17, 33, 1,130, 54,230, 63,253,254,239,127,230, 51,127, 38,175, 88, 56,240,
-125,239,123,223,131, 15, 94,230, 96,152,253, 32,182,190,141,209,137, 31, 6,209,251,245,231,135,228, 3,142, 97, 88,113,160, 68,
- 68,214,218,143,125,236,223, 60,247,220,115, 47, 63, 32,125,255, 3, 95,215, 52,109,156,143, 59, 60, 8,246,193, 13,224,185,209,
-192, 16,102,244, 3, 33,142, 47,129,217,127,184,109,235,229,106,185, 58, 61,122,247,187,191, 5,132,118,118,247, 63,250,209,143,
-214,117,125,231, 1, 57,219,197, 65, 12, 65,205,104, 52, 40, 91, 3, 58,191,120,204,178,172, 90, 43, 32,205,138,116, 66,136,155,
-179,155, 73,150,103,211,125, 6,168,143,175,170, 36,167,124,198,109,133,217,220,182, 43,182,205,106,189,252,133, 95,252, 37,173,
-244,239,253,222,199,158,124,242,137,243, 30,214, 91, 31,125, 52,106,112,217, 58, 32, 4,180, 32, 48,156,137,103,217,185, 23,191,
-252,228,151,191,244,184,144, 52,155,181, 54,198,117, 22,108,139, 4,100,114, 83,204,192, 89,215,181,109,179, 49,105,129,174,173,
- 87,199, 70, 43, 43, 90, 41,213,174,207,118,247, 47,176,240,149,135, 31,126,207,123,190,253,201, 39,158, 56, 59, 59, 27,166,224,
-135,126,232,135, 95, 74,220, 9,252,244, 16,146,128,160,143,153, 16,113,185, 94,118, 76, 68, 8, 32,192, 66,192,205,242, 8,116,
-158, 77, 74,112, 14, 17,117,146, 45,142,174, 77,119, 15,218,106,205,206,230,229, 4,147,137,181, 29,105,195,182,233, 86, 39,247,
-255,157,183,248, 40,192, 67, 22,137, 73,122,167, 79, 61,252,200, 35,225,233, 35,242, 18, 4, 73, 96, 16,172,248,147,133,111, 94,
-127,190,174,107, 32,114,237,122,117,227, 5,215,110,128,187, 77, 93,101, 69, 9,140, 94, 98,242,162,228,174, 37,147, 78,246, 46,
-154,124, 46,100, 54,203, 99,177,173,109,235,174, 90,238, 30, 92, 76,147, 20, 70,139,225,216,189,251, 93,223,118,245,234,213, 91,
-183,110,169, 43, 87, 30, 14, 81,103, 88, 16,191,217,130, 31,220, 59,200, 32,192, 34,167,167,183,172,160, 74,103, 90, 41,176,173,
-232, 68, 76,102,178,162, 93, 47, 59,150, 98,182, 39,148,152,124,166,116,106,138,185, 74,242,174,169, 69,216, 57,219, 84,235,180,
-156, 90, 43, 73, 86,236,239,239,251,113,112,127, 83, 17, 16,120,243,155,223, 66,132,234,161,135,174, 12,123,139, 97,252, 42, 78,
- 24, 8,138, 8, 52, 93,183,174,154,229,209,117,118,238,234, 11,207,213,181,213, 89, 97, 76,214,108,150,206,118,197,108,223,185,
-174,221,172, 64,156, 99,231,227,227,166,169,234,213, 49,131, 24,132,122,125, 54,155,205, 14,246, 15,250,169, 71,136,230, 43,138,
-234,189,175,191, 79, 51, 59,240,166,223,199,250,130,130,130,140,130,225, 75, 2,222,199,160,179,163,235,155,186,202, 38,179,174,
-181,169,194, 52, 81, 32, 78,132, 77,146,157,222,184,138, 64,249,100,234,156, 91, 92, 63,218,221,219, 7,157,136,233,180, 74,178,
-157, 3, 6, 84, 98,239,186,235, 34, 16, 56,231,162,254, 64,233,131, 76,111,129, 17, 81, 68,199, 5,241,114, 44, 34, 8, 8,128,
- 2,193,193, 68, 4, 63,181,220, 88, 72,179, 41,128,100,147,204,217, 38,203, 11,165, 76,106,204,233,241, 73, 62,153,150,101,190,
- 94, 45, 65, 43,219, 54,214, 90,174, 55,152,149, 69, 81,230,102,166, 8, 1, 13, 11, 3, 11, 10, 33,129, 96,216, 31,132,227,136,
- 22, 81, 68,179, 99, 9, 32, 18, 48,123,125, 39, 16,124, 91,128,112, 6, 65,184,174,206, 20, 34,176,228,179,253,249,193, 61,192,
-174,105, 54, 77,189,214, 73, 81,131,105, 41, 99,237,210,180,220,221, 59, 44,242, 66, 41,229,149,165, 48, 59, 9, 90, 29, 16, 16,
- 4, 61,178,128, 66, 64, 76,206,235, 58, 4, 64, 65, 66,209, 78, 4,129, 65,144,131,202, 99,241,131,240,115,232, 95, 8, 34,194,
-124,231, 96,113,118, 34,232,150,171,211,172,107, 73, 25, 68,209,233, 4, 16, 83,195,147, 44,219,159,207,253,141, 69,128,157, 3,
-127, 35, 68, 10, 58,157, 60,222,130, 66,136, 14,144, 0, 28, 10,249,129,160,243,216, 3,106, 96, 22, 4, 65,239, 49,250,203, 49,
- 0, 2,162, 48, 3, 34, 96, 56,163,149,114, 93, 83,173,151,119,221,125,143, 40, 37, 72,109,181, 94,159, 28,221,243,250,251, 19,
- 83,130,119,252,252,216, 5,153,194,122, 35,138,243, 24,176, 0, 34,136, 67, 36,135, 66,136,126, 61, 28, 0,162, 67, 36, 68, 64,
-100,242, 51,228,215, 8, 17,152,101,152, 29, 24, 78, 32,128, 36, 73, 58, 41,203,233,108,175,233, 90,205,117,215,217,189,253, 11,
-249,197, 44,104,114, 16,113,189,121, 21,112, 72, 4, 34, 52,224, 80, 16,125, 22, 8, 18, 2,224,125,130,104,150, 1,145, 64,251,
-105, 64, 20, 31,115, 32,132,127, 68, 4,132, 0,195,190, 12, 16,130, 50,103,103, 39, 89, 57,213, 73,186,127, 48, 15, 11,236,227,
- 31, 0, 64, 20, 1, 68, 33, 34, 0, 97, 70, 4, 39, 68, 0, 34,140,132, 78,128, 16, 64, 24, 16, 5, 5,145,156,143, 23,132,132,
-216,223,139,181,136, 0,176,151, 23, 63, 29, 24,165, 71,128, 9,130, 71,236,159, 97,103,103,127, 62,223,235,157,109,191, 91, 5,
- 17,152,137,200,191, 20, 65,199,140, 30,201, 2, 32,240, 99, 37, 70, 64, 96, 32, 16, 33,191,158, 4, 8,200, 12,136,140, 66,126,
- 15,129,102,118,113, 55, 8, 17, 50, 11, 17, 9,179,127, 74,199,222,155, 8,115,224,237,153,223, 51, 28,247,164, 7, 77,250, 8,
- 69,132, 17, 1,137,252,238, 16, 17, 1, 34, 63, 45, 36,192, 20,188,126, 4,102, 64,234,157, 80,241, 49,172,150, 56,185, 8, 97,
-219,251,123,143,130, 15,134, 56, 79, 65, 76,252,194,196, 25, 2,102,136, 55,241, 81,133, 72,152,108, 1, 97,161,112,107, 4, 16,
- 31, 59,123, 61, 4,136,224,247,207, 96, 47, 1,180,248,253,217,163,142, 8, 94,103,133,117,219,142,102,252,219,222, 51,115,206,
-249,168,144, 40, 64,122, 32, 20, 52, 28,160, 0,162, 32, 80,184,167,223,178,128, 18,157, 98, 16, 9,214, 35, 8, 64, 24, 80,240,
- 19,209,207,102, 88,178,254,233,227,216,251,137, 29,159,233, 93, 39,102, 0,111,106,134, 87, 94,156,252, 27,175,226,188, 37, 98,
-143, 55, 10,138, 48, 2, 5,128,202,155,204,175, 20,115,124,237,248,218,241, 55,143, 92,135,232,196,232, 34, 47,146, 36,201,178,
-220, 24,227, 79, 90,219,213,117,211, 52,245,122,189,118,206,253,173, 15,200, 24,115,229,202,195, 95,255, 13,223,112,239,235,238,
- 85, 58,226,129,130, 64,193,151,244, 33,160,143, 84, 69,228, 75, 95,250,210, 99,159,255,220,159,255,249,159,183, 49,193,243,170,
- 13,232, 59,254,225,251, 46, 95,190,108,180,145, 30, 55,142,193,216, 40, 38,139,158, 95,140,240, 1, 64, 41,133,132,109,219,126,
-246, 47,254,226, 15,254,224, 63,255,141, 6,164,181,190,124,249,242,123,223,251, 29,210,107, 26,129, 62,139,216,135,244,227, 8,
-127, 59,178,223, 14,237, 17,137,104,177, 88,252,214,111,254,198,122,189,254,234, 6,180,183,183,247,222,247,190,247,210,165,215,
-120, 31, 22,206,105, 67,216, 70, 23,182,127,190,228,152,188,119, 10,160,180,186,113,253,250, 39, 63,241,137,227,227,227, 87, 52,
-160, 15,124,224, 3,121, 94,178,240, 86, 32,118,110, 2, 99, 0, 63,138,234, 71, 11,230,237,107,136,240,105, 27, 9, 9,112,141,
- 82,234,177,199, 30,251,228, 39, 62,254,149,147,227,127,239,239,127, 11, 59, 22, 16, 39,174,143,154, 99,216, 40, 49, 70, 19, 31,
- 25, 97, 63,121, 12,140,225,173, 15, 45,189,109,240, 38,201,175,116, 16, 61, 17, 16,112,206, 86,171,147,135, 31,121,228,201,167,
-190,212, 52,205,203, 13,232,237,111,127,135, 8,179, 15, 75,229,252, 1,163, 1, 5,131, 19, 49,155, 49, 56, 33, 99,172,164, 7,
-181, 0, 68,196, 58,187, 90,158, 93,127,241, 5,235, 58, 0,184,124,249, 77, 23, 46,220,253,228,147, 79,190,164,126, 97,102,136,
-166, 63, 62, 41, 12,247,241,110,254,246,169,115, 47, 69,196, 89,159, 4,105,154,170, 74,178,162,173, 54, 44,172,210,194,161, 6,
- 91,147, 50,204,220, 53, 13,216, 86, 23,211,111,126,231, 59, 31,120,224,129,223,249,157,223,190,227,128,200,231,148, 88, 36, 66,
-218,163, 63,224, 79,220, 54,113, 33,241, 43,204,188,170,234, 91,203,234,120, 85, 45,170,102,213, 64, 39,184, 92,158, 66, 50,209,
-211,131,174,107,155,211,235,160,115,199, 2, 73, 73, 73, 1, 74, 19, 81,219,212,151, 46,221,243,145,143,252,202,157, 7, 20,144,
-254,237,220,208,185, 60, 81, 4,219,217, 13, 39,185,235,218,163, 91,183,206,206, 22,182,235,184,171,215,167,199, 70, 43, 52, 69,
- 50,217, 7, 99,216,117,132,100,202,153, 49,134,146, 28,156, 83, 90,217,206,109, 22,139,102,179,114,236, 0,225, 95,254,242, 71,
-238, 32, 67,143,190,237,209, 59, 66, 85, 91,135,120,152, 25,122,237,180, 89, 45,158,127,230,241,186,222,104, 37, 0,128,164,180,
- 73,234,245,153, 82,136, 58, 65, 0, 2,168,214, 11,109, 12,119,181,107, 54,182, 58, 3,149,160, 50,168,104, 50,157,166,105, 6,
-136, 68,244,141,111,127,251,159, 70,202, 72,191,100,114, 7, 97,238,209,144, 62,196,137, 33,183, 8,180, 77,117,116,116,195,164,
-121, 90, 78, 93,199,109,181,106,171, 37,136,109,155,141, 54,105,125,118,211, 85,103,215,159,123, 42, 47,167, 8,192, 2,148,228,
-168, 11,182, 45,114,211,182,214,218, 62,187, 33,211,201,244, 7,254,197, 15,110,205,208, 35,143,188, 85,238, 56,158,224,234, 13,
-104,189,143,252,173,237, 78, 55,117, 82,204,146, 98,146,164,133, 50,137, 2, 39,108, 85, 82,100, 89, 94,173, 22,179,221,187,172,
-109, 17, 56, 47,203,102,189, 96,215,102,121,169,146,140,148, 49,229, 14, 87,167,243,157, 93, 99,146,224,152,131,236,237,238, 45,
- 22,139,171, 87,175,134, 93,118,103,192, 22,193, 71, 47, 12,241, 39, 2, 11,128,184,171,207, 63, 35, 58, 17,231,138,201, 14, 11,
-163,184, 52, 73,218,166, 37, 39, 58,203,242, 18, 81,186,166,170,246, 46,188,182,105, 27,147,149, 68,198, 49,177,116,205,226,150,
-117, 46,159,238, 42,109, 66, 78,196,187,228, 4,223,249, 93,223,245,249,207,127,206,103,157,105, 75, 15,246,128,144, 68, 61, 2,
-131, 6, 23,129,186,169, 77, 98,178, 52, 43, 39, 83,232,150,171, 27,207, 74,187, 90,157,222, 80, 4, 4,182, 89, 45,235,245,218,
- 9, 76,166,179,147,155, 47,164,229, 52,155, 29,170,124, 34, 40,155,179, 91,148, 20,105,154,187,182, 85,218,132,116,170,248, 76,
- 22, 91,107,127,252, 39,126,114,128,244,182,108, 86,239,107,227, 8, 48, 15,200,146,188,240,252,115, 2, 68,192,183,174, 95,181,
-157,155,239,223,197,166, 72,178,105, 91,111,218,166, 74,138, 89, 57,223, 95, 45, 78, 81, 37,179,189,195,229,201, 45,163, 77,181,
- 89, 17,176,209,198, 7,128, 38,201,166,211,105,111,178,125, 20, 66,136,218,152,213,106,117,245,234, 11, 52,218,222, 28,132, 59,
- 40,164,152, 97,139,137,182,182,107,178,204,228,211, 29, 93,236,188,230,245, 15, 76,230, 59, 39,167, 11, 69,212,174, 79,193, 54,
-211,221, 11, 77,103, 5,104,186,123,152, 77,230, 45, 75, 62, 63,176,206,165,121, 89,183, 45, 3,144, 41, 28,211,238,238,222, 72,
-143,132, 25,242,217,188,127,242,157,223,137,136,234,202,149, 43, 8,216,199,163, 18, 48, 1, 31,101, 33,120,131,133, 0, 2,155,
-106,229, 24,187,206, 98,154,177, 0,130, 20, 69,217,214,155, 98, 50, 79,138,105,215,109, 12,202,209,141,107,164,148,176, 5, 6,
-246, 25, 79,199, 40, 96,219,134, 1, 82, 67,243,217, 14,140,156,154,254,175,207, 69,206,230, 51,117,229,202,195,253,104, 64, 60,
-174, 37, 33, 59, 27,253, 50,191,108,103,235, 77,215,180,155,197, 17,138,123,234,139,143,229,229, 20, 72, 17,225,250,236,200,177,
- 51, 73,233, 28,167,121,158,230, 69,211, 54,105, 94,216,206,182,245,218,118,117, 98, 20,178,101,219, 30, 30, 94, 10,105, 57,220,
-218, 64,125,142,224,181,175,125,157, 6,225,168,238, 48,134,146, 49,106,243, 38,155, 60, 49,200,213,171,227,249,254,197,124,182,
-163,144,239,191,255,126, 74, 75, 45,205,241,181,231, 69, 25,199,194,130,108,237,100,190,219, 53,149, 49,105,219, 52, 90, 41, 78,
-242,196,152,229,226,140, 0, 46, 28,222,173, 20, 49, 51, 33, 1,129,128, 16,146, 8, 32,131,144, 40,102, 70,114,206,169,183, 60,
-244, 16,132, 64, 50, 46, 86, 36,111,197,216, 21, 65,192,217,110,179,169, 86,203, 51,238,234,213,226,108,185, 56, 1, 17,210,233,
-100,247, 46, 68, 94, 30, 31, 77,102, 51, 69,184, 89,157, 9, 59,182, 29,170,192,226, 67,132, 36, 73,119,231,147,196, 36, 67,200,
-123,167, 36, 70,200,119, 5,231,102, 64,203,133,131, 47,195,204,126,179,179,135, 65,242, 60,235, 54,139,166, 90,237,236,237, 40,
-113, 96, 55,139,163,107,199,183,174,165,198,152, 52,117,206,173,215,235,157,221, 61,215, 54, 40,238,230,243,207, 46,110,124,185,
-217,172,144,101,154, 37, 90,153,176,101, 96,208,252,189,169,134,176,135, 88,152,117,192, 20, 5, 0, 25, 4, 57,236,122, 97, 17,
- 15,215, 2,163,160, 56,150,117,101,243,249, 97,154,151,171,245, 10,147, 34,159, 31, 20, 64, 90,227,209,205,107,123,187, 59,202,
-152,174,105,190,252,236, 51,187,123,251, 74,211,238,222, 46,146,217,153, 77, 18,147,162,207,182, 70,236, 69, 60, 33,107,196,174,
-100, 17,138, 66,163,163,161,192, 62,224,143,112, 54, 66,244,199, 16, 64,152,211, 68, 35,161,176,219, 44, 23,198, 36,139,163, 27,
-229,108,175,105,229,224,226,235,171,205, 90, 81,102, 38,201,193,236, 32,203, 10, 0, 55,207,178, 52, 49, 16,135,130,236,105,158,
-193, 9,103,127, 6,195,159,128,226, 17, 49,179,230, 32,190,140,236,225,114,132, 0,238, 0, 96, 15, 74, 1,115,119,116,243,197,
-196,144, 73,202,189,195,215, 32, 17,119,109,219,108,146, 44, 63, 57, 57, 54,198, 96,187,113,150,211,178,204, 52, 36, 73,209,227,
- 56, 30, 6, 10, 42, 54,224, 32, 17,122, 57,231, 79,248,132, 59, 8, 8, 6, 15, 57,220,218, 19,183,132, 35,140,194, 34,136,164,
-203,233,142,216, 22, 16,154,182,211, 70, 47, 78,110,217,182,217,221,211,123,179,105, 85,109,184,179,101, 57,157, 77, 39, 62,104,
-132, 64,234, 56, 39,188, 40, 32,180, 61, 14,138,122,200,167,251,117, 52,227,253, 10,121,129, 18,143,128, 33, 0,139, 0,160, 34,
-165,136, 54,174, 67,102, 84,155,186,130,233,206, 62,176,128,210,203,117, 85, 22,121,145,231, 90,107, 16,137,216, 25,160, 56,143,
-245,122, 45,231,247, 56, 10,114,136, 84,194,136, 61, 4,234,113, 65, 96,214, 16,145, 95, 24,139,183,231,166,244,107,134, 66, 74,
-169, 52, 43, 16,173,237, 60, 65, 81,192, 48,138,216,110, 82, 22, 69,150, 18, 81,192, 76, 97,144, 14, 70,175,220, 60, 51, 34, 82,
-231,124,228, 48, 2,180, 2, 76, 8, 32,136, 52,222,228,126, 22, 35, 69, 85, 56, 10,187, 48,131, 72,189, 94,156, 28, 93,179,213,
-202, 24,205, 0,206,213,203, 27,207, 24,176, 69,154, 68,149, 21,125,202,173, 64,202, 19, 84,182,247,122, 76, 76,158,119,194,152,
-181, 8, 96, 47,188, 65,107,163,167,132, 0, 5, 48, 63, 12,208,117, 69,106, 28,168,122, 83,177, 59,109, 55,139,221,131,187,119,
-118,247,100,204, 31,242, 90, 21, 72, 64, 8,250,215, 16, 78, 5,236,213,147, 80,188, 17, 96,244,186, 26, 68,128, 0, 81, 15,209,
- 32,134,189,222,195,182, 61,200,232, 23,114,103,231,160,169, 55,173, 99, 64,232,154,238,174,139,247, 77,231, 59, 94,125,112,143,
- 30, 11, 18, 9,128,191, 77, 80,187,232,101,133,195,126, 35, 8,216, 52, 4, 69,231,161, 73, 79,211, 17, 10, 84, 29,255,141,209,
-226,133,231, 6,175, 69, 25, 0, 80,233, 27, 55,111, 33,146,206,166,211,221, 11,147,217,140,176, 39,164,247, 80,115, 88,241, 30,
- 34,240, 11,201,219,144,105,112,214, 97, 72, 50, 7,114, 76, 32,177, 10,132,175,196, 77, 47,195,219, 0, 2,131,136, 82,164, 13,
- 89,231, 54,203,147, 60, 49,132,228, 31,197,111,200,254, 49,162, 24,138,132, 44, 41,247, 50, 3,253,237, 25,216, 39, 77,251,132,
-170,119,124,216,167, 22,250,196,157,223,131, 3, 20,227, 33,243,240,168, 68,234,174,195, 75,214,113,158,166,158,235,228,233, 77,
-128, 20,226,125,102, 34,242,105, 10, 98,150, 97, 17,217,103, 57, 24,129, 60, 4,141,136, 76,140, 66, 65, 47, 7, 64,128, 3, 78,
- 29, 82, 64, 65, 35,250, 28, 67, 76,202,128, 68,180, 29, 17,203,114,114, 30,194,246,249,154,192,174,243, 48,183,231,236, 33,121,
- 41,199,192,132, 18, 33,244,247,240, 9, 20,228, 8,170, 11, 11, 19,144,151, 95,138,198, 61, 44, 18,135,249,151,241,146,121, 1,
- 8, 94,231,128,136,244,234,126, 11, 86,231, 40, 83,204, 48,100,184,185,151,158,128,135, 4,219, 25, 48, 18, 15, 18, 0,178, 80,
-159, 19,247,172,174, 94, 16, 69,134,244, 74, 28,200, 24,219,224,145, 13, 26,141, 27, 56,154, 41, 30, 44, 20, 8,160,127,112, 65,
- 96, 1, 97,240, 78, 71,111,190,251, 88, 20, 2, 79, 76,250,135, 25,118, 25,251,253,220,167,167, 48,238, 41,230, 64,109,101,102,
-236, 21,124,120, 12,140, 79, 5, 33,241, 5,254,254, 16,134,194,232,131, 80, 24, 98, 99,136,209, 23,136, 8,245,143,226, 31,210,
-239,178,184,100, 60,184, 44, 49, 54,129, 62, 77, 54, 8, 19,198,103, 0,233,183, 69,200,157, 65, 8,130,253,236,248,148,123,216,
- 83,131, 82,103,224, 88,206,130, 36,113,131, 70,209,241, 90,167, 23, 21, 63, 31,125,138,125, 80, 75,219,115, 25,190,219,191, 16,
-255, 34,200,195,104,182, 0, 35,189,174, 87, 86,128,130,113,158,196, 71,174,131,232,140,116, 26,196,193,193,121,139,115,219,104,
- 96, 27,154,148,224,225,197, 85,244,195,144, 62,251, 22,150,113, 52, 36,233, 67,102,242, 83,230,159, 91,226, 46, 27,235, 92,136,
-202,122, 72, 58,111,105,243, 24,177,244, 62, 86,148, 1,137, 98,205,253, 66,133,205, 51,194,155,161, 23,163,176,134, 4, 3, 35,
- 38,200, 35, 51,143,192, 69,233,133,186,215,126, 99,166, 99, 52,210,140, 3,150, 28, 4,220,187,134, 2,130,192,254,156,140,224,
- 80, 24, 0,132,115, 56,212,215,142,175, 29, 95, 59,190,118,252,191,159,111,125,185, 75, 32, 78,166,211,217,116, 90,150,147,249,
-206,124,111,119,111,190,179, 51,159,205,138,114, 82,150,121,146,164, 24,153, 76, 35,192, 44, 98,102, 2,214,218,170,218, 44,150,
-139,229,114,117,227,198,245,213,114,117,182, 56, 91, 46, 22,167,167,167,203,229,242,255,191, 9, 42,138,226,129, 55,126,221, 61,
-247,220,115,225,240,112, 62,223, 41,202, 66,107, 61, 42, 47, 57,119,117,188,253, 38,231,168,180, 35,122,239,128, 88,245,135,181,
-118,179,222,156, 45,206,174, 94,125,225,241, 47,126,241,137,199, 31,183,175, 82,230,251, 85,155,160,195,195,195,135, 31,121,228,
- 77,111,122, 75,154, 38,210, 19, 75, 94,201,117, 37,176,158, 71,184, 84,120,139,145, 76,134, 1,226,141,236,189,209, 76,197,249,
-194,152, 55,197, 8, 1, 16, 17, 61,247,220,179,255,227,143,254,232, 11, 95,120,108,228, 55,255, 95,153,160,201,100,114,225,194,
-133, 55,191,249, 45, 15, 60,240, 70,210,138,144, 68,120, 75, 64,228, 14,112, 37,222, 81,104, 16,207,165,144, 71,111,111,227,208,
-223,254,115,187,106,206, 7, 71,253, 76, 13, 92, 1,162,147,147,147, 79,253,201, 31,127,225, 11, 95, 56, 58, 58,250, 91,153,160,
-195,195,195,203,151, 47,223,119,223,125,135, 23, 46,132,194, 37,145,237, 73,145,151,247,154,112,172,144,182,161,249, 45,180,119,
-156,254,191,141,214,127, 71, 50,192, 87, 58,137,129,207,133, 68,138, 0,240,185,103,159,249,204,103,254,236,179,159,253,108,215,
-117,175,206, 4,125,248,195, 31,110,218,110, 32,114,159,243,211,229,149,249,147, 91, 2,131,120,251,201, 59,124,236, 28,109,227,
-101, 68,233, 28,117, 97,188, 13,251,221, 55, 84, 86, 50,243,106,181, 60, 57, 61,251,223,127,245,151,159,254,244,167,255,134, 85,
- 61,186,170, 27, 25, 51,221, 95, 82, 94,110,211, 60, 99,154,204,246,188,140, 78,222, 46, 74,219,155,240, 54, 94,203, 80,162,113,
-142,201,241,149, 68, 12,132,235,174, 89,157,157, 44, 22, 39, 62,168,126,224,222,139, 95,119,255,247,234, 52,251,147, 63,254,212,
-227,143, 63, 46,127,173,153,210,129, 14,117,174,180,228, 78,215,146,115, 26, 75, 2,167,105,196,168, 64,188,253,115, 34, 91, 25,
- 73, 1,233,115, 94, 24,227,184,225, 19,232, 99, 68,134, 8,168,123,108, 49, 64,113,194, 34, 74, 41, 36,197, 44,130,200,236, 92,
-215, 89,182, 93,211,216,174,181, 93, 71, 58, 17, 52,220,109,216,118,164,140, 74, 10, 52,233,123,223,247,143,255,249,254,222, 99,
-143, 61,246,223,254,235,127,249,106,245,148,150,113,115,130,151,152, 99,121,153,157, 37,183,189, 27,159,148, 59,158,237,147,185,
- 30,156, 16, 22,113, 44,206,217,205,226,184,173, 54,105, 57, 69,101, 60,192,224,186, 6, 69,218,166, 74,242, 28,128,144, 20, 32,
-105,237,215, 85, 66, 90,132, 72,152, 65,165,164, 51, 16, 1,219, 8, 16, 91, 43,174,147,174,106, 72,219,172,152, 21,217,131, 15,
- 62,120,249,242,229,197, 98,249, 31,127,255, 63, 60,241,196,227,175, 88,130, 2, 88, 41,227,135,188,237,169,229,118, 7, 39, 20,
- 53,248, 42, 2, 20,128,136, 14, 98,252,237,208, 50, 97,244, 21,159,115, 65,116,206,181, 93, 87,183,157,101, 16, 82,138, 72,156,
-165,100,162, 84,238, 72,145,210, 74, 41, 79,202,178,205, 38,157,238, 42,147, 3, 41, 0, 17,215, 9,130,216, 86,108,203,206,234,
-108, 10,148,196,142, 22,128,200,104, 82, 97, 39,198, 1, 10,144, 70, 36, 38, 93,183,173, 73, 51, 4, 40,139,252,251,191,255, 7,
- 88,228,227, 31,255,183, 79, 62,241,196, 87,230, 84,189,237,209,183,141, 53,178,192, 8,197,130, 45, 70,193, 29,116,210,182,238,
-218,202, 45,221, 65, 2, 61,230, 40,213,102,181, 56, 59, 57, 62,186,177,169, 54,174,221,156, 29, 93, 7,215, 18, 1, 2,183,213,
-130,184,173, 22,183, 54,167, 55, 93,189, 17,215, 56,219,153,108,130,202, 40, 2, 69, 2, 98,133,173,171, 86,220, 90,159,237,228,
-174, 49,138, 72, 41, 97,118,109, 13,206,138, 0,144,242,252, 50, 17,104, 54, 11,233,218,233,206, 94,146,164, 61,232,140, 8,111,
-125,235, 91,191,233,155,190,249,198,141, 27,183,110,221,122,185, 9,122,244,209,183,221, 73, 9,203,157,125,226,237, 79, 14,234,
- 86,134, 15,140, 13,122,248,125,128,222,164,169,214, 39, 55,158, 63, 57,186,214,108,206,132,109,146,102, 62,153, 67,136,236,156,
-101,152,204,118,157,160, 78,203,114,182,139, 74,235,180, 48,105,142, 40,226,156, 82, 20,136,126, 34, 74,167, 42,205,149, 73,117,
- 90,152,172,100,212,204, 44,206,186,174, 18,215, 2, 59,113, 22, 0,216, 57,173, 19, 83,204, 76, 86,228, 89,150,152,100,252, 96,
-236,216, 24,243,240,195,143, 60,120,249,242, 83, 79, 62,121,123, 31,154, 48, 65,111,125,244, 81,129, 49,116, 36, 47,161,115,182,
-126,213,147, 61,229, 21,248,227, 34,210, 89,187,169,171, 77,181,105, 89,148, 73, 76,146, 34, 42, 1,233,218, 78,233,164,152, 76,
-235,213,217,241,139, 95,222, 44, 78,180, 34, 99, 18, 34,112,109,221,181, 21, 34, 25,157, 32, 8,219,186, 90,157,174,142,175,111,
-206,142,148, 34,113,206,182, 13, 10,219,122,213,109,206,128, 45, 42, 35, 64, 72, 74,153,132,146, 92, 37,185,210,102,125,118,212,
-172, 23,224,186,114, 50, 77,211, 92,182, 56,125, 1,163,156, 78,103,127,247,157,239,156,148,211, 47,126,241, 11,119, 80,179, 63,
-248, 67, 63, 12,175, 48,116,136,121,219,219, 88,176,219, 54,223,119, 88, 9, 90, 7,133,121,189, 94,111,170, 13, 35, 10,131, 54,
-137,210, 58, 36,200, 17, 80,196, 57,171, 16,210, 68, 31,221,120,145,148,153,206,246, 64,169,196, 24, 17,183, 60,185,177, 60, 57,
- 46,202,217,254,133,139,190,118,155,148, 2, 1,207, 78,110,187,134,187,142,153,149, 54, 64, 10, 81,161,210,214,118, 93, 91,199,
- 28, 28, 40,133, 10,209,104,189,187,187,159,101,105,160,144,244,220,207,193,217, 12,255,252,246,111,255,230,181,107,215,206, 17,
-188, 30,121,165,193, 72,156,157,184,165, 60,241, 43,206,215,168, 42,183, 39, 27,217,182, 61, 57,186,126,116,227,133,182,109,149,
- 86, 70, 97,187, 89,137,235,186,205,226,228,250,213,179,155,215,184, 93,119,213, 82,108,187, 89, 45, 64,216,243, 33, 66,150, 71,
- 32,205,203,114,182, 91,148, 37, 17,185,174, 19,215, 85,171, 53,136,232, 36, 19, 82, 72,154,148,209, 38, 1,149, 8, 40,118,206,
-182, 53,187,142,132,129, 27,224,214, 85, 75,232, 26, 0, 72,178,108, 82, 78, 34,187, 6,198, 44, 77,217,182,175,239,120,251, 55,
-229, 69,225,155,234, 12, 12,184,151, 50,237,184,197, 16, 28, 84,139,192,168, 4,226,252,246,234,221, 29, 96,230,186,109, 29, 80,
- 54,217, 73,211, 18,145, 58,118,202,164,198, 36, 74,161, 48,207,118,118,147,188, 40,167, 59, 38,159, 20,229, 84,167, 41,146, 74,
-140, 89,156,158, 56,219, 33,170,208, 65, 75, 64,105,205, 34,214,113,146,102, 44, 14, 64,148, 82, 90, 37, 68,218, 7,104,128,128,
- 4,174,173,155,245, 9,145,212,109,203,140, 58, 45, 4, 21,160,158,205,119,210, 36, 29,101, 46, 96, 59,155, 25, 41,118, 34, 0,
-112,239,235,238,125,221,235,238,125,234,169, 39, 61, 39, 93, 93,185,242,240, 29,200,138, 35, 90,112, 40, 76,236, 65,127,193,200,
-197,149,144, 83,198,120,170, 79,156,138,136,115,167, 71, 55, 94,124,254,105,219, 86,222,211, 85, 90,105, 98,169,150,205,242,120,
-179, 94,231,147, 25,233, 12, 76,226, 0, 17,164, 89, 47, 79,142,110,214, 85,173,180,153,206,118, 77, 62, 73,138,137, 50,185, 78,
- 50, 50,153, 8,145, 73, 77, 86, 32,105,147,149, 38,201, 69, 64,216,249, 76,133,117,157,184,214,103,138,242,114,138, 42,205,242,
- 18, 85, 34,140,164,212,108, 54,157, 76,102,125,197, 87, 63, 70,140, 85, 96, 16, 19, 40, 24,211, 35, 7, 7, 7,111,122,211,155,
- 30,123,236,177,186,174, 61,187,107,107, 55,201,150,142, 25,106, 39, 49, 54, 64,232,117, 13,202, 64, 62,192, 81,213,140,136,108,
- 54,171,166,109,179,114, 71,101, 37,160, 78,178, 2, 72, 51,165,186,152,171,180, 36, 69, 93,211, 16,130, 66,114,214, 50,187,188,
-156,148,229,196,104,237,243, 95, 74, 97,181, 60,169,214, 75, 95, 2, 32, 32, 64,200,206, 17,130,239, 84,194,194, 8, 98,173,107,
- 59,235,237,118, 83, 85,109,179, 73,147, 76,233,212, 10,116, 93,109,109, 53,155, 76,231,211,249, 64,105,216,182,214,231,216,235,
-113,154, 80, 68,242, 60,127,251, 59,222,241,191, 62,251, 89,252,190,239,251,190,109,203,222,187,123, 91, 26, 5,135,192, 34, 78,
- 99,152, 20, 31, 19,245, 43,128, 0, 96,157, 93,174,150,214, 58,173, 77, 85,109,108,231,242, 98,138,198, 88,238,216,113,154, 36,
-138,148, 0, 24, 69, 8,220,117, 13,145, 98,118,109,219, 16,169, 60, 43, 72, 1,219,206,152,212,218,174,174, 42,102,152,204,102,
-105, 86, 8, 64,211, 52, 74, 39, 74,107, 4,113,182, 21, 97, 68,173,180,102,118,245,102,221,213,107, 66,112,206, 42,109,146, 36,
-157, 78,231,147,201,132, 72,221, 1,169,243,129, 46,156,195, 5,112,172,182, 73,145, 56,209,177, 7,208, 64,222,140,115, 17,203,
- 25,125,110, 63,248, 32,192,158, 16, 37, 8,194,236, 93,177,200,107,241,132, 10,102,174,171,170,174, 42, 0,215,110,206,148, 54,
-179, 89,153, 24,186,121,243,121, 91, 87, 70,105, 53,153, 67,154, 17,208,170,169,150,139, 83,113,174,156, 76,178, 60, 83, 68,206,
-113,219,214, 70,107, 66, 58,186,113, 77, 27, 51,157,239,131,210,168,244,166,218, 8,187, 52, 47, 5,168,107, 91,163,254,188,140,
- 59, 0, 0, 9,135, 73, 68, 65, 84, 72, 41, 67,132,206, 89,215,214,136, 56,153, 76,108, 94,212,155,101,187, 90, 20,185,217,219,
-191,203, 36, 9,140, 58,131,156,139, 4,135, 96,103, 92, 13,234,217, 63, 62, 5, 41, 64,138,212, 67, 15, 61,180,149, 78, 28,167,
-244, 96, 32,254,143,227, 43,220, 6, 69, 68, 36, 76, 39, 8, 0,116,109,179, 60, 59, 97,182,128,154, 76, 78, 58,105, 59,219, 52,
- 86, 39,185,201, 38, 73, 49, 5, 50,190, 65,151,214,102,111,111,111, 58,157, 42, 34,199,194,142, 87,167,199, 77,181, 2, 4,165,
-144, 8, 25,176,110, 26, 2, 97,219,182,245,134, 67,212,238,196, 23, 17, 19, 89,219, 54,109,235, 68,144,200, 89, 91, 87,155, 68,
-235,195,187, 47,206,230,187,164,244,136,249, 61, 40,159,241,214,146, 49,105,224, 28,198, 19, 95,233, 80,254,217, 27,166,144, 30,
-246,125, 23, 70, 26,199,151,146, 3, 0,123, 98,157,196,106,190,192,243,241, 81,214, 64,224,237,186,174, 91,119, 93,103,242, 12,
- 73, 37, 38,177,117,211, 86,235,166,110,116,154, 37, 89, 46, 72, 58,201,186,206, 25,163,218,166,181,205,198,182,117,150,102, 64,
-186,235, 58,109, 18,165, 76,170, 89, 43, 58, 61,122, 49,201,138, 52, 45,156,237,170,174, 33,165, 9,196, 57, 81, 73,154,229, 19,
-157,228,158,242, 92,164,217,206,108,234, 35, 56,145,161, 91, 1, 32,222,201,209,195, 65,231, 12,202, 36,168, 92, 79,254, 2, 68,
- 38,208, 3,205, 5,163,123, 28, 42,146,165,199,144,197,107,227,129,175, 7, 61,153, 64,122,190,101,240,133, 68, 4,211,114, 55,
- 41, 69,129,235,234, 53, 59,167,146,156,129,116, 62, 69,157,154,100,157,100,153, 74, 50, 69, 72,164,186,166, 58, 59, 90,230,229,
-204,148,179,116, 58,191,245,226, 85, 96,153,238,204,108, 83,119, 2, 64, 36, 32,229,108, 87, 68, 28, 48, 0,164,132, 4,150, 89,
-140, 81,206,182,208,213,121, 81, 36,121,162,136,124,226, 68,130,107, 51, 82,137,242,149,220,152,209,137, 30,136,241,211, 68,128,
- 94,130,192, 55,145, 11,157, 7, 66,231, 3,216, 10,191,122, 1, 12, 84,178, 94, 86,195,228,132, 31,194,214,117,237,102,109, 37,
-116, 24, 75,146, 76, 89, 97,177,216,214,174,107,192,164,181,149,110,189,200,243, 66,167, 36,148,151,187,101,145,232,102,179,102,
- 43, 23,239,189, 95,235,196, 24, 67, 68,206, 89, 97,231,218,134, 81,210,188,180, 86,140,209,138, 80, 17,129,128, 82,164,148, 38,
- 82,190,200,150, 69, 80,220, 24,184,139,198, 37,108,129, 97,165,111,255,207, 39,234,123,162, 32,198, 83,136,194, 78,131,199,228,
-195,188, 97,223, 27, 46,114,186, 25,197,231,252,123, 74, 44,160,103,231,142, 64,196,168,176,144, 5,216,185,186,109, 16, 21, 16,
-137,237, 44, 55,152,164,105,158, 16, 80,154, 36,206, 57, 97,135,236,144, 16,216, 1, 72,221,116, 34, 19, 76, 74, 66,178,128,182,
-237,206, 86, 43, 69, 42,207,114, 34,104,133,156,117, 66, 46,207, 82,163,148, 86,138,130, 54,237,233,175, 99,221,123, 71,217, 24,
- 76,250, 29,241,171, 33, 60,232,105,148, 35,246,145, 14,234,220,211,113,134,187,112, 80,199,177,153, 20, 32,134,246, 26, 91,128,
- 96, 60,211, 67,205, 34, 68,104, 12, 57,219,137,101,148, 22, 64,111,170,198,193,196,164, 57, 41, 3,200,182,173, 69, 37,157,181,
- 30, 63,214,218, 32,184,102,181,170,171, 77, 49,153,146, 54, 10,193,214, 85,195, 93, 94, 22,211, 34, 79,140,241,101,132,163, 39,
-237,179, 79,183,251,241,210, 23,193,244,116,209,208,135, 35, 4,137,225,239, 86,246,106,216, 6,163, 13, 39, 2, 74,105, 96,175,
-118, 49,162, 94,140, 0, 18,168,202,177,128, 28,165,167,194,202, 0,157, 6,158, 92, 79,138, 25,246,157,115,206, 58, 36,165,147,
- 68, 19, 37,169, 1,165, 1,124, 95, 49,204,139, 73,193, 25,138, 93,173,150,202,164, 42,205, 69, 84,146,235, 36,159,176,235, 92,
- 91, 23, 69,185,119,120,183,214,122, 48,189, 97, 97,163, 5,142, 70,249,188,233, 6, 26,240, 74, 12,138,130, 8, 34, 99, 42,118,
-158, 12,100,206, 96,106, 2, 21,208,183, 3,232,167,220, 11,145,115,186,215,106,131, 1, 60,111,218,163, 77, 24, 2,187, 81,151,
-198,190,212, 48, 4, 30,168,180, 54, 89,233,120, 67,232, 93,234,141,210, 38,201, 75, 4, 84, 74,186,186,105,153, 77, 86, 40,157,
-152,201, 1, 8,136,179, 72, 34,136,154,112, 90,204,180,214, 74,169, 16, 88, 6,170,119, 40,146,240,102,102,204,139,234,189, 28,
- 12,155,156,125,149, 71, 79, 59,130, 64, 90, 12,229,146, 94,129, 6,160, 23,209,199, 72,189, 59,196,226,233,203, 50,110,245,169,
- 57,170, 93,255, 1,217, 2,199,198,164,169,126,204,241, 76,188,109, 31,217, 96,176,149, 4,130,141,115, 30,155, 65, 45,204,221,
-102,113,130, 74,171, 52, 55, 73,110,210,148,144,108,219,214,155,101,211, 84, 89, 94,206,102,179, 60,203,140, 86,136,212, 11, 73,
- 31,249, 96, 44, 77, 24,181,112,243, 55,242, 19, 24,206,199,137, 25, 7, 76,145, 80, 28,121,214, 97, 42,112, 52,183,183,103,138,
-113,176, 67, 2,160,131, 59,192,200, 56,178,142, 97, 54,199,223,243,253,248,198, 86, 94, 24, 4,207,165, 79, 65, 0, 32, 73, 76,
-166,113,117,122, 67,216,166, 89, 73,105,161,211,130,148, 22,128,214,182, 82,173,217,118,174,107, 12,194,193,238, 94, 49,153,107,
-147, 14, 34, 19,122,155, 68, 99,212,219,220,248, 38, 76,136, 47,112,195,158,220,134, 81, 19,134,112,177,151, 36, 4, 96,223,217,
- 68,144,251,217, 12,113, 83,228,190,191, 68, 58, 29, 1,116,204, 44,111, 43,119,137, 65,252,224,221,244, 43,232,201,203,129, 8,
- 7, 61,161, 94,182,160, 3,113,174,107,156, 49, 6,201,160,179, 70,153,182, 89,215,117,149, 26,173, 4,148, 49,147,131, 75,218,
-164, 90,155, 88, 39,219,163, 64, 61,126,201, 18,114,130, 61, 76,225,243,243,227,149,242, 69, 10,177, 29, 16,196, 88, 1, 3,231,
- 54, 6,137,190,240,194,251,190, 40,136,145,103,140,200,224,139, 67,122,148, 6,251,170, 39, 4, 64,212,209,211,139, 78, 2,136,
-111,164,137, 67,189,205, 72, 78, 96, 40,130,233,215,188, 31,122,239,133,104, 99,166,187, 23,204,100,175,107, 27, 97,235, 58, 91,
- 89,167,117, 54,223,155,117, 93,173,149, 46,203,137, 49, 73,108,148, 45,177, 5,140,231,192, 6,138,127,124, 78,241, 12,196,190,
-173, 80,188, 87, 44,128, 24,143, 10, 65,188, 92, 5, 63,206, 91, 29,223,134, 71,250,226,206, 33,210, 14,133,159, 56, 66,217,161,
- 47,147, 0, 95,145, 48,134,156,251,109,133,145,231,139, 35,215, 98,104, 4, 51,170,164, 24,229, 70, 97,160,224,250,181,234, 42,
-187, 89, 57, 1,157,102,218,228,214,113,235,120, 50,153,167,209,108,247, 90,119,104,130, 18,219,183,244,251,171,111, 90,216, 55,
- 95,137, 6, 1, 99, 4,208,167, 10, 4, 96,224,248,142, 66,130, 32, 56, 48,110,120,194,192, 56,210, 75, 24, 67, 43,236,123,116,
-133, 65,232, 45,186,109,236, 68, 53,126,139,129,111, 26,186,192,197, 38,151,125, 89, 64,124,200,158,240,234,175,171, 85,146,152,
-122,205,174,107,144, 80, 92,151,166,153, 23, 28,140,205,147, 2,107,184,135, 66, 99,243, 30, 24,186,124,110,209,232, 7,230,180,
-239,112,131,132, 65, 49, 98,111,172, 98, 15, 36,159, 83, 28, 18,180, 28,212, 87,236, 3,134,136,222,193,193,224,225,245, 12, 28,
-217, 78, 17,106,232, 63,215, 7,171,209,193, 25,136,207,193,117, 21,230, 33,191, 19, 23,153,199, 86,177, 87,173,136,148,102,229,
-222, 97,230,219, 42,248,254,204, 35, 29,239, 5, 48, 54, 45,151,216,115, 10, 71,181, 97, 35, 25,238,237,189,132, 18, 39, 97, 65,
- 12, 13,225,183,248,201,177, 39, 43, 68,138, 10, 96,159,219,142, 81, 85, 40, 88,198,232, 91,203, 72,117,247, 16,105,172, 39,211,
- 28,187,243, 2,142,158, 22, 71,113,223,104,243, 96,143,140,141, 38, 6,241, 54,132, 23, 67,217,135, 82, 74,129, 26, 49, 27,162,
- 83, 16,149,216,232, 30,231,103,100, 52,149, 48, 52, 56, 11,139, 54,158,142, 94, 2,101,104,208, 22,158,206, 43,105,175,133,123,
- 80, 2, 68,124,245, 15, 70, 55,192,119,251, 69, 96, 16, 26,133,103,136, 48, 42,115, 11,253, 66, 99, 41, 11,135, 50, 29,232,197,
-164,215,202,204,125,113,196,136,100,222, 75, 16,110,105,244,113,237,192, 88,120,195, 57, 24,214, 98,224,131, 15, 21, 99,209, 34,
-200, 80, 59, 38, 61,209,127,168, 72, 10,196,247, 62, 87, 16, 11, 71, 66,155,134, 8,170, 75, 15,184, 6,119, 17, 6, 22,123,168,
-254, 60,215,200, 49,224, 65, 67,103,176,222,110,202, 16,189,241,249,174, 80,189, 18,197,209, 3,200,237, 43,191,157, 52, 8,174,
- 64,168, 78, 27, 41,120,137,122,168,215,101,241, 51, 65, 96,125,197,197, 86, 49,164,112,212, 64,253,170,245,222, 76,240,240, 56,
-182, 32,196,128, 86, 69,198, 61, 6,123, 77,219,140,127, 64,244, 53, 89,189,153,247,134, 76,247,245,101, 67, 89, 72, 12,150,251,
-226, 35,127,106, 91, 59, 68,205, 52,242,175,199, 36,161,109, 22,236,214,132,245,142,249, 72,238,134, 98,163,222,219, 10,219,203,
-183, 94, 27, 57, 88, 28,153,143, 35, 69,217, 35, 15, 67,197, 46,142,122, 54, 3, 12, 32, 96, 40,189,100,255,191, 53, 24, 71,166,
-226, 91,145,198,217, 9,177, 13,241, 48,139, 65,140,163,134, 25, 87,146,240, 72, 70,250, 18,160,161,216,101, 60, 19,219, 60,165,
-190, 13, 56,159,251,204, 56, 61, 21,234,155,134, 65, 96, 95, 57,129,227, 26,205,248, 41,225, 88,190, 35, 67,169, 75,208,189, 35,
-252,120, 4,158,142,234,254,188,146, 71,142,113,103,136,219,250, 50,253,173,234, 25, 0,138,213, 81, 28,203, 14,101, 84,104, 51,
-174,176,129,109,237,112,238,173,140,171,112,198,189, 82,110,207,211,143, 11, 2,251,226,170,168,101,101,180, 5, 71, 69,107, 65,
- 11, 70, 48,189,247,172,183, 75, 91,125,165, 17, 71, 91, 60,170,110,145, 30,232, 9, 39, 25,123,253, 19,250,180,198,202, 40, 24,
- 87,169,137,104,137, 10, 15,135, 58,175, 40, 29,163, 56, 24,113,136,197, 70,126,208, 86,233, 15,222,198, 82, 28,207,203,118,144,
- 12, 35,103,167,183,243,184,101,200,122, 23, 39,238,166,160, 12,194,239, 66,119,119,236, 75,234, 6, 93,232,223,250,229,245, 93,
-255,130,253,226, 33, 92, 10, 22, 43, 68,113,161,123, 43, 83, 56,137, 61,102,166,135,187,198, 10,229,176, 46, 50,228, 67,194,253,
-227,226,142,253,148,115,204,193,219, 59,252,157,155,175,177, 38, 26,235,188, 81,230, 31,199,236,162, 88,164, 43,227,100,139,247,
-212,183,116,144,247, 99, 40, 10, 86,136,199,125,160, 65, 3, 76, 36, 33,199, 9, 91,159,137,238,143, 87, 76,163,240, 24, 35,208,
-221, 87, 58,134, 90, 56, 95, 84,119,238, 9,153,101, 84,164,185,165,149,207, 25,251,115,108,249,241, 87,198,223,138,243,219,211,
- 15,183,169,142,193,182,247, 73,115,255,161,254, 90,128,195,151,130,223,209, 83, 27, 37, 4, 11,125,113,242,144,233,193,219,250,
-142,247,150,127,212,214, 37,238, 52,230,255, 3,181,198,231,135,110, 84,158,236, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/crease.png.c b/source/blender/editors/datafiles/crease.png.c
deleted file mode 100644
index 5315d9c016d..00000000000
--- a/source/blender/editors/datafiles/crease.png.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/** \file blender/editors/datafiles/crease.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <crease_png> */
-
-int datatoc_crease_png_size= 8638;
-char datatoc_crease_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,
-253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0,
- 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73,
- 77, 69, 7,218, 7, 19, 0, 34, 11,191,157, 46, 32, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,124,123,176, 94, 85,149,231, 90,
-251,156,239,251,238, 35, 9,185,201, 21, 18,146, 92, 8,175, 16,222, 33,128, 17, 67, 2, 9,208, 64,112,108, 64, 64, 48, 60,180,
- 7, 31,211,182, 53,229,148, 35,106, 73,183,218,218,227,163,160,171,213,174,153,170,238, 46,103,108, 25,176,117,236,154,106,219,
-105,167,102, 70,171,193,215, 48, 83,128, 53, 37, 53, 22, 56, 13,140,216,218, 36,185, 55,247,251,206, 57,123,239,181,214,252,177,
-246,222,103,159,239, 94,148,240,176,113,202, 3,185,207,239,158,111,159,181,215,227,183,126,107,173,141,187,118,237,130, 95,120,
- 61,159, 23,149,204,252,192,183,190, 35, 34, 76,236,201,143,134,195, 67, 7,159,189,229,150, 91,242, 23, 25, 0, 64, 44,136,197,
- 58, 91, 85, 85, 85,141,172,117,159,250,196,199,199, 95,228,188,179, 77, 83, 85,117, 85,141,154,198, 90,107,157,247,239,122,199,
- 29,221, 23, 57,103,109,227,156,245,206,123,239, 70,195,197,127,248,135,159,253,147, 55,220,244,149,175,124,229, 51,127,116,119,
-124,145,109,156,115,222,123, 34,242,206,253,253, 79,126,124,253, 77,183,162, 41,122,253,193,204,218,117,127,120,247, 39, 13, 0,
-120,231,136, 8, 68,136,104,126,254,208, 13,111,186,157,153, 1, 13, 11,120, 34, 98, 49, 0,224,137,152,200, 57,119,232,192,179,
-175,190,240, 34,242,158,136,132,217, 57,231,172,117,206,151, 0, 80, 87,213,225,133,133,133,133,249,157,187, 46, 70, 99,156,243,
-222,251,166,105,154,186,174,170,202, 90, 87, 2, 64,175,223, 91,191, 97,195,153,231,108, 19, 0,219, 52, 68,100,235,166,170,134,
-163,225,176,174,107,231,108, 9, 0,211,211, 43, 7, 19, 19,214, 90, 34, 34, 34,103,109, 93,143, 22, 15, 47,142, 70,195,166,169,
-157,181,248,188,246,238,249, 92,248,237,239,124,151,152,137, 89, 88,154,166, 89,152, 63,244,236,207,254,254,237,239,248,103,221,
-109, 49,165, 0,122, 79, 85, 85, 87,163, 81,211, 52,206,211,239,125,240, 3, 29, 45, 32, 34,103, 93, 83,215,182,105,170,186,178,
-141,245,222, 75,247,237,140,179,182,105, 26,235,156,117,142, 60, 89,219,204, 31, 58,184,247,242, 43,255,250,107,255,233, 11,127,
-254,121,125, 81,113,243,155,246, 91,107,189,183,222, 59,239,220,252,161,131,151, 93,177,143, 89,156,119, 34,112,233,222, 61, 43,
- 38,251,198,121, 71,228,137,136,153,155,198,254,248,233, 39, 89, 68, 0, 16, 13, 51, 51,241,214,211, 78, 55,204,172, 50,172, 70,
-213,211, 79,254,159, 27,111,121,139,119,164, 63,180,214, 54,214, 18,113,217,212,245,226,225,133,133,133,133,209,112,120,245, 53,
-215,121,231,136,188,181,182,174,171,186,170,109,211,120,239, 75, 99,204,202,149,171,230,142,223, 60, 61,189,162,169, 27,242,228,
-188,171, 70,195,209,112, 52, 26, 13, 27,219, 56,231,202,193,196, 68,175,215, 47,138,178,170, 42,239, 61,145,111,234,122, 56, 92,
- 92, 92, 92,172,235,218, 54,214, 57, 7, 47,213,222,149,249, 55,123,246,236,121,239,123,239, 28, 12, 38, 4,132,153,137,188,115,
-206,217,230,221,239,126,247, 19, 79,252,232, 23,219,239,183,190,243, 16, 8, 51, 48, 19,176, 48, 51, 9,139,243,236, 61, 57,235,
-235,218,126,240,174,223,173,134,195,225,226,194,251, 62,240, 65,239,253,115,175, 8,129, 89,136,216, 19, 17,121,239, 61,121, 79,
-222, 91,103,189,247,174,177,206, 58, 34, 2, 52, 31,252,192,251,230, 15,252,244,238, 79,255,155,165, 55,138, 38,238, 92, 99,173,
-109,154,166,174,109, 93, 55, 77,221, 52,141,179,206, 89,215,216,166,170,235,209,104,184,184,120,120,126,254,208, 81, 51,179,159,
-252,248,199,214,172,153, 89,102, 69,206, 90, 79, 94,151, 66,222, 17, 17, 49,145, 39, 98,242,222,217,166, 94, 92, 56,180, 48,127,
-232,154,235,111,114,206, 53,117,237,156,253,220,191,253,188,109,154,170, 26,141, 22, 15,223,115,207, 61,143,253,239, 31,150,186,
- 34,125,162,160, 85, 76,204,204,204,222,249,166,174, 15, 60,251,236,197,123, 47,155,156,156,246,228, 17,141, 41, 74, 36, 66, 67,
-128, 8,104,176, 40,222,246,182,183, 45, 30,158, 47, 1,192,147,103, 10,127, 44, 2,194,194, 68,214, 54,135, 15, 31,254,233, 79,
-158,185,246,250, 55, 10, 64,248,189,136, 90, 16,179,120, 79,206, 57,231,188,250,165, 18, 0,188,243,222, 91,103,131, 27,178, 77,
- 51, 26, 46, 46,204,207,159,191,227,194, 11,119,238, 38, 10, 55, 9, 79,236,157,181,182,169,235,166,169,109,211, 52, 77,163, 30,
- 70,111,164, 38,233,137,120,208, 31,172, 95,119,236,218,217,217,162, 48,196, 98,109,163,235, 96,102,242, 94, 61,111, 93,215,213,
-104, 84,215, 85, 93, 87,186, 39,222,251, 18, 0, 6, 19, 19,131,137,201,178, 44,250,253, 65,127, 48, 48,133, 33,102,107, 29, 11,
-199,187,144,250,108,103,109,221,212, 77,173, 31, 42, 93,148, 62, 75, 9, 0,166, 44, 12, 22, 69, 97, 4,192, 90, 11, 0, 34,204,
- 44, 18,158, 40, 56,117,235,172,179,214, 54,182,105,106,107,195, 71,231,156,174,243,165,243,147, 47,201, 53, 55, 55,103, 94,170,
-123,181,214,191,113,227,198,223,121,215,187,118,236,216, 1, 65,107,200, 89,231,189,123,232,161,239,125,232, 67, 31,249,197, 17,
-224,190,251,238,223, 52, 55, 39, 0, 34, 0, 32, 34,144, 54,219, 58,219,212, 77, 83, 87,163,209,240,217,159,253,228, 61,239,125,
-255,207,123,180,205, 39,158,132, 69,129,198, 32, 32, 51, 50,179,247,228,189,119,222,107, 48,116,222, 51,115,127, 48,249,251, 31,
-190,235,231,172,200, 0, 34,128, 17, 65, 6, 97, 86,255,161,161,214,122,231,188,119, 76,228,189, 23, 17, 99,202,223,186,253,230,
-231,148,145, 8,112,208, 23, 86,111,164, 6,236,189,143,134, 68,204, 44, 0,128,184,110,253,134,231, 92, 81,144, 72,250,235,246,
-114, 68,196,172,183, 38,242,158, 60,145,231, 59,110,189, 97,249, 27,169, 41,198,143,158,201,135, 32, 22,162, 18,249, 16,122,234,
-209,104,180,184,184,184,115,207,111,220,122,235,254,101,118,237,155, 15,124,219, 57, 23,125,172, 58,166,112, 83,239,189,122,175,
-197,195, 11, 7, 15, 30,216,123,217, 21,189,126,223, 59,215,212,117, 93,143, 70,139,135,111,123,243,111,181,187,150,214, 66,228,
- 53,112,234, 63, 22, 97, 22, 98,182, 77,115,248,240,194,117, 55,220,188, 98,213, 81,136, 6, 0, 76, 81,148,189,193,196,212,244,
-159,253,233,159,124,246,211,247,132, 71, 75,142,134,136,153,136, 85,145,132,133,213,232, 93, 85,141, 78, 63,107, 27,154, 2, 1,
-209, 24, 64, 3,168, 87, 81,148, 37, 96,249,241, 63,248,136,136, 24,166,136, 72,152, 68,152,133, 89,132, 69, 68,152,136,154,186,
- 62,120,224,192,150, 83,183,130,134,123, 64, 68, 3,128, 0,192, 34,204, 0, 0, 34,120,201,238,139, 12,197,187, 0, 8, 11,160,
- 4,237,246,158,154,166, 89, 88, 56,116,211, 45,111,102, 1, 22, 9,110, 22,245,143,129,152, 73,130,102, 32,162, 17,125,144,248,
- 50,125, 48, 79,212, 52,245,225,249, 67, 69, 81, 2,162,168,179, 14,239, 1, 34,162,210,224, 76,203,140,222,166,213, 72, 34,239,
- 92, 53, 26,205, 31, 58,120,224,192,179, 87, 94,253,122,197,149, 28, 99, 67,124,109,186, 66,200, 40, 85, 23, 3,254,244,214, 54,
-174,174,171,195, 11,243,195,197,197, 27,110,218, 31,221,164,222, 69,109,153,244, 95, 52, 3, 98,102, 0, 41,137, 72, 93,186,250,
-208,166,105,108,211, 76, 77, 77, 95,113,213, 62, 6, 96, 79, 44, 76, 76,194, 18,212,219, 59,189,124,128,214,158,136, 68,164, 20,
- 17, 0, 65,192,162, 40,166,166,166,214,174,157, 93,127,236,134,137,137, 1, 51,122,213, 44, 97, 81,100,224,157,174, 60,126,178,
-228, 83, 60,149, 18, 17,203,162, 44, 38, 11, 83, 20, 83,147,211, 43, 86,174,236,245,122, 44, 66,228,146, 88,152,245, 46,222,218,
-198, 89,167,200, 74, 49, 89, 16,182,112, 89, 20,133, 49, 6,209,244,251,253,254, 96, 0, 8, 26,187,219,187, 80,176, 56,103,173,
- 6, 80,231,172, 62, 95,146,185,136,148,104, 10, 3, 96, 10, 99,140, 1, 1,242, 36, 2, 34, 44, 65,186, 28,227,171,110,135,109,
- 26,235,157,243, 46, 72, 71,157,178,176,148, 6, 16, 16, 0, 80, 4,136, 9, 24, 68,194, 38, 11,115,176, 67,231,124, 8,213,141,
-115,154,255, 56,197, 81,193,182, 68,224, 21, 21,215, 54,109,218,100,224,149,116,169, 71,120,101, 93,109,188, 94,177, 98,197,103,
- 62,251,217,205,155, 79, 48, 6,213, 71, 2, 34, 8, 32, 0,171, 11, 18, 17, 0,102, 22,144, 20, 47, 20, 72,123,239,172,109,108,
- 93,223,127,255,125,127,243,159,255,203,139, 90, 16, 51,127,231,123, 15, 5, 39, 7,160, 97, 16,132, 17, 64, 20,113, 2,130,122,
-181, 8, 9, 98, 48, 37,239,188, 6, 61,231, 61,145, 8,154,107,174,189,110,223,213, 87,219,186,250,189, 15,127,116,113, 56,124,
-129, 18, 66, 52,136,128, 2, 12, 12, 8, 34, 32,128,193, 72, 4, 88, 72,162,249,231,171,225, 36, 34,239, 67,164, 39, 34, 98, 17,
- 17, 52,119,222,249,158,166, 26,126,228, 99,159, 60,210, 5,181, 58, 20,156, 58,131,218,124,112, 26,106,150,193, 33, 70,183, 24,
-160,167,186,199,176,172,144, 41, 8,139, 0,162, 49,166, 40,123,131,247,191,247, 95,108, 62,110,211, 17, 47, 72, 67, 33, 37,199,
- 67, 62,130,225,176,168, 4, 76,226,255,222,147,139,222,204, 51, 49,197, 56,173,145, 53, 70,106, 4, 48,175,127,221,190,215, 92,
-176,237,200, 22,164, 34, 81,208, 16,119,130, 56,166, 91, 9, 49, 17, 41, 52, 10, 0, 33, 97, 32,239, 93, 10, 43, 62,178, 58,138,
-232,235,166,110,154,250,164,205,115,235,143,153, 61, 2, 29,138, 16,132,163, 87,101, 97, 98, 17, 69, 54, 73,123,146,211, 21,144,
-152,201,133,199,112,206,105, 72,112,214, 90,107,155,170,106,108,179,234,168,163, 46,191,226, 42, 37,185,110,190,253,237,154, 4,
- 9,249,251,190,248,197,175,126,245,107,206,185,231, 94, 80,140, 1, 89,100,103, 25,251, 34, 68,123,201,175, 16, 18,188,247,206,
- 69, 30,105,104,176,120,221,181,215, 3, 72,212, 45, 22, 17, 64, 83,148,189,137, 73, 67,222,223,124,243,254, 27,174,191,193, 90,
-235,109,243,195, 31,254,240,227,159,186,251,185, 22, 68, 9, 95,104, 60, 35, 34,145,152,145, 50,131,162,103,209, 40, 21, 96,161,
- 39,239,156,109,108, 51, 28, 46, 46, 30, 94,184,254,166, 91,202,178, 84,204,136, 6,208, 8,178, 8, 10,162, 65, 44,140, 1, 41,
-160, 8,160, 9, 1,240,196,147, 79,249,204,167,255,208,217,230,145, 71, 30,249,220,191,187, 23, 0,138,185,185,185, 93,187, 47,
-225, 86, 66, 29, 0,164,114,201,193, 85, 0,149,204, 68,236,189,183,182, 81,232,227,156,123,227,254, 55,131, 41, 20,195,113,120,
- 61,132,255,130, 15, 9,127, 78, 42,221,240, 46, 76,196,107,102,102,118,237,188,112, 56, 26,150, 0,144,173, 32,124,134, 40,132,
-112,131,236,182,208, 38, 7,174,105,234,106, 56, 92,152, 63,180,122,102,205,158,203,175, 96, 17,228, 16,230, 65, 98,112, 2, 4,
-196,128, 54,213,128,132, 33,224, 35, 97,145,224,186, 4, 0,113,253,186,245, 37, 0, 72, 80, 77, 17,137,224, 67, 4,132, 49,190,
- 16, 32,253, 88,151, 66,214, 54,202, 44, 46,204, 31,188, 96,199,107,143, 63,225,164, 4,199, 69,128, 35, 62,143,127, 31, 87, 19,
-124,189,120,138,232,200,123,245, 20, 28,215, 84,106, 54, 30,111,128, 81,111, 57,221, 46, 71, 52, 1,205,216,102, 84, 13,135,135,
- 23, 71,195,225, 27,247,223,134,104,244, 14,113, 61,105,103,226, 13, 90,160,220, 66,223,100,218,196, 17,230,137,128,136,110, 89,
-216,209,104,225,212,218,150, 36, 10, 68,151, 98,171,106, 84,141, 70, 77, 83,239,222,115,217,209,199, 28, 35,130, 65,174, 44,196,
-220,221,107, 17, 14, 25, 73, 22,139,131, 63, 11,105, 31, 17,249,248, 10,102,137, 86,150,129,109, 74, 95, 82,250,121, 12, 25,150,
- 60, 1,200,238, 61,151,174, 58,234, 40, 4, 16, 6, 17, 98, 17,150, 96,131,154,119,196, 84,138, 2, 1,146,185,122,189,185,243,
-142, 60,169,223,143,206, 33,152, 81, 80,234,200,152,198, 85, 4, 47,192, 32, 82, 20, 69,175, 44, 87,173, 94,125,204, 49,235,142,
- 62,250,104, 68, 99, 12,106,118,164,158,162,189,178,173,226,140, 77, 35, 69,174, 33, 48, 58,175,161, 80,189,191, 39, 34, 31,128,
-114, 90,144,218,131, 49,136, 88, 24, 52, 69, 89,192, 0, 10, 83,148,189,114, 98, 98,114, 98, 98, 98, 48,152, 40,123,165, 9,116,
-128,120,226,108, 83,130, 69,165, 60, 73, 68, 84, 50,204, 45, 96,114, 41, 76, 59, 27, 2, 81,136,137,196,121,216, 98, 46, 1,192,
-152,162, 44, 1,160, 4, 17, 68, 52, 69, 97,140,233,245,122,101,217, 43,123,189,162, 40,208, 24, 17, 32, 17, 17,223, 46,165,149,
- 11, 72,164,169, 36,229,210,233, 10, 81, 57,172, 74,213,199, 57, 71,222, 39,205,138,209,147,130,132,138,162, 80, 68,132,136,198,
- 24, 93, 80, 81, 20, 69, 81,232,163,227,216, 10, 0,152, 89, 33,100, 22, 70, 82, 4,140,230,163, 91,226, 35, 63,171, 68,130, 11,
-236,133,254, 66, 21, 40,154, 91,220, 50,205,128,208,160, 1,131,138,214, 0, 68,132,152, 80, 16, 12, 74,124,251,184, 8, 22,105,
-151, 19,227, 93,174,200, 1,150,248, 60, 61, 13, 59, 20,100,148,168,151,232, 1,130,214,150,136,248,224,131,127, 27,244, 8, 16,
- 17,131,131,133,228, 93, 21,204, 6,111,221, 46, 44,174, 78, 63,235,126,129,162, 93,110, 63,228, 30, 36,248,163,150,199, 76,233,
-185,194, 10, 94, 92, 28,190,194,248, 70,205,205, 94, 57,139,217,181,107,151, 9,187,243,138,185, 94,113,137,226,175, 23,116, 68,
-133, 47,189, 86,175, 94,189,113,227,198, 75,246,236, 57,111,251,246,205, 39,156,192,204,170,103,234,245, 34,166, 33, 34, 22, 38,
-239,221,226,226,225,127,127,239,125,255,237, 27,223, 24,190,160, 84,117,156,111,152,155,155,123,242,201, 39, 1,224,214, 91,111,
-189,227,173,111,101, 22,131,200, 29,247, 19,192,149, 32,128, 64, 0, 42,204,209,203,106, 61,196, 58,219,212,245,232,109,111,255,
-237, 23,105,101,229,190,125,251,110,188,233,166,126,111, 64,204,136, 96, 16, 16, 1, 89,153, 6, 6, 65, 4, 96, 96, 0, 68, 0,
- 22, 6, 65,133,204,209,227, 73,192, 28,104,140, 41,255,248, 51,127,244,245,175,127,253, 47,255,227, 95,189,112, 29,218,184,105,
-110, 48,152, 0,196,162, 48,136, 70, 41, 91, 84, 6, 4, 13, 96,130,235,146,177,150,156,130, 79, 98, 7,149,173, 16,192, 93,187,
-118,189,229,182,253, 47, 82,169, 13, 32, 10, 24, 68, 4,196,192, 52,164, 28, 59,198, 78, 69, 10, 41,103, 34,110,211, 72,133,184,
- 65, 88,136,167,108,217,114,227, 27,174,121,161, 11, 66,221, 36, 37,131, 0,179,164,137, 33,172, 39,214, 28, 3,162, 76,240,133,
-210,174, 41,120,229, 4,235,205,233,167,159,177,243,194, 11, 94,168,132, 68, 80, 48, 75,163, 68,178, 92,153, 2, 42,230, 40,151,
- 22,169, 75, 74,231, 68,152, 36,149, 49, 85,163, 46,185,120,247, 96,208,127, 33, 11, 18, 68,129, 0, 40, 56,112, 65, 90, 34,144,
-140,238, 38,102, 10, 75, 32, 34, 9,178, 10,175, 20, 86,188,171, 54,137,104,180, 2,241,207,223,249,246, 35, 95,144, 22,205, 4,
- 67,118, 23,245,183,205, 64, 98,214,156,148,153,133, 69, 19, 19, 74,249,165, 72, 94,131,128, 80,212, 16,129, 29,231,159,251, 2,
-182, 12, 82,221,133, 59,171, 97,205, 44,219,165,168,250, 16, 39,133, 86,196, 19,228, 41, 16,133, 11,113,101,120,254,246,179,143,
-108, 65,145, 74, 8,201, 99, 39,185, 31,175, 53,113, 44,215,132, 61, 74, 82,108, 95, 41,113, 99,133, 98,165,211,239, 56,239,172,
- 35,219,178,140, 65,200,101,211,190,107, 91,114,226,136, 13,187,104, 58,114, 6, 33,163, 83,134,205, 89,167,253, 42,199,111, 90,
-127, 4,177,172, 77,194,211,106,226,163, 75, 78, 66,180,136,115,140, 34,210,181,112, 68,236, 94,171, 24,182,110,172,173,133,121,
-199,206,221,236,221,218, 99, 79,124,248,225,135, 31,124,240, 91,207, 35,184,198,140,179,229, 62, 34, 87,150, 86, 25,127,210, 73,
- 9, 91,199, 19,189, 67, 40,208,219,166,169,106, 17, 62,231,188, 11, 54,111, 62, 65,179,176, 13,115, 39,236,221,187,247,119,222,
-249,219,243,135, 14,126,232,195, 31,253,241, 51,207,252,156, 34,110,198, 12, 48, 67,150,255,229, 41, 24,164,196, 20,218,111, 56,
- 83, 35, 34,114,206, 91, 91,215, 85,181, 97,195,166,243,119,188, 38,241,114, 34,128,198, 20, 69,217,235, 79, 28, 53,179,246, 19,
-159,248, 87, 77, 93,127,225, 11,247,254,215,111,124,115,249, 98,240,114, 10, 36, 73,108,146, 68,147, 75, 8, 58, 26,164,233,191,
-109,234,166,170,206,223,113,225,107,118,238, 2,229,207,160,229,137, 76, 81,152,162, 40,203, 94,217, 27,244, 7, 19,251,111,217,
-255,175,255,248,211,219,207,221,182,156,149,113,178,247,164,188,109, 24,139,218,157,210,158,214, 73,196, 24,167,105,160,173,235,
-234,236,237, 23,108, 62,225,164, 88,154, 69, 72, 81, 9, 67,228, 54, 69, 97, 76, 81,148,101, 81,148, 69,175,255,150, 55,223,254,
- 7, 31,253,208, 18, 43,107,181,149, 5,100,233,165,174,138,133, 51,138, 61,176, 83,186, 91,206,217,186, 26,173,219,176,233,212,
-173,167,169, 56, 2,106,192, 80, 68,139,159, 48, 57,113, 52,198,160, 49, 69, 49, 57, 57,125,247, 39, 63,182,116,203, 50,155,206,
-210,191,160, 48, 42,250,200,236, 65,210,117, 14,194,105,154,198, 89,187,235,226, 61,162, 85,154, 84,108,138, 43, 72,121, 40,164,
-229, 97,145,100,198,130, 31,251,200, 93,250,142,109, 33, 56, 55,126,201, 72,181, 44, 67,205,232, 75, 9, 44, 7,121,111,109, 83,
-141,134, 87,190,254, 90,132, 78, 70, 21, 68, 3, 49, 9,238, 48,123, 90, 83,137,191, 0, 68, 44,238,122,255,123, 84,135, 64, 18,
-243,149,171,171,114,159,105, 9, 32, 49,208,133,239, 67, 21,219,218,186,174, 86,174, 58,106,245,234,153, 36,193, 32, 36,133, 87,
-152,150,135,113, 49, 16,111, 31,158, 85,127,110,138, 66, 99, 89, 32, 52, 33,227,156, 98,177, 76, 31, 5, 37,162,164,204,182, 66,
-163, 83,211, 52,163,197,225, 85,175,187, 6, 4,219, 93,141,245,251, 32, 33,108, 87, 19,165, 29,241, 31, 75, 90,165, 6, 86,147,
- 59,234,140, 57,149, 68,238, 50, 48, 2,230,194, 73, 45, 83, 77, 93,143,134,139,103,158,115, 46, 24, 20,225,148, 15, 36,142, 66,
-239,145,111,101,122, 47,206,116, 35,145,200,173, 82,199,189,234,250, 62,125,188,196, 79, 67,146, 13, 57,165,204,171,145,247,254,
-236,115,183, 99, 64,154,208,241, 86, 81,147,179,149,180, 28, 87, 40, 25, 36, 3,137,187, 93, 6, 45,131, 86,123, 16, 37,254, 0,
- 64, 36,214,244, 68,219, 9,180, 1,180,174,235,170,170, 70,163,209, 53,111,120,163, 50,194, 32,208, 65, 68,137,182,129,246,121,
- 83, 89,128,133,146,243, 72,130, 80, 49,149,146,101, 94, 57,189, 45,233,158,146, 50, 13,239,180,243,184,105,234,106, 84, 13,135,
-167,158,126,230, 96,114, 34, 3,118,144, 91, 5,100,218,145, 12, 35,145, 70, 36,169,206,212,218,118, 43,161, 84, 69,232,216, 63,
-100,101,141,232,111, 66,163,221,226,226,202, 85,171,206,217,118,174,146,105, 16, 95, 14,203,249,213, 78, 80,202,124,112, 90, 75,
- 96,254, 99,180, 31,131, 53, 89,121, 44, 0, 47, 74, 61, 31, 77, 93, 85,163, 81, 85, 85,166, 44, 47,191,234,106, 81, 13,209,142,
- 20,200, 35,176,164, 98, 68, 44, 28,228,245, 90,238, 22,121, 24,146,242,106,180,143,191, 84,166,146,242,228,203, 71, 26,223, 90,
-107,155,186,169,107,107,237,212,212,244, 21,251,174, 78,174, 92,223, 45, 49,195, 73,181,219,199,215,124, 50,131,114,109,181, 73,
- 24,160, 19, 30,202, 16, 9, 82,147,135, 79,237, 82,148, 90,203, 83,225, 87, 68,102,143, 62,122,247,238, 75, 40,186,180,229, 89,
-226, 92,230,109, 22, 71, 73,230, 33,111, 32,202, 54,142, 19, 64,147, 54, 1, 35,146, 78,127, 80,184, 0,196, 24, 51,152,152, 56,
-238,248,205, 39,158,124,114, 40,229,235,106, 98,129, 15, 98,188, 75,217,211,120,141, 50,207, 93,136,218,141,137, 74,164,107, 42,
-115,252,165,205,170,137,142, 45,138, 2, 17,203,178, 44,138,114,229,202, 85,155,230,230, 38, 39, 38, 64, 64, 16, 68, 64, 55, 33,
-112,214,201, 87,229,218, 27, 31, 50, 86,124,162,236,179,228, 51, 67,233,156, 89, 89,198, 9, 35, 22, 69, 1,198, 96, 9, 37, 34,
-150,189,222,228,228,228,170, 85,171,167,166,167, 10, 83,136, 54,125,101,214,194, 93,168,148,173, 39, 75,187,227,122,210,111, 36,
-214,237,186, 59,206,237,130,148,195, 7, 0,131, 70,160, 48,104, 76, 97,250,253,137,201,201,137,137,201,201,158, 22, 24,208,164,
- 90,214, 56, 90,234,172,134,132,133,219,188,219,135,242, 74,236,136,111, 51,167, 49,252,174,142, 81,151,194, 0, 70,215,132,136,
-136,101, 81,244,250,253, 94,175,223, 31, 12,202,178, 52,104, 32,134,104, 9,157,202, 17,217,118, 49, 73,108,179,139,213,130, 88,
-127,247,177,200,207,109, 79,224, 88,254, 18,244,186, 84,166, 9, 17,149, 34,195, 80,229, 40,203, 94,217, 43,123,133, 41, 16, 81,
-130,105,114, 23, 44,113,114,199, 44,157, 36,147, 58, 5,134,208,123,144,138, 50, 18,147,184, 49,170, 63,232, 16, 34,232,102, 1,
-136,214, 94,140, 41,138,178, 40,203,158, 49, 5, 96, 52, 28,173,126,130, 38,241,250, 19, 65, 68,117,107, 89, 2, 78,169,220,225,
-189,231, 80, 51,243,173,111, 11,149,180,142, 7,206, 16, 23,148, 17,141, 7,202,194,152, 66,113, 56, 34, 38,236, 12, 8, 75, 4,
-220, 13, 47, 89, 13, 81, 98,157,140,219,142,153,152, 16,197,134, 84, 78, 44, 75,150,123,114,178, 50, 69,190,128, 96,194,238,161,
-154, 18, 24,147,252,213, 82,253,205,205, 60, 75,242, 37,172, 35,224,237,214,234,169,109,138,236,176, 7,121,170, 19,116, 72,205,
- 71,243,149,208, 86, 37,194, 0,168,132,112,162, 88, 98, 52, 15,124, 89,196, 71,237,106,242, 98, 25,121, 31,140, 43,197,161,176,
-178, 60, 67,239, 60, 89,148,144, 54,157,162, 6, 74, 4, 1, 65, 1, 81, 53,207, 97, 72, 11, 70, 2,246,137,132,137, 36,215, 18,
-140, 57, 73, 38,244,240,196,229, 80, 96,155, 2, 69,218,250, 32,206, 22,244,228,147, 79,194, 3, 15, 64, 94, 39,139,217, 84,196,
-122, 25, 92, 74,160, 11,198,154, 40,198,176,134,180,221, 52,156, 37,220,233,235,236, 5, 45, 95,193, 12, 0,184,107,215,174,131,
- 7, 15, 30, 58,116,232,149, 86, 22,250,199,189, 68,100,245,234,213, 51, 51, 51, 37, 0,204,207,207, 63,245,212, 83,191, 22,202,
-210, 38,207,153,153, 25,243,107, 65,252,138, 85,239,126, 45,160, 95,177,171,124,145,127,223,239,247, 55,110,220,120,210, 73, 39,
-189,234, 85,175,154,158,158, 94,179,102,205,236,236,236,236,171,102, 87,174, 88, 57, 24,244,203,178,215,118,100,164,174, 50,102,
-107,109, 85, 85, 79, 60,254,248,211,255,247,233,103,158,249,201,119,191,251,221,159,254,244,103,191,122, 2,154,158,158, 62,119,
-251,246,173,167,158,186,101,203,150, 53,107,214,172,158, 89,115,212,170, 85,101,175,215, 97,126, 88,150, 13,127,109,199, 74, 74,
- 27, 67,149,148,153,165,236, 13, 38, 39,167, 87,175, 94,115,206,185,219,133,249,246,219,223, 2,129,153,241,213,104,244,212, 83,
- 79,125,255,251,223,255,171,175,126,173,170,170, 87,132,128,152,121,237,236,236,220,220,220,171, 95,253,234, 75, 47,189,244,152,
- 99,214, 21, 69,161, 80, 1,209,180, 4, 77,124,116,108,121,240,192,189, 33,132, 94,249,216,238, 40, 0,168,141, 90, 2, 28,193,
-139,194, 39,148,172, 77, 83, 57, 37, 64, 96, 2, 34, 97,193, 94,127,112,220,113,155, 55,108,220,116,217,101,151,131,240, 19, 63,
-250,209, 95,124,233,203,143, 63,254,196, 63, 90, 44,219,185,115,231,149, 87, 94,181,247,210,203, 82, 50,147, 24,102,142,221,153,
-204, 58, 30, 16,149, 2, 17, 19,213, 6,130,145, 89,139,194, 17, 64,140, 77,253, 49,193,134,140,122,162, 48,123, 74,177, 45, 58,
-245, 40, 83,219,101,149, 58, 5,181, 71,204, 63,250,232,163,127,126,239,253,207, 53,255,251,114, 92,115,115,115,199, 31,127,188,
-137,140, 58, 2,160, 65,205,160, 35,200, 71, 29, 25, 16,237, 36, 12,210, 66,131,208, 82,125, 58,114,147,100, 23,180,131, 98,225,
-113,172,185, 52,212,176,219,110,246, 44,241,136, 85, 92, 78, 85,232,152, 84, 24, 3,130,167,157,118,250, 71, 63,252,187,239,124,
-199, 29,147,147, 19,191,252, 40, 22, 42, 17, 49,249,193,212, 83, 32, 32, 40, 38, 90, 84, 48,166,118,178, 67,116,230, 91,136, 37,
-146, 46,156, 77, 14,143,181, 39, 82, 70, 61,105, 82, 79, 73,136,145, 99,226,110, 81, 35,230, 89,136,104, 80, 0,215,173, 63,246,
-125,255,242,221,151, 95,122,201, 47,215, 73,107,201,131,163,117, 41,219,160, 9,162, 32, 35, 3,163,104, 89, 33, 99, 50, 17, 80,
-217,178, 80,142,232,122,228, 84, 33, 73,125,151,129, 67, 16,161,192, 1,164,174,118,201, 91, 7,243, 33,132,160,151, 33, 7, 51,
-128,108,140, 17, 46, 95,179, 99,199,246,109,103,221,247,197,175,252,232,239,158,252,229,225,160, 72,216, 99,232,134, 9,126, 70,
- 64, 71,131, 58, 73,101, 74,255, 36,159,205,203, 88,195,150,137,138, 41,117,219,193, 34, 45,169, 23,186, 37, 2, 33, 20,211,198,
-196, 11,115, 42,207, 5, 55,128,202,131, 24, 83,148,253,137,155,110,188,238,202,203,247,252,146,194,124,244,176,173,156, 66,201,
- 40,122,151, 54,151, 31, 99, 62,218,248,157,243, 32,161,170, 19, 72,199,164, 29, 16,198, 6, 18,185,192, 99,205, 8, 44, 97,104,
-128,133, 57,104,113, 12,129,169, 0,105, 0, 89, 71, 49,206, 60,227,140, 77, 27,215,127,254,222, 47, 87,117,253,114,106,144, 64,
-151,207,133,216,221, 2,146,166,177,163,219, 96,145, 14,163, 67, 25,109,215,165, 48, 83,155, 74,250,149,132,145, 84,157, 79,109,
- 11,240,173,175, 14,149, 7,210,141,226,220, 91,103, 29, 11, 41,155, 4,192,233,233, 85,111,186,241,218,169,151,205,115,155, 84,
-171, 12, 96, 23,114, 62,140, 59, 42,145, 21, 43,242, 50, 69, 91,178,143,210,144,246, 97, 89,114, 27,204, 98, 61,136,228,229,157,
-150, 91,138, 93, 20,121, 25, 36,109, 9,100,195, 55, 74,212, 51,115,191,223,219,127,227,111,246,122,229,203,167, 65, 99,228,146,
-180,143,190,204, 46,231,205,130,196,227,244, 96, 59,228,211,109, 15,227,246,177,226,251, 68, 6,153, 83,231,190,144, 48, 73, 62,
-248,145,134,219,245, 59,223,206, 26, 18,121, 98,239,136, 66, 45,232,154,125,123,203,178,120,249,124, 80,222, 41,144, 55,192, 64,
-172, 78, 67, 44,135,132,122,223,210, 82, 97, 59,194, 51,254, 85, 40,242,182, 41, 7,100,157, 63,169, 63,139, 34, 90, 24, 3, 11,
-173,231, 39,142, 67, 55,249,248,131,174,191, 87,154, 45, 39, 29,255,191, 30,123,252,165, 23, 80, 2, 29,144, 22,158,149, 7,150,
-169,153, 66, 56, 55,128, 99,175, 91, 43,196,177, 63, 81,212,148,245, 18,228, 37, 97,233,118, 4, 5,132,153, 43, 76,170, 70,180,
- 35, 24, 97,232, 1, 1,103,214,206,110,221,122,250,218,217,181,104,140,118, 80,222,194,236,188,243, 90,120,173,171,167,159,122,
-250, 75, 95,254, 15,143, 60,242,232, 75, 32,160,229,202,146,227,227, 61,241, 97,151, 87,156,172, 26,174,165,125,110, 41, 98, 16,
-232,116, 37, 44, 41, 70, 72,236,248,139, 39,115, 36, 43,210, 67,122,156,119, 76,222,123, 94,177, 98,197, 9, 39,157,188,113,211,
-220,228,196, 4,133, 57, 20,101,196,131,251, 54,113,242,177,215,159, 56,117,235,170, 59,239, 60, 89,149,115, 52, 26,253,224,177,
- 31, 60,244,208,255,120,240, 91,223, 38,226, 35, 55, 49,142, 72,164,211,190,197,153,105, 64, 28,141,140, 86, 2, 17, 11,142,205,
-189, 64,219, 68, 32, 89,163, 75,183, 3, 41, 5,245,232,245,242, 58,115, 24,158,245,206, 91, 61,107,167,223,239,157,114,202,153,
-167,108,221, 90, 20, 70,229, 73, 97, 89,144, 53, 77, 64,108,219, 2, 99, 16, 16, 13, 25,131,133,150,191,167, 87, 20,231,158,187,
-253,172, 51,207,190,253,182,219, 68,228,192,129,103,239,187,255, 47,126,240,216, 99,163, 81,245,252, 52,168, 27,176, 58, 6, 22,
-129, 50,116,154,153, 24, 0, 56,252, 10,194,199,100, 60, 8, 28, 17,204,248,172, 78,222, 80,147,151, 23,212,191,112,156,168,114,
-214, 89,235,189,237,245, 6,231,239,184,112,227,166, 77,138, 96,153, 25, 81, 0, 89, 75, 29, 25,144,132,188,129, 11, 12, 24, 41,
- 24,192,132, 57,124,131,136, 72, 6,177,208, 77,152,153, 89,251,214, 59,254, 41, 51, 9,211,195, 15, 63,242,167,159,251, 60, 17,
-253, 2, 31, 20,167,231, 51,221,145,113, 51,137,253, 85, 93,229, 8,169,127,236,171, 0, 1,134,212,109,210,241, 63,185,137,133,
-210,126, 42,155,235,137, 24,169, 11,179,241,222,159,118,198,153,103,158,181, 13, 77, 24,191,132,216,154, 37,136,136, 40, 98, 16,
- 5,209,132,253,209, 18, 17,100,237, 91,104, 64, 85,138,217, 24, 16, 0,131, 32, 80, 6,204,105, 12,120,207,128,103,158,117,246,
- 61,159, 58,163,174,171,111,254,237, 3, 95,253,235,191, 89, 78, 64,208,182,191, 64,215,181, 4,255,155,199,163,220,211, 72,222,
-230,147, 59,161,108,234,172,213,160,113,245, 1,142,105, 8,233,177, 68, 78, 15, 62,113,182,153,156, 94,113,209,197,123, 87,175,
- 94, 29,186,239, 67, 42,136, 25,158, 86, 57, 24, 68,150, 32, 26, 12,111, 21,186,246, 33, 73, 84,115, 4,131,134, 64, 84,166,104,
- 10, 20, 65, 99,144, 11, 99,132, 68,250,253,193,197,187,119,239,190,104,231, 35,143, 62,250,197, 47,253,165,115, 46,239, 19, 10,
-193, 43,153, 91, 59,112, 12,153,107,137,154, 16, 11,174,201, 51, 98,234,200,144,148,166, 4, 30, 13, 66, 81,178,197,160,169, 53,
- 82, 98, 61, 49, 12,168, 90,107,155,186,170,235,234,216, 13,155,118,239,185,204, 24,148,152, 24, 6, 50, 1,218,118,177,216,146,
-135, 16, 69, 37,161,167, 77, 64, 80, 37,138, 8, 97, 10, 70,201,137,144,246,182,124, 95,168,112, 11, 2, 27, 53, 67, 6, 56,109,
-235,105,119,125,224,148,239,253,247,135, 30,250,159,143, 38, 19,227,214,102,100,108,194, 59, 83,143, 40,130,152,188,118, 21,165,
- 75, 57,114,120,162,196, 69,119, 3,151, 48,229,167,224, 88,219, 52,117,221,212,174,105,206,217,126,193,233,103,156,149, 49, 77,
-157,246,190,172, 91, 52, 74, 8, 49,172,168,109,219, 84, 66,130, 59,127,154,215, 96,219, 59,167,174,128,182,153, 19,141, 1, 54,
-219,183,109, 91, 51,179,246,137,191,123,170,140, 33,166,157, 93,239, 0, 61,233, 84,230,153, 25, 59, 57, 44,130,112,104,140, 73,
-243,147, 81, 46, 29, 78, 58,245,151,197, 99,217,130, 55,182, 78,135,153,234,122,228,173,187,224,181, 23,157,124,242, 22, 78,141,
- 63,241,137, 18,181,146,201, 9, 1,131,130,161,206,228, 32, 46, 33,135, 59,157,124, 29, 96, 55,110,242,173, 57, 72,180, 83, 25,
- 67,210,208,117, 61,208, 29,164,213, 47, 48,211, 34,148,200,202, 10, 48,102,205,174,217,160,233,210, 58,121,130,124,222,121,157,
-244, 82, 80,103,208,236,251,205,235, 86,175,158,225,104,242,136, 97,136, 22, 0,186, 86,191,124,129, 0,130, 54,117,127, 33,157,
- 32,196, 89, 59,226, 50,157,216,146,111, 65,176,220,178, 19,158, 51, 68,215,198,167, 40,193,216,229, 25,230,150, 90,134,164,181,
- 44, 12,248,176,155,138,164, 83,152, 56, 29, 21, 18,237,170,105,234,166,174, 87,174, 90,117,201,165,191, 49, 53, 53,197, 0, 24,
- 35,150,238, 66, 7, 46,116, 84, 67,198, 98, 60, 2,114,110, 80,157,237,129, 28,229, 69,220, 39,221,134,169,132,249,195,211,100,
- 26, 36,237,219,117,176, 93,167,175, 3,152,117,135, 36,113,210,200,113,147, 56, 51,177,204,141,165,132, 55, 27, 30,111, 3,121,
-211,212,182,174, 79, 60,101,203,142, 11, 47,146,232,236, 89,229, 2,220,157,116,206, 78, 45,107, 91,160, 91,209,128, 78, 2, 38,
- 71,153,137, 40,159,181,151,252, 48,140,246, 55, 48,214, 15, 29, 29, 46, 38, 19,107,241, 74,132,164, 2, 29,144, 42, 58,125,151,
-157,174,150,253,209, 50, 6,213, 33,140,226, 9, 59, 62,157,249,216,212,181,181,141, 41,138,139, 47,189,252,216, 13, 27, 89,195,
- 56,115, 42, 19,128,192,210,174,186,164,236,249, 68, 64,103, 90, 34, 71, 17,217,135,241,105,240, 68, 90,118,217, 5, 30, 75, 35,
- 83,195,116,103, 60, 52, 27,133,200,195, 19,179, 72,135, 58,138,223, 69,172,147,119, 11,101,173,161,225,252, 14, 82, 4,168,193,
-220, 90,103,155,141,115,199,189,246,162,221,198, 20,234,212, 89, 24, 17,227,137, 10,201,120, 36, 15, 65,227,177,179,213, 20,232,
-136,165,237,250,225,238, 8, 83, 54, 76,148,248,186,177, 41,149,113, 61,138, 38,150, 24,207,165, 13,207, 93,100,216, 57,120,160,
- 61, 15, 5, 88,251,177,169,229,164,211, 9, 17, 46, 28, 70,231,244, 4, 57, 63, 53, 61,125,241,222,203,214,206,206, 98, 40, 34,
-182,174, 63, 79,224, 58,146,234, 0,250,165,125,110,156,207, 69,229,131, 85,220,161,244,178,246,197,120,186, 11,119,127,152,208,
-176,140,167, 26,193, 36,199, 49, 75,135, 75,140,183, 4,233,164,111,233, 52,134, 48,156,152, 6,201, 2, 95, 19, 78,135, 16,230,
-193,228,196,121, 23,237, 62,246,216, 99,195,185, 36,129, 5,111,217,149,180, 91,136,109,160,200,246, 9, 96,108,176, 36,155,153,
-234,178,116,113,170,182,211,138, 76, 75, 94,148, 53, 36,135, 3,194,210, 1,140,177,109,114,140, 47,203, 94,157, 83,235,217,124,
-162,116, 25,156,156, 52, 76,237,128,241, 0, 69,229,192, 68,100,229,170,149,219,206,219, 49,187,118, 77,200,218,196, 8,182,216,
-188,157,156,128,212,109, 44,169, 79, 52, 2,101,201, 39, 89,198, 70, 4,184, 61,254,167,109,151,164, 88, 86,137, 45,139,138,221,
-117,244, 64,194, 81,129, 93, 82, 56,119, 94,210, 77, 86,187,175,203,107, 84,162, 92,123, 70,189, 10, 47,223,142,201, 68, 20,162,
- 41,234,232,120, 89,172,157, 61,102,203,214,173, 43, 87,172, 12,240, 0, 99, 78,194, 89, 65, 36,139, 88,220,197,166,144,250,241,
-151,233, 62, 36, 25, 63, 13, 46,202, 70, 66, 19,103, 58,102, 36,157, 1, 20,186,255, 91,233,196, 9,220, 49,181,224,142, 6, 65,
- 62, 31, 33, 93, 2, 89,132,128, 59,118,222,126, 25, 39,160,140, 49,128, 80, 20, 69,175, 7,104,176, 87,246,166, 86,172, 88,183,
-110,253,218,217, 89,108, 65, 27,182, 29, 12, 75,130, 84, 14, 41, 82, 32,235,224,195,124,174,173, 37,207, 57, 52,165,135,137, 7,
-202,123,250,147, 98,231,236, 45,197,249,233,206, 96, 68,231,220, 29, 14, 81, 39,215, 32,200, 59, 71, 51, 56, 12, 24,186, 25,194,
-217,177, 70, 16, 81,140, 20, 82,168, 70, 24, 3,198, 20,225, 84,188,193, 96,106,122,122,106,106,106, 98, 48,208, 51,110, 64, 4,
-208, 8,102,160, 32, 59,227,166,253,168,167,142, 9,234, 16, 86, 64,243,152,199,111,150,206,252,108,219,160,154,205,130, 36, 39,
-216, 25,114, 79, 61, 17,209, 17,229,243,230,156,171, 76,244,166,249, 12,254, 88,127, 16,134,158, 21, 0, 3,192,166, 48, 97,250,
-212,100,105, 17,166,115,113, 11, 83, 20,189,178,236,245,251,253, 94,191,236,247,202, 50, 30,107, 26, 7, 33, 81,101,147,151, 17,
-151,232, 75, 68,170, 1,233,197,246,152,206, 84, 95,167, 53, 63, 97,188,236,168,212,118, 78, 59, 54, 62, 43,119, 43,109,245, 69,
-141,171,115, 62, 66,183, 95, 63,213, 34, 56, 27,253,203,230, 35, 2,207,100, 76,145,104,193, 12,224,107, 71, 67, 24,241, 52,166,
- 40,139,162, 40,139,162, 44,203,178, 40,139,194, 20,166, 48, 6, 13, 26,132, 56,132,185,180, 80,210,201,167,150,228, 86,157, 19,
-126,199,102,190, 58,147,154,227,241,129,219, 49,136,142, 55,140, 37, 40, 10,131, 71, 28,142,176,212,163,101,115, 95,194,220,157,
-233,230, 78, 39,121,171, 20,169,203, 94, 98, 7, 80,160,151, 16, 16,208, 20,133, 78, 14,171, 56,116,138,194,232, 57,184, 38, 28,
- 50,161,153, 19, 3, 0, 80,242,110, 29,152,135,154,244,162, 30,239, 6, 2,193,178, 98, 96,151,108,251, 98,213,164, 99, 90,227,
- 97, 84, 3,101,178,172,204,239,100, 17,150, 82, 20,203,146, 85, 78, 39,196,117,142,153,227, 22, 84,119, 4, 20,135, 54, 0,226,
- 23,237, 24,179,158,105,102,208, 24, 85,148,162, 48, 70, 71, 59,116, 68,149,227,172,168,166, 83,121, 53, 95,198,226, 84, 6, 3,
-187,179,137,178, 12, 53, 25,216,187,206,161,114,157, 80, 27, 14, 47,163, 28,139,181,126, 90, 72, 40,117,205,183,101, 80, 72, 38,
-198,203, 64,153,246, 40,131,204,196,162, 10, 64, 59,148, 0,237, 80,137,142,149,160,126,105,176,208,137, 14,108,143,164,205,216,
-160,113,130,126,201,127, 89, 76,232,204, 91,102,146, 89, 26,208,187,216, 39,216, 72, 26, 48,146,110, 9,151,121, 25, 20,146,220,
-121, 50,199, 76,226,157,230,128,238,209, 5, 65,131, 32,204,179, 72, 56,144, 69,226,196,126,233, 42, 0, 0, 1, 47, 73, 68, 65,
- 84,240, 50, 66, 26,116,209, 99,203, 77, 28,213, 69, 22, 70,198,100, 26, 99, 97,176,227,131,211, 99, 35, 66, 0,204,129, 17, 8,
-244, 91, 42,166,117,218, 61, 37,153,231, 88,251, 94, 14,130,194, 17, 39, 89,129, 59,248,233,204,250,114, 49,181,125, 3,237,237,
-184,155,242,103, 46, 51,105,144,170, 15, 98, 71,129,162,154, 32,166,137,234,182, 13,145,219, 65,228,238,136,195,216, 23,249, 92,
- 14,104,128,207,138, 32,188,132,206, 15,119,111, 45, 43, 39, 42, 36, 15, 64,122,126,249, 50, 25, 41,141, 31,192,154,131,236,116,
-214, 68, 54, 28,218, 30,213,210,157,137,202,163,152, 50,235,122,114,142, 65, 3,113, 16, 9,116, 2, 72,249, 43,140, 40,185, 53,
-192,101,132, 35,161, 71, 13,198, 7,133,198,212, 41,171,122,200,242,197,126, 25,247, 62, 36, 75,210,156, 37, 14, 91,146,250,100,
- 58,215, 25, 19,150,110, 3, 75,118,138, 74,219,222, 19,142,219,105, 91,240, 12,104,188,146, 84, 49, 81,235,202,186,113,178,166,
-205, 56, 18, 24, 90,210, 52,108,101,109,176, 99,206, 37,235, 37,135,238, 33,173,169,127,111,153,254,171,188, 49,150,219,105,233,
- 36,135,244,216,148, 60,110, 27,184, 41,235, 38,149,101,204,103,156, 67,130,118,134, 50,197, 49, 77, 19,118,237,218,149, 39, 62,
-255, 63, 76,233,140,171,246,139, 26,248,249,127,255,206,139,124, 90,242,130,113, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/darken.png.c b/source/blender/editors/datafiles/darken.png.c
deleted file mode 100644
index cac5a4ee273..00000000000
--- a/source/blender/editors/datafiles/darken.png.c
+++ /dev/null
@@ -1,311 +0,0 @@
-/** \file blender/editors/datafiles/darken.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <darken_png> */
-
-int datatoc_darken_png_size= 9653;
-char datatoc_darken_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0,
- 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6,
- 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66,
- 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 21, 0, 4, 16,211, 77, 59, 52, 0, 0, 32, 0, 73, 68, 65, 84,120,218,
-237,124,105,172,173,231, 85,222,243,172,247,221,195,153,124, 7,219,215,118,102, 79, 81,176, 33,128, 27,135, 64,210,150,138,164,
- 84,161, 81, 33,170, 65, 4,149, 68, 12, 85,255,132, 50, 39,100, 98, 8, 21,165,252, 97,232, 64, 85,130, 66, 5, 84, 16,168,224,
- 79, 65, 85, 75,160,133, 86, 64, 32, 17, 83, 28,219, 9,137, 9,142,237,248,222,123,198, 61,126,239,122,250,227, 29,190,111,159,
-115,226, 36, 37, 84, 69,202,190, 71,231,158,179,207,222,223,126,191,245,174,119, 13,207,122,214, 2, 62,221,199,173,183,221,118,
-251,237,119,156,125,158, 0,222,240,198, 55,165,212, 17, 48, 51,154,197, 24, 71, 49,198,209,232,205,111,250,158,252,162,240, 45,
-255,252, 91,215,235, 85, 74,157,187, 39,119,247,116,120,172,131, 35, 61,249,148,167,201, 43,162, 63,120,116,116, 20, 87,171, 37,
- 4, 0, 22,204,104,191,253, 62,174,214,136, 22,128,100,212,235,190,225,159,253,200, 15,191, 61, 94,221,159,255,201, 35,179,163,
-121, 34,237,202,165,109, 79,219,209, 8, 68, 0, 73, 14, 79,111,126,243, 91,194,245,238, 57,203,117,146, 4,233,120,182, 54, 91,
-196, 16, 37, 19,252,249,207, 77, 23,247, 36, 41,236, 92,190,139, 0, 4, 1,144,175, 59,239,210, 98,107,138,231, 63,215,158,121,
- 69,130, 40, 68,200, 93, 34, 9, 17,132, 96,203,149,158,218, 63, 24,199,213,141, 23,110, 24, 67, 16,194,206,197, 59, 73, 1, 34,
- 4, 16, 14, 66, 32,143, 79,210, 35, 31,157,119, 9, 55, 93, 28,241,230, 59,190,140, 8, 48, 80,132, 25, 64, 18, 68, 96, 8,164,
-145, 6,139, 81, 46, 49, 33,209,140,240, 44, 93, 3, 60,203, 69,100,128,127, 74,219, 21,218, 79, 91, 91,219,207,126,246,179,205,
- 56,159,207, 79,239,221,125,247,221,247,101, 47,127,133, 36, 35,105, 22, 66,200, 27,247,235,191,246,107,191,243, 59,191, 93,174,
-244,192, 3, 95,221,117,107, 79,201,221,221,211,114,233, 7, 71,186,126,224,138,207,223,186,248,138,199,255,226,191, 3,136,171,
-213, 10, 0,141,102,246,225,199,248,225,199,220, 64, 50, 0,171,164,244, 3,111,255,193,183,189,245, 45,252,210, 47,255,186, 71,
- 62,186, 32, 57,138, 97,119,235,162, 52, 34, 39,192, 4,192, 77,151,241,210,251,226,100, 58, 13,203,120, 59, 0,119,121,210, 98,
- 53,219,158, 38, 96,212,185, 70,163,244, 69, 47,148, 65, 46, 69,135,155, 59, 96,130, 43,225,234,193,236,226,158,223,116,225,134,
- 23,220, 62, 82, 10, 43,186,128, 40,119,129,160, 3,132, 4,232,250,225,124, 54, 95,221,118,243,165, 24,199, 82,222,187,203,119,
- 0, 18, 64, 1,148, 0, 0,201,245,209,199, 87, 31,125,114,121,203,229,241,104, 68,222,124,251,203,105, 6, 26, 81,247,205, 8,
- 6, 34,208, 66,176, 0,139,209,225, 38, 49,235,147, 17, 34, 65,154, 1,137,128, 64,147,227, 51,245,224,240,151,111,253,182,111,
-223,217,222, 81, 86, 81,130, 32,141, 70,179, 96, 36,131,133, 31,255,241, 31,125,226,137, 39,206,191,208,119,126,215,119, 39, 79,
- 16,224,202,151, 37, 64, 35, 97, 52, 2,164, 49, 88,190,158, 25, 45,132, 96,102,143, 95,141,255,230, 71,223, 56,188, 80,156,205,
-102,245, 52, 33,139,169, 61, 64, 60,113,149, 31,251,184, 29, 29, 91,231, 33,121, 0, 28, 16,128,104,221,189, 47,249,129, 7, 94,
- 25,127,238,103,223,249,240, 67, 15, 1,136,235,213, 10,128, 75,203,149,142,102,157,139, 59, 91,225,194,110,188,118, 96, 15, 63,
-202,117,199, 96, 6, 4,130,209, 12, 32,224, 0, 58, 79,227,192,180,238, 94,243,154,175, 11, 33,188,237,173,111,225,243, 94,248,
-234,228, 74, 41,223, 20, 1,192, 72, 32, 70,155,140,195, 36, 78,129, 41, 16,235,151, 1,236, 28, 49,232,254,207,227, 77,151, 44,
-152,153, 89, 24,197,184, 92,116,160, 64, 10, 52, 9,102,112,184,232,158,214,171,116, 98,235,173,201,201,214,120,226,152, 8,147,
- 96,113,111,135, 55, 95,228,149,155,184,187,197,110,109,110,102,102,201, 61, 10, 9, 18,220, 68,137, 6,239, 0, 3,179, 46,138,
-142,147, 25,231,139, 68,206,119,182,226,149,155,167,207,185,117, 58,157,132, 81,176,117,103,117, 3,104,238, 97,231,210, 29,112,
-102,133,165,188, 72,193,179, 90,100,115, 33, 8, 46,173, 58,191,118,176,250,243,199,230, 31,125,114,185,238,124,123,106,132, 0,
-229, 7,111,190,243, 21, 0,153,213,159, 32, 13,217,136,129, 16, 96, 32, 32,210, 64,193,104, 6,129, 36, 45,100,129,146,182,187,
- 29, 47, 95,156, 68,247,148, 85, 15, 0, 96,242,132,252,226,172,172, 78,145,148, 68,130, 64, 18,204, 0,200, 83, 86, 54, 23,142,
-231,221,201,194,163,228, 89,147, 65,131, 28,132,156,198,124, 75,128, 40,163, 9,176,108, 24, 13, 74,128, 17, 38, 56,242,135, 56,
-100,194,255,119, 15,158,251,236,165, 75,151, 46, 94,188, 4, 96,185, 92,236,239,239,207,102,179, 79,227, 66,119,221,125,247, 3,
- 15,124, 53, 89, 12, 83,217, 18, 90, 86,222, 16,194,254,254,193,143,252,171,127,249,116, 23,122,227,247,188,201,147, 43,235, 96,
- 57,253,249,224,147, 86, 30, 33, 95,204, 66, 28,197, 55,124,247,119,157,115,161,111,255,142,239,132,242,191,188, 75, 36,105,229,
-240,131, 22, 12,180,144,175, 24,130, 25,105,215, 14,226,227,143,127,228, 23,126,254, 39, 55,204, 72,215,117, 42,102, 88,205,140,
-136,117, 69,174, 69,178,213,202, 28,144,176, 94,107,255, 72,143,126, 12,169,123,206,107, 94,247,195, 63,255,206, 55,108, 92, 8,
-234,181, 32, 47,134,116,130, 73,124,242, 42, 31,123, 82,199,199, 88,151,155,118, 64,209,148,228,139,149,191,253, 7,127,232,173,
-111, 41,193,139, 85,215,231,238,238,114,185,228,146,251,241,204, 31,121,212, 31,250,176, 95, 63,242,181, 20, 12,209, 20, 13,209,
- 0,184, 49,165,212,173, 87,221, 15,253,208, 15,151, 11,165,148,146,167,249, 98,253,248, 83,243,191,124, 98,113,117,127,177, 88,
-118, 71, 39,233,201,107,233, 99, 79,166,117,242,104, 30,205,137,118,251,234,220, 13, 41,134, 4,166,213,122,245,250,111,249, 22,
- 0,113,255,120,245,240,163,139,171,251,107, 85,127, 20, 35,247,182,227, 40, 76,128,113,180, 80,204, 0,132,254, 90,216,217,193,
-214,196, 61, 1,210, 77, 55,222, 68,144,207,123,225,171,215,157, 36,144,204,231,158, 48, 51,196,145, 77, 70, 97, 20,182, 6, 22,
- 50, 0,214, 57,204,240,252,231,226, 25, 87,184,183, 83, 84,108, 60,153,196,229, 42,101, 11, 82,148,136, 16, 82, 74,236,220,187,
-181,111, 79,211,120,212, 1, 59, 0, 58, 23, 96,227,136,103,222,138,155, 46,113, 50, 98, 81, 62,114,181, 90, 69, 72,162,138,245,
- 41,138, 78,192, 9,118,201,143,231,218,198, 98, 58, 66,210, 54, 56,186,176, 99, 55, 93,228,205,151, 56, 25, 81,160, 39,192,128,
-174,131, 16, 93,137,121, 29, 34, 76, 46, 90, 89, 32, 32,185,115, 54, 83, 55,158,111, 79,177,183, 61,189,229,198,209, 77, 23, 56,
-153,144, 48, 79, 20, 85,244, 24, 93,204, 65,129, 64, 80, 16, 40,136, 4, 92,162, 1,144, 57,177, 92,123,215,205, 46,236,248,238,
-214,150, 89,148,155, 19,114, 11, 38,247, 18,199,133,157, 27,239,146,132, 28, 71,138, 48, 21, 27, 90,207, 34, 5, 2,130, 14, 78,
-210,201, 60,109, 77, 44,134,172,248,128,216, 14,126,216,185,116,103, 14, 69,170, 95, 19, 68,148, 5,139,162,202,179,128, 48, 95,
-248,199, 15,214,171,181,143,162,197, 88,223,199,188,162,203,119,170,196,170,205,107,215,221, 3, 5, 89, 94, 96, 94, 54,216, 37,
- 63, 56, 76, 79,236,119,251, 71,221,170,211,116,108, 49, 16, 36,175,220,241,247,193,236, 46,200,222,180, 80,160, 33,127, 35, 45,
-199, 69, 37, 76, 4, 64, 88,182, 19, 33,132,221,237,120,249,194, 56, 10,142, 28, 66,203, 60,251, 19,229,117,185, 0,184,147,166,
-108,228, 65,202,179,234, 10, 78, 25, 0,119, 63, 60, 78,199,179, 69, 68,137,224, 65,102,175,152,255, 35,149,223,139,236, 35, 36,
-192,242,243,146, 8, 74, 38,203, 2, 48,213, 8, 19, 2, 37, 53, 1,131, 46,200,157,144, 68,200,229,128, 36,135,228, 16,232, 0,
-232, 80, 49, 23,162, 96, 18, 32,185, 92, 16,228,238, 16, 28, 20,178, 7,207, 11, 40,203,168,139,247, 98, 6,178, 99, 37,234, 26,
- 62,251,248,244,253,108,123,220,113,199,157,247,220,115,207,237,119,222,121,249,210,165,254, 89,169, 42, 63, 45,251, 10,163,209,
-246,247,247, 31,122,232, 3,127,252,199,127,244,193, 15,126,240, 51,179,160,221,221,221, 7, 30,248,234,219,110,123,134,123, 86,
- 5, 84, 11,205, 26,127, 19, 53,186,226,169, 72,154,213,141,101,231, 76, 3, 17, 71,163, 95,250,197, 95,124,207,123,126,255, 83,
- 87, 14,190,234, 85,175,186,231,158,123,221, 37, 52,207,191,241,238,106, 38,216, 47,162,197,245,167,151,148, 19,142,126, 89,117,
-161, 70,242,137,167,186, 95,248, 79,255,254,241,143,253,197, 39, 89,208,183,126,219,119,160,132,193,167,151,210, 44,211,224,223,
-198,106,242, 50,187, 4,144, 93,199,108,119, 32, 2,230, 32,192,148, 40,241,232,132, 46, 62,254, 36,215, 93, 48, 67,140,252, 95,
-255,237,251,214,235,197,185, 11,138,169, 91,215, 69,244, 73,205, 96, 53,212,198,130,250,205,243,132,131, 19,202,121,253,136,238,
- 92, 44,233, 78, 23, 93,150,189, 70, 9,144,129,245,138, 2, 87, 43, 74, 14, 24,201,175,252,154,183,125,193, 61,225,167,223,241,
- 83, 31,252,224,195,167, 23,212,165,132,115, 55, 56,103,151, 44,225, 95,149, 14, 9,173, 19, 79,102, 72,206, 39,175,193,157,135,
- 39,148,184,238,232, 50,200, 0, 7,114,184,111, 53, 84, 96,205,145,232,114,137, 93,178,229,194,255,201,215,191,118, 50, 25,253,
-228,191,251,183, 31,249,200, 71,134, 18,234, 6,167,167, 44,173,235,202,130, 64,196, 96, 32,162,145,129,158,232, 9,243, 21, 62,
-118,149,158,112,237,128, 2,147,103,231,102,128, 12,158, 93, 68,187,100, 11, 95,178,204,114, 28, 40,121,151, 16, 96,235,149,190,
-233,155,255,233,120, 52,126,195, 27, 74, 60, 26, 94,248,249, 95,232,174,117,231,171,206, 87, 43, 63, 89,250,124,158,174, 31,174,
-143,102,221,225,113,119, 52, 75,203,149,207, 23,158,146,186, 78,199, 51,237, 31,249,193,177, 63,121, 13,243, 5, 58,135, 11,209,
- 96, 44, 95,100, 94, 89,149,240,224,145, 4, 1,227,160, 56,210, 77, 23,116,243,229, 98,154, 37, 37, 79, 47,255,178, 87, 60,246,
-216, 99, 79, 61,245, 84,220, 63, 92, 11,122,106,191, 59, 60,238, 22,107, 63,158,165,172,174, 57,182, 81,198,130,160, 96,164,113,
-119, 59,142, 99, 20, 12, 62,202,177,114, 93,129, 13, 62, 94, 64,104, 59, 85,109, 22,114,244,182,183,139,233, 24,211, 9, 83,170,
- 71, 82,238,110, 50,125,237,215,190,230,183,126,235,221,188,237,115,254, 81, 1,146,154,151,206,153,231,240,140,103, 32, 33, 63,
- 35,210, 52, 10, 22, 71,156,142,182, 0, 2, 99, 32,212, 93,179,250,115, 47,170,206, 65, 96, 20, 0,226,238,231,225,210, 30,166,
- 19, 78,167,180,108, 74,242,178,204,242,247,236,166, 1, 86,240, 65,222, 31,238,162, 82,121, 77, 37,202, 17, 93, 9, 11, 23, 59,
-156,204,142,205,120,105,111, 4, 16,216, 6, 2, 16, 0,151,204, 65,169,100,158,211, 17, 64,222,254, 44, 76,199,184,176,199,173,
- 9, 0,122,162,170,193,106,137, 41,165,136, 12,210,136, 37, 33, 22,100,174,178,101, 48, 87, 11,218,114, 88, 40, 9, 50,194, 5,
- 64, 38,233,218,193,146,180,201,184, 11,198,209,104, 42,140, 37, 3,226, 56,242,242, 5,134,192,103,220,140, 16,184, 61,161, 5,
- 17, 86,226, 67, 85,155,153,173, 89, 6,229,164, 88,163,142,252,145, 94,160,200,156,234,139, 53, 20,133,202,170,242,174,165,188,
- 41,130,203, 41,130, 74,139,165,104,192,242,132,156,237,237,196, 43,151,198,227,113,184,253,182,137,153, 85, 35, 79,247,172,200,
-200, 9,191,193,220, 82,182,117, 4, 40, 26, 21,182, 47,223, 13,213,136,164,102,229, 57, 62,205,203, 96,137, 87, 51, 28,218, 27,
- 79, 85,124,162, 61,153,209, 11,185, 86, 43,191,118,184,222, 63, 90,239, 31,117, 31,191,182,156, 76,108,221,121, 52, 50,135, 91,
- 37,186,173,113, 81,142, 70,179,235,130,194,238,229,187,192,154,119,246,230,162, 46,170, 61, 59,204, 39, 88, 17,142,154, 30,149,
-112,181,230,192,130, 36,186,107, 54, 79,135,179,116,117,127,245,248, 83,171,229,202, 15, 78,214, 57,169,149, 96, 57, 79,105, 31,
- 92,143, 84, 20, 82,198, 57,168, 26,195,202,209, 16, 36, 58,170,129, 46,122,141,154, 97,136, 50,229,216, 22, 57, 30,204,247, 15,
-147, 64, 38,193,220, 69,226,100,238, 0, 23, 43,167,225,177,143,175, 98,228,246, 52,238,109,135,233, 56,220,120,113, 20,140,147,
-113, 96, 5,116, 98,142, 95,243,245, 75, 40,159,131, 79, 43,155,145, 35,207, 28,103,247,254, 54,239,178, 4, 17,146,178,149,150,
- 68,131,114, 52,109,146, 19,144,204,147,203,232, 43, 16, 88,175,215, 36,143,142,187,167,162,197,192, 71,159, 12,129,220,154, 4,
- 51,219,221, 10, 22, 44,227,220, 34, 72, 39,233, 25, 29, 82,254, 15,148,171, 10, 73, 5,147, 44,184, 2,165,156,103,136, 37, 74,
-150, 76, 44,113,178,201,221,138, 53, 44,232, 48,224, 2,146, 27,229, 41, 25, 86, 14, 16, 39,201,128,209, 40,144,156, 78, 66, 48,
-139, 57,195,132, 92,160, 68,194, 41, 35, 51,164, 84, 19,146,124, 50,224, 61, 88,156,115, 57, 2,162,163,132,248,121,227,100,178,
-188,119,150, 23,236, 52,147, 84,208, 52,185,178,205,206, 22,220,225,134,213, 42,209,108,181, 86,214, 33,169,174, 37,103,104,130,
-247,246,190,207, 67, 85, 78, 94,134,216,170, 77, 39, 74,158,147,247, 45, 31, 35, 47, 55, 41,194,188,100, 29, 70,192,221,105,172,
-103,217,106,242,151, 21, 87, 4,100,136,200,176,156, 81,112,193,232,206,230, 69, 32, 47, 32, 98, 49,166,168, 54,178, 92,171, 92,
- 60, 67,121, 86,180, 61, 27,171, 2, 91,215,164,191, 92,105,152,199,186, 72,194, 32, 9, 78,152, 44,167,105, 46, 81,114, 65, 42,
- 9, 84,118, 25, 89,200,197,202, 8, 46, 23, 50,102,163, 6,136,228,252, 94, 46, 2,114, 72,217,138,230, 63,102,187,153, 65, 33,
-246,174,215,229, 53, 60, 45,241,142,202, 30,233,156, 8,241,179,143,207, 62, 62,211,153,107, 31,123,143,226,246,214,246,120, 60,
-158, 78,183, 70,163, 17, 74,232,189, 94, 44,150,203,229,226,228,228, 36,229,170,199, 95,235,130, 70,163,209, 23,124,193, 23,190,
-224,115, 62,231,185,207,121,110,136,181,226, 40,194,202, 57,203, 53,163, 28,238, 73,250,208,135, 62,244,254, 63,251,211, 63,248,
-131, 63,200,197,194,207,228,130,190,226, 31,190,234,222,123,239, 29,197,145, 26,110, 60, 40,250,156,202, 28, 91,110, 10, 32,132,
- 64,227,106,181,122,239, 31,254,225,175,254,234,175,252,149, 22, 20, 99,188,247,222,123, 95,249,202,175, 80,139, 93, 91,120, 52,
- 72,233,135, 25,254,102,102,191,153,218,147,102,118,120,120,248,227, 63,246,163, 39, 39, 39,159,222,130, 46, 95,190,252,202, 87,
-190,242, 25,207,120, 86,137,231,250,104,122,240,162, 97,208, 63,248,254, 9,215,148,163, 83, 32,196,240,228, 19, 79,252,204, 59,
-223,121,237,218,181, 79,105, 65,175,127,253,235,183,182,118,170,249, 60,157,225,247,153,124,159, 68, 15,165, 84,242, 32,230, 56,
- 21, 67,128, 97,184,153, 92,119,246,190,247,125,224, 87,254,243, 79,127,242,226,248,223,254, 59,127,215,147, 11, 74, 74,197,152,
- 23,135,208,126, 41, 43,244,226, 73,202, 47,197,197,122,193,232, 42,112,164,190,162, 86, 92,137,195,177, 90,115, 60,189,233,165,
- 47,251,242, 63,250,163,255,189, 94, 63,157,202,199,148, 18,234,167,250,185, 59, 90,183,166,208, 11,154,120, 28,142, 12, 48, 64,
-240,174,203, 53, 18,144,158,113,116, 79, 16,124,177,228,114,173,217, 60,125,252,154, 25,117,223, 75,223,250,248, 95,188,251,145,
-247,255,250, 39, 92,144,187, 15, 3,234,141, 99, 39,180,114,193,240,169,225,143, 2,146, 67, 82, 74, 6,194, 29, 36, 82,254,158,
-224,142,197, 10,139,133,207, 23, 60, 62, 17, 96, 49,224,198, 91,191,244,239,190,236,174,119,252,135,127,125,254,130,228,222,203,
- 27,155,249,120, 9,164, 74,102, 54, 92,149,160,217,156,203, 14,139,165,142,103,244,196,249, 82, 32, 82, 42, 25, 92, 14,228, 1,
-117,201, 82,146,187, 89,217, 96, 37,183, 91,111,125,214,247,125,255,191,248,190,239,125,243,121, 91,230,142,243,145, 42, 52,189,
-237, 99, 24,244,199,127,185,230,124,201,147, 57,175, 31,194, 29, 39, 51, 7,232,176,138, 12, 85,244,164, 20, 82,220, 72,130,235,
- 68, 11, 72, 73,163, 17,191,255, 7,222,254,189,111,123,235,169,207, 52,149,194,212,211, 62,114,169,197,243,143,126,120,162,107,
-135,186,118,160,171,215,117,120,164,197, 74,139, 85,201,147, 8, 25,221,168,193,151, 27, 65, 56,225,130, 3, 14,164,228,174, 36,
- 51,123,227,247,188,233,204,130, 62,209,122, 90,161, 80,106,223, 33,200,113,120,172,235, 7,120,234,186,158,218,215,225,137, 22,
- 75,173,214,114, 41,185,140, 48,178,162, 51,172, 95,110,236,177, 34, 73, 41,121,231,238,174,189,221,189,111,252,166,111,222, 88,
-144, 15, 30, 41,165,206,211,114,149, 22,203,180, 88,118,243, 69,183, 88,166,213,218,187,117,202, 28,165,213, 74,171,181,207,151,
- 62, 95, 42,185, 11,238, 46,192,115, 5, 1,167,117, 48,215,219,114, 25, 32,215,176, 60,152, 51,231,165,158,228,158, 60,221,254,
-188,219, 95,244,162,251, 7, 74,221,107,143,214,157, 4,156,204,242,242, 33, 49, 6, 76, 38, 33, 26,119,183,225,142,131, 19, 36,
-199,181, 3, 44,150,238, 66,114,146, 30,173, 66,119, 37, 25,245, 1, 62,212,107, 82, 54, 99,193, 16,205, 67, 64, 8,148, 32,135,
- 27,190,234,213,175,254,179, 63,251,211, 92,117,182, 46,121,151,124,190, 74,243,133,159, 44,210,108,158,230,171,180, 88,248, 98,
-233,139,165,207, 87,158,159, 63,158,249,108,238,243, 69, 90, 46,147,187, 75, 62,128,235,116, 10,189,171,223,253,212, 15, 6,196,
-160, 16,138, 90,186,228,238,114,239,186,238,219,190,253, 59,138,132,142,231, 93,215,233, 35,143, 47,221,177,127,184,238,124, 96,
- 16,171,223, 48, 34,152,133,128, 11,187, 19,137, 41,141, 37,146, 22,173,153, 7, 31, 64,156,234, 93,114,191, 56, 73,176,136, 27,
-118, 49, 26,101, 93, 52,152, 59, 76,238,193,108, 50,153,220,127,255,139,127,255,247,127,207,214,107, 95,119,158,146, 82, 74, 73,
-165,188,147, 85,212,179, 40,220, 83, 82,151,242,107, 60, 43, 83,166,135,213, 91,247, 65,109,214, 55,191, 82,251,153,116,193,163,
-121,160, 36,149,226,179,187,220,147,187, 92, 95,249, 85, 95, 69, 50, 44,226,157, 79, 92, 91,157,204,211,124,233,217, 36,177,229,
- 79, 53,175,202, 40, 69,114,172,214,105,177,234,136,117,210, 42,208,171, 34,115,243,251,240, 87,184,144, 4, 35,204,180, 53,197,
- 93,207,193,133, 27,176, 61,105,196, 14, 54,147, 37,215, 13, 23,110,136,203,117,234, 75,137,185,242,230, 94,157,185,114,142, 8,
-208, 41, 42,215,106, 1,185, 25,198, 33, 14, 36,145, 41, 66,195,237,243, 83, 43, 51,194, 32, 51, 4, 67, 73,251,138, 41,165,106,
-186,120,255,253, 47,142,245,143,197, 49,177, 20, 21, 13, 40,217, 45, 74, 82, 92,205, 18,217, 37, 71, 34,176, 28, 69,142, 98, 32,
- 70,100, 0,166, 85, 93,172,243,114,196, 8,134,128,177, 97,123,138, 43, 55, 34,142,184,179, 5, 51,203, 78,196,104, 18,232,144,
- 41,184, 59, 45,165, 20, 11,214,211,131,122, 42,254,148,249,116,100, 52, 82, 64,221, 66,200,157, 36,150, 43, 95,173,185, 61,193,
-116,146,111, 37, 23,188, 75, 69, 33,239,114,131, 8, 66,196,214, 20, 49, 40,219,201,108,215, 61, 95, 40, 7, 14,102,132,211, 25,
- 75,218,155, 35, 11, 85, 24, 65, 62, 8,163,189,192,131,244,226,254,179,101, 35, 37,173, 58,144, 93, 8, 30,131, 0, 75,154,102,
-100,152,178,237, 41, 71, 81,219, 91,220,217,210,116,156,101,131, 22, 82,104,224,170,105,146,123, 46,208,198, 76, 70, 99, 21, 81,
- 70, 50,188,226,211,185, 22,156,233, 32,133, 93,228, 34,152,183, 20,228,186, 83,151, 82,176, 52, 25,249,104, 20,132, 8,134,140,
-218, 76,198, 28,141,120, 97,215, 47,236, 90,140,154,142,171,251, 16, 76, 21,196, 46,138,175,194,133,202, 40,108, 70, 21, 88,128,
- 49,177, 44,167,172, 44,151,144, 51, 94,194, 26, 32,121, 49,203,185,176, 76, 23,187,228, 32,198,163, 53,208,109,111, 41,152,221,
-176,109,147, 73,216,154, 32, 4,183, 10,231,100,112,197, 81,111, 48, 35,118,238, 32,105,230,238, 49,195, 20,153, 53, 38,178, 88,
-255, 26,175, 54,209,121,101, 2,208,189, 71,253, 61,215, 30,228,194,170,195, 58,249, 98, 53, 51,242,194,174,198, 35,187,124, 97,
-178,183,203,130,189,182, 11,171, 66, 77, 58, 21, 98,149,192, 55,170,128,135,108, 74,236, 25,159,102,133,126, 91,165, 2, 14,192,
- 43, 0, 90,180,205, 43,182,102,165, 26,230,192,170, 75,144,230,139,206, 76,163,104, 49, 24, 77, 33, 88, 37, 39,108,172,195, 90,
-208,228, 46, 32,236, 92,186,171, 20, 70, 88, 45, 34, 42,156,154,113,255, 90, 91, 40,230,170,252,175, 18, 17, 90, 15,207,182, 80,
-241,100,158, 14, 78,186,249,210,175, 31,118, 14,140, 2, 37,196, 56,200,243,250,104,184,193,246, 69,232, 49,255,224,202,192, 27,
- 27,148,199,146, 90,120, 93, 19,213,155, 86,193,201, 44, 75,183, 28,125, 49,151, 1,220, 97,249, 72,162,115,133,228,235,181,175,
- 58,151, 16, 3, 72,198, 80,107,123,204,230,141,165,208, 83, 9, 90, 97,247,242,221, 40,208,126, 33,200,102,113,229,250, 41, 43,
-176,152,177,214, 86,160,110,108,232, 98,200,145, 75, 39,229, 83,114, 45, 97,185,210,108,233,135, 39,233,169,253,245,254,113,215,
-117,154, 45,124, 58, 9,238, 10, 54,140,113,193,158,254,130, 56,136,166, 51,242,102,200, 8, 93, 9,158,155,122,177, 5,202, 78,
-245, 53, 34,135,140, 57,248,130,153, 36,210, 33,115, 57,204,232, 76,201,215,228,168,243,174, 19, 89,168,221,201,101, 76,102, 33,
-111,119,166, 20, 10, 6, 50, 86, 38,162, 50,104, 74,102, 32, 29,121, 3,250,227,193, 22, 84,160, 8,139,229, 13,212, 0,136,182,
-130,180, 87,227, 96, 93, 66,242,110,181,182,147, 69, 10,180, 39,174,174,204,120,249,194, 40,154,221,124,105, 60, 30,219, 40, 50,
- 70, 56,204, 32, 72,177,168, 80, 86,233,108,160,139,220,179,133, 46, 64, 63, 79, 65, 37, 89,114, 78, 89, 78,147, 60,111,111,177,
- 97,185,210, 96, 5, 43, 16, 72,247,149, 27, 67, 2, 21,204,118,182, 66, 23,148,220, 61, 33, 7,108,249,110, 92,138,200,133, 4,
-214,255,170,241, 66, 53, 68,217,103,168, 63, 96,168,161,131,192, 66,133,181,172, 78,133,146, 83,202,162, 94,161,226,124, 6, 76,
-174,100,139,149, 27,244,196,213, 21,137,235,135,107, 11, 54, 29,135, 24, 56, 25,133,233, 36,208, 44,214,106,166, 23,219,199,106,
-247, 92,149, 67, 80,173,114,245, 60,217,159,208,208,203,166, 17, 50, 28,176, 18, 61,178, 36,178, 36, 65,151, 27, 13,238, 29,221,
-180,158,131,196,108,238, 34,166,147, 16,141, 91,211,184,179, 37,146,177,149, 49,139, 0, 84, 12, 95,137,211,124, 96, 11, 10,126,
-166,194,163,243,222,193, 53,142,186,242,115, 86,114,124,154, 85,116,130,116,121,182,107, 21,132,119,144, 66,215, 73, 6, 95,166,
-228, 0, 45,246,208,120,171, 70,123, 5,235, 89, 20,162,207,232,107, 77,152, 20, 8, 23, 45, 27,147,188, 70,170, 22,193,178,139,
-179, 97,245, 77,176, 82, 88,237,107,204,217, 61,123, 71, 67,231,243,185, 72, 90, 6, 87,138,251,202,181,156, 22,193,230,100,149,
- 20, 7, 68,157,156,188,148, 52,192, 51,155,171,176,164,170, 16, 11, 32, 80, 25, 84, 57,214,203, 46,154,165, 90,234,141,112,210,
- 20, 82, 84,182,252,173, 10,230,185,222, 81,216,241,116,244, 22,193, 29, 25, 37, 41,226,207,153,117, 9, 88, 51, 11,185,102, 23,
-165,242, 82, 74, 71,253, 59, 10, 29, 68, 98,169,102,244,127,206,244,178, 28,101, 89, 46,165, 66, 77,214,185,150, 90,171, 17,240,
-252,193,189, 30,201,189,165,133, 94, 27, 32, 88, 42,166,213,198,151,194, 59,171, 56,138,151,168,138, 86,170,203,153,228,150, 99,
-189, 26, 14, 26,139, 0,114,161, 13,229,234, 94, 59, 85,138, 19,115,184,202, 87, 41,234,212, 74,181, 55, 76,146,185,240,130,242,
-102, 21,123,175, 82, 97, 44,117,153,236,143, 74, 20, 6, 12, 14,176, 36,167, 91, 13, 97,229,173, 50, 95, 73,127,133,150,135, 65,
-122, 83,142, 64,150, 17, 11, 67,175,152,111, 87, 43,122,114, 32, 96,176,146, 66, 51,173, 66, 24, 0, 25, 44, 75,115,213,114,156,
- 21,244,204, 75, 21,220, 65,122, 91,132,202,167, 74, 66, 6,218,122,148,184, 6, 42,173, 90, 85,202,199,141,215,175, 22,146,228,
-172,165,190, 93,165,174,173, 86, 46, 71,177, 6, 32,104, 89,232,229, 76, 8,132,123,177,253,170,161, 34, 32,202,233,128, 11, 82,
-217,185, 34,170,190,212,237,104, 86, 34,183, 61,149,141, 83,221,225, 98,129, 74, 92, 93,148,119,232,143, 62, 91, 48,251,236,227,
-179,143,207, 62,254,166,212, 91,159,238, 18,228,238,222,222, 13,123,123, 59, 59,187, 23, 46, 94,184,124,233,242,133,139, 23, 47,
-220,112,195,246,206,238,206,206,214,120, 60,201, 53,170, 65, 37,103,163,104,209,117,221,124, 62, 59, 60, 58, 60, 58, 58,126,242,
-201, 39,142,143,142, 15, 14, 15,142, 14, 15,247,247,247,143,142,142,254,230, 9,104,123,123,251,174,187,159,255,204,103, 62,243,
-150, 43, 87, 46, 92,184,184,189,179, 29, 99,132,112,174,193,111,165,145, 51,197,147,205, 31, 26,185,245, 12, 31,186,235,186,217,
-201,236,224,240,224,177,199,254,242,161, 15,124,224,225,135, 30,234, 62, 67,149,239,207,152,128,174, 92,185,242,133,247,221,247,
-185,159,251,194,201,100, 44,245, 81,197, 39,191,110, 9,233, 48,192,165,202,175,108,153,118, 73,212,137, 65,177,116, 88,208, 45,
-189,156, 44,245, 85, 65,185, 7,235,209, 71, 63,242,155,239,126,247,131, 15,190,223,221,255,159, 10,104,119,119,247,150, 91,110,
-249,188,207,123,225, 93,119,221, 93, 16,157, 86, 24,238, 49,165,211,250,194,115,149,102,216,107,114,250,215, 51, 28,250,179,223,
- 55,187,230,114,175,107,147, 84,207, 21, 48,187,126,253,250,255,252, 31,191,245,224,131, 15, 94,189,122,245,175, 69, 64, 87,174,
- 92,185,247,222,123,111,191,253,246, 43,183,220,146,146,103, 66,234,166, 80,116,182,224,116,190,128,106,241,124,195,218,244,204,
-131,205, 2,202, 57, 68,250,211,100,128, 79,246,100, 73, 57,115,211, 33,132, 15,253,249,135,127,239,119,223,243, 39,127,242,222,
-174, 91,127,102, 4,244,230, 55,191,121,185, 90,183,138,238, 6,163,115,131,100,241, 73,229,188,121,183,167,158, 60,231,101,167,
-104, 27, 79,163, 74,167,168, 11,195, 99,216, 78, 95,233,174, 93,172,236,248,132, 93,194,122,181,252,195,247,252,230,239,253,238,
-111,252, 21, 5, 20,231,139,101, 35,156, 12,168,181,103,165,114,198,242, 12,105, 50,155,114, 25, 60,121, 86,149, 78, 31,194, 82,
-207,168,242,106,165,108,246,205,101,164,229,138,194, 16,156, 98, 73,167, 64,121,205, 71,136,229, 82, 71, 39,185,147, 99,124,247,
- 61,175,184,247,243,255, 65,242,213,111,252,215,159,251,232,163, 15,226,255, 42,111,136,133, 14,117,170,181,228,188,218,189, 78,
- 89,172, 74,110,102,255, 30,242,236,235, 52,144, 0, 42, 85,189,182,214, 57,224,174,228,108,137, 91,151, 42,169,130, 21, 64,168,
-136,177,215, 95, 50,255,184,240, 68,165,249,146,203, 85,249,117, 54,231,213, 3,172,215, 86,219, 61, 18, 16,111,122,246,235,158,
-117,151, 66,250,211,247,255,241,127,185,118,237,211,179, 83, 3,122,197, 39,226, 52, 60,141,228, 55,171, 2,108, 4, 44,157, 5,
-196, 7,207, 10,201, 11, 1,147,100,151,176,238, 74,210,237, 98,151,122, 12,198,133,205,165,177,237,164,123, 46, 46, 82,226,106,
-173,229, 58,163, 9, 92,117, 57, 5, 77,149, 8,106, 25,101,233, 18,158,247,220,123, 95,254,247, 62,119,181, 58,250,165,119,253,
-194,195, 15, 63,252, 41,107,208, 38,221,131,131, 58,242,249, 79,212,131, 82,129,242, 76,160, 87, 67,252,139, 89, 24, 70, 3,125,
-251, 14, 37,117,142,147, 25, 23,171,130,190,204, 22, 58, 62, 97,234, 4,178,115,173, 86,182, 78,189, 84,106, 57,205, 78,237, 75,
-210,144,158,208, 14,117,235, 26, 41, 88,103,202, 32, 27,153,156,235,206, 87,107, 76,167,219, 95,255,218,111,148,244, 31,127,230,
- 29,143, 60,242,200,167,164, 65,103, 52, 69,231, 43,207, 57, 44,157,214,137, 50,248,107,227, 88,111,190, 58,121, 57,130, 41,161,
- 75,234,186, 12,107, 49, 37, 36, 71, 39, 80, 72,142,228, 94,186, 37, 50,190, 54, 44,246,110, 16, 0, 54,138,203,109, 51, 72, 4,
- 54,200,173,150, 61,242, 46,102,189, 19,229,110,196, 55,124,227, 55,205,102,179, 95,122,215,187, 30,124,240,253, 79, 43,160,222,
- 95,157,186,203, 51,225,239,153,198,179,218,123, 60,232, 67, 70, 45,235, 84,112, 37,147,222,151, 43, 30, 28, 99,181, 22,128,174,
-195,225, 49,231,171, 2, 31, 37, 71,231,131,186,212,160,223,193, 32,219, 64,161,159,198, 42, 54, 9,246,211, 28, 36, 88,225,119,
- 41, 55,199,118, 29, 83,151,231,164, 80,242,233,100,242,218,215,190,238,177,143, 61,246,243, 63,247,179,159, 40,134, 10,127,235,
- 69, 47, 82,191,188, 1, 83,227,212,111, 61,169, 8,117,224,128,176,209, 46,116, 6,110,170,168, 49,132,213, 90,179, 5,214, 29,
-220,209, 37,204, 87, 88,173,209, 90,235,188, 25,227, 1, 23, 66,130, 21,135,174, 1, 65, 98, 3, 77, 60,195,163, 64,109, 34,106,
-142,174, 28,211, 16,116, 97, 23,151, 46, 42,148,114, 80, 81, 44,185,239,237,221,240,210,151,189,108,119,103,239, 3, 31,120,240,
- 19,144,242,206,245,233,133, 5, 95, 54,121,213,121,215, 21, 61,105,247, 67, 48, 24, 99, 44,157,215, 70,142,199,140,150, 11,158,
- 88,117, 92,173,153,209,232,217, 18, 79, 93,231,114,149,197,193,212,169,176,110, 68,130,129, 26, 22, 43,134, 55, 62, 24, 35,112,
-138, 93,115,190,178, 75, 74,181,208, 98,132, 81,227, 0,128,209, 16, 2, 3, 17, 44,219, 72,135, 44, 55,134, 37, 79, 46,191,255,
-254,251, 95,252,226, 23,255,196, 79,252,216,227,143, 63,190,161, 65,247,221,119,223,185,202,235,146,123,241, 35,238, 90,174, 50,
- 57, 71, 73, 74,174,206,149,114, 91,118,141,161,242,224,160, 88,136,165,144,176,238,176, 90, 41,155,152,197, 10,199, 51, 44, 87,
-197,139,187,106,215,128,144, 7, 3,157,103,234,184, 25,116,242,140, 33,228,185,158,182, 52,121,228,193, 12, 25,197, 37,130,225,
-226, 30, 46, 94, 64,140, 37,241,107,250, 63,244,186, 47,249,162, 47,222,218,222,206, 67,117,138, 6,205,230,197,103, 36, 87,166,
- 12,229,195,211,117, 90, 44,189,225,203, 41, 13,109,242, 0,156, 38,205,250,188, 42, 70,150, 49, 48, 70,163, 73,161, 90,104,174,
-214,161, 22, 41, 51,248, 92,154, 84, 55, 77,201, 80, 89, 6, 68,135,243,157,133,206, 6, 93, 67,198,169, 25,166, 19,140, 2,105,
- 10, 1,227, 81,134,170, 11, 3,161, 53,248,165, 74, 29,118, 64,166, 47,249,226, 47,185,249,166,155,127,249,151,223,149,193, 22,
-254,227,175,121, 93,190, 96,151,116,237,112,125,116,146,220, 37, 97,217,105, 54, 79,201,207, 44,139,234,169,154,195,251, 33, 73,
- 25, 75,167, 87, 48,219,153,134,113, 12,181,238, 19,186, 20, 32,219,180, 41,236,169, 60,253,167,216,166,190,112,240, 36,206,152,
-158, 83,170,231, 82,137, 0, 72,140, 2,182,183,176, 53, 5, 97, 33,232,202,101,222,114, 35, 71, 99,181, 29,236,117,116, 64,175,
- 6, 16, 66,220,223,191,254,142,119,252,212,245,235,215,195,165, 91, 95,112, 60,243,227, 89,119, 60, 75, 71,179, 52, 95,250, 58,
-169, 75,190,206,102, 66,165, 8,149,251,143, 88, 24, 2,165,123, 16,181,199,172, 53,120,182,126,165, 86, 41, 43,236,203, 82, 21,
- 73, 64,151,235, 21, 3, 6,221,169,253,215,211,250, 44,157,115,166, 52, 84, 40,152, 33,183,202,141, 35, 46,238, 97,119, 27,211,
- 9,182,166,216,217,210,116, 10,227,240, 18, 27,236,245, 1, 59, 73, 91, 91, 91, 95,244,146,151,188,239,189,239,229,109, 47,248,
-202,205,160,144,231, 68,209,155,233, 85,169,250, 72,236, 7,125,148,242, 92, 77,174,122,107,170, 58,144,105, 20, 74,222, 57,138,
- 28,135, 76, 80,203,159, 25,234, 56, 43,108,106, 22,207,123,242,172,219, 42, 21,187,108,248, 70, 6, 39, 34, 32, 96,107,138,103,
-221,134,139,123,204,150,104, 50,194,120, 92,230,147,212, 65, 63,167,112,129, 1, 90, 64, 90, 48,165, 66, 97, 56, 21,237,156,230,
-202,244, 71,189,178,131, 27,187,164,146,113, 74,191, 94,230, 24, 9,222,203, 17,249,175,165, 83, 18, 80,162, 33,164, 13,100, 77,
-173,189,123,120,196, 26,213,208,212, 62,236, 28,126,100, 31, 65, 27,193,128,173, 17,130, 1,192,116,140, 81, 84, 48,179,129, 41,
-235, 45, 41, 7,140,220, 10,224,161,103, 88,201, 5, 11, 22,189, 87,108,162,181, 30,171,229,203, 77, 86,229,169, 70, 23, 42,168,
-209, 32,243,239, 15, 90, 95,202, 44,239, 75,201,157,165, 64,190,238,180, 88,166,150, 17,108, 77,108, 50, 14, 3,233, 76, 6, 50,
-178,122, 30, 41, 49,137,220,128, 6, 10,251, 36, 24,162,149, 79,223,221,193,205,151, 56, 30,131, 64, 12,216,217,198,214, 36, 53,
- 24, 32,135,113,173,222, 92,123,177, 43, 11,170,196, 71,181, 89, 27,142,132,200, 28,207,158,238, 73, 56,197,236, 45,197,203,198,
- 59, 24,128, 28, 53,216,207,195, 86,224,173,215,181, 40, 80,143, 90,120, 75,228,179,255,112,167, 25, 82,126,103,233,149, 21,144,
-212, 15,165, 9,167,108,118, 41,156,151,205, 46,210, 26, 5,196, 88,152, 87, 49,192,172,248,130, 50, 29, 45,209, 76,103,250, 25,
-120,198, 9, 54, 46, 73, 21, 60,233,134, 56,176,110, 61, 38, 81,239,171,138,168,180, 99,179, 41, 41, 53,144, 87,207, 5,241, 6,
-120,244, 13,146,133,176, 87, 57,189,125,145, 58,135, 75, 90, 44,181, 92,149, 95,131,113, 20,215,193, 12, 64, 52, 75, 24, 75,205,
- 60, 25,105,130,229,168,111,111,135, 49, 42,191,101,111, 27,123, 59,133, 44, 22, 2, 38, 99, 4,107,122, 94,249,106,159, 12,188,
- 41,106,209, 64,115,128,146,129,209,171, 81,101, 79, 13,238, 57, 54,173,187,159,141,166, 84,158,235,105, 40,172,165,238, 13, 15,
-124, 6, 58, 42, 92,177,214, 85,158,169,170, 68,161,143,101, 60, 39,183,250, 87, 30,144, 49,161, 76,225,107, 22, 53,229, 73,146,
-109,164,154, 17,150,251, 66, 12,204,163, 67, 6, 30,149,185,182,207, 54,106,234,188,127,101,170, 19, 91, 41,161, 60, 69,202, 83,
-108,109,224, 42, 44,211,129,178, 8,109,206, 95,225,223, 13,134, 83,213, 83, 83,226,214, 58, 18,181, 42,224,176,187,169,174, 57,
-191,176,140,114, 42, 92,178,218,154,203, 44, 50,172, 58, 16, 9,160,173, 61, 68, 15,182, 36,141,192,100, 18,246,182, 70,163,145,
-129, 24, 71,187,124, 67,156, 78, 44,231, 13,193,100, 54,100,169,247,217,178, 54, 93,250,185,248, 85,211,244,188, 67,253, 17,203,
-145, 52,232,167,113,119,231, 48,211, 27,216,157,214,230,140,126, 8, 2, 43, 41, 98,208, 75, 50,200, 23, 55, 33, 82,249,224, 84,
-230,238, 51,150,214,232, 70,128, 42, 10, 45, 9,105,157,242, 7,208, 16, 2, 28,214,114,131, 96, 54, 25, 53,227, 75,158,161,101,
-244,184, 2, 85, 56,250,172, 65,199,128, 55,116, 42,192,209, 41,204, 38,132,216,227,155, 13,198,105,222,171, 82,187,138,182,200,
- 11, 91, 68, 37,140, 40, 83,116,155,254, 84,138, 22, 55, 14,118,229, 98,162,176,221,170,252,202,180,200,140,122,176,241,146,203,
-144,185, 76,214, 41,231, 77,206,217, 60,173, 59,207, 53,178, 81,176,227, 89, 55, 25, 25,201, 16,176,187, 29,118,183, 66, 8,165,
-251,112, 28,105, 86,176,160, 60, 4,180, 78,155,200,244,202,220,157, 94,214, 70,208, 11, 41, 78,102, 54, 56, 4,202, 93,112,177,
-218, 84, 13,123, 33, 57,244, 62,149, 85,202,129,237, 41,112, 71, 21,237,144,128,202, 13, 45,174, 92,195, 62, 69, 47,211, 51, 85,
- 47, 92, 6,161, 21,114,113, 33, 36, 14, 89,164,130,224, 88, 75, 21,105,228, 40, 56,160,201,216, 0,196,104, 33, 96, 50,202,113,
- 22, 67,180,210,102, 84, 48, 37,121, 69,251,123, 15,223,120,232,253, 20,143,204, 65,203,180,102,245, 20,117, 32, 22,200,114,211,
- 13,150,182, 70, 14, 99, 42,158,138,142, 42, 69,184,240,178, 26,224,170,179,165,196,166,161,253, 88,128,170,131, 45, 98,106,101,
-216,214, 71, 82,205,106,102,104,170, 17,204,165,228,152, 45,211,178,115,130,102,105,221,249,241, 44,229,112,112, 50,178,157, 45,
- 27, 5,138,136,102,211,137,141, 98, 27,158, 37, 43,179,133,107, 79, 69, 15,250,109, 70,203,234, 69, 28,251,142,152, 1, 26,126,
-172,230, 0, 0, 5, 38, 73, 68, 65, 84, 27,174,239, 74,200,231,174, 57, 62, 98,224, 7,235,193, 64,165, 3, 14, 56,117,234, 53,
-168,231, 52, 87, 10, 54,203,217, 44,241, 54,251,193,131, 94,206, 65,158,136, 80,113,230, 82, 24, 81,165,133, 38,193,151,106, 67,
-171,230, 75, 63, 56,238,114, 96,180, 53, 13, 23,119,227, 40, 26,168,113, 12, 64, 32, 67,137,144,141,155,189, 70,195, 76,251,252,
-114, 58,129,232,253, 36,196,230,199, 74, 73, 42, 47, 10,195, 99,166, 74, 99,172,236,247,193,217,234,179, 77, 14, 2,204, 83,121,
-168, 88, 1,164,214, 1, 82,154, 85, 10,181,174,232,124,118,250, 44,163, 78, 90,144, 88,246,209,165,190,188, 38, 79, 72, 53, 22,
- 91,174,121, 60, 75, 49, 58,137, 24,220,229,179,101,153,151, 52,138, 54, 30,101,151,136,104, 28, 69, 43,241, 65, 38,161,215, 38,
- 73, 86, 90, 99, 94, 97,172,243, 84, 42,223,145,125,206,213,188,115,155,107, 54,168,110,181,238,165, 62, 62, 30,164,111,103,167,
-165,105,192,247,215, 96, 86, 80,223,180,171,210, 0,209,203,184,153,162, 34, 72,245,248, 81,174, 18, 1,116,208,229,169,204, 21,
-210,114,169,227, 89, 87,166,109, 27,199,145,193,242,249,194,206, 52,236,108,133,220, 58, 62,157,216,165,189, 56, 30, 91, 14,157,
- 70, 35, 11,173,161,160,114, 36,114,117, 41,182, 0,134,141,228, 58,108,170,169,211, 94, 90,191, 58,250,161, 48, 44, 77, 46, 26,
- 20, 3,251, 8,251, 84, 27, 77,207, 92,238,207,102,225,185, 14,111,188,224,216, 5,210, 98, 27, 31,227, 5, 70,110, 53,142,250,
-201, 68,245, 66, 45,176,247, 42, 95,229,146, 13,115,163, 69,151,180,236,188,206, 61,195,113,236,198, 93,200, 41,238, 40,134, 24,
-106, 1,155,168,170, 5,131,197, 1, 87,190,150, 74, 75, 64,217, 18,134,114,187,165,211,109,128, 88,246, 61,103,213,159,183, 66,
-170, 78,201,166, 18,166,123,146,186,154,157,103,157, 31, 70,207, 77, 65,213, 72,209, 11, 75,189,190,182, 12, 94,202, 82,245, 66,
-165, 31,228,212,185,109,169,156, 27,247,196,165, 3,200, 19,237,120,178, 72, 56,108,238, 40, 55, 72,101,192,151,163,145, 69, 43,
-163, 9, 38, 99,110, 77, 66, 78,119, 64, 70, 47, 51,160, 48,236,231, 99, 27,214,221, 54, 37,111, 89,139,227, 11, 45,155, 3, 10,
-190, 6, 39,241, 84,144, 88, 83, 59,213, 88,179,208,195, 89,151, 91, 2, 1, 58,189, 54,168, 12, 87,194, 50, 50, 41,247,113,212,
-176,130,125,159, 54,122,132, 71,172,179,131,178, 27, 31,168,111, 62,196,165, 53,206,139,234, 81,166,152,231,144,137, 73,150, 18,
- 83, 39,133, 34,150,216,250,183, 85,143, 74, 29, 61,167,126, 28, 93, 89, 64,233,173, 46, 48, 80,153,146, 53, 8,204,213, 15, 28,
- 63, 83,106,171, 52,228, 30,115, 98,137,116, 84,251, 85,106, 95, 42,154, 83,105, 9,100,155, 75, 84, 91, 23, 9,170, 54, 83,150,
- 12,166,102,118,106,117,194,130, 45,112, 80,220, 44, 30,201,149,251, 92,148, 1,170, 69,107,145,133,102,139,180, 63,160,216,196,
-126,247,250,201, 93,249,202, 69, 46,106,119,228, 28,160, 96,216, 48,234, 69, 54, 26,148,211,121,170,228,137,193, 11,217,192,198,
- 58,118,150,173, 7,128,173, 41,172,128, 79,213,142,215,186,100,230,183, 55, 88,179,194, 2,181,225, 69,213, 92,170,182, 38, 53,
-244,165,128,160,109,236,112,107, 51,107,125, 26,234,253, 78,241,229, 81,173, 19,171,117,172,213,131, 82, 20,107,208,197, 88,135,
-210,113, 64, 90,113,213,180, 86,103, 72,101,131,159,170,174, 13,129,219,236, 19,154,177,111, 62,171, 28, 9,103, 77,216, 6,115,
- 22,115, 55, 72, 29,108, 87,250,216, 26, 80, 85, 32, 48, 84, 73,230, 94,199,190,214, 91, 85,147,165,223,166,239, 40, 40,113, 87,
-159,191,149,102,175,168,222,175,183,158, 53, 54,119,150,215, 89,232, 1,172,135,118, 32, 77,180,161,140, 27, 7,109, 19, 70,111,
-193, 89,211,183,124,209, 1,100,203,106,240, 89, 39, 42, 22,109,106, 54,176, 86, 68,219,224, 12,182, 12,189, 4, 75, 13,102, 46,
- 40,112,109,234,242,210,188,136,218,194, 92,251, 96, 91, 39, 2, 91, 10,130,225, 49, 22,193, 88,221, 36, 6, 51, 93,138, 27,107,
-169,102,161,112,100, 59, 86, 15, 83, 51, 86, 3, 8, 82,195,252,190, 15, 22,219, 80,203, 97,135, 94,157, 32, 61,176, 12, 57, 63,
-181, 22, 67,215, 0, 62,171, 82,129, 68,154,251, 67,245, 46, 26, 72,165,207, 13,107,187, 83,195,110, 42, 74,153,239,220,160, 26,
-139, 86,102, 74,239, 99,213,115,159, 34,124, 8,218,120,131,109,242,236, 73,130, 45,168,105,230, 15, 94, 82,248, 26,206,176,217,
-246, 51, 33, 98,159,124,109, 70,249, 18, 54,202,205, 21, 8,169,112, 25,218,129, 43, 75,110,244,154, 70,181, 81,101,221,212, 25,
-116,236, 97,234, 58,174, 82,213,227,169, 26,127,212, 59,170,242, 41,105, 23,135, 41, 71,189,109, 0, 81, 45,233,244, 1,172, 34,
-239, 49,157, 44, 41,182,241,234,205,224, 19,222,216, 29,106, 6,117, 3,110,194,169,255,213,247,213,180, 44,162, 39, 42,170, 98,
-182,101, 53,117,233,205, 76,122, 3,193, 29,110,121,154, 98,223,156, 89, 26,223, 57, 36,158,212,185,249,173,189, 48,155, 35, 7,
- 13, 13, 86,161, 78,117,245,138,181,109,156,177,140, 60, 84, 99,104,228, 46,230,225,156,192,106,203,250, 86,245, 83,146, 42,247,
-172,146, 85,138, 67,252,117,192, 99,172,158,161,183, 95,141,152,160,225,104,148,102, 46, 54, 13, 83,203, 78,243, 13,151,177, 79,
-131, 54,204,220,130,169,138, 17,100,152,156, 48,245,194,170,157,214, 86,128,150, 86, 78,202, 92, 25,244, 56,108,145,113, 68,111,
-165,235,228,250, 54,186,133, 67,166,188, 74, 60,161,218,185,215, 23, 27,212,167,245, 77,124,131,163,230, 45, 20,226, 38, 55,131,
-234,131,133,166,119,108,136, 63, 81, 43,147, 77,238,253, 32,202, 54, 20,127, 88, 14,168,167, 10, 77,179, 88,237,114,141, 17,208,
- 27,101,108,188, 76, 27,211,164,218, 42,255, 15, 49,206,148,201, 27, 21, 95, 6, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/draw.png.c b/source/blender/editors/datafiles/draw.png.c
deleted file mode 100644
index e521ddc1545..00000000000
--- a/source/blender/editors/datafiles/draw.png.c
+++ /dev/null
@@ -1,364 +0,0 @@
-/** \file blender/editors/datafiles/draw.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <draw_png> */
-
-int datatoc_draw_png_size= 11349;
-char datatoc_draw_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0,
- 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6,
- 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66,
- 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 19, 1, 10, 6,157,179,150, 0, 0, 0, 32, 0, 73, 68, 65, 84,120,218,
-237,125,123,188,229, 87, 85,223, 90,107,239,253,123,156,115,238,185,247,206,157,201, 76, 50,201,100,242, 32,145,144,132,164, 36,
- 20,101, 8,150,106,228,163, 86, 63, 40,213, 63, 90, 21,173,181, 86, 84, 84, 42, 69,139, 4, 16,141,248, 4, 65,173,173,162,104,
- 1,181, 22, 84,108,245,211,250,128, 42,124, 16, 42, 16, 2, 24, 18,242, 32,153,100,158,247,113, 94,191,215,222,123,173,254,177,
-247,239,119,126,231, 78,128, 20,241,211,248,249,120, 38, 51,115,239,220,115,207,221,103,237,245,252,174,239, 90,193,219,110,187,
- 13, 62,231,227,137, 60, 73, 3,192, 79,253,244, 79, 63,251,196,115,189,247,222,251,170, 42,235,186,210,218,252,214, 91,223,242,
-155,255,229,109,225, 73,120,226,196,137,159,123,195, 27,103,243,197,163, 39, 31,153, 78,246,156,181, 2,112,205, 23, 93,167, 8,
- 31,249,244, 3,223,254,237,255, 26, 0, 8, 0,172,115,103,207,156, 46, 22,139, 99,199,175,184,238,250, 27,159,114,205, 83,183,
- 14,108, 86, 85,117,238,204,169, 55,254,252,235,227,143, 67,162, 75, 47, 59,118,241,197, 71,157,115,198, 96,146, 36, 15,127,250,
-211,119,223,245,161,217,222,238,250,198,214,107,238,120,133, 6, 0,239, 61,179, 79,210, 36,205,178, 71, 30,126,232,209,147,143,
- 60,252,224, 3, 59,219,103,111,123,222,237,197, 98,174, 76,162, 1,192, 57,199,158, 21,249, 83,167, 30,126,255,123,255,119, 49,
-159, 63,229,169,215,221,244,140, 91,155,186, 98,102, 17,208, 0,224, 26,203,194,139,217, 84,107,115,197, 21,199,143, 92,114, 89,
- 85,215, 77,221, 88,231,157,243,222,123, 29, 14,206,222, 63,122,242,225,181,245,205,195,151, 28,115,206,149,139,153, 8, 58,103,
-157,179,206, 58, 13, 0, 77, 93,123,239,183, 14, 29,254,216, 93, 31,202, 7,195,245,205,205,196,164,101, 49, 43, 22, 11,107, 93,
- 93,215, 26, 0,234,186, 10,146,188,226,234,107,103,147,189,123,238,190,235,224, 69, 71, 70,227,117, 97, 46, 22,243,166,174,240,
- 9,221,221, 19,121, 32, 0,188,239,253, 31, 0, 16,239,125, 85,219,170, 44, 64,100,111,251,220, 55,125,203,183, 44,159,244,193,
- 15,221,213, 84,229,249,237,237,179,103, 78,151,101,233,189,223,218, 58,120,252,170,171, 63,240,222, 63, 87, 68,223,255,210,151,
-197,187,219,155, 76,207,157, 57,155, 15, 6,215, 93,127,195, 83,175,187,254,248,149, 87,105, 68, 1, 26,173,109,220,249,218, 59,
- 0, 64,123,246, 27,155,155,107,227,117,239, 29, 34,102,105,186, 88, 44, 30,124,224,254,191,185,251, 35, 95,252,156,231, 37,217,
- 8, 0,240,189,127,245, 65,239,152,217, 15,178,116, 50,157, 61,242,240, 67, 39, 31,121,228,145, 7, 63,117,237,211,110, 92, 27,
-143,231,179,201,249, 51,167,180,179,158,217,103, 89, 90, 84,245,199,238,254,200, 61, 31,191,123, 52, 26, 63,247,203,158,111,173,
-173,202,130,153,145,148,118,206,178,247,103,247,118,117,154, 30, 60,120,209, 45,183, 62,115,180,190,105,155,198, 57,231,188,115,
-206, 51,179,182,214,178,119,128,120,250,228,201,209,120,156,101,105, 89, 22,139,217, 76,144,172,117,206, 90,231,156,110,234,218,
-179,103,239,157,115,247,124,252,163, 27,155, 91,195,209, 72, 39,233,238,249,211, 2,166,177, 77, 83,215, 58, 92, 28, 51, 15,134,
-195,203,142, 95,117,223,223,124,156,133, 15, 30, 58,172,211,225,206,153,147,141,199,166,169,225, 11,117,119,122,223,231,119,220,
-241,170, 47,191,253,118,231, 28, 51,123,239,189,119,206, 90,239,253, 31,253,143, 63,252,143,191,252,159, 63,155, 14,156, 56,113,
-226,103, 95,255, 6, 65, 18, 97, 97, 97,150,162, 40,202,178,168,202,210, 54,141,181,141,247, 94, 68, 6,195,225,230,230,150, 82,
-234,177, 71, 31, 18,231,191,231, 37,223, 55,159,207,247,159, 8, 81, 33,194,246,246,222, 98,177,152, 78, 39,243,217,212, 59, 7,
- 0, 74,107,163,141, 78, 12, 17, 13,242,193,120,125, 61, 73, 18,165,213, 61, 31,251,232,155,222,248,198,170,170, 22,243,201, 75,
-127,240,229,203, 23, 18, 16,102, 24, 12, 7,164,212,250,198, 70, 98, 18, 1,241,222,139,247, 94, 88, 88,134,163, 33, 33, 88,107,
-183,207,157, 61,125,234,177,135, 30,124,224,220,233,135,159,253, 79,158,159,229,163,159,250,201,159,120,239, 95,188,231,247,222,
-245, 71, 26, 0,156,103, 96, 38, 82,121,158,139,176,103,175, 72,229,169, 70, 61,104,234,102, 49,159,159, 57,117,106, 54,155,237,
-238,236,156, 63,119,250,220,153, 83,229, 98,254, 37, 95,250,101, 34, 2,136, 74,233, 91,158,249,172,107,175,121,138, 6, 0,239,
-188, 8,139, 8, 51, 43,165, 82,163,149, 78, 39,123,187,103,207, 62,120,254,220,185,189,157,157,249,108, 82,150,101, 93,149,131,
-225,232,166, 91,158, 53, 28, 14,157,115,214, 90, 14,158, 4, 80,153, 52,188,144, 19, 16,102, 22, 17,103,107,167,140,231,114, 50,
-217,219,221,222,190,255,147,159, 24,140,198,215,221,240,244,193,112, 40, 44,241, 30, 93,112, 7,206,123,102,207,204, 2,193, 47,
- 89,103,227,203,136, 20,243, 89, 85,149, 89, 62, 80, 90, 95,114,233,101,135,143, 28,177,182,177, 77, 93, 21,115,165,147,248, 50,
- 46,168,133,115,206,122,231,188,119, 46,248,174,166,174, 69, 68,132, 89, 68,105,237, 61, 63,248,169,123, 77,146,102,249, 32, 73,
- 18,109,180, 78,114, 16,118,206, 85,101, 81, 21, 51,210, 41,179, 56,231,156,117,141,181,182,105,172,181,225,133, 42, 22, 1, 17,
- 47, 34,204, 38, 73, 46,185,236,242, 98,177,120,232,129,251, 22,179,105,146,102,195,209, 90, 62, 24,102, 89,166,180, 54,233,176,
-174,171, 98,182,199, 64, 44,208, 84, 85, 93,215, 77, 19,125, 96, 45, 65,218, 65,224,204, 44,130,136,151, 95,121,117,208,238,186,
-170, 30, 61,249,176,176,207,135,163, 60, 27,104, 99,116, 58,172,202,249,100,251, 44,153, 65, 93, 87, 85, 89,124,225,252,228, 23,
-228,113,236,216, 49,250, 66,189,214,138,245, 95,125,245,213,191,254,150,183, 56,231, 69,196, 51,179, 15,122,103,109, 93,191,228,
-251,190,255,209, 71, 31,253, 28, 17, 0, 0,222,255,129, 15,136, 96, 16,183,247, 30, 16,157, 13,138,210,120,231, 4, 64,107, 93,
- 87,229,108,178,243, 45, 47,250,182,199,125,107,248,193,191,254,144, 0, 10, 3,128, 32, 81, 85, 86,243,197,172, 42,203,186,174,
-108, 99,157,115,158,189, 34,218,220, 58, 56, 26,141,202, 69,177,183,115,166,170,202,239,248, 55,223,181, 95, 70, 68, 26,129,128,
-176,177,205,246,249,243,167, 79, 63,118,230,212,169,179,103, 78,111,159, 63,191,183,187, 51,157,236,205,103,179,162, 40,216,179,
-214,102,188,177,169,147, 60, 73, 7,191,244, 11,111,218,119, 40, 2, 68, 1, 41,230,211,189,189,189,221,221,157,157,157,237,233,
-116, 82,149, 37, 51, 43,173, 7,163,209,250,250,198,120,188,190,177,177, 49, 24, 12,210, 52, 73,210,244,158,143,127,212,164,233,
- 27,127,254,245,121,150, 45,133, 45, 34,136,192, 44,206, 90,219, 52, 8, 48, 26,141,214, 55, 54,215,214,198, 74, 41,102, 14,118,
- 57, 30,175, 49, 75, 81, 44, 22,179, 89, 89, 22,136,202,152,228,181,175,125,245,191,251,193,151,139, 72,120, 33, 96,150, 44, 31,
- 0,210,112, 52, 74,146,140, 16, 61,123, 97, 14, 78,214,152, 36,207, 76,211, 52, 69, 81,156, 63,119,238,212,169, 71,103,211,137,
-181, 13, 18, 42,101,126,244,213,175,124,197, 43, 95, 13, 0, 36,194,204, 66,132, 89,150, 15, 6, 3, 34,228, 96, 45, 0,249, 96,
- 48, 24, 36,105,154,148,181,221,222,222,126,236,177,199, 30, 61,249,240,233,199, 30,173,171, 2, 4, 68,136,136,180, 54,255,254,
-165,223, 27,223,154, 8,179,128,176, 23,129,240, 42,195,225, 0,132,189,151,178,225,249,124,123,177,152, 79, 39,147,157,243,231,
-206,156, 57,181,123,238,204,145, 75,142,155, 36,177,206, 10, 0,146, 74,243,129,181, 86, 51, 11,179, 0,136, 8,136, 48, 8, 12,
-243,140,148, 46,138,114,178,183, 51,157,236, 77,167,211,233,100, 50,157,236,237,110,159, 47, 22,179,141, 3,135,158,118,227,205,
- 44, 12, 34, 0,136, 0,136,234, 75,111,123,182,102,225,224,137,130,143, 28, 13,135, 0, 80,150,229,246,249,179,231,206,158,217,
- 62,127,126, 58,217, 43, 22,243,170, 42,133,249,248, 85,215, 92,113,229,213,158, 89, 60,251, 86, 2,136,136,168,116,240,149, 34,
- 44,194, 72,170, 88,204, 77,154,205,103,179,157,237,237,199, 78,158, 60,119,246,148,119,206, 36,233,145, 75, 46, 61,118,249, 21,
-105,154,122,239,227, 15,246, 16, 44, 65, 0, 0, 65, 11, 51,179, 15,175,148, 40, 44,235,138, 1,157,119, 74, 41, 68, 97,230,107,
-158,122,253,197,151, 28, 69, 66,239,124,124,149, 40, 14,110,253,179,196,244, 39, 92,179,136, 52, 34,197, 98,225, 60, 3, 64, 62,
- 24, 28, 61,122,236,192,230,230,145,163,151,249,168, 76, 62,132,113,238,180,139,133, 89, 98, 82, 26,190, 16,205,213,185,197,108,
-102,173, 51, 73, 98,146,100,253,192,129,209,120,173, 44, 22,204, 94,105,227,189, 48,115,120,157,222, 75, 51, 51,131,136,102,246,
-236,195,197,139, 48, 51,200,206,246,249,193,104,148, 36,169, 82, 74,105,147,145,178,182,177,117, 85,150,133,210, 9,139,120,239,
-185, 59,151,247,236,153, 69,116, 72, 60,162,183, 22, 25,173,173,239,108,111, 47, 22,243,124, 48, 76,211, 76,107,173,180, 66, 64,
-101,146, 68,164,152, 79,189,103, 84,166, 31,222,130,224,122,111, 45, 30,137, 15, 95,124,244,161,251,239,155,236,237, 38,105,150,
-231,131, 44,207,141, 73,148, 82, 34,104,210,220, 45,102,197,108,199, 36, 3,142, 81,210,133, 87,208,206,121,102, 47, 2,194, 30,
- 0,152, 25, 0, 46, 59,126,229,153, 83,143, 61,250,200,167, 17, 49,203, 7,163,181,181,124, 48, 52,198, 16,162, 54,153,106,236,
-124,114, 94, 39,163,246, 80, 78, 88,180,119,182, 59, 17,183,167, 18,230,173,131,135,198,235, 27, 59,219,231, 31, 59,249, 80, 89,
-204,135,163,181,193,112,148,166, 25, 18, 41,109,148,206,102,147,115,202, 12,156,179,161, 20,233,223, 90,212, 76,246,225, 78, 89,
- 68,214, 55, 54,134,195,235,207,159, 63, 59,221,221,105,234,122, 56, 90, 75,210, 20,145,148, 73,148, 50, 85, 49,103, 1,219, 52,
-204, 30,158, 84,113,237,178,203, 46, 35,120, 50, 61, 16, 81, 63,241,103,223,124,243,205,151, 95,126,249, 21, 87, 92,145,229, 25,
- 33, 89,219,204,231,243,251,239,191,255,161,135, 30,250,228, 39,239,253, 59,137,215,225,113,237,181,215,254,202,155,223,140, 64,
- 49, 6, 11, 8,136,176, 4, 93,109,157,134, 0,128, 72, 72,135, 25, 98,124,103,102,231,156,173,203,162,174,235, 23,127,247,247,
-204,231,139,207,243, 64,175,122,245,107,190,242,171,190, 74, 36,158,128, 1, 48,166, 93, 30,137, 68,192, 1,123,107,157,115,206,
-123,246,209, 42,130, 71,145,112, 74, 16, 68,212, 58,201,178, 52,203,215, 0,224,109,111,255,157,221,157,115, 32, 34,194,111,125,
-235, 91,255,215,159,252,217, 19,186,181, 19, 39, 78,188,254,231,223, 36,241, 44, 40, 33,146,176, 7, 84, 77, 83, 91,219,212, 85,
- 93,215,149,181,214,197, 3, 57,246,225, 87,116,169, 33,244, 0, 34, 41, 53, 28,142,214,214,214,178, 60, 79,146,148,136,188,119,
-139,217,236,177,147,159, 30,173,173,133, 32,126,223,125,159,252,233,159,125,195,103,201,213, 34,208, 32,158, 1, 81, 0,234, 98,
-225, 28, 91,231,154,166,169,235,170,105,154,186,170,154,166,118,214,250,152,160, 74,136, 27, 33, 0, 33, 0, 32,130, 8, 0, 16,
-145, 86, 74, 41,157,166, 89,112,135,222, 59, 34,117,216,187, 71, 31,254,244,218,250,186, 73,179,107,174,125,234, 47,188,233,141,
-182,169,126,248, 21,175, 44,138,242, 51, 92,153, 96, 80, 23,111,109, 99, 93, 93,215,117, 93, 55, 77, 83,215,117, 93, 87,182,105,
-156,117, 2,162, 72, 37, 73,162,148, 50, 73,146,152,196, 24, 99,146, 68,107, 29, 78, 21, 14,150, 15, 70,131,193,128,136, 8,145,
- 69,156, 19,103, 27,231, 60, 16,221,253,225, 15, 94,127,211, 45, 74,155, 16, 75,239,252,177,215,214,117,245,202, 87,189,166,170,
-234,253, 7, 10,117, 26, 34, 0,146, 82, 26,201, 18, 41,165,180, 49,172,181,166, 53, 74,210, 52,207,243, 52, 73,145, 40, 92,110,
- 20, 21,139, 0, 51, 11, 11, 19, 98,150, 15,242, 52, 17,182,158,169,241, 92,215,117, 81, 44,102,211,233,222,238,246,238,206,118,
- 89,150,239,123,247, 31, 61,235,185,207, 71, 34, 36,165,180, 49, 34,175,122,229,143,212,213,226,142,215,220,185,122,160, 46,255,
- 64, 72,210, 60, 73,179, 96, 71,109, 16,110, 77, 43,212, 41,241, 27, 0, 68,144,208,232, 84, 41, 2,240,132, 36, 64,117, 99,173,
-179, 77, 93, 87,101, 89, 20,197, 98, 49,159, 78,246,246,118,182,119,119,207, 47,230,211, 52,205,154,186, 54, 73, 66, 68,140, 68,
-164,180, 73, 68,228, 85, 63,242,195, 63,250,227,175,243,222,199, 3, 49,135,159, 5, 0, 28,149, 27,130, 45, 11, 10, 48, 0, 68,
- 51, 7, 4, 52, 70, 27, 69,222, 59, 84, 4, 64,236,217,123,239, 28, 91, 91, 53,141,181, 77, 93,215,117, 89,150,101,177, 88, 20,
-139,249,116, 58,155, 77, 22,211,105, 85,204,148,214,151, 95,117,109,146,164,210,230, 64,128,132, 24,133,245, 67, 47,123,233,111,
-253,246,239,212,214, 71, 9, 9,112,240, 53, 8, 33,107, 67, 17, 1, 96,223, 30, 48, 73, 19,173, 72,216,147, 78, 66,246, 99,171,
-160,101, 85,211, 4,184,163,174,235,170,174,170,170,170,202,178, 40, 22,139,178, 88, 84,229,162,174, 42, 0,222,216,186,232,170,
-107,190,104,109,188, 30, 98, 93,248,161, 8,128, 33,207, 67,165,180,126,225,215,191,224,163,119,127, 34, 72,200,119,230,219, 62,
-153,131,228, 16,197,152,212,104, 18,102, 34,237, 0,203,178, 44,203,162, 40,138,170, 44,202,178,172,171,170, 42,203,186,174,131,
-123,104,154,166,169,171,186, 42,157,115,236,189,210,250,162, 35, 71,143, 30,187,124, 99, 99, 19, 32, 36,148, 49,146, 7,221,109,
-189, 13, 32, 18,145,222, 88, 95,215,225,158,226, 13,133,167, 1, 4,125, 1,128, 52,205,188,179,206, 41,165,117,221,212,101, 89,
- 22,139,249,108, 58,157,207,103,243,249,108, 62,155,149, 69, 81, 87, 85, 23,244, 69,132,136,210, 44, 63, 56, 30, 31,188,232,240,
-120,188,174,141,129,144, 24,178,231,182,196,109,211,157,165,219, 15,121, 44, 16,234,120,112,239, 1, 80,128, 33, 74, 72, 68, 64,
- 27,221, 84,165,247, 94,155,196, 58,103,173, 45,203, 34, 72,104, 62,155,237,238,108,239,238,156,175,171,146,148,206,243,193,218,
-120,125,188,190,177, 54, 30,143,214,214,140, 54, 65,251,218,218,186, 45,178, 57,126,224, 37, 38,155,193,173, 5, 13, 14, 90,218,
-130,171, 34, 32, 12,157,117,129,160,128, 48, 47,230,115, 1, 49,206, 41,165, 93,176, 2,173,243,193, 64, 88, 80, 88,161,160, 82,
-151, 92,122,249,250,198, 38, 34,138,116, 80, 72, 0, 13,164,119, 10,233,103,148,241,242,218, 52,184,203,197, 64, 36,232, 16, 51,
- 51,116,199, 1, 1, 1, 6,225,134,171,170,116,206,145, 82,109,218, 8, 74,169, 44,203,141, 49,195,209,232,224, 69,135,189,119,
-236,125, 49,219, 83, 90, 39,105, 14,128,126, 25, 82,246, 9,168,251,200,183,162,138,229, 10,119, 79, 0, 9, 18,114,204,109, 64,
-104,207,197, 2, 0, 64, 74, 23,211, 9,123,214, 38, 9,110,154,148, 66, 68, 34,149,164, 42, 73,210,248,102,189,243,222, 55,117,
-197,222,121,239, 4, 80,105,195, 33, 65,104,243,198, 86, 88, 33, 45, 8,248,208, 50, 61,111, 79, 12,241,202,186,107,148,120, 99,
-241, 47,165,244,112, 52,222, 62,119,118, 62,159, 17, 41, 99,140, 54,137, 54,154, 72, 41, 34, 36,138,241,140,148, 34, 34,165,188,
- 55,228,157,243,174,169, 42,231, 26,239,189,214, 9,144,146,158, 24,226,121, 90, 52,210,123, 23,138,133,152,230,199, 3,121, 97,
- 16, 92,250, 36,100, 17, 0, 6, 17,173,245,214,161,139,102,147,189,237,237,243,211, 73,131, 68, 74, 41, 99,140,210, 90, 41,173,
-181, 81, 74, 41,165,144,144,144, 32,184, 21, 84, 38,205, 72,107, 87,215,141,109,156,173,189,103,101, 18,164, 80,231,176, 72,155,
-194,248,136,127, 5, 55,193,204,177, 25,176,148, 80, 23, 52,218,144, 18, 62, 25,174,141,179,193,112, 62,155,237,108,159,155,236,
-238,122,239, 0, 64,107,163,147, 36, 49, 70, 27,163,181, 49, 73, 18,228, 68, 68, 65,199, 81, 27,131, 4, 72,210,212, 77, 89,120,
-103, 81,167,164, 84,168, 8, 34, 54, 23,235, 61,239,189,151,112, 32,239,156,244, 20,104,169, 73,237,213,117, 73,207, 96, 56,204,
-243,220, 93,236,131, 59,218,219,217,217,221, 62, 7,194, 20, 51,128, 36, 77, 51, 99, 18,109,140,214, 58,156, 44,160,181, 74, 39,
- 0, 40,128, 77, 93, 88,219, 40,157, 2, 82, 43, 34, 27, 14,230,156,237, 73,104,229, 28,171,226,233, 78,217, 59, 89,150,229, 73,
-154,110, 30, 56,200,236,155,186, 46,138, 98,111,231,252, 98, 62, 91,204,103,218,152, 36, 73,141, 73, 76,146,104,181, 60,150, 0,
- 42,147,104, 22, 22,168,171,185,243,172,116,186,132,181,157,245,206, 49,123,141,136, 31,252,171,247,115,235,162,187, 88, 14, 49,
-176,183,159,202, 74,156,239,157,125, 41, 87, 97,182,214,214,213,174,247, 14, 17, 16,149, 82,138, 20, 17, 41, 68, 68,192,232, 80,
-216, 59,103,157,109,172,173,149,206, 36,160, 36,236,189,247, 69, 89, 61,201,240,198, 80,155, 61,121, 14,115,219,109,183, 81,151,
-128, 62, 73, 30, 79,174,202,245,201,120,160, 39, 90, 74, 31, 57,114,228,218,107,175,189,230,154,107,182,182,182,180,214,204, 92,
-149,229,233, 51,167,239,191,255,254,187,238,186,107, 95,229,240,119,114,160,131, 7, 15, 62,231, 57,207,121,209,183,126,219,129,
- 3, 7, 90, 60,179,107,107,180,217, 67,248,203,135,254,132,191,247,147,159,124,219,219,223,126,239, 39,239, 45,202,242, 11,121,
-160, 59,239,188,243, 57,207,125, 46, 2,177, 8,181, 9, 62, 42, 1,230, 80,190,161, 0, 17,117,213, 54,139,132, 96,249,180, 27,
-158,254,163,215, 93, 95, 85,133,179,205,187,222,245,174,183,189,253,183, 63, 31, 0,228,216,177, 99, 15, 63,252, 48, 0, 60,253,
-166,155,126,252,199,239,220, 58,120,168,115,140, 1,162, 5, 0,246, 30, 0, 4, 49,132,236,144,241,196,144,221,226, 84,241,216,
- 74, 33, 34,123, 63,159, 77,188,107, 78, 62,242,200,157,175,251,169,201,100,242,196,205, 30,143, 30, 61,186,190,177,241,107,191,
-254, 22, 17, 65,164, 21,111,205,204, 32, 0,212, 6, 66,239,172,117, 1, 99,112,158,189, 99,105,193,134,246, 52, 73,146, 36, 73,
-170, 20,121,207,229, 98, 54,217,219, 81, 74,149,197,252,229, 63,244,138,201,116,250,132, 14,116,231, 79,188,238,121,255,244,203,
- 16, 16, 8, 65, 4, 4, 25, 25, 4, 20, 41,207,236,156,107,154,198,218,198, 54, 54,132, 27,231, 67,247,204,119,232,105, 44,179,
- 0,180, 49,195,225, 40,207, 7, 38, 73, 8,209, 57, 59,159, 77,207,159,125, 44, 31,140,108, 83,127,234, 83,247,189,238, 39,127,
-230,115, 30, 72, 7,144, 0, 16,132, 49,192,206,226, 69,105, 93, 59,103,235,186,105,234,186,170, 3,216,224,218,211, 4,248, 85,
-218, 68, 29, 98, 21, 75, 34,226, 51,207,194, 33, 99, 75,149, 22,129,166,105,118,206,157, 30,141,215,175,186,234, 41,191,248,166,
- 55,188,236,229,255, 97, 95,247,246, 66,165, 70, 68, 98, 0, 36, 17, 6, 68,244,222,213, 77,211,180,104, 67, 93, 87, 77, 83, 7,
-164,148,157,227,160,195,171,249, 10, 34, 34,145, 49, 73,128,151,128, 80,107, 77, 72, 0, 50, 28,173, 77, 39,187,136,164,141, 1,
-128,215,253,196,143,189,227, 29,239,252,211, 63,123,247,103,118,140, 24,203,100, 16, 32,194, 98, 62,173,235, 58, 20,230,225,191,
-178, 88,148, 69, 89,151,101, 93, 85,117,211, 4,152,200, 59, 23,106, 74, 68, 12,233, 24, 17,133,212, 49, 73,146, 52, 73, 77,146,
-104, 99,180, 49, 73,146, 12, 6,163,251,239,253, 4,145, 34,165,148, 50, 95,251, 53, 95,243,253, 47,121,241,103,245,212, 24,209,
-148,166,174,156,231, 58, 96, 66,161, 52,174,171,186,174,109, 83,135, 20, 51, 8, 67, 27, 99,210, 52,201,178, 60,207, 7,163,209,
-218,120,188, 54, 30,143, 70,107,195,209,104, 56, 90, 27, 12,135,105,154, 26,173,187,188, 17, 16,179,124, 24,176, 34, 34,165,141,
-185,252,242,227, 47,123,233, 75, 62,163, 31, 98, 1, 68, 64,128,144,215,134, 12,215, 89,235,172,243,206,177,103, 1,192, 22,140,
-210, 70, 37, 38, 53,137, 49, 38, 73, 76,130,138, 98,112, 22, 80, 90,141,215,215,141,209, 1,110, 18, 97,103,173,179,150,217, 51,
-192,195, 15,222,127,249,149,215, 4,204, 67,233,228,240,197,151,124,251,183,126,243,175,252,218,111, 92,112, 32,137,247,222,186,
- 31,232, 42,234,240,230,180, 49,169, 74,141, 49,249, 96,144,166, 89,146,166,198, 36,225,173,139,180,165, 58,251, 80,178, 25,173,
- 91, 76, 80, 2, 6, 87,215, 85, 89,148,182,174, 31,123,248,129, 99, 87, 92, 77,132,236,145,136,180,210, 87, 95,115,205, 11,190,
-246,171,223,249,251,127,248, 56,158, 58,148, 97,161,236, 34,165, 66,197,131,136, 25,228,198,152, 44,203,178, 44,215,198,132,178,
- 36,184, 39,137, 8, 78,112,153,168,141, 94, 91, 91, 99,111, 1,144, 69,172,117, 85, 85, 46,230,243,197, 98, 81, 22,243,178, 44,
-155,166,217,217, 62,127, 96,235, 96, 0, 97, 0, 73,107,115,235, 45,183,252,197, 95,190,239,252,246,206, 82,135, 58, 1,129,136,
-210, 38,203,178,225,112, 52, 94, 95,223,216, 56,112,232,208, 69, 71, 46,190,228,240,225,139,215, 55, 54, 77,154, 96, 27, 70, 4,
- 64, 48,128, 87, 34, 34,164, 84, 62, 24,140,134, 57,123,199, 12,214,249,170,174, 23,139,197,108, 54,157,207,103,211,201,100, 58,
-157,150,139, 5,139,204,167,147,216,103, 67,164,240, 80,250,123, 94,252,157,253,156,140,186, 16,193, 0, 0,162,148, 78,211, 52,
-207,243,193,112,152, 15, 6, 90,155, 94, 5,210, 22, 72, 34, 32,128,128, 70,155, 60,207, 7, 89,162, 9,152,129, 25, 26,107,203,
-178, 92,204,230, 1, 27,153, 78, 38,179,233,116, 62,155,149,101, 33,194, 45,236, 20,204, 40, 20,192,138, 72,255,192, 75,254,237,
-138, 14, 33,132,231,134,218,183,211,159, 37,192, 26,143, 0,192, 32, 32, 64, 74, 37,198,128,176,136, 67, 2, 0, 29, 2,156,179,
- 17,187,138,136,213,124, 62,155, 77,167,211,221, 98, 49,181, 77,169,116, 50, 28,173, 9, 11, 0, 70,164, 3, 17, 35,152,188,118,
-205,213, 87,222,251,169, 7,226,149, 9, 75, 56, 19, 68,104, 8, 68, 16,145, 5, 2, 98,194, 16,139, 88, 81,164, 7,131, 60, 75,
- 20,161, 40,173,149,202, 88,200, 90, 91, 87,117,177,152, 47, 22,139,197,124, 54,157, 78, 38,147, 73,232,141, 78,247,118, 23,179,
- 89, 89, 20,158,253,198,230,161,181,245,117, 36,140, 17, 27,219, 35, 17,145,210, 47,248,218,175,238,148, 90, 4, 33,194, 66, 61,
- 4,164,189,197, 86,199, 16,178, 52, 83, 8, 44, 94,155,212, 7, 2, 71,136,116, 77, 99,109,235,217,171,170,172,202,170, 44, 23,
-243,249,124, 62, 43, 22,179,178,152,123,231,178,124,116,201,101,199, 34,192,184,191,223,130,136,164,117,114,235, 51,110,106,205,
- 94,152, 1,151,118,223,254, 83,231, 5,136,212, 32,207,188,107,144,180, 66, 29,184, 36,117, 83,133, 48,215, 52,117,192, 24,171,
-186,174,203,178,138,144,231,188, 42, 22, 85, 85, 58,107,147, 44,187,228,210,203, 15,108, 29,236, 52,160,187,181,229,161,148, 58,
-241,236,103,253,159, 15,127, 92, 11,128, 48, 4,132, 10,160, 3,130,161,213, 96, 86, 74,229,121,238, 93,163,117, 2,136, 77, 99,
-155,186, 42,171,170,174,202,170,174,154, 64,247,171,235,186,170, 2,232, 89,150,101, 85, 22, 77, 93,214,117, 35,236,211,124,112,
-241, 37,151, 30,189,236,152, 49, 73, 64,128, 4, 98,158, 37,173,248,131,148,180, 78,218, 43, 19, 1,108,113,200,213,226, 20,145,
-178, 44,115,182,238, 78, 83, 87,101,224,100,149,101, 89, 85,101, 93,150, 85, 85,197,164,160,174, 26, 27,194, 78,197,236, 9, 49,
- 93, 27, 31, 62,124,201, 37, 71, 47, 77,210, 52, 68,228,214,195, 0, 98, 43, 36,196,160,226, 20, 12, 36,128,101,192, 75, 71,205,
-140, 93,150,150,101,169,183, 13, 41, 37,136,206,186,186,174,138,162, 88, 44,102,101, 81, 44, 22,139, 98,177,168,170,170,174, 74,
-107,155,166,174, 3,183,206,218, 6, 0,146, 36, 93, 91,223,184,232,240,197, 7,182,182,148,214, 17,116,111,177,129,128,107, 2,
- 66,139, 36, 64, 11, 17,131,142, 70,221,235,127,181, 23, 39, 74,105, 68,112,204,168, 52, 59,111,173,173,171,170,170,138, 98, 81,
-204,103,179,217,124, 90,204,231, 85, 85,133,208, 43,194,222,123, 68, 12,205,227,205,173,173,173,131,135,242,124,128,132,210,117,
-217,162, 51,139,102,182,132, 58,131,131, 9, 7, 10,210,193, 21,180, 3,186, 3, 53,117,141, 8, 33,117, 14,250, 91, 87, 85,192,
-134,103,147,189,197,124,110,109,195,204, 8,168,180,202,243, 65, 62, 24,142,199,235,235,155,155,163,209,154, 82,212,117,132,165,
-135,203, 45, 59, 90,109,171, 34, 98,119, 8, 81, 66,161,245,178,124,106,144, 21,162, 8, 59,219,144, 50, 2,145, 14, 24, 83, 86,
-102,239, 93, 83,215,129, 34,153,164,217, 96, 48, 92, 27,175,175,173,175,143,199,227, 60,207,145, 40,160, 28,242,184, 15, 8, 80,
- 48,203, 10,128, 2, 32,216,139,246, 29, 2,212,126,162, 0,188,115,214, 58,197,162, 32, 9, 7, 1, 64,165,149, 49, 38,116, 26,
- 72, 81,150, 15, 14, 29, 62,178,117,240,208,120, 60,214, 38, 9,183,206,192,125,140,188,197,198,187,232, 39,208,131, 49,165,223,
- 52, 13,220, 22,110,213,120, 5,169, 66, 12, 30,143, 69, 11, 4,159, 0, 68,168,180, 78,179,108, 96,135,227,141,141, 36, 73,198,
- 7,182, 46,190,248,210, 36, 77,187,206,172,172, 30, 69, 62,163,148,150,127, 66,104, 54, 8, 47,205,126,121,144,246, 84, 30,192,
-123,103,109,227,156,243, 70, 72,145,176, 32,146, 86,202, 36,201,112,180, 70, 72,118,173,210, 90, 11,123, 69,228, 34, 60,205, 33,
-212,180,121, 82, 7,101,237, 63, 13,175,170, 85,140, 39,129,143,212, 3,242, 96,121, 52,102,246,108, 27, 43, 0,158, 69,107, 67,
- 68, 2, 66, 72, 33, 65, 83, 90,123,151,179,243, 77, 93,122,111,141, 73,181, 73,162, 98,244,181,119, 41,138,149, 83,197, 30,207,
- 42, 90,216, 93, 89,204, 63,150, 54, 31, 58,122, 8,109,221, 35,194,172,180, 6, 64, 64, 8,229,169, 82, 74,140,241,161, 73,237,
-156,109, 42,219, 84,136,164,147,212,123, 23,120, 87, 43, 96,254,178,231,194,157,245, 69, 1, 44,139,152, 86,135,224,130, 43,235,
- 58, 71, 77,211, 56,231, 60,167,218, 27,165, 20, 81,200,233,128,136,128,136, 72,177, 82,164,116, 56,150,247,206, 46, 26, 68, 34,
-109,218,118, 69,200,116, 99, 27,161,227,135, 68, 70, 78,175, 59, 20,117, 40,246, 17, 49,252,201,129,181,215, 38,109,146, 36,233,
-124, 62,183,182,177,206, 37, 73,162,141, 81, 20,187, 11, 49,205, 67, 36, 84,162,160,245,254,100,155,198, 57,203, 77, 77, 74, 35,
-233,246,174,160,109,253,116, 4, 49,232, 65, 40,194,177,135, 6, 26,132, 25, 56,164, 94,173, 6, 44, 33,106,147, 36, 73,146,206,
-166, 37, 55,181,109,154, 36, 73,149,209, 74,233,208, 87, 32,234, 60, 62, 16,169,144, 16,106,147, 8, 0, 55,117, 83, 23, 72, 10,
- 64,145,210, 44,158, 91,121, 68, 87,198,221,221,197,223, 33,193,208, 18, 10, 81,216, 15,150,119,127, 12,134,195,178, 44,138,249,
-204,130,109,154,198, 24,163,181, 86, 58, 94, 31, 41, 69,136,225, 84, 1,114, 8,173,109, 49, 34, 34,214,214,222, 87, 74, 39, 72,
- 90, 90,121,180,232,146,239, 14,215, 53,178, 58,142, 93, 84,106, 70, 70,193, 96,181, 32, 16,226, 63,145, 26,175,111,216,166, 89,
-204,103, 13, 87,181, 82, 74, 27,173,117,128,235,149,210,161,102, 13, 0, 65,204,235, 48, 20, 95,204,204,226,185, 41, 11, 32,210,
- 38,237,105,115,255,112,220,181,210, 98,232,136,158, 99,213, 76, 97,233,186,197,152,100, 99,243,128,243,126, 62,221,243, 77, 13,
- 0, 74,105,109,140, 49, 70,107,163, 77,144,150, 14, 77, 14,128,216,195, 65, 84,164, 52,105, 38,102,107, 43,103,173, 74, 50,136,
- 30,101,213, 2,219, 94, 94,203,139,244,188,255,186, 96,217, 62, 11, 78, 33, 73,211,173,173, 45, 69,180,179,125,174,170,170, 0,
-119, 24,147,152,196, 24,157,104,163,181, 73,180,214, 74, 41, 34,133,132,225, 80, 72,138,148, 86,138,157,243,222, 85,174,176, 38,
- 25,196, 11,235,122,104, 49,204,176,136,239,204,222, 71,151,136,109, 53, 4, 44, 93, 9,210,218,166, 54,201,198,129, 45,165,245,
-100,119,103,178,183,219, 84,101, 83, 87,164,148, 49, 38, 73, 50,147, 36,198, 36,161,109, 21, 46,177,205, 43, 8,149, 82, 70,123,
-175,197,214,101, 49, 53, 73,222,111, 48,118, 26,205, 62,132,142, 62,174,194,251,250, 65,253, 47,177, 0, 16,209,218,120, 61, 77,
-179,193,104, 52,157,236, 77,118,119,235,170,180, 77,221,212, 77,146, 36, 73, 26,143,165, 77,212,173, 8, 54,132, 67,105,237,189,
-231,166,168,188, 87, 38,139,161, 32, 52,207,186,126,226, 62,199,120, 97,135,234,194, 51,137,136,214,102,125,125, 51,207, 7,227,
-241,250,116, 58,157,236,109, 91, 91,135, 65, 5,147,166, 38, 73,147, 36,209,218,104,173, 66,219, 69, 68, 0, 9, 73,147,242,164,
- 77, 83, 21,236, 25,149,105,155,192, 45, 30,231,125,239, 64, 43,241, 21, 86, 78,214,217, 97,123,160,224, 63,148,210,131,225, 90,
-154,229,107,227,241,116,111,111, 58,217,109,108, 19,102, 61,216,123, 99,156,211, 90,107, 67,138,176,197,123, 66, 51,146,148,169,
-203,133, 74, 6, 2,200, 34, 1,165, 12,210,106,205,190, 45, 89,247, 55,203, 58, 70,193,227,228, 15,209, 84, 17, 41, 77,179, 3,
- 91, 7,179,124, 48,217,219, 13,249, 53, 51,123,159, 24,147, 8,115,128,177, 48,204,109, 0, 34, 42, 34,141,164,170, 98,106,210,
- 97,119, 99,161,197, 8, 0,250,209,147, 39,185, 77,113,165,107,146,245,187,102,189,191, 59, 26,194,210, 22,151, 22,201,222,115,
-224, 27,137, 48, 34,117,158,179,141, 51, 8, 16,179, 77,231,172,107,106,129,109, 82, 42,176,181,132,125, 24, 10,193,219,110,187,
-109,119,119,119,111,111,239,201,214, 22,250,255,251, 16,145,141,141,141,205,205, 77, 13, 0,147,201,228,145, 71, 30,249, 7,161,
- 92, 72,242,220,220,220,164,127, 16,196,223,179,118,226, 63, 8,232,239,217, 67,255,237, 95, 98,109,109,237,196,137, 19,215,223,
-112,195, 77, 55,221,116,248,240,225,214,126,187, 0, 20,129, 38,110, 17,185,182,250,216,151,117, 8,123,255,137, 79,124,226,222,
-123,239,189,247,190,251, 62,252,225,143, 88,107,255,158, 9,136,136,190,252,246,219,191,248, 75,190,228,154,167, 92,115,232,208,
-161,124,144, 67,108,175,116,144, 83,139,169,244,249, 41,109,228, 85, 72, 65, 50, 4, 0, 34, 10,128, 85,247, 77, 17, 34,186,245,
-153,255,248,150, 91,159,233,156, 67,132, 48, 28,226,217, 79, 39,147, 83,167, 78, 63,244,224,131, 31,248,224, 7,239,250,232,221,
- 79, 34, 1, 29, 63,126,252, 25,207,120,198, 55,191,232, 69, 71, 46,190, 56,240,255,100, 95, 36,140,125,195, 8,248,139, 72, 44,
- 53, 64, 16, 16, 65, 32,212,105,128,161,251,213, 1, 24, 65,120,212,125,220,149,166, 32,128,160, 52,133,239, 81, 58, 3,132,124,
- 48, 62,116,228,232,211,110,184,241,246,231, 63,223, 57, 11, 34,206,186,143,220,245,145, 63,127,247,123,238,255,212,253, 79,164,
-169,252,133, 20,208,209,163, 71, 95,121,199,171,110,190,249,230,144, 43,198,126, 24,119,229, 59, 68, 8, 64, 68,136,128,133, 48,
-112,170, 25,145, 90,182, 18, 32,138,239,120,147,203,249, 21,150, 94, 49,182, 10, 59, 46,197, 22,236, 17,145, 8, 49,176,178, 66,
-194,171,181, 73,210, 60, 52,234,155,186,186,241,233, 55,221,120,195,141, 72, 36,236,157,119,127,252,199,255,243,119,255,219, 59,
-246,119, 7,190, 32,193,254, 57,207,121, 78, 85, 85, 95,247,245, 47,188,245,214,103,142, 55,198,194,208, 94, 58, 6, 78,188,136,
- 32,196,191, 58, 90, 1, 17, 17, 97,236,198, 44,105,137, 29, 87,146, 59,190,195,146, 31, 34,125,210,105,132,196,161,195,173,123,
-192, 48, 96, 72,185,149,210, 74,235, 68,107,173,141, 86,164,144, 66,221, 9,222,123,231,154,166,170, 23,139, 89, 85, 46,178, 60,
- 15,229,134,115,238,204,153,211,239,126,247,123,254,228, 79,255,252,111, 47,154, 99,199,142, 29, 63,126, 28, 79,156, 56,241,149,
- 95,245,207,110,255,138,219, 91,233, 35,196, 62, 86, 44, 96,161,237,145,176,103, 34, 36,165,195,164,167,247, 28, 89,135,206,133,
- 25,205,254,124, 23,183, 53,205,178,106, 95, 82,163,151,101, 84, 31, 22,235,154,226,208,182,218,147, 36, 77,210, 88, 6,107,109,
- 66,177, 16,250, 54, 44,226,157,107,154,186, 42,139,233,100,215,214,229,112,109, 61,136,222, 59, 7, 34,101, 81,188,243,247,127,
-255, 47,254,242,125,206,185,191,141,128,116, 11,229, 43, 22, 9, 77, 16, 68, 1, 17, 20,144, 80,176, 80,160,247,121, 36,242, 44,
-141,173, 2,217,144,189,111,201, 31, 97, 10,198,245, 20,200,119,152, 70, 31, 76,236, 66,216,190,218, 15,164,215, 85,128, 88,177,
- 73,146,232, 14,239, 19, 16, 16, 4, 8,253, 89, 36, 2, 17,214, 90,105, 29,112,160,249,108,178,187,125, 62, 31, 12,179, 60, 71,
- 64, 47,146, 15, 71,223,240, 13,223,248,207, 95,248, 66,219, 84,191,244,203,191,114,207,231, 59,178,164,187, 99, 17,182,238, 52,
-152,151, 8,130, 32, 98, 89, 22, 97, 66, 40,216, 76, 39,148,118,182,220,133,143, 34,199,183,141,220,251,197,209,135, 6,162,162,
-194, 42, 55, 64,176, 69,223, 0, 81,136, 16, 16, 9, 9, 81, 17, 17, 97,176,183,128,242, 68, 1, 49, 7, 12, 42,128, 54,158,253,
-246,185,179,117, 85,109, 28,216, 2,239, 24,192, 32,122, 79,128,244,221, 47,254, 46,231,236,221, 31,251,216,175,190,249, 45,159,
-175,147,198,182, 93, 21, 0, 66, 9, 51, 66,182, 44, 75,223, 18,167, 60, 7,177, 4,197,105, 5, 20, 63,115,113,134,255, 2,227,
-233, 58,188,203, 10,167, 67,138,130,211,111, 17, 92,192,229, 28,143,214, 42, 73,211,196, 36,105,154,166,105,150, 36, 75,176,137,
- 58, 43, 99, 6, 0,142,228,109,109, 76, 58, 24,142,118,206,157,157,207,167,151, 94,126, 37, 88,203, 4, 42,254, 40, 68,196, 27,
-111,184,225,231,126,230, 39,239,185,231,158,223,248,205,183,149, 85,245,255, 28,197,164, 11,200, 0, 68,196,222,213,117,237, 89,
-122,147,158, 29, 9,123,169, 56,206,187,192,240,237, 28,112, 80,132,150,170, 28,116,147,144,144, 72,117, 84, 30, 34, 12,138, 16,
-160, 16,236, 30, 81,125,227, 0, 76,146,164,105,154,182,216, 96,252,230,208, 13,245,237,220, 65, 60, 19,251, 0,176, 41,109,118,
-182,207,231,131,225,230,129,131,200, 32, 8,164,128, 1, 8, 64, 35,122,239,175,189,246,139,126,244, 53,175,124,232,193,135,222,
-252,150,223,124,220,129,173,199,157,223,138, 13,171, 8, 47, 3, 9,179,243,190, 29,190,135, 14, 34,141,142, 57,254,118,158,125,
-108, 79, 34,118, 40, 98,136,203,154,148,210,129,175,172, 84,176,141, 22, 52, 38, 2, 4, 66,138,169,210, 10,109,163,103,142, 68,
-148, 36, 38,207,115, 69, 74, 80, 98,107, 24,164,195, 70,173, 13,252,128, 58,126, 80, 55,214, 90,231,157,247,238,129,123, 63,241,
-180,167,223,154,102, 89,152, 16, 32,138, 93, 72,165, 16, 0,156,133,203,143, 31,191,227, 21, 63,244,192,253,247,255,242,175,190,
-229, 9,106, 80,200,244, 66,110, 39,125,142, 1, 34,119,126, 42,186, 40, 34, 98, 82,164, 16, 41,208, 68,144, 66, 84, 14,248,121,
-196,171,149, 86,132,132,109, 55, 23, 87,166,122,122,238,136, 65,176,157,159,138,226, 38,173, 85,154,101,105,150, 18, 2,179, 13,
- 57,168,180, 83, 66, 45, 79, 62,200,167, 14,195, 55,145,138, 86, 85,214,218,233,222,238,223,220,253,215,215, 94,127,115,154,229,
- 24,232, 67,136, 68,196, 44,132, 74,105, 64, 68, 7,120,197, 85, 87,189,230,142, 31,126,231,239,189,235,195,119,221,253, 57, 4,
- 36, 0,204,136, 40,216,182,199,137,148, 54,128, 68,129, 66,163,156,247, 74,155,174,128, 10,178,164, 72,141, 10, 19, 0, 33, 6,
- 99,244, 98, 75,127,220, 57,108, 12, 91, 15,130, 52, 36, 82,107,130,228,130,228, 67,199,196, 36,137,209, 10,132,197, 89, 7, 81,
-190,145,206, 26, 66,166,181, 77,171, 63, 77, 59,189, 86,182,252,129,166,174, 5, 96,178,183,187,125,254,220,225, 35,151, 40, 29,
- 3, 17, 18,130, 32, 18, 18,144,136, 34, 37, 0, 96, 18,252,186, 23,188,224, 43,190,252,121, 63,247,198, 95,170,235,230,241, 5,
- 20, 69, 18, 38, 73, 66,159, 12, 65, 32,178,255,148, 82, 34,105, 32,238,247, 32, 79,192,158,223, 13,201, 53, 6,122, 6,153,118,
- 70, 93, 0, 0, 11,198, 73, 68, 65, 84,246,184, 25,136,253, 97,182,158,116, 36,230,162, 24,205, 83,107, 77, 20,148, 55,228,158,
- 81,110,204,194,226,195,102,151,200,204,179,214, 89,219,116,195,125,113,158,110, 81,149, 69, 81, 20,101, 49, 15,155,168,180, 49,
- 77, 93,123,231, 72,169,158,110,162,244, 88, 65,136, 18, 24,121,131,209,248,101, 63,240,189,111,125,251,127,125,224,161, 79, 63,
-174, 15, 10,195,126,193,210, 34,169, 33,188,215, 72, 17, 1, 1, 65,173, 85,152,236,108,195,157,136, 96,219,151,141,211, 94,130,
- 93,217, 26, 97,229,182,122,141, 76, 4, 36,210,237,233,226,108, 71, 60, 58,183,236, 55, 98, 17, 8,219, 27,218,141, 55, 62,144,
-128,227,170, 26,219,216,198,134,209,190,192,202,169,138,170,172,234,170,168,170,210,214,165,117, 22, 17,179,124,148,164,169, 0,
- 98,119, 38,192, 46, 8,133, 68, 66, 4, 73, 72, 68, 17,137, 50,233,191,252, 23,223,120,247,221, 31,127,231, 31,252,247,199,247,
- 65,220, 50, 79, 0,195, 96, 18, 0, 50, 0,114,156,119, 13, 4,162, 37, 21,140,121,105, 67, 32, 32,216,249,146,126,237, 26, 24,
-101, 33, 90,117,205, 60,223, 94, 34, 9, 98,219,161, 16,241,178, 28,164,106,183, 79,133,209,111,239,156, 13,203,169,218,237, 59,
- 77, 83,135,137,228,170, 42,155,186,170,235,202,214,181,109, 42,231, 29,138,100,195,209,198,129,131,227,245, 13,173, 53, 68,174,
- 24, 70, 14, 51,198,207,163,188,144, 0, 37, 68, 85, 17,121,218,117, 79, 77,179,244,119,223,241, 7, 93,254,173,151,252, 59,233,
-184, 59,128,192, 0, 24, 10,112, 64, 16, 22,196,104, 25,161, 72, 7,224,110,138, 38, 26, 29, 47, 53, 6, 0, 34, 41, 87, 17, 0,
- 8,123, 16, 70, 82,161,151, 32,164,195, 55,249,174, 28,241,203, 89,169,229, 7,109,206, 21,213,198, 6,227,138,206,167,174,235,
-166,142,220, 50,103, 27,219,212, 97,172, 73,145,202,135,195, 67,135, 46, 62,112,232,162, 60, 31, 42,173, 58,114, 18, 17,120,223,
- 86, 83, 75,122, 82, 40,177,163,185, 49,169, 43,143, 31,255,142,111,251,166, 95,252, 79,191, 22, 57, 12,157, 27,229,168, 58, 45,
-125, 9, 56,128, 23,216,242,207, 66, 56,235, 13,174, 71,231,139, 75,239,133, 65, 42, 70,107, 68, 96,118, 0,140,168,208, 36,145,
- 66, 17,106, 88,207, 18, 50,114,207,222, 89,191,172,235,186, 81, 55,142,217,103,107, 89,174,167, 62,145,235,110,173,179,181,181,
-214,219, 38,164,169,138, 84,146,165,195,181,241,214,193,195, 7,182,182,242,193, 0,145, 32,188, 49, 1,137,221,107,132, 56,109,
- 29, 75, 41, 89,114, 39, 41,148,128,172,120,109,109,252,157,255,234,155,255,244, 61,239,147, 48,174, 9,171, 60,129, 96, 41, 24,
-181, 34,124, 17,123,233,113,164,171,181,150, 7, 44, 28,124,139, 54,218, 40, 37,194,236, 29,144, 82,202, 32, 82, 28,200,228, 94,
-150, 25, 31,182,151,119, 46, 21,198,123, 27, 63,183,182,245,203,157, 6, 53, 65, 82, 97,135, 95, 24, 73, 8,180,171, 52, 27, 12,
- 71,163,241,250,230,230,230,214,104, 60, 54,198, 32, 96,104, 16,183,212,185, 96, 17, 34,203, 17,111,145,125,209, 38, 66, 58, 68,
- 74,175,141,215,111,249, 71, 55,157, 60,117, 70,183, 62,180,125,243,193,169,162,112, 12, 57, 24,233,166,130,209,126, 91,186,125,
-155,215,133, 24,100,140,214,204,206,251, 6, 81, 41,147, 32,146,136,184, 78, 43,194,123,116,237, 62,133, 32, 32,231, 93, 55,245,
-103,109, 40,232, 98,229, 27,191,182,116,207,221, 30,177, 80,177,135, 58, 67, 41,157,228, 73,150, 15,198,235,155,235, 27,155,163,
-181,145, 49, 9, 17,245, 97, 38,236,200, 37,128, 61, 72,165,155,227,107,249,214,216, 18,240,162, 58, 81, 75,198, 91, 42, 9, 75,
-112,203, 81,153,184, 83,150, 46,143, 89,202, 17, 25, 17, 68, 80,107,149, 36, 9,162, 56, 87,135, 9,133, 16,156,124,251, 94,163,
-101,216,166,117, 35,193, 58,130,207,109, 58,117,242,173, 77,113,171, 81, 1, 48,241,109,221,215,173,166, 0, 0,165,117,162, 77,
-146,102,195,193,112, 52, 30,175,173,141,179,124, 16,136,231, 29, 23,105,201,168,235,100, 33,203, 65,198,150,132,222,149,139, 45,
- 79, 57, 40, 20, 34, 80, 28,176, 91, 58,105,230,142,242, 26,129, 32,232, 49,183, 17,187,118, 56, 4,150, 5, 17,133,156, 57, 96,
-122,132, 10, 73,181, 83, 66, 62,184,143, 54,103,169,235,166,177,117, 29, 92, 72,240, 35, 77,211,116,170,225, 90,213,104,107,153,
-184,242, 38,210, 65, 36, 44,163, 82,164,148,209, 58,201,210,124, 48, 28, 14, 70,249,112,152,231, 3, 99,140, 82,203,249,168, 37,
-185,160,243, 27, 45, 8, 37, 75,106,254,146, 29,222, 1, 10, 75, 48, 50, 74,106, 69,131,218,111, 71, 89,146,190,123,195,227,161,
- 30, 16, 94,122,159, 64, 18, 52, 90, 57,215,120,231,136, 72, 16, 88, 4,188, 23,145, 40,157,232, 77,227,190,146,118, 67, 71, 21,
-184,186,117, 93, 91,107,131,130, 4,120, 13,162, 41,192,178,200, 71,212,202, 40,173,147, 36, 73,210, 52,207, 6,217, 96, 48, 24,
- 12,146, 36, 53, 70,135, 42,151,133, 81, 96, 21, 85,105,149,190, 7, 86, 10, 64, 88,177,213, 50,224, 90, 22, 27,244,152,247, 45,
-220, 27, 81,176, 94,152,151, 62, 47,144, 35,160, 8, 45,213, 7, 59,133,100, 14,101, 13, 4,216,193,218,198,217,166,205, 41, 56,
- 88, 96,240,188, 54,228,117,182, 53,172, 88, 87, 86, 85, 89,150,101, 89, 85, 69, 93,215,174,169, 3,126, 20, 23, 32, 40, 29, 65,
- 31, 82, 58, 73, 76,192, 58,178, 44, 44,119, 9, 11, 10, 21,169,128, 86, 49, 95, 64,251, 90,150,187, 43, 4,205,152,183,181, 84,
-186, 30, 65,178, 75,145,151,210,234, 91,221,190,106,126,255, 50,137,248, 83, 49,228,202, 75,220,143, 69, 66, 9,194,206,217,166,
-246,236, 1, 64, 9, 16, 49, 32, 5,196,154,195,186, 46,137,236,181,200,245,143,179, 26, 68,161, 36,119, 54,140, 97,135,141, 6,
-121,158,167,249, 32,203,226,106,172, 52, 77,181, 49, 97,190, 7,169, 55,185, 28,192,236,149, 55,198,171,108,157,222, 34,138,110,
- 5, 71,252, 23,232,129, 84,189,192,125,129,128, 59, 93, 90,209, 32, 94,142, 74, 8,180,201, 38, 4,141,236,125, 1, 99,233, 40,
-206,219,166,105,152, 61, 18, 49,139, 82, 10, 73,245, 41,163, 8, 64, 24,214,108,153,214, 65, 4,129, 51,139, 35,132, 36, 73,144,
-104, 48, 92, 91, 95,223, 24,141,199,249, 96, 96,180, 9, 56, 81, 40,111, 90, 64, 82,194,152,220, 5, 32,246,138, 46,244,160,186,
- 62, 19,122, 73, 5,231,142, 88,212, 49, 54,185, 99, 34,247,189, 58,119,185,229,138, 6,245, 10,240, 40, 42, 89,146,116, 4, 91,
-242,126,200,170,187,218,136,217, 67, 88,118, 20, 55, 13, 80, 75, 55, 14, 67, 94,164,148, 2, 17, 48, 9, 66, 28,122, 51,218,100,
- 89,106,109, 13, 44, 74,171,192,255, 30, 12,135,198, 36, 29, 84,184,140, 50, 45, 88,213, 49, 5, 87,109,106,229,157,237,163,104,
-239,223, 3,176,106,131, 32,251,168, 79,157, 24,177,207,224,214, 29,127,140,151, 93,209,149,190, 96,175,245, 25,171, 48,239, 37,
-154,152,181,129,248, 27,141, 39,206,242,199, 49,194, 86,101, 34, 37, 15, 49,178,209,125,150,229,126, 24,234,172, 88,214,249,166,
- 42,132,147,148,148, 10,184,124,139,139,131,244,169,213,189,165, 2,171, 28,254,207, 70,245,234,217, 28,195,231, 32,148, 75,183,
-158,177, 51, 69,221, 25, 5,243,138,137, 45,185, 93, 75,161,197,111,195,152,150, 6, 88,207, 5,183, 78, 20, 40,185,113,223, 65,
-155, 83, 66,151, 76, 18,162,136,104,173, 89, 12,175, 48,113,227, 62, 22,107, 27,104, 98,197, 79, 68,136, 42, 20, 77,225,115,110,
-217,140,125,244,177, 93,119,246, 56, 12, 84,238, 8,219,221,187,223,207,110,135,199,213,184,190,243, 94,201,131, 62,131, 68, 58,
-155,195,126,218, 9, 34, 0,132, 68,204,236,108, 35, 65, 83,108,196, 90, 41,190, 67,236,101,241, 24, 90, 17, 8,130,130,138,116,
-139,151, 45,199,187, 91,169,113, 59,108,237,132, 25, 80, 16, 9, 81, 5, 28, 39, 24, 44,175,188,149,214, 11,115, 39,177,229,222,
-170,126,115,165,123, 90, 59, 16,192,253,225,247,238, 69, 65, 86,154, 83, 49, 15,138, 49, 7, 87, 68,211, 73,168,243, 88, 93,132,
-107, 81, 71,173,181,137,252,113,142,195,190, 74, 41,165,116, 23,180,250,120,124, 91,248, 4,164,140, 0, 5, 5, 69,129, 8,129,
-112,219,203, 97,234, 52, 43,182,115,152,165, 9,192,147, 5, 64,162,112, 55, 1,141,235, 20,135,123,241,234,194,225,131,246, 61,
-119,211, 36, 75,170,125,123, 69,220, 13, 5,112,140,233,210,243, 65,237,172, 69,175,139,119, 33, 99, 99,191,118, 33, 82,146,166,
-109,189,105,189,231, 22,192,215, 42, 12,189,168, 0, 93, 35,117,104, 44, 46, 25,241,171,172, 72, 12,123,117, 3,172,200,204,136,
- 28, 9,215, 20,185,176, 97,143, 17, 91,219,210,214, 81, 41,141,168,186,112,183,127, 83, 11,175,204,180,180, 2, 1,190,112,148,
-164,219,124,217, 77,229, 74, 79,131,186,103, 96,155, 69, 75, 15, 78, 95,186, 18,108, 65,159, 56,169, 28,223,100,154,231, 0,176,
- 88,204,156, 43,157,115, 17,107, 33,213, 53,118,130,247,198,182,231, 19,161, 5,164,182, 75,216, 45,219,235,117, 20, 17, 16, 72,
-132,195,119, 49,162, 66,194, 72, 2,247, 1, 44, 97,246,222, 54,225,109, 40,147, 16,169, 94,163,191, 93, 81,215,115,207, 93, 6,
- 2,113, 12,170, 91,227, 41,126,149,220,222, 45,243,130,222,150, 60, 94, 78,181,244, 93,116, 79, 97,160,191,243,177, 99,232,138,
- 32, 96,146,102,168,148,214,166, 88,204,171,170,242,206,177,212, 97,106, 98,201,209, 32, 21,210, 68, 84,138, 90,157, 10, 13,179,
-168, 87,203,113,139,190,106,181,113, 1,137, 0, 65, 35, 32, 33, 19,162,243,158,188,247, 32, 1, 46,104, 0, 17, 73, 19, 82,200,
- 87, 47,200, 26,165,219, 35,219, 55, 40,238, 51, 44,186,177,132,118,140,108,213, 7, 45,233,245, 61,161,244, 51,207,149, 32, 7,
-176,210, 73, 22,173,244, 96, 56,210,218,152,164, 40, 22,243,186,170,172,109, 68,154,184,136, 32,136, 2, 85,235,155,218,212, 58,
-238,222,162,214,175,183, 61,179, 22,160,109, 89,223,189,208,213, 54, 37, 1, 9, 0, 61, 32, 1,178,247,222, 91,182, 54,142, 28,
-144, 38,165,151,140,105,142,227,142, 75, 91,107,199,105,132,187,249,173, 56, 6,212,114, 9,188,244,125, 80,231,151, 0, 97, 9,
- 46, 7, 72, 8, 99,153,218,161,101, 1,141, 70, 4, 94,253,119, 68, 52, 73, 26, 38,221,170, 69,177, 40, 22, 85, 85,218,166,182,
- 77,195,221,202,227,214,143, 99, 59,118,210,174, 76,136,146,194,158,176, 66,131, 30, 3,140,133, 43,236,159, 16, 55,149,214,128,
- 8, 30,176,221, 76,224,189,243,182,113, 82, 11,160,210, 9, 41,213, 91,132,210,250,151, 22, 57, 89,142,215,200, 50,139,232,207,
-217,244,157,180, 95,118, 32,122,230, 35,176,132, 14,250,176, 64,111,190, 82, 86,225, 2, 65,196, 36, 73,181,210,249,112,216, 52,
- 77,177,152, 47, 22,243,186, 44, 27,219, 44,215, 1,199,236, 6, 91,225,232,118,168, 94, 71, 40, 59,184,246, 96,140,234,113, 67,
- 97,204, 56, 66, 49,195,200,180,236, 91,160,247, 14,216, 55,213, 28,144, 72, 27,165,140,180,100, 36,217, 55, 75, 19,215,128, 44,
-195, 26, 47,247, 10,175,104, 16,203,202, 82,195, 85,212,109,245, 11,242,120,214,118,161,241,145, 82,105,150,153, 36, 25,141,215,
-109,211, 84, 85, 89, 44,230, 85, 89, 52,117, 99,157,101,239,156, 11,153,116,112, 68, 49, 63, 80,237,148, 78,224, 79,133,228,179,
- 83,173, 24,230, 90, 81,117, 59,189, 34,229,138, 64, 84,232, 41,160, 19, 12, 37,145,179, 53,145, 38,149,132, 5, 40,189,133,125,
- 75,103,180,178, 20,143,123, 4,149,190,128,186,137,141,254,123, 70,196, 54,195,142,195, 64, 1,235,237,125, 9, 91, 82, 98,175,
- 64,234, 75, 11,128, 72,165, 89,106, 18, 51, 26,173, 49,123,107,109, 85, 85,101, 48,192,186,113, 46, 96,207,214, 54, 77,103, 95,
-173,164,150, 10,165,180, 34,165, 58, 49,133, 40,216, 75, 16, 90,240,129, 84,104,196,171,200, 5, 67, 17,112,174,225,166, 18, 80,
- 73,146, 9, 66,107, 81,113, 14,170,167, 80, 97,189, 33,123,246,226,125, 55,187,218,213,223,188, 47,116, 44,185,187, 43, 62,121,
-165,124,238, 42, 93,150,213, 58, 69, 86,212,109,185,247, 82,169, 4,201, 36,201,104,180, 22,122, 27, 97,160,186,174,235,248, 63,
- 37, 9,211,178,206,161,237,100, 21, 54, 3,234,182,226, 11,117, 11,182,179, 96,221, 4,100,191, 0, 84, 68, 34,162, 69,117, 25,
-143, 19, 87,151,174, 38, 74,148, 73,226, 40,244,234,108, 38,199, 21,239, 62,174, 97, 92,241, 65, 97, 49,102,251, 30, 47,100, 55,
- 1,226, 62, 59,234,131, 68,203,116,251,130, 89,156,149,165,118,251, 6,229, 16,148,210,131,225, 48,207, 7,204,236,156, 13, 3,
-232, 85,232, 2,218,166,219,141, 78,138,108,204,168,116,183,225,174,157,197,108, 19,171,150, 20,223, 70,141,208,132, 87,162, 64,
- 4, 84,248,119, 91, 91,187,112,174, 65,101, 8,169,183, 21,169,219,180, 24,247,155,178,247,225,206,117,196,124,150, 21, 62, 66,
- 95,151,250, 0,230, 74,117,182, 34, 23,232,117, 16, 87, 8, 45,112,193,175,253,131, 96,221,118, 5,212,198, 40,173,211, 44, 31,
-250,246,255,148, 17, 87, 57, 55,129,220,202,236,208, 57,165,136, 72,183, 99, 86,145,103,212,149,126,173,255,110,253, 40, 41, 18,
- 17,165, 68,132,148, 48, 51, 48,187,166,244, 82,106,147, 19, 81,111,176,143,133,189,116, 20, 66, 31, 9, 71,120,219,109,183,201,
- 5, 20,232, 39,195,164,205,147,228, 24,255, 23,101,110,253,130,218,250, 28,224, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/fill.png.c b/source/blender/editors/datafiles/fill.png.c
deleted file mode 100644
index fc34f1b3231..00000000000
--- a/source/blender/editors/datafiles/fill.png.c
+++ /dev/null
@@ -1,537 +0,0 @@
-/** \file blender/editors/datafiles/fill.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <fill_png> */
-
-int datatoc_fill_png_size= 16892;
-char datatoc_fill_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0,
- 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0,
- 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,
-116, 73, 77, 69, 7,218, 7, 19, 0, 34, 12, 33,249,187,131, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,188,119,144,101,217,121,
- 31,118,206,185,231,230,252, 82,231,158,188,121, 54, 47, 22, 27,176,136, 4, 68,144, 4, 8,154,169,192,146,138,182, 44,148,196,
-114,209, 42,209,170,146, 44,217,170,178,252,135,139,150,108, 73,150, 92,101,131,162, 77,194, 4,109, 70,145, 6, 72, 0,139,184,
-187,216, 93,108,158,217,221,217,137,221,211,233,245,235,151,110, 78, 39,250,143,251,122, 22, 18, 19, 68,211, 37,200,165, 91, 83,
- 93,175,167, 95,223, 62,247,203,223,239,247,125, 15, 62,245,212, 83,224,207,188,254,141, 55,253,200, 71, 30,251,163,239,193,183,
- 94,237, 92,121,249, 11,159,251,236,169,179,235,255,248, 31,253,195, 34, 26, 29,238,110,255,214,175, 63,253,203, 95,122, 6, 0,
-128,165,148, 47,125,229,127, 91, 61,115,255, 23, 63,247,191, 62,242,196,131,253, 19,231,155, 50,221,187,113,245, 11,191,243,204,
- 7, 63,252,240,223,250,175,255,230, 91, 47,189,128,164,148, 27,183, 63,242,135,191,246,217,251,223,115,239,218,109,143, 50, 90,
- 15,175, 95,252,195,223,123,238,135, 63,245,254, 39,127,248, 39, 38,251,215,176,138,149,141,205, 77,191, 25,158, 58,187,126,242,
-252, 7,234, 50, 74, 71, 55, 76,215,123,224,145,187, 79,221,251,100,124,120, 37,141,162,167,191,248, 2,134, 16,186,174,125,238,
-225,143, 54, 69, 68,171, 20, 0,168, 96, 13, 2, 36, 57,141, 39,163,195,253,241, 97,148, 33, 0,192,195, 31,250,161, 38,159,113,
- 82,125,251, 43, 95,129,138, 34, 57, 91, 58,253,192,222,229, 23, 9,161,191,242,175,158,249,153,159,254, 48, 2, 82, 82, 82,209,
-166,186,250,198,119, 46,191,117,243, 91, 79,191, 40,165,216,190,248,117, 70,217,231,127,245, 75, 31,127,252,252,131, 31,252, 17,
- 4, 0, 32,101, 66,203,248, 43, 95,124,225, 61, 79,158,255,201,207,252,117,172,234,164, 33,219,215,246,128,148, 63,240, 35, 31,
-209, 77, 15, 1, 0,104, 93,188,240,205,231,187, 61,239,222, 71,159, 16,156,206, 70,251,117, 89,125,238,247,158,251,212,143,127,
-112,233,204, 67, 55,223,252, 6, 2, 0, 84, 69,124,225,181, 43,247, 61,124, 7, 84,240,246,197,103, 73, 67,126,237, 87,191,252,
-241, 39,206,223,247,196, 71, 56,169, 47,188,244, 38,252,158,116,247,189, 92,112,161,184,171, 47, 95,126,233, 43,219,215,246, 30,
-121,223,163,154,233,214,197,252,139,191,241,229,171, 55, 71,159,255,234,183, 1, 0,240,202,107, 95,242,186,155, 47,127,229,255,
-204,210,226,125,159,248,116,157, 71,180, 78,127,245,127,250,101,203, 54,222,255,177,247,134, 75, 27,207,124,233,105,236,247, 79,
-188,245,220,239,102,105,254,161,255,232, 63, 41,179,153, 20,244, 55,126,233,215,188,192,249,209,191,252,147,118,184,118,241,185,
- 47,178,134,225,209,245,151,247,182, 14, 63,244, 99,159,174,138,185, 96,205,107,207,124,237,147,159,254, 4,169, 50,127,112,250,
-202, 75, 95, 98,132,125,241,249,139,202,131,167,150,223,251,161,167,116,203,101, 77,245,198,183,191,126,199, 3,247, 67, 41,156,
-112,121,120,253, 85,210,208,127,241, 47,255,239, 31,249,192,131,232,236,237,155,225,202, 57, 82,101,243,225,181,213,181, 37,193,
- 40, 68,184,204,102,148,210, 23,190,245,218,221,235,131, 31,248,177, 79,161, 51,247, 63,149,207,135,164, 46,126,235, 87,191,248,
-250, 43,239,236, 94,187,230,247, 55,179,249, 52,137,178, 23,223,222,254,196, 79,125,196, 27,156,194,101,114, 36, 56,123,249, 91,
-207,234,134,246,193,143,255,128,219,223,220,121,243, 89, 74,217,191,248,229, 47,126,250,147,239, 59,243,224, 71,162,253,203,136,
-214,121,149,207, 95,121,241,210,195,143,223, 99,249, 75,195,171, 47, 17, 66,159,125,250,229, 7, 79,175, 62,254, 3, 31, 69, 72,
-121,254,171, 95, 69, 77,149,191,244,236,107,157,190,127,238,158,251,164,160,121,146,205,167,201,119,222,185,249,177, 79,190,207,
-235,111,190,254,245,223,110,106, 2,254,162,116,135,255,232,127,253,230,231,254,249, 3,247,221, 61,222,125,251,237,215,222,137,
-102,137,162,192,222,160, 23,158, 60,183,236,163,166,169,154,170, 46,242,234,127,252,236,239,124,243,165,183,254,152, 27,189,231,
-161,123,255,241, 63,248, 27,103,238,125,146, 81,114,225, 91,191,255,213,223,254,191, 44,219,188,253,158, 51, 27,119, 62, 42, 24,
-163, 77,201,105,205,104, 61, 58, 56,124,225,155,175, 29, 77,146,135, 79,109,126,236, 61,247,218,142,249,243,255,221,191, 92,220,
- 72, 8,241,202,211,255,251,218, 29,143, 74,198, 94,255,198,239, 28,236,142, 92,207,126,232,241, 7, 86,111,123,140,147,138, 54,
- 21,231, 68, 10,182,115,245,205,103,190,252,114,154, 21, 27, 39,150, 30,251,192, 3, 39,206,221,105,119, 86, 5, 37,127,112,199,
-137, 44,205,139,188,198, 82,130,181,219, 31,217,122,245,203,151,223,186,142, 85,229,174,123,111, 59,117,223, 7,145,130,171,108,
- 46, 57,227,156,142,119,223,169,203,202,241,236,229,141,193,123, 78, 46,223,245,200, 19,118,176, 2, 33,218,187,244, 76, 26, 39,
-156,243,170,108,254,224,233,151,224,147, 79, 62,249,115, 63,246,104,153, 87,171,155, 75,183,221,255, 4, 21,200,208, 85,206,168,
- 20,172,206,102,111,124,231,229,123, 30,186, 79, 81,176, 16, 66, 10,142,176,102,122,125, 70,170,241,238,101, 70, 57, 33,244,226,
-171,151,191,242,202,229, 51,161,135, 1,132, 66,200,243, 15,221,189,126,231, 19,130, 19, 88,164,140,148,130,177,189,171, 23,116,
-211, 56,255,208,253, 16, 66, 33,184,144, 28,171, 70,119,253,174,189,119,158,105,202,154,115,145,165,197,239,255,238,183,134, 89,
-249,161,251,206, 61,246,129, 7, 48,144,224,161, 39,159,228,208, 40,147,177, 20, 92, 8, 78,202,228,197,111, 60,119,227,218,222,
- 3,143,220,121, 74,215, 52,221,196,154,237,133, 43, 77, 17,109,191,241, 53,198, 25,103,124,103,123,248,235,191,255,220,138,107,
-255,212, 15, 61,254,192, 99, 15,245, 79,220,135, 1,144,166,219,173,139,152, 53,141, 20, 34,153,238,127,253, 15,159, 63, 28, 78,
- 79,156, 92, 9, 59,126, 85, 84,186, 21,116,215,239, 60,184,242,124, 85, 20, 92, 8, 82, 55, 47, 62,123,225,155, 23,174,189,231,
-236,198, 19, 31,120,240,142,135,159,112,187, 27, 66, 48, 12, 0,200,231, 67, 41,165,148, 98,122,184,255,181, 63,124, 49,207,138,
- 59,239, 57,125,255, 35,119,110,220,249, 56, 41,115,136,208,141, 55,190,202, 40, 23,130, 39, 81,254,187,191,253,141,105, 89,127,
-252,241,123,223,243,196,189, 39,239,121, 66,119, 66, 90,231,175,126,237, 95, 97, 0, 0,169,115, 32,229,244,104,252,141, 47,127,
-167, 44,154, 59,207,159,190,239,225,187, 86, 78,223, 95, 23,113,147,207, 38,195, 61, 41, 37, 99,124,231,198,193,111,252,193, 11,
-171,158,253,227, 63,244,248,253,239,185,111,233,244,131, 24, 27,217,116,239,165,175,127, 57,141,243,246, 70,229,108, 18,125,235,
-171, 47,151, 69,115,231, 61,167,238,190,239, 92,111,253,246,186, 76,242,249, 48,154,205, 5,231,148,176, 87, 94,120,235,155, 23,
-174, 61,114,102,253,189, 79,221,127,231, 3, 15,121, 75,167, 33, 4,251,151,159,187,248,202,155,117, 77, 40,161,127,113,113,242,
- 47,228,218,220,220, 68,127,202,143, 79,110, 44,191,239,209,251,254,237, 2,247,173,203, 52,141, 55,191,243, 37, 78,155,183, 95,
-122,102,103,235,128, 52,164,211, 15, 9,229,143,125,224,241,166, 76,155,186,170,203,102, 62,141,127,230, 23,254,177,148,242,187,
- 79,244,175,221,232,226,203, 95, 11,130, 32,157,238,188,254,236,179,209, 60, 89, 94,235, 47,175, 14, 6,167,238,227, 36,103,180,
-102, 77,221, 20,201,219, 23,175,189,249,218,149,121, 94,125,245,181,183, 70,179,248,223,188,209, 43, 95,249,165,149,115,143, 66,
- 8,198,219,111, 92,120,233,149,178,168, 87,214, 7,103,207, 63, 96,135,235,180,138, 57,109, 56, 35,121, 52,122,233,217,215, 46,
-189,181, 13,164, 92, 89,237,250,161,251,183,255,135, 95,165,140, 47,110,244,233,159,250,212,223,252,217,143,109,220,253, 20, 0,
- 96,116,253,149, 11,223,121,149, 82,186,186,185,116,246,222,199, 76,175, 71,202, 68,112,202, 41,201,227,195,231,158,254,246,213,
-119,118, 12, 93, 59,117,219,250,233,115, 27, 75,235,235,182,191,116,112,253,205,157,173,131,151, 47,237,225, 95,248,107, 63,178,
-118,219, 99, 18,202,217,206,219, 23, 95,126,141, 49,182,126, 98,229,236,125,143,153,110,159,148, 49,144, 2, 8, 81,103,179, 23,
-191,249,157,107,151,119, 29,199,188,243,252,153,219,238, 62,211, 63,113, 23, 66,120,186,251,118,154, 22,134,169, 99, 21,227,245,
-219,222, 43, 32,200, 38,187, 23, 95,122,145, 52,100,109, 99,233,236,125,143, 1,108,210, 38, 19,130, 11,193,235, 34,122,253, 59,
-175, 92,189,180, 99, 24,250,189, 15,221,126,238,174, 51,131, 19,247, 73, 0,178,201, 78, 52,139, 16,130, 82,130,249, 52,193, 0,
-130, 38,155, 95,120,238, 27, 69, 86,246,151,187,167,238,126, 16, 27, 30, 2,156,211, 70, 74,193,234,226,234,197,139,103,110, 59,
-177,121,106,237,250, 59,219,103,110, 63,181,122,238,189,148, 84,172,206,167,135,123, 0, 0, 32,193,141, 43, 59,163,180,192,156,
-214, 23,191,253,229,104,158,134, 93,255,244, 29,119,133,203,103, 73,157,209,186,145,146,115, 90, 95,185,240,202,230,153, 77, 85,
-183,133,224, 15,134,193,254,206,104,229, 44,193, 88, 61,216,185, 36,165, 4, 64, 30, 29, 78, 95,184,116, 83,195, 26,190,250,242,
-211, 71,195,169,227, 90, 39,206,158,232,159, 56,207, 89, 77,235, 66, 10,206, 57,221,187,122,209,245, 28,195,242,165, 20, 0, 72,
-168,153,119, 62,248, 48,214,140,253,119,190,205, 24, 19, 82,102, 73,241,205,103, 47, 64, 8,151, 58, 62,186,121, 99, 31, 99,101,
-117, 99,105,229,204, 67, 82,138,166,136,165,224,130,211,232,240,122,211,144,254,234,134,132, 64, 74, 33,129, 68, 72,113,194,213,
-233,205, 11, 77, 93, 11, 33,104, 67, 95,126,225,237,113, 89,159,223, 24, 44,175,247, 49,101,124,117, 99,176,118,246,190, 52,142,
- 76, 83, 19,156,113,198,234,124, 54,159,204,151, 87, 87, 37,132, 80, 48, 41, 5,148, 32,232,159,204, 38, 59,121, 58,151, 66, 8,
- 46,110, 92,221,125,125,123,120,166,227,221,255,200,157,251, 57, 64, 97,232,173,159, 58,163, 89,190,101, 25,156, 81,193, 25,167,
-213,149,139,111, 26,134, 6,160, 4,156, 74, 46, 33,128,166,219,149, 64, 68, 71, 55, 5, 23, 66,136,249, 52,249,198,243,111,122,
-186,122,254,190, 51,103,239, 58,107, 58, 33, 90, 89, 31,132, 43,103,129, 20,180,169, 36,167,130,209,209,206,181,139,175, 93,185,
-114,105, 59, 79, 18, 70, 27, 0,129,110, 7, 78,119,125,124,243, 34,231, 92, 8, 81, 87,205,119,158,189,144, 19,122,223,109,155,
-183,223,125,186,183,126,167,162,234,184,191,126, 27,231,140,148,169, 20, 92, 10, 81,166,147, 55, 94,190, 20,207,179,160,227,189,
-242,210,213, 78,199, 58,125,118,253,228,210,169,201,206,197,166,174, 5, 23,156,241,235,151,119, 47,236, 31,221,181,220,189,227,
-252,233,245,179,119,155,110, 23, 0,128, 33,214,105,153, 72,206,164, 16,140, 54, 87,223,190,186,123,243,208,118,204,229,229,238,
-169,219, 54,155,154,158, 58,255,100,157, 71,121, 60, 21, 92,114, 33, 38,227,232,235,207, 95, 12, 52,237,174,243,103, 78,159, 59,
-233, 15, 78, 32,168,208,186,192, 8, 2, 66, 27, 41,133, 20, 34, 26,239, 95,126,235, 6,231,114,117, 99,176,113,106,117,253,246,
- 71, 57,163, 72, 81,102,195,107,130, 11,206, 89, 85, 54, 47, 62,123, 33, 39,236,169,251,206,158,185,125,179,183,113, 23, 86, 13,
- 70,155,217,104, 23, 55,197,156,115, 1,128, 96,164,186,122,105,123, 54, 77,187, 93,111,227,196,242, 96,227, 28, 68,138,106,104,
-227,237,215, 41, 33,130, 75,206,197,181,119,182, 47,238, 29,221,181,218,187,237,174, 83,107,167,239, 48,221, 46, 0,114,186,243,
-102, 22,231,152, 51, 34,132,144, 82,206,142,198, 91,215,246,177,130, 86,214,251, 43,235, 75,150, 63,104,202,132,147, 42, 79, 98,
-206,133,224, 98,122, 52,251,198,243,111,117, 12,237,174,123, 78,159, 60,187,225, 15, 54, 33, 84,234, 60,186,250,214,219,140,115,
- 36, 88,195, 41, 33,117,113,237,242, 78, 18,231, 65,199, 93, 89,235, 7,131, 77, 90, 23,170,110,205,134, 55, 24, 99,130,139,178,
-168, 94,120,246, 98, 78,217,249,219, 79,156, 57,183,209,223,184, 83, 81, 77, 33,200,246, 91,223,142,231,169, 20, 18, 51, 74,133,
- 20,179,201,108,103,235, 64,193,202,210, 74,183, 55,232,234,166, 71,105,157, 13,247,234,186,225, 66,114,202,174,190,115,243,205,
-253,241,221,171,189,219,238, 60,185,122,234,180,233,118,161,148,179,225,181,189,173, 3,198,184,144, 2,113, 70,155,186,217,186,
-186, 23,199, 69, 16, 56,131,229,174,215, 93,106,234, 2, 33, 20,207, 38,156,113,193,248,124, 18, 63,243,157,119, 66, 67,187,227,
-174, 83,155,167, 87,188,254, 73,128,148,186, 76,174, 94,120,163, 44, 27,193,133, 20, 18,124, 95,229,181,141,141, 13, 4,190,159,
- 46, 8, 33,254,222,223,253,225,247, 63,250, 87,126,250, 19,247,159,191, 67,210,114, 58, 58, 24, 31, 78,162,121,154,167,101, 83,
- 19, 33,196,239,125,235,213,215,175,221,108,223,249,139,255,213,223, 56,127,251,186,170,160, 40,206, 47, 93,217,121,250,185,215,
-159,123,229,237,239,245, 76, 79, 61,245,212, 51,207, 60,243, 39,253,248,239,252,194,207,125,230,175,254, 12, 0, 16, 2, 88, 23,
-243,195,237,183, 71, 7,147,100,158,214,117,131, 32,178, 28,195,245, 29, 85,197,142,107, 5, 75, 27, 65,119,169,105,147, 32, 99,
-130,211,246, 5,165,164,200,203,233, 81,116, 52,156,204,167,105, 89,214, 95,125,253,157,183,183,247,254,164, 74,228,143,145, 80,
-183, 19,220,115,231,185,207,127,238,179,109,129, 32, 56,139, 70,215, 15,110, 92,153, 28, 69, 69, 94, 10, 41, 13, 93, 95, 90,235,
-117,186,129,223, 93,182,252, 62,210,108, 40, 24,163, 21,231, 84,193, 42,132, 16, 66,133, 35,196,104, 51,159, 70,187,219, 7,195,
-221,241,124,158,150,132, 34, 8,177,130, 62,116,223,237, 31,125,232,174,207,126,241, 91,121, 85,255,137,253,140,174,107, 47,126,
-253, 55, 73, 58,132,216,222,184,237, 33, 32, 37,128,144,209,122,178,251,214,254,214,141,249, 52,105, 42, 2, 16,240,124, 39,236,
-249,157, 94,199,239,159,176,252, 37,164, 96, 70, 74, 78, 27, 33, 69, 43, 69, 9, 16,128,168, 46,231,163,253,131,155,215, 15,134,
-123,227, 52, 45, 24, 23,134,174,174, 45,117,252,208, 11, 58,174,227, 89,182,109,253,165, 79,190,207, 48,205, 6,232,156, 84,162,
- 41,247,247,142,190,244,205, 87, 94,186, 58,196, 66,136,203, 47,127, 33,157,237,211,124,118,226,238,247, 3, 8, 1, 0,156, 54,
-211,221, 75,187, 55, 46,207, 39, 73,211, 16,132, 20, 55,176,195,142,215, 29,244,195,149,115,150,215,231, 66, 8, 90,211, 42, 19,
- 82, 72, 41,129, 20, 0, 72, 41,120,157,207, 71,251,187,215,223,217, 29,238, 31,101, 89, 37,132, 52, 77,189,215,247,251,203,221,
- 78,223, 15, 59,190,227,251,150,215,215, 12, 23, 0,200,121, 51,217,187, 18,231,105, 81,212,186,166,254,224,251, 31, 94, 89, 27,
- 97, 0, 64, 30, 31,157,184,251,253, 82, 2, 0,164,228, 60, 58,218,218,189,114, 97,114, 52,175,202, 6, 66,224,184,118,216,241,
-122,203, 75,193,202, 89, 59, 88,170,139, 66,112,202, 73, 37, 56, 7, 64, 0,201,129, 20,130,243,186,136,198,251, 59,215,175,236,
-238,223, 28, 37,113, 46,164,176,109,115,105,165, 51, 88,233, 5,161,211, 95, 30,248,253, 13,211,237, 1,132, 4, 99, 16,193,249,
-193,149,104, 58,174,203,134,115,129,177, 2,128,202, 40, 99,148, 97, 41,193,198, 29,143, 75, 41,165,148,101, 50,222,187,242,202,
-225,254,184,200, 75, 41,164,105,233, 65,232,245,150,123,157,149,115, 78,103, 53,141,102, 64, 8, 8, 88, 91,163, 72, 41,218,156,
- 67,202,116, 54,218,137,163, 4, 0,168, 40,168,105, 26,195,212,252,208, 89, 90,233,173,159, 88,238, 45, 15,188,222,166,233,245,
- 32, 84, 24,169, 85,213, 72,163,155,243,163,155, 85, 89, 51,198, 32,132, 72, 65,146,177, 36,206,183,175,238,237, 14, 35, 12, 32,
- 0, 82,210, 42, 63,220,122,109,255,230,110, 60,207, 24, 99,154,166,122,190,211,237,119,186,107, 39,253,254, 73,168,168,138,162,
- 90,182, 85, 23, 49,144, 66, 8,209,126,229,180, 78, 38,123,123, 55,247, 12, 83, 95, 90, 25, 40, 88, 93,219, 92,127,224,189,247,
-113, 70,227, 89, 12, 32,220, 56,115,167,215,223, 68,138, 70,234, 76, 55, 77, 70,138,163, 27,175,228,105,194, 24,149, 82, 66, 0,
- 36,144,117, 89,239,239, 30,189,245,214,246,126, 94,114,164, 98, 8, 64, 52,188,122,243,242,197,201, 56,170,170, 90, 65,200,243,
-157, 78,207,239, 45,175,133, 43,103, 12,183, 91,229,153, 6, 97,149, 37,130, 11, 0,132, 20, 66, 74, 33, 56, 43,211,201,193,205,
-237,104,154,156,190,237,132,229,133, 16, 41, 0, 0, 41,132, 2, 36,198,250, 96,205, 70, 16, 9, 78, 47, 60,251,133,251,159,250,
-164,170,155,179,131,119,210,217,144, 54,132, 11, 1, 36, 4, 82,112, 38,226, 89,122,229,237,237,139, 91,195, 82,112, 75, 81, 52,
- 93,199, 0,192,183, 94,126, 33,137,115, 46,132, 97,104, 65,232,245, 6,221,206,218, 89,183,187, 94, 87,165,228, 12, 73,218,148,
-149, 4, 18,136, 86, 71,156,214,197,236,240,230,206,214, 65,127,169,115,247,131,247, 42,170, 6, 0,132, 0, 72,201, 1,144, 64,
- 2,128, 32,130, 10,214, 76,205,244,239,127,255, 39,170,108,150,140,110, 84,101, 46,184, 16,178,213,179,168,202,122,184, 55,190,
-248,198,181, 27,243, 20, 66,184,106,153, 39,214,250,177, 84, 48,128, 96, 62, 75,145,130, 60,223,233,246,130,222,202,106,176,124,
-198,176,195,166, 42, 84, 5, 85,217, 92, 74, 1,100,235, 76, 66,112, 90,198, 71, 7,187,187, 82,130,219,239, 62,167,154, 54, 82,
- 48, 60, 62, 44, 16, 92, 72, 9, 0, 64, 72, 81, 52, 51, 88, 58, 45,133,136, 14,174,228,241,132, 49, 42,132,104,159,136, 49,158,
- 68,217,245,203, 55, 95,191,180, 51,167,212, 65,232,100, 63, 60,113,122,229,196,233,213, 75, 59, 51, 12, 0, 48, 12,221, 11,156,
-222,160,211, 93, 57,229,116,215,234,170,226,140, 10, 86,115,193,164,148,173,142,128, 20,164, 41,230,163,189,233,209, 44,232,120,
-186,161, 43,170, 10, 33,144, 66, 0, 0, 4,144, 80, 74, 1, 33, 4, 16, 41,216,244,122, 94,111, 61,157,236, 37,147,155,117, 89,
- 74, 33,132, 20,173,120,154,154, 28, 29, 78,222,124,253,218,165,131, 9,147,114,213, 54, 79,109, 12, 78,156, 94, 61,113,102,189,
-211,239,239,229, 42, 6, 18, 12, 86,186,221, 65, 47, 92, 57, 99, 56, 29,210, 52, 42,134, 85, 54, 5, 82,130,214,143,164, 20,130,
-215,217,236,224,230,206,141,171,187, 85, 89,159,187,243, 68,127,169,219,118, 21, 8, 97,136, 16, 4, 0, 32, 5, 35,140, 53,195,
-237,110, 0, 0,198, 55, 47, 20,241,164, 45,130,218,167, 18, 92,228, 89,181,179,189,255,218,171,215,246,178, 92, 87,148,219,122,
-193,169, 83,171,235,167, 86, 86,215, 7,253,181, 51,118,103, 69,187, 52,199, 0,200,213,205, 13,167,119, 66, 8, 32, 24, 19,164,
- 96,130, 75, 41,128,148,160, 85, 55, 35,233,236,112,251,218,206,214,181,189,233, 36,134, 0,170,154,186,191, 31,217,150,182,186,
-222, 13,187,161, 97,217,138,102,171,134,131, 53, 83,183,188,186,136,146,241,205,186, 44,164,224, 66,200,182,254,163,148,197,179,
-228,202,165,237, 87, 47,237,164,132,118, 12,237,204, 90,255,228,153,213,181,205,229,229,245,149, 96,249,140,229,245, 20,172, 67,
-164, 96, 0,128,219, 63, 89, 22,133,105, 89,117, 62,109, 3, 18,144,242,248, 48,229,116,116,112,253,242,206,206,246, 48,141, 11,
- 8,161, 31,216,166,169,119,250, 94,150, 86, 87,175, 12, 1, 56,116,108,237,212,153,213,179, 15, 60,133,176,150, 28,109,231,209,
-136, 18, 42,229,194,168,132, 20,117,213, 28, 29,206,222,124,253,202,219,251, 19, 33,193,166,239,156, 62,185,188,121,122,117,109,
- 99,105,176,182,233,245, 79,232,118,128,148,214, 73, 57, 6, 0,112, 70, 85,140,154, 34, 94, 52,220,199,217,160, 46,147,209,193,
-225,245,119,118, 14,246,142,138,162,214, 52,220,237,250,131,213,238,202,106,127,176,186,228,247, 55, 12,167, 3, 21,204, 73,173,
-219, 65, 83,196,179,131,203, 85,150,112, 33,132, 16, 64, 0, 33, 5,231, 60, 79,203,157,173,131,215, 94,191,182,151,230,134,162,
-156, 27,132, 39, 79,175,110,158, 92, 89,217, 24,116, 87, 79,187,225, 26, 54,109,132, 20, 41, 68, 83, 38,121,116,136, 1, 0,172,
- 41, 4, 39, 66, 2,120, 44, 28, 32, 68, 85,196,195,221,195,235,151,111, 14, 15,166, 77, 67, 77, 83,239,245,131,229,213,222,242,
- 90,111,176,186,230, 15, 78,234,118,192, 72,195, 41,209, 76, 55,155,236, 38,211,221,166,170, 91, 1,183,206, 77, 9,155,207,146,
-171,111,111,191,126,121, 39, 37, 52, 52,180,179,235,131, 19,167, 87,215, 55,151,151,214,150, 58, 43,103, 44,127,128, 53, 3, 64,
- 36, 57, 47,179,233,193,181,215,102,227, 49, 6, 0,112, 90, 46,158, 9, 2,208,154,112,145, 30,236, 28, 94,187,178,115,116, 56,
- 35,132,217,182,209, 31,132, 43,107,253,165,213,222, 96,117,205,237,109,170,186, 93, 23,177,130,117, 5,171,243,131,203,121, 52,
-166,148,181, 33, 83, 2,217,246, 93,163,225,180,245, 38, 41,229, 9,223, 61,117,106,121,243,228,202,202,250, 96,105,109,205, 27,
-156, 52,156,142,130, 53, 0, 0,167,164,136,134, 59, 87, 94, 31,237, 79,234,138, 96, 0, 0,163, 68, 10, 41,193,194,116,234, 34,
- 63,216, 61,186,126,101,231,104, 52,167,132, 57,174,209, 31,116,150,215,250,203,171,189,254,234,154,211, 89, 67, 88, 43,179,185,
-110, 58,156, 53,243,131, 27, 69,154,112,198, 91,217, 10, 41, 5, 23, 89, 90,236,108, 29,188,254,198,245,131, 44, 55, 20,124,122,
- 16,158, 60,189,178,126, 98,121,101,117,208, 91,221,116, 58,235,154,229, 34,132,165, 20,156, 52,209,232,250,206,213, 75,211,163,
-168,110,136, 20,178,181, 33, 34,219,243, 8, 94, 85,229,112,119,124,253,234,238,228,104, 78, 8,115, 28,179, 55, 8,151,215,122,
- 75, 43,221,238,210,178,237, 47, 67,168, 84,121,164,155,110, 83, 38,241,120,187,204, 75, 33,218, 39,145, 66, 8, 74, 88, 52, 79,
-174, 92,186,249,250,149,221,156,208,142,161,159, 93,239,183,246,187,180,218, 15,151, 79, 89,193, 64,213,108, 0,161, 16,156, 86,
-217,120,231,173,221,173,157, 56, 74, 40,229,109, 99,220,170,140,180,186,175,171,230,112,255,232,250,213,189,241,104, 78, 41,179,
-109,163,215, 15,150, 87,122,253,165,110,103,208,183,131, 1,128,176, 41, 34,213,244,234,108, 22, 79,246,234,162,106,147, 65,235,
-154, 77,221, 28, 29,206,222,186,112,253,210,193, 68, 72,185,233,187,167, 79, 46,111,156, 92, 89, 89,239,247, 87,150,252,193, 9,
-195,238, 98, 77, 7, 0, 8, 70,171,108, 58,188,126, 97,184, 63,206,211,130,115,206, 89, 27, 35, 36,134, 16,126,229,185,183, 36,
- 0,156,242, 60, 43,230,211, 36,207, 75,198,132,166, 97, 34, 16, 43,104,122,152,236,101, 84,223,203,145,178,199, 25, 81, 84,141,
-147,166, 46, 19, 74,152, 4,199,122,150,146, 81,158, 38,249,104, 52,155, 21, 53, 82,244,208,210,213,208, 77, 16, 22, 81, 57,101,
-115,125,204, 21, 45,106, 67,168, 16,156,148,105, 50, 27,231, 89, 73, 41,107, 35, 21,144, 64, 8, 49, 73,170,239, 51,188,177,237,
-205,190,127, 14,243,212, 83, 79, 33, 8,225,247,149,128,190,191, 58,215, 63,158,214,249, 94, 46, 69, 81,222,247,232,121,203, 52,
-158,253,206,197, 44, 47,255, 29, 28,200, 52,244,191,247, 95,124,230,209,135,239, 95, 91,238, 36,179,225,248, 96, 52, 29, 71,105,
-156, 63,126,251, 73, 70,232,193, 36,250,236,239,125,189,125,231, 39,127,240, 3, 63,253,137, 39, 7, 29,151, 54,116,239,112,242,
-242, 27, 87,126,231, 75,207, 79,163,244,123,109,165, 55, 55, 55,119,119,119,255,148,119, 60,254,232,131,191,242,191,252,247,109,
- 93, 90,166,147,209,238,245,241,225, 52,158,167, 85,217,112,206, 33,128,166,109,120,161, 35,165,252,226,243,151,255,155,191,251,
-215,203,116,198, 56, 21,140, 49, 70, 25,227,140, 80, 66,104, 93,145,203,215,118,254,249,255,241,197,209, 52,254,211,141,250,207,
-144,208,205,119,158, 7, 0, 74, 8, 5, 35,209,225,245,131,237,155,211, 73, 84,100, 5, 99,194,178, 12, 47,116, 52, 93, 51, 45,
-195,243,157,149,179, 15, 62,242,254, 15, 18, 82, 33,172,169, 8,113,164, 64, 4, 17, 98, 82,136, 38, 43, 38,163, 25,203,155,159,
-249,208, 99,140,243,127,250,219, 95,249,243,168,236,231, 62,243, 87,254,238,223,254,121, 9, 32, 0,146,213,213,120,231,173,131,
-221,189,104,154,212, 85, 3, 33,234,246,220,160,235,217,182,101,251,158,110,117,131,193,122, 83,198, 0,200,182,192, 18, 28, 34,
- 0,164, 16, 53,173,102,147,120,239,230,240,104, 56, 75,210,178,162, 76, 8,241,233, 15, 63,254,249,175, 61,255,111,113,160,219,
-207,172,255,253,255,242,239,124,224,253,143, 67,132,160, 4, 77, 25, 31, 94,127, 99,184,127, 24, 71, 25,105, 40,214, 84,215,181,
-186,253, 48,236,117,157,112, 25, 27,158, 97, 57, 77,153, 0, 0, 17, 68, 18, 33, 40, 21, 36,165, 96,164, 44,242,195,189,241,206,
-214,112, 60,154,165, 69,205,133,208, 20,164, 25,170,174,169,127,249, 7,158,252,220,211,207,253,217, 7,250,131,223,252,159, 29,
- 84,157,184,231, 41, 85, 55, 0, 0, 82,202, 50,155, 12,175,191, 62,218,159,164, 73,198, 40, 51, 12,205, 13, 28,223,119,123, 43,
- 43, 94,111, 19, 40,134,174,107,164,202,164,148, 80, 74, 9, 17, 4, 8, 66,193, 56,205,226,104,127,103,184,115,227, 96, 50,142,
-139,170, 1, 82,186,166,238, 7,142,174,107,166,109,156, 54,180, 78, 63,248,167,159,255,194,159,120,160,127,242,139,255,224, 67,
-143,221,149, 76, 15, 78,156,255, 32,198, 90,219, 83,150,233,228,224,234,171,163,131, 73,150, 22,156, 9,221,208,252,192,237,244,
-194,176,191,236,246, 54, 5,196,134,174,147, 42, 3, 64, 66, 0, 36,132, 64, 2, 0, 32,167, 36,157, 79,118,182, 14,118,183,134,
-211, 73, 84,213, 4, 35,104,219, 86,208,241,252,192,246, 2,215,113, 45,195, 50,238, 60,127,246,199,126,252,163, 37,131,152,231,
-179,113,116,253,198,222,223,255,103,191, 14, 0,128,167, 79,159,254,194,111,253, 82,157, 28, 84,233,108,227,238, 15,168,154, 6,
- 36, 0, 64, 22,241,209,222,149, 87,143,134,227, 44, 43, 4,151,154,174,122,158,221, 29,116, 58,203,155, 94,111,147, 9,160,235,
- 58,169, 50, 41,120, 75,111, 74, 33,132, 96,180, 41,226,201,112,251,218,238,238,141,131,233, 52,169, 27,162, 40, 74,224,219,157,
-158,223,118, 90,158,239,216,158,107,121, 61,172,154, 8, 43,201,120,247,104, 56, 74,162,172, 42,235,186,108,126,251,197,235,248,
-231,127,238,103,155,120,159,148,201,250, 93, 79,105,154, 46,161, 4, 64,150,201,244,224,218,107, 71,195,113,158,149, 82, 72,221,
-208, 60,223, 14,123, 65,103,229,132,223, 63,201,152, 48, 12,157, 84,217,162, 57,105,243, 61, 16,156,212,233,108,180,187,181,191,
-187, 53,156, 78, 19, 66,168,138,177,239,219, 75,107,189, 32,244,250, 75,161,235,123,182,215, 53,221, 46, 68, 10,194,106, 54,221,
-137,231, 17, 33, 20, 41, 72,213, 84, 41,165, 4, 0, 55, 69, 76,155,114,229,182,199,116,221, 4, 0, 64, 9,235, 34, 58,188,241,
-250,209,112, 92,228,165, 16, 82,215, 53,207,119, 58,253,176,179,114,210,235,109, 50, 46, 76,203,106,202,180, 61, 77,219,188, 1,
- 32, 57,105,210,249,225,222,214,254,206,214,193,108,146, 16, 66, 85, 21, 7,161, 59, 88,233,118,251,225, 96,185,227,119,122,150,
-191,164,219,190, 96, 84,193, 90, 17, 13,227,233,184,169, 27, 32, 1, 86, 20,129,133,224, 8, 0,128, 37,103,157,245,187,117,211,
-106,169, 34, 82,167,135, 55,222, 24, 29, 28,101,105,201,185,212, 52,236,250,118,167, 31,116, 86, 78,250,131, 77,198,128,101, 59,
-237,105, 22, 85,153,144, 64, 74, 78,155, 60, 58,220,191,121,176,179, 61,156,141,147,134, 80, 85,197,157,174,183,180,218,239,244,
-252,222,160,211, 25, 44,219,157, 85,205,244, 88, 83,171,186, 85,165,147,104,114, 80, 87, 13,144, 18, 33, 40, 16,132, 16, 52, 53,
-133, 0, 96, 43, 88,182,253, 46,144, 16, 64,192, 72, 57,190,121,113,180, 55, 76,227,156,115,174,170,170,227,217, 97, 39,232, 44,
-111,250,253, 77,164,232,166,134, 73,149, 9,206,142, 59, 73, 33,128,224,140, 20,241,209,112,255,240, 96,239,104, 62, 77,235,134,
- 96,140, 92,207, 26, 44,119,251, 75, 97,167, 23,118, 6, 43, 86,176,100, 88, 62,107,106,205,176,154, 50,142,198, 59,117, 85, 73,
- 41, 33,132,109,185,209,212,100, 54,142, 0, 0, 24,171, 26,148, 82, 66, 40, 72, 51,221,187, 52,220,217, 75,146,140, 81,134,177,
- 98,187,102,216,241, 58,203,107, 94,239,132,170, 59, 82,114, 90, 23,130,145, 22,123, 0,173,202, 24, 45,147,241,100,116,132, 85,
-101,253,196,114,150, 20,140, 49,211, 52,186,253,160,211, 11,250,203,221,160,191,238,118, 86, 84,211,165, 77,169, 26, 22, 37,117,
-124,180, 85,151,165,224, 18, 66,216, 34,136,148,208,217, 36,190,185, 55, 1,160,197,169, 33,148,156, 70,163,107,195,155, 91,241,
- 60,165, 13, 83, 20,197,114,204, 32,244,194,193,138,215,219, 52,108,191,200, 83, 21, 99,206,154,133,166,128,144, 82, 8,193,170,
-124, 54, 62, 56,160,132,134, 29, 63, 8,188,229,181,193,225,193,116,119,107,127,176,220,233,246,131,160,183,226,117,215, 53,211,
-165,164,194,170, 33,165, 76,199, 91,101,150,113,198, 1, 88,176,192,140,241,120,158,238,238, 30, 29,230, 5, 80,108, 44, 37, 16,
-130,101,211,189,195,237,171,209, 52,105,106, 2, 17, 52, 45,195, 15,220, 78,175,231,247, 55, 13,167, 19,205,142, 92, 47, 32, 85,
-190, 64, 66,142,129,162,186,136, 39, 7,251,241, 60,221, 56,189,166,233,134,162, 96, 9,228,201,211,198,218,198, 96,127,239,200,
-239,118,156,112, 85,179, 60, 78, 27, 8,145,130,113,116,120,163, 72,231,140, 49,121,124, 28,193,121,158, 22,251,187, 71,187,243,
-148, 45, 2,163,148, 85, 58, 61,188,121,105, 54,137,171,170, 1, 64, 26,134,225, 5,118,216, 11,189,254, 9,211,235,167,241,212,
- 11, 58,164,200,164,224,224,184,247,146, 82,144, 42,155,143,246,199, 71,179,229,213,190,101,123, 8, 99, 8,144,144, 2, 33,140,
-176,122,250,236,137, 56,138, 13, 55,214, 76, 87, 8,174, 25,118, 54,221, 43,162, 17, 37, 20, 72, 0,164, 68, 0, 80, 33,202,178,
- 62,220,159,108, 13,167, 21,231, 42, 66, 13, 0,152,145,106,124,243,173,201,209,172,200, 43, 41,133,110,232,174,103,133,157,192,
-239,159,176,131, 37,218,212,126,208,109,202, 84, 8,118, 11,207,147, 82,176,166, 72, 38, 7,163,131,177,237, 88,157,254, 0, 97,
- 13, 32, 4,165, 68,178, 13,215, 16, 42,234, 96,117, 51,159, 13,129, 96,189,205, 59,203,100,156,206,246,155,186,106, 9, 91, 0,
-128,144,160,169,201,244, 40,218,190, 57,138,106,130, 16,236, 25,122,209, 72, 84, 36, 71, 71,135,227, 60, 45, 57,231, 88, 85,109,
-199,244, 67,207,239,175, 58,225, 50, 64,138,170,234,164,202, 57, 35, 45, 24,210,254,227,180,206,162,209,193,222, 8,171,202,198,
-169, 77,164,106, 16, 42,139, 8, 9,110, 33,122, 10, 86,245,254,250, 57,175,183, 70,202, 52,155,236, 54,101,222, 66, 51,237,123,
- 40,101,241, 60,189,121, 99,184,159,230, 18,128, 64, 83,151,186, 62, 0, 0,229,105,158, 70, 57,163, 84, 81, 20,203, 50,188,192,
- 9,122, 75, 78,103, 13,235, 22, 35, 53,103, 53,163,245, 2,213,147, 66, 72, 33, 57,173,178,217,104,239, 80, 8,177,126, 98, 13,
-107, 38, 2, 10,132, 45,152, 11,160,104,195, 25,104, 79,164,153, 14, 82,112, 54,221,173,138,132,115, 33, 5, 0, 18, 72, 9, 56,
-227, 89, 90,236,109,143,182,142,102, 76, 74, 11,227,101,223, 93, 89,237, 74, 0, 80, 93, 53, 77,211, 0, 8, 13, 83,115,125, 59,
-232,116,220,206,154,110,249,241,116,164, 40, 10,109,170, 69, 68,150,162,157, 4,170,203,120,122, 56, 44,242, 98,243,244,134,225,
-248, 8, 33,128,128, 92,160,238, 66, 2, 1, 32,128, 16, 33,172,106,166,167, 26, 78, 17, 29,150,233,140, 51, 6,110,225, 78, 92,
- 84,101, 61, 58,152, 92,223, 29,101,148, 97, 8,151, 93,107,105, 57, 92, 94,235, 3, 9, 16,163, 92, 74,160,105,170,227,218,126,
-232,185,221, 53,221,233, 20,105,236,133,221,150,126, 7, 66, 72,193,219,211,208,166,136,199,135,121, 86,174,108, 44,233,166,133,
- 16,146, 0, 44,128,226,133,201, 75, 4,160,162, 40,134, 29,152, 94,175,136, 71, 69, 60,162,164,121, 23,202, 16,162,105,154,217,
- 36,218,190,113, 48,206, 43, 4, 96,223, 50,150, 6,193,242,218,160, 55, 8, 1, 0, 72, 2,137, 49,182, 29,211, 11, 28,175,179,
-108,122,125, 9,164,229,122,180,202, 5,167, 64, 10, 41,120,155,178, 56,107,138,232, 40,141,179,160,227,155,150,133,160,210, 34,
- 74, 18, 0, 40, 23,186,128, 8, 66,132, 20,213,112,194,213, 58,143,242,217, 65, 83, 87,199,237, 63, 0, 18, 48,198,211, 56,223,
-217, 58,188, 57,141,185,148,190,142, 87,122,193,202, 90,127,105,181, 27,246,186, 0, 72,140, 16,180,108,195,245, 29,175,211,181,
-195,101,172, 25,164,174, 5,108, 90, 67, 6,199, 25, 75, 48, 86,103,243,201,209, 84, 81, 21, 5, 35, 8, 17,128, 0, 74, 1, 0,
-148, 64,182,192, 18, 0, 0, 66, 69, 81, 13,127,112,138,145, 42,159,237,215,101, 38,249, 45, 52, 66,114, 33,138,188, 28,238,141,
-183,118,143, 42,198, 45,140, 87, 66,111,176, 28, 46,173,244,130,110,224,245, 54, 0, 0, 72,197,216,113, 45, 63,240,220,112, 69,
- 51,221,116, 62, 81, 20,200, 72,117, 92,226,112, 41,133,224,188,169,210,217,248,104,116, 48,169,139, 26, 2, 8, 90, 91, 16, 92,
- 72, 46,133,132, 82, 0, 0, 16, 66, 10,214,156,112, 21, 42, 74, 54,219,171,178, 57,231,108,113, 22, 33,165,144,164, 34,211,113,
-180,181, 53,156, 86,141, 2,209,192,177,150,150, 58,253,229,110,216, 11,188,112,201,176, 3, 0, 0, 86,117,213,245,109, 39, 92,
- 54,156,176, 44,114,199, 11,142,211,167, 92,132, 65, 33, 24,169,178,249,228,112,239,232,104, 52, 21, 66,216,174,141, 85,140, 56,
- 65, 64,131, 16, 33,132, 36,128, 72, 81, 16,214, 76, 39,212, 45, 55,155, 31, 22,201,132, 30,163, 60,237,173, 40,161, 73,146,238,
-108, 13,247,102,169, 0, 96, 96,232,203,131,160,191,220,233,245, 67, 47, 12, 45,127,160,234,182, 4, 0,235,154,234, 6, 29,211,
-235, 9, 9, 76,203,166, 85, 46, 56, 59,230,191, 4,144, 82,112, 90,101,179,163,195,241,104, 56, 77,230, 57, 66, 8,171,218, 18,
- 99,157,110,128, 53,128,176, 42, 37, 82, 20, 5,169,134,170, 91,186, 29,214,121, 82, 68, 67, 82,151, 11,236, 84, 74, 32, 37, 99,
-188, 40,170,131,221,201,214,222,164,226,194, 81,149,229,174, 59, 88,238,244, 6, 97,216, 11,156,112, 69, 51, 61, 69,213, 0, 0,
- 88, 51,116,203, 31,168,154,217,212,149,100,148,211, 70,182, 8,234, 49, 39, 71,170,108, 54,153, 30,238, 79,230,179,180,174,155,
- 50,175,242,188, 44,111, 52, 89, 90, 46,175,245, 29,199, 70,134,174,104,166,170,219,170, 97, 75,193,243,104,191, 46,178, 54, 72,
-220,210, 87, 83, 55,211,163,249,246,214,193,172,174, 85, 4,151, 61,123,176,212,233, 14, 58,157,110,224,117,150, 13,167,131, 53,
- 3, 66, 4, 0,192,170, 97,105,166, 27,205,198,126,216, 37, 85,218, 34,168,224,216, 73, 25,169,179,249,100,180, 63,153,142,163,
-170,172,165, 4, 16, 33,172,192,154,240,253,253,249,108,154,118,186,110,183,231,123,129, 23, 44,157,196,184,147, 39,163, 42,157,
-115, 78, 23,135, 17, 82, 8, 73, 40, 77,230,217,206,214,225,238, 44, 5, 0,116, 77, 99,105, 16,246,150, 58,221,158,239,117,187,
-166, 63, 80,117, 27, 33,101,209,117, 96,213, 4, 0,250, 97,151,214,109,250, 4,239,214,166,156, 86,121, 52, 62,154, 29, 29,206,
-210,164,224, 92,152,166,102,219,134,237,152, 30, 86,226,184,164,140,207,102, 25,132,112,245,212, 57,183,187, 81,101,179, 50, 30,
- 83,218, 72, 46,165, 20, 45, 49,196, 25, 47,179,234, 96,111,188,181, 63,174, 56,119, 84,188,220,245,122, 75, 97,183, 31, 4,221,
-192, 9, 86, 52,211, 67, 88,133, 0, 74, 41, 0, 0, 88,193,106,153,167,134, 97, 8, 70,133,148, 16, 28,187,186, 20,180,206,163,
-217,124, 52,156, 70,243,148, 16,138,177, 98, 59,182, 23,184, 94,224,116,186,193,201, 51,184, 21,193,192, 53, 0, 0, 32, 0, 73,
- 68, 65, 84,169,106,211,113,123,235,103,109,127,137,209,170,136, 15,155, 42, 63, 70, 29, 91,142, 79,214,117, 51, 62,154,111,109,
- 29, 76,203, 26, 67,212, 42,171, 55, 8,195,174,231,134,203,134, 19, 98, 85, 71, 16, 74, 41, 89, 83, 66, 0,112, 89,100,150,109,
-147, 42, 95,240, 44, 82, 66, 32,165,148,156,145, 34,141, 39,163,217,116, 28, 87, 85, 13, 32, 48,109,221, 11,236, 32,116,253,192,
- 13,250, 43, 78,184,162, 26, 14, 99, 68, 81, 84, 0,100, 62, 63,172,243,152, 51,254,174,229, 8, 73, 9,141,163,108,103,123,184,
- 59, 75, 37,144, 93, 75, 91, 26,132,221, 65, 24,118,125, 63,236,153, 94, 79,213,173, 86, 89,130,179, 34, 25, 3, 0,144,105,217,
-164, 46,229,130,112,105,169, 49, 33, 56, 35, 85, 22, 77,226,241,104,158,165, 57, 99, 66,215, 53,215, 93,156,198, 11, 2,219, 31,
-232,118, 0, 32,144, 66,168,154, 81, 38,147, 42,157, 16, 66,110, 21,255, 82, 74,206,121,150, 21,195,221,163,173,189,113,195,185,
-173,226,149,174,223, 27,132,221,158, 31,132,190, 21, 44,233,166,135, 20, 21, 64,216, 86, 87,209,104, 11, 0,136, 91,106,236, 56,
- 3, 44,158,141,179, 38, 79,147,201,209, 60,154,167, 77, 67, 21, 5, 89,182,225, 5,142, 23, 56,110,224,216,126, 95, 51, 93, 41,
- 37,169, 74,221,114, 72,157, 21,241, 97, 83,151,173,142,142, 79, 35,170,170,153, 30,205,183,182,135,179,170,198, 8, 45,123, 78,
-127, 16,118,251, 65,208,241,221,112,201,112, 66, 69,211, 1,132, 82, 74, 78, 73, 54,223,159,140,166, 0, 0, 44, 56, 21,156, 75,
- 32,161, 92,152, 15,144,162, 41,139,249, 52,153, 78,162, 34,175,164,148,134,161,185,174,229,249,142,231, 59,142, 23,234,118, 8,
- 21, 76,235, 82,193, 24, 0, 80, 68,163, 42, 79,216,119, 43,139, 11, 74, 72, 18,165, 59, 91,135,123,179, 84, 0, 56, 48,245,165,
- 65,208, 27,132,157,174,239,133, 97,171, 44, 8, 23, 12, 80,157,207,103,135, 59, 89, 82, 0, 8,208, 34, 81, 75, 33, 36,147,156,
- 3,201, 25,169,243, 52,155,142,163, 36,206, 73,195, 20, 69,177,109,211,243,109,207,183, 29,207, 49,221, 46,214, 12,206, 8,103,
- 4,171, 70,157, 78,139,116, 66,201,194,207, 91,230,144, 49,158,167,213,254,238,120,107,127, 82, 51,238, 96,101,185,235,245, 6,
-157, 78, 47,240, 59,158, 19, 44,233,150,167, 96, 29, 64, 8,164,164, 77, 17, 31,109,207, 39, 73, 93,214, 0, 0, 44,133, 0,146,
- 47,218, 79, 41,165,224,117, 93,204,103,201,108, 22, 87,101, 13,128, 52,116,213,241, 76,199,115,108,215,182,188, 80, 51, 93, 9,
- 32,169,114, 77,183, 24,173,242,248,176,169,170, 91,170, 2, 2, 8, 41,235,170, 25, 31,205,182,183,134,179,170,193, 8, 46,123,
- 78,191,109, 66, 58,174, 27, 14,116, 39,196,154, 1, 32,132, 64,114, 78,202,104, 52, 25,141,242,188, 96,156,183, 69,190, 16,124,
-209,148,180,206,149,167,197,108, 18,165,113, 65, 8,197, 24, 91,182,225,184,182,227, 89,142,107, 27,118,128, 20,149,145, 26, 0,
-137, 20, 37,155, 29,214, 69,198, 25,107,179, 68,203,134,146,134,196,243,116,103,107,184, 23,181,158,101, 14,150,194, 94, 63, 12,
-187,158, 23,132,166,215, 83, 13, 27, 34, 5, 2, 33,185,104,138,100,118,184,157,204,211,166,166,109,149,135,165,148, 66, 48, 0,
- 1, 20, 64, 72,209, 84, 85, 60, 75,230,179,180, 44,106, 41,129,166,171,150, 99,186,174,237, 56,150,233,120, 88, 51,165, 20,180,
- 46, 52,203, 35,101, 82, 38, 19,210,144,118,244,131, 75,177,200, 89,105,121,176,119,180,125, 48,173, 25,119, 53,117,165,235,247,
-251, 65,216,245,189,192,179,131,129,102,122,138,162, 65, 9,133, 20,156, 84,201,100,103, 58,158,151,101,221,150,128,237,129,132,
- 20,162, 45, 40, 24,165, 89, 86,204,166,113,154,228,140, 49, 5, 43,166,101, 56,174,101,187,150,229,152,186,233, 41,138, 74,155,
- 18, 33, 4,129, 40,226,163,186, 42, 5,231, 92,138,182,179, 17, 66,212,101, 61, 30, 71, 91,219,135,179,170, 81, 17, 90,246,157,
-222, 82,208,233, 7, 65,232,122, 65,215,112, 66,172, 26, 16, 66, 9,132,224,180, 72,198,211,225,126,150,228,140,178, 54, 94, 44,
-250, 50,113,156, 49,154,186,137,103,233,124,154,180,226,209,117,213,118, 76,199,181, 45,199, 52, 44, 87,209, 45, 46, 56,167,141,
-102,121, 77, 17,151, 69,204, 40,227, 45,115,210,114, 83, 13,141,163,108,119,251,112, 63,202, 0, 0, 93,203, 24, 12,130, 94, 63,
- 12, 59,158, 23,248,166,215, 83,117, 27, 41, 88, 74, 0, 0, 39,101, 58, 31,109, 71,243,180,174,155, 69, 34, 22, 2, 0,128,133,
- 20,109, 10, 99,140, 23, 11,241, 20,132, 48, 85, 85, 76,211,112, 92,203,118, 12,203, 50,116,211, 69, 72, 97,164, 70, 10, 6,130,
-151,201,132, 84, 13,231,139,182, 70,112,201, 57, 47,242,242,240, 96,178,125, 48,105, 56,119, 84,117,185,235,117,251, 97,216,241,
-252,192,181,252,190,110,249, 10,214,164, 4, 0, 10, 70,234,108,186, 55, 61,154, 20,121,185,168,215,197, 66,101,168,237,254, 4,
- 23,164,110,226, 40,139,102, 73, 85,213, 0, 0, 77, 87,109,199,180, 29,211,178, 77,195,182,177,102, 72, 33, 56,105, 20,172,213,
- 69, 84, 21, 57,165,183,170, 65, 33, 4,111,106, 50,155, 38, 59, 55, 71,243,186,193, 16, 45,251,118,175, 31,118,187, 94, 16,186,
- 78, 16,154, 78, 71,209, 12, 8, 33,128, 82, 50, 90, 37,227,201,225,126, 26, 23,148, 48,177, 24,191,144, 66, 8, 8, 0,190,190,
- 55,105, 59,135,166, 38,243,121,146, 68, 89, 93, 81,136, 96, 89,137, 42, 42,103,124,186, 51,175,140,155,177,170,239, 11,193,129,
- 4, 72,193,117, 17, 55,117, 45,223,173,221, 1,231,162,169,155,233, 56, 62, 76,106,174,232,154,170, 84, 88, 31, 22, 52,223,143,
-246, 82, 98,238, 21,170,113,136, 20, 13, 66, 32, 37,224,180, 41,147,113, 28,197,117,213,220,154, 6,105,115,223, 98, 40, 46,138,
-162, 56,142,191,223,104,161,127,183,151,148, 50, 8,130, 48, 12, 49, 0, 32, 73,146,189,189,189,255, 32,148, 63, 58,228, 25,134,
- 33,250, 15,130,248,247,140,223,252,255, 9,223,250, 61, 50,162,129,239,134,129,119,234,196,218, 3,231,111, 63,177, 62, 56,119,
- 98, 89, 85,100, 93, 86,121, 94,214,101, 93, 85, 77, 83, 55,156,137,162,172,223,217, 62,120,246,213, 75,251,227, 89, 85,147, 63,
-201,224,187,161,103, 91,134,101,234, 8, 66,198,120, 81,213, 85, 77,146,172, 96,140,255,251, 33,160,187,239, 56,243,153,255,248,
-167, 63,246,225, 39, 5,151, 8, 43, 16, 66, 41, 56,163, 85,153,206,139, 44, 42,210, 98,180,191, 95, 23,117, 85, 18,210, 16, 66,
- 41,103,156, 83, 46,128, 16, 28,156, 90,234,157,254,225,167, 16,132,148,138,225, 56,250,252,211,207,101, 69, 5, 0,248,137, 31,
-253,216,127,254,215,126, 74,195, 66, 50,194, 57,227,188, 5, 98,196,241,213,118, 71,156, 49, 70, 40, 31, 29,205,191,241,194,133,
-175,189,112, 49,201,138,191,176, 72,244,212, 83, 79,221,188,121,243, 79,167,164,255,148,235,161, 7,238,249, 91,255,217,127,250,
-240, 67,247,170,170,182, 88,237,146, 64, 74, 65,235,178,202, 38, 89, 52,205,146, 52,207,202,170,172,155,138, 52,132, 48,202,133,
- 16, 64, 2, 69, 65, 88,197, 88, 85, 16,130, 72, 81, 76, 83, 51, 45,211, 52,117, 77, 87, 21,221,246,251,107,166,105,113, 86,211,
-166,108,201,184, 5, 22, 45,132,120,183, 82,225,139,246,145,115,198, 56, 37,180,105,104, 93,214, 85,217,212, 85,221,212, 36, 78,
-139,107, 59,195, 47,189,120, 49,254,115,201,107,115,115,243,228,201,147,127, 78, 11, 58,127,207, 29,191,248,223,254,189,123,238,
-190,131, 49,142, 16, 90,172,188, 73,201, 24,105,242, 40,159,143,146,104,154,165, 69,153, 87,117,213,144,134, 50,198,132,144, 16,
- 66,221,208,116, 93,213, 13,205, 48, 52, 85,215, 84, 21,171,154,170,170, 24,171,154,162,106,166, 55,112,195, 62,167, 13, 35, 21,
-167,149,224, 2, 33, 12, 32,146, 72, 17, 82, 0, 46, 4, 18, 80,112, 36,133, 20,156, 11,196, 25,147,140, 55, 13, 41,243, 42, 75,
-139, 52,206, 23,127,180, 38,132, 48, 66,153,165,168, 63,250,216,131, 0,130, 23,223,185,113,121,119,248,255,185,139,233,186,246,
-207,254,209, 63,252,248, 95,250,136, 4, 0, 34, 8, 0,196, 90, 75,208, 51, 70,202, 50, 25,167,179,195, 52, 74,242,172, 44,139,
-170,105, 8, 35,140,115, 1, 0, 80,176,162,171,216, 52, 13,199, 53, 13,203,208, 84, 85, 51,116,221, 48, 85,195, 86,117, 11, 41,
-134,102,121, 24, 99, 70, 42,214,148, 66,176,150,149,128, 8, 0, 9,128,132, 64, 64, 4, 17,128, 2,112, 46, 33,228,140, 8,206,
- 73, 93, 23, 69,149, 39,121, 28,101, 73,148,229, 73, 81,148,117,221, 16, 66, 57,227, 92, 72, 41, 0,132, 82, 42, 8, 73, 32, 31,
-187,243,204,163,119,156,121,250,213,183,134,179,232, 47, 82, 64,239,123,236,193, 79,253,224, 19,203, 29,167, 55, 88, 57,115,247,
-195,166,229,112, 33, 90,238, 15, 2, 0, 32,224,140,145, 42,201,163, 81, 58, 27,165,113, 90,228, 85, 93,213,164,166,140,243, 91,
- 38,163,105,170,102,104,134,169,155,166,110,217,134,229,250,186, 29,232,166,139, 53,139,113,169,235, 38,132,146,145,154, 54,185,
- 16, 2, 0,137, 32, 20,168,229,219, 17,148,176,133,153, 65,203,103, 72, 78,234,170,174,202, 60,205,147, 40,139,231,105, 26,231,
-121, 86, 86,101, 83, 55,148, 50,198,219, 22, 74, 81, 84,140, 84,140, 49, 86,212,246, 27, 4, 21, 69,249,171,235,253,183,183,246,
-127,231,155, 47,253,191, 18,208,163,143,220,255,153,159,253,201, 71,239,191,173,202,102,121, 26,235, 78,111,253,220, 3,120,193,
-226, 3, 5, 35, 0, 0, 16,146,115, 82, 23,113, 62, 59, 72,102, 71, 89,146, 23, 69,217, 84,132, 16,202,185,104, 9, 93, 77, 83,
-117, 67, 51, 76,189,253,106, 88,150,229,120,186, 29,234,150,167,168, 38, 23, 18,169,170, 9, 33, 37,149, 96, 20, 72,113, 28,193,
- 32,144,139, 23, 8, 32, 1, 4, 4, 72, 2,198, 89, 67,235,162,204,179, 44, 41,226, 40,141,102, 11,209,212, 53, 33,132, 82,206,
-129, 4, 8, 33, 29, 43,170,138,117, 93,181,108, 67, 55, 52,140,177,170, 98, 85, 87, 13, 67, 83,176,130, 20,116,199, 61,167,127,
-242, 83, 31,152,199,217,239, 62,253,194,206,112, 90, 55, 76, 85,149,126,215,239,248, 54,105,216,120, 22,237, 13, 39, 81, 90,180,
-197,244, 66, 64,237,171, 51,167, 79,252,202,103,255, 73, 63,180,202,116, 74,171, 44,153,238, 99,221, 61,251,224, 71,177,170,201,
-182, 11,129, 0, 2, 9,132,100,140,212, 69,148,207,246,227,233, 81,154,228, 85, 81,181,107,197,139,246, 14, 33,172, 42,186,174,
-234,134,110,217,166,229,152,166,229,232,182,111,216,129,102,186, 88, 51, 72, 67,177,102,168, 82, 48,210, 16, 78, 90, 28, 19,194,
- 91,204, 43, 0,139, 81, 13,185,128, 74, 89, 67,171,188,200,178, 52, 78,231,179, 36,154,165,121,154,231, 89, 89, 85,132, 80,198,
-133,104,233,126, 93, 83,117, 93, 53, 76,205,178, 12, 85,215,116, 67,179, 29,203,180,116, 77, 87,117, 93, 85, 53, 77, 85,177,166,
-105,170, 97, 98,205,130, 8, 63,249,193, 15, 65, 4, 41, 41,139,116,150, 37,121,153,151, 85, 89, 55, 53,169, 27, 74, 9,141,227,
-236, 15, 95,186, 34,165,132, 79, 62,249,228, 71, 63,252,190,159,249,137,143,147, 42,169,178, 57,109, 10,206,136,102,134, 75, 39,
-207, 99, 77,111,149,185,144,141, 20,156,209, 99,209,140,210, 36, 43,243,186,174, 27, 74, 91,132, 10, 32, 5,169, 24,171,186,106,
- 26,154, 97, 25,150,109, 90,142,107,184,161, 97,119,116,211, 83, 84,189,174,107,195, 48, 0, 16,140,212,130,179,150,197, 2,199,
-125,106, 11,255,221, 98,210,132, 96,156, 18, 82,229,101,158, 36, 81, 18, 77,147,249, 44, 78,227,162,200,203,170, 34,140,113,206,
- 57,128, 80, 65, 72,215, 85,211, 92, 40,195, 48, 53,195,208, 44,199, 50, 45, 93, 55,116, 93,215, 52, 93,215, 12, 75, 51, 28,172,
- 91, 72, 81,165,148, 8, 33, 0, 17,107,202, 50,157, 20, 73, 84, 20, 85, 83, 53, 13,161,140,114,198, 24,103,156, 49,193, 57,123,
-251,230,244,205,221, 25, 6, 0, 88,154,204,103,187,164, 46, 56, 35,138,106, 47,159,121, 68, 55,109,176, 96,190,160,108,199,152,
- 57, 37,101,154,205, 15,226,201, 48,141,147, 34,171,234,186,161,132,113, 46, 32, 4, 8, 41,170,170,168,186,106, 24,186,105, 25,
-150,109,152,142,103, 58,161,238,132,186,233, 41,170,209, 84, 21,194,194, 52, 77, 70, 42,193,105, 27,107, 90, 68, 30, 8, 9, 22,
- 11, 23, 11,142, 71, 8, 46, 88, 67,234,188,204,226, 52, 78,231,211,116, 62,141,227, 40, 43,242,178, 42, 27,198,184, 16, 2, 66,
-168,105,170,170,169,166,169,217,182,233,250,142,229, 24,134,161,219,142,105,217,150,110,106,154,110,104,186,165, 26,142,102,216,
- 8,107, 16,162,246,183, 16, 82, 24,171,171,116, 92, 36,179,178, 40,155,154, 80, 66,185, 16, 8, 34,172, 72, 0, 49,130, 8, 33,
-206, 57,108,231,222,219, 25,243,138, 53, 5, 68,120,112,250,188,101, 7, 18, 74, 32,143,131, 48, 4,146, 51, 90,231,121,116,152,
- 76,246,147,121,156,103,101, 85, 53,180,141, 53, 64,182,229, 76,235, 80,166,101,152,182, 97, 59,158,233,118, 13, 39,212, 76,175,
- 37, 0, 25, 37,166,109, 51, 82, 19, 82, 73, 33, 90, 51,105, 77, 6, 2, 41,129, 56,158,233, 21, 64,114,206, 8,173,243, 50, 79,
-210, 40,142,102,233,124, 26, 39, 81,150,101,101, 85,214,132,176,246, 73, 84, 21, 27,134,102,217,134,101,155,142,107, 89,142,105,
- 24, 90,139,237,153,182,173,155,142,102,186, 88,183,177,110, 42,138,218, 2,205, 16, 65, 77, 53, 24, 39, 85, 54, 43,146, 73,157,
-103,117,221, 80,202, 56, 23, 45,113, 46,145,128, 0, 41, 0, 0, 5, 8, 41, 36, 61, 70,168, 90, 26, 59, 88,189,203,246, 58,173,
-189,220,226,184,129,224,172,169,138,100,146, 78,118,227,249, 44, 75,139,186,172,155,134,114,198, 37,144, 16, 34,172, 98, 93, 83,
-117, 67, 51,109,211,178, 77,203,117, 77,167,107, 56,161,110,121,170,110, 53,117,221, 84,165, 97, 59,140, 52,164,202,165, 96,183,
-136, 37,120, 76, 92,139,133,164,132,148, 66, 48, 66,155,178, 46,162, 44, 78,163, 89, 50,159, 38,113,148,102, 73, 81, 85,117,211,
-180,250, 0, 42, 86,116, 93, 51, 77,221, 11, 28,215,119, 28,215,212,116,205, 48,117,219,181, 44,203,210, 45, 87,179,124,253,150,
- 55, 9,206, 25,129, 8,181, 68, 89, 83,196, 69,114, 84,102,113, 83, 55,148, 18,206,132,108,131, 38,132, 2, 65, 8, 16, 2,160,
-173, 67, 73, 77,242,172, 44,203, 26, 2,128,165, 4,126,127,211,241,187,242, 56,157, 2, 9, 37,144,130, 52, 85, 54, 75,167,123,
-241,244, 40, 75,243, 50,175,235,154, 48,198,164,144, 16, 65,172, 96, 77,195,250, 34,115, 91,182,235,152,110,215,112, 59,186,229,
-171,186, 5, 0, 72,227,185,235, 5, 82, 74, 90,101,156,177,118, 21, 99,177, 2,241, 46,255, 38, 23,156, 58,167,180, 41,155, 50,
- 41,210, 56, 79,139,178,168,242,188,170,170,186, 44,235,182,228,147, 18, 96,172,168, 42, 54, 12,221,180,117,199,177,252,142,231,
-122,150,105, 25,150, 99,218,142,123, 92, 55,152, 88, 51, 21,172,181, 43,218, 0, 66,213,176, 1, 0,164,202,170,116, 92,166,179,
-186, 44, 41, 89,148, 32,139,208, 42,129,132,173,171, 0,198, 57,105, 88,158, 21,241, 60,141,102,105,146,150,183,210,252, 34,103,
- 64, 40,164, 0,130, 19, 82, 38,217,124, 24, 79,134,105,156,182,225,134,209, 54,220, 64,165,205,163,134,102, 90,186,105,153,182,
-107, 91,110,104,186, 61,221,246, 85,221, 65, 88, 45,178, 88, 55, 44, 55,232,112, 82,115, 70, 90,150,255, 22,217, 10,165, 20,199,
-107, 61, 0, 72,193, 25,163, 21, 41,211, 60,141,179, 36,163, 13,213,116,181,211, 15,123, 75, 93, 0, 36, 99, 34,142,210,131,221,
-201,124, 50,111, 25, 22,211, 50,108,215,116, 92,219,241,108,207,179,109,207, 51,157,176,157,152, 80,117, 19, 41,154, 16,156,209,
- 90, 10,161,234, 38, 82, 48, 35, 85,149, 78,203,116, 82,151, 89, 83, 55,188, 21,141, 4,173,159, 64, 4,165,108,105,125, 73, 9,
- 45,203, 42,137,242,249, 36, 30, 79,147, 89, 89,165, 28, 2,168,181, 11,128,173,140,218, 49,151,162,140,143,146,201,254,108, 58,
-171,138,186, 42,107, 74, 40,231, 92, 2,128, 20,164,170, 88,211, 85,195,212, 77,203,176, 28,203,118,125,211,237, 25, 78,160, 25,
-158,162, 25,180,174,138, 44,241,194, 30,163, 53, 45,179,150,193,105, 39, 42,222,149,200, 98,138, 79, 74, 41, 56,109, 72,157,149,
-105,148, 70,113,150,150, 82, 74, 63,116, 45,219, 68,138, 2, 33,132, 8, 65, 0, 93,223,221,216, 92,105, 33,212,163,241,188, 72,
-203, 32,116, 28,207,118, 92,219,242, 58,150,211,213,109,191,117, 40, 32, 37,163, 53,103, 12,171,170, 98, 24,130,179, 42,159,151,
-241, 81,149,199,164,174, 24, 99,156, 47,150, 15,224,187,167, 1, 0, 72,198, 88, 93, 53,121, 90,206,103,241,248, 40, 26, 71,121,
-212, 52, 84, 74,129,212,119, 99,144, 20,130,145,186,206,231,217,116, 55,158, 78,210,164, 40,139,186,105, 8,103, 76, 8,137, 16,
-196, 88,209,116, 77, 55, 52,203,210, 45,219,178, 28,199,116,187,166,219,209, 90,159,130, 48,139,103,142,231,219,170, 79,170,156,
-115,210, 18,252, 82,182,171,111, 18, 72, 32, 97,235,243,237, 88, 4,101, 77, 81,229,113, 26,197,113,148,212, 85, 99,154, 70,111,
-169, 99, 90, 22, 84, 48,130, 8, 34,180, 88, 41,148, 64, 10,161, 74,161, 25,166,227,123, 66,240,166,170,147, 36, 79,179,218,239,
-219,186, 19,170,186, 5,145,194, 25, 21,180,129,138, 98, 88, 46,128,128, 84,121,149, 77,171,116, 90, 87, 57, 37,132, 51,126,107,
-106,106,225, 47, 45, 15, 38, 4,161,180,204,235, 36,202, 38, 71,243,163,113, 60,206,138,130,113, 1, 36, 4, 8, 73, 8, 96, 43,
- 32,206,154, 34, 78,103, 7,241,228, 32,141,210, 60,111, 83, 56, 21, 92, 64, 8,177,138, 85, 85,209, 13,221, 52, 13,211,214,109,
-219, 54,189,208,112, 58,134, 29,170,166,163, 40,106,145,197, 8, 41,158,223,161,164,226,172,145, 98, 65, 35,130, 69,230,190,229,
- 77, 18, 2,201, 57,227,164,106,170, 52, 75,162,100, 22,103, 89, 33, 5, 8,187,126,119,169,167,106, 6, 66, 10,108,165, 3,222,
-221, 87, 1, 8, 73, 41,161, 88,220, 80,213, 76,199,239, 64, 8,103,195,221,139, 47,191,186,121,230,212,202,198, 89,213,176,177,
-110, 33,140, 57,169,235,124, 94,102,211,166,136,105,211,180,229,210,177,143, 31,227,205, 0,182,139, 92, 77,211,228,105, 57,159,
-198, 71,163,249,104,154,204,234,134,112, 1, 16,192, 0,154, 24, 49,168, 16, 14, 48, 4,160, 46,162,201,238,219,209,116,154,165,
- 69, 89,212,132, 16,206,132,148,178, 45,252, 52, 93, 53, 44,221,180, 12,203, 50,109,215, 55,220,174,225, 4,186,233, 41,154, 41,
- 56,139,103, 99, 63,236,114, 70,155, 50, 21, 98,193,105, 66, 40,143, 83,184, 4,183, 86,176,132, 96,172,161,117, 94,166, 81, 28,
- 69, 73,148, 49,202, 12, 83,239, 45,117, 93, 63, 68, 88, 93,140,176,200,182,209,128,240,248,137, 32,128, 18, 10,136, 0,144, 16,
- 64, 8, 33, 68, 80, 65, 88, 93,218,236, 44,109,158,169,203,148,115, 98,234, 61, 0,100,147,205,203,108, 90,231,115, 82,151,140,
-182,224,145,252,174,207,216,185,181,203, 37, 72, 67,202,178, 73,162,116,122, 20,141, 70,243, 81,146,103,148,113, 41, 21, 8, 53,
-132, 92, 21, 7,150,145, 8,148,100, 4, 3, 0,243,120, 54, 58, 48,242,172,108,170,166,221, 80,131, 16, 96,220,230, 41,205,176,
- 12,219, 54, 45,199,177,188,208,116,186,154,229,171,134, 5,129,146, 70, 83,219,241,188, 32,164, 77,217, 6, 99,112,108, 48,237,
-108,238,241,194,146, 4, 82, 8,206, 40, 41,155, 34, 73,227, 40,154, 38, 85, 81,169,134,218, 95,238, 6,157,142,102,182, 83, 3,
-237,182,141,132, 0,181,180,104,235, 95,237, 99, 65, 0,193, 45,249, 32, 69, 65, 24, 97, 77,193,154,162, 26,150,215, 67, 88,231,
-164,170,243,168,202,166, 77,153, 82,210,112,206, 23,227,129,139,117, 70,112,188, 90, 38, 25,227, 77,221, 20, 89, 57,159, 38, 71,
-135,179,195, 73, 52, 45,234, 90, 8, 0,128, 10,161,165,226,192,208,124,199, 10, 66,135,103, 4,100, 4, 3, 0,202,162, 74,230,
- 89,211, 16,182,104,249,224,113, 48, 54, 76,219,176,109,203,242,124,211,237,154,118,168,154, 14, 86,205,166, 46,154,186,114,253,
-144, 83, 66, 72, 41, 4,147, 66, 44,158,231,214,185,142, 69, 35,165, 96,180,161, 85, 86,164, 81, 60, 79,146, 40,149, 82,118, 7,
- 29, 63,244,116,203, 86, 20, 13, 34, 4,225, 98,242,178, 21,133, 20, 16, 0,177, 24,159, 23,109,179, 35, 37, 0, 16, 66,132, 16,
- 68, 10,196,170,130, 53, 85,183,117,203,147, 82, 52, 85, 90,165,179,186,136, 73, 93,112,198,196, 49,155,121,139, 16,111, 77,135,
-115, 78, 8,171,203, 58,137,243,233,120,126, 56,156,141,162, 44,110, 8,151, 18, 66,104, 32,228,233,106,104,155,158,111, 7,129,
- 27,116,189,116, 24,203, 97,140, 1, 4,132,208,170,170,219, 44,142,177,162,105,170,110,106,134,105,216,182,105,187,182,225,118,
- 76,167,163, 91, 62,214, 45, 8,225,124,122, 24,116,122, 24,171,180, 41, 56, 37,114, 49, 20, 41,192,162, 54, 22, 18,220, 26, 56,
-151,146, 51, 74,202, 58,143,211, 56,206,210,156, 52,212,118,237, 78, 63, 48, 45, 27, 41,154,162, 96,208,146,137,176,157,231, 19,
- 2,182,222, 41,142, 5, 13, 22,245, 7, 88,248, 22, 66, 88, 81, 13,221, 14, 52,203, 71,138,202,154,162,202,102,117, 62,107,170,
-156,145,134,243, 99, 43, 62, 54,153,182, 95,226, 66,112,198, 73, 67,243,188,140,102,233,209,225,244,112, 52, 31,231, 85,201,152,
- 4, 0, 67,104,170,184, 99,234,129,107,251,129, 19,116, 92, 63,244,130,192,217, 79, 27, 32, 65,187, 27,201,133,248,174,166,193,
- 52, 44,203,176, 28,211,114, 92,203,237,233, 78,168, 25,142,162, 26, 77, 85, 16, 90,251, 97,143,145,134, 51, 34, 57,107,245, 4,
-143, 7, 67,142, 69, 35,219,105, 93, 70, 9,169,210, 50,139,146, 56, 35, 13, 81, 85,236,122,142,105,155,170,170, 35,164, 30,231,
- 41, 8, 96, 27,167,128,148, 0, 74,177, 24,125,129, 18,180, 9, 16, 44,198,189, 17, 82, 32,194,170, 97, 91,193,178,170,153,156,
-147, 42,157,212,217,172, 46, 99,218, 84,183, 12, 7,252,235,210, 57,158, 55, 97, 85,213,100,105, 62, 27,199,163,225,116, 56,141,
-231, 85, 67,133,132, 16, 24, 8,185,186,214,113, 12,223,119,130,208, 11, 58,110,208,241, 92,207,182, 29,203, 58,136, 1,144,120,
-241, 49, 40, 88, 81, 53,220, 46,159, 88,150,105, 57,150,233, 6,166,211,213, 45, 31,235, 54,128, 48,153, 79,188, 32, 84, 85,149,
-214,133,224, 84, 10,126, 28,101,110,233, 76,130,119,167, 68, 24,107,170,186,140,243, 36, 41,242, 10, 66,224,122, 54,198, 10,198,
-170,130, 20,132, 80,139, 15,182, 40, 71,251,203, 16, 30, 3, 28,112, 17, 52,224,187, 65, 89,129, 72, 81,176,102, 56,161,233,245,
- 17, 68,164, 74,171,108, 86, 23, 17,169,114, 74,137, 20,239,110,140, 2,249,238,185,164,148,156,241,166,161, 85, 81,197,243,116,
-124, 56, 63, 28,205, 70,113,158, 81,202,165,196, 16, 90, 42, 14, 77, 61,244,108, 47,112,194,142, 23,118,125, 63,116, 29,215, 50,
- 45,203,241,187,186, 57, 95,212, 65, 10, 86, 76, 75,211,244,214,112, 12,203,113, 77,183,163,219,161,110,186,138,102,144,166,174,
-171,210, 11, 66, 70, 27, 65, 27,177, 24,184, 90, 36,225,197, 72,182, 16,139, 71, 21,156, 51, 66,155,188, 76,227, 36, 74,211, 36,
- 23, 92,216,174,133, 80, 59,146, 42,219,209,127, 41,165, 0, 28, 66,180,248,148,146, 54,124, 9, 1, 91, 4,161, 29, 90,133, 80,
- 65, 8, 64,164, 96, 85, 53, 29,211,233,170,134,205, 41, 41,242,184,202,167,164, 76,105, 83,114,206, 91,124,238,187,162,222,226,
- 59, 33,218, 10,144,228,105, 49,159, 38,163,225,116,120, 52,159, 22, 85, 37, 4, 4, 64, 71,200,213,181,174, 99,250,254, 98, 54,
-204,239,184, 65,232,121,190, 99, 88,142,110,133,150,215, 81,180, 27,237,124, 7, 80, 85,108, 57,182,105, 26,182, 99, 90,174,111,
- 56, 29,221, 14, 84,221, 6, 16,166,209,204,241, 2,199,113, 72,157, 11, 70,191,107,191, 6,128,119, 77,166,157,133,106, 63, 92,
-163,108,202, 52,143,147,104,158, 68,179, 36, 77,114, 69, 65, 66, 10, 21, 43,150, 99, 74,137,164,224, 66, 32, 8, 36, 66, 10,144,
- 2, 64,180,200, 80,162,197,204,224,194,167, 80,187, 20,135, 21, 77, 55,172, 54,226, 40,164, 76,171,108, 94, 23,115, 82, 21,148,
- 54,146,139, 5, 72,210,170, 75, 44,108, 16, 72,201,185,160,116, 17,143, 39,163,249,225,225,244,112,154,196, 53, 33, 82, 40, 16,
- 26,138, 18,154,122,199,179,253,192,246, 67, 47, 8, 92, 55,112, 92,207,118, 3,215,118,187,134,237,107,166,167,234,166,162,104,
-178,181, 32, 77,215, 60,207, 54,109,203,114, 66,221, 13,117,211,199,154,217,212, 37, 33,141,235, 5,140,214,156, 53,178, 45,183,
-128,132,199, 62,181, 8, 56,139,246, 74, 10, 78,104, 83,214,121,146, 68,201,124, 22,207, 39,113, 18,231,101, 89, 35, 4,185,144,
-140,114,187,176, 92,207,178,108, 83, 74,169, 40,138, 68, 28, 34, 5, 34,212, 46,195, 1, 8,165,132, 16, 1, 4, 49, 68, 10, 66,
- 24, 41,170,162,233,186,229,169,186, 45,165,168,146, 73,149,207,234, 34,101,164, 98,148,222, 26,228, 56, 94,117, 63, 78,229,162,
-117, 43, 82, 22,117, 28,165, 71,195,233,112, 56, 27, 37,121, 78,153, 4, 82, 69,208, 81,213,142,109,134,190, 19,132,142, 31,186,
- 94,224,122,190,237,248,182,227,122,166, 27,234,118,168, 27,174,162,233, 24,107, 8, 31,227, 65,186,174, 58,190,103,216,129,225,
-116, 84,195, 65, 10, 78,230, 19,199, 15, 85, 85, 37,117,206, 25,249,174,196,112,236, 91,224,221, 15, 40,104,187,170,166,206,202,
- 52,141,163,100, 54,137,163,105, 18,199,121, 85, 86,164, 97,109,204, 1, 0, 20, 37,153,207, 51,203,212, 92,223,118, 92, 75, 55,
-116, 85, 85,145,162, 32,132,129, 2, 1, 68, 10,194, 16, 97,132, 85, 5,171, 80,193, 24,235, 88,183, 20,172, 51, 82, 85,217,172,
-201,163,166,206, 24,165,226,184, 50,190,229, 80,199,146, 18, 66, 72,206,120, 85, 53,121, 86,206,167,209,232, 96, 58, 60,138,198,
-121,217,112, 1, 33,208, 21,197,215,181,174,107, 6,161, 23, 4,142, 31,122, 94,224,184,158,253,255, 52,118,101, 59,142,228, 70,
-144, 87, 93, 60,234, 80,143, 97, 24, 48,224, 63,217,255,255, 16, 79,171, 53, 82,221, 7,111,210, 15, 44, 73, 61,126,216,221, 22,
-208,221, 15, 2, 36,164,146,153,145, 17, 25, 20,111, 24, 19,109,197, 47, 57,171,179,130,145,172,128,136, 64,132, 19, 37, 70, 0,
-136,121, 89,177,250, 71, 78, 91, 82, 82, 16,193, 60, 62,234,246, 35, 56,227,173,142,225,213,170,158,180,223,247,244, 73,240,216,
- 40,125, 44,235,188,140,195, 60,220,167,177,159,151,121,151,135,182,206,129, 8, 32,132,214,122,163, 13, 68, 80, 43,188,174,250,
-254, 88,243, 12, 87, 52,231,188,226,130, 82, 86, 21, 85,153, 23, 37,202, 16, 66, 0, 65, 4, 17, 38,164, 32, 57, 69, 8,155, 99,
-150, 91,175,143,217,170,195, 57, 23,227,183,101, 81,240, 91,241,241, 62, 56, 99, 15,169,151,105,123,220,134,207,159,143,107, 63,
-141,202,184, 0, 16,132, 52,195, 93, 85, 94, 26,214,116,162,237,234,166,227,117,195, 69,205,184,224,180,190, 20,188, 75, 42, 11,
- 38, 57, 68, 56,161,138, 87,128, 64,218, 4, 71, 89,169,246, 13, 34, 92, 55,157,211, 71,240, 38,156, 3,103, 4,240,221,174,224,
- 59,143, 66,112,206,154, 67,238,203, 58, 46,125, 63, 13,143,105, 26,214,109, 61,148, 52, 73, 47, 79,196, 72, 89,230,121,158, 81,
- 90, 34,136,180,113,218,120,169,156, 84,118, 28, 15,130,135, 44, 39, 69, 78, 42, 90, 48, 94,118,151,182,251,231,191,185,248,200,
- 10,234,189,149,107,175,182, 65,203,213, 26, 21,220,247, 70, 5, 94,236, 82, 76, 91,239, 62, 24,101,246, 93, 78,195,114,187,246,
-215,107,255, 53,109,155,117, 33, 70,130, 32,207,179, 15, 86,117, 29,111, 91,209, 92,234,166,229,162,230,162,102,188,174,171,250,
- 82,208, 46, 47, 57,201,203, 52,238, 0,248, 84, 65,227,147, 81, 68,164,192, 89,126,236, 11,201, 11,130,137, 85,155, 63,235,241,
- 89,245, 78,218,248, 5,222,146,111,194, 26,173,118,185, 45,211,184, 12,247,121,232,167,121,218,246, 77,106,109,188,255, 70,140,
-242,146, 11,202,107,198, 57,165,172, 36, 25,113,206, 29,187, 86,218, 6,231, 33, 66, 89, 70,152, 40,127,252,227,199,199,191,254,
-195,187,127,225,188, 4, 49, 26,185,202,173,215,251,100,212,238,172, 77,247,203,156,222,153, 84,110,194, 57,173,197, 16,172,117,
- 74,233,109, 57,250,199,116,251,124,124,222,198,251, 38,149,119, 0,194, 2,227,182,204, 46,130,117, 23,113,110, 50, 55, 92, 52,
-140,215,156,214, 13,229, 63,114, 90,103, 37, 35, 89,129, 48, 1, 16, 2,128, 18,253,224,189, 13,222,194,151, 46, 54, 13,143,166,
-251, 17,188,117,122, 15,193,129, 87, 64,206, 9,224,196,180, 47, 26,208, 90,101,213,190, 45,235, 52, 44,253,125, 28,250,121,153,
-143, 99,151,198,184, 24, 35, 66,248, 84, 96, 88,197, 69, 37, 4,227,130,241,186,162,140, 86,140, 22, 21,199, 57,197, 36, 71, 8,
- 35, 76, 48,206, 35, 68, 16,227, 44,171, 80,150, 5,107,244, 62,202,109,208,199,236,140,118,214,197,231,236, 2,190,131,235, 24,
- 67, 56,167, 7, 41,213, 50,109,247,219,248,245,243,113,237,167, 65, 25, 31, 2,130,176,194,228, 66,203, 75,203,218,238,140,142,
-104,184,168, 41,175, 57,173, 79,214, 60, 43, 40, 38, 57,196, 4, 2, 24, 79,200, 26,131, 53, 70,173, 86,110,103, 6,121,239,154,
-246,226,140,124, 17,128, 79, 42,230,153, 49,239, 71,210,126,180,150,219,182,172, 99, 63,247,247,105, 28,150,117, 62,164, 84,214,
- 58, 0, 0, 33,168, 44,242,146,150,140, 87, 92, 80, 33, 40, 19,148,215,148,113,198, 68, 91,242,143,156, 10,146, 87, 73,129, 9,
-206, 56,103, 16, 34, 89, 81, 65,132,157,218,228, 58,168,109, 48,106,115,198,120,127,242,109,225, 73, 86,196,111, 63,206,122,163,
-205,190,203,169, 95,110, 95,253,245, 58,124, 77,235,102, 93,136,128, 32, 36,242,236,131, 85,151,142,183,151,186,238,120,211, 8,
-209, 50, 46, 24, 23,130,138,143, 34,137,116, 69,133,113, 6, 16, 78, 56, 21, 70, 16,162,247, 86,235,125,218,199,235,177, 62,129,
- 34, 66,200,233,195, 89,157, 6,171, 51,135,207,146, 12, 32,248,118,236,163,119, 70, 41,185,109,243, 54,244,243,144,162,179, 28,
- 82, 26,239, 29, 0, 32,203,112, 81, 20, 21, 43, 56,163,188,166, 92, 80, 46, 40, 19,140, 11, 70, 69, 87,176, 75, 65, 5,206, 75,
-132,136,247,222, 91, 29,188,197, 89, 65,242, 18,132,168,183, 65,110,131,218, 39,171, 14,231,236,183, 5,238,247,193, 6, 32,196,
- 8,210,125, 47, 74,153,109,217,135,251,244,117,125,124,126,141,247, 93,170, 16, 32, 0, 37, 65, 77,145,255,168, 89,219,137,230,
- 52, 8, 48, 81, 51, 94,115, 38,154, 68,242,229, 37,199, 89,129, 73, 6, 33,138, 16,194, 51, 37,189, 51, 82,109,227,210,255,156,
- 30,183, 99,151,167,133, 53, 56,227,172,244,222,191,228,205, 87,116, 82, 10,133,240, 4,238, 90,170, 99, 95,151,125,184,207, 67,
- 63,142,195,146,196, 95,231, 2,132, 48,203,112, 89, 22,148,149, 76, 80, 33, 42, 81, 51, 38, 40,231,140, 9, 86,137, 75,193,218,
-188, 20, 56, 43, 0, 64,206,106,103, 84,140, 49, 43, 42, 76,138,224,140,222, 38,185,245, 90, 46, 70,235,224,125,240,225, 61,118,
-130,120, 94,200, 21,207,141, 92,107,173,220,213, 60,109,247,219,240,117,237, 63, 31,243,172,141, 9, 1, 67, 72, 51,114,169,202,
- 75,195,218, 11,111,218,186,233,206,122,204,106,198, 68, 87,242,174,168,106, 82, 48,156, 23, 8,145,211,212,251,132, 42, 78, 31,
-114,237,231,254,191,227,253,177,206,155, 86,230,201, 40, 6, 23,188,123, 79, 84,239,142, 14,222,208,221,123,103,149, 58,142,101,
-218,134,126, 58, 53,153,229, 44,201, 16,194, 60, 39,101, 89,176, 84,146,207,170, 92, 49, 65,153,168, 43,222, 37,104,142, 73, 30,
- 1, 8, 70, 57,171, 16,194, 89, 73, 33, 34,206,236,106, 29,228, 54,164,193, 42,221,146,246,106,154,224,197,105,251,152,174,231,
- 54,218,236,219,217,173, 62,175,253,109,217, 55, 99, 35, 0, 25,130,117,158,127,240,170,235,120,211,138,166,123,213, 99,198, 57,
-167,245, 37, 29,171, 44,167,232,236,229,233, 88,165,118,108,141,218,142,249,215,252,248, 57, 62,134,117, 61,212,161,156,115,111,
-109, 62, 25,233,158,250, 6, 56,181,241, 23,236, 9,206, 26,163,228,177,190,163,179,110,235, 97,180,245,222, 35,136,178,156,148,
- 85,193,121,197, 56,229, 53, 21,130,242,154, 49, 65, 25, 23, 37,239,210,196,139, 72, 22,162,119, 90,123,103, 49,201, 72, 81, 1,
- 8,237, 49, 31,169, 91,201,195,189,169,156,239, 3,240,217, 27,124, 8,206, 56,165,244,186, 30,195,125,252,250,236,175,191,198,
-251, 38,117,154,173, 48,238,202,252,163,102,109,199,219,132, 0, 79,152, 67,153,168, 43,113, 73,162, 11,201, 75,140, 51,136,113,
-162, 11, 32,136,209, 7,239,180,150,235, 62, 93,167,251,117, 26,230,125, 61,164,210,206,184,115,249,255,233,203,114,103,124, 96,
-132, 1, 4,144, 32, 94, 72,194,185, 51, 90, 29,199, 50,239,195, 99,238,251,105, 30,215,125,147, 90,153, 16, 34,130, 40,207, 73,
- 89, 21,140, 83, 46, 42, 81,211,228,165, 96,156, 81,206, 43,126,201,169, 32, 57,197, 8,121,231,188, 85,222, 89,146, 23, 36, 47,
- 99,240,230, 88,229,246,208,199,162,149,242,206,199,144, 22,122,146, 84, 15, 35, 72, 64,228,180, 15,105,237,164, 84,235,180,222,
-111,227,245,243,113,237,151, 73, 27, 23, 34, 70,144, 18,124,161, 85,215,208,180, 70,159, 18, 71, 36,229, 67, 52,233, 88,101, 37,
- 71, 89,142,113, 6, 33,138,175, 59, 6,157,243, 86,233,125,218,134,207,241,241,107, 30,151, 99,151, 74,153,196,255,164, 51,244,
-204, 32,255,156, 66,195,155,219, 14, 1, 68,239,156, 51,234, 80, 75,170,202,143,121, 26,215,125, 63,140,180, 62, 4,132,224, 51,
- 58, 21, 23, 85,242,152, 48, 65, 25,163,148,179,146,167,117,142, 10, 66,232,156,245, 86,133, 16, 72, 86,146,172, 8,206,232, 99,
- 82,235,160,228,102,181,246, 62,156,209,241, 33, 49, 29, 47, 78, 48,132,232,189,211,202,238,155, 28,135,249,215,215,112,189, 14,
-183,101,219,173, 15, 49,230, 9, 4, 10,218,181,188,233, 68,219, 10,209, 48,209,112, 33, 40, 21,140,242,238,164,207,139, 10,227,
-252, 68, 58, 39, 1,229, 19,153, 39,151,126,237,127, 78,253,144,214, 84,140,177,206,251,211, 52, 9,158, 25,148, 56,227,111,176,
-231,133, 36,189,181, 70, 73,189,206,251,216, 79,125, 63,207,195,186,109,210,156,106, 63,204,114, 82,156,209,161,188,102, 92, 84,
-140, 83,198,171,138,179,103, 73,206, 35,128,193, 25,103, 52, 0, 1,103, 37, 38,153,183, 74,109,147,218, 6, 45,119,107,173,247,
-111,223,219, 55,254, 24,156, 20,178,181, 74,153,117, 57,250,251,116,187, 62, 62,127, 77,253, 46,181, 15, 0,130,146,224,174,204,
- 47, 34, 29, 43,241,251,177,226,137, 5,205, 42, 78,178, 50, 21,157,231,199,158, 6, 36, 99,212,118, 44,247,249,241, 57,245,211,
-182,238,242, 80,214,158, 55, 30, 62,155,210, 43,131, 82,111,120, 9, 0, 73, 99, 77,149, 75,234,196,167,244,253, 60, 15,203,190,
- 43,165, 76, 8, 1, 33,148,165,170,204, 18,222,169, 24,175, 24,167,148, 87,148,241,146, 54,121,201, 48,201, 1,128,222, 25,111,
- 84,140,145, 20, 37, 38,196, 25,169,247, 81,110,163, 86,210, 25,235,211,218, 24,136, 48,177,137, 39,227, 26, 1,136,222, 7,107,
-172, 60,244, 60,175,247,219,120,187,246,159,253, 50, 43,227,226,179, 91,209,178,107, 88,219,213, 77,203,155,150,243,154, 9, 65,
-153, 96, 76,212, 37,239,114,154, 38,207, 18, 98,114, 58,199, 1, 0,167,208,173,244,177,236,227,117,234,111,243,184,166, 69,202,
-228, 61,249,206,103,131,239, 11, 84, 33,250, 24,222,234, 72,240,206, 89,167,164, 89,151,109, 28,230,225, 49,207,227,186,109, 50,
- 45, 17,156, 39,171, 44, 40,171, 24, 79,246, 36,250,180,190,208,156,114, 82,178,228, 81,115,206,120,171, 65, 4,164,168, 48,202,
-156,150,106, 27,228, 62, 25,245,252,184,192, 11,220,156, 19,121,122,111,206, 57,163,237,177,203,105, 88,127,125,245,215,175,254,
-107,218,119,231,124, 4, 57, 66, 34,207, 46,188,186,156, 48,231, 89,113, 56,101,130, 81,222, 20,172,203,169,200,138, 10,227, 2,
- 98,146,184, 4,248,162, 58,147, 62, 58, 92,231,254,177,204,219,177, 43,173,140,127,169,174,241,237,137,249,109,195, 44,248,115,
- 54, 75, 81,147,158, 10,119, 0, 0, 1, 97, 73, 68, 65, 84,118,214,105,165,215,101, 31,135,121,120, 44,243,184,110,219, 97,140,
-123, 69,167, 40,114,202, 74,158, 74,143,160, 60,185,130,170, 42,175, 88, 94,112,242,138,142,209, 16, 0, 92, 84, 16, 33,171,119,
-189, 15,114,155,141,214,175,100, 6,223,166,187, 23,105,225,156,215,202,236,235, 49,244,211,237, 58,124,222,198,251,126, 40, 23,
- 0, 0, 37, 70,109, 89,124,212,180,237, 68,219,242, 58, 21,157,154,114,206,168, 96, 21,107, 11,214,228,165,192,121,137, 73,210,
- 75, 96,186,237, 40,233,234, 86,237,114,125, 44,253,117, 26,198,117, 57,212,161,141, 61, 69,192,211,163,248,252,125,238,189,189,
-151, 23,210,224, 14,211,136,238,149,212,219,122,140,195, 60, 62,115,199,104,235, 67, 68, 8,230, 25, 46,203,156,241,146,215,148,
- 37,160,204, 43,202, 43,202,170,138,241,156,214,201, 88,237,157,245,206, 0, 0,178,162,132, 24, 59,125,168,125, 80,219, 98,140,
-182,169,131, 62, 73,165,111,168, 52, 38, 11,165, 58,244,178,238,253,125,186,254,124, 92, 31,211, 32,181,241, 1, 35, 88, 17,114,
-169,138,143,150, 53, 93,221,180,188,110,121,157, 58,166, 72, 29,179, 45,104,147,149,140,100, 37,194,217,171,232, 36,136,235,157,
- 54,114, 61,166,219,244,184,205,105, 35, 67,106,235, 92,112,175,235, 24, 99,120,157,172,248,114,212, 1,248,199, 31,127,188, 56,
-167,255,255,138, 15, 8,254,196, 33, 21,127,251,243,219,127,127,255, 43, 68,254,228, 89,240,181,175,248,187, 77,233, 47, 95, 61,
-254,197, 11,195,191,243, 70,224,211,255,240, 63,105,223,243,224, 10,178,220,221, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/flatten.png.c b/source/blender/editors/datafiles/flatten.png.c
deleted file mode 100644
index 570ab394967..00000000000
--- a/source/blender/editors/datafiles/flatten.png.c
+++ /dev/null
@@ -1,294 +0,0 @@
-/** \file blender/editors/datafiles/flatten.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <flatten_png> */
-
-int datatoc_flatten_png_size= 9114;
-char datatoc_flatten_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2,
- 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0,
- 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0,
- 0, 7,116, 73, 77, 69, 7,218, 7, 19, 0, 34, 12, 33,249,187,131, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,125,121,176,165,
- 87,113,223,175,251,124,247,190, 89,222, 44, 26, 52,131,144, 52, 35,246, 29,155, 29,140,164, 17, 20, 24, 12, 9, 24,108,150, 56,
-198, 24, 85,217, 18, 18,184, 92,177, 42,148, 77, 2,146,192,142, 67,197, 46,178,176, 99,138,148,169, 74, 48,149,160,120, 9, 78,
- 88, 21,177, 8, 36, 52, 90,144, 70, 27, 90,162,145, 70,219,236,111,222,125,247,222,239,156,254,229,143, 62,231,124,223,125,243,
-102, 24, 9,129, 69,202, 87,175,230,189,121,115,239,247,157,175, 79,159,238, 95,119,255,186, 37,219,183,111,199,143,125, 29,207,
-155, 26, 51,187,125,231,119,174,251,206, 87, 83, 59, 53, 99,138,113,105, 52,249,224,199,255,234,142,187,239,175,111, 82, 2,195,
- 85,243,128,137, 8, 4,162, 58, 92, 61,184,240, 61,255,236,211, 23,159, 87,223, 20,182,109,219,246,132,117, 75, 34,194, 68, 26,
- 33, 80, 81, 85, 0,242,218, 51,158,255,119,151,254, 0,128, 10, 32, 2, 0, 18, 68, 84, 0,136,136,134,102, 48, 28,204,173, 26,
-126,250,226,119, 3,104, 0,168,170, 6,141, 45,168, 52, 3, 0, 21,145,160, 24, 52, 0, 62,243,161,119, 43,128, 39, 63,251,249,
- 42, 26,130,138,223,201, 47,172,170, 65, 67,208,225,176,105, 0,140, 15,239, 75, 41, 1, 8, 33,128, 64,132,193,252,125, 65,131,
-136, 40,128,241,226,161,141, 27,215,129, 16,129,170,168,138,136,132, 32,180, 68, 80, 68, 26, 64,198,163,165, 24,147, 0,162,106,
- 52, 81,136,177,109, 13, 16, 8,255,247,151,191,215, 0, 88, 60,188,148,146,197, 24,151, 70,147,209,226,210,250,141,243,131,225,
- 64,140, 42,114,197,183,175,155,154,201,113,237,221,241,188,228,142, 27, 47,167,165,107, 46,251,123, 51, 75,137,211,233,116,188,
- 52,249,221,247,127,108,230, 77,187,126,116,245,213,151, 94,146,146, 89,178,148, 44,165, 20,219, 52, 25, 79,191,119,237, 45,127,
-241,223,190,146, 55, 24, 22,105, 4, 64,130,194, 16, 66, 51,108, 86,173,158,251,165,231, 62,229,147, 23,230, 61,214, 56, 25,105,
- 8, 34, 34, 2,133, 2, 16, 32, 52, 58,156, 27, 14, 6,225,147, 23,190, 11, 64, 19,227, 68,131, 8, 26,146,180, 68, 64, 85, 73,
- 54, 77, 32,243,230,203,206,203, 47,185,243,230, 31, 2,136, 49,198, 54,165,148, 72, 0, 32, 25,167,209,104, 42, 65,167, 75,135,
- 78,222,122, 42,128,188, 81, 26, 68,178,194, 72, 16, 85, 37, 83, 51, 25, 29, 76, 41,182,109,108,154, 16, 52, 88,136,201, 40, 10,
- 26, 72, 2,248,202, 55,119, 52,163,197, 37, 51,155, 27, 14, 82, 50, 8, 20, 74,101,140,201,204, 84,212,104,139,163, 73,179,120,
-120, 68, 50,198, 52, 29,183,163,209,120, 50,158,108,121,220,137,170, 66,202,173, 55,221,185,235,174,251,219,148,240, 72,237, 93,
-227,223,214,172, 94,245,189,175,253, 87, 17, 34,165, 59,110,185,121,188,116, 24,132,153,165,152,110,186,253,158, 15,125,236, 11,
- 63, 94, 7, 78, 63,227,140, 47,252,231,255, 64,242,202,175, 95,210,136, 36,146, 32, 19, 65, 26, 64, 99, 74,201, 21, 50,181,150,
-146,157,123,209,199,143,190, 34,145, 29,223,248, 31, 3, 13, 20,136, 25,141, 16, 33, 1, 35,128,160, 42, 34, 26,148,141,197,148,
- 62,251,199,239,137, 41,209,248,174,139, 63,185,252, 66, 54,157,136, 8, 68,224,251,234,138, 5,138, 10, 8,136, 40,169, 0, 69,
- 52, 72, 10, 33,196,148, 98,250,244,197,231, 3, 60,231,194, 79,100,125, 19, 32, 78, 71, 42,162, 42, 33, 4,205, 7, 59,171, 1,
-136,172, 12, 34,126,150, 7, 77, 24, 12,154,225,220,112, 56, 55, 8, 77,243,153, 15,157,191,102,245, 42, 0, 10, 32,182, 19, 13,
- 65, 85, 67,208,166, 9, 65, 27, 13,170,170, 34,208, 0, 74, 94,166, 95, 75, 84, 67, 19,180,145, 16,116, 56, 12,131,193,224,163,
- 31, 56,231,233, 79, 60, 77, 1,180,227,133,211,158,252,212, 20, 19, 96, 34, 8, 1,170, 18,154, 16,154,160,162, 65,202,234,208,
-173, 46,104, 8, 33,248, 51, 52, 33,188,239, 93,191,214, 0,152, 44, 30, 48, 75,143, 61,121,203,158, 7,246,166,148, 84, 85, 85,
- 0,131, 4,138, 32, 37,163,128,249, 49, 1,138, 42,141, 52,131,136,138, 2,112, 3, 39, 75,139,135,141,164,113,245,234,185, 24,
-227,210,210, 52,111,148,208, 40, 84, 13, 68, 50, 3,141,160,153,144,137, 70, 26,140, 38, 34,162,242,197, 47, 93,214, 0, 24, 45,
- 46, 17, 66, 75, 70, 90, 50,166, 52,153,164,233,180,157, 95,191, 86, 4, 34, 66,154,138,152, 8, 8, 34, 17, 16, 17, 4, 40,244,
-219, 95,223,177, 48,158, 68,179, 6,192,225,133,145, 31, 62,146, 61, 13, 76, 15,220,187, 55,197, 52,157,182, 41,166,148,204,204,
- 82,178,118,218,166,104,211,105, 59, 30, 79,199, 75,147,209,184, 93,154,198, 81, 27, 31, 57, 59,249,136,188,182,109,219,166,143,
-212,181,242,233,127,203, 27, 95,243,193,247,189, 39, 78,167,139,135, 15,221,121,243,141, 33, 4,154,197,148,226, 52,126,232, 19,
- 95,188,245,206,221, 63,254,244,223,246,195,203, 52, 52,164,105, 24,236,184,244,111, 72, 10,132,164, 25, 45,165,148,172,109,219,
- 20,109,113,113,233,247,254,205, 95, 28,227,209,228,238,219,174, 54, 75,128, 92,125,233, 95,155, 25, 0, 26,205,204, 0, 38, 35,
-105,201,218, 54,186,247,184,245,174,123,255,221,103, 47, 89, 89, 70, 34, 42, 34, 87,125,227, 75, 66, 87, 25,186, 42,136,229,211,
- 0,149,166, 9, 77, 19,154, 65,120,234,105, 39,187,219, 56,242,165,174,114, 65,149,126,158, 4,116,147, 86,206,106, 40, 71,171,
-105,154,166, 9, 33,132, 79, 92,248,174, 77, 27,230,151, 95,200, 44, 45,236,187, 31,200,159, 19,138, 95, 77, 32, 32,220, 78, 5,
- 17, 7, 13,161, 9,205, 32, 52, 33,252,233, 31,252,214,139,159,243,148,217, 11,197,118,255, 3,247,160, 28,112, 10,253,121, 8,
- 80,233,199,189,119,228,125,105, 65, 69,127,231,205,191,252,148,211, 78,233, 93, 40,181, 89, 20, 42, 0, 52,123, 83,170, 80, 32,
-125,211,161,128, 4,213, 32,218,104,211, 4, 17, 92,240,206, 95,237, 95, 40,206,111,120, 12, 0, 17, 13, 33,136,102,115,232, 54,
-111,198, 12,169, 6,113,104,164,161,209,102,208, 52,141,124,234,162,243, 11,192,179, 56, 92,181,202,141, 95,190,115,190, 24,139,
- 1,154,189,158, 58,230,146, 16, 52, 52,218, 52,250,194,231, 60,189, 60, 26, 77, 51,128,130,255,160,170,254,161,229,139, 18,209,
-238, 95, 37,132, 16, 26, 61,255, 55, 94, 13, 64, 83, 59,141,237, 36,165, 4, 80,139, 54,136, 64, 84, 84,225,184,178,191,180,252,
-216,110, 70, 69, 84, 67, 8,178,229,132, 13,106,113,106,105,242,196,167, 61,211,140, 0,243, 51,170,168,170,168, 66,160, 10, 71,
-162,221,181, 84, 33,160, 80,213,111,164, 27,215,205, 55,169, 29, 39, 75, 52,139, 49,133, 80,228, 36,170, 98, 16, 82,164,248, 52,
- 33,217,191,150, 38, 71, 62, 26, 2, 53,168,182,237, 56, 78,199,177, 29, 63,238,228, 45,180,124, 62, 84,125,183,125, 7,178, 30,
- 72, 39, 36,145, 89,217, 49, 37,141,211,113,108, 39,237,116,218,182,237,250, 13,243,142,224, 0, 8, 84, 85,144,101,150,127, 5,
-129, 64,204, 44,165,212,223,210, 16,180,105,167,173,145, 52, 51, 99, 74,105, 56, 28, 76,219, 54, 4,133, 8, 8,113,143, 45,166,
-128, 17,110,211,153, 40,238, 8, 72, 8,190,253,173,107, 29,253, 69, 51,186,233, 72,102,150, 18,140,212,124,115,241, 35, 7, 49,
-128, 25,111, 10,132,249, 63, 17, 9,114,112, 97, 68,162,105, 39,109, 34, 65,152, 37, 51, 90,178, 24, 83,187, 52, 1,176,122,237,
-106,144,249,228, 37,138,128, 52,208,111, 65, 18,139,163,165, 43, 47,191, 33,153, 25,165,153, 76, 91, 26,125,153, 52, 75,201, 82,
- 76, 41,166,182,141,135, 14, 30,158,140,167,243,235, 86,175, 93, 63,175,170,102, 38, 84, 19, 3, 48,153,180,215, 92,113, 99,219,
-198, 73,219, 70,163, 81,154,118,218,166,100, 32, 8,184,172,252, 66, 41, 37, 26, 85,245,208,129,197,125,123, 14,154,209,239,209,
- 78, 99, 27,227,116,210,210, 56,157,198,105,178,169,195,207, 71,149, 95,219,186,117,171,226,209,244,242, 88,107,229,215, 73, 91,
- 54,253,234,107,207,122,198, 83,182,157,122,210,137,243,107,230,134,195, 64, 98,225,240,120,255,254,133,123,239,223,123,251,174,
-251,190,125,197, 15,111,250,209,157,143,248,154,242,130,182,158,250,184, 75,191,252, 95,140, 36, 32,204,240,243,254,187,239,184,
-239,206, 31, 97, 50, 58, 60, 25, 65, 68, 64, 51, 89, 59,144, 39,159,250,152, 39,159,178,233, 85, 47,126, 58,137,148, 82,140,201,
-104, 76,136, 41,189,247,207,254,242,224,194,225,159,104, 65,201,108,215,143,174, 50, 51,210,130,251, 87,209, 43,191,246,165,102,
- 48, 32, 25,154,224, 7,211,151,170, 10, 18, 6, 1,161,162, 36, 33, 65, 84,204,104,106, 26,244, 35,127,120,182, 71,144, 49,165,
- 63,250,200,231, 15, 29, 30, 61, 28, 9,169, 6,210,163, 61,220,121,227,142, 3,247,221, 53, 24, 14,114,204, 71,230,224, 28, 98,
-102, 16, 41,232, 48,227,149, 98, 74,161, 18,204,104, 38, 74, 85,181, 16,228,207,223,251, 78, 51,144,118,241,199,191,120,239,131,
-251, 30,202,150,185,217, 20,236,252,254, 55,198,139,135,220, 22,250, 13, 33, 98, 52,146, 30,142,228, 31, 28, 28, 72,142, 88,131,
-170, 1, 32, 69, 77, 25,104, 52, 85,210, 44,209,204, 44,201, 69,239,121,155, 3,220,247,252,241,103,146, 39, 41,126,204,130,204,
- 72,139,211,201,210,226, 65, 55,232, 6, 8,144,111,131,140,150,136,158,173,151,238, 92, 24, 89, 62,165, 34,142, 63, 72,170,170,
-165, 36, 26,104, 73,204,104, 98, 31,251,192, 57, 34,242,169,191,250,202,142,157,183, 29,107, 65,180, 72,179,125,247,254, 95,247,
- 21,142,150, 44, 71,107,112,155, 74, 80, 4, 48,152, 64, 76,216, 67, 4, 46, 39, 58, 88, 35, 77, 68,130, 24, 41,166, 34, 98,102,
-170, 98,137,102, 30, 76,218,185,111,123, 53,128,207, 93,242,205,239, 93,115,211, 74,136, 15, 72,169, 77,177, 29,143, 22, 4, 57,
-126,103,193, 8,217,147, 21,159,230,216, 4,130, 30,102,234, 96,133,123, 84,247,209,142, 19, 53,116, 8,175,130, 60, 21, 21,200,
-217,111,124,197,167, 63,120,126,208,229,134, 80, 1, 88,140,150,218,185, 53,235, 28,173, 57,152,145,242, 86, 41,191,113,255,234,
-112, 46,227, 85, 46,195, 75,218,161, 67,213,144, 63,231,128, 76, 28, 44,250,178, 66, 80, 13, 10,200,199, 63,112,238,187,127,243,
-159, 46, 95, 16, 45, 90,138,107,215,109, 40, 23,205,104, 44,104, 80, 13,170, 5,183,105,150, 74,134, 50, 88, 17,200,161, 11, 86,
-203,229, 84,160, 65, 58,112,231,144,184,113, 60,171,207,125,250,105, 31,191,240,252, 89, 9,165, 8, 75,205,160,241,107,169,170,
- 4,136,138, 4, 4, 69, 21,143,138,170,104, 65, 53, 25, 40, 45,147, 83,127, 7,243, 46,107, 1,106,245,193, 68, 67,144, 16,130,
- 35,207, 16,194,220, 48,124,246, 79,126,175, 91, 80,138,211,148,166,169,157,156,242,196,167,151,187,101, 52, 4, 17, 85,212,173,
- 20,173, 48, 23,249,225, 5,162, 43,139,170,175, 91, 29, 76,150,154,147, 82,207, 82,132, 32,170,162, 65, 47,254,253,179,147,135,
-195, 22, 39,102, 4, 48, 28, 52,107,230,215,141, 14, 31, 86,101,145,189, 63,164,159,123, 35, 65,168,209,132, 66, 51, 81, 8,212,
-140, 65,213,140,196,172,170,163, 59,134,102,230,151,163,250, 37, 20, 2,199,163,244,120, 71,248,164,173, 27,159,118,218,201,141,
- 75,200, 35, 59, 18,155, 54,111, 86,213,133,131, 7,242,241, 18, 55,199, 32,225,219, 4,165, 82,104,128,239,159,153, 10, 72, 95,
-180, 2,168,247, 94,182, 38,127, 38,133, 16,160,155,171,236, 54, 25,130,144, 66,162,105, 6, 13,128,212,142,205,220,177,146,228,
-252,252,234,185,185,193, 3,247,221, 31, 66,240,171, 23,111,235,139,115,237,241,127, 0, 85, 96, 2,208, 68, 5, 52,203,193, 65,
-183, 44,130, 25,197, 66, 85, 65,154,153, 27, 14, 19,235, 97,100,138, 32,182,109, 3, 32, 78,199,201, 23, 84,226, 87,146, 39,110,
-222,244,192,253,123, 85, 85,212, 67,146,172,239,110, 47, 13,210, 25, 71,117,227,108, 16,120,212,195,178,172,146, 22, 83,130,254,
-204,254, 45,107,152,205,236,240,129,131, 75,131, 65,211, 0,104,219,169,153, 21,175, 14,130, 30, 57,108,220, 48, 31, 83, 26,141,
-198, 38,156,141, 17, 28,140, 80,202, 53, 13, 84, 40, 65, 55,173,121, 89,126,181,124, 89, 95, 72,246,202,174,133,117, 53, 36, 7,
-195,193, 55, 47,251,174, 80, 27, 64,226,180, 53, 22, 35,157,151, 38,158, 50,176,100,195,193, 32,165,228, 14,203, 93, 1, 4, 32,
-144,227, 9, 16,208,124,107,223, 29,161,229,237,119,140, 32, 16, 35, 93,162, 42,106, 48,165, 66,115,184, 65,114,113,113,233, 91,
-255,235,251,110,220, 26, 0,211,182,166,176,243,134,121,192,231, 50,166,209,104,150, 44, 26, 1, 12,230, 6,197, 36, 58, 42,200,
- 46,143,200, 16,193,213, 70,202,163, 67, 4,102, 57,140, 1, 64, 40,114,189,193, 31,236, 27, 95,189,210,140, 41,223,204, 23, 52,
-153,246,178,159, 21,240,148,147, 78, 88,126,209, 82, 90, 26,141,205, 44,198, 36, 34,107,231, 87, 15,231,134,240, 40,208,186, 43,
-212, 51, 37, 2, 71, 84, 2,192,213, 92,132,100, 51,108,118,124,255,134,195, 11,163,148,140,228, 52,165,104,140,164,145,190,160,
-182,202,166,250,120,228,200,200,195, 35,171,209,155,165,186,184,184,111,207,212,115,120, 94, 63,176,152,131, 86, 17,184,219, 82,
- 21, 75,214, 78,227,120, 60,153, 44, 77, 61, 47,108,100,140,201,191, 38,109,156,198, 20,205,218,148, 34,153,160,141, 8,190,115,
-205, 29,245,120, 18, 51, 66,167,213, 45, 97, 81, 82,150, 48,174,190,234,143,229, 49,202,111, 45,203,152,229,132,177, 19,182, 89,
- 74, 76,100, 50, 68,147,196,144, 8,106,120,148,229, 27, 61, 54,123,244, 44,102,251,246,237,122,164,153,255,135,125, 61,186, 34,
-215, 71,227,130,142, 26, 74,191,252,244,231,191,106,251,139,182,157,186,229,132,245,107,231,215,204, 1,108, 35,247,237, 59,180,
-119,255,194,221,187, 31,184,226,218, 91,190,254,237, 43, 65, 62,242,225,253,182,109,219,238,186,235, 46,255,203,147,159,120,218,
-191,254,151,231,188,244,133,191, 24,219, 8, 26,105,177,157, 30,216,183,247,193,221,119,123, 80,225, 38,217,253, 82, 74, 6,179,
-105,107, 95,250,234,229,223,185,106,231,254, 67,135, 31, 17,165,150,173, 91,183,238,218,181,235, 51,255,241, 79,206, 58,243,165,
-162, 66, 51, 41, 46,225,218,239,126,189,198, 33, 21, 65, 87, 51, 83,141,100,108,141,180,148,236, 7, 59,111,255,212, 23,254,254,
- 39, 93,208, 69,255,234,130,119,190,253,205, 70, 74,182,141, 4,112,112,239, 3,183, 95,255,131, 92, 63, 67,231,186,221,209,185,
- 1, 44, 86,142,102,158,168,180, 20, 41,194, 27,110,221,245,145,191,252,155,135,127,236, 31,115,226,102, 13,131, 16, 26,245,216,
- 36, 52,123,238,223,125,231,141, 59, 66, 19,114, 74, 79,220,133,103, 8,154,145, 90, 77,241,170,151,231, 60, 31,174, 34,242,140,
- 39,157,250,153, 15,190,251,181,219, 95,240, 48, 79,153, 87, 17, 50,206, 14, 77, 59,157,238,190,245,186,238,150,217,115,118, 1,
-164,195,142,153,208, 66,187, 11,120, 16, 38,130, 55,189,242,197,159,186,232,188,117,107, 87, 63,244, 99,159,113,129,250,237,111,
-184,252, 43, 30, 87,104, 70, 35,236,105, 15,133,236,193, 97,150, 32,194, 11, 39,185,114, 23, 74,172, 41,130, 63,127,239,217,239,
- 59,231,205, 15,217, 14,137,199,126, 34, 55, 94,117,153, 20,114,132,195,122, 47,224, 87,168, 68, 82,178,103,205,160, 17, 51,123,
-231, 18,146, 76,151, 16, 21,193,182,199,109,254,212, 69,231,173,159, 95,243, 16, 22, 68,143,119, 52, 44, 30,220, 43, 71, 4,126,
- 52,230,202, 76,142, 63,178, 76, 51,210, 40, 95,200,177,155,150,101, 5, 13,234, 17, 53, 4, 31,190,224, 29,103,190,224,153, 15,
- 65, 66, 0,118,223,118,131,170, 22,108,186,204, 90,249,177,135, 44, 47,126,104, 73,217, 75, 89, 19,106,144,234,252, 17, 15,247,
- 85,229,237,175, 63,235,253,231,189,245, 56, 22,196, 92,115,219,123,223, 46, 71,119, 68, 5,205, 61, 0, 89,203,234,229,220,101,
-173, 42,225, 72,222, 33,143,110, 21, 46,163,172,230, 89, 63,113,242,150, 77, 31,125,255, 57, 63, 86, 66,164, 25,192,241,232,112,
- 63, 23, 85,133,228, 55,247,148, 71,142, 30, 75,192, 80, 3, 99,144,240, 18, 74, 81,114, 85,148, 36,138,230, 0, 28,162, 34, 77,
-208, 79, 95,124,254,177, 22,212,225,248,148,170,169, 97, 9,193,250, 9, 13,143,113,178, 29,234,133,243, 93,192,238, 71,163,230,
- 4,106,205, 75,131,132,146,232,129,154,241,147, 23,189,235, 24, 91,230, 36, 9,243, 18, 73,201, 15,116,152, 84,125, 91, 43,239,
- 73,170, 82,205,214,114, 72,215,110, 22,125,202, 57, 47,207,194, 72,200,123,167,240, 12,230,199, 63,112,238,209, 37,148, 18,205,
- 74,164,237,161,138,118, 59,162, 57,131,230, 33,141,116,236, 2, 46,139,222,187,252,169,103,181, 4, 90, 44,130, 23,207,242,185,
- 83, 85, 69,144,240,251,239,120,253, 81,116,136,137,102, 34, 89,228, 69, 22,213, 89,176, 99,245, 64,152,205,226,209,113,166,135,
-148,121,199, 58, 43, 37, 42,189, 44,161,136,242, 89, 79,218,250,138,151,252,194, 17, 18, 50, 58,208,232,233, 4,253, 66, 53, 87,
- 68, 97,221,164,154, 28, 88, 49, 79,213,255,117, 94,142,162,158,128, 89, 81,137, 8,126,227,117,103,172, 40, 33,163, 37,209,146,
-160,118,195, 81,107,185, 53,230,244, 18,153,244, 66,183,149, 43,179, 58, 83,138,150, 42,156, 82,183, 13, 90, 51,170, 34,242,177,
- 89,101, 82,150, 72,176, 25,206,229,124,158,171, 93,201,122, 85,211,232,250,147,253, 27,176, 98,110,106, 70,199, 89,247,186,166,
-219,164, 91,100, 46, 0, 96,110, 48, 56,105,243,166,254, 41,203,105,130, 85,171,215,118,186, 34,185,136, 80,125, 65,245, 17,229,
-146,203, 43,177, 43,100,168,170,204, 80,119, 45,155,170,186, 60,175, 32,252,233, 31,188,189,207,134, 36,153, 64, 91,187,254,132,
- 34,106, 64, 81,140,126, 47, 39,216, 61, 98,190,195, 49,178,139, 53,107,214,219, 59, 87, 5, 20,203,169,170,121,117, 52,190,242,
-244, 23,244,236,144,153,165,180,113,243,150,234, 13, 50, 67, 79,196, 61, 75, 61,110, 21, 24,249,185, 6, 69, 69,115, 4,126,140,
-189, 43,217,119,116, 15,136,140,164, 28,149, 42,222,252,234, 95,202, 81,135,243, 79, 0, 10, 52,198,182,105, 6, 93, 17, 3,134,
-154,248, 20,117, 7,239, 87,112,199,239,153,150, 99,132,154,213,177, 84, 91, 79, 90, 89,167,235, 67, 78,122,174, 93, 21,182, 62,
-246, 49, 36,149,100,225, 63,182, 91, 78,222, 54,195,209, 42,167, 42, 3, 71, 65, 63,171, 91,110,121, 44,237,174,246, 33, 95, 7,
-156, 49, 1, 61, 13, 55,242,165,207,125, 14, 68,148, 48,166,104, 22, 45,165,245, 27, 55,229,188, 75,193,171,254, 28,157,110,229,
- 53,186, 2, 85, 14,109,190,227,138, 58, 46,189, 77,130, 43, 67,183,126, 86,136, 32, 34,207,122,218, 54, 16, 10,203, 74, 77,139,
-180,184,122,205,218,156, 16,235,174,184,108, 11,164,122, 52,100, 7,236,224,145, 71,219,187,153,181, 10,107,230,181,226, 95,255,
-113,203,166,117,110,135,140, 22, 45, 70, 75, 49,165,118,243, 73, 39,121, 86,203,173, 65, 41,241, 72, 65, 53,162, 66, 17, 42, 10,
-149, 67,181,212, 64,228,232,190,132,189, 44,190, 64,165,240, 20,122,251, 46,210, 52, 10, 80, 73, 75,209, 83, 88,173,165,152, 98,
-187,225,132,141, 57,205, 84, 72, 78,249,241,242,163, 20, 24,225,150,151,153,129,228,201,255,126, 94,112,185, 75,233,130, 2,212,
-148,126,221,129,108, 18,178,132,152,204,162,215,132,204,226,252,252, 26, 23, 82,255,249,106,110,187,131,180, 80, 21, 80,233,161,
- 20,169,162, 92,166,242,253,196,185,211, 13,115,234,186,186,164,222,251,151,198, 17, 16,245,144,211,183,204, 82,107,177, 77, 41,
- 62,246,164,205, 30, 38,179, 39,168, 14, 95,139,171,183,195, 92, 41,113, 90,193,221, 51, 85, 22,151,165, 59, 36,120, 57, 21, 37,
- 37,216,143,239, 0,220,124,235,221, 89, 66, 41,182,102,209,147,151,254, 50,179,249,117,107,242, 74, 56, 35,249,190, 66, 86,116,
- 40,153,168,238,190, 58,195, 94, 17,106,169, 30,129, 25,243, 89,129,164,203,106,146,161, 9,119,237,186,167, 51,140,121,209, 48,
-150, 79, 14, 6,131,160, 33,153, 65,103, 64,116, 86,133,142,217,227,122, 15, 67, 87,252,112, 40, 71,230, 93, 50,243,116,110,150,
-119,101,215,244,245, 44,182,113, 48, 8,136,104, 60,113, 81,146,167, 64,225,202,208,108,245,154,185,209,226, 56,199,175, 61,181,
-160, 43, 56, 77,144, 45, 47, 4, 90,181, 52,215,251, 41,130,156,210, 47, 73,113, 23,204,242,213, 16, 20, 94,117,245, 45,254,233,
-134,132,165,196, 98,124, 56,155,195,159, 27, 54,147,105,235, 1,117, 13,131,188,202,225, 38, 65,213, 13, 71, 23, 95,103, 24, 80,
-158, 47,151, 59,114,166, 89, 76,142,168,219, 11,134,195,225,238,123,247,246,124,153,175,223,114, 50,198,186,188, 50,147, 49, 87,
-128, 74,108, 93, 50,217,168,250,197, 26, 69, 90,169,125,116,135, 64,178, 64, 11,196,203,130,236,178, 23, 12, 26,190,252, 63,191,
-171,170,140, 9, 64,147,115, 97,117,207, 8,163,129,190,172,124,109,231,108,106, 19,122, 54,166,240,181,164,150,247, 89, 3,238,
-188, 12,214,152, 42, 31,254, 98, 64,197,203,255, 94, 65,187,226,242, 27,104,157,149,105,156,226, 91,243,248,156,125,117, 21, 5,
-227,116,218, 14,231, 6, 26, 2,235,206,101,106, 72,118, 40, 4,141, 86,194,164, 44,243,172, 87,206, 39,173, 96,212,109,100, 35,
-215,237,184,101,225,208, 98, 42, 10,159,123, 90, 82, 76, 57, 14, 44, 11,245, 37, 91, 87,127,201,229,183,165,197,113, 74,182,102,
-126,181, 6,205,170,109,230, 38,201,216,197,100,197,128, 33, 23,211, 10, 44,207,153,157, 28,112,203,119, 46,189,186,157, 38, 43,
-246,206,192,188,101,189, 34, 95,177, 88,179, 66,234, 21, 40,104,102, 7,246, 29, 50,179,225,220, 96,126,221, 90, 21,201,201, 25,
- 37, 76,125,171,123,204, 62,163,115, 90,186,220,160,104,192,254,189,135,118, 94,119,155, 39, 41,163, 89,178, 82,111, 19, 52, 52,
-198,152,186,247,207,108, 92, 41, 6, 38, 47,153,101, 57,121,156, 50, 58, 60, 62,116,224, 48,141,195,185,225,170, 53,171,230,230,
- 6,218,104,117, 91, 16, 17, 24, 41, 96,175,182, 70,236,223,119,224,182,155,239,242,231, 79,201,205, 49, 73, 38, 50,145,190, 32,
- 75, 49,117, 49,107, 87,252,241, 12,103,150,191, 23,111, 28,204,117, 69, 83, 17, 10,150, 70,227,195, 11,139, 41,210,204,220, 20,
- 5, 39,230,135, 0,160,109,227,116, 58, 93, 26, 77,218, 54, 90,162, 87,211, 98,246, 11, 89,234,137, 76,198, 68,246, 78, 89, 15,
- 24, 87, 60, 84,210, 16,174,215, 89,145,172,152, 92,160,223, 75, 32,161, 17,165,228,213, 19,105,218, 90,154, 56,205,210, 18, 61,
-210,179,148,104, 76,209, 98, 76,150, 44,153, 37,163, 17, 46, 30, 55, 80,205,174,251, 15, 20,132,200, 42,163, 76,103,238, 10,101,
-224,108, 73,108,230,151,182,252,151,203, 30,134,200, 28, 80, 51, 23,177,211, 56,105,134,104, 72, 94, 44, 19,205,231,115,251,246,
-237,251,247,239, 63,112,224,192,163,173, 44,244, 15,251, 34,185,113,227,198, 19, 78, 56,161, 1,112,240,224,193, 93,187,118,253,
-163, 80,142,140, 4, 78, 56,225, 4,253, 71, 65,252,156,149, 19,127,110,202,155,199,243, 10, 65,215,174, 89, 61, 28, 52,131, 38,
-132,160,206,179,129,163, 86,178,141, 49, 37,139,201,218,182, 93,154, 76,219, 54,253,255, 44,160, 87,189,252, 37,167,191,228,121,
-255,228, 85,103, 52,141,103,123, 29, 60,167, 2,242, 12, 20, 51,140, 70, 75,163,133,133,165,209, 98, 59,157, 88, 74, 51, 70, 15,
- 72,238, 48, 8,213,102,247,158, 3, 87,223,112,235, 77,183,237,254,225,205,183,165,148,126,158, 4,180,126,221,218,179,223,254,
-235, 47,125,209,243,158,244,132,109, 27, 54,204,139,136, 35, 32,233,128,146,137,234,100,188,180,239,190,221,135, 15, 30,152, 78,
-198,150, 98, 77,168, 84, 26, 81, 8, 57, 23,204,194, 24, 87, 17, 34,184,251, 61,117,243,250, 83,206,122,254,235,206,124, 30,205,
-123, 53, 25,147, 61,176,247,224,125, 15,238,191,230,166, 59,119,236,252,209,226,104,252,168, 48,213,103,158,121,230,158, 7, 31,
-220,176,126,245,239,252,246,219,206,124,217,139,135,115,115,189,242, 11,103,242, 95,160,168,142, 22, 22,118,221,122,253,161,253,
- 15, 54,205, 96, 25, 50,168,136,163, 3,140, 20,194, 60,246,183, 28, 81,214, 64,205, 57, 82, 21, 31,163,135, 77,115,224,105,102,
-223,189,230,230,255,115,229,245,253,110,245,159,217,107,219,182,109,143,127,252,227,229,140, 51,206,120,235,175,189,238,141,175,
-255,101, 38,214,253,238, 90, 4, 10,192, 86,109,246,222,123,215,109,215,255, 32,151,205, 43,177,128, 66, 33,141, 53,199, 88, 72,
- 94,165,188, 96,165,102, 92,139,201, 46,178, 28,248, 73, 13,107,208, 11, 51,156,146,231,132,190, 76, 23,132,236,216,121,199,231,
- 46,249,218,116,218,254, 44, 5,212, 56, 97, 86,181, 49,166,162, 42,236, 39,230, 84,117,207,253,247,220,113,195, 15, 20, 28, 12,
- 27,239,245,235, 18,142, 94, 16, 82,176,240, 1,171,104,100, 38,134, 46, 21, 99,228,119,247,211, 72,154, 89,142, 80, 9, 14,121,
- 67, 80, 51,168,152,151, 81,105, 74,242, 5,207,124,194, 11,158,249,187, 36,247,236, 63,244,205, 43,174,255,218,229,215,254,140,
-108, 80, 73, 52,169,231, 54, 59,221, 17,141,237,244,135,151,127,181, 29,143,188,110, 83,143, 16,209, 53, 88,138, 8,204,179, 67,
- 93, 31,129, 27,163,124,104,252,223,102,123, 11,142, 76,218, 74,230, 97,138,155, 41, 17,146, 89, 94, 84,102, 67, 69,138, 96,243,
-166,245,111,121,205,233,111,251,149,211, 71,147,233,223,126,243,202,111, 93,181,115,242, 83, 83,171,166, 20,159, 43,211, 49,127,
- 83,213,133,253,123,110,222,113,153, 0, 26,180, 20, 52,201, 82, 68,224,178,244,243,108,145,163,112, 31,104, 89, 84,200,141,104,
- 69,203,114, 72,219,203,132,123, 65, 57, 83,147, 44,191,133, 52,102,193,145, 66,152, 43, 21,205, 8,225,234,185,225,155, 95,253,
-178,183,188,230,101, 36, 62,255,183,151,126,103,199,141, 63, 53, 47,230,228, 85,230, 28,156, 54,205,190, 7,238,185,229,170,111,
- 53, 77,147, 11, 9,236, 82,249,210,171, 90,116, 86,217, 58, 3,132,101,186, 83, 58,102,115,170, 22,221,167,114,147,145,153,167,
-254,106, 17,187,208,141,189,166,230,105, 1, 79,201, 57,253, 89, 84,205, 47, 16, 66,206, 66,189,227, 13,103,189,227, 13, 47, 63,
-176,176,248,217,255,254,245, 91,238,188,231, 17, 22, 80,201,114,101, 55,189,120,112,239,109,215, 94,222, 52, 77, 54, 19, 44,185,
-212, 21,107, 6, 57,159, 89,184,209, 89, 5,204, 71, 36, 8,176, 98,166,213, 43,122, 43,253,165, 87,127,202,199, 93,250,193,186,
-103, 53, 73, 41,169,189,154, 48, 3,128, 13,235,214, 92,240,206, 55,152,217,183,175,186,241,146,175,127,127, 52,158, 60, 50, 2,
-242, 27, 11, 8,131,209,118,223,118, 35, 73, 47, 55, 72,205,237,246,116,167,146, 83, 86,178, 44, 46,105,116, 57, 29, 89, 86, 46,
- 91,161,234, 81, 74, 75, 94, 22, 20,205, 76,117, 86, 86,128,159,251, 34, 32,154, 33, 32, 59,208,156,239, 6,187, 76,180,202,246,
- 23, 62,107,251,139,158,117,232,240,232,223,127,254,239,238,185,127,239, 79, 38,160,156, 5, 51,215,147,201,232,240,194,129, 61,
-203, 49, 14,102,121, 59,179, 59,109,176,206,184,172, 32,147,156,146,150, 21,184, 72,232,209,191, 5,165,211,142,229, 44,231, 34,
-174,231,194, 50,225, 76, 0,170, 22, 31,224,167,207,106, 6,188,228,125, 5, 4,231,215,174,254,192,121,111, 77,228, 23,190,252,
-173,203,174,188,225, 97, 6,171,149,123,237, 90, 60, 90,216,223,182,147,202,176,207,118, 39, 19, 27, 51,223,229, 72, 46, 67, 53,
-189,226,101, 62,138, 20, 18, 95,150, 29,164, 95, 22,155,169, 10,151,182,175,110,246, 72,105,146,114, 35,164,121,128,145,183,110,
-193, 9, 82,133, 35,161,149,238, 38,193,185, 83,153,158, 36,148, 32,206,242,195, 63,127,221,153,159,186,248,188, 87,253,210, 47,
- 62,172,104,222, 43, 51,150,204, 18,105,227,209, 66, 71,202,235,109,116,149,209, 74, 86, 40,179,226,170,179,135, 8, 51, 98, 2,
-103,120, 43,153,229,183,162,152, 42,235,176, 47, 54,148,217, 1,165, 21,170,163, 0,149,169, 72,206, 4,116, 82, 82,230, 37, 21,
- 98, 66,102, 64,122, 61,228, 45,191,242,178,143,190,255,156,199,159,178,229, 33, 28, 49, 39,188,210, 18,153,220,212,197,118, 34,
-165,200,221,213,179, 73,151, 81, 69,137,172,100,175,210, 73, 32,189, 10,107,129,133,234, 24,137,181, 12, 85, 12,249, 49,138,195,
- 86,218, 43,234, 10, 60,119,156, 89,138,213,225,177,131,170,121, 9,154,113,174,116,249,214,130, 82,115,199,139, 12,180,249,163,
-115,126,125,239,254,133, 63,251,220, 95,239, 59,184,112,156, 26, 68, 90,242, 34, 1,188,250, 86,170, 97, 93, 41, 93,179,167,232,
- 26, 21,139, 75,118,105,246,233, 0,153, 58, 67,168,143,195,240,153, 63,157,185, 61, 86, 55, 92,223,120,207,168, 82,199, 59,168,
-212,168, 90,230, 71, 25,251, 32,133,214, 86, 57,166,133,201, 35,133,147,163, 4,101,211,134,245, 31,190,224, 29,239,124,211, 43,
-143,211, 6,177, 14, 32, 96, 74,205, 96,216, 31, 61, 81, 28,173,183,221,233, 12, 45, 80,122, 67, 10,132, 21,148,215,114,124,221,
-114,113, 19, 44, 93,101,234,216,185,206,206, 42,245,250,241,164, 55,188, 72, 58, 18, 4, 10, 41,178,207,217, 82, 55, 80, 78,164,
-206,135, 46,116,252, 41, 85,144,124,217,115,159,246,111, 47,248,237, 19, 79,216,112, 60, 26,100,158,220, 49, 75,115,171, 86, 75,
-105, 47, 82, 21, 85,138,176,216, 69, 84, 98,242, 50,219,161,149, 44,145, 89, 60,232,211,213, 40, 71,152,175,227,144, 81, 21,116,
-167, 80,153,166,152,249, 20,200, 34,201,213,194,124,111,169, 68,155,174,247, 53,115,220,178,236, 80, 78, 42, 54,173, 95,251,225,
- 11,126,235, 69,191,240,180, 99,107,144,121,156, 35, 72, 96, 26,204,173,214,208,244,200, 43,149,174,198,186, 4,233, 17,234,102,
- 84, 9,160,178,139, 75,123, 92,207,254,120,172,163,181,231, 30,227,196,213,170,115,134,102, 69,137,122, 36,173, 18, 15, 86,205,
-170, 12,192,186,226, 60, 58, 47,147, 77,125,120, 85, 74,118,238, 91, 94,249,155,111,120,249, 49,114,210,185,121,205, 83, 51,161,
-105,134,171, 86, 99,150,136, 11,169,100,252,142, 56,178,172,101,182, 78, 37,169,172,189, 30, 29,180,116,152, 9,107,165,245, 33,
- 21, 24,250,108, 72,214,254,209,142,221, 55,195, 60, 68, 49, 86,210, 27,235, 82, 57,248,213, 84, 85, 59, 69,200, 43, 95,242,236,
-127,113,246,155,142,126,196, 74,135, 31,205, 66,208, 53,107,215,205,112,179,250,100, 26,167,234,149,113, 68, 42, 71,176, 80,138,
- 25, 46, 84, 53, 41,152,193,217,123,146,103,171,101,102,226,241,104,210,202, 92,177,142,156,211, 99,215,106,161,254,150,189, 97,
-183,125, 82,249,230,218,123,158,140,159, 0,121,246, 19, 79,249, 79, 23,158,191,108,240, 79,233,151,181, 4,167,170,128, 36,215,
- 63,102,243,140, 98, 11, 51, 39,185,112, 98, 85, 74,207,237, 44, 67,175,110,114,105, 47,239, 8,184, 5, 45,184, 29,245, 65, 5,
- 42, 42, 62,173,233, 33,137,169,111,197, 43,118,213,106,197, 43, 69, 48, 15,143,240,227,168, 53,107, 81,209,147, 8, 50,239, 84,
-179,221,154, 95,213,252,225,185,111,157, 27, 14,151, 9, 40,193,137, 93,153,182, 24,215,206,175, 95,179, 62,243,205,252,105,171,
- 58, 84,187,139,210,139,210,115,183, 51,120,175,167,237, 61, 75,149,137,180, 90,248,148,146,131, 88, 45,188,112, 62,180, 67, 87,
- 25,154,253, 5, 86, 75,217,243, 36, 84, 45,158, 94,122, 93, 1,217, 26, 65,132,162, 20,200,179,158,124,202,219, 94,247,138,122,
-144,243,145, 54, 38,179,196, 20,105,145, 41,198,118,114,202,105, 79, 10,205,112, 69,208, 92, 56, 67,245,246,149, 17,135, 66,176,
-173,198,178,227,237,206, 60, 15,234,174,102, 74,189,183, 1,103, 85,125,120,135,174, 0,215, 30, 54,239, 92, 71,177,167,172,179,
-192,234,216,176, 89, 87,195, 20,227, 89, 47,125,246, 43, 94,248,156, 78, 64, 62,237,200,193,116,254,178,152, 98,123,242,105, 79,
-146, 98, 20,203, 2, 58, 6, 82,165,253,244, 6, 80,117,153,218, 28,201, 21,203,141, 35,226, 7,146, 46, 77, 15, 87,221,131, 59,
- 86, 88, 22,175, 29,191, 42,177,199,173, 93, 54,208,170,199,250,235,209, 80, 81,209,130,214, 51, 74, 96,213,128,207,126,198, 83,
-158,250,248, 83,200,234,230, 61, 16,171,236,155,148, 44,197,166,209, 45, 39,111, 45,164, 28,150, 52,161, 1,254,229,232,127, 38,
-102,170,179, 56,178,203, 16,122, 68,222,243, 38, 57,133, 34, 29,235,188,230, 52, 43,103, 84,241,176,136, 20,165,209,191, 59, 87,
- 93,219,128,160,223,202, 80,140,145,171,124,135,239,252,208, 89,226, 19,183,109,241, 20, 96, 69,210,137,201,233,156,209, 98,235,
- 63,164,216,206,205, 13, 79,121,252, 19, 58, 58,149,129, 20, 51,152,229,193, 14,146,135,211,172, 68, 43,117, 38,103,241,232,206,
-210, 45, 99,235, 52,111, 95,111, 86, 2, 68,157,151,221,115,226,224,113,247,166,118, 14,244, 72,114,167,102,146, 62, 53, 51,224,
-186, 55,179, 27, 19,226,215, 80, 5, 4,107, 87, 13,154, 65, 3, 48,107,144, 31, 49,179,104, 22,253,136,249, 87,138,173,128,143,
-219,186, 85, 53, 88,143, 23, 84, 82, 17,181,167,173, 54,113,118, 64, 55, 79, 5, 20,205,104,165,128, 46,255,128,214, 24, 88,114,
- 67,133,128, 96, 77,114,204, 0,159,135, 36,163,153,162, 75,183, 75, 94,203,146,154, 65,158,181, 77,200,227,242, 50, 36,135,143,
- 99, 46, 54,200,204, 82,107,214, 50, 69,118, 26,212,166, 76, 17,142, 42, 60,233,228,147,154, 65,227,231,207, 63, 97, 51,212,174,
-206, 84, 85,208, 81,178,180,210,117, 37,168, 39,188,164,100, 45,178, 55, 19,143,251,197,247,203,149,105,198,163, 29, 23,119,137,
-153,195,169, 5,200,104, 23,161,118, 77, 59, 57, 61, 37, 71,140, 37,236,177, 65, 69, 16,147,181, 49, 2,210,100, 27,148,162, 21,
- 98, 87,159,110,214, 39,192,109, 62,113,211,194,225,197,133,131, 11,137, 86,179, 17,203,202,170, 43, 5, 83, 53,221,160,222, 55,
-101,165,228, 33, 61, 78,165,239,123,110, 1, 81,136, 41, 64, 83, 8, 59,195, 81,105,180,203,220,234, 50, 33,230,107,136,154,153,
-244,104,124,189, 52,240, 81, 3, 26,191,126, 8,250,224,190,131,180,132, 48,104,178, 19,179, 72,122,149, 24, 93,191,227,108, 69,
- 25,192,234, 53,115, 77, 19,246,237,217, 15,241,131, 13, 31,186,147,249,226,114,180,116,106,119,220, 75, 22,169,240,188, 29, 56,
-250, 76, 30,192, 58, 66, 49,132,185,180,193, 46, 47,222, 79,134,160,180, 29,247, 26, 9, 10, 77, 61, 15, 41,236, 6, 91,148,249,
- 34,117,239,121, 84, 53, 20,129,106,184,230,186,155, 6, 77,211,250,148, 17,163, 89,138, 52,246, 62, 94, 91,141,251, 73,253,108,
-125, 30,115,226,198,197,197,165,241,210,180, 70,245, 52,206, 36,216,142, 60, 23,157,252, 42, 91,217,107,172, 90,105,193, 40,243,
- 85,165,112,160,107,227, 99, 53,112,110, 18, 36, 3, 49, 45,177, 48,234,148,216,217,218,127, 41, 62,185, 14,230, 66, 55,133, 71,
-239,196, 17, 12,135,131,203,175,184, 49,197, 36, 18,192, 60,227,204, 44, 38, 43,204,253, 25, 17,117, 26,212, 39,192, 98,213,170,
-225, 96, 48, 88, 92, 92, 34, 13, 93,198, 25,203, 6, 48,117, 89,199, 94, 24,239,208,153,165,246, 85,102,148,229,138, 55,107, 87,
- 90, 33,176,247, 92,100, 45,195,186,161,205,116, 77, 96,118,202,137, 85,242,118,145,142, 83,203,197,188,114,185,178,116,152,199,
-153,222,125,207,131,119,239,126, 48,228,161,115,104,188,234,100,206,100,119,116,103, 40,147, 7,242,252,239,218,113,211, 53, 9,
- 24, 65,172, 89, 53, 76,198,201,116, 90,215,233,211, 5,235,188,166,126, 79, 43,202, 8,240, 25,170,114,111,254, 31, 75, 8, 92,
- 16, 77,135,146,235, 40,167,126,189,187,140,101,200,215,200, 99,235,250, 12,147,202,147,149, 94, 94,118, 69,235,174, 32,216, 52,
-205,161,131,139,151,127,111, 39,123,198,170, 41, 25, 87, 51,103,163,116,231,115,230, 12,231,212,126,215, 99,128,210, 72,193,225,
-160,161, 49,209,204, 80,151, 94,162, 10,239,176,206,117,247,126,146, 25, 34,214, 39,129,160,118,198,195,132, 98,254,131,136, 25,
-139,231, 7,105, 69,130,102,168, 3,117, 72, 43, 83,159,152,155, 73,170, 35, 39,168,244,254,155, 62,255,164,194,141, 90,110, 24,
- 14,135, 55,237,188, 99,231,205,119,105,144, 88, 6, 22,214, 35,198,148, 82,175,183,103,249,120,161,220,231,184,142, 0, 0, 3,
- 11, 73, 68, 65, 84, 62,247, 7,125,230,113, 71, 77,182, 10,112, 86,166, 39,228,117, 64, 53, 79, 60, 98, 78,221, 19, 60,162,218,
-150,199, 63,228, 73,143,165, 91,222, 19,250,165, 66, 87,165,108, 44, 39,113,182,110,231,195,216,187, 60,121, 6, 1, 96,111, 92,
- 48, 65, 80,131, 90,178,203, 46,221,113,240,208, 98,163,210,205,197, 98,167, 65,149,176, 46, 82,166,213,118,173,251, 62,136,140,
-121, 47,251,109, 82,245,184, 87,251,110,165, 11,174,105,130, 55, 82,212,228,244,242,243, 14,245,195, 92,167, 79,148, 94,248,124,
- 19, 17,113, 2,145,143,118,119,153, 24,152, 11, 75,142, 21,172,212,112,217,163, 23,148,170, 97,142, 51, 40,125, 10, 14, 43, 69,
-197,125,132,132, 29, 87,236,220,179,247,160,111,103, 42,221, 52, 44, 26,210, 0,176,172, 65,179,201,226,242,119,163,101, 17,160,
-158,243,153,145, 90,121, 42,175,101,201,251, 73,156,142, 91,227,148,164, 6, 29, 14,155,208, 52,253,244, 22,188,137, 35,151, 55,
-164, 22,215,251,253, 56,116, 44, 67, 99,175,178, 83, 99,230, 58,116,129,157,120,178,136, 80,166,190,149,202,126, 41,191,148, 70,
-105,111,249, 26, 45,142,175,191,230,150, 67, 7, 23, 61,225,144,219, 70,188,140, 90, 29, 83,181, 65,253,206, 62, 0,125, 75,212,
- 65,197,217,241, 94, 92, 54, 68,235,136,230,156,194,117, 77,211,113, 30, 9, 24,154,193,112, 56,104, 6,170, 33,248,160, 63,233,
-170,104,165,225,160,196,252, 62,113, 32,211, 26,228,200,242,153,102,162,146, 21, 2, 69,206,232,214,167, 40,255, 63,136,242, 44,
-222,238, 20, 99,220,125,247,131,119,222,126,183,247, 62,168,106,244, 22, 22,255, 31, 23,100, 46, 96,177,246,146, 53,200, 82,118,
-243, 43, 84,242,170, 82,177, 54, 53,150,158,186,238,123,105,143, 48,235,249,185,146,199,173,125, 58,109, 59, 25,143,198, 41,119,
- 73, 64,131,206,205, 13,231, 86, 13,194,160, 41,169,203, 82, 90, 47,189,124,253, 82, 98,159,220, 87,181,188, 34, 80, 88,133, 26,
-197, 95, 74, 25,134, 34, 58, 26, 45,221,117,199,238,253,123, 14, 85, 44, 66, 48, 38, 75,201,162,165,148,204,136,220,134, 2, 38,
- 34,101,128, 85,143,152, 37,239, 72,146, 89, 19, 61, 43,172,250,199, 12,130,156,113,106,197, 46,117,205,175, 85,106,214,141, 40,
-244,251,196, 54,182,147,246,224, 1, 3,153,138,100,125, 52, 74, 25,200,218,132, 70,155, 16,180, 9, 77, 41,117,213,243,212,139,
-105, 1,136,134, 60,150,164,109,219,241,210,100,113, 97,105,113,113, 52, 30, 77,166,211,232,241, 35,152,231, 97,230, 65,220,165,
-157,166,116,212, 88, 34,140,236,254, 4,179, 6,145, 76, 49, 19, 38,251, 94,108, 5,142, 66,117,249,172, 74, 85,108,245, 76,159,
- 97, 29,234, 89, 4,104, 51,198,189,223, 42,228,139, 14, 42, 62,137,143,102, 49, 2, 49,150,225,124, 85,228, 93,243, 24,140,149,
- 29,203, 62,207,179, 90,144,222,120, 73, 15, 27,115,166, 43,229,249,236, 41,101,209,120,147,151,231,187,204,114,206, 48, 58,241,
- 72,123, 26,148, 45, 84, 47, 72,157,253, 99,230, 59,143, 20, 22,123,220, 50,235,224,190,145, 51,255, 58, 27, 10, 9,178, 9,233,
- 37,186,114,222, 21,165,197, 19,200, 76,197,106, 6,105,150,233,162,102,133,171,229, 52,165,146,213,235, 43,175, 15, 44,180,108,
-100,147,153, 37, 38, 75,230,138, 83, 36,226,237, 97,137,244,144,221, 64,171, 17,222,246,237,219,151,117, 55, 63,148, 20,222, 79,
-153,196,253,179,188,252, 74, 55, 19,242,255, 1,146, 88, 89, 21,105,223,207, 0, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/grab.png.c b/source/blender/editors/datafiles/grab.png.c
deleted file mode 100644
index b72bc49061d..00000000000
--- a/source/blender/editors/datafiles/grab.png.c
+++ /dev/null
@@ -1,261 +0,0 @@
-/** \file blender/editors/datafiles/grab.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <grab_png> */
-
-int datatoc_grab_png_size= 8045;
-char datatoc_grab_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73,
- 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143,
- 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0,
- 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 19, 0, 34, 12, 33,249,187,131, 0, 0,
- 30,234, 73, 68, 65, 84,120,218,237,124,125,172,101, 87,117,223, 90,251,156,123,239,251,152,153, 55,227,177,141,191,102, 28, 59,
- 20,140, 13, 24, 40,196, 37,197, 19,104,176,160, 6,183,196,164,161,145, 16, 20, 37,117, 74, 83,210, 34,100,250, 71,171, 68,164,
-165,129, 22, 40,144,180,170, 84,137,164, 74, 84, 41,130,202,106, 11, 77,128, 54,208,164,168, 13,148, 80, 64,184, 96,199, 54,195,
-120, 62, 60,239,235,126,157,115,246,199,250,232, 31,123,239,115,206,125,243,236,121,246, 60,240, 80,113,244,230,206,125,239,157,
-183,239, 58,107,175,189,246, 90,191,245, 91, 27, 79,156, 56, 1, 23,189,246,114,147,121,234, 95,191,247,179,155, 0, 80,238,250,
-187,255,251,192, 3,190,153,255,249, 55,190,240,230,215, 29, 77, 55, 13,203,210, 19, 45, 13, 7, 95,252,232, 63, 61,114,236,133,
-202, 52, 57,247,240,169,147,223,250,202, 67,223,141,127, 83,138,232,127,255,216,251, 7, 75,171,131,229,181,162, 28, 54,227, 39,
-102, 27,143,158, 59,247,248,195,167,207,127,245,161,147,233, 38, 0, 64, 80,114, 21,185, 74,200,187,249,198,246,108,118,102,115,
-114,114,125,235,212,198,118,119, 19,185, 42,184, 25, 5, 31,152,107,235, 55,231,213,250,100,246,196,214,116,105,121, 5, 96, 59,
-221, 20,252,220, 57,107,125,104,124,168,172, 27,207,235,113,213, 76,170,250,235,143,157,206, 42, 64,160, 96, 61,145, 13, 84, 59,
- 95, 57, 95, 89,223,248, 64, 34, 11,122, 10, 36,158,216, 19, 5, 34,231,131, 15,196, 44,133, 49,119, 60,247,250,238, 38, 23,200,
- 19, 7, 98,159,190,136,133, 11, 99,124,160,120, 19,238,105,238, 46,245, 58,114,221,205,239,253,220,214,238,191,123,241,115,111,
-250,206,127,250,244,151, 62,246,190,247,253,205,215, 37,101,150, 69,161,170, 44,114,203,177,235, 62,249,225,143, 12, 87,214,220,
-108,227,244, 55, 63,247,237, 83,167,191,244,224, 35,233,166, 63,249,248,251,177, 24,140, 86,214,202,209, 42, 40, 79,206, 60, 52,
- 62,247,237,147, 79,108, 62,120,242,236,185,237,105,186, 9, 77,161, 28,220,124,203,206, 54,200,206,230,179,205,243,227,217,227,
- 27,227, 63, 63,179,254,141, 83,231,211, 77, 28, 28,185, 25,185,138,152,156,167,105, 99,207, 79,102, 79,140,167, 79, 76,102,173,
-148, 37,135, 38,216,121,227,189,243,161,118, 97, 90, 55,147,170, 30, 87, 77, 32,234,166,133,125,229,137, 66,160,198,135,218,249,
-185,245,181,245, 46, 80,129,157,101,155, 16, 92, 32,118,204,158,216, 17, 57, 31, 2,177, 42,148,101,209,221,228, 2,249, 64,129,
- 40, 16,135, 64,129, 57, 16, 35,192,160, 40,158,222,146,218,203,101, 46,241,239,223,251,135,155,183,189,246, 45,207, 68,162,215,
-255,165,151,127,229,223,126,252,191,252,234,125, 0,240, 43,255,225,145, 78,221, 23,253,203,255,250,155, 31,185,225,198,231,153,
-162, 32, 91,219,233,250,124,227,209, 83,143,254,159,199, 55,183,239,187,235,142,223,126,251,237,221, 64,162,250,197, 15,222, 15,
- 8,198,148,102,184, 60, 88, 58, 56, 88, 58, 56, 24,173, 22,195, 37, 99, 74, 85,102,111,235,173,211,205,244,124, 61, 57, 59,153,
-215, 27,211,234,220,246,244,209,179,235,255,251,225,147,179,249,188, 39,145,194,242,161,231, 0, 2, 0, 98, 49, 48,197, 64,133,
-131,157,249,102, 44, 33,144,159,251,106,220,212,211,202,186, 73,213,108,206,171,245,241,236,212,250,248,193,147,103, 30, 60,179,
-217, 23,188, 4, 0, 17, 18,241,194, 12, 34, 42,172,202, 32,204,236,153,130, 39,182,157,133, 53,155,211,234,220,120,242,189,245,
-205, 11, 53, 80, 2, 0, 7, 43,193,114,104,136, 3,139, 48, 11,139, 16, 75, 96,246,196,214,133,202,185,121,227,198,243,122,115,
- 58,223,152,204,167,149,253,214,233,141, 11, 6, 66, 96, 95, 83,168,137, 40,176, 16,113, 96, 14,204,148,253,134,245,161,178,110,
-222,184, 89,227,230,214,213, 46, 32,130,168,238, 34, 17,185, 42, 72, 28, 66, 2, 69,195, 21, 31,200, 51, 59, 79,214,123,235,131,
- 13,193, 19,147, 40, 0, 24, 99, 6,101,217, 95, 69,217,117, 17, 7, 34, 23, 87, 64,252, 98, 14,204,158,200, 19, 57, 74,142, 77,
- 68, 16, 97, 80,152, 65, 89,188,232,134, 43,119,177,108, 23,130, 11,193, 7,118, 68,158,217, 19,251, 64, 62,144, 15,113, 44,246,
-196,129,133,152, 69, 20, 17, 11, 52,170,186, 60, 26,246, 7,250,193,248,201, 61, 95,199,143, 31, 55,151, 62,202,219,126,235,143,
- 46,117,136,193,104, 57,238,202,199,143, 31, 47,159,241, 40,247,255,225,121, 52,229,135,223,112,237, 94, 87,255,194, 28, 35,254,
-209,111,126,176, 12,213,231,255,244, 79,223,247,250,171,223,243,233,179, 28,220,211, 27,232, 63,126,232, 55,110,121,254,139, 57,
-184,102,251,236,214,246,119,111,184,114,237,222, 59,110,251,240, 27,175,221,171, 63,186,245,198, 27, 62,245,145,143,150,163, 85,
- 21,118,243,237,122,251,244,100,253,177,115,219,211,211, 27,219, 91,211,106, 97,137, 32,226,160, 44, 84,149, 88, 84,213, 32, 30,
- 92, 89,122,207,207,189,241,158,215,188,126,116,240,104, 57, 28,169, 72,176,115, 55,223,170,183, 79, 79,199, 79,108, 76,230,103,
-183, 38,223, 91,223, 94,159,206, 23, 6,250,226, 7,238, 87, 80, 68, 99,202, 97, 57, 90, 29, 44, 31, 26, 44, 29, 40, 71,203,166,
- 24, 34, 34,185, 58,216,202,205, 54,155,201,153,217,108,188, 53,175,207, 79,102, 79,108,207, 78,157,223, 58, 95,249,133,129,150,
- 14, 94, 41, 42, 16, 7, 26, 44,153,193,200,152, 66,153,153,107, 38, 34, 95,133,106,187,153,158,155, 85,213,164,106,182,103,245,
-230,172, 58, 55,158,158,217,154,172,143,167,139,143, 86,148, 40,140,128, 0, 32, 76, 0, 16, 56,128,170, 8,179,111,130,157,186,
-249,102,109,221,188,113,211,218,142,235,122,123, 86,109, 76,230,186,155, 27, 81, 80, 85,101, 21, 86,116, 12, 0,113, 24,242,236,
-235,224,230,181, 75,254,104,222,184, 89,101, 39,181, 29,207, 43, 46, 6, 23, 12, 36,194, 28,148, 9,148, 69, 24, 85, 88, 24, 36,
- 48,185, 64,226,136, 26,231,107,231,231,214,205,173,155, 53,110, 86,219,218,133,239, 92,232, 33, 69, 24,152,132,156,176, 23,118,
-194, 34, 42, 44,202,204,129,217,249,180,225, 55,206,213,206,215,206, 87,214, 95,248, 92, 0, 80,170,144,176, 23,246, 28, 44, 11,
-199, 33,136,133, 68, 2,177,243,193,250,208,184, 80,123,106,156,111,156,183,222, 15,203,114,183,129,152,132,131,144, 99,102, 98,
-142, 62, 63,190, 6, 98, 71,100, 67,112, 68, 62,144, 11,100, 3, 5,226,209,112,176,203,234, 17, 14,194,158,133, 73,149, 68, 72,
-132,184,231,106,163,159, 12,105, 35, 96, 22, 81, 64, 52,187, 14,228,133,131,176,170, 8,139,178, 8,137, 18, 11,145, 4,150,232,
-191,137, 41, 14, 34,170,136, 0, 42,187, 15,196, 34,172, 66, 44, 34,194,162, 34,194, 34, 36,194,196, 36,233, 73, 89, 52,234,216,
- 32, 18,243, 46, 3, 49,145,136,198, 79,139, 18,197, 47, 17, 33, 85, 98, 17, 81, 17, 81, 21, 80, 64,196,194, 24,222,109,214, 12,
-139, 16, 51,139, 38,225, 69, 89, 52, 13, 29,101,100,102, 85, 81, 85, 80,131, 80, 22, 6, 84,143, 30, 92,221, 57, 16, 69,213,176,
-180,178,228,247,202,209,160, 20,146,122, 20, 0, 17, 17, 13,226, 95,184,230,240, 5, 3, 49,147, 72,188, 53,169, 70,211,112,212,
- 31, 93, 84, 84, 65, 21, 17, 17, 49,176, 60,147,180,236, 7,118, 29, 59,118,204,192,229,116,225,174,166,254, 3,190,110,127,195,
-223,186,255,179, 91, 79, 35, 54,254, 62, 93,119,189,235, 67, 47,189,231, 29, 0,200,228,255,197,235,174,120,150, 5,122,215, 39,
- 31, 94, 62,116, 5, 40,252,175,223,255,232, 31,127,226,215,119,198,161,223,143,235,237,119,223,245,142, 55,221,251,156,171,174,
- 17, 97, 14,214,215, 19, 59, 93,159,143,207,109, 78,231, 39,207,111,253,179,183,189,104,222,216,131, 87, 94, 55,219, 56,179, 75,
- 96,124,233,215,176, 44,223,121,239, 61,127,251,103,127,174, 28, 29, 48,197, 0, 64,132,136,130,117,243, 45,223, 76,253,124,179,
-153,111,205, 26, 55,173,235,173, 89,189, 53,175, 95,125,235,141,159,253,250, 35, 23, 74,243,204, 5,186,227, 5,207,253,165,159,
-249,235, 47,127,225,237,197,232, 64, 57, 92, 66, 99, 64, 85, 69,132,131,119, 21,185, 58,216,121,104, 38,190,222,110,108, 93, 91,
- 95, 89, 55,107,236,120, 94,111,204,170, 51, 27,227,179,155, 19, 83, 20,176, 24,235,119,121,218,103,126,245,190, 46,167, 80, 64,
-131,160, 80, 24, 52,166, 40, 7,163,114,184, 60, 88, 58, 80, 14, 87,138,225, 74, 57, 92, 42,202,145, 25, 12,141, 41, 0, 75, 99,
- 64, 85,148, 3,123, 98,114,236, 45,185, 42,184,121,104,166,193, 78,173, 11, 77, 8,181,117,181,243,179,198, 77,170,102,123, 86,
- 61, 49,158,157, 92,223, 50, 69,233,156,219,245, 81, 75, 80, 56,114,229, 49,141, 59, 20, 34, 96, 97, 76,129,166, 48,197, 0,139,
- 65, 81,148, 88, 14,140, 25,152,162, 68, 99,208, 20, 8, 8,170,194, 65,197,147,196,205,217, 83,104,216, 53,228,230,193,206,188,
-111,172, 39, 23, 66,204,239,106,235,231,214,206, 26,187, 61,111,214, 39,179,179,155,147, 89,109,191,125,118,235,201,116, 95, 2,
- 64, 57, 92,102, 85,108,125, 19, 22, 6, 11, 48,198, 24,163,136, 40,170, 64, 44,140,136, 0, 8,160,170,162,194,202,196, 28, 36,
- 56, 14, 13,249,154, 93,229,201,187,152, 15,133, 24,109,132,198,250,185,115,243,198,197,156,243,252,246,116, 92,213, 78,240, 41,
-140,161, 4, 0, 64, 99, 64, 84,211, 78,140,202,130, 2,106, 84, 8, 16, 5, 98, 48, 8, 16,111,136,251, 48,135,168, 27, 14, 13,
-145, 99, 22,159,195,148, 24,169, 88,231,235, 28,150, 77,106, 59,158,213,155,211,249,184,110, 14,173,174,124,229,145,211, 23, 19,
- 72, 85, 69, 84, 68, 65, 84, 85, 84, 1, 20,226, 63, 16, 80, 4,144, 36, 77,212, 77,156, 41, 14,204, 66,194,196,154,147, 86,118,
-129,172,167,198,251,198,133,198,249,202,250,153,181,179,218, 78,234,102,214, 88, 68,124,232,220,214, 83, 47,151, 18, 0, 84, 88,
-132, 84, 24,148, 53, 5, 9,162,202,160,162, 34,209,110, 65,147,172,241, 85,114,168, 66, 81,166, 8,244, 69,245,248, 96,227,148,
- 57, 55,143, 17,112,109, 43,235, 61,241,129,209,112, 82, 53, 23, 23, 72,132,132, 73,133, 64, 72,132,132, 89,133, 52, 69, 10,233,
- 18, 1,133, 36, 74, 82,166,164,184,130,152, 91, 68,209,250, 16,101,170,157,175, 93,168, 93,168,156,175,188,183, 33, 20,136,223,
- 58,187,117, 81,135,146, 52,164, 81, 38,246,241,141,168,136,198,200, 12,146, 4, 89,186, 54,152,139,129, 33, 9, 7, 18,226,148,
-210, 59, 34, 27,200,134,224, 66,176,158,108, 8,206, 7,239, 73, 88,150,134,131,198,249, 61, 9, 36,236,149, 73,201,171,132, 24,
- 99,169, 66, 12,251,162, 52,172, 42, 81, 14,150, 52,157, 57,138, 35,102, 98, 14,209,168,137, 60,177, 11,228, 66,124, 13, 62, 80,
- 96, 33, 85, 64, 40,138,114,215, 20, 97, 23,112, 70,153,132,189, 72, 16,142, 79,174, 73, 2,137,162,168,112, 12,255,180, 11,119,
-185, 53, 32, 33, 78, 0, 74, 52, 35,162,148, 48,196, 71,138, 66, 20,104, 16,247,180, 7, 36, 13, 9,249, 24, 8,179,128, 72,154,
-160, 24,198,102,249, 58, 67, 78,193,119, 43, 77,126,211, 15,132, 69, 85, 52,174, 83, 48,136,140, 32,194,136,120, 81, 37, 25, 0,
-136,121, 16, 75,146,134, 69, 88,211,103, 11, 71, 81,226, 15, 23, 2,111, 18, 78,241, 50, 51,179, 80, 43,110, 94,140, 0, 0, 8,
-136, 80, 24, 44,208, 16,203, 45, 55, 92,189, 39, 13, 49, 75,212, 68,178,152,100,197,144, 68, 73,249, 72,171, 33,205,194, 41,101,
-249,168, 63,191,121,105, 34,128, 65, 44,140, 41,140,225, 66,152,101,117, 96, 46,170, 36, 3, 0,221,179,230,149, 44,162, 44, 76,
- 61,173, 72,155, 51,228,169,229,156,129,177,168,196,220,135,133, 99,118,158, 63, 51,230, 40,113,119, 68, 68,102,121,193,197,148,
- 20, 53,164,241, 17, 69, 65, 64,132,149, 69, 20, 32,155,112, 92,113,210,218, 80, 76,186,122,153,141, 80, 50, 56,101,142,235, 34,
-249,117, 80,141,251, 95, 76,122, 84,245,192,176,184,136, 64, 8,240, 63,190,187, 30,159, 41, 13,147, 7,147,252,109,235, 31,163,
-219,150,180,167,137,104,187, 30,227,132,130,168, 97, 65, 86,195, 88,114, 33,140,194,133,128,106,193,130,170,162,138,136,183, 61,
-111,117,102,119,143, 61,214,214,214, 46, 51,188, 49,230,102,151,143, 48, 39, 78,156, 48,184, 71,135,245,131,186, 46,175,204,245,
-114, 17,232,250,219,238,104,115,232,103, 95,160, 95,252,196,151,111,126,197,107, 53,195, 78,207,166, 64, 47,190,251,109,247,127,
-110,243,138,235,111,254,147,223,121,255,179,156, 74, 23,229,240, 61,159, 62, 11,136,160,208, 71,189,159, 29,129,126,230,215,126,
-247,185, 63,249,134,152, 56,156,252,218, 31,115,240,207,178, 81,127,245,129,127,131,168, 49, 41,253,253,127,248,166,239, 75,110,
-255,164,245,149,178,252,224, 47,255,226,157, 47,186,141,131,109,198,103,215,183,183,222,255,201,207,127,253, 27, 95,250,119,127,
-247, 53,111,255,215, 95,252,221,191,127,215,190,229,246, 79,125, 93,125,197,145,127,249,238,119,221,126,203, 11, 77, 57, 20,114,
-228, 42, 14, 78, 65, 7,101,241,119, 94,255,147, 95,126,232,228,111,255,183, 47,255,206, 59,127,234,252, 35,223,252,190, 11,244,
- 11,247,220,253,238,183,190,117,176,124, 8, 16, 85,136,156, 13,118,230,235,109, 59, 59,223,212, 85,109,157, 11,225,192,104,112,
-245,218,193, 93,165,217, 55,129,174,189,242,138, 7, 62,240, 79, 14, 29,189,174, 40, 71,136,168,202, 28, 28,249,154,234,153,171,
-183,237,124,189,174,231,211,198, 77, 27, 59,169,154,218,250,107,214, 86,206,247, 24, 5,251, 41,208,199,254,193, 59, 79,188,226,
-149, 75,171,107,166, 28, 26, 68, 81, 17,114, 20, 28,185, 42,212, 83, 95,143, 93,181, 89, 59, 59,175,221,172,177,179,218,206, 26,
- 59,105,108, 81, 14,158, 50,149,126,218,166, 90,188,227,238,187,222,113,207, 27, 15, 29,190,186, 24, 46,155,162,140, 69, 98,166,
-192,228,217, 55,193, 86,100,167,190,158,184,122, 92, 59, 87, 91, 63,183,110, 86,187, 73,109, 39, 85, 51,158,215,214, 63,105,130,
- 86,170,106, 97, 76, 81, 24, 80, 0,140,105, 97,194,182,211, 29,133, 25, 13,202,149,209,232,206, 23,223,242, 75,247,220,117,244,
-138,107,203,229,181,193,210,138, 41, 71, 69, 81, 0,162,170, 10,179, 80, 96,114,236,155, 96,231,212,204,124, 51,118,118,158, 51,
-124, 55,107,146,134, 38,243,102, 92, 53,115,251,228, 2,189,237,175,252,196, 43,111, 60,170,125,192, 10, 83, 17,193, 20,131,193,
-112,105, 48, 90, 45, 71,171,229,112,165, 24, 46,151,195, 37, 83, 14,141, 41, 77, 81, 2, 26, 85,128, 8, 55, 80, 16,178,228,154,
-224,230,100,231,190,153,120, 87, 55,177, 4,100,253,220,250,170,113,243,198, 78, 43,187, 61,175,107,235,206,142,231, 79, 42,208,
-112,184,116, 96,117, 13,162,126, 98,229,192,148,166, 40,177, 28, 20,197,168, 24, 12, 77, 49, 50,131, 97, 81, 12, 77, 89, 98, 49,
- 64, 99, 0,141,170,130, 6, 21, 17, 38, 97,207,222,145,175,201,213,100,103,222, 78,156,247,206,251,198, 83, 42,107, 57, 55,119,
-110,214,184,105,211, 76,106, 91, 26, 67,187,129,121,121, 66,202,225, 96,233, 64,130,207,192, 68,152,204,152, 65,252,120,147,190,
- 74, 99, 10, 68, 3, 49,215, 7, 17, 85,136,137, 9, 5, 14, 13,123, 75,190, 34, 59,247,118,230, 67,176, 33,196,106, 91,227,125,
-237,124, 99,125,149, 43,138, 85, 99,245,201, 45, 26, 0, 74, 52,165, 41, 71, 25,218, 55,128,104, 76, 97,138, 18,176, 68, 44, 16,
- 77,139,153, 25, 1,192, 88, 11, 82, 21, 22,102, 33,207, 20, 17,180,134,236, 60,184,202, 19, 57, 31,108, 32,235, 67,227,124,227,
- 66,227, 35,148, 22,230,214,205, 27, 27, 88,206,108,111, 63,165, 64,136,104,138,182,214, 0,104, 16, 13, 0, 2, 42,128,130,178,
- 10,128, 42, 8,230,242, 86,204, 51, 72,153,152, 28,147, 99, 87,147,175,200, 55, 46, 66, 68,145, 82, 20, 66,130,210, 34,207,204,
-249,202,186,202,249,209,160,156, 55,238,169,193, 6,196,180,215, 1, 42, 40,138, 42,130, 50, 10,196,194, 20, 26, 6,200, 80, 65,
-196,134, 98, 54,198, 94,130,231, 80,147,175, 41,248, 16,137, 21,129, 60,145,247, 17,148, 33,231, 67,227, 67,227,124, 92,252,158,
-248,224,202,242, 69, 19, 69, 4, 4, 80, 0, 17, 65, 68, 81, 64, 16, 49, 6, 85,149, 81, 81, 13,182,170,209,152,100, 51,169,132,
- 56, 95, 18, 26,138, 64, 12,115, 32,246, 28,129, 24,242,129,188, 15, 81, 38,235,169,113,193,134,128, 10, 15, 94, 80,250,221,165,
- 54,173, 2, 10, 10,160, 40,162, 0, 10, 2,128, 59,160,210,156, 65, 74, 2,215,216, 51,121, 97, 31,193,151, 88, 15,205,229,213,
-200,103, 73,232,140,163, 8,242,145, 15, 52, 40,139,139, 98, 86,209, 83, 43, 38, 88,161,205,202,179, 95, 82, 73,224,103, 76, 92,
- 35,188, 17,151, 58,115,172,177, 18, 73, 96,162,150,102, 19, 25, 49,129,114,249, 56, 56, 10, 46, 16,139, 46,141, 6, 23,133, 99,
-202, 8,193, 2, 8,100,148, 12, 53, 42,109, 33,159,142,248, 43,168,136, 80,188,145, 50, 40, 67, 73, 61, 29,107,177, 99, 58, 82,
-170, 71, 7, 34, 5,240,178, 7, 4, 45,205, 81,134, 83,162, 14,226,194, 86,149,136,115,170,228,237, 4, 52,237, 45, 18,235,207,
- 26, 75,243,137, 17,197, 28, 18, 71,138, 2,137, 15, 89, 91, 68,196, 82, 26,124,124,123,190, 7,124, 40, 42, 67, 25, 84,128, 89,
-149, 52,163, 83, 73,154, 8, 45,100, 64, 56,190,230, 98,177, 18, 51, 9, 39,162, 86,180, 39, 98, 79,146,138,246,169,116,207, 44,
- 50, 40,204,120,182, 23,129, 32, 62,117,212, 13,129, 80, 2,101,133, 21, 50,244, 33,173, 52,144,200, 15, 25, 86,139,245,120,162,
-244,217,145, 76, 69,194, 9,105,140, 82,138, 0,192,174, 20,132,221,119,251, 56, 53, 18,129,243,196, 38,136,248,144,136,102,152,
- 63,130,213, 10,137, 38,144, 57, 25, 45, 16, 27, 33, 47,138, 2,197, 73, 36,137, 98, 49,139,170, 58,214, 61, 9, 4, 93,193, 32,
- 66, 81,148,225,158, 12, 2,181, 8,117, 6,135, 59,244, 51, 11,145, 20, 19,191, 36,179, 45, 18,231, 66, 68,212, 32, 86,158,247,
-136,194, 38,251, 85, 77, 0,126,146, 48, 1,248,202, 34,173,221,168,104,198, 67, 85,242, 71,182,239, 51,136,214,209, 17,226,195,
- 41,168, 49, 56,175,220, 30,167, 44,174, 35, 6, 97, 16, 86, 0, 81,145,108, 61, 59,117,211, 74,163,105,217,199,210, 2,101, 66,
- 67,114, 4,153, 46,145,181, 11, 6, 49, 48,239,117,202,116, 1,105,133, 22,213,203, 53, 24,200, 76,142, 92, 84, 80, 97,238, 0,
- 90,201, 44,148, 22,129, 84,214, 14,141, 5, 69, 0, 52, 6,141,217,243,148,101, 27,138,115,164, 73, 31,113,226, 68, 57, 3,140,
- 73, 26,101,238,102, 45,163,156, 45, 39, 70, 37,253, 5,180, 94, 31, 50,251,106, 79,248,144,170,128, 80,156, 22,141, 97, 53,128,
-198, 32, 67, 19,196,153,191,226, 22,220,250,198,182, 16, 19, 39, 17, 50,206,222,121, 44,200,232,185,170, 14,246,166,161, 84,198,
- 85, 73,142,184,251,252, 60, 96,222, 62, 52,227,173,209,232,187,122, 67,170, 89,165,173, 16,210, 75, 10,208, 35, 38, 12, 0,176,
-182,178,180, 39,129, 68,163,249,117, 15,157,252,146,198, 72,172, 67,230,123,181,179, 84, 85,145,172,216,254, 10,144, 12, 49,167,
-128, 15, 49,194,152,135, 87, 71,123,211, 80,164, 43, 33,228,226, 38, 10,180,168, 52,104, 23,118, 68, 17, 65,242,207,115, 65, 77,
-219,204,169,181, 27,109,235,201, 25,204,143, 5,140, 61, 98,140,218,243,197,237,107,222,188, 32, 46, 58, 88, 64,208,147, 28,201,
-143,231, 39,129, 60,205, 10,185, 14, 20,165, 65, 68, 64,100,145,195, 7, 86,246, 98,212,105, 79,111, 45, 64,164,191,121,117,179,
-211, 77, 25,128,100,228, 95, 58,251, 74,186,137,102,151, 43, 10,128, 49,145, 65, 84,213,227, 87, 28,218, 83,248, 17, 13, 85, 20,
- 90, 63,212, 70, 27,209,214,119,108,245,218, 26,182, 46,252,182, 21, 26,186,213,142, 8,216, 22,217,151, 6,229, 30, 55, 87, 21,
-129, 68, 14,139,190, 39, 70, 36,162,186,224,178,219,121, 76,114,100,195,234,166, 44,191, 73,147,134, 8, 49,217,139,105,132,168,
- 96,107, 97, 79, 62,101,144,164,137,182, 9, 89, 44,233,102,176,175,131,228,156, 36,251,115, 17, 1, 16, 5,238,205, 42,180, 70,
-148, 23, 89, 86, 18,172, 46,141, 46,102, 67,208, 69,132,109, 13, 47, 89, 73,210, 92,183,218,251,166, 45,162, 29,243, 64,211,163,
-180, 90,132, 76, 68, 0, 84,232,149,167,110,188,106,237,162, 70,157, 22, 81,122,250,152, 21,138, 0,196,159,180, 17, 35,104,252,
-201, 14, 27,135,150, 13,209,174, 11, 88, 88,255,138, 0,208,166, 48,135, 46,166,161,242,212,184,206,163,129, 36, 95,221,149,204,
-122,159,221,250,158,174,106,214,149, 68, 69, 89, 81,196,176,160,168, 97, 44,184, 24,196, 98,153,150,138, 34, 70,101, 32, 26,105,
- 38,199,142,193,174, 21,159,196, 60, 57,113,226,196,246,246,246,120, 60,190,220,202, 66,207,238,165,170,135, 15, 31, 62,114,228,
- 72, 9, 0,147,201,228,212,169, 83, 63, 82,202,142, 11, 17,143, 28, 57, 98,126,164,136, 31,178,250,230,179,109, 53,230,208,213,
- 55,252, 72, 65, 59,175, 3, 71,175,121,245,125,191,126,255,103,183,174,121,254, 75,167,231, 31,127,150,139,137,151,207, 53, 88,
- 94,125,243,251,254,253,177,151,188, 10, 20, 55, 79, 62,248,175,222,242,188,122,188,241, 3,173, 37, 94,158,215,241, 23,191,234,
-167,126,225,215,174,125,193,203, 32,102, 53, 10,143,125,229,243,159,250,199,111,249, 62, 86,238,126, 40,156,203,241,151,220,249,
-218, 95,254,192,209, 99,207,203, 5, 20,136, 29, 33,159,249,141,251, 30,252,194,167,246,179,112,247, 67,119, 93,117,211,173,111,
-249,231, 15, 44,175, 93,133,170, 41,249, 81, 5, 68, 13,225,247,222,253,250,179, 15,125,237,162,120,249,255, 23,142,118,101,233,
-150, 99,215, 29, 92, 26,148, 6, 69,116, 99, 58,255,246,227,231, 93, 8, 0,176,254,216,131,191,245, 55,158,127,213,205,183,253,
-252,135,254,243,104,117, 45,102, 96,231,190,243,181,223,251,149,187, 84,101, 47, 5,133, 31,178,235,185,215, 95,123,235,143,223,
-124,226, 37,183,191,234, 37,183, 31, 88, 61,136,166, 96, 97, 9, 94,216,147,111,200,213,161, 25,187,102, 90,187, 80, 91, 55,174,
-234, 63,123,236,204, 3,255,243, 27,235,143,126,235,227,247,222,252, 99,127,241, 53,127,237, 31,125,226,225, 47,125,230, 15, 62,
-252,247,246,136,227, 93,222,190, 3,160, 44,203,227,207,185,234,157,111,126,211, 79,255,196, 29,195,165, 3, 88,148,198, 20, 0,
- 24,177, 50, 38, 98,246, 66,158,189, 37, 95,147,175,131,157,120, 87,251, 64, 62, 4, 79,172, 10, 63,118,229,145,183,222,249,210,
-135,206,109,253,193, 87, 31,252,238, 87,191,240,241,123,111,218,187, 0,151,169,130,126,254,181,175,190,251, 47,191,242,166,227,
- 55, 29, 62,116,184, 28,142, 0, 11, 52, 38, 86, 23, 99,237, 69, 57, 48, 17,147, 87,114, 20, 44,251, 38,210, 4, 66,168, 83, 29,
-204, 83, 19, 66, 99,195,220,249,198, 57, 79,188, 84,192, 45,215, 30,253,246,217,205,167, 37,201,101,161,160,107,143, 30,121,197,
- 11,110,121,237, 29,175,120,249,173,183, 30, 94, 59,138,229, 16,208, 20, 69, 25, 65,165,132,182,112, 68,190,131, 16, 9,249, 92,
- 83,181,228, 27, 10, 53,251,218, 7, 31, 2,249,182,246,236,125, 29,168,182,174,106,220,180,182,179,198,214,214, 47, 45, 45,173,
-174,172, 84,117,125, 89, 43,104,121, 52, 60,124,224,192,221,175,124,249,207,190,230,196,117,207,185,206, 12, 87,140, 41,139,193,
- 8,141, 65, 52,128, 24, 1, 37,133, 72, 76,206,124,237,174,153,197,113,112, 18, 28, 83,195,190,166,224, 2,199,179, 59,226, 49,
- 31,193,231,130,124,108,151,152, 53,110, 90, 53,227,170,153, 54,214,123, 39, 34,151,151, 5, 29, 62,176,250,211, 47,187,237,213,
- 47,121,209, 77,215, 93,127,248,240, 21,171,171,135,138,193,168, 40,135, 16, 25, 28,133,129, 88,245, 64, 76, 90, 17,134, 72,252,
- 79,229,101, 74,124,146,224,133,189, 4,199, 73, 53, 13,113, 8,148, 74,188, 33, 87,118,163,118, 92, 72,237, 54,149,117, 51,235,
- 38,117, 51,174,234,202,250,192,218, 88,251,244, 20,164,170, 47,251,241, 99,127,245,133,199, 7,104, 6,101,177, 20, 11,143, 17,
-130, 67, 8,204, 34,226, 3,139,170, 11,164,160,204,130,104,136, 25, 17,134,101,105, 16, 86,150, 70, 43,163,209, 21, 7, 15, 28,
- 90, 93, 61,124,232,224,149,107,107,203, 75, 43,229,112,169, 24, 44,153,114,132, 69, 89,148, 67, 83,148,104, 74, 52,133, 49, 6,
- 18, 86,157,122,175, 32,117,245,136,170, 0,167, 94, 35,142,218, 33, 47, 28, 34, 33, 64,130, 99,178, 18, 28,145,101,226, 32, 28,
-136, 57, 23,192, 19, 75,128,200,250,216, 29, 21,233, 19, 97,110,179,249, 84, 86, 85, 55, 42,251,116, 39,184, 84,128,219,111,186,
-254,206,155,175,222, 89,208, 71,192,132, 44,199,111, 98, 65,160,192,162, 0, 44, 76, 81,160, 41,208, 12,138,162, 68, 51,192,162,
- 64, 83, 22, 69, 25,223,152,162, 68, 44,208,164,102,128,200,103, 65, 52,237,112, 29, 38,216, 21,222, 89, 83, 61,149,242,106, 10,
-177,191,132,131, 23,178, 28, 44,115,232, 74,167,162, 68, 28,152, 2,245, 56, 20, 68,214,167,245, 85,197, 70,191,218, 78,234,102,
- 90, 91, 98,134, 98,176, 61,171,158,182,130, 0,160, 28, 44, 45,173, 94,209, 86,199, 16, 90,144, 52, 34,202, 6, 17,193, 24, 68,
-131,145,196, 20, 21,132, 6,177,192,162,192,184,197, 24,147,222,160, 1, 52,198, 20,136,168,128,136,168,201,173, 8,100, 20, 53,
- 97,181,210,182,238,177, 40,229, 5, 21,132,130, 68,171, 33,207,100,133,124,219,253, 31,105, 19,212, 53,218, 39,243,113,129, 2,
-165,230,186,218,167, 70,182,202,218, 89,237,102,181,179, 62,172, 29, 60,248,213, 71, 30,127, 6, 46,162, 4, 5, 44, 7,197,112,
- 73,164,237, 73,140,255,226, 33, 57, 24, 57, 86,185,139,189, 83, 68,182,139, 86, 59, 89,149, 9,178,228,216,175, 46, 28,145,114,
-205,133,173, 88, 79,200,116,141,228,131, 41,182, 55,106,103, 56,142,201, 9,133, 68,110, 97,166,246,144, 5,230, 86, 65,137, 96,
-194,145, 78, 66, 46,132,198,147,245, 81, 59,110,214,184,121, 99, 27,239,135,131,193,247, 54,198,252, 52,221,115,103, 65,136,133,
- 41, 6,136,209,128, 22,214, 24, 66, 34,161, 1,160, 65,163,198,180,223, 66,215, 54, 41, 32,177,168,162,209,100, 0, 88,219,182,
- 74, 72,149,196, 92, 72, 74, 28, 5,137, 36, 23, 14,170,172, 76, 76, 65, 37,106,199, 9,249, 88,101,207, 60, 18, 97, 81,166,124,
- 4, 5, 51,145,120, 38,202,172,150,220,192,150, 26, 51, 27, 31,230,214, 85,141,171,172,107,124, 48,198, 8,192,250,100,254,204,
- 54,153, 50, 23, 65,140,162,166, 39,148, 88, 69, 74, 96, 90,230, 50, 70,118,165,130, 10,128,137,197, 12, 52, 38,118, 68, 25, 52,
-146, 22, 36,232, 78,197, 40,244,234, 17,137, 79, 34,170, 26,251, 13, 89, 36,196,198,195,212, 4, 42,156,186,162, 56,243, 36, 88,
- 56, 58,157, 72, 32,145,180,109,197, 14,191, 64,228, 3, 71,178, 86,166,182,249,218,250,202,249,198,123, 85, 88, 25, 13, 30,122,
- 98,251,153,153, 79,127,155,143, 15,143, 8,169,226, 10,144,190, 67, 80, 85,142, 55,168, 32,128,129,200,145, 67,100, 73, 37, 93,
-206, 0, 2,102,157,166,146,120,174, 11,101,151,204,185,215,140,218,206,216,220, 31, 75, 93, 31, 86,219, 92, 40, 18,233, 9,129,
-153,123,103,143,180,175,113,107,119,158, 29,133,200,253,171, 83,171,168,119, 62,136,192,176, 52, 13, 20, 79, 77, 73,220,107, 28,
-164, 8,152,171, 91,201, 6, 68, 34,163, 33,106, 48,173,154,164, 8,108,249, 0,176, 80, 46,210,174, 91,184, 45,148,165, 14,181,
-124, 32,141,138, 10,137, 16,196, 61, 43, 21,179, 68, 69, 41, 53, 99, 50,245,232, 52,196, 18, 36,241,163, 66, 98, 33,137,239,197,
- 62, 46, 5, 62,100, 29, 89, 23,226, 78, 79,194,133, 49,197, 96,248,205,199, 78, 95, 74, 28, 87,182,171, 1, 59, 42, 68,222,106,
- 16, 32,183, 92,182,197, 82,192,254,127,138,169,180, 11,105,109, 73,178,188, 24,176,162,170,228,218,112,102,106,165, 72,167,173,
-240, 71,226, 65,108,221,139,212, 8,226,244,202,204,113,137, 81,118,207,137,160,149,220, 51,185,220,247, 28, 41,155, 54,157,228,
- 69,196, 12,128,163, 97,249,248,230,228, 18, 3,221,178, 91, 18,157,179,200,204, 5,129,196,135, 73, 70, 17,123,220,251,206,165,
-251,227,222,210,202,181,213,104, 53,145,131,209, 85,147,117,177, 96,220,182, 58, 70,214, 15,247,187,191, 51,143, 45, 55,205, 50,
- 83,164,249, 17,133,216,243,156, 73,182, 46,219,145, 39, 14,204,162, 90, 22,133,168, 25,215,110, 63, 20, 4, 29, 87, 66, 65, 50,
-161, 35, 82, 36, 0, 85, 20, 0, 58,134,103, 94, 62,137, 58,145,119,168,174, 46, 47,208,145,115, 0, 58,162, 67,159, 53, 18,107,
-235,192, 57,136, 78, 45,160,154, 14,221,225,190,123,102,141, 62, 40,196, 83,144,162,247, 9,236,219,198,231,192,222,147, 39,138,
-145, 17,139, 34,226,176, 48, 91,214,135, 39, 39,176, 63, 13, 5,105,199,153, 16, 0, 5,137, 79, 40,152,137, 84, 57,132, 17, 85,
- 69,200,171, 6, 34, 83, 22, 58,230, 78,207,154, 20,178, 25,197,241,165, 95, 89,143, 41, 87,164, 72,118, 13,242,185, 77, 54, 17,
-248,114,100, 24, 73,190,220,182,130,119, 76,205,184,202, 56,169,198, 83,164,108,138,170,148, 69,177,178,186,242,103, 39, 31,187,
-244, 92, 50, 47,177, 68,121, 77, 90,136,110, 53,211, 42,162,127,149, 24,224, 73, 62,163, 33, 83,153,211,226,234,104, 66, 61,155,
-132,182, 97, 23,250, 77,186,137,220,210,210, 13,165,127, 10, 20, 75,236, 26, 94, 88, 98, 34,185, 51, 62, 25,142, 39, 74,244,218,
- 16,149, 69,137,161,168,138,198, 12, 74,115,102, 92,239, 75,178, 29,151, 88, 58, 15, 66,115, 67,116,203,183,105,125, 7, 44, 50,
-183,180,167, 14,109, 9, 56,189,149, 6,153, 41, 18,211, 45,232,233, 53, 17,146, 4,164,245,211,169,217, 92,120,193, 1,101,254,
-172, 68,111, 29,151, 88,235,179, 53,176,120,106,237, 75, 83,103,185,106, 89, 20,195,225,232,228,247, 30,223, 55, 5,105,203, 64,
- 2,105, 57,127, 32,220,197,117, 29, 71,168,231,108,210, 62,215,177, 94, 22,237, 72, 59,166, 33,128, 72,199,105,218, 65,103,235,
- 72,180,204,209,142,162, 31,105, 79, 6, 75, 17, 16, 73,123, 2, 68,246, 77,156,200,208, 18,143,152,148,116, 68,152,193,185, 11,
-162,186,127, 22,148, 25,254, 93, 44, 23, 77, 38, 55,168,107,251,120,157, 67,207,235, 82,251,250,202,111,114, 79, 69, 10, 19,163,
- 57, 73, 38,245,102,107,106,137,198,194,153,144,220,158,105, 38,241,136,135, 54,255,106, 13, 42, 49,179,243, 73,110,137,217,158,
-143, 43, 3,131,102, 80,150, 27,211, 70,247, 81, 65, 45, 5, 89, 69, 64, 89, 85, 65, 88,148, 33,138,221, 90,132,244, 20,209, 87,
- 16, 68, 94, 90, 75,192,234, 49,169,186, 29,189,231,131,160,199, 91, 19,237, 24,198,137,209, 44,172,210,242,123,169,119,174, 1,
- 39,174,169,178, 42,119, 39,215,101,230,162, 2, 36,208,193,120, 98,216,167,171, 76,248,140,136, 68,237, 72, 60,165,134, 53,158,
- 90,145,142,234,203,100, 64, 93, 92, 62,253, 39, 95, 52,168, 86,230, 54,124,208, 11,136,162,241,193,184,117, 67,153,105,157,218,
- 29,210,129,121,221,241, 15,153, 0,205, 57,164,236,113, 58,115, 80,159, 88,172, 42,251,167,160, 24,227, 68,130,187, 70, 29,197,
- 55,241,184, 28, 5,136, 13, 65,189,173, 42,175, 17,104, 41,212, 49,218,217,161,178, 78,119,249,152,164,236,213,218, 86,135, 72,
-244,206,129, 34, 36,141, 40,244, 76,166, 59,191,131,219,131, 53, 22,248,144, 11,232, 67,196, 91, 84,116, 63, 21, 20,139, 6,217,
- 55,147,182,204, 82,200,241, 93,247, 77,118, 71,210,174, 44,216, 65, 26,236, 44, 8, 22,131,230,158, 41,181,116,230, 54, 2,234,
- 36,104, 25,218,210,181, 29,236, 36,253,102,162,116, 14,185, 58,240, 37,149,210,246,143, 77,216, 58,105, 78,199, 65,165, 51,111,
-250, 43, 8,178,163,129, 69,154,102,219,187,208,134,127,176,131,245,221,210,114, 85, 46, 32,157,119, 58,234, 90, 65,186,243, 84,
- 22,104,174, 11, 36,223, 54,112, 91,168, 46, 38, 60, 34,125,254,202,104,176, 95, 10, 50,201, 30,152, 19, 42,220,211, 75,231, 83,
- 23, 44, 38,247, 32,166, 7,128,158, 99,210, 5,238,123,159, 9,222,139,163,210, 99,199,182,162,222, 81, 46,173, 26,165, 11,237,
- 51, 53, 92,122, 1, 88,175,191, 32,162,195, 45,184,137,152, 90, 38,142,172,174,152,125,226,164, 26, 72,217, 18,165,254,148, 5,
- 95, 2,121,193, 67, 62, 55,171,147, 79, 85, 21, 53,167, 94,216,182,176,244, 40,214, 34,139, 13, 23, 11,111,122, 39, 17,101, 51,
- 17,145, 69,101,246,119,128, 69,202,119,162,175,228,202, 66,215,248,160, 32,170,195, 2,175, 90, 59,176,175, 22,148,143,147,138,
- 84,237,238,169,122, 12,255,174, 81,170,157, 71, 78,191,144,236,119,186, 59,187,130, 78, 78,124,243,189, 59,168,251, 93,254, 33,
-189,195,212, 18, 53,187,205,229, 90,160,160, 93, 84,109,171, 3,230,119,128,136, 96, 64, 85,137,249,166,171, 14,239,159,130,160,
-199, 80, 7,237,123,150,206, 28,180,163,119,199, 12,164,211, 96, 86,113,127,167,207,198,176, 16, 49, 94,120,114, 82, 34,174,119,
-227,195, 5, 43,171,159, 3,107,223,144, 16,219, 51,157,192, 24,211,150,150,210,159, 50,223,124,205,209,125,116,210,201,178,211,
-174,212,182, 58,180, 45,100,121,155,111, 59, 86,226,137,189,189,134,128,246,222,244, 76,253,113,118, 16,250,115, 83, 72, 58,238,
- 46, 38,129, 45,149,191, 83, 51,162,118,219, 97, 91,205, 76,170,137,135, 24, 27, 4, 99, 48, 54, 19, 42,166, 99, 32, 21,128, 85,
- 15, 47, 15,151, 71,131,198,133, 75,181,160,232,104, 88,186, 94,186,222, 36,182, 30,185,127, 67,151,133,239,136, 3, 83, 16,216,
-107,231, 72,171, 15,250,187, 53,116,141, 59,208, 51,194,252, 19, 1, 76, 3,182,163,236,240, 65,154,131, 66,204,149,169,222,114,
-139, 93, 24,170, 90, 24,188,234,130, 67,155,159,217, 18,235,186,141,114,108,154,155,175, 68, 58,173,117, 25,194,194,247,253, 80,
-165,215,184, 1,189,118, 10,209, 29, 45, 67,253, 46,143,197, 93, 60,194, 32,186,120,231,194, 81,103,139,177, 97,139,144,183,197,
-108,104,171, 81,162,215, 28, 62,112,137,219, 89,116,210,144,207,194, 4,233,247,205, 40, 72, 23,254, 44,100,164,189, 46,173,228,
- 65,219,168, 47,118,228, 73,215,233,181,176, 3, 74,191,171, 74, 22,246, 53, 88,216, 25,122, 86, 41, 11, 71,192, 45, 58,162,158,
- 51,202, 77, 60,109, 31, 95, 52,199,235,142,174, 93,250, 54,223,206,115,182,161,188,210,242, 83, 66,182, 44,136, 97,139, 74,119,
- 86, 96,215,238,215,158,117, 42,253,246,183, 5,251, 74,237,105, 11, 46,188,181,151,206,112,186, 4,165, 85,142,228,226, 99,187,
-202,186, 88, 17,119,144,210,218, 75, 20,142, 29, 57,176, 31, 75, 76, 85, 1,165, 13, 83,243, 97, 7, 49,204, 89,124, 78, 0,221,
- 1, 28,102, 83,234,218,130, 51,228, 42,169, 63, 95, 22,252, 79, 14,181, 35,174,152,140,180,139,185, 65,251,122,203, 38, 12,105,
- 31, 88, 72,151,115, 61, 5, 80,251,197,202,238,189,170,168, 94,121,232,153,120,162,174, 29, 74,247, 11, 59,217,141, 97,184,111,
-127,129,151,244, 89,170,250,204,250,189,254, 31,131,117, 74, 17, 84, 89, 65,223, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/inflate.png.c b/source/blender/editors/datafiles/inflate.png.c
deleted file mode 100644
index 6ccef9603d7..00000000000
--- a/source/blender/editors/datafiles/inflate.png.c
+++ /dev/null
@@ -1,286 +0,0 @@
-/** \file blender/editors/datafiles/inflate.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <inflate_png> */
-
-int datatoc_inflate_png_size= 8840;
-char datatoc_inflate_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10,
- 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77,
- 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112,
- 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 19, 0, 34, 12, 33,
-249,187,131, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,125,105,180,101, 87,113, 94,213,222,231,220,233, 13,253,222,107,117, 75,
-173,110,181,100, 13, 72, 50, 72, 13,200,203, 96, 57,180,137, 72, 20, 47, 7,219, 66, 3,131, 77,134, 31,128, 18,201, 32, 44, 44,
-203,204, 34,194, 16, 20, 67, 48,150, 77,178, 48,136,197,138, 77,176, 96,101,145,193, 33,113, 86,236, 8, 7,107, 0,164,196, 78,
-188,146, 56, 72,104, 86,143,111,184,247, 76,123,239,170,252,168, 61,157,251,154,150,132, 21, 71, 56, 92,129,250,246,123,247,158,
- 83,167,118, 85,237,170,175,190,218,194,131, 7, 15,194,211,190,158,201,135,138,185,191, 47, 45, 45,253,219,175,252,222,116,186,
-249,232,195, 15,189,233,205,111, 73, 31,250,218,221,119, 59, 71,206,210,112, 84, 22,197,176,105, 59, 6, 53, 89, 92,254,149,219,
- 62,242, 11,191,120, 51, 0, 20, 68,132,186, 80, 64,101,169,141,233,172,107,219,182,109,219,166,109, 91, 99,157, 92, 73, 1, 0,
- 0, 50,128, 46,138,141,141,141,173,173,205,173,205,141,173,205,205,173,205,205,205,205,205, 79,254,198,237,254,118, 76, 0, 4,
- 77,211,212,245,172,169,219,182,237,166,211,141,227, 71,143, 62,249,216,195,167,158,186,251, 31,125,228, 67, 10, 0,152,136,152,
-140, 49,107, 59,119, 43,173, 14, 31,122,226,137,199, 30,125,248,161,111,117, 93, 61, 26, 47,168, 98, 80, 0, 0,177,115,206, 17,
-145,181,118,101,199,218,232,130,241,116,186,117,222,249, 23,106,173,219,166,241,183,115,225, 69,206, 57,114,128, 56, 26,141,181,
-210, 93,215, 18, 17, 17, 21, 0, 96,173,115,206, 89,107,156,115,206, 89,178,214, 57,249,159,127, 21, 0, 96,140,113,206, 58,235,
- 44, 57,178,198, 58,107,141,181,214, 89,107,173,181,206, 58,124, 70,107,247, 76, 94, 56,247,247,187,239,253,122, 93, 87, 27,199,
-143, 93,113,197, 21,233, 67, 47,121,233, 75,127,237,246, 95, 23, 5, 44, 45,175, 88,231,170,217,108,115, 99,253,240,161, 39,223,
-252,230, 55,203,135,244,151,255,213,191, 70, 86,128,170,174,166,170, 40,187,174,171,235,122, 86, 77,183, 54, 55, 95,120,193, 11,
-190,246, 71,119, 3,128, 98, 70, 70, 0,196,166,174,101,213,166,211,205,173,205,205,233,214,214,230,198,241, 95,249,200,135,228,
- 67,192, 12, 68,110,215,105,123,143, 30, 57,114,236,232,225,163, 71,142, 28, 61,114,228,208, 83, 79, 60,250,208,255, 26,142, 23,
-222,126,253, 91, 20, 51, 51, 59, 34,106,154,102,231,174,221, 27,235,235, 79, 61,241,248, 99,143,124,251,145, 7,255,199, 43,255,
-198, 21,136,106,215,105,123,241, 15,255,232, 94,231,200, 89,235,156, 53,214, 88, 99,102,179, 89, 53,155, 34, 34, 17, 85,179,233,
-116,107, 67,137, 90, 41, 45, 2, 21, 69, 57, 89, 88,208,186, 32, 34, 38, 98,226,194,175,171,115,198,134,207,145,113,214, 57,103,
-157,181,206,145,115, 84, 24, 99, 28, 57,138,159,176,198, 47,152,117,214, 57,107,173,115, 14,158,171,181, 83,240, 28,189,122,254,
-171,148,186,230,154,107,174,253,123,215,146, 35, 34, 90, 89,219,169, 84,225,136,172,181, 93,215,117,109,211,212,117, 85,205,182,
- 54,215,175,187,238,122,107,109,239, 66, 68,116,247, 61,247, 17, 51, 48, 48,147, 99, 6,230,114, 82, 0, 40, 6,101, 29, 57,103,
-141, 49,214, 24, 99,140,232,134, 25, 62,252,161, 95, 62,252,212, 99,183,125,244, 19,189, 71, 67, 93,160,214,168, 20, 40,165,116,
- 49,158, 44, 28, 61,124,184,170,102,213,108, 54,155, 77,103, 51,121, 51,147, 55,149,127,213, 93,103, 62,254,209,219,122,143,198,
- 12,192,192, 98,237,204,206,185,225,120,114,236,232, 81,165, 53, 0, 16,145, 49,198,152,174,109,218,166,169,155,186,154,110,109,
-109,172, 31, 59,252,228,227,103,159,123,254, 39, 62,254,177,106,186,249, 75,239,185, 69, 46,196,204,192,204, 68,196,204, 77,211,
- 12,134,227,213,157,250,201, 39, 30,171,166, 51, 49,175,174,107,229, 66,179,233,214,230,198,241,163,135, 30,155, 76, 22,180, 46,
-152,169, 28, 77,110,189,229,189, 5, 0, 56, 34, 32,242, 23, 2, 38,231, 28, 91, 38,218,181,235, 84,179, 98,170,106,182,190,126,
-188, 51,157, 49, 93,215,181,186, 40,246,238,255,129,139, 94,252, 67,147,201,132,153,186,174, 67, 84,186,148,184,228,156, 92, 7,
-152,136,153,200,145, 99, 34,199, 68,192, 52, 26, 13,119,237,218,189,182,118, 10, 57, 43,198, 75,142,156,179,214, 90,103, 28, 19,
- 19, 51, 51, 72, 88, 50,162, 11, 38, 34,185, 20,177, 99,199,142,136,153,156, 35, 34, 38,231, 63,224,136, 40,248, 3,201, 85,179,
-248, 6,204,196,142,136,137, 29, 16,136, 72,204, 44, 17,148,153,157,179,114, 27,231,172,115, 68,222, 87, 68,176, 16, 3,173,237,
-136, 9, 8,136, 69, 40,241,118,175,123, 34, 71,142, 28, 59,114,196, 68, 78, 28,208, 58,107,140, 13, 33,246, 57,141,147,207,201,
-107,255,254,253,207,153,211,254,223,241,254,237,175, 59,191,248,165,211,247,158,225,172, 13,190, 63,251,192, 45,239,255,147,255,
-246,223,159,102, 43, 25, 14,135,159,254,244,167,247,236,217, 67, 68,142,220, 41,187,246, 48,176,115,212,117,157,233,218,166,174,
-197, 69,214,143, 29,121,219,219,111,156,211, 17, 2,192,157, 95,250,226,105,167,157,142,128,204, 44, 22,224, 28, 45, 45,239, 64,
-165,153,201, 90,107,140,233,218,182,105,154,166,158, 85,179,217,214,230,198,147,143, 63,242,193, 15,223,150, 95,168,184,231,190,
-175, 19, 49, 3, 48, 49, 19, 33,128, 42,180,210, 68,204, 24,172, 88, 34,180, 55,104, 34, 98, 30, 12,199,243,202, 70, 85, 32, 42,
- 68, 4,133,136, 74,235, 98, 52, 26,145, 35, 31,201,140,233, 58, 99,173,181,198,154,174,147,208,230,172,117,228, 94,119,229, 79,
-246,148,141,136,136,200,196, 0,136,200, 74,235,166,174,218,174,149, 31, 16,145, 13, 97, 36, 4,128,174,237,186,174,109, 23, 22,
- 38, 90,107,231,178, 36,136, 25, 88,212,206,204, 12, 74, 23, 77,211, 52, 77,221, 54, 77,219, 52,109,219, 54, 77, 35, 42,106,219,
- 86,126, 40, 1,238, 99, 31,189,109,117,101,135,191, 16, 51, 0, 2, 34, 16, 17, 1, 16,145, 46, 74,211,117,117, 85,213,213,172,
-174,171,186,170,155,166,105,234,166,109,154,186,170,234,170,170,102,179,217,116,171,174, 42, 93,148,239,126,215, 59, 17, 81, 36,
-146,240,232, 31, 85,194,196,242,202,106,211,212, 85, 53,171,170, 89, 85, 77,171, 89,140,223,211,217,108,107,107,107, 99,227,248,
-225,189,103,158,163, 80,233,162,252,224, 7,222,199,204, 5, 51, 51, 19,203,245, 36, 66,119,102, 52, 26, 47, 46,237, 56,114,248,
-169,174,235,172, 87,121,219,212,117, 85, 85,211,173,205,245, 99,135, 55,214,143, 29,248,161,151, 35, 42,165,148, 46,202,203, 94,
-249,138,130,153, 1,152, 73,210,188, 16,185, 29, 47, 44, 46, 18,185,195,135, 14,205,166, 91,117, 93, 55, 77, 93,207,170,217,108,
- 58,221, 60, 94,207, 54, 47,122,233,203,119,172,172, 1, 0, 32, 42,165, 81, 21, 34, 17, 51,131, 15,153, 12,204, 62, 14,141, 70,
-227, 93,167,158, 58,158,140,215,143, 31,223,220, 88,103, 98,165,213,202,218,218,234,202,234,142,149, 21,165,181,179, 86,182, 31,
- 68, 44,152,217, 57, 47,146, 68, 50, 17,138,136,136,169, 44,138,165,165,229,209,112,184,186,186,102, 76,231, 28, 33,130, 82,138,
-153,173,181,254,206,113,167, 5,112,156, 94, 94, 28, 32, 6, 98,102, 70, 68,173,139,209, 72,149,101,233, 66,148,245, 87, 73,171,
-132, 5, 17, 59, 71, 94,211,226,108,142,152,217,129, 11,145,151,200, 63, 55, 75, 82, 29, 5,143, 47, 0, 46, 56, 62, 78,120, 36,
- 9,216,217, 35, 58,246, 59,139,127,222,248,255,248, 37, 6, 40,124,184, 39, 34, 96,246,187, 90,184,166,139,235, 64,254, 86,254,
-203,196,204, 46, 94,145,153,153, 11,114, 46,126,215, 63, 0,113,184, 6, 57,231,124,110,199, 68,228, 28,115, 18, 39, 60, 55, 17,
- 3,115,225,136,156, 35, 31,136,124, 56, 10,247,116,142,153,228,214,254,102,228,228, 73, 37,190,196,135,141, 18, 81, 16,135, 28,
- 17, 36,125, 16, 51, 57,158,191,127,220,252,194, 38, 76,204, 12,207,171,125,237,140, 51,206, 80,240,124,122, 33,226,243, 75,160,
-167,223,102,159,225,235,188,243,206,123,231,187,222,117,214,153,103,185,224,207,214,116,191,243,133,223,249,237,207,127,254, 89,
- 43,233,224,193,131,119,221,117,215,119, 33,196,103,238,248,236,139, 46,186, 24, 0,197, 7, 37, 21,115,142,200, 23,168,146,223,
-119,166,107,235,186,217, 88, 63,250,243, 55,222,244, 76, 82,163,121, 13, 93,114,201, 37,111,187,225,134,125,123,247,149,131, 1,
-199,240,211, 11, 59,188,188,188,162,180, 70, 80,128, 64,196,200, 68,140,128, 8,128,232,191, 1,192,146,156, 40, 64, 85, 20,229,
-226,210,202,237,183,127,162,154,110,221,252,206,247,112,220,173, 78,184,100, 68,116,207,189,247, 17,177, 92,196,223, 31, 64, 82,
- 9, 9,225, 41,235, 97, 55, 28, 77, 0, 21, 51, 50, 16,135,253, 38,166,203,206,231,188, 36, 81,201,145,163,144,130, 51,163,210,
-229, 45,239,123,239,191,251,202,239,126,237,158,175,159, 44,231, 67,165,149,214,160, 52,162, 66, 84,168, 80,201, 54,133,136,168,
-148,210,186, 40,134,195,145,237, 26, 68, 29,227,190, 11,214, 34, 85,168,228,200,178, 84,130, 45, 88, 43,197,172,252,202, 74, 78,
- 14, 0,127,229, 21,175, 24,141,134, 39, 21, 8, 21,160, 82,128,168, 20, 2, 32, 40, 41,240, 17, 20, 0,104,173, 7,131, 1, 16,
-117, 93, 23,234,190,206,164, 87,215,117,157, 53,157,233,186,174,109,229,141, 79,167,252,159,242, 97,219, 25, 99,140,136,107,223,
-248,186, 43, 79,234,101,136, 64, 4,136, 12, 36,102,128,160, 8, 8, 17, 16, 21, 42,133,168,228, 62, 12,168,180, 21,229, 69,227,
-242, 91, 21,249,114,223, 69,141, 89, 95,179,118,157, 23,183,107,219,182,105,187,166,233,186,246,215,127,237, 19,166,107,110,185,
-245,151,215,215, 55,182, 9,228,115, 59,246, 50,249,164, 13, 72,172,143,136,136,203,225, 72, 41,221,212, 53,106, 45, 2,121,155,
-139, 62, 22,234, 36,231,215,206, 4,145,124, 46,212,181,109, 83,215,117, 61,173,102,211,217,230,113, 64,212,229,224,253,239,125,
-143, 49,237,175,254,234,237,143, 61,241,100, 86, 17, 3,139, 48, 68,128,136,132, 12, 36, 78,130, 68, 68,136,206, 89,165,212,242,
-202,218,250,177,163,117, 93,133, 85,150, 82, 90,242, 3,142,234,241, 66, 25, 99, 67,238,106,186, 78, 96,187,166,154, 86,179,233,
-214,198,225, 83, 78,221,107,140, 41,203, 82, 23,192,204,111,123,219,245,117, 93,221,242, 15, 62,156, 74,116, 4, 34,242, 14,198,
-196,200, 0, 8, 4,196,192, 64, 96,217, 34,162,214,122,101,109,173,216, 42,183, 54, 55,154,186,246,187,232,118, 13,249, 18,215,
- 26,107,252,106,181, 93,219,212, 77, 61,171,102, 91,179,173,227,109,231,206,223,117,154,242, 62,196, 74, 23,154,104, 56,156,188,
-255,125,239,190,239,222,123,243, 82, 31, 0,125,254,200,200, 36,122, 99,144,178,148,195, 94, 51,158, 44, 20,229,160,154,205,166,
-211,173,186,154,117, 93, 39,185,127, 64,135,228, 31,193, 61, 58, 73,233, 69,154,122,182,213,182,213,100,188,240,131, 7, 14,156,
-122,218,233,101, 57, 0,100, 36, 84, 74,161,210, 74,185,178, 40,118,239, 62, 53, 8, 36,165,140, 88, 5,249, 36,155, 33,230,101,
- 30,118,145, 16,165, 16, 39, 11, 11,131,225,160, 91, 90,106,234,186,174,170,170,154, 53,174,178,214,118, 93, 43, 94,214,117,157,
-237, 58, 99, 58,107, 12, 57, 59, 24,142, 87,215,118,175,172,173,173,172,172, 78, 22, 22,202,178,244,249,141, 55, 96, 31, 95, 80,
-105, 47, 16,249,212, 47,132, 69, 73,115,189, 16, 64,204, 49, 90,250,156, 25, 8, 17,135,131, 65,161,245,120, 60, 94,222,177, 35,
- 68, 0, 47,132,181, 86,114, 29, 89,107, 93, 20,101, 81, 40,173, 37, 5, 6,102, 34, 7, 0, 24,242, 96, 14,101,167, 8, 36,249,
- 99,140,233,156, 12, 42,104,204, 11, 2,178,182, 33, 93,245,197,152, 42,203, 82,194,213, 56, 37,167, 33,113,100,138, 95,144, 43,
-147,207,154,153,153, 9,226,175, 68, 30, 44,196,175, 33, 24,181,104, 1, 68, 76,175,150, 96,186, 0,209,178,124,150, 29,158, 67,
- 62, 43, 17, 13,148, 82,132,160, 64, 60,133, 72, 76, 83,240,168,144,244,230,137,121,168,198, 68, 42, 17,200, 63,134,188, 23,253,
- 17,203, 82, 81, 88,178,240,131,244,196,243,217, 62, 51, 49, 1, 67, 82, 78,239, 55,196,153, 48, 89,197, 68, 28, 51,117, 6, 14,
- 75,198,146,229,251,154,200,171,141, 67,229,199, 98, 73, 4,105,255, 79, 58, 10, 69, 34, 37, 11,147,236,220,215, 7, 20,227,185,
-247, 31,142,133,134, 0, 71, 94, 86, 34, 6,129,193, 36,141,137, 38, 29,149, 24,108, 57, 74,227,101, 6,150,252, 93, 44,140, 73,
-234,186, 32, 3,199,202, 35,160,125, 1, 59, 36,255, 25,169, 24,130,149,197, 42, 64,190,233,145, 66,111, 56,193,214,162,103, 5,
- 75,138, 5,105, 20,152,227, 87, 2, 56,152, 23, 77,178,114, 81,168,124,189,136,152, 64,204,222, 69,251, 79, 38, 32, 26, 34, 34,
- 7,208,187, 41,202,211,123,239,207,252,189,159,181,249,171, 65, 84, 13, 5,185, 92,192, 85, 93, 16,200,197, 34, 50,214, 66, 2,
- 27,114,172,139,128, 10, 68,252,234, 93,127,192, 30,222, 13,209, 49,127, 19,131, 1,243,220,191, 99, 50,151,201, 10, 73,209, 73,
-254,104,118, 62,196,100, 43, 75,121,185,187,190,190,249, 60,195, 27,165, 54,123,254, 8,115,240,224, 65, 37,153,205,243,231,245,
-188, 43, 20,191, 47,208,247,156, 64,207, 77,109,127,221,245,215, 93,125,245, 53,146,115, 89, 99,156,179, 15, 61,244,208,173,183,
-222,122,232,208,225,191, 80,129,174,187,254,250, 55,190,241,111,163, 82, 1,131, 34, 68, 11,168,208,170, 51,207,252,129, 79,126,
-242,159,152,174,253,147, 63,254,175, 31,252,208, 63,124,230,215,212, 59,118,236,216,216,216,120,182,162, 28, 56,112,224,223,252,
-238, 87, 14,188,248,165,168,149, 47,154, 48,107,195,133, 36,129,152, 87, 87,215, 94,253, 55,127,226,161, 7, 31,124,234,208,161,
-167,189,236,153,103,158,249, 29, 53,164,181, 62,247,220,115,175,188,234,202,203, 46,187, 76, 41, 21,179, 62, 38,158, 44, 44, 12,
-199, 19, 70,229,171, 55, 65, 25, 72, 10, 39,145, 13, 89, 18,101, 68, 84, 10,149,190,246,218,107, 31,248,230, 55, 62,245,153,207,
- 62,235, 37,187,233,166,155, 46,189,244,210, 83,118,237, 98, 6, 71, 78, 58, 33,204, 12, 8, 64, 4,192,147,165,241,112, 48, 70,
-165,194,134,135,178,119, 33, 34,132,234, 37,219, 3, 17, 1, 0, 81,235,226,194, 23,190,240, 13,175,187,250,243, 95,248,226,211,
- 8, 68, 68,101, 89,254,220, 91,127,238,154,107, 94,235,136,125, 73,202,140, 8, 26, 81,242, 16,191, 26,136, 10,177, 44,135,160,
- 84, 72,207, 41,150, 7, 60,143, 82, 75,214,196, 4, 40,165,176, 82,250,226,139, 15,252,251,255,240, 31,143, 30, 61,118, 50,183,
-191,238,250,235,255,224, 63,125,245,181,175,125, 3,162,214,186, 80, 74,131, 96, 32,168,100, 9, 84,168, 81, 10,165,203,114, 0,
-210, 61,162,136, 18,251,173,218, 69, 60,153, 67,182,229, 19,201,136,114, 3, 0,254,253,183,188,233,105,226, 16, 51, 40,173, 81,
- 33, 32, 34, 2, 3, 40, 20, 77,163, 82,136,128,128,168,148, 42,138,194, 57,227, 17, 41, 73, 94, 67, 74, 69,169,221,154,146, 29,
- 23,254, 22, 16,110, 15,207,163, 82, 23,188,224,188,147, 9,132,136, 10,149,152,160,148,236, 12, 10, 17, 1,129, 89, 73,107, 68,
-107, 93,150, 37,135,206, 90, 68, 59,228,198, 46, 38,126,210, 89, 77,194,248, 15,177,243,169,155, 44,239, 95,127,213,193,147, 27,
- 53,178, 66,223,255, 96, 36, 69, 72, 0,140, 0, 28,245,164,139, 98,182,181,206, 12,206,145,247, 33, 95, 8,164,222, 72,232, 93,
- 7, 24,205,133,198,175,115, 46,207, 19,153,165, 58,253,206, 91,135, 96,133,136,136,194, 33, 10,113,133, 1, 17, 16, 1,181,214,
- 90, 85,213,204,249,254,180, 75, 18, 36,140,193, 70,172, 33, 96,123, 66,241,200, 97, 26,255, 99,114,116,214,254,189, 39,219,203,
- 88, 90,112, 28,123,168, 12,192,160, 20, 48, 3,162, 18, 95, 35, 97,177, 56,143,177,102,239, 69, 12,223,198, 12,104,149,179,129,
-136, 98, 29,185,240,113,223, 22,183,215, 92,249,211,175,127,221,213, 39,129,244, 48,114,172,124,146,236,193,159, 16,229, 24, 16,
-149, 39, 36, 57, 1, 15,131, 44,254,246, 94, 8,255,179,112,247, 12,125, 52, 54,125,219, 26,107,126,228,101, 47,191,241,134,235,
- 79,162, 33, 96,228, 76,184,244,146,146,190, 24, 12, 60,204, 98, 76, 16,204, 56, 97, 79,137,136,129,101,224,127, 96,157, 49,198,
-203,104, 19,189,202,152,206,154, 22, 16, 85, 81,236, 59, 99,255,187,110,126,199,137, 4, 2, 64,223,122, 77,189,111, 6, 32,140,
-237, 88, 28, 12, 71, 68, 46,192,225, 9,247,180,198,100,224,157, 13, 40,172, 23, 81,126,110,173,177,157,177,198,216,174,179,166,
-107,219,102,121,105, 85,161, 46,138,114,117,109,231,205,191,240,246,237, 75, 6,130, 9, 49, 0, 17, 96,216,146, 66,125, 76,196,
- 52, 24,140, 10, 93,202, 35,250,123, 8,104,103,140, 49, 93,176, 43, 19,212, 32,130,202,175, 4,137, 21,168,166,109,219,166,173,
-167, 11, 75,203,128,128, 74, 21, 69,185,182,182,243,239,252,236,235, 51,129, 2, 64, 35,181, 33, 98, 4,108,216, 51, 58,152,137,
- 72, 41, 53,154, 76, 0,192, 24,103,163,114,130, 40,210,232, 13,152,113, 39, 8, 99,103, 58, 43,205, 5,223, 30,111,218,186,110,
-234, 89, 85,213, 66, 70, 66, 84,168,180,210,197,249, 23, 92,240,163,151,190, 44,203, 24, 89, 80, 94,193,244,252,190,142,128, 1,
- 15, 33,129,136,134,195,209,112, 52,102, 38,143,213,181,157,233, 76,215,182,166,107,173, 7,171, 4, 60,238, 4,200, 11,127,182,
- 93,219,181, 77,211, 54,117,219, 84, 77,181, 85,148, 99,244,123,174,236, 74, 90,235,226,199, 47,255,107,101, 89, 48,179,130,164,
- 30,239,255,161,166,103, 89, 57, 38, 79,152, 81, 90,143, 23, 22,134,163,145,116,129, 3, 40, 46,146,180,166,107, 77,215, 10,164,
-231,165, 17, 96,186,109,218,182,105,155,170,169,171,170,218,106,155,110,121,199,114, 81, 14,100,175, 68, 68, 84, 8, 10,149,210,
- 55,191,227, 6, 0, 40, 60, 46,230,195,160,108,136,136, 0,140, 57,178,224, 63, 82, 22,229,194,194, 34, 57, 55,155, 77, 5,235,
-236,199,105,202,220,202,154,128,192, 10,129,164,174,166,109, 61, 35,128, 61,251,206, 28, 12,134,168, 16, 72,156, 90,186, 25,186,
- 40, 7, 17,176,146,181, 2,102, 68, 8,125,152, 72, 48, 96, 70, 0,199, 62, 51, 41,202,114,178,184,200,204, 83,154,218,214,223,
- 62,180,189,189, 99, 57,107, 67, 95,161,237,218,166,109,170,186,154, 54,245,148,153,247,159,121,206,218,206, 93, 69, 89, 34, 42,
- 6, 39, 74, 10,168,167, 6,128,194,103, 83, 17,121,165, 24,126, 34,212, 9,236,193, 97,143, 12,151,229, 96,188,176, 32, 54, 57,
-163, 25, 24,235,156,243, 78,111,141,243, 6, 47, 38,213,182,109,221, 54,141, 53,237,112, 56,222,185,251,244,211,247,158,177,176,
-184,164,181, 78, 77, 42,191,175, 43, 73,250,138,196,187,241, 80,103, 0, 29, 57,110, 36, 30,187,102,138,215,224,178, 44, 97, 60,
- 65, 84,170,208,149, 46,176,158, 17,145, 53,150,137,173,135,171, 61, 33, 21, 65, 13, 71,227,229,229,213,229,149,149,213,181,157,
- 75,203,203,131,225, 80, 43, 21, 49, 97,224,100,223,222,134,196,195, 25, 16,145, 50,158,129,199,216, 56, 98,194, 9,124, 97, 73,
-186,135,163,161, 82, 88, 20,197,112, 56, 24, 54,163,166,174,219,182,233,218, 65,215,117,118, 96, 70,206, 50, 3, 42, 53, 24, 12,
- 70,163,209,120, 50, 25,141, 70,101, 57, 64, 68,136, 6,145,222, 72, 11, 48, 52, 95, 56, 42, 38, 6, 68,134,158, 41, 37, 92, 55,
- 96, 63,194,249, 41, 75, 65,162, 7,195,114, 52, 30,123,106,143, 49,206, 57,185,134, 82, 88, 20,186, 40, 74, 93, 20, 90, 41, 64,
- 79, 48,228,200,206,153,207,135, 18,184,155,173,151,207,221,189, 64, 20,190,156,178,103,191,163,176, 66, 5, 90,139,194, 10, 93,
-186,193, 48,165, 40,226, 38, 62, 15, 86,161, 78,138,207, 26,180,222, 23,170,136,200, 25,179,240,143,188, 26, 41, 0,252,192, 89,
- 18, 16, 21,157, 60,145, 37,229, 6, 0, 40, 10,201, 47, 41, 80, 46, 34, 86, 26, 49,179, 8,176, 97,190,123,179, 68, 66,140, 94,
- 22,133, 22,177, 60, 38,156,221,222, 11, 64, 61, 0, 30, 60,140,238, 85, 7, 74, 33, 49,162,214, 10,165,165,132,132,164, 60,108,
- 76,177, 57, 28, 46,149,172, 51, 25,119,138, 67,126,177,162,182,146,199,115,170, 17,121,174, 63, 29, 22, 51, 98,136, 94,219, 24,
-194, 61, 10,136,223, 7,111,189, 9, 98, 20,162,135,105,202,146, 73,100,204,212, 17, 20,197, 16,128, 88,232,225,194,113, 85, 19,
- 50,138, 32,113, 62,217,106,170, 27, 99, 67, 39,126, 1,164, 25,145,115,126, 66,107, 33, 24, 73,106, 42,144,247, 57,142,158,239,
-187, 28,220,235,189,244, 58, 49, 81,106, 10,253,135,232, 41,153, 47, 64,232,137,198,240,193,201,134, 68,142, 34,129,185,208, 19,
- 54,117,113, 32,127,144,244,204, 20,160,221, 20,226, 51, 4, 27,130,121,109, 91,234,176, 55,102,189, 37,128,228, 50,133,100,101,
-148,109, 98,196,169, 85,230,165,137,245,114,208,115,240, 52,217,252,146, 58,114,204, 63, 48,219, 32,123,148, 28,114,135,185,118,
- 16, 71, 13, 17,164,123, 80,114,197,208, 97,136, 87,163,100, 76,253,167, 14,237,105, 72, 11,145,223, 29, 50,165, 36,246, 92,214,
-199,232, 45, 89,104, 10, 0,228,160,123, 90,178,216,109,201,168,129, 61,105, 82,187, 49,220,168,239,148,112, 2, 52, 34,107, 79,
- 69, 47, 12,253, 50,246, 45,195,244, 16, 20, 35,122,188, 28,197, 62, 72,112,221,116, 7,239, 51,222, 21,192, 55,135,152, 35, 33,
-177, 39, 57,244,217, 45,148,169, 88,238, 90, 4, 30, 59,197, 14,107,220, 51,164,169, 3, 0, 4, 4, 73,171,220,179,151,204, 19,
-100,233,145,193, 65,106, 70, 66,111,105, 78,208,247,203,148, 36, 54,196, 41, 46,199,213,227, 16, 74,105,206, 92,122, 75, 70, 30,
- 4,137,194,164, 30, 85,192, 70,224,132, 50, 80,182,158,189, 27,136, 64,190,189,149,236, 42,236, 59, 24,148,148, 20, 74,148, 25,
- 90,118,201, 12,182,202,212,233,187,162,125, 44, 43,110, 63,114, 27,202,205, 44,198,161,185, 14, 83,200,145,210,102,152,158, 96,
-206,248, 51, 12, 15,104,206, 41,146,187,246,174,192,169, 93, 77,208,135,221, 0,160,120,248,161,135, 50, 18, 41,115,255, 95, 89,
-131,108,238,175, 61, 34, 4,164,127, 40, 17, 14,250, 45,179,108,203, 79,157,207,160, 52,143,120,121, 14,218,241,227,199,215,215,
-215,159,111,109,161,255,183, 47,102, 94, 89, 89, 89, 93, 93, 45, 0, 96, 99, 99,227,145, 71, 30,249,190, 82,182,147, 60, 87, 87,
- 87,213,247, 21,241, 61,214, 44,251,190,130,190,175,160,191, 92,175,226,249, 41,214,218,218,234,190,125,251, 70,195,209,104, 60,
- 6,224,182,237,170,217,236,201,167,158, 60,124,248,200,255, 95, 10,218,121,202, 41,231,157,123,238, 43, 14,254,216,229,151, 95,
-190,184,184, 40, 25,146,179,142,209,207,133,101, 51, 24,169, 25, 38,195, 97,135,158,122,242,174,187,190,122,207,189,247, 62,242,
-200,163,115,211,174,223,219, 10,210, 90, 95,117,245,213,111,255,249, 27, 11,173,137, 1, 17, 51,110, 20, 33,176,210,200, 76,172,
-164,193,141,138,144, 1,149,135,214, 28, 32, 50,128, 98,216,125,234,158,215, 92,121,229,171,127,242,167,156, 53, 68,246,254,111,
- 62,240,155,159,185,163,170,170,231,169,130,138,162,216,183,111,239,238,221,187,151,150,150, 39,147,201,112, 56,152, 76, 38, 11,
- 11, 11, 17, 70, 36,162,211,246,156,254, 87, 47,123,213,226,226, 34, 17, 72,147, 95,197, 94, 58, 32, 50, 33, 42, 6, 22,141, 97,
- 64,106, 4, 8,101,148,182,157, 2,100, 68,133,138,145, 25,149,246, 93, 73,167, 46,126,241,139, 63,254,143, 63, 86, 87,179,187,
-239,190,251, 11,119,126, 41,193,146,127, 1, 10, 82, 74,237,221,187,119,207,158, 61,231,156,115,206,133, 23, 94,120,230, 89,103,
-237, 63,227, 12, 93, 20, 49,191, 39, 63, 58,150, 0,190,188,162, 71,196,201,100, 82, 14,134, 50, 10,201,136, 74,163,148, 82,128,
- 42,107,249, 40,144, 82, 33,193,104,152,193, 33, 17,215,192,152,201,249,110, 90, 64,219,153,121, 48, 26,255,200,165, 63,250,178,
-151,253,240, 3,247,223,255,219,255,252,206,206,152,231, 64, 65,249,184,135,244,229,207, 57,231,156,171,174,186,234,242,203, 47,
-215, 69,225,235,123, 41, 68, 82, 9, 36, 18, 10, 97, 94, 43,237,149, 18, 91,163, 24, 10,218,209,176, 28, 12,199,168, 20, 42, 37,
-173,255,216,128, 75, 0,210,137,166, 88,114, 64, 37,175,250, 34, 74,146, 17, 64, 3,182,141, 74,128,105,114,238, 7, 95,244,162,
-247,189,231,220,127,241,229,127,249,141,111, 62,240,231, 82, 16, 51,175,172,174,254,216, 43, 95,121,197, 21, 87,172,172,174, 78,
- 38, 19, 0, 36, 34, 96, 16,202, 11,166, 6,117,104,186,132,117,244,125, 35, 89,116, 65, 55,125,239,139, 1, 80, 1,140,138, 66,
-151, 37,162, 66, 64, 72,208,102, 62, 89, 3,125,100,171,167, 42, 8, 99,192, 57,141, 55, 85,186,137, 99,158,136,169, 30, 83, 65,
- 84,170, 64, 93,252,244, 79,189,250,135, 47,121,201, 39, 63,117,199,119, 31, 49,247,239,223,255,154,215,188,230,245,111,248,153,
-165,229, 29,131,193,208,183,210,148,192,223,232,167, 96,149, 63,158, 68, 41,209, 86,124, 3, 10,195,100,146,146, 47,121, 58,134,
- 80, 70,148, 46, 81, 41,223, 85,142,235,207,240,157,208,229, 84, 82,247,138,234, 56, 62,152,246, 51,142,124,227, 52,125,233, 40,
-253, 90,134, 31,153, 28,141, 70,163, 11,206, 63,231, 79,255,244,127,154,103,185,211,237,216,177, 99,101,101,197, 79, 3, 41,165,
-101,200, 38,244, 25,149, 31,157,150,105, 11,105, 48, 34,128,124, 64, 1,131, 2, 64,165, 20,248, 81, 38, 81,140, 42,138, 98, 48,
- 24, 32,176,181, 6, 81,205, 19,204, 51,218, 76,218,186,243, 62,100,120, 54,249,169, 11, 3,168,142,226,208, 39,197, 97,206,108,
-210, 50, 13, 96,102, 32, 70, 36,247,227,234,202,218, 79,252,248,171,254,124,153, 52,122, 95, 17, 54, 10, 0,130, 12,173, 33,176,
-152,139,194,248, 97,228,224,123, 28, 67, 36,134,217,136,210, 89, 83,205,182,242, 81,188,200, 47,207,168, 69,185, 45, 8, 61, 37,
-157,161, 32, 83,186, 94, 71,142, 60,159, 38, 17,109, 60,237, 38, 12,178,185,248,135,231, 42,185,196, 90, 15, 35,182,176,111,239,
-222, 75, 94,114,209,119,187,139, 33, 34,160, 31, 0, 66, 86, 36,243,100,140, 4,128,138, 49, 68, 65, 21,126, 2,132,140,190, 17,
-232, 45, 78,152, 78,138,137,182,182,214,153, 65, 17,163,163,208,220, 86,152,168, 54,189,110, 22,193, 60,162, 28,231,124,101, 92,
- 32, 12,252, 70,147,241, 42,138,227, 71,241, 96,140, 56, 30, 69,225,140,140, 64, 97,242,254,120,201,129,139,190,121,255, 31,243,
-119,185,205, 35, 0, 73,183, 81, 33, 18,112,212, 64,136,195,242, 6, 88,116,226,163,107,162, 38, 42,165, 53, 34,116,166, 53,198,
-104, 85, 56,103, 25, 88,177, 70, 36, 84, 10,101,172, 49, 98,114, 57, 70, 76,113,120,133, 32,167,245, 51, 59, 25,240,150,243, 76,
-146, 57,134, 35, 68, 82, 86, 29,108, 45,158,185,224,136, 28,229, 39,240, 56, 34,235,220,205,239,120,235,239,255,225,221,247,221,
-247,141,103,158, 37, 21, 25, 60, 20, 27,109,201,121,160,223,203,100, 0, 78, 84, 25,206, 8, 27,158, 85,233, 44, 1,163,117, 78,
-218,109,132,164,180, 70, 34,244, 57, 11,200, 34,112, 15,187,229, 20, 58, 40, 64,195, 68,189, 81,255,100, 64, 46, 11, 93,156,230,
- 68,179,201, 58,225, 76,249,161, 76,233,205, 27,227,172, 33,226,174,235,254,214,207,254,204,235, 95,123,245,183,190,245,224,167,
- 62,253,217,166,105,158, 85,162, 24,244,146, 78,145,240, 59,187,231, 27,202, 92, 94, 68,205,115, 98, 65,248,134,112,109,140,233,
- 44, 88,197,140, 74, 41, 38, 81, 95,100,145,229, 89, 16,229,173,184,222, 62, 70,253,105, 10,241, 41,142,195, 40, 49, 24,101,103,
-207, 36, 5,185, 48,160,233,201,100,158,226,212, 18,147,214, 5, 49,156,125,246,217, 31,254,224, 7,142, 28, 57,114,199,231,254,
-217,227,143, 63,241,140, 20, 68, 28,227, 10,199,180, 6, 78,196, 55,224,152,200, 18,129, 82,113,191,246,236,129,193, 80,104, 85,
- 10, 9,253,164, 46, 74,160,135,156,192, 48,223,132,137,227, 49,114, 18, 2, 37, 35,114, 57, 55, 50, 41,168,231, 99, 94, 71, 54,
-178, 95,172, 39, 86,153, 48, 0,216,154,182, 46, 7, 35, 6,165,148,134, 2,200,185,181,157, 59,111,188,225,173,199,142, 29,253,
-141,127,250,155,115,147,172,243, 10,242,197, 15, 3, 98, 78, 56, 9,209,201,191, 65, 2, 10,221,110,111,111,144, 58, 21, 10, 0,
-148,214,131,225,200, 90,219,212,149,117, 14,201,249,116, 1, 20, 42,152, 59, 86,230, 36,249,115,190,155,115,110, 60,233,141,216,
-148,203,200,164,150, 92,154,207,180,214,216, 48,191,218,117, 77,219, 84,117, 93,173,172,238, 34,114,194, 82,246,102,129,110,101,
-101,245,151,110,186,241,225,111, 63,124,199,231,126,171,222,230,116, 5,228,101,143,159, 22,143,229, 35, 8,167, 9,129,133, 17,
-236, 63, 36, 25,117,226, 36,120, 74,143,184, 82, 57, 24,140,104, 66,204,109, 35, 52, 55, 10, 52,151, 72, 61, 71,200, 91,198,112,
- 2,245,100,126,230, 79,212,201, 99, 80,136, 61,121,244, 9, 19,253, 18,131,188,115,181,166, 53,157,169,219,186,106,234,233,194,
-226,138, 82,104,173, 45,139, 82,116,196, 12, 10,160, 40,193, 90,220,183,127,255,123,223,253,139,247, 63,240, 95,238,252,210,151,
- 79,232, 98,190, 51,135,158, 95,138,161,248,244,190, 19, 8,239, 40,123,151, 31, 54, 67,244, 60, 57, 31,173, 61,147,184, 28, 12,
-198,204, 8,208, 52,181, 49,134,200,113,100,153, 96,242,210, 84, 74,101,109,110, 74,163,121, 25, 41,155,243, 12,217,101, 1,200,
-159,163, 21,167,229, 93,118,234,129, 53, 93,215, 54, 93, 91,181, 77, 5, 80,236,220,181,203,145, 11,100, 90,201,221,148, 3, 70,
-102,173, 11, 0,116, 14, 15, 92,124,241, 11,206, 61,247,142,207,253,214,227,249,144,118,210, 16,138,165,136,118, 88, 54,159,244,
-198,243,105, 24, 66, 26,192,196, 33, 75,242,244, 34,165, 20,251, 9,215, 1,200, 17, 2,109,211, 54,141,181,198, 57,202, 41, 27,
- 8,114,153,208,156,101, 72,211,147,180,173,218,240,201,140,228,147, 78,146, 30,226,224, 85,105, 20,219,248,232,220,117,198,180,
- 93,215,152,182, 50, 93,219, 25, 90, 88, 24,141,198, 11, 90,151,222,223, 81,216, 48, 82, 34, 49, 48, 43,165,152, 53,107, 30,142,
- 38,111,121,211,223,253,223,127,246,103,191,247,251,255, 57, 84,243,158, 64,201,236, 29,202, 15,251, 35,202,154, 34,162,160, 16,
-200, 64, 41, 18, 49, 51, 50,250,142, 48,167, 66,222, 23, 37, 80,148,165,167,144,106,221,182, 77,215,118, 98, 77,146,247, 1,204,
- 57, 87,136,211,148,230, 11,120, 62,237,118,113,131,247, 41, 96, 48,158,200, 15, 22,237, 88,211,153,174,238,218,218, 24,227, 28,
-148,131,114,247,105,123,151,150, 87, 7,131,129, 82,218, 91,177,192, 76,178, 53,161, 98,100,153, 97, 47, 10,109, 29,159,125,206,
-185,151,235,242,193,111, 63, 90, 64,162, 49, 33,147,199,116,100,206,158,179, 42, 62,235,238,114,228,140, 33, 32, 49,137,163,137,
- 37,196,189, 28,125,180, 81,101, 57, 80, 82,135, 20,173,144, 59, 1,140,181,222, 69, 98,183,151,121,155,237,164,115,127,122, 1,
- 40, 35,207, 91,202, 78, 21,112,214, 90,219, 25, 35,179,234,181, 49,157,179, 14, 0,150,150,151,118,239,217,127,202,238, 83, 23,
- 22, 23, 7,131,129,150,179, 2, 19,253, 16, 37,162, 70,202,164, 67,242,197, 41,170,140, 27, 40,112,167,183, 25, 22,205,250, 55,
- 50,221,227,149,205,224,245,136,222,148, 66,150,148,246,236,237,245,158, 86, 37, 14,148,214, 69, 89,150, 93, 25,134,221, 91,107,
-140, 53, 76, 28,131, 74,218,207,211, 97,103, 33,127,102,151,198, 14,178,188, 80, 40,245, 94, 59,214, 24,107, 90,107, 59, 34,171,
-148,158, 44, 47,237, 88, 61,101,101,237,148,229,229, 29,147,133,197,225,112,168,180, 14, 5, 66,204, 55, 48, 36,177, 40,147, 34,
-168, 52, 50,171, 0, 89,244,131,180,108, 88,128,129,125,128, 97,110, 61, 96,133, 97,166, 35,152, 83,176, 32, 10,164, 16,140, 65,
- 41, 47,186, 64,202,145,178, 44,149, 82, 69, 81,150,101, 57, 28, 14,133,250,221,117,129,166, 14,192,108,137,216,111,225,158,100,
-236, 40,219,173,182,219, 78, 56, 97,213, 17, 91, 0, 40, 6,195,241,100,113, 56, 26,143, 23, 22, 23, 22,150, 38,139,139,227,241,
-120, 56, 28,233,162, 40,180,246,181,182,231,168, 65,130,165, 60,170,139, 1,118, 83, 82,109,230, 49, 8,152, 9, 16,137, 17,146,
-225,248,160,228,171,179,100, 89, 20, 6,181,132,231, 24, 82, 3, 79,180, 74,199,204,228, 6,197,158,206,168,177,240,243, 68,101,
- 89, 90,107, 71,145, 76,108, 60, 51, 53, 28,145, 98,201, 90, 75,214, 89,229,156,141,121, 25, 3, 3, 20,158,140, 78, 69, 72, 90,
-149, 86,170, 40,202, 98, 48, 24, 14, 6,131,225,112, 56, 28,150,131, 65, 89, 10,171, 53,204, 55,245,104, 42,137,206,159,147,110,
- 61,146, 27,106,163, 2, 34,183, 48, 83, 13,137,174, 0,189,210, 66,172,102, 2,150,128, 45,161, 91, 24,161, 12,132,137,143, 72,
- 33, 98, 33,244,152,102,152, 41, 11, 21, 42,212, 2, 68, 17, 81, 89,148,142,156,115,163,254,188, 76,122,227,108, 28,236, 33,150,
-195,193,122, 79,164,148, 86, 90, 41,173, 11,165,197, 86,148,214,133, 28,185, 3, 74,133,218, 26,122, 12,213,185,250, 32,203,141,
-179,124, 36, 38,138,158, 13, 37, 41, 33, 65,208, 81,120,195,130,195, 34,160,223,156,101, 95, 71, 8,227,128,217,172,133, 79, 13,
-197,204,252,239,227, 17,168,137,100,233,121,194, 74,249, 93, 68, 9,207,188,215, 2,227,136,246, 80, 63, 63,226, 48,177, 20,200,
-223, 30,179, 65,165,148,224, 43,115, 41, 59, 70,198, 26,251, 44,175,119, 82,224,156,226, 50, 70,119,218,230,179,202,193, 7,160,
-109, 58, 2,137, 56, 64, 97, 28,135, 82,201,234, 23,149,114,226, 50, 16,134,107, 49, 16, 16,114,130, 7, 32, 48, 89, 49,244, 39,
-180, 70, 34,242,100,103,214, 84,164,211, 67,182, 49,174, 82,185,187,141,215, 3, 89,138,203, 57,133,143, 18, 36, 65, 57, 46,206,
-208,187, 82,168,204,251, 46,230,123, 48, 94, 29,114, 3, 98,198, 72, 65,166,144, 46,147, 28,100,195, 49,123,130,185,160, 19,131,
- 90,188,117,100,206, 17, 80, 72, 51,243,179, 29,146,128,152, 97, 70, 74,118, 27, 66, 86,190,216,211,115,167, 85, 36, 30, 89,164,
-142,249,138, 40,193, 14, 89, 31, 10,125,190, 14, 39,240, 50,238, 55,119, 56,205,210, 41, 72, 52,102,144, 58, 58,112,255, 32,167,
- 36, 66, 56,143, 81,120,186, 28, 44, 60, 30,164, 1, 61, 62,166, 16,200, 41, 18, 64,163,147,245, 9,172,105, 33,123,185,130,152,
- 43,132, 38, 9,128,159, 67,148,130,198,167, 44,113, 74,209,207,182,114,178,160,108,131,232,207, 84,132,231,199, 62, 81, 55,227,
-115,207, 5,239,120, 30, 84, 70, 95, 21,241, 56,244,120, 56, 66, 66, 28,146,135,156,187,152,115,198,179, 81,138,220,132, 18,108,
- 24,232,166,169,185, 24, 42,143,222,136, 64,230,239, 20,177,145,180, 83, 98,118,206, 80,114,103,206,197,202,152,140,233, 52,148,
-140,140, 74,193, 96,209, 7,110,206, 56,206,105, 4, 0,242, 68, 49,111,135, 98,204,253,179,156,168,199, 58,239,205,119, 5,180,
- 76, 2,115,214,223,233,149,163,161,173, 24, 9,217,146, 95,165, 33,154, 94, 20, 73, 45,179,160,130, 94,155,176,215,191,245, 24,
-104,239, 80,150, 30,147, 60,242,197,227, 56, 35,165,240, 22,181,205, 81,150, 92, 73, 42, 89, 16,164,209,221,236, 99,249,188, 11,
-100,163, 49,158, 6,237,207,248,242,133,102,144,139,194, 49, 55,105, 99,141,234,167,224,129, 32,243, 52,136,137,123, 13,225, 25,
- 56, 27, 50,242,131, 89,144,181,179, 33,210,117,227,149,251,186,203,225, 38,244,124,221, 88, 34, 81,127, 22,162,215,182,164,172,
- 85, 55,103, 65, 49,127, 9, 53,123, 56,154, 42, 79, 98, 60, 37, 26,250, 81,150,146,240, 94, 20,159,170, 50,201,249, 59,201, 26,
- 48,108,106,208, 63,158, 43,156, 84, 20, 76,133,178,232, 10, 0,132,126,112, 13, 32, 30,230,147, 71,225,121,171,153, 39, 54,103,
-251, 1, 71,182, 52, 72, 45, 9, 60,215,211,205,237, 32,219,230,123, 31, 73,229, 40,132,105, 77,136,129, 57, 57, 73, 38, 96, 62,
-197,146,175, 95,156, 28, 20,157, 83,156,198,137,147, 15,222,127, 48,153, 15,231,207,221,127, 67,153,227, 66,111,220, 97,110,251,
-239, 77, 31,196,103,164,124, 19,139,115, 1, 3,219,202, 57, 0, 0, 1,249, 73, 68, 65, 84,115, 12,128, 94, 28, 42, 18,232, 32,
- 71,246,205,105, 30, 48,197, 68,240,154,147, 21, 68, 70,102, 66,255,103,132, 62, 72,178,113,159, 37,138, 24,136,241,154, 24, 30,
- 72,254, 59, 9, 8,125,112, 17,230,182,254, 24,253, 57,163,135,111, 55, 30,198, 62, 56,153, 2, 88,127, 20,103,174,239,154, 15,
- 16,204, 13,162,246, 93, 44,134, 27, 10,147, 86, 18, 90, 0,253,233,120, 24,183,100, 15,106, 97, 24,153,200,167, 57, 51,151,203,
- 54,145, 48, 6,214,219,200,227, 33,206, 25, 97, 36,115,132, 44,116,179,120,101,239, 72, 14,200,102,100,252,168, 66,222,106,203,
- 79,164,234,197,104,218, 54,144,209,155,139,201,155,117,125, 23,139, 99, 10,121,126,154, 86, 38,128,209,217, 16, 0, 65,111,114,
- 27,160,151,185, 97, 86,183,166,141, 1,251,230, 63,127,234, 86,102,217,105,102, 42,168,155,122,211, 24,243,227, 16,253,153,174,
-124, 98, 36,111,222, 18,244, 14, 34,227, 56,161,177,157, 70,145,237, 90, 69,188, 50,113,122,234, 60,213,160,176,149,139,201, 96,
-120,211,155,117, 39, 9, 50, 40,245,132, 63,144, 22,195,242, 99,140,233,224,177,181, 12,191,133, 92, 77,156,141, 51, 97, 88, 36,
-142,217, 74,172,137, 17,182, 41, 40,157, 30,152,107, 58,212,207, 49, 2, 1,159,104, 11,235, 85,120,185, 37,199, 68,145,146,245,
-102, 94, 30,197,241, 14,213, 27, 70,202, 34, 44, 39,195,202,142,176,139,249,221,188,139, 37,167, 38,134, 57,237,228,189,164,232,
-176,144,209,128, 32,140, 89,205, 79,101,245, 39,248, 78,176,183,165, 32, 29,173, 7,120,126,228, 44,139,200,185, 5, 9,182,137,
- 89,214,198,121, 61,195,219,160,215,109, 39,213, 65, 56,215, 51, 85,174,217,126, 13, 39, 58,204,142,251,121, 89,182,240,212, 27,
-236,235,101,230,249,182,149,156, 49, 61, 97,252,239,184, 36,207,232,239, 76,233, 8, 75,158, 3,124, 79, 16,189, 67,144,206,138,
-236, 94,174, 12,121, 29,229,147, 31,232,231,248,249,147,245, 53, 49, 7, 56, 60,157,118, 32,191, 85,118,107,216,118, 28, 32,247,
-206, 26,133, 30, 53, 45, 33, 21, 89,197,144,219, 81,186,126,126, 20,117, 62, 98, 69,144,143,231,226,193,131, 7,121,238, 9,255,
- 82,142,238,244,200,132,207, 98,224,231,255, 0,194, 7,103,207, 35,149,125,120, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/layer.png.c b/source/blender/editors/datafiles/layer.png.c
deleted file mode 100644
index 89230e7a6bf..00000000000
--- a/source/blender/editors/datafiles/layer.png.c
+++ /dev/null
@@ -1,353 +0,0 @@
-/** \file blender/editors/datafiles/layer.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <layer_png> */
-
-int datatoc_layer_png_size= 11004;
-char datatoc_layer_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0,
- 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0,
- 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,
-116, 73, 77, 69, 7,218, 7, 19, 0, 34, 12, 33,249,187,131, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,124,121,148,157, 85,149,
-239,222,251,251,238, 80,247,214,148, 16, 8, 9,169, 74,128, 12, 12, 50,147, 0, 33, 19,196, 16,230,214,238, 70,177,105,158,246,
- 3,108,129,110,251,169,175,187,159,218, 46,150, 52,168,207,126,168,111,105,171, 79, 5, 91,105, 27, 65, 68, 69, 25, 18, 18,134,
- 0, 33, 33, 68,134, 8, 25, 0, 67,134, 74, 85,165, 82,211,173,123,235,222,251,125,223,217,251,253,177,207, 57,223, 87, 1,149,
-135,244,106,124,171,111,214, 74,106,165,238,112,238, 62,123,239,179,247,239,247,219, 7,151, 44, 89, 2,191,243,241,102,158, 20,
-250,159, 86,175, 89, 43, 44, 73, 18, 69,205,102,125,188,250,103, 87, 92,153, 62,137,153,215,111,220, 20,199,137, 49, 9,155,196,
- 72, 46,204, 73,177,212,118,222,146,133, 66,240,208,163,235,237, 59,177, 17, 64, 4, 64, 17, 36,196,190,253,251,147, 36,185,252,
- 67, 87,143,143,141,164, 79, 18, 16, 97, 22, 17, 65,108, 52, 26,173,109,109,204,108, 76, 2, 56,249,107, 95,253,106,173, 90, 9,
- 1,128,133, 89, 24, 68, 64, 36,138,162, 48,204,177, 48, 0, 24, 30,167, 32, 8,115,121, 2, 0, 54, 44, 44, 34,114,219,215,191,
-146,207,231,145,168,163,189,181,217,108, 32, 16, 0, 32, 34, 1, 0, 51, 11,243,215,110,185,249, 3, 31,186, 6, 17,139,197, 98,
-111,239,128, 8,130,136, 8, 0, 98,232,159,244,193, 15,255,181, 8, 0,194,208,224, 1, 65,102, 54,134, 89, 68, 94,125,121,135,
-190, 83,242,197, 27, 63, 5, 0, 0,210, 94, 46,176, 17, 96, 97,102,102, 35, 0, 83, 14, 61, 44, 4,128, 36, 54, 31,249,111,127,
- 47, 34, 0,176,183,167, 95, 68,140, 49,198, 24, 54, 50, 58, 60, 44, 34,248,166,246,238,205, 60,208,255,244,208,218,135,147, 56,
-142,163,168,217,172,239,216,190,245,211,255,112, 67,186,119, 27,158,126,198, 24, 19, 39,137,126,155, 32,148, 60,192,166,245, 79,
-156,183,108,225,234, 71,215,123, 47, 64,102, 0, 1, 6, 4, 64,164,240,107,183,220,120,229, 85, 31,105,212,199, 17,100,213,163,
- 79, 1, 0, 62,241,212, 70, 99,152,141, 97, 99, 88,228,139, 55,126,242,195,127,253, 9, 19,155,196, 36, 99, 99,149, 70,189,246,
-243,123,239, 37,102, 17,221, 21,196,255,249,217, 79, 94,247,177, 79, 98, 16,228, 10,249, 40,138,137, 40, 12,194, 21, 43, 86,224,
-163,143, 63,197, 38, 97,145,193,129,253,133, 66, 1, 16, 69,100,172, 50,106,140,137,162,168, 81, 31,111,212,107, 33,115, 98,152,
- 1, 64, 0,144, 8, 0,226, 56, 18, 65, 17, 16,102, 0, 32, 10,200, 24, 35, 34, 95,252,236, 39,139,197,162, 0,180,181,181, 53,
- 26,117, 17,102, 54, 44, 2, 0, 35,195, 67,184,106,205, 35,194,102,188, 94, 71, 64, 68, 24, 27,171, 8,179,126, 86, 18,199, 61,
-123,118, 33, 34, 37,137,185,229,166,207, 48,179, 8,151, 91, 10,194,194,186,113,204, 44,210, 82, 42, 25, 54,240,118,237, 93,248,
-155,126,177,250,161, 53, 81,179, 97,140, 73,146,184, 86, 29,251,240, 95, 94,219,104, 52,126,155, 15, 44, 94,188,120,246,156, 57,
- 87, 93,117,181, 0, 8,139, 97, 17, 17, 22,195,204, 98,216,176, 49, 38,209,127,140, 73,216,152, 56,106, 54,155,245,171,174,254,
-203,131,222, 40,232,238,238,254,244, 63,220, 32, 0,194, 8,132, 40, 2, 8, 8, 8, 96,227, 4, 0,145, 48,138,162,111,125,245,
-150,205, 27,215, 79,153,122,248,120,173, 74, 73, 99,246,145,221,175,190,182, 39, 93,209,162, 69,139,190,240,197, 47,129, 6, 24,
-179, 17, 17, 99, 68,132, 69,152, 13,136,236,235,217,251,131,219,190,249, 95,175,253, 27, 4, 48,108,132, 57, 73,226, 36, 78, 74,
-229,242,224,129,253, 81, 51,170, 85, 71,110,184,241,243, 65,119,119,247,242, 21, 43, 1,132, 89, 88, 88,140, 8,136, 0, 0, 8,
- 27,190,229,230,207,156,181,228,220,249,103,157, 29,132, 33, 34, 5, 65, 16,134, 57,102, 97,230,102,179,161, 75, 15,130,220,210,
-197,103, 19, 0,168, 75, 24,147, 48, 51,235, 55, 18,249,250,151,190,176,119,247,174,235, 62,241,169, 48, 12,131, 32, 32,162, 92,
- 46, 87, 42,151,199,199,199, 19,147, 32, 34, 32, 34, 17, 34, 33, 81,144,203,135, 0,160, 14, 39,204, 32, 2,136,108,204, 63,253,
-227,167,175,255,248, 39,213, 67, 5, 0, 0,219,218,202,125,189,125, 60,198,136,128,130, 2, 8, 2,204,106, 70, 34, 10, 52, 87,
- 26,177,182,149, 90,181,250,163,127,189,237,250, 79,124, 10,209, 6, 53, 34,150, 90, 90,250,246,237, 19, 64, 0, 22, 1,102,209,
-184,211,220,130,136, 15,175,186, 63, 4,128,196, 24, 68, 17,134,151,182, 60, 31,132,225,101, 87,124, 8,236,251, 66, 24,134, 2,
-216,215,223, 39,106, 51, 17, 54,134, 13, 51, 27, 54, 70,243,222,200,240,208,105,103, 44,212, 36,104, 16,224,209, 53,171,230, 30,
-247,174,206,206, 73,134,133, 16, 0,160, 84,110, 29, 25, 26,140,162,136,129,109,198, 19,177,145,193, 34, 34,123,118,239,108,109,
-109,215, 40, 38, 0, 48,108,214,174,186,127,238,113, 39,180,183,119, 48, 11,136, 24,230,150, 82,249,192,192,254,102,179,105,216,
-254, 49,198, 36,113,162,251, 34, 44,219,183,189,216,214,222, 41, 34,198,112, 98,146,183, 47, 79,190, 45,143,238,238,110,122,187,
-222,235,141,163,127,249,242,229, 31,255,248, 39,152,141, 73, 18,195,230,203, 95,254,242, 19, 79, 60,249,102, 79, 0,125,204,156,
- 53,235,219,223,185, 21,244, 92,210,115, 39, 73,140, 73,146, 36, 78,226,232,218,107,175,175,140,141,189,225, 87, 67, 0,120,242,
-169,167,132, 69, 4, 24,192, 36, 6,192,158,109,156,176, 97,221,166,196,190, 99, 18, 55, 26,141,235,174,255,171,122,189,126,240,
- 27,109,220,180,217, 57, 8,235, 49,111,196, 0,179, 49,194,250, 46,108,196, 48, 51, 15,244,247,221,245,175,223, 69, 66, 0,200,
-133,225,125,107,214,101,223, 40, 68, 34, 4,224, 56,209,112, 16,112,161, 4,130, 72,136, 16, 0, 24,130,127,249,198,255,174, 85,
-171,115,142, 61,110,246,156,121, 47,189,248,252,158,157, 59, 15, 54, 54, 34, 26,195, 0,128, 32, 2,128, 34, 34, 32, 0,136, 40,
-130,136,192, 8, 95,249,220,103, 91,219,218,174,188,250, 58,102, 99,146,248,180,249, 11,143, 58,242,232,254,193,225,231,182,108,
- 77,141,253,212,211,155, 93,244, 11,107, 70,241, 33, 32, 44,204,255,235,166,207,156,185,104,217,187, 78, 60,217,136, 97,163, 59,
- 25,199, 81,211, 24,137,162, 70,179, 81,255, 31,159,250, 76,119,119, 55, 49,139,205, 99,104, 51,137, 0,160,219,206, 47,125,238,
-134,243, 47,253,147, 19, 79, 57, 29,137, 8,131,128,130, 32, 12, 59, 58, 39, 35,133,128, 16, 4, 97, 46,151,191,249,198, 27,212,
-143, 68,211,163,126, 37, 6,151, 32, 17,126,112,235, 55, 79, 63,115,209,145, 71,207,214, 61, 37, 66,102,106, 43,151,250,251,250,
- 17, 41, 8, 66, 97, 70, 10,130, 92,254,220,101, 75, 72, 4,180,146,210,250, 12, 88,244, 59,239,126,237,181, 90,181,122,250,153,
-103, 35, 34, 34, 18, 5,128,212,209,209, 62,176,127, 64, 15, 4, 0, 0, 36,251, 8, 2, 18, 17, 22,112, 37,128,125,151, 36, 73,
-126,248,189,111,253,249, 85,215, 34, 0, 0, 33, 34, 16,116,118, 78,238,239, 31, 32, 34, 0, 76,223, 75,203, 15,164, 80,132, 1,
- 52, 67, 50, 0, 48, 0, 48,255,211,141,159,186, 78,147, 36, 34, 2, 8, 99,177,165,124, 96,160, 31, 64, 68,252,235,173, 5,244,
-105,100, 19,166,251, 11, 65,214,174,186,255,210,247, 93, 17,134,161, 15, 31, 10, 2, 17, 19,199, 9,160, 77,226, 98,119,199,101,
- 99, 64, 98, 91,236, 49,136, 0,115, 28,199,207,110, 90, 63,115,214, 81, 54, 93, 35, 2, 64,185, 84, 24, 30, 28, 68,183, 8, 17,
- 1,253,124,212,220,143,113, 18,147,183, 14,139, 48,194,151, 63,119,195,135, 63,250,183,234,226,250,104,107,239,220, 63, 48,232,
-178,184,216,213,176,190,202, 26,180,217,168,135,234,118, 8, 34,130,189, 61,123, 22,156,189, 52, 8, 2, 97, 64, 4, 65, 32,196,
- 36,137, 57, 97, 22, 16, 0,102,221, 22,173,188,237, 39, 13, 29, 24, 8,195, 28,169, 19,235,198,253,224,182,111,156, 58,255, 44,
- 23,115, 0, 34,229, 82, 97,160,191,151, 81,180,118,215,242,221, 46, 69, 4, 0, 94,248,229,166, 66, 75, 17, 1,212,216, 34,194,
- 27,158,120,236,125, 87, 94,141, 32,206,147, 36,159, 47,140,140, 86, 25, 4,133, 5,152, 25, 50, 86, 96, 17, 25,175, 86,103, 30,
- 53, 7, 4, 5,128, 68,244,168,145, 39, 31,125,232,144, 41, 83, 68,163,151, 89, 68, 90, 10, 52, 62, 94,211, 5,232,135, 49,219,
- 18,129, 69, 64, 32,138, 34,111, 59,210, 95,172,190,239,167, 87, 92,117,173,245, 4,102, 65, 44,183,182,246,246, 31, 96,102,212,
- 21, 24,125,119,107, 32, 16,217,190,117, 11,161, 86, 63, 34, 2,164,241,254,226,179,207,180,182,182, 50, 11, 8, 11, 34,136,112,
-220, 76,162, 4,196,150, 59,122, 80,107,134, 80,243, 28, 62,125,134, 0,176,126, 77,102,120, 71,157,107, 93, 93, 93, 4,239,164,
- 7,106, 67,246, 22, 30,231,156,123,206, 41, 39,159,130,132, 99,149,202, 99,143, 61,182,125,251,142,127,223,243,250,245,143,247,
-189,255,242,171,175,185,198, 24,163,238,103, 29, 74, 64,132, 47,188,240, 34,117,160, 36, 73,132,153, 77,242,189,239,127,127,213,
-234, 53,111,209, 72, 75,150, 44, 89,183, 46, 61, 47,143, 63,254,248, 21,231,157,183,114,229,249,165, 82, 11, 0, 24, 35, 90,140,
-217,188, 39, 44,172,237,129, 13, 33,237,114,220,143, 26, 58, 70,171,117,147, 24, 99,226, 56,138,254,241,166,207,189,182,107,215,
-155, 44,141, 66,102,222,176,113,147, 49,198,102,102,119,192, 25, 22, 97,193, 64, 64,244,252,117,185,144,132, 69, 16, 24,144, 0,
- 24,137,144, 53,127, 32, 34, 9, 50, 18,137, 48,113, 64,100,134,250, 6,159,124,108,237, 49, 71,119,205,153, 53, 29, 17,131, 92,
-248,192, 67,235,126,247,150, 81, 16, 10,145,134,161,198,158,162, 19, 66,136,204,130, 32, 40, 32,246,220, 17, 0, 4, 20, 65, 64,
- 0, 32, 66, 22, 8, 72,132, 69, 80,152, 9, 33, 78, 30,127,100,237,139,207,255, 18, 17,197, 54, 71, 54,199,155, 56, 89,185,108,
- 97,173,222,120, 98,227, 47,127,219,130, 16, 17, 1,133, 89, 75,103,212, 77, 66, 4,102, 32, 2, 17, 20,116,103, 48,218,127,180,
- 17, 67, 0, 33, 65, 1, 68, 18, 30, 60, 48,124,251,119,190,142,136,108,204,137,167,158,126,220, 9, 39, 17,146, 45,234,147, 36,
- 73,162,209,161, 3,235, 30,121,184,220, 82, 40,149, 90,198,199,235,191,113, 65, 2,160,165, 56, 10,234,129,167,231, 22,160,226,
- 1,174,221, 2,151,196, 81, 64,144, 72,152, 9, 73,144,185,175,167,231,142,239,125, 11, 0,230, 28,115,220,153,139,150, 5, 33,
-137,173,135, 88, 68,200,112, 24,134, 57,147,203, 77, 45,188,231,178,203,155,205,250,244,174, 89, 39,158, 50, 31,133,227, 36, 26,
-175,213,110,184,241,230, 9, 11,138,227, 68,132, 17,116, 99,172,157,245, 12, 97, 0,241, 39, 42,128,100,138, 96,221,181,161,193,
- 3,223,254,218, 45, 65, 16, 46, 95,121,241,172,163,103, 19,145,186,183,186,154, 16,137, 8, 17,139, 4, 28,112,161, 88, 20, 32,
-170,141,157,126,198,217,204,198, 24, 8,194, 92,169,220,250,249,155, 62, 91,171, 86,110,250,194, 45, 62,236, 5, 0,152, 5,237,
-206,128,226, 80,246, 88, 23, 65, 17,214,162, 18,197,215, 31,113, 20,127,227, 43, 95,104, 54, 26,231,174,188,100,222,177,199,187,
-144, 0, 0, 9, 2, 20, 17,242,133, 65, 16,150,203,229,161,193,193,102, 35, 22, 96, 68, 66, 2,154,152,121,202,109, 29, 55,222,
-240, 15, 15, 60,184, 58,212, 29,113, 62,131, 54,198, 93,217, 39,126,135, 52,140, 88, 4, 81,152, 31, 93,253,192, 51, 27,159,156,
- 61,247,216,229,231, 95,140, 1, 58,211,105, 56,234,203,136,136, 17,131, 82,169,101,104,104,232,192,192,128,128, 80, 64,204, 90,
-249, 88, 16,128, 72, 0,132, 41, 32,146, 48, 39,199, 28,123, 76,232, 34, 0, 0,116,219, 17, 52,227,185,250,199,218, 79,221, 24,
-160, 86, 29,251,250, 45,159, 71,194,171,174,255, 88,161, 80,180,165, 22, 9, 48, 50, 50, 1,169, 73, 3,164,114,107, 91,117,172,
-182,127,255, 0,176, 70, 1,104, 10, 65, 4, 2, 52,182, 40, 67, 64, 66,100, 36, 68, 9, 16, 41,116, 59,195,153,234, 9, 24, 24,
- 1, 89, 45,230,190, 59,139, 60,254,240,234, 13, 79, 60,186,228,220,149,239, 58,249, 20, 4, 20, 68, 68,155,160,236, 78,128, 32,
- 82,177, 84, 6,224,253,253, 3,204, 6, 0,180,120,178,155, 45, 8,128, 44,108,139,119,177, 49,139, 72,136, 98,207, 50,201, 60,
- 82,215, 65,240,174, 3, 0, 81, 20,125,237,150,207,197, 81,243,234,235, 63, 86, 40,182,216,250, 76,247, 17, 81, 16, 73, 4,144,
-130,128, 90, 91,139,195, 35,213,234,216,152,186,129, 15, 82,223, 17,178, 8, 2, 10, 88,232, 12,220,134,107, 9,111,209, 78,205,
-253,152,137, 35,214,102, 8, 64, 68, 14, 12,236,191,237,235, 95,158, 53,123,238, 5,151,254, 73, 16,144,111, 52,209,237, 35,138,
- 0, 81,169, 92, 22, 78,122,123, 7,140, 73,180, 67, 99, 0, 16, 70, 4, 97,176, 37,145,136, 0, 48,176,171,193,221,206,161,226,
-179,206, 66,204, 6, 0, 1,193,110, 19, 51, 32,170, 39, 61,245,248,163, 79, 60,178,250,146, 63,253,179,174,153, 71, 18,189,174,
-237, 69, 4, 16,164,160, 92,110,105, 54,227,225,161, 3, 44, 44,169,251,249, 46,196,174, 70,107, 78, 16,219, 13,218,183, 35, 0,
-193,241,122,245,229,237, 91, 29, 30,172,189,162, 97, 13, 34,141, 53, 97,254,225,237,183,238,121,237,215,127,113,237,199,202,229,
-178,111,194, 37,179, 40, 1,200,231,138, 45, 5, 26, 26,169,140,143,215,192,162, 53,236,176,204, 76,113,224,189, 34,205,108,206,
- 63, 25,158,124,236,145, 57,243,230,117,205,156, 21,166,190,204,246, 73, 8,192,130, 38, 73,190,249,149, 47, 52, 27,141, 15,127,
-244,239,242,249,124, 26,139, 96, 83, 34, 34, 8, 64,185,181,149, 36,233, 31, 24,140,227,216,103,116, 6,180, 31, 11,204,118,115,
- 88,220,251,107, 94,241,171,169,213,198,246,237,217,117,252,137, 39,107, 96, 89, 64, 77,219, 33, 97,107,217,168,217,248,234, 23,
-111,204,229,242,215,252,213, 39,114,185,156,166, 73,240,128, 22, 48, 8, 3, 64, 91, 91, 7,176,233,239, 27,136,163,216, 30, 65,
- 34,236,156, 5,116,115,210,125, 98,118, 25, 31, 68,195, 13, 94,125,121, 91,179,217, 56,228,176,169,152, 77,147, 90,192,216,243,
-155,165,222,104,124,253,150,155,167, 29, 49,227,210, 63,253, 51, 12, 2, 1, 64, 20,177, 21,128,195, 16, 16, 91,219, 90,227,168,
-121,224,192,254,180,253, 21, 16, 16, 20,180, 77,190, 43,153, 92,217, 36,146,177,145, 8,111,221,242,220,180,174,110, 16, 97,195,
- 62, 26, 29,207, 1, 34, 44, 0,216,104, 54,254,249,159,110,154, 49,243,200,139,222,251, 62, 36, 74,179, 56,128, 88,231, 19, 66,
- 42,151,138,205, 70, 52, 56,168, 73, 79,187, 62,240, 61,185,110,145,100,118, 10, 28, 34,170,182, 54, 73,210,219,179,231,136,238,
- 89,204,153, 95, 11,136, 72,104,183,204, 48, 32,214, 27,227,223,248,210,231,167,119,117, 95,248,158,203, 0, 80,139, 67,139,177,
-128, 77, 75, 1, 5,197,124, 56, 94,111,142,140,140,128,127, 51,125,182,186,159, 67, 30,188,121,188, 85, 88, 0, 64,198,107,213,
-250,248,120,123, 71,167,164, 16,137,150, 97, 44, 34, 33, 34, 62,249,248, 58, 17, 96, 54, 27,159,124,172,208,210, 58,117,198,145,
-207,108,122,218, 67,160,217, 7, 17,133, 97,192, 12,245,241,154, 59, 91, 50,127,233,127,137, 61,120,252, 70,166,231, 16, 72, 28,
- 69, 90,152,167, 9,217,110, 39, 11,115,165, 50,246, 14,195, 27,181, 55,123,231, 44,102,201,146, 37,244,134, 91,243, 31,248,120,
-103,117,174,239,196, 5,189,149, 86,122,230,204,153, 43, 86,172,152, 52,169,147,141,217,182,125,251,125,247,221,255,118,182,247,
-221,221,221,187,119,239,126, 51, 79,157, 58,117,234, 77, 55,223, 60, 99,198, 12, 79,185,184,182,149, 65,120,195,134, 13,119,252,
-240,206,189,123,123,126, 79,167,126,179, 22,122,112,245, 67,168, 25, 15,128, 40, 0, 17,214,110, 14, 8,145,141, 49,243, 23,156,
- 49,127,254,130, 36, 73, 70, 71,134,255,230, 99,159, 80, 16,234,237,223,178, 32,160,155,110,254,194,130, 51, 22,176, 97, 0, 17,
- 36, 95, 74, 32, 3, 4, 0,204,232, 80, 85,102, 19, 34, 77, 58,100,202,191,220,118,107, 20, 55,239,191,239,254,187,238,190,231,
-247,218,178,201,147, 39,159,122,234,169,151,254,209,165,167,156,124,170, 97, 22, 97,192,208,214,197, 19, 78, 0,123,118,138, 71,
- 26,236, 89,161,140,186, 97,182,240, 56,136,220,255,192, 3,119,252,240,174, 55,191,101,216,213,213, 85,173, 86,239,188,235,174,
- 82,185,156,105, 78, 21, 80, 68,102,241,213,150, 63, 38,153,197,254, 94, 9, 41, 97, 99,220,241, 46, 44, 74,134, 89,118,219,242,
-145, 27, 55,110,248, 63,223,186,245, 77,249,208,181,215, 94,183,244,156,115, 80,143,108,180, 53,128, 30,241,130, 66,168, 94, 34,
- 0, 2,132,246, 23, 4,192,202,104,248,130,132,132, 25, 1, 72, 80, 40, 16, 97,164,192, 36,201,230,141,235,119,108,223, 26, 53,
- 26, 2,114,241,121,203,122,246, 15, 62,251,220,150,223,225, 67, 2, 16, 4,129,216,174, 85, 16,209,176, 48, 51, 32, 18, 35, 35,
-219, 30,223,225, 13,128,104, 33,116,209, 94, 11, 21, 3,209,206, 74,187,148, 56,225,141,235,215, 61,187,105, 3, 81,224, 32,120,
-140,162,232,208,142,214, 99,231, 30,189,117,199,171,191,109, 65,168,141,164, 45,147, 81,129,116,173,132, 20,240, 5,230,131,136,
- 45, 11, 24, 41,152,141, 2, 4, 34, 64,168, 24, 17, 12, 14, 13,220,249,253,239, 8, 11, 81,144,169, 1,108,155,211, 53,237,176,
-109, 47,239, 20,225,223, 18,101,202, 57, 8, 16,178, 97,163,221,143,184,222,217, 86, 85,114, 48,219,134,164, 85,172,254,128,136,
- 66, 32, 70,158,127,246,153,199, 31, 94,173, 77,106,107,123,219, 9, 39,157,218,209, 57, 9, 64, 70,135,135, 54,109,120, 82,129,
-167,227,143,157,243,171,151,182,255,214,176, 71, 68, 0,101, 86,181, 53,211, 18, 17, 37,219,197,248,127, 29,135,132,200,182,111,
- 69, 18, 50,156,172,190,255,167,219, 95,122, 17, 0,218, 58, 58, 22,159,187,162,189,163, 67, 29,222,152,164, 88, 44, 94,120,233,
-123, 87, 63,240,139, 40,138,186,167, 29,250, 91, 23,132, 64, 0,137, 97,195,140,130,140,108,219, 99, 17,246,100,133,135,247,181,
- 57, 23,237,224,212,137, 0, 1,146, 36,185,251,142,239,247,246,236, 5,128,249,103, 45,154,119,236,187,136,236,238, 59,146, 6,
- 19,164, 21, 23, 92,252,216,218,213,181,106,213,247,153, 34,242, 6, 22, 74,146, 68,251, 84, 1, 65,176,161,228,155, 12, 73, 73,
- 81,133, 65, 80,127,239,123,144, 36, 73,238,248,254,119, 6,250,251, 65,248,189,151, 95,217,222,209,137, 8,204, 76,100, 5, 67,
- 6, 12, 33,132,128,136,184,116,249,202,173, 91,158,187,102,246,241,199, 30, 51, 87,132,227,102,115,245,154, 53, 15, 63,178,110,
-130, 44,138, 29,119,167, 77,131, 91, 60,107,235, 9, 34,128,170,169,177,171, 1, 77, 18, 8, 34,104, 76,114,231,237,183, 29,216,
-223, 95, 40,230,255,244, 3, 31, 42, 20,139,202, 69, 40,114, 69,174,153, 67,219,170, 96, 91, 91,199,105,103, 46,173,215,107,198,
- 24, 99,132,194,240,221,203,207, 57, 48,112,224,133, 95,189,228,202, 15,177,161,108,215,227,112, 41, 1,228, 20,129,112,192,143,
- 69, 7, 80, 8, 0,200, 24,243,179, 31,221,209,223,219, 83,110,109,189,252,131,215,148,202,101, 34, 2, 37,246,116, 1, 68, 72,
- 68, 65, 16, 4, 65, 16,134,147,167, 28, 58, 94,175, 71, 81, 19, 17,131,192, 17,128, 65,254,178,203,254,164,189,189,205, 46, 72,
- 50, 30,155, 54,200,138,126, 32,138, 66, 56,234,236,168, 75, 70, 1, 33, 32, 22, 94,247,200, 67, 59, 95,221, 81, 46,183, 94,118,
-197, 95,228,115, 5,103, 5, 85,100,232,191,246,135, 92, 46, 95,110,109, 31, 30, 26, 2, 0, 36,139, 43, 16, 5, 68,132, 68,185,
- 48,255,183, 31,255,232, 65, 5, 26,106, 76, 42, 10,235,181, 42,232,250, 50,237,253, 45, 69, 44,200,194, 91,158,221,188,121,195,
-147,133, 66,254,178, 63,255,139,124,190, 64,132, 78,152,132, 46,235, 16, 2, 6, 20,148, 74,165, 92, 62, 63, 58, 50,194,118,251,
-220,186,237,154,213,138,185,191,255,239, 31,213,190, 76, 44,112,230, 92, 85, 15, 40, 64, 16,197, 81,220, 70, 50,162,174, 26,128,
- 7,250,251, 31,252,249, 61,249,124,254, 3, 31,250, 72,161, 80, 20, 16, 20, 2, 18, 20,155,190, 28,252, 15,197, 98, 49, 49,102,
-172, 50,172,123,109,119, 65, 9, 87, 11, 84, 17, 19, 17, 81,107,107,187,239,237, 17,145, 61, 82,101,219,119,107, 30,135, 17, 59,
-100, 26, 65,234,227,227,183,127,231,159, 1,224,253, 31,188,166, 88, 44, 42,134, 41,100, 33, 8, 68, 32,235, 63, 84, 42,183,138,
- 64,101,116, 68,129,119,180, 98, 65, 72,151,131,238, 69, 72, 72,129,117,106,187, 33, 54,176, 83, 4, 77,195, 76,151,226, 17, 63,
- 99,204,191,124,251,171,204,252,158,247, 93,209,222,214, 78, 68, 40, 40, 36, 36,228, 82, 14, 41,253, 95, 42,149, 9,113,116,116,
- 68, 83,173,160,254, 26, 38,210,209, 22,176, 2, 11, 88, 89, 11,185,109,242,173, 56, 40, 35,136,236,154, 79, 84, 14,149,121,237,
-170,251,170,149,202,153,139,206,153,222, 53, 19, 17, 5, 16, 72, 8, 72, 41,127,149, 8, 17, 82,177,165, 20, 4, 56, 52, 52,168,
-174,137,132, 14,203, 16,143,116, 73,138,123, 90, 16,205, 70,153,207,201, 30,137,210,213,128, 98,184,206,169, 89,100, 95,207,158,
-103, 55, 61, 53,229,176,195, 78, 58,237,244,128, 52, 90,196,234, 42, 20,124, 38, 32, 12,242,249, 92, 62,164,193,161, 97, 99,216,
-166,119,212, 98, 5, 9, 73, 82, 88, 39,205,188,232, 88,112,210,101, 56,101, 3, 56,182,216,229, 31,113,120,169, 72,179,209,184,
-227,123,223, 14,195,240, 61,239,187, 50, 8,115,226,219,125,113,137,140, 4, 0,131, 32, 40,149,138,149,177,154, 73, 18,171,236,
- 68,173, 16, 92,210,151, 12,214,228,253, 83,207,105,151, 24,173, 33,245,112, 5, 79,172,103,108,198,108,126,244,131,239,154, 36,
-249,227, 15,124,176,144,207,147,171,141,108, 26, 86,131, 11, 17, 81,185, 84,170, 55,226,122,125,220,125,172,160, 63,122, 50,102,
-225, 12,228,153,145, 9,128,202, 73, 21,231,100,235, 52, 30,179,116,251, 45,204,219, 94,220,210,219,179,231,140,179,151, 30,122,
-216, 84,208,116, 44,174,198, 68, 4,155, 66,161, 92, 46, 27,147,140,140, 12, 75,154,217, 81, 82,250,198,126, 69,177, 21,134,199,
-132,209,213, 28, 64,154,123,237,106, 44, 84,105,163, 95,177, 79, 96,110, 52, 27, 63,191,251,142, 98,177,229,148,249,103,162, 10,
-119,148, 43, 83,197,175,221, 8,105,105,105, 9, 73,134,135, 71,152, 89, 99, 42,179, 81,146,110,145,213, 19, 88,224, 28,211,213,
-160,221, 50, 15,119, 57, 88, 19,213,139,244, 41,134,249,206,219,111, 5,132,247,255,151,171,194, 48, 60, 24, 19,118, 72,113, 16,
-134,133,124, 80,169,214,227, 56, 6, 65,165,216, 52, 34, 68, 15,100,207,170, 88,195,243, 4,104, 25,236,202,200, 97,123,182,142,
- 6,199,119,136,133,249,100,247,174,157,253,251,122,230, 47, 92, 82,110,109,243, 59,125, 16,183, 13,136,229,214,214, 36,129,177,
-177, 74,234, 58,232, 58, 6,176,111,152,113,205, 84,131, 98,255, 19, 81,101,177,161,111,183,108,185,228, 29, 8, 45,224,117,215,
-237,183,230, 11,133,211, 22, 44,212,196,245,250,135, 8,180,148, 74,146, 52, 7,135, 70, 82,165, 70,234,244,146,241, 70, 79,121,
-121,100,211, 22,167, 32,178,249,233,245, 90, 17,131,101,196,152, 83,236, 17,109,208, 61,188,250, 62, 0,120,239,229, 87,134, 97,
-136, 8,242, 6,171,145, 48, 12, 2,228,218,120, 51,137, 99,204, 48, 56,142,106, 67,145, 12,126,119, 16, 9,224, 92,234,213, 87,
-118,180,182,182, 2, 8,137,210,134, 14,103,101, 75,111, 0, 51, 84, 70, 71,158,219,180,225,200,163,231, 78,158, 60, 69,220, 25,
- 52,129, 87, 20, 33,162, 98,177,104,140,140, 85,199, 64,233, 18,176, 26, 50, 79,175,251,213,128,182,158,218,111,185,210, 13, 16,
- 43,163, 35,227, 99,149,195,167,207,112, 44,131,197,204,193, 42,191, 4, 5,128, 57,185,235, 95,191, 27,132,225,185,231, 95, 68,
- 68,106, 30,123, 46,102,190, 99,161, 80, 4,137, 71, 71, 71,213, 5, 81,196,135,132,235, 95, 38,110,153,203,131,172,100, 55, 72,
-146, 36, 59,182,189,216, 53,235, 40, 45,121, 73,153, 0, 20,171,138,241,177,176,103,247,174,145,161,193, 37,203,207,207,231, 11,
-106, 49,141, 98,246,239, 46, 66, 68, 1,113,163,201, 81, 20,217, 74, 69, 99,221,238,147,103,188, 50,120, 57, 90,211,144,128,114,
-206, 91,158,125,230,232, 57,243, 16, 9,124, 30, 74,183,214,146, 1,144,196,209,143,127,240,221, 66,161, 56,239,184, 19, 20,219,
-112, 93,179,248,101, 1, 98, 75,169,108, 88,198, 42,163,169,230, 10, 56,117,217, 20, 23, 22, 86,210,212,209, 67,162,141, 12,194,
-254,190,222,174, 89, 71, 17, 5,222,236,182,252, 64, 47, 27, 6, 17,225, 23,158,219, 44, 34, 23,190,231,178, 32, 12, 88,224, 96,
-155,139, 0, 72, 24,230, 36,105,212,106,117, 99,140,139, 20,119,140, 74,202, 99,123,190, 33, 5,236,213,153, 16,146, 56,169,140,
-142,228,194, 92,182,245, 35,199, 81, 0,186,254, 62,142,227,181,247,223,219,222,209,113,216,212,105, 40,130, 32, 46, 22,211,200,
- 34,196, 66, 33,103, 24,235,227,227,142, 93, 17, 65, 37,113,108,103,146,238,153, 3,210,125, 83,170, 41,106,251, 75, 47, 28, 58,
-117, 26, 96, 54,133,171,232,139, 69, 64, 24, 80,241,148,199, 31,121, 8, 16, 47,250,227,203, 49,176,165,130, 76,116, 32, 68,200,
- 23, 10, 96,226,202, 88,197,136, 1,208,214, 81, 73, 75,116, 60, 34, 59, 99,176,164, 75, 78,137,212,202,232,200,225,211,142, 0,
-204,118,197,105,145,175, 20,151,136, 64,179,217,120,118,211,250,233, 51,186, 90, 91,219, 50,137, 22,197, 45, 75, 80, 16, 3, 2,
-137, 12, 68,205, 8, 60,219,193,182,133, 4,229,161,220,230,176,213,102,100,202, 81,196,132,121, 96,127, 95,152,203, 99,166, 40,
- 82, 11,146, 58, 32, 91, 13, 30,175, 91,243, 32,179, 44, 63,255, 82,237, 96,192,198, 23,248, 26, 6, 5, 10,197, 2, 34, 87, 70,
- 43, 89,114,153,145, 45, 17,100, 63, 94,252,215, 17, 86, 58,134,253, 49,208,179,123,215,148, 67,167, 34,102, 56, 74,103, 57, 74,
-153, 89,145, 70,125,252,165, 23,158, 61,114,246,220, 82,185,156, 70,137, 74, 83, 28,185,132, 68, 4, 18, 39, 24,199,145, 26,196,
- 38, 58, 65,246, 41,250, 32,106,204,185,143,110, 77, 28, 69,133,124, 1,136, 28,129, 37, 25,122, 88, 43, 70, 22, 4, 17,150, 77,
- 79, 61, 41, 34, 11,151, 44,183,197, 50,164,234, 77,187,101, 34, 45, 45, 37, 66, 25, 29, 29, 86,161, 29,170,249,196, 54,222,160,
- 0, 36, 59,247,201,150, 87, 98, 21,127,187, 95,251,117,177, 84,202,196,136, 11, 74,235,212,154, 21, 64,162,168,249,204, 83,235,
- 14,155, 54,189,181,173, 85,205, 97, 93,129, 83,250,156,136, 8, 76, 61,226, 36, 78,108,209,142,172, 29, 5, 90, 93,174,117, 26,
-127, 42, 58,238, 21, 5, 80, 16,235,227,181,201,135, 76, 65,177, 88,207, 4,119,103, 1,128,112,207,174, 93,235, 5, 0,164,119,
-223, 94,198,112,210,161,211,159,217,180,233,141, 25, 25,196,124, 62,143,192,181, 90, 93,161,217,140,136, 39,163,205,144, 12,101,
-150,249,163,255,123, 96,160,175,173,173, 35,195, 75, 59, 6, 84,157, 76, 53,104,195,195,195, 35, 35, 35,239, 52, 90,232, 63,246,
- 33, 34,157,157,157,147, 38, 77, 10, 1, 96,116,116,116,207,158, 61,255,105,148,215, 23,194,147, 38, 77,162,255, 52,196, 31, 24,
-157,248,159, 6,250, 3,123,132,255,222, 31, 48,109,218,180,203, 47,191,124,209,162, 69, 65, 16, 76, 64,237, 93,141,109, 76, 34,
-204, 81, 51,218,244,204,211,143, 60,186,238,133, 23,182,252,127,110,160,206,206,206, 43, 63,248,193,249,167,207, 63,108,234, 84,
- 29, 18, 74,117, 89,105,209, 99, 91, 23, 17, 33, 10, 68, 36,204,229,151, 44, 61,103,241,146,101, 78,191,200, 99, 99,149,158,158,
-222, 29, 59,118, 60,181, 97,195,171,175,254,250, 15,219, 64,136,120,214,194,133, 31,185,246,250,174, 25, 51,226, 56, 18,112,147,
-165, 10,115,102,160,230,180,138,204, 84, 40, 34, 2, 66,118,190, 66,107, 79, 12,218, 59, 38,181,181,119,206,157, 55,239,162,139,
- 46, 84,200,186, 86,171,109,124,122,211,250,245,235,119,190,246, 90,173, 54,254,142, 51, 16, 34,118,118,118,158,120,210,137,243,
-230,206,237,234,234,158, 59,111,238,148, 67, 14, 1, 10,130, 32,103, 73, 63, 34, 99, 12, 6, 1, 89, 60, 27, 72,137, 55,215, 27,
-104, 35,103,187,127, 0,143, 68,105, 19, 3, 34,164,144,169,173,215,148,204, 36, 8, 2, 45, 90,203,173,109,203,150, 45, 91,186,
-116,137,202,253,147, 36,121,104,205,154,123,126,252,211,230, 91, 21, 43,188, 69, 3,117,116,116, 92,114,233, 37,103, 44, 56,227,
-144, 41, 83, 38, 79, 62,164, 92, 46,123,229, 98,170,210, 21, 1, 12,188,200, 76,249, 3, 0, 84,165,188, 18, 15, 22, 59, 23,199,
-213, 40, 10,203, 96,137,101, 78, 21,173,110, 44, 1,144,156,122,159, 73,231,119,212,241, 8,109, 83,164, 19, 99, 58,199, 30,132,
-185, 11, 47,184,240,194,243, 47, 96,225,177,202,216,142, 87, 94,190,231,199, 63,221,219,211,243,246, 26, 8, 23, 47, 94, 92, 42,
-149,206,191,224,130,249, 11, 22, 4, 65,160, 67,147,110,193,144,206,180,165,213,185,229,208, 83,224,192, 37, 23, 43, 63,240, 24,
-141, 29,151,102, 59,252,120,112,104, 77,148, 36,171, 67, 1,192,235,194, 47,163,173,179, 3, 45,238, 69,156, 36,201,120,109,124,
-116,116,168, 50, 50, 92,173, 86,163,102, 51, 8,130, 92, 46,247,244,230, 95,110,219,254,242,192,192,129,223,199, 52,221,221,221,
-179,102,205, 10, 69,100,201,210,101,103, 45, 92,228,122, 83,160,208,221,223,144, 98,247,156,106,176, 89, 84,116, 14, 2, 66, 2,
- 2, 40,200,100, 73, 39,118,136,169, 71, 78,145, 72, 28,149,100,101,244, 86, 30, 76, 40,108,145,115, 64, 1, 33, 10, 52, 31, 17,
-170,177, 20,216, 97, 59,111,131,130, 18, 24,230, 36, 54,195, 67,131,219,182,110,217,185, 99, 91,179,217,180, 60,207,196, 62,169,
- 24,226,201,199,205, 9,131, 99, 6,134, 43,155,159,219,242,122,194,251,255, 45,196, 52, 64, 12, 51, 42, 95,230,192,126, 71, 42,
- 50,160,157,243, 67,203, 31,144,141, 11, 29, 59,209,249, 90,116, 16,149,183,141,117,192,131,148, 20,152,210,244, 58,237,104,211,
-144,117, 70, 66,151,122,148,216,181, 99,152, 18, 53,163, 87, 94,222,254,194,230,141, 35,195,195,150,185, 71,248, 77,232,180,146,
- 28,204, 60,185,189,188,114,217,194,231, 94,122,185,175,127,255,239,153,131,208,178,164,152,194,198, 44,198,234,140, 83,192, 21,
- 29,217,160,122, 24, 37, 97, 39,124, 67,200, 6,102,214, 40, 46, 6,213, 44, 78, 98,142,150,198,133,236,132,170,229,176, 24, 56,
-137,147, 61,187, 94,219,188,113,125,111,207,110, 37,140,193,115, 64, 2,185,124,174, 88, 44,230, 11,133, 48, 12,153, 57,106, 54,
- 27,245,241,102, 20,147, 99, 25,116, 35, 78, 60,230,232, 56,142, 7,135,134,223,178,129,148, 81, 82, 36,217,110,186,194, 39, 46,
-133,122,217, 5, 32,128,168, 96,201, 77, 23,167,208,231,193,238, 66,158,137, 66, 64,134, 44,191,238, 12,150,101,218, 44,178,166,
- 32,137,169, 86,107,207, 63,251,204,179, 79,175,183,100, 18, 90,169, 70, 91, 71,219,172,163,231, 29,113, 68,119, 75,169,133,130,
- 64,175, 4,177, 74, 51, 99, 68,140, 73,146,190,190,222, 23,159,127,174,217,108,218,165, 19,156,252,174, 99,214,174,123,234,173,
- 26, 8, 83,231, 96, 54, 96, 37,242,142, 95,115,155,107,221,192,207,232, 56,132, 48, 13, 39,182, 4,157,227,190, 88,188,102,197,
-126,115,116,248, 91,154,162,116, 50, 69, 7,137, 5,128,141, 25, 30, 30,124,108,237,170, 61,175,237, 20, 55,187, 1, 40, 71,206,
-158, 51,239,152, 19, 58, 38, 77,242,156, 88, 22, 81,210, 20, 64, 20, 48, 27, 10,194, 35,102,116, 79,155, 54,125,100,100,104,243,
-211, 27,155,141, 6, 2,134,200,199,204,155,179,109,251,203,111, 53,196, 16, 81,192, 36,137,184,179,124, 98,200,184, 84, 97, 69,
- 93,233,137,101, 37, 67,142, 64,247,252,108,202,243, 90,122,193,166, 43, 75, 16, 59,205, 26,184, 65, 16, 1, 49,198,244,237,235,
- 89,183,118, 85,239,190, 61, 90, 94,139,200,225,211,143, 56,225,228,211, 14,157, 58,205,210, 79,153,131,207, 73,217, 17, 68,116,
-240, 80,136, 89, 2, 97,102, 98, 9,194, 67,166, 76, 93,113,254,197, 81,212,220,242,252,179,251,246,238,153,122, 72,199, 54,128,
- 82,169, 52,111,222,220,238,174,174, 98,161, 24, 39,209,224,224,208,214,109,219,246,239, 31,248, 29, 6, 74,226, 88, 28, 45,145,
- 94,247,225,212, 76, 90, 22,179,203,170,224,179,136,203, 52, 12,158,168,178, 82, 30, 55, 88, 9,246,188,115,179,137,206,164, 46,
-116, 5, 4,192,152,164,191,175,119,205,131,247,238,223,183, 79, 47, 78, 9,115,185,227, 78, 56,249,184,227, 79, 44,180, 20, 9,
-201,235,115,172,101,156, 40, 14, 2,107, 71,244, 76,142,102,120, 34,150,128,152,153,185, 24, 4, 11,206, 90,220,222,217, 73, 20,
-190,255,138,225, 56,142,188, 98, 87,152,153,205,202, 21,203,153,205,154,135, 31,121,244,177, 39,222,216, 64, 58,139, 98, 12,123,
- 2,223,139,203,172,147, 75, 74, 22,171, 97, 28,157, 2,170,252,212,191, 5,209, 15, 66, 41,155,162, 71,161, 53,176,120,112,214,
- 10, 22, 20,217, 28, 30, 30,122,232,254,159,245,236,222,165,152,110,177,165,229,140,179,151,117,205,156,149,203,229,124, 37,137,
-153,180,143,132, 58,153, 1, 46,184,201, 22, 22, 2, 64, 44,172, 7, 31,137, 64, 32,109,237,157,141, 70,189, 94,175, 87, 70,199,
- 84, 10,139,104,165, 94, 8,200, 78, 0,147, 36,120,222,187,151,159,187,116,241, 63,127,243, 59,253, 19,189,201,207,255,217,147,
-221, 43, 23,180,210,245, 25,198, 75,191,210,177,136,140, 68, 6, 93,198,181,195,103,110,147,245, 89,144,190, 63,184,215, 33,179,
- 25, 27, 29,125,252,145,213,219, 94,220,162,250,128,246,246,142, 51, 22, 45,235,154, 57, 43, 12,115,206,139,179, 5, 21,130,136,
- 45, 2,192,198,107,154, 0, 29, 26, 31, 0, 34, 97,190,144, 39, 10,107,181,170,234, 23,180,142, 67,177, 51,116,204,132, 8, 12,
- 6,149,138, 3, 8, 67,100, 54,129,192, 95, 93,247,151,175,188,250,234, 15,238,248, 81,146, 36,226,199,110, 92,234, 96, 55,204,
-226, 34, 76,183, 92,255, 81,137, 30,166, 74, 29,165,158, 82, 10, 56, 99, 23, 79,170,219, 2,216,221,137,100,133, 99, 44,205,102,
-227,185, 95,110,122,124,237, 42,253,164, 82,169,124,198,226,101, 51,103, 29,149,203,229, 0,179,169, 70,101, 45,144, 37,237,209,
-245,116,158, 7,180,158, 14, 24,134, 97, 46,159, 79, 18, 83, 29,171, 36, 38,177,154, 80,235,202,164,157,161,234,203, 68, 84,193,
-104,149,140,226, 52,183,196, 56,251,232,217, 55,124,250,239,254,237,135, 63,170, 84,199, 33, 59,210,234, 15, 96, 13,101, 13,115,
-101, 79,172,239,120, 9,179,187, 50,197,158,252,254, 22, 21,155, 84, 84, 90,100,247, 88,231,136,221,237, 42,146,196,201,222,221,
-187, 86,253,226,158,202,232, 8, 0,132, 97,120,246,210,119, 31, 53,103,110, 62,159,119,170, 42, 96,176, 92,182,157,189,148, 84,
- 44,195,204, 7, 85,132, 4,136,136,133, 98,145,136,162, 40, 26, 29, 29, 53,186,249,118,160,210,138, 39,173,243, 18,130,149,178,
-233, 40, 39, 16, 49, 51, 9,130, 78,217, 26, 8,130, 16, 77,130,239,127,255,101, 59,119,190,246,235,215,246,132, 89, 14, 55,229,
-175, 29, 45,163, 53,178,165,202,197,170,201, 92,225, 15, 44,108, 11, 90, 61, 76,156,153,156,120,205, 73, 28,109, 1,193, 99, 99,
-163, 15,221,119,239, 43, 59,182, 18,145, 8,191,235,228,211, 79,157,127, 86,169, 84,178,210,175,140, 81,245,220, 23,178, 10,114,
- 85, 30,138,168, 30, 72,178,183, 70, 21,138,197, 64, 77, 51, 50,154, 36, 49,103,218, 10,255, 52, 87,121, 19, 8,251, 5,185, 10,
-140,136,216,102, 57, 36, 66, 97, 4, 10, 1, 13,168, 28, 47,204,136, 68, 68,211,133, 94,233,225,206, 35,100, 45,249, 57,157,166,
- 75,143,111,116,122, 25,144,116,250, 61,195,156,248,194, 47,142,162,237, 91,127,181,246,193,159, 71,205, 38, 17, 77,159,209,181,
-248,156,243, 58, 39, 77, 86,198,212,110, 11,137,213, 63, 89,102, 29, 84,226, 39, 86,102, 47,104,197,182,168, 4,102,190, 80,200,
-133, 20,199,201,232,232,104,212,108, 58,103,119,213, 62,138,115,196,140, 16,194, 73,227,157, 2,178, 19, 49, 0, 0, 10,109, 73,
- 68, 65, 84,238, 14,157,237,208,247,116, 72,132, 70,128, 72, 75,211, 48,203,141,219, 92, 12, 30,175, 17, 68, 65, 64, 22, 39,166,
-246, 58, 49,203,193,131, 83, 73, 0, 48,167, 68,108,166,173, 48,198,140, 12, 15,221,255,147,187,246,245,236, 65,196, 32, 12,206,
- 57,239,226, 35,143, 58, 58, 8,115, 68,100,231,164,201,215,161, 78,154,237, 52, 95, 62,253,145,138, 4, 8, 16,161, 88, 40, 6,
- 33, 49,243,232,232, 88,179,209,240,184,146,173, 76, 88, 4,129,132, 24,217,213,107, 30,146, 66,175,176,118,172,180,164,226, 73,
- 4, 39, 27, 36,239,128,169, 7, 49, 79,168,105,108,174, 81,138, 27,192,235, 42,237, 91,217,233,123,193, 76,163, 37, 86,156, 96,
-139,101, 6, 72,162,104,235,139, 47,172,125,224,222, 56,142,137,104,222,113, 39, 44, 88,184,184, 92,110, 69, 34,127,216,217, 34,
- 58,245, 14,219,250,162,235, 71,208,182,106,128,132,185, 92,174, 80, 44, 8,155,122,189, 89,171, 85,245,172, 17,171,155,113,208,
-165,187,241,199, 74,137, 93,172,191,174,145, 6, 34, 96,182,122,149, 84,176,142, 2,254, 82, 35,127, 51,131, 71, 33,124, 33,167,
- 82, 74,159, 26, 16, 17, 24,210,150,221,159, 14, 62,111,185,139, 7,116,123,140, 72,101,100,120,213,125, 63,221,249,202, 14, 68,
- 44,151,203,231,156,127,201,140,174,238, 32, 8,237, 18, 85, 51,231,143, 56,251,117,172, 74,215, 98, 10,226, 52,113, 72, 97, 24,
- 22, 11, 69,128, 36,137,147,202, 88, 37,142, 34,197, 23,172,248,223,197,186,189, 4, 79,208,159, 12, 94,183,207, 19, 43,124, 4,
-208,107, 40, 39, 42,230,156,184,201,117,231,225, 65, 24,149,102, 83,239, 96, 54, 13, 43, 88,165,130, 98, 72,101, 13, 86, 17,155,
-233,223, 53, 91, 37, 73,178,107,231,175, 31,248,217,143,198,199,107, 65, 16,204, 59,238,132, 51, 22, 45, 45,151,202,118, 92, 23,
-252, 4, 79, 42,162,244, 83, 42,206,105,220, 55, 4, 66,194, 66,161, 80,200,135, 81, 28, 55, 26, 81,173, 58,166, 58, 90,223,250,
-166, 17, 4,254,110, 3,119, 43, 64,122, 61,153,144, 54,225, 2,175, 31,101, 57,104,248,223,181,159, 56, 33, 7,185,105,125,235,
-132, 30, 57, 86,165, 39,248,192,211,139, 6,192, 10,137,157, 98,196,190,140, 69, 26,141,250, 99,107, 30,124, 97,243,211,128, 24,
-230,242, 43, 46,188,180,123,230,145, 65, 24,162,171, 68, 49,213, 3, 30, 52,138, 1,238,110, 19,209,177, 26, 36,202,233, 35,144,
-122, 51, 30, 27,171,196, 81,147,189, 39,100,234, 79,155,174, 60, 92, 7, 8,238,206, 2,116,211, 57,156,118,138,146,213,244,166,
- 83, 14,233, 68, 73,186,166, 48,163,111,149, 20,104,113, 86, 87,132, 16, 61,140,110,103, 93,216, 43, 30, 83, 89, 30,179, 17, 30,
- 58,112,224,254,159,221,221,183,111, 47, 32,118,205, 58,106,233,185, 43,219, 58,218,137,130, 84, 36,143, 41,162,228, 79,218,131,
- 85,221, 42, 87, 37, 42,182,148, 2, 18, 22,169,142, 71,149,202, 40, 27,149,216, 8, 30,132, 50,249, 57, 51,143,194,217,178,128,
-179,122, 49,100, 7, 47,100,127,149,185, 38, 77, 82,172, 13, 61,198,145,173,131, 36,157,113,113,250,109,244, 62, 99, 59,118,132,
-244, 42,157,212,123, 68,196, 36,201, 43, 47,111,251,197,143,239, 84,202,225,140,197, 75, 79, 58,101, 65, 46,151,211,234, 62, 51,
-188, 3, 7, 25, 5,101, 66,157,169,183,242,132, 97, 88, 44, 22, 17,146, 40,230,106,181,218,104, 52,196,222, 36,236,212,128,200,
- 25, 57,143, 11,119, 64, 47, 45, 99, 97,132,236,206, 75, 70,121,199, 19,198,172, 4, 60,116,225,199,176, 38, 92, 57, 0, 25,213,
-176,157, 7, 5,127,200, 35,248,252,196,174,157,130,204,145, 15, 32, 34,205, 70,125,195,147,235,158,121,234,113,102,110,107,107,
- 63,247,130, 75, 14,159,118,132, 3, 40,178, 37,219, 27,133, 62,166, 51, 10,130,136, 68,133, 98, 75, 46, 64,230, 56, 74,100,116,
-116, 36,137, 19,239,202, 41,129,164,192,128,237,104,192, 75, 50,197,129,118,104,239, 51,201, 72,209,253,221, 43,153,128,242,165,
- 73, 38,143, 34, 58,153,211, 65, 33,150, 94, 43,145,114, 59,105, 47,227, 80, 12,127,251,160, 34, 60,204,213,177,177, 7,238,253,
-241,206, 87,182, 3,224, 17,221, 51,151,175,188,164,173,189,221, 87,128,111, 82,117,164, 11, 11,131,176,216,210, 66,146, 48, 75,
-181,214, 24,175,213, 84,208,153,230,133, 20,134, 20,204, 64, 79, 58,144, 35,190,101,242,194,175, 9,222, 98,125,137, 37, 13, 45,
-191, 72,251,150, 74, 54, 49,143,142, 12,247,245,238,203,212, 65,214, 99,188, 33, 28, 91,229,248, 48,241,106,108, 61, 3, 17, 4,
-132, 19,211,215,219,243,139,159,220, 57, 58, 60, 76, 20,156,118,230,162,147, 79, 91, 80, 40, 20,236, 89,237, 94,242, 59, 77,164,
- 29, 83, 24,230,139,197, 2, 74, 20, 37, 48, 86, 29,107, 54, 27,108, 88,235, 54,175,117,247, 41, 62,189,143, 67,178, 18,113,223,
- 53, 91,112, 33,171, 38,119,108,230, 68, 86, 42,157, 78,176,159,208,108, 52,182,191,244,171,222,125, 61, 97,190,152,194, 29,224,
-210,141,173, 20, 61, 72,161, 23,240, 58,195,249, 74,135, 25,216,152,157,191,126,229,190,123,238,140,162, 38, 5,193,210,229,231,
-207,158,119,108, 46,151,199, 12, 9,147, 29,253,248, 77,150, 18,145, 32, 8, 90, 90, 74,194, 9, 74, 60,222, 52,213, 74, 37, 73,
- 98,119, 57, 13,166, 23, 99,161,184,177, 18, 15, 28,104, 68,161,248, 49, 92, 73,121, 60,201, 10,237, 37,211, 34,189,158, 95,176,
-142, 99,246,247,247,189,180,229,249,195, 14,159,122,202,233,243,247,245,246,215,246,236, 13,125,126,102,244, 99,199,142,195,179,
- 13,138,250, 42,122, 20, 67,152,227, 40,222,252,244,250, 39, 30,121, 72, 68, 90,219,219,207,187,232,189, 83,167, 78,163, 64, 21,
-216, 98, 95,237, 43, 28,129,172,194, 22, 39, 34,182, 65, 24,182,180,180, 16, 24, 3, 92,171,155,177, 74,197, 24,147, 94, 34,102,
-155, 63,214,105, 54,197,123, 57,173,135, 57,147, 9,189, 73,188, 10, 51,149, 3, 64,170, 71, 22, 63, 41,152,246, 5, 34,205,122,
-253, 87, 91,158, 19, 54,199,157,112, 82, 24, 6,174, 65, 75, 91, 13,189,211,212, 97, 46, 30,227,212,198, 44,179,107,194,220,104,
-212, 55, 60,254,232, 47,159, 94, 15, 0, 83, 15,159,126,238,202,139, 59, 39, 79,118, 66, 93, 69,233, 60,113, 33,236,102, 11,210,
-142, 49,109, 9, 48,151,203, 21, 91, 74, 73, 60, 46, 16, 86,107, 13,189,181, 18,252,133, 46,233,237,218,152,166, 63,237,157,173,
- 27,160,248, 54, 90,252, 45, 91,246,197,233,221, 70,226, 46,254, 98,155,163,125, 35,134, 8,198,152,225,193,193, 87,118,188, 52,
-125,198,140,150,150, 86,112,247,239,103, 16, 69,223, 75,129,187,214,197,198, 9,131,207,215,202,148, 25, 51, 94,175,173,254,197,
-207, 94,222,246, 34, 0,204, 60,106,246,185,231, 93,212, 82, 42, 89,235,100,207,111, 47, 76, 32, 59,153,236,221,202,250, 14, 81,
- 62,159, 15,131, 32,224,168,105,176, 86,171, 52,155, 13,102,255,137,168,172,170, 38, 99,203, 94,235, 12,164, 13, 44, 85, 69,103,
-245, 70,110, 6,215, 15, 34,184,157,102,175,127, 6,127,207,159,237,111,226, 40,122,121,199, 75,194,230,232, 57,199, 40,150, 34,
- 14,169,200, 30,243,217,161, 10, 1,135, 52, 91,125,183,235,178, 12,243,200,232,240,170,123,239,233,217,179,139,136, 78, 56,101,
-254,233,103,158, 93, 40, 20,236,205,224, 14, 77, 68,156,112,132,251,185,119,109,100,245,171, 19, 81,161,216, 18, 18, 50,199,245,
-152, 42,149, 74, 28, 71, 98,239, 4, 18,246,119,197, 34, 59, 24,134,221, 12,139,147, 25, 75, 6, 13,158,160,159,206, 64, 64,162,
-170,116,192,140,144, 28, 83,124, 79,234,227,181, 87,119,108,237,156, 60,165,164, 87, 93,233,176, 10,103,231,184,210, 94,204, 41,
-157,208,147,159,108,169, 42, 1, 97,100,225,145,225,161,251,126,114, 87,127,111, 15, 17,158,116,218,153,167, 46, 56, 43,159,207,
- 91, 76, 20,125,197,152, 50,179,214, 88,105, 43, 32,206, 58, 65,177,165, 36, 28, 1, 80, 51,230,106,101, 36, 49,137,176,117,121,
-241, 19,101,182,229,212,149,160,139,120,247, 11,100,118,163, 76,217, 86,210,222,177,229,110, 83, 78,107, 96,151, 6,181,157, 53,
-108, 14,244,247,233,109, 75, 65, 16,184,139,158,178,173, 72, 22,180,183,209, 40, 86, 8,238,219, 25,151,118, 12,155, 3,251,251,
-127,122,215,237,213, 74, 5, 0, 22,157,179,114,222,113,199,135, 97, 14,221, 20,155, 21,227,103,178, 79, 22, 26,245,213, 2, 2,
- 80, 16, 20,139, 45, 1,154, 88,164,222, 76, 42,163,163,108, 12,123, 53,132,255, 26,206,214, 22, 0,100, 6,112, 55, 61,104, 47,
-202, 62,183,112,170, 20,215,229, 10,163,155, 4,182,167, 61,106, 83,107,183, 42, 73,226,158, 61,187,141, 73,186,143,156,109,163,
-195,245, 32, 25,102,216,122, 99, 26, 98,236, 48,123, 76,143, 85, 16, 17,147,112,239,190,158, 7,239,189,187, 86,173,134,249,252,
-217, 75,223, 61,123,222,177,158,120, 96,207,135,120,184,195, 90,202,187,149,187, 27, 17, 49, 8,194, 82,185,204,241,184,161,160,
-222,136,106,181,154, 18,185,153, 51, 55,237, 9, 17,213,115,208,194,254,118,252, 79,255,114,183,176,101,202, 31,246, 99,220,122,
-242,187, 41, 74,182, 21, 11, 10, 50, 48,196,113,180, 99,235,139,157,147, 39,119,116,116, 90, 87,200, 94, 81,151,177, 14,102, 88,
- 13,189,159,217,146,196,246, 60, 68,212,155,222,251,251,250,238,251,201, 15,171,149, 10, 18, 45, 92,250,238,217,243,142, 85,198,
- 74,145,145,236, 4,153,100, 10,103,111, 44,123,195, 32, 96, 16,134,133, 66, 1,185,153, 48, 54,198,235, 90, 37,123,172, 73,132,
-221, 88,200, 65,113,101, 15,123,206,148,133, 46,243, 74,230,123,165, 67,184,110,176,212, 94, 59,152,182, 26, 12,213,234,216,190,
- 61,187,166, 78,159,145, 11, 67,255,194, 12, 86,154, 54,119, 62,251,167,167,152, 61,145, 37,237, 65,141, 49, 61,123,119,255,252,
-238,127,139,154,205, 48, 12,206,185,224,143,186,103, 29, 21, 6, 65, 58,231,137,169, 40, 3,237,173, 20,246,255,213,179,210,214,
- 60, 12, 91, 90, 74, 98,234,145, 9,234,245,250,248,248,184,135,189, 5,217, 14,177, 91,210, 94,128,209, 86, 39,153, 82, 23, 93,
-165,227, 8, 55,219,124,122, 62,215, 95, 64,226, 7, 57,217,179, 44, 0, 34, 50, 86, 25,217,183,119,207,161,135, 79, 11, 40,176,
-185, 67, 38, 82,217,110,186, 68, 50,135, 99,232,243,158,100,165, 37, 34,204,188,111,239,158, 85,247,254, 56,106, 54,115,249,252,
-217,231,172,232,234,158, 21, 6,129,187,209,212,126,127, 15, 45, 74, 6,238, 1, 15, 54, 2, 16, 81, 46,204, 21,242,121, 48, 77,
-150, 96,108,108,172,209,104,168,112,196,190, 66,208,247, 79,122,137, 28, 58, 86, 73,192, 93, 74,113,112, 87,145,185,207, 45,123,
-250,218, 34, 21,109, 91, 97, 89, 42,100, 99,250,122,123,162,168,121,248,244, 25, 62, 35,102,156,113, 66,227,237, 7, 90,210,102,
- 21, 44,238,236, 59, 88, 96,230,129,253,125, 15,252,236,238,218, 88, 5, 9,207, 92,124,238,145, 71,207, 13,195,156,123, 19,116,
-168, 37, 99,118,216, 46, 3,137, 91,248, 2, 41, 23,134,249,124,142, 48,105,198, 92,171,141, 55, 26,117,102, 70,127, 82,161, 56,
-182, 71,193, 37,155,140,211, 57,101,196,204,224,219,132, 31, 32,189, 19, 22, 51, 19,151,104, 79,118,167,180, 49,198,236,239,221,
-199,198,116,118, 78, 78, 69, 41, 19,152,174,223,244,152,168,180, 71, 55, 8,207,194,251,251,123,127,126,247, 29,227,213, 49, 34,
- 90,186,226,162, 57,243,142, 85,236,194, 93,227,159, 41,191, 37, 51,202,154,129, 81,244,122,140,124, 46, 87,108,105, 65,137, 19,
-166, 90,173,166,176,142, 45,106, 17,252,113,128, 41,194,136,238,162, 70,183, 5,191, 67, 62, 55,113, 70,218,235, 80,108,179,140,
-134,147,221, 59, 95, 5,128,182,142, 78, 36,202,150,106, 50, 1,136,193,131,132,202,222, 64,184,100,201,146,172,163,102, 40, 55,
- 60, 56,181,255, 97, 78,236,252,158, 47,255,191, 39,161, 67,133,199, 85, 52, 66, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/lighten.png.c b/source/blender/editors/datafiles/lighten.png.c
deleted file mode 100644
index 77e14433659..00000000000
--- a/source/blender/editors/datafiles/lighten.png.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/** \file blender/editors/datafiles/lighten.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <lighten_png> */
-
-int datatoc_lighten_png_size= 9437;
-char datatoc_lighten_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1,
- 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0,
- 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116,
- 73, 77, 69, 7,218, 7, 21, 0, 4, 17,164, 74, 11,162, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,125,105,144,109,215, 85,222,
-250,214,222,231,246,248,102, 61,201,146, 44,219,146,108, 34,233,225, 65,179,237,144,136, 96, 73,166, 76,156, 96, 23, 38, 21,248,
- 17,170,194, 84, 73,204, 12, 54, 54,144,170,224, 2, 2,127,192,252, 8,164, 32,133,171, 82, 84, 98, 66, 85,248,231, 63,137, 0,
- 51,148, 7,144, 43, 24, 91,122,146, 29, 73,150,159,244,158,223,208,175,167,219,247,158,189,215,151, 31,107,239,125,206,237,110,
-201,114, 48,169, 80,165,211,173,126,221,183,111,159,187,239,218,107,175,225, 91,223, 90, 18,249, 90,175, 87, 92,127,253,205, 55,
-223,114,240,113,136,200,251,222,255,129,156, 19, 68, 84, 21,170, 49,198, 46,198,216,117, 31,252,192, 79,251,147,194, 15,253,240,
-143,244,253, 60,231,100,102,217,204, 44,211, 47,179, 7, 31,124,232,177,199, 31,219,222,218,210,249,124,214,207,231,253,188,239,
- 83,159,250,190,139,125,144,100, 70,179, 60,159,207,127,240, 7,126,176,235, 58,188,231,159,127,207,103,159,220,221,154,102, 64,
-255,201, 3,215, 28, 93, 83,145, 40, 92, 70, 12,164, 64,117,210,117,241, 79, 30,189, 12, 64, 4,128,173, 45, 67, 68, 68, 18,101,
-198, 20,178,137, 32,208, 44,154,101,133,138,192, 68, 52,136, 8,205, 56,239,247, 40, 49,155,134, 96, 66, 70,161, 25, 9, 64, 0,
- 17, 33,229,179, 79,238,124,230,236,246, 13,215,172,220,121,219,209,201,132, 66,137,204, 6, 21, 10,132,216,155,217,159,125,230,
-210,151,206, 77, 17,226,185, 11,211,231, 46,205, 94,123,211,250, 55,222,122, 4,167,111,121, 27, 36,136, 10, 8,170, 10,161, 42,
-144,128, 16, 0, 5, 84, 52, 70, 26,137, 44, 25,170, 16, 19,129,144, 42, 98, 66, 17, 17, 2, 65,236, 37,109, 87,104,223,173,172,
-172,222,116,211, 77,170,152, 78,167,251,247,238,174,187,238,122,219,131, 15,145, 84, 0,170, 33, 4,223,184,143,125,236, 99,127,
-250, 39, 31, 47, 79,250,161, 31,250, 97, 10, 33, 80, 85, 40,130,134,232, 87,215,197, 24,127,230,131, 31, 16, 17,157,215,141,235,
- 83,175,210, 71,237,193, 76, 99,223,207,231,243,217,207,255,252,135, 68, 4,223,252,246,239,126,242,217, 61, 0, 43, 75,225,221,
- 15, 94, 3,129,200, 18,117,201, 55, 40,198,184,180,188, 28, 31,127,106, 11,170, 36, 94,113,227, 50,132, 34, 66,206, 96, 36,145,
-168, 52,163, 72, 52, 49, 53, 19, 81,223, 93,146,217,108,222, 79,205,162,106,176,104, 20,137, 52,163, 64, 96,125, 50, 82,118,247,
-242,255,248,196,229,221, 41,239,123,253,137, 83,199, 39, 36,133, 18,214, 78,222, 34, 66,138, 40,228,117,175, 94,255, 47, 31,123,
-118,119,207,178,241,217,231,231,207, 94,152, 93,119,114,210,117,192,233,155, 31,132,170, 64, 93,227, 85, 84, 20,130, 0, 9,208,
- 16, 52,136,198,104, 98, 74,130, 34, 34,162, 32, 13, 2,168,138,100,136, 80,160, 52,249,122, 93, 24,255,240, 35, 63,250, 99,107,
-171,107,190, 73,254, 1,133, 66, 53, 40,128,160,225,195, 31,254,213,243,231,207, 31,126,163,159,248,201,159,202,150,133, 34, 70,
-191, 45, 68,160,128, 40, 20, 34,208, 0, 85, 5, 52,132,160, 64, 8, 65, 53,196, 24,223,255,254,159, 90,184,209,191,250,215,255,
- 70,132,174,169, 34,130,209, 37,144, 24,208, 69,133, 40, 37,104, 8,190, 60, 55, 25,170, 26, 98,252,200, 71,126,231,137,179,103,
- 69, 36,246,243,185,136, 24, 57,155,115,107, 55, 25,177,182, 18,142,175,199,165, 73, 88, 89, 22, 8,204, 84, 16, 32, 32, 85, 5,
- 52, 35, 37,231, 12,133,166,244, 93,223,245,221, 33,132,159,251,217,159,193,107,222,240,238,108,204,217,223,148,191, 55, 92,123,
-106,242,192,221,199, 87,150, 68, 68,171, 40, 35, 25, 41, 42,128, 82, 40, 52, 0,208,224, 75,235, 98,156,237, 37, 1, 5,160, 64,
- 73, 81, 37,121,205,241,149,229, 73,217, 7,146, 34, 20,153,139,204, 33,209, 12,115,131,153,191,123, 53, 85, 85,205,102,145,146,
-133, 20, 83,130,132,138, 37, 10, 98, 16, 1, 69, 32, 66, 10,102,115,219,216,234, 47, 93, 77,150,229,154,227, 75,203, 75,161,139,
-234,135,207, 79,160,154, 69, 90, 18,170,104, 38, 65, 38,129,138,216,214,118,202, 25, 49,112, 58,147,191,252,220,149,103,158,155,
-206,122,223, 74, 0, 88, 89,142,175,122,197,242,171,175, 95, 89,234, 66,244, 59,170,225,244,173, 15,137, 0,190, 0, 8,160, 36,
-151,186,240,240, 55,221,240,228, 51, 91,103,159,218, 34, 73, 64, 5, 20,133,170, 80, 92, 56, 46, 80, 64,215, 87,227,201,227, 75,
- 56,117,243,183,248,235,248,163, 66, 17,127,178, 84,173,170,191, 19, 40, 8, 81,173, 54, 90, 1,161,168,107, 89, 36,205, 53, 89,
-160, 66, 19, 8, 13, 10,138,184, 53, 0, 21, 74, 17,117,195,168,194, 44,226,154,101, 66, 0,164, 9,149,242,255,221,133, 67, 31,
- 61,113,226,196,241,227, 39, 68,100, 54,219,219,216,216,216,221,221,253, 26,110,244,218,215,189,238, 61,239,249,206, 42,217, 42,
-124,168, 43,111, 8, 97, 99,227,234,175,252,242, 47,189,216,141,222,255,211, 31,176,108,116,123, 88, 78,191,250,198, 64,203, 21,
-252,102, 26, 98, 23,223,247, 83, 63,121,200,141,126,236,199,127, 66,232, 31,190, 75,240,141,133,239, 36, 2, 20, 33, 20, 51, 18,
-212,151, 24,158,249,210, 51,191,249, 27,255, 97,124, 35, 77, 41,245,169, 79, 41,165,156, 82, 78,150,147,229,148,115,206, 41,231,
-108,217,146,229,156, 83,182,156,115, 74, 41, 39,255,122,211, 77, 55,253,210, 47,253,242,254, 27,229,242,233,127,236, 87,202, 57,
-155,101, 48, 3, 25,102, 66, 35,201,108,217,114, 78, 41,245,125,223,207,127,225, 23, 7,145,169,229,108,237,162,209, 72, 35,205,
-132, 22,131,197, 96, 1, 86, 12,135,144, 16, 49, 49,250, 42, 83, 74,233, 23,127,241,223, 23,159,124,231,157,119, 81, 56,155,229,
- 75, 27,243,171,219, 57,165,172,138, 24,216,117, 50, 9,132,186,232, 0, 81, 63,181,164,148,109,169,223,188,254,245,175,255,228,
- 39, 62, 17, 55,182,231, 79, 60,179,119,105,163,247,231, 67, 48,233,112,219,205,107,223,240,170, 37,209, 64,102, 64, 68, 76,100,
-184, 1, 41,160, 24, 76, 68, 36,165,107, 78, 93, 3, 65,216,213, 91,182,118,147,209,195, 11, 35,185,182, 26, 78,159,136, 39,143,
-199, 24, 4, 80,169,246,220, 76, 68, 4,230,119, 36, 57,156,175,135, 30,126, 56,206,230,217, 45, 72, 81, 34,200,202, 4, 43, 75,
-218,133,225, 22, 34,201, 76, 84, 41,162, 20,201, 46, 45,160, 44, 18,152,207,231, 81,232, 62, 20, 85, 25, 37, 70,116,209, 85,187,
-153, 90, 1,146, 8,179,169, 25,178,193,181,222,109,142,164, 36,148,104,204, 16, 64, 40,132, 40,141, 80, 80,193,122, 35, 95, 20,
- 83, 98,202, 38, 8, 57, 67, 68, 1, 40, 65,176,232,177,164, 8, 87,104,129,128,194,106,169,203, 45, 64,210,168,123,179,252,252,
-165,254,234, 86,190,246,196,100,101, 57,198, 64, 13, 74,211,160, 52,179,242, 62, 40,244,101,128, 34, 84,170,229,100, 70,144, 42,
- 66,163,236, 76,211,231,190,176,115,246,233, 29, 64, 47,156,152,220,250,202,213, 99,235,221,164,163, 6, 10, 69,233, 47,203,176,
-118,226, 86, 40,234, 9,134, 8, 87,150,195,137,163,147,227, 71,162,128,187,211,252,169,207,110,126,241,217, 29, 95,246,116,207,
-190,114,181,159,247,214, 69,141,177,254, 29, 32, 34, 97,237,228,173, 20, 20, 43, 93,130, 48, 28, 93,143,199,143,116,125,207, 63,
-125,244,242,179,207, 79,225,111, 82, 32,130,148,237,234,102, 62,191,145, 54,182,210, 60,113,121,162, 49, 64,128,176,118,226,214,
- 18,175,214, 91,245,153,171,203, 81, 33,159,123,114,243,233,231,166,112,221,240, 13,113,157, 21,230,196,173,105,190,112,121,254,
-212,115,179, 47,127,101,190,177,157,112,250,150, 7, 75, 12, 35, 90,194,153,178, 92, 10,220,172,168,135, 22,229,149,154, 23, 17,
- 21,120,184, 21, 84, 17,133, 20, 87, 36,152,251, 31,162, 88, 55, 24, 5,226, 62,130,174, 50, 2,144,164,135, 20,116,127, 36, 74,
- 19, 81,138,249,182, 87,157, 39,232,231,192, 12, 66, 18, 66,163,137,144, 52, 33, 77, 40, 48, 17,129, 9,139,185, 32, 40, 74,138,
-144, 70,243, 16,195, 76, 40, 38,160,136,128,230, 47, 80,151, 81, 23,111,174,101, 20, 8, 32,144,133,115,247,242,245, 53,249,217,
-118,221,114,203,173,119,220,113,199,205,183,222,122,242,196,137,225, 81,150, 83, 0, 15,158,203, 63,186,177,177,113,246,236,227,
-127,245, 87,255,235, 11, 95,248,194,215,103, 65,235,235,235,239,121,207,119, 94,127,253, 13,102,174, 10,131, 49,105,145,146,212,
-232, 10,251, 34,233,226, 83, 81,156, 51, 84, 32,177,235,254,219, 71, 63,250,233, 79,127,234,165, 43, 7,222,249,206,119,222,113,
-199, 25,179,193,197,136, 44,252,117, 61,119, 67,216,134, 22,215,239, 95,146, 39, 28,195,178,234, 66, 85, 85, 83, 78,255,241, 55,
-127,227, 75, 95,250,210, 87, 89,208,143,252,232,143, 75,245,117,251,150, 82, 95, 87, 70, 31, 11,171,145, 33,205, 24,137, 72,134,
-165,236, 19,158,106, 0, 16, 98,248,183, 63,247,179,123,123,123,135, 39,208,247,222,123,175,159, 93,178,254, 59,186, 68,106,180,
- 51,254, 32,139,167, 21, 66,168,197,238,184, 27, 22, 20,159,214,222,226,224, 74, 73,183, 39,246,192, 3,223,252,240,195,111,127,
-234,169,167, 46, 95,190,188,127, 65,119,223,115, 15,205,104, 7, 86, 35,164, 13,110,190, 45,194,205, 17, 64,128, 49, 16,238,253,
-220,156,140,242, 33, 10, 81, 44, 45,141, 34,101, 57,195,221,141,246,166, 59,239,124,248,225,183, 63,249,196, 19, 87,175, 94,109,
- 11,138, 57,165,209,233, 41, 91,150,146, 39, 50, 34,144, 24, 84, 32, 81,161, 1, 96, 9,107, 98, 16,129, 4,128, 53, 54, 20,241,
- 24,193, 32,218,156, 43,133, 32, 5,204,110,186,173,237,178,153, 65, 85,105,246,189,223,247,253,147,110,242,190,247,149,120, 52,
-188,225,141,119,154,177, 79, 54, 79, 54,159,219,206,204,166,211,124,101,179,223,218, 77,155,219,105,107, 55,207,230, 54,221, 51,
-203, 76,137, 2,134, 32, 33,200, 82, 71, 7,111, 20, 11,122, 87, 20,166,248, 14,106, 61,165, 44,118, 89,170,190,142,247,145,217,
-242,131,111,123,232,220,185,115, 23, 47, 94,196,187,190,227, 95, 80,120,113, 35,109,110,167,189,222,182,119, 61, 48, 43, 62,144,
-234, 78,137, 93,212, 16,241,247, 94,189,122,203, 43,151,187,168, 53,171,108,178,112, 33, 5, 17, 45,223,120,216,132, 26,198,112,
- 48, 48,172,135,160, 28, 73,245, 68, 54, 0,248,163, 63,122, 4,215,223,254, 79, 11,144,212,194, 7, 10,235,207,237,209,227, 71,
-186,229, 37,125,213,245,203,175,185,126, 73, 33,147,137,111,144,142,212,209,127, 84,145, 64,214, 77,164, 80,160, 37,140, 45,162,
-226,128, 72,140, 78,167,170,127,117, 55, 45,130, 10, 62, 56,104,130, 81,164, 39, 32,101,117, 25,235,107, 97,117, 89, 39, 19,197,
- 96,171,247,217, 88,146, 73,196, 60,140, 19,207,216,139, 45, 65, 50, 97,185,125,145, 16,171, 81,240,156,209,191, 70,113,144,134,
- 67,180, 66, 53,214,163,171, 70, 66,132, 18,131, 44, 77, 16,213,205,210,194,101,102, 24,173, 14, 48,145, 44,162, 36, 82,134, 8,
- 82, 18, 2, 52, 15, 53, 21, 42, 44,161, 13, 20,234,239, 31, 14,202,145,145, 77,154, 16,210, 0, 8, 33, 98,240, 80, 4, 16,177,
-146,187, 11,165,156,240,166, 55, 20,161,170,186, 61, 16,112,103,202,189, 57,183,119,243,222,140, 49,226,212,209,137,170, 86, 35,
-143,130, 97, 82, 60,225, 87, 81,211, 44, 46, 34, 17, 16, 10, 70,163,159, 76,120,236, 46, 5,167,244, 87,182,170,153,204,201, 82,
- 34, 13,251,246,138,196,188,207, 20, 60,245,229,233,206, 94,126,254, 43,243, 43,155,189,195, 4, 49,234, 53,199,186, 46,224,213,
- 55,174,196,128,181,229, 24,212, 79,137, 2, 89,160, 34,185,156, 26, 5, 50, 1, 80, 17,221, 78,212, 20, 7, 48, 86,208,129,144,
- 98,124, 5,156, 39,155,206,210,172,207,150, 69,192,160, 48,178,239,153, 50, 63,251,228,118,223,219,115, 23,103,123,115, 43,233,
- 7, 41,162,125,159,207, 95, 50, 1, 46,111,245, 10,188,226,212, 82,215,225,154,227,147,149,229, 16, 84,187, 72,131, 66,178, 8,
-144,171,134,155, 70, 74, 38, 93, 60,174,111, 32, 77, 26,130, 4,115,137, 76,103,137,228,116,150,251,148, 21, 8, 19,157,205,236,
- 51,103, 55,114,226,179,231,247,114,102,202, 45, 40, 81,163, 0,153,162,102, 4,100,103,106, 34,216,155, 27, 84,206,125,101, 30,
- 35, 86,151,227,145,213,176, 60, 9,167,142,119, 65,177, 52, 9, 40,128,142, 68,143, 95,125,151, 74, 40,239,193,167, 22, 83,235,
- 49,231,116,218,247,115,219,217, 77,187,123,214,247,182,177,181,187, 55,183,103,190,188, 99, 38,123,115,207,124, 20, 52, 66,133,
-230,203, 34, 13, 34,164, 90, 54, 42,108, 46, 16,233,251, 30,192,214,118,186, 24, 53, 6, 60,115, 33, 4, 96,101, 41,168,234,250,
- 74,208,160,142,115, 19, 2, 24, 0, 19, 3, 1,250, 63, 2, 26,125, 23,103,189,245,137,207, 95,156,166,108,125,111, 87,183,123,
- 51,217,157,102,162, 88, 78, 33,169,238, 29,132,162, 52,211,146,220,152,199,238,126, 56,178, 41,104, 57,171,204, 77, 4,178,147,
- 85,164,235, 2,128,229,165, 16, 84,113,250,230,183,185,177,168,102,195,221,149,219,175,226,185, 85, 60, 83, 98,129,235,154, 21,
-130,187,249, 10,122,129, 66,165, 82,197, 31, 24, 80,195,106, 17,180,166, 96,158,123,193, 65,101,208,243, 23,136, 32, 86,125,102,
- 61,216,160,216,240,138,174,241,110,222, 80,220,128, 21,151, 80,143,177,159, 11,186,231, 34, 40, 38,230, 73, 4, 68,173,100, 29,
- 10,183, 88,158,149, 86,212,174,189,115,186,189, 83,137,226,176,156,130, 98, 20, 45,232,102, 61,212, 86, 64,196, 98, 76,139, 76,
- 60,212, 41,122, 47, 66,135,242,180,248, 44,183,156,197, 69,212,164,191,220,201,109,155,195,128, 70, 0,162, 66,210, 99, 4,245,
- 52,205, 13,145, 81,200,146, 64, 21, 28,150,195,201, 23,138,209, 40,142,217,176, 70, 63,238,180,133, 70,136,208,220,167,179,254,
- 18, 20,163, 9, 68,172, 26,126, 17, 17,163,213,216,173,196, 59, 44,123,196, 1,246,126,249,122,249,250, 91,203, 92,135,216,187,
-139,171, 43,171,147,201,100,121,121,165,235,186,130,174,165,126,111,111, 54,155,237,237,236,236,100,175,122,252,173, 46,168,235,
-186, 55,189,233,206,219,110,191,253,213,175,122,117,136, 97,136, 64,181,156, 51, 79, 1, 61,220, 35,249,197, 47,126,241,243,159,
-251,235,191,248,139,191,152,207,231, 95,231, 5,125,219, 63,126,231,153, 51,103,186,216,213, 88,105,200,164, 71, 9,117, 75, 16,
- 75,134, 47, 34, 33, 4, 40,230,243,249,163,127,249,151,127,240, 7,255,253,111,180,160, 24,227,153, 51,103,222,241,142,111, 99,
-139, 93,217,128,198, 33,165, 31,103,248,139,201,233, 98,106, 15,168,234,230,230,230,135,127,237, 87,119,118,118,190,182, 5,157,
- 60,121,242, 29,239,120,199, 13, 55,188,210, 49,163, 81, 52, 61,122,210, 56,232, 31,125,125,193, 53,121,116, 42, 18, 98,184,112,
-254,252, 71,126,231,119, 14, 38,169,135, 47,232,189,239,125,239,202,202, 90, 53,159,251, 51,252, 33,147,199,144,149,142,164, 84,
-209, 62,143, 83,101, 12, 48,140, 55, 19, 33,132,179,103,207,254,167,223,254,173,175, 94, 28,255, 7,255,240, 1,203, 70, 97,102,
-110, 89,115,245, 9, 45,191,247,216,150,104,194,179,234, 98,107,222,135, 33,122,170, 25, 79,205, 68,124,219, 79,157, 58,245,246,
-111,253,214, 63,255,243, 63,123,113,149, 15,247,223,255,102,122, 25,243, 16,172,161,184,181, 42,178, 1,105,144, 1, 77, 24, 16,
-237, 67,174,146, 71,213,219,152, 61,240,192, 63,234,186,238,201, 39,159,120,193, 5,221,119,255,253,139, 47, 60,250, 36, 15,156,
- 67, 30,252,150, 53, 29,229,104,151, 71,233,125,125,176,130, 41,175,121,205,205,183,221,126,251,167, 62,249,201, 67, 23,164, 52,
- 43, 62,220,172, 32, 20,237, 83, 94, 0,164,169,232,171,144, 16, 83, 49,208,209, 92,142,208,151,118, 59,182,151, 48, 51,179,156,
- 45,223,120,195,141, 31,250,208, 47, 28,190,160, 82, 19, 26,215,134, 22, 47,127,249,242,172,225, 65, 19, 49,136,121,166, 6, 16,
- 48,208,106, 64,225, 65, 18,141,226,154,208,238,150,203,215, 44,144,127,247,243, 31, 58, 76, 66, 69, 26, 47,122, 89,129,116,252,
- 7, 95,129,130, 80,130, 28,234, 69, 37,225, 53, 15, 52, 29,139, 49,143,178,105, 21,133, 50,203,217,197,167,170,239,255,233, 15,
- 28,220,178, 23, 88,207, 8, 46,107, 95, 93,175, 52, 80, 85, 66, 96, 80, 66,169,163, 79,150, 10, 76, 51,166,128, 64, 28,193, 28,
- 3,105, 85,246, 71,214,143,252,203,239,253,190, 5,165,190,235,174,187, 23,158, 39,236,251, 82, 0, 74,137,217, 85,197,204, 35,
-110, 47,247,196, 64, 13, 80, 80, 84,164, 2, 5, 67,157,163, 22, 35, 32,158,145,148,180,104, 0,234,107, 21,207,129,182,147, 39,
- 78,110,110,110,158, 59,119,174, 56,140,145, 77,102,159, 72,145,157, 93, 75,190, 52, 34, 6, 89, 90, 10, 81,177,190, 42,153, 50,
-233, 0, 72,140, 80, 24,233,249,130,121,237,200, 35, 81,143,229,133,161,158,179,138,237, 9,173,122,162, 33,108,207, 89, 85, 77,
-229, 93,239,126,247,231, 62,247,215, 94,117, 14,111,124,211,157, 70,206,146,165,158,211,185,245,254,117,206, 62, 49, 37,201, 36,
-137,156, 41,130, 62,179,139, 66,202, 36, 18, 35, 40,182,138,167,213,163, 81,242, 77,165,231, 20, 35,200,123,159,205, 40,245, 25,
- 35,239,187,239,254,143,255,241, 31,139, 72,220,158,166,148,248,244,243, 51, 51,217,216,236,147,141,188, 87,203,166, 32,147, 78,
-151, 59,125,235,157,199,186,224, 37,161, 18,177, 59,190,227,152, 80, 17,146, 31, 48,207, 85,170,109, 44, 16, 65,115,216,158,119,
-168,153, 40,205,130,234,210,210,210,189,247,222,247,169, 79,125, 82,251,222,250,100, 57, 51,231,156,155,213, 49,210, 15, 40,219,
-177,176, 92, 15, 20, 56, 10, 72,252, 88,121,109, 86, 8, 24,197,132,134,202,139, 27,204, 68,253,102,100, 71,232,255,101, 51, 26,
-191,253, 93,239, 2, 16,246,226,173,231, 47,207,119,166,121, 58,179, 82,164,109,249, 83,205,171, 98,192,241, 35,221,202, 82,120,
-229,117, 75,177, 67, 12, 37, 33,171,208,226, 2,216, 8,120,149, 23,205,106,107,193,232, 26,238,180,111,199, 42,208,100, 60,122,
-236,104,156,245,121, 40, 49,122,209,216,172, 58,243,146,183,122,169, 88,149, 40,192, 42, 14, 68,118,168, 40, 43, 42,164,103, 34,
- 5, 7, 46,143,185,190, 89,253,107,151, 44, 76,252,184,146, 20,187,247,222,251, 98, 5,109, 11,240, 90,113, 43, 87,136,146,243,
- 43,100,109, 37, 76, 34,186,136,174,211, 42,158,131, 87, 54, 19, 17,213,130, 84, 67, 0,171,180,174, 76, 17,194, 40, 10,207,253,
-169, 80, 82, 96, 66,101, 48, 51,104,206, 57, 58, 98,203, 1,212,115,252,213,227, 9,243,122, 43, 68, 98,112,238,213, 66,193,227,
-176,112,207,170, 3, 88,216, 71,138,152,185,215,135,137,137, 73, 1,207, 29,111, 48, 49, 85,136,193, 16, 75,218, 43,230, 53,214,
- 2, 35, 20,201,250, 23,163,132, 16, 24, 21, 40, 64,240,168, 14,190, 88,174,241,250,182, 99, 9, 46, 96, 35,152, 75,138,222,142,
- 1,198, 97,131, 67, 36,102, 2, 16,136, 78, 70, 67, 21,145, 35, 25, 21, 86, 37,204,107,200, 12, 65, 67,104,129, 43, 95, 40,248,
- 81, 5,217,170,169, 32,145,179,229,172,126, 95,173, 56,186, 46, 66,220,205,182, 22, 20,150, 13, 93,119, 92,187, 44,167,172,204,
- 77, 91,129, 62,192,197,213,236,255,190,239, 73, 17, 47, 66,120,197,209, 35, 63, 15, 31,173, 6,225, 38, 69,233, 11, 98,103,230,
- 37,110, 51,139, 67,101, 9, 70, 55,114, 24,226, 85,160,226,234, 30,102, 28,200, 85,128, 22,126,153, 9, 54,119,204,140,151,174,
-102, 7,255, 87,150, 92,166,181, 68,195, 66, 51,224, 1, 41,151, 74, 22, 25, 89,160,110, 52, 37, 54,199,167, 93, 72, 86,227,102,
-106, 13, 93, 57, 94,144, 81, 68,196, 50,103, 61,115,182,171, 59,201,140,211,189, 76, 65, 23,145, 51,187,168, 49, 40,148, 33,168,
-187,182,131,229,136,178, 60,171,244, 79, 1, 32,100,113, 2, 21,162, 46,110,161,248,205,156,205,233, 78, 34,218,172,138,223, 36,
- 37,238,238,229,167,206,237,245,201,190,240,165, 61, 22,236, 84, 78, 30,237, 38,157,158, 62, 57, 57,117,180,139, 81, 87,150, 29,
-159,131, 53,143, 39, 42,194,162,204,170, 16, 17,179,232,218,107,116,224, 13, 13,202, 67, 73, 45,172, 40, 78,137,204,154,124, 74,
-126,145, 77,250,108,125, 98,223,231, 62,211,204,171,117, 2, 72, 50,134,108,125,111,243,100,164,196, 32, 0, 98,168, 85, 27, 84,
-143,231,133,158, 74,208,138, 30, 16,148, 53,187,126,163, 70, 62, 5,204, 19,163,237,205,115, 54,102,147,144,205,233, 22, 41,209,
-200,243,151,230, 79, 63, 55,157,205,248,252,165, 61, 10,104,164,184,229,196,213,173, 4,200,213,157,252,236,133,217,202,114, 56,
-125,188,235,162, 94,119,106, 73, 33,147, 78,196,180, 10,105, 8, 6, 96, 22, 71, 89,161, 35,111, 42,142,208,149,220,217,164, 22,
- 48, 75, 94, 82,117,192, 72,163,100, 99,223, 91,159,153,179,211,125, 8,152, 80,141, 38,170, 48,228,108, 61,208, 37, 75,137, 64,
-161,118,103,163, 34,171, 6,186,131, 19,170,120,124,133, 88,153,136,238, 15, 21, 37, 28,118,134,168,215, 25,132,148,157,105,223,
- 69,237,251, 12,161,106, 16,145,167,159,155,126,229,202,108,107, 59, 93,218,152,155,192, 42, 18,203, 82,145,117,194,143,166, 44,
-217,210,188,215,157,189, 28,160,231, 47,205, 85,113,242, 88, 23, 85, 79,159,152, 76, 38,218, 69,196, 40, 38,170, 66, 33, 99, 81,
- 33, 2,128,163,174,101,119,221, 51,154, 51, 72,212, 76,204, 60, 11, 5,133, 10,204,231,121,119, 55, 79,103,121,158,204, 65,103,
-162,110,126,163,120,150,138, 38, 96, 54, 55, 69,200, 2, 6,213,181,149,144, 2,179,153,101, 97, 8,110, 75, 41,106,100, 20, 47,
- 36,160,254, 35, 34,197,197, 20, 67,100, 2, 24,183,119,211, 36, 98, 58,179,108, 56,119, 97,214, 39,126,249,252,244,242,230, 60,
- 37,146, 84,247, 59,133,146, 83,202,162, 86,161, 98,161, 24,160, 52,102,221,155,155, 10,207, 95,154, 3,114,101,179,215,160,203,
-147, 16, 3,150,186,176,188, 20,160, 26,107, 53,211,207, 83,145, 73,241, 96,104,117,110,206, 83, 22,106,159, 8,216,198, 86,154,
-205,242,246, 52, 77,247,204,229,210, 60, 41, 76, 68, 75,244, 8,136,155, 20, 64, 96, 52,133,138, 89,130, 41,251,169, 0,178, 59,
- 53, 66,150,151, 66, 84,172, 44,199,181, 21, 2,168, 65,126,173,150,213, 26, 66, 1,254,253,150, 2,177,204, 94,236,127, 63,187,
- 21, 3,174,110,247, 41,201,222, 44, 99, 48, 72,172,168, 60,124, 77,165,210,165, 58, 80,226,204,137,203,148, 10,194,155, 0,148,
-148, 72, 21,155,229,108, 34, 80,156,190,229,193,130,174, 23,230, 84,133,224, 27,133,148,205, 46,213, 48,142,133,126, 37, 82,206,
-149,255, 1,135,216,196,143,168, 46, 70,231, 10, 17,106, 43,112,148,240,146,165,192, 88, 42,194, 30,184, 88,113, 95,238,165, 91,
- 4,235,201, 42, 74, 41,192, 45, 85,249, 44, 55, 40,108,174,230,165,106,181,163, 30,231,134,248,187, 84,224,191,243,147, 94, 50,
- 79,212, 0,146, 78,205,147,198,212,135,121,189,163,176,227, 97, 50, 88,132,225,144,177, 50,200,188, 20,235,137,115,171, 22,136,
-176, 84, 94,220, 47,202,240, 23, 86,170, 55, 4,107, 89,181,254,218,233,101,240,180,152,104,160,153,111,131, 59,212, 90,141, 16,
-107, 53,224, 42, 0,179,130,193, 82,172, 52,146,212, 34, 41, 43, 46, 83, 10,239,168,226, 40, 94,130, 45,115, 44,133, 84,214,138,
-111,173, 47, 57,215,146,102,141, 24, 90,232,165,181, 83,165,196, 64, 38,198,242, 89,251,103,170,236, 27, 38, 9, 41,244, 83,255,
- 99, 22,123,207,146, 74,151,186, 76,241, 71, 21, 36, 41, 5,184,114, 15,131,105, 13, 97,105,213,193,181, 88,170,208,242,100,148,
-240, 20,224,206,101,132,194,208, 43, 97,179, 21, 33, 52, 25,213,196,162,146, 66,225,174, 67, 70, 64, 6,202,210,140,181, 28, 87,
-163,113, 43, 30,203,198,137, 2, 88, 94,149,164,152,180,194, 83, 81, 96,162,153, 98, 63,148,101,249, 86,149,160,228, 13,190, 97,
- 77, 38,158,121,163,136,144, 5, 95,174,135, 84, 93,232,229, 76, 80, 32,102,197,246,179, 4, 2,126,112, 12, 38,142,146,149,157,
- 43,162,146,202,165,160,149,120,187,158, 23,148,141, 27,104, 77,110,129, 6, 10, 8,247, 65,247, 47, 23,204, 94,190, 94,190, 94,
-190,254,174,212, 91, 95,236, 22,192,250,145, 35, 71,143, 28, 89, 91, 91, 63,118,252,216,201, 19, 39,143, 29, 63,126,236,232,209,
-213,181,245,181,181,149,201,100,201,107, 84,178, 0,152, 85, 12,132,146, 82,154, 78,119, 55,183, 54,183,182,182, 47, 92, 56,191,
-189,181,125,117,243,234,214,230,230,198,198,198,214,214,214,223, 61, 1,173,174,174,190,246,117,223,112,227,141, 55, 94,119,237,
-181,199,142, 29, 95, 93, 91,141, 49, 30, 10,250,142,235,179,251, 31,196,226, 55,181, 6, 40, 7,248,208, 41,165,221,157,221,171,
-155, 87,207,157,251,242,217,199, 31,127,226,236,217,244,117,170,124,127,221, 4,116,237,181,215,222,121,215, 93,223,248,141,111,
- 88, 90,154,144, 67, 84,241,213,239, 59,208,250, 26, 46, 85,227,244,218,147, 92, 11, 15,144, 81,177,116, 92,208, 45,189,156,149,
- 20, 74,161,119,117, 61,243,204,211,127,248,200, 35,143, 61,246,121, 51,251,127, 42,160,245,245,245,235,174,187,238,245,175,127,
-195,107, 95,251,186,130,232,180,194,240,184,114,184, 40, 35, 28,170, 52, 3,139,117, 1,113,198, 98,193,253, 5,191, 46,118,205,
-121, 19, 81,147,212,192, 21, 80,189,114,229,202,199,255,248,143, 30,123,236,177, 75,151, 46,253,173, 8,232,218,107,175, 61,115,
-230,204,205, 55,223,124,237,117,215,229,108, 94,103, 90, 20, 10, 95,172,194,187, 8,237, 97, 17,154,223, 15,249,141,133,119,144,
- 72,127,128, 12,240,213, 30, 44, 41,167,119,244,137,224,153,167,159,250,244,167, 63,245,232,163,143,246,125,255,245, 17,208, 7,
- 63,248,193,217,188,111,181,239, 1,119, 28, 97,144, 47, 77,206,139,239,118,223,131,135, 60,109, 31,109,227, 69, 84,105, 31,117,
- 97,124, 12,219,233, 27,119, 86, 2,192,108, 54,251,195, 71, 30,121,228,145,255,249, 55, 21,208,143,253,248, 79, 52,194, 9, 27,
-193,237, 16,169, 28,176, 60, 99,154,204,162, 92, 70, 15, 30, 84,165,197, 67,120,128,215, 50, 66, 5, 22,153, 28, 95, 93,197, 32,
-144, 70, 21, 47, 28, 29, 13,125,223,255,238,239,254,231,207,127,254,243,255,119,253, 79,133,206,224,244,129,214,193, 49,230,124,
-212,207,195, 74,147, 11, 15,142,149,110, 31,197,130, 99, 19, 54,210,211,145,134,114,172,172,195, 62,237,123,137,161,166,210,118,
-177,254,120,232, 87,175,192,191,241, 77,111,122,232,161,135,111,184,225,134,103,159,125,246,224,172,135,175,194, 39,243,185, 10,
-251,222,227,161, 85,218,195, 79, 22, 15,252, 52,126,144,135, 62,218,112,167,198, 16,103, 45,152, 99,244,235,197, 58,193,190,242,
- 81, 69, 65, 41, 3,135,127,248,154,115,110,220, 33, 17, 1,178,228,219,110,191,253,142, 51,119,108,110,110,255,222, 71,255,235,
- 19, 79,156,125,169, 26,116,207,189,247, 13,108,145, 74, 91,176, 69,142,206, 65,186, 67, 85,159,225,155,113,167,144, 52,198,197,
-232, 30,237,193,146,208,131,170, 2, 17, 5,131, 58,175, 87, 20,132, 64,217,202,166,133, 12, 61,178, 87, 67,148, 81,120, 8,141,
- 49, 68,178,226,253, 50,106, 67, 90,216,105,227,164,235,238,186,235,238,111,121,219,131,207, 60,243,244, 75,225,121,133,123,239,
-185,119,124, 56,234,185, 25,145,134, 70,244,219,253, 54,105,209,118, 45,212,150, 14,209,192, 17,119,172, 72,135,131,209,198,208,
-252, 32,139, 82,209, 18, 41, 97,104, 66, 37, 10,222, 44,165,163, 65, 22, 9,132, 50,226, 64,113,244,250,141,122, 5,200,221,119,
-223,253,150,183,188,245,194,133, 11, 23, 47, 94,124, 81, 13,186,231,222,195,140, 48, 15,143,137, 23,159,137, 17,125, 0, 11,225,
-206, 98,105,143,162,128,183, 53,169, 74, 8, 18, 3,130,138,250,103, 45,157, 99, 84,215, 29,107,140,120,248, 51, 14,187, 43, 59,
- 29, 67, 53,182, 74, 74, 14,171,185,142,109, 83, 43,229,100,235,186,238,206, 59,239,186,227,204,153, 47, 60,249,228, 11,217,166,
-112,247, 61,247,112,216,128,246,121,224,167,225,148,141,206,212,208, 46,212, 84,254, 96,161,178,170, 12,196,139,190,234,228,126,
- 29, 56,255,168, 40,234,216, 5,141,196,224,196,145,226, 38, 91,207, 97, 41,143, 54, 95, 63,188, 30, 23,183,153,114,192,126, 15,
-103,206,236,200,145,163,127,255,155,190,105,125,237,200,227,143, 63,118,136,153,253,190,239,255,129,195,207, 79, 97,193, 59, 63,
- 65,230,201, 82, 42,108, 41,171,212, 22, 8,130, 34, 70,168,138,231, 4,147, 9,162, 86,175,171, 8, 5,159,151,160, 26, 3,161,
-251,146, 48,169,232,251,152,173,161, 99,214, 72, 41, 30,106, 45, 27, 87,134,171, 23,151,198, 78, 15,251, 29,205, 16,130,141,254,
-116,136, 12, 90,216,212,216, 86, 0,126,253,215,127,237,249,231,159,223, 71,240,186,235, 80,191,229,227, 26, 74,137,217, 56,155,
- 59,129,135,153,204,198,100,204,222,150, 93,157,177, 15, 14,138,133, 88, 90, 22, 88,104, 69, 16,128,222, 72,143,210,129,209,148,
-101,120, 55, 35, 13,146,197,136, 80,106,167, 68,147, 80,173,224,149, 70,239,138,224, 30, 98, 17,247,219,133,131, 33,194,248, 72,
-190,249,254,183,172,172,174,250, 80,157,226,230,119,167,185,210, 88,232,148, 33, 63, 60, 41,113,111,102, 13, 95,206,185,150,159,
-185, 72, 97,134, 15,173,130,136, 40,208, 69,132, 32, 46,169,107, 78, 76, 78, 29,139, 33, 0, 34, 93,135,129, 48, 36, 92,140,175,
- 57,162,178,180,213, 98, 32, 58,160, 0, 35,165,236,203, 10,197, 59,192,220,112,122,147,198, 38, 25,196, 80,154, 78, 56, 4, 29,
- 30, 7, 20, 74, 13, 64,230, 74, 29, 54, 17, 42,223,250,150,183,158,190,230,244,239,255,254,239, 57,216,130,239,248,103,223,227,
-127,153, 50, 47,111,246, 91, 59,217,140,164,204, 18,119,167, 57,219,129,124, 11,141,200, 82,169, 18, 77, 84, 96, 12, 62,159, 0,
- 75, 93,120,205, 13, 75, 55,189, 98,169, 11, 16,160,139,152, 68, 81, 5, 15, 49, 83, 24,221, 31,245,136, 97,177,120,161,173, 36,
- 94, 67, 37, 12, 36, 40, 46, 16,131, 6, 63, 86, 95, 73,157,208,181, 0, 30,136,183,146,143,211, 23,109,241,119,136, 27, 27, 87,
-126,251,183,127,235,202,149, 43,225,196, 43,110,219,222,181,237,221,180,189,155,183,118,243,116,102,125,102,202,214, 39, 38,107,
-103, 65, 42,183,149,109, 79, 81,107, 75, 37, 23, 34, 21, 88,138, 58,137,136, 1, 93,135,227,235,241,216,122, 12, 65,221,169,171,
-247, 66,238,207,112,177, 16, 96,188,112, 88,202, 22,116,142,157,118,109,239,105, 55,161,140,216, 97, 60,148,194, 60,182,225, 11,
-236,245, 17, 59,137, 43, 43, 43,247,191,249,205,159,121,244, 81, 92,127,219,183, 31, 8, 84, 15,196, 48,139, 86, 21,149, 8,221,
-202,230, 78,196, 8, 17, 71,214,226,114,167, 0, 98,192,245,167, 39, 55,156,158, 76,162,138,136,170,184,114,141,180, 6, 47, 16,
-180, 99, 65,113, 6, 67, 94, 64,164, 97,214, 10, 70,127, 80,195,114,179,133,251,218, 98,204,129,209,108,167,253,112, 75, 35,238,
-183,198,223,160,204,133,194, 32,139,120, 22,135,232,127,223, 65,168,145,114, 37,242,180,202,151,185,242,134,234,197,131,138,251,
-117,109,118, 1,250,210,224,151, 22,216,148,218,122,109, 72, 31,251, 59, 25,143,164,105, 70,198,139,247,195, 98,139,158,233,130,
- 30, 22, 34,230, 66, 54,195, 54, 84,176, 81,183, 72,163,104,208,104, 50, 54, 96,195,212, 0,145, 97,248, 76,153,181,227,117,122,
-182, 68,156, 28,230, 47, 9, 9, 85, 89,154,232,218,170, 15,110,147,165,137,250, 20,152, 81,252,199,151,128, 97, 54,191, 85, 90,
-238,106,126,133,170,128,173, 23,178,177,188,134,214, 72,243, 34,168,201, 96,184, 37, 23,229, 33,134,216, 31,108,237,131, 44, 92,
-209,178, 39, 67,179,182,152,100,137,240,114, 40,246,171, 57,199,188, 84, 41,197,203,198, 64, 27,129, 28,213,121,160,209,250, 40,
-109, 66,217, 64,183,112,110, 32, 14,134,184, 47,202,198,100,101,108, 53,209, 84, 86, 5, 27, 5, 85, 42, 83,122,148, 99,112,240,
- 31,251,200,145, 7, 85,117, 68,155,108, 77,150,197,244,154, 74, 28, 76,228,104,172, 72, 81,165, 70,252, 45,156,188,234,111, 11,
-179,169,249,231,210, 60, 15, 48, 6,116, 17,170,136, 1, 81,203, 96, 54, 52, 66,245,193, 78,124,175,134,191, 0,138,224,145, 84,
- 35,247, 22,118,158,147,224,136, 26, 21,131, 86,121, 1,108, 52, 80, 30,192,171, 14, 53,118, 7,212,162,129,230, 34, 32, 85, 16,
-109,236, 49,135,144,148,149, 85,128,186, 89,144, 38, 50,143, 64,198,249,150, 53,112,168, 18, 37, 15,123,183, 47,177,136,180, 16,
-215,141,210,130, 42, 73,231,243,162,249, 19, 35,156,125, 50, 62,161,172, 96, 37, 91, 34, 55,156,172,197,143, 50,213, 9,173,148,
- 80, 30, 2,104, 57,194,100, 96,210,120, 27,109, 83, 22, 86,151,238,204,172,218,109, 59,178, 41,230, 22,123,156, 37,251,253,107,
-167,180, 85, 19, 59, 62,198, 67,244,226, 11,195,200,126,155, 25, 64,223,131,189, 25,125,162, 39, 41,123, 51,155,247, 53,121, 85,
- 89,158,248,176, 68, 12,196,201, 33, 93, 62,108,131, 42, 77,232, 32,126,213, 50, 21, 55,165, 11, 13,223, 34, 81, 96,251,113,119,
-107,243, 94, 70, 7,163, 49, 95,132, 77, 98, 34,109, 16,214,192,179,106,148,105, 25,196,139,195,203, 66,148,125,252,116, 54,122,
- 22,156,209,203,148,138,147,156,245,156,238,249,240, 20, 9, 1, 1, 8, 90, 99,242,197,163,219, 80,181, 70, 23,133,129,104,196,
-175, 74,196, 28,167, 36, 7,136,220, 69, 76, 33,196,130,226,161, 25,167,145,247,170,212,174,162, 45,180,194, 22, 33, 42,177,172,
- 80,186,252, 69,205,104,217,114, 14, 10,201,101,196,214,120,104,217,254, 99,239,111,192,135,194,250,139,207,230,118,101,115, 62,
-155,139,136,244,153, 87, 54,251,237,157,108,149,160, 98,117, 43,163, 98,125, 53, 78,162, 2, 8, 65,214, 87,195,250, 74, 8,161,
-100,160,147, 88,200,248, 62,154, 70,181,232,170,211,194,124,126, 65,141, 28,252,193,114,164, 90,183, 64,101, 74, 65,114,142, 53,
- 2,229, 2,158, 37,163,129,108, 24,205,234,169,182,167,192, 29, 67,216, 54,234, 56,164,212,161, 7,227,140,193,143,249,190,153,
- 41,133,209, 86,224, 1,178, 79,178, 51,181,221,153,145,236,147, 92,185,218,111,108, 39,179,125, 74,130, 46, 32,103, 46, 77, 84,
- 68, 98,212, 16,100,169,243,137, 20, 8, 81,125, 66, 64,177, 98,160,153, 52,162,208,208,246,225,207,110,131, 40, 10, 7,205, 80,
- 7,160,181, 87,139, 37,127,225,194,193,109,243, 57,100, 68, 64,220, 23, 29,161, 4,170, 37,160,118,131,148,140,125,202,110,239,
- 82,246,230,186,194, 4, 28,102,204, 45,226, 4,219,211,124,117, 43,229, 76,138,236,205,236,226,149,249,116,158,157,185,181,187,
-231,137, 33, 60, 38,170, 14,158,217,100,119,150,103,201, 32, 80,205,125,178,237,221,236,232,197, 82,167,107, 43,218, 5, 16, 18,
- 85,151,151,180,139,109, 82, 15, 43, 66,205,130,100, 47, 98,184, 67,180,204, 65,196,113, 68, 14, 29,216,112, 67, 87,130,171,126,
-115,124,144,145, 31,148, 58,240,181,110,131, 49,103,166,228, 49,158,102,163,121,155, 5,169,138, 1,159, 39,178, 23, 81, 68,114,
-198,214, 78,126,238,226,108, 54,207,168, 99,107,103,115, 27, 7, 92, 40, 99, 71, 42,135, 29,146, 41, 54,171,169, 25, 48,157,217,
-213,237,228,145,215,202,114, 56,190, 30,187,168, 2, 78, 98, 16, 9, 64, 40, 17,178, 98,177,215,104,156,105, 31,142,145, 64, 36,
- 26, 90, 80,213,252, 24,234,204,141,214,193,139, 33, 84,170, 4,204,138,244,141,224, 68, 97, 54, 75, 57,249, 13,189,237,179, 17,
-243, 99, 40, 65,112,202,182, 61, 77,123, 51, 82,196, 50,175,110,205,119,118,251,190, 39, 33, 41, 89, 1, 19,202, 40,150, 50,234,
-164,162, 8, 85,104, 70, 14,121, 21, 45, 75, 46, 51,119,101,214, 99,123, 55,199,104,128,196, 96, 70,219,157,149,121, 73, 93,212,
- 73, 87,198, 85, 69, 69, 23,189,131, 92, 0,159,105,137,166, 36,195,251, 66, 27,157,211,248,142, 24,114,174,186,229,109, 41,182,
-128, 54,148,152,204, 90, 75,129,145,243,121,134, 64, 36,119,157,206,122, 75,201,169,191, 84,133, 41, 2, 0,145,121,178, 47,159,
-223,187,112,121,110,102,102, 50,221,203, 91, 59, 41, 57,203,191,162,243, 35,136,199, 26, 44, 95,215, 84,117,153,222,235, 5,163,
-229,218,148, 54,155,113,123, 55,149,105,219,138, 73, 68, 80, 63, 95,178,182, 28,214, 86,125, 95,177, 4, 0, 0, 4, 78, 73, 68,
- 65, 84,130,163, 49,203, 75,122,226, 72,244, 81, 82, 10,116,157,134, 6,175, 87,142,132,251,133, 40,213, 79,161,145, 92,165, 16,
-203,171, 5,226,144, 70, 87,222,101,179,224, 86, 88,163,238,150,133,180,156,179, 64, 52,211,178,183, 12,138, 64, 44,229,100,133,
- 58, 61,157,217,188,183,190,207, 30,221, 37,255,183, 54,147,186,157, 47,144, 22, 42,119,217,109, 42, 48, 52,180,213, 87,134, 84,
- 47,212, 2,123,171, 72, 16, 89, 12,188, 80, 84, 82,230, 44,153, 86, 37,216,142,105,146,130, 99,228, 93, 12, 49, 84,130, 4,164,
-170,150,168,104, 28,113,229,107,199,119, 9, 40, 27,188, 82,234, 45,165,211,173,160,124, 45,110,181, 6,126,100,227,246,212, 20,
- 6, 69, 23,112,100,173,219,153, 90, 50,208,184, 55, 75,151,175,206,103,125, 22, 98,222,219,197, 43,243,205,157,190,229, 10,213,
-111,194,188, 41,168,164,212,222, 1,128,161,185,179,100,235,190,197,222,117,103, 11, 57,181,183, 45,149,115, 99,150, 49, 51, 17,
-241,137,118,216,217,203,178,217,220, 81,141, 49, 81, 52, 40,106, 25, 77,176, 52,193,202, 82, 8, 90,102,252, 68,171, 51,199,154,
- 17, 38,188,253,110,196, 23, 16, 43, 91,214, 70,159, 21, 90, 54, 70, 73, 4, 7,224,211,104,170,102,214,167,236, 84,236,121,178,
-121, 98,223,211, 71,218,154, 89,117,187,205, 26, 23, 62,180,121,232,181,184, 18,148,145, 73,222,199,193, 58,171,117, 84,172, 28,
- 16, 30,162,206, 14,114, 55, 62, 50, 18, 20,191,191,121,170,110,101,134,144, 50, 26, 13, 4,145,169, 57, 35, 39, 50,212, 81,108,
-222,142, 80, 83,141,129, 39, 48, 32,150, 68, 67,205,185,128, 32, 15,254,107, 48,159,163,112, 37, 40, 66, 24,108,154,217,128,106,
-187,155,119, 0,191,154,152,241, 60,162, 54, 93, 9,229, 9,100,211,157,218,254, 0,142,254,207, 16, 45,178,107, 25, 85, 77, 62,
-221,212, 15,227,140, 90,202,174,168, 51,105, 57, 84,217, 6,188,172,202, 33,182, 20, 20,195,228, 46,241,230,230,130, 3, 53, 20,
-205, 26, 17,133, 13,244, 29,116,170,109,111,117,145,137, 76,249, 64,229,177,114,189,171, 37, 70,117, 8,181, 7, 96,104,166, 3,
-155,162,160, 85, 11, 10,233,220, 48,204,119,192, 0,223,185,177,146,102, 4, 42, 24, 83, 14, 9, 57,120,122,214, 62,237, 58,204,
-169, 98, 21,238,119,170, 47,143,108, 29,144, 85,213,155,203, 42, 45,146,205,147, 55, 73,177, 65,107,144, 18,232, 12,253,193,251,
- 51,187,113,154, 53,192, 5,168,192,215,200,216, 55,159, 85,246,218,224, 13, 14, 11,115, 22,189, 27,132, 85,195,225,166,135,173,
-129,190, 6,128,197, 23, 58,187,170,117, 95,214,120, 7,254,191, 16,168, 89,164, 15,252,170,198,144,195, 11,192, 34, 7,191,222,
-122, 69,209,220,153,175,211,202,217,171,135,118, 36, 77,105, 67, 25, 91, 92, 64, 46,192,232,227,130,123,211, 55,191,105,131,108,
-107,193,194,106,207, 78,243,228,210,108,160,214, 54, 29, 12, 67, 73, 75,234, 92,130, 37, 12,103,136,101,108, 36,164, 36, 91, 67,
-104, 88,149,166,156, 69, 74,211, 82,142, 0,190,218,236,140, 88,221,228,136, 97,192,161,203,201,219,214,253,244, 21, 59, 86, 15,
- 19, 49,206,212, 48, 42, 38, 12,131,195, 48, 32, 51, 50,244,210, 52,244,155,196, 8,167, 42,205, 36,208,241, 84,153, 33,234,176,
- 90, 1,107,253,190,213,187, 80,198,228,153, 58, 50,142, 3,196, 90,134,197, 85, 83, 70,159,200,202,102,160,164,109, 71,169, 14,
-177,141,112,241, 84, 99, 0,180,108, 40,235, 89,237,148, 25, 88, 21,181,228, 96, 37,133, 47, 90, 54,180,156, 29, 66,159, 26,215,
-168, 70, 81, 62, 57,206,243,135, 86,121,148, 22, 90,105, 7,174, 44,185, 1, 42,172,223, 23, 27, 85,127, 91,204, 75, 11, 38, 81,
-219,203, 75,146, 68, 84, 8,144, 53,160,170, 70,188,193,107,245, 8,162,185, 87,241, 33, 24,222,109, 52, 16, 48,133,198, 33,156,
-101,241, 41,197,108,219, 80, 0,174,137,104, 27,126,143,125,112,211, 62,154, 71, 65, 1,218, 56, 3, 90,139, 81, 81, 66,205, 42,
-103, 67,153,199,233,173, 94,126,103,171, 32,184,152,152,138, 86, 25, 53,144, 95, 7, 27, 10, 14,162,173,135,169,152,115,241, 17,
-146,197, 55,180,115, 54,170, 37,161,197,245,209,101, 33, 67, 74,229,195, 76,199,115, 2,171, 45,179,154, 67,202, 62, 73,213, 1,
- 34, 37,171,228, 80, 41, 95, 68,248,216, 6,198, 55,183, 88,145, 0,114, 52, 46,162,153,139, 69,195,212,178, 83, 41, 37, 33, 27,
- 64,136,226,205, 28,104, 97,181, 44, 62, 89, 86, 57, 8,171,166, 69, 42, 3, 53,173, 2, 53,138, 65, 51, 91, 60, 26,101,176,210,
-117, 66, 70,105, 94, 67,155, 50, 91, 11, 7, 45,165,110,203,109, 16, 63,199,216,226, 62,194,149,181,128, 10,178, 0,191,130, 67,
-176, 48,174,229,176,213, 56, 43, 0, 88,229, 62, 12,162, 28, 64,250, 58,226,163,158,141,218, 69,222, 12,199, 96,141, 90,128, 84,
-156,224,248,105, 28,225,121, 28, 86,249,127, 0, 16,193,207,161, 22,223, 57,207, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/mask.png.c b/source/blender/editors/datafiles/mask.png.c
deleted file mode 100644
index 78a2e1a0352..00000000000
--- a/source/blender/editors/datafiles/mask.png.c
+++ /dev/null
@@ -1,400 +0,0 @@
-/* DataToC output of file <mask_png> */
-
-int datatoc_mask_png_size= 12593;
-char datatoc_mask_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0,
- 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 0,109,250,224,111, 0, 0, 0, 1,115, 82, 71, 66, 0,174,206, 28,233, 0, 0, 0,
- 6, 98, 75, 71, 68, 0,255, 0,255, 0,255,160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1,
- 0,154,156, 24, 0, 0, 0, 7,116, 73, 77, 69, 7,220, 3, 25, 18, 46, 48,241,229, 90,175, 0, 0, 32, 0, 73, 68, 65, 84,120,
-218,237,189, 89,172,101,217,113, 37, 22, 17,123,159,115,231,225, 13,249,114,100,101, 85,102,205, 44, 22,103, 82,148,186, 53,160,
-219,114, 55,220,238, 54, 96,160, 1, 15,253, 39,209,128, 13,201, 18,108,195, 48,208,147, 97,255,248,195,250, 51, 12,248,211, 31,
-254, 50, 96, 3, 22, 4, 75,178,196,110, 81, 18, 41,137, 44,146, 53,207, 89, 85, 57,231, 27,239,124,206,217, 59, 34,252, 17,123,
-159,251,146,173,238, 22, 69,181,236, 6, 58,137,202,122,204,151,239,189,123,227,196,142, 88,177,214,138, 93, 0,255,230,215,191,
-249,245,231,254, 69, 0,254, 47,246, 59, 94, 57,216,255,155, 63,247, 83, 63,245,197,207, 58, 71,239,124,240,241,111,125,243,143,
-190,243,218,155,255,250, 6,168, 68,196, 31,255,187,116, 59,229,115, 55,174,255,221,127,231,223,250, 15,255,189,191,113,176,191,
-171, 12, 77,108,132, 5,145, 8,225,206,131,195, 63,252,238, 15,254,239,223,251,214, 43,175,191, 61, 91, 44,215,155,170, 9,225,
- 95,139,232, 56, 4, 5,248,113, 3,244,210,179, 55,255,135,255,230,151,127,250,203,159, 39,162,170,170, 69, 21, 16, 16, 0, 17,
- 68, 85, 4, 64, 21, 16, 68,228,240,228,236,225,209,241, 15,222,122,239,221, 15, 63,126,227,189, 91,175,190,253,238, 98,185, 38,
- 68, 81,253,255,103,128, 60, 66,212, 31,251,136,125,238,211,207,254,252, 95,249,234,186,170, 81,165, 44, 10, 86, 81, 85, 85, 5,
- 0, 79, 32, 4,202,202, 42, 34, 58, 30,244,203,194, 95,218,223,251,185,175,126,113, 85,109,142, 79,231,179,229,242,209,225,113,
-217, 41,189, 35, 22, 93, 44, 86, 15, 14,143,155, 16,126,240,214,123, 39,103,179, 15, 62,185, 43, 34,255, 31, 6, 8, 1, 17,244,
-199,205,160, 95,251,251,191,250,111,255,204,215, 28,225,160, 55, 24,244, 58,190,240,222, 57, 21,101, 21, 21, 5, 85, 1, 80, 80,
-142, 28,133, 67, 19,171,186, 14, 33, 70,230, 58,132, 16, 34,139,212, 77,216,108,170,251,135,135,227,225,176,137, 81,132,189, 47,
- 8,177,105,194,163,211,179,183,223,251,240,253,143,238,188,255,241,237,249,114, 85,213, 53,243, 95, 94,200, 10,196,168,250,227,
-102,144,130, 30,159,206,155, 80, 75,228, 94,175, 51, 28,244,167,163,209,112, 56,232, 20, 37, 17, 1, 0,168,138, 48, 18, 57, 0,
-245,208, 1,116, 46,132, 24,137,200,145,107, 66, 32,194,126,183, 51,157,142,234,186, 9, 33,206,150,203,208,196,154,163, 34, 93,
-220,221,185,244,147, 95,250,217,175,125,105,189,169, 30, 30,157,124,248,201,157,143,238,220,127,255,163,219,247, 30, 30,254, 37,
- 4, 72, 65,127,220, 26, 84,120,255,255,252,111,255, 51, 33,174,215,235, 38, 4, 21, 65, 66, 36, 44,156,159,142, 71, 7,251,123,
-163,193,192, 17, 17, 33, 34, 54,129, 3, 71, 17,101, 97,142, 28, 66, 12, 49,134, 16,152, 37, 8,139,168,136, 48, 51,179,136, 74,
- 93, 55,103,139,165,136, 32,145,138,198,200,145,153,133,171,186, 89,173, 54,143,142,143,191,247,230, 59,175,188,246,206,114,189,
-254, 87, 91,164,245,207, 21,160,126,175,251,196,149, 75,255,217,223,251,187, 63,255,211, 63, 1, 42,145,229,232,248,100,181, 89,
- 51,139,168,130, 10, 32,136,168,170, 14, 7,253,253,221,157,157,201,100,216,239,119,202, 82, 68,154, 16,154,200,194, 18,153,153,
- 99,136, 49,178,216, 97, 99, 17, 97, 86, 80, 17,101, 22,102,110, 98, 92,172,214, 42, 28, 35, 43, 40,179,178, 8,139,196, 16, 99,
-140,171,205,230,187,175,189,253,135,175,188,122,116,122, 22, 66,252, 87,115,202,126,196, 0,245, 58,157,191,243,243, 63,243,183,
-255,250, 79,127,233, 51, 47, 14,135,253,162, 40,188,115,170, 50, 95,172, 14,143,142,207,206,102,117,180,108, 0, 5, 5, 80,102,
-142, 28,157,243,163, 65,127,111,103,186,191,179, 51, 29,143, 89, 53, 70,110, 66,104, 66, 96, 22, 97, 14,145, 67, 12, 44, 18, 34,
- 3, 64,136, 49,215,122, 21,213, 24, 67, 85, 55, 44, 50, 95, 44, 3, 51,179, 16, 33,139,138,112, 12,188, 90,111,222,185,245,241,
-235,111,127,240,254,199,183, 23,171,191,224,132,242, 63,210, 17,251,143,255,206,223,252, 79,254,163,127,255,226,133,221,162,240,
-222, 57,231, 92,225,189, 35, 42,138,162, 44,156,170,206, 22,171, 7, 15, 31, 29,159,158,213,117, 19, 56, 10,139,128, 10,139,168,
-138,176, 34, 56,162,209, 96,112,237,242,229,131,253, 93, 71,142,133,215,155,166,174,235,200, 28, 35, 71,142,129, 69, 85,153, 57,
-198, 40, 98,136, 1, 1, 0, 9, 17, 32, 50, 87,117,243,201,221,251, 31,220,190, 55, 25, 15, 7,189, 94,233, 41, 68,174,235,176,
- 92,173, 14,143, 79, 95,125,251,189, 63,121,245, 45,254, 11,237,125,238,207, 82,104,254,234,151, 63,247,191,254,218,127,251, 31,
-252,237,191, 49, 28,244, 58,101,217, 43, 59,157,178, 44, 75,239,156, 35, 34, 80, 21, 81, 64, 28,244,187, 23, 47,236, 95,184,176,
-215,235,118, 61, 17, 2,168,193, 34, 68, 4, 36, 0, 17, 93, 87,155,251,143, 30, 61, 60, 60,226, 40,157, 78,217,239,118,187,221,
-210,130, 34, 42,106, 85, 93, 65, 21,136,208,226,131, 8,133,247,138, 72,136,101, 81, 92,185,120,240,189, 55,222,123,243,131,187,
-203,229,154,136,122,221, 78, 81,250,194, 23,253, 94,247,242,193,222, 51, 79,125,234,108,190, 88,174, 55, 34,250,151, 17,160,159,
-252,194,203,127,255,151,126,225, 31,252,242, 47,236, 77, 39, 44,210, 41,203, 94,183,219, 41, 11,239,124,225,157,119,228,200, 57,
- 34,116,132, 0,204,202, 44,142,220,100, 52,220,223,219,221,157, 76, 7,131,129, 67,140, 81,132, 89, 84, 9,145, 16, 17,176, 9,
-225,232,228,244,209,209,241,106,179, 70,194,241,104, 56, 26,244,189,243,160, 26, 89, 84, 5, 16,136, 44, 62, 10, 0, 68,148,122,
- 34, 0,139,120, 71,127,252,131,183,215, 13,156, 45, 86, 77, 19,250,101,209,235,117, 11,239,188,247,253,110,231,169,171,151,167,
-227,225,166,170,255, 66, 78,220,191, 40, 64,255,248, 87,191,254,223,255, 87,255,233,139,207,222, 96, 22,116,212,237,116,122,157,
-162,244,222,121,231,136,156, 35, 76, 15, 25, 17,192,158, 87,219,140,132,197,123, 63, 26, 14, 47,238,239,237,239,239, 2,226,102,
-179, 9, 33, 32, 17,145, 35, 0,203,154,229,106,125,116,122,122,120,116,196, 34,211,241,100, 52, 26,140,122, 3, 34,140,204, 25,
-147,131,115,132,136,136,132,132,150,100,139,229,250,251,111,190,227,203,126, 8, 50, 91,110,230,171,181, 39, 28, 13,123,190, 40,
-156, 67, 95,248,201,104,112,241,194,206,160,223,187,247,232, 72,127, 60,164,238,254,212,113,236,197,103,158,250, 63,255,151,255,
-241,223,253,235, 63,163,160, 8,232,189,235,149,101, 89,122,239, 28,165,255, 33, 0, 64,142,140, 77, 20,246, 82, 84, 5, 0, 20,
-193, 58,142,136,118,139,242, 96,127,111,127,119, 39,196,184,217,108,212,106, 4, 17,139, 48,115, 8,177,106,234,163,227,211, 7,
-135,143, 98,148,178, 44, 38,163,225,100, 60,244, 68,145,197,219,147, 0, 34,239, 64, 84, 85, 64,245,116,190,248,254, 91,239,249,
-162, 71,100,199, 54,158, 45,215,132, 48, 25,116,189,243, 68, 72,132,165, 47, 38,195,193,181,203, 23,142, 78,102,235,170,254,243,
- 7,232,215,254,225,127,113,253,137,107, 79, 94,187,226, 9,143, 78,206,188,119,255,229,215,255,222,255,244,223,253,215, 87, 46,
- 29,196,200, 4,232,156, 43,156, 47, 82,218,144, 35, 71,132, 86,221,109,168, 72,205,198, 42, 17,168, 69, 7, 84, 21, 17, 1, 4,
-145, 35,139,106,183,211, 61,216,223,223,155, 78, 17,161, 14, 33,132, 64,136,142, 40,229, 29,115,213, 52, 39,167,167, 71,199, 39,
-179,197, 66, 68,119,166,227,221,233,164, 44, 11, 68, 68, 4, 67,230,162, 10, 10, 15,143, 79, 94,123,251,195,178,219,107, 39,129,
- 16,101,185,169, 75,143,147, 97,151, 28, 2, 32, 32, 16,162,247,238,234,193,133,194,187,163,211,217,159,111,232, 67,253,232, 59,
- 77,136,204, 92,133,112,120, 54,155,205, 22,220,196,253,233,100,127,111,167, 91,250, 38,114,100, 86, 21, 68, 44,138,162,244,222,
- 59,135, 4,170, 32, 6,122, 84, 69, 68,196, 94,186,168,130,162,170, 42,138,178, 77,162, 8, 42,160,168,168,160, 8, 4,132,168,
- 85, 93, 29, 30, 30,223,185,119,255,108,177, 4, 0, 68, 20, 73,200,200, 57, 71,228,188,247,189,178,188,124,233,226,181, 43,151,
-139,162,136,145, 87,171,213,201,124,217, 52, 13, 34,126,227, 91,127,242,141,111,191,218, 29,140, 69, 84, 68,115, 89,135,241,160,
-243,194,147, 23, 15,118, 71,145,185,105,194,166,106,150,235,213,114,181,158, 47, 86,199,179,197,239,127,231,213,170,254,145,137,
- 4,247,143,255,243, 95, 36, 66,239, 92,233,253,238,120,120,237,224,194,181, 43, 23, 59,157,114,190, 88,204, 87, 27,239,208, 59,
-135,136,162,192,145,155, 24, 34, 11, 88,166, 67,206, 29, 59, 94,246,112, 1, 44, 68, 66,136,144, 43, 19, 2,170,253, 63,101,225,
-200,140,232,198,227,241,254,222,238,100, 60,138, 49,134, 24, 1,208, 17,121,231, 17, 73, 69, 16, 49,114, 60,155,205, 30, 28, 30,
-198, 24,250,189, 94,127,208,159, 14,250, 68, 24, 99,252,245,223,253,102,132, 18,209, 65,198, 41, 10, 10,170,117,224, 16,227,184,
-223,233, 90,222,217,184,160, 64,132,158,232,210,133,189,179,197,234, 71, 61,110,238, 31,253,202,215, 49,195, 13,123, 63,162,236,
-200,141,134,131, 94,167,136, 44,136,168, 2,136, 72,206, 17,162,136,132, 40,204, 81, 1, 16,208,158,161,106, 62, 93, 0, 32,170,
-132, 0,160,162,168, 10, 22,169,246,219,171, 42,128,136,196, 16, 85,180, 44,203,233,100, 50, 26, 14,156,163, 24,153, 69,156, 53,
- 44, 4,102, 97,225, 58,132,147,179,217,225,209, 73, 85, 53,174,240, 23,118,119,231,203,213,111,252,147,111,117,186, 35, 5,177,
- 16,164,111,141, 8, 10,117, 19, 17, 97, 58,234, 23,158, 0, 65, 85, 81,237,147, 74, 72,211,209,128,153,103,139,213,143, 18,160,
- 95,253, 58, 2, 40, 32, 40, 16, 18, 37,150, 8, 69,212, 57, 87, 22, 69, 89,248,162,240, 10,200,145, 53, 63, 22, 80, 96,102, 11,
-138,170, 68, 81,102, 86,145, 92, 19, 16, 64, 17, 84, 9, 1,183,121,148, 2,164, 96,167, 81, 88, 89,152, 69,200,185, 94,183, 59,
- 25,141, 60,185,170,174, 68,132,136,114,121, 18,142,177, 9, 97, 54,155, 61, 60, 58, 90, 46, 87,223,252,147,239, 31, 45,106, 69,
-159,242, 21, 83,169, 64, 64, 4, 16,149, 38, 72,191,231,199,253,126,226,165, 64, 21, 64, 24, 0,212, 17,142, 6, 61, 66, 60,153,
- 45,254,204, 71,236, 87,190,174,130,144,135, 3,201,111,144,136, 88, 4, 17, 16, 81, 21,188,195,162,112, 32, 18, 36,218,160,160,
-104, 71,199, 90,151, 48, 75, 84, 54,244, 12,170, 8,104,121,100,245, 90, 45, 76,185, 78, 10,231, 83,169, 54,237, 91, 41,131,110,
-167, 59, 29,143, 17,145, 99, 20, 21, 0,116,206, 57,231,197,176, 67,228, 15, 62,185,253,221, 55,222,163, 98,160, 10, 10, 98, 49,
- 71,235, 25,168,136, 0, 64, 10,136,174, 24,247,138,110,199,111, 19, 95, 5, 80,173, 41,247,186, 69,100,158, 45,254, 76, 40,201,
-171,164,145, 21, 17, 65, 21, 53,189,103, 5, 1, 85, 64, 4, 0, 81, 81, 81, 34,232,148,157, 78,217,169, 67, 88,173,214, 85, 85,
- 7, 23, 74,239,189, 47, 12,166, 32,163,168,130,168,160, 58,114, 4,132,136,160,160,136,160,106, 72, 32, 85, 5,220, 6, 75,211,
- 59, 68, 34,136,172, 10, 56,158, 76,167,147, 73, 93,215,203,213,106,190, 92,104,132, 78,167,195, 28, 79, 78,103,111,127,120, 7,
-253, 0, 0, 9, 65,137, 4, 0, 65, 64,132, 0, 21, 64, 64, 17,129, 57, 10,116,119, 46, 92,190,121,101,119, 60, 24,140,199,163,
- 77, 85,253,246, 55,255,240,222,195,135,221, 78,135, 89, 68,251, 79, 63,113, 89, 68,239, 60, 56,250,151,103,208, 63,252,229,175,
- 35, 42,171, 88,111, 20, 20, 64, 0,123, 71,160,136, 8,136,204, 18, 57,178,218, 35,130,210,251,110,167,116,206,213,117, 8, 28,
-153, 25,144,108, 60,179, 20, 68, 36, 1, 5, 67,122, 68,233,123,105,142,142,164,118,151, 32, 66,250, 64, 82, 14,131,138,104, 20,
- 1,128,110,183,187, 55,157,122,143,171,213,230,248,116,254,198,251,159,172, 2, 81,209, 71, 32, 53,174,230, 49, 12,135,136,136,
-138,136, 80,215,245, 19, 79, 60,245,181,207, 62,255,252,211, 79,142,135,131, 65,183,123,229,226,193,157, 7, 15, 23,203, 37, 33,
- 8, 40, 42,244,123, 37, 0,252, 75,243,200,253,163, 95,249, 5, 80,112, 68,169, 25,229, 39,110, 96,198,248,101, 3,124, 4,168,
-138, 77,140,222,185, 16,195,173,247,223,186,117,235,221,201,100,119, 83, 55, 77, 19, 12, 79,251,194, 39,248, 75,132, 72,138, 96,
-236, 7,110,115,242,241,246,151,161,148,228,194,148,195,136,170, 26, 88, 86,235,245,253,135, 15, 23,155,230, 7,239,126,188,137,
-206,151, 67,109,171, 28,218,247, 86, 64, 68, 36,235,150, 96, 79, 52, 70,162,226,230,245, 43,251, 59, 35, 66,138, 49,246,187,221,
-213,122, 29, 35,175, 18, 82, 85, 80, 44,189, 99,150,197,186,250, 23,102,208, 47,253, 98, 10,141, 42, 40,160, 34, 42,168,181,132,
-116,184,149, 69, 85,149,144,236, 51,143, 30,220,249,157,223,249,141,223,255,131,127,250,250, 59,239,124,239,141,183, 30, 29, 29,
-158,204,102, 49, 74,183,215, 85,171,244,132,169, 58,180,228, 28,128, 64, 30, 69, 19, 21,171,118,236, 84, 18,148,201, 88, 1,236,
- 3,102, 94,173,215, 15,142, 78,222,189,253,232,253, 59,199, 88, 12,193,119, 53,149,101,235, 76,154, 19, 7,242, 56, 96,179, 15,
- 32,185,200,124, 97,239,194,147,151,118, 59,133, 51,114, 10, 17, 15, 79,142, 39,195, 97, 19,226,122,179,177,147,221, 41,125, 19,
-194,186,106,254,185, 1,250, 7,191,244,139,144,169, 51, 67, 43,219,188, 85,171,208,202, 34, 8, 64,132,170,240,222, 59,175,255,
- 95,191,254,191,223,190,123,103,190,137,117,132, 16,195,201,201,201,189,123,247, 94,121,245, 7,155,170,222,155,238,218,240, 14,
-128, 41, 49, 0, 16, 49, 1, 36, 27, 70,164,205,155,116,214, 64, 64, 64, 85, 84, 84, 67,140,155, 77,117,124, 58,191,251,224,240,
-131, 59, 15, 62,186,127, 54,223,168,186,142, 0,165, 18,150,184,208,156, 47, 96, 49, 1, 66, 11, 89,250, 19,102, 30, 12, 39, 55,
-175,237, 79, 70,125, 80,136,204,206,209,221,251, 15, 68,101, 50,234,139,192,114,181, 68, 84,102,233,150,197,186,170,235, 38,254,
-243,142,216, 47,146, 29,102,205, 71,218, 78, 68,234,232,168,168, 42,106,104,230,173,183, 95,253,141,223,248, 63, 22,171,205,217,
- 38,134,104,233, 5,145, 35,115,172,155,205, 27,111,189,245,224,240,112, 58, 25,151,101,199,158,171,136, 72,238,249,169,176,137,
-138,170,128,178,176,209,105, 54,139,173,214,155,179,249,226,225,209,201,237,251,135, 31,220,126,120,235,222,209,189,227,213,108,
- 45, 81,157,228,142,158,128, 58,100,228,131,104, 51, 15, 34, 34, 80,122,197,246, 15,130,136, 32,186,167,175, 95,189,180, 59, 34,
-162, 24,153, 16, 31, 29,159,204, 23, 11, 64, 24, 15,135, 72,116,114, 58, 35, 68, 22,233,117,203,249,114, 29,255, 52, 69,192,163,
-162,216, 19, 4,104,219, 22,166, 15, 17, 64,129,129, 28, 34,224,107,175,126,231, 55,127,235,215,231,235,106, 89, 9,171, 2,160,
- 67, 66,194,200, 12, 0,157,162, 51, 30,234,155,111,191,246,232,232,225,207,124,237,175,124,249, 11, 95,212, 94, 79, 85,137, 80,
-156, 71, 66,102,174,234,176,169,170,170,110,154, 38,212, 77,168,154, 80,213,205,166,110, 54, 85,179,174,194,166, 14, 85, 19,155,
-168, 81,144,161, 16, 42, 20, 20, 68, 16, 69,137,128, 21, 9, 81, 72, 81, 17, 41,209, 75, 10, 68,168, 32,130,130, 72, 32,224, 64,
-144,196,224,237,108,177,184,123, 56,251,204,141, 75,221,110,137,136,206,185,241,104,120,231,129,101,159, 94,187,120,224, 29,189,
-243,193,199, 77,136,145,195,213,131,157, 91,119,143,254,217,121,205, 91,134,219,121, 86,177, 49, 43, 33,107,205, 40,149,128,222,
-125,247,181,223,249,221,223,156,175,235, 69,165, 34,138,136,228, 8,145, 16,212, 38, 53, 68,236,117,251,136,184,152,159,125,235,
- 79,190, 85,150,238,211,207,191,216,233,244, 68,117,185, 62, 59,157, 45,207,150,171,229,186,217,212, 49,176, 6, 22,102,136, 34,
- 42,192,150, 83,130,162, 5,171, 87, 50, 81,156, 65, 88, 80, 21, 9,193,224, 24,161, 42,162, 32, 17,169,168,245, 71, 0, 16, 5,
- 68, 2, 4, 82, 1, 84, 1, 4, 32, 82, 6, 93,173,151, 15, 79, 22,139, 77,211,237,150,142,136,153,119, 38,227, 68, 49, 33,176,
-240,238,100,252,252,205, 39, 95,127,231,195, 16,155,241,160,119,121,111,124,247,104,246,207, 4, 72,117, 59, 37,144, 10, 32,106,
-130, 38, 22, 53,116,238,238,157,143,190,241, 79,126,251,116,190,152,109,216,162,131, 8, 42,194,194,228,200,123,175, 98, 24, 27,
-250,189, 62, 2,108,214,171, 87,223,120,141, 89,118,247, 14, 78, 23,155,227, 89, 85, 51, 50, 56, 1,175, 90, 88, 30, 39, 60,141,
-162,100, 69, 73, 0, 5, 84,129, 5,208, 42, 19, 90, 63, 69, 80,131,171,152,187,148, 69, 68, 82, 15, 17, 16, 1, 36, 18, 1, 66,
- 1, 2, 1, 4, 38, 4,142,124,124,182, 60, 91, 86,123,211,129,247,174, 9, 97,103, 50,113,206,133, 16,140,132, 67,196, 97,191,
-251,185, 79, 63,253, 71,223,123,189, 14,113,111, 50,156,175,171,197,250,177, 97,141,196, 90,170, 0, 38,188,168,153,202, 0, 69,
-112,228,142, 15,239,255,246,111,253,250,221, 7, 15,102,107, 22, 27, 54, 82, 43, 6, 52, 38,203,200, 44, 66, 36,116,206,247,122,
- 3,239,203,135,143, 78,222,249,240,246, 91,183, 30,220, 61,174,215,220,139, 52, 84, 26,130,235, 40, 21, 72, 78,193, 41, 32, 0,
-129,149,222,196,181, 98,254,225,248,152, 60,149,123, 84,170,201, 96,188, 36,145, 1, 31,227, 51, 17,173,121,230,151,100, 51,142,
-156,206, 23,199,243,141,205, 46,136, 56,232,247,247,119,118, 34,139,170,138, 48, 17, 25,193,245,153,231,158,222, 25,143,201,193,
-165,189, 81,233,233,113,131, 7,218,147,178,246, 10, 54, 57,128, 2,145, 18,210, 98, 53,251,221,111,252,230,199,119,110, 47, 42,
- 97,201,120, 15, 1,200,130,226,136,200, 57,135, 8, 72,142,136, 68,121,179,169,231,171, 64,229,180, 59,249, 20, 23, 83,245, 35,
-112, 93, 64,159,200,181, 68,240,181, 40, 72,218, 97, 83,236,243,162, 86,211, 13,221, 67, 26, 35,172,232, 3, 2, 18, 32, 26,150,
-160, 54, 26, 54, 68,218,169, 67, 36, 50, 16,143,132,243,249,252,209,201,178, 9,146,120, 91,196, 27,215,159, 16,137, 34,169,232,
- 18, 82, 81,184,178,244,207, 92,191, 54, 26, 14, 75,239,119, 70,253,199, 2,148, 49, 33,138,162, 72, 26,203, 5, 84, 20,153,229,
-123,223,253,163,247, 63,252, 96,182,225, 38,170,136, 1, 61,123, 31,144,232, 46,251,152,188,170, 10,235,201,233,106,213,224,149,
-167, 94,124,250,165,159, 40, 6,123, 64, 29,116, 30, 0,182, 19,125,251, 68, 0,108, 56,202, 29, 95,114,159,202,236, 69, 27, 25,
- 72, 37, 40,145, 96,246,108, 16, 16, 93,138, 17, 16,218,168, 66,214,210,210, 41, 36,164,229,106,113,182, 14,243,213,198,178, 6,
- 16,246,119,119,203,162,100, 97,251,177,228, 8, 1, 10,231, 58,101,241,252,205,235,101, 89, 78, 6,157,110,185,101,162, 73, 5,
-243,120,169,138, 96,152, 13, 81, 29,209,131,251,119, 94,249,222,119,102,171,170, 10,146, 30,188,253,120,178, 17, 34,209,181,162,
-138, 8, 49,198,227,211,121,209,155,188,248,217,159,186,246,212,103, 92,103,128,232, 0, 16, 68,129, 82, 76, 53, 5, 55, 13, 97,
-154,138, 29,182, 4, 0,160, 98, 14, 25,180,163, 90, 14, 48, 16, 81,154, 73, 91,134,198,114,200,190, 77, 26,233, 18, 96, 65, 4,
- 36, 85, 57, 91, 86,103,203,106, 83,109, 66, 12, 10, 64, 8,189,110, 23, 84, 89, 88, 84,237, 75,139,194, 59, 79,157,162,120,225,
-230,245, 78,183,115,176, 51, 56, 39,141, 33, 96, 70,247,249,177, 42, 40, 53,161,249,214, 31,126,227,232,228,116, 85,177, 61, 88,
-103, 47,133,128,192,164,118,200,209,193,166, 14,103,139,245, 96,122,241,233, 23,190,212, 29,236, 8,230,153,194, 10,172,102,106,
- 84,209, 10,112, 62,104,231, 70, 48, 1, 61,231,171,104, 99, 9, 9,186, 42, 25,242, 68, 74, 99,139, 53, 19, 76,104,150, 0, 24,
- 17,136, 64, 4,128, 0, 25, 21,136, 32,132,250,116,190,120,112,124, 54,238,193,199,119,238,188,254,198,155,235,170,218,153,238,
-150,101,167,170,107,145, 8,228, 16,144, 8, 11,239,188,119,189,110,241,228,213, 75,111,190,255,225,238,176,115,178,172, 83, 23,
-203, 61, 69,236,172, 41,128, 3,122,231,173,239,189,253,222, 59,235, 70, 76,195, 68, 74,133, 16,115,102, 3,128,138, 16, 98, 8,
- 97,190,170,250,227,131,231, 62,253,149,162, 55, 81, 36, 4, 32, 84,117,100,143,168,213, 21,176, 29, 47,242, 56,140,128,134,162,
- 21,100, 11,145, 21, 53,227,202,156,110,152, 38,103,181, 79,167,176,137,161, 53,235,172, 9, 94, 43, 18,102,214, 6, 84,228,244,
-228,240,149, 31,156,125,251,247,238,220,250,228,147,186,105, 16,113,119,103,122,227,198,211, 69,225, 66, 35,145,163, 35, 23, 57,
- 58,242,142,160,240,126, 50, 26, 60,113,229, 82, 8,119, 23, 85, 19,162,146, 81,202,170, 10,138,204, 42, 34, 8, 48,159, 29,127,
-231,187,223,174,234,176,174, 35,171,154,104,151, 11,159,133, 7, 65, 0, 0, 69,120,179,105, 38,187, 23,159,255,204, 87,202,193,
- 14, 32, 97,126,234, 9, 63,232,214, 44,145,206,151, 90, 45, 78, 84,127,166,137,180,157,114,236, 11, 19,243, 14,231, 40,183,182,
-106, 19,110, 11, 26,108,203, 78, 26,204,206,215, 60,132,179,211,135, 77, 61,103,137,227,241,168, 40, 60,128, 30,159,156,190,247,
-222,187, 32,210,233,116, 16,144,133,173, 24, 19,146, 47, 60, 33,236, 78, 70, 87, 46,236, 14,187, 37, 0, 16, 11, 88,241,117,142,
- 76,204, 9,129,223,126,231,245, 7, 15, 31, 44,106,177, 49,213, 89,197, 3, 32, 68,231,236,152,171,253,190, 90, 87, 69,111,114,
-227,217,207,119,250, 83,176, 46,123,174, 61,195,246,253,106, 30, 51,108,114,149, 31, 98, 59,172, 8,230, 65, 43, 59, 79,172,222,
- 65, 59,151,230,225, 52, 75,102, 89,148, 75,177,200, 31,183, 51, 7, 0,128,196, 64, 0, 23,246,247,171,122,227,189,183,220, 63,
-155,205,222,122,251, 45,142, 77,175,215, 67, 36,208,164, 77,122, 34,239,136,136, 38,147,225,213,139, 83, 71, 72,153,171,227, 24,
- 25,146,152, 55,123,247,157, 55, 23,171,122, 83,179,149, 24,218, 2,142,246,116, 41,168,174, 55,155,168,197,213, 39, 95,232, 12,
-246,144, 60, 42,130,149,193,148, 65,210,118, 37, 61, 31, 39,115, 85,101,181, 72, 68, 64,243, 63,170, 91, 60,152,248, 0, 36,200,
- 47,193, 10, 78,206, 20, 74,163, 88, 74,151, 54, 78,143,177, 68, 10,136, 16, 66, 64, 87, 76, 70,163,205,122, 9, 32,246,101,171,
-245,250,181, 55,222,168, 54,235, 78, 89, 58, 71,128, 88,118, 74, 66,240,206,121,194,194,185, 75,251,211,189,201,128, 68, 88, 85,
-140,132,110, 66, 0,132,143, 62,124,239,254,131,251,139, 42,170, 10, 32, 58,139, 13,128,115,206, 25,103,157, 11,243,170,138,151,
-175,221,188,112,233, 41, 36,223,102, 76,139, 4,242, 75,180,122, 43,128, 2, 91, 38, 46, 27,245,180, 21, 28, 33,171, 94, 54, 40,
-111, 99,164, 91,105, 51,255,249, 54, 85, 8,206,253, 9,230, 67,217,178,226,144, 80,129, 46, 87,155,203,151,175, 93,189,114,181,
-174,106, 81,182,191,221, 52,245, 91,239,188,181, 92,206,187,221,174, 61,254,162, 44,157,119, 68,228, 29,129,226,205,107,123,148,
-135, 82, 8, 49, 40,226,114,181,124,255,189, 55, 79, 23,171, 16,197,140,194,228, 8, 17, 28,145, 35, 66, 75, 18, 85, 85,157,175,
-235,201,238,149,235, 55, 63, 67,190, 67,153,126,222,106, 35,144,186, 49, 32, 42, 40,182, 52,143, 49,134, 40,106,172, 62, 40,160,
- 90,182,165,225,194,206, 26, 88, 37,126,252, 36,217, 55, 76,228, 3,225, 99,132, 71, 27, 83,204,173, 47,149, 63, 34, 35,238,181,
-110,194,165,203, 87, 94,120,254,185,170,174, 57, 70, 80, 97,142,139,229,226,141, 55,223,184,127,255, 30,106,162,206, 13,153,123,
-231,136,192,123, 67,151, 68, 65, 25, 16, 8,240,147,143,222,189,123,255, 94, 21, 68,218,218,156, 74,143, 81,167, 42,160, 72,184,
- 88,109,168,232,223,120,238,101,215, 29,166, 44,223, 82, 15, 70,125,146,230,198,101,129,201,186,177, 40,136,242, 86,144, 77,111,
- 3, 83, 85, 23, 52, 54, 17, 21, 91,247,139,106,134, 60,233, 41, 24, 32,180, 63, 49,204,152, 19, 24,183,124, 49, 24, 14,232,120,
- 34, 66,211, 55,235, 42, 76,199,187,159,123,233, 37, 5,105,154, 42,114,108, 98, 88,174, 22, 31,220,122,255,193,195,251,161,169,
- 69, 4, 53,149, 90,231, 28, 1,146,130,134, 24, 81, 1, 17,103,243,179,219,183, 63, 58,157,205,155, 8,162,169, 95, 16,128, 79,
-199, 61,113, 45,155,170, 94,172,195,229, 79, 61, 51,154, 94, 74, 13, 85,206, 29, 42, 4,123,159,208,146,100,118,156, 12,167,139,
-182,230,168, 45,107,159,186,214, 22, 25,106,202,132,124,220, 0, 64,145,218,115,148, 19, 42,231,145,185,107,218, 47,215, 86,129,
- 43, 28,141,122,142,208,100, 38, 21,213,117, 85,119,123,195,231,158,121,166,219,233,198, 24, 29, 0,139,172, 55,155,187,247,239,
-158,156, 28, 54,205,198,202,158,185, 73,144,144, 68, 1, 8,152,185, 14,225,225,195,187,247,239,223, 91, 53, 34, 34,154,136, 40,
-176,137, 46,177,130,128,194,114,114,182, 30, 78, 15, 46, 63,241, 28,144,183, 34, 35,231,102,204,115,125, 41,199, 67,212,212,197,
-196,182,110, 57, 23,221,150,239, 68, 45,131, 97,115, 72,180,180,133,202, 10, 77,150,120,182,236, 94,155, 81,127,138,162,174,170,
-128, 56,234, 22,147,190, 7, 5, 81,105, 31, 78,221, 52,131,222,240,169, 39,175,239, 76,198,166, 42,199, 24, 23,203,229,221,251,
- 15,142,143,143, 29, 1, 2, 58, 66,231,200, 33,250,200,204,204, 10,202, 49, 62,186,127,247,248,228,180, 9,233, 29, 16,168, 67,
-114,137,221, 72, 63,114,185,170, 3,184,235, 55, 62, 93,118, 71,204, 2, 96,102,141,220,162, 50,182,177,174,174,208,198, 70, 90,
-193, 48, 71, 49, 79,118,144, 38, 84,216, 10, 21, 63,252,150, 17, 77,219, 7,204,198,243, 45,173,215, 14, 34, 8, 38,181,230, 7,
-132,221, 14, 29, 76,138,194, 17, 11,139, 50,108,231, 23,168, 26, 25, 12, 70, 87, 46, 95, 22,145,147,179, 51, 80, 97,209,245,102,
- 85, 55, 53,130,150,157, 30,128, 85, 34, 36,243,153,170,232,106,181,120,240,224,238,124, 93,219, 3, 37, 85, 27,153,157, 51,201,
- 9, 0,129,163,156, 45, 55, 7, 87,110, 78, 15,158,136, 44, 34,202, 54,200,137,136,114,238,219,233, 48,217, 99,147, 86, 78,133,
- 45,239,164, 45, 25,151, 16, 16,180,172, 56,180,157, 27,243, 95,196, 76,205, 3, 2, 40,181,125, 92,173,139,164, 26,165, 0,128,
- 98, 18,177,130,150,142, 46, 78,186,227,126,161, 41,119, 44,147,173, 28,138,136,108,170,166,215, 27, 28, 92, 60, 48,235,132, 57,
- 71,155,208,220,127,244,104,181, 90, 58, 76,250, 21,153,227, 18,144,238,223,253,228,228,244,100,211, 8,156, 47,204,212, 22, 61,
- 69,192,179,229, 26,252,224,218, 83, 47, 40,146,228,159,165,156,206, 15, 75,155, 44,108,137,147, 95,151,108, 43, 67,254, 23,158,
- 3,216,208,146,201,122,142, 16,210,164,202, 65,102,207, 18,174,209,243, 98,137,180, 85, 39,155, 37, 68, 85, 61,193,254,164,220,
-159,116, 8,204,133, 34, 54, 49,137,176,136,249,105, 69, 68,154, 16,135,253,225,179, 55,111,118,202, 78,182,240,104, 8,225,225,
-225,163,249, 98, 1, 18, 8,109,246, 35,136,161, 62,122,112,123, 85, 5, 77, 16, 30,208, 33,102, 25,197,134,167,117, 21,142,103,
-155,253, 75,215,203,254, 36,154,143, 87, 88,148, 89,133,133,217,204, 82, 49,114, 50, 51,216,107, 74, 98, 23,106,139,143,255, 84,
-211, 63, 0, 8,228,214,127, 78,220, 85, 80, 65, 64, 76,250,175,158,195,232,249, 27,166,239,189, 85,221, 8, 97,103,212,185,188,
-211, 43, 29, 90,233, 17,102, 17,142,230,124, 99, 97, 17, 78,175,152,235, 58,118,187,253,103,159,185, 57,232,247, 9, 49,187,121,
-100, 54,159,113, 12,189, 14,145, 67, 71, 68, 71,143, 30,156, 45, 22,155,134,205, 33,133, 68,118,190,146, 89, 30, 80, 85, 79,102,
- 75,245,189,253,203, 55, 84,192,126,100, 50, 32,112,122, 34, 42, 44,233, 92, 73,155, 63,146,243, 63, 77,168,143,161, 72, 61,247,
-111,204,191,101, 63, 70, 43,252,139,158,155, 90,245,220, 25,109, 37,114, 67,230, 2, 42, 8,186, 51, 44,174,237, 14,122,165, 75,
- 73,156, 82, 72,149, 37, 55,208, 54,251, 69, 65,234, 16,189, 47,175, 93,185, 82,148,133, 21, 52,123, 3,171,205, 38, 52, 53,173,
-215,107, 66,124,244,232,193, 39,247, 30,174,234, 16, 35, 3,180,240, 62, 81,128,136, 80,213,113,190,110,118, 15, 62,213, 31,237,
-112,202, 84,145,200, 34, 81,211, 83,145,200,194,194,105,250, 21,205,239, 44, 87,210, 54, 3,126, 40, 68,104,178,129, 34,230,118,
-118,254,244,181, 26, 90, 30,199,180, 21,128, 65, 19,181,151,148, 89, 17,145,241,176,247,196,197,201,120,216, 69, 34, 48, 79,186,
-136,136,176, 50,171,178, 50,107, 84, 21, 81,182,210,100,131, 78,100,118, 69,121,229,210,165,178,240,109,150,199, 24,151,235,141,
-171,170,249, 27,239,188,247,234,155,111, 30,157,205,153, 53,187,235,208, 81,242,199,217,139, 62, 91,172,151, 1,158,121,225,203,
-157,238, 32,137,161, 34, 2, 57, 87,204,154,170,201, 44,148,251,217, 99,188,114,219,228, 17,160,253,164, 10,180,189,199,254, 14,
-226, 57, 0,144,254, 76, 16,219,113, 85,179, 43, 42,185,213, 69,185,197, 90, 59,211,233,151, 95,122,230, 11, 47,222,232,117, 59,
-243,197,122,211, 52, 77, 29,146,165,180, 69, 97,230,161,148,172,116,131, 40, 40,139,198,192,162,226,157,159, 47, 87,185,105,171,
- 2,248,143, 62,186,245,250, 91,111,151,158, 58,101, 57,238,119,198,195,158,115, 70,232,144, 34,130, 10, 0,178,200, 98, 93,239,
- 29, 60, 49, 28,237, 49, 51,104,130,112,105, 40, 79,125, 74,218, 78,189, 69, 35,109,254,180,188,252,182, 88,107,219,119, 53, 55,
-184, 52,199,164,218,171,173,225,209,136,159,115, 25,245, 67,230, 72, 70,160,103,110, 62,247,179, 63,241,185, 23,159, 24, 21, 78,
- 99,228,221,157,157,111,252,254,183,231,235,181, 71,195, 6,231,127, 4,234,150, 32,215,212, 90, 16, 68,128,156,247, 69, 55,134,
-141,167, 20, 67,119,243,218,133,178,240,206, 57, 81,219, 4,208,174,243,100,253, 43,179,172,213, 38, 44, 42,121,242,185, 47,116,
-186, 3, 59,216,121,176,218, 30,105,248,161, 42, 1,184,237,197,150, 54,169,149,107,219,229,181, 13, 43,232,185,221, 26, 60, 55,
-195,234,227, 4,108, 59,224,178,213, 29, 91,239,240,190,120,249,229, 47,252,244,151, 62,243,242,205, 93, 2,102, 17, 79,238, 96,
-111,103,103, 58,125,229,181, 55,207,230,115,181,249, 14, 19, 74,205,179,158, 81, 81,162,106, 37, 53,181, 26, 80, 88,174, 27, 36,
-112,164, 0,224,110, 94,187,128,105,190,113, 10, 26, 3, 40,112,225, 8, 50, 65, 6, 0,243,229,166, 51,218,187,112,229,102,130,
-168, 34,208,186, 55,173,103,229, 14,159, 94,128,149, 31,132,140, 74,210,251,222, 10, 70,143,141,250, 45, 66,122,220,247,145,186,
-126,251, 5,250,195,104, 84, 69, 65,119,119,246,191,242,229,175,252,228, 75, 55, 94,120, 98,236,137, 61,145, 3,231,157,115,142,
- 46, 31,236,221,188,254,196, 31,127,239,213,163,211, 83, 97,241,142,172,244, 43, 0,110,171,117, 66,252,204,202,137,167, 22, 81,
-174, 54,209, 17, 16,161,187,118, 48, 53,193, 0, 49, 53,144,192,162, 34, 14, 83, 27,139, 33,174,170,184,123,233, 70,111,184,155,
- 72, 47,200,137, 41, 86,119,210,252,189, 53,196,101,207,133,197, 4, 91, 35, 92,203,108,108, 81,245,150,157,182,118,221, 82,214,
-104,159,183,211,161, 91,130,205,190,148, 37,146,163,167,111, 62,243,179, 95,251,210, 87, 95,184,122,237, 66,215,161, 24,215,208,
- 50,179,160,184, 55,157,124,234,242,165,219,247,238,223,123,240,176,105, 66,225, 61, 57,196,109, 43,205, 22, 55,211,201, 68, 36,
- 74,148,168, 10, 49, 4,102, 44, 28,120,116,190, 9,145, 80,188, 39,163,212, 89, 96,190, 86, 17,157, 18, 34, 64, 19,162,146, 31,
-141,247, 84, 20,128,211, 97, 70,176, 9, 3,178, 55, 35,243, 51,106, 40, 10,204,190,169, 91,151,138,129, 57,220,106, 26,153,156,
-199,124,154, 32,255, 46,134,189,116, 11,193, 83, 97,106, 31, 77,220,223,221,255,234, 23, 62,251,185,231,174, 95,154,118, 29, 70,
- 51,245, 37, 71,177, 17, 23,154,252,109,215,174, 92,190,121,253,202,209,209,163,217,124,121,124,122,182,183, 51,237, 20,222,200,
-218,182,155,180,182, 8,160, 52,129,250,210,111,214,117,100,244, 23, 47,236,110,214,155,117, 85,109,170,198, 17, 16, 57, 17,102,
- 66,168, 21,136,118,134, 20, 34,247,250, 83, 87,116, 68,248,156,146,177,109, 38,237,243, 64, 36, 16, 52,239, 37, 2,129,181,159,
- 92, 94,209,242,179,141, 4,110, 53,111,205,154, 88, 22,198, 18, 63,155,198,180,115,135, 1, 17,134,131,222, 75,207, 63,247,181,
-207,191,240,228,149,105,137,218,212,213,150,181, 4,101,102,211, 88,205,201, 93, 55,245, 59, 31,188,127,114,122,178,183, 51,142,
- 33,108,234,230,228,236,108,111, 58, 41,202, 2, 77,224, 63,103,225,202,112,196,100, 18,244, 30,234,168,126,111, 58,137,195, 97,
-136,177,170, 67, 85,215, 33,132,186,169, 99,100, 22, 88, 85,193, 19, 21,222,239,236, 95,142, 12,201,118,171,186,173, 13,233,205,
- 97, 70,183, 2, 64,170, 2, 64, 0, 2,232, 18, 99,145,109, 52,217,149,219,170,143,146, 42, 64,130, 76,219,153, 36,157,182, 92,
-201,153, 89, 85,166,227,241,115, 55,159,250,202,103,159,191,113,237, 66,191, 68, 14,161,137,161,237, 3, 22, 90,231,140, 1,165,
-245,102,115,235,147,143,127,240,198,235, 31,124,116, 75, 84, 71,131, 97,220,229, 71,135, 71, 77,148,163,211,179,157,201,184,219,
-241,231,220,239, 89, 95,104,203, 1,161,115,142, 37,250,201,104,104,242,164, 2,196,200, 85, 19, 86,155,106,179,217, 84,213,198,
-182,184,202, 78,191,211, 29,137,176,125,117, 58, 13,231,138, 74, 82,102, 17,173, 46,171, 38,119, 90,170,215,152,181,177, 45,175,
-209,110, 49,164,179,149, 89,145, 54, 60,210, 54, 97, 27, 89, 70,163,225,231, 94,120,254,243, 47,222,120,242,202,126,191, 67,220,
- 84, 77,197,230,235,104,201, 19,123, 23, 70, 31,190,253,193,251,255,244, 15,254,224,228,236, 84, 84,201,249,166,106,152,155,126,
-191, 55, 26, 15,103,243,133,178,158,158,158, 77, 39,163,178, 83,166, 12, 18,209,196,125, 66,162,105, 1,136,200, 59,240,189,110,
-199, 57, 95,250,194, 57, 2, 34, 21,169, 3,111,170, 42, 52,141,115, 84,173, 22,141,150, 12,148,156,226,153,248,200, 50, 84,110,
-191, 8, 10, 98, 49, 50, 35, 88, 98,182, 84, 53, 57,105, 52, 89,140,207,131,152,243, 92, 90, 42,206,169,206,216,134, 1, 17,237,
-142,198, 47, 60,247,244, 87, 62,243,252,245, 75,147,110, 65, 28,234,102, 19,146,200,137,100,101, 77,179, 19,174,110,234,135, 71,
-135,223,249,254,247,223,253,240, 3, 68,138, 44, 57,133, 85, 20, 28, 97,191,223, 19,142,203,213, 58, 4, 57, 60, 57,155,140, 70,
-189,110,153, 43,169, 36,101,101,219,102,136,200,123,239,124, 81, 20,101, 89,122,239,189,115, 68,168, 2,145,135,129, 99,225, 60,
-208,149, 59, 15,231,203,192,232, 57, 65, 27,139,120,203,224, 65,106,126,152,172, 25,106,123, 97,170, 0,192, 86,185,165,181, 21,
- 38,240, 43,217,182, 96, 15,143, 85, 36,103,146,253,226,126,127,112,245,210,193,179, 79,125,234,165,231,158,186,186, 63, 46, 29,
-112,108,234, 77,180,124,105, 55,148,236, 95, 68,168,170, 31,221,190,253,221, 87,127,240,209,237,219, 77,104, 0, 72, 53,198,200,
- 42,172, 0,102,130, 12, 77, 84,133,178,211, 25, 33, 45,151,203,186,110,206,102,179, 38,244, 6,189,142, 35, 58,223, 80, 91, 27,
-155,115,206,147,115,222, 57,135,228,189,243,206,118, 85,200,164, 34,239,105,185,105, 66, 76,104,122,235,164, 3, 0,101,104,137,
-180,246, 37, 39, 1,192,170, 95, 18, 25,182, 88, 89,183,240, 79,179, 81, 51,129,255, 84, 67, 4, 65, 15, 46,236,189,248,244,141,
-231,111, 94,251,212,197,221,241,168, 71,192, 92,215, 77,224, 31, 10, 77,171, 74, 34,226,124,185,252,254,235,175,191,250,198, 91,
-179,229, 92, 68, 89,162,216, 80, 8,140,130,198, 80,165,164, 20, 16,129,210,187,209,104, 4,184,168,170,122,185, 90,133,166, 25,
- 12,250,222,187,180,202,133,217,183,143, 2,136,190,244,190, 40,138,162, 40,188, 43,188, 39,239,189, 39,219, 72,117,206,185,158,
-151, 72,166, 0, 0, 16,165, 73, 68, 65, 84,213, 38, 68, 85, 17, 32,180,113,241,220,242, 28,170,249,166,140,207, 18, 85, 52,127,
-154,149,106,155,119,240,156, 7, 97,187, 77,150,200, 34,201,151, 15,148,158,134,253,254,213, 75,123, 95,252,244,243, 55,158,184,
- 60, 25,117,137, 72, 56,114,181,110,132, 91,185, 71,219,202, 37, 10, 0,204,188,174,214, 31,220,250,248,143,190,255,202,201,233,
-220,134,229,200, 44,108,251,174,166,165,107, 59,234, 8, 72,238,171, 84,120, 26, 13,134,136,180, 92, 46,171,166,142,204,131, 65,
-183,116,222,176, 4, 38,211, 62, 34,160,159, 76,166,133,109,131, 57,231, 8, 41,101,147,119,142, 20, 40,176, 4,123, 8, 40, 9,
- 6,106,134,163, 98,246, 9,200,200,140, 82,109,202,114,130,154, 89, 3,207, 19,101, 70,209, 26, 10,103, 2,217,157, 12,111, 92,
-187,244,220,141,107, 79, 92, 61, 56,184,176, 79, 30, 32,114,108,234, 24, 66, 46,156,233, 88, 99,162,111, 69, 84,154,166, 57, 58,
- 57,190,117,251,206,237,123,247,110,223,189,107, 43,251, 45,213,147, 64, 77,122, 90,168, 32,182, 11, 41, 0, 42,140, 42,138,137,
-234,239,245,122,132, 48,155,175, 66,140,203,197,186,219, 45,189,247, 89,220, 4, 82, 66, 82, 63,157,238, 56, 34,114, 73, 69, 49,
- 10,209,116, 76, 22, 89, 87,117,140,162, 36, 40, 64,136, 98, 2, 79, 59, 75,129,152, 21, 14, 21, 8, 84, 17, 69,149,160, 45,220,
-231,135,213,116, 22, 69, 68, 69,202,194, 93,189,122,241, 43,159,121,246,153,235, 23,167,147,161,239,148,168,194, 77, 21,214,193,
- 22, 55,178,119, 21, 84, 85,152, 99,228,192,177,137,113,185, 92,221,121,112,255,214, 71, 31, 61, 60, 62,218, 84, 85,228, 24,109,
- 95,154,163,173,197, 38, 14, 13, 16,148,179,113, 55,137, 6,168,102, 27, 20, 4, 16, 84, 17, 64,229,178, 83, 14, 6, 50,155, 45,
-213,137, 86,224, 92,116,158,146, 88,137, 0,138,190, 44, 10,115,250,180,171, 39,136,102, 52, 65,102,222,212,129, 85, 65,192,172,
-166,164, 98, 62, 74,204, 99,118,234, 34,132,121, 32, 5, 54,241, 89, 64,208, 12,153,201, 35,170,170,206,209,116, 60,186,241,196,
-213, 47,190,116,243,230,213,253,110,215, 1,162,196, 24,151,115,137, 81,183,251, 4,160, 2, 81,184, 9, 77, 85, 55,155,170, 90,
-111,214,143, 14, 15, 63,190,115,247,209,241,225,114,181, 50, 50,211,102,192, 40,204, 49,166, 81, 16,196,214,104,210,189, 36, 72,
- 12, 2, 2, 34, 10, 32,137, 25, 22, 64,100, 2, 66,132, 40,132, 32,221,110,209, 52,101,211,132, 24,131,170, 99,110,117, 1, 4,
-167, 62,109,159,152,235, 11, 19,242,135,220,106, 91,203, 25, 33, 90,156, 80, 85, 73,200,172,255,154, 11, 83, 2,234,105,107, 75,
- 50,209, 46, 25,248,216,138,229,167,159,189,241,242,179, 79, 92,191, 56,237,149, 40,194, 97, 83, 75,140,246,183,179, 13, 10, 69,
-164,106,154,229,114,121, 54, 95,156,206,102,199,167, 39,199, 39, 39,167,179,179,197,106, 21, 99, 72, 83,183, 38, 26,147,141, 11,
- 59, 55,118, 34, 42, 8, 42,136,113, 53,104,102,225,116, 52, 19, 34, 4, 54, 73, 73, 33,211, 87,253,126, 7, 17, 67,224,200, 33,
-165, 65,110, 50, 94, 68,204,120,156,153,243,115,194, 93,218,116, 18, 37, 1, 48,229, 5,237,102, 32, 33, 32,164,243, 64,173, 53,
- 27,108, 71, 44,149,214, 28,244,244,147,215,126,246, 43, 47, 63,125,109,175, 32,209,184,217,172,132,146,173, 7,144,176, 61,125,
- 71,199, 39, 31,223,187,247,232,240,240,108,190, 88, 85,155,205,102, 93, 85, 85,176,219, 28,192,110,246, 96, 53,115, 88, 76,146,
- 74,110,131,201,167, 0,146,132, 35, 67, 96, 98,127,153,165, 5,180, 9,242,183,241, 82,230, 40,190, 40,134, 3, 90,174, 43, 12,
- 16, 66,216,106,186,136,158, 85, 29, 0,176, 10, 34,210,121,155, 73,166, 53, 68, 68,197,184, 15, 77, 46, 56, 32, 86,113, 66, 64,
-233,248,144,102,237,217,146, 42, 45,212, 9, 96,167,240, 47,191,240,204, 95,251,234, 75,151,119,251,177,174, 56, 68, 1, 32, 68,
- 51,123, 91, 92,234,166,249,228,238,253,119, 63,252,240,225,209,113, 85,175, 99,100,230, 24,154, 38,112,228, 92,116, 19,241,173,
-194, 28,173, 7,202, 57,187,131,182, 32, 29,197,252, 87,132,160,154,181, 4, 81, 49, 25,174, 93,186, 72, 40, 86, 44, 79,204, 6,
-219,237,148, 27,173, 1,124,140, 17, 24,148,128, 20,188,205, 66,212, 46, 81,226,227, 6,220, 68, 41,169, 40, 32, 41,146,130, 16,
- 17, 9, 10, 9, 9, 10, 33,165, 83, 15,170, 9,212,106,203,140, 77, 71,195,159,251,137,207,127,249,165, 27,131, 18,234,205, 42,
-117,122,209, 8, 54,107, 67,136,241,195, 79,110,191,253,254,135,143,142,143, 66, 8, 33, 52, 33, 6,102, 14, 33,164, 64, 36,243,
-155, 88, 96,140,175,177,192,100,161,176,221,180,198,214,238,103,112, 63,154,124,145,165,204, 45,142, 7, 68, 73,116,191, 57,126,
-152,217, 78,119, 89,250, 0, 0,160, 17, 80, 68, 20,213,139, 8, 32,130,160,105, 96,250,184, 64,110,170, 54, 67, 36, 34, 18,155,
-211, 5, 69,145,156, 36, 15,149, 32, 56, 64,123, 24,138,173, 61, 6,116,119, 60,252, 91, 63,247,165,207,191,120,131,148,171,213,
- 74, 85, 9, 33,154,229, 92, 69,145, 78,230,243, 87, 94,123,227,238,253, 7, 85, 83, 53, 77,211,132, 38, 70, 86,230,192,193, 78,
- 69,203,137, 70, 97,230,216,170,182,219,133,129, 45, 67,135,121, 47, 19, 64,213, 54,242, 37, 45, 54,110, 49,124,139, 88, 69, 21,
- 12, 17,112,218,216, 70, 68, 81, 33,197, 78, 89,136,136,247, 24,130,128,130, 23, 81, 36, 67,154,217,250,180,101,199, 5, 1,197,
-150,125, 84,128,148, 4,193, 81, 36, 36, 1, 66,167,170,202,102,191, 53,143, 37, 42,171, 81,145, 59,227,193, 79,190,124,243,233,
-107,251,205,122, 37,161, 49, 35, 22, 3,196, 24, 89,216,145,187,243,224,193,171,111,190,125, 54,155, 53,193, 54, 55, 66,150,214,
- 82,135,202,116, 51,199, 92,137, 33,141,149,233, 29, 99,106,121, 8,173,163, 15,147,204, 99,223,234, 49, 3,146,205,209, 25,182,
- 26,189,202,170,104, 80, 21,128, 0,109, 74, 18,150,210,251, 16, 99, 68, 20, 81, 47,170,168, 64, 10, 64, 34, 91,115, 77, 42,241,
- 73, 36,210, 8,226, 84, 65,157, 35, 22, 84, 18, 18, 32, 32,177,205, 98,225,196, 52, 37, 82,124, 52, 40, 95,184,190, 63, 40,225,
-155,223,254,227,170,170, 46,238,237,140,135,253,157,233,216,121, 31,154,112, 58, 95,220,189,255,224,240,228,100,179,217,212, 77,
-101,137,195,182,244,154, 77,122, 73,238,203, 21,228,156,187, 81,211,146,121,182, 39,158, 95, 77, 79,154,147, 69,231,113,246,178,
-221, 60,177, 80, 70,110,251, 90,235,130,204,243, 15, 58, 91, 35,143,142,154, 24,188,136,152,129,221, 44,169,231, 23,173, 85,149,
- 16,193,180,101, 2, 34, 2,142, 74, 68,170, 36, 78, 84,192, 1, 2, 34, 19,162, 8, 37, 11, 83,175,244, 79, 92, 24, 13, 10,248,
-248,238,189, 59,247,238,127,239,181,215,231,139,179, 43, 7, 23, 62,253,220,211,207,220,120,170,105,194,195,227, 19, 83, 22, 66,
- 12, 33, 90,161,201,206,139, 76,145,217,166,148, 36, 87,158, 49,225,153,137,176,199,141, 0,128,172,220,234, 6,169,237,171, 72,
-171, 32,156, 59, 91,152,104, 57, 81,212,104,144, 27, 36, 89,187,140, 0, 76, 70,113,178,251, 83, 68,217, 59,116, 68, 94,132, 17,
- 72, 81, 5,145, 30, 91,166, 51,175, 20,168, 70, 97,187,107, 33,109, 29,130,170,146, 18, 58, 80, 69,103,203, 90, 8,130,138,232,
-157, 59,152,116,247,198,157,200, 97,189, 94, 45, 55,107, 34,220,108,170,247,110,221,186,115,239,238,239,252,222, 31,244,251,189,
- 39, 63,245,169,157,157, 73,167,236, 24,250,223, 58, 97, 13, 64,164, 3,149, 81, 49,180,117, 55, 23, 0, 74,181, 39,165, 64,146,
-116,165,229,220, 91, 25, 73, 91,238,106,235,188, 1, 97,181,107,249,172,117,183, 70, 1,132,164,201,165,171, 34, 20, 16,160, 83,
-160, 55,143, 62,153,204,131,136,143,153,118,149,192, 54, 14, 89, 1, 5,217,129,221,219, 66,182, 33, 10,228,136, 65,137,129, 8,
-129, 16,116,212,239, 94,217, 27,150,158,236, 36,247,202, 98,111,103,167,110,170,217,236,172,106, 26,144,122,185, 94,205, 23,203,
-107, 87, 46, 93,190,120,177,219,235,166,185, 53, 87,147,150,193, 69, 68,231, 72,240, 60,177, 38, 91,135, 95, 66,126, 41,154, 86,
-183, 84, 88, 91, 86, 55,147, 85,104,149,197,156, 56,220,222, 49,194,231,242, 74,207,217,134, 45,130, 98,215, 23,169, 48, 34,185,
-191,245,215,254,234,246, 22, 23, 67, 22,154, 87,147, 5, 54, 85,117,239,240,172, 10,143, 57,158,243, 74, 98,114,129, 97,134,134,
-165,119,215, 47,142, 15,118, 7,201,182, 76,128, 0, 33, 4, 5, 17,145,208, 68,219, 44, 11, 33,206,230,243,197,114,229, 8,243,
-221, 37, 54, 9,170,137, 83, 96,196,127, 91,130,177,181,163,109,213, 66, 43, 33,173, 79,195,138, 78,166,245, 83,233, 49,216,159,
- 40, 93, 22,101,213,243, 78,227, 22,218, 42,230,123, 52,242, 5, 26,109,170,168,248, 24, 35, 56,167,128, 36, 32, 6,135,218,149,
- 89,181,165, 42, 85, 97, 1, 82,178, 60, 37, 85, 80,167,206,168, 91, 2, 48, 7, 53,105,191,235,247, 70,221, 84, 49, 0, 28,185,
- 97,191,191, 59, 29,213,245, 38, 6,174,155, 48,155, 55,168,201, 29,112, 58,155,213, 77,115,241,194,254,254,222, 78,175,219,119,
-132, 42, 91,106, 24, 20,137, 64, 5, 36,205, 64,152, 24,108,209, 86,129,203,228, 90,178,255,192, 57, 75,127,162,162, 36,159, 44,
- 78,146,136,110,151, 93, 33,149,251,188,129,145,132, 56,123, 30,108,118, 13, 96, 85, 31,153, 85,213, 41, 18, 18, 26,246, 79,171,
- 0, 22, 72, 69, 0,150,136,224, 73, 17, 72,149,212, 73, 58,182,100,127,201,129, 10,120,132, 73,191,236,118,252, 22,113, 0,122,
-239,135,131,193,116, 60, 78,151,148, 49,159,205,102, 0,226,201,145, 66,181,169,238, 63,124, 52, 95, 44,167,147,241,100, 60, 44,
-203, 82,207,175, 59,230,214,181,245,185,234,150, 25, 48, 66,236,252, 50, 96,170, 89,152, 27,141,108,239,137,107, 63,108, 13,104,
-105,139, 60, 91, 63, 91, 23, 23, 36, 59, 59, 64,150, 16,124, 72,144,193,145, 83,218,174, 88,167, 51, 73, 72,142,144, 69, 73, 25,
-136, 64,137, 84,196, 89, 73, 6, 5, 5, 2,100, 85,212,178,112,163, 65, 73, 68,137,181,151,228,128, 42,203,114, 48,232, 87,117,
-197, 34, 14,177,240,197,201,217, 89, 29,106, 34, 50, 13, 59,196, 88, 85,245, 98,185,220,153, 76,198,163, 1,218, 54,106,230, 99,
-211,131, 70,243,190, 38,195,175,164,103,189, 69,140,173, 89,130, 82,227,207, 89,198, 91,230,251, 28,229,166,231,214,139,210,138,
- 74, 27, 30, 75, 10, 84, 49,157,202, 51, 51, 16, 1, 40, 9, 58,243, 20, 35, 32, 80,246, 97, 67,233,201, 86,136, 21, 4, 8, 84,
- 72,129,129, 40,213,111, 16, 66, 34,148,194,209,160, 83,164,113, 72,160,165, 98,189, 47, 6,189,126, 61,168,155, 38,196,126,216,
-211,177,247,110,182, 88,172, 55, 27,187,156,200, 59, 39, 44, 33,132,170,105, 54,117, 53, 25, 14,124,225,179,144,111,175, 71, 25,
- 4, 34,146,195,220,193, 53,235, 15,153,154, 72,173, 20,219, 3, 8, 57, 58,143,221,172,185,157, 57,208, 12, 87,218,114, 27,219,
- 41, 9,192, 74, 33, 0,160,250,116,181,136,154,227, 85, 40,237, 90, 11,106,178,214, 22,133, 19, 21, 80, 34, 0, 6, 33, 2, 84,
-226,116,219,148,146,217, 0,200,117, 10,234,148,190,245,176,182,207,159, 16,139,178, 24, 14,134, 33,196, 24, 66, 44,227,168,223,
-117, 4,221,178, 88,215, 85, 93, 55, 77,140, 70, 6, 6,230,186, 14,203,229,102, 50, 25, 78,134, 3,231,201,142,191, 71, 7,136,
-224, 84,132, 20, 37, 13,238,182, 38,212,198, 8,225,188,156,156,101, 36,105,243,203,238, 63, 75,165,138, 20, 24,179,143,182,109,
- 80, 8,237, 56,171,105,155,157, 0,188,180, 59, 37,105, 81,140, 76, 54, 37, 68, 96, 0, 0,239, 93,162,116,149,200, 54,200, 1,
-137, 32,155, 88,211,162, 84,183,227, 11,243, 67,156, 99,230,243,149, 7,212,233,148,227,241, 48,114,140, 9,170,128,119,174, 83,
- 20, 43, 95,173, 55, 85,211, 52, 28, 27, 95, 8, 51, 55, 77,179, 92,175,231,195,254,206,100,210,235,149, 8, 26, 57, 66,186, 61,
- 69, 91, 79, 98,222, 88, 0, 72,251,122,182, 43,223,230,142,232, 57,123,141,149, 47,201, 78, 18,100, 84,201,148, 16,108, 73,144,
- 12,107,210, 13,131, 86,251,188,205, 19,108,201,102, 67, 39,217, 99, 65,163,124, 58,222, 35,164,251,201,140,125, 22, 16, 80, 27,
- 52,136,145, 69,137,156,235, 21, 5, 18,164,135,214, 10, 21,185,233, 32, 82, 81,148,163,225, 48,166, 91,181, 4,146, 57,194, 57,
-231,214, 27,170,154, 38,132, 32, 34,196, 92, 55,205, 98,181,186,123,255,112, 58, 30, 94,185,180,223,239,117,243, 77, 14,208,218,
-181,179,213, 21,133,132,192,229,169, 65,193, 48, 81, 59,117,181, 87, 13,102, 5,193,116,123,160,115, 90,106,206, 30, 68,108,103,
-189, 68,137, 40,250, 45, 91,156, 82, 87, 89,208, 17, 0, 40, 10, 42, 81,217,241, 68,164, 81,237, 62, 50,180, 73,140, 18, 33, 71,
-152,210,190, 83, 58, 56,223,108,181,181,184,165, 95, 8, 88, 22,197,168,223, 87, 22, 64, 34,221, 4, 80, 66, 37,215, 45, 28, 20,
- 27, 87,213,117, 8, 77, 20, 99,116, 49, 70,126,116,116,122, 58, 95, 94,188,176,123,113,127, 90, 22, 37, 36, 77, 24,193,185,244,
-152, 17, 32, 2, 3, 27,115, 40, 42,102,240, 1, 60,151, 59, 9,216,100, 43,146,213, 94,187, 86, 45, 15, 14, 89,128, 84, 99,170,
-183,200, 17,213, 99,186,132, 13,208, 80, 6, 2, 81,226,250,204, 30,209, 45, 59,101,225, 54,117, 0, 17, 33, 68, 65, 64, 37, 16,
- 86, 34, 66, 69, 35,218,168, 44, 40,111, 58,109, 85, 83,201,179, 99,146, 28, 0,188, 43, 6,253, 65,250, 97,154,252,252,132,228,
-188, 47,189,219,212, 84, 53,129, 89, 16,212, 19, 70,213,166,105,238,220,125,120,122, 54,191,122,249,194,116, 52,116,132,228, 60,
-144,237, 78,137, 68, 17, 20, 36,148,104, 70,100,109,133,166,188,234,130, 34,130,130, 66,146, 47, 50,210,243,152, 55, 91,225, 48,
-185,185, 18,179,142,104,131, 7, 98,186, 79, 26, 5,212,105,242,100,107,187, 1, 4,170,216,235,150,131,110, 57, 91,134, 52,141,
- 1,176, 93,226, 70, 2,233,146, 1,114, 14, 11, 71,153, 97,200,138,233,185, 8,113,154, 8,172,202, 97,183,236,240,128, 5, 84,
-171, 13, 40, 20, 5, 56,236,120, 36,239,169, 40,154, 77, 85, 55, 49, 34,131,163,180,215,184,169,234, 91,159,220, 59,216,223,189,
-176, 59,233,118, 74, 2, 71,164, 42, 32, 36, 16,179, 97, 76, 4, 72,137, 73, 41,221,185, 7,237,204, 65,219,237,141,212,240,183,
- 34, 67, 91, 54, 5, 84,242, 5, 68,146, 45,172,232,147,202,165,166, 16,163,160,221,113,165,153,214,149,210,251,157, 81,239,254,
-241, 42,219,157, 16, 77,177, 16, 96, 51,225, 32,148,158,188, 67,179, 47,202, 54, 66,146, 39,201,116,143,116,180, 88,169, 32, 82,
- 89,118,250,172,160, 90,105,165,141, 32, 33,148,158, 72,237,218,198,186,105,234, 38,132, 24, 85,129, 85,148,129,153,239, 61, 56,
- 92, 46,215, 23,246,167,211,241,208,123,167,233, 70, 6, 72,218,169,105,224, 78,172,183,156,219,238, 76, 3, 84,158,240,179, 87,
- 39,195,234,188,165,165,148,175,217, 49,178,192, 68, 12,159,177,125, 86, 5, 8, 5,157, 57,214,109, 9, 1,137,166,227,126, 89,
-224,186, 86, 67,133,206,248, 94, 2, 4, 96, 69, 34, 45, 29, 34,130, 93, 96,166,219,246,149,102, 43, 21,149, 68, 49,100,171,187,
- 42, 34, 22,133,239,105,207,212,154,134, 3, 41, 0,185, 78, 73,222, 81,167, 40, 67, 39,212, 77, 88,215, 85,213,196,100,139, 17,
-153,205, 23,139,213,106,208,239, 29,236,239, 76,199, 3, 66, 50,147, 96,222, 23, 82, 66, 84, 7,105, 79, 56, 45,112,180,150,189,
- 92,152, 90, 53,113,219,114,165,149, 44,204, 70,101, 53, 7, 17,253, 57,163,133,169, 2, 32, 32,230,176, 79, 89,136, 58, 26,244,
- 70,189,114, 83, 87,102, 14,138,130,136, 72,108,115,170, 32, 18, 57, 84,149, 40, 81, 90, 47, 82,114,145, 39,151,112, 76,150,119,
- 43, 70,246,161, 0, 18, 57,234,116,186,170,160,149,134,168,130,138,170,206, 57, 34,245, 5, 21,133, 47, 59,126,189,105, 54, 85,
- 29, 56,253, 7, 5, 36,242,108,190, 90, 44,214,163,209,224,194,238,104,208,233,166, 94, 96, 34,138, 49,120,102, 18,182,228, 17,
- 77,172,106,203,153,217,118,190,245,197,212,157, 41,183, 71, 56,191,198, 7, 8, 94,183,130, 26,160, 2,181,215, 58, 17,129, 0,
- 16,144, 72,183, 44,118,198,189,195,179, 74,210,162, 91, 54,196,153, 53, 51,203,151, 12,231,230,159, 20, 31,219,218, 72,106,150,
- 93, 10, 44, 45, 75, 33,138,128, 68, 84, 20, 5,100, 27,149,180, 67, 19,162,115,212,193,130, 16, 11, 79,235, 77, 93, 55, 33,138,
-182,166,189,217,108, 62, 95,172, 6,189,206,116, 52,232,117, 93,186,167, 96, 91,121, 64, 32,211,139,146,111, 6, 75,109, 13, 91,
-247, 81,126, 3, 89, 56, 34,108,123,159, 29, 51,223,132,144, 61,147, 10, 0,146,168,230,188,232,167,168, 68,136,176, 59, 30,148,
-229,217,122,147, 38, 21,204,214, 94, 69,171, 73,204,202, 42,152,140, 44,105, 93, 35, 45,178,180, 84, 95,203,135,110, 57, 10, 51,
-117, 16, 58,239, 59,170, 0,208, 64, 45,145, 53,111,141, 33,162,119,142, 58,232,136, 10,239,214,117, 19, 35, 39,149, 5, 80, 68,
-230,171,205,186,218, 76,134,131,241,160, 99, 23,184,217, 45,135,246, 92, 98,140,178, 93,122,197,180, 26,154,111, 8,201, 55,121,
-231,141,189, 45, 26,202,252, 49,170,175,155,166, 5, 83,182,141, 40, 14, 29, 57, 99,209, 0, 72, 20, 28,194,100,212,155,244, 59,
-235,205, 90, 5,243,253,118,173, 8,162,145, 69, 34, 43, 98,123,193,171,230, 45, 58, 57, 15,135,140, 53, 78,240,145, 83,134,137,
-128, 8, 0,146,163,162,112,170, 37,104, 19, 99, 20,144,150, 6, 2, 4,239,169,171,158, 8, 54, 85,186, 0,223, 84,118, 80,136,
- 17,142,103,203,245,166, 30, 13, 58,221,210, 59, 71,166,136, 69,142, 44,146,198, 57, 0, 32,115,123,156,187, 6,156, 32,223, 84,
-144, 45, 24, 9,128,102,230, 27,209,125,233,229, 23,146, 83,223,238,210,148,173, 28, 0,237,242,132,130,119, 20, 66, 56,154,173,
- 34, 75,134, 87, 6,251, 5, 1,166,163,238,254,164,111,216,134, 69, 52, 49,124,146, 9,188,214,103,203,109,107, 19, 86,201,174,
-228,156, 74,249, 78, 6,108, 23,207, 31,139,112,123,143,155,141, 67,152, 61,108, 10,160,138, 33,114, 19, 34, 0, 18,161,154,217,
-197,240,117,118,232,192,118,155, 38, 45,163,160,182,123,140,152, 87,168, 83,245, 33, 77, 30, 33,247,185,231,159,177, 87,202, 38,
-184, 36, 57, 36,187, 1, 32,253,151, 67, 0,176,112,116,182, 88, 47, 54,141, 42, 60,118,193,159,234,176, 87,236, 79,250,105, 12,
- 78,215,143, 51, 39,202,207, 8,245,237,209,226,150, 11,212,148, 70,146,229,207,124, 7, 68,234,169, 9, 28,199,196,232,216,237,
-248,198,246,184,124, 61, 78,126, 79,182,210, 39,117, 19,171, 38, 42,128, 67, 32,135,137, 24, 58,199,111,152,216,151,210, 37, 25,
- 54, 48,211,221,237,182,121,187,193,135,255, 47,141, 49,219,167,190,145,191,220, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/mix.png.c b/source/blender/editors/datafiles/mix.png.c
deleted file mode 100644
index 6acd3139421..00000000000
--- a/source/blender/editors/datafiles/mix.png.c
+++ /dev/null
@@ -1,336 +0,0 @@
-/** \file blender/editors/datafiles/mix.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <mix_png> */
-
-int datatoc_mix_png_size= 10448;
-char datatoc_mix_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82,
- 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97,
- 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0,
- 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 21, 0, 4, 17,164, 74, 11,162, 0, 0, 32, 0, 73,
- 68, 65, 84,120,218,237,124,105,172,101,217, 85,222,247,173,189,207, 29,222,123, 53, 87, 87, 15, 30,218, 61,216,216,110, 48,238,
-182,219, 3,225, 71, 20, 12,145, 76, 44,134,200, 72, 64, 20, 35,230, 72,193,120, 0, 60, 38,138, 66, 36,147,160, 72,196, 16,130,
- 4, 4, 18, 18, 36, 32, 36,225, 87, 80,136, 98, 32, 38, 10, 49,134, 4,240,220,109, 99,211,110,186,170,171,186,170,222,112,135,
-115,246, 94, 95,126,236,189,207,189,175,170,220,182,131,137,130,228,251, 94,189, 87,239,190,251,206,221,103,237,181,215,240,173,
-111, 45,224,243,125,220,113,231,157,247,220,115,239,205,207, 19,192, 91,222,250,246,156, 19, 1, 51,163, 89,140,177,139, 49,118,
-221, 59,222,254,182,242,162,240,250,239,127,195, 48,244, 57, 39,119,207,238,238,185, 11,171,105, 92,238, 76, 15,190,247,111, 63,
-231,183,255,199,213,195,195,131,240,224, 67, 15,122,206,158, 93,144, 92,247, 63,227, 35,183,157,190,124,254,204,193,201,221,125,
-135,223,251, 37,175,126,239,123,255,123,188,114,109,249,199,143, 44, 14,150,153,180, 87, 61,120,185, 31, 66, 8, 33, 78, 28,176,
-156,242,114,153,222,241,142,119,134,171,233,217,235, 33, 75,146,171,243, 79,126,250,137,229,169,147,147,105,103,202,254,248,149,
-243, 71,203,185,164,176,123,246,126, 2, 16, 32,157,219,189, 60, 12,254,248,197,149, 52, 89,246,119, 92,217, 63, 35,136, 66,132,
-220, 37,146, 0,115, 22, 13, 87,158, 58,245,129, 79,159,189,235,188, 30,124,254, 48,153, 8, 66,216, 61,125, 31, 41, 64, 0, 78,
-237,236, 63,113,237,194,245,197, 41,144,135, 71,249,145,199,150, 41,227,252,233,142,183,221,251, 85, 68,128,129, 34, 72,208, 72,
- 16,129, 33,144, 70, 26, 44, 70,185,196,140, 76, 51, 66, 6,100,192, 0,135, 0, 64,100,128,127, 78,219, 21,198,255,205,231, 59,
-207,122,214,179,204,184, 92, 46,111,220,187,135, 30,122,232,171, 94,245,213,146,140,164, 89, 8,161,108,220,175,255,250,127,250,
-157,247,190,183,190,232,245,175,255,126, 65, 4,205,140,198, 73,167,157,153,230, 83,157, 62,181, 58,119,122,241, 55,191,245, 23,
- 0,132, 7, 31,124,200,179,187, 92,210,185,189,139,207,188,237, 79,207,157,190,126,246,228,193,116,178, 48,173,191,236, 37,127,
-235, 61,239,249,175,252,171,127,253, 91, 31,121,108, 69,114,218,241,219, 95,115,101,111, 55,206,231,113, 62,239, 32, 29, 46,247,
- 62,125,249,254,233,108, 22,214,241, 30, 0,238,218,155, 94,189,252,228, 19,171,117, 62,125,106, 98,202,253, 16, 30,253,244,115,
-228,112, 41, 58,220,220, 1, 11, 88,231,148, 63,241,167,139,229, 74,119, 63,251, 25,171,225, 46, 87, 14, 17, 2,194,238,217,251,
- 41, 0,152,118,171, 89, 60,202, 57,126,240,177,187,254,248,209,217,201,189,233,116,194, 34,210,176,123,246, 94, 64, 2, 8,157,
-156, 31, 60,250,228, 61,201, 99,118, 61,246, 68,255,216,165,245,237,103, 39, 93, 71,222,118,207,171,104, 6, 26, 1, 1, 70,131,
- 17, 12, 68,160,133, 96, 1, 22,163,195, 77,162, 32, 0, 70,185, 19,164, 25,144, 9, 8, 52, 57,190, 80, 15,110,255,240,134, 55,
-190,105,119,103,183,108, 82,249,160,209,104, 22,140,100,176,240,238,119,255,216,197,139, 23,111,125,161, 31,248,193, 31,202,158,
- 33,192, 85, 46, 75, 20,229, 52, 26, 1, 90,128, 89, 32, 25, 66, 48, 90,249,114,230,196,242,239,126,255, 63,218,190, 80, 92, 44,
- 22, 64,185,123, 0,224,214, 3,196,233,189,131, 51, 39,247,247,118,250, 73,244, 24, 24,140, 22,104,128, 66,252,247,191,240,218,
- 15,253,233,151,255,252,207,255,235,143,125,244,163, 0,226,208,247, 0, 92, 90,247, 58, 88, 36, 23,119,231,225,244, 94, 60,185,
-123,116,231,185,139, 33,184,133,144,179,101, 51, 6, 35,233, 78, 8,204, 67,207,176, 90,246,223,242, 45,223, 26, 66,248,251,127,
-239,157,124,206,139,190, 49,187,114, 46, 55, 69, 0, 48,238,116,139,103,159,127,226,228,142,223,253,172,221, 59, 46,204,230,179,
- 56,153, 88, 23, 67, 57,134,230,158,101,159,186,116,247, 98,125, 34,152,153, 89,232, 98,152,159,122,174,187, 87, 61,145,131,144,
-251,222,116,127, 62, 57, 24,214,126,233,169,245,227, 79,172,174,237, 15,202,110,148, 59, 14,143, 38, 79, 94, 59,253,248,147,183,
- 45,215, 83,185,202,195, 93, 81,200,144,224, 38, 74, 52,120,146, 8, 36,101, 79,128, 1, 71, 71, 58, 60,194, 35,159, 34,195,236,
-228,169,179, 23,206,158,156, 77, 67, 23,141,150,140, 86, 78,160,185, 71,121,130, 12,150, 37, 74, 9, 52,201,251, 62, 12, 51, 4,
-122,202,241,201,195,219,142,250, 19,174, 72, 35, 47,173,201,203,243, 89,124,246, 29,179,187,239,156, 79,187, 16, 99,185,154,243,
-182,251,190, 26, 32, 65,149,111, 52, 0,134,124,215,233, 63,219, 95,157, 60, 88,159, 4, 40,210, 64,193,104, 6,129, 36, 45, 20,
-129,146,182,183, 19,207,158,158,242,220, 61,127,141, 32, 89,159,133,128,242, 98, 52,173,106,191, 3,141, 34,204,138, 89, 37,141,
-132, 96,102, 70, 90,148,188,104, 50,104,168,194,166, 81,197, 86, 67,148,209, 4, 88, 49,140, 6,101,192, 8, 19, 28, 34, 41, 57,
-100,194,255,119, 15,222,242,217, 51,103,206,156, 62,125, 6,192,122,189,186,118,237,218, 98,177,248, 60, 46,116,255,115,159,251,
-218,215,126, 83,147,108, 19, 62,205,130,153, 89, 8,225,218,181,235, 63,250, 79,126,228,233, 46,244,214,183,189,221,179, 75, 42,
-103,151, 0,205,202,198,208,234, 35,148,139, 89,136, 93,124,203, 15,253,224, 45, 46,244,166, 55,255, 0, 84, 62,202, 46,177,108,
- 44,203, 78, 50,208, 16,130,145, 22,172, 24, 18, 59,185,179,126,244, 19,159,254,241,159,248,185, 99,102, 36,165, 36,149,205,211,
-104, 70,196,182, 34,106, 98,222, 89,142, 17, 49, 98, 18,125,111,190, 62,123,234,224,217,119,216,139,191,244, 7,191,227,123,127,
-244,216,133,160,141, 22,148,197,144, 78, 48, 4, 63,181,123,120,246,212,254,238,188,159, 4, 15, 49, 4, 2, 70, 71, 12, 25,158,
- 23,239,250,145,119,189,237,173, 53,120, 49,207,217,199,135, 92, 46,185,228, 30,108,117,238,196,165,243,167,255,108, 26, 14,161,
-236,180, 12,203, 52,135,201, 61,185,231, 60,228,212,191,235, 93,255,184, 94, 40,231,156, 61, 47, 87,195, 19,151,151,159,190,184,
-186,114,109,181, 90,167,192,229,222,236,218,222,206, 85,165, 52,200,146,211, 93, 40,219,145,165,156, 83,210, 48,160,239,213, 15,
-253,247,189,254,245, 0,226,181,195,254, 99,159, 90, 93,185, 54, 84, 9,129, 93,212,179, 47, 44, 95,120,207, 98,103,198,233,212,
-186,156,221,224,110, 46,149,136,129,242,101, 63, 91,174,163,123, 70,210,249,115,231, 9,134,133,221,123,176, 72, 94,196, 36,151,
- 20,217,155,174,175,151,251,215,174,173,204,108,103, 22,204,202,209,149, 11,244,156,179, 93,190,126,102,127,185,151,115, 13, 50,
-190,250,107,190, 38,204,207, 60, 15,190,189,107,152,134,213,172, 91,116, 92,244,189,239, 31,165,126,240,221,157, 24, 2, 41,135,
-231, 62,199, 43,215, 79, 95, 63, 58,217, 15, 93, 61,217,164,164,112,226,220,151,128,155, 11, 1,152,196,213, 78,183,236,226, 0,
-169, 79, 90,173,125,221,251,238,204, 98,228,114, 61,187,122,112,242,250,209, 94, 63, 76,132,234,210,139,149,142,174, 76,144, 16,
- 68,152, 92,164, 28,112,201, 93, 32,252,104,145, 62,253,196,210, 24,206,158,157,155,237, 45,251,221,236, 17,144, 89, 22, 85,245,
- 24, 41,156, 56,251, 92,108,121, 16, 10,211,174,159,196, 85,199,129, 53,236,227, 48,132,199, 46, 77,175,236,159,115,156, 18, 66,
-121,177,218,137, 44,231, 44,236,158,187, 95, 82,253,149, 8, 83,180,126, 22,251, 24, 7, 9, 2, 83,238,174, 28,157,125,242,224,
-252,149,125, 28, 45,243,124,106, 49, 20,197, 7,196,241,224,135,221, 51,247,209,136,205,170, 20, 45,117,113,232,226, 0, 32,229,
-238,210,193,249,131,213,169, 34,215,229,202,159,188, 62,244,131,119,209, 98,108,127,199,178,162,179,247,169, 46,116,244,218,222,
-197, 97, 26,251,236,118,241,224,194,178,223, 3,192,178,108, 48,101,191,190,159, 47, 94, 75,215, 14, 82,159, 52,155, 88, 12, 4,
-201, 11,247,126, 13, 40,192,208,238, 24,212,201,217,225,206,100,113,180,222, 59,236, 79, 66,213,179,176, 28, 69, 51, 0,132, 21,
- 59, 17, 66,216,219,137,103, 79, 77,120,219,189,175,170, 49, 12,172,132, 51, 37,228,106, 95, 73, 90,177, 3,245, 30, 70, 47, 82,
-222,219, 12, 8,102,140, 80,137,224, 65,122, 17,157,179, 90, 55, 74, 32,138,143,144, 0, 67, 85, 62, 17,148, 76,197, 31,193,228,
-128, 9, 46, 8,148,170, 89, 18, 5,186, 32,119, 66, 18, 33,151, 3,146, 28,146, 67,160, 3,160, 67,213, 92,136,130, 73,128,228,
-114, 65,144,187, 67,240,162,235,148,151, 55,104,203,104,139,247,154,160, 20, 65, 16,109, 13, 95,124,124,254,126,118,124,220,123,
-239,125, 47,124,225, 11,239,185,239,190,179,103,206,108,158, 85, 61, 5, 44,193,115,253,102,215,174, 93,251,232, 71, 63,242, 71,
-127,244,135,143, 62,250,232, 23,102, 65,123,123,123,175,125,237, 55,221,121,231, 93,238, 69, 21,208,172, 29,199, 72, 9, 45,186,
-226, 13,145, 52,155, 27, 43,206,153, 6, 34,118,221,191,251,229, 95,254,189,223,123,223,231,174, 28,124,205,107, 94,243,194, 23,
- 62,224,174,230,106,170,221,188, 97,201,228, 38,108,227, 24,215,223,184,164,146,112,108,150,213, 22,106,102,236,194,193, 79,252,
-243,159,251,147, 79, 62,254, 89, 22,244,134, 55,190, 25,101, 33, 55, 45,165,189, 47,182, 62,142,173,166,216,217,104, 78, 99, 12,
-110, 6, 51, 24, 97, 37,200, 52,196, 32, 18,243,105,111,198,147,123,135, 49, 64,138,180,248,186,239,254,217,229,178,191,229,130,
- 98, 78, 67, 91,196, 38,169,217, 90, 13,117,108, 65,219,155,167,157,217,202,168,189,249,194, 76,147, 46,197, 14, 70, 5,194, 2,
- 73,148, 80,198, 12, 93,200, 70, 11, 33,215,116, 11,246,238,127,250,119,174, 28,220,245, 51, 63,253,211,143, 60,242,200,141, 11,
- 74, 57,227,150, 27, 92,178, 75, 54,103, 67,140,214,209, 44,207,186,117, 48, 63, 49, 63, 52,211,206,116,101,134,174,243, 16, 16,
- 72, 11,168,219, 5,210,138,194,129, 96,118,210, 25, 32,144,158,251, 97, 88,189,238,219, 94, 23,227,228,167,254,197, 79,126,242,
-147,159,220,150, 80,218, 58, 61,117,105, 41,109,140,117, 12, 6, 34, 26, 45,144,144,153,119, 97, 56, 49,187,110,230, 59,179,165,
- 81,102, 8,148,220, 4,122, 48,137,193,204, 65, 3, 80, 80,143, 12, 64, 52, 0, 74, 0,137,156, 83, 78, 9, 12,242,254, 59,191,
-235,187, 39,221,228, 45,111,169,241,104,120,209,151, 63,232,174, 33,121,159,188,239,253,104,237,203,101,190,186, 63, 28, 44,210,
-254, 97, 58, 88,228,117,239,203,149,123,246,148,100, 92,205,186,163, 46, 30,157,216,219,239, 98, 31,152, 5,119, 81, 32,104, 98,
-201,130,141, 84,217,235,226, 59,106, 62,227, 89, 82, 82, 72,137,135,203,221,195,229, 94, 61, 71, 82,246,252,170,175,250,234,199,
- 31,127,252,242,229,203,241,218,254, 32,232,242,181,180,127,152, 86,131, 31, 46,114, 81,215, 18, 35,169, 96, 65, 80, 8, 10, 1,
-207, 60,183,188,251,142,163,221, 57,231, 83, 24,109, 58,165, 25,131,213,236, 49, 4, 3, 76,202, 17,230,202, 36,139,227, 42,194,
- 47,233,209, 98, 53, 73, 41,174,214, 33,231, 92,143,164,220,221,100,250,230,111,254,150,223,250,173,247,240,206, 23,124, 93, 5,
-146,198,240, 65, 80,251,185,124,149, 48,237,214,209,242,222,236,224,212,252,192, 76,179, 14, 93,199,103,222,181, 27, 3,110, 63,
- 63,139, 93,136,129, 49, 50, 24, 67,176, 34,165,226,208, 73, 24, 92, 64, 86,128,248,228,213, 11,139,126,158,114,151,189,179,230,
-184,173,154, 46,210,172,184,105,128, 13,124,144,111, 14,119, 85, 41, 2,136,214, 79,194,208,217, 96, 76,112,172,214,234,123,126,
-232, 99,251, 22,120,241,201, 85, 8,118,247, 51,119,119,118,194,108, 18, 38, 19, 55,179, 0, 89,139, 69, 6,239, 8, 92,217, 63,
- 55,228,184, 90,239, 38,239, 8,144, 46,170, 37, 23,164, 84,190, 70, 20,144, 70,172, 9,177, 32,243, 49,182, 52, 87, 11,196, 50,
-153,164,228, 46,146,144, 92,146,153,178, 46, 61, 53,144,188,182,159,204,248,172, 59,166,183,157,155, 76, 39,182,187, 27,165,110,
-177,218, 1,194,213,195,211, 66, 72,169, 43,154, 69,203, 98,205,152,140, 53,216,102, 1,229,164,216,162, 14,128,144,156, 36, 68,
-192, 89, 66, 17, 18,240, 98, 55, 85,130, 86, 23,168,146,201,149, 80, 87,116, 64,171,149, 25,245,193,143,195, 31,245,201,100,111,
-119,239,124,215,197,243,167, 79,150,157,168, 33, 33, 69, 56, 85,236,129, 12,230,150,139,173, 43,191, 52, 42,186, 68,169,186, 6,
- 1,112,128, 16, 69, 8, 78,144, 34, 36,207, 18,228, 1, 89,160, 64,194, 93, 70, 58,148, 97,160, 29,172, 78,102,239, 22,253,238,
-122,152,129, 36,115, 23,253,220,169,253, 46,240,238,103,204, 99,224,238, 44, 6, 43,167,196,200, 12, 26,144,235,169, 49, 50,139,
-164,140,145, 18, 40, 72,245,141, 92, 13,116, 80, 1,120, 75, 52,229,110, 3, 67,231,161,168,154,193, 5, 14,153, 66,120,106,113,
- 70, 10,139, 97, 39,123, 36,172, 94, 77,214, 15,186,120,101, 13,242,169,131,193,200, 59,206, 77,187,142,231, 79, 79,230,179, 16,
-204,186, 40,167, 17, 25, 32,115,129, 49, 72,183, 40,100,169,136,199,139,183,146, 28,101,113, 2,233, 69,177,178, 27, 16,115, 54,
-119,150, 45,115, 15, 87,142,206, 0,225,168,223,145,204, 21,200, 34, 96,147, 64,102,193,220, 69,226,104,233, 0, 87,189,211,240,
-248,147,125,140,220,153,197, 19, 59, 97, 54, 9,231, 78,119,193, 56,157, 4, 54, 64, 39,150,248,181,236, 82, 13,229, 75,240,105,
-213,189, 73,164,144,114,200,206, 73, 8, 41,133, 44, 27,242,196, 21,143,214,187, 18,179,135,102,149, 93, 52,168, 68,211, 38, 57,
- 1,201, 60,187,140,222,131,192, 48, 12, 36, 15, 14,211,229,104, 49,240, 83,151, 66, 32,231,211, 96,102,123,243, 96,193, 10,206,
- 45,130,116,146, 14,167, 72,149,111,160, 92, 69, 72, 89,132,108, 57, 76, 93,112,217,144, 39,146,165, 20, 96,205, 82, 73, 50,177,
-198,201, 38,247,166,201, 94, 98,119, 20,107,228, 70,121,206,134,222, 1,226, 40, 27,208,117,129,228,108, 26,130, 89, 4,156,168,
- 57,174, 68,194, 41, 35, 11,164,132,150, 46,212, 24,113, 61, 76, 87,195,180, 26,136,146, 18,170,109, 82, 61,136,148,201, 32, 10,
-197, 54,155,156,102,146, 80, 50, 33, 21, 37, 85,205,189, 28,110,232,251, 76,179,126, 16,192,216,244, 89,108,169,164,224, 45, 70,
- 5,139,198,147, 64, 53, 72, 0,156,205, 54,149,173, 46,231, 66,178,150,181,120,189, 73, 17,230, 53,235, 48, 2,238, 78, 99, 67,
-216, 12, 42,183, 84, 20, 87, 4,100,136, 40,176,156, 81,112,193,232, 62,102,183,128,188,130,136,213,152, 2, 28,157, 75,211,123,
- 64, 5,202,179,242, 70, 5, 25, 66,133,173, 75,174, 6,213, 43, 21,219, 86, 96,192, 98, 97, 13,146,224,132,201, 74,154, 86, 12,
-145, 11, 82, 77,160,138,203, 40, 66,174,113,155,224,114,161, 96, 54, 66,173,210, 20,213,129, 92, 4,228,144,138, 21, 45,191,164,
-224,114, 16,240, 17, 84, 0,224,242, 22,158,214,120, 71,117,143,116,139, 8,241,139,143, 47, 62,190,208,153,235, 38,246,238,226,
-206,124,103, 50,153,204,102,243,174,235, 80, 67,239, 97,181, 90,175,215,171,163,163,163, 92,170, 30,127,161, 11,234,186,238,197,
- 47,126,240,249, 47,120,193,221,207,190, 59,196, 86,113, 20, 97,245,156,213, 20,144, 52, 51, 73, 31,255,248,199, 63,244,193, 15,
-188,255,253,239,239,251,254, 11,188,160,175,253, 27,175,121,224,129, 7,186,216,105, 68, 32,183, 33,187,227,153,227,152,225, 3,
- 8, 33,208,216,247,253, 31,252,254,239,255,218,175,253,199, 63,215,130, 98,140, 15, 60,240,192,171, 95,253,181, 26, 99, 87,141,
- 48,230, 38,165,223,206,240,143,103,246,199, 83,123,210,204,246,247,247,223,253,207,126,236,232,232,232,243, 91,208,217,179,103,
- 95,253,234, 87,223,117,215, 51, 11,102,180, 21, 77,111,189,104, 59,232,223,250,250, 25,215, 84,162, 83, 32,196,112,233,226,197,
-127,245,243, 63,255,212, 83, 79,125, 78, 11,250,190,239,251,190,249,124,183,153,207, 27, 51,252, 77, 38,191, 73,162,183,165,212,
-208,190,146,168, 98, 27, 96,216,222, 76, 78, 58,125,226,209, 63,254,201,159,250,197,207,186, 32,155, 76,103, 41, 37,119, 79,158,
-182,144,253,250,233,238, 94,234,117,174, 92,202,119,229,153, 92,126,108, 47,203,229,167,242, 31,151,123, 46,149, 2,101,207,217,
-115,206, 57,189,224, 5,247,252,228, 79,252,131,189,189,221,207, 82,173,127,249,203, 95, 33,185,171,120,171, 27, 31,117,239,198,
-170,200, 22,102,211, 66, 8,183,144,141, 30,227, 16, 67,234,186, 33,134, 97, 18,215, 93, 28,102,221,106,210,173,118,231, 71, 39,
-119, 14, 78,238, 92, 63,115,226,169,221,217,193,215,189,230,197, 93,236,254,232, 3,143,125,198, 5,189,236,229, 47, 63,254,198,
- 91,159,210, 77,231, 80,199,112,180,154, 49, 56, 9,179, 12,194, 76, 70,152, 57,161, 96,217,204, 99, 76, 49, 12, 93, 55,204, 39,
-139,192,193,130,158,255,188, 59,238,120,230, 43,127,247,119,223,247,153,116,232,245,218,188,193,141, 26,191,125,186, 55,167, 30,
- 0, 48,157,172, 39, 33,119, 93,154, 79,215, 33,104, 50, 73, 70, 6,202, 72, 11, 26,245, 40,154,155,101, 51,198, 78, 36,193,160,
-220,125,226,137,251,215,131,189,243, 29,239,188,133, 14,213,154,208,118,109,232,248,163,128,191,245, 85,227,147,242,128,100,214,
-119,113, 53,155, 46,166,147,229,206,244,112, 62, 61,218,153, 29,237,204, 15,119,102,139,157,217, 98, 62, 57,154, 79, 14,167,113,
-217,133, 62, 90, 95,254,144,185,135,134,236,153,196, 63,252,225, 31,190,197,130, 84, 11, 83, 79,251, 40,117,190,250, 42,159,116,
-203,249,228,104, 54, 59,220,153, 31,205,186, 69, 96, 31,217,171, 69,205, 46,184,168, 2,137,128, 78,184,152, 81, 48,110,151,234,
- 13, 74,110,102,111,125,219,219,111, 90,208,103, 90,207, 88, 40,148,198,175, 16, 92,154, 77,150,243,233,209,206,236,112,119,186,
- 63,157, 44,163,245,198, 4,247, 18,143,137, 38,208, 91, 46, 42,152, 72,119,182,251,114,120,150,202, 97,212,137,189, 19,223,241,
-157,223,117,108, 65,219,187,147,115, 78,158,215,125, 94,173,243,106,157,150,171,180, 90,231,126,240, 52,212,189, 34,134,192, 20,
-216, 71, 91, 83,185, 44,211,125, 11, 46,117,109,171,255,184,211, 37,132,117, 71,114,102,201,179,138,142,100,207,247, 60,231,158,
-151,190,244,225,141,195,216,178,201, 26,146, 4, 28, 45,138, 69,130,196, 24, 48,157,134,104,220,219, 1,160,217,100,105,212,206,
-244,112, 50, 25,106,150, 36,203, 52, 9,146, 65, 12,101,107, 24, 74, 74, 48, 70,231,146,148, 51,192, 4,147, 91,114,100,135,209,
- 13,112,195, 55,124,227, 55,126,240,131, 31, 40, 85,103, 75,217, 83,246,101,159,151, 43, 63, 90,229,197, 50, 47,251,188, 90,249,
-106,237,171,181, 47,123, 95,174,124,177,202, 71,203,124,180,204,253, 48, 12,169, 47,183,167,102, 51, 93,173,150, 81,183,150, 5,
- 99,118,194, 1, 7, 50, 42, 78,145, 69, 79,150,171, 46, 85, 83, 42,247,148,210, 27,223,244,230, 42,161,195,101, 74, 73,159,124,
- 98,237,142,107,251, 67,242, 45,239,213,252,134, 81, 49,176, 11,254,208,243,174, 78,162,246,102,128,208,117, 38, 24,137, 8, 7,
- 36,154, 75,116,146, 82,137,233, 29, 5,247,105,190,209, 61,115,209, 79,220,163,151, 83, 98, 94, 42,185,193,108, 58,157, 62,252,
-240,203,222,247,190,255,105,195,224, 67,242,156,149,115,206,170,229, 29,185,148,219,249,246,246, 91,247,148,220, 61,167,156, 83,
- 82, 74,197, 24, 40, 11,197, 97,200,229,142,209,235,100, 87,202,202,142,236,202, 94,148, 94, 57, 89,206,165,104,233, 85,202, 94,
-137, 86, 95,255, 13,223, 64, 50,172,226,125, 23,159,234,143,150,121,185,118,247,141,247,172,217, 83,171,129, 77,226, 58, 96, 8,
-186,122,116,180,190,122,109,117,233,242,106, 61,104,221,123,118,116, 93, 45,164,181, 42, 83,169,191,214, 20,155,114, 22,207,228,
- 54,164,238,210,181,243,139,245,124, 72, 93,139,174,216, 16,104,200,117,242,212,201,184, 30,242,166,196, 88, 42,111,238,205, 62,
-171,228,136,168, 69, 50, 79, 57,187,107,221,231,100, 24,134,156,146,229, 84,111,195,114, 67,224,224, 86,210, 63, 2,144, 17, 4,
- 50,160, 34,170, 76,137, 21,162,115,128, 14,163, 90,186,248,240,195, 47,139, 80,115, 26, 68, 99,185,148,178, 95,205,110, 1, 26,
- 53,177,158,144, 33, 7,203, 57,195, 51, 46, 94, 94, 63,117,173,223,153,197,147, 39,250,249, 60,220,121,219, 60, 4,159, 77, 3,
- 98, 48, 31,188,129,158, 9,209, 97,125,223, 29, 46,247,146,199,229,122, 82, 36, 34,186,209, 36,208, 33, 83,112,119, 90,206, 57,
-150,130,158, 54,160, 94,193, 95, 11, 2,234,168,199, 71, 69,107, 11, 16,169,236, 50,246,107,239, 7, 74, 41, 4, 72, 26,178,187,
- 56,233,132,156, 1, 88,144, 50, 72,184,220,193,148,185,234, 39,238,150,115,133, 20,107,170, 95, 33,108,184, 25,225,116,198,154,
-246,194, 75,165,185,194, 8,242,173, 48,218, 1, 39, 51, 75,170, 95,202,216,165,132,234,234, 7,238, 31,164,213, 90,174,163, 73,
-103,207,184, 99, 22, 3,231,179, 16, 81, 32,155,176, 30,166,125,154,164,212,173,250, 73, 77,178,155,228, 71, 11, 74,147,220, 65,
-138,140,133,140,198, 38,162,130,100,120,181,104,162, 55,128,129, 78,122,171, 27, 9, 86,137, 4, 67,242,148,185,234,125,221,251,
-116, 26,206,158,138, 93,180,105,164, 19,253, 96, 57,199,197,122,186,236,119, 92, 33,229,104, 44, 55, 4,211, 6, 82, 47, 4,180,
-122,189,130,194, 22, 84,161,112, 10,132, 98, 75,202,202,229,165, 20,173,237, 98,158, 64,121,173,246, 87, 64,210,141, 41, 59,122,
- 92,188,156, 66,176,163,213, 78,140, 70,155,145, 93,159,186,156, 75, 85, 89, 94,188,109,129,192,188,214, 29, 10,154, 91, 10, 54,
-238, 30, 11, 76, 1, 65,116, 21, 30, 66,209,158,106,251, 55,241, 90, 5,167,168,230, 17, 28, 24,143,160, 82,143, 60,248, 71,254,
- 36, 25,237,196,169,157, 16,186,115,167, 79,204,166,147, 77, 64, 78,149,250,243, 77,123, 54, 38, 56,146, 20,139,153,169,199,190,
-162, 75, 5, 14, 2, 42, 48, 92,180,189,201, 71,104, 0, 90,193,207,139,150,209, 21, 33,246,169, 3,205,150, 10,193, 39,147,156,
-114,234,162,197, 96,133, 69, 84,240, 41, 59,190, 14,107,118, 8,238, 2, 98, 21, 23, 36, 86,158, 70,133,168,225, 37,165,168, 0,
-142,128, 2,154,151,141,109,124, 8, 1, 73,116,239, 14, 86, 39,165,112,125,117, 10, 48, 92, 37,168,179, 39, 87,147,174,191,237,
-236,228,220,201, 46, 70,155,207, 10, 62,199,138,136, 53,227, 82,149,217,140, 0,220, 99,149,190, 10,240,198, 17,202, 43, 2,243,
- 81,161, 84, 86, 39, 81,213, 63,145, 89, 20, 41,183,228,204, 50,119,186,170, 38, 18, 74,174,144,125, 24,188, 79, 46, 33, 6,144,
-140,193,170, 92,138, 16, 42, 98,200,145,160, 21,161,170,104,149,226, 81,127, 93,204,116, 93,152,128,228, 52,154,139, 16,172,240,
-235, 68,193,150,253,252,104,125, 34,123, 88, 12,187,197, 9,180, 67,203,235, 7,137,196,245,163,252,216,165,245,124, 22,110, 59,
-221,117,209,110, 63, 55, 53, 98,210, 1,110, 77, 72,155,218, 42,221,227, 86,108, 95,144, 55, 67, 65,232,170,171,241,138,181, 54,
-100,113, 68,103,139, 61, 85,102,150,121, 65, 3,205, 36,145, 14,153,203, 97, 70,103,206, 62,144, 93,242,148, 68, 86,106,119,118,
- 25,179, 89, 80, 41,172, 64, 86,108, 9, 25, 27, 19, 81, 5, 52, 37,107,109, 69, 78,142,231, 14, 72, 57,144,238, 78, 90, 48,102,
-128, 7,203,189, 85,154,165,220,173,210,172, 80, 89,224,213, 41,213,106,138, 92,176,148,145, 61,245,131, 29,173,114,160, 93,188,
-210,155,241,236,169, 46,154,221,118,102, 50,153, 88, 23, 25, 35, 28,102, 16,164, 88, 85,168,170,136,163,217, 35,178,248, 62, 21,
-231, 93,105, 70,117,233, 0,149,101, 41,135,193,131,187,181, 99,209, 54,191, 48, 79,172, 98, 5, 2,233,222,187, 49,100, 80,193,
-108,119, 30, 82, 80,118,247, 12,133, 80,162, 37,193, 92,138, 40,133, 4,182,111, 0,170,139,169,134,200, 65, 56,134, 28,141,158,
-178, 73, 88,167,153, 20, 22,235,121,159,167,238,166, 90,221,104,254,164,149, 69,189, 65,197, 16,156, 52,185,178,173,122, 55,232,
-226,149,158,196,213,253,193,130,205, 38, 33, 6, 78,187, 48,155, 6,154,197, 86,205,116, 86,147, 83,189,107, 81,206,106,143, 11,
-242, 43,115, 25, 93, 67,154,100,183,148, 99,206,177,189,128,213,243, 56, 96, 94,206, 51,137, 98, 82, 72,208,229, 70,131,123,162,
-155,134, 37, 72, 44,150, 46, 98, 54, 13,209, 56,159,197,221,185, 72,198,177,140, 89,149,165, 90,151,102,142,189,216, 2,184, 83,
-134,195,213, 46,168,148, 59,201, 82, 14,181,184, 86,140, 47,218, 9,118,192,188, 86,186,204, 26,180, 67,186,188,152,186, 6,194,
- 59, 72, 33, 37,201,224,235,156, 29,160,197, 13, 52, 62, 86,163,189, 29, 41, 86,133,168,197, 25,231,254,250, 4,183, 72,221,133,
-148,171,209, 49,176,226,246,197,106,168,254,178, 86,223, 4,171,133,213, 77,141, 89,213, 61,211,144,124,185, 20, 73, 43, 25,103,
-117, 95,165,150, 51, 70,176, 37, 89,229, 88,218, 40, 97,137,168,182, 17, 37,244, 43, 5, 32,182,164,191,208,240,203,113, 30, 17,
-255, 34, 21,170, 58, 52,140,129, 67, 35, 41, 87,210,149, 12, 35, 83,159, 94,234, 29,149, 29, 79,199,198, 34,184,151,124,176,154,
-203, 18,112, 22,105, 56, 10, 11,185, 97, 52,181,242,130,102,192,234,134,169,150,147, 37,170,149, 85,219,175, 11,189,140, 37,174,
-169, 41,139, 70, 89, 11,222,206, 54, 4,120,121, 99,142, 65,183,220, 91, 16, 2,247,234,120,107,145,180, 6, 50, 99,225,157, 77,
- 28,213, 75, 52, 69,171,213,229,234,138,138,139,171,154,108,172, 2, 40,133, 54,212,171,123,235, 84,169, 73,132, 23, 12,161, 45,
- 14,205,190,160,114, 69, 75, 49,178,210, 79,203, 31,171,218,123,169,241,245,188,226, 77,197, 27,214,240,177, 4,197,245, 26, 78,
-183, 22,194,202,155,131, 83, 35,253, 85, 90,222, 70,131,209, 10, 79, 69, 70,172, 12,189, 74, 91,244, 42,132, 81, 70, 69,192,133,
- 55,216,208,173,194,209, 29,129, 12,214,165,121, 75, 82, 74, 45, 16,170,226, 45,193,128,143,139, 80,125, 87, 73,112,140,133,167,
-170,192,226,104,138, 27, 49,214, 27, 33,102, 12,156,202, 95,169,226,187,181,188,214,194,205,234, 1, 80,173, 1, 8, 90, 17,122,
- 61, 19, 42, 22, 7, 35,252, 82,249,145, 37,221, 3,106, 15, 86,219,167,234,106,170,100, 75, 92, 53,146, 20,197,186,113, 45,149,
- 86,181, 64, 45,204, 35,116, 3,116,255,197,130,217, 23, 31, 95,124,124,241,241,151,165,222,250,116,151, 32,247, 78,156, 56,121,
-226,196,238,238,222,169,211,167,206,158, 57,123,234,244,233, 83, 39, 79,238,236,238,237,238,206, 39,147,105,169, 81,109,149,221,
-182, 88,155, 66, 74,105,185, 92,236, 31,236, 31, 28, 28, 94,186,116,241,240,224,240,250,254,245,131,253,253,107,215,174, 29, 28,
- 28,252,229, 19,208,206,206,206,253,207,125,222, 51,158,241,140,219, 47, 92, 56,117,234,244,206,238, 78,140, 17,194, 45, 13,254,
-241, 74,205,177,106,206,177,255,140,228,214,155,248,208, 41,165,197,209,226,250,254,245,199, 31,255,244, 71, 63,242,145,143,125,
-244,163,233, 11, 84,249,254,130, 9,232,194,133, 11, 15, 62,244,208,151,126,233,139,166,211,137,180,137, 42, 62,251,117,107, 72,
-135, 45, 92,170,254,200, 18, 85, 87,132,166,118,203,141,197,210,237,130, 46, 90,163,113,137,150, 5,149,174,174, 79,125,234,147,
-191,249,158,247,124,248,195, 31,114,247,255,167, 2,218,219,219,187,253,246,219,191,236,203, 94,116,255,253,207, 45,136,142,198,
-194,240, 86, 49,241, 6, 25,241,150, 74,179, 97,177, 30, 67,156,121,188,224,254, 25,191, 30,239,154, 43,172,236,237, 34,226, 88,
-139,191,122,245,234,127,251,237,223,250,240,135, 63,124,229,202,149,191, 16, 1, 93,184,112,225,129, 7, 30,184,231,158,123, 46,
-220,126,123,206, 94, 11, 19,199,132, 34,224,233,212,134,219, 6,105,203,210,108, 63,127,204,248,224, 22,180,254, 91,146, 1, 62,
-219,147, 53,229, 44, 77,135, 0, 62,245,169, 63,249,253,247,255,238,251,223,255,191,135, 33,125, 97, 4,244,142,119,188, 99,221,
- 15, 99,237,123,131, 59,110, 97,144,159,155,156,143,223,237, 13, 79,222,226,101, 55,208, 54,158, 70,149,110,160, 46,108, 31,195,
-241,244, 21, 18,131, 66,200,179, 73, 10,193,151,203,254, 55,254,203,239,252,231,223,120,239,159, 87, 64,111,122,243, 15,140,132,
- 19,141, 4,183, 91, 72,229, 38,203,179, 77,147, 57, 46,151,173, 39,111, 86,165,227,135,176, 82, 89, 54,220, 22,219, 42, 13,141,
- 20,235,241,242,173,149, 19,220, 50,232,102, 10, 86, 91, 7,187,152,167,147, 62, 90, 65, 97, 2, 24,215,171,244, 51, 63,247, 31,
-254,240,143, 62,254,127,215,255,196,239,127,195, 27,111,212,154, 91,119,153,212, 94,179, 91, 56,249,155,180, 99,195,126,228,230,
-207,182,165,182,173, 17,102,110, 5, 38, 32, 13,178,224,102,245,165,102, 24, 5,100,108,100,107,192, 12,193,196,250, 87,232, 98,
-238, 66, 42, 6,170,235,134,221,233, 50,134, 6, 14, 89, 40,237, 30,238,147,223,252,157, 39,126,241,151,222,123,229,202, 83,159,
-151,128,162,220,159, 94, 46, 79,119,198,142, 87, 5, 56, 18,176,116, 92,168, 55, 60, 43,193, 80, 26, 23, 72, 24, 61,132, 92,142,
-137, 81, 33,248,216, 81, 64,106, 84, 25,131, 26,117, 11,164, 10,177,164, 92, 33, 90, 42, 82, 38, 24,144,160,220, 70,119,176, 80,
- 72, 11,232,250,229, 47,186,255,217,247,188,252,234,181,229,175,252,242, 47,125,236, 99, 31,251, 92, 5,148, 71,156, 99,235, 38,
-111,186,107,221, 28,224, 84, 86,108,129,174,106,183,223,198, 65, 29,139, 6,184,245, 39, 80, 48,159,198,117, 23,147,153, 8, 77,
- 38,195,108,178, 14,230,165, 4, 52,233,114,168,164,115,129,168,157,214, 91,142,190, 36,254,193,142, 69, 18,173,105, 18,128,213,
-122,159, 0,210, 42,117,222, 32,194, 7,249,176,183, 59,251,142,239,248,118,151,254,229,207,254,220, 35,143,124,118, 49,133,135,
- 95,250,240,182, 69, 86, 53, 54, 91,164,161, 45,250,237,141, 54,233,184,237, 58, 86, 91, 58,254,210, 86, 6,112, 2,100,238,226,
- 16, 44, 25, 68,122,180,212,197, 84,105, 71,112, 51,103, 3,123,140, 34,100,112,180,242,111,193,188,140,181,237,175, 33,148, 13,
- 81, 41, 84,229, 90,238, 42, 36, 95, 47, 56,139,139,203,245,236,104, 61,119, 89,129, 86, 30,122,201, 75, 94,249,202,175,184,116,
-233,210,229,203,151,159,246,136,109,164,179,109,100,110,161, 50,184,169,241,172,170, 73, 45, 18, 87,149, 33,183, 42,114,173,101,
- 38,134,180, 51, 93,116, 49, 3, 48,243,157,217,106, 18,251,130,255, 24, 21,232,213,238, 26, 27, 84,196, 74, 39, 55,202,140, 64,
-101,130,147, 69, 58,176,210,224,192,237,131,220,144,220, 90, 78, 46,253, 0,149,247,173, 44,101, 40,203,139, 97,115, 13, 54,155,
- 77, 95,247,186,111,123,252,207, 30,255,197,127,251,111, 62, 83, 12, 21, 94,242,210,151,142,244,236,173,207,155,126,218,144,138,
- 26, 25, 14,194,177,118, 33,221, 20,120,106, 68, 93, 67, 72,147, 56,152, 37, 66,102,185, 11, 67, 8,217, 44, 91,129,178, 40,142,
-138,192, 13,197,161,181,212,105,171,207,142, 99,141,133,155, 52,101,243,227,104, 22,132,109,168, 22,238,182, 92,207, 22,235,121,
-150, 81, 99, 45, 28,238,126,226,196,201,191,242,149, 95,185,183,123,226, 35, 31,249,240, 45, 52,168,204, 32,185,197,249,169, 44,
-120, 0,200,142, 62,121, 74, 85, 79,234,243, 4,193, 96,140,177,114, 22,140,156, 76, 24,171,137, 85,140,121, 18, 83,217,248,105,
-236,119,231,135, 93, 76, 69, 21, 99, 16,144,199,226, 64,118,120,107, 82, 42,149, 11, 43,237, 52, 13,247, 47,149,196, 74,104,104,
- 88,121,217,140,145,180, 56, 62,209, 26,149, 80, 73, 93, 8, 36,178, 51, 57,115, 70,206,200,149,251,233,165, 89, 43,123,118,249,
-195, 15, 63,252,178,151,189,236,199,127,252,159, 61,241,196, 19,199, 52,232,161,135, 30,186,165,223,114,201,189, 98,153,238, 90,
-247,133,162,163, 44,101, 87,114,229,210,150,221, 98,168, 50, 33, 32, 86, 98, 41, 0,197,144,163, 13,164, 27, 61,198,126,214,173,
- 99, 76,100,177, 50, 13,224,188, 41, 56,225, 88,185,220,106,176,231,118,164,196, 77,223,196,104, 50, 71,166, 74,109, 46,216, 40,
- 48, 91,131, 9,151,235,217,209,106,199, 21,182,195, 97, 29,247,186,175,120,249, 43,231, 59, 59,101,168, 78,213,160,197,178, 38,
-199,217, 85, 40, 67,101, 75, 82,210,106,237, 35,190,156, 51,142,149, 89, 71,112,154, 52,219, 68,196, 93, 68, 44,140,224,160, 51,
- 39,214,231, 78,173,186, 32, 66,179,169, 38, 33,213, 86, 14, 34,132,218,165, 95, 28, 27, 89, 59,115, 74,149,183,180,155,148, 54,
- 58, 18,161,148, 53,205, 91,204, 89, 58,150,216,132, 51, 22, 56,170,180, 27, 64, 13, 23,135, 28,221, 3, 64,151,245, 41, 20,190,
- 20,199,250, 54, 73, 41, 55,234,176, 3, 50,125,197, 43,191,226,182,243,183,253,234,175,254, 74, 1, 91, 98, 63,148, 35,198,148,
-181,127,148, 14,142,178,187, 36,172,147, 22,203,156,253,166,124,139, 26, 67, 27,110,164, 95,179,162, 64,209, 68,176, 11,160, 47,
-119, 38,171, 20,179, 1, 36,134,129, 22, 10,239, 74, 38,122,169, 80,171,138, 0, 94, 9, 38,102,168,213,199,134, 1,228,140, 16,
- 74,179, 79,171, 29,141, 81,230, 88,203,173,245, 24, 0, 42, 83,167, 68,186, 35, 37, 75, 41,208,232,110, 57,177,146, 38,197, 58,
-211,138, 26, 91, 33, 85, 34, 11,247,228,126,255,253,247,127,207,247,124,239,207,254,236,207, 92,189,122, 53,156,185,227,249,135,
- 11, 63, 92,164,195, 69, 62, 88,228,229,218,135,172,148,125, 72, 74,222,218,122, 88,251,143, 74,197,136, 99,107, 97, 61,238,141,
-237, 36, 15,230,198,108,144, 49, 77,187,117,180,101, 78,105,221,231, 33,229,148,211, 98,153,142, 22,105,177,200, 67, 86,114,245,
-131,134,193,107,127,230, 56,106, 70,219,228,169,186, 13,242, 45,190,215,232, 57,202, 84, 15,140,129, 73,125,218, 69, 7, 33, 38,
- 15,203,245,108,213,207,134,220, 13, 67, 92, 13,211, 97,232, 54,149, 33,220,200, 94,223, 98, 39,105, 62,159,191,252, 21,175,248,
- 95,127,240, 7,188,243,249, 95,127, 60, 40,228, 45,162,104,222, 34, 81, 40, 27,215, 6,125,148, 61,241, 46,246,209, 74, 71,166,
-239, 78,143,246,166, 71, 70, 23, 16,130, 38,209,141, 4, 52,153,216,233, 83,147,189,157,104, 70, 26,119,231,225,196,110, 23, 98,
-181,210, 33,148,142, 91, 88,165, 58,227,248, 96,174, 58, 85,103,203, 68, 53, 51, 83, 78, 40, 3, 93, 78, 3, 48, 12,221,213,195,
- 51,203,245,188,212, 95,179,135,156, 59,108, 19,175,113, 3, 46,176,133, 22,144, 22, 76,185, 82, 24,110,136,118, 70,175,192, 27,
-243,176,198, 14,110, 68, 30,108,202,243, 18,232,148,202,144, 40, 50,163, 80, 76,233,196, 88, 99, 20,164,148,212,247,126,196,108,
- 70,171, 77,126,140,161, 76, 30,225,116, 98, 49, 88,201,194,140, 12,161,180, 26,104, 11, 6, 42,119, 38,110,197, 65,108,171,116,
- 71,242,174,156,194, 33,197, 97, 96,206,149,149,223,230,248,108,247,185,181, 16,170, 1,120, 24,169, 91,146, 11, 22, 44,250,200,
-236, 31,153, 45,216,116,166, 97, 12,196, 42, 77,179, 85,224, 27,157,117, 43,243, 39,203,104,152, 48, 0, 48,122,176,108,204, 70,
- 47, 5,231,236, 42, 13,233, 67,202,203,181,143,244,207,249,204,118,231, 49, 4,146,220,153,133,243,231,166,243, 89,160, 33,144,
- 93,103,101,146, 29, 71, 3,135,113, 41,155, 53, 57, 44, 43,148,189, 90, 15,179,195,197, 94,246, 88, 98,159,245, 48, 75, 57,110,
-230,129, 65,155,106,179,198, 94,236, 90, 64, 46, 22,169, 2, 8, 37,228,200,136, 44, 54,128, 55,166,237, 91,101,212,234,246,129,
- 13,239, 96, 11,228,240, 38,241,145,120, 44, 43,132, 81,185,182, 70,129, 20,162,124, 93,106, 33,210,145, 70,228, 92,184,151, 70,
-170, 79, 92,175,179,177, 78,181, 41,109,226,172,218, 84, 58, 38,219,148,158, 45, 16, 33,139,238,197,119, 88, 74,200, 25,217,107,
-185,184,116, 14,176,145, 25,113,139, 28,115,235,148,112,108,178,172,166,215, 13,113,219,232,109, 48,137, 58,234, 71, 99,128,225,
- 45, 33,172, 44, 8,109,201,171,178, 34, 4,200,152, 67,200, 0,140,165,169, 20,141,158,176, 89, 65,229, 78, 52, 58,209,106,173,
-245, 80,120, 61,215,119,173, 0, 0, 8, 65, 73, 68, 65, 84,181, 48, 75,151,159,234, 67, 48, 2,147,137, 93, 56,219,157, 57, 21,
- 67, 48, 0,211,137,205,102, 22,204, 72,101,197,126,152,122, 46,169,104, 88,245,179,117, 63, 19, 12,130,195, 82,142,181,145,149,
- 91,249,208,103, 5,111, 52,198, 96,106,156, 1, 25, 24, 29, 91, 4,169, 77,182,160,198, 42, 96,107,114,169,142,170, 74,172, 81,
- 99, 91, 96,223,210, 90, 84,118, 87, 25, 47, 5,109,152,133,198, 58,194, 14,108,212, 0,149, 12,163,140, 45,116, 53,138,140, 55,
- 78, 96,159,188, 31, 20, 11,103,154, 12,198,108, 48, 67,150,134,132,202, 14, 21,114, 70,202, 28,233,148, 57,163,145,133, 74,213,
-191, 81,174,183,207,214,246, 71, 11,172,198, 82, 66,125,138,148,231, 72,199,134, 73, 83,186, 51, 70,101, 81,115,233,133,153,165,
- 99,195,169,216,136, 10, 34,183,176,124, 47,228,147, 13, 51,168,205,172, 80, 37,209,169, 50,120,138, 19,172,219,155, 33, 20, 62,
-194, 32, 26, 28,196,208,243,104,129, 79,212, 0, 5,147, 73, 55,155,159, 8,214,129,232, 66,152,239,204,187, 24,173, 12, 12,129,
- 21, 74,132, 54, 16,204, 77, 89,119,163, 9,221,140, 95,141, 73,100,113, 61,155, 35, 86, 34,105,208,111,196,221,189,181,102,183,
- 40,140, 91, 78, 77, 85, 72, 85,144,245,212,140,177,123, 27,115,229,168,205, 7,106, 42,200, 13,114, 86,175, 52,206,233, 44,103,
-175,108, 26,220,115, 27, 84,146,220,179,171, 44,104,200,200, 96, 8, 4,208,197, 16, 98, 32, 2,110, 0,167,183, 24, 37, 27, 92,
-129,162,179, 54,255,104,243,239,216,193,107, 1,206, 49,164, 79, 66, 8, 81, 26,123,192, 43, 95,124,227,189, 26,181,171,106,139,
-188,178, 69,154,207, 45,196,164,218, 77,138,218,178,228, 35,176, 37,211, 24,114,171,210, 33, 37, 88,187, 54,235,172,173,194, 90,
- 49, 18, 57,199,245, 48,117,149,208,218, 86,195,108,200, 19,212,177, 23,101,196,161, 3,232, 98, 58,177,179,154,116, 70, 90, 8,
-216,219, 9,123,243, 16, 66,237, 62,156, 68,150, 38,137, 18, 73, 86, 99, 95,120,148,197,245,109,172,118,121,178, 30, 41, 51,219,
- 88,166,162, 68, 57, 71,140,224,210, 86, 47,100,115,248,237, 16,160,153,161,102,123, 42,220,209, 68, 75,110,227,253,117,126, 1,
- 90,255, 0,125, 67,134, 67, 37,124, 11,130,249, 24,232, 85,224,203, 51,135, 28, 83,238, 68, 72,182, 26, 38,125,158,213, 49, 2,
-220,108,109, 23,220, 61, 77, 39, 6, 32, 70, 11, 1,211,174, 76,164, 96,136, 86, 38, 4,212, 16,153,114,199, 72, 20,170, 62,126,
-204,244,198, 65, 20,149,131, 86,224, 35,105, 43, 10,141,133,188, 87,177,211, 45, 86,126,227,126, 17,227,200,219,227,209, 17, 43,
-157,176,234, 69, 89,128,131,217, 9, 24,225, 62,102,236,141,130, 93,101, 84,220, 32,233, 2,192, 33,119, 67,154, 72, 1, 84,242,
-184, 26,102, 37,138, 17, 44,123, 84, 93,111, 99,227, 2,146,178, 99,177,206,235,228, 4,205,242,144,252,112,145,203, 56,205,105,
-103,187,115,235, 2, 69, 68,179,217,212,186, 56, 14,207, 42,208, 91,157, 77,215, 88,223, 55, 57,185, 90,192,173, 34,142,205,222,
- 3, 91,108,184, 77, 87, 66, 57,119,163,227, 35,182,252, 32,176,153,111,211,114, 34,167, 23,100,152,230,162, 23,219, 89, 57,252,
-226,232,232, 27,111, 14,226,144,186,163,126,238, 30, 64,186,135,117,154,102, 89, 97,136,182,184,223, 91,172, 94,225,161, 44,248,
-122,132, 17,185, 92,251,245,195, 84, 2,172,249, 44,156,222,139, 93, 52, 80,147, 24,128, 64,134, 26, 33, 27,143,247, 26,109,103,
-218,183, 46,167, 19,136,206, 49,230, 30,253, 24,235, 96,198,154, 64,108, 29,179,134,184,160,177,223,171, 62,141,174,190,176,249,
- 80,167,168, 20,200,188,224,197, 37,136,119,201,197, 33,119,238,177, 80, 17,251,212,165, 20, 93, 38,210,101,222, 90, 50, 74, 23,
- 90, 97, 27,110, 76,121,117, 1,210,166,188, 38,207,200,141,151,187, 30,120,184,200, 49, 58,137, 24,220,229,139,117,157,151,212,
- 69,155,116, 44,253,217,209,216, 69, 27, 33,151,146,247,141, 74,178,117, 95,227,232,156,145,239,200, 77,206,213,134, 48,141, 75,
-241, 49,146,220,234, 94,242,177, 93, 8, 66,174, 96, 3,130,204,163,185, 23,132,189, 96, 60, 21,106,151,135,101,191,187, 24,102,
-101, 71,178,199, 33, 79,218, 12,147,150,223, 65,173, 79,197, 53, 66,137, 26, 35,210,178, 55,165,215,139, 46,207, 94, 87,176, 94,
-235,112,145,234,180,109,227, 36, 50, 88, 57, 95,216,157,133,221,121, 40,173,227,179,169,157, 57, 17, 39,147,138,118,119, 93, 65,
- 98,176,113,112, 37,220,119,143,104,126,138, 35,201, 21,149, 88,222, 44,208,104,181, 56,162,189,163, 5,247,202, 26,101,227,107,
-214,120,192, 81, 17,219,226,204,221, 41,148, 53, 32,123, 72,206, 50, 70, 18,160,156,106,238,184,145, 46,107, 30, 92,137,204, 44,
- 51,121,198,166, 17,140,221,141,109,206,101,227,179,182,246,159,182, 97,133,192, 91,134, 47, 35,101,173,147, 91, 83,130,195,152,
- 38, 41,148,106,109, 23, 67, 12,141, 32, 65, 52,213,130,193, 34,168,173,244,171, 82,119, 43,213,164,222,114,237,181,169,157,110,
-149,170, 50,226,156, 62, 34,246, 46,246, 57,150,241, 86, 70, 31,172, 27, 66, 44, 67,194,147,199, 62, 77,178, 2,137,172,176, 30,
-102, 67,142, 99,243, 30,219, 52, 62, 47, 77, 65, 53,165, 46, 29, 0,108, 8,120,163,218, 87,147, 81,186,238,252, 88, 78, 93,218,
-150,234,185,113,207, 92, 59,128, 50,209,142, 71,171,140,253,209, 29,209,218,180,189,162, 65,209,234,104,130,233,132,243,105, 8,
- 86,146, 21, 70,175, 51,160, 70,197, 69, 93,170,111,241, 5,224,173, 33,117,220, 26,109,230,178,110,106, 47,170,152,112,161, 95,
- 11,185, 28, 49,152,171,124,178,112,174,107, 84, 65, 82,173,204, 92, 98, 20,167, 83,220, 12,221,169, 43, 97, 29,153, 84,250, 56,
- 90, 23, 15, 55,125,218,155,138,125,137, 42, 74, 11, 19,213,114,198, 81,130,244,218, 8, 85,248,220,165,122,171,232, 42,128,101,
-150,229,204,156,164, 80,197,194,219,238,125,213,200,247,199,214,156,240, 22, 49,111, 32,177, 27, 50,212, 26,169,234, 24,101, 99,
- 59, 65, 3,220,120, 44, 46, 29,203, 67,146,181,122, 78,235,196,208,246, 60,162,113,186, 18,235, 11,164, 81,119, 90, 81,153, 27,
- 16,103, 43,178, 27, 51,170,150,124,150, 24,106, 51,206,104, 76,217,109,156, 43,216,128,173,134,199, 85, 97, 23, 57,196, 49, 5,
-229,102,114, 23, 0,111,231,138, 26, 81, 52, 31,107, 86,141, 41,190, 61, 78,175,220,176, 31,171, 78,231, 77, 65,155,219, 69,190,
-113, 28, 20,218,216, 89,142, 61, 0,155,102,186, 10, 62, 53,146,121,171, 75, 22,126,251, 8,107, 98,211,135,135,106,172,198, 22,
-129,218,212,165,150,173,182,252, 15, 21,179, 7, 55,129,239,136, 85, 84,191, 83,125,121,212,216, 1,217,118,119,116, 89, 21,153,
- 24, 49,182, 81, 82, 26,161, 53,130, 21,244, 25,251,131,183, 50,187, 99,196, 23,201,185, 37,175,177, 51,117, 99,236, 71,159, 85,
-247,186,116, 53,214, 3,219, 52,183,116,131,168,105, 56,139,233,209, 86,251, 95,171,101,214,230, 95,200, 54,181,222, 22,239,176,
-246,219,108, 58, 10, 42,196,176,201,223,202,182,120,212,198,175,143,189,162, 99,141,160, 44,169,140, 44, 6,217, 14,237,150, 52,
- 49, 14,101, 28,227,130,177,190,176,169,203,114, 76,151, 91, 60,224,173, 31,148, 99, 67, 90, 49,248, 45, 42,108, 81,214,104, 3,
-173,181,233,108, 18,246,150,161,179,246,211,110,206,144,234,216, 72,214,222,177,173, 81,209, 77,105,234, 89, 20, 70, 45,221,164,
-160, 26,155,157, 25,155,155,196,102,198,200,120,204,235, 4,179, 86, 41, 47,118, 76,194,118, 87,211,216,169,188,105, 53,231,113,
- 90,199,136, 24,183, 94,154, 17,253, 86, 11, 49,212,154,108, 41,209, 36, 29,139,237, 89, 27,100,197,237, 18,106,109, 44, 26,193,
- 2,232,134,220,144,218,232,203,168, 92, 21, 55, 40, 67,213,154,129,194,184, 29,181,214,219,198, 93,163, 14, 81,216,176, 8, 29,
- 35,154,233,173, 83,166, 90,163, 17,207, 46, 14, 96,147,138,140,240,238,173, 88, 15,227, 76,182, 27,162,124,105,123, 56,249,166,
- 85,158,181,133, 22,227,129,171, 75, 30,233, 53, 35,213, 70,141,117,211,102,208, 85,211,130, 86, 53,170,135,184, 38, 73, 53,235,
- 65,187,163, 38,159,154,118,113, 59,229, 24,131, 50, 32,106, 76, 58,125, 67,192, 44, 99,254, 52,102,174,229,221,171,217,246,209,
-224,195, 71,118,135, 70,131,122, 12,110,194, 13,223,181,233,171,169,245, 46,108, 17, 21, 37, 31,195,119,175,160,144, 26, 11, 74,
- 99, 40,208,166, 0,192,154,140, 42, 58, 94, 26,223,183,129,214, 38, 60,141,237,133,197, 28,121, 77,246,142,157,179, 13, 13,174,
-142,122, 16,193, 88, 71, 30,106,203, 5,183, 9,130,220, 84,155,107, 39,176,198, 89,198,199, 36, 85,239, 89,117,152,165,184, 53,
-253,112,155,124,215, 60,195,198,126,141, 48,154, 54, 57,221,134,207,114,131, 97, 26,179,211,114,195,101, 60,229,198,108,160,182,
- 96,170, 33, 43,133, 89, 70,152, 54,194,106,157,214, 86,163, 7,109, 10,180,165, 34, 48,226,176, 85,198, 17, 27, 43,221,166,118,
-212,230,181,177, 4,213, 80,106,142, 41,245,184,220, 17,226,215,150,237,225, 13,132, 43, 31,131, 36,226, 88,173,132,218, 4, 11,
-220,148, 63, 90,103, 90, 29,195, 95,213, 72,219,161,105,131,150,198, 0,101,235,108,212, 60,122, 68, 21,183,172,209, 24, 32, 85,
- 39,184,253, 50,109,193,248,218,172,242,255, 0, 2, 20, 76, 70,229, 56,168, 10, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/multiply.png.c b/source/blender/editors/datafiles/multiply.png.c
deleted file mode 100644
index b411a0e6c03..00000000000
--- a/source/blender/editors/datafiles/multiply.png.c
+++ /dev/null
@@ -1,323 +0,0 @@
-/** \file blender/editors/datafiles/multiply.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <multiply_png> */
-
-int datatoc_multiply_png_size= 10039;
-char datatoc_multiply_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0,
- 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75,
- 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,
-120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 21, 0, 4, 17,164, 74, 11,162, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,125,
- 91,176,173, 89, 85,222,247,141, 57,255,181,214, 94,123,239,115,217,167,251, 52,221, 45, 66, 95, 64,160,149,216, 77, 55, 32, 49,
-137,196, 91, 21,134,138,146, 64, 20,171,148, 74, 52,149, 60,224, 13, 21, 5,226,131,229, 37,151, 74,149,151,170,132, 7, 41, 33,
- 38, 38,241, 82,165,121, 49, 79, 65, 19, 65,163,160, 17, 5,161,185, 9, 54, 77,159,238,115,250,236,179, 47,235,246,207, 57, 70,
- 30,198,156,243,255,247, 62,187, 27, 80, 76,197, 42,214,161,207, 57,123,157,189,215,154,107,204,113,253,198, 55, 6,192,231,250,
-120,198,237,183,223,117,215,221, 55, 63, 79, 0,111,252,161, 55,229,156, 8,136, 8, 69, 98,140, 93,140,177,235,222,252,166, 31,
-246,111, 10,223,245,221,223,211,247,155,156,147,170,102, 85,213,188, 90, 45, 87,171,229,241,209,141,123,239,185,243,218,181,131,
-195,195,195,112,255, 3,247,107,206,154,213, 96,166,246,241,143,126,224,198,141,171, 71, 71, 7,139,163, 27,217,236,235,190,238,
- 21,239,126,247,187,227,181,253,229,159,124,100,113,184,204,164, 92,222,185,126,235,185,220, 33, 32,168,154,104,206, 41,229, 55,
-191,249, 45,225,122,250,226,117,159,205,204,212,174, 94,189,114,237, 70,191,179, 21, 98,132,170, 93,188,120,121, 58,155,155, 89,
-216,222,187,151, 0, 12,102,150,214, 55, 52,235,181, 27,253,180,155,220,121,251,109,187,231,246, 12, 70, 67,132,169,154,145, 4,
-104,166, 10,136,156,255,243,253,139,249,147,184,127,222, 79, 96, 48,132,237, 11,247,144, 6, 24,129,212, 31,197,233, 94,156,236,
- 16, 60, 58,206, 31,121,100,153, 50,110,185,208,241,214,187,191,154, 8, 16,192, 8,146, 20, 18, 68, 96, 8,164,144, 2,137,209,
-212,140, 25,153, 34,132,137, 33, 3, 2, 40, 12, 0,140, 12,208,207,234,186, 66,251,219,214,214,252,153,207,124,166, 8,151,203,
-229,233,187,123,224,129, 7,190,250,107,190,214,204,132,164, 72, 8,193, 47,238,191,255,198,111,188,235, 93,191, 93, 94,233,213,
-175,126, 77, 74,189,230,172,170,170,185,223,108,214,235,229,114,113,124,233,210,185, 23, 60,255,222, 63,122,223, 7, 0,132,251,
-239,127, 64,179,170,169,153, 93,189,250,216, 99,143,253,217,225,225,254,226,240,198,106,117,164,154, 95,243,205,223,246,206,119,
-254, 15,126,213,215,127,235, 71, 30, 89,145,236, 2,239,186,245,137,233, 36, 76, 98, 12, 93, 71, 96, 62,223,121,214,179,159, 59,
-157,205,194, 58,222, 5, 64,213, 54,235,131, 79, 95,217,239,147,237,204, 3,161,100,184,227,206,187, 9,168, 89, 84,168,168, 2,
-162,121,163,170, 87,158,220,244, 9, 95,114,247, 45,119, 60,227,139,114,206, 27,194,128,104,170, 6,130, 10,131, 65, 97,241, 40,
-237,189,255, 19,211,237,115,233,210, 5, 49,243,187,219,187, 27, 48, 3, 72,203,155,227,201,206, 29,148,152,213, 30,121,108,243,
-200,227,235,219,246, 38, 93, 71,222,122,215,215, 80, 4, 20, 2, 6, 8, 5, 66, 48, 16,129, 18,130, 4, 72,140, 10, 21, 51, 26,
- 12,128,208, 84, 9, 82, 4,200, 4, 12, 20, 83,124,190, 30, 28,127,241, 61,223,251,125,219,243,109,131, 17,229, 23,133, 66,145,
- 32, 36,131,132,159,249,153,159,186,114,229,202,217, 47,244,253, 63,240,131, 89, 51, 12, 80,243,151, 37, 64, 33, 33, 20, 2,164,
- 32, 72,160, 48,248,107,134, 32, 33, 44,151, 71, 63,241,227, 63, 57,126,161,184, 88, 44, 0,255,244, 0,192,209, 3,196,241,209,
-193,241,209,254,102,179, 2, 40, 82, 13,192, 40, 34,175,253,230,111,124,222,125, 15,254,194, 47,252,135, 15, 63,252, 48,128,216,
-111, 54, 0,212,108,189,177,195, 69, 82,227,246, 86, 56,191, 19,151,139,163,107, 79,124,218, 96, 66, 9, 81,132, 2, 6,146, 80,
-154, 33,105,146, 32,253,102,243,218,215,126,107, 8,225, 71,254,197, 91,248,236, 23,190, 42,171,229,236, 31,138, 0, 76,104,105,
-157,215, 87,167, 93,190,109,111,114,113,183,155,116, 33, 68, 17, 9, 34, 36,105,230,138,246,236,249,246,185, 32, 34, 34,161,139,
- 97,235,252,115, 84,181,232,137, 41, 8, 83,205,253,113,234,143, 82,210, 27,199,249,218,141,116,188,202,166, 26,104, 36, 98, 55,
-221,217,189,176,119,233,182,201,100,102,106,254, 80,181,104,200, 48,131,138,209,140, 2, 77,102, 84, 75,170, 74,146,154,215,107,
-187,214,227,250,145,236,236, 76,158,117,231,222,222,238,185,217, 52,144,210,167, 36, 20, 17,161, 80, 84,195,246,197,187,161, 4,
-235,137, 64, 51,133,102, 77, 75, 82, 13, 33, 78, 47,116,179,139, 18,119, 51, 38, 79,222,200, 31,127,116,249,200,227,235, 62,233,
-124, 38,132, 1,229, 80,188,245,158,175, 5, 72,208,252, 15, 10, 0, 51,221, 44,175,197,110, 46,113,155,174, 9,160, 65, 40, 2,
-243,187, 11, 46, 80, 82,118,230,113,239,194, 52,170,102, 87, 61, 0,128,152,102, 8, 12,156,108, 93, 34, 0, 24, 0,170, 25, 9,
- 2,217, 32, 2,192, 52,187,178,169,225,104,153,142, 87, 26,205,212, 53, 25, 20, 20, 97, 83,104,229, 53,140, 38, 20, 3,196, 29,
-163,192, 50, 32,132, 24, 20,230,119, 8, 19,195,255,119, 15,158,249,236,197,139, 23, 47, 92,184, 8, 96,189, 94,237,239,239, 47,
- 22,139,207,225,133,238,125,206,115, 94,253,234,215,144, 44, 22,231, 87, 66,145, 32, 34, 18, 66,216,223,191,241,111,254,245,191,
-124,186, 23,250,161, 31,126,147,102, 53,247,135,197,250,221,240, 73, 41,143, 32,197,240, 99, 23,223,248,131, 63,112,198, 11,125,
-223, 27,190, 31,230,191,252,150,138,133,179,220,100, 16,192, 15, 69, 9, 65,132, 34,155,245,242,145, 79,125,234, 29,111,127,199,
- 9, 55,146, 82, 50,243,203,179,230, 70,172,184, 34, 66,205, 84,205,114, 81, 6,211,245,122,117,124,180, 15,224, 13,111,248,238,
-127,251,111,127,250,196, 11,193, 6, 45,240,195,144, 74, 16,208,163,163,195,163,195,253,190, 95,139, 64, 40,164,187,245, 64,193,
-102,179,254,177, 31,255,137,183,188,249, 77,254,131, 82, 67,159,170,170,154,154,154,169,153,234,106,181,124,226,137,199,158,120,
-252, 83,171,213, 49, 96, 52,154,187, 78,165, 65, 53, 91, 78, 41,245,253, 79,254,228,191, 42, 47,148,115,206,154,151,171,254,177,
-171,203, 79, 93, 89, 93,219, 95,173,214,105,185, 92, 30, 30,238, 31,236, 63,169,154,203, 43,151,104,111,106,240,155, 81,131,154,
-109,250,205,235,191,235,187, 0,196,253,163,205,135, 63,185,186,182,223, 23, 9,129, 33,216,246,100,189, 51, 61,222,157,229,174,
-147, 96,245, 62,221, 66,104,102, 54,237,166, 33, 68,205, 25,102,183, 92,186,133, 32,159,253,194, 87,245,201,204, 64,122,104,163,
-105,210,116, 4, 61,158,117,118,121,111,186,119,174,235,162,132, 32, 20, 15, 7, 70,200,197,189,203,187,187,123,179,217,204,181,
- 98, 50,157,134,173,139,207,133,142,111, 13,150, 55, 57,173, 82, 90,167,100,139,117, 78,217,102, 83, 17,161,187, 30, 82,118,118,
-247,118,182,207,199,174, 67,121,107,154, 89,216,189,244, 37,224,240, 66, 0, 52,111, 52,175, 97, 73, 13,170,232,123, 75,201,166,
- 19, 6, 97, 55,153,237,236, 92,216,222,222,237,186, 41,221,175,161,120,233,168,150, 9, 18, 6, 35,196,212, 8,203, 48,117,185,
-168, 98,181,201, 87,111, 88,136,188,227,214,249,124,190, 59,159,239,198,216,153,153,230,108,180,162,199, 72,226,127, 55, 43, 82,
-100,121, 5, 83,115,241,154, 1, 73,229,177,235,241,198,106, 7, 97,215, 32,174, 38,110, 84,174, 54, 89, 53,108, 95,186,215,204,
- 64,180, 67,153, 37,211, 30,214,251,199,165,196, 56, 57, 23,167, 23, 14, 22, 56, 94,230,173,169,196,224,138,239,185,101, 49,252,
-176,125,241, 30, 10,171, 5,187, 68,179,229,100,218,131, 6,137,113,122, 33,118, 59,238, 49,151, 43,125,226, 70,191,233,181,139,
- 18, 99,253, 57, 18, 64,216,222,187,199, 64, 88,245,218,126, 12,235, 53,247, 68,232,166, 23, 99, 55, 7, 64, 63, 54,152,178,222,
- 56,200, 87,246,211,254, 97,218, 36,155, 77, 36, 6,130,228,229,187,191, 14, 52, 64, 92,145, 0,168,169,229,149,230, 85, 8, 91,
- 97,178, 3,243,200, 34,116, 83, 20, 1, 64,136,251,137, 16,194,206, 60,238,157,159, 68,131, 2, 32, 20, 38, 74, 16, 20,138,197,
-185,196, 57, 0, 83, 37,197,220,201,131, 52,117,213, 53, 40, 77, 0,168,234,193, 81, 62, 90,172, 34,252,194, 0, 82, 93,116,234,
-206, 17,254,179,240, 24, 97, 6, 8,138,242, 25, 65, 51, 49, 33, 97,128,152, 2, 98, 80,131,129,110, 81, 30,128, 64, 53,152, 42,
- 97,102,132,169, 41, 96,102, 10,183, 94, 42, 0, 42,172,184, 11,163, 65,204,220,166,213,181, 71, 21, 6,117, 93,167,169,191, 65,
- 61, 70, 61,188,186, 25,152, 7, 86,162,158,225, 11,143,207, 61,206,182,199,221,119,223,243,130, 23,188,224,174,123,238,217,187,
-120,113,120,214,138, 21,208,147,231,242,135,236,239,239, 63,252,240,135,254,248,143,223,247,209,143,126,244,243,115,160,157,157,
-157, 87,191,250, 53,183,223,126,135,170,171, 66,181,187,146,163,214, 28,190,184,246,147,153, 52,107, 24,243,224, 76, 1, 17,187,
-238, 87,126,233,151,222,243,158,223,255,236,149,131,175,124,229, 43, 95,240,130,251, 84,155,111, 43,126,243,212,145, 73, 14,135,
-104,121,253,233, 35,121,193, 49, 28,171, 30, 84, 72, 30, 29, 31,188,227,231,223,254,169, 71, 31,125,250, 3,197,123,238,125,238,
-122,189,169,242, 56,227,131,176, 21, 55,224,169,211,248,239,106,158, 16,231,145, 32,199,151,139, 77,191,134, 97,113,124,240,245,
- 95,255, 85, 34, 18, 66,252,249,183,255,226,102,179, 57,251, 64, 57,245, 54,184,196,155, 79, 67, 59,113,160,225, 61, 77,117,181,
- 94,209,108,185, 90,192, 52,231,100,128,251,156,147,146,132,102,165, 32,229, 76,119,200,228, 63,255,103,223,121,219,237,207,124,
-219,219,126,238,163, 31,249,200,233, 3,165,156,113,230, 5,123,117,201,146,254, 85,233,144, 64,214,212,111,214,170,118,124,124,
- 3,176,126,189, 6, 45,171,150, 27, 4, 41,116, 47, 12, 65,147,168, 3, 20, 66, 24,209,167,180, 89,175,191,237,219,190,125, 50,
-153,188,245,223,255,187, 79,124,226, 19, 99, 9,165,145,128,203,209, 82, 66,141,231,136, 65, 64, 68, 33, 3,161,166,170,125,191,
- 57, 60,218, 55,213,213,242,184, 28, 91, 44, 80,204,143,238, 17,194,107, 26,128, 6,119,133,132, 66,145, 9,146,170, 57,165, 20,
- 66,232, 55,155,239,248,206,127, 58,233, 38,111,124, 99,201, 71,195, 11,255,198,253,170,214, 39,221, 36,221,108,244,120,173,203,
-101,190,126,208, 31, 46,210,193, 81, 58, 92,228,245, 70,151, 43,205, 89, 83,178,229,114,185, 88, 28, 47,150,199,199,135, 55,250,
-126, 77,247,210, 36, 13,131,246,148,130, 71, 74,148, 40,206,216, 96, 6, 26, 41,100,216,218,154,207,231,187,168, 21, 85,214,252,
- 53, 95,253,181,143, 62,250,232,213,171, 87,227,254, 65,111,176,171,251,233,224, 40,173,122, 61, 90,100,215, 0,207,145, 76, 64,
- 35, 97,164, 81, 48,239,214,211,176,232,130,237,108,169,144, 93, 4,141, 66,205,164, 24, 40,174, 57, 57, 83, 40,153, 86,194,154,
- 43,183,107,232,116,107,218,197, 78, 36,230,156,139, 73,154,170,138,137,125,203,183,188,246,183,126,235,157,188,253,249,127,191,
- 0, 73, 45,125, 48, 88,253,218,127, 55,131,105,111,200,154,150,154,142,168, 8,193, 66,228,229, 11, 19, 9,184,176, 19, 67, 16,
-207, 7, 75,129,192, 98,145, 85,106,234,233, 54,192, 75,151,110,155,205,183,187, 48,137,147, 78,232, 85, 63,165,184, 46, 82,196,
-195, 52,192, 10, 62,152, 14,198, 93, 84,138,102, 80,237, 97,201,114,175, 57, 19,200, 25, 84,124,242,202,138,228,245,237, 20, 4,
-183, 94,156,204,166,161, 11,140,209,212,207, 82,171, 81, 9,145,192,133, 11,151, 67,236,182,230,243, 46, 78,220,244,140, 86,139,
- 11,210, 74, 82, 17,225, 32,141,177, 20,196, 6, 19,181,114,101, 16, 53, 43,135, 75,166,217, 44,155,103,207, 67,213,163, 55,142,
-148,144,163,229,138,228,173, 23,194,185,237,216, 69,153, 77, 69, 66,156,109,109, 7, 9,231,207, 95,132,132, 73, 55,113,148, 69,
- 53,123,130, 87,124,166, 59, 93, 7,229,204, 98,205, 58, 0,194, 76,233,246, 9,165,167, 34,238,249,172,164,128, 48,133,105, 67,
-113, 12,106, 74, 35, 0,219,244, 70,216,163, 87,249,233, 39,243,185,221,217, 23,223,177, 55, 13,241,210,165,115, 82,252,181,223,
-187, 17,158, 83, 9,104, 2, 81,201,238,235, 8, 87, 71,139,106,198, 82, 49,144, 6, 64, 1,194,104,132, 65, 9,210,138, 56, 4,
- 80,212,162, 18, 48,119,208, 48, 32, 24, 16, 39,219,100, 23,186,153,200,116,149,249,240,159,231, 73,167, 87,247, 15,186,192,103,
-221,185, 21, 3,183,103, 49,136, 91,137,144, 25, 20, 32, 23,171, 17, 50, 27, 73, 19, 70,154,129, 6,243, 63, 72,245,211,162, 36,
-205,214, 12,132,174,149,205,103,185,156,140,140,221, 46, 37, 72,152,129, 1,144, 90,197,202,166,183, 43,215,214, 32,159, 60,236,
-133,124,198,165,105,215,241,150, 11,147,173, 89, 8, 34, 93, 52,165, 16, 25, 32,115, 1,116,169, 18, 13,217,113, 14,154,231,176,
- 52,135,104, 64, 63,160, 43, 22, 64, 32,208, 61,139, 39,235, 12,113,114, 14,160,196, 45,178, 0,142,128,154,137, 25,200,236,181,
- 5,137,227,165, 2, 92,109,148,130, 71,159,216,196,200,249, 44,238,206,195,108, 18, 46, 93,232,130,112, 58, 9,172,128, 78,244,
-252,213,111,169,164,242,158,124,150,183, 54, 43, 14,152,100, 48, 6, 50, 16,100,152,128,194, 48,243,234,181, 8,206,212, 32, 69,
-201, 40,102, 74,192, 76, 52,171, 9,117, 3, 2,125,223,147, 60, 60, 74, 87,163,196,192, 79, 62, 30, 2,185, 53, 13, 34,178,179,
- 21, 36,136,227,220, 70,144, 74, 82,161,180,146,197,147,160,169,185,144,204,225,242, 48,145, 2,107, 68,192, 11,117,199,219, 13,
-102, 38,198,146, 39,139,169, 74, 41,110,212,115,119, 64, 13,200, 42, 52,205, 89,176, 81,128, 56,206, 2,116, 93, 32, 57,155,134,
- 32, 18, 1, 37, 8, 83, 3,205, 28, 83, 20,210, 33,165, 90,144,152,177,212,201, 49,196, 56,132,114, 58,190, 92, 82,124,175,111,
- 77,188,238,134, 9,189,150,160,136,153,193, 43, 33,115, 37,181, 82,123, 41, 84,176,217,100,138,108,122, 3, 24,171, 62, 59, 94,
-230,154,163, 53, 71, 5, 93,227, 73,192,140,213,190, 74,154, 66,248, 85,187, 93,152, 73,173, 90,180,124, 72, 35, 68, 75,213, 33,
- 4, 84,181, 72, 20, 6, 8, 90,236,117,191, 8,152, 32,194, 97, 57,161, 65, 13, 66, 85, 14,153,140,105, 1, 17,139, 51, 45,209,
-179,152,157, 21, 71, 97, 14,229, 73,209,245, 2,201, 58,216,231,181, 26,172,188, 82,195, 83, 8,168,145,132,192,204,160,132,152,
-120,153,230,142, 72, 13,102,165,128,242,144, 97, 54, 88, 62, 12, 90,224,147, 82,183, 87,112,165,249, 59,152,194,204,189, 40, 74,
-196,129,154,122, 40,227,144,251,169,105, 77, 79, 75,190, 99,229,142,236,140, 12,241, 11,143, 47, 60, 62,223,149,235,144,123,119,
-113,190, 53,159, 76, 38,179,217, 86,215,117, 40,169,119,191, 90,173,215,235,213,241,241,113,246,174,199, 95,233,129,186,174,251,
-242, 47,191,255,121,207,127,254,179,190,248, 89, 33,134, 33,170, 74,177, 51, 74, 75,244,196,204, 62,246,177,143,253,233, 7,222,
-255,222,247,190,247,169,106,174,191,248,129,190,225,239,189,242,190,251,238,235, 98,103, 13,129, 28,154, 62, 56, 85, 57,182,218,
- 20, 64, 8,129,194,205,102,243,135,127,240, 7,191,254,235,191,246,151, 58, 80,140,241,190,251,238,123,197, 43,190,193, 90,238,
-106, 13,198, 28, 74,250,113,133,127,178,178, 63, 89,218,147, 34,114,112,112,240, 51, 63,253, 83,199,199,199,159,219,129,246,246,
-246, 94,241,138, 87,220,113,199, 23, 57,102, 52,202,166, 71,223, 52, 78,250, 71,191, 63,229,153, 60, 59, 5, 66, 12,143, 95,185,
-242,142,183,191,253,201, 39,159,252,172, 14,244,250,215,191,126,107,107,187,186,207,211, 21,254, 80,201, 15, 69,244, 88, 74,165,
-176,101, 43, 52, 6,128, 97,124,153, 52,211,247,191,255,143,255,243, 47,254,151,207,220, 28,255, 91,127,251,239, 56,205, 32, 91,
- 46,206,188, 4,132,246, 69, 57,161,150, 72, 82,190, 40,201,180, 22, 44,184,150,186,214,202,191, 22, 28, 76, 45,107,222,221,221,
-249,187, 47,127,249,123,222,243,222,190,239,159,206,156,115,206,168,239,170,103,222,104,189, 26, 16, 58,214,106,117, 12,209,144,
-203, 79,183, 98,166, 97, 23, 4,115,238, 53,231, 62,245,171,229,145,136,188,246, 91,254,193,251,254,228, 3,255,251,119,223,243,
-148, 7, 82,213, 82,210, 84,244,100,132,148,161,181, 11,198, 79,181, 98, 84,138, 12,212, 10, 98,139,122, 32, 35,232, 97, 54,165,
- 77,206, 57,165,141,119,132,131,132,251,158,255,156,251,191,252,193,183,190,245,173,103, 31,200, 84,173,189, 3, 78,188, 57, 74,
- 34,101, 60,229, 29, 12, 6,219,108,214,170, 57,165,126,211,175,160,200,185,247, 62,210, 32, 81,135,146,203,245,121, 6,168, 25,
- 96,230,237,183,223,241,163, 63,250, 99, 63,242, 35,111, 57, 67,135, 30,124,232,161,210,213,189,249, 81, 83, 49,107, 45, 49, 43,
-127, 0,214,247,155,190,223,244,155,245,106,121,220,167,126,189, 90,244,169,207,253, 38,165, 62,165, 62,245,125,206,125,202, 73,
- 53,101,205,170,234,181, 33, 76, 73, 57,127,225,146,132,240, 85, 47,127,249,111,190,243,157,167, 14, 36, 86, 26, 83, 79,251,240,
- 62,159, 55, 38, 76, 87,171,197, 98,113,188, 56, 62, 92, 44, 14, 87,171,227,148,250,156, 54,181, 32,168, 72, 18,107,254,102, 69,
-208,234,141,152,210, 5, 83,181, 44, 34, 63,244,195,111,186,233, 64, 79,117,158,145, 84,218,239,222, 81, 89,173, 22,139,197,225,
-241,241,193,241,225,193,114,185, 72,169,215,148,172,228,223, 94,209, 54,207,224,105,185,231,141,197,124,161,154, 53,107, 86, 83,
-221,221,217,253, 39,223,241,157, 39, 14,164,163, 71,206, 57,105, 94,111,242,106,157, 87,235,180, 92,165,213, 58,111,122, 77,125,
-246,118,141, 95, 71,191,217,244,125,159, 93,249, 92,130,172, 55,233, 57,235,200, 4, 0, 40,157,110, 82,212, 95,189, 79,164,170,
-166, 89,243, 93,207,190,235,193, 7, 31, 26, 41,245,224, 5,173, 79,102,192,241, 66,147,186,241, 49, 6, 76,167, 33, 10,119,230,
- 69, 54,102,118,188, 56,202,253,166,246,193, 73, 79,125,197, 85, 4, 70,165,133,102,143,230,101,121, 33, 16,121,230,239,137,186,
-152,154, 65, 85,240, 77,175,122,213, 7, 62,240,126,239, 58, 75,202,154,178, 46, 55,121,185,210,227, 85, 94, 44,243,114,147, 87,
- 43, 93,173,117,181,214,229, 70,253,249,163, 69, 62, 94,230,229,186, 95,173,122,205, 57, 59, 73,234,148,242, 23,199, 88, 59, 26,
- 44,252, 9,165, 26,189, 64, 1, 40, 94, 67,186, 29,169,170,169,166,148,190,247,251,222, 80, 36,116,180, 76, 41,217, 39, 30, 91,
-171, 98,255,160, 79, 58,114,136, 3, 2,108, 65, 24,196,206, 77,111,144,182, 59, 75, 49, 32,136, 65,164, 40,139, 95, 88,105,185,
-153, 23, 77,163, 58,165,116, 46,133,152, 78,102, 33, 68,215, 69,136, 42,196, 84,131,200,116, 58,125,232,161, 23,255,254,239,255,
-158,244,189,246, 73,115,182,156,115,182,210,222, 49, 53,243, 30,177,153,170,230,108, 41,231,148,115,202,154, 82, 78,201, 59,200,
-197, 90,220, 40,180, 89,128,169, 57,225, 73,213, 76, 77, 21,106,229,127,102,206,149,169,109,196, 34, 33, 39, 90,125,227, 55,125,
- 19,201,176,138,247, 92,121,114,115,188,204,203,181,170, 14,209,179, 84, 79, 69, 71, 77,211, 38,167,116,116,116,120,184,232, 15,
-142,250,235,135,125,159, 44,101,168, 33, 70, 2, 38,213, 65, 27, 73,115, 99,167,177,148,180,254,186, 49, 78,246,246, 46, 79,167,
- 91,177,155,148,206,126,253,207, 93,231,185,243,231,226,186,207, 67,139,209, 59,111,170, 53,152, 27,232, 93, 54, 85, 40, 96, 89,
-189, 61,150,161, 76,217,146, 90,116,175, 33, 98,170, 16, 41,109,186,234,250,135,176, 54, 70,190,107, 87, 25, 10, 80, 33,180, 90,
- 46, 62,244,208,139, 35,172, 6, 13,162,178, 92, 28,208, 45,202, 80,162, 89,238,173,122,183,156, 13,176,235, 71,233,112,145,167,
- 19,153,111,133, 73,148,189,115,157, 72,238,162, 0, 66, 81,103, 18,168,145, 34,130, 16, 39,147,237,237,243, 33, 74, 23,167, 20,
-154,153, 66,133, 98, 6, 42, 76, 44,168, 42, 37,231, 28,221,149,218, 0,234,213, 19,176,160,105,170,214, 28,138,215,178,106, 32,
-153,179,165, 4, 51, 21,161, 41, 84,213,192, 88,128,231,194,172,169, 52, 27, 35,165,139, 29,131, 20, 27,240, 20, 70,181,128,163,
- 10, 21, 33,148,202, 88,238,215, 51,139,226, 50, 10,173,168,118, 20,212,212, 84, 51,161,222,166,108,136, 27, 96, 73,101,185,204,
-155, 94, 97, 22,130,220,114, 33,138,232,164, 19, 33, 66, 55,149, 16,166,147,233,100, 58,141,177,235,186,137,247,233,139,228, 71,
-222,147, 98,166, 10,210,200, 88, 62,112, 21,145, 35, 25, 90,146, 26,163, 86, 28,196,109, 7, 86, 20, 76, 74,114,146,179,230, 76,
- 73,200,201, 98,148,221,109,134, 32, 49, 16, 98, 34, 33,134, 56,157,206,102, 91,115, 9, 49,132,206,109,197, 12, 3,202,143,138,
-186, 85, 15, 22, 75,114, 80, 2,143,185,167,117, 59,243,147,213,204,164,178,104,232, 6,225, 48,178,121,184, 50, 32,169, 33,235,
-193,177, 5,177,201,100,218, 65,186,110, 54,153,198, 16, 39,164,180, 28,210,175, 73, 65,250, 29,176, 52,150, 64, 82, 68, 85,163,
-195, 20,238,242,109,232, 90,148,124,117, 4,143,149,220,159, 69,203,204,163,148, 73,177,166,148, 45,171, 92,121,210, 36,216,124,
-119,123,198,110,178,181,179,187, 61,105,173, 63, 43, 25,112,133,154,236, 84,138, 85,194, 98,244, 86,123, 49,251,130, 46, 57, 28,
- 4, 20, 96,184, 41,124,137,148, 37,179,246,100,223, 81,100, 37, 37,128,132,116, 0, 55,189, 1,186, 88,102, 50,117, 81, 98, 16,
- 10, 66, 16,199,167,228,228, 57,164,250, 33,168, 26, 16,182, 47,222,235,167, 41,168,221,128, 51,149,110, 89,209,156,156, 8, 51,
-221, 20, 12,205,125,131,153, 9,205, 2, 67,140,221, 78, 8,179, 48,185, 16,186,249,209,138, 55,142,177,218,216,245,131,164, 64,
- 23,104,134, 24, 71,117,222,144, 13, 55,216,190,184,172,200, 26,107,104,234, 94,168,224,207,165,180, 80,191,198,147, 34, 46,181,
-172,214, 46, 93, 5,246, 89,200,136, 6,210,146, 90,200,218,247,186, 73,106,134, 24, 64, 50, 6, 41,114,161, 71,126,150, 70, 79,
-109, 85, 68, 24, 80,212,152, 21,154,244,238,159,129,229, 96,128,161, 49,107,134, 79, 38, 0, 25,166,161,155,147, 65,194,204,251,
- 1,110,191, 0,111, 28, 38, 18, 55,142,243, 35,143,175,183,102,225,214, 11, 93, 23,229,182, 75, 83, 33, 38, 29,160, 82,216, 34,
-163,222, 42, 85,227,168, 42,116,228, 77,224, 8, 93, 9, 53, 90,222, 94, 91, 19,173,116,141,108, 40, 64, 74, 78, 38,226,101,144,
-194, 68, 77, 33, 66,101,206,218,147, 93,210,148,140, 44,212,238,172, 38,204, 34,193, 53,221, 9, 83, 6, 1, 25, 43, 19,209, 28,
- 52,117,191,103,128, 41,189,207, 80,216,142, 18,172, 0,134, 2,168, 25,165,219, 10, 97, 66,233, 36, 76, 28, 59, 47,184,185, 89,
-233,166,152, 26, 36,101,100, 77,155, 94,142, 87, 57, 80,174, 92,219,136,112,239,124, 23, 69,110,189, 56,153, 76,164,139,140, 17,
- 10, 17, 24,204, 98,237, 7,120,199, 70, 81,253, 17,233,129,195, 74,131,165, 68,101, 66,212,212,137,175, 2, 4, 80, 0, 97, 41,
-201,234,229, 23, 66, 86,193, 10, 12,164,234, 70,133, 33,131, 22, 68,182,183, 66, 10,150, 85, 53,195, 66, 48, 71, 75, 33,106, 22,
-253, 58,200,250, 7,128, 18, 98,138, 35, 42,213, 42, 2,224,228, 29,132,174,115,237,161,116, 14,210,151,238,120,137,245,226,170,
-167, 21, 42,134,249, 79,170,101, 89,109, 84, 96, 87,174,109, 72, 92, 63,232, 37,200,108, 18, 98,224,180, 11,179,105,160, 72,172,
-221,204, 18,159,209,174, 73,173,114, 8,172,194,238, 98,142, 85, 49, 18, 66,241, 70, 64, 45,120, 61,242, 40, 32,234,201, 66, 85,
-112,146,160,154, 10, 5,170,137, 42,214, 47, 65, 98,177, 84, 35,102,211, 16,133, 91,179,184,189,101, 36,107,146, 95,187,101,254,
-214,197, 9, 1,254,146,168,206, 53,196,153,153,137, 68, 80, 96,206,127, 45, 4,176,138,202,211,207, 84, 58, 93, 34, 21,157, 32,
-213, 91,159,134, 10,194,187, 57,166,100, 38,208,117,206, 10, 80,226, 0,141,183,110,180, 86,176,190, 52, 56,172,250,126, 65,156,
-143,252, 44,213, 40,254,207,240, 55, 42,184,189,123,141,250,143,165,250, 48, 72,197, 34, 90,143,217, 64,246, 73, 19, 5, 73,151,
- 75,163,235, 68,105,104,106, 49,110,107, 25,172,213,132,163,245,228,189, 56, 66,189, 8,170, 19, 4, 10, 75,170,130,144, 5, 16,
-168, 12,170, 18,104,104,126, 98,115,112,191, 86, 43, 85,196,158, 45,187,216,235, 7,246,126, 71, 97,199, 83, 49,120, 4, 85,168,
-194,188,101, 91,188,144, 90,105,129, 59, 11,185, 86, 66,165,243,226,113,177,114,100,157,191, 86,238,222,106, 91,181,254,179,211,
-203,104, 48,131, 24, 27,104,230,178, 54, 40,209,186, 17, 80,127,227, 70,191,134,169, 22, 12,214,160, 90,162,110,173,131,202,109,
-213,198, 59,171, 56, 74,148,168,138, 86,186,203,238, 43, 60,208,212,116,208,115, 56, 85,191,142, 98, 49, 6,173,147, 42,158,234,
- 99, 84,202, 12, 34,242, 55,107,152,164, 55,156, 61, 4, 22, 63,235,180, 15, 45,122,228,255,236,205, 37,171, 61,154,194, 15,241,
-215, 80,170,212, 20,214,180, 6, 56,171,164,191, 66,203,107, 88, 17, 91,113,236, 50, 98, 97,232,149,240,161, 69, 8, 77, 70, 46,
- 96,231, 13,250,164, 8, 77,181,181,149, 13,149,183, 7,215,213,210,139,244,159,116,241,186, 29,107, 59,132,149,119,245,154,165,
- 53,158,234,148, 2,155, 43,174,196, 88, 69,173,226, 27, 99,194,179,205,130,239,150,246, 26,106,127,175, 96,118,197, 27,148,206,
-183,150,198,152,186,173, 56,180, 84,187, 87,172,140, 2,165, 58,112, 97,229,230,138,168,170, 19,242,207,226, 95,184,189, 20,200,
-131, 86,111,184,120,160, 82,120, 21,229, 29,131,115, 95,104,152,125,225,241,133,199, 23, 30,127, 93,250,173, 79,247, 18,228,206,
-238,238,185,221,221,237,237,157,243, 23,206,239, 93,220, 59,127,225,194,249,115,231,230,219, 59,219,219, 91,147,201,212,123, 84,
-163, 78,206,137,166, 69, 74,105,185, 92, 28, 28, 30, 28, 30, 30, 61,254,248,149,163,195,163, 27, 7, 55, 14, 15, 14,246,247,247,
- 15, 15, 15,255,250, 9,104, 62,159,223,251,156,231,222,121,231,157,183, 93,190,124,254,252,133,249,246, 60,198, 8,195,153, 14,
-255, 38,158,238,184, 83,138,113, 59,176,205, 54,157,226, 67,167,148, 22,199,139, 27, 7, 55, 30,125,244, 83, 15,127,232, 67, 31,
-126,248,225,244,121,234,124,127,222, 4,116,249,242,229,251, 31,120,224, 75,191,244,133,211,233,196,108,200, 42, 62,243,235,150,
-148, 14, 35, 92,170,124, 73,207,170, 75,203,180, 76,203,181,102,233,184,161, 91,102, 57, 11, 65,211,107, 3, 17,145, 79,126,242,
- 19,191,249,206,119,126,240,131,127,170,170,255, 79, 5,180,179,179,115,219,109,183,125,217,151,189,240,222,123,159,227,136,142,
-181,198,240, 8,219, 61, 37, 35,158,169, 52, 3,139,245, 4,226,204,147, 13,247,167,252,253,228,212, 92,153,117,229,208,137,110,
-189,248,235,215,175,255,175,255,249, 91, 31,252,224, 7,175, 93,187,246, 87, 34,160,203,151, 47,223,119,223,125,119,221,117,215,
-229,219,110,203,185,244,112, 79, 10,197,128,167, 83, 27,142, 29,210,200,211,140,159, 63,225,124,112, 6,173,255, 76, 50,192,103,
-122,178,148,156, 62,116, 8,224,227, 31,255,248,123,126,239,247,254,232,125,127,148, 70,252,240,191,148,128,222,252,230, 55,175,
- 55,253,208, 80, 29,218,210, 56, 73,178,248,140,114, 62,249,105, 79, 61,121,198,183,157,162,109, 60,141, 42,157,162, 46,140,205,
-112,160, 71,147, 2, 88,206,185,239, 55,106,121,179,222,188,251,119,126,231, 93,191,253,174,191,164,128,226,114,181,110,132, 19,
-107, 4,183, 51,164,114,147,231, 25,211,100, 78,202,101,244,228,205,170,116,218, 8,135,230, 59,201,167,242,228,229, 75, 27,143,
- 75,212,185,142, 74,220, 35, 8,164,156,250,205,202,137,174, 47,121,241,131, 95,249,178,151,110, 82,254,111,191,246,235, 31,251,
-248,159,253,197,230,159,248,221,223,243,189,167,181,230,236, 41,147, 17,147,225, 84,144,191, 73, 59,134, 79,202,225,199,198, 82,
- 27,249,159, 50, 8, 88,205,208, 55, 73,148, 34,185,146, 14, 7,214,123, 67,243, 75, 49, 69,192,144,114,159,115, 25,123, 77,105,
-179, 90, 45, 85,115,109,210, 23, 40, 36,198,201,227, 79, 60,249,174,119,253,238,103,201,204, 57,139, 94,241, 20,114,121, 58, 27,
- 59,217, 21, 96, 3,173,237,102, 64,124,120,214, 12,102,185,201,218,187,242,195,208,167,102,171, 20, 81, 59,113, 13, 86,181,198,
- 26, 17,167,148,232, 57,103, 77,254, 94, 41,101,243,109, 20,142, 6, 9,235,108,110,127,239,189,247,188,248, 37, 47, 91, 44, 86,
-191,242,203,255,245,195, 31,254,240,103, 43,160,220,112,142,209,135,188,233, 83,219,205, 9, 78, 97,197,214,118,106, 67,252, 43,
-137, 97,148, 13, 12,227, 59,116, 2, 81,191, 89,215,113,104, 75,155,126,211, 47,221, 40,204, 52,165,100,170, 30,220,235, 11, 23,
-104,119, 0,194, 90,135,150,133,250,221,158, 47,120,102,245, 81,150,181,204,229, 43,114,234, 83,159,230, 91,179,215,189,238, 31,
-171,217, 59,222,254,243, 31,249,200,103, 22, 83,120,232,193,135,198, 30,185,182,141,219, 95, 11, 94,114,182, 79, 58,233,187, 78,
-244,150,110,250,110,181,236,154,162,170, 41,245, 57, 39,231,224,100, 77,169,239,205,137, 13,166,166,185, 54, 25,173, 32,123,214,
- 58,198,229,157, 88,249,201,142, 21,186, 40, 71,125, 46, 14,115,192, 21,178, 35, 57,157,205,103,179, 57,189, 97, 64,188,232, 69,
- 47,250,138,151,189,236,241,199, 31,191,122,245,234,211,154,216, 32,157,177,147, 57, 67,101,112,211,224, 89, 81,147,122,183,214,
-134,172, 91, 71,174, 78,221,166,148, 86,203, 69,214,228, 70,180, 94, 45,251,212,143, 62, 67,105,234, 12,109, 49,171,127, 71,155,
-141,224, 48,113, 2, 14,237,151,202,231,104,209,176,142,204, 54, 85,243,142,159,228,172, 57,103, 74,242,252,201, 84,167,211,217,
-183,127,251,235, 30,253,244,163,191,248,159,254,227, 83,229, 80,225, 69, 15, 62,104, 67,219,204, 6,131, 58,245,213, 64, 42,106,
-195, 88, 54, 16, 28, 9,220, 12, 55,161, 82,141, 96, 57,231, 77, 95,204, 74, 53,247,105,147, 83,178,156,180,145,146,234, 59, 13,
-241,172, 72,187, 54,199,198,147,118,104,185,119,195,223,218,186, 11,107, 83, 30,222,178,110,175, 51,155,109, 77,103, 91,172, 80,
-186, 39, 9,166,186,187,123,238,111,126,229, 87,238,108,239,126,232, 67, 31,124, 10, 82,222,153,246, 83, 88,240, 0,144, 21,155,
-164, 41, 21, 61, 41,207, 19, 4,131, 48,198, 50,121, 45,228,100,194, 40,240,214, 95,214,228,211,124, 6, 75,253,230,248,248, 32,
-167,228, 77, 43,159, 84,246,177,140, 54, 19, 80,167,145, 41,133,129, 81, 71,126,106, 95, 14,173,229,237,221, 41,214,189, 69, 99,
-229, 47, 6,111,165, 69,238,157,198,210,189,102, 21,110, 67,214, 21,164,115,187, 30,122,232,161, 23,191,248,197, 63,251,179, 63,
-253,216, 99,143,157,208,160, 7, 30,120,224,204,184,165, 86,104, 53,222, 28, 94,111,156,192, 99,217, 44,171, 37,181,236, 99,217,
- 53,135,242,197, 65,177, 16, 75,225,154,146, 82, 82,205,166,154, 82,191,217,172, 82, 74, 78, 52,187,169, 45, 62,244, 19,134, 68,
-185,229, 14,194, 34, 76, 54, 22,155,149, 14, 94,165,216,121,239,230,164, 7, 96,235, 23,121,143,102, 54,155,205,102,115, 9,129,
-227, 54,252,201,168,251,210,151,124,197,214,124,238, 75,117,138, 6, 45,150,165, 56,206,106, 78, 25,114,117, 79,201, 86,107,109,
-248,114,206,245,158,236, 36,133,153, 20, 25,162, 74,136,136, 82, 92, 65,224, 38, 96,229, 19,234,194, 44,236,137, 66,246,145,106,
- 34,141, 71,132,218,112, 30,114,159,218,112,176,210,108,211, 34, 35, 43,170, 69,234,137,173, 16,198,118, 58,231, 38,128, 78,237,
- 8, 52,250,190, 18,111,162,180,229, 93,222,254,201,149, 58,172,128,137,189,236, 43, 94,118,235, 45,183,254,234,175,254,178,131,
- 45,252,135,255,232,117,238,229, 82,182, 39, 15,250,195, 99, 39, 40, 97,157,108,177,204, 89,111,170,183,104, 24, 57,136,177,168,
-124,219, 16,171, 8,102,113, 61,141, 75,239,125,119,157,206, 58,141,129, 6, 10, 45,212,170,211, 61,139,180,121, 94,231,208,183,
-225,202, 90,240,139,247,244,217,232, 21, 53,226,143,146, 16,182, 73,204,114,169, 20,145,110, 50,141, 93, 7, 80, 36,204,183,119,
-118,118,206,135, 80, 22,249,248, 40,249,184,124,145, 90,195,132, 16,247,247,175,191,237,109, 63,119,253,250,245,112,241, 25,207,
- 59, 90,232,209, 34, 29, 45,242,225, 34, 47,215,218,103, 75, 89,251,100, 73,235, 88, 15,203,252, 81,201,186, 74, 96, 45,189,165,
- 54, 42, 10, 51, 88,174, 52,210,172,186, 73,253,122,211,235, 58,233,102,147,251,222, 86,155,188, 90,231,245,198,114,134, 26, 83,
-182,148, 75, 43,164, 54, 92, 70, 41,235,104,178,182,246, 0, 57,166, 89,141, 99, 72, 9,150,108, 61, 50,248, 44,192,116,186,213,
-117,179, 46,118, 49,118,221,100,218,197,174,198,183, 49,157,119,168,174, 42, 59,201,182,182,182, 94,242,210,151,254,159, 63,252,
- 67,222,254,188,111, 60,153, 20,242,140, 44,154,103, 20, 10,133, 9, 83, 90,159,165, 76, 48, 75,230,125, 26,168,229, 85, 78,139,
-210,236, 5, 68,124, 2,203,130,112,119, 30,183,102,190,169,137,211, 78,230,211,224, 11,154, 8, 12, 12,254, 86,169,114,112, 64,
- 28, 0, 56,142,248,211, 99,118, 62, 43,193, 0,177,155,158, 59,127,113,182, 53,247,215, 8, 33,198,216,113,132, 46,157,168,139,
- 27,113,191,254, 93,130, 88, 46, 20,134, 83,217,206,105,174,204, 80, 80, 85, 70, 41,107, 28, 41,173,204, 50,129,229, 61, 92, 45,
- 52,211, 18, 6,149,163,222,157,194,104,232,147,114, 35,244,241,114, 3, 5,146, 72, 66, 68,186, 0, 9,174,176, 44,202, 91,134,
- 88, 43, 65,180,106, 21,199,203, 26, 90,106, 22, 66, 8,209, 63,119,140, 65, 68,198, 48,220,160,164,214, 26,199,101, 99, 75,123,
-179, 86,236,169, 65,130, 68, 29,248,179, 68, 27, 61,174,147,105, 45,189, 40,116,130,214,129, 71, 69,141, 70, 30,219, 0,179,100,
- 57,121,232, 51,205, 80,245,238,182,150,249, 65,128,200, 89, 55,125,227, 86,114,218,137,239,215, 1, 56,157,240,252, 78,156, 78,
-202,254,165, 24, 24, 66,165,204,183, 66,195,117, 73, 91,134,234, 35, 25,206,167, 99, 55,153,110,207,119, 67,236, 0, 4,145,110,
- 50,235, 98, 7, 97,211,250,230,250,219,248,160, 21,174,104,193, 57,171,103, 36,161,200,136, 44, 62,224,116,217, 62,106,163,150,
-176,223, 76,105,156,114, 87, 82, 29, 6,250,249,169,100,124, 88,137,163,176,177,204,107, 46, 83, 10,120, 56,249, 49, 37,245, 19,
- 74, 9,252,195, 50, 6, 97,229,183,177,106,119,179, 16, 9,213, 64,130, 13,153, 55, 1,100, 83, 81, 49,158,154,104,224,224,115,
-198,169, 70, 41, 98,138,235, 85, 65, 28,146,230,209, 90,145,162, 74, 28, 18, 10, 29,193, 55,101, 68,120,216, 13, 96,149,178,104,
-176,108,154,235,183,101, 95,115, 83,141,163,233,180, 85, 82,134, 1,232,147,245,169,124, 86, 89,234,225, 81, 18, 17, 0, 93,224,
-249,157,176, 61,151, 32, 4, 17, 69, 38,157,111, 56, 50, 50,196, 56,141, 93, 7, 51, 74,152,205,182, 38,147,153,255,148,136, 20,
- 71,131, 33,223, 62, 11, 9,186, 9,188,113,181,104,160, 57, 64, 51, 1,163,142, 35,230, 80, 45,212,205, 19,149,164, 88,241,170,
-202, 45,168,212, 88, 84, 27, 30,202, 90,216, 56,247,178,182,152,201, 71,114, 96, 3,100,161, 99,158,134,170, 18,180, 76,154,102,
-146,137, 76,153, 57,211,156,241, 27,157,182, 89,230,122,106,249, 46,196,105,172,177, 14,177,148,185,187,129,114,125,210,186,134,
- 95,101,171, 19, 91, 43,161, 60, 69,154,230, 72,197,192,164,241, 49,218,166, 44,134,182,231,207,160,117,241,233,104,107,134, 19,
- 57, 72,140,135,109, 11,231,183, 20, 98, 3,185,184, 50, 67,202, 42,167,202, 37, 51,101, 11, 80,234,244,102,255,230, 44,125,226,
-245, 35, 95, 80,137,237,237,238,210,197,157,105,215,129,144, 16,182,118,183,182,166, 81, 68, 0, 19,183,175, 19,155, 45,218,144,
-210,184,194,182, 51,241,171, 86, 68,122,232, 25, 76,204, 51,105, 80, 79,227,238,202, 86, 60, 91, 27,193,106,204,151, 34,164, 34,
- 72,112,204,169,172,249,200,104,129,153, 13,197,184, 97, 24,232, 42,124,153, 42,127,109,235,187, 42,165, 26,190, 13, 27,127,100,
- 0, 0, 6,168, 73, 68, 65, 84, 83, 49,169,145,160,160,235,145, 85,178, 9, 12, 25, 1, 8, 33,132, 26,246,217, 34,202,160, 62,
- 24,232,162, 84, 90,201,111,135,255, 78,116,175,120, 74,239,171, 39, 10, 33,142, 51, 50, 22, 54,138,157,200,205,134,233, 11, 45,
-108, 17,171,165, 48, 80, 11, 70, 22, 19,131,121,226,107, 3,134, 81,189, 92, 43,209, 43, 57,211,183, 69, 86,142,149, 7,200, 32,
- 97,234, 91,110, 72,161, 76, 68, 58,215,138,222,194, 19,251,164, 40, 96, 93,135,131,227,213,108, 34,164,132,128,157,121,216,217,
- 10, 33,148,233,195, 73,164, 72,169,244,205,156,146, 89, 56, 83, 78, 15,130, 54, 10,186, 63, 89, 76, 74, 68, 78, 12,200,145,200,
- 57,150,211, 15, 8, 83,213,138, 22,125,216,128,136,193,247, 20,127,195, 22,165, 70,153,218, 0,198,140,111,200, 6, 37,172, 53,
- 38, 43, 3,210,106, 18, 65, 8, 16, 40,177, 36,232,210, 65, 38, 14,155,102,195,114, 83, 56,221, 93,175,130,180,233, 5, 64,140,
- 18, 2,166,157,111,164, 96,136,226, 0, 65,195,214, 84, 27,250, 93, 25,101, 62,219,224, 99, 75, 21,216, 6,219,234,166,209,220,
- 34, 16,189,126, 57, 21, 4,213,172,114,191,136,182,242,246,100,118,196, 66, 39,116, 94, 86,225,215, 85, 99,149,145, 26,142, 75,
-185,241, 29,148,249, 32, 48,134,208,149,221, 72, 12, 18,166,100,168,109, 66,169, 11, 77,116, 32,152,155,101,197, 98,157,215, 73,
- 9,138,228, 62,233,209, 34,251, 58,205,105, 39,219, 91,210, 5, 26, 17, 69,102, 83,233, 98,219,194,100, 82, 11,233,193, 16,111,
-238, 20,151, 6,110, 17,113,132,142, 14, 95,217,112,195, 84, 66,241, 29, 53,240, 17,163, 56,216,112,188, 97,190,211,134, 65,131,
-177, 71,215, 51, 2,107, 67,186,164, 99,152, 81,196, 12,194, 32,161, 3, 4, 34,104, 27, 32, 42,238,101,149, 22,154, 13,186, 30,
-128,216,229, 90,111, 28, 37,247,243, 91,179,112, 97, 39,118, 81, 64,155,196, 0, 4, 50,148, 12, 89,120,114,214,104, 92,105,159,
-221, 78, 39, 16,149, 45,231,110,113,140, 21, 74,177, 86, 52, 14,169, 82, 37, 96, 86,240, 97, 4, 85, 53, 87, 51, 14,246,227, 45,
- 55,149, 11, 75, 9,226, 51, 12, 32, 37,146, 66,199,229,107,166,207,202,220,115,182, 97,205,251,106,180, 80,179,241, 50,177,140,
- 92,121,185,235,158, 71,139, 28,163,146,136, 65,213,116,177, 46,251,146,186, 40,147,206, 7,161, 16,133, 93,244, 9,114,120, 73,
-232,207, 15,107, 61, 42,180, 91, 87,231, 52,190, 35,135,154,171,214,232,237, 40,138, 1,219,108, 94, 69, 75,153, 93, 66, 70, 24,
- 40,135, 86, 75, 41,115, 74,119, 70, 73, 46, 69,194,140, 50,245,143, 36, 12,148,110, 88, 55, 87, 64, 83,107,147, 80,109, 53,105,
- 61, 83,213,101,243, 89, 47,170,105, 46,171,176,108,189,182,163, 69,170,104, 16, 39,145, 65,202, 46,179,237, 89,216,222, 42, 75,
-158,103, 83,185,184, 27, 39, 19,175, 7,217,117, 18,216,130,125, 93,172, 98, 6,213,136, 26,167,216, 72,174,224,120,150,101, 20,
-234,107,198,199,193,131,107,241,181, 52, 98,152, 47, 39,112, 2,226,247,204, 54,212, 82, 89,134,109, 90, 70, 43,227,220,104, 62,
-166,166, 33,149,200, 76,192,125,106,101,245,151,206,216,176,231,178,242, 89,135,146,166, 68, 34,239, 66, 58,207, 59,101, 91, 39,
-149,170, 4, 71, 49, 77, 82,240,169,200, 46,134, 24,106, 3,155,168,170, 5,129, 68,208, 70,229, 87,161,238, 22,170, 73,141,219,
- 37,255,245, 73,183,134, 5, 98, 52,115,214,194, 55, 2, 24, 42, 63, 62, 23,161,248,254, 96,233,202, 2,118,138,200,132,140,168,
-147,238,158,196,182,185,166,106,104, 62, 1, 64,107,222, 72, 43,153,158, 86,167,238,244, 68, 77,237, 99, 75,197,110, 84, 51,215,
- 10,192, 55,218,241,120,149,113,208,194,145,215,122, 0,139, 6, 69, 41,171, 9,166, 19,110, 77, 67, 16, 41, 35,147, 90,118, 64,
- 53,197,117,147,210,150, 7,150, 75,241, 43,107,200, 88,161,101,243,196, 36,101,241, 65,117, 66,166,210, 49, 48,184,144,234,234,
- 1,131,137,163,137, 28,138, 94, 42,149,198, 97,233, 78, 57, 9,203,202,164,146,123, 23, 9,114, 52,189, 62, 32, 60,198,186, 59,
-136,172,221,215,230, 24,252,245,213, 75,245,218, 47, 16,139,190,135,204,152, 77,114,102, 78,102,161,136, 37,182,214,146, 85, 83,
- 41,201, 15,107,198, 92,108,144, 28,231,194, 53,239, 45,165,232,152,184, 80,124, 73, 96,216,170,219,171, 48,154,181, 42,211,224,
-206,191, 31,182, 37, 20,213,244, 21, 15, 28,120, 38, 37,175,170,163,109, 53, 90, 18,180, 58, 76, 89, 42, 24, 45,118, 58,114,243,
- 80,207,178,208, 86,144,149,136,164,230,115, 46, 6,192, 50, 87,173, 94,131, 45, 86,121,127, 68,177,137,173, 4,229,176,185,171,
- 14,208,249, 53, 53, 20, 77, 27, 17,197, 90,187,111,132,182,150,244,178, 28,101,200,253,170,196,132, 39, 56,218,197, 15,179, 6,
-132, 58, 3,224, 37,159,113, 8,121, 54,198,227, 75, 4, 80,142,102,179, 6,248,206,157,213,192,126,112,109,170,164,144, 54, 14,
-136, 10, 41,112, 72,124, 27, 86, 81,226, 78,249, 60,181, 70,110,149, 86,203, 94,180, 42, 86,195,216,154,164,172, 65,107, 4,181,
-118,161, 70,163, 83, 5,224,224,137, 41, 67,213, 81,205, 90,115, 91,142,156,125,139, 89,197, 36,202,140,176,157,216,179,232,211,
- 32,198, 38, 95,212,213,245, 53,131,107,149, 88,221,131, 41, 67,175,119,104,163,248,188,205, 48, 81,208, 48,152, 90,191,249,181,
-104,180, 33,174,183, 89, 81,182,112,230,231,212, 58,232, 91,140,118, 36, 77,180,165,140,205,208,202,199,174,126,104, 68,141, 25,
- 50, 7,127,209, 17,100,203,234,240, 91, 55,180,104, 83,243,129, 82,199,116, 42,103,130,173, 66,247,189,112,104, 48,115, 89, 12,
- 90,135,186,180,108, 67, 67, 29, 97,174,115,176,109, 18,129,173, 4,193,216,140,141, 96,172, 97,242, 4, 57,197,134, 98,212, 26,
-201,178,248,177,106, 76,205, 89,141, 32, 72, 59, 89,223, 15, 57, 83, 27,197,109,142, 29,117,131,244,200, 51,152, 95,236, 80,206,
- 99,148,117,104, 27,232,175,217,185,182,153,182, 65, 42, 67,109, 88,199,157,198,117, 77, 57, 59,205,151,170,185,131,106,204, 20,
-214,145, 40, 90,107,228,122,169, 49,128, 53, 62,162, 85,103, 17, 91, 83,124,152,124,174, 19,230, 24, 74,145, 6,239,158,197,122,
-176, 49, 59, 97,148,229,183, 73, 61, 12, 97,209, 77,175, 14,198, 85,131, 67,221,221, 90,195, 95,253,187, 85,214, 77,221, 65, 87,
-109,123, 96,202, 20,199,214, 98, 78,253,209,186,185,198, 29,120,107,230, 12, 4, 12,180, 15, 20,173, 21,157, 58, 16, 48,219, 4,
-248, 32, 41, 86,213,160, 14, 96,166, 54,118,135, 53,135,122, 34,170,225,212,159, 54,204,213,148,133,137, 24, 17, 21,205,180, 25,
- 97,193, 13, 11,112, 84,140, 95, 27, 8,174, 80,129, 24,135, 85, 38,100, 25,124,231,152,120, 82,132,103,109,188,208,221,145,175,
- 30,177,147,118, 54, 68,225,154,247, 18,140,101,229, 97,219, 76, 82,118, 21,141,247, 4, 86, 95,166,109,178,246,148,164,172, 86,
- 7,165, 3,196, 1,210, 59, 17,251,135, 72,215,194, 98,195,136,170,118, 14,232,120,213,186,230,152, 70, 52, 33,107,235, 41, 7,
-183,129, 50,130, 57,144,138,252,218, 33, 54, 8,171, 78, 90, 75,193, 91,106,210,226, 83,145,131,102,182,124, 52, 98,240,210,117,
-115,125, 25, 94, 99,245,122, 21,165, 30,240, 62, 27, 38,125,199,182, 54, 98, 13,140, 77, 77,219,120, 36,113,162, 87, 66, 27,146,
-133,166,119, 28, 33,145,181, 51,217,228,142,209,234,203,193,220, 78,218, 70,169,163,109, 84,219, 89,227, 46,181,255,211,135,178,
-216,103,248,182,209, 48,247,136,255,128,255, 11, 9,203, 84,141, 69, 4, 59,160, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/nudge.png.c b/source/blender/editors/datafiles/nudge.png.c
deleted file mode 100644
index 20be979540c..00000000000
--- a/source/blender/editors/datafiles/nudge.png.c
+++ /dev/null
@@ -1,572 +0,0 @@
-/** \file blender/editors/datafiles/nudge.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <nudge_png> */
-
-int datatoc_nudge_png_size= 18012;
-char datatoc_nudge_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0,
- 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0,
- 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,
-116, 73, 77, 69, 7,218, 7, 19, 0, 34, 13, 86,254,139, 21, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,188,119,148,101, 87,121,
- 39,186,211, 73, 55,223, 91,183,110,229,220, 85,213, 57, 7,169,213,234,110,229,156,144, 72, 2, 4, 38, 24,108,108,210,140, 13,
- 14,204,216,248,225,240, 30,158,121,126, 12,140, 77, 50, 24, 99, 68, 6, 9,229,208, 45,169,165, 78,234, 92,221,213, 85,213,149,
-235,230,116,206, 61,249,156, 29,222, 31, 37, 99,204, 56,224, 49,246, 48,239,241,173, 85,107,213, 93,181,215, 94,223,253,237,111,
-127,241,183, 11,238,223,191, 31,252,179,242,211, 44, 34, 63,254,225,183, 30,184,169,167,183,175, 82,175,127,226,171, 63,248,201,
- 69, 51,143, 63,245,248,247,254,226,234, 61, 7,229, 72, 58,127,249,165, 14, 37,253,197, 95,123,211,232,200,248,254, 15,255,254,
-234, 34,220,215,215,103,207,191,186,109,116,184,115,100,251,247,191,247,229,147,211, 11, 81, 85,206,165,226, 93,131,155,187, 85,
-159, 10,184, 84,105, 16, 8,209,221,183,220, 39, 71,146, 95,255,155,207,164, 99,145,237,163,253, 99,189,221,209, 76,255,161, 67,
-143, 40,146,180,174, 43, 19,145,215, 19, 33,120,105,225, 44, 33, 82,161,161,191,249,193, 95,211, 87, 46,213,170, 75,105, 45,209,
- 82,146,157,170,235, 83,250,177, 55,221,137, 0,132, 2,224, 15,126,246,235, 15,222,114, 19,245, 44, 74,131, 84, 34,203, 66,239,
-216,169,115,199, 47, 47, 96,132,190,115,248,101, 4, 0, 0,114,236, 7,159,251,171,158,117,251,142,189,244,131,182,254, 77,145,
- 84,238,249, 23,159, 34,204,191,180, 92,218,177,166,127,165,218, 36, 64,136, 53, 91, 14, 22, 46, 30,250,225, 43, 39,222,247,190,
-223,241, 90,181, 83,167, 94, 80,100,105, 32,151,233,107, 79,191, 58,179,120,213,250, 33, 60, 48, 48, 48,117,242,217,129, 92,234,
-154, 61, 7,245,252,165,106,254,242,240,240, 70,230,183,106, 45,203,176,221, 98,195, 88,211,157, 67, 66,136,223,252,200, 31,124,
-246,209,195,140, 6,146, 22, 63,116,110,114,102,230, 60, 16,224,228,244,162, 31,208,166,229, 92,152,207,195,159,234,236,126, 26,
-129, 63,250,237,218,109,155,118,116,199,215, 12, 15, 55,155,205,143,255,245, 99, 63,185,104,250,135,143, 79,156,124,178,165, 87,
-215,111,220,179, 52,123, 14, 2,208, 63,188,249,170,247,253, 7,198,249,107,139, 46,127,255,251,156,133,197, 43, 39, 13,163,246,
-228,201,139,131,185,204,214, 53,253,174, 31, 42,178, 28,143,167, 14,252,198, 31, 3, 0,208,217,163,143,156, 62,242,125, 17,218,
-195,235,246, 98,132,246,172, 91,243,210,133, 43, 17, 85, 94,108,133,199, 39, 46, 62,249,137,247, 3, 0,144,130, 65,127,119, 15,
- 34,234,123,127,239, 63,191,247,161, 95, 78,118,172,217, 48,216,205, 56,223,183,253,170,138,222,122,244,149, 51,255,237,125,247,
-163, 76, 50,253,167,223,124, 52,221, 53,254,231, 31,255, 79, 78,109,209,243,221,115,115,203, 77,203,153,188,116, 50,100,236,154,
-141, 35,187,119, 92, 75,122, 55,221,252, 94,159, 70,219, 7,168,103,190,120,228,241,114,211,124,243,189,111, 42,205,159, 62,125,
-101,137,115, 49,179, 82,249,222,203, 95, 36,140,211,193, 13,215,254,240,219,159,213,100,114,113,161,248, 43,111,123,103,113,238,
-172, 16,160,164,155,153, 88,228,249,243,211, 31,186,239, 70,140,140,165, 11, 19,175, 62,248,150, 15,125,241, 91,223,248,232,175,
-255,230, 35,143, 61,252,200,177,115, 99,189,157, 47, 93,152, 89,174, 53,119,142, 14,124,227,197, 87,241,215,254,236,243, 86,249,
-138, 89,158,185,227,166,187, 14, 29,122,228,170,117,107,206, 92, 89,234,205,166, 91,174,183,190,191,251,198, 93,219,158, 63, 61,
- 1,126, 86,103,135,192,207, 72,254,238,254,170,138,124,236, 75,159,179,189,224, 91,223,251,234, 93,183,221,191, 60,117, 60, 25,
-143,182,183,247, 53,106,203,186,237, 2, 1,186,178,105, 32, 69,111,250,232,159,252,195, 27,113,206,103,158,120, 70, 80,255,175,
-191,250,103,152, 40,198,242,201,219,246,238, 30, 24,217, 16, 21,182,169,151,124,187,230,135, 52,174, 42, 16, 66,221,180, 95,184,
-120,254,211, 31,120,199,114, 33,223, 52,173,207, 63,117,244,199, 55,194,253,253,253,162,112,190,179, 45, 51,152,203,174,204,157,
- 25,221,118,107,121,113,226,169,231,159,200, 87, 42,235,215,109,131, 8,203, 72,212,140, 86, 64, 89,119, 71,151,110,232,179, 13,
-119, 91,127,110, 98,126,249, 55, 94,119, 67, 46,161,157,154,203,255, 45, 70, 16,222,121,215, 67, 83, 23,143, 19, 73,105, 75,181,
- 29,122,250,111,186, 7, 54,184, 65,248,226,249, 73,223,170, 66,193,212, 72,114,176,111,200, 15,105,188,125,112,247,248,208,158,
-238,232,214,205, 87,221,186, 99,195,228,114,137,113,241,169, 95,186,235,137,255,227,195,175, 97,116,225,196, 15,251, 58,115, 68,
-141,157,186,112,234,209, 99,231, 31, 63,121,225,255,254,228,103,244,229,139, 16, 75,245,194, 84,199,192,198,226,210,101,199, 15,
- 48,145,235,166,117,210,128,163,102,163,208, 48, 40,101, 1,101, 64,128, 90,189,114,242,243,127,134, 7, 6, 6, 39,167,166,190,
-121,248,196,254,157,219, 55,108,186,122,247,154,206,123,239,124, 80, 8,134,136,242,236,115,223,221,126,245,109, 95,254,250, 23,
-183,174, 93, 59,191,178,162, 48, 43,164,244,153, 35,199,226,146, 56, 54, 95, 86,177,200, 38, 98, 99,189,157, 95,120,242,200,206,
-129, 12, 1, 0,252,246,123,126,185,115,112,179,224, 92, 0,209, 17,223, 91,153, 57,254,210,233,147,182,227,191,227, 93,191,249,
-209,223,251,200, 39, 63,246, 7,159,249,252,167,222,245,166, 95,122,228,137,111,239, 89, 59,212,153, 78,148, 26,186,101, 52, 82,
-237, 3,189,217,212,151,159,121,229,142, 93, 27,255,243, 87,127, 0,247,237,219,247,153,247,190, 99,226,204,225,153, 66,181,222,
-178,178,137,216, 45,251, 15,182, 13,110,255,253, 63,254,232,251,223,240,250,100,231,216,231,191,242,233,183,221,251,134, 71,158,
-126,100, 77, 79, 46,162,202,199, 39,231,243,117,189, 45, 17,107,180,236,133, 74,125,227, 96,247,171,211,139,247,239,219,142, 7,
- 6, 6,107,243,231, 71,186,115, 55,220,246,246,171,118, 31,188, 56,113,124,114,118,182, 55, 33, 31,220,127, 75,104, 55,255,235,
-151,191,240,250,107,119,186, 86,237,243, 79,190,116, 96,243,168,227,133,231, 23,139,126, 24,182,108,215,116,253, 61,227, 67, 47,
- 94,184,178,117,184, 23, 34,128,251,251,251,119,247,165,254,234,185,227,196, 41,202,110,113,124,100,124,108,112,136,250,102, 97,
-241,242,127,251,222,147,119,236,218, 24,211,228,201,165, 98, 87, 38, 25, 83,148, 66, 67,119, 60, 31, 2, 80, 55, 29,140,209,254,
- 77, 99,211, 43,197, 84, 34,114,110,118,229,103,231, 39,127, 38,210,223,223,255, 51,187,180,255, 6,183,255,199,229, 55, 31,184,
-217,178, 90,185, 92, 71,119,123,214,116, 92,199,104, 60,118,110,246,216,197,153,159, 42,148, 60,252,201, 79,140, 15, 14, 60,241,
-196, 55,186,218,218, 54,108,220,121,230,204,145, 13,107, 55, 59, 70,201,176,108,221,118,115,137, 24, 36,248,238, 79,124,238,159,
-194,232,165, 47,253,229,244, 15,159, 24, 27, 93,251,213,111,124,241,117,175,255,149, 48,244, 37, 57,178,255,230,183, 4, 86,205,
-118, 61, 0, 64, 42, 26,161,130, 31,186,184,120,234,175,190,248,145,251,174,255, 7,247,194, 87,158,120, 58, 22,141, 87, 43,203,
-207, 60,241,245,119,188,243,163,207, 61,246,165,253, 55, 63, 8, 1,168,205,158,224,156, 65, 40, 66,198,101,130, 57, 23, 3,217,
- 68,103, 71,255, 72, 71, 38, 70,216,241,233,165, 31,223, 37,153, 76, 18, 8, 64, 62, 63,123,244,200, 99,111,124,240,131,135, 30,
-251,226, 77,119,189,167,190,112,234,252,197,179,151, 87, 74,186,229, 38,163,218,193,205, 99, 94, 16,198, 35,234,124,185,246,244,
-195,127,181,161,191,115, 65,247,190,250,225,183, 70, 20,249,254, 63,254,210,223,129, 93,175,228,159,120,242, 91,239,122,215, 71,
-143, 62,243,213,253, 55,189,169,177,112,234,220,197,179, 39,166,230,127,245,193,135,124,171, 65, 67,119,185,184, 34, 4,136,198,
-146,107, 16,236, 74, 39,251,135,183, 40, 80, 52, 45,167,102, 90,219, 71,122, 79,207,174,188,246,213,124,125,249, 67,239,255,221,
-115, 71,190,213,223, 51,200,105, 48, 61,125,174, 80,215,111,191,106,231,215,159,124,178, 88, 41, 37, 53, 18, 81,148,116, 34, 6,
-145, 20,137,183,125,255,228,133,173,235, 54,133, 86,249,236,236, 50,198,104,169,166,127,229, 63,190,235, 43,207,190,146, 76, 38,
-201,111,188,247,195, 75,231,158, 70, 16,202,209, 84,126,113,162,175,119, 88, 38,248,255,249,238,227,119,239,217,188,126,124, 35,
-243,173,229, 98, 33, 17,141, 52,205, 86,103,188,125,109, 91,228,235,143,127, 31,169, 90, 58, 30,181, 61, 63, 34,161, 76,255,150,
-215, 12,146,250,118,161, 94,239,104,239,110, 20,103,122,135,182, 94,184, 60,241,153, 71, 95,120,207, 93,183,236,187,229,161,208,
-179,213,100, 23, 0, 16, 98, 41, 8, 67,206,195, 68, 44,122,250,210,229,172,140, 18, 17,213,241,131, 84, 84,107,149,174,188,253,
-142, 27, 34,170,138,230,166,142,119,164,226, 0,162,104,188,237, 11,223,250,218,127,127,236,197, 79,127,252,247,219,218,114, 78,
-179, 80,173,151,137, 18,185, 82,172, 72,106, 60, 30, 79, 57,122, 9, 99,180, 97,160,123,251,248, 24,130,208,245,195, 76, 60,106,
- 27,101,219, 15, 30,216,187, 5, 69, 20, 57,150,236,248,225,145, 35, 31,253,243,175,228,107,205, 71,190,244, 77,163, 56, 21,107,
-235, 39,146, 58,149,175, 32, 44,215, 91,182, 20, 73,181,229,250,203, 13, 29, 2,209,221,150,140,168,154, 79,105, 72, 89,111, 91,
-186,229,122,203,243,115,150,227, 96,141,224,191,126,230,133,186, 97,126,241,191,126, 49, 11,154,169, 84, 54,150, 27,198,146,210,
- 92, 58, 95,172, 85,199,214,110,115, 27, 75,129,239,228,186,135,167,102, 46, 2, 0,129, 16,221,237,237, 83,139, 75,134,237,110,
- 26,238,157, 89, 41,247,182,165, 95, 93,105,160, 55,222,114,235,151,255,244,207,175,223, 58,238,181,170,219, 15,190, 73, 73,180,
- 99,162,212,151,206,127,247,240,139,119,221,251,238,191,250,155, 63,223,125,245,173, 79,159, 56,237,182, 42, 16, 0,221,118, 8,
-198,129,107, 56, 94,208,150,136, 17, 4, 79, 76, 45,108, 31, 27,200,197, 85,220, 19,131,187,246, 92,183,110,227, 30, 44,169, 0,
-128,208, 53, 79,191,248,173, 23,207,156,127,195,157,247,217,122, 5,241,160,183,127,172, 35,138, 46, 77, 95,138, 71,180,229, 90,
- 51, 25,141, 40, 4,207, 20, 42,125,237,153,249, 82,109,165,222,140,170,114,119,207, 32,122,215,187, 63,198,104,200,195,192,172,
- 45,189,122,232,107, 95,123,248, 47, 46, 45,149,222,120,247, 27, 35,241,236,163,207, 62,126,245,245, 15,124,249,225, 47,244, 13,
-111,190,176, 80, 72, 69, 53,219,245, 17, 2,181,150, 37,132,104,152,246,241,169,249,109, 35,253,223,123,229,108,190, 92, 36,152,
- 72, 87, 78,254, 96,114, 97,121,177,210,224,130,111, 30,236,217,119,203, 67,149,249,179,223,125,252,219,111,127,232,131,245,249,
-211,221,153,132,221, 92,129, 16,168,178,196,132,128, 16,150,155, 45, 47, 8, 23,202, 13, 1, 64, 34,162,190,243,230,189, 95, 63,
- 49,141, 99, 94,254,212,212,124,205,180,134, 58,179,247,222,126,255,216,214,235,191,250,149, 79,121,142,126,219,173,111, 8,221,
-214, 23,190,253,205,187,246, 31,152, 95,154,145, 8,110, 79,196, 22,203,245, 76, 44, 58, 87,170,214, 90,182,110,217,155, 6,123,
-158, 59,115,121,172,183,195,164,128, 84,117,115,188,175,235,192,190, 27, 82, 61,235,106,243,103,126,247,119,126,237,125,183, 31,
-232, 27,219,197,104,112,254,244,225, 92, 42, 14, 32,156,201, 87,214,247,119, 59,126, 16,143,168,110, 16,150,155,166, 23,132,189,
-217,180, 31,134, 31,126,221,141, 95,126,230, 21,143, 68,240, 87,254,232, 79, 54,237,184, 33,112,244,223,255, 47,159,172,215, 75,
-111,191,237,186,182,174,113,206,194,102,225,210,215, 15,159,184,121,219,122, 25,179,195,231,166,215,245,119, 26,182,235,133, 84,
-183,157,138, 97, 14,230, 50,170, 44,133,140,127,237,249, 19,215,111, 29, 47,152, 62, 41,207,157,254,220,163,207, 18,130,223,124,
-112, 87, 54,221, 38, 41,113,175, 85, 9, 28,253,229,139, 51,157,233,132, 34, 19,199,245,170,134,233, 5, 97,195,114,108,215, 91,
-172,212, 1, 0, 23,230, 11,111,189,126,247,159,124,243,169,157,227,131, 83, 43,101,195,161,224,231, 42,174,245,245,245, 33,240,
-243, 36, 16,194,159, 47,133,254,209, 48,251,211, 72, 60, 26,237,200,102, 60,223,175, 53, 13,207,247,255, 61, 20, 74,197,163,227,
-189,221,123, 55,173,223, 58, 58,176, 60, 63, 93, 54,204,145,174,206,241,241,141, 90, 36, 90, 89,156,172,234, 58, 7, 80,194, 88,
- 34, 24, 33, 8, 0,144, 16,146, 84,173,166, 27, 61,233,196,167, 31,127,229,185,179,147,255, 90,133,246,110,218,240,217,143,255,
-158, 42,203, 0, 34, 38,248,228,233,231,143,156, 57,221,169,134,235,199, 54,111,223,178,239,242,153,167,106,186,193,237,122,170,
-123, 40, 22, 73,140, 64,232,181, 42,158, 89, 11, 66,159,113, 46,132, 16, 2,248, 97,232,121,254,229, 66,237,147,191,252,208,199,
-133, 36, 67,254,171,255,229, 51,103,175, 44,254, 11,204,104,255,254,253,175,188,124,100,250,177,167,152, 0, 0, 8, 30,250,165,
-106,233,240,179,223, 14, 66,118,215, 77,119,100,122,215, 45, 79, 60, 63, 53, 55,215,209,150, 94,191,231, 46, 8,145,224,212,110,
-228,125,179,230,219, 77, 63,240,130,144, 50,193,129, 16,171,185,145, 16, 64, 8, 1, 17,172,232,102, 58,215, 23,248,238,150, 77,
-187,207,157,124,246,242, 74,241,107, 47,158, 93,172, 52,254,217,228, 17,238,219,183,239, 47,127,235,119, 5, 0, 60,244,107,245,
-210, 51, 79,125, 43,162, 41,119,223,243, 78,162,198,102, 78, 62,178, 84,170,140,141,140,245,174,189, 6, 64,104, 22,103,170,249,
-201,134,105, 25,182,235,248, 1,227, 66, 38, 56, 19,143,102, 98,209, 90,203, 84, 37, 41,162,202, 16, 66,198,185,235,135, 0, 0,
-130, 81,153, 70,218, 53,220,219,209,121,228,213, 99,142,231,185, 1,189, 97,219,134, 88, 42,247,240, 51,207,127,250,209,195,255,
-160, 66, 4, 0,192, 67,207,104, 53,159,124,242, 97, 32,224,253,247, 61,164, 37,218,151, 47, 60,187,144,207,119,182,103,111,184,
-235,221,212,119,234,243,167,138,133,249, 82,179, 85,105,182,202,122,171,105, 57,189,109,169,173,107,250,101, 73,210, 77,235,114,
-179,133, 16, 94,215,151, 56,117,101,105,219, 72, 95, 68, 83, 35,178, 84,183,156, 83, 51, 75,227,189,185,190, 53, 59, 95, 58,243,
-234,174,177,129,199, 79, 92,112,131, 48, 95,173,105,134,177,101,160,227, 77,215,110, 63,116, 97,166,172,155, 63,153,241,245,247,
- 15,196,173,197,103, 94, 60,116,243,213, 87, 95,115,227, 27,205,242,236,196,233,231, 28,215,217,180,237, 96, 91,207,186, 86,105,
-186, 48,115, 98, 33,191, 60,181, 82,158, 43, 85,239,186,238,134,157, 27, 55,247, 38, 72, 44,162, 6,148,105,146,212,219,158,109,
- 79,197,251, 58,115,150,235, 14,118,100, 95,186, 48,179,118,120, 68,139,103,163,138,148,212,200,153,197,210,145, 51,103,223,118,
-223,155, 31, 59,118,124,251, 96,103,169,217,210, 29, 87,149,164,134,233,184,126, 16,137, 37,100,140,220, 32, 8, 40,251, 81,230,
-136, 7, 6, 6, 7,163,240,237, 15,125, 80,139, 36,102,207, 60,185, 92, 88,206, 37,147, 3, 99,187, 89,232, 54,151,207,231, 11,
- 75,147,203,165,206,246,220,190,189, 55,117, 68,196,209,243,231,159,120,229,216,217,249,149, 84, 44,210,221,150,210, 20, 89, 0,
-161,169,145,114,189,214,217,209, 11, 68,216,178,157,116, 60, 18, 75,247, 64,132, 17,247, 10,117,253,234,209, 62,195,118,214,247,
-245, 44, 23, 86,178,169,120,189,101,123, 97, 24,132,204,114,253, 66,165,250,241, 7,111,255,200, 59,127,117, 93, 6, 62,121,250,
-242,107, 10,245,247,247,253,230,187,126,189,190,120,110,230,242,171, 1,101,189,185,246, 88,166,199, 51, 10,205,234,114,205, 48,
-135,215,108,234,239,232, 40,151, 11,143,191,248,226, 19, 39, 47,204, 20,202,239,184,233,154,215,221,241,230,177,241, 45,241,120,
- 74,139,165,180, 72, 66, 82, 98,181,122, 89, 38, 88, 34, 36, 12, 41, 23,188,173, 99,128,135,190,103,213, 33,224,213, 16,125,237,
-169,231,239,187,229,174, 67,211,115,221, 17, 34, 0, 48,108, 47,160,204,241,125, 8,192,114,181,177, 99,195,198,182, 88,244,200,
-204, 98, 67,215,147,201, 36, 1, 0,174, 92,124,174,212,208, 53, 89,206, 36, 98, 16, 97, 79,207, 43,241, 92, 46,217, 21,204, 95,
-120,242,240,179,147,203,197,217, 98, 85, 0,240,169, 15,188,191,103,108,183,107,148, 2, 91, 23, 62, 44, 45, 77,196, 19,217,120,
- 91, 47, 0, 80,183,221,100,130,105, 90, 36,164, 52,142, 99, 8,162,208, 51,109, 63,148, 8,169,186,114, 91, 76, 97,190,185,187,
-175,189, 92, 46, 40, 68, 2, 0,184,126,192, 24, 79,198,180,206,116, 66, 47, 94,246,252, 96,207,248,208, 95,254,250, 91, 30, 62,
-114,138, 0, 8,116,211, 76,199, 34,209,104, 92,141,102, 33, 66,115,115, 23, 79, 30, 59, 63, 91,172, 20,155,173,154, 97,255,218,
-189, 55,125,226,183,254, 36,240,204,250,220, 73,163,112,153, 40, 49, 73,141, 7,174, 81,110, 26,138, 26,195,146,194, 89, 56, 83,
-168,172, 31, 93,171,198, 50,249,250,233, 53,107, 54, 8, 1, 26,245,162,227, 5, 16,161,249,133,197,209,238, 92,169,180,210,145,
-201,190, 58,113,169, 43, 19,103,140,121, 97, 8, 32,232, 72, 37,134, 58,219, 60,207,189,180, 84, 90,206,231,213, 68,103, 38,153,
- 32, 0, 0, 85,150, 45,215, 63, 54, 57,119,118,110,165,106, 88,182,231,165,162,218,239,188,235,237,107, 54, 95,103, 84,230,243,
-211,199,244,252, 37, 53,222,158, 29,218, 9, 17,226, 92,132,142,145,159,191, 48, 91,168,109,223,117, 35, 38,202,197,179, 71,162,
-138, 76, 0, 15,104,216,114,188, 68,186,211,110,230,203,186,169,201,178,224,162, 94, 92,222,213,181, 54, 95, 42,172, 31, 25, 91,
-210,173,100, 84, 13, 25,103, 92,196, 53,173, 63,151, 73, 69,163,249,154,113,116,114, 46, 78, 96,232,181, 46,204, 45, 18, 8,225,
- 31,126,227, 9,207, 15,118,142,141,124,236,189,239,239, 26,220, 88, 93,158,188,116,238, 69,238,181,236,250,114, 36,158, 29,219,
-117, 15,132, 16, 64, 8,132, 96,161,111, 85,166, 39, 38,207,158,155, 91,190,255,134, 27,181,120,182,190, 50,249,216,137,179, 31,
-120,240,173,146, 18,121,236,233,239, 31,216,182, 25, 66,124,249,202, 37, 63, 8,219, 19,177,124, 93, 39, 8,200,132, 52, 91, 6,
- 11,157,134,233, 58,158,207,133,208,100,169,175, 61,149,137, 71,117,203, 57,122,121,182, 97,218,111,189, 97,207,169,115,167,154,
- 46, 37,130,243, 79,125,232,131, 47, 30,125,161,101,219,161,211, 12,156, 86,166,107,100, 95,215,168, 0, 2, 10, 46,128,128, 0,
-114,198,188, 86,181, 52,119,106,102, 57,191, 80,174, 43, 18,121,247, 91,222,171, 37,218,207,190,242,189,111, 29, 62,246,145,135,
- 30,210,146, 29, 19,103, 14, 83,206,251, 71,182, 45, 76,159,200,215,140,206, 76, 66, 83,164,186,105,199, 53, 5, 99,100,153,190,
-107, 27,182,169,187, 65, 90,147,165,100, 68,107,139,199,116,211, 57, 49,179,176, 80,174,109, 29,233,147, 9,254,204,163,135,111,
-221,127, 13, 1, 0,116, 12,111,187,171, 99,152,115, 38, 41, 17, 8, 32,167, 33, 0, 64, 8, 17,122, 86,171,124, 37,191, 60,179,
- 84,109, 54, 76,155, 50, 30,211,212, 7,110,185,173,109,112,155, 85, 95,254,196,255,249,219,107,251, 58,254,224, 99,159,228,140,
-206,156,126,250,229, 11, 23,223,253,134,183,185,102,229,232,197,169,100, 52,146,138, 70,132, 16,134,237,166, 98, 81, 4,145,237,
- 5, 13,203, 25,238,204, 81,198,219,227,209,152,170,228,235,250,197,197,124,185,105,118,183,165,214,246,118,126,251,165, 83,183,
-237, 88, 31,141, 37, 8, 0,128,250,142,172,197, 25, 13,252, 86,213,170, 45,214,106,249,170,222,170, 25, 86,211,114,252, 48,148,
- 8, 73,199, 34,187,215,174, 89,179,229, 6, 37,150,182,170,243,127,242,167,191,155,142,105,191,254,214,135, 82,157, 99,161,103,
- 94, 58,245,212, 83,167, 38,222,113,231,237, 2,136,243, 19,167,203, 77,115,164,171, 61, 17, 81,253,144,250, 33, 77,104, 42, 66,
-160,229,184, 85,221,204, 38, 99,148,178,154, 97,205,151,106,197,134, 97, 58, 94, 54, 25,223, 58,210,251,242,165, 89,198,193, 45,
-187,183,126,244,235,207, 16, 0,225,212,201, 31, 46, 87,107, 13,211,105, 57,158,227,249,148,113,140, 81, 50,170,245,182,167,199,
-250,122,122,198,175, 81,162,105, 26,216,103, 95,121,244, 27,135,143,239, 93, 63,252,142, 59,111, 75,245,172, 7, 16,154,181,133,
- 51,167, 95, 56, 50, 49,251,198,131,187,181,120,123,101,249,226,201,153,133,246, 84, 44,174, 41, 16,130,128, 50, 8,128, 44, 17,
- 33, 64,195,116,138, 77,195, 15, 67,203,245, 77,199, 51, 93, 47,160,180, 35,157,216, 56,216,115,118,118,185, 97,218, 31,121,221,
- 77,191,241, 23,223, 72,229, 58, 9, 4,240,145, 99,103, 41,101, 4,163,100, 68, 27,236,108, 27,234,204, 13, 14,111,138,117,172,
-193,146, 66, 61,115,234,244, 51,223,121,241,132, 34,227,235, 55,143,255,198, 91, 30,136,182, 13, 34, 73,166,158,101,148,103,142,
-158,159,184,184, 84,184,115,247,166, 76,174,207, 53,138, 51, 43,165,169,229,210, 59,110,218,139, 17,246, 67, 22, 82, 26, 85,101,
-199,243, 41, 99, 65, 72,139,141, 86, 64,169,229,250, 94, 16, 74, 4,247,182,167, 7,114,109, 39,166, 22, 34,138,244,161,251,110,
-252,240,231,190,181,105,176,135,171, 26, 1, 64,108, 25,234, 25,238,238,232, 26,218, 22,205,246, 98, 44,115,206,172,202,236,115,
- 79,124,229,153, 83,151,100, 9, 31,220, 60,246,208, 77, 87,199, 51,189, 82, 36,133, 16,230, 52,240,204,106, 57, 63,125,228,226,
-108,190,166, 95,191,117,188, 51,147,161,158, 85,175, 87,102, 11, 85,140, 80, 50,170, 9, 33, 44,215, 11, 66, 26,215,180,211,115,
-249, 92, 58,209,145, 78, 20,234,186, 42, 75,132,224,222, 68,180,171, 45,233,250,225, 15,143,159,191,123,207,230,181,253, 93,255,
-225,243,223,222, 61, 62,136, 32, 88, 48, 45,184,111,223,190,175,252,206,127, 10,125, 71, 47,205,156, 57,115,236,217,179,151, 27,
-150,179,174,175,107,247,248, 64,111, 54, 19,137,103,137, 26, 67,136, 8, 33, 4, 11, 25,243,125,187,185, 82,174, 30,185,116,165,
-105, 57,123,215,141,172,233,105,215, 36,137, 11, 49, 95,170, 61,121,234, 82, 79, 91,242,218,141,163,148,241,186,105, 11, 33,116,
-203,157, 43, 85, 49, 70,130, 11,219, 11, 48, 70, 9, 77,173,155,246,114,181,177,101,184,247, 45,183,220,244,190, 63,253,239,227,
-189, 29,233, 88,164,218, 50, 21, 34, 45,152, 20, 94,123,237,181,221, 42,208, 45, 71, 8,144,142, 71,218,147, 49, 85,150, 36,140,
- 49, 66, 24, 65,136, 32,132, 16, 8, 32,132, 16, 66, 80,206, 77,215, 91,169,234,110, 16,116,166,147,109,137,168, 34, 73, 16, 0,
- 46, 68,173,101, 93, 41, 84,134, 58,218, 18, 81,141, 49,238, 7,212, 9,130,128, 50, 63,164,140,115,130, 80, 68,149, 37,140,163,
-170,162, 72,100, 58, 95, 94,170, 52, 18, 17,173, 35, 29,135, 0, 58, 65, 96,187,190, 19,132, 72,214,126,206,250,141,171,181,217,
-207,143, 50,251,247,239, 71, 16,194,159, 43,128,126,238, 10,197, 95, 40,244,191,157, 66,255,147,181, 61, 66,168,163, 45, 19,213,
- 84,211,118, 42,141,166, 16,226,127,129, 66,191,116,243, 53,217,152, 26, 4, 62,163, 44, 26, 81,179,185,238,184, 42, 1,192, 3,
-202, 77,215,119,109, 51, 34,145,186, 19,252,233,119,158,254, 87,117,100,250,251,251,151,150,150,254,193,191,141,116,119,174, 27,
-232, 57,176,125,115,123, 84, 58,115,241, 98, 84, 85,214,142,172,233, 31, 26,243,244,242,202,202,130, 19, 80,140,144, 44, 17,130,
-208,234,144, 65, 85, 36,135, 33, 30,122, 4, 75,239,251,236,195, 94, 16,254, 79,248,161,159, 84, 8, 66,120,235,213,187,255,175,
- 15,126, 32,240, 28, 73,139, 79, 77, 28,123,249,204,233,120, 68,185,110,239,117, 74,162,189, 54,119,186, 80,171, 69, 20,185,167,
-179, 43, 18,207,122,102,205,117, 77, 47, 8,253,144, 58,126,192, 1, 72,104, 74, 66, 83,141, 64,116,165, 19,255,241,139,223, 57,
- 57, 53,255, 47, 85,232,239, 29,217,215,255,240,147,219, 55,110,102,148, 34,140, 77, 55,120,252,145,175, 52, 77,231,134, 61,187,
-251,198,118,183,202,211, 19, 39,159, 81, 37,188,109,219, 53, 88, 82, 17,198,161,103, 33,140, 9,198,138, 4,100, 66, 98,170,194,
- 4,215, 45,247,236, 92,254,134, 29, 91, 45,138, 63,247, 91, 31,125,250,133,167, 63,250,151,223,253, 23,233,132,147,201,164, 97,
- 24,183,238,189,250,169,207,125,169, 51,215,137, 16, 22, 0, 44, 94, 57,247,216, 83,223,141,200,210, 3,247,190, 53,215, 59, 62,
-115,250,169,217,197,185,193,222,254,177,173, 55,202,145, 4, 66,200,170,206,155,245, 37,219,177,221, 32, 12, 41, 11, 25,163,156,
- 11, 14, 20, 73,234, 72,197, 95,188, 56,189, 97,116,124,126,101,225,154, 61, 7, 55,117, 72,133,134, 81,106,154, 63,141, 54, 3,
- 3, 3, 56,158, 72,124,242, 87,222,251,193,183,191, 71, 8, 1,132, 96,140, 77,158,121,238,208,177, 87,214,246,117,221,126,223,
- 47, 3, 32, 94,125,241, 59, 45,219,217,177, 99,127,186,115, 77, 36,209,230, 91,186,171,151,104, 96,115, 22,114,206,129, 0, 0,
- 10, 4, 17,130, 16, 64, 40,128, 64, 16,118,167, 19, 63, 60,113,250,182,107,111, 40,149,151,134,122,250, 24,243, 71, 59, 82,103,
-231, 11, 63,149, 66,191,243,190,247,221,117,221,205, 16, 64, 22, 58,182,239, 79, 28,127,236,228,197, 75,123, 55,174,187,234,198,
- 7,237,198,202,169,163,143,115, 33,174, 62,112,191,146,200, 74,178,106, 86,230,173,234,156,103,213, 24, 13, 48, 66, 24, 33,159,
- 82,198, 56, 66, 16, 33,136, 33, 4, 0,112, 1, 16,134, 93,137,216,197, 98,133, 7,110,103,174, 59,180, 42, 16,192,117, 61,185,
-249,170,225,250,193, 63,173, 16,145,101, 21, 2, 16, 56,134, 29,210,133,137, 23,206,205,204,238,223,190,109,253, 85,119,183, 10,
- 83,231, 78,191,128, 17,220,117,240,141,152,200,161,107,214,150,206, 85,107, 37,221,118, 77,199, 11, 40,133, 16,198, 53, 53,155,
-140, 97,140,116,219, 77, 70, 53,153, 96, 4, 1, 23,212,241,130,152,166,158,157,156,189,254,254,183, 28,122,229,185,205,253,189,
-199,175, 20,210, 81,245,147,111,185,117,243,186, 77,181,122,233, 61,159,254, 90,185, 97,252, 99,126, 72, 4,158, 25,114,176, 50,
-249,202,201,139,147,251, 54,111, 88,191,231,174, 86,233,202,196,185,151, 48, 70, 59,174,125, 29,150, 20, 79, 47, 87, 22, 78,151,
-234,141,170, 97,214, 12,203,176, 61, 55, 8, 1, 16,154, 34,199, 84,121,164, 59,151,141, 71,139,205, 86,111,123, 90, 38, 24, 66,
-232, 7, 97,177,174,239, 30,237,155, 93,156,209,180,184, 68, 72, 86, 35, 30, 7,166,235, 89, 70, 37,166, 42,239,190, 97,207,167,
-126,112,200,255,135,252, 2, 18, 52, 4,144,228,167,143, 29, 57,123,118,215,248,200,250,171,238,177,170, 11,211, 23,142,112, 1,
- 54,239,188,153,200, 17,183, 81, 40,207,159, 44,212,234,133,134,145,175,233, 75,213,166,233,122,219, 71,251,111,220,190,254,154,
-245,195,185,100,194,114,253,154,233, 68, 21,217,176, 29,140,145, 42, 75,137,168,102,121, 1, 68,240,225,231, 94,188,122,203,142,
-211, 87,230, 55, 12,245, 94,154, 95,145, 8, 46, 55,154,165, 90, 45,161,201,155,122,115,255, 8,101, 2,128,234,202,229, 39, 95,
-121,101,235,112,255,182,253,175,119, 91,149,185, 75, 47,187, 65,176,118,124,179,150,204,186,122,177,190,116,174,210, 52,106,134,
- 89,106, 24,134,237,188,245,142, 59,114,237,221,190, 99,112,234,115, 78,123,218, 29,195, 50, 13,219,201,196,163, 71, 39,231,186,
-210, 41, 69, 75, 96,226, 12,119,102,127,112,244,252,166,238,172,128,168,233,120, 35,237,137,181,125,157, 11,165,122, 50,170, 57,
-126,232,248, 65, 42,149,138,170, 85,219,251, 73,147,194, 7,182,109, 62,122,244, 80,127, 46,115,227,237, 15, 81,223, 93,186,116,
-184,209,178,122, 59, 58,115, 67,219,125,171,161, 23, 46, 85,155,205,138,222,154, 47,213,251, 59,178,111,126,221,219, 60, 61, 63,
-115,101, 34, 95,204, 27,173,166, 4, 25, 70, 0, 33,168, 41,178, 23,132,140,115, 85,150, 18,169, 14, 72,100,196, 3,211,245,182,
- 12,245, 46,234,206,250,190, 30,219,210, 9, 70,203,181,102, 34,162,113, 33, 12,219,169, 54,154, 7,182,172,203,215,117,203,245,
-255,222, 45, 75, 68, 72, 71, 76,190,255,158,183, 33, 34,151,166,143,148, 26,205, 84, 84,235, 94,179,147, 83,223, 44, 95,169, 55,
-106,165,102,107,182, 84,187, 99,223,190,117,235,182, 77,156,123,225,204,149,249,201,229,178,238,122, 50,193, 8,193,168, 34,187,
- 65, 16,141,196,161, 96,201,104,116,169, 92,235,237, 25,192, 88, 18, 44, 64,128,122, 76, 28,191, 52,189,127,231,213, 39, 46, 78,
-180,199, 34, 45,199, 93,173, 66, 45,215,111, 57,222, 64, 71,219,111,191,245, 13,215,142,119,253,240,228,165,213,240, 60, 48, 48,
-128, 16,130,247, 92,127,163, 18, 75, 55,150,206, 21,107, 53,153,144,142,174, 97,193,153, 93, 95, 54,140, 90,213,176, 12,219,121,
-203,221, 15,196, 99,241,147, 39, 15,159,156, 90, 60, 63,183,130, 16,220, 60,208, 61,210,149,205,196,162, 16, 65,130,137,227, 58,
-178, 68, 18,137,100,205,180, 33,194, 88, 82, 48,145,227,154, 54,103, 50,221,178,177,164, 22,124, 44, 17,156,142, 71,188, 32, 92,
-197,146, 96,124,105,177, 16, 73,230, 70,215,108,220, 56, 50,240,119, 54,180,113,104, 32, 55,184,213,172,204, 23,139, 11, 66,136,
-246, 84,146, 40, 49,175, 85,182,244, 98,195,180,101, 66,110,189,241,222, 86,101,246,204,212,212,249,249,252, 98,165,177,121,168,
-231,142,221, 91,163,201,118, 8, 4,103,129, 96,161, 26, 81,150,242, 11,241,142, 78, 34,105, 33,101, 16, 66,136, 8, 0, 0, 99,
-164, 51,220,166, 32,192,130,181,109, 90, 64,105, 84, 85, 12,219,245,130,112,213,117, 45,149, 27,190,221,136,166,186,118,141, 15,
-157,155,121, 45,234,145,100,110,208,183, 27,229,165,139,174, 31,166,162, 17, 45,214, 22,184,134,219,170, 52, 45, 55,155,206,180,
-247,140,151, 23,206,158,157, 93, 60, 63,151, 95,172, 54,118,141, 14,188,249,182, 59,162,217,129,208,179, 66,215,192, 92, 19, 60,
- 20, 0,218, 94,136,176,140, 37, 25, 10, 0, 32,130, 8, 9, 78,185, 16, 65,171, 49,146,203, 52,235,133,117,189, 61,167, 47, 79,
- 70, 85, 89,194, 56,160, 44,228, 12, 1, 24,215,148, 90,181,208,147,232,232, 80,209,143, 93,123, 70, 27, 43, 19,186,101,171,178,
- 20,143,197, 4,167,190, 89,245, 2,191,175,111, 52,211,222, 55,123,249,228,209,201, 43, 39,166, 22,166,243,229, 61, 99, 3,239,
-124,243, 47,101, 6,183, 65, 68, 2,215,240,173, 6, 34, 50,146, 34, 68, 82,108,207, 23, 0, 64, 36, 65, 4, 16,194, 0, 64, 26,
-250,156,113,230,218,201,168,118,105,118, 54,158,238,104,134, 16, 65, 68, 8, 9, 41, 99, 76, 64, 8,147, 81,173,214,172, 83,223,
-138,170,210,103,223,251,186,119,222,188, 87, 0,128,124,171, 94,111,212, 32,130,241,136,138, 16, 14, 61, 19, 73,114,231,192,230,
- 48,112,206,156, 63,241,194,133,233,227,151, 23,166,242,229, 91,118,110,124,239,187, 62,162,165,186, 91,197, 25,175, 85,229,161,
- 95,174, 20, 32, 34, 88,146, 57, 99,126, 24, 0,193, 1, 68, 64, 0,132,136, 16,220, 15, 60, 46, 4, 15,125,130,209,196,220, 2,
- 38,170,225, 6, 66, 8, 12, 33,227,156, 49, 6, 17, 76, 69, 53,132,144,111,214, 60, 63,236, 72,167, 94,127,205, 86, 33, 4,113,
-109, 35,136, 68,162,138,162,200, 18,132, 68, 75,182, 35, 73, 93,153, 63,119,106,122,113,186, 80, 89, 40,215,155,166,253,177, 55,
-221,121,237,205,111,243,172,134, 85,152,146, 35,105,136,144,224,172,222,178,135, 17,130,136,184,142, 73,185, 96, 52,100,212, 71,
- 8, 1,132,121,224,120, 65,200,185, 16,140,114,206, 11,181, 6,128,130,200, 50,227, 28, 66,192, 56,167, 92, 16,132, 50,241,168,
- 76,136,107,213,171,134, 25,112,212,215, 53, 6,192, 5, 18, 50,166, 74,114, 76, 83,101, 45, 35,107, 73,203, 40,189,122,105,114,
- 98,161,176, 82,107,150,155,173,182, 68,228,107,127,244,199,233,238,177,210,228, 97, 76, 20, 53,145, 69, 68,225,140,249,110,203,
-246,124,132, 37, 8,209,114,113, 69,147, 36,193,169, 99,183, 52, 89, 66, 8,133,142,238, 5, 20, 33, 8, 32, 98, 0,184,126, 32,
- 56,143,104,145,144,185, 92, 8,202, 57, 19, 76, 37, 82, 38, 30,149, 8, 54,108,183,172,155, 45,207, 67,152,172, 78, 72, 80, 60,
-162,170,209, 52,103,225,153,179, 71, 95,185, 60,183, 82,211, 27,166,237, 5,225, 7, 30,184,235,166,219,223,106,233,229,217,227,
-223, 76,119,172, 81, 98,109,136,200, 0, 0, 26,120,245,102, 29, 35,184,250,241,202, 74,126,176,179, 3, 17,165, 82,175,167, 19,
-113, 0,161,221,106,120, 33,141, 42,114, 64,169, 16, 64, 0,193, 89,152,136, 70,124,195,228,140,115,206,129,128, 81, 85, 73, 69,
- 53, 4, 97,177,217,106, 88, 14, 11, 2,223,105, 1, 0, 8, 4,192,241,131, 43,133,203, 39,167, 23,230, 75, 53,195,241,130,144,
-222,182,107,211,187,222,241, 97, 36,201, 83,199,191, 31,139, 68,115,131, 59,136, 22, 67, 8, 67,128, 24, 13,124,179,182, 88,169,
-119,183,181, 33,132, 57, 11, 75,205,214,238, 13,235,212, 88,118, 97,226,210,248,208, 16, 16, 64,183, 90,140, 49,130,145,227,249,
- 2, 0,140, 16,103,129, 36,168,233, 7, 84, 8, 38,196, 42, 10, 81, 77, 9, 40, 91,174, 53, 29, 63, 76,197, 35,133,252, 44, 4,
-144,204, 20, 42, 51, 87,102, 42,186,105,185,126, 64,233, 27, 14,236,190,239,117,239,210,162,201, 43,167,159,246,237, 70,247,240,
- 86, 53,158, 69, 68,134, 16, 1, 8, 5,167,161,103,230,243, 87, 10,117,227,234, 29,123, 33,150,234, 43,147,148,241,246,142,126,
- 34,199,138, 13,253,224,213,125, 52,244,154,150, 3, 33, 36, 24,121, 65, 8, 1,148, 8,102, 65, 0,104,224,248, 62, 68, 8, 10,
- 40,203, 56, 29,139, 40,132, 24,142,187, 92,109, 42, 18, 73, 69,213,195,231,167, 0, 4,164,172,155, 78,163, 30, 83,200,187,239,
-185,227,166,155,239,103,140, 93, 62,115,216,104,228,199,214,110,143,143,237,194,146, 2, 33, 18, 64, 64, 8, 5,231,190, 99, 22,
-231,207, 94, 92, 40,100,227,209,116,215,168, 16,224,240,171, 39,187, 51,113, 46,160, 99,214, 4, 16,106, 60,219,200, 95,118,188,
- 32, 25,213, 16,132, 94, 16, 34, 4,101,140,105,232,176,192,117,252, 80,149,101,140, 97, 92, 85,226,154,202, 5, 47, 54,140,154,
- 97, 14,230, 50, 64,136, 99,147,115,160,125,128,236, 24, 31,121,251,109, 31,140,101,251,141,234,242,147,143,124,129, 32,178,125,
-219, 85, 99,155,247, 97, 73, 1, 16, 9,193, 1,128, 8, 2, 78,169,107, 84, 86,102,142, 95,152,207,215, 76,235,193, 59,239,193,
-146, 82,156, 59, 55,185, 88,252,181, 7, 31,148,213,232,233, 51,175,140,247,118, 1, 1, 11,165, 60,101, 92, 38,132, 11, 17, 80,
-134, 32,196, 24,211,192,133,140, 57,126,160,200,178, 66,164,100, 52, 34, 75,164,229,248,139,149,134, 31,210,209,158,142,138,110,
-186, 94,168, 10, 64,186,187,135, 39, 47, 30, 63,121,233, 43, 27, 6,122,175, 61,112,175,150,104, 71, 8,115, 8,225,107,131, 75,
- 4, 32,160,190,211, 42,205,204,205, 78, 92, 41, 84,203,122,235,186,173,235,219,250, 55, 81, 71,255,203,239,125,119,211, 80, 79,
- 58, 55, 40,168,119,126, 33,255,224,109,119,178,208, 89,169,235, 24, 35, 85, 38,140,243,144,177,213,179, 11, 66, 31, 33,232,248,
- 97, 38, 46,162,170, 28,143, 40,140,243,149,106,179,212, 48, 52, 69,238,202, 36,206,206, 46, 15,119,101,243, 64,160, 87, 78,190,
-236, 5,244, 61,239,248,192,129,219,223,169, 37, 59, 0,128, 92,112,193,168,224, 92, 8,192, 89, 96, 85, 23,230,207, 61,243,234,
-217,227,151, 22,139, 13,211,218, 61, 62,180,105,239,189, 64,240,111,127,247, 43, 4,163,123,238,122, 11, 38,100,110,234, 85, 77,
-150,226,233, 92,171,158,111, 90,142, 68,176, 42, 75,148,113,198, 56,132, 16, 35,228, 7, 20, 0, 24, 80,138, 49,138,105,170,132,
-113,211,180,231, 74, 85,219, 11,186,210, 9,140,208,153,217,229,155,119,108, 0, 0,144,253,251,111,217,187,123,143,239,180, 4,
-180, 48,145,132, 0, 16, 8, 1, 32, 99,129,171,151,107,203, 19,139,165, 74,169, 97,152,158,255, 66,154,160, 0, 0, 32, 0, 73,
- 68, 65, 84, 15, 33,216, 53, 62,180,227,218, 7, 32,196, 47, 61,253,213, 75, 75,133,247,189,238, 94, 37,154,242,205,218, 11,103,
-207,239, 30, 31,134, 8,231,139,139, 1,101, 10, 33, 4,227,144,113, 14, 4,130, 16, 99,228, 5, 33,231, 28, 35,132, 33,146, 9,
-118,253, 96,161,210, 44,235, 45,140, 96, 95,123,166,164,155,134,227,142,244,246,130,179, 43,132,134, 1, 0, 64,137,196, 0, 64,
- 64,112,193,194,192,179,157,198,114,181, 52, 95,168, 55,203, 77,211,116, 61, 0, 64, 76,147,119,140,141,174,217,126, 51, 34,234,
-185,151,191,251,196,137,243, 15,222,112, 77,207,218,171,169,239, 92,185,120,212,246,130,145,145,205,212,179, 22, 43, 13, 9, 33,
- 69,150, 16,132,140, 50, 40, 0, 4,128, 32,100,251, 65,200, 89, 92, 83,184, 16,142, 31,180, 28,119,169, 82,247, 2,218,145, 74,
-164, 98,145, 87, 46,205,110, 28,232, 90,101,126, 19, 40, 24,132, 16, 32, 41,116, 90, 78,179,160, 87, 23,106,141, 90,213, 48,235,
-134,109,186, 62, 7, 34,166,202, 61,109,169, 45,155,118,103, 7, 54, 3, 0, 78,189,240,205,111,189,112,236,254,107,182,173,219,
-117, 27, 11,125,171,190,116,100,226,242,198,129,110, 89,139,235,165,153,124,205,200,165, 98, 42, 33, 2, 8,202,249,106, 79, 4,
- 35,104,187,126, 16, 50, 85,150, 28, 63,108, 57,110,181,101,233,150,131, 49,234,201, 38,221, 32,156, 43, 86,223,127,247,117, 47,
-159,191,128, 32, 36, 88,214, 56, 13,106,139,231,170,165,249,138, 97, 53, 76, 71,183, 29,215, 11, 56, 16,154, 44,119,167,226,227,
-253, 61, 67, 27,246, 43,241,182,208, 49,159,125,242,107, 47, 93,156,121, 96,223,142, 77,187,110, 1,156, 7,142, 62, 53,121, 74,
-183,157, 13,195, 59, 57,163,213, 70,173,214, 50,199,122,114,178, 68, 24,227,156, 11, 8,161, 0,128, 96,220,114,220, 32,164, 92,
- 0,211,117,109, 47,104,154, 54,227, 60, 27,143,101,147,241, 75,139,133, 76, 34, 54,144,107,251,244, 35,135,226,253, 99,196, 40,
-205, 28, 63, 52, 93, 49, 44,195,118, 45,215,243, 66, 10, 4, 80, 21, 41,151,136, 14,117,180,141,142,239, 72,118,143, 35, 68,154,
- 43,147,127,243,200,183, 13,199,123,227,129, 93, 35,235,174,193,146, 28,250, 86,125,229,210,241,203,243,163,221, 29,241,116, 87,
-232,181, 42, 77,195,241,195, 68, 68, 37, 4,211,213, 0, 1, 0, 16,130, 96,100,216,110,200, 88,200,168,237, 5,166,235, 5,148,
-169,178,212,211,150, 10, 41,155, 90, 41,191,241,192,206, 83, 87, 22, 35, 50, 17, 0,144,185,124,209, 36,204,241,195,128, 82, 0,
-128,166, 72,217,120,172, 63,151, 30, 25, 28,109, 31,220, 74,212, 56, 11,220,139,175, 62,250,240,161,151,251,219, 51,247,237,221,
-218, 51,180, 85,210,162, 52,240,236,250,242,133, 43, 87, 12,199,189, 97,235, 90,132,136,109,148,202,134,137, 17,210, 20, 25, 67,
- 24, 80, 10,128,128, 16, 50, 33,100,130,155,150, 11, 33,244, 2,234, 5, 65, 16, 50,140, 80, 54, 17,203, 38, 99, 19, 11,133,182,
- 68,116,195, 64,215,199,190,244,253, 53,221,217,138, 0,196,114, 61, 2, 67, 46, 68, 68,150,219, 18,209,254, 92,102,184,111,160,
- 99,120,187, 28,205, 0, 32,140,226,229,103, 14, 61,113,108,106, 97,239,186,225,109,107, 6, 50, 61,107,165, 72,146,211,208,179,
-234, 43,203,211,103,231, 86, 70, 58,219,211,169, 12,163,190, 97, 26, 21,221, 76,197, 52,140, 17,132,144, 50, 46, 4,192, 8, 82,
-198, 8,198,186,237,168,178, 20,132, 97,200, 56,130, 32,174,105, 61,217,180,105,123, 75,149,198, 59,111,217,251,252,217,169,100,
- 68,237,207,101, 42, 77, 64,184, 16,138, 34,181, 39, 98, 3,237,153,225,190,254,246,225,237,114, 52, 13, 33,244, 45,253,210,169,
-167, 30, 57,122,154,113,113,215,158,205, 35, 61,221,241,246, 33, 73,137, 11, 70, 67,207,210,139, 51, 23,230, 11, 97, 72, 71,186,
-179,146,172,176,192,105,217,110, 69, 55,199,123, 59, 94, 27,254, 49, 14, 4, 80, 37,201, 15, 41,132,176,101,123, 0,192,144,114,
- 4, 97, 76, 83,186,219, 82, 49, 85,126,254,220,212,230,225,222,254, 92,219,167,127,112,104,231,216, 64,203,246, 0,212, 72, 91,
- 60,118,205, 72,110, 96,112, 60,211,187, 94,142, 36, 32, 64,161,111, 45, 93, 58,242,196,209,227,151,150, 75,219,134,122,119,175,
- 29,202,101, 59,213,100, 39,145, 85,193, 40,165,158, 93, 95,158, 45, 86,166,243,149,193,142,182, 76, 44,202, 57,103,129,165, 59,
- 94,195,180,187,210, 73, 33, 4,227, 60,164,140, 11,209,158,138,181,108,151,114,142, 17, 10, 41, 69, 8,198,101,181, 35,157, 72,
- 69,181, 51,115,203, 18,198,111, 56,176,235,143, 31,126,124,253, 64,119, 79, 91,250,165,137, 25,212, 57, 68,214, 12,141,238, 60,
-120, 27,150, 53, 0, 68,232,182,242, 51, 39,159, 62,122,244,204,236, 74,103, 38,241,186,189, 91,135,187,114,177, 84,167,164, 37,
- 32,194, 44, 12, 4, 15,125,187, 89,170, 85, 38,151, 75, 16,130,254, 92, 90,150, 8, 15,221,192,247, 45,215,179, 92, 63, 25,211,
- 86, 35, 70, 72, 41,101,188, 51,157, 92,172, 52,227, 17, 37, 21,211,188,144,166,162, 90, 71, 58,129, 33,186,176,144, 47,212,244,
-223,122,243, 93, 47,156,159,178, 28,127,164,171,125,185,218, 72,199, 34, 6, 0, 68,141,103, 17, 38,174, 81, 90,186,124,236,249,
-211,231,207,204,173, 36, 52,245,250,173,107,215,245,119,101,146, 41, 57,154,193, 68, 21,156,113, 74, 57,243, 89,224,182,244,202,
-108,177,154,175, 53,251,115,153,116, 44, 2, 0,160, 97,224, 82,106, 58,126,200,185, 68, 48,227, 2, 80,238, 6, 97, 64,153, 38,
- 75,115,229,250, 0, 73, 67,136, 86,109,171,162,155, 11,229,186,227, 7,191,251,150,123, 46, 47,229,191,253,210,169, 27,183,174,
-211, 20,105,161, 92,167,140,195, 24, 32, 86,125,233,212, 11, 75,199, 46,207, 94, 92, 44, 98, 4,119,143, 13,108, 24,232,105, 75,
- 68,163,170,130, 37, 85, 48,198,184,195, 5, 19,212,167,161,231,251, 94,161, 97,204, 22, 42, 8,194,174, 76, 82,150, 36, 46, 4,
-227, 34, 8, 66, 55, 8, 49,132,156, 3, 46,184,224,194,116, 60,198, 57,229,188, 35, 21, 55,108,151, 11, 97,123,126,163,101, 49,
- 46, 54, 12,116,221,125,213,214,207, 63,241,226,201,233,197,187,174,218,236, 6,116,105,165, 44, 75,164, 98, 52,211,237, 0,222,
-125,227, 1,225,123, 94, 16, 40,178,212,145, 78, 36, 34,154, 76, 86,135,101, 8,175, 14,203, 32, 16, 66, 0, 1, 24, 23, 65, 24,
- 86, 91, 86,190,166,199, 53,181, 51,147,140,107, 10, 70, 72, 0,225, 5,116,185,210, 88,174, 53,175, 90, 55, 44, 56, 23, 96,149,
- 16, 10,130, 48, 12, 40, 3, 16, 40,146,164, 73,146, 44,145, 68, 68,181, 92,255,244,236, 18,101,108,172,167,195,176,221,168,170,
-232,182,195,185,104, 57, 94, 44,219, 1,247,239,223,223,108, 54,117, 93,255,121, 27, 11,253,175, 21, 33, 68, 42,149, 74,167,211,
- 4, 0, 96, 24,198,242,242,242, 47, 64,249, 31, 73,158,233,116, 26,253, 2,136,255,205,134,101,191, 0,232, 23, 0,253, 2,160,
-255, 95, 9,249,183,219, 58, 22,137,100, 98, 90, 91, 34,214,211,158,233, 76, 37,210, 49, 45,170, 72, 64, 8, 26, 4, 1, 13, 41,
-165, 66, 8,136, 16,198, 88, 34, 68,150,100, 6, 68,203,241, 29,159, 46, 85, 27,165, 70,211,112,252,122,203, 54, 29,231,255, 11,
- 0, 65, 0, 0,132, 0,128, 7,111, 62,184,111,188,191,217,168,214, 90,118, 16, 82,132, 96, 68,145,210,177,104, 91, 58,149,206,
-118,196, 98, 41, 9,242,208, 49, 45,179,233,250,126, 64, 41,125,173,176, 5,171,156, 41,210,158,146, 8,129,210,168,203, 97,163,
-101,249,174, 21,147,112, 91, 34,166,168,234,151,158, 61,249,204,169, 9,202,216,191,119,176,223,191,127,255,194,194,194, 63, 70,
- 33,248, 9,105, 75,196,239, 59,176,111,203,232,112, 46,149,136, 41,114, 50,149, 38, 68, 54,205,198,242,210,236,114,177,216, 52,
- 45, 1, 96, 58,166, 14,247,246,166, 50,157,106,188, 45, 30,141,249,102,213,168, 23,245,150,238,250, 1,227,130, 96,164, 74, 68,
- 83,100, 85, 81, 9, 33, 8, 66, 32,184,224,156, 11,206, 57,103, 66, 8, 33,248,106,195, 86, 8, 1, 0,130, 16, 33,196, 4,176,
-252, 48,161,144,136,166, 78,230,235,127,244,141,199, 43,186,249,111, 13, 77,127,127,255,224,224, 32,249,167, 51,165,157,235,214,
- 94,191,123,215,125,215, 93,151, 74,166, 56, 99,148, 81,140, 8,194,196,243,221,114, 97,110,226,252,137,249, 66,222, 13, 88, 76,
-149,250, 59, 59,175,222,190, 39,147,235, 7, 88, 2,212,107,150,102, 75,115,103,230,253, 0, 66, 16, 85,213, 92, 91,123, 34,213,
-161, 68, 18, 66, 0, 70, 3, 78,125,206, 25, 16, 76, 48,202, 89,192,105,192, 89,200, 56, 99, 92, 48,206, 66,202, 61, 26, 58, 94,
- 96,121,190, 23, 80,130, 81, 71, 42,222,155, 78,105,209, 68,195,246,198,123,187, 31,253,195,223, 14, 41,251,204,247, 30,253,206,
-145, 83, 65, 72,255,189, 45, 40, 21,143,125,252, 61,239,190,227,192, 13, 16,225,213,163,132, 16, 66, 8, 57,163, 65, 72, 27,213,
-229,185,203, 39,167,151,243, 94, 64,163,170, 50,216,217,190,113,211,158, 88,166, 23, 99, 28,122,102,105,254,116,169, 82,118,130,
- 0, 35,146,137,199,186,186,135, 18,157,107,104, 24,112, 22,200, 74, 84, 8, 30,186, 45,223,106, 4, 78, 51,240, 29,202, 24,227,
-156, 49, 46,192,107,246,242,163, 71, 33, 16, 2, 8,128, 0, 64, 0, 65, 41,211,109,247, 74,169, 46, 43,234, 13,219,183, 37, 83,
-237, 51, 75,243,163, 99, 91, 36,132, 29,163,116,241,242,217, 35,211, 43,223,122,225,196,143,207, 71,127,198, 22,244, 35, 10,210,
-239,190,231,221, 15,222,121,175,172,168,156, 49, 0, 4,132, 8, 8,206, 89,200, 5,104,181,244,202,252,185,137,169,139, 53,195,
- 34, 24,117,183, 37, 55,109,220,209,217,191,129,200, 26, 11,253,218,210,249,252,202, 21,221,116, 56, 0,233, 88,100,120,205,166,
- 76,247, 24, 13, 3, 34, 41, 68,209, 8, 13,125, 71,247, 90,149,192, 53,168,103,210,192, 9, 41, 99,124,117,212, 33, 94,123,184,
- 3,192,223,251, 17, 0, 0,176,218,164, 39,152,180, 37, 98,153,120,180,229,184,143,189,252,114, 34,157,189, 99,223, 65,179, 81,
- 44,214,171,235,199,183,110,219,118,160, 59, 59, 57,152, 77, 6,190,127,113,169,244,248,169,201,213,230,214,207,204,130,174,189,
-246, 90,230,218, 31,122,224,129, 93,219,246,176,191,213, 21, 0,193,105, 0,132,112, 3,218, 50, 42,149,133,137,137,233,203,150,
- 23,196, 53,101,180,191,119,221,198,189,241,246, 1, 33,128,103,148, 10,115,103,138,149,162,237, 5, 10,193,157,185,142,222,145,
-237, 74, 44,195, 25,149,181, 24, 0, 32,116, 91,129,107,133,158,197, 66,151,135,190, 16, 92,112,202, 89,200,105, 64,105, 16, 82,
- 26,210, 85,148,196,143, 46, 53,248,219, 55,215,175,153,149, 0, 2, 8, 0, 4, 4, 16, 64, 72, 25,155, 43,214, 10, 14,127,240,
-166, 27, 41,101,199, 47,158,187,102,243, 86, 89,137, 52,138,211,199, 38,103, 41,163,142,227,214, 45,231, 74,169,113,124,102,217,
- 15,130,127,189, 5,193,125,251,246, 61,112,221, 13,119, 93,179,143,115, 1, 17,226,140,178,192,133, 8, 91,158,223,106,150, 43,
-139, 23, 46,205,206,249, 33, 77,199, 34,235,134, 6,214,108,190, 78,137,101, 4,103, 86,109,177, 56,119,182,220,108,184,126, 24,
- 81,164,222,174,222,238,209, 61,144,200, 16, 34, 34,201,161,103,251,102,221, 51, 43,190,173,123,174,233,133, 33,165,175,249,151,
-213,222, 48, 65, 72, 38,132, 16, 68, 48, 6, 64, 56,126,184,202, 8, 35, 24, 17,140, 49,132,171, 79,212, 0,128,171,240, 49,198,
-153,224, 16, 66,130, 48, 66, 48, 95,107,156,202,235,239,184,253,246,168, 68,126,248,202, 75,187,199,199,218, 82,153,114,225,202,
- 75,151,230, 52,130, 24,231,134,237, 38, 35, 90, 71, 38,177, 88,107, 45,214,140,166,105, 79, 45, 23, 43,186,249, 47, 50,174,191,
-187, 98,156, 81, 33, 4, 0, 34,176,117, 44,201,110, 16, 6,110,125,241,242,137, 75,243, 11, 94, 24,102,226,209,221, 27,215, 15,
-111,220,175, 68, 83,156,134,173,210, 76,121,241, 66,165,169,123, 97, 24,145,200,218,145,209,174, 53,187,177,164, 0, 0, 1,103,
-190,163,183,154, 5, 91, 47, 90,142,101,185,190,227, 7,142, 31,184,126,232,135,161, 23,210,144, 50,202,216,107,113, 29, 33,137,
-224,152,170, 36,163,106, 42, 26, 73, 68, 53,193, 69,181,101, 49, 46, 82, 81, 85, 33,146, 68, 16,128, 16, 35,204,133, 64, 16,114,
- 42, 92, 63, 8, 41,143,105, 74, 95, 46, 11, 32,250,222,161,231,223,116,235,157, 55, 95,181,239,185,227, 47,239, 28,233,203,164,
-115, 91, 7,156,199,207, 78,183, 37,147,153, 88,132, 11, 16, 82,182,127,253, 80, 38,219, 67,228, 88,232,232, 75,249,249, 39,207,
- 78, 63,114,252, 66,203,241,254, 5,156,179,254,254,254,245, 67,195,107, 58,115,140, 6, 33,227,182,101,148,230,207, 29, 57,250,
-252, 66,169, 18,211,228,237,227, 99, 87,239,187,187,107,100, 59, 66,200,170, 46, 21,102,142, 46, 45, 76, 53, 90,166,132, 97,111,
-103,207,216,214,235,219,122, 55, 64,136, 56, 13,189, 86,165, 85,154,110, 20,167,106,181, 66, 77, 55,170, 45,187,222,178,234, 45,
-187,106,216,245,150, 85,107, 89,117,211, 54,108,215,246,124, 33, 0,132,144, 11, 33, 56,160,140,187, 65, 96,216, 94,189,229, 48,
- 46,186, 50, 9,137,224,197,114,131, 50,166,201,146, 76, 48, 33,152, 96,132, 17, 34, 8, 35,132,252, 48, 92,169,233,130,139,222,
-108,186,161,235, 51,133,210,246,117, 27,219,162,218, 51,231, 38,123, 98, 56, 30,141,196, 36, 60, 49,183, 84,110, 57, 93,233,120,
- 68,150,252,144,134,158, 69, 61,221,245, 44,202,133,140, 17, 34,146,132, 68,205,252,231,243,207,100, 50,153, 74,165, 8, 0, 64,
- 48, 10, 32,106, 52, 74,174, 81, 62,118,234,104,189,101,199, 52,121,203, 72,255,250,205,215, 36,114,195,130, 83,187,190,210,204,
- 79, 86,106, 69,219, 13, 32, 2,157,153, 84,215,224,230,120,199, 16, 16, 48,116,205,192,214, 29,163,104,235, 37,211,113, 44,215,
-179,188,192,118,125,211,245, 45,207, 51, 29,207,241, 3, 77,145,215,246,117, 15,245,118,247,116,245, 75,146,194, 5, 23,140,113,
- 22,178,192, 9, 3,215,245,220,150,227, 90,174, 7, 33, 40, 54, 90,169,152,182,105,168,251,226, 66,193,241,130,225,174,108, 92,
- 82, 49,145, 1,128,156,133,178,132, 37, 66, 16,132, 39,103, 22,155,182,179,125,164,239,219, 71,207, 29,187,112,102,239,214,221,
- 7,215, 25,135,103, 22, 15, 12,180,117,101,146,187,198,250,207,204,174, 76, 46, 21, 55, 14,118, 71, 53, 37,160, 52,176,104, 72,
-153, 19, 4,148,243,246,136,100,229, 58,214, 50, 62, 83,110,254, 52,105, 39, 1, 0,216,182,169,151, 23, 78, 28,125,110,182, 84,
- 37, 24,175,233,204,110,221,178, 43, 55,176, 9, 34,236,155,117,163,124,165, 94, 89,212, 45,151,113, 30,213,228,142,142,190, 76,
-239,122, 73,141, 49,223, 11, 29,195,107, 85,156, 86,209,180,109,219,243, 77,215,183, 28, 79,183, 93,195,113, 91,182,219,158,140,
-222,124,213,206,145,209,173, 0, 0,207,172,217,122, 89,175, 45, 9, 14, 16, 20, 24, 35,132, 37,140, 9, 68, 72, 83,100, 85, 38,
-157,153,180, 31, 4,166,235, 10, 33,108, 47, 88, 63,216,115,252,242,220,124,169,182,174,191, 75,214, 20,136, 85, 0, 56,161, 33,
- 33, 54, 70,112,215,216,192,145, 75,115,170,162,220,180,121,244,145,163,199, 71,122,251,251,134, 54,174,111,181,206, 21,234, 27,
-187, 51, 93,153,148, 23,210,133, 82,125,169,210, 64, 16,101,147, 81,140,113, 16, 82,215, 15,189, 32,148, 9,193,126,115,120,100,
- 13, 80, 11,147,115,255,124,122,140, 7, 6, 6,228,176, 53,113,225,116,177,161,119,164,227,215,110,217,188,253,170,219, 18,185,
- 1, 22,248,173,234,124,101,225, 92,185, 90, 52, 29, 15, 99,212,158,140,119,245,173, 77,228, 70, 32, 66,161,219,114,141,162, 93,
- 95, 50,155, 37,195,178, 13,199,109, 90, 78,177, 97, 20, 26, 6, 4, 98,199,250,181,183, 30,188,121,203,134,237,152,123,197,229,
-203,139, 11,211, 87,150,230,103, 11,165,249, 98,117,169, 82, 43, 27,173,166,233,216,158, 23, 6, 1, 66, 66,194, 36,164, 52, 8,
- 67,137,144,120, 44, 1, 1, 39, 8, 73, 68,138, 40,210,228,114, 41,161, 41,169, 68, 82, 82, 98,152, 40, 8, 75, 8, 97, 12,132,
-132,160, 42, 73, 19,203,149,117,189, 29,129,239, 21,117,107,108,112, 56, 25,139, 79,173, 44, 19,206,226,154,130, 49, 6, 0,248,
-148,250, 97,184, 26, 25, 67,198, 87,137, 83,171,237,123, 55, 12,239,222, 54,246,190,219,175,121,253,190,237,187,198,250,101, 66,
-150,106, 58, 99,252,127,188, 98,120, 96,112, 48,180,173,132, 4,182,175, 25, 60,184,239,166,158,209,157, 0, 17, 79, 47, 55,150,
-207,151,139,115, 77,211,166,156, 71, 85, 37,215,214,150,233, 26, 83, 98, 25,206, 2,223,110,184, 70,201, 49, 10,166,101,182, 28,
-175, 97, 58,197, 70,171,105,217, 61,237,217,155,174,222,183, 99,199,190,100, 44,214, 40,205, 78,207, 92,152, 92, 88,188, 82,168,
- 92, 94, 41, 47,148,235,134,229, 8, 0, 98,170,146,138, 70,146, 81, 53, 34, 43,178,132,129,128, 8, 1, 69,150, 86, 31,161, 72,
-152, 68,180,152,224,148, 96, 28,141, 68,106,186, 97,123,126, 87, 91, 70,141, 36, 17,145, 33,194, 2, 64, 32, 24,224, 20, 35, 88,
-119, 66, 6, 96,111, 58,122,114,102, 97,253, 96,127, 50,209, 6, 3,251,116,190,214, 17, 37, 4, 99,136,160, 16, 34,160,140,114,
- 14, 0,224,156,135, 33,243, 66,234,135, 52,164, 84,183, 28, 85,150,183,173, 25,236, 25,220, 52,208, 59,184,169, 59,217, 22,215,
- 46,175,148,127,156, 94,253,183, 62, 72,136,206,116,226,158,171, 54, 15,172,219,139,137, 18,184,150, 93, 91,108, 86, 22,116,219,
- 9,194, 16, 99,146,136, 40,201,100,155,150,236, 68,136, 4,182, 30,186,173,192,109,122,158,107,121,126,203,118,155,182, 35, 33,
-180,123,227,250,246,174, 53, 66,112,215, 40,205, 93,124,121,165,222, 44, 53, 91, 53,195,106,152,182,229,250,138,132,123,219,211,
-227, 61,157, 61,217, 84, 76, 83, 37, 34, 65,132,128,224, 66,240,213,220, 71,146, 35, 17, 64, 90,245, 26, 16,102, 71, 71, 82,102,
- 33, 16, 76, 82,163,153, 68,180, 84,215, 93,223, 75, 64,132,177,196, 33,194,156, 50,136, 17,130,138, 68,218, 85,184,228,194,158,
- 56,193, 64, 92,152,186,116,240,234,235,134,250, 6,206, 45, 23,102, 43,198,112,123, 50, 34, 75,137,136,202, 5,247, 3,234,248,
- 1,193,136, 50,190,250,158, 28, 33, 40, 33, 48,189, 92, 44,214,234,153, 78,170,198,178,185, 62,121,167,105, 78,213,237,199, 94,
- 58,254,147, 62, 72, 8, 49,190,118,203,208,198,253,156, 81,187, 89,108, 85,174, 52,155,117,219,243,185, 16,170, 34, 39, 34,106,
- 44,158,145,180,180, 96,212,247, 76,234, 91,129,103,185,126,216,114, 61, 63, 8, 18,209,232,248,216, 38, 53,154, 14, 92,163, 94,
-184, 92,169, 55, 10, 13,189,216, 48,170,134, 85,111,217,166,235,201, 18,222, 56,208,189,103,124,168,183,187, 63,146,200, 66, 44,
- 11,193, 5, 11, 5,163, 66, 48,193,153,224, 20, 8, 1, 17, 81, 37, 13,212,170,150,235,167, 3, 79,146,100, 78, 3, 44,105, 81,
- 69,225, 2, 4, 65, 0, 16,132, 8, 35, 8, 89, 8,133,224,130, 11,136, 96, 50, 22, 89,106,209,186, 3,250, 82,209,151, 39,103,
-174,222,180, 85,142,164,182,245,180, 29, 94,104,100, 29, 87,149,101, 77,145, 3, 74, 25,227,148, 50,198, 56, 19,130, 50,190,154,
- 52, 68, 20, 73,183,220,115,243, 43,131,189, 3, 68, 77, 96, 73,237,234,232, 25,205,174, 0,136,128,224, 63,233,164, 17,150,104,
-224,218,141,188, 94,153,215, 45,203, 15, 41,130, 48,166,200,177,136,166, 69, 18,152,168, 44,176, 89,224,132,190,227, 83, 26,132,
- 33, 0,176,187,163, 59,150,234, 4, 0,184,102,117,185, 56, 87, 53,204, 98,163, 85,108,232, 21,221,212,109,183,229,184, 18, 38,
- 59, 70,251,110,216,190,185,111,104,131,154,236, 64, 68, 5,128, 83,223, 13,220, 86, 24,250,130,115,132, 9,194, 10, 0, 92, 8,
- 1, 33,196,130, 35,132, 45,219,113, 93, 71,142,167, 32,162, 8, 73, 4, 19, 0, 1,227, 28, 66, 4, 17, 20, 28, 0,193, 57,245,
- 41,231,156, 9, 69,150,152, 93,183,218,122, 58,211,137,195, 19,179, 75,249,249, 53,163, 91,122,186,251,181,185, 66,205, 65, 93,
-132, 72, 8, 43, 68,242, 48,117,121,184, 90,215,172,118, 87, 16,130,170, 36,167,227,208,114,189,124, 41,175,198, 50,146, 26, 67,
- 24,182,169,232,205,183, 28, 44,229,151,167, 10,213, 82,211, 88, 37, 60,172,190,214,180, 91,133,169, 70, 61,111,186, 94,200,152,
-132,113, 68,145,163,170, 34, 73, 26, 16, 32,244, 77, 78,125, 74, 25, 0, 32, 18, 77,100,147, 93, 8, 75,129,163,215,138,211,149,
-134, 81,214, 91, 21,221,172,183,236,202,107,174,215,151, 8, 62,184,121,236,230,171,247,118, 15,109,150,163,105,136, 80,232,217,
-190, 85, 95, 45,217,125, 71, 55,235,203, 66,128, 68,166, 75,142,164, 16,146,128, 0, 0, 64, 78, 61,215,247, 93,159, 10, 1, 0,
-224, 16, 98,128, 49,231, 12, 2,136, 16,132,136, 64,136,160,224,140,250, 97,232,135,148, 50,193, 49, 66,190,101,152,180, 55,171,
- 72, 9, 77, 62, 55, 51, 59, 50,188, 78,142, 36,215,228,210, 83,229,102, 91,200, 48,134, 24, 35, 66, 16, 8, 5,229,140, 51,193,
- 24, 91, 37, 50,168, 18,209, 20, 41,174,170, 1, 13,156, 86, 69,101,212,119, 76, 8,145,140,225,123,110,222,147,138, 70,235,166,
-253,212,116,105,177,229, 19, 0,161,215,170,212,106,158,237,249, 66, 8, 77,146, 52, 69, 86,100, 9, 99, 34,128, 96,204,135, 16,
- 75, 90, 58,162, 37,177,164, 80,207,210,171, 11,229,122,173,220, 52, 43,134, 89, 53,172, 70,203,214,109,199,176, 93,219, 15, 58,
- 83,241, 55, 30,220,125,253,181, 55,167, 59,135,177,164, 5,158,217, 42, 93, 97,161,135,136, 12, 49,134, 16, 3, 0,161, 16, 94,
- 72, 13,203,145,148,136, 26,207, 66,136, 87, 75, 10,234,182,154,150, 19,132, 33,196,132,115,134,137, 34,132,112,131, 0, 2,160,
- 40, 42, 66, 4, 0,200, 56, 13,125,203, 11,130,128,210, 85,254, 8,134,192,242, 2, 16, 21, 29,233,196,149,124,201,119, 45, 34,
-199,186,115,185, 11,197,134,227, 7, 81, 85, 94,237,195, 1, 1, 25,227,175,249, 32, 0, 16,134, 10, 33,154, 44,101, 18, 81,130,
- 48,245, 29,159,211,150,213,210,109,199,176,124, 89, 86, 51,221, 99, 9,223,234,169,152, 11, 45,159, 0, 0,220, 32,240,130, 16,
- 66,168, 74,146, 42, 75, 50, 33, 88, 82,136,164, 34, 73,197, 82, 4, 97, 18, 6,118,163,178, 80,172, 86,139, 13,163,212,108,213,
- 77,219,116,188,150,227, 26,142,103,187,190, 76,208,190,141,163,247, 28,188,110,104,124,167, 20, 77,179,208, 55,171,243,110, 51,
-143, 37, 77,210,226,146, 22, 67, 88, 2, 0, 10, 33, 24,247, 88,232,217,174,167,219,110,142, 82,132, 8, 88, 5, 8,138,106,189,
- 92, 49,204, 76, 44,162,200, 42,163,129, 28,205, 4,190,221,114, 60, 66,144, 22, 73, 64,132, 4, 0,204,119, 60,167,229, 5, 33,
-101, 28, 33, 8, 0, 20, 0, 52,117,131,107,106, 91, 60, 58,185, 84,178, 44, 35,153,137, 68,148,136,162,200, 45,215,150, 37,194,
-133, 16, 0,112,193, 25,231,148,177, 85,251,148, 48,142,106, 74, 58, 26, 73, 69, 53, 69,146, 40,163,126, 16, 84, 13,179,220, 52,
-189, 0,216, 84, 96, 34, 19, 57,171,168,218,223,181, 92, 37, 66,100,130, 20, 73, 34,114,132,200, 17, 76, 20,128, 80,224,219,229,
-242,210,114,185,182, 84,109, 86,116,179,229,120,166,235, 57,174,239,132,161, 31,132, 18,193,187,199,135,239, 57,120, 96,116,227,
- 94, 73,141,113,206,140,210, 21,125,242,144, 36,105,106, 60, 27, 73,247, 96,162, 32, 76, 0,194,171,163, 92, 70,125,230, 59,102,
-171, 81, 53,108, 74,169,162,198, 16,145,129, 0, 0,130,192,181,230, 87, 86, 92, 47,136,181,183,201,178,194,131,128, 72, 90,173,
-146,111,154, 78, 54, 25,139,198, 82,171,255, 84,196,183,235,166,235,175,158, 37, 66, 4, 66, 16,134,180,213,168,243,206,158,184,
-166,134,140, 26,166,145, 72,182, 75, 4,167, 83,233,226, 92, 37, 17, 81,129, 16,171, 29,149, 85,150,173,224, 28, 35,164,201, 82,
- 34,162,166, 98, 90, 92,211, 8, 70,126, 72, 91,142,187, 82,211, 43,134,169,219,190,209,106, 1, 32, 56, 13,131, 32,120, 13, 32,
- 9,163,168, 42, 19,132, 16, 38,156,133,205, 70,185,216,104, 46, 86,234,133,154, 94, 55,109,203,245,221, 32,244, 67,234,135, 33,
-101,188, 51, 21,191,253,170,173, 7,174,185,161,163,103, 20,171,209,208,181,170, 75, 23,204,250,178, 34,145, 72,162, 35,221,181,
-142,200, 26,194, 18,196,100,149, 0, 10,132, 16,130, 51, 26, 80,223,177,244, 82,161,222,168,183,172,158,108, 42,154,204, 65,132,
-133, 0, 16,128, 90,101,121,161, 92,149, 8,201,101,210, 80, 48, 73, 77, 8, 33,242,149,138, 79,105,174,173, 77, 81, 99, 0,128,
-192, 53,245, 86,211,246,124,202,184, 44, 17,140, 96, 32,132, 31,134,142,227, 8,209,163, 42, 18, 66,168,101,154,156,133, 24, 65,
- 5, 10,221,246,252,128, 34, 4, 41,231,140, 9,198,133,224, 28, 66, 36, 75, 36,174,169,169, 72, 36, 25,209, 84,153,112, 33, 28,
-223, 47, 54,140,229,106,195,116,124,153,192,136, 44,113, 22,154,205,114,165,217,132,171, 0, 25,182, 55,189, 82, 54, 93,175,222,
-178,171,134,213,104, 89,166,231,251, 1,245, 41, 13, 66, 10,128,232, 72,197,247,111, 89,191,111,199,158,145,209, 13,106,188,131,
-243,208,106, 20, 22, 38, 95,182,154,197,104, 36,150,204,116,117, 13,110, 37, 74, 4, 97, 9, 34, 12, 17, 2, 0,174,182,118, 4,
- 16,130, 51, 22, 4,161, 99, 24,149,249,229,114,105,161, 92,135, 16,244,117,247,105,241, 12, 68, 18,132,192, 55,235,151,102, 38,
- 91,142, 55,210,153,205,181,119, 9, 65,149, 88, 86,111,148,150, 42, 53, 77,150,122, 58,123,144,164, 8,206, 77,189,172,155,182,
-227,135, 4, 35,130, 16,193,136,113,238, 6,148,115, 10, 16,148, 48,146, 48,182, 93,135, 81, 31, 8, 78, 0,167, 88,118,124, 95,
-145, 37,198,216,107, 61, 57, 8, 36,130,163,170,146,136,106,137,136,170, 41, 50, 68,192,245,195,170,110, 46,150, 27,149,166,201,
- 56, 31,237,233,104, 75, 68, 3,179, 58, 53, 63,187, 84,183,128,164, 17, 8,225,229,229,210,244,116,203, 11, 67, 63,100,148, 49,
-202, 24,193,168, 51,147,188,106,195,218, 3,123,246,229,122,215, 97, 69,227, 44,244,204,122,126,110,162, 84,120, 20, 19,148,203,
-180,103,218,251,186,250,215, 33, 73, 69, 88, 66,171,198,242,183,252, 16, 8,225,107,221,119, 26,132,174,229, 52, 11,181,202,226,
- 74,181,177, 84,109,134,148,110, 31, 27,238, 25,220, 72,148, 8, 16,128,250,246,212,229, 87, 47, 46,149, 84, 89,218, 56, 50, 28,
- 77,100,105,224, 1, 8,174,204, 79, 55, 45,103,199,232, 96, 58,219, 3, 33,246,172, 90,181, 86, 50, 28, 23, 0, 40, 19, 44, 17,
-132, 33,242, 67,230, 6,225, 42, 37, 6, 35, 76, 48,246,124,159,133, 30,224,148,249,142,237, 5,142, 79, 32, 68,171, 29, 93, 4,
- 33, 34, 36, 42, 75,201,136,150,140,106,154, 42, 35, 4,189,144,214, 91,246, 82,181, 89,104,232, 78, 16,100,147,209,141,131, 61,
- 17, 25, 23,171,165, 23, 47,204, 4, 76, 2, 18, 32, 0, 0, 63, 12, 85,193, 7,218,211,235,135, 6,183,109,217,213,217, 51,162,
-197, 82, 8,147,192, 49, 42,203,151,143,190,240, 45,163,213,138,169, 82,103,123, 46,219, 49,216,209,123, 11, 81,162, 16, 19,132,
-241,143,205, 29,197,143, 58,130, 66, 8,193, 57,103, 97,232,152,182, 94,208,171, 75,165,166, 94,172, 25, 21,195,148, 8,222, 57,
- 62,188,126,203,126, 37,222, 6, 4, 8, 28,227,204,169,195,207,158, 58, 79, 48,222,189,110, 77,223,232,142,192,209,213,120,219,
-210,204,233,201,165, 66,123, 34, 58, 62,182, 1, 73, 42, 11,156, 74,113,174,106, 88, 1,101,138, 36, 73, 24, 43,132, 0, 8, 61,
- 63,240, 3, 26,215,100, 4, 32, 66, 80, 34,216, 15, 67, 26,184, 0, 8, 30,120, 45, 67,119, 98,146, 44, 17,198, 5, 4,128, 16,
- 44, 99, 28,143,170,201,168, 26, 85,100,140,160, 23,208,134,105, 47, 85, 26, 43,181,166,233,120,255,111, 43, 87,214, 28,199,113,
-223,251,154,233, 57,119,246, 94, 96,113, 16,132, 72, 16,188, 68, 93, 54, 35,201,162, 21,217,169,114, 94, 82,202, 71, 74,190, 68,
-222, 92,137,147,202, 99,242,148,164, 44, 71, 78, 34, 71,138,100,145,145, 40, 30, 22, 9, 18, 4,136,197, 98, 15,236,238,236,220,
-211,103, 30, 6,164,101, 85,165,242,146,183,185,170,107,106,106,186,251,255,255, 93,148, 24, 59,253, 94,191, 85, 79, 11,246,219,
-111,159, 61, 57,153, 52,123,107, 5, 0, 68, 43,245,231,127,250,225,135,183,222,151, 82,100,203,201,100,116,120,231,243, 95, 14,
-199, 67,165,228, 74,171,189,185,190,117,253,250, 77,219,239, 96,211,134,136, 0, 84,253, 36,213,236, 1, 74,171,223, 99,164, 26,
-104,160,148, 20,162,204,202,100, 22,207,142,230,243,201, 52,140, 79,163,100, 30,167, 5, 19,189,134,255,131,107,215,207, 93,186,
-137, 45, 7, 40,157, 46, 6,159,126,250,209,111,238,239, 57,150,121,235,198,213,215,222,122, 95,113,110,251,237,249,232,233,231,
- 15,126, 39,149,126,125,119,215, 15, 86,181,146,203,233,225, 96, 58,139,243,210, 36,152, 96, 68, 13,195, 32,164,228, 60,103,156,
- 75, 65, 13, 23, 86,156, 26, 70, 76, 72,193, 50, 0, 32, 2,128,149, 69, 86, 50,207, 50, 1,128,152, 96, 3, 16,219, 52, 2,215,
-113, 41, 69, 8, 21, 37, 95, 36,217,209,116,113, 60, 11,195, 36, 3, 16,246, 91,193,214, 74,155, 32,248,100, 56,253,237,227, 67,
-207,162, 23,250,237,251,211,140, 64, 8, 31,124,243,217,232,225, 39, 81, 86,186,150,117,113,163,127,249,226,149, 63,122,247,103,
-196,174, 65, 68, 32,128, 21, 40,172,207, 40,134, 10, 42,150, 21,245, 0,206,194, 17,148,150,156,151,105, 25,207,146,197, 48, 92,
-140,231,113,182, 72,179, 40, 45,178,146,149,156,123, 22,125,253,194,185,203,215,223,246, 58, 91, 8, 34,193,178,193,222,157,127,
-249,205, 39,251,163,211,173,110,235, 39, 55,223,218,190,250,174,146,130, 24,118, 52, 61,248,244,206,151,147,101,252,131,157,237,
-245,205, 29, 13, 64, 17,207, 6,163,225,100, 25, 3, 13,108,106, 26, 6,177, 76, 2, 17, 20, 74,103, 37,147, 82, 81,147, 32, 8,
- 43,149, 56, 23,178,228, 2, 0, 8, 17,164,166, 81,148, 76, 42,109, 16,100, 67, 98, 24,196,181,168, 67, 13,132, 96, 94,176, 69,
-154, 13, 78, 23, 39,243,229, 50,205,165,210,237,154,187,213,107,249, 14,157, 70,201,151,143, 15, 22,113,250,103,111,223,160,245,
-214,189,105, 70, 52, 0,189,206,202,135,239,221,242,155,171,216,180,129, 6, 74,114, 41,185,228, 28, 66, 1, 16,130, 0,126, 39,
-186,180,250, 42, 64, 43,173, 36,147,162,224,233, 50, 15, 71, 81, 56, 90,196, 73,152,102,113, 86,100, 5, 43, 56, 87, 74, 75,173,
- 93,106, 94,219, 90,219,217,185,209,232, 95,194,166,173,149,136,198, 79, 63,253,175,127,253,228,222,158,101, 26, 63,190,126,233,
-157,183, 63, 8, 58, 91, 74, 9,140, 64, 52,121,246,197,157,207,246, 71,211,157,181,222,245,221,107,132,122,146,231,211,209,193,
-225,120,150,228,101,224,218,148, 16,219, 32,148, 16,160,180,144,178,224, 66,105,109, 25, 70, 5,104, 96,132,184,144, 5, 23, 90,
- 43,173,117,203,115,164,214, 82,105, 27, 35,106, 16,106, 26,212, 32, 90,131, 40, 43,194, 36, 59,153, 47, 71, 97,148, 22, 76, 72,
- 85,115,172,141, 78,163, 19,120, 5, 19,247, 14,134, 79,134,211,203, 27, 43,111, 95,190,240,205, 76, 0, 13, 8,208,218,111,244,
-144, 97,103, 89,100, 10, 70, 8,133, 8, 99,108, 84,156, 2,212, 26, 0,173, 43,230, 74,201,106, 6,177, 44,204,227,211, 52,158,
- 71, 73,188, 76,139, 40, 47,178,162, 44, 24,231, 82,106, 13, 48, 66, 24,163,150,111,159,239,247, 54,207, 95,173,117, 95,193,166,
-165,181,206, 22,195,123, 95,125,242,171,219, 95,103, 37,187,180,222,125,231,198,171,231,175,252, 8,155,182,150, 66, 9, 22,141,
-246,190,248,250,246,189,131,225,102,167,241,214,149,203, 78,125, 85, 43, 30,159, 30, 30,141,199,147, 48, 50, 8,177,169, 65, 77,
- 98,153, 4, 99,200,165,226, 66, 86,210, 85,203, 36, 85,185,140, 17, 98, 66,228, 37, 83, 74, 75,169, 91,129,151,149,188,146, 35,
- 99,136,128, 6, 5, 99, 5, 23,203, 52, 63, 93, 38,167, 81,146,149, 76,107,237, 90,116,173, 21,172, 52, 3, 13,192,227,193,248,
-238,211, 65,224, 88, 31,188,182, 91,175,183,178,163, 61, 0,171, 58,200, 48, 29,215, 7, 16, 66,132, 17,194, 0, 66,173,180, 86,
- 82, 10,174,120, 33,202,148,229,113,153, 45,242, 36, 76,179, 36, 41,202, 36,103,105,201,178,162,172, 76,208, 74,107, 8,161, 73,
-176, 99,153, 46,165, 43,141, 96,125,109,179,221,191, 68,253, 54, 50, 76, 45,101,182, 24, 62,186,255,217,191,221,249,102,188, 76,
- 94, 89,109,191,113,113,251,210,213,155,110,107, 67,107,165, 56,227, 69,188, 56,217,187,243,224,238,189,103,199,221, 70,237,205,
-221,139,141,222,182, 82,178,140,198,163,201,232,249,116,145,230,229, 74,211,114, 40,165, 6, 49, 13, 67, 3, 32,149, 18, 82, 9,
- 37, 33,128,212, 48,170,162, 2, 35, 88,112,145, 22, 76,107,197,165,112, 76, 19, 65, 4, 1,100, 66, 10,169,180,214, 37, 23, 73,
- 94, 46,211,108,153,229, 5, 19, 0, 0,135, 26,189,122,109,181, 25,152, 24, 63,159,204,191,122,122,164,180,186,117,253,226,197,
-141,245,209,244,228,235, 39, 7, 16, 88, 4, 0, 0, 49, 54, 45, 79, 67,160,164, 20,101,198,146, 89, 30,159,150,201, 44,205,146,
-172,200,211,156,165,140, 21, 37,203, 74, 81,112,198,184,224, 82, 41,165, 1,208, 24, 33,203, 52,108,211,172, 57,180, 83,243, 87,
-122, 43,141,149, 29, 59,232, 97,147, 66, 8, 37,231,225,224,225,195,251, 95,254,199,189, 71, 81, 86,188,210,239,252,232,218,206,
-246,133,107, 65,119, 27, 25, 84, 9, 38,121,201,178,229,236,248,219,187,123,123,247, 15, 79, 90, 53,247,205,139, 91,189,213,109,
- 8, 33, 47,162,197,236,100,112, 26,142, 22, 17, 70,168,230, 88,182,105,152, 6, 49, 48, 86, 26,200, 51,202, 17, 84,165, 77,181,
- 67, 16,140,210,146,199,121,161, 53, 40,185,132, 8, 98,132,184,146, 44, 23, 82, 41,198,101,206,120, 90,148, 89,121, 22,241,230,
- 80,163, 91, 15,214,218,117,155,154,195,121,244,213,147,163,164, 40,223,185,188,253,195,221,237,188, 72,255,250,163,207, 38, 28,
- 89,117,139, 0, 0,128,210,233,124, 16, 78, 14,162,112, 18,167, 73,154,151, 89,201,115,198, 11,206, 75,198, 25,127, 97,148,215,
-186,154,234, 38,193,174, 67,125,139, 6,174,213,174,249,157,238, 90,208,217,180,106, 93,108,216, 16, 33, 45,121, 17,158, 28, 63,
-187,255,229,131,251,119,247, 7,166, 97,236,174,119,119, 55, 86,214,214,182,189,246, 57,195,246, 33,132,146, 21,146, 23, 69, 52,
- 25, 15,159,220,219,127,254,237, 96,212,244,156,215,183, 55,214,251,231,176,105, 9,158,167,225,120,188, 8,143,103,225, 50,201,
- 55, 58,141,192,181, 77, 66, 76, 66, 32, 4, 66, 84, 94, 7, 93,173,141, 4, 33, 13, 52, 0,144, 96, 92,148,105,148,101, 16,160,
-156,113, 41,149,144,146, 75,201,132,228, 66,150,140, 23, 47,154,129, 10, 15,234,212,107,253,102,224, 80,115, 52, 95,222, 59, 56,
- 14,211,226,173,157,115,239,191,186,163,148,250,249, 71,159, 30,159,134,181,118, 87, 1, 64, 0,132,251,143,255,251,227,201,131,
-172,100, 47,171,103, 46,164, 80, 74, 42, 5, 52,168,202, 48,147, 96,106, 26,158,101,214, 28,171,225, 57,205, 32,104,182, 87,189,
-214, 57,211,109, 96,131, 66, 8,149,146,101, 60,157, 30, 63,126,248,232,193,237, 39,135,139, 36,235, 55,131,247,174, 93, 60,215,
-107,181,219,171, 78, 99,205,180,107, 8, 19, 45, 5,151, 92, 20,105, 22, 30,159,156, 60,191,119, 48,220, 31, 77, 27,158,115,125,
-171,191,190,210, 55,172,154, 18,188, 76, 23,139,112, 54, 14,163,209, 98, 41,148,106,214, 92,223,182, 8, 70, 6, 66, 74,233,151,
- 77, 57,174, 2,109, 32, 80, 10, 0,173, 13,130, 11,198,195, 36, 39, 24, 51, 33, 25, 23,165, 16, 37, 23,140,139,146, 11, 86,177,
-184, 90, 19,140, 93,203,108,215,188, 94,195,119,168,113, 50, 95, 62, 60, 60, 73,139,242,141, 11, 27, 31,220,184, 68, 48,254,187,
-143, 63, 63, 24,157,174, 52, 2,236, 88, 17, 0, 4, 2, 56, 93, 38, 58,139, 42, 41, 65,213,218, 85,107,158,105, 96,203, 52, 92,
-106,214, 28, 59,112,157,102,205,109,214,219,126,123,211,174,117, 49,117, 16, 38,103,100, 97, 60,155, 29, 63,220,219,223,251,250,
-233,209, 96, 4,206, 97, 47, 0, 0, 5,193, 73, 68, 65, 84, 22,250, 54,125,101,181,253,254,245,157,110,195,175,213,123,150,223,
- 53,108, 31, 97, 3, 0, 32, 5, 83,188, 40,211, 48,153, 31, 31, 77, 38,191,123, 62, 60, 58, 13, 27,158,115,117,179,191,209,235,
- 82,167,174,180, 84,101,158, 68,211, 89,156,142, 23,209,233, 50,105,250, 78,167,230,153, 6,169, 2, 46,197, 11,208, 75,107,109,
- 98, 2, 1,228, 82, 85, 23, 8,194, 66,169, 48,201, 45,211,144, 82,113, 37, 75, 33, 25, 23,140, 11, 46,165, 82, 26, 35, 68, 49,
-114, 45,218,170,185,173,154,103, 96,124, 52, 13,191, 29,140,148, 82, 55,119,183,110, 93,223,129, 0,252,213, 63,253,251,112, 30,
-173,183,234, 43,205, 32, 67, 86, 84,156, 85,210, 34,147,188,202, 85,161, 38,177, 13,211,181,205,192,177, 3,215,106,250,110,163,
-222,245, 91,125,187,214, 33,212, 71,134, 9, 33, 2, 64, 43,206,139,112, 56, 61,222,123,122,184,127,255, 96,240,124,186,192, 16,
-110,116,154, 63,125,109,119,181, 25,212, 61,223,174,181, 76,183, 97,152, 14,196, 38,132, 80, 73,174,165, 16,101,150, 39,147,229,
-124,124, 56,157, 61, 58, 26, 79,194,164,233, 59,151, 55,122,235,157,166,227,248, 16,106,197,242, 50, 11,163, 36,155,199,233, 52,
- 76,146,162,188,180,209, 11, 60,251,133, 64, 75,115, 33,133,146, 82, 43, 0, 0, 53, 9, 33, 56,201, 75, 46, 4, 23,170,162,173,
-195, 52,247,149,210, 0, 8, 41, 69, 5,182, 42,133, 32, 36, 6, 49, 8,241,109,218,240,220,186,103, 11, 41, 31, 15,198,251,163,
- 83,199, 50,223,123,117,231,135,151,182, 78,163,228,231,191,252, 44,206,138,237,213, 86,175, 30,248, 54, 29, 78, 83, 64, 28, 82,
- 97, 29, 77,151,250,206, 25, 11,220,240,107,141, 70,219,107,174, 82,175,103, 88, 14,194, 6, 64, 16,104,168,149, 16, 69,146, 46,
-134,227,227, 39, 79, 14, 15, 31, 30,157,156,204,151, 0,192,213,102,240,246,238,249,181,118,163,233,187,142,227, 81,167, 65,168,
-143, 77, 10, 17, 6, 16,105,197,165, 84, 74,150, 60,143,243,104,124, 26, 46,159, 79,102,123, 39,147,121,148,182,124,247, 66,191,
-187,218,170, 59,182, 5, 33,146,162, 84,188, 76,243,116,153,229,243, 56, 59,141, 18, 8, 96,191, 25, 88,134,169,180,130, 16, 74,
-165, 25, 23,252,133,208,138, 26, 36,112,237,105,156,165, 5,171,218,209,154, 99,157,204,151, 21, 62,161,180,174,182, 87,106, 16,
- 3, 99,155,154, 53,215, 14, 28,203, 36,120,158,100,143,142,198,147, 48,218,232, 52,127,250,250,238,229,205,213,187,251,131,191,
-253,248,115, 74,200,213,115,253,186,231,212, 28,235,238,254, 81,130, 40,242, 28,162,129,222, 94,105,255,100,119,195,175,175, 56,
-205,190,233,212,177,105, 65,136,207, 26, 78, 37, 5,203,242,229,100, 62,122,250,236,232,240,219,163,225,193,100, 30,165, 5, 53,
-200, 90,171,241,238,149, 11,253,118,189,233, 57,174,237, 24,118,141, 80, 31, 27, 38,194, 4, 0,172,181,214,130, 3,173,149,230,
-146,149, 34,143,226,120, 54, 9,163,195,201,236, 96, 52,139,179,162,225, 59, 91, 43,237,213, 70,205,163,180,178,219, 42,174, 4,
-203,211,188,136,178, 34, 76,179,101,154, 53,124,183, 93,243, 16,132, 66,106,140,129,148,170,202, 14,209, 90, 75,165, 49,194,171,
-141,224,201,201,248,116,217,178,169, 81,249,190, 2,215,201, 75,134, 17,172,168, 31,131, 96,135,154, 53,199,114,168, 1, 0,140,
-179,226,209,209,248,112, 58, 39, 8,190,255,234,206, 31,223,184,108,154,244,111,126,245,159, 95, 60, 58,216,232,212,215,219, 13,
-223,178, 28,203,188,189,119, 32,164,178,124,175, 4,128, 0,173,123,155, 87,207,191,121, 11, 0, 4, 33,208, 90, 41, 33, 56,139,
-179,197,201,108,124,120, 56, 28, 60, 26,156, 28,142,231,139, 36,131, 16, 52,125,239, 92,183,181,209,110,244, 26,181,192,177,108,
-219, 49, 45,143, 84,243, 8, 19, 8, 17, 4, 64, 73, 1, 20,215, 90,105, 45,148,148,146,103,188,136,163, 36, 25, 45,162,231,147,
-249,225,100,158,149,172,233, 57, 27,157,230, 74,163,230,218, 20, 97,164,164,168, 4, 20, 37, 23,105, 81,198,121, 17,101,121,206,
-248,229, 70,205,166,166,172, 76,162, 18,104, 45,139,146, 87, 63, 11, 23, 66, 3,221,240,157,118,234,239, 13, 39, 91,189,166,144,
- 74, 43,109,155, 6, 70, 8,104, 69, 77,195,183, 44,223,161, 6, 33, 37,227,199,179,229,120, 30, 77,227, 68, 8,249,234,249,254,
-207,110,190,177,214,237,125,242,213,215,127,255,235,207,165, 82, 55, 47,109, 85,198, 22, 41,213,237,199,135,182,101, 58, 20,205,
- 74,142, 41,168, 4, 84,130,167, 97, 17,159, 38,225,100,122,122, 50, 24,143,159,141,103, 71,211,197, 60,201,148,210,158,109,246,
- 26,181,107, 91,253,213,102,208,244, 93,215,162,150,105, 24,134,133, 12, 27, 17, 19, 97, 82, 81, 37, 90, 48,165, 53, 56, 67,239,
-164,150, 82,201, 82, 10,198, 88,190, 76,139,113, 24, 31, 78,102, 71,211, 69,193,120,211,115,251,237,122,183,238,187, 22, 37, 24,
-105,165,133,150, 0, 0,165,116,193,121, 86,242,172, 96, 73, 94,106, 0,218,129,135, 32,146,213, 50, 12, 0, 82, 48, 99, 76, 42,
- 13, 33,168, 42,105, 4, 97,183,238, 47,146,236,249,100, 30,120,182,148, 90,202, 51,105, 22,203,138, 56, 43,197,169, 44,153,168,
-146, 40,234,174,253, 39,175, 95,126,231,218, 46, 34,230,175,111,127,245,151,191,248,199,140,241,157,126,119,187,223, 89,166,185,
- 75,205,211, 48, 30, 46,162,102,205, 77,139,242,120,177, 4, 78,224, 86,219,252,225,211,111,254,121,244,224,100, 17, 77, 22,113,
-152,102, 5, 19, 24, 65,207,182,174,108,174,172, 53,235,173,192,243,109,139, 26,196, 32,184, 66,170,170,132, 10,160,149, 18, 69,
-149, 64,116,230,143,209, 10,168,179, 15,164,148,226, 74,114, 46,151,105, 49, 89,198,207,167,179,193, 52,228, 66,212, 61,103,181,
- 89,235, 4,158,103,153, 6,198, 90, 3,169, 84,133, 14, 72,165, 74, 46, 75, 46, 42,118,152, 32,232, 91, 84,105,169, 36,148, 82,
- 74,173, 49, 68, 66,200, 40, 47, 48, 68, 76,158,149, 54, 90,107,151,154, 74, 41,165, 52, 65,136, 58, 22, 23,178,224,188,178, 21,
- 55,168,211, 9,188,141,110,163, 27,248, 76,200,111,158, 13,254,226, 23,255, 48, 90, 68, 4,227,237,149,214,149,115,253, 89,148,
- 68, 89, 30, 56,214,100, 25,115, 33, 9, 70,243, 56,205, 11,150,230,204,177, 95,104, 20, 95,168,202,254,160, 41,253,142, 18,238,
-255, 67, 36,252,114,240,255,107,216,151, 15,195,151,194,197,239,223,253, 95,206,254,240,213,191,119, 4,127, 47, 96,123,105,120,
- 2, 47,145,155,239, 13, 6,191, 99,138,250, 31,245, 66, 74,165,201, 66, 82,179, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/pinch.png.c b/source/blender/editors/datafiles/pinch.png.c
deleted file mode 100644
index 6e9223bfc7d..00000000000
--- a/source/blender/editors/datafiles/pinch.png.c
+++ /dev/null
@@ -1,318 +0,0 @@
-/** \file blender/editors/datafiles/pinch.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <pinch_png> */
-
-int datatoc_pinch_png_size= 9880;
-char datatoc_pinch_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96,
- 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71,
- 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120,
- 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 19, 0, 34, 13, 86,254,139, 21, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,125,123,
-176,157, 87,117,223,111,173,189,191,115,206,125, 72, 87, 87, 47, 75,178,101,249,141, 33, 2,130, 99, 28, 90, 7, 37,128,199, 64,
- 33,113, 9, 36,132, 50,161,201,180, 60,146, 50,204,100,146,190, 8,109, 82,154, 97, 38, 52,153,105,233,144, 25, 50,165, 33, 77,
- 11, 56,198,216, 6, 3, 54, 54, 24,219,216, 84,198,182,252,144, 45, 75,178, 44, 99,203,242, 67,207, 43,233,234,222,115,190,111,
-175,213, 63,214,218,251,251,206,181, 13, 46,113, 7,211,201,177, 70,247,156,163,115,191,179,191,181,215, 94,143,223,250,173,101,
-218,178,101, 11,126,228,227,133,124, 40,138,200,158,237,183, 74, 51,172,135, 11,163,133,227,195,147,115,245,104, 72,192, 91,222,
-251,111,143,207, 47,216,135, 88,129,170, 55, 8, 85, 63,196, 94,168,250,177, 63, 49,152, 94, 62,152,158,185,233,154, 79,127,226,
-119,127,195, 63, 4, 0, 80, 2, 56,132, 16,171,222, 96, 42, 86,131, 16,171, 71,119,238,233, 79,244,255,228, 67,239, 6, 16, 1,
-168, 42, 56,112,136,177, 55,224, 80,197, 94,186,254,138, 43, 99, 12, 33,112,213,171, 62,250,155,151, 69, 0,204,172, 34,204, 1,
-213, 96,219, 45,215,170,234,202,213, 51,195,197, 26,139,195, 20,155,254,160,138,246,165, 76,116,199,183,191,202,161,138, 85,148,
-148, 2, 51, 51,217,213,125, 77,177,215,191,227,134,171, 99,213,163, 64, 76,196,204, 28, 66, 8, 28, 99, 84, 85, 73, 18,206,216,
-180,233, 20, 28, 10, 33, 16, 19, 19, 17,179, 2, 16, 73, 73, 70,163,122, 97,126,241,228,201, 69, 86,128,152, 84, 21, 10, 16, 1,
-144,148,234,186, 25,141,234,209,176,174, 71, 77, 83, 55, 49, 75,213,254, 89,154,186, 25,141,234,225,226,104, 52,172,135,139,195,
-209,112, 52, 28,214,244,130,246,238,133, 60,104,207,253,183,168, 74, 83, 47,214,139, 39,134, 39,143,141, 22,231,235,225,168, 63,
- 57,249,186,127,244, 59,229, 67,225, 95,253,193, 71, 0, 40, 0, 21,168, 16,135,254, 96, 34,132,106,125, 21,214,174, 92,254,224,
-222, 39, 0, 48, 84, 1,101, 34,219,150,170, 55,201,161,199, 33, 76, 47,155,188,112,243, 57, 31,125,223,101, 0,162,106, 3, 19,
- 97,232, 85, 61,226,208,128,227,183,174,186,178,215,175, 82,147, 38, 38,251,155,207,216, 24,161, 68, 68, 76, 65,131,238,123,242,
-192, 83,187,238, 78, 77,154,154,154, 88, 92, 28, 14, 69,170, 42,190,249,162,205, 17,196, 4,132, 94,127,219,141, 95, 7, 16, 3,
-139,104, 8, 28, 2,135, 24,152, 41, 4,142, 33,132,239, 94,123,121, 85, 85, 68, 4, 2, 33, 68,149,212, 48, 7,102,230,212,136,
-170,134,229, 39, 15,174, 89, 59,203,204, 0, 49, 19, 1, 34, 10,213,166, 73,139, 11,163,147,243,139, 39,231, 23,249,236,243, 54,
-130, 73, 85,137, 64,128,168, 74,146,209,168,174,135,245,104, 88,215,117, 83,215, 41, 50,179,239, 28,161,105,146,109,220,112,113,
- 52, 90, 28,141,134,163,122, 84,215,117,131, 23,107,239,138,166,224, 55,222,249,214,127,247, 7, 31,144,148, 36,213,169,169,155,
-122,161,169,135,163,225,176, 30,141, 14, 30, 60,246,225, 63,250,139, 67, 71,142,255,176, 11, 37,145,199,118,221,169,154, 82,106,
- 84,154,212, 52,210,140, 36,141,154,209, 32, 53,195,222, 96,164,146, 86,172, 90,115,221, 23,255, 92, 84, 53,165, 53,155, 54,127,
-230, 19,127,250,201,207,127,237, 57, 86, 68, 33,144, 0, 34, 9,204, 68, 96, 86, 9, 28, 34, 0,162,160,154, 84,132,236,227, 61,
- 58,118,240,177,153, 21,203,254,244, 35,239, 77, 77, 26, 14,235,255,240,217, 43, 59,183, 38, 73, 69, 64, 32,102,214, 0, 0, 68,
-196, 65, 82,163, 42,118, 33, 85, 81,213, 71, 30,218,185,231,193,221,147, 83, 3, 64, 83, 96, 98,250,227,247,191,235,240,193, 99,
-159,186,234,155, 17,128, 66,137, 1, 97, 34,213, 16,237,116, 50,171, 70, 1,112,228,200,220,246,219,111, 14, 33,136, 72,211,164,
-169,101,147, 41,137, 36,129, 38, 85, 85,213, 21,179,211, 31,121,199, 37, 17, 0, 19,169, 18, 40, 17, 49, 35,129, 88,184,218,118,
-243, 53, 68, 0, 72, 85,166,167, 39,146, 72,106, 18, 51, 17,129, 40, 37, 64, 85, 34,162, 42, 98,104,250,253,190, 9,130, 21, 74,
-136,223,187,233,107,149, 44, 16, 51,129, 98, 8,118,198, 68,137, 84, 88, 85, 3,139,130,153, 67, 80,133, 6, 68,213, 70, 85, 69,
-149, 8, 17,192,241,227,115, 91,175,187,122, 48,209, 15, 33, 80, 96,144, 42,136,137, 84, 65, 4, 82,101, 91,116, 67, 33, 64, 53,
-152,229, 76,154, 82,147,154,186,105,154,148,204,118,173,214, 35, 83, 83, 3, 38,178,173, 33,102, 2,152, 25, 68, 76, 4, 37,168,
-139, 91, 68, 82, 74,169, 78,245,168,169, 71,173,233, 26, 14,235,168,192, 96,208, 83,144,221, 61,129, 84,148,131, 89, 6, 36,209,
-166, 73,146,164,105,252,155,235,186,110,234, 52, 26,214,195,225,104, 52,172, 71,195,122, 52,106,106,179,129, 68,246,189,240,141,
- 39, 18,255,114,145,148,154, 36,210,164,228,215,146,166,110,234, 81, 61, 26, 53,163,225,104,104, 79, 70,245,176,110, 94, 60, 59,
-249,162, 60, 78, 63,253,116,126,177,174,229,167,127,253,186, 53, 95,250,171, 63,155, 89,177, 76,154, 70,154, 58, 53,139,245,104,
-216,140,134,195,225,104, 52, 28,125,250,115, 95,189,246,166, 59,126,164, 7,248, 14,136, 85, 85, 69, 36, 53,154,234,166, 25,165,
-122,152,154,197,102, 52, 76,205, 72, 68,164,105, 68,100,114,217,204,247,191,127,207,239,126,236,211,207,121,107,225, 95,254,254,
- 71, 64,204, 28, 24,164, 80, 34,216,198, 3,128, 42, 49,113,136, 85,175, 87,245,251,146,210, 57,231,111,222, 56, 25, 84,177,119,
-255, 51,221, 11,205,204,204, 68, 14, 1,170, 73, 0, 2, 17, 3,196,129, 69,152, 40, 16, 71, 54, 79, 4,144,106,136,189,122,241,
-196,133, 23, 95, 4,209, 55,189,118,243, 31,254,197, 23,187,215, 98, 34, 82,128,178, 93, 87, 34, 85, 59,127, 33,196,138, 67,143,
- 57, 4, 98,230, 64,196, 68,180,103,199,174,170,138, 33,240,127,252,208,187,171, 24,218, 11,153,111, 3, 84, 85,137,136,137,137,
- 67, 8, 49,132, 24, 98, 21, 98,197,177, 66,136, 20, 2,136, 57,246,142, 30,158, 11, 49,196, 24, 99,228,143,253,246, 59,102,166,
- 38,115, 20,164, 2, 21, 95, 63,152,216,110, 42,112,136, 28,170, 80,245, 98,236,197,216, 11,177, 87, 13, 38,175,191,242,218,126,
-191, 98, 38,102,226, 16, 98, 8, 31,126,215,165,190,107,251, 30,190, 75,147, 40, 84, 53, 73, 74,182,121, 42, 73,196, 13,163,125,
-238, 91, 87, 93, 35,146,136, 8, 80, 17,149,148,154, 38, 53,117, 26, 14,235,185,163,199,191,180,245,193, 72,128,154, 72,149,136,
- 72,149,152, 73,148, 57, 48, 88, 57,132,171, 63,247,185, 53,107, 87, 44, 91, 62,145,146, 52, 77,178,211,175,170, 28,192,162, 33,
-112, 85, 85, 23,158,119,102,132, 27, 10, 16,145,192, 54, 78, 41, 80, 12,241,166,107,174,152,156,232,157,182,113,141,168,166,148,
- 20, 96, 85, 85,149, 32,172,100,174, 34, 4,142, 49,196,192,209, 93, 40, 67, 4,204,182,101,241,214,107, 46, 95,182,108, 98,249,
-178, 9, 0, 34,162, 73,137,148, 73,153, 73,153,136,152, 72, 56,144, 42,155,233, 96,230, 72, 68,182,229, 4, 40,120,207, 67,219,
-231,158,124,100,102,102, 90,205, 92,155, 67, 33, 85,166, 68, 32, 88,208, 1, 97,102, 69, 34, 5,212,222,117,123,196, 32,238, 85,
-183, 93,251,133, 24,130,123,122, 85,201, 38,211,140, 20, 51, 11, 43,137,121, 45, 85, 1, 84, 85,212, 84, 54,130,152, 8,183,124,
-227,235, 92, 31,137, 49,128,204,186, 65,137, 8, 10, 5, 17,192,102,191,137,137,212, 60,149,112,131, 36,170, 34, 42,170, 0, 56,
-196,234, 83, 31,251, 40,134,135,178,201,238, 60, 20, 12, 2,179,105,190,221, 21, 49, 19,145,170,170,168, 36, 17, 17, 21, 81,213,
- 80, 29,120,252,103, 94,125,110, 21,131,125,194,111,131,148, 64,196, 76, 74, 32,133,154,196, 84, 85, 36,105,211,164,212,164,218,
- 66,141,186,169, 71,205,209,133,154,167,151, 77, 84,189, 8,102, 82,168,201, 60,159, 65,115, 5,228, 1,164,170,136,136,166,148,
- 36,165,148, 36, 53, 77, 74,146,108, 81,170,188,114,213, 12,149, 60, 32,223,145,218, 1, 84, 85,133, 8,252,119, 83, 74,117,146,
- 36,230,117, 69, 52, 53, 73,146,164, 36,170,136,253, 65, 15, 38, 30, 85, 34, 22, 17,230,192,128, 42,137,152, 81,179, 5, 72,211,
- 72,147, 47,151, 82,106,106, 95, 81, 74, 34, 42, 49,132, 0,179, 35,158, 48,152,139,133, 9,210,215,210, 72, 42,151,179,171,248,
- 37, 83,106, 82, 74,162,170,145, 3,131,160, 68,230, 88,225,145, 38,220,169, 38,105,143,152, 57,232,148,234, 58,165,166, 92, 93,
-236, 74,120, 73,249,181,141, 27, 55, 50, 94, 74, 15, 63,178, 63,228,177,122,213,204,107,126,230,220,215,188,242,220,153,229, 83,
- 83, 19,253, 65,175, 2, 97,254,228,194,137, 19, 39,143,159, 56,121,255,142, 71,119, 62,178,239,209,125, 79,191,136,107,138,170,
- 10,224,180, 13,167,124,253,138,191,172,122,189,192, 44,238,199,224, 6, 91, 85, 82, 99, 86, 92,165, 73,169,134,152, 70, 54,191,
-250, 54, 49,189, 78, 73, 84,164,105,146,249,212, 71,159,120,230,143,254,252,111,158, 58,112,228,199, 92,208, 15,118,110, 85,181,
-160, 80, 96,225,174,154, 97, 16, 73, 13, 84,136,153,205,173, 36,166, 16, 53, 53,196,129, 67, 82, 73,209, 84,215,127, 93, 85,161,
-154, 54, 47,159,254,242,127,255,248,212,138,181,189,254,228,227,187,183, 95,254,197,235, 63,251,213,239,188,224, 5, 1,177,234,
-167,148, 84,133, 17, 84, 44,202,135,186, 39, 8,170,156,207, 32,177,101, 8,217,246, 10, 88, 41,155,217,174, 38, 0, 32,212,139,
-243,163,133, 99, 27,207,123,229,165,151,158, 88,183,114,166, 55,232, 19,225,207,254,230,171,199, 50, 58,241,188, 33,150, 89, 97,
- 55, 66,230,149, 24, 16,119, 12, 10, 37, 34,133,197,170, 4, 16,136,137, 3, 0,102, 49,155,101,251,110, 11,179,229,152, 33, 38,
-138, 39,143, 62,211,159,152,232,247,123,189, 42, 42,244,223,252,214,101, 34, 42, 73,254,253, 95, 94,241, 67, 98, 62, 37,178,112,
- 68, 61,176, 2,204,220, 90,188, 4,115, 66,162, 68, 26, 2,169, 38, 33, 82,102,136,138,237,178,133,243,170,170,106,226, 81, 5,
-136, 37,213,203,214,108,218,113,205,141,189,126, 21,171,168,162,162, 74, 73, 64,244,241, 15,254,122,106,210,127,253,219,235, 14,
- 31,159, 95,186, 32, 85,133, 10, 65, 4, 10,109, 99, 36,128, 3, 67, 84, 33, 0, 19,155, 76, 82,130, 82, 32, 21, 17,176,146,170,
-106, 50,175, 0,181,188,208,238, 71, 85,100,110,110,254,134,175,124, 54, 4,142, 85,176,251, 14, 64, 34,144,144, 16, 0,253,240,
-175,189,121,113, 97,248,159,175,184,126,212, 52, 29, 9,185, 10,123, 68, 3, 37, 98, 18, 81, 64,149, 2,137,128, 65, 74, 2, 2,
- 36,144, 71, 34,156,213, 31,168,242,174,153,110,163, 30, 53, 55,127,253,218,212, 40, 7, 30, 76,244,221,165, 64, 33, 80, 8, 43,
-231, 69, 3, 74,131, 9,252,222,175,191,229,232,220,252,103,190,118, 83, 71, 66,134, 62,152, 19, 97,182, 28, 15,112, 69, 0, 24,
- 36, 76,172,230, 36, 85, 8, 65, 85, 45, 1,178,124,106,126,126,225,123,223,188, 94,155, 97,213,175,136,120, 98,114,210,240, 33,
- 69, 62,178,170, 66, 66,202,196,194,170, 74, 20, 60,243, 10,210,171,150, 47,155,248,208,219,223,248,205, 7, 30,201,209, 21,204,
-197,219,150, 65,109,125,176,188, 84,125, 93,164, 34, 66, 12, 85,243,226,124,244,216,137,219,175,253,242,236,170, 25,102, 2,116,
-197,138, 9,145,190, 39, 14, 73, 84, 84, 2, 75, 18,101, 37, 81, 73, 66, 68, 34, 66,137,192,204, 16,128, 52, 4, 0, 49,114,138,
- 97,208,175, 46, 56,103, 83,108, 15,134,136,144, 39,211, 4,242,133, 89,212, 66, 12, 21, 34,138,189,222,193,103, 14,108,187,249,
-186, 21, 43,150,155,242,158,178,126,117, 86, 66, 17, 40, 51,105, 14, 28,132,148, 68, 29,207,129, 64, 73, 84, 73, 45,202, 83,102,
- 86,128, 33,170, 30,185,197, 24,152,185,227, 58,242, 65, 34,129, 80, 22,155,130,152,171,222,224,246,111, 92, 21,208,152, 33, 88,
-181,106,133,109, 52, 17,196, 2, 71,130,128, 88, 32,109, 6, 75, 76, 36,148, 60,192, 50, 32, 9,204, 44, 0, 9, 2, 84, 24,164,
- 66, 14, 33, 17, 12,107,244,240,211,238, 18,204, 80, 85,114,148,105, 52, 74,119,222,120,117,191,223, 35, 80, 21, 64,176,152, 82,
- 1, 21, 16,131, 84, 96,193, 10, 65,153, 57, 65, 73,114,172, 79, 4, 86, 82, 38, 74, 30, 64, 51,147,138,130, 1, 16,105, 74,212,
-181,238,154, 99,160,152, 1, 74, 54,189,230, 64,135, 15, 31,190,243,250, 47, 79, 45,155,100,230,254,160, 79,190,226,130,100, 18,
- 64, 12, 85,201, 38,185,132,170,118,195, 46, 32, 75, 31, 52, 3,168,100, 73,158, 64, 72, 41,219, 22,143, 67,237,132,231,184, 26,
- 32,102,128, 36,201,103, 62,241,241,151,191,226, 12, 14, 60, 57, 61,153,197,132,188, 59,157,151,182, 45, 12,133, 66,149, 13,219,
- 36,130, 50,145,144,197,140, 68,194, 32, 16,131, 85, 21, 16,245, 92,201,147, 65, 81,149,164,146,227,105, 15, 97, 85, 35, 1, 71,
- 15, 60,241,223,254,211,127, 57,243,236, 83, 95,177,249, 76, 38,246,208,218,112, 93, 17, 38, 86, 86,183,231,228, 33,170,171,152,
-105,155, 18, 88, 72, 13,119, 98, 17, 97, 82, 9,204,162, 0, 68,139, 94,185, 44, 84,196,162, 79, 17,105, 35,124, 81, 17, 1, 52,
-108,218,180,233,192,246,123,206, 60,231,180, 85,171, 87,144, 47, 7, 14,211, 0,228, 97,186,173, 79,137, 88, 29, 48, 53,185,193,
-126,195,101,103, 54, 11,237,134, 64,115, 88,239, 0,141,166,198,158,120, 20,157, 26, 95,156, 5,196,199,134, 18, 1,156,186,241,
-148,101,203,167,216, 48, 87, 87,121,136,154, 89, 26, 87, 32, 85,102,130, 42,152,203, 89, 16, 85, 40,212,110, 62,137,231, 71,201,
- 48, 74,179, 72,234, 33,115,202, 1,182,201, 38, 63,207,121,135, 2, 26, 21,152,158,158, 12,129, 91,157,161,188, 59,118, 30, 68,
- 64, 76, 12,219, 28, 95,112, 62, 28, 98,255,249, 86,136,228, 60, 71,218,191,165,236,142, 1, 97, 37,103,232,138,202, 69,168, 26,
-205, 80,122,102, 72,202, 32,215, 97, 82,162,110, 40, 1,102,219, 15,147, 72, 22,137,228,115, 34,174, 34,157,117,228, 39,150,135,
- 53, 46,145,166,105, 44,191,203, 73, 72,155,150,168,104, 4,192, 33,128, 60,219, 5, 20, 96,144, 90,145, 68, 85,153,217,160, 71,
-117,181, 83, 91, 77, 89, 73,251, 92, 92, 98,101,203,252,190,187,226, 73,226,169, 79,155, 30,149,172, 81,196, 78,217,189,143, 60,
-221, 38,174, 89, 93, 8, 93,219, 99,206,218, 36,147, 83, 73,136, 8, 90,227,150,101,166,238, 73,180,251,112,217, 37,180, 55, 34,
-229,111,181,163,150, 68, 79, 38,188,196,240, 70,203,205, 94, 58,139,217,178,101, 11, 63, 7, 94,241, 19,125,188,180, 50,215,151,
-226,130,126, 68, 42,253,218,159, 61,255,172, 77, 27, 94,126,206,233,147, 19,253,233,169, 65, 21,195,194,194,112, 97,113,120,236,
-248,252,190, 39, 15,236,216,253,216, 29,247,238,250,127,184,160, 24,195,207,110, 62,255,183,223,123,217, 27,183, 92, 36, 2,145,
-198, 14,169,170,165,173,102,101,107, 17,131,120,154, 38, 73,106, 26, 21,173,235,230,150,255,125,255, 85,215,223,190,235,209,253,
- 47,206,130, 62,250,251, 31,120,223,123,222, 65, 28,114,196, 47, 65, 36,160,103,222,200,114,106,226,134, 67, 72,137, 57, 5, 9,
-137,154,192,146,180,138, 41,165, 80,197, 75,126,241,130, 75, 94,255, 26, 5, 82,146,255,113,229,141, 95,248,202,205, 63, 38, 0,
-242,201, 63,249,195,119, 94,118,169,122,128,211,245,147,185,114,102, 72,177, 97,199,169, 17, 73,146,106, 73,141,106,146,100,117,
- 53,119,102,102,157,137,169, 55, 24,196,106,112,244,224,193,207,125,225, 27,255,243, 43,223,249,191, 58,246,225,151,223,254,214,
-151,159,127, 46,135,216,130,145,212,134,124,157,160, 80, 75,216, 81,222,203,128,187, 85,221, 99,136, 49,132, 64,196, 34, 41,132,
-222,170, 13,103, 93,116,193,249, 23,156,185,238,222, 7,247,254,240,124,190, 60, 54,109,218, 20,137,152, 67, 48,185, 8, 18, 81,
- 80,241,148,193,162,126, 37, 2, 49, 81, 80, 82,166, 0, 86, 81,101, 46,113,207, 24, 64, 89,170,227,146, 70,243, 71,246,175,220,
-240,178, 87, 93, 52,124,251, 93, 59,215,172,153,253,196, 95, 95,213, 36,249,209,199,158,136,136,130, 69,253,204,172, 4,199,108,
- 41,199,105, 84,240, 89,134,191,201,234, 47,131,177, 14, 80,254, 48, 19, 5, 14, 85,168, 6,196,225,240,147,187, 79, 61,231, 85,
- 34, 18, 2,255,241,251,127,237,159, 93,246,134, 23, 96,135,168, 36, 45, 4, 16, 19, 59,192, 97,238,191,120, 90,143, 68, 74,138,
-195, 32, 34,182, 53,181,127, 24,129,217,185, 19,196,145, 57, 52,163,197,201,137,126,136,204,129,206, 60,117,237, 39,254,197,123,
-166, 39, 6, 63,218, 48,230,192,213, 3,120, 3,102,140, 81,209, 89, 25, 90,240,155,136, 40,112,126,184, 12, 51,220,239,107, 34,
- 34,102, 73,205,196, 68,223, 94, 4,102,168,252,235,127,122,217,133, 47, 63,251,135, 44,136, 90,124,186,171, 7, 5,216, 35,127,
- 65,174, 76,140,172,200, 68,246,199,191,158,179,156,145,115, 2, 77, 77, 61, 26,246,251,189, 24, 99, 8,158,128, 51,225, 87,182,
-252,220,251,127,249,141,207,183, 32,237,220, 59, 90,244,169, 77,199,104,108,155,136,152, 25, 28,172,194,212,217, 32, 6, 51,152,
-236,143, 26, 70, 68, 97,215,125,119,199, 94,176,130, 84, 8,108,171,102,194,105,235, 87,125,224, 87,222,240,220, 91,150,115, 71,
-133,106,174,198,105, 27,190,154, 72, 40, 87,154, 57, 16, 49,187,234,176,169, 14,136,193, 1, 84,196,100,105,106,154, 94,121,234,
-206,251,118,196, 24,137, 77,168, 28, 66, 96, 14,196,204, 68,235,215,204,254,243,183,253,210,115, 75, 40, 99,114,121,175,180,200,
-134, 75, 49,199,144, 60,246,141, 51, 73,133,252, 77, 33, 47,221,151, 37, 41, 77,205,110,184,225, 75,151,171,192, 5,227, 57,175,
-137,210, 43, 82,167,172, 94,241,155,151,252,195,241, 5,101,140,176,108,149,125, 21,217,175, 22, 41,217,119,219,154,202,177,178,
-122, 40, 71,175, 30,134,200, 33, 48, 71, 85,141,253,233,235, 46,255,226,201,249,197, 88, 5, 14, 33,216, 57,117,187,155, 41, 16,
- 76, 49,240,134,181,179,175, 61,239,204,174, 47,115,132, 16,228,224,162,225,141,142,112, 89, 82,172, 4, 73, 68, 65,145,152,130,
-128,140, 99, 97,124,140,140,120,121,188, 13, 96,207, 67, 59, 31,126, 96, 87, 8,220,235, 85, 86,247, 32, 34,130, 64, 36, 87,235,
- 8, 74,162, 76,172, 85, 85, 93,252,202,243,118, 63,241,244,209,249,147,249,216,103, 52,206,109,144, 82,123,198,188,182, 12,152,
-212,178,249, 97,211, 24, 23, 85,100, 14, 28, 98,136,131,199,246,254,224,250, 47, 93,253,216,158,189, 19,147,253, 94,191, 10, 85,
- 8,129,221,154,229, 4,152, 28,202, 37, 38,178,210,112,175, 23,223,243,134,215,181,192,185,217, 31, 2,137, 10,188,176, 5,175,
- 54, 19,145,230,194,160,167, 68, 6,168,185,149, 32,143, 91,122,247,108,221,250,216,206, 29,147,211, 19,211,203,167,138, 82,166,
-148, 60, 85, 49,224, 38,131,197, 29,127, 73,166,233,253, 94,124,199, 47, 92,120, 8,136, 84,116, 86,197,234,117,230, 58,197,234,
-137, 66, 32, 85,101, 34,129,146,182,198,192, 33,107, 5,223,119,199,247,159,216,253,224,204,202,153, 85,107,102, 85, 33, 42, 80,
- 52, 41, 1, 10, 4, 17, 9,196, 9,106,216, 72, 54,247,134,195,219,145,112,205, 60,101,197,244,193,185,228, 24,163,230, 4,153,
- 44, 35, 52,101, 2, 9,219,155, 2,144, 20,204,193,153, 46,213, 13,215,124,165,207,139,177,138,107,214,173, 46,169, 26, 9,139,
-104, 12, 33,137, 48, 43, 84, 5, 8, 12, 17,219, 10, 7,142, 50,152, 97, 88, 22, 89,133, 30, 72,177, 4, 24,226,187, 84,242,122,
-131, 27, 5,148,209,112,114,128,161,234, 15,110,249,198,181, 58, 58,182,124,178, 7,244, 13, 95, 55,144,209,150,204,140, 36, 6,
- 22, 41, 49, 83, 74,206, 13, 3, 41,105,177, 33, 16,119,142,238,225, 13, 0, 45,184,134, 59, 79,241,163, 66, 4, 17,205, 88, 35,
-140,230, 8,142,247,220,254,221,209,177,167,251, 33,208, 96,160, 14, 70,152, 57,101,135, 3, 12,233, 35, 82,127, 9,175, 74,216,
-193,135,136,171, 79,198,162,179,164, 12, 59,136,121, 61, 32, 15, 94, 61, 42, 83, 45,208, 35, 1, 26, 98,181,109,235,214,122,110,
- 63, 7,142, 85,116,213, 44,184,132, 42, 84, 58, 37,109,247,180, 89, 30, 84, 46,231, 88,168,175, 40, 31,138, 44,167, 78,144, 79,
-230,222,225, 78, 72,213, 1, 6, 16, 51,239,217,185,251,192, 35,247,199, 42,112,224,178,159, 25, 60,202,159, 36, 38, 41,110,208,
-235, 54,228, 26,227,247, 72, 4, 17,151, 24,131,149,100, 73, 96,215,205, 58,152, 72, 32,234,251,156,183,106, 56,170,183,126,243,
-202,233,169,126,213,143,112, 12,132,224, 0, 43, 72,196, 0, 45, 34, 77, 73,137, 12, 98, 83, 64,202,173,163,227, 20,179, 92,200,
- 66,210,241,149,248,209,139,173,253, 83,182, 50,134,221, 61,113,216,250,157, 27,185,158,155,158,238,119, 64, 71,167, 66, 88, 69,
- 95,216,106, 34, 25, 20, 53,194,152,241, 54, 60,196,132,162,108, 22, 64,196, 12,145,236, 58,115,229,175, 91,112, 43, 56,117,190,
-158, 2, 68,243,243, 39,239,191,249,218, 16, 25, 76,101,237,121,107, 51, 47,128,136, 76,162,108,154, 10, 17, 47, 75,229,186, 91,
-177, 90,110,170, 57,151, 40, 50, 40,239,200, 78, 94,145,235,144, 69, 27, 46,214,106, 80,221,242,245,175,208,232, 40, 7,143,101,
-205,163, 65,161, 25,245, 51, 93, 85,136,111,128,170, 85,105,124,189, 12, 36,223, 72, 15,236,216, 62, 75, 74, 4, 22, 36,171, 60,
-180, 24,146, 5,135,118, 5, 70,222, 15,230, 48, 28,214,159,255,212, 39,211,201,195,174,173, 29,141,211, 66,133,206,134,157,193,
-118,176,149, 72, 65,170,229,132, 83, 27,128, 3, 37,190,117, 79,159, 47,163,218, 69,241,181, 85,106,179, 2, 33,196,135,238,217,
-122,223,109,183,174, 91,191,134,152,252,174,221,169,105, 23,147,224,142,223, 45,130, 45, 6,184, 4,229,153,255,231,165, 10,171,
- 42, 16,224,245, 71,237,174,201,131, 6,147, 80,180,156,230,214,107,255,118,215,246,135,206, 58,231, 52,183,154,165,118,150, 53,
-171, 5,246, 75, 85,130,178,129,207, 37, 72, 21, 55, 74,201,107, 41,146, 89, 58, 90,206,147,139, 36, 3,183,190, 20, 95, 29, 0,
-112, 83,215, 55, 93,241, 87,119,221,126,215,166, 51,215, 83,134,193,139, 37,113,183,219, 41,105,184, 9,227, 54,109,115,179,134,
-236,160,156, 29, 90,238,192,239, 98, 9,248, 40, 2, 93,242,128, 2,136, 15,109,187, 99, 98,184,120,238,203, 78,143, 49, 80,135,
- 34, 3,234,218, 44,245,131,222,205,136,188, 82, 46,102,183,178, 45,182,178,155,182,216,169, 85,176,178, 96, 90,116,219,241,207,
-177,141, 3,192, 71, 14, 29,159, 93,185,124,114,122, 2, 68, 0,117, 75,240,157,117,103, 82,151, 39,107,109,158, 68,134, 33,147,
-170,149, 35, 93, 59,202, 6,149,125,145, 2, 97,136,136, 10, 32, 16,237,110,156,159, 33,174,122, 97,118,229, 50,143,122,139,216,
-129, 49, 17,181, 5,116, 43,205,106,166,237, 43,216,244,153,168,115,122, 51, 55, 34,215,120, 50, 58, 98,128, 48, 20,218, 86,127,
- 92,108,134,113, 3,136,189,170,234,247,123, 28, 76,232,214, 27, 64,224,165, 80,104, 7,191,206,117,190, 76,116,204,220,167,124,
-134, 5,154, 75, 79,154,161,244, 86, 54,185, 2, 81, 86,216,194,220,102,135,170, 94, 21,171, 88,140, 7, 88, 11, 74,222,234,147,
- 27, 10, 33,116,178,165, 12,161,231,114, 7,188,140, 80, 54,194, 1,242,182, 4,145,151,213, 22, 33, 84, 10,211,196, 41, 27,198,
-168,107, 97,123, 21, 34, 86,234,236, 87,121, 65,218, 69,245,187,187,163,237, 66,114,217,165, 43,137,188, 8, 53, 44,110,188,110,
-132, 22,212,183, 45,179, 20,204,190,217,171, 43, 96,183,113,228, 96, 67,113,119, 86, 94,149,220, 32,161, 29, 73,136,168, 2,173,
-140,140,157,233,148,159,178, 83,229, 81,222,247,109, 53,131, 0, 32,102,163, 2, 37, 49,184,200, 3, 23,245,128, 86,225,117,160,
- 28,184,121,125,180, 35,237,252, 52,111,129,221,183,223,120,106,203, 26,157, 83, 38,232,252,174,148, 67,111,174,195, 67, 46,109,
-195,125, 5,108,227, 60, 87,233, 0,101, 29,139, 82,214,209,170,106,187, 23, 42, 99, 91,150,212,235,118,121,251, 82,174, 30,105,
-231, 29,128, 98,139,159, 88, 68,202, 96,180,208, 84,201, 21, 61, 25,209,156,174, 26,115, 64,199,202,100, 42,229, 47,163, 75,182,
- 27,229, 39, 42,101,237,150,206,118,251, 97,131,168,250,130,168,132,187, 0,148,148,141,217,160, 86,248, 47,118,200,255, 88,222,
- 37, 93,107,215,249,150,148,141,138,189,239, 48,110, 6,115,219,181,182,139,213,142,165, 2, 40, 62,121,248,196,182,221, 79,122,
-200,159,195,169,238, 41, 43, 46, 92, 75,169,172,252,236,152,144,226,144, 74,205, 81, 91, 27,132,103, 73,177,221,212, 82, 15, 53,
-230, 22,109,217,178,229,200,145, 35, 71,143, 30,125,169,149,133,126,178, 15, 85, 93,177, 98,197,236,236,108, 4, 48, 55, 55,247,
-248,227,143,255,189, 80,158, 77,242,156,157,157,229,191, 23,196, 79, 89, 57,241,167,172,188,249, 99,105, 38, 66, 8, 85,140, 6,
-250, 26,146,102,102,175, 73,233,255,115, 1,205,206, 44,251,197,139,127,238, 21,231,159,121,193,230,151,157,118,234, 41,193,201,
- 61, 6,101, 26,107, 82,243,223, 41,123,206, 84,194,141,194,175, 40, 84, 15,163,247,207,205,205,223,187,227,145, 29,123,246,109,
-221,246,208,193, 35,199,126, 10, 4,116,206, 89,167,191,249, 77, 23,191,246, 53,175, 92,191,110,237,105,235,215,132, 24,205,185,
-138, 36, 56,131,215, 76,189,100,103,107,205, 29,170, 42,176, 4,199,159,104,167,217, 81,116,140,208,227,229, 89,136, 78, 79, 79,
-174,223,176,250,210, 95,186,208,136, 45,246,145,197,225,232,192,161,163, 79, 60,117,232,222, 29,123,239,188,111,247,254,103, 14,
-255,100, 76,245,235, 95,255,250,147,243,199,215,175, 93,241,143,223,118,201,235,126,254,130,137,193,192,130, 96,203,138,199,242,
-141, 76,207,201,175, 68,187,113,163,165,124,200, 33, 77, 17,135,197, 27, 72,240,240, 39,105, 55,171,135,135, 77,206,116,119,206,
-108,139,200, 59, 60,196, 20, 67, 0, 81, 83,167,131,135,142,222,120,235,221,183,223,245,224,222,199,159, 62,254,194,138,202, 63,
-222,227,244,211, 79, 63,227,140, 51,162,170,190,239,159,188,243,178,183,189,169,228, 95,172,158,197, 27, 45, 17,100, 11,135, 5,
-175,160,160, 42, 78, 93, 85, 81,163,181,170,168,146, 26,135,215,152,156, 66, 8, 76, 42,198,172, 85,101, 69, 98, 18, 40,137, 8,
-192,202,106,228, 88, 4,151,115,102,180,129,160, 34, 74,109,132, 7, 67, 61, 3,243,212,242,169, 21,171,215,157,183,249,213,191,
- 35,105, 97,254,232,220,161, 67,251,247, 61,243,191,174,190,233,219,119,108,119, 90,213,139,126,196, 20,224, 16, 67,236,185,122,
-183,169,170, 90,251,154,113, 20,200,159,104,102,119, 10, 21,254, 61,121, 73, 5, 90, 18, 71,203, 20, 4, 2,107, 86,131, 8,236,
-137, 18,131, 21, 2, 17, 13,185,135,168, 91,217, 53,112, 40,116, 17,151,124,138, 21, 77, 61,108,234, 81,172,250,131,169, 21,179,
-235,206, 90,181,254,156,181,167, 61,179,124,102,217,235,206, 63,107,238,232,137, 39,142,204,221,112,231,246, 23, 87,173, 98, 41,
-198,112, 6, 88,168, 77,248,237,172,229, 34,172,107, 84,174,153,147, 66,172,186, 33, 68, 65, 33, 48,198, 62,140, 8,172,214, 32,
-200, 74,234,210,177, 78, 3, 67,243,124,160,129,122,149, 80, 11, 20, 55,142, 88,143, 39, 23, 45,250,163, 11, 39, 14, 47,206, 31,
- 29, 44, 91, 57,123,202, 89,175,156, 89,245,204, 83,135,158,121,230,193,243, 54,174,219,124,246,198, 24,195,161, 99,243, 55,220,
-113,223,142,189, 79,168,234,139, 32, 32, 34, 16, 7,104,242,178, 2,137,118, 22, 70,234,146,112,168, 65, 29,170,202,121, 45, 8,
- 44, 36,206, 76,181,234, 66,254,105, 84,126,199,191,140, 96,238,232, 57,219,201, 37,167,209, 63,203, 52, 62,235,133,162,240,110,
-141, 20, 2, 85, 29,206, 31,109, 22, 79,174, 60,245,220,141,103,109,122,224,158, 93, 85,140,177,138,129,121,237,202,229,239,125,
-203,197, 0, 53, 41, 93,254,205,239, 61,184,119,223,223,209,139, 17, 89, 77, 78,189,252,235,132,236, 82,187,179, 35, 35, 74,185,
-232,105,124,157,150, 17,236, 29, 37, 25, 27, 80,237, 0,143,249,247,137,160,156, 33,118, 2,132, 56, 44,213,149,231, 19, 19,181,
-180, 27, 71, 59,188,189,144, 37,141,234,197,249, 88,245, 38, 39, 6, 85, 21, 66,198,111,172,125, 55, 6,126,207, 91, 46, 38, 96,
-238,196,201,207, 95,119,219, 19, 7, 14,255,248,110,222,165,130, 92, 22,104,241, 77, 47, 22,228,134, 19, 42, 12, 97, 42, 88,190,
-116, 0,244,194, 13, 81, 87, 23,151, 35, 49, 72,160, 12,101, 82, 41, 71,185,212, 91,116,236, 28,117, 0,177, 92, 17,200,245,247,
- 92,169,245,108,157, 1, 28,124,242,169,193, 68,223,152, 84, 86,156, 70, 78,238,137, 84, 69,103,166, 39, 63,248,206, 75, 82,147,
-182,110,127,248,134, 59,238, 79, 47,216,162,199,231,214,106,152,254,119, 72, 23,237,130,149,168,219, 31,133, 92,143,113, 89, 88,
- 5,205, 0,105, 51, 73, 68,156, 97, 80, 98, 27,133,160,118, 74,115,223, 16,193, 26,154,203,238,180,224,115,174,106,160, 16,206,
-178,193, 82,104, 74,245,228,204,154, 67, 79,239,127,122,255,211, 85, 47,134,192, 28,216,160, 35,115,126,102,226, 4,106, 13, 38,
- 20,194, 63,120,213,121, 63,191,249,156,199,246, 31,188,226,166,173, 39, 22, 22, 95,184,128, 60,242,104, 75, 9,228,229,101, 63,
- 47,185, 45,135, 8, 38,253,194, 2,104,195, 3, 85,182, 82, 80,203, 50,202,112, 49,172,120,166, 10,205,214,217,218, 22, 20, 80,
-134,159,109,165,214,175,121,176, 69,212, 61,133, 70,251,178,253, 75,169,158,154, 93, 63, 92, 92,184,251,187,223, 29, 46, 14, 99,
-229, 83,114,138, 90,107, 32, 3,193, 45, 32, 73, 34,230, 65, 1, 58,125,195,154,223,123,247, 91, 15,205,157,248,226,141,183, 47,
-105, 32,123, 78, 1,185, 58, 82,113, 94,230, 95, 36, 87, 39,160, 54,128,133,188, 33,128, 69,196, 82, 45,223,114,133,245,201,136,
-112, 62, 5, 12, 21, 82,136, 88,255,111,128, 42,121,239,182,118, 91, 32, 41,135, 10, 46, 36,116, 72, 27,185, 93,110,137,207,151,
-212, 48,199,229,171, 78,125,244,161,237, 59,238,121, 96, 97, 97,200, 28, 10, 65,170, 88, 70, 23,179,178,136,130, 17,136, 29,121,
-166, 64, 44, 20,121,213,138,233, 15, 94,246,198,253, 7,142,124,254, 91,223,171,155,244,252, 2,242, 3,212,130,115,176,124,202,
-171,109, 25, 39,183,144,198,172, 53,179,151,163, 33,196, 36, 34,185, 18, 33, 45,179, 7,129, 88,189,123,219, 66,109, 10,153, 20,
- 97, 98, 45,167, 74, 58,231,166,195,167,234,170,183,253, 76,137, 56, 76, 78,207, 62,249,232,158,219,110,188,121,254,196,130, 49,
-118,109,178, 8,185,159,180,222,242, 82,239, 70,135,152, 1,111, 73, 18,114, 48, 23,113,195,154,149, 31,249,213, 75,239,223,243,
-248,141,119, 63, 32,207, 10, 11,198, 52,168,236,161,251, 98,167,212,120, 75, 13,178,239, 22,199,104, 11,231,198,235,202, 76,240,
-134, 52,235,234, 42,196, 2,159,109, 65,197,126, 81,167, 24, 78, 94, 75,106,139, 75,109,123, 96,107,182, 5,138,222,196,244,145,
-131,207,236,184,251,142, 35,135,230, 36, 37, 34,138, 49,112,185,211, 22,161, 85, 5, 19,180,176,215, 60,188, 16,120,144, 42, 96,
-102, 83,129, 16,216, 62,243,170,179, 55,158,119,218,186,107,183,222,251,232, 83, 7,158,199, 6, 1, 68, 10,209,210, 97, 66,121,
-194,145,189,206,158,206,152, 68, 74, 48, 73,121, 85,156,205,144,216, 15, 8, 40, 16,140, 70,163, 25,249,167, 14,207, 78, 59,229,
- 90,237,248,174,165, 27,200, 33, 46, 46, 46, 62,190,103,239, 19,143, 60, 50,127,252,132,209,224, 98, 12,228,211, 18, 44, 32,202,
-198,221, 89, 22,110, 77,213,249, 13, 76,240, 1, 20,217,122,122, 29,212, 38,130, 33,114,225, 6,188,253,117,175,222,187,255,224,
-117,119,222, 87,220, 92, 44, 16,183, 51,216, 76, 38,109, 96, 75, 12, 47, 85,230, 74,166, 26,109, 65,209,126,150,201, 38, 76,104,
-113,177,118, 36,115, 83, 99,238,221,109, 97, 0,103,122,181, 7,136, 10,227,149, 1, 90, 92, 88,120,102,255,147,187,239,187,231,
-196,177, 99,253,193, 32,132, 16, 2, 79, 78, 77,118, 34, 45, 47,205,120,199,100,158,153,144,177,134,252,161,194, 90,113,153,104,
- 41,144,138,151,167,137, 4,198, 7,141, 21,247, 17,207,218,176,250,183, 46,253,133, 47,221,250,125,203,189, 98,199, 8, 82,233,
-145, 82,251,207,212, 73, 75, 64, 82,104, 44,153, 80, 32, 78, 71, 17, 17,235,173, 22,107,166,182,110, 96,175,170,139,157, 32,103,
-180,100, 38, 79,135, 61, 98,204, 60, 94, 88, 24, 61,112,247, 93,251,118,237,236,245,170,254,160,226,200,253,126,156, 56,101,181,
- 15, 73, 50, 11,146,164,116, 46,122,177,214, 61, 40,137,183,126,149,102, 38, 63,216,172, 44, 16, 23,156,183, 16,147, 66,189,248,
-175, 86,154, 85, 86, 86, 14, 28,180,138, 58,232, 85,239,122,253, 69,251, 79,142, 78,104, 62, 98, 37, 46,244, 64,208,200, 37,146,
-163, 68,207,200,109, 10, 9, 76, 10, 22, 20,219,239,100,119,230,100, 19,245, 34,173, 19,246, 60, 4,245,183, 60, 20,102,102,142,
-113,223,163,251, 30,222,126,255,201, 99,135, 2,201, 96, 98, 16, 98, 88,183, 97,181,118, 66, 71, 83,142, 96,160, 8, 52, 82,244,
-210,141,177,172, 40,148,250, 24, 49,135, 12,149, 88,251,157, 49, 93,132,164,112,159,114, 16,235, 34,102,134, 10,132,192,196,202,
-162, 76,129, 89, 3, 87, 49, 40,116,162,233,157,176,222, 63,228,169, 89,153, 52,208,209,201,174, 33,101,182, 29,243, 39, 30,255,
-145, 26,123,202, 13,121, 38,170,250,176,152, 14,165,138,137, 67,168,155,116,240,233, 3,123,119,238, 56,184,111,239,138,217,233,
-170,215, 27, 4, 12, 86, 78,119,183,169,216, 20, 21,207,110,148, 52, 55,218, 43, 11,107,112,169,120,216, 33, 57,201, 81,120,151,
-175,177,153,156, 77,196, 66, 66,106, 92, 11,231,132,100, 99,132,164,206, 13,164,150,216,201,196, 26,153,153,164, 75,126, 35, 51,
-179,206, 66,242,195, 45,157,198,113,228, 88,217, 40,145, 57,172, 83,101,133,128,193, 46, 75,235,117, 86,181,254,104, 24, 9,127,
-238,232,209,187,110,187, 5,195, 99, 19, 19, 3, 14, 28,128,117, 27, 86,163,205, 99,197, 54,220, 90,160,179, 30,171,187,159,108,
-164, 74,239,106,209,115, 21,205,173, 1, 32, 19, 25,231, 92, 91,139,245,241,140,210, 37,229, 23, 81, 8,169, 88,164,175,109,237,
-214,233,221, 42,204, 29,186, 34, 50,165,211,236,173,104,135,239,210, 33, 0,117,243,234,241, 4,197, 12,142,150,123, 99,238, 85,
-189,131, 7, 14,238,190,255,238,250,196, 28,161,137, 85, 92,214, 39,244,167, 58,160,143, 31,186, 76,202,133, 72,241,246, 93, 35,
-149,169,238,158,117, 8, 10, 97, 80, 75, 74,211,110,171,150,192, 34,255,166, 40, 58,195,107,236,252,251,189, 42,105,167, 17,194,
-237,169,169,138,245, 9,140,185,249,220,162,233,188,207,226,159, 41,119,106, 42,145,169,166,106,235, 59,218, 8,132,168,170,170,
-147,243, 11, 79,252, 96,239, 99, 59,183,247,163,196, 94,143,129,254, 32, 0, 1, 57, 16, 29,111, 50,112, 58,175,138,218, 8, 35,
- 51,115,236,176,174,249, 4, 45, 49,136,115,244, 40, 31, 33,100, 95,130, 14, 75, 9, 93, 90,170,199, 31,222,194, 89, 88, 84,217,
-202, 83,203,216,131,228,103, 29,114,101, 39, 14,242, 9, 5, 68, 45, 59,216,163, 90,178,245,162,228,141,173, 49,226,220,190, 31,
-134,139,139,247,220,126,139, 12,143,218,136,201,233,201, 88,170,250, 57,232,247, 14,238,150, 15,159,223, 68, 62,140,206, 15, 80,
- 55,192, 70, 70,130, 74, 73,221,209,114, 42, 41,235,172, 81,184, 10,108,144,161,134, 18,106,230,184,181,205, 34, 45, 96,241, 20,
- 79,198, 2,117, 63,199,153, 41,138, 49, 13,114, 38,146, 13, 62,107, 53,213,103, 12,138,213, 24, 37,235, 14,135, 80,245, 6,187,
-119, 60,184,255,225,237,172,117,140, 28,137,208,239,217,198,218, 28,144, 12, 30,105,230,193, 81,185, 71,195, 36, 61, 91, 50,219,
-215,198,211,121,210,137,182,116, 67,219, 84, 23, 52,149, 35, 10, 15,206,178,202,251, 72, 50,143, 93,213,134,186, 20,205, 18,103,
-133, 43,196,246,188, 37,185,182, 88,101, 9, 92,233, 57,202, 62,133,176,101,231,179,116, 56, 88,208, 14, 64, 99, 8,117,147, 30,
-219,179,107,223,195, 15, 68,170, 67,136,189, 64,160, 64, 90, 80, 32,202,208, 98,230,188,186, 97,202,249, 94,154,154, 15, 41, 0,
- 0, 6, 9, 73, 68, 65, 84,217, 78, 29,107,142,179,163,150, 67,164,188, 23, 30, 16, 3, 45, 11,144,196, 25,145,121,140,105, 86,
- 24,111, 34, 39,178,224,141, 24, 98,120, 1, 41,196,189, 71, 14,155,164, 3,129,151,249, 54, 58, 30,199,211, 24,162,152,209,247,
-156, 99,101,250, 73,113,113, 2,218,187,123,215,174,187,110,157, 89, 54, 9,166,126, 36, 32,162,164,172,228,243, 50, 11, 51, 14,
-220,181,230,148, 89,187,118, 91,166,149,197,239,101, 98,173,207,221,117,138, 51,160,176,236,128, 90,194,139,123,156,194,136, 86,
- 44,137, 93,145,167,139,104, 65, 81,252,150,144,141, 51,186,124,193,238, 1, 83, 64,159, 5,138,199, 18,165,168,163,163,140, 60,
- 3,130, 3,115,140,247,223,121,231,206,187,111,159, 93, 49, 21, 3, 47, 95, 54,137, 22,157, 54,104,158,218,200,184,237, 69,107,
- 49, 82, 90,178, 39, 12, 71,132,124,102, 17, 21,108,204, 91, 69, 50,238, 98, 94, 63, 3,220, 45,163, 30,153, 20,221,190,118, 21,
-210, 22, 32,105,161, 54,205,164, 96, 45,138,108, 57, 66,219,146, 42,186,148,156,220, 2, 89,157, 72,218,134, 99, 24,128, 79,196,
-251, 31,219,123,251, 13,215,203,226,241,181,235, 86,173,154,157,118,255,104,199,153,199,116, 35,139,164,228,181,185,101,144,150,
- 6,232,237,145, 99,176,114,174,106,184, 71,102,243, 14,197,172,163,228,155,217,177,101,113,249,165, 73,199,246,199,148, 54,119,
-145, 0, 12,167, 68,187, 27, 20, 29, 35,200, 89,113, 79,159,205, 0, 46, 53, 75,167, 75,151,153, 79,196, 32, 58, 57,127,124,231,
-182,173,183, 93,255,173, 85,107,103, 79, 89,191,154,103, 86, 41,101,185,208, 56,199,170,133,140,157,208, 72,109, 64, 11,166, 49,
-136,154,115, 54, 92,224,118,180,209,137,230,217, 70, 68, 98,236,107,111, 18, 26,219,134, 37, 49, 88,246,214, 25, 1,106, 21, 23,
-212, 33,255,102,244,198,230,226,150, 17, 77,237,204, 13,109, 9,177, 45, 69,182,101,111,251,100,152,208, 52,114,252,232, 83,219,
-110,185,241,238,173,219,167,167, 7,103,158,125,218,228,244,128, 10, 55, 1,173,239,163,220, 0,147,141,174,150, 65, 73,109, 3,
-194, 56,217,218,199, 53, 22, 35, 1,109, 39, 62,161,141,193,115,197,195,125,149,118,139, 61, 34,101,170,137, 59, 47, 31,129,164,
-121,214, 72, 54,240, 93,232,191,220,174, 64, 84,138,246, 56, 43, 79,180,203,141,237,144,152,219, 92,199,105,156, 71,159,126,236,
-219, 87,254,245,246,109, 59, 69,244,148,245, 43,215,172, 93,217, 31,244,172,155,174,205,209,168,147,209,242, 56, 38,173,221,202,
-222, 82,233,160,219, 46,150,251, 6, 12, 67, 65, 17,133, 90,232,239,247,218, 54, 63,117, 58,213,168, 19,236,160,237,114, 27,107,
-184,149, 78, 49,195, 25, 2,153,148, 9,237, 78, 31,201,242,145,150, 79,185,148,219, 94, 58, 18,136,104,251,182, 7, 14, 78,198,
-126,191, 90,189,118,118,197,236,242, 94,191,151,193,111,237,204,171,234, 22,239, 58, 53,161,204,198,207, 1,126,110,119, 35, 94,
-218,209,211,225, 58,151,222,106,227,177, 90, 6,200,170, 98, 95, 85,154,208,198, 65, 52, 67, 20,198,106, 45,232,212,165, 13, 40,
-238,240,229, 11,109, 92, 51,215,214, 21,164,149,133,100,104,169, 52,241,118,186, 73,218, 35, 6, 76, 78, 13,102, 87, 46, 91, 62,
- 51,221,235, 87,206,188, 55,174,187,215,110,180,244,218,228, 14,185,238, 92,188, 37, 21,163,142,157,176, 4,166,227, 65, 41,183,
- 67,162,160, 39,153,185,128,210,252,209,137, 88, 58, 22, 83, 59, 65, 75, 75, 92,109,155, 28, 92, 54, 29, 25,117,105,210, 6,125,
-119,232,235, 99, 77, 0,250,156,143, 44,160,170, 87,205,204, 76, 79, 78, 77,246,250,222,205,157,239, 73, 57,171, 56, 59,131,131,
-218, 28,251,249,248,161,109,172,140,210,158, 83,144,127,205,227,128, 60,242,167, 12,209,169, 27,180, 49, 67,177,132,209,171, 24,
- 51, 23,210,157,129, 51,126, 76, 68,116,137, 54,249, 40,159,194,187,111,155, 18,178,117, 26, 27,170, 35, 57,164,142, 0,122,253,
-106, 98,114,208,235, 71,107,174,110,139, 2,110,157,213, 6,151,229,156,136, 72,127,136, 96,218,154,115, 6,163, 75, 30,199,249,
-128,218,104, 34, 41, 93,242,222,126,171, 50, 54,212, 82, 48,110, 67,203,220,169,142,136,100, 73, 43, 83,151,117,189,164, 51,161,
-101,223,119, 4,215, 97,220, 47,149, 82,182, 65, 10,196,200, 85, 63, 6,147, 14,229, 22,203, 98,100,132,212,218,104,144,161, 33,
-106, 61,118, 46, 43,146, 71,240,252,108, 74, 6,181,125, 3,146,123,191,156, 36, 82,134,255,102,156, 76, 50, 78,102, 70,215, 45,
- 45, 58,139,150,108, 41,178,135, 22,233, 28, 49,180, 70,216,159,161, 35,164,150,215,223, 74, 10, 69, 94, 45,133,188, 45,241,152,
- 6,217,132,108,107, 72, 30, 51, 21,173,139,160,118,132, 22,200, 5,145, 51, 81,116,122,173, 59,211, 28, 92,229, 50, 20,155,163,
-254, 82,248,242,148, 94,198,233,241, 94,156,147, 76,238,243,177,205, 89, 89, 44,231,236,152,161,174,195,234,134,127,173,129,110,
-197,209,233,152,208,246,103,153, 2,215,189,142,205,213,204, 71,204, 70, 77, 48, 81, 55,252, 35,203,252,178,173,245,144,215,250,
-245,178,115,246,233,119,221,104,182,245,233, 68,206,230,204,246, 76,203,136,148, 37, 45, 4,101,134,179,116, 6,199, 97,105, 47,
- 1,208, 74, 69,150,132, 46,109, 87, 68, 57, 56,249,206,225,138,161, 40,227,196,198, 78,162,116, 53,172, 29,141, 87,218,198, 98,
- 33, 1,230,144, 35,123, 78,171,218, 80,139,182,180,120,179, 33, 21,121, 14, 44,149,241,242,185,153, 28,109, 69,182,168,134,131,
-194,210, 90, 94,148,249,149,109,151, 12,156,180,104,191,152,181, 6,214,106,230, 19,131, 59,154, 87,142, 97,105,191,200,236,200,
-182, 25, 75,203,136,188, 78, 91,214,216, 64, 54,237,176, 76, 11,225,178, 27, 73,151,158, 71,199,211, 58,179,122, 72, 59,253, 80,
- 30, 71,179,163, 11, 37,245,111,235, 48,100, 37, 58,233, 12,113, 17,255, 76,183,113, 22, 99, 61, 39,121, 74, 91,231, 13,255, 95,
-181,136, 79, 99,109, 83, 36,201,229,176,150,241,153, 79,154,116,219,207,242,129, 26,107,216,106, 91,164,202,191, 64,159,163,225,
-167,125,210,106, 16,151, 25, 34, 29, 78, 78, 39,111, 47,150, 38,143,139, 40, 53, 87,255,151, 66,146, 41,217,102,105,182,134,116,
-186, 83,199,228,210, 61, 74,173, 71, 71, 91, 6, 44,235, 5,150, 72,103, 44,128,105, 91,153,208,157,210,215,117, 91, 99,150,184,
- 99,125,164, 29,141, 87,250,178,218, 14, 56,160,140,209,183,185, 42,108,181, 70, 31,166,232, 13,117, 25,219,112,230, 9,113, 75,
-145, 26, 7,152,219,126, 46,109,199,220, 20, 73,116,129,169, 78,223,100,121, 1, 25,239, 66, 30,115, 94, 80,116, 84,208, 63, 41,
- 75, 13, 81,105, 29,203, 42, 33,101, 43, 48,246, 1,140, 75, 22,227, 77,162,218,233, 53, 38,218,178,101, 75, 23,125,199,223,149,
-244,248, 66,184,217, 63, 53,151, 36,210,255, 3, 51, 1,167, 61,222, 14,125, 55, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/preview.blend.c b/source/blender/editors/datafiles/preview.blend.c
deleted file mode 100644
index a9dc29ca367..00000000000
--- a/source/blender/editors/datafiles/preview.blend.c
+++ /dev/null
@@ -1,17982 +0,0 @@
-/* DataToC output of file <preview_blend> */
-
-int datatoc_preview_blend_size = 575216;
-char datatoc_preview_blend[] = {
- 66, 76, 69, 78, 68, 69, 82, 45,118, 50, 54, 50, 82, 69, 78, 68,
- 32, 0, 0, 0,128,173,121, 86,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0,112,114,101,118,
-105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, 48, 4, 0, 0,128,169,121, 86,
-255,127, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 51, 3, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1,152,133, 23, 4,
- 0, 0, 0, 0, 72, 41, 24, 4, 0, 0, 0, 0, 0, 0, 0, 2, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,100,115,107,
- 47,100, 97,116, 97, 47,115,114, 99, 47, 98,108,101,110,100,101,114, 47, 98,108,101,110,100,101,114, 47, 46, 47,115,111,117,114,
- 99,101, 47, 98,108,101,110,100,101,114, 47,101,100,105,116,111,114,115, 47,100, 97,116, 97,102,105,108,101,115, 47,112,114,101,
-118,105,101,119, 46, 98,108,101,110,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 0, 0,
- 88, 1, 0, 0,168,130, 23, 4, 0, 0, 0, 0,146, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,132, 23, 4, 0, 0, 0, 0, 72,132, 23, 4, 0, 0, 0, 0, 72,132, 23, 4,
- 0, 0, 0, 0, 72,132, 23, 4, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,199,197, 4, 0, 0, 0, 0, 8,199,197, 4,
- 0, 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 88,239,223, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,117,167, 2, 0, 0, 0, 0,200,119,167, 2, 0, 0, 0, 0,232,117,167, 2,
- 0, 0, 0, 0,216,118,167, 2, 0, 0, 0, 0,200,119,167, 2, 0, 0, 0, 0, 88,111,224, 2, 0, 0, 0, 0, 88,239,223, 2,
- 0, 0, 0, 0, 88,111,224, 2, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0, 72,132, 23, 4, 0, 0, 0, 0,147, 1, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,121,167, 2, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,152,133, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 28, 0,118, 7, 4, 4, 0, 0, 0, 0,
- 1, 0, 5, 0,238, 3, 5, 0, 1, 0, 0, 0, 8,221,211, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,152,109,225, 2, 0, 0, 0, 0,200, 99,254, 3, 0, 0, 0, 0,200, 99,254, 3,
- 0, 0, 0, 0, 72,230,185, 2, 0, 0, 0, 0,152, 79,254, 3, 0, 0, 0, 0,120,229,185, 2, 0, 0, 0, 0,120,229,185, 2,
- 0, 0, 0, 0, 24, 2, 9, 4, 0, 0, 0, 0, 40, 29,212, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,152,133, 23, 4, 0, 0, 0, 0,210, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82,115, 99,
-114,101,101,110, 0, 45, 83, 99,114,105,112,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,212,144, 2, 0, 0, 0, 0,248,195,224, 2,
- 0, 0, 0, 0, 40,174,218, 2, 0, 0, 0, 0,152,140, 23, 4, 0, 0, 0, 0, 40,215,248, 3, 0, 0, 0, 0,120, 29, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 41, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188, 22,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,212,144, 2, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,120, 23,190, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0,120, 23,190, 2, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72,228, 8, 4, 0, 0, 0, 0,248,212,144, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,228, 8, 4,
- 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 56,224,211, 2, 0, 0, 0, 0,120, 23,190, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,118, 7, 4, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,224,211, 2, 0, 0, 0, 0,211, 0, 0, 0,
- 1, 0, 0, 0,216,225,211, 2, 0, 0, 0, 0, 72,228, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,225,211, 2, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,120,227,211, 2,
- 0, 0, 0, 0, 56,224,211, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 3, 1, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0,120,227,211, 2, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,168, 1, 9, 4, 0, 0, 0, 0,216,225,211, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7,236, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168, 1, 9, 4,
- 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,232, 4, 9, 4, 0, 0, 0, 0,120,227,211, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 12, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232, 4, 9, 4, 0, 0, 0, 0,211, 0, 0, 0,
- 1, 0, 0, 0, 40,244,211, 2, 0, 0, 0, 0,168, 1, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 6,236, 3,
- 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40,244,211, 2, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 72,112,225, 2,
- 0, 0, 0, 0,232, 4, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0, 72,112,225, 2, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 40, 18,224, 2, 0, 0, 0, 0, 40,244,211, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 3,236, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40, 18,224, 2,
- 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,152, 18,186, 2, 0, 0, 0, 0, 72,112,225, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,192, 3,200, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 18,186, 2, 0, 0, 0, 0,211, 0, 0, 0,
- 1, 0, 0, 0,184,201,188, 2, 0, 0, 0, 0, 40, 18,224, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 6,200, 2,
- 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,201,188, 2, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,248,195,224, 2,
- 0, 0, 0, 0,152, 18,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 3,252, 2, 0, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0,248,195,224, 2, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,201,188, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 6,252, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,174,218, 2,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,255,223, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 23,190, 2,
- 0, 0, 0, 0, 72,228, 8, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,255,223, 2,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,120,211,185, 2, 0, 0, 0, 0, 40,174,218, 2, 0, 0, 0, 0,120, 23,190, 2,
- 0, 0, 0, 0,216,225,211, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,211,185, 2,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136, 61,249, 3, 0, 0, 0, 0,184,255,223, 2, 0, 0, 0, 0,120,227,211, 2,
- 0, 0, 0, 0, 72,228, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 61,249, 3,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184, 94,254, 3, 0, 0, 0, 0,120,211,185, 2, 0, 0, 0, 0,216,225,211, 2,
- 0, 0, 0, 0,120,227,211, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 94,254, 3,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,232,134, 23, 4, 0, 0, 0, 0,136, 61,249, 3, 0, 0, 0, 0, 56,224,211, 2,
- 0, 0, 0, 0,168, 1, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,134, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 88,135, 23, 4, 0, 0, 0, 0,184, 94,254, 3, 0, 0, 0, 0,120,227,211, 2,
- 0, 0, 0, 0,232, 4, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,135, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,200,135, 23, 4, 0, 0, 0, 0,232,134, 23, 4, 0, 0, 0, 0,168, 1, 9, 4,
- 0, 0, 0, 0,232, 4, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,135, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,136, 23, 4, 0, 0, 0, 0, 88,135, 23, 4, 0, 0, 0, 0, 56,224,211, 2,
- 0, 0, 0, 0,120,227,211, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,136, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,168,136, 23, 4, 0, 0, 0, 0,200,135, 23, 4, 0, 0, 0, 0,248,212,144, 2,
- 0, 0, 0, 0,216,225,211, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,136, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 24,137, 23, 4, 0, 0, 0, 0, 56,136, 23, 4, 0, 0, 0, 0,248,212,144, 2,
- 0, 0, 0, 0, 40,244,211, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,137, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,136,137, 23, 4, 0, 0, 0, 0,168,136, 23, 4, 0, 0, 0, 0, 40,244,211, 2,
- 0, 0, 0, 0,168, 1, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,137, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,248,137, 23, 4, 0, 0, 0, 0, 24,137, 23, 4, 0, 0, 0, 0,216,225,211, 2,
- 0, 0, 0, 0, 72,112,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,137, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,104,138, 23, 4, 0, 0, 0, 0,136,137, 23, 4, 0, 0, 0, 0, 72,112,225, 2,
- 0, 0, 0, 0,232, 4, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,138, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216,138, 23, 4, 0, 0, 0, 0,248,137, 23, 4, 0, 0, 0, 0, 40,244,211, 2,
- 0, 0, 0, 0, 72,112,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,138, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 72,139, 23, 4, 0, 0, 0, 0,104,138, 23, 4, 0, 0, 0, 0, 40,244,211, 2,
- 0, 0, 0, 0, 40, 18,224, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,139, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,184,139, 23, 4, 0, 0, 0, 0,216,138, 23, 4, 0, 0, 0, 0,152, 18,186, 2,
- 0, 0, 0, 0,168, 1, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,139, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 40,140, 23, 4, 0, 0, 0, 0, 72,139, 23, 4, 0, 0, 0, 0,152, 18,186, 2,
- 0, 0, 0, 0, 40, 18,224, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,140, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,152,140, 23, 4, 0, 0, 0, 0,184,139, 23, 4, 0, 0, 0, 0, 40, 18,224, 2,
- 0, 0, 0, 0, 72,112,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,140, 23, 4,
- 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,140, 23, 4, 0, 0, 0, 0,152, 18,186, 2,
- 0, 0, 0, 0,232, 4, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 40,215,248, 3,
- 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88,147, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,225,211, 2,
- 0, 0, 0, 0,120, 23,190, 2, 0, 0, 0, 0, 72,228, 8, 4, 0, 0, 0, 0,120,227,211, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0,237, 3, 0, 0, 4, 4, 0, 0, 7, 7,119, 7, 24, 0, 1, 0, 0, 0, 0, 0,
- 7, 0, 8, 0, 56, 90,147, 2, 0, 0, 0, 0,136,146,217, 2, 0, 0, 0, 0,136,146,217, 2, 0, 0, 0, 0, 24, 83, 23, 4,
- 0, 0, 0, 0, 8,141, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,156, 10, 4,
- 0, 0, 0, 0, 8, 59,187, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 83, 23, 4, 0, 0, 0, 0,215, 0, 0, 0,
- 1, 0, 0, 0, 8,141, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,174, 68, 0, 0, 0, 0,
- 0, 0,184, 65, 0, 0, 0, 0, 0,224,238, 68, 0, 0, 0, 0, 0, 0,184, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0,
- 22, 0, 0, 0, 0,192,238, 68, 0, 0,176, 65, 0,192,238, 68, 0, 0,176, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,119, 7, 23, 0,119, 7, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0,237, 3, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,119, 7, 23, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 72, 92,147, 2, 0, 0, 0, 0,200, 7, 16, 4, 0, 0, 0, 0,200, 7, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,103,187, 2, 0, 0, 0, 0, 72,213,185, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,141, 23, 4, 0, 0, 0, 0,215, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 83, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,107, 69, 0,128,206,195,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,192,237, 68, 0, 0, 0, 0, 0,192,121, 68,110, 7, 0, 0,127, 7, 0, 0, 0, 0, 0, 0,
-230, 3, 0, 0, 0, 0, 0, 0,103, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,109, 7, 0, 0, 0, 0, 0, 0,
-230, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0,
- 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,127, 7,231, 3,110, 7,231, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 88, 91,147, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,142, 23, 4,
- 0, 0, 0, 0,184,145, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,120,142, 23, 4, 0, 0, 0, 0,213, 0, 0, 0,
- 1, 0, 0, 0, 24,144, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95,116, 97, 98,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95,116, 97, 98,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,220,255,208, 14, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 88, 1, 0, 0, 24,144, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184,145, 23, 4, 0, 0, 0, 0,120,142, 23, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95,118,105,101,119,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95,118,105,101,119,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122,254,208, 14, 98, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,184,145, 23, 4, 0, 0, 0, 0,213, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,144, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95, 98,111,116,116,111,109, 98, 97,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 73, 78, 70, 79, 95, 80, 84, 95, 98,111,116,116,111,109, 98, 97,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 86,254,208, 14, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-160, 0, 0, 0, 88,147, 23, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136,225, 23, 4, 0, 0, 0, 0, 40,215,248, 3,
- 0, 0, 0, 0,168, 1, 9, 4, 0, 0, 0, 0,232, 4, 9, 4, 0, 0, 0, 0,120,227,211, 2, 0, 0, 0, 0, 56,224,211, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 6, 0, 0,118, 7, 0, 0, 0, 0, 0, 0,235, 3, 0, 0, 4, 4,106, 1,
-236, 3, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0,216, 85,147, 2, 0, 0, 0, 0, 72,224, 23, 4, 0, 0, 0, 0, 72,224, 23, 4,
- 0, 0, 0, 0, 72,148, 23, 4, 0, 0, 0, 0,184,149, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 8,138,187, 2, 0, 0, 0, 0, 88,149,217, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72,148, 23, 4,
- 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,184,149, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,111, 67, 0, 0, 0, 0, 0, 0,184, 65, 0, 0, 0, 0, 0, 0,181, 67, 0, 0, 0, 0, 0, 0,184, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-105, 1, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0,128,180, 67, 0, 0,176, 65, 0,128,180, 67, 0, 0,176, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,106, 1, 23, 0,106, 1, 23, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 6, 0, 0,118, 7, 0, 0,213, 3, 0, 0,235, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 1, 23, 0, 3, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 89,147, 2, 0, 0, 0, 0,104, 90,198, 4, 0, 0, 0, 0,104, 90,198, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,224,248, 3, 0, 0, 0, 0,136,216,185, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,149, 23, 4,
- 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,148, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,191, 67, 0,224,129,196, 0, 0, 0, 0, 0, 0, 0, 0,239,221,182, 67,154,254,129,196, 0, 0, 0, 0, 89, 1, 0, 0,
-106, 1, 0, 0, 0, 0, 0, 0,212, 3, 0, 0, 0, 0, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
- 88, 1, 0, 0, 0, 0, 0, 0,212, 3, 0, 0, 0, 0,128, 67, 0, 0, 40, 66, 0, 0, 0, 69, 0, 0,225, 67, 0, 0, 0, 63,
- 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,106, 1,213, 3, 89, 1,213, 3, 0, 0, 24, 14,198, 4,
- 0, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 13, 6, 0, 0,118, 7, 0, 0, 0, 0, 0, 0,212, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,106, 1,213, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 86,147, 2, 0, 0, 0, 0,120,147,197, 4, 0, 0, 0, 0,168, 95,221, 2,
- 0, 0, 0, 0, 40,151, 23, 4, 0, 0, 0, 0, 72,157,254, 3, 0, 0, 0, 0, 88, 9,220, 2, 0, 0, 0, 0, 72,252,187, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,151, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,152, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 87,147, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,223,255,109, 1, 33, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,152, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,154, 23, 4,
- 0, 0, 0, 0, 40,151, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,255,
-113, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,154, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,156, 23, 4, 0, 0, 0, 0,200,152, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,112,114,101,118,105,101,119, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,112,114,101,118,105,101,119, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,255,113, 1,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,156, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,157, 23, 4,
- 0, 0, 0, 0,104,154, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95,108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95,108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,109,112,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,254,
-113, 1,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,157, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,159, 23, 4, 0, 0, 0, 0, 8,156, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,115,104, 97,100,111,119, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,115,104, 97,100,111,119, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,111,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,254,113, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,159, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,160, 23, 4,
- 0, 0, 0, 0,168,157, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95,115,112,111,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95,115,112,111,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,112,111,116,
- 32, 83,104, 97,112,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,155,253,
-113, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,160, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,162, 23, 4, 0, 0, 0, 0, 72,159, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,113, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,162, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,164, 23, 4,
- 0, 0, 0, 0,232,160, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
- 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
- 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,
-110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,254,
-113, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,164, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,165, 23, 4, 0, 0, 0, 0,136,162, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,
-110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,
-110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,254,113, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,165, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,167, 23, 4,
- 0, 0, 0, 0, 40,164, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
- 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
- 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,
-114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,246,251,
-113, 1, 44, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,167, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,169, 23, 4, 0, 0, 0, 0,200,165, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,253,113, 1,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,169, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,170, 23, 4,
- 0, 0, 0, 0,104,167, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
- 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
- 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116,
- 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,253,
-113, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,170, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,172, 23, 4, 0, 0, 0, 0, 8,169, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,
-101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,
-101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,253,113, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,172, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,173, 23, 4,
- 0, 0, 0, 0,168,170, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
- 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
- 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,
-117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,252,
-113, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,173, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,175, 23, 4, 0, 0, 0, 0, 72,172, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,170,252,113, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,175, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,177, 23, 4,
- 0, 0, 0, 0,232,173, 23, 4, 0, 0, 0, 0, 8, 76, 93, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,190,255,
-109, 1, 33, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,177, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,178, 23, 4, 0, 0, 0, 0,136,175, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,255,240, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,178, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,180, 23, 4,
- 0, 0, 0, 0, 40,177, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95,109, 97,116,101,114,105, 97,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95,109, 97,116,101,114,105, 97,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 97,116,101,
-114,105, 97,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172,254,
-240, 0,126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,180, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,182, 23, 4, 0, 0, 0, 0,200,178, 23, 4, 0, 0, 0, 0,168, 84, 93, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,118,101,114,116,101,120, 95,103,114,111,117,112,
-115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,118,101,114,116,101,120, 95,103,114,111,117,112,
-115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,101,114,116,101,120, 32, 71,114,111,117,112,115, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,255,109, 1, 67, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
- 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,182, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,183, 23, 4,
- 0, 0, 0, 0,104,180, 23, 4, 0, 0, 0, 0,136, 87, 93, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95,115,104, 97,112,101, 95,107,101,121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95,115,104, 97,112,101, 95,107,101,121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,112,
-101, 32, 75,101,121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,254,
-109, 1, 67, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,183, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,185, 23, 4, 0, 0, 0, 0, 8,182, 23, 4, 0, 0, 0, 0,104, 90, 93, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,117,118, 95,116,101,120,116,117,114,101, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,117,118, 95,116,101,120,116,117,114,101, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 32, 77, 97,112,115, 0,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,254,109, 1, 85, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
- 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,185, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,186, 23, 4,
- 0, 0, 0, 0,168,183, 23, 4, 0, 0, 0, 0, 72, 93, 93, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95,118,101,114,116,101,120, 95, 99,111,108,111,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95,118,101,114,116,101,120, 95, 99,111,108,111,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,101,114,116,
-101,120, 32, 67,111,108,111,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,253,
-109, 1, 85, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,186, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,188, 23, 4, 0, 0, 0, 0, 72,185, 23, 4, 0, 0, 0, 0, 72,205, 93, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,
-109, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,
-109, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,255,109, 1,111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,188, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,190, 23, 4,
- 0, 0, 0, 0,232,186, 23, 4, 0, 0, 0, 0,200,213, 93, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,112,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,112,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,101,118,
-105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,254,
-109, 1,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,190, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,191, 23, 4, 0, 0, 0, 0,136,188, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,109, 97,116,101,114,105, 97,108,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,109, 97,116,101,114,105, 97,108,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,254,116, 1, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,191, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,193, 23, 4,
- 0, 0, 0, 0, 40,190, 23, 4, 0, 0, 0, 0,200,167, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,100,105,102,102,117,115,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,100,105,102,102,117,115,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,102,102,
-117,115,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,151,254,
-109, 1, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,193, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,195, 23, 4, 0, 0, 0, 0,200,191, 23, 4, 0, 0, 0, 0,152,225, 93, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,112,101, 99,117,108, 97,114,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,112,101, 99,117,108, 97,114,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,112,101, 99,117,108, 97,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,254,109, 1, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,195, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,196, 23, 4,
- 0, 0, 0, 0,104,193, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,114, 97,121,109,105,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,114, 97,121,109,105,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 97,121, 32,
- 77,105,114,114,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,252,
-116, 1, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,196, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,198, 23, 4, 0, 0, 0, 0, 8,195, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,114, 97,121,116,114, 97,110,115,
-112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,114, 97,121,116,114, 97,110,115,
-112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 97,121, 32, 84,114, 97,110,115,112, 97,114,101,110, 99,121, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181,252,116, 1, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,198, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,199, 23, 4,
- 0, 0, 0, 0,168,196, 23, 4, 0, 0, 0, 0,200,241, 93, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,115,115,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,115,115,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,117, 98,115,
-117,114,102, 97, 99,101, 32, 83, 99, 97,116,116,101,114,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,253,
-109, 1, 0, 0, 17, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,199, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,201, 23, 4, 0, 0, 0, 0, 72,198, 23, 4, 0, 0, 0, 0,152,162, 44, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,116,114, 97,110,100, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,116,114, 97,110,100, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116,114, 97,110,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,253,109, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,201, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,203, 23, 4,
- 0, 0, 0, 0,232,199, 23, 4, 0, 0, 0, 0,232,176, 44, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105,
-111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,252,
-109, 1,181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,203, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,204, 23, 4, 0, 0, 0, 0,136,201, 23, 4, 0, 0, 0, 0,232, 78, 93, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,110,111,114,109, 97,108,115, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,110,111,114,109, 97,108,115, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,111,114,109, 97,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117,255,109, 1, 52, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,204, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,206, 23, 4,
- 0, 0, 0, 0, 40,203, 23, 4, 0, 0, 0, 0,200, 81, 93, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95,116,101,120,116,117,114,101, 95,115,112, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 95, 80, 84, 95,116,101,120,116,117,114,101, 95,115,112, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,101,120,116,
-117,114,101, 32, 83,112, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,255,
-109, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,206, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,208, 23, 4, 0, 0, 0, 0,200,204, 23, 4, 0, 0, 0, 0, 40, 96, 93, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115,
- 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115,
- 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199,253,109, 1, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 0, 0,
- 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,208, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,209, 23, 4,
- 0, 0, 0, 0,104,206, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
- 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68,
- 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,
-108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,
-113, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,209, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,211, 23, 4, 0, 0, 0, 0, 8,208, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,252,113, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,211, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,212, 23, 4,
- 0, 0, 0, 0,168,209, 23, 4, 0, 0, 0, 0, 24,102, 94, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 72, 89, 83,
- 73, 67, 83, 95, 80, 84, 95, 97,100,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 72, 89, 83,
- 73, 67, 83, 95, 80, 84, 95, 97,100,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,
-109, 1,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,212, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,214, 23, 4, 0, 0, 0, 0, 72,211, 23, 4, 0, 0, 0, 0,104,105, 94, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 65, 82, 84, 73, 67, 76, 69, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,
-112, 97,114,116,105, 99,108,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 65, 82, 84, 73, 67, 76, 69, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,
-112, 97,114,116,105, 99,108,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,255,109, 1, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,136,214, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,216, 23, 4,
- 0, 0, 0, 0,232,212, 23, 4, 0, 0, 0, 0,120,228, 93, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,
-105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,253,
-109, 1, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,216, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,217, 23, 4, 0, 0, 0, 0,136,214, 23, 4, 0, 0, 0, 0, 88,231, 93, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,116,114, 97,110,115,112, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,116,114, 97,110,115,112, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,114, 97,110,115,112, 97,114,101,110, 99,121, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,125,253,109, 1, 74, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,200,217, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,219, 23, 4,
- 0, 0, 0, 0, 40,216, 23, 4, 0, 0, 0, 0, 24, 96, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,109,105,114,114,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95,109,105,114,114,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,105,114,114,
-111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,253,
-109, 1, 0, 0, 17, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,219, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,221, 23, 4, 0, 0, 0, 0,200,217, 23, 4, 0, 0, 0, 0,216, 19, 94, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,104, 97,100,111,119, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69, 82, 73, 65, 76, 95, 80, 84, 95,115,104, 97,100,111,119, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,111,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95,252,109, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8,221, 23, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,222, 23, 4,
- 0, 0, 0, 0,104,219, 23, 4, 0, 0, 0, 0,152, 53, 94, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 84, 69,
- 82, 73, 65, 76, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,
-111,109, 32, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,252,
-109, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,222, 23, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,254,223, 2, 0, 0, 0, 0, 8,221, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115,
- 95,108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115,
- 95,108, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131,253,113, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,254,223, 2, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216, 28, 16, 4,
- 0, 0, 0, 0,168,222, 23, 4, 0, 0, 0, 0, 72,121, 95, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84,
- 85, 82, 69, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84,
- 85, 82, 69, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,255,
-109, 1,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 28, 16, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8, 61,197, 4, 0, 0, 0, 0, 24,254,223, 2, 0, 0, 0, 0, 56,130, 95, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,112,114,101,118,105,101,119, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,112,114,101,118,105,101,119, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116,254,109, 1,162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8, 61,197, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8, 77,197, 4,
- 0, 0, 0, 0,216, 28, 16, 4, 0, 0, 0, 0,152,131, 95, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84,
- 85, 82, 69, 95, 80, 84, 95, 99,111,108,111,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84,
- 85, 82, 69, 95, 80, 84, 95, 99,111,108,111,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108,111,
-114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95,254,
-109, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 8, 77,197, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,185,197, 4, 0, 0, 0, 0, 8, 61,197, 4, 0, 0, 0, 0,248,145, 95, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95, 98,108,101,110,100, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95, 98,108,101,110,100, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,108,101,110,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19,254,109, 1, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,185,197, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168, 14,198, 4,
- 0, 0, 0, 0, 8, 77,197, 4, 0, 0, 0, 0,120,204, 95, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84,
- 85, 82, 69, 95, 80, 84, 95,109, 97,112,112,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84,
- 85, 82, 69, 95, 80, 84, 95,109, 97,112,112,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 97,112,112,
-105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,253,
-109, 1,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168, 14,198, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,157,254, 3, 0, 0, 0, 0,216,185,197, 4, 0, 0, 0, 0, 88,207, 95, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105,110,102,108,117,101,110, 99,101,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105,110,102,108,117,101,110, 99,101,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,110,102,108,117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,252,109, 1, 44, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 72,157,254, 3, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,168, 14,198, 4, 0, 0, 0, 0, 56,210, 95, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84,
- 85, 82, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84,
- 85, 82, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,
-111,109, 32, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,251,
-109, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 72,224, 23, 4,
- 0, 0, 0, 0,179, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,193, 0, 0,163, 67, 0, 64,180,196, 0, 0,104, 67, 0, 0, 0,193, 0, 0,163, 67, 0, 64,180,196,
- 30,209,118, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 40, 66, 0, 0, 0, 69,
- 0, 0,225, 67, 0, 0, 0, 63, 72,225,154, 63, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,213, 0,
- 53, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 4, 0, 0, 0, 2, 0, 1, 0,
- 3, 0, 0, 0, 72,116,187, 2, 0, 0, 0, 0,191, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,136,225, 23, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88, 26, 8, 4,
- 0, 0, 0, 0, 88,147, 23, 4, 0, 0, 0, 0, 40,244,211, 2, 0, 0, 0, 0, 40, 18,224, 2, 0, 0, 0, 0,152, 18,186, 2,
- 0, 0, 0, 0,168, 1, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 3, 0, 0, 11, 6, 0, 0, 0, 0, 0, 0,
-199, 2, 0, 0, 6, 6, 75, 2,200, 2, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,184, 67,147, 2, 0, 0, 0, 0, 88,229, 23, 4,
- 0, 0, 0, 0, 88,229, 23, 4, 0, 0, 0, 0,120,226, 23, 4, 0, 0, 0, 0,232,227, 23, 4, 0, 0, 0, 0, 24,253,187, 2,
- 0, 0, 0, 0, 24,253,187, 2, 0, 0, 0, 0,184,185,185, 2, 0, 0, 0, 0, 8,198, 85, 3, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 1, 0, 0,120,226, 23, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232,227, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 3, 68, 0, 0, 0, 0, 0, 0,184, 65, 0, 0, 0, 0, 0,192, 18, 68, 0, 0, 0, 0,
- 0, 0,184, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 74, 2, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0,128, 18, 68, 0, 0,176, 65, 0,128, 18, 68,
- 0, 0,176, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 75, 2, 23, 0, 75, 2,
- 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 3, 0, 0, 11, 6, 0, 0, 0, 0, 0, 0,
- 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 2, 23, 0, 5, 0, 1, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 75,147, 2, 0, 0, 0, 0,232,156, 9, 4,
- 0, 0, 0, 0,232,156, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,222,248, 3,
- 0, 0, 0, 0, 56,227,185, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 1, 0, 0,232,227, 23, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,226, 23, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 67, 0, 0, 0, 0, 0, 0, 22, 67, 12,116,186,191, 6, 58, 29, 64, 43,249,229,191,
-149,252, 50, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 75, 2, 0, 0, 0, 0, 0, 0,177, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193, 3, 0, 0, 11, 6, 0, 0, 23, 0, 0, 0,
-199, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 2,177, 2, 6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 68,147, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,228,185, 2,
- 0, 0, 0, 0, 56,132,218, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 33, 0, 0, 88,229, 23, 4, 0, 0, 0, 0,184, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 1, 0, 0,136, 92, 24, 4,
- 0, 0, 0, 0, 72, 41, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-160, 0, 0, 0, 88, 26, 8, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120, 29, 24, 4, 0, 0, 0, 0,136,225, 23, 4,
- 0, 0, 0, 0,248,212,144, 2, 0, 0, 0, 0,216,225,211, 2, 0, 0, 0, 0, 72,112,225, 2, 0, 0, 0, 0, 40,244,211, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 3, 0, 0, 0, 0, 0, 0,235, 3, 0, 0, 1, 1,192, 3,
-236, 3, 1, 0, 0, 0, 0, 0, 7, 0, 9, 0,168, 44,147, 2, 0, 0, 0, 0,104, 13, 24, 4, 0, 0, 0, 0,104, 13, 24, 4,
- 0, 0, 0, 0,200, 6, 24, 4, 0, 0, 0, 0, 56, 8, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,216, 64,242, 3, 0, 0, 0, 0, 8,206,243, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 6, 24, 4,
- 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 56, 8, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,128, 53, 68, 0, 0, 0, 0, 0, 0,184, 65, 0, 0, 0, 0, 0, 0,112, 68, 0, 0, 0, 0, 0, 0,184, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-191, 3, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0,192,111, 68, 0, 0,176, 65, 0,192,111, 68, 0, 0,176, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 3, 23, 0,192, 3, 23, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 3, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 3, 23, 0, 7, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 55,147, 2, 0, 0, 0, 0, 56, 19,198, 4, 0, 0, 0, 0, 56, 19,198, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,231,185, 2, 0, 0, 0, 0,184,137,218, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 8, 24, 4,
- 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 6, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 3, 0, 0, 23, 0, 0, 0,235, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 3,213, 3, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 45,147, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,105,218, 2, 0, 0, 0, 0,120,104,218, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 9, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,168, 9, 24, 4,
- 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 16,143, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191, 0, 0, 0, 0,
- 0, 0, 0, 0,225,215,163,188, 0, 0, 0, 0,197, 56, 16, 63,181,165,214,190,216, 65, 54, 63, 0, 0, 0, 0,103,115, 83, 63,
-179,248,135, 62,228,147,254,190, 0, 0, 0, 0,155,199,158, 60, 68, 64, 94, 63,111,229,253, 62, 0, 0, 0, 0,239,219,254,191,
-166, 80,144,192,255, 66, 63,194, 0, 0,128, 63,215, 56, 16, 63,100,115, 83, 63, 74,200,158, 60, 0, 0, 0, 0,200,165,214,190,
-182,248,135, 62, 79, 64, 94, 63, 0, 0, 0, 0,215, 65, 54, 63,242,147,254,190,103,229,253, 62, 0, 0, 0, 0,102, 23, 5, 66,
- 7,118,167,193, 47, 82,221, 65, 0, 0,128, 63,115, 49, 33, 63, 62,197,234,190,182, 67, 54,191,216, 65, 54,191, 91, 85,108, 63,
- 4,184,148, 62,128,150,254, 62,228,147,254, 62,216,118,177, 60, 74, 22,115, 63, 9,232,253,190,111,229,253,190,200,108, 14,192,
- 54,216,157,192,122, 48, 63, 66,255, 66, 63, 66, 17,195, 0, 63,120, 92, 61, 63,162,188,134, 60, 16,166, 7,184,158, 12,196,190,
-212, 97,120, 62,195, 72, 75, 63, 0,200, 68, 55,202,124,207,196,221,136,130, 68,161,132,172,196,200,140, 71,194, 47,104,207, 68,
- 82,122,130,196,146,118,172, 68,224,142, 71, 66,197, 56, 16, 63,181,165,214,190,216, 65, 54, 63, 0, 0, 0, 0,103,115, 83, 63,
-179,248,135, 62,228,147,254,190, 0, 0, 0, 0,155,199,158, 60, 68, 64, 94, 63,111,229,253, 62, 0, 0, 0, 0, 62,101,214,192,
-127, 55, 88,192, 97, 89, 45,194, 0, 0,128, 63,115, 49, 33, 63, 62,197,234,190,182, 67, 54,191,216, 65, 54,191, 91, 85,108, 63,
- 4,184,148, 62,128,150,254, 62,228,147,254, 62,216,118,177, 60, 74, 22,115, 63, 9,232,253,190,111,229,253,190,232,159,239,192,
-180,124,108,192,174, 70, 45, 66, 97, 89, 45, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,223,193, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 88,223,193, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,223,193, 64, 0, 0, 0, 0,113, 36,122, 61,
-157, 24,186,192, 28, 38, 71, 64, 0, 0,128, 63,153, 42, 67, 63,246, 62,229,190,251,142,104,190,131, 17,209,190,141, 8, 56, 66,
-223,139, 15, 66, 0, 0, 0, 0, 0, 0, 0, 0, 15, 81,244, 58, 80,127, 4,191,250,204,248,191, 74, 51,155,192, 0, 0, 0, 0,
- 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 46,219, 35, 66, 48,203,139, 66,250, 65, 96, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 96, 1, 0, 0,104, 13, 24, 4, 0, 0, 0, 0,174, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,139, 48, 63,240,151, 31,191,155, 98,151,190, 77, 45, 97,190,141, 8, 56, 66,
-205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0,255, 13, 0, 0, 1, 0, 0, 0, 72,166, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 8, 24,128, 0, 0, 0, 12, 66, 0, 0,128, 63,
- 10,215, 35, 60, 0, 0,250, 67, 80,127, 4,191,250,204,248,191, 74, 51,155,192, 96,199, 41,188,225,230, 30,193,216,129,230, 63,
- 0, 0, 20, 0, 10, 0, 7, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120, 29, 24, 4,
- 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 26, 8, 4, 0, 0, 0, 0, 40, 18,224, 2,
- 0, 0, 0, 0, 72,112,225, 2, 0, 0, 0, 0,232, 4, 9, 4, 0, 0, 0, 0,152, 18,186, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,193, 3, 0, 0, 11, 6, 0, 0,201, 2, 0, 0,235, 3, 0, 0, 3, 3, 75, 2, 35, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,168, 38,147, 2, 0, 0, 0, 0, 72, 33, 24, 4, 0, 0, 0, 0, 72, 33, 24, 4, 0, 0, 0, 0,104, 30, 24, 4,
- 0, 0, 0, 0,216, 31, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 47,243, 3,
- 0, 0, 0, 0, 24,106,218, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 30, 24, 4, 0, 0, 0, 0,215, 0, 0, 0,
- 1, 0, 0, 0,216, 31, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,229, 67, 0, 0, 0, 0,
- 0, 0,184, 65, 0, 0, 0, 0, 0,192, 18, 68, 0, 0, 0, 0, 0, 0,184, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 2, 0, 0, 0, 0, 0, 0,
- 22, 0, 0, 0, 0,128, 18, 68, 0, 0,176, 65, 0,128, 18, 68, 0, 0,176, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 75, 2, 23, 0, 75, 2, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,193, 3, 0, 0, 11, 6, 0, 0,201, 2, 0, 0,223, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 75, 2, 23, 0, 9, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,184, 40,147, 2, 0, 0, 0, 0, 8,109,145, 2, 0, 0, 0, 0, 8,109,145, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,214,185, 2, 0, 0, 0, 0, 40,135,217, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 31, 24, 4, 0, 0, 0, 0,215, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 30, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,207, 67, 0, 0, 61,195,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 14, 68, 0, 0,122,195, 0, 0, 0, 0, 58, 2, 0, 0, 75, 2, 0, 0, 18, 0, 0, 0,
- 11, 1, 0, 0, 0, 0, 0, 0, 57, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 57, 2, 0, 0, 18, 0, 0, 0,
- 11, 1, 0, 0, 0, 0,190,195, 0, 0,190,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0,
- 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 75, 2, 12, 1, 58, 2,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,193, 3, 0, 0, 11, 6, 0, 0,224, 2, 0, 0,235, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 75, 2, 12, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,200, 39,147, 2, 0, 0, 0, 0,248,144,197, 4, 0, 0, 0, 0,248,144,197, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,249,187, 2, 0, 0, 0, 0, 8,199,185, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0, 72, 33, 24, 4, 0, 0, 0, 0,183, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,182, 67, 0, 0,209,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 67, 0, 0,190,195, 0, 0, 0,181, 0, 0, 0, 0,
- 16, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
-124, 1, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 0, 0,190,195, 0, 0,190,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 1,124, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,156,217, 2, 0, 0, 0, 0,136,156,217, 2, 0, 0, 0, 0,184, 71,218, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 1, 0, 0, 0, 68, 65, 84, 65,
- 16, 0, 0, 0,184, 71,218, 2, 0, 0, 0, 0,237, 0, 0, 0, 1, 0, 0, 0,218, 0, 0, 0,101, 0, 0, 0,168, 82, 2, 4,
- 0, 0, 0, 0, 68, 65, 84, 65, 80, 6, 0, 0,168, 82, 2, 4, 0, 0, 0, 0,236, 0, 0, 0,101, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 72, 41, 24, 4, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0, 72, 41, 24, 4, 0, 0, 0, 0, 20, 0, 0, 0,
- 1, 0, 0, 0, 72, 41, 24, 4, 0, 0, 0, 0, 23, 0, 0, 0, 1, 0, 0, 0, 88,162, 24, 4, 0, 0, 0, 0, 21, 0, 1, 0,
- 1, 0, 0, 0, 72, 41, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,152,153, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,104,142, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 88,120, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,200,233, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,168,227, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,168, 20,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104,142, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 88,120, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,136,221, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,104,215, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104,142, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 88,120, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 72,209, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,104,142, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 40,203, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 88,120, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 8,197, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,104,142, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,232,190, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 88,120, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 72,166, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,200,114, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 56,108, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,232,116, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,200,184, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,200,177, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,136,227, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 56, 66, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 8,196, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,120,164, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120,206, 26, 4, 0, 0, 0, 0, 9, 0, 0, 0,
- 1, 0, 0, 0, 56, 66, 25, 4, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 56, 66, 25, 4, 0, 0, 0, 0, 29, 0, 0, 0,
- 1, 0, 0, 0, 56, 66, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,200, 18, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 72,149, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 88,120, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 13, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 56,140, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 72, 7, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,232,135, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,216, 59, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 8,157,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104,142, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 88, 48, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,168,121, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 24, 54, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 56,142,198, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,232,198, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,248,113, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,200,120,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,216,189, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,120,206, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,152, 42, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,200, 43,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120,164, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,136, 24, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,232,105,198, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,120,206, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8,246, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,104,126, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,216, 36, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,120,164, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,136, 1, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,136,144, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 72, 30, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,136, 37, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120,206, 26, 4, 0, 0, 0, 0, 9, 0, 0, 0,
- 1, 0, 0, 0, 72, 30, 25, 4, 0, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 72, 30, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,200,251, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 40,131, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 8,172, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,216,115, 24, 4, 0, 0, 0, 0, 30, 0,255,255,
- 0, 0, 1, 0,224,111,238, 1, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 1, 0,224,111,238, 1, 0, 0, 0, 0, 31, 0, 1, 0,
- 1, 0, 1, 0,224,111,238, 1, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 1, 0,224,111,238, 1, 0, 0, 0, 0, 31, 0, 3, 0,
- 1, 0, 1, 0,224,111,238, 1, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 1, 0,224,111,238, 1, 0, 0, 0, 0, 31, 0, 5, 0,
- 1, 0, 1, 0,224,111,238, 1, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 1, 0,224,111,238, 1, 0, 0, 0, 0, 31, 0, 7, 0,
- 1, 0, 1, 0,224,111,238, 1, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 1, 0,224,111,238, 1, 0, 0, 0, 0, 31, 0, 9, 0,
- 1, 0, 1, 0,224,111,238, 1, 0, 0, 0, 0, 83, 67, 0, 0,216, 11, 0, 0, 72, 41, 24, 4, 0, 0, 0, 0,171, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 83, 67,112,114,101,118,105,101,119, 0, 0, 99,101,110,101, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 72,166, 24, 4, 0, 0, 0, 0,152,153, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 53, 24, 4,
- 0, 0, 0, 0,168, 65, 24, 4, 0, 0, 0, 0,168, 58, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 81,122, 61,
-230,224,239,192,116, 34, 53,192,113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64,113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64,
-113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 66, 24, 4, 0, 0, 0, 0, 8,208,196, 4, 0, 0, 0, 0, 4, 2, 24, 0,
- 90, 90, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 25, 0,141, 0, 88, 2,
- 88, 2, 4, 0, 4, 0, 24, 0, 4, 0, 0, 0, 90, 0, 1, 0, 16, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 64, 0, 0, 0, 0, 0, 5, 0, 25, 0, 10, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 68, 24, 4,
- 0, 0, 0, 0, 72, 68, 24, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0,200, 66, 0, 0,200, 66, 0, 0,128, 63, 0, 0,128, 63,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 0, 16, 0, 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,
-180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63,102,166,171, 67,
- 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,147,224, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,140, 2, 4,
- 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,
-180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,205,204,204, 61,154,153,153, 62,
-205,204, 76, 62,219, 15, 73, 63,102,102,102, 63, 0, 0, 0, 64,154,153, 25, 63, 0, 0, 64, 65,102,102,166, 63, 0, 0, 0, 65,
- 0, 0,160, 65, 6, 0, 0, 0, 0, 0,192, 64, 0, 0,128, 63, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 32, 0, 0, 0,
- 32, 0, 0, 0,128, 0, 5, 0,218, 0, 0, 0, 60, 0, 5, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,104, 53, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,216, 53, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 14, 4, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,101, 1,179, 1, 40,203, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,216, 53, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 72, 54, 24, 4, 0, 0, 0, 0,104, 53, 24, 4,
- 0, 0, 0, 0, 14, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,113, 1,195, 1, 8,197, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 72, 54, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,184, 54, 24, 4, 0, 0, 0, 0,216, 53, 24, 4,
- 0, 0, 0, 0, 14, 4, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,131, 1,175, 1,232,190, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,184, 54, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 40, 55, 24, 4, 0, 0, 0, 0, 72, 54, 24, 4,
- 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,224, 46,162, 0,200,233, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 40, 55, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,152, 55, 24, 4, 0, 0, 0, 0,184, 54, 24, 4,
- 0, 0, 0, 0, 33, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 25, 1, 84, 2,232,239, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,152, 55, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 8, 56, 24, 4, 0, 0, 0, 0, 40, 55, 24, 4,
- 0, 0, 0, 0, 33, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,105, 1, 77, 2,168,227, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 8, 56, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,120, 56, 24, 4, 0, 0, 0, 0,152, 55, 24, 4,
- 0, 0, 0, 0, 33, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,142, 3,183, 0,136,221, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,120, 56, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,232, 56, 24, 4, 0, 0, 0, 0, 8, 56, 24, 4,
- 0, 0, 0, 0, 33, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,135, 2,121, 1,104,215, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,232, 56, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 88, 57, 24, 4, 0, 0, 0, 0,120, 56, 24, 4,
- 0, 0, 0, 0, 33, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,164, 1, 33, 2, 72,209, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 88, 57, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,200, 57, 24, 4, 0, 0, 0, 0,232, 56, 24, 4,
- 0, 0, 0, 0, 0, 8, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 42, 2, 90, 2, 72,166, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,200, 57, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 56, 58, 24, 4, 0, 0, 0, 0, 88, 57, 24, 4,
- 0, 0, 0, 0, 0, 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,152, 3, 67, 3, 56,108, 26, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 56, 58, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,168, 58, 24, 4, 0, 0, 0, 0,200, 57, 24, 4,
- 0, 0, 0, 0, 33, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,251, 1,225, 1,200,184, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,168, 58, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 24, 59, 24, 4, 0, 0, 0, 0, 56, 58, 24, 4,
- 0, 0, 0, 0, 14, 4, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,141, 1,192, 1,200,177, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 24, 59, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,136, 59, 24, 4, 0, 0, 0, 0,168, 58, 24, 4,
- 0, 0, 0, 0, 0, 4, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 6, 3,138, 2, 56, 66, 25, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,136, 59, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,248, 59, 24, 4, 0, 0, 0, 0, 24, 59, 24, 4,
- 0, 0, 0, 0, 32, 0, 0, 0, 14, 0, 0, 0, 0, 16, 0, 0,224, 1, 10, 2,200, 18, 25, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,248, 59, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,104, 60, 24, 4, 0, 0, 0, 0,136, 59, 24, 4,
- 0, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 20, 0, 0, 70, 1,168, 1, 8, 13, 25, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,104, 60, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,216, 60, 24, 4, 0, 0, 0, 0,248, 59, 24, 4,
- 0, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 0, 20, 0, 0,115, 1,186, 1, 72, 7, 25, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,216, 60, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 72, 61, 24, 4, 0, 0, 0, 0,104, 60, 24, 4,
- 0, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 78, 1,216, 59, 25, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 72, 61, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,184, 61, 24, 4, 0, 0, 0, 0,216, 60, 24, 4,
- 0, 0, 0, 0, 64, 0, 0, 0, 1, 0, 0, 0, 0, 16, 0, 0, 44, 3,140, 3, 88, 48, 25, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,184, 61, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 40, 62, 24, 4, 0, 0, 0, 0, 72, 61, 24, 4,
- 0, 0, 0, 0, 64, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,224, 46,119, 1, 24, 54, 25, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 40, 62, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,152, 62, 24, 4, 0, 0, 0, 0,184, 61, 24, 4,
- 0, 0, 0, 0, 32, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 55, 2, 51, 2,248,113, 26, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,152, 62, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 8, 63, 24, 4, 0, 0, 0, 0, 40, 62, 24, 4,
- 0, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,216, 1,187, 1,152, 42, 25, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 8, 63, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,120, 63, 24, 4, 0, 0, 0, 0,152, 62, 24, 4,
- 0, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,194, 1,205, 1,136, 24, 25, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,120, 63, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,232, 63, 24, 4, 0, 0, 0, 0, 8, 63, 24, 4,
- 0, 0, 0, 0, 30, 4, 0, 0, 5, 0, 0, 0, 0, 20, 0, 0, 92, 2, 18, 1, 8,246, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,232, 63, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 88, 64, 24, 4, 0, 0, 0, 0,120, 63, 24, 4,
- 0, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,208, 1,202, 1,216, 36, 25, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 88, 64, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,200, 64, 24, 4, 0, 0, 0, 0,232, 63, 24, 4,
- 0, 0, 0, 0, 30, 4, 0, 0, 7, 0, 0, 0, 0, 20, 0, 0, 4, 1, 24, 2,136, 1, 25, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,200, 64, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 56, 65, 24, 4, 0, 0, 0, 0, 88, 64, 24, 4,
- 0, 0, 0, 0, 8, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0,180, 1,213, 1, 72, 30, 25, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 56, 65, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0,168, 65, 24, 4, 0, 0, 0, 0,200, 64, 24, 4,
- 0, 0, 0, 0, 30, 4, 0, 0, 8, 0, 0, 0, 0, 20, 0, 0, 23, 1,119, 1,200,251, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,168, 65, 24, 4, 0, 0, 0, 0,143, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 65, 24, 4,
- 0, 0, 0, 0,223, 13, 0, 0, 9, 0, 0, 0, 0, 4, 0, 0, 94, 1,162, 1, 8,172, 24, 4, 0, 0, 0, 0, 68, 65, 84, 65,
-232, 1, 0, 0, 24, 66, 24, 4, 0, 0, 0, 0,167, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 1, 0,205,204, 76, 63,
- 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 1, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 23,183,209, 56,205,204,204, 61,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0,205,204,204, 61,205,204,204, 61,102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65,
- 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 35, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 63, 35, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 0, 68, 65, 84, 65,
-120, 0, 0, 0, 72, 68, 24, 4, 0, 0, 0, 0,149, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 32, 82,101,110,100,101,114, 76, 97,121,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,162, 24, 4, 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0,255,127, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 73, 77, 0, 0, 48, 5, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 24, 0, 0, 0,
- 1, 0, 0, 0,136, 92, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 73, 77, 73,109, 97,103,101, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,110,116,105,
-116,108,101,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 75, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
-184,117, 30, 78, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0,200, 75, 24, 4,
- 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 56, 76, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 56, 76, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 0, 0, 48, 5, 0, 0,136, 92, 24, 4, 0, 0, 0, 0, 24, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 73, 77, 82,101,110,100,101,114, 32, 82,101,115,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 98, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 77,248,131, 79, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0, 8, 98, 24, 4,
- 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0,120, 98, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,120, 98, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,200, 0, 0, 0,200,114, 24, 4, 0, 0, 0, 0, 22, 0, 0, 0,
- 1, 0, 0, 0,216,115, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 9, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,112, 66, 0, 0,240, 65, 0, 0,192, 64, 0, 0, 0, 63,
- 0, 0, 0, 66, 0, 0,144, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,200, 0, 0, 0,216,115, 24, 4, 0, 0, 0, 0, 22, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,114, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 65,116,109,111, 0, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 13, 0,205,204, 76, 62, 0, 0,128, 63,210, 69,112, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63,
- 0, 0, 0, 66, 0, 0,144, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0, 16, 2, 0, 0,232,116, 24, 4, 0, 0, 0, 0, 36, 0, 0, 0,
- 1, 0, 0, 0,168,121, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 76, 65, 76, 97,109,112, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,160, 65, 0, 0, 52, 66,154,153, 25, 62,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 72,119, 24, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 32, 66,
- 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0,
- 1, 0, 0, 0, 0, 2, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58,
- 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 32, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 56,121, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 72,119, 24, 4,
- 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0,
- 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,216,120, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,216,120, 24, 4, 0, 0, 0, 0,117, 1, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 56,121, 24, 4, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,
- 16, 2, 0, 0,168,121, 24, 4, 0, 0, 0, 0, 36, 0, 0, 0, 1, 0, 0, 0,104,126, 24, 4, 0, 0, 0, 0,232,116, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 46, 48, 48, 50, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,160, 65,182,152,143, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 8,124, 24, 4,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 32, 66, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,125, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 8,124, 24, 4, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,
-242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,152,125, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,152,125, 24, 4, 0, 0, 0, 0,117, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,125, 24, 4, 0, 0, 0, 0, 12, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0, 16, 2, 0, 0,104,126, 24, 4, 0, 0, 0, 0, 36, 0, 0, 0,
- 1, 0, 0, 0, 40,131, 24, 4, 0, 0, 0, 0,168,121, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 76, 65, 83,112,111,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,200,128, 24, 4, 0, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65,
- 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0,
- 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,184,130, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,200,128, 24, 4,
- 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0,
- 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, 88,130, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 88,130, 24, 4, 0, 0, 0, 0,117, 1, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,184,130, 24, 4, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,
- 16, 2, 0, 0, 40,131, 24, 4, 0, 0, 0, 0, 36, 0, 0, 0, 1, 0, 0, 0,232,135, 24, 4, 0, 0, 0, 0,104,126, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 83,112,111,116, 46, 48, 48, 49, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,136,133, 24, 4,
- 0, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,135, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,136,133, 24, 4, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,
-242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, 24,135, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 24,135, 24, 4, 0, 0, 0, 0,117, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,135, 24, 4, 0, 0, 0, 0, 12, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0, 16, 2, 0, 0,232,135, 24, 4, 0, 0, 0, 0, 36, 0, 0, 0,
- 1, 0, 0, 0, 56,140, 24, 4, 0, 0, 0, 0, 40,131, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 76, 65, 83,112,111,116, 46, 48, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62,
- 0, 0,128, 63,200,182, 27, 63, 0, 0,128, 63, 72,138, 24, 4, 0, 0, 0, 0, 1, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65,
- 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0,
- 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 72,138, 24, 4,
- 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0,
- 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,216,139, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,216,139, 24, 4, 0, 0, 0, 0,117, 1, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,
- 16, 2, 0, 0, 56,140, 24, 4, 0, 0, 0, 0, 36, 0, 0, 0, 1, 0, 0, 0,136,144, 24, 4, 0, 0, 0, 0,232,135, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 83,112,111,116, 46, 48, 48, 52, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-205,204,204, 62,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63,200,182, 27, 63, 0, 0,128, 63,152,142, 24, 4,
- 0, 0, 0, 0, 1, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,152,142, 24, 4, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,
-242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, 40,144, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 40,144, 24, 4, 0, 0, 0, 0,117, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0, 16, 2, 0, 0,136,144, 24, 4, 0, 0, 0, 0, 36, 0, 0, 0,
- 1, 0, 0, 0, 72,149, 24, 4, 0, 0, 0, 0, 56,140, 24, 4, 0, 0, 0, 0, 56, 33, 24, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 76, 65, 83,112,111,116, 46, 48, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 64, 0, 0, 52, 66, 0, 0, 72, 66,171,156, 8, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,232,146, 24, 4, 0, 0, 0, 0, 2, 0, 0, 0, 78,207, 68, 65, 25, 4,240, 65,
- 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0,
- 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,216,148, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,232,146, 24, 4,
- 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0,
- 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63,120,148, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,120,148, 24, 4, 0, 0, 0, 0,117, 1, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,216,148, 24, 4, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,
- 16, 2, 0, 0, 72,149, 24, 4, 0, 0, 0, 0, 36, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,144, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,192, 63, 0, 0,160, 65, 0, 0, 52, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,168,151, 24, 4,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 32, 66, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,168,151, 24, 4, 0, 0, 0, 0,119, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,
-242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, 56,153, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 56,153, 24, 4, 0, 0, 0, 0,117, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0, 24, 2, 0, 0,152,153, 24, 4, 0, 0, 0, 0,142, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,170,159, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,150, 10, 61,119, 32, 14, 62, 31,130,137, 62, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 1, 0, 32, 0,128, 0, 5, 0, 60, 0, 5, 0,
- 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,
- 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 3, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,155, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,248,155, 24, 4, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 0, 0,
-224, 0, 0, 0,104,156, 24, 4, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 84,101,120,116, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0,152,157, 24, 4,
- 0, 0, 0, 0,152,157, 24, 4, 0, 0, 0, 0,152,157, 24, 4, 0, 0, 0, 0,152,157, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,158, 24, 4, 0, 0, 0, 0,255,255,255,255,
- 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,157, 24, 4,
- 0, 0, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 4,212, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 69, 82, 70, 68, 65, 84, 65, 4, 0, 0, 0,216, 4,212, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 71, 82, 0, 0,152, 0, 0, 0, 88,162, 24, 4, 0, 0, 0, 0,
- 25, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 71, 82, 79,118,101,114,114,105,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 56,163, 24, 4, 0, 0, 0, 0,216,165, 24, 4, 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 56,163, 24, 4, 0, 0, 0, 0, 24, 1, 0, 0, 1, 0, 0, 0,168,163, 24, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,200, 18, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,168,163, 24, 4, 0, 0, 0, 0, 24, 1, 0, 0, 1, 0, 0, 0, 24,164, 24, 4, 0, 0, 0, 0,
- 56,163, 24, 4, 0, 0, 0, 0, 8, 13, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 24,164, 24, 4, 0, 0, 0, 0, 24, 1, 0, 0, 1, 0, 0, 0,136,164, 24, 4, 0, 0, 0, 0,
-168,163, 24, 4, 0, 0, 0, 0, 72, 7, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,136,164, 24, 4, 0, 0, 0, 0, 24, 1, 0, 0, 1, 0, 0, 0,248,164, 24, 4, 0, 0, 0, 0,
- 24,164, 24, 4, 0, 0, 0, 0, 88, 48, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,248,164, 24, 4, 0, 0, 0, 0, 24, 1, 0, 0, 1, 0, 0, 0,104,165, 24, 4, 0, 0, 0, 0,
-136,164, 24, 4, 0, 0, 0, 0, 8,246, 24, 4, 0, 0, 0, 0, 40,181,151, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,104,165, 24, 4, 0, 0, 0, 0, 24, 1, 0, 0, 1, 0, 0, 0,216,165, 24, 4, 0, 0, 0, 0,
-248,164, 24, 4, 0, 0, 0, 0,136, 1, 25, 4, 0, 0, 0, 0,168,218,225, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,216,165, 24, 4, 0, 0, 0, 0, 24, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,165, 24, 4, 0, 0, 0, 0,200,251, 24, 4, 0, 0, 0, 0, 40, 6,154, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 79, 66, 0, 0,112, 5, 0, 0, 72,166, 24, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 8,172, 24, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,114, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,199, 41,188,225,230, 30,193,
-216,129,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-218, 15,201, 63, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 33,162, 51, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191,
-105, 33,162, 51, 0, 0, 0, 0, 78,199, 41,188,225,230, 30,193,216,129,230, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 64, 90,136, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 64, 90,136,176,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 64, 90,136,176,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0, 8,172, 24, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0,
-200,177, 24, 4, 0, 0, 0, 0, 72,166, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 79, 66, 67, 97,109,101,114, 97, 65,116,109,111, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,216,115, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0,
- 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0,
- 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 78,199, 41,188,225,230, 30,193,216,129,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,173, 47,244, 63,162,155,113, 37, 40, 80,170, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 40, 80,170, 37,162,155,113,165, 0, 0, 0, 0, 39, 80,170, 37,157, 64,169,190,163,155,113, 63, 0, 0, 0, 0,
-165,155,113, 37,163,155,113,191,157, 64,169,190, 0, 0, 0, 0, 78,199, 41,188,225,230, 30,193,216,129,230, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63,187, 35, 58,154,139, 2,174, 25, 0, 0, 0, 0,151, 29,171, 37, 1, 0,128, 63, 33,110, 77, 51, 0, 0, 0, 0,
-135,255,255, 45,158, 64,169, 50, 0, 0,128, 63, 0, 0, 0, 0, 30, 0,128, 48, 5, 80, 56, 53,157,216,128, 52, 0, 0,128, 63,
- 0, 0,128, 63, 38, 80,170, 37,163,155,113, 37, 0, 0, 0, 0, 0, 0, 0, 0,158, 64,169,190,162,155,113,191, 0, 0, 0, 0,
- 0, 0, 0,174,164,155,113, 63,157, 64,169,190, 0, 0, 0, 0, 77,199, 41, 60,158,113,159,192,150,113, 12,193, 0, 0,128, 63,
- 0, 0,128, 63, 40, 80,170, 37,166,155,113, 37, 0, 0, 0, 0,162,155,113,165,164,155,113, 63,158, 64,169,190, 0, 0, 0, 0,
- 40, 80,170,165,159, 64,169, 62,162,155,113, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
-223, 13, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,187,225, 16, 63, 0, 0,128, 63,
-205,204,204, 62,210, 32, 80, 63, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 2, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,200,177, 24, 4, 0, 0, 0, 0,
-129, 0, 0, 0, 1, 0, 0, 0,200,184, 24, 4, 0, 0, 0, 0, 8,172, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,145,212, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,227, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0,
- 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,183, 24, 4, 0, 0, 0, 0,120,233,186, 2, 0, 0, 0, 0,
- 2, 0, 0, 0, 1, 0, 0, 0,113, 36,122, 61,157, 24,186,192, 28, 38, 71, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,113, 36,122, 61,157, 24,186,192,
- 28, 38, 71, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,113, 36,122,189,157, 24,186, 64,
- 28, 38, 71,192, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,255,255,127,191, 0, 0,192, 51, 0, 0, 0, 0, 34, 75,146,189, 36,181,131,192,
- 95,202,167,191, 0, 0,128, 63, 14, 4, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,
-169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,183, 24, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 56,136,224, 2, 0, 0, 0, 0, 40,125,218, 2, 0, 0, 0, 0, 25, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,
-136,183, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 88,120, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 4, 0, 0, 0,120,233,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,
-152, 0, 0, 0,232,183, 24, 4, 0, 0, 0, 0,132, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,200,184, 24, 4, 0, 0, 0, 0,129, 0, 0, 0,
- 1, 0, 0, 0,232,190, 24, 4, 0, 0, 0, 0,200,177, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 20,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,190, 24, 4, 0, 0, 0, 0, 24, 36,187, 2, 0, 0, 0, 0, 2, 0, 0, 0,
- 1, 0, 0, 0, 0,131,102, 60, 14,112,164, 64, 24,211,229, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65,177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0, 0,131,102, 60, 14,112,164, 64, 24,211,229, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63,252,118,143,165, 0, 0, 0, 0, 0, 0, 0, 0,176,193,168,165, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,176,193, 40,155, 0, 0, 0, 53, 0, 0, 0, 0,
- 0, 0,128, 63,231,126,201, 61,218,145,171, 48, 0, 0, 0, 0, 0, 0, 0, 0,218,145,171,176,231,126,201, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,126,201, 61, 0, 0, 0, 0,232,110,181,186,127,109, 1,191,172,228, 52,190,
- 0, 0,128, 63,231,126,201, 61,219,145,171, 48, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0,218,164, 51, 57,255, 49,232,126,201, 61,
- 0, 0, 0, 0, 0, 0,172, 48,231,126,201,189, 0,192,251, 49, 0, 0, 0, 0, 18,136, 29,187,203,200,189,191,180,139, 9, 58,
- 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60,
- 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,136,190, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104,142, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 4, 0, 0, 0, 24, 36,187, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,
-232,190, 24, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 8,197, 24, 4, 0, 0, 0, 0,200,184, 24, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 48, 52, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,106,187, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,227, 26, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,196, 24, 4, 0, 0, 0, 0,
- 24,193,224, 2, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,179,243,222, 63,139,224,239,192, 28, 38, 71, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0,128,
-218, 15,201,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 33,162, 51, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63,105, 33,162, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-179,243,222, 63,139,224,239,192, 28, 38, 71, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128,191, 0, 0,160, 51, 0, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-139,224,239,192,174,243,222,191, 28, 38, 71,192, 0, 0,128, 63, 0, 0, 0, 0, 1, 0,128, 63, 0, 0,128, 51, 0, 0, 0, 0,
-104, 33,162,179, 0, 0,128, 39, 0, 0,128, 63, 0, 0, 0, 0,255,255,127, 63, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0,
-109,218, 27, 64, 67, 71,224,191, 96,202,167,191, 0, 0,128, 63, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0,
- 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,216, 36,249, 3, 0, 0, 0, 0,168,247,223, 2, 0, 0, 0, 0, 25, 0, 0, 38, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 16, 0, 0, 0,168,196, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 24,193,224, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0, 8,197, 24, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 40,203, 24, 4,
- 0, 0, 0, 0,232,190, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,
-101, 99,107,101,114,115, 46, 48, 48, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,120, 30, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,136,227, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0,
- 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,200,202, 24, 4, 0, 0, 0, 0,136,149,225, 2, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,149, 78,207,191,
- 65,225,239,192, 28, 38, 71, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0,128,228,203,150,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46,222, 76, 50,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191, 46,222, 76, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,149, 78,207,191, 65,225,239,192, 28, 38, 71, 64, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0,128,
- 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,128, 63, 0, 0, 0, 0, 0, 0,128,179, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 66,225,239, 64,149, 78,207,191, 29, 38, 71,192, 0, 0,128, 63, 0, 0, 0, 0,
-255,255,127,191, 0, 0, 0, 0, 0, 0, 0, 0,104, 33,162, 51, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,255,255,127,191,
- 0, 0, 0, 0, 0, 0,128, 51, 0, 0, 0, 0, 2,217, 27,192, 5,251,205,191, 97,202,167,191, 0, 0,128, 63, 14, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,
-236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,103,225, 2, 0, 0, 0, 0,152, 52,187, 2,
- 0, 0, 0, 0, 25, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,200,202, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 88,120, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,136,149,225, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0, 40,203, 24, 4, 0, 0, 0, 0,
-129, 0, 0, 0, 1, 0, 0, 0, 72,209, 24, 4, 0, 0, 0, 0, 8,197, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 31,187, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,227, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0,
- 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,208, 24, 4, 0, 0, 0, 0,120, 5,186, 2, 0, 0, 0, 0,
- 2, 0, 0, 0, 1, 0, 0, 0,142,127,122, 61,152,212, 18,193, 28, 38, 71, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0,128,218, 15, 73,192, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,191,105, 33, 34,180, 0, 0, 0, 0, 0, 0, 0, 0,105, 33, 34, 52, 0, 0,128,191,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,142,127,122, 61,152,212, 18,193,
- 28, 38, 71, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128,191,105, 33, 34, 52, 0, 0,128, 39, 0, 0, 0, 0, 0, 0, 34,180, 0, 0,128,191,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 27,126,122, 61,152,212, 18,193,
- 28, 38, 71,192, 0, 0,128, 63, 0, 0,128,191,106, 33, 34, 52, 95,202,167, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,179,
- 0, 0,128, 63, 0, 0, 0, 0,106, 33, 34, 52, 1, 0,128, 63, 0, 0,160, 51, 0, 0, 0, 0,192,120,146, 61,145, 36, 65, 63,
- 95,202,167,191, 0, 0,128, 63, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,
-169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 83,145, 2, 0, 0, 0, 0, 8,245,211, 2, 0, 0, 0, 0, 25, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,
-232,208, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 88,120, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 4, 0, 0, 0,120, 5,186, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0,
-112, 5, 0, 0, 72,209, 24, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0,104,215, 24, 4, 0, 0, 0, 0, 40,203, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48,
- 49, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 20,196, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,215, 24, 4,
- 0, 0, 0, 0, 24,156,212, 2, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,227,252,129,193, 14,112,164, 64, 9,197,229, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65,
-177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0,
- 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65,
- 0, 0, 0, 0,227,252,129,193, 14,112,164, 64, 9,197,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 17, 66,216,178, 0, 0, 0, 0,
- 0, 0, 0, 0,176,193,168,165, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0,176,193, 40, 27, 0, 0, 0,181, 0, 0, 0, 52, 0, 0,128, 63,231,126,201, 61, 0, 0,128, 49, 0, 0, 0, 0,
- 0, 0, 0, 0,218,145,171,176,231,126,201, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,126,201, 61,
- 0, 0, 0, 0,252,159,204, 63,126,109, 1,191,156,217, 52,190, 0, 0,128, 63,231,126,201, 61, 0, 0, 0,178, 0, 0,128, 44,
- 0, 0, 0, 0, 95, 81,217,164, 51, 57,255, 49,232,126,201, 61, 0, 0, 0, 0,219,145,171, 48,231,126,201,189,161,222,251, 49,
- 0, 0, 0, 0,148,126,204, 63,204,200,189,191,117,156, 20, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0,
- 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,
-143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 8,215, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104,142, 26, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 24,156,212, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,104,215, 24, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0,
-136,221, 24, 4, 0, 0, 0, 0, 72,209, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 49, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,168, 20,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0,
- 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0,
- 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40,221, 24, 4, 0, 0, 0, 0, 56,136,180, 2, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,
- 8, 56,130, 65, 14,112,164, 64, 35,197,229, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65,177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0, 8, 56,130, 65, 14,112,164, 64, 35,197,229, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
-254,255,127, 63, 15, 66,216,178, 0, 0, 0, 0, 0, 0, 0, 0,138,222,112, 38, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,138,222,112, 28, 0, 0,128, 53, 0, 0, 0, 0, 0, 0,128, 63,
-232,126,201, 61, 0, 0,128, 49, 0, 0, 0, 0, 0, 0, 0, 0,219,145,171,176,231,126,201, 61, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,232,126,201, 61, 0, 0, 0, 0, 23,253,204,191,128,109, 1,191,176,217, 52,190, 0, 0,128, 63,
-230,126,201, 61, 0, 0, 0,178, 0, 0,128,172, 0, 0, 0, 0, 94, 81,217,164, 51, 57,255, 49,232,126,201, 61, 0, 0, 0, 0,
-217,145,171, 48,231,126,201,189,161,222,251, 49, 0, 0, 0, 0,127, 30,205,191,203,200,189,191,254,135, 20, 58, 0, 0,128, 63,
- 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,
-205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 40,221, 24, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,104,142, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,
- 56,136,180, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,136,221, 24, 4,
- 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0,168,227, 24, 4, 0, 0, 0, 0,104,215, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 49, 52, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 20,196, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,227, 24, 4, 0, 0, 0, 0, 40, 30, 8, 4,
- 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,176, 38, 2, 66, 14,112,164, 64, 46,149,229, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65,177,159, 34, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180, 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,
-178,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0,176, 38, 2, 66,
- 14,112,164, 64, 46,149,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63,120,137,214,177,176,159,162,177, 0, 0, 0, 0,138,222,112, 38,
- 0, 0,128, 63,177,159, 34, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,254,255,127, 54,
-255,255,255, 52,255,255,127, 52, 0, 0,128, 63,232,126,201, 61, 0, 0, 0, 49, 0, 0, 0, 48, 0, 0, 0, 0,219,145,171,176,
-231,126,201, 61, 0, 0,128,163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,126,201, 61, 0, 0, 0, 0,202,225, 76,192,
-128,109, 1,191,242,179, 52,190, 0, 0,128, 63,231,126,201, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 81,217,164,
- 51, 57,255, 49,232,126,201, 61, 0, 0, 0, 0,218,145,171, 48,231,126,201,189,160,222,251, 49, 0, 0, 0, 0,125,242, 76,192,
-203,200,189,191, 33, 71, 58, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0,
- 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201,
- 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 16, 0, 0, 0, 72,227, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104,142, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 40, 30, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 79, 66, 0, 0,112, 5, 0, 0,168,227, 24, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0,200,233, 24, 4, 0, 0, 0, 0,
-136,221, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,
-114,115, 46, 48, 49, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 20,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,233, 24, 4, 0, 0, 0, 0,152,244,185, 2, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0,237, 10, 2,194, 14,112,164, 64,
-184,147,229, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,
-178,159, 34, 65,177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0,128,166,250, 89,178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,151,120, 10,180,
- 0, 0, 0, 0, 0, 0, 0, 0,151,120, 10, 52,178,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-177,159, 34, 65, 0, 0, 0, 0,237, 10, 2,194, 14,112,164, 64,184,147,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63,130,206, 7, 51,
- 0, 0, 0, 0, 0, 0, 0, 0,138,222,112, 38, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0,138,222,112, 28, 0, 0,128, 53, 0, 0, 0, 0, 0, 0,128, 63,232,126,201, 61, 0, 0, 0,177,
- 0, 0, 0, 0, 0, 0, 0, 0,219,145,171,176,231,126,201, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232,126,201, 61, 0, 0, 0, 0, 22,182, 76, 64,127,109, 1,191,202,178, 52,190, 0, 0,128, 63,231,126,201, 61, 0, 0, 0, 0,
- 0, 0, 0, 44, 0, 0, 0, 0, 94, 81,217,164, 51, 57,255, 49,232,126,201, 61, 0, 0, 0, 0,218,145,171, 48,231,126,201,189,
-161,222,251, 49, 0, 0, 0, 0, 98,165, 76, 64,203,200,189,191,129,109, 59, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62,
- 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,104,233, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,152,244,185, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,200,233, 24, 4, 0, 0, 0, 0,129, 0, 0, 0,
- 1, 0, 0, 0,232,239, 24, 4, 0, 0, 0, 0,168,227, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 49, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 20,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,239, 24, 4, 0, 0, 0, 0,200, 5, 9, 4, 0, 0, 0, 0, 2, 0, 0, 0,
- 1, 0, 0, 0, 16,173, 34, 66,220,133, 63,192,216,147,229, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65,177,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0,128,210, 83,251,192, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 98, 99,102,182,178,159, 34,193, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65, 98, 99,102,182, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0, 16,173, 34, 66,220,133, 63,192,216,147,229, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63,254,255,127, 63,130,206, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0,138,222,112, 38, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,138,222,112, 28, 0, 0,128, 53, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 14,179,230,126,201, 61, 0, 0, 0,176, 0, 0, 0, 0,231,126,201,189,153,186, 14,179, 0, 0, 0, 37,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,126,201, 61, 0, 0, 0, 0,221,190,150,190,133, 10,128,192,227,178, 52,190,
- 0, 0,128, 63, 0, 0, 24,179,232,126,201, 61, 0, 0, 0, 0, 0, 0, 0, 0, 51, 57,255,177,106,201, 52,167,232,126,201, 61,
- 0, 0, 0, 0,231,126,201, 61,154,186, 14, 51,163,222,251, 49, 0, 0, 0, 0,169,196, 46, 63,223, 18,128,192, 64, 84, 59, 58,
- 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60,
- 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,136,239, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104,142, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 4, 0, 0, 0,200, 5, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,
-232,239, 24, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 8,246, 24, 4, 0, 0, 0, 0,200,233, 24, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 99,104,101, 99,107,101,114,115, 46, 48, 50, 50, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 20,196, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,245, 24, 4, 0, 0, 0, 0,
- 24,104,217, 2, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 77,145, 34,194,220,133, 63,192,216,147,229, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,178,159, 34, 65,178,159, 34, 65,177,159, 34, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
-228,203,150,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 36, 2, 52,178,159, 34, 65, 0, 0, 0, 0, 0, 0, 0, 0,
-178,159, 34,193,102, 36, 2, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177,159, 34, 65, 0, 0, 0, 0,
- 77,145, 34,194,220,133, 63,192,216,147,229, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63,130,206, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0,
-138,222,112, 38, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-138,222,112, 28, 0, 0,128, 53, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,192, 48,231,126,201,189, 0, 0, 0,176, 0, 0, 0, 0,
-231,126,201, 61, 0, 64,161, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,126,201, 61, 0, 0, 0, 0,
- 12,191,150, 62, 88,233,127,192,228,178, 52,190, 0, 0,128, 63, 0, 0, 0, 49,231,126,201,189, 0, 0, 0, 0, 0, 0, 0, 0,
- 51, 57,255, 49, 23, 63,204, 36,232,126,201, 61, 0, 0, 0, 0,231,126,201,189, 1, 64,161,176,162,222,251, 49, 0, 0, 0, 0,
-145,196, 46,191,164,216,127,192, 63, 84, 59, 58, 0, 0,128, 63, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0,
- 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 16, 0, 0, 0,168,245, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104,142, 26, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 24,104,217, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0, 8,246, 24, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0,200,251, 24, 4,
- 0, 0, 0, 0,232,239, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,
-109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,104,126, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0,
- 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,170, 77,152, 65,
-248,108, 90,191, 90,202,168,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 85, 90,103, 63,254, 45,186,190,115,209,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,247,255, 62,
- 37, 39, 74, 63,138, 26,182, 62, 0, 0, 0, 0,164, 21, 44,191, 28, 67,194, 61,176,248, 59, 63, 0, 0, 0, 0,251,203, 11, 63,
-217, 45, 27,191, 47, 7, 20, 63, 0, 0, 0, 0,170, 77,152, 65,248,108, 90,191, 90,202,168,191, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
-220, 19,149,176,206,185,149,179, 0, 0, 0, 0,101, 61, 84, 51, 1, 0,128, 63, 45,173,146, 51, 0, 0, 0, 0,180,106, 15, 51,
- 67, 91, 19,178, 0, 0,128, 63, 0, 0, 0, 0,229,162, 50, 53,251, 88,214, 52,187,255,179, 53, 0, 0,128, 63,138,247,255, 62,
-164, 21, 44,191,252,203, 11, 63, 0, 0, 0, 0, 35, 39, 74, 63, 24, 67,194, 61,217, 45, 27,191, 0, 0, 0, 0,137, 26,182, 62,
-176,248, 59, 63, 46, 7, 20, 63, 0, 0, 0, 0,214,255, 5,193,149,139, 93, 65, 72,106, 34,193, 0, 0,128, 63,136,247,255, 62,
-164, 21, 44,191,250,203, 11, 63, 0, 0, 0, 0,139, 26,182, 62,175,248, 59, 63, 46, 7, 20, 63, 0, 0, 0, 0, 36, 39, 74,191,
- 24, 67,194,189,218, 45, 27, 63, 0, 0, 0, 0, 4, 80,121,193,162,189, 99, 65, 13, 24, 70,192, 0, 0,128, 63, 30, 4, 0, 0,
- 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,
-236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,200,251, 24, 4, 0, 0, 0, 0,129, 0, 0, 0,
- 1, 0, 0, 0,136, 1, 25, 4, 0, 0, 0, 0, 8,246, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 79, 66, 76, 97,109,112, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,131, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 98,160, 52,193, 56,135, 93,193,153,227, 19,193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 85, 90,103, 63,254, 45,186,190,115,209,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,136,247,255, 62, 37, 39, 74, 63,138, 26,182, 62, 0, 0, 0, 0,164, 21, 44,191, 28, 67,194, 61,176,248, 59, 63,
- 0, 0, 0, 0,251,203, 11, 63,217, 45, 27,191, 47, 7, 20, 63, 0, 0, 0, 0, 98,160, 52,193, 56,135, 93,193,153,227, 19,193,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 12, 73,149, 51,183,223, 34,179, 0, 0, 0, 0,180, 66, 41, 50, 0, 0,128, 63,176, 27,138, 49,
- 0, 0, 0, 0,201, 75, 13, 50, 76, 10,177, 50, 1, 0,128, 63, 0, 0, 0, 0, 41,189, 56,179,113,162,231,180, 67,151,100,180,
- 0, 0,128, 63,135,247,255, 62,164, 21, 44,191,252,203, 11, 63, 0, 0, 0, 0, 37, 39, 74, 63, 28, 67,194, 61,217, 45, 27,191,
- 0, 0, 0, 0,136, 26,182, 62,175,248, 59, 63, 46, 7, 20, 63, 0, 0, 0, 0,172,234,158, 65, 79,243, 2, 63,195,120, 71, 64,
- 0, 0,128, 63,138,247,255, 62,165, 21, 44,191,251,203, 11, 63, 0, 0, 0, 0,140, 26,182, 62,176,248, 59, 63, 46, 7, 20, 63,
- 0, 0, 0, 0, 35, 39, 74,191, 17, 67,194,189,217, 45, 27, 63, 0, 0, 0, 0, 41,133, 74, 65, 29, 20,102, 63,115,194, 34, 65,
- 0, 0,128, 63, 30, 4, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60,
- 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,136, 1, 25, 4,
- 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 72, 7, 25, 4, 0, 0, 0, 0,200,251, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 46, 48, 48, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,144, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 56,183,192, 61, 86, 90,193,242,190, 40, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,214,143,104,191, 93, 33, 11,191,232, 45, 17, 64,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,194, 12,191, 1,236, 39, 63,180, 97, 4, 63, 0, 0, 0, 0, 37,182, 59,191,
-170, 20,169,189, 65,200, 44,191, 0, 0, 0, 0, 11,208,204,190, 93, 18, 64,191,215,191, 6, 63, 0, 0, 0, 0,111, 56,183,192,
- 61, 86, 90,193,242,190, 40, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,238,165, 47,180,227,129, 13, 50, 0, 0, 0, 0,163, 29,131,178,
- 1, 0,128, 63, 76,221,150,177, 0, 0, 0, 0, 14, 36, 14,179,106,112,163, 48, 0, 0,128, 63, 0, 0, 0, 0,255,187,156,179,
- 91, 51,158,181,179,247,156,180, 0, 0,128, 63,132,194, 12,191, 36,182, 59,191, 15,208,204,190, 0, 0, 0, 0, 0,236, 39, 63,
-171, 20,169,189, 92, 18, 64,191, 0, 0, 0, 0,180, 97, 4, 63, 65,200, 44,191,215,191, 6, 63, 0, 0, 0, 0,124,180,178, 62,
-111,139,229, 63, 27,164,144,193, 0, 0,128, 63,133,194, 12,191, 38,182, 59,191, 7,208,204,190, 0, 0, 0, 0,181, 97, 4, 63,
- 66,200, 44,191,214,191, 6, 63, 0, 0, 0, 0,255,235, 39,191,164, 20,169, 61, 92, 18, 64, 63, 0, 0, 0, 0,133, 79,167,192,
- 33,228,179, 63, 21,212, 26,193, 0, 0,128, 63, 30, 4, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0,
- 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201,
- 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,
-112, 5, 0, 0, 72, 7, 25, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 8, 13, 25, 4, 0, 0, 0, 0,136, 1, 25, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 46, 48, 48, 51, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,135, 24, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,147,104, 64, 42, 84, 23,193,116, 77,171, 64,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 85, 90,103, 63,
-254, 45,186,190,115,209,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,247,255, 62, 37, 39, 74, 63,138, 26,182, 62,
- 0, 0, 0, 0,164, 21, 44,191, 28, 67,194, 61,176,248, 59, 63, 0, 0, 0, 0,251,203, 11, 63,217, 45, 27,191, 47, 7, 20, 63,
- 0, 0, 0, 0,176,147,104, 64, 42, 84, 23,193,116, 77,171, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,197,201, 17,180, 99,220,102, 50,
- 0, 0, 0, 0,123,165,191, 50,254,255,127, 63, 10,194,140, 50, 0, 0, 0, 0, 41,160,180,178, 91,103, 73, 50,254,255,127, 63,
- 0, 0, 0, 0,254,255,127, 52,254,255,127,181,253,255,255, 52, 0, 0,128, 63,141,247,255, 62,165, 21, 44,191,250,203, 11, 63,
- 0, 0, 0, 0, 38, 39, 74, 63, 28, 67,194, 61,218, 45, 27,191, 0, 0, 0, 0,138, 26,182, 62,176,248, 59, 63, 47, 7, 20, 63,
- 0, 0, 0, 0, 97,221,111, 64,113, 57, 23,191, 59, 2, 45,193, 0, 0,128, 63,137,247,255, 62,165, 21, 44,191,251,203, 11, 63,
- 0, 0, 0, 0,142, 26,182, 62,176,248, 59, 63, 46, 7, 20, 63, 0, 0, 0, 0, 37, 39, 74,191, 20, 67,194,189,217, 45, 27, 63,
- 0, 0, 0, 0, 91, 99, 93,192,135, 98, 80,190,223,119,112,192, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0,
- 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0,
- 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,
-143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0, 8, 13, 25, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0,200, 18, 25, 4,
- 0, 0, 0, 0, 72, 7, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,
-109,112, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 56,140, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0,
- 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249,147,251,192,
-206, 0, 24,193, 67,131,104,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 85, 90,103, 63,254, 45,186,190,115,209,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,247,255, 62,
- 37, 39, 74, 63,138, 26,182, 62, 0, 0, 0, 0,164, 21, 44,191, 28, 67,194, 61,176,248, 59, 63, 0, 0, 0, 0,251,203, 11, 63,
-217, 45, 27,191, 47, 7, 20, 63, 0, 0, 0, 0,249,147,251,192,206, 0, 24,193, 67,131,104,192, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,254,255,127, 63,
- 55,105,222, 50,186,168, 17, 51, 0, 0, 0, 0,243,228, 47,178, 0, 0,128, 63, 81, 76,155,178, 0, 0, 0, 0,170,191, 22, 50,
-214, 89, 50, 51,254,255,127, 63, 0, 0, 0, 0,254,255,127,181, 0, 0,128,181, 35, 5,136,168, 0, 0,128, 63,137,247,255, 62,
-166, 21, 44,191,252,203, 11, 63, 0, 0, 0, 0, 38, 39, 74, 63, 28, 67,194, 61,217, 45, 27,191, 0, 0, 0, 0,137, 26,182, 62,
-176,248, 59, 63, 47, 7, 20, 63, 0, 0, 0, 0,121,151, 75, 65,207,166,219,191,181,156, 34, 63, 0, 0,128, 63,140,247,255, 62,
-165, 21, 44,191,252,203, 11, 63, 0, 0, 0, 0,140, 26,182, 62,176,248, 59, 63, 45, 7, 20, 63, 0, 0, 0, 0, 36, 39, 74,191,
- 22, 67,194,189,218, 45, 27, 63, 0, 0, 0, 0,148,142,176, 64, 97, 22,170,191, 27, 28,246, 64, 0, 0,128, 63, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,
-236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,200, 18, 25, 4, 0, 0, 0, 0,129, 0, 0, 0,
- 1, 0, 0, 0,136, 24, 25, 4, 0, 0, 0, 0, 8, 13, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 79, 66, 76, 97,109,112, 46, 48, 48, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,149, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,145, 75,188, 63, 44,197,107,193, 5,147, 81, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,218, 15,201, 63, 0, 0,128, 37,255,255,127, 37, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63,255,255,127, 37, 0, 0,128,165, 0, 0, 0, 0,255,255,127, 37,105, 33,162, 51, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 37, 0, 0,128,191,105, 33,162, 51, 0, 0, 0, 0,145, 75,188, 63, 44,197,107,193, 5,147, 81, 64,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63,254,255,127, 63, 44,197,107, 53, 4,147, 81,180, 0, 0, 0, 0,253,255,127, 37, 0, 0,128, 63, 64, 90,136, 48,
- 0, 0, 0, 0,254,255,127,165, 44,197,107,155, 0, 0,128, 63, 0, 0, 0, 0,254,255,255, 51,255,255,255,181,254,255,127, 52,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,128,165, 0, 0,128, 63,255,255,255, 39,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 32,159,189,191, 47,164,188,191,150,188,153,192,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,128,165, 0, 0,128, 63,255,255,255, 39,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 32,159,189,191, 47,164,188,191,150,188,153,192,
- 0, 0,128, 63, 32, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60,
- 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,136, 24, 25, 4,
- 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 72, 30, 25, 4, 0, 0, 0, 0,200, 18, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,105,198, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,238,223, 2, 0, 0, 0, 0,104,195,185, 2,
- 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,100, 82, 7,189, 21,204,103,191,241,165,230, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 39,155, 64,153, 39,155, 64,153, 39,155, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,218, 15,201, 63, 0, 0,192, 37,255,255,255, 36,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 39,155, 64,152, 39, 27, 38,102,187,232,166, 0, 0, 0, 0,102,187,232, 38,
-157,134,196, 52,153, 39,155, 64, 0, 0, 0, 0,154, 39, 27, 38,153, 39,155,192,157,134,196, 52, 0, 0, 0, 0,100, 82, 7,189,
- 21,204,103,191,241,165,230, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,236, 48,206,152, 9, 66, 41, 24, 0, 0, 0, 0,216, 55, 60,152,
- 0, 0,128, 63, 88,133,105,166, 0, 0, 0, 0,226,159, 91,151, 64,218, 93, 38, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 25, 50, 83, 62,147,101,158, 36, 26, 50,211, 35, 0, 0, 0, 0, 24, 50,211, 35,
- 68,193,133, 50, 25, 50, 83,190, 0, 0, 0, 0,147,101,158,164, 25, 50, 83, 62, 68,193,133, 50, 0, 0, 0, 0,199, 70,223, 59,
-232, 71,190,190,148, 58, 63,190, 0, 0,128, 63, 25, 50, 83, 62,147,101,158, 36, 27, 50,211, 35, 0, 0, 0, 0,147,101,158,164,
- 25, 50, 83, 62,158, 59,174, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,175, 25, 50, 83, 62, 0, 0, 0, 0,135, 62,153, 59,
-217, 94,110,185,118, 71,238, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0,
- 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201,
- 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 4, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 8, 0, 0, 0, 56,238,223, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 4, 0, 0, 0,104,195,185, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,
- 72, 30, 25, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0,216, 36, 25, 4, 0, 0, 0, 0,136, 24, 25, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 46, 48, 48, 50, 0, 46, 48,
- 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 37, 27, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 36, 25, 4, 0, 0, 0, 0, 8, 36, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 42, 8, 4, 0, 0, 0, 0,
- 72, 51,187, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,242,187,213,191,194,145,134, 63,254,100, 35, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,243, 0, 28, 65,246, 0, 28, 65,243, 0, 28, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 48,110,135, 63,180,169, 59, 62,
-138,115, 1,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,198, 49, 6, 65,115,154,148,192, 3,113,227,191, 0, 0, 0, 0,
-159,250,106, 64,189,207, 91, 64, 80,170, 5, 65, 0, 0, 0, 0, 46,151, 86,192,125, 94,251,192,188,127,150, 64, 0, 0, 0, 0,
-242,187,213,191,194,145,134, 63,254,100, 35, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,220,198, 33,177, 33, 91, 79,179, 0, 0, 0, 0,
-132, 62,152, 49, 0, 0,128, 63, 52,168,172, 50, 0, 0, 0, 0, 31, 6, 96,177,234,190, 21, 51, 0, 0,128, 63, 0, 0, 0, 0,
-212, 90,228, 50,171,224,143,179,223, 27,189,175, 0, 0,128, 63,144,174,180, 61,160, 48, 30, 61,223,118, 16,189, 0, 0, 0, 0,
-164, 29,153,188, 38,248,179, 61,113,162, 74, 61, 0, 0, 0, 0, 15, 21, 72, 61,160,250, 19,189, 88, 57,169, 61, 0, 0, 0, 0,
- 4,107, 50, 63, 88, 46,204,190,177,206, 79, 63, 0, 0,128, 63,144,174,180, 61,160, 48, 30, 61,223,118, 16,189, 0, 0, 0, 0,
-164, 29,153,188, 38,248,179, 61,113,162, 74, 61, 0, 0, 0, 0, 15, 21, 72, 61,160,250, 19,189, 88, 57,169, 61, 0, 0, 0, 0,
- 4,107, 50, 63, 88, 46,204,190,177,206, 79, 63, 0, 0,128, 63, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0,
- 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 8, 0, 0, 0,152, 42, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 4, 0, 0, 0, 72, 51,187, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-136, 0, 0, 0, 8, 36, 25, 4, 0, 0, 0, 0, 81, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,117, 98,115,117,114,102, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,
-112, 5, 0, 0,216, 36, 25, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0,152, 42, 25, 4, 0, 0, 0, 0, 72, 30, 25, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 46, 48, 48,
- 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 67,239, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 43,196, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,216,188, 2,
- 0, 0, 0, 0,248,144,224, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 16,194,203,187,155, 89, 45, 63,244,153,230, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,135, 72, 63, 56,135, 72, 63,
- 56,135, 72, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,135, 72, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56,135, 72, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,135, 72, 63,
- 0, 0, 0, 0, 16,194,203,187,155, 89, 45, 63,244,153,230, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 57,135,200, 47, 57,135,200,178, 1, 0,128, 63,
- 0, 0, 0, 0,180,192,175,176, 32,132,146, 51,193, 40, 10,179, 0, 0,128, 63,144,104,163, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,144,104,163, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 0, 0, 0, 51,143,104,163, 63,
- 0, 0, 0, 0,203, 15, 2, 60,184, 77, 93,191, 54, 50, 19,192, 0, 0,128, 63,144,104,163, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 34,252,250,206, 51,144,104,163, 63, 0, 0, 0, 0, 0, 0, 0, 0,144,104,163,191, 0, 64,204, 51,
- 0, 0, 0, 0,105, 93,173,187,172,176, 88,193, 95, 52,118,186, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0,
- 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,
-143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 38,212, 2, 0, 0, 0, 0,216, 38,187, 2, 0, 0, 0, 0, 25, 0, 0, 38,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,232,216,188, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,248,144,224, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 79, 66, 0, 0,112, 5, 0, 0,152, 42, 25, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 88, 48, 25, 4, 0, 0, 0, 0,
-216, 36, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,
-119, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 43,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 9, 13, 4, 0, 0, 0, 0,104,150,187, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 31, 10, 58, 59, 94,236, 63,
-236, 84,231, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91,188,110, 63,
- 91,188,110, 63, 91,188,110, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-218, 15,201, 63, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91,188,110, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 50,151, 51, 91,188,110, 63, 0, 0, 0, 0, 0, 0, 0, 0, 91,188,110,191,
- 90, 50,151, 51, 0, 0, 0, 0, 0, 31, 10, 58, 59, 94,236, 63,236, 84,231, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,255,127, 63,226, 53, 25,179, 0, 0, 0, 0, 0, 0, 0, 0,167,120,247,166,
- 1, 0,128, 63, 0, 0, 0, 0,183,132, 39,174,239,106,181,179,116,226,155,179, 0, 0,128, 63,160, 65,137, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 65,137, 63,157, 46, 19, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,176,
-161, 65,137, 63, 0, 0, 0, 0, 29, 80, 63,188, 62, 95,226,187, 87, 19, 74, 65, 0, 0,128, 63,160, 65,137, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 65,137, 63,157, 46, 19, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,176,
-161, 65,137, 63, 0, 0, 0, 0, 29, 80, 63,188, 62, 95,226,187, 87, 19, 74, 65, 0, 0,128, 63, 16, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62,
- 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,168, 9, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,104,150,187, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0, 88, 48, 25, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 24, 54, 25, 4,
- 0, 0, 0, 0,152, 42, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,
-101,118,105,101,119, 46, 48, 48, 53, 0, 48, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,168,121, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0,
- 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0,
- 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,155,195,189,
- 20,145,188, 64, 94,220, 88, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63,221,180,134, 63, 48,190,141, 37,253, 55, 57, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
-253, 55, 57, 35, 48,190,141,165, 0, 0, 0, 0,219,128,112, 37, 52,177,253, 62, 94, 93, 94, 63, 0, 0, 0, 0, 52,133, 22, 37,
- 94, 93, 94,191, 52,177,253, 62, 0, 0, 0, 0,128,155,195,189, 20,145,188, 64, 94,220, 88, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
-118, 42, 31, 25,242,108,131,153, 0, 0, 0, 0, 0, 0, 0,176, 0, 0,128, 63,210, 21, 66,178, 0, 0, 0, 0, 5, 0, 0,176,
- 25,245,158, 50, 1, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 50,118, 42,159, 11,242,108, 3,140, 0, 0,128, 63, 0, 0,128, 63,
-219,128,112, 37, 52,133, 22, 37, 0, 0, 0, 0, 0, 0, 0, 48, 94, 93, 94, 63, 52,177,253, 62, 0, 0, 0, 0, 0, 0,128,175,
- 50,177,253,190, 96, 93, 94, 63, 0, 0, 0, 0,149, 98,174, 61, 85,101,144,193,196,124,253, 64, 0, 0,128, 63, 0, 0,128, 63,
-219,128,112, 37, 52,133, 22, 37, 0, 0, 0, 0, 0, 0, 0, 48, 94, 93, 94, 63, 52,177,253, 62, 0, 0, 0, 0, 0, 0,128,175,
- 50,177,253,190, 96, 93, 94, 63, 0, 0, 0, 0,149, 98,174, 61, 85,101,144,193,196,124,253, 64, 0, 0,128, 63, 64, 0, 0, 0,
- 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 0, 0, 0, 7, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,
-236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0, 24, 54, 25, 4, 0, 0, 0, 0,129, 0, 0, 0,
- 1, 0, 0, 0,216, 59, 25, 4, 0, 0, 0, 0, 88, 48, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 46, 48, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,142,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 61,212, 2, 0, 0, 0, 0,168,202,185, 2, 0, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 94, 52,252,190,174,101,228, 65,141,116, 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,235,239, 30, 66,236,239, 30, 66,235,239, 30, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,138,174, 95, 63, 98,132,123, 37, 61, 56, 87,165, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,235,239, 30, 66,105,158, 5,168,108, 39, 28,168, 0, 0, 0, 0,212,129, 77, 40, 66, 15,204, 65,158,186,243, 65,
- 0, 0, 0, 0, 55, 89, 13,165,156,186,243,193, 65, 15,204, 65, 0, 0, 0, 0, 94, 52,252,190,174,101,228, 65,141,116, 17, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63,151,169,232, 24,151,190,157, 25, 0, 0, 0, 0, 21, 24,149, 24, 0, 0,128, 63,109,157, 59,178,
- 0, 0, 0, 0,191,231, 64,153, 1,158,199,178, 1, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63,101, 43,206, 60, 25, 74, 5, 35,141, 90,183,159, 0, 0, 0, 0, 42,143,202,162,100, 20,158, 60,192, 89,132, 60,
- 0, 0, 0, 0,187, 83,173, 34,192, 89,132,188,102, 20,158, 60, 0, 0, 0, 0, 11,215, 70, 60, 61, 43, 67,191,184,241, 31, 63,
- 0, 0,128, 63,101, 43,206, 60, 25, 74, 5, 35,141, 90,183,159, 0, 0, 0, 0, 42,143,202,162,100, 20,158, 60,192, 89,132, 60,
- 0, 0, 0, 0,187, 83,173, 34,192, 89,132,188,102, 20,158, 60, 0, 0, 0, 0, 11,215, 70, 60, 61, 43, 67,191,184,241, 31, 63,
- 0, 0,128, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60,
- 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,168, 61,212, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,168,202,185, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,216, 59, 25, 4, 0, 0, 0, 0,
-129, 0, 0, 0, 1, 0, 0, 0, 56, 66, 25, 4, 0, 0, 0, 0, 24, 54, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119, 99,117, 98,101, 0,117, 98,101, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,157,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0,
- 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 65, 25, 4, 0, 0, 0, 0,232, 65, 25, 4, 0, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 0, 0,128,253, 88, 59,220,118,160, 63, 0, 15, 37, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 88, 68, 64, 84, 88, 68, 64, 83, 88, 68, 64, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 1,190,237, 62,108,230,217,190, 20,151, 52, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 67, 38, 8, 64,191,228,231, 63,186, 31,162, 63, 0, 0, 0, 0, 35,118, 13,192, 2, 61,220, 63,
- 31, 44,160, 63, 0, 0, 0, 0,166, 52,234, 60,102,223,227,191, 55,229, 31, 64, 0, 0, 0, 0,128,253, 88, 59,220,118,160, 63,
- 0, 15, 37, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,187,122,172,178,103,144, 8, 50, 0, 0, 0, 0, 7,239, 27,179, 0, 0,128, 63,
-247,131,152,178, 0, 0, 0, 0,149,110,134, 50,189,195,169, 50, 1, 0,128, 63, 0, 0, 0, 0,255,223,172, 50, 56, 88,136,179,
-159,134, 16,180, 0, 0,128, 63, 11,115,103, 62,200,122,112,190,232, 17, 71, 59, 0, 0, 0, 0, 4, 27, 69, 62,226, 50, 59, 62,
- 24,176, 65,190, 0, 0, 0, 0,114,205, 9, 62,203, 36, 8, 62,136,232,135, 62, 0, 0, 0, 0,188,208, 22,191, 23, 64, 18,191,
-174, 28,229,190, 0, 0,128, 63, 10,115,103, 62,201,122,112,190, 0, 18, 71, 59, 0, 0, 0, 0,116,205, 9, 62,204, 36, 8, 62,
-136,232,135, 62, 0, 0, 0, 0, 1, 27, 69,190,224, 50, 59,190, 25,176, 65, 62, 0, 0, 0, 0,110,176, 16,192,158, 71, 9,192,
-115, 90,244, 63, 0, 0,128, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,
-169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,
-152, 65, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,
-232, 65, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0, 56, 66, 25, 4,
- 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 56,108, 26, 4, 0, 0, 0, 0,216, 59, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119,104, 97,105,114, 0,108, 97,110,101, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,196, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,107, 26, 4,
- 0, 0, 0, 0, 88,107, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 71, 25, 4, 0, 0, 0, 0, 72, 72, 25, 4,
- 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 86, 92,200, 63, 7,205,227, 63,149,199, 9,189, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234,126, 47, 64,234,126, 47, 64,236,126, 47, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,225, 80, 2, 63, 5,211, 15,191, 92,219, 18, 62,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,254, 18, 64, 23,209,169, 62, 27,251,186, 63, 0, 0, 0, 0, 71,254,133,191,
-207, 40, 17, 64,229,194,144, 63, 0, 0, 0, 0, 78, 38,137,191, 48,162,192,191,125,176, 1, 64, 0, 0, 0, 0, 86, 92,200, 63,
- 7,205,227, 63,149,199, 9,189, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,225,128, 25,179,157,103, 88,179, 0, 0, 0, 0,249,162,132, 50,
- 1, 0,128, 63, 89,156,139, 51, 0, 0, 0, 0,225,204,139,179,160, 96,185,178, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 52,
- 1, 0, 0,180, 1, 0, 84,180, 0, 0,128, 63,244,100,156, 62,133,143, 14,190, 54,235, 17,190, 0, 0, 0, 0,174,239, 70, 62,
-100, 4, 26, 62, 74,251,137, 62, 0, 0, 0, 0,176,172, 52,189,213,112,154,190, 70,243, 76, 62, 0, 0, 0, 0,151, 56, 36,191,
-142, 98, 66,192,171, 5, 68, 64, 0, 0,128, 63,244,100,156, 62,133,143, 14,190, 54,235, 17,190, 0, 0, 0, 0,174,239, 70, 62,
-100, 4, 26, 62, 74,251,137, 62, 0, 0, 0, 0,176,172, 52,189,213,112,154,190, 70,243, 76, 62, 0, 0, 0, 0,151, 56, 36,191,
-142, 98, 66,192,171, 5, 68, 64, 0, 0,128, 63, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0,
- 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201,
- 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 73, 25, 4, 0, 0, 0, 0,120, 73, 25, 4, 0, 0, 0, 0,152, 72, 25, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 8, 0, 0, 0,248, 71, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 4, 0, 0, 0, 72, 72, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,
-152, 72, 25, 4, 0, 0, 0, 0,132, 0, 0, 0, 1, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 2, 0, 0,120, 73, 25, 4, 0, 0, 0, 0,137, 1, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,174,198, 4, 0, 0, 0, 0, 88, 76, 25, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,244,100,156, 62,134,143, 14,190, 52,235, 17,190, 0, 0, 0, 0,172,172, 52, 61,211,112,154, 62,
- 69,243, 76,190, 0, 0, 0, 0,176,239, 70, 62,102, 4, 26, 62, 73,251,137, 62, 0, 0, 0, 0,188,211, 12,191,198,176,160,190,
- 56,156, 22, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 2, 0, 0,
-150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232,101, 26, 4, 0, 0, 0, 0,232,101, 26, 4, 0, 0, 0, 0,232,101, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 95,224, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,128,112, 0, 0,
- 88, 76, 25, 4, 0, 0, 0, 0,134, 1, 0, 0,150, 0, 0, 0, 20,135, 17,192, 36,121, 97,192,112, 32,141, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,189, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,180, 96, 10, 60,200,196,163, 61, 78,182, 99, 63,165,242,180, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,111, 46, 7,192,143, 26, 60,192, 28,147,207, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,190, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,147,247, 17, 61, 51,172, 44, 62, 17,125, 54, 63, 69,195,169, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,224,103,174,189, 60, 88, 17,192,230, 35, 76, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,191, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,102, 96, 39, 62,101,119,242, 61,189,168,146, 62, 55, 9,221, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 75,102,131,192,196,241, 26, 63,140,198, 76, 64,190, 81, 55,191,
-107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136,192, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,227,146, 53, 61, 63,180,115, 63,216,113, 42, 59,125, 63,144, 58,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 64, 43,226,189,253, 85,220,191,225,104,101, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168,193, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,250,120,128, 62, 19,194, 20, 62, 61, 15, 90, 62, 92, 30,200, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,108,159,129,191, 8,210, 6, 63, 35,221,152, 64,190, 81, 55,191,
-107,243, 71,191,102,237, 42, 63,235,163,214, 62,200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,194, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,148,235, 25, 63,206,172,146, 62,137,195, 52, 61, 99,142,139, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,114,167,189,191,217, 59,104,192,184,179,184, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232,195, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,120,167,104, 60,166,104,235, 60,218,251, 73, 63, 13, 25, 44, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 86,112, 30, 63,111, 69, 82,192, 59,191, 51, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,197, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 27,112,241, 60, 0,187,177, 60, 4,134,171, 62,164, 35, 29, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,118,148,176,191, 88,200, 1, 63, 89, 48,146, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,198, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,160,178, 8, 63,185,164,184, 62, 68, 72, 63, 61, 16,104,112, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,200, 80,168,191, 8,154,165,191,229,248, 80, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,199, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,177, 46,104, 62, 36,106,150, 62, 2, 61,138, 62, 4,131, 86, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0,190,246,189,233,129, 90,192,224,155, 20, 64,190, 81, 55,191,
-107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,200, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 79, 25,187, 60,207,244,194, 60, 53,234,253, 62,233, 52,234, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,176,231, 67,190,144,105, 11,189,210,111,153, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136,201, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,206,217, 24, 63, 59,222, 25, 62, 0, 50,134, 61,139,161, 63, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 58,217,158, 63,122,225, 17,192,213,158,120, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168,202, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 34,213, 73, 62,217,230, 49, 61,217,117,187, 61,143,253, 42, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 29,205,127,191,231,116,142,191,116, 64,100, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,203, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,109,124,145, 62, 47, 84,135, 62, 95, 56, 95, 62,104, 38,111, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,143,106, 67,192,239, 1,236, 62,230,139,105, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232,204, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 37,227,100, 62,230, 38, 54, 63, 87, 4, 43, 61,166, 1,190, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,114, 63, 58,191,242, 44,102,191,239,155,119, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,206, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,232,134,178, 62, 23,134,113, 62,235,242, 46, 62, 45,121,122, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,244,173,175, 62,136,194,141, 61, 0,239,164, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,207, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,211, 97, 48, 63, 38,134,130, 61,167, 53, 8, 61, 56, 40, 91, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,127,188, 36,192, 83,192, 42,192, 20, 24,202, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,208, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,191,242,154, 60, 14,165,130, 62,127,236, 49, 63,163, 44,253, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,191,117, 51, 63, 40,247, 44,192, 84, 59, 82, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,209, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,218, 50,227, 61, 48,152,110, 61,166, 58,104, 62,121,161, 26, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 23,218, 44,192,131,112,159,190, 68,196, 80, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136,210, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 23,126, 53, 62, 93,113, 22, 63, 29,104, 42, 62,166,168,140, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,222,253, 61,191,212,216, 43,190,219,239,140, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168,211, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 24, 36,252, 62,191,130,121, 62, 96,245,198, 61, 98,186, 42, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,192,168,212,191, 47,175, 30,192, 94,228, 12, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,212, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,118,198,167, 61, 92,200, 80, 62,157,210, 10, 63,240, 9, 48, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,114,184,238,190,237,206,230,191,208,122, 85, 64,190, 81, 55,191,
-107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232,213, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,138,132, 94, 62,167,190, 48, 62,203, 41,136, 62,157, 52,176, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 67, 19,104, 63,179,122,254,191,115, 37,123, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,215, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,197,245,124, 62, 30,108,130, 61,201,152,229, 61,242,193, 19, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,172,106,191, 63,110,225, 42,192, 2,170,110, 64,190, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,216, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,240, 99,249, 61,190, 88,249, 60,174, 20,183, 61, 39, 38, 66, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,121, 3, 12,192, 63, 11,252,190,146,136, 89, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,217, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,173, 28,108, 62,191,152,246, 62,199, 50, 61, 62, 31,254,210, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,250,104,187,191, 56, 86,139,189,145, 23,131, 64,190, 81, 55,191,
-107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,218, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 15, 67,208, 62,184, 57,190, 62,119,154,219, 61,111,114,234, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 52, 56,161, 62,255,221,207,191,202,110,120, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136,219, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,123, 33,150, 62, 68, 30,226, 61,224,121, 27, 62, 4,154,227, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 63, 89, 41,192,117,107, 25,192,174,245,222, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168,220, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 82,179,202, 60,197,106,157, 62,211,197, 33, 63, 9,243, 18, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 94,238,220,191, 91, 70,150,191,203,192, 72, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,221, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 13,183, 77, 62,158,153,182, 62, 65, 59,143, 62, 52,159, 38, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 61,234,116,192,224,101,238,188,165, 20, 56, 64,190, 81, 55,191,
-107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232,222, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 31,255,242, 60,231,194, 83, 63,189, 56, 5, 62, 68,188, 85, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,128,209,240,189,178,183, 95, 63, 5, 67,176, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,224, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,153,189, 85, 63,151,104,200, 61,246, 55,142, 60, 74, 57, 76, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,206, 54, 25,192,171,197,162, 62, 6, 16,121, 64,190, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,225, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,104,246,163, 62, 91,201, 16, 63, 24,104,136, 61,227,230, 66, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 29, 57, 61,192,236, 53, 39,191,173,221, 55, 64,190, 81, 55,191,
-107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,226, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 39,218,212, 61,242, 20, 25, 63,122, 70,118, 62,159,226,107, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,249, 62, 40,191, 16,113, 26, 63, 50,179,160, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,227, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 64,186, 45, 63,109,122, 91, 62, 32,134, 21, 61, 21,118,144, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 90, 51,138,191,199, 14,110,192, 18, 66,203, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136,228, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,235,223,153, 59, 21,174,243, 59,231,160, 60, 63,251,135,128, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 44, 75,186,191,170,205,204,191,132,169, 61, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168,229, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 79, 19, 52, 62,229, 52,146, 62,191,228,171, 62,106,185, 79, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 4,119,219, 63,231, 73, 28,192, 83,117,128, 64,188, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,233,163,214, 62,202,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,230, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,186, 75, 51, 62,206,251,144, 60,198, 49, 19, 61, 22,114, 69, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,172, 59,194,191, 35, 29, 13,192, 13,208, 30, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232,231, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 97, 31,227, 61,168,207,104, 62, 38, 89,237, 62, 93,238, 74, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,197,190, 82,192,251,148,174, 62, 29,189, 91, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,233, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,210, 10, 37, 62,124,152, 65, 63, 28,110,106, 61,179,189,207, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,120,157,163,190, 44,219, 33, 63,250, 25,167, 64,190, 81, 55,191,
-107,243, 71,191,102,237, 42, 63,237,163,214, 62,199,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,234, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 52,192, 61, 63, 16, 50, 23, 62, 40, 56, 1, 61, 43,254,162, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,131, 63, 79, 63, 22,225,203,191,183, 83,133, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,235, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 9,188,167, 62,141,167,138, 61,186,163,185, 61,147,152, 3, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 20,218, 89, 62,169, 21, 81,192, 50,226, 38, 64,190, 81, 55,191,
-107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,236, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,175,237, 18, 61, 50, 0, 0, 61,180, 45,208, 62, 72,186, 6, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,192, 91,166,190,203,138,151, 62,232, 4,159, 64,190, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136,237, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,114,117, 40, 63,164, 92, 37, 62, 72,198, 78, 61, 6, 28, 5, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,104,137,191,191,143,156,208,190,234,245,116, 64,190, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168,238, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,121,217,174, 62, 45, 55,188, 62, 41, 76, 25, 62,138,146, 16, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,218, 6, 78,191,240,247, 2,191, 2,181,131, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,239, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,237,209,211, 62, 1,168,129, 62,108,237, 7, 62,188, 30, 77, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,100,181,251,191,160, 67, 79, 63, 83,115,143, 64,190, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232,240, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 31, 56,250, 62,174,208,248, 62, 50, 43, 79, 60,252,186, 79, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,166,143, 16,192,219, 40, 31,192,188,165,240, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,242, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 93,255, 69, 61,131,237,129, 62,199,113, 29, 63, 16,188,169, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 47, 16, 46,192,234,135, 17, 62,196,174,101, 64,190, 81, 55,191,
-107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,243, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,132,185,112, 62, 76,198, 31, 63, 82,148,186, 61,149,140, 75, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,221, 76, 34,192,195, 63,220,191,101, 92, 19, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,244, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,191, 5,144, 61, 27,251,203, 62, 8,217,232, 62,185,169,156, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0,209,208,191,175, 98, 57,192,214, 39,244, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,245, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 40,142,100, 61,206, 81, 18, 62, 52,238, 34, 63,214,209, 40, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,156,146, 19,192,132,169, 38, 63,119,240,133, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136,246, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,177, 98,202, 62,157,134, 14, 63,246,140,213, 60, 97,116,179, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,100,209,211, 63, 80, 57, 64,192,239, 52,100, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168,247, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,131,222,112, 61,150,149,161, 60,127,188,202, 61,219,141, 82, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,204, 40,195, 62,169, 66, 22,192, 56, 69, 88, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,248, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,237,198, 39, 62,232,166,180, 61, 33, 45,106, 62, 32,238, 4, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,179, 41,124, 63,215, 52, 92,192, 1,194, 56, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232,249, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,225,119,158, 59, 62,185, 89, 59, 58, 41,150, 62,186,212, 50, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 78,215, 66,192, 16,102, 17,189,251, 64, 82, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,251, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 94, 65, 31, 62,152, 57, 45, 63,117,240,248, 61, 59,128, 61, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,243,234,243, 63, 12,199, 50,192,246,173,118, 64,192, 81, 55,191,
-107,243, 71,191, 98,237, 42, 63,235,163,214, 62,197,206,183,190,205,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,252, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,202, 64,207, 61, 46,106, 89, 60, 30, 53, 13, 61,236,222, 89, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,174,176, 54,191, 99,173,187,191,209, 31, 93, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,253, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,101,144,129, 62,185, 1, 91, 62, 60, 67,121, 62, 32, 77,148, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,238,131,100,192,222,185, 81,191, 40, 50, 27, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,254, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,197,146, 70, 60, 83,125, 44, 63, 64,124,156, 62,125,144, 10, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,226, 77,248,190, 12,109,103,190,230,231,143, 64,190, 81, 55,191,
-107,243, 71,191,100,237, 42, 63,235,163,214, 62,199,206,183,190,204,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136,255, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 53,173, 3, 63,187,233, 78, 62, 77,225,187, 61,203,112, 68, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,129, 80, 10, 64,253,130, 74,192,124,179,109, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 0, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,215, 2,202, 60, 38,116,181, 59,240,167,204, 60,193,223,113, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 73, 37, 55,192, 92, 44,210,191,134, 20, 12, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 1, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,144,158, 50, 61, 53,247,230, 62,253, 25,236, 62,226,215, 52, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 4,163,152,191,233,189, 16,192,148, 29, 39, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 2, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,113,136,250, 61,109, 45, 71, 62,248,240,222, 62,108,172,125, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 83,219,213, 63,119,221, 77,192, 98,157, 90, 64,192, 81, 55,191,
-107,243, 71,191, 98,237, 42, 63,235,163,214, 62,197,206,183,190,205,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 4, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,154,154,192, 60,206,233, 43, 60, 68, 13, 0, 62, 51, 72, 87, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,118, 39,106,191,130, 29,114, 63,156,123,164, 64,190, 81, 55,191,
-107,243, 71,191,102,237, 42, 63,235,163,214, 62,200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 5, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,149, 27, 54, 63,243, 38,133, 62,232, 55, 53, 60, 91,130,143, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 4, 71,102,192,241,109,194,190,108, 39, 47, 64,192, 81, 55,191,
-107,243, 71,191,100,237, 42, 63,233,163,214, 62,198,206,183,190,204,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 6, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,152,203, 22, 61,132,161, 61, 63, 67,196, 79, 62, 79, 22,160, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 12,224,214, 63,225,182, 5,192,246, 59,136, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 7, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,211, 28,131, 62, 24,255, 46, 60, 11,165,139, 60,113, 88, 55, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 95,158, 92, 63,117,243, 67,192, 16,154, 70, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 8, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,112, 55,104, 61, 14, 23, 9, 61,208, 82,129, 62,176, 65, 40, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 87,234, 31,192,204,234, 65,192,110,200,172, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 9, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,197,252, 48, 60,163,176, 62, 62,216, 93, 72, 63, 94, 65,166, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 76,122,189,191,238,243,102,191,158,253, 93, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 10, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,101,159,135, 62,253,216,174, 62,217, 99, 96, 62,104,171, 50, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,227, 75, 67, 63, 48,124, 78, 61,200,150,171, 64,190, 81, 55,191,
-107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 11, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,191,115, 58, 63,121,198, 2, 60,254,102,167, 59,178,100,132, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 24, 37,139, 62, 4,231, 62, 63,174,205,179, 64,188, 81, 55,191,
-107,243, 71,191,102,237, 42, 63,235,163,214, 62,200,206,183,190,206,137, 61,190,156, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 13, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 50, 23, 92, 63,169, 27, 15, 61, 8, 43, 83, 60, 59, 83,189, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 32,247,225,191, 37,175, 81,192,248,254,198, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 14, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 66,132, 2, 61,191, 37,189, 61,173, 5, 64, 63, 91,181, 0, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,200,110,165, 61,183, 43,239, 62,129,243,169, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 15, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 62,109, 66, 63,244,159,170, 61, 79,150,243, 60, 69,136, 2, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 12,158,243,191,244,237,104,192,138, 34,155, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 16, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,228,106, 92, 60, 23, 25, 35, 61,136,111, 93, 63,211,105,167, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,118, 74, 8, 63, 0,240, 1,192, 28,123,108, 64,190, 81, 55,191,
-107,243, 71,191,102,237, 42, 63,235,163,214, 62,200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 17, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,233,242,101, 62,181,120,181, 61,231,136, 43, 62,245,241, 4, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 26, 24,231,191, 44,105, 21,191,186, 32, 98, 64,190, 81, 55,191,
-107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 18, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 66,189,138, 62,114,103,210, 62,117,128, 62, 62, 35, 54, 7, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,141, 52, 5,191, 10,103, 49,192,230,154, 37, 64,190, 81, 55,191,
-107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 19, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,132, 47,184, 61,244,157,207, 61,168, 0,225, 62,249, 11,189, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,136, 45,177,191, 22,253, 99, 63, 8, 58,155, 64,190, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 20, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,147,253, 28, 63,231,184,184, 62, 48, 48, 58, 60, 59, 78,111, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 42,255, 57,191,235, 4, 65,192, 77, 7, 19, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 22, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,228,255,128, 61, 76, 32,172, 61,147,152, 5, 63,205,134,169, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,184, 68,137,191,204,177,226, 61,196,247,141, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 23, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,107,166, 0, 63, 23, 29,154, 62, 34,214,165, 61, 42,130,236, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 22,103, 82,192, 73, 75,201,191, 1,247, 0, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 24, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 73,109,118, 59,168,155, 4, 63, 73, 2,243, 62,186,198,108, 59,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,194,241,246,191, 87,130,236, 62, 50,209,135, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 25, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 49, 99,219, 62, 85, 73,242, 62,127, 14, 79, 61, 68,141, 67, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,224,228,149,189,233, 13,221,190,210,251,145, 64,190, 81, 55,191,
-107,243, 71,191,100,237, 42, 63,235,163,214, 62,199,206,183,190,204,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 26, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,198,141, 4, 63, 3, 71, 19, 62, 60,186,174, 61, 99,146,129, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0,120, 89, 62,164,169,120,190, 26, 78,155, 64,192, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,234,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 27, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,224, 89, 24, 63,189,174,198, 61, 2,152,101, 61,143,237,128, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 92, 80, 26,192,232, 3,239,189,182,210, 99, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 28, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,115,248,126, 62, 84, 41, 12, 63,153, 55, 4, 62, 62, 85,152, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 80,245, 70,190,136,148, 37,192, 41,107, 57, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 29, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,208,237,239, 61, 10, 34,210, 61, 62,101,181, 62,205, 22,218, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,253,172, 25,191, 68,234,249,191, 59,217, 73, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 31, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 12,172, 64, 62,160, 24, 51, 62,145, 49,156, 62, 26,236,169, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 77, 63, 60,192,192, 70,245,191,246,177,248, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 32, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,172,109,175, 60, 7,135,214, 62, 59, 12, 9, 63,150,154,198, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 6,125,162, 63, 63,233, 64,192,147,167, 86, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 33, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 4, 49,119, 61,119,251,224, 60, 94, 5, 47, 62,188,195, 61, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,184, 96, 27,192,251, 23,179,191,193, 77, 38, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 34, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,166,161,213, 61,217,242,218, 62, 39, 18,191, 62, 89, 74,194, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,185, 0, 21,191,137,241, 14,192,206, 27, 61, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 35, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 58, 36, 27, 62,245,151, 28, 62, 82, 23,179, 62,148, 10,177, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 64, 80, 57,189,193, 80,166,191,242,172,123, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 36, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,199,225,170, 62,114, 67, 23, 62,202, 56, 33, 62, 26,224,184, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,202,106,219,190, 17,216,127, 63,140,251,173, 64,190, 81, 55,191,
-110,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 37, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 10,203, 79, 63,104, 14, 32, 62,252,238, 44, 60, 55,180,175, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,111, 39, 91,192, 64, 81,150,191, 89, 68, 15, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 38, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 25, 88, 25, 60, 85, 74, 25, 63,199,185,196, 62,210,179,249, 59,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,231, 17, 40, 63,141, 44,153,190, 68,123,161, 64,190, 81, 55,191,
-107,243, 71,191,102,237, 42, 63,235,163,214, 62,200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 40, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,202,133, 32, 63, 25,163, 36, 61, 45,136,225, 60,133, 71,156, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 50, 95,160, 63, 34,101,249,191,176, 96,132, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 41, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 62, 45,138, 62, 35,142, 30, 61,173, 78,128, 61,170,246, 32, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,111,133, 6,192,167,152,225,191, 84, 16, 32, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 42, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,245,107,217, 61,253,147,174, 62,227,232,218, 62, 70, 80, 0, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 80, 99,228,190, 44, 59, 51,191,221, 75,133, 64,192, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,234,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 43, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,117,208,213, 62,118,118, 76, 62, 32,254, 5, 62, 65,245,128, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 85,101, 74,192,166,185,105,191, 18,141, 36, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 44, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,221,214,102, 61, 50, 22, 25, 63,139, 42,157, 62,164,113, 30, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,122,234,218,191, 50,177,232,191,108,174, 42, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 45, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,229, 50, 8, 62,227,251,148, 62,133, 65,206, 62, 75, 82, 49, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,254,106,206,191,205, 36,150, 62, 96, 42,137, 64,190, 81, 55,191,
-107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 46, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 87, 15,231, 62, 49,237,207, 62,254, 43,141, 61,226,225,150, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,200, 61,167, 63,119, 5,171,191, 86,214,147, 64,190, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 47, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,216, 36,214, 62,172, 85,122, 60, 44,247,142, 60,132,140, 12, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,194, 14,251,191, 44,213,105,190,165,188,109, 64,190, 81, 55,191,
-107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 49, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,239, 13,155, 62, 40, 17,234, 62, 92,128, 13, 62,226,130,208, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,102, 47, 46,192, 64,212, 45, 63, 61, 35,127, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 50, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 74, 31,165, 62,207,208, 37, 63, 74,227,141, 60, 8, 28, 76, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 10,203, 83,191,133, 15, 29,192,237, 82, 42, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 51, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 21,150,239, 61,130,193, 24, 62, 46, 71,217, 62,141,114,158, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 47, 71,102, 63, 16, 13, 44,191, 24,187,156, 64,190, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,201,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 52, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,178,206, 13, 63,144,101,237, 60, 16,227,198, 60, 16, 30,201, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,140,210,252, 62,216, 58, 44,191, 98,217,149, 64,192, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,234,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 53, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,235,174, 4, 63,125,216,156, 61,114,228,115, 61,124,239,176, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,181,210, 46,192, 59, 4,135,191,164, 99, 44, 64,190, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 54, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,154, 69,201, 61, 74,143, 3, 63,155, 10,162, 62,186, 21,146, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 64,235, 64, 60,203,210,147, 63,205, 32,185, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 55, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,135,168,109, 63, 87, 44,112, 61,106, 72,115, 59,214, 90, 24, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,160,185, 0,192,197,235, 38,192,182,221,245, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 56, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 85,123,103, 61,230, 65, 90, 62, 33,215, 29, 63,124, 5,233, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,132,118,247,191, 87, 66, 8,192, 93, 88, 20, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 58, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 15,245,186, 61,252,211,140, 62,237,184,252, 62,164,107, 15, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 96,252, 2,190,189, 32, 63,192,249,176, 40, 64,190, 81, 55,191,
-107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 59, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,109,251,141, 61,209, 15,135, 61,152,122,212, 62,150, 66,230, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,186, 37, 60,192,209, 36, 19,192,200,102,212, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 60, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,144,146,141, 59, 24,189,182, 62, 12, 24, 34, 63,242, 33,183, 59,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 62,165,155, 63, 35,188,200,191,156,201,140, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 61, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 54,112,182, 62,156,202, 2, 61, 65,146, 40, 61, 24, 18, 18, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,150, 48, 1, 63,133, 14,211, 62,120,209,175, 64,190, 81, 55,191,
-107,243, 71,191,102,237, 42, 63,235,163,214, 62,200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 62, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 26, 61, 76, 63,214,234,171, 60,230,187, 47, 60,126,146, 46, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,196,144, 98, 62, 62,190,112,191,153,224,138, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 63, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 51,212,220, 62, 49, 96,238, 61, 1,246,205, 61, 64, 22,180, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 80,243, 2,192, 18, 84, 91,191,110, 0, 77, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 64, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,112,143, 79, 62, 13, 36,220, 62,207,171,119, 62,168,124, 0, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,228, 81, 34, 62,178, 55, 39,192, 87, 36, 68, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 65, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,144, 72,244, 61,152, 98,173, 61, 16,243,154, 62, 38,162,252, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,226,206,132,191,153,157,254,191, 61, 78, 57, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 67, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 49,138, 35, 62,237,209, 85, 62,126, 75,186, 62,113, 6,137, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,228,163,237, 62, 55, 20, 58,192, 9,122, 64, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 68, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,187,215,163, 61, 90,207, 92, 61,188,248,152, 62,182, 59, 17, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,202, 59,148,191,188,242, 56,191,189,111,113, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 69, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 42,204,169, 62,204,195,154, 62,146,225, 51, 62,125,254, 66, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 34,179,252,191, 86,102,184,191,169,174, 51, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 70, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 46,210, 21, 62,250, 32,186, 62,195,126,178, 62, 85,238, 16, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 1,244, 77,192, 51, 52,163,190, 30,234, 62, 64,190, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 71, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 89,246,198, 61, 30,130, 46, 63,223,241, 54, 62,221, 41, 46, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,255, 27,122, 63,179,229,133,191, 66, 39,149, 64,190, 81, 55,191,
-107,243, 71,191,102,237, 42, 63,235,163,214, 62,200,206,183,190,205,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 72, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,216, 4,239, 62,235,100, 21, 61,174, 73, 20, 61, 83,197,235, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 20, 66,151,191,208,139, 62,192, 98,118, 5, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 73, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,212,101,120, 61, 72, 26,221, 61,158, 82, 22, 63,241, 14,122, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,224, 63, 46,190,222,105,107,191,198,191,132, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,201,206,183,190,200,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 74, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 89,238,204, 62, 10, 90, 39, 62,123,156, 6, 62, 98, 22,156, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,250,148,234,190, 11,179, 97,192, 16,215, 3, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 76, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,251, 26,119, 60, 34,207,150, 60,170,176, 20, 63,225,120,197, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,202,177,135,191,150,220, 86,192,144, 9,239, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 77, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 87,169, 5, 61,120,116, 92, 61,179,253, 38, 63,225,192,133, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,213,105,108,192,125,145,223, 62,192,182, 82, 64,190, 81, 55,191,
-107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 78, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,206, 82,204, 61, 44,113, 89, 63, 63, 63, 23, 61,220, 33,100, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 76, 23,243, 62, 46,133,166,191, 78,153,134, 64,192, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,234,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 79, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,159, 2,190, 62, 29,141,193, 61,214, 93,214, 61,164, 2,220, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,130,192,214,190,182, 57, 73,192,175, 83, 23, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 80, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,211,103, 84, 61, 92,194,115, 61,148,216,253, 62, 41, 34,201, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,122, 4,133,192,109,136,128, 62,136, 58, 58, 64,190, 81, 55,191,
-107,243, 71,191, 98,237, 42, 63,235,163,214, 62,198,206,183,190,206,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 81, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 70, 80,156, 58,142,100,108, 63, 15, 72,153, 61,116, 35, 17, 58,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,132, 40, 12, 62,102, 32, 1,192,222,178, 95, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 82, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,223,196, 88, 62,134, 94,237, 61,141, 5, 97, 62, 43,195,231, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,211,109, 80, 63, 96,210, 20,192,246,253,103, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 83, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 69,196, 53, 62,136,184,135, 61,240,250, 35, 62, 34,153, 24, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,240,142,147,191, 43, 7,166,190, 61, 69,130, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 85, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 56,243,206, 62,109,170,159, 62,224,145, 2, 62,211, 50, 32, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 2,254, 89,191,195,197, 85,192,176,197,254, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 86, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,111, 3, 11, 61,241, 2, 76, 61,231,181, 28, 63,103,179,155, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 24, 46,253,191,200,126,214, 61,248, 1,125, 64,190, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 87, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 18,251,181, 62,225,163,242, 62, 90, 98,191, 61,220, 33,158, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,115, 18, 94,192,112, 61, 49, 61, 90,153, 71, 64,190, 81, 55,191,
-109,243, 71,191, 98,237, 42, 63,236,163,214, 62,197,206,183,190,202,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 88, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,141,188,190, 61,118,157, 68, 63,105,119,224, 61,112,129,239, 60,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 38, 34,141,191,222,140, 39,192,182, 55, 25, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 89, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,122, 6,189, 61, 58,195, 23, 62, 6,114,254, 62,189,106,134, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,149, 14, 63,192, 64,204,165,191, 12, 96, 24, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 90, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 14, 67, 83, 61,192,186, 4, 63, 39,206,197, 62,178,159, 50, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,183,180, 22,192,126,173, 4,192,240,189, 8, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 91, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,133, 49,131, 61,130, 33,167, 62,160,225, 5, 63,124, 59,177, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 35,160, 97, 63,129,220,163,191,194,248,141, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 92, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 78,174,206, 62, 68,159, 93, 61,160, 84,118, 61, 54,211,246, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 4,223, 18,192,155,169,140,191,151, 18, 57, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 94, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,245, 96, 21, 62, 35,104,227, 62, 83, 62,154, 62, 64,164,222, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,100,193,179,191,251,111, 78,192,166, 64,228, 63,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 95, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 37,242, 35, 61,204,214,171, 61,175, 25, 46, 63, 82,177, 72, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 93, 90,124,191,113, 48,212,191, 56,208, 74, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 96, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,187,178, 81, 62,176, 57,108, 62, 93,177,153, 62,108, 88,135, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,251,231, 33,192,132, 2, 59,191, 78,162, 66, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 97, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,217, 15, 30, 62,227,209, 4, 63,178,148,117, 62,218, 39,178, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 2,185,138, 63,191,128, 41,192,139,193, 97, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 98, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 0,196,250, 61, 79,120, 62, 61,195, 12, 31, 62,202,252, 44, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,242, 63,243,190, 86,176,159,191,245,150,111, 64,190, 81, 55,191,
-109,243, 71,191,100,237, 42, 63,234,163,214, 62,200,206,183,190,199,137, 61,190,158, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 99, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255,217, 77,158, 62, 43,131, 72, 62,119,208, 68, 62, 86, 8,155, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0,198,178, 48,191,138, 39, 52, 62, 39,252,149, 64,190, 81, 55,191,
-107,243, 71,191,100,237, 42, 63,235,163,214, 62,198,206,183,190,203,137, 61,190,157, 38, 80,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,100, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,200, 66, 0, 0,200, 66, 0, 0, 0, 0,255,255,255,255, 62, 71, 19, 63,111,215,107, 62, 63, 71,138, 61,243,231, 1, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,189, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-203, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 31,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72,190, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 27,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,191, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186, 63,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,251,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,142,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136,192, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 82,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187,255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 8,127, 35,188,255, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188, 15,224,124, 61,
-123,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,171, 20,227,188, 15,143,197, 61, 80, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,136,127, 35,189, 15, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 43,138, 94,189,151,155, 65, 62,182,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 31,224,124, 62,
-139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,193, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,243, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 15, 85,145,188,251,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 5,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,180,127, 35,189, 8, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,142,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200,194, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 82,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-200,126, 35,188,247, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,135, 84,145,188, 7,224,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,107, 20,227,188, 11,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,104,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
-251,137, 94,189,145,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,231, 84,145,189, 27,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,195, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 11, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8,197, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188,247, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,251,223,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 5,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 8, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 75,138, 94,189,142,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 23,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,198, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 15,224,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 43, 21,227,188, 18,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 15, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,152,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 34,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72,199, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,223, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-132,127, 35,188, 3, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,252, 84,145,188, 19,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,207, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,169,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 50,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 31,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,200, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,143,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,
-186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,250, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 4,224,124, 61,124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 11,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,
-163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 43,138, 94,189,146,155, 65, 62,183,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 26,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136,201, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 87,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,199, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 8,128, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188,255,223,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 11,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,192,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 75,138, 94,189,145,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 25,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,202, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,239,223,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 3, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,135,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 17,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200,203, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 71, 84,145,186,239,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-120,127, 35,188, 2, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188, 17,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,165,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 48,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 28,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,204, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 43, 21,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 7, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,143,155, 65, 62,186,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 23,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8,206, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187,255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188, 3, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 17,224,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,211, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 53,138, 94,189,148,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 10, 85,145,189, 29,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,207, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 43, 21,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 7, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 83,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 27, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72,208, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 23,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 67,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 27,224,124, 62,
-143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,209, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,247,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 5, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,138,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 19,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136,210, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 8,128, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 15,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 83,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 27, 85,145,189, 23,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,211, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187,223,223,124, 60,
-189, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,247, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 7,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 11,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,145,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200,212, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188,247, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 7,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 11,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 43,138, 94,189,145,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 25,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,213, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-135, 84,145,186, 63,224,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187, 55,224,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,152,127, 35,188, 17, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 30,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-203, 20,227,188, 24,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,164,127, 35,189, 18, 62, 14, 62,
-163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 55,138, 94,189,155,155, 65, 62,183,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 9, 85,145,189, 36,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8,215, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,255,223,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 67,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 19,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,216, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,
-186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 15,224,124, 61,124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 11, 21,227,188, 15,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 15, 62, 14, 62,
-163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,151,155, 65, 62,182,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 31,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72,217, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-200,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 23,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 27,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,218, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,191,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,247,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188, 0, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 14,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-171, 20,227,188, 13,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 13, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 27,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0,251, 84,145,189, 27,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136,219, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-184,127, 35,188,247, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 31, 85,145,188,255,223,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,243, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,188,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 67,138, 94,189,141,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 17, 85,145,189, 22,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,220, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-219, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200,221, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 71, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 23,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,211, 20,227,188, 19,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,170,127, 35,189, 15, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 56,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 13, 85,145,189, 25,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,222, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187, 63,224,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188, 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-171, 20,227,188, 7,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 11, 62, 14, 62,
-163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 27,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 19,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8,224, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 8,128, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,103, 85,145,188,255,223,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 75, 21,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, 7, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 91,138, 94,189,143,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 23,224,124, 62,
-143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,225, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 31,224,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 43, 21,227,188, 27,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 19, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,155,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 35,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72,226, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-104,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,187, 20,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 35,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 23,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,227, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 15,224,124, 61,128,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 11, 21,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 13, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 29,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136,228, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 31,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188, 7, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 23,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 19,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 75,138, 94,189,149,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 33,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,229, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-135, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,215, 84,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,144,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,251, 84,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-207, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,166,127, 35,189, 13, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 45,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 8, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200,230, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-200,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,255,223,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 91,138, 94,189,139,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 15,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,231, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 13, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,145,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 29,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8,233, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-200,127, 35,188,255, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 15,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 75,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 23,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,234, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 82,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 83,145,187,191,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,126, 35,188,239, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,135, 84,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 75, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0, 88,127, 35,189,255, 61, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,219,137, 94,189,135,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0,223, 84,145,189, 15,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72,235, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,255,223,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 3, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 67,138, 94,189,137,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 15,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,236, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,127,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,
-186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,251, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 3,224,124, 61,124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 8,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 10, 62, 14, 62,
-163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 27,138, 94,189,143,155, 65, 62,183,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, 24,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136,237, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,224,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 63,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 8,128, 35,188, 15, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 31,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 27,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, 23, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 91,138, 94,189,157,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 37,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,238, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 87,145,186, 15,224,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 19,224,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,232,127, 35,188, 12, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 28,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 11, 21,227,188, 25,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 19, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,155,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 35,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200,239, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186, 63,224,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188, 3, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 19,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 51,138, 94,189,148,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 29,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,240, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186, 33,224,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 29,224,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 11, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 24,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 43, 21,227,188, 24,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 18, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,157,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 37,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8,242, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-200,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 15,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 75,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 27, 85,145,189, 23,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,243, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 82,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,127, 35,188, 7, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,167, 84,145,188, 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-139, 20,227,188, 15,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,136,127, 35,189, 11, 62, 14, 62,
-163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 11,138, 94,189,143,155, 65, 62,183,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, 23,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72,244, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,215, 84,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-152,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 15,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,223, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,174,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 57,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 12, 85,145,189, 27,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,245, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 15, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,147,155, 65, 62,186,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 31,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136,246, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,191,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 15,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 23,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 17,143,197, 61, 83, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 14, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 91,138, 94,189,146,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 26,224,124, 62,
-143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168,247, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 11, 21,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 19,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200,248, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,255,223,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,251, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,192,127, 35,189, 6, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 67,138, 94,189,140,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 21,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232,249, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,127,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,247, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,141,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8,251, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-200,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 15,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 75,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 23,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40,252, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,255,224,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, 63,224,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188, 47, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 63,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-203, 20,227,188, 47,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 27, 62, 14, 62,
-163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 43,138, 94,189,167,155, 65, 62,183,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 51,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72,253, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186, 31,224,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187, 31,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-152,127, 35,188, 16, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 31,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,215, 20,227,188, 22,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,172,127, 35,189, 17, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 53,138, 94,189,151,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 9, 85,145,189, 32,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104,254, 25, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 7, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136,255, 25, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-104,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188,247,223,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,171, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 35,138, 94,189,145,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 26,224,124, 62,
-140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 0, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200, 1, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,191, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,229, 84,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-154,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,255,223,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,232, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,182,127, 35,189, 7, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 65,138, 94,189,139,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 16, 85,145,189, 19,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 2, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187, 31,224,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 31,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8, 4, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,224,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, 63,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 72,127, 35,188, 47, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 47,224,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,171, 20,227,188, 47,143,197, 61, 80, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 27, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 27,138, 94,189,167,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, 49,224,124, 62,
-139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 5, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187,191,223,124, 60,
-186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,167, 84,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-107, 20,227,188, 11,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,104,127, 35,189, 9, 62, 14, 62,
-163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,251,137, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0,239, 84,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72, 6, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 72,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,171, 20,227,188, 31,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 11,138, 94,189,159,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, 39,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 7, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,
-186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,192,127, 35,189, 7, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 19,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136, 8, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,247,223,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 5, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,138,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 19,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 9, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-203, 20,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200, 10, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187, 15,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188, 19,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 17,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,164,127, 35,189, 14, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 51,138, 94,189,148,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 30,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 11, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 83,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 84,145,187,191,223,124, 60,
-186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 40,127, 35,188,223, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188,239,223,124, 61,124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-155, 20,227,188,255,142,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,128,127, 35,189,255, 61, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 11,138, 94,189,131,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0,243, 84,145,189, 15,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8, 13, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 72,127, 35,188,239, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188,255,223,124, 61,
-124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,139, 20,227,188,247,142,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,120,127, 35,189,255, 61, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
-251,137, 94,189,131,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,239, 84,145,189, 11,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 14, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 11, 21,227,188, 23,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 15, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 39, 85,145,189, 27,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72, 15, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,222,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 8,128, 35,188,239, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,103, 85,145,188,255,223,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 43, 21,227,188,255,142,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 3, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 75,138, 94,189,135,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 19,224,124, 62,
-143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 16, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 11, 21,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 15, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,151,155, 65, 62,186,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 27,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136, 17, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188,231, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,215, 84,145,188,231,223,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,171, 20,227,188,247,142,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 1, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 27,138, 94,189,135,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,251, 84,145,189, 15,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 18, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 83,145,186,191,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,239,223,124, 60,
-186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,104,127, 35,188, 3, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-187, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 11, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 35,138, 94,189,145,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 25,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200, 19, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186, 63,224,124, 59, 56,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 47,224,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188, 15, 62, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 29,224,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 24,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 17, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,155,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 35,224,124, 62,
-140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 20, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 23,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 43, 21,227,188, 23,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, 15, 62, 14, 62,
-166,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,150,155, 65, 62,186,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 30,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8, 22, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 15,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-200,127, 35,188, 11, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 23,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 17, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 75,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 33,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 23, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,191,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 15,224,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 19,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 17,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 14, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 34,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72, 24, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,103, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,191, 84,145,187, 63,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-144,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 3, 85,145,188, 15,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,223, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,174,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 63,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 27,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 25, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,191,223,124, 59, 59,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 3,224,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 4, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 18,224,124, 61,128,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 43, 21,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 14, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,149,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 26,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136, 26, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,247, 84,145,188,247,223,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,160,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 51,138, 94,189,145,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 25,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 27, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 87,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 85,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 40,128, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 27, 21,227,188, 31,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,208,127, 35,189, 27, 62, 14, 62,
-163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,163,155, 65, 62,183,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 27, 85,145,189, 43,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200, 28, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 15,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 75,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 27,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 29, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,207,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,244, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,254,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 11, 21,227,188, 5,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 9, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 25,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8, 31, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,241,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188,253, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 11,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 13,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 12, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,146,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 27,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 32, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-199, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,247, 84,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,160,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 11, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-231, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,178,127, 35,189, 7, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 61,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 14, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72, 33, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,239,223,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 3, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 75,138, 94,189,137,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 17,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 34, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,215, 84,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,140,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,251, 84,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-219, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,178,127, 35,189, 15, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 61,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136, 35, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186, 13,224,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 31,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188, 9, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 22,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 16,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 14, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,148,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 30,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 36, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-199, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187,159,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,144,127, 35,188,231, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,239,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-217, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,175,127, 35,189, 5, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 56,138, 94,189,140,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 21,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200, 37, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,224,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 63,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 72,128, 35,188, 31, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,103, 85,145,188, 47,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 75, 21,227,188, 39,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,248,127, 35,189, 27, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
-139,138, 94,189,163,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 55, 85,145,189, 43,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 38, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,152,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-219, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,139,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 19,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8, 40, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 71, 84,145,187,191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 72,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188,255,223,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,187, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 3, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 35,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 19,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 41, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187,255,223,124, 60,
-186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-251, 20,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 19,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72, 42, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,199, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-152,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 3, 85,145,188, 15,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,180,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 63,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 27,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 43, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187, 31,224,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 39,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-227, 20,227,188, 33,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 24, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,162,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 17, 85,145,189, 45,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136, 44, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 19,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 45, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,152,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-219, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 9, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200, 46, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 82,145,186,223,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187,235,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-200,126, 35,188,251, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,167, 84,145,188, 9,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,107, 20,227,188, 11,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,120,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
-251,137, 94,189,145,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,239, 84,145,189, 28,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 47, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,222,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,191,223,124, 60,
-186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 3, 21,227,188, 7,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,196,127, 35,189, 7, 62, 14, 62,
-163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 87,138, 94,189,143,155, 65, 62,183,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 29, 85,145,189, 23,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8, 49, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,191,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 84,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 72,127, 35,188,251, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188, 11,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,155, 20,227,188, 13,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,136,127, 35,189, 12, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 19,138, 94,189,144,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, 24,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 50, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187, 31,224,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188, 7, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 11, 21,227,188, 11,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 11, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 91,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72, 51, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,239,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188, 3, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 17,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,149,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 29,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 52, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-135, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,103, 85,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,248,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 55, 85,145,188, 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 35, 21,227,188, 15,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,220,127, 35,189, 15, 62, 14, 62,
-162,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,107,138, 94,189,151,155, 65, 62,182,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 37, 85,145,189, 31,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136, 53, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,103, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-184,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 31,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 31,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,180,127, 35,189, 23, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 71,138, 94,189,159,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 18, 85,145,189, 43,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 54, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,222,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 15, 85,145,188, 15,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-243, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 11, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 83,138, 94,189,151,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 25, 85,145,189, 27,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200, 55, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,222,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,191,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 8,128, 35,188,239, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188,255,223,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 75, 21,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, 7, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
-107,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 23,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 56, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 63,224,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-219, 20,227,188, 23,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 15, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 31,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8, 58, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-200,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 15,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 31,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 59, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,143,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,
-186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,251, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 2,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 11,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,
-163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 43,138, 94,189,145,155, 65, 62,183,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 27,224,124, 62,139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72, 60, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 15,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 67,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 27,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 61, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187,191,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,152,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 15, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136, 62, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,191,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 8,127, 35,188,239, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188,239,223,124, 61,
-124,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,139, 20,227,188,247,142,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,120,127, 35,189,251, 61, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 11,138, 94,189,131,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,239, 84,145,189, 11,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 63, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,191,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,176,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 19, 85,145,188,239,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-231, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,179,127, 35,189, 5, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 65,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 16, 85,145,189, 21,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200, 64, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-104,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,239, 84,145,188, 15,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 11,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,164,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 51,138, 94,189,145,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 25,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 65, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,207,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,243, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,251,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 7, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,141,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8, 67, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 51,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 27,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 68, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,247, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 6, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,141,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 22,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72, 69, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 71, 85,145,187, 13,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188, 5, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 19,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,227, 20,227,188, 17,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 14, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,149,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 13, 85,145,189, 31,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 70, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-151, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,219, 84,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,140,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,249, 84,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-205, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 51,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 10, 85,145,189, 27,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136, 71, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 8,128, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 15,224,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 91,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 27, 85,145,189, 23,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 72, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-175, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,224, 84,145,187,191,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,142,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 1, 85,145,188,239,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-207, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,164,127, 35,189, 3, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 42,138, 94,189,135,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 4, 85,145,189, 15,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200, 73, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 31,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-200,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 23,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,147,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 31,224,124, 62,
-143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 74, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,127,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,223,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,176,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 19, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-231, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,178,127, 35,189, 9, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 63,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 24,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8, 76, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 31,224,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 19,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 75,138, 94,189,151,155, 65, 62,186,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 31,224,124, 62,
-143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 77, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188, 7, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-203, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 15, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 31,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72, 78, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,255,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 72,127, 35,188,255, 61, 14, 61,217,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,
-123,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 80, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,147,155, 65, 62,182,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 7, 85,145,189, 27,224,124, 62,
-139, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 79, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 71, 85,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 39, 85,145,187,255,223,124, 60,
-186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,144,127, 35,188, 15, 62, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 31,224,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-223, 20,227,188, 31,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 23, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 63,138, 94,189,161,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 14, 85,145,189, 43,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136, 80, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187, 15,224,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188, 15,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 17,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,150,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 30,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 81, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 84,145,186,255,223,124, 59, 56,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,255,223,124, 60,
-185, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 72,127, 35,188,255, 61, 14, 61,217,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,231, 84,145,188,255,223,124, 61,123,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-203, 20,227,188, 15,143,197, 61, 80, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,152,127, 35,189, 7, 62, 14, 62,
-163,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 43,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0,255, 84,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200, 82, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 85,145,186,127,223,124, 59, 56,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188,247, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188,255,223,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 7, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,141,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 23,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 83, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188,239, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188,255,223,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 3,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 5, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,139,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 21,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8, 85, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 59,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,189, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-200,127, 35,188, 1, 62, 14, 61,221,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 16,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,235, 20,227,188, 15,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 13, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 67,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 30,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 86, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,223,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 7,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-203, 20,227,188, 11,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 11, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 59,138, 94,189,145,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 29,224,124, 62,143, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72, 87, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,191,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 85,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 8,128, 35,188, 11, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 39, 85,145,188, 19,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0, 11, 21,227,188, 21,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,200,127, 35,189, 17, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 91,138, 94,189,153,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 31, 85,145,189, 33,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 88, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 86,145,187,255,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0, 8,128, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 71, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
- 43, 21,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,216,127, 35,189, 11, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,107,138, 94,189,147,155, 65, 62,183,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 39, 85,145,189, 27,224,124, 62,140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136, 89, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 86,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-200,127, 35,188, 7, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 15,224,124, 61,
-127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 13, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 43,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 15, 85,145,189, 31,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 90, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,255,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,136,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-215, 20,227,188, 7,143,197, 61, 82, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,174,127, 35,189, 11, 62, 14, 62,
-165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 57,138, 94,189,143,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 13, 85,145,189, 23,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200, 91, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187,255,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-168,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 15, 85,145,188, 31,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,211, 20,227,188, 23,143,197, 61, 82, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,165,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 51,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 11, 85,145,189, 27,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,232, 92, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,247, 84,145,187,191,223,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,152,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 11, 85,145,188,255,223,124, 61,125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-227, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,180,127, 35,189, 7, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 73,138, 94,189,143,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 20, 85,145,189, 23,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 8, 94, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,231, 84,145,187,255,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,255, 84,145,188, 15,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,211, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 15, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 55,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 12, 85,145,189, 27,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0, 40, 95, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 86,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187, 63,224,124, 60,
-187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,200,127, 35,188, 15, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 31,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-235, 20,227,188, 23,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,184,127, 35,189, 15, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 75,138, 94,189,151,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 35,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0, 72, 96, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,135, 84,145,186, 15,224,124, 59, 58,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,199, 84,145,187,251,223,124, 60,188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-152,127, 35,188, 8, 62, 14, 61,220,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188, 22,224,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,219, 20,227,188, 17,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,172,127, 35,189, 15, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 51,138, 94,189,148,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 9, 85,145,189, 30,224,124, 62,
-141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,104, 97, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 7, 85,145,186,255,223,124, 59, 58,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,168,127, 35,188,255, 61, 14, 61,220,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0, 23, 85,145,188, 15,224,124, 61,126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-219, 20,227,188, 15,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,176,127, 35,189, 11, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 67,138, 94,189,147,155, 65, 62,184,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 19, 85,145,189, 27,224,124, 62,141, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,136, 98, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 84,145,186,255,222,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0, 7, 85,145,187,191,223,124, 60,187, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
-136,127, 35,188,239, 61, 14, 61,219,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0, 7, 85,145,188,239,223,124, 61,
-126,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,203, 20,227,188,255,142,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,168,127, 35,189, 3, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 59,138, 94,189,137,155, 65, 62,184,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0, 23, 85,145,189, 17,224,124, 62,
-142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,168, 99, 26, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
-111, 84,145,186,255,223,124, 59, 57,146,131, 62, 0, 0, 72, 65, 0, 0, 96, 63, 0, 0, 0, 0,173, 84,145,187,255,223,124, 60,
-188, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,116,127, 35,188,255, 61, 14, 61,221,123, 65, 63, 0, 0, 22, 66,
- 0, 0, 32, 63, 0, 0, 0, 0,245, 84,145,188, 15,224,124, 61,127,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,
-199, 20,227,188, 13,143,197, 61, 81, 2,158, 63, 0, 0,122, 66, 0, 0,192, 62, 0, 0, 0, 0,163,127, 35,189, 13, 62, 14, 62,
-164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0, 47,138, 94,189,147,155, 65, 62,185,177,216, 63, 0, 0,175, 66,
- 0, 0, 0, 62, 0, 0, 0, 0, 6, 85,145,189, 28,224,124, 62,142, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,216, 0, 0, 0,200,100, 26, 4, 0, 0, 0, 0,127, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 7, 82,145,186,127,223,124, 59, 57,146,131, 62, 0, 0, 72, 65,
- 0, 0, 96, 63, 0, 0, 0, 0,135, 84,145,187,223,223,124, 60,186, 71, 2, 63, 0, 0,200, 65, 0, 0, 64, 63, 0, 0, 0, 0,
- 8,127, 35,188,247, 61, 14, 61,218,123, 65, 63, 0, 0, 22, 66, 0, 0, 32, 63, 0, 0, 0, 0,199, 84,145,188, 7,224,124, 61,
-125,101,127, 63, 0, 0, 72, 66, 0, 0, 0, 63, 0, 0, 0, 0,139, 20,227,188, 7,143,197, 61, 81, 2,158, 63, 0, 0,122, 66,
- 0, 0,192, 62, 0, 0, 0, 0,136,127, 35,189, 11, 62, 14, 62,164,172,187, 63, 0, 0,150, 66, 0, 0,128, 62, 0, 0, 0, 0,
- 27,138, 94,189,147,155, 65, 62,183,177,216, 63, 0, 0,175, 66, 0, 0, 0, 62, 0, 0, 0, 0,247, 84,145,189, 28,224,124, 62,
-140, 17,245, 63, 0, 0,200, 66, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 5, 0, 0,232,101, 26, 4, 0, 0, 0, 0,
-136, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0, 88,107, 26, 4, 0, 0, 0, 0,
-108, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 23, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 32, 49, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 73, 25, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 79, 66, 0, 0,112, 5, 0, 0,
- 56,108, 26, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0,248,113, 26, 4, 0, 0, 0, 0, 56, 66, 25, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,112,114,101,118,105,101,119,108, 97,109,112, 0, 0, 0,
- 0, 0, 0, 0, 0, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,116, 24, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,197,211,188, 76,229, 59, 65,208,106,184, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,247,215, 98,191, 71, 11, 72, 63,
-230,248, 6, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 14, 29, 63,149,225,182, 62, 84, 76, 52,191, 0, 0, 0, 0,
- 22, 40, 74,191,201, 74,139, 62,228,198, 12,191, 0, 0, 0, 0, 84,213,157,187,151,190,100, 63,145,223,229, 62, 0, 0, 0, 0,
-192,197,211,188, 76,229, 59, 65,208,106,184, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,147, 39, 25, 51, 43, 47, 63,179, 0, 0, 0, 0,
- 9,108,247, 50, 0, 0,128, 63, 26, 92,142,178, 0, 0, 0, 0, 43, 4,114,179, 32, 59,141,178, 1, 0,128, 63, 0, 0, 0, 0,
-135,255,127,177,130,214, 10, 40, 1, 0, 0,181, 0, 0,128, 63,214, 14, 29, 63, 22, 40, 74,191,113,210,157,187, 0, 0, 0, 0,
- 85, 76, 52,191,228,198, 12,191,137,223,229, 62, 0, 0, 0, 0,154,225,182,190,205, 74,139,190,157,190,100,191, 0, 0, 0, 0,
-213, 36,158,192,107,186,110,192,102, 43,169,193, 0, 0,128, 63,214, 14, 29, 63, 22, 40, 74,191,113,210,157,187, 0, 0, 0, 0,
- 85, 76, 52,191,228,198, 12,191,137,223,229, 62, 0, 0, 0, 0,154,225,182,190,205, 74,139,190,157,190,100,191, 0, 0, 0, 0,
-213, 36,158,192,107,186,110,192,102, 43,169,193, 0, 0,128, 63, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 0, 1, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0,
- 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 79, 66, 0, 0,112, 5, 0, 0,248,113, 26, 4, 0, 0, 0, 0,129, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 56,108, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66,116,101,120,116,117,114,
-101, 0,114,101,118,105,101,119, 46, 48, 48, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,120,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-184,119, 26, 4, 0, 0, 0, 0, 8,120, 26, 4, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 61, 16,183,188, 21,204,103,191,
- 48,234,228, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 39,155, 64,
-153, 39,155, 64,153, 39,155, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-218, 15,201, 63, 0, 0,192, 37,255,255,255, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153, 39,155, 64,152, 39, 27, 38,
-102,187,232,166, 0, 0, 0, 0,102,187,232, 38,157,134,196, 52,153, 39,155, 64, 0, 0, 0, 0,154, 39, 27, 38,153, 39,155,192,
-157,134,196, 52, 0, 0, 0, 0, 61, 16,183,188, 21,204,103,191, 48,234,228, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,236, 48,206,152,
- 9, 66, 41, 24, 0, 0, 0, 0,216, 55, 60,152, 0, 0,128, 63, 88,133,105,166, 0, 0, 0, 0,226,159, 91,151, 64,218, 93, 38,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 25, 50, 83, 62,147,101,158, 36,
- 27, 50,211, 35, 0, 0, 0, 0,147,101,158,164, 25, 50, 83, 62,158, 59,174, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,175,
- 25, 50, 83, 62, 0, 0, 0, 0,236,251, 33, 59,135, 37, 40, 59,118, 71,238, 63, 0, 0,128, 63, 25, 50, 83, 62,147,101,158, 36,
- 27, 50,211, 35, 0, 0, 0, 0,147,101,158,164, 25, 50, 83, 62,158, 59,174, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,175,
- 25, 50, 83, 62, 0, 0, 0, 0,236,251, 33, 59,135, 37, 40, 59,118, 71,238, 63, 0, 0,128, 63, 32, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,236, 81, 56, 62,
- 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 5, 4, 1,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,184,119, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 8,120, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 77, 65, 0, 0,128, 3, 0, 0, 88,120, 26, 4, 0, 0, 0, 0, 39, 0, 0, 0, 1, 0, 0, 0,104,142, 26, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 8, 0,168, 69,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 99,104,
-101, 99,107,101,114,100, 97,114,107, 0, 0, 0, 97,116,101,114,105, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 0, 0, 0, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
-128,192,224, 60,224,181,224, 60,224,181,224, 60, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,154,153, 89, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0,
- 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 2, 0, 2, 0, 1, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 4, 0, 67, 0, 64, 1, 67, 0, 64, 1, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63,
- 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 40,124, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,125, 26, 4, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,
-111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 56, 1, 0, 0, 40,124, 26, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 16, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,192, 63,
- 1, 0,192, 63, 1, 0,192, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 23,183,209, 56,184,177,209, 56,184,177,209, 56, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0,168,125, 26, 4, 0, 0, 0, 0, 12, 0, 0, 0,
- 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 24,126, 26, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 24,126, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 51, 1, 1, 1, 51, 2, 2, 2,153,
- 2, 2, 2,153, 3, 3, 3,153, 2, 2, 2,102, 2, 2, 2,102, 1, 1, 1, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 51, 2, 2, 2,153, 3, 3, 3,204, 5, 5, 5,255, 5, 5, 5,255, 5, 5, 5,255,
- 5, 5, 5,255, 5, 5, 5,255, 5, 5, 5,255, 5, 5, 5,255, 5, 5, 5,255, 5, 5, 5,255, 2, 2, 2,102, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 1, 1, 51, 2, 2, 2,153, 4, 4, 4,255, 5, 5, 5,255, 5, 5, 5,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255,
- 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 5, 5, 5,255,
- 4, 4, 4,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,102,
- 4, 4, 4,204, 5, 5, 5,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 7, 7, 7,255, 7, 7, 7,255,
- 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255,
- 6, 6, 6,255, 5, 5, 5,255, 2, 2, 2,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,153, 5, 5, 5,255,
- 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255,
- 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255,
- 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 3, 3, 3,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,102, 5, 5, 5,255, 6, 6, 6,255,
- 6, 6, 6,255, 7, 7, 7,255, 7, 7, 7,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255,
- 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255,
- 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 3, 3, 3,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,102, 5, 5, 5,255, 6, 6, 6,255, 7, 7, 7,255,
- 7, 7, 7,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255,
- 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255,
- 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 2, 2, 2,102, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4,204, 6, 6, 6,255, 7, 7, 7,255, 7, 7, 7,255,
- 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255,
- 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255,
- 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, 6, 6, 6,255, 1, 1, 1, 51, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,102, 6, 6, 6,255, 7, 7, 7,255, 8, 8, 8,255, 8, 8, 8,255,
- 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255,
- 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255,
- 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, 5, 5, 5,204, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6,255, 7, 7, 7,255, 8, 8, 8,255, 8, 8, 8,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255,
- 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255,
- 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, 2, 2, 2,102,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,102, 7, 7, 7,255, 8, 8, 8,255, 8, 8, 8,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255,
- 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255, 5, 5, 5,204,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5,204, 7, 7, 7,255, 8, 8, 8,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255,
- 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255, 6, 6, 6,255,
- 0, 0, 0, 0, 2, 2, 2,102, 7, 7, 7,255, 8, 8, 8,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255,
- 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255,
- 3, 3, 3,102, 2, 2, 2,102, 7, 7, 7,255, 8, 8, 8,255, 9, 9, 9,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255,
- 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255,
- 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 6, 6, 6,255,
- 4, 4, 4,153, 3, 3, 3,102, 8, 8, 8,255, 9, 9, 9,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255,
- 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255,
- 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255,
- 5, 5, 5,204, 4, 4, 4,153, 8, 8, 8,255, 9, 9, 9,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255,
- 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255,
- 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255,
- 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255,
- 5, 5, 5,204, 4, 4, 4,153, 9, 9, 9,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255,
- 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255,
- 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255,
- 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255,
- 5, 5, 5,204, 4, 4, 4,153, 9, 9, 9,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255,
- 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255,
- 4, 4, 4,153, 3, 3, 3,102, 9, 9, 9,255, 10, 10, 10,255, 10, 10, 10,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255,
- 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255, 7, 7, 7,255,
- 4, 4, 4,153, 2, 2, 2, 51, 9, 9, 9,255, 10, 10, 10,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255,
- 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255,
- 3, 3, 3,102, 0, 0, 0, 0, 9, 9, 9,255, 10, 10, 10,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 7, 7, 7,255,
- 1, 1, 1, 51, 0, 0, 0, 0, 5, 5, 5,153, 10, 10, 10,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 4, 4, 4,153,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 51, 10, 10, 10,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 4, 4, 4,153,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8,204, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 12, 12, 12,255,
- 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 6, 6, 6,204, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 51, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 12, 12, 12,255,
- 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 7, 7, 7,255, 1, 1, 1, 51, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4,102, 11, 11, 11,255, 11, 11, 11,255, 12, 12, 12,255,
- 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 8, 8, 8,255, 4, 4, 4,153, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6,153, 11, 11, 11,255, 11, 11, 11,255,
- 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 8, 8, 8,255, 5, 5, 5,153, 1, 1, 1, 51, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6,153, 11, 11, 11,255,
- 11, 11, 11,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255,
- 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,255, 6, 6, 6,204, 1, 1, 1, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6,153,
- 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255,
- 9, 9, 9,255, 8, 8, 8,255, 5, 5, 5,153, 1, 1, 1, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255,
- 7, 7, 7,204, 3, 3, 3,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6,153, 8, 8, 8,204, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255, 11, 11, 11,255,
- 11, 11, 11,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 7, 7, 7,204, 3, 3, 3,102,
- 1, 1, 1, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4,102, 6, 6, 6,153, 6, 6, 6,153,
- 8, 8, 8,204, 8, 8, 8,204, 8, 8, 8,204, 5, 5, 5,153, 4, 4, 4,102, 2, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 77, 65, 0, 0,128, 3, 0, 0,104,142, 26, 4, 0, 0, 0, 0, 39, 0, 0, 0, 1, 0, 0, 0,120,164, 26, 4,
- 0, 0, 0, 0, 88,120, 26, 4, 0, 0, 0, 0,168, 1,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 99,104,
-101, 99,107,101,114,108,105,103,104,116, 0, 0, 0, 97,116,101,114,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 0, 0, 0, 52, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 15,153,157, 62, 40,144,157, 62, 40,144,157, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,154,153, 89, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0,
- 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,
- 2, 0, 2, 0, 1, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 4, 0, 67, 0, 64, 1, 67, 0, 64, 1, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63,
- 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 56,146, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,147, 26, 4, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,
-111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 56, 1, 0, 0, 56,146, 26, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 16, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 23,183,209, 56,184,177,209, 56,184,177,209, 56, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0,184,147, 26, 4, 0, 0, 0, 0, 12, 0, 0, 0,
- 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 40,148, 26, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 40,148, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 51, 6, 6, 6, 51, 18, 18, 18,153,
- 19, 19, 19,153, 19, 19, 19,153, 13, 13, 13,102, 13, 13, 13,102, 6, 6, 6, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 51, 18, 18, 18,153, 26, 26, 26,204, 34, 34, 34,255, 35, 35, 35,255, 37, 37, 37,255,
- 38, 38, 38,255, 38, 38, 38,255, 38, 38, 38,255, 38, 38, 38,255, 37, 37, 37,255, 36, 36, 36,255, 15, 15, 15,102, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 5, 5, 51, 18, 18, 18,153, 33, 33, 33,255, 37, 37, 37,255, 40, 40, 40,255, 42, 42, 42,255, 43, 43, 43,255, 44, 44, 44,255,
- 44, 44, 44,255, 45, 45, 45,255, 44, 44, 44,255, 43, 43, 43,255, 43, 43, 43,255, 42, 42, 42,255, 41, 41, 41,255, 40, 40, 40,255,
- 29, 29, 29,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12,102,
- 28, 28, 28,204, 38, 38, 38,255, 42, 42, 42,255, 45, 45, 45,255, 47, 47, 47,255, 48, 48, 48,255, 49, 49, 49,255, 50, 50, 50,255,
- 50, 50, 50,255, 50, 50, 50,255, 50, 50, 50,255, 49, 49, 49,255, 48, 48, 48,255, 47, 47, 47,255, 46, 46, 46,255, 45, 45, 45,255,
- 44, 44, 44,255, 41, 41, 41,255, 16, 16, 16,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18,153, 36, 36, 36,255,
- 42, 42, 42,255, 45, 45, 45,255, 48, 48, 48,255, 51, 51, 51,255, 53, 53, 53,255, 54, 54, 54,255, 55, 55, 55,255, 55, 55, 55,255,
- 56, 56, 56,255, 56, 56, 56,255, 55, 55, 55,255, 55, 55, 55,255, 54, 54, 54,255, 53, 53, 53,255, 52, 52, 52,255, 50, 50, 50,255,
- 48, 48, 48,255, 46, 46, 46,255, 44, 44, 44,255, 24, 24, 24,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14,102, 38, 38, 38,255, 44, 44, 44,255,
- 48, 48, 48,255, 52, 52, 52,255, 54, 54, 54,255, 56, 56, 56,255, 58, 58, 58,255, 59, 59, 59,255, 60, 60, 60,255, 60, 60, 60,255,
- 61, 61, 61,255, 61, 61, 61,255, 60, 60, 60,255, 60, 60, 60,255, 59, 59, 59,255, 58, 58, 58,255, 57, 57, 57,255, 55, 55, 55,255,
- 53, 53, 53,255, 51, 51, 51,255, 48, 48, 48,255, 46, 46, 46,255, 25, 25, 25,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 39, 39, 39,255, 46, 46, 46,255, 50, 50, 50,255,
- 54, 54, 54,255, 57, 57, 57,255, 59, 59, 59,255, 61, 61, 61,255, 63, 63, 63,255, 64, 64, 64,255, 65, 65, 65,255, 65, 65, 65,255,
- 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, 65, 65, 65,255, 64, 64, 64,255, 63, 63, 63,255, 62, 62, 62,255, 60, 60, 60,255,
- 58, 58, 58,255, 56, 56, 56,255, 53, 53, 53,255, 50, 50, 50,255, 47, 47, 47,255, 17, 17, 17,102, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32,204, 46, 46, 46,255, 52, 52, 52,255, 56, 56, 56,255,
- 59, 59, 59,255, 62, 62, 62,255, 64, 64, 64,255, 66, 66, 66,255, 67, 67, 67,255, 69, 69, 69,255, 70, 70, 70,255, 70, 70, 70,255,
- 70, 70, 70,255, 70, 70, 70,255, 70, 70, 70,255, 69, 69, 69,255, 68, 68, 68,255, 68, 68, 68,255, 66, 66, 66,255, 65, 65, 65,255,
- 63, 63, 63,255, 60, 60, 60,255, 58, 58, 58,255, 54, 54, 54,255, 51, 51, 51,255, 47, 47, 47,255, 7, 7, 7, 51, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16,102, 46, 46, 46,255, 52, 52, 52,255, 57, 57, 57,255, 61, 61, 61,255,
- 64, 63, 63,255, 66, 66, 66,255, 69, 69, 69,255, 71, 70, 70,255, 72, 72, 72,255, 73, 73, 73,255, 74, 74, 74,255, 75, 75, 75,255,
- 75, 75, 75,255, 75, 75, 75,255, 75, 74, 74,255, 73, 73, 73,255, 73, 73, 73,255, 72, 72, 72,255, 71, 71, 71,255, 69, 69, 69,255,
- 67, 67, 67,255, 65, 65, 65,255, 62, 62, 62,255, 59, 59, 59,255, 55, 55, 55,255, 52, 52, 52,255, 38, 38, 38,204, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 43, 43,255, 52, 52, 52,255, 57, 57, 57,255, 61, 61, 61,255, 65, 65, 65,255,
- 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255, 75, 75, 75,255, 77, 77, 77,255, 78, 78, 78,255, 79, 78, 78,255, 79, 79, 79,255,
- 79, 79, 79,255, 79, 79, 79,255, 79, 79, 79,255, 78, 78, 78,255, 77, 77, 77,255, 76, 76, 76,255, 75, 75, 75,255, 73, 73, 73,255,
- 71, 71, 71,255, 70, 70, 70,255, 67, 67, 67,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255, 51, 51, 51,255, 18, 18, 18,102,
- 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17,102, 50, 50, 50,255, 56, 56, 56,255, 62, 61, 61,255, 66, 66, 66,255, 69, 69, 69,255,
- 73, 73, 73,255, 75, 75, 75,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 82, 82, 82,255, 83, 83, 83,255, 84, 84, 84,255,
- 84, 84, 84,255, 84, 84, 84,255, 83, 83, 83,255, 83, 83, 83,255, 82, 82, 82,255, 80, 80, 80,255, 79, 79, 79,255, 78, 78, 78,255,
- 77, 77, 77,255, 74, 74, 74,255, 71, 71, 71,255, 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 54, 54, 54,255, 40, 40, 40,204,
- 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 37,204, 55, 55, 55,255, 61, 61, 61,255, 66, 66, 66,255, 70, 70, 70,255, 73, 73, 73,255,
- 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255, 84, 84, 84,255, 85, 85, 85,255, 87, 87, 87,255, 87, 87, 87,255, 88, 88, 88,255,
- 89, 89, 89,255, 88, 88, 88,255, 88, 88, 88,255, 87, 87, 87,255, 88, 88, 88,255, 84, 84, 84,255, 83, 83, 83,255, 83, 83, 83,255,
- 81, 81, 81,255, 79, 79, 79,255, 76, 76, 76,255, 72, 72, 72,255, 68, 68, 68,255, 63, 63, 63,255, 57, 57, 57,255, 52, 52, 52,255,
- 0, 0, 0, 0, 14, 14, 14,102, 50, 50, 50,255, 59, 59, 59,255, 65, 65, 65,255, 70, 70, 70,255, 74, 74, 74,255, 78, 78, 78,255,
- 81, 81, 81,255, 84, 84, 84,255, 86, 86, 86,255, 88, 88, 88,255, 90, 90, 90,255, 91, 91, 91,255, 92, 92, 92,255, 92, 92, 92,255,
- 93, 93, 93,255, 94, 94, 94,255, 93, 93, 93,255, 93, 93, 93,255, 95, 95, 95,255, 90, 90, 90,255, 90, 90, 90,255, 89, 89, 89,255,
- 86, 86, 86,255, 83, 83, 83,255, 80, 80, 80,255, 77, 77, 77,255, 72, 72, 72,255, 67, 67, 67,255, 61, 61, 61,255, 55, 55, 55,255,
- 20, 20, 20,102, 18, 18, 18,102, 54, 54, 54,255, 63, 63, 63,255, 69, 69, 69,255, 74, 74, 74,255, 78, 78, 78,255, 82, 82, 82,255,
- 85, 85, 85,255, 87, 87, 87,255, 90, 90, 90,255, 92, 92, 92,255, 93, 93, 93,255, 95, 95, 95,255, 96, 96, 96,255, 97, 97, 97,255,
- 98, 98, 98,255,100,100,100,255, 99, 99, 99,255, 98, 98, 98,255, 96, 96, 96,255, 95, 95, 95,255, 93, 93, 93,255, 91, 91, 91,255,
- 89, 89, 89,255, 87, 87, 87,255, 85, 85, 85,255, 81, 81, 81,255, 76, 76, 76,255, 70, 70, 70,255, 64, 64, 64,255, 58, 58, 58,255,
- 31, 31, 31,153, 20, 20, 20,102, 59, 59, 59,255, 66, 66, 66,255, 73, 73, 73,255, 77, 77, 77,255, 82, 81, 81,255, 85, 85, 85,255,
- 88, 88, 88,255, 91, 91, 91,255, 94, 94, 94,255, 96, 96, 96,255, 98, 98, 98,255,100,100,100,255,101,101,101,255,102,102,102,255,
-103,103,103,255,103,103,103,255,102,102,102,255,100,100,100,255, 99, 99, 99,255, 97, 97, 97,255, 95, 95, 95,255, 93, 93, 93,255,
- 91, 91, 91,255, 89, 89, 89,255, 87, 87, 87,255, 84, 84, 84,255, 79, 79, 79,255, 74, 74, 74,255, 67, 67, 67,255, 61, 61, 61,255,
- 43, 43, 43,204, 32, 32, 32,153, 62, 62, 62,255, 70, 70, 70,255, 76, 76, 76,255, 81, 81, 81,255, 85, 85, 85,255, 89, 89, 89,255,
- 92, 92, 92,255, 95, 95, 95,255, 98, 97, 97,255,100,100,100,255,102,102,102,255,104,104,104,255,105,105,105,255,107,107,107,255,
-107,107,107,255,106,106,106,255,104,104,104,255,102,102,102,255,100,100,100,255, 99, 99, 99,255, 97, 97, 97,255, 95, 95, 95,255,
- 93, 93, 93,255, 91, 91, 91,255, 88, 88, 88,255, 86, 86, 86,255, 83, 83, 83,255, 77, 77, 77,255, 70, 70, 70,255, 63, 63, 63,255,
- 44, 44, 44,204, 32, 32, 32,153, 64, 64, 64,255, 72, 72, 72,255, 79, 79, 79,255, 84, 84, 84,255, 88, 88, 88,255, 92, 92, 92,255,
- 96, 95, 95,255, 98, 98, 98,255,101,101,101,255,103,103,103,255,106,106,106,255,107,107,107,255,109,109,109,255,111,111,111,255,
-109,109,109,255,108,108,108,255,106,106,106,255,104,104,104,255,102,102,102,255,100,100,100,255, 98, 98, 98,255, 96, 96, 96,255,
- 94, 94, 94,255, 92, 92, 92,255, 90, 90, 90,255, 87, 87, 87,255, 85, 85, 85,255, 79, 79, 79,255, 73, 73, 73,255, 65, 65, 65,255,
- 45, 45, 45,204, 33, 33, 33,153, 67, 67, 67,255, 75, 75, 75,255, 81, 81, 81,255, 87, 87, 87,255, 91, 91, 91,255, 95, 95, 95,255,
- 98, 98, 98,255,102,102,102,255,104,104,104,255,107,107,107,255,109,109,109,255,111,111,111,255,113,113,113,255,113,113,113,255,
-111,111,111,255,109,109,109,255,108,108,108,255,106,106,106,255,104,104,104,255,102,102,102,255,100,100,100,255, 98, 98, 98,255,
- 96, 96, 96,255, 93, 93, 93,255, 91, 91, 91,255, 88, 88, 88,255, 86, 86, 86,255, 81, 81, 81,255, 74, 74, 74,255, 67, 67, 67,255,
- 35, 35, 35,153, 22, 22, 22,102, 68, 68, 68,255, 77, 77, 77,255, 84, 84, 84,255, 89, 89, 89,255, 94, 94, 94,255, 98, 98, 98,255,
-101,101,101,255,105,105,105,255,108,108,108,255,110,110,110,255,112,112,112,255,115,114,114,255,116,116,116,255,115,115,115,255,
-113,113,113,255,111,111,111,255,110,110,110,255,108,108,108,255,106,106,106,255,104,104,104,255,101,101,101,255, 99, 99, 99,255,
- 97, 97, 97,255, 95, 95, 95,255, 92, 92, 92,255, 90, 89, 89,255, 87, 87, 87,255, 83, 83, 83,255, 76, 76, 76,255, 68, 68, 68,255,
- 36, 36, 36,153, 11, 11, 11, 51, 68, 68, 68,255, 78, 78, 78,255, 86, 86, 86,255, 91, 91, 91,255, 96, 96, 96,255,101,101,101,255,
-104,104,104,255,107,107,107,255,110,110,110,255,113,113,113,255,115,115,115,255,117,117,117,255,118,118,118,255,117,117,117,255,
-115,115,115,255,113,113,113,255,111,111,111,255,109,109,109,255,107,107,107,255,105,105,105,255,103,103,103,255,101,101,101,255,
- 98, 98, 98,255, 96, 96, 96,255, 93, 93, 93,255, 90, 90, 90,255, 88, 87, 87,255, 84, 84, 84,255, 77, 77, 77,255, 68, 68, 68,255,
- 23, 23, 23,102, 0, 0, 0, 0, 68, 68, 68,255, 79, 79, 79,255, 87, 87, 87,255, 93, 93, 93,255, 98, 98, 98,255,103,103,103,255,
-106,106,106,255,110,110,110,255,113,113,113,255,115,115,115,255,118,118,118,255,120,120,120,255,120,120,120,255,119,119,119,255,
-117,117,117,255,115,115,115,255,113,113,113,255,111,111,111,255,109,109,109,255,106,106,106,255,104,104,104,255,102,102,102,255,
- 99, 99, 99,255, 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255, 84, 84, 84,255, 77, 77, 77,255, 67, 67, 67,255,
- 11, 11, 11, 51, 0, 0, 0, 0, 41, 41, 41,153, 79, 79, 79,255, 88, 88, 88,255, 94, 94, 94,255,100,100,100,255,104,104,104,255,
-108,108,108,255,112,112,112,255,115,115,115,255,118,118,118,255,120,120,120,255,122,122,122,255,122,122,122,255,120,120,120,255,
-119,119,119,255,117,117,117,255,115,115,115,255,112,112,112,255,110,110,110,255,108,108,108,255,105,105,105,255,103,103,103,255,
-100,100,100,255, 98, 98, 98,255, 95, 95, 95,255, 92, 92, 92,255, 89, 89, 89,255, 85, 84, 84,255, 76, 76, 76,255, 41, 41, 41,153,
- 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 51, 78, 78, 78,255, 88, 88, 88,255, 95, 95, 95,255,101,101,101,255,106,106,106,255,
-110,110,110,255,114,114,114,255,117,117,117,255,120,119,119,255,122,122,122,255,124,124,124,255,124,124,124,255,122,122,122,255,
-120,120,120,255,118,118,118,255,116,116,116,255,114,114,114,255,111,111,111,255,109,109,109,255,106,106,106,255,104,104,104,255,
-101,101,101,255, 98, 98, 98,255, 95, 95, 95,255, 92, 92, 92,255, 89, 89, 89,255, 84, 84, 84,255, 75, 75, 75,255, 37, 37, 37,153,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 59,204, 87, 87, 87,255, 95, 95, 95,255,101,101,101,255,106,106,106,255,
-111,111,111,255,114,114,114,255,118,118,118,255,121,121,121,255,123,123,123,255,125,125,125,255,125,125,125,255,124,124,124,255,
-122,122,122,255,120,120,120,255,117,117,117,255,115,115,115,255,112,112,112,255,110,110,110,255,107,107,107,255,104,104,104,255,
-102,102,102,255, 99, 98, 98,255, 95, 95, 95,255, 92, 92, 92,255, 89, 89, 89,255, 82, 82, 82,255, 57, 57, 57,204, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 51, 84, 84, 84,255, 93, 93, 93,255,101,101,101,255,106,106,106,255,
-111,111,111,255,115,115,115,255,118,118,118,255,121,121,121,255,124,124,124,255,126,126,126,255,126,126,126,255,125,125,125,255,
-123,123,123,255,121,121,121,255,118,118,118,255,116,116,116,255,113,113,113,255,111,111,111,255,108,108,108,255,105,105,105,255,
-102,102,102,255, 99, 99, 99,255, 95, 95, 95,255, 92, 92, 92,255, 88, 88, 88,255, 78, 78, 78,255, 15, 15, 15, 51, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32,102, 91, 91, 91,255, 99, 99, 99,255,106,106,106,255,
-111,111,111,255,115,115,115,255,119,119,119,255,122,122,122,255,124,124,124,255,126,126,126,255,127,127,127,255,126,126,126,255,
-124,124,124,255,121,121,121,255,119,119,119,255,117,116,116,255,114,114,114,255,111,111,111,255,108,108,108,255,105,105,105,255,
-102,102,102,255, 98, 98, 98,255, 95, 95, 95,255, 91, 91, 91,255, 84, 84, 84,255, 45, 45, 45,153, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 51, 51,153, 95, 95, 95,255,103,103,103,255,
-109,109,109,255,114,114,114,255,118,118,118,255,121,121,121,255,124,124,124,255,126,126,126,255,128,128,128,255,126,126,126,255,
-124,124,124,255,122,122,122,255,119,119,119,255,117,117,117,255,114,114,114,255,111,111,111,255,108,108,108,255,104,104,104,255,
-101,101,101,255, 98, 98, 98,255, 94, 94, 94,255, 88, 88, 88,255, 49, 49, 49,153, 12, 12, 12, 51, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,153, 98, 98, 98,255,
-106,106,106,255,112,112,112,255,116,116,116,255,119,119,119,255,122,122,122,255,125,125,125,255,127,127,127,255,126,126,126,255,
-124,124,124,255,122,122,122,255,119,119,119,255,116,116,116,255,113,113,113,255,110,110,110,255,107,107,107,255,104,104,104,255,
-100,100,100,255, 96, 96, 96,255, 91, 91, 91,255, 66, 66, 66,204, 15, 15, 15, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54,153,
-100,100,100,255,107,107,107,255,113,113,113,255,117,117,117,255,120,120,120,255,122,122,122,255,124,124,124,255,125,125,125,255,
-123,123,123,255,121,121,121,255,118,118,118,255,116,115,115,255,112,112,112,255,109,109,109,255,105,105,105,255,102,102,102,255,
- 97, 97, 97,255, 92, 92, 92,255, 51, 51, 51,153, 15, 15, 15, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 97, 97, 97,255,106,106,106,255,112,112,112,255,115,115,115,255,118,118,118,255,121,121,121,255,122,122,122,255,
-121,121,121,255,119,119,119,255,117,117,117,255,114,114,114,255,111,111,111,255,107,107,107,255,103,103,103,255, 98, 98, 98,255,
- 74, 74, 74,204, 35, 35, 35,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, 56,153, 80, 80, 80,204,106,106,106,255,111,111,111,255,114,114,114,255,116,116,116,255,
-117,117,117,255,116,116,116,255,113,113,113,255,110,110,110,255,106,106,106,255,102,102,102,255, 78, 78, 78,204, 38, 38, 38,102,
- 15, 15, 15, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 39, 39,102, 62, 62, 62,153, 64, 64, 64,153,
- 86, 86, 86,204, 86, 86, 86,204, 84, 84, 84,204, 61, 61, 61,153, 40, 40, 40,102, 19, 19, 19, 51, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 77, 65, 0, 0,128, 3, 0, 0,120,164, 26, 4, 0, 0, 0, 0, 39, 0, 0, 0, 1, 0, 0, 0,216,189, 26, 4,
- 0, 0, 0, 0,104,142, 26, 4, 0, 0, 0, 0,168, 1,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65,112,114,
-101,118,105,101,119, 0, 0, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0,128, 63, 30, 18,240, 62,246,137,158, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
-188,248, 68, 62, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0,
- 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,198,121,130, 63, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,
- 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 4, 0, 67, 0, 16, 3, 67, 0, 16, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63,
- 16, 8, 1, 0,200,169, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 72,168, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,173, 26, 4, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,
-111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 56, 1, 0, 0, 72,168, 26, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 16, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,120,206, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 3, 0, 0,200,169, 26, 4, 0, 0, 0, 0, 28, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 40,220, 62,
- 0, 0, 0, 0, 3, 55,122, 63, 0, 0,128, 63, 96, 82,161, 62, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,173, 26, 4, 0, 0, 0, 0, 12, 0, 0, 0,
- 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,136,173, 26, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,136,173, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 51, 2, 1, 1, 51, 6, 3, 4,153,
- 6, 2, 4,153, 5, 1, 4,153, 3, 1, 3,102, 3, 0, 3,102, 2, 0, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 1, 51, 8, 7, 3,153, 11, 9, 5,204, 13, 9, 6,255, 12, 8, 7,255, 11, 6, 7,255,
- 11, 5, 7,255, 10, 4, 7,255, 9, 3, 6,255, 9, 2, 7,255, 10, 2, 7,255, 10, 2, 8,255, 4, 1, 3,102, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 3, 1, 51, 11, 10, 4,153, 20, 16, 8,255, 23, 15, 12,255, 25, 13, 15,255, 25, 11, 18,255, 24, 9, 18,255, 22, 7, 17,255,
- 20, 7, 15,255, 17, 6, 12,255, 14, 5, 9,255, 11, 4, 6,255, 10, 4, 5,255, 10, 4, 5,255, 11, 4, 5,255, 12, 4, 5,255,
- 9, 3, 5,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 3,102,
- 23, 17, 8,204, 33, 22, 14,255, 37, 20, 21,255, 38, 16, 26,255, 39, 13, 30,255, 38, 11, 31,255, 36, 9, 30,255, 34, 9, 27,255,
- 31, 9, 22,255, 28, 9, 17,255, 24, 9, 13,255, 21, 9, 10,255, 17, 8, 7,255, 14, 6, 5,255, 11, 5, 3,255, 11, 5, 4,255,
- 12, 6, 4,255, 13, 6, 4,255, 5, 2, 2,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 13, 5,153, 36, 26, 12,255,
- 45, 28, 19,255, 48, 25, 26,255, 51, 20, 33,255, 51, 16, 39,255, 51, 12, 42,255, 48, 10, 42,255, 46, 10, 39,255, 44, 10, 34,255,
- 41, 12, 28,255, 38, 13, 22,255, 34, 14, 16,255, 31, 14, 12,255, 27, 13, 9,255, 23, 11, 7,255, 19, 9, 6,255, 14, 7, 5,255,
- 12, 5, 4,255, 13, 6, 4,255, 13, 6, 4,255, 7, 3, 3,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 11, 5,102, 45, 31, 15,255, 54, 34, 20,255,
- 59, 31, 28,255, 61, 26, 36,255, 61, 20, 44,255, 61, 15, 50,255, 60, 11, 52,255, 58, 10, 52,255, 56, 10, 48,255, 53, 12, 41,255,
- 51, 15, 33,255, 48, 17, 25,255, 44, 19, 18,255, 40, 19, 14,255, 37, 18, 11,255, 32, 15, 10,255, 28, 12, 10,255, 24, 9, 10,255,
- 19, 7, 9,255, 14, 5, 7,255, 13, 5, 6,255, 13, 5, 5,255, 7, 4, 2,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 9, 7,102, 50, 33, 17,255, 61, 39, 20,255, 67, 37, 26,255,
- 70, 32, 36,255, 71, 26, 46,255, 72, 19, 54,255, 71, 14, 60,255, 69, 10, 62,255, 68, 9, 61,255, 66, 10, 56,255, 63, 13, 48,255,
- 60, 17, 39,255, 56, 21, 28,255, 53, 23, 21,255, 49, 23, 16,255, 46, 22, 15,255, 42, 18, 16,255, 37, 14, 17,255, 33, 10, 18,255,
- 28, 7, 17,255, 22, 5, 14,255, 15, 3, 10,255, 13, 3, 8,255, 12, 5, 6,255, 5, 3, 2,102, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 26, 18,204, 66, 41, 21,255, 73, 43, 25,255, 78, 40, 33,255,
- 80, 34, 43,255, 80, 26, 53,255, 80, 19, 62,255, 80, 13, 69,255, 78, 10, 71,255, 76, 8, 71,255, 74, 10, 65,255, 71, 13, 57,255,
- 68, 18, 45,255, 65, 24, 32,255, 61, 27, 23,255, 57, 27, 18,255, 53, 25, 18,255, 49, 19, 22,255, 45, 14, 25,255, 41, 9, 27,255,
- 36, 5, 28,255, 30, 4, 25,255, 23, 2, 20,255, 16, 2, 13,255, 12, 2, 9,255, 12, 5, 6,255, 3, 3, 1, 51, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 11, 12,102, 68, 38, 26,255, 78, 46, 25,255, 83, 46, 28,255, 84, 42, 36,255,
- 84, 35, 45,255, 84, 27, 55,255, 84, 20, 64,255, 83, 14, 71,255, 82, 9, 75,255, 81, 7, 75,255, 79, 8, 72,255, 78, 12, 63,255,
- 76, 19, 51,255, 73, 25, 39,255, 69, 30, 26,255, 65, 31, 20,255, 61, 27, 22,255, 57, 19, 29,255, 53, 11, 36,255, 48, 6, 39,255,
- 43, 3, 39,255, 37, 1, 36,255, 31, 1, 30,255, 24, 1, 23,255, 15, 1, 14,255, 12, 2, 9,255, 10, 5, 5,204, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 29, 35,255, 81, 44, 29,255, 85, 49, 27,255, 86, 48, 29,255, 87, 43, 36,255,
- 87, 37, 45,255, 87, 29, 55,255, 86, 22, 64,255, 86, 15, 72,255, 85, 11, 77,255, 83, 8, 78,255, 82, 7, 76,255, 81, 10, 70,255,
- 79, 15, 59,255, 77, 22, 47,255, 76, 31, 31,255, 72, 34, 23,255, 68, 30, 24,255, 64, 21, 33,255, 60, 8, 48,255, 55, 2, 52,255,
- 50, 1, 49,255, 44, 0, 44,255, 38, 0, 38,255, 31, 0, 30,255, 22, 0, 22,255, 12, 1, 12,255, 12, 4, 9,255, 6, 5, 2,102,
- 0, 0, 0, 0, 0, 0, 0, 0, 27, 8, 19,102, 79, 34, 41,255, 86, 46, 31,255, 88, 50, 28,255, 89, 50, 30,255, 90, 46, 36,255,
- 90, 41, 44,255, 90, 34, 53,255, 89, 27, 62,255, 89, 20, 69,255, 87, 14, 76,255, 86, 10, 79,255, 85, 8, 80,255, 83, 8, 75,255,
- 82, 12, 67,255, 80, 20, 54,255, 78, 31, 35,255, 77, 36, 24,255, 75, 33, 27,255, 71, 20, 42,255, 66, 5, 60,255, 61, 0, 61,255,
- 56, 1, 55,255, 51, 3, 47,255, 44, 2, 41,255, 37, 1, 35,255, 29, 1, 28,255, 18, 0, 18,255, 12, 2, 10,255, 11, 6, 6,204,
- 0, 0, 0, 0, 0, 0, 0, 0, 58, 15, 43,204, 85, 36, 43,255, 89, 47, 33,255, 91, 52, 29,255, 93, 53, 30,255, 93, 51, 34,255,
- 94, 47, 41,255, 93, 41, 49,255, 93, 34, 58,255, 92, 26, 66,255, 91, 20, 73,255, 89, 14, 79,255, 88, 10, 81,255, 86, 9, 79,255,
- 85, 10, 74,255, 83, 16, 62,255, 81, 26, 45,255, 79, 34, 31,255, 78, 24, 43,255, 76, 11, 61,255, 73, 2, 71,255, 68, 3, 63,255,
- 63, 8, 51,255, 56, 9, 43,255, 50, 9, 37,255, 43, 6, 33,255, 35, 4, 30,255, 25, 1, 23,255, 13, 1, 13,255, 13, 6, 9,255,
- 0, 0, 0, 0, 17, 2, 15,102, 79, 18, 60,255, 88, 37, 46,255, 92, 49, 35,255, 95, 56, 31,255, 96, 58, 30,255, 97, 57, 33,255,
- 98, 54, 39,255, 98, 49, 46,255, 97, 42, 54,255, 96, 35, 61,255, 95, 28, 68,255, 93, 22, 74,255, 91, 16, 79,255, 89, 12, 82,255,
- 88, 10, 81,255, 86, 9, 78,255, 84, 14, 67,255, 82, 18, 58,255, 80, 2, 78,255, 78, 1, 77,255, 77, 9, 64,255, 74, 19, 46,255,
- 68, 21, 37,255, 62, 19, 34,255, 55, 18, 29,255, 48, 14, 27,255, 40, 9, 28,255, 30, 4, 25,255, 19, 2, 17,255, 12, 4, 10,255,
- 7, 5, 3,102, 28, 3, 26,102, 84, 19, 65,255, 92, 39, 50,255, 96, 52, 39,255, 99, 60, 33,255,101, 64, 32,255,102, 65, 33,255,
-103, 63, 37,255,102, 58, 42,255,102, 53, 47,255,100, 47, 54,255, 99, 40, 61,255, 97, 33, 66,255, 95, 26, 72,255, 93, 19, 78,255,
- 91, 14, 81,255, 89, 11, 82,255, 87, 8, 81,255, 84, 8, 76,255, 82, 20, 55,255, 81, 35, 31,255, 79, 31, 35,255, 77, 34, 27,255,
- 74, 34, 24,255, 67, 31, 22,255, 61, 27, 21,255, 53, 21, 22,255, 46, 15, 24,255, 35, 8, 23,255, 24, 3, 19,255, 13, 3, 11,255,
- 10, 6, 5,153, 31, 3, 29,102, 88, 22, 68,255, 96, 42, 54,255,101, 56, 44,255,104, 65, 37,255,107, 70, 34,255,108, 73, 34,255,
-108, 72, 36,255,108, 70, 39,255,107, 66, 43,255,106, 60, 48,255,105, 54, 54,255,102, 47, 59,255,100, 39, 64,255, 98, 32, 69,255,
- 95, 25, 73,255, 92, 20, 76,255, 90, 17, 74,255, 87, 28, 53,255, 85, 41, 30,255, 83, 34, 35,255, 81, 31, 37,255, 79, 35, 28,255,
- 77, 31, 31,255, 73, 30, 28,255, 66, 30, 21,255, 58, 26, 19,255, 50, 21, 20,255, 40, 13, 21,255, 29, 6, 20,255, 17, 3, 14,255,
- 12, 7, 7,204, 48, 5, 44,153, 92, 24, 72,255,100, 44, 60,255,106, 60, 50,255,111, 72, 42,255,113, 78, 38,255,115, 82, 37,255,
-115, 82, 37,255,115, 81, 38,255,115, 78, 41,255,114, 74, 45,255,112, 69, 49,255,110, 63, 53,255,107, 55, 56,255,103, 50, 57,255,
-100, 42, 59,255, 96, 36, 61,255, 93, 33, 59,255, 90, 40, 42,255, 87, 46, 27,255, 85, 33, 42,255, 83, 18, 59,255, 81, 8, 71,255,
- 78, 12, 61,255, 76, 21, 45,255, 70, 29, 27,255, 63, 29, 20,255, 55, 25, 17,255, 45, 18, 19,255, 33, 9, 20,255, 21, 4, 16,255,
- 11, 6, 7,204, 47, 6, 42,153, 95, 26, 76,255,105, 48, 65,255,112, 66, 56,255,118, 79, 48,255,121, 87, 43,255,122, 91, 41,255,
-123, 93, 40,255,124, 94, 40,255,124, 93, 42,255,124, 91, 45,255,124, 88, 48,255,122, 83, 51,255,118, 76, 52,255,112, 69, 49,255,
-106, 62, 46,255,102, 54, 46,255, 98, 51, 41,255, 94, 52, 31,255, 90, 48, 30,255, 87, 31, 49,255, 85, 17, 65,255, 82, 6, 75,255,
- 80, 4, 75,255, 77, 14, 57,255, 74, 24, 39,255, 67, 28, 25,255, 59, 27, 18,255, 49, 21, 17,255, 37, 13, 18,255, 25, 5, 18,255,
- 11, 5, 8,204, 47, 8, 40,153, 99, 31, 78,255,111, 53, 70,255,119, 72, 62,255,125, 86, 55,255,129, 96, 50,255,131,102, 46,255,
-133,105, 45,255,134,107, 45,255,137,110, 49,255,142,113, 55,255,143,113, 59,255,142,110, 60,255,136,101, 58,255,126, 91, 51,255,
-117, 80, 44,255,108, 70, 38,255,102, 64, 33,255, 98, 56, 34,255, 93, 44, 43,255, 90, 29, 57,255, 87, 16, 70,255, 84, 6, 79,255,
- 81, 4, 77,255, 79, 11, 64,255, 76, 19, 49,255, 71, 26, 32,255, 62, 28, 20,255, 52, 24, 17,255, 40, 15, 18,255, 27, 7, 19,255,
- 9, 3, 7,153, 31, 8, 24,102,102, 34, 79,255,116, 58, 75,255,126, 80, 67,255,133, 95, 61,255,138,106, 57,255,141,113, 53,255,
-144,117, 52,255,148,123, 55,255,155,130, 62,255,166,140, 73,255,174,147, 83,255,173,144, 85,255,163,133, 79,255,147,115, 66,255,
-131, 97, 53,255,118, 83, 43,255,108, 70, 39,255,102, 56, 44,255, 96, 42, 54,255, 92, 28, 65,255, 89, 16, 75,255, 86, 8, 80,255,
- 83, 5, 78,255, 80, 8, 69,255, 77, 17, 53,255, 74, 25, 37,255, 65, 28, 23,255, 55, 26, 17,255, 43, 17, 18,255, 29, 8, 19,255,
- 10, 3, 7,153, 16, 5, 11, 51,103, 39, 76,255,121, 65, 77,255,133, 88, 72,255,142,105, 67,255,148,117, 63,255,152,125, 60,255,
-156,131, 61,255,164,140, 67,255,178,155, 80,255,198,174,101,255,213,188,119,255,215,189,124,255,201,173,113,255,175,144, 91,255,
-149,116, 70,255,129, 93, 55,255,115, 74, 49,255,106, 58, 52,255,100, 42, 62,255, 95, 27, 72,255, 91, 17, 79,255, 87, 11, 79,255,
- 84, 7, 79,255, 81, 8, 72,255, 78, 15, 57,255, 75, 23, 41,255, 68, 28, 26,255, 57, 27, 18,255, 45, 18, 18,255, 30, 7, 20,255,
- 6, 2, 5,102, 0, 0, 0, 0,101, 43, 67,255,126, 72, 77,255,140, 97, 75,255,151,116, 71,255,158,129, 68,255,162,138, 66,255,
-168,145, 68,255,179,157, 78,255,199,178, 98,255,227,205,127,255,251,228,154,255,255,232,163,255,238,210,149,255,203,172,119,255,
-167,132, 89,255,140,101, 69,255,122, 77, 62,255,111, 58, 63,255,103, 43, 69,255, 97, 29, 76,255, 93, 20, 79,255, 89, 15, 77,255,
- 85, 9, 78,255, 82, 9, 72,255, 79, 14, 59,255, 75, 22, 43,255, 69, 29, 26,255, 59, 27, 18,255, 46, 18, 19,255, 29, 7, 20,255,
- 3, 1, 2, 51, 0, 0, 0, 0, 61, 30, 36,153,126, 76, 75,255,146,105, 76,255,158,127, 74,255,167,142, 71,255,173,151, 71,255,
-179,159, 74,255,191,172, 85,255,214,195,107,255,245,225,141,255,255,251,172,255,255,255,183,255,255,233,171,255,222,190,138,255,
-180,143,104,255,148,106, 81,255,127, 79, 73,255,115, 60, 72,255,107, 45, 75,255,100, 33, 78,255, 95, 24, 78,255, 90, 18, 77,255,
- 86, 12, 77,255, 82, 12, 69,255, 79, 16, 57,255, 76, 24, 41,255, 71, 30, 27,255, 60, 28, 19,255, 46, 17, 20,255, 18, 4, 13,153,
- 0, 0, 0, 0, 0, 0, 0, 0, 20, 11, 9, 51,124, 78, 67,255,148,110, 74,255,164,136, 74,255,175,154, 73,255,182,164, 73,255,
-187,172, 75,255,199,183, 86,255,219,202,107,255,245,228,137,255,255,249,164,255,255,254,176,255,255,233,167,255,222,191,138,255,
-183,146,107,255,152,109, 86,255,131, 82, 77,255,119, 64, 76,255,110, 49, 77,255,103, 38, 78,255, 97, 30, 75,255, 92, 25, 71,255,
- 87, 15, 75,255, 83, 15, 66,255, 79, 19, 53,255, 76, 26, 37,255, 71, 31, 25,255, 60, 28, 19,255, 43, 14, 22,255, 11, 2, 8,153,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 58, 40,204,147,112, 70,255,168,143, 73,255,181,164, 73,255,189,176, 73,255,
-194,183, 74,255,202,190, 81,255,215,203, 96,255,233,219,118,255,249,233,139,255,252,232,147,255,237,213,141,255,209,179,121,255,
-178,143,101,255,152,111, 86,255,134, 87, 79,255,122, 69, 77,255,113, 55, 77,255,105, 44, 74,255, 98, 37, 69,255, 93, 33, 62,255,
- 87, 30, 54,255, 83, 21, 59,255, 79, 23, 49,255, 76, 30, 33,255, 71, 33, 23,255, 58, 25, 21,255, 30, 8, 18,204, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 12, 6, 51,136,104, 58,255,165,142, 69,255,184,169, 72,255,194,184, 72,255,
-199,192, 73,255,204,197, 76,255,210,202, 83,255,218,208, 96,255,225,213,109,255,224,207,114,255,212,190,111,255,192,166,101,255,
-170,138, 89,255,151,112, 81,255,136, 92, 77,255,125, 75, 76,255,116, 61, 74,255,107, 51, 70,255,100, 44, 63,255, 93, 39, 55,255,
- 87, 36, 46,255, 83, 31, 44,255, 79, 27, 42,255, 75, 32, 29,255, 68, 32, 22,255, 51, 18, 25,255, 8, 2, 5, 51, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 36, 17,102,155,132, 61,255,180,167, 68,255,194,187, 70,255,
-202,198, 70,255,206,203, 72,255,207,205, 75,255,209,204, 80,255,209,201, 86,255,204,192, 89,255,194,177, 88,255,180,157, 84,255,
-165,136, 79,255,150,115, 76,255,138, 97, 74,255,127, 81, 72,255,117, 68, 68,255,108, 58, 63,255,100, 50, 55,255, 93, 46, 46,255,
- 87, 43, 36,255, 82, 31, 43,255, 78, 32, 34,255, 74, 34, 24,255, 63, 26, 24,255, 28, 8, 17,153, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 64, 27,153,164,148, 60,255,187,179, 66,255,
-199,197, 68,255,205,205, 69,255,206,207, 70,255,205,204, 71,255,202,197, 73,255,195,186, 75,255,186,172, 75,255,175,155, 74,255,
-162,137, 72,255,150,119, 70,255,139,102, 69,255,128, 87, 66,255,118, 75, 60,255,108, 64, 54,255, 99, 56, 45,255, 92, 51, 37,255,
- 86, 41, 37,255, 81, 33, 38,255, 76, 35, 27,255, 70, 31, 24,255, 34, 12, 17,153, 3, 0, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 70, 27,153,167,155, 58,255,
-188,183, 64,255,200,199, 67,255,203,204, 68,255,202,202, 68,255,199,196, 69,255,192,186, 69,255,183,172, 69,255,173,156, 68,255,
-162,140, 67,255,150,123, 65,255,138,107, 62,255,127, 92, 58,255,116, 79, 52,255,106, 68, 45,255, 97, 60, 37,255, 90, 53, 30,255,
- 84, 40, 35,255, 79, 37, 28,255, 73, 33, 25,255, 47, 16, 23,204, 9, 1, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 68, 25,153,
-161,150, 54,255,182,177, 62,255,191,189, 64,255,194,193, 65,255,192,189, 65,255,186,181, 65,255,179,169, 64,255,169,155, 63,255,
-158,139, 61,255,147,123, 59,255,136,108, 55,255,124, 93, 49,255,113, 81, 43,255,103, 70, 37,255, 94, 59, 30,255, 86, 48, 29,255,
- 80, 40, 28,255, 73, 33, 26,255, 39, 14, 19,153, 9, 1, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,139,121, 46,255,163,154, 54,255,174,168, 58,255,176,170, 59,255,174,166, 59,255,168,158, 59,255,160,146, 56,255,
-150,132, 53,255,139,118, 50,255,128,104, 45,255,117, 90, 40,255,107, 77, 35,255, 97, 64, 31,255, 88, 51, 29,255, 80, 42, 26,255,
- 59, 27, 22,204, 26, 9, 13,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 70, 55, 25,153,106, 89, 37,204,142,127, 46,255,148,134, 48,255,147,132, 48,255,141,124, 46,255,
-134,115, 44,255,125,103, 41,255,115, 89, 37,255,106, 76, 34,255, 96, 60, 35,255, 86, 42, 39,255, 64, 25, 33,204, 30, 14, 11,102,
- 7, 0, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 30, 18,102, 69, 52, 25,153, 70, 54, 24,153,
- 88, 63, 33,204, 82, 54, 33,204, 76, 42, 35,204, 52, 23, 29,153, 34, 14, 19,102, 16, 4, 11, 51, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 77, 65, 0, 0,128, 3, 0, 0,216,189, 26, 4, 0, 0, 0, 0, 39, 0, 0, 0, 1, 0, 0, 0,232,198, 26, 4,
- 0, 0, 0, 0,120,164, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65,116,101,
-120,116,117,114,101, 0,114,101,118,105,101,119, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0,
- 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,
- 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 4, 0, 71, 0, 1, 3, 67, 0, 1, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63,
- 1, 8,129, 0, 40,195, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63,168,193, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,198, 26, 4, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,
-111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 56, 1, 0, 0,168,193, 26, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,120,206, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 8, 3, 0, 0, 40,195, 26, 4, 0, 0, 0, 0, 28, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 40,220, 62,
- 0, 0, 0, 0, 3, 55,122, 63, 0, 0,128, 63, 96, 82,161, 62, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,198, 26, 4, 0, 0, 0, 0, 12, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 0, 0,128, 3, 0, 0,232,198, 26, 4, 0, 0, 0, 0, 39, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,189, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 77, 65,116,101,120,116,117,114,101, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60,
- 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 16, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0, 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59,
- 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 4, 0, 67, 0, 0, 3, 67, 0, 0, 3, 1, 0, 4, 0, 12, 0, 4, 0,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 3, 0,
- 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,
-205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0,184,202, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,206, 26, 4, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 8, 3, 0, 0,184,202, 26, 4, 0, 0, 0, 0, 28, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,245, 40,220, 62, 0, 0, 0, 0, 3, 55,122, 63,
- 0, 0,128, 63, 96, 82,161, 62, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,206, 26, 4, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 84, 69, 0, 0,168, 1, 0, 0,120,206, 26, 4, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0,216,208, 26, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69,112,114,
-101,118,105,101,119, 0,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62,
- 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 5, 0, 8, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0,
- 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,208, 26, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,208, 26, 4, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 84, 69, 0, 0,168, 1, 0, 0,216,208, 26, 4, 0, 0, 0, 0, 33, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,120,206, 26, 4, 0, 0, 0, 0, 8,124, 8,168, 69,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69,102, 97,
-107,101,115,104, 97,100,111,119, 0, 0, 76,101,110,100, 0,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 53, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62,
- 0, 0,160, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 5, 0, 40, 0, 5, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0,
- 1, 0, 1, 0, 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,210, 26, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,210, 26, 4, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0,
- 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 56,211, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0, 56,211, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,161,161,161,255,
-161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, 14, 14, 14,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,155,155,155,255,
-155,154,154,255,155,155,155,255,157,157,157,255,158,158,158,255,158,158,158,255,159,159,159,255,159,159,159,255, 43, 43, 43,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,
-161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, 14, 14, 14,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 15, 15, 15,255, 15, 15, 15,255, 15, 15, 15,255, 15, 15, 15,255,147,147,147,255,
-147,147,147,255,147,147,147,255,148,148,148,255,150,150,150,255,153,153,153,255,157,157,157,255,159,159,159,255, 43, 43, 43,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,
-161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,159,159,159,255, 14, 14, 14,255,
- 15, 15, 15,255, 15, 15, 15,255, 16, 16, 16,255, 17, 17, 17,255, 18, 18, 18,255, 18, 18, 18,255, 19, 19, 19,255,141,141,141,255,
-141,141,141,255,141,141,141,255,142,142,142,255,143,143,143,255,146,146,146,255,149,149,149,255,153,153,153,255, 43, 43, 43,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,
-161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,157,157,157,255,152,152,152,255, 15, 15, 15,255,
- 17, 17, 17,255, 18, 18, 18,255, 20, 20, 20,255, 21, 21, 21,255, 22, 22, 22,255, 23, 23, 23,255, 24, 24, 24,255,137,137,137,255,
-137,137,137,255,137,137,137,255,137,137,137,255,138,138,138,255,140,140,140,255,143,143,143,255,147,147,147,255, 42, 42, 42,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,
-161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,156,156,156,255,150,150,150,255,146,146,146,255, 18, 18, 18,255,
- 20, 20, 20,255, 22, 22, 22,255, 25, 25, 25,255, 27, 27, 27,255, 29, 29, 29,255, 30, 30, 30,255, 31, 31, 31,255,135,135,135,255,
-135,135,135,255,135,134,134,255,135,135,135,255,135,135,135,255,137,137,137,255,139,139,139,255,141,141,141,255, 42, 42, 42,255,
- 15, 15, 15,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,
-161,161,161,255,161,161,161,255,161,161,161,255,156,156,156,255,150,150,150,255,145,145,145,255,142,142,142,255, 22, 22, 22,255,
- 25, 25, 25,255, 28, 28, 28,255, 32, 32, 32,255, 35, 35, 35,255, 37, 37, 37,255, 39, 39, 39,255, 40, 40, 40,255,135,135,135,255,
-135,135,135,255,134,134,134,255,134,134,134,255,134,134,134,255,134,134,134,255,136,136,136,255,138,138,138,255, 43, 43, 43,255,
- 16, 16, 16,255, 15, 15, 15,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,
-161,161,161,255,161,161,161,255,157,157,157,255,150,150,150,255,145,145,145,255,141,141,141,255,138,138,138,255, 27, 27, 27,255,
- 31, 31, 31,255, 36, 36, 36,255, 40, 40, 40,255, 44, 44, 44,255, 47, 47, 47,255, 50, 50, 50,255, 51, 51, 51,255,137,137,137,255,
-136,136,136,255,136,135,135,255,135,135,135,255,134,134,134,255,134,134,134,255,134,134,134,255,135,135,135,255, 45, 45, 45,255,
- 19, 19, 19,255, 16, 16, 16,255, 15, 15, 15,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,
-161,161,161,255,159,159,159,255,152,152,152,255,146,146,146,255,142,142,142,255,138,138,138,255,137,136,136,255, 32, 32, 32,255,
- 38, 38, 38,255, 44, 44, 44,255, 50, 50, 50,255, 55, 55, 55,255, 59, 59, 59,255, 62, 62, 62,255, 64, 64, 64,255,141,141,141,255,
-140,140,140,255,139,139,139,255,137,137,137,255,136,136,136,255,135,135,135,255,134,134,134,255,134,134,134,255, 49, 49, 49,255,
- 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,
- 14, 14, 14,255, 14, 14, 14,255, 15, 15, 15,255, 18, 18, 18,255, 22, 22, 22,255, 27, 27, 27,255, 33, 33, 33,255,136,136,136,255,
-137,137,137,255,138,138,138,255,141,141,141,255,143,143,143,255,145,145,145,255,147,147,147,255,147,147,147,255, 79, 79, 79,255,
- 77, 77, 77,255, 73, 73, 73,255, 67, 67, 67,255, 61, 61, 61,255, 53, 53, 53,255, 46, 46, 46,255, 39, 39, 39,255,114,114,114,255,
-137,137,137,255,139,139,139,255,143,143,143,255,148,148,148,255,155,155,155,255,161,161,161,255,161,161,161,255, 14, 14, 14,255,
- 14, 14, 14,255, 15, 15, 15,255, 17, 17, 17,255, 20, 20, 20,255, 25, 25, 25,255, 31, 31, 31,255, 38, 38, 38,255,137,137,137,255,
-139,139,139,255,142,142,142,255,145,145,145,255,148,148,148,255,152,152,152,255,154,154,154,255,155,155,155,255, 96, 96, 96,255,
- 93, 93, 93,255, 88, 88, 88,255, 81, 81, 81,255, 73, 73, 73,255, 64, 64, 64,255, 55, 55, 55,255, 46, 46, 46,255,116,116,116,255,
-136,136,136,255,137,137,137,255,140,140,140,255,145,145,145,255,151,151,151,255,159,159,159,255,161,161,161,255, 14, 14, 14,255,
- 14, 14, 14,255, 15, 15, 15,255, 18, 18, 18,255, 23, 23, 23,255, 28, 28, 28,255, 36, 36, 36,255, 44, 44, 44,255,138,138,138,255,
-142,142,142,255,146,146,146,255,151,151,151,255,155,155,155,255,160,160,160,255,163,163,163,255,165,165,165,255,114,114,114,255,
-111,111,111,255,104,104,104,255, 95, 95, 95,255, 85, 85, 85,255, 75, 75, 75,255, 64, 64, 64,255, 53, 53, 53,255,117,117,117,255,
-136,135,135,255,136,136,136,255,139,139,139,255,142,142,142,255,148,148,148,255,156,156,156,255,161,161,161,255, 14, 14, 14,255,
- 14, 14, 14,255, 16, 16, 16,255, 20, 20, 20,255, 25, 25, 25,255, 32, 32, 32,255, 40, 40, 40,255, 50, 50, 50,255,141,141,141,255,
-145,145,145,255,151,151,151,255,157,157,157,255,163,163,163,255,169,169,169,255,174,174,174,255,177,177,177,255,135,135,135,255,
-130,130,130,255,122,122,122,255,111,111,111,255, 98, 98, 98,255, 85, 85, 85,255, 73, 73, 73,255, 61, 61, 61,255,119,119,119,255,
-136,136,136,255,136,136,136,255,137,137,137,255,141,141,141,255,146,146,146,255,153,153,153,255,161,161,161,255, 14, 14, 14,255,
- 15, 15, 15,255, 17, 17, 17,255, 21, 21, 21,255, 27, 27, 27,255, 35, 35, 35,255, 44, 44, 44,255, 55, 55, 55,255,143,143,143,255,
-149,149,149,255,156,156,156,255,163,163,163,255,172,172,172,255,180,180,180,255,186,186,186,255,190,190,190,255,158,158,158,255,
-151,151,151,255,140,140,140,255,126,126,126,255,111,111,111,255, 95, 95, 95,255, 81, 81, 81,255, 67, 67, 67,255,122,121,121,255,
-136,136,136,255,136,136,136,255,137,137,137,255,139,139,139,255,144,144,144,255,151,151,151,255,159,159,159,255, 14, 14, 14,255,
- 15, 15, 15,255, 18, 18, 18,255, 23, 23, 23,255, 29, 29, 29,255, 38, 38, 38,255, 48, 48, 48,255, 60, 60, 60,255,145,145,145,255,
-152,152,152,255,160,160,160,255,170,170,170,255,180,180,180,255,191,191,191,255,200,200,200,255,206,206,206,255,182,182,182,255,
-173,173,173,255,158,158,158,255,140,140,140,255,122,122,122,255,104,104,104,255, 88, 88, 88,255, 73, 73, 73,255,123,123,123,255,
-137,137,137,255,136,136,136,255,136,136,136,255,139,139,139,255,143,143,143,255,149,149,149,255,157,157,157,255, 14, 14, 14,255,
- 15, 15, 15,255, 18, 18, 18,255, 24, 24, 24,255, 31, 31, 31,255, 39, 39, 39,255, 50, 50, 50,255, 63, 63, 63,255,147,147,147,255,
-154,154,154,255,164,164,164,255,175,175,175,255,187,187,187,255,200,200,200,255,213,213,213,255,223,223,223,255,208,208,208,255,
-193,193,193,255,173,173,173,255,151,151,151,255,130,130,130,255,111,111,111,255, 93, 93, 93,255, 77, 77, 77,255,125,125,125,255,
-137,137,137,255,136,136,136,255,136,136,136,255,138,138,138,255,142,142,142,255,148,148,148,255,156,156,156,255, 14, 14, 14,255,
- 16, 16, 16,255, 19, 19, 19,255, 24, 24, 24,255, 31, 31, 31,255, 40, 40, 40,255, 52, 52, 52,255, 65, 65, 65,255,148,148,148,255,
-156,156,156,255,166,166,166,255,177,177,177,255,191,191,191,255,206,206,206,255,223,223,223,255,240,240,240,255,232,232,232,255,
-208,208,208,255,182,182,182,255,158,158,158,255,135,135,135,255,114,114,114,255, 96, 96, 96,255, 79, 79, 79,255,126,126,126,255,
-138,138,138,255,136,136,136,255,136,136,136,255,138,138,138,255,142,142,142,255,148,148,148,255,155,155,155,255,155,155,155,255,
-147,147,147,255,141,141,141,255,138,138,138,255,136,136,136,255,136,136,136,255,138,138,138,255,142,142,142,255, 80, 80, 80,255,
- 97, 97, 97,255,116,116,116,255,137,137,137,255,159,159,159,255,184,184,184,255,210,210,210,255,235,235,235,255,240,240,240,255,
-223,223,223,255,205,205,205,255,190,190,190,255,176,176,176,255,164,164,164,255,154,154,154,255,147,147,147,255, 79, 79, 79,255,
- 51, 51, 51,255, 40, 40, 40,255, 31, 31, 31,255, 24, 24, 24,255, 19, 19, 19,255, 15, 15, 15,255, 14, 14, 14,255,156,155,155,255,
-148,148,148,255,142,142,142,255,138,138,138,255,136,136,136,255,136,136,136,255,138,138,138,255,141,141,141,255, 78, 78, 78,255,
- 94, 94, 94,255,112,112,112,255,132,132,132,255,153,153,153,255,175,175,175,255,195,195,195,255,210,210,210,255,224,224,224,255,
-213,213,213,255,200,200,200,255,186,186,186,255,173,173,173,255,162,162,162,255,153,153,153,255,146,146,146,255, 78, 78, 78,255,
- 50, 50, 50,255, 39, 39, 39,255, 30, 30, 30,255, 23, 23, 23,255, 18, 18, 18,255, 15, 15, 15,255, 14, 14, 14,255,157,157,157,255,
-149,149,149,255,142,142,142,255,138,138,138,255,136,136,136,255,136,136,136,255,137,137,137,255,140,140,140,255, 74, 74, 74,255,
- 89, 89, 89,255,106,106,106,255,124,124,124,255,142,142,142,255,160,160,160,255,175,175,175,255,184,184,184,255,206,206,206,255,
-200,200,200,255,190,190,190,255,179,179,179,255,169,169,169,255,159,159,159,255,151,151,151,255,144,144,144,255, 75, 75, 75,255,
- 47, 47, 47,255, 37, 37, 37,255, 29, 29, 29,255, 22, 22, 22,255, 18, 18, 18,255, 15, 15, 15,255, 14, 14, 14,255,158,158,158,255,
-150,150,150,255,144,144,144,255,139,139,139,255,136,136,136,255,136,135,135,255,136,136,136,255,139,139,139,255, 68, 68, 68,255,
- 82, 82, 82,255, 97, 97, 97,255,112,112,112,255,128,128,128,255,142,142,142,255,153,153,153,255,159,159,159,255,191,191,191,255,
-187,187,187,255,180,180,180,255,171,171,171,255,162,162,162,255,154,154,154,255,148,147,147,255,142,142,142,255, 72, 72, 72,255,
- 44, 44, 44,255, 35, 35, 35,255, 27, 27, 27,255, 21, 21, 21,255, 17, 17, 17,255, 15, 15, 15,255, 14, 14, 14,255,161,161,161,255,
-152,152,152,255,145,145,145,255,140,140,140,255,137,137,137,255,136,136,136,255,136,136,136,255,138,138,138,255, 62, 62, 62,255,
- 74, 74, 74,255, 87, 87, 87,255,100,100,100,255,112,112,112,255,124,124,124,255,132,132,132,255,137,137,137,255,177,177,177,255,
-174,174,174,255,169,169,169,255,163,163,163,255,156,156,156,255,150,150,150,255,144,144,144,255,140,140,140,255, 67, 67, 67,255,
- 40, 40, 40,255, 32, 32, 32,255, 25, 25, 25,255, 20, 20, 20,255, 16, 16, 16,255, 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,
-155,155,155,255,148,148,148,255,142,142,142,255,138,138,138,255,136,136,136,255,136,136,136,255,136,136,136,255, 54, 54, 54,255,
- 65, 65, 65,255, 76, 76, 76,255, 87, 87, 87,255, 97, 97, 97,255,106,106,106,255,112,112,112,255,116,116,116,255,165,165,165,255,
-163,163,163,255,159,159,159,255,155,155,155,255,150,150,150,255,145,145,145,255,141,141,141,255,137,137,137,255, 62, 62, 62,255,
- 36, 36, 36,255, 28, 28, 28,255, 22, 22, 22,255, 18, 18, 18,255, 15, 15, 15,255, 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,
-158,158,158,255,151,151,151,255,144,144,144,255,140,140,140,255,137,137,137,255,136,136,136,255,136,136,136,255, 47, 47, 47,255,
- 56, 56, 56,255, 65, 65, 65,255, 74, 74, 74,255, 82, 82, 82,255, 89, 89, 89,255, 94, 94, 94,255, 97, 97, 97,255,155,155,155,255,
-154,154,154,255,151,151,151,255,148,148,148,255,144,144,144,255,140,140,140,255,138,138,138,255,136,136,136,255, 58, 58, 58,255,
- 31, 31, 31,255, 25, 25, 25,255, 20, 20, 20,255, 17, 17, 17,255, 15, 15, 15,255, 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,
-161,161,161,255,154,154,154,255,148,148,148,255,142,142,142,255,139,139,139,255,137,137,137,255,136,136,136,255, 40, 40, 40,255,
- 47, 47, 47,255, 54, 54, 54,255, 62, 62, 62,255, 68, 68, 68,255, 74, 74, 74,255, 78, 78, 78,255, 80, 80, 80,255,147,147,147,255,
-146,146,146,255,144,144,144,255,142,142,142,255,139,139,139,255,137,137,137,255,135,135,135,255,135,135,135,255, 53, 53, 53,255,
- 27, 27, 27,255, 22, 22, 22,255, 18, 18, 18,255, 15, 15, 15,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 44, 44, 44,255,
- 44, 44, 44,255, 43, 43, 43,255, 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, 46, 46, 46,255, 49, 49, 49,255,115,115,115,255,
-116,116,116,255,118,118,118,255,120,120,120,255,122,122,122,255,124,124,124,255,126,126,126,255,126,126,126,255, 80, 80, 80,255,
- 79, 79, 79,255, 76, 76, 76,255, 72, 72, 72,255, 67, 67, 67,255, 62, 62, 62,255, 58, 58, 58,255, 53, 53, 53,255,136,136,136,255,
-115,115,115,255,117,117,117,255,120,120,120,255,124,124,124,255,130,130,130,255,132,132,132,255,132,132,132,255, 14, 14, 14,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 15, 15, 15,255, 16, 16, 16,255, 19, 19, 19,255, 23, 23, 23,255,137,137,137,255,
-136,136,136,255,136,136,136,255,136,136,136,255,136,136,136,255,137,137,137,255,138,138,138,255,138,138,138,255, 52, 52, 52,255,
- 50, 50, 50,255, 48, 48, 48,255, 44, 44, 44,255, 40, 40, 40,255, 36, 36, 36,255, 31, 31, 31,255, 27, 27, 27,255,115,115,115,255,
-141,141,141,255,145,145,145,255,150,150,150,255,157,157,157,255,161,161,161,255,161,161,161,255,161,161,161,255, 14, 14, 14,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 15, 15, 15,255, 16, 16, 16,255, 19, 19, 19,255,139,139,139,255,
-137,137,137,255,136,136,136,255,136,136,136,255,136,135,135,255,136,136,136,255,136,136,136,255,136,136,136,255, 41, 41, 41,255,
- 40, 40, 40,255, 38, 38, 38,255, 35, 35, 35,255, 32, 32, 32,255, 29, 29, 29,255, 25, 25, 25,255, 22, 22, 22,255,116,116,116,255,
-145,145,145,255,150,150,150,255,156,156,156,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, 14, 14, 14,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 15, 15, 15,255, 16, 16, 16,255,142,142,142,255,
-140,140,140,255,138,138,138,255,137,137,137,255,136,136,136,255,136,136,136,255,136,136,136,255,136,136,136,255, 31, 31, 31,255,
- 31, 31, 31,255, 29, 29, 29,255, 27, 27, 27,255, 25, 25, 25,255, 23, 23, 23,255, 20, 20, 20,255, 18, 18, 18,255,119,119,119,255,
-150,150,150,255,156,156,156,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, 14, 14, 14,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,148,148,148,255,
-144,144,144,255,142,142,142,255,140,140,140,255,139,139,139,255,138,138,138,255,138,138,138,255,138,138,138,255, 24, 24, 24,255,
- 24, 24, 24,255, 23, 23, 23,255, 21, 21, 21,255, 20, 20, 20,255, 18, 18, 18,255, 17, 17, 17,255, 15, 15, 15,255,124,124,124,255,
-157,157,157,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, 14, 14, 14,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,154,154,154,255,
-151,151,151,255,148,148,148,255,145,145,145,255,144,144,144,255,142,142,142,255,142,142,142,255,141,141,141,255, 19, 19, 19,255,
- 19, 19, 19,255, 18, 18, 18,255, 17, 17, 17,255, 16, 16, 16,255, 15, 15, 15,255, 15, 15, 15,255, 14, 14, 14,255,129,129,129,255,
-161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, 14, 14, 14,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,
-158,158,158,255,155,155,155,255,152,152,152,255,150,150,150,255,149,149,149,255,148,148,148,255,147,147,147,255, 16, 16, 16,255,
- 15, 15, 15,255, 15, 15, 15,255, 15, 15, 15,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,131,131,131,255,
-161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, 14, 14, 14,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,161,161,161,255,
-161,161,161,255,161,161,161,255,161,161,161,255,158,158,158,255,157,157,157,255,155,155,155,255,155,155,155,255, 14, 14, 14,255,
- 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255, 14, 14, 14,255,131,131,131,255,
-161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255,161,161,161,255, 77, 69, 0, 0,
-232, 4, 0, 0,136,227, 26, 4, 0, 0, 0, 0, 50, 0, 0, 0, 1, 0, 0, 0,136, 37, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 99,111,114,110,101,114, 95, 99,104,101,
- 99,107,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,232, 26, 4, 0, 0, 0, 0,136,178,198, 4, 0, 0, 0, 0,248,200,198, 4,
- 0, 0, 0, 0,216,185,198, 4, 0, 0, 0, 0,136,207,198, 4, 0, 0, 0, 0,152,226,198, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,235, 26, 4, 0, 0, 0, 0, 24,247, 26, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,233, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,200,244, 26, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,136,183,198, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 2, 0, 0, 0, 5, 0, 0, 0, 28, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,198,198, 4, 0, 0, 0, 0,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,
- 1, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255, 2, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255, 3, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,116, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0,144, 1, 0, 0, 0, 0, 0, 0,
-213,204, 76, 63,255,204, 76, 63, 0, 0,104,182, 30, 0,128, 63,140, 0,128, 63,214,255,127, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 83, 0, 30, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 16, 0, 0, 0,184,232, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 88,120, 26, 4, 0, 0, 0, 0,104,142, 26, 4,
- 0, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0, 24,233, 26, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,235, 26, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 16, 9, 0, 0,104,235, 26, 4, 0, 0, 0, 0, 56, 0, 0, 0,116, 0, 0, 0,214, 28,215, 63,
- 77, 31, 87, 65, 74, 36,190,192, 1,192, 1,192,129, 90, 0, 0,173, 86,161, 64,144, 87, 33, 65, 74, 36,190,192, 1,192, 1,192,
-129, 90, 0, 0,204,194,135,184,112, 59, 60, 65, 72, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, 24, 33,215,191,147, 87, 33, 65,
- 68, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, 9, 32, 87,192,182,115, 6, 65, 68, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,
-195, 87,161,192,179, 31,215, 64, 66, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,202, 28,215, 63,146, 87, 33, 65, 72, 36,190,192,
- 0, 0, 0, 0,255,127, 0, 0, 71,248,139,184,181,115, 6, 65, 70, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, 41, 33,215,191,
-175, 31,215, 64, 68, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, 15, 32, 87,192,244, 87,161, 64, 66, 36,190,192, 0, 0, 0, 0,
-255,127, 0, 0,223, 29, 87, 64,179,115, 6, 65, 72, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,220,160,141,184,242, 87,161, 64,
- 68, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,172, 86,161, 64,170, 31,215, 64, 72, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,
-218, 29, 87, 64,240, 87,161, 64, 70, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,123, 31,215,192,180,115, 6, 65,136, 43,100,192,
-129, 90,127,165, 0, 0, 0, 0,194, 87,161,192,147, 87, 33, 65,142, 43,100,192,129, 90,127,165, 0, 0, 0, 0, 11, 32, 87,192,
-113, 59, 60, 65,147, 43,100,192,129, 90,127,165, 0, 0, 0, 0, 45, 33,215,191, 81, 31, 87, 65,153, 43,100,192,129, 90,127,165,
- 0, 0, 0, 0,123, 31,215,192,180,115, 6, 65,253, 28,152,191,129, 90,127,165, 0, 0, 0, 0,194, 87,161,192,147, 87, 33, 65,
- 8, 29,152,191,129, 90,127,165, 0, 0, 0, 0, 11, 32, 87,192,113, 59, 60, 65, 19, 29,152,191,129, 90,127,165, 0, 0, 0, 0,
- 45, 33,215,191, 81, 31, 87, 65, 30, 29,152,191,129, 90,127,165, 0, 0, 0, 0,123, 31,215,192,180,115, 6, 65, 12, 29,152, 63,
-129, 90,127,165, 0, 0, 0, 0,194, 87,161,192,147, 87, 33, 65, 1, 29,152, 63,129, 90,127,165, 0, 0, 0, 0, 11, 32, 87,192,
-113, 59, 60, 65,245, 28,152, 63,129, 90,127,165, 0, 0, 0, 0, 45, 33,215,191, 81, 31, 87, 65,234, 28,152, 63,129, 90,127,165,
- 0, 0, 0, 0,122, 31,215,192,181,115, 6, 65,139, 43,100, 64,129, 90,127,165, 0, 0, 0, 0,193, 87,161,192,148, 87, 33, 65,
-133, 43,100, 64,129, 90,127,165, 0, 0, 0, 0, 9, 32, 87,192,114, 59, 60, 65,128, 43,100, 64,129, 90,127,165, 0, 0, 0, 0,
- 41, 33,215,191, 81, 31, 87, 65,128, 43,100, 64,129, 90,127,165, 0, 0, 0, 0,123, 31,215,192,180,115, 6, 65, 72, 36,190,192,
-255, 63, 1,192,129, 90, 0, 0,194, 87,161,192,147, 87, 33, 65, 74, 36,190,192,255, 63, 1,192,129, 90, 0, 0, 11, 32, 87,192,
-113, 59, 60, 65, 76, 36,190,192,255, 63, 1,192,129, 90, 0, 0, 45, 33,215,191, 81, 31, 87, 65, 78, 36,190,192,255, 63, 1,192,
-129, 90, 0, 0,183,115, 6,193,128, 31,215, 64,127, 43,100, 64,129, 90,127,165, 0, 0, 0, 0,184,115, 6,193,127, 31,215, 64,
-232, 28,152, 63,129, 90,127,165, 0, 0, 0, 0,184,115, 6,193,127, 31,215, 64, 32, 29,152,191,129, 90,127,165, 0, 0, 0, 0,
-184,115, 6,193,127, 31,215, 64,154, 43,100,192,129, 90,127,165, 0, 0, 0, 0,222, 33,215,191,210,189,135, 56, 72, 36,190,192,
- 0, 0, 0, 0,255,127, 0, 0,103, 32, 87,192, 14, 33,215, 63, 72, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,241, 87,161,192,
- 2, 32, 87, 64, 72, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,171, 31,215,192,190, 87,161, 64, 72, 36,190,192, 0, 0, 0, 0,
-255,127, 0, 0,235,192,138,184, 43, 3,114, 65,134, 43,100,192, 0, 0, 1,128, 0, 0, 0, 0,190, 28,215, 63, 78, 31, 87, 65,
-140, 43,100,192,127,165,127,165, 0, 0, 0, 0,213, 29, 87, 64,112, 59, 60, 65,146, 43,100,192,127,165,127,165, 0, 0, 0, 0,
-175, 86,161, 64,146, 87, 33, 65,151, 43,100,192,127,165,127,165, 0, 0, 0, 0,235,192,138,184, 43, 3,114, 65,248, 28,152,191,
- 0, 0, 1,128, 0, 0, 0, 0,190, 28,215, 63, 78, 31, 87, 65, 4, 29,152,191,127,165,127,165, 0, 0, 0, 0,213, 29, 87, 64,
-112, 59, 60, 65, 15, 29,152,191,127,165,127,165, 0, 0, 0, 0,235,192,138,184, 43, 3,114, 65, 16, 29,152, 63, 0, 0, 1,128,
- 0, 0, 0, 0,190, 28,215, 63, 78, 31, 87, 65, 4, 29,152, 63,127,165,127,165, 0, 0, 0, 0,213, 29, 87, 64,112, 59, 60, 65,
-249, 28,152, 63,127,165,127,165, 0, 0, 0, 0,175, 86,161, 64,146, 87, 33, 65,237, 28,152, 63,127,165,127,165, 0, 0, 0, 0,
-235,192,138,184, 43, 3,114, 65,142, 43,100, 64, 0, 0, 1,128, 0, 0, 0, 0,190, 28,215, 63, 78, 31, 87, 65,136, 43,100, 64,
-127,165,127,165, 0, 0, 0, 0,221, 29, 87, 64,110, 59, 60, 65,130, 43,100, 64,127,165,127,165, 0, 0, 0, 0,175, 86,161, 64,
-146, 87, 33, 65,131, 43,100, 64,127,165,127,165, 0, 0, 0, 0,235,192,138,184, 43, 3,114, 65, 72, 36,190,192, 0, 0,126,151,
-230, 73, 0, 0,213, 29, 87, 64,112, 59, 60, 65, 76, 36,190,192, 1,192, 1,192,129, 90, 0, 0,149, 30,215, 64,151,115, 6, 65,
- 72, 36,190,192, 1,192, 1,192,129, 90, 0, 0, 42,115, 6, 65,117, 31,215, 64,137, 43,100, 64,127,165,127,165, 0, 0, 0, 0,
-149, 30,215, 64,151,115, 6, 65,143, 43,100, 64,127,165,127,165, 0, 0, 0, 0, 42,115, 6, 65,117, 31,215, 64, 6, 29,152, 63,
-127,165,127,165, 0, 0, 0, 0,149, 30,215, 64,151,115, 6, 65, 18, 29,152, 63,127,165,127,165, 0, 0, 0, 0, 42,115, 6, 65,
-117, 31,215, 64, 2, 29,152,191,127,165,127,165, 0, 0, 0, 0,149, 30,215, 64,151,115, 6, 65,246, 28,152,191,127,165,127,165,
- 0, 0, 0, 0, 42,115, 6, 65,117, 31,215, 64,139, 43,100,192,127,165,127,165, 0, 0, 0, 0, 3, 32, 87, 64,150, 29,215, 63,
- 68, 36,190,192, 0, 0, 0, 0,254,127, 0, 0,126, 31,215, 64,217, 86,161, 64, 72, 36,190,192, 0, 0, 0, 0,254,127, 0, 0,
-158,115, 6, 65,146, 30,215, 64, 72, 36,190,192, 1,192, 1,192,130, 90, 0, 0,158,115, 6, 65,146, 30,215, 64,244, 35,190, 64,
- 1,192, 1,192,130, 90, 0, 0,126, 31,215, 64,217, 86,161, 64,244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,192, 87,161, 64,
- 62, 30, 87, 64,248, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, 3, 32, 87, 64,150, 29,215, 63,248, 35,190, 64, 0, 0, 0, 0,
-255,127, 0, 0, 15, 33,215, 63, 24, 2, 41,184,250, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,149, 30,215, 64,151,115, 6, 65,
-244, 35,190, 64, 1,192, 1,192,129, 90, 0, 0,213, 29, 87, 64,112, 59, 60, 65,240, 35,190, 64, 1,192, 1,192,129, 90, 0, 0,
-235,192,138,184, 43, 3,114, 65,244, 35,190, 64, 0, 0,126,151,230, 73, 0, 0,171, 31,215,192,190, 87,161, 64,244, 35,190, 64,
- 0, 0, 0, 0,255,127, 0, 0,241, 87,161,192, 2, 32, 87, 64,244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,103, 32, 87,192,
- 14, 33,215, 63,244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,222, 33,215,191,210,189,135, 56,244, 35,190, 64, 0, 0, 0, 0,
-255,127, 0, 0, 45, 33,215,191, 81, 31, 87, 65,238, 35,190, 64,255, 63, 1,192,129, 90, 0, 0, 11, 32, 87,192,113, 59, 60, 65,
-240, 35,190, 64,255, 63, 1,192,129, 90, 0, 0,194, 87,161,192,147, 87, 33, 65,242, 35,190, 64,255, 63, 1,192,129, 90, 0, 0,
-123, 31,215,192,180,115, 6, 65,244, 35,190, 64,255, 63, 1,192,129, 90, 0, 0,254,226,142,184,239, 33,215, 63,248, 35,190, 64,
- 0, 0, 0, 0,255,127, 1, 0,189, 28,215, 63,107, 32, 87, 64,248, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,218, 29, 87, 64,
-240, 87,161, 64,246, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,172, 86,161, 64,170, 31,215, 64,244, 35,190, 64, 0, 0, 0, 0,
-255,127, 0, 0, 46, 33,215,191,113, 32, 87, 64,250, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,220,160,141,184,242, 87,161, 64,
-248, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,197, 28,215, 63,172, 31,215, 64,246, 35,190, 64, 0, 0, 0, 0,254,127, 0, 0,
-223, 29, 87, 64,179,115, 6, 65,244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, 15, 32, 87,192,244, 87,161, 64,250, 35,190, 64,
- 0, 0, 0, 0,255,127, 0, 0, 41, 33,215,191,175, 31,215, 64,248, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, 71,248,139,184,
-181,115, 6, 65,246, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,202, 28,215, 63,146, 87, 33, 65,244, 35,190, 64, 0, 0, 0, 0,
-255,127, 0, 0,195, 87,161,192,179, 31,215, 64,250, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, 9, 32, 87,192,182,115, 6, 65,
-248, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0, 24, 33,215,191,147, 87, 33, 65,248, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,
-204,194,135,184,112, 59, 60, 65,244, 35,190, 64, 0, 0, 0, 0,255,127, 0, 0,173, 86,161, 64,144, 87, 33, 65,242, 35,190, 64,
- 1,192, 1,192,129, 90, 0, 0,214, 28,215, 63, 77, 31, 87, 65,242, 35,190, 64, 1,192, 1,192,129, 90, 0, 0,183,115, 6,193,
-127, 31,215, 64,238, 35,190, 64,255, 63, 1,192,129, 90, 0, 0, 98,234, 53, 56, 38, 33,215,191,244, 35,190, 64, 0, 0, 0, 0,
-255,127, 0, 0,193, 87,161, 64, 62, 30, 87, 64, 69, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, 15, 33,215, 63,226, 3, 41,184,
- 67, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, 98,234, 53, 56, 38, 33,215,191, 72, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,
-150, 30,215, 64,151,115, 6, 65,135, 43,100,192,127,165,127,165, 0, 0, 0, 0,177, 86,161, 64,146, 87, 33, 65, 30, 29,152,191,
-127,165,127,165, 0, 0, 0, 0,183,115, 6,193,127, 31,215, 64, 78, 36,190,192,255, 63, 1,192,129, 90, 0, 0,222,158,142,184,
-239, 33,215, 63, 67, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,191, 28,215, 63,107, 32, 87, 64, 69, 36,190,192, 0, 0, 0, 0,
-255,127, 0, 0, 44, 33,215,191,113, 32, 87, 64, 67, 36,190,192, 0, 0, 0, 0,255,127, 0, 0,201, 28,215, 63,172, 31,215, 64,
- 71, 36,190,192, 0, 0, 0, 0,255,127, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0,200,244, 26, 4, 0, 0, 0, 0,124, 1, 0, 0,
- 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 24,247, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 10, 0, 0, 24,247, 26, 4, 0, 0, 0, 0, 53, 0, 0, 0,
-215, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0,
- 8, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 8, 0, 0, 0,
- 0, 0, 34, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0,
- 6, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0,
- 1, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 12, 0, 0, 0,
- 0, 0, 34, 0, 17, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0,
- 31, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 30, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0,
- 16, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 16, 0, 0, 0,
- 0, 0, 34, 0, 15, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0,
- 18, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0,
- 20, 0, 0, 0, 24, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0, 23, 0, 0, 0,
- 0, 0, 34, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 25, 0, 0, 0,
- 29, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0,
- 23, 0, 0, 0, 24, 0, 0, 0, 0, 0, 34, 0, 23, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 23, 0, 0, 0,
- 0, 0, 34, 0, 22, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 28, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0,
- 28, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0,
- 32, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 32, 0, 0, 0,
- 0, 0, 34, 0, 4, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 30, 0, 0, 0, 0, 0, 34, 0, 34, 0, 0, 0,
- 35, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0, 39, 0, 0, 0, 0, 0, 34, 0,
- 40, 0, 0, 0, 41, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 35, 0, 0, 0,
- 0, 0, 34, 0, 18, 0, 0, 0, 36, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0,
- 40, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 41, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0,
- 56, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 57, 0, 0, 0,
- 0, 0, 34, 0, 44, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, 43, 0, 0, 0,
- 44, 0, 0, 0, 0, 0, 34, 0, 43, 0, 0, 0, 47, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0,
- 42, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 51, 0, 0, 0, 0, 0, 34, 0, 47, 0, 0, 0, 48, 0, 0, 0,
- 0, 0, 34, 0, 47, 0, 0, 0, 50, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, 34, 0, 46, 0, 0, 0,
- 49, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 56, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, 52, 0, 0, 0, 0, 0, 34, 0,
- 51, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0, 51, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0, 54, 0, 0, 0,
- 0, 0, 34, 0, 49, 0, 0, 0, 50, 0, 0, 0, 0, 0, 34, 0, 49, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0,
- 56, 0, 0, 0, 0, 0, 34, 0, 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0,
- 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 62, 0, 0, 0, 63, 0, 0, 0,
- 0, 0, 34, 0, 63, 0, 0, 0, 65, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 65, 0, 0, 0, 0, 0, 34, 0, 62, 0, 0, 0,
- 64, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0,
- 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 45, 0, 0, 0,
- 0, 0, 34, 0, 1, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 25, 0, 0, 0,
- 49, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 42, 0, 0, 0, 0, 0, 34, 0,
- 12, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0, 69, 0, 0, 0,
- 0, 0, 34, 0, 59, 0, 0, 0, 69, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 68, 0, 0, 0, 0, 0, 34, 0, 74, 0, 0, 0,
- 86, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 87, 0, 0, 0, 0, 0, 34, 0, 72, 0, 0, 0, 88, 0, 0, 0, 0, 0, 34, 0,
- 71, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0, 75, 0, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 74, 0, 0, 0,
- 0, 0, 34, 0, 71, 0, 0, 0, 72, 0, 0, 0, 0, 0, 34, 0, 76, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 75, 0, 0, 0,
- 89, 0, 0, 0, 0, 0, 34, 0, 75, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0, 77, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0,
- 76, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0, 76, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0, 98, 0, 0, 0,
- 0, 0, 34, 0, 79, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0, 90, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0,
- 86, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0, 79, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0, 81, 0, 0, 0, 0, 0, 34, 0,
- 85, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0,100, 0, 0, 0,
- 0, 0, 34, 0, 82, 0, 0, 0,101, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, 83, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0,
- 85, 0, 0, 0, 0, 0, 34, 0, 89, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0, 89, 0, 0, 0, 0, 0, 34, 0,
- 88, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, 87, 0, 0, 0, 88, 0, 0, 0, 0, 0, 34, 0, 87, 0, 0, 0, 91, 0, 0, 0,
- 0, 0, 34, 0, 86, 0, 0, 0, 87, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0, 90, 0, 0, 0, 0, 0, 34, 0, 93, 0, 0, 0,
-102, 0, 0, 0, 0, 0, 34, 0, 93, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, 93, 0, 0, 0, 0, 0, 34, 0,
- 92, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0, 95, 0, 0, 0,
- 0, 0, 34, 0, 90, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 97, 0, 0, 0,
-101, 0, 0, 0, 0, 0, 34, 0, 96, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0, 96, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0,
- 95, 0, 0, 0, 96, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0, 94, 0, 0, 0, 95, 0, 0, 0,
- 0, 0, 34, 0, 94, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0,
-101, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0,
- 60, 0, 0, 0, 70, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 75, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 77, 0, 0, 0,
- 0, 0, 34, 0, 54, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 76, 0, 0, 0, 0, 0, 34, 0, 56, 0, 0, 0,
-102, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 85, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0,
- 28, 0, 0, 0, 83, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 82, 0, 0, 0, 0, 0, 34, 0,107, 0, 0, 0,112, 0, 0, 0,
- 0, 0, 34, 0,107, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0,112, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0,112, 0, 0, 0,
-114, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0,
- 11, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0,115, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0,115, 0, 0, 0,
- 0, 0, 34, 0, 11, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0,113, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0,
-115, 0, 0, 0, 0, 0, 34, 0, 31, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 41, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0,
- 35, 0, 0, 0, 36, 0, 0, 0, 0, 0, 34, 0, 37, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 39, 0, 0, 0, 40, 0, 0, 0,
- 0, 0, 34, 0, 30, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, 39, 0, 0, 0,
-114, 0, 0, 0, 0, 0, 34, 0, 45, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0,
- 45, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0,110, 0, 0, 0,
- 0, 0, 34, 0, 60, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0,
-109, 0, 0, 0, 0, 0, 34, 0, 64, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0,109, 0, 0, 0, 0, 0, 34, 0,
- 33, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 68, 0, 0, 0, 69, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0,106, 0, 0, 0,
- 0, 0, 34, 0, 38, 0, 0, 0,108, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0,
-113, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0, 72, 0, 0, 0, 73, 0, 0, 0, 0, 0, 34, 0,
- 70, 0, 0, 0, 71, 0, 0, 0, 0, 0, 34, 0, 74, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0, 77, 0, 0, 0, 82, 0, 0, 0,
- 0, 0, 34, 0, 85, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 80, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0,
-104, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0, 34, 0, 0, 0,104, 0, 0, 0, 0, 0, 34, 0,
- 67, 0, 0, 0,107, 0, 0, 0, 0, 0, 34, 0, 68, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 68, 65, 84, 65, 8, 2, 0, 0,
-168,198,198, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 97, 99,101, 45, 86,101,114,116,101,120,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,207,198, 4, 0, 0, 0, 0, 17, 0, 0, 0, 12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 32, 70, 97, 99,
-101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,226,198, 4, 0, 0, 0, 0,
- 26, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 78, 71,111,110, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-216,185,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,192, 18, 0, 0,
-136,207,198, 4, 0, 0, 0, 0, 61, 0, 0, 0,144, 1, 0, 0,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0,128,105,188,189,
-120, 47, 41, 63, 0, 0, 0, 0,160, 84,104, 61, 0, 29, 3, 63, 0, 0, 0, 0, 26, 95, 82, 62,120, 47, 41, 63, 0, 0, 0, 0,
-122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,127, 84,181, 62,242, 65, 79, 63,
- 0, 0, 0, 0,190,188, 0, 63,102, 84,117, 63, 0, 0, 0, 0,160, 84,104, 61, 0, 29, 3, 63, 0, 0, 0, 0,128,106,188,189,
-176, 20,186, 62, 0, 0, 0, 0,144, 82,104, 61,128,223, 91, 62, 0, 0, 0, 0, 14, 95, 82, 62, 0, 21,186, 62, 0, 0, 0, 0,
-127, 84,181, 62,242, 65, 79, 63, 0, 0, 0, 0, 26, 95, 82, 62,120, 47, 41, 63, 0, 0, 0, 0,122, 84,181, 62,248, 28, 3, 63,
- 0, 0, 0, 0,188,188, 0, 63,120, 47, 41, 63, 0, 0, 0, 0, 56,207, 38, 63,111,179,141, 63, 0, 0, 0, 0,190,188, 0, 63,
-102, 84,117, 63, 0, 0, 0, 0, 52,207, 38, 63,236, 65, 79, 63, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0,
-122, 84,181, 62,248, 28, 3, 63, 0, 0, 0, 0, 14, 95, 82, 62, 0, 21,186, 62, 0, 0, 0, 0,122, 84,181, 62, 32,224, 91, 62,
- 0, 0, 0, 0,185,188, 0, 63, 0, 21,186, 62, 0, 0, 0, 0, 52,207, 38, 63,236, 65, 79, 63, 0, 0, 0, 0,188,188, 0, 63,
-120, 47, 41, 63, 0, 0, 0, 0, 52,207, 38, 63,248, 28, 3, 63, 0, 0, 0, 0,174,225, 76, 63,116, 47, 41, 63, 0, 0, 0, 0,
-122, 84,181, 62, 32,224, 91, 62, 0, 0, 0, 0,138, 94, 82, 62, 48, 43,135, 61, 0, 0, 0, 0, 61, 84,181, 62,176,104,169,189,
- 0, 0, 0, 0,185,188, 0, 63, 96, 44,135, 61, 0, 0, 0, 0, 52,207, 38, 63,248, 28, 3, 63, 0, 0, 0, 0,185,188, 0, 63,
- 0, 21,186, 62, 0, 0, 0, 0, 51,207, 38, 63, 24,224, 91, 62, 0, 0, 0, 0,174,225, 76, 63, 0, 21,186, 62, 0, 0, 0, 0,
- 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0,174,225, 76, 63,116, 47, 41, 63, 0, 0, 0, 0, 42,244,114, 63,244, 28, 3, 63,
- 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 51,207, 38, 63, 24,224, 91, 62, 0, 0, 0, 0,185,188, 0, 63,
- 96, 44,135, 61, 0, 0, 0, 0,248,207, 38, 63,144,109,169,189, 0, 0, 0, 0,112,226, 76, 63, 64, 38,135, 61, 0, 0, 0, 0,
-240,244,114, 63, 4,221, 91, 62, 0, 0, 0, 0,180,131,140, 63,116, 19,186, 62, 0, 0, 0, 0, 42,244,114, 63,244, 28, 3, 63,
- 0, 0, 0, 0,174,225, 76, 63, 0, 21,186, 62, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 26, 95, 82, 62,
-102, 84,117, 63, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0,
-160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63,
- 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0,122, 84,181, 62,
-113,179,141, 63, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0,
- 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,
- 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 64,127,118,190,
-216, 28, 3, 63, 0, 0, 0, 0, 64,127,118,190,216, 28, 3, 63, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0,
-122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,
- 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0,128,105,188,189,
-120, 47, 41, 63, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0,
-188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63,
- 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,200, 84,104, 61,
-242, 65, 79, 63, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,
- 96,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 56,127,118,190,220, 28, 3, 63, 0, 0, 0, 0, 64,127,118,190,216, 28, 3, 63,
- 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 26, 95, 82, 62,
-102, 84,117, 63, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0,
-200, 84,104, 61,244, 65, 79, 63, 0, 0, 0, 0, 96,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 96,105,188,189,120, 47, 41, 63,
- 0, 0, 0, 0,200, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0,172,225, 76, 63,
-102, 84,117, 63, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0,
-188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 56,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,
- 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 52,207, 38, 63,
-111,179,141, 63, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0,
- 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63,
- 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0,188,188, 0, 63,
-173,188,160, 63, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0,
-174,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,
- 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0,174,225, 76, 63,
-102, 84,117, 63, 0, 0, 0, 0,174,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0,
- 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0,190,188, 0, 63,171,188,160, 63, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,
- 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0,162,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 99,131,140, 63,
- 72, 47, 41, 63, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0,
- 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,
- 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 99,131,140, 63,
- 76, 47, 41, 63, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0,
- 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63,
- 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 99,131,140, 63,
- 76, 47, 41, 63, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0,244,140,159, 63, 50, 28, 3, 63, 0, 0, 0, 0,
- 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0,224,151,158, 63, 96,211, 93, 59,
- 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0,247,168, 27, 63,
- 96,211, 93, 59, 0, 0, 0, 0,248,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0,
-176,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0,224,151,158, 63, 96,211, 93, 59,
- 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0, 21,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,144,128, 81, 63,
- 96,211, 93, 59, 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,
-247,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 85,162,203, 62, 96,211, 93, 59, 0, 0, 0, 0, 85,162,203, 62, 96,211, 93, 59,
- 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 24,172,131, 63,
- 96,211, 93, 59, 0, 0, 0, 0, 21,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0,
-142,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0,246,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59,
- 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0,227,151,158, 63,
- 96,211, 93, 59, 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0,
- 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,149,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0,142,128, 81, 63, 96,211, 93, 59,
- 0, 0, 0, 0, 24,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,251,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 84,162,203, 62,
- 96,211, 93, 59, 0, 0, 0, 0, 86,162,203, 62, 96,211, 93, 59, 0, 0, 0, 0,246,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0,
-225,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 21,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59,
- 0, 0, 0, 0,227,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0,146,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0,250,168, 27, 63,
- 96,211, 93, 59, 0, 0, 0, 0,251,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0,149,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0,
-250,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 84,162,203, 62, 96,211, 93, 59, 0, 0, 0, 0, 84,162,203, 62, 96,211, 93, 59,
- 0, 0, 0, 0,251,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 21,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,146,128, 81, 63,
- 96,211, 93, 59, 0, 0, 0, 0,149,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,
-227,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59,
- 0, 0, 0, 0,225,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0,149,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0,251,168, 27, 63,
- 96,211, 93, 59, 0, 0, 0, 0,246,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0,142,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0,
-227,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0, 24,172,131, 63, 96,211, 93, 59,
- 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0,246,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 86,162,203, 62,
- 96,211, 93, 59, 0, 0, 0, 0, 85,162,203, 62, 96,211, 93, 59, 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0,
- 24,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,142,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59,
- 0, 0, 0, 0, 21,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0,226,151,158, 63,
- 96,211, 93, 59, 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0,176,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0,
-144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0,247,168, 27, 63, 96,211, 93, 59,
- 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0,226,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 21,172,131, 63,
- 96,211, 93, 59, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,224,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0,
-247,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 85,162,203, 62, 96,211, 93, 59, 0, 0, 0, 0, 86,162,203, 62, 96,211, 93, 59,
- 0, 0, 0, 0,248,168, 27, 63, 96,211, 93, 59, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,144,128, 81, 63,
- 96,211, 93, 59, 0, 0, 0, 0,144,128, 81, 63, 96,211, 93, 59, 0, 0, 0, 0, 22,172,131, 63, 96,211, 93, 59, 0, 0, 0, 0,
-226,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0,176,131,185, 63, 96,211, 93, 59, 0, 0, 0, 0,174,131,185, 63, 96,211, 93, 59,
- 0, 0, 0, 0,224,151,158, 63, 96,211, 93, 59, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 44,244,114, 63,
-236, 65, 79, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0,
-161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63,
- 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 44,244,114, 63,
-236, 65, 79, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0,
-161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63,
- 0, 0, 0, 0,161,140,159, 63,210, 28, 3, 63, 0, 0, 0, 0, 99,131,140, 63, 72, 47, 41, 63, 0, 0, 0, 0, 44,244,114, 63,
-236, 65, 79, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63, 0, 0, 0, 0,
-174,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63,
- 0, 0, 0, 0,174,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0,188,188, 0, 63,
-173,188,160, 63, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0,
- 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0,174,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63,
- 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 52,207, 38, 63,
-111,179,141, 63, 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0,
- 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,
- 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0,172,225, 76, 63,
-102, 84,117, 63, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0,
- 56,207, 38, 63,111,179,141, 63, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63,
- 0, 0, 0, 0, 52,207, 38, 63,111,179,141, 63, 0, 0, 0, 0, 96,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 56,127,118,190,
-220, 28, 3, 63, 0, 0, 0, 0, 56,127,118,190,220, 28, 3, 63, 0, 0, 0, 0, 96,105,188,189,120, 47, 41, 63, 0, 0, 0, 0,
- 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,200, 84,104, 61,244, 65, 79, 63, 0, 0, 0, 0,200, 84,104, 61,242, 65, 79, 63,
- 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,190,188, 0, 63,171,188,160, 63, 0, 0, 0, 0,122, 84,181, 62,
-113,179,141, 63, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0,
-200, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 96,105,188,189,120, 47, 41, 63, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63,
- 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 26, 95, 82, 62,
-102, 84,117, 63, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0,
-128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 64,127,118,190,216, 28, 3, 63, 0, 0, 0, 0, 64,127,118,190,216, 28, 3, 63,
- 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,160, 84,104, 61,
-242, 65, 79, 63, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,
-188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63,
- 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0,128,105,188,189,
-120, 47, 41, 63, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0,
-122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63,
- 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 64,127,118,190,
-216, 28, 3, 63, 0, 0, 0, 0, 64,127,118,190,216, 28, 3, 63, 0, 0, 0, 0,128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0,
- 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63, 0, 0, 0, 0,160, 84,104, 61,242, 65, 79, 63,
- 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0,188,188, 0, 63,
-173,188,160, 63, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63, 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0,
-180,131,140, 63,116, 19,186, 62, 0, 0, 0, 0,244,140,159, 63, 50, 28, 3, 63, 0, 0, 0, 0, 99,131,140, 63, 76, 47, 41, 63,
- 0, 0, 0, 0, 42,244,114, 63,244, 28, 3, 63, 0, 0, 0, 0,174,225, 76, 63, 0, 21,186, 62, 0, 0, 0, 0, 51,207, 38, 63,
- 24,224, 91, 62, 0, 0, 0, 0,112,226, 76, 63, 64, 38,135, 61, 0, 0, 0, 0,240,244,114, 63, 4,221, 91, 62, 0, 0, 0, 0,
-185,188, 0, 63, 96, 44,135, 61, 0, 0, 0, 0, 61, 84,181, 62,176,104,169,189, 0, 0, 0, 0, 93,189, 0, 63, 80, 1,109,190,
- 0, 0, 0, 0,248,207, 38, 63,144,109,169,189, 0, 0, 0, 0,174,225, 76, 63,116, 47, 41, 63, 0, 0, 0, 0, 52,207, 38, 63,
-248, 28, 3, 63, 0, 0, 0, 0,174,225, 76, 63, 0, 21,186, 62, 0, 0, 0, 0, 42,244,114, 63,244, 28, 3, 63, 0, 0, 0, 0,
-185,188, 0, 63, 0, 21,186, 62, 0, 0, 0, 0,122, 84,181, 62, 32,224, 91, 62, 0, 0, 0, 0,185,188, 0, 63, 96, 44,135, 61,
- 0, 0, 0, 0, 51,207, 38, 63, 24,224, 91, 62, 0, 0, 0, 0,172,225, 76, 63,102, 84,117, 63, 0, 0, 0, 0, 52,207, 38, 63,
-236, 65, 79, 63, 0, 0, 0, 0,174,225, 76, 63,116, 47, 41, 63, 0, 0, 0, 0, 44,244,114, 63,236, 65, 79, 63, 0, 0, 0, 0,
-188,188, 0, 63,120, 47, 41, 63, 0, 0, 0, 0,122, 84,181, 62,248, 28, 3, 63, 0, 0, 0, 0,185,188, 0, 63, 0, 21,186, 62,
- 0, 0, 0, 0, 52,207, 38, 63,248, 28, 3, 63, 0, 0, 0, 0, 14, 95, 82, 62, 0, 21,186, 62, 0, 0, 0, 0,144, 82,104, 61,
-128,223, 91, 62, 0, 0, 0, 0,138, 94, 82, 62, 48, 43,135, 61, 0, 0, 0, 0,122, 84,181, 62, 32,224, 91, 62, 0, 0, 0, 0,
-190,188, 0, 63,102, 84,117, 63, 0, 0, 0, 0,127, 84,181, 62,242, 65, 79, 63, 0, 0, 0, 0,188,188, 0, 63,120, 47, 41, 63,
- 0, 0, 0, 0, 52,207, 38, 63,236, 65, 79, 63, 0, 0, 0, 0, 26, 95, 82, 62,120, 47, 41, 63, 0, 0, 0, 0,160, 84,104, 61,
- 0, 29, 3, 63, 0, 0, 0, 0, 14, 95, 82, 62, 0, 21,186, 62, 0, 0, 0, 0,122, 84,181, 62,248, 28, 3, 63, 0, 0, 0, 0,
-190,188, 0, 63,102, 84,117, 63, 0, 0, 0, 0, 56,207, 38, 63,111,179,141, 63, 0, 0, 0, 0,188,188, 0, 63,173,188,160, 63,
- 0, 0, 0, 0,122, 84,181, 62,113,179,141, 63, 0, 0, 0, 0, 26, 95, 82, 62,102, 84,117, 63, 0, 0, 0, 0,160, 84,104, 61,
-242, 65, 79, 63, 0, 0, 0, 0, 26, 95, 82, 62,120, 47, 41, 63, 0, 0, 0, 0,127, 84,181, 62,242, 65, 79, 63, 0, 0, 0, 0,
-128,105,188,189,120, 47, 41, 63, 0, 0, 0, 0, 64,127,118,190,216, 28, 3, 63, 0, 0, 0, 0,128,106,188,189,176, 20,186, 62,
- 0, 0, 0, 0,160, 84,104, 61, 0, 29, 3, 63, 0, 0, 0, 0, 68, 65, 84, 65, 64, 6, 0, 0,152,226,198, 4, 0, 0, 0, 0,
- 62, 0, 0, 0,144, 1, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255, 68, 65, 84, 65,128, 12, 0, 0,216,185,198, 4, 0, 0, 0, 0, 59, 0, 0, 0,144, 1, 0, 0,
- 31, 0, 0, 0, 44, 0, 0, 0, 30, 0, 0, 0, 49, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 48, 0, 0, 0,
- 33, 0, 0, 0, 45, 0, 0, 0, 32, 0, 0, 0, 47, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 46, 0, 0, 0,
- 5, 0, 0, 0, 59, 0, 0, 0, 41, 0, 0, 0, 53, 0, 0, 0, 40, 0, 0, 0, 58, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0,
- 3, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 10, 0, 0, 0, 6, 0, 0, 0,102, 0, 0, 0, 58, 0, 0, 0, 92, 0, 0, 0,
- 8, 0, 0, 0, 5, 0, 0, 0, 9, 0, 0, 0,171, 0, 0, 0,114, 0, 0, 0,172, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0,
- 6, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0,174, 0, 0, 0,115, 0, 0, 0,175, 0, 0, 0, 10, 0, 0, 0, 12, 0, 0, 0,
-114, 0, 0, 0,186, 0, 0, 0, 39, 0, 0, 0, 52, 0, 0, 0, 38, 0, 0, 0,185, 0, 0, 0,112, 0, 0, 0,170, 0, 0, 0,
-115, 0, 0, 0,173, 0, 0, 0, 11, 0, 0, 0,176, 0, 0, 0,113, 0, 0, 0,177, 0, 0, 0, 13, 0, 0, 0,178, 0, 0, 0,
- 1, 0, 0, 0, 13, 0, 0, 0, 10, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0,101, 0, 0, 0, 59, 0, 0, 0, 96, 0, 0, 0,
-113, 0, 0, 0,169, 0, 0, 0,112, 0, 0, 0,167, 0, 0, 0,107, 0, 0, 0,213, 0, 0, 0, 67, 0, 0, 0,202, 0, 0, 0,
-106, 0, 0, 0,214, 0, 0, 0, 68, 0, 0, 0,105, 0, 0, 0, 12, 0, 0, 0, 14, 0, 0, 0, 13, 0, 0, 0,201, 0, 0, 0,
- 17, 0, 0, 0, 21, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, 0, 32, 0, 0, 0, 45, 0, 0, 0, 33, 0, 0, 0, 16, 0, 0, 0,
- 15, 0, 0, 0, 25, 0, 0, 0, 14, 0, 0, 0, 19, 0, 0, 0, 30, 0, 0, 0, 44, 0, 0, 0, 31, 0, 0, 0, 18, 0, 0, 0,
- 46, 0, 0, 0, 99, 0, 0, 0, 21, 0, 0, 0, 20, 0, 0, 0, 17, 0, 0, 0,100, 0, 0, 0, 42, 0, 0, 0, 69, 0, 0, 0,
- 20, 0, 0, 0, 30, 0, 0, 0, 19, 0, 0, 0, 24, 0, 0, 0, 15, 0, 0, 0, 23, 0, 0, 0, 16, 0, 0, 0, 22, 0, 0, 0,
- 18, 0, 0, 0, 56, 0, 0, 0, 36, 0, 0, 0, 51, 0, 0, 0, 37, 0, 0, 0, 57, 0, 0, 0, 14, 0, 0, 0, 26, 0, 0, 0,
- 25, 0, 0, 0, 35, 0, 0, 0, 24, 0, 0, 0, 29, 0, 0, 0, 20, 0, 0, 0, 28, 0, 0, 0, 21, 0, 0, 0, 27, 0, 0, 0,
- 23, 0, 0, 0, 39, 0, 0, 0, 22, 0, 0, 0, 33, 0, 0, 0, 18, 0, 0, 0, 32, 0, 0, 0, 19, 0, 0, 0, 31, 0, 0, 0,
- 53, 0, 0, 0, 97, 0, 0, 0, 29, 0, 0, 0, 34, 0, 0, 0, 25, 0, 0, 0, 98, 0, 0, 0, 49, 0, 0, 0, 81, 0, 0, 0,
- 28, 0, 0, 0, 42, 0, 0, 0, 27, 0, 0, 0, 38, 0, 0, 0, 23, 0, 0, 0, 37, 0, 0, 0, 24, 0, 0, 0, 36, 0, 0, 0,
- 26, 0, 0, 0, 54, 0, 0, 0, 34, 0, 0, 0, 50, 0, 0, 0, 35, 0, 0, 0, 55, 0, 0, 0, 22, 0, 0, 0, 40, 0, 0, 0,
- 82, 0, 0, 0,129, 0, 0, 0, 83, 0, 0, 0,165, 0, 0, 0, 28, 0, 0, 0, 41, 0, 0, 0, 29, 0, 0, 0,166, 0, 0, 0,
- 84, 0, 0, 0,130, 0, 0, 0, 85, 0, 0, 0,163, 0, 0, 0, 26, 0, 0, 0, 43, 0, 0, 0, 27, 0, 0, 0,164, 0, 0, 0,
- 45, 0, 0, 0, 64, 0, 0, 0, 44, 0, 0, 0, 62, 0, 0, 0, 58, 0, 0, 0, 91, 0, 0, 0, 1, 0, 0, 0, 95, 0, 0, 0,
- 57, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 94, 0, 0, 0, 43, 0, 0, 0, 68, 0, 0, 0, 42, 0, 0, 0, 63, 0, 0, 0,
- 48, 0, 0, 0, 71, 0, 0, 0, 47, 0, 0, 0, 67, 0, 0, 0, 43, 0, 0, 0, 66, 0, 0, 0, 44, 0, 0, 0, 65, 0, 0, 0,
- 52, 0, 0, 0, 76, 0, 0, 0, 51, 0, 0, 0, 70, 0, 0, 0, 48, 0, 0, 0,191, 0, 0, 0,110, 0, 0, 0,190, 0, 0, 0,
- 50, 0, 0, 0, 80, 0, 0, 0, 49, 0, 0, 0, 74, 0, 0, 0, 46, 0, 0, 0, 73, 0, 0, 0, 47, 0, 0, 0, 72, 0, 0, 0,
- 55, 0, 0, 0, 83, 0, 0, 0, 54, 0, 0, 0, 79, 0, 0, 0, 50, 0, 0, 0, 78, 0, 0, 0, 51, 0, 0, 0, 77, 0, 0, 0,
-102, 0, 0, 0,118, 0, 0, 0, 76, 0, 0, 0,161, 0, 0, 0, 55, 0, 0, 0, 82, 0, 0, 0, 56, 0, 0, 0,162, 0, 0, 0,
-103, 0, 0, 0,116, 0, 0, 0, 77, 0, 0, 0,159, 0, 0, 0, 53, 0, 0, 0, 84, 0, 0, 0, 54, 0, 0, 0,160, 0, 0, 0,
- 70, 0, 0, 0,110, 0, 0, 0, 75, 0, 0, 0,158, 0, 0, 0, 61, 0, 0, 0, 85, 0, 0, 0, 60, 0, 0, 0,157, 0, 0, 0,
- 61, 0, 0, 0, 61, 0, 0, 0, 56, 0, 0, 0, 75, 0, 0, 0, 52, 0, 0, 0, 60, 0, 0, 0, 63, 0, 0, 0, 86, 0, 0, 0,
- 62, 0, 0, 0, 87, 0, 0, 0, 63, 0, 0, 0, 88, 0, 0, 0, 65, 0, 0, 0, 89, 0, 0, 0, 64, 0, 0, 0, 90, 0, 0, 0,
- 65, 0, 0, 0,188, 0, 0, 0,110, 0, 0, 0,189, 0, 0, 0, 45, 0, 0, 0,187, 0, 0, 0,109, 0, 0, 0,193, 0, 0, 0,
- 66, 0, 0, 0,194, 0, 0, 0,109, 0, 0, 0,196, 0, 0, 0, 59, 0, 0, 0,104, 0, 0, 0, 69, 0, 0, 0,103, 0, 0, 0,
- 72, 0, 0, 0,112, 0, 0, 0, 71, 0, 0, 0,109, 0, 0, 0, 89, 0, 0, 0,132, 0, 0, 0, 88, 0, 0, 0,108, 0, 0, 0,
- 87, 0, 0, 0,136, 0, 0, 0, 86, 0, 0, 0,106, 0, 0, 0, 74, 0, 0, 0,111, 0, 0, 0, 73, 0, 0, 0,107, 0, 0, 0,
-102, 0, 0, 0,138, 0, 0, 0, 93, 0, 0, 0,131, 0, 0, 0, 89, 0, 0, 0,114, 0, 0, 0, 75, 0, 0, 0,115, 0, 0, 0,
- 92, 0, 0, 0,142, 0, 0, 0, 91, 0, 0, 0,135, 0, 0, 0, 87, 0, 0, 0,134, 0, 0, 0, 88, 0, 0, 0,133, 0, 0, 0,
- 90, 0, 0, 0,121, 0, 0, 0, 80, 0, 0, 0,124, 0, 0, 0, 81, 0, 0, 0,122, 0, 0, 0, 86, 0, 0, 0,137, 0, 0, 0,
- 97, 0, 0, 0,147, 0, 0, 0, 96, 0, 0, 0,141, 0, 0, 0, 92, 0, 0, 0,140, 0, 0, 0, 93, 0, 0, 0,139, 0, 0, 0,
- 95, 0, 0, 0,151, 0, 0, 0, 94, 0, 0, 0,145, 0, 0, 0, 90, 0, 0, 0,144, 0, 0, 0, 91, 0, 0, 0,143, 0, 0, 0,
-103, 0, 0, 0,153, 0, 0, 0,101, 0, 0, 0,146, 0, 0, 0, 97, 0, 0, 0,113, 0, 0, 0, 76, 0, 0, 0,117, 0, 0, 0,
-100, 0, 0, 0,155, 0, 0, 0, 99, 0, 0, 0,150, 0, 0, 0, 95, 0, 0, 0,149, 0, 0, 0, 96, 0, 0, 0,148, 0, 0, 0,
- 98, 0, 0, 0,119, 0, 0, 0, 78, 0, 0, 0,123, 0, 0, 0, 79, 0, 0, 0,120, 0, 0, 0, 94, 0, 0, 0,152, 0, 0, 0,
- 82, 0, 0, 0,129, 0, 0, 0, 83, 0, 0, 0,127, 0, 0, 0,100, 0, 0, 0,154, 0, 0, 0,101, 0, 0, 0,128, 0, 0, 0,
- 84, 0, 0, 0,130, 0, 0, 0, 85, 0, 0, 0,125, 0, 0, 0, 98, 0, 0, 0,156, 0, 0, 0, 99, 0, 0, 0,126, 0, 0, 0,
- 85, 0, 0, 0,208, 0, 0, 0,104, 0, 0, 0,210, 0, 0, 0, 78, 0, 0, 0,119, 0, 0, 0, 98, 0, 0, 0,125, 0, 0, 0,
- 83, 0, 0, 0,211, 0, 0, 0, 84, 0, 0, 0,126, 0, 0, 0, 99, 0, 0, 0,155, 0, 0, 0,100, 0, 0, 0,127, 0, 0, 0,
-101, 0, 0, 0,153, 0, 0, 0,103, 0, 0, 0,116, 0, 0, 0, 77, 0, 0, 0,207, 0, 0, 0, 82, 0, 0, 0,128, 0, 0, 0,
- 99, 0, 0, 0,156, 0, 0, 0, 98, 0, 0, 0,152, 0, 0, 0, 94, 0, 0, 0,151, 0, 0, 0, 95, 0, 0, 0,150, 0, 0, 0,
-101, 0, 0, 0,154, 0, 0, 0,100, 0, 0, 0,148, 0, 0, 0, 96, 0, 0, 0,147, 0, 0, 0, 97, 0, 0, 0,146, 0, 0, 0,
- 94, 0, 0, 0,120, 0, 0, 0, 79, 0, 0, 0,209, 0, 0, 0, 80, 0, 0, 0,121, 0, 0, 0, 90, 0, 0, 0,145, 0, 0, 0,
- 96, 0, 0, 0,149, 0, 0, 0, 95, 0, 0, 0,143, 0, 0, 0, 91, 0, 0, 0,142, 0, 0, 0, 92, 0, 0, 0,141, 0, 0, 0,
- 76, 0, 0, 0,113, 0, 0, 0, 97, 0, 0, 0,139, 0, 0, 0, 93, 0, 0, 0,138, 0, 0, 0,102, 0, 0, 0,118, 0, 0, 0,
- 91, 0, 0, 0,144, 0, 0, 0, 90, 0, 0, 0,137, 0, 0, 0, 86, 0, 0, 0,136, 0, 0, 0, 87, 0, 0, 0,135, 0, 0, 0,
- 93, 0, 0, 0,140, 0, 0, 0, 92, 0, 0, 0,133, 0, 0, 0, 88, 0, 0, 0,132, 0, 0, 0, 89, 0, 0, 0,131, 0, 0, 0,
- 86, 0, 0, 0,122, 0, 0, 0, 81, 0, 0, 0,203, 0, 0, 0,105, 0, 0, 0,206, 0, 0, 0, 74, 0, 0, 0,106, 0, 0, 0,
- 88, 0, 0, 0,134, 0, 0, 0, 87, 0, 0, 0,107, 0, 0, 0, 73, 0, 0, 0,204, 0, 0, 0, 72, 0, 0, 0,108, 0, 0, 0,
- 71, 0, 0, 0,205, 0, 0, 0, 70, 0, 0, 0,110, 0, 0, 0, 75, 0, 0, 0,114, 0, 0, 0, 89, 0, 0, 0,109, 0, 0, 0,
-109, 0, 0, 0,187, 0, 0, 0, 45, 0, 0, 0, 95, 0, 0, 0, 1, 0, 0, 0, 96, 0, 0, 0, 59, 0, 0, 0,196, 0, 0, 0,
- 64, 0, 0, 0, 89, 0, 0, 0, 65, 0, 0, 0,193, 0, 0, 0,109, 0, 0, 0,194, 0, 0, 0, 66, 0, 0, 0,195, 0, 0, 0,
- 63, 0, 0, 0, 60, 0, 0, 0, 52, 0, 0, 0,190, 0, 0, 0,110, 0, 0, 0,188, 0, 0, 0, 65, 0, 0, 0, 88, 0, 0, 0,
- 60, 0, 0, 0, 85, 0, 0, 0, 61, 0, 0, 0, 86, 0, 0, 0, 63, 0, 0, 0, 87, 0, 0, 0, 62, 0, 0, 0,192, 0, 0, 0,
- 75, 0, 0, 0,115, 0, 0, 0,102, 0, 0, 0,162, 0, 0, 0, 56, 0, 0, 0, 61, 0, 0, 0, 61, 0, 0, 0,158, 0, 0, 0,
- 76, 0, 0, 0,117, 0, 0, 0,103, 0, 0, 0,160, 0, 0, 0, 54, 0, 0, 0, 83, 0, 0, 0, 55, 0, 0, 0,161, 0, 0, 0,
- 54, 0, 0, 0, 84, 0, 0, 0, 53, 0, 0, 0, 81, 0, 0, 0, 49, 0, 0, 0, 80, 0, 0, 0, 50, 0, 0, 0, 79, 0, 0, 0,
- 56, 0, 0, 0, 82, 0, 0, 0, 55, 0, 0, 0, 77, 0, 0, 0, 51, 0, 0, 0, 76, 0, 0, 0, 52, 0, 0, 0, 75, 0, 0, 0,
- 51, 0, 0, 0, 78, 0, 0, 0, 50, 0, 0, 0, 72, 0, 0, 0, 47, 0, 0, 0, 71, 0, 0, 0, 48, 0, 0, 0, 70, 0, 0, 0,
- 47, 0, 0, 0, 73, 0, 0, 0, 46, 0, 0, 0, 69, 0, 0, 0, 42, 0, 0, 0, 68, 0, 0, 0, 43, 0, 0, 0, 67, 0, 0, 0,
-110, 0, 0, 0,191, 0, 0, 0, 48, 0, 0, 0, 65, 0, 0, 0, 44, 0, 0, 0, 64, 0, 0, 0, 45, 0, 0, 0,189, 0, 0, 0,
- 0, 0, 0, 0, 92, 0, 0, 0, 58, 0, 0, 0, 62, 0, 0, 0, 44, 0, 0, 0, 66, 0, 0, 0, 43, 0, 0, 0, 94, 0, 0, 0,
- 85, 0, 0, 0,208, 0, 0, 0,104, 0, 0, 0,212, 0, 0, 0, 34, 0, 0, 0, 54, 0, 0, 0, 26, 0, 0, 0,163, 0, 0, 0,
- 83, 0, 0, 0,211, 0, 0, 0, 84, 0, 0, 0,164, 0, 0, 0, 27, 0, 0, 0, 42, 0, 0, 0, 28, 0, 0, 0,165, 0, 0, 0,
- 77, 0, 0, 0,207, 0, 0, 0, 82, 0, 0, 0,166, 0, 0, 0, 29, 0, 0, 0, 97, 0, 0, 0, 53, 0, 0, 0,159, 0, 0, 0,
- 27, 0, 0, 0, 43, 0, 0, 0, 26, 0, 0, 0, 40, 0, 0, 0, 22, 0, 0, 0, 39, 0, 0, 0, 23, 0, 0, 0, 38, 0, 0, 0,
- 29, 0, 0, 0, 41, 0, 0, 0, 28, 0, 0, 0, 36, 0, 0, 0, 24, 0, 0, 0, 35, 0, 0, 0, 25, 0, 0, 0, 34, 0, 0, 0,
- 22, 0, 0, 0, 55, 0, 0, 0, 35, 0, 0, 0,181, 0, 0, 0, 36, 0, 0, 0, 56, 0, 0, 0, 18, 0, 0, 0, 33, 0, 0, 0,
- 24, 0, 0, 0, 37, 0, 0, 0, 23, 0, 0, 0, 31, 0, 0, 0, 19, 0, 0, 0, 30, 0, 0, 0, 20, 0, 0, 0, 29, 0, 0, 0,
- 49, 0, 0, 0, 98, 0, 0, 0, 25, 0, 0, 0, 27, 0, 0, 0, 21, 0, 0, 0, 99, 0, 0, 0, 46, 0, 0, 0, 74, 0, 0, 0,
- 19, 0, 0, 0, 32, 0, 0, 0, 18, 0, 0, 0, 26, 0, 0, 0, 14, 0, 0, 0, 25, 0, 0, 0, 15, 0, 0, 0, 24, 0, 0, 0,
- 21, 0, 0, 0, 28, 0, 0, 0, 20, 0, 0, 0, 22, 0, 0, 0, 16, 0, 0, 0, 21, 0, 0, 0, 17, 0, 0, 0, 20, 0, 0, 0,
- 14, 0, 0, 0, 57, 0, 0, 0, 37, 0, 0, 0,182, 0, 0, 0,111, 0, 0, 0,184, 0, 0, 0, 30, 0, 0, 0, 19, 0, 0, 0,
- 16, 0, 0, 0, 23, 0, 0, 0, 15, 0, 0, 0, 18, 0, 0, 0, 31, 0, 0, 0,179, 0, 0, 0, 32, 0, 0, 0, 17, 0, 0, 0,
- 33, 0, 0, 0,197, 0, 0, 0, 57, 0, 0, 0, 63, 0, 0, 0, 42, 0, 0, 0,100, 0, 0, 0, 17, 0, 0, 0, 16, 0, 0, 0,
- 68, 0, 0, 0,198, 0, 0, 0, 69, 0, 0, 0,104, 0, 0, 0, 59, 0, 0, 0,101, 0, 0, 0, 12, 0, 0, 0,105, 0, 0, 0,
- 13, 0, 0, 0,177, 0, 0, 0,113, 0, 0, 0,202, 0, 0, 0, 67, 0, 0, 0,199, 0, 0, 0,106, 0, 0, 0,201, 0, 0, 0,
-112, 0, 0, 0,185, 0, 0, 0, 38, 0, 0, 0,200, 0, 0, 0,108, 0, 0, 0,168, 0, 0, 0,107, 0, 0, 0,167, 0, 0, 0,
- 10, 0, 0, 0,175, 0, 0, 0,115, 0, 0, 0,178, 0, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0,
- 11, 0, 0, 0,172, 0, 0, 0,114, 0, 0, 0,170, 0, 0, 0,112, 0, 0, 0,169, 0, 0, 0,113, 0, 0, 0,176, 0, 0, 0,
- 58, 0, 0, 0,102, 0, 0, 0, 6, 0, 0, 0, 12, 0, 0, 0, 10, 0, 0, 0, 13, 0, 0, 0, 1, 0, 0, 0, 91, 0, 0, 0,
- 7, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0,173, 0, 0, 0,115, 0, 0, 0,174, 0, 0, 0,
- 9, 0, 0, 0, 58, 0, 0, 0, 40, 0, 0, 0,183, 0, 0, 0, 39, 0, 0, 0,186, 0, 0, 0,114, 0, 0, 0,171, 0, 0, 0,
- 2, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, 6, 0, 0, 0, 10, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 9, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0,
- 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 57, 0, 0, 0,197, 0, 0, 0, 33, 0, 0, 0, 46, 0, 0, 0,
- 32, 0, 0, 0,179, 0, 0, 0, 31, 0, 0, 0, 48, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 47, 0, 0, 0,
- 30, 0, 0, 0,184, 0, 0, 0,111, 0, 0, 0,180, 0, 0, 0, 41, 0, 0, 0, 59, 0, 0, 0, 5, 0, 0, 0, 49, 0, 0, 0,
- 68, 65, 84, 65, 8, 2, 0, 0,136,183,198, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 97, 99,
-101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,200,198, 4, 0, 0, 0, 0,
- 25, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 78, 71,111,110, 32, 70, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136,178,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 64, 6, 0, 0,248,200,198, 4, 0, 0, 0, 0, 60, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 60, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,176, 4, 0, 0,
-136,178,198, 4, 0, 0, 0, 0, 58, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
- 4, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,
- 16, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0,
- 1, 0, 0, 0, 28, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 36, 0, 0, 0,
- 4, 0, 0, 0, 1, 0, 0, 0, 40, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 44, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,
- 48, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 56, 0, 0, 0, 4, 0, 0, 0,
- 1, 0, 0, 0, 60, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 64, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 68, 0, 0, 0,
- 4, 0, 0, 0, 1, 0, 0, 0, 72, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 76, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,
- 80, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 84, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 88, 0, 0, 0, 4, 0, 0, 0,
- 1, 0, 0, 0, 92, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 96, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0,
- 4, 0, 0, 0, 1, 0, 0, 0,104, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,108, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,
-112, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,116, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,120, 0, 0, 0, 4, 0, 0, 0,
- 1, 0, 0, 0,124, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,128, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,132, 0, 0, 0,
- 4, 0, 0, 0, 1, 0, 0, 0,136, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,140, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,
-144, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,148, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,152, 0, 0, 0, 4, 0, 0, 0,
- 1, 0, 0, 0,156, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,160, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,164, 0, 0, 0,
- 4, 0, 0, 0, 1, 0, 0, 0,168, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,172, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,
-176, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,180, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,184, 0, 0, 0, 4, 0, 0, 0,
- 1, 0, 0, 0,188, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,192, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0,196, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,204, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
-208, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,212, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0,220, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,228, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0,232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,236, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
-240, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,244, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,248, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0,252, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 8, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 16, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 20, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 24, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 28, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 36, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 44, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 48, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 52, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 60, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 68, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 72, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 80, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 84, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 88, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 92, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 96, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,100, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0,104, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,108, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
-112, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,116, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,120, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0,124, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,128, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,132, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0,136, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 77, 69, 0, 0,232, 4, 0, 0,136, 37, 27, 4, 0, 0, 0, 0, 50, 0, 0, 0, 1, 0, 0, 0, 8, 8,196, 4, 0, 0, 0, 0,
-136,227, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, 98,101, 46, 48,
- 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 42, 27, 4, 0, 0, 0, 0,120, 1, 27, 4, 0, 0, 0, 0,
-248, 38,199, 4, 0, 0, 0, 0, 40,233,198, 4, 0, 0, 0, 0,136, 70,199, 4, 0, 0, 0, 0, 24,163,199, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 45, 27, 4, 0, 0, 0, 0,
-248, 90,195, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 43, 27, 4, 0, 0, 0, 0,
- 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24, 85, 27, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0,
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56, 25, 27, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 2, 0, 0, 0, 5, 0, 0, 0,
- 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 27, 27, 4, 0, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 0, 0, 0, 0, 1, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255, 2, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255, 3, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,249, 1, 0, 0,237, 3, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,244, 1, 0, 0,176, 7, 0, 0,
- 0, 0, 0, 0,192,133, 88, 61,184, 45, 85,189,196,181, 24,190,185, 71, 35, 63,153, 31,235, 62,130,102,203, 62, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 4, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 8, 0, 0, 0,184, 42, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120,164, 26, 4, 0, 0, 0, 0,
- 68, 65, 84, 65, 8, 2, 0, 0, 8, 43, 27, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 45, 27, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,116, 39, 0, 0, 88, 45, 27, 4, 0, 0, 0, 0, 56, 0, 0, 0,249, 1, 0, 0,140,144,131, 62,119,163,200, 60,
-156, 9, 85, 62, 36, 93, 58,172, 64, 26, 0, 0, 50,222, 26,190,119,163,200, 60,156, 9, 85, 62,220,162, 58,172, 64, 26, 0, 0,
- 61,126,146, 62,223, 37, 8,188, 99,183, 47, 62, 80, 77,177,190, 91, 78, 2, 0,147,185, 56,190,223, 37, 8,188, 99,183, 47, 62,
-176,178,177,190, 91, 78, 2, 0,129,176,157, 62,211, 91,217,188,244,238,246, 61,106, 87,237,185,228, 61, 2, 0, 28, 30, 79,190,
-211, 91,217,188,244,238,246, 61,150,168,237,185,228, 61, 2, 0,115, 19, 94, 62,103,251,128,189,150, 32, 14, 62,213, 14, 8,145,
- 9, 62, 2, 0, 26,161,227,189,103,251,128,189,150, 32, 14, 62, 43,241, 8,145, 9, 62, 2, 0,115, 19, 94, 62,251,118, 25,189,
- 20,165, 62, 62,146, 12,225,159,148, 83, 2, 0, 26,161,227,189,251,118, 25,189, 20,165, 62, 62,110,243,225,159,148, 83, 2, 0,
-115, 19, 94, 62,232,107, 34, 60,116,128, 92, 62,205, 4,122,132, 46, 33, 0, 0, 26,161,227,189,232,107, 34, 60,116,128, 92, 62,
- 51,251,122,132, 46, 33, 0, 0, 58,193, 56, 62,119,163,200, 60, 77,247, 99, 62, 30,172, 83,167,129, 38, 0, 0,168,252,152,189,
-119,163,200, 60, 77,247, 99, 62,226, 83, 83,167,129, 38, 0, 0,109, 42, 23, 62,223, 37, 8,188, 88,215, 73, 62, 41,217, 14,206,
- 67,111, 0, 0,229,197, 0, 62,211, 91,217,188, 71, 14, 29, 62,114,185,159,174, 37, 69, 2, 0,249, 23,164,188,211, 91,217,188,
- 71, 14, 29, 62,142, 70,159,174, 37, 69, 2, 0, 88,231,182, 61,159,154,121, 61,179,201, 32, 62,182,151,132,255, 51, 74, 2, 0,
-207,121,134, 60,159,154,121, 61,179,201, 32, 62, 74,104,132,255, 51, 74, 2, 0, 25,158,242, 61,159,154,121, 61, 88,215, 73, 62,
- 44,167,141,255, 38, 92, 2, 0,110,194, 80,188,159,154,121, 61, 88,215, 73, 62,212, 88,141,255, 38, 92, 2, 0,138,211, 41, 62,
-159,154,121, 61, 77,247, 99, 62,233,134, 91,254,110, 41, 0, 0,143, 66,118,189,159,154,121, 61, 77,247, 99, 62, 23,121, 91,254,
-110, 41, 0, 0, 58,193, 56, 62,154,232,206, 61, 77,247, 99, 62, 63,171,127, 88,251, 36, 0, 0,168,252,152,189,154,232,206, 61,
- 77,247, 99, 62,193, 84,127, 88,251, 36, 0, 0,109, 42, 23, 62,173, 79, 5, 62, 88,215, 73, 62,191,197, 53, 67, 11, 92, 2, 0,
- 31,158, 43,189,173, 79, 5, 62, 88,215, 73, 62, 65, 58, 53, 67, 11, 92, 2, 0,229,197, 0, 62, 54,180, 27, 62, 71, 14, 29, 62,
- 49,188, 51, 80, 41, 73, 2, 0,249, 23,164,188, 54,180, 27, 62, 71, 14, 29, 62,207, 67, 51, 80, 41, 73, 2, 0,115, 19, 94, 62,
-111, 6, 65, 62,150, 32, 14, 62,171, 15, 44,107, 51, 68, 2, 0, 26,161,227,189,111, 6, 65, 62,150, 32, 14, 62, 85,240, 44,107,
- 51, 68, 2, 0,115, 19, 94, 62, 14, 43, 35, 62, 20,165, 62, 62, 10, 13,188, 94, 19, 85, 2, 0, 26,161,227,189, 14, 43, 35, 62,
- 20,165, 62, 62,246,242,188, 94, 19, 85, 2, 0,115, 19, 94, 62,250,195,236, 61,116,128, 92, 62, 27, 4, 73,124, 81, 30, 0, 0,
- 26,161,227,189,250,195,236, 61,116,128, 92, 62,229,251, 73,124, 81, 30, 0, 0,140,144,131, 62,154,232,206, 61,156, 9, 85, 62,
-179, 93,140, 83,243, 24, 0, 0, 50,222, 26,190,154,232,206, 61,156, 9, 85, 62, 77,162,140, 83,243, 24, 0, 0, 61,126,146, 62,
-173, 79, 5, 62, 99,183, 47, 62,225, 77, 89, 63,101, 79, 2, 0,147,185, 56,190,173, 79, 5, 62, 99,183, 47, 62, 31,178, 89, 63,
-101, 79, 2, 0,129,176,157, 62, 54,180, 27, 62,244,238,246, 61, 10, 86,225, 68, 20, 65, 2, 0, 28, 30, 79,190, 54,180, 27, 62,
-244,238,246, 61,246,169,225, 68, 20, 65, 2, 0,157, 89,176, 62,159,154,121, 61, 67, 1,232, 61, 39,111,149,255,117, 63, 2, 0,
- 84,112,116,190,159,154,121, 61, 67, 1,232, 61,217,144,149,255,117, 63, 2, 0,237,107,161, 62,159,154,121, 61,139, 64, 40, 62,
-169,102,145,255,112, 76, 2, 0,244,148, 86,190,159,154,121, 61,139, 64, 40, 62, 87,153,145,255,112, 76, 2, 0,100, 7,139, 62,
-159,154,121, 61, 48, 78, 81, 62, 36,125,151,254,216, 26, 0, 0,227,203, 41,190,159,154,121, 61, 48, 78, 81, 62,220,130,151,254,
-216, 26, 0, 0, 26,229,140, 62,159,154,121, 61, 8,197, 88, 62,162,124,112,254, 23, 29, 2, 0, 79,135, 45,190,159,154,121, 61,
- 8,197, 88, 62, 94,131,112,254, 23, 29, 2, 0, 66,110,133, 62,114, 95,214, 61,116,128, 92, 62,105, 92, 46, 83,100, 30, 2, 0,
-158,153, 30,190,114, 95,214, 61,116,128, 92, 62,151,163, 46, 83,100, 30, 2, 0,115, 19, 94, 62,170,177,251, 61,185,178,103, 62,
-203, 4,126,119,158, 45, 2, 0, 26,161,227,189,170,177,251, 61,185,178,103, 62, 53,251,126,119,158, 45, 2, 0,206, 5, 53, 62,
-114, 95,214, 61,145, 41,111, 62,213,175,209, 82,166, 55, 2, 0,208,133,145,189,114, 95,214, 61,145, 41,111, 62, 43, 80,209, 82,
-166, 55, 2, 0,178, 92, 34, 62,159,154,121, 61,145, 41,111, 62, 93,139,110,254,175, 52, 2, 0, 48,103, 88,189,159,154,121, 61,
-145, 41,111, 62,163,116,110,254,175, 52, 2, 0,206, 5, 53, 62, 22,200,170, 60,145, 41,111, 62,226,176, 82,172,220, 55, 2, 0,
-208,133,145,189, 22,200,170, 60,145, 41,111, 62, 30, 79, 82,172,220, 55, 2, 0,115, 19, 94, 62,159,154,121, 61,253,228,114, 62,
-128, 23, 82,255,209,125, 2, 0, 26,161,227,189,159,154,121, 61,253,228,114, 62,128,232, 82,255,209,125, 2, 0,115, 19, 94, 62,
-149,249, 43, 59,185,178,103, 62,186, 4, 80,136, 27, 45, 2, 0, 26,161,227,189,149,249, 43, 59,185,178,103, 62, 70,251, 80,136,
- 27, 45, 2, 0, 66,110,133, 62, 22,200,170, 60,116,128, 92, 62,134, 91,236,171,153, 30, 2, 0,158,153, 30,190, 22,200,170, 60,
-116,128, 92, 62,122,164,236,171,153, 30, 2, 0,203,133, 88, 61,202,248, 23, 62, 88,215, 73, 62, 0, 0,209,122, 10, 36, 0, 0,
-203,133, 88, 61, 34, 77,229, 61,145, 41,111, 62, 0, 0,235,252,245,127, 0, 0,203,133, 88, 61,150,254,188,190,236, 27, 70, 62,
- 0, 0,159,251,235,127, 0, 0,203,133, 88, 61,191, 79, 78,190,116,128, 92, 62, 0, 0, 65,146,221, 65, 2, 0,203,133, 88, 61,
-146,221, 14,190, 77,247, 99, 62, 0, 0,125,100, 70, 79, 0, 0,203,133, 88, 61, 30, 99,211,190, 20,165, 62, 62, 0, 0,104,140,
-246, 54, 2, 0,203,133, 88, 61,133,198, 12, 62,190,169, 6, 62, 0, 0,143,112,238, 60, 0, 0,203,133, 88, 61, 99, 38, 91, 62,
- 28,120,239, 61, 0, 0,104, 79, 98,100, 0, 0,203,133, 88, 61, 16,243,187, 62,170,250,206,190, 0, 0,144,106, 25,185, 2, 0,
-203,133, 88, 61,247,106, 87, 62,178,224, 11,191, 0, 0, 51, 40,124,134, 3, 0,203,133, 88, 61, 18,165,157,188, 33, 20, 9,191,
- 0, 0,140,217,235,133, 2, 0,203,133, 88, 61, 32, 43,108,190,227, 83,160,190, 0, 0,143,135,174,212, 2, 0,109, 42, 23, 62,
-146,221, 14,190, 67, 1,232, 61,224,115, 50,206,203, 21, 0, 0, 31,158, 43,189,146,221, 14,190, 67, 1,232, 61, 32,140, 50,206,
-203, 21, 0, 0, 87,106, 75, 62,138, 37,131,190, 28,120,239, 61,136,123, 6, 28, 94, 18, 2, 0,225, 78,190,189,138, 37,131,190,
- 28,120,239, 61,120,132, 6, 28, 94, 18, 2, 0,115, 19, 94, 62, 2,186,192,190, 28,120,239, 61,229,124, 36, 12, 56, 25, 0, 0,
- 26,161,227,189, 2,186,192,190, 28,120,239, 61, 27,131, 36, 12, 56, 25, 0, 0, 75,138,101, 62,200, 96,239,190,227, 37,202, 61,
- 26,124, 38,237, 2, 25, 2, 0,203,142,242,189,200, 96,239,190,227, 37,202, 61,230,131, 38,237, 2, 25, 2, 0, 47,225, 82, 62,
-195,112,252,190, 10,175,194, 61,185, 83, 15,161,241, 18, 2, 0,146, 60,205,189,195,112,252,190, 10,175,194, 61, 71,172, 15,161,
-241, 18, 2, 0, 41,248, 11, 62,242, 4, 1,191,107,138,224, 61, 45, 20, 69,131,109, 20, 2, 0, 27,170,253,188,242, 4, 1,191,
-107,138,224, 61,211,235, 69,131,109, 20, 2, 0,203,133, 88, 61,168,226, 2,191,244,238,246, 61, 0, 0,219,130,219, 26, 2, 0,
-140,144,131, 62, 18,242,240,189,227, 37,202, 61, 38, 46,194,136,209, 5, 2, 0, 50,222, 26,190, 18,242,240,189,227, 37,202, 61,
-218,209,194,136,209, 5, 2, 0, 83, 55,178, 62, 23,233,143,189,187,156,209, 61, 96, 75,200,154, 89, 21, 2, 0,193, 43,120,190,
- 23,233,143,189,187,156,209, 61,160,180,200,154, 89, 21, 2, 0, 26,222,224, 62,182,236,140, 60, 49, 21,112, 61,208,116,116,204,
- 17,247, 2, 0,167,188,170,190,182,236,140, 60, 49, 21,112, 61, 48,139,116,204, 17,247, 2, 0,243, 84,232, 62,202,248, 23, 62,
- 82,238, 2, 62,167,112, 64, 54, 93, 27, 2, 0,128, 51,178,190,202,248, 23, 62, 82,238, 2, 62, 89,143, 64, 54, 93, 27, 2, 0,
-112,224,196, 62,190, 24, 50, 62, 2,220, 17, 62, 70, 65,159,106,113, 27, 0, 0,253,190,142,190,190, 24, 50, 62, 2,220, 17, 62,
-186,190,159,106,113, 27, 0, 0,134,160,144, 62, 20, 20,106, 62, 99,183, 47, 62,131, 76, 82,100,139, 21, 0, 0, 39,254, 52,190,
- 20, 20,106, 62, 99,183, 47, 62,125,179, 82,100,139, 21, 0, 0,195, 37, 79, 62, 67, 92,154, 62,236, 27, 70, 62, 56, 29,185,122,
-159, 21, 2, 0,186,197,197,189, 67, 92,154, 62,236, 27, 70, 62,200,226,185,122,159, 21, 2, 0,229,197, 0, 62,181, 7,145, 62,
- 48, 78, 81, 62, 95,179,127, 99,180, 24, 2, 0,249, 23,164,188,181, 7,145, 62, 48, 78, 81, 62,161, 76,127, 99,180, 24, 2, 0,
-168,249,167, 61, 42,212, 53, 62,196,146, 77, 62,169,154,155, 74, 94, 23, 0, 0,144, 48,194, 60, 42,212, 53, 62,196,146, 77, 62,
- 87,101,155, 74, 94, 23, 0, 0, 81,129, 4, 62,241,129, 16, 62, 8,197, 88, 62,248, 33,229,229,156,120, 0, 0, 89,243,193,188,
-241,129, 16, 62, 8,197, 88, 62, 8,222,229,229,156,120, 0, 0,105,176,227, 61, 17,132,184, 61,156, 9, 85, 62,162, 3,150,230,
-100,125, 0, 0,214,169,178,187, 17,132,184, 61,156, 9, 85, 62, 94,252,150,230,100,125, 0, 0, 31,158, 43,189,223, 37, 8,188,
- 88,215, 73, 62,215, 38, 14,206, 67,111, 0, 0,184, 69,105, 62, 92, 82, 55,189, 59, 46, 55, 62,194, 39,112,212,152,113, 0, 0,
-163, 5,250,189, 92, 82, 55,189, 59, 46, 55, 62, 62,216,112,212,152,113, 0, 0,134,160,144, 62,115,128,187,188,139, 64, 40, 62,
-176, 53,101,207,137,105, 0, 0, 39,254, 52,190,115,128,187,188,139, 64, 40, 62, 80,202,101,207,137,105, 0, 0,157, 89,176, 62,
-205, 26, 17, 61, 71, 14, 29, 62,129, 56,167,229,200,111, 0, 0, 84,112,116,190,205, 26, 17, 61, 71, 14, 29, 62,127,199,167,229,
-200,111, 0, 0, 9, 21,180, 62, 57, 13,177, 61, 71, 14, 29, 62,117, 46,213,228, 33,116, 0, 0, 45,231,123,190, 57, 13,177, 61,
- 71, 14, 29, 62,139,209,213,228, 33,116, 0, 0,123,192,170, 62,170,177,251, 61, 31,133, 36, 62,228, 30,190,216,216,117, 0, 0,
- 16, 62,105,190,170,177,251, 61, 31,133, 36, 62, 28,225,190,216,216,117, 0, 0,214,178,129, 62, 54,180, 27, 62, 20,165, 62, 62,
- 82, 25,170,254,117,125, 0, 0,198, 34, 23,190, 54,180, 27, 62, 20,165, 62, 62,174,230,170,254,117,125, 0, 0,246,142, 45, 62,
-230,161, 42, 62, 48, 78, 81, 62, 13, 34,233,239, 84,122, 0, 0, 32,152,130,189,230,161, 42, 62, 48, 78, 81, 62,243,221,233,239,
- 84,122, 0, 0,203,133, 88, 61,104,133,209,190,236, 27, 70, 62, 0, 0,130,201,209,115, 0, 0,185,194,212, 61, 36, 83,198,190,
-236, 27, 70, 62,244, 19, 41,234,135,124, 0, 0,191,196,240, 58, 36, 83,198,190,236, 27, 70, 62, 12,236, 41,234,135,124, 0, 0,
-145, 57,220, 61,207, 80,226,190,167,233, 58, 62,102, 11,172,214,154,120, 0, 0, 77,241,236,186,207, 80,226,190,167,233, 58, 62,
-154,244,172,214,154,120, 0, 0,168,249,167, 61, 19,131,237,190,207,114, 51, 62,198,252, 75,203,152,116, 0, 0,144, 48,194, 60,
- 19,131,237,190,207,114, 51, 62, 58, 3, 75,203,152,116, 0, 0,203,133, 88, 61,200, 96,239,190, 99,183, 47, 62, 0, 0,154,213,
-196,120, 0, 0,203,133, 88, 61,254,152, 18,190,196,146, 77, 62, 0, 0, 46, 97, 76, 83, 0, 0,203,133, 88, 61, 18,242,240,189,
- 88,215, 73, 62, 0, 0,220, 72, 59,105, 0, 0,225, 75,205, 61,235,104,248,189, 88,215, 73, 62, 91, 32,137, 44,141,115, 0, 0,
-179,158,179, 59,235,104,248,189, 88,215, 73, 62,165,223,137, 44,141,115, 0, 0,105,176,227, 61,174,134, 33,190,196,146, 77, 62,
- 91, 92, 85,209, 85, 75, 0, 0,214,169,178,187,174,134, 33,190,196,146, 77, 62,165,163, 85,209, 85, 75, 0, 0, 48, 94,190, 61,
- 15, 98, 63,190, 88,215, 73, 62,153, 63, 63,200, 17, 96, 0, 0,220, 60, 81, 60, 15, 98, 63,190, 88,215, 73, 62,103,192, 63,200,
- 17, 96, 0, 0,252,119,116, 62,239, 95,151,189,139, 64, 40, 62,192, 48,194,189, 17, 98, 0, 0, 22, 53, 8,190,239, 95,151,189,
-139, 64, 40, 62, 64,207,194,189, 17, 98, 0, 0,231,123,174, 62,211, 91,217,188, 2,220, 17, 62,214, 63,168,204, 87, 98, 2, 0,
-232,180,112,190,211, 91,217,188, 2,220, 17, 62, 42,192,168,204, 87, 98, 2, 0,220,155,200, 62, 45,246, 46, 61,190,169, 6, 62,
- 66, 70, 51,214,123, 98, 0, 0,105,122,146,190, 45,246, 46, 61,190,169, 6, 62,190,185, 51,214,123, 98, 0, 0, 72, 87,204, 62,
-170,177,251, 61,179,201, 32, 62,103, 62, 46,237, 39,110, 0, 0,213, 53,150,190,170,177,251, 61,179,201, 32, 62,153,193, 46,237,
- 39,110, 0, 0, 78, 71,191, 62,241,129, 16, 62,128, 96, 66, 62,188, 43,214,251, 56,120, 2, 0,219, 37,137,190,241,129, 16, 62,
-128, 96, 66, 62, 68,212,214,251, 56,120, 2, 0,140,144,131, 62, 31,244, 79, 62, 77,247, 99, 62, 53, 40, 29,252,116,121, 0, 0,
- 50,222, 26,190, 31,244, 79, 62, 77,247, 99, 62,203,215, 29,252,116,121, 0, 0, 87,106, 75, 62, 48,189,124, 62,105,160,118, 62,
-180, 34, 68, 27, 37,120, 0, 0,225, 78,190,189, 48,189,124, 62,105,160,118, 62, 76,221, 68, 27, 37,120, 0, 0,109, 42, 23, 62,
-236,138,113, 62, 65, 23,126, 62,250,234, 91, 20,154,124, 0, 0, 31,158, 43,189,236,138,113, 62, 65, 23,126, 62, 6, 21, 91, 20,
-154,124, 0, 0,225, 75,205, 61,202,248, 23, 62,213, 91,122, 62,170,246, 84,252,154,127, 0, 0,179,158,179, 59,202,248, 23, 62,
-213, 91,122, 62, 86, 9, 84,252,154,127, 0, 0,105,176,227, 61,217,159,203,189, 37,110,107, 62,125, 8, 79,231, 77,125, 0, 0,
-214,169,178,187,217,159,203,189, 37,110,107, 62,131,247, 79,231, 77,125, 0, 0,218,229, 26, 62, 64, 3,133,190,167,233, 58, 62,
- 41, 75, 84, 14,155,102, 2, 0,207,139, 58,189, 64, 3,133,190,167,233, 58, 62,215,180, 84, 14,155,102, 2, 0,246,142, 45, 62,
-184,151,194,190, 99,183, 47, 62,174, 72,200,251, 69,105, 2, 0, 32,152,130,189,184,151,194,190, 99,183, 47, 62, 82,183,200,251,
- 69,105, 2, 0,206, 5, 53, 62, 99,149,222,190, 31,133, 36, 62, 39, 71, 91,228,189,102, 2, 0,208,133,145,189, 99,149,222,190,
- 31,133, 36, 62,217,184, 91,228,189,102, 2, 0, 30, 24, 38, 62,234,249,244,190,111,151, 21, 62,118, 46,217,176, 53, 89, 2, 0,
-224, 84,103,189,234,249,244,190,111,151, 21, 62,138,209,217,176, 53, 89, 2, 0, 81,129, 4, 62, 86,181,248,190,111,151, 21, 62,
-124, 21,143,159, 92, 81, 2, 0, 89,243,193,188, 86,181,248,190,111,151, 21, 62,132,234,143,159, 92, 81, 2, 0,203,133, 88, 61,
-195,112,252,190,219, 82, 25, 62, 0, 0,155,154, 28, 78, 2, 0,203,133, 88, 61, 52, 55,247,188,128, 96, 66, 62, 0, 0,185, 1,
-252,127, 0, 0,203,133, 88, 61,222,227, 61, 61,156, 9, 85, 62, 0, 0,102,227,194,124, 0, 0, 47,225, 82, 62, 82, 93, 46, 62,
- 88,215, 73, 62, 20, 17,134,243, 60,126, 0, 0,146, 60,205,189, 82, 93, 46, 62, 88,215, 73, 62,236,238,134,243, 60,126, 0, 0,
- 81,129, 4, 62,170, 34, 94, 60,196,146, 77, 62, 69,216, 70,234,183,119, 0, 0, 89,243,193,188,170, 34, 94, 60,196,146, 77, 62,
-187, 39, 70,234,183,119, 0, 0, 65, 39,235, 61,222,227, 61, 61, 48, 78, 81, 62, 55,235,111,230,174,123, 0, 0,173, 11, 21,188,
-222,227, 61, 61, 48, 78, 81, 62,201, 20,111,230,174,123, 0, 0,145, 57,220, 61, 76,220,190,190,236, 27, 70, 62, 18, 23,153,248,
-174,125, 0, 0, 77,241,236,186, 76,220,190,190,236, 27, 70, 62,238,232,153,248,174,125, 0, 0, 88,231,182, 61, 64, 3,133,190,
-196,146, 77, 62,190, 17, 95, 0,194,126, 2, 0,207,121,134, 60, 64, 3,133,190,196,146, 77, 62, 66,238, 95, 0,194,126, 2, 0,
-203,133, 88, 61, 64, 3,133,190,196,146, 77, 62, 0, 0,122,255,254,127, 0, 0,203,133, 88, 61, 43, 11, 82,190, 88,215, 73, 62,
- 0, 0,111,197,207,113, 0, 0, 8,213,197, 61, 55,235, 55,190,116,128, 92, 62, 71, 74,123,162, 9, 46, 2, 0, 27,134, 21, 60,
- 55,235, 55,190,116,128, 92, 62,185,181,123,162, 9, 46, 2, 0, 65, 39,235, 61,174,134, 33,190, 77,247, 99, 62, 88,118,191,228,
-110, 40, 2, 0,173, 11, 21,188,174,134, 33,190, 77,247, 99, 62,168,137,191,228,110, 40, 2, 0,185,194,212, 61, 57,123,233,189,
-116,128, 92, 62,150, 79, 31, 99,242, 14, 2, 0,191,196,240, 58, 57,123,233,189,116,128, 92, 62,106,176, 31, 99,242, 14, 2, 0,
- 31,149,145, 61, 97, 4,226,189,116,128, 92, 62, 95,217,134,120, 24, 19, 2, 0, 89,225, 13, 61, 97, 4,226,189,116,128, 92, 62,
-161, 38,134,120, 24, 19, 2, 0,203,133, 88, 61,106, 84, 22,190,253,228,114, 62, 0, 0,137, 14, 42,127, 0, 0,247, 11,153, 61,
-235,104,248,189, 37,110,107, 62,130,230, 5, 77,255, 98, 2, 0, 82,231,253, 60,235,104,248,189, 37,110,107, 62,126, 25, 5, 77,
-255, 98, 2, 0, 8,213,197, 61,195,223,255,189, 37,110,107, 62,229, 46,209, 60,101,102, 2, 0, 27,134, 21, 60,195,223,255,189,
- 37,110,107, 62, 27,209,209, 60,101,102, 2, 0,185,194,212, 61,174,134, 33,190,253,228,114, 62,254, 54, 84,232, 32,113, 2, 0,
-191,196,240, 58,174,134, 33,190,253,228,114, 62, 2,201, 84,232, 32,113, 2, 0, 88,231,182, 61,243,184, 44,190,185,178,103, 62,
- 59, 28,209,183,219,101, 2, 0,207,121,134, 60,243,184, 44,190,185,178,103, 62,197,227,209,183,219,101, 2, 0,203,133, 88, 61,
- 15, 98, 63,190,185,178,103, 62, 0, 0, 89,188,167,108, 2, 0, 98, 74, 49, 62, 83,148, 74,190,107,138,224, 61, 32,120,156, 41,
-218, 14, 0, 0,248, 14,138,189, 83,148, 74,190,107,138,224, 61,224,135,156, 41,218, 14, 0, 0, 81,129, 4, 62,134,253, 40,190,
-167,233, 58, 62, 27, 95,200, 3,147, 85, 0, 0, 89,243,193,188,134,253, 40,190,167,233, 58, 62,229,160,200, 3,147, 85, 0, 0,
- 41,248, 11, 62, 83,148, 74,190,167,233, 58, 62,188, 82, 59, 18,241, 95, 0, 0, 27,170,253,188, 83,148, 74,190,167,233, 58, 62,
- 68,173, 59, 18,241, 95, 0, 0, 30, 24, 38, 62,243,184, 44,190,107,138,224, 61, 9,122, 11, 36,207, 13, 0, 0,224, 84,103,189,
-243,184, 44,190,107,138,224, 61,247,133, 11, 36,207, 13, 0, 0,203,133, 88, 61, 93,165,235,190, 99,183, 47, 62, 0, 0,198, 82,
-160, 97, 0, 0,247, 11,153, 61,167,199,233,190, 99,183, 47, 62,149,208,194, 69, 69, 96, 0, 0, 82,231,253, 60,167,199,233,190,
- 99,183, 47, 62,107, 47,194, 69, 69, 96, 0, 0, 8,213,197, 61, 99,149,222,190,167,233, 58, 62,197,172,223, 7,235, 96, 0, 0,
- 27,134, 21, 60, 99,149,222,190,167,233, 58, 62, 59, 83,223, 7,235, 96, 0, 0, 8,213,197, 61, 70,236,203,190,128, 96, 66, 62,
-104,241, 70,177,219, 99, 0, 0, 27,134, 21, 60, 70,236,203,190,128, 96, 66, 62,152, 14, 70,177,219, 99, 0, 0,203,133, 88, 61,
-212, 64,213,190,179,201, 32, 62, 0, 0,141,166,141, 91, 0, 0, 8,213,197, 61,252,201,205,190, 31,133, 36, 62,233,189,224,165,
- 99, 62, 0, 0, 27,134, 21, 60,252,201,205,190, 31,133, 36, 62, 23, 66,224,165, 99, 62, 0, 0, 8,213,197, 61,173,183,220,190,
-219, 82, 25, 62,160,169,174, 14, 78, 93, 0, 0, 27,134, 21, 60,173,183,220,190,219, 82, 25, 62, 96, 86,174, 14, 78, 93, 0, 0,
-247, 11,153, 61, 59, 12,230,190,111,151, 21, 62, 30,214,188, 60,151,104, 0, 0, 82,231,253, 60, 59, 12,230,190,111,151, 21, 62,
-226, 41,188, 60,151,104, 0, 0,203,133, 88, 61,241,233,231,190,111,151, 21, 62, 0, 0,177, 67,161,108, 0, 0,189, 60, 8, 62,
-142,209, 76, 61,116,128, 92, 62, 27, 21,134,244,184,125, 0, 0,186,206,223,188,142,209, 76, 61,116,128, 92, 62,229,234,134,244,
-184,125, 0, 0,149,179, 15, 62, 22,200,170, 60, 8,197, 88, 62,210,253, 49,248,189,127, 0, 0,190,194, 13,189, 22,200,170, 60,
- 8,197, 88, 62, 46, 2, 49,248,189,127, 0, 0,155,156, 86, 62,202,248, 23, 62, 48, 78, 81, 62, 53, 21,115, 14,101,125, 0, 0,
-106,179,212,189,202,248, 23, 62, 48, 78, 81, 62,203,234,115, 14,101,125, 0, 0, 58,193, 56, 62, 94, 61, 20, 62, 8,197, 88, 62,
-103, 23,178, 4,192,125, 2, 0,168,252,152,189, 94, 61, 20, 62, 8,197, 88, 62,153,232,178, 4,192,125, 2, 0, 64,170,127, 62,
- 25, 11, 9, 62, 8,197, 88, 62, 38, 22,205,241, 67,125, 2, 0, 90,103, 19,190, 25, 11, 9, 62, 8,197, 88, 62,218,233,205,241,
- 67,125, 2, 0,237,107,161, 62, 34, 77,229, 61,207,114, 51, 62, 51, 39, 96, 4,196,121, 0, 0,244,148, 86,190, 34, 77,229, 61,
-207,114, 51, 62,205,216, 96, 4,196,121, 0, 0, 15, 5,167, 62, 97,150,169, 61, 99,183, 47, 62,238, 23,158,247,117,125, 0, 0,
- 56,199, 97,190, 97,150,169, 61, 99,183, 47, 62, 18,232,158,247,117,125, 0, 0, 89, 39,165, 62,125, 8, 32, 61,247,251, 43, 62,
- 69, 38, 13,244,142,121, 0, 0,204, 11, 94,190,125, 8, 32, 61,247,251, 43, 62,187,217, 13,244,142,121, 0, 0, 26,229,140, 62,
- 60,222,152,187, 20,165, 62, 62,148, 36,144,250,137,122, 0, 0, 79,135, 45,190, 60,222,152,187, 20,165, 62, 62,108,219,144,250,
-137,122, 0, 0,184, 69,105, 62,115,128,187,188, 88,215, 73, 62,146, 25,123,229,148,122, 0, 0,163, 5,250,189,115,128,187,188,
- 88,215, 73, 62,110,230,123,229,148,122, 0, 0,178, 92, 34, 62,226,194,133,186,116,128, 92, 62,166, 1, 8,236,106,126, 0, 0,
- 48,103, 88,189,226,194,133,186,116,128, 92, 62, 90,254, 8,236,106,126, 0, 0, 41,248, 11, 62, 57, 13,177, 61,116,128, 92, 62,
- 48, 30, 16,242,153,123, 0, 0, 27,170,253,188, 57, 13,177, 61,116,128, 92, 62,208,225, 16,242,153,123, 0, 0,218,229, 26, 62,
-170,177,251, 61,116,128, 92, 62,232, 20, 76,245,210,125, 0, 0,207,139, 58,189,170,177,251, 61,116,128, 92, 62, 24,235, 76,245,
-210,125, 0, 0, 30, 24, 38, 62,250,195,236, 61, 48, 78, 81, 62, 31, 64,221,206, 71, 99, 0, 0,224, 84,103,189,250,195,236, 61,
- 48, 78, 81, 62,225,191,221,206, 71, 99, 0, 0, 1,111, 19, 62, 57, 13,177, 61, 48, 78, 81, 62,138, 95,174,228,172, 80, 0, 0,
-110,176, 28,189, 57, 13,177, 61, 48, 78, 81, 62,118,160,174,228,172, 80, 0, 0,138,211, 41, 62, 77,106,205, 59, 48, 78, 81, 62,
- 84, 54,203, 71,250, 90, 0, 0,143, 66,118,189, 77,106,205, 59, 48, 78, 81, 62,172,201,203, 71,250, 90, 0, 0,184, 69,105, 62,
-161,220, 67,188,128, 96, 66, 62, 14, 19,134, 78, 67, 99, 0, 0,163, 5,250,189,161,220, 67,188,128, 96, 66, 62,242,236,134, 78,
- 67, 99, 0, 0,174, 41,137, 62,149,249, 43, 59, 59, 46, 55, 62, 93,245, 83, 69, 17,107, 0, 0,118, 16, 38,190,149,249, 43, 59,
- 59, 46, 55, 62,163, 10, 83, 69, 17,107, 0, 0,129,176,157, 62,222,227, 61, 61,139, 64, 40, 62, 97,223,176, 28,101,120, 0, 0,
- 28, 30, 79,190,222,227, 61, 61,139, 64, 40, 62,159, 32,176, 28,101,120, 0, 0, 55,142,159, 62,137, 31,162, 61,139, 64, 40, 62,
-148,210,138,239,134,118, 0, 0,136,217, 82,190,137, 31,162, 61,139, 64, 40, 62,108, 45,138,239,134,118, 0, 0, 21,245,153, 62,
-114, 95,214, 61,247,251, 43, 62, 33,231, 38,177,180, 97, 0, 0, 67,167, 71,190,114, 95,214, 61,247,251, 43, 62,223, 24, 38,177,
-180, 97, 0, 0,212,238,123, 62,173, 79, 5, 62,196,146, 77, 62, 18,238,118,158,234, 80, 2, 0,238,171, 15,190,173, 79, 5, 62,
-196,146, 77, 62,238, 17,118,158,234, 80, 2, 0,166,124, 60, 62, 25, 11, 9, 62,156, 9, 85, 62, 52, 39, 21,212,166,113, 2, 0,
-129,115,160,189, 25, 11, 9, 62,156, 9, 85, 62,204,216, 21,212,166,113, 2, 0,155,156, 86, 62,133,198, 12, 62,196,146, 77, 62,
- 69, 0,155,192, 49,111, 0, 0,106,179,212,189,133,198, 12, 62,196,146, 77, 62,187,255,155,192, 49,111, 0, 0,109, 42, 23, 62,
-216,126,230, 60,196,146, 77, 62,255, 87, 17, 38,203, 84, 0, 0, 31,158, 43,189,216,126,230, 60,196,146, 77, 62, 1,168, 17, 38,
-203, 84, 0, 0, 1,111, 19, 62, 63,191, 91, 61,196,146, 77, 62, 16,103,234, 1,224, 75, 0, 0,110,176, 28,189, 63,191, 91, 61,
-196,146, 77, 62,240,152,234, 1,224, 75, 0, 0,185,194,212, 61,122,230, 38, 62, 42,101, 10, 62,106,191, 91,110,188, 5, 0, 0,
-191,196,240, 58,122,230, 38, 62, 42,101, 10, 62,150, 64, 91,110,188, 5, 0, 0, 1,111, 19, 62,186,247,131, 62,150, 32, 14, 62,
-242,194, 70, 65, 98,164, 2, 0,110,176, 28,189,186,247,131, 62,150, 32, 14, 62, 14, 61, 70, 65, 98,164, 2, 0,155,156, 86, 62,
-220,144,137, 62, 82,238, 2, 62,171, 14,231, 83,118,160, 2, 0,106,179,212,189,220,144,137, 62, 82,238, 2, 62, 85,241,231, 83,
-118,160, 2, 0,208,194,142, 62,139,175, 83, 62,107,138,224, 61,121, 39,247,116, 47,222, 0, 0,187, 66, 49,190,139,175, 83, 62,
-107,138,224, 61,135,216,247,116, 47,222, 0, 0,152,105,189, 62, 14, 43, 35, 62,170,211,164, 61,252, 44, 81,116, 54,227, 0, 0,
- 37, 72,135,190, 14, 43, 35, 62,170,211,164, 61, 4,211, 81,116, 54,227, 0, 0, 66,103,217, 62,133,198, 12, 62, 73,248,134, 61,
-158, 94,220, 76,251,216, 0, 0,207, 69,163,190,133,198, 12, 62, 73,248,134, 61, 98,161,220, 76,251,216, 0, 0, 32,206,211, 62,
-119,163,200, 60,252,115,211, 60, 59,120,187,216, 97,236, 0, 0,173,172,157,190,119,163,200, 60,252,115,211, 60,197,135,187,216,
- 97,236, 0, 0,123,192,170, 62,188, 45, 85,189,112, 94, 52, 61,213, 73, 49,152,144,243, 0, 0, 16, 62,105,190,188, 45, 85,189,
-112, 94, 52, 61, 43,182, 49,152,144,243, 0, 0,140,144,131, 62, 0, 41,196,189, 33,111,142, 61, 61, 56,195,141,255,242, 0, 0,
- 50,222, 26,190, 0, 41,196,189, 33,111,142, 61,195,199,195,141,255,242, 0, 0,203,133, 88, 61, 16,243,187, 62, 89,242,105,188,
- 0, 0,207,105, 5, 72, 2, 0,203,133, 88, 61,226,121,208, 62,254, 7, 62,190, 0, 0,246,127,248, 2, 2, 0,203,133, 88, 61,
-254,152, 18,190, 11,214,236,190, 0, 0,213,166, 46,164, 3, 0,203,133, 88, 61,173,190,136,190,139,142,124,189, 0, 0,195,129,
-226,234, 0, 0,203,133, 88, 61,205,243, 1,191, 73,248,134, 61, 0, 0, 26,147,190,188, 2, 0,203,133, 88, 61,247,217,218,190,
-241, 12, 56, 60, 0, 0,226,217,208,133, 2, 0,203,133, 88, 61,161,222,162,190,147, 21,157, 57, 0, 0, 83,215,164,134, 0, 0,
-203,133, 88, 61,207, 87,142,190,141,212,146,188, 0, 0,243,152, 22,180, 0, 0, 61,119,230, 62,239,172,106, 61,161, 43,253,189,
-243,124, 39,230, 19, 10, 0, 0,202, 85,176,190,239,172,106, 61,161, 43,253,189, 13,131, 39,230, 19, 10, 0, 0,243, 84,232, 62,
-194,113,199, 61, 78, 26, 47,190,220,127, 45,250,202, 0, 0, 0,128, 51,178,190,194,113,199, 61, 78, 26, 47,190, 36,128, 45,250,
-202, 0, 0, 0, 32,206,211, 62,216, 49,147, 61,181,218,180,190, 32, 80,174,252, 62,156, 1, 0,173,172,157,190,216, 49,147, 61,
-181,218,180,190,224,175,174,252, 62,156, 1, 0,174, 41,137, 62, 54,180, 27, 62,226, 76,244,190, 9, 58, 51, 25,189,144, 3, 0,
-118, 16, 38,190, 54,180, 27, 62,226, 76,244,190,247,197, 51, 25,189,144, 3, 0,146,121,202, 62,239, 95,151,189,240, 61,238,189,
-139, 91, 11,167,108, 9, 2, 0, 31, 88,148,190,239, 95,151,189,240, 61,238,189,117,164, 11,167,108, 9, 2, 0,197,226,168, 62,
- 97, 4,226,189,163, 21,103,190, 32, 35, 32,133,239,248, 0, 0,164,130,101,190, 97, 4,226,189,163, 21,103,190,224,220, 32,133,
-239,248, 0, 0, 9, 21,180, 62,109, 27,100,189,255,252,178,190,117, 51, 16,177, 97,169, 1, 0, 45,231,123,190,109, 27,100,189,
-255,252,178,190,139,204, 16,177, 97,169, 1, 0,155,156, 86, 62,211, 91,217,188, 85,248,234,190, 58, 54,135,214,188,147, 2, 0,
-106,179,212,189,211, 91,217,188, 85,248,234,190,198,201,135,214,188,147, 2, 0, 30, 24, 38, 62,112, 61, 93,190,191,112, 37, 61,
-229,122,202,255, 60,220, 0, 0,224, 84,103,189,112, 61, 93,190,191,112, 37, 61, 27,133,202,255, 60,220, 0, 0, 41,248, 11, 62,
-209, 24,123,190,176,102,236,188,236, 92,238,180, 10,210, 0, 0, 27,170,253,188,209, 24,123,190,176,102,236,188, 20,163,238,180,
- 10,210, 0, 0, 19, 56, 64, 62,110,117,196,190, 92, 79,241, 60,138, 77,170, 2, 52,154, 2, 0, 89,234,167,189,110,117,196,190,
- 92, 79,241, 60,118,178,170, 2, 52,154, 2, 0,246,142, 45, 62, 59, 19,146,190, 95,149, 7, 61,103, 99,206,254, 97,175, 0, 0,
- 32,152,130,189, 59, 19,146,190, 95,149, 7, 61,153,156,206,254, 97,175, 0, 0, 47,225, 82, 62,234,249,244,190, 15,131, 22, 61,
-129, 71, 28,196, 90,168, 2, 0,146, 60,205,189,234,249,244,190, 15,131, 22, 61,127,184, 28,196, 90,168, 2, 0, 25,158,242, 61,
-178,167,207,190,155,152,181, 60,141, 16, 26,233, 42,131, 0, 0,110,194, 80,188,178,167,207,190,155,152,181, 60,115,239, 26,233,
- 42,131, 0, 0,105,176,227, 61,201,103,155,190, 58,189,151, 60, 50, 43,143,223,247,139, 0, 0,214,169,178,187,201,103,155,190,
- 58,189,151, 60,206,212,143,223,247,139, 0, 0, 81,129, 4, 62,195,112,252,190,129, 39, 97, 61,181, 12,181,157, 3,175, 0, 0,
- 89,243,193,188,195,112,252,190,129, 39, 97, 61, 75,243,181,157, 3,175, 0, 0, 70,161, 30, 62,163,166, 59,190,208, 57, 82, 61,
-142,124,137,226, 5, 0, 0, 0,127,121, 73,189,163,166, 59,190,208, 57, 82, 61,114,131,137,226, 5, 0, 0, 0,218,229, 26, 62,
-174,134, 33,190, 33,111,142, 61, 18,122,107,230,193, 28, 0, 0,207,139, 58,189,174,134, 33,190, 33,111,142, 61,238,133,107,230,
-193, 28, 0, 0,109, 42, 23, 62,186,102, 7,190,130, 74,172, 61, 49,104, 11,185, 42, 22, 0, 0, 31,158, 43,189,186,102, 7,190,
-130, 74,172, 61,207,151, 11,185, 42, 22, 0, 0,218,229, 26, 62,140,230,111,190,206,171,148,189, 91, 75,146,152,161,253, 0, 0,
-207,139, 58,189,140,230,111,190,206,171,148,189,165,180,146,152,161,253, 0, 0,127,243, 67, 62, 83,148, 74,190, 16,205,139,190,
-187, 66, 88,150, 83,228, 2, 0, 49, 97,175,189, 83,148, 74,190, 16,205,139,190, 69,189, 88,150, 83,228, 2, 0, 7, 88, 90, 62,
-235,104,248,189,244, 28,205,190,113, 66, 21,172,210,185, 3, 0, 66, 42,220,189,235,104,248,189,244, 28,205,190,143,189, 21,172,
-210,185, 3, 0,248, 75,135, 62, 55,124,180, 62,187,202,167,190,129, 54,206,102,175,202, 2, 0, 10, 85, 34,190, 55,124,180, 62,
-187,202,167,190,127,201,206,102,175,202, 2, 0,248, 75,135, 62,232,105,195, 62,146, 76, 58,190,186, 53, 22,116,118, 4, 2, 0,
- 10, 85, 34,190,232,105,195, 62,146, 76, 58,190, 70,202, 22,116,118, 4, 2, 0,248, 75,135, 62,203,192,176, 62,105,252, 34,189,
- 3, 59,236, 93,221, 63, 2, 0, 10, 85, 34,190,203,192,176, 62,105,252, 34,189,253,196,236, 93,221, 63, 2, 0,174, 41,137, 62,
-219,193, 68, 62,208, 57, 82, 61, 32, 50,252,105, 90, 51, 0, 0,118, 16, 38,190,219,193, 68, 62,208, 57, 82, 61,224,205,252,105,
- 90, 51, 0, 0,220,155,200, 62,133,198, 12, 62, 95,172,248, 59,242, 97,236, 79, 9, 20, 0, 0,105,122,146,190,133,198, 12, 62,
- 95,172,248, 59, 14,158,236, 79, 9, 20, 0, 0, 83, 55,178, 62, 14, 43, 35, 62,141,212,146,188,108, 60,141, 99, 28, 53, 0, 0,
-193, 43,120,190, 14, 43, 35, 62,141,212,146,188,148,195,141, 99, 28, 53, 0, 0, 9, 21,180, 62, 72, 76,141, 62,161, 43,253,189,
- 96, 83, 57, 87,177, 42, 0, 0, 45,231,123,190, 72, 76,141, 62,161, 43,253,189,160,172, 57, 87,177, 42, 0, 0, 66,103,217, 62,
-247,106, 87, 62, 7,254,185,189,174, 95, 44, 68,204, 50, 2, 0,207, 69,163,190,247,106, 87, 62, 7,254,185,189, 82,160, 44, 68,
-204, 50, 2, 0, 66,103,217, 62,236,138,113, 62, 26,177, 80,190,105,109, 79, 66, 37,252, 2, 0,207, 69,163,190,236,138,113, 62,
- 26,177, 80,190,151,146, 79, 66, 37,252, 2, 0, 9, 21,180, 62,141,126,152, 62, 83, 3,118,190,226, 86,170, 93, 43,248, 0, 0,
- 45,231,123,190,141,126,152, 62, 83, 3,118,190, 30,169,170, 93, 43,248, 0, 0, 9, 21,180, 62, 38,179,135, 62,107,184,182,190,
-111, 82,219, 68,100,186, 2, 0, 45,231,123,190, 38,179,135, 62,107,184,182,190,145,173,219, 68,100,186, 2, 0, 66,103,217, 62,
-179, 56, 76, 62,153, 49,162,190,218,111, 76, 39,195,207, 2, 0,207, 69,163,190,179, 56, 76, 62,153, 49,162,190, 38,144, 76, 39,
-195,207, 2, 0,231,123,174, 62,154,232,206, 61, 56, 79,216,190, 2, 75, 5,254, 79,152, 3, 0,232,180,112,190,154,232,206, 61,
- 56, 79,216,190,254,180, 5,254, 79,152, 3, 0,208,194,142, 62,171,100, 40,189,170,250,206,190,171, 69,136,192,101,169, 1, 0,
-187, 66, 49,190,171,100, 40,189,170,250,206,190, 85,186,136,192,101,169, 0, 0,100, 0,223, 62,154,232,206, 61,191,190,121,190,
-190,114,245, 38, 55, 41, 0, 0,241,222,168,190,154,232,206, 61,191,190,121,190, 66,141,245, 38, 55, 41, 0, 0,104, 51,120, 62,
-186,102, 7,190,127,153,163,189, 89, 73, 32,153,123, 20, 0, 0,130,240, 11,190,186,102, 7,190,127,153,163,189,167,182, 32,153,
-123, 20, 0, 0,214,178,129, 62,254,152, 18,190, 44,122,125,190, 90, 74,132,153, 69,237, 0, 0,198, 34, 23,190,254,152, 18,190,
- 44,122,125,190,166,181,132,153, 69,237, 0, 0,202,203,239, 62,133,198, 12, 62, 56, 86,132,190, 43,219,144, 94, 0, 78, 2, 0,
- 88,170,185,190,133,198, 12, 62, 56, 86,132,190,213, 36,144, 94, 0, 78, 2, 0, 32,206,211, 62, 18,242,240,189,135,108, 84,190,
- 98,250, 11,173, 79, 97, 2, 0,173,172,157,190, 18,242,240,189,135,108, 84,190,158, 5, 11,173, 79, 97, 2, 0, 38,160, 9, 63,
-217,159,203,189,192,186,154,190,102, 60, 54,156,176, 52, 0, 0,219, 30,221,190,217,159,203,189,192,186,154,190,154,195, 54,156,
-177, 52, 0, 0,172,140, 38, 63,211, 91,217,188,255,252,178,190, 40, 86, 6,192,194, 69, 0, 0,244,123, 11,191,211, 91,217,188,
-255,252,178,190,216,169, 6,192,194, 69, 0, 0, 95,242, 46, 63,194,113,199, 61, 73, 31,177,190, 16,101,233, 22, 32, 75, 2, 0,
-167,225, 19,191,194,113,199, 61, 73, 31,177,190,240,154,233, 22, 32, 75, 2, 0,138,243, 32, 63, 3, 75, 61, 62, 73, 31,177,190,
- 32, 46, 37,110, 20, 46, 0, 0,209,226, 5,191, 3, 75, 61, 62, 73, 31,177,190,224,209, 37,110, 20, 46, 0, 0,112,194, 7, 63,
- 82, 93, 46, 62, 84,255,150,190, 21, 2,210,111, 62, 62, 0, 0,111, 99,217,190, 82, 93, 46, 62, 84,255,150,190,235,253,210,111,
- 62, 62, 0, 0,149,211, 6, 63,241,129, 16, 62, 50,102,145,190, 97, 69, 95,247, 54,107, 0, 0,185,133,215,190,241,129, 16, 62,
- 50,102,145,190,159,186, 95,247, 54,107, 0, 0,104, 90, 27, 63, 54,180, 27, 62,113,168,169,190,159, 40, 26,244,203,120, 0, 0,
-175, 73, 0,191, 54,180, 27, 62,113,168,169,190, 97,215, 26,244,203,120, 0, 0,246,174, 36, 63, 97,150,169, 61,221, 99,173,190,
-162,240,132,244,140,126, 0, 0, 62,158, 9,191, 97,150,169, 61,221, 99,173,190, 94, 15,132,244,140,126, 0, 0,249, 38, 30, 63,
- 98,147,127,188,221, 99,173,190,238,252, 16, 35, 15,123, 0, 0, 64, 22, 3,191, 98,147,127,188,221, 99,173,190, 18, 3, 16, 35,
- 15,123, 0, 0, 75,177, 8, 63, 23,233,143,189,158, 33,149,190,255, 62, 10, 35,196,105, 0, 0, 37, 65,219,190, 23,233,143,189,
-158, 33,149,190, 1,193, 10, 35,196,105, 0, 0, 26,222,224, 62,120,196,173,189,243, 39, 88,190,176, 43, 36, 45,132,111, 2, 0,
-167,188,170,190,120,196,173,189,243, 39, 88,190, 80,212, 36, 45,132,111, 2, 0,162, 66,247, 62,250,195,236, 61,204,154,128,190,
-191, 58,236,247,109,113, 2, 0, 48, 33,193,190,250,195,236, 61,204,154,128,190, 65,197,236,247,109,113, 2, 0,196,219,252, 62,
- 17,132,184, 61, 50,102,145,190, 9, 88, 45,185, 34, 60, 0, 0, 82,186,198,190, 17,132,184, 61, 50,102,145,190,247,167, 45,185,
- 34, 60, 0, 0, 21,238,237, 62,103,251,128,189, 44,122,125,190,210, 29,124,112, 75, 53, 0, 0,162,204,183,190,103,251,128,189,
- 44,122,125,190, 46,226,124,112, 75, 53, 0, 0, 38,160, 9, 63,188, 45, 85,189, 79, 15,164,190,175,234, 24,122,245, 31, 0, 0,
-219, 30,221,190,188, 45, 85,189, 79, 15,164,190, 81, 21, 24,122,245, 31, 0, 0,104, 90, 27, 63,223, 37, 8,188,107,184,182,190,
-141,158,211, 82, 28, 5, 0, 0,175, 73, 0,191,223, 37, 8,188,107,184,182,190,115, 97,211, 82, 28, 5, 0, 0,138,243, 32, 63,
- 40, 68,132, 61,107,184,182,190,111,130, 12,244,188, 21, 0, 0,209,226, 5,191, 40, 68,132, 61,107,184,182,190,145,125, 12,244,
-188, 21, 0, 0,178,124, 25, 63,250,195,236, 61,181,218,180,190,245,237, 22,157, 52, 79, 0, 0,242,215,252,190,250,195,236, 61,
-181,218,180,190, 11, 18, 22,157, 52, 79, 0, 0,112,194, 7, 63, 74,214,221, 61,153, 49,162,190,132, 71,190,171,144, 64, 0, 0,
-111, 99,217,190, 74,214,221, 61,153, 49,162,190,124,184,190,171,144, 64, 0, 0,135,153,228, 62, 97,150,169, 61, 44,122,125,190,
- 16, 95,148,222,236, 78, 0, 0, 20,120,174,190, 97,150,169, 61, 44,122,125,190,240,160,148,222,236, 78, 0, 0,209,187,226, 62,
-216,126,230, 60,198,170,141,190,194, 95,198,181, 68, 41, 0, 0, 93,154,172,190,216,126,230, 60,198,170,141,190, 62,160,198,181,
- 68, 41, 0, 0,180, 18,208, 62,223, 37, 8,188,198,170,141,190,238,109,193, 4, 98, 65, 0, 0, 65,241,153,190,223, 37, 8,188,
-198,170,141,190, 18,146,193, 4, 98, 65, 0, 0,100, 0,223, 62,161,220, 67,188,198,170,141,190, 91, 73,245, 92,148, 48, 2, 0,
-241,222,168,190,161,220, 67,188,198,170,141,190,165,182,245, 92,148, 48, 2, 0,135,153,228, 62, 92, 82, 55,189,198,170,141,190,
- 27,113, 2,248, 97, 59, 2, 0, 20,120,174,190, 92, 82, 55,189,198,170,141,190,229,142, 2,248, 97, 59, 2, 0,174, 34,221, 62,
- 29, 9,115,189,198,170,141,190,241, 75,125, 72, 55, 73, 0, 0, 59, 1,167,190, 29, 9,115,189,198,170,141,190, 15,180,125, 72,
- 55, 73, 0, 0,220,155,200, 62,188, 45, 85,189,146, 76, 58,190, 69,110,138,193, 22,238, 0, 0,105,122,146,190,188, 45, 85,189,
-146, 76, 58,190,187,145,138,193, 22,238, 0, 0, 38,190,198, 62,103,251,128,189, 15,209,106,190, 93, 95,240, 10,170, 84, 0, 0,
-179,156,144,190,103,251,128,189, 15,209,106,190,163,160,240, 10,170, 84, 0, 0, 38,190,198, 62, 74,137, 10,189,231, 71,114,190,
-226,117,157,233,140, 44, 0, 0,179,156,144,190, 74,137, 10,189,231, 71,114,190, 30,138,157,233,140, 44, 0, 0, 66,103,217, 62,
- 45,246, 46, 61, 44,122,125,190,156,111,186,201, 79, 31, 0, 0,207, 69,163,190, 45,246, 46, 61, 44,122,125,190,100,144,186,201,
- 79, 31, 0, 0,202,203,239, 62,159,154,121, 61, 16,205,139,190, 32, 89,187,186, 87, 60, 0, 0, 88,170,185,190,159,154,121, 61,
- 16,205,139,190,224,166,187,186, 87, 60, 0, 0,202,203,239, 62,239,172,106, 61, 10,221,152,190, 91, 85, 90,200,118, 77, 0, 0,
- 88,170,185,190,239,172,106, 61, 10,221,152,190,165,170, 90,200,118, 77, 0, 0,174, 34,221, 62, 29, 9,115,189, 10,221,152,190,
-123, 84,188, 44, 29, 85, 0, 0, 59, 1,167,190, 29, 9,115,189, 10,221,152,190,133,171,188, 44, 29, 85, 0, 0, 61,119,230, 62,
- 92, 82, 55,189, 10,221,152,190,219, 47, 50, 47,237,108, 0, 0,202, 85,176,190, 92, 82, 55,189, 10,221,152,190, 37,208, 50, 47,
-237,108, 0, 0, 26,222,224, 62, 98,147,127,188, 10,221,152,190,236, 56,223, 47, 42,104, 0, 0,167,188,170,190, 98,147,127,188,
- 10,221,152,190, 20,199,223, 47, 42,104, 0, 0,106,240,209, 62,223, 37, 8,188, 10,221,152,190, 79,100, 44, 32,179, 72, 0, 0,
-247,206,155,190,223, 37, 8,188, 10,221,152,190,177,155, 44, 32,179, 72, 0, 0,135,153,228, 62,216,126,230, 60, 10,221,152,190,
- 35, 73,126,201,202, 89, 0, 0, 20,120,174,190,216,126,230, 60, 10,221,152,190,221,182,126,201,202, 89, 0, 0, 38,160, 9, 63,
-154,232,206, 61,147, 65,175,190, 1, 62,211,212, 80,103, 0, 0,219, 30,221,190,154,232,206, 61,147, 65,175,190,255,193,211,212,
- 80,103, 0, 0,104, 90, 27, 63, 74,214,221, 61,249, 12,192,190, 51,224,110,181, 12, 99, 0, 0,175, 73, 0,191, 74,214,221, 61,
-249, 12,192,190,205, 31,110,181, 12, 99, 0, 0, 27,192, 35, 63,159,154,121, 61,175,234,193,190,220,160,139,243,182, 84, 0, 0,
- 98,175, 8,191,159,154,121, 61,175,234,193,190, 36, 95,139,243,182, 84, 0, 0,249, 38, 30, 63,161,220, 67,188,249, 12,192,190,
-253,186,174, 57, 16, 91, 0, 0, 64, 22, 3,191,161,220, 67,188,249, 12,192,190, 3, 69,174, 57, 16, 91, 0, 0, 1,143, 10, 63,
-188, 45, 85,189, 73, 31,177,190, 44, 11,185, 94, 90, 85, 0, 0,145,252,222,190,188, 45, 85,189, 73, 31,177,190,212,244,185, 94,
- 90, 85, 0, 0, 21,238,237, 62, 29, 9,115,189, 16,205,139,190,131,249,213,121,178, 38, 0, 0,162,204,183,190, 29, 9,115,189,
- 16,205,139,190,125, 6,213,121,178, 38, 0, 0,122,185,254, 62, 97,150,169, 61, 45,118,158,190, 97, 81,161,203,196, 83, 0, 0,
- 8,152,200,190, 97,150,169, 61, 45,118,158,190,159,174,161,203,196, 83, 0, 0,202,203,239, 62,226,194,133,186,192,186,154,190,
- 99, 25,168, 0,115,125, 0, 0, 88,170,185,190,226,194,133,186,192,186,154,190,157,230,168, 0,115,125, 0, 0, 14,254,250, 62,
-115,128,187,188,119,152,156,190, 86, 49,224, 14, 41,117, 0, 0,156,220,196,190,115,128,187,188,119,152,156,190,170,206,224, 14,
- 41,117, 0, 0,223,245, 4, 63, 77,106,205, 59, 79, 15,164,190, 60, 55,195,251, 98,115, 0, 0, 76,202,211,190, 77,106,205, 59,
- 79, 15,164,190,196,200,195,251, 98,115, 0, 0,152, 75, 0, 63,216,126,230, 60,227, 83,160,190,255, 41, 6, 0,232,120, 0, 0,
-190,117,202,190,216,126,230, 60,227, 83,160,190, 1,214, 6, 0,232,120, 0, 0,149,211, 6, 63,239,172,106, 61, 5,237,165,190,
-174, 40,253, 11,196,120, 0, 0,185,133,215,190,239,172,106, 61, 5,237,165,190, 82,215,253, 11,196,120, 0, 0,220,125, 11, 63,
-205, 26, 17, 61,187,202,167,190, 32, 44, 47,246,191,119, 0, 0, 71,218,224,190,205, 26, 17, 61,187,202,167,190,224,211, 47,246,
-191,119, 0, 0,218, 5, 18, 63,222,227, 61, 61,113,168,169,190,222, 55, 67,254, 37,115, 2, 0, 65,234,237,190,222,227, 61, 61,
-113,168,169,190, 34,200, 67,254, 37,115, 2, 0, 73, 57, 15, 63,176,168,154, 61,113,168,169,190,188, 45, 37, 38, 75,113, 2, 0,
- 31, 81,232,190,176,168,154, 61,113,168,169,190, 68,210, 37, 38, 75,113, 2, 0,112,194, 7, 63, 54,180, 27, 62,249, 12,192,190,
-139,202,127, 71, 71,164, 3, 0,111, 99,217,190, 54,180, 27, 62,249, 12,192,190,117, 53,127, 71, 71,164, 3, 0, 64,209, 34, 63,
-230,161, 42, 62,170,250,206,190, 2, 39,153, 79,172,163, 3, 0,135,192, 7,191,230,161, 42, 62,170,250,206,190,254,216,153, 79,
-172,163, 3, 0, 21,208, 48, 63, 57, 13,177, 61,102,200,195,190, 49,118,245, 10, 30,208, 3, 0, 93,191, 21,191, 57, 13,177, 61,
-102,200,195,190,207,137,245, 10, 30,208, 3, 0, 24, 72, 42, 63,211, 91,217,188, 62, 63,203,190,182, 78, 54,193,251,176, 3, 0,
- 96, 55, 15,191,211, 91,217,188, 62, 63,203,190, 74,177, 54,193,251,176, 3, 0, 38,160, 9, 63, 40,178,188,189,175,234,193,190,
-165,250,140,166,156,164, 3, 0,219, 30,221,190, 40,178,188,189,175,234,193,190, 91, 5,140,166,156,164, 3, 0,140,137,215, 62,
- 97, 4,226,189,192,186,154,190,203,245,207,147, 96,188, 1, 0, 25,104,161,190, 97, 4,226,189,192,186,154,190, 53, 10,207,147,
- 96,188, 1, 0,243, 84,232, 62, 65,148, 1, 62,187,202,167,190, 3,172, 39, 73,240,192, 1, 0,128, 51,178,190, 65,148, 1, 62,
-187,202,167,190,253, 83, 39, 73,240,192, 1, 0, 68, 65, 84, 65, 8, 2, 0, 0, 24, 85, 27, 4, 0, 0, 0, 0,124, 1, 0, 0,
- 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,248, 90,195, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 28, 47, 0, 0,248, 90,195, 4, 0, 0, 0, 0, 53, 0, 0, 0,
-237, 3, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0,
- 43, 0, 0, 0, 0, 0, 34, 0, 43, 0, 0, 0, 45, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0,
- 1, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, 44, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 44, 0, 0, 0,
- 0, 0, 34, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 41, 0, 0, 0, 0, 0, 34, 0, 41, 0, 0, 0,
- 43, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 42, 0, 0, 0, 44, 0, 0, 0, 0, 0, 34, 0,
- 5, 0, 0, 0, 42, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 8, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 8, 0, 0, 0,
- 0, 0, 34, 0, 4, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 9, 0, 0, 0, 0, 0, 34, 0, 3, 0, 0, 0,
- 9, 0, 0, 0, 0, 0, 34, 0, 5, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0,
- 8, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 1, 0, 0, 0, 11, 0, 0, 0,
- 0, 0, 34, 0, 10, 0, 0, 0, 12, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0,
- 14, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0,
- 6, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 7, 0, 0, 0, 16, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 19, 0, 0, 0,
- 0, 0, 34, 0, 17, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 15, 0, 0, 0, 17, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0,
- 20, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 18, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0,
- 19, 0, 0, 0, 21, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0, 22, 0, 0, 0,
- 0, 0, 34, 0, 21, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 23, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 19, 0, 0, 0,
- 25, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 24, 0, 0, 0, 0, 0, 34, 0,
- 20, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0, 25, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 27, 0, 0, 0,
- 0, 0, 34, 0, 26, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 28, 0, 0, 0, 0, 0, 34, 0, 25, 0, 0, 0,
- 31, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 31, 0, 0, 0, 0, 0, 34, 0, 27, 0, 0, 0, 29, 0, 0, 0, 0, 0, 34, 0,
- 30, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 32, 0, 0, 0, 0, 0, 34, 0, 28, 0, 0, 0, 30, 0, 0, 0,
- 0, 0, 34, 0, 23, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 31, 0, 0, 0, 33, 0, 0, 0, 0, 0, 34, 0, 32, 0, 0, 0,
- 34, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 34, 0, 0, 0, 0, 0, 34, 0, 33, 0, 0, 0, 35, 0, 0, 0, 0, 0, 34, 0,
- 35, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 31, 0, 0, 0, 37, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, 38, 0, 0, 0,
- 0, 0, 34, 0, 34, 0, 0, 0, 36, 0, 0, 0, 0, 0, 34, 0, 32, 0, 0, 0, 38, 0, 0, 0, 0, 0, 34, 0, 37, 0, 0, 0,
- 39, 0, 0, 0, 0, 0, 34, 0, 29, 0, 0, 0, 39, 0, 0, 0, 0, 0, 34, 0, 38, 0, 0, 0, 40, 0, 0, 0, 0, 0, 34, 0,
- 30, 0, 0, 0, 40, 0, 0, 0, 0, 0, 34, 0, 37, 0, 0, 0, 43, 0, 0, 0, 0, 0, 34, 0, 39, 0, 0, 0, 41, 0, 0, 0,
- 0, 0, 34, 0, 38, 0, 0, 0, 44, 0, 0, 0, 0, 0, 34, 0, 40, 0, 0, 0, 42, 0, 0, 0, 0, 0, 34, 0, 35, 0, 0, 0,
- 45, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, 46, 0, 0, 0, 0, 0, 34, 0, 35, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0,
- 47, 0, 0, 0, 49, 0, 0, 0, 0, 0, 34, 0, 45, 0, 0, 0, 47, 0, 0, 0, 0, 0, 34, 0, 36, 0, 0, 0, 50, 0, 0, 0,
- 0, 0, 34, 0, 46, 0, 0, 0, 48, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 50, 0, 0, 0, 0, 0, 34, 0, 33, 0, 0, 0,
- 51, 0, 0, 0, 0, 0, 34, 0, 49, 0, 0, 0, 51, 0, 0, 0, 0, 0, 34, 0, 34, 0, 0, 0, 52, 0, 0, 0, 0, 0, 34, 0,
- 50, 0, 0, 0, 52, 0, 0, 0, 0, 0, 34, 0, 23, 0, 0, 0, 53, 0, 0, 0, 0, 0, 34, 0, 51, 0, 0, 0, 53, 0, 0, 0,
- 0, 0, 34, 0, 24, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0,
- 55, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 55, 0, 0, 0, 0, 0, 34, 0, 22, 0, 0, 0, 56, 0, 0, 0, 0, 0, 34, 0,
- 54, 0, 0, 0, 56, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 57, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 57, 0, 0, 0,
- 0, 0, 34, 0, 13, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 56, 0, 0, 0, 58, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0,
- 61, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 11, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0,
- 58, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0, 61, 0, 0, 0, 63, 0, 0, 0,
- 0, 0, 34, 0, 1, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, 62, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, 47, 0, 0, 0,
- 63, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, 59, 0, 0, 0, 63, 0, 0, 0, 0, 0, 34, 0,
- 47, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, 64, 0, 0, 0, 0, 0, 34, 0, 48, 0, 0, 0, 60, 0, 0, 0,
- 0, 0, 34, 0, 59, 0, 0, 0, 61, 0, 0, 0, 0, 0, 34, 0, 60, 0, 0, 0, 62, 0, 0, 0, 0, 0, 34, 0, 57, 0, 0, 0,
- 59, 0, 0, 0, 0, 0, 34, 0, 58, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 55, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0,
- 56, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 53, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 54, 0, 0, 0, 60, 0, 0, 0,
- 0, 0, 34, 0, 51, 0, 0, 0, 59, 0, 0, 0, 0, 0, 34, 0, 52, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 49, 0, 0, 0,
- 59, 0, 0, 0, 0, 0, 34, 0, 50, 0, 0, 0, 60, 0, 0, 0, 0, 0, 34, 0, 87, 0, 0, 0,171, 0, 0, 0, 0, 0, 34, 0,
-171, 0, 0, 0,173, 0, 0, 0, 0, 0, 34, 0, 89, 0, 0, 0,173, 0, 0, 0, 0, 0, 34, 0, 87, 0, 0, 0, 89, 0, 0, 0,
- 0, 0, 34, 0,172, 0, 0, 0,173, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0,172, 0, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0,
- 89, 0, 0, 0, 0, 0, 34, 0, 85, 0, 0, 0,169, 0, 0, 0, 0, 0, 34, 0,169, 0, 0, 0,171, 0, 0, 0, 0, 0, 34, 0,
- 85, 0, 0, 0, 87, 0, 0, 0, 0, 0, 34, 0,170, 0, 0, 0,172, 0, 0, 0, 0, 0, 34, 0, 86, 0, 0, 0,170, 0, 0, 0,
- 0, 0, 34, 0, 86, 0, 0, 0, 88, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0,167, 0, 0, 0, 0, 0, 34, 0,167, 0, 0, 0,
-169, 0, 0, 0, 0, 0, 34, 0, 83, 0, 0, 0, 85, 0, 0, 0, 0, 0, 34, 0,168, 0, 0, 0,170, 0, 0, 0, 0, 0, 34, 0,
- 84, 0, 0, 0,168, 0, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, 86, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0,165, 0, 0, 0,
- 0, 0, 34, 0,165, 0, 0, 0,167, 0, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, 83, 0, 0, 0, 0, 0, 34, 0,166, 0, 0, 0,
-168, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0,166, 0, 0, 0, 0, 0, 34, 0, 82, 0, 0, 0, 84, 0, 0, 0, 0, 0, 34, 0,
- 79, 0, 0, 0,163, 0, 0, 0, 0, 0, 34, 0,163, 0, 0, 0,165, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 81, 0, 0, 0,
- 0, 0, 34, 0,164, 0, 0, 0,166, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0,164, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0,
- 82, 0, 0, 0, 0, 0, 34, 0, 77, 0, 0, 0, 90, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0,143, 0, 0, 0, 0, 0, 34, 0,
-143, 0, 0, 0,161, 0, 0, 0, 0, 0, 34, 0, 77, 0, 0, 0,161, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0,144, 0, 0, 0,
- 0, 0, 34, 0, 78, 0, 0, 0, 91, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0,162, 0, 0, 0, 0, 0, 34, 0,144, 0, 0, 0,
-162, 0, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0, 92, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0,145, 0, 0, 0, 0, 0, 34, 0,
-143, 0, 0, 0,145, 0, 0, 0, 0, 0, 34, 0, 93, 0, 0, 0,146, 0, 0, 0, 0, 0, 34, 0, 91, 0, 0, 0, 93, 0, 0, 0,
- 0, 0, 34, 0,144, 0, 0, 0,146, 0, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, 94, 0, 0, 0, 0, 0, 34, 0, 94, 0, 0, 0,
-147, 0, 0, 0, 0, 0, 34, 0,145, 0, 0, 0,147, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0,148, 0, 0, 0, 0, 0, 34, 0,
- 93, 0, 0, 0, 95, 0, 0, 0, 0, 0, 34, 0,146, 0, 0, 0,148, 0, 0, 0, 0, 0, 34, 0, 94, 0, 0, 0, 96, 0, 0, 0,
- 0, 0, 34, 0, 96, 0, 0, 0,149, 0, 0, 0, 0, 0, 34, 0,147, 0, 0, 0,149, 0, 0, 0, 0, 0, 34, 0, 97, 0, 0, 0,
-150, 0, 0, 0, 0, 0, 34, 0, 95, 0, 0, 0, 97, 0, 0, 0, 0, 0, 34, 0,148, 0, 0, 0,150, 0, 0, 0, 0, 0, 34, 0,
- 96, 0, 0, 0, 98, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0,151, 0, 0, 0, 0, 0, 34, 0,149, 0, 0, 0,151, 0, 0, 0,
- 0, 0, 34, 0, 99, 0, 0, 0,152, 0, 0, 0, 0, 0, 34, 0, 97, 0, 0, 0, 99, 0, 0, 0, 0, 0, 34, 0,150, 0, 0, 0,
-152, 0, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0,100, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0,153, 0, 0, 0, 0, 0, 34, 0,
-151, 0, 0, 0,153, 0, 0, 0, 0, 0, 34, 0,101, 0, 0, 0,154, 0, 0, 0, 0, 0, 34, 0, 99, 0, 0, 0,101, 0, 0, 0,
- 0, 0, 34, 0,152, 0, 0, 0,154, 0, 0, 0, 0, 0, 34, 0,100, 0, 0, 0,102, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,
-155, 0, 0, 0, 0, 0, 34, 0,153, 0, 0, 0,155, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0,156, 0, 0, 0, 0, 0, 34, 0,
-101, 0, 0, 0,103, 0, 0, 0, 0, 0, 34, 0,154, 0, 0, 0,156, 0, 0, 0, 0, 0, 34, 0,102, 0, 0, 0,104, 0, 0, 0,
- 0, 0, 34, 0,104, 0, 0, 0,157, 0, 0, 0, 0, 0, 34, 0,155, 0, 0, 0,157, 0, 0, 0, 0, 0, 34, 0,105, 0, 0, 0,
-158, 0, 0, 0, 0, 0, 34, 0,103, 0, 0, 0,105, 0, 0, 0, 0, 0, 34, 0,156, 0, 0, 0,158, 0, 0, 0, 0, 0, 34, 0,
-104, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0,106, 0, 0, 0,159, 0, 0, 0, 0, 0, 34, 0,157, 0, 0, 0,159, 0, 0, 0,
- 0, 0, 34, 0,107, 0, 0, 0,160, 0, 0, 0, 0, 0, 34, 0,105, 0, 0, 0,107, 0, 0, 0, 0, 0, 34, 0,158, 0, 0, 0,
-160, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0,106, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0, 66, 0, 0, 0, 0, 0, 34, 0,
- 66, 0, 0, 0,159, 0, 0, 0, 0, 0, 34, 0, 65, 0, 0, 0,107, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0,160, 0, 0, 0,
- 0, 0, 34, 0,108, 0, 0, 0,125, 0, 0, 0, 0, 0, 34, 0,125, 0, 0, 0,157, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0,
-159, 0, 0, 0, 0, 0, 34, 0,126, 0, 0, 0,158, 0, 0, 0, 0, 0, 34, 0,109, 0, 0, 0,126, 0, 0, 0, 0, 0, 34, 0,
-109, 0, 0, 0,160, 0, 0, 0, 0, 0, 34, 0,125, 0, 0, 0,176, 0, 0, 0, 0, 0, 34, 0,155, 0, 0, 0,176, 0, 0, 0,
- 0, 0, 34, 0,156, 0, 0, 0,177, 0, 0, 0, 0, 0, 34, 0,126, 0, 0, 0,177, 0, 0, 0, 0, 0, 34, 0,123, 0, 0, 0,
-153, 0, 0, 0, 0, 0, 34, 0,123, 0, 0, 0,176, 0, 0, 0, 0, 0, 34, 0,124, 0, 0, 0,154, 0, 0, 0, 0, 0, 34, 0,
-124, 0, 0, 0,177, 0, 0, 0, 0, 0, 34, 0,121, 0, 0, 0,151, 0, 0, 0, 0, 0, 34, 0,121, 0, 0, 0,123, 0, 0, 0,
- 0, 0, 34, 0,122, 0, 0, 0,152, 0, 0, 0, 0, 0, 34, 0,122, 0, 0, 0,124, 0, 0, 0, 0, 0, 34, 0,119, 0, 0, 0,
-149, 0, 0, 0, 0, 0, 34, 0,119, 0, 0, 0,121, 0, 0, 0, 0, 0, 34, 0,120, 0, 0, 0,150, 0, 0, 0, 0, 0, 34, 0,
-120, 0, 0, 0,122, 0, 0, 0, 0, 0, 34, 0,117, 0, 0, 0,147, 0, 0, 0, 0, 0, 34, 0,117, 0, 0, 0,119, 0, 0, 0,
- 0, 0, 34, 0,118, 0, 0, 0,148, 0, 0, 0, 0, 0, 34, 0,118, 0, 0, 0,120, 0, 0, 0, 0, 0, 34, 0,115, 0, 0, 0,
-145, 0, 0, 0, 0, 0, 34, 0,115, 0, 0, 0,117, 0, 0, 0, 0, 0, 34, 0,116, 0, 0, 0,146, 0, 0, 0, 0, 0, 34, 0,
-116, 0, 0, 0,118, 0, 0, 0, 0, 0, 34, 0,113, 0, 0, 0,143, 0, 0, 0, 0, 0, 34, 0,113, 0, 0, 0,115, 0, 0, 0,
- 0, 0, 34, 0,114, 0, 0, 0,144, 0, 0, 0, 0, 0, 34, 0,114, 0, 0, 0,116, 0, 0, 0, 0, 0, 34, 0,112, 0, 0, 0,
-162, 0, 0, 0, 0, 0, 34, 0,112, 0, 0, 0,114, 0, 0, 0, 0, 0, 34, 0,174, 0, 0, 0,178, 0, 0, 0, 0, 0, 34, 0,
-161, 0, 0, 0,174, 0, 0, 0, 0, 0, 34, 0,174, 0, 0, 0,179, 0, 0, 0, 0, 0, 34, 0,112, 0, 0, 0,179, 0, 0, 0,
- 0, 0, 34, 0,162, 0, 0, 0,174, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0,110, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0,
-110, 0, 0, 0, 0, 0, 34, 0,109, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0, 66, 0, 0, 0,111, 0, 0, 0, 0, 0, 34, 0,
- 66, 0, 0, 0,175, 0, 0, 0, 0, 0, 34, 0,175, 0, 0, 0,180, 0, 0, 0, 0, 0, 34, 0,110, 0, 0, 0,180, 0, 0, 0,
- 0, 0, 34, 0,111, 0, 0, 0,181, 0, 0, 0, 0, 0, 34, 0,175, 0, 0, 0,181, 0, 0, 0, 0, 0, 34, 0,178, 0, 0, 0,
-180, 0, 0, 0, 0, 0, 34, 0,174, 0, 0, 0,175, 0, 0, 0, 0, 0, 32, 0,179, 0, 0, 0,181, 0, 0, 0, 0, 0, 34, 0,
-132, 0, 0, 0,134, 0, 0, 0, 0, 0, 34, 0,134, 0, 0, 0,173, 0, 0, 0, 0, 0, 34, 0,132, 0, 0, 0,171, 0, 0, 0,
- 0, 0, 34, 0,133, 0, 0, 0,134, 0, 0, 0, 0, 0, 34, 0,133, 0, 0, 0,172, 0, 0, 0, 0, 0, 34, 0,130, 0, 0, 0,
-132, 0, 0, 0, 0, 0, 34, 0,130, 0, 0, 0,169, 0, 0, 0, 0, 0, 34, 0,131, 0, 0, 0,133, 0, 0, 0, 0, 0, 34, 0,
-131, 0, 0, 0,170, 0, 0, 0, 0, 0, 34, 0,128, 0, 0, 0,130, 0, 0, 0, 0, 0, 34, 0,128, 0, 0, 0,167, 0, 0, 0,
- 0, 0, 34, 0,129, 0, 0, 0,131, 0, 0, 0, 0, 0, 34, 0,129, 0, 0, 0,168, 0, 0, 0, 0, 0, 34, 0,163, 0, 0, 0,
-184, 0, 0, 0, 0, 0, 34, 0,182, 0, 0, 0,184, 0, 0, 0, 0, 0, 34, 0,165, 0, 0, 0,182, 0, 0, 0, 0, 0, 34, 0,
-183, 0, 0, 0,185, 0, 0, 0, 0, 0, 34, 0,164, 0, 0, 0,185, 0, 0, 0, 0, 0, 34, 0,166, 0, 0, 0,183, 0, 0, 0,
- 0, 0, 34, 0,128, 0, 0, 0,182, 0, 0, 0, 0, 0, 34, 0,129, 0, 0, 0,183, 0, 0, 0, 0, 0, 34, 0,141, 0, 0, 0,
-187, 0, 0, 0, 0, 0, 34, 0,186, 0, 0, 0,187, 0, 0, 0, 0, 0, 32, 0,184, 0, 0, 0,186, 0, 0, 0, 0, 0, 34, 0,
-141, 0, 0, 0,184, 0, 0, 0, 0, 0, 34, 0,142, 0, 0, 0,187, 0, 0, 0, 0, 0, 34, 0,142, 0, 0, 0,185, 0, 0, 0,
- 0, 0, 34, 0,185, 0, 0, 0,186, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0,186, 0, 0, 0, 0, 0, 32, 0, 67, 0, 0, 0,
-182, 0, 0, 0, 0, 0, 34, 0, 67, 0, 0, 0,183, 0, 0, 0, 0, 0, 34, 0,127, 0, 0, 0,128, 0, 0, 0, 0, 0, 34, 0,
- 67, 0, 0, 0,127, 0, 0, 0, 0, 0, 32, 0,127, 0, 0, 0,129, 0, 0, 0, 0, 0, 34, 0,139, 0, 0, 0,190, 0, 0, 0,
- 0, 0, 34, 0,188, 0, 0, 0,190, 0, 0, 0, 0, 0, 34, 0,141, 0, 0, 0,188, 0, 0, 0, 0, 0, 34, 0,139, 0, 0, 0,
-141, 0, 0, 0, 0, 0, 34, 0,189, 0, 0, 0,191, 0, 0, 0, 0, 0, 34, 0,140, 0, 0, 0,191, 0, 0, 0, 0, 0, 34, 0,
-140, 0, 0, 0,142, 0, 0, 0, 0, 0, 34, 0,142, 0, 0, 0,189, 0, 0, 0, 0, 0, 34, 0,137, 0, 0, 0,192, 0, 0, 0,
- 0, 0, 34, 0,190, 0, 0, 0,192, 0, 0, 0, 0, 0, 34, 0,137, 0, 0, 0,139, 0, 0, 0, 0, 0, 34, 0,191, 0, 0, 0,
-193, 0, 0, 0, 0, 0, 34, 0,138, 0, 0, 0,193, 0, 0, 0, 0, 0, 34, 0,138, 0, 0, 0,140, 0, 0, 0, 0, 0, 34, 0,
-136, 0, 0, 0,194, 0, 0, 0, 0, 0, 34, 0,192, 0, 0, 0,194, 0, 0, 0, 0, 0, 34, 0,136, 0, 0, 0,137, 0, 0, 0,
- 0, 0, 34, 0,193, 0, 0, 0,195, 0, 0, 0, 0, 0, 34, 0,136, 0, 0, 0,195, 0, 0, 0, 0, 0, 34, 0,136, 0, 0, 0,
-138, 0, 0, 0, 0, 0, 34, 0, 69, 0, 0, 0,135, 0, 0, 0, 0, 0, 34, 0, 69, 0, 0, 0,194, 0, 0, 0, 0, 0, 34, 0,
-135, 0, 0, 0,136, 0, 0, 0, 0, 0, 34, 0, 69, 0, 0, 0,195, 0, 0, 0, 0, 0, 34, 0, 68, 0, 0, 0,188, 0, 0, 0,
- 0, 0, 34, 0, 68, 0, 0, 0,187, 0, 0, 0, 0, 0, 34, 0, 68, 0, 0, 0,189, 0, 0, 0, 0, 0, 34, 0,188, 0, 0, 0,
-203, 0, 0, 0, 0, 0, 34, 0,203, 0, 0, 0,205, 0, 0, 0, 0, 0, 34, 0, 68, 0, 0, 0,205, 0, 0, 0, 0, 0, 34, 0,
-189, 0, 0, 0,204, 0, 0, 0, 0, 0, 34, 0,204, 0, 0, 0,205, 0, 0, 0, 0, 0, 34, 0, 69, 0, 0, 0,196, 0, 0, 0,
- 0, 0, 34, 0,196, 0, 0, 0,197, 0, 0, 0, 0, 0, 34, 0,194, 0, 0, 0,197, 0, 0, 0, 0, 0, 34, 0,196, 0, 0, 0,
-198, 0, 0, 0, 0, 0, 34, 0,195, 0, 0, 0,198, 0, 0, 0, 0, 0, 34, 0,197, 0, 0, 0,199, 0, 0, 0, 0, 0, 34, 0,
-192, 0, 0, 0,199, 0, 0, 0, 0, 0, 34, 0,198, 0, 0, 0,200, 0, 0, 0, 0, 0, 34, 0,193, 0, 0, 0,200, 0, 0, 0,
- 0, 0, 34, 0,199, 0, 0, 0,201, 0, 0, 0, 0, 0, 34, 0,190, 0, 0, 0,201, 0, 0, 0, 0, 0, 34, 0,200, 0, 0, 0,
-202, 0, 0, 0, 0, 0, 34, 0,191, 0, 0, 0,202, 0, 0, 0, 0, 0, 34, 0,201, 0, 0, 0,203, 0, 0, 0, 0, 0, 34, 0,
-202, 0, 0, 0,204, 0, 0, 0, 0, 0, 34, 0,196, 0, 0, 0,201, 0, 0, 0, 0, 0, 34, 0,196, 0, 0, 0,202, 0, 0, 0,
- 0, 0, 34, 0,196, 0, 0, 0,205, 0, 0, 0, 0, 0, 34, 0,137, 0, 0, 0,161, 0, 0, 0, 0, 0, 34, 0,136, 0, 0, 0,
-174, 0, 0, 0, 0, 0, 34, 0,138, 0, 0, 0,162, 0, 0, 0, 0, 0, 34, 0,139, 0, 0, 0,208, 0, 0, 0, 0, 0, 34, 0,
-161, 0, 0, 0,208, 0, 0, 0, 0, 0, 34, 0,140, 0, 0, 0,209, 0, 0, 0, 0, 0, 34, 0,162, 0, 0, 0,209, 0, 0, 0,
- 0, 0, 34, 0,141, 0, 0, 0,210, 0, 0, 0, 0, 0, 34, 0,208, 0, 0, 0,210, 0, 0, 0, 0, 0, 34, 0,142, 0, 0, 0,
-211, 0, 0, 0, 0, 0, 34, 0,209, 0, 0, 0,211, 0, 0, 0, 0, 0, 34, 0,163, 0, 0, 0,210, 0, 0, 0, 0, 0, 34, 0,
-164, 0, 0, 0,211, 0, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0,206, 0, 0, 0, 0, 0, 34, 0,206, 0, 0, 0,210, 0, 0, 0,
- 0, 0, 34, 0,207, 0, 0, 0,211, 0, 0, 0, 0, 0, 34, 0, 80, 0, 0, 0,207, 0, 0, 0, 0, 0, 34, 0,206, 0, 0, 0,
-212, 0, 0, 0, 0, 0, 34, 0,208, 0, 0, 0,212, 0, 0, 0, 0, 0, 34, 0,209, 0, 0, 0,213, 0, 0, 0, 0, 0, 34, 0,
-207, 0, 0, 0,213, 0, 0, 0, 0, 0, 34, 0, 77, 0, 0, 0,212, 0, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0,213, 0, 0, 0,
- 0, 0, 34, 0, 70, 0, 0, 0,127, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0,219, 0, 0, 0, 0, 0, 34, 0,128, 0, 0, 0,
-219, 0, 0, 0, 0, 0, 34, 0,129, 0, 0, 0,220, 0, 0, 0, 0, 0, 34, 0, 70, 0, 0, 0,220, 0, 0, 0, 0, 0, 34, 0,
-217, 0, 0, 0,219, 0, 0, 0, 0, 0, 34, 0,130, 0, 0, 0,217, 0, 0, 0, 0, 0, 34, 0,131, 0, 0, 0,218, 0, 0, 0,
- 0, 0, 34, 0,218, 0, 0, 0,220, 0, 0, 0, 0, 0, 34, 0,215, 0, 0, 0,217, 0, 0, 0, 0, 0, 34, 0,132, 0, 0, 0,
-215, 0, 0, 0, 0, 0, 34, 0,133, 0, 0, 0,216, 0, 0, 0, 0, 0, 34, 0,216, 0, 0, 0,218, 0, 0, 0, 0, 0, 34, 0,
-214, 0, 0, 0,215, 0, 0, 0, 0, 0, 34, 0,134, 0, 0, 0,214, 0, 0, 0, 0, 0, 34, 0,214, 0, 0, 0,216, 0, 0, 0,
- 0, 0, 34, 0,215, 0, 0, 0,226, 0, 0, 0, 0, 0, 34, 0,226, 0, 0, 0,228, 0, 0, 0, 0, 0, 34, 0,214, 0, 0, 0,
-228, 0, 0, 0, 0, 0, 34, 0,216, 0, 0, 0,227, 0, 0, 0, 0, 0, 34, 0,227, 0, 0, 0,228, 0, 0, 0, 0, 0, 34, 0,
-217, 0, 0, 0,224, 0, 0, 0, 0, 0, 34, 0,224, 0, 0, 0,226, 0, 0, 0, 0, 0, 34, 0,218, 0, 0, 0,225, 0, 0, 0,
- 0, 0, 34, 0,225, 0, 0, 0,227, 0, 0, 0, 0, 0, 34, 0,219, 0, 0, 0,222, 0, 0, 0, 0, 0, 34, 0,222, 0, 0, 0,
-224, 0, 0, 0, 0, 0, 34, 0,220, 0, 0, 0,223, 0, 0, 0, 0, 0, 34, 0,223, 0, 0, 0,225, 0, 0, 0, 0, 0, 34, 0,
- 70, 0, 0, 0,221, 0, 0, 0, 0, 0, 34, 0,221, 0, 0, 0,222, 0, 0, 0, 0, 0, 34, 0,221, 0, 0, 0,223, 0, 0, 0,
- 0, 0, 34, 0,221, 0, 0, 0,228, 0, 0, 0, 0, 0, 34, 0,222, 0, 0, 0,226, 0, 0, 0, 0, 0, 34, 0,223, 0, 0, 0,
-227, 0, 0, 0, 0, 0, 34, 0,178, 0, 0, 0,231, 0, 0, 0, 0, 0, 34, 0,229, 0, 0, 0,231, 0, 0, 0, 0, 0, 34, 0,
-180, 0, 0, 0,229, 0, 0, 0, 0, 0, 34, 0,179, 0, 0, 0,232, 0, 0, 0, 0, 0, 34, 0,181, 0, 0, 0,230, 0, 0, 0,
- 0, 0, 34, 0,230, 0, 0, 0,232, 0, 0, 0, 0, 0, 34, 0,229, 0, 0, 0,251, 0, 0, 0, 0, 0, 34, 0,110, 0, 0, 0,
-251, 0, 0, 0, 0, 0, 34, 0,111, 0, 0, 0,252, 0, 0, 0, 0, 0, 34, 0,230, 0, 0, 0,252, 0, 0, 0, 0, 0, 34, 0,
-251, 0, 0, 0,253, 0, 0, 0, 0, 0, 34, 0,108, 0, 0, 0,253, 0, 0, 0, 0, 0, 34, 0,109, 0, 0, 0,254, 0, 0, 0,
- 0, 0, 34, 0,252, 0, 0, 0,254, 0, 0, 0, 0, 0, 34, 0,231, 0, 0, 0,249, 0, 0, 0, 0, 0, 34, 0,112, 0, 0, 0,
-250, 0, 0, 0, 0, 0, 34, 0,232, 0, 0, 0,250, 0, 0, 0, 0, 0, 34, 0,113, 0, 0, 0,247, 0, 0, 0, 0, 0, 34, 0,
-247, 0, 0, 0,249, 0, 0, 0, 0, 0, 34, 0,114, 0, 0, 0,248, 0, 0, 0, 0, 0, 34, 0,248, 0, 0, 0,250, 0, 0, 0,
- 0, 0, 34, 0,115, 0, 0, 0,245, 0, 0, 0, 0, 0, 34, 0,245, 0, 0, 0,247, 0, 0, 0, 0, 0, 34, 0,116, 0, 0, 0,
-246, 0, 0, 0, 0, 0, 34, 0,246, 0, 0, 0,248, 0, 0, 0, 0, 0, 34, 0,117, 0, 0, 0,243, 0, 0, 0, 0, 0, 34, 0,
-243, 0, 0, 0,245, 0, 0, 0, 0, 0, 34, 0,118, 0, 0, 0,244, 0, 0, 0, 0, 0, 34, 0,244, 0, 0, 0,246, 0, 0, 0,
- 0, 0, 34, 0,119, 0, 0, 0,241, 0, 0, 0, 0, 0, 34, 0,241, 0, 0, 0,243, 0, 0, 0, 0, 0, 34, 0,120, 0, 0, 0,
-242, 0, 0, 0, 0, 0, 34, 0,242, 0, 0, 0,244, 0, 0, 0, 0, 0, 34, 0,121, 0, 0, 0,239, 0, 0, 0, 0, 0, 34, 0,
-239, 0, 0, 0,241, 0, 0, 0, 0, 0, 34, 0,122, 0, 0, 0,240, 0, 0, 0, 0, 0, 34, 0,240, 0, 0, 0,242, 0, 0, 0,
- 0, 0, 34, 0,123, 0, 0, 0,237, 0, 0, 0, 0, 0, 34, 0,237, 0, 0, 0,239, 0, 0, 0, 0, 0, 34, 0,124, 0, 0, 0,
-238, 0, 0, 0, 0, 0, 34, 0,238, 0, 0, 0,240, 0, 0, 0, 0, 0, 34, 0,176, 0, 0, 0,233, 0, 0, 0, 0, 0, 34, 0,
-233, 0, 0, 0,237, 0, 0, 0, 0, 0, 34, 0,177, 0, 0, 0,234, 0, 0, 0, 0, 0, 34, 0,234, 0, 0, 0,238, 0, 0, 0,
- 0, 0, 34, 0,125, 0, 0, 0,235, 0, 0, 0, 0, 0, 34, 0,233, 0, 0, 0,235, 0, 0, 0, 0, 0, 34, 0,126, 0, 0, 0,
-236, 0, 0, 0, 0, 0, 34, 0,234, 0, 0, 0,236, 0, 0, 0, 0, 0, 34, 0,235, 0, 0, 0,253, 0, 0, 0, 0, 0, 34, 0,
-236, 0, 0, 0,254, 0, 0, 0, 0, 0, 34, 0,253, 0, 0, 0,255, 0, 0, 0, 0, 0, 34, 0,255, 0, 0, 0, 17, 1, 0, 0,
- 0, 0, 34, 0,235, 0, 0, 0, 17, 1, 0, 0, 0, 0, 34, 0,254, 0, 0, 0, 0, 1, 0, 0, 0, 0, 34, 0,236, 0, 0, 0,
- 18, 1, 0, 0, 0, 0, 34, 0, 0, 1, 0, 0, 18, 1, 0, 0, 0, 0, 34, 0, 17, 1, 0, 0, 19, 1, 0, 0, 0, 0, 34, 0,
-233, 0, 0, 0, 19, 1, 0, 0, 0, 0, 34, 0,234, 0, 0, 0, 20, 1, 0, 0, 0, 0, 34, 0, 18, 1, 0, 0, 20, 1, 0, 0,
- 0, 0, 34, 0, 15, 1, 0, 0, 19, 1, 0, 0, 0, 0, 34, 0,237, 0, 0, 0, 15, 1, 0, 0, 0, 0, 34, 0,238, 0, 0, 0,
- 16, 1, 0, 0, 0, 0, 34, 0, 16, 1, 0, 0, 20, 1, 0, 0, 0, 0, 34, 0, 13, 1, 0, 0, 15, 1, 0, 0, 0, 0, 34, 0,
-239, 0, 0, 0, 13, 1, 0, 0, 0, 0, 34, 0,240, 0, 0, 0, 14, 1, 0, 0, 0, 0, 34, 0, 14, 1, 0, 0, 16, 1, 0, 0,
- 0, 0, 34, 0, 11, 1, 0, 0, 13, 1, 0, 0, 0, 0, 34, 0,241, 0, 0, 0, 11, 1, 0, 0, 0, 0, 34, 0,242, 0, 0, 0,
- 12, 1, 0, 0, 0, 0, 34, 0, 12, 1, 0, 0, 14, 1, 0, 0, 0, 0, 34, 0, 9, 1, 0, 0, 11, 1, 0, 0, 0, 0, 34, 0,
-243, 0, 0, 0, 9, 1, 0, 0, 0, 0, 34, 0,244, 0, 0, 0, 10, 1, 0, 0, 0, 0, 34, 0, 10, 1, 0, 0, 12, 1, 0, 0,
- 0, 0, 34, 0, 7, 1, 0, 0, 9, 1, 0, 0, 0, 0, 34, 0,245, 0, 0, 0, 7, 1, 0, 0, 0, 0, 34, 0,246, 0, 0, 0,
- 8, 1, 0, 0, 0, 0, 34, 0, 8, 1, 0, 0, 10, 1, 0, 0, 0, 0, 34, 0, 5, 1, 0, 0, 7, 1, 0, 0, 0, 0, 34, 0,
-247, 0, 0, 0, 5, 1, 0, 0, 0, 0, 34, 0,248, 0, 0, 0, 6, 1, 0, 0, 0, 0, 34, 0, 6, 1, 0, 0, 8, 1, 0, 0,
- 0, 0, 34, 0, 3, 1, 0, 0, 5, 1, 0, 0, 0, 0, 34, 0,249, 0, 0, 0, 3, 1, 0, 0, 0, 0, 34, 0,250, 0, 0, 0,
- 4, 1, 0, 0, 0, 0, 34, 0, 4, 1, 0, 0, 6, 1, 0, 0, 0, 0, 34, 0, 3, 1, 0, 0, 21, 1, 0, 0, 0, 0, 34, 0,
-231, 0, 0, 0, 21, 1, 0, 0, 0, 0, 34, 0,232, 0, 0, 0, 22, 1, 0, 0, 0, 0, 34, 0, 4, 1, 0, 0, 22, 1, 0, 0,
- 0, 0, 34, 0,251, 0, 0, 0, 1, 1, 0, 0, 0, 0, 34, 0,255, 0, 0, 0, 1, 1, 0, 0, 0, 0, 34, 0,252, 0, 0, 0,
- 2, 1, 0, 0, 0, 0, 34, 0, 0, 1, 0, 0, 2, 1, 0, 0, 0, 0, 34, 0,229, 0, 0, 0, 23, 1, 0, 0, 0, 0, 34, 0,
- 1, 1, 0, 0, 23, 1, 0, 0, 0, 0, 34, 0,230, 0, 0, 0, 24, 1, 0, 0, 0, 0, 34, 0, 2, 1, 0, 0, 24, 1, 0, 0,
- 0, 0, 34, 0, 21, 1, 0, 0, 23, 1, 0, 0, 0, 0, 34, 0, 22, 1, 0, 0, 24, 1, 0, 0, 0, 0, 34, 0,106, 0, 0, 0,
- 25, 1, 0, 0, 0, 0, 34, 0, 71, 0, 0, 0, 25, 1, 0, 0, 0, 0, 38, 0, 65, 0, 0, 0, 71, 0, 0, 0, 0, 0, 34, 0,
-107, 0, 0, 0, 26, 1, 0, 0, 0, 0, 34, 0, 71, 0, 0, 0, 26, 1, 0, 0, 0, 0, 38, 0,104, 0, 0, 0, 27, 1, 0, 0,
- 0, 0, 34, 0, 25, 1, 0, 0, 27, 1, 0, 0, 0, 0, 34, 0,105, 0, 0, 0, 28, 1, 0, 0, 0, 0, 34, 0, 26, 1, 0, 0,
- 28, 1, 0, 0, 0, 0, 34, 0,102, 0, 0, 0, 29, 1, 0, 0, 0, 0, 34, 0, 27, 1, 0, 0, 29, 1, 0, 0, 0, 0, 34, 0,
-103, 0, 0, 0, 30, 1, 0, 0, 0, 0, 34, 0, 28, 1, 0, 0, 30, 1, 0, 0, 0, 0, 34, 0,100, 0, 0, 0, 31, 1, 0, 0,
- 0, 0, 34, 0, 29, 1, 0, 0, 31, 1, 0, 0, 0, 0, 34, 0,101, 0, 0, 0, 32, 1, 0, 0, 0, 0, 34, 0, 30, 1, 0, 0,
- 32, 1, 0, 0, 0, 0, 34, 0, 98, 0, 0, 0, 33, 1, 0, 0, 0, 0, 34, 0, 31, 1, 0, 0, 33, 1, 0, 0, 0, 0, 38, 0,
- 99, 0, 0, 0, 34, 1, 0, 0, 0, 0, 34, 0, 32, 1, 0, 0, 34, 1, 0, 0, 0, 0, 38, 0, 96, 0, 0, 0, 35, 1, 0, 0,
- 0, 0, 34, 0, 33, 1, 0, 0, 35, 1, 0, 0, 0, 0, 34, 0, 97, 0, 0, 0, 36, 1, 0, 0, 0, 0, 34, 0, 34, 1, 0, 0,
- 36, 1, 0, 0, 0, 0, 34, 0, 94, 0, 0, 0, 37, 1, 0, 0, 0, 0, 34, 0, 35, 1, 0, 0, 37, 1, 0, 0, 0, 0, 34, 0,
- 95, 0, 0, 0, 38, 1, 0, 0, 0, 0, 34, 0, 36, 1, 0, 0, 38, 1, 0, 0, 0, 0, 34, 0, 92, 0, 0, 0, 39, 1, 0, 0,
- 0, 0, 34, 0, 37, 1, 0, 0, 39, 1, 0, 0, 0, 0, 34, 0, 93, 0, 0, 0, 40, 1, 0, 0, 0, 0, 34, 0, 38, 1, 0, 0,
- 40, 1, 0, 0, 0, 0, 34, 0, 90, 0, 0, 0, 41, 1, 0, 0, 0, 0, 34, 0, 39, 1, 0, 0, 41, 1, 0, 0, 0, 0, 34, 0,
- 91, 0, 0, 0, 42, 1, 0, 0, 0, 0, 34, 0, 40, 1, 0, 0, 42, 1, 0, 0, 0, 0, 34, 0, 49, 1, 0, 0, 50, 1, 0, 0,
- 0, 0, 38, 0, 50, 1, 0, 0, 69, 1, 0, 0, 0, 0, 34, 0, 69, 1, 0, 0, 79, 1, 0, 0, 0, 0, 34, 0, 49, 1, 0, 0,
- 79, 1, 0, 0, 0, 0, 34, 0, 50, 1, 0, 0, 70, 1, 0, 0, 0, 0, 34, 0, 49, 1, 0, 0, 80, 1, 0, 0, 0, 0, 34, 0,
- 70, 1, 0, 0, 80, 1, 0, 0, 0, 0, 34, 0, 48, 1, 0, 0, 49, 1, 0, 0, 0, 0, 38, 0, 77, 1, 0, 0, 79, 1, 0, 0,
- 0, 0, 34, 0, 48, 1, 0, 0, 77, 1, 0, 0, 0, 0, 34, 0, 48, 1, 0, 0, 78, 1, 0, 0, 0, 0, 34, 0, 78, 1, 0, 0,
- 80, 1, 0, 0, 0, 0, 34, 0, 47, 1, 0, 0, 48, 1, 0, 0, 0, 0, 38, 0, 77, 1, 0, 0, 81, 1, 0, 0, 0, 0, 34, 0,
- 47, 1, 0, 0, 81, 1, 0, 0, 0, 0, 34, 0, 47, 1, 0, 0, 82, 1, 0, 0, 0, 0, 34, 0, 78, 1, 0, 0, 82, 1, 0, 0,
- 0, 0, 34, 0, 89, 0, 0, 0, 47, 1, 0, 0, 0, 0, 38, 0, 87, 0, 0, 0, 81, 1, 0, 0, 0, 0, 34, 0, 88, 0, 0, 0,
- 82, 1, 0, 0, 0, 0, 34, 0, 75, 1, 0, 0, 81, 1, 0, 0, 0, 0, 34, 0, 85, 0, 0, 0, 75, 1, 0, 0, 0, 0, 34, 0,
- 86, 0, 0, 0, 76, 1, 0, 0, 0, 0, 34, 0, 76, 1, 0, 0, 82, 1, 0, 0, 0, 0, 34, 0, 71, 1, 0, 0, 75, 1, 0, 0,
- 0, 0, 34, 0, 83, 0, 0, 0, 71, 1, 0, 0, 0, 0, 34, 0, 84, 0, 0, 0, 72, 1, 0, 0, 0, 0, 34, 0, 72, 1, 0, 0,
- 76, 1, 0, 0, 0, 0, 34, 0, 71, 1, 0, 0, 73, 1, 0, 0, 0, 0, 34, 0, 81, 0, 0, 0, 73, 1, 0, 0, 0, 0, 34, 0,
- 82, 0, 0, 0, 74, 1, 0, 0, 0, 0, 34, 0, 72, 1, 0, 0, 74, 1, 0, 0, 0, 0, 34, 0, 71, 1, 0, 0, 77, 1, 0, 0,
- 0, 0, 34, 0, 73, 1, 0, 0, 79, 1, 0, 0, 0, 0, 34, 0, 72, 1, 0, 0, 78, 1, 0, 0, 0, 0, 34, 0, 74, 1, 0, 0,
- 80, 1, 0, 0, 0, 0, 34, 0, 67, 1, 0, 0, 73, 1, 0, 0, 0, 0, 34, 0, 67, 1, 0, 0, 69, 1, 0, 0, 0, 0, 34, 0,
- 68, 1, 0, 0, 74, 1, 0, 0, 0, 0, 34, 0, 68, 1, 0, 0, 70, 1, 0, 0, 0, 0, 34, 0, 79, 0, 0, 0, 67, 1, 0, 0,
- 0, 0, 34, 0, 80, 0, 0, 0, 68, 1, 0, 0, 0, 0, 34, 0,206, 0, 0, 0, 83, 1, 0, 0, 0, 0, 34, 0, 83, 1, 0, 0,
- 85, 1, 0, 0, 0, 0, 34, 0,212, 0, 0, 0, 85, 1, 0, 0, 0, 0, 34, 0, 84, 1, 0, 0, 86, 1, 0, 0, 0, 0, 34, 0,
-207, 0, 0, 0, 84, 1, 0, 0, 0, 0, 34, 0,213, 0, 0, 0, 86, 1, 0, 0, 0, 0, 34, 0, 67, 1, 0, 0, 83, 1, 0, 0,
- 0, 0, 34, 0, 68, 1, 0, 0, 84, 1, 0, 0, 0, 0, 34, 0, 85, 1, 0, 0, 87, 1, 0, 0, 0, 0, 34, 0, 77, 0, 0, 0,
- 87, 1, 0, 0, 0, 0, 34, 0, 78, 0, 0, 0, 88, 1, 0, 0, 0, 0, 34, 0, 86, 1, 0, 0, 88, 1, 0, 0, 0, 0, 34, 0,
- 41, 1, 0, 0, 87, 1, 0, 0, 0, 0, 34, 0, 42, 1, 0, 0, 88, 1, 0, 0, 0, 0, 34, 0, 75, 0, 0, 0, 65, 1, 0, 0,
- 0, 0, 34, 0, 65, 1, 0, 0, 93, 1, 0, 0, 0, 0, 34, 0, 45, 1, 0, 0, 93, 1, 0, 0, 0, 0, 39, 0, 75, 0, 0, 0,
- 45, 1, 0, 0, 0, 0, 38, 0, 66, 1, 0, 0, 94, 1, 0, 0, 0, 0, 34, 0, 75, 0, 0, 0, 66, 1, 0, 0, 0, 0, 34, 0,
- 45, 1, 0, 0, 94, 1, 0, 0, 0, 0, 39, 0, 91, 1, 0, 0, 93, 1, 0, 0, 0, 0, 34, 0, 76, 0, 0, 0, 91, 1, 0, 0,
- 0, 0, 34, 0, 76, 0, 0, 0, 45, 1, 0, 0, 0, 0, 38, 0, 92, 1, 0, 0, 94, 1, 0, 0, 0, 0, 34, 0, 76, 0, 0, 0,
- 92, 1, 0, 0, 0, 0, 34, 0, 89, 1, 0, 0, 91, 1, 0, 0, 0, 0, 34, 0, 46, 1, 0, 0, 89, 1, 0, 0, 0, 0, 34, 0,
- 76, 0, 0, 0, 46, 1, 0, 0, 0, 0, 38, 0, 90, 1, 0, 0, 92, 1, 0, 0, 0, 0, 34, 0, 46, 1, 0, 0, 90, 1, 0, 0,
- 0, 0, 34, 0, 69, 1, 0, 0, 89, 1, 0, 0, 0, 0, 34, 0, 46, 1, 0, 0, 50, 1, 0, 0, 0, 0, 38, 0, 70, 1, 0, 0,
- 90, 1, 0, 0, 0, 0, 34, 0, 83, 1, 0, 0, 89, 1, 0, 0, 0, 0, 34, 0, 84, 1, 0, 0, 90, 1, 0, 0, 0, 0, 34, 0,
- 39, 1, 0, 0, 59, 1, 0, 0, 0, 0, 34, 0, 51, 1, 0, 0, 59, 1, 0, 0, 0, 0, 34, 0, 37, 1, 0, 0, 51, 1, 0, 0,
- 0, 0, 34, 0, 40, 1, 0, 0, 60, 1, 0, 0, 0, 0, 34, 0, 38, 1, 0, 0, 52, 1, 0, 0, 0, 0, 34, 0, 52, 1, 0, 0,
- 60, 1, 0, 0, 0, 0, 34, 0, 74, 0, 0, 0, 57, 1, 0, 0, 0, 0, 39, 0, 57, 1, 0, 0, 65, 1, 0, 0, 0, 0, 34, 0,
- 74, 0, 0, 0, 75, 0, 0, 0, 0, 0, 38, 0, 58, 1, 0, 0, 66, 1, 0, 0, 0, 0, 34, 0, 74, 0, 0, 0, 58, 1, 0, 0,
- 0, 0, 39, 0, 43, 1, 0, 0, 99, 1, 0, 0, 0, 0, 34, 0, 97, 1, 0, 0, 99, 1, 0, 0, 0, 0, 34, 0, 44, 1, 0, 0,
- 97, 1, 0, 0, 0, 0, 34, 0, 43, 1, 0, 0, 44, 1, 0, 0, 0, 0, 38, 0, 98, 1, 0, 0,100, 1, 0, 0, 0, 0, 34, 0,
- 43, 1, 0, 0,100, 1, 0, 0, 0, 0, 34, 0, 44, 1, 0, 0, 98, 1, 0, 0, 0, 0, 34, 0, 95, 1, 0, 0, 97, 1, 0, 0,
- 0, 0, 34, 0, 73, 0, 0, 0, 95, 1, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 44, 1, 0, 0, 0, 0, 38, 0, 96, 1, 0, 0,
- 98, 1, 0, 0, 0, 0, 34, 0, 73, 0, 0, 0, 96, 1, 0, 0, 0, 0, 34, 0, 57, 1, 0, 0, 95, 1, 0, 0, 0, 0, 34, 0,
- 73, 0, 0, 0, 74, 0, 0, 0, 0, 0, 38, 0, 58, 1, 0, 0, 96, 1, 0, 0, 0, 0, 34, 0, 35, 1, 0, 0,103, 1, 0, 0,
- 0, 0, 34, 0,103, 1, 0, 0,105, 1, 0, 0, 0, 0, 34, 0, 33, 1, 0, 0,105, 1, 0, 0, 0, 0, 34, 0, 36, 1, 0, 0,
-104, 1, 0, 0, 0, 0, 34, 0, 34, 1, 0, 0,106, 1, 0, 0, 0, 0, 34, 0,104, 1, 0, 0,106, 1, 0, 0, 0, 0, 34, 0,
-103, 1, 0, 0,109, 1, 0, 0, 0, 0, 34, 0,107, 1, 0, 0,109, 1, 0, 0, 0, 0, 34, 0,105, 1, 0, 0,107, 1, 0, 0,
- 0, 0, 34, 0,104, 1, 0, 0,110, 1, 0, 0, 0, 0, 34, 0,106, 1, 0, 0,108, 1, 0, 0, 0, 0, 34, 0,108, 1, 0, 0,
-110, 1, 0, 0, 0, 0, 34, 0,109, 1, 0, 0,111, 1, 0, 0, 0, 0, 34, 0,111, 1, 0, 0,113, 1, 0, 0, 0, 0, 34, 0,
-107, 1, 0, 0,113, 1, 0, 0, 0, 0, 34, 0,110, 1, 0, 0,112, 1, 0, 0, 0, 0, 34, 0,108, 1, 0, 0,114, 1, 0, 0,
- 0, 0, 34, 0,112, 1, 0, 0,114, 1, 0, 0, 0, 0, 34, 0,111, 1, 0, 0,117, 1, 0, 0, 0, 0, 34, 0,115, 1, 0, 0,
-117, 1, 0, 0, 0, 0, 34, 0,113, 1, 0, 0,115, 1, 0, 0, 0, 0, 34, 0,112, 1, 0, 0,118, 1, 0, 0, 0, 0, 34, 0,
-114, 1, 0, 0,116, 1, 0, 0, 0, 0, 34, 0,116, 1, 0, 0,118, 1, 0, 0, 0, 0, 34, 0, 55, 1, 0, 0,119, 1, 0, 0,
- 0, 0, 39, 0,115, 1, 0, 0,119, 1, 0, 0, 0, 0, 34, 0, 55, 1, 0, 0,117, 1, 0, 0, 0, 0, 34, 0,116, 1, 0, 0,
-120, 1, 0, 0, 0, 0, 34, 0, 56, 1, 0, 0,120, 1, 0, 0, 0, 0, 39, 0, 56, 1, 0, 0,118, 1, 0, 0, 0, 0, 34, 0,
- 95, 1, 0, 0,115, 1, 0, 0, 0, 0, 34, 0, 57, 1, 0, 0,119, 1, 0, 0, 0, 0, 39, 0, 96, 1, 0, 0,116, 1, 0, 0,
- 0, 0, 34, 0, 58, 1, 0, 0,120, 1, 0, 0, 0, 0, 39, 0, 97, 1, 0, 0,113, 1, 0, 0, 0, 0, 34, 0, 98, 1, 0, 0,
-114, 1, 0, 0, 0, 0, 34, 0, 99, 1, 0, 0,107, 1, 0, 0, 0, 0, 34, 0,100, 1, 0, 0,108, 1, 0, 0, 0, 0, 34, 0,
- 99, 1, 0, 0,101, 1, 0, 0, 0, 0, 34, 0,101, 1, 0, 0,105, 1, 0, 0, 0, 0, 34, 0,102, 1, 0, 0,106, 1, 0, 0,
- 0, 0, 34, 0,100, 1, 0, 0,102, 1, 0, 0, 0, 0, 34, 0, 31, 1, 0, 0,101, 1, 0, 0, 0, 0, 34, 0, 32, 1, 0, 0,
-102, 1, 0, 0, 0, 0, 34, 0, 72, 0, 0, 0,101, 1, 0, 0, 0, 0, 34, 0, 72, 0, 0, 0, 43, 1, 0, 0, 0, 0, 38, 0,
- 72, 0, 0, 0,102, 1, 0, 0, 0, 0, 34, 0, 25, 1, 0, 0, 31, 1, 0, 0, 0, 0, 38, 0, 26, 1, 0, 0, 32, 1, 0, 0,
- 0, 0, 38, 0, 72, 0, 0, 0, 25, 1, 0, 0, 0, 0, 34, 0, 72, 0, 0, 0, 26, 1, 0, 0, 0, 0, 34, 0, 71, 0, 0, 0,
- 72, 0, 0, 0, 0, 0, 38, 0, 51, 1, 0, 0,103, 1, 0, 0, 0, 0, 34, 0, 52, 1, 0, 0,104, 1, 0, 0, 0, 0, 34, 0,
- 51, 1, 0, 0, 53, 1, 0, 0, 0, 0, 34, 0, 53, 1, 0, 0,109, 1, 0, 0, 0, 0, 34, 0, 54, 1, 0, 0,110, 1, 0, 0,
- 0, 0, 34, 0, 52, 1, 0, 0, 54, 1, 0, 0, 0, 0, 34, 0, 53, 1, 0, 0,123, 1, 0, 0, 0, 0, 34, 0,111, 1, 0, 0,
-123, 1, 0, 0, 0, 0, 34, 0,112, 1, 0, 0,124, 1, 0, 0, 0, 0, 34, 0, 54, 1, 0, 0,124, 1, 0, 0, 0, 0, 34, 0,
- 55, 1, 0, 0,123, 1, 0, 0, 0, 0, 34, 0, 56, 1, 0, 0,124, 1, 0, 0, 0, 0, 34, 0, 91, 1, 0, 0,127, 1, 0, 0,
- 0, 0, 34, 0,125, 1, 0, 0,127, 1, 0, 0, 0, 0, 34, 0, 89, 1, 0, 0,125, 1, 0, 0, 0, 0, 34, 0, 92, 1, 0, 0,
-128, 1, 0, 0, 0, 0, 34, 0, 90, 1, 0, 0,126, 1, 0, 0, 0, 0, 34, 0,126, 1, 0, 0,128, 1, 0, 0, 0, 0, 34, 0,
- 59, 1, 0, 0,125, 1, 0, 0, 0, 0, 34, 0, 61, 1, 0, 0,127, 1, 0, 0, 0, 0, 34, 0, 59, 1, 0, 0, 61, 1, 0, 0,
- 0, 0, 34, 0, 60, 1, 0, 0,126, 1, 0, 0, 0, 0, 34, 0, 60, 1, 0, 0, 62, 1, 0, 0, 0, 0, 34, 0, 62, 1, 0, 0,
-128, 1, 0, 0, 0, 0, 34, 0, 41, 1, 0, 0,125, 1, 0, 0, 0, 0, 34, 0, 42, 1, 0, 0,126, 1, 0, 0, 0, 0, 34, 0,
- 41, 1, 0, 0, 85, 1, 0, 0, 0, 0, 34, 0, 83, 1, 0, 0,125, 1, 0, 0, 0, 0, 34, 0, 42, 1, 0, 0, 86, 1, 0, 0,
- 0, 0, 34, 0, 84, 1, 0, 0,126, 1, 0, 0, 0, 0, 34, 0, 55, 1, 0, 0, 63, 1, 0, 0, 0, 0, 34, 0, 63, 1, 0, 0,
-121, 1, 0, 0, 0, 0, 39, 0,119, 1, 0, 0,121, 1, 0, 0, 0, 0, 34, 0, 64, 1, 0, 0,122, 1, 0, 0, 0, 0, 39, 0,
- 56, 1, 0, 0, 64, 1, 0, 0, 0, 0, 34, 0,120, 1, 0, 0,122, 1, 0, 0, 0, 0, 34, 0, 65, 1, 0, 0,121, 1, 0, 0,
- 0, 0, 34, 0, 66, 1, 0, 0,122, 1, 0, 0, 0, 0, 34, 0,121, 1, 0, 0,127, 1, 0, 0, 0, 0, 34, 0, 61, 1, 0, 0,
- 63, 1, 0, 0, 0, 0, 34, 0,122, 1, 0, 0,128, 1, 0, 0, 0, 0, 34, 0, 62, 1, 0, 0, 64, 1, 0, 0, 0, 0, 34, 0,
- 93, 1, 0, 0,121, 1, 0, 0, 0, 0, 39, 0, 94, 1, 0, 0,122, 1, 0, 0, 0, 0, 39, 0,129, 1, 0, 0,141, 1, 0, 0,
- 0, 0, 34, 0,129, 1, 0, 0,155, 1, 0, 0, 0, 0, 34, 0,143, 1, 0, 0,155, 1, 0, 0, 0, 0, 34, 0,141, 1, 0, 0,
-143, 1, 0, 0, 0, 0, 34, 0,130, 1, 0, 0,156, 1, 0, 0, 0, 0, 34, 0,130, 1, 0, 0,142, 1, 0, 0, 0, 0, 34, 0,
-142, 1, 0, 0,144, 1, 0, 0, 0, 0, 34, 0,144, 1, 0, 0,156, 1, 0, 0, 0, 0, 34, 0,143, 1, 0, 0,145, 1, 0, 0,
- 0, 0, 34, 0,139, 1, 0, 0,145, 1, 0, 0, 0, 0, 34, 0,139, 1, 0, 0,141, 1, 0, 0, 0, 0, 34, 0,144, 1, 0, 0,
-146, 1, 0, 0, 0, 0, 34, 0,140, 1, 0, 0,142, 1, 0, 0, 0, 0, 34, 0,140, 1, 0, 0,146, 1, 0, 0, 0, 0, 34, 0,
-145, 1, 0, 0,147, 1, 0, 0, 0, 0, 34, 0,137, 1, 0, 0,147, 1, 0, 0, 0, 0, 34, 0,137, 1, 0, 0,139, 1, 0, 0,
- 0, 0, 34, 0,146, 1, 0, 0,148, 1, 0, 0, 0, 0, 34, 0,138, 1, 0, 0,140, 1, 0, 0, 0, 0, 34, 0,138, 1, 0, 0,
-148, 1, 0, 0, 0, 0, 34, 0,147, 1, 0, 0,149, 1, 0, 0, 0, 0, 34, 0,135, 1, 0, 0,149, 1, 0, 0, 0, 0, 34, 0,
-135, 1, 0, 0,137, 1, 0, 0, 0, 0, 34, 0,148, 1, 0, 0,150, 1, 0, 0, 0, 0, 34, 0,136, 1, 0, 0,138, 1, 0, 0,
- 0, 0, 34, 0,136, 1, 0, 0,150, 1, 0, 0, 0, 0, 34, 0,149, 1, 0, 0,151, 1, 0, 0, 0, 0, 34, 0,133, 1, 0, 0,
-151, 1, 0, 0, 0, 0, 34, 0,133, 1, 0, 0,135, 1, 0, 0, 0, 0, 34, 0,150, 1, 0, 0,152, 1, 0, 0, 0, 0, 34, 0,
-134, 1, 0, 0,136, 1, 0, 0, 0, 0, 34, 0,134, 1, 0, 0,152, 1, 0, 0, 0, 0, 34, 0,151, 1, 0, 0,153, 1, 0, 0,
- 0, 0, 34, 0,131, 1, 0, 0,153, 1, 0, 0, 0, 0, 34, 0,131, 1, 0, 0,133, 1, 0, 0, 0, 0, 34, 0,152, 1, 0, 0,
-154, 1, 0, 0, 0, 0, 34, 0,132, 1, 0, 0,134, 1, 0, 0, 0, 0, 34, 0,132, 1, 0, 0,154, 1, 0, 0, 0, 0, 34, 0,
-151, 1, 0, 0,161, 1, 0, 0, 0, 0, 34, 0,159, 1, 0, 0,161, 1, 0, 0, 0, 0, 34, 0,153, 1, 0, 0,159, 1, 0, 0,
- 0, 0, 34, 0,160, 1, 0, 0,162, 1, 0, 0, 0, 0, 34, 0,152, 1, 0, 0,162, 1, 0, 0, 0, 0, 34, 0,154, 1, 0, 0,
-160, 1, 0, 0, 0, 0, 34, 0,149, 1, 0, 0,163, 1, 0, 0, 0, 0, 34, 0,161, 1, 0, 0,163, 1, 0, 0, 0, 0, 34, 0,
-162, 1, 0, 0,164, 1, 0, 0, 0, 0, 34, 0,150, 1, 0, 0,164, 1, 0, 0, 0, 0, 34, 0,147, 1, 0, 0,165, 1, 0, 0,
- 0, 0, 34, 0,163, 1, 0, 0,165, 1, 0, 0, 0, 0, 34, 0,164, 1, 0, 0,166, 1, 0, 0, 0, 0, 34, 0,148, 1, 0, 0,
-166, 1, 0, 0, 0, 0, 34, 0,145, 1, 0, 0,167, 1, 0, 0, 0, 0, 34, 0,165, 1, 0, 0,167, 1, 0, 0, 0, 0, 34, 0,
-166, 1, 0, 0,168, 1, 0, 0, 0, 0, 34, 0,146, 1, 0, 0,168, 1, 0, 0, 0, 0, 34, 0,143, 1, 0, 0,169, 1, 0, 0,
- 0, 0, 34, 0,167, 1, 0, 0,169, 1, 0, 0, 0, 0, 34, 0,168, 1, 0, 0,170, 1, 0, 0, 0, 0, 34, 0,144, 1, 0, 0,
-170, 1, 0, 0, 0, 0, 34, 0,155, 1, 0, 0,157, 1, 0, 0, 0, 0, 34, 0,157, 1, 0, 0,169, 1, 0, 0, 0, 0, 34, 0,
-156, 1, 0, 0,158, 1, 0, 0, 0, 0, 34, 0,158, 1, 0, 0,170, 1, 0, 0, 0, 0, 34, 0, 61, 1, 0, 0,185, 1, 0, 0,
- 0, 0, 34, 0,183, 1, 0, 0,185, 1, 0, 0, 0, 0, 34, 0, 59, 1, 0, 0,183, 1, 0, 0, 0, 0, 34, 0, 62, 1, 0, 0,
-186, 1, 0, 0, 0, 0, 34, 0, 60, 1, 0, 0,184, 1, 0, 0, 0, 0, 34, 0,184, 1, 0, 0,186, 1, 0, 0, 0, 0, 34, 0,
- 61, 1, 0, 0,131, 1, 0, 0, 0, 0, 34, 0,153, 1, 0, 0,185, 1, 0, 0, 0, 0, 34, 0, 62, 1, 0, 0,132, 1, 0, 0,
- 0, 0, 34, 0,154, 1, 0, 0,186, 1, 0, 0, 0, 0, 34, 0, 53, 1, 0, 0,183, 1, 0, 0, 0, 0, 34, 0, 54, 1, 0, 0,
-184, 1, 0, 0, 0, 0, 34, 0,123, 1, 0, 0,171, 1, 0, 0, 0, 0, 34, 0,155, 1, 0, 0,171, 1, 0, 0, 0, 0, 34, 0,
-123, 1, 0, 0,129, 1, 0, 0, 0, 0, 34, 0,156, 1, 0, 0,172, 1, 0, 0, 0, 0, 34, 0,124, 1, 0, 0,172, 1, 0, 0,
- 0, 0, 34, 0,124, 1, 0, 0,130, 1, 0, 0, 0, 0, 34, 0,159, 1, 0, 0,181, 1, 0, 0, 0, 0, 34, 0,181, 1, 0, 0,
-185, 1, 0, 0, 0, 0, 34, 0,160, 1, 0, 0,182, 1, 0, 0, 0, 0, 34, 0,182, 1, 0, 0,186, 1, 0, 0, 0, 0, 34, 0,
-179, 1, 0, 0,187, 1, 0, 0, 0, 0, 34, 0,185, 1, 0, 0,187, 1, 0, 0, 0, 0, 34, 0,179, 1, 0, 0,181, 1, 0, 0,
- 0, 0, 34, 0,186, 1, 0, 0,188, 1, 0, 0, 0, 0, 34, 0,180, 1, 0, 0,188, 1, 0, 0, 0, 0, 34, 0,180, 1, 0, 0,
-182, 1, 0, 0, 0, 0, 34, 0,175, 1, 0, 0,187, 1, 0, 0, 0, 0, 34, 0,177, 1, 0, 0,179, 1, 0, 0, 0, 0, 34, 0,
-175, 1, 0, 0,177, 1, 0, 0, 0, 0, 34, 0,176, 1, 0, 0,188, 1, 0, 0, 0, 0, 34, 0,176, 1, 0, 0,178, 1, 0, 0,
- 0, 0, 34, 0,178, 1, 0, 0,180, 1, 0, 0, 0, 0, 34, 0,173, 1, 0, 0,189, 1, 0, 0, 0, 0, 34, 0,187, 1, 0, 0,
-189, 1, 0, 0, 0, 0, 34, 0,173, 1, 0, 0,175, 1, 0, 0, 0, 0, 34, 0,188, 1, 0, 0,190, 1, 0, 0, 0, 0, 34, 0,
-174, 1, 0, 0,190, 1, 0, 0, 0, 0, 34, 0,174, 1, 0, 0,176, 1, 0, 0, 0, 0, 34, 0,171, 1, 0, 0,189, 1, 0, 0,
- 0, 0, 34, 0,173, 1, 0, 0,191, 1, 0, 0, 0, 0, 34, 0,171, 1, 0, 0,191, 1, 0, 0, 0, 0, 32, 0,172, 1, 0, 0,
-190, 1, 0, 0, 0, 0, 34, 0,172, 1, 0, 0,192, 1, 0, 0, 0, 0, 32, 0,174, 1, 0, 0,192, 1, 0, 0, 0, 0, 34, 0,
-157, 1, 0, 0,191, 1, 0, 0, 0, 0, 34, 0,158, 1, 0, 0,192, 1, 0, 0, 0, 0, 34, 0, 53, 1, 0, 0,189, 1, 0, 0,
- 0, 0, 34, 0, 54, 1, 0, 0,190, 1, 0, 0, 0, 0, 34, 0,183, 1, 0, 0,187, 1, 0, 0, 0, 0, 34, 0,184, 1, 0, 0,
-188, 1, 0, 0, 0, 0, 34, 0,191, 1, 0, 0,193, 1, 0, 0, 0, 0, 34, 0,193, 1, 0, 0,217, 1, 0, 0, 0, 0, 34, 0,
-157, 1, 0, 0,217, 1, 0, 0, 0, 0, 34, 0,192, 1, 0, 0,194, 1, 0, 0, 0, 0, 34, 0,158, 1, 0, 0,218, 1, 0, 0,
- 0, 0, 34, 0,194, 1, 0, 0,218, 1, 0, 0, 0, 0, 34, 0,173, 1, 0, 0,203, 1, 0, 0, 0, 0, 34, 0,193, 1, 0, 0,
-203, 1, 0, 0, 0, 0, 34, 0,174, 1, 0, 0,204, 1, 0, 0, 0, 0, 34, 0,194, 1, 0, 0,204, 1, 0, 0, 0, 0, 34, 0,
-175, 1, 0, 0,201, 1, 0, 0, 0, 0, 34, 0,201, 1, 0, 0,203, 1, 0, 0, 0, 0, 34, 0,176, 1, 0, 0,202, 1, 0, 0,
- 0, 0, 34, 0,202, 1, 0, 0,204, 1, 0, 0, 0, 0, 34, 0,177, 1, 0, 0,199, 1, 0, 0, 0, 0, 34, 0,199, 1, 0, 0,
-201, 1, 0, 0, 0, 0, 34, 0,178, 1, 0, 0,200, 1, 0, 0, 0, 0, 34, 0,200, 1, 0, 0,202, 1, 0, 0, 0, 0, 34, 0,
-179, 1, 0, 0,197, 1, 0, 0, 0, 0, 34, 0,197, 1, 0, 0,199, 1, 0, 0, 0, 0, 34, 0,180, 1, 0, 0,198, 1, 0, 0,
- 0, 0, 34, 0,198, 1, 0, 0,200, 1, 0, 0, 0, 0, 34, 0,181, 1, 0, 0,195, 1, 0, 0, 0, 0, 34, 0,195, 1, 0, 0,
-197, 1, 0, 0, 0, 0, 34, 0,182, 1, 0, 0,196, 1, 0, 0, 0, 0, 34, 0,196, 1, 0, 0,198, 1, 0, 0, 0, 0, 34, 0,
-159, 1, 0, 0,215, 1, 0, 0, 0, 0, 34, 0,195, 1, 0, 0,215, 1, 0, 0, 0, 0, 34, 0,160, 1, 0, 0,216, 1, 0, 0,
- 0, 0, 34, 0,196, 1, 0, 0,216, 1, 0, 0, 0, 0, 34, 0,205, 1, 0, 0,217, 1, 0, 0, 0, 0, 34, 0,169, 1, 0, 0,
-205, 1, 0, 0, 0, 0, 34, 0,170, 1, 0, 0,206, 1, 0, 0, 0, 0, 34, 0,206, 1, 0, 0,218, 1, 0, 0, 0, 0, 34, 0,
-205, 1, 0, 0,207, 1, 0, 0, 0, 0, 34, 0,167, 1, 0, 0,207, 1, 0, 0, 0, 0, 34, 0,168, 1, 0, 0,208, 1, 0, 0,
- 0, 0, 34, 0,206, 1, 0, 0,208, 1, 0, 0, 0, 0, 34, 0,207, 1, 0, 0,209, 1, 0, 0, 0, 0, 34, 0,165, 1, 0, 0,
-209, 1, 0, 0, 0, 0, 34, 0,166, 1, 0, 0,210, 1, 0, 0, 0, 0, 34, 0,208, 1, 0, 0,210, 1, 0, 0, 0, 0, 34, 0,
-209, 1, 0, 0,211, 1, 0, 0, 0, 0, 34, 0,163, 1, 0, 0,211, 1, 0, 0, 0, 0, 34, 0,164, 1, 0, 0,212, 1, 0, 0,
- 0, 0, 34, 0,210, 1, 0, 0,212, 1, 0, 0, 0, 0, 34, 0,211, 1, 0, 0,213, 1, 0, 0, 0, 0, 34, 0,161, 1, 0, 0,
-213, 1, 0, 0, 0, 0, 34, 0,162, 1, 0, 0,214, 1, 0, 0, 0, 0, 34, 0,212, 1, 0, 0,214, 1, 0, 0, 0, 0, 34, 0,
-213, 1, 0, 0,215, 1, 0, 0, 0, 0, 34, 0,214, 1, 0, 0,216, 1, 0, 0, 0, 0, 34, 0,197, 1, 0, 0,221, 1, 0, 0,
- 0, 0, 34, 0,219, 1, 0, 0,221, 1, 0, 0, 0, 0, 34, 0,199, 1, 0, 0,219, 1, 0, 0, 0, 0, 34, 0,198, 1, 0, 0,
-222, 1, 0, 0, 0, 0, 34, 0,200, 1, 0, 0,220, 1, 0, 0, 0, 0, 34, 0,220, 1, 0, 0,222, 1, 0, 0, 0, 0, 34, 0,
-221, 1, 0, 0,223, 1, 0, 0, 0, 0, 34, 0,223, 1, 0, 0,225, 1, 0, 0, 0, 0, 32, 0,219, 1, 0, 0,225, 1, 0, 0,
- 0, 0, 34, 0,222, 1, 0, 0,224, 1, 0, 0, 0, 0, 34, 0,220, 1, 0, 0,226, 1, 0, 0, 0, 0, 34, 0,224, 1, 0, 0,
-226, 1, 0, 0, 0, 0, 32, 0,223, 1, 0, 0,229, 1, 0, 0, 0, 0, 34, 0,227, 1, 0, 0,229, 1, 0, 0, 0, 0, 34, 0,
-225, 1, 0, 0,227, 1, 0, 0, 0, 0, 34, 0,224, 1, 0, 0,230, 1, 0, 0, 0, 0, 34, 0,226, 1, 0, 0,228, 1, 0, 0,
- 0, 0, 34, 0,228, 1, 0, 0,230, 1, 0, 0, 0, 0, 34, 0,229, 1, 0, 0,231, 1, 0, 0, 0, 0, 34, 0,231, 1, 0, 0,
-233, 1, 0, 0, 0, 0, 34, 0,227, 1, 0, 0,233, 1, 0, 0, 0, 0, 34, 0,230, 1, 0, 0,232, 1, 0, 0, 0, 0, 34, 0,
-228, 1, 0, 0,234, 1, 0, 0, 0, 0, 34, 0,232, 1, 0, 0,234, 1, 0, 0, 0, 0, 34, 0,217, 1, 0, 0,227, 1, 0, 0,
- 0, 0, 34, 0,205, 1, 0, 0,233, 1, 0, 0, 0, 0, 34, 0,218, 1, 0, 0,228, 1, 0, 0, 0, 0, 34, 0,206, 1, 0, 0,
-234, 1, 0, 0, 0, 0, 34, 0,193, 1, 0, 0,225, 1, 0, 0, 0, 0, 34, 0,194, 1, 0, 0,226, 1, 0, 0, 0, 0, 34, 0,
-203, 1, 0, 0,219, 1, 0, 0, 0, 0, 34, 0,204, 1, 0, 0,220, 1, 0, 0, 0, 0, 34, 0,215, 1, 0, 0,221, 1, 0, 0,
- 0, 0, 34, 0,216, 1, 0, 0,222, 1, 0, 0, 0, 0, 34, 0,213, 1, 0, 0,223, 1, 0, 0, 0, 0, 34, 0,214, 1, 0, 0,
-224, 1, 0, 0, 0, 0, 34, 0,211, 1, 0, 0,229, 1, 0, 0, 0, 0, 34, 0,212, 1, 0, 0,230, 1, 0, 0, 0, 0, 34, 0,
-209, 1, 0, 0,231, 1, 0, 0, 0, 0, 34, 0,210, 1, 0, 0,232, 1, 0, 0, 0, 0, 34, 0,207, 1, 0, 0,233, 1, 0, 0,
- 0, 0, 34, 0,208, 1, 0, 0,234, 1, 0, 0, 0, 0, 34, 0,131, 1, 0, 0,245, 1, 0, 0, 0, 0, 34, 0,243, 1, 0, 0,
-245, 1, 0, 0, 0, 0, 39, 0,133, 1, 0, 0,243, 1, 0, 0, 0, 0, 34, 0,132, 1, 0, 0,246, 1, 0, 0, 0, 0, 34, 0,
-134, 1, 0, 0,244, 1, 0, 0, 0, 0, 34, 0,244, 1, 0, 0,246, 1, 0, 0, 0, 0, 39, 0,241, 1, 0, 0,243, 1, 0, 0,
- 0, 0, 39, 0,135, 1, 0, 0,241, 1, 0, 0, 0, 0, 34, 0,136, 1, 0, 0,242, 1, 0, 0, 0, 0, 34, 0,242, 1, 0, 0,
-244, 1, 0, 0, 0, 0, 39, 0,239, 1, 0, 0,241, 1, 0, 0, 0, 0, 39, 0,137, 1, 0, 0,239, 1, 0, 0, 0, 0, 34, 0,
-138, 1, 0, 0,240, 1, 0, 0, 0, 0, 34, 0,240, 1, 0, 0,242, 1, 0, 0, 0, 0, 39, 0,237, 1, 0, 0,239, 1, 0, 0,
- 0, 0, 39, 0,139, 1, 0, 0,237, 1, 0, 0, 0, 0, 34, 0,140, 1, 0, 0,238, 1, 0, 0, 0, 0, 34, 0,238, 1, 0, 0,
-240, 1, 0, 0, 0, 0, 39, 0,235, 1, 0, 0,237, 1, 0, 0, 0, 0, 39, 0,141, 1, 0, 0,235, 1, 0, 0, 0, 0, 34, 0,
-142, 1, 0, 0,236, 1, 0, 0, 0, 0, 34, 0,236, 1, 0, 0,238, 1, 0, 0, 0, 0, 39, 0,235, 1, 0, 0,247, 1, 0, 0,
- 0, 0, 39, 0,129, 1, 0, 0,247, 1, 0, 0, 0, 0, 34, 0,130, 1, 0, 0,248, 1, 0, 0, 0, 0, 34, 0,236, 1, 0, 0,
-248, 1, 0, 0, 0, 0, 39, 0,235, 1, 0, 0,243, 1, 0, 0, 0, 0, 34, 0,245, 1, 0, 0,247, 1, 0, 0, 0, 0, 34, 0,
-236, 1, 0, 0,244, 1, 0, 0, 0, 0, 34, 0,246, 1, 0, 0,248, 1, 0, 0, 0, 0, 34, 0,237, 1, 0, 0,241, 1, 0, 0,
- 0, 0, 34, 0,238, 1, 0, 0,242, 1, 0, 0, 0, 0, 34, 0, 55, 1, 0, 0,247, 1, 0, 0, 0, 0, 39, 0, 56, 1, 0, 0,
-248, 1, 0, 0, 0, 0, 39, 0, 63, 1, 0, 0,245, 1, 0, 0, 0, 0, 39, 0, 64, 1, 0, 0,246, 1, 0, 0, 0, 0, 39, 0,
- 14, 0, 0, 0,249, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0,178, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0,113, 0, 0, 0,
- 0, 0, 34, 0, 14, 0, 0, 0,161, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0,
-112, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0, 13, 0, 0, 0,112, 0, 0, 0, 0, 0, 34, 0,
- 68, 65, 84, 65, 8, 2, 0, 0,136, 27, 27, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 97, 99,
-101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 70,199, 4, 0, 0, 0, 0,
- 17, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 67,111,108, 0, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 24,163,199, 4, 0, 0, 0, 0, 26, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40,233,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 64, 92, 0, 0,136, 70,199, 4, 0, 0, 0, 0, 61, 0, 0, 0,176, 7, 0, 0, 3,112, 28, 63,185,178,236, 62,
- 0, 0, 0, 0,224,124, 27, 63,235, 65,232, 62, 0, 0, 0, 0,144, 63, 30, 63,233,195,226, 62, 0, 0, 0, 0,118,152, 32, 63,
- 37,167,236, 62, 0, 0, 0, 0, 2,232,209, 62,222, 21,226, 62, 0, 0, 0, 0,102,109,215, 62,222,147,231, 62, 0, 0, 0, 0,
- 28,135,213, 62,172, 4,236, 62, 0, 0, 0, 0, 56, 54,205, 62, 22,249,235, 62, 0, 0, 0, 0,118,152, 32, 63, 37,167,236, 62,
- 0, 0, 0, 0,144, 63, 30, 63,233,195,226, 62, 0, 0, 0, 0,108,235, 33, 63,197,235,220, 62, 0, 0, 0, 0,209,151, 37, 63,
- 89,161,236, 62, 0, 0, 0, 0, 76,144,202, 62,186, 61,220, 62, 0, 0, 0, 0, 2,232,209, 62,222, 21,226, 62, 0, 0, 0, 0,
- 56, 54,205, 62, 22,249,235, 62, 0, 0, 0, 0,128, 55,195, 62, 70,243,235, 62, 0, 0, 0, 0,144, 63, 30, 63,233,195,226, 62,
- 0, 0, 0, 0, 20, 55, 25, 63, 1, 35,223, 62, 0, 0, 0, 0,200,178, 25, 63, 77,233,214, 62, 0, 0, 0, 0,108,235, 33, 63,
-197,235,220, 62, 0, 0, 0, 0,146, 1,219, 62, 66, 59,214, 62, 0, 0, 0, 0,248,248,219, 62,246,116,222, 62, 0, 0, 0, 0,
- 2,232,209, 62,222, 21,226, 62, 0, 0, 0, 0, 76,144,202, 62,186, 61,220, 62, 0, 0, 0, 0,224,124, 27, 63,235, 65,232, 62,
- 0, 0, 0, 0, 87,252, 24, 63, 93,111,230, 62, 0, 0, 0, 0, 20, 55, 25, 63, 1, 35,223, 62, 0, 0, 0, 0,144, 63, 30, 63,
-233,195,226, 62, 0, 0, 0, 0,248,248,219, 62,246,116,222, 62, 0, 0, 0, 0,118,110,220, 62, 78,193,229, 62, 0, 0, 0, 0,
-102,109,215, 62,222,147,231, 62, 0, 0, 0, 0, 2,232,209, 62,222, 21,226, 62, 0, 0, 0, 0, 87,252, 24, 63, 93,111,230, 62,
- 0, 0, 0, 0, 22,195, 22, 63,195, 90,232, 62, 0, 0, 0, 0,191, 91, 20, 63,193, 18,227, 62, 0, 0, 0, 0, 20, 55, 25, 63,
- 1, 35,223, 62, 0, 0, 0, 0,162,175,229, 62,178,100,226, 62, 0, 0, 0, 0,248,224,224, 62,182,172,231, 62, 0, 0, 0, 0,
-118,110,220, 62, 78,193,229, 62, 0, 0, 0, 0,248,248,219, 62,246,116,222, 62, 0, 0, 0, 0, 20, 55, 25, 63, 1, 35,223, 62,
- 0, 0, 0, 0,191, 91, 20, 63,193, 18,227, 62, 0, 0, 0, 0,187,165, 17, 63,225, 6,221, 62, 0, 0, 0, 0,200,178, 25, 63,
- 77,233,214, 62, 0, 0, 0, 0,170, 27,235, 62,214, 88,220, 62, 0, 0, 0, 0,162,175,229, 62,178,100,226, 62, 0, 0, 0, 0,
-248,248,219, 62,246,116,222, 62, 0, 0, 0, 0,146, 1,219, 62, 66, 59,214, 62, 0, 0, 0, 0,191, 91, 20, 63,193, 18,227, 62,
- 0, 0, 0, 0,164, 18, 18, 63,173,201,236, 62, 0, 0, 0, 0,157,231, 13, 63, 89,161,236, 62, 0, 0, 0, 0,187,165, 17, 63,
-225, 6,221, 62, 0, 0, 0, 0,232,151,242, 62, 70,243,235, 62, 0, 0, 0, 0,216, 65,234, 62,158, 27,236, 62, 0, 0, 0, 0,
-162,175,229, 62,178,100,226, 62, 0, 0, 0, 0,170, 27,235, 62,214, 88,220, 62, 0, 0, 0, 0, 22,195, 22, 63,195, 90,232, 62,
- 0, 0, 0, 0, 11,202, 21, 63, 1,189,236, 62, 0, 0, 0, 0,164, 18, 18, 63,173,201,236, 62, 0, 0, 0, 0,191, 91, 20, 63,
-193, 18,227, 62, 0, 0, 0, 0,216, 65,234, 62,158, 27,236, 62, 0, 0, 0, 0, 12,211,226, 62,246, 14,236, 62, 0, 0, 0, 0,
-248,224,224, 62,182,172,231, 62, 0, 0, 0, 0,162,175,229, 62,178,100,226, 62, 0, 0, 0, 0, 11,202, 21, 63, 1,189,236, 62,
- 0, 0, 0, 0,215,202, 22, 63,237,124,241, 62, 0, 0, 0, 0,125,105, 20, 63, 1, 71,246, 62, 0, 0, 0, 0,164, 18, 18, 63,
-173,201,236, 62, 0, 0, 0, 0, 42,148,229, 62,246,152,245, 62, 0, 0, 0, 0,112,209,224, 62,226,206,240, 62, 0, 0, 0, 0,
- 12,211,226, 62,246, 14,236, 62, 0, 0, 0, 0,216, 65,234, 62,158, 27,236, 62, 0, 0, 0, 0,164, 18, 18, 63,173,201,236, 62,
- 0, 0, 0, 0,125,105, 20, 63, 1, 71,246, 62, 0, 0, 0, 0, 44,173, 17, 63,231,149,252, 62, 0, 0, 0, 0,157,231, 13, 63,
- 89,161,236, 62, 0, 0, 0, 0,206, 12,235, 62,218,231,251, 62, 0, 0, 0, 0, 42,148,229, 62,246,152,245, 62, 0, 0, 0, 0,
-216, 65,234, 62,158, 27,236, 62, 0, 0, 0, 0,232,151,242, 62, 70,243,235, 62, 0, 0, 0, 0,125,105, 20, 63, 1, 71,246, 62,
- 0, 0, 0, 0, 37, 59, 25, 63, 49, 73,250, 62, 0, 0, 0, 0,108,178, 25, 63,218,108, 1, 63, 0, 0, 0, 0, 44,173, 17, 63,
-231,149,252, 62, 0, 0, 0, 0, 76, 2,219, 62,213, 21, 1, 63, 0, 0, 0, 0,216,240,219, 62, 38,155,249, 62, 0, 0, 0, 0,
- 42,148,229, 62,246,152,245, 62, 0, 0, 0, 0,206, 12,235, 62,218,231,251, 62, 0, 0, 0, 0,215,202, 22, 63,237,124,241, 62,
- 0, 0, 0, 0,195, 1, 25, 63,169,102,243, 62, 0, 0, 0, 0, 37, 59, 25, 63, 49, 73,250, 62, 0, 0, 0, 0,125,105, 20, 63,
- 1, 71,246, 62, 0, 0, 0, 0,216,240,219, 62, 38,155,249, 62, 0, 0, 0, 0,156, 99,220, 62,154,184,242, 62, 0, 0, 0, 0,
-112,209,224, 62,226,206,240, 62, 0, 0, 0, 0, 42,148,229, 62,246,152,245, 62, 0, 0, 0, 0,195, 1, 25, 63,169,102,243, 62,
- 0, 0, 0, 0,176,125, 27, 63,149,145,241, 62, 0, 0, 0, 0,167, 74, 30, 63, 3,153,246, 62, 0, 0, 0, 0, 37, 59, 25, 63,
- 49, 73,250, 62, 0, 0, 0, 0,212,209,209, 62,246,234,245, 62, 0, 0, 0, 0,192,107,215, 62,138,227,240, 62, 0, 0, 0, 0,
-156, 99,220, 62,154,184,242, 62, 0, 0, 0, 0,216,240,219, 62, 38,155,249, 62, 0, 0, 0, 0, 37, 59, 25, 63, 49, 73,250, 62,
- 0, 0, 0, 0,167, 74, 30, 63, 3,153,246, 62, 0, 0, 0, 0,204,230, 33, 63,107,232,252, 62, 0, 0, 0, 0,108,178, 25, 63,
-218,108, 1, 63, 0, 0, 0, 0,132,153,202, 62, 94, 58,252, 62, 0, 0, 0, 0,212,209,209, 62,246,234,245, 62, 0, 0, 0, 0,
-216,240,219, 62, 38,155,249, 62, 0, 0, 0, 0, 76, 2,219, 62,213, 21, 1, 63, 0, 0, 0, 0,167, 74, 30, 63, 3,153,246, 62,
- 0, 0, 0, 0,118,152, 32, 63, 37,167,236, 62, 0, 0, 0, 0,209,151, 37, 63, 89,161,236, 62, 0, 0, 0, 0,204,230, 33, 63,
-107,232,252, 62, 0, 0, 0, 0,128, 55,195, 62, 70,243,235, 62, 0, 0, 0, 0, 56, 54,205, 62, 22,249,235, 62, 0, 0, 0, 0,
-212,209,209, 62,246,234,245, 62, 0, 0, 0, 0,132,153,202, 62, 94, 58,252, 62, 0, 0, 0, 0,176,125, 27, 63,149,145,241, 62,
- 0, 0, 0, 0, 3,112, 28, 63,185,178,236, 62, 0, 0, 0, 0,118,152, 32, 63, 37,167,236, 62, 0, 0, 0, 0,167, 74, 30, 63,
- 3,153,246, 62, 0, 0, 0, 0, 56, 54,205, 62, 22,249,235, 62, 0, 0, 0, 0, 28,135,213, 62,172, 4,236, 62, 0, 0, 0, 0,
-192,107,215, 62,138,227,240, 62, 0, 0, 0, 0,212,209,209, 62,246,234,245, 62, 0, 0, 0, 0, 3,112, 28, 63,185,178,236, 62,
- 0, 0, 0, 0,176,125, 27, 63,149,145,241, 62, 0, 0, 0, 0, 42, 39, 27, 63, 57, 1,241, 62, 0, 0, 0, 0,140,249, 27, 63,
-115,186,236, 62, 0, 0, 0, 0,206, 24,216, 62, 46, 83,240, 62, 0, 0, 0, 0,192,107,215, 62,138,227,240, 62, 0, 0, 0, 0,
- 28,135,213, 62,172, 4,236, 62, 0, 0, 0, 0, 8,116,214, 62,102, 12,236, 62, 0, 0, 0, 0,176,125, 27, 63,149,145,241, 62,
- 0, 0, 0, 0,195, 1, 25, 63,169,102,243, 62, 0, 0, 0, 0, 6,248, 24, 63,185, 91,242, 62, 0, 0, 0, 0, 42, 39, 27, 63,
- 57, 1,241, 62, 0, 0, 0, 0, 22,119,220, 62,174,173,241, 62, 0, 0, 0, 0,156, 99,220, 62,154,184,242, 62, 0, 0, 0, 0,
-192,107,215, 62,138,227,240, 62, 0, 0, 0, 0,206, 24,216, 62, 46, 83,240, 62, 0, 0, 0, 0,195, 1, 25, 63,169,102,243, 62,
- 0, 0, 0, 0,215,202, 22, 63,237,124,241, 62, 0, 0, 0, 0,157, 38, 23, 63,225,173,240, 62, 0, 0, 0, 0, 6,248, 24, 63,
-185, 91,242, 62, 0, 0, 0, 0,234, 25,224, 62,214,255,239, 62, 0, 0, 0, 0,112,209,224, 62,226,206,240, 62, 0, 0, 0, 0,
-156, 99,220, 62,154,184,242, 62, 0, 0, 0, 0, 22,119,220, 62,174,173,241, 62, 0, 0, 0, 0,215,202, 22, 63,237,124,241, 62,
- 0, 0, 0, 0, 11,202, 21, 63, 1,189,236, 62, 0, 0, 0, 0, 13, 89, 22, 63,247,196,236, 62, 0, 0, 0, 0,157, 38, 23, 63,
-225,173,240, 62, 0, 0, 0, 0, 8,181,225, 62,234, 22,236, 62, 0, 0, 0, 0, 12,211,226, 62,246, 14,236, 62, 0, 0, 0, 0,
-112,209,224, 62,226,206,240, 62, 0, 0, 0, 0,234, 25,224, 62,214,255,239, 62, 0, 0, 0, 0, 11,202, 21, 63, 1,189,236, 62,
- 0, 0, 0, 0, 22,195, 22, 63,195, 90,232, 62, 0, 0, 0, 0, 88, 33, 23, 63, 69, 47,233, 62, 0, 0, 0, 0, 13, 89, 22, 63,
-247,196,236, 62, 0, 0, 0, 0,112, 36,224, 62, 58,129,232, 62, 0, 0, 0, 0,248,224,224, 62,182,172,231, 62, 0, 0, 0, 0,
- 12,211,226, 62,246, 14,236, 62, 0, 0, 0, 0, 8,181,225, 62,234, 22,236, 62, 0, 0, 0, 0, 22,195, 22, 63,195, 90,232, 62,
- 0, 0, 0, 0, 87,252, 24, 63, 93,111,230, 62, 0, 0, 0, 0,100,243, 24, 63, 5,123,231, 62, 0, 0, 0, 0, 88, 33, 23, 63,
- 69, 47,233, 62, 0, 0, 0, 0, 90,128,220, 62,248,204,230, 62, 0, 0, 0, 0,118,110,220, 62, 78,193,229, 62, 0, 0, 0, 0,
-248,224,224, 62,182,172,231, 62, 0, 0, 0, 0,112, 36,224, 62, 58,129,232, 62, 0, 0, 0, 0, 87,252, 24, 63, 93,111,230, 62,
- 0, 0, 0, 0,224,124, 27, 63,235, 65,232, 62, 0, 0, 0, 0,169, 37, 27, 63, 35,211,232, 62, 0, 0, 0, 0,100,243, 24, 63,
- 5,123,231, 62, 0, 0, 0, 0,206, 27,216, 62, 22, 37,232, 62, 0, 0, 0, 0,102,109,215, 62,222,147,231, 62, 0, 0, 0, 0,
-118,110,220, 62, 78,193,229, 62, 0, 0, 0, 0, 90,128,220, 62,248,204,230, 62, 0, 0, 0, 0,224,124, 27, 63,235, 65,232, 62,
- 0, 0, 0, 0, 3,112, 28, 63,185,178,236, 62, 0, 0, 0, 0,140,249, 27, 63,115,186,236, 62, 0, 0, 0, 0,169, 37, 27, 63,
- 35,211,232, 62, 0, 0, 0, 0, 8,116,214, 62,102, 12,236, 62, 0, 0, 0, 0, 28,135,213, 62,172, 4,236, 62, 0, 0, 0, 0,
-102,109,215, 62,222,147,231, 62, 0, 0, 0, 0,206, 27,216, 62, 22, 37,232, 62, 0, 0, 0, 0,138,242, 24, 63, 21,194,236, 62,
- 0, 0, 0, 0,169, 37, 27, 63, 35,211,232, 62, 0, 0, 0, 0,140,249, 27, 63,115,186,236, 62, 0, 0, 0, 0, 8,116,214, 62,
-102, 12,236, 62, 0, 0, 0, 0,206, 27,216, 62, 22, 37,232, 62, 0, 0, 0, 0, 16,130,220, 62, 6, 20,236, 62, 0, 0, 0, 0,
-100,243, 24, 63, 5,123,231, 62, 0, 0, 0, 0,169, 37, 27, 63, 35,211,232, 62, 0, 0, 0, 0,138,242, 24, 63, 21,194,236, 62,
- 0, 0, 0, 0, 16,130,220, 62, 6, 20,236, 62, 0, 0, 0, 0,206, 27,216, 62, 22, 37,232, 62, 0, 0, 0, 0, 90,128,220, 62,
-248,204,230, 62, 0, 0, 0, 0,138,242, 24, 63, 21,194,236, 62, 0, 0, 0, 0, 88, 33, 23, 63, 69, 47,233, 62, 0, 0, 0, 0,
-100,243, 24, 63, 5,123,231, 62, 0, 0, 0, 0, 90,128,220, 62,248,204,230, 62, 0, 0, 0, 0,112, 36,224, 62, 58,129,232, 62,
- 0, 0, 0, 0, 16,130,220, 62, 6, 20,236, 62, 0, 0, 0, 0,138,242, 24, 63, 21,194,236, 62, 0, 0, 0, 0, 13, 89, 22, 63,
-247,196,236, 62, 0, 0, 0, 0, 88, 33, 23, 63, 69, 47,233, 62, 0, 0, 0, 0,112, 36,224, 62, 58,129,232, 62, 0, 0, 0, 0,
- 8,181,225, 62,234, 22,236, 62, 0, 0, 0, 0, 16,130,220, 62, 6, 20,236, 62, 0, 0, 0, 0,138,242, 24, 63, 21,194,236, 62,
- 0, 0, 0, 0,157, 38, 23, 63,225,173,240, 62, 0, 0, 0, 0, 13, 89, 22, 63,247,196,236, 62, 0, 0, 0, 0, 8,181,225, 62,
-234, 22,236, 62, 0, 0, 0, 0,234, 25,224, 62,214,255,239, 62, 0, 0, 0, 0, 16,130,220, 62, 6, 20,236, 62, 0, 0, 0, 0,
-138,242, 24, 63, 21,194,236, 62, 0, 0, 0, 0, 6,248, 24, 63,185, 91,242, 62, 0, 0, 0, 0,157, 38, 23, 63,225,173,240, 62,
- 0, 0, 0, 0,234, 25,224, 62,214,255,239, 62, 0, 0, 0, 0, 22,119,220, 62,174,173,241, 62, 0, 0, 0, 0, 16,130,220, 62,
- 6, 20,236, 62, 0, 0, 0, 0,138,242, 24, 63, 21,194,236, 62, 0, 0, 0, 0, 42, 39, 27, 63, 57, 1,241, 62, 0, 0, 0, 0,
- 6,248, 24, 63,185, 91,242, 62, 0, 0, 0, 0, 22,119,220, 62,174,173,241, 62, 0, 0, 0, 0,206, 24,216, 62, 46, 83,240, 62,
- 0, 0, 0, 0, 16,130,220, 62, 6, 20,236, 62, 0, 0, 0, 0,138,242, 24, 63, 21,194,236, 62, 0, 0, 0, 0,140,249, 27, 63,
-115,186,236, 62, 0, 0, 0, 0, 42, 39, 27, 63, 57, 1,241, 62, 0, 0, 0, 0,206, 24,216, 62, 46, 83,240, 62, 0, 0, 0, 0,
- 8,116,214, 62,102, 12,236, 62, 0, 0, 0, 0, 16,130,220, 62, 6, 20,236, 62, 0, 0, 0, 0,174,254, 16, 63, 94, 45, 34, 62,
- 0, 0, 0, 0, 79,190, 13, 63,160,193, 46, 62, 0, 0, 0, 0,220,199, 3, 63, 89,219, 24, 62, 0, 0, 0, 0,219,199, 3, 63,
- 18, 28,229, 61, 0, 0, 0, 0,220,199, 3, 63, 89,219, 24, 62, 0, 0, 0, 0, 14,150,243, 62,204, 79, 47, 62, 0, 0, 0, 0,
-140,248,236, 62,182,202, 34, 62, 0, 0, 0, 0,219,199, 3, 63, 18, 28,229, 61, 0, 0, 0, 0,184,152, 21, 63,182, 47, 53, 62,
- 0, 0, 0, 0,250,104, 16, 63, 16,113, 55, 62, 0, 0, 0, 0, 79,190, 13, 63,160,193, 46, 62, 0, 0, 0, 0,174,254, 16, 63,
- 94, 45, 34, 62, 0, 0, 0, 0, 14,150,243, 62,204, 79, 47, 62, 0, 0, 0, 0,200, 68,238, 62, 76, 62, 56, 62, 0, 0, 0, 0,
-183,207,227, 62,250, 75, 54, 62, 0, 0, 0, 0,140,248,236, 62,182,202, 34, 62, 0, 0, 0, 0,137, 57, 22, 63, 81, 93, 61, 62,
- 0, 0, 0, 0,206,186, 16, 63, 85,129, 72, 62, 0, 0, 0, 0,250,104, 16, 63, 16,113, 55, 62, 0, 0, 0, 0,184,152, 21, 63,
-182, 47, 53, 62, 0, 0, 0, 0,200, 68,238, 62, 76, 62, 56, 62, 0, 0, 0, 0,192,187,237, 62,194,118, 73, 62, 0, 0, 0, 0,
-122,152,226, 62,190,166, 62, 62, 0, 0, 0, 0,183,207,227, 62,250, 75, 54, 62, 0, 0, 0, 0,250,249, 22, 63,160,251, 88, 62,
- 0, 0, 0, 0,222, 32, 16, 63, 34,106, 93, 62, 0, 0, 0, 0,206,186, 16, 63, 85,129, 72, 62, 0, 0, 0, 0,137, 57, 22, 63,
- 81, 93, 61, 62, 0, 0, 0, 0,192,187,237, 62,194,118, 73, 62, 0, 0, 0, 0, 21, 19,239, 62,121,110, 94, 62, 0, 0, 0, 0,
- 90, 83,225, 62, 21,153, 90, 62, 0, 0, 0, 0,122,152,226, 62,190,166, 62, 62, 0, 0, 0, 0, 20, 81, 25, 63, 17, 56,132, 62,
- 0, 0, 0, 0,206,243, 15, 63,182,207,136, 62, 0, 0, 0, 0,222, 32, 16, 63, 34,106, 93, 62, 0, 0, 0, 0,250,249, 22, 63,
-160,251, 88, 62, 0, 0, 0, 0, 21, 19,239, 62,121,110, 94, 62, 0, 0, 0, 0, 92,193,239, 62,113, 61,137, 62, 0, 0, 0, 0,
- 54, 42,221, 62,209, 25,133, 62, 0, 0, 0, 0, 90, 83,225, 62, 21,153, 90, 62, 0, 0, 0, 0,111,239, 27, 63,159, 77,166, 62,
- 0, 0, 0, 0, 91, 94, 37, 63,107,120,187, 62, 0, 0, 0, 0, 66, 21, 30, 63,178,139,200, 62, 0, 0, 0, 0,158,237, 12, 63,
- 38,241,187, 62, 0, 0, 0, 0,139,125,211, 62,170,171,200, 62, 0, 0, 0, 0,156, 28,197, 62,166,130,187, 62, 0, 0, 0, 0,
-115, 21,216, 62, 14,177,166, 62, 0, 0, 0, 0, 15,175,245, 62,188, 14,188, 62, 0, 0, 0, 0, 91, 94, 37, 63,107,120,187, 62,
- 0, 0, 0, 0, 87, 57, 43, 63,222, 58,206, 62, 0, 0, 0, 0, 24,163, 39, 63,174, 95,216, 62, 0, 0, 0, 0, 66, 21, 30, 63,
-178,139,200, 62, 0, 0, 0, 0, 98,194,191, 62, 42, 94,216, 62, 0, 0, 0, 0,130,207,184, 62, 42, 27,206, 62, 0, 0, 0, 0,
-156, 28,197, 62,166,130,187, 62, 0, 0, 0, 0,139,125,211, 62,170,171,200, 62, 0, 0, 0, 0, 87, 57, 43, 63,222, 58,206, 62,
- 0, 0, 0, 0, 38,229, 50, 63,169, 32,226, 62, 0, 0, 0, 0,177, 79, 43, 63,202,194,231, 62, 0, 0, 0, 0, 24,163, 39, 63,
-174, 95,216, 62, 0, 0, 0, 0, 60,201,183, 62, 82,218,231, 62, 0, 0, 0, 0,196, 39,168, 62,206, 11,226, 62, 0, 0, 0, 0,
-130,207,184, 62, 42, 27,206, 62, 0, 0, 0, 0, 98,194,191, 62, 42, 94,216, 62, 0, 0, 0, 0, 38,229, 50, 63,169, 32,226, 62,
- 0, 0, 0, 0, 62,134, 48, 63, 37,107,249, 62, 0, 0, 0, 0,154,190, 43, 63,192, 0,249, 62, 0, 0, 0, 0,177, 79, 43, 63,
-202,194,231, 62, 0, 0, 0, 0,138,190,182, 62, 35, 49,249, 62, 0, 0, 0, 0,172,229,172, 62,116,127,249, 62, 0, 0, 0, 0,
-196, 39,168, 62,206, 11,226, 62, 0, 0, 0, 0, 60,201,183, 62, 82,218,231, 62, 0, 0, 0, 0, 62,134, 48, 63, 37,107,249, 62,
- 0, 0, 0, 0,238, 88, 46, 63,146,223, 2, 63, 0, 0, 0, 0,123,207, 40, 63,218,175,254, 62, 0, 0, 0, 0,154,190, 43, 63,
-192, 0,249, 62, 0, 0, 0, 0, 2,184,188, 62,140, 0,255, 62, 0, 0, 0, 0,173, 87,177, 62,102, 9, 3, 63, 0, 0, 0, 0,
-172,229,172, 62,116,127,249, 62, 0, 0, 0, 0,138,190,182, 62, 35, 49,249, 62, 0, 0, 0, 0,238, 88, 46, 63,146,223, 2, 63,
- 0, 0, 0, 0,220,158, 34, 63,175, 23, 10, 63, 0, 0, 0, 0,126, 77, 30, 63,156, 88, 5, 63, 0, 0, 0, 0,123,207, 40, 63,
-218,175,254, 62, 0, 0, 0, 0, 89, 65,210, 62, 56,158, 5, 63, 0, 0, 0, 0,124,109,201, 62, 72,121, 10, 63, 0, 0, 0, 0,
-173, 87,177, 62,102, 9, 3, 63, 0, 0, 0, 0, 2,184,188, 62,140, 0,255, 62, 0, 0, 0, 0,220,158, 34, 63,175, 23, 10, 63,
- 0, 0, 0, 0, 28,105, 26, 63,242,194, 11, 63, 0, 0, 0, 0,244,120, 25, 63, 78,242, 7, 63, 0, 0, 0, 0,126, 77, 30, 63,
-156, 88, 5, 63, 0, 0, 0, 0, 0, 39,220, 62,252, 58, 8, 63, 0, 0, 0, 0,220, 73,218, 62,169, 31, 12, 63, 0, 0, 0, 0,
-124,109,201, 62, 72,121, 10, 63, 0, 0, 0, 0, 89, 65,210, 62, 56,158, 5, 63, 0, 0, 0, 0, 28,105, 26, 63,242,194, 11, 63,
- 0, 0, 0, 0,173,244, 22, 63,236,215, 11, 63, 0, 0, 0, 0,202, 47, 22, 63,156, 60, 8, 63, 0, 0, 0, 0,244,120, 25, 63,
- 78,242, 7, 63, 0, 0, 0, 0, 11,221,226, 62, 90,125, 8, 63, 0, 0, 0, 0,220, 89,225, 62, 77, 42, 12, 63, 0, 0, 0, 0,
-220, 73,218, 62,169, 31, 12, 63, 0, 0, 0, 0, 0, 39,220, 62,252, 58, 8, 63, 0, 0, 0, 0,173,244, 22, 63,236,215, 11, 63,
- 0, 0, 0, 0, 67,169, 11, 63, 18,197, 11, 63, 0, 0, 0, 0,106,252, 12, 63,180,173, 3, 63, 0, 0, 0, 0,202, 47, 22, 63,
-156, 60, 8, 63, 0, 0, 0, 0, 35,114,245, 62,233,196, 3, 63, 0, 0, 0, 0, 55, 72,248, 62, 91,232, 11, 63, 0, 0, 0, 0,
-220, 89,225, 62, 77, 42, 12, 63, 0, 0, 0, 0, 11,221,226, 62, 90,125, 8, 63, 0, 0, 0, 0, 67,169, 11, 63, 18,197, 11, 63,
- 0, 0, 0, 0,148,232, 3, 63,164, 17, 11, 63, 0, 0, 0, 0,162,220, 3, 63, 45, 88, 0, 63, 0, 0, 0, 0,106,252, 12, 63,
-180,173, 3, 63, 0, 0, 0, 0,162,220, 3, 63, 45, 88, 0, 63, 0, 0, 0, 0,148,232, 3, 63,164, 17, 11, 63, 0, 0, 0, 0,
- 55, 72,248, 62, 91,232, 11, 63, 0, 0, 0, 0, 35,114,245, 62,233,196, 3, 63, 0, 0, 0, 0,103, 59, 17, 63,120,195,255, 62,
- 0, 0, 0, 0,240, 81, 22, 63,114, 70, 1, 63, 0, 0, 0, 0,202, 47, 22, 63,156, 60, 8, 63, 0, 0, 0, 0,106,252, 12, 63,
-180,173, 3, 63, 0, 0, 0, 0, 11,221,226, 62, 90,125, 8, 63, 0, 0, 0, 0,106,128,226, 62,198,111, 1, 63, 0, 0, 0, 0,
-209,213,236, 62, 4,250,255, 62, 0, 0, 0, 0, 35,114,245, 62,233,196, 3, 63, 0, 0, 0, 0,240, 81, 22, 63,114, 70, 1, 63,
- 0, 0, 0, 0,151,182, 25, 63,130, 9, 1, 63, 0, 0, 0, 0,244,120, 25, 63, 78,242, 7, 63, 0, 0, 0, 0,202, 47, 22, 63,
-156, 60, 8, 63, 0, 0, 0, 0, 0, 39,220, 62,252, 58, 8, 63, 0, 0, 0, 0,213,150,219, 62, 50, 55, 1, 63, 0, 0, 0, 0,
-106,128,226, 62,198,111, 1, 63, 0, 0, 0, 0, 11,221,226, 62, 90,125, 8, 63, 0, 0, 0, 0, 96, 49, 30, 63,121,229,254, 62,
- 0, 0, 0, 0,126, 77, 30, 63,156, 88, 5, 63, 0, 0, 0, 0,244,120, 25, 63, 78,242, 7, 63, 0, 0, 0, 0,151,182, 25, 63,
-130, 9, 1, 63, 0, 0, 0, 0, 0, 39,220, 62,252, 58, 8, 63, 0, 0, 0, 0, 89, 65,210, 62, 56,158, 5, 63, 0, 0, 0, 0,
-176,116,210, 62,227, 62,255, 62, 0, 0, 0, 0,213,150,219, 62, 50, 55, 1, 63, 0, 0, 0, 0, 25,113, 37, 63, 35,157,247, 62,
- 0, 0, 0, 0,123,207, 40, 63,218,175,254, 62, 0, 0, 0, 0,126, 77, 30, 63,156, 88, 5, 63, 0, 0, 0, 0, 96, 49, 30, 63,
-121,229,254, 62, 0, 0, 0, 0, 89, 65,210, 62, 56,158, 5, 63, 0, 0, 0, 0, 2,184,188, 62,140, 0,255, 62, 0, 0, 0, 0,
-189,165,195, 62,139,232,247, 62, 0, 0, 0, 0,176,116,210, 62,227, 62,255, 62, 0, 0, 0, 0, 92, 62, 39, 63,121, 75,240, 62,
- 0, 0, 0, 0,154,190, 43, 63,192, 0,249, 62, 0, 0, 0, 0,123,207, 40, 63,218,175,254, 62, 0, 0, 0, 0, 25,113, 37, 63,
- 35,157,247, 62, 0, 0, 0, 0, 2,184,188, 62,140, 0,255, 62, 0, 0, 0, 0,138,190,182, 62, 35, 49,249, 62, 0, 0, 0, 0,
-222, 10,192, 62,163,128,240, 62, 0, 0, 0, 0,189,165,195, 62,139,232,247, 62, 0, 0, 0, 0,140,149, 38, 63, 38, 95,229, 62,
- 0, 0, 0, 0,177, 79, 43, 63,202,194,231, 62, 0, 0, 0, 0,154,190, 43, 63,192, 0,249, 62, 0, 0, 0, 0, 92, 62, 39, 63,
-121, 75,240, 62, 0, 0, 0, 0,138,190,182, 62, 35, 49,249, 62, 0, 0, 0, 0, 60,201,183, 62, 82,218,231, 62, 0, 0, 0, 0,
-168,140,193, 62, 94,129,229, 62, 0, 0, 0, 0,222, 10,192, 62,163,128,240, 62, 0, 0, 0, 0, 14,120, 33, 63,166,238,214, 62,
- 0, 0, 0, 0, 24,163, 39, 63,174, 95,216, 62, 0, 0, 0, 0,177, 79, 43, 63,202,194,231, 62, 0, 0, 0, 0,140,149, 38, 63,
- 38, 95,229, 62, 0, 0, 0, 0, 60,201,183, 62, 82,218,231, 62, 0, 0, 0, 0, 98,194,191, 62, 42, 94,216, 62, 0, 0, 0, 0,
-168, 75,204, 62, 62, 7,215, 62, 0, 0, 0, 0,168,140,193, 62, 94,129,229, 62, 0, 0, 0, 0,165,178, 27, 63,128, 17,208, 62,
- 0, 0, 0, 0, 66, 21, 30, 63,178,139,200, 62, 0, 0, 0, 0, 24,163, 39, 63,174, 95,216, 62, 0, 0, 0, 0, 14,120, 33, 63,
-166,238,214, 62, 0, 0, 0, 0, 98,194,191, 62, 42, 94,216, 62, 0, 0, 0, 0,139,125,211, 62,170,171,200, 62, 0, 0, 0, 0,
- 6, 24,216, 62,128, 57,208, 62, 0, 0, 0, 0,168, 75,204, 62, 62, 7,215, 62, 0, 0, 0, 0, 15, 97, 17, 63,220, 34,214, 62,
- 0, 0, 0, 0,158,237, 12, 63, 38,241,187, 62, 0, 0, 0, 0, 66, 21, 30, 63,178,139,200, 62, 0, 0, 0, 0,165,178, 27, 63,
-128, 17,208, 62, 0, 0, 0, 0,139,125,211, 62,170,171,200, 62, 0, 0, 0, 0, 15,175,245, 62,188, 14,188, 62, 0, 0, 0, 0,
-217,200,236, 62,134, 49,214, 62, 0, 0, 0, 0, 6, 24,216, 62,128, 57,208, 62, 0, 0, 0, 0, 15, 97, 17, 63,220, 34,214, 62,
- 0, 0, 0, 0,149,244, 14, 63, 4, 42,221, 62, 0, 0, 0, 0,147,230, 3, 63, 78, 47,208, 62, 0, 0, 0, 0,158,237, 12, 63,
- 38,241,187, 62, 0, 0, 0, 0,147,230, 3, 63, 78, 47,208, 62, 0, 0, 0, 0,141,144,241, 62,244, 52,221, 62, 0, 0, 0, 0,
-217,200,236, 62,134, 49,214, 62, 0, 0, 0, 0, 15,175,245, 62,188, 14,188, 62, 0, 0, 0, 0,103, 59, 17, 63,120,195,255, 62,
- 0, 0, 0, 0,106,252, 12, 63,180,173, 3, 63, 0, 0, 0, 0,162,220, 3, 63, 45, 88, 0, 63, 0, 0, 0, 0, 71, 25, 13, 63,
-116,163,243, 62, 0, 0, 0, 0,162,220, 3, 63, 45, 88, 0, 63, 0, 0, 0, 0, 35,114,245, 62,233,196, 3, 63, 0, 0, 0, 0,
-209,213,236, 62, 4,250,255, 62, 0, 0, 0, 0, 0, 45,245, 62,206,185,243, 62, 0, 0, 0, 0, 71, 25, 13, 63,116,163,243, 62,
- 0, 0, 0, 0,162,220, 3, 63, 45, 88, 0, 63, 0, 0, 0, 0,215,220, 3, 63,148,189,231, 62, 0, 0, 0, 0, 64, 2, 13, 63,
- 52,215,230, 62, 0, 0, 0, 0,215,220, 3, 63,148,189,231, 62, 0, 0, 0, 0,162,220, 3, 63, 45, 88, 0, 63, 0, 0, 0, 0,
- 0, 45,245, 62,206,185,243, 62, 0, 0, 0, 0,219,100,245, 62,184,230,230, 62, 0, 0, 0, 0,147,230, 3, 63, 78, 47,208, 62,
- 0, 0, 0, 0,149,244, 14, 63, 4, 42,221, 62, 0, 0, 0, 0, 64, 2, 13, 63, 52,215,230, 62, 0, 0, 0, 0,215,220, 3, 63,
-148,189,231, 62, 0, 0, 0, 0,219,100,245, 62,184,230,230, 62, 0, 0, 0, 0,141,144,241, 62,244, 52,221, 62, 0, 0, 0, 0,
-147,230, 3, 63, 78, 47,208, 62, 0, 0, 0, 0,215,220, 3, 63,148,189,231, 62, 0, 0, 0, 0,250, 61, 7, 63,148, 31, 54, 62,
- 0, 0, 0, 0,193,202, 3, 63,214,174, 49, 62, 0, 0, 0, 0,220,199, 3, 63, 89,219, 24, 62, 0, 0, 0, 0, 79,190, 13, 63,
-160,193, 46, 62, 0, 0, 0, 0,220,199, 3, 63, 89,219, 24, 62, 0, 0, 0, 0,193,202, 3, 63,214,174, 49, 62, 0, 0, 0, 0,
-175, 87, 0, 63,251, 90, 54, 62, 0, 0, 0, 0, 14,150,243, 62,204, 79, 47, 62, 0, 0, 0, 0, 68,214, 9, 63,246,237, 66, 62,
- 0, 0, 0, 0,250, 61, 7, 63,148, 31, 54, 62, 0, 0, 0, 0, 79,190, 13, 63,160,193, 46, 62, 0, 0, 0, 0,250,104, 16, 63,
- 16,113, 55, 62, 0, 0, 0, 0, 14,150,243, 62,204, 79, 47, 62, 0, 0, 0, 0,175, 87, 0, 63,251, 90, 54, 62, 0, 0, 0, 0,
-104,137,251, 62,179, 92, 67, 62, 0, 0, 0, 0,200, 68,238, 62, 76, 62, 56, 62, 0, 0, 0, 0,237,221, 8, 63,218, 90, 91, 62,
- 0, 0, 0, 0, 68,214, 9, 63,246,237, 66, 62, 0, 0, 0, 0,250,104, 16, 63, 16,113, 55, 62, 0, 0, 0, 0,206,186, 16, 63,
- 85,129, 72, 62, 0, 0, 0, 0,200, 68,238, 62, 76, 62, 56, 62, 0, 0, 0, 0,104,137,251, 62,179, 92, 67, 62, 0, 0, 0, 0,
- 39,153,253, 62, 27,195, 91, 62, 0, 0, 0, 0,192,187,237, 62,194,118, 73, 62, 0, 0, 0, 0,206,243, 15, 63,182,207,136, 62,
- 0, 0, 0, 0, 77, 32, 8, 63, 10, 39,139, 62, 0, 0, 0, 0, 22,117, 9, 63,146,203, 97, 62, 0, 0, 0, 0,222, 32, 16, 63,
- 34,106, 93, 62, 0, 0, 0, 0,192,110,252, 62, 79, 68, 98, 62, 0, 0, 0, 0,219, 89,255, 62,116, 79,139, 62, 0, 0, 0, 0,
- 92,193,239, 62,113, 61,137, 62, 0, 0, 0, 0, 21, 19,239, 62,121,110, 94, 62, 0, 0, 0, 0,237,221, 8, 63,218, 90, 91, 62,
- 0, 0, 0, 0,206,186, 16, 63, 85,129, 72, 62, 0, 0, 0, 0,222, 32, 16, 63, 34,106, 93, 62, 0, 0, 0, 0, 22,117, 9, 63,
-146,203, 97, 62, 0, 0, 0, 0, 21, 19,239, 62,121,110, 94, 62, 0, 0, 0, 0,192,187,237, 62,194,118, 73, 62, 0, 0, 0, 0,
- 39,153,253, 62, 27,195, 91, 62, 0, 0, 0, 0,192,110,252, 62, 79, 68, 98, 62, 0, 0, 0, 0,119,125, 9, 63, 7,112,158, 62,
- 0, 0, 0, 0, 70,233, 3, 63, 88, 27,154, 62, 0, 0, 0, 0,235,229, 3, 63, 97,108,139, 62, 0, 0, 0, 0, 77, 32, 8, 63,
- 10, 39,139, 62, 0, 0, 0, 0,235,229, 3, 63, 97,108,139, 62, 0, 0, 0, 0, 70,233, 3, 63, 88, 27,154, 62, 0, 0, 0, 0,
-165,179,252, 62,163,140,158, 62, 0, 0, 0, 0,219, 89,255, 62,116, 79,139, 62, 0, 0, 0, 0, 22,117, 9, 63,146,203, 97, 62,
- 0, 0, 0, 0, 77, 32, 8, 63, 10, 39,139, 62, 0, 0, 0, 0,235,229, 3, 63, 97,108,139, 62, 0, 0, 0, 0,246,215, 3, 63,
-143, 56,101, 62, 0, 0, 0, 0,235,229, 3, 63, 97,108,139, 62, 0, 0, 0, 0,219, 89,255, 62,116, 79,139, 62, 0, 0, 0, 0,
-192,110,252, 62, 79, 68, 98, 62, 0, 0, 0, 0,246,215, 3, 63,143, 56,101, 62, 0, 0, 0, 0,147,210, 3, 63,221, 95, 86, 62,
- 0, 0, 0, 0,237,221, 8, 63,218, 90, 91, 62, 0, 0, 0, 0, 22,117, 9, 63,146,203, 97, 62, 0, 0, 0, 0,246,215, 3, 63,
-143, 56,101, 62, 0, 0, 0, 0,192,110,252, 62, 79, 68, 98, 62, 0, 0, 0, 0, 39,153,253, 62, 27,195, 91, 62, 0, 0, 0, 0,
-147,210, 3, 63,221, 95, 86, 62, 0, 0, 0, 0,246,215, 3, 63,143, 56,101, 62, 0, 0, 0, 0, 5, 54, 12, 63,188,183,167, 62,
- 0, 0, 0, 0,250, 61, 9, 63,252,214,168, 62, 0, 0, 0, 0,152,143, 8, 63, 45,107,163, 62, 0, 0, 0, 0,119,125, 9, 63,
- 7,112,158, 62, 0, 0, 0, 0,100,136,254, 62, 38,123,163, 62, 0, 0, 0, 0,110, 39,253, 62,103,224,168, 62, 0, 0, 0, 0,
- 98, 68,247, 62,146,206,167, 62, 0, 0, 0, 0,165,179,252, 62,163,140,158, 62, 0, 0, 0, 0,135,196, 10, 63, 52,208,178, 62,
- 0, 0, 0, 0, 25,233, 8, 63,116,110,175, 62, 0, 0, 0, 0,250, 61, 9, 63,252,214,168, 62, 0, 0, 0, 0, 5, 54, 12, 63,
-188,183,167, 62, 0, 0, 0, 0,110, 39,253, 62,103,224,168, 62, 0, 0, 0, 0,102,195,253, 62,184,102,175, 62, 0, 0, 0, 0,
- 98, 14,250, 62,149,202,178, 62, 0, 0, 0, 0, 98, 68,247, 62,146,206,167, 62, 0, 0, 0, 0, 69, 17, 4, 63,105,176,182, 62,
- 0, 0, 0, 0, 69,138, 6, 63, 80,180,177, 62, 0, 0, 0, 0, 25,233, 8, 63,116,110,175, 62, 0, 0, 0, 0,135,196, 10, 63,
- 52,208,178, 62, 0, 0, 0, 0,102,195,253, 62,184,102,175, 62, 0, 0, 0, 0, 14, 49, 1, 63, 62,150,177, 62, 0, 0, 0, 0,
- 69, 17, 4, 63,105,176,182, 62, 0, 0, 0, 0, 98, 14,250, 62,149,202,178, 62, 0, 0, 0, 0,209,124, 3, 63, 70, 0,177, 62,
- 0, 0, 0, 0, 11,232, 3, 63,140, 4,174, 62, 0, 0, 0, 0, 69,138, 6, 63, 80,180,177, 62, 0, 0, 0, 0, 69, 17, 4, 63,
-105,176,182, 62, 0, 0, 0, 0, 14, 49, 1, 63, 62,150,177, 62, 0, 0, 0, 0, 11,232, 3, 63,140, 4,174, 62, 0, 0, 0, 0,
-209,124, 3, 63, 70, 0,177, 62, 0, 0, 0, 0, 69, 17, 4, 63,105,176,182, 62, 0, 0, 0, 0, 70,233, 3, 63, 88, 27,154, 62,
- 0, 0, 0, 0,119,125, 9, 63, 7,112,158, 62, 0, 0, 0, 0,152,143, 8, 63, 45,107,163, 62, 0, 0, 0, 0,212,232, 3, 63,
- 58,152,158, 62, 0, 0, 0, 0,100,136,254, 62, 38,123,163, 62, 0, 0, 0, 0,165,179,252, 62,163,140,158, 62, 0, 0, 0, 0,
- 70,233, 3, 63, 88, 27,154, 62, 0, 0, 0, 0,212,232, 3, 63, 58,152,158, 62, 0, 0, 0, 0,212,232, 3, 63, 58,152,158, 62,
- 0, 0, 0, 0,152,143, 8, 63, 45,107,163, 62, 0, 0, 0, 0,121, 91, 7, 63,134, 51,166, 62, 0, 0, 0, 0,205,231, 3, 63,
- 58,149,162, 62, 0, 0, 0, 0, 44,116, 0, 63,255, 56,166, 62, 0, 0, 0, 0,100,136,254, 62, 38,123,163, 62, 0, 0, 0, 0,
-212,232, 3, 63, 58,152,158, 62, 0, 0, 0, 0,205,231, 3, 63, 58,149,162, 62, 0, 0, 0, 0, 11,232, 3, 63,140, 4,174, 62,
- 0, 0, 0, 0,214,233, 3, 63,198,154,170, 62, 0, 0, 0, 0,233,110, 6, 63, 94,152,174, 62, 0, 0, 0, 0, 69,138, 6, 63,
- 80,180,177, 62, 0, 0, 0, 0,228, 82, 1, 63, 95,140,174, 62, 0, 0, 0, 0,214,233, 3, 63,198,154,170, 62, 0, 0, 0, 0,
- 11,232, 3, 63,140, 4,174, 62, 0, 0, 0, 0, 14, 49, 1, 63, 62,150,177, 62, 0, 0, 0, 0, 69,138, 6, 63, 80,180,177, 62,
- 0, 0, 0, 0,233,110, 6, 63, 94,152,174, 62, 0, 0, 0, 0, 59,236, 7, 63, 19,123,173, 62, 0, 0, 0, 0, 25,233, 8, 63,
-116,110,175, 62, 0, 0, 0, 0,217,185,255, 62, 92,116,173, 62, 0, 0, 0, 0,228, 82, 1, 63, 95,140,174, 62, 0, 0, 0, 0,
- 14, 49, 1, 63, 62,150,177, 62, 0, 0, 0, 0,102,195,253, 62,184,102,175, 62, 0, 0, 0, 0, 25,233, 8, 63,116,110,175, 62,
- 0, 0, 0, 0, 59,236, 7, 63, 19,123,173, 62, 0, 0, 0, 0, 85,249, 7, 63, 92, 52,169, 62, 0, 0, 0, 0,250, 61, 9, 63,
-252,214,168, 62, 0, 0, 0, 0,160,169,255, 62, 6, 57,169, 62, 0, 0, 0, 0,217,185,255, 62, 92,116,173, 62, 0, 0, 0, 0,
-102,195,253, 62,184,102,175, 62, 0, 0, 0, 0,110, 39,253, 62,103,224,168, 62, 0, 0, 0, 0,250, 61, 9, 63,252,214,168, 62,
- 0, 0, 0, 0, 85,249, 7, 63, 92, 52,169, 62, 0, 0, 0, 0,121, 91, 7, 63,134, 51,166, 62, 0, 0, 0, 0,152,143, 8, 63,
- 45,107,163, 62, 0, 0, 0, 0, 44,116, 0, 63,255, 56,166, 62, 0, 0, 0, 0,160,169,255, 62, 6, 57,169, 62, 0, 0, 0, 0,
-110, 39,253, 62,103,224,168, 62, 0, 0, 0, 0,100,136,254, 62, 38,123,163, 62, 0, 0, 0, 0,214,233, 3, 63,198,154,170, 62,
- 0, 0, 0, 0, 85,249, 7, 63, 92, 52,169, 62, 0, 0, 0, 0, 59,236, 7, 63, 19,123,173, 62, 0, 0, 0, 0,233,110, 6, 63,
- 94,152,174, 62, 0, 0, 0, 0,217,185,255, 62, 92,116,173, 62, 0, 0, 0, 0,160,169,255, 62, 6, 57,169, 62, 0, 0, 0, 0,
-214,233, 3, 63,198,154,170, 62, 0, 0, 0, 0,228, 82, 1, 63, 95,140,174, 62, 0, 0, 0, 0,214,233, 3, 63,198,154,170, 62,
- 0, 0, 0, 0,205,231, 3, 63, 58,149,162, 62, 0, 0, 0, 0,121, 91, 7, 63,134, 51,166, 62, 0, 0, 0, 0, 85,249, 7, 63,
- 92, 52,169, 62, 0, 0, 0, 0, 44,116, 0, 63,255, 56,166, 62, 0, 0, 0, 0,205,231, 3, 63, 58,149,162, 62, 0, 0, 0, 0,
-214,233, 3, 63,198,154,170, 62, 0, 0, 0, 0,160,169,255, 62, 6, 57,169, 62, 0, 0, 0, 0, 69, 17, 4, 63,105,176,182, 62,
- 0, 0, 0, 0,135,196, 10, 63, 52,208,178, 62, 0, 0, 0, 0,158,237, 12, 63, 38,241,187, 62, 0, 0, 0, 0,147,230, 3, 63,
- 78, 47,208, 62, 0, 0, 0, 0, 15,175,245, 62,188, 14,188, 62, 0, 0, 0, 0, 98, 14,250, 62,149,202,178, 62, 0, 0, 0, 0,
- 69, 17, 4, 63,105,176,182, 62, 0, 0, 0, 0,147,230, 3, 63, 78, 47,208, 62, 0, 0, 0, 0,135,196, 10, 63, 52,208,178, 62,
- 0, 0, 0, 0, 5, 54, 12, 63,188,183,167, 62, 0, 0, 0, 0,112, 0, 16, 63,254,246,164, 62, 0, 0, 0, 0,158,237, 12, 63,
- 38,241,187, 62, 0, 0, 0, 0,207,187,239, 62, 19, 42,165, 62, 0, 0, 0, 0, 98, 68,247, 62,146,206,167, 62, 0, 0, 0, 0,
- 98, 14,250, 62,149,202,178, 62, 0, 0, 0, 0, 15,175,245, 62,188, 14,188, 62, 0, 0, 0, 0, 5, 54, 12, 63,188,183,167, 62,
- 0, 0, 0, 0,119,125, 9, 63, 7,112,158, 62, 0, 0, 0, 0, 44,250, 15, 63,109, 0,154, 62, 0, 0, 0, 0,112, 0, 16, 63,
-254,246,164, 62, 0, 0, 0, 0, 56,205,239, 62, 8, 71,154, 62, 0, 0, 0, 0,165,179,252, 62,163,140,158, 62, 0, 0, 0, 0,
- 98, 68,247, 62,146,206,167, 62, 0, 0, 0, 0,207,187,239, 62, 19, 42,165, 62, 0, 0, 0, 0,119,125, 9, 63, 7,112,158, 62,
- 0, 0, 0, 0, 77, 32, 8, 63, 10, 39,139, 62, 0, 0, 0, 0,206,243, 15, 63,182,207,136, 62, 0, 0, 0, 0, 44,250, 15, 63,
-109, 0,154, 62, 0, 0, 0, 0, 92,193,239, 62,113, 61,137, 62, 0, 0, 0, 0,219, 89,255, 62,116, 79,139, 62, 0, 0, 0, 0,
-165,179,252, 62,163,140,158, 62, 0, 0, 0, 0, 56,205,239, 62, 8, 71,154, 62, 0, 0, 0, 0, 20, 81, 25, 63, 17, 56,132, 62,
- 0, 0, 0, 0,208, 46, 27, 63,149, 35,148, 62, 0, 0, 0, 0, 44,250, 15, 63,109, 0,154, 62, 0, 0, 0, 0,206,243, 15, 63,
-182,207,136, 62, 0, 0, 0, 0, 56,205,239, 62, 8, 71,154, 62, 0, 0, 0, 0,238,166,217, 62,229,221,148, 62, 0, 0, 0, 0,
- 54, 42,221, 62,209, 25,133, 62, 0, 0, 0, 0, 92,193,239, 62,113, 61,137, 62, 0, 0, 0, 0,208, 46, 27, 63,149, 35,148, 62,
- 0, 0, 0, 0, 36,177, 27, 63,158,151,156, 62, 0, 0, 0, 0,112, 0, 16, 63,254,246,164, 62, 0, 0, 0, 0, 44,250, 15, 63,
-109, 0,154, 62, 0, 0, 0, 0,207,187,239, 62, 19, 42,165, 62, 0, 0, 0, 0, 0,160,216, 62,127, 44,157, 62, 0, 0, 0, 0,
-238,166,217, 62,229,221,148, 62, 0, 0, 0, 0, 56,205,239, 62, 8, 71,154, 62, 0, 0, 0, 0,111,239, 27, 63,159, 77,166, 62,
- 0, 0, 0, 0,158,237, 12, 63, 38,241,187, 62, 0, 0, 0, 0,112, 0, 16, 63,254,246,164, 62, 0, 0, 0, 0, 36,177, 27, 63,
-158,151,156, 62, 0, 0, 0, 0,207,187,239, 62, 19, 42,165, 62, 0, 0, 0, 0, 15,175,245, 62,188, 14,188, 62, 0, 0, 0, 0,
-115, 21,216, 62, 14,177,166, 62, 0, 0, 0, 0, 0,160,216, 62,127, 44,157, 62, 0, 0, 0, 0,237,221, 8, 63,218, 90, 91, 62,
- 0, 0, 0, 0,147,210, 3, 63,221, 95, 86, 62, 0, 0, 0, 0,129,211, 3, 63,248,168, 83, 62, 0, 0, 0, 0,170, 33, 8, 63,
-254,149, 86, 62, 0, 0, 0, 0,129,211, 3, 63,248,168, 83, 62, 0, 0, 0, 0,147,210, 3, 63,221, 95, 86, 62, 0, 0, 0, 0,
- 39,153,253, 62, 27,195, 91, 62, 0, 0, 0, 0, 8, 14,255, 62, 58,232, 86, 62, 0, 0, 0, 0, 68,214, 9, 63,246,237, 66, 62,
- 0, 0, 0, 0,237,221, 8, 63,218, 90, 91, 62, 0, 0, 0, 0,170, 33, 8, 63,254,149, 86, 62, 0, 0, 0, 0, 20,180, 8, 63,
- 94, 29, 69, 62, 0, 0, 0, 0, 8, 14,255, 62, 58,232, 86, 62, 0, 0, 0, 0, 39,153,253, 62, 27,195, 91, 62, 0, 0, 0, 0,
-104,137,251, 62,179, 92, 67, 62, 0, 0, 0, 0, 19,210,253, 62, 55,114, 69, 62, 0, 0, 0, 0,250, 61, 7, 63,148, 31, 54, 62,
- 0, 0, 0, 0, 68,214, 9, 63,246,237, 66, 62, 0, 0, 0, 0, 20,180, 8, 63, 94, 29, 69, 62, 0, 0, 0, 0,168, 82, 6, 63,
- 80, 43, 57, 62, 0, 0, 0, 0, 19,210,253, 62, 55,114, 69, 62, 0, 0, 0, 0,104,137,251, 62,179, 92, 67, 62, 0, 0, 0, 0,
-175, 87, 0, 63,251, 90, 54, 62, 0, 0, 0, 0, 48, 68, 1, 63,166, 84, 57, 62, 0, 0, 0, 0,193,202, 3, 63,214,174, 49, 62,
- 0, 0, 0, 0,250, 61, 7, 63,148, 31, 54, 62, 0, 0, 0, 0,168, 82, 6, 63, 80, 43, 57, 62, 0, 0, 0, 0,205,202, 3, 63,
- 8, 22, 54, 62, 0, 0, 0, 0, 48, 68, 1, 63,166, 84, 57, 62, 0, 0, 0, 0,175, 87, 0, 63,251, 90, 54, 62, 0, 0, 0, 0,
-193,202, 3, 63,214,174, 49, 62, 0, 0, 0, 0,205,202, 3, 63, 8, 22, 54, 62, 0, 0, 0, 0,205,202, 3, 63, 8, 22, 54, 62,
- 0, 0, 0, 0,168, 82, 6, 63, 80, 43, 57, 62, 0, 0, 0, 0,246, 24, 5, 63, 26,150, 66, 62, 0, 0, 0, 0,213,205, 3, 63,
-220,232, 64, 62, 0, 0, 0, 0, 29,131, 2, 63, 22,172, 66, 62, 0, 0, 0, 0, 48, 68, 1, 63,166, 84, 57, 62, 0, 0, 0, 0,
-205,202, 3, 63, 8, 22, 54, 62, 0, 0, 0, 0,213,205, 3, 63,220,232, 64, 62, 0, 0, 0, 0,168, 82, 6, 63, 80, 43, 57, 62,
- 0, 0, 0, 0, 20,180, 8, 63, 94, 29, 69, 62, 0, 0, 0, 0, 39, 83, 6, 63,191,114, 70, 62, 0, 0, 0, 0,246, 24, 5, 63,
- 26,150, 66, 62, 0, 0, 0, 0,185, 75, 1, 63,222,160, 70, 62, 0, 0, 0, 0, 19,210,253, 62, 55,114, 69, 62, 0, 0, 0, 0,
- 48, 68, 1, 63,166, 84, 57, 62, 0, 0, 0, 0, 29,131, 2, 63, 22,172, 66, 62, 0, 0, 0, 0, 20,180, 8, 63, 94, 29, 69, 62,
- 0, 0, 0, 0,170, 33, 8, 63,254,149, 86, 62, 0, 0, 0, 0, 4,111, 6, 63, 40,172, 76, 62, 0, 0, 0, 0, 39, 83, 6, 63,
-191,114, 70, 62, 0, 0, 0, 0,157, 51, 1, 63,158,218, 76, 62, 0, 0, 0, 0, 8, 14,255, 62, 58,232, 86, 62, 0, 0, 0, 0,
- 19,210,253, 62, 55,114, 69, 62, 0, 0, 0, 0,185, 75, 1, 63,222,160, 70, 62, 0, 0, 0, 0,170, 33, 8, 63,254,149, 86, 62,
- 0, 0, 0, 0,129,211, 3, 63,248,168, 83, 62, 0, 0, 0, 0,234,208, 3, 63,146, 43, 75, 62, 0, 0, 0, 0, 4,111, 6, 63,
- 40,172, 76, 62, 0, 0, 0, 0,234,208, 3, 63,146, 43, 75, 62, 0, 0, 0, 0,129,211, 3, 63,248,168, 83, 62, 0, 0, 0, 0,
- 8, 14,255, 62, 58,232, 86, 62, 0, 0, 0, 0,157, 51, 1, 63,158,218, 76, 62, 0, 0, 0, 0,234,208, 3, 63,146, 43, 75, 62,
- 0, 0, 0, 0,213,205, 3, 63,220,232, 64, 62, 0, 0, 0, 0,246, 24, 5, 63, 26,150, 66, 62, 0, 0, 0, 0, 4,111, 6, 63,
- 40,172, 76, 62, 0, 0, 0, 0, 29,131, 2, 63, 22,172, 66, 62, 0, 0, 0, 0,213,205, 3, 63,220,232, 64, 62, 0, 0, 0, 0,
-234,208, 3, 63,146, 43, 75, 62, 0, 0, 0, 0,157, 51, 1, 63,158,218, 76, 62, 0, 0, 0, 0, 4,111, 6, 63, 40,172, 76, 62,
- 0, 0, 0, 0,246, 24, 5, 63, 26,150, 66, 62, 0, 0, 0, 0, 39, 83, 6, 63,191,114, 70, 62, 0, 0, 0, 0,185, 75, 1, 63,
-222,160, 70, 62, 0, 0, 0, 0, 29,131, 2, 63, 22,172, 66, 62, 0, 0, 0, 0,157, 51, 1, 63,158,218, 76, 62, 0, 0, 0, 0,
- 64, 2, 13, 63, 52,215,230, 62, 0, 0, 0, 0,149,244, 14, 63, 4, 42,221, 62, 0, 0, 0, 0, 4,216, 16, 63,160, 24,224, 62,
- 0, 0, 0, 0,120,200, 15, 63, 84,255,231, 62, 0, 0, 0, 0,119,193,237, 62,190, 38,224, 62, 0, 0, 0, 0,141,144,241, 62,
-244, 52,221, 62, 0, 0, 0, 0,219,100,245, 62,184,230,230, 62, 0, 0, 0, 0, 21,211,239, 62,185, 18,232, 62, 0, 0, 0, 0,
- 71, 25, 13, 63,116,163,243, 62, 0, 0, 0, 0, 64, 2, 13, 63, 52,215,230, 62, 0, 0, 0, 0,120,200, 15, 63, 84,255,231, 62,
- 0, 0, 0, 0,184,171, 16, 63, 40,133,241, 62, 0, 0, 0, 0, 21,211,239, 62,185, 18,232, 62, 0, 0, 0, 0,219,100,245, 62,
-184,230,230, 62, 0, 0, 0, 0, 0, 45,245, 62,206,185,243, 62, 0, 0, 0, 0,218,252,237, 62, 62,160,241, 62, 0, 0, 0, 0,
-103, 59, 17, 63,120,195,255, 62, 0, 0, 0, 0, 71, 25, 13, 63,116,163,243, 62, 0, 0, 0, 0,184,171, 16, 63, 40,133,241, 62,
- 0, 0, 0, 0, 55, 44, 19, 63, 86, 21,250, 62, 0, 0, 0, 0,218,252,237, 62, 62,160,241, 62, 0, 0, 0, 0, 0, 45,245, 62,
-206,185,243, 62, 0, 0, 0, 0,209,213,236, 62, 4,250,255, 62, 0, 0, 0, 0,153,228,232, 62,154, 67,250, 62, 0, 0, 0, 0,
-149,244, 14, 63, 4, 42,221, 62, 0, 0, 0, 0, 15, 97, 17, 63,220, 34,214, 62, 0, 0, 0, 0,217, 53, 19, 63, 16,211,218, 62,
- 0, 0, 0, 0, 4,216, 16, 63,160, 24,224, 62, 0, 0, 0, 0, 8, 14,233, 62, 66,226,218, 62, 0, 0, 0, 0,217,200,236, 62,
-134, 49,214, 62, 0, 0, 0, 0,141,144,241, 62,244, 52,221, 62, 0, 0, 0, 0,119,193,237, 62,190, 38,224, 62, 0, 0, 0, 0,
- 15, 97, 17, 63,220, 34,214, 62, 0, 0, 0, 0,165,178, 27, 63,128, 17,208, 62, 0, 0, 0, 0,205,198, 26, 63,124,184,214, 62,
- 0, 0, 0, 0,217, 53, 19, 63, 16,211,218, 62, 0, 0, 0, 0,216,214,217, 62,218,224,214, 62, 0, 0, 0, 0, 6, 24,216, 62,
-128, 57,208, 62, 0, 0, 0, 0,217,200,236, 62,134, 49,214, 62, 0, 0, 0, 0, 8, 14,233, 62, 66,226,218, 62, 0, 0, 0, 0,
-165,178, 27, 63,128, 17,208, 62, 0, 0, 0, 0, 14,120, 33, 63,166,238,214, 62, 0, 0, 0, 0,156,136, 31, 63,194,138,219, 62,
- 0, 0, 0, 0,205,198, 26, 63,124,184,214, 62, 0, 0, 0, 0,254, 30,208, 62,204,177,219, 62, 0, 0, 0, 0,168, 75,204, 62,
- 62, 7,215, 62, 0, 0, 0, 0, 6, 24,216, 62,128, 57,208, 62, 0, 0, 0, 0,216,214,217, 62,218,224,214, 62, 0, 0, 0, 0,
- 14,120, 33, 63,166,238,214, 62, 0, 0, 0, 0,140,149, 38, 63, 38, 95,229, 62, 0, 0, 0, 0, 79, 9, 36, 63, 94,224,229, 62,
- 0, 0, 0, 0,156,136, 31, 63,194,138,219, 62, 0, 0, 0, 0,148,192,198, 62,182, 11,230, 62, 0, 0, 0, 0,168,140,193, 62,
- 94,129,229, 62, 0, 0, 0, 0,168, 75,204, 62, 62, 7,215, 62, 0, 0, 0, 0,254, 30,208, 62,204,177,219, 62, 0, 0, 0, 0,
-140,149, 38, 63, 38, 95,229, 62, 0, 0, 0, 0, 92, 62, 39, 63,121, 75,240, 62, 0, 0, 0, 0, 14, 49, 36, 63,253, 88,239, 62,
- 0, 0, 0, 0, 79, 9, 36, 63, 94,224,229, 62, 0, 0, 0, 0, 97, 71,198, 62,192,149,239, 62, 0, 0, 0, 0,222, 10,192, 62,
-163,128,240, 62, 0, 0, 0, 0,168,140,193, 62, 94,129,229, 62, 0, 0, 0, 0,148,192,198, 62,182, 11,230, 62, 0, 0, 0, 0,
- 92, 62, 39, 63,121, 75,240, 62, 0, 0, 0, 0, 25,113, 37, 63, 35,157,247, 62, 0, 0, 0, 0,243, 33, 35, 63, 80,143,245, 62,
- 0, 0, 0, 0, 14, 49, 36, 63,253, 88,239, 62, 0, 0, 0, 0, 87, 99,200, 62,172,217,245, 62, 0, 0, 0, 0,189,165,195, 62,
-139,232,247, 62, 0, 0, 0, 0,222, 10,192, 62,163,128,240, 62, 0, 0, 0, 0, 97, 71,198, 62,192,149,239, 62, 0, 0, 0, 0,
- 25,113, 37, 63, 35,157,247, 62, 0, 0, 0, 0, 96, 49, 30, 63,121,229,254, 62, 0, 0, 0, 0,223, 49, 29, 63,199,140,250, 62,
- 0, 0, 0, 0,243, 33, 35, 63, 80,143,245, 62, 0, 0, 0, 0,147,124,212, 62,146,215,250, 62, 0, 0, 0, 0,176,116,210, 62,
-227, 62,255, 62, 0, 0, 0, 0,189,165,195, 62,139,232,247, 62, 0, 0, 0, 0, 87, 99,200, 62,172,217,245, 62, 0, 0, 0, 0,
- 96, 49, 30, 63,121,229,254, 62, 0, 0, 0, 0,151,182, 25, 63,130, 9, 1, 63, 0, 0, 0, 0, 50,181, 25, 63,118,111,253, 62,
- 0, 0, 0, 0,223, 49, 29, 63,199,140,250, 62, 0, 0, 0, 0, 52,151,219, 62, 68,186,253, 62, 0, 0, 0, 0,213,150,219, 62,
- 50, 55, 1, 63, 0, 0, 0, 0,176,116,210, 62,227, 62,255, 62, 0, 0, 0, 0,147,124,212, 62,146,215,250, 62, 0, 0, 0, 0,
-151,182, 25, 63,130, 9, 1, 63, 0, 0, 0, 0,240, 81, 22, 63,114, 70, 1, 63, 0, 0, 0, 0,241,188, 22, 63, 28,149,253, 62,
- 0, 0, 0, 0, 50,181, 25, 63,118,111,253, 62, 0, 0, 0, 0,212,163,225, 62, 91,215,253, 62, 0, 0, 0, 0,106,128,226, 62,
-198,111, 1, 63, 0, 0, 0, 0,213,150,219, 62, 50, 55, 1, 63, 0, 0, 0, 0, 52,151,219, 62, 68,186,253, 62, 0, 0, 0, 0,
-240, 81, 22, 63,114, 70, 1, 63, 0, 0, 0, 0,103, 59, 17, 63,120,195,255, 62, 0, 0, 0, 0, 55, 44, 19, 63, 86, 21,250, 62,
- 0, 0, 0, 0,241,188, 22, 63, 28,149,253, 62, 0, 0, 0, 0,153,228,232, 62,154, 67,250, 62, 0, 0, 0, 0,209,213,236, 62,
- 4,250,255, 62, 0, 0, 0, 0,106,128,226, 62,198,111, 1, 63, 0, 0, 0, 0,212,163,225, 62, 91,215,253, 62, 0, 0, 0, 0,
-241,188, 22, 63, 28,149,253, 62, 0, 0, 0, 0, 55, 44, 19, 63, 86, 21,250, 62, 0, 0, 0, 0, 9,165, 20, 63,248, 99,247, 62,
- 0, 0, 0, 0, 20, 0, 23, 63, 6, 57,251, 62, 0, 0, 0, 0,232,232,229, 62, 74,142,247, 62, 0, 0, 0, 0,153,228,232, 62,
-154, 67,250, 62, 0, 0, 0, 0,212,163,225, 62, 91,215,253, 62, 0, 0, 0, 0,145, 26,225, 62,114,116,251, 62, 0, 0, 0, 0,
- 50,181, 25, 63,118,111,253, 62, 0, 0, 0, 0,241,188, 22, 63, 28,149,253, 62, 0, 0, 0, 0, 20, 0, 23, 63, 6, 57,251, 62,
- 0, 0, 0, 0,130,144, 25, 63,128, 7,251, 62, 0, 0, 0, 0,145, 26,225, 62,114,116,251, 62, 0, 0, 0, 0,212,163,225, 62,
- 91,215,253, 62, 0, 0, 0, 0, 52,151,219, 62, 68,186,253, 62, 0, 0, 0, 0,177,225,219, 62, 67, 75,251, 62, 0, 0, 0, 0,
-223, 49, 29, 63,199,140,250, 62, 0, 0, 0, 0, 50,181, 25, 63,118,111,253, 62, 0, 0, 0, 0,130,144, 25, 63,128, 7,251, 62,
- 0, 0, 0, 0, 80,195, 28, 63, 55,166,248, 62, 0, 0, 0, 0,177,225,219, 62, 67, 75,251, 62, 0, 0, 0, 0, 52,151,219, 62,
- 68,186,253, 62, 0, 0, 0, 0,147,124,212, 62,146,215,250, 62, 0, 0, 0, 0,233, 95,213, 62, 20,237,248, 62, 0, 0, 0, 0,
-243, 33, 35, 63, 80,143,245, 62, 0, 0, 0, 0,223, 49, 29, 63,199,140,250, 62, 0, 0, 0, 0, 80,195, 28, 63, 55,166,248, 62,
- 0, 0, 0, 0, 22,164, 33, 63,102, 75,243, 62, 0, 0, 0, 0,233, 95,213, 62, 20,237,248, 62, 0, 0, 0, 0,147,124,212, 62,
-146,215,250, 62, 0, 0, 0, 0, 87, 99,200, 62,172,217,245, 62, 0, 0, 0, 0, 65,114,203, 62,159,143,243, 62, 0, 0, 0, 0,
- 14, 49, 36, 63,253, 88,239, 62, 0, 0, 0, 0,243, 33, 35, 63, 80,143,245, 62, 0, 0, 0, 0, 22,164, 33, 63,102, 75,243, 62,
- 0, 0, 0, 0, 30,160, 34, 63,169, 47,238, 62, 0, 0, 0, 0, 65,114,203, 62,159,143,243, 62, 0, 0, 0, 0, 87, 99,200, 62,
-172,217,245, 62, 0, 0, 0, 0, 97, 71,198, 62,192,149,239, 62, 0, 0, 0, 0,188,128,201, 62,126,110,238, 62, 0, 0, 0, 0,
- 79, 9, 36, 63, 94,224,229, 62, 0, 0, 0, 0, 14, 49, 36, 63,253, 88,239, 62, 0, 0, 0, 0, 30,160, 34, 63,169, 47,238, 62,
- 0, 0, 0, 0,131,144, 34, 63,253, 87,231, 62, 0, 0, 0, 0,188,128,201, 62,126,110,238, 62, 0, 0, 0, 0, 97, 71,198, 62,
-192,149,239, 62, 0, 0, 0, 0,148,192,198, 62,182, 11,230, 62, 0, 0, 0, 0,141,190,201, 62,124,140,231, 62, 0, 0, 0, 0,
-156,136, 31, 63,194,138,219, 62, 0, 0, 0, 0, 79, 9, 36, 63, 94,224,229, 62, 0, 0, 0, 0,131,144, 34, 63,253, 87,231, 62,
- 0, 0, 0, 0, 21,208, 30, 63,174,182,221, 62, 0, 0, 0, 0,141,190,201, 62,124,140,231, 62, 0, 0, 0, 0,148,192,198, 62,
-182, 11,230, 62, 0, 0, 0, 0,254, 30,208, 62,204,177,219, 62, 0, 0, 0, 0,168,133,209, 62, 51,221,221, 62, 0, 0, 0, 0,
-205,198, 26, 63,124,184,214, 62, 0, 0, 0, 0,156,136, 31, 63,194,138,219, 62, 0, 0, 0, 0, 21,208, 30, 63,174,182,221, 62,
- 0, 0, 0, 0,128,218, 26, 63, 68,206,217, 62, 0, 0, 0, 0,168,133,209, 62, 51,221,221, 62, 0, 0, 0, 0,254, 30,208, 62,
-204,177,219, 62, 0, 0, 0, 0,216,214,217, 62,218,224,214, 62, 0, 0, 0, 0, 11,157,217, 62, 64,243,217, 62, 0, 0, 0, 0,
-217, 53, 19, 63, 16,211,218, 62, 0, 0, 0, 0,205,198, 26, 63,124,184,214, 62, 0, 0, 0, 0,128,218, 26, 63, 68,206,217, 62,
- 0, 0, 0, 0,103, 53, 20, 63,236, 84,221, 62, 0, 0, 0, 0, 11,157,217, 62, 64,243,217, 62, 0, 0, 0, 0,216,214,217, 62,
-218,224,214, 62, 0, 0, 0, 0, 8, 14,233, 62, 66,226,218, 62, 0, 0, 0, 0, 68, 5,231, 62,234,101,221, 62, 0, 0, 0, 0,
- 4,216, 16, 63,160, 24,224, 62, 0, 0, 0, 0,217, 53, 19, 63, 16,211,218, 62, 0, 0, 0, 0,103, 53, 20, 63,236, 84,221, 62,
- 0, 0, 0, 0, 81, 87, 18, 63, 33,175,226, 62, 0, 0, 0, 0, 68, 5,231, 62,234,101,221, 62, 0, 0, 0, 0, 8, 14,233, 62,
- 66,226,218, 62, 0, 0, 0, 0,119,193,237, 62,190, 38,224, 62, 0, 0, 0, 0,180,187,234, 62,249,190,226, 62, 0, 0, 0, 0,
- 55, 44, 19, 63, 86, 21,250, 62, 0, 0, 0, 0,184,171, 16, 63, 40,133,241, 62, 0, 0, 0, 0, 98, 68, 18, 63,150,197,240, 62,
- 0, 0, 0, 0, 9,165, 20, 63,248, 99,247, 62, 0, 0, 0, 0, 35,197,234, 62,215,226,240, 62, 0, 0, 0, 0,218,252,237, 62,
- 62,160,241, 62, 0, 0, 0, 0,153,228,232, 62,154, 67,250, 62, 0, 0, 0, 0,232,232,229, 62, 74,142,247, 62, 0, 0, 0, 0,
-184,171, 16, 63, 40,133,241, 62, 0, 0, 0, 0,120,200, 15, 63, 84,255,231, 62, 0, 0, 0, 0,161, 4, 18, 63,138,184,232, 62,
- 0, 0, 0, 0, 98, 68, 18, 63,150,197,240, 62, 0, 0, 0, 0,154, 85,235, 62, 92,206,232, 62, 0, 0, 0, 0, 21,211,239, 62,
-185, 18,232, 62, 0, 0, 0, 0,218,252,237, 62, 62,160,241, 62, 0, 0, 0, 0, 35,197,234, 62,215,226,240, 62, 0, 0, 0, 0,
-120,200, 15, 63, 84,255,231, 62, 0, 0, 0, 0, 4,216, 16, 63,160, 24,224, 62, 0, 0, 0, 0, 81, 87, 18, 63, 33,175,226, 62,
- 0, 0, 0, 0,161, 4, 18, 63,138,184,232, 62, 0, 0, 0, 0,180,187,234, 62,249,190,226, 62, 0, 0, 0, 0,119,193,237, 62,
-190, 38,224, 62, 0, 0, 0, 0, 21,211,239, 62,185, 18,232, 62, 0, 0, 0, 0,154, 85,235, 62, 92,206,232, 62, 0, 0, 0, 0,
-148,232, 3, 63,164, 17, 11, 63, 0, 0, 0, 0, 67,169, 11, 63, 18,197, 11, 63, 0, 0, 0, 0,216,120, 13, 63,160, 81, 23, 63,
- 0, 0, 0, 0,147, 15, 4, 63,227,248, 23, 63, 0, 0, 0, 0, 64, 27,245, 62,100,166, 23, 63, 0, 0, 0, 0, 55, 72,248, 62,
- 91,232, 11, 63, 0, 0, 0, 0,148,232, 3, 63,164, 17, 11, 63, 0, 0, 0, 0,147, 15, 4, 63,227,248, 23, 63, 0, 0, 0, 0,
- 67,169, 11, 63, 18,197, 11, 63, 0, 0, 0, 0,173,244, 22, 63,236,215, 11, 63, 0, 0, 0, 0, 94,233, 23, 63,186, 60, 16, 63,
- 0, 0, 0, 0,216,120, 13, 63,160, 81, 23, 63, 0, 0, 0, 0,109,130,223, 62,118,165, 16, 63, 0, 0, 0, 0,220, 89,225, 62,
- 77, 42, 12, 63, 0, 0, 0, 0, 55, 72,248, 62, 91,232, 11, 63, 0, 0, 0, 0, 64, 27,245, 62,100,166, 23, 63, 0, 0, 0, 0,
-173,244, 22, 63,236,215, 11, 63, 0, 0, 0, 0, 28,105, 26, 63,242,194, 11, 63, 0, 0, 0, 0,220, 56, 28, 63, 66,250, 14, 63,
- 0, 0, 0, 0, 94,233, 23, 63,186, 60, 16, 63, 0, 0, 0, 0,157,161,214, 62,219,110, 15, 63, 0, 0, 0, 0,220, 73,218, 62,
-169, 31, 12, 63, 0, 0, 0, 0,220, 89,225, 62, 77, 42, 12, 63, 0, 0, 0, 0,109,130,223, 62,118,165, 16, 63, 0, 0, 0, 0,
- 28,105, 26, 63,242,194, 11, 63, 0, 0, 0, 0,220,158, 34, 63,175, 23, 10, 63, 0, 0, 0, 0,109, 44, 39, 63,107,221, 19, 63,
- 0, 0, 0, 0,220, 56, 28, 63, 66,250, 14, 63, 0, 0, 0, 0,156, 26,192, 62, 31,139, 20, 63, 0, 0, 0, 0,124,109,201, 62,
- 72,121, 10, 63, 0, 0, 0, 0,220, 73,218, 62,169, 31, 12, 63, 0, 0, 0, 0,157,161,214, 62,219,110, 15, 63, 0, 0, 0, 0,
-220,158, 34, 63,175, 23, 10, 63, 0, 0, 0, 0,238, 88, 46, 63,146,223, 2, 63, 0, 0, 0, 0,242, 80, 56, 63, 44,244, 6, 63,
- 0, 0, 0, 0,109, 44, 39, 63,107,221, 19, 63, 0, 0, 0, 0, 61,208,156, 62,204, 16, 7, 63, 0, 0, 0, 0,173, 87,177, 62,
-102, 9, 3, 63, 0, 0, 0, 0,124,109,201, 62, 72,121, 10, 63, 0, 0, 0, 0,156, 26,192, 62, 31,139, 20, 63, 0, 0, 0, 0,
-238, 88, 46, 63,146,223, 2, 63, 0, 0, 0, 0, 62,134, 48, 63, 37,107,249, 62, 0, 0, 0, 0,195,173, 54, 63,239,106,252, 62,
- 0, 0, 0, 0,242, 80, 56, 63, 44,244, 6, 63, 0, 0, 0, 0,202, 36,160, 62, 94, 51,252, 62, 0, 0, 0, 0,172,229,172, 62,
-116,127,249, 62, 0, 0, 0, 0,173, 87,177, 62,102, 9, 3, 63, 0, 0, 0, 0, 61,208,156, 62,204, 16, 7, 63, 0, 0, 0, 0,
- 62,134, 48, 63, 37,107,249, 62, 0, 0, 0, 0, 38,229, 50, 63,169, 32,226, 62, 0, 0, 0, 0,154, 88, 53, 63,240,146,221, 62,
- 0, 0, 0, 0,195,173, 54, 63,239,106,252, 62, 0, 0, 0, 0,128,172,162, 62, 17,169,221, 62, 0, 0, 0, 0,196, 39,168, 62,
-206, 11,226, 62, 0, 0, 0, 0,172,229,172, 62,116,127,249, 62, 0, 0, 0, 0,202, 36,160, 62, 94, 51,252, 62, 0, 0, 0, 0,
- 38,229, 50, 63,169, 32,226, 62, 0, 0, 0, 0, 87, 57, 43, 63,222, 58,206, 62, 0, 0, 0, 0,240,117, 49, 63,164,138,198, 62,
- 0, 0, 0, 0,154, 88, 53, 63,240,146,221, 62, 0, 0, 0, 0,147,137,172, 62,148, 19,198, 62, 0, 0, 0, 0,130,207,184, 62,
- 42, 27,206, 62, 0, 0, 0, 0,196, 39,168, 62,206, 11,226, 62, 0, 0, 0, 0,128,172,162, 62, 17,169,221, 62, 0, 0, 0, 0,
- 87, 57, 43, 63,222, 58,206, 62, 0, 0, 0, 0, 91, 94, 37, 63,107,120,187, 62, 0, 0, 0, 0,156,160, 41, 63, 56,175,182, 62,
- 0, 0, 0, 0,240,117, 49, 63,164,138,198, 62, 0, 0, 0, 0,202,212,188, 62,245,163,182, 62, 0, 0, 0, 0,156, 28,197, 62,
-166,130,187, 62, 0, 0, 0, 0,130,207,184, 62, 42, 27,206, 62, 0, 0, 0, 0,147,137,172, 62,148, 19,198, 62, 0, 0, 0, 0,
-165,252, 48, 63,133, 33, 85, 62, 0, 0, 0, 0,112, 54, 48, 63, 20, 19, 96, 62, 0, 0, 0, 0,172, 36, 46, 63,208, 7,129, 62,
- 0, 0, 0, 0,240, 17, 42, 63,129, 84, 97, 62, 0, 0, 0, 0, 76, 71,181, 62,204,200,131, 62, 0, 0, 0, 0,117,121,175, 62,
-183,185,106, 62, 0, 0, 0, 0,217, 24,172, 62, 21,237, 92, 62, 0, 0, 0, 0,138, 81,187, 62, 59, 40,103, 62, 0, 0, 0, 0,
-204, 89, 48, 63,134,194, 4, 62, 0, 0, 0, 0,165,252, 48, 63,133, 33, 85, 62, 0, 0, 0, 0,240, 17, 42, 63,129, 84, 97, 62,
- 0, 0, 0, 0,160,125, 37, 63, 50,211, 46, 62, 0, 0, 0, 0,138, 81,187, 62, 59, 40,103, 62, 0, 0, 0, 0,217, 24,172, 62,
- 21,237, 92, 62, 0, 0, 0, 0, 94,197,172, 62,109,200, 4, 62, 0, 0, 0, 0, 25,121,195, 62, 46,253, 48, 62, 0, 0, 0, 0,
- 11, 44, 20, 63, 20, 26,163, 61, 0, 0, 0, 0,204, 89, 48, 63,134,194, 4, 62, 0, 0, 0, 0,160,125, 37, 63, 50,211, 46, 62,
- 0, 0, 0, 0, 40, 92, 24, 63,214,184, 21, 62, 0, 0, 0, 0, 25,121,195, 62, 46,253, 48, 62, 0, 0, 0, 0, 94,197,172, 62,
-109,200, 4, 62, 0, 0, 0, 0,140,122,230, 62,202,248,161, 61, 0, 0, 0, 0,216, 13,222, 62,222,116, 22, 62, 0, 0, 0, 0,
-174,254, 16, 63, 94, 45, 34, 62, 0, 0, 0, 0,219,199, 3, 63, 18, 28,229, 61, 0, 0, 0, 0, 11, 44, 20, 63, 20, 26,163, 61,
- 0, 0, 0, 0, 40, 92, 24, 63,214,184, 21, 62, 0, 0, 0, 0,140,122,230, 62,202,248,161, 61, 0, 0, 0, 0,219,199, 3, 63,
- 18, 28,229, 61, 0, 0, 0, 0,140,248,236, 62,182,202, 34, 62, 0, 0, 0, 0,216, 13,222, 62,222,116, 22, 62, 0, 0, 0, 0,
-184,152, 21, 63,182, 47, 53, 62, 0, 0, 0, 0,174,254, 16, 63, 94, 45, 34, 62, 0, 0, 0, 0, 40, 92, 24, 63,214,184, 21, 62,
- 0, 0, 0, 0,209, 52, 25, 63, 76,140, 51, 62, 0, 0, 0, 0,216, 13,222, 62,222,116, 22, 62, 0, 0, 0, 0,140,248,236, 62,
-182,202, 34, 62, 0, 0, 0, 0,183,207,227, 62,250, 75, 54, 62, 0, 0, 0, 0,229,137,220, 62,185,228, 52, 62, 0, 0, 0, 0,
-137, 57, 22, 63, 81, 93, 61, 62, 0, 0, 0, 0,184,152, 21, 63,182, 47, 53, 62, 0, 0, 0, 0,209, 52, 25, 63, 76,140, 51, 62,
- 0, 0, 0, 0,193,166, 30, 63,114,168, 73, 62, 0, 0, 0, 0,229,137,220, 62,185,228, 52, 62, 0, 0, 0, 0,183,207,227, 62,
-250, 75, 54, 62, 0, 0, 0, 0,122,152,226, 62,190,166, 62, 62, 0, 0, 0, 0, 54,198,209, 62, 18,240, 75, 62, 0, 0, 0, 0,
-250,249, 22, 63,160,251, 88, 62, 0, 0, 0, 0,137, 57, 22, 63, 81, 93, 61, 62, 0, 0, 0, 0,193,166, 30, 63,114,168, 73, 62,
- 0, 0, 0, 0, 75, 0, 36, 63,229, 47,116, 62, 0, 0, 0, 0, 54,198,209, 62, 18,240, 75, 62, 0, 0, 0, 0,122,152,226, 62,
-190,166, 62, 62, 0, 0, 0, 0, 90, 83,225, 62, 21,153, 90, 62, 0, 0, 0, 0,211,231,199, 62,216,237,119, 62, 0, 0, 0, 0,
-193,166, 30, 63,114,168, 73, 62, 0, 0, 0, 0,160,125, 37, 63, 50,211, 46, 62, 0, 0, 0, 0,240, 17, 42, 63,129, 84, 97, 62,
- 0, 0, 0, 0, 75, 0, 36, 63,229, 47,116, 62, 0, 0, 0, 0,138, 81,187, 62, 59, 40,103, 62, 0, 0, 0, 0, 25,121,195, 62,
- 46,253, 48, 62, 0, 0, 0, 0, 54,198,209, 62, 18,240, 75, 62, 0, 0, 0, 0,211,231,199, 62,216,237,119, 62, 0, 0, 0, 0,
-193,166, 30, 63,114,168, 73, 62, 0, 0, 0, 0,209, 52, 25, 63, 76,140, 51, 62, 0, 0, 0, 0, 40, 92, 24, 63,214,184, 21, 62,
- 0, 0, 0, 0,160,125, 37, 63, 50,211, 46, 62, 0, 0, 0, 0,216, 13,222, 62,222,116, 22, 62, 0, 0, 0, 0,229,137,220, 62,
-185,228, 52, 62, 0, 0, 0, 0, 54,198,209, 62, 18,240, 75, 62, 0, 0, 0, 0, 25,121,195, 62, 46,253, 48, 62, 0, 0, 0, 0,
- 37,163, 36, 63,191,168,140, 62, 0, 0, 0, 0, 75, 0, 36, 63,229, 47,116, 62, 0, 0, 0, 0,240, 17, 42, 63,129, 84, 97, 62,
- 0, 0, 0, 0,172, 36, 46, 63,208, 7,129, 62, 0, 0, 0, 0,138, 81,187, 62, 59, 40,103, 62, 0, 0, 0, 0,211,231,199, 62,
-216,237,119, 62, 0, 0, 0, 0, 6, 64,199, 62,105, 6,142, 62, 0, 0, 0, 0, 76, 71,181, 62,204,200,131, 62, 0, 0, 0, 0,
- 20, 81, 25, 63, 17, 56,132, 62, 0, 0, 0, 0,250,249, 22, 63,160,251, 88, 62, 0, 0, 0, 0, 75, 0, 36, 63,229, 47,116, 62,
- 0, 0, 0, 0, 37,163, 36, 63,191,168,140, 62, 0, 0, 0, 0,211,231,199, 62,216,237,119, 62, 0, 0, 0, 0, 90, 83,225, 62,
- 21,153, 90, 62, 0, 0, 0, 0, 54, 42,221, 62,209, 25,133, 62, 0, 0, 0, 0, 6, 64,199, 62,105, 6,142, 62, 0, 0, 0, 0,
-208, 46, 27, 63,149, 35,148, 62, 0, 0, 0, 0, 91, 60, 36, 63,221,222,150, 62, 0, 0, 0, 0,222,170, 33, 63, 74,126,158, 62,
- 0, 0, 0, 0, 36,177, 27, 63,158,151,156, 62, 0, 0, 0, 0, 72,234,204, 62, 56, 63,159, 62, 0, 0, 0, 0,150,245,199, 62,
- 85, 15,152, 62, 0, 0, 0, 0,238,166,217, 62,229,221,148, 62, 0, 0, 0, 0, 0,160,216, 62,127, 44,157, 62, 0, 0, 0, 0,
- 20, 81, 25, 63, 17, 56,132, 62, 0, 0, 0, 0, 37,163, 36, 63,191,168,140, 62, 0, 0, 0, 0, 91, 60, 36, 63,221,222,150, 62,
- 0, 0, 0, 0,208, 46, 27, 63,149, 35,148, 62, 0, 0, 0, 0,150,245,199, 62, 85, 15,152, 62, 0, 0, 0, 0, 6, 64,199, 62,
-105, 6,142, 62, 0, 0, 0, 0, 54, 42,221, 62,209, 25,133, 62, 0, 0, 0, 0,238,166,217, 62,229,221,148, 62, 0, 0, 0, 0,
-111,239, 27, 63,159, 77,166, 62, 0, 0, 0, 0, 36,177, 27, 63,158,151,156, 62, 0, 0, 0, 0,222,170, 33, 63, 74,126,158, 62,
- 0, 0, 0, 0,102,212, 31, 63,144,192,164, 62, 0, 0, 0, 0, 72,234,204, 62, 56, 63,159, 62, 0, 0, 0, 0, 0,160,216, 62,
-127, 44,157, 62, 0, 0, 0, 0,115, 21,216, 62, 14,177,166, 62, 0, 0, 0, 0, 17,119,208, 62,201, 65,165, 62, 0, 0, 0, 0,
-111,239, 27, 63,159, 77,166, 62, 0, 0, 0, 0,102,212, 31, 63,144,192,164, 62, 0, 0, 0, 0,156,160, 41, 63, 56,175,182, 62,
- 0, 0, 0, 0, 91, 94, 37, 63,107,120,187, 62, 0, 0, 0, 0,202,212,188, 62,245,163,182, 62, 0, 0, 0, 0, 17,119,208, 62,
-201, 65,165, 62, 0, 0, 0, 0,115, 21,216, 62, 14,177,166, 62, 0, 0, 0, 0,156, 28,197, 62,166,130,187, 62, 0, 0, 0, 0,
-104,119,194, 62,164,189, 82, 63, 0, 0, 0, 0, 23, 73,212, 62,152,239, 90, 63, 0, 0, 0, 0,100,192,205, 62, 46,238, 97, 63,
- 0, 0, 0, 0, 38, 56,185, 62, 72,154, 91, 63, 0, 0, 0, 0,228, 94,141, 62, 86,234,100, 63, 0, 0, 0, 0, 84, 66,150, 62,
-114,154, 94, 63, 0, 0, 0, 0,230, 86,173, 62, 79, 66, 98, 63, 0, 0, 0, 0, 20,143,162, 62, 44,173,106, 63, 0, 0, 0, 0,
- 72,122, 87, 63,216, 8, 62, 62, 0, 0, 0, 0,202,106, 84, 63,137,185,113, 62, 0, 0, 0, 0,226, 77, 72, 63,204, 21,121, 62,
- 0, 0, 0, 0,158,225, 71, 63,113, 34, 68, 62, 0, 0, 0, 0,132, 32,137, 62,181, 65,121, 62, 0, 0, 0, 0,168,179,107, 62,
-139,127,103, 62, 0, 0, 0, 0,210,147,114, 62,212,116, 61, 62, 0, 0, 0, 0,248,125,142, 62, 30, 4, 80, 62, 0, 0, 0, 0,
-158,225, 71, 63,113, 34, 68, 62, 0, 0, 0, 0,226, 77, 72, 63,204, 21,121, 62, 0, 0, 0, 0, 8, 7, 51, 63, 5,186,130, 62,
- 0, 0, 0, 0, 3,166, 49, 63,232, 57, 96, 62, 0, 0, 0, 0, 18,197,172, 62, 41,112,133, 62, 0, 0, 0, 0,132, 32,137, 62,
-181, 65,121, 62, 0, 0, 0, 0,248,125,142, 62, 30, 4, 80, 62, 0, 0, 0, 0,121,228,174, 62, 52, 79,109, 62, 0, 0, 0, 0,
- 3,166, 49, 63,232, 57, 96, 62, 0, 0, 0, 0, 8, 7, 51, 63, 5,186,130, 62, 0, 0, 0, 0,172, 36, 46, 63,208, 7,129, 62,
- 0, 0, 0, 0,112, 54, 48, 63, 20, 19, 96, 62, 0, 0, 0, 0, 76, 71,181, 62,204,200,131, 62, 0, 0, 0, 0, 18,197,172, 62,
- 41,112,133, 62, 0, 0, 0, 0,121,228,174, 62, 52, 79,109, 62, 0, 0, 0, 0,117,121,175, 62,183,185,106, 62, 0, 0, 0, 0,
- 37,163, 36, 63,191,168,140, 62, 0, 0, 0, 0,172, 36, 46, 63,208, 7,129, 62, 0, 0, 0, 0, 8, 7, 51, 63, 5,186,130, 62,
- 0, 0, 0, 0, 91, 60, 36, 63,221,222,150, 62, 0, 0, 0, 0, 18,197,172, 62, 41,112,133, 62, 0, 0, 0, 0, 76, 71,181, 62,
-204,200,131, 62, 0, 0, 0, 0, 6, 64,199, 62,105, 6,142, 62, 0, 0, 0, 0,150,245,199, 62, 85, 15,152, 62, 0, 0, 0, 0,
-154, 88, 53, 63,240,146,221, 62, 0, 0, 0, 0,240,117, 49, 63,164,138,198, 62, 0, 0, 0, 0,224, 19, 69, 63, 24, 68,190, 62,
- 0, 0, 0, 0, 53, 64, 74, 63,171, 31,224, 62, 0, 0, 0, 0,250, 78,134, 62,148,213,186, 62, 0, 0, 0, 0,147,137,172, 62,
-148, 19,198, 62, 0, 0, 0, 0,128,172,162, 62, 17,169,221, 62, 0, 0, 0, 0,184,112,114, 62,248,169,220, 62, 0, 0, 0, 0,
- 54, 74,214, 62, 20, 55, 70, 63, 0, 0, 0, 0, 48,130,233, 62,188, 69, 83, 63, 0, 0, 0, 0, 23, 73,212, 62,152,239, 90, 63,
- 0, 0, 0, 0,104,119,194, 62,164,189, 82, 63, 0, 0, 0, 0, 84, 66,150, 62,114,154, 94, 63, 0, 0, 0, 0, 66, 1,153, 62,
-245,149, 81, 63, 0, 0, 0, 0, 38, 56,185, 62,102,110, 83, 63, 0, 0, 0, 0,230, 86,173, 62, 79, 66, 98, 63, 0, 0, 0, 0,
-106,242, 66, 63,202, 94, 25, 63, 0, 0, 0, 0,190,100, 70, 63,222,234, 15, 63, 0, 0, 0, 0, 90,189, 77, 63,233, 88, 17, 63,
- 0, 0, 0, 0, 8,206, 74, 63, 88,118, 27, 63, 0, 0, 0, 0, 22, 32, 96, 62, 66, 60, 16, 63, 0, 0, 0, 0, 86, 87,125, 62,
-174, 5, 15, 63, 0, 0, 0, 0, 78,187,132, 62,180, 44, 24, 63, 0, 0, 0, 0, 26, 79,108, 62,124, 1, 26, 63, 0, 0, 0, 0,
- 8,206, 74, 63, 88,118, 27, 63, 0, 0, 0, 0, 90,189, 77, 63,233, 88, 17, 63, 0, 0, 0, 0, 72,139, 85, 63,103, 51, 19, 63,
- 0, 0, 0, 0,220,119, 85, 63, 77, 71, 31, 63, 0, 0, 0, 0, 64,199, 64, 62, 26, 40, 18, 63, 0, 0, 0, 0, 22, 32, 96, 62,
- 66, 60, 16, 63, 0, 0, 0, 0, 26, 79,108, 62,124, 1, 26, 63, 0, 0, 0, 0, 44,191, 67, 62, 90, 89, 30, 63, 0, 0, 0, 0,
-220,119, 85, 63, 77, 71, 31, 63, 0, 0, 0, 0, 72,139, 85, 63,103, 51, 19, 63, 0, 0, 0, 0,228,213,100, 63, 72,156, 20, 63,
- 0, 0, 0, 0, 18, 82, 96, 63,128,133, 34, 63, 0, 0, 0, 0,226, 50, 1, 62,184, 68, 20, 63, 0, 0, 0, 0, 64,199, 64, 62,
- 26, 40, 18, 63, 0, 0, 0, 0, 44,191, 67, 62, 90, 89, 30, 63, 0, 0, 0, 0,194,204, 24, 62, 32,186, 34, 63, 0, 0, 0, 0,
-242, 80, 56, 63, 44,244, 6, 63, 0, 0, 0, 0,195,173, 54, 63,239,106,252, 62, 0, 0, 0, 0,115,205, 60, 63,213,150,253, 62,
- 0, 0, 0, 0,166, 14, 64, 63, 81, 80, 4, 63, 0, 0, 0, 0,190, 85,147, 62, 91,176,252, 62, 0, 0, 0, 0,202, 36,160, 62,
- 94, 51,252, 62, 0, 0, 0, 0, 61,208,156, 62,204, 16, 7, 63, 0, 0, 0, 0,160,121,140, 62, 74,197, 3, 63, 0, 0, 0, 0,
-166, 14, 64, 63, 81, 80, 4, 63, 0, 0, 0, 0,115,205, 60, 63,213,150,253, 62, 0, 0, 0, 0, 68,103, 73, 63,233,248, 0, 63,
- 0, 0, 0, 0,248, 12, 75, 63, 64,206, 8, 63, 0, 0, 0, 0,144, 59,115, 62,102,143,255, 62, 0, 0, 0, 0,190, 85,147, 62,
- 91,176,252, 62, 0, 0, 0, 0,160,121,140, 62, 74,197, 3, 63, 0, 0, 0, 0, 78,135,107, 62, 88,182, 7, 63, 0, 0, 0, 0,
-248, 12, 75, 63, 64,206, 8, 63, 0, 0, 0, 0, 68,103, 73, 63,233,248, 0, 63, 0, 0, 0, 0,239,151, 82, 63, 86,223, 3, 63,
- 0, 0, 0, 0,181,227, 82, 63,189,102, 11, 63, 0, 0, 0, 0, 82, 17, 77, 62,162, 98, 2, 63, 0, 0, 0, 0,144, 59,115, 62,
-102,143,255, 62, 0, 0, 0, 0, 78,135,107, 62, 88,182, 7, 63, 0, 0, 0, 0,202, 98, 75, 62,108, 43, 10, 63, 0, 0, 0, 0,
-181,227, 82, 63,189,102, 11, 63, 0, 0, 0, 0,239,151, 82, 63, 86,223, 3, 63, 0, 0, 0, 0, 92,224, 91, 63,239,144, 5, 63,
- 0, 0, 0, 0,161,148, 90, 63,146, 95, 13, 63, 0, 0, 0, 0,178, 40, 38, 62, 14,230, 3, 63, 0, 0, 0, 0, 82, 17, 77, 62,
-162, 98, 2, 63, 0, 0, 0, 0,202, 98, 75, 62,108, 43, 10, 63, 0, 0, 0, 0, 10,162, 43, 62, 8, 50, 12, 63, 0, 0, 0, 0,
-120, 89,103, 63,105, 76, 2, 63, 0, 0, 0, 0,170,179,103, 63,142,105, 12, 63, 0, 0, 0, 0,161,148, 90, 63,146, 95, 13, 63,
- 0, 0, 0, 0, 92,224, 91, 63,239,144, 5, 63, 0, 0, 0, 0, 10,162, 43, 62, 8, 50, 12, 63, 0, 0, 0, 0,168, 41,231, 61,
-158, 83, 11, 63, 0, 0, 0, 0,116,128,234, 61,200, 39, 0, 63, 0, 0, 0, 0,178, 40, 38, 62, 14,230, 3, 63, 0, 0, 0, 0,
-228,213,100, 63, 72,156, 20, 63, 0, 0, 0, 0, 72,139, 85, 63,103, 51, 19, 63, 0, 0, 0, 0,161,148, 90, 63,146, 95, 13, 63,
- 0, 0, 0, 0,170,179,103, 63,142,105, 12, 63, 0, 0, 0, 0, 10,162, 43, 62, 8, 50, 12, 63, 0, 0, 0, 0, 64,199, 64, 62,
- 26, 40, 18, 63, 0, 0, 0, 0,226, 50, 1, 62,184, 68, 20, 63, 0, 0, 0, 0,168, 41,231, 61,158, 83, 11, 63, 0, 0, 0, 0,
- 72,139, 85, 63,103, 51, 19, 63, 0, 0, 0, 0, 90,189, 77, 63,233, 88, 17, 63, 0, 0, 0, 0,181,227, 82, 63,189,102, 11, 63,
- 0, 0, 0, 0,161,148, 90, 63,146, 95, 13, 63, 0, 0, 0, 0,202, 98, 75, 62,108, 43, 10, 63, 0, 0, 0, 0, 22, 32, 96, 62,
- 66, 60, 16, 63, 0, 0, 0, 0, 64,199, 64, 62, 26, 40, 18, 63, 0, 0, 0, 0, 10,162, 43, 62, 8, 50, 12, 63, 0, 0, 0, 0,
- 90,189, 77, 63,233, 88, 17, 63, 0, 0, 0, 0,190,100, 70, 63,222,234, 15, 63, 0, 0, 0, 0,248, 12, 75, 63, 64,206, 8, 63,
- 0, 0, 0, 0,181,227, 82, 63,189,102, 11, 63, 0, 0, 0, 0, 78,135,107, 62, 88,182, 7, 63, 0, 0, 0, 0, 86, 87,125, 62,
-174, 5, 15, 63, 0, 0, 0, 0, 22, 32, 96, 62, 66, 60, 16, 63, 0, 0, 0, 0,202, 98, 75, 62,108, 43, 10, 63, 0, 0, 0, 0,
-190,100, 70, 63,222,234, 15, 63, 0, 0, 0, 0, 82,235, 60, 63, 27, 12, 12, 63, 0, 0, 0, 0,166, 14, 64, 63, 81, 80, 4, 63,
- 0, 0, 0, 0,248, 12, 75, 63, 64,206, 8, 63, 0, 0, 0, 0,160,121,140, 62, 74,197, 3, 63, 0, 0, 0, 0, 78,230,145, 62,
-148,225, 11, 63, 0, 0, 0, 0, 86, 87,125, 62,174, 5, 15, 63, 0, 0, 0, 0, 78,135,107, 62, 88,182, 7, 63, 0, 0, 0, 0,
- 31,118, 57, 63,230, 79, 12, 63, 0, 0, 0, 0,242, 80, 56, 63, 44,244, 6, 63, 0, 0, 0, 0,166, 14, 64, 63, 81, 80, 4, 63,
- 0, 0, 0, 0, 82,235, 60, 63, 27, 12, 12, 63, 0, 0, 0, 0,160,121,140, 62, 74,197, 3, 63, 0, 0, 0, 0, 61,208,156, 62,
-204, 16, 7, 63, 0, 0, 0, 0, 0,199,152, 62, 13,133, 12, 63, 0, 0, 0, 0, 78,230,145, 62,148,225, 11, 63, 0, 0, 0, 0,
-195,240, 57, 63, 10,138, 23, 63, 0, 0, 0, 0, 82,235, 60, 63, 27, 12, 12, 63, 0, 0, 0, 0,190,100, 70, 63,222,234, 15, 63,
- 0, 0, 0, 0,106,242, 66, 63,202, 94, 25, 63, 0, 0, 0, 0, 86, 87,125, 62,174, 5, 15, 63, 0, 0, 0, 0, 78,230,145, 62,
-148,225, 11, 63, 0, 0, 0, 0,247, 7,150, 62, 96, 12, 23, 63, 0, 0, 0, 0, 78,187,132, 62,180, 44, 24, 63, 0, 0, 0, 0,
-216,120, 13, 63,160, 81, 23, 63, 0, 0, 0, 0, 94,233, 23, 63,186, 60, 16, 63, 0, 0, 0, 0,220, 56, 28, 63, 66,250, 14, 63,
- 0, 0, 0, 0,109, 44, 39, 63,107,221, 19, 63, 0, 0, 0, 0,157,161,214, 62,219,110, 15, 63, 0, 0, 0, 0,109,130,223, 62,
-118,165, 16, 63, 0, 0, 0, 0, 64, 27,245, 62,100,166, 23, 63, 0, 0, 0, 0,156, 26,192, 62, 31,139, 20, 63, 0, 0, 0, 0,
-176, 29, 56, 63, 88,206, 20, 63, 0, 0, 0, 0, 31,118, 57, 63,230, 79, 12, 63, 0, 0, 0, 0, 82,235, 60, 63, 27, 12, 12, 63,
- 0, 0, 0, 0,195,240, 57, 63, 10,138, 23, 63, 0, 0, 0, 0, 78,230,145, 62,148,225, 11, 63, 0, 0, 0, 0, 0,199,152, 62,
- 13,133, 12, 63, 0, 0, 0, 0,239,211,153, 62,220,159, 20, 63, 0, 0, 0, 0,247, 7,150, 62, 96, 12, 23, 63, 0, 0, 0, 0,
- 48,148, 54, 63,220,206, 22, 63, 0, 0, 0, 0,176, 29, 56, 63, 88,206, 20, 63, 0, 0, 0, 0,195,240, 57, 63, 10,138, 23, 63,
- 0, 0, 0, 0,247, 7,150, 62, 96, 12, 23, 63, 0, 0, 0, 0,239,211,153, 62,220,159, 20, 63, 0, 0, 0, 0,108,106,156, 62,
-146,154, 22, 63, 0, 0, 0, 0,195,173, 54, 63,239,106,252, 62, 0, 0, 0, 0,154, 88, 53, 63,240,146,221, 62, 0, 0, 0, 0,
- 53, 64, 74, 63,171, 31,224, 62, 0, 0, 0, 0,115,205, 60, 63,213,150,253, 62, 0, 0, 0, 0,184,112,114, 62,248,169,220, 62,
- 0, 0, 0, 0,128,172,162, 62, 17,169,221, 62, 0, 0, 0, 0,202, 36,160, 62, 94, 51,252, 62, 0, 0, 0, 0,190, 85,147, 62,
- 91,176,252, 62, 0, 0, 0, 0, 53, 64, 74, 63,171, 31,224, 62, 0, 0, 0, 0,217,106, 81, 63, 14,214,232, 62, 0, 0, 0, 0,
- 68,103, 73, 63,233,248, 0, 63, 0, 0, 0, 0,115,205, 60, 63,213,150,253, 62, 0, 0, 0, 0,144, 59,115, 62,102,143,255, 62,
- 0, 0, 0, 0, 88, 93, 84, 62, 50,105,228, 62, 0, 0, 0, 0,184,112,114, 62,248,169,220, 62, 0, 0, 0, 0,190, 85,147, 62,
- 91,176,252, 62, 0, 0, 0, 0,217,106, 81, 63, 14,214,232, 62, 0, 0, 0, 0,106,154, 93, 63,226, 26,233, 62, 0, 0, 0, 0,
-239,151, 82, 63, 86,223, 3, 63, 0, 0, 0, 0, 68,103, 73, 63,233,248, 0, 63, 0, 0, 0, 0, 82, 17, 77, 62,162, 98, 2, 63,
- 0, 0, 0, 0,128, 1, 33, 62, 70,210,226, 62, 0, 0, 0, 0, 88, 93, 84, 62, 50,105,228, 62, 0, 0, 0, 0,144, 59,115, 62,
-102,143,255, 62, 0, 0, 0, 0,120, 89,103, 63,105, 76, 2, 63, 0, 0, 0, 0, 92,224, 91, 63,239,144, 5, 63, 0, 0, 0, 0,
-239,151, 82, 63, 86,223, 3, 63, 0, 0, 0, 0,106,154, 93, 63,226, 26,233, 62, 0, 0, 0, 0, 82, 17, 77, 62,162, 98, 2, 63,
- 0, 0, 0, 0,178, 40, 38, 62, 14,230, 3, 63, 0, 0, 0, 0,116,128,234, 61,200, 39, 0, 63, 0, 0, 0, 0,128, 1, 33, 62,
- 70,210,226, 62, 0, 0, 0, 0, 8, 7, 51, 63, 5,186,130, 62, 0, 0, 0, 0,226, 77, 72, 63,204, 21,121, 62, 0, 0, 0, 0,
-154,254, 73, 63,178, 82,140, 62, 0, 0, 0, 0, 90,188, 56, 63,103,207,159, 62, 0, 0, 0, 0,249,249,130, 62,246,175,137, 62,
- 0, 0, 0, 0,132, 32,137, 62,181, 65,121, 62, 0, 0, 0, 0, 18,197,172, 62, 41,112,133, 62, 0, 0, 0, 0,192, 5,161, 62,
-228, 40,159, 62, 0, 0, 0, 0,224, 19, 69, 63, 24, 68,190, 62, 0, 0, 0, 0, 90,188, 56, 63,103,207,159, 62, 0, 0, 0, 0,
-154,254, 73, 63,178, 82,140, 62, 0, 0, 0, 0,216,217, 77, 63, 7,228,157, 62, 0, 0, 0, 0,249,249,130, 62,246,175,137, 62,
- 0, 0, 0, 0,192, 5,161, 62,228, 40,159, 62, 0, 0, 0, 0,250, 78,134, 62,148,213,186, 62, 0, 0, 0, 0,154,118,111, 62,
-120,108,152, 62, 0, 0, 0, 0,240,117, 49, 63,164,138,198, 62, 0, 0, 0, 0,156,160, 41, 63, 56,175,182, 62, 0, 0, 0, 0,
- 90,188, 56, 63,103,207,159, 62, 0, 0, 0, 0,224, 19, 69, 63, 24, 68,190, 62, 0, 0, 0, 0,192, 5,161, 62,228, 40,159, 62,
- 0, 0, 0, 0,202,212,188, 62,245,163,182, 62, 0, 0, 0, 0,147,137,172, 62,148, 19,198, 62, 0, 0, 0, 0,250, 78,134, 62,
-148,213,186, 62, 0, 0, 0, 0,156,160, 41, 63, 56,175,182, 62, 0, 0, 0, 0,222,170, 33, 63, 74,126,158, 62, 0, 0, 0, 0,
- 91, 60, 36, 63,221,222,150, 62, 0, 0, 0, 0, 90,188, 56, 63,103,207,159, 62, 0, 0, 0, 0,150,245,199, 62, 85, 15,152, 62,
- 0, 0, 0, 0, 72,234,204, 62, 56, 63,159, 62, 0, 0, 0, 0,202,212,188, 62,245,163,182, 62, 0, 0, 0, 0,192, 5,161, 62,
-228, 40,159, 62, 0, 0, 0, 0, 91, 60, 36, 63,221,222,150, 62, 0, 0, 0, 0, 8, 7, 51, 63, 5,186,130, 62, 0, 0, 0, 0,
- 90,188, 56, 63,103,207,159, 62, 0, 0, 0, 0,192, 5,161, 62,228, 40,159, 62, 0, 0, 0, 0, 18,197,172, 62, 41,112,133, 62,
- 0, 0, 0, 0,150,245,199, 62, 85, 15,152, 62, 0, 0, 0, 0,156,160, 41, 63, 56,175,182, 62, 0, 0, 0, 0,102,212, 31, 63,
-144,192,164, 62, 0, 0, 0, 0,222,170, 33, 63, 74,126,158, 62, 0, 0, 0, 0, 72,234,204, 62, 56, 63,159, 62, 0, 0, 0, 0,
- 17,119,208, 62,201, 65,165, 62, 0, 0, 0, 0,202,212,188, 62,245,163,182, 62, 0, 0, 0, 0,226, 44,245, 62,129,140, 96, 63,
- 0, 0, 0, 0, 42,135,227, 62, 58, 2,101, 63, 0, 0, 0, 0,136,168,219, 62, 30,236, 95, 63, 0, 0, 0, 0,135, 30,238, 62,
-200, 41, 90, 63, 0, 0, 0, 0,216,240,137, 62, 90,226, 93, 63, 0, 0, 0, 0,110,103,122, 62,236,255, 92, 63, 0, 0, 0, 0,
- 74, 84,120, 62,104, 32, 83, 63, 0, 0, 0, 0, 32,193,138, 62, 16, 3, 83, 63, 0, 0, 0, 0, 48,130,233, 62,188, 69, 83, 63,
- 0, 0, 0, 0,135, 30,238, 62,200, 41, 90, 63, 0, 0, 0, 0,136,168,219, 62, 30,236, 95, 63, 0, 0, 0, 0, 23, 73,212, 62,
-152,239, 90, 63, 0, 0, 0, 0,216,240,137, 62, 90,226, 93, 63, 0, 0, 0, 0, 32,193,138, 62, 16, 3, 83, 63, 0, 0, 0, 0,
- 66, 1,153, 62,245,149, 81, 63, 0, 0, 0, 0, 84, 66,150, 62,114,154, 94, 63, 0, 0, 0, 0,216,217, 77, 63, 7,228,157, 62,
- 0, 0, 0, 0,154,254, 73, 63,178, 82,140, 62, 0, 0, 0, 0, 33, 61, 90, 63,195,207,124, 62, 0, 0, 0, 0,160,225, 90, 63,
-110,121,137, 62, 0, 0, 0, 0, 98,207, 81, 62,109, 1,110, 62, 0, 0, 0, 0,249,249,130, 62,246,175,137, 62, 0, 0, 0, 0,
-154,118,111, 62,120,108,152, 62, 0, 0, 0, 0,166,125, 74, 62,252, 30,130, 62, 0, 0, 0, 0,226, 77, 72, 63,204, 21,121, 62,
- 0, 0, 0, 0,202,106, 84, 63,137,185,113, 62, 0, 0, 0, 0, 33, 61, 90, 63,195,207,124, 62, 0, 0, 0, 0,154,254, 73, 63,
-178, 82,140, 62, 0, 0, 0, 0, 98,207, 81, 62,109, 1,110, 62, 0, 0, 0, 0,168,179,107, 62,139,127,103, 62, 0, 0, 0, 0,
-132, 32,137, 62,181, 65,121, 62, 0, 0, 0, 0,249,249,130, 62,246,175,137, 62, 0, 0, 0, 0, 23, 73,212, 62,152,239, 90, 63,
- 0, 0, 0, 0,136,168,219, 62, 30,236, 95, 63, 0, 0, 0, 0,100,192,205, 62, 46,238, 97, 63, 0, 0, 0, 0,228, 94,141, 62,
- 86,234,100, 63, 0, 0, 0, 0,216,240,137, 62, 90,226, 93, 63, 0, 0, 0, 0, 84, 66,150, 62,114,154, 94, 63, 0, 0, 0, 0,
- 31,178,109, 63,224, 68,228, 62, 0, 0, 0, 0, 46,178,102, 63,100,184,232, 62, 0, 0, 0, 0,100,251,101, 63,238,198,227, 62,
- 0, 0, 0, 0, 94,173,107, 63,168,130,225, 62, 0, 0, 0, 0, 68,209,249, 61, 70,134,219, 62, 0, 0, 0, 0,120,216,242, 61,
-124, 40,225, 62, 0, 0, 0, 0, 28, 27,177, 61, 42,240,219, 62, 0, 0, 0, 0, 76,131,196, 61,196, 97,216, 62, 0, 0, 0, 0,
- 31,178,109, 63,224, 68,228, 62, 0, 0, 0, 0, 94,173,107, 63,168,130,225, 62, 0, 0, 0, 0,144,102,114, 63,198, 23,220, 62,
- 0, 0, 0, 0, 41, 76,116, 63,139,153,222, 62, 0, 0, 0, 0, 56,163,120, 61, 58,252,208, 62, 0, 0, 0, 0, 76,131,196, 61,
-196, 97,216, 62, 0, 0, 0, 0, 28, 27,177, 61, 42,240,219, 62, 0, 0, 0, 0,128,183, 73, 61, 84,108,213, 62, 0, 0, 0, 0,
- 41, 76,116, 63,139,153,222, 62, 0, 0, 0, 0,144,102,114, 63,198, 23,220, 62, 0, 0, 0, 0, 84, 87,117, 63,221,255,211, 62,
- 0, 0, 0, 0,183,115,119, 63,140, 49,215, 62, 0, 0, 0, 0,144, 29, 55, 61,207,183,194, 62, 0, 0, 0, 0, 56,163,120, 61,
- 58,252,208, 62, 0, 0, 0, 0,128,183, 73, 61, 84,108,213, 62, 0, 0, 0, 0,224,111,231, 60,100,142,198, 62, 0, 0, 0, 0,
-183,115,119, 63,140, 49,215, 62, 0, 0, 0, 0, 84, 87,117, 63,221,255,211, 62, 0, 0, 0, 0,150, 20,118, 63, 60,110,196, 62,
- 0, 0, 0, 0, 49, 12,122, 63,246, 8,197, 62, 0, 0, 0, 0, 96,197,103, 61, 15,206,170, 62, 0, 0, 0, 0,144, 29, 55, 61,
-207,183,194, 62, 0, 0, 0, 0,224,111,231, 60,100,142,198, 62, 0, 0, 0, 0,240, 54, 16, 61,120, 4,167, 62, 0, 0, 0, 0,
- 49, 12,122, 63,246, 8,197, 62, 0, 0, 0, 0,150, 20,118, 63, 60,110,196, 62, 0, 0, 0, 0, 17,155,108, 63,130,201,178, 62,
- 0, 0, 0, 0, 84,190,110, 63,223, 77,172, 62, 0, 0, 0, 0,148,252,246, 61,164,116,160, 62, 0, 0, 0, 0, 96,197,103, 61,
- 15,206,170, 62, 0, 0, 0, 0,240, 54, 16, 61,120, 4,167, 62, 0, 0, 0, 0, 8, 66,246, 61, 28,161,152, 62, 0, 0, 0, 0,
- 84,190,110, 63,223, 77,172, 62, 0, 0, 0, 0, 17,155,108, 63,130,201,178, 62, 0, 0, 0, 0, 21,180, 92, 63,202, 95,173, 62,
- 0, 0, 0, 0,151, 5, 90, 63,138, 61,167, 62, 0, 0, 0, 0,144,216, 54, 62, 35, 76,163, 62, 0, 0, 0, 0,148,252,246, 61,
-164,116,160, 62, 0, 0, 0, 0, 8, 66,246, 61, 28,161,152, 62, 0, 0, 0, 0,194,251, 66, 62,163,102,158, 62, 0, 0, 0, 0,
- 17,155,108, 63,130,201,178, 62, 0, 0, 0, 0,198,132,109, 63,182,157,186, 62, 0, 0, 0, 0, 68, 32, 97, 63,192, 12,178, 62,
- 0, 0, 0, 0, 21,180, 92, 63,202, 95,173, 62, 0, 0, 0, 0, 48,185, 36, 62, 16, 7,166, 62, 0, 0, 0, 0, 40, 91,221, 61,
- 4,194,167, 62, 0, 0, 0, 0,148,252,246, 61,164,116,160, 62, 0, 0, 0, 0,144,216, 54, 62, 35, 76,163, 62, 0, 0, 0, 0,
-150, 20,118, 63, 60,110,196, 62, 0, 0, 0, 0, 84,225,115, 63,208, 85,198, 62, 0, 0, 0, 0,198,132,109, 63,182,157,186, 62,
- 0, 0, 0, 0, 17,155,108, 63,130,201,178, 62, 0, 0, 0, 0, 40, 91,221, 61, 4,194,167, 62, 0, 0, 0, 0,244,221,134, 61,
-121,164,175, 62, 0, 0, 0, 0, 96,197,103, 61, 15,206,170, 62, 0, 0, 0, 0,148,252,246, 61,164,116,160, 62, 0, 0, 0, 0,
- 84, 87,117, 63,221,255,211, 62, 0, 0, 0, 0,222, 48,116, 63,169, 8,209, 62, 0, 0, 0, 0, 84,225,115, 63,208, 85,198, 62,
- 0, 0, 0, 0,150, 20,118, 63, 60,110,196, 62, 0, 0, 0, 0,244,221,134, 61,121,164,175, 62, 0, 0, 0, 0,160,108, 93, 61,
- 17,207,190, 62, 0, 0, 0, 0,144, 29, 55, 61,207,183,194, 62, 0, 0, 0, 0, 96,197,103, 61, 15,206,170, 62, 0, 0, 0, 0,
-144,102,114, 63,198, 23,220, 62, 0, 0, 0, 0,174,151,113, 63, 26,229,214, 62, 0, 0, 0, 0,222, 48,116, 63,169, 8,209, 62,
- 0, 0, 0, 0, 84, 87,117, 63,221,255,211, 62, 0, 0, 0, 0,160,108, 93, 61, 17,207,190, 62, 0, 0, 0, 0, 12,155,135, 61,
-166, 39,201, 62, 0, 0, 0, 0, 56,163,120, 61, 58,252,208, 62, 0, 0, 0, 0,144, 29, 55, 61,207,183,194, 62, 0, 0, 0, 0,
- 94,173,107, 63,168,130,225, 62, 0, 0, 0, 0,228,239,107, 63, 62, 59,218, 62, 0, 0, 0, 0,174,151,113, 63, 26,229,214, 62,
- 0, 0, 0, 0,144,102,114, 63,198, 23,220, 62, 0, 0, 0, 0, 12,155,135, 61,166, 39,201, 62, 0, 0, 0, 0,128, 47,195, 61,
- 6, 11,207, 62, 0, 0, 0, 0, 76,131,196, 61,196, 97,216, 62, 0, 0, 0, 0, 56,163,120, 61, 58,252,208, 62, 0, 0, 0, 0,
- 94,173,107, 63,168,130,225, 62, 0, 0, 0, 0,100,251,101, 63,238,198,227, 62, 0, 0, 0, 0, 71,205,102, 63,132, 94,219, 62,
- 0, 0, 0, 0,228,239,107, 63, 62, 59,218, 62, 0, 0, 0, 0,192,157,244, 61,157,137,209, 62, 0, 0, 0, 0, 68,209,249, 61,
- 70,134,219, 62, 0, 0, 0, 0, 76,131,196, 61,196, 97,216, 62, 0, 0, 0, 0,128, 47,195, 61, 6, 11,207, 62, 0, 0, 0, 0,
-224, 19, 69, 63, 24, 68,190, 62, 0, 0, 0, 0,216,217, 77, 63, 7,228,157, 62, 0, 0, 0, 0,236, 35, 85, 63,164,201,181, 62,
- 0, 0, 0, 0, 56, 92, 78, 63,177,114,188, 62, 0, 0, 0, 0,122, 91, 80, 62, 72, 18,174, 62, 0, 0, 0, 0,154,118,111, 62,
-120,108,152, 62, 0, 0, 0, 0,250, 78,134, 62,148,213,186, 62, 0, 0, 0, 0,162,163,104, 62,150,180,182, 62, 0, 0, 0, 0,
-216,217, 77, 63, 7,228,157, 62, 0, 0, 0, 0,151, 5, 90, 63,138, 61,167, 62, 0, 0, 0, 0, 21,180, 92, 63,202, 95,173, 62,
- 0, 0, 0, 0,236, 35, 85, 63,164,201,181, 62, 0, 0, 0, 0,144,216, 54, 62, 35, 76,163, 62, 0, 0, 0, 0,194,251, 66, 62,
-163,102,158, 62, 0, 0, 0, 0,154,118,111, 62,120,108,152, 62, 0, 0, 0, 0,122, 91, 80, 62, 72, 18,174, 62, 0, 0, 0, 0,
- 53, 64, 74, 63,171, 31,224, 62, 0, 0, 0, 0,224, 19, 69, 63, 24, 68,190, 62, 0, 0, 0, 0, 56, 92, 78, 63,177,114,188, 62,
- 0, 0, 0, 0,217,106, 81, 63, 14,214,232, 62, 0, 0, 0, 0,162,163,104, 62,150,180,182, 62, 0, 0, 0, 0,250, 78,134, 62,
-148,213,186, 62, 0, 0, 0, 0,184,112,114, 62,248,169,220, 62, 0, 0, 0, 0, 88, 93, 84, 62, 50,105,228, 62, 0, 0, 0, 0,
-106,154, 93, 63,226, 26,233, 62, 0, 0, 0, 0,196,229, 94, 63,128,195,224, 62, 0, 0, 0, 0,100,251,101, 63,238,198,227, 62,
- 0, 0, 0, 0, 46,178,102, 63,100,184,232, 62, 0, 0, 0, 0, 68,209,249, 61, 70,134,219, 62, 0, 0, 0, 0,108,187, 28, 62,
- 48, 86,217, 62, 0, 0, 0, 0,128, 1, 33, 62, 70,210,226, 62, 0, 0, 0, 0,120,216,242, 61,124, 40,225, 62, 0, 0, 0, 0,
- 21,180, 92, 63,202, 95,173, 62, 0, 0, 0, 0, 68, 32, 97, 63,192, 12,178, 62, 0, 0, 0, 0, 9,215, 94, 63, 4, 54,186, 62,
- 0, 0, 0, 0,236, 35, 85, 63,164,201,181, 62, 0, 0, 0, 0, 60,122, 41, 62, 16, 58,175, 62, 0, 0, 0, 0, 48,185, 36, 62,
- 16, 7,166, 62, 0, 0, 0, 0,144,216, 54, 62, 35, 76,163, 62, 0, 0, 0, 0,122, 91, 80, 62, 72, 18,174, 62, 0, 0, 0, 0,
-230, 78, 95, 63, 4,233,189, 62, 0, 0, 0, 0, 32,188, 86, 63, 44, 62,190, 62, 0, 0, 0, 0,236, 35, 85, 63,164,201,181, 62,
- 0, 0, 0, 0, 9,215, 94, 63, 4, 54,186, 62, 0, 0, 0, 0,122, 91, 80, 62, 72, 18,174, 62, 0, 0, 0, 0, 78,118, 71, 62,
- 27, 49,182, 62, 0, 0, 0, 0, 52,225, 37, 62, 40, 12,179, 62, 0, 0, 0, 0, 60,122, 41, 62, 16, 58,175, 62, 0, 0, 0, 0,
- 70,166, 92, 63, 0,166,197, 62, 0, 0, 0, 0, 32,188, 86, 63, 44, 62,190, 62, 0, 0, 0, 0,230, 78, 95, 63, 4,233,189, 62,
- 0, 0, 0, 0,226, 13, 95, 63, 37,152,194, 62, 0, 0, 0, 0, 52,225, 37, 62, 40, 12,179, 62, 0, 0, 0, 0, 78,118, 71, 62,
- 27, 49,182, 62, 0, 0, 0, 0,142,143, 45, 62,237, 37,188, 62, 0, 0, 0, 0,106,230, 36, 62,222, 27,184, 62, 0, 0, 0, 0,
-248, 90, 95, 63,100,122,207, 62, 0, 0, 0, 0,108,249, 90, 63, 58,199,212, 62, 0, 0, 0, 0, 32,188, 86, 63, 44, 62,190, 62,
- 0, 0, 0, 0, 70,166, 92, 63, 0,166,197, 62, 0, 0, 0, 0, 78,118, 71, 62, 27, 49,182, 62, 0, 0, 0, 0,110, 56, 48, 62,
-230, 43,205, 62, 0, 0, 0, 0,174,250, 30, 62, 26, 12,198, 62, 0, 0, 0, 0,142,143, 45, 62,237, 37,188, 62, 0, 0, 0, 0,
-196,229, 94, 63,128,195,224, 62, 0, 0, 0, 0,108,249, 90, 63, 58,199,212, 62, 0, 0, 0, 0,248, 90, 95, 63,100,122,207, 62,
- 0, 0, 0, 0, 92,104, 98, 63,197,136,215, 62, 0, 0, 0, 0,174,250, 30, 62, 26, 12,198, 62, 0, 0, 0, 0,110, 56, 48, 62,
-230, 43,205, 62, 0, 0, 0, 0,108,187, 28, 62, 48, 86,217, 62, 0, 0, 0, 0,212, 59, 15, 62,224, 50,206, 62, 0, 0, 0, 0,
-100,251,101, 63,238,198,227, 62, 0, 0, 0, 0,196,229, 94, 63,128,195,224, 62, 0, 0, 0, 0, 92,104, 98, 63,197,136,215, 62,
- 0, 0, 0, 0, 71,205,102, 63,132, 94,219, 62, 0, 0, 0, 0,212, 59, 15, 62,224, 50,206, 62, 0, 0, 0, 0,108,187, 28, 62,
- 48, 86,217, 62, 0, 0, 0, 0, 68,209,249, 61, 70,134,219, 62, 0, 0, 0, 0,192,157,244, 61,157,137,209, 62, 0, 0, 0, 0,
-217,106, 81, 63, 14,214,232, 62, 0, 0, 0, 0,108,249, 90, 63, 58,199,212, 62, 0, 0, 0, 0,196,229, 94, 63,128,195,224, 62,
- 0, 0, 0, 0,106,154, 93, 63,226, 26,233, 62, 0, 0, 0, 0,108,187, 28, 62, 48, 86,217, 62, 0, 0, 0, 0,110, 56, 48, 62,
-230, 43,205, 62, 0, 0, 0, 0, 88, 93, 84, 62, 50,105,228, 62, 0, 0, 0, 0,128, 1, 33, 62, 70,210,226, 62, 0, 0, 0, 0,
-217,106, 81, 63, 14,214,232, 62, 0, 0, 0, 0, 56, 92, 78, 63,177,114,188, 62, 0, 0, 0, 0, 32,188, 86, 63, 44, 62,190, 62,
- 0, 0, 0, 0,108,249, 90, 63, 58,199,212, 62, 0, 0, 0, 0, 78,118, 71, 62, 27, 49,182, 62, 0, 0, 0, 0,162,163,104, 62,
-150,180,182, 62, 0, 0, 0, 0, 88, 93, 84, 62, 50,105,228, 62, 0, 0, 0, 0,110, 56, 48, 62,230, 43,205, 62, 0, 0, 0, 0,
- 56, 92, 78, 63,177,114,188, 62, 0, 0, 0, 0,236, 35, 85, 63,164,201,181, 62, 0, 0, 0, 0, 32,188, 86, 63, 44, 62,190, 62,
- 0, 0, 0, 0, 78,118, 71, 62, 27, 49,182, 62, 0, 0, 0, 0,122, 91, 80, 62, 72, 18,174, 62, 0, 0, 0, 0,162,163,104, 62,
-150,180,182, 62, 0, 0, 0, 0, 71,205,102, 63,132, 94,219, 62, 0, 0, 0, 0, 92,104, 98, 63,197,136,215, 62, 0, 0, 0, 0,
-182,109,100, 63,149,255,210, 62, 0, 0, 0, 0, 54, 86,104, 63,209,241,214, 62, 0, 0, 0, 0,160,107, 7, 62, 34,103,200, 62,
- 0, 0, 0, 0,212, 59, 15, 62,224, 50,206, 62, 0, 0, 0, 0,192,157,244, 61,157,137,209, 62, 0, 0, 0, 0, 8, 2,232, 61,
- 20,214,203, 62, 0, 0, 0, 0, 92,104, 98, 63,197,136,215, 62, 0, 0, 0, 0,248, 90, 95, 63,100,122,207, 62, 0, 0, 0, 0,
-112,206, 97, 63, 10,202,204, 62, 0, 0, 0, 0,182,109,100, 63,149,255,210, 62, 0, 0, 0, 0, 64, 68, 21, 62,107, 55,194, 62,
- 0, 0, 0, 0,174,250, 30, 62, 26, 12,198, 62, 0, 0, 0, 0,212, 59, 15, 62,224, 50,206, 62, 0, 0, 0, 0,160,107, 7, 62,
- 34,103,200, 62, 0, 0, 0, 0,248, 90, 95, 63,100,122,207, 62, 0, 0, 0, 0, 70,166, 92, 63, 0,166,197, 62, 0, 0, 0, 0,
- 82,241, 94, 63, 40,103,198, 62, 0, 0, 0, 0,112,206, 97, 63, 10,202,204, 62, 0, 0, 0, 0, 20,225, 35, 62, 39, 50,188, 62,
- 0, 0, 0, 0,142,143, 45, 62,237, 37,188, 62, 0, 0, 0, 0,174,250, 30, 62, 26, 12,198, 62, 0, 0, 0, 0, 64, 68, 21, 62,
-107, 55,194, 62, 0, 0, 0, 0, 70,166, 92, 63, 0,166,197, 62, 0, 0, 0, 0,226, 13, 95, 63, 37,152,194, 62, 0, 0, 0, 0,
-118, 1, 97, 63, 47,226,195, 62, 0, 0, 0, 0, 82,241, 94, 63, 40,103,198, 62, 0, 0, 0, 0, 12, 43, 28, 62,186,177,184, 62,
- 0, 0, 0, 0,106,230, 36, 62,222, 27,184, 62, 0, 0, 0, 0,142,143, 45, 62,237, 37,188, 62, 0, 0, 0, 0, 20,225, 35, 62,
- 39, 50,188, 62, 0, 0, 0, 0,226, 13, 95, 63, 37,152,194, 62, 0, 0, 0, 0,230, 78, 95, 63, 4,233,189, 62, 0, 0, 0, 0,
- 51,113, 97, 63, 92,151,189, 62, 0, 0, 0, 0,118, 1, 97, 63, 47,226,195, 62, 0, 0, 0, 0,104, 67, 29, 62, 58,199,177, 62,
- 0, 0, 0, 0, 52,225, 37, 62, 40, 12,179, 62, 0, 0, 0, 0,106,230, 36, 62,222, 27,184, 62, 0, 0, 0, 0, 12, 43, 28, 62,
-186,177,184, 62, 0, 0, 0, 0,230, 78, 95, 63, 4,233,189, 62, 0, 0, 0, 0, 9,215, 94, 63, 4, 54,186, 62, 0, 0, 0, 0,
- 96, 69, 96, 63,152,133,187, 62, 0, 0, 0, 0, 51,113, 97, 63, 92,151,189, 62, 0, 0, 0, 0,140, 14, 35, 62, 33, 19,176, 62,
- 0, 0, 0, 0, 60,122, 41, 62, 16, 58,175, 62, 0, 0, 0, 0, 52,225, 37, 62, 40, 12,179, 62, 0, 0, 0, 0,104, 67, 29, 62,
- 58,199,177, 62, 0, 0, 0, 0, 9,215, 94, 63, 4, 54,186, 62, 0, 0, 0, 0, 68, 32, 97, 63,192, 12,178, 62, 0, 0, 0, 0,
-112, 91, 98, 63,149,128,182, 62, 0, 0, 0, 0, 96, 69, 96, 63,152,133,187, 62, 0, 0, 0, 0,228,107, 29, 62, 95,230,169, 62,
- 0, 0, 0, 0, 48,185, 36, 62, 16, 7,166, 62, 0, 0, 0, 0, 60,122, 41, 62, 16, 58,175, 62, 0, 0, 0, 0,140, 14, 35, 62,
- 33, 19,176, 62, 0, 0, 0, 0,228,239,107, 63, 62, 59,218, 62, 0, 0, 0, 0, 71,205,102, 63,132, 94,219, 62, 0, 0, 0, 0,
- 54, 86,104, 63,209,241,214, 62, 0, 0, 0, 0, 34, 27,109, 63,155,254,214, 62, 0, 0, 0, 0, 8, 2,232, 61, 20,214,203, 62,
- 0, 0, 0, 0,192,157,244, 61,157,137,209, 62, 0, 0, 0, 0,128, 47,195, 61, 6, 11,207, 62, 0, 0, 0, 0, 36,174,184, 61,
-216,130,202, 62, 0, 0, 0, 0,174,151,113, 63, 26,229,214, 62, 0, 0, 0, 0,228,239,107, 63, 62, 59,218, 62, 0, 0, 0, 0,
- 34, 27,109, 63,155,254,214, 62, 0, 0, 0, 0, 69,134,113, 63,156, 82,212, 62, 0, 0, 0, 0, 36,174,184, 61,216,130,202, 62,
- 0, 0, 0, 0,128, 47,195, 61, 6, 11,207, 62, 0, 0, 0, 0, 12,155,135, 61,166, 39,201, 62, 0, 0, 0, 0, 60,114,138, 61,
- 28, 61,197, 62, 0, 0, 0, 0,222, 48,116, 63,169, 8,209, 62, 0, 0, 0, 0,174,151,113, 63, 26,229,214, 62, 0, 0, 0, 0,
- 69,134,113, 63,156, 82,212, 62, 0, 0, 0, 0, 42,143,114, 63, 24,168,207, 62, 0, 0, 0, 0, 60,114,138, 61, 28, 61,197, 62,
- 0, 0, 0, 0, 12,155,135, 61,166, 39,201, 62, 0, 0, 0, 0,160,108, 93, 61, 17,207,190, 62, 0, 0, 0, 0,184, 85,132, 61,
- 22,211,189, 62, 0, 0, 0, 0, 84,225,115, 63,208, 85,198, 62, 0, 0, 0, 0,222, 48,116, 63,169, 8,209, 62, 0, 0, 0, 0,
- 42,143,114, 63, 24,168,207, 62, 0, 0, 0, 0,203,125,114, 63, 96,114,200, 62, 0, 0, 0, 0,184, 85,132, 61, 22,211,189, 62,
- 0, 0, 0, 0,160,108, 93, 61, 17,207,190, 62, 0, 0, 0, 0,244,221,134, 61,121,164,175, 62, 0, 0, 0, 0, 16,152,145, 61,
- 84,214,179, 62, 0, 0, 0, 0,198,132,109, 63,182,157,186, 62, 0, 0, 0, 0, 84,225,115, 63,208, 85,198, 62, 0, 0, 0, 0,
-203,125,114, 63, 96,114,200, 62, 0, 0, 0, 0,177,192,109, 63,152,240,190, 62, 0, 0, 0, 0, 16,152,145, 61, 84,214,179, 62,
- 0, 0, 0, 0,244,221,134, 61,121,164,175, 62, 0, 0, 0, 0, 40, 91,221, 61, 4,194,167, 62, 0, 0, 0, 0, 64,226,208, 61,
-232, 58,172, 62, 0, 0, 0, 0, 68, 32, 97, 63,192, 12,178, 62, 0, 0, 0, 0,198,132,109, 63,182,157,186, 62, 0, 0, 0, 0,
-177,192,109, 63,152,240,190, 62, 0, 0, 0, 0,112, 91, 98, 63,149,128,182, 62, 0, 0, 0, 0, 64,226,208, 61,232, 58,172, 62,
- 0, 0, 0, 0, 40, 91,221, 61, 4,194,167, 62, 0, 0, 0, 0, 48,185, 36, 62, 16, 7,166, 62, 0, 0, 0, 0,228,107, 29, 62,
- 95,230,169, 62, 0, 0, 0, 0,118, 1, 97, 63, 47,226,195, 62, 0, 0, 0, 0, 51,113, 97, 63, 92,151,189, 62, 0, 0, 0, 0,
-215,139,102, 63, 15,109,193, 62, 0, 0, 0, 0, 54, 47,100, 63,186,115,198, 62, 0, 0, 0, 0, 92,169, 5, 62,168,115,179, 62,
- 0, 0, 0, 0,104, 67, 29, 62, 58,199,177, 62, 0, 0, 0, 0, 12, 43, 28, 62,186,177,184, 62, 0, 0, 0, 0, 50, 97, 13, 62,
- 50, 42,186, 62, 0, 0, 0, 0, 54, 47,100, 63,186,115,198, 62, 0, 0, 0, 0,215,139,102, 63, 15,109,193, 62, 0, 0, 0, 0,
-174,241,105, 63,204, 8,200, 62, 0, 0, 0, 0, 71,233,103, 63,178, 42,204, 62, 0, 0, 0, 0,228,171,229, 61, 41, 42,185, 62,
- 0, 0, 0, 0, 92,169, 5, 62,168,115,179, 62, 0, 0, 0, 0, 50, 97, 13, 62, 50, 42,186, 62, 0, 0, 0, 0, 92,248,243, 61,
- 96, 22,191, 62, 0, 0, 0, 0, 71,233,103, 63,178, 42,204, 62, 0, 0, 0, 0,174,241,105, 63,204, 8,200, 62, 0, 0, 0, 0,
- 51, 37,108, 63,249, 3,205, 62, 0, 0, 0, 0, 56,212,106, 63, 96,238,208, 62, 0, 0, 0, 0,120, 99,202, 61,192, 49,190, 62,
- 0, 0, 0, 0,228,171,229, 61, 41, 42,185, 62, 0, 0, 0, 0, 92,248,243, 61, 96, 22,191, 62, 0, 0, 0, 0,160,209,211, 61,
-108,159,195, 62, 0, 0, 0, 0, 56,212,106, 63, 96,238,208, 62, 0, 0, 0, 0, 51, 37,108, 63,249, 3,205, 62, 0, 0, 0, 0,
- 56, 73,110, 63,186,119,206, 62, 0, 0, 0, 0, 46,191,109, 63, 92, 64,210, 62, 0, 0, 0, 0,244,234,179, 61,240,219,190, 62,
- 0, 0, 0, 0,120, 99,202, 61,192, 49,190, 62, 0, 0, 0, 0,160,209,211, 61,108,159,195, 62, 0, 0, 0, 0,196,129,181, 61,
-204, 14,196, 62, 0, 0, 0, 0, 34, 27,109, 63,155,254,214, 62, 0, 0, 0, 0, 54, 86,104, 63,209,241,214, 62, 0, 0, 0, 0,
- 56,212,106, 63, 96,238,208, 62, 0, 0, 0, 0, 46,191,109, 63, 92, 64,210, 62, 0, 0, 0, 0,160,209,211, 61,108,159,195, 62,
- 0, 0, 0, 0, 8, 2,232, 61, 20,214,203, 62, 0, 0, 0, 0, 36,174,184, 61,216,130,202, 62, 0, 0, 0, 0,196,129,181, 61,
-204, 14,196, 62, 0, 0, 0, 0,182,109,100, 63,149,255,210, 62, 0, 0, 0, 0, 71,233,103, 63,178, 42,204, 62, 0, 0, 0, 0,
- 56,212,106, 63, 96,238,208, 62, 0, 0, 0, 0, 54, 86,104, 63,209,241,214, 62, 0, 0, 0, 0,160,209,211, 61,108,159,195, 62,
- 0, 0, 0, 0, 92,248,243, 61, 96, 22,191, 62, 0, 0, 0, 0,160,107, 7, 62, 34,103,200, 62, 0, 0, 0, 0, 8, 2,232, 61,
- 20,214,203, 62, 0, 0, 0, 0,182,109,100, 63,149,255,210, 62, 0, 0, 0, 0,112,206, 97, 63, 10,202,204, 62, 0, 0, 0, 0,
- 54, 47,100, 63,186,115,198, 62, 0, 0, 0, 0, 71,233,103, 63,178, 42,204, 62, 0, 0, 0, 0, 50, 97, 13, 62, 50, 42,186, 62,
- 0, 0, 0, 0, 64, 68, 21, 62,107, 55,194, 62, 0, 0, 0, 0,160,107, 7, 62, 34,103,200, 62, 0, 0, 0, 0, 92,248,243, 61,
- 96, 22,191, 62, 0, 0, 0, 0,118, 1, 97, 63, 47,226,195, 62, 0, 0, 0, 0, 54, 47,100, 63,186,115,198, 62, 0, 0, 0, 0,
-112,206, 97, 63, 10,202,204, 62, 0, 0, 0, 0, 82,241, 94, 63, 40,103,198, 62, 0, 0, 0, 0, 64, 68, 21, 62,107, 55,194, 62,
- 0, 0, 0, 0, 50, 97, 13, 62, 50, 42,186, 62, 0, 0, 0, 0, 12, 43, 28, 62,186,177,184, 62, 0, 0, 0, 0, 20,225, 35, 62,
- 39, 50,188, 62, 0, 0, 0, 0, 96, 69, 96, 63,152,133,187, 62, 0, 0, 0, 0,112, 91, 98, 63,149,128,182, 62, 0, 0, 0, 0,
-215,139,102, 63, 15,109,193, 62, 0, 0, 0, 0, 51,113, 97, 63, 92,151,189, 62, 0, 0, 0, 0, 92,169, 5, 62,168,115,179, 62,
- 0, 0, 0, 0,228,107, 29, 62, 95,230,169, 62, 0, 0, 0, 0,140, 14, 35, 62, 33, 19,176, 62, 0, 0, 0, 0,104, 67, 29, 62,
- 58,199,177, 62, 0, 0, 0, 0,177,192,109, 63,152,240,190, 62, 0, 0, 0, 0,174,241,105, 63,204, 8,200, 62, 0, 0, 0, 0,
-215,139,102, 63, 15,109,193, 62, 0, 0, 0, 0,112, 91, 98, 63,149,128,182, 62, 0, 0, 0, 0, 92,169, 5, 62,168,115,179, 62,
- 0, 0, 0, 0,228,171,229, 61, 41, 42,185, 62, 0, 0, 0, 0, 64,226,208, 61,232, 58,172, 62, 0, 0, 0, 0,228,107, 29, 62,
- 95,230,169, 62, 0, 0, 0, 0,203,125,114, 63, 96,114,200, 62, 0, 0, 0, 0, 51, 37,108, 63,249, 3,205, 62, 0, 0, 0, 0,
-174,241,105, 63,204, 8,200, 62, 0, 0, 0, 0,177,192,109, 63,152,240,190, 62, 0, 0, 0, 0,228,171,229, 61, 41, 42,185, 62,
- 0, 0, 0, 0,120, 99,202, 61,192, 49,190, 62, 0, 0, 0, 0, 16,152,145, 61, 84,214,179, 62, 0, 0, 0, 0, 64,226,208, 61,
-232, 58,172, 62, 0, 0, 0, 0, 42,143,114, 63, 24,168,207, 62, 0, 0, 0, 0, 56, 73,110, 63,186,119,206, 62, 0, 0, 0, 0,
- 51, 37,108, 63,249, 3,205, 62, 0, 0, 0, 0,203,125,114, 63, 96,114,200, 62, 0, 0, 0, 0,120, 99,202, 61,192, 49,190, 62,
- 0, 0, 0, 0,244,234,179, 61,240,219,190, 62, 0, 0, 0, 0,184, 85,132, 61, 22,211,189, 62, 0, 0, 0, 0, 16,152,145, 61,
- 84,214,179, 62, 0, 0, 0, 0, 69,134,113, 63,156, 82,212, 62, 0, 0, 0, 0, 46,191,109, 63, 92, 64,210, 62, 0, 0, 0, 0,
- 56, 73,110, 63,186,119,206, 62, 0, 0, 0, 0, 42,143,114, 63, 24,168,207, 62, 0, 0, 0, 0,244,234,179, 61,240,219,190, 62,
- 0, 0, 0, 0,196,129,181, 61,204, 14,196, 62, 0, 0, 0, 0, 60,114,138, 61, 28, 61,197, 62, 0, 0, 0, 0,184, 85,132, 61,
- 22,211,189, 62, 0, 0, 0, 0, 34, 27,109, 63,155,254,214, 62, 0, 0, 0, 0, 46,191,109, 63, 92, 64,210, 62, 0, 0, 0, 0,
- 69,134,113, 63,156, 82,212, 62, 0, 0, 0, 0, 60,114,138, 61, 28, 61,197, 62, 0, 0, 0, 0,196,129,181, 61,204, 14,196, 62,
- 0, 0, 0, 0, 36,174,184, 61,216,130,202, 62, 0, 0, 0, 0, 84,190,110, 63,223, 77,172, 62, 0, 0, 0, 0,151, 5, 90, 63,
-138, 61,167, 62, 0, 0, 0, 0, 22, 25, 96, 63,246,248,149, 62, 0, 0, 0, 0,162,176,122, 63,145,215,161, 62, 0, 0, 0, 0,
- 64,234, 54, 62,146,219,140, 62, 0, 0, 0, 0,194,251, 66, 62,163,102,158, 62, 0, 0, 0, 0, 8, 66,246, 61, 28,161,152, 62,
- 0, 0, 0, 0,172,241,189, 61, 13,107,132, 62, 0, 0, 0, 0, 49, 12,122, 63,246, 8,197, 62, 0, 0, 0, 0, 84,190,110, 63,
-223, 77,172, 62, 0, 0, 0, 0,162,176,122, 63,145,215,161, 62, 0, 0, 0, 0,188,255,126, 63,115,248,198, 62, 0, 0, 0, 0,
-172,241,189, 61, 13,107,132, 62, 0, 0, 0, 0, 8, 66,246, 61, 28,161,152, 62, 0, 0, 0, 0,240, 54, 16, 61,120, 4,167, 62,
- 0, 0, 0, 0, 0, 8,163, 58, 39, 69,162, 62, 0, 0, 0, 0,183,115,119, 63,140, 49,215, 62, 0, 0, 0, 0, 49, 12,122, 63,
-246, 8,197, 62, 0, 0, 0, 0,188,255,126, 63,115,248,198, 62, 0, 0, 0, 0, 47, 6,122, 63,248,157,216, 62, 0, 0, 0, 0,
- 0, 8,163, 58, 39, 69,162, 62, 0, 0, 0, 0,240, 54, 16, 61,120, 4,167, 62, 0, 0, 0, 0,224,111,231, 60,100,142,198, 62,
- 0, 0, 0, 0,224,248, 14, 60, 70,141,198, 62, 0, 0, 0, 0, 41, 76,116, 63,139,153,222, 62, 0, 0, 0, 0,183,115,119, 63,
-140, 49,215, 62, 0, 0, 0, 0, 47, 6,122, 63,248,157,216, 62, 0, 0, 0, 0,134, 98,119, 63,204, 37,225, 62, 0, 0, 0, 0,
-224,248, 14, 60, 70,141,198, 62, 0, 0, 0, 0,224,111,231, 60,100,142,198, 62, 0, 0, 0, 0,128,183, 73, 61, 84,108,213, 62,
- 0, 0, 0, 0, 80,210,229, 60, 32,239,218, 62, 0, 0, 0, 0, 31,178,109, 63,224, 68,228, 62, 0, 0, 0, 0, 41, 76,116, 63,
-139,153,222, 62, 0, 0, 0, 0,134, 98,119, 63,204, 37,225, 62, 0, 0, 0, 0, 46,185,115, 63, 90,157,234, 62, 0, 0, 0, 0,
- 80,210,229, 60, 32,239,218, 62, 0, 0, 0, 0,128,183, 73, 61, 84,108,213, 62, 0, 0, 0, 0, 28, 27,177, 61, 42,240,219, 62,
- 0, 0, 0, 0, 56,103,122, 61, 30, 10,230, 62, 0, 0, 0, 0, 46,178,102, 63,100,184,232, 62, 0, 0, 0, 0, 31,178,109, 63,
-224, 68,228, 62, 0, 0, 0, 0, 46,185,115, 63, 90,157,234, 62, 0, 0, 0, 0,244,134,106, 63,234, 64,246, 62, 0, 0, 0, 0,
- 56,103,122, 61, 30, 10,230, 62, 0, 0, 0, 0, 28, 27,177, 61, 42,240,219, 62, 0, 0, 0, 0,120,216,242, 61,124, 40,225, 62,
- 0, 0, 0, 0,212,222,209, 61,238,123,240, 62, 0, 0, 0, 0,235,188, 5, 63,252, 74, 98, 63, 0, 0, 0, 0,200,111,248, 62,
-197,105,112, 63, 0, 0, 0, 0, 0, 49,231, 62,118,190,107, 63, 0, 0, 0, 0,150, 57,255, 62, 53, 14, 96, 63, 0, 0, 0, 0,
- 80, 99, 95, 62,149,194, 94, 63, 0, 0, 0, 0, 58, 8, 62, 62, 10,154, 89, 63, 0, 0, 0, 0, 40, 24, 92, 62, 14, 82, 74, 63,
- 0, 0, 0, 0,112, 11,112, 62,157,133, 78, 63, 0, 0, 0, 0,235,188, 5, 63,252, 74, 98, 63, 0, 0, 0, 0,136,139, 12, 63,
-138,233,101, 63, 0, 0, 0, 0,116, 45, 6, 63,112,245,113, 63, 0, 0, 0, 0,200,111,248, 62,197,105,112, 63, 0, 0, 0, 0,
- 68,219, 36, 62,249,186, 81, 63, 0, 0, 0, 0, 28,254, 65, 62, 20, 55, 70, 63, 0, 0, 0, 0, 40, 24, 92, 62, 14, 82, 74, 63,
- 0, 0, 0, 0, 58, 8, 62, 62, 10,154, 89, 63, 0, 0, 0, 0,136,139, 12, 63,138,233,101, 63, 0, 0, 0, 0, 5,130, 12, 63,
-149,216,108, 63, 0, 0, 0, 0,116, 45, 6, 63,112,245,113, 63, 0, 0, 0, 0, 68,219, 36, 62,249,186, 81, 63, 0, 0, 0, 0,
- 76, 1, 42, 62, 39,178, 73, 63, 0, 0, 0, 0, 28,254, 65, 62, 20, 55, 70, 63, 0, 0, 0, 0,120, 89,103, 63,105, 76, 2, 63,
- 0, 0, 0, 0,106,154, 93, 63,226, 26,233, 62, 0, 0, 0, 0, 46,178,102, 63,100,184,232, 62, 0, 0, 0, 0,244,134,106, 63,
-234, 64,246, 62, 0, 0, 0, 0,120,216,242, 61,124, 40,225, 62, 0, 0, 0, 0,128, 1, 33, 62, 70,210,226, 62, 0, 0, 0, 0,
-116,128,234, 61,200, 39, 0, 63, 0, 0, 0, 0,212,222,209, 61,238,123,240, 62, 0, 0, 0, 0,226, 44,245, 62,129,140, 96, 63,
- 0, 0, 0, 0,150, 57,255, 62, 53, 14, 96, 63, 0, 0, 0, 0, 0, 49,231, 62,118,190,107, 63, 0, 0, 0, 0, 42,135,227, 62,
- 58, 2,101, 63, 0, 0, 0, 0, 80, 99, 95, 62,149,194, 94, 63, 0, 0, 0, 0,112, 11,112, 62,157,133, 78, 63, 0, 0, 0, 0,
- 74, 84,120, 62,104, 32, 83, 63, 0, 0, 0, 0,110,103,122, 62,236,255, 92, 63, 0, 0, 0, 0,216,217, 77, 63, 7,228,157, 62,
- 0, 0, 0, 0,160,225, 90, 63,110,121,137, 62, 0, 0, 0, 0, 22, 25, 96, 63,246,248,149, 62, 0, 0, 0, 0,151, 5, 90, 63,
-138, 61,167, 62, 0, 0, 0, 0, 64,234, 54, 62,146,219,140, 62, 0, 0, 0, 0,166,125, 74, 62,252, 30,130, 62, 0, 0, 0, 0,
-154,118,111, 62,120,108,152, 62, 0, 0, 0, 0,194,251, 66, 62,163,102,158, 62, 0, 0, 0, 0, 68, 65, 84, 65,192, 30, 0, 0,
- 24,163,199, 4, 0, 0, 0, 0, 62, 0, 0, 0,176, 7, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 68, 65, 84, 65,128, 61, 0, 0, 40,233,198, 4, 0, 0, 0, 0,
- 59, 0, 0, 0,176, 7, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
- 43, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 46, 0, 0, 0, 6, 0, 0, 0,
- 44, 0, 0, 0, 7, 0, 0, 0, 43, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 4, 0, 0, 0, 9, 0, 0, 0,
- 41, 0, 0, 0, 10, 0, 0, 0, 5, 0, 0, 0, 11, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 44, 0, 0, 0, 12, 0, 0, 0,
- 42, 0, 0, 0, 13, 0, 0, 0, 2, 0, 0, 0, 14, 0, 0, 0, 8, 0, 0, 0, 15, 0, 0, 0, 6, 0, 0, 0, 16, 0, 0, 0,
- 4, 0, 0, 0, 8, 0, 0, 0, 7, 0, 0, 0, 17, 0, 0, 0, 9, 0, 0, 0, 18, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0,
- 5, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 10, 0, 0, 0, 21, 0, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0,
- 2, 0, 0, 0, 1, 0, 0, 0, 9, 0, 0, 0, 22, 0, 0, 0, 11, 0, 0, 0, 23, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
- 3, 0, 0, 0, 18, 0, 0, 0, 10, 0, 0, 0, 24, 0, 0, 0, 12, 0, 0, 0, 25, 0, 0, 0, 14, 0, 0, 0, 26, 0, 0, 0,
- 8, 0, 0, 0, 21, 0, 0, 0,112, 0, 0, 0,236, 3, 0, 0, 13, 0, 0, 0, 27, 0, 0, 0, 11, 0, 0, 0, 22, 0, 0, 0,
- 9, 0, 0, 0,235, 3, 0, 0, 8, 0, 0, 0, 26, 0, 0, 0, 14, 0, 0, 0, 28, 0, 0, 0, 15, 0, 0, 0, 29, 0, 0, 0,
- 6, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0,234, 3, 0, 0,112, 0, 0, 0,235, 3, 0, 0, 9, 0, 0, 0, 17, 0, 0, 0,
- 7, 0, 0, 0, 30, 0, 0, 0, 14, 0, 0, 0, 31, 0, 0, 0, 19, 0, 0, 0, 32, 0, 0, 0, 17, 0, 0, 0, 33, 0, 0, 0,
- 15, 0, 0, 0, 28, 0, 0, 0, 18, 0, 0, 0, 34, 0, 0, 0, 20, 0, 0, 0,233, 3, 0, 0,112, 0, 0, 0,234, 3, 0, 0,
- 16, 0, 0, 0, 35, 0, 0, 0, 12, 0, 0, 0, 36, 0, 0, 0, 21, 0, 0, 0, 37, 0, 0, 0, 19, 0, 0, 0, 31, 0, 0, 0,
- 14, 0, 0, 0, 25, 0, 0, 0, 20, 0, 0, 0, 38, 0, 0, 0, 22, 0, 0, 0, 39, 0, 0, 0, 13, 0, 0, 0,236, 3, 0, 0,
-112, 0, 0, 0,233, 3, 0, 0, 21, 0, 0, 0, 40, 0, 0, 0, 23, 0, 0, 0, 41, 0, 0, 0, 25, 0, 0, 0, 42, 0, 0, 0,
- 19, 0, 0, 0, 37, 0, 0, 0, 26, 0, 0, 0, 43, 0, 0, 0, 24, 0, 0, 0, 44, 0, 0, 0, 22, 0, 0, 0, 38, 0, 0, 0,
- 20, 0, 0, 0, 45, 0, 0, 0, 19, 0, 0, 0, 42, 0, 0, 0, 25, 0, 0, 0, 46, 0, 0, 0, 27, 0, 0, 0, 47, 0, 0, 0,
- 17, 0, 0, 0, 32, 0, 0, 0, 28, 0, 0, 0, 48, 0, 0, 0, 26, 0, 0, 0, 45, 0, 0, 0, 20, 0, 0, 0, 34, 0, 0, 0,
- 18, 0, 0, 0, 49, 0, 0, 0, 25, 0, 0, 0, 50, 0, 0, 0, 31, 0, 0, 0, 51, 0, 0, 0, 29, 0, 0, 0, 52, 0, 0, 0,
- 27, 0, 0, 0, 46, 0, 0, 0, 30, 0, 0, 0, 53, 0, 0, 0, 32, 0, 0, 0, 54, 0, 0, 0, 26, 0, 0, 0, 48, 0, 0, 0,
- 28, 0, 0, 0, 55, 0, 0, 0, 23, 0, 0, 0, 56, 0, 0, 0, 33, 0, 0, 0, 57, 0, 0, 0, 31, 0, 0, 0, 50, 0, 0, 0,
- 25, 0, 0, 0, 41, 0, 0, 0, 32, 0, 0, 0, 58, 0, 0, 0, 34, 0, 0, 0, 59, 0, 0, 0, 24, 0, 0, 0, 43, 0, 0, 0,
- 26, 0, 0, 0, 54, 0, 0, 0, 33, 0, 0, 0, 60, 0, 0, 0, 35, 0, 0, 0, 61, 0, 0, 0, 37, 0, 0, 0, 62, 0, 0, 0,
- 31, 0, 0, 0, 57, 0, 0, 0, 38, 0, 0, 0, 63, 0, 0, 0, 36, 0, 0, 0, 64, 0, 0, 0, 34, 0, 0, 0, 58, 0, 0, 0,
- 32, 0, 0, 0, 65, 0, 0, 0, 31, 0, 0, 0, 62, 0, 0, 0, 37, 0, 0, 0, 66, 0, 0, 0, 39, 0, 0, 0, 67, 0, 0, 0,
- 29, 0, 0, 0, 51, 0, 0, 0, 40, 0, 0, 0, 68, 0, 0, 0, 38, 0, 0, 0, 65, 0, 0, 0, 32, 0, 0, 0, 53, 0, 0, 0,
- 30, 0, 0, 0, 69, 0, 0, 0, 37, 0, 0, 0, 70, 0, 0, 0, 43, 0, 0, 0, 10, 0, 0, 0, 41, 0, 0, 0, 71, 0, 0, 0,
- 39, 0, 0, 0, 66, 0, 0, 0, 42, 0, 0, 0, 12, 0, 0, 0, 44, 0, 0, 0, 72, 0, 0, 0, 38, 0, 0, 0, 68, 0, 0, 0,
- 40, 0, 0, 0, 73, 0, 0, 0, 35, 0, 0, 0, 74, 0, 0, 0, 45, 0, 0, 0, 3, 0, 0, 0, 43, 0, 0, 0, 70, 0, 0, 0,
- 37, 0, 0, 0, 61, 0, 0, 0, 44, 0, 0, 0, 6, 0, 0, 0, 46, 0, 0, 0, 75, 0, 0, 0, 36, 0, 0, 0, 63, 0, 0, 0,
- 38, 0, 0, 0, 72, 0, 0, 0, 45, 0, 0, 0, 74, 0, 0, 0, 35, 0, 0, 0, 76, 0, 0, 0, 49, 0, 0, 0, 77, 0, 0, 0,
- 47, 0, 0, 0, 78, 0, 0, 0, 50, 0, 0, 0, 79, 0, 0, 0, 36, 0, 0, 0, 75, 0, 0, 0, 46, 0, 0, 0, 80, 0, 0, 0,
- 48, 0, 0, 0, 81, 0, 0, 0, 35, 0, 0, 0, 60, 0, 0, 0, 33, 0, 0, 0, 82, 0, 0, 0, 51, 0, 0, 0, 83, 0, 0, 0,
- 49, 0, 0, 0, 76, 0, 0, 0, 52, 0, 0, 0, 84, 0, 0, 0, 34, 0, 0, 0, 64, 0, 0, 0, 36, 0, 0, 0, 79, 0, 0, 0,
- 50, 0, 0, 0, 85, 0, 0, 0, 33, 0, 0, 0, 56, 0, 0, 0, 23, 0, 0, 0, 86, 0, 0, 0, 53, 0, 0, 0, 87, 0, 0, 0,
- 51, 0, 0, 0, 82, 0, 0, 0, 54, 0, 0, 0, 88, 0, 0, 0, 24, 0, 0, 0, 59, 0, 0, 0, 34, 0, 0, 0, 84, 0, 0, 0,
- 52, 0, 0, 0, 89, 0, 0, 0, 23, 0, 0, 0, 40, 0, 0, 0, 21, 0, 0, 0, 90, 0, 0, 0, 55, 0, 0, 0, 91, 0, 0, 0,
- 53, 0, 0, 0, 86, 0, 0, 0, 56, 0, 0, 0, 92, 0, 0, 0, 22, 0, 0, 0, 44, 0, 0, 0, 24, 0, 0, 0, 88, 0, 0, 0,
- 54, 0, 0, 0, 93, 0, 0, 0, 21, 0, 0, 0, 36, 0, 0, 0, 12, 0, 0, 0, 94, 0, 0, 0, 57, 0, 0, 0, 95, 0, 0, 0,
- 55, 0, 0, 0, 90, 0, 0, 0, 58, 0, 0, 0, 96, 0, 0, 0, 13, 0, 0, 0, 39, 0, 0, 0, 22, 0, 0, 0, 92, 0, 0, 0,
- 56, 0, 0, 0, 97, 0, 0, 0, 12, 0, 0, 0, 24, 0, 0, 0, 10, 0, 0, 0, 98, 0, 0, 0, 61, 0, 0, 0, 99, 0, 0, 0,
- 57, 0, 0, 0, 94, 0, 0, 0, 62, 0, 0, 0,100, 0, 0, 0, 11, 0, 0, 0, 27, 0, 0, 0, 13, 0, 0, 0, 96, 0, 0, 0,
- 58, 0, 0, 0,101, 0, 0, 0, 10, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,102, 0, 0, 0, 63, 0, 0, 0,103, 0, 0, 0,
- 61, 0, 0, 0, 98, 0, 0, 0, 64, 0, 0, 0,104, 0, 0, 0, 1, 0, 0, 0, 23, 0, 0, 0, 11, 0, 0, 0,100, 0, 0, 0,
- 62, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 78, 0, 0, 0, 47, 0, 0, 0,106, 0, 0, 0,
- 63, 0, 0, 0,102, 0, 0, 0, 48, 0, 0, 0, 80, 0, 0, 0, 46, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0,104, 0, 0, 0,
- 64, 0, 0, 0,107, 0, 0, 0, 59, 0, 0, 0,108, 0, 0, 0, 63, 0, 0, 0,106, 0, 0, 0, 47, 0, 0, 0,109, 0, 0, 0,
- 48, 0, 0, 0,107, 0, 0, 0, 64, 0, 0, 0,110, 0, 0, 0, 60, 0, 0, 0,111, 0, 0, 0, 61, 0, 0, 0,103, 0, 0, 0,
- 63, 0, 0, 0,108, 0, 0, 0, 59, 0, 0, 0,112, 0, 0, 0, 60, 0, 0, 0,110, 0, 0, 0, 64, 0, 0, 0,105, 0, 0, 0,
- 62, 0, 0, 0,113, 0, 0, 0, 59, 0, 0, 0,114, 0, 0, 0, 57, 0, 0, 0, 99, 0, 0, 0, 61, 0, 0, 0,112, 0, 0, 0,
- 62, 0, 0, 0,101, 0, 0, 0, 58, 0, 0, 0,115, 0, 0, 0, 60, 0, 0, 0,113, 0, 0, 0, 59, 0, 0, 0,116, 0, 0, 0,
- 55, 0, 0, 0, 95, 0, 0, 0, 57, 0, 0, 0,114, 0, 0, 0, 58, 0, 0, 0, 97, 0, 0, 0, 56, 0, 0, 0,117, 0, 0, 0,
- 60, 0, 0, 0,115, 0, 0, 0, 59, 0, 0, 0,118, 0, 0, 0, 53, 0, 0, 0, 91, 0, 0, 0, 55, 0, 0, 0,116, 0, 0, 0,
- 56, 0, 0, 0, 93, 0, 0, 0, 54, 0, 0, 0,119, 0, 0, 0, 60, 0, 0, 0,117, 0, 0, 0, 59, 0, 0, 0,120, 0, 0, 0,
- 51, 0, 0, 0, 87, 0, 0, 0, 53, 0, 0, 0,118, 0, 0, 0, 54, 0, 0, 0, 89, 0, 0, 0, 52, 0, 0, 0,121, 0, 0, 0,
- 60, 0, 0, 0,119, 0, 0, 0, 59, 0, 0, 0,122, 0, 0, 0, 49, 0, 0, 0, 83, 0, 0, 0, 51, 0, 0, 0,120, 0, 0, 0,
- 52, 0, 0, 0, 85, 0, 0, 0, 50, 0, 0, 0,123, 0, 0, 0, 60, 0, 0, 0,121, 0, 0, 0, 59, 0, 0, 0,109, 0, 0, 0,
- 47, 0, 0, 0, 77, 0, 0, 0, 49, 0, 0, 0,122, 0, 0, 0, 50, 0, 0, 0, 81, 0, 0, 0, 48, 0, 0, 0,111, 0, 0, 0,
- 60, 0, 0, 0,123, 0, 0, 0, 87, 0, 0, 0,124, 0, 0, 0,171, 0, 0, 0,125, 0, 0, 0,173, 0, 0, 0,126, 0, 0, 0,
- 89, 0, 0, 0,127, 0, 0, 0,173, 0, 0, 0,128, 0, 0, 0,172, 0, 0, 0,129, 0, 0, 0, 88, 0, 0, 0,130, 0, 0, 0,
- 89, 0, 0, 0,126, 0, 0, 0, 85, 0, 0, 0,131, 0, 0, 0,169, 0, 0, 0,132, 0, 0, 0,171, 0, 0, 0,124, 0, 0, 0,
- 87, 0, 0, 0,133, 0, 0, 0,172, 0, 0, 0,134, 0, 0, 0,170, 0, 0, 0,135, 0, 0, 0, 86, 0, 0, 0,136, 0, 0, 0,
- 88, 0, 0, 0,129, 0, 0, 0, 83, 0, 0, 0,137, 0, 0, 0,167, 0, 0, 0,138, 0, 0, 0,169, 0, 0, 0,131, 0, 0, 0,
- 85, 0, 0, 0,139, 0, 0, 0,170, 0, 0, 0,140, 0, 0, 0,168, 0, 0, 0,141, 0, 0, 0, 84, 0, 0, 0,142, 0, 0, 0,
- 86, 0, 0, 0,135, 0, 0, 0, 81, 0, 0, 0,143, 0, 0, 0,165, 0, 0, 0,144, 0, 0, 0,167, 0, 0, 0,137, 0, 0, 0,
- 83, 0, 0, 0,145, 0, 0, 0,168, 0, 0, 0,146, 0, 0, 0,166, 0, 0, 0,147, 0, 0, 0, 82, 0, 0, 0,148, 0, 0, 0,
- 84, 0, 0, 0,141, 0, 0, 0, 79, 0, 0, 0,149, 0, 0, 0,163, 0, 0, 0,150, 0, 0, 0,165, 0, 0, 0,143, 0, 0, 0,
- 81, 0, 0, 0,151, 0, 0, 0,166, 0, 0, 0,152, 0, 0, 0,164, 0, 0, 0,153, 0, 0, 0, 80, 0, 0, 0,154, 0, 0, 0,
- 82, 0, 0, 0,147, 0, 0, 0, 77, 0, 0, 0,155, 0, 0, 0, 90, 0, 0, 0,156, 0, 0, 0,143, 0, 0, 0,157, 0, 0, 0,
-161, 0, 0, 0,158, 0, 0, 0,144, 0, 0, 0,159, 0, 0, 0, 91, 0, 0, 0,160, 0, 0, 0, 78, 0, 0, 0,161, 0, 0, 0,
-162, 0, 0, 0,162, 0, 0, 0, 90, 0, 0, 0,163, 0, 0, 0, 92, 0, 0, 0,164, 0, 0, 0,145, 0, 0, 0,165, 0, 0, 0,
-143, 0, 0, 0,156, 0, 0, 0,146, 0, 0, 0,166, 0, 0, 0, 93, 0, 0, 0,167, 0, 0, 0, 91, 0, 0, 0,159, 0, 0, 0,
-144, 0, 0, 0,168, 0, 0, 0, 92, 0, 0, 0,169, 0, 0, 0, 94, 0, 0, 0,170, 0, 0, 0,147, 0, 0, 0,171, 0, 0, 0,
-145, 0, 0, 0,164, 0, 0, 0,148, 0, 0, 0,172, 0, 0, 0, 95, 0, 0, 0,173, 0, 0, 0, 93, 0, 0, 0,166, 0, 0, 0,
-146, 0, 0, 0,174, 0, 0, 0, 94, 0, 0, 0,175, 0, 0, 0, 96, 0, 0, 0,176, 0, 0, 0,149, 0, 0, 0,177, 0, 0, 0,
-147, 0, 0, 0,170, 0, 0, 0,150, 0, 0, 0,178, 0, 0, 0, 97, 0, 0, 0,179, 0, 0, 0, 95, 0, 0, 0,172, 0, 0, 0,
-148, 0, 0, 0,180, 0, 0, 0, 96, 0, 0, 0,181, 0, 0, 0, 98, 0, 0, 0,182, 0, 0, 0,151, 0, 0, 0,183, 0, 0, 0,
-149, 0, 0, 0,176, 0, 0, 0,152, 0, 0, 0,184, 0, 0, 0, 99, 0, 0, 0,185, 0, 0, 0, 97, 0, 0, 0,178, 0, 0, 0,
-150, 0, 0, 0,186, 0, 0, 0, 98, 0, 0, 0,187, 0, 0, 0,100, 0, 0, 0,188, 0, 0, 0,153, 0, 0, 0,189, 0, 0, 0,
-151, 0, 0, 0,182, 0, 0, 0,154, 0, 0, 0,190, 0, 0, 0,101, 0, 0, 0,191, 0, 0, 0, 99, 0, 0, 0,184, 0, 0, 0,
-152, 0, 0, 0,192, 0, 0, 0,100, 0, 0, 0,193, 0, 0, 0,102, 0, 0, 0,194, 0, 0, 0,155, 0, 0, 0,195, 0, 0, 0,
-153, 0, 0, 0,188, 0, 0, 0,156, 0, 0, 0,196, 0, 0, 0,103, 0, 0, 0,197, 0, 0, 0,101, 0, 0, 0,190, 0, 0, 0,
-154, 0, 0, 0,198, 0, 0, 0,102, 0, 0, 0,199, 0, 0, 0,104, 0, 0, 0,200, 0, 0, 0,157, 0, 0, 0,201, 0, 0, 0,
-155, 0, 0, 0,194, 0, 0, 0,158, 0, 0, 0,202, 0, 0, 0,105, 0, 0, 0,203, 0, 0, 0,103, 0, 0, 0,196, 0, 0, 0,
-156, 0, 0, 0,204, 0, 0, 0,104, 0, 0, 0,205, 0, 0, 0,106, 0, 0, 0,206, 0, 0, 0,159, 0, 0, 0,207, 0, 0, 0,
-157, 0, 0, 0,200, 0, 0, 0,160, 0, 0, 0,208, 0, 0, 0,107, 0, 0, 0,209, 0, 0, 0,105, 0, 0, 0,202, 0, 0, 0,
-158, 0, 0, 0,210, 0, 0, 0,106, 0, 0, 0,211, 0, 0, 0, 65, 0, 0, 0,212, 0, 0, 0, 66, 0, 0, 0,213, 0, 0, 0,
-159, 0, 0, 0,206, 0, 0, 0, 66, 0, 0, 0,212, 0, 0, 0, 65, 0, 0, 0,214, 0, 0, 0,107, 0, 0, 0,208, 0, 0, 0,
-160, 0, 0, 0,215, 0, 0, 0,108, 0, 0, 0,216, 0, 0, 0,125, 0, 0, 0,217, 0, 0, 0,157, 0, 0, 0,207, 0, 0, 0,
-159, 0, 0, 0,218, 0, 0, 0,158, 0, 0, 0,219, 0, 0, 0,126, 0, 0, 0,220, 0, 0, 0,109, 0, 0, 0,221, 0, 0, 0,
-160, 0, 0, 0,210, 0, 0, 0,125, 0, 0, 0,222, 0, 0, 0,176, 0, 0, 0,223, 0, 0, 0,155, 0, 0, 0,201, 0, 0, 0,
-157, 0, 0, 0,217, 0, 0, 0,156, 0, 0, 0,224, 0, 0, 0,177, 0, 0, 0,225, 0, 0, 0,126, 0, 0, 0,219, 0, 0, 0,
-158, 0, 0, 0,204, 0, 0, 0,123, 0, 0, 0,226, 0, 0, 0,153, 0, 0, 0,195, 0, 0, 0,155, 0, 0, 0,223, 0, 0, 0,
-176, 0, 0, 0,227, 0, 0, 0,156, 0, 0, 0,198, 0, 0, 0,154, 0, 0, 0,228, 0, 0, 0,124, 0, 0, 0,229, 0, 0, 0,
-177, 0, 0, 0,224, 0, 0, 0,121, 0, 0, 0,230, 0, 0, 0,151, 0, 0, 0,189, 0, 0, 0,153, 0, 0, 0,226, 0, 0, 0,
-123, 0, 0, 0,231, 0, 0, 0,154, 0, 0, 0,192, 0, 0, 0,152, 0, 0, 0,232, 0, 0, 0,122, 0, 0, 0,233, 0, 0, 0,
-124, 0, 0, 0,228, 0, 0, 0,119, 0, 0, 0,234, 0, 0, 0,149, 0, 0, 0,183, 0, 0, 0,151, 0, 0, 0,230, 0, 0, 0,
-121, 0, 0, 0,235, 0, 0, 0,152, 0, 0, 0,186, 0, 0, 0,150, 0, 0, 0,236, 0, 0, 0,120, 0, 0, 0,237, 0, 0, 0,
-122, 0, 0, 0,232, 0, 0, 0,117, 0, 0, 0,238, 0, 0, 0,147, 0, 0, 0,177, 0, 0, 0,149, 0, 0, 0,234, 0, 0, 0,
-119, 0, 0, 0,239, 0, 0, 0,150, 0, 0, 0,180, 0, 0, 0,148, 0, 0, 0,240, 0, 0, 0,118, 0, 0, 0,241, 0, 0, 0,
-120, 0, 0, 0,236, 0, 0, 0,115, 0, 0, 0,242, 0, 0, 0,145, 0, 0, 0,171, 0, 0, 0,147, 0, 0, 0,238, 0, 0, 0,
-117, 0, 0, 0,243, 0, 0, 0,148, 0, 0, 0,174, 0, 0, 0,146, 0, 0, 0,244, 0, 0, 0,116, 0, 0, 0,245, 0, 0, 0,
-118, 0, 0, 0,240, 0, 0, 0,113, 0, 0, 0,246, 0, 0, 0,143, 0, 0, 0,165, 0, 0, 0,145, 0, 0, 0,242, 0, 0, 0,
-115, 0, 0, 0,247, 0, 0, 0,146, 0, 0, 0,168, 0, 0, 0,144, 0, 0, 0,248, 0, 0, 0,114, 0, 0, 0,249, 0, 0, 0,
-116, 0, 0, 0,244, 0, 0, 0, 14, 0, 0, 0,232, 3, 0, 0,161, 0, 0, 0,157, 0, 0, 0,143, 0, 0, 0,246, 0, 0, 0,
-113, 0, 0, 0,231, 3, 0, 0,144, 0, 0, 0,162, 0, 0, 0,162, 0, 0, 0,250, 0, 0, 0,112, 0, 0, 0,251, 0, 0, 0,
-114, 0, 0, 0,248, 0, 0, 0, 14, 0, 0, 0,230, 3, 0, 0,178, 0, 0, 0,252, 0, 0, 0,174, 0, 0, 0,253, 0, 0, 0,
-161, 0, 0, 0,232, 3, 0, 0,174, 0, 0, 0,254, 0, 0, 0,179, 0, 0, 0,255, 0, 0, 0,112, 0, 0, 0,250, 0, 0, 0,
-162, 0, 0, 0, 0, 1, 0, 0,108, 0, 0, 0,218, 0, 0, 0,159, 0, 0, 0,213, 0, 0, 0, 66, 0, 0, 0, 1, 1, 0, 0,
-110, 0, 0, 0, 2, 1, 0, 0, 66, 0, 0, 0,215, 0, 0, 0,160, 0, 0, 0,221, 0, 0, 0,109, 0, 0, 0, 3, 1, 0, 0,
-111, 0, 0, 0, 4, 1, 0, 0,110, 0, 0, 0, 1, 1, 0, 0, 66, 0, 0, 0, 5, 1, 0, 0,175, 0, 0, 0, 6, 1, 0, 0,
-180, 0, 0, 0, 7, 1, 0, 0,175, 0, 0, 0, 5, 1, 0, 0, 66, 0, 0, 0, 4, 1, 0, 0,111, 0, 0, 0, 8, 1, 0, 0,
-181, 0, 0, 0, 9, 1, 0, 0,174, 0, 0, 0,252, 0, 0, 0,178, 0, 0, 0, 10, 1, 0, 0,180, 0, 0, 0, 6, 1, 0, 0,
-175, 0, 0, 0, 11, 1, 0, 0,181, 0, 0, 0, 12, 1, 0, 0,179, 0, 0, 0,254, 0, 0, 0,174, 0, 0, 0, 11, 1, 0, 0,
-175, 0, 0, 0, 9, 1, 0, 0,132, 0, 0, 0, 13, 1, 0, 0,134, 0, 0, 0, 14, 1, 0, 0,173, 0, 0, 0,125, 0, 0, 0,
-171, 0, 0, 0, 15, 1, 0, 0,173, 0, 0, 0, 14, 1, 0, 0,134, 0, 0, 0, 16, 1, 0, 0,133, 0, 0, 0, 17, 1, 0, 0,
-172, 0, 0, 0,128, 0, 0, 0,130, 0, 0, 0, 18, 1, 0, 0,132, 0, 0, 0, 15, 1, 0, 0,171, 0, 0, 0,132, 0, 0, 0,
-169, 0, 0, 0, 19, 1, 0, 0,172, 0, 0, 0, 17, 1, 0, 0,133, 0, 0, 0, 20, 1, 0, 0,131, 0, 0, 0, 21, 1, 0, 0,
-170, 0, 0, 0,134, 0, 0, 0,128, 0, 0, 0, 22, 1, 0, 0,130, 0, 0, 0, 19, 1, 0, 0,169, 0, 0, 0,138, 0, 0, 0,
-167, 0, 0, 0, 23, 1, 0, 0,170, 0, 0, 0, 21, 1, 0, 0,131, 0, 0, 0, 24, 1, 0, 0,129, 0, 0, 0, 25, 1, 0, 0,
-168, 0, 0, 0,140, 0, 0, 0,163, 0, 0, 0, 26, 1, 0, 0,184, 0, 0, 0, 27, 1, 0, 0,182, 0, 0, 0, 28, 1, 0, 0,
-165, 0, 0, 0,150, 0, 0, 0,183, 0, 0, 0, 29, 1, 0, 0,185, 0, 0, 0, 30, 1, 0, 0,164, 0, 0, 0,152, 0, 0, 0,
-166, 0, 0, 0, 31, 1, 0, 0,128, 0, 0, 0, 23, 1, 0, 0,167, 0, 0, 0,144, 0, 0, 0,165, 0, 0, 0, 28, 1, 0, 0,
-182, 0, 0, 0, 32, 1, 0, 0,166, 0, 0, 0,146, 0, 0, 0,168, 0, 0, 0, 25, 1, 0, 0,129, 0, 0, 0, 33, 1, 0, 0,
-183, 0, 0, 0, 31, 1, 0, 0,141, 0, 0, 0, 34, 1, 0, 0,187, 0, 0, 0, 35, 1, 0, 0,186, 0, 0, 0, 36, 1, 0, 0,
-184, 0, 0, 0, 37, 1, 0, 0,186, 0, 0, 0, 35, 1, 0, 0,187, 0, 0, 0, 38, 1, 0, 0,142, 0, 0, 0, 39, 1, 0, 0,
-185, 0, 0, 0, 40, 1, 0, 0,182, 0, 0, 0, 27, 1, 0, 0,184, 0, 0, 0, 36, 1, 0, 0,186, 0, 0, 0, 41, 1, 0, 0,
- 67, 0, 0, 0, 42, 1, 0, 0,186, 0, 0, 0, 40, 1, 0, 0,185, 0, 0, 0, 29, 1, 0, 0,183, 0, 0, 0, 43, 1, 0, 0,
- 67, 0, 0, 0, 41, 1, 0, 0,127, 0, 0, 0, 44, 1, 0, 0,128, 0, 0, 0, 32, 1, 0, 0,182, 0, 0, 0, 42, 1, 0, 0,
- 67, 0, 0, 0, 45, 1, 0, 0,183, 0, 0, 0, 33, 1, 0, 0,129, 0, 0, 0, 46, 1, 0, 0,127, 0, 0, 0, 45, 1, 0, 0,
- 67, 0, 0, 0, 43, 1, 0, 0,139, 0, 0, 0, 47, 1, 0, 0,190, 0, 0, 0, 48, 1, 0, 0,188, 0, 0, 0, 49, 1, 0, 0,
-141, 0, 0, 0, 50, 1, 0, 0,189, 0, 0, 0, 51, 1, 0, 0,191, 0, 0, 0, 52, 1, 0, 0,140, 0, 0, 0, 53, 1, 0, 0,
-142, 0, 0, 0, 54, 1, 0, 0,137, 0, 0, 0, 55, 1, 0, 0,192, 0, 0, 0, 56, 1, 0, 0,190, 0, 0, 0, 47, 1, 0, 0,
-139, 0, 0, 0, 57, 1, 0, 0,191, 0, 0, 0, 58, 1, 0, 0,193, 0, 0, 0, 59, 1, 0, 0,138, 0, 0, 0, 60, 1, 0, 0,
-140, 0, 0, 0, 52, 1, 0, 0,136, 0, 0, 0, 61, 1, 0, 0,194, 0, 0, 0, 62, 1, 0, 0,192, 0, 0, 0, 55, 1, 0, 0,
-137, 0, 0, 0, 63, 1, 0, 0,193, 0, 0, 0, 64, 1, 0, 0,195, 0, 0, 0, 65, 1, 0, 0,136, 0, 0, 0, 66, 1, 0, 0,
-138, 0, 0, 0, 59, 1, 0, 0,135, 0, 0, 0, 67, 1, 0, 0, 69, 0, 0, 0, 68, 1, 0, 0,194, 0, 0, 0, 61, 1, 0, 0,
-136, 0, 0, 0, 69, 1, 0, 0,195, 0, 0, 0, 70, 1, 0, 0, 69, 0, 0, 0, 67, 1, 0, 0,135, 0, 0, 0, 69, 1, 0, 0,
-136, 0, 0, 0, 65, 1, 0, 0,187, 0, 0, 0, 34, 1, 0, 0,141, 0, 0, 0, 49, 1, 0, 0,188, 0, 0, 0, 71, 1, 0, 0,
- 68, 0, 0, 0, 72, 1, 0, 0,189, 0, 0, 0, 54, 1, 0, 0,142, 0, 0, 0, 38, 1, 0, 0,187, 0, 0, 0, 72, 1, 0, 0,
- 68, 0, 0, 0, 73, 1, 0, 0, 68, 0, 0, 0, 71, 1, 0, 0,188, 0, 0, 0, 74, 1, 0, 0,203, 0, 0, 0, 75, 1, 0, 0,
-205, 0, 0, 0, 76, 1, 0, 0,204, 0, 0, 0, 77, 1, 0, 0,189, 0, 0, 0, 73, 1, 0, 0, 68, 0, 0, 0, 76, 1, 0, 0,
-205, 0, 0, 0, 78, 1, 0, 0, 69, 0, 0, 0, 79, 1, 0, 0,196, 0, 0, 0, 80, 1, 0, 0,197, 0, 0, 0, 81, 1, 0, 0,
-194, 0, 0, 0, 68, 1, 0, 0,198, 0, 0, 0, 82, 1, 0, 0,196, 0, 0, 0, 79, 1, 0, 0, 69, 0, 0, 0, 70, 1, 0, 0,
-195, 0, 0, 0, 83, 1, 0, 0,194, 0, 0, 0, 81, 1, 0, 0,197, 0, 0, 0, 84, 1, 0, 0,199, 0, 0, 0, 85, 1, 0, 0,
-192, 0, 0, 0, 62, 1, 0, 0,200, 0, 0, 0, 86, 1, 0, 0,198, 0, 0, 0, 83, 1, 0, 0,195, 0, 0, 0, 64, 1, 0, 0,
-193, 0, 0, 0, 87, 1, 0, 0,192, 0, 0, 0, 85, 1, 0, 0,199, 0, 0, 0, 88, 1, 0, 0,201, 0, 0, 0, 89, 1, 0, 0,
-190, 0, 0, 0, 56, 1, 0, 0,202, 0, 0, 0, 90, 1, 0, 0,200, 0, 0, 0, 87, 1, 0, 0,193, 0, 0, 0, 58, 1, 0, 0,
-191, 0, 0, 0, 91, 1, 0, 0,190, 0, 0, 0, 89, 1, 0, 0,201, 0, 0, 0, 92, 1, 0, 0,203, 0, 0, 0, 74, 1, 0, 0,
-188, 0, 0, 0, 48, 1, 0, 0,204, 0, 0, 0, 93, 1, 0, 0,202, 0, 0, 0, 91, 1, 0, 0,191, 0, 0, 0, 51, 1, 0, 0,
-189, 0, 0, 0, 77, 1, 0, 0,196, 0, 0, 0, 94, 1, 0, 0,201, 0, 0, 0, 88, 1, 0, 0,199, 0, 0, 0, 84, 1, 0, 0,
-197, 0, 0, 0, 80, 1, 0, 0,200, 0, 0, 0, 90, 1, 0, 0,202, 0, 0, 0, 95, 1, 0, 0,196, 0, 0, 0, 82, 1, 0, 0,
-198, 0, 0, 0, 86, 1, 0, 0,196, 0, 0, 0, 96, 1, 0, 0,205, 0, 0, 0, 75, 1, 0, 0,203, 0, 0, 0, 92, 1, 0, 0,
-201, 0, 0, 0, 94, 1, 0, 0,204, 0, 0, 0, 78, 1, 0, 0,205, 0, 0, 0, 96, 1, 0, 0,196, 0, 0, 0, 95, 1, 0, 0,
-202, 0, 0, 0, 93, 1, 0, 0,136, 0, 0, 0, 63, 1, 0, 0,137, 0, 0, 0, 97, 1, 0, 0,161, 0, 0, 0,253, 0, 0, 0,
-174, 0, 0, 0, 98, 1, 0, 0,162, 0, 0, 0, 99, 1, 0, 0,138, 0, 0, 0, 66, 1, 0, 0,136, 0, 0, 0, 98, 1, 0, 0,
-174, 0, 0, 0, 0, 1, 0, 0,137, 0, 0, 0, 57, 1, 0, 0,139, 0, 0, 0,100, 1, 0, 0,208, 0, 0, 0,101, 1, 0, 0,
-161, 0, 0, 0, 97, 1, 0, 0,209, 0, 0, 0,102, 1, 0, 0,140, 0, 0, 0, 60, 1, 0, 0,138, 0, 0, 0, 99, 1, 0, 0,
-162, 0, 0, 0,103, 1, 0, 0,139, 0, 0, 0, 50, 1, 0, 0,141, 0, 0, 0,104, 1, 0, 0,210, 0, 0, 0,105, 1, 0, 0,
-208, 0, 0, 0,100, 1, 0, 0,211, 0, 0, 0,106, 1, 0, 0,142, 0, 0, 0, 53, 1, 0, 0,140, 0, 0, 0,102, 1, 0, 0,
-209, 0, 0, 0,107, 1, 0, 0,141, 0, 0, 0, 37, 1, 0, 0,184, 0, 0, 0, 26, 1, 0, 0,163, 0, 0, 0,108, 1, 0, 0,
-210, 0, 0, 0,104, 1, 0, 0,164, 0, 0, 0, 30, 1, 0, 0,185, 0, 0, 0, 39, 1, 0, 0,142, 0, 0, 0,106, 1, 0, 0,
-211, 0, 0, 0,109, 1, 0, 0, 79, 0, 0, 0,110, 1, 0, 0,206, 0, 0, 0,111, 1, 0, 0,210, 0, 0, 0,108, 1, 0, 0,
-163, 0, 0, 0,149, 0, 0, 0,211, 0, 0, 0,112, 1, 0, 0,207, 0, 0, 0,113, 1, 0, 0, 80, 0, 0, 0,153, 0, 0, 0,
-164, 0, 0, 0,109, 1, 0, 0,206, 0, 0, 0,114, 1, 0, 0,212, 0, 0, 0,115, 1, 0, 0,208, 0, 0, 0,105, 1, 0, 0,
-210, 0, 0, 0,111, 1, 0, 0,209, 0, 0, 0,116, 1, 0, 0,213, 0, 0, 0,117, 1, 0, 0,207, 0, 0, 0,112, 1, 0, 0,
-211, 0, 0, 0,107, 1, 0, 0, 77, 0, 0, 0,158, 0, 0, 0,161, 0, 0, 0,101, 1, 0, 0,208, 0, 0, 0,115, 1, 0, 0,
-212, 0, 0, 0,118, 1, 0, 0,209, 0, 0, 0,103, 1, 0, 0,162, 0, 0, 0,161, 0, 0, 0, 78, 0, 0, 0,119, 1, 0, 0,
-213, 0, 0, 0,116, 1, 0, 0,128, 0, 0, 0, 44, 1, 0, 0,127, 0, 0, 0,120, 1, 0, 0, 70, 0, 0, 0,121, 1, 0, 0,
-219, 0, 0, 0,122, 1, 0, 0, 70, 0, 0, 0,120, 1, 0, 0,127, 0, 0, 0, 46, 1, 0, 0,129, 0, 0, 0,123, 1, 0, 0,
-220, 0, 0, 0,124, 1, 0, 0,130, 0, 0, 0, 22, 1, 0, 0,128, 0, 0, 0,122, 1, 0, 0,219, 0, 0, 0,125, 1, 0, 0,
-217, 0, 0, 0,126, 1, 0, 0,220, 0, 0, 0,123, 1, 0, 0,129, 0, 0, 0, 24, 1, 0, 0,131, 0, 0, 0,127, 1, 0, 0,
-218, 0, 0, 0,128, 1, 0, 0,132, 0, 0, 0, 18, 1, 0, 0,130, 0, 0, 0,126, 1, 0, 0,217, 0, 0, 0,129, 1, 0, 0,
-215, 0, 0, 0,130, 1, 0, 0,218, 0, 0, 0,127, 1, 0, 0,131, 0, 0, 0, 20, 1, 0, 0,133, 0, 0, 0,131, 1, 0, 0,
-216, 0, 0, 0,132, 1, 0, 0,134, 0, 0, 0, 13, 1, 0, 0,132, 0, 0, 0,130, 1, 0, 0,215, 0, 0, 0,133, 1, 0, 0,
-214, 0, 0, 0,134, 1, 0, 0,216, 0, 0, 0,131, 1, 0, 0,133, 0, 0, 0, 16, 1, 0, 0,134, 0, 0, 0,134, 1, 0, 0,
-214, 0, 0, 0,135, 1, 0, 0,214, 0, 0, 0,133, 1, 0, 0,215, 0, 0, 0,136, 1, 0, 0,226, 0, 0, 0,137, 1, 0, 0,
-228, 0, 0, 0,138, 1, 0, 0,227, 0, 0, 0,139, 1, 0, 0,216, 0, 0, 0,135, 1, 0, 0,214, 0, 0, 0,138, 1, 0, 0,
-228, 0, 0, 0,140, 1, 0, 0,215, 0, 0, 0,129, 1, 0, 0,217, 0, 0, 0,141, 1, 0, 0,224, 0, 0, 0,142, 1, 0, 0,
-226, 0, 0, 0,136, 1, 0, 0,225, 0, 0, 0,143, 1, 0, 0,218, 0, 0, 0,132, 1, 0, 0,216, 0, 0, 0,139, 1, 0, 0,
-227, 0, 0, 0,144, 1, 0, 0,217, 0, 0, 0,125, 1, 0, 0,219, 0, 0, 0,145, 1, 0, 0,222, 0, 0, 0,146, 1, 0, 0,
-224, 0, 0, 0,141, 1, 0, 0,223, 0, 0, 0,147, 1, 0, 0,220, 0, 0, 0,128, 1, 0, 0,218, 0, 0, 0,143, 1, 0, 0,
-225, 0, 0, 0,148, 1, 0, 0,219, 0, 0, 0,121, 1, 0, 0, 70, 0, 0, 0,149, 1, 0, 0,221, 0, 0, 0,150, 1, 0, 0,
-222, 0, 0, 0,145, 1, 0, 0,221, 0, 0, 0,149, 1, 0, 0, 70, 0, 0, 0,124, 1, 0, 0,220, 0, 0, 0,147, 1, 0, 0,
-223, 0, 0, 0,151, 1, 0, 0,221, 0, 0, 0,152, 1, 0, 0,228, 0, 0, 0,137, 1, 0, 0,226, 0, 0, 0,153, 1, 0, 0,
-222, 0, 0, 0,150, 1, 0, 0,227, 0, 0, 0,140, 1, 0, 0,228, 0, 0, 0,152, 1, 0, 0,221, 0, 0, 0,151, 1, 0, 0,
-223, 0, 0, 0,154, 1, 0, 0,222, 0, 0, 0,153, 1, 0, 0,226, 0, 0, 0,142, 1, 0, 0,224, 0, 0, 0,146, 1, 0, 0,
-225, 0, 0, 0,144, 1, 0, 0,227, 0, 0, 0,154, 1, 0, 0,223, 0, 0, 0,148, 1, 0, 0,180, 0, 0, 0, 10, 1, 0, 0,
-178, 0, 0, 0,155, 1, 0, 0,231, 0, 0, 0,156, 1, 0, 0,229, 0, 0, 0,157, 1, 0, 0,232, 0, 0, 0,158, 1, 0, 0,
-179, 0, 0, 0, 12, 1, 0, 0,181, 0, 0, 0,159, 1, 0, 0,230, 0, 0, 0,160, 1, 0, 0,110, 0, 0, 0, 7, 1, 0, 0,
-180, 0, 0, 0,157, 1, 0, 0,229, 0, 0, 0,161, 1, 0, 0,251, 0, 0, 0,162, 1, 0, 0,230, 0, 0, 0,159, 1, 0, 0,
-181, 0, 0, 0, 8, 1, 0, 0,111, 0, 0, 0,163, 1, 0, 0,252, 0, 0, 0,164, 1, 0, 0,108, 0, 0, 0, 2, 1, 0, 0,
-110, 0, 0, 0,162, 1, 0, 0,251, 0, 0, 0,165, 1, 0, 0,253, 0, 0, 0,166, 1, 0, 0,252, 0, 0, 0,163, 1, 0, 0,
-111, 0, 0, 0, 3, 1, 0, 0,109, 0, 0, 0,167, 1, 0, 0,254, 0, 0, 0,168, 1, 0, 0,178, 0, 0, 0,230, 3, 0, 0,
- 14, 0, 0, 0,229, 3, 0, 0,249, 0, 0, 0,169, 1, 0, 0,231, 0, 0, 0,155, 1, 0, 0,250, 0, 0, 0,170, 1, 0, 0,
-112, 0, 0, 0,255, 0, 0, 0,179, 0, 0, 0,158, 1, 0, 0,232, 0, 0, 0,171, 1, 0, 0, 14, 0, 0, 0,231, 3, 0, 0,
-113, 0, 0, 0,172, 1, 0, 0,247, 0, 0, 0,173, 1, 0, 0,249, 0, 0, 0,229, 3, 0, 0,248, 0, 0, 0,174, 1, 0, 0,
-114, 0, 0, 0,251, 0, 0, 0,112, 0, 0, 0,170, 1, 0, 0,250, 0, 0, 0,175, 1, 0, 0,113, 0, 0, 0,247, 0, 0, 0,
-115, 0, 0, 0,176, 1, 0, 0,245, 0, 0, 0,177, 1, 0, 0,247, 0, 0, 0,172, 1, 0, 0,246, 0, 0, 0,178, 1, 0, 0,
-116, 0, 0, 0,249, 0, 0, 0,114, 0, 0, 0,174, 1, 0, 0,248, 0, 0, 0,179, 1, 0, 0,115, 0, 0, 0,243, 0, 0, 0,
-117, 0, 0, 0,180, 1, 0, 0,243, 0, 0, 0,181, 1, 0, 0,245, 0, 0, 0,176, 1, 0, 0,244, 0, 0, 0,182, 1, 0, 0,
-118, 0, 0, 0,245, 0, 0, 0,116, 0, 0, 0,178, 1, 0, 0,246, 0, 0, 0,183, 1, 0, 0,117, 0, 0, 0,239, 0, 0, 0,
-119, 0, 0, 0,184, 1, 0, 0,241, 0, 0, 0,185, 1, 0, 0,243, 0, 0, 0,180, 1, 0, 0,242, 0, 0, 0,186, 1, 0, 0,
-120, 0, 0, 0,241, 0, 0, 0,118, 0, 0, 0,182, 1, 0, 0,244, 0, 0, 0,187, 1, 0, 0,119, 0, 0, 0,235, 0, 0, 0,
-121, 0, 0, 0,188, 1, 0, 0,239, 0, 0, 0,189, 1, 0, 0,241, 0, 0, 0,184, 1, 0, 0,240, 0, 0, 0,190, 1, 0, 0,
-122, 0, 0, 0,237, 0, 0, 0,120, 0, 0, 0,186, 1, 0, 0,242, 0, 0, 0,191, 1, 0, 0,121, 0, 0, 0,231, 0, 0, 0,
-123, 0, 0, 0,192, 1, 0, 0,237, 0, 0, 0,193, 1, 0, 0,239, 0, 0, 0,188, 1, 0, 0,238, 0, 0, 0,194, 1, 0, 0,
-124, 0, 0, 0,233, 0, 0, 0,122, 0, 0, 0,190, 1, 0, 0,240, 0, 0, 0,195, 1, 0, 0,123, 0, 0, 0,227, 0, 0, 0,
-176, 0, 0, 0,196, 1, 0, 0,233, 0, 0, 0,197, 1, 0, 0,237, 0, 0, 0,192, 1, 0, 0,234, 0, 0, 0,198, 1, 0, 0,
-177, 0, 0, 0,229, 0, 0, 0,124, 0, 0, 0,194, 1, 0, 0,238, 0, 0, 0,199, 1, 0, 0,176, 0, 0, 0,222, 0, 0, 0,
-125, 0, 0, 0,200, 1, 0, 0,235, 0, 0, 0,201, 1, 0, 0,233, 0, 0, 0,196, 1, 0, 0,236, 0, 0, 0,202, 1, 0, 0,
-126, 0, 0, 0,225, 0, 0, 0,177, 0, 0, 0,198, 1, 0, 0,234, 0, 0, 0,203, 1, 0, 0,125, 0, 0, 0,216, 0, 0, 0,
-108, 0, 0, 0,166, 1, 0, 0,253, 0, 0, 0,204, 1, 0, 0,235, 0, 0, 0,200, 1, 0, 0,254, 0, 0, 0,167, 1, 0, 0,
-109, 0, 0, 0,220, 0, 0, 0,126, 0, 0, 0,202, 1, 0, 0,236, 0, 0, 0,205, 1, 0, 0,235, 0, 0, 0,204, 1, 0, 0,
-253, 0, 0, 0,206, 1, 0, 0,255, 0, 0, 0,207, 1, 0, 0, 17, 1, 0, 0,208, 1, 0, 0, 0, 1, 0, 0,209, 1, 0, 0,
-254, 0, 0, 0,205, 1, 0, 0,236, 0, 0, 0,210, 1, 0, 0, 18, 1, 0, 0,211, 1, 0, 0,233, 0, 0, 0,201, 1, 0, 0,
-235, 0, 0, 0,208, 1, 0, 0, 17, 1, 0, 0,212, 1, 0, 0, 19, 1, 0, 0,213, 1, 0, 0, 18, 1, 0, 0,210, 1, 0, 0,
-236, 0, 0, 0,203, 1, 0, 0,234, 0, 0, 0,214, 1, 0, 0, 20, 1, 0, 0,215, 1, 0, 0,237, 0, 0, 0,197, 1, 0, 0,
-233, 0, 0, 0,213, 1, 0, 0, 19, 1, 0, 0,216, 1, 0, 0, 15, 1, 0, 0,217, 1, 0, 0, 20, 1, 0, 0,214, 1, 0, 0,
-234, 0, 0, 0,199, 1, 0, 0,238, 0, 0, 0,218, 1, 0, 0, 16, 1, 0, 0,219, 1, 0, 0,239, 0, 0, 0,193, 1, 0, 0,
-237, 0, 0, 0,217, 1, 0, 0, 15, 1, 0, 0,220, 1, 0, 0, 13, 1, 0, 0,221, 1, 0, 0, 16, 1, 0, 0,218, 1, 0, 0,
-238, 0, 0, 0,195, 1, 0, 0,240, 0, 0, 0,222, 1, 0, 0, 14, 1, 0, 0,223, 1, 0, 0,241, 0, 0, 0,189, 1, 0, 0,
-239, 0, 0, 0,221, 1, 0, 0, 13, 1, 0, 0,224, 1, 0, 0, 11, 1, 0, 0,225, 1, 0, 0, 14, 1, 0, 0,222, 1, 0, 0,
-240, 0, 0, 0,191, 1, 0, 0,242, 0, 0, 0,226, 1, 0, 0, 12, 1, 0, 0,227, 1, 0, 0,243, 0, 0, 0,185, 1, 0, 0,
-241, 0, 0, 0,225, 1, 0, 0, 11, 1, 0, 0,228, 1, 0, 0, 9, 1, 0, 0,229, 1, 0, 0, 12, 1, 0, 0,226, 1, 0, 0,
-242, 0, 0, 0,187, 1, 0, 0,244, 0, 0, 0,230, 1, 0, 0, 10, 1, 0, 0,231, 1, 0, 0,245, 0, 0, 0,181, 1, 0, 0,
-243, 0, 0, 0,229, 1, 0, 0, 9, 1, 0, 0,232, 1, 0, 0, 7, 1, 0, 0,233, 1, 0, 0, 10, 1, 0, 0,230, 1, 0, 0,
-244, 0, 0, 0,183, 1, 0, 0,246, 0, 0, 0,234, 1, 0, 0, 8, 1, 0, 0,235, 1, 0, 0,247, 0, 0, 0,177, 1, 0, 0,
-245, 0, 0, 0,233, 1, 0, 0, 7, 1, 0, 0,236, 1, 0, 0, 5, 1, 0, 0,237, 1, 0, 0, 8, 1, 0, 0,234, 1, 0, 0,
-246, 0, 0, 0,179, 1, 0, 0,248, 0, 0, 0,238, 1, 0, 0, 6, 1, 0, 0,239, 1, 0, 0,249, 0, 0, 0,173, 1, 0, 0,
-247, 0, 0, 0,237, 1, 0, 0, 5, 1, 0, 0,240, 1, 0, 0, 3, 1, 0, 0,241, 1, 0, 0, 6, 1, 0, 0,238, 1, 0, 0,
-248, 0, 0, 0,175, 1, 0, 0,250, 0, 0, 0,242, 1, 0, 0, 4, 1, 0, 0,243, 1, 0, 0,231, 0, 0, 0,169, 1, 0, 0,
-249, 0, 0, 0,241, 1, 0, 0, 3, 1, 0, 0,244, 1, 0, 0, 21, 1, 0, 0,245, 1, 0, 0, 4, 1, 0, 0,242, 1, 0, 0,
-250, 0, 0, 0,171, 1, 0, 0,232, 0, 0, 0,246, 1, 0, 0, 22, 1, 0, 0,247, 1, 0, 0,253, 0, 0, 0,165, 1, 0, 0,
-251, 0, 0, 0,248, 1, 0, 0, 1, 1, 0, 0,249, 1, 0, 0,255, 0, 0, 0,206, 1, 0, 0, 2, 1, 0, 0,250, 1, 0, 0,
-252, 0, 0, 0,168, 1, 0, 0,254, 0, 0, 0,209, 1, 0, 0, 0, 1, 0, 0,251, 1, 0, 0,251, 0, 0, 0,161, 1, 0, 0,
-229, 0, 0, 0,252, 1, 0, 0, 23, 1, 0, 0,253, 1, 0, 0, 1, 1, 0, 0,248, 1, 0, 0, 24, 1, 0, 0,254, 1, 0, 0,
-230, 0, 0, 0,164, 1, 0, 0,252, 0, 0, 0,250, 1, 0, 0, 2, 1, 0, 0,255, 1, 0, 0,229, 0, 0, 0,156, 1, 0, 0,
-231, 0, 0, 0,245, 1, 0, 0, 21, 1, 0, 0, 0, 2, 0, 0, 23, 1, 0, 0,252, 1, 0, 0, 22, 1, 0, 0,246, 1, 0, 0,
-232, 0, 0, 0,160, 1, 0, 0,230, 0, 0, 0,254, 1, 0, 0, 24, 1, 0, 0, 1, 2, 0, 0, 65, 0, 0, 0,211, 0, 0, 0,
-106, 0, 0, 0, 2, 2, 0, 0, 25, 1, 0, 0, 3, 2, 0, 0, 71, 0, 0, 0, 4, 2, 0, 0, 26, 1, 0, 0, 5, 2, 0, 0,
-107, 0, 0, 0,214, 0, 0, 0, 65, 0, 0, 0, 4, 2, 0, 0, 71, 0, 0, 0, 6, 2, 0, 0,106, 0, 0, 0,205, 0, 0, 0,
-104, 0, 0, 0, 7, 2, 0, 0, 27, 1, 0, 0, 8, 2, 0, 0, 25, 1, 0, 0, 2, 2, 0, 0, 28, 1, 0, 0, 9, 2, 0, 0,
-105, 0, 0, 0,209, 0, 0, 0,107, 0, 0, 0, 5, 2, 0, 0, 26, 1, 0, 0, 10, 2, 0, 0,104, 0, 0, 0,199, 0, 0, 0,
-102, 0, 0, 0, 11, 2, 0, 0, 29, 1, 0, 0, 12, 2, 0, 0, 27, 1, 0, 0, 7, 2, 0, 0, 30, 1, 0, 0, 13, 2, 0, 0,
-103, 0, 0, 0,203, 0, 0, 0,105, 0, 0, 0, 9, 2, 0, 0, 28, 1, 0, 0, 14, 2, 0, 0,102, 0, 0, 0,193, 0, 0, 0,
-100, 0, 0, 0, 15, 2, 0, 0, 31, 1, 0, 0, 16, 2, 0, 0, 29, 1, 0, 0, 11, 2, 0, 0, 32, 1, 0, 0, 17, 2, 0, 0,
-101, 0, 0, 0,197, 0, 0, 0,103, 0, 0, 0, 13, 2, 0, 0, 30, 1, 0, 0, 18, 2, 0, 0,100, 0, 0, 0,187, 0, 0, 0,
- 98, 0, 0, 0, 19, 2, 0, 0, 33, 1, 0, 0, 20, 2, 0, 0, 31, 1, 0, 0, 15, 2, 0, 0, 34, 1, 0, 0, 21, 2, 0, 0,
- 99, 0, 0, 0,191, 0, 0, 0,101, 0, 0, 0, 17, 2, 0, 0, 32, 1, 0, 0, 22, 2, 0, 0, 98, 0, 0, 0,181, 0, 0, 0,
- 96, 0, 0, 0, 23, 2, 0, 0, 35, 1, 0, 0, 24, 2, 0, 0, 33, 1, 0, 0, 19, 2, 0, 0, 36, 1, 0, 0, 25, 2, 0, 0,
- 97, 0, 0, 0,185, 0, 0, 0, 99, 0, 0, 0, 21, 2, 0, 0, 34, 1, 0, 0, 26, 2, 0, 0, 96, 0, 0, 0,175, 0, 0, 0,
- 94, 0, 0, 0, 27, 2, 0, 0, 37, 1, 0, 0, 28, 2, 0, 0, 35, 1, 0, 0, 23, 2, 0, 0, 38, 1, 0, 0, 29, 2, 0, 0,
- 95, 0, 0, 0,179, 0, 0, 0, 97, 0, 0, 0, 25, 2, 0, 0, 36, 1, 0, 0, 30, 2, 0, 0, 94, 0, 0, 0,169, 0, 0, 0,
- 92, 0, 0, 0, 31, 2, 0, 0, 39, 1, 0, 0, 32, 2, 0, 0, 37, 1, 0, 0, 27, 2, 0, 0, 40, 1, 0, 0, 33, 2, 0, 0,
- 93, 0, 0, 0,173, 0, 0, 0, 95, 0, 0, 0, 29, 2, 0, 0, 38, 1, 0, 0, 34, 2, 0, 0, 92, 0, 0, 0,163, 0, 0, 0,
- 90, 0, 0, 0, 35, 2, 0, 0, 41, 1, 0, 0, 36, 2, 0, 0, 39, 1, 0, 0, 31, 2, 0, 0, 42, 1, 0, 0, 37, 2, 0, 0,
- 91, 0, 0, 0,167, 0, 0, 0, 93, 0, 0, 0, 33, 2, 0, 0, 40, 1, 0, 0, 38, 2, 0, 0, 49, 1, 0, 0, 39, 2, 0, 0,
- 50, 1, 0, 0, 40, 2, 0, 0, 69, 1, 0, 0, 41, 2, 0, 0, 79, 1, 0, 0, 42, 2, 0, 0, 70, 1, 0, 0, 43, 2, 0, 0,
- 50, 1, 0, 0, 39, 2, 0, 0, 49, 1, 0, 0, 44, 2, 0, 0, 80, 1, 0, 0, 45, 2, 0, 0, 48, 1, 0, 0, 46, 2, 0, 0,
- 49, 1, 0, 0, 42, 2, 0, 0, 79, 1, 0, 0, 47, 2, 0, 0, 77, 1, 0, 0, 48, 2, 0, 0, 80, 1, 0, 0, 44, 2, 0, 0,
- 49, 1, 0, 0, 46, 2, 0, 0, 48, 1, 0, 0, 49, 2, 0, 0, 78, 1, 0, 0, 50, 2, 0, 0, 47, 1, 0, 0, 51, 2, 0, 0,
- 48, 1, 0, 0, 48, 2, 0, 0, 77, 1, 0, 0, 52, 2, 0, 0, 81, 1, 0, 0, 53, 2, 0, 0, 78, 1, 0, 0, 49, 2, 0, 0,
- 48, 1, 0, 0, 51, 2, 0, 0, 47, 1, 0, 0, 54, 2, 0, 0, 82, 1, 0, 0, 55, 2, 0, 0, 87, 0, 0, 0,127, 0, 0, 0,
- 89, 0, 0, 0, 56, 2, 0, 0, 47, 1, 0, 0, 53, 2, 0, 0, 81, 1, 0, 0, 57, 2, 0, 0, 47, 1, 0, 0, 56, 2, 0, 0,
- 89, 0, 0, 0,130, 0, 0, 0, 88, 0, 0, 0, 58, 2, 0, 0, 82, 1, 0, 0, 54, 2, 0, 0, 85, 0, 0, 0,133, 0, 0, 0,
- 87, 0, 0, 0, 57, 2, 0, 0, 81, 1, 0, 0, 59, 2, 0, 0, 75, 1, 0, 0, 60, 2, 0, 0, 82, 1, 0, 0, 58, 2, 0, 0,
- 88, 0, 0, 0,136, 0, 0, 0, 86, 0, 0, 0, 61, 2, 0, 0, 76, 1, 0, 0, 62, 2, 0, 0, 83, 0, 0, 0,139, 0, 0, 0,
- 85, 0, 0, 0, 60, 2, 0, 0, 75, 1, 0, 0, 63, 2, 0, 0, 71, 1, 0, 0, 64, 2, 0, 0, 76, 1, 0, 0, 61, 2, 0, 0,
- 86, 0, 0, 0,142, 0, 0, 0, 84, 0, 0, 0, 65, 2, 0, 0, 72, 1, 0, 0, 66, 2, 0, 0, 81, 0, 0, 0,145, 0, 0, 0,
- 83, 0, 0, 0, 64, 2, 0, 0, 71, 1, 0, 0, 67, 2, 0, 0, 73, 1, 0, 0, 68, 2, 0, 0, 72, 1, 0, 0, 65, 2, 0, 0,
- 84, 0, 0, 0,148, 0, 0, 0, 82, 0, 0, 0, 69, 2, 0, 0, 74, 1, 0, 0, 70, 2, 0, 0, 71, 1, 0, 0, 71, 2, 0, 0,
- 77, 1, 0, 0, 47, 2, 0, 0, 79, 1, 0, 0, 72, 2, 0, 0, 73, 1, 0, 0, 67, 2, 0, 0, 80, 1, 0, 0, 50, 2, 0, 0,
- 78, 1, 0, 0, 73, 2, 0, 0, 72, 1, 0, 0, 70, 2, 0, 0, 74, 1, 0, 0, 74, 2, 0, 0, 71, 1, 0, 0, 63, 2, 0, 0,
- 75, 1, 0, 0, 59, 2, 0, 0, 81, 1, 0, 0, 52, 2, 0, 0, 77, 1, 0, 0, 71, 2, 0, 0, 82, 1, 0, 0, 62, 2, 0, 0,
- 76, 1, 0, 0, 66, 2, 0, 0, 72, 1, 0, 0, 73, 2, 0, 0, 78, 1, 0, 0, 55, 2, 0, 0, 67, 1, 0, 0, 75, 2, 0, 0,
- 73, 1, 0, 0, 72, 2, 0, 0, 79, 1, 0, 0, 41, 2, 0, 0, 69, 1, 0, 0, 76, 2, 0, 0, 80, 1, 0, 0, 74, 2, 0, 0,
- 74, 1, 0, 0, 77, 2, 0, 0, 68, 1, 0, 0, 78, 2, 0, 0, 70, 1, 0, 0, 45, 2, 0, 0, 79, 0, 0, 0,151, 0, 0, 0,
- 81, 0, 0, 0, 68, 2, 0, 0, 73, 1, 0, 0, 75, 2, 0, 0, 67, 1, 0, 0, 79, 2, 0, 0, 74, 1, 0, 0, 69, 2, 0, 0,
- 82, 0, 0, 0,154, 0, 0, 0, 80, 0, 0, 0, 80, 2, 0, 0, 68, 1, 0, 0, 77, 2, 0, 0,206, 0, 0, 0, 81, 2, 0, 0,
- 83, 1, 0, 0, 82, 2, 0, 0, 85, 1, 0, 0, 83, 2, 0, 0,212, 0, 0, 0,114, 1, 0, 0, 86, 1, 0, 0, 84, 2, 0, 0,
- 84, 1, 0, 0, 85, 2, 0, 0,207, 0, 0, 0,117, 1, 0, 0,213, 0, 0, 0, 86, 2, 0, 0, 79, 0, 0, 0, 79, 2, 0, 0,
- 67, 1, 0, 0, 87, 2, 0, 0, 83, 1, 0, 0, 81, 2, 0, 0,206, 0, 0, 0,110, 1, 0, 0, 84, 1, 0, 0, 88, 2, 0, 0,
- 68, 1, 0, 0, 80, 2, 0, 0, 80, 0, 0, 0,113, 1, 0, 0,207, 0, 0, 0, 85, 2, 0, 0, 77, 0, 0, 0,118, 1, 0, 0,
-212, 0, 0, 0, 83, 2, 0, 0, 85, 1, 0, 0, 89, 2, 0, 0, 87, 1, 0, 0, 90, 2, 0, 0, 86, 1, 0, 0, 86, 2, 0, 0,
-213, 0, 0, 0,119, 1, 0, 0, 78, 0, 0, 0, 91, 2, 0, 0, 88, 1, 0, 0, 92, 2, 0, 0, 77, 0, 0, 0, 90, 2, 0, 0,
- 87, 1, 0, 0, 93, 2, 0, 0, 41, 1, 0, 0, 35, 2, 0, 0, 90, 0, 0, 0,155, 0, 0, 0, 42, 1, 0, 0, 94, 2, 0, 0,
- 88, 1, 0, 0, 91, 2, 0, 0, 78, 0, 0, 0,160, 0, 0, 0, 91, 0, 0, 0, 37, 2, 0, 0, 75, 0, 0, 0, 95, 2, 0, 0,
- 65, 1, 0, 0, 96, 2, 0, 0, 93, 1, 0, 0, 97, 2, 0, 0, 45, 1, 0, 0, 98, 2, 0, 0, 94, 1, 0, 0, 99, 2, 0, 0,
- 66, 1, 0, 0,100, 2, 0, 0, 75, 0, 0, 0, 98, 2, 0, 0, 45, 1, 0, 0,101, 2, 0, 0, 45, 1, 0, 0, 97, 2, 0, 0,
- 93, 1, 0, 0,102, 2, 0, 0, 91, 1, 0, 0,103, 2, 0, 0, 76, 0, 0, 0,104, 2, 0, 0, 92, 1, 0, 0,105, 2, 0, 0,
- 94, 1, 0, 0,101, 2, 0, 0, 45, 1, 0, 0,104, 2, 0, 0, 76, 0, 0, 0,106, 2, 0, 0, 76, 0, 0, 0,103, 2, 0, 0,
- 91, 1, 0, 0,107, 2, 0, 0, 89, 1, 0, 0,108, 2, 0, 0, 46, 1, 0, 0,109, 2, 0, 0, 90, 1, 0, 0,110, 2, 0, 0,
- 92, 1, 0, 0,106, 2, 0, 0, 76, 0, 0, 0,109, 2, 0, 0, 46, 1, 0, 0,111, 2, 0, 0, 46, 1, 0, 0,108, 2, 0, 0,
- 89, 1, 0, 0,112, 2, 0, 0, 69, 1, 0, 0, 40, 2, 0, 0, 50, 1, 0, 0,113, 2, 0, 0, 70, 1, 0, 0,114, 2, 0, 0,
- 90, 1, 0, 0,111, 2, 0, 0, 46, 1, 0, 0,113, 2, 0, 0, 50, 1, 0, 0, 43, 2, 0, 0, 67, 1, 0, 0, 76, 2, 0, 0,
- 69, 1, 0, 0,112, 2, 0, 0, 89, 1, 0, 0,115, 2, 0, 0, 83, 1, 0, 0, 87, 2, 0, 0, 90, 1, 0, 0,114, 2, 0, 0,
- 70, 1, 0, 0, 78, 2, 0, 0, 68, 1, 0, 0, 88, 2, 0, 0, 84, 1, 0, 0,116, 2, 0, 0, 37, 1, 0, 0, 32, 2, 0, 0,
- 39, 1, 0, 0,117, 2, 0, 0, 59, 1, 0, 0,118, 2, 0, 0, 51, 1, 0, 0,119, 2, 0, 0, 60, 1, 0, 0,120, 2, 0, 0,
- 40, 1, 0, 0, 34, 2, 0, 0, 38, 1, 0, 0,121, 2, 0, 0, 52, 1, 0, 0,122, 2, 0, 0, 74, 0, 0, 0,123, 2, 0, 0,
- 57, 1, 0, 0,124, 2, 0, 0, 65, 1, 0, 0, 95, 2, 0, 0, 75, 0, 0, 0,125, 2, 0, 0, 66, 1, 0, 0,126, 2, 0, 0,
- 58, 1, 0, 0,127, 2, 0, 0, 74, 0, 0, 0,125, 2, 0, 0, 75, 0, 0, 0,100, 2, 0, 0, 43, 1, 0, 0,128, 2, 0, 0,
- 99, 1, 0, 0,129, 2, 0, 0, 97, 1, 0, 0,130, 2, 0, 0, 44, 1, 0, 0,131, 2, 0, 0, 98, 1, 0, 0,132, 2, 0, 0,
-100, 1, 0, 0,133, 2, 0, 0, 43, 1, 0, 0,131, 2, 0, 0, 44, 1, 0, 0,134, 2, 0, 0, 44, 1, 0, 0,130, 2, 0, 0,
- 97, 1, 0, 0,135, 2, 0, 0, 95, 1, 0, 0,136, 2, 0, 0, 73, 0, 0, 0,137, 2, 0, 0, 96, 1, 0, 0,138, 2, 0, 0,
- 98, 1, 0, 0,134, 2, 0, 0, 44, 1, 0, 0,137, 2, 0, 0, 73, 0, 0, 0,139, 2, 0, 0, 73, 0, 0, 0,136, 2, 0, 0,
- 95, 1, 0, 0,140, 2, 0, 0, 57, 1, 0, 0,123, 2, 0, 0, 74, 0, 0, 0,141, 2, 0, 0, 58, 1, 0, 0,142, 2, 0, 0,
- 96, 1, 0, 0,139, 2, 0, 0, 73, 0, 0, 0,141, 2, 0, 0, 74, 0, 0, 0,127, 2, 0, 0, 33, 1, 0, 0, 24, 2, 0, 0,
- 35, 1, 0, 0,143, 2, 0, 0,103, 1, 0, 0,144, 2, 0, 0,105, 1, 0, 0,145, 2, 0, 0,104, 1, 0, 0,146, 2, 0, 0,
- 36, 1, 0, 0, 26, 2, 0, 0, 34, 1, 0, 0,147, 2, 0, 0,106, 1, 0, 0,148, 2, 0, 0,105, 1, 0, 0,144, 2, 0, 0,
-103, 1, 0, 0,149, 2, 0, 0,109, 1, 0, 0,150, 2, 0, 0,107, 1, 0, 0,151, 2, 0, 0,110, 1, 0, 0,152, 2, 0, 0,
-104, 1, 0, 0,148, 2, 0, 0,106, 1, 0, 0,153, 2, 0, 0,108, 1, 0, 0,154, 2, 0, 0,107, 1, 0, 0,150, 2, 0, 0,
-109, 1, 0, 0,155, 2, 0, 0,111, 1, 0, 0,156, 2, 0, 0,113, 1, 0, 0,157, 2, 0, 0,112, 1, 0, 0,158, 2, 0, 0,
-110, 1, 0, 0,154, 2, 0, 0,108, 1, 0, 0,159, 2, 0, 0,114, 1, 0, 0,160, 2, 0, 0,113, 1, 0, 0,156, 2, 0, 0,
-111, 1, 0, 0,161, 2, 0, 0,117, 1, 0, 0,162, 2, 0, 0,115, 1, 0, 0,163, 2, 0, 0,118, 1, 0, 0,164, 2, 0, 0,
-112, 1, 0, 0,160, 2, 0, 0,114, 1, 0, 0,165, 2, 0, 0,116, 1, 0, 0,166, 2, 0, 0, 55, 1, 0, 0,167, 2, 0, 0,
-119, 1, 0, 0,168, 2, 0, 0,115, 1, 0, 0,162, 2, 0, 0,117, 1, 0, 0,169, 2, 0, 0,116, 1, 0, 0,170, 2, 0, 0,
-120, 1, 0, 0,171, 2, 0, 0, 56, 1, 0, 0,172, 2, 0, 0,118, 1, 0, 0,166, 2, 0, 0, 57, 1, 0, 0,140, 2, 0, 0,
- 95, 1, 0, 0,173, 2, 0, 0,115, 1, 0, 0,168, 2, 0, 0,119, 1, 0, 0,174, 2, 0, 0,116, 1, 0, 0,175, 2, 0, 0,
- 96, 1, 0, 0,142, 2, 0, 0, 58, 1, 0, 0,176, 2, 0, 0,120, 1, 0, 0,170, 2, 0, 0, 95, 1, 0, 0,135, 2, 0, 0,
- 97, 1, 0, 0,177, 2, 0, 0,113, 1, 0, 0,163, 2, 0, 0,115, 1, 0, 0,173, 2, 0, 0,114, 1, 0, 0,178, 2, 0, 0,
- 98, 1, 0, 0,138, 2, 0, 0, 96, 1, 0, 0,175, 2, 0, 0,116, 1, 0, 0,165, 2, 0, 0, 97, 1, 0, 0,129, 2, 0, 0,
- 99, 1, 0, 0,179, 2, 0, 0,107, 1, 0, 0,157, 2, 0, 0,113, 1, 0, 0,177, 2, 0, 0,108, 1, 0, 0,180, 2, 0, 0,
-100, 1, 0, 0,132, 2, 0, 0, 98, 1, 0, 0,178, 2, 0, 0,114, 1, 0, 0,159, 2, 0, 0, 99, 1, 0, 0,181, 2, 0, 0,
-101, 1, 0, 0,182, 2, 0, 0,105, 1, 0, 0,151, 2, 0, 0,107, 1, 0, 0,179, 2, 0, 0,106, 1, 0, 0,183, 2, 0, 0,
-102, 1, 0, 0,184, 2, 0, 0,100, 1, 0, 0,180, 2, 0, 0,108, 1, 0, 0,153, 2, 0, 0, 31, 1, 0, 0, 20, 2, 0, 0,
- 33, 1, 0, 0,145, 2, 0, 0,105, 1, 0, 0,182, 2, 0, 0,101, 1, 0, 0,185, 2, 0, 0,106, 1, 0, 0,147, 2, 0, 0,
- 34, 1, 0, 0, 22, 2, 0, 0, 32, 1, 0, 0,186, 2, 0, 0,102, 1, 0, 0,183, 2, 0, 0, 72, 0, 0, 0,187, 2, 0, 0,
-101, 1, 0, 0,181, 2, 0, 0, 99, 1, 0, 0,128, 2, 0, 0, 43, 1, 0, 0,188, 2, 0, 0,100, 1, 0, 0,184, 2, 0, 0,
-102, 1, 0, 0,189, 2, 0, 0, 72, 0, 0, 0,188, 2, 0, 0, 43, 1, 0, 0,133, 2, 0, 0, 25, 1, 0, 0, 8, 2, 0, 0,
- 27, 1, 0, 0, 12, 2, 0, 0, 29, 1, 0, 0, 16, 2, 0, 0, 31, 1, 0, 0,190, 2, 0, 0, 30, 1, 0, 0, 14, 2, 0, 0,
- 28, 1, 0, 0, 10, 2, 0, 0, 26, 1, 0, 0,191, 2, 0, 0, 32, 1, 0, 0, 18, 2, 0, 0, 25, 1, 0, 0,190, 2, 0, 0,
- 31, 1, 0, 0,185, 2, 0, 0,101, 1, 0, 0,187, 2, 0, 0, 72, 0, 0, 0,192, 2, 0, 0,102, 1, 0, 0,186, 2, 0, 0,
- 32, 1, 0, 0,191, 2, 0, 0, 26, 1, 0, 0,193, 2, 0, 0, 72, 0, 0, 0,189, 2, 0, 0, 71, 0, 0, 0, 3, 2, 0, 0,
- 25, 1, 0, 0,192, 2, 0, 0, 72, 0, 0, 0,194, 2, 0, 0, 72, 0, 0, 0,193, 2, 0, 0, 26, 1, 0, 0, 6, 2, 0, 0,
- 71, 0, 0, 0,194, 2, 0, 0, 35, 1, 0, 0, 28, 2, 0, 0, 37, 1, 0, 0,119, 2, 0, 0, 51, 1, 0, 0,195, 2, 0, 0,
-103, 1, 0, 0,143, 2, 0, 0, 52, 1, 0, 0,121, 2, 0, 0, 38, 1, 0, 0, 30, 2, 0, 0, 36, 1, 0, 0,146, 2, 0, 0,
-104, 1, 0, 0,196, 2, 0, 0, 51, 1, 0, 0,197, 2, 0, 0, 53, 1, 0, 0,198, 2, 0, 0,109, 1, 0, 0,149, 2, 0, 0,
-103, 1, 0, 0,195, 2, 0, 0,110, 1, 0, 0,199, 2, 0, 0, 54, 1, 0, 0,200, 2, 0, 0, 52, 1, 0, 0,196, 2, 0, 0,
-104, 1, 0, 0,152, 2, 0, 0, 53, 1, 0, 0,201, 2, 0, 0,123, 1, 0, 0,202, 2, 0, 0,111, 1, 0, 0,155, 2, 0, 0,
-109, 1, 0, 0,198, 2, 0, 0,112, 1, 0, 0,203, 2, 0, 0,124, 1, 0, 0,204, 2, 0, 0, 54, 1, 0, 0,199, 2, 0, 0,
-110, 1, 0, 0,158, 2, 0, 0, 55, 1, 0, 0,169, 2, 0, 0,117, 1, 0, 0,161, 2, 0, 0,111, 1, 0, 0,202, 2, 0, 0,
-123, 1, 0, 0,205, 2, 0, 0,112, 1, 0, 0,164, 2, 0, 0,118, 1, 0, 0,172, 2, 0, 0, 56, 1, 0, 0,206, 2, 0, 0,
-124, 1, 0, 0,203, 2, 0, 0, 89, 1, 0, 0,107, 2, 0, 0, 91, 1, 0, 0,207, 2, 0, 0,127, 1, 0, 0,208, 2, 0, 0,
-125, 1, 0, 0,209, 2, 0, 0,128, 1, 0, 0,210, 2, 0, 0, 92, 1, 0, 0,110, 2, 0, 0, 90, 1, 0, 0,211, 2, 0, 0,
-126, 1, 0, 0,212, 2, 0, 0, 59, 1, 0, 0,213, 2, 0, 0,125, 1, 0, 0,208, 2, 0, 0,127, 1, 0, 0,214, 2, 0, 0,
- 61, 1, 0, 0,215, 2, 0, 0,128, 1, 0, 0,212, 2, 0, 0,126, 1, 0, 0,216, 2, 0, 0, 60, 1, 0, 0,217, 2, 0, 0,
- 62, 1, 0, 0,218, 2, 0, 0, 39, 1, 0, 0, 36, 2, 0, 0, 41, 1, 0, 0,219, 2, 0, 0,125, 1, 0, 0,213, 2, 0, 0,
- 59, 1, 0, 0,117, 2, 0, 0,126, 1, 0, 0,220, 2, 0, 0, 42, 1, 0, 0, 38, 2, 0, 0, 40, 1, 0, 0,120, 2, 0, 0,
- 60, 1, 0, 0,216, 2, 0, 0, 41, 1, 0, 0,221, 2, 0, 0, 85, 1, 0, 0, 82, 2, 0, 0, 83, 1, 0, 0,222, 2, 0, 0,
-125, 1, 0, 0,219, 2, 0, 0, 84, 1, 0, 0, 84, 2, 0, 0, 86, 1, 0, 0,223, 2, 0, 0, 42, 1, 0, 0,220, 2, 0, 0,
-126, 1, 0, 0,224, 2, 0, 0, 83, 1, 0, 0,115, 2, 0, 0, 89, 1, 0, 0,209, 2, 0, 0,125, 1, 0, 0,222, 2, 0, 0,
-126, 1, 0, 0,211, 2, 0, 0, 90, 1, 0, 0,116, 2, 0, 0, 84, 1, 0, 0,224, 2, 0, 0, 41, 1, 0, 0, 93, 2, 0, 0,
- 87, 1, 0, 0, 89, 2, 0, 0, 85, 1, 0, 0,221, 2, 0, 0, 86, 1, 0, 0, 92, 2, 0, 0, 88, 1, 0, 0, 94, 2, 0, 0,
- 42, 1, 0, 0,223, 2, 0, 0, 55, 1, 0, 0,225, 2, 0, 0, 63, 1, 0, 0,226, 2, 0, 0,121, 1, 0, 0,227, 2, 0, 0,
-119, 1, 0, 0,167, 2, 0, 0,122, 1, 0, 0,228, 2, 0, 0, 64, 1, 0, 0,229, 2, 0, 0, 56, 1, 0, 0,171, 2, 0, 0,
-120, 1, 0, 0,230, 2, 0, 0, 57, 1, 0, 0,174, 2, 0, 0,119, 1, 0, 0,227, 2, 0, 0,121, 1, 0, 0,231, 2, 0, 0,
- 65, 1, 0, 0,124, 2, 0, 0,122, 1, 0, 0,230, 2, 0, 0,120, 1, 0, 0,176, 2, 0, 0, 58, 1, 0, 0,126, 2, 0, 0,
- 66, 1, 0, 0,232, 2, 0, 0, 61, 1, 0, 0,214, 2, 0, 0,127, 1, 0, 0,233, 2, 0, 0,121, 1, 0, 0,226, 2, 0, 0,
- 63, 1, 0, 0,234, 2, 0, 0,122, 1, 0, 0,235, 2, 0, 0,128, 1, 0, 0,218, 2, 0, 0, 62, 1, 0, 0,236, 2, 0, 0,
- 64, 1, 0, 0,228, 2, 0, 0, 91, 1, 0, 0,102, 2, 0, 0, 93, 1, 0, 0,237, 2, 0, 0,121, 1, 0, 0,233, 2, 0, 0,
-127, 1, 0, 0,207, 2, 0, 0,122, 1, 0, 0,238, 2, 0, 0, 94, 1, 0, 0,105, 2, 0, 0, 92, 1, 0, 0,210, 2, 0, 0,
-128, 1, 0, 0,235, 2, 0, 0, 65, 1, 0, 0,231, 2, 0, 0,121, 1, 0, 0,237, 2, 0, 0, 93, 1, 0, 0, 96, 2, 0, 0,
- 94, 1, 0, 0,238, 2, 0, 0,122, 1, 0, 0,232, 2, 0, 0, 66, 1, 0, 0, 99, 2, 0, 0,141, 1, 0, 0,239, 2, 0, 0,
-129, 1, 0, 0,240, 2, 0, 0,155, 1, 0, 0,241, 2, 0, 0,143, 1, 0, 0,242, 2, 0, 0,156, 1, 0, 0,243, 2, 0, 0,
-130, 1, 0, 0,244, 2, 0, 0,142, 1, 0, 0,245, 2, 0, 0,144, 1, 0, 0,246, 2, 0, 0,141, 1, 0, 0,242, 2, 0, 0,
-143, 1, 0, 0,247, 2, 0, 0,145, 1, 0, 0,248, 2, 0, 0,139, 1, 0, 0,249, 2, 0, 0,146, 1, 0, 0,250, 2, 0, 0,
-144, 1, 0, 0,245, 2, 0, 0,142, 1, 0, 0,251, 2, 0, 0,140, 1, 0, 0,252, 2, 0, 0,139, 1, 0, 0,248, 2, 0, 0,
-145, 1, 0, 0,253, 2, 0, 0,147, 1, 0, 0,254, 2, 0, 0,137, 1, 0, 0,255, 2, 0, 0,148, 1, 0, 0, 0, 3, 0, 0,
-146, 1, 0, 0,252, 2, 0, 0,140, 1, 0, 0, 1, 3, 0, 0,138, 1, 0, 0, 2, 3, 0, 0,137, 1, 0, 0,254, 2, 0, 0,
-147, 1, 0, 0, 3, 3, 0, 0,149, 1, 0, 0, 4, 3, 0, 0,135, 1, 0, 0, 5, 3, 0, 0,150, 1, 0, 0, 6, 3, 0, 0,
-148, 1, 0, 0, 2, 3, 0, 0,138, 1, 0, 0, 7, 3, 0, 0,136, 1, 0, 0, 8, 3, 0, 0,135, 1, 0, 0, 4, 3, 0, 0,
-149, 1, 0, 0, 9, 3, 0, 0,151, 1, 0, 0, 10, 3, 0, 0,133, 1, 0, 0, 11, 3, 0, 0,152, 1, 0, 0, 12, 3, 0, 0,
-150, 1, 0, 0, 8, 3, 0, 0,136, 1, 0, 0, 13, 3, 0, 0,134, 1, 0, 0, 14, 3, 0, 0,133, 1, 0, 0, 10, 3, 0, 0,
-151, 1, 0, 0, 15, 3, 0, 0,153, 1, 0, 0, 16, 3, 0, 0,131, 1, 0, 0, 17, 3, 0, 0,154, 1, 0, 0, 18, 3, 0, 0,
-152, 1, 0, 0, 14, 3, 0, 0,134, 1, 0, 0, 19, 3, 0, 0,132, 1, 0, 0, 20, 3, 0, 0,151, 1, 0, 0, 21, 3, 0, 0,
-161, 1, 0, 0, 22, 3, 0, 0,159, 1, 0, 0, 23, 3, 0, 0,153, 1, 0, 0, 15, 3, 0, 0,160, 1, 0, 0, 24, 3, 0, 0,
-162, 1, 0, 0, 25, 3, 0, 0,152, 1, 0, 0, 18, 3, 0, 0,154, 1, 0, 0, 26, 3, 0, 0,149, 1, 0, 0, 27, 3, 0, 0,
-163, 1, 0, 0, 28, 3, 0, 0,161, 1, 0, 0, 21, 3, 0, 0,151, 1, 0, 0, 9, 3, 0, 0,162, 1, 0, 0, 29, 3, 0, 0,
-164, 1, 0, 0, 30, 3, 0, 0,150, 1, 0, 0, 12, 3, 0, 0,152, 1, 0, 0, 25, 3, 0, 0,147, 1, 0, 0, 31, 3, 0, 0,
-165, 1, 0, 0, 32, 3, 0, 0,163, 1, 0, 0, 27, 3, 0, 0,149, 1, 0, 0, 3, 3, 0, 0,164, 1, 0, 0, 33, 3, 0, 0,
-166, 1, 0, 0, 34, 3, 0, 0,148, 1, 0, 0, 6, 3, 0, 0,150, 1, 0, 0, 30, 3, 0, 0,145, 1, 0, 0, 35, 3, 0, 0,
-167, 1, 0, 0, 36, 3, 0, 0,165, 1, 0, 0, 31, 3, 0, 0,147, 1, 0, 0,253, 2, 0, 0,166, 1, 0, 0, 37, 3, 0, 0,
-168, 1, 0, 0, 38, 3, 0, 0,146, 1, 0, 0, 0, 3, 0, 0,148, 1, 0, 0, 34, 3, 0, 0,143, 1, 0, 0, 39, 3, 0, 0,
-169, 1, 0, 0, 40, 3, 0, 0,167, 1, 0, 0, 35, 3, 0, 0,145, 1, 0, 0,247, 2, 0, 0,168, 1, 0, 0, 41, 3, 0, 0,
-170, 1, 0, 0, 42, 3, 0, 0,144, 1, 0, 0,250, 2, 0, 0,146, 1, 0, 0, 38, 3, 0, 0,143, 1, 0, 0,241, 2, 0, 0,
-155, 1, 0, 0, 43, 3, 0, 0,157, 1, 0, 0, 44, 3, 0, 0,169, 1, 0, 0, 39, 3, 0, 0,158, 1, 0, 0, 45, 3, 0, 0,
-156, 1, 0, 0,246, 2, 0, 0,144, 1, 0, 0, 42, 3, 0, 0,170, 1, 0, 0, 46, 3, 0, 0, 59, 1, 0, 0,215, 2, 0, 0,
- 61, 1, 0, 0, 47, 3, 0, 0,185, 1, 0, 0, 48, 3, 0, 0,183, 1, 0, 0, 49, 3, 0, 0,186, 1, 0, 0, 50, 3, 0, 0,
- 62, 1, 0, 0,217, 2, 0, 0, 60, 1, 0, 0, 51, 3, 0, 0,184, 1, 0, 0, 52, 3, 0, 0, 61, 1, 0, 0, 53, 3, 0, 0,
-131, 1, 0, 0, 16, 3, 0, 0,153, 1, 0, 0, 54, 3, 0, 0,185, 1, 0, 0, 47, 3, 0, 0,154, 1, 0, 0, 20, 3, 0, 0,
-132, 1, 0, 0, 55, 3, 0, 0, 62, 1, 0, 0, 50, 3, 0, 0,186, 1, 0, 0, 56, 3, 0, 0, 51, 1, 0, 0,118, 2, 0, 0,
- 59, 1, 0, 0, 49, 3, 0, 0,183, 1, 0, 0, 57, 3, 0, 0, 53, 1, 0, 0,197, 2, 0, 0,184, 1, 0, 0, 51, 3, 0, 0,
- 60, 1, 0, 0,122, 2, 0, 0, 52, 1, 0, 0,200, 2, 0, 0, 54, 1, 0, 0, 58, 3, 0, 0,123, 1, 0, 0, 59, 3, 0, 0,
-171, 1, 0, 0, 60, 3, 0, 0,155, 1, 0, 0,240, 2, 0, 0,129, 1, 0, 0, 61, 3, 0, 0,156, 1, 0, 0, 62, 3, 0, 0,
-172, 1, 0, 0, 63, 3, 0, 0,124, 1, 0, 0, 64, 3, 0, 0,130, 1, 0, 0,243, 2, 0, 0,153, 1, 0, 0, 23, 3, 0, 0,
-159, 1, 0, 0, 65, 3, 0, 0,181, 1, 0, 0, 66, 3, 0, 0,185, 1, 0, 0, 54, 3, 0, 0,182, 1, 0, 0, 67, 3, 0, 0,
-160, 1, 0, 0, 26, 3, 0, 0,154, 1, 0, 0, 56, 3, 0, 0,186, 1, 0, 0, 68, 3, 0, 0,179, 1, 0, 0, 69, 3, 0, 0,
-187, 1, 0, 0, 70, 3, 0, 0,185, 1, 0, 0, 66, 3, 0, 0,181, 1, 0, 0, 71, 3, 0, 0,186, 1, 0, 0, 72, 3, 0, 0,
-188, 1, 0, 0, 73, 3, 0, 0,180, 1, 0, 0, 74, 3, 0, 0,182, 1, 0, 0, 68, 3, 0, 0,175, 1, 0, 0, 75, 3, 0, 0,
-187, 1, 0, 0, 69, 3, 0, 0,179, 1, 0, 0, 76, 3, 0, 0,177, 1, 0, 0, 77, 3, 0, 0,180, 1, 0, 0, 73, 3, 0, 0,
-188, 1, 0, 0, 78, 3, 0, 0,176, 1, 0, 0, 79, 3, 0, 0,178, 1, 0, 0, 80, 3, 0, 0,173, 1, 0, 0, 81, 3, 0, 0,
-189, 1, 0, 0, 82, 3, 0, 0,187, 1, 0, 0, 75, 3, 0, 0,175, 1, 0, 0, 83, 3, 0, 0,188, 1, 0, 0, 84, 3, 0, 0,
-190, 1, 0, 0, 85, 3, 0, 0,174, 1, 0, 0, 86, 3, 0, 0,176, 1, 0, 0, 78, 3, 0, 0,171, 1, 0, 0, 87, 3, 0, 0,
-189, 1, 0, 0, 81, 3, 0, 0,173, 1, 0, 0, 88, 3, 0, 0,191, 1, 0, 0, 89, 3, 0, 0,174, 1, 0, 0, 85, 3, 0, 0,
-190, 1, 0, 0, 90, 3, 0, 0,172, 1, 0, 0, 91, 3, 0, 0,192, 1, 0, 0, 92, 3, 0, 0,155, 1, 0, 0, 60, 3, 0, 0,
-171, 1, 0, 0, 89, 3, 0, 0,191, 1, 0, 0, 93, 3, 0, 0,157, 1, 0, 0, 43, 3, 0, 0,192, 1, 0, 0, 91, 3, 0, 0,
-172, 1, 0, 0, 62, 3, 0, 0,156, 1, 0, 0, 45, 3, 0, 0,158, 1, 0, 0, 94, 3, 0, 0, 53, 1, 0, 0, 95, 3, 0, 0,
-189, 1, 0, 0, 87, 3, 0, 0,171, 1, 0, 0, 59, 3, 0, 0,123, 1, 0, 0,201, 2, 0, 0,172, 1, 0, 0, 90, 3, 0, 0,
-190, 1, 0, 0, 96, 3, 0, 0, 54, 1, 0, 0,204, 2, 0, 0,124, 1, 0, 0, 63, 3, 0, 0, 53, 1, 0, 0, 57, 3, 0, 0,
-183, 1, 0, 0, 97, 3, 0, 0,187, 1, 0, 0, 82, 3, 0, 0,189, 1, 0, 0, 95, 3, 0, 0,188, 1, 0, 0, 98, 3, 0, 0,
-184, 1, 0, 0, 58, 3, 0, 0, 54, 1, 0, 0, 96, 3, 0, 0,190, 1, 0, 0, 84, 3, 0, 0,183, 1, 0, 0, 48, 3, 0, 0,
-185, 1, 0, 0, 70, 3, 0, 0,187, 1, 0, 0, 97, 3, 0, 0,188, 1, 0, 0, 72, 3, 0, 0,186, 1, 0, 0, 52, 3, 0, 0,
-184, 1, 0, 0, 98, 3, 0, 0,157, 1, 0, 0, 93, 3, 0, 0,191, 1, 0, 0, 99, 3, 0, 0,193, 1, 0, 0,100, 3, 0, 0,
-217, 1, 0, 0,101, 3, 0, 0,194, 1, 0, 0,102, 3, 0, 0,192, 1, 0, 0, 94, 3, 0, 0,158, 1, 0, 0,103, 3, 0, 0,
-218, 1, 0, 0,104, 3, 0, 0,191, 1, 0, 0, 88, 3, 0, 0,173, 1, 0, 0,105, 3, 0, 0,203, 1, 0, 0,106, 3, 0, 0,
-193, 1, 0, 0, 99, 3, 0, 0,204, 1, 0, 0,107, 3, 0, 0,174, 1, 0, 0, 92, 3, 0, 0,192, 1, 0, 0,102, 3, 0, 0,
-194, 1, 0, 0,108, 3, 0, 0,173, 1, 0, 0, 83, 3, 0, 0,175, 1, 0, 0,109, 3, 0, 0,201, 1, 0, 0,110, 3, 0, 0,
-203, 1, 0, 0,105, 3, 0, 0,202, 1, 0, 0,111, 3, 0, 0,176, 1, 0, 0, 86, 3, 0, 0,174, 1, 0, 0,107, 3, 0, 0,
-204, 1, 0, 0,112, 3, 0, 0,175, 1, 0, 0, 77, 3, 0, 0,177, 1, 0, 0,113, 3, 0, 0,199, 1, 0, 0,114, 3, 0, 0,
-201, 1, 0, 0,109, 3, 0, 0,200, 1, 0, 0,115, 3, 0, 0,178, 1, 0, 0, 79, 3, 0, 0,176, 1, 0, 0,111, 3, 0, 0,
-202, 1, 0, 0,116, 3, 0, 0,177, 1, 0, 0, 76, 3, 0, 0,179, 1, 0, 0,117, 3, 0, 0,197, 1, 0, 0,118, 3, 0, 0,
-199, 1, 0, 0,113, 3, 0, 0,198, 1, 0, 0,119, 3, 0, 0,180, 1, 0, 0, 80, 3, 0, 0,178, 1, 0, 0,115, 3, 0, 0,
-200, 1, 0, 0,120, 3, 0, 0,179, 1, 0, 0, 71, 3, 0, 0,181, 1, 0, 0,121, 3, 0, 0,195, 1, 0, 0,122, 3, 0, 0,
-197, 1, 0, 0,117, 3, 0, 0,196, 1, 0, 0,123, 3, 0, 0,182, 1, 0, 0, 74, 3, 0, 0,180, 1, 0, 0,119, 3, 0, 0,
-198, 1, 0, 0,124, 3, 0, 0,181, 1, 0, 0, 65, 3, 0, 0,159, 1, 0, 0,125, 3, 0, 0,215, 1, 0, 0,126, 3, 0, 0,
-195, 1, 0, 0,121, 3, 0, 0,216, 1, 0, 0,127, 3, 0, 0,160, 1, 0, 0, 67, 3, 0, 0,182, 1, 0, 0,123, 3, 0, 0,
-196, 1, 0, 0,128, 3, 0, 0,169, 1, 0, 0, 44, 3, 0, 0,157, 1, 0, 0,101, 3, 0, 0,217, 1, 0, 0,129, 3, 0, 0,
-205, 1, 0, 0,130, 3, 0, 0,218, 1, 0, 0,103, 3, 0, 0,158, 1, 0, 0, 46, 3, 0, 0,170, 1, 0, 0,131, 3, 0, 0,
-206, 1, 0, 0,132, 3, 0, 0,167, 1, 0, 0, 40, 3, 0, 0,169, 1, 0, 0,130, 3, 0, 0,205, 1, 0, 0,133, 3, 0, 0,
-207, 1, 0, 0,134, 3, 0, 0,206, 1, 0, 0,131, 3, 0, 0,170, 1, 0, 0, 41, 3, 0, 0,168, 1, 0, 0,135, 3, 0, 0,
-208, 1, 0, 0,136, 3, 0, 0,165, 1, 0, 0, 36, 3, 0, 0,167, 1, 0, 0,134, 3, 0, 0,207, 1, 0, 0,137, 3, 0, 0,
-209, 1, 0, 0,138, 3, 0, 0,208, 1, 0, 0,135, 3, 0, 0,168, 1, 0, 0, 37, 3, 0, 0,166, 1, 0, 0,139, 3, 0, 0,
-210, 1, 0, 0,140, 3, 0, 0,163, 1, 0, 0, 32, 3, 0, 0,165, 1, 0, 0,138, 3, 0, 0,209, 1, 0, 0,141, 3, 0, 0,
-211, 1, 0, 0,142, 3, 0, 0,210, 1, 0, 0,139, 3, 0, 0,166, 1, 0, 0, 33, 3, 0, 0,164, 1, 0, 0,143, 3, 0, 0,
-212, 1, 0, 0,144, 3, 0, 0,161, 1, 0, 0, 28, 3, 0, 0,163, 1, 0, 0,142, 3, 0, 0,211, 1, 0, 0,145, 3, 0, 0,
-213, 1, 0, 0,146, 3, 0, 0,212, 1, 0, 0,143, 3, 0, 0,164, 1, 0, 0, 29, 3, 0, 0,162, 1, 0, 0,147, 3, 0, 0,
-214, 1, 0, 0,148, 3, 0, 0,159, 1, 0, 0, 22, 3, 0, 0,161, 1, 0, 0,146, 3, 0, 0,213, 1, 0, 0,149, 3, 0, 0,
-215, 1, 0, 0,125, 3, 0, 0,214, 1, 0, 0,147, 3, 0, 0,162, 1, 0, 0, 24, 3, 0, 0,160, 1, 0, 0,127, 3, 0, 0,
-216, 1, 0, 0,150, 3, 0, 0,199, 1, 0, 0,118, 3, 0, 0,197, 1, 0, 0,151, 3, 0, 0,221, 1, 0, 0,152, 3, 0, 0,
-219, 1, 0, 0,153, 3, 0, 0,222, 1, 0, 0,154, 3, 0, 0,198, 1, 0, 0,120, 3, 0, 0,200, 1, 0, 0,155, 3, 0, 0,
-220, 1, 0, 0,156, 3, 0, 0,219, 1, 0, 0,152, 3, 0, 0,221, 1, 0, 0,157, 3, 0, 0,223, 1, 0, 0,158, 3, 0, 0,
-225, 1, 0, 0,159, 3, 0, 0,224, 1, 0, 0,160, 3, 0, 0,222, 1, 0, 0,156, 3, 0, 0,220, 1, 0, 0,161, 3, 0, 0,
-226, 1, 0, 0,162, 3, 0, 0,225, 1, 0, 0,158, 3, 0, 0,223, 1, 0, 0,163, 3, 0, 0,229, 1, 0, 0,164, 3, 0, 0,
-227, 1, 0, 0,165, 3, 0, 0,230, 1, 0, 0,166, 3, 0, 0,224, 1, 0, 0,162, 3, 0, 0,226, 1, 0, 0,167, 3, 0, 0,
-228, 1, 0, 0,168, 3, 0, 0,227, 1, 0, 0,164, 3, 0, 0,229, 1, 0, 0,169, 3, 0, 0,231, 1, 0, 0,170, 3, 0, 0,
-233, 1, 0, 0,171, 3, 0, 0,232, 1, 0, 0,172, 3, 0, 0,230, 1, 0, 0,168, 3, 0, 0,228, 1, 0, 0,173, 3, 0, 0,
-234, 1, 0, 0,174, 3, 0, 0,205, 1, 0, 0,129, 3, 0, 0,217, 1, 0, 0,175, 3, 0, 0,227, 1, 0, 0,171, 3, 0, 0,
-233, 1, 0, 0,176, 3, 0, 0,228, 1, 0, 0,177, 3, 0, 0,218, 1, 0, 0,132, 3, 0, 0,206, 1, 0, 0,178, 3, 0, 0,
-234, 1, 0, 0,173, 3, 0, 0,193, 1, 0, 0,179, 3, 0, 0,225, 1, 0, 0,165, 3, 0, 0,227, 1, 0, 0,175, 3, 0, 0,
-217, 1, 0, 0,100, 3, 0, 0,228, 1, 0, 0,167, 3, 0, 0,226, 1, 0, 0,180, 3, 0, 0,194, 1, 0, 0,104, 3, 0, 0,
-218, 1, 0, 0,177, 3, 0, 0,193, 1, 0, 0,106, 3, 0, 0,203, 1, 0, 0,181, 3, 0, 0,219, 1, 0, 0,159, 3, 0, 0,
-225, 1, 0, 0,179, 3, 0, 0,220, 1, 0, 0,182, 3, 0, 0,204, 1, 0, 0,108, 3, 0, 0,194, 1, 0, 0,180, 3, 0, 0,
-226, 1, 0, 0,161, 3, 0, 0,199, 1, 0, 0,153, 3, 0, 0,219, 1, 0, 0,181, 3, 0, 0,203, 1, 0, 0,110, 3, 0, 0,
-201, 1, 0, 0,114, 3, 0, 0,204, 1, 0, 0,182, 3, 0, 0,220, 1, 0, 0,155, 3, 0, 0,200, 1, 0, 0,116, 3, 0, 0,
-202, 1, 0, 0,112, 3, 0, 0,195, 1, 0, 0,126, 3, 0, 0,215, 1, 0, 0,183, 3, 0, 0,221, 1, 0, 0,151, 3, 0, 0,
-197, 1, 0, 0,122, 3, 0, 0,222, 1, 0, 0,184, 3, 0, 0,216, 1, 0, 0,128, 3, 0, 0,196, 1, 0, 0,124, 3, 0, 0,
-198, 1, 0, 0,154, 3, 0, 0,213, 1, 0, 0,185, 3, 0, 0,223, 1, 0, 0,157, 3, 0, 0,221, 1, 0, 0,183, 3, 0, 0,
-215, 1, 0, 0,149, 3, 0, 0,222, 1, 0, 0,160, 3, 0, 0,224, 1, 0, 0,186, 3, 0, 0,214, 1, 0, 0,150, 3, 0, 0,
-216, 1, 0, 0,184, 3, 0, 0,211, 1, 0, 0,187, 3, 0, 0,229, 1, 0, 0,163, 3, 0, 0,223, 1, 0, 0,185, 3, 0, 0,
-213, 1, 0, 0,145, 3, 0, 0,224, 1, 0, 0,166, 3, 0, 0,230, 1, 0, 0,188, 3, 0, 0,212, 1, 0, 0,148, 3, 0, 0,
-214, 1, 0, 0,186, 3, 0, 0,209, 1, 0, 0,189, 3, 0, 0,231, 1, 0, 0,169, 3, 0, 0,229, 1, 0, 0,187, 3, 0, 0,
-211, 1, 0, 0,141, 3, 0, 0,230, 1, 0, 0,172, 3, 0, 0,232, 1, 0, 0,190, 3, 0, 0,210, 1, 0, 0,144, 3, 0, 0,
-212, 1, 0, 0,188, 3, 0, 0,207, 1, 0, 0,191, 3, 0, 0,233, 1, 0, 0,170, 3, 0, 0,231, 1, 0, 0,189, 3, 0, 0,
-209, 1, 0, 0,137, 3, 0, 0,232, 1, 0, 0,174, 3, 0, 0,234, 1, 0, 0,192, 3, 0, 0,208, 1, 0, 0,140, 3, 0, 0,
-210, 1, 0, 0,190, 3, 0, 0,205, 1, 0, 0,176, 3, 0, 0,233, 1, 0, 0,191, 3, 0, 0,207, 1, 0, 0,133, 3, 0, 0,
-208, 1, 0, 0,192, 3, 0, 0,234, 1, 0, 0,178, 3, 0, 0,206, 1, 0, 0,136, 3, 0, 0,133, 1, 0, 0, 17, 3, 0, 0,
-131, 1, 0, 0,193, 3, 0, 0,245, 1, 0, 0,194, 3, 0, 0,243, 1, 0, 0,195, 3, 0, 0,246, 1, 0, 0,196, 3, 0, 0,
-132, 1, 0, 0, 19, 3, 0, 0,134, 1, 0, 0,197, 3, 0, 0,244, 1, 0, 0,198, 3, 0, 0,135, 1, 0, 0, 11, 3, 0, 0,
-133, 1, 0, 0,195, 3, 0, 0,243, 1, 0, 0,199, 3, 0, 0,241, 1, 0, 0,200, 3, 0, 0,244, 1, 0, 0,197, 3, 0, 0,
-134, 1, 0, 0, 13, 3, 0, 0,136, 1, 0, 0,201, 3, 0, 0,242, 1, 0, 0,202, 3, 0, 0,137, 1, 0, 0, 5, 3, 0, 0,
-135, 1, 0, 0,200, 3, 0, 0,241, 1, 0, 0,203, 3, 0, 0,239, 1, 0, 0,204, 3, 0, 0,242, 1, 0, 0,201, 3, 0, 0,
-136, 1, 0, 0, 7, 3, 0, 0,138, 1, 0, 0,205, 3, 0, 0,240, 1, 0, 0,206, 3, 0, 0,139, 1, 0, 0,255, 2, 0, 0,
-137, 1, 0, 0,204, 3, 0, 0,239, 1, 0, 0,207, 3, 0, 0,237, 1, 0, 0,208, 3, 0, 0,240, 1, 0, 0,205, 3, 0, 0,
-138, 1, 0, 0, 1, 3, 0, 0,140, 1, 0, 0,209, 3, 0, 0,238, 1, 0, 0,210, 3, 0, 0,141, 1, 0, 0,249, 2, 0, 0,
-139, 1, 0, 0,208, 3, 0, 0,237, 1, 0, 0,211, 3, 0, 0,235, 1, 0, 0,212, 3, 0, 0,238, 1, 0, 0,209, 3, 0, 0,
-140, 1, 0, 0,251, 2, 0, 0,142, 1, 0, 0,213, 3, 0, 0,236, 1, 0, 0,214, 3, 0, 0,129, 1, 0, 0,239, 2, 0, 0,
-141, 1, 0, 0,212, 3, 0, 0,235, 1, 0, 0,215, 3, 0, 0,247, 1, 0, 0,216, 3, 0, 0,236, 1, 0, 0,213, 3, 0, 0,
-142, 1, 0, 0,244, 2, 0, 0,130, 1, 0, 0,217, 3, 0, 0,248, 1, 0, 0,218, 3, 0, 0,235, 1, 0, 0,219, 3, 0, 0,
-243, 1, 0, 0,194, 3, 0, 0,245, 1, 0, 0,220, 3, 0, 0,247, 1, 0, 0,215, 3, 0, 0,246, 1, 0, 0,198, 3, 0, 0,
-244, 1, 0, 0,221, 3, 0, 0,236, 1, 0, 0,218, 3, 0, 0,248, 1, 0, 0,222, 3, 0, 0,235, 1, 0, 0,211, 3, 0, 0,
-237, 1, 0, 0,223, 3, 0, 0,241, 1, 0, 0,199, 3, 0, 0,243, 1, 0, 0,219, 3, 0, 0,242, 1, 0, 0,224, 3, 0, 0,
-238, 1, 0, 0,214, 3, 0, 0,236, 1, 0, 0,221, 3, 0, 0,244, 1, 0, 0,202, 3, 0, 0,237, 1, 0, 0,207, 3, 0, 0,
-239, 1, 0, 0,203, 3, 0, 0,241, 1, 0, 0,223, 3, 0, 0,242, 1, 0, 0,206, 3, 0, 0,240, 1, 0, 0,210, 3, 0, 0,
-238, 1, 0, 0,224, 3, 0, 0, 55, 1, 0, 0,205, 2, 0, 0,123, 1, 0, 0, 61, 3, 0, 0,129, 1, 0, 0,216, 3, 0, 0,
-247, 1, 0, 0,225, 3, 0, 0,130, 1, 0, 0, 64, 3, 0, 0,124, 1, 0, 0,206, 2, 0, 0, 56, 1, 0, 0,226, 3, 0, 0,
-248, 1, 0, 0,217, 3, 0, 0, 55, 1, 0, 0,225, 3, 0, 0,247, 1, 0, 0,220, 3, 0, 0,245, 1, 0, 0,227, 3, 0, 0,
- 63, 1, 0, 0,225, 2, 0, 0,246, 1, 0, 0,222, 3, 0, 0,248, 1, 0, 0,226, 3, 0, 0, 56, 1, 0, 0,229, 2, 0, 0,
- 64, 1, 0, 0,228, 3, 0, 0, 61, 1, 0, 0,234, 2, 0, 0, 63, 1, 0, 0,227, 3, 0, 0,245, 1, 0, 0,193, 3, 0, 0,
-131, 1, 0, 0, 53, 3, 0, 0,246, 1, 0, 0,228, 3, 0, 0, 64, 1, 0, 0,236, 2, 0, 0, 62, 1, 0, 0, 55, 3, 0, 0,
-132, 1, 0, 0,196, 3, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0, 56, 25, 27, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 85, 86, 84,101,120, 0, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-248, 38,199, 4, 0, 0, 0, 0, 25, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,120, 1, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 31, 0, 0,248, 38,199, 4, 0, 0, 0, 0, 60, 0, 0, 0,244, 1, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 72, 70, 24, 4, 0, 0, 0, 0, 61, 0, 5, 0, 0, 0,112, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 32, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,128, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,112, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0,240, 0,
- 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 16, 0, 72, 70, 24, 4, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 64, 0,
- 68, 65, 84, 65,112, 23, 0, 0,120, 1, 27, 4, 0, 0, 0, 0, 58, 0, 0, 0,244, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 12, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 16, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 28, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 32, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 36, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 40, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 44, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 48, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 52, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 56, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 60, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 64, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 68, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 72, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 76, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 80, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 84, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 88, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 92, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 96, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,100, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,104, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,108, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,112, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,116, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-120, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,124, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,128, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,132, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,136, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,140, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,144, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,148, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-152, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,156, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,160, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,164, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,168, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,172, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,176, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,180, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-184, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,188, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,192, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 1, 0,195, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,198, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,201, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 1, 0,204, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,207, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,
-210, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,213, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,216, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 1, 0,219, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,222, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,225, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 1, 0,228, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,231, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,
-234, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,237, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,240, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,244, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,248, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,252, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 4, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 8, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 12, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 16, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 20, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 24, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 28, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 32, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 36, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 40, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 44, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 48, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 52, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 56, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 60, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 64, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 68, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 72, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 76, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 80, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 84, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 88, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 92, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 96, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,100, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-104, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,108, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,112, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,116, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,120, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,124, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,128, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,132, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-136, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,140, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,144, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,148, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,152, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,156, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,160, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,164, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-168, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,172, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,176, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,180, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,184, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,188, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,192, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,196, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-200, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,204, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,208, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,212, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,216, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,220, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,224, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,228, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-232, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,236, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,240, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,244, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,248, 1, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,252, 1, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 4, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 8, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 12, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 16, 2, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 20, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 24, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 28, 2, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 32, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 36, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 40, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 44, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 48, 2, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 52, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 56, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 60, 2, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 64, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 68, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 72, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 76, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 80, 2, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 84, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 88, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 92, 2, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 96, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,100, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-104, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,108, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,112, 2, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,116, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,120, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,124, 2, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,128, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,132, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-136, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,140, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,144, 2, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,148, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,152, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,156, 2, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,160, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,164, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-168, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,172, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,176, 2, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,180, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,184, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,188, 2, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,192, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,196, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-200, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,204, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,208, 2, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,212, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,216, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,220, 2, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,224, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,228, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-232, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,236, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,240, 2, 0, 0, 3, 0, 0, 0,
- 0, 0, 1, 0,243, 2, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,246, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,250, 2, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,254, 2, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 2, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 6, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 10, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 14, 3, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 18, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 22, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 26, 3, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 30, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 34, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 38, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 42, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 46, 3, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 50, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 54, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 58, 3, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 62, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 66, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 70, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 74, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 78, 3, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 82, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 86, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 90, 3, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 94, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 98, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-102, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,106, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,110, 3, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,114, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,118, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,122, 3, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,126, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,130, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-134, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,138, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,142, 3, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,146, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,150, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,154, 3, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,158, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,162, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-166, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,170, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,174, 3, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,178, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,182, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,186, 3, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,190, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,194, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-198, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,202, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,206, 3, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,210, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,214, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,218, 3, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,222, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,226, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-230, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,234, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,238, 3, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,242, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,246, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,250, 3, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,254, 3, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 2, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 6, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 10, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 14, 4, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 18, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 22, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 26, 4, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 30, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 34, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 38, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 42, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 46, 4, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 50, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 54, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 58, 4, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 62, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 66, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 70, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 74, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 78, 4, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 82, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 86, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 90, 4, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 94, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 98, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-102, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,106, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,110, 4, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,114, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,118, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,122, 4, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,126, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,130, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-134, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,138, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,142, 4, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,146, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,150, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,154, 4, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,158, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,162, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-166, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,170, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,174, 4, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,178, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,182, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,186, 4, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,190, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,194, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-198, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,202, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,206, 4, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,210, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,214, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,218, 4, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,222, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,226, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-230, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,234, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,238, 4, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,242, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,246, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,250, 4, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,254, 4, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 2, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 6, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 10, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 14, 5, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 18, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 22, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 26, 5, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 30, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 34, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 38, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 42, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 46, 5, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 50, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 54, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 58, 5, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 62, 5, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 65, 5, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,
- 68, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 72, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 76, 5, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 80, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 84, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 88, 5, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 92, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 96, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-100, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,104, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,108, 5, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,112, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,116, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,120, 5, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,124, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,128, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-132, 5, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,135, 5, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,138, 5, 0, 0, 3, 0, 0, 0,
- 0, 0, 1, 0,141, 5, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,144, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,148, 5, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,152, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,156, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-160, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,164, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,168, 5, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,172, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,176, 5, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,179, 5, 0, 0,
- 3, 0, 0, 0, 0, 0, 1, 0,182, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,186, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-190, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,194, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,198, 5, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,202, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,206, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,210, 5, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,214, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,218, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-222, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,226, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,230, 5, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,234, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,238, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,242, 5, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,246, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,250, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-254, 5, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 2, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 6, 6, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 10, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 14, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 18, 6, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 22, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 26, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 30, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 34, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 38, 6, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 42, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 46, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 50, 6, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 54, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 58, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 62, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 66, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 70, 6, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 74, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 78, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 82, 6, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 86, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 90, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 94, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 98, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,102, 6, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,106, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,110, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,114, 6, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,118, 6, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,121, 6, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,
-124, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,128, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,132, 6, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,136, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,140, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,144, 6, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,148, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,152, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-156, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,160, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,164, 6, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,168, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,172, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,176, 6, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,180, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,184, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-188, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,192, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,196, 6, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,200, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,204, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,208, 6, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,212, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,216, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-220, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,224, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,228, 6, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,232, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,236, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,240, 6, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,244, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,248, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-252, 6, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 4, 7, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 8, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 12, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 16, 7, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 20, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 24, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 28, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 32, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 36, 7, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 40, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 44, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 48, 7, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 52, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 56, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 60, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 64, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 68, 7, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0, 72, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 76, 7, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 79, 7, 0, 0,
- 3, 0, 0, 0, 0, 0, 1, 0, 82, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 86, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
- 90, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 94, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 98, 7, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,102, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,106, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,110, 7, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,114, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,118, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,
-122, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,126, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,130, 7, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,134, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,138, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,142, 7, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0,146, 7, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,149, 7, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0,
-152, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,156, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,160, 7, 0, 0, 4, 0, 0, 0,
- 0, 0, 1, 0,164, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,168, 7, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0,172, 7, 0, 0,
- 4, 0, 0, 0, 0, 0, 1, 0, 77, 69, 0, 0,232, 4, 0, 0, 8, 8,196, 4, 0, 0, 0, 0, 50, 0, 0, 0, 1, 0, 0, 0,
-168, 20,196, 4, 0, 0, 0, 0,136, 37, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 77, 69, 80,108, 97,110,101, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,129, 27, 4, 0, 0, 0, 0,
- 72, 30, 27, 4, 0, 0, 0, 0, 72, 35, 27, 4, 0, 0, 0, 0,216, 29, 27, 4, 0, 0, 0, 0,168, 35, 27, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,129, 27, 4, 0, 0, 0, 0, 8,130, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 56, 13,196, 4, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 15,196, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 30, 27, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 2, 0, 0, 0, 5, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-248, 32, 27, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 2, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,179, 0, 0, 64, 52, 0, 0, 0, 0, 0, 0,128, 63, 2, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0, 24,129, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-120,164, 26, 4, 0, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0, 56, 13,196, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,129, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,104,129, 27, 4, 0, 0, 0, 0, 56, 0, 0, 0, 4, 0, 0, 0,
- 0, 0,128, 63,255,255,127, 63, 0, 0, 0, 0, 0, 0, 0, 0,254,127, 3, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0, 0, 0,
- 0, 0, 0, 0,255,127, 3, 0, 1, 0,128,191,253,255,127,191, 0, 0, 0, 0, 0, 0, 0, 0,255,127, 3, 0,250,255,127,191,
- 3, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,255,127, 3, 0, 68, 65, 84, 65, 8, 2, 0, 0,136, 15,196, 4, 0, 0, 0, 0,
-124, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8,130, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 8,130, 27, 4, 0, 0, 0, 0,
- 53, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 8, 2, 0, 0,
-248, 32, 27, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 97, 99,101, 45, 86,101,114,116,101,120,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 35, 27, 4, 0, 0, 0, 0, 26, 0, 0, 0, 12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,
-101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 29, 27, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-168, 35, 27, 4, 0, 0, 0, 0, 61, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,216, 29, 27, 4, 0, 0, 0, 0, 59, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
- 3, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0,
-168, 30, 27, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 97, 99,101, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 35, 27, 4, 0, 0, 0, 0, 25, 0, 0, 0, 16, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,
-101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 30, 27, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,
- 72, 35, 27, 4, 0, 0, 0, 0, 60, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 1, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 12, 0, 0, 0, 72, 30, 27, 4, 0, 0, 0, 0, 58, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 2, 0, 77, 69, 0, 0,232, 4, 0, 0,168, 20,196, 4, 0, 0, 0, 0, 50, 0, 0, 0, 1, 0, 0, 0,200, 43,196, 4,
- 0, 0, 0, 0, 8, 8,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69,112,108,
- 97,110,101, 95, 99,104,101, 99,107,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 25,196, 4, 0, 0, 0, 0,216, 17,196, 4,
- 0, 0, 0, 0, 88, 94, 27, 4, 0, 0, 0, 0,184, 89, 27, 4, 0, 0, 0, 0,168, 95, 27, 4, 0, 0, 0, 0,248, 98, 27, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 28,196, 4,
- 0, 0, 0, 0, 24, 33,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 26,196, 4,
- 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 30,196, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
- 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,
- 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 87, 27, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 2, 0, 0, 0,
- 5, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 92, 27, 4,
- 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255, 0, 0, 0, 0, 1, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255, 2, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255, 3, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
- 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,205, 76, 63,172,197, 39, 55,214,204, 76, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 83, 0, 30, 0, 5, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,216, 25,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,104,142, 26, 4,
- 0, 0, 0, 0, 88,120, 26, 4, 0, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0, 56, 26,196, 4, 0, 0, 0, 0,124, 1, 0, 0,
- 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,136, 28,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,244, 1, 0, 0,136, 28,196, 4, 0, 0, 0, 0, 56, 0, 0, 0,
- 25, 0, 0, 0, 4,205, 76,191, 0, 0, 0, 0,208,204, 76,191, 0, 0, 2,128, 0, 0, 1, 0, 4,205, 76, 63, 0, 0, 0, 0,
-210,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 0,205, 76, 63, 0, 0, 0, 0,213,204,204, 62, 0, 0, 2,128, 0, 0, 1, 0,
- 41,205,204, 62,174,148, 77,180,200,204,204,190, 0, 0, 1,128, 0, 0, 1, 0,254,204, 76, 63,176, 90, 19, 51,208,204,204,190,
- 0, 0, 1,128, 0, 0, 1, 0, 41,205,204, 62,174,148, 77,180, 0, 0,240, 52, 0, 0, 1,128, 0, 0, 1, 0,254,204, 76, 63,
-176, 90, 19, 51, 0, 0, 96, 52, 0, 0, 2,128, 0, 0, 1, 0, 41,205,204, 62,174,148, 77,180,221,204,204, 62, 0, 0, 1,128,
- 0, 0, 1, 0, 47,205,204, 62,174,148, 77,180,214,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 41,205,204, 62,174,148, 77,180,
-206,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0,254,204, 76, 63,176, 90, 19, 51,208,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0,
- 2, 0, 86,182, 3, 0,160, 52,214,204, 76,191, 0, 0, 1,128, 0, 0, 1, 0, 65,205,204,190, 91, 41,155, 51,212,204, 76,191,
- 0, 0, 1,128, 0, 0, 1, 0, 1, 0, 78,182, 3, 0,160, 52,206,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 57,205,204,190,
- 90, 41,155, 51,206,204, 76, 63, 0, 0, 1,128, 0, 0, 1, 0, 10,205, 76,191,169, 82,182, 51,210,204, 76, 63, 0, 0, 1,128,
- 0, 0, 1, 0, 2, 0, 86,182, 3, 0,160, 52,197,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0, 65,205,204,190, 91, 41,155, 51,
-205,204,204, 62, 0, 0, 2,128, 0, 0, 1, 0, 10,205, 76,191,169, 82,182, 51,213,204,204, 62, 0, 0, 1,128, 0, 0, 1, 0,
- 2, 0, 86,182, 3, 0,160, 52, 0, 0,144,180, 0, 0, 2,128, 0, 0, 1, 0, 65,205,204,190, 91, 41,155, 51, 0, 0, 0,179,
- 0, 0, 1,128, 0, 0, 1, 0, 10,205, 76,191,169, 82,182, 51, 0, 0, 96, 52, 0, 0, 1,128, 0, 0, 1, 0, 2, 0, 86,182,
- 3, 0,160, 52,224,204,204,190, 0, 0, 1,128, 0, 0, 1, 0, 65,205,204,190, 91, 41,155, 51,216,204,204,190, 0, 0, 2,128,
- 0, 0, 1, 0, 10,205, 76,191,169, 82,182, 51,208,204,204,190, 0, 0, 2,128, 0, 0, 1, 0, 68, 65, 84, 65, 8, 2, 0, 0,
-200, 30,196, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 33,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,224, 1, 0, 0,
- 24, 33,196, 4, 0, 0, 0, 0, 53, 0, 0, 0, 40, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0,
- 10, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0,
- 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 35, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 10, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0,
- 12, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0,
- 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 17, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 35, 0, 13, 0, 0, 0, 16, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 21, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0,
- 20, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 20, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, 19, 0, 0, 0, 0, 0, 35, 0,
- 21, 0, 0, 0, 24, 0, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 24, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 23, 0, 0, 0,
- 0, 0, 35, 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0,
- 23, 0, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 22, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0, 13, 0, 0, 0, 0, 0, 35, 0,
- 7, 0, 0, 0, 16, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 19, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 22, 0, 0, 0,
- 0, 0, 35, 0, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0,
- 6, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 35, 0,
- 13, 0, 0, 0, 14, 0, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 21, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 24, 0, 0, 0,
- 0, 0, 35, 0, 9, 0, 0, 0, 11, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 8, 2, 0, 0, 8, 92, 27, 4, 0, 0, 0, 0,
-124, 1, 0, 0, 5, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,168, 95, 27, 4, 0, 0, 0, 0, 17, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 98, 27, 4, 0, 0, 0, 0, 26, 0, 0, 0, 16, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,
-101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 89, 27, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 3, 0, 0,168, 95, 27, 4, 0, 0, 0, 0,
- 61, 0, 0, 0, 64, 0, 0, 0,144,108,246, 61,162,226,125, 63, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0,
- 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0,144,108,246, 61,162,226,125, 63, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63,
- 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0,252,228,213, 62,
-162,226,125, 63, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0,144,108,246, 61,162,226,125, 63, 0, 0, 0, 0,
-144,108,246, 61,162,226,125, 63, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 0,229,213, 62,162,226,125, 63,
- 0, 0, 0, 0, 18,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0,252,228,213, 62,
-162,226,125, 63, 0, 0, 0, 0,154, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 34, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0,
- 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,
- 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 30, 5, 17, 63,
-162,226,125, 63, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0,
-152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63,
- 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 30, 5, 17, 63,
-162,226,125, 63, 0, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0,
- 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63,
- 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0,252,228,213, 62,
-162,226,125, 63, 0, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0,
- 30, 5, 17, 63,162,226,125, 63, 0, 0, 0, 0,152, 23, 55, 63,162,226,125, 63, 0, 0, 0, 0, 34, 5, 17, 63,162,226,125, 63,
- 0, 0, 0, 0, 0,229,213, 62,162,226,125, 63, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63, 0, 0, 0, 0, 30, 5, 17, 63,
-162,226,125, 63, 0, 0, 0, 0, 18,192,137, 62,162,226,125, 63, 0, 0, 0, 0,144,108,246, 61,162,226,125, 63, 0, 0, 0, 0,
-144,108,246, 61,162,226,125, 63, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63,
- 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0,252,228,213, 62,
-162,226,125, 63, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0,144,108,246, 61,162,226,125, 63, 0, 0, 0, 0,
-144,108,246, 61,162,226,125, 63, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0,252,228,213, 62,162,226,125, 63,
- 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0, 12,192,137, 62,162,226,125, 63, 0, 0, 0, 0,252,228,213, 62,
-162,226,125, 63, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,248, 98, 27, 4, 0, 0, 0, 0, 62, 0, 0, 0, 64, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 68, 65, 84, 65, 0, 2, 0, 0,184, 89, 27, 4, 0, 0, 0, 0, 59, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0,
- 12, 0, 0, 0, 25, 0, 0, 0, 23, 0, 0, 0, 21, 0, 0, 0, 24, 0, 0, 0, 38, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0,
- 20, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, 22, 0, 0, 0, 24, 0, 0, 0, 17, 0, 0, 0, 12, 0, 0, 0,
- 18, 0, 0, 0, 37, 0, 0, 0, 21, 0, 0, 0, 16, 0, 0, 0, 20, 0, 0, 0, 17, 0, 0, 0, 13, 0, 0, 0, 36, 0, 0, 0,
- 14, 0, 0, 0, 13, 0, 0, 0, 17, 0, 0, 0, 14, 0, 0, 0, 16, 0, 0, 0, 15, 0, 0, 0, 1, 0, 0, 0, 34, 0, 0, 0,
- 8, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 31, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 28, 0, 0, 0,
- 16, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 29, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0,
- 4, 0, 0, 0, 33, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0, 30, 0, 0, 0,
- 22, 0, 0, 0, 26, 0, 0, 0, 11, 0, 0, 0, 39, 0, 0, 0, 9, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 3, 0, 0, 0,
- 3, 0, 0, 0, 2, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 10, 0, 0, 0, 1, 0, 0, 0, 22, 0, 0, 0, 30, 0, 0, 0,
- 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 29, 0, 0, 0, 19, 0, 0, 0, 24, 0, 0, 0, 2, 0, 0, 0, 31, 0, 0, 0,
- 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 32, 0, 0, 0, 8, 0, 0, 0, 27, 0, 0, 0,
- 13, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 28, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 14, 0, 0, 0, 10, 0, 0, 0,
- 15, 0, 0, 0, 11, 0, 0, 0, 18, 0, 0, 0, 12, 0, 0, 0, 17, 0, 0, 0, 13, 0, 0, 0, 16, 0, 0, 0, 14, 0, 0, 0,
- 17, 0, 0, 0, 17, 0, 0, 0, 20, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 16, 0, 0, 0,
- 21, 0, 0, 0, 20, 0, 0, 0, 24, 0, 0, 0, 21, 0, 0, 0, 23, 0, 0, 0, 22, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0,
- 23, 0, 0, 0, 25, 0, 0, 0, 12, 0, 0, 0, 9, 0, 0, 0, 11, 0, 0, 0, 26, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0,
-104, 87, 27, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 97, 99,101, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 94, 27, 4, 0, 0, 0, 0, 25, 0, 0, 0, 16, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,
-101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 17,196, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,
- 88, 94, 27, 4, 0, 0, 0, 0, 60, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65,192, 0, 0, 0,216, 17,196, 4, 0, 0, 0, 0,
- 58, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0,
- 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 12, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 16, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 2, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 28, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 2, 0, 32, 0, 0, 0, 4, 0, 0, 0, 1, 0, 2, 0, 36, 0, 0, 0, 4, 0, 0, 0, 1, 0, 2, 0,
- 40, 0, 0, 0, 4, 0, 0, 0, 1, 0, 2, 0, 44, 0, 0, 0, 4, 0, 0, 0, 1, 0, 2, 0, 48, 0, 0, 0, 4, 0, 0, 0,
- 1, 0, 2, 0, 52, 0, 0, 0, 4, 0, 0, 0, 1, 0, 2, 0, 56, 0, 0, 0, 4, 0, 0, 0, 1, 0, 2, 0, 60, 0, 0, 0,
- 4, 0, 0, 0, 1, 0, 2, 0, 77, 69, 0, 0,232, 4, 0, 0,200, 43,196, 4, 0, 0, 0, 0, 50, 0, 0, 0, 1, 0, 0, 0,
-232,105,198, 4, 0, 0, 0, 0,168, 20,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 77, 69,112,114,101,118,105,101,119, 0, 0, 0, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 48,196, 4, 0, 0, 0, 0,
-104,138,195, 4, 0, 0, 0, 0,120, 58,200, 4, 0, 0, 0, 0, 40,194,199, 4, 0, 0, 0, 0,200,138,200, 4, 0, 0, 0, 0,
-184,198,195, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152, 51,196, 4, 0, 0, 0, 0, 88,104,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 49,196, 4, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,102,196, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 35,196, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 2, 0, 0, 0, 5, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152, 37,196, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255, 0, 0, 0, 0, 1, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 2, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 3, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130, 2, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 5, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,117,224,186, 64, 91, 13,187, 64,
-160,240,186, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0, 30, 0, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,248, 48,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-120,164, 26, 4, 0, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0, 72, 49,196, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152, 51,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 50, 0, 0,152, 51,196, 4, 0, 0, 0, 0, 56, 0, 0, 0,130, 2, 0, 0,
- 28,136,141,191, 12,243,244, 62,198, 86,183,192,212,231,117, 10,191,130, 1, 0,240,102,131,192, 30,183,119, 64,109,169,199,191,
- 58,166,158, 84,230,221, 1, 0,119,108,239, 63,213, 85,156, 64,188, 58, 40,192,228, 40,207,106,137,198, 1, 0, 95,135,146, 64,
- 63, 54, 14,191,241,194,102,192, 27,100,219,243, 45,177, 1, 0,239, 84,141, 62, 16,220,157,192, 14, 2, 73,192, 8, 6, 39,148,
- 86,187, 1, 0,132,239,162,192,206,165, 12,192,150, 45,240,191,175,144,245,207,251,214, 1, 0,239, 84,141,190, 16,220,157, 64,
- 14, 2, 73, 64,248,249,217,107,170, 68, 1, 0,132,239,162, 64,206,165, 12, 64,150, 45,240, 63, 81,111, 11, 48, 5, 41, 1, 0,
-240,102,131, 64, 30,183,119,192,109,169,199, 63,198, 89, 98,171, 26, 34, 1, 0,119,108,239,191,213, 85,156,192,188, 58, 40, 64,
- 28,215, 49,149,119, 57, 1, 0, 95,135,146,192, 63, 54, 14, 63,241,194,102, 64,229,155, 37, 12,211, 78, 1, 0, 28,136,141, 63,
- 12,243,244,190,198, 86,183, 64, 44, 24,139,245, 65,125, 1, 0,114, 17, 68,192,226,153, 35, 64,154, 26,137,192, 6,189,226, 55,
- 85,162, 1, 0,155, 40,230, 62,239,199, 73, 64,176, 52,157,192,211, 9,237, 68,153,148, 1, 0,124, 55,168,191,224,177,164, 64,
- 58,144, 29,192, 69,227,132,112, 46,202, 1, 0, 94, 35,105,192,230, 88,129,191,195, 14,143,192, 93,176,233,233, 68,158, 1, 0,
- 37, 2,173,192,137,187,123, 63, 56, 68, 1,192,206,137,127, 21,216,211, 1, 0,234,168, 2, 64,231,158, 57,189, 65,149,175,192,
-162, 44, 3,255, 11,136, 1, 0, 19,159,114, 64,254,226, 34, 64,196,133,106,192,225, 82,164, 55,228,175, 1, 0,105,176,249,190,
- 21,148, 39,192,217,214,166,192, 87,245,194,198, 5,142, 1, 0,227,163, 54, 64, 86,121, 78,192, 22,202,125,192, 99, 62,120,185,
- 79,169, 1, 0,241, 40, 53,192,200, 31,134,192,229,188, 60,192, 30,194, 94,164,136,191, 1, 0, 96,230,181,192, 33, 24,119,191,
-174, 26,130, 63,186,131,231,234, 56, 22, 1, 0,103, 93,163,192,136,128, 38, 64, 83,235,153, 63,100,144,224, 56, 74, 26, 1, 0,
-238,219, 36,192,132,151,165, 64,165,226,109, 63,176,199, 33,113, 80, 20, 1, 0, 24,237,111, 63,118,174,184, 64,212, 34,154, 62,
-125, 20, 44,126,148, 6, 1, 0,163,244,130, 64,157, 58,133, 64,125, 95,226,190,119, 89, 5, 91, 86,246, 1, 0, 96,230,181, 64,
- 33, 24,119, 63,174, 26,130,191, 70,124, 25, 21,200,233, 1, 0,103, 93,163, 64,136,128, 38,192, 83,235,153,191,156,111, 32,199,
-182,229, 1, 0,238,219, 36, 64,132,151,165,192,165,226,109,191, 80, 56,223,142,176,235, 1, 0, 24,237,111,191,118,174,184,192,
-212, 34,154,190,131,235,212,129,108,249, 1, 0,163,244,130,192,157, 58,133,192,125, 95,226, 62,137,166,251,164,170, 9, 1, 0,
-227,163, 54,192, 86,121, 78, 64, 22,202,125, 64,157,193,136, 70,177, 86, 1, 0,241, 40, 53, 64,200, 31,134, 64,229,188, 60, 64,
-226, 61,162, 91,120, 64, 1, 0, 37, 2,173, 64,137,187,123,191, 56, 68, 1, 64, 50,118,129,234, 40, 44, 1, 0,124, 55,168, 63,
-224,177,164,192, 58,144, 29, 64,187, 28,124,143,210, 53, 1, 0, 19,159,114,192,254,226, 34,192,196,133,106, 64, 31,173, 92,200,
- 28, 80, 1, 0,234,168, 2,192,231,158, 57, 61, 65,149,175, 64, 94,211,253, 0,245,119, 1, 0,105,176,249, 62, 21,148, 39, 64,
-217,214,166, 64,169, 10, 62, 57,251,113, 1, 0, 94, 35,105, 64,230, 88,129, 63,195, 14,143, 64,163, 79, 23, 22,188, 97, 1, 0,
-114, 17, 68, 64,226,153, 35,192,154, 26,137, 64,250, 66, 30,200,171, 93, 1, 0,155, 40,230,190,239,199, 73,192,176, 52,157, 64,
- 45,246, 19,187,103,107, 1, 0, 37,178, 10,192,138,231,201, 63,149,143,166,192, 31,209,244, 33,216,141, 1, 0, 3,132,110,192,
-243,203, 85, 64,151,107, 66,192, 67,174, 93, 73, 73,190, 1, 0,116,161,174,190, 81,152,241, 63,110, 2,177,192, 38,248,149, 40,
-221,134, 1, 0,138, 91,154, 63,218,179,133, 64,209,222,122,192,185, 26,201, 91,228,170, 1, 0, 7, 82, 52,192, 82,252,149, 64,
- 64,202, 5,192,177,193, 36,102,136,210, 1, 0,179, 12,148, 62,251,221,166, 64,188, 87, 41,192, 34, 7,239,113, 29,198, 1, 0,
-216,246, 29,192, 17,156,141,190,209,167,169,192,176,202, 86,250,199,139, 1, 0, 99, 72,145,192, 79,114,213,191,183, 35, 83,192,
- 97,156, 62,219,138,184, 1, 0,115, 58,158,192,129,120, 33, 64,198, 41,238,191, 60,148,228, 55,113,215, 1, 0,118,158,174,192,
-103,148, 33,191,140,156, 1,192,201,136,100,241,196,211, 1, 0, 55, 14,249, 62, 95,133,102, 62,210,143,186,192,213, 9, 14, 5,
-124,128, 1, 0,220, 61, 92, 64, 56,230,159,190, 6, 61,151,192,224, 75, 11,249, 40,153, 1, 0, 7, 86, 60, 64, 60, 48,119, 64,
- 93, 88, 81,192,216, 63, 8, 85,193,184, 1, 0,252, 55,139, 64, 62, 95,132, 63,225,216,113,192, 80, 95,209, 21,103,173, 1, 0,
- 18, 6, 84,191,251, 96,142,191, 76, 4,182,192,189,237,121,232,133,131, 1, 0,109, 74,225,189, 51, 54,123,192, 34,246,138,192,
-203,253,153,169,152,161, 1, 0,153, 66,119, 64,127,154,251,191,161,220,123,192,230, 84,182,213, 15,170, 1, 0,201, 59,208, 63,
-241,182,135,192,212,101,108,192,232, 34,217,162,118,175, 1, 0,161,246,169,191,235,196,151,192,170,149, 74,192,196,227, 32,152,
-192,186, 1, 0, 33,198,131,192,218,137, 84,192, 37,134, 32,192,102,165,233,183,113,201, 1, 0,176, 61,179,192,138,110,210,191,
- 24,220,228,190,179,133,191,219,126,245, 1, 0, 73,182,170,192,136, 16, 90,190, 90,194, 25, 64,168,139,188,251, 46, 53, 1, 0,
- 75, 55,153,192, 4, 78, 87, 64, 12, 54, 62,190,149,151,222, 73, 60,251, 1, 0,235, 19,161,192,207, 12,210, 63,210,242, 31, 64,
- 23,146, 90, 35, 63, 55, 1, 0, 60, 75, 94,192,189,115,150, 64,186,211,167,190,173,179,116,102, 51,248, 1, 0,186,191,189,191,
- 63, 32,168, 64,213,100, 7, 64, 46,224,204,114,208, 46, 1, 0,242,205,186, 63,141, 65,177, 64,127,219,154,191, 36, 32,223,120,
-206,228, 1, 0, 99,245,175, 62, 97, 12,178, 64,255,253,228, 63, 52, 7,109,121,213, 39, 1, 0,226, 92, 70, 64, 8,131,150, 64,
-182, 77,204,191, 49, 67, 2,103,141,220, 1, 0,200,194,152, 64,180,155, 83, 64,154,217, 62, 63,158,104,199, 71,227, 16, 1, 0,
- 73,182,170, 64,136, 16, 90, 62, 90,194, 25,192, 88,116, 68, 4,210,202, 1, 0,176, 61,179, 64,138,110,210, 63, 24,220,228, 62,
- 77,122, 65, 36,130, 10, 1, 0,235, 19,161, 64,207, 12,210,191,210,242, 31,192,233,109,166,220,193,200, 1, 0, 75, 55,153, 64,
- 4, 78, 87,192, 12, 54, 62, 62,107,104, 34,182,196, 4, 1, 0,186,191,189, 63, 63, 32,168,192,213,100, 7,192,210, 31, 52,141,
- 48,209, 1, 0, 60, 75, 94, 64,189,115,150,192,186,211,167, 62, 83, 76,140,153,205, 7, 1, 0, 99,245,175,190, 97, 12,178,192,
-255,253,228,191,204,248,147,134, 43,216, 1, 0,242,205,186,191,141, 65,177,192,127,219,154, 63,220,223, 33,135, 50, 27, 1, 0,
-200,194,152,192,180,155, 83,192,154,217, 62,191, 98,151, 57,184, 29,239, 1, 0,226, 92, 70,192, 8,131,150,192,182, 77,204, 63,
-207,188,254,152,115, 35, 1, 0,201, 59,208,191,241,182,135, 64,212,101,108, 64, 24,221, 39, 93,138, 80, 1, 0,153, 66,119,192,
-127,154,251, 63,161,220,123, 64, 26,171, 74, 42,241, 85, 1, 0,161,246,169, 63,235,196,151, 64,170,149, 74, 64, 60, 28,224,103,
- 64, 69, 1, 0, 33,198,131, 64,218,137, 84, 64, 37,134, 32, 64,154, 90, 23, 72,143, 54, 1, 0,118,158,174, 64,103,148, 33, 63,
-140,156, 1, 64, 55,119,156, 14, 60, 44, 1, 0,115, 58,158, 64,129,120, 33,192,198, 41,238, 63,196,107, 28,200,143, 40, 1, 0,
- 7, 82, 52, 64, 82,252,149,192, 64,202, 5, 64, 79, 62,220,153,120, 45, 1, 0,179, 12,148,190,251,221,166,192,188, 87, 41, 64,
-222,248, 17,142,227, 57, 1, 0, 7, 86, 60,192, 60, 48,119,192, 93, 88, 81, 64, 40,192,248,170, 63, 71, 1, 0,252, 55,139,192,
- 62, 95,132,191,225,216,113, 64,176,160, 47,234,153, 82, 1, 0,220, 61, 92,192, 56,230,159, 62, 6, 61,151, 64, 32,180,245, 6,
-216,102, 1, 0, 55, 14,249,190, 95,133,102,190,210,143,186, 64, 43,246,242,250,132,127, 1, 0,109, 74,225, 61, 51, 54,123, 64,
- 34,246,138, 64, 53, 2,103, 86,104, 94, 1, 0, 18, 6, 84, 63,251, 96,142, 63, 76, 4,182, 64, 67, 18,135, 23,123,124, 1, 0,
- 99, 72,145, 64, 79,114,213, 63,183, 35, 83, 64,159, 99,194, 36,118, 71, 1, 0,216,246, 29, 64, 17,156,141, 62,209,167,169, 64,
- 80, 53,170, 5, 57,116, 1, 0, 3,132,110, 64,243,203, 85,192,151,107, 66, 64,189, 81,163,182,183, 65, 1, 0, 37,178, 10, 64,
-138,231,201,191,149,143,166, 64,225, 46, 12,222, 40,114, 1, 0,138, 91,154,191,218,179,133,192,209,222,122, 64, 71,229, 55,164,
- 28, 85, 1, 0,116,161,174, 62, 81,152,241,191,110, 2,177, 64,218, 7,107,215, 35,121, 1, 0, 36, 76, 19,192, 25,151,129, 64,
-212,254, 98,192,201,206,101, 88,154,177, 1, 0, 93,232,175,191,177, 23, 64, 64, 69,186,154,192,229,225,204, 66, 13,151, 1, 0,
-208,190,232,190, 93,160,139, 64,191, 33,120,192,216,244,220, 94,204,170, 1, 0,210,126,142,192, 43, 49,238, 63,112, 30, 84,192,
-185,158,127, 39,203,182, 1, 0,138,165, 97,192, 92, 9, 80, 63, 20, 74,147,192,212,177,229, 17, 63,156, 1, 0, 98, 61,152,192,
- 87, 63,106,188, 6, 97, 90,192,114,152,219, 0,199,180, 1, 0,200,173, 14, 64,155,183, 63, 64,192, 75,144,192,205, 48, 77, 64,
-172,156, 1, 0, 95,162,167, 63,144, 29,209, 63, 25,245,174,192,217, 29, 61, 36,238,136, 1, 0,211, 62, 68, 64, 51, 56,168, 63,
- 13,245,153,192, 12, 66,168, 29,115,150, 1, 0, 33,182, 36, 64, 34, 38,220,191,150, 5,159,192, 10, 55,224,217,234,146, 1, 0,
- 16, 34, 81, 63,129, 64,179,191,162, 5,180,192,215, 18,118,224,100,133, 1, 0,212, 56,159, 63,172,166, 68,192,212,108,154,192,
-164, 27, 0,190,224,149, 1, 0,204, 76,223,191,170, 32,101,192, 65, 83,137,192,225,216,170,178,208,161, 1, 0,249,249, 10,192,
- 62, 52,244,191, 25,236,162,192, 21,208, 32,213, 85,145, 1, 0, 42,207, 89,192,251, 6, 47,192, 27,165,121,192,179,182, 21,196,
-221,169, 1, 0,137,215,176,192, 25, 62,241, 63,179,254,219,190,190,134, 7, 40, 61,247, 1, 0, 28,150,186,192,150, 16, 28, 60,
-191, 9, 7,191,120,128,100, 1, 57,245, 1, 0, 34,132,181,192, 99, 60, 92, 63,217, 81,149, 63,188,131,235, 18, 33, 24, 1, 0,
-175,242, 74,190,164,173,183, 64,227,105,145,191,146,250,157,125, 8,232, 1, 0,219,227, 2,192, 96,164,173, 64,200, 71, 78,191,
-131,212, 38,119,214,238, 1, 0,181,140, 92,191, 75, 38,184, 64,176,148, 37, 63,231,236,234,125,196, 12, 1, 0, 75,104,159, 64,
-212, 56,236, 63,240,126, 29,192,213,108,134, 41,245,202, 1, 0,215,159,132, 64, 84,184, 97, 64, 30, 44, 10,192,150, 91, 44, 76,
- 46,209, 1, 0, 95,122,164, 64,199,143, 44, 64, 53, 78, 68,191, 25,112, 14, 59,222,237, 1, 0,255,176, 54, 64,243, 84,141,192,
-237,176, 36,192,159, 63,250,159, 50,200, 1, 0, 93,229,133, 64,217, 21, 68,192,157,226, 45,192, 6, 91,218,187, 61,197, 1, 0,
-203, 56,129, 64, 21,211,130,192,187,115,143,191, 3, 88,190,166, 33,230, 1, 0,189,239,104,192, 82,142,140,192,178,178,168,191,
-108,177, 13,159,144,227, 1, 0, 50,141,253,191, 52,155,167,192,170,181,218,191,154,211,162,141,131,219, 1, 0,164, 58, 41,192,
-172, 34,167,192,206,232,151, 61,239,197,240,141, 63, 0, 1, 0, 93,229,133,192,217, 21, 68, 64,157,226, 45, 64,250,164, 38, 68,
-195, 58, 1, 0,203, 56,129,192, 21,211,130, 64,187,115,143, 63,253,167, 66, 89,223, 25, 1, 0,255,176, 54,192,243, 84,141, 64,
-237,176, 36, 64, 97,192, 6, 96,206, 55, 1, 0, 50,141,253, 63, 52,155,167, 64,170,181,218, 63,102, 44, 94,114,125, 36, 1, 0,
-164, 58, 41, 64,172, 34,167, 64,206,232,151,189, 17, 58, 16,114,193,255, 1, 0,189,239,104, 64, 82,142,140, 64,178,178,168, 63,
-148, 78,243, 96,112, 28, 1, 0, 28,150,186, 64,150, 16, 28,188,191, 9, 7, 63,136,127,156,254,199, 10, 1, 0, 34,132,181, 64,
- 99, 60, 92,191,217, 81,149,191, 68,124, 21,237,223,231, 1, 0,137,215,176, 64, 25, 62,241,191,179,254,219, 62, 66,121,249,215,
-195, 8, 1, 0,219,227, 2, 64, 96,164,173,192,200, 71, 78, 63,125, 43,218,136, 42, 17, 1, 0,181,140, 92, 63, 75, 38,184,192,
-176,148, 37,191, 25, 19, 22,130, 60,243, 1, 0,175,242, 74, 62,164,173,183,192,227,105,145, 63,110, 5, 99,130,248, 23, 1, 0,
-215,159,132,192, 84,184, 97,192, 30, 44, 10, 64,106,164,212,179,210, 46, 1, 0, 95,122,164,192,199,143, 44,192, 53, 78, 68, 63,
-231,143,242,196, 34, 18, 1, 0, 75,104,159,192,212, 56,236,191,240,126, 29, 64, 43,147,122,214, 11, 53, 1, 0,212, 56,159,191,
-172,166, 68, 64,212,108,154, 64, 92,228, 0, 66, 32,106, 1, 0, 33,182, 36,192, 34, 38,220, 63,150, 5,159, 64,246,200, 32, 38,
- 22,109, 1, 0, 16, 34, 81,191,129, 64,179, 63,162, 5,180, 64, 41,237,138, 31,156,122, 1, 0, 42,207, 89, 64,251, 6, 47, 64,
- 27,165,121, 64, 77, 73,235, 59, 35, 86, 1, 0,208, 76,223, 63,170, 32,101, 64, 65, 83,137, 64, 31, 39, 86, 77, 48, 94, 1, 0,
-249,249, 10, 64, 62, 52,244, 63, 25,236,162, 64,235, 47,224, 42,171,110, 1, 0,210,126,142, 64, 43, 49,238,191,112, 30, 84, 64,
- 71, 97,129,216, 53, 73, 1, 0, 98, 61,152, 64, 87, 63,106, 60, 6, 97, 90, 64,142,103, 37,255, 57, 75, 1, 0,138,165, 97, 64,
- 92, 9, 80,191, 20, 74,147, 64, 44, 78, 27,238,193, 99, 1, 0,208,190,232, 62, 93,160,139,192,191, 33,120, 64, 40, 11, 36,161,
- 52, 85, 1, 0, 36, 76, 19, 64, 25,151,129,192,212,254, 98, 64, 55, 49,155,167,102, 78, 1, 0, 93,232,175, 63,177, 23, 64,192,
- 69,186,154, 64, 27, 30, 52,189,243,104, 1, 0,211, 62, 68,192, 51, 56,168,191, 13,245,153, 64,244,189, 88,226,141,105, 1, 0,
-200,173, 14,192,155,183, 63,192,192, 75,144, 64, 51,207,179,191, 84, 99, 1, 0, 95,162,167,191,144, 29,209,191, 25,245,174, 64,
- 39,226,195,219, 18,119, 1, 0,158,156,211,191,185,228,132, 63,190,207,176,192,249,219,152, 22, 71,135, 1, 0, 0, 76, 41,192,
-190,199, 5, 64, 83,157,153,192, 56,198,174, 45, 83,151, 1, 0,204, 83,125,192,169, 55,105, 64,244,162, 20,192,132,169,162, 79,
-100,205, 1, 0,178,215, 91,192,222,235, 62, 64,190,254,108,192, 26,181, 8, 65, 28,175, 1, 0,242, 63, 59,191,210,237,152, 63,
-251, 21,182,192,248,239,253, 25,180,131, 1, 0, 86,230, 94, 61,198, 30, 35, 64,233, 15,169,192, 62, 1,180, 55,197,140, 1, 0,
-220, 4,199, 63, 7,145,146, 64,104,186, 83,192, 3, 34, 24,100,216,183, 1, 0, 9,120, 86, 63,149, 91,109, 64, 79,242,142,192,
- 57, 18,216, 80,117,158, 1, 0,103,243, 95,192,221, 91,138, 64,186, 15,236,191,121,179, 96, 94,195,215, 1, 0, 46,206, 5,192,
-121, 41,159, 64,154, 91, 19,192,127,210,143,108,188,205, 1, 0,169,200,139, 63,198, 78,163, 64,201,146, 42,192,249, 23,113,111,
-202,197, 1, 0,187,128, 4,191,206,181,167, 64, 74, 92, 37,192,151,244, 89,114,164,199, 1, 0,151, 16,231,191,160,166,209, 61,
-167, 95,178,192,173,216, 74, 2, 56,134, 1, 0,163,200, 69,192,178,143, 38,191,148, 48,158,192,124,188,192,241, 51,148, 1, 0,
- 43,192,155,192,151, 6,250,191,170, 82, 39,192,166,149, 76,213, 2,199, 1, 0,233,118,132,192,217,111,173,191, 67,122,123,192,
-191,165,124,226, 46,170, 1, 0,238, 85,146,192,178,205, 78, 64, 70, 54,221,191, 47,156,175, 70, 71,218, 1, 0, 76,137,167,192,
-111, 31,227, 63,158, 57,251,191,187,141,154, 38, 42,213, 1, 0, 39,143,170,192,167, 15,183,191,251, 85,252,191,157,139,164,224,
-245,212, 1, 0, 8,214,175,192,177,124, 53, 62,206,241, 2,192, 28,136,252, 3, 92,211, 1, 0, 77,160,160,190, 9, 20,182, 62,
-108,232,186,192, 8,249,201, 7,111,128, 1, 0, 33,144,163, 63,151,144,186, 61, 50, 47,183,192,255, 27,247, 1, 31,131, 1, 0,
-222,179,129, 64,234,147,224,190, 38,180,134,192,157, 88,103,246, 37,164, 1, 0,114,138, 49, 64,246, 97, 57,190, 57, 76,165,192,
-109, 60, 18,252, 60,143, 1, 0,249,158, 27, 64,197,118,141, 64, 58,196, 62,192, 6, 53,163, 96,242,190, 1, 0, 98,244, 89, 64,
- 8,120, 79, 64, 65,128, 96,192, 94, 74,162, 70,111,179, 1, 0, 13,100,144, 64,200,214,118, 62, 64,205,110,192,146, 98, 37, 5,
-132,174, 1, 0, 42,202,131, 64, 60,161,231, 63,142,245,112,192,210, 89,152, 39,220,173, 1, 0,149, 51,122,191, 52,151,163,190,
- 15,157,184,192,162,234, 36,249,253,129, 1, 0, 5,113, 42,191, 31,112,241,191, 15,119,176,192,128,241,188,214,182,135, 1, 0,
- 60, 55,172, 61, 22, 64,143,192,164,246,113,192,221, 1, 37,158,133,173, 1, 0,167,173,154,190,111,224, 83,192,198,169,154,192,
- 98,249,221,183,123,150, 1, 0,151,133,136, 64, 9,249,162,191,106,219,115,192, 61, 93, 76,228,206,172, 1, 0,110,124, 89, 64,
-135, 6, 40,192,223,195,127,192, 18, 74,160,198,205,168, 1, 0,244,248,117, 63,109, 90,148,192,123, 0, 93,192,225, 20,176,154,
-159,180, 1, 0,162, 0, 17, 64, 63,196,113,192, 52,239,119,192,134, 49,167,173,116,171, 1, 0,162,217, 7,191, 21,117,156,192,
-222,238, 75,192,137,244, 50,149,104,186, 1, 0,171,144, 6,192,112,158,144,192,198,241, 69,192, 4,210,111,157,136,188, 1, 0,
-110,238,148,192,115,109, 50,192,187,197, 13,192, 69,154, 50,195,171,207, 1, 0, 79,252, 96,192,140, 40,115,192,116,165, 48,192,
-100,179, 10,173,191,195, 1, 0,100,228,172,192,217,128,248,191, 8, 93,150,191, 8,138,142,213, 59,230, 1, 0, 82,171,182,192,
-216,250,168,191, 15, 15,147, 62,113,131, 63,227, 95, 6, 1, 0,215, 73,160,192,124,165, 49, 62,232, 85, 66, 64,167,146,217, 3,
-105, 66, 1, 0,171, 89,178,192,192,115, 24,191, 78,116,221, 63, 94,134,244,242,165, 37, 1, 0, 51,206,143,192,133,250,105, 64,
-119,251, 97,191,230,157,228, 79,157,236, 1, 0, 62, 32,160,192,163, 38, 65, 64,164,117, 3, 63,203,146,203, 65, 78, 11, 1, 0,
-216,108,155,192, 59,255,141, 63,189,117, 69, 64,243,149, 37, 24,120, 67, 1, 0, 85, 27,164,192,244, 78, 9, 64, 87,193,239, 63,
- 25,144,226, 46,198, 40, 1, 0,134, 35,117,192, 39,152,138, 64, 73, 86,116,191, 74,172,136, 94, 15,235, 1, 0, 35,220, 67,192,
- 6,218,159, 64,242,103,155, 62, 75,189, 8,109,183, 6, 1, 0,130, 79, 99,191,215,182,164, 64, 10, 4, 42, 64,180,236,103,112,
- 26, 58, 1, 0,161, 86, 3,192, 14,205,168, 64, 60, 55,197, 63, 37,211, 23,115,135, 33, 1, 0,229,101,215, 63, 84,141,168, 64,
- 16, 90,248,191,201, 36,255,114,131,213, 1, 0, 99, 52,155, 63,198, 17,183, 64,232,199,235,190,107, 26,216,124, 17,246, 1, 0,
-105,179, 10, 61, 25,185,169, 64,120,119, 31, 64,177, 0,204,115,135, 54, 1, 0,143,198, 37, 63,123,120,183, 64,160,108,135, 63,
- 44, 14, 29,125,249, 22, 1, 0,180,174, 32, 64, 65, 13,155, 64,238,167, 8,192,189, 54,216,105, 72,209, 1, 0, 69,199,104, 64,
-177,135,143, 64, 41, 12,132,191,111, 79,211, 97,148,233, 1, 0,121,134,159, 64, 49,245, 49, 64,210,166,169, 63,233,108,165, 60,
- 9, 29, 1, 0, 52,133,143, 64,119,200,113, 64,186,206, 29, 62,207, 97,126, 82, 70, 3, 1, 0,215, 73,160, 64,124,165, 49,190,
-232, 85, 66,192, 89,109, 39,252,151,189, 1, 0,171, 89,178, 64,192,115, 24, 63, 78,116,221,191,162,121, 12, 13, 91,218, 1, 0,
-100,228,172, 64,217,128,248, 63, 8, 93,150, 63,248,117,114, 42,197, 25, 1, 0, 82,171,182, 64,216,250,168, 63, 15, 15,147,190,
-143,124,193, 28,161,249, 1, 0,216,108,155, 64, 59,255,141,191,189,117, 69,192, 13,106,219,231,136,188, 1, 0, 85, 27,164, 64,
-244, 78, 9,192, 87,193,239,191,231,111, 30,209, 58,215, 1, 0, 51,206,143, 64,133,250,105,192,119,251, 97, 63, 26, 98, 28,176,
- 99, 19, 1, 0, 62, 32,160, 64,163, 38, 65,192,164,117, 3,191, 53,109, 53,190,178,244, 1, 0,130, 79, 99, 63,215,182,164,192,
- 10, 4, 42,192, 76, 19,153,143,230,197, 1, 0,161, 86, 3, 64, 14,205,168,192, 60, 55,197,191,219, 44,233,140,121,222, 1, 0,
-134, 35,117, 64, 39,152,138,192, 73, 86,116, 63,182, 83,120,161,241, 20, 1, 0, 35,220, 67, 64, 6,218,159,192,242,103,155,190,
-181, 66,248,146, 73,249, 1, 0,105,179, 10,189, 25,185,169,192,120,119, 31,192, 79,255, 52,140,121,201, 1, 0,143,198, 37,191,
-123,120,183,192,160,108,135,191,212,241,227,130, 7,233, 1, 0,229,101,215,191, 84,141,168,192, 16, 90,248, 63, 55,219, 1,141,
-125, 42, 1, 0, 99, 52,155,191,198, 17,183,192,232,199,235, 62,149,229, 40,131,239, 9, 1, 0,121,134,159,192, 49,245, 49,192,
-210,166,169,191, 23,147, 91,195,247,226, 1, 0, 52,133,143,192,119,200,113,192,186,206, 29,190, 49,158,130,173,186,252, 1, 0,
-180,174, 32,192, 65, 13,155,192,238,167, 8, 64, 67,201, 40,150,184, 46, 1, 0, 69,199,104,192,177,135,143,192, 41, 12,132, 63,
-145,176, 45,158,108, 22, 1, 0,244,248,117,191,109, 90,148, 64,123, 0, 93, 64, 31,235, 80,101, 97, 75, 1, 0,162, 0, 17,192,
- 63,196,113, 64, 52,239,119, 64,122,206, 89, 82,140, 84, 1, 0,151,133,136,192, 9,249,162, 63,106,219,115, 64,195,162,180, 27,
- 50, 83, 1, 0,110,124, 89,192,135, 6, 40, 64,223,195,127, 64,238,181, 96, 57, 51, 87, 1, 0,162,217, 7, 63, 21,117,156, 64,
-222,238, 75, 64,119, 11,206,106,152, 69, 1, 0,171,144, 6, 64,112,158,144, 64,198,241, 69, 64,252, 45,145, 98,120, 67, 1, 0,
-110,238,148, 64,115,109, 50, 64,187,197, 13, 64,187,101,206, 60, 85, 48, 1, 0, 79,252, 96, 64,140, 40,115, 64,116,165, 48, 64,
-156, 76,246, 82, 65, 60, 1, 0, 39,143,170, 64,167, 15,183, 63,251, 85,252, 63, 99,116, 92, 31, 11, 43, 1, 0, 8,214,175, 64,
-177,124, 53,190,206,241, 2, 64,228,119, 4,252,164, 44, 1, 0,238, 85,146, 64,178,205, 78,192, 70, 54,221, 63,209, 99, 81,185,
-185, 37, 1, 0, 76,137,167, 64,111, 31,227,191,158, 57,251, 63, 69,114,102,217,214, 42, 1, 0,103,243, 95, 64,221, 91,138,192,
-186, 15,236, 63,135, 76,160,161, 61, 40, 1, 0, 46,206, 5, 64,121, 41,159,192,154, 91, 19, 64,129, 45,113,147, 68, 50, 1, 0,
-169,200,139,191,198, 78,163,192,201,146, 42, 64, 7,232,143,144, 54, 58, 1, 0,187,128, 4, 63,206,181,167,192, 74, 92, 37, 64,
-105, 11,167,141, 92, 56, 1, 0,249,158, 27,192,197,118,141,192, 58,196, 62, 64,250,202, 93,159, 14, 65, 1, 0, 98,244, 89,192,
- 8,120, 79,192, 65,128, 96, 64,162,181, 94,185,145, 76, 1, 0, 13,100,144,192,200,214,118,190, 64,205,110, 64,110,157,219,250,
-124, 81, 1, 0, 42,202,131,192, 60,161,231,191,142,245,112, 64, 46,166,104,216, 36, 82, 1, 0,222,179,129,192,234,147,224, 62,
- 38,180,134, 64, 99,167,153, 9,219, 91, 1, 0,114,138, 49,192,246, 97, 57, 62, 57, 76,165, 64,147,195,238, 3,196,112, 1, 0,
- 77,160,160, 62, 9, 20,182,190,108,232,186, 64,248, 6, 55,248,145,127, 1, 0, 33,144,163,191,151,144,186,189, 50, 47,183, 64,
- 1,228, 9,254,225,124, 1, 0, 60, 55,172,189, 22, 64,143, 64,164,246,113, 64, 35,254,219, 97,123, 82, 1, 0,167,173,154, 62,
-111,224, 83, 64,198,169,154, 64,158, 6, 35, 72,133,105, 1, 0,149, 51,122, 63, 52,151,163, 62, 15,157,184, 64, 94, 21,220, 6,
- 3,126, 1, 0, 5,113, 42, 63, 31,112,241, 63, 15,119,176, 64,128, 14, 68, 41, 74,120, 1, 0, 43,192,155, 64,151, 6,250, 63,
-170, 82, 39, 64, 90,106,180, 42,254, 56, 1, 0,233,118,132, 64,217,111,173, 63, 67,122,123, 64, 65, 90,132, 29,210, 85, 1, 0,
-151, 16,231, 63,160,166,209,189,167, 95,178, 64, 83, 39,182,253,200,121, 1, 0,163,200, 69, 64,178,143, 38, 63,148, 48,158, 64,
-132, 67, 64, 14,205,107, 1, 0,204, 83,125, 64,169, 55,105,192,244,162, 20, 64,124, 86, 94,176,156, 50, 1, 0,178,215, 91, 64,
-222,235, 62,192,190,254,108, 64,230, 74,248,190,228, 80, 1, 0,158,156,211, 63,185,228,132,191,190,207,176, 64, 7, 36,104,233,
-185,120, 1, 0, 0, 76, 41, 64,190,199, 5,192, 83,157,153, 64,200, 57, 82,210,173,104, 1, 0,220, 4,199,191, 7,145,146,192,
-104,186, 83, 64,253,221,232,155, 40, 72, 1, 0, 9,120, 86,191,149, 91,109,192, 79,242,142, 64,199,237, 40,175,139, 97, 1, 0,
-242, 63, 59, 63,210,237,152,191,251, 21,182, 64, 8, 16, 3,230, 76,124, 1, 0, 86,230, 94,189,198, 30, 35,192,233, 15,169, 64,
-194,254, 76,200, 59,115, 1, 0,208, 27, 46,192,124,104, 86, 64, 85, 52,126,192,122,197, 16, 73,183,168, 1, 0, 82,168,234,191,
- 87, 62,149, 64,118, 12, 67,192,197,216,162,101,209,188, 1, 0,186, 10, 16,192,249,106, 52, 64,210,253,147,192,231,206,104, 62,
-158,155, 1, 0, 93, 33,240,190,191,199, 71, 64,142, 47,158,192,166,245,253, 68,176,148, 1, 0, 19, 46, 71,187,194,240,115, 64,
-175,166,142,192, 0,255,213, 82,110,158, 1, 0,188,194,101,191, 17, 84,154, 64,240,193, 77,192,140,235,211,104,117,185, 1, 0,
-246,246,115,192,183, 86, 15, 64, 51,168,118,192,208,172,249, 47, 97,171, 1, 0,101, 1,160,192, 47,146,184, 63,153, 38, 45,192,
-249,146,160, 30, 91,196, 1, 0,215,229, 85,192,166,178,218, 63,183, 55,144,192, 61,182, 81, 37, 72,158, 1, 0,151,178,104,192,
-245,107,205,189,175, 60,147,192,218,175,251,253, 58,156, 1, 0,192, 81,136,192, 55,239, 4,191, 24,222,127,192, 84,163,147,245,
- 85,168, 1, 0, 70,241,164,192,102,218,251, 62,143, 82, 48,192,224,143,144, 11, 93,195, 1, 0,209,230,173, 63,231,135, 71, 64,
- 27,234,152,192,195, 29, 39, 67, 46,151, 1, 0,158,103, 67, 64, 82,206, 51, 64, 39,168,132,192,158, 66,115, 60,243,164, 1, 0,
-136,131,100, 63, 16, 95, 27, 64, 4,115,168,192,106, 20, 79, 53,113,141, 1, 0, 77,154,217, 63,185, 69, 78, 63,221,196,177,192,
-249, 37, 9, 18, 27,135, 1, 0,107,195, 37, 64, 4,213, 36, 63, 20, 33,167,192,212, 55,201, 14,199,141, 1, 0,103,139, 94, 64,
-153,146,250, 63, 72,141,137,192, 32, 75, 91, 43,225,161, 1, 0,231,195, 21, 64,236, 58,101,191,218,178,169,192, 46, 50, 2,236,
-247,139, 1, 0,142, 32, 48, 64,155,140, 32,192,195, 1,145,192, 36, 59,237,200,191,156, 1, 0, 70,155,185, 63, 12,202, 59,191,
-163, 86,180,192, 83, 32, 66,239, 75,133, 1, 0, 29, 97, 43, 62,144,118, 2,192,125,231,175,192,109, 4,225,210, 78,136, 1, 0,
- 97,116,196, 62, 10,176, 56,192,120,239,162,192,197, 8,225,193,112,144, 1, 0,185, 2, 5, 64,217,105, 76,192,135,173,142,192,
-159, 45, 45,187, 53,158, 1, 0,163,243,144,191,252, 41, 73,192,148, 66,154,192,132,230, 16,188,144,150, 1, 0,147,133, 20,192,
-234, 55,124,192,176, 3,107,192,172,204,182,170,139,175, 1, 0, 42,186, 60,192,219,128,189,191, 23, 43,155,192, 96,191,203,222,
-161,150, 1, 0, 52,164,172,191,106,240, 18,192,141, 58,167,192, 44,226, 15,205,110,142, 1, 0, 12,171,100,192,249, 33,243,191,
-106,221,135,192,218,178, 99,214,187,162, 1, 0,195, 78, 74,192,241,206, 96,192, 98, 88, 94,192,207,187, 78,179,131,179, 1, 0,
- 41,110,177,192, 81, 30,186, 63,105,249,158,191,171,134,229, 30,109,229, 1, 0, 45,138,172,192,114,149, 17, 64,127,203,200, 62,
-254,137,191, 48,246, 8, 1, 0, 10, 94,182,192, 48, 5, 1, 63, 86, 81,165,191,147,131,214, 11,110,228, 1, 0,117,224,186,192,
- 37,234,247,190,147, 56,126, 62,130,128, 89,246,234, 5, 1, 0,204, 78,184,192, 19,193, 89,189,187,163,141, 63, 30,130,255,254,
- 35, 23, 1, 0,105,232,174,192,151,187,224, 63,156,183,153, 63,130,136, 85, 38, 48, 25, 1, 0, 42,118, 68,191,101,173,176, 64,
-114,132,233,191,124,238,154,120,225,216, 1, 0, 81,172,191, 62, 67,208,186, 64,195,163,216,190, 80, 7,126,127, 90,247, 1, 0,
-113, 2,218,191,172,151,171, 64,114, 25,212,191,182,219,106,117, 61,220, 1, 0,251,244, 21,192, 28, 12,172, 64, 13,151,128, 61,
-203,205,185,117,163, 1, 1, 0, 51, 39,223,191,248, 94,177, 64,104,122, 76, 63,211,217, 16,121,103, 16, 1, 0, 72,208, 28, 61,
- 91, 13,187, 64, 64,215,245, 62,146, 0,164,127,121, 9, 1, 0, 45, 93,142, 64, 70,137, 14, 64,147,202, 70,192, 20, 97,115, 49,
-210,188, 1, 0,106, 23,173, 64,157,131,182, 63,175,176,225,191,246,117, 6, 32, 7,218, 1, 0, 78,203,128, 64,124, 14, 69, 64,
- 55, 0, 61,192,146, 88,138, 66,228,191, 1, 0,133,175,133, 64, 28,149,121, 64, 51,212,168,191,229, 91,100, 84,110,227, 1, 0,
- 8,211,149, 64, 84,166, 94, 64, 68, 24, 29,191, 3,102,242, 75,149,241, 1, 0, 31,169,175, 64,138,176,237, 63, 15,168,103,191,
-147,119,172, 40, 64,235, 1, 0,122, 78, 57, 64,224, 12,120,192, 7, 56, 84,192, 22, 64,197,171, 7,184, 1, 0, 0, 74, 48, 64,
-245,165,155,192,208, 87,227,191, 5, 61, 71,150,132,217, 1, 0, 85,108,100, 64,115, 47, 76,192,149,224, 88,192,154, 77,133,185,
-145,182, 1, 0,173,191,150, 64,227,233, 55,192,198,101,254,191,111,102,105,192, 10,213, 1, 0,119, 97,148, 64,200, 33, 89,192,
- 24,225,150,191,243,100,255,181, 68,229, 1, 0, 75,171, 86, 64, 36, 83,150,192, 22, 36,133,191, 14, 73,157,153, 72,232, 1, 0,
-116,251, 81,192,115, 80,139,192, 57,124, 10,192, 26,185, 78,160, 31,209, 1, 0, 70,239,122,192, 53,220,138,192,113, 86,227,190,
- 47,171,157,160,134,246, 1, 0, 14, 50, 28,192,245, 4,153,192,141, 39, 23,192,247,201,182,151, 38,205, 1, 0, 34,123,189,191,
-203,168,178,192,149,106,130,191,217,222, 73,134, 91,234, 1, 0,176,127,232,191,177,107,178,192, 47,189,236,189, 27,216,111,134,
-122,252, 1, 0, 53,168, 90,192,169, 83,152,192,227,201,133, 62, 78,181, 43,152,172, 4, 1, 0,173,191,150,192,227,233, 55, 64,
-198,101,254, 63,145,153,151, 63,246, 42, 1, 0, 85,108,100,192,115, 47, 76, 64,149,224, 88, 64,102,178,123, 70,111, 73, 1, 0,
-119, 97,148,192,200, 33, 89, 64, 24,225,150, 63, 13,155, 1, 74,188, 26, 1, 0, 75,171, 86,192, 36, 83,150, 64, 22, 36,133, 63,
-242,182, 99,102,184, 23, 1, 0, 0, 74, 48,192,245,165,155, 64,208, 87,227, 63,251,194,185,105,124, 38, 1, 0,122, 78, 57,192,
-224, 12,120, 64, 7, 56, 84, 64,234,191, 59, 84,249, 71, 1, 0, 34,123,189, 63,203,168,178, 64,149,106,130, 63, 39, 33,183,121,
-165, 21, 1, 0, 14, 50, 28, 64,245, 4,153, 64,141, 39, 23, 64, 9, 54, 74,104,218, 50, 1, 0,176,127,232, 63,177,107,178, 64,
- 47,189,236, 61,229, 39,145,121,134, 3, 1, 0, 53,168, 90, 64,169, 83,152, 64,227,201,133,190,178, 74,213,103, 84,251, 1, 0,
- 70,239,122, 64, 53,220,138, 64,113, 86,227, 62,209, 84, 99, 95,122, 9, 1, 0,116,251, 81, 64,115, 80,139, 64, 57,124, 10, 64,
-230, 70,178, 95,225, 46, 1, 0,117,224,186, 64, 37,234,247, 62,147, 56,126,190,126,127,167, 9, 22,250, 1, 0, 10, 94,182, 64,
- 48, 5, 1,191, 86, 81,165, 63,109,124, 42,244,146, 27, 1, 0,204, 78,184, 64, 19,193, 89, 61,187,163,141,191,226,125, 1, 1,
-221,232, 1, 0,105,232,174, 64,151,187,224,191,156,183,153,191,126,119,171,217,208,230, 1, 0, 45,138,172, 64,114,149, 17,192,
-127,203,200,190, 2,118, 65,207, 10,247, 1, 0, 41,110,177, 64, 81, 30,186,191,105,249,158, 63, 85,121, 27,225,147, 26, 1, 0,
-251,244, 21, 64, 28, 12,172,192, 13,151,128,189, 53, 50, 71,138, 93,254, 1, 0,113, 2,218, 63,172,151,171,192,114, 25,212, 63,
- 74, 36,150,138,195, 35, 1, 0, 51, 39,223, 63,248, 94,177,192,104,122, 76,191, 45, 38,240,134,153,239, 1, 0, 72,208, 28,189,
- 91, 13,187,192, 64,215,245,190,110,255, 92,128,135,246, 1, 0, 81,172,191,190, 67,208,186,192,195,163,216, 62,176,248,130,128,
-166, 8, 1, 0, 42,118, 68, 63,101,173,176,192,114,132,233, 63,132, 17,102,135, 31, 39, 1, 0,133,175,133,192, 28,149,121,192,
- 51,212,168, 63, 27,164,156,171,146, 28, 1, 0, 78,203,128,192,124, 14, 69,192, 55, 0, 61, 64,110,167,118,189, 28, 64, 1, 0,
- 31,169,175,192,138,176,237,191, 15,168,103, 63,109,136, 84,215,192, 20, 1, 0, 8,211,149,192, 84,166, 94,192, 68, 24, 29, 63,
-253,153, 14,180,107, 14, 1, 0,106, 23,173,192,157,131,182,191,175,176,225, 63, 10,138,250,223,249, 37, 1, 0, 45, 93,142,192,
- 70,137, 14,192,147,202, 70, 64,236,158,141,206, 46, 67, 1, 0,185, 2, 5,192,217,105, 76, 64,135,173,142, 64, 97,210,211, 68,
-203, 97, 1, 0, 97,116,196,190, 10,176, 56, 64,120,239,162, 64, 59,247, 31, 62,144,111, 1, 0,142, 32, 48,192,155,140, 32, 64,
-195, 1,145, 64,220,196, 19, 55, 65, 99, 1, 0,231,195, 21,192,236, 58,101, 63,218,178,169, 64,210,205,254, 19, 9,116, 1, 0,
- 70,155,185,191, 12,202, 59, 63,163, 86,180, 64,173,223,190, 16,181,122, 1, 0, 29, 97, 43,190,144,118, 2, 64,125,231,175, 64,
-147,251, 31, 45,178,119, 1, 0,195, 78, 74, 64,241,206, 96, 64, 98, 88, 94, 64, 49, 68,178, 76,125, 76, 1, 0, 12,171,100, 64,
-249, 33,243, 63,106,221,135, 64, 38, 77,157, 41, 69, 93, 1, 0,147,133, 20, 64,234, 55,124, 64,176, 3,107, 64, 84, 51, 74, 85,
-117, 80, 1, 0,164,243,144, 63,252, 41, 73, 64,148, 66,154, 64,124, 25,240, 67,112,105, 1, 0, 52,164,172, 63,106,240, 18, 64,
-141, 58,167, 64,212, 29,241, 50,146,113, 1, 0, 42,186, 60, 64,219,128,189, 63, 23, 43,155, 64,160, 64, 53, 33, 95,105, 1, 0,
-101, 1,160, 64, 47,146,184,191,153, 38, 45, 64, 7,109, 96,225,165, 59, 1, 0,246,246,115, 64,183, 86, 15,192, 51,168,118, 64,
- 48, 83, 7,208,159, 84, 1, 0, 70,241,164, 64,102,218,251,190,143, 82, 48, 64, 32,112,112,244,163, 60, 1, 0,192, 81,136, 64,
- 55,239, 4, 63, 24,222,127, 64,172, 92,109, 10,171, 87, 1, 0,151,178,104, 64,245,107,205, 61,175, 60,147, 64, 38, 80, 5, 2,
-198, 99, 1, 0,215,229, 85, 64,166,178,218,191,183, 55,144, 64,195, 73,175,218,184, 97, 1, 0,188,194,101, 63, 17, 84,154,192,
-240,193, 77, 64,116, 20, 45,151,139, 70, 1, 0, 19, 46, 71, 59,194,240,115,192,175,166,142, 64, 0, 1, 43,173,146, 97, 1, 0,
- 82,168,234, 63, 87, 62,149,192,118, 12, 67, 64, 59, 39, 94,154, 47, 67, 1, 0,208, 27, 46, 64,124,104, 86,192, 85, 52,126, 64,
-134, 58,240,182, 73, 87, 1, 0,186, 10, 16, 64,249,106, 52,192,210,253,147, 64, 25, 49,152,193, 98,100, 1, 0, 93, 33,240, 62,
-191,199, 71,192,142, 47,158, 64, 90, 10, 3,187, 80,107, 1, 0,103,139, 94,192,153,146,250,191, 72,141,137, 64,224,180,165,212,
- 31, 94, 1, 0,107,195, 37,192, 4,213, 36,191, 20, 33,167, 64, 44,200, 55,241, 57,114, 1, 0,158,103, 67,192, 82,206, 51,192,
- 39,168,132, 64, 98,189,141,195, 13, 91, 1, 0,209,230,173,191,231,135, 71,192, 27,234,152, 64, 61,226,217,188,210,104, 1, 0,
- 77,154,217,191,185, 69, 78,191,221,196,177, 64, 7,218,247,237,229,120, 1, 0,136,131,100,191, 16, 95, 27,192, 4,115,168, 64,
-150,235,177,202,143,114, 1, 0,139,220, 37,192,245,135,141, 64,114,173, 54,192, 49,199, 96, 96,209,193, 1, 0,204,119, 84,192,
- 93, 73,130, 64,212,107, 38,192, 46,183,222, 88,151,199, 1, 0,208, 76, 67,192, 62,120,111, 64, 14, 89, 85,192, 82,189,194, 81,
-136,183, 1, 0, 68,147,238,191,166,230,100, 64,234, 9,136,192,206,215,123, 78, 57,163, 1, 0, 30,149,109,191, 40, 18,111, 64,
-171,100,141,192, 48,235,197, 81,194,159, 1, 0,144,237,178,191, 25,136,136, 64,121, 1,113,192,117,225,197, 92, 71,173, 1, 0,
-214, 82, 66, 63,128,115,152, 64,164, 25, 85,192, 1, 17, 31,104,135,183, 1, 0,119,155,171,189,138, 40,155, 64,113, 96, 83,192,
-123,254,195,105,238,183, 1, 0, 67,138,194, 62,177, 97,138, 64, 75,158,124,192,109, 8,131, 94, 26,170, 1, 0,158,106, 94,191,
-167,106, 30, 64,254,240,167,192,230,236,191, 53,107,141, 1, 0, 22,114,229,191,193, 96, 20, 64,253,167,162,192, 20,217, 97, 50,
-247,144, 1, 0, 45,210,162,191,233,211,224, 63,184, 67,174,192, 71,228,227, 37,237,136, 1, 0, 37, 61,152,192,230, 9, 14, 64,
-137,179, 39,192, 84,152,178, 48,225,198, 1, 0,232,187,140,192, 6, 96, 62, 64,107,247, 30,192, 9,160, 82, 65, 23,202, 1, 0,
-116,134,132,192, 40,130, 40, 64,237,207, 77,192,140,165,146, 57, 26,186, 1, 0, 12,129,129,192,231,129,173, 63,159,125,128,192,
- 68,167, 25, 29,120,168, 1, 0,254,112,134,192,126,146,207, 62,159, 19,130,192, 18,164,108, 9,113,167, 1, 0,189,121,149,192,
-142,192,111, 63, 76, 95, 90,192, 88,154,108, 20,246,180, 1, 0, 12, 65,162,192, 11, 84,149,191,172,202, 44,192, 58,145, 32,230,
- 85,197, 1, 0, 74,120,165,192, 95, 78,167,190,139, 51, 48,192, 54,143,145,248,243,195, 1, 0, 61,161,150,192,107,221, 89,191,
-118,113, 89,192, 42,153, 81,237, 31,182, 1, 0, 52, 56, 66,192,206, 40,139, 62, 21,116,160,192, 9,190, 18, 6,123,146, 1, 0,
-245,120, 56,192,118,213,154, 63, 81,227,158,192, 78,193, 49, 26,136,147, 1, 0,220,104, 22,192,204,221, 40, 63,115,137,170,192,
- 33,205, 87, 14,110,139, 1, 0,145,143, 39, 64,190, 49, 94, 64,165, 27,124,192,240, 56,248, 75, 41,170, 1, 0,130,168, 6, 64,
-190,132,130, 64, 12, 96,105,192,224, 45,104, 89,186,176, 1, 0, 76,169,222, 63,205,107,104, 64,150,142,136,192, 22, 38,102, 79,
- 30,163, 1, 0,137,207,229, 63, 30, 63, 22, 64,207,235,161,192,188, 39,234, 50,127,145, 1, 0,239, 11, 14, 64,175,114,191, 63,
-254,208,166,192,132, 48, 69, 33, 84,142, 1, 0,239,222, 43, 64,212,226, 11, 64,227, 71,151,192, 42, 58,144, 47, 97,152, 1, 0,
- 0,245,124, 64, 27, 32,187, 62, 57, 6,138,192,148, 86,163, 7, 11,162, 1, 0, 42, 75,112, 64,228, 42,152, 63, 25, 44,139,192,
-254, 81,163, 25, 31,161, 1, 0,178,218, 82, 64,178,247, 1, 63,211,129,154,192, 31, 72, 6, 11,214,150, 1, 0,208,203,104, 63,
-146, 6,113, 63,108, 5,183,192,137, 19,150, 20, 49,131, 1, 0, 26, 68,251, 62,111, 38,228, 63,114, 48,178,192,142, 10,162, 38,
-111,134, 1, 0,163, 78,149, 61, 65, 25,137, 63,234,102,184,192, 37, 1, 44, 23, 32,130, 1, 0, 98,140, 80, 64,169,205,238,191,
- 83, 69,144,192, 67, 71,141,215,172,157, 1, 0,177, 39,109, 64,155,213,147,191,238,143,140,192, 71, 81,255,230, 87,160, 1, 0,
-100,225, 66, 64,146,191,131,191,152, 18,157,192,173, 66,128,233, 23,149, 1, 0,190, 24,220, 63,163,163,202,191,160,244,171,192,
-102, 37,211,220,194,138, 1, 0,227,219,133, 63,172, 47, 17,192, 93,160,169,192,115, 23,161,206, 68,140, 1, 0, 46,202,247, 63,
- 23,140, 27,192,116,252,158,192,225, 41, 71,203, 38,147, 1, 0, 36,220, 68, 63, 24,143,132,192, 20,105,130,192,156, 16, 53,165,
- 84,167, 1, 0, 60,255,185, 63,215,244,108,192,129, 7,138,192,117, 31, 15,175,249,161, 1, 0,220, 18, 19, 63,168,186, 98,192,
- 66,136,148,192,154, 12,125,178,238,154, 1, 0,131,119,172,187,182,209,162,191,170, 73,183,192,211,255,140,228,252,130, 1, 0,
-165,230, 40, 63,246,111, 24,191, 50,150,185,192, 24, 14, 16,243,114,129, 1, 0,123, 45, 50,190,213, 16,230,190,160,240,186,192,
-217,251,137,246,109,128, 1, 0,221, 22,199,191, 71,211,134,192, 37,161,113,192, 93,222, 1,164,157,173, 1, 0,171,131, 58,191,
- 57,178,140,192,214,174,115,192,120,240,191,159, 19,173, 1, 0,228,119,112,191, 49, 46,115,192,186,222,139,192,149,235,225,172,
-214,160, 1, 0,122, 75,254,191, 18, 36, 50,192, 84, 70,152,192, 8,212, 46,195, 82,152, 1, 0,190,239, 52,192,193,186, 22,192,
-166,240,145,192,160,194, 13,204,107,156, 1, 0, 51, 23, 39,192, 14,245, 76,192,105,248,132,192, 27,199,129,186,208,164, 1, 0,
-202,137,140,192, 4,234, 33,192,152,117, 60,192,203,159,220,200, 20,192, 1, 0, 68,176,115,192, 85, 49, 68,192, 65,173, 79,192,
-182,172, 79,189, 79,185, 1, 0,131,173,128,192, 50,170, 14,192,247, 71,105,192, 33,168, 65,207,185,176, 1, 0,230, 80, 22,192,
- 50,155,141,191,108, 95,168,192, 0,205, 3,232, 21,141, 1, 0, 96,113,194,191,166,184,195,191, 31,160,174,192,205,222,240,222,
-228,136, 1, 0,249,244,213,191, 10, 33, 52,191,248, 94,178,192,179,219, 20,241, 44,134, 1, 0, 30, 26,167,192, 62, 11, 42, 64,
-199,163,159,190, 43,142, 23, 58,240,248, 1, 0, 15,242,157,192,177, 35, 63, 64,242,230,132,191,125,148,148, 65, 31,233, 1, 0,
- 58,163,169,192,184,207, 14, 64, 43, 92,148,191,120,140,246, 48,193,230, 1, 0,241, 83,184,192, 33,241,117, 63,204, 69,248,190,
- 33,130,245, 20, 10,246, 1, 0, 88,178,186,192,180, 33,226, 62, 69,211,165, 62,152,128, 54, 10,201, 6, 1, 0,100,194,181,192,
-227, 37,178, 63, 65, 51,191, 62,202,131,227, 29,208, 7, 1, 0,140, 68,168,192,162,100, 57, 63, 90, 41, 31, 64, 98,141,193, 15,
-192, 54, 1, 0,185,114,173,192,147, 11,162, 63,136,131,237, 63,203,137,109, 27,183, 40, 1, 0, 90, 82,178,192,181, 0,168, 62,
-125, 64,231, 63,135,134, 77, 7,170, 39, 1, 0,235, 52,185,192,191,185, 83,191, 39,176,252,190,201,129,214,237,245,244, 1, 0,
- 95,222,182,192,178, 32,161,190, 48, 92,165,191, 90,131,213,248,212,227, 1, 0, 52,119,179,192,223,204,147,191,116,141,160,191,
-174,133, 97,230, 93,228, 1, 0,109, 88, 35, 63,129,186,182, 64,207, 8,152,191, 3, 14,128,124,207,229, 1, 0,226, 54, 99, 63,
-172,134,174, 64, 96, 98,250,191,195, 19,238,118, 3,213, 1, 0,150,195, 60, 61, 46,121,177, 64,174, 6,245,191, 79, 1,250,120,
- 56,214, 1, 0,228,160,145,191,121, 59,181, 64,246,252,123,191, 62,231,212,123, 30,235, 1, 0, 29,166,188,191,167,120,181, 64,
- 4,224,165,189, 72,224,251,123,211,253, 1, 0, 26,186, 9,191,104,142,186, 64,128, 74,126,190,169,243, 70,127, 92,250, 1, 0,
-179,205, 19,191, 33,145,175, 64,102,151,253, 63,129,243,165,119,184, 43, 1, 0,163,114,134,190, 81, 94,183, 64, 73,210,157, 63,
- 41,250,241,124, 44, 27, 1, 0,253,217,151,191, 90, 89,178, 64,210,246,178, 63, 86,230,147,121,183, 30, 1, 0,107,200, 50,192,
- 4, 21,164, 64,143,252, 18,191,232,194,191,111, 61,243, 1, 0,219,140, 29,192,164,216,163, 64,163,160,187,191, 6,202,150,111,
- 27,224, 1, 0, 8, 63, 76,192,149, 92,152, 64,201, 6,157,191,240,185,173,103, 19,229, 1, 0,102, 31,167, 64, 18,113,133, 63,
-122,150, 29,192,215,113,152, 22, 9,202, 1, 0,115, 48,157, 64, 74,183, 33, 63, 21,172, 72,192, 47,107, 89, 13, 84,187, 1, 0,
-250, 48,151, 64,117,157,186, 63,236, 37, 74,192, 40,103,131, 31, 24,187, 1, 0,118, 31,148, 64,144, 99, 46, 64, 95,237, 21,192,
- 96,101,140, 59,104,205, 1, 0, 40,177,150, 64,101,250, 73, 64,104,252,189,191, 9,103,121, 68, 46,223, 1, 0, 59, 67,164, 64,
-106,116, 19, 64, 96,145,209,191,209,111,213, 50, 3,220, 1, 0, 9, 99,168, 64,184,173, 32, 64,129, 16, 27, 63,227,114,186, 54,
-183, 13, 1, 0,225, 1,174, 64, 65,167, 12, 64,199, 1, 38,190,149,118, 16, 48,190,252, 1, 0,172,156,160, 64, 23,121, 66, 64,
-220,253, 53,188,154,109, 28, 66,252,255, 1, 0,230,184,106, 64,117, 83,133, 64, 76, 95,243,191,205, 79,249, 90, 80,214, 1, 0,
-116,166,101, 64, 67,107,111, 64, 69,233, 47,192, 26, 78,215, 81, 33,196, 1, 0,109, 20, 68, 64,202, 9,139, 64,124,255, 29,192,
-122, 66, 31, 95, 3,202, 1, 0, 46,138, 12, 64,195,168,156,192, 99,240, 23,192,176, 47, 54,149,255,203, 1, 0,110,189,201, 63,
- 48, 28,154,192,180,148, 60,192,240, 33,192,150,143,191, 1, 0, 21, 55, 17, 64,125, 67,140,192,118, 8, 75,192, 65, 49, 53,160,
-221,186, 1, 0, 85,126,100, 64,103,211,114,192,187,176, 43,192, 56, 78,244,172,248,197, 1, 0, 29,112,133, 64,168, 45,104,192,
- 95, 44,249,191,163, 90,102,176, 54,213, 1, 0,192,193, 95, 64,221, 5,138,192, 42,219,239,191,175, 76, 53,162,183,214, 1, 0,
- 28, 21,134, 64,185,231,130,192,175,210,133, 62,129, 91,184,166, 51, 6, 1, 0,128,101,115, 64,106,100,142,192,214,174,205,190,
- 30, 83, 11,159,122,247, 1, 0,187,250,142, 64,178,123,113,192, 90,120,242,190, 99, 97,143,173,240,245, 1, 0,115, 83,149, 64,
- 25,118, 24,192, 96, 5, 41,192,195,101, 58,204, 39,198, 1, 0,236, 97,130, 64,181,248, 34,192, 49,132, 87,192, 15, 89,179,200,
-144,182, 1, 0,186,103,144, 64, 91, 9,234,191,150,226, 80,192,155, 98,138,216,146,184, 1, 0,208, 74,136,192,231,117,121,192,
- 32,193,133,191,251,162, 38,171,252,232, 1, 0, 31, 84,144,192, 24, 19, 87,192, 53, 65,211,191, 64,157, 8,183,220,219, 1, 0,
- 7, 90,123,192,107,238,121,192,115,227,247,191, 25,170,254,170,217,213, 1, 0,161,112, 54,192, 94, 77,156,192,207,107,196,191,
-198,193, 27,149, 21,223, 1, 0, 24, 41, 22,192, 1,197,169,192,191, 68, 84,191, 56,204,100,140,176,237, 1, 0, 73,243, 75,192,
- 86, 16,156,192,180,150, 33,191,208,186, 67,149,202,241, 1, 0,140,246, 19,192,148, 60,166,192, 11, 70,182, 63,170,205,162,142,
-144, 31, 1, 0, 17, 21, 58,192,224,209,160,192,103,100, 88, 63,199,192, 73,146,167, 18, 1, 0,151,252, 4,192, 71, 89,174,192,
-215, 93, 38, 63,148,210, 55,137,117, 14, 1, 0, 53,176,150,191,238,252,174,192, 37,172,226,191,112,230,198,136, 24,217, 1, 0,
-225,105,214,191,211,177,161,192,160,229, 29,192,193,219,176,145, 39,202, 1, 0, 62,213, 88,191,193, 70,167,192,212,217, 32,192,
-237,237,235,141,220,200, 1, 0,236, 97,130,192,181,248, 34, 64, 49,132, 87, 64,241,166, 77, 55,112, 73, 1, 0,186,103,144,192,
- 91, 9,234, 63,150,226, 80, 64,101,157,118, 39,110, 71, 1, 0,115, 83,149,192, 25,118, 24, 64, 96, 5, 41, 64, 61,154,198, 51,
-217, 57, 1, 0, 29,112,133,192,168, 45,104, 64, 95, 44,249, 63, 93,165,154, 79,202, 42, 1, 0,192,193, 95,192,221, 5,138, 64,
- 42,219,239, 63, 81,179,203, 93, 73, 41, 1, 0, 85,126,100,192,103,211,114, 64,187,176, 43, 64,200,177, 12, 83, 8, 58, 1, 0,
-110,189,201,191, 48, 28,154, 64,180,148, 60, 64, 16,222, 64,105,113, 64, 1, 0, 21, 55, 17,192,125, 67,140, 64,118, 8, 75, 64,
-191,206,203, 95, 35, 69, 1, 0, 46,138, 12,192,195,168,156, 64, 99,240, 23, 64, 80,208,202,106, 1, 52, 1, 0,128,101,115,192,
-106,100,142, 64,214,174,205, 62,226,172,245, 96,134, 8, 1, 0,187,250,142,192,178,123,113, 64, 90,120,242, 62,157,158,113, 82,
- 16, 10, 1, 0, 28, 21,134,192,185,231,130, 64,175,210,133,190,127,164, 72, 89,205,249, 1, 0,225,105,214, 63,211,177,161, 64,
-160,229, 29, 64, 63, 36, 80,110,217, 53, 1, 0, 62,213, 88, 63,193, 70,167, 64,212,217, 32, 64, 19, 18, 21,114, 36, 55, 1, 0,
- 53,176,150, 63,238,252,174, 64, 37,172,226, 63,144, 25, 58,119,232, 38, 1, 0, 24, 41, 22, 64, 1,197,169, 64,191, 68, 84, 63,
-200, 51,156,115, 80, 18, 1, 0, 73,243, 75, 64, 86, 16,156, 64,180,150, 33, 63, 48, 69,189,106, 54, 14, 1, 0,161,112, 54, 64,
- 94, 77,156, 64,208,107,196, 63, 58, 62,229,106,235, 32, 1, 0, 31, 84,144, 64, 24, 19, 87, 64, 53, 65,211, 63,192, 98,248, 72,
- 36, 36, 1, 0, 7, 90,123, 64,107,238,121, 64,115,227,247, 63,231, 85, 2, 85, 39, 42, 1, 0,208, 74,136, 64,231,117,121, 64,
- 32,193,133, 63, 5, 93,218, 84, 4, 23, 1, 0, 17, 21, 58, 64,224,209,160, 64,103,100, 88,191, 57, 63,183,109, 89,237, 1, 0,
-151,252, 4, 64, 71, 89,174, 64,215, 93, 38,191,108, 45,201,118,139,241, 1, 0,140,246, 19, 64,148, 60,166, 64, 11, 70,182,191,
- 86, 50, 94,113,112,224, 1, 0, 95,222,182, 64,178, 32,161, 62, 48, 92,165, 63,166,124, 43, 7, 44, 28, 1, 0, 52,119,179, 64,
-223,204,147, 63,116,141,160, 63, 82,122,159, 25,163, 27, 1, 0,235, 52,185, 64,191,185, 83, 63, 39,176,252, 62, 55,126, 42, 18,
- 11, 11, 1, 0, 88,178,186, 64,180, 33,226,190, 69,211,165,190,104,127,202,245, 55,249, 1, 0,100,194,181, 64,227, 37,178,191,
- 65, 51,191,190, 54,124, 29,226, 48,248, 1, 0,241, 83,184, 64, 33,241,117,191,204, 69,248, 62,223,125, 11,235,246, 9, 1, 0,
- 15,242,157, 64,177, 35, 63,192,242,230,132, 63,131,107,108,190,225, 22, 1, 0, 58,163,169, 64,184,207, 14,192, 43, 92,148, 63,
-136,115, 10,207, 63, 25, 1, 0, 30, 26,167, 64, 62, 11, 42,192,199,163,159, 62,213,113,233,197, 16, 7, 1, 0,185,114,173, 64,
-147, 11,162,191,136,131,237,191, 53,118,147,228, 73,215, 1, 0, 90, 82,178, 64,181, 0,168,190,125, 64,231,191,121,121,179,248,
- 86,216, 1, 0,140, 68,168, 64,162,100, 57,191, 90, 41, 31,192,158,114, 63,240, 64,201, 1, 0,219,140, 29, 64,164,216,163,192,
-163,160,187, 63,250, 53,106,144,229, 31, 1, 0, 8, 63, 76, 64,149, 92,152,192,201, 6,157, 63, 16, 70, 83,152,237, 26, 1, 0,
-107,200, 50, 64, 4, 21,164,192,143,252, 18, 63, 24, 61, 65,144,195, 12, 1, 0, 29,166,188, 63,167,120,181,192, 4,224,165, 61,
-184, 31, 5,132, 45, 2, 1, 0, 26,186, 9, 63,104,142,186,192,128, 74,126, 62, 87, 12,186,128,164, 5, 1, 0,228,160,145, 63,
-121, 59,181,192,246,252,123, 63,194, 24, 44,132,226, 20, 1, 0,226, 54, 99,191,172,134,174,192, 96, 98,250, 63, 61,236, 18,137,
-253, 42, 1, 0,150,195, 60,189, 46,121,177,192,174, 6,245, 63,177,254, 6,135,200, 41, 1, 0,109, 88, 35,191,129,186,182,192,
-207, 8,152, 63,253,241,128,131, 49, 26, 1, 0,163,114,134, 62, 81, 94,183,192, 73,210,157,191,215, 5, 15,131,212,228, 1, 0,
-253,217,151, 63, 90, 89,178,192,210,246,178,191,170, 25,109,134, 73,225, 1, 0,179,205, 19, 63, 33,145,175,192,102,151,253,191,
-127, 12, 91,136, 72,212, 1, 0,116,166,101,192, 67,107,111,192, 69,233, 47, 64,230,177, 41,174,223, 59, 1, 0,109, 20, 68,192,
-202, 9,139,192,124,255, 29, 64,134,189,225,160,253, 53, 1, 0,230,184,106,192,117, 83,133,192, 76, 95,243, 63, 51,176, 7,165,
-176, 41, 1, 0, 40,177,150,192,101,250, 73,192,104,252,189, 63,247,152,135,187,210, 32, 1, 0, 59, 67,164,192,106,116, 19,192,
- 96,145,209, 63, 47,144, 43,205,253, 35, 1, 0,118, 31,148,192,144, 99, 46,192, 95,237, 21, 64,160,154,116,196,152, 50, 1, 0,
-115, 48,157,192, 74,183, 33,191, 21,172, 72, 64,209,148,167,242,172, 68, 1, 0,250, 48,151,192,117,157,186,191,236, 37, 74, 64,
-216,152,125,224,232, 68, 1, 0,102, 31,167,192, 18,113,133,191,122,150, 29, 64, 41,142,104,233,247, 53, 1, 0,225, 1,174,192,
- 65,167, 12,192,199, 1, 38, 62,107,137,240,207, 66, 3, 1, 0,172,156,160,192, 23,121, 66,192,220,253, 53, 60,102,146,228,189,
- 4, 0, 1, 0, 9, 99,168,192,184,173, 32,192,129, 16, 27,191, 29,141, 70,201, 73,242, 1, 0,220, 18, 19,191,168,186, 98, 64,
- 66,136,148, 64,102,243,131, 77, 18,101, 1, 0, 36,220, 68,191, 24,143,132, 64, 20,105,130, 64,100,239,203, 90,172, 88, 1, 0,
- 60,255,185,191,215,244,108, 64,129, 7,138, 64,139,224,241, 80, 7, 94, 1, 0, 46,202,247,191, 23,140, 27, 64,116,252,158, 64,
- 31,214,185, 52,218,108, 1, 0,190, 24,220,191,163,163,202, 63,160,244,171, 64,154,218, 45, 35, 62,117, 1, 0,227,219,133,191,
-172, 47, 17, 64, 93,160,169, 64,141,232, 95, 49,188,115, 1, 0,123, 45, 50, 62,213, 16,230, 62,160,240,186, 64, 39, 4,119, 9,
-147,127, 1, 0,131,119,172, 59,182,209,162, 63,170, 73,183, 64, 45, 0,116, 27, 4,125, 1, 0,165,230, 40,191,246,111, 24, 63,
- 50,150,185, 64,232,241,240, 12,142,126, 1, 0,100,225, 66,192,146,191,131, 63,152, 18,157, 64, 83,189,128, 22,233,106, 1, 0,
- 98,140, 80,192,169,205,238, 63, 83, 69,144, 64,189,184,115, 40, 84, 98, 1, 0,177, 39,109,192,154,213,147, 63,239,143,140, 64,
-185,174, 1, 25,169, 95, 1, 0,131,173,128, 64, 50,170, 14, 64,247, 71,105, 64,223, 87,191, 48, 71, 79, 1, 0,202,137,140, 64,
- 4,234, 33, 64,152,117, 60, 64, 53, 96, 36, 55,236, 63, 1, 0, 68,176,115, 64, 85, 49, 68, 64, 65,173, 79, 64, 74, 83,177, 66,
-177, 70, 1, 0, 51, 23, 39, 64, 14,245, 76, 64,105,248,132, 64,229, 56,127, 69, 48, 91, 1, 0,122, 75,254, 63, 17, 36, 50, 64,
- 83, 70,152, 64,248, 43,210, 60,174,103, 1, 0,190,239, 52, 64,193,186, 22, 64,166,240,145, 64, 96, 61,243, 51,149, 99, 1, 0,
-249,244,213, 63, 10, 33, 52, 63,248, 94,178, 64, 77, 36,236, 14,212,121, 1, 0,230, 80, 22, 64, 50,155,141, 63,108, 95,168, 64,
- 0, 51,253, 23,235,114, 1, 0, 96,113,194, 63,166,184,195, 63, 31,160,174, 64, 51, 33, 16, 33, 28,119, 1, 0,228,119,112, 63,
- 49, 46,115, 64,186,222,139, 64,107, 20, 31, 83, 42, 95, 1, 0,221, 22,199, 63, 71,211,134, 64, 37,161,113, 64,163, 33,255, 91,
- 99, 82, 1, 0,170,131, 58, 63, 58,178,140, 64,213,174,115, 64,136, 15, 65, 96,237, 82, 1, 0,116,134,132, 64, 40,130, 40,192,
-237,207, 77, 64,116, 90,110,198,230, 69, 1, 0,232,187,140, 64, 6, 96, 62,192,107,247, 30, 64,247, 95,174,190,233, 53, 1, 0,
- 37, 61,152, 64,230, 9, 14,192,137,179, 39, 64,172,103, 78,207, 31, 57, 1, 0,189,121,149, 64,142,192,111,191, 76, 95, 90, 64,
-168,101,148,235, 10, 75, 1, 0,254,112,134, 64,126,146,207,190,159, 19,130, 64,238, 91,148,246,143, 88, 1, 0, 12,129,129, 64,
-231,129,173,191,159,125,128, 64,188, 88,231,226,136, 87, 1, 0,220,104, 22, 64,204,221, 40,191,115,137,170, 64,223, 50,169,241,
-146,116, 1, 0,245,120, 56, 64,118,213,154,191, 81,227,158, 64,178, 62,207,229,120,108, 1, 0, 52, 56, 66, 64,206, 40,139,190,
- 21,116,160, 64,247, 65,238,249,133,109, 1, 0, 61,161,150, 64,107,221, 89, 63,118,113, 89, 64,214,102,175, 18,225, 73, 1, 0,
- 74,120,165, 64, 95, 78,167, 62,139, 51, 48, 64,202,112,111, 7, 13, 60, 1, 0, 12, 65,162, 64, 11, 84,149, 63,172,202, 44, 64,
-198,110,224, 25,171, 58, 1, 0, 67,138,194,190,177, 97,138,192, 75,158,124, 64,147,247,125,161,230, 85, 1, 0,214, 82, 66,191,
-128,115,152,192,164, 25, 85, 64,255,238,225,151,121, 72, 1, 0,119,155,171, 61,138, 40,155,192,113, 96, 83, 64,133, 1, 61,150,
- 18, 72, 1, 0,144,237,178, 63, 25,136,136,192,121, 1,113, 64,139, 30, 59,163,185, 82, 1, 0, 68,147,238, 63,166,230,100,192,
-234, 9,136, 64, 50, 40,133,177,199, 92, 1, 0, 30,149,109, 63, 40, 18,111,192,171,100,141, 64,208, 20, 59,174, 62, 96, 1, 0,
- 45,210,162, 63,233,211,224,191,184, 67,174, 64,185, 27, 29,218, 19,119, 1, 0,158,106, 94, 63,167,106, 30,192,254,240,167, 64,
- 26, 19, 65,202,149,114, 1, 0, 22,114,229, 63,193, 96, 20,192,253,167,162, 64,236, 38,159,205, 9,111, 1, 0,208, 76, 67, 64,
- 62,120,111,192, 14, 89, 85, 64,174, 66, 62,174,120, 72, 1, 0,139,220, 37, 64,245,135,141,192,114,173, 54, 64,207, 56,160,159,
- 47, 62, 1, 0,204,119, 84, 64, 93, 73,130,192,212,107, 38, 64,210, 72, 34,167,105, 56, 1, 0,178,218, 82,192,178,247, 1,191,
-211,129,154, 64,225,183,250,244, 42,105, 1, 0, 0,245,124,192, 27, 32,187,190, 57, 6,138, 64,108,169, 93,248,245, 93, 1, 0,
- 42, 75,112,192,228, 42,152,191, 25, 44,139, 64, 2,174, 93,230,225, 94, 1, 0,239,222, 43,192,212,226, 11,192,227, 71,151, 64,
-214,197,113,208,159,103, 1, 0,137,207,229,191, 30, 63, 22,192,207,235,161, 64, 68,216, 22,205,129,110, 1, 0,239, 11, 14,192,
-175,114,191,191,254,208,166, 64,124,207,187,222,172,113, 1, 0,163, 78,149,189, 65, 25,137,191,234,102,184, 64,219,254,212,232,
-224,125, 1, 0,208,203,104,191,146, 6,113,191,108, 5,183, 64,119,236,106,235,207,124, 1, 0, 26, 68,251,190,111, 38,228,191,
-114, 48,178, 64,114,245, 94,217,145,121, 1, 0, 76,169,222,191,205,107,104,192,150,142,136, 64,234,217,154,176,226, 92, 1, 0,
-145,143, 39,192,190, 49, 94,192,165, 27,124, 64, 16,199, 8,180,215, 85, 1, 0,130,168, 6,192,190,132,130,192, 12, 96,105, 64,
- 32,210,152,166, 70, 79, 1, 0, 68, 65, 84, 65, 8, 2, 0, 0, 8,102,196, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 88,104,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 90, 0, 0, 88,104,196, 4, 0, 0, 0, 0, 53, 0, 0, 0,128, 7, 0, 0,
- 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 35, 0, 42, 0, 0, 0,162, 0, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0,163, 0, 0, 0,
- 0, 0, 35, 0, 42, 0, 0, 0,163, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0,164, 0, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0,
-164, 0, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0,165, 0, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0,165, 0, 0, 0, 0, 0, 35, 0,
- 0, 0, 0, 0,166, 0, 0, 0, 0, 0, 35, 0, 44, 0, 0, 0,166, 0, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0,167, 0, 0, 0,
- 0, 0, 35, 0, 44, 0, 0, 0,167, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,168, 0, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0,
-168, 0, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0,169, 0, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0,169, 0, 0, 0, 0, 0, 35, 0,
- 1, 0, 0, 0,170, 0, 0, 0, 0, 0, 35, 0, 46, 0, 0, 0,170, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0,171, 0, 0, 0,
- 0, 0, 35, 0, 46, 0, 0, 0,171, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,172, 0, 0, 0, 0, 0, 35, 0, 47, 0, 0, 0,
-172, 0, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0,173, 0, 0, 0, 0, 0, 35, 0, 47, 0, 0, 0,173, 0, 0, 0, 0, 0, 35, 0,
- 0, 0, 0, 0,174, 0, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0,174, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0,175, 0, 0, 0,
- 0, 0, 35, 0, 48, 0, 0, 0,175, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0,176, 0, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,
-176, 0, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0,177, 0, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,177, 0, 0, 0, 0, 0, 35, 0,
- 1, 0, 0, 0,178, 0, 0, 0, 0, 0, 35, 0, 50, 0, 0, 0,178, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0,179, 0, 0, 0,
- 0, 0, 35, 0, 50, 0, 0, 0,179, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0,180, 0, 0, 0, 0, 0, 35, 0, 51, 0, 0, 0,
-180, 0, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0,181, 0, 0, 0, 0, 0, 35, 0, 51, 0, 0, 0,181, 0, 0, 0, 0, 0, 35, 0,
- 0, 0, 0, 0,182, 0, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0,182, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0,183, 0, 0, 0,
- 0, 0, 35, 0, 52, 0, 0, 0,183, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0,184, 0, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0,
-184, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0,185, 0, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0,185, 0, 0, 0, 0, 0, 35, 0,
- 2, 0, 0, 0,186, 0, 0, 0, 0, 0, 35, 0, 54, 0, 0, 0,186, 0, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0,187, 0, 0, 0,
- 0, 0, 35, 0, 54, 0, 0, 0,187, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0,188, 0, 0, 0, 0, 0, 35, 0, 55, 0, 0, 0,
-188, 0, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0,189, 0, 0, 0, 0, 0, 35, 0, 55, 0, 0, 0,189, 0, 0, 0, 0, 0, 35, 0,
- 0, 0, 0, 0,190, 0, 0, 0, 0, 0, 35, 0, 56, 0, 0, 0,190, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0,191, 0, 0, 0,
- 0, 0, 35, 0, 56, 0, 0, 0,191, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0,192, 0, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0,
-192, 0, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0,193, 0, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0,193, 0, 0, 0, 0, 0, 35, 0,
- 3, 0, 0, 0,194, 0, 0, 0, 0, 0, 35, 0, 58, 0, 0, 0,194, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0,195, 0, 0, 0,
- 0, 0, 35, 0, 58, 0, 0, 0,195, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0,196, 0, 0, 0, 0, 0, 35, 0, 59, 0, 0, 0,
-196, 0, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0,197, 0, 0, 0, 0, 0, 35, 0, 59, 0, 0, 0,197, 0, 0, 0, 0, 0, 35, 0,
- 4, 0, 0, 0,198, 0, 0, 0, 0, 0, 35, 0, 60, 0, 0, 0,198, 0, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0,199, 0, 0, 0,
- 0, 0, 35, 0, 60, 0, 0, 0,199, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0,200, 0, 0, 0, 0, 0, 35, 0, 61, 0, 0, 0,
-200, 0, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0,201, 0, 0, 0, 0, 0, 35, 0, 61, 0, 0, 0,201, 0, 0, 0, 0, 0, 35, 0,
- 5, 0, 0, 0,202, 0, 0, 0, 0, 0, 35, 0, 62, 0, 0, 0,202, 0, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0,203, 0, 0, 0,
- 0, 0, 35, 0, 62, 0, 0, 0,203, 0, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0,204, 0, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0,
-204, 0, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0,205, 0, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0,205, 0, 0, 0, 0, 0, 35, 0,
- 1, 0, 0, 0,206, 0, 0, 0, 0, 0, 35, 0, 64, 0, 0, 0,206, 0, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0,207, 0, 0, 0,
- 0, 0, 35, 0, 64, 0, 0, 0,207, 0, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0,208, 0, 0, 0, 0, 0, 35, 0, 65, 0, 0, 0,
-208, 0, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0,209, 0, 0, 0, 0, 0, 35, 0, 65, 0, 0, 0,209, 0, 0, 0, 0, 0, 35, 0,
- 1, 0, 0, 0,210, 0, 0, 0, 0, 0, 35, 0, 66, 0, 0, 0,210, 0, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0,211, 0, 0, 0,
- 0, 0, 35, 0, 66, 0, 0, 0,211, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0,212, 0, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,
-212, 0, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0,213, 0, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,213, 0, 0, 0, 0, 0, 35, 0,
- 2, 0, 0, 0,214, 0, 0, 0, 0, 0, 35, 0, 68, 0, 0, 0,214, 0, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0,215, 0, 0, 0,
- 0, 0, 35, 0, 68, 0, 0, 0,215, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0,216, 0, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0,
-216, 0, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0,217, 0, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0,217, 0, 0, 0, 0, 0, 35, 0,
- 2, 0, 0, 0,218, 0, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0,218, 0, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0,219, 0, 0, 0,
- 0, 0, 35, 0, 70, 0, 0, 0,219, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0,220, 0, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,
-220, 0, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0,221, 0, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,221, 0, 0, 0, 0, 0, 35, 0,
- 3, 0, 0, 0,222, 0, 0, 0, 0, 0, 35, 0, 72, 0, 0, 0,222, 0, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0,223, 0, 0, 0,
- 0, 0, 35, 0, 72, 0, 0, 0,223, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0,224, 0, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0,
-224, 0, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0,225, 0, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0,225, 0, 0, 0, 0, 0, 35, 0,
- 3, 0, 0, 0,226, 0, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0,226, 0, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0,227, 0, 0, 0,
- 0, 0, 35, 0, 74, 0, 0, 0,227, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0,228, 0, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0,
-228, 0, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0,229, 0, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0,229, 0, 0, 0, 0, 0, 35, 0,
- 4, 0, 0, 0,230, 0, 0, 0, 0, 0, 35, 0, 76, 0, 0, 0,230, 0, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0,231, 0, 0, 0,
- 0, 0, 35, 0, 76, 0, 0, 0,231, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0,232, 0, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0,
-232, 0, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0,233, 0, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0,233, 0, 0, 0, 0, 0, 35, 0,
- 4, 0, 0, 0,234, 0, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0,234, 0, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0,235, 0, 0, 0,
- 0, 0, 35, 0, 78, 0, 0, 0,235, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0,236, 0, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0,
-236, 0, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0,237, 0, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0,237, 0, 0, 0, 0, 0, 35, 0,
- 5, 0, 0, 0,238, 0, 0, 0, 0, 0, 35, 0, 80, 0, 0, 0,238, 0, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0,239, 0, 0, 0,
- 0, 0, 35, 0, 80, 0, 0, 0,239, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0,240, 0, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0,
-240, 0, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0,241, 0, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0,241, 0, 0, 0, 0, 0, 35, 0,
- 6, 0, 0, 0,242, 0, 0, 0, 0, 0, 35, 0, 82, 0, 0, 0,242, 0, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0,243, 0, 0, 0,
- 0, 0, 35, 0, 82, 0, 0, 0,243, 0, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0,244, 0, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0,
-244, 0, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0,245, 0, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0,245, 0, 0, 0, 0, 0, 35, 0,
- 6, 0, 0, 0,246, 0, 0, 0, 0, 0, 35, 0, 84, 0, 0, 0,246, 0, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0,247, 0, 0, 0,
- 0, 0, 35, 0, 84, 0, 0, 0,247, 0, 0, 0, 0, 0, 35, 0, 7, 0, 0, 0,248, 0, 0, 0, 0, 0, 35, 0, 85, 0, 0, 0,
-248, 0, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0,249, 0, 0, 0, 0, 0, 35, 0, 85, 0, 0, 0,249, 0, 0, 0, 0, 0, 35, 0,
- 7, 0, 0, 0,250, 0, 0, 0, 0, 0, 35, 0, 86, 0, 0, 0,250, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0,251, 0, 0, 0,
- 0, 0, 35, 0, 86, 0, 0, 0,251, 0, 0, 0, 0, 0, 35, 0, 8, 0, 0, 0,252, 0, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0,
-252, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0,253, 0, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0,253, 0, 0, 0, 0, 0, 35, 0,
- 8, 0, 0, 0,254, 0, 0, 0, 0, 0, 35, 0, 88, 0, 0, 0,254, 0, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0,255, 0, 0, 0,
- 0, 0, 35, 0, 88, 0, 0, 0,255, 0, 0, 0, 0, 0, 35, 0, 9, 0, 0, 0, 0, 1, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0,
- 0, 1, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0, 1, 1, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0, 1, 1, 0, 0, 0, 0, 35, 0,
- 9, 0, 0, 0, 2, 1, 0, 0, 0, 0, 35, 0, 90, 0, 0, 0, 2, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0, 3, 1, 0, 0,
- 0, 0, 35, 0, 90, 0, 0, 0, 3, 1, 0, 0, 0, 0, 35, 0, 10, 0, 0, 0, 4, 1, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0,
- 4, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0, 5, 1, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0, 5, 1, 0, 0, 0, 0, 35, 0,
- 10, 0, 0, 0, 6, 1, 0, 0, 0, 0, 35, 0, 92, 0, 0, 0, 6, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0, 7, 1, 0, 0,
- 0, 0, 35, 0, 92, 0, 0, 0, 7, 1, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 8, 1, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0,
- 8, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0, 9, 1, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0, 9, 1, 0, 0, 0, 0, 35, 0,
- 6, 0, 0, 0, 10, 1, 0, 0, 0, 0, 35, 0, 94, 0, 0, 0, 10, 1, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0, 11, 1, 0, 0,
- 0, 0, 35, 0, 94, 0, 0, 0, 11, 1, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 12, 1, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0,
- 12, 1, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0, 13, 1, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, 13, 1, 0, 0, 0, 0, 35, 0,
- 7, 0, 0, 0, 14, 1, 0, 0, 0, 0, 35, 0, 96, 0, 0, 0, 14, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0, 15, 1, 0, 0,
- 0, 0, 35, 0, 96, 0, 0, 0, 15, 1, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 16, 1, 0, 0, 0, 0, 35, 0, 97, 0, 0, 0,
- 16, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0, 17, 1, 0, 0, 0, 0, 35, 0, 97, 0, 0, 0, 17, 1, 0, 0, 0, 0, 35, 0,
- 8, 0, 0, 0, 18, 1, 0, 0, 0, 0, 35, 0, 98, 0, 0, 0, 18, 1, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0, 19, 1, 0, 0,
- 0, 0, 35, 0, 98, 0, 0, 0, 19, 1, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 20, 1, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0,
- 20, 1, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0, 21, 1, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0, 21, 1, 0, 0, 0, 0, 35, 0,
- 9, 0, 0, 0, 22, 1, 0, 0, 0, 0, 35, 0,100, 0, 0, 0, 22, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0, 23, 1, 0, 0,
- 0, 0, 35, 0,100, 0, 0, 0, 23, 1, 0, 0, 0, 0, 35, 0, 11, 0, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0,101, 0, 0, 0,
- 24, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0, 25, 1, 0, 0, 0, 0, 35, 0,101, 0, 0, 0, 25, 1, 0, 0, 0, 0, 35, 0,
- 12, 0, 0, 0, 26, 1, 0, 0, 0, 0, 35, 0,102, 0, 0, 0, 26, 1, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 27, 1, 0, 0,
- 0, 0, 35, 0,102, 0, 0, 0, 27, 1, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 28, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0,
- 28, 1, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, 29, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0, 29, 1, 0, 0, 0, 0, 35, 0,
- 13, 0, 0, 0, 30, 1, 0, 0, 0, 0, 35, 0,104, 0, 0, 0, 30, 1, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 31, 1, 0, 0,
- 0, 0, 35, 0,104, 0, 0, 0, 31, 1, 0, 0, 0, 0, 35, 0, 12, 0, 0, 0, 32, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0,
- 32, 1, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 0,
- 12, 0, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 35, 1, 0, 0,
- 0, 0, 35, 0,106, 0, 0, 0, 35, 1, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 36, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0,
- 36, 1, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, 37, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0, 37, 1, 0, 0, 0, 0, 35, 0,
- 13, 0, 0, 0, 38, 1, 0, 0, 0, 0, 35, 0,108, 0, 0, 0, 38, 1, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 39, 1, 0, 0,
- 0, 0, 35, 0,108, 0, 0, 0, 39, 1, 0, 0, 0, 0, 35, 0, 13, 0, 0, 0, 40, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,
- 40, 1, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 41, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0, 41, 1, 0, 0, 0, 0, 35, 0,
- 17, 0, 0, 0, 42, 1, 0, 0, 0, 0, 35, 0,110, 0, 0, 0, 42, 1, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 43, 1, 0, 0,
- 0, 0, 35, 0,110, 0, 0, 0, 43, 1, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, 44, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0,
- 44, 1, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 45, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0, 45, 1, 0, 0, 0, 0, 35, 0,
- 17, 0, 0, 0, 46, 1, 0, 0, 0, 0, 35, 0,112, 0, 0, 0, 46, 1, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 47, 1, 0, 0,
- 0, 0, 35, 0,112, 0, 0, 0, 47, 1, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 48, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0,
- 48, 1, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 49, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0, 49, 1, 0, 0, 0, 0, 35, 0,
- 19, 0, 0, 0, 50, 1, 0, 0, 0, 0, 35, 0,114, 0, 0, 0, 50, 1, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 51, 1, 0, 0,
- 0, 0, 35, 0,114, 0, 0, 0, 51, 1, 0, 0, 0, 0, 35, 0, 15, 0, 0, 0, 52, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0,
- 52, 1, 0, 0, 0, 0, 35, 0, 19, 0, 0, 0, 53, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0, 53, 1, 0, 0, 0, 0, 35, 0,
- 15, 0, 0, 0, 54, 1, 0, 0, 0, 0, 35, 0,116, 0, 0, 0, 54, 1, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 55, 1, 0, 0,
- 0, 0, 35, 0,116, 0, 0, 0, 55, 1, 0, 0, 0, 0, 35, 0, 16, 0, 0, 0, 56, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0,
- 56, 1, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 57, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0, 57, 1, 0, 0, 0, 0, 35, 0,
- 16, 0, 0, 0, 58, 1, 0, 0, 0, 0, 35, 0,118, 0, 0, 0, 58, 1, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0, 59, 1, 0, 0,
- 0, 0, 35, 0,118, 0, 0, 0, 59, 1, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0, 60, 1, 0, 0, 0, 0, 35, 0,119, 0, 0, 0,
- 60, 1, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 61, 1, 0, 0, 0, 0, 35, 0,119, 0, 0, 0, 61, 1, 0, 0, 0, 0, 35, 0,
- 14, 0, 0, 0, 62, 1, 0, 0, 0, 0, 35, 0,120, 0, 0, 0, 62, 1, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0, 63, 1, 0, 0,
- 0, 0, 35, 0,120, 0, 0, 0, 63, 1, 0, 0, 0, 0, 35, 0, 14, 0, 0, 0, 64, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0,
- 64, 1, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0, 65, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0, 65, 1, 0, 0, 0, 0, 35, 0,
- 24, 0, 0, 0, 66, 1, 0, 0, 0, 0, 35, 0,122, 0, 0, 0, 66, 1, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0, 67, 1, 0, 0,
- 0, 0, 35, 0,122, 0, 0, 0, 67, 1, 0, 0, 0, 0, 35, 0, 18, 0, 0, 0, 68, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0,
- 68, 1, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0, 69, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0, 69, 1, 0, 0, 0, 0, 35, 0,
- 18, 0, 0, 0, 70, 1, 0, 0, 0, 0, 35, 0,124, 0, 0, 0, 70, 1, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, 71, 1, 0, 0,
- 0, 0, 35, 0,124, 0, 0, 0, 71, 1, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, 72, 1, 0, 0, 0, 0, 35, 0,125, 0, 0, 0,
- 72, 1, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0, 73, 1, 0, 0, 0, 0, 35, 0,125, 0, 0, 0, 73, 1, 0, 0, 0, 0, 35, 0,
- 20, 0, 0, 0, 74, 1, 0, 0, 0, 0, 35, 0,126, 0, 0, 0, 74, 1, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0, 75, 1, 0, 0,
- 0, 0, 35, 0,126, 0, 0, 0, 75, 1, 0, 0, 0, 0, 35, 0, 20, 0, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,
- 76, 1, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0, 77, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0, 77, 1, 0, 0, 0, 0, 35, 0,
- 28, 0, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0,128, 0, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0, 79, 1, 0, 0,
- 0, 0, 35, 0,128, 0, 0, 0, 79, 1, 0, 0, 0, 0, 35, 0, 21, 0, 0, 0, 80, 1, 0, 0, 0, 0, 35, 0,129, 0, 0, 0,
- 80, 1, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0,129, 0, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0,
- 21, 0, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0,130, 0, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0, 83, 1, 0, 0,
- 0, 0, 35, 0,130, 0, 0, 0, 83, 1, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0,131, 0, 0, 0,
- 84, 1, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0, 85, 1, 0, 0, 0, 0, 35, 0,131, 0, 0, 0, 85, 1, 0, 0, 0, 0, 35, 0,
- 23, 0, 0, 0, 86, 1, 0, 0, 0, 0, 35, 0,132, 0, 0, 0, 86, 1, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, 87, 1, 0, 0,
- 0, 0, 35, 0,132, 0, 0, 0, 87, 1, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 88, 1, 0, 0, 0, 0, 35, 0,133, 0, 0, 0,
- 88, 1, 0, 0, 0, 0, 35, 0, 24, 0, 0, 0, 89, 1, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, 89, 1, 0, 0, 0, 0, 35, 0,
- 24, 0, 0, 0, 90, 1, 0, 0, 0, 0, 35, 0,134, 0, 0, 0, 90, 1, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0, 91, 1, 0, 0,
- 0, 0, 35, 0,134, 0, 0, 0, 91, 1, 0, 0, 0, 0, 35, 0, 25, 0, 0, 0, 92, 1, 0, 0, 0, 0, 35, 0,135, 0, 0, 0,
- 92, 1, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0, 93, 1, 0, 0, 0, 0, 35, 0,135, 0, 0, 0, 93, 1, 0, 0, 0, 0, 35, 0,
- 25, 0, 0, 0, 94, 1, 0, 0, 0, 0, 35, 0,136, 0, 0, 0, 94, 1, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, 95, 1, 0, 0,
- 0, 0, 35, 0,136, 0, 0, 0, 95, 1, 0, 0, 0, 0, 35, 0, 26, 0, 0, 0, 96, 1, 0, 0, 0, 0, 35, 0,137, 0, 0, 0,
- 96, 1, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0, 97, 1, 0, 0, 0, 0, 35, 0,137, 0, 0, 0, 97, 1, 0, 0, 0, 0, 35, 0,
- 27, 0, 0, 0, 98, 1, 0, 0, 0, 0, 35, 0,138, 0, 0, 0, 98, 1, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0, 99, 1, 0, 0,
- 0, 0, 35, 0,138, 0, 0, 0, 99, 1, 0, 0, 0, 0, 35, 0, 27, 0, 0, 0,100, 1, 0, 0, 0, 0, 35, 0,139, 0, 0, 0,
-100, 1, 0, 0, 0, 0, 35, 0, 28, 0, 0, 0,101, 1, 0, 0, 0, 0, 35, 0,139, 0, 0, 0,101, 1, 0, 0, 0, 0, 35, 0,
- 28, 0, 0, 0,102, 1, 0, 0, 0, 0, 35, 0,140, 0, 0, 0,102, 1, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0,103, 1, 0, 0,
- 0, 0, 35, 0,140, 0, 0, 0,103, 1, 0, 0, 0, 0, 35, 0, 29, 0, 0, 0,104, 1, 0, 0, 0, 0, 35, 0,141, 0, 0, 0,
-104, 1, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0,105, 1, 0, 0, 0, 0, 35, 0,141, 0, 0, 0,105, 1, 0, 0, 0, 0, 35, 0,
- 29, 0, 0, 0,106, 1, 0, 0, 0, 0, 35, 0,142, 0, 0, 0,106, 1, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0,107, 1, 0, 0,
- 0, 0, 35, 0,142, 0, 0, 0,107, 1, 0, 0, 0, 0, 35, 0, 30, 0, 0, 0,108, 1, 0, 0, 0, 0, 35, 0,143, 0, 0, 0,
-108, 1, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0,109, 1, 0, 0, 0, 0, 35, 0,143, 0, 0, 0,109, 1, 0, 0, 0, 0, 35, 0,
- 31, 0, 0, 0,110, 1, 0, 0, 0, 0, 35, 0,144, 0, 0, 0,110, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0,111, 1, 0, 0,
- 0, 0, 35, 0,144, 0, 0, 0,111, 1, 0, 0, 0, 0, 35, 0, 22, 0, 0, 0,112, 1, 0, 0, 0, 0, 35, 0,145, 0, 0, 0,
-112, 1, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0,113, 1, 0, 0, 0, 0, 35, 0,145, 0, 0, 0,113, 1, 0, 0, 0, 0, 35, 0,
- 22, 0, 0, 0,114, 1, 0, 0, 0, 0, 35, 0,146, 0, 0, 0,114, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0,115, 1, 0, 0,
- 0, 0, 35, 0,146, 0, 0, 0,115, 1, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0,116, 1, 0, 0, 0, 0, 35, 0,147, 0, 0, 0,
-116, 1, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0,117, 1, 0, 0, 0, 0, 35, 0,147, 0, 0, 0,117, 1, 0, 0, 0, 0, 35, 0,
- 32, 0, 0, 0,118, 1, 0, 0, 0, 0, 35, 0,148, 0, 0, 0,118, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0,119, 1, 0, 0,
- 0, 0, 35, 0,148, 0, 0, 0,119, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0,120, 1, 0, 0, 0, 0, 35, 0,149, 0, 0, 0,
-120, 1, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0,121, 1, 0, 0, 0, 0, 35, 0,149, 0, 0, 0,121, 1, 0, 0, 0, 0, 35, 0,
- 33, 0, 0, 0,122, 1, 0, 0, 0, 0, 35, 0,150, 0, 0, 0,122, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0,123, 1, 0, 0,
- 0, 0, 35, 0,150, 0, 0, 0,123, 1, 0, 0, 0, 0, 35, 0, 33, 0, 0, 0,124, 1, 0, 0, 0, 0, 35, 0,151, 0, 0, 0,
-124, 1, 0, 0, 0, 0, 35, 0, 38, 0, 0, 0,125, 1, 0, 0, 0, 0, 35, 0,151, 0, 0, 0,125, 1, 0, 0, 0, 0, 35, 0,
- 38, 0, 0, 0,126, 1, 0, 0, 0, 0, 35, 0,152, 0, 0, 0,126, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0,127, 1, 0, 0,
- 0, 0, 35, 0,152, 0, 0, 0,127, 1, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0,128, 1, 0, 0, 0, 0, 35, 0,153, 0, 0, 0,
-128, 1, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0,129, 1, 0, 0, 0, 0, 35, 0,153, 0, 0, 0,129, 1, 0, 0, 0, 0, 35, 0,
- 34, 0, 0, 0,130, 1, 0, 0, 0, 0, 35, 0,154, 0, 0, 0,130, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0,131, 1, 0, 0,
- 0, 0, 35, 0,154, 0, 0, 0,131, 1, 0, 0, 0, 0, 35, 0, 39, 0, 0, 0,132, 1, 0, 0, 0, 0, 35, 0,155, 0, 0, 0,
-132, 1, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0,133, 1, 0, 0, 0, 0, 35, 0,155, 0, 0, 0,133, 1, 0, 0, 0, 0, 35, 0,
- 35, 0, 0, 0,134, 1, 0, 0, 0, 0, 35, 0,156, 0, 0, 0,134, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0,135, 1, 0, 0,
- 0, 0, 35, 0,156, 0, 0, 0,135, 1, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0,136, 1, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,
-136, 1, 0, 0, 0, 0, 35, 0, 40, 0, 0, 0,137, 1, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,137, 1, 0, 0, 0, 0, 35, 0,
- 40, 0, 0, 0,138, 1, 0, 0, 0, 0, 35, 0,158, 0, 0, 0,138, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0,139, 1, 0, 0,
- 0, 0, 35, 0,158, 0, 0, 0,139, 1, 0, 0, 0, 0, 35, 0, 36, 0, 0, 0,140, 1, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,
-140, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0,141, 1, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,141, 1, 0, 0, 0, 0, 35, 0,
- 36, 0, 0, 0,142, 1, 0, 0, 0, 0, 35, 0,160, 0, 0, 0,142, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0,143, 1, 0, 0,
- 0, 0, 35, 0,160, 0, 0, 0,143, 1, 0, 0, 0, 0, 35, 0, 37, 0, 0, 0,144, 1, 0, 0, 0, 0, 35, 0,161, 0, 0, 0,
-144, 1, 0, 0, 0, 0, 35, 0, 41, 0, 0, 0,145, 1, 0, 0, 0, 0, 35, 0,161, 0, 0, 0,145, 1, 0, 0, 0, 0, 35, 0,
- 46, 0, 0, 0,146, 1, 0, 0, 0, 0, 35, 0,102, 0, 0, 0,146, 1, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0,147, 1, 0, 0,
- 0, 0, 33, 0, 46, 0, 0, 0,147, 1, 0, 0, 0, 0, 33, 0, 43, 0, 0, 0,148, 1, 0, 0, 0, 0, 35, 0,102, 0, 0, 0,
-148, 1, 0, 0, 0, 0, 35, 0,102, 0, 0, 0,149, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0,149, 1, 0, 0, 0, 0, 35, 0,
-103, 0, 0, 0,150, 1, 0, 0, 0, 0, 35, 0,104, 0, 0, 0,150, 1, 0, 0, 0, 0, 35, 0,102, 0, 0, 0,151, 1, 0, 0,
- 0, 0, 35, 0,104, 0, 0, 0,151, 1, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0,152, 1, 0, 0, 0, 0, 33, 0, 47, 0, 0, 0,
-152, 1, 0, 0, 0, 0, 33, 0, 47, 0, 0, 0,153, 1, 0, 0, 0, 0, 35, 0,104, 0, 0, 0,153, 1, 0, 0, 0, 0, 35, 0,
- 45, 0, 0, 0,154, 1, 0, 0, 0, 0, 35, 0,104, 0, 0, 0,154, 1, 0, 0, 0, 0, 35, 0, 44, 0, 0, 0,155, 1, 0, 0,
- 0, 0, 35, 0,103, 0, 0, 0,155, 1, 0, 0, 0, 0, 35, 0, 42, 0, 0, 0,156, 1, 0, 0, 0, 0, 35, 0,103, 0, 0, 0,
-156, 1, 0, 0, 0, 0, 35, 0, 42, 0, 0, 0,157, 1, 0, 0, 0, 0, 33, 0, 44, 0, 0, 0,157, 1, 0, 0, 0, 0, 33, 0,
- 50, 0, 0, 0,158, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0,158, 1, 0, 0, 0, 0, 35, 0, 43, 0, 0, 0,159, 1, 0, 0,
- 0, 0, 33, 0, 50, 0, 0, 0,159, 1, 0, 0, 0, 0, 33, 0, 43, 0, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0,
-160, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0,161, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0,161, 1, 0, 0, 0, 0, 35, 0,
-106, 0, 0, 0,162, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0,162, 1, 0, 0, 0, 0, 35, 0,105, 0, 0, 0,163, 1, 0, 0,
- 0, 0, 35, 0,107, 0, 0, 0,163, 1, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,164, 1, 0, 0, 0, 0, 33, 0, 51, 0, 0, 0,
-164, 1, 0, 0, 0, 0, 33, 0, 51, 0, 0, 0,165, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0,165, 1, 0, 0, 0, 0, 35, 0,
- 49, 0, 0, 0,166, 1, 0, 0, 0, 0, 35, 0,107, 0, 0, 0,166, 1, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0,167, 1, 0, 0,
- 0, 0, 35, 0,106, 0, 0, 0,167, 1, 0, 0, 0, 0, 35, 0, 42, 0, 0, 0,168, 1, 0, 0, 0, 0, 35, 0,106, 0, 0, 0,
-168, 1, 0, 0, 0, 0, 35, 0, 42, 0, 0, 0,169, 1, 0, 0, 0, 0, 33, 0, 48, 0, 0, 0,169, 1, 0, 0, 0, 0, 33, 0,
- 54, 0, 0, 0,170, 1, 0, 0, 0, 0, 35, 0,108, 0, 0, 0,170, 1, 0, 0, 0, 0, 35, 0, 45, 0, 0, 0,171, 1, 0, 0,
- 0, 0, 33, 0, 54, 0, 0, 0,171, 1, 0, 0, 0, 0, 33, 0, 45, 0, 0, 0,172, 1, 0, 0, 0, 0, 35, 0,108, 0, 0, 0,
-172, 1, 0, 0, 0, 0, 35, 0,108, 0, 0, 0,173, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,173, 1, 0, 0, 0, 0, 35, 0,
-109, 0, 0, 0,174, 1, 0, 0, 0, 0, 35, 0,110, 0, 0, 0,174, 1, 0, 0, 0, 0, 35, 0,108, 0, 0, 0,175, 1, 0, 0,
- 0, 0, 35, 0,110, 0, 0, 0,175, 1, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0,176, 1, 0, 0, 0, 0, 33, 0, 55, 0, 0, 0,
-176, 1, 0, 0, 0, 0, 33, 0, 55, 0, 0, 0,177, 1, 0, 0, 0, 0, 35, 0,110, 0, 0, 0,177, 1, 0, 0, 0, 0, 35, 0,
- 53, 0, 0, 0,178, 1, 0, 0, 0, 0, 35, 0,110, 0, 0, 0,178, 1, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0,179, 1, 0, 0,
- 0, 0, 35, 0,109, 0, 0, 0,179, 1, 0, 0, 0, 0, 35, 0, 44, 0, 0, 0,180, 1, 0, 0, 0, 0, 35, 0,109, 0, 0, 0,
-180, 1, 0, 0, 0, 0, 35, 0, 44, 0, 0, 0,181, 1, 0, 0, 0, 0, 33, 0, 52, 0, 0, 0,181, 1, 0, 0, 0, 0, 33, 0,
- 58, 0, 0, 0,182, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0,182, 1, 0, 0, 0, 0, 35, 0, 53, 0, 0, 0,183, 1, 0, 0,
- 0, 0, 33, 0, 58, 0, 0, 0,183, 1, 0, 0, 0, 0, 33, 0, 53, 0, 0, 0,184, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0,
-184, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0,185, 1, 0, 0, 0, 0, 35, 0,112, 0, 0, 0,185, 1, 0, 0, 0, 0, 35, 0,
-112, 0, 0, 0,186, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0,186, 1, 0, 0, 0, 0, 35, 0,111, 0, 0, 0,187, 1, 0, 0,
- 0, 0, 35, 0,113, 0, 0, 0,187, 1, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0,188, 1, 0, 0, 0, 0, 33, 0, 59, 0, 0, 0,
-188, 1, 0, 0, 0, 0, 33, 0, 59, 0, 0, 0,189, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0,189, 1, 0, 0, 0, 0, 35, 0,
- 57, 0, 0, 0,190, 1, 0, 0, 0, 0, 35, 0,113, 0, 0, 0,190, 1, 0, 0, 0, 0, 35, 0, 56, 0, 0, 0,191, 1, 0, 0,
- 0, 0, 35, 0,112, 0, 0, 0,191, 1, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,112, 0, 0, 0,
-192, 1, 0, 0, 0, 0, 35, 0, 52, 0, 0, 0,193, 1, 0, 0, 0, 0, 33, 0, 56, 0, 0, 0,193, 1, 0, 0, 0, 0, 33, 0,
- 60, 0, 0, 0,194, 1, 0, 0, 0, 0, 35, 0,114, 0, 0, 0,194, 1, 0, 0, 0, 0, 35, 0, 57, 0, 0, 0,195, 1, 0, 0,
- 0, 0, 33, 0, 60, 0, 0, 0,195, 1, 0, 0, 0, 0, 33, 0, 57, 0, 0, 0,196, 1, 0, 0, 0, 0, 35, 0,114, 0, 0, 0,
-196, 1, 0, 0, 0, 0, 35, 0,114, 0, 0, 0,197, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0,197, 1, 0, 0, 0, 0, 35, 0,
-115, 0, 0, 0,198, 1, 0, 0, 0, 0, 35, 0,116, 0, 0, 0,198, 1, 0, 0, 0, 0, 35, 0,114, 0, 0, 0,199, 1, 0, 0,
- 0, 0, 35, 0,116, 0, 0, 0,199, 1, 0, 0, 0, 0, 35, 0, 49, 0, 0, 0,200, 1, 0, 0, 0, 0, 33, 0, 61, 0, 0, 0,
-200, 1, 0, 0, 0, 0, 33, 0, 61, 0, 0, 0,201, 1, 0, 0, 0, 0, 35, 0,116, 0, 0, 0,201, 1, 0, 0, 0, 0, 35, 0,
- 49, 0, 0, 0,202, 1, 0, 0, 0, 0, 35, 0,116, 0, 0, 0,202, 1, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0,203, 1, 0, 0,
- 0, 0, 35, 0,115, 0, 0, 0,203, 1, 0, 0, 0, 0, 35, 0, 56, 0, 0, 0,204, 1, 0, 0, 0, 0, 35, 0,115, 0, 0, 0,
-204, 1, 0, 0, 0, 0, 35, 0, 48, 0, 0, 0,205, 1, 0, 0, 0, 0, 33, 0, 56, 0, 0, 0,205, 1, 0, 0, 0, 0, 33, 0,
- 64, 0, 0, 0,206, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0,206, 1, 0, 0, 0, 0, 35, 0, 50, 0, 0, 0,207, 1, 0, 0,
- 0, 0, 33, 0, 64, 0, 0, 0,207, 1, 0, 0, 0, 0, 33, 0, 50, 0, 0, 0,208, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0,
-208, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0,209, 1, 0, 0, 0, 0, 35, 0,118, 0, 0, 0,209, 1, 0, 0, 0, 0, 35, 0,
-118, 0, 0, 0,210, 1, 0, 0, 0, 0, 35, 0,119, 0, 0, 0,210, 1, 0, 0, 0, 0, 35, 0,117, 0, 0, 0,211, 1, 0, 0,
- 0, 0, 35, 0,119, 0, 0, 0,211, 1, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0,212, 1, 0, 0, 0, 0, 33, 0, 65, 0, 0, 0,
-212, 1, 0, 0, 0, 0, 33, 0, 65, 0, 0, 0,213, 1, 0, 0, 0, 0, 35, 0,119, 0, 0, 0,213, 1, 0, 0, 0, 0, 35, 0,
- 63, 0, 0, 0,214, 1, 0, 0, 0, 0, 35, 0,119, 0, 0, 0,214, 1, 0, 0, 0, 0, 35, 0, 62, 0, 0, 0,215, 1, 0, 0,
- 0, 0, 35, 0,118, 0, 0, 0,215, 1, 0, 0, 0, 0, 35, 0, 51, 0, 0, 0,216, 1, 0, 0, 0, 0, 35, 0,118, 0, 0, 0,
-216, 1, 0, 0, 0, 0, 35, 0, 51, 0, 0, 0,217, 1, 0, 0, 0, 0, 33, 0, 62, 0, 0, 0,217, 1, 0, 0, 0, 0, 33, 0,
- 68, 0, 0, 0,218, 1, 0, 0, 0, 0, 35, 0,120, 0, 0, 0,218, 1, 0, 0, 0, 0, 35, 0, 47, 0, 0, 0,219, 1, 0, 0,
- 0, 0, 33, 0, 68, 0, 0, 0,219, 1, 0, 0, 0, 0, 33, 0, 47, 0, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,120, 0, 0, 0,
-220, 1, 0, 0, 0, 0, 35, 0,120, 0, 0, 0,221, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0,221, 1, 0, 0, 0, 0, 35, 0,
-121, 0, 0, 0,222, 1, 0, 0, 0, 0, 35, 0,122, 0, 0, 0,222, 1, 0, 0, 0, 0, 35, 0,120, 0, 0, 0,223, 1, 0, 0,
- 0, 0, 35, 0,122, 0, 0, 0,223, 1, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0,224, 1, 0, 0, 0, 0, 33, 0, 69, 0, 0, 0,
-224, 1, 0, 0, 0, 0, 33, 0, 69, 0, 0, 0,225, 1, 0, 0, 0, 0, 35, 0,122, 0, 0, 0,225, 1, 0, 0, 0, 0, 35, 0,
- 67, 0, 0, 0,226, 1, 0, 0, 0, 0, 35, 0,122, 0, 0, 0,226, 1, 0, 0, 0, 0, 35, 0, 66, 0, 0, 0,227, 1, 0, 0,
- 0, 0, 35, 0,121, 0, 0, 0,227, 1, 0, 0, 0, 0, 35, 0, 46, 0, 0, 0,228, 1, 0, 0, 0, 0, 35, 0,121, 0, 0, 0,
-228, 1, 0, 0, 0, 0, 35, 0, 46, 0, 0, 0,229, 1, 0, 0, 0, 0, 33, 0, 66, 0, 0, 0,229, 1, 0, 0, 0, 0, 33, 0,
- 72, 0, 0, 0,230, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0,230, 1, 0, 0, 0, 0, 35, 0, 55, 0, 0, 0,231, 1, 0, 0,
- 0, 0, 33, 0, 72, 0, 0, 0,231, 1, 0, 0, 0, 0, 33, 0, 55, 0, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0,
-232, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0,233, 1, 0, 0, 0, 0, 35, 0,124, 0, 0, 0,233, 1, 0, 0, 0, 0, 35, 0,
-124, 0, 0, 0,234, 1, 0, 0, 0, 0, 35, 0,125, 0, 0, 0,234, 1, 0, 0, 0, 0, 35, 0,123, 0, 0, 0,235, 1, 0, 0,
- 0, 0, 35, 0,125, 0, 0, 0,235, 1, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0,236, 1, 0, 0, 0, 0, 33, 0, 73, 0, 0, 0,
-236, 1, 0, 0, 0, 0, 33, 0, 73, 0, 0, 0,237, 1, 0, 0, 0, 0, 35, 0,125, 0, 0, 0,237, 1, 0, 0, 0, 0, 35, 0,
- 71, 0, 0, 0,238, 1, 0, 0, 0, 0, 35, 0,125, 0, 0, 0,238, 1, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0,239, 1, 0, 0,
- 0, 0, 35, 0,124, 0, 0, 0,239, 1, 0, 0, 0, 0, 35, 0, 54, 0, 0, 0,240, 1, 0, 0, 0, 0, 35, 0,124, 0, 0, 0,
-240, 1, 0, 0, 0, 0, 35, 0, 54, 0, 0, 0,241, 1, 0, 0, 0, 0, 33, 0, 70, 0, 0, 0,241, 1, 0, 0, 0, 0, 33, 0,
- 76, 0, 0, 0,242, 1, 0, 0, 0, 0, 35, 0,126, 0, 0, 0,242, 1, 0, 0, 0, 0, 35, 0, 59, 0, 0, 0,243, 1, 0, 0,
- 0, 0, 33, 0, 76, 0, 0, 0,243, 1, 0, 0, 0, 0, 33, 0, 59, 0, 0, 0,244, 1, 0, 0, 0, 0, 35, 0,126, 0, 0, 0,
-244, 1, 0, 0, 0, 0, 35, 0,126, 0, 0, 0,245, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,245, 1, 0, 0, 0, 0, 35, 0,
-127, 0, 0, 0,246, 1, 0, 0, 0, 0, 35, 0,128, 0, 0, 0,246, 1, 0, 0, 0, 0, 35, 0,126, 0, 0, 0,247, 1, 0, 0,
- 0, 0, 35, 0,128, 0, 0, 0,247, 1, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0,248, 1, 0, 0, 0, 0, 33, 0, 77, 0, 0, 0,
-248, 1, 0, 0, 0, 0, 33, 0, 77, 0, 0, 0,249, 1, 0, 0, 0, 0, 35, 0,128, 0, 0, 0,249, 1, 0, 0, 0, 0, 35, 0,
- 75, 0, 0, 0,250, 1, 0, 0, 0, 0, 35, 0,128, 0, 0, 0,250, 1, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0,251, 1, 0, 0,
- 0, 0, 35, 0,127, 0, 0, 0,251, 1, 0, 0, 0, 0, 35, 0, 58, 0, 0, 0,252, 1, 0, 0, 0, 0, 35, 0,127, 0, 0, 0,
-252, 1, 0, 0, 0, 0, 35, 0, 58, 0, 0, 0,253, 1, 0, 0, 0, 0, 33, 0, 74, 0, 0, 0,253, 1, 0, 0, 0, 0, 33, 0,
- 80, 0, 0, 0,254, 1, 0, 0, 0, 0, 35, 0,129, 0, 0, 0,254, 1, 0, 0, 0, 0, 35, 0, 61, 0, 0, 0,255, 1, 0, 0,
- 0, 0, 33, 0, 80, 0, 0, 0,255, 1, 0, 0, 0, 0, 33, 0, 61, 0, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0,129, 0, 0, 0,
- 0, 2, 0, 0, 0, 0, 35, 0,129, 0, 0, 0, 1, 2, 0, 0, 0, 0, 35, 0,130, 0, 0, 0, 1, 2, 0, 0, 0, 0, 35, 0,
-130, 0, 0, 0, 2, 2, 0, 0, 0, 0, 35, 0,131, 0, 0, 0, 2, 2, 0, 0, 0, 0, 35, 0,129, 0, 0, 0, 3, 2, 0, 0,
- 0, 0, 35, 0,131, 0, 0, 0, 3, 2, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0, 4, 2, 0, 0, 0, 0, 33, 0, 81, 0, 0, 0,
- 4, 2, 0, 0, 0, 0, 33, 0, 81, 0, 0, 0, 5, 2, 0, 0, 0, 0, 35, 0,131, 0, 0, 0, 5, 2, 0, 0, 0, 0, 35, 0,
- 79, 0, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0,131, 0, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0, 7, 2, 0, 0,
- 0, 0, 35, 0,130, 0, 0, 0, 7, 2, 0, 0, 0, 0, 35, 0, 60, 0, 0, 0, 8, 2, 0, 0, 0, 0, 35, 0,130, 0, 0, 0,
- 8, 2, 0, 0, 0, 0, 35, 0, 60, 0, 0, 0, 9, 2, 0, 0, 0, 0, 33, 0, 78, 0, 0, 0, 9, 2, 0, 0, 0, 0, 33, 0,
- 83, 0, 0, 0, 10, 2, 0, 0, 0, 0, 35, 0,132, 0, 0, 0, 10, 2, 0, 0, 0, 0, 35, 0, 65, 0, 0, 0, 11, 2, 0, 0,
- 0, 0, 33, 0, 83, 0, 0, 0, 11, 2, 0, 0, 0, 0, 33, 0, 65, 0, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0,132, 0, 0, 0,
- 12, 2, 0, 0, 0, 0, 35, 0,132, 0, 0, 0, 13, 2, 0, 0, 0, 0, 35, 0,133, 0, 0, 0, 13, 2, 0, 0, 0, 0, 35, 0,
-133, 0, 0, 0, 14, 2, 0, 0, 0, 0, 35, 0,134, 0, 0, 0, 14, 2, 0, 0, 0, 0, 35, 0,132, 0, 0, 0, 15, 2, 0, 0,
- 0, 0, 35, 0,134, 0, 0, 0, 15, 2, 0, 0, 0, 0, 35, 0, 67, 0, 0, 0, 16, 2, 0, 0, 0, 0, 33, 0, 82, 0, 0, 0,
- 16, 2, 0, 0, 0, 0, 33, 0, 82, 0, 0, 0, 17, 2, 0, 0, 0, 0, 35, 0,134, 0, 0, 0, 17, 2, 0, 0, 0, 0, 35, 0,
- 67, 0, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0,134, 0, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0, 66, 0, 0, 0, 19, 2, 0, 0,
- 0, 0, 35, 0,133, 0, 0, 0, 19, 2, 0, 0, 0, 0, 35, 0, 64, 0, 0, 0, 20, 2, 0, 0, 0, 0, 35, 0,133, 0, 0, 0,
- 20, 2, 0, 0, 0, 0, 35, 0, 64, 0, 0, 0, 21, 2, 0, 0, 0, 0, 33, 0, 66, 0, 0, 0, 21, 2, 0, 0, 0, 0, 33, 0,
- 84, 0, 0, 0, 22, 2, 0, 0, 0, 0, 35, 0,135, 0, 0, 0, 22, 2, 0, 0, 0, 0, 35, 0, 69, 0, 0, 0, 23, 2, 0, 0,
- 0, 0, 33, 0, 84, 0, 0, 0, 23, 2, 0, 0, 0, 0, 33, 0, 69, 0, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0,135, 0, 0, 0,
- 24, 2, 0, 0, 0, 0, 35, 0,135, 0, 0, 0, 25, 2, 0, 0, 0, 0, 35, 0,136, 0, 0, 0, 25, 2, 0, 0, 0, 0, 35, 0,
-136, 0, 0, 0, 26, 2, 0, 0, 0, 0, 35, 0,137, 0, 0, 0, 26, 2, 0, 0, 0, 0, 35, 0,135, 0, 0, 0, 27, 2, 0, 0,
- 0, 0, 35, 0,137, 0, 0, 0, 27, 2, 0, 0, 0, 0, 35, 0, 71, 0, 0, 0, 28, 2, 0, 0, 0, 0, 33, 0, 85, 0, 0, 0,
- 28, 2, 0, 0, 0, 0, 33, 0, 85, 0, 0, 0, 29, 2, 0, 0, 0, 0, 35, 0,137, 0, 0, 0, 29, 2, 0, 0, 0, 0, 35, 0,
- 71, 0, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0,137, 0, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0, 70, 0, 0, 0, 31, 2, 0, 0,
- 0, 0, 35, 0,136, 0, 0, 0, 31, 2, 0, 0, 0, 0, 35, 0, 68, 0, 0, 0, 32, 2, 0, 0, 0, 0, 35, 0,136, 0, 0, 0,
- 32, 2, 0, 0, 0, 0, 35, 0, 68, 0, 0, 0, 33, 2, 0, 0, 0, 0, 33, 0, 70, 0, 0, 0, 33, 2, 0, 0, 0, 0, 33, 0,
- 86, 0, 0, 0, 34, 2, 0, 0, 0, 0, 35, 0,138, 0, 0, 0, 34, 2, 0, 0, 0, 0, 35, 0, 73, 0, 0, 0, 35, 2, 0, 0,
- 0, 0, 33, 0, 86, 0, 0, 0, 35, 2, 0, 0, 0, 0, 33, 0, 73, 0, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0,138, 0, 0, 0,
- 36, 2, 0, 0, 0, 0, 35, 0,138, 0, 0, 0, 37, 2, 0, 0, 0, 0, 35, 0,139, 0, 0, 0, 37, 2, 0, 0, 0, 0, 35, 0,
-139, 0, 0, 0, 38, 2, 0, 0, 0, 0, 35, 0,140, 0, 0, 0, 38, 2, 0, 0, 0, 0, 35, 0,138, 0, 0, 0, 39, 2, 0, 0,
- 0, 0, 35, 0,140, 0, 0, 0, 39, 2, 0, 0, 0, 0, 35, 0, 75, 0, 0, 0, 40, 2, 0, 0, 0, 0, 33, 0, 87, 0, 0, 0,
- 40, 2, 0, 0, 0, 0, 33, 0, 87, 0, 0, 0, 41, 2, 0, 0, 0, 0, 35, 0,140, 0, 0, 0, 41, 2, 0, 0, 0, 0, 35, 0,
- 75, 0, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0,140, 0, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0, 74, 0, 0, 0, 43, 2, 0, 0,
- 0, 0, 35, 0,139, 0, 0, 0, 43, 2, 0, 0, 0, 0, 35, 0, 72, 0, 0, 0, 44, 2, 0, 0, 0, 0, 35, 0,139, 0, 0, 0,
- 44, 2, 0, 0, 0, 0, 35, 0, 72, 0, 0, 0, 45, 2, 0, 0, 0, 0, 33, 0, 74, 0, 0, 0, 45, 2, 0, 0, 0, 0, 33, 0,
- 88, 0, 0, 0, 46, 2, 0, 0, 0, 0, 35, 0,141, 0, 0, 0, 46, 2, 0, 0, 0, 0, 35, 0, 77, 0, 0, 0, 47, 2, 0, 0,
- 0, 0, 33, 0, 88, 0, 0, 0, 47, 2, 0, 0, 0, 0, 33, 0, 77, 0, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0,141, 0, 0, 0,
- 48, 2, 0, 0, 0, 0, 35, 0,141, 0, 0, 0, 49, 2, 0, 0, 0, 0, 35, 0,142, 0, 0, 0, 49, 2, 0, 0, 0, 0, 35, 0,
-142, 0, 0, 0, 50, 2, 0, 0, 0, 0, 35, 0,143, 0, 0, 0, 50, 2, 0, 0, 0, 0, 35, 0,141, 0, 0, 0, 51, 2, 0, 0,
- 0, 0, 35, 0,143, 0, 0, 0, 51, 2, 0, 0, 0, 0, 35, 0, 79, 0, 0, 0, 52, 2, 0, 0, 0, 0, 33, 0, 89, 0, 0, 0,
- 52, 2, 0, 0, 0, 0, 33, 0, 89, 0, 0, 0, 53, 2, 0, 0, 0, 0, 35, 0,143, 0, 0, 0, 53, 2, 0, 0, 0, 0, 35, 0,
- 79, 0, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0,143, 0, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0, 78, 0, 0, 0, 55, 2, 0, 0,
- 0, 0, 35, 0,142, 0, 0, 0, 55, 2, 0, 0, 0, 0, 35, 0, 76, 0, 0, 0, 56, 2, 0, 0, 0, 0, 35, 0,142, 0, 0, 0,
- 56, 2, 0, 0, 0, 0, 35, 0, 76, 0, 0, 0, 57, 2, 0, 0, 0, 0, 33, 0, 78, 0, 0, 0, 57, 2, 0, 0, 0, 0, 33, 0,
- 90, 0, 0, 0, 58, 2, 0, 0, 0, 0, 35, 0,144, 0, 0, 0, 58, 2, 0, 0, 0, 0, 35, 0, 81, 0, 0, 0, 59, 2, 0, 0,
- 0, 0, 33, 0, 90, 0, 0, 0, 59, 2, 0, 0, 0, 0, 33, 0, 81, 0, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0,144, 0, 0, 0,
- 60, 2, 0, 0, 0, 0, 35, 0,144, 0, 0, 0, 61, 2, 0, 0, 0, 0, 35, 0,145, 0, 0, 0, 61, 2, 0, 0, 0, 0, 35, 0,
-145, 0, 0, 0, 62, 2, 0, 0, 0, 0, 35, 0,146, 0, 0, 0, 62, 2, 0, 0, 0, 0, 35, 0,144, 0, 0, 0, 63, 2, 0, 0,
- 0, 0, 35, 0,146, 0, 0, 0, 63, 2, 0, 0, 0, 0, 35, 0, 63, 0, 0, 0, 64, 2, 0, 0, 0, 0, 33, 0, 91, 0, 0, 0,
- 64, 2, 0, 0, 0, 0, 33, 0, 91, 0, 0, 0, 65, 2, 0, 0, 0, 0, 35, 0,146, 0, 0, 0, 65, 2, 0, 0, 0, 0, 35, 0,
- 63, 0, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0,146, 0, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0, 62, 0, 0, 0, 67, 2, 0, 0,
- 0, 0, 35, 0,145, 0, 0, 0, 67, 2, 0, 0, 0, 0, 35, 0, 80, 0, 0, 0, 68, 2, 0, 0, 0, 0, 35, 0,145, 0, 0, 0,
- 68, 2, 0, 0, 0, 0, 35, 0, 62, 0, 0, 0, 69, 2, 0, 0, 0, 0, 33, 0, 80, 0, 0, 0, 69, 2, 0, 0, 0, 0, 33, 0,
- 94, 0, 0, 0, 70, 2, 0, 0, 0, 0, 35, 0,147, 0, 0, 0, 70, 2, 0, 0, 0, 0, 35, 0, 82, 0, 0, 0, 71, 2, 0, 0,
- 0, 0, 33, 0, 94, 0, 0, 0, 71, 2, 0, 0, 0, 0, 33, 0, 82, 0, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0,147, 0, 0, 0,
- 72, 2, 0, 0, 0, 0, 35, 0,147, 0, 0, 0, 73, 2, 0, 0, 0, 0, 35, 0,148, 0, 0, 0, 73, 2, 0, 0, 0, 0, 35, 0,
-148, 0, 0, 0, 74, 2, 0, 0, 0, 0, 35, 0,149, 0, 0, 0, 74, 2, 0, 0, 0, 0, 35, 0,147, 0, 0, 0, 75, 2, 0, 0,
- 0, 0, 35, 0,149, 0, 0, 0, 75, 2, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0, 76, 2, 0, 0, 0, 0, 33, 0, 95, 0, 0, 0,
- 76, 2, 0, 0, 0, 0, 33, 0, 95, 0, 0, 0, 77, 2, 0, 0, 0, 0, 35, 0,149, 0, 0, 0, 77, 2, 0, 0, 0, 0, 35, 0,
- 93, 0, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0,149, 0, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0, 92, 0, 0, 0, 79, 2, 0, 0,
- 0, 0, 35, 0,148, 0, 0, 0, 79, 2, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0, 80, 2, 0, 0, 0, 0, 35, 0,148, 0, 0, 0,
- 80, 2, 0, 0, 0, 0, 35, 0, 83, 0, 0, 0, 81, 2, 0, 0, 0, 0, 33, 0, 92, 0, 0, 0, 81, 2, 0, 0, 0, 0, 33, 0,
- 96, 0, 0, 0, 82, 2, 0, 0, 0, 0, 35, 0,150, 0, 0, 0, 82, 2, 0, 0, 0, 0, 35, 0, 85, 0, 0, 0, 83, 2, 0, 0,
- 0, 0, 33, 0, 96, 0, 0, 0, 83, 2, 0, 0, 0, 0, 33, 0, 85, 0, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0,150, 0, 0, 0,
- 84, 2, 0, 0, 0, 0, 35, 0,150, 0, 0, 0, 85, 2, 0, 0, 0, 0, 35, 0,151, 0, 0, 0, 85, 2, 0, 0, 0, 0, 35, 0,
-151, 0, 0, 0, 86, 2, 0, 0, 0, 0, 35, 0,152, 0, 0, 0, 86, 2, 0, 0, 0, 0, 35, 0,150, 0, 0, 0, 87, 2, 0, 0,
- 0, 0, 35, 0,152, 0, 0, 0, 87, 2, 0, 0, 0, 0, 35, 0, 95, 0, 0, 0, 88, 2, 0, 0, 0, 0, 33, 0, 97, 0, 0, 0,
- 88, 2, 0, 0, 0, 0, 33, 0, 97, 0, 0, 0, 89, 2, 0, 0, 0, 0, 35, 0,152, 0, 0, 0, 89, 2, 0, 0, 0, 0, 35, 0,
- 95, 0, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0,152, 0, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0, 94, 0, 0, 0, 91, 2, 0, 0,
- 0, 0, 35, 0,151, 0, 0, 0, 91, 2, 0, 0, 0, 0, 35, 0, 84, 0, 0, 0, 92, 2, 0, 0, 0, 0, 35, 0,151, 0, 0, 0,
- 92, 2, 0, 0, 0, 0, 35, 0, 84, 0, 0, 0, 93, 2, 0, 0, 0, 0, 33, 0, 94, 0, 0, 0, 93, 2, 0, 0, 0, 0, 33, 0,
- 98, 0, 0, 0, 94, 2, 0, 0, 0, 0, 35, 0,153, 0, 0, 0, 94, 2, 0, 0, 0, 0, 35, 0, 87, 0, 0, 0, 95, 2, 0, 0,
- 0, 0, 33, 0, 98, 0, 0, 0, 95, 2, 0, 0, 0, 0, 33, 0, 87, 0, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0,153, 0, 0, 0,
- 96, 2, 0, 0, 0, 0, 35, 0,153, 0, 0, 0, 97, 2, 0, 0, 0, 0, 35, 0,154, 0, 0, 0, 97, 2, 0, 0, 0, 0, 35, 0,
-154, 0, 0, 0, 98, 2, 0, 0, 0, 0, 35, 0,155, 0, 0, 0, 98, 2, 0, 0, 0, 0, 35, 0,153, 0, 0, 0, 99, 2, 0, 0,
- 0, 0, 35, 0,155, 0, 0, 0, 99, 2, 0, 0, 0, 0, 35, 0, 97, 0, 0, 0,100, 2, 0, 0, 0, 0, 33, 0, 99, 0, 0, 0,
-100, 2, 0, 0, 0, 0, 33, 0, 99, 0, 0, 0,101, 2, 0, 0, 0, 0, 35, 0,155, 0, 0, 0,101, 2, 0, 0, 0, 0, 35, 0,
- 97, 0, 0, 0,102, 2, 0, 0, 0, 0, 35, 0,155, 0, 0, 0,102, 2, 0, 0, 0, 0, 35, 0, 96, 0, 0, 0,103, 2, 0, 0,
- 0, 0, 35, 0,154, 0, 0, 0,103, 2, 0, 0, 0, 0, 35, 0, 86, 0, 0, 0,104, 2, 0, 0, 0, 0, 35, 0,154, 0, 0, 0,
-104, 2, 0, 0, 0, 0, 35, 0, 86, 0, 0, 0,105, 2, 0, 0, 0, 0, 33, 0, 96, 0, 0, 0,105, 2, 0, 0, 0, 0, 33, 0,
-100, 0, 0, 0,106, 2, 0, 0, 0, 0, 35, 0,156, 0, 0, 0,106, 2, 0, 0, 0, 0, 35, 0, 89, 0, 0, 0,107, 2, 0, 0,
- 0, 0, 33, 0,100, 0, 0, 0,107, 2, 0, 0, 0, 0, 33, 0, 89, 0, 0, 0,108, 2, 0, 0, 0, 0, 35, 0,156, 0, 0, 0,
-108, 2, 0, 0, 0, 0, 35, 0,156, 0, 0, 0,109, 2, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,109, 2, 0, 0, 0, 0, 35, 0,
-157, 0, 0, 0,110, 2, 0, 0, 0, 0, 35, 0,158, 0, 0, 0,110, 2, 0, 0, 0, 0, 35, 0,156, 0, 0, 0,111, 2, 0, 0,
- 0, 0, 35, 0,158, 0, 0, 0,111, 2, 0, 0, 0, 0, 35, 0, 99, 0, 0, 0,112, 2, 0, 0, 0, 0, 33, 0,101, 0, 0, 0,
-112, 2, 0, 0, 0, 0, 33, 0,101, 0, 0, 0,113, 2, 0, 0, 0, 0, 35, 0,158, 0, 0, 0,113, 2, 0, 0, 0, 0, 35, 0,
- 99, 0, 0, 0,114, 2, 0, 0, 0, 0, 35, 0,158, 0, 0, 0,114, 2, 0, 0, 0, 0, 35, 0, 98, 0, 0, 0,115, 2, 0, 0,
- 0, 0, 35, 0,157, 0, 0, 0,115, 2, 0, 0, 0, 0, 35, 0, 88, 0, 0, 0,116, 2, 0, 0, 0, 0, 35, 0,157, 0, 0, 0,
-116, 2, 0, 0, 0, 0, 35, 0, 88, 0, 0, 0,117, 2, 0, 0, 0, 0, 33, 0, 98, 0, 0, 0,117, 2, 0, 0, 0, 0, 33, 0,
- 92, 0, 0, 0,118, 2, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,118, 2, 0, 0, 0, 0, 35, 0, 91, 0, 0, 0,119, 2, 0, 0,
- 0, 0, 33, 0, 92, 0, 0, 0,119, 2, 0, 0, 0, 0, 33, 0, 91, 0, 0, 0,120, 2, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,
-120, 2, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,121, 2, 0, 0, 0, 0, 35, 0,160, 0, 0, 0,121, 2, 0, 0, 0, 0, 35, 0,
-160, 0, 0, 0,122, 2, 0, 0, 0, 0, 35, 0,161, 0, 0, 0,122, 2, 0, 0, 0, 0, 35, 0,159, 0, 0, 0,123, 2, 0, 0,
- 0, 0, 35, 0,161, 0, 0, 0,123, 2, 0, 0, 0, 0, 35, 0, 93, 0, 0, 0,124, 2, 0, 0, 0, 0, 33, 0,101, 0, 0, 0,
-124, 2, 0, 0, 0, 0, 33, 0, 93, 0, 0, 0,125, 2, 0, 0, 0, 0, 35, 0,161, 0, 0, 0,125, 2, 0, 0, 0, 0, 35, 0,
-101, 0, 0, 0,126, 2, 0, 0, 0, 0, 35, 0,161, 0, 0, 0,126, 2, 0, 0, 0, 0, 35, 0,100, 0, 0, 0,127, 2, 0, 0,
- 0, 0, 35, 0,160, 0, 0, 0,127, 2, 0, 0, 0, 0, 35, 0, 90, 0, 0, 0,128, 2, 0, 0, 0, 0, 35, 0,160, 0, 0, 0,
-128, 2, 0, 0, 0, 0, 35, 0, 90, 0, 0, 0,129, 2, 0, 0, 0, 0, 33, 0,100, 0, 0, 0,129, 2, 0, 0, 0, 0, 33, 0,
- 27, 1, 0, 0,146, 1, 0, 0, 0, 0, 35, 0,171, 0, 0, 0,146, 1, 0, 0, 0, 0, 35, 0,171, 0, 0, 0, 27, 1, 0, 0,
- 0, 0, 35, 0,146, 1, 0, 0,147, 1, 0, 0, 0, 0, 35, 0,146, 1, 0, 0,148, 1, 0, 0, 0, 0, 35, 0,147, 1, 0, 0,
-148, 1, 0, 0, 0, 0, 35, 0,165, 0, 0, 0, 26, 1, 0, 0, 0, 0, 35, 0,165, 0, 0, 0,148, 1, 0, 0, 0, 0, 35, 0,
- 26, 1, 0, 0,148, 1, 0, 0, 0, 0, 35, 0,164, 0, 0, 0,147, 1, 0, 0, 0, 0, 35, 0,164, 0, 0, 0,170, 0, 0, 0,
- 0, 0, 35, 0,170, 0, 0, 0,147, 1, 0, 0, 0, 0, 35, 0, 26, 1, 0, 0,149, 1, 0, 0, 0, 0, 35, 0, 28, 1, 0, 0,
-149, 1, 0, 0, 0, 0, 35, 0, 26, 1, 0, 0, 28, 1, 0, 0, 0, 0, 35, 0,149, 1, 0, 0,150, 1, 0, 0, 0, 0, 35, 0,
-149, 1, 0, 0,151, 1, 0, 0, 0, 0, 35, 0,150, 1, 0, 0,151, 1, 0, 0, 0, 0, 35, 0, 27, 1, 0, 0, 31, 1, 0, 0,
- 0, 0, 35, 0, 31, 1, 0, 0,151, 1, 0, 0, 0, 0, 35, 0, 27, 1, 0, 0,151, 1, 0, 0, 0, 0, 35, 0, 30, 1, 0, 0,
-150, 1, 0, 0, 0, 0, 35, 0, 29, 1, 0, 0, 30, 1, 0, 0, 0, 0, 35, 0, 29, 1, 0, 0,150, 1, 0, 0, 0, 0, 35, 0,
-168, 0, 0, 0,152, 1, 0, 0, 0, 0, 35, 0,172, 0, 0, 0,152, 1, 0, 0, 0, 0, 35, 0,168, 0, 0, 0,172, 0, 0, 0,
- 0, 0, 35, 0,152, 1, 0, 0,153, 1, 0, 0, 0, 0, 35, 0,152, 1, 0, 0,154, 1, 0, 0, 0, 0, 35, 0,153, 1, 0, 0,
-154, 1, 0, 0, 0, 0, 35, 0,169, 0, 0, 0, 30, 1, 0, 0, 0, 0, 35, 0, 30, 1, 0, 0,154, 1, 0, 0, 0, 0, 35, 0,
-169, 0, 0, 0,154, 1, 0, 0, 0, 0, 35, 0, 31, 1, 0, 0,153, 1, 0, 0, 0, 0, 35, 0,173, 0, 0, 0, 31, 1, 0, 0,
- 0, 0, 35, 0,173, 0, 0, 0,153, 1, 0, 0, 0, 0, 35, 0,167, 0, 0, 0,155, 1, 0, 0, 0, 0, 35, 0, 29, 1, 0, 0,
-155, 1, 0, 0, 0, 0, 35, 0,167, 0, 0, 0, 29, 1, 0, 0, 0, 0, 35, 0,155, 1, 0, 0,156, 1, 0, 0, 0, 0, 35, 0,
-155, 1, 0, 0,157, 1, 0, 0, 0, 0, 35, 0,156, 1, 0, 0,157, 1, 0, 0, 0, 0, 35, 0,162, 0, 0, 0,166, 0, 0, 0,
- 0, 0, 35, 0,162, 0, 0, 0,157, 1, 0, 0, 0, 0, 35, 0,166, 0, 0, 0,157, 1, 0, 0, 0, 0, 35, 0,163, 0, 0, 0,
-156, 1, 0, 0, 0, 0, 35, 0,163, 0, 0, 0, 28, 1, 0, 0, 0, 0, 35, 0, 28, 1, 0, 0,156, 1, 0, 0, 0, 0, 35, 0,
- 33, 1, 0, 0,158, 1, 0, 0, 0, 0, 35, 0,179, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 0,179, 0, 0, 0,158, 1, 0, 0,
- 0, 0, 35, 0,158, 1, 0, 0,159, 1, 0, 0, 0, 0, 35, 0,159, 1, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,158, 1, 0, 0,
-160, 1, 0, 0, 0, 0, 35, 0,165, 0, 0, 0, 32, 1, 0, 0, 0, 0, 35, 0, 32, 1, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,
-165, 0, 0, 0,160, 1, 0, 0, 0, 0, 35, 0,164, 0, 0, 0,159, 1, 0, 0, 0, 0, 35, 0,178, 0, 0, 0,159, 1, 0, 0,
- 0, 0, 35, 0,164, 0, 0, 0,178, 0, 0, 0, 0, 0, 35, 0, 32, 1, 0, 0,161, 1, 0, 0, 0, 0, 35, 0, 32, 1, 0, 0,
- 34, 1, 0, 0, 0, 0, 35, 0, 34, 1, 0, 0,161, 1, 0, 0, 0, 0, 35, 0,161, 1, 0, 0,162, 1, 0, 0, 0, 0, 35, 0,
-162, 1, 0, 0,163, 1, 0, 0, 0, 0, 35, 0,161, 1, 0, 0,163, 1, 0, 0, 0, 0, 35, 0, 33, 1, 0, 0, 37, 1, 0, 0,
- 0, 0, 35, 0, 33, 1, 0, 0,163, 1, 0, 0, 0, 0, 35, 0, 37, 1, 0, 0,163, 1, 0, 0, 0, 0, 35, 0, 36, 1, 0, 0,
-162, 1, 0, 0, 0, 0, 35, 0, 35, 1, 0, 0,162, 1, 0, 0, 0, 0, 35, 0, 35, 1, 0, 0, 36, 1, 0, 0, 0, 0, 35, 0,
-176, 0, 0, 0,164, 1, 0, 0, 0, 0, 35, 0,176, 0, 0, 0,180, 0, 0, 0, 0, 0, 35, 0,180, 0, 0, 0,164, 1, 0, 0,
- 0, 0, 35, 0,164, 1, 0, 0,165, 1, 0, 0, 0, 0, 35, 0,165, 1, 0, 0,166, 1, 0, 0, 0, 0, 35, 0,164, 1, 0, 0,
-166, 1, 0, 0, 0, 0, 35, 0,177, 0, 0, 0, 36, 1, 0, 0, 0, 0, 35, 0,177, 0, 0, 0,166, 1, 0, 0, 0, 0, 35, 0,
- 36, 1, 0, 0,166, 1, 0, 0, 0, 0, 35, 0, 37, 1, 0, 0,165, 1, 0, 0, 0, 0, 35, 0,181, 0, 0, 0,165, 1, 0, 0,
- 0, 0, 35, 0,181, 0, 0, 0, 37, 1, 0, 0, 0, 0, 35, 0,175, 0, 0, 0,167, 1, 0, 0, 0, 0, 35, 0,175, 0, 0, 0,
- 35, 1, 0, 0, 0, 0, 35, 0, 35, 1, 0, 0,167, 1, 0, 0, 0, 0, 35, 0,167, 1, 0, 0,168, 1, 0, 0, 0, 0, 35, 0,
-168, 1, 0, 0,169, 1, 0, 0, 0, 0, 35, 0,167, 1, 0, 0,169, 1, 0, 0, 0, 0, 35, 0,162, 0, 0, 0,174, 0, 0, 0,
- 0, 0, 35, 0,174, 0, 0, 0,169, 1, 0, 0, 0, 0, 35, 0,162, 0, 0, 0,169, 1, 0, 0, 0, 0, 35, 0,163, 0, 0, 0,
-168, 1, 0, 0, 0, 0, 35, 0, 34, 1, 0, 0,168, 1, 0, 0, 0, 0, 35, 0,163, 0, 0, 0, 34, 1, 0, 0, 0, 0, 35, 0,
- 39, 1, 0, 0,170, 1, 0, 0, 0, 0, 35, 0,187, 0, 0, 0,170, 1, 0, 0, 0, 0, 35, 0,187, 0, 0, 0, 39, 1, 0, 0,
- 0, 0, 35, 0,170, 1, 0, 0,171, 1, 0, 0, 0, 0, 35, 0,170, 1, 0, 0,172, 1, 0, 0, 0, 0, 35, 0,171, 1, 0, 0,
-172, 1, 0, 0, 0, 0, 35, 0,169, 0, 0, 0, 38, 1, 0, 0, 0, 0, 35, 0,169, 0, 0, 0,172, 1, 0, 0, 0, 0, 35, 0,
- 38, 1, 0, 0,172, 1, 0, 0, 0, 0, 35, 0,168, 0, 0, 0,171, 1, 0, 0, 0, 0, 35, 0,168, 0, 0, 0,186, 0, 0, 0,
- 0, 0, 35, 0,186, 0, 0, 0,171, 1, 0, 0, 0, 0, 35, 0, 38, 1, 0, 0,173, 1, 0, 0, 0, 0, 35, 0, 40, 1, 0, 0,
-173, 1, 0, 0, 0, 0, 35, 0, 38, 1, 0, 0, 40, 1, 0, 0, 0, 0, 35, 0,173, 1, 0, 0,174, 1, 0, 0, 0, 0, 35, 0,
-173, 1, 0, 0,175, 1, 0, 0, 0, 0, 35, 0,174, 1, 0, 0,175, 1, 0, 0, 0, 0, 35, 0, 39, 1, 0, 0, 43, 1, 0, 0,
- 0, 0, 35, 0, 43, 1, 0, 0,175, 1, 0, 0, 0, 0, 35, 0, 39, 1, 0, 0,175, 1, 0, 0, 0, 0, 35, 0, 42, 1, 0, 0,
-174, 1, 0, 0, 0, 0, 35, 0, 41, 1, 0, 0, 42, 1, 0, 0, 0, 0, 35, 0, 41, 1, 0, 0,174, 1, 0, 0, 0, 0, 35, 0,
-184, 0, 0, 0,176, 1, 0, 0, 0, 0, 35, 0,188, 0, 0, 0,176, 1, 0, 0, 0, 0, 35, 0,184, 0, 0, 0,188, 0, 0, 0,
- 0, 0, 35, 0,176, 1, 0, 0,177, 1, 0, 0, 0, 0, 35, 0,176, 1, 0, 0,178, 1, 0, 0, 0, 0, 35, 0,177, 1, 0, 0,
-178, 1, 0, 0, 0, 0, 35, 0,185, 0, 0, 0, 42, 1, 0, 0, 0, 0, 35, 0, 42, 1, 0, 0,178, 1, 0, 0, 0, 0, 35, 0,
-185, 0, 0, 0,178, 1, 0, 0, 0, 0, 35, 0, 43, 1, 0, 0,177, 1, 0, 0, 0, 0, 35, 0,189, 0, 0, 0, 43, 1, 0, 0,
- 0, 0, 35, 0,189, 0, 0, 0,177, 1, 0, 0, 0, 0, 35, 0,183, 0, 0, 0,179, 1, 0, 0, 0, 0, 35, 0, 41, 1, 0, 0,
-179, 1, 0, 0, 0, 0, 35, 0,183, 0, 0, 0, 41, 1, 0, 0, 0, 0, 35, 0,179, 1, 0, 0,180, 1, 0, 0, 0, 0, 35, 0,
-179, 1, 0, 0,181, 1, 0, 0, 0, 0, 35, 0,180, 1, 0, 0,181, 1, 0, 0, 0, 0, 35, 0,166, 0, 0, 0,182, 0, 0, 0,
- 0, 0, 35, 0,166, 0, 0, 0,181, 1, 0, 0, 0, 0, 35, 0,182, 0, 0, 0,181, 1, 0, 0, 0, 0, 35, 0,167, 0, 0, 0,
-180, 1, 0, 0, 0, 0, 35, 0,167, 0, 0, 0, 40, 1, 0, 0, 0, 0, 35, 0, 40, 1, 0, 0,180, 1, 0, 0, 0, 0, 35, 0,
- 45, 1, 0, 0,182, 1, 0, 0, 0, 0, 35, 0,195, 0, 0, 0,182, 1, 0, 0, 0, 0, 35, 0,195, 0, 0, 0, 45, 1, 0, 0,
- 0, 0, 35, 0,182, 1, 0, 0,183, 1, 0, 0, 0, 0, 35, 0,182, 1, 0, 0,184, 1, 0, 0, 0, 0, 35, 0,183, 1, 0, 0,
-184, 1, 0, 0, 0, 0, 35, 0,185, 0, 0, 0, 44, 1, 0, 0, 0, 0, 35, 0,185, 0, 0, 0,184, 1, 0, 0, 0, 0, 35, 0,
- 44, 1, 0, 0,184, 1, 0, 0, 0, 0, 35, 0,184, 0, 0, 0,183, 1, 0, 0, 0, 0, 35, 0,184, 0, 0, 0,194, 0, 0, 0,
- 0, 0, 35, 0,194, 0, 0, 0,183, 1, 0, 0, 0, 0, 35, 0, 44, 1, 0, 0,185, 1, 0, 0, 0, 0, 35, 0, 46, 1, 0, 0,
-185, 1, 0, 0, 0, 0, 35, 0, 44, 1, 0, 0, 46, 1, 0, 0, 0, 0, 35, 0,185, 1, 0, 0,186, 1, 0, 0, 0, 0, 35, 0,
-185, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0,186, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0, 45, 1, 0, 0, 49, 1, 0, 0,
- 0, 0, 35, 0, 49, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0, 45, 1, 0, 0,187, 1, 0, 0, 0, 0, 35, 0, 48, 1, 0, 0,
-186, 1, 0, 0, 0, 0, 35, 0, 47, 1, 0, 0, 48, 1, 0, 0, 0, 0, 35, 0, 47, 1, 0, 0,186, 1, 0, 0, 0, 0, 35, 0,
-192, 0, 0, 0,188, 1, 0, 0, 0, 0, 35, 0,196, 0, 0, 0,188, 1, 0, 0, 0, 0, 35, 0,192, 0, 0, 0,196, 0, 0, 0,
- 0, 0, 35, 0,188, 1, 0, 0,189, 1, 0, 0, 0, 0, 35, 0,188, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0,189, 1, 0, 0,
-190, 1, 0, 0, 0, 0, 35, 0,193, 0, 0, 0, 48, 1, 0, 0, 0, 0, 35, 0, 48, 1, 0, 0,190, 1, 0, 0, 0, 0, 35, 0,
-193, 0, 0, 0,190, 1, 0, 0, 0, 0, 35, 0, 49, 1, 0, 0,189, 1, 0, 0, 0, 0, 35, 0,197, 0, 0, 0, 49, 1, 0, 0,
- 0, 0, 35, 0,197, 0, 0, 0,189, 1, 0, 0, 0, 0, 35, 0,191, 0, 0, 0,191, 1, 0, 0, 0, 0, 35, 0, 47, 1, 0, 0,
-191, 1, 0, 0, 0, 0, 35, 0,191, 0, 0, 0, 47, 1, 0, 0, 0, 0, 35, 0,191, 1, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,
-191, 1, 0, 0,193, 1, 0, 0, 0, 0, 35, 0,192, 1, 0, 0,193, 1, 0, 0, 0, 0, 35, 0,182, 0, 0, 0,190, 0, 0, 0,
- 0, 0, 35, 0,182, 0, 0, 0,193, 1, 0, 0, 0, 0, 35, 0,190, 0, 0, 0,193, 1, 0, 0, 0, 0, 35, 0,183, 0, 0, 0,
-192, 1, 0, 0, 0, 0, 35, 0,183, 0, 0, 0, 46, 1, 0, 0, 0, 0, 35, 0, 46, 1, 0, 0,192, 1, 0, 0, 0, 0, 35, 0,
- 51, 1, 0, 0,194, 1, 0, 0, 0, 0, 35, 0,199, 0, 0, 0,194, 1, 0, 0, 0, 0, 35, 0,199, 0, 0, 0, 51, 1, 0, 0,
- 0, 0, 35, 0,194, 1, 0, 0,195, 1, 0, 0, 0, 0, 35, 0,194, 1, 0, 0,196, 1, 0, 0, 0, 0, 35, 0,195, 1, 0, 0,
-196, 1, 0, 0, 0, 0, 35, 0,193, 0, 0, 0, 50, 1, 0, 0, 0, 0, 35, 0,193, 0, 0, 0,196, 1, 0, 0, 0, 0, 35, 0,
- 50, 1, 0, 0,196, 1, 0, 0, 0, 0, 35, 0,192, 0, 0, 0,195, 1, 0, 0, 0, 0, 35, 0,192, 0, 0, 0,198, 0, 0, 0,
- 0, 0, 35, 0,198, 0, 0, 0,195, 1, 0, 0, 0, 0, 35, 0, 50, 1, 0, 0,197, 1, 0, 0, 0, 0, 35, 0, 53, 1, 0, 0,
-197, 1, 0, 0, 0, 0, 35, 0, 50, 1, 0, 0, 53, 1, 0, 0, 0, 0, 35, 0,197, 1, 0, 0,198, 1, 0, 0, 0, 0, 35, 0,
-197, 1, 0, 0,199, 1, 0, 0, 0, 0, 35, 0,198, 1, 0, 0,199, 1, 0, 0, 0, 0, 35, 0, 51, 1, 0, 0, 55, 1, 0, 0,
- 0, 0, 35, 0, 55, 1, 0, 0,199, 1, 0, 0, 0, 0, 35, 0, 51, 1, 0, 0,199, 1, 0, 0, 0, 0, 35, 0, 54, 1, 0, 0,
-198, 1, 0, 0, 0, 0, 35, 0, 52, 1, 0, 0, 54, 1, 0, 0, 0, 0, 35, 0, 52, 1, 0, 0,198, 1, 0, 0, 0, 0, 35, 0,
-176, 0, 0, 0,200, 1, 0, 0, 0, 0, 35, 0,200, 0, 0, 0,200, 1, 0, 0, 0, 0, 35, 0,176, 0, 0, 0,200, 0, 0, 0,
- 0, 0, 35, 0,200, 1, 0, 0,201, 1, 0, 0, 0, 0, 35, 0,200, 1, 0, 0,202, 1, 0, 0, 0, 0, 35, 0,201, 1, 0, 0,
-202, 1, 0, 0, 0, 0, 35, 0,177, 0, 0, 0, 54, 1, 0, 0, 0, 0, 35, 0, 54, 1, 0, 0,202, 1, 0, 0, 0, 0, 35, 0,
-177, 0, 0, 0,202, 1, 0, 0, 0, 0, 35, 0, 55, 1, 0, 0,201, 1, 0, 0, 0, 0, 35, 0,201, 0, 0, 0, 55, 1, 0, 0,
- 0, 0, 35, 0,201, 0, 0, 0,201, 1, 0, 0, 0, 0, 35, 0,175, 0, 0, 0,203, 1, 0, 0, 0, 0, 35, 0, 52, 1, 0, 0,
-203, 1, 0, 0, 0, 0, 35, 0,175, 0, 0, 0, 52, 1, 0, 0, 0, 0, 35, 0,203, 1, 0, 0,204, 1, 0, 0, 0, 0, 35, 0,
-203, 1, 0, 0,205, 1, 0, 0, 0, 0, 35, 0,204, 1, 0, 0,205, 1, 0, 0, 0, 0, 35, 0,174, 0, 0, 0,190, 0, 0, 0,
- 0, 0, 35, 0,190, 0, 0, 0,205, 1, 0, 0, 0, 0, 35, 0,174, 0, 0, 0,205, 1, 0, 0, 0, 0, 35, 0,191, 0, 0, 0,
-204, 1, 0, 0, 0, 0, 35, 0,191, 0, 0, 0, 53, 1, 0, 0, 0, 0, 35, 0, 53, 1, 0, 0,204, 1, 0, 0, 0, 0, 35, 0,
- 57, 1, 0, 0,206, 1, 0, 0, 0, 0, 35, 0,207, 0, 0, 0, 57, 1, 0, 0, 0, 0, 35, 0,207, 0, 0, 0,206, 1, 0, 0,
- 0, 0, 35, 0,206, 1, 0, 0,207, 1, 0, 0, 0, 0, 35, 0,207, 1, 0, 0,208, 1, 0, 0, 0, 0, 35, 0,206, 1, 0, 0,
-208, 1, 0, 0, 0, 0, 35, 0,179, 0, 0, 0, 56, 1, 0, 0, 0, 0, 35, 0, 56, 1, 0, 0,208, 1, 0, 0, 0, 0, 35, 0,
-179, 0, 0, 0,208, 1, 0, 0, 0, 0, 35, 0,178, 0, 0, 0,207, 1, 0, 0, 0, 0, 35, 0,206, 0, 0, 0,207, 1, 0, 0,
- 0, 0, 35, 0,178, 0, 0, 0,206, 0, 0, 0, 0, 0, 35, 0, 56, 1, 0, 0,209, 1, 0, 0, 0, 0, 35, 0, 56, 1, 0, 0,
- 58, 1, 0, 0, 0, 0, 35, 0, 58, 1, 0, 0,209, 1, 0, 0, 0, 0, 35, 0,209, 1, 0, 0,210, 1, 0, 0, 0, 0, 35, 0,
-210, 1, 0, 0,211, 1, 0, 0, 0, 0, 35, 0,209, 1, 0, 0,211, 1, 0, 0, 0, 0, 35, 0, 57, 1, 0, 0, 61, 1, 0, 0,
- 0, 0, 35, 0, 57, 1, 0, 0,211, 1, 0, 0, 0, 0, 35, 0, 61, 1, 0, 0,211, 1, 0, 0, 0, 0, 35, 0, 60, 1, 0, 0,
-210, 1, 0, 0, 0, 0, 35, 0, 59, 1, 0, 0,210, 1, 0, 0, 0, 0, 35, 0, 59, 1, 0, 0, 60, 1, 0, 0, 0, 0, 35, 0,
-204, 0, 0, 0,212, 1, 0, 0, 0, 0, 35, 0,204, 0, 0, 0,208, 0, 0, 0, 0, 0, 35, 0,208, 0, 0, 0,212, 1, 0, 0,
- 0, 0, 35, 0,212, 1, 0, 0,213, 1, 0, 0, 0, 0, 35, 0,213, 1, 0, 0,214, 1, 0, 0, 0, 0, 35, 0,212, 1, 0, 0,
-214, 1, 0, 0, 0, 0, 35, 0,205, 0, 0, 0, 60, 1, 0, 0, 0, 0, 35, 0,205, 0, 0, 0,214, 1, 0, 0, 0, 0, 35, 0,
- 60, 1, 0, 0,214, 1, 0, 0, 0, 0, 35, 0, 61, 1, 0, 0,213, 1, 0, 0, 0, 0, 35, 0,209, 0, 0, 0,213, 1, 0, 0,
- 0, 0, 35, 0,209, 0, 0, 0, 61, 1, 0, 0, 0, 0, 35, 0,203, 0, 0, 0,215, 1, 0, 0, 0, 0, 35, 0,203, 0, 0, 0,
- 59, 1, 0, 0, 0, 0, 35, 0, 59, 1, 0, 0,215, 1, 0, 0, 0, 0, 35, 0,215, 1, 0, 0,216, 1, 0, 0, 0, 0, 35, 0,
-216, 1, 0, 0,217, 1, 0, 0, 0, 0, 35, 0,215, 1, 0, 0,217, 1, 0, 0, 0, 0, 35, 0,180, 0, 0, 0,202, 0, 0, 0,
- 0, 0, 35, 0,202, 0, 0, 0,217, 1, 0, 0, 0, 0, 35, 0,180, 0, 0, 0,217, 1, 0, 0, 0, 0, 35, 0,181, 0, 0, 0,
-216, 1, 0, 0, 0, 0, 35, 0, 58, 1, 0, 0,216, 1, 0, 0, 0, 0, 35, 0,181, 0, 0, 0, 58, 1, 0, 0, 0, 0, 35, 0,
- 63, 1, 0, 0,218, 1, 0, 0, 0, 0, 35, 0,215, 0, 0, 0, 63, 1, 0, 0, 0, 0, 35, 0,215, 0, 0, 0,218, 1, 0, 0,
- 0, 0, 35, 0,218, 1, 0, 0,219, 1, 0, 0, 0, 0, 35, 0,219, 1, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,218, 1, 0, 0,
-220, 1, 0, 0, 0, 0, 35, 0,173, 0, 0, 0, 62, 1, 0, 0, 0, 0, 35, 0, 62, 1, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,
-173, 0, 0, 0,220, 1, 0, 0, 0, 0, 35, 0,172, 0, 0, 0,219, 1, 0, 0, 0, 0, 35, 0,214, 0, 0, 0,219, 1, 0, 0,
- 0, 0, 35, 0,172, 0, 0, 0,214, 0, 0, 0, 0, 0, 35, 0, 62, 1, 0, 0,221, 1, 0, 0, 0, 0, 35, 0, 62, 1, 0, 0,
- 64, 1, 0, 0, 0, 0, 35, 0, 64, 1, 0, 0,221, 1, 0, 0, 0, 0, 35, 0,221, 1, 0, 0,222, 1, 0, 0, 0, 0, 35, 0,
-222, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0,221, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0, 63, 1, 0, 0, 67, 1, 0, 0,
- 0, 0, 35, 0, 63, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0, 67, 1, 0, 0,223, 1, 0, 0, 0, 0, 35, 0, 66, 1, 0, 0,
-222, 1, 0, 0, 0, 0, 35, 0, 65, 1, 0, 0,222, 1, 0, 0, 0, 0, 35, 0, 65, 1, 0, 0, 66, 1, 0, 0, 0, 0, 35, 0,
-212, 0, 0, 0,224, 1, 0, 0, 0, 0, 35, 0,212, 0, 0, 0,216, 0, 0, 0, 0, 0, 35, 0,216, 0, 0, 0,224, 1, 0, 0,
- 0, 0, 35, 0,224, 1, 0, 0,225, 1, 0, 0, 0, 0, 35, 0,225, 1, 0, 0,226, 1, 0, 0, 0, 0, 35, 0,224, 1, 0, 0,
-226, 1, 0, 0, 0, 0, 35, 0,213, 0, 0, 0, 66, 1, 0, 0, 0, 0, 35, 0,213, 0, 0, 0,226, 1, 0, 0, 0, 0, 35, 0,
- 66, 1, 0, 0,226, 1, 0, 0, 0, 0, 35, 0, 67, 1, 0, 0,225, 1, 0, 0, 0, 0, 35, 0,217, 0, 0, 0,225, 1, 0, 0,
- 0, 0, 35, 0,217, 0, 0, 0, 67, 1, 0, 0, 0, 0, 35, 0,211, 0, 0, 0,227, 1, 0, 0, 0, 0, 35, 0,211, 0, 0, 0,
- 65, 1, 0, 0, 0, 0, 35, 0, 65, 1, 0, 0,227, 1, 0, 0, 0, 0, 35, 0,227, 1, 0, 0,228, 1, 0, 0, 0, 0, 35, 0,
-228, 1, 0, 0,229, 1, 0, 0, 0, 0, 35, 0,227, 1, 0, 0,229, 1, 0, 0, 0, 0, 35, 0,170, 0, 0, 0,210, 0, 0, 0,
- 0, 0, 35, 0,210, 0, 0, 0,229, 1, 0, 0, 0, 0, 35, 0,170, 0, 0, 0,229, 1, 0, 0, 0, 0, 35, 0,171, 0, 0, 0,
-228, 1, 0, 0, 0, 0, 35, 0, 64, 1, 0, 0,228, 1, 0, 0, 0, 0, 35, 0,171, 0, 0, 0, 64, 1, 0, 0, 0, 0, 35, 0,
- 69, 1, 0, 0,230, 1, 0, 0, 0, 0, 35, 0,223, 0, 0, 0, 69, 1, 0, 0, 0, 0, 35, 0,223, 0, 0, 0,230, 1, 0, 0,
- 0, 0, 35, 0,230, 1, 0, 0,231, 1, 0, 0, 0, 0, 35, 0,231, 1, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,230, 1, 0, 0,
-232, 1, 0, 0, 0, 0, 35, 0,189, 0, 0, 0, 68, 1, 0, 0, 0, 0, 35, 0, 68, 1, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,
-189, 0, 0, 0,232, 1, 0, 0, 0, 0, 35, 0,188, 0, 0, 0,231, 1, 0, 0, 0, 0, 35, 0,222, 0, 0, 0,231, 1, 0, 0,
- 0, 0, 35, 0,188, 0, 0, 0,222, 0, 0, 0, 0, 0, 35, 0, 68, 1, 0, 0,233, 1, 0, 0, 0, 0, 35, 0, 68, 1, 0, 0,
- 70, 1, 0, 0, 0, 0, 35, 0, 70, 1, 0, 0,233, 1, 0, 0, 0, 0, 35, 0,233, 1, 0, 0,234, 1, 0, 0, 0, 0, 35, 0,
-234, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0,233, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0, 69, 1, 0, 0, 73, 1, 0, 0,
- 0, 0, 35, 0, 69, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0, 73, 1, 0, 0,235, 1, 0, 0, 0, 0, 35, 0, 72, 1, 0, 0,
-234, 1, 0, 0, 0, 0, 35, 0, 71, 1, 0, 0,234, 1, 0, 0, 0, 0, 35, 0, 71, 1, 0, 0, 72, 1, 0, 0, 0, 0, 35, 0,
-220, 0, 0, 0,236, 1, 0, 0, 0, 0, 35, 0,220, 0, 0, 0,224, 0, 0, 0, 0, 0, 35, 0,224, 0, 0, 0,236, 1, 0, 0,
- 0, 0, 35, 0,236, 1, 0, 0,237, 1, 0, 0, 0, 0, 35, 0,237, 1, 0, 0,238, 1, 0, 0, 0, 0, 35, 0,236, 1, 0, 0,
-238, 1, 0, 0, 0, 0, 35, 0,221, 0, 0, 0, 72, 1, 0, 0, 0, 0, 35, 0,221, 0, 0, 0,238, 1, 0, 0, 0, 0, 35, 0,
- 72, 1, 0, 0,238, 1, 0, 0, 0, 0, 35, 0, 73, 1, 0, 0,237, 1, 0, 0, 0, 0, 35, 0,225, 0, 0, 0,237, 1, 0, 0,
- 0, 0, 35, 0,225, 0, 0, 0, 73, 1, 0, 0, 0, 0, 35, 0,219, 0, 0, 0,239, 1, 0, 0, 0, 0, 35, 0,219, 0, 0, 0,
- 71, 1, 0, 0, 0, 0, 35, 0, 71, 1, 0, 0,239, 1, 0, 0, 0, 0, 35, 0,239, 1, 0, 0,240, 1, 0, 0, 0, 0, 35, 0,
-240, 1, 0, 0,241, 1, 0, 0, 0, 0, 35, 0,239, 1, 0, 0,241, 1, 0, 0, 0, 0, 35, 0,186, 0, 0, 0,218, 0, 0, 0,
- 0, 0, 35, 0,218, 0, 0, 0,241, 1, 0, 0, 0, 0, 35, 0,186, 0, 0, 0,241, 1, 0, 0, 0, 0, 35, 0,187, 0, 0, 0,
-240, 1, 0, 0, 0, 0, 35, 0, 70, 1, 0, 0,240, 1, 0, 0, 0, 0, 35, 0,187, 0, 0, 0, 70, 1, 0, 0, 0, 0, 35, 0,
- 75, 1, 0, 0,242, 1, 0, 0, 0, 0, 35, 0,231, 0, 0, 0, 75, 1, 0, 0, 0, 0, 35, 0,231, 0, 0, 0,242, 1, 0, 0,
- 0, 0, 35, 0,242, 1, 0, 0,243, 1, 0, 0, 0, 0, 35, 0,243, 1, 0, 0,244, 1, 0, 0, 0, 0, 35, 0,242, 1, 0, 0,
-244, 1, 0, 0, 0, 0, 35, 0,197, 0, 0, 0, 74, 1, 0, 0, 0, 0, 35, 0, 74, 1, 0, 0,244, 1, 0, 0, 0, 0, 35, 0,
-197, 0, 0, 0,244, 1, 0, 0, 0, 0, 35, 0,196, 0, 0, 0,243, 1, 0, 0, 0, 0, 35, 0,230, 0, 0, 0,243, 1, 0, 0,
- 0, 0, 35, 0,196, 0, 0, 0,230, 0, 0, 0, 0, 0, 35, 0, 74, 1, 0, 0,245, 1, 0, 0, 0, 0, 35, 0, 74, 1, 0, 0,
- 76, 1, 0, 0, 0, 0, 35, 0, 76, 1, 0, 0,245, 1, 0, 0, 0, 0, 35, 0,245, 1, 0, 0,246, 1, 0, 0, 0, 0, 35, 0,
-246, 1, 0, 0,247, 1, 0, 0, 0, 0, 35, 0,245, 1, 0, 0,247, 1, 0, 0, 0, 0, 35, 0, 75, 1, 0, 0, 79, 1, 0, 0,
- 0, 0, 35, 0, 75, 1, 0, 0,247, 1, 0, 0, 0, 0, 35, 0, 79, 1, 0, 0,247, 1, 0, 0, 0, 0, 35, 0, 78, 1, 0, 0,
-246, 1, 0, 0, 0, 0, 35, 0, 77, 1, 0, 0,246, 1, 0, 0, 0, 0, 35, 0, 77, 1, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0,
-228, 0, 0, 0,248, 1, 0, 0, 0, 0, 35, 0,228, 0, 0, 0,232, 0, 0, 0, 0, 0, 35, 0,232, 0, 0, 0,248, 1, 0, 0,
- 0, 0, 35, 0,248, 1, 0, 0,249, 1, 0, 0, 0, 0, 35, 0,249, 1, 0, 0,250, 1, 0, 0, 0, 0, 35, 0,248, 1, 0, 0,
-250, 1, 0, 0, 0, 0, 35, 0,229, 0, 0, 0, 78, 1, 0, 0, 0, 0, 35, 0,229, 0, 0, 0,250, 1, 0, 0, 0, 0, 35, 0,
- 78, 1, 0, 0,250, 1, 0, 0, 0, 0, 35, 0, 79, 1, 0, 0,249, 1, 0, 0, 0, 0, 35, 0,233, 0, 0, 0,249, 1, 0, 0,
- 0, 0, 35, 0,233, 0, 0, 0, 79, 1, 0, 0, 0, 0, 35, 0,227, 0, 0, 0,251, 1, 0, 0, 0, 0, 35, 0,227, 0, 0, 0,
- 77, 1, 0, 0, 0, 0, 35, 0, 77, 1, 0, 0,251, 1, 0, 0, 0, 0, 35, 0,251, 1, 0, 0,252, 1, 0, 0, 0, 0, 35, 0,
-252, 1, 0, 0,253, 1, 0, 0, 0, 0, 35, 0,251, 1, 0, 0,253, 1, 0, 0, 0, 0, 35, 0,194, 0, 0, 0,226, 0, 0, 0,
- 0, 0, 35, 0,226, 0, 0, 0,253, 1, 0, 0, 0, 0, 35, 0,194, 0, 0, 0,253, 1, 0, 0, 0, 0, 35, 0,195, 0, 0, 0,
-252, 1, 0, 0, 0, 0, 35, 0, 76, 1, 0, 0,252, 1, 0, 0, 0, 0, 35, 0,195, 0, 0, 0, 76, 1, 0, 0, 0, 0, 35, 0,
- 81, 1, 0, 0,254, 1, 0, 0, 0, 0, 35, 0,239, 0, 0, 0, 81, 1, 0, 0, 0, 0, 35, 0,239, 0, 0, 0,254, 1, 0, 0,
- 0, 0, 35, 0,254, 1, 0, 0,255, 1, 0, 0, 0, 0, 35, 0,255, 1, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0,254, 1, 0, 0,
- 0, 2, 0, 0, 0, 0, 35, 0,201, 0, 0, 0, 80, 1, 0, 0, 0, 0, 35, 0, 80, 1, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0,
-201, 0, 0, 0, 0, 2, 0, 0, 0, 0, 35, 0,200, 0, 0, 0,255, 1, 0, 0, 0, 0, 35, 0,238, 0, 0, 0,255, 1, 0, 0,
- 0, 0, 35, 0,200, 0, 0, 0,238, 0, 0, 0, 0, 0, 35, 0, 80, 1, 0, 0, 1, 2, 0, 0, 0, 0, 35, 0, 80, 1, 0, 0,
- 82, 1, 0, 0, 0, 0, 35, 0, 82, 1, 0, 0, 1, 2, 0, 0, 0, 0, 35, 0, 1, 2, 0, 0, 2, 2, 0, 0, 0, 0, 35, 0,
- 2, 2, 0, 0, 3, 2, 0, 0, 0, 0, 35, 0, 1, 2, 0, 0, 3, 2, 0, 0, 0, 0, 35, 0, 81, 1, 0, 0, 85, 1, 0, 0,
- 0, 0, 35, 0, 81, 1, 0, 0, 3, 2, 0, 0, 0, 0, 35, 0, 85, 1, 0, 0, 3, 2, 0, 0, 0, 0, 35, 0, 84, 1, 0, 0,
- 2, 2, 0, 0, 0, 0, 35, 0, 83, 1, 0, 0, 2, 2, 0, 0, 0, 0, 35, 0, 83, 1, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0,
-236, 0, 0, 0, 4, 2, 0, 0, 0, 0, 35, 0,236, 0, 0, 0,240, 0, 0, 0, 0, 0, 35, 0,240, 0, 0, 0, 4, 2, 0, 0,
- 0, 0, 35, 0, 4, 2, 0, 0, 5, 2, 0, 0, 0, 0, 35, 0, 5, 2, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0, 4, 2, 0, 0,
- 6, 2, 0, 0, 0, 0, 35, 0,237, 0, 0, 0, 84, 1, 0, 0, 0, 0, 35, 0,237, 0, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0,
- 84, 1, 0, 0, 6, 2, 0, 0, 0, 0, 35, 0, 85, 1, 0, 0, 5, 2, 0, 0, 0, 0, 35, 0,241, 0, 0, 0, 5, 2, 0, 0,
- 0, 0, 35, 0,241, 0, 0, 0, 85, 1, 0, 0, 0, 0, 35, 0,235, 0, 0, 0, 7, 2, 0, 0, 0, 0, 35, 0,235, 0, 0, 0,
- 83, 1, 0, 0, 0, 0, 35, 0, 83, 1, 0, 0, 7, 2, 0, 0, 0, 0, 35, 0, 7, 2, 0, 0, 8, 2, 0, 0, 0, 0, 35, 0,
- 8, 2, 0, 0, 9, 2, 0, 0, 0, 0, 35, 0, 7, 2, 0, 0, 9, 2, 0, 0, 0, 0, 35, 0,198, 0, 0, 0,234, 0, 0, 0,
- 0, 0, 35, 0,234, 0, 0, 0, 9, 2, 0, 0, 0, 0, 35, 0,198, 0, 0, 0, 9, 2, 0, 0, 0, 0, 35, 0,199, 0, 0, 0,
- 8, 2, 0, 0, 0, 0, 35, 0, 82, 1, 0, 0, 8, 2, 0, 0, 0, 0, 35, 0,199, 0, 0, 0, 82, 1, 0, 0, 0, 0, 35, 0,
- 87, 1, 0, 0, 10, 2, 0, 0, 0, 0, 35, 0,245, 0, 0, 0, 10, 2, 0, 0, 0, 0, 35, 0,245, 0, 0, 0, 87, 1, 0, 0,
- 0, 0, 35, 0, 10, 2, 0, 0, 11, 2, 0, 0, 0, 0, 35, 0, 10, 2, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0, 11, 2, 0, 0,
- 12, 2, 0, 0, 0, 0, 35, 0,209, 0, 0, 0, 86, 1, 0, 0, 0, 0, 35, 0,209, 0, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0,
- 86, 1, 0, 0, 12, 2, 0, 0, 0, 0, 35, 0,208, 0, 0, 0, 11, 2, 0, 0, 0, 0, 35, 0,208, 0, 0, 0,244, 0, 0, 0,
- 0, 0, 35, 0,244, 0, 0, 0, 11, 2, 0, 0, 0, 0, 35, 0, 86, 1, 0, 0, 13, 2, 0, 0, 0, 0, 35, 0, 88, 1, 0, 0,
- 13, 2, 0, 0, 0, 0, 35, 0, 86, 1, 0, 0, 88, 1, 0, 0, 0, 0, 35, 0, 13, 2, 0, 0, 14, 2, 0, 0, 0, 0, 35, 0,
- 13, 2, 0, 0, 15, 2, 0, 0, 0, 0, 35, 0, 14, 2, 0, 0, 15, 2, 0, 0, 0, 0, 35, 0, 87, 1, 0, 0, 91, 1, 0, 0,
- 0, 0, 35, 0, 91, 1, 0, 0, 15, 2, 0, 0, 0, 0, 35, 0, 87, 1, 0, 0, 15, 2, 0, 0, 0, 0, 35, 0, 90, 1, 0, 0,
- 14, 2, 0, 0, 0, 0, 35, 0, 89, 1, 0, 0, 90, 1, 0, 0, 0, 0, 35, 0, 89, 1, 0, 0, 14, 2, 0, 0, 0, 0, 35, 0,
-212, 0, 0, 0, 16, 2, 0, 0, 0, 0, 35, 0,242, 0, 0, 0, 16, 2, 0, 0, 0, 0, 35, 0,212, 0, 0, 0,242, 0, 0, 0,
- 0, 0, 35, 0, 16, 2, 0, 0, 17, 2, 0, 0, 0, 0, 35, 0, 16, 2, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0, 17, 2, 0, 0,
- 18, 2, 0, 0, 0, 0, 35, 0,213, 0, 0, 0, 90, 1, 0, 0, 0, 0, 35, 0, 90, 1, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0,
-213, 0, 0, 0, 18, 2, 0, 0, 0, 0, 35, 0, 91, 1, 0, 0, 17, 2, 0, 0, 0, 0, 35, 0,243, 0, 0, 0, 91, 1, 0, 0,
- 0, 0, 35, 0,243, 0, 0, 0, 17, 2, 0, 0, 0, 0, 35, 0,211, 0, 0, 0, 19, 2, 0, 0, 0, 0, 35, 0, 89, 1, 0, 0,
- 19, 2, 0, 0, 0, 0, 35, 0,211, 0, 0, 0, 89, 1, 0, 0, 0, 0, 35, 0, 19, 2, 0, 0, 20, 2, 0, 0, 0, 0, 35, 0,
- 19, 2, 0, 0, 21, 2, 0, 0, 0, 0, 35, 0, 20, 2, 0, 0, 21, 2, 0, 0, 0, 0, 35, 0,206, 0, 0, 0,210, 0, 0, 0,
- 0, 0, 35, 0,206, 0, 0, 0, 21, 2, 0, 0, 0, 0, 35, 0,210, 0, 0, 0, 21, 2, 0, 0, 0, 0, 35, 0,207, 0, 0, 0,
- 20, 2, 0, 0, 0, 0, 35, 0,207, 0, 0, 0, 88, 1, 0, 0, 0, 0, 35, 0, 88, 1, 0, 0, 20, 2, 0, 0, 0, 0, 35, 0,
- 93, 1, 0, 0, 22, 2, 0, 0, 0, 0, 35, 0,247, 0, 0, 0, 22, 2, 0, 0, 0, 0, 35, 0,247, 0, 0, 0, 93, 1, 0, 0,
- 0, 0, 35, 0, 22, 2, 0, 0, 23, 2, 0, 0, 0, 0, 35, 0, 22, 2, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0, 23, 2, 0, 0,
- 24, 2, 0, 0, 0, 0, 35, 0,217, 0, 0, 0, 92, 1, 0, 0, 0, 0, 35, 0,217, 0, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0,
- 92, 1, 0, 0, 24, 2, 0, 0, 0, 0, 35, 0,216, 0, 0, 0, 23, 2, 0, 0, 0, 0, 35, 0,216, 0, 0, 0,246, 0, 0, 0,
- 0, 0, 35, 0,246, 0, 0, 0, 23, 2, 0, 0, 0, 0, 35, 0, 92, 1, 0, 0, 25, 2, 0, 0, 0, 0, 35, 0, 94, 1, 0, 0,
- 25, 2, 0, 0, 0, 0, 35, 0, 92, 1, 0, 0, 94, 1, 0, 0, 0, 0, 35, 0, 25, 2, 0, 0, 26, 2, 0, 0, 0, 0, 35, 0,
- 25, 2, 0, 0, 27, 2, 0, 0, 0, 0, 35, 0, 26, 2, 0, 0, 27, 2, 0, 0, 0, 0, 35, 0, 93, 1, 0, 0, 97, 1, 0, 0,
- 0, 0, 35, 0, 97, 1, 0, 0, 27, 2, 0, 0, 0, 0, 35, 0, 93, 1, 0, 0, 27, 2, 0, 0, 0, 0, 35, 0, 96, 1, 0, 0,
- 26, 2, 0, 0, 0, 0, 35, 0, 95, 1, 0, 0, 96, 1, 0, 0, 0, 0, 35, 0, 95, 1, 0, 0, 26, 2, 0, 0, 0, 0, 35, 0,
-220, 0, 0, 0, 28, 2, 0, 0, 0, 0, 35, 0,248, 0, 0, 0, 28, 2, 0, 0, 0, 0, 35, 0,220, 0, 0, 0,248, 0, 0, 0,
- 0, 0, 35, 0, 28, 2, 0, 0, 29, 2, 0, 0, 0, 0, 35, 0, 28, 2, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0, 29, 2, 0, 0,
- 30, 2, 0, 0, 0, 0, 35, 0,221, 0, 0, 0, 96, 1, 0, 0, 0, 0, 35, 0, 96, 1, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0,
-221, 0, 0, 0, 30, 2, 0, 0, 0, 0, 35, 0, 97, 1, 0, 0, 29, 2, 0, 0, 0, 0, 35, 0,249, 0, 0, 0, 97, 1, 0, 0,
- 0, 0, 35, 0,249, 0, 0, 0, 29, 2, 0, 0, 0, 0, 35, 0,219, 0, 0, 0, 31, 2, 0, 0, 0, 0, 35, 0, 95, 1, 0, 0,
- 31, 2, 0, 0, 0, 0, 35, 0,219, 0, 0, 0, 95, 1, 0, 0, 0, 0, 35, 0, 31, 2, 0, 0, 32, 2, 0, 0, 0, 0, 35, 0,
- 31, 2, 0, 0, 33, 2, 0, 0, 0, 0, 35, 0, 32, 2, 0, 0, 33, 2, 0, 0, 0, 0, 35, 0,214, 0, 0, 0,218, 0, 0, 0,
- 0, 0, 35, 0,214, 0, 0, 0, 33, 2, 0, 0, 0, 0, 35, 0,218, 0, 0, 0, 33, 2, 0, 0, 0, 0, 35, 0,215, 0, 0, 0,
- 32, 2, 0, 0, 0, 0, 35, 0,215, 0, 0, 0, 94, 1, 0, 0, 0, 0, 35, 0, 94, 1, 0, 0, 32, 2, 0, 0, 0, 0, 35, 0,
- 99, 1, 0, 0, 34, 2, 0, 0, 0, 0, 35, 0,251, 0, 0, 0, 34, 2, 0, 0, 0, 0, 35, 0,251, 0, 0, 0, 99, 1, 0, 0,
- 0, 0, 35, 0, 34, 2, 0, 0, 35, 2, 0, 0, 0, 0, 35, 0, 34, 2, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0, 35, 2, 0, 0,
- 36, 2, 0, 0, 0, 0, 35, 0,225, 0, 0, 0, 98, 1, 0, 0, 0, 0, 35, 0,225, 0, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0,
- 98, 1, 0, 0, 36, 2, 0, 0, 0, 0, 35, 0,224, 0, 0, 0, 35, 2, 0, 0, 0, 0, 35, 0,224, 0, 0, 0,250, 0, 0, 0,
- 0, 0, 35, 0,250, 0, 0, 0, 35, 2, 0, 0, 0, 0, 35, 0, 98, 1, 0, 0, 37, 2, 0, 0, 0, 0, 35, 0,100, 1, 0, 0,
- 37, 2, 0, 0, 0, 0, 35, 0, 98, 1, 0, 0,100, 1, 0, 0, 0, 0, 35, 0, 37, 2, 0, 0, 38, 2, 0, 0, 0, 0, 35, 0,
- 37, 2, 0, 0, 39, 2, 0, 0, 0, 0, 35, 0, 38, 2, 0, 0, 39, 2, 0, 0, 0, 0, 35, 0, 99, 1, 0, 0,103, 1, 0, 0,
- 0, 0, 35, 0,103, 1, 0, 0, 39, 2, 0, 0, 0, 0, 35, 0, 99, 1, 0, 0, 39, 2, 0, 0, 0, 0, 35, 0,102, 1, 0, 0,
- 38, 2, 0, 0, 0, 0, 35, 0,101, 1, 0, 0,102, 1, 0, 0, 0, 0, 35, 0,101, 1, 0, 0, 38, 2, 0, 0, 0, 0, 35, 0,
-228, 0, 0, 0, 40, 2, 0, 0, 0, 0, 35, 0,252, 0, 0, 0, 40, 2, 0, 0, 0, 0, 35, 0,228, 0, 0, 0,252, 0, 0, 0,
- 0, 0, 35, 0, 40, 2, 0, 0, 41, 2, 0, 0, 0, 0, 35, 0, 40, 2, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0, 41, 2, 0, 0,
- 42, 2, 0, 0, 0, 0, 35, 0,229, 0, 0, 0,102, 1, 0, 0, 0, 0, 35, 0,102, 1, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0,
-229, 0, 0, 0, 42, 2, 0, 0, 0, 0, 35, 0,103, 1, 0, 0, 41, 2, 0, 0, 0, 0, 35, 0,253, 0, 0, 0,103, 1, 0, 0,
- 0, 0, 35, 0,253, 0, 0, 0, 41, 2, 0, 0, 0, 0, 35, 0,227, 0, 0, 0, 43, 2, 0, 0, 0, 0, 35, 0,101, 1, 0, 0,
- 43, 2, 0, 0, 0, 0, 35, 0,227, 0, 0, 0,101, 1, 0, 0, 0, 0, 35, 0, 43, 2, 0, 0, 44, 2, 0, 0, 0, 0, 35, 0,
- 43, 2, 0, 0, 45, 2, 0, 0, 0, 0, 35, 0, 44, 2, 0, 0, 45, 2, 0, 0, 0, 0, 35, 0,222, 0, 0, 0,226, 0, 0, 0,
- 0, 0, 35, 0,222, 0, 0, 0, 45, 2, 0, 0, 0, 0, 35, 0,226, 0, 0, 0, 45, 2, 0, 0, 0, 0, 35, 0,223, 0, 0, 0,
- 44, 2, 0, 0, 0, 0, 35, 0,223, 0, 0, 0,100, 1, 0, 0, 0, 0, 35, 0,100, 1, 0, 0, 44, 2, 0, 0, 0, 0, 35, 0,
-105, 1, 0, 0, 46, 2, 0, 0, 0, 0, 35, 0,255, 0, 0, 0, 46, 2, 0, 0, 0, 0, 35, 0,255, 0, 0, 0,105, 1, 0, 0,
- 0, 0, 35, 0, 46, 2, 0, 0, 47, 2, 0, 0, 0, 0, 35, 0, 46, 2, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0, 47, 2, 0, 0,
- 48, 2, 0, 0, 0, 0, 35, 0,233, 0, 0, 0,104, 1, 0, 0, 0, 0, 35, 0,233, 0, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0,
-104, 1, 0, 0, 48, 2, 0, 0, 0, 0, 35, 0,232, 0, 0, 0, 47, 2, 0, 0, 0, 0, 35, 0,232, 0, 0, 0,254, 0, 0, 0,
- 0, 0, 35, 0,254, 0, 0, 0, 47, 2, 0, 0, 0, 0, 35, 0,104, 1, 0, 0, 49, 2, 0, 0, 0, 0, 35, 0,106, 1, 0, 0,
- 49, 2, 0, 0, 0, 0, 35, 0,104, 1, 0, 0,106, 1, 0, 0, 0, 0, 35, 0, 49, 2, 0, 0, 50, 2, 0, 0, 0, 0, 35, 0,
- 49, 2, 0, 0, 51, 2, 0, 0, 0, 0, 35, 0, 50, 2, 0, 0, 51, 2, 0, 0, 0, 0, 35, 0,105, 1, 0, 0,109, 1, 0, 0,
- 0, 0, 35, 0,109, 1, 0, 0, 51, 2, 0, 0, 0, 0, 35, 0,105, 1, 0, 0, 51, 2, 0, 0, 0, 0, 35, 0,108, 1, 0, 0,
- 50, 2, 0, 0, 0, 0, 35, 0,107, 1, 0, 0,108, 1, 0, 0, 0, 0, 35, 0,107, 1, 0, 0, 50, 2, 0, 0, 0, 0, 35, 0,
-236, 0, 0, 0, 52, 2, 0, 0, 0, 0, 35, 0, 0, 1, 0, 0, 52, 2, 0, 0, 0, 0, 35, 0,236, 0, 0, 0, 0, 1, 0, 0,
- 0, 0, 35, 0, 52, 2, 0, 0, 53, 2, 0, 0, 0, 0, 35, 0, 52, 2, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0, 53, 2, 0, 0,
- 54, 2, 0, 0, 0, 0, 35, 0,237, 0, 0, 0,108, 1, 0, 0, 0, 0, 35, 0,108, 1, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0,
-237, 0, 0, 0, 54, 2, 0, 0, 0, 0, 35, 0,109, 1, 0, 0, 53, 2, 0, 0, 0, 0, 35, 0, 1, 1, 0, 0,109, 1, 0, 0,
- 0, 0, 35, 0, 1, 1, 0, 0, 53, 2, 0, 0, 0, 0, 35, 0,235, 0, 0, 0, 55, 2, 0, 0, 0, 0, 35, 0,107, 1, 0, 0,
- 55, 2, 0, 0, 0, 0, 35, 0,235, 0, 0, 0,107, 1, 0, 0, 0, 0, 35, 0, 55, 2, 0, 0, 56, 2, 0, 0, 0, 0, 35, 0,
- 55, 2, 0, 0, 57, 2, 0, 0, 0, 0, 35, 0, 56, 2, 0, 0, 57, 2, 0, 0, 0, 0, 35, 0,230, 0, 0, 0,234, 0, 0, 0,
- 0, 0, 35, 0,230, 0, 0, 0, 57, 2, 0, 0, 0, 0, 35, 0,234, 0, 0, 0, 57, 2, 0, 0, 0, 0, 35, 0,231, 0, 0, 0,
- 56, 2, 0, 0, 0, 0, 35, 0,231, 0, 0, 0,106, 1, 0, 0, 0, 0, 35, 0,106, 1, 0, 0, 56, 2, 0, 0, 0, 0, 35, 0,
-111, 1, 0, 0, 58, 2, 0, 0, 0, 0, 35, 0, 3, 1, 0, 0, 58, 2, 0, 0, 0, 0, 35, 0, 3, 1, 0, 0,111, 1, 0, 0,
- 0, 0, 35, 0, 58, 2, 0, 0, 59, 2, 0, 0, 0, 0, 35, 0, 58, 2, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0, 59, 2, 0, 0,
- 60, 2, 0, 0, 0, 0, 35, 0,241, 0, 0, 0,110, 1, 0, 0, 0, 0, 35, 0,241, 0, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0,
-110, 1, 0, 0, 60, 2, 0, 0, 0, 0, 35, 0,240, 0, 0, 0, 59, 2, 0, 0, 0, 0, 35, 0,240, 0, 0, 0, 2, 1, 0, 0,
- 0, 0, 35, 0, 2, 1, 0, 0, 59, 2, 0, 0, 0, 0, 35, 0,110, 1, 0, 0, 61, 2, 0, 0, 0, 0, 35, 0,113, 1, 0, 0,
- 61, 2, 0, 0, 0, 0, 35, 0,110, 1, 0, 0,113, 1, 0, 0, 0, 0, 35, 0, 61, 2, 0, 0, 62, 2, 0, 0, 0, 0, 35, 0,
- 61, 2, 0, 0, 63, 2, 0, 0, 0, 0, 35, 0, 62, 2, 0, 0, 63, 2, 0, 0, 0, 0, 35, 0,111, 1, 0, 0,115, 1, 0, 0,
- 0, 0, 35, 0,115, 1, 0, 0, 63, 2, 0, 0, 0, 0, 35, 0,111, 1, 0, 0, 63, 2, 0, 0, 0, 0, 35, 0,114, 1, 0, 0,
- 62, 2, 0, 0, 0, 0, 35, 0,112, 1, 0, 0,114, 1, 0, 0, 0, 0, 35, 0,112, 1, 0, 0, 62, 2, 0, 0, 0, 0, 35, 0,
-204, 0, 0, 0, 64, 2, 0, 0, 0, 0, 35, 0, 4, 1, 0, 0, 64, 2, 0, 0, 0, 0, 35, 0,204, 0, 0, 0, 4, 1, 0, 0,
- 0, 0, 35, 0, 64, 2, 0, 0, 65, 2, 0, 0, 0, 0, 35, 0, 64, 2, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0, 65, 2, 0, 0,
- 66, 2, 0, 0, 0, 0, 35, 0,205, 0, 0, 0,114, 1, 0, 0, 0, 0, 35, 0,114, 1, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0,
-205, 0, 0, 0, 66, 2, 0, 0, 0, 0, 35, 0,115, 1, 0, 0, 65, 2, 0, 0, 0, 0, 35, 0, 5, 1, 0, 0,115, 1, 0, 0,
- 0, 0, 35, 0, 5, 1, 0, 0, 65, 2, 0, 0, 0, 0, 35, 0,203, 0, 0, 0, 67, 2, 0, 0, 0, 0, 35, 0,112, 1, 0, 0,
- 67, 2, 0, 0, 0, 0, 35, 0,203, 0, 0, 0,112, 1, 0, 0, 0, 0, 35, 0, 67, 2, 0, 0, 68, 2, 0, 0, 0, 0, 35, 0,
- 67, 2, 0, 0, 69, 2, 0, 0, 0, 0, 35, 0, 68, 2, 0, 0, 69, 2, 0, 0, 0, 0, 35, 0,202, 0, 0, 0,238, 0, 0, 0,
- 0, 0, 35, 0,238, 0, 0, 0, 69, 2, 0, 0, 0, 0, 35, 0,202, 0, 0, 0, 69, 2, 0, 0, 0, 0, 35, 0,239, 0, 0, 0,
- 68, 2, 0, 0, 0, 0, 35, 0,239, 0, 0, 0,113, 1, 0, 0, 0, 0, 35, 0,113, 1, 0, 0, 68, 2, 0, 0, 0, 0, 35, 0,
-117, 1, 0, 0, 70, 2, 0, 0, 0, 0, 35, 0, 11, 1, 0, 0,117, 1, 0, 0, 0, 0, 35, 0, 11, 1, 0, 0, 70, 2, 0, 0,
- 0, 0, 35, 0, 70, 2, 0, 0, 71, 2, 0, 0, 0, 0, 35, 0, 71, 2, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0, 70, 2, 0, 0,
- 72, 2, 0, 0, 0, 0, 35, 0,243, 0, 0, 0,116, 1, 0, 0, 0, 0, 35, 0,116, 1, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0,
-243, 0, 0, 0, 72, 2, 0, 0, 0, 0, 35, 0,242, 0, 0, 0, 71, 2, 0, 0, 0, 0, 35, 0, 10, 1, 0, 0, 71, 2, 0, 0,
- 0, 0, 35, 0,242, 0, 0, 0, 10, 1, 0, 0, 0, 0, 35, 0,116, 1, 0, 0, 73, 2, 0, 0, 0, 0, 35, 0,116, 1, 0, 0,
-118, 1, 0, 0, 0, 0, 35, 0,118, 1, 0, 0, 73, 2, 0, 0, 0, 0, 35, 0, 73, 2, 0, 0, 74, 2, 0, 0, 0, 0, 35, 0,
- 74, 2, 0, 0, 75, 2, 0, 0, 0, 0, 35, 0, 73, 2, 0, 0, 75, 2, 0, 0, 0, 0, 35, 0,117, 1, 0, 0,121, 1, 0, 0,
- 0, 0, 35, 0,117, 1, 0, 0, 75, 2, 0, 0, 0, 0, 35, 0,121, 1, 0, 0, 75, 2, 0, 0, 0, 0, 35, 0,120, 1, 0, 0,
- 74, 2, 0, 0, 0, 0, 35, 0,119, 1, 0, 0, 74, 2, 0, 0, 0, 0, 35, 0,119, 1, 0, 0,120, 1, 0, 0, 0, 0, 35, 0,
- 8, 1, 0, 0, 76, 2, 0, 0, 0, 0, 35, 0, 8, 1, 0, 0, 12, 1, 0, 0, 0, 0, 35, 0, 12, 1, 0, 0, 76, 2, 0, 0,
- 0, 0, 35, 0, 76, 2, 0, 0, 77, 2, 0, 0, 0, 0, 35, 0, 77, 2, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0, 76, 2, 0, 0,
- 78, 2, 0, 0, 0, 0, 35, 0, 9, 1, 0, 0,120, 1, 0, 0, 0, 0, 35, 0, 9, 1, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0,
-120, 1, 0, 0, 78, 2, 0, 0, 0, 0, 35, 0,121, 1, 0, 0, 77, 2, 0, 0, 0, 0, 35, 0, 13, 1, 0, 0, 77, 2, 0, 0,
- 0, 0, 35, 0, 13, 1, 0, 0,121, 1, 0, 0, 0, 0, 35, 0, 7, 1, 0, 0, 79, 2, 0, 0, 0, 0, 35, 0, 7, 1, 0, 0,
-119, 1, 0, 0, 0, 0, 35, 0,119, 1, 0, 0, 79, 2, 0, 0, 0, 0, 35, 0, 79, 2, 0, 0, 80, 2, 0, 0, 0, 0, 35, 0,
- 80, 2, 0, 0, 81, 2, 0, 0, 0, 0, 35, 0, 79, 2, 0, 0, 81, 2, 0, 0, 0, 0, 35, 0,244, 0, 0, 0, 6, 1, 0, 0,
- 0, 0, 35, 0, 6, 1, 0, 0, 81, 2, 0, 0, 0, 0, 35, 0,244, 0, 0, 0, 81, 2, 0, 0, 0, 0, 35, 0,245, 0, 0, 0,
- 80, 2, 0, 0, 0, 0, 35, 0,118, 1, 0, 0, 80, 2, 0, 0, 0, 0, 35, 0,245, 0, 0, 0,118, 1, 0, 0, 0, 0, 35, 0,
-123, 1, 0, 0, 82, 2, 0, 0, 0, 0, 35, 0, 15, 1, 0, 0,123, 1, 0, 0, 0, 0, 35, 0, 15, 1, 0, 0, 82, 2, 0, 0,
- 0, 0, 35, 0, 82, 2, 0, 0, 83, 2, 0, 0, 0, 0, 35, 0, 83, 2, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0, 82, 2, 0, 0,
- 84, 2, 0, 0, 0, 0, 35, 0,249, 0, 0, 0,122, 1, 0, 0, 0, 0, 35, 0,122, 1, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0,
-249, 0, 0, 0, 84, 2, 0, 0, 0, 0, 35, 0,248, 0, 0, 0, 83, 2, 0, 0, 0, 0, 35, 0, 14, 1, 0, 0, 83, 2, 0, 0,
- 0, 0, 35, 0,248, 0, 0, 0, 14, 1, 0, 0, 0, 0, 35, 0,122, 1, 0, 0, 85, 2, 0, 0, 0, 0, 35, 0,122, 1, 0, 0,
-124, 1, 0, 0, 0, 0, 35, 0,124, 1, 0, 0, 85, 2, 0, 0, 0, 0, 35, 0, 85, 2, 0, 0, 86, 2, 0, 0, 0, 0, 35, 0,
- 86, 2, 0, 0, 87, 2, 0, 0, 0, 0, 35, 0, 85, 2, 0, 0, 87, 2, 0, 0, 0, 0, 35, 0,123, 1, 0, 0,127, 1, 0, 0,
- 0, 0, 35, 0,123, 1, 0, 0, 87, 2, 0, 0, 0, 0, 35, 0,127, 1, 0, 0, 87, 2, 0, 0, 0, 0, 35, 0,126, 1, 0, 0,
- 86, 2, 0, 0, 0, 0, 35, 0,125, 1, 0, 0, 86, 2, 0, 0, 0, 0, 35, 0,125, 1, 0, 0,126, 1, 0, 0, 0, 0, 35, 0,
- 12, 1, 0, 0, 88, 2, 0, 0, 0, 0, 35, 0, 12, 1, 0, 0, 16, 1, 0, 0, 0, 0, 35, 0, 16, 1, 0, 0, 88, 2, 0, 0,
- 0, 0, 35, 0, 88, 2, 0, 0, 89, 2, 0, 0, 0, 0, 35, 0, 89, 2, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0, 88, 2, 0, 0,
- 90, 2, 0, 0, 0, 0, 35, 0, 13, 1, 0, 0,126, 1, 0, 0, 0, 0, 35, 0, 13, 1, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0,
-126, 1, 0, 0, 90, 2, 0, 0, 0, 0, 35, 0,127, 1, 0, 0, 89, 2, 0, 0, 0, 0, 35, 0, 17, 1, 0, 0, 89, 2, 0, 0,
- 0, 0, 35, 0, 17, 1, 0, 0,127, 1, 0, 0, 0, 0, 35, 0, 11, 1, 0, 0, 91, 2, 0, 0, 0, 0, 35, 0, 11, 1, 0, 0,
-125, 1, 0, 0, 0, 0, 35, 0,125, 1, 0, 0, 91, 2, 0, 0, 0, 0, 35, 0, 91, 2, 0, 0, 92, 2, 0, 0, 0, 0, 35, 0,
- 92, 2, 0, 0, 93, 2, 0, 0, 0, 0, 35, 0, 91, 2, 0, 0, 93, 2, 0, 0, 0, 0, 35, 0,246, 0, 0, 0, 10, 1, 0, 0,
- 0, 0, 35, 0, 10, 1, 0, 0, 93, 2, 0, 0, 0, 0, 35, 0,246, 0, 0, 0, 93, 2, 0, 0, 0, 0, 35, 0,247, 0, 0, 0,
- 92, 2, 0, 0, 0, 0, 35, 0,124, 1, 0, 0, 92, 2, 0, 0, 0, 0, 35, 0,247, 0, 0, 0,124, 1, 0, 0, 0, 0, 35, 0,
-129, 1, 0, 0, 94, 2, 0, 0, 0, 0, 35, 0, 19, 1, 0, 0,129, 1, 0, 0, 0, 0, 35, 0, 19, 1, 0, 0, 94, 2, 0, 0,
- 0, 0, 35, 0, 94, 2, 0, 0, 95, 2, 0, 0, 0, 0, 35, 0, 95, 2, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0, 94, 2, 0, 0,
- 96, 2, 0, 0, 0, 0, 35, 0,253, 0, 0, 0,128, 1, 0, 0, 0, 0, 35, 0,128, 1, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0,
-253, 0, 0, 0, 96, 2, 0, 0, 0, 0, 35, 0,252, 0, 0, 0, 95, 2, 0, 0, 0, 0, 35, 0, 18, 1, 0, 0, 95, 2, 0, 0,
- 0, 0, 35, 0,252, 0, 0, 0, 18, 1, 0, 0, 0, 0, 35, 0,128, 1, 0, 0, 97, 2, 0, 0, 0, 0, 35, 0,128, 1, 0, 0,
-130, 1, 0, 0, 0, 0, 35, 0,130, 1, 0, 0, 97, 2, 0, 0, 0, 0, 35, 0, 97, 2, 0, 0, 98, 2, 0, 0, 0, 0, 35, 0,
- 98, 2, 0, 0, 99, 2, 0, 0, 0, 0, 35, 0, 97, 2, 0, 0, 99, 2, 0, 0, 0, 0, 35, 0,129, 1, 0, 0,133, 1, 0, 0,
- 0, 0, 35, 0,129, 1, 0, 0, 99, 2, 0, 0, 0, 0, 35, 0,133, 1, 0, 0, 99, 2, 0, 0, 0, 0, 35, 0,132, 1, 0, 0,
- 98, 2, 0, 0, 0, 0, 35, 0,131, 1, 0, 0, 98, 2, 0, 0, 0, 0, 35, 0,131, 1, 0, 0,132, 1, 0, 0, 0, 0, 35, 0,
- 16, 1, 0, 0,100, 2, 0, 0, 0, 0, 35, 0, 16, 1, 0, 0, 20, 1, 0, 0, 0, 0, 35, 0, 20, 1, 0, 0,100, 2, 0, 0,
- 0, 0, 35, 0,100, 2, 0, 0,101, 2, 0, 0, 0, 0, 35, 0,101, 2, 0, 0,102, 2, 0, 0, 0, 0, 35, 0,100, 2, 0, 0,
-102, 2, 0, 0, 0, 0, 35, 0, 17, 1, 0, 0,132, 1, 0, 0, 0, 0, 35, 0, 17, 1, 0, 0,102, 2, 0, 0, 0, 0, 35, 0,
-132, 1, 0, 0,102, 2, 0, 0, 0, 0, 35, 0,133, 1, 0, 0,101, 2, 0, 0, 0, 0, 35, 0, 21, 1, 0, 0,101, 2, 0, 0,
- 0, 0, 35, 0, 21, 1, 0, 0,133, 1, 0, 0, 0, 0, 35, 0, 15, 1, 0, 0,103, 2, 0, 0, 0, 0, 35, 0, 15, 1, 0, 0,
-131, 1, 0, 0, 0, 0, 35, 0,131, 1, 0, 0,103, 2, 0, 0, 0, 0, 35, 0,103, 2, 0, 0,104, 2, 0, 0, 0, 0, 35, 0,
-104, 2, 0, 0,105, 2, 0, 0, 0, 0, 35, 0,103, 2, 0, 0,105, 2, 0, 0, 0, 0, 35, 0,250, 0, 0, 0, 14, 1, 0, 0,
- 0, 0, 35, 0, 14, 1, 0, 0,105, 2, 0, 0, 0, 0, 35, 0,250, 0, 0, 0,105, 2, 0, 0, 0, 0, 35, 0,251, 0, 0, 0,
-104, 2, 0, 0, 0, 0, 35, 0,130, 1, 0, 0,104, 2, 0, 0, 0, 0, 35, 0,251, 0, 0, 0,130, 1, 0, 0, 0, 0, 35, 0,
-135, 1, 0, 0,106, 2, 0, 0, 0, 0, 35, 0, 23, 1, 0, 0,135, 1, 0, 0, 0, 0, 35, 0, 23, 1, 0, 0,106, 2, 0, 0,
- 0, 0, 35, 0,106, 2, 0, 0,107, 2, 0, 0, 0, 0, 35, 0,107, 2, 0, 0,108, 2, 0, 0, 0, 0, 35, 0,106, 2, 0, 0,
-108, 2, 0, 0, 0, 0, 35, 0, 1, 1, 0, 0,134, 1, 0, 0, 0, 0, 35, 0,134, 1, 0, 0,108, 2, 0, 0, 0, 0, 35, 0,
- 1, 1, 0, 0,108, 2, 0, 0, 0, 0, 35, 0, 0, 1, 0, 0,107, 2, 0, 0, 0, 0, 35, 0, 22, 1, 0, 0,107, 2, 0, 0,
- 0, 0, 35, 0, 0, 1, 0, 0, 22, 1, 0, 0, 0, 0, 35, 0,134, 1, 0, 0,109, 2, 0, 0, 0, 0, 35, 0,134, 1, 0, 0,
-136, 1, 0, 0, 0, 0, 35, 0,136, 1, 0, 0,109, 2, 0, 0, 0, 0, 35, 0,109, 2, 0, 0,110, 2, 0, 0, 0, 0, 35, 0,
-110, 2, 0, 0,111, 2, 0, 0, 0, 0, 35, 0,109, 2, 0, 0,111, 2, 0, 0, 0, 0, 35, 0,135, 1, 0, 0,139, 1, 0, 0,
- 0, 0, 35, 0,135, 1, 0, 0,111, 2, 0, 0, 0, 0, 35, 0,139, 1, 0, 0,111, 2, 0, 0, 0, 0, 35, 0,138, 1, 0, 0,
-110, 2, 0, 0, 0, 0, 35, 0,137, 1, 0, 0,110, 2, 0, 0, 0, 0, 35, 0,137, 1, 0, 0,138, 1, 0, 0, 0, 0, 35, 0,
- 20, 1, 0, 0,112, 2, 0, 0, 0, 0, 35, 0, 20, 1, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0, 24, 1, 0, 0,112, 2, 0, 0,
- 0, 0, 35, 0,112, 2, 0, 0,113, 2, 0, 0, 0, 0, 35, 0,113, 2, 0, 0,114, 2, 0, 0, 0, 0, 35, 0,112, 2, 0, 0,
-114, 2, 0, 0, 0, 0, 35, 0, 21, 1, 0, 0,138, 1, 0, 0, 0, 0, 35, 0, 21, 1, 0, 0,114, 2, 0, 0, 0, 0, 35, 0,
-138, 1, 0, 0,114, 2, 0, 0, 0, 0, 35, 0,139, 1, 0, 0,113, 2, 0, 0, 0, 0, 35, 0, 25, 1, 0, 0,113, 2, 0, 0,
- 0, 0, 35, 0, 25, 1, 0, 0,139, 1, 0, 0, 0, 0, 35, 0, 19, 1, 0, 0,115, 2, 0, 0, 0, 0, 35, 0, 19, 1, 0, 0,
-137, 1, 0, 0, 0, 0, 35, 0,137, 1, 0, 0,115, 2, 0, 0, 0, 0, 35, 0,115, 2, 0, 0,116, 2, 0, 0, 0, 0, 35, 0,
-116, 2, 0, 0,117, 2, 0, 0, 0, 0, 35, 0,115, 2, 0, 0,117, 2, 0, 0, 0, 0, 35, 0,254, 0, 0, 0, 18, 1, 0, 0,
- 0, 0, 35, 0, 18, 1, 0, 0,117, 2, 0, 0, 0, 0, 35, 0,254, 0, 0, 0,117, 2, 0, 0, 0, 0, 35, 0,255, 0, 0, 0,
-116, 2, 0, 0, 0, 0, 35, 0,136, 1, 0, 0,116, 2, 0, 0, 0, 0, 35, 0,255, 0, 0, 0,136, 1, 0, 0, 0, 0, 35, 0,
-141, 1, 0, 0,118, 2, 0, 0, 0, 0, 35, 0, 7, 1, 0, 0,141, 1, 0, 0, 0, 0, 35, 0, 7, 1, 0, 0,118, 2, 0, 0,
- 0, 0, 35, 0,118, 2, 0, 0,119, 2, 0, 0, 0, 0, 35, 0,119, 2, 0, 0,120, 2, 0, 0, 0, 0, 35, 0,118, 2, 0, 0,
-120, 2, 0, 0, 0, 0, 35, 0, 5, 1, 0, 0,140, 1, 0, 0, 0, 0, 35, 0,140, 1, 0, 0,120, 2, 0, 0, 0, 0, 35, 0,
- 5, 1, 0, 0,120, 2, 0, 0, 0, 0, 35, 0, 4, 1, 0, 0,119, 2, 0, 0, 0, 0, 35, 0, 6, 1, 0, 0,119, 2, 0, 0,
- 0, 0, 35, 0, 4, 1, 0, 0, 6, 1, 0, 0, 0, 0, 35, 0,140, 1, 0, 0,121, 2, 0, 0, 0, 0, 35, 0,140, 1, 0, 0,
-142, 1, 0, 0, 0, 0, 35, 0,142, 1, 0, 0,121, 2, 0, 0, 0, 0, 35, 0,121, 2, 0, 0,122, 2, 0, 0, 0, 0, 35, 0,
-122, 2, 0, 0,123, 2, 0, 0, 0, 0, 35, 0,121, 2, 0, 0,123, 2, 0, 0, 0, 0, 35, 0,141, 1, 0, 0,144, 1, 0, 0,
- 0, 0, 35, 0,141, 1, 0, 0,123, 2, 0, 0, 0, 0, 35, 0,144, 1, 0, 0,123, 2, 0, 0, 0, 0, 35, 0,145, 1, 0, 0,
-122, 2, 0, 0, 0, 0, 35, 0,143, 1, 0, 0,122, 2, 0, 0, 0, 0, 35, 0,143, 1, 0, 0,145, 1, 0, 0, 0, 0, 35, 0,
- 24, 1, 0, 0,124, 2, 0, 0, 0, 0, 35, 0, 8, 1, 0, 0, 24, 1, 0, 0, 0, 0, 35, 0, 8, 1, 0, 0,124, 2, 0, 0,
- 0, 0, 35, 0,124, 2, 0, 0,125, 2, 0, 0, 0, 0, 35, 0,125, 2, 0, 0,126, 2, 0, 0, 0, 0, 35, 0,124, 2, 0, 0,
-126, 2, 0, 0, 0, 0, 35, 0, 25, 1, 0, 0,145, 1, 0, 0, 0, 0, 35, 0, 25, 1, 0, 0,126, 2, 0, 0, 0, 0, 35, 0,
-145, 1, 0, 0,126, 2, 0, 0, 0, 0, 35, 0,144, 1, 0, 0,125, 2, 0, 0, 0, 0, 35, 0, 9, 1, 0, 0,125, 2, 0, 0,
- 0, 0, 35, 0, 9, 1, 0, 0,144, 1, 0, 0, 0, 0, 35, 0, 23, 1, 0, 0,127, 2, 0, 0, 0, 0, 35, 0, 23, 1, 0, 0,
-143, 1, 0, 0, 0, 0, 35, 0,143, 1, 0, 0,127, 2, 0, 0, 0, 0, 35, 0,127, 2, 0, 0,128, 2, 0, 0, 0, 0, 35, 0,
-128, 2, 0, 0,129, 2, 0, 0, 0, 0, 35, 0,127, 2, 0, 0,129, 2, 0, 0, 0, 0, 35, 0, 2, 1, 0, 0, 22, 1, 0, 0,
- 0, 0, 35, 0, 22, 1, 0, 0,129, 2, 0, 0, 0, 0, 35, 0, 2, 1, 0, 0,129, 2, 0, 0, 0, 0, 35, 0, 3, 1, 0, 0,
-128, 2, 0, 0, 0, 0, 35, 0,142, 1, 0, 0,128, 2, 0, 0, 0, 0, 35, 0, 3, 1, 0, 0,142, 1, 0, 0, 0, 0, 35, 0,
- 68, 65, 84, 65, 8, 2, 0, 0,152, 37,196, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 97, 99,
-101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,138,200, 4, 0, 0, 0, 0,
- 17, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 67,111,108, 0, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-184,198,195, 4, 0, 0, 0, 0, 26, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40,194,199, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 0,180, 0, 0,200,138,200, 4, 0, 0, 0, 0, 61, 0, 0, 0, 0, 15, 0, 0,166,222,110, 63, 9,205, 55, 63,
- 0, 0, 0, 0,212,132,105, 63,201,236, 65, 63, 0, 0, 0, 0,218,153,103, 63,119,155, 54, 63, 0, 0, 0, 0,218,153,103, 63,
-119,155, 54, 63, 0, 0, 0, 0,118,148,108, 63,211,160, 44, 63, 0, 0, 0, 0,166,222,110, 63, 9,205, 55, 63, 0, 0, 0, 0,
- 36, 51,115, 63, 36, 28, 45, 63, 0, 0, 0, 0,166,222,110, 63, 9,205, 55, 63, 0, 0, 0, 0,118,148,108, 63,211,160, 44, 63,
- 0, 0, 0, 0,118,148,108, 63,211,160, 44, 63, 0, 0, 0, 0,218,153,103, 63,119,155, 54, 63, 0, 0, 0, 0, 87, 17,102, 63,
-229, 52, 43, 63, 0, 0, 0, 0, 56, 81, 96, 63,170, 55, 52, 63, 0, 0, 0, 0, 87, 17,102, 63,229, 52, 43, 63, 0, 0, 0, 0,
-218,153,103, 63,119,155, 54, 63, 0, 0, 0, 0,218,153,103, 63,119,155, 54, 63, 0, 0, 0, 0, 9, 75, 97, 63, 92,233, 63, 63,
- 0, 0, 0, 0, 56, 81, 96, 63,170, 55, 52, 63, 0, 0, 0, 0,138,153, 89, 63, 49, 86, 60, 63, 0, 0, 0, 0, 56, 81, 96, 63,
-170, 55, 52, 63, 0, 0, 0, 0, 9, 75, 97, 63, 92,233, 63, 63, 0, 0, 0, 0, 9, 75, 97, 63, 92,233, 63, 63, 0, 0, 0, 0,
-218,153,103, 63,119,155, 54, 63, 0, 0, 0, 0,212,132,105, 63,201,236, 65, 63, 0, 0, 0, 0,103,167, 98, 63,168, 39, 75, 63,
- 0, 0, 0, 0,138,153, 89, 63, 39,228, 82, 63, 0, 0, 0, 0,139,153, 89, 63,255,153, 71, 63, 0, 0, 0, 0,139,153, 89, 63,
-255,153, 71, 63, 0, 0, 0, 0, 9, 75, 97, 63, 92,233, 63, 63, 0, 0, 0, 0,103,167, 98, 63,168, 39, 75, 63, 0, 0, 0, 0,
-212,132,105, 63,201,236, 65, 63, 0, 0, 0, 0,103,167, 98, 63,168, 39, 75, 63, 0, 0, 0, 0, 9, 75, 97, 63, 92,233, 63, 63,
- 0, 0, 0, 0, 9, 75, 97, 63, 92,233, 63, 63, 0, 0, 0, 0,139,153, 89, 63,255,153, 71, 63, 0, 0, 0, 0,138,153, 89, 63,
- 49, 86, 60, 63, 0, 0, 0, 0, 56, 81, 96, 63,170, 55, 52, 63, 0, 0, 0, 0,138,153, 89, 63, 49, 86, 60, 63, 0, 0, 0, 0,
-139,153, 89, 63, 79, 12, 49, 63, 0, 0, 0, 0,139,153, 89, 63, 79, 12, 49, 63, 0, 0, 0, 0,205,182, 95, 63,222,228, 40, 63,
- 0, 0, 0, 0, 56, 81, 96, 63,170, 55, 52, 63, 0, 0, 0, 0, 87, 17,102, 63,229, 52, 43, 63, 0, 0, 0, 0, 56, 81, 96, 63,
-170, 55, 52, 63, 0, 0, 0, 0,205,182, 95, 63,222,228, 40, 63, 0, 0, 0, 0,205,182, 95, 63,222,228, 40, 63, 0, 0, 0, 0,
-139,153, 89, 63, 79, 12, 49, 63, 0, 0, 0, 0,139,153, 89, 63, 45,200, 37, 63, 0, 0, 0, 0,103,167, 98, 63,168, 39, 75, 63,
- 0, 0, 0, 0,212,132,105, 63,201,236, 65, 63, 0, 0, 0, 0,168, 83,109, 63,207, 83, 78, 63, 0, 0, 0, 0,168, 83,109, 63,
-207, 83, 78, 63, 0, 0, 0, 0,135, 85,101, 63,148, 64, 88, 63, 0, 0, 0, 0,103,167, 98, 63,168, 39, 75, 63, 0, 0, 0, 0,
-138,153, 89, 63, 39,228, 82, 63, 0, 0, 0, 0,103,167, 98, 63,168, 39, 75, 63, 0, 0, 0, 0,135, 85,101, 63,148, 64, 88, 63,
- 0, 0, 0, 0,135, 85,101, 63,148, 64, 88, 63, 0, 0, 0, 0,168, 83,109, 63,207, 83, 78, 63, 0, 0, 0, 0, 36, 51,115, 63,
- 22, 56, 90, 63, 0, 0, 0, 0,162, 18,121, 63,207, 83, 78, 63, 0, 0, 0, 0, 36, 51,115, 63, 22, 56, 90, 63, 0, 0, 0, 0,
-168, 83,109, 63,207, 83, 78, 63, 0, 0, 0, 0,168, 83,109, 63,207, 83, 78, 63, 0, 0, 0, 0, 36, 51,115, 63,115, 23, 67, 63,
- 0, 0, 0, 0,162, 18,121, 63,207, 83, 78, 63, 0, 0, 0, 0,116,225,124, 63,202,236, 65, 63, 0, 0, 0, 0,162, 18,121, 63,
-207, 83, 78, 63, 0, 0, 0, 0, 36, 51,115, 63,115, 23, 67, 63, 0, 0, 0, 0, 36, 51,115, 63,115, 23, 67, 63, 0, 0, 0, 0,
-168, 83,109, 63,207, 83, 78, 63, 0, 0, 0, 0,212,132,105, 63,201,236, 65, 63, 0, 0, 0, 0,166,222,110, 63, 9,205, 55, 63,
- 0, 0, 0, 0, 36, 51,115, 63, 36, 28, 45, 63, 0, 0, 0, 0,163,135,119, 63, 11,205, 55, 63, 0, 0, 0, 0,163,135,119, 63,
- 11,205, 55, 63, 0, 0, 0, 0, 36, 51,115, 63,115, 23, 67, 63, 0, 0, 0, 0,166,222,110, 63, 9,205, 55, 63, 0, 0, 0, 0,
-212,132,105, 63,201,236, 65, 63, 0, 0, 0, 0,166,222,110, 63, 9,205, 55, 63, 0, 0, 0, 0, 36, 51,115, 63,115, 23, 67, 63,
- 0, 0, 0, 0, 36, 51,115, 63,115, 23, 67, 63, 0, 0, 0, 0,163,135,119, 63, 11,205, 55, 63, 0, 0, 0, 0,116,225,124, 63,
-202,236, 65, 63, 0, 0, 0, 0,162, 18,121, 63,207, 83, 78, 63, 0, 0, 0, 0,116,225,124, 63,202,236, 65, 63, 0, 0, 0, 0,
-113,223,129, 63,170, 39, 75, 63, 0, 0, 0, 0,113,223,129, 63,170, 39, 75, 63, 0, 0, 0, 0, 98,136,128, 63,148, 64, 88, 63,
- 0, 0, 0, 0,162, 18,121, 63,207, 83, 78, 63, 0, 0, 0, 0, 36, 51,115, 63, 22, 56, 90, 63, 0, 0, 0, 0,162, 18,121, 63,
-207, 83, 78, 63, 0, 0, 0, 0, 98,136,128, 63,148, 64, 88, 63, 0, 0, 0, 0, 95, 98,136, 59,148, 64, 88, 63, 0, 0, 0, 0,
-160,184,111, 60,170, 39, 75, 63, 0, 0, 0, 0,243,203, 76, 61, 41,228, 82, 63, 0, 0, 0, 0,243,203, 76, 61, 82, 12, 49, 63,
- 0, 0, 0, 0,246,203, 76, 61, 53, 86, 60, 63, 0, 0, 0, 0, 31,162,194, 60,172, 55, 52, 63, 0, 0, 0, 0, 31,162,194, 60,
-172, 55, 52, 63, 0, 0, 0, 0,111,239,213, 60,223,228, 40, 63, 0, 0, 0, 0,243,203, 76, 61, 82, 12, 49, 63, 0, 0, 0, 0,
-246,203, 76, 61, 48,200, 37, 63, 0, 0, 0, 0,243,203, 76, 61, 82, 12, 49, 63, 0, 0, 0, 0,111,239,213, 60,223,228, 40, 63,
- 0, 0, 0, 0,111,239,213, 60,223,228, 40, 63, 0, 0, 0, 0, 31,162,194, 60,172, 55, 52, 63, 0, 0, 0, 0,120,226,169, 58,
-230, 52, 43, 63, 0, 0, 0, 0,111,204,126, 63,121,155, 54, 63, 0, 0, 0, 0,121, 42,128, 63,230, 52, 43, 63, 0, 0, 0, 0,
-136, 10,131, 63,172, 55, 52, 63, 0, 0, 0, 0,136, 10,131, 63,172, 55, 52, 63, 0, 0, 0, 0,160,141,130, 63, 95,233, 63, 63,
- 0, 0, 0, 0,111,204,126, 63,121,155, 54, 63, 0, 0, 0, 0,116,225,124, 63,202,236, 65, 63, 0, 0, 0, 0,111,204,126, 63,
-121,155, 54, 63, 0, 0, 0, 0,160,141,130, 63, 95,233, 63, 63, 0, 0, 0, 0, 11,104,163, 60, 95,233, 63, 63, 0, 0, 0, 0,
- 31,162,194, 60,172, 55, 52, 63, 0, 0, 0, 0,246,203, 76, 61, 53, 86, 60, 63, 0, 0, 0, 0,244,203, 76, 61, 2,154, 71, 63,
- 0, 0, 0, 0,243,203, 76, 61, 41,228, 82, 63, 0, 0, 0, 0,160,184,111, 60,170, 39, 75, 63, 0, 0, 0, 0,160,184,111, 60,
-170, 39, 75, 63, 0, 0, 0, 0, 11,104,163, 60, 95,233, 63, 63, 0, 0, 0, 0,244,203, 76, 61, 2,154, 71, 63, 0, 0, 0, 0,
-246,203, 76, 61, 53, 86, 60, 63, 0, 0, 0, 0,244,203, 76, 61, 2,154, 71, 63, 0, 0, 0, 0, 11,104,163, 60, 95,233, 63, 63,
- 0, 0, 0, 0,160,141,130, 63, 95,233, 63, 63, 0, 0, 0, 0,113,223,129, 63,170, 39, 75, 63, 0, 0, 0, 0,116,225,124, 63,
-202,236, 65, 63, 0, 0, 0, 0,111,204,126, 63,121,155, 54, 63, 0, 0, 0, 0,116,225,124, 63,202,236, 65, 63, 0, 0, 0, 0,
-163,135,119, 63, 11,205, 55, 63, 0, 0, 0, 0,163,135,119, 63, 11,205, 55, 63, 0, 0, 0, 0,210,209,121, 63,212,160, 44, 63,
- 0, 0, 0, 0,111,204,126, 63,121,155, 54, 63, 0, 0, 0, 0,121, 42,128, 63,230, 52, 43, 63, 0, 0, 0, 0,111,204,126, 63,
-121,155, 54, 63, 0, 0, 0, 0,210,209,121, 63,212,160, 44, 63, 0, 0, 0, 0,210,209,121, 63,212,160, 44, 63, 0, 0, 0, 0,
-163,135,119, 63, 11,205, 55, 63, 0, 0, 0, 0, 36, 51,115, 63, 36, 28, 45, 63, 0, 0, 0, 0, 95,102,134, 63, 79, 46, 94, 63,
- 0, 0, 0, 0, 95,102,134, 63, 22,114,105, 63, 0, 0, 0, 0, 52,205,124, 63, 58, 26, 99, 63, 0, 0, 0, 0, 52,205,124, 63,
- 58, 26, 99, 63, 0, 0, 0, 0, 98,136,128, 63,148, 64, 88, 63, 0, 0, 0, 0, 95,102,134, 63, 79, 46, 94, 63, 0, 0, 0, 0,
-243,203, 76, 61, 41,228, 82, 63, 0, 0, 0, 0,234,203, 76, 61, 79, 46, 94, 63, 0, 0, 0, 0, 95, 98,136, 59,148, 64, 88, 63,
- 0, 0, 0, 0, 98,136,128, 63,148, 64, 88, 63, 0, 0, 0, 0, 52,205,124, 63, 58, 26, 99, 63, 0, 0, 0, 0, 36, 51,115, 63,
- 22, 56, 90, 63, 0, 0, 0, 0, 21,153,105, 63, 58, 26, 99, 63, 0, 0, 0, 0, 36, 51,115, 63, 22, 56, 90, 63, 0, 0, 0, 0,
- 52,205,124, 63, 58, 26, 99, 63, 0, 0, 0, 0, 52,205,124, 63, 58, 26, 99, 63, 0, 0, 0, 0, 32, 51,115, 63,212,154,109, 63,
- 0, 0, 0, 0, 21,153,105, 63, 58, 26, 99, 63, 0, 0, 0, 0,138,153, 89, 63, 19,114,105, 63, 0, 0, 0, 0, 21,153,105, 63,
- 58, 26, 99, 63, 0, 0, 0, 0, 32, 51,115, 63,212,154,109, 63, 0, 0, 0, 0, 32, 51,115, 63,212,154,109, 63, 0, 0, 0, 0,
- 52,205,124, 63, 58, 26, 99, 63, 0, 0, 0, 0, 95,102,134, 63, 22,114,105, 63, 0, 0, 0, 0, 95,102,134, 63,242,187,116, 63,
- 0, 0, 0, 0, 3,153, 59, 63, 0, 0,128, 63, 0, 0, 0, 0,136,153, 89, 63,242,187,116, 63, 0, 0, 0, 0,136,153, 89, 63,
-242,187,116, 63, 0, 0, 0, 0, 32, 51,115, 63,212,154,109, 63, 0, 0, 0, 0, 95,102,134, 63,242,187,116, 63, 0, 0, 0, 0,
- 95,102,134, 63, 22,114,105, 63, 0, 0, 0, 0, 95,102,134, 63,242,187,116, 63, 0, 0, 0, 0, 32, 51,115, 63,212,154,109, 63,
- 0, 0, 0, 0, 32, 51,115, 63,212,154,109, 63, 0, 0, 0, 0,136,153, 89, 63,242,187,116, 63, 0, 0, 0, 0,138,153, 89, 63,
- 19,114,105, 63, 0, 0, 0, 0, 21,153,105, 63, 58, 26, 99, 63, 0, 0, 0, 0,138,153, 89, 63, 19,114,105, 63, 0, 0, 0, 0,
-138,153, 89, 63, 77, 46, 94, 63, 0, 0, 0, 0,138,153, 89, 63, 77, 46, 94, 63, 0, 0, 0, 0,135, 85,101, 63,148, 64, 88, 63,
- 0, 0, 0, 0, 21,153,105, 63, 58, 26, 99, 63, 0, 0, 0, 0, 36, 51,115, 63, 22, 56, 90, 63, 0, 0, 0, 0, 21,153,105, 63,
- 58, 26, 99, 63, 0, 0, 0, 0,135, 85,101, 63,148, 64, 88, 63, 0, 0, 0, 0,135, 85,101, 63,148, 64, 88, 63, 0, 0, 0, 0,
-138,153, 89, 63, 77, 46, 94, 63, 0, 0, 0, 0,138,153, 89, 63, 39,228, 82, 63, 0, 0, 0, 0, 67,153, 75, 63,113,155, 54, 63,
- 0, 0, 0, 0, 74,174, 73, 63,193,236, 65, 63, 0, 0, 0, 0,124, 84, 68, 63,255,204, 55, 63, 0, 0, 0, 0,124, 84, 68, 63,
-255,204, 55, 63, 0, 0, 0, 0,169,158, 70, 63,200,160, 44, 63, 0, 0, 0, 0, 67,153, 75, 63,113,155, 54, 63, 0, 0, 0, 0,
-196, 33, 77, 63,221, 52, 43, 63, 0, 0, 0, 0, 67,153, 75, 63,113,155, 54, 63, 0, 0, 0, 0,169,158, 70, 63,200,160, 44, 63,
- 0, 0, 0, 0,169,158, 70, 63,200,160, 44, 63, 0, 0, 0, 0,124, 84, 68, 63,255,204, 55, 63, 0, 0, 0, 0, 0, 0, 64, 63,
- 24, 28, 45, 63, 0, 0, 0, 0, 67,153, 75, 63,113,155, 54, 63, 0, 0, 0, 0,196, 33, 77, 63,221, 52, 43, 63, 0, 0, 0, 0,
-225,225, 82, 63,165, 55, 52, 63, 0, 0, 0, 0,225,225, 82, 63,165, 55, 52, 63, 0, 0, 0, 0, 16,232, 81, 63, 89,233, 63, 63,
- 0, 0, 0, 0, 67,153, 75, 63,113,155, 54, 63, 0, 0, 0, 0, 74,174, 73, 63,193,236, 65, 63, 0, 0, 0, 0, 67,153, 75, 63,
-113,155, 54, 63, 0, 0, 0, 0, 16,232, 81, 63, 89,233, 63, 63, 0, 0, 0, 0, 16,232, 81, 63, 89,233, 63, 63, 0, 0, 0, 0,
-225,225, 82, 63,165, 55, 52, 63, 0, 0, 0, 0,138,153, 89, 63, 49, 86, 60, 63, 0, 0, 0, 0,139,153, 89, 63,255,153, 71, 63,
- 0, 0, 0, 0,138,153, 89, 63, 39,228, 82, 63, 0, 0, 0, 0,179,139, 80, 63,164, 39, 75, 63, 0, 0, 0, 0,179,139, 80, 63,
-164, 39, 75, 63, 0, 0, 0, 0, 16,232, 81, 63, 89,233, 63, 63, 0, 0, 0, 0,139,153, 89, 63,255,153, 71, 63, 0, 0, 0, 0,
-138,153, 89, 63, 49, 86, 60, 63, 0, 0, 0, 0,139,153, 89, 63,255,153, 71, 63, 0, 0, 0, 0, 16,232, 81, 63, 89,233, 63, 63,
- 0, 0, 0, 0, 16,232, 81, 63, 89,233, 63, 63, 0, 0, 0, 0,179,139, 80, 63,164, 39, 75, 63, 0, 0, 0, 0, 74,174, 73, 63,
-193,236, 65, 63, 0, 0, 0, 0,139,153, 89, 63, 79, 12, 49, 63, 0, 0, 0, 0,138,153, 89, 63, 49, 86, 60, 63, 0, 0, 0, 0,
-225,225, 82, 63,165, 55, 52, 63, 0, 0, 0, 0,225,225, 82, 63,165, 55, 52, 63, 0, 0, 0, 0, 75,124, 83, 63,217,228, 40, 63,
- 0, 0, 0, 0,139,153, 89, 63, 79, 12, 49, 63, 0, 0, 0, 0,139,153, 89, 63, 45,200, 37, 63, 0, 0, 0, 0,139,153, 89, 63,
- 79, 12, 49, 63, 0, 0, 0, 0, 75,124, 83, 63,217,228, 40, 63, 0, 0, 0, 0, 75,124, 83, 63,217,228, 40, 63, 0, 0, 0, 0,
-225,225, 82, 63,165, 55, 52, 63, 0, 0, 0, 0,196, 33, 77, 63,221, 52, 43, 63, 0, 0, 0, 0,120,223, 69, 63,198, 83, 78, 63,
- 0, 0, 0, 0, 74,174, 73, 63,193,236, 65, 63, 0, 0, 0, 0,179,139, 80, 63,164, 39, 75, 63, 0, 0, 0, 0,179,139, 80, 63,
-164, 39, 75, 63, 0, 0, 0, 0,148,221, 77, 63,140, 64, 88, 63, 0, 0, 0, 0,120,223, 69, 63,198, 83, 78, 63, 0, 0, 0, 0,
- 0, 0, 64, 63, 12, 56, 90, 63, 0, 0, 0, 0,120,223, 69, 63,198, 83, 78, 63, 0, 0, 0, 0,148,221, 77, 63,140, 64, 88, 63,
- 0, 0, 0, 0,148,221, 77, 63,140, 64, 88, 63, 0, 0, 0, 0,179,139, 80, 63,164, 39, 75, 63, 0, 0, 0, 0,138,153, 89, 63,
- 39,228, 82, 63, 0, 0, 0, 0,120,223, 69, 63,198, 83, 78, 63, 0, 0, 0, 0, 0, 0, 64, 63, 12, 56, 90, 63, 0, 0, 0, 0,
-136, 32, 58, 63,198, 83, 78, 63, 0, 0, 0, 0,136, 32, 58, 63,198, 83, 78, 63, 0, 0, 0, 0, 0, 0, 64, 63,106, 23, 67, 63,
- 0, 0, 0, 0,120,223, 69, 63,198, 83, 78, 63, 0, 0, 0, 0, 74,174, 73, 63,193,236, 65, 63, 0, 0, 0, 0,120,223, 69, 63,
-198, 83, 78, 63, 0, 0, 0, 0, 0, 0, 64, 63,106, 23, 67, 63, 0, 0, 0, 0, 0, 0, 64, 63,106, 23, 67, 63, 0, 0, 0, 0,
-136, 32, 58, 63,198, 83, 78, 63, 0, 0, 0, 0,182, 81, 54, 63,193,236, 65, 63, 0, 0, 0, 0,132,171, 59, 63,255,204, 55, 63,
- 0, 0, 0, 0, 0, 0, 64, 63, 24, 28, 45, 63, 0, 0, 0, 0,124, 84, 68, 63,255,204, 55, 63, 0, 0, 0, 0,124, 84, 68, 63,
-255,204, 55, 63, 0, 0, 0, 0, 0, 0, 64, 63,106, 23, 67, 63, 0, 0, 0, 0,132,171, 59, 63,255,204, 55, 63, 0, 0, 0, 0,
-182, 81, 54, 63,193,236, 65, 63, 0, 0, 0, 0,132,171, 59, 63,255,204, 55, 63, 0, 0, 0, 0, 0, 0, 64, 63,106, 23, 67, 63,
- 0, 0, 0, 0, 0, 0, 64, 63,106, 23, 67, 63, 0, 0, 0, 0,124, 84, 68, 63,255,204, 55, 63, 0, 0, 0, 0, 74,174, 73, 63,
-193,236, 65, 63, 0, 0, 0, 0, 77,116, 47, 63,164, 39, 75, 63, 0, 0, 0, 0,182, 81, 54, 63,193,236, 65, 63, 0, 0, 0, 0,
-136, 32, 58, 63,198, 83, 78, 63, 0, 0, 0, 0,136, 32, 58, 63,198, 83, 78, 63, 0, 0, 0, 0,108, 34, 50, 63,140, 64, 88, 63,
- 0, 0, 0, 0, 77,116, 47, 63,164, 39, 75, 63, 0, 0, 0, 0,118,102, 38, 63, 38,228, 82, 63, 0, 0, 0, 0, 77,116, 47, 63,
-164, 39, 75, 63, 0, 0, 0, 0,108, 34, 50, 63,140, 64, 88, 63, 0, 0, 0, 0,108, 34, 50, 63,140, 64, 88, 63, 0, 0, 0, 0,
-136, 32, 58, 63,198, 83, 78, 63, 0, 0, 0, 0, 0, 0, 64, 63, 12, 56, 90, 63, 0, 0, 0, 0, 31, 30, 45, 63,165, 55, 52, 63,
- 0, 0, 0, 0,117,102, 38, 63, 50, 86, 60, 63, 0, 0, 0, 0,117,102, 38, 63, 78, 12, 49, 63, 0, 0, 0, 0,117,102, 38, 63,
- 78, 12, 49, 63, 0, 0, 0, 0,181,131, 44, 63,216,228, 40, 63, 0, 0, 0, 0, 31, 30, 45, 63,165, 55, 52, 63, 0, 0, 0, 0,
- 60,222, 50, 63,221, 52, 43, 63, 0, 0, 0, 0, 31, 30, 45, 63,165, 55, 52, 63, 0, 0, 0, 0,181,131, 44, 63,216,228, 40, 63,
- 0, 0, 0, 0,181,131, 44, 63,216,228, 40, 63, 0, 0, 0, 0,117,102, 38, 63, 78, 12, 49, 63, 0, 0, 0, 0,117,102, 38, 63,
- 45,200, 37, 63, 0, 0, 0, 0, 31, 30, 45, 63,165, 55, 52, 63, 0, 0, 0, 0, 60,222, 50, 63,221, 52, 43, 63, 0, 0, 0, 0,
-189,102, 52, 63,113,155, 54, 63, 0, 0, 0, 0,189,102, 52, 63,113,155, 54, 63, 0, 0, 0, 0,240, 23, 46, 63, 89,233, 63, 63,
- 0, 0, 0, 0, 31, 30, 45, 63,165, 55, 52, 63, 0, 0, 0, 0,117,102, 38, 63, 50, 86, 60, 63, 0, 0, 0, 0, 31, 30, 45, 63,
-165, 55, 52, 63, 0, 0, 0, 0,240, 23, 46, 63, 89,233, 63, 63, 0, 0, 0, 0,240, 23, 46, 63, 89,233, 63, 63, 0, 0, 0, 0,
-189,102, 52, 63,113,155, 54, 63, 0, 0, 0, 0,182, 81, 54, 63,193,236, 65, 63, 0, 0, 0, 0, 77,116, 47, 63,164, 39, 75, 63,
- 0, 0, 0, 0,118,102, 38, 63, 38,228, 82, 63, 0, 0, 0, 0,117,102, 38, 63,255,153, 71, 63, 0, 0, 0, 0,117,102, 38, 63,
-255,153, 71, 63, 0, 0, 0, 0,240, 23, 46, 63, 89,233, 63, 63, 0, 0, 0, 0, 77,116, 47, 63,164, 39, 75, 63, 0, 0, 0, 0,
-182, 81, 54, 63,193,236, 65, 63, 0, 0, 0, 0, 77,116, 47, 63,164, 39, 75, 63, 0, 0, 0, 0,240, 23, 46, 63, 89,233, 63, 63,
- 0, 0, 0, 0,240, 23, 46, 63, 89,233, 63, 63, 0, 0, 0, 0,117,102, 38, 63,255,153, 71, 63, 0, 0, 0, 0,117,102, 38, 63,
- 50, 86, 60, 63, 0, 0, 0, 0,132,171, 59, 63,255,204, 55, 63, 0, 0, 0, 0,182, 81, 54, 63,193,236, 65, 63, 0, 0, 0, 0,
-189,102, 52, 63,113,155, 54, 63, 0, 0, 0, 0,189,102, 52, 63,113,155, 54, 63, 0, 0, 0, 0, 87, 97, 57, 63,200,160, 44, 63,
- 0, 0, 0, 0,132,171, 59, 63,255,204, 55, 63, 0, 0, 0, 0, 0, 0, 64, 63, 24, 28, 45, 63, 0, 0, 0, 0,132,171, 59, 63,
-255,204, 55, 63, 0, 0, 0, 0, 87, 97, 57, 63,200,160, 44, 63, 0, 0, 0, 0, 87, 97, 57, 63,200,160, 44, 63, 0, 0, 0, 0,
-189,102, 52, 63,113,155, 54, 63, 0, 0, 0, 0, 60,222, 50, 63,221, 52, 43, 63, 0, 0, 0, 0,250,101, 54, 63, 51, 26, 99, 63,
- 0, 0, 0, 0,118,102, 38, 63, 19,114,105, 63, 0, 0, 0, 0,118,102, 38, 63, 77, 46, 94, 63, 0, 0, 0, 0,118,102, 38, 63,
- 77, 46, 94, 63, 0, 0, 0, 0,108, 34, 50, 63,140, 64, 88, 63, 0, 0, 0, 0,250,101, 54, 63, 51, 26, 99, 63, 0, 0, 0, 0,
- 0, 0, 64, 63, 12, 56, 90, 63, 0, 0, 0, 0,250,101, 54, 63, 51, 26, 99, 63, 0, 0, 0, 0,108, 34, 50, 63,140, 64, 88, 63,
- 0, 0, 0, 0,108, 34, 50, 63,140, 64, 88, 63, 0, 0, 0, 0,118,102, 38, 63, 77, 46, 94, 63, 0, 0, 0, 0,118,102, 38, 63,
- 38,228, 82, 63, 0, 0, 0, 0,250,101, 54, 63, 51, 26, 99, 63, 0, 0, 0, 0, 0, 0, 64, 63, 12, 56, 90, 63, 0, 0, 0, 0,
- 6,154, 73, 63, 51, 26, 99, 63, 0, 0, 0, 0, 6,154, 73, 63, 51, 26, 99, 63, 0, 0, 0, 0, 0, 0, 64, 63,206,154,109, 63,
- 0, 0, 0, 0,250,101, 54, 63, 51, 26, 99, 63, 0, 0, 0, 0,118,102, 38, 63, 19,114,105, 63, 0, 0, 0, 0,250,101, 54, 63,
- 51, 26, 99, 63, 0, 0, 0, 0, 0, 0, 64, 63,206,154,109, 63, 0, 0, 0, 0, 0, 0, 64, 63,206,154,109, 63, 0, 0, 0, 0,
- 6,154, 73, 63, 51, 26, 99, 63, 0, 0, 0, 0,138,153, 89, 63, 19,114,105, 63, 0, 0, 0, 0,136,153, 89, 63,242,187,116, 63,
- 0, 0, 0, 0, 3,153, 59, 63, 0, 0,128, 63, 0, 0, 0, 0,120,102, 38, 63,242,187,116, 63, 0, 0, 0, 0,120,102, 38, 63,
-242,187,116, 63, 0, 0, 0, 0, 0, 0, 64, 63,206,154,109, 63, 0, 0, 0, 0,136,153, 89, 63,242,187,116, 63, 0, 0, 0, 0,
-138,153, 89, 63, 19,114,105, 63, 0, 0, 0, 0,136,153, 89, 63,242,187,116, 63, 0, 0, 0, 0, 0, 0, 64, 63,206,154,109, 63,
- 0, 0, 0, 0, 0, 0, 64, 63,206,154,109, 63, 0, 0, 0, 0,120,102, 38, 63,242,187,116, 63, 0, 0, 0, 0,118,102, 38, 63,
- 19,114,105, 63, 0, 0, 0, 0,138,153, 89, 63, 77, 46, 94, 63, 0, 0, 0, 0,138,153, 89, 63, 19,114,105, 63, 0, 0, 0, 0,
- 6,154, 73, 63, 51, 26, 99, 63, 0, 0, 0, 0, 6,154, 73, 63, 51, 26, 99, 63, 0, 0, 0, 0,148,221, 77, 63,140, 64, 88, 63,
- 0, 0, 0, 0,138,153, 89, 63, 77, 46, 94, 63, 0, 0, 0, 0,138,153, 89, 63, 39,228, 82, 63, 0, 0, 0, 0,138,153, 89, 63,
- 77, 46, 94, 63, 0, 0, 0, 0,148,221, 77, 63,140, 64, 88, 63, 0, 0, 0, 0,148,221, 77, 63,140, 64, 88, 63, 0, 0, 0, 0,
- 6,154, 73, 63, 51, 26, 99, 63, 0, 0, 0, 0, 0, 0, 64, 63, 12, 56, 90, 63, 0, 0, 0, 0,167, 71, 8, 62, 7,205, 55, 63,
- 0, 0, 0, 0,170,192,229, 61,200,236, 65, 63, 0, 0, 0, 0,203,104,214, 61,120,155, 54, 63, 0, 0, 0, 0,203,104,214, 61,
-120,155, 54, 63, 0, 0, 0, 0,201, 61,254, 61,207,160, 44, 63, 0, 0, 0, 0,167, 71, 8, 62, 7,205, 55, 63, 0, 0, 0, 0,
-173,153, 25, 62, 27, 28, 45, 63, 0, 0, 0, 0,167, 71, 8, 62, 7,205, 55, 63, 0, 0, 0, 0,201, 61,254, 61,207,160, 44, 63,
- 0, 0, 0, 0,201, 61,254, 61,207,160, 44, 63, 0, 0, 0, 0,203,104,214, 61,120,155, 54, 63, 0, 0, 0, 0,175, 36,202, 61,
-228, 52, 43, 63, 0, 0, 0, 0,145, 35,156, 61,172, 55, 52, 63, 0, 0, 0, 0,175, 36,202, 61,228, 52, 43, 63, 0, 0, 0, 0,
-203,104,214, 61,120,155, 54, 63, 0, 0, 0, 0,203,104,214, 61,120,155, 54, 63, 0, 0, 0, 0, 32,242,163, 61, 96,233, 63, 63,
- 0, 0, 0, 0,145, 35,156, 61,172, 55, 52, 63, 0, 0, 0, 0,246,203, 76, 61, 53, 86, 60, 63, 0, 0, 0, 0,145, 35,156, 61,
-172, 55, 52, 63, 0, 0, 0, 0, 32,242,163, 61, 96,233, 63, 63, 0, 0, 0, 0, 32,242,163, 61, 96,233, 63, 63, 0, 0, 0, 0,
-203,104,214, 61,120,155, 54, 63, 0, 0, 0, 0,170,192,229, 61,200,236, 65, 63, 0, 0, 0, 0, 17,213,174, 61,171, 39, 75, 63,
- 0, 0, 0, 0,243,203, 76, 61, 41,228, 82, 63, 0, 0, 0, 0,244,203, 76, 61, 2,154, 71, 63, 0, 0, 0, 0,244,203, 76, 61,
- 2,154, 71, 63, 0, 0, 0, 0, 32,242,163, 61, 96,233, 63, 63, 0, 0, 0, 0, 17,213,174, 61,171, 39, 75, 63, 0, 0, 0, 0,
-170,192,229, 61,200,236, 65, 63, 0, 0, 0, 0, 17,213,174, 61,171, 39, 75, 63, 0, 0, 0, 0, 32,242,163, 61, 96,233, 63, 63,
- 0, 0, 0, 0, 32,242,163, 61, 96,233, 63, 63, 0, 0, 0, 0,244,203, 76, 61, 2,154, 71, 63, 0, 0, 0, 0,246,203, 76, 61,
- 53, 86, 60, 63, 0, 0, 0, 0,145, 35,156, 61,172, 55, 52, 63, 0, 0, 0, 0,246,203, 76, 61, 53, 86, 60, 63, 0, 0, 0, 0,
-243,203, 76, 61, 82, 12, 49, 63, 0, 0, 0, 0,243,203, 76, 61, 82, 12, 49, 63, 0, 0, 0, 0, 53, 80,151, 61,223,228, 40, 63,
- 0, 0, 0, 0,145, 35,156, 61,172, 55, 52, 63, 0, 0, 0, 0,175, 36,202, 61,228, 52, 43, 63, 0, 0, 0, 0,145, 35,156, 61,
-172, 55, 52, 63, 0, 0, 0, 0, 53, 80,151, 61,223,228, 40, 63, 0, 0, 0, 0, 53, 80,151, 61,223,228, 40, 63, 0, 0, 0, 0,
-243,203, 76, 61, 82, 12, 49, 63, 0, 0, 0, 0,246,203, 76, 61, 48,200, 37, 63, 0, 0, 0, 0, 17,213,174, 61,171, 39, 75, 63,
- 0, 0, 0, 0,170,192,229, 61,200,236, 65, 63, 0, 0, 0, 0,169, 27, 2, 62,204, 83, 78, 63, 0, 0, 0, 0,169, 27, 2, 62,
-204, 83, 78, 63, 0, 0, 0, 0, 23, 70,196, 61,147, 64, 88, 63, 0, 0, 0, 0, 17,213,174, 61,171, 39, 75, 63, 0, 0, 0, 0,
-243,203, 76, 61, 41,228, 82, 63, 0, 0, 0, 0, 17,213,174, 61,171, 39, 75, 63, 0, 0, 0, 0, 23, 70,196, 61,147, 64, 88, 63,
- 0, 0, 0, 0, 23, 70,196, 61,147, 64, 88, 63, 0, 0, 0, 0,169, 27, 2, 62,204, 83, 78, 63, 0, 0, 0, 0,160,153, 25, 62,
- 14, 56, 90, 63, 0, 0, 0, 0,162, 23, 49, 62,195, 83, 78, 63, 0, 0, 0, 0,160,153, 25, 62, 14, 56, 90, 63, 0, 0, 0, 0,
-169, 27, 2, 62,204, 83, 78, 63, 0, 0, 0, 0,169, 27, 2, 62,204, 83, 78, 63, 0, 0, 0, 0,172,153, 25, 62,108, 23, 67, 63,
- 0, 0, 0, 0,162, 23, 49, 62,195, 83, 78, 63, 0, 0, 0, 0,240, 82, 64, 62,183,236, 65, 63, 0, 0, 0, 0,162, 23, 49, 62,
-195, 83, 78, 63, 0, 0, 0, 0,172,153, 25, 62,108, 23, 67, 63, 0, 0, 0, 0,172,153, 25, 62,108, 23, 67, 63, 0, 0, 0, 0,
-169, 27, 2, 62,204, 83, 78, 63, 0, 0, 0, 0,170,192,229, 61,200,236, 65, 63, 0, 0, 0, 0,167, 71, 8, 62, 7,205, 55, 63,
- 0, 0, 0, 0,173,153, 25, 62, 27, 28, 45, 63, 0, 0, 0, 0,173,235, 42, 62,254,204, 55, 63, 0, 0, 0, 0,173,235, 42, 62,
-254,204, 55, 63, 0, 0, 0, 0,172,153, 25, 62,108, 23, 67, 63, 0, 0, 0, 0,167, 71, 8, 62, 7,205, 55, 63, 0, 0, 0, 0,
-170,192,229, 61,200,236, 65, 63, 0, 0, 0, 0,167, 71, 8, 62, 7,205, 55, 63, 0, 0, 0, 0,172,153, 25, 62,108, 23, 67, 63,
- 0, 0, 0, 0,172,153, 25, 62,108, 23, 67, 63, 0, 0, 0, 0,173,235, 42, 62,254,204, 55, 63, 0, 0, 0, 0,240, 82, 64, 62,
-183,236, 65, 63, 0, 0, 0, 0,162, 23, 49, 62,195, 83, 78, 63, 0, 0, 0, 0,240, 82, 64, 62,183,236, 65, 63, 0, 0, 0, 0,
-166,200, 91, 62,147, 39, 75, 63, 0, 0, 0, 0,166,200, 91, 62,147, 39, 75, 63, 0, 0, 0, 0, 34, 16, 81, 62,131, 64, 88, 63,
- 0, 0, 0, 0,162, 23, 49, 62,195, 83, 78, 63, 0, 0, 0, 0,160,153, 25, 62, 14, 56, 90, 63, 0, 0, 0, 0,162, 23, 49, 62,
-195, 83, 78, 63, 0, 0, 0, 0, 34, 16, 81, 62,131, 64, 88, 63, 0, 0, 0, 0, 34, 16, 81, 62,131, 64, 88, 63, 0, 0, 0, 0,
-166,200, 91, 62,147, 39, 75, 63, 0, 0, 0, 0, 0, 0,128, 62, 13,228, 82, 63, 0, 0, 0, 0, 0, 0,128, 62, 47, 12, 49, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 19, 86, 60, 63, 0, 0, 0, 0, 92, 33,101, 62,146, 55, 52, 63, 0, 0, 0, 0, 92, 33,101, 62,
-146, 55, 52, 63, 0, 0, 0, 0, 14,139,103, 62,199,228, 40, 63, 0, 0, 0, 0, 0, 0,128, 62, 47, 12, 49, 63, 0, 0, 0, 0,
- 0, 0,128, 62, 23,200, 37, 63, 0, 0, 0, 0, 0, 0,128, 62, 47, 12, 49, 63, 0, 0, 0, 0, 14,139,103, 62,199,228, 40, 63,
- 0, 0, 0, 0, 14,139,103, 62,199,228, 40, 63, 0, 0, 0, 0, 92, 33,101, 62,146, 55, 52, 63, 0, 0, 0, 0,230, 32, 78, 62,
-211, 52, 43, 63, 0, 0, 0, 0,223,254, 71, 62,102,155, 54, 63, 0, 0, 0, 0,230, 32, 78, 62,211, 52, 43, 63, 0, 0, 0, 0,
- 92, 33,101, 62,146, 55, 52, 63, 0, 0, 0, 0, 92, 33,101, 62,146, 55, 52, 63, 0, 0, 0, 0, 23, 58, 97, 62, 69,233, 63, 63,
- 0, 0, 0, 0,223,254, 71, 62,102,155, 54, 63, 0, 0, 0, 0,240, 82, 64, 62,183,236, 65, 63, 0, 0, 0, 0,223,254, 71, 62,
-102,155, 54, 63, 0, 0, 0, 0, 23, 58, 97, 62, 69,233, 63, 63, 0, 0, 0, 0, 23, 58, 97, 62, 69,233, 63, 63, 0, 0, 0, 0,
- 92, 33,101, 62,146, 55, 52, 63, 0, 0, 0, 0, 0, 0,128, 62, 19, 86, 60, 63, 0, 0, 0, 0, 0, 0,128, 62,228,153, 71, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 13,228, 82, 63, 0, 0, 0, 0,166,200, 91, 62,147, 39, 75, 63, 0, 0, 0, 0,166,200, 91, 62,
-147, 39, 75, 63, 0, 0, 0, 0, 23, 58, 97, 62, 69,233, 63, 63, 0, 0, 0, 0, 0, 0,128, 62,228,153, 71, 63, 0, 0, 0, 0,
- 0, 0,128, 62, 19, 86, 60, 63, 0, 0, 0, 0, 0, 0,128, 62,228,153, 71, 63, 0, 0, 0, 0, 23, 58, 97, 62, 69,233, 63, 63,
- 0, 0, 0, 0, 23, 58, 97, 62, 69,233, 63, 63, 0, 0, 0, 0,166,200, 91, 62,147, 39, 75, 63, 0, 0, 0, 0,240, 82, 64, 62,
-183,236, 65, 63, 0, 0, 0, 0,223,254, 71, 62,102,155, 54, 63, 0, 0, 0, 0,240, 82, 64, 62,183,236, 65, 63, 0, 0, 0, 0,
-173,235, 42, 62,254,204, 55, 63, 0, 0, 0, 0,173,235, 42, 62,254,204, 55, 63, 0, 0, 0, 0,105, 20, 52, 62,198,160, 44, 63,
- 0, 0, 0, 0,223,254, 71, 62,102,155, 54, 63, 0, 0, 0, 0,230, 32, 78, 62,211, 52, 43, 63, 0, 0, 0, 0,223,254, 71, 62,
-102,155, 54, 63, 0, 0, 0, 0,105, 20, 52, 62,198,160, 44, 63, 0, 0, 0, 0,105, 20, 52, 62,198,160, 44, 63, 0, 0, 0, 0,
-173,235, 42, 62,254,204, 55, 63, 0, 0, 0, 0,173,153, 25, 62, 27, 28, 45, 63, 0, 0, 0, 0, 0, 0,128, 62, 58, 46, 94, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 8,114,105, 63, 0, 0, 0, 0,230, 1, 64, 62, 49, 26, 99, 63, 0, 0, 0, 0,230, 1, 64, 62,
- 49, 26, 99, 63, 0, 0, 0, 0, 34, 16, 81, 62,131, 64, 88, 63, 0, 0, 0, 0, 0, 0,128, 62, 58, 46, 94, 63, 0, 0, 0, 0,
- 0, 0,128, 62, 13,228, 82, 63, 0, 0, 0, 0, 0, 0,128, 62, 58, 46, 94, 63, 0, 0, 0, 0, 34, 16, 81, 62,131, 64, 88, 63,
- 0, 0, 0, 0, 34, 16, 81, 62,131, 64, 88, 63, 0, 0, 0, 0,230, 1, 64, 62, 49, 26, 99, 63, 0, 0, 0, 0,160,153, 25, 62,
- 14, 56, 90, 63, 0, 0, 0, 0,164, 98,230, 61, 58, 26, 99, 63, 0, 0, 0, 0,160,153, 25, 62, 14, 56, 90, 63, 0, 0, 0, 0,
-230, 1, 64, 62, 49, 26, 99, 63, 0, 0, 0, 0,230, 1, 64, 62, 49, 26, 99, 63, 0, 0, 0, 0,159,153, 25, 62,210,154,109, 63,
- 0, 0, 0, 0,164, 98,230, 61, 58, 26, 99, 63, 0, 0, 0, 0,237,203, 76, 61, 22,114,105, 63, 0, 0, 0, 0,164, 98,230, 61,
- 58, 26, 99, 63, 0, 0, 0, 0,159,153, 25, 62,210,154,109, 63, 0, 0, 0, 0,159,153, 25, 62,210,154,109, 63, 0, 0, 0, 0,
-230, 1, 64, 62, 49, 26, 99, 63, 0, 0, 0, 0, 0, 0,128, 62, 8,114,105, 63, 0, 0, 0, 0, 0, 0,128, 62,232,187,116, 63,
- 0, 0, 0, 0, 3,153, 59, 63, 0, 0,128, 63, 0, 0, 0, 0, 95,102,134, 63,242,187,116, 63, 0, 0, 0, 0,210,203, 76, 61,
-242,187,116, 63, 0, 0, 0, 0,159,153, 25, 62,210,154,109, 63, 0, 0, 0, 0, 0, 0,128, 62,232,187,116, 63, 0, 0, 0, 0,
- 0, 0,128, 62, 8,114,105, 63, 0, 0, 0, 0, 0, 0,128, 62,232,187,116, 63, 0, 0, 0, 0,159,153, 25, 62,210,154,109, 63,
- 0, 0, 0, 0,159,153, 25, 62,210,154,109, 63, 0, 0, 0, 0,210,203, 76, 61,242,187,116, 63, 0, 0, 0, 0,237,203, 76, 61,
- 22,114,105, 63, 0, 0, 0, 0,164, 98,230, 61, 58, 26, 99, 63, 0, 0, 0, 0,237,203, 76, 61, 22,114,105, 63, 0, 0, 0, 0,
-234,203, 76, 61, 79, 46, 94, 63, 0, 0, 0, 0,234,203, 76, 61, 79, 46, 94, 63, 0, 0, 0, 0, 23, 70,196, 61,147, 64, 88, 63,
- 0, 0, 0, 0,164, 98,230, 61, 58, 26, 99, 63, 0, 0, 0, 0,160,153, 25, 62, 14, 56, 90, 63, 0, 0, 0, 0,164, 98,230, 61,
- 58, 26, 99, 63, 0, 0, 0, 0, 23, 70,196, 61,147, 64, 88, 63, 0, 0, 0, 0, 23, 70,196, 61,147, 64, 88, 63, 0, 0, 0, 0,
-234,203, 76, 61, 79, 46, 94, 63, 0, 0, 0, 0,243,203, 76, 61, 41,228, 82, 63, 0, 0, 0, 0, 42,138,170, 62,254,204, 55, 63,
- 0, 0, 0, 0,136,214,159, 62,183,236, 65, 63, 0, 0, 0, 0,145, 0,156, 62,102,155, 54, 63, 0, 0, 0, 0,145, 0,156, 62,
-102,155, 54, 63, 0, 0, 0, 0,204,245,165, 62,198,160, 44, 63, 0, 0, 0, 0, 42,138,170, 62,254,204, 55, 63, 0, 0, 0, 0,
- 42, 51,179, 62, 28, 28, 45, 63, 0, 0, 0, 0, 42,138,170, 62,254,204, 55, 63, 0, 0, 0, 0,204,245,165, 62,198,160, 44, 63,
- 0, 0, 0, 0,204,245,165, 62,198,160, 44, 63, 0, 0, 0, 0,145, 0,156, 62,102,155, 54, 63, 0, 0, 0, 0,141,239,152, 62,
-211, 52, 43, 63, 0, 0, 0, 0, 82,111,141, 62,146, 55, 52, 63, 0, 0, 0, 0,141,239,152, 62,211, 52, 43, 63, 0, 0, 0, 0,
-145, 0,156, 62,102,155, 54, 63, 0, 0, 0, 0,145, 0,156, 62,102,155, 54, 63, 0, 0, 0, 0,245, 98,143, 62, 68,233, 63, 63,
- 0, 0, 0, 0, 82,111,141, 62,146, 55, 52, 63, 0, 0, 0, 0, 0, 0,128, 62, 19, 86, 60, 63, 0, 0, 0, 0, 82,111,141, 62,
-146, 55, 52, 63, 0, 0, 0, 0,245, 98,143, 62, 68,233, 63, 63, 0, 0, 0, 0,245, 98,143, 62, 68,233, 63, 63, 0, 0, 0, 0,
-145, 0,156, 62,102,155, 54, 63, 0, 0, 0, 0,136,214,159, 62,183,236, 65, 63, 0, 0, 0, 0,173, 27,146, 62,147, 39, 75, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 13,228, 82, 63, 0, 0, 0, 0, 0, 0,128, 62,228,153, 71, 63, 0, 0, 0, 0, 0, 0,128, 62,
-228,153, 71, 63, 0, 0, 0, 0,245, 98,143, 62, 68,233, 63, 63, 0, 0, 0, 0,173, 27,146, 62,147, 39, 75, 63, 0, 0, 0, 0,
-136,214,159, 62,183,236, 65, 63, 0, 0, 0, 0,173, 27,146, 62,147, 39, 75, 63, 0, 0, 0, 0,245, 98,143, 62, 68,233, 63, 63,
- 0, 0, 0, 0,245, 98,143, 62, 68,233, 63, 63, 0, 0, 0, 0, 0, 0,128, 62,228,153, 71, 63, 0, 0, 0, 0, 0, 0,128, 62,
- 19, 86, 60, 63, 0, 0, 0, 0, 82,111,141, 62,146, 55, 52, 63, 0, 0, 0, 0, 0, 0,128, 62, 19, 86, 60, 63, 0, 0, 0, 0,
- 0, 0,128, 62, 47, 12, 49, 63, 0, 0, 0, 0, 0, 0,128, 62, 47, 12, 49, 63, 0, 0, 0, 0,121, 58,140, 62,199,228, 40, 63,
- 0, 0, 0, 0, 82,111,141, 62,146, 55, 52, 63, 0, 0, 0, 0,141,239,152, 62,211, 52, 43, 63, 0, 0, 0, 0, 82,111,141, 62,
-146, 55, 52, 63, 0, 0, 0, 0,121, 58,140, 62,199,228, 40, 63, 0, 0, 0, 0,121, 58,140, 62,199,228, 40, 63, 0, 0, 0, 0,
- 0, 0,128, 62, 47, 12, 49, 63, 0, 0, 0, 0, 0, 0,128, 62, 23,200, 37, 63, 0, 0, 0, 0,173, 27,146, 62,147, 39, 75, 63,
- 0, 0, 0, 0,136,214,159, 62,183,236, 65, 63, 0, 0, 0, 0, 47,116,167, 62,195, 83, 78, 63, 0, 0, 0, 0, 47,116,167, 62,
-195, 83, 78, 63, 0, 0, 0, 0,239,119,151, 62,131, 64, 88, 63, 0, 0, 0, 0,173, 27,146, 62,147, 39, 75, 63, 0, 0, 0, 0,
- 0, 0,128, 62, 13,228, 82, 63, 0, 0, 0, 0,173, 27,146, 62,147, 39, 75, 63, 0, 0, 0, 0,239,119,151, 62,131, 64, 88, 63,
- 0, 0, 0, 0,239,119,151, 62,131, 64, 88, 63, 0, 0, 0, 0, 47,116,167, 62,195, 83, 78, 63, 0, 0, 0, 0, 49, 51,179, 62,
- 14, 56, 90, 63, 0, 0, 0, 0, 44,242,190, 62,205, 83, 78, 63, 0, 0, 0, 0, 49, 51,179, 62, 14, 56, 90, 63, 0, 0, 0, 0,
- 47,116,167, 62,195, 83, 78, 63, 0, 0, 0, 0, 47,116,167, 62,195, 83, 78, 63, 0, 0, 0, 0, 42, 51,179, 62,108, 23, 67, 63,
- 0, 0, 0, 0, 44,242,190, 62,205, 83, 78, 63, 0, 0, 0, 0,214,143,198, 62,200,236, 65, 63, 0, 0, 0, 0, 44,242,190, 62,
-205, 83, 78, 63, 0, 0, 0, 0, 42, 51,179, 62,108, 23, 67, 63, 0, 0, 0, 0, 42, 51,179, 62,108, 23, 67, 63, 0, 0, 0, 0,
- 47,116,167, 62,195, 83, 78, 63, 0, 0, 0, 0,136,214,159, 62,183,236, 65, 63, 0, 0, 0, 0, 42,138,170, 62,254,204, 55, 63,
- 0, 0, 0, 0, 42, 51,179, 62, 28, 28, 45, 63, 0, 0, 0, 0, 45,220,187, 62, 7,205, 55, 63, 0, 0, 0, 0, 45,220,187, 62,
- 7,205, 55, 63, 0, 0, 0, 0, 42, 51,179, 62,108, 23, 67, 63, 0, 0, 0, 0, 42,138,170, 62,254,204, 55, 63, 0, 0, 0, 0,
-136,214,159, 62,183,236, 65, 63, 0, 0, 0, 0, 42,138,170, 62,254,204, 55, 63, 0, 0, 0, 0, 42, 51,179, 62,108, 23, 67, 63,
- 0, 0, 0, 0, 42, 51,179, 62,108, 23, 67, 63, 0, 0, 0, 0, 45,220,187, 62, 7,205, 55, 63, 0, 0, 0, 0,214,143,198, 62,
-200,236, 65, 63, 0, 0, 0, 0, 44,242,190, 62,205, 83, 78, 63, 0, 0, 0, 0,214,143,198, 62,200,236, 65, 63, 0, 0, 0, 0,
-188, 74,212, 62,171, 39, 75, 63, 0, 0, 0, 0,188, 74,212, 62,171, 39, 75, 63, 0, 0, 0, 0,122,238,206, 62,147, 64, 88, 63,
- 0, 0, 0, 0, 44,242,190, 62,205, 83, 78, 63, 0, 0, 0, 0, 49, 51,179, 62, 14, 56, 90, 63, 0, 0, 0, 0, 44,242,190, 62,
-205, 83, 78, 63, 0, 0, 0, 0,122,238,206, 62,147, 64, 88, 63, 0, 0, 0, 0,122,238,206, 62,147, 64, 88, 63, 0, 0, 0, 0,
-188, 74,212, 62,171, 39, 75, 63, 0, 0, 0, 0,130,102,230, 62, 41,228, 82, 63, 0, 0, 0, 0,130,102,230, 62, 82, 12, 49, 63,
- 0, 0, 0, 0,129,102,230, 62, 53, 86, 60, 63, 0, 0, 0, 0, 28,247,216, 62,172, 55, 52, 63, 0, 0, 0, 0, 28,247,216, 62,
-172, 55, 52, 63, 0, 0, 0, 0,243, 43,218, 62,223,228, 40, 63, 0, 0, 0, 0,130,102,230, 62, 82, 12, 49, 63, 0, 0, 0, 0,
-129,102,230, 62, 48,200, 37, 63, 0, 0, 0, 0,130,102,230, 62, 82, 12, 49, 63, 0, 0, 0, 0,243, 43,218, 62,223,228, 40, 63,
- 0, 0, 0, 0,243, 43,218, 62,223,228, 40, 63, 0, 0, 0, 0, 28,247,216, 62,172, 55, 52, 63, 0, 0, 0, 0,212,118,205, 62,
-228, 52, 43, 63, 0, 0, 0, 0,206,101,202, 62,120,155, 54, 63, 0, 0, 0, 0,212,118,205, 62,228, 52, 43, 63, 0, 0, 0, 0,
- 28,247,216, 62,172, 55, 52, 63, 0, 0, 0, 0, 28,247,216, 62,172, 55, 52, 63, 0, 0, 0, 0,120, 3,215, 62, 95,233, 63, 63,
- 0, 0, 0, 0,206,101,202, 62,120,155, 54, 63, 0, 0, 0, 0,214,143,198, 62,200,236, 65, 63, 0, 0, 0, 0,206,101,202, 62,
-120,155, 54, 63, 0, 0, 0, 0,120, 3,215, 62, 95,233, 63, 63, 0, 0, 0, 0,120, 3,215, 62, 95,233, 63, 63, 0, 0, 0, 0,
- 28,247,216, 62,172, 55, 52, 63, 0, 0, 0, 0,129,102,230, 62, 53, 86, 60, 63, 0, 0, 0, 0,130,102,230, 62, 1,154, 71, 63,
- 0, 0, 0, 0,130,102,230, 62, 41,228, 82, 63, 0, 0, 0, 0,188, 74,212, 62,171, 39, 75, 63, 0, 0, 0, 0,188, 74,212, 62,
-171, 39, 75, 63, 0, 0, 0, 0,120, 3,215, 62, 95,233, 63, 63, 0, 0, 0, 0,130,102,230, 62, 1,154, 71, 63, 0, 0, 0, 0,
-129,102,230, 62, 53, 86, 60, 63, 0, 0, 0, 0,130,102,230, 62, 1,154, 71, 63, 0, 0, 0, 0,120, 3,215, 62, 95,233, 63, 63,
- 0, 0, 0, 0,120, 3,215, 62, 95,233, 63, 63, 0, 0, 0, 0,188, 74,212, 62,171, 39, 75, 63, 0, 0, 0, 0,214,143,198, 62,
-200,236, 65, 63, 0, 0, 0, 0,206,101,202, 62,120,155, 54, 63, 0, 0, 0, 0,214,143,198, 62,200,236, 65, 63, 0, 0, 0, 0,
- 45,220,187, 62, 7,205, 55, 63, 0, 0, 0, 0, 45,220,187, 62, 7,205, 55, 63, 0, 0, 0, 0,142,112,192, 62,207,160, 44, 63,
- 0, 0, 0, 0,206,101,202, 62,120,155, 54, 63, 0, 0, 0, 0,212,118,205, 62,228, 52, 43, 63, 0, 0, 0, 0,206,101,202, 62,
-120,155, 54, 63, 0, 0, 0, 0,142,112,192, 62,207,160, 44, 63, 0, 0, 0, 0,142,112,192, 62,207,160, 44, 63, 0, 0, 0, 0,
- 45,220,187, 62, 7,205, 55, 63, 0, 0, 0, 0, 42, 51,179, 62, 28, 28, 45, 63, 0, 0, 0, 0,131,102,230, 62, 79, 46, 94, 63,
- 0, 0, 0, 0,131,102,230, 62, 22,114,105, 63, 0, 0, 0, 0, 87,103,198, 62, 58, 26, 99, 63, 0, 0, 0, 0, 87,103,198, 62,
- 58, 26, 99, 63, 0, 0, 0, 0,122,238,206, 62,147, 64, 88, 63, 0, 0, 0, 0,131,102,230, 62, 79, 46, 94, 63, 0, 0, 0, 0,
-130,102,230, 62, 41,228, 82, 63, 0, 0, 0, 0,131,102,230, 62, 79, 46, 94, 63, 0, 0, 0, 0,122,238,206, 62,147, 64, 88, 63,
- 0, 0, 0, 0,122,238,206, 62,147, 64, 88, 63, 0, 0, 0, 0, 87,103,198, 62, 58, 26, 99, 63, 0, 0, 0, 0, 49, 51,179, 62,
- 14, 56, 90, 63, 0, 0, 0, 0, 14,255,159, 62, 49, 26, 99, 63, 0, 0, 0, 0, 49, 51,179, 62, 14, 56, 90, 63, 0, 0, 0, 0,
- 87,103,198, 62, 58, 26, 99, 63, 0, 0, 0, 0, 87,103,198, 62, 58, 26, 99, 63, 0, 0, 0, 0, 49, 51,179, 62,210,154,109, 63,
- 0, 0, 0, 0, 14,255,159, 62, 49, 26, 99, 63, 0, 0, 0, 0, 0, 0,128, 62, 8,114,105, 63, 0, 0, 0, 0, 14,255,159, 62,
- 49, 26, 99, 63, 0, 0, 0, 0, 49, 51,179, 62,210,154,109, 63, 0, 0, 0, 0, 49, 51,179, 62,210,154,109, 63, 0, 0, 0, 0,
- 87,103,198, 62, 58, 26, 99, 63, 0, 0, 0, 0,131,102,230, 62, 22,114,105, 63, 0, 0, 0, 0,134,102,230, 62,242,187,116, 63,
- 0, 0, 0, 0, 3,153, 59, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,232,187,116, 63, 0, 0, 0, 0, 0, 0,128, 62,
-232,187,116, 63, 0, 0, 0, 0, 49, 51,179, 62,210,154,109, 63, 0, 0, 0, 0,134,102,230, 62,242,187,116, 63, 0, 0, 0, 0,
-131,102,230, 62, 22,114,105, 63, 0, 0, 0, 0,134,102,230, 62,242,187,116, 63, 0, 0, 0, 0, 49, 51,179, 62,210,154,109, 63,
- 0, 0, 0, 0, 49, 51,179, 62,210,154,109, 63, 0, 0, 0, 0, 0, 0,128, 62,232,187,116, 63, 0, 0, 0, 0, 0, 0,128, 62,
- 8,114,105, 63, 0, 0, 0, 0, 14,255,159, 62, 49, 26, 99, 63, 0, 0, 0, 0, 0, 0,128, 62, 8,114,105, 63, 0, 0, 0, 0,
- 0, 0,128, 62, 58, 46, 94, 63, 0, 0, 0, 0, 0, 0,128, 62, 58, 46, 94, 63, 0, 0, 0, 0,239,119,151, 62,131, 64, 88, 63,
- 0, 0, 0, 0, 14,255,159, 62, 49, 26, 99, 63, 0, 0, 0, 0, 49, 51,179, 62, 14, 56, 90, 63, 0, 0, 0, 0, 14,255,159, 62,
- 49, 26, 99, 63, 0, 0, 0, 0,239,119,151, 62,131, 64, 88, 63, 0, 0, 0, 0,239,119,151, 62,131, 64, 88, 63, 0, 0, 0, 0,
- 0, 0,128, 62, 58, 46, 94, 63, 0, 0, 0, 0, 0, 0,128, 62, 13,228, 82, 63, 0, 0, 0, 0, 93,120, 8, 63, 11,205, 55, 63,
- 0, 0, 0, 0,140, 30, 3, 63,201,236, 65, 63, 0, 0, 0, 0,145, 51, 1, 63,121,155, 54, 63, 0, 0, 0, 0,145, 51, 1, 63,
-121,155, 54, 63, 0, 0, 0, 0, 46, 46, 6, 63,211,160, 44, 63, 0, 0, 0, 0, 93,120, 8, 63, 11,205, 55, 63, 0, 0, 0, 0,
-220,204, 12, 63, 35, 28, 45, 63, 0, 0, 0, 0, 93,120, 8, 63, 11,205, 55, 63, 0, 0, 0, 0, 46, 46, 6, 63,211,160, 44, 63,
- 0, 0, 0, 0, 46, 46, 6, 63,211,160, 44, 63, 0, 0, 0, 0,145, 51, 1, 63,121,155, 54, 63, 0, 0, 0, 0, 30, 86,255, 62,
-230, 52, 43, 63, 0, 0, 0, 0,222,213,243, 62,172, 55, 52, 63, 0, 0, 0, 0, 30, 86,255, 62,230, 52, 43, 63, 0, 0, 0, 0,
-145, 51, 1, 63,121,155, 54, 63, 0, 0, 0, 0,145, 51, 1, 63,121,155, 54, 63, 0, 0, 0, 0,128,201,245, 62, 94,233, 63, 63,
- 0, 0, 0, 0,222,213,243, 62,172, 55, 52, 63, 0, 0, 0, 0,129,102,230, 62, 53, 86, 60, 63, 0, 0, 0, 0,222,213,243, 62,
-172, 55, 52, 63, 0, 0, 0, 0,128,201,245, 62, 94,233, 63, 63, 0, 0, 0, 0,128,201,245, 62, 94,233, 63, 63, 0, 0, 0, 0,
-145, 51, 1, 63,121,155, 54, 63, 0, 0, 0, 0,140, 30, 3, 63,201,236, 65, 63, 0, 0, 0, 0, 59,130,248, 62,169, 39, 75, 63,
- 0, 0, 0, 0,130,102,230, 62, 41,228, 82, 63, 0, 0, 0, 0,130,102,230, 62, 1,154, 71, 63, 0, 0, 0, 0,130,102,230, 62,
- 1,154, 71, 63, 0, 0, 0, 0,128,201,245, 62, 94,233, 63, 63, 0, 0, 0, 0, 59,130,248, 62,169, 39, 75, 63, 0, 0, 0, 0,
-140, 30, 3, 63,201,236, 65, 63, 0, 0, 0, 0, 59,130,248, 62,169, 39, 75, 63, 0, 0, 0, 0,128,201,245, 62, 94,233, 63, 63,
- 0, 0, 0, 0,128,201,245, 62, 94,233, 63, 63, 0, 0, 0, 0,130,102,230, 62, 1,154, 71, 63, 0, 0, 0, 0,129,102,230, 62,
- 53, 86, 60, 63, 0, 0, 0, 0,222,213,243, 62,172, 55, 52, 63, 0, 0, 0, 0,129,102,230, 62, 53, 86, 60, 63, 0, 0, 0, 0,
-130,102,230, 62, 82, 12, 49, 63, 0, 0, 0, 0,130,102,230, 62, 82, 12, 49, 63, 0, 0, 0, 0, 9,161,242, 62,223,228, 40, 63,
- 0, 0, 0, 0,222,213,243, 62,172, 55, 52, 63, 0, 0, 0, 0, 30, 86,255, 62,230, 52, 43, 63, 0, 0, 0, 0,222,213,243, 62,
-172, 55, 52, 63, 0, 0, 0, 0, 9,161,242, 62,223,228, 40, 63, 0, 0, 0, 0, 9,161,242, 62,223,228, 40, 63, 0, 0, 0, 0,
-130,102,230, 62, 82, 12, 49, 63, 0, 0, 0, 0,129,102,230, 62, 48,200, 37, 63, 0, 0, 0, 0, 59,130,248, 62,169, 39, 75, 63,
- 0, 0, 0, 0,140, 30, 3, 63,201,236, 65, 63, 0, 0, 0, 0, 94,237, 6, 63,207, 83, 78, 63, 0, 0, 0, 0, 94,237, 6, 63,
-207, 83, 78, 63, 0, 0, 0, 0,118,222,253, 62,148, 64, 88, 63, 0, 0, 0, 0, 59,130,248, 62,169, 39, 75, 63, 0, 0, 0, 0,
-130,102,230, 62, 41,228, 82, 63, 0, 0, 0, 0, 59,130,248, 62,169, 39, 75, 63, 0, 0, 0, 0,118,222,253, 62,148, 64, 88, 63,
- 0, 0, 0, 0,118,222,253, 62,148, 64, 88, 63, 0, 0, 0, 0, 94,237, 6, 63,207, 83, 78, 63, 0, 0, 0, 0,220,204, 12, 63,
- 22, 56, 90, 63, 0, 0, 0, 0, 88,172, 18, 63,207, 83, 78, 63, 0, 0, 0, 0,220,204, 12, 63, 22, 56, 90, 63, 0, 0, 0, 0,
- 94,237, 6, 63,207, 83, 78, 63, 0, 0, 0, 0, 94,237, 6, 63,207, 83, 78, 63, 0, 0, 0, 0,220,204, 12, 63,115, 23, 67, 63,
- 0, 0, 0, 0, 88,172, 18, 63,207, 83, 78, 63, 0, 0, 0, 0, 44,123, 22, 63,201,236, 65, 63, 0, 0, 0, 0, 88,172, 18, 63,
-207, 83, 78, 63, 0, 0, 0, 0,220,204, 12, 63,115, 23, 67, 63, 0, 0, 0, 0,220,204, 12, 63,115, 23, 67, 63, 0, 0, 0, 0,
- 94,237, 6, 63,207, 83, 78, 63, 0, 0, 0, 0,140, 30, 3, 63,201,236, 65, 63, 0, 0, 0, 0, 93,120, 8, 63, 11,205, 55, 63,
- 0, 0, 0, 0,220,204, 12, 63, 35, 28, 45, 63, 0, 0, 0, 0, 91, 33, 17, 63, 9,205, 55, 63, 0, 0, 0, 0, 91, 33, 17, 63,
- 9,205, 55, 63, 0, 0, 0, 0,220,204, 12, 63,115, 23, 67, 63, 0, 0, 0, 0, 93,120, 8, 63, 11,205, 55, 63, 0, 0, 0, 0,
-140, 30, 3, 63,201,236, 65, 63, 0, 0, 0, 0, 93,120, 8, 63, 11,205, 55, 63, 0, 0, 0, 0,220,204, 12, 63,115, 23, 67, 63,
- 0, 0, 0, 0,220,204, 12, 63,115, 23, 67, 63, 0, 0, 0, 0, 91, 33, 17, 63, 9,205, 55, 63, 0, 0, 0, 0, 44,123, 22, 63,
-201,236, 65, 63, 0, 0, 0, 0, 88,172, 18, 63,207, 83, 78, 63, 0, 0, 0, 0, 44,123, 22, 63,201,236, 65, 63, 0, 0, 0, 0,
-153, 88, 29, 63,167, 39, 75, 63, 0, 0, 0, 0,153, 88, 29, 63,167, 39, 75, 63, 0, 0, 0, 0,121,170, 26, 63,147, 64, 88, 63,
- 0, 0, 0, 0, 88,172, 18, 63,207, 83, 78, 63, 0, 0, 0, 0,220,204, 12, 63, 22, 56, 90, 63, 0, 0, 0, 0, 88,172, 18, 63,
-207, 83, 78, 63, 0, 0, 0, 0,121,170, 26, 63,147, 64, 88, 63, 0, 0, 0, 0,121,170, 26, 63,147, 64, 88, 63, 0, 0, 0, 0,
-153, 88, 29, 63,167, 39, 75, 63, 0, 0, 0, 0,118,102, 38, 63, 38,228, 82, 63, 0, 0, 0, 0,117,102, 38, 63, 78, 12, 49, 63,
- 0, 0, 0, 0,117,102, 38, 63, 50, 86, 60, 63, 0, 0, 0, 0,200,174, 31, 63,169, 55, 52, 63, 0, 0, 0, 0,200,174, 31, 63,
-169, 55, 52, 63, 0, 0, 0, 0, 51, 73, 32, 63,221,228, 40, 63, 0, 0, 0, 0,117,102, 38, 63, 78, 12, 49, 63, 0, 0, 0, 0,
-117,102, 38, 63, 45,200, 37, 63, 0, 0, 0, 0,117,102, 38, 63, 78, 12, 49, 63, 0, 0, 0, 0, 51, 73, 32, 63,221,228, 40, 63,
- 0, 0, 0, 0, 51, 73, 32, 63,221,228, 40, 63, 0, 0, 0, 0,200,174, 31, 63,169, 55, 52, 63, 0, 0, 0, 0,169,238, 25, 63,
-229, 52, 43, 63, 0, 0, 0, 0, 39,102, 24, 63,119,155, 54, 63, 0, 0, 0, 0,169,238, 25, 63,229, 52, 43, 63, 0, 0, 0, 0,
-200,174, 31, 63,169, 55, 52, 63, 0, 0, 0, 0,200,174, 31, 63,169, 55, 52, 63, 0, 0, 0, 0,246,180, 30, 63, 92,233, 63, 63,
- 0, 0, 0, 0, 39,102, 24, 63,119,155, 54, 63, 0, 0, 0, 0, 44,123, 22, 63,201,236, 65, 63, 0, 0, 0, 0, 39,102, 24, 63,
-119,155, 54, 63, 0, 0, 0, 0,246,180, 30, 63, 92,233, 63, 63, 0, 0, 0, 0,246,180, 30, 63, 92,233, 63, 63, 0, 0, 0, 0,
-200,174, 31, 63,169, 55, 52, 63, 0, 0, 0, 0,117,102, 38, 63, 50, 86, 60, 63, 0, 0, 0, 0,117,102, 38, 63,255,153, 71, 63,
- 0, 0, 0, 0,118,102, 38, 63, 38,228, 82, 63, 0, 0, 0, 0,153, 88, 29, 63,167, 39, 75, 63, 0, 0, 0, 0,153, 88, 29, 63,
-167, 39, 75, 63, 0, 0, 0, 0,246,180, 30, 63, 92,233, 63, 63, 0, 0, 0, 0,117,102, 38, 63,255,153, 71, 63, 0, 0, 0, 0,
-117,102, 38, 63, 50, 86, 60, 63, 0, 0, 0, 0,117,102, 38, 63,255,153, 71, 63, 0, 0, 0, 0,246,180, 30, 63, 92,233, 63, 63,
- 0, 0, 0, 0,246,180, 30, 63, 92,233, 63, 63, 0, 0, 0, 0,153, 88, 29, 63,167, 39, 75, 63, 0, 0, 0, 0, 44,123, 22, 63,
-201,236, 65, 63, 0, 0, 0, 0, 39,102, 24, 63,119,155, 54, 63, 0, 0, 0, 0, 44,123, 22, 63,201,236, 65, 63, 0, 0, 0, 0,
- 91, 33, 17, 63, 9,205, 55, 63, 0, 0, 0, 0, 91, 33, 17, 63, 9,205, 55, 63, 0, 0, 0, 0,138,107, 19, 63,211,160, 44, 63,
- 0, 0, 0, 0, 39,102, 24, 63,119,155, 54, 63, 0, 0, 0, 0,169,238, 25, 63,229, 52, 43, 63, 0, 0, 0, 0, 39,102, 24, 63,
-119,155, 54, 63, 0, 0, 0, 0,138,107, 19, 63,211,160, 44, 63, 0, 0, 0, 0,138,107, 19, 63,211,160, 44, 63, 0, 0, 0, 0,
- 91, 33, 17, 63, 9,205, 55, 63, 0, 0, 0, 0,220,204, 12, 63, 35, 28, 45, 63, 0, 0, 0, 0,118,102, 38, 63, 77, 46, 94, 63,
- 0, 0, 0, 0,118,102, 38, 63, 19,114,105, 63, 0, 0, 0, 0,235,102, 22, 63, 59, 26, 99, 63, 0, 0, 0, 0,235,102, 22, 63,
- 59, 26, 99, 63, 0, 0, 0, 0,121,170, 26, 63,147, 64, 88, 63, 0, 0, 0, 0,118,102, 38, 63, 77, 46, 94, 63, 0, 0, 0, 0,
-118,102, 38, 63, 38,228, 82, 63, 0, 0, 0, 0,118,102, 38, 63, 77, 46, 94, 63, 0, 0, 0, 0,121,170, 26, 63,147, 64, 88, 63,
- 0, 0, 0, 0,121,170, 26, 63,147, 64, 88, 63, 0, 0, 0, 0,235,102, 22, 63, 59, 26, 99, 63, 0, 0, 0, 0,220,204, 12, 63,
- 22, 56, 90, 63, 0, 0, 0, 0,204, 50, 3, 63, 58, 26, 99, 63, 0, 0, 0, 0,220,204, 12, 63, 22, 56, 90, 63, 0, 0, 0, 0,
-235,102, 22, 63, 59, 26, 99, 63, 0, 0, 0, 0,235,102, 22, 63, 59, 26, 99, 63, 0, 0, 0, 0,224,204, 12, 63,212,154,109, 63,
- 0, 0, 0, 0,204, 50, 3, 63, 58, 26, 99, 63, 0, 0, 0, 0,131,102,230, 62, 22,114,105, 63, 0, 0, 0, 0,204, 50, 3, 63,
- 58, 26, 99, 63, 0, 0, 0, 0,224,204, 12, 63,212,154,109, 63, 0, 0, 0, 0,224,204, 12, 63,212,154,109, 63, 0, 0, 0, 0,
-235,102, 22, 63, 59, 26, 99, 63, 0, 0, 0, 0,118,102, 38, 63, 19,114,105, 63, 0, 0, 0, 0,120,102, 38, 63,242,187,116, 63,
- 0, 0, 0, 0, 3,153, 59, 63, 0, 0,128, 63, 0, 0, 0, 0,134,102,230, 62,242,187,116, 63, 0, 0, 0, 0,134,102,230, 62,
-242,187,116, 63, 0, 0, 0, 0,224,204, 12, 63,212,154,109, 63, 0, 0, 0, 0,120,102, 38, 63,242,187,116, 63, 0, 0, 0, 0,
-118,102, 38, 63, 19,114,105, 63, 0, 0, 0, 0,120,102, 38, 63,242,187,116, 63, 0, 0, 0, 0,224,204, 12, 63,212,154,109, 63,
- 0, 0, 0, 0,224,204, 12, 63,212,154,109, 63, 0, 0, 0, 0,134,102,230, 62,242,187,116, 63, 0, 0, 0, 0,131,102,230, 62,
- 22,114,105, 63, 0, 0, 0, 0,204, 50, 3, 63, 58, 26, 99, 63, 0, 0, 0, 0,131,102,230, 62, 22,114,105, 63, 0, 0, 0, 0,
-131,102,230, 62, 79, 46, 94, 63, 0, 0, 0, 0,131,102,230, 62, 79, 46, 94, 63, 0, 0, 0, 0,118,222,253, 62,148, 64, 88, 63,
- 0, 0, 0, 0,204, 50, 3, 63, 58, 26, 99, 63, 0, 0, 0, 0,220,204, 12, 63, 22, 56, 90, 63, 0, 0, 0, 0,204, 50, 3, 63,
- 58, 26, 99, 63, 0, 0, 0, 0,118,222,253, 62,148, 64, 88, 63, 0, 0, 0, 0,118,222,253, 62,148, 64, 88, 63, 0, 0, 0, 0,
-131,102,230, 62, 79, 46, 94, 63, 0, 0, 0, 0,130,102,230, 62, 41,228, 82, 63, 0, 0, 0, 0,213,233, 76, 63, 35, 48, 21, 63,
- 0, 0, 0, 0,176,235, 70, 63,226,209, 22, 63, 0, 0, 0, 0, 80,234, 73, 63,146,111, 11, 63, 0, 0, 0, 0, 80,234, 73, 63,
-146,111, 11, 63, 0, 0, 0, 0, 1,200, 79, 63, 94,152, 9, 63, 0, 0, 0, 0,213,233, 76, 63, 35, 48, 21, 63, 0, 0, 0, 0,
- 19,215, 82, 63,252, 29, 19, 63, 0, 0, 0, 0,213,233, 76, 63, 35, 48, 21, 63, 0, 0, 0, 0, 1,200, 79, 63, 94,152, 9, 63,
- 0, 0, 0, 0, 1,200, 79, 63, 94,152, 9, 63, 0, 0, 0, 0, 80,234, 73, 63,146,111, 11, 63, 0, 0, 0, 0,193,204, 76, 63,
- 0, 0, 0, 63, 0, 0, 0, 0,213,233, 76, 63, 35, 48, 21, 63, 0, 0, 0, 0, 19,215, 82, 63,252, 29, 19, 63, 0, 0, 0, 0,
-220, 41, 80, 63,105, 60, 31, 63, 0, 0, 0, 0,220, 41, 80, 63,105, 60, 31, 63, 0, 0, 0, 0,164,219, 73, 63,173, 23, 33, 63,
- 0, 0, 0, 0,213,233, 76, 63, 35, 48, 21, 63, 0, 0, 0, 0,176,235, 70, 63,226,209, 22, 63, 0, 0, 0, 0,213,233, 76, 63,
- 35, 48, 21, 63, 0, 0, 0, 0,164,219, 73, 63,173, 23, 33, 63, 0, 0, 0, 0,164,219, 73, 63,173, 23, 33, 63, 0, 0, 0, 0,
-220, 41, 80, 63,105, 60, 31, 63, 0, 0, 0, 0,196, 33, 77, 63,221, 52, 43, 63, 0, 0, 0, 0,169,158, 70, 63,200,160, 44, 63,
- 0, 0, 0, 0, 0, 0, 64, 63, 24, 28, 45, 63, 0, 0, 0, 0, 5,171, 67, 63,216, 17, 34, 63, 0, 0, 0, 0, 5,171, 67, 63,
-216, 17, 34, 63, 0, 0, 0, 0,164,219, 73, 63,173, 23, 33, 63, 0, 0, 0, 0,169,158, 70, 63,200,160, 44, 63, 0, 0, 0, 0,
-196, 33, 77, 63,221, 52, 43, 63, 0, 0, 0, 0,169,158, 70, 63,200,160, 44, 63, 0, 0, 0, 0,164,219, 73, 63,173, 23, 33, 63,
- 0, 0, 0, 0,164,219, 73, 63,173, 23, 33, 63, 0, 0, 0, 0, 5,171, 67, 63,216, 17, 34, 63, 0, 0, 0, 0,176,235, 70, 63,
-226,209, 22, 63, 0, 0, 0, 0, 75,124, 83, 63,217,228, 40, 63, 0, 0, 0, 0,196, 33, 77, 63,221, 52, 43, 63, 0, 0, 0, 0,
-220, 41, 80, 63,105, 60, 31, 63, 0, 0, 0, 0,220, 41, 80, 63,105, 60, 31, 63, 0, 0, 0, 0,218, 20, 86, 63,143,140, 28, 63,
- 0, 0, 0, 0, 75,124, 83, 63,217,228, 40, 63, 0, 0, 0, 0,139,153, 89, 63, 45,200, 37, 63, 0, 0, 0, 0, 75,124, 83, 63,
-217,228, 40, 63, 0, 0, 0, 0,218, 20, 86, 63,143,140, 28, 63, 0, 0, 0, 0,218, 20, 86, 63,143,140, 28, 63, 0, 0, 0, 0,
-220, 41, 80, 63,105, 60, 31, 63, 0, 0, 0, 0, 19,215, 82, 63,252, 29, 19, 63, 0, 0, 0, 0, 0, 0, 64, 63,182, 32, 23, 63,
- 0, 0, 0, 0,176,235, 70, 63,226,209, 22, 63, 0, 0, 0, 0, 5,171, 67, 63,216, 17, 34, 63, 0, 0, 0, 0, 5,171, 67, 63,
-216, 17, 34, 63, 0, 0, 0, 0,251, 84, 60, 63,216, 17, 34, 63, 0, 0, 0, 0, 0, 0, 64, 63,182, 32, 23, 63, 0, 0, 0, 0,
- 80, 20, 57, 63,226,209, 22, 63, 0, 0, 0, 0, 0, 0, 64, 63,182, 32, 23, 63, 0, 0, 0, 0,251, 84, 60, 63,216, 17, 34, 63,
- 0, 0, 0, 0,251, 84, 60, 63,216, 17, 34, 63, 0, 0, 0, 0, 5,171, 67, 63,216, 17, 34, 63, 0, 0, 0, 0, 0, 0, 64, 63,
- 24, 28, 45, 63, 0, 0, 0, 0, 0, 0, 64, 63,182, 32, 23, 63, 0, 0, 0, 0, 80, 20, 57, 63,226,209, 22, 63, 0, 0, 0, 0,
-169,156, 60, 63, 96,116, 11, 63, 0, 0, 0, 0,169,156, 60, 63, 96,116, 11, 63, 0, 0, 0, 0, 87, 99, 67, 63, 96,116, 11, 63,
- 0, 0, 0, 0, 0, 0, 64, 63,182, 32, 23, 63, 0, 0, 0, 0,176,235, 70, 63,226,209, 22, 63, 0, 0, 0, 0, 0, 0, 64, 63,
-182, 32, 23, 63, 0, 0, 0, 0, 87, 99, 67, 63, 96,116, 11, 63, 0, 0, 0, 0, 87, 99, 67, 63, 96,116, 11, 63, 0, 0, 0, 0,
-169,156, 60, 63, 96,116, 11, 63, 0, 0, 0, 0, 0, 0, 64, 63, 0, 0, 0, 63, 0, 0, 0, 0, 96,102, 70, 63,244, 1, 0, 63,
- 0, 0, 0, 0,193,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 80,234, 73, 63,146,111, 11, 63, 0, 0, 0, 0, 80,234, 73, 63,
-146,111, 11, 63, 0, 0, 0, 0, 87, 99, 67, 63, 96,116, 11, 63, 0, 0, 0, 0, 96,102, 70, 63,244, 1, 0, 63, 0, 0, 0, 0,
- 0, 0, 64, 63, 0, 0, 0, 63, 0, 0, 0, 0, 96,102, 70, 63,244, 1, 0, 63, 0, 0, 0, 0, 87, 99, 67, 63, 96,116, 11, 63,
- 0, 0, 0, 0, 87, 99, 67, 63, 96,116, 11, 63, 0, 0, 0, 0, 80,234, 73, 63,146,111, 11, 63, 0, 0, 0, 0,176,235, 70, 63,
-226,209, 22, 63, 0, 0, 0, 0,160,153, 57, 63,244, 1, 0, 63, 0, 0, 0, 0, 0, 0, 64, 63, 0, 0, 0, 63, 0, 0, 0, 0,
-169,156, 60, 63, 96,116, 11, 63, 0, 0, 0, 0,169,156, 60, 63, 96,116, 11, 63, 0, 0, 0, 0,176, 21, 54, 63,146,111, 11, 63,
- 0, 0, 0, 0,160,153, 57, 63,244, 1, 0, 63, 0, 0, 0, 0, 63, 51, 51, 63, 0, 0, 0, 63, 0, 0, 0, 0,160,153, 57, 63,
-244, 1, 0, 63, 0, 0, 0, 0,176, 21, 54, 63,146,111, 11, 63, 0, 0, 0, 0,176, 21, 54, 63,146,111, 11, 63, 0, 0, 0, 0,
-169,156, 60, 63, 96,116, 11, 63, 0, 0, 0, 0, 80, 20, 57, 63,226,209, 22, 63, 0, 0, 0, 0, 0, 0, 64, 63, 93, 58,217, 62,
- 0, 0, 0, 0,144, 61, 57, 63, 19,196,217, 62, 0, 0, 0, 0, 85,123, 60, 63,253,230,198, 62, 0, 0, 0, 0, 85,123, 60, 63,
-253,230,198, 62, 0, 0, 0, 0,171,132, 67, 63,253,230,198, 62, 0, 0, 0, 0, 0, 0, 64, 63, 93, 58,217, 62, 0, 0, 0, 0,
-112,194, 70, 63, 19,196,217, 62, 0, 0, 0, 0, 0, 0, 64, 63, 93, 58,217, 62, 0, 0, 0, 0,171,132, 67, 63,253,230,198, 62,
- 0, 0, 0, 0,171,132, 67, 63,253,230,198, 62, 0, 0, 0, 0, 85,123, 60, 63,253,230,198, 62, 0, 0, 0, 0, 0, 0, 64, 63,
-211,111,180, 62, 0, 0, 0, 0, 0, 0, 64, 63, 93, 58,217, 62, 0, 0, 0, 0,112,194, 70, 63, 19,196,217, 62, 0, 0, 0, 0,
-125, 84, 67, 63, 42,211,236, 62, 0, 0, 0, 0,125, 84, 67, 63, 42,211,236, 62, 0, 0, 0, 0,131,171, 60, 63, 42,211,236, 62,
- 0, 0, 0, 0, 0, 0, 64, 63, 93, 58,217, 62, 0, 0, 0, 0,144, 61, 57, 63, 19,196,217, 62, 0, 0, 0, 0, 0, 0, 64, 63,
- 93, 58,217, 62, 0, 0, 0, 0,131,171, 60, 63, 42,211,236, 62, 0, 0, 0, 0,131,171, 60, 63, 42,211,236, 62, 0, 0, 0, 0,
-125, 84, 67, 63, 42,211,236, 62, 0, 0, 0, 0, 0, 0, 64, 63, 0, 0, 0, 63, 0, 0, 0, 0,160,153, 57, 63,244, 1, 0, 63,
- 0, 0, 0, 0, 63, 51, 51, 63, 0, 0, 0, 63, 0, 0, 0, 0,128, 46, 54, 63, 75,207,236, 62, 0, 0, 0, 0,128, 46, 54, 63,
- 75,207,236, 62, 0, 0, 0, 0,131,171, 60, 63, 42,211,236, 62, 0, 0, 0, 0,160,153, 57, 63,244, 1, 0, 63, 0, 0, 0, 0,
- 0, 0, 64, 63, 0, 0, 0, 63, 0, 0, 0, 0,160,153, 57, 63,244, 1, 0, 63, 0, 0, 0, 0,131,171, 60, 63, 42,211,236, 62,
- 0, 0, 0, 0,131,171, 60, 63, 42,211,236, 62, 0, 0, 0, 0,128, 46, 54, 63, 75,207,236, 62, 0, 0, 0, 0,144, 61, 57, 63,
- 19,196,217, 62, 0, 0, 0, 0, 96,102, 70, 63,244, 1, 0, 63, 0, 0, 0, 0, 0, 0, 64, 63, 0, 0, 0, 63, 0, 0, 0, 0,
-125, 84, 67, 63, 42,211,236, 62, 0, 0, 0, 0,125, 84, 67, 63, 42,211,236, 62, 0, 0, 0, 0,128,209, 73, 63, 75,207,236, 62,
- 0, 0, 0, 0, 96,102, 70, 63,244, 1, 0, 63, 0, 0, 0, 0,193,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 96,102, 70, 63,
-244, 1, 0, 63, 0, 0, 0, 0,128,209, 73, 63, 75,207,236, 62, 0, 0, 0, 0,128,209, 73, 63, 75,207,236, 62, 0, 0, 0, 0,
-125, 84, 67, 63, 42,211,236, 62, 0, 0, 0, 0,112,194, 70, 63, 19,196,217, 62, 0, 0, 0, 0, 43, 22, 51, 63, 35, 48, 21, 63,
- 0, 0, 0, 0,237, 40, 45, 63,252, 29, 19, 63, 0, 0, 0, 0,255, 55, 48, 63, 94,152, 9, 63, 0, 0, 0, 0,255, 55, 48, 63,
- 94,152, 9, 63, 0, 0, 0, 0,176, 21, 54, 63,146,111, 11, 63, 0, 0, 0, 0, 43, 22, 51, 63, 35, 48, 21, 63, 0, 0, 0, 0,
- 80, 20, 57, 63,226,209, 22, 63, 0, 0, 0, 0, 43, 22, 51, 63, 35, 48, 21, 63, 0, 0, 0, 0,176, 21, 54, 63,146,111, 11, 63,
- 0, 0, 0, 0,176, 21, 54, 63,146,111, 11, 63, 0, 0, 0, 0,255, 55, 48, 63, 94,152, 9, 63, 0, 0, 0, 0, 63, 51, 51, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 43, 22, 51, 63, 35, 48, 21, 63, 0, 0, 0, 0, 80, 20, 57, 63,226,209, 22, 63, 0, 0, 0, 0,
- 91, 36, 54, 63,173, 23, 33, 63, 0, 0, 0, 0, 91, 36, 54, 63,173, 23, 33, 63, 0, 0, 0, 0, 36,214, 47, 63,105, 60, 31, 63,
- 0, 0, 0, 0, 43, 22, 51, 63, 35, 48, 21, 63, 0, 0, 0, 0,237, 40, 45, 63,252, 29, 19, 63, 0, 0, 0, 0, 43, 22, 51, 63,
- 35, 48, 21, 63, 0, 0, 0, 0, 36,214, 47, 63,105, 60, 31, 63, 0, 0, 0, 0, 36,214, 47, 63,105, 60, 31, 63, 0, 0, 0, 0,
- 91, 36, 54, 63,173, 23, 33, 63, 0, 0, 0, 0, 60,222, 50, 63,221, 52, 43, 63, 0, 0, 0, 0,181,131, 44, 63,216,228, 40, 63,
- 0, 0, 0, 0,117,102, 38, 63, 45,200, 37, 63, 0, 0, 0, 0, 38,235, 41, 63,141,140, 28, 63, 0, 0, 0, 0, 38,235, 41, 63,
-141,140, 28, 63, 0, 0, 0, 0, 36,214, 47, 63,105, 60, 31, 63, 0, 0, 0, 0,181,131, 44, 63,216,228, 40, 63, 0, 0, 0, 0,
- 60,222, 50, 63,221, 52, 43, 63, 0, 0, 0, 0,181,131, 44, 63,216,228, 40, 63, 0, 0, 0, 0, 36,214, 47, 63,105, 60, 31, 63,
- 0, 0, 0, 0, 36,214, 47, 63,105, 60, 31, 63, 0, 0, 0, 0, 38,235, 41, 63,141,140, 28, 63, 0, 0, 0, 0,237, 40, 45, 63,
-252, 29, 19, 63, 0, 0, 0, 0, 87, 97, 57, 63,200,160, 44, 63, 0, 0, 0, 0, 60,222, 50, 63,221, 52, 43, 63, 0, 0, 0, 0,
- 91, 36, 54, 63,173, 23, 33, 63, 0, 0, 0, 0, 91, 36, 54, 63,173, 23, 33, 63, 0, 0, 0, 0,251, 84, 60, 63,216, 17, 34, 63,
- 0, 0, 0, 0, 87, 97, 57, 63,200,160, 44, 63, 0, 0, 0, 0, 0, 0, 64, 63, 24, 28, 45, 63, 0, 0, 0, 0, 87, 97, 57, 63,
-200,160, 44, 63, 0, 0, 0, 0,251, 84, 60, 63,216, 17, 34, 63, 0, 0, 0, 0,251, 84, 60, 63,216, 17, 34, 63, 0, 0, 0, 0,
- 91, 36, 54, 63,173, 23, 33, 63, 0, 0, 0, 0, 80, 20, 57, 63,226,209, 22, 63, 0, 0, 0, 0,134, 14,128, 63, 39, 48, 21, 63,
- 0, 0, 0, 0,227, 30,122, 63,233,209, 22, 63, 0, 0, 0, 0,138, 29,125, 63,150,111, 11, 63, 0, 0, 0, 0,138, 29,125, 63,
-150,111, 11, 63, 0, 0, 0, 0,159,125,129, 63, 94,152, 9, 63, 0, 0, 0, 0,134, 14,128, 63, 39, 48, 21, 63, 0, 0, 0, 0,
-174, 73,193, 60,253, 29, 19, 63, 0, 0, 0, 0,209, 92,232, 57, 39, 48, 21, 63, 0, 0, 0, 0,114,207, 62, 60, 94,152, 9, 63,
- 0, 0, 0, 0,159,125,129, 63, 94,152, 9, 63, 0, 0, 0, 0,138, 29,125, 63,150,111, 11, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0,209, 92,232, 57, 39, 48, 21, 63, 0, 0, 0, 0,174, 73,193, 60,253, 29, 19, 63, 0, 0, 0, 0,
-214, 67, 87, 60,110, 60, 31, 63, 0, 0, 0, 0,136,174,129, 63,110, 60, 31, 63, 0, 0, 0, 0,213, 14,125, 63,180, 23, 33, 63,
- 0, 0, 0, 0,134, 14,128, 63, 39, 48, 21, 63, 0, 0, 0, 0,227, 30,122, 63,233,209, 22, 63, 0, 0, 0, 0,134, 14,128, 63,
- 39, 48, 21, 63, 0, 0, 0, 0,213, 14,125, 63,180, 23, 33, 63, 0, 0, 0, 0,213, 14,125, 63,180, 23, 33, 63, 0, 0, 0, 0,
-136,174,129, 63,110, 60, 31, 63, 0, 0, 0, 0,121, 42,128, 63,230, 52, 43, 63, 0, 0, 0, 0,210,209,121, 63,212,160, 44, 63,
- 0, 0, 0, 0, 36, 51,115, 63, 36, 28, 45, 63, 0, 0, 0, 0, 49,222,118, 63,226, 17, 34, 63, 0, 0, 0, 0, 49,222,118, 63,
-226, 17, 34, 63, 0, 0, 0, 0,213, 14,125, 63,180, 23, 33, 63, 0, 0, 0, 0,210,209,121, 63,212,160, 44, 63, 0, 0, 0, 0,
-121, 42,128, 63,230, 52, 43, 63, 0, 0, 0, 0,210,209,121, 63,212,160, 44, 63, 0, 0, 0, 0,213, 14,125, 63,180, 23, 33, 63,
- 0, 0, 0, 0,213, 14,125, 63,180, 23, 33, 63, 0, 0, 0, 0, 49,222,118, 63,226, 17, 34, 63, 0, 0, 0, 0,227, 30,122, 63,
-233,209, 22, 63, 0, 0, 0, 0,111,239,213, 60,223,228, 40, 63, 0, 0, 0, 0,120,226,169, 58,230, 52, 43, 63, 0, 0, 0, 0,
-214, 67, 87, 60,110, 60, 31, 63, 0, 0, 0, 0,214, 67, 87, 60,110, 60, 31, 63, 0, 0, 0, 0, 13,129, 20, 61,143,140, 28, 63,
- 0, 0, 0, 0,111,239,213, 60,223,228, 40, 63, 0, 0, 0, 0,246,203, 76, 61, 48,200, 37, 63, 0, 0, 0, 0,111,239,213, 60,
-223,228, 40, 63, 0, 0, 0, 0, 13,129, 20, 61,143,140, 28, 63, 0, 0, 0, 0, 13,129, 20, 61,143,140, 28, 63, 0, 0, 0, 0,
-214, 67, 87, 60,110, 60, 31, 63, 0, 0, 0, 0,174, 73,193, 60,253, 29, 19, 63, 0, 0, 0, 0, 44, 51,115, 63,188, 32, 23, 63,
- 0, 0, 0, 0,227, 30,122, 63,233,209, 22, 63, 0, 0, 0, 0, 49,222,118, 63,226, 17, 34, 63, 0, 0, 0, 0, 49,222,118, 63,
-226, 17, 34, 63, 0, 0, 0, 0, 31,136,111, 63,225, 17, 34, 63, 0, 0, 0, 0, 44, 51,115, 63,188, 32, 23, 63, 0, 0, 0, 0,
-116, 71,108, 63,232,209, 22, 63, 0, 0, 0, 0, 44, 51,115, 63,188, 32, 23, 63, 0, 0, 0, 0, 31,136,111, 63,225, 17, 34, 63,
- 0, 0, 0, 0, 31,136,111, 63,225, 17, 34, 63, 0, 0, 0, 0, 49,222,118, 63,226, 17, 34, 63, 0, 0, 0, 0, 36, 51,115, 63,
- 36, 28, 45, 63, 0, 0, 0, 0, 44, 51,115, 63,188, 32, 23, 63, 0, 0, 0, 0,116, 71,108, 63,232,209, 22, 63, 0, 0, 0, 0,
-213,207,111, 63,100,116, 11, 63, 0, 0, 0, 0,213,207,111, 63,100,116, 11, 63, 0, 0, 0, 0,138,150,118, 63,101,116, 11, 63,
- 0, 0, 0, 0, 44, 51,115, 63,188, 32, 23, 63, 0, 0, 0, 0,227, 30,122, 63,233,209, 22, 63, 0, 0, 0, 0, 44, 51,115, 63,
-188, 32, 23, 63, 0, 0, 0, 0,138,150,118, 63,101,116, 11, 63, 0, 0, 0, 0,138,150,118, 63,101,116, 11, 63, 0, 0, 0, 0,
-213,207,111, 63,100,116, 11, 63, 0, 0, 0, 0, 51, 51,115, 63, 0, 0, 0, 63, 0, 0, 0, 0,154,153,121, 63,244, 1, 0, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,138, 29,125, 63,150,111, 11, 63, 0, 0, 0, 0,138, 29,125, 63,
-150,111, 11, 63, 0, 0, 0, 0,138,150,118, 63,101,116, 11, 63, 0, 0, 0, 0,154,153,121, 63,244, 1, 0, 63, 0, 0, 0, 0,
- 51, 51,115, 63, 0, 0, 0, 63, 0, 0, 0, 0,154,153,121, 63,244, 1, 0, 63, 0, 0, 0, 0,138,150,118, 63,101,116, 11, 63,
- 0, 0, 0, 0,138,150,118, 63,101,116, 11, 63, 0, 0, 0, 0,138, 29,125, 63,150,111, 11, 63, 0, 0, 0, 0,227, 30,122, 63,
-233,209, 22, 63, 0, 0, 0, 0,205,204,108, 63,244, 1, 0, 63, 0, 0, 0, 0, 51, 51,115, 63, 0, 0, 0, 63, 0, 0, 0, 0,
-213,207,111, 63,100,116, 11, 63, 0, 0, 0, 0,213,207,111, 63,100,116, 11, 63, 0, 0, 0, 0,213, 72,105, 63,149,111, 11, 63,
- 0, 0, 0, 0,205,204,108, 63,244, 1, 0, 63, 0, 0, 0, 0,101,102,102, 63, 0, 0, 0, 63, 0, 0, 0, 0,205,204,108, 63,
-244, 1, 0, 63, 0, 0, 0, 0,213, 72,105, 63,149,111, 11, 63, 0, 0, 0, 0,213, 72,105, 63,149,111, 11, 63, 0, 0, 0, 0,
-213,207,111, 63,100,116, 11, 63, 0, 0, 0, 0,116, 71,108, 63,232,209, 22, 63, 0, 0, 0, 0, 58, 51,115, 63, 73, 58,217, 62,
- 0, 0, 0, 0,192,112,108, 63, 4,196,217, 62, 0, 0, 0, 0,139,174,111, 63,223,230,198, 62, 0, 0, 0, 0,139,174,111, 63,
-223,230,198, 62, 0, 0, 0, 0,239,183,118, 63,227,230,198, 62, 0, 0, 0, 0, 58, 51,115, 63, 73, 58,217, 62, 0, 0, 0, 0,
-179,245,121, 63, 6,196,217, 62, 0, 0, 0, 0, 58, 51,115, 63, 73, 58,217, 62, 0, 0, 0, 0,239,183,118, 63,227,230,198, 62,
- 0, 0, 0, 0,239,183,118, 63,227,230,198, 62, 0, 0, 0, 0,139,174,111, 63,223,230,198, 62, 0, 0, 0, 0, 65, 51,115, 63,
-160,111,180, 62, 0, 0, 0, 0, 58, 51,115, 63, 73, 58,217, 62, 0, 0, 0, 0,179,245,121, 63, 6,196,217, 62, 0, 0, 0, 0,
-185,135,118, 63, 30,211,236, 62, 0, 0, 0, 0,185,135,118, 63, 30,211,236, 62, 0, 0, 0, 0,180,222,111, 63, 30,211,236, 62,
- 0, 0, 0, 0, 58, 51,115, 63, 73, 58,217, 62, 0, 0, 0, 0,192,112,108, 63, 4,196,217, 62, 0, 0, 0, 0, 58, 51,115, 63,
- 73, 58,217, 62, 0, 0, 0, 0,180,222,111, 63, 30,211,236, 62, 0, 0, 0, 0,180,222,111, 63, 30,211,236, 62, 0, 0, 0, 0,
-185,135,118, 63, 30,211,236, 62, 0, 0, 0, 0, 51, 51,115, 63, 0, 0, 0, 63, 0, 0, 0, 0,205,204,108, 63,244, 1, 0, 63,
- 0, 0, 0, 0,101,102,102, 63, 0, 0, 0, 63, 0, 0, 0, 0,170, 97,105, 63, 65,207,236, 62, 0, 0, 0, 0,170, 97,105, 63,
- 65,207,236, 62, 0, 0, 0, 0,180,222,111, 63, 30,211,236, 62, 0, 0, 0, 0,205,204,108, 63,244, 1, 0, 63, 0, 0, 0, 0,
- 51, 51,115, 63, 0, 0, 0, 63, 0, 0, 0, 0,205,204,108, 63,244, 1, 0, 63, 0, 0, 0, 0,180,222,111, 63, 30,211,236, 62,
- 0, 0, 0, 0,180,222,111, 63, 30,211,236, 62, 0, 0, 0, 0,170, 97,105, 63, 65,207,236, 62, 0, 0, 0, 0,192,112,108, 63,
- 4,196,217, 62, 0, 0, 0, 0,154,153,121, 63,244, 1, 0, 63, 0, 0, 0, 0, 51, 51,115, 63, 0, 0, 0, 63, 0, 0, 0, 0,
-185,135,118, 63, 30,211,236, 62, 0, 0, 0, 0,185,135,118, 63, 30,211,236, 62, 0, 0, 0, 0,194, 4,125, 63, 67,207,236, 62,
- 0, 0, 0, 0,154,153,121, 63,244, 1, 0, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,154,153,121, 63,
-244, 1, 0, 63, 0, 0, 0, 0,194, 4,125, 63, 67,207,236, 62, 0, 0, 0, 0,194, 4,125, 63, 67,207,236, 62, 0, 0, 0, 0,
-185,135,118, 63, 30,211,236, 62, 0, 0, 0, 0,179,245,121, 63, 6,196,217, 62, 0, 0, 0, 0, 76, 73,102, 63, 38, 48, 21, 63,
- 0, 0, 0, 0, 11, 92, 96, 63,253, 29, 19, 63, 0, 0, 0, 0, 33,107, 99, 63, 94,152, 9, 63, 0, 0, 0, 0, 33,107, 99, 63,
- 94,152, 9, 63, 0, 0, 0, 0,213, 72,105, 63,149,111, 11, 63, 0, 0, 0, 0, 76, 73,102, 63, 38, 48, 21, 63, 0, 0, 0, 0,
-116, 71,108, 63,232,209, 22, 63, 0, 0, 0, 0, 76, 73,102, 63, 38, 48, 21, 63, 0, 0, 0, 0,213, 72,105, 63,149,111, 11, 63,
- 0, 0, 0, 0,213, 72,105, 63,149,111, 11, 63, 0, 0, 0, 0, 33,107, 99, 63, 94,152, 9, 63, 0, 0, 0, 0,101,102,102, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 76, 73,102, 63, 38, 48, 21, 63, 0, 0, 0, 0,116, 71,108, 63,232,209, 22, 63, 0, 0, 0, 0,
-124, 87,105, 63,180, 23, 33, 63, 0, 0, 0, 0,124, 87,105, 63,180, 23, 33, 63, 0, 0, 0, 0, 65, 9, 99, 63,109, 60, 31, 63,
- 0, 0, 0, 0, 76, 73,102, 63, 38, 48, 21, 63, 0, 0, 0, 0, 11, 92, 96, 63,253, 29, 19, 63, 0, 0, 0, 0, 76, 73,102, 63,
- 38, 48, 21, 63, 0, 0, 0, 0, 65, 9, 99, 63,109, 60, 31, 63, 0, 0, 0, 0, 65, 9, 99, 63,109, 60, 31, 63, 0, 0, 0, 0,
-124, 87,105, 63,180, 23, 33, 63, 0, 0, 0, 0, 87, 17,102, 63,229, 52, 43, 63, 0, 0, 0, 0,205,182, 95, 63,222,228, 40, 63,
- 0, 0, 0, 0,139,153, 89, 63, 45,200, 37, 63, 0, 0, 0, 0, 63, 30, 93, 63,143,140, 28, 63, 0, 0, 0, 0, 63, 30, 93, 63,
-143,140, 28, 63, 0, 0, 0, 0, 65, 9, 99, 63,109, 60, 31, 63, 0, 0, 0, 0,205,182, 95, 63,222,228, 40, 63, 0, 0, 0, 0,
- 87, 17,102, 63,229, 52, 43, 63, 0, 0, 0, 0,205,182, 95, 63,222,228, 40, 63, 0, 0, 0, 0, 65, 9, 99, 63,109, 60, 31, 63,
- 0, 0, 0, 0, 65, 9, 99, 63,109, 60, 31, 63, 0, 0, 0, 0, 63, 30, 93, 63,143,140, 28, 63, 0, 0, 0, 0, 11, 92, 96, 63,
-253, 29, 19, 63, 0, 0, 0, 0,118,148,108, 63,211,160, 44, 63, 0, 0, 0, 0, 87, 17,102, 63,229, 52, 43, 63, 0, 0, 0, 0,
-124, 87,105, 63,180, 23, 33, 63, 0, 0, 0, 0,124, 87,105, 63,180, 23, 33, 63, 0, 0, 0, 0, 31,136,111, 63,225, 17, 34, 63,
- 0, 0, 0, 0,118,148,108, 63,211,160, 44, 63, 0, 0, 0, 0, 36, 51,115, 63, 36, 28, 45, 63, 0, 0, 0, 0,118,148,108, 63,
-211,160, 44, 63, 0, 0, 0, 0, 31,136,111, 63,225, 17, 34, 63, 0, 0, 0, 0, 31,136,111, 63,225, 17, 34, 63, 0, 0, 0, 0,
-124, 87,105, 63,180, 23, 33, 63, 0, 0, 0, 0,116, 71,108, 63,232,209, 22, 63, 0, 0, 0, 0, 65, 65, 77, 62, 32, 48, 21, 63,
- 0, 0, 0, 0,152, 72, 53, 62,229,209, 22, 63, 0, 0, 0, 0, 47, 67, 65, 62,147,111, 11, 63, 0, 0, 0, 0, 47, 67, 65, 62,
-147,111, 11, 63, 0, 0, 0, 0,255,185, 88, 62, 90,152, 9, 63, 0, 0, 0, 0, 65, 65, 77, 62, 32, 48, 21, 63, 0, 0, 0, 0,
- 64,246,100, 62,246, 29, 19, 63, 0, 0, 0, 0, 65, 65, 77, 62, 32, 48, 21, 63, 0, 0, 0, 0,255,185, 88, 62, 90,152, 9, 63,
- 0, 0, 0, 0,255,185, 88, 62, 90,152, 9, 63, 0, 0, 0, 0, 47, 67, 65, 62,147,111, 11, 63, 0, 0, 0, 0,254,204, 76, 62,
- 0, 0, 0, 63, 0, 0, 0, 0, 65, 65, 77, 62, 32, 48, 21, 63, 0, 0, 0, 0, 64,246,100, 62,246, 29, 19, 63, 0, 0, 0, 0,
- 89, 65, 90, 62, 94, 60, 31, 63, 0, 0, 0, 0, 89, 65, 90, 62, 94, 60, 31, 63, 0, 0, 0, 0,107, 8, 65, 62,170, 23, 33, 63,
- 0, 0, 0, 0, 65, 65, 77, 62, 32, 48, 21, 63, 0, 0, 0, 0,152, 72, 53, 62,229,209, 22, 63, 0, 0, 0, 0, 65, 65, 77, 62,
- 32, 48, 21, 63, 0, 0, 0, 0,107, 8, 65, 62,170, 23, 33, 63, 0, 0, 0, 0,107, 8, 65, 62,170, 23, 33, 63, 0, 0, 0, 0,
- 89, 65, 90, 62, 94, 60, 31, 63, 0, 0, 0, 0,230, 32, 78, 62,211, 52, 43, 63, 0, 0, 0, 0,105, 20, 52, 62,198,160, 44, 63,
- 0, 0, 0, 0,173,153, 25, 62, 27, 28, 45, 63, 0, 0, 0, 0,216, 69, 40, 62,220, 17, 34, 63, 0, 0, 0, 0,216, 69, 40, 62,
-220, 17, 34, 63, 0, 0, 0, 0,107, 8, 65, 62,170, 23, 33, 63, 0, 0, 0, 0,105, 20, 52, 62,198,160, 44, 63, 0, 0, 0, 0,
-230, 32, 78, 62,211, 52, 43, 63, 0, 0, 0, 0,105, 20, 52, 62,198,160, 44, 63, 0, 0, 0, 0,107, 8, 65, 62,170, 23, 33, 63,
- 0, 0, 0, 0,107, 8, 65, 62,170, 23, 33, 63, 0, 0, 0, 0,216, 69, 40, 62,220, 17, 34, 63, 0, 0, 0, 0,152, 72, 53, 62,
-229,209, 22, 63, 0, 0, 0, 0, 14,139,103, 62,199,228, 40, 63, 0, 0, 0, 0,230, 32, 78, 62,211, 52, 43, 63, 0, 0, 0, 0,
- 89, 65, 90, 62, 94, 60, 31, 63, 0, 0, 0, 0, 89, 65, 90, 62, 94, 60, 31, 63, 0, 0, 0, 0, 83,237,113, 62,130,140, 28, 63,
- 0, 0, 0, 0, 14,139,103, 62,199,228, 40, 63, 0, 0, 0, 0, 0, 0,128, 62, 23,200, 37, 63, 0, 0, 0, 0, 14,139,103, 62,
-199,228, 40, 63, 0, 0, 0, 0, 83,237,113, 62,130,140, 28, 63, 0, 0, 0, 0, 83,237,113, 62,130,140, 28, 63, 0, 0, 0, 0,
- 89, 65, 90, 62, 94, 60, 31, 63, 0, 0, 0, 0, 64,246,100, 62,246, 29, 19, 63, 0, 0, 0, 0,180,153, 25, 62,185, 32, 23, 63,
- 0, 0, 0, 0,152, 72, 53, 62,229,209, 22, 63, 0, 0, 0, 0,216, 69, 40, 62,220, 17, 34, 63, 0, 0, 0, 0,216, 69, 40, 62,
-220, 17, 34, 63, 0, 0, 0, 0,133,237, 10, 62,219, 17, 34, 63, 0, 0, 0, 0,180,153, 25, 62,185, 32, 23, 63, 0, 0, 0, 0,
-147,213,251, 61,228,209, 22, 63, 0, 0, 0, 0,180,153, 25, 62,185, 32, 23, 63, 0, 0, 0, 0,133,237, 10, 62,219, 17, 34, 63,
- 0, 0, 0, 0,133,237, 10, 62,219, 17, 34, 63, 0, 0, 0, 0,216, 69, 40, 62,220, 17, 34, 63, 0, 0, 0, 0,173,153, 25, 62,
- 27, 28, 45, 63, 0, 0, 0, 0,180,153, 25, 62,185, 32, 23, 63, 0, 0, 0, 0,147,213,251, 61,228,209, 22, 63, 0, 0, 0, 0,
- 67, 12, 12, 62, 98,116, 11, 63, 0, 0, 0, 0, 67, 12, 12, 62, 98,116, 11, 63, 0, 0, 0, 0, 34, 39, 39, 62, 98,116, 11, 63,
- 0, 0, 0, 0,180,153, 25, 62,185, 32, 23, 63, 0, 0, 0, 0,152, 72, 53, 62,229,209, 22, 63, 0, 0, 0, 0,180,153, 25, 62,
-185, 32, 23, 63, 0, 0, 0, 0, 34, 39, 39, 62, 98,116, 11, 63, 0, 0, 0, 0, 34, 39, 39, 62, 98,116, 11, 63, 0, 0, 0, 0,
- 67, 12, 12, 62, 98,116, 11, 63, 0, 0, 0, 0,181,153, 25, 62, 0, 0, 0, 63, 0, 0, 0, 0, 92, 51, 51, 62,244, 1, 0, 63,
- 0, 0, 0, 0,254,204, 76, 62, 0, 0, 0, 63, 0, 0, 0, 0, 47, 67, 65, 62,147,111, 11, 63, 0, 0, 0, 0, 47, 67, 65, 62,
-147,111, 11, 63, 0, 0, 0, 0, 34, 39, 39, 62, 98,116, 11, 63, 0, 0, 0, 0, 92, 51, 51, 62,244, 1, 0, 63, 0, 0, 0, 0,
-181,153, 25, 62, 0, 0, 0, 63, 0, 0, 0, 0, 92, 51, 51, 62,244, 1, 0, 63, 0, 0, 0, 0, 34, 39, 39, 62, 98,116, 11, 63,
- 0, 0, 0, 0, 34, 39, 39, 62, 98,116, 11, 63, 0, 0, 0, 0, 47, 67, 65, 62,147,111, 11, 63, 0, 0, 0, 0,152, 72, 53, 62,
-229,209, 22, 63, 0, 0, 0, 0, 8, 0, 0, 62,244, 1, 0, 63, 0, 0, 0, 0,181,153, 25, 62, 0, 0, 0, 63, 0, 0, 0, 0,
- 67, 12, 12, 62, 98,116, 11, 63, 0, 0, 0, 0, 67, 12, 12, 62, 98,116, 11, 63, 0, 0, 0, 0,109,224,227, 61,147,111, 11, 63,
- 0, 0, 0, 0, 8, 0, 0, 62,244, 1, 0, 63, 0, 0, 0, 0,215,204,204, 61, 0, 0, 0, 63, 0, 0, 0, 0, 8, 0, 0, 62,
-244, 1, 0, 63, 0, 0, 0, 0,109,224,227, 61,147,111, 11, 63, 0, 0, 0, 0,109,224,227, 61,147,111, 11, 63, 0, 0, 0, 0,
- 67, 12, 12, 62, 98,116, 11, 63, 0, 0, 0, 0,147,213,251, 61,228,209, 22, 63, 0, 0, 0, 0,196,153, 25, 62, 73, 58,217, 62,
- 0, 0, 0, 0,171, 31,253, 61, 6,196,217, 62, 0, 0, 0, 0, 1,135, 11, 62,228,230,198, 62, 0, 0, 0, 0, 1,135, 11, 62,
-228,230,198, 62, 0, 0, 0, 0,153,172, 39, 62,230,230,198, 62, 0, 0, 0, 0,196,153, 25, 62, 73, 58,217, 62, 0, 0, 0, 0,
-179,163, 52, 62, 7,196,217, 62, 0, 0, 0, 0,196,153, 25, 62, 73, 58,217, 62, 0, 0, 0, 0,153,172, 39, 62,230,230,198, 62,
- 0, 0, 0, 0,153,172, 39, 62,230,230,198, 62, 0, 0, 0, 0, 1,135, 11, 62,228,230,198, 62, 0, 0, 0, 0,214,153, 25, 62,
-165,111,180, 62, 0, 0, 0, 0,196,153, 25, 62, 73, 58,217, 62, 0, 0, 0, 0,179,163, 52, 62, 7,196,217, 62, 0, 0, 0, 0,
-202,235, 38, 62, 33,211,236, 62, 0, 0, 0, 0,202,235, 38, 62, 33,211,236, 62, 0, 0, 0, 0,173, 71, 12, 62, 31,211,236, 62,
- 0, 0, 0, 0,196,153, 25, 62, 73, 58,217, 62, 0, 0, 0, 0,171, 31,253, 61, 6,196,217, 62, 0, 0, 0, 0,196,153, 25, 62,
- 73, 58,217, 62, 0, 0, 0, 0,173, 71, 12, 62, 31,211,236, 62, 0, 0, 0, 0,173, 71, 12, 62, 31,211,236, 62, 0, 0, 0, 0,
-202,235, 38, 62, 33,211,236, 62, 0, 0, 0, 0,181,153, 25, 62, 0, 0, 0, 63, 0, 0, 0, 0, 8, 0, 0, 62,244, 1, 0, 63,
- 0, 0, 0, 0,215,204,204, 61, 0, 0, 0, 63, 0, 0, 0, 0,251,166,228, 61, 67,207,236, 62, 0, 0, 0, 0,251,166,228, 61,
- 67,207,236, 62, 0, 0, 0, 0,173, 71, 12, 62, 31,211,236, 62, 0, 0, 0, 0, 8, 0, 0, 62,244, 1, 0, 63, 0, 0, 0, 0,
-181,153, 25, 62, 0, 0, 0, 63, 0, 0, 0, 0, 8, 0, 0, 62,244, 1, 0, 63, 0, 0, 0, 0,173, 71, 12, 62, 31,211,236, 62,
- 0, 0, 0, 0,173, 71, 12, 62, 31,211,236, 62, 0, 0, 0, 0,251,166,228, 61, 67,207,236, 62, 0, 0, 0, 0,171, 31,253, 61,
- 6,196,217, 62, 0, 0, 0, 0, 92, 51, 51, 62,244, 1, 0, 63, 0, 0, 0, 0,181,153, 25, 62, 0, 0, 0, 63, 0, 0, 0, 0,
-202,235, 38, 62, 33,211,236, 62, 0, 0, 0, 0,202,235, 38, 62, 33,211,236, 62, 0, 0, 0, 0,251,223, 64, 62, 67,207,236, 62,
- 0, 0, 0, 0, 92, 51, 51, 62,244, 1, 0, 63, 0, 0, 0, 0,254,204, 76, 62, 0, 0, 0, 63, 0, 0, 0, 0, 92, 51, 51, 62,
-244, 1, 0, 63, 0, 0, 0, 0,251,223, 64, 62, 67,207,236, 62, 0, 0, 0, 0,251,223, 64, 62, 67,207,236, 62, 0, 0, 0, 0,
-202,235, 38, 62, 33,211,236, 62, 0, 0, 0, 0,179,163, 52, 62, 7,196,217, 62, 0, 0, 0, 0, 42,228,203, 61, 37, 48, 21, 63,
- 0, 0, 0, 0, 1,122,156, 61,254, 29, 19, 63, 0, 0, 0, 0,172,242,180, 61, 96,152, 9, 63, 0, 0, 0, 0,172,242,180, 61,
- 96,152, 9, 63, 0, 0, 0, 0,109,224,227, 61,147,111, 11, 63, 0, 0, 0, 0, 42,228,203, 61, 37, 48, 21, 63, 0, 0, 0, 0,
-147,213,251, 61,228,209, 22, 63, 0, 0, 0, 0, 42,228,203, 61, 37, 48, 21, 63, 0, 0, 0, 0,109,224,227, 61,147,111, 11, 63,
- 0, 0, 0, 0,109,224,227, 61,147,111, 11, 63, 0, 0, 0, 0,172,242,180, 61, 96,152, 9, 63, 0, 0, 0, 0,215,204,204, 61,
- 0, 0, 0, 63, 0, 0, 0, 0, 42,228,203, 61, 37, 48, 21, 63, 0, 0, 0, 0,147,213,251, 61,228,209, 22, 63, 0, 0, 0, 0,
-208, 85,228, 61,179, 23, 33, 63, 0, 0, 0, 0,208, 85,228, 61,179, 23, 33, 63, 0, 0, 0, 0,212,227,177, 61,110, 60, 31, 63,
- 0, 0, 0, 0, 42,228,203, 61, 37, 48, 21, 63, 0, 0, 0, 0, 1,122,156, 61,254, 29, 19, 63, 0, 0, 0, 0, 42,228,203, 61,
- 37, 48, 21, 63, 0, 0, 0, 0,212,227,177, 61,110, 60, 31, 63, 0, 0, 0, 0,212,227,177, 61,110, 60, 31, 63, 0, 0, 0, 0,
-208, 85,228, 61,179, 23, 33, 63, 0, 0, 0, 0,175, 36,202, 61,228, 52, 43, 63, 0, 0, 0, 0, 53, 80,151, 61,223,228, 40, 63,
- 0, 0, 0, 0,246,203, 76, 61, 48,200, 37, 63, 0, 0, 0, 0,166,139,130, 61,145,140, 28, 63, 0, 0, 0, 0,166,139,130, 61,
-145,140, 28, 63, 0, 0, 0, 0,212,227,177, 61,110, 60, 31, 63, 0, 0, 0, 0, 53, 80,151, 61,223,228, 40, 63, 0, 0, 0, 0,
-175, 36,202, 61,228, 52, 43, 63, 0, 0, 0, 0, 53, 80,151, 61,223,228, 40, 63, 0, 0, 0, 0,212,227,177, 61,110, 60, 31, 63,
- 0, 0, 0, 0,212,227,177, 61,110, 60, 31, 63, 0, 0, 0, 0,166,139,130, 61,145,140, 28, 63, 0, 0, 0, 0, 1,122,156, 61,
-254, 29, 19, 63, 0, 0, 0, 0,201, 61,254, 61,207,160, 44, 63, 0, 0, 0, 0,175, 36,202, 61,228, 52, 43, 63, 0, 0, 0, 0,
-208, 85,228, 61,179, 23, 33, 63, 0, 0, 0, 0,208, 85,228, 61,179, 23, 33, 63, 0, 0, 0, 0,133,237, 10, 62,219, 17, 34, 63,
- 0, 0, 0, 0,201, 61,254, 61,207,160, 44, 63, 0, 0, 0, 0,173,153, 25, 62, 27, 28, 45, 63, 0, 0, 0, 0,201, 61,254, 61,
-207,160, 44, 63, 0, 0, 0, 0,133,237, 10, 62,219, 17, 34, 63, 0, 0, 0, 0,133,237, 10, 62,219, 17, 34, 63, 0, 0, 0, 0,
-208, 85,228, 61,179, 23, 33, 63, 0, 0, 0, 0,147,213,251, 61,228,209, 22, 63, 0, 0, 0, 0,245, 6,205, 62, 37, 48, 21, 63,
- 0, 0, 0, 0,155, 10,193, 62,229,209, 22, 63, 0, 0, 0, 0,229, 7,199, 62,147,111, 11, 63, 0, 0, 0, 0,229, 7,199, 62,
-147,111, 11, 63, 0, 0, 0, 0, 85,195,210, 62, 96,152, 9, 63, 0, 0, 0, 0,245, 6,205, 62, 37, 48, 21, 63, 0, 0, 0, 0,
-128,225,216, 62,254, 29, 19, 63, 0, 0, 0, 0,245, 6,205, 62, 37, 48, 21, 63, 0, 0, 0, 0, 85,195,210, 62, 96,152, 9, 63,
- 0, 0, 0, 0, 85,195,210, 62, 96,152, 9, 63, 0, 0, 0, 0,229, 7,199, 62,147,111, 11, 63, 0, 0, 0, 0,202,204,204, 62,
- 0, 0, 0, 63, 0, 0, 0, 0,245, 6,205, 62, 37, 48, 21, 63, 0, 0, 0, 0,128,225,216, 62,254, 29, 19, 63, 0, 0, 0, 0,
- 11,135,211, 62,110, 60, 31, 63, 0, 0, 0, 0, 11,135,211, 62,110, 60, 31, 63, 0, 0, 0, 0,140,234,198, 62,179, 23, 33, 63,
- 0, 0, 0, 0,245, 6,205, 62, 37, 48, 21, 63, 0, 0, 0, 0,155, 10,193, 62,229,209, 22, 63, 0, 0, 0, 0,245, 6,205, 62,
- 37, 48, 21, 63, 0, 0, 0, 0,140,234,198, 62,179, 23, 33, 63, 0, 0, 0, 0,140,234,198, 62,179, 23, 33, 63, 0, 0, 0, 0,
- 11,135,211, 62,110, 60, 31, 63, 0, 0, 0, 0,212,118,205, 62,228, 52, 43, 63, 0, 0, 0, 0,142,112,192, 62,207,160, 44, 63,
- 0, 0, 0, 0, 42, 51,179, 62, 28, 28, 45, 63, 0, 0, 0, 0, 61,137,186, 62,219, 17, 34, 63, 0, 0, 0, 0, 61,137,186, 62,
-219, 17, 34, 63, 0, 0, 0, 0,140,234,198, 62,179, 23, 33, 63, 0, 0, 0, 0,142,112,192, 62,207,160, 44, 63, 0, 0, 0, 0,
-212,118,205, 62,228, 52, 43, 63, 0, 0, 0, 0,142,112,192, 62,207,160, 44, 63, 0, 0, 0, 0,140,234,198, 62,179, 23, 33, 63,
- 0, 0, 0, 0,140,234,198, 62,179, 23, 33, 63, 0, 0, 0, 0, 61,137,186, 62,219, 17, 34, 63, 0, 0, 0, 0,155, 10,193, 62,
-229,209, 22, 63, 0, 0, 0, 0,243, 43,218, 62,223,228, 40, 63, 0, 0, 0, 0,212,118,205, 62,228, 52, 43, 63, 0, 0, 0, 0,
- 11,135,211, 62,110, 60, 31, 63, 0, 0, 0, 0, 11,135,211, 62,110, 60, 31, 63, 0, 0, 0, 0, 22, 93,223, 62,145,140, 28, 63,
- 0, 0, 0, 0,243, 43,218, 62,223,228, 40, 63, 0, 0, 0, 0,129,102,230, 62, 48,200, 37, 63, 0, 0, 0, 0,243, 43,218, 62,
-223,228, 40, 63, 0, 0, 0, 0, 22, 93,223, 62,145,140, 28, 63, 0, 0, 0, 0, 22, 93,223, 62,145,140, 28, 63, 0, 0, 0, 0,
- 11,135,211, 62,110, 60, 31, 63, 0, 0, 0, 0,128,225,216, 62,254, 29, 19, 63, 0, 0, 0, 0, 38, 51,179, 62,185, 32, 23, 63,
- 0, 0, 0, 0,155, 10,193, 62,229,209, 22, 63, 0, 0, 0, 0, 61,137,186, 62,219, 17, 34, 63, 0, 0, 0, 0, 61,137,186, 62,
-219, 17, 34, 63, 0, 0, 0, 0, 20,221,171, 62,219, 17, 34, 63, 0, 0, 0, 0, 38, 51,179, 62,185, 32, 23, 63, 0, 0, 0, 0,
-180, 91,165, 62,229,209, 22, 63, 0, 0, 0, 0, 38, 51,179, 62,185, 32, 23, 63, 0, 0, 0, 0, 20,221,171, 62,219, 17, 34, 63,
- 0, 0, 0, 0, 20,221,171, 62,219, 17, 34, 63, 0, 0, 0, 0, 61,137,186, 62,219, 17, 34, 63, 0, 0, 0, 0, 42, 51,179, 62,
- 28, 28, 45, 63, 0, 0, 0, 0, 38, 51,179, 62,185, 32, 23, 63, 0, 0, 0, 0,180, 91,165, 62,229,209, 22, 63, 0, 0, 0, 0,
-111,108,172, 62, 98,116, 11, 63, 0, 0, 0, 0,111,108,172, 62, 98,116, 11, 63, 0, 0, 0, 0,222,249,185, 62, 98,116, 11, 63,
- 0, 0, 0, 0, 38, 51,179, 62,185, 32, 23, 63, 0, 0, 0, 0,155, 10,193, 62,229,209, 22, 63, 0, 0, 0, 0, 38, 51,179, 62,
-185, 32, 23, 63, 0, 0, 0, 0,222,249,185, 62, 98,116, 11, 63, 0, 0, 0, 0,222,249,185, 62, 98,116, 11, 63, 0, 0, 0, 0,
-111,108,172, 62, 98,116, 11, 63, 0, 0, 0, 0, 38, 51,179, 62, 0, 0, 0, 63, 0, 0, 0, 0,252,255,191, 62,244, 1, 0, 63,
- 0, 0, 0, 0,202,204,204, 62, 0, 0, 0, 63, 0, 0, 0, 0,229, 7,199, 62,147,111, 11, 63, 0, 0, 0, 0,229, 7,199, 62,
-147,111, 11, 63, 0, 0, 0, 0,222,249,185, 62, 98,116, 11, 63, 0, 0, 0, 0,252,255,191, 62,244, 1, 0, 63, 0, 0, 0, 0,
- 38, 51,179, 62, 0, 0, 0, 63, 0, 0, 0, 0,252,255,191, 62,244, 1, 0, 63, 0, 0, 0, 0,222,249,185, 62, 98,116, 11, 63,
- 0, 0, 0, 0,222,249,185, 62, 98,116, 11, 63, 0, 0, 0, 0,229, 7,199, 62,147,111, 11, 63, 0, 0, 0, 0,155, 10,193, 62,
-229,209, 22, 63, 0, 0, 0, 0, 82,102,166, 62,244, 1, 0, 63, 0, 0, 0, 0, 38, 51,179, 62, 0, 0, 0, 63, 0, 0, 0, 0,
-111,108,172, 62, 98,116, 11, 63, 0, 0, 0, 0,111,108,172, 62, 98,116, 11, 63, 0, 0, 0, 0,104, 94,159, 62,147,111, 11, 63,
- 0, 0, 0, 0, 82,102,166, 62,244, 1, 0, 63, 0, 0, 0, 0,129,153,153, 62, 0, 0, 0, 63, 0, 0, 0, 0, 82,102,166, 62,
-244, 1, 0, 63, 0, 0, 0, 0,104, 94,159, 62,147,111, 11, 63, 0, 0, 0, 0,104, 94,159, 62,147,111, 11, 63, 0, 0, 0, 0,
-111,108,172, 62, 98,116, 11, 63, 0, 0, 0, 0,180, 91,165, 62,229,209, 22, 63, 0, 0, 0, 0, 30, 51,179, 62, 73, 58,217, 62,
- 0, 0, 0, 0, 39,174,165, 62, 7,196,217, 62, 0, 0, 0, 0,180, 41,172, 62,227,230,198, 62, 0, 0, 0, 0,180, 41,172, 62,
-227,230,198, 62, 0, 0, 0, 0,127, 60,186, 62,225,230,198, 62, 0, 0, 0, 0, 30, 51,179, 62, 73, 58,217, 62, 0, 0, 0, 0,
- 21,184,192, 62, 6,196,217, 62, 0, 0, 0, 0, 30, 51,179, 62, 73, 58,217, 62, 0, 0, 0, 0,127, 60,186, 62,225,230,198, 62,
- 0, 0, 0, 0,127, 60,186, 62,225,230,198, 62, 0, 0, 0, 0,180, 41,172, 62,227,230,198, 62, 0, 0, 0, 0, 21, 51,179, 62,
-165,111,180, 62, 0, 0, 0, 0, 30, 51,179, 62, 73, 58,217, 62, 0, 0, 0, 0, 21,184,192, 62, 6,196,217, 62, 0, 0, 0, 0,
- 42,220,185, 62, 31,211,236, 62, 0, 0, 0, 0, 42,220,185, 62, 31,211,236, 62, 0, 0, 0, 0, 27,138,172, 62, 33,211,236, 62,
- 0, 0, 0, 0, 30, 51,179, 62, 73, 58,217, 62, 0, 0, 0, 0, 39,174,165, 62, 7,196,217, 62, 0, 0, 0, 0, 30, 51,179, 62,
- 73, 58,217, 62, 0, 0, 0, 0, 27,138,172, 62, 33,211,236, 62, 0, 0, 0, 0, 27,138,172, 62, 33,211,236, 62, 0, 0, 0, 0,
- 42,220,185, 62, 31,211,236, 62, 0, 0, 0, 0, 38, 51,179, 62, 0, 0, 0, 63, 0, 0, 0, 0, 82,102,166, 62,244, 1, 0, 63,
- 0, 0, 0, 0,129,153,153, 62, 0, 0, 0, 63, 0, 0, 0, 0, 3,144,159, 62, 67,207,236, 62, 0, 0, 0, 0, 3,144,159, 62,
- 67,207,236, 62, 0, 0, 0, 0, 27,138,172, 62, 33,211,236, 62, 0, 0, 0, 0, 82,102,166, 62,244, 1, 0, 63, 0, 0, 0, 0,
- 38, 51,179, 62, 0, 0, 0, 63, 0, 0, 0, 0, 82,102,166, 62,244, 1, 0, 63, 0, 0, 0, 0, 27,138,172, 62, 33,211,236, 62,
- 0, 0, 0, 0, 27,138,172, 62, 33,211,236, 62, 0, 0, 0, 0, 3,144,159, 62, 67,207,236, 62, 0, 0, 0, 0, 39,174,165, 62,
- 7,196,217, 62, 0, 0, 0, 0,252,255,191, 62,244, 1, 0, 63, 0, 0, 0, 0, 38, 51,179, 62, 0, 0, 0, 63, 0, 0, 0, 0,
- 42,220,185, 62, 31,211,236, 62, 0, 0, 0, 0, 42,220,185, 62, 31,211,236, 62, 0, 0, 0, 0, 65,214,198, 62, 67,207,236, 62,
- 0, 0, 0, 0,252,255,191, 62,244, 1, 0, 63, 0, 0, 0, 0,202,204,204, 62, 0, 0, 0, 63, 0, 0, 0, 0,252,255,191, 62,
-244, 1, 0, 63, 0, 0, 0, 0, 65,214,198, 62, 67,207,236, 62, 0, 0, 0, 0, 65,214,198, 62, 67,207,236, 62, 0, 0, 0, 0,
- 42,220,185, 62, 31,211,236, 62, 0, 0, 0, 0, 21,184,192, 62, 6,196,217, 62, 0, 0, 0, 0, 95, 95,153, 62, 32, 48, 21, 63,
- 0, 0, 0, 0,224,132,141, 62,246, 29, 19, 63, 0, 0, 0, 0, 1,163,147, 62, 91,152, 9, 63, 0, 0, 0, 0, 1,163,147, 62,
- 91,152, 9, 63, 0, 0, 0, 0,104, 94,159, 62,147,111, 11, 63, 0, 0, 0, 0, 95, 95,153, 62, 32, 48, 21, 63, 0, 0, 0, 0,
-180, 91,165, 62,229,209, 22, 63, 0, 0, 0, 0, 95, 95,153, 62, 32, 48, 21, 63, 0, 0, 0, 0,104, 94,159, 62,147,111, 11, 63,
- 0, 0, 0, 0,104, 94,159, 62,147,111, 11, 63, 0, 0, 0, 0, 1,163,147, 62, 91,152, 9, 63, 0, 0, 0, 0,129,153,153, 62,
- 0, 0, 0, 63, 0, 0, 0, 0, 95, 95,153, 62, 32, 48, 21, 63, 0, 0, 0, 0,180, 91,165, 62,229,209, 22, 63, 0, 0, 0, 0,
-203,123,159, 62,170, 23, 33, 63, 0, 0, 0, 0,203,123,159, 62,170, 23, 33, 63, 0, 0, 0, 0, 84,223,146, 62, 94, 60, 31, 63,
- 0, 0, 0, 0, 95, 95,153, 62, 32, 48, 21, 63, 0, 0, 0, 0,224,132,141, 62,246, 29, 19, 63, 0, 0, 0, 0, 95, 95,153, 62,
- 32, 48, 21, 63, 0, 0, 0, 0, 84,223,146, 62, 94, 60, 31, 63, 0, 0, 0, 0, 84,223,146, 62, 94, 60, 31, 63, 0, 0, 0, 0,
-203,123,159, 62,170, 23, 33, 63, 0, 0, 0, 0,141,239,152, 62,211, 52, 43, 63, 0, 0, 0, 0,121, 58,140, 62,199,228, 40, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 23,200, 37, 63, 0, 0, 0, 0, 86, 9,135, 62,130,140, 28, 63, 0, 0, 0, 0, 86, 9,135, 62,
-130,140, 28, 63, 0, 0, 0, 0, 84,223,146, 62, 94, 60, 31, 63, 0, 0, 0, 0,121, 58,140, 62,199,228, 40, 63, 0, 0, 0, 0,
-141,239,152, 62,211, 52, 43, 63, 0, 0, 0, 0,121, 58,140, 62,199,228, 40, 63, 0, 0, 0, 0, 84,223,146, 62, 94, 60, 31, 63,
- 0, 0, 0, 0, 84,223,146, 62, 94, 60, 31, 63, 0, 0, 0, 0, 86, 9,135, 62,130,140, 28, 63, 0, 0, 0, 0,224,132,141, 62,
-246, 29, 19, 63, 0, 0, 0, 0,204,245,165, 62,198,160, 44, 63, 0, 0, 0, 0,141,239,152, 62,211, 52, 43, 63, 0, 0, 0, 0,
-203,123,159, 62,170, 23, 33, 63, 0, 0, 0, 0,203,123,159, 62,170, 23, 33, 63, 0, 0, 0, 0, 20,221,171, 62,219, 17, 34, 63,
- 0, 0, 0, 0,204,245,165, 62,198,160, 44, 63, 0, 0, 0, 0, 42, 51,179, 62, 28, 28, 45, 63, 0, 0, 0, 0,204,245,165, 62,
-198,160, 44, 63, 0, 0, 0, 0, 20,221,171, 62,219, 17, 34, 63, 0, 0, 0, 0, 20,221,171, 62,219, 17, 34, 63, 0, 0, 0, 0,
-203,123,159, 62,170, 23, 33, 63, 0, 0, 0, 0,180, 91,165, 62,229,209, 22, 63, 0, 0, 0, 0,180,182, 25, 63, 38, 48, 21, 63,
- 0, 0, 0, 0,140,184, 19, 63,232,209, 22, 63, 0, 0, 0, 0, 43,183, 22, 63,149,111, 11, 63, 0, 0, 0, 0, 43,183, 22, 63,
-149,111, 11, 63, 0, 0, 0, 0,223,148, 28, 63, 94,152, 9, 63, 0, 0, 0, 0,180,182, 25, 63, 38, 48, 21, 63, 0, 0, 0, 0,
-245,163, 31, 63,253, 29, 19, 63, 0, 0, 0, 0,180,182, 25, 63, 38, 48, 21, 63, 0, 0, 0, 0,223,148, 28, 63, 94,152, 9, 63,
- 0, 0, 0, 0,223,148, 28, 63, 94,152, 9, 63, 0, 0, 0, 0, 43,183, 22, 63,149,111, 11, 63, 0, 0, 0, 0,155,153, 25, 63,
- 0, 0, 0, 63, 0, 0, 0, 0,180,182, 25, 63, 38, 48, 21, 63, 0, 0, 0, 0,245,163, 31, 63,253, 29, 19, 63, 0, 0, 0, 0,
-191,246, 28, 63,109, 60, 31, 63, 0, 0, 0, 0,191,246, 28, 63,109, 60, 31, 63, 0, 0, 0, 0,132,168, 22, 63,180, 23, 33, 63,
- 0, 0, 0, 0,180,182, 25, 63, 38, 48, 21, 63, 0, 0, 0, 0,140,184, 19, 63,232,209, 22, 63, 0, 0, 0, 0,180,182, 25, 63,
- 38, 48, 21, 63, 0, 0, 0, 0,132,168, 22, 63,180, 23, 33, 63, 0, 0, 0, 0,132,168, 22, 63,180, 23, 33, 63, 0, 0, 0, 0,
-191,246, 28, 63,109, 60, 31, 63, 0, 0, 0, 0,169,238, 25, 63,229, 52, 43, 63, 0, 0, 0, 0,138,107, 19, 63,211,160, 44, 63,
- 0, 0, 0, 0,220,204, 12, 63, 35, 28, 45, 63, 0, 0, 0, 0,225,119, 16, 63,225, 17, 34, 63, 0, 0, 0, 0,225,119, 16, 63,
-225, 17, 34, 63, 0, 0, 0, 0,132,168, 22, 63,180, 23, 33, 63, 0, 0, 0, 0,138,107, 19, 63,211,160, 44, 63, 0, 0, 0, 0,
-169,238, 25, 63,229, 52, 43, 63, 0, 0, 0, 0,138,107, 19, 63,211,160, 44, 63, 0, 0, 0, 0,132,168, 22, 63,180, 23, 33, 63,
- 0, 0, 0, 0,132,168, 22, 63,180, 23, 33, 63, 0, 0, 0, 0,225,119, 16, 63,225, 17, 34, 63, 0, 0, 0, 0,140,184, 19, 63,
-232,209, 22, 63, 0, 0, 0, 0, 51, 73, 32, 63,221,228, 40, 63, 0, 0, 0, 0,169,238, 25, 63,229, 52, 43, 63, 0, 0, 0, 0,
-191,246, 28, 63,109, 60, 31, 63, 0, 0, 0, 0,191,246, 28, 63,109, 60, 31, 63, 0, 0, 0, 0,192,225, 34, 63,142,140, 28, 63,
- 0, 0, 0, 0, 51, 73, 32, 63,221,228, 40, 63, 0, 0, 0, 0,117,102, 38, 63, 45,200, 37, 63, 0, 0, 0, 0, 51, 73, 32, 63,
-221,228, 40, 63, 0, 0, 0, 0,192,225, 34, 63,142,140, 28, 63, 0, 0, 0, 0,192,225, 34, 63,142,140, 28, 63, 0, 0, 0, 0,
-191,246, 28, 63,109, 60, 31, 63, 0, 0, 0, 0,245,163, 31, 63,253, 29, 19, 63, 0, 0, 0, 0,212,204, 12, 63,188, 32, 23, 63,
- 0, 0, 0, 0,140,184, 19, 63,232,209, 22, 63, 0, 0, 0, 0,225,119, 16, 63,225, 17, 34, 63, 0, 0, 0, 0,225,119, 16, 63,
-225, 17, 34, 63, 0, 0, 0, 0,207, 33, 9, 63,226, 17, 34, 63, 0, 0, 0, 0,212,204, 12, 63,188, 32, 23, 63, 0, 0, 0, 0,
- 29,225, 5, 63,233,209, 22, 63, 0, 0, 0, 0,212,204, 12, 63,188, 32, 23, 63, 0, 0, 0, 0,207, 33, 9, 63,226, 17, 34, 63,
- 0, 0, 0, 0,207, 33, 9, 63,226, 17, 34, 63, 0, 0, 0, 0,225,119, 16, 63,225, 17, 34, 63, 0, 0, 0, 0,220,204, 12, 63,
- 35, 28, 45, 63, 0, 0, 0, 0,212,204, 12, 63,188, 32, 23, 63, 0, 0, 0, 0, 29,225, 5, 63,233,209, 22, 63, 0, 0, 0, 0,
-118,105, 9, 63,101,116, 11, 63, 0, 0, 0, 0,118,105, 9, 63,101,116, 11, 63, 0, 0, 0, 0, 43, 48, 16, 63,100,116, 11, 63,
- 0, 0, 0, 0,212,204, 12, 63,188, 32, 23, 63, 0, 0, 0, 0,140,184, 19, 63,232,209, 22, 63, 0, 0, 0, 0,212,204, 12, 63,
-188, 32, 23, 63, 0, 0, 0, 0, 43, 48, 16, 63,100,116, 11, 63, 0, 0, 0, 0, 43, 48, 16, 63,100,116, 11, 63, 0, 0, 0, 0,
-118,105, 9, 63,101,116, 11, 63, 0, 0, 0, 0,205,204, 12, 63, 0, 0, 0, 63, 0, 0, 0, 0, 51, 51, 19, 63,244, 1, 0, 63,
- 0, 0, 0, 0,155,153, 25, 63, 0, 0, 0, 63, 0, 0, 0, 0, 43,183, 22, 63,149,111, 11, 63, 0, 0, 0, 0, 43,183, 22, 63,
-149,111, 11, 63, 0, 0, 0, 0, 43, 48, 16, 63,100,116, 11, 63, 0, 0, 0, 0, 51, 51, 19, 63,244, 1, 0, 63, 0, 0, 0, 0,
-205,204, 12, 63, 0, 0, 0, 63, 0, 0, 0, 0, 51, 51, 19, 63,244, 1, 0, 63, 0, 0, 0, 0, 43, 48, 16, 63,100,116, 11, 63,
- 0, 0, 0, 0, 43, 48, 16, 63,100,116, 11, 63, 0, 0, 0, 0, 43,183, 22, 63,149,111, 11, 63, 0, 0, 0, 0,140,184, 19, 63,
-232,209, 22, 63, 0, 0, 0, 0,102,102, 6, 63,244, 1, 0, 63, 0, 0, 0, 0,205,204, 12, 63, 0, 0, 0, 63, 0, 0, 0, 0,
-118,105, 9, 63,101,116, 11, 63, 0, 0, 0, 0,118,105, 9, 63,101,116, 11, 63, 0, 0, 0, 0,118,226, 2, 63,149,111, 11, 63,
- 0, 0, 0, 0,102,102, 6, 63,244, 1, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 0,102,102, 6, 63,
-244, 1, 0, 63, 0, 0, 0, 0,118,226, 2, 63,149,111, 11, 63, 0, 0, 0, 0,118,226, 2, 63,149,111, 11, 63, 0, 0, 0, 0,
-118,105, 9, 63,101,116, 11, 63, 0, 0, 0, 0, 29,225, 5, 63,233,209, 22, 63, 0, 0, 0, 0,198,204, 12, 63, 72, 58,217, 62,
- 0, 0, 0, 0, 77, 10, 6, 63, 6,196,217, 62, 0, 0, 0, 0, 17, 72, 9, 63,227,230,198, 62, 0, 0, 0, 0, 17, 72, 9, 63,
-227,230,198, 62, 0, 0, 0, 0,117, 81, 16, 63,223,230,198, 62, 0, 0, 0, 0,198,204, 12, 63, 72, 58,217, 62, 0, 0, 0, 0,
- 64,143, 19, 63, 4,196,217, 62, 0, 0, 0, 0,198,204, 12, 63, 72, 58,217, 62, 0, 0, 0, 0,117, 81, 16, 63,223,230,198, 62,
- 0, 0, 0, 0,117, 81, 16, 63,223,230,198, 62, 0, 0, 0, 0, 17, 72, 9, 63,227,230,198, 62, 0, 0, 0, 0,191,204, 12, 63,
-160,111,180, 62, 0, 0, 0, 0,198,204, 12, 63, 72, 58,217, 62, 0, 0, 0, 0, 64,143, 19, 63, 4,196,217, 62, 0, 0, 0, 0,
- 76, 33, 16, 63, 30,211,236, 62, 0, 0, 0, 0, 76, 33, 16, 63, 30,211,236, 62, 0, 0, 0, 0, 71,120, 9, 63, 30,211,236, 62,
- 0, 0, 0, 0,198,204, 12, 63, 72, 58,217, 62, 0, 0, 0, 0, 77, 10, 6, 63, 6,196,217, 62, 0, 0, 0, 0,198,204, 12, 63,
- 72, 58,217, 62, 0, 0, 0, 0, 71,120, 9, 63, 30,211,236, 62, 0, 0, 0, 0, 71,120, 9, 63, 30,211,236, 62, 0, 0, 0, 0,
- 76, 33, 16, 63, 30,211,236, 62, 0, 0, 0, 0,205,204, 12, 63, 0, 0, 0, 63, 0, 0, 0, 0,102,102, 6, 63,244, 1, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 0, 62,251, 2, 63, 67,207,236, 62, 0, 0, 0, 0, 62,251, 2, 63,
- 67,207,236, 62, 0, 0, 0, 0, 71,120, 9, 63, 30,211,236, 62, 0, 0, 0, 0,102,102, 6, 63,244, 1, 0, 63, 0, 0, 0, 0,
-205,204, 12, 63, 0, 0, 0, 63, 0, 0, 0, 0,102,102, 6, 63,244, 1, 0, 63, 0, 0, 0, 0, 71,120, 9, 63, 30,211,236, 62,
- 0, 0, 0, 0, 71,120, 9, 63, 30,211,236, 62, 0, 0, 0, 0, 62,251, 2, 63, 67,207,236, 62, 0, 0, 0, 0, 77, 10, 6, 63,
- 6,196,217, 62, 0, 0, 0, 0, 51, 51, 19, 63,244, 1, 0, 63, 0, 0, 0, 0,205,204, 12, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 76, 33, 16, 63, 30,211,236, 62, 0, 0, 0, 0, 76, 33, 16, 63, 30,211,236, 62, 0, 0, 0, 0, 86,158, 22, 63, 65,207,236, 62,
- 0, 0, 0, 0, 51, 51, 19, 63,244, 1, 0, 63, 0, 0, 0, 0,155,153, 25, 63, 0, 0, 0, 63, 0, 0, 0, 0, 51, 51, 19, 63,
-244, 1, 0, 63, 0, 0, 0, 0, 86,158, 22, 63, 65,207,236, 62, 0, 0, 0, 0, 86,158, 22, 63, 65,207,236, 62, 0, 0, 0, 0,
- 76, 33, 16, 63, 30,211,236, 62, 0, 0, 0, 0, 64,143, 19, 63, 4,196,217, 62, 0, 0, 0, 0,233,197,255, 62, 39, 48, 21, 63,
- 0, 0, 0, 0,101,235,243, 62,252, 29, 19, 63, 0, 0, 0, 0,132, 9,250, 62, 94,152, 9, 63, 0, 0, 0, 0,132, 9,250, 62,
- 94,152, 9, 63, 0, 0, 0, 0,118,226, 2, 63,149,111, 11, 63, 0, 0, 0, 0,233,197,255, 62, 39, 48, 21, 63, 0, 0, 0, 0,
- 29,225, 5, 63,233,209, 22, 63, 0, 0, 0, 0,233,197,255, 62, 39, 48, 21, 63, 0, 0, 0, 0,118,226, 2, 63,149,111, 11, 63,
- 0, 0, 0, 0,118,226, 2, 63,149,111, 11, 63, 0, 0, 0, 0,132, 9,250, 62, 94,152, 9, 63, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0, 0, 0,233,197,255, 62, 39, 48, 21, 63, 0, 0, 0, 0, 29,225, 5, 63,233,209, 22, 63, 0, 0, 0, 0,
- 43,241, 2, 63,181, 23, 33, 63, 0, 0, 0, 0, 43,241, 2, 63,181, 23, 33, 63, 0, 0, 0, 0,225, 69,249, 62,110, 60, 31, 63,
- 0, 0, 0, 0,233,197,255, 62, 39, 48, 21, 63, 0, 0, 0, 0,101,235,243, 62,252, 29, 19, 63, 0, 0, 0, 0,233,197,255, 62,
- 39, 48, 21, 63, 0, 0, 0, 0,225, 69,249, 62,110, 60, 31, 63, 0, 0, 0, 0,225, 69,249, 62,110, 60, 31, 63, 0, 0, 0, 0,
- 43,241, 2, 63,181, 23, 33, 63, 0, 0, 0, 0, 30, 86,255, 62,230, 52, 43, 63, 0, 0, 0, 0, 9,161,242, 62,223,228, 40, 63,
- 0, 0, 0, 0,129,102,230, 62, 48,200, 37, 63, 0, 0, 0, 0,222,111,237, 62,143,140, 28, 63, 0, 0, 0, 0,222,111,237, 62,
-143,140, 28, 63, 0, 0, 0, 0,225, 69,249, 62,110, 60, 31, 63, 0, 0, 0, 0, 9,161,242, 62,223,228, 40, 63, 0, 0, 0, 0,
- 30, 86,255, 62,230, 52, 43, 63, 0, 0, 0, 0, 9,161,242, 62,223,228, 40, 63, 0, 0, 0, 0,225, 69,249, 62,110, 60, 31, 63,
- 0, 0, 0, 0,225, 69,249, 62,110, 60, 31, 63, 0, 0, 0, 0,222,111,237, 62,143,140, 28, 63, 0, 0, 0, 0,101,235,243, 62,
-252, 29, 19, 63, 0, 0, 0, 0, 46, 46, 6, 63,211,160, 44, 63, 0, 0, 0, 0, 30, 86,255, 62,230, 52, 43, 63, 0, 0, 0, 0,
- 43,241, 2, 63,181, 23, 33, 63, 0, 0, 0, 0, 43,241, 2, 63,181, 23, 33, 63, 0, 0, 0, 0,207, 33, 9, 63,226, 17, 34, 63,
- 0, 0, 0, 0, 46, 46, 6, 63,211,160, 44, 63, 0, 0, 0, 0,220,204, 12, 63, 35, 28, 45, 63, 0, 0, 0, 0, 46, 46, 6, 63,
-211,160, 44, 63, 0, 0, 0, 0,207, 33, 9, 63,226, 17, 34, 63, 0, 0, 0, 0,207, 33, 9, 63,226, 17, 34, 63, 0, 0, 0, 0,
- 43,241, 2, 63,181, 23, 33, 63, 0, 0, 0, 0, 29,225, 5, 63,233,209, 22, 63, 0, 0, 0, 0,138,238, 85, 63, 72,220,187, 62,
- 0, 0, 0, 0,218,173, 82, 63, 55, 92,210, 62, 0, 0, 0, 0,229,189, 79, 63,173,208,189, 62, 0, 0, 0, 0,229,189, 79, 63,
-173,208,189, 62, 0, 0, 0, 0,230,250, 82, 63,117,190,166, 62, 0, 0, 0, 0,138,238, 85, 63, 72,220,187, 62, 0, 0, 0, 0,
-149,153, 89, 63,201,199,165, 62, 0, 0, 0, 0,138,238, 85, 63, 72,220,187, 62, 0, 0, 0, 0,230,250, 82, 63,117,190,166, 62,
- 0, 0, 0, 0,230,250, 82, 63,117,190,166, 62, 0, 0, 0, 0,229,189, 79, 63,173,208,189, 62, 0, 0, 0, 0,198,119, 76, 63,
- 90,150,169, 62, 0, 0, 0, 0,170,111, 73, 63, 68,135,193, 62, 0, 0, 0, 0,198,119, 76, 63, 90,150,169, 62, 0, 0, 0, 0,
-229,189, 79, 63,173,208,189, 62, 0, 0, 0, 0,229,189, 79, 63,173,208,189, 62, 0, 0, 0, 0,176,175, 76, 63,192,159,213, 62,
- 0, 0, 0, 0,170,111, 73, 63, 68,135,193, 62, 0, 0, 0, 0,112,194, 70, 63, 19,196,217, 62, 0, 0, 0, 0,170,111, 73, 63,
- 68,135,193, 62, 0, 0, 0, 0,176,175, 76, 63,192,159,213, 62, 0, 0, 0, 0,176,175, 76, 63,192,159,213, 62, 0, 0, 0, 0,
-229,189, 79, 63,173,208,189, 62, 0, 0, 0, 0,218,173, 82, 63, 55, 92,210, 62, 0, 0, 0, 0, 52,175, 79, 63,218, 32,233, 62,
- 0, 0, 0, 0,193,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0,128,209, 73, 63, 75,207,236, 62, 0, 0, 0, 0,128,209, 73, 63,
- 75,207,236, 62, 0, 0, 0, 0,176,175, 76, 63,192,159,213, 62, 0, 0, 0, 0, 52,175, 79, 63,218, 32,233, 62, 0, 0, 0, 0,
-218,173, 82, 63, 55, 92,210, 62, 0, 0, 0, 0, 52,175, 79, 63,218, 32,233, 62, 0, 0, 0, 0,176,175, 76, 63,192,159,213, 62,
- 0, 0, 0, 0,176,175, 76, 63,192,159,213, 62, 0, 0, 0, 0,128,209, 73, 63, 75,207,236, 62, 0, 0, 0, 0,112,194, 70, 63,
- 19,196,217, 62, 0, 0, 0, 0,170,111, 73, 63, 68,135,193, 62, 0, 0, 0, 0,112,194, 70, 63, 19,196,217, 62, 0, 0, 0, 0,
-171,132, 67, 63,253,230,198, 62, 0, 0, 0, 0,171,132, 67, 63,253,230,198, 62, 0, 0, 0, 0, 61, 29, 70, 63,114, 54,174, 62,
- 0, 0, 0, 0,170,111, 73, 63, 68,135,193, 62, 0, 0, 0, 0,198,119, 76, 63, 90,150,169, 62, 0, 0, 0, 0,170,111, 73, 63,
- 68,135,193, 62, 0, 0, 0, 0, 61, 29, 70, 63,114, 54,174, 62, 0, 0, 0, 0, 61, 29, 70, 63,114, 54,174, 62, 0, 0, 0, 0,
-171,132, 67, 63,253,230,198, 62, 0, 0, 0, 0, 0, 0, 64, 63,211,111,180, 62, 0, 0, 0, 0, 52,175, 79, 63,218, 32,233, 62,
- 0, 0, 0, 0,218,173, 82, 63, 55, 92,210, 62, 0, 0, 0, 0, 56, 54, 86, 63, 58, 23,233, 62, 0, 0, 0, 0, 56, 54, 86, 63,
- 58, 23,233, 62, 0, 0, 0, 0, 41, 51, 83, 63, 24,252,255, 62, 0, 0, 0, 0, 52,175, 79, 63,218, 32,233, 62, 0, 0, 0, 0,
-193,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 52,175, 79, 63,218, 32,233, 62, 0, 0, 0, 0, 41, 51, 83, 63, 24,252,255, 62,
- 0, 0, 0, 0, 41, 51, 83, 63, 24,252,255, 62, 0, 0, 0, 0, 56, 54, 86, 63, 58, 23,233, 62, 0, 0, 0, 0,147,153, 89, 63,
- 0, 0, 0, 63, 0, 0, 0, 0,239,252, 92, 63, 58, 23,233, 62, 0, 0, 0, 0,147,153, 89, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 56, 54, 86, 63, 58, 23,233, 62, 0, 0, 0, 0, 56, 54, 86, 63, 58, 23,233, 62, 0, 0, 0, 0,147,153, 89, 63,143,190,209, 62,
- 0, 0, 0, 0,239,252, 92, 63, 58, 23,233, 62, 0, 0, 0, 0, 78,133, 96, 63, 55, 92,210, 62, 0, 0, 0, 0,239,252, 92, 63,
- 58, 23,233, 62, 0, 0, 0, 0,147,153, 89, 63,143,190,209, 62, 0, 0, 0, 0,147,153, 89, 63,143,190,209, 62, 0, 0, 0, 0,
- 56, 54, 86, 63, 58, 23,233, 62, 0, 0, 0, 0,218,173, 82, 63, 55, 92,210, 62, 0, 0, 0, 0,138,238, 85, 63, 72,220,187, 62,
- 0, 0, 0, 0,149,153, 89, 63,201,199,165, 62, 0, 0, 0, 0,159, 68, 93, 63, 72,220,187, 62, 0, 0, 0, 0,159, 68, 93, 63,
- 72,220,187, 62, 0, 0, 0, 0,147,153, 89, 63,143,190,209, 62, 0, 0, 0, 0,138,238, 85, 63, 72,220,187, 62, 0, 0, 0, 0,
-218,173, 82, 63, 55, 92,210, 62, 0, 0, 0, 0,138,238, 85, 63, 72,220,187, 62, 0, 0, 0, 0,147,153, 89, 63,143,190,209, 62,
- 0, 0, 0, 0,147,153, 89, 63,143,190,209, 62, 0, 0, 0, 0,159, 68, 93, 63, 72,220,187, 62, 0, 0, 0, 0, 78,133, 96, 63,
- 55, 92,210, 62, 0, 0, 0, 0,239,252, 92, 63, 58, 23,233, 62, 0, 0, 0, 0, 78,133, 96, 63, 55, 92,210, 62, 0, 0, 0, 0,
-242,131, 99, 63,218, 32,233, 62, 0, 0, 0, 0,242,131, 99, 63,218, 32,233, 62, 0, 0, 0, 0,254,255, 95, 63, 24,252,255, 62,
- 0, 0, 0, 0,239,252, 92, 63, 58, 23,233, 62, 0, 0, 0, 0,147,153, 89, 63, 0, 0, 0, 63, 0, 0, 0, 0,239,252, 92, 63,
- 58, 23,233, 62, 0, 0, 0, 0,254,255, 95, 63, 24,252,255, 62, 0, 0, 0, 0,254,255, 95, 63, 24,252,255, 62, 0, 0, 0, 0,
-242,131, 99, 63,218, 32,233, 62, 0, 0, 0, 0,101,102,102, 63, 0, 0, 0, 63, 0, 0, 0, 0,139,174,111, 63,223,230,198, 62,
- 0, 0, 0, 0,192,112,108, 63, 4,196,217, 62, 0, 0, 0, 0,133,195,105, 63, 37,135,193, 62, 0, 0, 0, 0,133,195,105, 63,
- 37,135,193, 62, 0, 0, 0, 0,249, 21,109, 63, 65, 54,174, 62, 0, 0, 0, 0,139,174,111, 63,223,230,198, 62, 0, 0, 0, 0,
- 65, 51,115, 63,160,111,180, 62, 0, 0, 0, 0,139,174,111, 63,223,230,198, 62, 0, 0, 0, 0,249, 21,109, 63, 65, 54,174, 62,
- 0, 0, 0, 0,249, 21,109, 63, 65, 54,174, 62, 0, 0, 0, 0,133,195,105, 63, 37,135,193, 62, 0, 0, 0, 0,106,187,102, 63,
- 54,150,169, 62, 0, 0, 0, 0, 70,117, 99, 63,155,208,189, 62, 0, 0, 0, 0,106,187,102, 63, 54,150,169, 62, 0, 0, 0, 0,
-133,195,105, 63, 37,135,193, 62, 0, 0, 0, 0,133,195,105, 63, 37,135,193, 62, 0, 0, 0, 0,123,131,102, 63,181,159,213, 62,
- 0, 0, 0, 0, 70,117, 99, 63,155,208,189, 62, 0, 0, 0, 0, 78,133, 96, 63, 55, 92,210, 62, 0, 0, 0, 0, 70,117, 99, 63,
-155,208,189, 62, 0, 0, 0, 0,123,131,102, 63,181,159,213, 62, 0, 0, 0, 0,123,131,102, 63,181,159,213, 62, 0, 0, 0, 0,
-133,195,105, 63, 37,135,193, 62, 0, 0, 0, 0,192,112,108, 63, 4,196,217, 62, 0, 0, 0, 0,170, 97,105, 63, 65,207,236, 62,
- 0, 0, 0, 0,101,102,102, 63, 0, 0, 0, 63, 0, 0, 0, 0,242,131, 99, 63,218, 32,233, 62, 0, 0, 0, 0,242,131, 99, 63,
-218, 32,233, 62, 0, 0, 0, 0,123,131,102, 63,181,159,213, 62, 0, 0, 0, 0,170, 97,105, 63, 65,207,236, 62, 0, 0, 0, 0,
-192,112,108, 63, 4,196,217, 62, 0, 0, 0, 0,170, 97,105, 63, 65,207,236, 62, 0, 0, 0, 0,123,131,102, 63,181,159,213, 62,
- 0, 0, 0, 0,123,131,102, 63,181,159,213, 62, 0, 0, 0, 0,242,131, 99, 63,218, 32,233, 62, 0, 0, 0, 0, 78,133, 96, 63,
- 55, 92,210, 62, 0, 0, 0, 0, 70,117, 99, 63,155,208,189, 62, 0, 0, 0, 0, 78,133, 96, 63, 55, 92,210, 62, 0, 0, 0, 0,
-159, 68, 93, 63, 72,220,187, 62, 0, 0, 0, 0,159, 68, 93, 63, 72,220,187, 62, 0, 0, 0, 0, 71, 56, 96, 63, 99,190,166, 62,
- 0, 0, 0, 0, 70,117, 99, 63,155,208,189, 62, 0, 0, 0, 0,106,187,102, 63, 54,150,169, 62, 0, 0, 0, 0, 70,117, 99, 63,
-155,208,189, 62, 0, 0, 0, 0, 71, 56, 96, 63, 99,190,166, 62, 0, 0, 0, 0, 71, 56, 96, 63, 99,190,166, 62, 0, 0, 0, 0,
-159, 68, 93, 63, 72,220,187, 62, 0, 0, 0, 0,149,153, 89, 63,201,199,165, 62, 0, 0, 0, 0, 33,107, 99, 63, 94,152, 9, 63,
- 0, 0, 0, 0, 11, 92, 96, 63,253, 29, 19, 63, 0, 0, 0, 0, 21,238, 92, 63,112,150, 9, 63, 0, 0, 0, 0, 21,238, 92, 63,
-112,150, 9, 63, 0, 0, 0, 0,254,255, 95, 63, 24,252,255, 62, 0, 0, 0, 0, 33,107, 99, 63, 94,152, 9, 63, 0, 0, 0, 0,
-101,102,102, 63, 0, 0, 0, 63, 0, 0, 0, 0, 33,107, 99, 63, 94,152, 9, 63, 0, 0, 0, 0,254,255, 95, 63, 24,252,255, 62,
- 0, 0, 0, 0,254,255, 95, 63, 24,252,255, 62, 0, 0, 0, 0, 21,238, 92, 63,112,150, 9, 63, 0, 0, 0, 0,147,153, 89, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 14, 69, 86, 63,112,150, 9, 63, 0, 0, 0, 0,147,153, 89, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 21,238, 92, 63,112,150, 9, 63, 0, 0, 0, 0, 21,238, 92, 63,112,150, 9, 63, 0, 0, 0, 0,143,153, 89, 63,219, 98, 19, 63,
- 0, 0, 0, 0, 14, 69, 86, 63,112,150, 9, 63, 0, 0, 0, 0, 19,215, 82, 63,252, 29, 19, 63, 0, 0, 0, 0, 14, 69, 86, 63,
-112,150, 9, 63, 0, 0, 0, 0,143,153, 89, 63,219, 98, 19, 63, 0, 0, 0, 0,143,153, 89, 63,219, 98, 19, 63, 0, 0, 0, 0,
- 21,238, 92, 63,112,150, 9, 63, 0, 0, 0, 0, 11, 92, 96, 63,253, 29, 19, 63, 0, 0, 0, 0, 63, 30, 93, 63,143,140, 28, 63,
- 0, 0, 0, 0,139,153, 89, 63, 45,200, 37, 63, 0, 0, 0, 0,218, 20, 86, 63,143,140, 28, 63, 0, 0, 0, 0,218, 20, 86, 63,
-143,140, 28, 63, 0, 0, 0, 0,143,153, 89, 63,219, 98, 19, 63, 0, 0, 0, 0, 63, 30, 93, 63,143,140, 28, 63, 0, 0, 0, 0,
- 11, 92, 96, 63,253, 29, 19, 63, 0, 0, 0, 0, 63, 30, 93, 63,143,140, 28, 63, 0, 0, 0, 0,143,153, 89, 63,219, 98, 19, 63,
- 0, 0, 0, 0,143,153, 89, 63,219, 98, 19, 63, 0, 0, 0, 0,218, 20, 86, 63,143,140, 28, 63, 0, 0, 0, 0, 19,215, 82, 63,
-252, 29, 19, 63, 0, 0, 0, 0, 14, 69, 86, 63,112,150, 9, 63, 0, 0, 0, 0, 19,215, 82, 63,252, 29, 19, 63, 0, 0, 0, 0,
- 1,200, 79, 63, 94,152, 9, 63, 0, 0, 0, 0, 1,200, 79, 63, 94,152, 9, 63, 0, 0, 0, 0, 41, 51, 83, 63, 24,252,255, 62,
- 0, 0, 0, 0, 14, 69, 86, 63,112,150, 9, 63, 0, 0, 0, 0,147,153, 89, 63, 0, 0, 0, 63, 0, 0, 0, 0, 14, 69, 86, 63,
-112,150, 9, 63, 0, 0, 0, 0, 41, 51, 83, 63, 24,252,255, 62, 0, 0, 0, 0, 41, 51, 83, 63, 24,252,255, 62, 0, 0, 0, 0,
- 1,200, 79, 63, 94,152, 9, 63, 0, 0, 0, 0,193,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0,237, 28, 18, 61, 60,220,187, 62,
- 0, 0, 0, 0,151, 35,188, 60, 46, 92,210, 62, 0, 0, 0, 0,218, 74, 60, 60,150,208,189, 62, 0, 0, 0, 0,218, 74, 60, 60,
-150,208,189, 62, 0, 0, 0, 0,195,197,197, 60, 89,190,166, 62, 0, 0, 0, 0,237, 28, 18, 61, 60,220,187, 62, 0, 0, 0, 0,
-194,205, 76, 61,186,199,165, 62, 0, 0, 0, 0,237, 28, 18, 61, 60,220,187, 62, 0, 0, 0, 0,195,197,197, 60, 89,190,166, 62,
- 0, 0, 0, 0, 23, 23,131, 63, 89,190,166, 62, 0, 0, 0, 0,150,120,129, 63,150,208,189, 62, 0, 0, 0, 0, 15,171,127, 63,
- 52,150,169, 62, 0, 0, 0, 0,241,162,124, 63, 36,135,193, 62, 0, 0, 0, 0, 15,171,127, 63, 52,150,169, 62, 0, 0, 0, 0,
-150,120,129, 63,150,208,189, 62, 0, 0, 0, 0,150,120,129, 63,150,208,189, 62, 0, 0, 0, 0,244,226,127, 63,179,159,213, 62,
- 0, 0, 0, 0,241,162,124, 63, 36,135,193, 62, 0, 0, 0, 0,179,245,121, 63, 6,196,217, 62, 0, 0, 0, 0,241,162,124, 63,
- 36,135,193, 62, 0, 0, 0, 0,244,226,127, 63,179,159,213, 62, 0, 0, 0, 0,244,226,127, 63,179,159,213, 62, 0, 0, 0, 0,
-150,120,129, 63,150,208,189, 62, 0, 0, 0, 0,142,240,130, 63, 46, 92,210, 62, 0, 0, 0, 0, 59,113,129, 63,214, 32,233, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,194, 4,125, 63, 67,207,236, 62, 0, 0, 0, 0,194, 4,125, 63,
- 67,207,236, 62, 0, 0, 0, 0,244,226,127, 63,179,159,213, 62, 0, 0, 0, 0, 59,113,129, 63,214, 32,233, 62, 0, 0, 0, 0,
-142,240,130, 63, 46, 92,210, 62, 0, 0, 0, 0, 59,113,129, 63,214, 32,233, 62, 0, 0, 0, 0,244,226,127, 63,179,159,213, 62,
- 0, 0, 0, 0,244,226,127, 63,179,159,213, 62, 0, 0, 0, 0,194, 4,125, 63, 67,207,236, 62, 0, 0, 0, 0,179,245,121, 63,
- 6,196,217, 62, 0, 0, 0, 0,241,162,124, 63, 36,135,193, 62, 0, 0, 0, 0,179,245,121, 63, 6,196,217, 62, 0, 0, 0, 0,
-239,183,118, 63,227,230,198, 62, 0, 0, 0, 0,239,183,118, 63,227,230,198, 62, 0, 0, 0, 0,133, 80,121, 63, 65, 54,174, 62,
- 0, 0, 0, 0,241,162,124, 63, 36,135,193, 62, 0, 0, 0, 0, 15,171,127, 63, 52,150,169, 62, 0, 0, 0, 0,241,162,124, 63,
- 36,135,193, 62, 0, 0, 0, 0,133, 80,121, 63, 65, 54,174, 62, 0, 0, 0, 0,133, 80,121, 63, 65, 54,174, 62, 0, 0, 0, 0,
-239,183,118, 63,227,230,198, 62, 0, 0, 0, 0, 65, 51,115, 63,160,111,180, 62, 0, 0, 0, 0,110,157, 56, 60,214, 32,233, 62,
- 0, 0, 0, 0,151, 35,188, 60, 46, 92,210, 62, 0, 0, 0, 0, 95,151, 22, 61, 55, 23,233, 62, 0, 0, 0, 0, 95,151, 22, 61,
- 55, 23,233, 62, 0, 0, 0, 0,176,204,204, 60, 24,252,255, 62, 0, 0, 0, 0,110,157, 56, 60,214, 32,233, 62, 0, 0, 0, 0,
-167, 79, 11, 38, 0, 0, 0, 63, 0, 0, 0, 0,110,157, 56, 60,214, 32,233, 62, 0, 0, 0, 0,176,204,204, 60, 24,252,255, 62,
- 0, 0, 0, 0,176,204,204, 60, 24,252,255, 62, 0, 0, 0, 0, 95,151, 22, 61, 55, 23,233, 62, 0, 0, 0, 0,215,204, 76, 61,
- 0, 0, 0, 63, 0, 0, 0, 0, 87,129,129, 61, 57, 23,233, 62, 0, 0, 0, 0,215,204, 76, 61, 0, 0, 0, 63, 0, 0, 0, 0,
- 95,151, 22, 61, 55, 23,233, 62, 0, 0, 0, 0, 95,151, 22, 61, 55, 23,233, 62, 0, 0, 0, 0, 68,205, 76, 61,135,190,209, 62,
- 0, 0, 0, 0, 87,129,129, 61, 57, 23,233, 62, 0, 0, 0, 0, 92,196,157, 61, 49, 92,210, 62, 0, 0, 0, 0, 87,129,129, 61,
- 57, 23,233, 62, 0, 0, 0, 0, 68,205, 76, 61,135,190,209, 62, 0, 0, 0, 0, 68,205, 76, 61,135,190,209, 62, 0, 0, 0, 0,
- 95,151, 22, 61, 55, 23,233, 62, 0, 0, 0, 0,151, 35,188, 60, 46, 92,210, 62, 0, 0, 0, 0,237, 28, 18, 61, 60,220,187, 62,
- 0, 0, 0, 0,194,205, 76, 61,186,199,165, 62, 0, 0, 0, 0, 7,191,131, 61, 62,220,187, 62, 0, 0, 0, 0, 7,191,131, 61,
- 62,220,187, 62, 0, 0, 0, 0, 68,205, 76, 61,135,190,209, 62, 0, 0, 0, 0,237, 28, 18, 61, 60,220,187, 62, 0, 0, 0, 0,
-151, 35,188, 60, 46, 92,210, 62, 0, 0, 0, 0,237, 28, 18, 61, 60,220,187, 62, 0, 0, 0, 0, 68,205, 76, 61,135,190,209, 62,
- 0, 0, 0, 0, 68,205, 76, 61,135,190,209, 62, 0, 0, 0, 0, 7,191,131, 61, 62,220,187, 62, 0, 0, 0, 0, 92,196,157, 61,
- 49, 92,210, 62, 0, 0, 0, 0, 87,129,129, 61, 57, 23,233, 62, 0, 0, 0, 0, 92,196,157, 61, 49, 92,210, 62, 0, 0, 0, 0,
- 89,185,181, 61,214, 32,233, 62, 0, 0, 0, 0, 89,185,181, 61,214, 32,233, 62, 0, 0, 0, 0,154,153,153, 61, 25,252,255, 62,
- 0, 0, 0, 0, 87,129,129, 61, 57, 23,233, 62, 0, 0, 0, 0,215,204, 76, 61, 0, 0, 0, 63, 0, 0, 0, 0, 87,129,129, 61,
- 57, 23,233, 62, 0, 0, 0, 0,154,153,153, 61, 25,252,255, 62, 0, 0, 0, 0,154,153,153, 61, 25,252,255, 62, 0, 0, 0, 0,
- 89,185,181, 61,214, 32,233, 62, 0, 0, 0, 0,215,204,204, 61, 0, 0, 0, 63, 0, 0, 0, 0, 1,135, 11, 62,228,230,198, 62,
- 0, 0, 0, 0,171, 31,253, 61, 6,196,217, 62, 0, 0, 0, 0,251,181,231, 61, 38,135,193, 62, 0, 0, 0, 0,251,181,231, 61,
- 38,135,193, 62, 0, 0, 0, 0,204, 36, 1, 62, 70, 54,174, 62, 0, 0, 0, 0, 1,135, 11, 62,228,230,198, 62, 0, 0, 0, 0,
-214,153, 25, 62,165,111,180, 62, 0, 0, 0, 0, 1,135, 11, 62,228,230,198, 62, 0, 0, 0, 0,204, 36, 1, 62, 70, 54,174, 62,
- 0, 0, 0, 0,204, 36, 1, 62, 70, 54,174, 62, 0, 0, 0, 0,251,181,231, 61, 38,135,193, 62, 0, 0, 0, 0, 70,117,207, 61,
- 54,150,169, 62, 0, 0, 0, 0, 35, 68,181, 61,153,208,189, 62, 0, 0, 0, 0, 70,117,207, 61, 54,150,169, 62, 0, 0, 0, 0,
-251,181,231, 61, 38,135,193, 62, 0, 0, 0, 0,251,181,231, 61, 38,135,193, 62, 0, 0, 0, 0,164,181,205, 61,180,159,213, 62,
- 0, 0, 0, 0, 35, 68,181, 61,153,208,189, 62, 0, 0, 0, 0, 92,196,157, 61, 49, 92,210, 62, 0, 0, 0, 0, 35, 68,181, 61,
-153,208,189, 62, 0, 0, 0, 0,164,181,205, 61,180,159,213, 62, 0, 0, 0, 0,164,181,205, 61,180,159,213, 62, 0, 0, 0, 0,
-251,181,231, 61, 38,135,193, 62, 0, 0, 0, 0,171, 31,253, 61, 6,196,217, 62, 0, 0, 0, 0,251,166,228, 61, 67,207,236, 62,
- 0, 0, 0, 0,215,204,204, 61, 0, 0, 0, 63, 0, 0, 0, 0, 89,185,181, 61,214, 32,233, 62, 0, 0, 0, 0, 89,185,181, 61,
-214, 32,233, 62, 0, 0, 0, 0,164,181,205, 61,180,159,213, 62, 0, 0, 0, 0,251,166,228, 61, 67,207,236, 62, 0, 0, 0, 0,
-171, 31,253, 61, 6,196,217, 62, 0, 0, 0, 0,251,166,228, 61, 67,207,236, 62, 0, 0, 0, 0,164,181,205, 61,180,159,213, 62,
- 0, 0, 0, 0,164,181,205, 61,180,159,213, 62, 0, 0, 0, 0, 89,185,181, 61,214, 32,233, 62, 0, 0, 0, 0, 92,196,157, 61,
- 49, 92,210, 62, 0, 0, 0, 0, 35, 68,181, 61,153,208,189, 62, 0, 0, 0, 0, 92,196,157, 61, 49, 92,210, 62, 0, 0, 0, 0,
- 7,191,131, 61, 62,220,187, 62, 0, 0, 0, 0, 7,191,131, 61, 62,220,187, 62, 0, 0, 0, 0, 79, 92,155, 61, 91,190,166, 62,
- 0, 0, 0, 0, 35, 68,181, 61,153,208,189, 62, 0, 0, 0, 0, 70,117,207, 61, 54,150,169, 62, 0, 0, 0, 0, 35, 68,181, 61,
-153,208,189, 62, 0, 0, 0, 0, 79, 92,155, 61, 91,190,166, 62, 0, 0, 0, 0, 79, 92,155, 61, 91,190,166, 62, 0, 0, 0, 0,
- 7,191,131, 61, 62,220,187, 62, 0, 0, 0, 0,194,205, 76, 61,186,199,165, 62, 0, 0, 0, 0,172,242,180, 61, 96,152, 9, 63,
- 0, 0, 0, 0, 1,122,156, 61,254, 29, 19, 63, 0, 0, 0, 0,100, 10,129, 61,113,150, 9, 63, 0, 0, 0, 0,100, 10,129, 61,
-113,150, 9, 63, 0, 0, 0, 0,154,153,153, 61, 25,252,255, 62, 0, 0, 0, 0,172,242,180, 61, 96,152, 9, 63, 0, 0, 0, 0,
-215,204,204, 61, 0, 0, 0, 63, 0, 0, 0, 0,172,242,180, 61, 96,152, 9, 63, 0, 0, 0, 0,154,153,153, 61, 25,252,255, 62,
- 0, 0, 0, 0,154,153,153, 61, 25,252,255, 62, 0, 0, 0, 0,100, 10,129, 61,113,150, 9, 63, 0, 0, 0, 0,215,204, 76, 61,
- 0, 0, 0, 63, 0, 0, 0, 0,109,132, 23, 61,113,150, 9, 63, 0, 0, 0, 0,215,204, 76, 61, 0, 0, 0, 63, 0, 0, 0, 0,
-100, 10,129, 61,113,150, 9, 63, 0, 0, 0, 0,100, 10,129, 61,113,150, 9, 63, 0, 0, 0, 0, 91,204, 76, 61,220, 98, 19, 63,
- 0, 0, 0, 0,109,132, 23, 61,113,150, 9, 63, 0, 0, 0, 0,174, 73,193, 60,253, 29, 19, 63, 0, 0, 0, 0,109,132, 23, 61,
-113,150, 9, 63, 0, 0, 0, 0, 91,204, 76, 61,220, 98, 19, 63, 0, 0, 0, 0, 91,204, 76, 61,220, 98, 19, 63, 0, 0, 0, 0,
-100, 10,129, 61,113,150, 9, 63, 0, 0, 0, 0, 1,122,156, 61,254, 29, 19, 63, 0, 0, 0, 0,166,139,130, 61,145,140, 28, 63,
- 0, 0, 0, 0,246,203, 76, 61, 48,200, 37, 63, 0, 0, 0, 0, 13,129, 20, 61,143,140, 28, 63, 0, 0, 0, 0, 13,129, 20, 61,
-143,140, 28, 63, 0, 0, 0, 0, 91,204, 76, 61,220, 98, 19, 63, 0, 0, 0, 0,166,139,130, 61,145,140, 28, 63, 0, 0, 0, 0,
- 1,122,156, 61,254, 29, 19, 63, 0, 0, 0, 0,166,139,130, 61,145,140, 28, 63, 0, 0, 0, 0, 91,204, 76, 61,220, 98, 19, 63,
- 0, 0, 0, 0, 91,204, 76, 61,220, 98, 19, 63, 0, 0, 0, 0, 13,129, 20, 61,143,140, 28, 63, 0, 0, 0, 0,174, 73,193, 60,
-253, 29, 19, 63, 0, 0, 0, 0,109,132, 23, 61,113,150, 9, 63, 0, 0, 0, 0,174, 73,193, 60,253, 29, 19, 63, 0, 0, 0, 0,
-114,207, 62, 60, 94,152, 9, 63, 0, 0, 0, 0,114,207, 62, 60, 94,152, 9, 63, 0, 0, 0, 0,176,204,204, 60, 24,252,255, 62,
- 0, 0, 0, 0,109,132, 23, 61,113,150, 9, 63, 0, 0, 0, 0,215,204, 76, 61, 0, 0, 0, 63, 0, 0, 0, 0,109,132, 23, 61,
-113,150, 9, 63, 0, 0, 0, 0,176,204,204, 60, 24,252,255, 62, 0, 0, 0, 0,176,204,204, 60, 24,252,255, 62, 0, 0, 0, 0,
-114,207, 62, 60, 94,152, 9, 63, 0, 0, 0, 0,167, 79, 11, 38, 0, 0, 0, 63, 0, 0, 0, 0,237, 83,113, 62, 79,220,187, 62,
- 0, 0, 0, 0, 63, 81,100, 62, 60, 92,210, 62, 0, 0, 0, 0,110,145, 88, 62,167,208,189, 62, 0, 0, 0, 0,110,145, 88, 62,
-167,208,189, 62, 0, 0, 0, 0, 91,133,101, 62,112,190,166, 62, 0, 0, 0, 0,237, 83,113, 62, 79,220,187, 62, 0, 0, 0, 0,
- 0, 0,128, 62,206,199,165, 62, 0, 0, 0, 0,237, 83,113, 62, 79,220,187, 62, 0, 0, 0, 0, 91,133,101, 62,112,190,166, 62,
- 0, 0, 0, 0, 91,133,101, 62,112,190,166, 62, 0, 0, 0, 0,110,145, 88, 62,167,208,189, 62, 0, 0, 0, 0,239,120, 75, 62,
- 70,150,169, 62, 0, 0, 0, 0,144, 88, 63, 62, 46,135,193, 62, 0, 0, 0, 0,239,120, 75, 62, 70,150,169, 62, 0, 0, 0, 0,
-110,145, 88, 62,167,208,189, 62, 0, 0, 0, 0,110,145, 88, 62,167,208,189, 62, 0, 0, 0, 0,170, 88, 76, 62,187,159,213, 62,
- 0, 0, 0, 0,144, 88, 63, 62, 46,135,193, 62, 0, 0, 0, 0,179,163, 52, 62, 7,196,217, 62, 0, 0, 0, 0,144, 88, 63, 62,
- 46,135,193, 62, 0, 0, 0, 0,170, 88, 76, 62,187,159,213, 62, 0, 0, 0, 0,170, 88, 76, 62,187,159,213, 62, 0, 0, 0, 0,
-110,145, 88, 62,167,208,189, 62, 0, 0, 0, 0, 63, 81,100, 62, 60, 92,210, 62, 0, 0, 0, 0,190, 86, 88, 62,221, 32,233, 62,
- 0, 0, 0, 0,254,204, 76, 62, 0, 0, 0, 63, 0, 0, 0, 0,251,223, 64, 62, 67,207,236, 62, 0, 0, 0, 0,251,223, 64, 62,
- 67,207,236, 62, 0, 0, 0, 0,170, 88, 76, 62,187,159,213, 62, 0, 0, 0, 0,190, 86, 88, 62,221, 32,233, 62, 0, 0, 0, 0,
- 63, 81,100, 62, 60, 92,210, 62, 0, 0, 0, 0,190, 86, 88, 62,221, 32,233, 62, 0, 0, 0, 0,170, 88, 76, 62,187,159,213, 62,
- 0, 0, 0, 0,170, 88, 76, 62,187,159,213, 62, 0, 0, 0, 0,251,223, 64, 62, 67,207,236, 62, 0, 0, 0, 0,179,163, 52, 62,
- 7,196,217, 62, 0, 0, 0, 0,144, 88, 63, 62, 46,135,193, 62, 0, 0, 0, 0,179,163, 52, 62, 7,196,217, 62, 0, 0, 0, 0,
-153,172, 39, 62,230,230,198, 62, 0, 0, 0, 0,153,172, 39, 62,230,230,198, 62, 0, 0, 0, 0,213, 14, 50, 62, 78, 54,174, 62,
- 0, 0, 0, 0,144, 88, 63, 62, 46,135,193, 62, 0, 0, 0, 0,239,120, 75, 62, 70,150,169, 62, 0, 0, 0, 0,144, 88, 63, 62,
- 46,135,193, 62, 0, 0, 0, 0,213, 14, 50, 62, 78, 54,174, 62, 0, 0, 0, 0,213, 14, 50, 62, 78, 54,174, 62, 0, 0, 0, 0,
-153,172, 39, 62,230,230,198, 62, 0, 0, 0, 0,214,153, 25, 62,165,111,180, 62, 0, 0, 0, 0,190, 86, 88, 62,221, 32,233, 62,
- 0, 0, 0, 0, 63, 81,100, 62, 60, 92,210, 62, 0, 0, 0, 0,166,114,114, 62, 63, 23,233, 62, 0, 0, 0, 0,166,114,114, 62,
- 63, 23,233, 62, 0, 0, 0, 0,126,102,102, 62, 25,252,255, 62, 0, 0, 0, 0,190, 86, 88, 62,221, 32,233, 62, 0, 0, 0, 0,
-254,204, 76, 62, 0, 0, 0, 63, 0, 0, 0, 0,190, 86, 88, 62,221, 32,233, 62, 0, 0, 0, 0,126,102,102, 62, 25,252,255, 62,
- 0, 0, 0, 0,126,102,102, 62, 25,252,255, 62, 0, 0, 0, 0,166,114,114, 62, 63, 23,233, 62, 0, 0, 0, 0, 0, 0,128, 62,
- 0, 0, 0, 63, 0, 0, 0, 0,173,198,134, 62, 63, 23,233, 62, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 63, 0, 0, 0, 0,
-166,114,114, 62, 63, 23,233, 62, 0, 0, 0, 0,166,114,114, 62, 63, 23,233, 62, 0, 0, 0, 0, 0, 0,128, 62,149,190,209, 62,
- 0, 0, 0, 0,173,198,134, 62, 63, 23,233, 62, 0, 0, 0, 0, 97,215,141, 62, 60, 92,210, 62, 0, 0, 0, 0,173,198,134, 62,
- 63, 23,233, 62, 0, 0, 0, 0, 0, 0,128, 62,149,190,209, 62, 0, 0, 0, 0, 0, 0,128, 62,149,190,209, 62, 0, 0, 0, 0,
-166,114,114, 62, 63, 23,233, 62, 0, 0, 0, 0, 63, 81,100, 62, 60, 92,210, 62, 0, 0, 0, 0,237, 83,113, 62, 79,220,187, 62,
- 0, 0, 0, 0, 0, 0,128, 62,206,199,165, 62, 0, 0, 0, 0, 9, 86,135, 62, 79,220,187, 62, 0, 0, 0, 0, 9, 86,135, 62,
- 79,220,187, 62, 0, 0, 0, 0, 0, 0,128, 62,149,190,209, 62, 0, 0, 0, 0,237, 83,113, 62, 79,220,187, 62, 0, 0, 0, 0,
- 63, 81,100, 62, 60, 92,210, 62, 0, 0, 0, 0,237, 83,113, 62, 79,220,187, 62, 0, 0, 0, 0, 0, 0,128, 62,149,190,209, 62,
- 0, 0, 0, 0, 0, 0,128, 62,149,190,209, 62, 0, 0, 0, 0, 9, 86,135, 62, 79,220,187, 62, 0, 0, 0, 0, 97,215,141, 62,
- 60, 92,210, 62, 0, 0, 0, 0,173,198,134, 62, 63, 23,233, 62, 0, 0, 0, 0, 97,215,141, 62, 60, 92,210, 62, 0, 0, 0, 0,
-161,212,147, 62,221, 32,233, 62, 0, 0, 0, 0,161,212,147, 62,221, 32,233, 62, 0, 0, 0, 0,193,204,140, 62, 25,252,255, 62,
- 0, 0, 0, 0,173,198,134, 62, 63, 23,233, 62, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 63, 0, 0, 0, 0,173,198,134, 62,
- 63, 23,233, 62, 0, 0, 0, 0,193,204,140, 62, 25,252,255, 62, 0, 0, 0, 0,193,204,140, 62, 25,252,255, 62, 0, 0, 0, 0,
-161,212,147, 62,221, 32,233, 62, 0, 0, 0, 0,129,153,153, 62, 0, 0, 0, 63, 0, 0, 0, 0,180, 41,172, 62,227,230,198, 62,
- 0, 0, 0, 0, 39,174,165, 62, 7,196,217, 62, 0, 0, 0, 0,184, 83,160, 62, 46,135,193, 62, 0, 0, 0, 0,184, 83,160, 62,
- 46,135,193, 62, 0, 0, 0, 0,150,248,166, 62, 78, 54,174, 62, 0, 0, 0, 0,180, 41,172, 62,227,230,198, 62, 0, 0, 0, 0,
- 21, 51,179, 62,165,111,180, 62, 0, 0, 0, 0,180, 41,172, 62,227,230,198, 62, 0, 0, 0, 0,150,248,166, 62, 78, 54,174, 62,
- 0, 0, 0, 0,150,248,166, 62, 78, 54,174, 62, 0, 0, 0, 0,184, 83,160, 62, 46,135,193, 62, 0, 0, 0, 0,137, 67,154, 62,
- 70,150,169, 62, 0, 0, 0, 0, 73,183,147, 62,167,208,189, 62, 0, 0, 0, 0,137, 67,154, 62, 70,150,169, 62, 0, 0, 0, 0,
-184, 83,160, 62, 46,135,193, 62, 0, 0, 0, 0,184, 83,160, 62, 46,135,193, 62, 0, 0, 0, 0,171,211,153, 62,187,159,213, 62,
- 0, 0, 0, 0, 73,183,147, 62,167,208,189, 62, 0, 0, 0, 0, 97,215,141, 62, 60, 92,210, 62, 0, 0, 0, 0, 73,183,147, 62,
-167,208,189, 62, 0, 0, 0, 0,171,211,153, 62,187,159,213, 62, 0, 0, 0, 0,171,211,153, 62,187,159,213, 62, 0, 0, 0, 0,
-184, 83,160, 62, 46,135,193, 62, 0, 0, 0, 0, 39,174,165, 62, 7,196,217, 62, 0, 0, 0, 0, 3,144,159, 62, 67,207,236, 62,
- 0, 0, 0, 0,129,153,153, 62, 0, 0, 0, 63, 0, 0, 0, 0,161,212,147, 62,221, 32,233, 62, 0, 0, 0, 0,161,212,147, 62,
-221, 32,233, 62, 0, 0, 0, 0,171,211,153, 62,187,159,213, 62, 0, 0, 0, 0, 3,144,159, 62, 67,207,236, 62, 0, 0, 0, 0,
- 39,174,165, 62, 7,196,217, 62, 0, 0, 0, 0, 3,144,159, 62, 67,207,236, 62, 0, 0, 0, 0,171,211,153, 62,187,159,213, 62,
- 0, 0, 0, 0,171,211,153, 62,187,159,213, 62, 0, 0, 0, 0,161,212,147, 62,221, 32,233, 62, 0, 0, 0, 0, 97,215,141, 62,
- 60, 92,210, 62, 0, 0, 0, 0, 73,183,147, 62,167,208,189, 62, 0, 0, 0, 0, 97,215,141, 62, 60, 92,210, 62, 0, 0, 0, 0,
- 9, 86,135, 62, 79,220,187, 62, 0, 0, 0, 0, 9, 86,135, 62, 79,220,187, 62, 0, 0, 0, 0, 82, 61,141, 62,112,190,166, 62,
- 0, 0, 0, 0, 73,183,147, 62,167,208,189, 62, 0, 0, 0, 0,137, 67,154, 62, 70,150,169, 62, 0, 0, 0, 0, 73,183,147, 62,
-167,208,189, 62, 0, 0, 0, 0, 82, 61,141, 62,112,190,166, 62, 0, 0, 0, 0, 82, 61,141, 62,112,190,166, 62, 0, 0, 0, 0,
- 9, 86,135, 62, 79,220,187, 62, 0, 0, 0, 0, 0, 0,128, 62,206,199,165, 62, 0, 0, 0, 0, 1,163,147, 62, 91,152, 9, 63,
- 0, 0, 0, 0,224,132,141, 62,246, 29, 19, 63, 0, 0, 0, 0,251,168,134, 62,107,150, 9, 63, 0, 0, 0, 0,251,168,134, 62,
-107,150, 9, 63, 0, 0, 0, 0,193,204,140, 62, 25,252,255, 62, 0, 0, 0, 0, 1,163,147, 62, 91,152, 9, 63, 0, 0, 0, 0,
-129,153,153, 62, 0, 0, 0, 63, 0, 0, 0, 0, 1,163,147, 62, 91,152, 9, 63, 0, 0, 0, 0,193,204,140, 62, 25,252,255, 62,
- 0, 0, 0, 0,193,204,140, 62, 25,252,255, 62, 0, 0, 0, 0,251,168,134, 62,107,150, 9, 63, 0, 0, 0, 0, 0, 0,128, 62,
- 0, 0, 0, 63, 0, 0, 0, 0, 11,174,114, 62,107,150, 9, 63, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 63, 0, 0, 0, 0,
-251,168,134, 62,107,150, 9, 63, 0, 0, 0, 0,251,168,134, 62,107,150, 9, 63, 0, 0, 0, 0, 0, 0,128, 62,209, 98, 19, 63,
- 0, 0, 0, 0, 11,174,114, 62,107,150, 9, 63, 0, 0, 0, 0, 64,246,100, 62,246, 29, 19, 63, 0, 0, 0, 0, 11,174,114, 62,
-107,150, 9, 63, 0, 0, 0, 0, 0, 0,128, 62,209, 98, 19, 63, 0, 0, 0, 0, 0, 0,128, 62,209, 98, 19, 63, 0, 0, 0, 0,
-251,168,134, 62,107,150, 9, 63, 0, 0, 0, 0,224,132,141, 62,246, 29, 19, 63, 0, 0, 0, 0, 86, 9,135, 62,130,140, 28, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 23,200, 37, 63, 0, 0, 0, 0, 83,237,113, 62,130,140, 28, 63, 0, 0, 0, 0, 83,237,113, 62,
-130,140, 28, 63, 0, 0, 0, 0, 0, 0,128, 62,209, 98, 19, 63, 0, 0, 0, 0, 86, 9,135, 62,130,140, 28, 63, 0, 0, 0, 0,
-224,132,141, 62,246, 29, 19, 63, 0, 0, 0, 0, 86, 9,135, 62,130,140, 28, 63, 0, 0, 0, 0, 0, 0,128, 62,209, 98, 19, 63,
- 0, 0, 0, 0, 0, 0,128, 62,209, 98, 19, 63, 0, 0, 0, 0, 83,237,113, 62,130,140, 28, 63, 0, 0, 0, 0, 64,246,100, 62,
-246, 29, 19, 63, 0, 0, 0, 0, 11,174,114, 62,107,150, 9, 63, 0, 0, 0, 0, 64,246,100, 62,246, 29, 19, 63, 0, 0, 0, 0,
-255,185, 88, 62, 90,152, 9, 63, 0, 0, 0, 0,255,185, 88, 62, 90,152, 9, 63, 0, 0, 0, 0,126,102,102, 62, 25,252,255, 62,
- 0, 0, 0, 0, 11,174,114, 62,107,150, 9, 63, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 63, 0, 0, 0, 0, 11,174,114, 62,
-107,150, 9, 63, 0, 0, 0, 0,126,102,102, 62, 25,252,255, 62, 0, 0, 0, 0,126,102,102, 62, 25,252,255, 62, 0, 0, 0, 0,
-255,185, 88, 62, 90,152, 9, 63, 0, 0, 0, 0,254,204, 76, 62, 0, 0, 0, 63, 0, 0, 0, 0, 63, 16,223, 62, 62,220,187, 62,
- 0, 0, 0, 0,233,142,216, 62, 49, 92,210, 62, 0, 0, 0, 0,248,174,210, 62,153,208,189, 62, 0, 0, 0, 0,248,174,210, 62,
-153,208,189, 62, 0, 0, 0, 0,237, 40,217, 62, 91,190,166, 62, 0, 0, 0, 0, 63, 16,223, 62, 62,220,187, 62, 0, 0, 0, 0,
- 72,102,230, 62,183,199,165, 62, 0, 0, 0, 0, 63, 16,223, 62, 62,220,187, 62, 0, 0, 0, 0,237, 40,217, 62, 91,190,166, 62,
- 0, 0, 0, 0,237, 40,217, 62, 91,190,166, 62, 0, 0, 0, 0,248,174,210, 62,153,208,189, 62, 0, 0, 0, 0,175, 34,204, 62,
- 54,150,169, 62, 0, 0, 0, 0,129, 18,198, 62, 37,135,193, 62, 0, 0, 0, 0,175, 34,204, 62, 54,150,169, 62, 0, 0, 0, 0,
-248,174,210, 62,153,208,189, 62, 0, 0, 0, 0,248,174,210, 62,153,208,189, 62, 0, 0, 0, 0,151,146,204, 62,180,159,213, 62,
- 0, 0, 0, 0,129, 18,198, 62, 37,135,193, 62, 0, 0, 0, 0, 21,184,192, 62, 6,196,217, 62, 0, 0, 0, 0,129, 18,198, 62,
- 37,135,193, 62, 0, 0, 0, 0,151,146,204, 62,180,159,213, 62, 0, 0, 0, 0,151,146,204, 62,180,159,213, 62, 0, 0, 0, 0,
-248,174,210, 62,153,208,189, 62, 0, 0, 0, 0,233,142,216, 62, 49, 92,210, 62, 0, 0, 0, 0,170,145,210, 62,214, 32,233, 62,
- 0, 0, 0, 0,202,204,204, 62, 0, 0, 0, 63, 0, 0, 0, 0, 65,214,198, 62, 67,207,236, 62, 0, 0, 0, 0, 65,214,198, 62,
- 67,207,236, 62, 0, 0, 0, 0,151,146,204, 62,180,159,213, 62, 0, 0, 0, 0,170,145,210, 62,214, 32,233, 62, 0, 0, 0, 0,
-233,142,216, 62, 49, 92,210, 62, 0, 0, 0, 0,170,145,210, 62,214, 32,233, 62, 0, 0, 0, 0,151,146,204, 62,180,159,213, 62,
- 0, 0, 0, 0,151,146,204, 62,180,159,213, 62, 0, 0, 0, 0, 65,214,198, 62, 67,207,236, 62, 0, 0, 0, 0, 21,184,192, 62,
- 6,196,217, 62, 0, 0, 0, 0,129, 18,198, 62, 37,135,193, 62, 0, 0, 0, 0, 21,184,192, 62, 6,196,217, 62, 0, 0, 0, 0,
-127, 60,186, 62,225,230,198, 62, 0, 0, 0, 0,127, 60,186, 62,225,230,198, 62, 0, 0, 0, 0,154,109,191, 62, 68, 54,174, 62,
- 0, 0, 0, 0,129, 18,198, 62, 37,135,193, 62, 0, 0, 0, 0,175, 34,204, 62, 54,150,169, 62, 0, 0, 0, 0,129, 18,198, 62,
- 37,135,193, 62, 0, 0, 0, 0,154,109,191, 62, 68, 54,174, 62, 0, 0, 0, 0,154,109,191, 62, 68, 54,174, 62, 0, 0, 0, 0,
-127, 60,186, 62,225,230,198, 62, 0, 0, 0, 0, 21, 51,179, 62,165,111,180, 62, 0, 0, 0, 0,170,145,210, 62,214, 32,233, 62,
- 0, 0, 0, 0,233,142,216, 62, 49, 92,210, 62, 0, 0, 0, 0,171,159,223, 62, 57, 23,233, 62, 0, 0, 0, 0,171,159,223, 62,
- 57, 23,233, 62, 0, 0, 0, 0,154,153,217, 62, 24,252,255, 62, 0, 0, 0, 0,170,145,210, 62,214, 32,233, 62, 0, 0, 0, 0,
-202,204,204, 62, 0, 0, 0, 63, 0, 0, 0, 0,170,145,210, 62,214, 32,233, 62, 0, 0, 0, 0,154,153,217, 62, 24,252,255, 62,
- 0, 0, 0, 0,154,153,217, 62, 24,252,255, 62, 0, 0, 0, 0,171,159,223, 62, 57, 23,233, 62, 0, 0, 0, 0,101,102,230, 62,
- 0, 0, 0, 63, 0, 0, 0, 0, 20, 45,237, 62, 55, 23,233, 62, 0, 0, 0, 0,101,102,230, 62, 0, 0, 0, 63, 0, 0, 0, 0,
-171,159,223, 62, 57, 23,233, 62, 0, 0, 0, 0,171,159,223, 62, 57, 23,233, 62, 0, 0, 0, 0, 88,102,230, 62,135,190,209, 62,
- 0, 0, 0, 0, 20, 45,237, 62, 55, 23,233, 62, 0, 0, 0, 0,199, 61,244, 62, 46, 92,210, 62, 0, 0, 0, 0, 20, 45,237, 62,
- 55, 23,233, 62, 0, 0, 0, 0, 88,102,230, 62,135,190,209, 62, 0, 0, 0, 0, 88,102,230, 62,135,190,209, 62, 0, 0, 0, 0,
-171,159,223, 62, 57, 23,233, 62, 0, 0, 0, 0,233,142,216, 62, 49, 92,210, 62, 0, 0, 0, 0, 63, 16,223, 62, 62,220,187, 62,
- 0, 0, 0, 0, 72,102,230, 62,183,199,165, 62, 0, 0, 0, 0, 99,188,237, 62, 60,220,187, 62, 0, 0, 0, 0, 99,188,237, 62,
- 60,220,187, 62, 0, 0, 0, 0, 88,102,230, 62,135,190,209, 62, 0, 0, 0, 0, 63, 16,223, 62, 62,220,187, 62, 0, 0, 0, 0,
-233,142,216, 62, 49, 92,210, 62, 0, 0, 0, 0, 63, 16,223, 62, 62,220,187, 62, 0, 0, 0, 0, 88,102,230, 62,135,190,209, 62,
- 0, 0, 0, 0, 88,102,230, 62,135,190,209, 62, 0, 0, 0, 0, 99,188,237, 62, 60,220,187, 62, 0, 0, 0, 0,199, 61,244, 62,
- 46, 92,210, 62, 0, 0, 0, 0, 20, 45,237, 62, 55, 23,233, 62, 0, 0, 0, 0,199, 61,244, 62, 46, 92,210, 62, 0, 0, 0, 0,
- 21, 59,250, 62,213, 32,233, 62, 0, 0, 0, 0, 21, 59,250, 62,213, 32,233, 62, 0, 0, 0, 0, 53, 51,243, 62, 24,252,255, 62,
- 0, 0, 0, 0, 20, 45,237, 62, 55, 23,233, 62, 0, 0, 0, 0,101,102,230, 62, 0, 0, 0, 63, 0, 0, 0, 0, 20, 45,237, 62,
- 55, 23,233, 62, 0, 0, 0, 0, 53, 51,243, 62, 24,252,255, 62, 0, 0, 0, 0, 53, 51,243, 62, 24,252,255, 62, 0, 0, 0, 0,
- 21, 59,250, 62,213, 32,233, 62, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 0, 17, 72, 9, 63,227,230,198, 62,
- 0, 0, 0, 0, 77, 10, 6, 63, 6,196,217, 62, 0, 0, 0, 0, 15, 93, 3, 63, 36,135,193, 62, 0, 0, 0, 0, 15, 93, 3, 63,
- 36,135,193, 62, 0, 0, 0, 0,123,175, 6, 63, 65, 54,174, 62, 0, 0, 0, 0, 17, 72, 9, 63,227,230,198, 62, 0, 0, 0, 0,
-191,204, 12, 63,160,111,180, 62, 0, 0, 0, 0, 17, 72, 9, 63,227,230,198, 62, 0, 0, 0, 0,123,175, 6, 63, 65, 54,174, 62,
- 0, 0, 0, 0,123,175, 6, 63, 65, 54,174, 62, 0, 0, 0, 0, 15, 93, 3, 63, 36,135,193, 62, 0, 0, 0, 0,241, 84, 0, 63,
- 52,150,169, 62, 0, 0, 0, 0,169, 29,250, 62,150,208,189, 62, 0, 0, 0, 0,241, 84, 0, 63, 52,150,169, 62, 0, 0, 0, 0,
- 15, 93, 3, 63, 36,135,193, 62, 0, 0, 0, 0, 15, 93, 3, 63, 36,135,193, 62, 0, 0, 0, 0, 12, 29, 0, 63,179,159,213, 62,
- 0, 0, 0, 0,169, 29,250, 62,150,208,189, 62, 0, 0, 0, 0,199, 61,244, 62, 46, 92,210, 62, 0, 0, 0, 0,169, 29,250, 62,
-150,208,189, 62, 0, 0, 0, 0, 12, 29, 0, 63,179,159,213, 62, 0, 0, 0, 0, 12, 29, 0, 63,179,159,213, 62, 0, 0, 0, 0,
- 15, 93, 3, 63, 36,135,193, 62, 0, 0, 0, 0, 77, 10, 6, 63, 6,196,217, 62, 0, 0, 0, 0, 62,251, 2, 63, 67,207,236, 62,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 0, 21, 59,250, 62,213, 32,233, 62, 0, 0, 0, 0, 21, 59,250, 62,
-213, 32,233, 62, 0, 0, 0, 0, 12, 29, 0, 63,179,159,213, 62, 0, 0, 0, 0, 62,251, 2, 63, 67,207,236, 62, 0, 0, 0, 0,
- 77, 10, 6, 63, 6,196,217, 62, 0, 0, 0, 0, 62,251, 2, 63, 67,207,236, 62, 0, 0, 0, 0, 12, 29, 0, 63,179,159,213, 62,
- 0, 0, 0, 0, 12, 29, 0, 63,179,159,213, 62, 0, 0, 0, 0, 21, 59,250, 62,213, 32,233, 62, 0, 0, 0, 0,199, 61,244, 62,
- 46, 92,210, 62, 0, 0, 0, 0,169, 29,250, 62,150,208,189, 62, 0, 0, 0, 0,199, 61,244, 62, 46, 92,210, 62, 0, 0, 0, 0,
- 99,188,237, 62, 60,220,187, 62, 0, 0, 0, 0, 99,188,237, 62, 60,220,187, 62, 0, 0, 0, 0,164,163,243, 62, 89,190,166, 62,
- 0, 0, 0, 0,169, 29,250, 62,150,208,189, 62, 0, 0, 0, 0,241, 84, 0, 63, 52,150,169, 62, 0, 0, 0, 0,169, 29,250, 62,
-150,208,189, 62, 0, 0, 0, 0,164,163,243, 62, 89,190,166, 62, 0, 0, 0, 0,164,163,243, 62, 89,190,166, 62, 0, 0, 0, 0,
- 99,188,237, 62, 60,220,187, 62, 0, 0, 0, 0, 72,102,230, 62,183,199,165, 62, 0, 0, 0, 0,132, 9,250, 62, 94,152, 9, 63,
- 0, 0, 0, 0,101,235,243, 62,252, 29, 19, 63, 0, 0, 0, 0,114, 15,237, 62,113,150, 9, 63, 0, 0, 0, 0,114, 15,237, 62,
-113,150, 9, 63, 0, 0, 0, 0, 53, 51,243, 62, 24,252,255, 62, 0, 0, 0, 0,132, 9,250, 62, 94,152, 9, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 0,132, 9,250, 62, 94,152, 9, 63, 0, 0, 0, 0, 53, 51,243, 62, 24,252,255, 62,
- 0, 0, 0, 0, 53, 51,243, 62, 24,252,255, 62, 0, 0, 0, 0,114, 15,237, 62,113,150, 9, 63, 0, 0, 0, 0,101,102,230, 62,
- 0, 0, 0, 63, 0, 0, 0, 0,103,189,223, 62,112,150, 9, 63, 0, 0, 0, 0,101,102,230, 62, 0, 0, 0, 63, 0, 0, 0, 0,
-114, 15,237, 62,113,150, 9, 63, 0, 0, 0, 0,114, 15,237, 62,113,150, 9, 63, 0, 0, 0, 0,117,102,230, 62,220, 98, 19, 63,
- 0, 0, 0, 0,103,189,223, 62,112,150, 9, 63, 0, 0, 0, 0,128,225,216, 62,254, 29, 19, 63, 0, 0, 0, 0,103,189,223, 62,
-112,150, 9, 63, 0, 0, 0, 0,117,102,230, 62,220, 98, 19, 63, 0, 0, 0, 0,117,102,230, 62,220, 98, 19, 63, 0, 0, 0, 0,
-114, 15,237, 62,113,150, 9, 63, 0, 0, 0, 0,101,235,243, 62,252, 29, 19, 63, 0, 0, 0, 0,222,111,237, 62,143,140, 28, 63,
- 0, 0, 0, 0,129,102,230, 62, 48,200, 37, 63, 0, 0, 0, 0, 22, 93,223, 62,145,140, 28, 63, 0, 0, 0, 0, 22, 93,223, 62,
-145,140, 28, 63, 0, 0, 0, 0,117,102,230, 62,220, 98, 19, 63, 0, 0, 0, 0,222,111,237, 62,143,140, 28, 63, 0, 0, 0, 0,
-101,235,243, 62,252, 29, 19, 63, 0, 0, 0, 0,222,111,237, 62,143,140, 28, 63, 0, 0, 0, 0,117,102,230, 62,220, 98, 19, 63,
- 0, 0, 0, 0,117,102,230, 62,220, 98, 19, 63, 0, 0, 0, 0, 22, 93,223, 62,145,140, 28, 63, 0, 0, 0, 0,128,225,216, 62,
-254, 29, 19, 63, 0, 0, 0, 0,103,189,223, 62,112,150, 9, 63, 0, 0, 0, 0,128,225,216, 62,254, 29, 19, 63, 0, 0, 0, 0,
- 85,195,210, 62, 96,152, 9, 63, 0, 0, 0, 0, 85,195,210, 62, 96,152, 9, 63, 0, 0, 0, 0,154,153,217, 62, 24,252,255, 62,
- 0, 0, 0, 0,103,189,223, 62,112,150, 9, 63, 0, 0, 0, 0,101,102,230, 62, 0, 0, 0, 63, 0, 0, 0, 0,103,189,223, 62,
-112,150, 9, 63, 0, 0, 0, 0,154,153,217, 62, 24,252,255, 62, 0, 0, 0, 0,154,153,217, 62, 24,252,255, 62, 0, 0, 0, 0,
- 85,195,210, 62, 96,152, 9, 63, 0, 0, 0, 0,202,204,204, 62, 0, 0, 0, 63, 0, 0, 0, 0, 97,187, 34, 63, 72,220,187, 62,
- 0, 0, 0, 0,178,122, 31, 63, 55, 92,210, 62, 0, 0, 0, 0,186,138, 28, 63,155,208,189, 62, 0, 0, 0, 0,186,138, 28, 63,
-155,208,189, 62, 0, 0, 0, 0,185,199, 31, 63, 96,190,166, 62, 0, 0, 0, 0, 97,187, 34, 63, 72,220,187, 62, 0, 0, 0, 0,
-107,102, 38, 63,201,199,165, 62, 0, 0, 0, 0, 97,187, 34, 63, 72,220,187, 62, 0, 0, 0, 0,185,199, 31, 63, 96,190,166, 62,
- 0, 0, 0, 0,185,199, 31, 63, 96,190,166, 62, 0, 0, 0, 0,186,138, 28, 63,155,208,189, 62, 0, 0, 0, 0,150, 68, 25, 63,
- 54,150,169, 62, 0, 0, 0, 0,123, 60, 22, 63, 36,135,193, 62, 0, 0, 0, 0,150, 68, 25, 63, 54,150,169, 62, 0, 0, 0, 0,
-186,138, 28, 63,155,208,189, 62, 0, 0, 0, 0,186,138, 28, 63,155,208,189, 62, 0, 0, 0, 0,133,124, 25, 63,181,159,213, 62,
- 0, 0, 0, 0,123, 60, 22, 63, 36,135,193, 62, 0, 0, 0, 0, 64,143, 19, 63, 4,196,217, 62, 0, 0, 0, 0,123, 60, 22, 63,
- 36,135,193, 62, 0, 0, 0, 0,133,124, 25, 63,181,159,213, 62, 0, 0, 0, 0,133,124, 25, 63,181,159,213, 62, 0, 0, 0, 0,
-186,138, 28, 63,155,208,189, 62, 0, 0, 0, 0,178,122, 31, 63, 55, 92,210, 62, 0, 0, 0, 0, 14,124, 28, 63,218, 32,233, 62,
- 0, 0, 0, 0,155,153, 25, 63, 0, 0, 0, 63, 0, 0, 0, 0, 86,158, 22, 63, 65,207,236, 62, 0, 0, 0, 0, 86,158, 22, 63,
- 65,207,236, 62, 0, 0, 0, 0,133,124, 25, 63,181,159,213, 62, 0, 0, 0, 0, 14,124, 28, 63,218, 32,233, 62, 0, 0, 0, 0,
-178,122, 31, 63, 55, 92,210, 62, 0, 0, 0, 0, 14,124, 28, 63,218, 32,233, 62, 0, 0, 0, 0,133,124, 25, 63,181,159,213, 62,
- 0, 0, 0, 0,133,124, 25, 63,181,159,213, 62, 0, 0, 0, 0, 86,158, 22, 63, 65,207,236, 62, 0, 0, 0, 0, 64,143, 19, 63,
- 4,196,217, 62, 0, 0, 0, 0,123, 60, 22, 63, 36,135,193, 62, 0, 0, 0, 0, 64,143, 19, 63, 4,196,217, 62, 0, 0, 0, 0,
-117, 81, 16, 63,223,230,198, 62, 0, 0, 0, 0,117, 81, 16, 63,223,230,198, 62, 0, 0, 0, 0, 7,234, 18, 63, 65, 54,174, 62,
- 0, 0, 0, 0,123, 60, 22, 63, 36,135,193, 62, 0, 0, 0, 0,150, 68, 25, 63, 54,150,169, 62, 0, 0, 0, 0,123, 60, 22, 63,
- 36,135,193, 62, 0, 0, 0, 0, 7,234, 18, 63, 65, 54,174, 62, 0, 0, 0, 0, 7,234, 18, 63, 65, 54,174, 62, 0, 0, 0, 0,
-117, 81, 16, 63,223,230,198, 62, 0, 0, 0, 0,191,204, 12, 63,160,111,180, 62, 0, 0, 0, 0, 14,124, 28, 63,218, 32,233, 62,
- 0, 0, 0, 0,178,122, 31, 63, 55, 92,210, 62, 0, 0, 0, 0, 17, 3, 35, 63, 58, 23,233, 62, 0, 0, 0, 0, 17, 3, 35, 63,
- 58, 23,233, 62, 0, 0, 0, 0, 2, 0, 32, 63, 24,252,255, 62, 0, 0, 0, 0, 14,124, 28, 63,218, 32,233, 62, 0, 0, 0, 0,
-155,153, 25, 63, 0, 0, 0, 63, 0, 0, 0, 0, 14,124, 28, 63,218, 32,233, 62, 0, 0, 0, 0, 2, 0, 32, 63, 24,252,255, 62,
- 0, 0, 0, 0, 2, 0, 32, 63, 24,252,255, 62, 0, 0, 0, 0, 17, 3, 35, 63, 58, 23,233, 62, 0, 0, 0, 0,109,102, 38, 63,
- 0, 0, 0, 63, 0, 0, 0, 0,200,201, 41, 63, 58, 23,233, 62, 0, 0, 0, 0,109,102, 38, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 17, 3, 35, 63, 58, 23,233, 62, 0, 0, 0, 0, 17, 3, 35, 63, 58, 23,233, 62, 0, 0, 0, 0,109,102, 38, 63,143,190,209, 62,
- 0, 0, 0, 0,200,201, 41, 63, 58, 23,233, 62, 0, 0, 0, 0, 38, 82, 45, 63, 55, 92,210, 62, 0, 0, 0, 0,200,201, 41, 63,
- 58, 23,233, 62, 0, 0, 0, 0,109,102, 38, 63,143,190,209, 62, 0, 0, 0, 0,109,102, 38, 63,143,190,209, 62, 0, 0, 0, 0,
- 17, 3, 35, 63, 58, 23,233, 62, 0, 0, 0, 0,178,122, 31, 63, 55, 92,210, 62, 0, 0, 0, 0, 97,187, 34, 63, 72,220,187, 62,
- 0, 0, 0, 0,107,102, 38, 63,201,199,165, 62, 0, 0, 0, 0,118, 17, 42, 63, 72,220,187, 62, 0, 0, 0, 0,118, 17, 42, 63,
- 72,220,187, 62, 0, 0, 0, 0,109,102, 38, 63,143,190,209, 62, 0, 0, 0, 0, 97,187, 34, 63, 72,220,187, 62, 0, 0, 0, 0,
-178,122, 31, 63, 55, 92,210, 62, 0, 0, 0, 0, 97,187, 34, 63, 72,220,187, 62, 0, 0, 0, 0,109,102, 38, 63,143,190,209, 62,
- 0, 0, 0, 0,109,102, 38, 63,143,190,209, 62, 0, 0, 0, 0,118, 17, 42, 63, 72,220,187, 62, 0, 0, 0, 0, 38, 82, 45, 63,
- 55, 92,210, 62, 0, 0, 0, 0,200,201, 41, 63, 58, 23,233, 62, 0, 0, 0, 0, 38, 82, 45, 63, 55, 92,210, 62, 0, 0, 0, 0,
-204, 80, 48, 63,218, 32,233, 62, 0, 0, 0, 0,204, 80, 48, 63,218, 32,233, 62, 0, 0, 0, 0,215,204, 44, 63, 23,252,255, 62,
- 0, 0, 0, 0,200,201, 41, 63, 58, 23,233, 62, 0, 0, 0, 0,109,102, 38, 63, 0, 0, 0, 63, 0, 0, 0, 0,200,201, 41, 63,
- 58, 23,233, 62, 0, 0, 0, 0,215,204, 44, 63, 23,252,255, 62, 0, 0, 0, 0,215,204, 44, 63, 23,252,255, 62, 0, 0, 0, 0,
-204, 80, 48, 63,218, 32,233, 62, 0, 0, 0, 0, 63, 51, 51, 63, 0, 0, 0, 63, 0, 0, 0, 0, 85,123, 60, 63,253,230,198, 62,
- 0, 0, 0, 0,144, 61, 57, 63, 19,196,217, 62, 0, 0, 0, 0, 86,144, 54, 63, 68,135,193, 62, 0, 0, 0, 0, 86,144, 54, 63,
- 68,135,193, 62, 0, 0, 0, 0,196,226, 57, 63,114, 54,174, 62, 0, 0, 0, 0, 85,123, 60, 63,253,230,198, 62, 0, 0, 0, 0,
- 0, 0, 64, 63,211,111,180, 62, 0, 0, 0, 0, 85,123, 60, 63,253,230,198, 62, 0, 0, 0, 0,196,226, 57, 63,114, 54,174, 62,
- 0, 0, 0, 0,196,226, 57, 63,114, 54,174, 62, 0, 0, 0, 0, 86,144, 54, 63, 68,135,193, 62, 0, 0, 0, 0, 58,136, 51, 63,
- 90,150,169, 62, 0, 0, 0, 0, 27, 66, 48, 63,173,208,189, 62, 0, 0, 0, 0, 58,136, 51, 63, 90,150,169, 62, 0, 0, 0, 0,
- 86,144, 54, 63, 68,135,193, 62, 0, 0, 0, 0, 86,144, 54, 63, 68,135,193, 62, 0, 0, 0, 0, 80, 80, 51, 63,192,159,213, 62,
- 0, 0, 0, 0, 27, 66, 48, 63,173,208,189, 62, 0, 0, 0, 0, 38, 82, 45, 63, 55, 92,210, 62, 0, 0, 0, 0, 27, 66, 48, 63,
-173,208,189, 62, 0, 0, 0, 0, 80, 80, 51, 63,192,159,213, 62, 0, 0, 0, 0, 80, 80, 51, 63,192,159,213, 62, 0, 0, 0, 0,
- 86,144, 54, 63, 68,135,193, 62, 0, 0, 0, 0,144, 61, 57, 63, 19,196,217, 62, 0, 0, 0, 0,128, 46, 54, 63, 75,207,236, 62,
- 0, 0, 0, 0, 63, 51, 51, 63, 0, 0, 0, 63, 0, 0, 0, 0,204, 80, 48, 63,218, 32,233, 62, 0, 0, 0, 0,204, 80, 48, 63,
-218, 32,233, 62, 0, 0, 0, 0, 80, 80, 51, 63,192,159,213, 62, 0, 0, 0, 0,128, 46, 54, 63, 75,207,236, 62, 0, 0, 0, 0,
-144, 61, 57, 63, 19,196,217, 62, 0, 0, 0, 0,128, 46, 54, 63, 75,207,236, 62, 0, 0, 0, 0, 80, 80, 51, 63,192,159,213, 62,
- 0, 0, 0, 0, 80, 80, 51, 63,192,159,213, 62, 0, 0, 0, 0,204, 80, 48, 63,218, 32,233, 62, 0, 0, 0, 0, 38, 82, 45, 63,
- 55, 92,210, 62, 0, 0, 0, 0, 27, 66, 48, 63,173,208,189, 62, 0, 0, 0, 0, 38, 82, 45, 63, 55, 92,210, 62, 0, 0, 0, 0,
-118, 17, 42, 63, 72,220,187, 62, 0, 0, 0, 0,118, 17, 42, 63, 72,220,187, 62, 0, 0, 0, 0, 26, 5, 45, 63,117,190,166, 62,
- 0, 0, 0, 0, 27, 66, 48, 63,173,208,189, 62, 0, 0, 0, 0, 58,136, 51, 63, 90,150,169, 62, 0, 0, 0, 0, 27, 66, 48, 63,
-173,208,189, 62, 0, 0, 0, 0, 26, 5, 45, 63,117,190,166, 62, 0, 0, 0, 0, 26, 5, 45, 63,117,190,166, 62, 0, 0, 0, 0,
-118, 17, 42, 63, 72,220,187, 62, 0, 0, 0, 0,107,102, 38, 63,201,199,165, 62, 0, 0, 0, 0,255, 55, 48, 63, 94,152, 9, 63,
- 0, 0, 0, 0,237, 40, 45, 63,252, 29, 19, 63, 0, 0, 0, 0,242,186, 41, 63,112,150, 9, 63, 0, 0, 0, 0,242,186, 41, 63,
-112,150, 9, 63, 0, 0, 0, 0,215,204, 44, 63, 23,252,255, 62, 0, 0, 0, 0,255, 55, 48, 63, 94,152, 9, 63, 0, 0, 0, 0,
- 63, 51, 51, 63, 0, 0, 0, 63, 0, 0, 0, 0,255, 55, 48, 63, 94,152, 9, 63, 0, 0, 0, 0,215,204, 44, 63, 23,252,255, 62,
- 0, 0, 0, 0,215,204, 44, 63, 23,252,255, 62, 0, 0, 0, 0,242,186, 41, 63,112,150, 9, 63, 0, 0, 0, 0,109,102, 38, 63,
- 0, 0, 0, 63, 0, 0, 0, 0,235, 17, 35, 63,112,150, 9, 63, 0, 0, 0, 0,109,102, 38, 63, 0, 0, 0, 63, 0, 0, 0, 0,
-242,186, 41, 63,112,150, 9, 63, 0, 0, 0, 0,242,186, 41, 63,112,150, 9, 63, 0, 0, 0, 0,113,102, 38, 63,219, 98, 19, 63,
- 0, 0, 0, 0,235, 17, 35, 63,112,150, 9, 63, 0, 0, 0, 0,245,163, 31, 63,253, 29, 19, 63, 0, 0, 0, 0,235, 17, 35, 63,
-112,150, 9, 63, 0, 0, 0, 0,113,102, 38, 63,219, 98, 19, 63, 0, 0, 0, 0,113,102, 38, 63,219, 98, 19, 63, 0, 0, 0, 0,
-242,186, 41, 63,112,150, 9, 63, 0, 0, 0, 0,237, 40, 45, 63,252, 29, 19, 63, 0, 0, 0, 0, 38,235, 41, 63,141,140, 28, 63,
- 0, 0, 0, 0,117,102, 38, 63, 45,200, 37, 63, 0, 0, 0, 0,192,225, 34, 63,142,140, 28, 63, 0, 0, 0, 0,192,225, 34, 63,
-142,140, 28, 63, 0, 0, 0, 0,113,102, 38, 63,219, 98, 19, 63, 0, 0, 0, 0, 38,235, 41, 63,141,140, 28, 63, 0, 0, 0, 0,
-237, 40, 45, 63,252, 29, 19, 63, 0, 0, 0, 0, 38,235, 41, 63,141,140, 28, 63, 0, 0, 0, 0,113,102, 38, 63,219, 98, 19, 63,
- 0, 0, 0, 0,113,102, 38, 63,219, 98, 19, 63, 0, 0, 0, 0,192,225, 34, 63,142,140, 28, 63, 0, 0, 0, 0,245,163, 31, 63,
-253, 29, 19, 63, 0, 0, 0, 0,235, 17, 35, 63,112,150, 9, 63, 0, 0, 0, 0,245,163, 31, 63,253, 29, 19, 63, 0, 0, 0, 0,
-223,148, 28, 63, 94,152, 9, 63, 0, 0, 0, 0,223,148, 28, 63, 94,152, 9, 63, 0, 0, 0, 0, 2, 0, 32, 63, 24,252,255, 62,
- 0, 0, 0, 0,235, 17, 35, 63,112,150, 9, 63, 0, 0, 0, 0,109,102, 38, 63, 0, 0, 0, 63, 0, 0, 0, 0,235, 17, 35, 63,
-112,150, 9, 63, 0, 0, 0, 0, 2, 0, 32, 63, 24,252,255, 62, 0, 0, 0, 0, 2, 0, 32, 63, 24,252,255, 62, 0, 0, 0, 0,
-223,148, 28, 63, 94,152, 9, 63, 0, 0, 0, 0,155,153, 25, 63, 0, 0, 0, 63, 0, 0, 0, 0,188,129,107, 63, 66, 45,128, 62,
- 0, 0, 0, 0,235, 71, 99, 63,222, 76,120, 62, 0, 0, 0, 0, 94, 37,106, 63, 84, 97, 83, 62, 0, 0, 0, 0, 94, 37,106, 63,
- 84, 97, 83, 62, 0, 0, 0, 0, 65, 51,115, 63,248,151, 97, 62, 0, 0, 0, 0,188,129,107, 63, 66, 45,128, 62, 0, 0, 0, 0,
- 65, 51,115, 63,151, 83,135, 62, 0, 0, 0, 0,188,129,107, 63, 66, 45,128, 62, 0, 0, 0, 0, 65, 51,115, 63,248,151, 97, 62,
- 0, 0, 0, 0, 65, 51,115, 63,248,151, 97, 62, 0, 0, 0, 0, 94, 37,106, 63, 84, 97, 83, 62, 0, 0, 0, 0, 65, 51,115, 63,
- 90,111, 52, 62, 0, 0, 0, 0,188,129,107, 63, 66, 45,128, 62, 0, 0, 0, 0, 65, 51,115, 63,151, 83,135, 62, 0, 0, 0, 0,
-142,123,108, 63,169,144,151, 62, 0, 0, 0, 0,142,123,108, 63,169,144,151, 62, 0, 0, 0, 0,231, 50,101, 63, 17,201,146, 62,
- 0, 0, 0, 0,188,129,107, 63, 66, 45,128, 62, 0, 0, 0, 0,235, 71, 99, 63,222, 76,120, 62, 0, 0, 0, 0,188,129,107, 63,
- 66, 45,128, 62, 0, 0, 0, 0,231, 50,101, 63, 17,201,146, 62, 0, 0, 0, 0,231, 50,101, 63, 17,201,146, 62, 0, 0, 0, 0,
-142,123,108, 63,169,144,151, 62, 0, 0, 0, 0,106,187,102, 63, 54,150,169, 62, 0, 0, 0, 0, 71, 56, 96, 63, 99,190,166, 62,
- 0, 0, 0, 0,149,153, 89, 63,201,199,165, 62, 0, 0, 0, 0, 22,238, 93, 63,243,101,144, 62, 0, 0, 0, 0, 22,238, 93, 63,
-243,101,144, 62, 0, 0, 0, 0,231, 50,101, 63, 17,201,146, 62, 0, 0, 0, 0, 71, 56, 96, 63, 99,190,166, 62, 0, 0, 0, 0,
-106,187,102, 63, 54,150,169, 62, 0, 0, 0, 0, 71, 56, 96, 63, 99,190,166, 62, 0, 0, 0, 0,231, 50,101, 63, 17,201,146, 62,
- 0, 0, 0, 0,231, 50,101, 63, 17,201,146, 62, 0, 0, 0, 0, 22,238, 93, 63,243,101,144, 62, 0, 0, 0, 0,235, 71, 99, 63,
-222, 76,120, 62, 0, 0, 0, 0,249, 21,109, 63, 65, 54,174, 62, 0, 0, 0, 0,106,187,102, 63, 54,150,169, 62, 0, 0, 0, 0,
-142,123,108, 63,169,144,151, 62, 0, 0, 0, 0,142,123,108, 63,169,144,151, 62, 0, 0, 0, 0, 65, 51,115, 63, 93,231,157, 62,
- 0, 0, 0, 0,249, 21,109, 63, 65, 54,174, 62, 0, 0, 0, 0, 65, 51,115, 63,160,111,180, 62, 0, 0, 0, 0,249, 21,109, 63,
- 65, 54,174, 62, 0, 0, 0, 0, 65, 51,115, 63, 93,231,157, 62, 0, 0, 0, 0, 65, 51,115, 63, 93,231,157, 62, 0, 0, 0, 0,
-142,123,108, 63,169,144,151, 62, 0, 0, 0, 0, 65, 51,115, 63,151, 83,135, 62, 0, 0, 0, 0,149,153, 89, 63, 79,162,115, 62,
- 0, 0, 0, 0,235, 71, 99, 63,222, 76,120, 62, 0, 0, 0, 0, 22,238, 93, 63,243,101,144, 62, 0, 0, 0, 0, 22,238, 93, 63,
-243,101,144, 62, 0, 0, 0, 0, 21, 69, 85, 63, 3,102,144, 62, 0, 0, 0, 0,149,153, 89, 63, 79,162,115, 62, 0, 0, 0, 0,
- 68,235, 79, 63, 37, 77,120, 62, 0, 0, 0, 0,149,153, 89, 63, 79,162,115, 62, 0, 0, 0, 0, 21, 69, 85, 63, 3,102,144, 62,
- 0, 0, 0, 0, 21, 69, 85, 63, 3,102,144, 62, 0, 0, 0, 0, 22,238, 93, 63,243,101,144, 62, 0, 0, 0, 0,149,153, 89, 63,
-201,199,165, 62, 0, 0, 0, 0,149,153, 89, 63, 79,162,115, 62, 0, 0, 0, 0, 68,235, 79, 63, 37, 77,120, 62, 0, 0, 0, 0,
- 24,186, 83, 63,245,176, 70, 62, 0, 0, 0, 0, 24,186, 83, 63,245,176, 70, 62, 0, 0, 0, 0, 22,121, 95, 63,204,176, 70, 62,
- 0, 0, 0, 0,149,153, 89, 63, 79,162,115, 62, 0, 0, 0, 0,235, 71, 99, 63,222, 76,120, 62, 0, 0, 0, 0,149,153, 89, 63,
- 79,162,115, 62, 0, 0, 0, 0, 22,121, 95, 63,204,176, 70, 62, 0, 0, 0, 0, 22,121, 95, 63,204,176, 70, 62, 0, 0, 0, 0,
- 24,186, 83, 63,245,176, 70, 62, 0, 0, 0, 0,152,153, 89, 63,198, 31, 23, 62, 0, 0, 0, 0, 61,119,103, 63,179,253, 30, 62,
- 0, 0, 0, 0, 65, 51,115, 63, 90,111, 52, 62, 0, 0, 0, 0, 94, 37,106, 63, 84, 97, 83, 62, 0, 0, 0, 0, 94, 37,106, 63,
- 84, 97, 83, 62, 0, 0, 0, 0, 22,121, 95, 63,204,176, 70, 62, 0, 0, 0, 0, 61,119,103, 63,179,253, 30, 62, 0, 0, 0, 0,
-152,153, 89, 63,198, 31, 23, 62, 0, 0, 0, 0, 61,119,103, 63,179,253, 30, 62, 0, 0, 0, 0, 22,121, 95, 63,204,176, 70, 62,
- 0, 0, 0, 0, 22,121, 95, 63,204,176, 70, 62, 0, 0, 0, 0, 94, 37,106, 63, 84, 97, 83, 62, 0, 0, 0, 0,235, 71, 99, 63,
-222, 76,120, 62, 0, 0, 0, 0,248,187, 75, 63,241,253, 30, 62, 0, 0, 0, 0,152,153, 89, 63,198, 31, 23, 62, 0, 0, 0, 0,
- 24,186, 83, 63,245,176, 70, 62, 0, 0, 0, 0, 24,186, 83, 63,245,176, 70, 62, 0, 0, 0, 0,214, 13, 73, 63,181, 97, 83, 62,
- 0, 0, 0, 0,248,187, 75, 63,241,253, 30, 62, 0, 0, 0, 0, 0, 0, 64, 63,202,111, 52, 62, 0, 0, 0, 0,248,187, 75, 63,
-241,253, 30, 62, 0, 0, 0, 0,214, 13, 73, 63,181, 97, 83, 62, 0, 0, 0, 0,214, 13, 73, 63,181, 97, 83, 62, 0, 0, 0, 0,
- 24,186, 83, 63,245,176, 70, 62, 0, 0, 0, 0, 68,235, 79, 63, 37, 77,120, 62, 0, 0, 0, 0,152,153, 89, 63,111, 41,147, 61,
- 0, 0, 0, 0, 0, 0, 64, 63,195,111,180, 61, 0, 0, 0, 0, 0, 0, 64, 63,111, 65, 52, 61, 0, 0, 0, 0, 0, 0, 64, 63,
-111, 65, 52, 61, 0, 0, 0, 0, 38, 49,117, 63,225, 64, 52, 61, 0, 0, 0, 0,152,153, 89, 63,111, 41,147, 61, 0, 0, 0, 0,
- 65, 51,115, 63, 83,111,180, 61, 0, 0, 0, 0,152,153, 89, 63,111, 41,147, 61, 0, 0, 0, 0, 38, 49,117, 63,225, 64, 52, 61,
- 0, 0, 0, 0, 38, 49,117, 63,225, 64, 52, 61, 0, 0, 0, 0, 0, 0, 64, 63,111, 65, 52, 61, 0, 0, 0, 0,208,222,121, 63,
-102, 9,239,178, 0, 0, 0, 0,152,153, 89, 63,111, 41,147, 61, 0, 0, 0, 0, 65, 51,115, 63, 83,111,180, 61, 0, 0, 0, 0,
-172, 51, 99, 63, 48, 46,231, 61, 0, 0, 0, 0,172, 51, 99, 63, 48, 46,231, 61, 0, 0, 0, 0,135,255, 79, 63,120, 46,231, 61,
- 0, 0, 0, 0,152,153, 89, 63,111, 41,147, 61, 0, 0, 0, 0, 0, 0, 64, 63,195,111,180, 61, 0, 0, 0, 0,152,153, 89, 63,
-111, 41,147, 61, 0, 0, 0, 0,135,255, 79, 63,120, 46,231, 61, 0, 0, 0, 0,135,255, 79, 63,120, 46,231, 61, 0, 0, 0, 0,
-172, 51, 99, 63, 48, 46,231, 61, 0, 0, 0, 0,152,153, 89, 63,198, 31, 23, 62, 0, 0, 0, 0,248,187, 75, 63,241,253, 30, 62,
- 0, 0, 0, 0, 0, 0, 64, 63,202,111, 52, 62, 0, 0, 0, 0, 0, 0, 64, 63, 24, 71, 7, 62, 0, 0, 0, 0, 0, 0, 64, 63,
- 24, 71, 7, 62, 0, 0, 0, 0,135,255, 79, 63,120, 46,231, 61, 0, 0, 0, 0,248,187, 75, 63,241,253, 30, 62, 0, 0, 0, 0,
-152,153, 89, 63,198, 31, 23, 62, 0, 0, 0, 0,248,187, 75, 63,241,253, 30, 62, 0, 0, 0, 0,135,255, 79, 63,120, 46,231, 61,
- 0, 0, 0, 0,135,255, 79, 63,120, 46,231, 61, 0, 0, 0, 0, 0, 0, 64, 63, 24, 71, 7, 62, 0, 0, 0, 0, 0, 0, 64, 63,
-195,111,180, 61, 0, 0, 0, 0, 61,119,103, 63,179,253, 30, 62, 0, 0, 0, 0,152,153, 89, 63,198, 31, 23, 62, 0, 0, 0, 0,
-172, 51, 99, 63, 48, 46,231, 61, 0, 0, 0, 0,172, 51, 99, 63, 48, 46,231, 61, 0, 0, 0, 0, 66, 51,115, 63,199, 70, 7, 62,
- 0, 0, 0, 0, 61,119,103, 63,179,253, 30, 62, 0, 0, 0, 0, 65, 51,115, 63, 90,111, 52, 62, 0, 0, 0, 0, 61,119,103, 63,
-179,253, 30, 62, 0, 0, 0, 0, 66, 51,115, 63,199, 70, 7, 62, 0, 0, 0, 0, 66, 51,115, 63,199, 70, 7, 62, 0, 0, 0, 0,
-172, 51, 99, 63, 48, 46,231, 61, 0, 0, 0, 0, 65, 51,115, 63, 83,111,180, 61, 0, 0, 0, 0,122,177, 71, 63,120, 45,128, 62,
- 0, 0, 0, 0, 0, 0, 64, 63,218, 83,135, 62, 0, 0, 0, 0, 0, 0, 64, 63,115,152, 97, 62, 0, 0, 0, 0, 0, 0, 64, 63,
-115,152, 97, 62, 0, 0, 0, 0,214, 13, 73, 63,181, 97, 83, 62, 0, 0, 0, 0,122,177, 71, 63,120, 45,128, 62, 0, 0, 0, 0,
- 68,235, 79, 63, 37, 77,120, 62, 0, 0, 0, 0,122,177, 71, 63,120, 45,128, 62, 0, 0, 0, 0,214, 13, 73, 63,181, 97, 83, 62,
- 0, 0, 0, 0,214, 13, 73, 63,181, 97, 83, 62, 0, 0, 0, 0, 0, 0, 64, 63,115,152, 97, 62, 0, 0, 0, 0, 0, 0, 64, 63,
-202,111, 52, 62, 0, 0, 0, 0,122,177, 71, 63,120, 45,128, 62, 0, 0, 0, 0, 68,235, 79, 63, 37, 77,120, 62, 0, 0, 0, 0,
- 72, 0, 78, 63, 52,201,146, 62, 0, 0, 0, 0, 72, 0, 78, 63, 52,201,146, 62, 0, 0, 0, 0,169,183, 70, 63,219,144,151, 62,
- 0, 0, 0, 0,122,177, 71, 63,120, 45,128, 62, 0, 0, 0, 0, 0, 0, 64, 63,218, 83,135, 62, 0, 0, 0, 0,122,177, 71, 63,
-120, 45,128, 62, 0, 0, 0, 0,169,183, 70, 63,219,144,151, 62, 0, 0, 0, 0,169,183, 70, 63,219,144,151, 62, 0, 0, 0, 0,
- 72, 0, 78, 63, 52,201,146, 62, 0, 0, 0, 0,198,119, 76, 63, 90,150,169, 62, 0, 0, 0, 0, 61, 29, 70, 63,114, 54,174, 62,
- 0, 0, 0, 0, 0, 0, 64, 63,211,111,180, 62, 0, 0, 0, 0, 0, 0, 64, 63,162,231,157, 62, 0, 0, 0, 0, 0, 0, 64, 63,
-162,231,157, 62, 0, 0, 0, 0,169,183, 70, 63,219,144,151, 62, 0, 0, 0, 0, 61, 29, 70, 63,114, 54,174, 62, 0, 0, 0, 0,
-198,119, 76, 63, 90,150,169, 62, 0, 0, 0, 0, 61, 29, 70, 63,114, 54,174, 62, 0, 0, 0, 0,169,183, 70, 63,219,144,151, 62,
- 0, 0, 0, 0,169,183, 70, 63,219,144,151, 62, 0, 0, 0, 0, 0, 0, 64, 63,162,231,157, 62, 0, 0, 0, 0, 0, 0, 64, 63,
-218, 83,135, 62, 0, 0, 0, 0,230,250, 82, 63,117,190,166, 62, 0, 0, 0, 0,198,119, 76, 63, 90,150,169, 62, 0, 0, 0, 0,
- 72, 0, 78, 63, 52,201,146, 62, 0, 0, 0, 0, 72, 0, 78, 63, 52,201,146, 62, 0, 0, 0, 0, 21, 69, 85, 63, 3,102,144, 62,
- 0, 0, 0, 0,230,250, 82, 63,117,190,166, 62, 0, 0, 0, 0,149,153, 89, 63,201,199,165, 62, 0, 0, 0, 0,230,250, 82, 63,
-117,190,166, 62, 0, 0, 0, 0, 21, 69, 85, 63, 3,102,144, 62, 0, 0, 0, 0, 21, 69, 85, 63, 3,102,144, 62, 0, 0, 0, 0,
- 72, 0, 78, 63, 52,201,146, 62, 0, 0, 0, 0, 68,235, 79, 63, 37, 77,120, 62, 0, 0, 0, 0,179,167,245, 61, 72, 45,128, 62,
- 0, 0, 0, 0, 94,217,179, 61,222, 76,120, 62, 0, 0, 0, 0,202,196,234, 61,100, 97, 83, 62, 0, 0, 0, 0,202,196,234, 61,
-100, 97, 83, 62, 0, 0, 0, 0,212,153, 25, 62, 2,152, 97, 62, 0, 0, 0, 0,179,167,245, 61, 72, 45,128, 62, 0, 0, 0, 0,
-214,153, 25, 62,156, 83,135, 62, 0, 0, 0, 0,179,167,245, 61, 72, 45,128, 62, 0, 0, 0, 0,212,153, 25, 62, 2,152, 97, 62,
- 0, 0, 0, 0,212,153, 25, 62, 2,152, 97, 62, 0, 0, 0, 0,202,196,234, 61,100, 97, 83, 62, 0, 0, 0, 0,214,153, 25, 62,
-106,111, 52, 62, 0, 0, 0, 0,179,167,245, 61, 72, 45,128, 62, 0, 0, 0, 0,214,153, 25, 62,156, 83,135, 62, 0, 0, 0, 0,
- 62,118,253, 61,174,144,151, 62, 0, 0, 0, 0, 62,118,253, 61,174,144,151, 62, 0, 0, 0, 0, 53, 49,195, 61, 17,201,146, 62,
- 0, 0, 0, 0,179,167,245, 61, 72, 45,128, 62, 0, 0, 0, 0, 94,217,179, 61,222, 76,120, 62, 0, 0, 0, 0,179,167,245, 61,
- 72, 45,128, 62, 0, 0, 0, 0, 53, 49,195, 61, 17,201,146, 62, 0, 0, 0, 0, 53, 49,195, 61, 17,201,146, 62, 0, 0, 0, 0,
- 62,118,253, 61,174,144,151, 62, 0, 0, 0, 0, 70,117,207, 61, 54,150,169, 62, 0, 0, 0, 0, 79, 92,155, 61, 91,190,166, 62,
- 0, 0, 0, 0,194,205, 76, 61,186,199,165, 62, 0, 0, 0, 0,212, 10,137, 61,238,101,144, 62, 0, 0, 0, 0,212, 10,137, 61,
-238,101,144, 62, 0, 0, 0, 0, 53, 49,195, 61, 17,201,146, 62, 0, 0, 0, 0, 79, 92,155, 61, 91,190,166, 62, 0, 0, 0, 0,
- 70,117,207, 61, 54,150,169, 62, 0, 0, 0, 0, 79, 92,155, 61, 91,190,166, 62, 0, 0, 0, 0, 53, 49,195, 61, 17,201,146, 62,
- 0, 0, 0, 0, 53, 49,195, 61, 17,201,146, 62, 0, 0, 0, 0,212, 10,137, 61,238,101,144, 62, 0, 0, 0, 0, 94,217,179, 61,
-222, 76,120, 62, 0, 0, 0, 0,204, 36, 1, 62, 70, 54,174, 62, 0, 0, 0, 0, 70,117,207, 61, 54,150,169, 62, 0, 0, 0, 0,
- 62,118,253, 61,174,144,151, 62, 0, 0, 0, 0, 62,118,253, 61,174,144,151, 62, 0, 0, 0, 0,213,153, 25, 62,100,231,157, 62,
- 0, 0, 0, 0,204, 36, 1, 62, 70, 54,174, 62, 0, 0, 0, 0,214,153, 25, 62,165,111,180, 62, 0, 0, 0, 0,204, 36, 1, 62,
- 70, 54,174, 62, 0, 0, 0, 0,213,153, 25, 62,100,231,157, 62, 0, 0, 0, 0,213,153, 25, 62,100,231,157, 62, 0, 0, 0, 0,
- 62,118,253, 61,174,144,151, 62, 0, 0, 0, 0,214,153, 25, 62,156, 83,135, 62, 0, 0, 0, 0,188,205, 76, 61, 53,162,115, 62,
- 0, 0, 0, 0, 94,217,179, 61,222, 76,120, 62, 0, 0, 0, 0,212, 10,137, 61,238,101,144, 62, 0, 0, 0, 0,212, 10,137, 61,
-238,101,144, 62, 0, 0, 0, 0,207,133, 7, 61,236,101,144, 62, 0, 0, 0, 0,188,205, 76, 61, 53,162,115, 62, 0, 0, 0, 0,
-255,162, 71, 60,216, 76,120, 62, 0, 0, 0, 0,188,205, 76, 61, 53,162,115, 62, 0, 0, 0, 0,207,133, 7, 61,236,101,144, 62,
- 0, 0, 0, 0,207,133, 7, 61,236,101,144, 62, 0, 0, 0, 0,212, 10,137, 61,238,101,144, 62, 0, 0, 0, 0,194,205, 76, 61,
-186,199,165, 62, 0, 0, 0, 0,188,205, 76, 61, 53,162,115, 62, 0, 0, 0, 0,255,162, 71, 60,216, 76,120, 62, 0, 0, 0, 0,
-190,171,221, 60,194,176, 70, 62, 0, 0, 0, 0,190,171,221, 60,194,176, 70, 62, 0, 0, 0, 0,194, 98,149, 61,194,176, 70, 62,
- 0, 0, 0, 0,188,205, 76, 61, 53,162,115, 62, 0, 0, 0, 0, 94,217,179, 61,222, 76,120, 62, 0, 0, 0, 0,188,205, 76, 61,
- 53,162,115, 62, 0, 0, 0, 0,194, 98,149, 61,194,176, 70, 62, 0, 0, 0, 0,194, 98,149, 61,194,176, 70, 62, 0, 0, 0, 0,
-190,171,221, 60,194,176, 70, 62, 0, 0, 0, 0,193,205, 76, 61,168, 31, 23, 62, 0, 0, 0, 0,198, 83,213, 61,179,253, 30, 62,
- 0, 0, 0, 0,214,153, 25, 62,106,111, 52, 62, 0, 0, 0, 0,202,196,234, 61,100, 97, 83, 62, 0, 0, 0, 0,202,196,234, 61,
-100, 97, 83, 62, 0, 0, 0, 0,194, 98,149, 61,194,176, 70, 62, 0, 0, 0, 0,198, 83,213, 61,179,253, 30, 62, 0, 0, 0, 0,
-193,205, 76, 61,168, 31, 23, 62, 0, 0, 0, 0,198, 83,213, 61,179,253, 30, 62, 0, 0, 0, 0,194, 98,149, 61,194,176, 70, 62,
- 0, 0, 0, 0,194, 98,149, 61,194,176, 70, 62, 0, 0, 0, 0,202,196,234, 61,100, 97, 83, 62, 0, 0, 0, 0, 94,217,179, 61,
-222, 76,120, 62, 0, 0, 0, 0, 59,239,126, 63,174,253, 30, 62, 0, 0, 0, 0,154,105,131, 63,168, 31, 23, 62, 0, 0, 0, 0,
-175,118,131, 63,194,176, 70, 62, 0, 0, 0, 0,175,118,131, 63,194,176, 70, 62, 0, 0, 0, 0, 30, 65,124, 63, 90, 97, 83, 62,
- 0, 0, 0, 0, 59,239,126, 63,174,253, 30, 62, 0, 0, 0, 0, 65, 51,115, 63, 90,111, 52, 62, 0, 0, 0, 0, 59,239,126, 63,
-174,253, 30, 62, 0, 0, 0, 0, 30, 65,124, 63, 90, 97, 83, 62, 0, 0, 0, 0, 30, 65,124, 63, 90, 97, 83, 62, 0, 0, 0, 0,
-175,118,131, 63,194,176, 70, 62, 0, 0, 0, 0, 70,143,129, 63,216, 76,120, 62, 0, 0, 0, 0,156,105,131, 63,101, 41,147, 61,
- 0, 0, 0, 0, 65, 51,115, 63, 83,111,180, 61, 0, 0, 0, 0, 38, 49,117, 63,225, 64, 52, 61, 0, 0, 0, 0, 38, 49,117, 63,
-225, 64, 52, 61, 0, 0, 0, 0,232,148,135, 63,144,158,125, 60, 0, 0, 0, 0,156,105,131, 63,101, 41,147, 61, 0, 0, 0, 0,
-215,153, 25, 62,104,111,180, 61, 0, 0, 0, 0,122,245,128, 61,101, 41,147, 61, 0, 0, 0, 0,224,153, 25, 62,225, 64, 52, 61,
- 0, 0, 0, 0,232,148,135, 63,144,158,125, 60, 0, 0, 0, 0, 38, 49,117, 63,225, 64, 52, 61, 0, 0, 0, 0,208,222,121, 63,
-102, 9,239,178, 0, 0, 0, 0,122,245,128, 61,101, 41,147, 61, 0, 0, 0, 0,215,153, 25, 62,104,111,180, 61, 0, 0, 0, 0,
- 89, 55,179, 61, 38, 46,231, 61, 0, 0, 0, 0, 89, 55,179, 61, 38, 46,231, 61, 0, 0, 0, 0, 96,147,208, 60, 48, 46,231, 61,
- 0, 0, 0, 0,122,245,128, 61,101, 41,147, 61, 0, 0, 0, 0, 65, 51,115, 63, 83,111,180, 61, 0, 0, 0, 0,156,105,131, 63,
-101, 41,147, 61, 0, 0, 0, 0,102,153,129, 63, 48, 46,231, 61, 0, 0, 0, 0, 96,147,208, 60, 48, 46,231, 61, 0, 0, 0, 0,
- 89, 55,179, 61, 38, 46,231, 61, 0, 0, 0, 0,193,205, 76, 61,168, 31, 23, 62, 0, 0, 0, 0, 59,239,126, 63,174,253, 30, 62,
- 0, 0, 0, 0, 65, 51,115, 63, 90,111, 52, 62, 0, 0, 0, 0, 66, 51,115, 63,199, 70, 7, 62, 0, 0, 0, 0, 66, 51,115, 63,
-199, 70, 7, 62, 0, 0, 0, 0,102,153,129, 63, 48, 46,231, 61, 0, 0, 0, 0, 59,239,126, 63,174,253, 30, 62, 0, 0, 0, 0,
-154,105,131, 63,168, 31, 23, 62, 0, 0, 0, 0, 59,239,126, 63,174,253, 30, 62, 0, 0, 0, 0,102,153,129, 63, 48, 46,231, 61,
- 0, 0, 0, 0,102,153,129, 63, 48, 46,231, 61, 0, 0, 0, 0, 66, 51,115, 63,199, 70, 7, 62, 0, 0, 0, 0, 65, 51,115, 63,
- 83,111,180, 61, 0, 0, 0, 0,198, 83,213, 61,179,253, 30, 62, 0, 0, 0, 0,193,205, 76, 61,168, 31, 23, 62, 0, 0, 0, 0,
- 89, 55,179, 61, 38, 46,231, 61, 0, 0, 0, 0, 89, 55,179, 61, 38, 46,231, 61, 0, 0, 0, 0,217,153, 25, 62,204, 70, 7, 62,
- 0, 0, 0, 0,198, 83,213, 61,179,253, 30, 62, 0, 0, 0, 0,214,153, 25, 62,106,111, 52, 62, 0, 0, 0, 0,198, 83,213, 61,
-179,253, 30, 62, 0, 0, 0, 0,217,153, 25, 62,204, 70, 7, 62, 0, 0, 0, 0,217,153, 25, 62,204, 70, 7, 62, 0, 0, 0, 0,
- 89, 55,179, 61, 38, 46,231, 61, 0, 0, 0, 0,215,153, 25, 62,104,111,180, 61, 0, 0, 0, 0,192,228,122, 63, 66, 45,128, 62,
- 0, 0, 0, 0, 65, 51,115, 63,151, 83,135, 62, 0, 0, 0, 0, 65, 51,115, 63,248,151, 97, 62, 0, 0, 0, 0, 65, 51,115, 63,
-248,151, 97, 62, 0, 0, 0, 0, 30, 65,124, 63, 90, 97, 83, 62, 0, 0, 0, 0,192,228,122, 63, 66, 45,128, 62, 0, 0, 0, 0,
- 70,143,129, 63,216, 76,120, 62, 0, 0, 0, 0,192,228,122, 63, 66, 45,128, 62, 0, 0, 0, 0, 30, 65,124, 63, 90, 97, 83, 62,
- 0, 0, 0, 0, 30, 65,124, 63, 90, 97, 83, 62, 0, 0, 0, 0, 65, 51,115, 63,248,151, 97, 62, 0, 0, 0, 0, 65, 51,115, 63,
- 90,111, 52, 62, 0, 0, 0, 0,192,228,122, 63, 66, 45,128, 62, 0, 0, 0, 0, 70,143,129, 63,216, 76,120, 62, 0, 0, 0, 0,
-201,153,128, 63, 14,201,146, 62, 0, 0, 0, 0,201,153,128, 63, 14,201,146, 62, 0, 0, 0, 0,239,234,121, 63,169,144,151, 62,
- 0, 0, 0, 0,192,228,122, 63, 66, 45,128, 62, 0, 0, 0, 0, 65, 51,115, 63,151, 83,135, 62, 0, 0, 0, 0,192,228,122, 63,
- 66, 45,128, 62, 0, 0, 0, 0,239,234,121, 63,169,144,151, 62, 0, 0, 0, 0,239,234,121, 63,169,144,151, 62, 0, 0, 0, 0,
-201,153,128, 63, 14,201,146, 62, 0, 0, 0, 0, 15,171,127, 63, 52,150,169, 62, 0, 0, 0, 0,133, 80,121, 63, 65, 54,174, 62,
- 0, 0, 0, 0, 65, 51,115, 63,160,111,180, 62, 0, 0, 0, 0, 65, 51,115, 63, 93,231,157, 62, 0, 0, 0, 0, 65, 51,115, 63,
- 93,231,157, 62, 0, 0, 0, 0,239,234,121, 63,169,144,151, 62, 0, 0, 0, 0,133, 80,121, 63, 65, 54,174, 62, 0, 0, 0, 0,
- 15,171,127, 63, 52,150,169, 62, 0, 0, 0, 0,133, 80,121, 63, 65, 54,174, 62, 0, 0, 0, 0,239,234,121, 63,169,144,151, 62,
- 0, 0, 0, 0,239,234,121, 63,169,144,151, 62, 0, 0, 0, 0, 65, 51,115, 63, 93,231,157, 62, 0, 0, 0, 0, 65, 51,115, 63,
-151, 83,135, 62, 0, 0, 0, 0, 23, 23,131, 63, 89,190,166, 62, 0, 0, 0, 0, 15,171,127, 63, 52,150,169, 62, 0, 0, 0, 0,
-201,153,128, 63, 14,201,146, 62, 0, 0, 0, 0,136,200,153, 59, 14,201,146, 62, 0, 0, 0, 0,207,133, 7, 61,236,101,144, 62,
- 0, 0, 0, 0,195,197,197, 60, 89,190,166, 62, 0, 0, 0, 0,194,205, 76, 61,186,199,165, 62, 0, 0, 0, 0,195,197,197, 60,
- 89,190,166, 62, 0, 0, 0, 0,207,133, 7, 61,236,101,144, 62, 0, 0, 0, 0,207,133, 7, 61,236,101,144, 62, 0, 0, 0, 0,
-136,200,153, 59, 14,201,146, 62, 0, 0, 0, 0,255,162, 71, 60,216, 76,120, 62, 0, 0, 0, 0, 32,208,163, 62, 79, 45,128, 62,
- 0, 0, 0, 0,147, 92,147, 62,252, 76,120, 62, 0, 0, 0, 0,102, 23,161, 62,115, 97, 83, 62, 0, 0, 0, 0,102, 23,161, 62,
-115, 97, 83, 62, 0, 0, 0, 0, 22, 51,179, 62, 2,152, 97, 62, 0, 0, 0, 0, 32,208,163, 62, 79, 45,128, 62, 0, 0, 0, 0,
- 21, 51,179, 62,156, 83,135, 62, 0, 0, 0, 0, 32,208,163, 62, 79, 45,128, 62, 0, 0, 0, 0, 22, 51,179, 62, 2,152, 97, 62,
- 0, 0, 0, 0, 22, 51,179, 62, 2,152, 97, 62, 0, 0, 0, 0,102, 23,161, 62,115, 97, 83, 62, 0, 0, 0, 0, 21, 51,179, 62,
-101,111, 52, 62, 0, 0, 0, 0, 32,208,163, 62, 79, 45,128, 62, 0, 0, 0, 0, 21, 51,179, 62,156, 83,135, 62, 0, 0, 0, 0,
-194,195,165, 62,181,144,151, 62, 0, 0, 0, 0,194,195,165, 62,181,144,151, 62, 0, 0, 0, 0,134, 50,151, 62, 29,201,146, 62,
- 0, 0, 0, 0, 32,208,163, 62, 79, 45,128, 62, 0, 0, 0, 0,147, 92,147, 62,252, 76,120, 62, 0, 0, 0, 0, 32,208,163, 62,
- 79, 45,128, 62, 0, 0, 0, 0,134, 50,151, 62, 29,201,146, 62, 0, 0, 0, 0,134, 50,151, 62, 29,201,146, 62, 0, 0, 0, 0,
-194,195,165, 62,181,144,151, 62, 0, 0, 0, 0,137, 67,154, 62, 70,150,169, 62, 0, 0, 0, 0, 82, 61,141, 62,112,190,166, 62,
- 0, 0, 0, 0, 0, 0,128, 62,206,199,165, 62, 0, 0, 0, 0,247,168,136, 62, 3,102,144, 62, 0, 0, 0, 0,247,168,136, 62,
- 3,102,144, 62, 0, 0, 0, 0,134, 50,151, 62, 29,201,146, 62, 0, 0, 0, 0, 82, 61,141, 62,112,190,166, 62, 0, 0, 0, 0,
-137, 67,154, 62, 70,150,169, 62, 0, 0, 0, 0, 82, 61,141, 62,112,190,166, 62, 0, 0, 0, 0,134, 50,151, 62, 29,201,146, 62,
- 0, 0, 0, 0,134, 50,151, 62, 29,201,146, 62, 0, 0, 0, 0,247,168,136, 62, 3,102,144, 62, 0, 0, 0, 0,147, 92,147, 62,
-252, 76,120, 62, 0, 0, 0, 0,150,248,166, 62, 78, 54,174, 62, 0, 0, 0, 0,137, 67,154, 62, 70,150,169, 62, 0, 0, 0, 0,
-194,195,165, 62,181,144,151, 62, 0, 0, 0, 0,194,195,165, 62,181,144,151, 62, 0, 0, 0, 0, 21, 51,179, 62, 98,231,157, 62,
- 0, 0, 0, 0,150,248,166, 62, 78, 54,174, 62, 0, 0, 0, 0, 21, 51,179, 62,165,111,180, 62, 0, 0, 0, 0,150,248,166, 62,
- 78, 54,174, 62, 0, 0, 0, 0, 21, 51,179, 62, 98,231,157, 62, 0, 0, 0, 0, 21, 51,179, 62, 98,231,157, 62, 0, 0, 0, 0,
-194,195,165, 62,181,144,151, 62, 0, 0, 0, 0, 21, 51,179, 62,156, 83,135, 62, 0, 0, 0, 0, 0, 0,128, 62, 89,162,115, 62,
- 0, 0, 0, 0,147, 92,147, 62,252, 76,120, 62, 0, 0, 0, 0,247,168,136, 62, 3,102,144, 62, 0, 0, 0, 0,247,168,136, 62,
- 3,102,144, 62, 0, 0, 0, 0, 18,174,110, 62, 3,102,144, 62, 0, 0, 0, 0, 0, 0,128, 62, 89,162,115, 62, 0, 0, 0, 0,
-217, 70, 89, 62,252, 76,120, 62, 0, 0, 0, 0, 0, 0,128, 62, 89,162,115, 62, 0, 0, 0, 0, 18,174,110, 62, 3,102,144, 62,
- 0, 0, 0, 0, 18,174,110, 62, 3,102,144, 62, 0, 0, 0, 0,247,168,136, 62, 3,102,144, 62, 0, 0, 0, 0, 0, 0,128, 62,
-206,199,165, 62, 0, 0, 0, 0, 0, 0,128, 62, 89,162,115, 62, 0, 0, 0, 0,217, 70, 89, 62,252, 76,120, 62, 0, 0, 0, 0,
- 30,130,104, 62,230,176, 70, 62, 0, 0, 0, 0, 30,130,104, 62,230,176, 70, 62, 0, 0, 0, 0,241,190,139, 62,230,176, 70, 62,
- 0, 0, 0, 0, 0, 0,128, 62, 89,162,115, 62, 0, 0, 0, 0,147, 92,147, 62,252, 76,120, 62, 0, 0, 0, 0, 0, 0,128, 62,
- 89,162,115, 62, 0, 0, 0, 0,241,190,139, 62,230,176, 70, 62, 0, 0, 0, 0,241,190,139, 62,230,176, 70, 62, 0, 0, 0, 0,
- 30,130,104, 62,230,176, 70, 62, 0, 0, 0, 0, 0, 0,128, 62,208, 31, 23, 62, 0, 0, 0, 0, 41,187,155, 62,205,253, 30, 62,
- 0, 0, 0, 0, 21, 51,179, 62,101,111, 52, 62, 0, 0, 0, 0,102, 23,161, 62,115, 97, 83, 62, 0, 0, 0, 0,102, 23,161, 62,
-115, 97, 83, 62, 0, 0, 0, 0,241,190,139, 62,230,176, 70, 62, 0, 0, 0, 0, 41,187,155, 62,205,253, 30, 62, 0, 0, 0, 0,
- 0, 0,128, 62,208, 31, 23, 62, 0, 0, 0, 0, 41,187,155, 62,205,253, 30, 62, 0, 0, 0, 0,241,190,139, 62,230,176, 70, 62,
- 0, 0, 0, 0,241,190,139, 62,230,176, 70, 62, 0, 0, 0, 0,102, 23,161, 62,115, 97, 83, 62, 0, 0, 0, 0,147, 92,147, 62,
-252, 76,120, 62, 0, 0, 0, 0,174,137, 72, 62,205,253, 30, 62, 0, 0, 0, 0, 0, 0,128, 62,208, 31, 23, 62, 0, 0, 0, 0,
- 30,130,104, 62,230,176, 70, 62, 0, 0, 0, 0, 30,130,104, 62,230,176, 70, 62, 0, 0, 0, 0, 51,209, 61, 62,115, 97, 83, 62,
- 0, 0, 0, 0,174,137, 72, 62,205,253, 30, 62, 0, 0, 0, 0,214,153, 25, 62,106,111, 52, 62, 0, 0, 0, 0,174,137, 72, 62,
-205,253, 30, 62, 0, 0, 0, 0, 51,209, 61, 62,115, 97, 83, 62, 0, 0, 0, 0, 51,209, 61, 62,115, 97, 83, 62, 0, 0, 0, 0,
- 30,130,104, 62,230,176, 70, 62, 0, 0, 0, 0,217, 70, 89, 62,252, 76,120, 62, 0, 0, 0, 0,255,255,127, 62,141, 41,147, 61,
- 0, 0, 0, 0,215,153, 25, 62,104,111,180, 61, 0, 0, 0, 0,224,153, 25, 62,225, 64, 52, 61, 0, 0, 0, 0,224,153, 25, 62,
-225, 64, 52, 61, 0, 0, 0, 0, 15, 51,179, 62,225, 64, 52, 61, 0, 0, 0, 0,255,255,127, 62,141, 41,147, 61, 0, 0, 0, 0,
- 20, 51,179, 62,104,111,180, 61, 0, 0, 0, 0,255,255,127, 62,141, 41,147, 61, 0, 0, 0, 0, 15, 51,179, 62,225, 64, 52, 61,
- 0, 0, 0, 0, 15, 51,179, 62,225, 64, 52, 61, 0, 0, 0, 0,224,153, 25, 62,225, 64, 52, 61, 0, 0, 0, 0,144,175,161, 62,
-102, 9,239,178, 0, 0, 0, 0,255,255,127, 62,141, 41,147, 61, 0, 0, 0, 0, 20, 51,179, 62,104,111,180, 61, 0, 0, 0, 0,
- 12, 52,147, 62,109, 46,231, 61, 0, 0, 0, 0, 12, 52,147, 62,109, 46,231, 61, 0, 0, 0, 0,231,151, 89, 62,109, 46,231, 61,
- 0, 0, 0, 0,255,255,127, 62,141, 41,147, 61, 0, 0, 0, 0,215,153, 25, 62,104,111,180, 61, 0, 0, 0, 0,255,255,127, 62,
-141, 41,147, 61, 0, 0, 0, 0,231,151, 89, 62,109, 46,231, 61, 0, 0, 0, 0,231,151, 89, 62,109, 46,231, 61, 0, 0, 0, 0,
- 12, 52,147, 62,109, 46,231, 61, 0, 0, 0, 0, 0, 0,128, 62,208, 31, 23, 62, 0, 0, 0, 0,174,137, 72, 62,205,253, 30, 62,
- 0, 0, 0, 0,214,153, 25, 62,106,111, 52, 62, 0, 0, 0, 0,217,153, 25, 62,204, 70, 7, 62, 0, 0, 0, 0,217,153, 25, 62,
-204, 70, 7, 62, 0, 0, 0, 0,231,151, 89, 62,109, 46,231, 61, 0, 0, 0, 0,174,137, 72, 62,205,253, 30, 62, 0, 0, 0, 0,
- 0, 0,128, 62,208, 31, 23, 62, 0, 0, 0, 0,174,137, 72, 62,205,253, 30, 62, 0, 0, 0, 0,231,151, 89, 62,109, 46,231, 61,
- 0, 0, 0, 0,231,151, 89, 62,109, 46,231, 61, 0, 0, 0, 0,217,153, 25, 62,204, 70, 7, 62, 0, 0, 0, 0,215,153, 25, 62,
-104,111,180, 61, 0, 0, 0, 0, 41,187,155, 62,205,253, 30, 62, 0, 0, 0, 0, 0, 0,128, 62,208, 31, 23, 62, 0, 0, 0, 0,
- 12, 52,147, 62,109, 46,231, 61, 0, 0, 0, 0, 12, 52,147, 62,109, 46,231, 61, 0, 0, 0, 0, 19, 51,179, 62,204, 70, 7, 62,
- 0, 0, 0, 0, 41,187,155, 62,205,253, 30, 62, 0, 0, 0, 0, 21, 51,179, 62,101,111, 52, 62, 0, 0, 0, 0, 41,187,155, 62,
-205,253, 30, 62, 0, 0, 0, 0, 19, 51,179, 62,204, 70, 7, 62, 0, 0, 0, 0, 19, 51,179, 62,204, 70, 7, 62, 0, 0, 0, 0,
- 12, 52,147, 62,109, 46,231, 61, 0, 0, 0, 0, 20, 51,179, 62,104,111,180, 61, 0, 0, 0, 0,192, 95, 56, 62, 79, 45,128, 62,
- 0, 0, 0, 0,214,153, 25, 62,156, 83,135, 62, 0, 0, 0, 0,212,153, 25, 62, 2,152, 97, 62, 0, 0, 0, 0,212,153, 25, 62,
- 2,152, 97, 62, 0, 0, 0, 0, 51,209, 61, 62,115, 97, 83, 62, 0, 0, 0, 0,192, 95, 56, 62, 79, 45,128, 62, 0, 0, 0, 0,
-217, 70, 89, 62,252, 76,120, 62, 0, 0, 0, 0,192, 95, 56, 62, 79, 45,128, 62, 0, 0, 0, 0, 51,209, 61, 62,115, 97, 83, 62,
- 0, 0, 0, 0, 51,209, 61, 62,115, 97, 83, 62, 0, 0, 0, 0,212,153, 25, 62, 2,152, 97, 62, 0, 0, 0, 0,214,153, 25, 62,
-106,111, 52, 62, 0, 0, 0, 0,192, 95, 56, 62, 79, 45,128, 62, 0, 0, 0, 0,217, 70, 89, 62,252, 76,120, 62, 0, 0, 0, 0,
-245,154, 81, 62, 29,201,146, 62, 0, 0, 0, 0,245,154, 81, 62, 29,201,146, 62, 0, 0, 0, 0,125,120, 52, 62,181,144,151, 62,
- 0, 0, 0, 0,192, 95, 56, 62, 79, 45,128, 62, 0, 0, 0, 0,214,153, 25, 62,156, 83,135, 62, 0, 0, 0, 0,192, 95, 56, 62,
- 79, 45,128, 62, 0, 0, 0, 0,125,120, 52, 62,181,144,151, 62, 0, 0, 0, 0,125,120, 52, 62,181,144,151, 62, 0, 0, 0, 0,
-245,154, 81, 62, 29,201,146, 62, 0, 0, 0, 0,239,120, 75, 62, 70,150,169, 62, 0, 0, 0, 0,213, 14, 50, 62, 78, 54,174, 62,
- 0, 0, 0, 0,214,153, 25, 62,165,111,180, 62, 0, 0, 0, 0,213,153, 25, 62,100,231,157, 62, 0, 0, 0, 0,213,153, 25, 62,
-100,231,157, 62, 0, 0, 0, 0,125,120, 52, 62,181,144,151, 62, 0, 0, 0, 0,213, 14, 50, 62, 78, 54,174, 62, 0, 0, 0, 0,
-239,120, 75, 62, 70,150,169, 62, 0, 0, 0, 0,213, 14, 50, 62, 78, 54,174, 62, 0, 0, 0, 0,125,120, 52, 62,181,144,151, 62,
- 0, 0, 0, 0,125,120, 52, 62,181,144,151, 62, 0, 0, 0, 0,213,153, 25, 62,100,231,157, 62, 0, 0, 0, 0,214,153, 25, 62,
-156, 83,135, 62, 0, 0, 0, 0, 91,133,101, 62,112,190,166, 62, 0, 0, 0, 0,239,120, 75, 62, 70,150,169, 62, 0, 0, 0, 0,
-245,154, 81, 62, 29,201,146, 62, 0, 0, 0, 0,245,154, 81, 62, 29,201,146, 62, 0, 0, 0, 0, 18,174,110, 62, 3,102,144, 62,
- 0, 0, 0, 0, 91,133,101, 62,112,190,166, 62, 0, 0, 0, 0, 0, 0,128, 62,206,199,165, 62, 0, 0, 0, 0, 91,133,101, 62,
-112,190,166, 62, 0, 0, 0, 0, 18,174,110, 62, 3,102,144, 62, 0, 0, 0, 0, 18,174,110, 62, 3,102,144, 62, 0, 0, 0, 0,
-245,154, 81, 62, 29,201,146, 62, 0, 0, 0, 0,217, 70, 89, 62,252, 76,120, 62, 0, 0, 0, 0, 64, 27, 5, 63, 66, 45,128, 62,
- 0, 0, 0, 0,232,194,249, 62,216, 76,120, 62, 0, 0, 0, 0,226,190, 3, 63, 90, 97, 83, 62, 0, 0, 0, 0,226,190, 3, 63,
- 90, 97, 83, 62, 0, 0, 0, 0,191,204, 12, 63,248,151, 97, 62, 0, 0, 0, 0, 64, 27, 5, 63, 66, 45,128, 62, 0, 0, 0, 0,
-191,204, 12, 63,149, 83,135, 62, 0, 0, 0, 0, 64, 27, 5, 63, 66, 45,128, 62, 0, 0, 0, 0,191,204, 12, 63,248,151, 97, 62,
- 0, 0, 0, 0,191,204, 12, 63,248,151, 97, 62, 0, 0, 0, 0,226,190, 3, 63, 90, 97, 83, 62, 0, 0, 0, 0,191,204, 12, 63,
- 90,111, 52, 62, 0, 0, 0, 0, 64, 27, 5, 63, 66, 45,128, 62, 0, 0, 0, 0,191,204, 12, 63,149, 83,135, 62, 0, 0, 0, 0,
- 17, 21, 6, 63,169,144,151, 62, 0, 0, 0, 0, 17, 21, 6, 63,169,144,151, 62, 0, 0, 0, 0,222,152,253, 62, 14,201,146, 62,
- 0, 0, 0, 0, 64, 27, 5, 63, 66, 45,128, 62, 0, 0, 0, 0,232,194,249, 62,216, 76,120, 62, 0, 0, 0, 0, 64, 27, 5, 63,
- 66, 45,128, 62, 0, 0, 0, 0,222,152,253, 62, 14,201,146, 62, 0, 0, 0, 0,222,152,253, 62, 14,201,146, 62, 0, 0, 0, 0,
- 17, 21, 6, 63,169,144,151, 62, 0, 0, 0, 0,241, 84, 0, 63, 52,150,169, 62, 0, 0, 0, 0,164,163,243, 62, 89,190,166, 62,
- 0, 0, 0, 0, 72,102,230, 62,183,199,165, 62, 0, 0, 0, 0, 70, 15,239, 62,233,101,144, 62, 0, 0, 0, 0, 70, 15,239, 62,
-233,101,144, 62, 0, 0, 0, 0,222,152,253, 62, 14,201,146, 62, 0, 0, 0, 0,164,163,243, 62, 89,190,166, 62, 0, 0, 0, 0,
-241, 84, 0, 63, 52,150,169, 62, 0, 0, 0, 0,164,163,243, 62, 89,190,166, 62, 0, 0, 0, 0,222,152,253, 62, 14,201,146, 62,
- 0, 0, 0, 0,222,152,253, 62, 14,201,146, 62, 0, 0, 0, 0, 70, 15,239, 62,233,101,144, 62, 0, 0, 0, 0,232,194,249, 62,
-216, 76,120, 62, 0, 0, 0, 0,123,175, 6, 63, 65, 54,174, 62, 0, 0, 0, 0,241, 84, 0, 63, 52,150,169, 62, 0, 0, 0, 0,
- 17, 21, 6, 63,169,144,151, 62, 0, 0, 0, 0, 17, 21, 6, 63,169,144,151, 62, 0, 0, 0, 0,191,204, 12, 63, 90,231,157, 62,
- 0, 0, 0, 0,123,175, 6, 63, 65, 54,174, 62, 0, 0, 0, 0,191,204, 12, 63,160,111,180, 62, 0, 0, 0, 0,123,175, 6, 63,
- 65, 54,174, 62, 0, 0, 0, 0,191,204, 12, 63, 90,231,157, 62, 0, 0, 0, 0,191,204, 12, 63, 90,231,157, 62, 0, 0, 0, 0,
- 17, 21, 6, 63,169,144,151, 62, 0, 0, 0, 0,191,204, 12, 63,149, 83,135, 62, 0, 0, 0, 0, 72,102,230, 62, 53,162,115, 62,
- 0, 0, 0, 0,232,194,249, 62,216, 76,120, 62, 0, 0, 0, 0, 70, 15,239, 62,233,101,144, 62, 0, 0, 0, 0, 70, 15,239, 62,
-233,101,144, 62, 0, 0, 0, 0, 75,189,221, 62,238,101,144, 62, 0, 0, 0, 0, 72,102,230, 62, 53,162,115, 62, 0, 0, 0, 0,
-168, 9,211, 62,222, 76,120, 62, 0, 0, 0, 0, 72,102,230, 62, 53,162,115, 62, 0, 0, 0, 0, 75,189,221, 62,238,101,144, 62,
- 0, 0, 0, 0, 75,189,221, 62,238,101,144, 62, 0, 0, 0, 0, 70, 15,239, 62,233,101,144, 62, 0, 0, 0, 0, 72,102,230, 62,
-183,199,165, 62, 0, 0, 0, 0, 72,102,230, 62, 53,162,115, 62, 0, 0, 0, 0,168, 9,211, 62,222, 76,120, 62, 0, 0, 0, 0,
- 80,167,218, 62,194,176, 70, 62, 0, 0, 0, 0, 80,167,218, 62,194,176, 70, 62, 0, 0, 0, 0, 68, 37,242, 62,194,176, 70, 62,
- 0, 0, 0, 0, 72,102,230, 62, 53,162,115, 62, 0, 0, 0, 0,232,194,249, 62,216, 76,120, 62, 0, 0, 0, 0, 72,102,230, 62,
- 53,162,115, 62, 0, 0, 0, 0, 68, 37,242, 62,194,176, 70, 62, 0, 0, 0, 0, 68, 37,242, 62,194,176, 70, 62, 0, 0, 0, 0,
- 80,167,218, 62,194,176, 70, 62, 0, 0, 0, 0, 72,102,230, 62,168, 31, 23, 62, 0, 0, 0, 0,197, 16, 1, 63,174,253, 30, 62,
- 0, 0, 0, 0,191,204, 12, 63, 90,111, 52, 62, 0, 0, 0, 0,226,190, 3, 63, 90, 97, 83, 62, 0, 0, 0, 0,226,190, 3, 63,
- 90, 97, 83, 62, 0, 0, 0, 0, 68, 37,242, 62,194,176, 70, 62, 0, 0, 0, 0,197, 16, 1, 63,174,253, 30, 62, 0, 0, 0, 0,
- 72,102,230, 62,168, 31, 23, 62, 0, 0, 0, 0,197, 16, 1, 63,174,253, 30, 62, 0, 0, 0, 0, 68, 37,242, 62,194,176, 70, 62,
- 0, 0, 0, 0, 68, 37,242, 62,194,176, 70, 62, 0, 0, 0, 0,226,190, 3, 63, 90, 97, 83, 62, 0, 0, 0, 0,232,194,249, 62,
-216, 76,120, 62, 0, 0, 0, 0, 14,171,202, 62,179,253, 30, 62, 0, 0, 0, 0, 72,102,230, 62,168, 31, 23, 62, 0, 0, 0, 0,
- 80,167,218, 62,194,176, 70, 62, 0, 0, 0, 0, 80,167,218, 62,194,176, 70, 62, 0, 0, 0, 0,205, 78,197, 62, 95, 97, 83, 62,
- 0, 0, 0, 0, 14,171,202, 62,179,253, 30, 62, 0, 0, 0, 0, 21, 51,179, 62,101,111, 52, 62, 0, 0, 0, 0, 14,171,202, 62,
-179,253, 30, 62, 0, 0, 0, 0,205, 78,197, 62, 95, 97, 83, 62, 0, 0, 0, 0,205, 78,197, 62, 95, 97, 83, 62, 0, 0, 0, 0,
- 80,167,218, 62,194,176, 70, 62, 0, 0, 0, 0,168, 9,211, 62,222, 76,120, 62, 0, 0, 0, 0, 63,102,230, 62,101, 41,147, 61,
- 0, 0, 0, 0, 20, 51,179, 62,104,111,180, 61, 0, 0, 0, 0, 15, 51,179, 62,225, 64, 52, 61, 0, 0, 0, 0, 15, 51,179, 62,
-225, 64, 52, 61, 0, 0, 0, 0,189,204, 12, 63,225, 64, 52, 61, 0, 0, 0, 0, 63,102,230, 62,101, 41,147, 61, 0, 0, 0, 0,
-191,204, 12, 63, 83,111,180, 61, 0, 0, 0, 0, 63,102,230, 62,101, 41,147, 61, 0, 0, 0, 0,189,204, 12, 63,225, 64, 52, 61,
- 0, 0, 0, 0,189,204, 12, 63,225, 64, 52, 61, 0, 0, 0, 0, 15, 51,179, 62,225, 64, 52, 61, 0, 0, 0, 0,144,175,161, 62,
-102, 9,239,178, 0, 0, 0, 0, 63,102,230, 62,101, 41,147, 61, 0, 0, 0, 0,191,204, 12, 63, 83,111,180, 61, 0, 0, 0, 0,
-104,154,249, 62, 48, 46,231, 61, 0, 0, 0, 0,104,154,249, 62, 48, 46,231, 61, 0, 0, 0, 0, 42, 50,211, 62, 48, 46,231, 61,
- 0, 0, 0, 0, 63,102,230, 62,101, 41,147, 61, 0, 0, 0, 0, 20, 51,179, 62,104,111,180, 61, 0, 0, 0, 0, 63,102,230, 62,
-101, 41,147, 61, 0, 0, 0, 0, 42, 50,211, 62, 48, 46,231, 61, 0, 0, 0, 0, 42, 50,211, 62, 48, 46,231, 61, 0, 0, 0, 0,
-104,154,249, 62, 48, 46,231, 61, 0, 0, 0, 0, 72,102,230, 62,168, 31, 23, 62, 0, 0, 0, 0, 14,171,202, 62,179,253, 30, 62,
- 0, 0, 0, 0, 21, 51,179, 62,101,111, 52, 62, 0, 0, 0, 0, 19, 51,179, 62,204, 70, 7, 62, 0, 0, 0, 0, 19, 51,179, 62,
-204, 70, 7, 62, 0, 0, 0, 0, 42, 50,211, 62, 48, 46,231, 61, 0, 0, 0, 0, 14,171,202, 62,179,253, 30, 62, 0, 0, 0, 0,
- 72,102,230, 62,168, 31, 23, 62, 0, 0, 0, 0, 14,171,202, 62,179,253, 30, 62, 0, 0, 0, 0, 42, 50,211, 62, 48, 46,231, 61,
- 0, 0, 0, 0, 42, 50,211, 62, 48, 46,231, 61, 0, 0, 0, 0, 19, 51,179, 62,204, 70, 7, 62, 0, 0, 0, 0, 20, 51,179, 62,
-104,111,180, 61, 0, 0, 0, 0,197, 16, 1, 63,174,253, 30, 62, 0, 0, 0, 0, 72,102,230, 62,168, 31, 23, 62, 0, 0, 0, 0,
-104,154,249, 62, 48, 46,231, 61, 0, 0, 0, 0,104,154,249, 62, 48, 46,231, 61, 0, 0, 0, 0,191,204, 12, 63,199, 70, 7, 62,
- 0, 0, 0, 0,197, 16, 1, 63,174,253, 30, 62, 0, 0, 0, 0,191,204, 12, 63, 90,111, 52, 62, 0, 0, 0, 0,197, 16, 1, 63,
-174,253, 30, 62, 0, 0, 0, 0,191,204, 12, 63,199, 70, 7, 62, 0, 0, 0, 0,191,204, 12, 63,199, 70, 7, 62, 0, 0, 0, 0,
-104,154,249, 62, 48, 46,231, 61, 0, 0, 0, 0,191,204, 12, 63, 83,111,180, 61, 0, 0, 0, 0, 19,150,194, 62, 72, 45,128, 62,
- 0, 0, 0, 0, 21, 51,179, 62,156, 83,135, 62, 0, 0, 0, 0, 22, 51,179, 62, 2,152, 97, 62, 0, 0, 0, 0, 22, 51,179, 62,
- 2,152, 97, 62, 0, 0, 0, 0,205, 78,197, 62, 95, 97, 83, 62, 0, 0, 0, 0, 19,150,194, 62, 72, 45,128, 62, 0, 0, 0, 0,
-168, 9,211, 62,222, 76,120, 62, 0, 0, 0, 0, 19,150,194, 62, 72, 45,128, 62, 0, 0, 0, 0,205, 78,197, 62, 95, 97, 83, 62,
- 0, 0, 0, 0,205, 78,197, 62, 95, 97, 83, 62, 0, 0, 0, 0, 22, 51,179, 62, 2,152, 97, 62, 0, 0, 0, 0, 21, 51,179, 62,
-101,111, 52, 62, 0, 0, 0, 0, 19,150,194, 62, 72, 45,128, 62, 0, 0, 0, 0,168, 9,211, 62,222, 76,120, 62, 0, 0, 0, 0,
-179, 51,207, 62, 17,201,146, 62, 0, 0, 0, 0,179, 51,207, 62, 17,201,146, 62, 0, 0, 0, 0,113,162,192, 62,174,144,151, 62,
- 0, 0, 0, 0, 19,150,194, 62, 72, 45,128, 62, 0, 0, 0, 0, 21, 51,179, 62,156, 83,135, 62, 0, 0, 0, 0, 19,150,194, 62,
- 72, 45,128, 62, 0, 0, 0, 0,113,162,192, 62,174,144,151, 62, 0, 0, 0, 0,113,162,192, 62,174,144,151, 62, 0, 0, 0, 0,
-179, 51,207, 62, 17,201,146, 62, 0, 0, 0, 0,175, 34,204, 62, 54,150,169, 62, 0, 0, 0, 0,154,109,191, 62, 68, 54,174, 62,
- 0, 0, 0, 0, 21, 51,179, 62,165,111,180, 62, 0, 0, 0, 0, 21, 51,179, 62, 98,231,157, 62, 0, 0, 0, 0, 21, 51,179, 62,
- 98,231,157, 62, 0, 0, 0, 0,113,162,192, 62,174,144,151, 62, 0, 0, 0, 0,154,109,191, 62, 68, 54,174, 62, 0, 0, 0, 0,
-175, 34,204, 62, 54,150,169, 62, 0, 0, 0, 0,154,109,191, 62, 68, 54,174, 62, 0, 0, 0, 0,113,162,192, 62,174,144,151, 62,
- 0, 0, 0, 0,113,162,192, 62,174,144,151, 62, 0, 0, 0, 0, 21, 51,179, 62, 98,231,157, 62, 0, 0, 0, 0, 21, 51,179, 62,
-156, 83,135, 62, 0, 0, 0, 0,237, 40,217, 62, 91,190,166, 62, 0, 0, 0, 0,175, 34,204, 62, 54,150,169, 62, 0, 0, 0, 0,
-179, 51,207, 62, 17,201,146, 62, 0, 0, 0, 0,179, 51,207, 62, 17,201,146, 62, 0, 0, 0, 0, 75,189,221, 62,238,101,144, 62,
- 0, 0, 0, 0,237, 40,217, 62, 91,190,166, 62, 0, 0, 0, 0, 72,102,230, 62,183,199,165, 62, 0, 0, 0, 0,237, 40,217, 62,
- 91,190,166, 62, 0, 0, 0, 0, 75,189,221, 62,238,101,144, 62, 0, 0, 0, 0, 75,189,221, 62,238,101,144, 62, 0, 0, 0, 0,
-179, 51,207, 62, 17,201,146, 62, 0, 0, 0, 0,168, 9,211, 62,222, 76,120, 62, 0, 0, 0, 0,134, 78, 56, 63,117, 45,128, 62,
- 0, 0, 0, 0,188, 20, 48, 63, 37, 77,120, 62, 0, 0, 0, 0, 42,242, 54, 63,181, 97, 83, 62, 0, 0, 0, 0, 42,242, 54, 63,
-181, 97, 83, 62, 0, 0, 0, 0, 0, 0, 64, 63,115,152, 97, 62, 0, 0, 0, 0,134, 78, 56, 63,117, 45,128, 62, 0, 0, 0, 0,
- 0, 0, 64, 63,218, 83,135, 62, 0, 0, 0, 0,134, 78, 56, 63,117, 45,128, 62, 0, 0, 0, 0, 0, 0, 64, 63,115,152, 97, 62,
- 0, 0, 0, 0, 0, 0, 64, 63,115,152, 97, 62, 0, 0, 0, 0, 42,242, 54, 63,181, 97, 83, 62, 0, 0, 0, 0, 0, 0, 64, 63,
-202,111, 52, 62, 0, 0, 0, 0,134, 78, 56, 63,117, 45,128, 62, 0, 0, 0, 0, 0, 0, 64, 63,218, 83,135, 62, 0, 0, 0, 0,
- 87, 72, 57, 63,219,144,151, 62, 0, 0, 0, 0, 87, 72, 57, 63,219,144,151, 62, 0, 0, 0, 0,184,255, 49, 63, 52,201,146, 62,
- 0, 0, 0, 0,134, 78, 56, 63,117, 45,128, 62, 0, 0, 0, 0,188, 20, 48, 63, 37, 77,120, 62, 0, 0, 0, 0,134, 78, 56, 63,
-117, 45,128, 62, 0, 0, 0, 0,184,255, 49, 63, 52,201,146, 62, 0, 0, 0, 0,184,255, 49, 63, 52,201,146, 62, 0, 0, 0, 0,
- 87, 72, 57, 63,219,144,151, 62, 0, 0, 0, 0, 58,136, 51, 63, 90,150,169, 62, 0, 0, 0, 0, 26, 5, 45, 63,117,190,166, 62,
- 0, 0, 0, 0,107,102, 38, 63,201,199,165, 62, 0, 0, 0, 0,235,186, 42, 63, 5,102,144, 62, 0, 0, 0, 0,235,186, 42, 63,
- 5,102,144, 62, 0, 0, 0, 0,184,255, 49, 63, 52,201,146, 62, 0, 0, 0, 0, 26, 5, 45, 63,117,190,166, 62, 0, 0, 0, 0,
- 58,136, 51, 63, 90,150,169, 62, 0, 0, 0, 0, 26, 5, 45, 63,117,190,166, 62, 0, 0, 0, 0,184,255, 49, 63, 52,201,146, 62,
- 0, 0, 0, 0,184,255, 49, 63, 52,201,146, 62, 0, 0, 0, 0,235,186, 42, 63, 5,102,144, 62, 0, 0, 0, 0,188, 20, 48, 63,
- 37, 77,120, 62, 0, 0, 0, 0,196,226, 57, 63,114, 54,174, 62, 0, 0, 0, 0, 58,136, 51, 63, 90,150,169, 62, 0, 0, 0, 0,
- 87, 72, 57, 63,219,144,151, 62, 0, 0, 0, 0, 87, 72, 57, 63,219,144,151, 62, 0, 0, 0, 0, 0, 0, 64, 63,162,231,157, 62,
- 0, 0, 0, 0,196,226, 57, 63,114, 54,174, 62, 0, 0, 0, 0, 0, 0, 64, 63,211,111,180, 62, 0, 0, 0, 0,196,226, 57, 63,
-114, 54,174, 62, 0, 0, 0, 0, 0, 0, 64, 63,162,231,157, 62, 0, 0, 0, 0, 0, 0, 64, 63,162,231,157, 62, 0, 0, 0, 0,
- 87, 72, 57, 63,219,144,151, 62, 0, 0, 0, 0, 0, 0, 64, 63,218, 83,135, 62, 0, 0, 0, 0,107,102, 38, 63, 79,162,115, 62,
- 0, 0, 0, 0,188, 20, 48, 63, 37, 77,120, 62, 0, 0, 0, 0,235,186, 42, 63, 5,102,144, 62, 0, 0, 0, 0,235,186, 42, 63,
- 5,102,144, 62, 0, 0, 0, 0,234, 17, 34, 63,243,101,144, 62, 0, 0, 0, 0,107,102, 38, 63, 79,162,115, 62, 0, 0, 0, 0,
- 21,184, 28, 63,222, 76,120, 62, 0, 0, 0, 0,107,102, 38, 63, 79,162,115, 62, 0, 0, 0, 0,234, 17, 34, 63,243,101,144, 62,
- 0, 0, 0, 0,234, 17, 34, 63,243,101,144, 62, 0, 0, 0, 0,235,186, 42, 63, 5,102,144, 62, 0, 0, 0, 0,107,102, 38, 63,
-201,199,165, 62, 0, 0, 0, 0,107,102, 38, 63, 79,162,115, 62, 0, 0, 0, 0, 21,184, 28, 63,222, 76,120, 62, 0, 0, 0, 0,
-234,134, 32, 63,204,176, 70, 62, 0, 0, 0, 0,234,134, 32, 63,204,176, 70, 62, 0, 0, 0, 0,233, 69, 44, 63,245,176, 70, 62,
- 0, 0, 0, 0,107,102, 38, 63, 79,162,115, 62, 0, 0, 0, 0,188, 20, 48, 63, 37, 77,120, 62, 0, 0, 0, 0,107,102, 38, 63,
- 79,162,115, 62, 0, 0, 0, 0,233, 69, 44, 63,245,176, 70, 62, 0, 0, 0, 0,233, 69, 44, 63,245,176, 70, 62, 0, 0, 0, 0,
-234,134, 32, 63,204,176, 70, 62, 0, 0, 0, 0,104,102, 38, 63,198, 31, 23, 62, 0, 0, 0, 0, 9, 68, 52, 63,241,253, 30, 62,
- 0, 0, 0, 0, 0, 0, 64, 63,202,111, 52, 62, 0, 0, 0, 0, 42,242, 54, 63,181, 97, 83, 62, 0, 0, 0, 0, 42,242, 54, 63,
-181, 97, 83, 62, 0, 0, 0, 0,233, 69, 44, 63,245,176, 70, 62, 0, 0, 0, 0, 9, 68, 52, 63,241,253, 30, 62, 0, 0, 0, 0,
-104,102, 38, 63,198, 31, 23, 62, 0, 0, 0, 0, 9, 68, 52, 63,241,253, 30, 62, 0, 0, 0, 0,233, 69, 44, 63,245,176, 70, 62,
- 0, 0, 0, 0,233, 69, 44, 63,245,176, 70, 62, 0, 0, 0, 0, 42,242, 54, 63,181, 97, 83, 62, 0, 0, 0, 0,188, 20, 48, 63,
- 37, 77,120, 62, 0, 0, 0, 0,195,136, 24, 63,179,253, 30, 62, 0, 0, 0, 0,104,102, 38, 63,198, 31, 23, 62, 0, 0, 0, 0,
-234,134, 32, 63,204,176, 70, 62, 0, 0, 0, 0,234,134, 32, 63,204,176, 70, 62, 0, 0, 0, 0,162,218, 21, 63, 84, 97, 83, 62,
- 0, 0, 0, 0,195,136, 24, 63,179,253, 30, 62, 0, 0, 0, 0,191,204, 12, 63, 90,111, 52, 62, 0, 0, 0, 0,195,136, 24, 63,
-179,253, 30, 62, 0, 0, 0, 0,162,218, 21, 63, 84, 97, 83, 62, 0, 0, 0, 0,162,218, 21, 63, 84, 97, 83, 62, 0, 0, 0, 0,
-234,134, 32, 63,204,176, 70, 62, 0, 0, 0, 0, 21,184, 28, 63,222, 76,120, 62, 0, 0, 0, 0,104,102, 38, 63,111, 41,147, 61,
- 0, 0, 0, 0,191,204, 12, 63, 83,111,180, 61, 0, 0, 0, 0,189,204, 12, 63,225, 64, 52, 61, 0, 0, 0, 0,189,204, 12, 63,
-225, 64, 52, 61, 0, 0, 0, 0, 0, 0, 64, 63,111, 65, 52, 61, 0, 0, 0, 0,104,102, 38, 63,111, 41,147, 61, 0, 0, 0, 0,
- 0, 0, 64, 63,195,111,180, 61, 0, 0, 0, 0,104,102, 38, 63,111, 41,147, 61, 0, 0, 0, 0, 0, 0, 64, 63,111, 65, 52, 61,
- 0, 0, 0, 0, 0, 0, 64, 63,111, 65, 52, 61, 0, 0, 0, 0,189,204, 12, 63,225, 64, 52, 61, 0, 0, 0, 0,208,222,121, 63,
-102, 9,239,178, 0, 0, 0, 0,104,102, 38, 63,111, 41,147, 61, 0, 0, 0, 0, 0, 0, 64, 63,195,111,180, 61, 0, 0, 0, 0,
-122, 0, 48, 63,120, 46,231, 61, 0, 0, 0, 0,122, 0, 48, 63,120, 46,231, 61, 0, 0, 0, 0, 85,204, 28, 63, 48, 46,231, 61,
- 0, 0, 0, 0,104,102, 38, 63,111, 41,147, 61, 0, 0, 0, 0,191,204, 12, 63, 83,111,180, 61, 0, 0, 0, 0,104,102, 38, 63,
-111, 41,147, 61, 0, 0, 0, 0, 85,204, 28, 63, 48, 46,231, 61, 0, 0, 0, 0, 85,204, 28, 63, 48, 46,231, 61, 0, 0, 0, 0,
-122, 0, 48, 63,120, 46,231, 61, 0, 0, 0, 0,104,102, 38, 63,198, 31, 23, 62, 0, 0, 0, 0,195,136, 24, 63,179,253, 30, 62,
- 0, 0, 0, 0,191,204, 12, 63, 90,111, 52, 62, 0, 0, 0, 0,191,204, 12, 63,199, 70, 7, 62, 0, 0, 0, 0,191,204, 12, 63,
-199, 70, 7, 62, 0, 0, 0, 0, 85,204, 28, 63, 48, 46,231, 61, 0, 0, 0, 0,195,136, 24, 63,179,253, 30, 62, 0, 0, 0, 0,
-104,102, 38, 63,198, 31, 23, 62, 0, 0, 0, 0,195,136, 24, 63,179,253, 30, 62, 0, 0, 0, 0, 85,204, 28, 63, 48, 46,231, 61,
- 0, 0, 0, 0, 85,204, 28, 63, 48, 46,231, 61, 0, 0, 0, 0,191,204, 12, 63,199, 70, 7, 62, 0, 0, 0, 0,191,204, 12, 63,
- 83,111,180, 61, 0, 0, 0, 0, 9, 68, 52, 63,241,253, 30, 62, 0, 0, 0, 0,104,102, 38, 63,198, 31, 23, 62, 0, 0, 0, 0,
-122, 0, 48, 63,120, 46,231, 61, 0, 0, 0, 0,122, 0, 48, 63,120, 46,231, 61, 0, 0, 0, 0, 0, 0, 64, 63, 24, 71, 7, 62,
- 0, 0, 0, 0, 9, 68, 52, 63,241,253, 30, 62, 0, 0, 0, 0, 0, 0, 64, 63,202,111, 52, 62, 0, 0, 0, 0, 9, 68, 52, 63,
-241,253, 30, 62, 0, 0, 0, 0, 0, 0, 64, 63, 24, 71, 7, 62, 0, 0, 0, 0, 0, 0, 64, 63, 24, 71, 7, 62, 0, 0, 0, 0,
-122, 0, 48, 63,120, 46,231, 61, 0, 0, 0, 0, 0, 0, 64, 63,195,111,180, 61, 0, 0, 0, 0, 68,126, 20, 63, 64, 45,128, 62,
- 0, 0, 0, 0,191,204, 12, 63,149, 83,135, 62, 0, 0, 0, 0,191,204, 12, 63,248,151, 97, 62, 0, 0, 0, 0,191,204, 12, 63,
-248,151, 97, 62, 0, 0, 0, 0,162,218, 21, 63, 84, 97, 83, 62, 0, 0, 0, 0, 68,126, 20, 63, 64, 45,128, 62, 0, 0, 0, 0,
- 21,184, 28, 63,222, 76,120, 62, 0, 0, 0, 0, 68,126, 20, 63, 64, 45,128, 62, 0, 0, 0, 0,162,218, 21, 63, 84, 97, 83, 62,
- 0, 0, 0, 0,162,218, 21, 63, 84, 97, 83, 62, 0, 0, 0, 0,191,204, 12, 63,248,151, 97, 62, 0, 0, 0, 0,191,204, 12, 63,
- 90,111, 52, 62, 0, 0, 0, 0, 68,126, 20, 63, 64, 45,128, 62, 0, 0, 0, 0, 21,184, 28, 63,222, 76,120, 62, 0, 0, 0, 0,
- 25,205, 26, 63, 14,201,146, 62, 0, 0, 0, 0, 25,205, 26, 63, 14,201,146, 62, 0, 0, 0, 0,114,132, 19, 63,169,144,151, 62,
- 0, 0, 0, 0, 68,126, 20, 63, 64, 45,128, 62, 0, 0, 0, 0,191,204, 12, 63,149, 83,135, 62, 0, 0, 0, 0, 68,126, 20, 63,
- 64, 45,128, 62, 0, 0, 0, 0,114,132, 19, 63,169,144,151, 62, 0, 0, 0, 0,114,132, 19, 63,169,144,151, 62, 0, 0, 0, 0,
- 25,205, 26, 63, 14,201,146, 62, 0, 0, 0, 0,150, 68, 25, 63, 54,150,169, 62, 0, 0, 0, 0, 7,234, 18, 63, 65, 54,174, 62,
- 0, 0, 0, 0,191,204, 12, 63,160,111,180, 62, 0, 0, 0, 0,191,204, 12, 63, 90,231,157, 62, 0, 0, 0, 0,191,204, 12, 63,
- 90,231,157, 62, 0, 0, 0, 0,114,132, 19, 63,169,144,151, 62, 0, 0, 0, 0, 7,234, 18, 63, 65, 54,174, 62, 0, 0, 0, 0,
-150, 68, 25, 63, 54,150,169, 62, 0, 0, 0, 0, 7,234, 18, 63, 65, 54,174, 62, 0, 0, 0, 0,114,132, 19, 63,169,144,151, 62,
- 0, 0, 0, 0,114,132, 19, 63,169,144,151, 62, 0, 0, 0, 0,191,204, 12, 63, 90,231,157, 62, 0, 0, 0, 0,191,204, 12, 63,
-149, 83,135, 62, 0, 0, 0, 0,185,199, 31, 63, 96,190,166, 62, 0, 0, 0, 0,150, 68, 25, 63, 54,150,169, 62, 0, 0, 0, 0,
- 25,205, 26, 63, 14,201,146, 62, 0, 0, 0, 0, 25,205, 26, 63, 14,201,146, 62, 0, 0, 0, 0,234, 17, 34, 63,243,101,144, 62,
- 0, 0, 0, 0,185,199, 31, 63, 96,190,166, 62, 0, 0, 0, 0,107,102, 38, 63,201,199,165, 62, 0, 0, 0, 0,185,199, 31, 63,
- 96,190,166, 62, 0, 0, 0, 0,234, 17, 34, 63,243,101,144, 62, 0, 0, 0, 0,234, 17, 34, 63,243,101,144, 62, 0, 0, 0, 0,
- 25,205, 26, 63, 14,201,146, 62, 0, 0, 0, 0, 21,184, 28, 63,222, 76,120, 62, 0, 0, 0, 0, 68, 65, 84, 65, 0, 60, 0, 0,
-184,198,195, 4, 0, 0, 0, 0, 62, 0, 0, 0, 0, 15, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 68, 65, 84, 65, 0,120, 0, 0, 40,194,199, 4, 0, 0, 0, 0,
- 59, 0, 0, 0, 0, 15, 0, 0, 27, 1, 0, 0,243, 0, 0, 0,102, 0, 0, 0,225, 1, 0, 0,146, 1, 0, 0,192, 3, 0, 0,
-146, 1, 0, 0,193, 3, 0, 0,171, 0, 0, 0,194, 3, 0, 0, 27, 1, 0, 0,192, 3, 0, 0, 14, 0, 0, 0,242, 0, 0, 0,
- 27, 1, 0, 0,194, 3, 0, 0,171, 0, 0, 0, 18, 0, 0, 0,171, 0, 0, 0,193, 3, 0, 0,146, 1, 0, 0,224, 1, 0, 0,
- 46, 0, 0, 0, 19, 0, 0, 0,147, 1, 0, 0,227, 1, 0, 0, 46, 0, 0, 0,224, 1, 0, 0,146, 1, 0, 0,195, 3, 0, 0,
-146, 1, 0, 0,196, 3, 0, 0,148, 1, 0, 0,197, 3, 0, 0,147, 1, 0, 0,195, 3, 0, 0, 43, 0, 0, 0,226, 1, 0, 0,
-147, 1, 0, 0,197, 3, 0, 0,148, 1, 0, 0,228, 1, 0, 0,148, 1, 0, 0,196, 3, 0, 0,146, 1, 0, 0,225, 1, 0, 0,
-102, 0, 0, 0,229, 1, 0, 0, 26, 1, 0, 0,240, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0,165, 0, 0, 0,198, 3, 0, 0,
-165, 0, 0, 0,199, 3, 0, 0,148, 1, 0, 0,200, 3, 0, 0, 26, 1, 0, 0,198, 3, 0, 0,102, 0, 0, 0,241, 0, 0, 0,
- 26, 1, 0, 0,200, 3, 0, 0,148, 1, 0, 0,229, 1, 0, 0,148, 1, 0, 0,199, 3, 0, 0,165, 0, 0, 0, 7, 0, 0, 0,
- 43, 0, 0, 0,228, 1, 0, 0,147, 1, 0, 0,226, 1, 0, 0, 43, 0, 0, 0, 5, 0, 0, 0,164, 0, 0, 0,201, 3, 0, 0,
-164, 0, 0, 0,202, 3, 0, 0,170, 0, 0, 0,203, 3, 0, 0,147, 1, 0, 0,201, 3, 0, 0, 46, 0, 0, 0,227, 1, 0, 0,
-147, 1, 0, 0,203, 3, 0, 0,170, 0, 0, 0, 17, 0, 0, 0,170, 0, 0, 0,202, 3, 0, 0,164, 0, 0, 0, 4, 0, 0, 0,
- 1, 0, 0, 0, 16, 0, 0, 0, 26, 1, 0, 0,241, 0, 0, 0,102, 0, 0, 0,230, 1, 0, 0,149, 1, 0, 0,204, 3, 0, 0,
-149, 1, 0, 0,205, 3, 0, 0, 28, 1, 0, 0,206, 3, 0, 0, 26, 1, 0, 0,204, 3, 0, 0, 12, 0, 0, 0,240, 0, 0, 0,
- 26, 1, 0, 0,206, 3, 0, 0, 28, 1, 0, 0,244, 0, 0, 0, 28, 1, 0, 0,205, 3, 0, 0,149, 1, 0, 0,231, 1, 0, 0,
-103, 0, 0, 0,245, 0, 0, 0,150, 1, 0, 0,232, 1, 0, 0,103, 0, 0, 0,231, 1, 0, 0,149, 1, 0, 0,207, 3, 0, 0,
-149, 1, 0, 0,208, 3, 0, 0,151, 1, 0, 0,209, 3, 0, 0,150, 1, 0, 0,207, 3, 0, 0,104, 0, 0, 0,233, 1, 0, 0,
-150, 1, 0, 0,209, 3, 0, 0,151, 1, 0, 0,235, 1, 0, 0,151, 1, 0, 0,208, 3, 0, 0,149, 1, 0, 0,230, 1, 0, 0,
-102, 0, 0, 0,234, 1, 0, 0, 27, 1, 0, 0,242, 0, 0, 0, 14, 0, 0, 0,250, 0, 0, 0, 31, 1, 0, 0,210, 3, 0, 0,
- 31, 1, 0, 0,211, 3, 0, 0,151, 1, 0, 0,212, 3, 0, 0, 27, 1, 0, 0,210, 3, 0, 0,102, 0, 0, 0,243, 0, 0, 0,
- 27, 1, 0, 0,212, 3, 0, 0,151, 1, 0, 0,234, 1, 0, 0,151, 1, 0, 0,211, 3, 0, 0, 31, 1, 0, 0,251, 0, 0, 0,
-104, 0, 0, 0,235, 1, 0, 0,150, 1, 0, 0,233, 1, 0, 0,104, 0, 0, 0,249, 0, 0, 0, 30, 1, 0, 0,213, 3, 0, 0,
- 30, 1, 0, 0,214, 3, 0, 0, 29, 1, 0, 0,215, 3, 0, 0,150, 1, 0, 0,213, 3, 0, 0,103, 0, 0, 0,232, 1, 0, 0,
-150, 1, 0, 0,215, 3, 0, 0, 29, 1, 0, 0,247, 0, 0, 0, 29, 1, 0, 0,214, 3, 0, 0, 30, 1, 0, 0,248, 0, 0, 0,
- 13, 0, 0, 0,246, 0, 0, 0,168, 0, 0, 0, 13, 0, 0, 0, 45, 0, 0, 0,236, 1, 0, 0,152, 1, 0, 0,216, 3, 0, 0,
-152, 1, 0, 0,217, 3, 0, 0,172, 0, 0, 0,218, 3, 0, 0,168, 0, 0, 0,216, 3, 0, 0, 2, 0, 0, 0, 12, 0, 0, 0,
-168, 0, 0, 0,218, 3, 0, 0,172, 0, 0, 0, 20, 0, 0, 0,172, 0, 0, 0,217, 3, 0, 0,152, 1, 0, 0,237, 1, 0, 0,
- 47, 0, 0, 0, 21, 0, 0, 0,153, 1, 0, 0,238, 1, 0, 0, 47, 0, 0, 0,237, 1, 0, 0,152, 1, 0, 0,219, 3, 0, 0,
-152, 1, 0, 0,220, 3, 0, 0,154, 1, 0, 0,221, 3, 0, 0,153, 1, 0, 0,219, 3, 0, 0,104, 0, 0, 0,239, 1, 0, 0,
-153, 1, 0, 0,221, 3, 0, 0,154, 1, 0, 0,241, 1, 0, 0,154, 1, 0, 0,220, 3, 0, 0,152, 1, 0, 0,236, 1, 0, 0,
- 45, 0, 0, 0,240, 1, 0, 0,169, 0, 0, 0, 14, 0, 0, 0, 13, 0, 0, 0,248, 0, 0, 0, 30, 1, 0, 0,222, 3, 0, 0,
- 30, 1, 0, 0,223, 3, 0, 0,154, 1, 0, 0,224, 3, 0, 0,169, 0, 0, 0,222, 3, 0, 0, 45, 0, 0, 0, 15, 0, 0, 0,
-169, 0, 0, 0,224, 3, 0, 0,154, 1, 0, 0,240, 1, 0, 0,154, 1, 0, 0,223, 3, 0, 0, 30, 1, 0, 0,249, 0, 0, 0,
-104, 0, 0, 0,241, 1, 0, 0,153, 1, 0, 0,239, 1, 0, 0,104, 0, 0, 0,251, 0, 0, 0, 31, 1, 0, 0,225, 3, 0, 0,
- 31, 1, 0, 0,226, 3, 0, 0,173, 0, 0, 0,227, 3, 0, 0,153, 1, 0, 0,225, 3, 0, 0, 47, 0, 0, 0,238, 1, 0, 0,
-153, 1, 0, 0,227, 3, 0, 0,173, 0, 0, 0, 23, 0, 0, 0,173, 0, 0, 0,226, 3, 0, 0, 31, 1, 0, 0,250, 0, 0, 0,
- 14, 0, 0, 0, 22, 0, 0, 0,167, 0, 0, 0, 11, 0, 0, 0, 44, 0, 0, 0,242, 1, 0, 0,155, 1, 0, 0,228, 3, 0, 0,
-155, 1, 0, 0,229, 3, 0, 0, 29, 1, 0, 0,230, 3, 0, 0,167, 0, 0, 0,228, 3, 0, 0, 13, 0, 0, 0, 10, 0, 0, 0,
-167, 0, 0, 0,230, 3, 0, 0, 29, 1, 0, 0,246, 0, 0, 0, 29, 1, 0, 0,229, 3, 0, 0,155, 1, 0, 0,243, 1, 0, 0,
-103, 0, 0, 0,247, 0, 0, 0,156, 1, 0, 0,245, 1, 0, 0,103, 0, 0, 0,243, 1, 0, 0,155, 1, 0, 0,231, 3, 0, 0,
-155, 1, 0, 0,232, 3, 0, 0,157, 1, 0, 0,233, 3, 0, 0,156, 1, 0, 0,231, 3, 0, 0, 42, 0, 0, 0,244, 1, 0, 0,
-156, 1, 0, 0,233, 3, 0, 0,157, 1, 0, 0,246, 1, 0, 0,157, 1, 0, 0,232, 3, 0, 0,155, 1, 0, 0,242, 1, 0, 0,
- 44, 0, 0, 0,247, 1, 0, 0,166, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0,234, 3, 0, 0,
-162, 0, 0, 0,235, 3, 0, 0,157, 1, 0, 0,236, 3, 0, 0,166, 0, 0, 0,234, 3, 0, 0, 44, 0, 0, 0, 9, 0, 0, 0,
-166, 0, 0, 0,236, 3, 0, 0,157, 1, 0, 0,247, 1, 0, 0,157, 1, 0, 0,235, 3, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,
- 42, 0, 0, 0,246, 1, 0, 0,156, 1, 0, 0,244, 1, 0, 0, 42, 0, 0, 0, 3, 0, 0, 0,163, 0, 0, 0,237, 3, 0, 0,
-163, 0, 0, 0,238, 3, 0, 0, 28, 1, 0, 0,239, 3, 0, 0,156, 1, 0, 0,237, 3, 0, 0,103, 0, 0, 0,245, 1, 0, 0,
-156, 1, 0, 0,239, 3, 0, 0, 28, 1, 0, 0,245, 0, 0, 0, 28, 1, 0, 0,238, 3, 0, 0,163, 0, 0, 0, 2, 0, 0, 0,
- 12, 0, 0, 0,244, 0, 0, 0,158, 1, 0, 0,249, 1, 0, 0,105, 0, 0, 0,255, 0, 0, 0, 33, 1, 0, 0,240, 3, 0, 0,
- 33, 1, 0, 0,241, 3, 0, 0,179, 0, 0, 0,242, 3, 0, 0,158, 1, 0, 0,240, 3, 0, 0, 50, 0, 0, 0,248, 1, 0, 0,
-158, 1, 0, 0,242, 3, 0, 0,179, 0, 0, 0, 35, 0, 0, 0,179, 0, 0, 0,241, 3, 0, 0, 33, 1, 0, 0,254, 0, 0, 0,
- 16, 0, 0, 0, 34, 0, 0, 0,158, 1, 0, 0,248, 1, 0, 0, 50, 0, 0, 0,251, 1, 0, 0,159, 1, 0, 0,243, 3, 0, 0,
-159, 1, 0, 0,244, 3, 0, 0,160, 1, 0, 0,245, 3, 0, 0,158, 1, 0, 0,243, 3, 0, 0,105, 0, 0, 0,249, 1, 0, 0,
-158, 1, 0, 0,245, 3, 0, 0,160, 1, 0, 0,253, 1, 0, 0,160, 1, 0, 0,244, 3, 0, 0,159, 1, 0, 0,250, 1, 0, 0,
- 43, 0, 0, 0,252, 1, 0, 0,165, 0, 0, 0, 6, 0, 0, 0, 12, 0, 0, 0,252, 0, 0, 0, 32, 1, 0, 0,246, 3, 0, 0,
- 32, 1, 0, 0,247, 3, 0, 0,160, 1, 0, 0,248, 3, 0, 0,165, 0, 0, 0,246, 3, 0, 0, 43, 0, 0, 0, 7, 0, 0, 0,
-165, 0, 0, 0,248, 3, 0, 0,160, 1, 0, 0,252, 1, 0, 0,160, 1, 0, 0,247, 3, 0, 0, 32, 1, 0, 0,253, 0, 0, 0,
-105, 0, 0, 0,253, 1, 0, 0,164, 0, 0, 0, 5, 0, 0, 0, 43, 0, 0, 0,250, 1, 0, 0,159, 1, 0, 0,249, 3, 0, 0,
-159, 1, 0, 0,250, 3, 0, 0,178, 0, 0, 0,251, 3, 0, 0,164, 0, 0, 0,249, 3, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
-164, 0, 0, 0,251, 3, 0, 0,178, 0, 0, 0, 32, 0, 0, 0,178, 0, 0, 0,250, 3, 0, 0,159, 1, 0, 0,251, 1, 0, 0,
- 50, 0, 0, 0, 33, 0, 0, 0,161, 1, 0, 0,254, 1, 0, 0,105, 0, 0, 0,253, 0, 0, 0, 32, 1, 0, 0,252, 3, 0, 0,
- 32, 1, 0, 0,253, 3, 0, 0, 34, 1, 0, 0,254, 3, 0, 0,161, 1, 0, 0,252, 3, 0, 0,106, 0, 0, 0,255, 1, 0, 0,
-161, 1, 0, 0,254, 3, 0, 0, 34, 1, 0, 0, 1, 1, 0, 0, 34, 1, 0, 0,253, 3, 0, 0, 32, 1, 0, 0,252, 0, 0, 0,
- 12, 0, 0, 0, 0, 1, 0, 0,161, 1, 0, 0,255, 1, 0, 0,106, 0, 0, 0, 0, 2, 0, 0,162, 1, 0, 0,255, 3, 0, 0,
-162, 1, 0, 0, 0, 4, 0, 0,163, 1, 0, 0, 1, 4, 0, 0,161, 1, 0, 0,255, 3, 0, 0,105, 0, 0, 0,254, 1, 0, 0,
-161, 1, 0, 0, 1, 4, 0, 0,163, 1, 0, 0, 2, 2, 0, 0,163, 1, 0, 0, 0, 4, 0, 0,162, 1, 0, 0, 1, 2, 0, 0,
-107, 0, 0, 0, 3, 2, 0, 0, 37, 1, 0, 0, 6, 1, 0, 0, 16, 0, 0, 0,254, 0, 0, 0, 33, 1, 0, 0, 2, 4, 0, 0,
- 33, 1, 0, 0, 3, 4, 0, 0,163, 1, 0, 0, 4, 4, 0, 0, 37, 1, 0, 0, 2, 4, 0, 0,107, 0, 0, 0, 7, 1, 0, 0,
- 37, 1, 0, 0, 4, 4, 0, 0,163, 1, 0, 0, 3, 2, 0, 0,163, 1, 0, 0, 3, 4, 0, 0, 33, 1, 0, 0,255, 0, 0, 0,
-105, 0, 0, 0, 2, 2, 0, 0, 36, 1, 0, 0, 5, 1, 0, 0,107, 0, 0, 0, 1, 2, 0, 0,162, 1, 0, 0, 5, 4, 0, 0,
-162, 1, 0, 0, 6, 4, 0, 0, 35, 1, 0, 0, 7, 4, 0, 0, 36, 1, 0, 0, 5, 4, 0, 0, 15, 0, 0, 0, 4, 1, 0, 0,
- 36, 1, 0, 0, 7, 4, 0, 0, 35, 1, 0, 0, 2, 1, 0, 0, 35, 1, 0, 0, 6, 4, 0, 0,162, 1, 0, 0, 0, 2, 0, 0,
-106, 0, 0, 0, 3, 1, 0, 0,164, 1, 0, 0, 4, 2, 0, 0, 49, 0, 0, 0, 29, 0, 0, 0,176, 0, 0, 0, 8, 4, 0, 0,
-176, 0, 0, 0, 9, 4, 0, 0,180, 0, 0, 0, 10, 4, 0, 0,164, 1, 0, 0, 8, 4, 0, 0, 51, 0, 0, 0, 5, 2, 0, 0,
-164, 1, 0, 0, 10, 4, 0, 0,180, 0, 0, 0, 37, 0, 0, 0,180, 0, 0, 0, 9, 4, 0, 0,176, 0, 0, 0, 28, 0, 0, 0,
- 5, 0, 0, 0, 36, 0, 0, 0,164, 1, 0, 0, 5, 2, 0, 0, 51, 0, 0, 0, 6, 2, 0, 0,165, 1, 0, 0, 11, 4, 0, 0,
-165, 1, 0, 0, 12, 4, 0, 0,166, 1, 0, 0, 13, 4, 0, 0,164, 1, 0, 0, 11, 4, 0, 0, 49, 0, 0, 0, 4, 2, 0, 0,
-164, 1, 0, 0, 13, 4, 0, 0,166, 1, 0, 0, 8, 2, 0, 0,166, 1, 0, 0, 12, 4, 0, 0,165, 1, 0, 0, 7, 2, 0, 0,
-107, 0, 0, 0, 9, 2, 0, 0, 36, 1, 0, 0, 4, 1, 0, 0, 15, 0, 0, 0, 30, 0, 0, 0,177, 0, 0, 0, 14, 4, 0, 0,
-177, 0, 0, 0, 15, 4, 0, 0,166, 1, 0, 0, 16, 4, 0, 0, 36, 1, 0, 0, 14, 4, 0, 0,107, 0, 0, 0, 5, 1, 0, 0,
- 36, 1, 0, 0, 16, 4, 0, 0,166, 1, 0, 0, 9, 2, 0, 0,166, 1, 0, 0, 15, 4, 0, 0,177, 0, 0, 0, 31, 0, 0, 0,
- 49, 0, 0, 0, 8, 2, 0, 0, 37, 1, 0, 0, 7, 1, 0, 0,107, 0, 0, 0, 7, 2, 0, 0,165, 1, 0, 0, 17, 4, 0, 0,
-165, 1, 0, 0, 18, 4, 0, 0,181, 0, 0, 0, 19, 4, 0, 0, 37, 1, 0, 0, 17, 4, 0, 0, 16, 0, 0, 0, 6, 1, 0, 0,
- 37, 1, 0, 0, 19, 4, 0, 0,181, 0, 0, 0, 38, 0, 0, 0,181, 0, 0, 0, 18, 4, 0, 0,165, 1, 0, 0, 6, 2, 0, 0,
- 51, 0, 0, 0, 39, 0, 0, 0,167, 1, 0, 0, 10, 2, 0, 0, 48, 0, 0, 0, 27, 0, 0, 0,175, 0, 0, 0, 20, 4, 0, 0,
-175, 0, 0, 0, 21, 4, 0, 0, 35, 1, 0, 0, 22, 4, 0, 0,167, 1, 0, 0, 20, 4, 0, 0,106, 0, 0, 0, 11, 2, 0, 0,
-167, 1, 0, 0, 22, 4, 0, 0, 35, 1, 0, 0, 3, 1, 0, 0, 35, 1, 0, 0, 21, 4, 0, 0,175, 0, 0, 0, 26, 0, 0, 0,
- 15, 0, 0, 0, 2, 1, 0, 0,167, 1, 0, 0, 11, 2, 0, 0,106, 0, 0, 0, 13, 2, 0, 0,168, 1, 0, 0, 23, 4, 0, 0,
-168, 1, 0, 0, 24, 4, 0, 0,169, 1, 0, 0, 25, 4, 0, 0,167, 1, 0, 0, 23, 4, 0, 0, 48, 0, 0, 0, 10, 2, 0, 0,
-167, 1, 0, 0, 25, 4, 0, 0,169, 1, 0, 0, 15, 2, 0, 0,169, 1, 0, 0, 24, 4, 0, 0,168, 1, 0, 0, 12, 2, 0, 0,
- 42, 0, 0, 0, 14, 2, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,174, 0, 0, 0, 26, 4, 0, 0,
-174, 0, 0, 0, 27, 4, 0, 0,169, 1, 0, 0, 28, 4, 0, 0,162, 0, 0, 0, 26, 4, 0, 0, 42, 0, 0, 0, 1, 0, 0, 0,
-162, 0, 0, 0, 28, 4, 0, 0,169, 1, 0, 0, 14, 2, 0, 0,169, 1, 0, 0, 27, 4, 0, 0,174, 0, 0, 0, 25, 0, 0, 0,
- 48, 0, 0, 0, 15, 2, 0, 0,163, 0, 0, 0, 3, 0, 0, 0, 42, 0, 0, 0, 12, 2, 0, 0,168, 1, 0, 0, 29, 4, 0, 0,
-168, 1, 0, 0, 30, 4, 0, 0, 34, 1, 0, 0, 31, 4, 0, 0,163, 0, 0, 0, 29, 4, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0,
-163, 0, 0, 0, 31, 4, 0, 0, 34, 1, 0, 0, 0, 1, 0, 0, 34, 1, 0, 0, 30, 4, 0, 0,168, 1, 0, 0, 13, 2, 0, 0,
-106, 0, 0, 0, 1, 1, 0, 0, 39, 1, 0, 0, 11, 1, 0, 0,108, 0, 0, 0, 17, 2, 0, 0,170, 1, 0, 0, 32, 4, 0, 0,
-170, 1, 0, 0, 33, 4, 0, 0,187, 0, 0, 0, 34, 4, 0, 0, 39, 1, 0, 0, 32, 4, 0, 0, 18, 0, 0, 0, 10, 1, 0, 0,
- 39, 1, 0, 0, 34, 4, 0, 0,187, 0, 0, 0, 50, 0, 0, 0,187, 0, 0, 0, 33, 4, 0, 0,170, 1, 0, 0, 16, 2, 0, 0,
- 54, 0, 0, 0, 51, 0, 0, 0,171, 1, 0, 0, 19, 2, 0, 0, 54, 0, 0, 0, 16, 2, 0, 0,170, 1, 0, 0, 35, 4, 0, 0,
-170, 1, 0, 0, 36, 4, 0, 0,172, 1, 0, 0, 37, 4, 0, 0,171, 1, 0, 0, 35, 4, 0, 0, 45, 0, 0, 0, 18, 2, 0, 0,
-171, 1, 0, 0, 37, 4, 0, 0,172, 1, 0, 0, 20, 2, 0, 0,172, 1, 0, 0, 36, 4, 0, 0,170, 1, 0, 0, 17, 2, 0, 0,
-108, 0, 0, 0, 21, 2, 0, 0, 38, 1, 0, 0, 8, 1, 0, 0, 13, 0, 0, 0, 14, 0, 0, 0,169, 0, 0, 0, 38, 4, 0, 0,
-169, 0, 0, 0, 39, 4, 0, 0,172, 1, 0, 0, 40, 4, 0, 0, 38, 1, 0, 0, 38, 4, 0, 0,108, 0, 0, 0, 9, 1, 0, 0,
- 38, 1, 0, 0, 40, 4, 0, 0,172, 1, 0, 0, 21, 2, 0, 0,172, 1, 0, 0, 39, 4, 0, 0,169, 0, 0, 0, 15, 0, 0, 0,
- 45, 0, 0, 0, 20, 2, 0, 0,171, 1, 0, 0, 18, 2, 0, 0, 45, 0, 0, 0, 13, 0, 0, 0,168, 0, 0, 0, 41, 4, 0, 0,
-168, 0, 0, 0, 42, 4, 0, 0,186, 0, 0, 0, 43, 4, 0, 0,171, 1, 0, 0, 41, 4, 0, 0, 54, 0, 0, 0, 19, 2, 0, 0,
-171, 1, 0, 0, 43, 4, 0, 0,186, 0, 0, 0, 49, 0, 0, 0,186, 0, 0, 0, 42, 4, 0, 0,168, 0, 0, 0, 12, 0, 0, 0,
- 2, 0, 0, 0, 48, 0, 0, 0, 38, 1, 0, 0, 9, 1, 0, 0,108, 0, 0, 0, 22, 2, 0, 0,173, 1, 0, 0, 44, 4, 0, 0,
-173, 1, 0, 0, 45, 4, 0, 0, 40, 1, 0, 0, 46, 4, 0, 0, 38, 1, 0, 0, 44, 4, 0, 0, 13, 0, 0, 0, 8, 1, 0, 0,
- 38, 1, 0, 0, 46, 4, 0, 0, 40, 1, 0, 0, 12, 1, 0, 0, 40, 1, 0, 0, 45, 4, 0, 0,173, 1, 0, 0, 23, 2, 0, 0,
-109, 0, 0, 0, 13, 1, 0, 0,174, 1, 0, 0, 24, 2, 0, 0,109, 0, 0, 0, 23, 2, 0, 0,173, 1, 0, 0, 47, 4, 0, 0,
-173, 1, 0, 0, 48, 4, 0, 0,175, 1, 0, 0, 49, 4, 0, 0,174, 1, 0, 0, 47, 4, 0, 0,110, 0, 0, 0, 25, 2, 0, 0,
-174, 1, 0, 0, 49, 4, 0, 0,175, 1, 0, 0, 27, 2, 0, 0,175, 1, 0, 0, 48, 4, 0, 0,173, 1, 0, 0, 22, 2, 0, 0,
-108, 0, 0, 0, 26, 2, 0, 0, 39, 1, 0, 0, 10, 1, 0, 0, 18, 0, 0, 0, 18, 1, 0, 0, 43, 1, 0, 0, 50, 4, 0, 0,
- 43, 1, 0, 0, 51, 4, 0, 0,175, 1, 0, 0, 52, 4, 0, 0, 39, 1, 0, 0, 50, 4, 0, 0,108, 0, 0, 0, 11, 1, 0, 0,
- 39, 1, 0, 0, 52, 4, 0, 0,175, 1, 0, 0, 26, 2, 0, 0,175, 1, 0, 0, 51, 4, 0, 0, 43, 1, 0, 0, 19, 1, 0, 0,
-110, 0, 0, 0, 27, 2, 0, 0,174, 1, 0, 0, 25, 2, 0, 0,110, 0, 0, 0, 17, 1, 0, 0, 42, 1, 0, 0, 53, 4, 0, 0,
- 42, 1, 0, 0, 54, 4, 0, 0, 41, 1, 0, 0, 55, 4, 0, 0,174, 1, 0, 0, 53, 4, 0, 0,109, 0, 0, 0, 24, 2, 0, 0,
-174, 1, 0, 0, 55, 4, 0, 0, 41, 1, 0, 0, 15, 1, 0, 0, 41, 1, 0, 0, 54, 4, 0, 0, 42, 1, 0, 0, 16, 1, 0, 0,
- 17, 0, 0, 0, 14, 1, 0, 0,184, 0, 0, 0, 45, 0, 0, 0, 53, 0, 0, 0, 28, 2, 0, 0,176, 1, 0, 0, 56, 4, 0, 0,
-176, 1, 0, 0, 57, 4, 0, 0,188, 0, 0, 0, 58, 4, 0, 0,184, 0, 0, 0, 56, 4, 0, 0, 3, 0, 0, 0, 44, 0, 0, 0,
-184, 0, 0, 0, 58, 4, 0, 0,188, 0, 0, 0, 52, 0, 0, 0,188, 0, 0, 0, 57, 4, 0, 0,176, 1, 0, 0, 29, 2, 0, 0,
- 55, 0, 0, 0, 53, 0, 0, 0,177, 1, 0, 0, 30, 2, 0, 0, 55, 0, 0, 0, 29, 2, 0, 0,176, 1, 0, 0, 59, 4, 0, 0,
-176, 1, 0, 0, 60, 4, 0, 0,178, 1, 0, 0, 61, 4, 0, 0,177, 1, 0, 0, 59, 4, 0, 0,110, 0, 0, 0, 31, 2, 0, 0,
-177, 1, 0, 0, 61, 4, 0, 0,178, 1, 0, 0, 33, 2, 0, 0,178, 1, 0, 0, 60, 4, 0, 0,176, 1, 0, 0, 28, 2, 0, 0,
- 53, 0, 0, 0, 32, 2, 0, 0,185, 0, 0, 0, 46, 0, 0, 0, 17, 0, 0, 0, 16, 1, 0, 0, 42, 1, 0, 0, 62, 4, 0, 0,
- 42, 1, 0, 0, 63, 4, 0, 0,178, 1, 0, 0, 64, 4, 0, 0,185, 0, 0, 0, 62, 4, 0, 0, 53, 0, 0, 0, 47, 0, 0, 0,
-185, 0, 0, 0, 64, 4, 0, 0,178, 1, 0, 0, 32, 2, 0, 0,178, 1, 0, 0, 63, 4, 0, 0, 42, 1, 0, 0, 17, 1, 0, 0,
-110, 0, 0, 0, 33, 2, 0, 0,177, 1, 0, 0, 31, 2, 0, 0,110, 0, 0, 0, 19, 1, 0, 0, 43, 1, 0, 0, 65, 4, 0, 0,
- 43, 1, 0, 0, 66, 4, 0, 0,189, 0, 0, 0, 67, 4, 0, 0,177, 1, 0, 0, 65, 4, 0, 0, 55, 0, 0, 0, 30, 2, 0, 0,
-177, 1, 0, 0, 67, 4, 0, 0,189, 0, 0, 0, 55, 0, 0, 0,189, 0, 0, 0, 66, 4, 0, 0, 43, 1, 0, 0, 18, 1, 0, 0,
- 18, 0, 0, 0, 54, 0, 0, 0,183, 0, 0, 0, 43, 0, 0, 0, 52, 0, 0, 0, 34, 2, 0, 0,179, 1, 0, 0, 68, 4, 0, 0,
-179, 1, 0, 0, 69, 4, 0, 0, 41, 1, 0, 0, 70, 4, 0, 0,183, 0, 0, 0, 68, 4, 0, 0, 17, 0, 0, 0, 42, 0, 0, 0,
-183, 0, 0, 0, 70, 4, 0, 0, 41, 1, 0, 0, 14, 1, 0, 0, 41, 1, 0, 0, 69, 4, 0, 0,179, 1, 0, 0, 35, 2, 0, 0,
-109, 0, 0, 0, 15, 1, 0, 0,180, 1, 0, 0, 37, 2, 0, 0,109, 0, 0, 0, 35, 2, 0, 0,179, 1, 0, 0, 71, 4, 0, 0,
-179, 1, 0, 0, 72, 4, 0, 0,181, 1, 0, 0, 73, 4, 0, 0,180, 1, 0, 0, 71, 4, 0, 0, 44, 0, 0, 0, 36, 2, 0, 0,
-180, 1, 0, 0, 73, 4, 0, 0,181, 1, 0, 0, 38, 2, 0, 0,181, 1, 0, 0, 72, 4, 0, 0,179, 1, 0, 0, 34, 2, 0, 0,
- 52, 0, 0, 0, 39, 2, 0, 0,182, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0,166, 0, 0, 0, 74, 4, 0, 0,
-166, 0, 0, 0, 75, 4, 0, 0,181, 1, 0, 0, 76, 4, 0, 0,182, 0, 0, 0, 74, 4, 0, 0, 52, 0, 0, 0, 41, 0, 0, 0,
-182, 0, 0, 0, 76, 4, 0, 0,181, 1, 0, 0, 39, 2, 0, 0,181, 1, 0, 0, 75, 4, 0, 0,166, 0, 0, 0, 9, 0, 0, 0,
- 44, 0, 0, 0, 38, 2, 0, 0,180, 1, 0, 0, 36, 2, 0, 0, 44, 0, 0, 0, 11, 0, 0, 0,167, 0, 0, 0, 77, 4, 0, 0,
-167, 0, 0, 0, 78, 4, 0, 0, 40, 1, 0, 0, 79, 4, 0, 0,180, 1, 0, 0, 77, 4, 0, 0,109, 0, 0, 0, 37, 2, 0, 0,
-180, 1, 0, 0, 79, 4, 0, 0, 40, 1, 0, 0, 13, 1, 0, 0, 40, 1, 0, 0, 78, 4, 0, 0,167, 0, 0, 0, 10, 0, 0, 0,
- 13, 0, 0, 0, 12, 1, 0, 0, 45, 1, 0, 0, 23, 1, 0, 0,111, 0, 0, 0, 41, 2, 0, 0,182, 1, 0, 0, 80, 4, 0, 0,
-182, 1, 0, 0, 81, 4, 0, 0,195, 0, 0, 0, 82, 4, 0, 0, 45, 1, 0, 0, 80, 4, 0, 0, 20, 0, 0, 0, 22, 1, 0, 0,
- 45, 1, 0, 0, 82, 4, 0, 0,195, 0, 0, 0, 66, 0, 0, 0,195, 0, 0, 0, 81, 4, 0, 0,182, 1, 0, 0, 40, 2, 0, 0,
- 58, 0, 0, 0, 67, 0, 0, 0,183, 1, 0, 0, 43, 2, 0, 0, 58, 0, 0, 0, 40, 2, 0, 0,182, 1, 0, 0, 83, 4, 0, 0,
-182, 1, 0, 0, 84, 4, 0, 0,184, 1, 0, 0, 85, 4, 0, 0,183, 1, 0, 0, 83, 4, 0, 0, 53, 0, 0, 0, 42, 2, 0, 0,
-183, 1, 0, 0, 85, 4, 0, 0,184, 1, 0, 0, 44, 2, 0, 0,184, 1, 0, 0, 84, 4, 0, 0,182, 1, 0, 0, 41, 2, 0, 0,
-111, 0, 0, 0, 45, 2, 0, 0, 44, 1, 0, 0, 20, 1, 0, 0, 17, 0, 0, 0, 46, 0, 0, 0,185, 0, 0, 0, 86, 4, 0, 0,
-185, 0, 0, 0, 87, 4, 0, 0,184, 1, 0, 0, 88, 4, 0, 0, 44, 1, 0, 0, 86, 4, 0, 0,111, 0, 0, 0, 21, 1, 0, 0,
- 44, 1, 0, 0, 88, 4, 0, 0,184, 1, 0, 0, 45, 2, 0, 0,184, 1, 0, 0, 87, 4, 0, 0,185, 0, 0, 0, 47, 0, 0, 0,
- 53, 0, 0, 0, 44, 2, 0, 0,183, 1, 0, 0, 42, 2, 0, 0, 53, 0, 0, 0, 45, 0, 0, 0,184, 0, 0, 0, 89, 4, 0, 0,
-184, 0, 0, 0, 90, 4, 0, 0,194, 0, 0, 0, 91, 4, 0, 0,183, 1, 0, 0, 89, 4, 0, 0, 58, 0, 0, 0, 43, 2, 0, 0,
-183, 1, 0, 0, 91, 4, 0, 0,194, 0, 0, 0, 65, 0, 0, 0,194, 0, 0, 0, 90, 4, 0, 0,184, 0, 0, 0, 44, 0, 0, 0,
- 3, 0, 0, 0, 64, 0, 0, 0, 44, 1, 0, 0, 21, 1, 0, 0,111, 0, 0, 0, 46, 2, 0, 0,185, 1, 0, 0, 92, 4, 0, 0,
-185, 1, 0, 0, 93, 4, 0, 0, 46, 1, 0, 0, 94, 4, 0, 0, 44, 1, 0, 0, 92, 4, 0, 0, 17, 0, 0, 0, 20, 1, 0, 0,
- 44, 1, 0, 0, 94, 4, 0, 0, 46, 1, 0, 0, 24, 1, 0, 0, 46, 1, 0, 0, 93, 4, 0, 0,185, 1, 0, 0, 47, 2, 0, 0,
-112, 0, 0, 0, 25, 1, 0, 0,186, 1, 0, 0, 48, 2, 0, 0,112, 0, 0, 0, 47, 2, 0, 0,185, 1, 0, 0, 95, 4, 0, 0,
-185, 1, 0, 0, 96, 4, 0, 0,187, 1, 0, 0, 97, 4, 0, 0,186, 1, 0, 0, 95, 4, 0, 0,113, 0, 0, 0, 49, 2, 0, 0,
-186, 1, 0, 0, 97, 4, 0, 0,187, 1, 0, 0, 51, 2, 0, 0,187, 1, 0, 0, 96, 4, 0, 0,185, 1, 0, 0, 46, 2, 0, 0,
-111, 0, 0, 0, 50, 2, 0, 0, 45, 1, 0, 0, 22, 1, 0, 0, 20, 0, 0, 0, 30, 1, 0, 0, 49, 1, 0, 0, 98, 4, 0, 0,
- 49, 1, 0, 0, 99, 4, 0, 0,187, 1, 0, 0,100, 4, 0, 0, 45, 1, 0, 0, 98, 4, 0, 0,111, 0, 0, 0, 23, 1, 0, 0,
- 45, 1, 0, 0,100, 4, 0, 0,187, 1, 0, 0, 50, 2, 0, 0,187, 1, 0, 0, 99, 4, 0, 0, 49, 1, 0, 0, 31, 1, 0, 0,
-113, 0, 0, 0, 51, 2, 0, 0,186, 1, 0, 0, 49, 2, 0, 0,113, 0, 0, 0, 29, 1, 0, 0, 48, 1, 0, 0,101, 4, 0, 0,
- 48, 1, 0, 0,102, 4, 0, 0, 47, 1, 0, 0,103, 4, 0, 0,186, 1, 0, 0,101, 4, 0, 0,112, 0, 0, 0, 48, 2, 0, 0,
-186, 1, 0, 0,103, 4, 0, 0, 47, 1, 0, 0, 27, 1, 0, 0, 47, 1, 0, 0,102, 4, 0, 0, 48, 1, 0, 0, 28, 1, 0, 0,
- 19, 0, 0, 0, 26, 1, 0, 0,192, 0, 0, 0, 61, 0, 0, 0, 57, 0, 0, 0, 52, 2, 0, 0,188, 1, 0, 0,104, 4, 0, 0,
-188, 1, 0, 0,105, 4, 0, 0,196, 0, 0, 0,106, 4, 0, 0,192, 0, 0, 0,104, 4, 0, 0, 4, 0, 0, 0, 60, 0, 0, 0,
-192, 0, 0, 0,106, 4, 0, 0,196, 0, 0, 0, 68, 0, 0, 0,196, 0, 0, 0,105, 4, 0, 0,188, 1, 0, 0, 53, 2, 0, 0,
- 59, 0, 0, 0, 69, 0, 0, 0,189, 1, 0, 0, 54, 2, 0, 0, 59, 0, 0, 0, 53, 2, 0, 0,188, 1, 0, 0,107, 4, 0, 0,
-188, 1, 0, 0,108, 4, 0, 0,190, 1, 0, 0,109, 4, 0, 0,189, 1, 0, 0,107, 4, 0, 0,113, 0, 0, 0, 55, 2, 0, 0,
-189, 1, 0, 0,109, 4, 0, 0,190, 1, 0, 0, 57, 2, 0, 0,190, 1, 0, 0,108, 4, 0, 0,188, 1, 0, 0, 52, 2, 0, 0,
- 57, 0, 0, 0, 56, 2, 0, 0,193, 0, 0, 0, 62, 0, 0, 0, 19, 0, 0, 0, 28, 1, 0, 0, 48, 1, 0, 0,110, 4, 0, 0,
- 48, 1, 0, 0,111, 4, 0, 0,190, 1, 0, 0,112, 4, 0, 0,193, 0, 0, 0,110, 4, 0, 0, 57, 0, 0, 0, 63, 0, 0, 0,
-193, 0, 0, 0,112, 4, 0, 0,190, 1, 0, 0, 56, 2, 0, 0,190, 1, 0, 0,111, 4, 0, 0, 48, 1, 0, 0, 29, 1, 0, 0,
-113, 0, 0, 0, 57, 2, 0, 0,189, 1, 0, 0, 55, 2, 0, 0,113, 0, 0, 0, 31, 1, 0, 0, 49, 1, 0, 0,113, 4, 0, 0,
- 49, 1, 0, 0,114, 4, 0, 0,197, 0, 0, 0,115, 4, 0, 0,189, 1, 0, 0,113, 4, 0, 0, 59, 0, 0, 0, 54, 2, 0, 0,
-189, 1, 0, 0,115, 4, 0, 0,197, 0, 0, 0, 71, 0, 0, 0,197, 0, 0, 0,114, 4, 0, 0, 49, 1, 0, 0, 30, 1, 0, 0,
- 20, 0, 0, 0, 70, 0, 0, 0,191, 0, 0, 0, 59, 0, 0, 0, 56, 0, 0, 0, 58, 2, 0, 0,191, 1, 0, 0,116, 4, 0, 0,
-191, 1, 0, 0,117, 4, 0, 0, 47, 1, 0, 0,118, 4, 0, 0,191, 0, 0, 0,116, 4, 0, 0, 19, 0, 0, 0, 58, 0, 0, 0,
-191, 0, 0, 0,118, 4, 0, 0, 47, 1, 0, 0, 26, 1, 0, 0, 47, 1, 0, 0,117, 4, 0, 0,191, 1, 0, 0, 59, 2, 0, 0,
-112, 0, 0, 0, 27, 1, 0, 0,192, 1, 0, 0, 61, 2, 0, 0,112, 0, 0, 0, 59, 2, 0, 0,191, 1, 0, 0,119, 4, 0, 0,
-191, 1, 0, 0,120, 4, 0, 0,193, 1, 0, 0,121, 4, 0, 0,192, 1, 0, 0,119, 4, 0, 0, 52, 0, 0, 0, 60, 2, 0, 0,
-192, 1, 0, 0,121, 4, 0, 0,193, 1, 0, 0, 62, 2, 0, 0,193, 1, 0, 0,120, 4, 0, 0,191, 1, 0, 0, 58, 2, 0, 0,
- 56, 0, 0, 0, 63, 2, 0, 0,190, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0,182, 0, 0, 0,122, 4, 0, 0,
-182, 0, 0, 0,123, 4, 0, 0,193, 1, 0, 0,124, 4, 0, 0,190, 0, 0, 0,122, 4, 0, 0, 56, 0, 0, 0, 57, 0, 0, 0,
-190, 0, 0, 0,124, 4, 0, 0,193, 1, 0, 0, 63, 2, 0, 0,193, 1, 0, 0,123, 4, 0, 0,182, 0, 0, 0, 41, 0, 0, 0,
- 52, 0, 0, 0, 62, 2, 0, 0,192, 1, 0, 0, 60, 2, 0, 0, 52, 0, 0, 0, 43, 0, 0, 0,183, 0, 0, 0,125, 4, 0, 0,
-183, 0, 0, 0,126, 4, 0, 0, 46, 1, 0, 0,127, 4, 0, 0,192, 1, 0, 0,125, 4, 0, 0,112, 0, 0, 0, 61, 2, 0, 0,
-192, 1, 0, 0,127, 4, 0, 0, 46, 1, 0, 0, 25, 1, 0, 0, 46, 1, 0, 0,126, 4, 0, 0,183, 0, 0, 0, 42, 0, 0, 0,
- 17, 0, 0, 0, 24, 1, 0, 0, 51, 1, 0, 0, 35, 1, 0, 0,114, 0, 0, 0, 65, 2, 0, 0,194, 1, 0, 0,128, 4, 0, 0,
-194, 1, 0, 0,129, 4, 0, 0,199, 0, 0, 0,130, 4, 0, 0, 51, 1, 0, 0,128, 4, 0, 0, 21, 0, 0, 0, 34, 1, 0, 0,
- 51, 1, 0, 0,130, 4, 0, 0,199, 0, 0, 0, 74, 0, 0, 0,199, 0, 0, 0,129, 4, 0, 0,194, 1, 0, 0, 64, 2, 0, 0,
- 60, 0, 0, 0, 75, 0, 0, 0,195, 1, 0, 0, 67, 2, 0, 0, 60, 0, 0, 0, 64, 2, 0, 0,194, 1, 0, 0,131, 4, 0, 0,
-194, 1, 0, 0,132, 4, 0, 0,196, 1, 0, 0,133, 4, 0, 0,195, 1, 0, 0,131, 4, 0, 0, 57, 0, 0, 0, 66, 2, 0, 0,
-195, 1, 0, 0,133, 4, 0, 0,196, 1, 0, 0, 68, 2, 0, 0,196, 1, 0, 0,132, 4, 0, 0,194, 1, 0, 0, 65, 2, 0, 0,
-114, 0, 0, 0, 69, 2, 0, 0, 50, 1, 0, 0, 32, 1, 0, 0, 19, 0, 0, 0, 62, 0, 0, 0,193, 0, 0, 0,134, 4, 0, 0,
-193, 0, 0, 0,135, 4, 0, 0,196, 1, 0, 0,136, 4, 0, 0, 50, 1, 0, 0,134, 4, 0, 0,114, 0, 0, 0, 33, 1, 0, 0,
- 50, 1, 0, 0,136, 4, 0, 0,196, 1, 0, 0, 69, 2, 0, 0,196, 1, 0, 0,135, 4, 0, 0,193, 0, 0, 0, 63, 0, 0, 0,
- 57, 0, 0, 0, 68, 2, 0, 0,195, 1, 0, 0, 66, 2, 0, 0, 57, 0, 0, 0, 61, 0, 0, 0,192, 0, 0, 0,137, 4, 0, 0,
-192, 0, 0, 0,138, 4, 0, 0,198, 0, 0, 0,139, 4, 0, 0,195, 1, 0, 0,137, 4, 0, 0, 60, 0, 0, 0, 67, 2, 0, 0,
-195, 1, 0, 0,139, 4, 0, 0,198, 0, 0, 0, 73, 0, 0, 0,198, 0, 0, 0,138, 4, 0, 0,192, 0, 0, 0, 60, 0, 0, 0,
- 4, 0, 0, 0, 72, 0, 0, 0, 50, 1, 0, 0, 33, 1, 0, 0,114, 0, 0, 0, 70, 2, 0, 0,197, 1, 0, 0,140, 4, 0, 0,
-197, 1, 0, 0,141, 4, 0, 0, 53, 1, 0, 0,142, 4, 0, 0, 50, 1, 0, 0,140, 4, 0, 0, 19, 0, 0, 0, 32, 1, 0, 0,
- 50, 1, 0, 0,142, 4, 0, 0, 53, 1, 0, 0, 38, 1, 0, 0, 53, 1, 0, 0,141, 4, 0, 0,197, 1, 0, 0, 71, 2, 0, 0,
-115, 0, 0, 0, 39, 1, 0, 0,198, 1, 0, 0, 72, 2, 0, 0,115, 0, 0, 0, 71, 2, 0, 0,197, 1, 0, 0,143, 4, 0, 0,
-197, 1, 0, 0,144, 4, 0, 0,199, 1, 0, 0,145, 4, 0, 0,198, 1, 0, 0,143, 4, 0, 0,116, 0, 0, 0, 73, 2, 0, 0,
-198, 1, 0, 0,145, 4, 0, 0,199, 1, 0, 0, 75, 2, 0, 0,199, 1, 0, 0,144, 4, 0, 0,197, 1, 0, 0, 70, 2, 0, 0,
-114, 0, 0, 0, 74, 2, 0, 0, 51, 1, 0, 0, 34, 1, 0, 0, 21, 0, 0, 0, 42, 1, 0, 0, 55, 1, 0, 0,146, 4, 0, 0,
- 55, 1, 0, 0,147, 4, 0, 0,199, 1, 0, 0,148, 4, 0, 0, 51, 1, 0, 0,146, 4, 0, 0,114, 0, 0, 0, 35, 1, 0, 0,
- 51, 1, 0, 0,148, 4, 0, 0,199, 1, 0, 0, 74, 2, 0, 0,199, 1, 0, 0,147, 4, 0, 0, 55, 1, 0, 0, 43, 1, 0, 0,
-116, 0, 0, 0, 75, 2, 0, 0,198, 1, 0, 0, 73, 2, 0, 0,116, 0, 0, 0, 41, 1, 0, 0, 54, 1, 0, 0,149, 4, 0, 0,
- 54, 1, 0, 0,150, 4, 0, 0, 52, 1, 0, 0,151, 4, 0, 0,198, 1, 0, 0,149, 4, 0, 0,115, 0, 0, 0, 72, 2, 0, 0,
-198, 1, 0, 0,151, 4, 0, 0, 52, 1, 0, 0, 37, 1, 0, 0, 52, 1, 0, 0,150, 4, 0, 0, 54, 1, 0, 0, 40, 1, 0, 0,
- 15, 0, 0, 0, 36, 1, 0, 0,176, 0, 0, 0, 29, 0, 0, 0, 49, 0, 0, 0, 76, 2, 0, 0,200, 1, 0, 0,152, 4, 0, 0,
-200, 1, 0, 0,153, 4, 0, 0,200, 0, 0, 0,154, 4, 0, 0,176, 0, 0, 0,152, 4, 0, 0, 5, 0, 0, 0, 28, 0, 0, 0,
-176, 0, 0, 0,154, 4, 0, 0,200, 0, 0, 0, 76, 0, 0, 0,200, 0, 0, 0,153, 4, 0, 0,200, 1, 0, 0, 77, 2, 0, 0,
- 61, 0, 0, 0, 77, 0, 0, 0,201, 1, 0, 0, 78, 2, 0, 0, 61, 0, 0, 0, 77, 2, 0, 0,200, 1, 0, 0,155, 4, 0, 0,
-200, 1, 0, 0,156, 4, 0, 0,202, 1, 0, 0,157, 4, 0, 0,201, 1, 0, 0,155, 4, 0, 0,116, 0, 0, 0, 79, 2, 0, 0,
-201, 1, 0, 0,157, 4, 0, 0,202, 1, 0, 0, 81, 2, 0, 0,202, 1, 0, 0,156, 4, 0, 0,200, 1, 0, 0, 76, 2, 0, 0,
- 49, 0, 0, 0, 80, 2, 0, 0,177, 0, 0, 0, 30, 0, 0, 0, 15, 0, 0, 0, 40, 1, 0, 0, 54, 1, 0, 0,158, 4, 0, 0,
- 54, 1, 0, 0,159, 4, 0, 0,202, 1, 0, 0,160, 4, 0, 0,177, 0, 0, 0,158, 4, 0, 0, 49, 0, 0, 0, 31, 0, 0, 0,
-177, 0, 0, 0,160, 4, 0, 0,202, 1, 0, 0, 80, 2, 0, 0,202, 1, 0, 0,159, 4, 0, 0, 54, 1, 0, 0, 41, 1, 0, 0,
-116, 0, 0, 0, 81, 2, 0, 0,201, 1, 0, 0, 79, 2, 0, 0,116, 0, 0, 0, 43, 1, 0, 0, 55, 1, 0, 0,161, 4, 0, 0,
- 55, 1, 0, 0,162, 4, 0, 0,201, 0, 0, 0,163, 4, 0, 0,201, 1, 0, 0,161, 4, 0, 0, 61, 0, 0, 0, 78, 2, 0, 0,
-201, 1, 0, 0,163, 4, 0, 0,201, 0, 0, 0, 79, 0, 0, 0,201, 0, 0, 0,162, 4, 0, 0, 55, 1, 0, 0, 42, 1, 0, 0,
- 21, 0, 0, 0, 78, 0, 0, 0,175, 0, 0, 0, 27, 0, 0, 0, 48, 0, 0, 0, 82, 2, 0, 0,203, 1, 0, 0,164, 4, 0, 0,
-203, 1, 0, 0,165, 4, 0, 0, 52, 1, 0, 0,166, 4, 0, 0,175, 0, 0, 0,164, 4, 0, 0, 15, 0, 0, 0, 26, 0, 0, 0,
-175, 0, 0, 0,166, 4, 0, 0, 52, 1, 0, 0, 36, 1, 0, 0, 52, 1, 0, 0,165, 4, 0, 0,203, 1, 0, 0, 83, 2, 0, 0,
-115, 0, 0, 0, 37, 1, 0, 0,204, 1, 0, 0, 85, 2, 0, 0,115, 0, 0, 0, 83, 2, 0, 0,203, 1, 0, 0,167, 4, 0, 0,
-203, 1, 0, 0,168, 4, 0, 0,205, 1, 0, 0,169, 4, 0, 0,204, 1, 0, 0,167, 4, 0, 0, 56, 0, 0, 0, 84, 2, 0, 0,
-204, 1, 0, 0,169, 4, 0, 0,205, 1, 0, 0, 87, 2, 0, 0,205, 1, 0, 0,168, 4, 0, 0,203, 1, 0, 0, 82, 2, 0, 0,
- 48, 0, 0, 0, 86, 2, 0, 0,174, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0,190, 0, 0, 0,170, 4, 0, 0,
-190, 0, 0, 0,171, 4, 0, 0,205, 1, 0, 0,172, 4, 0, 0,174, 0, 0, 0,170, 4, 0, 0, 48, 0, 0, 0, 25, 0, 0, 0,
-174, 0, 0, 0,172, 4, 0, 0,205, 1, 0, 0, 86, 2, 0, 0,205, 1, 0, 0,171, 4, 0, 0,190, 0, 0, 0, 57, 0, 0, 0,
- 56, 0, 0, 0, 87, 2, 0, 0,204, 1, 0, 0, 84, 2, 0, 0, 56, 0, 0, 0, 59, 0, 0, 0,191, 0, 0, 0,173, 4, 0, 0,
-191, 0, 0, 0,174, 4, 0, 0, 53, 1, 0, 0,175, 4, 0, 0,204, 1, 0, 0,173, 4, 0, 0,115, 0, 0, 0, 85, 2, 0, 0,
-204, 1, 0, 0,175, 4, 0, 0, 53, 1, 0, 0, 39, 1, 0, 0, 53, 1, 0, 0,174, 4, 0, 0,191, 0, 0, 0, 58, 0, 0, 0,
- 19, 0, 0, 0, 38, 1, 0, 0,206, 1, 0, 0, 89, 2, 0, 0,117, 0, 0, 0, 47, 1, 0, 0, 57, 1, 0, 0,176, 4, 0, 0,
- 57, 1, 0, 0,177, 4, 0, 0,207, 0, 0, 0,178, 4, 0, 0,206, 1, 0, 0,176, 4, 0, 0, 64, 0, 0, 0, 88, 2, 0, 0,
-206, 1, 0, 0,178, 4, 0, 0,207, 0, 0, 0, 91, 0, 0, 0,207, 0, 0, 0,177, 4, 0, 0, 57, 1, 0, 0, 46, 1, 0, 0,
- 23, 0, 0, 0, 90, 0, 0, 0,206, 1, 0, 0, 88, 2, 0, 0, 64, 0, 0, 0, 91, 2, 0, 0,207, 1, 0, 0,179, 4, 0, 0,
-207, 1, 0, 0,180, 4, 0, 0,208, 1, 0, 0,181, 4, 0, 0,206, 1, 0, 0,179, 4, 0, 0,117, 0, 0, 0, 89, 2, 0, 0,
-206, 1, 0, 0,181, 4, 0, 0,208, 1, 0, 0, 93, 2, 0, 0,208, 1, 0, 0,180, 4, 0, 0,207, 1, 0, 0, 90, 2, 0, 0,
- 50, 0, 0, 0, 92, 2, 0, 0,179, 0, 0, 0, 34, 0, 0, 0, 16, 0, 0, 0, 44, 1, 0, 0, 56, 1, 0, 0,182, 4, 0, 0,
- 56, 1, 0, 0,183, 4, 0, 0,208, 1, 0, 0,184, 4, 0, 0,179, 0, 0, 0,182, 4, 0, 0, 50, 0, 0, 0, 35, 0, 0, 0,
-179, 0, 0, 0,184, 4, 0, 0,208, 1, 0, 0, 92, 2, 0, 0,208, 1, 0, 0,183, 4, 0, 0, 56, 1, 0, 0, 45, 1, 0, 0,
-117, 0, 0, 0, 93, 2, 0, 0,178, 0, 0, 0, 33, 0, 0, 0, 50, 0, 0, 0, 90, 2, 0, 0,207, 1, 0, 0,185, 4, 0, 0,
-207, 1, 0, 0,186, 4, 0, 0,206, 0, 0, 0,187, 4, 0, 0,178, 0, 0, 0,185, 4, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0,
-178, 0, 0, 0,187, 4, 0, 0,206, 0, 0, 0, 88, 0, 0, 0,206, 0, 0, 0,186, 4, 0, 0,207, 1, 0, 0, 91, 2, 0, 0,
- 64, 0, 0, 0, 89, 0, 0, 0,209, 1, 0, 0, 94, 2, 0, 0,117, 0, 0, 0, 45, 1, 0, 0, 56, 1, 0, 0,188, 4, 0, 0,
- 56, 1, 0, 0,189, 4, 0, 0, 58, 1, 0, 0,190, 4, 0, 0,209, 1, 0, 0,188, 4, 0, 0,118, 0, 0, 0, 95, 2, 0, 0,
-209, 1, 0, 0,190, 4, 0, 0, 58, 1, 0, 0, 49, 1, 0, 0, 58, 1, 0, 0,189, 4, 0, 0, 56, 1, 0, 0, 44, 1, 0, 0,
- 16, 0, 0, 0, 48, 1, 0, 0,209, 1, 0, 0, 95, 2, 0, 0,118, 0, 0, 0, 96, 2, 0, 0,210, 1, 0, 0,191, 4, 0, 0,
-210, 1, 0, 0,192, 4, 0, 0,211, 1, 0, 0,193, 4, 0, 0,209, 1, 0, 0,191, 4, 0, 0,117, 0, 0, 0, 94, 2, 0, 0,
-209, 1, 0, 0,193, 4, 0, 0,211, 1, 0, 0, 98, 2, 0, 0,211, 1, 0, 0,192, 4, 0, 0,210, 1, 0, 0, 97, 2, 0, 0,
-119, 0, 0, 0, 99, 2, 0, 0, 61, 1, 0, 0, 54, 1, 0, 0, 23, 0, 0, 0, 46, 1, 0, 0, 57, 1, 0, 0,194, 4, 0, 0,
- 57, 1, 0, 0,195, 4, 0, 0,211, 1, 0, 0,196, 4, 0, 0, 61, 1, 0, 0,194, 4, 0, 0,119, 0, 0, 0, 55, 1, 0, 0,
- 61, 1, 0, 0,196, 4, 0, 0,211, 1, 0, 0, 99, 2, 0, 0,211, 1, 0, 0,195, 4, 0, 0, 57, 1, 0, 0, 47, 1, 0, 0,
-117, 0, 0, 0, 98, 2, 0, 0, 60, 1, 0, 0, 53, 1, 0, 0,119, 0, 0, 0, 97, 2, 0, 0,210, 1, 0, 0,197, 4, 0, 0,
-210, 1, 0, 0,198, 4, 0, 0, 59, 1, 0, 0,199, 4, 0, 0, 60, 1, 0, 0,197, 4, 0, 0, 22, 0, 0, 0, 52, 1, 0, 0,
- 60, 1, 0, 0,199, 4, 0, 0, 59, 1, 0, 0, 50, 1, 0, 0, 59, 1, 0, 0,198, 4, 0, 0,210, 1, 0, 0, 96, 2, 0, 0,
-118, 0, 0, 0, 51, 1, 0, 0,212, 1, 0, 0,100, 2, 0, 0, 63, 0, 0, 0, 85, 0, 0, 0,204, 0, 0, 0,200, 4, 0, 0,
-204, 0, 0, 0,201, 4, 0, 0,208, 0, 0, 0,202, 4, 0, 0,212, 1, 0, 0,200, 4, 0, 0, 65, 0, 0, 0,101, 2, 0, 0,
-212, 1, 0, 0,202, 4, 0, 0,208, 0, 0, 0, 93, 0, 0, 0,208, 0, 0, 0,201, 4, 0, 0,204, 0, 0, 0, 84, 0, 0, 0,
- 10, 0, 0, 0, 92, 0, 0, 0,212, 1, 0, 0,101, 2, 0, 0, 65, 0, 0, 0,102, 2, 0, 0,213, 1, 0, 0,203, 4, 0, 0,
-213, 1, 0, 0,204, 4, 0, 0,214, 1, 0, 0,205, 4, 0, 0,212, 1, 0, 0,203, 4, 0, 0, 63, 0, 0, 0,100, 2, 0, 0,
-212, 1, 0, 0,205, 4, 0, 0,214, 1, 0, 0,104, 2, 0, 0,214, 1, 0, 0,204, 4, 0, 0,213, 1, 0, 0,103, 2, 0, 0,
-119, 0, 0, 0,105, 2, 0, 0, 60, 1, 0, 0, 52, 1, 0, 0, 22, 0, 0, 0, 86, 0, 0, 0,205, 0, 0, 0,206, 4, 0, 0,
-205, 0, 0, 0,207, 4, 0, 0,214, 1, 0, 0,208, 4, 0, 0, 60, 1, 0, 0,206, 4, 0, 0,119, 0, 0, 0, 53, 1, 0, 0,
- 60, 1, 0, 0,208, 4, 0, 0,214, 1, 0, 0,105, 2, 0, 0,214, 1, 0, 0,207, 4, 0, 0,205, 0, 0, 0, 87, 0, 0, 0,
- 63, 0, 0, 0,104, 2, 0, 0, 61, 1, 0, 0, 55, 1, 0, 0,119, 0, 0, 0,103, 2, 0, 0,213, 1, 0, 0,209, 4, 0, 0,
-213, 1, 0, 0,210, 4, 0, 0,209, 0, 0, 0,211, 4, 0, 0, 61, 1, 0, 0,209, 4, 0, 0, 23, 0, 0, 0, 54, 1, 0, 0,
- 61, 1, 0, 0,211, 4, 0, 0,209, 0, 0, 0, 94, 0, 0, 0,209, 0, 0, 0,210, 4, 0, 0,213, 1, 0, 0,102, 2, 0, 0,
- 65, 0, 0, 0, 95, 0, 0, 0,215, 1, 0, 0,106, 2, 0, 0, 62, 0, 0, 0, 83, 0, 0, 0,203, 0, 0, 0,212, 4, 0, 0,
-203, 0, 0, 0,213, 4, 0, 0, 59, 1, 0, 0,214, 4, 0, 0,215, 1, 0, 0,212, 4, 0, 0,118, 0, 0, 0,107, 2, 0, 0,
-215, 1, 0, 0,214, 4, 0, 0, 59, 1, 0, 0, 51, 1, 0, 0, 59, 1, 0, 0,213, 4, 0, 0,203, 0, 0, 0, 82, 0, 0, 0,
- 22, 0, 0, 0, 50, 1, 0, 0,215, 1, 0, 0,107, 2, 0, 0,118, 0, 0, 0,109, 2, 0, 0,216, 1, 0, 0,215, 4, 0, 0,
-216, 1, 0, 0,216, 4, 0, 0,217, 1, 0, 0,217, 4, 0, 0,215, 1, 0, 0,215, 4, 0, 0, 62, 0, 0, 0,106, 2, 0, 0,
-215, 1, 0, 0,217, 4, 0, 0,217, 1, 0, 0,111, 2, 0, 0,217, 1, 0, 0,216, 4, 0, 0,216, 1, 0, 0,108, 2, 0, 0,
- 51, 0, 0, 0,110, 2, 0, 0,180, 0, 0, 0, 36, 0, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0,202, 0, 0, 0,218, 4, 0, 0,
-202, 0, 0, 0,219, 4, 0, 0,217, 1, 0, 0,220, 4, 0, 0,180, 0, 0, 0,218, 4, 0, 0, 51, 0, 0, 0, 37, 0, 0, 0,
-180, 0, 0, 0,220, 4, 0, 0,217, 1, 0, 0,110, 2, 0, 0,217, 1, 0, 0,219, 4, 0, 0,202, 0, 0, 0, 81, 0, 0, 0,
- 62, 0, 0, 0,111, 2, 0, 0,181, 0, 0, 0, 39, 0, 0, 0, 51, 0, 0, 0,108, 2, 0, 0,216, 1, 0, 0,221, 4, 0, 0,
-216, 1, 0, 0,222, 4, 0, 0, 58, 1, 0, 0,223, 4, 0, 0,181, 0, 0, 0,221, 4, 0, 0, 16, 0, 0, 0, 38, 0, 0, 0,
-181, 0, 0, 0,223, 4, 0, 0, 58, 1, 0, 0, 48, 1, 0, 0, 58, 1, 0, 0,222, 4, 0, 0,216, 1, 0, 0,109, 2, 0, 0,
-118, 0, 0, 0, 49, 1, 0, 0,218, 1, 0, 0,113, 2, 0, 0,120, 0, 0, 0, 59, 1, 0, 0, 63, 1, 0, 0,224, 4, 0, 0,
- 63, 1, 0, 0,225, 4, 0, 0,215, 0, 0, 0,226, 4, 0, 0,218, 1, 0, 0,224, 4, 0, 0, 68, 0, 0, 0,112, 2, 0, 0,
-218, 1, 0, 0,226, 4, 0, 0,215, 0, 0, 0,107, 0, 0, 0,215, 0, 0, 0,225, 4, 0, 0, 63, 1, 0, 0, 58, 1, 0, 0,
- 25, 0, 0, 0,106, 0, 0, 0,218, 1, 0, 0,112, 2, 0, 0, 68, 0, 0, 0,115, 2, 0, 0,219, 1, 0, 0,227, 4, 0, 0,
-219, 1, 0, 0,228, 4, 0, 0,220, 1, 0, 0,229, 4, 0, 0,218, 1, 0, 0,227, 4, 0, 0,120, 0, 0, 0,113, 2, 0, 0,
-218, 1, 0, 0,229, 4, 0, 0,220, 1, 0, 0,117, 2, 0, 0,220, 1, 0, 0,228, 4, 0, 0,219, 1, 0, 0,114, 2, 0, 0,
- 47, 0, 0, 0,116, 2, 0, 0,173, 0, 0, 0, 22, 0, 0, 0, 14, 0, 0, 0, 56, 1, 0, 0, 62, 1, 0, 0,230, 4, 0, 0,
- 62, 1, 0, 0,231, 4, 0, 0,220, 1, 0, 0,232, 4, 0, 0,173, 0, 0, 0,230, 4, 0, 0, 47, 0, 0, 0, 23, 0, 0, 0,
-173, 0, 0, 0,232, 4, 0, 0,220, 1, 0, 0,116, 2, 0, 0,220, 1, 0, 0,231, 4, 0, 0, 62, 1, 0, 0, 57, 1, 0, 0,
-120, 0, 0, 0,117, 2, 0, 0,172, 0, 0, 0, 21, 0, 0, 0, 47, 0, 0, 0,114, 2, 0, 0,219, 1, 0, 0,233, 4, 0, 0,
-219, 1, 0, 0,234, 4, 0, 0,214, 0, 0, 0,235, 4, 0, 0,172, 0, 0, 0,233, 4, 0, 0, 2, 0, 0, 0, 20, 0, 0, 0,
-172, 0, 0, 0,235, 4, 0, 0,214, 0, 0, 0,104, 0, 0, 0,214, 0, 0, 0,234, 4, 0, 0,219, 1, 0, 0,115, 2, 0, 0,
- 68, 0, 0, 0,105, 0, 0, 0,221, 1, 0, 0,118, 2, 0, 0,120, 0, 0, 0, 57, 1, 0, 0, 62, 1, 0, 0,236, 4, 0, 0,
- 62, 1, 0, 0,237, 4, 0, 0, 64, 1, 0, 0,238, 4, 0, 0,221, 1, 0, 0,236, 4, 0, 0,121, 0, 0, 0,119, 2, 0, 0,
-221, 1, 0, 0,238, 4, 0, 0, 64, 1, 0, 0, 61, 1, 0, 0, 64, 1, 0, 0,237, 4, 0, 0, 62, 1, 0, 0, 56, 1, 0, 0,
- 14, 0, 0, 0, 60, 1, 0, 0,221, 1, 0, 0,119, 2, 0, 0,121, 0, 0, 0,120, 2, 0, 0,222, 1, 0, 0,239, 4, 0, 0,
-222, 1, 0, 0,240, 4, 0, 0,223, 1, 0, 0,241, 4, 0, 0,221, 1, 0, 0,239, 4, 0, 0,120, 0, 0, 0,118, 2, 0, 0,
-221, 1, 0, 0,241, 4, 0, 0,223, 1, 0, 0,122, 2, 0, 0,223, 1, 0, 0,240, 4, 0, 0,222, 1, 0, 0,121, 2, 0, 0,
-122, 0, 0, 0,123, 2, 0, 0, 67, 1, 0, 0, 66, 1, 0, 0, 25, 0, 0, 0, 58, 1, 0, 0, 63, 1, 0, 0,242, 4, 0, 0,
- 63, 1, 0, 0,243, 4, 0, 0,223, 1, 0, 0,244, 4, 0, 0, 67, 1, 0, 0,242, 4, 0, 0,122, 0, 0, 0, 67, 1, 0, 0,
- 67, 1, 0, 0,244, 4, 0, 0,223, 1, 0, 0,123, 2, 0, 0,223, 1, 0, 0,243, 4, 0, 0, 63, 1, 0, 0, 59, 1, 0, 0,
-120, 0, 0, 0,122, 2, 0, 0, 66, 1, 0, 0, 65, 1, 0, 0,122, 0, 0, 0,121, 2, 0, 0,222, 1, 0, 0,245, 4, 0, 0,
-222, 1, 0, 0,246, 4, 0, 0, 65, 1, 0, 0,247, 4, 0, 0, 66, 1, 0, 0,245, 4, 0, 0, 24, 0, 0, 0, 64, 1, 0, 0,
- 66, 1, 0, 0,247, 4, 0, 0, 65, 1, 0, 0, 62, 1, 0, 0, 65, 1, 0, 0,246, 4, 0, 0,222, 1, 0, 0,120, 2, 0, 0,
-121, 0, 0, 0, 63, 1, 0, 0,224, 1, 0, 0,124, 2, 0, 0, 67, 0, 0, 0,101, 0, 0, 0,212, 0, 0, 0,248, 4, 0, 0,
-212, 0, 0, 0,249, 4, 0, 0,216, 0, 0, 0,250, 4, 0, 0,224, 1, 0, 0,248, 4, 0, 0, 69, 0, 0, 0,125, 2, 0, 0,
-224, 1, 0, 0,250, 4, 0, 0,216, 0, 0, 0,109, 0, 0, 0,216, 0, 0, 0,249, 4, 0, 0,212, 0, 0, 0,100, 0, 0, 0,
- 6, 0, 0, 0,108, 0, 0, 0,224, 1, 0, 0,125, 2, 0, 0, 69, 0, 0, 0,126, 2, 0, 0,225, 1, 0, 0,251, 4, 0, 0,
-225, 1, 0, 0,252, 4, 0, 0,226, 1, 0, 0,253, 4, 0, 0,224, 1, 0, 0,251, 4, 0, 0, 67, 0, 0, 0,124, 2, 0, 0,
-224, 1, 0, 0,253, 4, 0, 0,226, 1, 0, 0,128, 2, 0, 0,226, 1, 0, 0,252, 4, 0, 0,225, 1, 0, 0,127, 2, 0, 0,
-122, 0, 0, 0,129, 2, 0, 0, 66, 1, 0, 0, 64, 1, 0, 0, 24, 0, 0, 0,102, 0, 0, 0,213, 0, 0, 0,254, 4, 0, 0,
-213, 0, 0, 0,255, 4, 0, 0,226, 1, 0, 0, 0, 5, 0, 0, 66, 1, 0, 0,254, 4, 0, 0,122, 0, 0, 0, 65, 1, 0, 0,
- 66, 1, 0, 0, 0, 5, 0, 0,226, 1, 0, 0,129, 2, 0, 0,226, 1, 0, 0,255, 4, 0, 0,213, 0, 0, 0,103, 0, 0, 0,
- 67, 0, 0, 0,128, 2, 0, 0, 67, 1, 0, 0, 67, 1, 0, 0,122, 0, 0, 0,127, 2, 0, 0,225, 1, 0, 0, 1, 5, 0, 0,
-225, 1, 0, 0, 2, 5, 0, 0,217, 0, 0, 0, 3, 5, 0, 0, 67, 1, 0, 0, 1, 5, 0, 0, 25, 0, 0, 0, 66, 1, 0, 0,
- 67, 1, 0, 0, 3, 5, 0, 0,217, 0, 0, 0,110, 0, 0, 0,217, 0, 0, 0, 2, 5, 0, 0,225, 1, 0, 0,126, 2, 0, 0,
- 69, 0, 0, 0,111, 0, 0, 0,227, 1, 0, 0,130, 2, 0, 0, 66, 0, 0, 0, 99, 0, 0, 0,211, 0, 0, 0, 4, 5, 0, 0,
-211, 0, 0, 0, 5, 5, 0, 0, 65, 1, 0, 0, 6, 5, 0, 0,227, 1, 0, 0, 4, 5, 0, 0,121, 0, 0, 0,131, 2, 0, 0,
-227, 1, 0, 0, 6, 5, 0, 0, 65, 1, 0, 0, 63, 1, 0, 0, 65, 1, 0, 0, 5, 5, 0, 0,211, 0, 0, 0, 98, 0, 0, 0,
- 24, 0, 0, 0, 62, 1, 0, 0,227, 1, 0, 0,131, 2, 0, 0,121, 0, 0, 0,133, 2, 0, 0,228, 1, 0, 0, 7, 5, 0, 0,
-228, 1, 0, 0, 8, 5, 0, 0,229, 1, 0, 0, 9, 5, 0, 0,227, 1, 0, 0, 7, 5, 0, 0, 66, 0, 0, 0,130, 2, 0, 0,
-227, 1, 0, 0, 9, 5, 0, 0,229, 1, 0, 0,135, 2, 0, 0,229, 1, 0, 0, 8, 5, 0, 0,228, 1, 0, 0,132, 2, 0, 0,
- 46, 0, 0, 0,134, 2, 0, 0,170, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0, 96, 0, 0, 0,210, 0, 0, 0, 10, 5, 0, 0,
-210, 0, 0, 0, 11, 5, 0, 0,229, 1, 0, 0, 12, 5, 0, 0,170, 0, 0, 0, 10, 5, 0, 0, 46, 0, 0, 0, 17, 0, 0, 0,
-170, 0, 0, 0, 12, 5, 0, 0,229, 1, 0, 0,134, 2, 0, 0,229, 1, 0, 0, 11, 5, 0, 0,210, 0, 0, 0, 97, 0, 0, 0,
- 66, 0, 0, 0,135, 2, 0, 0,171, 0, 0, 0, 19, 0, 0, 0, 46, 0, 0, 0,132, 2, 0, 0,228, 1, 0, 0, 13, 5, 0, 0,
-228, 1, 0, 0, 14, 5, 0, 0, 64, 1, 0, 0, 15, 5, 0, 0,171, 0, 0, 0, 13, 5, 0, 0, 14, 0, 0, 0, 18, 0, 0, 0,
-171, 0, 0, 0, 15, 5, 0, 0, 64, 1, 0, 0, 60, 1, 0, 0, 64, 1, 0, 0, 14, 5, 0, 0,228, 1, 0, 0,133, 2, 0, 0,
-121, 0, 0, 0, 61, 1, 0, 0,230, 1, 0, 0,137, 2, 0, 0,123, 0, 0, 0, 71, 1, 0, 0, 69, 1, 0, 0, 16, 5, 0, 0,
- 69, 1, 0, 0, 17, 5, 0, 0,223, 0, 0, 0, 18, 5, 0, 0,230, 1, 0, 0, 16, 5, 0, 0, 72, 0, 0, 0,136, 2, 0, 0,
-230, 1, 0, 0, 18, 5, 0, 0,223, 0, 0, 0,123, 0, 0, 0,223, 0, 0, 0, 17, 5, 0, 0, 69, 1, 0, 0, 70, 1, 0, 0,
- 27, 0, 0, 0,122, 0, 0, 0,230, 1, 0, 0,136, 2, 0, 0, 72, 0, 0, 0,139, 2, 0, 0,231, 1, 0, 0, 19, 5, 0, 0,
-231, 1, 0, 0, 20, 5, 0, 0,232, 1, 0, 0, 21, 5, 0, 0,230, 1, 0, 0, 19, 5, 0, 0,123, 0, 0, 0,137, 2, 0, 0,
-230, 1, 0, 0, 21, 5, 0, 0,232, 1, 0, 0,141, 2, 0, 0,232, 1, 0, 0, 20, 5, 0, 0,231, 1, 0, 0,138, 2, 0, 0,
- 55, 0, 0, 0,140, 2, 0, 0,189, 0, 0, 0, 54, 0, 0, 0, 18, 0, 0, 0, 68, 1, 0, 0, 68, 1, 0, 0, 22, 5, 0, 0,
- 68, 1, 0, 0, 23, 5, 0, 0,232, 1, 0, 0, 24, 5, 0, 0,189, 0, 0, 0, 22, 5, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0,
-189, 0, 0, 0, 24, 5, 0, 0,232, 1, 0, 0,140, 2, 0, 0,232, 1, 0, 0, 23, 5, 0, 0, 68, 1, 0, 0, 69, 1, 0, 0,
-123, 0, 0, 0,141, 2, 0, 0,188, 0, 0, 0, 53, 0, 0, 0, 55, 0, 0, 0,138, 2, 0, 0,231, 1, 0, 0, 25, 5, 0, 0,
-231, 1, 0, 0, 26, 5, 0, 0,222, 0, 0, 0, 27, 5, 0, 0,188, 0, 0, 0, 25, 5, 0, 0, 3, 0, 0, 0, 52, 0, 0, 0,
-188, 0, 0, 0, 27, 5, 0, 0,222, 0, 0, 0,120, 0, 0, 0,222, 0, 0, 0, 26, 5, 0, 0,231, 1, 0, 0,139, 2, 0, 0,
- 72, 0, 0, 0,121, 0, 0, 0,233, 1, 0, 0,142, 2, 0, 0,123, 0, 0, 0, 69, 1, 0, 0, 68, 1, 0, 0, 28, 5, 0, 0,
- 68, 1, 0, 0, 29, 5, 0, 0, 70, 1, 0, 0, 30, 5, 0, 0,233, 1, 0, 0, 28, 5, 0, 0,124, 0, 0, 0,143, 2, 0, 0,
-233, 1, 0, 0, 30, 5, 0, 0, 70, 1, 0, 0, 73, 1, 0, 0, 70, 1, 0, 0, 29, 5, 0, 0, 68, 1, 0, 0, 68, 1, 0, 0,
- 18, 0, 0, 0, 72, 1, 0, 0,233, 1, 0, 0,143, 2, 0, 0,124, 0, 0, 0,144, 2, 0, 0,234, 1, 0, 0, 31, 5, 0, 0,
-234, 1, 0, 0, 32, 5, 0, 0,235, 1, 0, 0, 33, 5, 0, 0,233, 1, 0, 0, 31, 5, 0, 0,123, 0, 0, 0,142, 2, 0, 0,
-233, 1, 0, 0, 33, 5, 0, 0,235, 1, 0, 0,146, 2, 0, 0,235, 1, 0, 0, 32, 5, 0, 0,234, 1, 0, 0,145, 2, 0, 0,
-125, 0, 0, 0,147, 2, 0, 0, 73, 1, 0, 0, 78, 1, 0, 0, 27, 0, 0, 0, 70, 1, 0, 0, 69, 1, 0, 0, 34, 5, 0, 0,
- 69, 1, 0, 0, 35, 5, 0, 0,235, 1, 0, 0, 36, 5, 0, 0, 73, 1, 0, 0, 34, 5, 0, 0,125, 0, 0, 0, 79, 1, 0, 0,
- 73, 1, 0, 0, 36, 5, 0, 0,235, 1, 0, 0,147, 2, 0, 0,235, 1, 0, 0, 35, 5, 0, 0, 69, 1, 0, 0, 71, 1, 0, 0,
-123, 0, 0, 0,146, 2, 0, 0, 72, 1, 0, 0, 77, 1, 0, 0,125, 0, 0, 0,145, 2, 0, 0,234, 1, 0, 0, 37, 5, 0, 0,
-234, 1, 0, 0, 38, 5, 0, 0, 71, 1, 0, 0, 39, 5, 0, 0, 72, 1, 0, 0, 37, 5, 0, 0, 26, 0, 0, 0, 76, 1, 0, 0,
- 72, 1, 0, 0, 39, 5, 0, 0, 71, 1, 0, 0, 74, 1, 0, 0, 71, 1, 0, 0, 38, 5, 0, 0,234, 1, 0, 0,144, 2, 0, 0,
-124, 0, 0, 0, 75, 1, 0, 0,236, 1, 0, 0,148, 2, 0, 0, 71, 0, 0, 0,117, 0, 0, 0,220, 0, 0, 0, 40, 5, 0, 0,
-220, 0, 0, 0, 41, 5, 0, 0,224, 0, 0, 0, 42, 5, 0, 0,236, 1, 0, 0, 40, 5, 0, 0, 73, 0, 0, 0,149, 2, 0, 0,
-236, 1, 0, 0, 42, 5, 0, 0,224, 0, 0, 0,125, 0, 0, 0,224, 0, 0, 0, 41, 5, 0, 0,220, 0, 0, 0,116, 0, 0, 0,
- 7, 0, 0, 0,124, 0, 0, 0,236, 1, 0, 0,149, 2, 0, 0, 73, 0, 0, 0,150, 2, 0, 0,237, 1, 0, 0, 43, 5, 0, 0,
-237, 1, 0, 0, 44, 5, 0, 0,238, 1, 0, 0, 45, 5, 0, 0,236, 1, 0, 0, 43, 5, 0, 0, 71, 0, 0, 0,148, 2, 0, 0,
-236, 1, 0, 0, 45, 5, 0, 0,238, 1, 0, 0,152, 2, 0, 0,238, 1, 0, 0, 44, 5, 0, 0,237, 1, 0, 0,151, 2, 0, 0,
-125, 0, 0, 0,153, 2, 0, 0, 72, 1, 0, 0, 76, 1, 0, 0, 26, 0, 0, 0,118, 0, 0, 0,221, 0, 0, 0, 46, 5, 0, 0,
-221, 0, 0, 0, 47, 5, 0, 0,238, 1, 0, 0, 48, 5, 0, 0, 72, 1, 0, 0, 46, 5, 0, 0,125, 0, 0, 0, 77, 1, 0, 0,
- 72, 1, 0, 0, 48, 5, 0, 0,238, 1, 0, 0,153, 2, 0, 0,238, 1, 0, 0, 47, 5, 0, 0,221, 0, 0, 0,119, 0, 0, 0,
- 71, 0, 0, 0,152, 2, 0, 0, 73, 1, 0, 0, 79, 1, 0, 0,125, 0, 0, 0,151, 2, 0, 0,237, 1, 0, 0, 49, 5, 0, 0,
-237, 1, 0, 0, 50, 5, 0, 0,225, 0, 0, 0, 51, 5, 0, 0, 73, 1, 0, 0, 49, 5, 0, 0, 27, 0, 0, 0, 78, 1, 0, 0,
- 73, 1, 0, 0, 51, 5, 0, 0,225, 0, 0, 0,126, 0, 0, 0,225, 0, 0, 0, 50, 5, 0, 0,237, 1, 0, 0,150, 2, 0, 0,
- 73, 0, 0, 0,127, 0, 0, 0,239, 1, 0, 0,154, 2, 0, 0, 70, 0, 0, 0,115, 0, 0, 0,219, 0, 0, 0, 52, 5, 0, 0,
-219, 0, 0, 0, 53, 5, 0, 0, 71, 1, 0, 0, 54, 5, 0, 0,239, 1, 0, 0, 52, 5, 0, 0,124, 0, 0, 0,155, 2, 0, 0,
-239, 1, 0, 0, 54, 5, 0, 0, 71, 1, 0, 0, 75, 1, 0, 0, 71, 1, 0, 0, 53, 5, 0, 0,219, 0, 0, 0,114, 0, 0, 0,
- 26, 0, 0, 0, 74, 1, 0, 0,239, 1, 0, 0,155, 2, 0, 0,124, 0, 0, 0,157, 2, 0, 0,240, 1, 0, 0, 55, 5, 0, 0,
-240, 1, 0, 0, 56, 5, 0, 0,241, 1, 0, 0, 57, 5, 0, 0,239, 1, 0, 0, 55, 5, 0, 0, 70, 0, 0, 0,154, 2, 0, 0,
-239, 1, 0, 0, 57, 5, 0, 0,241, 1, 0, 0,159, 2, 0, 0,241, 1, 0, 0, 56, 5, 0, 0,240, 1, 0, 0,156, 2, 0, 0,
- 54, 0, 0, 0,158, 2, 0, 0,186, 0, 0, 0, 48, 0, 0, 0, 2, 0, 0, 0,112, 0, 0, 0,218, 0, 0, 0, 58, 5, 0, 0,
-218, 0, 0, 0, 59, 5, 0, 0,241, 1, 0, 0, 60, 5, 0, 0,186, 0, 0, 0, 58, 5, 0, 0, 54, 0, 0, 0, 49, 0, 0, 0,
-186, 0, 0, 0, 60, 5, 0, 0,241, 1, 0, 0,158, 2, 0, 0,241, 1, 0, 0, 59, 5, 0, 0,218, 0, 0, 0,113, 0, 0, 0,
- 70, 0, 0, 0,159, 2, 0, 0,187, 0, 0, 0, 51, 0, 0, 0, 54, 0, 0, 0,156, 2, 0, 0,240, 1, 0, 0, 61, 5, 0, 0,
-240, 1, 0, 0, 62, 5, 0, 0, 70, 1, 0, 0, 63, 5, 0, 0,187, 0, 0, 0, 61, 5, 0, 0, 18, 0, 0, 0, 50, 0, 0, 0,
-187, 0, 0, 0, 63, 5, 0, 0, 70, 1, 0, 0, 72, 1, 0, 0, 70, 1, 0, 0, 62, 5, 0, 0,240, 1, 0, 0,157, 2, 0, 0,
-124, 0, 0, 0, 73, 1, 0, 0,242, 1, 0, 0,161, 2, 0, 0,126, 0, 0, 0, 83, 1, 0, 0, 75, 1, 0, 0, 64, 5, 0, 0,
- 75, 1, 0, 0, 65, 5, 0, 0,231, 0, 0, 0, 66, 5, 0, 0,242, 1, 0, 0, 64, 5, 0, 0, 76, 0, 0, 0,160, 2, 0, 0,
-242, 1, 0, 0, 66, 5, 0, 0,231, 0, 0, 0,139, 0, 0, 0,231, 0, 0, 0, 65, 5, 0, 0, 75, 1, 0, 0, 82, 1, 0, 0,
- 29, 0, 0, 0,138, 0, 0, 0,242, 1, 0, 0,160, 2, 0, 0, 76, 0, 0, 0,163, 2, 0, 0,243, 1, 0, 0, 67, 5, 0, 0,
-243, 1, 0, 0, 68, 5, 0, 0,244, 1, 0, 0, 69, 5, 0, 0,242, 1, 0, 0, 67, 5, 0, 0,126, 0, 0, 0,161, 2, 0, 0,
-242, 1, 0, 0, 69, 5, 0, 0,244, 1, 0, 0,165, 2, 0, 0,244, 1, 0, 0, 68, 5, 0, 0,243, 1, 0, 0,162, 2, 0, 0,
- 59, 0, 0, 0,164, 2, 0, 0,197, 0, 0, 0, 70, 0, 0, 0, 20, 0, 0, 0, 80, 1, 0, 0, 74, 1, 0, 0, 70, 5, 0, 0,
- 74, 1, 0, 0, 71, 5, 0, 0,244, 1, 0, 0, 72, 5, 0, 0,197, 0, 0, 0, 70, 5, 0, 0, 59, 0, 0, 0, 71, 0, 0, 0,
-197, 0, 0, 0, 72, 5, 0, 0,244, 1, 0, 0,164, 2, 0, 0,244, 1, 0, 0, 71, 5, 0, 0, 74, 1, 0, 0, 81, 1, 0, 0,
-126, 0, 0, 0,165, 2, 0, 0,196, 0, 0, 0, 69, 0, 0, 0, 59, 0, 0, 0,162, 2, 0, 0,243, 1, 0, 0, 73, 5, 0, 0,
-243, 1, 0, 0, 74, 5, 0, 0,230, 0, 0, 0, 75, 5, 0, 0,196, 0, 0, 0, 73, 5, 0, 0, 4, 0, 0, 0, 68, 0, 0, 0,
-196, 0, 0, 0, 75, 5, 0, 0,230, 0, 0, 0,136, 0, 0, 0,230, 0, 0, 0, 74, 5, 0, 0,243, 1, 0, 0,163, 2, 0, 0,
- 76, 0, 0, 0,137, 0, 0, 0,245, 1, 0, 0,166, 2, 0, 0,126, 0, 0, 0, 81, 1, 0, 0, 74, 1, 0, 0, 76, 5, 0, 0,
- 74, 1, 0, 0, 77, 5, 0, 0, 76, 1, 0, 0, 78, 5, 0, 0,245, 1, 0, 0, 76, 5, 0, 0,127, 0, 0, 0,167, 2, 0, 0,
-245, 1, 0, 0, 78, 5, 0, 0, 76, 1, 0, 0, 85, 1, 0, 0, 76, 1, 0, 0, 77, 5, 0, 0, 74, 1, 0, 0, 80, 1, 0, 0,
- 20, 0, 0, 0, 84, 1, 0, 0,245, 1, 0, 0,167, 2, 0, 0,127, 0, 0, 0,168, 2, 0, 0,246, 1, 0, 0, 79, 5, 0, 0,
-246, 1, 0, 0, 80, 5, 0, 0,247, 1, 0, 0, 81, 5, 0, 0,245, 1, 0, 0, 79, 5, 0, 0,126, 0, 0, 0,166, 2, 0, 0,
-245, 1, 0, 0, 81, 5, 0, 0,247, 1, 0, 0,170, 2, 0, 0,247, 1, 0, 0, 80, 5, 0, 0,246, 1, 0, 0,169, 2, 0, 0,
-128, 0, 0, 0,171, 2, 0, 0, 79, 1, 0, 0, 90, 1, 0, 0, 29, 0, 0, 0, 82, 1, 0, 0, 75, 1, 0, 0, 82, 5, 0, 0,
- 75, 1, 0, 0, 83, 5, 0, 0,247, 1, 0, 0, 84, 5, 0, 0, 79, 1, 0, 0, 82, 5, 0, 0,128, 0, 0, 0, 91, 1, 0, 0,
- 79, 1, 0, 0, 84, 5, 0, 0,247, 1, 0, 0,171, 2, 0, 0,247, 1, 0, 0, 83, 5, 0, 0, 75, 1, 0, 0, 83, 1, 0, 0,
-126, 0, 0, 0,170, 2, 0, 0, 78, 1, 0, 0, 89, 1, 0, 0,128, 0, 0, 0,169, 2, 0, 0,246, 1, 0, 0, 85, 5, 0, 0,
-246, 1, 0, 0, 86, 5, 0, 0, 77, 1, 0, 0, 87, 5, 0, 0, 78, 1, 0, 0, 85, 5, 0, 0, 28, 0, 0, 0, 88, 1, 0, 0,
- 78, 1, 0, 0, 87, 5, 0, 0, 77, 1, 0, 0, 86, 1, 0, 0, 77, 1, 0, 0, 86, 5, 0, 0,246, 1, 0, 0,168, 2, 0, 0,
-127, 0, 0, 0, 87, 1, 0, 0,248, 1, 0, 0,172, 2, 0, 0, 75, 0, 0, 0,133, 0, 0, 0,228, 0, 0, 0, 88, 5, 0, 0,
-228, 0, 0, 0, 89, 5, 0, 0,232, 0, 0, 0, 90, 5, 0, 0,248, 1, 0, 0, 88, 5, 0, 0, 77, 0, 0, 0,173, 2, 0, 0,
-248, 1, 0, 0, 90, 5, 0, 0,232, 0, 0, 0,141, 0, 0, 0,232, 0, 0, 0, 89, 5, 0, 0,228, 0, 0, 0,132, 0, 0, 0,
- 8, 0, 0, 0,140, 0, 0, 0,248, 1, 0, 0,173, 2, 0, 0, 77, 0, 0, 0,174, 2, 0, 0,249, 1, 0, 0, 91, 5, 0, 0,
-249, 1, 0, 0, 92, 5, 0, 0,250, 1, 0, 0, 93, 5, 0, 0,248, 1, 0, 0, 91, 5, 0, 0, 75, 0, 0, 0,172, 2, 0, 0,
-248, 1, 0, 0, 93, 5, 0, 0,250, 1, 0, 0,176, 2, 0, 0,250, 1, 0, 0, 92, 5, 0, 0,249, 1, 0, 0,175, 2, 0, 0,
-128, 0, 0, 0,177, 2, 0, 0, 78, 1, 0, 0, 88, 1, 0, 0, 28, 0, 0, 0,134, 0, 0, 0,229, 0, 0, 0, 94, 5, 0, 0,
-229, 0, 0, 0, 95, 5, 0, 0,250, 1, 0, 0, 96, 5, 0, 0, 78, 1, 0, 0, 94, 5, 0, 0,128, 0, 0, 0, 89, 1, 0, 0,
- 78, 1, 0, 0, 96, 5, 0, 0,250, 1, 0, 0,177, 2, 0, 0,250, 1, 0, 0, 95, 5, 0, 0,229, 0, 0, 0,135, 0, 0, 0,
- 75, 0, 0, 0,176, 2, 0, 0, 79, 1, 0, 0, 91, 1, 0, 0,128, 0, 0, 0,175, 2, 0, 0,249, 1, 0, 0, 97, 5, 0, 0,
-249, 1, 0, 0, 98, 5, 0, 0,233, 0, 0, 0, 99, 5, 0, 0, 79, 1, 0, 0, 97, 5, 0, 0, 29, 0, 0, 0, 90, 1, 0, 0,
- 79, 1, 0, 0, 99, 5, 0, 0,233, 0, 0, 0,142, 0, 0, 0,233, 0, 0, 0, 98, 5, 0, 0,249, 1, 0, 0,174, 2, 0, 0,
- 77, 0, 0, 0,143, 0, 0, 0,251, 1, 0, 0,178, 2, 0, 0, 74, 0, 0, 0,131, 0, 0, 0,227, 0, 0, 0,100, 5, 0, 0,
-227, 0, 0, 0,101, 5, 0, 0, 77, 1, 0, 0,102, 5, 0, 0,251, 1, 0, 0,100, 5, 0, 0,127, 0, 0, 0,179, 2, 0, 0,
-251, 1, 0, 0,102, 5, 0, 0, 77, 1, 0, 0, 87, 1, 0, 0, 77, 1, 0, 0,101, 5, 0, 0,227, 0, 0, 0,130, 0, 0, 0,
- 28, 0, 0, 0, 86, 1, 0, 0,251, 1, 0, 0,179, 2, 0, 0,127, 0, 0, 0,181, 2, 0, 0,252, 1, 0, 0,103, 5, 0, 0,
-252, 1, 0, 0,104, 5, 0, 0,253, 1, 0, 0,105, 5, 0, 0,251, 1, 0, 0,103, 5, 0, 0, 74, 0, 0, 0,178, 2, 0, 0,
-251, 1, 0, 0,105, 5, 0, 0,253, 1, 0, 0,183, 2, 0, 0,253, 1, 0, 0,104, 5, 0, 0,252, 1, 0, 0,180, 2, 0, 0,
- 58, 0, 0, 0,182, 2, 0, 0,194, 0, 0, 0, 64, 0, 0, 0, 3, 0, 0, 0,128, 0, 0, 0,226, 0, 0, 0,106, 5, 0, 0,
-226, 0, 0, 0,107, 5, 0, 0,253, 1, 0, 0,108, 5, 0, 0,194, 0, 0, 0,106, 5, 0, 0, 58, 0, 0, 0, 65, 0, 0, 0,
-194, 0, 0, 0,108, 5, 0, 0,253, 1, 0, 0,182, 2, 0, 0,253, 1, 0, 0,107, 5, 0, 0,226, 0, 0, 0,129, 0, 0, 0,
- 74, 0, 0, 0,183, 2, 0, 0,195, 0, 0, 0, 67, 0, 0, 0, 58, 0, 0, 0,180, 2, 0, 0,252, 1, 0, 0,109, 5, 0, 0,
-252, 1, 0, 0,110, 5, 0, 0, 76, 1, 0, 0,111, 5, 0, 0,195, 0, 0, 0,109, 5, 0, 0, 20, 0, 0, 0, 66, 0, 0, 0,
-195, 0, 0, 0,111, 5, 0, 0, 76, 1, 0, 0, 84, 1, 0, 0, 76, 1, 0, 0,110, 5, 0, 0,252, 1, 0, 0,181, 2, 0, 0,
-127, 0, 0, 0, 85, 1, 0, 0,254, 1, 0, 0,185, 2, 0, 0,129, 0, 0, 0, 95, 1, 0, 0, 81, 1, 0, 0,112, 5, 0, 0,
- 81, 1, 0, 0,113, 5, 0, 0,239, 0, 0, 0,114, 5, 0, 0,254, 1, 0, 0,112, 5, 0, 0, 80, 0, 0, 0,184, 2, 0, 0,
-254, 1, 0, 0,114, 5, 0, 0,239, 0, 0, 0,155, 0, 0, 0,239, 0, 0, 0,113, 5, 0, 0, 81, 1, 0, 0, 94, 1, 0, 0,
- 31, 0, 0, 0,154, 0, 0, 0,254, 1, 0, 0,184, 2, 0, 0, 80, 0, 0, 0,187, 2, 0, 0,255, 1, 0, 0,115, 5, 0, 0,
-255, 1, 0, 0,116, 5, 0, 0, 0, 2, 0, 0,117, 5, 0, 0,254, 1, 0, 0,115, 5, 0, 0,129, 0, 0, 0,185, 2, 0, 0,
-254, 1, 0, 0,117, 5, 0, 0, 0, 2, 0, 0,189, 2, 0, 0, 0, 2, 0, 0,116, 5, 0, 0,255, 1, 0, 0,186, 2, 0, 0,
- 61, 0, 0, 0,188, 2, 0, 0,201, 0, 0, 0, 78, 0, 0, 0, 21, 0, 0, 0, 92, 1, 0, 0, 80, 1, 0, 0,118, 5, 0, 0,
- 80, 1, 0, 0,119, 5, 0, 0, 0, 2, 0, 0,120, 5, 0, 0,201, 0, 0, 0,118, 5, 0, 0, 61, 0, 0, 0, 79, 0, 0, 0,
-201, 0, 0, 0,120, 5, 0, 0, 0, 2, 0, 0,188, 2, 0, 0, 0, 2, 0, 0,119, 5, 0, 0, 80, 1, 0, 0, 93, 1, 0, 0,
-129, 0, 0, 0,189, 2, 0, 0,200, 0, 0, 0, 77, 0, 0, 0, 61, 0, 0, 0,186, 2, 0, 0,255, 1, 0, 0,121, 5, 0, 0,
-255, 1, 0, 0,122, 5, 0, 0,238, 0, 0, 0,123, 5, 0, 0,200, 0, 0, 0,121, 5, 0, 0, 5, 0, 0, 0, 76, 0, 0, 0,
-200, 0, 0, 0,123, 5, 0, 0,238, 0, 0, 0,152, 0, 0, 0,238, 0, 0, 0,122, 5, 0, 0,255, 1, 0, 0,187, 2, 0, 0,
- 80, 0, 0, 0,153, 0, 0, 0, 1, 2, 0, 0,190, 2, 0, 0,129, 0, 0, 0, 93, 1, 0, 0, 80, 1, 0, 0,124, 5, 0, 0,
- 80, 1, 0, 0,125, 5, 0, 0, 82, 1, 0, 0,126, 5, 0, 0, 1, 2, 0, 0,124, 5, 0, 0,130, 0, 0, 0,191, 2, 0, 0,
- 1, 2, 0, 0,126, 5, 0, 0, 82, 1, 0, 0, 97, 1, 0, 0, 82, 1, 0, 0,125, 5, 0, 0, 80, 1, 0, 0, 92, 1, 0, 0,
- 21, 0, 0, 0, 96, 1, 0, 0, 1, 2, 0, 0,191, 2, 0, 0,130, 0, 0, 0,192, 2, 0, 0, 2, 2, 0, 0,127, 5, 0, 0,
- 2, 2, 0, 0,128, 5, 0, 0, 3, 2, 0, 0,129, 5, 0, 0, 1, 2, 0, 0,127, 5, 0, 0,129, 0, 0, 0,190, 2, 0, 0,
- 1, 2, 0, 0,129, 5, 0, 0, 3, 2, 0, 0,194, 2, 0, 0, 3, 2, 0, 0,128, 5, 0, 0, 2, 2, 0, 0,193, 2, 0, 0,
-131, 0, 0, 0,195, 2, 0, 0, 85, 1, 0, 0,102, 1, 0, 0, 31, 0, 0, 0, 94, 1, 0, 0, 81, 1, 0, 0,130, 5, 0, 0,
- 81, 1, 0, 0,131, 5, 0, 0, 3, 2, 0, 0,132, 5, 0, 0, 85, 1, 0, 0,130, 5, 0, 0,131, 0, 0, 0,103, 1, 0, 0,
- 85, 1, 0, 0,132, 5, 0, 0, 3, 2, 0, 0,195, 2, 0, 0, 3, 2, 0, 0,131, 5, 0, 0, 81, 1, 0, 0, 95, 1, 0, 0,
-129, 0, 0, 0,194, 2, 0, 0, 84, 1, 0, 0,101, 1, 0, 0,131, 0, 0, 0,193, 2, 0, 0, 2, 2, 0, 0,133, 5, 0, 0,
- 2, 2, 0, 0,134, 5, 0, 0, 83, 1, 0, 0,135, 5, 0, 0, 84, 1, 0, 0,133, 5, 0, 0, 30, 0, 0, 0,100, 1, 0, 0,
- 84, 1, 0, 0,135, 5, 0, 0, 83, 1, 0, 0, 98, 1, 0, 0, 83, 1, 0, 0,134, 5, 0, 0, 2, 2, 0, 0,192, 2, 0, 0,
-130, 0, 0, 0, 99, 1, 0, 0, 4, 2, 0, 0,196, 2, 0, 0, 79, 0, 0, 0,149, 0, 0, 0,236, 0, 0, 0,136, 5, 0, 0,
-236, 0, 0, 0,137, 5, 0, 0,240, 0, 0, 0,138, 5, 0, 0, 4, 2, 0, 0,136, 5, 0, 0, 81, 0, 0, 0,197, 2, 0, 0,
- 4, 2, 0, 0,138, 5, 0, 0,240, 0, 0, 0,157, 0, 0, 0,240, 0, 0, 0,137, 5, 0, 0,236, 0, 0, 0,148, 0, 0, 0,
- 9, 0, 0, 0,156, 0, 0, 0, 4, 2, 0, 0,197, 2, 0, 0, 81, 0, 0, 0,198, 2, 0, 0, 5, 2, 0, 0,139, 5, 0, 0,
- 5, 2, 0, 0,140, 5, 0, 0, 6, 2, 0, 0,141, 5, 0, 0, 4, 2, 0, 0,139, 5, 0, 0, 79, 0, 0, 0,196, 2, 0, 0,
- 4, 2, 0, 0,141, 5, 0, 0, 6, 2, 0, 0,200, 2, 0, 0, 6, 2, 0, 0,140, 5, 0, 0, 5, 2, 0, 0,199, 2, 0, 0,
-131, 0, 0, 0,201, 2, 0, 0, 84, 1, 0, 0,100, 1, 0, 0, 30, 0, 0, 0,150, 0, 0, 0,237, 0, 0, 0,142, 5, 0, 0,
-237, 0, 0, 0,143, 5, 0, 0, 6, 2, 0, 0,144, 5, 0, 0, 84, 1, 0, 0,142, 5, 0, 0,131, 0, 0, 0,101, 1, 0, 0,
- 84, 1, 0, 0,144, 5, 0, 0, 6, 2, 0, 0,201, 2, 0, 0, 6, 2, 0, 0,143, 5, 0, 0,237, 0, 0, 0,151, 0, 0, 0,
- 79, 0, 0, 0,200, 2, 0, 0, 85, 1, 0, 0,103, 1, 0, 0,131, 0, 0, 0,199, 2, 0, 0, 5, 2, 0, 0,145, 5, 0, 0,
- 5, 2, 0, 0,146, 5, 0, 0,241, 0, 0, 0,147, 5, 0, 0, 85, 1, 0, 0,145, 5, 0, 0, 31, 0, 0, 0,102, 1, 0, 0,
- 85, 1, 0, 0,147, 5, 0, 0,241, 0, 0, 0,158, 0, 0, 0,241, 0, 0, 0,146, 5, 0, 0, 5, 2, 0, 0,198, 2, 0, 0,
- 81, 0, 0, 0,159, 0, 0, 0, 7, 2, 0, 0,202, 2, 0, 0, 78, 0, 0, 0,147, 0, 0, 0,235, 0, 0, 0,148, 5, 0, 0,
-235, 0, 0, 0,149, 5, 0, 0, 83, 1, 0, 0,150, 5, 0, 0, 7, 2, 0, 0,148, 5, 0, 0,130, 0, 0, 0,203, 2, 0, 0,
- 7, 2, 0, 0,150, 5, 0, 0, 83, 1, 0, 0, 99, 1, 0, 0, 83, 1, 0, 0,149, 5, 0, 0,235, 0, 0, 0,146, 0, 0, 0,
- 30, 0, 0, 0, 98, 1, 0, 0, 7, 2, 0, 0,203, 2, 0, 0,130, 0, 0, 0,205, 2, 0, 0, 8, 2, 0, 0,151, 5, 0, 0,
- 8, 2, 0, 0,152, 5, 0, 0, 9, 2, 0, 0,153, 5, 0, 0, 7, 2, 0, 0,151, 5, 0, 0, 78, 0, 0, 0,202, 2, 0, 0,
- 7, 2, 0, 0,153, 5, 0, 0, 9, 2, 0, 0,207, 2, 0, 0, 9, 2, 0, 0,152, 5, 0, 0, 8, 2, 0, 0,204, 2, 0, 0,
- 60, 0, 0, 0,206, 2, 0, 0,198, 0, 0, 0, 72, 0, 0, 0, 4, 0, 0, 0,144, 0, 0, 0,234, 0, 0, 0,154, 5, 0, 0,
-234, 0, 0, 0,155, 5, 0, 0, 9, 2, 0, 0,156, 5, 0, 0,198, 0, 0, 0,154, 5, 0, 0, 60, 0, 0, 0, 73, 0, 0, 0,
-198, 0, 0, 0,156, 5, 0, 0, 9, 2, 0, 0,206, 2, 0, 0, 9, 2, 0, 0,155, 5, 0, 0,234, 0, 0, 0,145, 0, 0, 0,
- 78, 0, 0, 0,207, 2, 0, 0,199, 0, 0, 0, 75, 0, 0, 0, 60, 0, 0, 0,204, 2, 0, 0, 8, 2, 0, 0,157, 5, 0, 0,
- 8, 2, 0, 0,158, 5, 0, 0, 82, 1, 0, 0,159, 5, 0, 0,199, 0, 0, 0,157, 5, 0, 0, 21, 0, 0, 0, 74, 0, 0, 0,
-199, 0, 0, 0,159, 5, 0, 0, 82, 1, 0, 0, 96, 1, 0, 0, 82, 1, 0, 0,158, 5, 0, 0, 8, 2, 0, 0,205, 2, 0, 0,
-130, 0, 0, 0, 97, 1, 0, 0, 87, 1, 0, 0,107, 1, 0, 0,132, 0, 0, 0,209, 2, 0, 0, 10, 2, 0, 0,160, 5, 0, 0,
- 10, 2, 0, 0,161, 5, 0, 0,245, 0, 0, 0,162, 5, 0, 0, 87, 1, 0, 0,160, 5, 0, 0, 32, 0, 0, 0,106, 1, 0, 0,
- 87, 1, 0, 0,162, 5, 0, 0,245, 0, 0, 0,166, 0, 0, 0,245, 0, 0, 0,161, 5, 0, 0, 10, 2, 0, 0,208, 2, 0, 0,
- 83, 0, 0, 0,167, 0, 0, 0, 11, 2, 0, 0,211, 2, 0, 0, 83, 0, 0, 0,208, 2, 0, 0, 10, 2, 0, 0,163, 5, 0, 0,
- 10, 2, 0, 0,164, 5, 0, 0, 12, 2, 0, 0,165, 5, 0, 0, 11, 2, 0, 0,163, 5, 0, 0, 65, 0, 0, 0,210, 2, 0, 0,
- 11, 2, 0, 0,165, 5, 0, 0, 12, 2, 0, 0,212, 2, 0, 0, 12, 2, 0, 0,164, 5, 0, 0, 10, 2, 0, 0,209, 2, 0, 0,
-132, 0, 0, 0,213, 2, 0, 0, 86, 1, 0, 0,104, 1, 0, 0, 23, 0, 0, 0, 94, 0, 0, 0,209, 0, 0, 0,166, 5, 0, 0,
-209, 0, 0, 0,167, 5, 0, 0, 12, 2, 0, 0,168, 5, 0, 0, 86, 1, 0, 0,166, 5, 0, 0,132, 0, 0, 0,105, 1, 0, 0,
- 86, 1, 0, 0,168, 5, 0, 0, 12, 2, 0, 0,213, 2, 0, 0, 12, 2, 0, 0,167, 5, 0, 0,209, 0, 0, 0, 95, 0, 0, 0,
- 65, 0, 0, 0,212, 2, 0, 0, 11, 2, 0, 0,210, 2, 0, 0, 65, 0, 0, 0, 93, 0, 0, 0,208, 0, 0, 0,169, 5, 0, 0,
-208, 0, 0, 0,170, 5, 0, 0,244, 0, 0, 0,171, 5, 0, 0, 11, 2, 0, 0,169, 5, 0, 0, 83, 0, 0, 0,211, 2, 0, 0,
- 11, 2, 0, 0,171, 5, 0, 0,244, 0, 0, 0,165, 0, 0, 0,244, 0, 0, 0,170, 5, 0, 0,208, 0, 0, 0, 92, 0, 0, 0,
- 10, 0, 0, 0,164, 0, 0, 0, 86, 1, 0, 0,105, 1, 0, 0,132, 0, 0, 0,214, 2, 0, 0, 13, 2, 0, 0,172, 5, 0, 0,
- 13, 2, 0, 0,173, 5, 0, 0, 88, 1, 0, 0,174, 5, 0, 0, 86, 1, 0, 0,172, 5, 0, 0, 23, 0, 0, 0,104, 1, 0, 0,
- 86, 1, 0, 0,174, 5, 0, 0, 88, 1, 0, 0,108, 1, 0, 0, 88, 1, 0, 0,173, 5, 0, 0, 13, 2, 0, 0,215, 2, 0, 0,
-133, 0, 0, 0,109, 1, 0, 0, 14, 2, 0, 0,216, 2, 0, 0,133, 0, 0, 0,215, 2, 0, 0, 13, 2, 0, 0,175, 5, 0, 0,
- 13, 2, 0, 0,176, 5, 0, 0, 15, 2, 0, 0,177, 5, 0, 0, 14, 2, 0, 0,175, 5, 0, 0,134, 0, 0, 0,217, 2, 0, 0,
- 14, 2, 0, 0,177, 5, 0, 0, 15, 2, 0, 0,219, 2, 0, 0, 15, 2, 0, 0,176, 5, 0, 0, 13, 2, 0, 0,214, 2, 0, 0,
-132, 0, 0, 0,218, 2, 0, 0, 87, 1, 0, 0,106, 1, 0, 0, 32, 0, 0, 0,114, 1, 0, 0, 91, 1, 0, 0,178, 5, 0, 0,
- 91, 1, 0, 0,179, 5, 0, 0, 15, 2, 0, 0,180, 5, 0, 0, 87, 1, 0, 0,178, 5, 0, 0,132, 0, 0, 0,107, 1, 0, 0,
- 87, 1, 0, 0,180, 5, 0, 0, 15, 2, 0, 0,218, 2, 0, 0, 15, 2, 0, 0,179, 5, 0, 0, 91, 1, 0, 0,115, 1, 0, 0,
-134, 0, 0, 0,219, 2, 0, 0, 14, 2, 0, 0,217, 2, 0, 0,134, 0, 0, 0,113, 1, 0, 0, 90, 1, 0, 0,181, 5, 0, 0,
- 90, 1, 0, 0,182, 5, 0, 0, 89, 1, 0, 0,183, 5, 0, 0, 14, 2, 0, 0,181, 5, 0, 0,133, 0, 0, 0,216, 2, 0, 0,
- 14, 2, 0, 0,183, 5, 0, 0, 89, 1, 0, 0,111, 1, 0, 0, 89, 1, 0, 0,182, 5, 0, 0, 90, 1, 0, 0,112, 1, 0, 0,
- 24, 0, 0, 0,110, 1, 0, 0,212, 0, 0, 0,101, 0, 0, 0, 67, 0, 0, 0,220, 2, 0, 0, 16, 2, 0, 0,184, 5, 0, 0,
- 16, 2, 0, 0,185, 5, 0, 0,242, 0, 0, 0,186, 5, 0, 0,212, 0, 0, 0,184, 5, 0, 0, 6, 0, 0, 0,100, 0, 0, 0,
-212, 0, 0, 0,186, 5, 0, 0,242, 0, 0, 0,160, 0, 0, 0,242, 0, 0, 0,185, 5, 0, 0, 16, 2, 0, 0,221, 2, 0, 0,
- 82, 0, 0, 0,161, 0, 0, 0, 17, 2, 0, 0,222, 2, 0, 0, 82, 0, 0, 0,221, 2, 0, 0, 16, 2, 0, 0,187, 5, 0, 0,
- 16, 2, 0, 0,188, 5, 0, 0, 18, 2, 0, 0,189, 5, 0, 0, 17, 2, 0, 0,187, 5, 0, 0,134, 0, 0, 0,223, 2, 0, 0,
- 17, 2, 0, 0,189, 5, 0, 0, 18, 2, 0, 0,225, 2, 0, 0, 18, 2, 0, 0,188, 5, 0, 0, 16, 2, 0, 0,220, 2, 0, 0,
- 67, 0, 0, 0,224, 2, 0, 0,213, 0, 0, 0,102, 0, 0, 0, 24, 0, 0, 0,112, 1, 0, 0, 90, 1, 0, 0,190, 5, 0, 0,
- 90, 1, 0, 0,191, 5, 0, 0, 18, 2, 0, 0,192, 5, 0, 0,213, 0, 0, 0,190, 5, 0, 0, 67, 0, 0, 0,103, 0, 0, 0,
-213, 0, 0, 0,192, 5, 0, 0, 18, 2, 0, 0,224, 2, 0, 0, 18, 2, 0, 0,191, 5, 0, 0, 90, 1, 0, 0,113, 1, 0, 0,
-134, 0, 0, 0,225, 2, 0, 0, 17, 2, 0, 0,223, 2, 0, 0,134, 0, 0, 0,115, 1, 0, 0, 91, 1, 0, 0,193, 5, 0, 0,
- 91, 1, 0, 0,194, 5, 0, 0,243, 0, 0, 0,195, 5, 0, 0, 17, 2, 0, 0,193, 5, 0, 0, 82, 0, 0, 0,222, 2, 0, 0,
- 17, 2, 0, 0,195, 5, 0, 0,243, 0, 0, 0,163, 0, 0, 0,243, 0, 0, 0,194, 5, 0, 0, 91, 1, 0, 0,114, 1, 0, 0,
- 32, 0, 0, 0,162, 0, 0, 0,211, 0, 0, 0, 99, 0, 0, 0, 66, 0, 0, 0,226, 2, 0, 0, 19, 2, 0, 0,196, 5, 0, 0,
- 19, 2, 0, 0,197, 5, 0, 0, 89, 1, 0, 0,198, 5, 0, 0,211, 0, 0, 0,196, 5, 0, 0, 24, 0, 0, 0, 98, 0, 0, 0,
-211, 0, 0, 0,198, 5, 0, 0, 89, 1, 0, 0,110, 1, 0, 0, 89, 1, 0, 0,197, 5, 0, 0, 19, 2, 0, 0,227, 2, 0, 0,
-133, 0, 0, 0,111, 1, 0, 0, 20, 2, 0, 0,229, 2, 0, 0,133, 0, 0, 0,227, 2, 0, 0, 19, 2, 0, 0,199, 5, 0, 0,
- 19, 2, 0, 0,200, 5, 0, 0, 21, 2, 0, 0,201, 5, 0, 0, 20, 2, 0, 0,199, 5, 0, 0, 64, 0, 0, 0,228, 2, 0, 0,
- 20, 2, 0, 0,201, 5, 0, 0, 21, 2, 0, 0,230, 2, 0, 0, 21, 2, 0, 0,200, 5, 0, 0, 19, 2, 0, 0,226, 2, 0, 0,
- 66, 0, 0, 0,231, 2, 0, 0,210, 0, 0, 0, 96, 0, 0, 0, 1, 0, 0, 0, 88, 0, 0, 0,206, 0, 0, 0,202, 5, 0, 0,
-206, 0, 0, 0,203, 5, 0, 0, 21, 2, 0, 0,204, 5, 0, 0,210, 0, 0, 0,202, 5, 0, 0, 66, 0, 0, 0, 97, 0, 0, 0,
-210, 0, 0, 0,204, 5, 0, 0, 21, 2, 0, 0,231, 2, 0, 0, 21, 2, 0, 0,203, 5, 0, 0,206, 0, 0, 0, 89, 0, 0, 0,
- 64, 0, 0, 0,230, 2, 0, 0, 20, 2, 0, 0,228, 2, 0, 0, 64, 0, 0, 0, 91, 0, 0, 0,207, 0, 0, 0,205, 5, 0, 0,
-207, 0, 0, 0,206, 5, 0, 0, 88, 1, 0, 0,207, 5, 0, 0, 20, 2, 0, 0,205, 5, 0, 0,133, 0, 0, 0,229, 2, 0, 0,
- 20, 2, 0, 0,207, 5, 0, 0, 88, 1, 0, 0,109, 1, 0, 0, 88, 1, 0, 0,206, 5, 0, 0,207, 0, 0, 0, 90, 0, 0, 0,
- 23, 0, 0, 0,108, 1, 0, 0, 93, 1, 0, 0,119, 1, 0, 0,135, 0, 0, 0,233, 2, 0, 0, 22, 2, 0, 0,208, 5, 0, 0,
- 22, 2, 0, 0,209, 5, 0, 0,247, 0, 0, 0,210, 5, 0, 0, 93, 1, 0, 0,208, 5, 0, 0, 33, 0, 0, 0,118, 1, 0, 0,
- 93, 1, 0, 0,210, 5, 0, 0,247, 0, 0, 0,170, 0, 0, 0,247, 0, 0, 0,209, 5, 0, 0, 22, 2, 0, 0,232, 2, 0, 0,
- 84, 0, 0, 0,171, 0, 0, 0, 23, 2, 0, 0,235, 2, 0, 0, 84, 0, 0, 0,232, 2, 0, 0, 22, 2, 0, 0,211, 5, 0, 0,
- 22, 2, 0, 0,212, 5, 0, 0, 24, 2, 0, 0,213, 5, 0, 0, 23, 2, 0, 0,211, 5, 0, 0, 69, 0, 0, 0,234, 2, 0, 0,
- 23, 2, 0, 0,213, 5, 0, 0, 24, 2, 0, 0,236, 2, 0, 0, 24, 2, 0, 0,212, 5, 0, 0, 22, 2, 0, 0,233, 2, 0, 0,
-135, 0, 0, 0,237, 2, 0, 0, 92, 1, 0, 0,116, 1, 0, 0, 25, 0, 0, 0,110, 0, 0, 0,217, 0, 0, 0,214, 5, 0, 0,
-217, 0, 0, 0,215, 5, 0, 0, 24, 2, 0, 0,216, 5, 0, 0, 92, 1, 0, 0,214, 5, 0, 0,135, 0, 0, 0,117, 1, 0, 0,
- 92, 1, 0, 0,216, 5, 0, 0, 24, 2, 0, 0,237, 2, 0, 0, 24, 2, 0, 0,215, 5, 0, 0,217, 0, 0, 0,111, 0, 0, 0,
- 69, 0, 0, 0,236, 2, 0, 0, 23, 2, 0, 0,234, 2, 0, 0, 69, 0, 0, 0,109, 0, 0, 0,216, 0, 0, 0,217, 5, 0, 0,
-216, 0, 0, 0,218, 5, 0, 0,246, 0, 0, 0,219, 5, 0, 0, 23, 2, 0, 0,217, 5, 0, 0, 84, 0, 0, 0,235, 2, 0, 0,
- 23, 2, 0, 0,219, 5, 0, 0,246, 0, 0, 0,169, 0, 0, 0,246, 0, 0, 0,218, 5, 0, 0,216, 0, 0, 0,108, 0, 0, 0,
- 6, 0, 0, 0,168, 0, 0, 0, 92, 1, 0, 0,117, 1, 0, 0,135, 0, 0, 0,238, 2, 0, 0, 25, 2, 0, 0,220, 5, 0, 0,
- 25, 2, 0, 0,221, 5, 0, 0, 94, 1, 0, 0,222, 5, 0, 0, 92, 1, 0, 0,220, 5, 0, 0, 25, 0, 0, 0,116, 1, 0, 0,
- 92, 1, 0, 0,222, 5, 0, 0, 94, 1, 0, 0,120, 1, 0, 0, 94, 1, 0, 0,221, 5, 0, 0, 25, 2, 0, 0,239, 2, 0, 0,
-136, 0, 0, 0,121, 1, 0, 0, 26, 2, 0, 0,240, 2, 0, 0,136, 0, 0, 0,239, 2, 0, 0, 25, 2, 0, 0,223, 5, 0, 0,
- 25, 2, 0, 0,224, 5, 0, 0, 27, 2, 0, 0,225, 5, 0, 0, 26, 2, 0, 0,223, 5, 0, 0,137, 0, 0, 0,241, 2, 0, 0,
- 26, 2, 0, 0,225, 5, 0, 0, 27, 2, 0, 0,243, 2, 0, 0, 27, 2, 0, 0,224, 5, 0, 0, 25, 2, 0, 0,238, 2, 0, 0,
-135, 0, 0, 0,242, 2, 0, 0, 93, 1, 0, 0,118, 1, 0, 0, 33, 0, 0, 0,126, 1, 0, 0, 97, 1, 0, 0,226, 5, 0, 0,
- 97, 1, 0, 0,227, 5, 0, 0, 27, 2, 0, 0,228, 5, 0, 0, 93, 1, 0, 0,226, 5, 0, 0,135, 0, 0, 0,119, 1, 0, 0,
- 93, 1, 0, 0,228, 5, 0, 0, 27, 2, 0, 0,242, 2, 0, 0, 27, 2, 0, 0,227, 5, 0, 0, 97, 1, 0, 0,127, 1, 0, 0,
-137, 0, 0, 0,243, 2, 0, 0, 26, 2, 0, 0,241, 2, 0, 0,137, 0, 0, 0,125, 1, 0, 0, 96, 1, 0, 0,229, 5, 0, 0,
- 96, 1, 0, 0,230, 5, 0, 0, 95, 1, 0, 0,231, 5, 0, 0, 26, 2, 0, 0,229, 5, 0, 0,136, 0, 0, 0,240, 2, 0, 0,
- 26, 2, 0, 0,231, 5, 0, 0, 95, 1, 0, 0,123, 1, 0, 0, 95, 1, 0, 0,230, 5, 0, 0, 96, 1, 0, 0,124, 1, 0, 0,
- 26, 0, 0, 0,122, 1, 0, 0,220, 0, 0, 0,117, 0, 0, 0, 71, 0, 0, 0,244, 2, 0, 0, 28, 2, 0, 0,232, 5, 0, 0,
- 28, 2, 0, 0,233, 5, 0, 0,248, 0, 0, 0,234, 5, 0, 0,220, 0, 0, 0,232, 5, 0, 0, 7, 0, 0, 0,116, 0, 0, 0,
-220, 0, 0, 0,234, 5, 0, 0,248, 0, 0, 0,172, 0, 0, 0,248, 0, 0, 0,233, 5, 0, 0, 28, 2, 0, 0,245, 2, 0, 0,
- 85, 0, 0, 0,173, 0, 0, 0, 29, 2, 0, 0,246, 2, 0, 0, 85, 0, 0, 0,245, 2, 0, 0, 28, 2, 0, 0,235, 5, 0, 0,
- 28, 2, 0, 0,236, 5, 0, 0, 30, 2, 0, 0,237, 5, 0, 0, 29, 2, 0, 0,235, 5, 0, 0,137, 0, 0, 0,247, 2, 0, 0,
- 29, 2, 0, 0,237, 5, 0, 0, 30, 2, 0, 0,249, 2, 0, 0, 30, 2, 0, 0,236, 5, 0, 0, 28, 2, 0, 0,244, 2, 0, 0,
- 71, 0, 0, 0,248, 2, 0, 0,221, 0, 0, 0,118, 0, 0, 0, 26, 0, 0, 0,124, 1, 0, 0, 96, 1, 0, 0,238, 5, 0, 0,
- 96, 1, 0, 0,239, 5, 0, 0, 30, 2, 0, 0,240, 5, 0, 0,221, 0, 0, 0,238, 5, 0, 0, 71, 0, 0, 0,119, 0, 0, 0,
-221, 0, 0, 0,240, 5, 0, 0, 30, 2, 0, 0,248, 2, 0, 0, 30, 2, 0, 0,239, 5, 0, 0, 96, 1, 0, 0,125, 1, 0, 0,
-137, 0, 0, 0,249, 2, 0, 0, 29, 2, 0, 0,247, 2, 0, 0,137, 0, 0, 0,127, 1, 0, 0, 97, 1, 0, 0,241, 5, 0, 0,
- 97, 1, 0, 0,242, 5, 0, 0,249, 0, 0, 0,243, 5, 0, 0, 29, 2, 0, 0,241, 5, 0, 0, 85, 0, 0, 0,246, 2, 0, 0,
- 29, 2, 0, 0,243, 5, 0, 0,249, 0, 0, 0,175, 0, 0, 0,249, 0, 0, 0,242, 5, 0, 0, 97, 1, 0, 0,126, 1, 0, 0,
- 33, 0, 0, 0,174, 0, 0, 0,219, 0, 0, 0,115, 0, 0, 0, 70, 0, 0, 0,250, 2, 0, 0, 31, 2, 0, 0,244, 5, 0, 0,
- 31, 2, 0, 0,245, 5, 0, 0, 95, 1, 0, 0,246, 5, 0, 0,219, 0, 0, 0,244, 5, 0, 0, 26, 0, 0, 0,114, 0, 0, 0,
-219, 0, 0, 0,246, 5, 0, 0, 95, 1, 0, 0,122, 1, 0, 0, 95, 1, 0, 0,245, 5, 0, 0, 31, 2, 0, 0,251, 2, 0, 0,
-136, 0, 0, 0,123, 1, 0, 0, 32, 2, 0, 0,253, 2, 0, 0,136, 0, 0, 0,251, 2, 0, 0, 31, 2, 0, 0,247, 5, 0, 0,
- 31, 2, 0, 0,248, 5, 0, 0, 33, 2, 0, 0,249, 5, 0, 0, 32, 2, 0, 0,247, 5, 0, 0, 68, 0, 0, 0,252, 2, 0, 0,
- 32, 2, 0, 0,249, 5, 0, 0, 33, 2, 0, 0,254, 2, 0, 0, 33, 2, 0, 0,248, 5, 0, 0, 31, 2, 0, 0,250, 2, 0, 0,
- 70, 0, 0, 0,255, 2, 0, 0,218, 0, 0, 0,112, 0, 0, 0, 2, 0, 0, 0,104, 0, 0, 0,214, 0, 0, 0,250, 5, 0, 0,
-214, 0, 0, 0,251, 5, 0, 0, 33, 2, 0, 0,252, 5, 0, 0,218, 0, 0, 0,250, 5, 0, 0, 70, 0, 0, 0,113, 0, 0, 0,
-218, 0, 0, 0,252, 5, 0, 0, 33, 2, 0, 0,255, 2, 0, 0, 33, 2, 0, 0,251, 5, 0, 0,214, 0, 0, 0,105, 0, 0, 0,
- 68, 0, 0, 0,254, 2, 0, 0, 32, 2, 0, 0,252, 2, 0, 0, 68, 0, 0, 0,107, 0, 0, 0,215, 0, 0, 0,253, 5, 0, 0,
-215, 0, 0, 0,254, 5, 0, 0, 94, 1, 0, 0,255, 5, 0, 0, 32, 2, 0, 0,253, 5, 0, 0,136, 0, 0, 0,253, 2, 0, 0,
- 32, 2, 0, 0,255, 5, 0, 0, 94, 1, 0, 0,121, 1, 0, 0, 94, 1, 0, 0,254, 5, 0, 0,215, 0, 0, 0,106, 0, 0, 0,
- 25, 0, 0, 0,120, 1, 0, 0, 99, 1, 0, 0,131, 1, 0, 0,138, 0, 0, 0, 1, 3, 0, 0, 34, 2, 0, 0, 0, 6, 0, 0,
- 34, 2, 0, 0, 1, 6, 0, 0,251, 0, 0, 0, 2, 6, 0, 0, 99, 1, 0, 0, 0, 6, 0, 0, 34, 0, 0, 0,130, 1, 0, 0,
- 99, 1, 0, 0, 2, 6, 0, 0,251, 0, 0, 0,178, 0, 0, 0,251, 0, 0, 0, 1, 6, 0, 0, 34, 2, 0, 0, 0, 3, 0, 0,
- 86, 0, 0, 0,179, 0, 0, 0, 35, 2, 0, 0, 3, 3, 0, 0, 86, 0, 0, 0, 0, 3, 0, 0, 34, 2, 0, 0, 3, 6, 0, 0,
- 34, 2, 0, 0, 4, 6, 0, 0, 36, 2, 0, 0, 5, 6, 0, 0, 35, 2, 0, 0, 3, 6, 0, 0, 73, 0, 0, 0, 2, 3, 0, 0,
- 35, 2, 0, 0, 5, 6, 0, 0, 36, 2, 0, 0, 4, 3, 0, 0, 36, 2, 0, 0, 4, 6, 0, 0, 34, 2, 0, 0, 1, 3, 0, 0,
-138, 0, 0, 0, 5, 3, 0, 0, 98, 1, 0, 0,128, 1, 0, 0, 27, 0, 0, 0,126, 0, 0, 0,225, 0, 0, 0, 6, 6, 0, 0,
-225, 0, 0, 0, 7, 6, 0, 0, 36, 2, 0, 0, 8, 6, 0, 0, 98, 1, 0, 0, 6, 6, 0, 0,138, 0, 0, 0,129, 1, 0, 0,
- 98, 1, 0, 0, 8, 6, 0, 0, 36, 2, 0, 0, 5, 3, 0, 0, 36, 2, 0, 0, 7, 6, 0, 0,225, 0, 0, 0,127, 0, 0, 0,
- 73, 0, 0, 0, 4, 3, 0, 0, 35, 2, 0, 0, 2, 3, 0, 0, 73, 0, 0, 0,125, 0, 0, 0,224, 0, 0, 0, 9, 6, 0, 0,
-224, 0, 0, 0, 10, 6, 0, 0,250, 0, 0, 0, 11, 6, 0, 0, 35, 2, 0, 0, 9, 6, 0, 0, 86, 0, 0, 0, 3, 3, 0, 0,
- 35, 2, 0, 0, 11, 6, 0, 0,250, 0, 0, 0,177, 0, 0, 0,250, 0, 0, 0, 10, 6, 0, 0,224, 0, 0, 0,124, 0, 0, 0,
- 7, 0, 0, 0,176, 0, 0, 0, 98, 1, 0, 0,129, 1, 0, 0,138, 0, 0, 0, 6, 3, 0, 0, 37, 2, 0, 0, 12, 6, 0, 0,
- 37, 2, 0, 0, 13, 6, 0, 0,100, 1, 0, 0, 14, 6, 0, 0, 98, 1, 0, 0, 12, 6, 0, 0, 27, 0, 0, 0,128, 1, 0, 0,
- 98, 1, 0, 0, 14, 6, 0, 0,100, 1, 0, 0,132, 1, 0, 0,100, 1, 0, 0, 13, 6, 0, 0, 37, 2, 0, 0, 7, 3, 0, 0,
-139, 0, 0, 0,133, 1, 0, 0, 38, 2, 0, 0, 8, 3, 0, 0,139, 0, 0, 0, 7, 3, 0, 0, 37, 2, 0, 0, 15, 6, 0, 0,
- 37, 2, 0, 0, 16, 6, 0, 0, 39, 2, 0, 0, 17, 6, 0, 0, 38, 2, 0, 0, 15, 6, 0, 0,140, 0, 0, 0, 9, 3, 0, 0,
- 38, 2, 0, 0, 17, 6, 0, 0, 39, 2, 0, 0, 11, 3, 0, 0, 39, 2, 0, 0, 16, 6, 0, 0, 37, 2, 0, 0, 6, 3, 0, 0,
-138, 0, 0, 0, 10, 3, 0, 0, 99, 1, 0, 0,130, 1, 0, 0, 34, 0, 0, 0,138, 1, 0, 0,103, 1, 0, 0, 18, 6, 0, 0,
-103, 1, 0, 0, 19, 6, 0, 0, 39, 2, 0, 0, 20, 6, 0, 0, 99, 1, 0, 0, 18, 6, 0, 0,138, 0, 0, 0,131, 1, 0, 0,
- 99, 1, 0, 0, 20, 6, 0, 0, 39, 2, 0, 0, 10, 3, 0, 0, 39, 2, 0, 0, 19, 6, 0, 0,103, 1, 0, 0,139, 1, 0, 0,
-140, 0, 0, 0, 11, 3, 0, 0, 38, 2, 0, 0, 9, 3, 0, 0,140, 0, 0, 0,137, 1, 0, 0,102, 1, 0, 0, 21, 6, 0, 0,
-102, 1, 0, 0, 22, 6, 0, 0,101, 1, 0, 0, 23, 6, 0, 0, 38, 2, 0, 0, 21, 6, 0, 0,139, 0, 0, 0, 8, 3, 0, 0,
- 38, 2, 0, 0, 23, 6, 0, 0,101, 1, 0, 0,135, 1, 0, 0,101, 1, 0, 0, 22, 6, 0, 0,102, 1, 0, 0,136, 1, 0, 0,
- 28, 0, 0, 0,134, 1, 0, 0,228, 0, 0, 0,133, 0, 0, 0, 75, 0, 0, 0, 12, 3, 0, 0, 40, 2, 0, 0, 24, 6, 0, 0,
- 40, 2, 0, 0, 25, 6, 0, 0,252, 0, 0, 0, 26, 6, 0, 0,228, 0, 0, 0, 24, 6, 0, 0, 8, 0, 0, 0,132, 0, 0, 0,
-228, 0, 0, 0, 26, 6, 0, 0,252, 0, 0, 0,180, 0, 0, 0,252, 0, 0, 0, 25, 6, 0, 0, 40, 2, 0, 0, 13, 3, 0, 0,
- 87, 0, 0, 0,181, 0, 0, 0, 41, 2, 0, 0, 14, 3, 0, 0, 87, 0, 0, 0, 13, 3, 0, 0, 40, 2, 0, 0, 27, 6, 0, 0,
- 40, 2, 0, 0, 28, 6, 0, 0, 42, 2, 0, 0, 29, 6, 0, 0, 41, 2, 0, 0, 27, 6, 0, 0,140, 0, 0, 0, 15, 3, 0, 0,
- 41, 2, 0, 0, 29, 6, 0, 0, 42, 2, 0, 0, 17, 3, 0, 0, 42, 2, 0, 0, 28, 6, 0, 0, 40, 2, 0, 0, 12, 3, 0, 0,
- 75, 0, 0, 0, 16, 3, 0, 0,229, 0, 0, 0,134, 0, 0, 0, 28, 0, 0, 0,136, 1, 0, 0,102, 1, 0, 0, 30, 6, 0, 0,
-102, 1, 0, 0, 31, 6, 0, 0, 42, 2, 0, 0, 32, 6, 0, 0,229, 0, 0, 0, 30, 6, 0, 0, 75, 0, 0, 0,135, 0, 0, 0,
-229, 0, 0, 0, 32, 6, 0, 0, 42, 2, 0, 0, 16, 3, 0, 0, 42, 2, 0, 0, 31, 6, 0, 0,102, 1, 0, 0,137, 1, 0, 0,
-140, 0, 0, 0, 17, 3, 0, 0, 41, 2, 0, 0, 15, 3, 0, 0,140, 0, 0, 0,139, 1, 0, 0,103, 1, 0, 0, 33, 6, 0, 0,
-103, 1, 0, 0, 34, 6, 0, 0,253, 0, 0, 0, 35, 6, 0, 0, 41, 2, 0, 0, 33, 6, 0, 0, 87, 0, 0, 0, 14, 3, 0, 0,
- 41, 2, 0, 0, 35, 6, 0, 0,253, 0, 0, 0,183, 0, 0, 0,253, 0, 0, 0, 34, 6, 0, 0,103, 1, 0, 0,138, 1, 0, 0,
- 34, 0, 0, 0,182, 0, 0, 0,227, 0, 0, 0,131, 0, 0, 0, 74, 0, 0, 0, 18, 3, 0, 0, 43, 2, 0, 0, 36, 6, 0, 0,
- 43, 2, 0, 0, 37, 6, 0, 0,101, 1, 0, 0, 38, 6, 0, 0,227, 0, 0, 0, 36, 6, 0, 0, 28, 0, 0, 0,130, 0, 0, 0,
-227, 0, 0, 0, 38, 6, 0, 0,101, 1, 0, 0,134, 1, 0, 0,101, 1, 0, 0, 37, 6, 0, 0, 43, 2, 0, 0, 19, 3, 0, 0,
-139, 0, 0, 0,135, 1, 0, 0, 44, 2, 0, 0, 21, 3, 0, 0,139, 0, 0, 0, 19, 3, 0, 0, 43, 2, 0, 0, 39, 6, 0, 0,
- 43, 2, 0, 0, 40, 6, 0, 0, 45, 2, 0, 0, 41, 6, 0, 0, 44, 2, 0, 0, 39, 6, 0, 0, 72, 0, 0, 0, 20, 3, 0, 0,
- 44, 2, 0, 0, 41, 6, 0, 0, 45, 2, 0, 0, 22, 3, 0, 0, 45, 2, 0, 0, 40, 6, 0, 0, 43, 2, 0, 0, 18, 3, 0, 0,
- 74, 0, 0, 0, 23, 3, 0, 0,226, 0, 0, 0,128, 0, 0, 0, 3, 0, 0, 0,120, 0, 0, 0,222, 0, 0, 0, 42, 6, 0, 0,
-222, 0, 0, 0, 43, 6, 0, 0, 45, 2, 0, 0, 44, 6, 0, 0,226, 0, 0, 0, 42, 6, 0, 0, 74, 0, 0, 0,129, 0, 0, 0,
-226, 0, 0, 0, 44, 6, 0, 0, 45, 2, 0, 0, 23, 3, 0, 0, 45, 2, 0, 0, 43, 6, 0, 0,222, 0, 0, 0,121, 0, 0, 0,
- 72, 0, 0, 0, 22, 3, 0, 0, 44, 2, 0, 0, 20, 3, 0, 0, 72, 0, 0, 0,123, 0, 0, 0,223, 0, 0, 0, 45, 6, 0, 0,
-223, 0, 0, 0, 46, 6, 0, 0,100, 1, 0, 0, 47, 6, 0, 0, 44, 2, 0, 0, 45, 6, 0, 0,139, 0, 0, 0, 21, 3, 0, 0,
- 44, 2, 0, 0, 47, 6, 0, 0,100, 1, 0, 0,133, 1, 0, 0,100, 1, 0, 0, 46, 6, 0, 0,223, 0, 0, 0,122, 0, 0, 0,
- 27, 0, 0, 0,132, 1, 0, 0,105, 1, 0, 0,143, 1, 0, 0,141, 0, 0, 0, 25, 3, 0, 0, 46, 2, 0, 0, 48, 6, 0, 0,
- 46, 2, 0, 0, 49, 6, 0, 0,255, 0, 0, 0, 50, 6, 0, 0,105, 1, 0, 0, 48, 6, 0, 0, 35, 0, 0, 0,142, 1, 0, 0,
-105, 1, 0, 0, 50, 6, 0, 0,255, 0, 0, 0,186, 0, 0, 0,255, 0, 0, 0, 49, 6, 0, 0, 46, 2, 0, 0, 24, 3, 0, 0,
- 88, 0, 0, 0,187, 0, 0, 0, 47, 2, 0, 0, 27, 3, 0, 0, 88, 0, 0, 0, 24, 3, 0, 0, 46, 2, 0, 0, 51, 6, 0, 0,
- 46, 2, 0, 0, 52, 6, 0, 0, 48, 2, 0, 0, 53, 6, 0, 0, 47, 2, 0, 0, 51, 6, 0, 0, 77, 0, 0, 0, 26, 3, 0, 0,
- 47, 2, 0, 0, 53, 6, 0, 0, 48, 2, 0, 0, 28, 3, 0, 0, 48, 2, 0, 0, 52, 6, 0, 0, 46, 2, 0, 0, 25, 3, 0, 0,
-141, 0, 0, 0, 29, 3, 0, 0,104, 1, 0, 0,140, 1, 0, 0, 29, 0, 0, 0,142, 0, 0, 0,233, 0, 0, 0, 54, 6, 0, 0,
-233, 0, 0, 0, 55, 6, 0, 0, 48, 2, 0, 0, 56, 6, 0, 0,104, 1, 0, 0, 54, 6, 0, 0,141, 0, 0, 0,141, 1, 0, 0,
-104, 1, 0, 0, 56, 6, 0, 0, 48, 2, 0, 0, 29, 3, 0, 0, 48, 2, 0, 0, 55, 6, 0, 0,233, 0, 0, 0,143, 0, 0, 0,
- 77, 0, 0, 0, 28, 3, 0, 0, 47, 2, 0, 0, 26, 3, 0, 0, 77, 0, 0, 0,141, 0, 0, 0,232, 0, 0, 0, 57, 6, 0, 0,
-232, 0, 0, 0, 58, 6, 0, 0,254, 0, 0, 0, 59, 6, 0, 0, 47, 2, 0, 0, 57, 6, 0, 0, 88, 0, 0, 0, 27, 3, 0, 0,
- 47, 2, 0, 0, 59, 6, 0, 0,254, 0, 0, 0,185, 0, 0, 0,254, 0, 0, 0, 58, 6, 0, 0,232, 0, 0, 0,140, 0, 0, 0,
- 8, 0, 0, 0,184, 0, 0, 0,104, 1, 0, 0,141, 1, 0, 0,141, 0, 0, 0, 30, 3, 0, 0, 49, 2, 0, 0, 60, 6, 0, 0,
- 49, 2, 0, 0, 61, 6, 0, 0,106, 1, 0, 0, 62, 6, 0, 0,104, 1, 0, 0, 60, 6, 0, 0, 29, 0, 0, 0,140, 1, 0, 0,
-104, 1, 0, 0, 62, 6, 0, 0,106, 1, 0, 0,144, 1, 0, 0,106, 1, 0, 0, 61, 6, 0, 0, 49, 2, 0, 0, 31, 3, 0, 0,
-142, 0, 0, 0,145, 1, 0, 0, 50, 2, 0, 0, 32, 3, 0, 0,142, 0, 0, 0, 31, 3, 0, 0, 49, 2, 0, 0, 63, 6, 0, 0,
- 49, 2, 0, 0, 64, 6, 0, 0, 51, 2, 0, 0, 65, 6, 0, 0, 50, 2, 0, 0, 63, 6, 0, 0,143, 0, 0, 0, 33, 3, 0, 0,
- 50, 2, 0, 0, 65, 6, 0, 0, 51, 2, 0, 0, 35, 3, 0, 0, 51, 2, 0, 0, 64, 6, 0, 0, 49, 2, 0, 0, 30, 3, 0, 0,
-141, 0, 0, 0, 34, 3, 0, 0,105, 1, 0, 0,142, 1, 0, 0, 35, 0, 0, 0,150, 1, 0, 0,109, 1, 0, 0, 66, 6, 0, 0,
-109, 1, 0, 0, 67, 6, 0, 0, 51, 2, 0, 0, 68, 6, 0, 0,105, 1, 0, 0, 66, 6, 0, 0,141, 0, 0, 0,143, 1, 0, 0,
-105, 1, 0, 0, 68, 6, 0, 0, 51, 2, 0, 0, 34, 3, 0, 0, 51, 2, 0, 0, 67, 6, 0, 0,109, 1, 0, 0,151, 1, 0, 0,
-143, 0, 0, 0, 35, 3, 0, 0, 50, 2, 0, 0, 33, 3, 0, 0,143, 0, 0, 0,149, 1, 0, 0,108, 1, 0, 0, 69, 6, 0, 0,
-108, 1, 0, 0, 70, 6, 0, 0,107, 1, 0, 0, 71, 6, 0, 0, 50, 2, 0, 0, 69, 6, 0, 0,142, 0, 0, 0, 32, 3, 0, 0,
- 50, 2, 0, 0, 71, 6, 0, 0,107, 1, 0, 0,147, 1, 0, 0,107, 1, 0, 0, 70, 6, 0, 0,108, 1, 0, 0,148, 1, 0, 0,
- 30, 0, 0, 0,146, 1, 0, 0,236, 0, 0, 0,149, 0, 0, 0, 79, 0, 0, 0, 36, 3, 0, 0, 52, 2, 0, 0, 72, 6, 0, 0,
- 52, 2, 0, 0, 73, 6, 0, 0, 0, 1, 0, 0, 74, 6, 0, 0,236, 0, 0, 0, 72, 6, 0, 0, 9, 0, 0, 0,148, 0, 0, 0,
-236, 0, 0, 0, 74, 6, 0, 0, 0, 1, 0, 0,188, 0, 0, 0, 0, 1, 0, 0, 73, 6, 0, 0, 52, 2, 0, 0, 37, 3, 0, 0,
- 89, 0, 0, 0,189, 0, 0, 0, 53, 2, 0, 0, 38, 3, 0, 0, 89, 0, 0, 0, 37, 3, 0, 0, 52, 2, 0, 0, 75, 6, 0, 0,
- 52, 2, 0, 0, 76, 6, 0, 0, 54, 2, 0, 0, 77, 6, 0, 0, 53, 2, 0, 0, 75, 6, 0, 0,143, 0, 0, 0, 39, 3, 0, 0,
- 53, 2, 0, 0, 77, 6, 0, 0, 54, 2, 0, 0, 41, 3, 0, 0, 54, 2, 0, 0, 76, 6, 0, 0, 52, 2, 0, 0, 36, 3, 0, 0,
- 79, 0, 0, 0, 40, 3, 0, 0,237, 0, 0, 0,150, 0, 0, 0, 30, 0, 0, 0,148, 1, 0, 0,108, 1, 0, 0, 78, 6, 0, 0,
-108, 1, 0, 0, 79, 6, 0, 0, 54, 2, 0, 0, 80, 6, 0, 0,237, 0, 0, 0, 78, 6, 0, 0, 79, 0, 0, 0,151, 0, 0, 0,
-237, 0, 0, 0, 80, 6, 0, 0, 54, 2, 0, 0, 40, 3, 0, 0, 54, 2, 0, 0, 79, 6, 0, 0,108, 1, 0, 0,149, 1, 0, 0,
-143, 0, 0, 0, 41, 3, 0, 0, 53, 2, 0, 0, 39, 3, 0, 0,143, 0, 0, 0,151, 1, 0, 0,109, 1, 0, 0, 81, 6, 0, 0,
-109, 1, 0, 0, 82, 6, 0, 0, 1, 1, 0, 0, 83, 6, 0, 0, 53, 2, 0, 0, 81, 6, 0, 0, 89, 0, 0, 0, 38, 3, 0, 0,
- 53, 2, 0, 0, 83, 6, 0, 0, 1, 1, 0, 0,191, 0, 0, 0, 1, 1, 0, 0, 82, 6, 0, 0,109, 1, 0, 0,150, 1, 0, 0,
- 35, 0, 0, 0,190, 0, 0, 0,235, 0, 0, 0,147, 0, 0, 0, 78, 0, 0, 0, 42, 3, 0, 0, 55, 2, 0, 0, 84, 6, 0, 0,
- 55, 2, 0, 0, 85, 6, 0, 0,107, 1, 0, 0, 86, 6, 0, 0,235, 0, 0, 0, 84, 6, 0, 0, 30, 0, 0, 0,146, 0, 0, 0,
-235, 0, 0, 0, 86, 6, 0, 0,107, 1, 0, 0,146, 1, 0, 0,107, 1, 0, 0, 85, 6, 0, 0, 55, 2, 0, 0, 43, 3, 0, 0,
-142, 0, 0, 0,147, 1, 0, 0, 56, 2, 0, 0, 45, 3, 0, 0,142, 0, 0, 0, 43, 3, 0, 0, 55, 2, 0, 0, 87, 6, 0, 0,
- 55, 2, 0, 0, 88, 6, 0, 0, 57, 2, 0, 0, 89, 6, 0, 0, 56, 2, 0, 0, 87, 6, 0, 0, 76, 0, 0, 0, 44, 3, 0, 0,
- 56, 2, 0, 0, 89, 6, 0, 0, 57, 2, 0, 0, 46, 3, 0, 0, 57, 2, 0, 0, 88, 6, 0, 0, 55, 2, 0, 0, 42, 3, 0, 0,
- 78, 0, 0, 0, 47, 3, 0, 0,234, 0, 0, 0,144, 0, 0, 0, 4, 0, 0, 0,136, 0, 0, 0,230, 0, 0, 0, 90, 6, 0, 0,
-230, 0, 0, 0, 91, 6, 0, 0, 57, 2, 0, 0, 92, 6, 0, 0,234, 0, 0, 0, 90, 6, 0, 0, 78, 0, 0, 0,145, 0, 0, 0,
-234, 0, 0, 0, 92, 6, 0, 0, 57, 2, 0, 0, 47, 3, 0, 0, 57, 2, 0, 0, 91, 6, 0, 0,230, 0, 0, 0,137, 0, 0, 0,
- 76, 0, 0, 0, 46, 3, 0, 0, 56, 2, 0, 0, 44, 3, 0, 0, 76, 0, 0, 0,139, 0, 0, 0,231, 0, 0, 0, 93, 6, 0, 0,
-231, 0, 0, 0, 94, 6, 0, 0,106, 1, 0, 0, 95, 6, 0, 0, 56, 2, 0, 0, 93, 6, 0, 0,142, 0, 0, 0, 45, 3, 0, 0,
- 56, 2, 0, 0, 95, 6, 0, 0,106, 1, 0, 0,145, 1, 0, 0,106, 1, 0, 0, 94, 6, 0, 0,231, 0, 0, 0,138, 0, 0, 0,
- 29, 0, 0, 0,144, 1, 0, 0,111, 1, 0, 0,155, 1, 0, 0,144, 0, 0, 0, 49, 3, 0, 0, 58, 2, 0, 0, 96, 6, 0, 0,
- 58, 2, 0, 0, 97, 6, 0, 0, 3, 1, 0, 0, 98, 6, 0, 0,111, 1, 0, 0, 96, 6, 0, 0, 36, 0, 0, 0,154, 1, 0, 0,
-111, 1, 0, 0, 98, 6, 0, 0, 3, 1, 0, 0,194, 0, 0, 0, 3, 1, 0, 0, 97, 6, 0, 0, 58, 2, 0, 0, 48, 3, 0, 0,
- 90, 0, 0, 0,195, 0, 0, 0, 59, 2, 0, 0, 51, 3, 0, 0, 90, 0, 0, 0, 48, 3, 0, 0, 58, 2, 0, 0, 99, 6, 0, 0,
- 58, 2, 0, 0,100, 6, 0, 0, 60, 2, 0, 0,101, 6, 0, 0, 59, 2, 0, 0, 99, 6, 0, 0, 81, 0, 0, 0, 50, 3, 0, 0,
- 59, 2, 0, 0,101, 6, 0, 0, 60, 2, 0, 0, 52, 3, 0, 0, 60, 2, 0, 0,100, 6, 0, 0, 58, 2, 0, 0, 49, 3, 0, 0,
-144, 0, 0, 0, 53, 3, 0, 0,110, 1, 0, 0,152, 1, 0, 0, 31, 0, 0, 0,158, 0, 0, 0,241, 0, 0, 0,102, 6, 0, 0,
-241, 0, 0, 0,103, 6, 0, 0, 60, 2, 0, 0,104, 6, 0, 0,110, 1, 0, 0,102, 6, 0, 0,144, 0, 0, 0,153, 1, 0, 0,
-110, 1, 0, 0,104, 6, 0, 0, 60, 2, 0, 0, 53, 3, 0, 0, 60, 2, 0, 0,103, 6, 0, 0,241, 0, 0, 0,159, 0, 0, 0,
- 81, 0, 0, 0, 52, 3, 0, 0, 59, 2, 0, 0, 50, 3, 0, 0, 81, 0, 0, 0,157, 0, 0, 0,240, 0, 0, 0,105, 6, 0, 0,
-240, 0, 0, 0,106, 6, 0, 0, 2, 1, 0, 0,107, 6, 0, 0, 59, 2, 0, 0,105, 6, 0, 0, 90, 0, 0, 0, 51, 3, 0, 0,
- 59, 2, 0, 0,107, 6, 0, 0, 2, 1, 0, 0,193, 0, 0, 0, 2, 1, 0, 0,106, 6, 0, 0,240, 0, 0, 0,156, 0, 0, 0,
- 9, 0, 0, 0,192, 0, 0, 0,110, 1, 0, 0,153, 1, 0, 0,144, 0, 0, 0, 54, 3, 0, 0, 61, 2, 0, 0,108, 6, 0, 0,
- 61, 2, 0, 0,109, 6, 0, 0,113, 1, 0, 0,110, 6, 0, 0,110, 1, 0, 0,108, 6, 0, 0, 31, 0, 0, 0,152, 1, 0, 0,
-110, 1, 0, 0,110, 6, 0, 0,113, 1, 0, 0,158, 1, 0, 0,113, 1, 0, 0,109, 6, 0, 0, 61, 2, 0, 0, 55, 3, 0, 0,
-145, 0, 0, 0,159, 1, 0, 0, 62, 2, 0, 0, 56, 3, 0, 0,145, 0, 0, 0, 55, 3, 0, 0, 61, 2, 0, 0,111, 6, 0, 0,
- 61, 2, 0, 0,112, 6, 0, 0, 63, 2, 0, 0,113, 6, 0, 0, 62, 2, 0, 0,111, 6, 0, 0,146, 0, 0, 0, 57, 3, 0, 0,
- 62, 2, 0, 0,113, 6, 0, 0, 63, 2, 0, 0, 59, 3, 0, 0, 63, 2, 0, 0,112, 6, 0, 0, 61, 2, 0, 0, 54, 3, 0, 0,
-144, 0, 0, 0, 58, 3, 0, 0,111, 1, 0, 0,154, 1, 0, 0, 36, 0, 0, 0,162, 1, 0, 0,115, 1, 0, 0,114, 6, 0, 0,
-115, 1, 0, 0,115, 6, 0, 0, 63, 2, 0, 0,116, 6, 0, 0,111, 1, 0, 0,114, 6, 0, 0,144, 0, 0, 0,155, 1, 0, 0,
-111, 1, 0, 0,116, 6, 0, 0, 63, 2, 0, 0, 58, 3, 0, 0, 63, 2, 0, 0,115, 6, 0, 0,115, 1, 0, 0,163, 1, 0, 0,
-146, 0, 0, 0, 59, 3, 0, 0, 62, 2, 0, 0, 57, 3, 0, 0,146, 0, 0, 0,161, 1, 0, 0,114, 1, 0, 0,117, 6, 0, 0,
-114, 1, 0, 0,118, 6, 0, 0,112, 1, 0, 0,119, 6, 0, 0, 62, 2, 0, 0,117, 6, 0, 0,145, 0, 0, 0, 56, 3, 0, 0,
- 62, 2, 0, 0,119, 6, 0, 0,112, 1, 0, 0,157, 1, 0, 0,112, 1, 0, 0,118, 6, 0, 0,114, 1, 0, 0,160, 1, 0, 0,
- 22, 0, 0, 0,156, 1, 0, 0,204, 0, 0, 0, 85, 0, 0, 0, 63, 0, 0, 0, 60, 3, 0, 0, 64, 2, 0, 0,120, 6, 0, 0,
- 64, 2, 0, 0,121, 6, 0, 0, 4, 1, 0, 0,122, 6, 0, 0,204, 0, 0, 0,120, 6, 0, 0, 10, 0, 0, 0, 84, 0, 0, 0,
-204, 0, 0, 0,122, 6, 0, 0, 4, 1, 0, 0,196, 0, 0, 0, 4, 1, 0, 0,121, 6, 0, 0, 64, 2, 0, 0, 61, 3, 0, 0,
- 91, 0, 0, 0,197, 0, 0, 0, 65, 2, 0, 0, 62, 3, 0, 0, 91, 0, 0, 0, 61, 3, 0, 0, 64, 2, 0, 0,123, 6, 0, 0,
- 64, 2, 0, 0,124, 6, 0, 0, 66, 2, 0, 0,125, 6, 0, 0, 65, 2, 0, 0,123, 6, 0, 0,146, 0, 0, 0, 63, 3, 0, 0,
- 65, 2, 0, 0,125, 6, 0, 0, 66, 2, 0, 0, 65, 3, 0, 0, 66, 2, 0, 0,124, 6, 0, 0, 64, 2, 0, 0, 60, 3, 0, 0,
- 63, 0, 0, 0, 64, 3, 0, 0,205, 0, 0, 0, 86, 0, 0, 0, 22, 0, 0, 0,160, 1, 0, 0,114, 1, 0, 0,126, 6, 0, 0,
-114, 1, 0, 0,127, 6, 0, 0, 66, 2, 0, 0,128, 6, 0, 0,205, 0, 0, 0,126, 6, 0, 0, 63, 0, 0, 0, 87, 0, 0, 0,
-205, 0, 0, 0,128, 6, 0, 0, 66, 2, 0, 0, 64, 3, 0, 0, 66, 2, 0, 0,127, 6, 0, 0,114, 1, 0, 0,161, 1, 0, 0,
-146, 0, 0, 0, 65, 3, 0, 0, 65, 2, 0, 0, 63, 3, 0, 0,146, 0, 0, 0,163, 1, 0, 0,115, 1, 0, 0,129, 6, 0, 0,
-115, 1, 0, 0,130, 6, 0, 0, 5, 1, 0, 0,131, 6, 0, 0, 65, 2, 0, 0,129, 6, 0, 0, 91, 0, 0, 0, 62, 3, 0, 0,
- 65, 2, 0, 0,131, 6, 0, 0, 5, 1, 0, 0,199, 0, 0, 0, 5, 1, 0, 0,130, 6, 0, 0,115, 1, 0, 0,162, 1, 0, 0,
- 36, 0, 0, 0,198, 0, 0, 0,203, 0, 0, 0, 83, 0, 0, 0, 62, 0, 0, 0, 66, 3, 0, 0, 67, 2, 0, 0,132, 6, 0, 0,
- 67, 2, 0, 0,133, 6, 0, 0,112, 1, 0, 0,134, 6, 0, 0,203, 0, 0, 0,132, 6, 0, 0, 22, 0, 0, 0, 82, 0, 0, 0,
-203, 0, 0, 0,134, 6, 0, 0,112, 1, 0, 0,156, 1, 0, 0,112, 1, 0, 0,133, 6, 0, 0, 67, 2, 0, 0, 67, 3, 0, 0,
-145, 0, 0, 0,157, 1, 0, 0, 68, 2, 0, 0, 69, 3, 0, 0,145, 0, 0, 0, 67, 3, 0, 0, 67, 2, 0, 0,135, 6, 0, 0,
- 67, 2, 0, 0,136, 6, 0, 0, 69, 2, 0, 0,137, 6, 0, 0, 68, 2, 0, 0,135, 6, 0, 0, 80, 0, 0, 0, 68, 3, 0, 0,
- 68, 2, 0, 0,137, 6, 0, 0, 69, 2, 0, 0, 71, 3, 0, 0, 69, 2, 0, 0,136, 6, 0, 0, 67, 2, 0, 0, 66, 3, 0, 0,
- 62, 0, 0, 0, 70, 3, 0, 0,202, 0, 0, 0, 80, 0, 0, 0, 5, 0, 0, 0,152, 0, 0, 0,238, 0, 0, 0,138, 6, 0, 0,
-238, 0, 0, 0,139, 6, 0, 0, 69, 2, 0, 0,140, 6, 0, 0,202, 0, 0, 0,138, 6, 0, 0, 62, 0, 0, 0, 81, 0, 0, 0,
-202, 0, 0, 0,140, 6, 0, 0, 69, 2, 0, 0, 70, 3, 0, 0, 69, 2, 0, 0,139, 6, 0, 0,238, 0, 0, 0,153, 0, 0, 0,
- 80, 0, 0, 0, 71, 3, 0, 0, 68, 2, 0, 0, 68, 3, 0, 0, 80, 0, 0, 0,155, 0, 0, 0,239, 0, 0, 0,141, 6, 0, 0,
-239, 0, 0, 0,142, 6, 0, 0,113, 1, 0, 0,143, 6, 0, 0, 68, 2, 0, 0,141, 6, 0, 0,145, 0, 0, 0, 69, 3, 0, 0,
- 68, 2, 0, 0,143, 6, 0, 0,113, 1, 0, 0,159, 1, 0, 0,113, 1, 0, 0,142, 6, 0, 0,239, 0, 0, 0,154, 0, 0, 0,
- 31, 0, 0, 0,158, 1, 0, 0, 70, 2, 0, 0, 73, 3, 0, 0,147, 0, 0, 0,167, 1, 0, 0,117, 1, 0, 0,144, 6, 0, 0,
-117, 1, 0, 0,145, 6, 0, 0, 11, 1, 0, 0,146, 6, 0, 0, 70, 2, 0, 0,144, 6, 0, 0, 94, 0, 0, 0, 72, 3, 0, 0,
- 70, 2, 0, 0,146, 6, 0, 0, 11, 1, 0, 0,211, 0, 0, 0, 11, 1, 0, 0,145, 6, 0, 0,117, 1, 0, 0,166, 1, 0, 0,
- 38, 0, 0, 0,210, 0, 0, 0, 70, 2, 0, 0, 72, 3, 0, 0, 94, 0, 0, 0, 75, 3, 0, 0, 71, 2, 0, 0,147, 6, 0, 0,
- 71, 2, 0, 0,148, 6, 0, 0, 72, 2, 0, 0,149, 6, 0, 0, 70, 2, 0, 0,147, 6, 0, 0,147, 0, 0, 0, 73, 3, 0, 0,
- 70, 2, 0, 0,149, 6, 0, 0, 72, 2, 0, 0, 77, 3, 0, 0, 72, 2, 0, 0,148, 6, 0, 0, 71, 2, 0, 0, 74, 3, 0, 0,
- 82, 0, 0, 0, 76, 3, 0, 0,243, 0, 0, 0,162, 0, 0, 0, 32, 0, 0, 0,164, 1, 0, 0,116, 1, 0, 0,150, 6, 0, 0,
-116, 1, 0, 0,151, 6, 0, 0, 72, 2, 0, 0,152, 6, 0, 0,243, 0, 0, 0,150, 6, 0, 0, 82, 0, 0, 0,163, 0, 0, 0,
-243, 0, 0, 0,152, 6, 0, 0, 72, 2, 0, 0, 76, 3, 0, 0, 72, 2, 0, 0,151, 6, 0, 0,116, 1, 0, 0,165, 1, 0, 0,
-147, 0, 0, 0, 77, 3, 0, 0,242, 0, 0, 0,161, 0, 0, 0, 82, 0, 0, 0, 74, 3, 0, 0, 71, 2, 0, 0,153, 6, 0, 0,
- 71, 2, 0, 0,154, 6, 0, 0, 10, 1, 0, 0,155, 6, 0, 0,242, 0, 0, 0,153, 6, 0, 0, 6, 0, 0, 0,160, 0, 0, 0,
-242, 0, 0, 0,155, 6, 0, 0, 10, 1, 0, 0,208, 0, 0, 0, 10, 1, 0, 0,154, 6, 0, 0, 71, 2, 0, 0, 75, 3, 0, 0,
- 94, 0, 0, 0,209, 0, 0, 0, 73, 2, 0, 0, 78, 3, 0, 0,147, 0, 0, 0,165, 1, 0, 0,116, 1, 0, 0,156, 6, 0, 0,
-116, 1, 0, 0,157, 6, 0, 0,118, 1, 0, 0,158, 6, 0, 0, 73, 2, 0, 0,156, 6, 0, 0,148, 0, 0, 0, 79, 3, 0, 0,
- 73, 2, 0, 0,158, 6, 0, 0,118, 1, 0, 0,169, 1, 0, 0,118, 1, 0, 0,157, 6, 0, 0,116, 1, 0, 0,164, 1, 0, 0,
- 32, 0, 0, 0,168, 1, 0, 0, 73, 2, 0, 0, 79, 3, 0, 0,148, 0, 0, 0, 80, 3, 0, 0, 74, 2, 0, 0,159, 6, 0, 0,
- 74, 2, 0, 0,160, 6, 0, 0, 75, 2, 0, 0,161, 6, 0, 0, 73, 2, 0, 0,159, 6, 0, 0,147, 0, 0, 0, 78, 3, 0, 0,
- 73, 2, 0, 0,161, 6, 0, 0, 75, 2, 0, 0, 82, 3, 0, 0, 75, 2, 0, 0,160, 6, 0, 0, 74, 2, 0, 0, 81, 3, 0, 0,
-149, 0, 0, 0, 83, 3, 0, 0,121, 1, 0, 0,174, 1, 0, 0, 38, 0, 0, 0,166, 1, 0, 0,117, 1, 0, 0,162, 6, 0, 0,
-117, 1, 0, 0,163, 6, 0, 0, 75, 2, 0, 0,164, 6, 0, 0,121, 1, 0, 0,162, 6, 0, 0,149, 0, 0, 0,175, 1, 0, 0,
-121, 1, 0, 0,164, 6, 0, 0, 75, 2, 0, 0, 83, 3, 0, 0, 75, 2, 0, 0,163, 6, 0, 0,117, 1, 0, 0,167, 1, 0, 0,
-147, 0, 0, 0, 82, 3, 0, 0,120, 1, 0, 0,173, 1, 0, 0,149, 0, 0, 0, 81, 3, 0, 0, 74, 2, 0, 0,165, 6, 0, 0,
- 74, 2, 0, 0,166, 6, 0, 0,119, 1, 0, 0,167, 6, 0, 0,120, 1, 0, 0,165, 6, 0, 0, 37, 0, 0, 0,172, 1, 0, 0,
-120, 1, 0, 0,167, 6, 0, 0,119, 1, 0, 0,170, 1, 0, 0,119, 1, 0, 0,166, 6, 0, 0, 74, 2, 0, 0, 80, 3, 0, 0,
-148, 0, 0, 0,171, 1, 0, 0, 76, 2, 0, 0, 84, 3, 0, 0, 93, 0, 0, 0,205, 0, 0, 0, 8, 1, 0, 0,168, 6, 0, 0,
- 8, 1, 0, 0,169, 6, 0, 0, 12, 1, 0, 0,170, 6, 0, 0, 76, 2, 0, 0,168, 6, 0, 0, 95, 0, 0, 0, 85, 3, 0, 0,
- 76, 2, 0, 0,170, 6, 0, 0, 12, 1, 0, 0,213, 0, 0, 0, 12, 1, 0, 0,169, 6, 0, 0, 8, 1, 0, 0,204, 0, 0, 0,
- 11, 0, 0, 0,212, 0, 0, 0, 76, 2, 0, 0, 85, 3, 0, 0, 95, 0, 0, 0, 86, 3, 0, 0, 77, 2, 0, 0,171, 6, 0, 0,
- 77, 2, 0, 0,172, 6, 0, 0, 78, 2, 0, 0,173, 6, 0, 0, 76, 2, 0, 0,171, 6, 0, 0, 93, 0, 0, 0, 84, 3, 0, 0,
- 76, 2, 0, 0,173, 6, 0, 0, 78, 2, 0, 0, 88, 3, 0, 0, 78, 2, 0, 0,172, 6, 0, 0, 77, 2, 0, 0, 87, 3, 0, 0,
-149, 0, 0, 0, 89, 3, 0, 0,120, 1, 0, 0,172, 1, 0, 0, 37, 0, 0, 0,206, 0, 0, 0, 9, 1, 0, 0,174, 6, 0, 0,
- 9, 1, 0, 0,175, 6, 0, 0, 78, 2, 0, 0,176, 6, 0, 0,120, 1, 0, 0,174, 6, 0, 0,149, 0, 0, 0,173, 1, 0, 0,
-120, 1, 0, 0,176, 6, 0, 0, 78, 2, 0, 0, 89, 3, 0, 0, 78, 2, 0, 0,175, 6, 0, 0, 9, 1, 0, 0,207, 0, 0, 0,
- 93, 0, 0, 0, 88, 3, 0, 0,121, 1, 0, 0,175, 1, 0, 0,149, 0, 0, 0, 87, 3, 0, 0, 77, 2, 0, 0,177, 6, 0, 0,
- 77, 2, 0, 0,178, 6, 0, 0, 13, 1, 0, 0,179, 6, 0, 0,121, 1, 0, 0,177, 6, 0, 0, 38, 0, 0, 0,174, 1, 0, 0,
-121, 1, 0, 0,179, 6, 0, 0, 13, 1, 0, 0,214, 0, 0, 0, 13, 1, 0, 0,178, 6, 0, 0, 77, 2, 0, 0, 86, 3, 0, 0,
- 95, 0, 0, 0,215, 0, 0, 0, 79, 2, 0, 0, 90, 3, 0, 0, 92, 0, 0, 0,203, 0, 0, 0, 7, 1, 0, 0,180, 6, 0, 0,
- 7, 1, 0, 0,181, 6, 0, 0,119, 1, 0, 0,182, 6, 0, 0, 79, 2, 0, 0,180, 6, 0, 0,148, 0, 0, 0, 91, 3, 0, 0,
- 79, 2, 0, 0,182, 6, 0, 0,119, 1, 0, 0,171, 1, 0, 0,119, 1, 0, 0,181, 6, 0, 0, 7, 1, 0, 0,202, 0, 0, 0,
- 37, 0, 0, 0,170, 1, 0, 0, 79, 2, 0, 0, 91, 3, 0, 0,148, 0, 0, 0, 93, 3, 0, 0, 80, 2, 0, 0,183, 6, 0, 0,
- 80, 2, 0, 0,184, 6, 0, 0, 81, 2, 0, 0,185, 6, 0, 0, 79, 2, 0, 0,183, 6, 0, 0, 92, 0, 0, 0, 90, 3, 0, 0,
- 79, 2, 0, 0,185, 6, 0, 0, 81, 2, 0, 0, 95, 3, 0, 0, 81, 2, 0, 0,184, 6, 0, 0, 80, 2, 0, 0, 92, 3, 0, 0,
- 83, 0, 0, 0, 94, 3, 0, 0,244, 0, 0, 0,164, 0, 0, 0, 10, 0, 0, 0,200, 0, 0, 0, 6, 1, 0, 0,186, 6, 0, 0,
- 6, 1, 0, 0,187, 6, 0, 0, 81, 2, 0, 0,188, 6, 0, 0,244, 0, 0, 0,186, 6, 0, 0, 83, 0, 0, 0,165, 0, 0, 0,
-244, 0, 0, 0,188, 6, 0, 0, 81, 2, 0, 0, 94, 3, 0, 0, 81, 2, 0, 0,187, 6, 0, 0, 6, 1, 0, 0,201, 0, 0, 0,
- 92, 0, 0, 0, 95, 3, 0, 0,245, 0, 0, 0,167, 0, 0, 0, 83, 0, 0, 0, 92, 3, 0, 0, 80, 2, 0, 0,189, 6, 0, 0,
- 80, 2, 0, 0,190, 6, 0, 0,118, 1, 0, 0,191, 6, 0, 0,245, 0, 0, 0,189, 6, 0, 0, 32, 0, 0, 0,166, 0, 0, 0,
-245, 0, 0, 0,191, 6, 0, 0,118, 1, 0, 0,168, 1, 0, 0,118, 1, 0, 0,190, 6, 0, 0, 80, 2, 0, 0, 93, 3, 0, 0,
-148, 0, 0, 0,169, 1, 0, 0, 82, 2, 0, 0, 97, 3, 0, 0,150, 0, 0, 0,179, 1, 0, 0,123, 1, 0, 0,192, 6, 0, 0,
-123, 1, 0, 0,193, 6, 0, 0, 15, 1, 0, 0,194, 6, 0, 0, 82, 2, 0, 0,192, 6, 0, 0, 96, 0, 0, 0, 96, 3, 0, 0,
- 82, 2, 0, 0,194, 6, 0, 0, 15, 1, 0, 0,219, 0, 0, 0, 15, 1, 0, 0,193, 6, 0, 0,123, 1, 0, 0,178, 1, 0, 0,
- 39, 0, 0, 0,218, 0, 0, 0, 82, 2, 0, 0, 96, 3, 0, 0, 96, 0, 0, 0, 99, 3, 0, 0, 83, 2, 0, 0,195, 6, 0, 0,
- 83, 2, 0, 0,196, 6, 0, 0, 84, 2, 0, 0,197, 6, 0, 0, 82, 2, 0, 0,195, 6, 0, 0,150, 0, 0, 0, 97, 3, 0, 0,
- 82, 2, 0, 0,197, 6, 0, 0, 84, 2, 0, 0,101, 3, 0, 0, 84, 2, 0, 0,196, 6, 0, 0, 83, 2, 0, 0, 98, 3, 0, 0,
- 85, 0, 0, 0,100, 3, 0, 0,249, 0, 0, 0,174, 0, 0, 0, 33, 0, 0, 0,176, 1, 0, 0,122, 1, 0, 0,198, 6, 0, 0,
-122, 1, 0, 0,199, 6, 0, 0, 84, 2, 0, 0,200, 6, 0, 0,249, 0, 0, 0,198, 6, 0, 0, 85, 0, 0, 0,175, 0, 0, 0,
-249, 0, 0, 0,200, 6, 0, 0, 84, 2, 0, 0,100, 3, 0, 0, 84, 2, 0, 0,199, 6, 0, 0,122, 1, 0, 0,177, 1, 0, 0,
-150, 0, 0, 0,101, 3, 0, 0,248, 0, 0, 0,173, 0, 0, 0, 85, 0, 0, 0, 98, 3, 0, 0, 83, 2, 0, 0,201, 6, 0, 0,
- 83, 2, 0, 0,202, 6, 0, 0, 14, 1, 0, 0,203, 6, 0, 0,248, 0, 0, 0,201, 6, 0, 0, 7, 0, 0, 0,172, 0, 0, 0,
-248, 0, 0, 0,203, 6, 0, 0, 14, 1, 0, 0,216, 0, 0, 0, 14, 1, 0, 0,202, 6, 0, 0, 83, 2, 0, 0, 99, 3, 0, 0,
- 96, 0, 0, 0,217, 0, 0, 0, 85, 2, 0, 0,102, 3, 0, 0,150, 0, 0, 0,177, 1, 0, 0,122, 1, 0, 0,204, 6, 0, 0,
-122, 1, 0, 0,205, 6, 0, 0,124, 1, 0, 0,206, 6, 0, 0, 85, 2, 0, 0,204, 6, 0, 0,151, 0, 0, 0,103, 3, 0, 0,
- 85, 2, 0, 0,206, 6, 0, 0,124, 1, 0, 0,181, 1, 0, 0,124, 1, 0, 0,205, 6, 0, 0,122, 1, 0, 0,176, 1, 0, 0,
- 33, 0, 0, 0,180, 1, 0, 0, 85, 2, 0, 0,103, 3, 0, 0,151, 0, 0, 0,104, 3, 0, 0, 86, 2, 0, 0,207, 6, 0, 0,
- 86, 2, 0, 0,208, 6, 0, 0, 87, 2, 0, 0,209, 6, 0, 0, 85, 2, 0, 0,207, 6, 0, 0,150, 0, 0, 0,102, 3, 0, 0,
- 85, 2, 0, 0,209, 6, 0, 0, 87, 2, 0, 0,106, 3, 0, 0, 87, 2, 0, 0,208, 6, 0, 0, 86, 2, 0, 0,105, 3, 0, 0,
-152, 0, 0, 0,107, 3, 0, 0,127, 1, 0, 0,186, 1, 0, 0, 39, 0, 0, 0,178, 1, 0, 0,123, 1, 0, 0,210, 6, 0, 0,
-123, 1, 0, 0,211, 6, 0, 0, 87, 2, 0, 0,212, 6, 0, 0,127, 1, 0, 0,210, 6, 0, 0,152, 0, 0, 0,187, 1, 0, 0,
-127, 1, 0, 0,212, 6, 0, 0, 87, 2, 0, 0,107, 3, 0, 0, 87, 2, 0, 0,211, 6, 0, 0,123, 1, 0, 0,179, 1, 0, 0,
-150, 0, 0, 0,106, 3, 0, 0,126, 1, 0, 0,185, 1, 0, 0,152, 0, 0, 0,105, 3, 0, 0, 86, 2, 0, 0,213, 6, 0, 0,
- 86, 2, 0, 0,214, 6, 0, 0,125, 1, 0, 0,215, 6, 0, 0,126, 1, 0, 0,213, 6, 0, 0, 38, 0, 0, 0,184, 1, 0, 0,
-126, 1, 0, 0,215, 6, 0, 0,125, 1, 0, 0,182, 1, 0, 0,125, 1, 0, 0,214, 6, 0, 0, 86, 2, 0, 0,104, 3, 0, 0,
-151, 0, 0, 0,183, 1, 0, 0, 88, 2, 0, 0,108, 3, 0, 0, 95, 0, 0, 0,213, 0, 0, 0, 12, 1, 0, 0,216, 6, 0, 0,
- 12, 1, 0, 0,217, 6, 0, 0, 16, 1, 0, 0,218, 6, 0, 0, 88, 2, 0, 0,216, 6, 0, 0, 97, 0, 0, 0,109, 3, 0, 0,
- 88, 2, 0, 0,218, 6, 0, 0, 16, 1, 0, 0,221, 0, 0, 0, 16, 1, 0, 0,217, 6, 0, 0, 12, 1, 0, 0,212, 0, 0, 0,
- 11, 0, 0, 0,220, 0, 0, 0, 88, 2, 0, 0,109, 3, 0, 0, 97, 0, 0, 0,110, 3, 0, 0, 89, 2, 0, 0,219, 6, 0, 0,
- 89, 2, 0, 0,220, 6, 0, 0, 90, 2, 0, 0,221, 6, 0, 0, 88, 2, 0, 0,219, 6, 0, 0, 95, 0, 0, 0,108, 3, 0, 0,
- 88, 2, 0, 0,221, 6, 0, 0, 90, 2, 0, 0,112, 3, 0, 0, 90, 2, 0, 0,220, 6, 0, 0, 89, 2, 0, 0,111, 3, 0, 0,
-152, 0, 0, 0,113, 3, 0, 0,126, 1, 0, 0,184, 1, 0, 0, 38, 0, 0, 0,214, 0, 0, 0, 13, 1, 0, 0,222, 6, 0, 0,
- 13, 1, 0, 0,223, 6, 0, 0, 90, 2, 0, 0,224, 6, 0, 0,126, 1, 0, 0,222, 6, 0, 0,152, 0, 0, 0,185, 1, 0, 0,
-126, 1, 0, 0,224, 6, 0, 0, 90, 2, 0, 0,113, 3, 0, 0, 90, 2, 0, 0,223, 6, 0, 0, 13, 1, 0, 0,215, 0, 0, 0,
- 95, 0, 0, 0,112, 3, 0, 0,127, 1, 0, 0,187, 1, 0, 0,152, 0, 0, 0,111, 3, 0, 0, 89, 2, 0, 0,225, 6, 0, 0,
- 89, 2, 0, 0,226, 6, 0, 0, 17, 1, 0, 0,227, 6, 0, 0,127, 1, 0, 0,225, 6, 0, 0, 39, 0, 0, 0,186, 1, 0, 0,
-127, 1, 0, 0,227, 6, 0, 0, 17, 1, 0, 0,222, 0, 0, 0, 17, 1, 0, 0,226, 6, 0, 0, 89, 2, 0, 0,110, 3, 0, 0,
- 97, 0, 0, 0,223, 0, 0, 0, 91, 2, 0, 0,114, 3, 0, 0, 94, 0, 0, 0,211, 0, 0, 0, 11, 1, 0, 0,228, 6, 0, 0,
- 11, 1, 0, 0,229, 6, 0, 0,125, 1, 0, 0,230, 6, 0, 0, 91, 2, 0, 0,228, 6, 0, 0,151, 0, 0, 0,115, 3, 0, 0,
- 91, 2, 0, 0,230, 6, 0, 0,125, 1, 0, 0,183, 1, 0, 0,125, 1, 0, 0,229, 6, 0, 0, 11, 1, 0, 0,210, 0, 0, 0,
- 38, 0, 0, 0,182, 1, 0, 0, 91, 2, 0, 0,115, 3, 0, 0,151, 0, 0, 0,117, 3, 0, 0, 92, 2, 0, 0,231, 6, 0, 0,
- 92, 2, 0, 0,232, 6, 0, 0, 93, 2, 0, 0,233, 6, 0, 0, 91, 2, 0, 0,231, 6, 0, 0, 94, 0, 0, 0,114, 3, 0, 0,
- 91, 2, 0, 0,233, 6, 0, 0, 93, 2, 0, 0,119, 3, 0, 0, 93, 2, 0, 0,232, 6, 0, 0, 92, 2, 0, 0,116, 3, 0, 0,
- 84, 0, 0, 0,118, 3, 0, 0,246, 0, 0, 0,168, 0, 0, 0, 6, 0, 0, 0,208, 0, 0, 0, 10, 1, 0, 0,234, 6, 0, 0,
- 10, 1, 0, 0,235, 6, 0, 0, 93, 2, 0, 0,236, 6, 0, 0,246, 0, 0, 0,234, 6, 0, 0, 84, 0, 0, 0,169, 0, 0, 0,
-246, 0, 0, 0,236, 6, 0, 0, 93, 2, 0, 0,118, 3, 0, 0, 93, 2, 0, 0,235, 6, 0, 0, 10, 1, 0, 0,209, 0, 0, 0,
- 94, 0, 0, 0,119, 3, 0, 0,247, 0, 0, 0,171, 0, 0, 0, 84, 0, 0, 0,116, 3, 0, 0, 92, 2, 0, 0,237, 6, 0, 0,
- 92, 2, 0, 0,238, 6, 0, 0,124, 1, 0, 0,239, 6, 0, 0,247, 0, 0, 0,237, 6, 0, 0, 33, 0, 0, 0,170, 0, 0, 0,
-247, 0, 0, 0,239, 6, 0, 0,124, 1, 0, 0,180, 1, 0, 0,124, 1, 0, 0,238, 6, 0, 0, 92, 2, 0, 0,117, 3, 0, 0,
-151, 0, 0, 0,181, 1, 0, 0, 94, 2, 0, 0,121, 3, 0, 0,153, 0, 0, 0,191, 1, 0, 0,129, 1, 0, 0,240, 6, 0, 0,
-129, 1, 0, 0,241, 6, 0, 0, 19, 1, 0, 0,242, 6, 0, 0, 94, 2, 0, 0,240, 6, 0, 0, 98, 0, 0, 0,120, 3, 0, 0,
- 94, 2, 0, 0,242, 6, 0, 0, 19, 1, 0, 0,227, 0, 0, 0, 19, 1, 0, 0,241, 6, 0, 0,129, 1, 0, 0,190, 1, 0, 0,
- 40, 0, 0, 0,226, 0, 0, 0, 94, 2, 0, 0,120, 3, 0, 0, 98, 0, 0, 0,123, 3, 0, 0, 95, 2, 0, 0,243, 6, 0, 0,
- 95, 2, 0, 0,244, 6, 0, 0, 96, 2, 0, 0,245, 6, 0, 0, 94, 2, 0, 0,243, 6, 0, 0,153, 0, 0, 0,121, 3, 0, 0,
- 94, 2, 0, 0,245, 6, 0, 0, 96, 2, 0, 0,125, 3, 0, 0, 96, 2, 0, 0,244, 6, 0, 0, 95, 2, 0, 0,122, 3, 0, 0,
- 87, 0, 0, 0,124, 3, 0, 0,253, 0, 0, 0,182, 0, 0, 0, 34, 0, 0, 0,188, 1, 0, 0,128, 1, 0, 0,246, 6, 0, 0,
-128, 1, 0, 0,247, 6, 0, 0, 96, 2, 0, 0,248, 6, 0, 0,253, 0, 0, 0,246, 6, 0, 0, 87, 0, 0, 0,183, 0, 0, 0,
-253, 0, 0, 0,248, 6, 0, 0, 96, 2, 0, 0,124, 3, 0, 0, 96, 2, 0, 0,247, 6, 0, 0,128, 1, 0, 0,189, 1, 0, 0,
-153, 0, 0, 0,125, 3, 0, 0,252, 0, 0, 0,181, 0, 0, 0, 87, 0, 0, 0,122, 3, 0, 0, 95, 2, 0, 0,249, 6, 0, 0,
- 95, 2, 0, 0,250, 6, 0, 0, 18, 1, 0, 0,251, 6, 0, 0,252, 0, 0, 0,249, 6, 0, 0, 8, 0, 0, 0,180, 0, 0, 0,
-252, 0, 0, 0,251, 6, 0, 0, 18, 1, 0, 0,224, 0, 0, 0, 18, 1, 0, 0,250, 6, 0, 0, 95, 2, 0, 0,123, 3, 0, 0,
- 98, 0, 0, 0,225, 0, 0, 0, 97, 2, 0, 0,126, 3, 0, 0,153, 0, 0, 0,189, 1, 0, 0,128, 1, 0, 0,252, 6, 0, 0,
-128, 1, 0, 0,253, 6, 0, 0,130, 1, 0, 0,254, 6, 0, 0, 97, 2, 0, 0,252, 6, 0, 0,154, 0, 0, 0,127, 3, 0, 0,
- 97, 2, 0, 0,254, 6, 0, 0,130, 1, 0, 0,193, 1, 0, 0,130, 1, 0, 0,253, 6, 0, 0,128, 1, 0, 0,188, 1, 0, 0,
- 34, 0, 0, 0,192, 1, 0, 0, 97, 2, 0, 0,127, 3, 0, 0,154, 0, 0, 0,128, 3, 0, 0, 98, 2, 0, 0,255, 6, 0, 0,
- 98, 2, 0, 0, 0, 7, 0, 0, 99, 2, 0, 0, 1, 7, 0, 0, 97, 2, 0, 0,255, 6, 0, 0,153, 0, 0, 0,126, 3, 0, 0,
- 97, 2, 0, 0, 1, 7, 0, 0, 99, 2, 0, 0,130, 3, 0, 0, 99, 2, 0, 0, 0, 7, 0, 0, 98, 2, 0, 0,129, 3, 0, 0,
-155, 0, 0, 0,131, 3, 0, 0,133, 1, 0, 0,198, 1, 0, 0, 40, 0, 0, 0,190, 1, 0, 0,129, 1, 0, 0, 2, 7, 0, 0,
-129, 1, 0, 0, 3, 7, 0, 0, 99, 2, 0, 0, 4, 7, 0, 0,133, 1, 0, 0, 2, 7, 0, 0,155, 0, 0, 0,199, 1, 0, 0,
-133, 1, 0, 0, 4, 7, 0, 0, 99, 2, 0, 0,131, 3, 0, 0, 99, 2, 0, 0, 3, 7, 0, 0,129, 1, 0, 0,191, 1, 0, 0,
-153, 0, 0, 0,130, 3, 0, 0,132, 1, 0, 0,197, 1, 0, 0,155, 0, 0, 0,129, 3, 0, 0, 98, 2, 0, 0, 5, 7, 0, 0,
- 98, 2, 0, 0, 6, 7, 0, 0,131, 1, 0, 0, 7, 7, 0, 0,132, 1, 0, 0, 5, 7, 0, 0, 39, 0, 0, 0,196, 1, 0, 0,
-132, 1, 0, 0, 7, 7, 0, 0,131, 1, 0, 0,194, 1, 0, 0,131, 1, 0, 0, 6, 7, 0, 0, 98, 2, 0, 0,128, 3, 0, 0,
-154, 0, 0, 0,195, 1, 0, 0,100, 2, 0, 0,132, 3, 0, 0, 97, 0, 0, 0,221, 0, 0, 0, 16, 1, 0, 0, 8, 7, 0, 0,
- 16, 1, 0, 0, 9, 7, 0, 0, 20, 1, 0, 0, 10, 7, 0, 0,100, 2, 0, 0, 8, 7, 0, 0, 99, 0, 0, 0,133, 3, 0, 0,
-100, 2, 0, 0, 10, 7, 0, 0, 20, 1, 0, 0,229, 0, 0, 0, 20, 1, 0, 0, 9, 7, 0, 0, 16, 1, 0, 0,220, 0, 0, 0,
- 11, 0, 0, 0,228, 0, 0, 0,100, 2, 0, 0,133, 3, 0, 0, 99, 0, 0, 0,134, 3, 0, 0,101, 2, 0, 0, 11, 7, 0, 0,
-101, 2, 0, 0, 12, 7, 0, 0,102, 2, 0, 0, 13, 7, 0, 0,100, 2, 0, 0, 11, 7, 0, 0, 97, 0, 0, 0,132, 3, 0, 0,
-100, 2, 0, 0, 13, 7, 0, 0,102, 2, 0, 0,136, 3, 0, 0,102, 2, 0, 0, 12, 7, 0, 0,101, 2, 0, 0,135, 3, 0, 0,
-155, 0, 0, 0,137, 3, 0, 0,132, 1, 0, 0,196, 1, 0, 0, 39, 0, 0, 0,222, 0, 0, 0, 17, 1, 0, 0, 14, 7, 0, 0,
- 17, 1, 0, 0, 15, 7, 0, 0,102, 2, 0, 0, 16, 7, 0, 0,132, 1, 0, 0, 14, 7, 0, 0,155, 0, 0, 0,197, 1, 0, 0,
-132, 1, 0, 0, 16, 7, 0, 0,102, 2, 0, 0,137, 3, 0, 0,102, 2, 0, 0, 15, 7, 0, 0, 17, 1, 0, 0,223, 0, 0, 0,
- 97, 0, 0, 0,136, 3, 0, 0,133, 1, 0, 0,199, 1, 0, 0,155, 0, 0, 0,135, 3, 0, 0,101, 2, 0, 0, 17, 7, 0, 0,
-101, 2, 0, 0, 18, 7, 0, 0, 21, 1, 0, 0, 19, 7, 0, 0,133, 1, 0, 0, 17, 7, 0, 0, 40, 0, 0, 0,198, 1, 0, 0,
-133, 1, 0, 0, 19, 7, 0, 0, 21, 1, 0, 0,230, 0, 0, 0, 21, 1, 0, 0, 18, 7, 0, 0,101, 2, 0, 0,134, 3, 0, 0,
- 99, 0, 0, 0,231, 0, 0, 0,103, 2, 0, 0,138, 3, 0, 0, 96, 0, 0, 0,219, 0, 0, 0, 15, 1, 0, 0, 20, 7, 0, 0,
- 15, 1, 0, 0, 21, 7, 0, 0,131, 1, 0, 0, 22, 7, 0, 0,103, 2, 0, 0, 20, 7, 0, 0,154, 0, 0, 0,139, 3, 0, 0,
-103, 2, 0, 0, 22, 7, 0, 0,131, 1, 0, 0,195, 1, 0, 0,131, 1, 0, 0, 21, 7, 0, 0, 15, 1, 0, 0,218, 0, 0, 0,
- 39, 0, 0, 0,194, 1, 0, 0,103, 2, 0, 0,139, 3, 0, 0,154, 0, 0, 0,141, 3, 0, 0,104, 2, 0, 0, 23, 7, 0, 0,
-104, 2, 0, 0, 24, 7, 0, 0,105, 2, 0, 0, 25, 7, 0, 0,103, 2, 0, 0, 23, 7, 0, 0, 96, 0, 0, 0,138, 3, 0, 0,
-103, 2, 0, 0, 25, 7, 0, 0,105, 2, 0, 0,143, 3, 0, 0,105, 2, 0, 0, 24, 7, 0, 0,104, 2, 0, 0,140, 3, 0, 0,
- 86, 0, 0, 0,142, 3, 0, 0,250, 0, 0, 0,176, 0, 0, 0, 7, 0, 0, 0,216, 0, 0, 0, 14, 1, 0, 0, 26, 7, 0, 0,
- 14, 1, 0, 0, 27, 7, 0, 0,105, 2, 0, 0, 28, 7, 0, 0,250, 0, 0, 0, 26, 7, 0, 0, 86, 0, 0, 0,177, 0, 0, 0,
-250, 0, 0, 0, 28, 7, 0, 0,105, 2, 0, 0,142, 3, 0, 0,105, 2, 0, 0, 27, 7, 0, 0, 14, 1, 0, 0,217, 0, 0, 0,
- 96, 0, 0, 0,143, 3, 0, 0,251, 0, 0, 0,179, 0, 0, 0, 86, 0, 0, 0,140, 3, 0, 0,104, 2, 0, 0, 29, 7, 0, 0,
-104, 2, 0, 0, 30, 7, 0, 0,130, 1, 0, 0, 31, 7, 0, 0,251, 0, 0, 0, 29, 7, 0, 0, 34, 0, 0, 0,178, 0, 0, 0,
-251, 0, 0, 0, 31, 7, 0, 0,130, 1, 0, 0,192, 1, 0, 0,130, 1, 0, 0, 30, 7, 0, 0,104, 2, 0, 0,141, 3, 0, 0,
-154, 0, 0, 0,193, 1, 0, 0,106, 2, 0, 0,145, 3, 0, 0,156, 0, 0, 0,203, 1, 0, 0,135, 1, 0, 0, 32, 7, 0, 0,
-135, 1, 0, 0, 33, 7, 0, 0, 23, 1, 0, 0, 34, 7, 0, 0,106, 2, 0, 0, 32, 7, 0, 0,100, 0, 0, 0,144, 3, 0, 0,
-106, 2, 0, 0, 34, 7, 0, 0, 23, 1, 0, 0,235, 0, 0, 0, 23, 1, 0, 0, 33, 7, 0, 0,135, 1, 0, 0,202, 1, 0, 0,
- 41, 0, 0, 0,234, 0, 0, 0,106, 2, 0, 0,144, 3, 0, 0,100, 0, 0, 0,147, 3, 0, 0,107, 2, 0, 0, 35, 7, 0, 0,
-107, 2, 0, 0, 36, 7, 0, 0,108, 2, 0, 0, 37, 7, 0, 0,106, 2, 0, 0, 35, 7, 0, 0,156, 0, 0, 0,145, 3, 0, 0,
-106, 2, 0, 0, 37, 7, 0, 0,108, 2, 0, 0,149, 3, 0, 0,108, 2, 0, 0, 36, 7, 0, 0,107, 2, 0, 0,146, 3, 0, 0,
- 89, 0, 0, 0,148, 3, 0, 0, 1, 1, 0, 0,190, 0, 0, 0, 35, 0, 0, 0,200, 1, 0, 0,134, 1, 0, 0, 38, 7, 0, 0,
-134, 1, 0, 0, 39, 7, 0, 0,108, 2, 0, 0, 40, 7, 0, 0, 1, 1, 0, 0, 38, 7, 0, 0, 89, 0, 0, 0,191, 0, 0, 0,
- 1, 1, 0, 0, 40, 7, 0, 0,108, 2, 0, 0,148, 3, 0, 0,108, 2, 0, 0, 39, 7, 0, 0,134, 1, 0, 0,201, 1, 0, 0,
-156, 0, 0, 0,149, 3, 0, 0, 0, 1, 0, 0,189, 0, 0, 0, 89, 0, 0, 0,146, 3, 0, 0,107, 2, 0, 0, 41, 7, 0, 0,
-107, 2, 0, 0, 42, 7, 0, 0, 22, 1, 0, 0, 43, 7, 0, 0, 0, 1, 0, 0, 41, 7, 0, 0, 9, 0, 0, 0,188, 0, 0, 0,
- 0, 1, 0, 0, 43, 7, 0, 0, 22, 1, 0, 0,232, 0, 0, 0, 22, 1, 0, 0, 42, 7, 0, 0,107, 2, 0, 0,147, 3, 0, 0,
-100, 0, 0, 0,233, 0, 0, 0,109, 2, 0, 0,150, 3, 0, 0,156, 0, 0, 0,201, 1, 0, 0,134, 1, 0, 0, 44, 7, 0, 0,
-134, 1, 0, 0, 45, 7, 0, 0,136, 1, 0, 0, 46, 7, 0, 0,109, 2, 0, 0, 44, 7, 0, 0,157, 0, 0, 0,151, 3, 0, 0,
-109, 2, 0, 0, 46, 7, 0, 0,136, 1, 0, 0,205, 1, 0, 0,136, 1, 0, 0, 45, 7, 0, 0,134, 1, 0, 0,200, 1, 0, 0,
- 35, 0, 0, 0,204, 1, 0, 0,109, 2, 0, 0,151, 3, 0, 0,157, 0, 0, 0,152, 3, 0, 0,110, 2, 0, 0, 47, 7, 0, 0,
-110, 2, 0, 0, 48, 7, 0, 0,111, 2, 0, 0, 49, 7, 0, 0,109, 2, 0, 0, 47, 7, 0, 0,156, 0, 0, 0,150, 3, 0, 0,
-109, 2, 0, 0, 49, 7, 0, 0,111, 2, 0, 0,154, 3, 0, 0,111, 2, 0, 0, 48, 7, 0, 0,110, 2, 0, 0,153, 3, 0, 0,
-158, 0, 0, 0,155, 3, 0, 0,139, 1, 0, 0,210, 1, 0, 0, 41, 0, 0, 0,202, 1, 0, 0,135, 1, 0, 0, 50, 7, 0, 0,
-135, 1, 0, 0, 51, 7, 0, 0,111, 2, 0, 0, 52, 7, 0, 0,139, 1, 0, 0, 50, 7, 0, 0,158, 0, 0, 0,211, 1, 0, 0,
-139, 1, 0, 0, 52, 7, 0, 0,111, 2, 0, 0,155, 3, 0, 0,111, 2, 0, 0, 51, 7, 0, 0,135, 1, 0, 0,203, 1, 0, 0,
-156, 0, 0, 0,154, 3, 0, 0,138, 1, 0, 0,209, 1, 0, 0,158, 0, 0, 0,153, 3, 0, 0,110, 2, 0, 0, 53, 7, 0, 0,
-110, 2, 0, 0, 54, 7, 0, 0,137, 1, 0, 0, 55, 7, 0, 0,138, 1, 0, 0, 53, 7, 0, 0, 40, 0, 0, 0,208, 1, 0, 0,
-138, 1, 0, 0, 55, 7, 0, 0,137, 1, 0, 0,206, 1, 0, 0,137, 1, 0, 0, 54, 7, 0, 0,110, 2, 0, 0,152, 3, 0, 0,
-157, 0, 0, 0,207, 1, 0, 0,112, 2, 0, 0,156, 3, 0, 0, 99, 0, 0, 0,229, 0, 0, 0, 20, 1, 0, 0, 56, 7, 0, 0,
- 20, 1, 0, 0, 57, 7, 0, 0, 24, 1, 0, 0, 58, 7, 0, 0,112, 2, 0, 0, 56, 7, 0, 0,101, 0, 0, 0,157, 3, 0, 0,
-112, 2, 0, 0, 58, 7, 0, 0, 24, 1, 0, 0,237, 0, 0, 0, 24, 1, 0, 0, 57, 7, 0, 0, 20, 1, 0, 0,228, 0, 0, 0,
- 11, 0, 0, 0,236, 0, 0, 0,112, 2, 0, 0,157, 3, 0, 0,101, 0, 0, 0,158, 3, 0, 0,113, 2, 0, 0, 59, 7, 0, 0,
-113, 2, 0, 0, 60, 7, 0, 0,114, 2, 0, 0, 61, 7, 0, 0,112, 2, 0, 0, 59, 7, 0, 0, 99, 0, 0, 0,156, 3, 0, 0,
-112, 2, 0, 0, 61, 7, 0, 0,114, 2, 0, 0,160, 3, 0, 0,114, 2, 0, 0, 60, 7, 0, 0,113, 2, 0, 0,159, 3, 0, 0,
-158, 0, 0, 0,161, 3, 0, 0,138, 1, 0, 0,208, 1, 0, 0, 40, 0, 0, 0,230, 0, 0, 0, 21, 1, 0, 0, 62, 7, 0, 0,
- 21, 1, 0, 0, 63, 7, 0, 0,114, 2, 0, 0, 64, 7, 0, 0,138, 1, 0, 0, 62, 7, 0, 0,158, 0, 0, 0,209, 1, 0, 0,
-138, 1, 0, 0, 64, 7, 0, 0,114, 2, 0, 0,161, 3, 0, 0,114, 2, 0, 0, 63, 7, 0, 0, 21, 1, 0, 0,231, 0, 0, 0,
- 99, 0, 0, 0,160, 3, 0, 0,139, 1, 0, 0,211, 1, 0, 0,158, 0, 0, 0,159, 3, 0, 0,113, 2, 0, 0, 65, 7, 0, 0,
-113, 2, 0, 0, 66, 7, 0, 0, 25, 1, 0, 0, 67, 7, 0, 0,139, 1, 0, 0, 65, 7, 0, 0, 41, 0, 0, 0,210, 1, 0, 0,
-139, 1, 0, 0, 67, 7, 0, 0, 25, 1, 0, 0,238, 0, 0, 0, 25, 1, 0, 0, 66, 7, 0, 0,113, 2, 0, 0,158, 3, 0, 0,
-101, 0, 0, 0,239, 0, 0, 0,115, 2, 0, 0,162, 3, 0, 0, 98, 0, 0, 0,227, 0, 0, 0, 19, 1, 0, 0, 68, 7, 0, 0,
- 19, 1, 0, 0, 69, 7, 0, 0,137, 1, 0, 0, 70, 7, 0, 0,115, 2, 0, 0, 68, 7, 0, 0,157, 0, 0, 0,163, 3, 0, 0,
-115, 2, 0, 0, 70, 7, 0, 0,137, 1, 0, 0,207, 1, 0, 0,137, 1, 0, 0, 69, 7, 0, 0, 19, 1, 0, 0,226, 0, 0, 0,
- 40, 0, 0, 0,206, 1, 0, 0,115, 2, 0, 0,163, 3, 0, 0,157, 0, 0, 0,165, 3, 0, 0,116, 2, 0, 0, 71, 7, 0, 0,
-116, 2, 0, 0, 72, 7, 0, 0,117, 2, 0, 0, 73, 7, 0, 0,115, 2, 0, 0, 71, 7, 0, 0, 98, 0, 0, 0,162, 3, 0, 0,
-115, 2, 0, 0, 73, 7, 0, 0,117, 2, 0, 0,167, 3, 0, 0,117, 2, 0, 0, 72, 7, 0, 0,116, 2, 0, 0,164, 3, 0, 0,
- 88, 0, 0, 0,166, 3, 0, 0,254, 0, 0, 0,184, 0, 0, 0, 8, 0, 0, 0,224, 0, 0, 0, 18, 1, 0, 0, 74, 7, 0, 0,
- 18, 1, 0, 0, 75, 7, 0, 0,117, 2, 0, 0, 76, 7, 0, 0,254, 0, 0, 0, 74, 7, 0, 0, 88, 0, 0, 0,185, 0, 0, 0,
-254, 0, 0, 0, 76, 7, 0, 0,117, 2, 0, 0,166, 3, 0, 0,117, 2, 0, 0, 75, 7, 0, 0, 18, 1, 0, 0,225, 0, 0, 0,
- 98, 0, 0, 0,167, 3, 0, 0,255, 0, 0, 0,187, 0, 0, 0, 88, 0, 0, 0,164, 3, 0, 0,116, 2, 0, 0, 77, 7, 0, 0,
-116, 2, 0, 0, 78, 7, 0, 0,136, 1, 0, 0, 79, 7, 0, 0,255, 0, 0, 0, 77, 7, 0, 0, 35, 0, 0, 0,186, 0, 0, 0,
-255, 0, 0, 0, 79, 7, 0, 0,136, 1, 0, 0,204, 1, 0, 0,136, 1, 0, 0, 78, 7, 0, 0,116, 2, 0, 0,165, 3, 0, 0,
-157, 0, 0, 0,205, 1, 0, 0,118, 2, 0, 0,169, 3, 0, 0,159, 0, 0, 0,215, 1, 0, 0,141, 1, 0, 0, 80, 7, 0, 0,
-141, 1, 0, 0, 81, 7, 0, 0, 7, 1, 0, 0, 82, 7, 0, 0,118, 2, 0, 0, 80, 7, 0, 0, 92, 0, 0, 0,168, 3, 0, 0,
-118, 2, 0, 0, 82, 7, 0, 0, 7, 1, 0, 0,203, 0, 0, 0, 7, 1, 0, 0, 81, 7, 0, 0,141, 1, 0, 0,214, 1, 0, 0,
- 37, 0, 0, 0,202, 0, 0, 0,118, 2, 0, 0,168, 3, 0, 0, 92, 0, 0, 0,171, 3, 0, 0,119, 2, 0, 0, 83, 7, 0, 0,
-119, 2, 0, 0, 84, 7, 0, 0,120, 2, 0, 0, 85, 7, 0, 0,118, 2, 0, 0, 83, 7, 0, 0,159, 0, 0, 0,169, 3, 0, 0,
-118, 2, 0, 0, 85, 7, 0, 0,120, 2, 0, 0,173, 3, 0, 0,120, 2, 0, 0, 84, 7, 0, 0,119, 2, 0, 0,170, 3, 0, 0,
- 91, 0, 0, 0,172, 3, 0, 0, 5, 1, 0, 0,198, 0, 0, 0, 36, 0, 0, 0,212, 1, 0, 0,140, 1, 0, 0, 86, 7, 0, 0,
-140, 1, 0, 0, 87, 7, 0, 0,120, 2, 0, 0, 88, 7, 0, 0, 5, 1, 0, 0, 86, 7, 0, 0, 91, 0, 0, 0,199, 0, 0, 0,
- 5, 1, 0, 0, 88, 7, 0, 0,120, 2, 0, 0,172, 3, 0, 0,120, 2, 0, 0, 87, 7, 0, 0,140, 1, 0, 0,213, 1, 0, 0,
-159, 0, 0, 0,173, 3, 0, 0, 4, 1, 0, 0,197, 0, 0, 0, 91, 0, 0, 0,170, 3, 0, 0,119, 2, 0, 0, 89, 7, 0, 0,
-119, 2, 0, 0, 90, 7, 0, 0, 6, 1, 0, 0, 91, 7, 0, 0, 4, 1, 0, 0, 89, 7, 0, 0, 10, 0, 0, 0,196, 0, 0, 0,
- 4, 1, 0, 0, 91, 7, 0, 0, 6, 1, 0, 0,200, 0, 0, 0, 6, 1, 0, 0, 90, 7, 0, 0,119, 2, 0, 0,171, 3, 0, 0,
- 92, 0, 0, 0,201, 0, 0, 0,121, 2, 0, 0,174, 3, 0, 0,159, 0, 0, 0,213, 1, 0, 0,140, 1, 0, 0, 92, 7, 0, 0,
-140, 1, 0, 0, 93, 7, 0, 0,142, 1, 0, 0, 94, 7, 0, 0,121, 2, 0, 0, 92, 7, 0, 0,160, 0, 0, 0,175, 3, 0, 0,
-121, 2, 0, 0, 94, 7, 0, 0,142, 1, 0, 0,217, 1, 0, 0,142, 1, 0, 0, 93, 7, 0, 0,140, 1, 0, 0,212, 1, 0, 0,
- 36, 0, 0, 0,216, 1, 0, 0,121, 2, 0, 0,175, 3, 0, 0,160, 0, 0, 0,176, 3, 0, 0,122, 2, 0, 0, 95, 7, 0, 0,
-122, 2, 0, 0, 96, 7, 0, 0,123, 2, 0, 0, 97, 7, 0, 0,121, 2, 0, 0, 95, 7, 0, 0,159, 0, 0, 0,174, 3, 0, 0,
-121, 2, 0, 0, 97, 7, 0, 0,123, 2, 0, 0,178, 3, 0, 0,123, 2, 0, 0, 96, 7, 0, 0,122, 2, 0, 0,177, 3, 0, 0,
-161, 0, 0, 0,179, 3, 0, 0,144, 1, 0, 0,220, 1, 0, 0, 37, 0, 0, 0,214, 1, 0, 0,141, 1, 0, 0, 98, 7, 0, 0,
-141, 1, 0, 0, 99, 7, 0, 0,123, 2, 0, 0,100, 7, 0, 0,144, 1, 0, 0, 98, 7, 0, 0,161, 0, 0, 0,221, 1, 0, 0,
-144, 1, 0, 0,100, 7, 0, 0,123, 2, 0, 0,179, 3, 0, 0,123, 2, 0, 0, 99, 7, 0, 0,141, 1, 0, 0,215, 1, 0, 0,
-159, 0, 0, 0,178, 3, 0, 0,145, 1, 0, 0,223, 1, 0, 0,161, 0, 0, 0,177, 3, 0, 0,122, 2, 0, 0,101, 7, 0, 0,
-122, 2, 0, 0,102, 7, 0, 0,143, 1, 0, 0,103, 7, 0, 0,145, 1, 0, 0,101, 7, 0, 0, 41, 0, 0, 0,222, 1, 0, 0,
-145, 1, 0, 0,103, 7, 0, 0,143, 1, 0, 0,218, 1, 0, 0,143, 1, 0, 0,102, 7, 0, 0,122, 2, 0, 0,176, 3, 0, 0,
-160, 0, 0, 0,219, 1, 0, 0,124, 2, 0, 0,181, 3, 0, 0,101, 0, 0, 0,237, 0, 0, 0, 24, 1, 0, 0,104, 7, 0, 0,
- 24, 1, 0, 0,105, 7, 0, 0, 8, 1, 0, 0,106, 7, 0, 0,124, 2, 0, 0,104, 7, 0, 0, 93, 0, 0, 0,180, 3, 0, 0,
-124, 2, 0, 0,106, 7, 0, 0, 8, 1, 0, 0,205, 0, 0, 0, 8, 1, 0, 0,105, 7, 0, 0, 24, 1, 0, 0,236, 0, 0, 0,
- 11, 0, 0, 0,204, 0, 0, 0,124, 2, 0, 0,180, 3, 0, 0, 93, 0, 0, 0,182, 3, 0, 0,125, 2, 0, 0,107, 7, 0, 0,
-125, 2, 0, 0,108, 7, 0, 0,126, 2, 0, 0,109, 7, 0, 0,124, 2, 0, 0,107, 7, 0, 0,101, 0, 0, 0,181, 3, 0, 0,
-124, 2, 0, 0,109, 7, 0, 0,126, 2, 0, 0,184, 3, 0, 0,126, 2, 0, 0,108, 7, 0, 0,125, 2, 0, 0,183, 3, 0, 0,
-161, 0, 0, 0,185, 3, 0, 0,145, 1, 0, 0,222, 1, 0, 0, 41, 0, 0, 0,238, 0, 0, 0, 25, 1, 0, 0,110, 7, 0, 0,
- 25, 1, 0, 0,111, 7, 0, 0,126, 2, 0, 0,112, 7, 0, 0,145, 1, 0, 0,110, 7, 0, 0,161, 0, 0, 0,223, 1, 0, 0,
-145, 1, 0, 0,112, 7, 0, 0,126, 2, 0, 0,185, 3, 0, 0,126, 2, 0, 0,111, 7, 0, 0, 25, 1, 0, 0,239, 0, 0, 0,
-101, 0, 0, 0,184, 3, 0, 0,144, 1, 0, 0,221, 1, 0, 0,161, 0, 0, 0,183, 3, 0, 0,125, 2, 0, 0,113, 7, 0, 0,
-125, 2, 0, 0,114, 7, 0, 0, 9, 1, 0, 0,115, 7, 0, 0,144, 1, 0, 0,113, 7, 0, 0, 37, 0, 0, 0,220, 1, 0, 0,
-144, 1, 0, 0,115, 7, 0, 0, 9, 1, 0, 0,206, 0, 0, 0, 9, 1, 0, 0,114, 7, 0, 0,125, 2, 0, 0,182, 3, 0, 0,
- 93, 0, 0, 0,207, 0, 0, 0,127, 2, 0, 0,186, 3, 0, 0,100, 0, 0, 0,235, 0, 0, 0, 23, 1, 0, 0,116, 7, 0, 0,
- 23, 1, 0, 0,117, 7, 0, 0,143, 1, 0, 0,118, 7, 0, 0,127, 2, 0, 0,116, 7, 0, 0,160, 0, 0, 0,187, 3, 0, 0,
-127, 2, 0, 0,118, 7, 0, 0,143, 1, 0, 0,219, 1, 0, 0,143, 1, 0, 0,117, 7, 0, 0, 23, 1, 0, 0,234, 0, 0, 0,
- 41, 0, 0, 0,218, 1, 0, 0,127, 2, 0, 0,187, 3, 0, 0,160, 0, 0, 0,189, 3, 0, 0,128, 2, 0, 0,119, 7, 0, 0,
-128, 2, 0, 0,120, 7, 0, 0,129, 2, 0, 0,121, 7, 0, 0,127, 2, 0, 0,119, 7, 0, 0,100, 0, 0, 0,186, 3, 0, 0,
-127, 2, 0, 0,121, 7, 0, 0,129, 2, 0, 0,191, 3, 0, 0,129, 2, 0, 0,120, 7, 0, 0,128, 2, 0, 0,188, 3, 0, 0,
- 90, 0, 0, 0,190, 3, 0, 0, 2, 1, 0, 0,192, 0, 0, 0, 9, 0, 0, 0,232, 0, 0, 0, 22, 1, 0, 0,122, 7, 0, 0,
- 22, 1, 0, 0,123, 7, 0, 0,129, 2, 0, 0,124, 7, 0, 0, 2, 1, 0, 0,122, 7, 0, 0, 90, 0, 0, 0,193, 0, 0, 0,
- 2, 1, 0, 0,124, 7, 0, 0,129, 2, 0, 0,190, 3, 0, 0,129, 2, 0, 0,123, 7, 0, 0, 22, 1, 0, 0,233, 0, 0, 0,
-100, 0, 0, 0,191, 3, 0, 0, 3, 1, 0, 0,195, 0, 0, 0, 90, 0, 0, 0,188, 3, 0, 0,128, 2, 0, 0,125, 7, 0, 0,
-128, 2, 0, 0,126, 7, 0, 0,142, 1, 0, 0,127, 7, 0, 0, 3, 1, 0, 0,125, 7, 0, 0, 36, 0, 0, 0,194, 0, 0, 0,
- 3, 1, 0, 0,127, 7, 0, 0,142, 1, 0, 0,216, 1, 0, 0,142, 1, 0, 0,126, 7, 0, 0,128, 2, 0, 0,189, 3, 0, 0,
-160, 0, 0, 0,217, 1, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0, 72, 35,196, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 85, 86, 84,101,120, 0, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120, 58,200, 4, 0, 0, 0, 0, 25, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,104,138,195, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 80, 0, 0,120, 58,200, 4, 0, 0, 0, 0, 60, 0, 0, 0, 0, 5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 0, 60, 0, 0,104,138,195, 4, 0, 0, 0, 0, 58, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 6, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 9, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 12, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 15, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 18, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 21, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 24, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 27, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 30, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 33, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 36, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 39, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 42, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 45, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 48, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 51, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 54, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 57, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 60, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 63, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 66, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 69, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 72, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 75, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 78, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 81, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 84, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 87, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 90, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 93, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 96, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 99, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,102, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,105, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,108, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,111, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-114, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,117, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,120, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,123, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,126, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,129, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,132, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,135, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-138, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,141, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,144, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,147, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,150, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,153, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,156, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,159, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-162, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,165, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,168, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,171, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,174, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,177, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,180, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,183, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-186, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,189, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,192, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,195, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,198, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,201, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,204, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,207, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-210, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,213, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,216, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,219, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,222, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,225, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,228, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,231, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-234, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,237, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,240, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,243, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,246, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,249, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,252, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,255, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 2, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 5, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 8, 1, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 11, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 14, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 17, 1, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 20, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 23, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 26, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 29, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 32, 1, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 35, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 38, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 41, 1, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 44, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 47, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 50, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 53, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 56, 1, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 59, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 62, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 65, 1, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 68, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 71, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 74, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 77, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 80, 1, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 83, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 86, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 89, 1, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 92, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 95, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 98, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,101, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,104, 1, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,107, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,110, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,113, 1, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,116, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,119, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-122, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,125, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,128, 1, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,131, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,134, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,137, 1, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,140, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,143, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-146, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,149, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,152, 1, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,155, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,158, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,161, 1, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,164, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,167, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-170, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,173, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,176, 1, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,179, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,182, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,185, 1, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,188, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,191, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-194, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,197, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,200, 1, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,203, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,206, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,209, 1, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,212, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,215, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-218, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,221, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,224, 1, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,227, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,230, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,233, 1, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,236, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,239, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-242, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,245, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,248, 1, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,251, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,254, 1, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 1, 2, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 4, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 7, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 10, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 13, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 16, 2, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 19, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 22, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 25, 2, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 28, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 31, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 34, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 37, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 40, 2, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 43, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 46, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 49, 2, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 52, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 55, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 58, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 61, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 64, 2, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 67, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 70, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 73, 2, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 76, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 79, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 82, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 85, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 88, 2, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 91, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 94, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 97, 2, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,100, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,103, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-106, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,109, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,112, 2, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,115, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,118, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,121, 2, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,124, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,127, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-130, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,133, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,136, 2, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,139, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,142, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,145, 2, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,148, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,151, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-154, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,157, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,160, 2, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,163, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,166, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,169, 2, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,172, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,175, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-178, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,181, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,184, 2, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,187, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,190, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,193, 2, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,196, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,199, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-202, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,205, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,208, 2, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,211, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,214, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,217, 2, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,220, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,223, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-226, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,229, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,232, 2, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,235, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,238, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,241, 2, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,244, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,247, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-250, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,253, 2, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 3, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 6, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 9, 3, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 12, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 15, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 18, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 21, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 24, 3, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 27, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 30, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 33, 3, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 36, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 39, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 42, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 45, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 48, 3, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 51, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 54, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 57, 3, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 60, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 63, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 66, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 69, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 72, 3, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 75, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 78, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 81, 3, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 84, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 87, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 90, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 93, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 96, 3, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 99, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,102, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,105, 3, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,108, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,111, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-114, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,117, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,120, 3, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,123, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,126, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,129, 3, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,132, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,135, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-138, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,141, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,144, 3, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,147, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,150, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,153, 3, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,156, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,159, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-162, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,165, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,168, 3, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,171, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,174, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,177, 3, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,180, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,183, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-186, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,189, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,192, 3, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,195, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,198, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,201, 3, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,204, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,207, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-210, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,213, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,216, 3, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,219, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,222, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,225, 3, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,228, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,231, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-234, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,237, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,240, 3, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,243, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,246, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,249, 3, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,252, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,255, 3, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 2, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 5, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 8, 4, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 11, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 14, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 17, 4, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 20, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 23, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 26, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 29, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 32, 4, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 35, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 38, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 41, 4, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 44, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 47, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 50, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 53, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 56, 4, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 59, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 62, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 65, 4, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 68, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 71, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 74, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 77, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 80, 4, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 83, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 86, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 89, 4, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 92, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 95, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 98, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,101, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,104, 4, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,107, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,110, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,113, 4, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,116, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,119, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-122, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,125, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,128, 4, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,131, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,134, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,137, 4, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,140, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,143, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-146, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,149, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,152, 4, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,155, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,158, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,161, 4, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,164, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,167, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-170, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,173, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,176, 4, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,179, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,182, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,185, 4, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,188, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,191, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-194, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,197, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,200, 4, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,203, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,206, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,209, 4, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,212, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,215, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-218, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,221, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,224, 4, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,227, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,230, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,233, 4, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,236, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,239, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-242, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,245, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,248, 4, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,251, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,254, 4, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 1, 5, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 4, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 7, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 10, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 13, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 16, 5, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 19, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 22, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 25, 5, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 28, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 31, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 34, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 37, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 40, 5, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 43, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 46, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 49, 5, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 52, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 55, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 58, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 61, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 64, 5, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 67, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 70, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 73, 5, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 76, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 79, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 82, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 85, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 88, 5, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 91, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 94, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 97, 5, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,100, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,103, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-106, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,109, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,112, 5, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,115, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,118, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,121, 5, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,124, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,127, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-130, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,133, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,136, 5, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,139, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,142, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,145, 5, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,148, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,151, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-154, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,157, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,160, 5, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,163, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,166, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,169, 5, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,172, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,175, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-178, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,181, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,184, 5, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,187, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,190, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,193, 5, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,196, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,199, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-202, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,205, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,208, 5, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,211, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,214, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,217, 5, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,220, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,223, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-226, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,229, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,232, 5, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,235, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,238, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,241, 5, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,244, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,247, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-250, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,253, 5, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0, 6, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 3, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 6, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 9, 6, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 12, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 15, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 18, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 21, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 24, 6, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 27, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 30, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 33, 6, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 36, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 39, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 42, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 45, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 48, 6, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 51, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 54, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 57, 6, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 60, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 63, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 66, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 69, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 72, 6, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 75, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 78, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 81, 6, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 84, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 87, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 90, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 93, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 96, 6, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 99, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,102, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,105, 6, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,108, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,111, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-114, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,117, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,120, 6, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,123, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,126, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,129, 6, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,132, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,135, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-138, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,141, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,144, 6, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,147, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,150, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,153, 6, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,156, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,159, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-162, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,165, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,168, 6, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,171, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,174, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,177, 6, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,180, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,183, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-186, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,189, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,192, 6, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,195, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,198, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,201, 6, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,204, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,207, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-210, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,213, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,216, 6, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,219, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,222, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,225, 6, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,228, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,231, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-234, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,237, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,240, 6, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,243, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,246, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,249, 6, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,252, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,255, 6, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 2, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 5, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 8, 7, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 11, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 14, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 17, 7, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 20, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 23, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 26, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 29, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 32, 7, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 35, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 38, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 41, 7, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 44, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 47, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 50, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 53, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 56, 7, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 59, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 62, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 65, 7, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 68, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 71, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 74, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 77, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 80, 7, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 83, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 86, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 89, 7, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 92, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 95, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 98, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,101, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,104, 7, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,107, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,110, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,113, 7, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,116, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,119, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-122, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,125, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,128, 7, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,131, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,134, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,137, 7, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,140, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,143, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-146, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,149, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,152, 7, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,155, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,158, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,161, 7, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,164, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,167, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-170, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,173, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,176, 7, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,179, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,182, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,185, 7, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,188, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,191, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-194, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,197, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,200, 7, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,203, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,206, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,209, 7, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,212, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,215, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-218, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,221, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,224, 7, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,227, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,230, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,233, 7, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,236, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,239, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-242, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,245, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,248, 7, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,251, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,254, 7, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 1, 8, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 4, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 7, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 10, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 13, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 16, 8, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 19, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 22, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 25, 8, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 28, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 31, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 34, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 37, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 40, 8, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 43, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 46, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 49, 8, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 52, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 55, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 58, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 61, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 64, 8, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 67, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 70, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 73, 8, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 76, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 79, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 82, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 85, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 88, 8, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 91, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 94, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 97, 8, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,100, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,103, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-106, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,109, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,112, 8, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,115, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,118, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,121, 8, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,124, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,127, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-130, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,133, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,136, 8, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,139, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,142, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,145, 8, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,148, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,151, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-154, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,157, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,160, 8, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,163, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,166, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,169, 8, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,172, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,175, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-178, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,181, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,184, 8, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,187, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,190, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,193, 8, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,196, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,199, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-202, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,205, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,208, 8, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,211, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,214, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,217, 8, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,220, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,223, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-226, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,229, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,232, 8, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,235, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,238, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,241, 8, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,244, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,247, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-250, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,253, 8, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0, 9, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 3, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 6, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 9, 9, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 12, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 15, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 18, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 21, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 24, 9, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 27, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 30, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 33, 9, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 36, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 39, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 42, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 45, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 48, 9, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 51, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 54, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 57, 9, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 60, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 63, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 66, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 69, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 72, 9, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 75, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 78, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 81, 9, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 84, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 87, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 90, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 93, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 96, 9, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 99, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,102, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,105, 9, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,108, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,111, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-114, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,117, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,120, 9, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,123, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,126, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,129, 9, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,132, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,135, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-138, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,141, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,144, 9, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,147, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,150, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,153, 9, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,156, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,159, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-162, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,165, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,168, 9, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,171, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,174, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,177, 9, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,180, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,183, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-186, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,189, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,192, 9, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,195, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,198, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,201, 9, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,204, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,207, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-210, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,213, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,216, 9, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,219, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,222, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,225, 9, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,228, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,231, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-234, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,237, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,240, 9, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,243, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,246, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,249, 9, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,252, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,255, 9, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 2, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 8, 10, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 11, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 14, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 17, 10, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 20, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 23, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 26, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 29, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 32, 10, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 35, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 38, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 41, 10, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 44, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 47, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 50, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 53, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 56, 10, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 59, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 62, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 65, 10, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 68, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 71, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 74, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 77, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 80, 10, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 83, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 86, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 89, 10, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 92, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 95, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 98, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,101, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,104, 10, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,107, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,110, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,113, 10, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,116, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,119, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-122, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,125, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,128, 10, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,131, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,134, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,137, 10, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,140, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,143, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-146, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,149, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,152, 10, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,155, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,158, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,161, 10, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,164, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,167, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-170, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,173, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,176, 10, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,179, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,182, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,185, 10, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,188, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,191, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-194, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,197, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,200, 10, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,203, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,206, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,209, 10, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,212, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,215, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-218, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,221, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,224, 10, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,227, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,230, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,233, 10, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,236, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,239, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-242, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,245, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,248, 10, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,251, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,254, 10, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 1, 11, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 4, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 7, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 10, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 13, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 16, 11, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 19, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 22, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 25, 11, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 28, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 31, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 34, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 37, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 40, 11, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 43, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 46, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 49, 11, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 52, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 55, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 58, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 61, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 64, 11, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 67, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 70, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 73, 11, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 76, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 79, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 82, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 85, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 88, 11, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 91, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 94, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 97, 11, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,100, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,103, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-106, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,109, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,112, 11, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,115, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,118, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,121, 11, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,124, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,127, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-130, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,133, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,136, 11, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,139, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,142, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,145, 11, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,148, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,151, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-154, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,157, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,160, 11, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,163, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,166, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,169, 11, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,172, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,175, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-178, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,181, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,184, 11, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,187, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,190, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,193, 11, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,196, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,199, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-202, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,205, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,208, 11, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,211, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,214, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,217, 11, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,220, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,223, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-226, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,229, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,232, 11, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,235, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,238, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,241, 11, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,244, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,247, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-250, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,253, 11, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0, 12, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 3, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 6, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 9, 12, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 12, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 15, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 18, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 21, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 24, 12, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 27, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 30, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 33, 12, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 36, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 39, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 42, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 45, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 48, 12, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 51, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 54, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 57, 12, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 60, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 63, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 66, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 69, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 72, 12, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 75, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 78, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 81, 12, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 84, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 87, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 90, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 93, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 96, 12, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 99, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,102, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,105, 12, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,108, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,111, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-114, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,117, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,120, 12, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,123, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,126, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,129, 12, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,132, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,135, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-138, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,141, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,144, 12, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,147, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,150, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,153, 12, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,156, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,159, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-162, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,165, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,168, 12, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,171, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,174, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,177, 12, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,180, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,183, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-186, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,189, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,192, 12, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,195, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,198, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,201, 12, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,204, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,207, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-210, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,213, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,216, 12, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,219, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,222, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,225, 12, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,228, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,231, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-234, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,237, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,240, 12, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,243, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,246, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,249, 12, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,252, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,255, 12, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 2, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 5, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 8, 13, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 11, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 14, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 17, 13, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 20, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 23, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 26, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 29, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 32, 13, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 35, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 38, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 41, 13, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 44, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 47, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 50, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 53, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 56, 13, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 59, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 62, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 65, 13, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 68, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 71, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 74, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 77, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 80, 13, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 83, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 86, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 89, 13, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 92, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 95, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 98, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,101, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,104, 13, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,107, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,110, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,113, 13, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,116, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,119, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-122, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,125, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,128, 13, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,131, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,134, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,137, 13, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,140, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,143, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-146, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,149, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,152, 13, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,155, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,158, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,161, 13, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,164, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,167, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-170, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,173, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,176, 13, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,179, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,182, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,185, 13, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,188, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,191, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-194, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,197, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,200, 13, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,203, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,206, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,209, 13, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,212, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,215, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-218, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,221, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,224, 13, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,227, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,230, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,233, 13, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,236, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,239, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-242, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,245, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,248, 13, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,251, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,254, 13, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 1, 14, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 4, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 7, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 10, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 13, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 16, 14, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 19, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 22, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 25, 14, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 28, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 31, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 34, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 37, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 40, 14, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 43, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 46, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 49, 14, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 52, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 55, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 58, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 61, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 64, 14, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 67, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 70, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 73, 14, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0, 76, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 79, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
- 82, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 85, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 88, 14, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0, 91, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 94, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 97, 14, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,100, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,103, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-106, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,109, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,112, 14, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,115, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,118, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,121, 14, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,124, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,127, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-130, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,133, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,136, 14, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,139, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,142, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,145, 14, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,148, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,151, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-154, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,157, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,160, 14, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,163, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,166, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,169, 14, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,172, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,175, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-178, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,181, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,184, 14, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,187, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,190, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,193, 14, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,196, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,199, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-202, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,205, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,208, 14, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,211, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,214, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,217, 14, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,220, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,223, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-226, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,229, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,232, 14, 0, 0, 3, 0, 0, 0,
- 0, 0, 3, 0,235, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,238, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,241, 14, 0, 0,
- 3, 0, 0, 0, 0, 0, 3, 0,244, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,247, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,
-250, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0,253, 14, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 77, 69, 0, 0,232, 4, 0, 0,
-232,105,198, 4, 0, 0, 0, 0, 50, 0, 0, 0, 1, 0, 0, 0,200,120,198, 4, 0, 0, 0, 0,200, 43,196, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69,112,114,101,118,105,101,119, 46, 48, 48, 50, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24,111,198, 4, 0, 0, 0, 0,136,130, 27, 4, 0, 0, 0, 0, 88, 5,196, 4, 0, 0, 0, 0,
- 56, 42,196, 4, 0, 0, 0, 0,184, 5,196, 4, 0, 0, 0, 0, 56, 6,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,113,198, 4, 0, 0, 0, 0,184,116,198, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,111,198, 4, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 1, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,114,198, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232, 39,196, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 2, 0, 0, 0, 5, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 3,196, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0, 1, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 2, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 3, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,179,
- 0, 0, 64, 52,235, 92,142,188, 0, 0,128, 63, 2, 0,128, 63,235, 92,142, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 67, 0, 30, 0, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,
- 24,111,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120,164, 26, 4, 0, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0,
-104,111,198, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,113,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,100, 0, 0, 0,
-184,113,198, 4, 0, 0, 0, 0, 56, 0, 0, 0, 5, 0, 0, 0, 0,116, 6, 65,254,255,127, 63, 42,117,228, 39, 0, 0, 0, 0,
-255,127, 3, 0, 0,116, 6, 65,254,255,127,191, 43, 59,177,167, 0, 0, 0, 0,255,127, 3, 0, 0,116, 6,193,250,255,127,191,
- 39,117,228,167, 0, 0, 0, 0,255,127, 3, 0,252,115, 6,193, 1, 0,128, 63, 49, 59,177, 39, 0, 0, 0, 0,255,127, 3, 0,
- 0,239,110, 59,131,164, 26, 60,235, 92, 14,189,228, 12, 95, 33, 28,133, 3, 0, 68, 65, 84, 65, 8, 2, 0, 0,104,114,198, 4,
- 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,116,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,184,116,198, 4,
- 0, 0, 0, 0, 53, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,
- 8, 2, 0, 0, 8, 3,196, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 97, 99,101, 45, 86,101,
-114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 5,196, 4, 0, 0, 0, 0, 17, 0, 0, 0,
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0,
- 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 6,196, 4,
- 0, 0, 0, 0, 26, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 56, 42,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 48, 0, 0, 0,184, 5,196, 4, 0, 0, 0, 0, 61, 0, 0, 0, 4, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 56, 6,196, 4, 0, 0, 0, 0, 62, 0, 0, 0, 4, 0, 0, 0,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255, 68, 65, 84, 65, 32, 0, 0, 0, 56, 42,196, 4, 0, 0, 0, 0, 59, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0,232, 39,196, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 15, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,
-120, 0, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 5,196, 4,
- 0, 0, 0, 0, 25, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,136,130, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0, 88, 5,196, 4, 0, 0, 0, 0, 60, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0,136,130, 27, 4, 0, 0, 0, 0, 58, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 77, 69, 0, 0,232, 4, 0, 0,200,120,198, 4, 0, 0, 0, 0,
- 50, 0, 0, 0, 1, 0, 0, 0, 56,142,198, 4, 0, 0, 0, 0,232,105,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 77, 69,112,114,101,118,105,101,119, 46, 48, 48, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-248,125,198, 4, 0, 0, 0, 0,168, 42,196, 4, 0, 0, 0, 0,152,102, 27, 4, 0, 0, 0, 0,232, 18,196, 4, 0, 0, 0, 0,
-120,103, 27, 4, 0, 0, 0, 0,120,105, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152,128,198, 4, 0, 0, 0, 0, 8,134,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 72,126,198, 4, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0,
- 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,131,198, 4, 0, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,117,198, 4, 0, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255, 1, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255, 2, 0, 0, 0, 5, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 72,100, 27, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0, 1, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 2, 0, 0, 0,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 3, 0, 0, 0, 5, 0, 0, 0,
- 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 36, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 36, 0, 0, 0, 7, 0, 0, 0, 0, 0,128,179, 0, 0, 64, 52, 0, 0,192, 28,
- 0, 0,128, 63, 2, 0,128, 63,172,197, 39, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 30, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,248,125,198, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,216,189, 26, 4, 0, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0, 72,126,198, 4, 0, 0, 0, 0,
-124, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152,128,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 2, 0, 0,152,128,198, 4, 0, 0, 0, 0,
- 56, 0, 0, 0, 36, 0, 0, 0, 0, 0,128, 63,255,255,127, 63,255,255,251, 39, 0, 0, 0, 0,254,127, 2, 0, 0, 0,128, 63,
- 0, 0,128,191, 0, 0, 2,168, 0, 0, 0, 0,255,127, 2, 0, 1, 0,128,191,253,255,127,191,253,255,251,167, 0, 0, 0, 0,
-255,127, 2, 0,250,255,127,191, 3, 0,128, 63, 3, 0, 2, 40, 0, 0, 0, 0,255,127, 2, 0,113,250, 63, 64, 7, 3,128, 63,
- 79,201,113, 48, 0, 0, 0, 0, 1,128, 2, 0,114,250, 63, 64,242,249,127,191,107,200,113, 48, 0, 0, 0, 0, 1,128, 2, 0,
-206,233,127, 63,245,249,127,191, 95,200,113, 48, 0, 0, 0, 0, 1,128, 2, 0,206,233,127, 63, 3, 3,128, 63, 63,201,113, 48,
- 0, 0, 0, 0, 1,128, 2, 0,185,235, 63,192,197, 9,128, 63,138, 82,171, 51, 0, 0, 0, 0, 1,128, 2, 0,185,235, 63,192,
-113,236,127,191,137, 82,171, 51, 0, 0, 0, 0, 1,128, 2, 0,232,174,127,191,110,236,127,191,137, 82,171, 51, 0, 0, 0, 0,
- 1,128, 2, 0,236,174,127,191,201, 9,128, 63,138, 82,171, 51, 0, 0, 0, 0, 1,128, 2, 0,181,242,159,192, 32, 15,128, 63,
-175,196, 41, 43, 0, 0, 0, 0,255,127, 2, 0,182,242,159,192,194,225,127,191,175,196, 37, 43, 0, 0, 0, 0,255,127, 2, 0,
-108,229, 63,192,197,225,127,191,175,180, 37, 43, 0, 0, 0, 0,255,127, 2, 0,108,229, 63,192, 29, 15,128, 63,175,180, 41, 43,
- 0, 0, 0, 0,254,127, 2, 0,112,253,159, 64,242, 18,128, 63, 85,138, 18, 51, 0, 0, 0, 0,254,127, 2, 0,112,253,159, 64,
- 27,218,127,191, 81,138, 18, 51, 0, 0, 0, 0,255,127, 2, 0,223,250, 63, 64, 24,218,127,191, 81,138, 18, 51, 0, 0, 0, 0,
-255,127, 2, 0,225,250, 63, 64,245, 18,128, 63, 85,138, 18, 51, 0, 0, 0, 0,255,127, 2, 0,178,236,223,192, 32, 14,128, 63,
- 81,158,216,175, 0, 0, 0, 0,254,127, 2, 0,178,236,223,192,192,227,127,191, 81,160,216,175, 0, 0, 0, 0,255,127, 2, 0,
- 89,246, 15,193,188,227,127,191, 73,160,216,175, 0, 0, 0, 0,254,127, 2, 0, 89,246, 15,193, 35, 14,128, 63, 73,158,216,175,
- 0, 0, 0, 0,255,127, 2, 0,217,239,159,192,204, 8,128, 63,151,121,170, 51, 0, 0, 0, 0, 1,128, 2, 0,217,239,159,192,
-104,238,127,191,150,121,170, 51, 0, 0, 0, 0, 2,128, 2, 0,217,239,223,192,108,238,127,191,150,121,170, 51, 0, 0, 0, 0,
- 1,128, 2, 0,217,239,223,192,200, 8,128, 63,151,121,170, 51, 0, 0, 0, 0, 1,128, 2, 0,233,247,223, 64,219, 24,128, 63,
- 78,136,155,180, 0, 0, 0, 0,255,127, 3, 0,233,247,223, 64, 76,206,127,191, 79,136,155,180, 0, 0, 0, 0,254,127, 3, 0,
-245,251, 15, 65, 80,206,127,191, 79,136,155,180, 0, 0, 0, 0,255,127, 3, 0,245,251, 15, 65,216, 24,128, 63, 78,136,155,180,
- 0, 0, 0, 0,254,127, 3, 0,179,247,159, 64,233, 8,128, 63,180, 96,173,180, 0, 0, 0, 0, 1,128, 3, 0,179,247,159, 64,
- 42,238,127,191,181, 96,173,180, 0, 0, 0, 0, 1,128, 3, 0,178,247,223, 64, 38,238,127,191,181, 96,173,180, 0, 0, 0, 0,
- 1,128, 3, 0,177,247,223, 64,237, 8,128, 63,180, 96,173,180, 0, 0, 0, 0, 1,128, 3, 0, 68, 65, 84, 65, 8, 2, 0, 0,
-184,131,198, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,134,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,176, 1, 0, 0,
- 8,134,198, 4, 0, 0, 0, 0, 53, 0, 0, 0, 36, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 34, 0,
- 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 34, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 34, 0, 6, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 34, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 34, 0, 9, 0, 0, 0, 10, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0,
- 9, 0, 0, 0, 0, 0, 34, 0, 8, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 34, 0,
- 12, 0, 0, 0, 13, 0, 0, 0, 0, 0, 34, 0, 12, 0, 0, 0, 15, 0, 0, 0, 0, 0, 34, 0, 14, 0, 0, 0, 15, 0, 0, 0,
- 0, 0, 34, 0, 13, 0, 0, 0, 14, 0, 0, 0, 0, 0, 34, 0, 17, 0, 0, 0, 18, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 34, 0, 16, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0, 18, 0, 0, 0, 19, 0, 0, 0, 0, 0, 34, 0,
- 21, 0, 0, 0, 22, 0, 0, 0, 0, 0, 34, 0, 21, 0, 0, 0, 20, 0, 0, 0, 0, 0, 34, 0, 20, 0, 0, 0, 23, 0, 0, 0,
- 0, 0, 34, 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0, 25, 0, 0, 0, 0, 0, 34, 0, 24, 0, 0, 0,
- 27, 0, 0, 0, 0, 0, 34, 0, 26, 0, 0, 0, 27, 0, 0, 0, 0, 0, 34, 0, 25, 0, 0, 0, 26, 0, 0, 0, 0, 0, 34, 0,
- 29, 0, 0, 0, 28, 0, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0, 28, 0, 0, 0, 0, 0, 35, 0, 31, 0, 0, 0, 30, 0, 0, 0,
- 0, 0, 35, 0, 29, 0, 0, 0, 30, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0, 33, 0, 0, 0, 0, 0, 35, 0, 32, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 35, 0, 35, 0, 0, 0, 32, 0, 0, 0, 0, 0, 35, 0, 34, 0, 0, 0, 35, 0, 0, 0, 0, 0, 35, 0,
- 68, 65, 84, 65, 8, 2, 0, 0, 72,100, 27, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 97, 99,
-101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,103, 27, 4, 0, 0, 0, 0,
- 17, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 67,111,108, 0, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120,105, 27, 4, 0, 0, 0, 0, 26, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,232, 18,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,176, 1, 0, 0,120,103, 27, 4, 0, 0, 0, 0, 61, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,120,105, 27, 4, 0, 0, 0, 0, 62, 0, 0, 0, 36, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 68, 65, 84, 65, 32, 1, 0, 0,232, 18,196, 4, 0, 0, 0, 0,
- 59, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 7, 0, 0, 0,
- 6, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 11, 0, 0, 0, 10, 0, 0, 0, 8, 0, 0, 0,
- 9, 0, 0, 0, 9, 0, 0, 0, 15, 0, 0, 0, 13, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 13, 0, 0, 0, 15, 0, 0, 0,
- 14, 0, 0, 0, 14, 0, 0, 0, 16, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0, 16, 0, 0, 0,
- 17, 0, 0, 0, 17, 0, 0, 0, 20, 0, 0, 0, 22, 0, 0, 0, 23, 0, 0, 0, 23, 0, 0, 0, 22, 0, 0, 0, 20, 0, 0, 0,
- 21, 0, 0, 0, 21, 0, 0, 0, 27, 0, 0, 0, 25, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 27, 0, 0, 0,
- 26, 0, 0, 0, 26, 0, 0, 0, 31, 0, 0, 0, 29, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 29, 0, 0, 0, 31, 0, 0, 0,
- 30, 0, 0, 0, 30, 0, 0, 0, 32, 0, 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 34, 0, 0, 0, 32, 0, 0, 0,
- 33, 0, 0, 0, 33, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0, 56,117,198, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 85, 86, 84,101,120, 0, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152,102, 27, 4, 0, 0, 0, 0, 25, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,168, 42,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,152,102, 27, 4, 0, 0, 0, 0, 60, 0, 0, 0, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 68, 65, 84, 65,108, 0, 0, 0,168, 42,196, 4, 0, 0, 0, 0,
- 58, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 2, 0, 32, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 77, 69, 0, 0,232, 4, 0, 0, 56,142,198, 4,
- 0, 0, 0, 0, 50, 0, 0, 0, 1, 0, 0, 0, 8,157,198, 4, 0, 0, 0, 0,200,120,198, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69,112,114,101,118,105,101,119, 46, 48, 48, 52, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,104,147,198, 4, 0, 0, 0, 0,104, 43,196, 4, 0, 0, 0, 0,168,140,198, 4, 0, 0, 0, 0,152, 6,196, 4,
- 0, 0, 0, 0, 8,141,198, 4, 0, 0, 0, 0,136,141,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,150,198, 4, 0, 0, 0, 0,248,152,198, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,147,198, 4, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,
- 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,150,198, 4,
- 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,136,198, 4,
- 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255, 1, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255, 2, 0, 0, 0, 5, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,138,198, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0, 1, 0, 0, 0,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 2, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 3, 0, 0, 0,
- 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,179, 0, 0, 64, 52,
- 0, 0,192, 28, 0, 0,128, 63, 2, 0,128, 63,172,197, 39, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 67, 0,
- 30, 0, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,104,147,198, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,232,198, 26, 4, 0, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0,184,147,198, 4,
- 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,150,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 8,150,198, 4,
- 0, 0, 0, 0, 56, 0, 0, 0, 4, 0, 0, 0, 50, 49,175, 64,255,255,127, 63, 28,159,152, 51, 0, 0, 0, 0,255,127, 3, 0,
- 50, 49,175, 64, 0, 0,128,191, 33,159,152,179, 0, 0, 0, 0,255,127, 3, 0, 50, 49,175,192,252,255,127,191, 31,159,152,179,
- 0, 0, 0, 0,255,127, 3, 0, 45, 49,175,192, 4, 0,128, 63, 33,159,152, 51, 0, 0, 0, 0,255,127, 3, 0, 68, 65, 84, 65,
- 8, 2, 0, 0,168,150,198, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,152,198, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 48, 0, 0, 0,248,152,198, 4, 0, 0, 0, 0, 53, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 35, 0, 68, 65, 84, 65, 8, 2, 0, 0, 88,138,198, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 16, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,
-120, 0, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,141,198, 4,
- 0, 0, 0, 0, 17, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 67,111,108, 0, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,136,141,198, 4, 0, 0, 0, 0, 26, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 6,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 8,141,198, 4, 0, 0, 0, 0, 61, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,136,141,198, 4, 0, 0, 0, 0, 62, 0, 0, 0,
- 4, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 68, 65, 84, 65, 32, 0, 0, 0,152, 6,196, 4,
- 0, 0, 0, 0, 59, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0, 8,136,198, 4, 0, 0, 0, 0,124, 1, 0, 0,
- 5, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 85, 86, 84,101,120, 0, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,168,140,198, 4, 0, 0, 0, 0, 25, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 43,196, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,168,140,198, 4, 0, 0, 0, 0, 60, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0,104, 43,196, 4,
- 0, 0, 0, 0, 58, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 77, 69, 0, 0,232, 4, 0, 0,
- 8,157,198, 4, 0, 0, 0, 0, 50, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,142,198, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56,162,198, 4, 0, 0, 0, 0,136,119,198, 4, 0, 0, 0, 0, 24,120,198, 4, 0, 0, 0, 0,
- 40, 36, 27, 4, 0, 0, 0, 0,168,108, 27, 4, 0, 0, 0, 0, 24,110, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,164,198, 4, 0, 0, 0, 0, 24,168,198, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,162,198, 4, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 1, 0, 0, 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,165,198, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120,153,198, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 2, 0, 0, 0, 5, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,106, 27, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0, 1, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 2, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
- 3, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 51,
- 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 67, 0, 30, 0, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,
- 56,162,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,120,164, 26, 4, 0, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0,
-136,162,198, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,164,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
-216,164,198, 4, 0, 0, 0, 0, 56, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73,
- 26,182, 3, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182, 3, 0, 1, 0,128,191,253,255,127,191,
- 0, 0,128,191, 26,182, 26,182, 26,182, 3, 0,250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182, 3, 0,
- 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73, 3, 0,245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,
-230, 73, 26,182,230, 73, 3, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, 26,182, 26,182,230, 73, 3, 0,255,255,127,191,
- 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,230, 73, 3, 0, 68, 65, 84, 65, 8, 2, 0, 0,200,165,198, 4, 0, 0, 0, 0,
-124, 1, 0, 0, 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24,168,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0, 24,168,198, 4, 0, 0, 0, 0,
- 53, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 5, 0, 0, 0,
- 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0,
- 7, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0,
- 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 8, 2, 0, 0,
- 88,106, 27, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 97, 99,101, 45, 86,101,114,116,101,120,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,108, 27, 4, 0, 0, 0, 0, 17, 0, 0, 0, 12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,108, 0, 32, 70, 97, 99,
-101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,110, 27, 4, 0, 0, 0, 0,
- 26, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 78, 71,111,110, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 36, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 1, 0, 0,
-168,108, 27, 4, 0, 0, 0, 0, 61, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 24,110, 27, 4, 0, 0, 0, 0,
- 62, 0, 0, 0, 24, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255, 68, 65, 84, 65,192, 0, 0, 0, 40, 36, 27, 4, 0, 0, 0, 0, 59, 0, 0, 0, 24, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0,
- 4, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 10, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 10, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 11, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0,
- 4, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0,
- 68, 65, 84, 65, 8, 2, 0, 0,120,153,198, 4, 0, 0, 0, 0,124, 1, 0, 0, 5, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 84,101,120, 0, 97, 99,
-101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,120,198, 4, 0, 0, 0, 0,
- 25, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 78, 71,111,110, 32, 70, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136,119,198, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 96, 0, 0, 0, 24,120,198, 4, 0, 0, 0, 0, 60, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0,
-136,119,198, 4, 0, 0, 0, 0, 58, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 2, 0, 8, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 12, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0,
- 16, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 80, 65, 0, 0, 16, 3, 0, 0,
- 40,174,198, 4, 0, 0, 0, 0,136, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 65, 80, 83,121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136,177,198, 4, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0,
- 0, 0, 10, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 4, 0, 6, 0, 8, 0, 5, 0, 5, 0, 3, 0,100, 0, 1, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 2, 0, 3, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0,128, 63,205,204,204, 61,
-205,204, 76, 63, 0, 0,128, 63, 0, 0,200, 66, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 62, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,128, 41,182, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,240,214, 35,189, 0, 0, 0, 0,184,155,196,189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 62, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 72, 0, 0, 0,136,177,198, 4, 0, 0, 0, 0,133, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 60, 85, 32, 60, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 78, 65, 49,144, 4, 1, 0,184, 21, 22, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69,
- 58, 13, 0, 0, 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97,
-115,116, 0,120, 0,121, 0,122, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,121,109, 97,120, 0, 42,112,111,
-105,110,116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,101, 0,115,117, 98,116,121,112,
-101, 0,102,108, 97,103, 0,110, 97,109,101, 91, 54, 52, 93, 0,115, 97,118,101,100, 0,100, 97,116, 97, 0,108,101,110, 0,116,
-111,116, 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101, 91, 54, 54, 93, 0,112, 97,100,
- 0,117,115, 0,105, 99,111,110, 95,105,100, 0,112, 97,100, 50, 0, 42,112,114,111,112,101,114,116,105,101,115, 0,105,100, 0,
- 42,105,100, 98,108,111, 99,107, 0, 42,102,105,108,101,100, 97,116, 97, 0,110, 97,109,101, 91, 49, 48, 50, 52, 93, 0,102,105,
-108,101,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0,116,111,116, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50, 93, 0,104, 91,
- 50, 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97,109,112, 91,
- 50, 93, 0, 42,114,101, 99,116, 91, 50, 93, 0, 42,111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100,114, 99,111,100,
-101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116, 0,116,111,116,
-114, 99,116, 0,118, 97,114,116,121,112,101, 0,116,111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114, 97,112, 0,114,
-116, 0, 98,105,116,109, 97,115,107, 0,115,108,105,100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97,120, 0, 99,117,
-114,118, 97,108, 0, 42,100,114,105,118,101,114, 0, 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107,101,121, 0,109,
-117,116,101,105,112,111, 0,112,111,115, 0,114,101,108, 97,116,105,118,101, 0,116,111,116,101,108,101,109, 0, 42,119,101,105,
-103,104,116,115, 0,118,103,114,111,117,112, 91, 54, 52, 93, 0,115,108,105,100,101,114,109,105,110, 0,115,108,105,100,101,114,
-109, 97,120, 0,117,105,100, 0,112, 97,100, 51, 0, 42, 97,100,116, 0, 42,114,101,102,107,101,121, 0,101,108,101,109,115,116,
-114, 91, 54, 52, 93, 0,101,108,101,109,115,105,122,101, 0, 98,108,111, 99,107, 0, 42,105,112,111, 0, 42,102,114,111,109, 0,
-116,111,116,107,101,121, 0,115,108,117,114,112,104, 0, 99,116,105,109,101, 0,117,105,100,103,101,110, 0, 42,108,105,110,101,
- 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111, 0,115,116, 97,114,116, 0,101,110,100, 0,112,
- 97,100, 49, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109,101, 0,
-110,108,105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101,108,108, 0, 99,117,114, 99, 0,115,101,
-108, 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117,110,100,111, 95,112,111,115, 0,117,110,
-100,111, 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, 0,115,105,122,101, 0,115,101,101,107,
- 0,100,116,120, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 99,108,105,112,115,116, 97, 0, 99,108,105,112,
-101,110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,115,105,122,101, 0,115,101,
-110,115,111,114, 95,120, 0,115,101,110,115,111,114, 95,121, 0,115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70,
- 95,100,111,102,100,105,115,116, 0, 42,100,111,102, 95,111, 98, 0,115,101,110,115,111,114, 95,102,105,116, 0,112, 97,100, 91,
- 55, 93, 0, 42,115, 99,101,110,101, 0,102,114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111,102,102,115,101,116, 0,
-115,102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, 95,105,110,100,101,120,
- 0,108, 97,121,101,114, 0,112, 97,115,115, 0,105, 98,117,102,115, 0, 42,103,112,117,116,101,120,116,117,114,101, 0, 42, 97,
-110,105,109, 0, 42,114,114, 0, 42,114,101,110,100,101,114,115, 91, 56, 93, 0,114,101,110,100,101,114, 95,115,108,111,116, 0,
-108, 97,115,116, 95,114,101,110,100,101,114, 95,115,108,111,116, 0,115,111,117,114, 99,101, 0,108, 97,115,116,102,114, 97,109,
-101, 0,116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121,114,101,112, 0,116,119,
-115,116, 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110,100, 0, 42,112, 97, 99,
-107,101,100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0,108, 97,115,116,117,112,100, 97,116,101, 0,108, 97,115,116,
-117,115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95,121, 0,103,101,110, 95,116,
-121,112,101, 0,103,101,110, 95,102,108, 97,103, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, 99,111, 0,109, 97,112,
-116,111, 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106,101, 99,116, 0, 42,116,
-101,120, 0,117,118,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0,112,114,111,106,122, 0,
-109, 97,112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,116, 0,116,101,120,102,108,
- 97,103, 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116,111,110,101,103, 0,110,
-111,114,109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,114,117,115,104, 95,109, 97,
-112, 95,109,111,100,101, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, 97,114, 0, 99,111,108,102, 97, 99, 0,118, 97,
-114,102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, 0, 99,111,108,115,
-112,101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97,102, 97, 99, 0,100,105,102,102,102, 97, 99, 0,
-115,112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100,102, 97, 99, 0,114, 97,121,109,105,114,114,102,
- 97, 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, 99,111,108,101,109,105,116,102, 97, 99, 0, 99,
-111,108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, 99, 0,100,101,110,115,102, 97, 99, 0,115, 99,
- 97,116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109,101,102, 97, 99, 0,108,101,110,103,116,104,102,
- 97, 99, 0, 99,108,117,109,112,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0,107,105,110,107,102, 97, 99, 0,114,111,117,103,
-104,102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,103,114, 97,118,105,116,121,102, 97, 99, 0,108,105,102,101,102, 97,
- 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,102,105,101,108,100,102, 97, 99, 0,115,104, 97,100,111,
-119,102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,102, 97, 99, 0, 98,108,101,110,100,102, 97,
- 99, 0, 42,104, 97,110,100,108,101, 0, 42,112,110, 97,109,101, 0, 42,115,116,110, 97,109,101,115, 0,115,116,121,112,101,115,
- 0,118, 97,114,115, 0, 42,118, 97,114,115,116,114, 0, 42,114,101,115,117,108,116, 0, 42, 99,102,114, 97, 0,100, 97,116, 97,
- 91, 51, 50, 93, 0, 40, 42,100,111,105,116, 41, 40, 41, 0, 40, 42,105,110,115,116, 97,110, 99,101, 95,105,110,105,116, 41, 40,
- 41, 0, 40, 42, 99, 97,108,108, 98, 97, 99,107, 41, 40, 41, 0,118,101,114,115,105,111,110, 0, 97, 0,105,112,111,116,121,112,
-101, 0, 42,105,109, 97, 0, 42, 99,117, 98,101, 91, 54, 93, 0,105,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,
-116, 91, 51, 93, 91, 51, 93, 0,115,116,121,112,101, 0,118,105,101,119,115, 99, 97,108,101, 0,110,111,116,108, 97,121, 0, 99,
-117, 98,101,114,101,115, 0,100,101,112,116,104, 0,114,101, 99, 97,108, 99, 0,108, 97,115,116,115,105,122,101, 0,102, 97,108,
-108,111,102,102, 95,116,121,112,101, 0,102, 97,108,108,111,102,102, 95,115,111,102,116,110,101,115,115, 0,114, 97,100,105,117,
-115, 0, 99,111,108,111,114, 95,115,111,117,114, 99,101, 0,116,111,116,112,111,105,110,116,115, 0,112,100,112, 97,100, 0,112,
-115,121,115, 0,112,115,121,115, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0,111, 98, 95, 99, 97, 99,104,101, 95,115,112,
- 97, 99,101, 0, 42,112,111,105,110,116, 95,116,114,101,101, 0, 42,112,111,105,110,116, 95,100, 97,116, 97, 0,110,111,105,115,
-101, 95,115,105,122,101, 0,110,111,105,115,101, 95,100,101,112,116,104, 0,110,111,105,115,101, 95,105,110,102,108,117,101,110,
- 99,101, 0,110,111,105,115,101, 95, 98, 97,115,105,115, 0,112,100,112, 97,100, 51, 91, 51, 93, 0,110,111,105,115,101, 95,102,
- 97, 99, 0,115,112,101,101,100, 95,115, 99, 97,108,101, 0,102, 97,108,108,111,102,102, 95,115,112,101,101,100, 95,115, 99, 97,
-108,101, 0,112,100,112, 97,100, 50, 0, 42, 99,111, 98, 97, 0, 42,102, 97,108,108,111,102,102, 95, 99,117,114,118,101, 0,114,
-101,115,111,108, 91, 51, 93, 0,105,110,116,101,114,112, 95,116,121,112,101, 0,102,105,108,101, 95,102,111,114,109, 97,116, 0,
-101,120,116,101,110,100, 0,115,109,111,107,101,100, 95,116,121,112,101, 0,105,110,116, 95,109,117,108,116,105,112,108,105,101,
-114, 0,115,116,105,108,108, 95,102,114, 97,109,101, 0,115,111,117,114, 99,101, 95,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0,
- 42,100, 97,116, 97,115,101,116, 0, 99, 97, 99,104,101,100,102,114, 97,109,101, 0,111, 99,101, 97,110,109,111,100, 91, 54, 52,
- 93, 0,111,117,116,112,117,116, 0,110,111,105,115,101,115,105,122,101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104,116,
- 0, 99,111,110,116,114, 97,115,116, 0,115, 97,116,117,114, 97,116,105,111,110, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,
-102, 97, 99, 0,102,105,108,116,101,114,115,105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,
-121, 0,109,103, 95,111, 99,116, 97,118,101,115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,
-105,115,116, 95, 97,109,111,117,110,116, 0,110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,
-119, 50, 0,118,110, 95,119, 51, 0,118,110, 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,
-118,110, 95, 99,111,108,116,121,112,101, 0,110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,
-110,111,105,115,101, 98, 97,115,105,115, 0,110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,
-114,111,112,120,109,105,110, 0, 99,114,111,112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109,
- 97,120, 0,116,101,120,102,105,108,116,101,114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101,
- 97,116, 0, 99,104,101, 99,107,101,114,100,105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,
-116,114,101,101, 0, 42,112,108,117,103,105,110, 0, 42,101,110,118, 0, 42,112,100, 0, 42,118,100, 0, 42,111,116, 0,117,115,
-101, 95,110,111,100,101,115, 0,108,111, 99, 91, 51, 93, 0,114,111,116, 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,
-109,105,110, 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0, 99,111, 98, 97, 0, 98,108,101,110,100, 95, 99,111,108,111,114, 91, 51,
- 93, 0, 98,108,101,110,100, 95,102, 97, 99,116,111,114, 0, 98,108,101,110,100, 95,116,121,112,101, 0,112, 97,100, 91, 51, 93,
- 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,115,104,100,119,103, 0,115,104,100,119, 98, 0,115,104,
-100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,115,112,111,116,115,105,122,101, 0,115,112,111,116, 98,
-108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,116, 50, 0, 42, 99,117,114,102, 97,108,108,111,102,102,
- 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115, 0,115,111,102,116, 0, 99,111,109,112,114,101,115,115,
-116,104,114,101,115,104, 0,112, 97,100, 53, 91, 51, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117,102,102,
-101,114,115, 0,102,105,108,116,101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, 0,114,
- 97,121, 95,115, 97,109,112, 0,114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97,121, 95,
-115, 97,109,112, 95,116,121,112,101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, 0, 97,
-114,101, 97, 95,115,105,122,101,121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114,101,115,
-104, 0,114, 97,121, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0,116,101,120, 97, 99,116, 0,115,104, 97,100,104, 97,108,
-111,115,116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121, 98,108,101,110,100,116,121,
-112,101, 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,101, 97,100, 0,115,117,110,
- 95, 98,114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,115, 99, 97,116,116,101,114,
-101,100, 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,109, 95,116,117,114, 98,105,
-100,105,116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,116,111,114, 0, 97,116,109,
- 95,101,120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,115,116, 97,110, 99,101, 95,
-102, 97, 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,112,111,115,117,114,101, 0,
-115,107,121, 95, 99,111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 91, 54, 93, 0, 42,109,116,101,120, 91, 49, 56, 93,
- 0,112,114, 95,116,101,120,116,117,114,101, 0,112, 97,100, 54, 91, 52, 93, 0,100,101,110,115,105,116,121, 0,101,109,105,115,
-115,105,111,110, 0,115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109,105,115,115,
-105,111,110, 95, 99,111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,114,
-101,102,108,101, 99,116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108,101, 0,100,
-101,112,116,104, 95, 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115,105,122,101, 95,116,
-121,112,101, 0,115,104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, 97, 99,104,
-101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, 0,109,115,
- 95,105,110,116,101,110,115,105,116,121, 0,109,115, 95,115,112,114,101, 97,100, 0, 97,108,112,104, 97, 95, 98,108,101,110,100,
- 0,102, 97, 99,101, 95,111,114,105,101,110,116, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 95,116,121,112,101, 0,
-115,112,101, 99,114, 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105,114,103, 0,109,105,114, 98,
- 0, 97,109, 98,114, 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97,110,103, 0,115,112,101,
- 99,116,114, 97, 0,114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0,115,112,101, 99, 0,122,
-111,102,102,115, 0, 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, 0,103, 97,109,101, 0,102,
-114,101,115,110,101,108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110,101,108,
- 95,116,114, 97, 0,102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108,105,109,
-105,116, 0,116,120, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101,112,116,
-104, 95,116,114, 97, 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105,114, 0,
-103,108,111,115,115, 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95,103,108,
-111,115,115, 95,116,114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95,116,
-104,114,101,115,104, 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, 95,109,
-105,114, 0,102, 97,100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, 0,
-102,108, 97,114,101, 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, 0,
-102,108, 97,114,101,115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115,116,114,
- 97,110,100, 95,115,116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0,115,
-116,114, 97,110,100, 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110,100, 95,
-119,105,100,116,104,102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 54, 52, 93, 0,115, 98,105, 97,
-115, 0,108, 98,105, 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115,101,108,
- 0,112,114, 95,116,121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97,103,
- 0,100,105,102,102, 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104,110,101,
-115,115, 0,114,101,102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115,115, 0,
- 42,114, 97,109,112, 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, 0,
-114, 97,109,112,105,110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98,108,
-101,110,100, 95,115,112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,114, 97,109,112,102, 97, 99, 95, 99,111,108, 0,114,
- 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105,111,110, 0,102,104, 0,114,
-101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, 97,109,111,100,101, 0,115,
-115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115,115, 95,101,114,114,111,
-114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99,111,108,102, 97, 99, 0,115,
-115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, 99,107, 0,115,115,115,
- 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101,120,116,117,114,101,100, 0,
-115,104, 97,100,111,119,111,110,108,121, 95,102,108, 97,103, 0,105,110,100,101,120, 0,103,112,117,109, 97,116,101,114,105, 97,
-108, 0, 42, 98, 98, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,113,117, 97,116, 91, 52, 93, 0,101,120,
-112,120, 0,101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,109,
- 97,116, 0,101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,109, 97,116, 0,102,
-108, 97,103, 50, 0,116,111,116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,115,105,122,101, 0,
-116,104,114,101,115,104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97, 0,
-119,101,105,103,104,116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,118,101, 99, 91, 52,
- 93, 0,109, 97,116, 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, 0,114,101,115,111,
-108,118, 0,111,114,100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,118, 0, 42,107,110,
-111,116,115,117, 0, 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,100,105,117,115, 95,
-105,110,116,101,114,112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,119, 0,104, 0,110,117,114, 98,115, 0, 42,107,
-101,121,105,110,100,101,120, 0,115,104, 97,112,101,110,114, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42,
- 98,101,118,111, 98,106, 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112,
- 97,116,104, 0, 42,107,101,121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101,
- 0,116,119,105,115,116, 95,115,109,111,111,116,104, 0,115,109, 97,108,108, 99, 97,112,115, 95,115, 99, 97,108,101, 0,112, 97,
-116,104,108,101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101,120,116, 50, 0,114,
-101,115,111,108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, 42,108, 97,115,116,
-115,101,108, 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100,105,115,116, 0,115,
-104,101, 97,114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0,117,108,104,101,105,
-103,104,116, 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, 42,115,101,108, 98,
-111,120,101,115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42,118,102,111,110,116,
- 0, 42,118,102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115,101,112, 99,104, 97,
-114, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,108,
-101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0, 42,109,112,111,108,121, 0, 42,109,116,112,
-111,108,121, 0, 42,109,108,111,111,112, 0, 42,109,108,111,111,112,117,118, 0, 42,109,108,111,111,112, 99,111,108, 0, 42,109,
-102, 97, 99,101, 0, 42,109,116,102, 97, 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,
-101, 0, 42,100,118,101,114,116, 0, 42,109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,
-115,104, 0, 42,109,115,101,108,101, 99,116, 0, 42,101,100,105,116, 95, 98,116,109,101,115,104, 0,118,100, 97,116, 97, 0,101,
-100, 97,116, 97, 0,102,100, 97,116, 97, 0,112,100, 97,116, 97, 0,108,100, 97,116, 97, 0,116,111,116,101,100,103,101, 0,116,
-111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116, 0,116,111,116,112,111,108,121, 0,116,111,116,108,111,111,112,
- 0, 97, 99,116, 95,102, 97, 99,101, 0,115,109,111,111,116,104,114,101,115,104, 0,115,117, 98,100,105,118, 0,115,117, 98,100,
-105,118,114, 0,115,117, 98,115,117,114,102,116,121,112,101, 0,101,100,105,116,102,108, 97,103, 0, 42,109,114, 0, 42,116,112,
- 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108, 91, 52, 93, 0,116,114, 97,110,115,112, 0,116,105,108,101, 0,
-117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,118, 52, 0,101,100, 99,111,100,101, 0, 99,114,101, 97,115,101,
- 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0, 42,100,119, 0,116,111,116,119,101,105,103,104,116, 0, 99,111,
- 91, 51, 93, 0,110,111, 91, 51, 93, 0,108,111,111,112,115,116, 97,114,116, 0,118, 0,101, 0,117,118, 91, 50, 93, 0, 99,111,
- 91, 50, 93, 0,102, 0,105, 0,115, 91, 50, 53, 54, 93, 0,116,111,116,100,105,115,112, 0,108,101,118,101,108, 0, 40, 42,100,
-105,115,112,115, 41, 40, 41, 0, 42,104,105,100,100,101,110, 0,118, 91, 52, 93, 0,109,105,100, 0,112, 97,100, 91, 50, 93, 0,
-118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,102, 97, 99,101,115, 0, 42,101,100,103,101,115, 0, 42,118,101,
-114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108, 95, 99,111,117,110,116, 0, 99,117,114,114,101,110,116, 0,110,
-101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,110,108,118,108, 0,114,101,110,100,101,114,108,118,108, 0,117,
-115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,103,115, 0, 42,101,100,103,101, 95, 99,114,101, 97,115,101,115,
- 0,115,116, 97, 99,107,105,110,100,101,120, 0, 42,101,114,114,111,114, 0,109,111,100,105,102,105,101,114, 0, 42,116,101,120,
-116,117,114,101, 0, 42,109, 97,112, 95,111, 98,106,101, 99,116, 0,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 54, 52,
- 93, 0,117,118,108, 97,121,101,114, 95,116,109,112, 0,116,101,120,109, 97,112,112,105,110,103, 0,115,117, 98,100,105,118, 84,
-121,112,101, 0,114,101,110,100,101,114, 76,101,118,101,108,115, 0, 42,101,109, 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,
-101, 0,115,116,114,101,110,103,116,104, 0,100,101,102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, 0,108,101,110,103,116,104,
- 0,114, 97,110,100,111,109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42,115,116, 97,114,116, 95, 99,
- 97,112, 0, 42,101,110,100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, 42,111,102,102,115,101,116, 95,111, 98,
- 0,111,102,102,115,101,116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101,114,103,101, 95,100,105,115,116, 0,102,
-105,116, 95,116,121,112,101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111,117,110,116, 0, 97,120,105,115, 0,116,
-111,108,101,114, 97,110, 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112,108,105,116, 95, 97,110,103,108,101, 0,
-118, 97,108,117,101, 0,114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105,109, 95,102,108, 97,103,115, 0,101, 95,
-102,108, 97,103,115, 0, 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103,114,112, 95,110, 97,109,101, 91, 54, 52,
- 93, 0, 42,100,111,109, 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, 0,116,105,109,101, 0,100,105,114,101, 99,
-116,105,111,110, 0,109,105,100,108,101,118,101,108, 0, 42,112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, 42,105,
-109, 97,103,101, 0,110,117,109, 95,112,114,111,106,101, 99,116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115,112,101,
- 99,116,121, 0,115, 99, 97,108,101,120, 0,115, 99, 97,108,101,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,
-117,110,116, 0,102, 97, 99, 0,114,101,112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,
-114,116,120, 0,115,116, 97,114,116,121, 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100,
- 97,109,112, 0,102, 97,108,108,111,102,102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,
-102,111,114,109,102,108, 97,103, 0,109,117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,
-116, 91, 54, 52, 93, 0,112, 97,114,101,110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,
-110,100,101,120, 97,114, 0,116,111,116,105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101,
- 99,116, 0, 42,115,105,109, 95,112, 97,114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116,
- 95, 99, 97, 99,104,101, 0,112,116, 99, 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42,
- 99,117,114,114,101,110,116, 95,120,110,101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101,110,116,
- 95,118, 0, 42,109,102, 97, 99,101,115, 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0,116,105,109,
-101, 95,120, 0,116,105,109,101, 95,120,110,101,119, 0, 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, 99,102,
-114, 97, 0,111,112,101,114, 97,116,105,111,110, 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, 99,101,
- 0,103,114,105,100,115,105,122,101, 0, 42, 98,105,110,100,105,110,102,108,117,101,110, 99,101,115, 0, 42, 98,105,110,100,111,
-102,102,115,101,116,115, 0, 42, 98,105,110,100, 99, 97,103,101, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0,
- 42,100,121,110,103,114,105,100, 0, 42,100,121,110,105,110,102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,
-115, 0, 42,112, 97,100, 50, 0,100,121,110,103,114,105,100,115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51,
- 93, 0,100,121,110, 99,101,108,108,119,105,100,116,104, 0, 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42, 98,105,
-110,100,119,101,105,103,104,116,115, 0, 42, 98,105,110,100, 99,111,115, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41,
- 0, 42,112,115,121,115, 0,116,111,116,100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116,100,109,
-102, 97, 99,101, 0,112,111,115,105,116,105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, 42,102,
- 97, 99,101,112, 97, 0,118,103,114,111,117,112, 0,112,114,111,116,101, 99,116, 0,108,118,108, 0,115, 99,117,108,112,116,108,
-118,108, 0,116,111,116,108,118,108, 0,115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,
-117,120, 84, 97,114,103,101,116, 0,118,103,114,111,117,112, 95,110, 97,109,101, 91, 54, 52, 93, 0,107,101,101,112, 68,105,115,
-116, 0,115,104,114,105,110,107, 84,121,112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115,
- 0,115,117, 98,115,117,114,102, 76,101,118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,
-109,105,116, 91, 50, 93, 0,111,114,105,103,105,110, 79,112,116,115, 0,111,102,102,115,101,116, 95,102, 97, 99, 0,111,102,102,
-115,101,116, 95,102, 97, 99, 95,118,103, 0, 99,114,101, 97,115,101, 95,105,110,110,101,114, 0, 99,114,101, 97,115,101, 95,111,
-117,116,101,114, 0, 99,114,101, 97,115,101, 95,114,105,109, 0,109, 97,116, 95,111,102,115, 0,109, 97,116, 95,111,102,115, 95,
-114,105,109, 0, 42,111, 98, 95, 97,120,105,115, 0,115,116,101,112,115, 0,114,101,110,100,101,114, 95,115,116,101,112,115, 0,
-105,116,101,114, 0,115, 99,114,101,119, 95,111,102,115, 0, 97,110,103,108,101, 0, 42,111, 99,101, 97,110, 0, 42,111, 99,101,
- 97,110, 99, 97, 99,104,101, 0,114,101,115,111,108,117,116,105,111,110, 0,115,112, 97,116,105, 97,108, 95,115,105,122,101, 0,
-119,105,110,100, 95,118,101,108,111, 99,105,116,121, 0,115,109, 97,108,108,101,115,116, 95,119, 97,118,101, 0,119, 97,118,101,
- 95, 97,108,105,103,110,109,101,110,116, 0,119, 97,118,101, 95,100,105,114,101, 99,116,105,111,110, 0,119, 97,118,101, 95,115,
- 99, 97,108,101, 0, 99,104,111,112, 95, 97,109,111,117,110,116, 0,102,111, 97,109, 95, 99,111,118,101,114, 97,103,101, 0, 98,
- 97,107,101,115,116, 97,114,116, 0, 98, 97,107,101,101,110,100, 0, 99, 97, 99,104,101,112, 97,116,104, 91, 49, 48, 50, 52, 93,
- 0,102,111, 97,109,108, 97,121,101,114,110, 97,109,101, 91, 54, 52, 93, 0, 99, 97, 99,104,101,100, 0,103,101,111,109,101,116,
-114,121, 95,109,111,100,101, 0,114,101,102,114,101,115,104, 0,114,101,112,101, 97,116, 95,120, 0,114,101,112,101, 97,116, 95,
-121, 0,102,111, 97,109, 95,102, 97,100,101, 0, 42,111, 98,106,101, 99,116, 95,102,114,111,109, 0, 42,111, 98,106,101, 99,116,
- 95,116,111, 0,102, 97,108,108,111,102,102, 95,114, 97,100,105,117,115, 0,101,100,105,116, 95,102,108, 97,103,115, 0,100,101,
-102, 97,117,108,116, 95,119,101,105,103,104,116, 0, 42, 99,109, 97,112, 95, 99,117,114,118,101, 0, 97,100,100, 95,116,104,114,
-101,115,104,111,108,100, 0,114,101,109, 95,116,104,114,101,115,104,111,108,100, 0,109, 97,115,107, 95, 99,111,110,115,116, 97,
-110,116, 0,109, 97,115,107, 95,100,101,102,103,114,112, 95,110, 97,109,101, 91, 54, 52, 93, 0,109, 97,115,107, 95,116,101,120,
- 95,117,115,101, 95, 99,104, 97,110,110,101,108, 0, 42,109, 97,115,107, 95,116,101,120,116,117,114,101, 0, 42,109, 97,115,107,
- 95,116,101,120, 95,109, 97,112, 95,111, 98,106, 0,109, 97,115,107, 95,116,101,120, 95,109, 97,112,112,105,110,103, 0,109, 97,
-115,107, 95,116,101,120, 95,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 54, 52, 93, 0,112, 97,100, 95,105, 49, 0,100,
-101,102,103,114,112, 95,110, 97,109,101, 95, 97, 91, 54, 52, 93, 0,100,101,102,103,114,112, 95,110, 97,109,101, 95, 98, 91, 54,
- 52, 93, 0,100,101,102, 97,117,108,116, 95,119,101,105,103,104,116, 95, 97, 0,100,101,102, 97,117,108,116, 95,119,101,105,103,
-104,116, 95, 98, 0,109,105,120, 95,109,111,100,101, 0,109,105,120, 95,115,101,116, 0,112, 97,100, 95, 99, 49, 91, 54, 93, 0,
-112,114,111,120,105,109,105,116,121, 95,109,111,100,101, 0,112,114,111,120,105,109,105,116,121, 95,102,108, 97,103,115, 0, 42,
-112,114,111,120,105,109,105,116,121, 95,111, 98, 95,116, 97,114,103,101,116, 0,109,105,110, 95,100,105,115,116, 0,109, 97,120,
- 95,100,105,115,116, 0,112, 97,100, 95,115, 49, 0, 42, 99, 97,110,118, 97,115, 0, 42, 98,114,117,115,104, 0,116,104,114,101,
-115,104,111,108,100, 0,115, 99, 97,108,101, 0,104,101,114,109,105,116,101, 95,110,117,109, 0, 42,108, 97,116,116, 0,112,110,
-116,115,119, 0,111,112,110,116,115,117, 0,111,112,110,116,115,118, 0,111,112,110,116,115,119, 0,116,121,112,101,117, 0,116,
-121,112,101,118, 0,116,121,112,101,119, 0,102,117, 0,102,118, 0,102,119, 0,100,117, 0,100,118, 0,100,119, 0, 42,100,101,
-102, 0, 42,108, 97,116,116,105, 99,101,100, 97,116, 97, 0,108, 97,116,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,
-116,108, 97,116,116, 0,118,101, 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117,108,112,116, 0,112, 97,114,116,121,112,101, 0,
-112, 97,114, 49, 0,112, 97,114, 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, 98,115,116,114, 91, 54, 52, 93, 0, 42,116,114,
- 97, 99,107, 0, 42,112,114,111,120,121, 0, 42,112,114,111,120,121, 95,103,114,111,117,112, 0, 42,112,114,111,120,121, 95,102,
-114,111,109, 0, 42, 97, 99,116,105,111,110, 0, 42,112,111,115,101,108,105, 98, 0, 42,112,111,115,101, 0, 42,103,112,100, 0,
- 97,118,115, 0, 42,109,112, 97,116,104, 0, 99,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108,115, 0,101,102,
-102,101, 99,116, 0,100,101,102, 98, 97,115,101, 0,109,111,100,105,102,105,101,114,115, 0,114,101,115,116,111,114,101, 95,109,
-111,100,101, 0, 42,109, 97,116, 98,105,116,115, 0, 97, 99,116, 99,111,108, 0,100,108,111, 99, 91, 51, 93, 0,111,114,105,103,
- 91, 51, 93, 0,100,115,105,122,101, 91, 51, 93, 0,100,115, 99, 97,108,101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,
-113,117, 97,116, 91, 52, 93, 0,114,111,116, 65,120,105,115, 91, 51, 93, 0,100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114,
-111,116, 65,110,103,108,101, 0,100,114,111,116, 65,110,103,108,101, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,
-110,115,116,105,110,118, 91, 52, 93, 91, 52, 93, 0,105,109, 97,116, 95,114,101,110, 91, 52, 93, 91, 52, 93, 0,108, 97,121, 0,
-112, 97,100, 54, 0, 99,111,108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112,114,111,116,101, 99,116,102,108,
- 97,103, 0,116,114, 97, 99,107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102,108, 97,103, 0,105,112,111,102,
-108, 97,103, 0,115, 99, 97,102,108, 97,103, 0,115, 99, 97,118,105,115,102,108, 97,103, 0,112, 97,100, 53, 0,100,117,112,111,
-110, 0,100,117,112,111,102,102, 0,100,117,112,115,116, 97, 0,100,117,112,101,110,100, 0,115,102, 0,109, 97,115,115, 0,100,
- 97,109,112,105,110,103, 0,105,110,101,114,116,105, 97, 0,102,111,114,109,102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,
-110,103, 0,109, 97,114,103,105,110, 0,109, 97,120, 95,118,101,108, 0,109,105,110, 95,118,101,108, 0,109, 95, 99,111,110,116,
- 97, 99,116, 80,114,111, 99,101,115,115,105,110,103, 84,104,114,101,115,104,111,108,100, 0,111, 98,115,116, 97, 99,108,101, 82,
- 97,100, 0,114,111,116,109,111,100,101, 0, 98,111,117,110,100,116,121,112,101, 0, 99,111,108,108,105,115,105,111,110, 95, 98,
-111,117,110,100,116,121,112,101, 0,114,101,115,116,114,105, 99,116,102,108, 97,103, 0,100,116, 0,101,109,112,116,121, 95,100,
-114, 97,119,116,121,112,101, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117,112,102, 97, 99,101,115, 99,
- 97, 0,112,114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114,115, 0, 97, 99,116,117, 97,
-116,111,114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109,101,102,108, 97,103, 0,103,
- 97,109,101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, 97,110,105,115,111,116,114,
-111,112,105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110,116,115, 0,110,108, 97,115,
-116,114,105,112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101,109, 0, 42,115,111,102,116,
- 0, 42,100,117,112, 95,103,114,111,117,112, 0, 98,111,100,121, 95,116,121,112,101, 0,115,104, 97,112,101,102,108, 97,103, 0,
- 42,102,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102,111,114,109,
- 0, 42,100,101,114,105,118,101,100, 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0, 99,117,115,116,
-111,109,100, 97,116, 97, 95,109, 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116, 97,116,101, 0,103,112,117,
-108, 97,109,112, 0,112, 99, 95,105,100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0,105,109, 97, 95,111,102,115, 91, 50,
- 93, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, 97,121, 0,111,109, 97,116, 91, 52,
- 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 0,110,111, 95,100,114, 97,119, 0, 97,110,105,109, 97,116,101,100, 0,100,101,
-102,108,101, 99,116, 0,102,111,114, 99,101,102,105,101,108,100, 0,115,104, 97,112,101, 0,116,101,120, 95,109,111,100,101, 0,
-107,105,110,107, 0,107,105,110,107, 95, 97,120,105,115, 0,122,100,105,114, 0,102, 95,115,116,114,101,110,103,116,104, 0,102,
- 95,100, 97,109,112, 0,102, 95,102,108,111,119, 0,102, 95,115,105,122,101, 0,102, 95,112,111,119,101,114, 0,109, 97,120,100,
-105,115,116, 0,109,105,110,100,105,115,116, 0,102, 95,112,111,119,101,114, 95,114, 0,109, 97,120,114, 97,100, 0,109,105,110,
-114, 97,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,100,101,102, 95,114,100, 97,109,112, 0,112,100,101,102, 95,112,101,
-114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,100,101,102, 95,114,102,114,105, 99,116, 0,112,100,101,102, 95,115,
-116,105, 99,107,110,101,115,115, 0, 97, 98,115,111,114,112,116,105,111,110, 0,112,100,101,102, 95,115, 98,100, 97,109,112, 0,
-112,100,101,102, 95,115, 98,105,102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99,108,117,109,112, 95,102, 97, 99, 0,
- 99,108,117,109,112, 95,112,111,119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110,107, 95,115,104, 97,112,101, 0,107,
-105,110,107, 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42,114,110,103, 0,
-102, 95,110,111,105,115,101, 0,119,101,105,103,104,116, 91, 49, 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, 97,118,105,116,
-121, 0,114,116, 91, 51, 93, 0,116,111,116,100, 97,116, 97, 0,102,114, 97,109,101, 0,116,111,116,112,111,105,110,116, 0,100,
- 97,116, 97, 95,116,121,112,101,115, 0, 42,100, 97,116, 97, 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,101,120,116,114, 97,
-100, 97,116, 97, 0,115,116,101,112, 0,115,105,109,102,114, 97,109,101, 0,115,116, 97,114,116,102,114, 97,109,101, 0,101,110,
-100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, 0,108, 97,115,116, 95,101,120, 97, 99,116, 0,108, 97,115,116,
- 95,118, 97,108,105,100, 0, 99,111,109,112,114,101,115,115,105,111,110, 0,112,114,101,118, 95,110, 97,109,101, 91, 54, 52, 93,
- 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0, 42, 99, 97, 99,104,101,100, 95,102,114, 97,
-109,101,115, 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, 95,101,100,105,116, 41,
- 40, 41, 0,108,105,110, 83,116,105,102,102, 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109,101, 0,118,105,116,101,
-114, 97,116,105,111,110,115, 0,112,105,116,101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97,116,105,111,110,115, 0,
- 99,105,116,101,114, 97,116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, 95, 67, 76, 0,107, 83,
- 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, 84, 95, 67, 76, 0,107,
- 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, 70, 0,107, 80, 82, 0,
-107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, 0,107, 65, 72, 82, 0,
- 99,111,108,108,105,115,105,111,110,102,108, 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105,116,101,114, 97,116,105,
-111,110,115, 0,119,101,108,100,105,110,103, 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111,105,110,116, 0, 42, 98,
-115,112,114,105,110,103, 0,109,115,103, 95,108,111, 99,107, 0,109,115,103, 95,118, 97,108,117,101, 0,110,111,100,101,109, 97,
-115,115, 0,110, 97,109,101,100, 86, 71, 95, 77, 97,115,115, 91, 54, 52, 93, 0,103,114, 97,118, 0,109,101,100,105, 97,102,114,
-105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0,103,111, 97,108,115,112,
-114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120,103,111, 97,108, 0,100,
-101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,112, 0,110, 97,109,101,100, 86, 71, 95, 83,111,102,116,103,111, 97,
-108, 91, 54, 52, 93, 0,102,117,122,122,121,110,101,115,115, 0,105,110,115,112,114,105,110,103, 0,105,110,102,114,105, 99,116,
- 0,110, 97,109,101,100, 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 54, 52, 93, 0,101,102,114, 97, 0,105,110,116,101,114,
-118, 97,108, 0,108,111, 99, 97,108, 0,115,111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101,121,115, 0,116,111,116,
-112,111,105,110,116,107,101,121, 0,115,101, 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, 97,108,108, 0, 98, 97,
-108,108,100, 97,109,112, 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, 97,101,114,111,101,100,
-103,101, 0,109,105,110,108,111,111,112,115, 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, 0,115,111,108,118,101,
-114, 95, 73, 68, 0,112,108, 97,115,116,105, 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, 0, 42,115, 99,114, 97,
-116, 99,104, 0,115,104,101, 97,114,115,116,105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105,110,116, 99, 97, 99,104,
-101, 0, 42,101,102,102,101, 99,116,111,114, 95,119,101,105,103,104,116,115, 0,108, 99,111,109, 91, 51, 93, 0,108,114,111,116,
- 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, 0,108, 97,115,116, 95,102,114, 97,109,101, 0,118,
-101,108, 91, 51, 93, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,100,118, 97,110, 99,101,100,111,112,116,105,111,110,115, 0,
-114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,114,101,118,105,101,119,114,101,115,120,121,122, 0,114,101, 97,108,
-115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,100,101, 0,114,101,110,100,101,114, 68,105,115,112,108, 97,
-121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,108,117,101, 0,118,105,115, 99,111,115,105,116,121, 77,111,
-100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111,110,101,110,116, 0,103,114, 97,118, 91, 51, 93, 0, 97,110,105,
-109, 83,116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0, 98, 97,107,101, 83,116, 97,114,116, 0, 98, 97,107,101, 69,110,100,
- 0,102,114, 97,109,101, 79,102,102,115,101,116, 0,103,115,116, 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,105,110,105,
- 86,101,108,120, 0,105,110,105, 86,101,108,121, 0,105,110,105, 86,101,108,122, 0, 42,111,114,103, 77,101,115,104, 0, 42,109,
-101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97, 80, 97,116,104, 91, 49, 48, 50, 52, 93, 0, 98, 98, 83,116, 97,114,116,
- 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116,121,112,101, 70,108, 97,103,115, 0,100,111,109, 97,105,110, 78,111,
-118,101, 99,103,101,110, 0,118,111,108,117,109,101, 73,110,105,116, 84,121,112,101, 0,112, 97,114,116, 83,108,105,112, 86, 97,
-108,117,101, 0,103,101,110,101,114, 97,116,101, 84,114, 97, 99,101,114,115, 0,103,101,110,101,114, 97,116,101, 80, 97,114,116,
-105, 99,108,101,115, 0,115,117,114,102, 97, 99,101, 83,109,111,111,116,104,105,110,103, 0,115,117,114,102, 97, 99,101, 83,117,
- 98,100,105,118,115, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 83,105,122,101, 0,112, 97,114,116,105, 99,108,101, 73,110,
-102, 65,108,112,104, 97, 0,102, 97,114, 70,105,101,108,100, 83,105,122,101, 0, 42,109,101,115,104, 86,101,108,111, 99,105,116,
-105,101,115, 0, 99,112,115, 84,105,109,101, 83,116, 97,114,116, 0, 99,112,115, 84,105,109,101, 69,110,100, 0, 99,112,115, 81,
-117, 97,108,105,116,121, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0, 97,116,116,114,
- 97, 99,116,102,111,114, 99,101, 82, 97,100,105,117,115, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 83,116,114,101,
-110,103,116,104, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 82, 97,100,105,117,115, 0,108, 97,115,116,103,111,111,
-100,102,114, 97,109,101, 0, 97,110,105,109, 82, 97,116,101, 0,109,105,115,116,121,112,101, 0,104,111,114,114, 0,104,111,114,
-103, 0,104,111,114, 98, 0,122,101,110,114, 0,122,101,110,103, 0,122,101,110, 98, 0,102, 97,115,116, 99,111,108, 0,101,120,
-112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0,108,105,110,102, 97, 99, 0,108,111,103,102, 97, 99, 0,103,
-114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111,120, 82, 97,100,105,117,115, 0,115,107,121,116,121,112,101,
- 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121,115,105, 99,115, 69,110,103,105,110,101, 0,116,105, 99,114,
- 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0,112,104,121,115,117, 98,115,116,101,112, 0,109, 97,120,112,
-104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115,116, 97, 0,109,105,115,116,100,105,115,116, 0,109,105,115,
-116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115,116, 97,114, 98, 0,115,116, 97,114,107, 0,115,116, 97,114,
-115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0,115,116, 97,114,100,105,115,116, 0,115,116, 97,114, 99,111,
-108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102,101,110,100, 0,100,111,102,109,105,110, 0,100,111,102,109,
- 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, 97, 99, 0, 97,111,101,110,101,114,103,121, 0, 97,111, 98,
-105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, 0, 97,111,109,105,120, 0, 97,111, 99,111,108,111,114, 0,
- 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97,111, 95, 97,100, 97,112,116, 95,115,112,101,101,100, 95,102,
- 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111,114, 0, 97,111, 95, 97,112,112,114,111,120, 95, 99,111,114,
-114,101, 99,116,105,111,110, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95,101,110,101,114,103,121, 0, 97,111, 95,101,110,
-118, 95,101,110,101,114,103,121, 0, 97,111, 95,112, 97,100, 50, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95, 98,111,117,
-110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, 97,111, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0, 97,111, 95,103, 97,
-116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95,112, 97,115,115,101,115, 0, 42, 97,111,
-115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,115,101,108, 99,111,108, 0,115,120, 0,115,121, 0, 42,108,
-112, 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, 70,111,114,109, 97,116, 0, 99, 98, 80, 97,114,109,
-115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,101,114, 0,100,119, 75,101,121, 70,114, 97,109,101, 69,
-118,101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,121,116,101,115, 80,101,114, 83,101, 99,111,110,100, 0,
-100,119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, 97,118,101, 69,118,101,114,121, 0, 97,118,105, 99,111,100,
-101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,115, 0, 42,112, 97,100, 0, 99,100, 83,105,122,101,
- 0,113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,111,100,101, 99, 84,121,112,101, 0, 99,111,100,101,
- 99, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0, 99,111,100,101, 99, 0, 99,111,100,101, 99, 70,108, 97,103,115,
- 0, 99,111,108,111,114, 68,101,112,116,104, 0, 99,111,100,101, 99, 84,101,109,112,111,114, 97,108, 81,117, 97,108,105,116,121,
- 0,109,105,110, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 84,101,109,112,111,114, 97,108, 81,117,
- 97,108,105,116,121, 0,107,101,121, 70,114, 97,109,101, 82, 97,116,101, 0, 98,105,116, 82, 97,116,101, 0, 97,117,100,105,111,
- 99,111,100,101, 99, 84,121,112,101, 0, 97,117,100,105,111, 83, 97,109,112,108,101, 82, 97,116,101, 0, 97,117,100,105,111, 66,
-105,116, 68,101,112,116,104, 0, 97,117,100,105,111, 67,104, 97,110,110,101,108,115, 0, 97,117,100,105,111, 67,111,100,101, 99,
- 70,108, 97,103,115, 0, 97,117,100,105,111, 66,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 95, 99,111,100,101, 99, 0,118,
-105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111,
- 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95, 99,104, 97,110,110,101,108,115, 0, 97,117,100,105,111, 95,112, 97,
-100, 0, 97,117,100,105,111, 95,118,111,108,117,109,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,110, 95,114,
- 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,101, 0,109,
-117,120, 95,112, 97, 99,107,101,116, 95,115,105,122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,116,101, 0,
-109, 97,105,110, 0,115,112,101,101,100, 95,111,102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102, 97, 99,116,
-111,114, 0,100,105,115,116, 97,110, 99,101, 95,109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,100,101, 0,
- 42,108,105,103,104,116, 95,111,118,101,114,114,105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,102,108, 97,
-103, 0,112, 97,115,115,102,108, 97,103, 0,112, 97,115,115, 95,120,111,114, 0,105,109,116,121,112,101, 0,112,108, 97,110,101,
-115, 0,113,117, 97,108,105,116,121, 0, 99,111,109,112,114,101,115,115, 0,101,120,114, 95, 99,111,100,101, 99, 0, 99,105,110,
-101,111,110, 95,102,108, 97,103, 0, 99,105,110,101,111,110, 95,119,104,105,116,101, 0, 99,105,110,101,111,110, 95, 98,108, 97,
- 99,107, 0, 99,105,110,101,111,110, 95,103, 97,109,109, 97, 0,106,112, 50, 95,102,108, 97,103, 0,105,109, 95,102,111,114,109,
- 97,116, 0, 42, 97,118,105, 99,111,100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97,116, 97, 0,113,116,
- 99,111,100,101, 99,115,101,116,116,105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,115,117, 98,102,114, 97,
-109,101, 0,112,115,102,114, 97, 0,112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,112,116,111, 0,116,
-104,114,101, 97,100,115, 0,102,114, 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, 0,101,100,
-103,101, 71, 0,101,100,103,101, 66, 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,121,112,108, 97,121,
- 0,102,114,101,113,112,108, 97,121, 0, 97,116,116,114,105, 98, 0,102,114, 97,109,101, 95,115,116,101,112, 0,115,116,101,114,
-101,111,109,111,100,101, 0,100,105,109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,105,109,115,105,122,
-101, 0,120,115, 99,104, 0,121,115, 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,115,117, 98,105,109,116,
-121,112,101, 0,100,105,115,112,108, 97,121,109,111,100,101, 0,115, 99,101,109,111,100,101, 0,114, 97,121,116,114, 97, 99,101,
- 95,111,112,116,105,111,110,115, 0,114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99,116,117,114,101, 0,111, 99,114,101,
-115, 0,112, 97,100, 52, 0, 97,108,112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101,100,103,
-101,105,110,116, 0,115, 97,102,101,116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97,121,101,
-114,115, 0, 97, 99,116,108, 97,121, 0,109, 98,108,117,114, 95,115, 97,109,112,108,101,115, 0,120, 97,115,112, 0,121, 97,115,
-112, 0,102,114,115, 95,115,101, 99, 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103,116, 95,102,
-108, 97,103, 0,112,111,115,116,103, 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, 0,100,105,
-116,104,101,114, 95,105,110,116,101,110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95,102,105,108,
-116,101,114, 0, 98, 97,107,101, 95,109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95,110,111,114,
-109, 97,108, 95,115,112, 97, 99,101, 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107,101, 95,109,
- 97,120,100,105,115,116, 0, 98, 97,107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, 0,112,105,
- 99, 91, 49, 48, 50, 52, 93, 0,115,116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115,116, 97,109,
-112, 95,117,100, 97,116, 97, 91, 55, 54, 56, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115,116, 97,109,
-112, 91, 52, 93, 0,115,101,113, 95,112,114,101,118, 95,116,121,112,101, 0,115,101,113, 95,114,101,110,100, 95,116,121,112,101,
- 0,115,101,113, 95,102,108, 97,103, 0,112, 97,100, 53, 91, 53, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103, 0,
-115,105,109,112,108,105,102,121, 95,115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97,100,111,119,
-115, 97,109,112,108,101,115, 0,115,105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105,109,112,108,
-105,102,121, 95, 97,111,115,115,115, 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98,108, 97, 99,
-107, 0, 99,105,110,101,111,110,103, 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95,100,101,112,
-116,104, 0,114,112, 97,100, 51, 0,100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,111,109,101, 97,110,
-103,108,101, 0,100,111,109,101,116,105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101,116,101,120,
-116, 0,101,110,103,105,110,101, 91, 51, 50, 93, 0,110, 97,109,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,112,
-101,114, 99, 0,115,117, 98,115,117,114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,
-120, 0, 97,111, 95,101,114,114,111,114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,116,
- 0, 99,111,108, 91, 51, 93, 0, 99,101,108,108,115,105,122,101, 0, 99,101,108,108,104,101,105,103,104,116, 0, 97,103,101,110,
-116,109, 97,120,115,108,111,112,101, 0, 97,103,101,110,116,109, 97,120, 99,108,105,109, 98, 0, 97,103,101,110,116,104,101,105,
-103,104,116, 0, 97,103,101,110,116,114, 97,100,105,117,115, 0,101,100,103,101,109, 97,120,108,101,110, 0,101,100,103,101,109,
- 97,120,101,114,114,111,114, 0,114,101,103,105,111,110,109,105,110,115,105,122,101, 0,114,101,103,105,111,110,109,101,114,103,
-101,115,105,122,101, 0,118,101,114,116,115,112,101,114,112,111,108,121, 0,100,101,116, 97,105,108,115, 97,109,112,108,101,100,
-105,115,116, 0,100,101,116, 97,105,108,115, 97,109,112,108,101,109, 97,120,101,114,114,111,114, 0,102,114, 97,109,105,110,103,
- 0,112,108, 97,121,101,114,102,108, 97,103, 0,114,116, 49, 0,114,116, 50, 0, 97, 97,115, 97,109,112,108,101,115, 0,112, 97,
-100, 52, 91, 51, 93, 0,100,111,109,101, 0,115,116,101,114,101,111,102,108, 97,103, 0,101,121,101,115,101,112, 97,114, 97,116,
-105,111,110, 0,114,101, 99, 97,115,116, 68, 97,116, 97, 0,109, 97,116,109,111,100,101, 0,101,120,105,116,107,101,121, 0,111,
- 98,115,116, 97, 99,108,101, 83,105,109,117,108, 97,116,105,111,110, 0,108,101,118,101,108, 72,101,105,103,104,116, 0, 42, 99,
- 97,109,101,114, 97, 0, 42,112, 97,105,110,116, 95, 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111,114,
- 95, 99,111,108, 91, 52, 93, 0,112, 97,105,110,116, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,114,109, 97,108, 95,
- 97,110,103,108,101, 0,115, 99,114,101,101,110, 95,103,114, 97, 98, 95,115,105,122,101, 91, 50, 93, 0, 42,112, 97,105,110,116,
- 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,100,100,107,101,121,
- 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,100,105,115,116, 0,
-115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,101,112, 0,102, 97,
-100,101, 95,102,114, 97,109,101,115, 0,114, 97,100,105, 97,108, 95,115,121,109,109, 91, 51, 93, 0,108, 97,115,116, 95,120, 0,
-108, 97,115,116, 95,121, 0,108, 97,115,116, 95, 97,110,103,108,101, 0,100,114, 97,119, 95, 97,110, 99,104,111,114,101,100, 0,
- 97,110, 99,104,111,114,101,100, 95,115,105,122,101, 0, 97,110, 99,104,111,114,101,100, 95,108,111, 99, 97,116,105,111,110, 91,
- 51, 93, 0, 97,110, 99,104,111,114,101,100, 95,105,110,105,116,105, 97,108, 95,109,111,117,115,101, 91, 50, 93, 0,100,114, 97,
-119, 95,112,114,101,115,115,117,114,101, 0,112,114,101,115,115,117,114,101, 95,118, 97,108,117,101, 0,115,112,101, 99,105, 97,
-108, 95,114,111,116, 97,116,105,111,110, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112, 97,105,110,116, 95,
-112,114,101,118, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,
-115, 0, 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,116, 0, 42,117,118,115, 99,117,108,112,116, 0,118,103,114,111,
-117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101,114,116,121,112,101, 0,101,100,105,116, 98,117,116,102,108, 97,103,
- 0,106,111,105,110,116,114,105,108,105,109,105,116, 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,
-115, 0,100,111,117, 98,108,105,109,105,116, 0,110,111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101,
- 0,115,101,103,109,101,110,116,115, 0,114,105,110,103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,
-101,114, 0,117,118, 99, 97,108, 99, 95,114, 97,100,105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101,
- 0,117,118, 99, 97,108, 99, 95,109, 97,114,103,105,110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99,
- 97,108, 99, 95,109, 97,112, 97,108,105,103,110, 0,117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103,
- 0,117,118, 95,115,101,108,101, 99,116,109,111,100,101, 0,117,118, 95,115,117, 98,115,117,114,102, 95,108,101,118,101,108, 0,
-103,112,101,110, 99,105,108, 95,102,108, 97,103,115, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105,109,
- 97,112, 97,105,110,116, 0,112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105,122,
-101, 0,115,101,108,101, 99,116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117,116,
-111,107,101,121, 95,109,111,100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0,109,117,108,116,105,114,101,115, 95,
-115,117, 98,100,105,118, 95,116,121,112,101, 0,112, 97,100, 50, 91, 53, 93, 0,115,107,103,101,110, 95,114,101,115,111,108,117,
-116,105,111,110, 0,115,107,103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,
-103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,
-103,116,104, 95,114, 97,116,105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,
-101,110, 95, 97,110,103,108,101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110,
- 95,108,105,109,105,116, 0,115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,
-110, 95,114,101,116, 97,114,103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,
-116, 97,114,103,101,116, 95,108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,
-103,101,116, 95,100,105,115,116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,
-115, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,
-115,115,101,115, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110,
- 95,109,117,108,116,105, 95,108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,
-101, 95,115,107,101,116, 99,104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,
-114,116, 0,115,107,103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,
-110, 95,114,101,116, 97,114,103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,
-116, 95,114,111,108,108, 0,115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,
-110, 95,110,117,109, 95,115,116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,101,100,103,101, 95,109,
-111,100,101, 95,108,105,118,101, 95,117,110,119,114, 97,112, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,
-108, 97,103, 0,115,110, 97,112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,
-112, 95,109,111,100,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,111, 98,106,101, 99,116,115, 0,112, 97,100, 91,
- 53, 93, 0, 97,117,116,111, 95,110,111,114,109, 97,108,105,122,101, 0,109,117,108,116,105,112, 97,105,110,116, 0,117,115,101,
- 95,117,118, 95,115, 99,117,108,112,116, 0,117,118, 95,115, 99,117,108,112,116, 95,115,101,116,116,105,110,103,115, 0,117,118,
- 95,115, 99,117,108,112,116, 95,116,111,111,108, 0,117,118, 95,114,101,108, 97,120, 95,109,101,116,104,111,100, 0,115, 99,117,
-108,112,116, 95,112, 97,105,110,116, 95,115,101,116,116,105,110,103,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,
-117,110,105,102,105,101,100, 95,115,105,122,101, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,
-100, 95,117,110,112,114,111,106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,
-116, 95,117,110,105,102,105,101,100, 95, 97,108,112,104, 97, 0,117,110,105,102,105,101,100, 95,112, 97,105,110,116, 95,115,101,
-116,116,105,110,103,115, 0,116,111,116,111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,
-116,111,116, 99,117,114,118,101, 0,116,111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,
-108,101, 95,108,101,110,103,116,104, 0,115,121,115,116,101,109, 0,115,121,115,116,101,109, 95,114,111,116, 97,116,105,111,110,
- 0,103,114, 97,118,105,116,121, 91, 51, 93, 0,113,117,105, 99,107, 95, 99, 97, 99,104,101, 95,115,116,101,112, 0, 42,119,111,
-114,108,100, 0, 42,115,101,116, 0, 98, 97,115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,
-114,115,111,114, 91, 51, 93, 0,116,119, 99,101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120,
- 91, 51, 93, 0,108, 97,121, 97, 99,116, 0,108, 97,121, 95,117,112,100, 97,116,101,100, 0, 42,101,100, 0, 42,116,111,111,108,
-115,101,116,116,105,110,103,115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0,116,114, 97,110,115,102,111,114,109, 95,
-115,112, 97, 99,101,115, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101,
- 95,104, 97,110,100,108,101, 0, 42,115,111,117,110,100, 95,115, 99,114,117, 98, 95,104, 97,110,100,108,101, 0, 42,115,112,101,
- 97,107,101,114, 95,104, 97,110,100,108,101,115, 0, 42,102,112,115, 95,105,110,102,111, 0, 42,116,104,101, 68, 97,103, 0,100,
- 97,103,105,115,118, 97,108,105,100, 0,100, 97,103,102,108, 97,103,115, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,
-115,101,116, 0,107,101,121,105,110,103,115,101,116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95,115,
-101,116,116,105,110,103,115, 0, 42, 99,108,105,112, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 95,109,111,
-100, 97,108, 0, 99,117,115,101,114, 0, 98,108,101,110,100, 0,118,105,101,119, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52,
- 93, 0,118,105,101,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,
-114,115,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,
-116,111, 98, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0, 99,108,105,112, 91, 54,
- 93, 91, 52, 93, 0, 99,108,105,112, 95,108,111, 99, 97,108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,
-111, 99, 97,108,118,100, 0, 42,114,105, 0, 42,114,101,110,100,101,114, 95,101,110,103,105,110,101, 0, 42,100,101,112,116,104,
-115, 0, 42,115,109,115, 0, 42,115,109,111,111,116,104, 95,116,105,109,101,114, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93,
- 0,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,
-120,115,105,122,101, 0, 99, 97,109,122,111,111,109, 0,105,115, 95,112,101,114,115,112, 0,112,101,114,115,112, 0,118,105,101,
-119,108,111, 99,107, 0,116,119,100,114, 97,119,102,108, 97,103, 0,114,102,108, 97,103, 0,108,118,105,101,119,113,117, 97,116,
- 91, 52, 93, 0,108,112,101,114,115,112, 0,108,118,105,101,119, 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110,103,108,
-101, 91, 51, 93, 0,114,111,116, 95, 97,110,103,108,101, 0,114,111,116, 95, 97,120,105,115, 91, 51, 93, 0,114,101,103,105,111,
-110, 98, 97,115,101, 0,115,112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,
-104, 97,110,100,108,101,114, 91, 56, 93, 0, 98,117,110,100,108,101, 95,115,105,122,101, 0, 98,117,110,100,108,101, 95,100,114,
- 97,119,116,121,112,101, 0,108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 98,103,112,105, 99,
- 98, 97,115,101, 0, 42, 98,103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 54, 52, 93, 0,100,
-114, 97,119,116,121,112,101, 0,111, 98, 95, 99,101,110,116,114,101, 95, 99,117,114,115,111,114, 0,115, 99,101,110,101,108,111,
- 99,107, 0, 97,114,111,117,110,100, 0,103,114,105,100, 0,110,101, 97,114, 0,102, 97,114, 0,109,111,100,101,115,101,108,101,
- 99,116, 0,103,114,105,100,108,105,110,101,115, 0,103,114,105,100,115,117, 98,100,105,118, 0,103,114,105,100,102,108, 97,103,
- 0,116,119,116,121,112,101, 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103, 0,112, 97,100, 50, 91, 50, 93, 0, 97,102,
-116,101,114,100,114, 97,119, 95,116,114, 97,110,115,112, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121, 0, 97,102,
-116,101,114,100,114, 97,119, 95,120,114, 97,121,116,114, 97,110,115,112, 0,122, 98,117,102, 0,120,114, 97,121, 0,112, 97,100,
- 51, 91, 50, 93, 0, 42,112,114,111,112,101,114,116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,
-114, 0,109, 97,115,107, 0,109,105,110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,
-122,111,111,109, 0,115, 99,114,111,108,108, 0,115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,
-101,112,122,111,111,109, 0,107,101,101,112,111,102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,
-108,100,119,105,110,120, 0,111,108,100,119,105,110,121, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,
-117,109, 0,116, 97, 98, 95, 99,117,114, 0,114,112,116, 95,109, 97,115,107, 0,118, 50,100, 0, 42, 97,100,115, 0,103,104,111,
-115,116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0,109, 97,105,110,
- 98, 0,109, 97,105,110, 98,111, 0,109, 97,105,110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,
-105,101,119, 0,116,101,120,116,117,114,101, 95, 99,111,110,116,101,120,116, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116,
- 97,105, 99,111,110, 0, 42,112,105,110,105,100, 0, 42,116,101,120,117,115,101,114, 0,114,101,110,100,101,114, 95,115,105,122,
-101, 0, 99,104, 97,110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105,116,108,101, 91, 51, 50, 93,
- 0,100,105,114, 91, 49, 48, 53, 54, 93, 0,102,105,108,101, 91, 50, 53, 54, 93, 0,114,101,110, 97,109,101,102,105,108,101, 91,
- 50, 53, 54, 93, 0,114,101,110, 97,109,101,101,100,105,116, 91, 50, 53, 54, 93, 0,102,105,108,116,101,114, 95,103,108,111, 98,
- 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108, 95,102,105,114,115,116, 0,115,101,108, 95,108,
- 97,115,116, 0,115,111,114,116, 0,100,105,115,112,108, 97,121, 0,102, 95,102,112, 0,102,112, 95,115,116,114, 91, 56, 93, 0,
-115, 99,114,111,108,108, 95,111,102,102,115,101,116, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108,101,115, 0, 42,102,111,
-108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42,111,112, 0, 42,115,109,
-111,111,116,104,115, 99,114,111,108,108, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,114,101, 99,101,110,116,110,
-114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0,116,114,101,101, 0, 42,116,114,101,101,
-115,116,111,114,101, 0,115,101, 97,114, 99,104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, 97,114, 99,104, 95,116,
-115,101, 0,111,117,116,108,105,110,101,118,105,115, 0,115,116,111,114,101,102,108, 97,103, 0,115,101, 97,114, 99,104, 95,102,
-108, 97,103,115, 0, 42, 99,117,109, 97,112, 0,115, 99,111,112,101,115, 0,115, 97,109,112,108,101, 95,108,105,110,101, 95,104,
-105,115,116, 0, 99,117,114,115,111,114, 91, 50, 93, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 99,117,114,116,105,108,
-101, 0,108,111, 99,107, 0,112,105,110, 0,100,116, 95,117,118, 0,115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114,
-101,116, 99,104, 0, 42,116,101,120,116, 0,116,111,112, 0,118,105,101,119,108,105,110,101,115, 0,109,101,110,117,110,114, 0,
-108,104,101,105,103,104,116, 0, 99,119,105,100,116,104, 0,108,105,110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,
-115,104,111,119,108,105,110,101,110,114,115, 0,116, 97, 98,110,117,109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120,
- 0,108,105,110,101, 95,104,108,105,103,104,116, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116,
- 0,112,105,120, 95,112,101,114, 95,108,105,110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,
-111,114,100,119,114, 97,112, 0,100,111,112,108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,
-101,112,108, 97, 99,101,115,116,114, 91, 50, 53, 54, 93, 0,109, 97,114,103,105,110, 95, 99,111,108,117,109,110, 0, 42,100,114,
- 97,119, 99, 97, 99,104,101, 0, 42,112,121, 95,100,114, 97,119, 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98,
-117,116,116,111,110, 0, 42,112,121, 95, 98,114,111,119,115,101,114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,
-111, 98, 97,108,100,105, 99,116, 0,108, 97,115,116,115,112, 97, 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 49, 48,
- 50, 52, 93, 0,115, 99,114,105,112,116, 97,114,103, 91, 50, 53, 54, 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,
-114,101,102,115, 0, 42, 97,114,114, 97,121, 0, 99, 97, 99,104,101,115, 0, 99, 97, 99,104,101, 95,100,105,115,112,108, 97,121,
- 0, 42,105,100, 0, 97,115,112,101, 99,116, 0,112, 97,100,102, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101,
- 0,116,114,101,101,116,121,112,101, 0,116,101,120,102,114,111,109, 0,115,104, 97,100,101,114,102,114,111,109, 0,108,105,110,
-107,100,114, 97,103, 0,108,101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,114, 0,115, 99,114,111,108,108, 98, 97, 99,
-107, 0,104,105,115,116,111,114,121, 0,112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51,
- 50, 93, 0,115,101,108, 95,115,116, 97,114,116, 0,115,101,108, 95,101,110,100, 0,102,105,108,116,101,114, 91, 54, 52, 93, 0,
-120,108,111, 99,107,111,102, 0,121,108,111, 99,107,111,102, 0,117,115,101,114, 0,112, 97,116,104, 95,108,101,110,103,116,104,
- 0,108,111, 99, 91, 50, 93, 0,115,116, 97, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0,117,110,105,115,116, 97, 98,109, 97,116,
- 91, 52, 93, 91, 52, 93, 0,112,111,115,116,112,114,111, 99, 95,102,108, 97,103, 0,114,117,110,116,105,109,101, 95,102,108, 97,
-103, 0,102,105,108,101,110, 97,109,101, 91, 49, 48, 50, 52, 93, 0, 98,108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,
-100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,
-111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,
-104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,101,108,116,105,116,108,101, 0,103,114,111,117,112,108,
- 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,
-109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,
-111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,
-101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,
-108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,111,117,116,108,105,110,101, 91, 52, 93, 0,105,110,110,
-101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93, 0,105,116,101,109, 91, 52, 93, 0,116,101,120,116, 91,
- 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,100,101,100, 0,115,104, 97,100,101,116,111,112, 0,115,
-104, 97,100,101,100,111,119,110, 0, 97,108,112,104, 97, 95, 99,104,101, 99,107, 0,105,110,110,101,114, 95, 97,110,105,109, 91,
- 52, 93, 0,105,110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52,
- 93, 0,105,110,110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91,
- 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,108, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93,
- 0,115,104,111,119, 95,104,101, 97,100,101,114, 0,119, 99,111,108, 95,114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,
-111,111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108, 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,
-116,105,111,110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0,119, 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,
-117,109,115,108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110,117, 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110,
- 0,119, 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119,
- 99,111,108, 95,116,111,111,108,116,105,112, 0,119, 99,111,108, 95, 98,111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108,
- 0,119, 99,111,108, 95,112,114,111,103,114,101,115,115, 0,119, 99,111,108, 95,108,105,115,116, 95,105,116,101,109, 0,119, 99,
-111,108, 95,115,116, 97,116,101, 0,112, 97,110,101,108, 0,105, 99,111,110,102,105,108,101, 91, 50, 53, 54, 93, 0,105, 99,111,
-110, 95, 97,108,112,104, 97, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105,116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105,
- 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,105,116,108,101, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91,
- 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,
-117,116,116,111,110, 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,
-116,116,111,110, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,
-108,101, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91,
- 52, 93, 0,112, 97,110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108,
- 95,116,101,120,116, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49,
- 91, 52, 93, 0,115,104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,
-119,105,114,101, 91, 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,108, 97,109,112, 91, 52, 93, 0,115,112,101, 97,107,101,
-114, 91, 52, 93, 0,101,109,112,116,121, 91, 52, 93, 0, 99, 97,109,101,114, 97, 91, 52, 93, 0,112, 97,100, 91, 56, 93, 0, 97,
- 99,116,105,118,101, 91, 52, 93, 0,103,114,111,117,112, 91, 52, 93, 0,103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52,
- 93, 0,116,114, 97,110,115,102,111,114,109, 91, 52, 93, 0,118,101,114,116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,
-115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 91, 52, 93, 0,101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93,
- 0,101,100,103,101, 95,115,101, 97,109, 91, 52, 93, 0,101,100,103,101, 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101,
- 95,102, 97, 99,101,115,101,108, 91, 52, 93, 0,101,100,103,101, 95, 99,114,101, 97,115,101, 91, 52, 93, 0,102, 97, 99,101, 91,
- 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,101,120,
-116,114, 97, 95,101,100,103,101, 95,108,101,110, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,110,103,108,101,
- 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,114,101, 97, 91, 52, 93, 0,112, 97,100, 51, 91, 52, 93, 0,110,
-111,114,109, 97,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,110,111,114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,
-111,108,105,100, 91, 52, 93, 0, 98,111,110,101, 95,112,111,115,101, 91, 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,
-114,105,112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, 99,102,114, 97,109,101, 91, 52, 93, 0,110,117,114, 98, 95,117,108,105,
-110,101, 91, 52, 93, 0,110,117,114, 98, 95,118,108,105,110,101, 91, 52, 93, 0, 97, 99,116, 95,115,112,108,105,110,101, 91, 52,
- 93, 0,110,117,114, 98, 95,115,101,108, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,118,108,105,
-110,101, 91, 52, 93, 0,108, 97,115,116,115,101,108, 95,112,111,105,110,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,102,114,
-101,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101, 99,116,
- 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,117,116,111, 95,
- 99,108, 97,109,112,101,100, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,102,114,101,101, 91, 52, 93, 0,104, 97,
-110,100,108,101, 95,115,101,108, 95, 97,117,116,111, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95,118,101, 99,116,
- 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,108,105,103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,
-101,108, 95, 97,117,116,111, 95, 99,108, 97,109,112,101,100, 91, 52, 93, 0,100,115, 95, 99,104, 97,110,110,101,108, 91, 52, 93,
- 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,111,117,116,112,117,116,
- 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,102,
-111, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,101,114,114,111,114, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95, 99,117,
-114,115,111,114, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,101, 0,111,117,116,108,105,110,101, 95,119,105,100,116,
-104, 0,102, 97, 99,101,100,111,116, 95,115,105,122,101, 0,110,111,111,100,108,101, 95, 99,117,114,118,105,110,103, 0,115,121,
-110,116, 97,120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52, 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,
-121,110,116, 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91, 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,109,111,
-118,105,101, 99,108,105,112, 91, 52, 93, 0,105,109, 97,103,101, 91, 52, 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,
-105,111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,112,108,117,103,105,110, 91, 52, 93, 0,116,114, 97,110,115,105,
-116,105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,116,109,101,115,104, 95, 97, 99,116,105,118,101, 91,
- 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,
-120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,105,122,101, 0,109,
- 97,114,107,101,114, 95,111,117,116,108,105,110,101, 91, 52, 93, 0,109, 97,114,107,101,114, 91, 52, 93, 0, 97, 99,116, 95,109,
- 97,114,107,101,114, 91, 52, 93, 0,115,101,108, 95,109, 97,114,107,101,114, 91, 52, 93, 0,100,105,115, 95,109, 97,114,107,101,
-114, 91, 52, 93, 0,108,111, 99,107, 95,109, 97,114,107,101,114, 91, 52, 93, 0, 98,117,110,100,108,101, 95,115,111,108,105,100,
- 91, 52, 93, 0,112, 97,116,104, 95, 98,101,102,111,114,101, 91, 52, 93, 0,112, 97,116,104, 95, 97,102,116,101,114, 91, 52, 93,
- 0, 99, 97,109,101,114, 97, 95,112, 97,116,104, 91, 52, 93, 0,104,112, 97,100, 91, 55, 93, 0,112,114,101,118,105,101,119, 95,
- 98, 97, 99,107, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,102, 97, 99,101, 91, 52, 93, 0,112,
-114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,101,100,103,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,
-105,116, 99,104, 95,118,101,114,116, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,115,116,105,116,
- 99,104, 97, 98,108,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,117,110,115,116,105,116, 99,
-104, 97, 98,108,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95, 97, 99,116,105,118,101, 91, 52,
- 93, 0,109, 97,116, 99,104, 91, 52, 93, 0,115,101,108,101, 99,116,101,100, 95,104,105,103,104,108,105,103,104,116, 91, 52, 93,
- 0,115,111,108,105,100, 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0,116,
-105,112,111, 0,116,105,110,102,111, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, 0,116,101,
-120,116, 0,116,111,111,112,115, 0,116,116,105,109,101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,
-114,112,114,101,102, 0,116, 99,111,110,115,111,108,101, 0,116, 99,108,105,112, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,
-116,105,118,101, 95,116,104,101,109,101, 95, 97,114,101, 97, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0,115,112,101, 99, 91,
- 52, 93, 0,100,117,112,102,108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 55, 54, 56, 93,
- 0,102,111,110,116,100,105,114, 91, 55, 54, 56, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 48, 50, 52, 93, 0,116,101,
-120,116,117,100,105,114, 91, 55, 54, 56, 93, 0,112,108,117,103,116,101,120,100,105,114, 91, 55, 54, 56, 93, 0,112,108,117,103,
-115,101,113,100,105,114, 91, 55, 54, 56, 93, 0,112,121,116,104,111,110,100,105,114, 91, 55, 54, 56, 93, 0,115,111,117,110,100,
-100,105,114, 91, 55, 54, 56, 93, 0,105,109, 97,103,101, 95,101,100,105,116,111,114, 91, 49, 48, 50, 52, 93, 0, 97,110,105,109,
- 95,112,108, 97,121,101,114, 91, 49, 48, 50, 52, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 95,112,114,101,115,101,116,
- 0,118, 50,100, 95,109,105,110, 95,103,114,105,100,115,105,122,101, 0,116,105,109,101, 99,111,100,101, 95,115,116,121,108,101,
- 0,118,101,114,115,105,111,110,115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, 0,103, 97,109,101,102,108, 97,
-103,115, 0,119,104,101,101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, 97,
-103,101, 0,117,115,101,114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, 0,
- 97,117,100,105,111,100,101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114,109, 97,
-116, 0, 97,117,100,105,111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,
-110,115,111,112,116,115, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,
-111,108,100, 50, 0,116,104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107,101,121,
-109, 97,112,115, 0,117,115,101,114, 95,107,101,121,109, 97,112,115, 0, 97,100,100,111,110,115, 0,107,101,121, 99,111,110,102,
-105,103,115,116,114, 91, 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100,111,109,101,109,111,114,121, 0,103,
-112, 95,109, 97,110,104, 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108,105,100,101, 97,110,100,105,115,116,
- 0,103,112, 95,101,114, 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0,116, 98, 95,108,101,102,116,109,111,
-117,115,101, 0,116, 98, 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, 91, 51, 93, 0,116,119, 95,104,111,
-116,115,112,111,116, 0,116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101,115,105,122,101, 0,116,119, 95,115,
-105,122,101, 0,116,101,120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, 99,116,114, 97,116,101, 0,119,109,
-100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,103,116,104,114,101,115,104,111,108,100, 0,109,101,109, 99, 97, 99,104,
-101,108,105,109,105,116, 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118,101,
-114,112,111,114,116, 0,112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, 97,
- 0,114,118,105,115,105,122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, 0,
-115,109,111,111,116,104, 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0, 99,117,114,115,115,105,122,
-101, 0, 99,111,108,111,114, 95,112,105, 99,107,101,114, 95,116,121,112,101, 0,105,112,111, 95,110,101,119, 0,107,101,121,104,
- 97,110,100,108,101,115, 95,110,101,119, 0,115, 99,114, 99, 97,115,116,102,112,115, 0,115, 99,114, 99, 97,115,116,119, 97,105,
-116, 0,119,105,100,103,101,116, 95,117,110,105,116, 0, 97,110,105,115,111,116,114,111,112,105, 99, 95,102,105,108,116,101,114,
- 0,117,115,101, 95, 49, 54, 98,105,116, 95,116,101,120,116,117,114,101,115, 0,112, 97,100, 56, 0,110,100,111,102, 95,115,101,
-110,115,105,116,105,118,105,116,121, 0,110,100,111,102, 95,102,108, 97,103, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0,
-116,101,120,116, 95,114,101,110,100,101,114, 0,112, 97,100, 57, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,115, 99,117,
-108,112,116, 95,112, 97,105,110,116, 95,111,118,101,114,108, 97,121, 95, 99,111,108, 91, 51, 93, 0,116,119,101, 97,107, 95,116,
-104,114,101,115,104,111,108,100, 0, 97,117,116,104,111,114, 91, 56, 48, 93, 0, 99,111,109,112,117,116,101, 95,100,101,118,105,
- 99,101, 95,116,121,112,101, 0, 99,111,109,112,117,116,101, 95,100,101,118,105, 99,101, 95,105,100, 0,102, 99,117, 95,105,110,
- 97, 99,116,105,118,101, 95, 97,108,112,104, 97, 0,118,101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,
-114,101, 97, 98, 97,115,101, 0, 42,110,101,119,115, 99,101,110,101, 0,114,101,100,114, 97,119,115, 95,102,108, 97,103, 0,102,
-117,108,108, 0,116,101,109,112, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,
-104, 0,100,111, 95,100,114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,
-117,114,115,111,114, 0,100,111, 95,100,114, 97,119, 95,100,114, 97,103, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,
-115,117, 98,119,105,110, 97, 99,116,105,118,101, 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116,
- 0,104, 97,110,100,108,101,114, 91, 56, 93, 0, 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,
-121,112,101, 0,112, 97,110,101,108,110, 97,109,101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114,
- 97,119,110, 97,109,101, 91, 54, 52, 93, 0,111,102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121,
- 0,108, 97, 98,101,108,111,102,115, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,114,116,111,114,100,101,114,
- 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,115,116, 95,115, 99,114,111,
-108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,110, 0,108,105,115,116, 95,
-103,114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93, 0, 42,118, 51, 0, 42,118,
- 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,101,114,116,121,112,101, 0,
-115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,122,111,110,101,115, 0,119,
-105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,111,110,116,121,112,101, 0,
- 97,108,105,103,110,109,101,110,116, 0,100,111, 95,100,114, 97,119, 95,111,118,101,114,108, 97,121, 0,117,105, 98,108,111, 99,
-107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42,114,101,103,105,111,110,100, 97,116, 97,
- 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, 0,112, 97,100,115, 0,109,105,110,118,
-101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105,111,110, 0,119,105,110,112,111,115, 0, 42, 99,117,114,
-115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103,115, 0,103,108,111, 98, 97,
-108,102, 0,114,101,118,105,115,105,111,110, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0,111,114,105,103, 95,119,105,100,116,104,
- 0,111,114,105,103, 95,104,101,105,103,104,116, 0, 98,111,116,116,111,109, 0,114,105,103,104,116, 0,120,111,102,115, 0,121,
-111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97,105,110, 91, 51, 93, 0,100,105,114,
- 91, 55, 54, 56, 93, 0,116, 99, 0, 98,117,105,108,100, 95,115,105,122,101, 95,102,108, 97,103,115, 0, 98,117,105,108,100, 95,
-116, 99, 95,102,108, 97,103,115, 0,100,111,110,101, 0,115,116, 97,114,116,115,116,105,108,108, 0,101,110,100,115,116,105,108,
-108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,
-111,108,111,114, 95, 98, 97,108, 97,110, 99,101, 0, 42,105,110,115,116, 97,110, 99,101, 95,112,114,105,118, 97,116,101, 95,100,
- 97,116, 97, 0, 42, 42, 99,117,114,114,101,110,116, 95,112,114,105,118, 97,116,101, 95,100, 97,116, 97, 0, 42,116,109,112, 0,
-115,116, 97,114,116,111,102,115, 0,101,110,100,111,102,115, 0,109, 97, 99,104,105,110,101, 0,115,116, 97,114,116,100,105,115,
-112, 0,101,110,100,100,105,115,112, 0,115, 97,116, 0,109,117,108, 0,104, 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,
-112,114,101,115,101,101,107, 0,115,116,114,101, 97,109,105,110,100,101,120, 0,109,117,108,116,105, 99, 97,109, 95,115,111,117,
-114, 99,101, 0, 99,108,105,112, 95,102,108, 97,103, 0, 42,115,116,114,105,112, 0, 42,115, 99,101,110,101, 95, 99, 97,109,101,
-114, 97, 0,101,102,102,101, 99,116, 95,102, 97,100,101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, 0, 42,115,101,113,
- 49, 0, 42,115,101,113, 50, 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,115,111,117,110,100, 0, 42,115, 99,
-101,110,101, 95,115,111,117,110,100, 0,112,105,116, 99,104, 0,112, 97,110, 0,115,116,114,111, 98,101, 0, 42,101,102,102,101,
- 99,116,100, 97,116, 97, 0, 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111,102,115,
- 0, 98,108,101,110,100, 95,109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, 98, 97,
-115,101,112, 0, 42,112, 97,114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99,107, 0,
- 42, 97, 99,116, 95,115,101,113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 49, 48, 50, 52, 93, 0, 97, 99,116, 95,
-115,111,117,110,100,100,105,114, 91, 49, 48, 50, 52, 93, 0,111,118,101,114, 95,111,102,115, 0,111,118,101,114, 95, 99,102,114,
- 97, 0,111,118,101,114, 95,102,108, 97,103, 0,111,118,101,114, 95, 98,111,114,100,101,114, 0,101,100,103,101, 87,105,100,116,
-104, 0,102,111,114,119, 97,114,100, 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,
-102, 66,111,111,115,116, 0,100, 68,105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99,
- 97,108,101,120, 73,110,105, 0, 83, 99, 97,108,101,121, 73,110,105, 0,120, 73,110,105, 0,121, 73,110,105, 0,114,111,116, 73,
-110,105, 0,105,110,116,101,114,112,111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95,115, 99, 97,108,101, 0, 42,
-102,114, 97,109,101, 77, 97,112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114,
- 97,109,101, 0, 98,117,116,116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0,
-110,111,114,109,102, 97, 99, 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110,
-100,108,105,102,101, 0,102,111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97,120,108,101,110, 0,100,
-101,102,118,101, 99, 91, 51, 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52,
- 93, 0,109, 97,116, 91, 52, 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, 97,116,105, 99,115,116,
-101,112, 0,111,109, 97,116, 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102,108, 97,103, 50,110,101,
-103, 0,118,101,114,116,103,114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 54, 52, 93, 0,118,103,114,
-111,117,112,110, 97,109,101, 95,118, 91, 54, 52, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, 0,110,114, 0,117,115,
-101,100, 0,117,115,101,100,101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100,105,115,116, 0,108, 97,115,116,
-118, 97,108, 0, 42,109, 97, 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114,103,101,116, 78, 97,109,
-101, 91, 54, 52, 93, 0,116,111,103,103,108,101, 78, 97,109,101, 91, 54, 52, 93, 0,118, 97,108,117,101, 91, 54, 52, 93, 0,109,
- 97,120,118, 97,108,117,101, 91, 54, 52, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105,111,110, 0,109, 97,116,101,114,
-105, 97,108, 78, 97,109,101, 91, 54, 52, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111,112,110, 97,109,101, 91, 54,
- 52, 93, 0,109, 97,116,110, 97,109,101, 91, 54, 52, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111,115,101, 99,104, 97,110,
-110,101,108, 91, 54, 52, 93, 0, 99,111,110,115,116,114, 97,105,110,116, 91, 54, 52, 93, 0, 42,102,114,111,109, 79, 98,106,101,
- 99,116, 0,115,117, 98,106,101, 99,116, 91, 54, 52, 93, 0, 98,111,100,121, 91, 54, 52, 93, 0,111,116,121,112,101, 0,112,117,
-108,115,101, 0,102,114,101,113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107,115, 0,116, 97,112, 0,106,111,
-121,105,110,100,101,120, 0, 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, 0, 98,117,116,116,111,110, 0,
-104, 97,116, 0,104, 97,116,102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, 93, 0, 42,109,121,110,
-101,119, 0,105,110,112,117,116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, 97,108,
-111, 0,115,116, 97,116,101, 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 54, 52, 93, 0,
- 98,108,101,110,100,105,110, 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114,105,100,
-101, 97,120,105,115, 0,115,116,114,105,100,101,108,101,110,103,116,104, 0,108, 97,121,101,114, 95,119,101,105,103,104,116, 0,
-109,105,110, 95,103, 97,105,110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, 99,101, 95,100,105,115,116,
- 97,110, 99,101, 0,109, 97,120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, 95,102, 97, 99,116,111,114,
- 0, 99,111,110,101, 95,105,110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95, 97,110,103,
-108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95,103, 97,105,110, 0,115,110,100,110,114, 0,115,111,117,110,100, 51, 68,
- 0,112, 97,100, 54, 91, 49, 93, 0, 42,109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,
-101,108,111, 99,105,116,121, 91, 51, 93, 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,
-111,110, 0,102,111,114, 99,101,108,111, 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,112, 97,100, 49, 91,
- 51, 93, 0,108,105,110,101, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111,
- 99,105,116,121, 91, 51, 93, 0, 42,114,101,102,101,114,101,110, 99,101, 0,109,105,110, 0,109, 97,120, 0,114,111,116,100, 97,
-109,112, 0,109,105,110,108,111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, 0,109,105,110,114,111,116, 91, 51, 93,
- 0,109, 97,120,114,111,116, 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 54, 52, 93, 0, 98,117,116,115,116, 97, 0, 98,117,
-116,101,110,100, 0,100,105,115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95,
- 97,114,103, 95, 50, 0,102,108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111,
- 80,114,111,112, 78, 97,109,101, 91, 54, 52, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,
-102,105,108,101,110, 97,109,101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116,
- 95, 97,114,103, 0,102,108,111, 97,116, 95, 97,114,103, 0,105,110,102,108,117,101,110, 99,101, 0, 42,115,117, 98,116, 97,114,
-103,101,116, 0,102, 97, 99,105,110,103, 97,120,105,115, 0,118,101,108,111, 99,105,116,121, 0, 97, 99, 99,101,108,101,114, 97,
-116,105,111,110, 0,116,117,114,110,115,112,101,101,100, 0,117,112,100, 97,116,101, 84,105,109,101, 0, 42,110, 97,118,109,101,
-115,104, 0,103,111, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105,111,110,
- 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42,119, 97,118,101,102,111,114,109, 0, 42,112,108, 97,121,
- 98, 97, 99,107, 95,104, 97,110,100,108,101, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100,117,112,
-108,105, 95,111,102,115, 91, 51, 93, 0, 42,112,114,111,112, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,104,
-101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,114,
-109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52, 93,
- 91, 52, 93, 0, 97,114,109, 95,114,111,108,108, 0,120,119,105,100,116,104, 0,122,119,105,100,116,104, 0,101, 97,115,101, 49,
- 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, 0,112, 97,100, 91, 49, 93, 0,
- 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98,111,
-110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,103,101,118,101,114,116,100,101,102,
-111,114,109,101,114, 0,108, 97,121,101,114, 95,117,115,101,100, 0,108, 97,121,101,114, 95,112,114,111,116,101, 99,116,101,100,
- 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103,104,111,115,116,116,121,112,101, 0,112, 97,116,
-104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101,102, 0,112, 97,116,104,115,102, 0,112, 97,116,
-104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111,105,110,116,115, 0,115,116, 97,114,116, 95,
-102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0,103,104,111,115,116, 95,115,102, 0,103,104,111,115,116, 95,101,
-102, 0,103,104,111,115,116, 95, 98, 99, 0,103,104,111,115,116, 95, 97, 99, 0,103,104,111,115,116, 95,116,121,112,101, 0,103,
-104,111,115,116, 95,115,116,101,112, 0,103,104,111,115,116, 95,102,108, 97,103, 0,112, 97,116,104, 95,116,121,112,101, 0,112,
- 97,116,104, 95,115,116,101,112, 0,112, 97,116,104, 95,118,105,101,119,102,108, 97,103, 0,112, 97,116,104, 95, 98, 97,107,101,
-102,108, 97,103, 0,112, 97,116,104, 95,115,102, 0,112, 97,116,104, 95,101,102, 0,112, 97,116,104, 95, 98, 99, 0,112, 97,116,
-104, 95, 97, 99, 0,105,107,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 99,111,110,115,116,102,108, 97,103,
- 0,115,101,108,101, 99,116,102,108, 97,103, 0,112, 97,100, 48, 91, 54, 93, 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,100,
- 0,105,107,116,114,101,101, 0,115,105,107,116,114,101,101, 0, 42, 99,117,115,116,111,109, 0, 42, 99,117,115,116,111,109, 95,
-116,120, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,
-116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51,
- 93, 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,
-101,115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107,108,
-105,110,119,101,105,103,104,116, 0, 42,116,101,109,112, 0, 99,104, 97,110, 98, 97,115,101, 0, 42, 99,104, 97,110,104, 97,115,
-104, 0,112,114,111,120,121, 95,108, 97,121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0, 99,
-121, 99,108,105, 99, 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,103,
-114,111,117,112, 0,105,107,115,111,108,118,101,114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,112,
-114,111,120,121, 95, 97, 99,116, 95, 98,111,110,101, 91, 54, 52, 93, 0,110,117,109,105,116,101,114, 0,110,117,109,115,116,101,
-112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101,100, 98, 97, 99,
-107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97,110,110,101,108,
-115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, 0, 97, 99,116,
-105,118,101, 95,109, 97,114,107,101,114, 0,105,100,114,111,111,116, 0, 42,115,111,117,114, 99,101, 0, 42,102,105,108,116,101,
-114, 95,103,114,112, 0,115,101, 97,114, 99,104,115,116,114, 91, 54, 52, 93, 0,102,105,108,116,101,114,102,108, 97,103, 0,114,
-101,110, 97,109,101, 73,110,100,101,120, 0, 97,100,115, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,110, 97,
-109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111,114, 99,101,
- 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, 0, 42,116,
- 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101,114, 0,116,
- 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, 98,111,110,
-101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115,117, 98,116,
- 97,114,103,101,116, 91, 54, 52, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105,103,104,116,
- 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105,110,108,101,
-110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114,118,101,100,
- 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, 99,107,
-102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, 0,111,114,
-103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97,120, 88,
- 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, 54, 93,
- 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0,109, 97,
-112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, 91, 51,
- 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,114,111,116, 65,120,105,115, 0,122,109,
-105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0,116,114, 97, 99,107, 91, 54, 52, 93, 0,111, 98,106,101, 99,116, 91,
- 54, 52, 93, 0, 42,100,101,112,116,104, 95,111, 98, 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,116,
- 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,114,
-116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,108,101,110, 0, 98,108,101,110,100,
-111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110,101, 91,
- 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112,101, 0,
-115,111, 99,107,101,116,116,121,112,101, 0,105,115, 95, 99,111,112,121, 0,101,120,116,101,114,110, 97,108, 0, 42,110,101,119,
- 95,115,111, 99,107, 0, 42,115,116,111,114, 97,103,101, 0,108,105,109,105,116, 0,115,116,114,117, 99,116, 95,116,121,112,101,
- 0,108,111, 99,120, 0,108,111, 99,121, 0, 42,100,101,102, 97,117,108,116, 95,118, 97,108,117,101, 0,115,116, 97, 99,107, 95,
-105,110,100,101,120, 0,115,116, 97, 99,107, 95,116,121,112,101, 0,111,119,110, 95,105,110,100,101,120, 0,116,111, 95,105,110,
-100,101,120, 0, 42,103,114,111,117,112,115,111, 99,107, 0, 42,108,105,110,107, 0,110,115, 0, 42,114,101, 99,116, 0,120,115,
-105,122,101, 0,121,115,105,122,101, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97,115,116,121, 0,111,117,116,112,117,116,
-115, 0,109,105,110,105,119,105,100,116,104, 0,117,112,100, 97,116,101, 0,108, 97, 98,101,108, 91, 54, 52, 93, 0, 99,117,115,
-116,111,109, 49, 0, 99,117,115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,
-100, 95,101,120,101, 99, 0,101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,
-114, 0,112,114,118,114, 0, 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,
-101, 0, 42,116,111,110,111,100,101, 0, 42,102,114,111,109,115,111, 99,107, 0, 42,116,111,115,111, 99,107, 0,110,111,100,101,
-115, 0,108,105,110,107,115, 0,105,110,105,116, 0, 99,117,114, 95,105,110,100,101,120, 0,110,111,100,101,116,121,112,101, 0,
- 42,101,120,101, 99,100, 97,116, 97, 0, 40, 42,112,114,111,103,114,101,115,115, 41, 40, 41, 0, 40, 42,115,116, 97,116,115, 95,
-100,114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42,112,114,
-104, 0, 42,115,100,104, 0,118, 97,108,117,101, 91, 51, 93, 0,118, 97,108,117,101, 91, 52, 93, 0, 99,121, 99,108,105, 99, 0,
-109,111,118,105,101, 0,115, 97,109,112,108,101,115, 0,109, 97,120,115,112,101,101,100, 0,109,105,110,115,112,101,101,100, 0,
- 99,117,114,118,101,100, 0,112,101,114, 99,101,110,116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,103,
- 97,109,109, 97, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104, 0,105,109, 97,103,101, 95,105,110, 95,104,101,105,
-103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114, 95,121, 0,115,112,105,110, 0,119,114, 97,112, 0,
-115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,112, 97, 99,101, 0,104,117,101, 0, 98, 97,115,101,
- 95,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0,102,111,114,109, 97,116, 0, 97, 99,116,105,118,101, 95,105,110,112,117,116, 0,
-117,115,101, 95,114,101,110,100,101,114, 95,102,111,114,109, 97,116, 0,117,115,101, 95,110,111,100,101, 95,102,111,114,109, 97,
-116, 0,116, 49, 0,116, 50, 0,116, 51, 0,102,115,116,114,101,110,103,116,104, 0,102, 97,108,112,104, 97, 0,107,101,121, 91,
- 52, 93, 0, 97,108,103,111,114,105,116,104,109, 0, 99,104, 97,110,110,101,108, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50,
- 0,102, 97, 99, 95,120, 49, 0,102, 97, 99, 95,120, 50, 0,102, 97, 99, 95,121, 49, 0,102, 97, 99, 95,121, 50, 0, 99,111,108,
-110, 97,109,101, 91, 54, 52, 93, 0, 98,107,116,121,112,101, 0,112, 97,100, 95, 99, 49, 0,103, 97,109, 99,111, 0,110,111, 95,
-122, 98,117,102, 0,102,115,116,111,112, 0,109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104, 0,114,111,116, 97,116,
-105,111,110, 0,112, 97,100, 95,102, 49, 0, 42,100,105, 99,116, 0, 42,110,111,100,101, 0, 99,111,108,109,111,100, 0,109,105,
-120, 0,102, 97,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0,109, 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,
-116, 0,115,108,111,112,101, 91, 51, 93, 0,112,111,119,101,114, 91, 51, 93, 0,108,105,102,116, 95,108,103,103, 91, 51, 93, 0,
-103, 97,109,109, 97, 95,105,110,118, 91, 51, 93, 0,108,105,109, 99,104, 97,110, 0,117,110,115,112,105,108,108, 0,108,105,109,
-115, 99, 97,108,101, 0,117,115,112,105,108,108,114, 0,117,115,112,105,108,108,103, 0,117,115,112,105,108,108, 98, 0,116,101,
-120, 95,109, 97,112,112,105,110,103, 0, 99,111,108,111,114, 95,109, 97,112,112,105,110,103, 0,115,117,110, 95,100,105,114,101,
- 99,116,105,111,110, 91, 51, 93, 0,116,117,114, 98,105,100,105,116,121, 0, 99,111,108,111,114, 95,115,112, 97, 99,101, 0,112,
-114,111,106,101, 99,116,105,111,110, 0,103,114, 97,100,105,101,110,116, 95,116,121,112,101, 0, 99,111,108,111,114,105,110,103,
- 0,109,117,115,103,114, 97,118,101, 95,116,121,112,101, 0,119, 97,118,101, 95,116,121,112,101, 0,115,104,111,114,116,121, 0,
-109,105,110,116, 97, 98,108,101, 0,109, 97,120,116, 97, 98,108,101, 0,101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,
-111,117,116, 91, 50, 93, 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,
-101, 0,112,114,101,115,101,116, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116, 97,109,112, 0, 99,117,114,114, 0,
- 99,108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91, 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,
-109,117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,120, 95,114,101,115,111,108,117,116,105,111,110, 0,100, 97,
-116, 97, 95,114, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,103, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95, 98, 91, 50, 53, 54,
- 93, 0,100, 97,116, 97, 95,108,117,109, 97, 91, 50, 53, 54, 93, 0,115, 97,109,112,108,101, 95,102,117,108,108, 0,115, 97,109,
-112,108,101, 95,108,105,110,101,115, 0, 97, 99, 99,117,114, 97, 99,121, 0,119, 97,118,101,102,114,109, 95,109,111,100,101, 0,
-119, 97,118,101,102,114,109, 95, 97,108,112,104, 97, 0,119, 97,118,101,102,114,109, 95,121,102, 97, 99, 0,119, 97,118,101,102,
-114,109, 95,104,101,105,103,104,116, 0,118,101, 99,115, 99,111,112,101, 95, 97,108,112,104, 97, 0,118,101, 99,115, 99,111,112,
-101, 95,104,101,105,103,104,116, 0,109,105,110,109, 97,120, 91, 51, 93, 91, 50, 93, 0,104,105,115,116, 0, 42,119, 97,118,101,
-102,111,114,109, 95, 49, 0, 42,119, 97,118,101,102,111,114,109, 95, 50, 0, 42,119, 97,118,101,102,111,114,109, 95, 51, 0, 42,
-118,101, 99,115, 99,111,112,101, 0,119, 97,118,101,102,111,114,109, 95,116,111,116, 0,111,102,102,115,101,116, 91, 50, 93, 0,
- 99,108,111,110,101, 0,109,116,101,120, 0, 42,105, 99,111,110, 95,105,109, 98,117,102, 0,105, 99,111,110, 95,102,105,108,101,
-112, 97,116,104, 91, 49, 48, 50, 52, 93, 0,110,111,114,109, 97,108, 95,119,101,105,103,104,116, 0,111, 98, 95,109,111,100,101,
- 0,106,105,116,116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97,100,105,117,115, 0,115,109,111,
-111,116,104, 95,115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,115, 99,
-117,108,112,116, 95,112,108, 97,110,101, 0,112,108, 97,110,101, 95,111,102,102,115,101,116, 0,115, 99,117,108,112,116, 95,116,
-111,111,108, 0,118,101,114,116,101,120,112, 97,105,110,116, 95,116,111,111,108, 0,105,109, 97,103,101,112, 97,105,110,116, 95,
-116,111,111,108, 0,112, 97,100, 51, 91, 53, 93, 0, 97,117,116,111,115,109,111,111,116,104, 95,102, 97, 99,116,111,114, 0, 99,
-114,101, 97,115,101, 95,112,105,110, 99,104, 95,102, 97, 99,116,111,114, 0,112,108, 97,110,101, 95,116,114,105,109, 0,116,101,
-120,116,117,114,101, 95,115, 97,109,112,108,101, 95, 98,105, 97,115, 0,116,101,120,116,117,114,101, 95,111,118,101,114,108, 97,
-121, 95, 97,108,112,104, 97, 0, 97,100,100, 95, 99,111,108, 91, 51, 93, 0,115,117, 98, 95, 99,111,108, 91, 51, 93, 0, 97, 99,
-116,105,118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,
-107, 0, 42,108, 97,121,101,114,115, 0,116,121,112,101,109, 97,112, 91, 51, 52, 93, 0,116,111,116,108, 97,121,101,114, 0,109,
- 97,120,108, 97,121,101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0, 42,101,120,116,101,114,110, 97,108, 0,
-114,111,116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, 0,
-114,101,115,116, 95,108,101,110,103,116,104, 0,112, 97,114,116,105, 99,108,101, 95,105,110,100,101,120, 91, 50, 93, 0,100,101,
-108,101,116,101, 95,102,108, 97,103, 0,110,117,109, 0,112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,
-102,117,118, 91, 52, 93, 0,102,111,102,102,115,101,116, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0,
- 42, 98,111,105,100, 0,100,105,101,116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0,104, 97,105,114, 95,105,
-110,100,101,120, 0, 97,108,105,118,101, 0,115,112,114,105,110,103, 95,107, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 99,
-111,110,115,116, 97,110,116, 0,121,105,101,108,100, 95,114, 97,116,105,111, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 98,
- 97,108, 97,110, 99,101, 0,121,105,101,108,100, 95, 98, 97,108, 97,110, 99,101, 0,118,105,115, 99,111,115,105,116,121, 95,111,
-109,101,103, 97, 0,118,105,115, 99,111,115,105,116,121, 95, 98,101,116, 97, 0,115,116,105,102,102,110,101,115,115, 95,107, 0,
-115,116,105,102,102,110,101,115,115, 95,107,110,101, 97,114, 0,114,101,115,116, 95,100,101,110,115,105,116,121, 0, 98,117,111,
-121, 97,110, 99,121, 0,115,112,114,105,110,103, 95,102,114, 97,109,101,115, 0, 42, 98,111,105,100,115, 0, 42,102,108,117,105,
-100, 0,100,105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, 97,118,101,109,111,100,101, 0,114,101, 97, 99,116,101,118,
-101,110,116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,115,105,122,101, 0, 99,104,105,108,100,
-116,121,112,101, 0,114,101,110, 95, 97,115, 0,115,117, 98,102,114, 97,109,101,115, 0,100,114, 97,119, 95, 99,111,108, 0,114,
-101,110, 95,115,116,101,112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97,100, 97,112,
-116, 95, 97,110,103,108,101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0,105,110,116,101,103,114,
- 97,116,111,114, 0, 98, 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, 97,110,105,
-109, 0, 98, 98, 95,115,112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95,114, 97,110,
-100, 95,116,105,108,116, 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0, 98, 98, 95,115,105,122,101, 91, 50, 93, 0, 98,
- 98, 95,118,101,108, 95,104,101, 97,100, 0, 98, 98, 95,118,101,108, 95,116, 97,105,108, 0, 99,111,108,111,114, 95,118,101, 99,
- 95,109, 97,120, 0,115,105,109,112,108,105,102,121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114,
- 97,116,101, 0,115,105,109,112,108,105,102,121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121,
- 95,118,105,101,119,112,111,114,116, 0,116,105,109,101,116,119,101, 97,107, 0, 99,111,117,114, 97,110,116, 95,116, 97,114,103,
-101,116, 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95,114, 97,110,100, 0,112,115, 95,
-111,102,102,115,101,116, 91, 49, 93, 0,103,114,105,100, 95,114,101,115, 0,101,102,102,101, 99,116,111,114, 95, 97,109,111,117,
-110,116, 0,116,105,109,101, 95,102,108, 97,103, 0,116,105,109,101, 95,112, 97,100, 91, 51, 93, 0,112, 97,114,116,102, 97, 99,
- 0,116, 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99,116,102, 97, 99, 0,111, 98, 95,118,101,108,
- 91, 51, 93, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116,102, 97, 99, 0,114,
- 97,110,100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,
-102, 97, 99, 0, 98,114,111,119,110,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95,110, 98,
-114, 0,114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115,105,122,
-101, 0, 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100,102,108,
- 97,116, 0, 99,108,117,109,112,112,111,119, 0,107,105,110,107, 95,102,108, 97,116, 0,107,105,110,107, 95, 97,109,112, 95, 99,
-108,117,109,112, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117,103,104, 50, 0,114,
-111,117,103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117,103,104, 95,101,110,
-100, 0,114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99,108,101,110,103,116,
-104, 95,116,104,114,101,115, 0,112, 97,114,116,105,110,103, 95,102, 97, 99, 0,112, 97,114,116,105,110,103, 95,109,105,110, 0,
-112, 97,114,116,105,110,103, 95,109, 97,120, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, 95,108,105,
-110,101, 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97,105,108, 95,
- 99,111,117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116,115, 0, 42,
-101,102,102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, 0, 42,112,
- 97,114,116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99,104,105,
-108,100, 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99,104,101,
- 98,117,102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95,111,117,116,
- 95,100,109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95,102,114, 97,
-109,101, 0, 98,118,104,116,114,101,101, 95,102,114, 97,109,101, 0, 99,104,105,108,100, 95,115,101,101,100, 0,116,111,116,117,
-110,101,120,105,115,116, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, 99,104,105,
-108,100, 99, 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, 98, 97,107,
-101,115,112, 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 54, 52, 93, 0,118,103,114,111,117,112, 91, 49,
- 50, 93, 0,118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102,102,101, 99,
-116,111,114,115, 0, 42,102,108,117,105,100, 95,115,112,114,105,110,103,115, 0,116,111,116, 95,102,108,117,105,100,115,112,114,
-105,110,103,115, 0, 97,108,108,111, 99, 95,102,108,117,105,100,115,112,114,105,110,103,115, 0, 42,116,114,101,101, 0, 42,112,
-100,100, 0, 42,102,114, 97,110,100, 0,100,116, 95,102,114, 97, 99, 0, 95,112, 97,100, 0, 67,100,105,115, 0, 67,118,105, 0,
-115,116,114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98,101,110,100, 0,109, 97,120, 95,
-115,116,114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115,112,114,105,110,103, 95,108,101,110, 0,
-116,105,109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108,101, 0,101,102,102, 95,119,105,
-110,100, 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0,118,101,108,111, 99,105,116,121, 95,115,
-109,111,111,116,104, 0, 99,111,108,108,105,100,101,114, 95,102,114,105, 99,116,105,111,110, 0,118,101,108, 95,100, 97,109,112,
-105,110,103, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,111,108,108, 0,109, 97,120,115,112,114,
-105,110,103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,111,117,112, 95, 98,101,110,100, 0,118,
-103,114,111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, 99,116, 0,115,104, 97,112,101,107,101,
-121, 95,114,101,115,116, 0,112,114,101,115,101,116,115, 0,114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95,
-108,105,115,116, 0,101,112,115,105,108,111,110, 0,115,101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101,
-112,115,105,108,111,110, 0,114,101,112,101,108, 95,102,111,114, 99,101, 0,100,105,115,116, 97,110, 99,101, 95,114,101,112,101,
-108, 0,115,101,108,102, 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0,112,114,101,
-115,115,117,114,101, 0,116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101,110,117,109,
- 0, 42, 97, 99,116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102,
-101,114, 95,115,105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0,108,
-105,115,116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101,118,101,108, 0, 42,114,101,112,111,114,
-116,116,105,109,101,114, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0,119,
-105,110,100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111,112,
- 95,117,110,100,111, 95,100,101,112,116,104, 0,111,112,101,114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111,
-114,116,115, 0,106,111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,100,114, 97,103,115, 0,107,101,121, 99,
-111,110,102,105,103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0, 42, 97,100,100,111,110, 99,111,110,102, 0, 42,
-117,115,101,114, 99,111,110,102, 0,116,105,109,101,114,115, 0, 42, 97,117,116,111,115, 97,118,101,116,105,109,101,114, 0, 42,
-103,104,111,115,116,119,105,110, 0,103,114, 97, 98, 99,117,114,115,111,114, 0, 42,115, 99,114,101,101,110, 0, 42,110,101,119,
-115, 99,114,101,101,110, 0,115, 99,114,101,101,110,110, 97,109,101, 91, 54, 52, 93, 0,112,111,115,120, 0,112,111,115,121, 0,
-119,105,110,100,111,119,115,116, 97,116,101, 0,109,111,110,105,116,111,114, 0,108, 97,115,116, 99,117,114,115,111,114, 0,109,
-111,100, 97,108, 99,117,114,115,111,114, 0, 97,100,100,109,111,117,115,101,109,111,118,101, 0, 42,101,118,101,110,116,115,116,
- 97,116,101, 0, 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,
-114, 97,119,102, 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, 0,
-115,117, 98,119,105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112,114,
-111,112,118, 97,108,117,101, 0,115,104,105,102,116, 0, 99,116,114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,
-109,111,100,105,102,105,101,114, 0,109, 97,112,116,121,112,101, 0, 42,112,116,114, 0, 42,114,101,109,111,118,101, 95,105,116,
-101,109, 0, 42, 97,100,100, 95,105,116,101,109, 0,105,116,101,109,115, 0,100,105,102,102, 95,105,116,101,109,115, 0,115,112,
- 97, 99,101,105,100, 0,114,101,103,105,111,110,105,100, 0,107,109,105, 95,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0,
- 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, 97,115,101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,
-109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97,116, 97, 0, 42,112,121, 95,105,110,115,116, 97,110, 99,101, 0, 42,114,101,
-112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111,112,109, 0, 42,101,100, 97,116, 97, 0, 42, 99,111,101,102,102,105, 99,
-105,101,110,116,115, 0, 97,114,114, 97,121,115,105,122,101, 0,112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,
-116,117,100,101, 0,112,104, 97,115,101, 95,109,117,108,116,105,112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,
-101,116, 0,118, 97,108,117,101, 95,111,102,102,115,101,116, 0,109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,
-100,101, 0, 97,102,116,101,114, 95,109,111,100,101, 0, 98,101,102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,
-114, 95, 99,121, 99,108,101,115, 0,114,101, 99,116, 0,112,104, 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110,
- 0,115,116,101,112, 95,115,105,122,101, 0, 42,114,110, 97, 95,112, 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109,101, 91,
- 51, 50, 93, 0,116,114, 97,110,115, 67,104, 97,110, 0,105,100,116,121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, 93, 0,
-110,117,109, 95,116, 97,114,103,101,116,115, 0,118, 97,114,105, 97, 98,108,101,115, 0,101,120,112,114,101,115,115,105,111,110,
- 91, 50, 53, 54, 93, 0, 42,101,120,112,114, 95, 99,111,109,112, 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97,114,114,
- 97,121, 95,105,110,100,101,120, 0, 99,111,108,111,114, 95,109,111,100,101, 0, 99,111,108,111,114, 91, 51, 93, 0,102,114,111,
-109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,116,114,105,112,115, 0, 42,
-114,101,109, 97,112, 0,102, 99,117,114,118,101,115, 0,115,116,114,105,112, 95,116,105,109,101, 0, 98,108,101,110,100,109,111,
-100,101, 0,101,120,116,101,110,100,109,111,100,101, 0, 42,115,112,101, 97,107,101,114, 95,104, 97,110,100,108,101, 0,103,114,
-111,117,112, 91, 54, 52, 93, 0,103,114,111,117,112,109,111,100,101, 0,107,101,121,105,110,103,102,108, 97,103, 0,112, 97,116,
-104,115, 0,100,101,115, 99,114,105,112,116,105,111,110, 91, 50, 52, 48, 93, 0,116,121,112,101,105,110,102,111, 91, 54, 52, 93,
- 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,116,114, 97, 99,107,115, 0,
- 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,118,101,114,115, 0,111,118,101,114,114,105,100,101,115, 0, 97, 99,116, 95,
- 98,108,101,110,100,109,111,100,101, 0, 97, 99,116, 95,101,120,116,101,110,100,109,111,100,101, 0, 97, 99,116, 95,105,110,102,
-108,117,101,110, 99,101, 0,114,117,108,101, 0,111,112,116,105,111,110,115, 0,102,101, 97,114, 95,102, 97, 99,116,111,114, 0,
-115,105,103,110, 97,108, 95,105,100, 0,108,111,111,107, 95, 97,104,101, 97,100, 0,111,108,111, 99, 91, 51, 93, 0,113,117,101,
-117,101, 95,115,105,122,101, 0,119, 97,110,100,101,114, 0,102,108,101,101, 95,100,105,115,116, 97,110, 99,101, 0,104,101, 97,
-108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,114,117,108,101,115, 0, 99,111,110,100,105,116,105,111,110,115, 0, 97, 99,
-116,105,111,110,115, 0,114,117,108,101,115,101,116, 95,116,121,112,101, 0,114,117,108,101, 95,102,117,122,122,105,110,101,115,
-115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105,100, 0,108, 97,110,100,105,110,103, 95,115,109,111,111,116,104,110,101,
-115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103,114,101,115,115,105,111,110, 0, 97,105,114, 95,109,105,110, 95,115,112,
-101,101,100, 0, 97,105,114, 95,109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95, 97, 99, 99, 0, 97,105,
-114, 95,109, 97,120, 95, 97,118,101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,
-100, 95,106,117,109,112, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115,112,101,101,100, 0,108, 97,110,100,
- 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,100, 95,112,101,114,115,111,
-110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111,114, 99,101, 0,115,116, 97,116,101,
-115, 0, 42,115,109,100, 0, 42,102,108,117,105,100, 95,103,114,111,117,112, 0, 42, 99,111,108,108, 95,103,114,111,117,112, 0,
- 42,119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116,101,120, 95,115,104, 97,100,111,119, 0, 42,115,104, 97,100,111,119, 0,
-112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111,109,101,103, 97, 0,116,101,109,112, 65,109, 98, 0, 98,101,116,
- 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105,102,121, 0,109, 97,120,114,101,115, 0,118,105,101,119,115,101,116,116,
-105,110,103,115, 0,110,111,105,115,101, 0,100,105,115,115, 95,112,101,114, 99,101,110,116, 0,100,105,115,115, 95,115,112,101,
-101,100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100,120, 95,119,116, 0,118, 51,100,110,117,109, 0, 99, 97, 99,104,101, 95,
- 99,111,109,112, 0, 99, 97, 99,104,101, 95,104,105,103,104, 95, 99,111,109,112, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,
-101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101,115, 91, 50, 93, 0, 98,111,114,100,101,114, 95, 99,111,108,108,105,115,105,111,
-110,115, 0,116,105,109,101, 95,115, 99, 97,108,101, 0,118,111,114,116,105, 99,105,116,121, 0,118,101,108,111, 99,105,116,121,
- 91, 50, 93, 0,118,101,108, 95,109,117,108,116,105, 0,118,103,114,112, 95,104,101, 97,116, 95,115, 99, 97,108,101, 91, 50, 93,
- 0,118,103,114,111,117,112, 95,102,108,111,119, 0,118,103,114,111,117,112, 95,100,101,110,115,105,116,121, 0,118,103,114,111,
-117,112, 95,104,101, 97,116, 0, 42,112,111,105,110,116,115, 95,111,108,100, 0, 42,118,101,108, 0,109, 97,116, 95,111,108,100,
- 91, 52, 93, 91, 52, 93, 0,118,111,108,117,109,101, 95,109, 97,120, 0,118,111,108,117,109,101, 95,109,105,110, 0,100,105,115,
-116, 97,110, 99,101, 95,109, 97,120, 0,100,105,115,116, 97,110, 99,101, 95,114,101,102,101,114,101,110, 99,101, 0, 99,111,110,
-101, 95, 97,110,103,108,101, 95,111,117,116,101,114, 0, 99,111,110,101, 95, 97,110,103,108,101, 95,105,110,110,101,114, 0, 99,
-111,110,101, 95,118,111,108,117,109,101, 95,111,117,116,101,114, 0,114,101,110,100,101,114, 95,102,108, 97,103, 0, 98,117,105,
-108,100, 95,115,105,122,101, 95,102,108, 97,103, 0, 98,117,105,108,100, 95,116, 99, 95,102,108, 97,103, 0,108, 97,115,116,115,
-105,122,101, 91, 50, 93, 0,116,114, 97, 99,107,105,110,103, 0, 42,116,114, 97, 99,107,105,110,103, 95, 99,111,110,116,101,120,
-116, 0,112,114,111,120,121, 0,116,114, 97, 99,107, 95,112,114,101,118,105,101,119, 95,104,101,105,103,104,116, 0, 42,116,114,
- 97, 99,107, 95,112,114,101,118,105,101,119, 0,116,114, 97, 99,107, 95,112,111,115, 91, 50, 93, 0,116,114, 97, 99,107, 95,100,
-105,115, 97, 98,108,101,100, 0, 42,109, 97,114,107,101,114, 0,115,108,105,100,101, 95,115, 99, 97,108,101, 91, 50, 93, 0,101,
-114,114,111,114, 0, 42,105,110,116,114,105,110,115,105, 99,115, 0,115,101,110,115,111,114, 95,119,105,100,116,104, 0,112,105,
-120,101,108, 95, 97,115,112,101, 99,116, 0,102,111, 99, 97,108, 0,117,110,105,116,115, 0,112,114,105,110, 99,105,112, 97,108,
- 91, 50, 93, 0,107, 49, 0,107, 50, 0,107, 51, 0,112,111,115, 91, 50, 93, 0,112, 97,116, 95,109,105,110, 91, 50, 93, 0,112,
- 97,116, 95,109, 97,120, 91, 50, 93, 0,115,101, 97,114, 99,104, 95,109,105,110, 91, 50, 93, 0,115,101, 97,114, 99,104, 95,109,
- 97,120, 91, 50, 93, 0,109, 97,114,107,101,114,115,110,114, 0,108, 97,115,116, 95,109, 97,114,107,101,114, 0, 42,109, 97,114,
-107,101,114,115, 0, 98,117,110,100,108,101, 95,112,111,115, 91, 51, 93, 0,112, 97,116, 95,102,108, 97,103, 0,115,101, 97,114,
- 99,104, 95,102,108, 97,103, 0,102,114, 97,109,101,115, 95,108,105,109,105,116, 0,112, 97,116,116,101,114,110, 95,109, 97,116,
- 99,104, 0,116,114, 97, 99,107,101,114, 0,112,121,114, 97,109,105,100, 95,108,101,118,101,108,115, 0,109,105,110,105,109,117,
-109, 95, 99,111,114,114,101,108, 97,116,105,111,110, 0,100,101,102, 97,117,108,116, 95,116,114, 97, 99,107,101,114, 0,100,101,
-102, 97,117,108,116, 95,112,121,114, 97,109,105,100, 95,108,101,118,101,108,115, 0,100,101,102, 97,117,108,116, 95,109,105,110,
-105,109,117,109, 95, 99,111,114,114,101,108, 97,116,105,111,110, 0,100,101,102, 97,117,108,116, 95,112, 97,116,116,101,114,110,
- 95,115,105,122,101, 0,100,101,102, 97,117,108,116, 95,115,101, 97,114, 99,104, 95,115,105,122,101, 0,100,101,102, 97,117,108,
-116, 95,102,114, 97,109,101,115, 95,108,105,109,105,116, 0,100,101,102, 97,117,108,116, 95,109, 97,114,103,105,110, 0,100,101,
-102, 97,117,108,116, 95,112, 97,116,116,101,114,110, 95,109, 97,116, 99,104, 0,100,101,102, 97,117,108,116, 95,102,108, 97,103,
- 0,112,111,100, 0,107,101,121,102,114, 97,109,101, 49, 0,107,101,121,102,114, 97,109,101, 50, 0,114,101,102,105,110,101, 95,
- 99, 97,109,101,114, 97, 95,105,110,116,114,105,110,115,105, 99,115, 0,112, 97,100, 50, 51, 0, 99,108,101, 97,110, 95,102,114,
- 97,109,101,115, 0, 99,108,101, 97,110, 95, 97, 99,116,105,111,110, 0, 99,108,101, 97,110, 95,101,114,114,111,114, 0,111, 98,
-106,101, 99,116, 95,100,105,115,116, 97,110, 99,101, 0,116,111,116, 95,116,114, 97, 99,107, 0, 97, 99,116, 95,116,114, 97, 99,
-107, 0,109, 97,120,115, 99, 97,108,101, 0, 42,114,111,116, 95,116,114, 97, 99,107, 0,108,111, 99,105,110,102, 0,115, 99, 97,
-108,101,105,110,102, 0,114,111,116,105,110,102, 0, 42,115, 99, 97,108,101,105, 98,117,102, 0,108, 97,115,116, 95, 99, 97,109,
-101,114, 97, 0, 99, 97,109,110,114, 0, 42, 99, 97,109,101,114, 97,115, 0,116,114, 97, 99,107,115, 0,114,101, 99,111,110,115,
-116,114,117, 99,116,105,111,110, 0,109,101,115,115, 97,103,101, 91, 50, 53, 54, 93, 0,115,101,116,116,105,110,103,115, 0, 99,
- 97,109,101,114, 97, 0,115,116, 97, 98,105,108,105,122, 97,116,105,111,110, 0, 42, 97, 99,116, 95,116,114, 97, 99,107, 0,111,
- 98,106,101, 99,116,115, 0,111, 98,106,101, 99,116,110,114, 0,116,111,116, 95,111, 98,106,101, 99,116, 0, 42, 98,114,117,115,
-104, 95,103,114,111,117,112, 0, 99,117,114,114,101,110,116, 95,102,114, 97,109,101, 0,100,105,115,112, 95,116,121,112,101, 0,
-105,109, 97,103,101, 95,102,105,108,101,102,111,114,109, 97,116, 0,101,102,102,101, 99,116, 95,117,105, 0,112,114,101,118,105,
-101,119, 95,105,100, 0,105,110,105,116, 95, 99,111,108,111,114, 95,116,121,112,101, 0,112, 97,100, 95,115, 0,105,109, 97,103,
-101, 95,114,101,115,111,108,117,116,105,111,110, 0,115,117, 98,115,116,101,112,115, 0,105,110,105,116, 95, 99,111,108,111,114,
- 91, 52, 93, 0, 42,105,110,105,116, 95,116,101,120,116,117,114,101, 0,105,110,105,116, 95,108, 97,121,101,114,110, 97,109,101,
- 91, 54, 52, 93, 0,100,114,121, 95,115,112,101,101,100, 0, 99,111,108,111,114, 95,100,114,121, 95,116,104,114,101,115,104,111,
-108,100, 0,100,101,112,116,104, 95, 99,108, 97,109,112, 0,100,105,115,112, 95,102, 97, 99,116,111,114, 0,115,112,114,101, 97,
-100, 95,115,112,101,101,100, 0, 99,111,108,111,114, 95,115,112,114,101, 97,100, 95,115,112,101,101,100, 0,115,104,114,105,110,
-107, 95,115,112,101,101,100, 0,100,114,105,112, 95,118,101,108, 0,100,114,105,112, 95, 97, 99, 99, 0,105,110,102,108,117,101,
-110, 99,101, 95,115, 99, 97,108,101, 0,114, 97,100,105,117,115, 95,115, 99, 97,108,101, 0,119, 97,118,101, 95,100, 97,109,112,
-105,110,103, 0,119, 97,118,101, 95,115,112,101,101,100, 0,119, 97,118,101, 95,116,105,109,101,115, 99, 97,108,101, 0,119, 97,
-118,101, 95,115,112,114,105,110,103, 0,105,109, 97,103,101, 95,111,117,116,112,117,116, 95,112, 97,116,104, 91, 49, 48, 50, 52,
- 93, 0,111,117,116,112,117,116, 95,110, 97,109,101, 91, 54, 52, 93, 0,111,117,116,112,117,116, 95,110, 97,109,101, 50, 91, 54,
- 52, 93, 0, 42,112,109,100, 0,115,117,114,102, 97, 99,101,115, 0, 97, 99,116,105,118,101, 95,115,117,114, 0,101,114,114,111,
-114, 91, 54, 52, 93, 0, 99,111,108,108,105,115,105,111,110, 0,119,101,116,110,101,115,115, 0,112, 97,114,116,105, 99,108,101,
- 95,114, 97,100,105,117,115, 0,112, 97,114,116,105, 99,108,101, 95,115,109,111,111,116,104, 0,112, 97,105,110,116, 95,100,105,
-115,116, 97,110, 99,101, 0, 42,112, 97,105,110,116, 95,114, 97,109,112, 0, 42,118,101,108, 95,114, 97,109,112, 0,112,114,111,
-120,105,109,105,116,121, 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,105,114, 0,119, 97,118,101, 95,102, 97, 99,116,
-111,114, 0,119, 97,118,101, 95, 99,108, 97,109,112, 0,109, 97,120, 95,118,101,108,111, 99,105,116,121, 0,115,109,117,100,103,
-101, 95,115,116,114,101,110,103,116,104, 0, 0, 84, 89, 80, 69, 16, 2, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,
-104,111,114,116, 0,117,115,104,111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116,
- 0,100,111,117, 98,108,101, 0,105,110,116, 54, 52, 95,116, 0,117,105,110,116, 54, 52, 95,116, 0,118,111,105,100, 0, 76,105,
-110,107, 0, 76,105,110,107, 68, 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,102,
- 0,118,101, 99, 51,102, 0,114, 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, 97,116, 97, 0,
- 73, 68, 80,114,111,112,101,114,116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97,116, 97, 0, 80,
-114,101,118,105,101,119, 73,109, 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116, 0, 73,112,111,
- 67,117,114,118,101, 0, 66, 80,111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75,101,121, 66,108,
-111, 99,107, 0, 75,101,121, 0, 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101,120,116, 77, 97,
-114,107,101,114, 0, 84,101,120,116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97,103,
-101, 85,115,101,114, 0, 83, 99,101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101, 0, 97,110,105,
-109, 0, 82,101,110,100,101,114, 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 80,108,117,103,105,110, 84,101,
-120, 0, 67, 66, 68, 97,116, 97, 0, 67,111,108,111,114, 66, 97,110,100, 0, 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, 0,
- 80,111,105,110,116, 68,101,110,115,105,116,121, 0, 67,117,114,118,101, 77, 97,112,112,105,110,103, 0, 86,111,120,101,108, 68,
- 97,116, 97, 0, 79, 99,101, 97,110, 84,101,120, 0, 98, 78,111,100,101, 84,114,101,101, 0, 84,101,120, 77, 97,112,112,105,110,
-103, 0, 67,111,108,111,114, 77, 97,112,112,105,110,103, 0, 76, 97,109,112, 0, 86,111,108,117,109,101, 83,101,116,116,105,110,
-103,115, 0, 71, 97,109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,116,101,114,105, 97,108, 0, 71,114,111,117,112, 0, 86,
- 70,111,110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116, 97, 69,108,101,109, 0, 66,111,117,110,100, 66,111,120,
- 0, 77,101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,114, 73,110,102,111, 0, 84,101,120,116, 66,111,120, 0,
- 69,100,105,116, 78,117,114, 98, 0, 71, 72, 97,115,104, 0, 67,117,114,118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120,
- 0, 69,100,105,116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 80,111,108,121, 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,
-111,111,112, 0, 77, 76,111,111,112, 85, 86, 0, 77, 76,111,111,112, 67,111,108, 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99,
-101, 0, 84, 70, 97, 99,101, 0, 77, 86,101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,111,114,109, 86,101,114,116, 0,
- 77, 67,111,108, 0, 77, 83,116,105, 99,107,121, 0, 77, 83,101,108,101, 99,116, 0, 66, 77, 69,100,105,116, 77,101,115,104, 0,
- 67,117,115,116,111,109, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 0, 77, 68,101,102,111,114,109, 87,101,105,103,104,
-116, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, 0, 77, 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83,
-116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114,105,103, 83,112, 97, 99,101, 70, 97, 99,101, 0, 79,114,105,103,
- 83,112, 97, 99,101, 76,111,111,112, 0, 77, 68,105,115,112,115, 0, 77,117,108,116,105,114,101,115, 67,111,108, 0, 77,117,108,
-116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 70, 97, 99,101, 0, 77,117,108,116,105,114,
-101,115, 69,100,103,101, 0, 77,117,108,116,105,114,101,115, 76,101,118,101,108, 0, 77, 82,101, 99, 97,115,116, 0, 77,111,100,
-105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,112,112,105,110,103, 73,110,102,111, 77,111,100,105,102,105,101,114, 68, 97,116,
- 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,105, 99,101, 77,111,100,
-105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,117,105,108,
-100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,115,107, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,
-114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,105,102,105,101,114, 68,
- 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66,101,118,101,108, 77,
-111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,
-111,107,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,110, 83,101,116,116,105,
-110,103,115, 0, 83,109,111,107,101, 70,108,111,119, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 67,111,108,108, 83,
-101,116,116,105,110,103,115, 0, 68,105,115,112,108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 85, 86, 80,
-114,111,106,101, 99,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,101, 77,111,100,105,102,
-105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67, 97,115,116, 77,
-111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 65,114,109,
- 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,102,105,101,114, 68, 97,
-116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 77,111,100,
-105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,116,116,105,110,103,115,
- 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97, 99,104,101, 0, 67,111,
-108,108,105,115,105,111,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,101, 0, 83,117,114,102,
- 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,104, 0, 66, 86, 72, 84,
-114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0,
- 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,104, 68,101,102,111,114,
-109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 77,111,100,105,
-102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,114,116,105, 99,108,101,
- 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,100,101, 77,111,100,105,
-102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,
-117,105,100,115,105,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,109, 83,101,116,116,105,
-110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,105,109,112,108,
-101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,101,121, 77,111,100,105,
-102,105,101,114, 68, 97,116, 97, 0, 83,111,108,105,100,105,102,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83, 99,
-114,101,119, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 79, 99,101, 97,110, 77,111,100,105,102,105,101,114, 68, 97,116,
- 97, 0, 79, 99,101, 97,110, 0, 79, 99,101, 97,110, 67, 97, 99,104,101, 0, 87, 97,114,112, 77,111,100,105,102,105,101,114, 68,
- 97,116, 97, 0, 87,101,105,103,104,116, 86, 71, 69,100,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87,101,105,
-103,104,116, 86, 71, 77,105,120, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87,101,105,103,104,116, 86, 71, 80,114,111,
-120,105,109,105,116,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 77,
-111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 67, 97,110,118, 97,115, 83,101,
-116,116,105,110,103,115, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 66,114,117,115,104, 83,101,116,116,105,110,103,115,
- 0, 82,101,109,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,105,116, 76, 97,116,116, 0, 76, 97,116,
-116,105, 99,101, 0, 98, 68,101,102,111,114,109, 71,114,111,117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0,
- 98, 65, 99,116,105,111,110, 0, 98, 80,111,115,101, 0, 98, 71, 80,100, 97,116, 97, 0, 98, 65,110,105,109, 86,105,122, 83,101,
-116,116,105,110,103,115, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 0, 66,117,108,108,101,116, 83,111,102,116, 66,111,100,
-121, 0, 80, 97,114,116, 68,101,102,108,101, 99,116, 0, 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, 68,117,
-112,108,105, 79, 98,106,101, 99,116, 0, 82, 78, 71, 0, 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, 80, 84,
- 67, 97, 99,104,101, 69,120,116,114, 97, 0, 80, 84, 67, 97, 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,
-116, 0, 83, 66, 86,101,114,116,101,120, 0, 66,111,100,121, 80,111,105,110,116, 0, 66,111,100,121, 83,112,114,105,110,103, 0,
- 83, 66, 83, 99,114, 97,116, 99,104, 0, 70,108,117,105,100, 86,101,114,116,101,120, 86,101,108,111, 99,105,116,121, 0, 87,111,
-114,108,100, 0, 66, 97,115,101, 0, 65,118,105, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,
-111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, 0,
- 70, 70, 77,112,101,103, 67,111,100,101, 99, 68, 97,116, 97, 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, 82,
-101,110,100,101,114, 76, 97,121,101,114, 0, 73,109, 97,103,101, 70,111,114,109, 97,116, 68, 97,116, 97, 0, 82,101,110,100,101,
-114, 68, 97,116, 97, 0, 82,101,110,100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97,109,
-101, 70,114, 97,109,105,110,103, 0, 82,101, 99, 97,115,116, 68, 97,116, 97, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,
-101, 77, 97,114,107,101,114, 0, 80, 97,105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,
-116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,
-101, 69,100,105,116, 83,101,116,116,105,110,103,115, 0, 83, 99,117,108,112,116, 0, 85,118, 83, 99,117,108,112,116, 0, 86, 80,
- 97,105,110,116, 0, 84,114, 97,110,115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0, 85,110,105,102,105,101,
-100, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 84,111,111,108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97,
-116,115, 0, 85,110,105,116, 83,101,116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0,
- 69,100,105,116,105,110,103, 0, 83, 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, 0, 77,111,118,
-105,101, 67,108,105,112, 0, 66, 71,112,105, 99, 0, 77,111,118,105,101, 67,108,105,112, 85,115,101,114, 0, 82,101,103,105,111,
-110, 86,105,101,119, 51, 68, 0, 82,101,110,100,101,114, 73,110,102,111, 0, 82,101,110,100,101,114, 69,110,103,105,110,101, 0,
- 86,105,101,119, 68,101,112,116,104,115, 0, 83,109,111,111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,
-101,114, 0, 86,105,101,119, 51, 68, 0, 83,112, 97, 99,101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101,
- 73,110,102,111, 0, 83,112, 97, 99,101, 73,112,111, 0, 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99,101, 66,117,
-116,115, 0, 83,112, 97, 99,101, 83,101,113, 0, 70,105,108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97,
- 99,101, 70,105,108,101, 0, 70,105,108,101, 76,105,115,116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76,
- 97,121,111,117,116, 0, 83,112, 97, 99,101, 79,111,112,115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,
-111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, 73,109, 97,103,101, 0, 83, 99,111,112,101,115, 0, 72,105,115,116,111,103,
-114, 97,109, 0, 83,112, 97, 99,101, 78,108, 97, 0, 83,112, 97, 99,101, 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112,
- 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 84,105,109,101, 67, 97, 99,104,101, 0, 83,112, 97, 99,101, 84,105,
-109,101, 0, 83,112, 97, 99,101, 78,111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, 99, 0, 67,111,110,115,111,108,101, 76,
-105,110,101, 0, 83,112, 97, 99,101, 67,111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101,114, 80,114,101,102, 0, 83,
-112, 97, 99,101, 67,108,105,112, 0, 77,111,118,105,101, 67,108,105,112, 83, 99,111,112,101,115, 0,117,105, 70,111,110,116, 0,
-117,105, 70,111,110,116, 83,116,121,108,101, 0,117,105, 83,116,121,108,101, 0,117,105, 87,105,100,103,101,116, 67,111,108,111,
-114,115, 0,117,105, 87,105,100,103,101,116, 83,116, 97,116,101, 67,111,108,111,114,115, 0,117,105, 80, 97,110,101,108, 67,111,
-108,111,114,115, 0, 84,104,101,109,101, 85, 73, 0, 84,104,101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,
-101, 67,111,108,111,114, 0, 98, 84,104,101,109,101, 0, 98, 65,100,100,111,110, 0, 83,111,108,105,100, 76,105,103,104,116, 0,
- 85,115,101,114, 68,101,102, 0, 98, 83, 99,114,101,101,110, 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0,
- 80, 97,110,101,108, 0, 80, 97,110,101,108, 84,121,112,101, 0,117,105, 76, 97,121,111,117,116, 0, 83, 99,114, 65,114,101, 97,
- 0, 83,112, 97, 99,101, 84,121,112,101, 0, 65, 82,101,103,105,111,110, 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,
-105,108,101, 71,108,111, 98, 97,108, 0, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114,105,112, 67,114,111,112, 0, 83,116,
-114,105,112, 84,114, 97,110,115,102,111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 83,
-116,114,105,112, 80,114,111,120,121, 0, 83,116,114,105,112, 0, 80,108,117,103,105,110, 83,101,113, 0, 83,101,113,117,101,110,
- 99,101, 0, 98, 83,111,117,110,100, 0, 77,101,116, 97, 83,116, 97, 99,107, 0, 87,105,112,101, 86, 97,114,115, 0, 71,108,111,
-119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97,114,115, 0, 83,111,108,105,100, 67,111,108,111,114, 86, 97,
-114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,115, 0, 69,102,102,101, 99,116, 0, 66,117,105,108,100,
- 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,108,101, 0, 87, 97,118,101, 69,102,102, 0, 98, 80,114,
-111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114, 0, 98, 77,111,117,115,101, 83,101,110,115,111,114, 0,
- 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,111, 97,114,100, 83,101,110,115,111,114, 0, 98, 80,114,
-111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117, 97,116,111,114, 83,101,110,115,111,114, 0, 98, 68,101,
-108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,111,110, 83,101,110,115,111,114, 0, 98, 82, 97,100, 97,
-114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,115,111,114, 0, 98, 82, 97,121, 83,101,110,115,111,114,
- 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, 98, 77,101,115,115, 97,103,101, 83,101,110,115,111,114, 0,
- 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,114, 0, 98, 74,111,121,115,116,105, 99,107, 83,101,110,
-115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,116, 0, 98, 80,121,116,104,111,110, 67,111,110,116, 0,
- 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 65, 99,
-116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,100, 51, 68, 0, 98, 83,111,117,110,100, 65, 99,116,117, 97,
-116,111,114, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83, 99,101,110,101, 65, 99,
-116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 79, 98,106,101, 99,116,
- 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, 97,116,111,114, 0, 98, 67, 97,109,101,114, 97, 65, 99,116,
-117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 71,114,111,117,112,
- 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, 99,116,117, 97,116,111,114, 0, 98, 77,101,115,115, 97,103,
-101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99,116,117, 97,116,111,114, 0, 98, 86,105,115,105, 98,105,108,
-105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, 70,105,108,116,101,114, 65, 99,116,117, 97,116,111,114, 0,
- 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116, 97,116,101, 65, 99,116,117, 97,116,111,114, 0, 98,
- 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116,101,101,114,105,110,103, 65, 99,116,117, 97,116,
-111,114, 0, 71,114,111,117,112, 79, 98,106,101, 99,116, 0, 66,111,110,101, 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,
-111,116,105,111,110, 80, 97,116,104, 86,101,114,116, 0, 98, 80,111,115,101, 67,104, 97,110,110,101,108, 0, 98, 73, 75, 80, 97,
-114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105,111,110, 71,114,111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,
-105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 67,104,
- 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 84, 97,114,
-103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 75,105,110,101,109, 97,116,105, 99,
- 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105,110,101, 73, 75, 67,111,110,115,116,114, 97,105,110,116, 0, 98,
- 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 97,116,101, 76,105,107,101, 67,111,110,
-115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,
-105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83, 97,109,101, 86,111,108,117,109,101, 67,111,110,
-115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 77,105,
-110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 67,111,110,115,116,114, 97,105,110,116,
- 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107,
- 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 80, 97,116,104, 67,111,110,115,116,114, 97,105,110,116,
- 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,105,103,105,100, 66,111,100,121,
- 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,108, 97,109,112, 84,111, 67,111,110,115,116,114, 97,105,
-110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115,102,111,114,109,
- 67,111,110,115,116,114, 97,105,110,116, 0, 98, 80,105,118,111,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99,
- 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,
-105,110,116, 0, 98, 83,105,122,101, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,
-109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,104,114,105,110,107,119,114, 97,112, 67,111,110,115,116,114, 97,
-105,110,116, 0, 98, 70,111,108,108,111,119, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67, 97,109,101,
-114, 97, 83,111,108,118,101,114, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 79, 98,106,101, 99,116, 83,111,108,118,101,114,
- 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 77,111,100,105,102,105,101,114, 0, 98, 65, 99,116,105,
-111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 0, 98,
- 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 0, 98, 78,111,100,101, 0,117,105, 66,108,
-111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0, 98, 78,111,100,101, 84,114,101,101, 69,120,101, 99, 0, 98, 78,111,100,
-101, 83,111, 99,107,101,116, 86, 97,108,117,101, 73,110,116, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101,
- 70,108,111, 97,116, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 66,111,111,108,101, 97,110, 0, 98, 78,
-111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 86,101, 99,116,111,114, 0, 98, 78,111,100,101, 83,111, 99,107,101,116,
- 86, 97,108,117,101, 82, 71, 66, 65, 0, 78,111,100,101, 73,109, 97,103,101, 65,110,105,109, 0, 78,111,100,101, 66,108,117,114,
- 68, 97,116, 97, 0, 78,111,100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 66,105,108, 97,116,101,114, 97,108,
- 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111,100,101, 73,109, 97,103,101, 70,105,108,
-101, 0, 78,111,100,101, 73,109, 97,103,101, 77,117,108,116,105, 70,105,108,101, 0, 78,111,100,101, 73,109, 97,103,101, 77,117,
-108,116,105, 70,105,108,101, 83,111, 99,107,101,116, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119,111,
- 88, 89,115, 0, 78,111,100,101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, 78,
-111,100,101, 86,101,114,116,101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99,114,
-105,112,116, 68,105, 99,116, 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78,111,
-100,101, 76,101,110,115, 68,105,115,116, 0, 78,111,100,101, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 78,111,100,101,
- 67,111,108,111,114,115,112,105,108,108, 0, 78,111,100,101, 84,101,120, 66, 97,115,101, 0, 78,111,100,101, 84,101,120, 83,107,
-121, 0, 78,111,100,101, 84,101,120, 73,109, 97,103,101, 0, 78,111,100,101, 84,101,120, 67,104,101, 99,107,101,114, 0, 78,111,
-100,101, 84,101,120, 69,110,118,105,114,111,110,109,101,110,116, 0, 78,111,100,101, 84,101,120, 71,114, 97,100,105,101,110,116,
- 0, 78,111,100,101, 84,101,120, 78,111,105,115,101, 0, 78,111,100,101, 84,101,120, 86,111,114,111,110,111,105, 0, 78,111,100,
-101, 84,101,120, 77,117,115,103,114, 97,118,101, 0, 78,111,100,101, 84,101,120, 87, 97,118,101, 0, 78,111,100,101, 84,101,120,
- 77, 97,103,105, 99, 0, 78,111,100,101, 83,104, 97,100,101,114, 65,116,116,114,105, 98,117,116,101, 0, 84,101,120, 78,111,100,
-101, 79,117,116,112,117,116, 0, 67,117,114,118,101, 77, 97,112, 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,
-114,117,115,104, 67,108,111,110,101, 0, 67,117,115,116,111,109, 68, 97,116, 97, 76, 97,121,101,114, 0, 67,117,115,116,111,109,
- 68, 97,116, 97, 69,120,116,101,114,110, 97,108, 0, 72, 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121,
- 0, 66,111,105,100, 80, 97,114,116,105, 99,108,101, 0, 66,111,105,100, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,
-112,114,105,110,103, 0, 67,104,105,108,100, 80, 97,114,116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,
-101,116, 0, 80, 97,114,116,105, 99,108,101, 68,117,112,108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68,
- 97,116, 97, 0, 83, 80, 72, 70,108,117,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,
-116,105,110,103,115, 0, 66,111,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101,
- 75,101,121, 0, 75, 68, 84,114,101,101, 0, 80, 97,114,116,105, 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107,
- 78,111,100,101, 0, 98, 71, 80, 68,115,112,111,105,110,116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,
-114, 97,109,101, 0, 98, 71, 80, 68,108, 97,121,101,114, 0, 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,
-111,119, 77, 97,110, 97,103,101,114, 0,119,109, 87,105,110,100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,
-109, 69,118,101,110,116, 0,119,109, 83,117, 98, 87,105,110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,
-101,121, 77, 97,112, 73,116,101,109, 0, 80,111,105,110,116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 68,105,102,
-102, 73,116,101,109, 0,119,109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, 77,
-111,100,105,102,105,101,114, 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, 99,
-116,105,111,110, 71,101,110,101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, 70,
- 77,111,100, 95, 69,110,118,101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80,121,
-116,104,111,110, 0, 70, 77,111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111,100,
- 95, 83,116,101,112,112,101,100, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 68,114,105,118,101,114, 86, 97,114, 0,
- 67,104, 97,110,110,101,108, 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105,109,
- 77, 97,112, 80, 97,105,114, 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, 84,
-114, 97, 99,107, 0, 75, 83, 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114,114,
-105,100,101, 0, 73,100, 65,100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, 82,
-117,108,101, 71,111, 97,108, 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105,115,
-105,111,110, 0, 66,111,105,100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117,108,
-101, 65,118,101,114, 97,103,101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105,100,
- 83,116, 97,116,101, 0, 70, 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 83,112,101, 97,107,
-101,114, 0, 77,111,118,105,101, 67,108,105,112, 80,114,111,120,121, 0, 77,111,118,105,101, 67,108,105,112, 67, 97, 99,104,101,
- 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 84,114, 97, 99,
-107, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 77, 97,114,107,101,114, 0, 77,111,118,105,101, 82,101, 99,111,110,
-115,116,114,117, 99,116,101,100, 67, 97,109,101,114, 97, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 67, 97,109,101,
-114, 97, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 83,101,116,116,105,110,103,115, 0, 77,111,118,105,101, 84,114,
- 97, 99,107,105,110,103, 83,116, 97, 98,105,108,105,122, 97,116,105,111,110, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,
-103, 82,101, 99,111,110,115,116,114,117, 99,116,105,111,110, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 79, 98,106,
-101, 99,116, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 83,116, 97,116,115, 0, 68,121,110, 97,109,105, 99, 80, 97,
-105,110,116, 83,117,114,102, 97, 99,101, 0, 80, 97,105,110,116, 83,117,114,102, 97, 99,101, 68, 97,116, 97, 0, 84, 76, 69, 78,
- 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0, 8, 0, 8, 0, 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0,
- 8, 0, 12, 0, 16, 0, 16, 0, 32, 0,128, 0,120, 0,152, 8, 0, 0, 40, 0,144, 0,112, 5,112, 0, 36, 0, 56, 0,160, 0,
-200, 0, 0, 1, 96, 0, 40, 0, 48, 0,224, 0, 16, 0,200, 0, 40, 0,216, 11, 48, 5, 0, 0, 0, 0, 0, 0, 56, 1,168, 1,
-216, 4, 24, 0, 8, 3,200, 0, 0, 0,104, 0, 64, 1, 56, 4, 80, 0, 24, 1,144, 0, 56, 3, 16, 2, 88, 0, 16, 0,128, 3,
-152, 0,136, 4, 0, 0,104, 0,104, 0, 0, 1, 80, 0, 8, 0, 16, 0, 32, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 0,232, 4,
- 12, 0, 16, 0, 8, 0, 12, 0, 4, 0, 20, 0, 48, 0, 64, 0, 20, 0, 12, 0, 16, 0, 4, 0, 8, 0, 8, 0, 0, 0,176, 0,
-144, 1, 8, 0, 4, 0, 4, 0, 0, 1, 32, 0, 8, 0, 24, 0, 16, 0, 64, 0, 24, 0, 12, 0, 64, 0, 4, 0,112, 0,200, 0,
-136, 0,192, 0,192, 0,128, 0,192, 0,192, 0,128, 0,120, 0,200, 0,120, 0,144, 0, 16, 1, 56, 0,192, 0, 24, 1, 40, 1,
-120, 0,184, 0,200, 0, 64, 1,200, 0, 88, 1,112, 0,168, 0, 0, 0,152, 0, 48, 0, 40, 5,192, 0, 0, 0,152, 0, 0, 0,
- 0, 0,128, 0, 8, 0, 8, 0,112, 1,144, 0,152, 2,136, 0,192, 0,120, 0,128, 0,224, 4,208, 0,200, 0,112, 0,208, 0,
-144, 0, 16, 5, 0, 0, 0, 0, 48, 1,104, 1,160, 1,104, 1,136, 0,104, 0,112, 0,128, 0, 16, 0, 96, 1, 88, 0, 0, 0,
-200, 0,216, 0,152, 0, 48, 0, 24, 0,120, 0,152, 0,216, 1, 0, 1,184, 0, 0, 0, 72, 0, 32, 0,176, 0, 0, 0, 16, 0,
- 0, 0, 0, 0, 0, 0, 12, 0, 24, 2, 40, 0,184, 0,152, 0, 64, 0, 72, 0, 32, 0,120, 0, 24, 0, 56, 9, 64, 0, 24, 0,
- 16, 0, 56, 0,168, 0, 96, 0, 24, 0, 88, 6, 48, 0, 16, 0,168, 0, 96, 0, 24, 0, 56, 0,120, 0, 16, 0,232, 1, 32, 0,
- 8, 0, 24, 0, 80, 8, 0, 0, 0, 0,192, 8,104, 0, 8, 0,112, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1, 56, 0,
-144, 0, 64, 0,240, 0,112, 0,248, 0,240, 0,160, 7,104, 0, 0, 0,168, 0, 0, 0, 24, 1, 16, 0, 16, 0, 40, 33,128, 16,
- 24, 16,216, 0,160, 2,168, 5, 64, 0, 24, 0,208, 0, 48, 1, 72, 0, 40, 0,136, 1,104, 0, 40, 1, 56, 0, 24, 4, 32, 0,
-232, 0, 32, 0, 32, 0, 8, 0, 80, 3,224, 1, 16, 0,168, 36, 80, 0, 56, 0,112, 38, 8, 1, 32, 0, 40, 0, 88, 1, 0, 0,
- 0, 0,160, 0, 0, 0, 40, 1, 0, 0, 48, 4, 8, 1, 16, 0, 8, 0, 44, 0, 16, 4, 72, 3,200, 4, 80, 1,208, 4, 32, 0,
- 12, 0, 24, 0, 32, 0, 16, 0, 24, 0, 24, 0, 32, 0,136, 1, 0, 0, 64, 0, 96, 0, 80, 0, 8, 0, 80, 0,136, 0,200, 0,
- 72, 0, 8, 0,136, 0, 76, 0, 72, 0,204, 0,136, 0,136, 0,128, 0,136, 0, 92, 0,128, 0, 80, 0,112, 0, 16, 0,168, 0,
- 32, 0, 72, 0,120, 0, 24, 0,144, 0,112, 0,148, 0, 32, 0,128, 0, 88, 0, 88, 0,208, 0,140, 0, 4, 0, 24, 0, 16, 0,
- 8, 0,160, 0, 48, 0, 40, 0, 72, 1, 0, 1, 16, 0, 32, 2, 4, 0, 40, 0,120, 0, 72, 1,120, 0, 56, 0,120, 0,160, 0,
-112, 0,184, 0, 24, 0, 88, 0, 80, 0, 80, 0, 80, 0, 8, 0, 72, 0,104, 0,104, 0, 80, 0, 80, 0, 24, 0, 88, 0,104, 0,
- 16, 0,144, 0,128, 0, 88, 0, 28, 0, 28, 0, 28, 0, 88, 0, 24, 0,160, 0, 16, 0,152, 0, 72, 0,168, 0, 48, 0,208, 0,
- 56, 0, 16, 0, 88, 1, 0, 0, 0, 0, 0, 0, 16, 0, 16, 0, 4, 0, 24, 0, 16, 0, 16, 0, 40, 0, 28, 0, 12, 0, 12, 0,
- 32, 4, 40, 4, 32, 0, 44, 0, 24, 0, 8, 0,128, 0, 64, 0, 32, 0, 16, 0, 32, 0, 32, 0, 8, 0, 96, 0, 20, 0,200, 3,
-216, 3,208, 3,200, 3,208, 3,208, 3,200, 3,208, 3,208, 3,208, 3,208, 3, 64, 0, 64, 0, 12, 0, 56, 0, 24, 0,104, 0,
- 0, 4, 24, 0, 56, 0, 56, 0, 20, 0, 16, 0, 64, 0, 40, 0, 32, 0,192, 0, 60, 0, 16, 3,104, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 16, 0, 32, 0, 40, 0,192, 0, 40, 0, 88, 1, 0, 1,168, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 32, 0,136, 0,
- 0, 0,120, 0, 24, 0, 24, 0, 16, 0, 24, 0, 8, 0, 16, 0, 24, 0, 20, 0, 20, 0, 56, 0, 24, 2, 40, 1, 16, 0,104, 0,
- 0, 1, 40, 0,208, 0,104, 0,112, 0,216, 1, 32, 0,128, 0, 56, 0, 80, 0, 64, 0,104, 0, 72, 0, 64, 0,128, 0, 0, 0,
- 0, 0,184, 0, 8, 3, 0, 0,248, 0,192, 0, 16, 0, 72, 0, 48, 0, 64, 0, 56, 0, 24, 0,128, 0, 0, 1, 16, 6, 0, 0,
- 83, 84, 82, 67,207, 1, 0, 0, 12, 0, 2, 0, 12, 0, 0, 0, 12, 0, 1, 0, 13, 0, 3, 0, 13, 0, 0, 0, 13, 0, 1, 0,
- 11, 0, 2, 0, 14, 0, 2, 0, 11, 0, 3, 0, 11, 0, 4, 0, 15, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0, 16, 0, 2, 0,
- 7, 0, 5, 0, 7, 0, 6, 0, 17, 0, 3, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 18, 0, 4, 0, 4, 0, 8, 0,
- 4, 0, 9, 0, 4, 0, 10, 0, 4, 0, 11, 0, 19, 0, 4, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0,
- 20, 0, 4, 0, 11, 0, 12, 0, 14, 0, 13, 0, 4, 0, 14, 0, 4, 0, 15, 0, 21, 0, 10, 0, 21, 0, 0, 0, 21, 0, 1, 0,
- 0, 0, 16, 0, 0, 0, 17, 0, 2, 0, 18, 0, 0, 0, 19, 0, 4, 0, 20, 0, 20, 0, 21, 0, 4, 0, 22, 0, 4, 0, 23, 0,
- 22, 0, 11, 0, 11, 0, 0, 0, 11, 0, 1, 0, 22, 0, 24, 0, 23, 0, 25, 0, 0, 0, 26, 0, 2, 0, 27, 0, 2, 0, 28, 0,
- 2, 0, 18, 0, 4, 0, 29, 0, 4, 0, 30, 0, 21, 0, 31, 0, 23, 0, 8, 0, 22, 0, 32, 0, 22, 0, 33, 0, 24, 0, 34, 0,
- 0, 0, 35, 0, 0, 0, 36, 0, 4, 0, 37, 0, 4, 0, 27, 0, 23, 0, 38, 0, 25, 0, 5, 0, 4, 0, 39, 0, 4, 0, 40, 0,
- 2, 0, 41, 0, 2, 0, 42, 0, 4, 0, 43, 0, 26, 0, 6, 0, 27, 0, 44, 0, 2, 0, 45, 0, 2, 0, 46, 0, 2, 0, 16, 0,
- 2, 0, 18, 0, 0, 0, 47, 0, 28, 0, 21, 0, 28, 0, 0, 0, 28, 0, 1, 0, 29, 0, 48, 0, 30, 0, 49, 0, 19, 0, 50, 0,
- 19, 0, 51, 0, 2, 0, 45, 0, 2, 0, 46, 0, 2, 0, 52, 0, 2, 0, 53, 0, 2, 0, 54, 0, 2, 0, 55, 0, 2, 0, 18, 0,
- 2, 0, 56, 0, 7, 0, 10, 0, 7, 0, 11, 0, 4, 0, 57, 0, 7, 0, 58, 0, 7, 0, 59, 0, 7, 0, 60, 0, 26, 0, 61, 0,
- 31, 0, 7, 0, 22, 0, 32, 0, 14, 0, 62, 0, 19, 0, 63, 0, 2, 0, 45, 0, 2, 0, 64, 0, 2, 0, 65, 0, 2, 0, 27, 0,
- 32, 0, 18, 0, 32, 0, 0, 0, 32, 0, 1, 0, 7, 0, 66, 0, 7, 0, 60, 0, 2, 0, 16, 0, 2, 0, 46, 0, 2, 0, 67, 0,
- 2, 0, 18, 0, 4, 0, 68, 0, 4, 0, 30, 0, 11, 0, 2, 0, 7, 0, 69, 0, 0, 0, 19, 0, 0, 0, 70, 0, 7, 0, 71, 0,
- 7, 0, 72, 0, 4, 0, 73, 0, 4, 0, 74, 0, 33, 0, 15, 0, 22, 0, 32, 0, 34, 0, 75, 0, 32, 0, 76, 0, 0, 0, 77, 0,
- 4, 0, 78, 0, 7, 0, 60, 0, 14, 0, 79, 0, 31, 0, 80, 0, 22, 0, 81, 0, 2, 0, 16, 0, 2, 0, 82, 0, 2, 0, 83, 0,
- 2, 0, 18, 0, 7, 0, 84, 0, 4, 0, 85, 0, 35, 0, 6, 0, 35, 0, 0, 0, 35, 0, 1, 0, 0, 0, 86, 0, 0, 0, 87, 0,
- 4, 0, 22, 0, 4, 0, 88, 0, 36, 0, 10, 0, 36, 0, 0, 0, 36, 0, 1, 0, 4, 0, 89, 0, 4, 0, 90, 0, 4, 0, 91, 0,
- 4, 0, 92, 0, 4, 0, 13, 0, 4, 0, 93, 0, 0, 0, 94, 0, 0, 0, 95, 0, 37, 0, 15, 0, 22, 0, 32, 0, 0, 0, 96, 0,
- 4, 0, 93, 0, 4, 0, 97, 0, 14, 0, 98, 0, 35, 0, 99, 0, 35, 0,100, 0, 4, 0,101, 0, 4, 0,102, 0, 14, 0,103, 0,
- 0, 0,104, 0, 4, 0,105, 0, 4, 0,106, 0, 11, 0,107, 0, 8, 0,108, 0, 38, 0, 3, 0, 4, 0,109, 0, 4, 0,110, 0,
- 11, 0, 2, 0, 39, 0, 20, 0, 22, 0, 32, 0, 34, 0, 75, 0, 0, 0, 16, 0, 0, 0,111, 0, 2, 0, 18, 0, 7, 0,112, 0,
- 7, 0,113, 0, 7, 0,114, 0, 7, 0,115, 0, 7, 0,116, 0, 7, 0,117, 0, 7, 0,118, 0, 7, 0,119, 0, 7, 0,120, 0,
- 7, 0,121, 0, 7, 0,122, 0, 31, 0, 80, 0, 27, 0,123, 0, 0, 0,124, 0, 0, 0,125, 0, 40, 0, 14, 0, 41, 0,126, 0,
- 4, 0,127, 0, 4, 0,128, 0, 4, 0,129, 0, 4, 0,130, 0, 0, 0,131, 0, 0, 0,132, 0, 0, 0,133, 0, 0, 0, 27, 0,
- 2, 0,134, 0, 2, 0,135, 0, 2, 0,136, 0, 2, 0, 18, 0, 4, 0, 30, 0, 42, 0, 33, 0, 22, 0, 32, 0, 0, 0, 35, 0,
- 14, 0,137, 0, 43, 0,138, 0, 44, 0,139, 0, 45, 0,140, 0, 45, 0,141, 0, 2, 0,142, 0, 2, 0,143, 0, 2, 0,133, 0,
- 2, 0, 18, 0, 2, 0,144, 0, 2, 0, 16, 0, 4, 0,145, 0, 2, 0,146, 0, 2, 0,147, 0, 2, 0,148, 0, 2, 0,149, 0,
- 2, 0,150, 0, 2, 0,151, 0, 4, 0,152, 0, 4, 0,153, 0, 38, 0,154, 0, 25, 0,155, 0, 7, 0,156, 0, 4, 0,157, 0,
- 2, 0,158, 0, 2, 0,159, 0, 2, 0,160, 0, 0, 0,161, 0, 0, 0,162, 0, 7, 0,163, 0, 7, 0,164, 0, 46, 0, 65, 0,
- 2, 0,165, 0, 2, 0,166, 0, 2, 0,167, 0, 2, 0,168, 0, 27, 0,169, 0, 47, 0,170, 0, 0, 0,171, 0, 0, 0,172, 0,
- 0, 0,173, 0, 0, 0,174, 0, 0, 0,175, 0, 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0, 2, 0,179, 0, 2, 0,180, 0,
- 2, 0,181, 0, 2, 0,182, 0, 2, 0,183, 0, 2, 0,184, 0, 0, 0,185, 0, 0, 0,125, 0, 7, 0,186, 0, 7, 0,187, 0,
- 7, 0,188, 0, 7, 0,189, 0, 7, 0,190, 0, 7, 0, 56, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0, 7, 0,194, 0,
- 7, 0,195, 0, 7, 0,196, 0, 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, 0, 7, 0,202, 0,
- 7, 0,203, 0, 7, 0,204, 0, 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, 0, 7, 0,210, 0,
- 7, 0,211, 0, 7, 0,212, 0, 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, 0, 7, 0,218, 0,
- 7, 0,219, 0, 7, 0,220, 0, 7, 0,221, 0, 7, 0,222, 0, 7, 0,223, 0, 7, 0,224, 0, 7, 0,225, 0, 7, 0,226, 0,
- 7, 0,227, 0, 48, 0, 15, 0, 0, 0, 35, 0, 11, 0,228, 0, 0, 0,229, 0, 0, 0,230, 0, 4, 0,231, 0, 4, 0,232, 0,
- 11, 0,233, 0, 7, 0,234, 0, 7, 0,235, 0, 7, 0,236, 0, 4, 0,237, 0, 11, 0,238, 0, 11, 0,239, 0, 4, 0,240, 0,
- 4, 0, 27, 0, 49, 0, 6, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0,241, 0, 7, 0, 66, 0, 4, 0, 63, 0,
- 50, 0, 5, 0, 2, 0, 18, 0, 2, 0, 37, 0, 2, 0, 63, 0, 2, 0,242, 0, 49, 0,236, 0, 51, 0, 17, 0, 27, 0,169, 0,
- 42, 0,243, 0, 52, 0,244, 0, 7, 0,245, 0, 7, 0,246, 0, 2, 0, 16, 0, 2, 0,247, 0, 7, 0,113, 0, 7, 0,114, 0,
- 7, 0,248, 0, 4, 0,249, 0, 2, 0,250, 0, 2, 0,251, 0, 4, 0,133, 0, 4, 0,145, 0, 2, 0,252, 0, 2, 0,253, 0,
- 53, 0, 25, 0, 2, 0, 18, 0, 2, 0,254, 0, 7, 0,255, 0, 7, 0, 0, 1, 2, 0,144, 0, 2, 0, 1, 1, 4, 0, 2, 1,
- 4, 0, 3, 1, 27, 0,169, 0, 4, 0, 4, 1, 2, 0, 5, 1, 2, 0, 6, 1, 11, 0, 7, 1, 7, 0, 8, 1, 7, 0, 9, 1,
- 2, 0, 10, 1, 2, 0, 11, 1, 2, 0, 12, 1, 2, 0, 13, 1, 7, 0, 14, 1, 7, 0, 15, 1, 7, 0, 16, 1, 7, 0, 17, 1,
- 50, 0, 18, 1, 54, 0, 19, 1, 55, 0, 13, 0, 4, 0, 20, 1, 4, 0, 21, 1, 2, 0, 22, 1, 2, 0, 18, 0, 2, 0, 23, 1,
- 2, 0, 24, 1, 27, 0,169, 0, 7, 0, 25, 1, 4, 0, 26, 1, 0, 0, 27, 1, 7, 0, 28, 1, 4, 0, 29, 1, 4, 0,133, 0,
- 56, 0, 4, 0, 27, 0,169, 0, 0, 0, 30, 1, 4, 0, 31, 1, 4, 0, 27, 0, 47, 0, 64, 0, 22, 0, 32, 0, 34, 0, 75, 0,
- 7, 0, 32, 1, 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1,
- 7, 0, 40, 1, 7, 0, 30, 0, 7, 0, 41, 1, 7, 0, 42, 1, 7, 0, 43, 1, 7, 0, 44, 1, 7, 0, 45, 1, 7, 0, 46, 1,
- 7, 0, 47, 1, 7, 0, 48, 1, 7, 0, 49, 1, 7, 0, 50, 1, 7, 0, 51, 1, 7, 0, 52, 1, 2, 0, 53, 1, 2, 0, 54, 1,
- 2, 0, 55, 1, 2, 0, 56, 1, 2, 0, 57, 1, 2, 0, 58, 1, 2, 0, 59, 1, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0,247, 0,
- 7, 0, 60, 1, 7, 0, 61, 1, 7, 0, 62, 1, 7, 0, 63, 1, 4, 0, 64, 1, 4, 0, 65, 1, 2, 0, 66, 1, 2, 0, 67, 1,
- 2, 0, 23, 1, 2, 0,131, 0, 4, 0, 22, 0, 4, 0,128, 0, 4, 0,129, 0, 4, 0,130, 0, 7, 0, 68, 1, 7, 0, 69, 1,
- 7, 0, 92, 0, 40, 0, 70, 1, 57, 0, 71, 1, 31, 0, 80, 0, 42, 0,243, 0, 48, 0, 72, 1, 50, 0, 18, 1, 51, 0, 73, 1,
- 25, 0,155, 0, 53, 0, 74, 1, 55, 0, 75, 1, 56, 0, 76, 1, 0, 0, 77, 1, 0, 0,125, 0, 58, 0, 13, 0, 7, 0, 78, 1,
- 7, 0, 79, 1, 7, 0,177, 0, 4, 0, 18, 0, 0, 0,172, 0, 0, 0,173, 0, 0, 0,174, 0, 0, 0,175, 0, 4, 0, 27, 0,
- 7, 0, 80, 1, 7, 0, 81, 1, 7, 0, 82, 1, 27, 0, 44, 0, 59, 0, 9, 0, 50, 0, 83, 1, 7, 0, 34, 1, 7, 0, 35, 1,
- 7, 0, 36, 1, 4, 0, 18, 0, 7, 0, 84, 1, 7, 0, 85, 1, 4, 0, 86, 1, 4, 0, 87, 1, 60, 0, 74, 0, 22, 0, 32, 0,
- 34, 0, 75, 0, 2, 0, 16, 0, 2, 0, 18, 0, 4, 0, 88, 1, 2, 0,180, 0, 2, 0, 89, 1, 7, 0,186, 0, 7, 0,187, 0,
- 7, 0,188, 0, 7, 0,189, 0, 7, 0, 90, 1, 7, 0, 91, 1, 7, 0, 92, 1, 7, 0, 93, 1, 7, 0, 94, 1, 7, 0, 95, 1,
- 7, 0, 96, 1, 7, 0, 97, 1, 7, 0, 98, 1, 7, 0, 99, 1, 7, 0,100, 1, 54, 0,101, 1, 2, 0,254, 0, 2, 0, 30, 0,
- 7, 0,113, 0, 7, 0,114, 0, 7, 0,102, 1, 7, 0,103, 1, 7, 0,104, 1, 7, 0,105, 1, 7, 0,106, 1, 2, 0,107, 1,
- 2, 0,108, 1, 2, 0,109, 1, 2, 0,110, 1, 0, 0,111, 1, 0, 0,112, 1, 2, 0,113, 1, 2, 0,114, 1, 2, 0,115, 1,
- 2, 0,116, 1, 2, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1, 7, 0,120, 1, 7, 0,121, 1, 2, 0,122, 1, 2, 0, 92, 0,
- 2, 0,123, 1, 2, 0,124, 1, 2, 0,125, 1, 2, 0,126, 1, 7, 0,127, 1, 7, 0,128, 1, 7, 0,129, 1, 7, 0,130, 1,
- 7, 0,131, 1, 7, 0,132, 1, 7, 0,133, 1, 7, 0,134, 1, 7, 0,135, 1, 7, 0,136, 1, 7, 0,137, 1, 7, 0,138, 1,
- 2, 0,139, 1, 0, 0,140, 1, 31, 0, 80, 0, 46, 0,141, 1, 2, 0,142, 1, 2, 0, 77, 1, 0, 0,143, 1, 25, 0,155, 0,
- 57, 0, 71, 1, 61, 0, 18, 0, 7, 0,144, 1, 7, 0,145, 1, 7, 0,146, 1, 7, 0,147, 1, 7, 0,148, 1, 7, 0,149, 1,
- 7, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, 2, 0,154, 1, 2, 0,155, 1, 2, 0,156, 1, 2, 0,157, 1,
- 7, 0,158, 1, 7, 0,159, 1, 7, 0,160, 1, 7, 0,161, 1, 62, 0, 4, 0, 4, 0, 18, 0, 4, 0,162, 1, 4, 0,163, 1,
- 4, 0, 92, 0, 63, 0,126, 0, 22, 0, 32, 0, 34, 0, 75, 0, 2, 0,164, 1, 2, 0, 18, 0, 7, 0,186, 0, 7, 0,187, 0,
- 7, 0,188, 0, 7, 0,165, 1, 7, 0,166, 1, 7, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, 7, 0,171, 1,
- 7, 0,172, 1, 7, 0,173, 1, 7, 0,174, 1, 7, 0,175, 1, 7, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1, 7, 0,179, 1,
- 7, 0,180, 1, 7, 0,181, 1, 7, 0,182, 1, 7, 0,183, 1, 7, 0,184, 1, 61, 0,185, 1, 62, 0,186, 1, 7, 0,187, 1,
- 7, 0,188, 1, 7, 0,189, 1, 7, 0,190, 1, 7, 0,191, 1, 7, 0,192, 1, 7, 0,193, 1, 2, 0,194, 1, 2, 0,195, 1,
- 2, 0,196, 1, 0, 0,197, 1, 0, 0,198, 1, 7, 0,199, 1, 7, 0,200, 1, 2, 0,201, 1, 2, 0,202, 1, 7, 0,203, 1,
- 7, 0,204, 1, 7, 0,205, 1, 7, 0,206, 1, 2, 0,207, 1, 2, 0,208, 1, 4, 0, 88, 1, 4, 0,209, 1, 2, 0,210, 1,
- 2, 0,211, 1, 2, 0,212, 1, 2, 0,213, 1, 7, 0,214, 1, 7, 0,215, 1, 7, 0,216, 1, 7, 0,217, 1, 7, 0,218, 1,
- 7, 0,219, 1, 7, 0,220, 1, 7, 0,221, 1, 7, 0,222, 1, 7, 0,223, 1, 0, 0,224, 1, 7, 0,225, 1, 7, 0,226, 1,
- 7, 0,227, 1, 4, 0,228, 1, 0, 0,229, 1, 0, 0,123, 1, 0, 0,230, 1, 0, 0, 77, 1, 2, 0,231, 1, 2, 0,232, 1,
- 2, 0,142, 1, 2, 0,233, 1, 2, 0,234, 1, 2, 0,235, 1, 7, 0,236, 1, 7, 0,237, 1, 7, 0,238, 1, 7, 0,239, 1,
- 7, 0,240, 1, 2, 0,165, 0, 2, 0,166, 0, 50, 0,241, 1, 50, 0,242, 1, 0, 0,243, 1, 0, 0,244, 1, 0, 0,245, 1,
- 0, 0,246, 1, 2, 0,247, 1, 2, 0, 74, 0, 7, 0,248, 1, 7, 0,249, 1, 46, 0,141, 1, 57, 0, 71, 1, 31, 0, 80, 0,
- 64, 0,250, 1, 25, 0,155, 0, 7, 0,251, 1, 7, 0,252, 1, 7, 0,253, 1, 7, 0,254, 1, 7, 0,255, 1, 2, 0, 0, 2,
- 2, 0, 30, 0, 7, 0, 1, 2, 7, 0, 2, 2, 7, 0, 3, 2, 7, 0, 4, 2, 7, 0, 5, 2, 7, 0, 6, 2, 7, 0, 7, 2,
- 7, 0, 8, 2, 7, 0, 9, 2, 2, 0, 10, 2, 2, 0, 11, 2, 4, 0, 12, 2, 2, 0, 13, 2, 2, 0, 14, 2, 14, 0, 15, 2,
- 65, 0, 4, 0, 22, 0, 32, 0, 0, 0, 35, 0, 66, 0, 2, 0, 38, 0,154, 0, 67, 0, 20, 0, 67, 0, 0, 0, 67, 0, 1, 0,
- 68, 0, 16, 2, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 17, 2, 2, 0, 18, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0,
- 7, 0, 19, 2, 7, 0, 20, 2, 7, 0, 21, 2, 7, 0, 22, 2, 7, 0, 23, 2, 7, 0, 24, 2, 7, 0, 25, 2, 7, 0, 22, 0,
- 7, 0, 26, 2, 7, 0, 27, 2, 69, 0, 20, 0, 22, 0, 32, 0, 34, 0, 75, 0, 68, 0, 16, 2, 14, 0, 28, 2, 14, 0, 29, 2,
- 14, 0, 30, 2, 31, 0, 80, 0, 63, 0, 31, 2, 0, 0, 18, 0, 0, 0, 32, 2, 2, 0, 33, 2, 2, 0,179, 0, 2, 0, 27, 0,
- 7, 0, 78, 1, 7, 0,177, 0, 7, 0, 79, 1, 7, 0, 34, 2, 7, 0, 35, 2, 7, 0, 36, 2, 67, 0, 37, 2, 30, 0, 11, 0,
- 7, 0, 38, 2, 7, 0, 39, 2, 7, 0, 40, 2, 7, 0, 0, 1, 2, 0, 54, 0, 0, 0, 41, 2, 0, 0, 42, 2, 0, 0, 43, 2,
- 0, 0, 44, 2, 0, 0, 45, 2, 0, 0, 46, 2, 29, 0, 7, 0, 7, 0, 47, 2, 7, 0, 39, 2, 7, 0, 40, 2, 2, 0, 43, 2,
- 2, 0, 46, 2, 7, 0, 0, 1, 7, 0, 27, 0, 70, 0, 21, 0, 70, 0, 0, 0, 70, 0, 1, 0, 2, 0, 16, 0, 2, 0, 48, 2,
- 2, 0, 46, 2, 2, 0, 18, 0, 2, 0, 49, 2, 2, 0, 50, 2, 2, 0, 51, 2, 2, 0, 52, 2, 2, 0, 53, 2, 2, 0, 54, 2,
- 2, 0, 55, 2, 2, 0, 56, 2, 7, 0, 57, 2, 7, 0, 58, 2, 29, 0, 48, 0, 30, 0, 49, 0, 2, 0, 59, 2, 2, 0, 60, 2,
- 4, 0, 61, 2, 71, 0, 5, 0, 2, 0, 62, 2, 2, 0, 48, 2, 0, 0, 18, 0, 0, 0, 27, 0, 2, 0, 30, 0, 72, 0, 4, 0,
- 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 63, 2, 7, 0, 64, 2, 73, 0, 4, 0, 14, 0, 65, 2, 74, 0, 66, 2, 4, 0, 67, 2,
- 0, 0, 95, 0, 75, 0, 68, 0, 22, 0, 32, 0, 34, 0, 75, 0, 68, 0, 16, 2, 14, 0, 68, 2, 14, 0, 29, 2, 73, 0, 69, 2,
- 27, 0, 70, 2, 27, 0, 71, 2, 27, 0, 72, 2, 31, 0, 80, 0, 76, 0, 73, 2, 33, 0, 74, 2, 63, 0, 31, 2, 14, 0, 75, 2,
- 7, 0, 78, 1, 7, 0,177, 0, 7, 0, 79, 1, 2, 0, 16, 0, 2, 0,179, 0, 2, 0, 76, 2, 2, 0, 77, 2, 7, 0, 78, 2,
- 7, 0, 79, 2, 4, 0, 80, 2, 2, 0, 27, 0, 2, 0, 33, 2, 2, 0, 18, 0, 2, 0, 81, 2, 7, 0, 82, 2, 7, 0, 83, 2,
- 7, 0, 84, 2, 2, 0, 51, 2, 2, 0, 52, 2, 2, 0, 85, 2, 2, 0, 86, 2, 4, 0, 87, 2, 11, 0, 88, 2, 2, 0, 22, 0,
- 2, 0, 98, 0, 2, 0, 66, 0, 2, 0, 89, 2, 7, 0, 90, 2, 7, 0, 91, 2, 7, 0, 92, 2, 7, 0, 93, 2, 7, 0, 94, 2,
- 7, 0, 95, 2, 7, 0, 96, 2, 7, 0, 97, 2, 7, 0, 98, 2, 7, 0, 99, 2, 0, 0,100, 2, 77, 0,101, 2, 78, 0,102, 2,
- 0, 0,103, 2, 65, 0,104, 2, 65, 0,105, 2, 65, 0,106, 2, 65, 0,107, 2, 4, 0,108, 2, 7, 0, 84, 0, 4, 0,109, 2,
- 4, 0,110, 2, 72, 0,111, 2, 4, 0,112, 2, 4, 0,113, 2, 71, 0,114, 2, 71, 0,115, 2, 79, 0, 47, 0, 22, 0, 32, 0,
- 34, 0, 75, 0, 68, 0, 16, 2, 31, 0, 80, 0, 33, 0, 74, 2, 63, 0, 31, 2, 80, 0,116, 2, 81, 0,117, 2, 82, 0,118, 2,
- 83, 0,119, 2, 84, 0,120, 2, 85, 0,121, 2, 86, 0,122, 2, 87, 0,123, 2, 88, 0,124, 2, 89, 0,125, 2, 90, 0,126, 2,
- 91, 0,127, 2, 92, 0,128, 2, 79, 0,129, 2, 93, 0,130, 2, 94, 0,131, 2, 95, 0,132, 2, 95, 0,133, 2, 95, 0,134, 2,
- 95, 0,135, 2, 95, 0,136, 2, 4, 0, 53, 0, 4, 0,137, 2, 4, 0,138, 2, 4, 0,139, 2, 4, 0,140, 2, 4, 0,141, 2,
- 4, 0,142, 2, 7, 0, 78, 1, 7, 0,177, 0, 7, 0, 79, 1, 2, 0,179, 0, 2, 0, 76, 2, 2, 0,143, 2, 2, 0, 18, 0,
- 2, 0,144, 2, 2, 0,145, 2, 0, 0,146, 2, 0, 0,147, 2, 2, 0, 33, 2, 96, 0,148, 2, 87, 0, 8, 0, 11, 0,149, 2,
- 7, 0,150, 2, 4, 0,151, 2, 0, 0, 18, 0, 0, 0,152, 2, 2, 0, 88, 1, 2, 0,153, 2, 2, 0,154, 2, 85, 0, 7, 0,
- 4, 0,155, 2, 4, 0,156, 2, 4, 0,157, 2, 4, 0,158, 2, 2, 0, 48, 2, 0, 0,159, 2, 0, 0, 18, 0, 89, 0, 5, 0,
- 4, 0,155, 2, 4, 0,156, 2, 0, 0,160, 2, 0, 0,161, 2, 2, 0, 18, 0, 97, 0, 2, 0, 4, 0,162, 2, 7, 0, 40, 2,
- 90, 0, 3, 0, 97, 0,163, 2, 4, 0,164, 2, 4, 0, 18, 0, 88, 0, 4, 0, 7, 0,165, 2, 2, 0,166, 2, 0, 0, 18, 0,
- 0, 0,161, 2, 91, 0, 4, 0, 0, 0,241, 0, 0, 0,186, 0, 0, 0,187, 0, 0, 0,188, 0, 80, 0, 5, 0, 4, 0,167, 2,
- 4, 0,141, 2, 2, 0, 48, 2, 0, 0, 18, 0, 0, 0, 27, 0, 82, 0, 2, 0, 4, 0,168, 2, 4, 0,169, 2, 81, 0, 6, 0,
- 42, 0,149, 2, 0, 0, 18, 0, 0, 0,152, 2, 2, 0, 88, 1, 2, 0,153, 2, 2, 0,154, 2, 83, 0, 2, 0, 7, 0,170, 2,
- 4, 0, 18, 0, 84, 0, 4, 0, 0, 0,186, 0, 0, 0,187, 0, 0, 0,188, 0, 0, 0,241, 0, 92, 0, 1, 0, 7, 0,171, 2,
- 93, 0, 2, 0, 4, 0, 14, 2, 4, 0, 16, 0, 86, 0, 7, 0, 7, 0,150, 2, 42, 0,149, 2, 0, 0, 18, 0, 0, 0,152, 2,
- 2, 0, 88, 1, 2, 0,153, 2, 2, 0,154, 2, 98, 0, 1, 0, 7, 0,172, 2, 99, 0, 1, 0, 4, 0,173, 2,100, 0, 1, 0,
- 0, 0,174, 2,101, 0, 1, 0, 7, 0,150, 2,102, 0, 1, 0, 7, 0,170, 2,103, 0, 4, 0, 4, 0,175, 2, 4, 0,176, 2,
- 7, 0,177, 2, 4, 0,178, 2,104, 0, 4, 0, 7, 0,241, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0,105, 0, 1, 0,
-104, 0,151, 2,106, 0, 5, 0, 4, 0,179, 2, 4, 0,180, 2, 0, 0, 18, 0, 0, 0, 48, 2, 0, 0,181, 2,107, 0, 2, 0,
- 4, 0,182, 2, 4, 0,180, 2,108, 0, 10, 0,108, 0, 0, 0,108, 0, 1, 0,106, 0,183, 2,105, 0,184, 2,107, 0,185, 2,
- 4, 0, 53, 0, 4, 0,138, 2, 4, 0,137, 2, 4, 0, 27, 0, 88, 0,186, 2, 96, 0, 14, 0, 14, 0,187, 2, 88, 0,186, 2,
- 0, 0,188, 2, 0, 0,189, 2, 0, 0,190, 2, 0, 0,191, 2, 0, 0,192, 2, 0, 0,193, 2, 0, 0,194, 2, 0, 0, 18, 0,
- 95, 0,132, 2, 95, 0,134, 2, 2, 0,195, 2, 0, 0,196, 2,109, 0, 1, 0, 4, 0,173, 2,110, 0, 9, 0,110, 0, 0, 0,
-110, 0, 1, 0, 4, 0, 16, 0, 4, 0, 88, 1, 4, 0,197, 2, 4, 0, 27, 0, 0, 0, 19, 0, 41, 0,126, 0, 0, 0,198, 2,
-111, 0, 6, 0,110, 0,199, 2, 47, 0,200, 2, 27, 0,201, 2, 0, 0,202, 2, 4, 0,203, 2, 4, 0,204, 2,112, 0, 7, 0,
-110, 0,199, 2, 2, 0,205, 2, 2, 0,187, 2, 2, 0,206, 2, 2, 0, 93, 0, 11, 0,207, 2, 11, 0,208, 2,113, 0, 5, 0,
-110, 0,199, 2, 27, 0,169, 0, 0, 0, 19, 0, 7, 0,209, 2, 0, 0, 95, 0,114, 0, 5, 0,110, 0,199, 2, 27, 0,169, 0,
- 0, 0, 19, 0, 2, 0,210, 2, 0, 0,211, 2,115, 0, 5, 0,110, 0,199, 2, 7, 0, 90, 0, 7, 0,212, 2, 4, 0,213, 2,
- 4, 0,214, 2,116, 0, 5, 0,110, 0,199, 2, 27, 0,215, 2, 0, 0, 70, 0, 4, 0, 88, 1, 4, 0, 18, 0,117, 0, 13, 0,
-110, 0,199, 2, 27, 0,216, 2, 27, 0,217, 2, 27, 0,218, 2, 27, 0,219, 2, 7, 0,220, 2, 7, 0,221, 2, 7, 0,212, 2,
- 7, 0,222, 2, 4, 0,223, 2, 4, 0,224, 2, 4, 0, 93, 0, 4, 0,225, 2,118, 0, 5, 0,110, 0,199, 2, 2, 0,226, 2,
- 2, 0, 18, 0, 7, 0,227, 2, 27, 0,228, 2,119, 0, 3, 0,110, 0,199, 2, 7, 0,229, 2, 4, 0, 93, 0,120, 0, 10, 0,
-110, 0,199, 2, 7, 0,230, 2, 4, 0,231, 2, 4, 0, 27, 0, 2, 0, 93, 0, 2, 0,232, 2, 2, 0,233, 2, 2, 0,234, 2,
- 7, 0,235, 2, 0, 0,236, 2,121, 0, 3, 0,110, 0,199, 2, 7, 0, 27, 0, 4, 0, 16, 0,122, 0, 6, 0,110, 0,199, 2,
-123, 0,237, 2,124, 0,238, 2,125, 0,239, 2, 7, 0,240, 2, 4, 0, 16, 0,126, 0, 11, 0,110, 0,199, 2, 47, 0,200, 2,
- 27, 0,201, 2, 0, 0,202, 2, 4, 0,203, 2, 4, 0,204, 2, 7, 0,209, 2, 4, 0,241, 2, 0, 0,236, 2, 7, 0,242, 2,
- 4, 0, 27, 0,127, 0, 12, 0,110, 0,199, 2, 27, 0,243, 2, 42, 0,244, 2, 4, 0, 93, 0, 4, 0,245, 2, 7, 0,246, 2,
- 7, 0,247, 2, 7, 0,248, 2, 7, 0,249, 2, 0, 0,202, 2, 4, 0,203, 2, 4, 0, 27, 0,128, 0, 3, 0,110, 0,199, 2,
- 7, 0,250, 2, 4, 0,251, 2,129, 0, 5, 0,110, 0,199, 2, 7, 0,252, 2, 0, 0,236, 2, 2, 0, 18, 0, 2, 0,253, 2,
-130, 0, 8, 0,110, 0,199, 2, 27, 0,169, 0, 7, 0,252, 2, 7, 0, 0, 1, 7, 0,109, 0, 0, 0,236, 2, 2, 0, 18, 0,
- 2, 0, 16, 0,131, 0, 21, 0,110, 0,199, 2, 47, 0,200, 2, 27, 0,201, 2, 0, 0,202, 2, 4, 0,203, 2, 4, 0,204, 2,
- 27, 0,254, 2, 0, 0,236, 2, 2, 0, 18, 0, 2, 0, 27, 0, 7, 0,255, 2, 7, 0, 0, 3, 7, 0, 1, 3, 7, 0, 82, 2,
- 7, 0, 2, 3, 7, 0, 3, 3, 7, 0, 4, 3, 7, 0, 5, 3, 7, 0, 6, 3, 7, 0, 7, 3, 7, 0, 92, 0,132, 0, 7, 0,
-110, 0,199, 2, 2, 0, 8, 3, 2, 0, 9, 3, 4, 0, 30, 0, 27, 0,169, 0, 7, 0, 10, 3, 0, 0,236, 2,133, 0, 10, 0,
-110, 0,199, 2, 27, 0,169, 0, 0, 0, 11, 3, 7, 0, 12, 3, 7, 0, 13, 3, 7, 0, 5, 3, 4, 0, 14, 3, 4, 0, 15, 3,
- 7, 0, 16, 3, 0, 0, 19, 0,134, 0, 1, 0,110, 0,199, 2,135, 0, 7, 0,110, 0,199, 2, 41, 0,126, 0,136, 0, 17, 3,
-137, 0, 18, 3,138, 0, 19, 3,139, 0, 20, 3, 14, 0, 21, 3,140, 0, 13, 0,110, 0,199, 2, 88, 0, 22, 3, 88, 0, 23, 3,
- 88, 0, 24, 3, 88, 0, 25, 3, 88, 0, 26, 3, 88, 0, 27, 3, 85, 0, 28, 3, 4, 0, 29, 3, 4, 0, 30, 3, 7, 0, 31, 3,
- 7, 0, 32, 3,141, 0, 33, 3,142, 0, 7, 0,110, 0,199, 2, 88, 0, 22, 3, 88, 0, 34, 3,143, 0, 35, 3,144, 0, 33, 3,
- 4, 0, 36, 3, 4, 0, 29, 3,145, 0, 4, 0,110, 0,199, 2, 27, 0,169, 0, 4, 0, 37, 3, 4, 0, 27, 0,146, 0, 2, 0,
- 4, 0, 38, 3, 7, 0, 40, 2,147, 0, 2, 0, 4, 0,129, 0, 4, 0, 39, 3,148, 0, 24, 0,110, 0,199, 2, 27, 0,169, 0,
- 0, 0,236, 2, 2, 0, 40, 3, 2, 0, 18, 0, 2, 0, 88, 1, 2, 0, 27, 0,146, 0, 41, 3, 4, 0, 42, 3, 7, 0, 43, 3,
- 4, 0, 53, 0, 4, 0, 44, 3,147, 0, 45, 3,146, 0, 46, 3, 4, 0, 47, 3, 4, 0, 48, 3, 4, 0, 49, 3, 4, 0, 39, 3,
- 7, 0, 50, 3, 7, 0, 51, 3, 7, 0, 52, 3, 7, 0, 53, 3, 7, 0, 54, 3, 11, 0, 55, 3,149, 0, 8, 0,110, 0,199, 2,
-150, 0, 56, 3,143, 0, 35, 3, 4, 0, 57, 3, 4, 0, 58, 3, 4, 0, 59, 3, 2, 0, 18, 0, 2, 0, 56, 0,151, 0, 8, 0,
-110, 0,199, 2, 27, 0, 44, 0, 2, 0, 4, 1, 2, 0, 18, 0, 2, 0,226, 2, 2, 0, 56, 0, 7, 0, 60, 3, 7, 0, 61, 3,
-152, 0, 6, 0,110, 0,199, 2, 4, 0, 62, 3, 2, 0, 18, 0, 2, 0, 63, 3, 7, 0, 64, 3, 0, 0,171, 0,153, 0, 8, 0,
-110, 0,199, 2, 0, 0, 65, 3, 0, 0, 66, 3, 0, 0,193, 2, 0, 0, 67, 3, 0, 0, 68, 3, 0, 0, 93, 0, 0, 0,181, 2,
-154, 0, 3, 0,110, 0,199, 2,155, 0, 69, 3,139, 0, 20, 3,156, 0, 10, 0,110, 0,199, 2, 27, 0, 70, 3, 27, 0, 71, 3,
- 0, 0, 72, 3, 7, 0, 73, 3, 2, 0, 74, 3, 2, 0, 75, 3, 0, 0, 76, 3, 0, 0, 77, 3, 0, 0,211, 2,157, 0, 9, 0,
-110, 0,199, 2, 27, 0, 78, 3, 0, 0, 72, 3, 7, 0, 79, 3, 7, 0, 80, 3, 0, 0, 88, 1, 0, 0,226, 2, 0, 0, 81, 3,
- 0, 0, 27, 0,158, 0, 1, 0,110, 0,199, 2,159, 0, 11, 0,110, 0,199, 2, 0, 0,236, 2, 7, 0,129, 0, 7, 0, 82, 3,
- 7, 0, 83, 3, 7, 0, 84, 3, 7, 0, 85, 3, 7, 0, 86, 3, 4, 0, 18, 0, 2, 0, 87, 3, 2, 0, 88, 3,160, 0, 9, 0,
-110, 0,199, 2, 27, 0, 89, 3, 4, 0, 90, 3, 4, 0, 91, 3, 4, 0, 92, 3, 7, 0, 93, 3, 7, 0, 94, 3, 2, 0,226, 2,
- 2, 0, 18, 0,161, 0, 29, 0,110, 0,199, 2,162, 0, 95, 3,163, 0, 96, 3, 4, 0, 97, 3, 4, 0, 98, 3, 7, 0, 99, 3,
- 7, 0, 4, 3, 7, 0,100, 3, 7, 0,251, 0, 7, 0,101, 3, 7, 0,102, 3, 7, 0,103, 3, 7, 0,104, 3, 7, 0,105, 3,
- 7, 0,240, 2, 4, 0,106, 3, 4, 0,107, 3, 0, 0,108, 3, 0, 0,109, 3, 0, 0,110, 3, 0, 0,111, 3, 0, 0, 18, 0,
- 0, 0,112, 3, 2, 0,113, 3, 2, 0,114, 3, 4, 0,214, 2, 7, 0,109, 0, 7, 0,115, 3, 4, 0, 27, 0,164, 0, 15, 0,
-110, 0,199, 2, 47, 0,200, 2, 27, 0,201, 2, 0, 0,202, 2, 4, 0,203, 2, 4, 0,204, 2, 27, 0,116, 3, 27, 0,117, 3,
- 54, 0,101, 1, 0, 0,236, 2, 7, 0,209, 2, 7, 0,118, 3, 0, 0, 18, 0, 0, 0,254, 0, 0, 0,211, 2,165, 0, 16, 0,
-110, 0,199, 2, 0, 0,236, 2, 2, 0,119, 3, 2, 0,254, 0, 7, 0,120, 3, 54, 0,121, 3, 7, 0,122, 3, 7, 0,123, 3,
- 7, 0,124, 3, 0, 0,125, 3, 4, 0,126, 3, 47, 0,127, 3, 27, 0,128, 3, 4, 0,129, 3, 0, 0,130, 3, 4, 0,131, 3,
-166, 0, 16, 0,110, 0,199, 2, 0, 0,132, 3, 0, 0,133, 3, 7, 0,134, 3, 7, 0,135, 3, 0, 0,136, 3, 0, 0,137, 3,
- 0, 0,138, 3, 7, 0,124, 3, 0, 0,125, 3, 4, 0,126, 3, 47, 0,127, 3, 27, 0,128, 3, 4, 0,129, 3, 0, 0,130, 3,
- 4, 0,131, 3,167, 0, 16, 0,110, 0,199, 2, 0, 0,236, 2, 4, 0,139, 3, 4, 0,140, 3, 27, 0,141, 3, 7, 0,124, 3,
- 0, 0,125, 3, 4, 0,126, 3, 47, 0,127, 3, 27, 0,128, 3, 4, 0,129, 3, 0, 0,130, 3, 7, 0,142, 3, 7, 0,143, 3,
- 2, 0,254, 0, 2, 0,144, 3,168, 0, 5, 0,110, 0,199, 2,169, 0,145, 3,170, 0,146, 3, 4, 0, 16, 0, 4, 0, 27, 0,
-171, 0, 8, 0,110, 0,199, 2, 7, 0,147, 3, 7, 0,148, 3, 7, 0,149, 3, 0, 0,251, 0, 0, 0, 18, 0, 0, 0, 88, 1,
- 0, 0, 27, 0,172, 0, 3, 0,173, 0,150, 3, 4, 0, 67, 2, 0, 0, 95, 0,173, 0, 29, 0, 22, 0, 32, 0, 34, 0, 75, 0,
- 2, 0, 49, 2, 2, 0, 50, 2, 2, 0,151, 3, 2, 0, 18, 0, 2, 0,152, 3, 2, 0,153, 3, 2, 0,154, 3, 2, 0, 30, 0,
- 0, 0,155, 3, 0, 0,156, 3, 0, 0,157, 3, 0, 0, 74, 0, 4, 0, 27, 0, 7, 0,158, 3, 7, 0,159, 3, 7, 0,160, 3,
- 7, 0,161, 3, 7, 0,162, 3, 7, 0,163, 3, 29, 0,164, 3, 31, 0, 80, 0, 33, 0, 74, 2, 90, 0,126, 2, 0, 0, 70, 0,
- 7, 0,165, 3, 7, 0,166, 3,172, 0,167, 3,174, 0, 5, 0,174, 0, 0, 0,174, 0, 1, 0, 0, 0, 19, 0, 0, 0, 18, 0,
- 0, 0,125, 0, 68, 0, 3, 0, 7, 0,168, 3, 4, 0, 18, 0, 4, 0, 27, 0, 27, 0,128, 0, 22, 0, 32, 0, 34, 0, 75, 0,
-175, 0,169, 3, 2, 0, 16, 0, 2, 0,170, 3, 4, 0,171, 3, 4, 0,172, 3, 4, 0,173, 3, 0, 0,174, 3, 27, 0, 38, 0,
- 27, 0,175, 3, 27, 0,176, 3, 27, 0,177, 3, 27, 0,178, 3, 31, 0, 80, 0, 68, 0, 16, 2,176, 0,179, 3,176, 0,180, 3,
-177, 0,181, 3, 11, 0, 2, 0,178, 0,182, 3,179, 0,183, 3,180, 0,184, 3, 14, 0,185, 3, 14, 0,186, 3, 14, 0, 29, 2,
- 14, 0,187, 3, 14, 0,188, 3, 4, 0, 88, 1, 4, 0,189, 3, 63, 0, 31, 2, 0, 0,190, 3, 4, 0, 33, 2, 4, 0,191, 3,
- 7, 0, 78, 1, 7, 0,192, 3, 7, 0,193, 3, 7, 0,177, 0, 7, 0,194, 3, 7, 0,195, 3, 7, 0, 79, 1, 7, 0,196, 3,
- 7, 0, 19, 2, 7, 0,197, 3, 7, 0,198, 3, 7, 0,199, 3, 7, 0,200, 3, 7, 0,201, 3, 7, 0,202, 3, 7, 0, 12, 3,
- 7, 0,203, 3, 7, 0,245, 0, 7, 0,204, 3, 4, 0,205, 3, 4, 0,206, 3, 2, 0, 18, 0, 2, 0,207, 3, 2, 0,208, 3,
- 2, 0,209, 3, 2, 0,210, 3, 2, 0,211, 3, 2, 0,212, 3, 2, 0,213, 3, 2, 0,214, 3, 0, 0,215, 3, 0, 0,216, 3,
- 4, 0,217, 3, 4, 0,218, 3, 4, 0,219, 3, 4, 0,220, 3, 7, 0,221, 3, 7, 0, 84, 0, 7, 0,222, 3, 7, 0,223, 3,
- 7, 0,224, 3, 7, 0,225, 3, 7, 0,226, 3, 7, 0,221, 0, 7, 0,227, 3, 7, 0,228, 3, 7, 0,229, 3, 7, 0,230, 3,
- 7, 0,231, 3, 2, 0,232, 3, 0, 0,233, 3, 0, 0,234, 3, 0, 0,235, 3, 0, 0,236, 3, 0, 0,111, 0, 0, 0,237, 3,
- 7, 0,238, 3, 7, 0,239, 3, 14, 0,240, 3, 14, 0,241, 3, 14, 0,242, 3, 14, 0,243, 3, 7, 0,244, 3, 2, 0, 14, 2,
- 2, 0,245, 3, 7, 0,151, 2, 4, 0,246, 3, 4, 0,247, 3,181, 0,248, 3, 2, 0,249, 3, 2, 0,252, 0, 7, 0,250, 3,
- 14, 0,251, 3, 14, 0,252, 3, 14, 0,253, 3, 14, 0,254, 3,182, 0, 74, 1,183, 0,255, 3, 64, 0, 0, 4, 0, 0, 1, 4,
- 0, 0, 2, 4, 2, 0, 67, 2, 7, 0,143, 2,155, 0, 3, 4,143, 0, 4, 4,143, 0, 5, 4, 10, 0, 6, 4, 10, 0, 7, 4,
- 4, 0, 8, 4, 4, 0, 9, 4, 14, 0, 10, 4, 14, 0, 11, 4, 14, 0, 12, 4, 7, 0, 13, 4,184, 0, 14, 0,184, 0, 0, 0,
-184, 0, 1, 0, 27, 0, 38, 0, 7, 0, 12, 3, 7, 0, 80, 1, 7, 0, 13, 3, 7, 0, 5, 3, 0, 0, 19, 0, 4, 0, 14, 3,
- 4, 0, 15, 3, 4, 0, 14, 4, 2, 0, 16, 0, 2, 0, 15, 4, 7, 0, 16, 3,185, 0, 12, 0,185, 0, 0, 0,185, 0, 1, 0,
- 27, 0, 44, 0, 4, 0, 16, 4, 4, 0, 14, 2, 7, 0, 80, 1, 7, 0, 17, 4, 7, 0, 18, 4, 7, 0,170, 2, 2, 0, 16, 0,
- 0, 0, 19, 4, 0, 0, 20, 4,182, 0, 40, 0, 4, 0, 18, 0, 2, 0, 21, 4, 2, 0, 22, 4, 2, 0, 5, 3, 2, 0, 23, 4,
- 2, 0, 24, 4, 2, 0, 25, 4, 2, 0, 26, 4, 2, 0, 27, 4, 7, 0, 28, 4, 7, 0, 29, 4, 7, 0, 30, 4, 7, 0, 31, 4,
- 7, 0, 32, 4, 7, 0, 33, 4, 7, 0, 34, 4, 7, 0, 35, 4, 7, 0, 36, 4, 7, 0, 37, 4, 7, 0, 38, 4, 7, 0, 39, 4,
- 7, 0, 40, 4, 7, 0, 41, 4, 7, 0, 42, 4, 7, 0, 43, 4, 7, 0, 44, 4, 7, 0, 45, 4, 7, 0, 46, 4, 7, 0, 47, 4,
- 7, 0, 48, 4, 7, 0, 49, 4, 7, 0, 50, 4, 7, 0, 51, 4, 7, 0, 52, 4, 7, 0, 53, 4, 7, 0, 54, 4, 47, 0,170, 0,
-186, 0, 55, 4, 7, 0, 56, 4, 4, 0,214, 2,187, 0, 5, 0, 64, 0,250, 1, 7, 0, 57, 4, 7, 0, 58, 4, 2, 0, 18, 0,
- 2, 0, 59, 4,188, 0, 5, 0,188, 0, 0, 0,188, 0, 1, 0, 4, 0, 16, 0, 4, 0, 60, 4, 11, 0, 2, 0,189, 0, 9, 0,
-189, 0, 0, 0,189, 0, 1, 0, 4, 0, 61, 4, 4, 0, 62, 4, 4, 0, 63, 4, 4, 0, 18, 0, 11, 0, 64, 4, 11, 0, 65, 4,
- 14, 0, 66, 4,139, 0, 23, 0,139, 0, 0, 0,139, 0, 1, 0, 4, 0, 18, 0, 4, 0, 67, 4, 4, 0, 68, 4, 4, 0, 69, 4,
- 4, 0, 70, 4, 4, 0, 71, 4, 4, 0, 72, 4, 4, 0, 73, 4, 4, 0, 27, 0, 4, 0, 62, 4, 4, 0, 14, 2, 2, 0, 74, 4,
- 2, 0, 56, 0, 0, 0, 19, 0, 0, 0, 75, 4, 0, 0, 76, 4, 0, 0, 77, 4, 0, 0, 78, 4, 14, 0, 79, 4,190, 0, 80, 4,
- 11, 0, 81, 4,191, 0, 1, 0, 7, 0, 47, 2,181, 0, 30, 0, 4, 0, 18, 0, 7, 0, 82, 4, 7, 0, 83, 4, 7, 0, 84, 4,
- 4, 0, 85, 4, 4, 0, 86, 4, 4, 0, 87, 4, 4, 0, 88, 4, 7, 0, 89, 4, 7, 0, 90, 4, 7, 0, 91, 4, 7, 0, 92, 4,
- 7, 0, 93, 4, 7, 0, 94, 4, 7, 0, 95, 4, 7, 0, 96, 4, 7, 0, 97, 4, 7, 0, 98, 4, 7, 0, 99, 4, 7, 0,100, 4,
- 7, 0,101, 4, 7, 0,102, 4, 7, 0,103, 4, 7, 0,104, 4, 7, 0,105, 4, 7, 0,106, 4, 4, 0,107, 4, 4, 0,108, 4,
- 7, 0,109, 4, 7, 0,227, 3,183, 0, 54, 0, 4, 0, 62, 4, 4, 0,110, 4,192, 0,111, 4,193, 0,112, 4, 0, 0, 27, 0,
- 0, 0,113, 4, 2, 0,114, 4, 7, 0,115, 4, 0, 0,116, 4, 7, 0,117, 4, 7, 0,118, 4, 7, 0,119, 4, 7, 0,120, 4,
- 7, 0,121, 4, 7, 0,122, 4, 7, 0,123, 4, 7, 0,124, 4, 7, 0,125, 4, 2, 0,126, 4, 0, 0,127, 4, 2, 0,128, 4,
- 7, 0,129, 4, 7, 0,130, 4, 0, 0,131, 4, 4, 0,130, 0, 4, 0,132, 4, 4, 0,133, 4, 2, 0,134, 4, 2, 0,135, 4,
-191, 0,136, 4, 4, 0,137, 4, 4, 0, 82, 0, 7, 0,138, 4, 7, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, 2, 0,142, 4,
- 2, 0,143, 4, 2, 0,144, 4, 2, 0,145, 4, 2, 0,146, 4, 2, 0,147, 4, 2, 0,148, 4, 2, 0,149, 4,194, 0,150, 4,
- 7, 0,151, 4, 7, 0,152, 4,139, 0,153, 4, 14, 0, 21, 3,187, 0,154, 4, 7, 0,155, 4, 7, 0,156, 4, 7, 0,157, 4,
- 4, 0,158, 4,195, 0, 1, 0, 7, 0,159, 4,155, 0, 52, 0,154, 0,160, 4, 2, 0, 16, 0, 2, 0,161, 4, 2, 0,162, 4,
- 2, 0,163, 4, 7, 0,164, 4, 2, 0,165, 4, 2, 0,166, 4, 7, 0,167, 4, 2, 0,168, 4, 2, 0,169, 4, 7, 0,170, 4,
- 7, 0,171, 4, 7, 0,172, 4, 4, 0,173, 4, 4, 0,174, 4, 4, 0,175, 4, 4, 0, 27, 0, 7, 0,176, 4, 4, 0,177, 4,
- 7, 0,178, 4, 7, 0,179, 4, 7, 0,180, 4, 79, 0,181, 4, 79, 0,182, 4, 0, 0,183, 4, 7, 0,184, 4, 7, 0,185, 4,
- 31, 0, 80, 0, 2, 0,186, 4, 0, 0,187, 4, 0, 0,188, 4, 7, 0,189, 4, 4, 0,190, 4, 7, 0,191, 4, 7, 0,192, 4,
- 4, 0,193, 4, 4, 0, 18, 0, 7, 0,194, 4, 7, 0,195, 4, 7, 0,196, 4,195, 0,197, 4, 4, 0, 53, 0, 7, 0,198, 4,
- 7, 0,199, 4, 7, 0,200, 4, 7, 0,201, 4, 7, 0,202, 4, 7, 0,203, 4, 7, 0,204, 4, 4, 0,205, 4, 7, 0,206, 4,
-196, 0, 78, 0, 22, 0, 32, 0, 34, 0, 75, 0, 2, 0,180, 0, 2, 0, 89, 1, 2, 0,123, 1, 2, 0,207, 4, 7, 0,208, 4,
- 7, 0,209, 4, 7, 0,210, 4, 7, 0,211, 4, 7, 0,212, 4, 7, 0,213, 4, 7, 0,171, 1, 7, 0,173, 1, 7, 0,172, 1,
- 7, 0, 30, 0, 4, 0,214, 4, 7, 0,215, 4, 7, 0,216, 4, 7, 0,217, 4, 7, 0,218, 4, 7, 0,219, 4, 7, 0,220, 4,
- 7, 0,221, 4, 2, 0,222, 4, 2, 0, 88, 1, 2, 0,223, 4, 2, 0,224, 4, 2, 0,225, 4, 2, 0,226, 4, 2, 0,227, 4,
- 2, 0,228, 4, 7, 0,229, 4, 7, 0,230, 4, 7, 0,231, 4, 7, 0,232, 4, 7, 0,233, 4, 7, 0,234, 4, 7, 0,235, 4,
- 7, 0,236, 4, 7, 0,237, 4, 7, 0,238, 4, 7, 0,239, 4, 7, 0,240, 4, 2, 0,241, 4, 2, 0,242, 4, 2, 0,243, 4,
- 2, 0,244, 4, 7, 0,245, 4, 7, 0,246, 4, 7, 0,247, 4, 7, 0,248, 4, 2, 0,249, 4, 2, 0,250, 4, 2, 0,251, 4,
- 2, 0,252, 4, 7, 0,253, 4, 7, 0,254, 4, 7, 0,255, 4, 7, 0, 0, 5, 7, 0, 1, 5, 7, 0, 2, 5, 7, 0, 3, 5,
- 2, 0, 4, 5, 2, 0, 5, 5, 2, 0, 6, 5, 2, 0, 7, 5, 2, 0, 8, 5, 2, 0, 18, 0, 7, 0, 9, 5, 7, 0, 10, 5,
- 31, 0, 80, 0, 46, 0,141, 1, 2, 0,142, 1, 2, 0, 77, 1, 2, 0,181, 2, 25, 0,155, 0, 57, 0, 71, 1,197, 0, 8, 0,
-197, 0, 0, 0,197, 0, 1, 0, 4, 0,205, 3, 4, 0, 11, 5, 4, 0, 18, 0, 2, 0, 12, 5, 2, 0, 13, 5, 27, 0,169, 0,
-198, 0, 13, 0, 11, 0, 14, 5, 11, 0, 15, 5, 4, 0, 16, 5, 4, 0, 17, 5, 4, 0, 18, 5, 4, 0, 19, 5, 4, 0, 20, 5,
- 4, 0, 21, 5, 4, 0, 22, 5, 4, 0, 23, 5, 4, 0, 24, 5, 4, 0, 27, 0, 0, 0, 25, 5,199, 0, 5, 0, 11, 0, 26, 5,
- 11, 0, 27, 5, 4, 0, 28, 5, 4, 0, 30, 0, 0, 0, 29, 5,200, 0, 17, 0, 4, 0, 30, 5, 4, 0, 31, 5, 4, 0, 32, 5,
- 4, 0, 33, 5, 4, 0, 34, 5, 4, 0, 35, 5, 4, 0, 36, 5, 4, 0, 37, 5, 4, 0, 38, 5, 4, 0, 39, 5, 4, 0, 40, 5,
- 4, 0, 41, 5, 2, 0, 42, 5, 2, 0, 43, 5, 4, 0, 44, 5, 4, 0, 45, 5, 4, 0, 92, 0,201, 0, 17, 0, 4, 0, 16, 0,
- 4, 0, 32, 5, 4, 0, 46, 5, 4, 0, 47, 5, 4, 0, 48, 5, 4, 0, 49, 5, 4, 0, 50, 5, 4, 0, 51, 5, 7, 0, 52, 5,
- 4, 0, 53, 5, 4, 0, 93, 0, 4, 0, 54, 5, 4, 0, 55, 5, 4, 0, 56, 5, 4, 0, 57, 5, 4, 0, 58, 5, 21, 0, 31, 0,
-202, 0, 9, 0, 4, 0, 59, 5, 7, 0, 60, 5, 7, 0, 61, 5, 7, 0, 62, 5, 4, 0, 63, 5, 2, 0, 18, 0, 2, 0, 27, 0,
- 7, 0, 84, 4, 7, 0, 30, 0,203, 0, 11, 0,203, 0, 0, 0,203, 0, 1, 0, 0, 0, 19, 0, 63, 0, 64, 5, 64, 0, 65, 5,
- 4, 0,205, 3, 4, 0, 66, 5, 4, 0, 67, 5, 4, 0, 27, 0, 4, 0, 68, 5, 4, 0, 69, 5,204, 0, 13, 0, 0, 0, 70, 5,
- 0, 0,251, 0, 0, 0, 71, 5, 0, 0, 18, 0, 0, 0, 72, 5, 0, 0, 73, 5, 0, 0, 74, 5, 0, 0, 75, 5, 2, 0, 76, 5,
- 2, 0, 77, 5, 7, 0, 78, 5, 0, 0, 79, 5, 0, 0,125, 0,205, 0,106, 0,204, 0, 80, 5,198, 0, 81, 5,199, 0, 82, 5,
-200, 0, 83, 5,201, 0, 84, 5, 4, 0, 36, 3, 4, 0,130, 0, 4, 0,132, 4, 7, 0, 85, 5, 4, 0, 86, 5, 4, 0, 87, 5,
- 4, 0, 88, 5, 4, 0, 89, 5, 2, 0, 18, 0, 2, 0, 90, 5, 7, 0, 91, 5, 7, 0, 92, 5, 7, 0, 93, 5, 7, 0, 94, 5,
- 7, 0, 95, 5, 2, 0, 96, 5, 2, 0, 97, 5, 2, 0, 98, 5, 2, 0, 99, 5, 2, 0,251, 0, 2, 0,100, 5, 4, 0,101, 5,
- 2, 0,102, 5, 2, 0,103, 5, 2, 0,110, 1, 2, 0,109, 0, 2, 0,104, 5, 2, 0,105, 5, 2, 0,106, 5, 2, 0,107, 5,
- 2, 0,108, 5, 2, 0, 71, 5, 2, 0, 70, 5, 2, 0,109, 5, 2, 0, 72, 5, 2, 0,110, 5, 4, 0,111, 5, 4, 0, 88, 1,
- 4, 0,112, 5, 2, 0,113, 5, 2, 0, 92, 0, 2, 0,114, 5, 2, 0,115, 5, 2, 0,116, 5, 2, 0,117, 5, 2, 0,118, 5,
- 2, 0,119, 5, 19, 0,120, 5, 19, 0,121, 5, 18, 0,122, 5, 14, 0,123, 5, 2, 0,124, 5, 2, 0,125, 5, 7, 0,126, 5,
- 7, 0,127, 5, 7, 0,128, 5, 7, 0,129, 5, 4, 0,130, 5, 7, 0,131, 5, 7, 0,132, 5, 7, 0,133, 5, 7, 0,134, 5,
- 2, 0,135, 5, 2, 0,136, 5, 2, 0,137, 5, 2, 0,138, 5, 2, 0,139, 5, 2, 0,140, 5, 7, 0,141, 5, 7, 0,142, 5,
- 7, 0,143, 5, 0, 0,144, 5, 4, 0,145, 5, 2, 0,146, 5, 2, 0, 74, 0, 0, 0,147, 5, 7, 0,148, 5, 7, 0,149, 5,
- 0, 0,150, 5, 0, 0,151, 5, 0, 0,152, 5, 0, 0,153, 5, 4, 0,154, 5, 2, 0,155, 5, 2, 0,156, 5, 7, 0,157, 5,
- 7, 0,158, 5, 2, 0,159, 5, 2, 0,160, 5, 7, 0,161, 5, 2, 0,162, 5, 2, 0,163, 5, 4, 0,164, 5, 2, 0,165, 5,
- 2, 0,166, 5, 2, 0,167, 5, 2, 0,168, 5, 7, 0,169, 5, 7, 0, 30, 0, 37, 0,170, 5, 0, 0,171, 5,206, 0, 9, 0,
-206, 0, 0, 0,206, 0, 1, 0, 0, 0,172, 5, 2, 0,173, 5, 2, 0,174, 5, 2, 0,175, 5, 2, 0, 92, 0, 7, 0,176, 5,
- 7, 0, 30, 0,207, 0, 7, 0, 2, 0,231, 2, 2, 0, 88, 1, 2, 0, 94, 3, 2, 0,177, 5, 7, 0,178, 5, 7, 0, 30, 0,
- 37, 0,179, 5,208, 0, 5, 0, 7, 0,180, 5, 0, 0, 16, 0, 0, 0, 92, 0, 0, 0, 30, 0, 0, 0, 74, 0,209, 0, 15, 0,
- 7, 0,181, 5, 7, 0,182, 5, 7, 0,183, 5, 7, 0,184, 5, 7, 0,185, 5, 7, 0,186, 5, 7, 0,187, 5, 7, 0,188, 5,
- 7, 0,189, 5, 7, 0,190, 5, 4, 0,191, 5, 7, 0,192, 5, 7, 0,193, 5, 2, 0, 92, 0, 2, 0, 30, 0,210, 0, 32, 0,
-208, 0,194, 5, 2, 0,195, 5, 2, 0, 97, 5, 2, 0, 98, 5, 2, 0, 99, 5, 2, 0,251, 0, 2, 0,100, 5, 2, 0,196, 5,
- 2, 0,197, 5, 2, 0,198, 5, 2, 0,199, 5,207, 0,200, 5, 2, 0,201, 5, 2, 0,102, 5, 7, 0,202, 5,209, 0,203, 5,
- 7, 0,220, 4, 7, 0,221, 4, 4, 0, 18, 0, 2, 0, 88, 1, 2, 0,204, 5, 2, 0,223, 4, 2, 0,224, 4, 2, 0,205, 5,
- 2, 0, 27, 0, 2, 0,225, 4, 2, 0,226, 4, 2, 0,227, 4, 2, 0,228, 4, 2, 0,206, 5, 2, 0, 92, 0, 7, 0,207, 5,
-211, 0, 6, 0,211, 0, 0, 0,211, 0, 1, 0, 4, 0, 61, 4, 0, 0, 19, 0, 4, 0, 18, 0, 27, 0,208, 5,212, 0, 4, 0,
-213, 0,146, 3, 11, 0,209, 5, 0, 0,210, 5, 4, 0, 93, 0,214, 0, 8, 0,212, 0,211, 5, 2, 0, 18, 0, 2, 0, 27, 0,
- 2, 0,212, 5, 2, 0,213, 5, 2, 0,214, 5, 4, 0, 92, 0, 11, 0,215, 5,215, 0, 6, 0, 2, 0,109, 0, 2, 0, 67, 4,
- 2, 0,216, 5, 2, 0,225, 2, 4, 0, 18, 0, 7, 0,209, 2,216, 0, 14, 0, 2, 0, 18, 0, 2, 0,217, 5, 2, 0,218, 5,
- 2, 0,219, 5,215, 0,220, 5, 11, 0,215, 5, 7, 0,221, 5, 7, 0, 56, 0, 4, 0,222, 5, 4, 0,223, 5, 4, 0,224, 5,
- 4, 0,225, 5, 41, 0,126, 0, 27, 0,169, 0,217, 0, 14, 0,212, 0,211, 5, 4, 0, 93, 0, 4, 0,226, 5, 7, 0,227, 5,
- 7, 0,228, 5, 7, 0,229, 5, 4, 0,230, 5, 4, 0,231, 5, 7, 0,232, 5, 7, 0,233, 5, 4, 0,234, 5, 7, 0,235, 5,
- 7, 0,236, 5, 4, 0, 27, 0,218, 0, 1, 0,212, 0,211, 5,219, 0, 7, 0,212, 0,211, 5, 2, 0, 18, 0, 2, 0, 27, 0,
- 4, 0, 37, 0, 4, 0,237, 5, 90, 0,238, 5, 11, 0,215, 5,220, 0, 5, 0,220, 0, 0, 0,220, 0, 1, 0, 0, 0, 19, 0,
- 7, 0,239, 5, 4, 0, 27, 0,221, 0, 4, 0, 4, 0,109, 0, 7, 0,240, 5, 7, 0,179, 1, 4, 0, 18, 0,222, 0, 85, 0,
-219, 0,241, 5,219, 0,242, 5,217, 0,169, 3,218, 0,243, 5, 7, 0,244, 5, 2, 0,245, 5, 2, 0,246, 5, 7, 0,247, 5,
- 7, 0,248, 5, 2, 0, 67, 4, 2, 0,249, 5, 7, 0,250, 5, 7, 0,251, 5, 7, 0,252, 5, 2, 0,253, 5, 2, 0,222, 5,
- 2, 0,254, 5, 2, 0,255, 5, 2, 0, 0, 6, 2, 0, 1, 6, 7, 0, 2, 6, 7, 0, 3, 6, 7, 0, 4, 6, 2, 0, 5, 6,
- 2, 0, 6, 6, 2, 0, 7, 6, 2, 0, 8, 6, 2, 0, 9, 6, 2, 0, 10, 6, 2, 0, 11, 6, 2, 0, 12, 6,214, 0, 13, 6,
-216, 0, 14, 6, 7, 0, 15, 6, 7, 0, 16, 6, 7, 0, 17, 6, 2, 0, 18, 6, 2, 0, 19, 6, 0, 0, 20, 6, 0, 0, 21, 6,
- 2, 0, 22, 6, 7, 0, 23, 6, 7, 0, 24, 6, 7, 0, 25, 6, 7, 0, 26, 6, 7, 0, 27, 6, 7, 0, 28, 6, 7, 0, 29, 6,
- 7, 0, 30, 6, 7, 0, 31, 6, 7, 0, 32, 6, 2, 0, 33, 6, 0, 0, 34, 6, 0, 0, 35, 6, 0, 0, 36, 6, 0, 0, 37, 6,
- 27, 0, 38, 6, 0, 0, 39, 6, 0, 0, 40, 6, 0, 0, 41, 6, 0, 0, 42, 6, 0, 0, 43, 6, 0, 0, 44, 6, 0, 0, 45, 6,
- 0, 0, 46, 6, 0, 0, 47, 6, 0, 0, 48, 6, 2, 0, 49, 6, 2, 0, 50, 6, 2, 0, 51, 6, 2, 0, 52, 6, 0, 0, 53, 6,
- 0, 0, 54, 6, 0, 0, 55, 6, 0, 0, 56, 6, 4, 0, 57, 6, 4, 0, 58, 6, 4, 0, 59, 6, 4, 0, 60, 6, 2, 0, 61, 6,
- 2, 0, 92, 0, 4, 0, 62, 6, 7, 0, 63, 6, 7, 0, 64, 6,221, 0, 65, 6,223, 0, 8, 0, 4, 0, 66, 6, 4, 0, 67, 6,
- 4, 0, 68, 6, 4, 0, 69, 6, 4, 0, 70, 6, 4, 0, 71, 6, 4, 0, 53, 0, 4, 0,138, 2,224, 0, 4, 0, 7, 0, 72, 6,
- 0, 0, 73, 6, 0, 0, 74, 6, 2, 0, 18, 0,225, 0, 4, 0, 7, 0, 75, 6, 4, 0, 18, 0, 4, 0, 76, 6, 4, 0, 56, 0,
- 41, 0, 46, 0, 22, 0, 32, 0, 34, 0, 75, 0, 27, 0,208, 5,196, 0, 77, 6, 41, 0, 78, 6, 14, 0, 79, 6,197, 0, 80, 6,
- 27, 0, 81, 6, 7, 0, 82, 6, 7, 0, 83, 6, 7, 0, 84, 6, 7, 0, 85, 6, 4, 0,205, 3, 4, 0, 86, 6, 4, 0, 87, 6,
- 2, 0, 18, 0, 2, 0, 77, 1, 57, 0, 71, 1,226, 0, 88, 6,222, 0, 89, 6,227, 0, 90, 6,205, 0,186, 0,202, 0, 91, 6,
- 14, 0,103, 0, 14, 0, 92, 6, 11, 0, 93, 6, 11, 0, 94, 6, 11, 0, 95, 6, 11, 0, 96, 6, 11, 0, 97, 6,228, 0, 98, 6,
- 2, 0, 99, 6, 2, 0,100, 6, 2, 0,252, 0, 2, 0,206, 3, 4, 0,216, 3, 4, 0,101, 6, 14, 0,102, 6,208, 0,194, 5,
-210, 0,103, 6,224, 0,104, 6,178, 0,182, 3,225, 0,105, 6,229, 0,106, 6, 10, 0, 7, 4, 10, 0,107, 6,230, 0, 14, 0,
-230, 0, 0, 0,230, 0, 1, 0, 42, 0,243, 0, 40, 0, 70, 1,229, 0,106, 6,231, 0,108, 6, 7, 0, 97, 2, 7, 0, 98, 2,
- 7, 0,109, 0, 7, 0,109, 6, 2, 0,110, 6, 2, 0, 18, 0, 2, 0,144, 0, 2, 0, 27, 0,232, 0, 39, 0, 7, 0,111, 6,
- 7, 0,112, 6, 7, 0,113, 6, 7, 0,114, 6, 7, 0,115, 6, 7, 0,116, 6, 7, 0,117, 6, 7, 0,118, 6, 7, 0,119, 6,
- 68, 0,120, 6,178, 0,182, 3,232, 0,121, 6,233, 0,122, 6,234, 0,123, 6,235, 0,124, 6,236, 0,125, 6,237, 0,126, 6,
- 7, 0,127, 6, 7, 0,128, 6, 7, 0, 95, 1, 7, 0,129, 6, 7, 0,130, 6, 7, 0,131, 6, 7, 0,132, 6, 7, 0,176, 0,
- 7, 0,133, 6, 0, 0,134, 6, 0, 0,135, 6, 0, 0,110, 6, 0, 0,136, 6, 2, 0,137, 6, 2, 0,138, 6, 7, 0,139, 6,
- 2, 0,140, 6, 2, 0,141, 6, 7, 0,142, 6, 7, 0,143, 6, 7, 0,144, 6, 7, 0,145, 6,238, 0, 51, 0,239, 0, 0, 0,
-239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6, 7, 0,128, 6, 7, 0, 95, 1, 7, 0,150, 6,
- 2, 0,151, 6, 0, 0,211, 2, 4, 0,152, 6, 2, 0,135, 6, 2, 0,110, 6, 27, 0,208, 5, 27, 0,153, 6, 14, 0,154, 6,
-230, 0,155, 6,238, 0,121, 6, 0, 0,156, 6, 4, 0,205, 3, 4, 0, 86, 6, 2, 0,157, 6, 2, 0,158, 6, 2, 0,159, 6,
- 2, 0,160, 6, 2, 0, 18, 0, 2, 0, 32, 2, 7, 0,115, 0, 7, 0,161, 6, 7, 0,162, 6, 7, 0,163, 6, 7, 0,176, 0,
- 7, 0, 82, 6, 2, 0,164, 6, 2, 0,165, 6, 2, 0,166, 6, 0, 0,167, 6, 0, 0,168, 6, 0, 0,169, 6, 0, 0,170, 6,
- 0, 0,171, 6, 14, 0,172, 6, 14, 0,173, 6, 14, 0,174, 6, 2, 0,175, 6, 2, 0,152, 2, 2, 0,176, 6, 0, 0,177, 6,
- 11, 0,178, 6,178, 0,182, 3,240, 0, 24, 0, 19, 0, 37, 0, 19, 0, 63, 0, 18, 0,179, 6, 18, 0,180, 6, 18, 0,181, 6,
- 7, 0,182, 6, 7, 0,183, 6, 7, 0,184, 6, 7, 0,185, 6, 2, 0,186, 6, 2, 0,187, 6, 2, 0,188, 6, 2, 0,189, 6,
- 2, 0,190, 6, 2, 0, 18, 0, 2, 0,191, 6, 2, 0,192, 6, 2, 0,193, 6, 2, 0,194, 6, 2, 0,195, 6, 2, 0,160, 6,
- 7, 0,196, 6, 4, 0,197, 6, 4, 0,198, 6,239, 0, 6, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6,
- 7, 0,148, 6, 2, 0,149, 6,241, 0, 8, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6,
- 2, 0,149, 6, 0, 0,199, 6, 0, 0,125, 0,242, 0, 14, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6,
- 7, 0,148, 6, 2, 0,149, 6,240, 0,200, 6,243, 0,201, 6, 14, 0,202, 6, 2, 0, 88, 1, 2, 0,203, 6, 4, 0, 18, 0,
- 7, 0,204, 6, 4, 0,160, 6,244, 0, 21, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6,
- 2, 0,149, 6,240, 0,200, 6, 2, 0,205, 6, 2, 0,206, 6, 2, 0,207, 6, 2, 0,208, 6, 2, 0,191, 6, 2, 0,209, 6,
- 2, 0,210, 6, 0, 0, 18, 0, 0, 0, 27, 0, 11, 0, 73, 2, 4, 0,211, 6, 4, 0,212, 6, 22, 0,213, 6, 11, 0,214, 6,
-245, 0, 18, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6,240, 0,200, 6,
- 7, 0, 97, 2, 7, 0, 98, 2, 2, 0,205, 6, 2, 0,215, 6, 2, 0,216, 6, 2, 0,217, 6, 4, 0, 18, 0, 7, 0,218, 6,
- 4, 0,110, 6, 4, 0, 27, 0,178, 0,182, 3,246, 0, 16, 0, 0, 0,219, 6, 0, 0,220, 6, 0, 0,221, 6, 0, 0,222, 6,
- 0, 0,223, 6, 0, 0,224, 6, 4, 0,225, 6, 4, 0,226, 6, 4, 0,227, 6, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0,228, 6,
- 2, 0,229, 6, 2, 0,191, 1, 2, 0,230, 6, 0, 0,231, 6,247, 0, 16, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6,
- 4, 0,147, 6, 4, 0,232, 6,246, 0,233, 6,248, 0,234, 6, 14, 0,235, 6, 14, 0,236, 6,249, 0,237, 6,237, 0,238, 6,
-250, 0,239, 6, 2, 0,240, 6, 2, 0,241, 6, 2, 0,242, 6, 2, 0, 30, 0,251, 0, 15, 0,239, 0, 0, 0,239, 0, 1, 0,
- 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6,240, 0,200, 6, 14, 0,243, 6,252, 0,244, 6, 0, 0,245, 6,
-253, 0,246, 6, 2, 0, 18, 0, 2, 0,247, 6, 2, 0,248, 6, 2, 0,249, 6,254, 0, 25, 0,239, 0, 0, 0,239, 0, 1, 0,
- 14, 0,146, 6, 4, 0,147, 6, 4, 0, 18, 0, 42, 0,244, 2, 40, 0, 70, 1, 54, 0,250, 6,255, 0,251, 6, 0, 1,252, 6,
-178, 0,182, 3, 7, 0,253, 6, 7, 0, 97, 2, 7, 0, 98, 2, 7, 0,218, 6, 7, 0,254, 6, 7, 0,255, 6, 2, 0, 0, 7,
- 2, 0, 27, 0, 2, 0, 1, 7, 2, 0, 2, 7, 0, 0, 3, 7, 0, 0, 4, 7, 0, 0, 5, 7, 0, 0,160, 6, 1, 1, 11, 0,
-239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6, 2, 0,203, 6, 2, 0, 18, 0,
- 4, 0, 27, 0,243, 0,201, 6,240, 0,200, 6, 2, 1, 31, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6,
- 7, 0,148, 6, 2, 0,149, 6, 37, 0, 6, 7, 4, 0, 7, 7, 4, 0, 8, 7, 2, 0, 93, 0, 2, 0, 9, 7, 2, 0, 10, 7,
- 0, 0, 11, 7, 0, 0, 12, 7, 4, 0, 13, 7, 4, 0, 14, 7, 4, 0, 15, 7, 2, 0, 16, 7, 2, 0, 17, 7, 2, 0, 18, 7,
- 2, 0, 19, 7, 7, 0, 20, 7, 18, 0, 21, 7, 18, 0, 22, 7, 4, 0, 23, 7, 4, 0, 24, 7, 0, 0, 25, 7, 0, 0, 26, 7,
- 2, 0, 27, 7, 0, 0,211, 2, 11, 0, 28, 7, 3, 1, 10, 0, 22, 0, 32, 0, 11, 0, 29, 7, 11, 0, 30, 7, 11, 0, 31, 7,
- 11, 0, 32, 7, 11, 0, 33, 7, 4, 0, 93, 0, 4, 0, 34, 7, 0, 0, 35, 7, 0, 0, 36, 7, 4, 1, 10, 0,239, 0, 0, 0,
-239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 3, 1, 37, 7, 2, 0, 93, 0, 2, 0, 9, 7, 4, 0, 92, 0,
- 11, 0, 38, 7, 5, 1, 3, 0, 5, 1, 0, 0, 5, 1, 1, 0, 7, 0, 39, 7, 6, 1, 9, 0,239, 0, 0, 0,239, 0, 1, 0,
- 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6,240, 0,200, 6, 14, 0, 40, 7, 4, 0, 41, 7, 4, 0, 18, 0, 7, 1, 27, 0,
-239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6,240, 0,200, 6, 22, 0, 42, 7,
- 22, 0, 81, 0, 2, 0, 18, 0, 2, 0, 92, 0, 7, 0, 43, 7, 7, 0, 97, 2, 7, 0, 98, 2, 7, 0,218, 6, 7, 0, 44, 7,
- 7, 0, 45, 7, 7, 0, 46, 7, 57, 0, 71, 1, 57, 0, 47, 7, 4, 0, 48, 7, 2, 0, 49, 7, 2, 0, 50, 7, 2, 0,252, 0,
- 2, 0, 87, 1, 14, 0, 51, 7,178, 0,182, 3, 8, 1, 10, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6,
- 7, 0,148, 6, 2, 0,149, 6, 2, 0, 18, 0, 2, 0,214, 3, 4, 0, 27, 0,178, 0,182, 3, 9, 1, 7, 0, 9, 1, 0, 0,
- 9, 1, 1, 0, 4, 0, 52, 7, 4, 0, 22, 0, 0, 0, 86, 0, 4, 0, 53, 7, 4, 0, 16, 0, 10, 1, 14, 0,239, 0, 0, 0,
-239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6, 4, 0, 10, 7, 4, 0, 27, 0, 14, 0, 54, 7,
- 14, 0, 55, 7, 0, 0, 56, 7, 0, 0, 57, 7, 4, 0, 58, 7, 4, 0, 59, 7, 11, 1, 6, 0,239, 0, 0, 0,239, 0, 1, 0,
- 14, 0,146, 6, 4, 0,147, 6, 4, 0, 27, 0, 0, 0, 60, 7, 12, 1, 24, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6,
- 4, 0,147, 6, 7, 0, 97, 2, 7, 0, 98, 2, 7, 0, 61, 7, 7, 0, 62, 7, 7, 0,218, 6,231, 0, 63, 7,229, 0,106, 6,
- 13, 1,251, 6, 4, 0, 18, 0, 2, 0, 88, 1, 2, 0,110, 6, 4, 0, 64, 7, 7, 0, 65, 7, 7, 0,148, 3, 7, 0, 94, 3,
- 4, 0, 27, 0, 7, 0, 66, 7, 7, 0, 67, 7, 4, 0, 68, 7, 4, 0, 69, 7, 14, 1, 7, 0, 14, 1, 0, 0, 14, 1, 1, 0,
- 0, 0, 70, 7, 2, 0, 71, 7, 2, 0, 72, 7, 2, 0, 73, 7, 2, 0, 27, 0, 15, 1, 12, 0, 2, 0, 72, 7, 2, 0, 74, 7,
- 2, 0, 75, 7, 0, 0,211, 2, 2, 0, 76, 7, 2, 0, 77, 7, 2, 0, 78, 7, 2, 0, 79, 7, 2, 0, 80, 7, 2, 0,191, 6,
- 7, 0, 81, 7, 7, 0, 82, 7, 16, 1, 18, 0, 16, 1, 0, 0, 16, 1, 1, 0, 0, 0, 19, 0, 15, 1, 83, 7, 15, 1, 84, 7,
- 15, 1, 85, 7, 15, 1, 86, 7, 7, 0, 87, 7, 2, 0, 88, 7, 2, 0, 89, 7, 2, 0, 90, 7, 2, 0, 91, 7, 2, 0, 92, 7,
- 2, 0, 93, 7, 2, 0, 94, 7, 2, 0, 95, 7, 2, 0, 96, 7, 2, 0, 27, 0, 17, 1, 10, 0, 0, 0, 97, 7, 0, 0, 98, 7,
- 0, 0, 99, 7, 0, 0,100, 7, 0, 0,101, 7, 0, 0,102, 7, 2, 0,103, 7, 2, 0,104, 7, 2, 0,105, 7, 2, 0,106, 7,
- 18, 1, 8, 0, 0, 0,107, 7, 0, 0,108, 7, 0, 0,109, 7, 0, 0,110, 7, 0, 0,111, 7, 0, 0,112, 7, 7, 0,109, 6,
- 7, 0, 27, 0, 19, 1, 3, 0, 0, 0,113, 7, 2, 0,114, 7, 2, 0, 27, 0, 20, 1, 22, 0, 17, 1,115, 7, 17, 1,116, 7,
- 17, 1,117, 7, 17, 1,118, 7, 17, 1,119, 7, 17, 1,120, 7, 17, 1,121, 7, 17, 1,122, 7, 17, 1,123, 7, 17, 1,124, 7,
- 17, 1,125, 7, 17, 1,126, 7, 17, 1,127, 7, 17, 1,128, 7, 17, 1,129, 7, 17, 1,130, 7, 17, 1,131, 7, 18, 1,132, 7,
- 19, 1,133, 7, 0, 0,134, 7, 7, 0,135, 7, 7, 0, 27, 0, 21, 1,122, 0, 0, 0,136, 7, 0, 0,137, 7, 0, 0,101, 7,
- 0, 0,138, 7, 0, 0,113, 7, 0, 0,139, 7, 0, 0,140, 7, 0, 0,141, 7, 0, 0,142, 7, 0, 0,143, 7, 0, 0,144, 7,
- 0, 0,145, 7, 0, 0,146, 7, 0, 0,147, 7, 0, 0,148, 7, 0, 0,149, 7, 0, 0,150, 7, 0, 0,151, 7, 0, 0,152, 7,
- 0, 0,153, 7, 0, 0,154, 7, 0, 0,155, 7, 0, 0,156, 7, 0, 0,157, 7, 0, 0,158, 7, 0, 0,159, 7, 0, 0,160, 7,
- 0, 0,161, 7, 0, 0,162, 7, 0, 0,163, 7, 0, 0,164, 7, 0, 0,165, 7, 0, 0,166, 7, 0, 0,167, 7, 0, 0,168, 7,
- 0, 0,169, 7, 0, 0,170, 7, 0, 0,171, 7, 0, 0,172, 7, 0, 0,173, 7, 0, 0,174, 7, 0, 0,175, 7, 0, 0,176, 7,
- 0, 0,177, 7, 0, 0,178, 7, 0, 0,179, 7, 0, 0,180, 7, 0, 0,181, 7, 0, 0,182, 7, 0, 0,183, 7, 0, 0,184, 7,
- 0, 0,185, 7, 0, 0,186, 7, 0, 0,187, 7, 0, 0,188, 7, 0, 0,189, 7, 0, 0,190, 7, 0, 0,191, 7, 0, 0,192, 7,
- 0, 0,193, 7, 0, 0,194, 7, 0, 0,195, 7, 0, 0,196, 7, 0, 0,197, 7, 0, 0,198, 7, 0, 0,199, 7, 0, 0,200, 7,
- 0, 0,201, 7, 0, 0,202, 7, 0, 0,203, 7, 0, 0,204, 7, 0, 0,205, 7, 0, 0,206, 7, 0, 0,207, 7, 0, 0,208, 7,
- 0, 0,209, 7, 0, 0,210, 7, 0, 0,211, 7, 0, 0,212, 7, 0, 0,213, 7, 0, 0,214, 7, 0, 0,215, 7, 0, 0,216, 7,
- 0, 0,217, 7, 0, 0,218, 7, 0, 0,219, 7, 0, 0,220, 7, 0, 0,221, 7, 0, 0,222, 7, 0, 0,223, 7, 0, 0,224, 7,
- 0, 0,225, 7, 0, 0,226, 7, 0, 0,227, 7, 0, 0,228, 7, 0, 0,229, 7, 0, 0,230, 7, 0, 0,231, 7, 0, 0,232, 7,
- 0, 0,233, 7, 0, 0,234, 7, 0, 0,235, 7, 0, 0,236, 7, 0, 0,237, 7, 0, 0,238, 7, 0, 0,239, 7, 0, 0,240, 7,
- 0, 0,241, 7, 0, 0,242, 7, 0, 0,243, 7, 0, 0,244, 7, 0, 0,245, 7, 0, 0,246, 7, 0, 0,247, 7, 0, 0,248, 7,
- 0, 0,249, 7, 0, 0,250, 7, 0, 0,251, 7, 0, 0,252, 7, 0, 0,253, 7, 0, 0,254, 7, 0, 0,255, 7, 22, 1, 5, 0,
- 0, 0, 0, 8, 0, 0,159, 7, 0, 0,165, 7, 2, 0, 18, 0, 2, 0, 27, 0, 23, 1, 24, 0, 23, 1, 0, 0, 23, 1, 1, 0,
- 0, 0,172, 5, 20, 1, 1, 8, 21, 1, 2, 8, 21, 1, 3, 8, 21, 1, 4, 8, 21, 1, 5, 8, 21, 1, 6, 8, 21, 1, 7, 8,
- 21, 1, 8, 8, 21, 1, 9, 8, 21, 1, 10, 8, 21, 1, 11, 8, 21, 1, 12, 8, 21, 1, 13, 8, 21, 1, 14, 8, 21, 1, 15, 8,
- 21, 1, 16, 8, 21, 1, 17, 8, 21, 1, 18, 8, 22, 1, 19, 8, 4, 0, 20, 8, 4, 0, 27, 0, 24, 1, 3, 0, 24, 1, 0, 0,
- 24, 1, 1, 0, 0, 0, 21, 8, 25, 1, 5, 0, 4, 0, 18, 0, 4, 0, 27, 0, 7, 0,151, 2, 7, 0, 22, 8, 7, 0, 47, 2,
- 26, 1, 95, 0, 4, 0, 18, 0, 4, 0, 23, 8, 4, 0, 24, 8, 0, 0, 25, 8, 0, 0, 26, 8, 0, 0, 27, 8, 0, 0, 28, 8,
- 0, 0, 29, 8, 0, 0, 30, 8, 0, 0, 31, 8, 0, 0, 32, 8, 0, 0, 33, 8, 0, 0, 34, 8, 4, 0, 35, 8, 2, 0, 36, 8,
- 2, 0, 37, 8, 2, 0, 38, 8, 2, 0, 39, 8, 4, 0, 40, 8, 4, 0, 41, 8, 4, 0, 42, 8, 4, 0, 43, 8, 2, 0, 44, 8,
- 2, 0, 45, 8, 4, 0, 46, 8, 4, 0, 47, 8, 4, 0, 48, 8, 4, 0, 49, 8, 4, 0, 50, 8, 4, 0, 54, 7, 4, 0, 51, 8,
- 2, 0, 52, 8, 2, 0, 53, 8, 2, 0, 54, 8, 2, 0, 55, 8, 14, 0, 56, 8, 14, 0, 57, 8, 14, 0, 58, 8, 14, 0, 59, 8,
- 14, 0, 60, 8, 14, 0, 61, 8, 0, 0, 62, 8, 2, 0, 63, 8, 2, 0, 64, 8, 2, 0, 65, 8, 2, 0, 66, 8, 2, 0, 67, 8,
- 2, 0, 68, 8, 2, 0, 69, 8, 2, 0, 70, 8, 25, 1, 71, 8, 2, 0, 72, 8, 2, 0, 73, 8, 2, 0, 74, 8, 2, 0, 75, 8,
- 2, 0, 76, 8, 2, 0, 77, 8, 2, 0, 78, 8, 2, 0, 79, 8, 4, 0, 80, 8, 4, 0, 81, 8, 2, 0, 82, 8, 2, 0, 83, 8,
- 2, 0, 84, 8, 2, 0, 85, 8, 2, 0, 86, 8, 2, 0, 87, 8, 2, 0, 88, 8, 2, 0, 89, 8, 2, 0, 90, 8, 2, 0, 91, 8,
- 2, 0, 92, 8, 2, 0, 93, 8, 2, 0, 94, 8, 2, 0, 95, 8, 2, 0, 96, 8, 2, 0, 97, 8, 2, 0, 98, 8, 2, 0, 99, 8,
- 7, 0,100, 8, 4, 0,101, 8, 7, 0,102, 8, 2, 0, 18, 6, 2, 0, 19, 6, 2, 0,103, 8, 2, 0,104, 8, 50, 0,105, 8,
- 7, 0,106, 8, 2, 0,107, 8, 2, 0, 74, 0, 0, 0,108, 8, 4, 0,109, 8, 4, 0,110, 8, 7, 0,111, 8, 7, 0, 27, 0,
- 27, 1, 24, 0, 22, 0, 32, 0, 14, 0,112, 8, 14, 0,113, 8, 14, 0,114, 8, 14, 0,146, 6, 41, 0,126, 0, 41, 0,115, 8,
- 4, 0,116, 8, 4, 0, 92, 0, 2, 0,117, 8, 2, 0,118, 8, 2, 0,119, 8, 2, 0,120, 8, 2, 0,121, 8, 2, 0,122, 8,
- 2, 0,123, 8, 2, 0,124, 8, 2, 0,125, 8, 2, 0,126, 8, 2, 0,127, 8, 2, 0, 27, 0,237, 0,128, 8, 11, 0,129, 8,
- 2, 0,130, 8, 28, 1, 5, 0, 28, 1, 0, 0, 28, 1, 1, 0, 28, 1,131, 8, 15, 0,132, 8, 4, 0, 18, 0, 29, 1, 7, 0,
- 29, 1, 0, 0, 29, 1, 1, 0, 28, 1,133, 8, 28, 1,134, 8, 2, 0,121, 5, 2, 0, 18, 0, 4, 0, 27, 0, 30, 1, 25, 0,
- 30, 1, 0, 0, 30, 1, 1, 0, 31, 1,135, 8, 32, 1,239, 6, 0, 0,136, 8, 0, 0,137, 8, 0, 0,138, 8, 2, 0,139, 8,
- 2, 0,140, 8, 2, 0,141, 8, 2, 0,142, 8, 2, 0,143, 8, 2, 0, 27, 0, 2, 0, 18, 0, 2, 0, 69, 7, 2, 0,144, 8,
- 2, 0,145, 8, 4, 0,146, 8, 30, 1,147, 8, 11, 0,148, 8, 4, 0,149, 8, 4, 0,150, 8, 4, 0,151, 8, 4, 0,152, 8,
- 0, 0,153, 8, 33, 1, 22, 0, 33, 1, 0, 0, 33, 1, 1, 0, 28, 1,133, 8, 28, 1,134, 8, 28, 1,154, 8, 28, 1,155, 8,
- 27, 1,156, 8, 18, 0, 51, 0, 0, 0,147, 6, 0, 0,157, 8, 2, 0,192, 6, 2, 0,193, 6, 2, 0,158, 8, 2, 0, 27, 0,
- 2, 0,121, 8, 2, 0, 53, 7, 2, 0, 18, 0, 34, 1,135, 8, 14, 0,159, 8, 14, 0,146, 6, 14, 0,160, 8, 14, 0,161, 8,
- 35, 1, 24, 0, 35, 1, 0, 0, 35, 1, 1, 0,240, 0,200, 6, 18, 0,162, 8, 18, 0,163, 8, 2, 0,192, 6, 2, 0,193, 6,
- 2, 0,164, 8, 2, 0,165, 8, 2, 0,166, 8, 2, 0, 18, 0, 7, 0, 93, 2, 2, 0,141, 8, 2, 0,142, 8, 2, 0,120, 8,
- 2, 0,167, 8, 2, 0,125, 8, 2, 0, 87, 1, 36, 1,135, 8, 14, 0,168, 8, 14, 0,169, 8, 14, 0,160, 8, 0, 0,170, 8,
- 11, 0,171, 8, 37, 1, 14, 0, 0, 0,172, 8, 2, 0,173, 8, 2, 0,174, 8, 2, 0,175, 8, 2, 0,176, 8, 2, 0,110, 5,
- 2, 0,177, 8, 27, 1,178, 8, 41, 0,179, 8, 4, 0,180, 8, 4, 0,181, 8, 4, 0,182, 8, 4, 0, 27, 0, 0, 0, 70, 7,
- 38, 1, 3, 0, 0, 0,183, 8, 4, 0,184, 8, 4, 0,185, 8, 39, 1, 4, 0, 4, 0, 7, 7, 4, 0,186, 8, 4, 0, 13, 7,
- 4, 0,187, 8, 40, 1, 2, 0, 4, 0,188, 8, 4, 0,189, 8, 41, 1, 5, 0, 7, 0,190, 8, 7, 0,191, 8, 7, 0,192, 8,
- 4, 0, 18, 0, 4, 0, 27, 0, 42, 1, 7, 0, 0, 0,193, 8, 0, 0,221, 6, 44, 0,139, 0, 2, 0,194, 8, 2, 0, 72, 5,
- 2, 0,195, 8, 2, 0,196, 8, 43, 1, 12, 0, 43, 1, 0, 0, 43, 1, 1, 0, 4, 0, 28, 0, 4, 0,197, 8, 4, 0,198, 8,
- 4, 0,199, 8, 38, 1,200, 8, 0, 0,193, 8, 42, 1,176, 3, 39, 1,201, 8, 40, 1,202, 8, 41, 1,203, 8, 44, 1, 12, 0,
- 0, 0, 35, 0, 11, 0,228, 0, 0, 0,229, 0, 4, 0,232, 0, 4, 0,240, 0, 11, 0,233, 0, 7, 0,235, 0, 7, 0,236, 0,
- 11, 0,204, 8, 11, 0,205, 8, 11, 0,237, 0, 11, 0,239, 0, 45, 1, 50, 0, 45, 1, 0, 0, 45, 1, 1, 0, 11, 0,206, 8,
- 11, 0, 25, 0, 0, 0, 19, 0, 4, 0, 18, 0, 4, 0, 16, 0, 4, 0, 22, 0, 4, 0, 90, 0, 4, 0,207, 8, 4, 0,208, 8,
- 4, 0,198, 8, 4, 0,199, 8, 4, 0,209, 8, 4, 0,251, 0, 4, 0,210, 8, 4, 0,211, 8, 7, 0,212, 8, 7, 0,213, 8,
- 7, 0,214, 8, 2, 0,215, 8, 2, 0,216, 8, 4, 0,217, 8, 4, 0,218, 8, 43, 1,219, 8, 31, 0, 80, 0, 41, 0,126, 0,
- 27, 0,220, 8, 44, 0,139, 0,229, 0,106, 6, 7, 0,221, 8, 7, 0,222, 8, 44, 1, 72, 1, 45, 1,223, 8, 45, 1,224, 8,
- 45, 1,225, 8, 14, 0,226, 8, 46, 1,227, 8, 11, 0,228, 8, 7, 0, 84, 4, 7, 0,229, 8, 7, 0,230, 8, 7, 0,231, 8,
- 11, 0,232, 8, 4, 0,233, 8, 4, 0,234, 8, 4, 0,235, 8, 7, 0,236, 8, 4, 0,130, 0, 4, 0, 27, 0, 47, 1, 4, 0,
- 47, 1, 0, 0, 47, 1, 1, 0, 14, 0,237, 8, 45, 1,238, 8,226, 0, 11, 0, 14, 0,239, 8, 14, 0,226, 8, 14, 0,240, 8,
- 45, 1,241, 8, 0, 0,242, 8, 0, 0,243, 8, 4, 0,244, 8, 4, 0,245, 8, 4, 0,246, 8, 4, 0, 27, 0, 19, 0,247, 8,
- 48, 1, 4, 0, 7, 0,248, 8, 7, 0, 94, 3, 2, 0,249, 8, 2, 0,250, 8, 49, 1, 6, 0, 7, 0,251, 8, 7, 0,252, 8,
- 7, 0,253, 8, 7, 0,254, 8, 4, 0,255, 8, 4, 0, 0, 9, 50, 1, 8, 0, 7, 0, 1, 9, 7, 0, 2, 9, 7, 0, 3, 9,
- 7, 0, 4, 9, 7, 0, 5, 9, 4, 0,250, 2, 4, 0, 6, 9, 4, 0, 7, 9, 51, 1, 2, 0, 7, 0,180, 5, 7, 0, 27, 0,
- 52, 1, 5, 0, 7, 0, 8, 9, 7, 0, 9, 9, 4, 0, 93, 0, 4, 0,212, 2, 4, 0, 10, 9, 53, 1, 6, 0, 53, 1, 0, 0,
- 53, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 11, 9, 2, 0, 56, 0, 54, 1, 8, 0, 54, 1, 0, 0, 54, 1, 1, 0,
- 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 11, 9, 2, 0, 56, 0, 7, 0, 22, 0, 7, 0,130, 0, 55, 1, 45, 0, 55, 1, 0, 0,
- 55, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 11, 9, 2, 0,247, 0, 2, 0,126, 4, 2, 0, 12, 9, 7, 0, 13, 9,
- 7, 0, 91, 0, 7, 0, 7, 3, 4, 0, 14, 9, 4, 0, 82, 0, 4, 0,214, 2, 7, 0, 15, 9, 7, 0, 16, 9, 7, 0, 17, 9,
- 7, 0, 18, 9, 7, 0, 19, 9, 7, 0, 20, 9, 7, 0, 4, 3, 7, 0, 69, 1, 7, 0, 21, 9, 7, 0, 22, 9, 7, 0, 27, 0,
- 7, 0, 23, 9, 7, 0, 24, 9, 7, 0, 25, 9, 2, 0, 26, 9, 2, 0, 27, 9, 2, 0, 28, 9, 2, 0, 29, 9, 2, 0, 30, 9,
- 2, 0, 31, 9, 2, 0, 32, 9, 2, 0, 33, 9, 2, 0, 32, 2, 2, 0, 34, 9, 2, 0, 29, 2, 2, 0, 35, 9, 0, 0, 36, 9,
- 0, 0, 37, 9, 7, 0,245, 0, 56, 1, 38, 9, 64, 0,250, 1, 57, 1, 16, 0, 57, 1, 0, 0, 57, 1, 1, 0, 2, 0, 16, 0,
- 2, 0, 18, 0, 2, 0, 11, 9, 2, 0,247, 0, 7, 0,255, 2, 7, 0, 0, 3, 7, 0, 1, 3, 7, 0, 82, 2, 7, 0, 2, 3,
- 7, 0, 3, 3, 7, 0, 39, 9, 7, 0, 4, 3, 7, 0, 6, 3, 7, 0, 7, 3,253, 0, 5, 0, 2, 0, 16, 0, 2, 0, 40, 9,
- 2, 0, 18, 0, 2, 0, 41, 9, 22, 0, 42, 7,252, 0, 3, 0, 4, 0, 68, 0, 4, 0, 42, 9,253, 0, 2, 0, 58, 1, 7, 0,
- 58, 1, 0, 0, 58, 1, 1, 0, 0, 0, 19, 0, 2, 0, 16, 0, 2, 0, 18, 0, 4, 0, 21, 0, 11, 0, 43, 9, 59, 1, 5, 0,
- 0, 0, 19, 0, 7, 0, 95, 1, 7, 0, 44, 9, 4, 0, 45, 9, 4, 0, 27, 0, 60, 1, 4, 0, 2, 0, 16, 0, 2, 0, 18, 0,
- 2, 0, 92, 0, 2, 0, 30, 0, 61, 1, 4, 0, 0, 0, 19, 0, 63, 0, 46, 9, 7, 0, 95, 1, 7, 0, 27, 0, 62, 1, 6, 0,
- 2, 0, 47, 9, 2, 0, 48, 9, 2, 0, 16, 0, 2, 0, 49, 9, 0, 0, 50, 9, 0, 0, 51, 9, 63, 1, 5, 0, 4, 0, 16, 0,
- 4, 0, 27, 0, 0, 0, 19, 0, 0, 0, 52, 9, 0, 0, 53, 9, 64, 1, 3, 0, 4, 0, 16, 0, 4, 0, 27, 0, 0, 0, 19, 0,
- 65, 1, 4, 0, 2, 0, 54, 9, 2, 0, 55, 9, 2, 0, 18, 0, 2, 0, 27, 0, 66, 1, 6, 0, 0, 0, 19, 0, 0, 0, 56, 9,
- 2, 0, 57, 9, 2, 0, 4, 3, 2, 0, 88, 1, 2, 0, 30, 0, 67, 1, 5, 0, 0, 0, 19, 0, 7, 0, 94, 3, 7, 0,217, 4,
- 2, 0, 18, 0, 2, 0,226, 2, 68, 1, 3, 0, 0, 0, 19, 0, 4, 0,214, 2, 4, 0, 54, 9, 69, 1, 7, 0, 0, 0, 19, 0,
- 7, 0,217, 4, 0, 0, 58, 9, 0, 0, 59, 9, 2, 0, 88, 1, 2, 0, 92, 0, 4, 0, 60, 9, 70, 1, 4, 0, 0, 0, 61, 9,
- 0, 0, 62, 9, 4, 0, 16, 0, 7, 0,230, 2, 71, 1, 3, 0, 27, 0, 63, 9, 0, 0, 64, 9, 0, 0, 65, 9, 72, 1, 18, 0,
- 72, 1, 0, 0, 72, 1, 1, 0, 2, 0, 16, 0, 2, 0, 66, 9, 2, 0, 18, 0, 2, 0, 67, 9, 2, 0, 68, 9, 2, 0, 69, 9,
- 2, 0, 92, 0, 2, 0, 30, 0, 0, 0, 19, 0, 11, 0, 2, 0, 73, 1, 70, 9, 27, 0, 44, 0, 2, 0,216, 5, 2, 0,176, 2,
- 2, 0, 71, 9, 2, 0, 27, 0, 74, 1, 11, 0, 0, 0, 19, 0, 0, 0, 16, 0, 0, 0, 72, 9, 2, 0, 18, 0, 2, 0,226, 2,
- 2, 0, 73, 9, 4, 0, 74, 9, 4, 0, 75, 9, 4, 0, 76, 9, 4, 0, 77, 9, 4, 0, 78, 9, 75, 1, 1, 0, 0, 0, 79, 9,
- 76, 1, 4, 0, 37, 0, 6, 7, 0, 0, 21, 8, 4, 0, 88, 1, 4, 0, 18, 0, 73, 1, 18, 0, 73, 1, 0, 0, 73, 1, 1, 0,
- 73, 1, 80, 9, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 81, 9, 2, 0, 69, 9, 2, 0, 66, 9, 2, 0, 82, 9, 2, 0, 30, 0,
- 2, 0, 74, 0, 0, 0, 19, 0, 11, 0, 2, 0, 77, 1, 70, 9, 72, 1, 83, 9, 2, 0, 14, 0, 2, 0, 84, 9, 4, 0, 85, 9,
- 78, 1, 3, 0, 4, 0,240, 2, 4, 0, 27, 0, 27, 0, 44, 0, 79, 1, 15, 0,176, 0, 86, 9, 2, 0, 16, 0, 2, 0, 18, 0,
- 7, 0, 13, 9, 7, 0, 91, 0, 0, 0, 19, 0, 0, 0, 87, 9, 2, 0, 88, 9, 2, 0, 89, 9, 2, 0,135, 0, 2, 0, 90, 9,
- 2, 0, 91, 9, 2, 0, 27, 0, 7, 0, 92, 9, 7, 0, 93, 9, 80, 1, 8, 0, 7, 0, 94, 9, 7, 0, 95, 9, 7, 0, 96, 9,
- 7, 0, 97, 9, 7, 0, 98, 9, 7, 0, 99, 9, 7, 0,100, 9, 7, 0,101, 9, 81, 1, 13, 0, 2, 0, 18, 0, 2, 0,102, 9,
- 4, 0, 92, 0, 4, 0, 30, 0, 2, 0,177, 6, 7, 0, 84, 4, 7, 0,229, 8, 46, 1,227, 8, 80, 1,103, 9, 2, 0, 16, 0,
- 2, 0,115, 5, 2, 0,216, 3, 2, 0,104, 9, 82, 1, 11, 0, 4, 0,240, 2, 2, 0, 16, 0, 2, 0, 18, 0, 27, 0, 44, 0,
- 79, 0,105, 9, 0, 0, 19, 0, 7, 0,106, 9, 7, 0,107, 9, 7, 0,222, 3, 2, 0,108, 9, 2, 0,109, 9, 83, 1, 5, 0,
- 2, 0, 16, 0, 2, 0, 92, 0, 4, 0, 27, 0, 41, 0,126, 0, 27, 0,208, 5, 84, 1, 5, 0, 4, 0, 27, 0, 4, 0, 16, 0,
- 0, 0, 19, 0, 0, 0, 52, 9, 27, 0, 44, 0, 85, 1, 13, 0, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0, 66, 9, 2, 0,223, 3,
- 7, 0,110, 9, 7, 0,111, 9, 7, 0, 87, 1, 7, 0,112, 9, 7, 0,192, 3, 7, 0,196, 3, 7, 0,113, 9, 7, 0,114, 9,
- 27, 0,115, 9, 86, 1, 10, 0, 2, 0, 18, 0, 2, 0, 16, 0, 7, 0, 13, 9, 7, 0, 91, 0, 0, 0, 19, 0, 0, 0, 87, 9,
- 2, 0, 92, 0, 2, 0, 30, 0, 2, 0, 74, 0, 2, 0,115, 5, 87, 1, 8, 0, 27, 0, 44, 0, 7, 0, 1, 3, 7, 0,116, 9,
- 7, 0,117, 9, 7, 0,223, 3, 2, 0, 92, 0, 2, 0,226, 2, 7, 0, 30, 0, 88, 1, 12, 0, 2, 0, 16, 0, 2, 0, 88, 1,
- 2, 0, 18, 0, 2, 0, 4, 3, 2, 0,240, 2, 2, 0,118, 9, 4, 0, 27, 0, 7, 0,119, 9, 7, 0,120, 9, 7, 0,121, 9,
- 7, 0,122, 9, 0, 0,123, 9, 89, 1, 9, 0, 2, 0, 18, 0, 2, 0, 16, 0, 4, 0, 13, 9, 4, 0, 91, 0, 0, 0, 19, 0,
- 2, 0, 87, 1, 2, 0, 63, 0, 2, 0,124, 9, 2, 0,125, 9, 90, 1, 7, 0, 4, 0,214, 2, 4, 0,126, 9, 4, 0,127, 9,
- 4, 0,128, 9, 7, 0,129, 9, 7, 0,130, 9, 0, 0, 58, 9, 91, 1, 7, 0, 0, 0,131, 9, 27, 0,132, 9, 0, 0, 64, 9,
- 2, 0,133, 9, 2, 0, 92, 0, 4, 0, 30, 0, 0, 0, 65, 9, 92, 1, 6, 0, 2, 0, 18, 0, 2, 0, 16, 0, 4, 0, 13, 9,
- 4, 0, 91, 0, 0, 0,134, 9, 0, 0,135, 9, 93, 1, 1, 0, 4, 0, 18, 0, 94, 1, 6, 0, 0, 0, 95, 0, 2, 0, 16, 0,
- 2, 0, 18, 0, 4, 0,136, 9, 7, 0,137, 9, 37, 0, 6, 7, 95, 1, 4, 0, 0, 0,181, 2, 2, 0, 18, 0, 4, 0, 16, 0,
- 27, 0, 44, 0, 96, 1, 2, 0, 4, 0, 16, 0, 4, 0,181, 6, 97, 1, 8, 0, 0, 0, 61, 9, 0, 0, 62, 9, 4, 0, 16, 0,
- 7, 0, 40, 2, 7, 0,138, 9, 7, 0, 27, 0, 27, 0, 70, 3, 27, 0,139, 9, 98, 1, 11, 0, 0, 0, 54, 6, 0, 0, 18, 0,
- 2, 0,140, 9, 4, 0, 16, 0, 7, 0, 95, 1, 7, 0,141, 9, 7, 0,142, 9, 7, 0,143, 9, 4, 0,144, 9, 27, 0, 70, 3,
- 27, 0,145, 9, 77, 1, 10, 0, 77, 1, 0, 0, 77, 1, 1, 0, 77, 1, 80, 9, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 66, 9,
- 2, 0,146, 9, 0, 0, 19, 0, 11, 0, 2, 0, 27, 0, 44, 0, 46, 1, 17, 0, 22, 0, 32, 0, 0, 0, 35, 0, 38, 0,154, 0,
- 11, 0,228, 0, 38, 0,147, 9, 31, 0, 80, 0, 7, 0, 84, 4, 7, 0,148, 9, 7, 0,229, 8, 7, 0, 94, 9, 7, 0, 95, 9,
- 7, 0,149, 9, 4, 0, 93, 0, 4, 0, 27, 0, 11, 0,150, 9, 11, 0,151, 9, 11, 0,152, 9, 99, 1, 6, 0, 99, 1, 0, 0,
- 99, 1, 1, 0, 27, 0, 44, 0, 11, 0,153, 9, 2, 0,252, 0, 0, 0,211, 2, 64, 0, 4, 0, 22, 0, 32, 0, 14, 0,154, 9,
- 4, 0,135, 0, 7, 0,155, 9,100, 1, 28, 0,100, 1, 0, 0,100, 1, 1, 0, 21, 0,156, 9,100, 1, 38, 0, 14, 0,157, 9,
- 0, 0, 19, 0, 7, 0,158, 9, 7, 0,159, 9, 7, 0,160, 9, 7, 0,161, 9, 4, 0, 18, 0, 7, 0,162, 9, 7, 0,163, 9,
- 7, 0,164, 9, 7, 0,165, 9, 7, 0, 95, 1, 7, 0, 40, 2, 7, 0,166, 9, 7, 0,212, 2, 7, 0,167, 9, 7, 0,168, 9,
- 7, 0,169, 9, 7, 0,170, 9, 7, 0,171, 9, 7, 0,177, 0, 4, 0,135, 0, 2, 0,254, 5, 2, 0,172, 9,101, 1, 27, 0,
- 22, 0, 32, 0, 34, 0, 75, 0, 14, 0,173, 9, 14, 0,174, 9, 14, 0,175, 9,100, 1,176, 9, 11, 0,177, 9, 11, 0,178, 9,
- 4, 0, 18, 0, 4, 0,157, 6, 4, 0,179, 9, 4, 0, 27, 0, 2, 0, 8, 3, 2, 0,211, 6, 4, 0,180, 9, 4, 0,135, 0,
- 4, 0,181, 9, 2, 0,182, 9, 2, 0,183, 9, 2, 0,184, 9, 2, 0,185, 9, 4, 0,186, 9, 4, 0,187, 9, 4, 0,188, 9,
- 4, 0,189, 9, 4, 0,190, 9, 4, 0,191, 9,102, 1, 2, 0, 7, 0,165, 2, 4, 0, 18, 0,180, 0, 5, 0,102, 1,192, 9,
- 4, 0,212, 2, 4, 0,193, 9, 4, 0,194, 9, 4, 0, 18, 0,179, 0, 16, 0, 4, 0,195, 9, 4, 0,196, 9, 4, 0,197, 9,
- 4, 0,198, 9, 2, 0,199, 9, 2, 0,200, 9, 2, 0,201, 9, 2, 0,252, 0, 2, 0,202, 9, 2, 0,203, 9, 2, 0,204, 9,
- 2, 0,205, 9, 4, 0,206, 9, 4, 0,207, 9, 4, 0,208, 9, 4, 0,209, 9,103, 1, 40, 0,103, 1, 0, 0,103, 1, 1, 0,
- 21, 0,156, 9, 14, 0,251, 3, 0, 0, 19, 0, 2, 0, 18, 0, 2, 0,210, 9, 2, 0,209, 3, 2, 0,211, 9, 0, 0,212, 9,
- 0, 0,213, 9, 0, 0,214, 9,100, 1,215, 9,103, 1, 38, 0,103, 1,216, 9, 14, 0,217, 9, 14, 0,218, 9,180, 0,184, 3,
- 27, 0,219, 9,103, 1,220, 9, 7, 0, 78, 1, 7, 0,177, 0, 7, 0,221, 9, 7, 0, 19, 2, 7, 0,198, 3, 7, 0,200, 3,
- 2, 0,232, 3, 2, 0, 27, 0, 7, 0,222, 9, 7, 0,223, 9, 7, 0,203, 3, 7, 0,224, 9, 7, 0,225, 9, 7, 0,226, 9,
- 7, 0,227, 9, 7, 0,228, 9, 7, 0,229, 9, 7, 0,230, 9, 7, 0,231, 9, 11, 0,232, 9,177, 0, 16, 0, 14, 0,233, 9,
- 74, 0,234, 9, 2, 0, 18, 0, 2, 0, 27, 0, 4, 0,235, 9, 4, 0, 92, 0, 7, 0, 84, 0, 7, 0,236, 9, 7, 0,237, 9,
- 14, 0,238, 9, 4, 0,239, 9, 4, 0,240, 9, 11, 0,241, 9, 11, 0,242, 9,179, 0,183, 3, 0, 0,243, 9,104, 1, 1, 0,
- 4, 0,240, 9,105, 1, 12, 0, 4, 0,240, 9, 7, 0, 78, 9, 2, 0,244, 9, 2, 0,245, 9, 7, 0,246, 9, 7, 0,247, 9,
- 2, 0,248, 9, 2, 0, 18, 0, 7, 0,249, 9, 7, 0,250, 9, 7, 0,251, 9, 7, 0,252, 9,106, 1, 7, 0,106, 1, 0, 0,
-106, 1, 1, 0, 14, 0,253, 9, 4, 0, 18, 0, 4, 0,254, 9, 0, 0, 19, 0, 22, 1,255, 9,176, 0, 9, 0, 22, 0, 32, 0,
- 14, 0, 0, 10, 14, 0,233, 9, 14, 0, 1, 10, 14, 0,103, 0, 4, 0, 18, 0, 4, 0, 2, 10, 4, 0, 3, 10, 4, 0, 27, 0,
-243, 0, 8, 0, 22, 0, 4, 10, 14, 0,233, 9, 64, 0, 5, 10, 0, 0, 6, 10, 4, 0, 7, 10, 4, 0, 18, 0, 4, 0, 8, 10,
- 4, 0, 27, 0,107, 1, 13, 0,239, 0, 0, 0,239, 0, 1, 0, 14, 0,146, 6, 4, 0,147, 6, 7, 0,148, 6, 2, 0,149, 6,
-240, 0,200, 6,176, 0,179, 3,243, 0, 9, 10, 0, 0, 88, 1, 0, 0,203, 6, 2, 0, 18, 0, 7, 0, 10, 10,108, 1, 8, 0,
-108, 1, 0, 0,108, 1, 1, 0,106, 1, 11, 10, 31, 0, 80, 0, 14, 0,185, 3, 4, 0, 18, 0, 0, 0, 19, 0, 4, 0,118, 8,
-109, 1, 5, 0,109, 1, 0, 0,109, 1, 1, 0, 31, 0, 80, 0, 2, 0, 18, 0, 0, 0, 12, 10,110, 1, 14, 0,110, 1, 0, 0,
-110, 1, 1, 0, 11, 0, 2, 0, 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 13, 10, 0, 0, 14, 10, 0, 0, 19, 0, 2, 0, 27, 0,
- 7, 0, 15, 10, 7, 0, 16, 10, 31, 0, 80, 0, 7, 0, 17, 10, 7, 0, 18, 10,111, 1, 9, 0,111, 1, 0, 0,111, 1, 1, 0,
- 27, 0, 19, 10, 0, 0, 11, 3, 7, 0, 20, 10, 2, 0, 21, 10, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0, 22, 10,112, 1, 7, 0,
- 37, 0, 6, 7, 21, 0,156, 9, 4, 0, 18, 0, 4, 0, 23, 10, 14, 0, 24, 10, 27, 0, 19, 10, 0, 0, 11, 3,113, 1, 15, 0,
- 27, 0, 19, 10, 2, 0, 25, 10, 2, 0, 18, 0, 2, 0, 26, 10, 2, 0, 27, 10, 0, 0, 11, 3, 27, 0, 28, 10, 0, 0, 29, 10,
- 7, 0, 30, 10, 7, 0, 40, 2, 7, 0, 31, 10, 7, 0, 32, 10, 2, 0, 16, 0, 2, 0, 88, 1, 7, 0, 95, 1,114, 1, 6, 0,
- 27, 0, 19, 10, 7, 0,192, 9, 2, 0, 33, 10, 2, 0, 34, 10, 2, 0, 18, 0, 2, 0, 35, 10,115, 1, 6, 0, 27, 0, 19, 10,
- 4, 0, 36, 10, 4, 0, 37, 10, 4, 0, 93, 0, 4, 0, 27, 0, 0, 0, 11, 3,116, 1, 4, 0, 27, 0, 19, 10, 4, 0, 18, 0,
- 4, 0, 36, 10, 0, 0, 11, 3,117, 1, 4, 0, 27, 0, 19, 10, 4, 0, 18, 0, 4, 0, 36, 10, 0, 0, 11, 3,118, 1, 4, 0,
- 27, 0, 19, 10, 4, 0, 18, 0, 4, 0, 36, 10, 0, 0, 11, 3,119, 1, 2, 0, 4, 0, 18, 0, 7, 0, 84, 4,120, 1, 2, 0,
- 27, 0, 19, 10, 0, 0, 11, 3,121, 1, 10, 0, 27, 0, 19, 10, 4, 0, 38, 10, 7, 0,129, 0, 4, 0, 18, 0, 2, 0, 4, 7,
- 2, 0, 39, 10, 2, 0, 92, 0, 2, 0, 30, 0, 7, 0, 40, 10, 0, 0, 11, 3,122, 1, 10, 0, 27, 0, 19, 10, 2, 0, 16, 0,
- 2, 0,134, 4, 4, 0, 90, 0, 4, 0, 91, 0, 7, 0,116, 9, 7, 0,117, 9, 4, 0, 27, 0,176, 0, 86, 9, 0, 0, 11, 3,
-123, 1, 4, 0, 27, 0, 19, 10, 4, 0,210, 3, 4, 0, 41, 10, 0, 0, 11, 3,124, 1, 4, 0, 27, 0, 19, 10, 4, 0,210, 3,
- 4, 0, 27, 0, 0, 0, 11, 3,125, 1, 6, 0, 27, 0, 19, 10, 7, 0,129, 0, 7, 0, 82, 3, 4, 0, 42, 10, 2, 0,210, 3,
- 2, 0,211, 3,126, 1, 6, 0, 27, 0, 19, 10, 4, 0, 43, 10, 4, 0, 44, 10, 7, 0, 45, 10, 7, 0, 46, 10, 0, 0, 11, 3,
-127, 1, 16, 0, 27, 0, 19, 10, 27, 0,216, 9, 4, 0, 16, 0, 7, 0, 47, 10, 7, 0, 48, 10, 7, 0, 49, 10, 7, 0, 50, 10,
- 7, 0, 51, 10, 7, 0, 52, 10, 7, 0, 53, 10, 7, 0, 54, 10, 7, 0, 55, 10, 2, 0, 18, 0, 2, 0, 27, 0, 2, 0, 92, 0,
- 2, 0, 30, 0,128, 1, 3, 0, 27, 0, 19, 10, 4, 0, 18, 0, 4, 0, 32, 2,129, 1, 5, 0, 27, 0, 19, 10, 4, 0, 18, 0,
- 4, 0, 27, 0, 7, 0, 56, 10, 0, 0, 11, 3,130, 1, 10, 0, 27, 0, 19, 10, 0, 0, 11, 3, 2, 0, 57, 10, 2, 0, 58, 10,
- 0, 0, 59, 10, 0, 0, 60, 10, 7, 0, 61, 10, 7, 0, 62, 10, 7, 0, 63, 10, 7, 0, 64, 10,131, 1, 5, 0, 27, 0, 19, 10,
- 0, 0, 11, 3, 7, 0,220, 2, 2, 0, 65, 10, 2, 0, 18, 0,132, 1, 8, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0,
- 7, 0, 11, 0, 7, 0, 66, 10, 7, 0, 67, 10, 2, 0, 18, 0, 2, 0, 32, 2,133, 1, 8, 0, 7, 0, 8, 0, 7, 0, 9, 0,
- 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 66, 10, 7, 0, 67, 10, 2, 0, 18, 0, 2, 0, 32, 2,134, 1, 8, 0, 7, 0, 8, 0,
- 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 66, 10, 7, 0, 67, 10, 2, 0, 18, 0, 2, 0, 32, 2,135, 1, 7, 0,
- 27, 0, 19, 10, 0, 0, 11, 3, 7, 0, 95, 1, 7, 0,104, 1, 2, 0, 18, 0, 2, 0, 88, 1, 4, 0, 27, 0,136, 1, 5, 0,
- 27, 0, 70, 3, 7, 0, 95, 1, 2, 0, 74, 3, 0, 0, 76, 3, 0, 0, 68, 10,137, 1, 7, 0,229, 0,106, 6, 0, 0, 69, 10,
- 4, 0, 18, 0, 4, 0, 27, 0, 0, 0, 70, 10, 27, 0,208, 5, 27, 0, 71, 10,138, 1, 3, 0,229, 0,106, 6, 4, 0, 18, 0,
- 4, 0, 27, 0,139, 1, 6, 0,229, 0,106, 6, 4, 0, 18, 0, 4, 0, 27, 0, 0, 0, 70, 10, 7, 0, 56, 10, 27, 0,208, 5,
-140, 1, 10, 0,140, 1, 0, 0,140, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 72, 10, 7, 0, 32, 1, 7, 0, 33, 1,
- 2, 0,253, 9, 2, 0, 73, 10, 27, 0, 44, 0,141, 1, 22, 0,141, 1, 0, 0,141, 1, 1, 0, 2, 0, 18, 0, 2, 0, 88, 1,
- 2, 0, 74, 10, 2, 0, 75, 10, 31, 0, 80, 0,176, 0, 86, 9, 27, 0,169, 0, 7, 0, 90, 0, 7, 0, 91, 0, 7, 0, 76, 10,
- 7, 0, 77, 10, 7, 0, 78, 10, 7, 0, 79, 10, 7, 0,253, 2, 7, 0,148, 3, 7, 0, 88, 9, 7, 0, 80, 10, 0, 0, 81, 10,
- 0, 0, 82, 10, 14, 0,188, 3,142, 1, 11, 0, 7, 0, 47, 2, 7, 0,116, 9, 7, 0,117, 9, 11, 0, 2, 0, 2, 0, 83, 10,
- 2, 0, 84, 10, 2, 0, 85, 10, 2, 0, 86, 10, 2, 0, 87, 10, 2, 0, 88, 10, 2, 0,181, 2,143, 1, 21, 0,143, 1, 0, 0,
-143, 1, 1, 0,143, 1, 89, 10, 0, 0, 19, 0, 11, 0, 90, 10, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 91, 10, 2, 0, 92, 10,
- 7, 0, 93, 10, 7, 0, 94, 10, 11, 0, 95, 10, 2, 0, 96, 10, 2, 0, 97, 10, 4, 0, 74, 0, 11, 0,150, 9, 4, 0, 98, 10,
- 4, 0, 99, 10,143, 1,100, 10,144, 1,101, 10,142, 1,102, 10,145, 1, 4, 0, 0, 0,103, 10, 2, 0,104, 10, 2, 0,105, 10,
- 4, 0, 27, 0,146, 1, 37, 0,146, 1, 0, 0,146, 1, 1, 0,146, 1,106, 10, 0, 0, 19, 0, 2, 0, 16, 0, 2, 0, 18, 0,
- 2, 0,197, 8, 2, 0,176, 2, 2, 0,107, 10, 2, 0, 9, 7, 2, 0, 96, 10, 2, 0, 40, 9, 14, 0, 81, 9, 14, 0,108, 10,
-146, 1, 38, 0, 22, 0, 42, 7, 11, 0, 90, 10, 7, 0, 93, 10, 7, 0, 94, 10, 7, 0, 82, 2, 7, 0, 1, 3, 7, 0,109, 10,
- 4, 0,110, 10, 0, 0,111, 10, 2, 0,112, 10, 2, 0,113, 10, 7, 0,114, 10, 7, 0,115, 10, 2, 0,116, 10, 2, 0,117, 10,
- 11, 0,118, 10, 19, 0,119, 10, 19, 0,120, 10, 19, 0,121, 10,145, 1,155, 0,147, 1,122, 10,148, 1,123, 10,144, 1, 8, 0,
-144, 1, 0, 0,144, 1, 1, 0,146, 1,124, 10,146, 1,125, 10,143, 1,126, 10,143, 1,127, 10, 4, 0, 18, 0, 4, 0, 27, 0,
- 57, 0, 20, 0, 22, 0, 32, 0, 34, 0, 75, 0,178, 0,182, 3, 14, 0,128, 10, 14, 0,129, 10, 4, 0, 16, 0, 4, 0,130, 10,
- 4, 0,131, 10, 4, 0, 18, 0, 4, 0,110, 10, 4, 0,132, 10, 14, 0, 81, 9, 14, 0,108, 10,149, 1,133, 10, 11, 0,134, 10,
- 11, 0,135, 10, 4, 0,136, 10, 11, 0,137, 10, 11, 0,138, 10, 11, 0,139, 10,150, 1, 4, 0, 4, 0, 17, 0, 4, 0,230, 2,
- 4, 0,116, 9, 4, 0,117, 9,151, 1, 4, 0, 4, 0, 17, 0, 7, 0,230, 2, 7, 0,116, 9, 7, 0,117, 9,152, 1, 2, 0,
- 0, 0,230, 2, 0, 0, 87, 1,153, 1, 4, 0, 4, 0, 17, 0, 7, 0,140, 10, 7, 0,116, 9, 7, 0,117, 9,154, 1, 1, 0,
- 7, 0,141, 10,155, 1, 6, 0, 4, 0,128, 0, 4, 0,130, 0, 4, 0, 40, 9, 0, 0,142, 10, 0, 0,143, 10, 2, 0, 27, 0,
-156, 1, 16, 0, 2, 0,141, 8, 2, 0,142, 8, 2, 0,144, 10, 2, 0,145, 10, 2, 0,146, 10, 2, 0, 67, 0, 2, 0, 43, 7,
- 2, 0,147, 10, 7, 0,252, 2, 7, 0,148, 10, 7, 0,149, 10, 2, 0,110, 1, 0, 0,150, 10, 0, 0,151, 10, 4, 0,152, 10,
- 4, 0,153, 10,157, 1, 9, 0, 7, 0,154, 10, 7, 0,155, 10, 7, 0,149, 9, 7, 0, 94, 3, 7, 0,156, 10, 7, 0,218, 6,
- 2, 0, 92, 3, 0, 0,157, 10, 0, 0, 27, 0,158, 1, 4, 0, 7, 0,158, 10, 7, 0,159, 10, 2, 0, 92, 3, 2, 0, 27, 0,
-159, 1, 3, 0, 7, 0,160, 10, 7, 0,212, 8, 7, 0, 14, 0,160, 1, 4, 0, 0, 0, 35, 0,204, 0, 80, 5, 4, 0,130, 0,
- 4, 0,132, 4,161, 1, 6, 0, 0, 0,161, 10,204, 0,162, 10, 4, 0,130, 0, 4, 0,132, 4, 4, 0,163, 10, 4, 0, 27, 0,
-162, 1, 4, 0, 2, 0,164, 10, 2, 0,165, 10, 4, 0, 30, 0,204, 0,162, 10,163, 1, 9, 0, 7, 0,166, 10, 7, 0,167, 10,
- 7, 0,168, 10, 7, 0, 93, 2, 7, 0,169, 10, 7, 0,170, 10, 7, 0,171, 10, 2, 0,172, 10, 2, 0,173, 10,164, 1, 8, 0,
- 2, 0,174, 10, 2, 0,175, 10, 2, 0,176, 10, 2, 0,177, 10, 7, 0,178, 10, 7, 0,179, 10, 7, 0,180, 10, 7, 0,181, 10,
-165, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,166, 1, 2, 0, 0, 0,171, 0, 0, 0,182, 10,167, 1, 1, 0, 0, 0, 19, 0,
-168, 1, 12, 0, 0, 0,183, 10, 0, 0,184, 10, 0, 0,209, 6, 0, 0,185, 10, 2, 0,144, 10, 2, 0,186, 10, 7, 0,187, 10,
- 7, 0,188, 10, 7, 0,189, 10, 7, 0,148, 3, 7, 0,190, 10, 7, 0,191, 10,169, 1, 2, 0, 11, 0,192, 10, 11, 0,193, 10,
-170, 1, 13, 0, 0, 0, 72, 5, 0, 0, 16, 0, 0, 0, 92, 3, 0, 0, 94, 3, 0, 0,184, 10, 0, 0,109, 0, 0, 0,181, 2,
- 7, 0,194, 10, 7, 0,195, 10, 7, 0,147, 3, 7, 0,196, 10, 7, 0,197, 10, 7, 0,191, 10,171, 1, 8, 0, 7, 0, 47, 9,
- 7, 0,129, 0, 7, 0,151, 10, 7, 0,172, 2, 7, 0,198, 10, 7, 0,241, 0, 7, 0,199, 10, 4, 0, 16, 0,172, 1, 4, 0,
- 2, 0,200, 10, 2, 0,201, 10, 2, 0,202, 10, 2, 0, 27, 0,173, 1, 8, 0, 7, 0,203, 10, 7, 0,220, 2, 7, 0,204, 10,
- 7, 0,190, 8, 7, 0,191, 8, 7, 0,192, 8, 7, 0,205, 10, 7, 0,206, 10,174, 1, 6, 0, 2, 0,207, 10, 2, 0,208, 10,
- 7, 0,209, 10, 7, 0,210, 10, 7, 0,211, 10, 7, 0,212, 10,175, 1, 2, 0, 58, 0,213, 10, 59, 0,214, 10,176, 1, 3, 0,
-175, 1, 79, 6, 7, 0,215, 10, 7, 0,216, 10,177, 1, 3, 0,175, 1, 79, 6, 4, 0,217, 10, 4, 0, 27, 0,178, 1, 1, 0,
-175, 1, 79, 6,179, 1, 3, 0,175, 1, 79, 6, 4, 0,217, 10, 4, 0,218, 10,180, 1, 3, 0,175, 1, 79, 6, 4, 0,219, 10,
- 4, 0, 27, 0,181, 1, 1, 0,175, 1, 79, 6,182, 1, 3, 0,175, 1, 79, 6, 4, 0,220, 10, 4, 0, 27, 0,183, 1, 3, 0,
-175, 1, 79, 6, 4, 0,221, 10, 4, 0, 27, 0,184, 1, 3, 0,175, 1, 79, 6, 4, 0,222, 10, 4, 0, 27, 0,185, 1, 3, 0,
-175, 1, 79, 6, 4, 0,251, 0, 4, 0, 27, 0,186, 1, 1, 0, 0, 0, 19, 0,187, 1, 1, 0, 0, 0, 19, 0,188, 1, 4, 0,
- 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 18, 0, 2, 0,223, 10,189, 1, 10, 0, 2, 0, 62, 4, 2, 0, 18, 0, 7, 0,217, 4,
- 7, 0,224, 10, 7, 0,225, 10, 7, 0,226, 10, 7, 0,227, 10,188, 1,228, 10,188, 1,229, 10,188, 1,230, 10, 54, 0, 11, 0,
- 4, 0, 18, 0, 4, 0, 63, 0, 4, 0,231, 10, 4, 0,232, 10, 19, 0,233, 10, 19, 0,234, 10,189, 1,235, 10, 7, 0,236, 10,
- 7, 0,237, 10, 7, 0,238, 10, 7, 0,239, 10, 0, 1, 10, 0, 4, 0,253, 9, 4, 0,240, 10, 7, 0,241, 10, 7, 0,242, 10,
- 7, 0,243, 10, 7, 0,244, 10, 7, 0, 9, 0, 7, 0, 11, 0, 4, 0, 88, 1, 4, 0, 1, 3,255, 0, 18, 0, 4, 0,133, 0,
- 4, 0,245, 10, 4, 0,246, 10, 7, 0,247, 10, 4, 0,248, 10, 7, 0,249, 10, 7, 0,250, 10, 4, 0,251, 10, 7, 0,252, 10,
- 4, 0,253, 10, 7, 0,254, 10, 0, 1,255, 10, 7, 0, 0, 11, 7, 0, 1, 11, 7, 0, 2, 11, 7, 0, 3, 11, 4, 0, 4, 11,
- 4, 0, 27, 0,190, 1, 4, 0, 42, 0,244, 2, 7, 0, 5, 11, 7, 0,179, 1, 7, 0, 27, 0,213, 0, 34, 0, 22, 0, 32, 0,
-190, 1, 6, 11, 54, 0,228, 10, 46, 0, 7, 11, 52, 0, 8, 11, 25, 0,155, 0, 0, 0, 9, 11, 7, 0, 10, 11, 2, 0,109, 6,
- 2, 0, 11, 11, 4, 0,109, 0, 4, 0, 18, 0, 7, 0, 12, 11, 4, 0, 90, 2, 4, 0, 13, 11, 7, 0, 14, 11, 7, 0, 15, 11,
- 7, 0, 16, 11, 7, 0,179, 1, 4, 0, 17, 11, 7, 0, 18, 11, 0, 0, 19, 11, 0, 0, 20, 11, 0, 0, 21, 11, 0, 0, 22, 11,
- 7, 0, 23, 11, 7, 0, 24, 11, 7, 0, 25, 11, 7, 0, 1, 3, 7, 0, 26, 11, 4, 0, 27, 11, 7, 0,240, 5, 7, 0, 28, 11,
- 7, 0, 29, 11,191, 1, 10, 0, 4, 0, 16, 0, 4, 0,129, 0, 4, 0, 18, 0, 4, 0, 15, 4, 4, 0, 30, 11, 4, 0, 31, 11,
- 4, 0, 32, 11, 4, 0, 73, 0, 0, 0, 19, 0, 11, 0, 2, 0,192, 1, 1, 0, 0, 0, 70, 7, 95, 0, 8, 0,191, 1, 33, 11,
- 4, 0, 34, 11, 4, 0, 35, 11, 4, 0, 36, 11, 4, 0, 37, 11, 4, 0, 30, 0, 11, 0, 38, 11,192, 1, 39, 11,193, 1, 5, 0,
- 7, 0,165, 2, 7, 0,240, 2, 7, 0, 40, 2, 2, 0,147, 2, 2, 0, 27, 0,194, 1, 5, 0, 7, 0,165, 2, 7, 0,159, 4,
- 7, 0, 40, 11, 7, 0, 41, 11, 7, 0,240, 2,195, 1, 5, 0, 27, 0, 42, 11,196, 1, 21, 0, 7, 0, 75, 6, 7, 0, 43, 11,
- 7, 0, 56, 0,197, 1, 3, 0, 7, 0, 44, 11, 4, 0, 45, 11, 4, 0, 46, 11,198, 1, 7, 0, 4, 0, 47, 11, 4, 0, 48, 11,
- 4, 0, 49, 11, 7, 0, 50, 11, 7, 0, 51, 11, 7, 0, 52, 11, 7, 0, 56, 0,199, 1, 8, 0,199, 1, 0, 0,199, 1, 1, 0,
- 27, 0, 44, 0, 4, 0, 4, 1, 2, 0, 18, 0, 2, 0, 88, 1, 7, 0,240, 2, 7, 0, 55, 9,200, 1, 7, 0,200, 1, 0, 0,
-200, 1, 1, 0, 27, 0, 44, 0, 2, 0,225, 2, 2, 0, 18, 0, 2, 0, 14, 2, 2, 0, 56, 0,201, 1, 17, 0,194, 1, 8, 4,
-194, 1, 53, 11,193, 1, 54, 11,194, 1, 38, 9,195, 1, 55, 11, 4, 0, 82, 0, 7, 0,240, 2, 7, 0, 7, 3, 7, 0, 56, 11,
- 4, 0, 47, 11, 4, 0, 57, 11, 7, 0, 51, 11, 7, 0, 52, 11, 7, 0,109, 0, 4, 0, 58, 11, 2, 0, 18, 0, 2, 0, 59, 11,
-202, 1, 15, 0, 7, 0, 0, 1, 7, 0, 60, 11, 7, 0, 44, 11, 7, 0, 61, 11, 7, 0, 62, 11, 7, 0, 63, 11, 7, 0, 64, 11,
- 7, 0, 65, 11, 7, 0, 66, 11, 7, 0, 67, 11, 7, 0, 68, 11, 7, 0, 69, 11, 7, 0, 70, 11, 4, 0, 18, 0, 4, 0, 71, 11,
-203, 1,128, 0, 22, 0, 32, 0, 34, 0, 75, 0,204, 1, 72, 11,202, 1, 73, 11,187, 0,154, 4, 4, 0, 18, 0, 4, 0, 56, 0,
- 2, 0, 16, 0, 2, 0, 57, 10, 2, 0, 74, 11, 2, 0,123, 1, 2, 0, 75, 11, 2, 0,232, 3, 2, 0, 76, 11, 2, 0, 77, 11,
- 2, 0, 78, 11, 2, 0, 79, 11, 2, 0, 80, 11, 2, 0, 81, 11, 2, 0, 82, 11, 2, 0, 83, 11, 2, 0, 84, 11, 2, 0,224, 5,
- 2, 0, 85, 11, 2, 0, 86, 11, 2, 0, 87, 11, 2, 0, 88, 11, 2, 0, 89, 11, 2, 0, 29, 2, 2, 0, 31, 9, 2, 0, 6, 9,
- 2, 0, 90, 11, 2, 0, 91, 11, 2, 0, 25, 4, 2, 0, 26, 4, 2, 0, 92, 11, 2, 0, 93, 11, 2, 0, 94, 11, 2, 0, 95, 11,
- 7, 0, 96, 11, 7, 0, 97, 11, 7, 0, 98, 11, 7, 0, 99, 11, 7, 0,100, 11, 7, 0,101, 11, 7, 0,102, 11, 2, 0,154, 5,
- 2, 0,103, 11, 7, 0,104, 11, 7, 0,105, 11, 7, 0,106, 11, 7, 0, 13, 9, 7, 0, 91, 0, 7, 0, 7, 3, 7, 0, 19, 9,
- 7, 0,107, 11, 7, 0,108, 11, 7, 0,109, 11, 7, 0,110, 11, 7, 0,111, 11, 7, 0,112, 11, 4, 0, 14, 9, 4, 0, 12, 9,
- 4, 0,113, 11, 4, 0,114, 11, 2, 0,115, 11, 2, 0,116, 11, 7, 0, 15, 9, 7, 0, 16, 9, 7, 0, 17, 9, 7, 0,117, 11,
- 7, 0,118, 11, 7, 0,119, 11, 7, 0,120, 11, 7, 0,121, 11, 7, 0,122, 11, 7, 0,123, 11, 7, 0,124, 11, 7, 0,125, 11,
- 7, 0,222, 3, 7, 0,109, 0, 7, 0,126, 11, 7, 0,127, 11, 7, 0,128, 11, 7, 0,129, 11, 7, 0,215, 0, 7, 0,130, 11,
- 4, 0,131, 11, 4, 0,132, 11, 7, 0,133, 11, 7, 0,134, 11, 7, 0,135, 11, 7, 0,136, 11, 7, 0,137, 11, 7, 0,214, 0,
- 7, 0,138, 11, 7, 0, 52, 4, 7, 0, 50, 4, 7, 0, 51, 4, 7, 0,139, 11, 7, 0,140, 11, 7, 0,141, 11, 7, 0,142, 11,
- 7, 0,143, 11, 7, 0,144, 11, 7, 0,145, 11, 7, 0,146, 11, 7, 0,147, 11, 7, 0,148, 11, 7, 0,149, 11, 7, 0,150, 11,
- 7, 0,151, 11, 7, 0,152, 11, 7, 0,153, 11, 7, 0,154, 11, 7, 0,155, 11, 7, 0,156, 11, 4, 0,157, 11, 4, 0,158, 11,
- 46, 0,141, 1, 64, 0, 0, 4, 14, 0,159, 11, 64, 0,160, 11, 27, 0,161, 11, 27, 0,162, 11, 31, 0, 80, 0,182, 0, 74, 1,
-182, 0,163, 11,150, 0, 52, 0,150, 0, 0, 0,150, 0, 1, 0,203, 1,164, 11,201, 1,165, 11,198, 1,216, 9,190, 0, 80, 4,
- 11, 0, 81, 4,205, 1,166, 11,205, 1,167, 11, 14, 0,168, 11, 14, 0,169, 11,135, 0,170, 11,143, 0,171, 11,143, 0,172, 11,
- 27, 0,173, 11, 27, 0,174, 11, 27, 0, 38, 0, 14, 0, 24, 10, 0, 0, 19, 0, 7, 0,245, 0, 7, 0, 36, 3, 7, 0,175, 11,
- 7, 0,176, 11, 4, 0,214, 2, 4, 0,177, 11, 4, 0, 18, 0, 4, 0, 14, 9, 4, 0,178, 11, 4, 0,179, 11, 4, 0,180, 11,
- 4, 0,181, 11, 2, 0,252, 0, 2, 0,182, 11, 2, 0,183, 11, 2, 0,184, 11, 0, 0,185, 11, 2, 0,186, 11, 2, 0,187, 11,
- 2, 0,188, 11, 11, 0,189, 11,139, 0,153, 4, 14, 0, 21, 3, 14, 0,190, 11,197, 1,191, 11, 4, 0,192, 11, 4, 0,193, 11,
-206, 1,194, 11,141, 0, 33, 3,207, 1,195, 11, 7, 0,196, 11, 7, 0,197, 11, 7, 0,198, 11,137, 0, 38, 0,208, 1,150, 9,
- 7, 0,123, 4, 7, 0,199, 11, 7, 0,200, 11, 7, 0, 75, 6, 7, 0,236, 3, 7, 0,222, 3, 7, 0,201, 11, 7, 0, 92, 2,
- 7, 0,202, 11, 7, 0,203, 11, 7, 0,204, 11, 7, 0,205, 11, 7, 0,206, 11, 7, 0,207, 11, 7, 0,124, 4, 7, 0,208, 11,
- 7, 0,209, 11, 7, 0,210, 11, 7, 0,125, 4, 7, 0,121, 4, 7, 0,122, 4, 7, 0,211, 11, 7, 0,212, 11, 7, 0,213, 11,
- 4, 0,214, 11, 4, 0, 93, 0, 4, 0,215, 11, 4, 0,216, 11, 2, 0,217, 11, 2, 0,218, 11, 2, 0,219, 11, 2, 0,220, 11,
- 2, 0,221, 11, 2, 0,222, 11, 2, 0,223, 11, 2, 0, 27, 0,187, 0,154, 4,138, 0, 11, 0,208, 1,224, 11, 7, 0,225, 11,
- 7, 0,226, 11, 7, 0,251, 1, 7, 0,227, 11, 7, 0,228, 11, 7, 0,229, 11, 4, 0, 93, 0, 2, 0,230, 11, 2, 0,231, 11,
- 64, 0,250, 1,209, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0,232, 11,210, 1, 6, 0,210, 1, 0, 0,
-210, 1, 1, 0,209, 1,192, 9, 4, 0, 2, 1, 2, 0,233, 11, 2, 0, 18, 0,211, 1, 5, 0,211, 1, 0, 0,211, 1, 1, 0,
- 14, 0,234, 11, 4, 0,235, 11, 4, 0, 18, 0,212, 1, 9, 0,212, 1, 0, 0,212, 1, 1, 0, 14, 0,128, 0,211, 1,236, 11,
- 4, 0, 18, 0, 2, 0,233, 11, 2, 0,237, 11, 7, 0, 94, 0, 0, 0,238, 11,178, 0, 6, 0, 22, 0, 32, 0, 14, 0,123, 5,
- 4, 0, 18, 0, 2, 0,239, 11, 2, 0,240, 11, 11, 0,241, 11,213, 1, 6, 0, 14, 0,242, 11, 4, 0,243, 11, 4, 0,244, 11,
- 4, 0, 18, 0, 4, 0, 27, 0,237, 0,245, 11,214, 1, 19, 0, 22, 0, 32, 0,215, 1,246, 11,215, 1,247, 11, 14, 0,248, 11,
- 4, 0,249, 11, 2, 0,250, 11, 2, 0,251, 11, 14, 0,252, 11, 14, 0,253, 11,213, 1,254, 11, 14, 0,255, 11, 14, 0, 0, 12,
- 14, 0, 1, 12, 14, 0, 2, 12,216, 1, 3, 12,216, 1, 4, 12,216, 1, 5, 12, 14, 0, 6, 12,237, 0, 7, 12,215, 1, 32, 0,
-215, 1, 0, 0,215, 1, 1, 0, 11, 0, 8, 12, 4, 0,119, 8, 2, 0, 9, 12, 2, 0, 27, 0, 27, 1, 10, 12, 27, 1, 11, 12,
- 0, 0, 12, 12, 2, 0, 13, 12, 2, 0, 14, 12, 2, 0,141, 8, 2, 0,142, 8, 2, 0, 15, 12, 2, 0, 16, 12, 2, 0, 15, 4,
- 2, 0, 53, 7, 2, 0, 17, 12, 2, 0, 18, 12, 2, 0, 19, 12, 2, 0, 30, 0,217, 1, 20, 12,218, 1, 21, 12,219, 1, 22, 12,
- 4, 0, 23, 12, 4, 0, 24, 12, 11, 0, 25, 12, 14, 0,253, 11, 14, 0,160, 8, 14, 0, 26, 12, 14, 0, 27, 12, 14, 0, 28, 12,
-220, 1, 17, 0,220, 1, 0, 0,220, 1, 1, 0, 0, 0, 29, 12, 21, 0, 31, 0, 2, 0, 30, 12, 2, 0, 16, 0, 2, 0, 14, 0,
- 2, 0, 31, 12, 2, 0, 32, 12, 2, 0, 33, 12, 2, 0, 34, 12, 2, 0, 35, 12, 2, 0, 18, 0, 2, 0, 36, 12, 2, 0, 32, 0,
- 2, 0, 27, 0,221, 1, 37, 12,222, 1, 4, 0,222, 1, 0, 0,222, 1, 1, 0,220, 1, 38, 12,220, 1, 39, 12,223, 1, 11, 0,
-223, 1, 0, 0,223, 1, 1, 0, 14, 0, 40, 12, 14, 0, 41, 12, 0, 0, 29, 12, 2, 0, 42, 12, 2, 0, 43, 12, 2, 0, 18, 0,
- 2, 0, 44, 12, 4, 0, 45, 12, 11, 0, 46, 12,216, 1, 7, 0,216, 1, 0, 0,216, 1, 1, 0, 0, 0, 29, 12, 0, 0, 47, 12,
- 14, 0, 59, 8, 4, 0, 48, 12, 4, 0, 18, 0,249, 0, 14, 0,249, 0, 0, 0,249, 0, 1, 0, 0, 0, 29, 12, 21, 0, 31, 0,
-224, 1,135, 8, 11, 0, 49, 12, 11, 0, 50, 12,221, 1, 37, 12,213, 1, 51, 12, 14, 0, 52, 12,249, 0, 53, 12, 32, 1,239, 6,
- 2, 0, 18, 0, 2, 0, 87, 1,225, 1, 12, 0,225, 1, 0, 0,225, 1, 1, 0, 11, 0, 2, 0, 11, 0, 54, 12, 0, 0, 19, 0,
- 2, 0, 16, 0, 2, 0, 18, 0, 7, 0,138, 9, 7, 0,130, 0, 7, 0,132, 4, 7, 0, 88, 9, 7, 0, 80, 10,226, 1, 5, 0,
- 7, 0, 55, 12, 4, 0, 56, 12, 4, 0, 57, 12, 4, 0, 88, 1, 4, 0, 18, 0,227, 1, 6, 0, 7, 0, 58, 12, 7, 0, 59, 12,
- 7, 0, 60, 12, 7, 0, 61, 12, 4, 0, 16, 0, 4, 0, 18, 0,228, 1, 5, 0, 7, 0,116, 9, 7, 0,117, 9, 7, 0,240, 2,
- 2, 0, 43, 2, 2, 0, 44, 2,229, 1, 5, 0,228, 1, 2, 0, 4, 0, 53, 0, 7, 0, 62, 12, 7, 0,116, 9, 7, 0,117, 9,
-230, 1, 4, 0, 2, 0, 63, 12, 2, 0, 64, 12, 2, 0, 65, 12, 2, 0, 66, 12,231, 1, 2, 0, 37, 0, 37, 7, 21, 0,156, 9,
-232, 1, 3, 0, 19, 0, 67, 12, 4, 0, 18, 0, 4, 0, 27, 0,233, 1, 6, 0, 7, 0,109, 0, 7, 0,209, 2, 7, 0, 68, 12,
- 7, 0, 27, 0, 2, 0,251, 0, 2, 0, 69, 12,234, 1, 5, 0, 7, 0, 70, 12, 7, 0,129, 0, 7, 0,193, 9, 7, 0,194, 9,
- 4, 0, 18, 0,235, 1, 6, 0, 22, 0, 42, 7, 0, 0, 71, 12, 0, 0, 72, 12, 2, 0, 73, 12, 2, 0, 18, 0, 4, 0, 74, 12,
-236, 1, 7, 0,236, 1, 0, 0,236, 1, 1, 0, 0, 0, 19, 0,235, 1, 75, 12, 2, 0, 76, 12, 2, 0, 16, 0, 7, 0, 60, 0,
-237, 1, 7, 0, 14, 0, 77, 12, 0, 0, 78, 12, 11, 0, 79, 12, 7, 0, 60, 0, 7, 0,138, 9, 4, 0, 16, 0, 4, 0, 18, 0,
-238, 1, 3, 0, 7, 0, 80, 12, 4, 0, 18, 0, 4, 0, 27, 0,239, 1, 15, 0,239, 1, 0, 0,239, 1, 1, 0,106, 1, 11, 10,
-237, 1, 61, 0, 14, 0,188, 3, 30, 0, 49, 0,238, 1, 81, 12, 4, 0, 53, 0, 7, 0, 60, 0, 2, 0, 18, 0, 2, 0, 23, 1,
- 4, 0, 82, 12, 0, 0, 71, 12, 4, 0, 83, 12, 7, 0, 84, 12,240, 1, 2, 0, 0, 0, 85, 12, 0, 0, 86, 12,241, 1, 4, 0,
-241, 1, 0, 0,241, 1, 1, 0,176, 0, 70, 3, 14, 0, 87, 12,242, 1, 25, 0,242, 1, 0, 0,242, 1, 1, 0, 14, 0, 88, 12,
-176, 0, 86, 9,241, 1, 89, 12, 14, 0, 90, 12, 14, 0,188, 3, 0, 0, 19, 0, 7, 0,138, 9, 7, 0, 91, 12, 7, 0, 90, 0,
- 7, 0, 91, 0, 7, 0, 76, 10, 7, 0, 77, 10, 7, 0,253, 2, 7, 0,148, 3, 7, 0, 88, 9, 7, 0, 80, 10, 2, 0, 92, 12,
- 2, 0, 93, 12, 2, 0, 92, 0, 2, 0, 16, 0, 11, 0, 94, 12, 4, 0, 18, 0, 4, 0, 30, 0,243, 1, 6, 0,243, 1, 0, 0,
-243, 1, 1, 0, 14, 0, 88, 12, 4, 0, 18, 0, 4, 0, 14, 2, 0, 0, 19, 0,244, 1, 11, 0,244, 1, 0, 0,244, 1, 1, 0,
- 22, 0, 42, 7, 0, 0, 95, 12, 4, 0, 74, 12, 2, 0, 96, 12, 2, 0, 27, 0, 0, 0, 71, 12, 4, 0, 82, 12, 2, 0, 18, 0,
- 2, 0, 97, 12,245, 1, 10, 0,245, 1, 0, 0,245, 1, 1, 0, 14, 0, 98, 12, 0, 0, 29, 12, 0, 0, 19, 0, 0, 0, 99, 12,
- 0, 0,100, 12, 2, 0, 18, 0, 2, 0, 97, 12, 4, 0,101, 12,246, 1, 5, 0,246, 1, 0, 0,246, 1, 1, 0, 0, 0, 71, 12,
- 4, 0, 82, 12, 7, 0,230, 2, 34, 0, 12, 0,176, 0,179, 3,176, 0,102, 12,241, 1, 89, 12, 14, 0,103, 12,242, 1,104, 12,
- 14, 0,105, 12, 14, 0,106, 12, 4, 0, 18, 0, 4, 0,252, 0, 2, 0,107, 12, 2, 0,108, 12, 7, 0,109, 12,247, 1, 2, 0,
- 22, 0, 32, 0, 34, 0, 75, 0,248, 1, 5, 0,248, 1, 0, 0,248, 1, 1, 0, 4, 0, 16, 0, 4, 0, 18, 0, 0, 0,172, 5,
-249, 1, 6, 0,248, 1,110, 12, 27, 0, 44, 0, 4, 0,111, 12, 7, 0,112, 12, 4, 0,113, 12, 4, 0,253, 9,250, 1, 3, 0,
-248, 1,110, 12, 4, 0,111, 12, 7, 0,114, 12,251, 1, 8, 0,248, 1,110, 12, 27, 0, 44, 0, 7, 0, 78, 1, 7, 0,115, 12,
- 7, 0, 36, 3, 7, 0,149, 9, 4, 0,111, 12, 4, 0,116, 12,252, 1, 5, 0,248, 1,110, 12, 7, 0,117, 12, 7, 0,176, 2,
- 7, 0, 3, 3, 7, 0, 56, 0,253, 1, 3, 0,248, 1,110, 12, 7, 0,149, 9, 7, 0,118, 12,196, 1, 4, 0, 7, 0,119, 12,
- 7, 0,127, 11, 2, 0,120, 12, 2, 0, 88, 1,254, 1, 14, 0,254, 1, 0, 0,254, 1, 1, 0, 14, 0,121, 12, 14, 0,122, 12,
- 14, 0,123, 12, 0, 0,172, 5, 4, 0, 32, 0, 4, 0, 18, 0, 4, 0,124, 12, 7, 0,125, 12, 4, 0,113, 12, 4, 0,253, 9,
- 7, 0, 84, 4, 7, 0, 5, 3,204, 1, 23, 0, 4, 0,111, 12, 4, 0,126, 12, 7, 0,127, 12, 7, 0, 1, 3, 7, 0,128, 12,
- 7, 0,229, 8, 7, 0,119, 12, 7, 0,129, 12, 7, 0,209, 2, 7, 0,247, 10, 7, 0,217, 4, 7, 0,130, 12, 7, 0,131, 12,
- 7, 0,132, 12, 7, 0,133, 12, 7, 0,134, 12, 7, 0,135, 12, 7, 0,136, 12, 7, 0,137, 12, 7, 0,138, 12, 7, 0,139, 12,
- 7, 0,140, 12, 14, 0,141, 12,123, 0, 40, 0,122, 0,142, 12,255, 1, 73, 11, 64, 0,143, 12, 64, 0,160, 11, 64, 0,144, 12,
- 0, 2,145, 12, 43, 0,170, 0, 43, 0,146, 12, 43, 0,147, 12, 7, 0,148, 12, 7, 0,149, 12, 7, 0,150, 12, 7, 0,151, 12,
- 7, 0,152, 12, 7, 0,118, 8, 7, 0,153, 12, 7, 0,179, 1, 7, 0,154, 12, 4, 0,155, 12, 4, 0,156, 12, 4, 0,157, 12,
- 4, 0, 93, 0, 4, 0, 27, 0, 4, 0,158, 12, 2, 0,159, 12, 2, 0,160, 12, 4, 0,161, 12, 7, 0,209, 2, 4, 0,162, 12,
- 7, 0,163, 12, 4, 0,164, 12, 4, 0,165, 12, 4, 0,166, 12,139, 0,167, 12, 14, 0,168, 12,187, 0,154, 4, 4, 0,169, 12,
- 7, 0,170, 12, 7, 0,171, 12, 4, 0, 30, 0,124, 0, 12, 0,122, 0,142, 12,150, 0, 56, 3, 7, 0,144, 1, 7, 0,118, 8,
- 7, 0,172, 12, 7, 0,173, 12, 7, 0,174, 12, 2, 0,175, 12, 2, 0,176, 12, 2, 0,177, 12, 2, 0, 16, 0, 4, 0, 93, 0,
-125, 0, 13, 0,122, 0,142, 12,141, 0, 33, 3,143, 0, 35, 3, 7, 0,192, 9, 7, 0,178, 12, 7, 0,179, 12, 7, 0, 80, 1,
- 7, 0,180, 12, 4, 0, 33, 10, 4, 0, 29, 3, 2, 0, 16, 0, 2, 0, 27, 0, 4, 0, 30, 0, 1, 2, 15, 0, 22, 0, 32, 0,
- 34, 0, 75, 0, 46, 1,227, 8, 7, 0,181, 12, 7, 0,182, 12, 7, 0,183, 12, 7, 0,184, 12, 7, 0,148, 9, 7, 0,185, 12,
- 7, 0,186, 12, 7, 0,187, 12, 7, 0, 84, 4, 7, 0,229, 8, 2, 0, 18, 0, 2, 0,112, 9,231, 0, 3, 0, 4, 0,127, 0,
- 2, 0,215, 6, 2, 0,188, 12, 2, 2, 5, 0, 0, 0,193, 8, 2, 0,194, 8, 2, 0, 72, 5, 2, 0,189, 12, 2, 0,190, 12,
-229, 0, 16, 0, 22, 0, 32, 0, 34, 0, 75, 0, 0, 0, 35, 0, 4, 0,144, 0, 4, 0,145, 0, 4, 0,191, 12, 7, 0,163, 0,
- 7, 0,164, 0, 44, 0,139, 0, 3, 2,150, 9,178, 0,182, 3, 4, 2,192, 12, 11, 0,193, 12, 2, 2,194, 12, 4, 0, 18, 0,
- 4, 0, 22, 0, 13, 1, 10, 0, 4, 0,133, 0, 4, 0,195, 12, 52, 0,196, 12, 7, 0,197, 12, 2, 0,198, 12, 0, 0,181, 2,
- 4, 0,127, 0, 5, 2,175, 3, 6, 2,199, 12, 7, 0,200, 12, 7, 2, 3, 0, 4, 0,127, 0, 7, 0,201, 12, 7, 0, 80, 1,
- 8, 2, 11, 0, 11, 0,202, 12, 7, 0,203, 12, 7, 0,204, 12, 7, 0, 27, 0, 7, 0,205, 12, 2, 0,206, 12, 2, 0, 92, 0,
- 7, 0,207, 12, 7, 0,208, 12, 7, 0,209, 12, 7, 0,210, 12, 6, 2, 3, 0, 7, 0,211, 12, 4, 0,127, 0, 4, 0, 18, 0,
- 5, 2, 24, 0, 5, 2, 0, 0, 5, 2, 1, 0, 0, 0, 19, 0, 7, 0,212, 12, 7, 0,213, 12, 7, 0,214, 12, 7, 0,215, 12,
- 7, 0, 5, 11, 4, 0,216, 12, 4, 0,217, 12, 6, 2,218, 12, 7, 0,219, 12, 7, 0,201, 12, 4, 0, 18, 0, 4, 0,220, 12,
- 4, 0,221, 12, 7, 0, 84, 12, 2, 0,222, 12, 2, 0,227, 3, 2, 0,223, 12, 2, 0,224, 12, 2, 0,225, 12, 2, 0, 30, 0,
- 7, 0,226, 12, 9, 2, 22, 0, 4, 0, 18, 0, 2, 0,227, 12, 2, 0,228, 12, 7, 0,229, 12, 2, 0,230, 12, 2, 0,231, 12,
- 2, 0,232, 12, 2, 0,233, 12, 2, 0,234, 12, 2, 0,235, 12, 2, 0,236, 12, 2, 0, 3, 3, 4, 0,237, 12, 4, 0,238, 12,
- 2, 0,239, 12, 2, 0,240, 12, 7, 0, 95, 1, 4, 0,241, 12, 4, 0,242, 12, 7, 0,243, 12, 7, 0,244, 12, 4, 0, 74, 0,
- 10, 2, 12, 0, 4, 0, 18, 0, 4, 0,245, 12, 4, 0,246, 12, 7, 0,247, 12, 5, 2,248, 12, 7, 0,249, 12, 7, 0,250, 12,
- 7, 0,251, 12, 4, 0,191, 1, 4, 0,133, 0, 7, 0,148, 3, 52, 0,252, 12, 11, 2, 5, 0, 4, 0, 18, 0, 7, 0,201, 12,
- 4, 0,253, 12, 4, 0,254, 12, 7, 2,255, 12, 12, 2, 7, 0, 12, 2, 0, 0, 12, 2, 1, 0, 0, 0, 19, 0, 4, 0, 18, 0,
- 7, 0,148, 3, 14, 0, 0, 13, 11, 2, 1, 13, 13, 2, 1, 0, 0, 0, 2, 13, 4, 2, 10, 0, 9, 2, 3, 13, 8, 2, 4, 13,
- 14, 0, 0, 13, 11, 2, 1, 13, 10, 2, 5, 13, 5, 2, 6, 13, 14, 0, 7, 13, 4, 0, 8, 13, 4, 0, 9, 13, 13, 2, 90, 6,
- 14, 2, 48, 0, 14, 2, 0, 0, 14, 2, 1, 0,169, 0,145, 3, 15, 2, 2, 0, 64, 0, 10, 13,187, 0,154, 4,139, 0,153, 4,
- 14, 0, 21, 3, 4, 0, 11, 13, 0, 0, 19, 0, 2, 0,162, 10, 2, 0, 16, 0, 2, 0, 12, 13, 2, 0, 13, 13, 2, 0, 14, 13,
- 2, 0, 15, 13, 2, 0, 16, 13, 2, 0, 17, 13, 4, 0, 93, 0, 4, 0,186, 3, 4, 0, 18, 13, 4, 0, 19, 13, 4, 0,193, 9,
- 4, 0,194, 9, 4, 0, 27, 0, 7, 0, 20, 13, 47, 0, 21, 13, 0, 0, 22, 13, 4, 0, 23, 13, 4, 0,161, 12, 7, 0, 24, 13,
- 7, 0, 25, 13, 7, 0, 26, 13, 7, 0, 27, 13, 7, 0, 28, 13, 7, 0, 29, 13, 7, 0, 30, 13, 7, 0, 31, 13, 7, 0, 32, 13,
- 7, 0, 33, 13, 7, 0, 34, 13, 7, 0, 35, 13, 7, 0, 36, 13, 7, 0, 37, 13, 0, 0,202, 2, 0, 0, 38, 13, 0, 0, 39, 13,
- 0, 0, 40, 13,169, 0, 7, 0,168, 0, 41, 13,143, 0, 35, 3, 14, 0, 42, 13, 2, 0, 43, 13, 2, 0, 93, 0, 4, 0, 27, 0,
- 0, 0, 44, 13,170, 0, 24, 0,168, 0, 41, 13,143, 0, 35, 3,150, 0, 56, 3, 63, 0, 26, 2, 4, 0, 93, 0, 4, 0, 45, 13,
- 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0, 7, 0,179, 1, 7, 0, 46, 13, 7, 0, 47, 13, 7, 0, 48, 13, 7, 0, 49, 13,
- 50, 0, 50, 13, 50, 0, 51, 13, 2, 0, 52, 13, 2, 0,222, 10, 2, 0, 53, 13, 2, 0, 27, 0, 7, 0, 54, 13, 7, 0, 55, 13,
- 7, 0, 56, 13, 7, 0, 57, 13, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0};
-
diff --git a/source/blender/editors/datafiles/prvicons.c b/source/blender/editors/datafiles/prvicons.c
deleted file mode 100644
index 0991ffe535d..00000000000
--- a/source/blender/editors/datafiles/prvicons.c
+++ /dev/null
@@ -1,393 +0,0 @@
-/** \file blender/editors/datafiles/prvicons.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <prvicons> */
-
-int datatoc_prvicons_size= 12311;
-char datatoc_prvicons[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0,192, 0, 0, 0,
-192, 8, 6, 0, 0, 0, 82,220,108, 7, 0, 0, 0, 1,115, 82, 71, 66, 0,174,206, 28,233, 0, 0, 0, 6, 98, 75, 71, 68, 0,
-255, 0,255, 0,255,160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0,
- 0, 7,116, 73, 77, 69, 7,218, 12, 7, 13, 58, 45, 79,248, 81, 14, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,125,121,120, 20,
- 85,214,254, 91, 85,221, 85,189,164,179, 67, 2, 1, 18, 6, 8, 24, 48,136, 40, 66, 8, 97, 85, 1, 5,183, 25,151, 31,200, 51,
- 58,126,124,226,140,142, 27,155, 32, 70,103, 20, 89, 29, 69,113, 25, 20, 68,249, 92,113, 16,253,252, 84, 28, 29, 81, 2, 36, 49,
-128, 96, 8,132, 64, 18, 18, 32,152,173,151,116,122,171,170,223, 31, 73, 53,213,157,222,183, 4,185,111,158,122, 82,221,213, 93,
-125,234,214,123,206, 61,231,220, 83,247, 82,162, 40,130,128,224, 82, 5, 77,154,128,128, 40, 0, 1, 1, 81, 0, 2, 2,162, 0,
- 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128,128, 40, 0, 1, 1, 81, 0, 2, 2,162,
- 0, 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128,128, 40, 0, 1, 1, 81, 0, 2, 2,
-162, 0, 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128,128, 40, 0, 1, 1, 81, 0, 2,
- 2,162, 0, 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128,128, 40, 0, 1, 1, 81, 0,
- 2, 2,162, 0, 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128,128, 40, 0, 1, 1, 81,
- 0, 2, 2,162, 0, 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128, 64, 14,197,165,116,
-177, 99,198,140, 73, 23, 4, 97, 23,128, 17,209,250, 13,150,101, 27,138,138,138,210,163,113,238, 33, 67,134,112, 73, 73, 73, 99,
-121,158,215, 69, 75,126,165, 82,105,221,183,111,223, 46,162, 0,191, 49, 2,117,202,254,221,186,117,235,216,137, 19, 39,162,180,
-180, 20, 25, 25, 25, 80,169, 84, 96, 24, 6, 20, 69,129,166, 47,116,136, 20, 69,249,220,151,191, 39,189, 54,155,205,152, 54,109,
- 90, 90,180,200,159,152,152, 56,238,249,231,159,167,167, 76,153,130,178,178, 50,100,100,100,128,101, 89, 40, 20, 29,183,145, 97,
- 24,175,223,247,117, 76,130,205,102,195,164, 73,147, 56,210, 3, 4, 65, 32,142,227,192, 48, 12,104,154,238, 66, 14,127,196,113,
-223,143, 22,129, 36,217,215,174, 93,203, 77,156, 56,113, 32, 0,148,150,150,194, 98,177, 32, 62, 62, 30, 10,133,194,121, 13,210,
-117,120,219,124, 29, 63,117,234, 20,162, 73,254, 85,171, 86,209, 83,166, 76,209, 0, 64,113,113, 49, 70,140, 24,129,196,196, 68,
-167,252,114,146, 75, 74,225, 78,126,111,239, 51, 12, 19, 53,249, 47,122, 5,240, 68,160,253,251,247, 99,196,136, 17, 72, 72, 72,
-240, 74, 32,119,178,248, 59,118,242,228,201,104,185, 61,223,173, 89,179,134,155, 52,105,210, 64,103,240, 67,211, 16, 4,193, 69,
- 1,125,145, 59, 80,197,136, 5,249,253, 89,244, 80,200, 79, 98,128, 32, 9,196, 48, 12, 68, 81,244, 74,160, 96,201, 47,237, 71,
-131,252,171, 87,175, 86, 77,158, 60, 57,203,155, 75, 16, 14,249,163, 37,187, 47,242,187,147, 89,126, 61,161,146,223,253,124, 68,
- 1,194, 32, 80,168,228,143, 36,137,228,178, 79,153, 50, 37,203,147, 79, 28, 44,193, 3, 57, 22, 11,242, 7, 66, 98, 66,254, 48,
- 21, 32, 80, 2, 73,238, 68,176,228,247,246,185, 88,144, 95,186,233, 82,208, 27, 41,242, 71, 74,126,127,228,151,218,223,155,235,
- 18, 42,249, 47, 69, 87, 72, 17, 42,129,148, 74,101,200,150, 62,154, 46,144,220,101,115,239,181,228,224, 56,206, 99, 38, 39, 24,
-127, 63, 26, 10, 16, 8,249, 37,249, 35, 73,126,210, 3, 4, 73, 32,150,101,187,100,113,194, 37,191, 60, 13, 25,110,182, 71, 30,
-175, 0,128,213,106, 69,117,117, 53,106,107,107,209,220,220, 12,149, 74,229,145,200,225, 6,194,209, 34,191,213,106,197,169, 83,
-167, 80, 91, 91,139,150,150, 22,104, 52,154, 46,100, 15,135,252,151,106, 32,172, 8,150, 64, 53, 53, 53,104,110,110,134, 90,173,
-118, 18, 34, 18,150, 63, 92,242, 0,128, 32, 8,187,214,175, 95,207, 22, 20, 20, 12, 20, 4, 1,245,245,245, 56,122,244, 40,142,
- 29, 59,134,198,198, 70,196,199,199, 35, 57, 57, 25, 9, 9, 9,208,233,116, 46,113, 64, 36, 98,129,112,145,148,148, 52,118,237,
-218,181,116, 65, 65,129,134,231,121,212,215,215,163,162,162, 2,149,149,149,104,108,108,132, 78,167, 67, 82, 82, 18, 18, 19, 19,
-161,211,233,160, 80, 40,186, 16, 63, 28,242, 95,242, 46,144, 32, 8,187, 58,243,252, 78, 2,149,151,151, 59, 9,164,211,233,144,
-156,156,140,196,196, 68,104,181, 90,151,252,127,184,228,143,144, 11, 49, 34, 39, 39, 7, 27, 55,110, 68,101,101, 37, 24,134, 65,
- 90, 90, 26, 82, 82, 82,208,183,111, 95,231,160, 17,203,178, 80,169, 84, 78, 2,249,203,255, 7,115, 44, 28,240, 60,175,203,201,
-201,193, 43,175,188,130,147, 39, 79,130, 97, 24,244,234,213, 11,169,169,169,200,205,205,133, 66,161, 0,199,113, 96, 89,214, 57,
-254,226,205,234, 19,242,135,230, 2,141, 24, 62,124, 56, 94,126,249,101, 84, 86, 86, 66,161, 80, 32, 45, 45, 13,201,201,201,184,
-252,242,203,157, 4,226, 56, 14, 42,149, 10, 74,165, 18, 10,133, 34, 98,228,143,132, 21, 53, 26,141,136,139,139, 67, 65, 65, 1,
- 18, 19, 19,157, 65,186, 60, 88, 87, 42,149, 93, 72,228,141,228,177,206, 2, 25, 12, 6,232,116, 58,228,231,231, 35, 41, 41,169,
- 11,185, 37,121, 57,142,115,202,239,169, 23, 32,228, 15, 49, 6, 48, 24, 12,208,106,181, 78, 2,185,103,122,104,154,118, 42, 1,
-199,113,206,215,193,102,123,188, 29, 11, 23, 90,173, 22,185,185,185,224,121,222, 25,155,200,255,211, 52, 13,134, 97,160, 84, 42,
-157,255, 61,245, 0,161, 6,194,225, 34, 62, 62, 30, 35, 71,142,116,202,239, 45,243,227, 78,126,226,246, 68, 72, 1, 36, 2,185,
-143,146,202, 9,164, 80, 40,156,196, 97, 89,214,133, 64,225,186, 68, 97, 95, 80,167,139, 35,138,162, 71,242, 75,191, 39,183,252,
-145,138, 5, 34, 33,191,100,221, 29, 14,135, 95,210, 70,146,252,146, 59,120,201, 43,128,100,221, 5, 65,232,114, 99, 37,162, 23,
-190,254,111,148,254, 82, 15, 94,166, 36,193,224,240,142,229, 81, 75,131,202,111,164,164, 4,242,205,125, 0, 44, 24,203, 31,139,
- 64,216, 83, 93,143,175,236,142, 39,242, 7, 18, 23,248,250,204, 37,175, 0,242, 27,224,126,147,105,154,198,115, 15,206, 64,147,
-190, 29,207,191,245, 45,202,142,214, 59,191,187,235,141, 5,208,105, 93,211,139, 45,134,118,156,168,253, 21,155,182,239,197, 79,
-229,181, 62, 83,166,145,128,220,149,138,116,138,211, 95,250, 51, 82,215, 16, 72, 86, 39, 20, 98, 19,242,119, 5,237,141, 64,146,
-117,145, 54, 41,224,149,222, 79, 79,141,199,252,223,143,115,109, 96, 15, 22, 53, 53, 41, 14,227,174,248, 29, 54,253,109, 14, 38,
-140, 30,236,115,192, 41, 18, 49, 64, 36, 71,117,131, 33,127,180,138,225, 98, 69,254, 75, 53, 22,240,170, 0,129,248,238, 3, 51,
- 82, 92, 27, 89,225,221,151, 86, 48, 12, 22,220, 89,224,243, 55, 34,133, 72,145, 63,208,244,104,180, 10,226, 8,249,187,193, 5,
-242, 22, 52,122, 82, 4,157, 86,213,165, 7,240,165, 64, 35,135,246,195, 53,185, 3,163, 74,126, 95,242, 71, 82, 49,162, 85, 7,
-228,238,215,135, 67,254, 64,227, 8,146, 5, 10,210,133,240,102,241,252, 5,149, 52, 77,227,237,149,127,140, 58,249,253,109,209,
- 80,140,104,129,144,191, 27,122, 0,247, 32, 50,208,129, 43,134, 9, 60,237, 25, 13,242,123,147, 63,218,177, 0, 33,255,111, 44,
- 6, 8,117,224,138,241,240,217,199, 86,111,143, 41,249,163,225,242,196,154,252,242, 44, 28, 33,127, 15,137, 1, 2, 25,184,162,
- 25,215, 24,192, 98,115, 96,119,105,101,204,200,239, 46,127, 52,253,253,104, 90,254, 72, 4,179,132,252, 17,140, 1, 2,173,223,
-151,210,160, 14, 94, 64, 67,163, 1,111,124,188, 7,237, 86,123,204,201, 47, 87,128,104, 5,194,177, 36, 62, 33,127, 55,198, 0,
-193,148, 48,143,188,245, 57,159,164,140, 54,249,131,201, 2,117,231, 67, 47,129,248,253,132,252,221,220, 3, 4,146, 6,117, 39,
-195,145, 79,159, 4, 69, 81,224, 5, 17, 13,141, 6,188,246,225, 15,216,254,117, 89, 76,201, 31, 72, 38,168, 59,107,125, 66, 85,
- 8, 66,254, 24, 5,193,129, 90,126, 79,132,144,142,177, 74, 5, 6,244, 77,193,138, 7,110,132,154, 83, 18,242, 19,242, 95,124,
- 10, 16, 74,253,190,251, 49,173,154,195,228,107,134,197,252,162, 8,249, 9,249, 35, 22, 4, 7,147, 6,245,244,189, 13,203,239,
-234,118,242,135,227,239, 19,242, 95,162,105,208, 80,234,247,163, 61, 75, 90, 40, 74, 16,142,213,239,206,107, 32, 15,184,119, 99,
- 15, 16,234, 35,140, 61,129,252,222, 20,152,144,159, 32,164, 24, 32, 24, 23,136,144, 63,194,214,137,144, 63,246, 10, 16, 12,249,
- 77,102,171,203,119,221, 95,119,219, 69, 93,196,228,151, 72, 77,200,223,205, 61, 64, 32,254,255,201,186, 70,151,239, 85,214,156,
-239,246, 11, 10,181,182,159, 88,126,162, 0, 30, 45,168, 55,242,215,157,107,193, 11,111,127,227,242,189,213,111,126,137, 19,181,
- 61, 79, 9, 2, 33,126, 79, 33,191, 55, 98, 19,242,199, 48, 8,246, 71,254,187, 30,223,132, 3, 71, 79,119, 57, 89,201,225,106,
- 92,127,223, 63, 48,236,119,233,216,250,252,189, 72, 73,140,235,209, 89, 32, 66,126, 2, 69, 32, 46,144,251,235, 15,214,207,239,
- 17, 1, 47, 33, 63, 65, 84,122, 0,127, 83,133,244, 84,242, 7, 18, 4,199,186, 48, 47, 18,138, 64,200,223, 13, 65,240,197, 74,
-254, 64, 31,137, 36,228, 39,240,168, 0, 23, 51,249, 3, 81, 2, 66,126,130,176, 98,128,158, 14,155,205,134, 19, 39, 78,120,244,
-243,163, 77,126,165, 82, 25,246, 57, 28, 14, 7, 42, 43, 43, 61, 42, 64,180,193,178, 44, 81, 0,187,221,142,170,170,170,110, 9,
- 22,195, 37, 16,199,113, 13, 19, 38, 76, 72,235,206, 6,229, 56,174, 33,212,239,170,213,106,107, 94, 94, 94,183,174,211,171, 86,
-171,173,151,146, 2, 80,242,149, 30,199,143, 31,127,206,106,181,118, 59,129,246,236,217,147, 14, 2,130, 88, 43, 0, 1,193, 37,
- 31, 4, 19, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128,128, 40, 0, 1,193,111, 21, 65,141,180,116,174, 35,188, 11,192,
-136,104, 9,196,178,108, 67, 81, 81, 81, 84,210,160, 68,126, 34,127,200, 10, 32, 45,162,221,185,142, 48, 74, 75, 75,209,175, 95,
- 63,112, 28,231, 92, 42,213,125,192, 44,216,253,246,246,118, 76,157, 58, 53, 45,138,141,255, 93,231, 66,218, 23,173,252, 82,251,
-151,148,148, 32, 35, 35,163,139,252,222,228,243,244,252,182,251,251, 70,163, 17, 51,102,204,184,164,218, 95, 17,140,240,107,215,
-174,229, 38, 78,156, 56, 16, 0, 74, 75, 75, 97,181, 90,145,144,144,224, 92, 58,201,223,116,232,254,142,157, 60,121, 18,209,108,
-252,181,107,215,114, 5, 5, 5, 23,173,252,107,214,172,113,182,255,254,253,251, 49,124,248,112,196,199,199,123,148, 63,148,233,
- 96, 78,157, 58,117,201,181,191, 34, 24,225, 39, 77,154, 52,208,249, 69,133, 2,242, 65,180, 64, 4,140,197, 42,139,191, 85,249,
- 87,173, 90,197, 77,158, 60,217, 41, 63,195, 48,206,165,108, 35, 53, 23, 82,180,201,223, 19,219, 95, 17,160,229, 81, 77,154, 52,
- 41,203, 37,122,238, 44, 44,115, 95,138, 52,220, 21,215,163,100, 57, 47,106,249, 87,173, 90,165,154, 58,117,106, 23,249,221, 93,
-129, 64, 31, 2,138,213,196,191, 23, 67,251,211,129, 8, 63,121,242,228,172, 46,154,211,233,183, 5,210,248,193,116,103,209,104,
-252,139, 89,126, 79,228,151,122,128, 64,229,239,142, 89,240, 46,150,246, 87,132, 34,188,252, 2, 34, 41,124,164,110,192,111, 69,
-126,111,228,247, 68,160, 72,144, 63, 82,229,226,129,180,255,206,157, 59,145,144,144, 0,149, 74, 5,133, 66,225,210,163,185, 43,
-134,167,160, 93,146,119,241,226,197,145, 85, 0, 55,159, 45,203,219, 23,149, 74,165,199,168, 61, 92, 82, 69,216,231,188,104,229,
- 95,181,106, 21,231,141,252,114,249, 61, 17, 38,148, 89, 49, 34, 21,195, 4,218,254,119,220,113, 7,250,245,235,135,248,248,120,
-176, 44, 11,165, 82,233,236,213, 98,217,254,138, 64, 2, 22, 0,176, 90,173,168,169,169, 65, 77, 77, 13, 90, 90, 90,160, 82,169,
-186, 8, 28,174,240,225,222, 0,127,242, 87, 87, 87,163,182,182,214, 69,254,243,231,207, 59, 23, 3,239,223,191,191, 95, 57,171,
-170,170,156,190,235,101,151, 93, 22, 21,249,215,172, 89,227, 18,240, 74,242,159, 58,117, 10, 53, 53, 53,104,108,108,132, 90,173,
- 14,104,174,163, 96,123,134,104,181,191,201,100,194,193,131, 7, 81, 86, 86,134, 35, 71,142,160,173,173, 13, 90,173,214,101, 1,
-246, 64, 45,191,252, 1,167, 37, 75,150, 68, 78, 1, 4, 65,216,213,153,167, 29, 40, 8, 2,234,235,235, 81, 81, 81,129, 99,199,
-142,161,169,169, 9,113,113,113, 72, 73, 73, 65, 66, 66, 2,226,227,227,157, 66, 7,154,126,139,118, 22, 37, 20,249, 75, 75, 75,
-113,219,109,183,225,179,207, 62,115, 90, 85, 79,126,165,244,126, 81, 81, 17,238,185,231, 30,108,222,188, 25, 57, 57, 57, 17,151,
-191, 51,207, 63, 80, 16, 4,212,213,213,225,232,209,163,168,168,168, 64, 99, 99, 35,226,226,226,144,148,148,132,164,164, 36,104,
-181, 90,159, 6, 40,214,228, 15,166,253,103,204,152,129,164,164, 36,232,116, 58,104, 52, 26,231, 88,128, 55, 62,197, 50, 11, 52,
- 34, 39, 39, 7, 27, 55,110,196,137, 19, 39,192, 48, 12,122,247,238,141,212,212, 84,244,237,219, 23, 44,203, 66,161, 80,128,227,
- 56,167,239, 38,247,165, 35,177, 16, 93,152, 8, 90,254,178,178, 50, 28, 56,112, 0, 20, 69, 33, 61, 61,221,171,245,145,182,189,
-123,247,162,168,168, 8,162, 40,226,190,251,238,139,138,252, 47,191,252, 50, 42, 43, 43, 65,211,180, 83,254, 17, 35, 70, 56,173,
- 37,199,113, 80,171,213,206,215, 61,104,213, 75,175,237,191,103,207, 30, 80, 20,229, 92, 8, 92,161, 80, 56,221, 30,121, 12, 16,
-136,229,151,247, 0, 75,151, 46, 13,171,253,187,196, 0, 38,147, 9, 58,157, 14, 19, 39, 78, 68, 98, 98,162,139,127, 44,117,185,
- 74,165, 18, 74,165, 18, 28,199,129,166,105,231,178,158,145,112,135,194, 69,176,242,151,148,148, 56, 63,179,111,223, 62,167,123,
- 35,109,210,107,249,251,210,126, 52,228, 55, 26,141,208,104, 52,200,207,207, 71, 66, 66, 66, 23, 2, 72,132, 97, 89, 22, 44,203,
- 58,219, 62,208, 65,164,104,199, 48,222,218,127,193,130, 5, 93,218, 95,165, 82, 57,247,221,149, 32, 86,252,233,162, 0, 90,173,
- 22, 35, 71,142, 4,207,243,206, 28,173, 60,119, 43, 17, 94,169, 84, 58, 47,198,211, 40,100,168,238, 80,184, 8, 86,254,170,170,
- 42,212,213,213,161, 95,191,126, 65,145, 84,167,211, 69, 69,126,141, 70,131,203, 47,191, 28,130, 32,116, 25, 40,146,218, 76,146,
- 95,110, 61,165, 99,221,189, 24,136,183,246,127,227,141, 55,186,184,147, 18,111,188,101,128,124,197, 3,210,182,108,217,178,200,
- 42,128,212, 53,201,211,108,158, 86,142,151, 91,126, 79,214,159,231,121,212,215,215,227,244,233,211, 56,119,238, 28, 26, 27, 27,
-209,210,210,130,182,182, 54,172, 91,183, 46,106, 55, 32, 88,249, 1, 56,201, 95, 88, 88, 8,154,166,145,151,151,135,156,156, 28,
-164,164,164,160,169,169, 9,229,229,229, 40, 42, 42,130, 32, 8, 40, 44, 44,132, 78,167,243,154,117,137,132,252, 44,203, 66, 16,
- 4,175,105, 78,185, 34, 72,251, 99,199,142, 69, 67, 67,199,243,248,233,233,233, 40, 41, 41, 9,169, 52, 34, 90,237,255,240,195,
- 15, 7,197,159,110,201, 2, 73, 3, 44,210,116, 28,158,186,121,249,107,134, 97, 96, 48, 24, 80, 91, 91,139,179,103,207,226,215,
- 95,127, 69, 75, 75, 11, 12, 6, 3,204,102, 51, 12, 6, 3,244,122, 61, 90, 91, 91,161,215,235,157,251,235,215,175,143,218, 32,
- 76,176,242,187,143, 78,206,155, 55, 15,153,153,153,206,247,250,244,233,131, 62,125,250, 96,240,224,193,216,186,117,171,203,231,
-163, 33,191,228, 31, 75,238,150,175,153,186, 37, 34,181,182,182, 34, 43, 43, 11, 21, 21, 21, 0,128, 25, 51,102,192, 96, 48, 32,
- 57, 57, 57,230, 99, 0,222,218,127,195,134, 13, 30, 19, 11,238,214,125,209,162, 69, 49, 93,187,185,139, 2, 72,141, 42, 31,110,
-247, 37,200,179,207, 62,219,133,224,122,189, 30, 70,163, 17,130, 32, 32, 62, 62, 30, 67,134, 12,193,232,209,163,145,157,157,141,
-167,159,126, 58,170, 55, 33, 88,249, 1,160,161,161, 1,105,105,105,200,203,203,115, 33, 63, 69, 81, 78, 55, 36, 51, 51, 19,121,
-121,121, 0, 58,170, 14,213,106,117, 84,228,151,206,227,137,252,130, 32,224,209, 71, 31,197,153, 51,103,240,204, 51,207, 96,196,
-136, 17,160,105, 26,122,189, 30,227,198,141,195,233,211,167,157,189, 65,107,107, 43, 82, 82, 82, 64, 81, 20,126,249,229, 23, 44,
- 90,180, 8, 3, 6, 12,192,107,175,189,230, 50, 6, 18,233, 76,144,183,246,127,244,209, 71,163, 50,240, 24,110,251,251, 92, 35,
- 44, 16, 65,222,125,247, 93,208, 52,141,254,253,251, 99,200,144, 33, 24, 63,126, 60,134, 12, 25,130,236,236,108,100,103,103, 59,
- 51, 43,210,119,188, 41, 64, 36, 39,173, 10, 54,245,151,150,214, 81, 65,155,147,147,227,114, 14,119, 72,199,213,106,181,199, 2,
-174, 72,201,238,109,116,247,177,199, 30,195,232,209,163,241,204, 51,207, 96,233,210,165, 72, 79, 79,199,220,185,115,241,254,251,
-239, 99,236,216,177, 48,153, 76,160,105, 26, 57, 57, 57,216,188,121, 51,230,206,157,139,109,219,182,129,231,121,108,221,186, 21,
-159,124,242, 9, 22, 44, 88,128, 55,223,124, 51,170,165, 28, 20, 69,225,240,225,195, 80, 40, 20,184,252,242,203, 35, 90,236, 22,
-105,227,233,119,165,248, 64,162,238,211,167, 79, 67,165, 82, 5, 76,184,104, 79, 87, 24,172,252, 18, 82, 82, 82,156,251,238, 1,
-180,251,113,247,152, 34,146,240,214,142,146,229, 23, 4, 1,155, 54,109,194,127,254,243, 31,172, 88,177, 2,243,231,207,199,204,
-153, 51,113,224,192, 1,208, 52,141,155,110,186, 9,241,241,241,120,231,157,119,176, 96,193, 2,164,166,166,162,173,173, 13,179,
-103,207,198,206,157, 59,163, 94,202, 65,211, 52, 56,142,195,176, 97,195,160, 80, 40,192,243,124,196,210,228,145, 54,158, 62, 87,
-138, 15, 52,107,227,141,252,222, 26, 56,154,228, 15, 69,254,166,166, 38,103,192,219,167, 79, 31,175,231,110,106,106, 2,208, 49,
-253, 34,203,178, 81,155,107,212,155, 2,255,253,239,127,199,146, 37, 75,240,230,155,111, 98,207,158, 61,200,205,205,197,167,159,
-126,138, 51,103,206,160,164,164, 4, 22,139, 5, 42,149, 10,229,229,229, 24, 62,124, 56,198,140, 25,131,134,134, 6, 28, 61,122,
- 20, 67,135, 14,197,147, 79, 62,233, 76, 64, 68, 43, 11, 39,157, 39, 39, 39,199,133,252, 47,190,248,162,139, 81, 9,118,212,215,
-219,177,167,158,122, 42,188,152, 43, 16, 2,249, 11, 60,130, 77,115, 70,179,126, 62, 20,249, 37,203, 94, 94, 94,238, 84, 0,249,
- 57,164, 56,160,188,188, 28,192,133, 57, 52,163, 65,126, 95,237,154,147,147,131,126,253,250,225,219,111,191,197,168, 81,163,112,
-248,240, 97,148,151,151,163,162,162, 2, 95,127,253,181,115,240,105,244,232,209,152, 59,119, 46,134, 14, 29,138,182,182, 54,164,
-164,164,224,244,233,211,136,139,139,195,200,145, 35,163, 58, 14, 32, 63,143,220,242,187,199, 0,225,150,204, 68,138, 63,138, 96,
-253, 80, 79,214, 59,216, 72, 61,218, 19,237, 6, 43,191,132,162,162, 34, 12, 30, 60, 24,153,153,153,112,159, 49,175,166,166, 6,
- 69, 69, 69,136, 54,252,185,138,119,222,121, 39, 10, 11, 11,177, 99,199, 14,148,151,151, 99,199,142, 29,216,189,123, 55,150, 47,
- 95,142,113,227,198, 1, 0,138,139,139,177,112,225, 66, 60,242,200, 35,152, 53,107, 22, 88,150,197,178,101,203,240,224,131, 15,
-198,164, 28,218, 83,251,191,240,194, 11, 93,122,128,112, 44,191,180,191, 98,197,138,232, 41, 64, 32,218, 25,168,171,225,237,153,
-213,104, 42, 64,160,242, 75, 55, 70, 16, 4,108,221,186,213,231, 56,128,183,248, 32, 90, 10, 44,245, 64, 6,131, 1, 45, 45, 45,
-216,182,109, 27,230,207,159,143,179,103,207,162,162,162, 2,187,119,239,198,247,223,127,143,196,196, 68,231,231, 51, 51, 51, 49,
-125,250,116,228,231,231,163,160,160, 0,105,105,105,152, 54,109, 26,222,121,231, 29,204,159, 63, 31,169,169,169, 72, 74, 74,138,
-218,179, 12,158,218,255,177,199, 30,139,152,191, 31, 73, 89, 21,225,100, 80,130,125, 32, 35, 22,115,243,135, 42,191, 52, 16, 22,
-204, 13,142,149, 2,228,229,229, 33, 43, 43, 11, 99,199,142, 69,126,126, 62,102,206,156,137,146,146, 18,236,218,181, 11,203,151,
- 47,119, 33,191,180, 37, 36, 36, 96,197,138, 21,216,182,109, 27,150, 45, 91,134,169, 83,167,226,220,185,115,120,225,133, 23,112,
-224,192, 1, 52, 54, 54,226,212,169, 83, 81,115,129,220,183,245,235,215,187, 60,253, 21,142,229,151,255, 86, 84,122,128, 96,179,
- 40,221,161,185,209,200, 2,245, 4,120,114, 21,207,157, 59,135,138,138, 10,212,213,213,193,100, 50,225,208,161, 67,176,219,237,
-168,172,172,196,184,113,227,188,182,121, 94, 94, 30, 94,121,229, 21,172, 94,189, 26,245,245,245,184,245,214, 91,193,113, 28,180,
- 90, 45,122,247,238, 29, 53, 23,200, 83,251, 63,254,248,227, 61,202,242, 71, 52, 11,212,147,200, 31,138,252,102,179, 25, 26,141,
- 38,224, 82, 8, 65, 16,162,218,155,121, 35,165,124,244, 87,173, 86, 59, 71,178,125,181,189,188,196,216, 93,230,104,142,193,184,
-203,181,110,221, 58,143, 61, 92, 40,150, 63,234, 61, 64, 48, 3, 23,254,110, 64,119,173, 44, 19,140,252, 26,141, 38,168, 82,136,
-104,147,223,189, 93,211,211,211, 49,125,250,116,140, 27, 55, 14, 57, 57, 57,184,233,166,155,112,226,196, 9,140, 25, 51, 6,197,
-197,197,200,204,204,244,120,109,251,246,237,195,172, 89,179,208,222,222, 14,173, 86,139, 45, 91,182,160,178,178, 18,135, 15, 31,
- 70, 70, 70, 70, 84,221, 82,119, 89, 22, 45, 90,212,173, 79,170,133, 60, 18,236, 47,144,244,149, 6, 61,120,240, 32,182,111,223,
-142, 51,103,206,160,166,166, 6,201,201,201, 61,138,252,238, 13, 43, 47,133,144, 7,200,238,165, 16,177,144, 95,126, 29, 37, 37,
- 37, 48, 24, 12,104,109,109,197,219,111,191, 13,150,101, 49,126,252,120,204,155, 55, 15,127,253,235, 95, 49,125,250,116,103,233,
-180,116,109, 70,163, 17,133,133,133,216,191,127, 63,172, 86, 43,118,238,220,137,214,214, 86,172, 88,177, 2, 41, 41, 41, 72, 78,
- 78,142, 42,249,139,139,139,193, 48, 12,198,142, 29, 11, 0, 88,179,102,141,215, 94, 34, 88,203, 31,213, 30, 32,216, 28,173, 39,
- 5, 16, 4, 1,111,189,245, 22,244,122, 61,180, 90, 45,218,219,219, 81, 91, 91,235,172,183,239, 41,228,151,228,151,106,123,228,
-165, 16, 18,241,229,227, 0,210,241,104,186, 64,222,220,183,228,228,100,164,166,166, 98,206,156, 57, 88,178,100, 9,102,205,154,
-133,236,236,108, 44, 90,180, 8,249,249,249, 88,177, 98, 5,242,242,242, 64, 81, 20,246,237,219,135,194,194, 66,252,243,159,255,
- 68, 92, 92, 28,204,102, 51,182,108,217,130, 45, 91,182, 32, 59, 59, 59, 38,150,159,101, 89, 12, 29, 58,212, 89,215, 36,127,120,
- 61,152,146,237,104,195,107, 16,236, 73,176,195,135, 15,227,179,207, 62,195,217,179,103, 81, 83, 83,131,164,164, 36,143, 55,107,
-229,202,149,168,174,174,198,128, 1, 3,160,215,235,209,212,212,132,246,246,118,240, 60,143,244,244,232,175,126, 20,236, 52, 26,
- 82,109,143,167, 82, 7,249,120,128,116, 60,218,217, 44, 95,114,111,221,186, 21, 15, 62,248, 32,154,155,155,209,220,220,140, 89,
-179,102, 97,194,132, 9,216,182,109, 27, 54,110,220, 8,134, 97, 48,107,214, 44,236,223,191, 31,113,113,113,206, 1,176,185,115,
-231, 98,211,166, 77,120,233,165,151,162, 46, 63, 77,211,184,250,234,171, 93,138,250, 86,175, 94,237,215,226, 7,106,249, 99,214,
- 3,200,107,251,223,123,239, 61,152,205,102,196,199,199,163,186,186, 26,117,117,117, 40, 46, 46,118, 33,132,116,147, 62,248,224,
- 3, 40,149, 74, 84, 85, 85,193,108, 54,163,161,161, 1,173,173,173,224,121, 30,119,223,125,119,183,165, 65,253,101,129,228,165,
- 16,238,228,151,142,199,218,133,147,203,125,228,200, 17,212,213,213, 97,234,212,169, 56,118,236, 24,250,247,239, 15,157, 78, 7,
-149, 74,133, 39,158,120, 2, 43, 87,174, 4, 69, 81, 48,155,205,176,217,108,104,111,111,119,246, 0,183,223,126, 59,110,185,229,
- 22, 28, 58,116, 8,163, 70,141,138, 73, 18, 66,158,246, 92,178,100,137,223, 88, 44,150,150, 63,224, 24,128,162, 40,252,227, 31,
-255, 64,125,125,189, 79,139, 46, 23, 94,167,211, 57,171, 1,121,158,135,221,110,135, 40,138,120,242,201, 39,177,108,217,178,110,
- 25, 11,240,149, 5,146,106,123,228,165, 16,158,226, 0,169, 20, 34,218, 46,144, 55,185, 23, 47, 94,140, 55,223,124, 19, 6,131,
- 1,131, 7, 15,198,151, 95,126,137, 87, 95,125, 21,247,222,123, 47,102,204,152,129,250,250,122,103,134,104,231,206,157,206,138,
-208,219,111,191, 29, 10,133, 2,133,133,133,120,232,161,135,240,195, 15, 63,196,188,253, 87,175, 94,237,181, 22, 40, 88,203, 31,
-245, 44,144,187,240,219,183,111, 7,203,178, 30, 45,250,156, 57,115,186,104,238,187,239,190,139,133, 11, 23,162,182,182, 22,113,
-113,113, 72, 78, 78,198,210,165, 75,113,245,213, 87,119,171, 5,245,102,121,164,218,158, 64, 75, 33, 98,229, 2,185,203,221,191,
-127,127,124,250,233,167,152, 57,115, 38,238,191,255,126, 12, 26, 52, 8, 27, 54,108,192,214,173, 91,209,212,212,132, 59,238,184,
- 3, 20, 69, 97,243,230,205,104,109,109,197,150, 45, 91,176,105,211, 38,220,114,203, 45, 40, 44, 44,196,215, 95,127,237,146,225,
-138,101,251, 47, 93,186,180, 71, 89,254,160,130,224,184,184, 56,252,242,203, 47, 93, 44,250,178,101,203, 92,158,201,148, 48,104,
-208, 32,124,242,201, 39,221, 58,144, 20,108, 29,144,100,217, 3, 41,133,136,197, 53,120,146,253,181,215, 94,195, 3, 15, 60,128,
-207, 62,251, 12,235,214,173,195, 21, 87, 92, 1,138,162, 48,127,254,124,172, 91,183,206,169,200,149,149,149, 88,177, 98, 5,178,
-179,179,177, 97,195, 6, 28, 60,120, 16, 15, 61,244, 16, 50, 51, 51,177,101,203,150,110,105,255,231,159,127,222,111, 53,104, 40,
-191, 21,181, 30, 64, 46,252, 91,111,189,133, 39,158,120,194, 25, 80,201, 45,122, 79, 28, 81, 13,118, 26, 22,201,165, 9,180, 20,
- 34,218, 46,144, 55,217,149, 74, 37, 54,109,218,212,229,120,106,106, 42, 14, 30, 60,232, 28,207,248,249,231,159,145,146,146,226,
-252,220,168, 81,163,162,238,246,248,187,134, 39,158,120,162, 71,142,200, 7,148, 5, 26, 52,104, 16, 62,252,240,195,139,166,156,
- 32,216, 44, 80,176,100,238,142, 44,144, 47,242, 36, 37, 37,161,169,169, 9,189,122,245, 2, 0,100,100,100, 56, 31,135,236, 41,
-237,255,220,115,207,121, 29, 3,136,165,197, 15, 41, 11,116, 49,214,210,132, 34,127,160,165, 16, 61, 73,126,233,125,121, 97, 91,
-119,141,190,251,146,127,249,242,229, 61,146, 63, 1, 5,193,209,122,122,168,187,131, 96,119,151, 38,208, 82,136, 88,215, 2, 5,
- 90, 54,208,221,228,191, 24,249, 67, 95,234,228,151,187, 52,238,165, 16,242,207,201, 75, 33, 98,233, 2, 5, 50, 1,238,165, 74,
-254,167,159,126, 26, 14,135, 35,122, 61,192,197, 70,254,112,229, 15,180, 20,162, 39,100,177,122, 34,249, 99,205,159,112,159, 7,
-246,216, 3,248,203, 68, 92, 12, 8, 86,126, 41,189, 25,104, 41, 68,180,211,161, 23, 51,249, 47, 54,254,116,233, 1,236,118, 59,
-170,170,170,188,206,224, 21, 77, 40,149,202,176,207, 17,138,252,146, 75,227, 62, 43,132,148,183,150,148, 64, 42,133,144, 62,127,
-252,248,241,136,203,223,214,214,134,147, 39, 79, 6, 52,147, 70,164,137,213, 93,237,223,157,252,161,228, 22,110,252,248,241,231,
-172, 86,107, 90,119,106, 36,199,113, 13,123,246,236, 9,169, 98,238, 98,151, 63, 47, 47,239,156,205,102, 35,237, 31, 67,249, 41,
-247, 33,127, 2,130, 75, 9, 52,105, 2, 2,162, 0, 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32,184, 84,160, 32, 77,
- 64, 16, 43,116,174, 35,188, 11,192,136,104,253, 6,203,178, 13, 69, 69, 69,233, 68, 1, 8,122, 34,249,191,235, 92, 7, 25,165,
-165,165,200,200,200,112, 89,112, 93, 94, 99,229, 62, 33,152,251,190,167,105, 18,205,102, 51,166, 77,155, 22,212, 56, 4, 81, 0,
-130,152,145,127,237,218,181,220,196,137, 19, 7, 2, 64,105,105, 41, 44, 22, 11,226,227,227,157,139,100, 7, 82,248,231,235,248,
-169, 83,167,130,119,129,180, 90,117,161,213,106, 91,198,243, 66, 64,202, 64, 81,148, 77, 20,197, 66, 81, 20, 87,246,132,198,213,
-106,181,163,173, 86,235, 40,158,231, 3,141,103, 4, 0,165,162, 40, 30, 36,242,199,142,252,107,214,172,225, 38, 77,154, 52,208,
- 25,124,210,180, 75, 77, 85,119,205, 26, 77, 91,173,182,101, 21, 71, 15, 43,236, 54, 51, 2,217, 78, 28, 63,102, 7,240, 84, 79,
-105, 96,171,213, 58,234,216,209,159,105,155,173, 13,129,108,149,149,149, 2,128,209, 68,254,216,145,127,245,234,213,170,201,147,
- 39, 15,148, 31,147,175,208, 25,238,242, 73,225, 20, 3, 42,120, 94, 80,100,102, 13, 68,123, 91, 51, 4,158,239,124,251, 66,121,
-132,123,161, 68,159,244,228,115, 0, 6,245,148, 70,230,121,158, 30,144,149, 5,171,185, 5,188,157,247,251,249,140,244, 20, 51,
-128,120, 34,127,236,200, 63,101,202,148, 44,247,227,242,181,129, 35,185,118, 88,200, 89, 32,158,119, 64, 16,188, 60, 92, 32,211,
- 2, 65, 20,248,158,216,224,188,157,135, 0,187,119,167,225,194,117,138, 68,254,238, 37, 63, 0,231, 10,247, 82, 15, 16,169,133,
-243,130,118,129, 92, 8, 46,202, 55,209,185, 88,179,203,159, 40, 40, 0, 88, 40,138,202,232,113, 45, 47,184,110,188,180,225,194,
- 6, 70,160, 0,240, 20, 69,105,137,252,209,245,249,189,145, 31, 0, 56,142,243,152,201, 9,228, 41,184,136,175, 20,111,104,109,
- 64,217,222,143,209,110,110,237,208, 5, 81,102,244,157,251, 29, 59, 12,163,232,181,112,225, 35,150,245,235, 95,170, 81, 40,152,
- 46, 61,132, 8, 80, 93,220, 40, 17, 93, 36, 19, 69,209,229, 61,134,166, 29,156, 74,241,108, 91,155,181, 48,216,139,208,183,156,
- 71, 89,209,246, 14, 55,194, 15,193, 40,134, 81, 47, 92,248, 48,191,126,253,134,255, 39,173,104,238,197, 38,203,172, 46,252,182,
- 44,195, 48, 2,199,209, 7,218,218,108, 63, 93,106,242,123,202,246,200, 3,222,206, 88, 7,213,213,213,168,173,173, 69,115,115,
- 51, 84, 42,149, 71, 34,119,203, 66,217, 12, 67, 65,171, 85,129,161, 53, 78,162,139,157,204,117,233, 32, 58, 94,235,230,255,113,
- 22, 30,127,228, 1,240, 98, 71,223, 76,137,148,143,124,173,139,138,119,252,115,211,122, 0,168,169,169, 81, 92, 61,118,234, 50,
- 0, 65, 43,128,146,166,161,211,169,160,100, 52,174, 94, 3,207,123,162,132,242,191,255, 56, 27,143, 63,242, 23,240,146,111, 33,
- 56,149,208, 75, 23, 41,177,196, 35,117, 0, 0,181,181,167,232, 49, 99,175, 29, 5,224,167, 75, 77,126,167,204,130,176,107,253,
-250,245,108, 65, 65,193, 64, 65, 16, 80, 95, 95,143,163, 71,143,226,216,177, 99,104,108,108, 68,124,124, 60,146,147,147,145,144,
-144, 0,157, 78,231, 18, 7, 68, 34, 22, 8, 41, 8, 6, 0,135, 67,128,222, 96,134,185,205,212,225,250,200, 76,183,232, 18, 7,
-116,188, 58, 80,252, 37, 56,117, 28,104,154,113,237, 33,220,194,103,151, 71, 13, 68, 23,235, 47,239, 29, 0,136,104,105,213, 67,
- 16,132,144,198, 37,236,130, 0,189,222, 12,179,217, 8,240,240, 97, 69, 59,152, 82, 86,242, 37, 84,170, 78,249, 93, 93,108, 23,
-186,241,130, 95,227,234, 68,139, 94,143, 32, 82,153,191, 41,249,101, 24,145,147,147,131,141, 27, 55,162,178,178, 18, 12,195, 32,
- 45, 45, 13, 41, 41, 41,232,219,183, 47, 88,150,133, 66,161, 0,203,178, 80,169, 84, 80, 40, 20,206, 88, 32, 82,129,112, 72, 10,
- 64, 51, 20,180, 90, 14, 12,165,242, 72, 78,207,251, 14,160, 51,104,147,247, 16,148,236,187,148,139, 27, 36,202,222,239, 84, 16,
- 0, 84,231,121, 41,209, 22,114,171, 51, 52,160,137,227, 64,211, 26, 64,150, 91, 22,186,220,116, 94,118,255,237, 78,249,105, 15,
- 95, 16, 0, 48, 46,209,103, 23,199,194,141,155,214, 75, 86,126, 57,140, 70, 35,226,226,226, 80, 80, 80,128,196,196, 68,103,206,
- 95,250, 47,205,112,199,178, 44, 56,142, 3,195, 48,224, 13,191,162,242,229, 63,194, 84,127, 2,234,212, 62,232,115,221,253,232,
-123,221,159, 98,151, 5,226, 29, 2, 12,134, 54,152, 77, 38,167, 29,119,181,222,162, 71,203, 46, 87, 10,207,150,221,165,227,112,
- 59,175,235,111, 24, 77,237, 97,101, 80,140,122, 19,204, 38, 83,231, 45,231,187, 88, 60,127, 86,181,163, 11,247, 98, 44,121, 31,
-166,211,121,227, 45,151,172,252,114,104,181, 90,228,230,230,130,239,116,223,220, 75, 23,104,154, 6,195, 48, 80, 42,149,206,255,
-245,223,191,139,120,241, 87, 76,248,195, 52,152,205, 54, 28,248,250,101,180, 85, 31, 68,246,127,189, 8,202,205, 77,138,116, 22,
-168,179, 7,160,161, 85,115,160, 68,149, 71,114,250,238, 21,124, 17,219,237, 60,178,232,218, 61,198,176,217,194,152,223, 69,201,
- 64,163,225, 0,112, 30, 83,135,130, 7, 75,232,219, 26,194,179, 21,134,224,193,146, 74, 65,158,253,210,149,223, 45,189,201,178,
-172,199,137,112,229,164,101, 24,198, 89,254,208,123,220, 45, 56,242,239,183,208,124,166, 30,189, 47, 27,141,252,153,105, 56,244,
- 99, 41, 14, 61, 61, 3,151, 47,254, 8, 92, 66,106, 80,235, 80,135,208, 3,240,208, 27,219,209,102, 50,249, 32,185,220,154,123,
- 39, 54,220,131,103,209, 67,108, 32, 63, 79,231,126,155, 57,244, 30, 64,176,243,157, 62,180,201,171, 37,116,181,134,188,255,116,
-164,243,159, 16,208,121, 44, 22,235, 37, 43,191,187, 2, 72,217, 41,249, 2, 25,238,171, 86,202,211,157,218,126,195, 48,124,241,
-199, 40, 91,123, 39, 70,216,129,126, 87, 78,192,149,215, 77, 69,213, 79, 37,248,105,201, 4, 92,177,108, 7,226, 6, 92, 22,149,
- 64, 88, 33,105,166, 70,211,209, 3,136,110,126,203, 5, 87,198,179,245,118,241,239,221, 93, 38,209, 45, 56, 22,157,148,151,157,
-171,227,188,118,123,232, 61, 0,205, 48,208,104, 84,174, 22, 20,192,254,210, 74,236, 46, 58, 14,163,217, 10,187,213, 2,179,197,
- 14,171,213, 14,139,197, 10,171,213, 2,139, 37, 50, 86, 79,150, 74, 4, 69, 81,243, 61, 26,121,165, 82,200,205,205,174, 40, 45,
- 61,242,227,111, 77,126,247, 92,190,167, 1, 46,209,110,197,233,119,151,192,112,244, 71,240, 86, 43, 68, 81,232,224,137, 32,116,
-236, 3,160,104, 26, 63,255,116, 28, 84, 66, 6,250, 93, 54, 28,131, 70, 95,131,248,228, 36,148, 61, 53, 29,195, 31,252, 39,122,
- 95, 61,195,239,106,165,161,245, 0, 60, 15,131,193,140, 54, 83,155,171,239, 47, 39,189,232, 94, 30,209, 53, 67, 36,122, 32,182,
- 63,215, 71,218, 55,182,133,238,131, 10, 60, 15,189,201, 12,179,209,236,242,254,238,162, 10,124,248,225,199, 72, 77,237,214,153,
- 58, 0, 0,167,170, 79,209,185, 87,140, 29, 6,224,199,223,154,252,158, 6,179,220, 21,224,220, 87,175, 65,107,169,195,149, 55,
- 95, 15, 5,203,130,162, 21,160, 24, 69,231,127, 6,160, 24,128,162, 59, 54, 5, 7,209, 97, 5,236,102,244,250,221, 80,228, 39,
-245,194,254,215,255,130,182,211, 11, 48,232,247,139,124, 46,178, 17,114, 15,160,213,176,128,168,114, 33,231,129, 67, 39,241,195,
-222, 10,152,219,109,176, 90,237,176,217,236,176,118,110, 29,251, 14, 88,173,118,103,192, 19, 46,104,154, 22, 40,138, 18,189, 52,
-108,187, 40,138,203, 68, 81,124,193, 83,174, 91,167,225, 0, 94,229,102,181,104,164,166,166,162,249,252, 47,176,243,246,110, 37,
-144, 89,223, 8,187,221,238, 49,205,232, 95,254, 10, 8,188,165,199,202,239, 73, 9,228, 10, 64,211, 52, 4, 91, 59, 52, 26, 53,
- 88, 88, 65,241, 60, 32, 42, 0, 81, 9,208, 10,136, 80, 1,124, 27, 64, 43, 58, 20,193,110,238,224,161, 82, 5, 56,172,208, 38,
- 38, 96,194, 31,110, 65,233,151,239,192, 84,125, 24, 87, 44,124, 7, 20, 69, 71, 48, 11,196,243, 48,152,204, 48, 25,218, 92, 44,
-251,190,210, 74,188,247,193,118,164,166,164,198,170,157,189, 54,112, 93,125,157, 58,103,248, 85,171, 0,188,224, 49,143,110, 52,
-195,168, 55,187,249,199, 12,120, 0,118,187, 21,118,187,185, 91, 9,228,235,247,125,201, 47,125, 87,250,109,244,155, 0, 0, 15,
-139, 73, 68, 65, 84,176, 91,122,172,252,222, 20, 64, 78,208,180,201,243, 80,189,249, 17, 28, 43,251,218,101, 36,148,102,148,184,
-108,250, 31, 48,160,175, 14, 52, 4, 80,140,162,147, 6, 2, 68,222, 1,128, 2,120, 27,148, 20, 48,118,246,141, 56,240,239,239,
-112,244,159,143,227,242, 5, 47, 70,100,218, 69,103, 15,160, 86,115, 16, 29,156,139,203,194,178, 92,199, 28,249, 13,229,224, 29,
-221,123, 3,172, 70, 19,236, 14,135,210,115, 30,157,134, 70,163, 4,236, 92,103,144,215,225, 83,114, 42,165,223,244,159, 39,180,
-181, 89,152,219,231, 46,186,231,195,119, 87,111,214,106, 85, 62,190, 28,196,121,121, 95,227, 0,222,229,151, 50,255, 60,130,155,
-143,244,127,191,252,177,239,187,239,125, 49,254, 68, 85, 77,142,213, 98,211, 90,109, 14,117, 74,114,252,153,204,254,125,170,102,
-207,158, 92,124,215, 31,174,175, 14, 46, 87, 27, 56,249, 61,109,234,180, 44,228, 44,221,225,236, 17,108, 77,245, 40, 95,119, 23,
-134,142,157,128,140,172, 94, 16,173, 6, 80, 12, 11, 42,121, 16,232,129, 5,160,226, 51, 0,138,134,216, 90, 3,225,196, 55, 16,
-206, 30, 4,218,155, 49,114,210, 68,236,217,177, 19,167,191, 30,133,204,233,247,134, 61,237, 98,103, 15, 32,192,104, 48,195,100,
-108,115,241,203,133,206,224,196, 97,111,135,195,238,158,165,137,109, 81,162,193,208,234,253,222, 8, 2,140,122, 51, 76, 38,147,
-107,114,131,151,229,252,130,112,211,238,156,183,120,222,241,202,154,209,119,206, 91,204,127,246,225,250,205,145,144, 95,240, 65,
-224, 72,202, 95, 87,127, 94,245,167, 7,254,246,199,170, 83,117, 93,214, 66, 61,255,107, 75,214,249, 95, 91,178, 74,202,202,167,
-252,207,251, 95,236, 95,249,212,130,237, 35,134, 15, 49,132, 43,191, 7, 87,214,171, 50,208, 52, 13,227,137,159, 80,249,234,253,
-184,114,230, 77, 72, 74,100, 33,182,253, 10, 40, 84,160, 6, 78, 4,147, 61, 19,148,252,209,200,180, 17,160,123, 15, 7,127,236,
- 11, 56, 14,109, 3, 99,105,196,152,233, 83,177,251,237, 39, 48,224,218,187, 65, 43,185,240, 93, 14,154,166,160, 81,179,208,104,
- 56,104, 53, 28,180, 26, 21, 52, 26, 14,106, 21,235, 12,128, 69, 81,232,214, 13,162,224,199,130,118,200,172,235,220, 52, 26, 14,
- 42,141, 74,118,243, 2,219, 22,175,216, 48,225, 68,213,233,145,162, 40,210, 39,170, 78,143, 92,188, 98,195, 4, 4,241,125,239,
- 27, 31, 19,249,239, 89,240,244,189,158,200,239,110,168,143, 86,156, 26, 59,111,254,211, 11,143,252, 82, 25, 31,174,252,129,244,
- 0, 18,249,207,255,248, 17,170,254,249, 23,140,189,229, 54, 36,105,108,128,185,177,227,222,198,247, 3, 53,248,122,240,130,128,
-242,234, 70,124,252,159,227,216,250,101, 57,126,248,185, 14,102,171, 29, 24, 50, 29,162,185, 25,142,159,223, 7,123,182, 8,189,
-250, 15,192,249,178,111,194, 79,219, 58,123, 0, 83, 59, 12, 6,115,215,154, 29, 81,236, 16, 80, 12,174, 11, 22, 35,220, 67,136,
-190, 44,168, 93,128,222,100,134, 73,111,118, 79,175, 72, 85,101, 16, 2,184,129, 95,127,187, 63,253,171, 93,123,103,216,237, 14,
-117,135,223,235, 80,127,181,107,239,140,201,147, 70, 85, 94, 55,229,154,115,209,234,221,252,203, 47, 89, 97,255,215,240,208,159,
-111,223,241,248,146,151,114,120, 94, 80, 14, 30,212,255,167, 27,103,230,255,144, 55,110,196, 25,157, 70,237,216,245, 93,201,128,
-157,159,255,152,127,162,234,244, 85, 0, 96, 48,182,245,190,231,129,191, 61,188,235,243,151,158,139,215,105, 29,145,186, 30,143,
- 51, 90, 83, 20,170,223, 43, 68,123,101, 17,198,223,114, 51, 88,235,175, 16,237, 14, 80, 52, 3, 80, 60,196,172, 2,240,130,136,
-170, 51,173,248,170,184, 22, 14, 94, 64,217,241,243, 56, 81,223,138,255,186,113, 56,230, 93, 55, 12,226,184, 71,129,202,175, 32,
-154,206,163, 79,223, 43,112,122,215,102,244,185,230,134,240, 21,128,166, 41,168,212, 44,120, 7,235, 82, 10,173, 86,113, 78,242,
-137, 98,164,231,196, 15, 82, 65,124,253, 62, 3,104, 56, 14,130,198, 53, 68,224, 56,213, 5,218,248, 17,191,185,197,168,124,234,
-153, 77,127, 50,181,181,187, 44, 18, 96,106,107, 79,121,234,153, 77,127,186,106,100,206,234,228, 36, 93,200,169, 36, 94, 8, 85,
-254, 78, 5, 14,240, 57,164, 27,174,205, 59,115,160,236,248,219, 0,176,124,241, 31, 75,228,199, 6,221,211,239,232,253,247,220,
-114,116,229,250,119,126,218,242,206,231,255, 37,138, 34,221,210, 98,204, 40,252,251,155, 19,214,175,124,232, 59,223, 62,144, 16,
- 84, 15, 32, 31, 19, 16,108,237, 40,127,233, 30,232, 88, 1,215, 92, 63, 25,140, 96, 70, 59,155, 14, 7,197, 33,206, 92, 9, 10,
- 20, 4,109, 31,136, 14, 7,246,254,114, 14,103,154,218, 80, 90,113, 14,166,246,142,230,254,240,187, 74,220,150,159, 5,174,119,
- 46,104,138,134,216,222,130,132,140,120, 28, 61, 88, 18,153,172, 11,207, 11, 48,153, 44, 48, 24,218,161, 55,154, 97,232,220,120,
- 94,144, 30,130,137,194, 38, 6,176,185,126,222,215, 56,128,201,108,134,209,104,133,222,104,118,110, 78,210, 8,254,187,248, 57,
-247,174,248, 83,123,187, 37, 94,171, 85, 55,201,207,173,213,170,155,218,219, 45,241,115,238, 93,241,167,142,126, 36,180,205,103,
- 53,143, 79,249,133, 78,229,241,190, 89,173, 22,250,131,143,119,101, 73,175,151, 47,158, 87,178,124,241,188, 18,111,159, 95,250,
-232,156,178,105,147,175,218, 33,253,254, 55,223, 22,207,180, 90, 45,244,209, 99, 85,186,255,253,170,168,175,167,239,240, 65,246,
- 0,206, 96,183,229, 44,126, 94,113, 45,210, 83, 53,200, 29,147, 3,198,209,134, 86,189, 5,223,109,126, 13,130,185, 5,160, 24,
-136,188, 13,188,195, 1,158,231, 81,255,171, 17,223, 31, 60,237, 36, 63, 0,168, 88, 6, 16, 5,216,237,118,233, 7,192, 40, 89,
-216,219, 77,145,113,129,104,154,130, 90,165,132,195,198,202, 71,178,160, 86,179, 78,235, 27,249, 30, 32,200, 14,192,135, 2,208,
- 12, 3, 78,165,132,221,170, 4,112,193,138,106, 52, 23, 44,168,191,177,138,207, 63, 94,253,154,180,127,217,232, 57,175, 75,251,
-165,187, 55, 61,113,193,140,135, 49,222,225,227,171,225,202,191,112,217,203, 83,190,219,125, 96,198,231, 95, 21,237,121,107,227,
-146,127,209, 52,237,183,123,125,250,137,251,190,253,110,119,217, 13, 14, 7,207, 89,172,182,248, 9,215, 63,176,162,221,108,213,
-221,125,215,244,119,166, 79,187,250, 76, 87,249,249,160, 21,192,114,190, 6, 71,158,157,141,220,130,124,164,247,142, 3, 4, 7,
- 26,206,233,113,232, 63,223, 35,174,223, 80,216,219,244,160, 18, 24,136,150, 54, 8, 77, 39,208, 14, 13,134,244,213,192,253, 86,
- 79, 25,217, 7, 60,239, 0,234,127,234,240, 4,148, 26,216,236, 34,212,201,105,145, 81,128,142, 30,160, 29, 6,231, 72,100, 71,
-173, 15, 47, 8,178, 71, 35,187, 91, 1, 4,159, 22,212,108,180,194, 40, 27, 73, 21, 58,199, 55, 46,144, 47, 84,249, 35,117,221,
-225,202,239, 37, 63,239,112, 80, 37,101,199,198, 90,109,246,184,146,159,142, 78,189,118,246, 35, 89,175,190,248,248, 27,217,131,
-250,123, 52,143, 13, 13,205,220,252,191,174,158,219,220,108, 72, 19, 69,209,153,110,105,109, 53,245,233,221, 43,241,228, 99, 15,
-221,121, 48,156,118,144,251,253,149,175,255, 25,185, 19,198, 35, 45,145,130,200, 40, 81,115,242, 28,170, 14, 29,193,213, 43,191,
-195,249,226,207,209, 92,249, 21, 82,123, 95, 6, 24,207, 1, 63,172,132,245,250, 55, 49, 54, 59, 9,119, 20,100,226,219, 67, 13,
-176, 57,120,140,187,172, 23,102,143,237, 11,187,221, 14,174,248,197, 14,131,145,152,137,214, 22, 35,146,134,141,139, 92, 15,192,
-169,148,208,216,164,172, 79,135, 18,104,212,172,147,124, 61, 89, 1,104, 0, 74,149, 18,154,206, 60,122,135,187, 42,116,228,214,
-209,225, 70, 32,212,103,249, 35, 52, 7,128, 47, 31,222,183,252,144,185, 34, 93,241,204,115,111,229,181,180, 26,251,116,124, 79,
- 80,156, 57,219, 56,244,238,251,254,182,112,238, 29,215,126,252,224,253,183, 29,118,255,124, 90, 90,162,117,218,164,209,197,239,
-126,176,235,247, 60, 47, 40,101,169, 75, 71, 65,222,200, 31,189,253, 78, 48, 78,144,164, 0, 14,195,175, 72,238, 55, 30,162,104,
-195,177, 67,199,208,120,190, 21, 99, 86,237,134, 50, 46, 17,253,166,204,197,222,207, 95, 65,214,136, 17,160,235,127,130,162,189,
- 5,170,162,191,195,120,245, 98,220,154,215, 23,183,230,245,189, 16, 75, 64,128,178,248, 69, 40,107,255, 3,208, 10, 8,125, 70,
-227,248,255,126,143,241, 43, 95,138,140, 2, 56,164, 24, 64,178, 64,157, 10,224,176, 11, 29, 47, 66,200, 2, 69, 56, 4,246,169,
- 0,118, 1, 48, 27, 45,208,187,100, 81, 4, 72, 46,163, 32,240,221,110,255,125,157,201,183,252,157,143,195,123, 81,160,221, 69,
-135,242,229, 79,210, 49, 12,109,103,149, 10,235, 55,255,249,105,204,237, 55, 77, 60,158,150,150,212,165,204,243,193,249, 55, 31,
-190,126,234, 85,167, 22, 60,242,194,252,115, 13, 45,131, 4, 65, 80, 36, 38,198,157, 93,190,248,238, 34,175,138, 42, 32,232, 30,
- 32,126, 88, 30,246,255,223, 55,176,155, 77,208, 13,190, 10, 87,254,237, 3, 48,202,142,135,225,149,218, 4,244,159, 49, 31, 85,
-191,252,128, 97, 25, 87,129,175,250, 6,113, 71,222, 2,123,174, 20,166,220,249,176,165,230, 66,160, 24,176, 77,135, 17,247,203,
-219,224,206,238,237, 80,212,126, 99, 80, 87,223,130, 94, 87, 76, 69, 92,198,144, 72,198, 0, 44,236, 54,214,133,153,106, 53,219,
- 57, 65, 68,247,247, 0,240, 17, 3, 48, 52,160,210, 40, 97,183,187,102, 81, 52, 42,165,108, 80, 41, 68,249,249,200, 92, 55,239,
-115, 36,216,135,252,157, 61,130,167,129,168,245, 47,127,116,133, 94,223,214, 59, 49, 94,123,182,213,208,214,167,147,128,194,191,
-222,123,102,141,148,177,242, 54,128, 53,120, 80, 95,211,151, 59, 86,189,112,223, 3,107,111, 57,116,184,106,252,213, 87, 14,221,
-167, 84,210,162,119,166, 11, 65,247, 0,195,238,127, 25,230,186, 10,176,186,100,168, 82,250,118, 25, 23, 24, 56,235,207,248,254,
-129,215,144,144,156,135, 62, 35,254, 0,254,216, 23, 96, 27,127, 70,242,183,127,241,208, 72, 44,152,193,211,208,226, 72,192,177,
-226,111, 49,101,227,129,136,220, 23, 69, 71, 47, 47,192,100,182,192,104,108,119,177,208, 60, 47,197, 0,242, 32, 84,236, 38,254,
-251, 25, 73, 53, 91,161, 55,185,230,209,237, 18,121,249,192, 7,114, 0,128,101, 21,109, 54,155, 67, 11, 0,159,127, 85,212,239,
-198,235,175,169, 11, 48,158, 13, 41, 10,246, 41,191, 20,191,120,208,160,156,236,204,243,255,179,105,105,225,192,172,244,182,188,
-107, 31, 94,101,177,218,226, 29, 14,158,123,250,217, 45, 83, 94, 92,245,192, 87,254, 36, 98, 0,113,243, 43,143,125,242,209,142,
-221,101,179,103,142,171,245,165,165,124, 8, 65, 48, 77,211,208,101, 14,247, 94,191,207,169,145,191,230, 7,148,254,253, 22,180,
-246, 78,198,208, 43,230,129, 58, 87, 6,209,120, 14,162,241, 44, 32,240,160,226,210, 64,233,250,128, 74,207, 69,245,201,179,168,
- 62,178, 23,249,171,254, 13, 85,114,122, 68,120, 69, 3, 0, 69, 83, 80,113, 10,168, 85, 44,212, 42, 37, 84, 42, 37,212,156, 18,
-234, 78, 11, 20, 94,250, 50,130,163,193, 94,175,130,134, 70, 73, 67,195,169,160,225,148, 23,182, 78,249,121,240, 46,115,235,248,
-219, 18,226,181,231,165, 83,111,220,180,243,166,157, 95,237,239,231, 50, 55, 79,164,225, 79,126,222,179,156,215, 78, 29,125,102,
- 72,118,127,163,130, 85, 10,147, 39,142,252, 66, 58,221,191,119, 31,188,121,213,134,143,174,244,118,125,207,174,127,255,234,191,
-173,249,159,107,164,215,183,222, 92, 80,173, 96,149,130,175, 54, 9,133,252,129, 60,203,171, 78,205,192,132,245,123, 33,166, 12,
-195,143, 59,191, 66, 85, 75, 34, 90,146,242,193, 95,245, 32,132,177,143, 66,159,126, 29,106,204,125, 80,244,239, 98, 52,155, 24,
- 76,121,245,103,196,103, 70,110,193,242, 11, 61, 64,155,197,249, 92,174, 84, 12,103,115, 8,157,175, 34,237, 2,137, 17,237, 1,
- 96, 23, 96, 50, 91, 97,234,180,160,188,211,130,242, 65, 15,228, 0,192,229, 57,191, 59,240,237,238, 3, 3, 1,160,230,244,249,
-220,165, 79,109,202, 93,250,212, 38,143,159,253,185,232,245,255, 14, 59,154,240, 43, 63,239,215, 5, 89,190,104,206, 15,251,138,
-143, 78,104,105, 53,101,136,162, 72,111,221,246,245,127,239,217,123,164,244,198,235,199,252, 56,185, 32,183,214,108,182, 41,246,
- 22,151,247,253, 98, 87,201,132,170,147,103, 71, 3, 16, 25, 37,197, 47,126,248,142,210, 72, 71, 67, 65,207,240,160, 80, 34,247,
-129, 13, 48,158,174, 64,211,145, 31, 81,119,112, 23,154,190,221, 6,145,119, 32, 41,251, 42,164,140,186, 14, 35,111,202, 71,210,
-144,200, 79,137,170,112,246, 0,172, 18, 54,149,210,165, 24, 78,163,166,156,227, 0, 82, 16, 28, 27, 7, 72, 12,238, 6, 48, 0,
-167, 84,130,227,220,125,104,249, 99,129,129,219,177,103,159,156,247,205,141,119, 84,141,110,106, 54,100,134,149,224, 15, 52,155,
- 20,136,252,126,178, 81, 58, 13,235,216,184,254,193,127,204,127,232,197,133, 70,147,185, 55, 0, 84,157, 60,115,213,139,175,238,
-184,234,197, 87,119,120, 52,214, 63,252,120,100,236,226,135,126, 31,160, 2,132, 87, 11,228,239, 89, 94,138,162,144,144,153,131,
-132,204, 28,252,238,134,249, 49,115,173,105,138,162, 4,139,197,138,118,139, 13, 70, 83, 59, 76,166,118,152, 76, 29,189,129, 40,
-116,186, 52,130,195,181, 40, 45,234,155,216,101,115, 56, 28,160, 40,202,147, 22,136, 86,139, 5,102,171, 29, 38,179,165, 99, 51,
- 89, 96, 50,153, 59, 57,211, 49,130, 24,204,198,178, 52,255,175,119,151,175,154,156,159,251, 73,175,212,132, 83,172, 82,209,230,
-213,120, 7,120, 78,115,199, 51,183, 98, 40,242, 7,154,138, 29, 62,172,191,225,141,151, 30, 92, 51,108, 72,191,125,254,108,213,
-192,204,244, 3,175,191,244,208,166, 64,137,210, 57, 10, 43,134,162, 4,129,144, 63, 22, 43,201,123,236, 1,180, 26,238,215, 99,
- 21,199,210,122,167,245,133,185,173,217, 89, 11,196,243, 60, 82,210,250,131,119,216, 97,208, 55,203, 92, 17, 49,212,100,141,204,
-190,251, 59,135,216,229,117,101, 85, 61, 84, 42,246,180,251,103,181, 90,149,165,162,162, 82,157,214,187, 15,204,230,102,167,161,
- 18, 4, 59, 50,122,103,128,183,219,161,215, 55, 6,221, 48, 20, 3,254,153, 39,231,126, 5,192,103, 48,105, 14,228, 97,114,129,
- 71,117,237, 89,168,213,108, 91,208,242, 11, 60,244,198,150,128,229, 30,152,149,110,216,242,250, 99,155,119,124,190,247,187,255,
-219, 85, 58,166,174,190,113, 80,171,222,148,161, 80, 48,237, 28,167, 52, 13,202, 74, 47,255,253,236,252, 61, 83, 39,229,158, 1,
- 0,179, 57,176, 7, 93,170,170,206, 66,235, 65,126,127, 10,208,147,201, 15, 0, 10, 21,167, 44,251,120,251,246, 25,127,126,224,
- 62, 28, 45, 63,216, 81,147, 33,136,176,219,121, 76,155, 49, 5, 45,205,103, 96,148,103, 39,252, 41, 64, 64,254,124,240, 10, 80,
-180,255,168,133,231,133,189,238,159,213,176,108,227,246, 79,182,247, 95,176,224, 62, 84, 84, 28, 4,111,183,195, 46, 0,118,187,
-128,169,211,167,161,165,165, 14,102,115,247, 62,204, 3, 65, 64,209,254, 99,188, 40, 10, 13, 65,201,127,195, 52,232,155,235, 3,
-148,223,181,115,188,110,202,200,234,235,166,140,172, 14, 75,113,101,167,222, 91,122,156,231, 61,200,127, 49,147, 31, 0, 20, 26,
- 37,253,151,143,183,127,118,252,247,183,221,202,220,117,247,163, 56, 94, 81, 6,158,231,145, 61,108, 20,122,245,234,141, 67, 37,
-159,194,106, 49, 7, 76,111,127, 61,128, 40,138, 65, 43,200,233,250, 70,124,252,233, 30,187,205,230,232,178, 48, 71, 2,165,216,
-243,209,246,207,238,184,237,214,155,169, 59,238,126, 12,149, 21,101,224,121, 59,178,135, 93,137,222,169,105, 56, 84,186, 51,200,
- 41, 63, 34,159,231,169,175,111,196, 71, 59,246, 8,118,187,163, 52, 40,249,211,250,160,226,224,103,176,154,205, 81,146, 44, 48,
-212,214, 54,226,253,237,187, 61,202, 31,108, 16, 28,206, 68,182,209, 0, 37,138, 34, 6, 12, 72, 93,208,212,104,218,112,215,157,
-179,153, 89, 55,222,128,236, 33,191, 67,155,177, 17, 39, 43, 75, 96,179,154,131, 34, 47, 34,161, 0, 16,193,243, 2,206,157,111,
-197,161, 35,213,237, 59, 62, 47,230,121,193,241,176,195, 33,190,233,233,243,153,153, 41, 57,141,141,230,241,255,239,206, 89,212,
-236, 89, 55, 96,200,160, 65, 48,155, 27, 81, 93, 89, 10,139,165,123,158, 5, 22, 4, 30,103, 27,244, 40, 59,116,202,177,125,231,
- 94,209,110,183,239, 21, 69,177,194,183,252, 55, 83, 55,207,186, 1,217,217, 89, 48,155, 91, 80, 91, 85, 6,123,132,228,231, 67,
-145,255,108, 11, 14, 28, 58,225,120,239, 95,190,229,151,112,213, 85, 87,137,251,247,239,135,213,106,237, 22,242, 31, 63,126, 28,
-115,230,204, 65,105,105, 41, 21,148, 2, 0, 64, 66, 66,194, 96, 37, 35,188,108,177, 57,174, 48,155,173,189,228,133, 82,221,162,
-153, 20, 4,150, 85,158, 22, 4, 97,175,221,206, 63, 37,138,226,113, 95,159, 79, 73, 73,137,103, 68, 71,190,217,102, 75,105,107,
-179,168, 0, 80,221,108, 92, 68, 53,203,182,137,130,208, 96,113, 56, 74, 69, 81,212,255,150,229,151, 43,128,205,102,235, 22,203,
- 31,138, 2, 56,107, 72,244,122,253, 9, 0,211,113,145,162,169,169,201, 0,224, 11, 34,127,247,194,102,179,225,196,137, 19, 30,
-253,252,104,187, 61, 74,165, 50,248, 24, 0, 4, 4, 17, 2,199,113, 13, 19, 38, 76, 72,235,110, 25,130,142, 1, 8, 8, 46, 85,
-208,164, 9, 8,136, 2, 16, 16, 92,162,248,255,109, 43,244, 49,100,124,238,122, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
-};
diff --git a/source/blender/editors/datafiles/scrape.png.c b/source/blender/editors/datafiles/scrape.png.c
deleted file mode 100644
index 89b6b324f60..00000000000
--- a/source/blender/editors/datafiles/scrape.png.c
+++ /dev/null
@@ -1,417 +0,0 @@
-/** \file blender/editors/datafiles/scrape.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <scrape_png> */
-
-int datatoc_scrape_png_size= 13055;
-char datatoc_scrape_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,
-208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,
-249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77,
- 69, 7,218, 7, 19, 0, 34, 13, 86,254,139, 21, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,189,121,176,101,233, 81, 31,152,153,
-223,114,206,185,219, 91,170,170,107,233,234,234, 77,106, 36, 33,129, 6,144,196,210,116, 32, 1,178, 65, 4, 2, 2, 44, 6,205,
- 48, 2,198, 33, 19,158, 8,140,151, 48, 12, 99,198, 6, 19, 30,121,108, 6,135, 61, 16,120, 38,128,177,153,177,197,226,177, 25,
- 16, 98,179,144, 52, 32, 33,181, 90,162,213,123,181,106,223,222,114,223,187,235, 89,190, 37,115,254,248,206,185,247,150, 36, 27,
- 97,107,236,118,132,111, 85,191,122,203,125,231,126, 55, 79,126,249,101,254,126,191,204,198,199, 30,123, 12,254,196,199,231,242,
- 36, 29,153, 95,248,216,123,150,199, 55,163, 15,183,111,222,217,222, 29, 61,255,194,181, 59,251,227,255,225, 39,127,113,245, 36,
- 2,128,254,246,217,209,233, 71,122, 91,167,230,147,197,123,255,229, 7, 71,253,226,145, 7,207,255,242, 63,250,225,255,227, 93,
- 63,216, 94, 9, 1, 94,248,232,111,207,231,203,247,252,223, 31,120,221, 87,189,230, 77,223,248,229, 89,145, 19, 34, 71,238,109,
-157,184,249,169,143,127,253,215,127,179, 6,128, 51, 15,191, 58, 94,124,242, 75, 94,255,202, 7, 95,118,126,184,181,109,139,161,
-206,122,197,240,132,205,122, 31,250,205,119,255,249,111,127,179,186,112,225,254,251,122,238, 99, 31,126,234,117,143,126,209,112,
-107,219,230,131,172,183, 53,216, 62,173,116,118,241,241,223, 9, 49,250,198,105, 0,185,247,254, 51,103,207,223, 51, 24,237,144,
- 54, 72, 74,103,133,201, 7, 79,252,222, 47,223,188,182, 7, 8,117,213, 16, 0,140,182,119, 71, 59,219,136,136, 0,164, 84,127,
-251,244,165, 39,126,171,105,252,246,137, 81, 12,177,174,156, 6, 0,102, 6, 32, 36, 2, 82,194,241,131,255,242,159, 28,236, 31,
- 41,173,141,214, 33, 68, 34,212, 0, 0, 32,136, 36, 32, 16,253,244,104,175, 63,236, 11,192,222,237,113,185,172,170,101,237,156,
- 39, 0,136,193,199,224, 67, 83, 47, 38, 71,243,217,210, 53, 78, 68,182,182, 7, 28,153, 69,110,223, 62,194,207,233,222,125, 46,
- 15,188,252,201,223, 47,103,123,203,201, 1,128,252,226,207,253,250,104,216,251,178,175,120,245,183,188,243,199, 55,159, 68,118,
-176, 51, 58,253,176, 29,156,138,145, 51,163, 94,254,138, 11,206,185, 95,253,233,255,254,159,253,212, 95, 59,125, 98,171,189,119,
-215, 62,249,190,249,116,241,252,211,151,175, 94,190,253, 53,111,126,253,104,103,168,141,225, 24, 17,241,195, 31,252,205,235,207,
-252,225, 99,223,254, 87,241,250,197,199,159,248,253, 95,155,140,167,131, 81,255,220,125,103,242,254,150,182, 61,147, 15,134,187,
-231, 94,252,216,111,221,185,117,120, 60,158,210, 71,126,231, 95, 60,249,248,115,121,145,221,123,225, 92,214, 27,153,188,159, 15,
-118,183, 78,221, 95,207, 15,174, 95,185, 19, 92,168,171, 70, 63,244,242,135, 50,107,238,185,247,140, 49, 57,146, 82,202,228,253,
-173,197,209,205, 63,124,239,175, 55,141, 43,203,154,148, 34,219,223, 62,125,254,156, 86, 86, 16, 0, 32,239,239,112,112,207,126,
-244,131, 87,175,220,178,153, 65,132,199,159,120, 65,187,106, 78,132,128, 64,128, 72,180,119,229,201, 79,124,228,147, 33,196,243,
-247,157,190,118,249,206,137, 83, 91, 15,156, 63, 69,194, 17, 0, 5, 1, 16, 92, 57,155, 79,167,103,239, 61,149,231,118, 58, 93,
-246, 7,249,165,139, 55,132, 69,123, 87, 19, 17, 68,244,193, 47,230,139,186,108,156, 11, 69, 47,247, 62, 78,142,103, 89,102, 38,
-147, 57,124,190,238,157, 22,145,167,158,120,255,246,246,142, 72,228, 24, 57,120,225,128, 8,161, 94,248,102, 89,151,179,255,231,
-221,239,249, 31,255,183, 95,249,156, 46,212,183, 82, 30, 93,111,150,147,186,156,186,186,246, 33,120, 23,110,223,216,251,192,251,
- 62, 97, 12,189,242,213, 15,253,237,191,240,182,222, 32, 63,119,254,180,128, 56, 23,254,198,255,242,139,215,110, 31,124,186, 51,
- 61,250,232,163,127,255,135,223,230,157,231,200, 28,249,198,245, 59, 31,122,255, 39,238,123,224,204, 43, 94,253,208,193,254,241,
-112,212,223,218, 30, 40,173, 1, 64,132, 57,114, 12,236, 99,116,181,115,206,239,223, 57,250, 43,127,239, 23,218, 21, 1,192,169,
-251, 95, 27,125, 93, 30,223,220,191,125,107, 54,153,111,239, 12,179,220, 50,243,203,190,224, 66,150,231,202, 88,165, 12, 41,141,
- 68,136,132,164, 77, 62, 80,202,154,188, 47,236, 79,158,218, 17,142, 63,244,247,254,137, 6,192,107,207,124,200, 59,255,228,199,
-159,159, 28,205, 31,120,248,222,175,120,236,181,131, 81, 63, 43,114, 99, 11,101,172,210,153,210, 70,153, 76,153,220,230, 67, 84,
-122,124,227,185,195, 59,215, 92,217,204,102, 11, 66,137, 2, 63,252,125,223,166, 1,224,120, 60,109,106,167,149,190,240,192,217,
-135, 31,185,208, 27,244,149,182,164, 52,146, 86,202, 40,155,105,219,179,249,192,246, 70, 32,114,251,133, 15,125,234,249, 75,229,
-178, 82,138,124,136, 68,196,204, 72,168, 1,228, 11,223,240,104, 53, 59,120,240,145, 57, 34,146, 50, 74, 43, 16, 68, 36, 68, 0,
- 4, 82, 58,239,111,155,188,239,154,250,240,218,211, 31,250,192, 71, 79,158,218, 9, 33,214, 85, 19, 35, 51,243,193,222,177, 49,
- 90, 3, 64, 61, 59, 12,174,209,202, 36,215, 5, 22,160,116, 33,165,109, 94, 12, 78,140,175, 63,245,194, 83,207, 79, 39,115, 68,
- 24, 14,250,222,135,253, 59, 71,231,206,159,138,145,151,139,114, 56,234,141, 15, 38, 26, 0, 66,112, 0, 0, 8,237, 42,128, 0,
- 16, 64, 56,250,197,209,237, 59, 87,158, 47,151,149, 8, 11,128,107,124, 93, 59, 0, 24,109,245,103,147,197,157, 91,227,237,221,
- 33, 2,228, 69,174, 1,128, 99, 0, 1, 68, 0, 16, 17, 0, 9, 0,208, 52,206,213, 77,211, 52,174,241, 28,217,102,118,247,132,
- 10, 62,206,166,139,178,172, 67,136, 28,185, 63, 40, 14,246,142,202,178, 25, 12,122, 26, 0,235,114,137, 0,136, 8,136, 32, 18,
-153,163, 15,222, 7,239, 67, 12, 49,132, 24, 99,140,129, 67, 8, 33, 68, 99,116, 81,100, 77,227,154,218, 11, 72,150,219,178,108,
-246, 15,143, 63,127,113,242,243,242,184,112,225, 2,125,190,174,165, 31,122,240,254, 15,189,255, 55, 67,240, 49, 6,137,193,251,
- 70,107, 29,154,210, 55,139,232,155,235, 47, 62,255, 13,239,248,209,207,229, 66,234,143, 63,252,155,213,252,176,158, 29, 44,143,
-110,204, 15,175,149,211, 59,229,116,111,122,120,243, 3,239,125,255, 35, 95,248,202,139,207, 60,191,173,236, 79,252,200,247,126,
-203,215,190,225,217, 23,175,239, 31, 77, 63,235, 85,182,182,182,240,234, 51, 31, 12,174,105,170, 89,179, 60,106,170,165,119,222,
-251,176, 92, 84, 31,251,240,211,207, 92,186,249,198,175,250,162,217,116,225,157,191,239,193,179, 54,203,152,217, 59,255,142, 31,
-250, 7,159,105, 35,188,115,229,147, 81,162, 68,142,193,213,203,217,114,126, 12, 97, 49,190,125,231, 19,143, 63,115,235,230,225,
-133, 7,207,158, 59,127, 15, 42, 18, 22, 34, 66,132, 24, 57,132, 48, 57, 94,252,197, 31,255,217,187, 46,244,177,247,254,140,115,
- 77,240, 65, 68,202,101,245,177, 15, 63,125,249,202,237,111,125,219,215,141,247,143,130,143, 39,239,217,205,114,131, 68, 32,194,
- 44, 49,198, 16, 98, 8,161,169,125, 93, 54,223,255, 55,127,186,241, 33, 93, 72, 35, 81,112,161,105, 92, 8,126,114,180, 88, 46,
- 43, 77,234,201,199,159,123,249, 43, 47, 12,134,131,188,103,181, 54,136,132,132,194, 44, 44,128,160,181,217, 62,243,240,232,228,
-249,143,191,233,141,207, 63,249,177,111,125,231,223, 6, 0,189,115,239,171,182,207,113,179, 56,154, 30, 92,155,207,202,162,200,
-206,158,179,103,239, 61, 57, 24,246,251,131,194,216, 76,153, 54,164, 32, 33,130, 82, 38, 51, 89,159, 99, 0,192,195,219,151, 23,
-211,229,207,252,232, 59,255,206,207,191, 71,107, 99, 35,243,209,254,141,201,120,106,140, 57,117,207,110,111, 88,156, 58,189,219,
- 31,244,178,188, 80, 38, 87,218,144,182,164,140, 82, 90,103, 61,219, 27,101,249, 96,124,253,147, 79,252,222, 47,151,139,154, 52,
- 89,163,191,225,209, 47,209, 47,126,252,125,136,184,119,123,252,212,199, 47,110,239, 14,239,123,224,236,206,238,168,232, 23, 54,
- 47,180,201, 72, 91,173, 51,210, 86,155, 76,103, 61,147,247,155,114,126,233,201, 63,144,216,212,149,243,222,199, 16,157,243,214,
-106,154, 28,205, 15,247,143,143, 15,167,206,121,165,213,246,206,176,151,214,162, 45,165, 80,173,116,186, 74,214,219, 34,210,121,
-127,107, 56, 26,148,203,250,214,173,177,205, 76,100, 6,128,249,172,212,218, 40,142,108,172, 62,125,246,196, 3, 15,221, 59, 24,
- 13,109,158, 19,105, 36, 69,164,136, 52,105,163,180, 53, 89, 79,105, 83,206,246,159,127,252, 3,135, 7, 71, 28,101,119,167,255,
-244, 39, 47, 63,252,178,123, 17,157,205,180,126,224,229, 95, 80, 45,142,251,163,222,185, 11,178,181, 61,178, 69, 15, 73,181, 33,
- 5, 1, 0, 20,146, 50, 86,155, 44, 6,183,127,229,233,233,100,222, 84,158,153, 17,225,236,153,221, 63,250,240, 51,175,121,205,
-131, 0,168,251, 59,103,149,237,145,210, 49, 6,165, 12, 34, 17, 32, 32, 34, 34, 8, 32, 34,153, 60,235,111,251,166, 22,224,139,
-207,190,152,231,153,177,186,169, 93,112,129, 69, 30,122,240,204, 71, 63,242,172, 12,134, 20,124, 29,220, 18,144,148, 50,128,132,
- 0,105, 33,237, 86, 52,182, 55, 58, 17, 92,189, 24, 95,123,230, 15,223, 59, 26,245,231,179,229,116,178, 24,109, 13,180, 53, 34,
- 64,132,231,206,238,206,103, 75, 29,154,101,244, 14, 65,128,218,107, 72, 10,223, 72,164,180, 49,189,122,118,112,241,143, 63,116,
-235,250,190,115,222, 24,109,172, 41,122,217,165,139,215, 47, 60,120, 46,132,224,156, 88,107, 93, 8, 58, 6,199,194,128, 4, 0,
-136, 2, 64, 41,236,166,232,191,152,220,186,115,237,202,173,235,251, 85,213,196, 40, 49,114,140, 81,107, 61,218, 30, 92,124,238,
-234,217,123, 79, 41, 69,164,176,200, 44,113, 12,237, 91, 65, 20, 1, 68,193,246, 24, 96,239,202,229,116, 12,136,219,187,163,162,
-200,148,198, 24, 99, 93,185,229,162, 4,128,162,103,111, 94,219,139, 49, 2,128, 82,138, 68, 24, 64, 68,164,141,255, 0, 32, 2,
-194,193, 55,174, 90,186,166, 17, 22,109,212,246,238,104, 48,232, 41,165,152,197,249,224, 26,175,148,138,204,123,183,143, 92, 19,
- 0, 68, 75, 12,194, 12,136, 44, 76,136,194,194,192,194, 49,120, 87, 87,117,211,248, 16, 66,140,204, 44, 89,110, 69,100, 54, 93,
-132,208,190, 71,107,244,193,100,193,204, 41,173,107,210,251, 66,164,152,146,120,225,224,156,115,222, 53, 46,184, 16, 67,140, 33,
-166,223, 84, 74,245,122, 69, 8, 49, 70, 22, 1, 64,208, 90, 77,103,101, 96,210,222, 59, 17, 64, 4, 68, 2, 0, 97,142,145,189,
-243, 33,108,156,107,233, 66,129, 67,136,204,108,141, 22,150,200, 17,137,172, 53,211, 69,233, 35,193, 75,234, 92,187,239,190,251,
- 8, 94, 74, 15,196,182,214,106, 31,175,251,178,215,126,215,219,190,237,181,175,249,194,251, 31,184, 80,228,153,164,231, 0, 8,
- 8,136,128, 8,128, 72,186, 25, 28, 57,134,189, 59,183,222,243, 27,191,254, 99, 63,249, 79, 63,143,107,210,145,249,206,181,167,
- 0,144,153,129, 35,115,224,224, 57, 86,229,100, 18,131, 23, 14, 2,160,116, 70, 74,165, 10,112,178,127,253,185,167, 47,126,201,
-151,127,169,111,170, 56,159,188,234,194,233, 31,249,111,222,122,249,214,225,238,185,221, 95,250,245, 15,236,143,167,255,190, 11,
- 66,128,197,248,102,140, 94, 98,136,193,197,224,162,175,163,119,157, 7,114,202,225, 68, 36, 70,118,141, 59, 26, 79,175, 93,188,
-246,129,223,251, 8, 88,243,231,222,246,166, 16,184, 63, 40,206,238,140,154, 73,245, 55,255,187,239, 58,121,106, 11, 24,152, 99,
-140, 2, 32, 79,189,112,245,231,126,229,119,247,198,147, 63,197,130, 0,128,108, 31, 69,136, 8, 73, 17, 34, 71, 23, 92, 19,220,
-210,215, 75, 87,205,131,111, 98,136, 33, 4,142,209,251,224, 27,207, 34, 86,171,178,106,126,237,221,191,119,250,204,137,211,231,
- 78,156, 62,119,146,163,136,200,236,120,174,180,178,153,213, 70, 33,194,107,191,240,225,159,122,229,131,204, 18, 3, 59,215,252,
-236, 63,255,173,143, 62,245,226,159,188, 32, 55,223,143, 49, 8, 71,142,161, 45,223, 73, 3,160,119,213,100,124,244,226, 11,215,
-174, 95,185,253, 95,190,243,123, 16,101,186,127,181,169,221,137, 83,219, 90, 43, 64, 28, 12,123, 59, 39, 70, 69,191, 48, 70, 19,
-117,251, 67, 68,160,253, 35, 2, 44, 2, 44,145,217,102,250, 7,191,239, 91, 99,140,190, 9,207, 94,188,242, 63,255,194,175,125,
-118,191,126,244,209, 71,255,254, 15,253,185,224,125, 10, 47, 41, 60,165,212,165, 46,155,131,189,241,245,171,123,123,251,199,129,
-121,212, 47,238, 61,127,234,204,249,123,178,220, 18, 97, 58, 1,140, 53, 90, 43, 66, 18, 20, 74,197, 44, 32, 8, 51, 11, 0, 48,
-139,136,176, 8, 72, 10,221, 82,215, 62, 50,245, 71, 59,247,156,127, 96,231,196,201,247,253,206,123,254,194, 95,125, 87,221,184,
- 85,130,165, 1, 96,231,204, 67,174,154,187,102, 25,154,202, 55,206,135,232,156,103,199,141,243,141,243,128,208,203,173, 54,122,
- 48,236,229,253,156, 8,139, 34,203, 10,107,173, 37, 69, 74, 41, 82, 10,145,136, 8, 17,211,137, 40,136, 40, 32,194,105,155, 18,
-105, 34,133, 90, 43,157, 41,157, 41, 99, 8,105,118,112,245,133,203,127,188,165,249, 23,254,238, 15, 84,203,230, 93, 63,251, 43,
-207, 93,189,213,221,178,166,170,235, 50,250, 64, 58, 31,110,157,201,138, 33,251,102,178,127, 53,198,216,235,231,219,187,195,225,
- 86,191, 40,178,209,214, 96, 48,234,247,251, 69, 94,100,218,104,165,181, 82, 26, 73, 83, 58,210, 72,117,149,101,187, 50, 34, 69,
-100,218,117, 24, 75,202, 16, 41, 99,243,122,126,116,124,231,226,236,248,200, 53, 62,196,120, 60,158,231,185,253,203,223,251,214,
-106, 89,255,175,255,226, 3, 26, 0,184, 89,102,121, 65,197,208,251,102,124,243,242,213, 43,183,198,123, 71, 54, 51,189,126,174,
-181, 62,125,250,132,201,108, 94,216,188,200,178,204,106,107,116, 90,138,210,164, 52,145, 66,165, 8, 53, 18, 33,169,148, 2, 33,
- 41, 82, 70,117, 73,149, 82, 6, 8,217,187,233,222,165,163,219, 87,102,211, 69, 83, 57, 31,130,176, 0,192,104,212,243, 62, 78,
- 38,139,221,157,209,215,127,229, 23,107, 0,188,118,233, 50, 0,176, 72,112,254,248,104,118,231,246,120, 54, 89, 32,225,206,238,
-232,244,153, 19, 91, 59,163,162,159, 89,107,149, 86, 90,107,165, 13,146,194,180, 20,164,100, 33, 68,133, 74,165, 21,144,210,164,
-172,182, 25,233,140, 72, 5, 95, 7,223,152,172,103,178,158,206,250,135, 7, 83,165,176,232,231, 80,214,222, 5,239, 3, 71,142,
- 49,142,134,189,163,241,132, 57,221, 50,231, 18,182,229, 93,112, 46, 16, 97,158,103,189, 65,126,207,153,221, 83,103, 78, 12,134,
-133,177, 86,105, 77, 74, 35, 18,145, 2, 36, 36,234,110,147, 34,210,221, 58,140,210, 70,233, 76,217, 92,155, 76, 68, 56,122, 9,
-205,226,224,242,193,237, 27,243,201,162,113,142, 89, 2,192,108,186,184,121,227,240,225,151,223,139,136, 77,221, 48,139,176,228,
-153, 13,110,166, 1,224,228, 61,187,174,241, 62,165, 21,154,122,253,140, 72, 13, 71,253,209,246, 48,239,229, 90, 91, 82, 10, 19,
-104,132, 8, 68, 8,132, 68, 72, 4,128,216, 45,142,148, 81,198, 42,109,181,201, 81, 27,142,190, 94, 76,142,239,188,112,120,251,
-206,108,178,168,170,198,251, 0, 34,109,102,129,120,250,244,206,209,225,244,202,165,219, 15, 60,116, 54,207, 12, 51, 35, 81, 11,
- 25,156,123,217, 23, 71,239,188,171,220,114,218,212,203,224, 61, 34,146,214, 90,105,210, 38,185, 42, 32,162, 32, 16,160, 16, 80,
- 10,222, 64, 4, 41,143, 34,165,148,177,198,246,116, 86, 0,169,224,234,114,118, 56,190,254,220, 98, 62,151,148,120, 17,166, 40,
-144,194,138,136, 8, 0,128,220,123,254,228,241,120,122,245,202,222, 67, 15,159,179, 86,137,136, 78, 41,167,128, 32, 8,105, 99,
-179,194,216, 12, 68, 4,145,218,165, 80,151, 12, 10, 8, 2,166,165,164,108, 14,145,148, 54,185, 41,134, 89,111, 4, 2,174,174,
-180,177, 40, 2,190, 86, 74,113,140, 55,175,239,237,221, 26,159, 60,189, 51, 26,246, 99,140,206,249,224, 67, 12,156, 30,192, 80,
- 20,217, 3, 15,158,185,115,107,220, 52,174, 33,163, 1,192, 55,165,119, 85,244,142,163, 23, 0, 68, 2, 74,201, 53, 1, 96,178,
-115, 2, 38,218, 15, 41,222, 16,145, 54, 38,239,103,253,109,109,114, 95, 47,203,233,222,248,230,167,198,227,227,114, 94,122, 31,
- 0,144, 20,246,251,197,131, 47, 59,191,152,149, 47, 62,127, 53,239,101,231,206,159,206,243, 22,111, 8, 33,132, 24, 68, 68, 17,
-109,239, 12,198,135,211,195,163,185, 6,128,224,235,232, 29,199,144, 82,217,116,120, 8, 8, 17,164,251, 2,128, 32,128,132,128,
- 8,128,148,188, 0, 21, 2, 70,239,150,227, 27,179,195,155, 7,251,135,147,163,121, 85,214,174,243, 21, 74,222, 69,164,181,202,
-114,115,225,193,179, 85,229, 47,191,120, 35,134,120,250,220, 73,107, 53, 34,136,136,120, 65, 68,165,213,112,216, 27, 44, 19, 64,
- 29,188, 72, 20, 88, 91, 66, 68,136,168, 93,141,128, 16, 36, 12, 10, 1, 5, 16, 16,153, 25, 98,229,235,232, 93, 85,151,203,114,
- 89,185,218, 35, 2, 41, 82, 76, 28, 89, 88, 98, 20,230, 0,128, 33, 4,132,180, 37,112,103,119, 84,215,238,230,181, 61, 17,217,
- 57, 49,178,198, 96,138,166,136, 90, 43,107, 76, 2, 1, 35,136, 32,200,234,254,180, 39, 37,130,136, 32, 17, 10, 38, 7, 18, 4,
-144,200, 81, 56,134, 24,124,240,206,123,239,125, 32,162,188,151,153, 76, 23, 46, 4, 31,154,198,213,181,243, 46,165,245, 12, 0,
-192, 2, 8,201,224,132, 48, 26,245, 23,139,106,239,214, 88,107,213,235,231, 68, 20, 99, 20,233, 50, 70,142,145,153,219, 90, 42,
-249,119,242, 88, 17, 32, 98, 97, 20, 4, 70,129, 0, 1, 68, 56, 6,207, 49, 4, 31,210, 35,182,167,114,114,118,210, 70,147, 34,
- 99,141,107,124, 83,187, 4, 94, 49, 8,135,180,187, 34,136, 48,136,181,154,163, 93, 46,203,249,188,204, 50,107,173, 22, 0, 78,
-187,140,163,111,183, 97,187, 16, 4,110,235, 52,224, 8, 0, 32,192,192,194, 41,121,229, 24, 66, 7,141,197,148,205,166, 71,100,
- 1,145, 24, 89,152, 1,192, 88,173, 20,121, 23,234,186,113,206,167, 36, 66, 68,210, 83,153, 37,165, 12, 77, 19,102,243,133, 53,
-198, 26,195,204,105,151,213, 44, 9,150,219,248,179,225, 79,233, 50, 18, 57, 50,199, 16, 98,228,200,204, 49,198,152, 46,207, 49,
- 69, 23,150,200,237, 43, 50,167,127, 5, 0,172, 53, 68,212,160, 3, 31, 98,136,235, 76,157,128,148,202,172, 14, 49, 46,171,198,
-185, 16, 2,104, 68,252,157, 63,124, 70, 36,149,191,171,231,182,119, 60, 69,157,148,107,125,198, 3, 54, 62,131,238, 59,188, 74,
-131,238,122, 90, 90, 98,247,214,186,101, 11, 71, 14, 33,122, 47,141, 7,118,193, 9,190,196,240,198, 84,155,189,116, 22,243,216,
- 99,143, 81, 91,209,191,100, 30, 47,173,202,245,165,184,160,187, 74,233,239,126,251,119,252,153, 55,191,233,149, 95,240,240,233,
-123, 78,111,226, 87,146,206,182,182,130, 96,142, 81, 36, 86,203,229, 83, 79,126,252,111,253, 79, 63,253,201,231,175,124, 62, 23,
-132,136,239,252,111,191,251,111,253,232, 95,143,145,161,123,201, 24,188, 72,170,135, 2,199,160,148, 1, 20,142,142,189, 99,246,
-236, 93,228,200,193,221,123, 34,255, 75,255,245, 55,253,227,255,243, 55,255,232,217, 79,125,190, 22,164,126,226,199,126,228,251,
-223,249, 14, 4, 4,137, 32, 81,162,103,223, 68, 87, 69,183,244,245, 60,184, 37,114, 76, 63, 98,102, 87,205, 47, 61,243,199,182,
- 24, 16, 6, 87, 45,166, 71,147,155,215,246,108,148,183,127,231,159,201,140,126,254,210,205,127,207,213,220,127,255,253, 90,162,
-111, 22,199, 28, 29, 7,207,209,199,224, 98,104,162,111, 56,184, 24,163,164,204, 18, 80,132, 99, 12,229,178, 60, 62,156,252,191,
-255,250,151,190,249,237,111,203,148,113,222,139,136,214,234,163, 31,122,234, 47,190,227,155,255,252,119,254, 89,231,252,254,225,
-228,163,127,124,241,231,126,245,119,254, 29, 45,244,230, 55, 61,250,240,133,123,162,111,216, 55,193, 85,190, 41,163, 43,131,171,
-189,115,222,187, 24, 98, 12,193, 57,231, 26, 87,215,205, 98, 94,141, 15, 38,251,119,142,126,247,119, 63,120,230,244,142, 82,176,
-152,151,174,241,150,240,217,167, 46,157, 62,119,130,136, 50,107, 30,186,239,204,183,189,249, 43,223,250,181,175,223, 63,154, 92,
-191,125,248,167,178,144,122,203, 55,124,221, 43, 95,241,114,165, 45,146, 74, 80,174,180, 80,208, 26,244, 16,145, 24, 99,240,177,
-174,234,233,241,252,120, 60, 43, 27,247,236,179,151,209,135,193,176,175, 53,229,185,237, 15,138,249,100, 33, 8, 54, 51, 68, 68,
-132, 68,248,101,175,121,249, 91,191,246, 13, 95,242,170,135,222,255,209,167,218,227,251, 79,188,101, 44,192, 66,136,100,242, 60,
-235,109, 11,115, 12, 77,240, 85,168,151,174,154,251,166, 12, 33,196, 16, 36, 21,231,136, 0,160,181,202,181, 34,162,233,100,209,
- 31, 20,219,187, 35, 17, 96,102, 4, 32, 69,193, 71, 99, 81, 41, 66, 84, 68,162, 20, 61,120,225,236,207,255,157, 31,248,212,213,
-219, 63,246,211,239,254,147,119,153, 49, 89,209,223, 2,224, 22, 31, 3, 33,165, 81, 25, 80, 57,163, 13,162, 79,220,179, 91, 45,
-142, 92, 53, 47, 23,203,166,110, 76,102,138, 94,182, 21, 88, 25, 26,109,245,243, 94,150,247, 50, 99, 76, 58,141, 69,160, 75,114,
-169,251,142, 32, 18, 43,124,228,161,123,127,225,239,252,192,123, 63,248,196, 63,127,207, 7,255,109, 11,170, 23, 71,147,219, 47,
- 36, 44, 38,129,196,128, 72,168, 35,135,106, 49,185,113,229,230,197,231,174,124,225,235, 95,255,200,171, 94,105,243,195,166,105,
-122,189,124,180, 61,176,153,205,114,179,189,187, 53,218,238,219,204,166, 66,167,187,207,237, 7,144,182,224, 65, 20,102,140,200,
-128,248,141, 95,243,165,111,122,253,171,255,242,223,253,249, 69, 89,127,118,167,126,211, 87,189,246,252,169,162, 46,103, 77, 57,
-175,203,101,181, 92,214,213,178, 92,204, 22,179,227,227,131,227,219, 55, 14,246,110, 31,125,226, 35, 79, 62,249, 71,143, 91, 11,
- 54, 51,194,172,180,234, 15,123, 91, 59,163,173,157, 65,111, 80,152,204, 26,163,181,214,186,173,181,149,210, 74, 39,154,163,173,
- 35,219,172,185,125, 73,173,222,244,134,215,156,221,222,122,226,185,203,159,197,169,223,244,213, 95,118,225,236, 78,240,193,251,
- 54, 17, 12, 62, 56,231,155,202,205,230,229,209,193,228,120, 60,171, 26,207,194,203,233, 2, 1,179, 60,203,138,172,215,207,251,
-131, 34,239,101, 54, 45,198,168, 4, 65, 40, 77, 90,173, 30,105,141, 74, 27,109,173, 41,138,204, 88,163, 76, 94, 12,134,247,191,
-252,149,111,126,235, 91,191,239,187,191,237,120,255,214,211, 47, 92,189,203,169,149, 82,218,104,230,152,202,173,148,232,197,132,
-222,185, 16, 98, 4, 0,163, 41, 51, 26, 73, 57, 23,152, 57, 47,172,205,173,209,233, 21,245,170, 44, 74,204,244, 93, 89, 27,180,
- 20, 3, 17,105,155, 23,195,147,197,240,132, 45,134,218,102,205,252,200,207,238,124,207,119,124,221,155,191,252,139,190,239, 71,
-254,225,218,135,108,111,123,176,115,206,215,115,223, 84,174,169, 99, 8,222,133,148,122, 10, 11, 2, 26,171,123,136, 69, 47, 27,
-142,122, 69, 47, 51, 86,219,204, 36,195, 40,173,144,136,148,106,203,180, 84,207, 74, 34, 60, 4, 68, 0, 1, 73, 33, 42, 82, 74,
-233, 12,145,124,179, 96, 14,126,127, 58,190,115,101, 54,153, 85,101,157, 89,243, 15,254,250,247,254,192,187,126,174, 93, 16,105,
-155, 15, 79,229,195,147,194, 49,186,202,213,179,122, 49, 41, 23,139, 16,130, 82,100,172,206,139,172, 40,176, 55,200,183,118,134,
-253, 65,145,231,153,181,214,180,128,149, 66,210, 45, 90,170, 40,169,143, 16, 87,188, 9, 38,120, 68,105, 75,202,146,210, 28, 3,
-146,238,141, 78,202, 96,151,133,239,220,254, 88,112,129, 57, 14, 6,189, 31,255,254,183,253,141,159,121, 55, 0,232,208, 84,211,
-131, 43,190, 41, 65, 68,101,253, 94,127,123,120,106, 75,103, 7,206, 57,109,151, 89,110, 71,163,126,242,226,209,214,160, 63,232,
-229, 69,102,140,214,198, 16,105,165, 40, 65, 82,136,148, 44,129,173, 30,129, 0,137,148, 34,165,149,182,202,100,164, 50, 36, 50,
- 38, 67,224,233,254,229,227, 59, 87,231,179,121,102,204,244,120,110,181, 66,132, 19, 39,183,255,202,119,189,229, 35,215,231,218,
-228,189,147,247,126,129, 0,186,102, 57, 31,223,188,118,241,201,170,172,251,253, 34,132,168,136,138, 34, 75, 46,217, 31, 20,237,
-106,172,209,214, 40,165, 73,107,162,100, 33,133, 45,204,168, 16, 21, 16, 34,166,165, 24, 82, 86,153, 76,155, 76,105,139,136,229,
-228,206,209,205,231,143,199, 71,229,178,246,206,139,200,112,216, 91,204, 74, 82,100,140,122,240,129,179, 31,185, 62,211,213,236,
-224,248,214,243,164,173, 8,184,114, 86,151,213,245, 43,119,124,227,251,131,194,230,214, 88, 83,244,139, 44,183,121,145,229,185,
-181,214,104,173, 73,107,165,116,226, 48, 91, 40,109, 13,230,165,219,167,137, 12,105,163,148, 38,165, 1, 32,134,166, 89, 28, 31,
-223,186,120, 52, 62, 42,231,149,115, 46, 21,113, 0,144, 23,118, 60,158,142, 70, 3, 54, 44, 0,186, 90, 46,199,123,183, 8, 49,
- 50,151,139,106,255,206,209,100, 60,171,202,102,185,172,118, 79,108,109,109, 15,122,253, 60, 47, 50,107,141, 49, 70,155,110, 53,
- 74, 39, 87,109,241,188, 22, 87, 76,214,210,201,105, 18,248, 23,131, 47,167,251,147,189, 43,203,249,162,101, 62, 91,208, 98, 13,
- 65,247,123,197,237,155, 7,167,207,236, 0,128,118,206, 47,230, 37, 2, 68,230,114, 89,149,139,170,105,156,247,193, 6, 35, 34,
- 54,179, 69,145,217,204,182,171, 81,170,229,135,177,133, 56,147, 35,167,123,135,221,106,148,206,148,201,148, 54,194, 28,164,233,
-143, 78,109,159,186,223,215,243,219,151, 62,241,201, 39,158, 61,127,254, 36,128, 52,181,112, 20, 22,142, 49,138,200,104,212,187,
-244,226, 45, 4,208, 28, 57,221,206, 24,185,169,125, 8, 17, 68,148, 34, 99, 84, 81,228,189, 94,110, 51,107,173, 73, 24, 35, 41,
-221,110,242,116,154, 39,228, 2, 85, 27,144,149, 86,202, 40,109,149,177,218, 88, 1,228,232,140,201, 36,250,227,155,207, 28, 31,
-220, 92,204, 22, 39, 79, 14, 47, 62,127,237,204,185,147, 54,179, 34,142, 57,166,154, 17, 0, 71, 91,125,128,177, 78,248,171, 68,
-230,200, 34,140,136,198, 26,155,225,104,107, 48,218,238,231,189,204, 88,163,141,161,149,175,180,182, 33, 74,235, 82,132,132, 43,
-103,106,215,164, 44,146,146, 24, 16,161,154,237,143,111,190,112,124,120,188, 92, 86, 49, 68, 17, 56,117,207,206,222,237,195, 44,
-207,118,118, 6, 20,168,139, 16, 96,180, 2, 0,173, 52,105,173, 24, 81, 16,180,214,121,145, 1,136,177,102,247,228,246,104,123,
-152,229,153,177,150, 58, 16, 24, 16, 33,125,132,187, 62, 65, 34,213,194,177, 38,193,146,194,204,190,153,141,175, 30, 92,191,116,
- 60,158,148,203, 38,132,192,204,132, 72, 68,219,219,131,201,100,113,229,202,226,220,217, 19,164,136, 66, 71,170, 3,232, 60,207,
- 70, 91,131,116,126,165, 19,176,215,207,139, 94,190,181, 61,232,245, 11,155,101,164,116,107,152,246,119,186,180,168,253, 8, 93,
-224, 65, 76,144, 62, 18, 8, 71,223,204,199, 55, 14,111, 94,158, 28, 77,151,203,202, 53,129, 99, 4,128, 8, 72,196,128,216,235,
-229, 77,237,158,123,238,250,195, 15,159, 37,165, 40,196,118, 65,197, 96,116,226,158, 51,222,213, 77, 93,213,101, 85,215,153, 8,
-100,153,205,139,204, 90, 75,202,160, 82,105,115,180, 76,188,172, 74,221, 53, 56,145,110,158,106, 81, 91, 37, 32, 49, 70,239,235,
-224, 67,140, 45,236,154,192, 6, 0,136, 49,137,159,160,215,203,203, 69,245,220,211, 87, 30,124,217,189,237,225, 7,160,181,237,
-245,182,206,196, 80,155,106, 97,236, 52,107, 26,102, 81,138,180,214,164, 12, 81, 2,132,147, 93, 64, 18, 22, 11, 27,229,119,218,
-199,109, 68,206,149,182,204,220, 84,139,233,222,165,163,253, 27, 33, 68,107,141,119, 62,248,200, 8,169,200, 18,110,211, 37, 16,
- 24,110,245,203,101,125,229, 83, 55, 79,159,217, 77, 76, 3, 33, 18,166, 35, 73, 25,109,115,155,229, 89,150,105,147,252,134, 82,
- 10,144,128, 79,144, 86,130,209, 1,127, 45,109, 75,148, 50,140, 66,153, 44,120,231,155, 82,105,219,219, 58, 21,124,120,254,153,
-203,227,195,137,210, 74, 27,165,148, 74, 33, 40,189, 39, 22, 97, 78,248,235,104, 49,175,238,220, 30, 55,141, 7, 0, 18, 16,142,
- 62,209,171, 0,128, 74,145, 82, 74, 41, 36, 74,233,104,119,111,218, 66,118, 37, 55,107,153, 39,210,202, 88,147, 13,148,201,124,
- 83, 49, 71, 99,243,232, 22,213,116, 47,203,204,217,243,167, 14, 15, 38, 87, 47,221, 2,196,188,151,101,185, 81, 90, 17, 33,117,
- 5,177,136, 24,171, 78,156, 24,237, 29, 76,166,211, 5, 0,104,225, 24,131,143,177, 73,176, 48, 9, 50, 38,159,167, 21, 84,222,
-242,209,132, 40, 40, 40,157, 35, 39,212, 60, 51,121, 95,219, 44, 6, 39, 28,124, 53, 63,220,191,116,124,112, 80, 85, 77, 12,172,
- 73,221,123,225,244,173,235,251,151, 95,188,249,192, 67,231,138, 34, 39,242,174,105,156, 0, 49, 68,137,201,210, 54, 51,219,195,
-254,237,131, 73, 90, 16,199,224, 36, 4,225,216, 38,249, 68, 29,115,208,214, 26,201, 72,237,109, 19,130, 4,239, 19,145,210,100,
-114,210, 54,250,166,169,166,211,189,203,135,119,238, 76, 39,179,166,114,204,140,136, 90, 43, 68, 58,117,122, 23, 96,124,233,197,
- 27,231,238,187,103, 52,234,139,136,136,111, 26,183,174, 11, 16,139, 94, 6,179, 5, 0,105,225, 40, 28,152, 67,114,182,214,117,
- 91, 58, 97,211,119, 91, 7,134, 85,122,136,138, 72, 17,160,175, 23,245,236,224,240,214,229,195,253,163,249,108,217, 52, 46,198,
-136,128,138,208,107,149,242,255, 19, 39,183, 21,169, 91,215,246,234, 83,219,187,187, 35,173, 41, 70, 37, 73,249, 3,130,132,198,
-168, 97,145, 65,229,180,136,112,140, 9, 27, 68, 68,128, 86, 44,211,137,185,113,133,230,119, 10,156,246,145, 0,226,166,156,214,
-203,163,241,222,173,241,193,241, 98, 94,214,181,231, 24, 19,238, 30, 17, 21, 11,107, 81,138,136,104,107,103, 32, 32,135,119,142,
- 92,227,119,118,135, 74, 81, 80,132,145,177,227, 31,243,220, 2, 56, 45,194,194,177,141, 41, 32,105, 53, 34,130,107,229, 78, 75,
-112, 72,183,219,219, 18,135, 67,108, 92,104,170,249,228,104, 62, 93,212,149, 11, 62, 66,183,167,153,153,136, 98,228,150,167, 38,
- 17,128, 94, 47,247,163, 48, 25,207,130,243, 91,187, 35,130,238, 4, 66, 32, 34, 99, 76, 43, 31, 6, 96,129, 13,156,186, 91, 8,
- 0,118,100,242, 42, 2,182,223,109, 75,129,224, 92, 93, 6, 31,136,200,102,186, 5,237, 33,161,232,192, 44,136,109, 49,158,110,
-181,136,228,133,245, 62,159, 78, 22,145,121, 56,236, 67, 39, 52, 74,113, 62, 1, 86,169,180,227,149,187,136, 72,171,174, 5, 73,
-112,242, 42, 74,183, 76, 60,131, 72,228,232,131,107,188,247, 44,162,140, 46,138, 92,145, 82, 68,117,237, 86, 90,161,100,172, 78,
-198,211,238,142, 60,183,174,113,243,233,146, 35, 23,189,124, 69,158,165,119,171, 91, 71, 7, 20,225,100,143, 68,116, 36,150,163,
-245, 36,192,116,225, 36, 85, 18,137,194, 33,120, 23, 66,224,200, 32,146,170,122, 99, 13, 18,146,162,166,118,174,241, 94,130, 36,
-198,110, 77, 86,164, 96, 15, 54,179,206,249,249,172, 12, 33,218,204, 66,202, 64, 4, 86,183, 76, 86, 71,229,106,163, 35,172,190,
-132,213, 59,144,244, 10, 28, 82, 95, 66,108,197, 7,146, 94, 18, 9,149, 82, 54, 51,237,147, 27, 8, 62,128, 96, 71, 33,174, 68,
- 54,172, 8,173, 53, 75, 87, 47,230,101,230,163, 49, 74,186,147, 78,167, 3, 6,145, 69, 48,229, 67, 45,107,150, 22,178,254, 32,
-192,192, 32,194, 33,134, 68, 5,197, 24, 56,173, 71,184, 59,164, 64, 16, 81, 27,221, 58,127, 91, 51, 98,148,150,123,232,234,126,
- 72, 26,132,170,242, 49, 86,121,158, 41, 69,201, 5,181,136,128, 68, 22, 64, 88, 57,112, 90, 3, 32, 34,164, 75, 36,101,154, 72,
-194, 36, 98,108,133, 96, 41,197,105,185,141,216,129,162, 34,136,144,106, 58,102,142, 81, 56,114, 75, 84, 8,176, 64,187,124, 16,
-165, 21, 0,212,181, 19,129, 44, 51,233, 70,105,145,152, 86,222,121, 75,119,124, 98,247, 94, 90,255,106, 95, 56,134,176, 90, 82,
- 76,188, 75,235,191,237,194, 88,218,189, 79, 68,214,154,116,176,179,243,128, 41,193,104,151,157, 94, 73, 41, 18,128,186,113,201,
- 11,211,209, 33, 49, 6, 4, 92, 49,216, 41, 28, 65,199, 14, 3, 64,187, 26,225, 24, 34,199,181,188,173, 35,154,184,101, 82,184,
- 53, 18,199,150,104, 1, 68,173,149,136,105, 41,223,141,141,204,192, 72,168,136, 8,209,135,216, 56,111,140, 74, 22,226,216, 82,
-144,184, 10, 9,171,220, 2,164, 69,121, 56, 65, 16, 44,156,108, 19,185,149,126,117,165, 76, 90, 14,119,171, 73,220, 90, 43, 73,
- 68,208, 74, 49,177,144, 48,175, 94,137, 16, 89,105,165,136, 28,196,164, 26,110, 45,196, 44, 41,228,180,171,185,107,147, 65,187,
-158,200, 44, 18, 99,203,216,117, 38, 91,221,201, 20, 9, 87,247,110,195, 90,204,145, 25, 16, 72,147, 18, 37, 18,145, 82,198, 39,
-233, 8,210, 90,129,243,145,217,249, 0, 0,250, 83,215, 15, 87,233, 35,108, 28, 14, 41,243, 88,239,214,206, 97,147,119, 67,187,
-165,224, 46,232,101, 77,144,113,251, 78, 58, 20,141,185,251,170,125, 3,233, 77,182, 88,106,227, 33, 68, 0, 96, 0,194,199, 30,
-123,236,248,248,120, 50,153,188,212,104,161,255,184, 15, 17,217,222,222,222,217,217,209, 0, 48,157, 78,175, 95,191,254,159,141,
-242,153, 34,207,157,157, 29,250,207,134,248, 79,140, 78,124, 73,211,155,159,245,145, 89, 51, 26, 13,243, 60, 31, 13, 7,253,126,
-111,119,103,123,119,103,251,236,233, 83,163,173,225,214,214, 48,179,214, 26, 75,132,214,102,233,228,222, 16, 33, 0, 32, 44, 23,
-203, 24,185,105,220,108, 62,155, 76,166,215,111,222,186,126,227,206,100, 58,157,207,151,179,217,252,120, 58,255, 79,192, 64,178,
-193, 98,189,238, 75,191,248,251,222,241,246, 55,127,253, 27,141,201,148, 74,101, 61,164,140,173,211,198,119,154,155, 54,150, 73,
-247,175,180, 63,133,164, 67, 17,230,152,206, 49,225, 40,194,235,231, 36, 6,206,187,166,154,207,142,246,110, 92,189,253,175,126,
-235,195,191,244,219,127,240, 18, 53, 16, 51,191,237,219,191,249,237,111,251,150,147, 39,119, 83,158,143,109, 73,223,202,168,211,
-201,223,217,144, 87,169, 8,180,199,108, 92, 37,112,176,145,147, 51,199,232, 27, 87, 47,170,197, 84, 68, 6,195, 33,199,192, 73,
-141, 44,204,193,249,166, 46,151,229,241,120, 58, 57,154,189,226,222,123,222,249, 77,111,124,239,227, 79, 93,189,115,240,146, 51,
-144, 0, 60,248,224, 3,103, 78,159,230, 24, 5, 34, 75,228, 24,161,203,117, 68,162,196,200, 18, 37,182,181,127,122,147, 41,177,
- 78,126, 1, 45,120,223, 74,250, 58, 87,226, 24,131,111,170,229,124, 49, 57,158,237,221, 62, 60,220,159,126,249, 27, 31, 61,119,
-254, 52,187,154, 99,244,222,213, 85, 93, 46,170,166,118, 33,178, 66,252,234,215, 60,242, 29,223,240,232,155,191,246,203, 82,194,
- 55,159,151, 47, 92,186,241,220,165,155,207,125,234,250,237,253,227,163,233,188,113,254, 63,130,129, 16, 32,212,203,106,126,216,
- 82,155,109,225,192, 9, 33,150, 24, 68,152, 99, 16, 14, 49, 70,225, 40,235,202, 98, 93, 20,172, 78,198, 4, 86,180,236,117,136,
-174,113,203,101, 53, 61,154,207,142,231,179,201,252,151,126,225, 87,162, 82,223,255,151,190,215,216, 30, 84,101,170,156,148,166,
- 44, 51,121,158, 1,192,228,206,209, 63,251,197,223,250,179,111,249,202,193,160, 40,138,236,213,175,120,224, 85,143,220,223, 73,
-201, 90,215, 93, 44,170,247,127,244,169,223,248,253,199,103,139,242, 63, 88, 12, 98,225, 0, 27,212, 95,122,247,157,100, 53, 10,
- 71,230,100,157,110,177,221,159,180, 43,215, 10, 53,105,139, 54,102,246, 62, 52,181,171,150, 77, 85,214,117,237,131,143, 44, 82,
- 85,245,187,126,226, 31,109, 15,122,175,120,228,190,211,103, 79, 8, 66,150,103,131, 97, 36, 34,231,242, 84,254, 62,241,161,167,
-144,112,107,123,184,123,106,171,215, 47,180, 86,237,166, 23, 82, 32,163, 81,239,138,219, 28,255, 0, 0, 18,112, 73, 68, 65, 84,
-155,222,244,186,183,188,241,117, 32, 18, 66, 60,154, 46, 94,188,114,235,183,255,224,227, 47, 94,187,243,255,215, 22, 51,121,191,
-216, 58,157, 4,140,109, 76,109, 45,146, 10,100,199, 33,245,156,120,230,192,209,167,104,210,138,243,218, 2,154, 59,213, 92, 27,
-183,219,203,164, 18, 41, 74,130,226, 52,145, 70, 68,162,166,118, 23,159,187,182,127,107,124,226,212, 86,127, 88,244, 6, 69,209,
-207, 87,198, 79, 70, 39, 66, 87, 59,142,146,101, 70, 91,173,149, 34,213,218,105,117, 48,144,162,211,167,118,238, 57,185,253,134,
-255,226, 21, 8, 16, 66,248,228,243,215,222,247,145, 39,159,121,241,186,235,170,169,207,195, 22,115, 77,185,156,141,187,170,102,
- 83, 41,152,190,161,128,180,202,114,211,202,204, 9,132,153,125,112,117, 8,181, 4,207,193,199,216,196, 16,152, 35,135, 86,100,
-153, 72, 48, 21, 18, 51, 76, 70,107,155,153, 24, 34, 18,130,128,214,100,173, 73,192, 22, 71,201, 11,109,140, 73, 52, 1,124,250,
-174, 93, 81, 22,184, 82,132,175,208, 52,233, 16, 37,173,133, 89,148, 86, 95,250, 69, 47,123,237,171, 30, 18,225, 24,249,242,181,
-219,255,251,175,254,238,254,120,202,159,139,216,228,223,214,126, 67,202, 40,197,155, 39, 49,179,180,250, 89,236, 86,149,218, 12,
-187, 82,150, 81,152,171,197,244,248, 96,127,124, 48,245, 81,125,241, 27,190,124, 56, 26,184,166,140,174,242,205,178,169, 22,245,
-178, 20, 1,235, 66,222,203, 66, 8, 34,108,180,138, 9, 34, 86, 42, 43,108,175,151, 23,131, 34,207,173,177,214, 24, 69, 41,171,
- 64,218,100, 7,218,190,153,213,109,219,100, 86, 96,125, 67, 69, 68,117, 72,144, 82,148,234,247, 71, 30,190,240,174,191,246,142,
- 24,226,225,209,244,189, 31,252,248,191,254,200, 39,255, 29, 13,212, 44,143,166, 7,151, 18,103,215, 54,206, 36, 64, 73, 58, 63,
-234,228,229,144,126, 16,163,119,161,169,155,197,188,156, 28,207,142,199,179,233,100,254,196, 31, 62,190, 92,214, 23, 30,190,239,
-101,175,120,224,220,249,179,189,126,110, 11,201, 66, 8, 62, 75, 93,144,198,154,224, 3, 0, 32,145,177, 42,203,179, 44,207, 50,
-107,180, 81,164,168, 67, 96, 87,226, 91,217,196,237, 86, 9, 87,247, 17, 87, 10, 30,222, 80, 55, 37, 51, 49, 39, 84,144,152, 68,
- 24,149,162, 51,103, 78,252, 87,223,242,198,239,124,203, 87,143,143,102,191,246,190,143,124,232,201, 23,254, 20, 21,217,163,143,
- 62,250,141, 95,243, 69, 95,247, 21,175,228,187,180,189, 29, 80,208,202, 44, 86, 73,161, 48,115, 12, 49,201,144,231,179,229,244,
-120, 49,155,204,103,211,114, 89,214, 46, 68, 68, 52, 90, 13,250,249,238,238,240,228,217, 19,163, 81, 95, 27,205, 44, 29,216, 7,
-136,144,122, 80,180,214, 70, 39,177, 10, 37,214,118, 5, 39,180,240, 84,123, 92,220,229, 69, 43,112,163,101,107, 24,214,120, 70,
-130,143, 25, 58,248, 39,198, 16,121, 29, 36,219,188,197, 53,161,105,220,100, 94,255,252,191,250,189, 59,135,227, 52, 23,225,179,
- 62, 46, 92,184,240,192, 3, 15,104, 88, 97,206,208,106,173, 35,183,238,211, 66,203, 27,192, 74, 11, 83, 69,110, 26, 95,149, 77,
- 85, 54, 77,237,156, 15, 33,198,182, 57, 22,128, 16, 98,140,139, 69, 5,123,199,174,118,253, 65, 47, 43,172, 53, 38,177,194,233,
-161, 84,250,175,109, 27,104, 55,214, 6, 56,182,198,202, 58,227,220,237, 65,114,215, 70,235,236, 7,157,154, 75, 41,165,173, 49,
-166,167,108,161, 77, 78, 38,211, 38, 51, 89, 97,108, 78,202, 0,176,175,202,239,252,158,183, 47, 38,119, 38,135,251, 23, 95,184,
-250, 35, 63,249, 79,199,147,249,191,113,139,233,172, 40,250, 59,222, 55,177,149, 46, 38,253,120,135, 20,118, 0,231,234,126,197,
-200,233,111, 18,185, 35,160, 34,234,228, 49,100,140,206, 50,147,247,242, 44,183, 73, 77,164,136,148, 86,198,106,165,148,210,164,
- 18, 99,157, 68, 86, 45,185,158, 90, 51, 40,213,206,107,118, 25, 19, 76,182,102, 45, 89, 90, 0,183,251,126, 71, 84,181,177, 50,
-153, 39, 13, 7,201,181, 45,140,237, 41,155, 43,157, 41,173, 81, 32,184,186, 44,247,170,249, 97, 57, 63,170,150,101, 93, 55,193,
-133, 83, 39,182,254,225,143,190,115,111,255,232, 31,191,251,183,159,189,124,227,179, 24, 40,239,239, 12, 79, 61, 24,130,227,232,
- 87,127,163,119, 28,154, 14,157,247, 33,196, 24,130,247, 1, 92, 16,230, 86, 20, 68,168,136,180, 81, 89,102,181, 86, 72,168,181,
-182, 86,101, 69,214,235,229, 69, 47,207,114,155, 21, 89,150, 25, 99,140,177, 90,117,108, 89, 43, 56, 72,158,211,110, 46,162,214,
-137,168,107,168,199,110,195,193, 93, 48,231,154,254,134,149, 81,144, 8, 80, 17, 17,180, 50, 42, 4, 17,223, 84,213,108,236,189,
- 71,101,149, 54, 89, 62, 80,198, 70, 87,207, 38,147,201,248,200,213, 77,234,175, 78,233,197,238,214,224, 7,223,241,205,139,217,
-242,103,126,249,183, 47, 94,187,125,151,129,234,229,116,118,116,131, 5, 20, 41, 84, 70,105,107,108, 63,235,107, 36, 66, 16,142,
- 49,134, 38,250,202,215,139,166, 90, 84,101, 89, 45,171, 24,217, 56,101,173, 14,153,101, 22,173,148,128, 36,241, 90,214, 53,231,
-217,204,218,204,216,204,152, 36, 6,211,109, 48,238, 4, 97,173,248, 42,125,178,174, 1,113, 85, 12,174, 80,114,132, 13,116,122,
-227, 71,157,212, 68, 37,161,135, 38,165,128, 90,166, 59, 85,149,218,100,218,102, 68, 42, 6,231,171,121,189,152,132,122,162,137,
-251,253, 28, 65,198,227,105, 93,186, 94, 97, 83,162,174, 20,245, 6,189, 31,120,251, 91, 14,198,211,159,250,191,126, 35, 69, 24,
- 45, 0,121,127,123,116,242,254, 24,124, 12, 46,248,198, 55, 75, 87, 45, 93,181,116,174,138,145, 17, 80,219, 44,203, 11,109,173,
-178,189, 44,114,240,193, 52, 65, 27, 99,109, 96, 6,165,137, 89, 8, 81, 25,101,140,182,214,102,185,177,169, 77,196,104,109,148,
-210,186,141, 59, 68,216,110, 46, 66, 84,144,252,135,168,107,118,218,176, 14, 34, 66, 59, 84,161, 27, 70,176,242, 47,194,212,114,
-212,138,165, 90,197, 75, 43,236, 74,242, 41, 34, 36,146, 24,125,189, 88,142, 15,202,233, 65,185,152,214, 85,229, 26,231,125, 8,
- 33,166, 83,186,151,103,214,232,197,188,172, 43,215, 27, 20,136,160, 21,161,213,167, 78,109,255,232, 59,191,227,201, 75,251,151,
- 14, 23, 26, 1,124,179,112,229, 49,162, 82, 74,171,188,151,229,253,222,144, 99,112, 77, 57, 45,103,135,211,227,201,248,224,104,
- 49, 95,198,200, 73,123, 70, 68, 9,198, 39,165,178, 28,109,102, 40,253,178, 81,218,104, 99,181,214,218,152, 86,222,169,136, 72,
- 41,165, 90,109, 81,219, 48, 71, 68, 27,221,131,136,169, 21,171,221, 92, 73, 30,176,106, 56, 76,217,215, 90,222,130, 73,253,167,
- 80,165, 46, 85,221,105,185, 84,234,149, 20, 14,161, 94, 54,229,164,154,143,203,249,113,181, 92, 54,117,227,155, 52,237, 36, 50,
-179,240, 70, 92, 71, 24, 12,122,121,145, 45,102,101, 89, 53, 59,219, 3, 68,157,216,245,126, 63,151,195,133, 6,192,114,118, 52,
-190,241, 60, 0,162,106,215,196,204,193,123, 87, 55,203,101, 53,157,204,103,147,197, 98, 94, 54,141,151, 40,164, 41,207,147, 76,
-198,104,163,141, 73, 93,165, 73,243,170,148,209, 73, 23,152, 98, 13,181,255,180,199, 85,171, 28, 68, 2, 90,185, 76,183,203,144,
-146, 67, 37,178,131,136,210, 40,142,244,157,238,119,219, 6,227,164,181,131,213, 78, 4,136,190,113,181,103,239, 98,116, 28, 3,
- 71, 31,234,178,169,166,245,178,106, 26,231,156,143, 33,134,216,146, 51,156, 74,159,246,112,108,139,209,162,151, 25,163, 38,199,
-243, 24,121,231,196, 86,242,209, 46, 81,172,155,233,100,190,145,153,129,176,132, 24, 92,237,150,203,106, 62, 91, 46,102,101, 89,
- 54, 77,227, 56,178,214, 42,248,150,242, 78,199, 69,150,228,104, 70,107,157, 12,178, 62,206,215,210, 52, 76,159,168,141, 16,131,
-157, 94,109,181,185,214,198, 66, 34, 74, 38,107, 55,224,170,149,184,211, 72,146, 66, 66,129,164, 73,114,105, 50, 0, 32, 42, 83,
- 40, 11,174, 42, 23,203,241,209,254,216, 55,110, 48, 44,108,102, 3, 5,244, 33, 32, 66,136, 64,107,126,170,107,155,130,148,240,
-245,250,121, 93,187,235, 87,110,159, 56,181,147,132,204,169, 59, 50,212,181,235, 82,158,174,186, 15,209, 53,190,174, 92, 83,123,
-239, 67,240,137,250,110, 65, 49, 34,210, 70,217,204, 22,121,150,229, 86,183, 42,229,181,117,186,206,219,238,157,175,186, 98,161,
- 51, 71,187,131,168,213,161, 67,107, 11,192,245,175,175, 84,136,157, 56, 82,119, 17, 71, 1, 98, 26, 68,197, 49, 32, 81,150, 15,
- 85, 43,213,172, 93, 53, 71,241,253,194,224,201,173,229, 98,121,116, 56, 61,220,159,110,237, 12,182,183, 7,153,214, 33,132,232,
- 99,136,145, 99,234, 50, 76,181, 1,119,246, 2,173,213,246,206, 96,122, 60, 61, 60,156, 98, 7,119, 64,244, 65, 64, 68, 80, 86,
-244,168,143, 33,132, 24,146,254, 0,149, 34, 17, 77, 10,172,181,189,126,222,235, 23,131, 65,111, 48,236, 37,121,118,123, 66,117,
- 27, 10, 96,181, 41,218, 28, 89,218,169, 99,152,132,244, 29,119, 75,173, 43,117, 58,191,228,107, 93,156,218, 8,195, 74,119,157,
-215,173, 40, 48,177,218, 8,168,148, 22, 14,190,158, 45,150,199,229,124, 92, 45,102,117, 85,187,110,226,138,176, 88,163, 79,159,
-217,110, 26,127,245,210,173,178,246,231,206,157,232,245,115,171, 40,248, 16, 2,180,241,168,163,215, 91, 65, 22, 81,209,203,139,
-194,194,180,214,237,137,169,148, 48, 99,139,185, 2, 50,182, 50, 52,133,198, 40,102, 67, 68, 34,172,181,206,138,172,223, 47,250,
-195,162, 63,232, 21, 69,222,101, 55,154,212, 58,237,235,210,188, 46,163,129,174,146, 72,103,211,134,180, 7, 9,211,235,164,167,
-164, 44, 6,210,201,141,186,149, 70, 37,225,106, 59,203,137,160, 3, 51, 69, 66,104,202,102,121, 92,206, 14,151,169,216,169, 93,
-154,149,149,122, 35, 91, 93, 6, 66, 10,186,187, 39, 70,195, 16,167,199,179, 43,151,110, 15,183,250,167, 78,109, 41, 69, 27,253,
-139,177, 83,110, 96,123,154, 80, 23,131,140,213,253, 94,222,246,194,198,182, 47, 43,237, 20, 64,212,154,108,102, 56, 10, 42,204,
-172,105,147,192,126,158,101,182, 29,135, 64, 73,189,221,101,104, 43, 28,123,245,121,234, 55, 95, 65, 22,132,176,230,222,215, 95,
-181, 98, 49, 76, 26,108,149,182, 18,170,182,107, 31, 73,165, 81, 67,194,145,131,115,213,162, 94, 30,149,211,131,229,124, 86, 46,
-235,186,106, 86,205,223,145, 25, 54, 96,155,110, 45,109,228, 27, 12,123,121,145,205,231,203,103,159,190, 90, 20,246,244,233, 29,
-155, 27,133, 10, 0, 4, 35, 9,137,112, 39,164,107, 99,144,244,250,189,221,147, 59, 33,229,149, 49,166, 49, 98,193,199, 16,130,
-119,173,200, 5, 1,148, 86,198,104,155, 89, 99,181,177,166, 21,222,183,103, 10,201,218, 54,152,244, 60, 29, 6, 64, 40, 32, 29,
-210,213, 41, 84,161, 67, 34,147,114,139,214, 94,213,157,119,216, 6, 29,133,164, 17, 41,201, 50,152, 99,116,141,171,102,213, 98,
-188,156, 30,148,139, 69,185,172,155,198,121,151,218,143,227, 74,183,112, 87, 55,236, 93, 21, 30, 8, 75,191, 87,216,179,122, 49,
-171,158,125,250,114, 94,100,231,238, 61,153, 23, 25, 1, 10,174, 58,121, 55, 50,105,219,219, 26,158,186, 47,198, 40, 49,164, 41,
- 49, 33, 52,193, 55,193,121,239, 67,108, 11,209, 36,105,165,213, 60, 15, 74,103, 19,181,186, 96, 4,220, 16,136, 80,187,154,187,
- 36, 8, 27, 32,206,167,233, 0, 16, 86, 25, 16,162,106,131, 78, 55,118, 2, 59,233, 27,115, 12,222,123, 87, 54,174, 12,105,198,
- 18,161,210, 74, 5, 21, 21, 83, 36, 66, 22,148,187,193,162,110,196,136,172,219,189, 59,237, 19, 21,253,252,204,185, 19,179,201,
-226,153,167, 47, 15, 7,189,123, 78,239,216,220, 2,175, 78,183, 21, 96,166,140,201,250, 42, 1,242, 49,168,224, 41, 52, 74, 55,
-218, 56, 19, 60,115, 76,253,214, 93, 42,187,121, 24, 99, 23, 98, 1,215,194, 92,236, 4,106, 8, 40, 36,216,226,220,119, 97,132,
-107,254,123,237, 57, 74, 43,101, 73,107,210,182,155, 73,169, 18, 59, 18,163,231, 16, 98,112,190, 41,171,217,193,228,224,214,248,
-112, 82, 46, 43, 34, 44,138, 60,165,175,109,184,243, 33,129, 50,112, 23, 76,212,118,118,222, 69, 1,138, 32,162, 53,122,123,123,
- 96,172,158, 28, 47,158,123,246,234,238,238,112,107,107,160,141,130, 52,216,102,147, 89,149,149,168, 70, 98,210, 87, 18, 41, 80,
-105,248,192,221,144, 37, 81,183,155, 72, 86,133,100, 11,222, 32,116,214,106,229, 97,216,178, 0, 68, 73,222, 35,107,253,119,123,
-232, 19,162, 78,147,240,180,206,200,100, 74, 27, 68, 18, 97,223,212,204, 1, 1, 72, 25,157,103, 8,253, 96,115, 69, 10,137,180,
- 49,199,227,201,248, 96,178,127,251, 86, 12,177, 63, 40, 6,163,158, 49, 9,186,101,142,173, 88,168, 19,182, 36, 2, 6,101,147,
-227, 20, 16, 22, 64, 36,165,138, 34, 35,162,204,234,163,227,197,209,241, 98,119,123, 80,244,108,194,249, 90, 86, 35, 6, 31,163,
-151, 24, 91, 76,158,131, 36,193, 41,174,149,201, 29,180,152, 74,101, 90,207,177,128, 86,254,133,120, 87, 35,238,166,246,105,237,
- 60,130,119,105,173, 49,141, 40,201,180,201,148,201,181,201,144,148, 8, 7,239, 56,134, 84, 86, 72, 12,174,156, 52,203,227,122,
- 49,169,171,133,175, 27, 31,124,240, 81, 43,218, 61, 57,234, 15,138,197,172,156, 28, 79,199,135, 19,173,212,214,206, 96,184, 53,
-180,185, 5,128, 52,229, 37,132,184, 26,219,193,188,130,221, 58, 92, 87, 36,165,117,214,104, 25, 20,136,120, 60, 89,220, 58, 56,
-222,234, 21, 46,172,104, 31,142,146, 72,139, 24,132, 91,198,162,211, 39,109,236,156, 86,203,185, 50, 23,174, 0,209,150, 41,234,
- 62, 89, 99, 21,155,130,190,212, 77,152, 70,179,117,217,141,210, 70,153, 92,155, 92,217, 92,105, 11, 34, 49,161, 46,193, 7, 87,
- 53,203, 73,189, 60, 42,231,243,170,172,234, 52, 6, 46,141,143,216,208, 1, 43,196,225,168,151, 23,166, 92,214,179,233,226,240,
- 96,122,184, 63, 25,110, 13,118, 78, 12,139, 94,174,181,210,154, 67, 55,210, 42, 85, 27, 32,200,119, 43,172,210,253, 82,138,108,
-102, 71,195,158,136, 28, 46,150, 37, 43, 0, 76, 6,226,200,142,147,251,180,252,215,122,130, 94, 11,201,172,212,255,237,112, 62,
-252,140, 56,251,105, 20, 98,107, 17,162, 86, 69,220,129,134,221, 33,133,148,230,254,164, 25, 64, 32, 18, 92,197,190,118,245,178,
- 94, 28,151,243,241,114,190,168,202,170,174, 92,154,163,211,141,125, 88,163, 32, 68, 72,137, 9, 66, 20,132,148,178, 14,134,253,
-229,162, 44, 23,229,124,186,200,114, 59,218, 30, 12,134, 61,165,149, 37, 19,163,194, 16, 2, 70, 76, 19, 63,165,187,175,178,158,
- 21,168, 20, 90,107, 6,253,156, 89,230,101,232, 12, 36,177,163,186, 2,180, 36, 87, 43,230,107, 79,227,212,156, 10, 43,229, 52,
-224,122, 87,221,101,170,116,144,183,254,210, 29,252,233, 61,117,225, 8, 1, 9, 72, 1, 33, 8,138,112, 58, 52,163,171, 93, 61,
-175, 23,199,203,249, 98,185, 40,235,170,105,106,231,156, 15, 62,182,131, 2, 87,122,110,104,245,193,136, 72, 20, 58,200,164,181,
-122, 81,216, 44, 51,253, 97,175, 90,214,229,162,218,187,117,120,168,213,112,216, 31,108,245,172, 49, 68,164, 21,132,164,237,149,
- 40,146,172,155,154, 81, 36,229,135,137,146,234, 23, 49,247, 50,141,188, 26,198, 28,219, 14,128, 36, 37,110,247, 39,118, 54,161,
-118,160, 6, 8, 10, 34,225, 42,214,194,154,147,105,245,208,105,100, 75, 74,127, 16,112, 37,188, 94,109, 73, 72,137, 28, 83,192,
- 8, 78, 18,197,214,148,243,170,172,170,101, 93, 85,181,107, 92,138, 51, 45,170,187,202,106, 54, 68,215,204,178, 42, 99, 16,145,
-136,137, 86,224, 36, 88,163,212,176,176,153,169,150,245,114, 89, 29,141,167,211,201,188,232,231,131, 65,209,158,119, 4, 36, 36,
- 34,194, 68,212,150, 83, 93, 54, 73, 90, 43,155, 25,173, 3, 0,235, 77,173,230, 74, 55,189,210, 37,175,183,206, 70, 24, 90,241,
- 13, 27, 54,105,219, 68, 9, 73, 86, 8, 41,110,144,128,157,226,185, 37,181, 87,163, 71,162, 15,222,185,166,118,181,107,154,198,
-123,159,100,232,132,160, 8, 65,168,213,219, 72,186, 37, 2,128,204,105, 45, 44,146, 62, 71, 34,100, 70, 68,134, 85, 26, 10,152,
- 20,217,121,145, 41, 77,117,229,170,178,153, 30,207, 23,179,178,232,229, 69, 47, 51, 70,175,182, 61,183, 37, 15,227, 26,167, 76,
-205,158, 93,169,177,154,252,146,132,160,120, 23, 71,183,166,234, 48,229,199,237,251, 92, 29, 81,109, 11, 69,218, 92,146,118,146,
- 0, 17, 66,183, 73, 5, 58, 5,118,138,140,169,156,145, 16, 99,228, 52,126,199, 7, 22, 38, 84,218, 72, 18,190, 38,117,120, 88,
-205,138,142, 41,123, 75,195, 64, 65, 0,147,182, 59, 97,247,204,235,102,173,141, 17, 81,237, 93,208, 74,229, 69, 70,138,234,146,
-154,218,205, 38,243,114, 81,229, 69,150, 21,214,104,213,201,250, 87, 29, 16, 93,244, 87, 27,181, 88,146, 99,108,108,242, 21, 91,
-185,238,176,217,156, 77,213,237, 47, 89,137,201,164, 59,159, 54, 9,209, 54,117, 76,130,121, 94,113,182,177,157,102, 25, 35,175,
- 74, 27,102, 17, 73,110,143, 6, 73,145,214,154,141, 78,214, 73,102, 74,147,184, 83,168,102, 94, 15,198,129,117,163,252,221,199,
- 5,110,166,240,162, 21,101,185, 69,196,110,216,145,175,202,212, 61,157,170,188,164, 39, 88,141, 25, 92, 39, 35,122,131,142,227,
- 13,183, 89, 77,144,109,139,136,205, 72,140,107,243,116, 1, 28, 87, 68, 76, 23,113, 56, 53, 11,164, 31,112, 43,233,111, 85,201,
- 49, 73, 26, 90, 26,174,229, 20,101, 45, 53, 71, 68, 18, 66,101,136, 20,147, 54, 58, 70,142,173,153, 66,178,212,106,202, 84,226,
-155, 65,144,129,219, 60,235,179, 48,241,146, 80,115,173, 21,228, 6, 16,188, 15, 77,227,154,198,107, 77,198,166, 6, 97,236, 10,
- 26, 89, 17,182,155, 30,212,169,180, 87,198,235, 54,210, 93,187,108, 51, 79, 79,138,179, 14,236, 73,203, 0,192,100, 20,236,154,
- 9,186,169, 71,237, 92,163,142,156, 76,189, 79,188, 30, 34,181,161,206, 19, 94, 15,134,104,177,233, 85, 90,169, 80, 43,181,242,
- 44,102,225, 8, 76, 44, 2,192, 45, 37,196,194,169,186, 17,102,196, 21, 79,157, 74,104, 36, 69, 70,171,100,216, 52, 55,171,105,
-188, 78,189,127, 68,169,108, 72,245, 4,172, 74, 13, 89,171,234,160,189, 88,154, 35, 6,210, 2,183,128,192,109, 50, 35, 93, 86,
-211,238, 43, 1, 72,205, 39,235, 10,113, 51,161,111,251,119,187, 78,152,216,154,104, 67,163,191,234,172,104,203,245,141,193, 83,
-176,174, 10, 16, 81, 18,144,152, 38,114,248,160,144, 66,171, 35,137,237,161,182, 82,217,243, 26,230,129, 77, 94, 63, 37,153,137,
- 87, 81,138, 98,196, 16,216,135,232, 92,208, 90, 25,211, 98,162,233,148,148,181, 7,117, 45, 13,176, 89, 55,164,196,183,195,156,
- 82,243, 71, 26,202,182,142,208,237, 24,173, 77, 30,120,205,159, 39, 42, 27, 90, 94,124,221,248,210, 50,181,145, 55,122, 71,215,
-240, 48,127,250,248, 45,185, 43,223, 77, 12,172, 82, 6, 81, 17, 70, 69, 62, 16,250,200, 33, 4,160,118, 54,109,187,173, 97, 99,
-138,199, 93,195,189, 88,186, 62, 69, 69,164, 56, 70, 9,145, 99,140, 62,144, 53,122, 37, 93, 77, 48, 64,151, 7,133,192,119, 43,
- 49, 25,187,220,185, 11,120, 93,106,212, 89,230, 51,180,251, 27,130,217, 21, 40, 35, 9,130,227, 78,118,198,194,210,181, 6,173,
- 39,142,241,186,245, 34,253,234, 42,112,180,178, 55, 94, 13, 43,150,213,203, 35,161, 66, 5,128,138, 40,106,162,116, 42,134, 40,
- 49, 53,141, 9,240,221,192, 71, 82,132,172, 24, 31,108,135,172,178,194,200,208,246,160,176,116,252, 38,166,215,106,255, 23, 55,
-177,107,129,219, 80, 88,224, 58,142,200,202, 74,184,169,220, 89,107, 7, 54,133, 23,188, 14, 37,171,237,179,234,108,145,181,233,
-218,112,184,222,223,119,207,103, 3,184,123,164, 27,111,188,202,166, 24, 38,193,220,164,180, 70,196,152,238,104, 4,142, 49, 85,
-218,201,166,159, 41,204,130,196,195,145, 34, 21,149, 38,241, 44, 81,146, 18,147,141, 38, 66, 90, 25, 8, 69, 36,198,176,114,138,
-181, 49,112,163,103,245,179,212, 91,119, 59, 78, 39, 63, 89,233, 64, 96,189,131, 90,157, 8,183, 42,106, 97, 16, 96,248,204,169,
-118,155, 80, 68,178, 8,127,218,247,187,231,119,133,249,102,143,183, 0,128, 34, 66,221, 22, 67,204,105,146,186,116,119,191, 3,
- 94, 16,185,133,231,136,148, 40,173,146,156,165, 29, 33,141,192,204,138,136,163,108, 36,138,252, 25, 27,125,157,213,108,218,104,
-195,117,100,131,120, 91,205,235,105,207, 93,216,220, 61,171, 93,211,254,104,221,204, 4, 43, 67,180, 77, 89,119,171,109, 58,202,
- 74, 86,187,182,237,128,227, 78, 7,153, 22,147, 88,186,174, 28, 0, 17,108,105, 21, 32,194, 24, 5, 49, 10, 3, 51, 2, 69, 6,
- 0, 38, 68, 38, 68, 33, 20, 33,165,132, 35, 70, 68, 2, 8, 32, 28, 37, 2, 40, 74,157,128,136,143, 61,246,216, 93,150,121,105,
- 53,220,252,135,191, 6,222,189, 13,229,255, 3,105, 65,234, 37,157, 34,125,171, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/smear.png.c b/source/blender/editors/datafiles/smear.png.c
deleted file mode 100644
index 98e3be1d0e0..00000000000
--- a/source/blender/editors/datafiles/smear.png.c
+++ /dev/null
@@ -1,302 +0,0 @@
-/** \file blender/editors/datafiles/smear.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <smear_png> */
-
-int datatoc_smear_png_size= 9358;
-char datatoc_smear_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72,
- 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,
-252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,
-215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 21, 0, 4, 17,164, 74, 11,162, 0, 0, 32,
- 0, 73, 68, 65, 84,120,218,237,125,107,140, 93,215,117,222,250,214,222,231,222, 59, 79,114,248,146, 73, 73,182, 73,145,182, 37,
-202,169,222,178, 93, 55,182, 91,139, 54,148, 24,104, 13, 56, 63, 18, 20, 13, 80,219, 65, 30,118,252,138,237,216, 73,250,163,175,
- 52,253,147, 56, 64,227, 20,109, 98, 35,118,129, 58, 13,208,160, 45,234, 2,181,100, 55,150,211,248, 37, 35,129, 45,138,122, 88,
- 34, 37, 70,164, 36,138, 51,228,204,220,123,207,217,107,245,199, 90,123,239,115,103,134,150,220,202, 64, 3,232, 14, 57,156,185,
-188,115,238, 62,107,175,199,183,214,250,214, 30,162, 31,246,241,178,131, 7, 15, 31, 62,178,253,121, 16,209,199, 62,254,137,148,
- 58, 16, 49, 51,152, 99,140, 77,140,177,105, 62,249,137, 95,181, 23,133,247,255,242, 7,218,118,154, 82, 39, 34, 73,252,147,146,
-170,200, 91,223,122,215,201, 7, 79, 94,190,116, 41,220,124,203,205,146,146, 36,251, 15,253,238, 35,171,171,151,218,182,147, 24,
- 57, 48,221,113,199, 29,247,221,247, 85,252,227,119,191,251,191,223,119,129, 24, 12,102, 80,140, 32,165,221,203,195, 35,215, 44,
- 29,190,102,169,105,154, 65,211,132,167, 54,174, 1,148, 84,137, 84,149, 68, 73,133, 68,117,223,238,102,247, 82,163,162,170, 26,
- 69, 18,131,137,160, 0, 72, 72,161, 28,165,147, 67,251, 6,211,182, 13, 65, 72, 53, 44,238, 57,170,170, 68,249, 98, 68,162,146,
-148, 78, 62,182,113,236,229,115,126,119, 11,187,175, 3,148, 72, 65, 74, 4, 18, 2, 41, 1, 80, 58,117,102,227,228, 99,155,175,
-121,229,124,152, 95,121, 37, 41, 8,106,175, 33, 34,255,154, 97, 98,124,224,241,205,168,162,138, 68, 9,204, 32,177,215, 49,145,
-144, 18, 17, 41, 16, 72, 94,208,118,133,242,213,220,220,252,181,215, 94,203,140,205,205,205,173,123,119,203, 45,183,252,189,183,
-222,165,170, 12,128, 57,132, 96, 27,247,197, 47,126,241,190,175,254,153,191,232,253,239,255,101, 37, 5,129,153,193, 8, 28,162,
- 61,154, 38,198,248,107,159,252, 4, 17,133,155,111,190, 69,146,136,138,170,126,255,201,245,103,158, 27, 63,187, 58,141,129, 7,
- 17, 74,242,214,183,222,117,239,189,247,224,199, 79,252,204, 35, 79,140, 65, 32, 48, 7,138, 76, 77,228, 67, 7, 22,174, 63,178,
-178,107,105, 16, 99, 28,142, 70, 97, 26, 15, 19, 72, 84, 65, 68,164,170, 72, 74, 77,196,222,221,205,112,192, 36, 42,170, 81, 72,
- 88,132,136,149, 68, 19, 41,135,128,240,183,142, 45,142, 6,212, 78, 91,137,162, 68, 97, 97,207, 81,104,190, 87, 21, 34, 21,165,
- 71,158,216,124,197,161, 33, 3, 38,210,176,176,231,136,237, 43,148, 8,154, 95,175,143,158,153,156, 58,189,177,119, 87,156, 27,
-197,168, 41, 17, 51,145,253, 12,160,162,108,250,144, 64,116,223,119, 86, 41,172, 71, 33, 97, 85,219, 83, 98,144, 2, 4, 48, 19,
- 37, 16, 41,129, 69,232,197,122,160,255,205, 7, 62,248,161,133,249, 5,219, 36,251,128,217, 71, 96, 0,129,195,167, 62,245,219,
-231,206,157,219,249, 66, 31,249,149,143, 38, 73,164, 68,162,118, 89, 16,129, 1, 98, 48,136,192, 1,204, 12,112, 8,129,129, 16,
- 2,115,136, 49,126,252,227, 31,157,185,208, 47,252,226, 47, 17,217,221,155,148,234,131, 64, 27, 99, 73,137,154,134, 7, 77, 92,
- 90, 24, 18, 40,132,104, 46,131,153, 67,140,159,253,236,103, 30, 58,117,138,136, 98, 59,157,218, 50, 64,180, 49, 17, 6, 22,230,
- 34, 17, 61,117,161,125,224,209,245,209, 0, 0,119, 34,195, 38, 44,206, 15,246,236, 30,174, 44,143,118, 47, 13, 6, 77,224, 0,
-238,186,159,254,233,159, 9, 33,252,198,175,255, 26, 14,190,230,239,131, 92, 42,176,123, 99,183, 76,187, 77,102, 34, 66, 8,152,
- 27,197,197,185,102,223,202,240,208,129,249,229,197, 38, 4, 6, 56,216,210,154, 24, 73, 68,161, 68, 16, 2,171, 18, 51, 9,169,
- 2, 80, 16, 19, 67, 4, 28,208,117, 42, 34, 73, 18,169, 44,140, 40,165, 78, 5, 0, 11, 51, 51, 39,145,168,148, 72,149,132, 21,
-170, 96,146,142,136, 9,170, 74, 74, 10, 33, 82,152, 53,174,111,146, 40,221,126,195,160,109, 91, 0,102,124,102,129, 44,130,171,
-142,190,141,148,137, 73, 9,254,137,148,148, 9, 68,182, 40, 34, 16, 43, 0, 6, 8, 0, 19,192,140,159,124,227, 62,219, 82,216,
-182,238,191,238, 46, 34,192,212, 31, 4,187, 16,129, 8,164, 68, 76, 32, 82,128, 9, 74, 12,102, 19, 31, 56,152, 64,193, 12, 48,
-129,163, 72,114, 65, 19, 17,177, 74,178,213,193,148, 85,160, 0, 84,213,118, 34,169, 27,148, 36, 83, 54, 17, 98, 38, 16, 69, 85,
-177, 61, 35, 48,169, 16, 72, 5, 12,117,243, 83, 40,131,213, 54, 79, 72,153, 52, 17, 49,136,149,132,236, 77,132,148,149,254,191,
-123, 96,199,103, 87, 86, 86,118,239, 94, 33,162,201,100,124,241,226,197,141,141,141, 31,226, 66, 71,143, 29,123,215,187,126,202,
- 21, 58,255, 99,166,207,204, 33,132,139, 23, 87,255,245,111,253,230, 15,186,208,199,127,245, 19,146, 68, 77, 7,221,250, 25,118,
- 57,246, 71,176,139,113,136, 77,252,216, 71,127,101,135, 11,125,232,195, 31, 33,181, 15,219, 37,152,234,217,118, 3, 1, 12, 55,
-171, 16, 2,219, 18,195,233, 51,167,127,255,211,191,215,191, 16,119, 93,215,118,109,215,117, 93,234,186,212, 73,234, 36,117, 41,
-165,212,165,148, 36, 73,151, 82,215,117, 73,146,253,219,217,231,107,175,189,246, 55,255,213,111,109,189, 80,242, 63,246,195,246,
-240,175,206, 61,179,249,220,234,120,125, 99, 58,158,180, 73, 68, 82, 74,146, 82,215,117,109,219, 78,167,255,226, 95, 86,145,133,
- 91,111,189, 85,123, 15,247, 36,164, 73,244,193,199, 46,175,111,118,109,167,151,215,187,181,245,150, 20,110, 30, 76, 69,160, 39,
- 78,188,237, 75, 95,250,159, 30, 36, 13, 76, 76, 90,153, 76, 19,224,106,253,149,111, 95, 88,223, 72, 27,147,238,226,165,246,242,
-102,183,118,185,109,147,128, 40, 48,128,108,218,170, 74,250,218,215,190,246,235,127,241, 23, 81, 68,254,199,255,126, 78,212,205,
-139, 9, 74, 20, 0, 10,202, 10,144,134,200, 76,136,145, 3, 79, 98,224, 38,114, 8,196, 8,142, 11,186,110,223,222,125, 32,132,
-115,155, 47,183, 72, 11,195, 45,134, 80, 84,133,160, 66,162, 5,247, 40, 64, 77,224,249, 81,156, 27,134,192, 51,123,127,215,137,
- 19, 81, 73, 45,214,186, 18,129,148, 18, 41, 84, 8, 4, 14,108, 30, 84, 84,219, 86, 66,160, 24, 53, 73, 18,177, 55, 80, 85, 37,
- 96, 58,157, 70, 82, 53, 87,155,149,209, 62, 11, 8,162, 68, 73,152, 89,137,148, 40, 6,106,219, 52, 26,160, 9, 36, 34,200, 14,
-139,186,142,148,162,104,130,173, 67, 65,172,162, 96, 37,130,249, 17, 21, 2,137, 50,179, 8, 47, 45,132,227, 71, 23, 64,154, 82,
- 2,192, 10,133,186, 30, 83,199,200, 11, 84,168,170, 66, 12, 15,138,168, 16, 9,169, 10,105, 82, 85,149, 51, 79, 77,187, 86,252,
-161,110, 84,246, 93, 18, 9, 11,123,143,170, 42,217, 66, 21,196,174, 74,200,182, 8, 37,100, 9, 62,124,122,227,153,213,246,154,
- 3, 3, 95,176,162, 24,126, 88, 88,185, 14, 92,127,138,236,114,190, 96,133, 66,253, 89, 34, 37, 16, 54, 38,242,208,227,155,203,
- 75,113, 97,158,253, 26,128,129,159,235,212,177,106,137,218,121,247, 8, 57,158, 88,124, 50, 37, 81, 2,158,124,122,122,234,241,
-141,139,151,186,107,175, 26, 42, 17, 8, 56,112,228, 4,193,194, 5, 80, 93, 11,106,116, 82,128, 41,131, 93, 6,123,128, 34,128,
- 24, 32, 38,102, 16,179,129,245, 34, 87,119,250, 74, 32, 79, 23, 12,209,251,205,170,168, 10,145, 42, 9, 25,206, 39,133, 16, 72,
- 35,169,171, 36, 32,118,199, 98,183,166,128, 42,129, 44, 70,168,169, 12, 1,110,218,170,172,134, 14, 13,226,229, 21, 65, 85,139,
-128, 9,162,164, 34,176,141, 81,177, 85,168,175,154, 32, 68, 4, 33, 21, 53, 72, 12, 37, 7,140,162,102, 85, 34, 66, 74, 66, 80,
- 34,130,138,189, 65, 94, 70, 94,188,212,251, 7, 8,148,215,240,210,227,135,143,179,229,113,228,200,117, 55,220,112,195,225,235,
-174,219,179,178, 82,159,117,103, 74, 48,240,236,255,240,197,139, 23, 79,157,122,240,175,254,234, 47, 31,121,228,145, 23,103, 65,
-139,139,139,239,122,215, 79, 29, 60,120,200, 82,224, 12,152,213,109,153, 50,134,183,181,108, 65,210, 30, 83, 81, 32, 33,129, 98,
-211,252,167, 47,124,225,155,223,252,198, 11, 87, 14,188,227, 29,239,184,225,134,227, 34,197,183,101,147,154, 93, 50, 12, 59,150,
-165,228, 47,102,151,100, 9, 71, 93, 86, 94, 40, 51,115,151,186,127,251,251,159, 62,115,230,204,243, 44,232, 3, 31,252, 48, 57,
- 12,222,186,148,226,153,122, 31, 51,171,161,154,102,244, 68, 68,117, 41, 91,132,199, 28, 0,132, 24,254,201,111,252,250,120, 60,
-222, 57,129,190,253,246,219,205,118, 85,243,191,189,135, 71,186, 45, 31,249, 6,148, 52, 37,217, 28,119, 93, 18, 17,178,188, 56,
-128,169, 23, 34,213, 69,175,254, 22,164, 34,242,166, 55,189,249,196,137,183, 61,246,216, 99, 23, 46, 92,216,178,160,216,165, 68,
- 59,110,176,187,101,135,127, 89, 58,213,137, 63,125, 97, 58,109, 53, 4, 0,212,196, 16, 35,139,210,176,137, 49,116,163, 81,100,
- 54,108, 38, 77, 96, 13, 96,241, 60, 0, 34, 38, 44, 17,249, 71, 63,251,179, 49,198, 79,255,222,191,121,252,241,199,235,219,190,
-247,189, 63,119, 37,117,103,178, 24,196, 96,117,215,175, 32,224,177,179, 27, 23, 86,219,182,211,200, 24,141,130, 90, 14,165,148,
- 68, 99, 8,163, 97, 96,198,238,165, 97,140, 60, 28,132,209, 48, 12,154, 16, 2, 66,224,200, 22,189,171,234, 91,201, 98,208, 12,
- 62,246, 49,199,163,120,247,123,222,227,102, 4, 58,123,126,114,250,220,116,245,114,215,117, 90, 3, 37, 48,106,120,101, 57, 30,
-189,102,110,113, 62,220,251,205,231,148, 16, 51,154, 9,129, 69, 69,149, 6, 77, 16,209,192,136, 17, 49,240,242,226,208, 86,179,
- 56,223,204, 13,227,176,225,225, 48, 48, 16, 98,214,179,153,117,113,224,240,185,207,253,209,201,147, 15,224, 29,239,252,135,223,
-124,224,114, 86, 87,173,242, 49,167,207, 4, 5, 74,146,228,217,145,125,167,100, 25,146, 2, 32,102,168, 82, 8, 8, 1, 49,240,
-194, 40, 54, 13,143,134, 97,215,210, 96, 56,136,203,243,113, 48, 8,195,129,137,196, 23,228, 38,201, 0, 56,112, 0,240,149,175,
-220, 27, 46,211, 97,100,253, 43, 75,241,232, 78, 94,113,241,143,130, 55,220,171,192,202, 35,176, 74, 87,118,153, 89,235, 65, 68,
-145, 49, 28,240,104,200,131,134, 99, 0, 17, 49,144, 47,231,128, 36,151,228,148, 84, 95,241,202,195,209,125, 15, 40,175, 65,170,
-113,215, 55,182,181, 41, 41, 20, 82, 87,167, 96,134,231,225,162, 10,128,148, 68, 1,102,232,104,128, 16, 8,164,227,205,118, 97,
-196,129,153, 72, 83,210,236, 63,160,121,211, 74, 98, 10,213, 72, 42, 94,106, 83,183, 33,101, 81,223, 50, 98,209, 2,218, 28,134,
-168,146, 50, 72,148,136,148,213,161, 44, 51,160, 94,246, 33, 85,154,118, 50,157,202,254,149,225,213, 7,134,204, 32, 64, 68, 8,
-150,204,218,221,229,144, 99, 78,215,138,114,170, 49,163, 14,123, 75, 1, 64,106,128,216,176, 30,136, 68,179, 72,124,109,154,124,
-191, 72, 84,160, 32,104, 82, 53,200,136,148, 40, 65,175,125,217,232,250,195,243, 68, 16,177, 60, 2, 57,240, 88, 14,195, 4,101,
- 98,225, 68, 38, 34, 34, 40, 24,138, 3,199,238,118, 69, 40, 46,134, 96, 25,187,218, 93,100,240,153, 35,171, 35, 78,195,165, 30,
-219,236,133,185,222, 0,160,148,101, 94,119,227,242,190,149,198, 2, 49, 89,118, 67,108,121, 14,219, 15,128,138,154,131, 17, 22,
-247, 28, 37,104, 1,139,100, 88,185,106, 52,213,144, 82,242, 9,228, 10,135,107,114,134,171, 57, 7,206, 90, 73, 74,250,196,211,
-211, 83,143,111,158, 58,189, 41,162, 7, 86, 26, 17,123, 37,122,200,129,106, 81,151,128, 3, 71, 79,168, 57,209,226,142, 84,201,
-110, 49,255,205, 6,129, 89,191, 96, 78,129, 76, 32,202,185,122, 2,174,185,158,127, 1, 82,228, 44, 0,204,184,249, 85,139, 7,
-247, 15, 3, 51,245,227,160,169,226,129,235, 78,144,215,119, 76,209, 75, 94,228, 59,168,100,153,168,231, 71, 84,147,128,146, 93,
- 24, 78,102,168, 21,155,172, 52,205,249,182, 25,100, 10,235, 91, 70,202,249,105, 16, 40, 48, 6,145,247,236, 26, 92,125, 96,184,
-103,185,193,254,195,119,169, 25,160,151,196, 65, 64,209, 30, 91,163,191,119,206,182,115,197, 28,158,103,248, 15,114, 73,163,136,
-184,128,121,211, 74, 43, 99,152,128,202,186,173, 64,162,106,255,203,182, 63,156, 13, 74,148, 12,149, 9,169,154, 59,209,156, 46,
-144, 90,234, 39, 14,195, 69, 73, 45,195,205,184,191, 56, 68,177,146,189, 66, 85, 97, 40, 94, 96,240,221,253,139, 40,178,239, 36,
- 85, 81,130,170,168,163,125,213,232,110,217,235,101,118,219, 57,225, 55, 57, 40, 41,144,181, 93,189,196,150,125, 58,200,243, 28,
- 85,219, 9,133,146,144,101,201, 10, 98,241,172,131, 65, 36, 34, 96,228, 10, 27,103,220, 0,203,138, 64,164, 76,145,172, 44,199,
- 80, 18,181,146,103, 65, 97,164,142, 26,212,157, 41,101, 31,233,215,242,139, 91, 41,143, 61, 49,181,109,243,178,117, 78,250,253,
- 74,253, 60, 86, 44, 6, 90, 43, 7,196,202,150,166,137,170, 9,205,119,193, 0,149,199, 24,148, 80, 38, 42, 74,162, 42, 30,107,
-212,109, 86,213,118,129, 60,209,244,188,158,178,223, 36,144,119,114,252, 33,182,199, 68,189,141,115, 17, 43,189,148,150,189,244,
-248,145,103,174, 53, 25,104,226,252,220,252, 96, 48, 24,141,230,154,166, 33,175,234,181,227,241,100, 50, 25,175,175,175,167,148,
-126,228, 11,106,154,230,166,155,110,126,205,245,215,191,226,229,175, 8, 49,212,104,207,110,103,150, 2, 26, 44, 86,213, 71, 31,
-125,244,129,239,125,247, 91,223,250,214,212, 26, 60, 47,226,130,126,226, 39,223,113,252,248,241, 38, 54, 25, 43,213, 76,186,151,
- 80,151,192,232, 25, 62, 17,133, 16,192,152, 78,167,247,127,251,219,127,250,167,255,249,255,105, 65, 49,198,227,199,143,223,125,
-247, 79,104,193,174,125,160,157, 83,250,126,134, 63,155,156,206,166,246, 0, 51,175,173,173,125,234,119,126,123,125,125,253,135,
- 91,208,158, 61,123,238,190,251,238, 67,135,174,177,154, 81, 15, 77,247, 94,212, 79,236,123,159,175,184, 38, 67,167, 68, 33,134,
-243,231,206,125,246, 51,159,217,158,164,238,188,160,247,189,239,125,115,115, 11,217,125,110,205,240,107, 38,143,178, 97,125, 41,
-121, 98, 11,102,207,240,107,129,161,191,153, 8, 33,156,122,240,212, 31,252,193,191,123,254,230,248,223,249,241, 55, 25,205, 32,
-105,162,156,134,231,152, 80,242,123, 37, 34,241, 72,226,223,120,136,245, 4, 38,199, 47, 47,206,230,224, 2,127, 1, 17,237,221,
-187,247,109,111,127,251,215,254,252,107,237, 15, 84,249,112,231,157,175, 83, 21, 81,139, 86,219,138, 13,189, 5, 81,191,210, 80,
-171, 9, 68,116,229, 16,148,243, 40,191,140,200,155,223,244,150,216, 52, 15, 63,252,208, 21, 23,116,199,157,119,206,190,113,239,
- 79, 15, 73,211,246,183,238,175,166, 38,112, 64, 45,114,245,224, 92, 17,173,210,225, 87, 30,126,205,245,215,127,227,235, 95,191,
-194,130,238,184, 67,251, 23,237, 47, 9,179,114,232, 45,165, 60, 57,158,166,233, 52,217, 14,139, 18,160, 25, 59,151, 90, 57, 74,
- 9,176, 8,109,215,242,174,183,188,229,239,222,115,207,151,118, 88,208,109,183,223,110,229,125,213, 29, 54,172, 86,122,250,133,
- 33, 85, 34,237,146, 62,183, 54,157,182,137,136,186, 36,134, 21, 83,162, 24,184,143,120,161,208,109, 18, 54,136,252,230,183,188,
-229,222,123,239,217,190,160,219,118,148,194,246,141, 66, 89, 30,104, 99,156,206, 61, 59,233,146,116, 73,173, 84, 50,237,100,218,
- 10, 51,166, 93, 34, 66,114,123,181, 14, 50,102,222,194, 51, 45, 48,243, 29,119,222,249,213, 76, 25,201, 11,186,245,182,157, 87,
- 83, 51,213, 94, 70, 70, 32,162,213, 75,237,217,167, 39,147,105, 26, 79, 36, 37, 37,162,205,113,154,180,218,118,178,190,217, 77,
- 59, 33,160,109, 19,121,123,202,152, 22,216, 30, 20, 64, 24, 13, 71,135,143, 28,185,255,219,223,174, 11,186,229,150, 91,117,167,
-135, 9, 36, 87, 24,188,166, 79,138,141,113,122,244,236,230,165,245,110, 60, 21, 34, 74,162,227, 73,154,118,186,177,217,110,140,
-147,245,178,218, 78, 1,154,182,137,128,192,206,238,225,226,117, 45,245,243,236, 79,247,172,236, 89, 91, 91, 59,123,246,172, 7,
-140,190, 79, 54,205, 19,161,105,103, 55,134, 24, 48, 28,176,249, 22, 81, 18,145, 7, 30,189,124,241,114, 7,208,160, 65,219,137,
-101, 46, 41, 41, 7,110, 2, 54,199,105,110, 20, 83,210,182,147,133, 81,195,220, 17,233,104, 16, 1, 33, 69, 8,198, 96,200,176,
- 61, 37,102, 22,166,127,240,206,119,126,239,123,223,181,174,115,204,253, 41, 26, 79,229,225, 51,227,103, 86,219,245,205,148,141,
- 21, 68, 20,152, 23,231,248,224,254,225,177,107,231,190,247,253,245,167, 46, 76, 24, 8,129,218,142, 2, 64, 76,146, 52, 68,230,
- 46, 77,148,154,134,101,179, 21, 53,129, 16, 64,129, 49, 69, 98, 16, 2, 19, 52, 88, 46, 64, 70,173, 96, 18, 97,162, 78,245,131,
- 31,250,240, 63,255,103,255,148,136,194,205,183,220,178, 57,150,251,254,114,237,161,211,155, 23, 47,183,109, 39, 57, 76, 0, 80,
-203,117, 39,173, 60,187,154, 30, 62,179,185,122,185, 83,213,164, 42, 66, 32, 77, 74, 41, 41, 1, 41,137, 8, 1,232,146, 48, 16,
- 3, 82,146, 38,218, 79,211,160, 97, 34, 10,209, 11, 86, 85,193,189, 36, 64, 12,196,166,185,124,249,242,217,179, 79,134,105,115,
-221, 3,143,109,116, 73,115, 61,204, 27, 99, 61, 95,103, 70,106, 58,154,119,158, 44, 79, 81, 16, 37, 17,147,165,136,114, 38,127,
-133,200,146, 36, 4,110, 26, 16, 97, 56, 8, 0, 5, 96,214,145,129,106,217, 0, 55, 28, 63,126,239, 61,247,132,184,244,106, 80,
-174, 36,231, 0,238,249, 83,201,171, 74,113,198,163,170,194,214, 95,234, 76,222,178, 39, 21, 53,240,161,170,131, 38,128,169,137,
- 97,216,176, 85, 66,193, 61, 71,222, 51, 91,175,237,137, 46,239, 90, 14,203,251, 95, 77, 94, 92,203,158,204,186,167, 14, 47,212,
- 91, 94,246, 79,117,184, 84,151,238,125, 66,175, 12, 89, 21, 49, 6, 6, 48, 55, 12,243, 35, 30, 14, 66,211,176,213, 21,118,192,
-133,189, 30,193,181,215,190,156, 45,209,243, 13,176,228, 48,119, 72,181,151,201,121,254,104,245, 48, 18,162,156,195,131, 61,205,
- 54,154,152, 88, 50, 9, 17, 29, 52,104,162,101,136, 58,157,166,192,249, 2,146,219, 6,246,206,162,201, 59,193,154, 82,178,138,
- 23,121, 97,192,186,154, 90,194,187,228,152, 40, 94,192,130,130, 68,196,181, 71,213,186,215,160,114, 71,164, 42,202,164,195, 1,
-136, 84, 68,219, 46,141, 39,105,126,100,110, 72,108, 41, 34,146,239, 78,252,137,252,124,244,176, 64, 98,149, 57, 47, 35,168,244,
- 96,180, 16, 65,132, 0, 81,111, 11,149,194,177, 35,126,171,215,121,125,137, 41, 70, 76, 91,137, 49,140,167,105,247, 98,179,111,
-165, 1, 72, 68, 75,233,107,166, 72,168, 4, 54,187,133, 2,145, 60, 72,103, 93, 87, 37, 88,237,147,136, 20,162, 25, 49,250, 18,
- 69,172,221,224,109,188,204,105,240,181,216,234,199, 19,153,159, 11,131, 64, 71, 14,205,205,207, 69, 18,175,236,114, 86,232, 92,
- 62, 42,233,190, 58, 23,202,170,176, 90,169,100,170,164,144,172,172, 80, 49,179, 83,175,247,100, 69,182,178, 14,121,173, 74,225,
-118, 15, 17,130,116,186, 60,207, 71,174,158, 59,184,127, 4,130,136, 16,193,251,198, 25,132, 11,229, 27,180,187, 49, 39,198, 44,
- 34,209,125,147,146, 66,212,138,242,168,120,181,136, 78, 10,186, 17, 43,163,216,173, 89,153, 81, 51, 31,213, 36,197,147,150,118,
- 45, 6, 47, 70,213,234,165,247,159, 61,220,235, 54, 60,161,170,170, 97, 97,239,171,128,236, 15,253,134,115, 69,175,148, 16,171,
-129,123,205,217, 61, 17,229,250,111, 69, 99, 32,162, 78,244,177,179,147, 97,131, 93,139,113, 75,128,215, 89,147,207,148,181,234,
- 13,194,194,202, 81,175, 95, 34,123, 68,247,135, 94,188,174,200,177, 95,249,132,170,146, 21, 48,157, 86, 81,219, 19,142, 85,207,
- 93,104,207, 63,215, 94,125, 96, 80, 22,163, 52,171,204, 69,185,181, 64, 95, 10,139,123,143,121,204,200,184,169,230,168,154,203,
-121,153, 7,130,217, 96,162,217, 44,109, 19,173,202, 6,228,168, 3,108, 78,229,161, 51,155, 11,115, 97,215, 66,176, 54, 18,149,
-250, 28,122,173, 1,148,146, 50,194,226,158, 99,132,220,114,114,199,232, 20, 32, 11, 18,190, 85,208, 82, 16, 71,142, 19, 53,136,
-120, 3,198,174,225,253, 48,207,141,128,167,158,153, 62,241,244,228,224,222, 65,140, 60, 19, 44, 72,103,113, 32,129, 40, 44,174,
- 28,237,117, 52, 73,137, 93,231,220,163,103,126,154,102, 69, 33,167, 29, 85, 62,181,149, 44, 29,114,184, 28, 84,213, 9,185,170,
-202,104, 91,122,244,236,230,133,213,238,208,190, 65,214,131, 28,166, 43,102, 3, 1, 97,126,207,117,190, 77,170,185, 11,145,205,
-165, 16, 64,145,155, 45,228, 46,194, 58, 63,234,141, 56,115,143,185,180,170, 37,211,117,240, 0,135, 8,180, 57, 78,167, 78,111,
-174,173,167,221,203,113, 16, 57, 27, 93, 69,135, 64,238,117,120,251,165, 7, 49, 75, 43, 6, 40, 12, 53, 84,155, 48, 16, 80,107,
-237, 89,168,197, 37, 40, 42,140,118,221,242,189,186, 60,150, 71,159, 24, 63,254,212, 88,132,150, 23, 66, 19,185,170,116,191,181,
-160, 69, 20, 58,115, 49, 91, 82, 77, 1,243,205,100, 3, 97,205, 56, 46,119, 63, 56,111,182,177,132, 12, 44, 24,123,139,235,162,
-189, 65,199,145, 49, 55, 10,215, 28, 24, 29,216, 51, 88, 90,136,216,127,221, 93,149, 19, 5,151, 47,151,236,110,107, 34, 74,121,
-125,165, 73,221,115, 37,240,102, 67,230, 45,149,190,151,245, 5,193, 94,239,242, 94,173,203,217,218, 32,165, 65, 85, 25, 3,238,
-176,125,117, 90, 16,191,246,157,153,250,252, 0,172, 83, 32,189,124, 52, 35, 72,177,132, 64, 73, 4,200, 14,152, 8, 6, 56,156,
-173,165,146,153,120,158,130,154, 21,147,181, 1, 11,238, 49, 17, 56,146,144,188, 58,127, 38,175,204, 59, 10, 4,107, 91,100,166,
-104,225,123, 34,215,116, 0, 47,164, 56,159,220,116,149,250,183,237,198,132,210,178, 51,102,148,245, 95,140, 19,149,203,247, 40,
- 29, 24, 96,166,221,166, 74, 25,156, 0, 98,237, 25,234, 27,140,121,249, 44,171, 92,255, 50,197,214,156,237, 73, 37,156,192, 67,
-146,165,127,236, 77, 96, 11,198,198, 43, 51,118, 60,164, 22, 12, 84,196, 55,207,213,219, 71, 77,188,111,160,165, 91, 64,164,222,
-121, 33,201, 82,211, 60, 71,224,245, 36,120, 55,163,254,183,209,203, 76, 72,172, 40,165, 15,248,156,137, 20,113, 42,145,216, 27,
- 23,245,166,140, 41, 9, 74, 34, 57,130,105,222,187,222, 32,138, 53,162,108,109,206,128,115, 79,234,221,101,100,112,140,210, 95,
-178,124, 78, 69, 76,127,157, 61,165, 36,121, 82,197,157,181,144,168,255,161,172,169,254,102,165, 38, 9,207,227,253,135,179,191,
- 87, 21,119, 64,158, 13, 19,140,127, 73, 89,247, 8,249, 26, 2,225, 12, 97, 85, 74,103, 62, 99, 41,167,229,213, 36,163, 68, 86,
- 7,248,206,208,115, 87, 35, 46,132, 34, 35, 19,176, 89,191,251,111, 21,183,143,108, 91,200, 45,193,220,142, 99,199, 4,226, 86,
- 39, 4,148,249, 15,168,191,171,102,234, 98,175, 74,156,129, 74,233, 86,193, 93,129, 11,183,199,152,240,172, 36, 23,198, 60,187,
-203,121, 2,114, 27,217, 38,110,200,249,145,182,211, 4, 18,201,137, 99,134,138, 68, 10, 21,136,247, 54,125,231, 92, 84,132,194,
-186,116,120,235, 36, 69,231,100, 40, 42,173,201, 0, 74, 49, 42,210, 45, 41,218, 75, 13,179,151, 30, 47, 61, 94,122,252, 77,233,
-183,254,160, 75, 0,139, 75, 75,203, 75, 75, 11, 11,139,187,118,239,218,179,178,103,215,238,221,187,150,151,231, 23, 22, 23, 22,
-230, 6,131,161,161, 64,154, 41,152,229, 28, 71,169,235,186,205,205,141,181, 75,107,151, 46, 93, 62,127,254,220,229, 75,151, 87,
-215, 86, 47,173,173, 93,188,120,241,210,165, 75,127,243, 4, 52, 63, 63,127,244,216,171,174,190,250,234,171, 14, 28,216,181,107,
-247,252,194,124,140,177,223,137,217, 82,166,223,254, 38,152,109,219,246,232,189,101, 60,161, 62,186,174,219, 88,223, 88, 93, 91,
- 61,123,246,201, 83, 15, 62,248,208,169, 83,221,139,212,249,126,209, 4,116,224,192,129,155,111,185,229,198, 27,127,108, 56, 28,
-212,146,203, 11,185,110,173,220,150,186,148,127,139,146,105,123,162,158, 11,187, 61, 73,101,121,129, 11, 51,218, 51,100,102,230,
-211,167, 31,255,242,189,247,158, 60,249,128,188,136, 83,169, 47, 68, 64,139,139,139, 87, 93,117,213,107, 95,251, 99, 71,143, 30,
-227, 24, 24,172,165, 49,220,235, 81,109,145, 17,118, 84,154,254,172,201,214,111,183,113,232,183,127,158,157,154, 67, 33, 23,246,
- 90, 12,214,133,127,238,185,231,254,236,127,125,229,228,201,147,207, 62,251,236,143, 68, 64, 7, 14, 28, 56,126,252,248,225,195,
-135, 15, 92,117, 85, 74, 2,160, 82,201,103, 73,134,207, 47,230,146,185,247,189, 77,173, 2,209,140,240,182, 19,233,183,145, 1,
-158,239, 73,100,174, 34,115, 96, 34,156,126,252,177,111,126,227, 27,247,127,231,254,182,109, 95, 28, 1,125,242,147,159,156, 76,
-219,153,142,110,159, 66,240, 60,146,153,165, 60,244,239,118,203,147, 59,188,108, 11,109,227, 7,168,210, 22,234, 66,223, 12,139,
-245,245, 39, 43, 1, 96, 50,158,124,249,203,247,110,111,229,254,208, 2,250,208,135, 63,210,203,179,245,202,250,178,205,243,244,
-105, 50,179,114,233, 61,185, 93,149,102,141,112, 27,175,165,142,104,108, 97,114, 60,191,138,193,217,190,168,174, 44,112,104,219,
-246,243,159,255,163,147, 39, 79,254,223,205, 63, 57,157,193, 91, 33,185, 30,211,231,124,228, 63,219, 68,166, 91,132,214, 87,186,
- 45, 20, 11,237,187,176,158,158,246, 52, 84,183, 49, 37,244,138,207,107,127, 23,243,183, 59,126, 86, 85,102,190,233,166,155,239,
-186,235,196,193,131,135,158,124,242,137,237,103, 61, 60, 15,159, 76, 69,116,219, 61,238,196, 29,184,130,101,233,182,239,250, 79,
-234,142,207,102,234,103,166, 32,151,225, 54, 39, 64,219,160,160,241,125,184,199,195,236,183,143, 0, 75, 77,149, 42,135,191,126,
-182,129,206,108,118, 4, 36, 74,215,223,112,253,241, 27,111, 88, 91,187,252,199, 95,248,143, 15, 61,116,234,133,154,216, 47,254,
-210,251,250,162, 65, 97,251,208, 21,158,200,134,146, 11,229,254, 69, 41,172, 83, 62,150,160,119,100, 66,239, 71,124,230, 15,164,
-212,118,210, 37, 45,117, 66,147, 72,140,126, 24,128, 9, 45, 48,199, 6,129, 67,181,191,124, 20,133,211,184, 52, 23,164,235, 64,
- 14,122,161,162, 14, 77,149,182, 1,115, 16,213, 63,252,195,127,255,240, 67, 15, 61,191,137,221,126,219,237,125,227,200,118,211,
- 35, 13,245,232,183, 59,178,116,182,154,223,246, 65, 48,157, 49,182,201, 84,214, 55,186,181,245,118,125,179,219,156,164,105, 43,
-146,114,129, 68,181,235,116, 50,149,105, 43,198,170, 78, 34, 93, 75,185,162, 68, 34,153, 77, 85,198,185,115,167,170, 79, 32,164,
- 30, 7, 74,123,239,223, 99,227,208,173,183,222,250,250,215,191,225,252,249,243,207, 60,243,204, 15,210,160,159,255,249, 95,232,
- 57, 97, 92,201,170,250,108,150,108, 32,133, 46, 72,229,244,138, 45, 1,189, 95,230, 23,213,205, 73,186,180,222,109,142,165, 75,
-126, 26, 73, 8, 28, 35,184, 87,132,103, 70, 8,126,242, 3, 17,133,192,129,193, 1,131, 24, 98,100,211, 50, 27, 33,178,129, 46,
-251, 95,246, 81, 12, 80,159,159,127, 5,120, 85,106,229,118,110,204,217,191, 62,251, 31, 62,255,185, 43, 97,168,112,235,109,183,
-213,138,116,253,179,163, 35,234,109, 6,205,182,241,232,121,248, 79,151, 55,218, 39,207,143,207, 61, 51, 89, 93,239,198,147,212,
- 37, 17,165, 36, 58,237,116, 60, 77,147,137, 76, 59, 73, 66,157,232,100,146, 46,111,116,235,227,118, 50,149,105,171,227,105,154,
- 76,211,120,156, 38,173,168, 82,151,100,210,166,201, 52,181,157,171,182,213,147,197,120,230, 82,170,249,179,252,173,109,254,187,
-172, 76, 68,150,150,150,255,246, 27,223,184,184,176,244,224,131, 39,119,208,160,247,188,247,231, 94, 8,210,201,156,146,172,205,
-179,177, 60, 19, 47, 74, 47,174, 14, 13,182,157,156, 61, 63, 57,127, 97,218, 38, 69,223, 89,131, 24, 20,152, 67, 96,128, 68, 53,
-117,146,132, 66, 64, 96,127,198, 20,106,216,132, 24, 64,160, 24,120, 48, 8,131,104, 71, 15, 32, 6, 14,129, 67, 64,211,112, 52,
- 69,179, 67, 73, 24,204, 84,230, 88,250,128,137,122,200,160,192, 38, 66,245, 82,191,251,187,191,243,212, 83, 79,205, 8,232,221,
-239,121,207, 14,214,228, 67, 4, 58,153,234,230, 36,173,111,166,245, 77, 25, 79,165,109,181,147, 26,124, 3, 16, 27,158, 27,240,
-252, 40,204, 13,121,110,196, 11,163, 48,104, 24,185,182,251,236,197,246,241,191, 30,175,143, 83,151,106,180, 52, 38, 19, 7, 59,
-175,169,204,172,155,147,246,136,198,224,192, 62,232,164, 68,118, 30,195,104, 24, 76, 52,129,185,137, 38, 44,196,192, 49,114, 8,
- 28, 3, 98,228, 16,108,210,198,102,105,137,123,166,118, 37, 0,213,135, 78, 12,254,218,159,127,237,191,253,215,255, 82,195,124,
-111,214, 72,153,104,125, 44, 79, 62, 61, 57,119,161,221, 28, 75,155,106,252,157, 77,165, 10, 33, 4,219, 34,184,207,252, 45,206,
-135,249, 17, 95, 88,235,214,199,201, 42,197,176, 35, 89, 24,128, 74, 34,237, 58,235,170,147, 29, 9,146,107,206, 54,193,156,144,
-166, 62,150,196, 49, 0, 80,237,146,168,196,192,195, 38, 52, 13,137,106, 18,109, 35, 6, 49, 12,149, 6, 68,118, 14, 67, 72,136,
- 17,129,153, 68, 69,136, 2, 96,227,118, 5,116, 20, 78, 84,134, 5, 41, 83,135,133, 72, 89,223,240,250, 55,236,223,183,255, 79,
-254,228,143,173,216, 18,110,186,233,230,233, 84, 78,159, 27,127,231,193,245,239,125,127,253,177,179,227,103, 87,219,105,107,173,
-142,114, 80, 6, 97,134,185, 66,189,233, 50, 45,205,125,228,161,197,105,210,245, 77,185,120,185,155, 78, 69, 37,119,196,160,162,
- 42, 73, 83,162,148, 10,247, 7, 41,105, 74, 78, 28, 35,130,157,135, 38, 94,125,135, 18,137,136,209, 74,152,153,128, 36,146,146,
-136, 40, 51,103, 78,147,170,168,143, 18,214, 70, 64,241,215, 90, 26, 41,125,126, 42,106,121, 95,123,172, 90, 18,145,125,251,246,
-221,120,227,141, 15, 60,240,192,120, 60, 14, 79, 79, 15, 63,124,102,243,153,213,182, 77, 91,104,192, 58,155, 76,169, 15, 41, 85,
- 38, 29,168,144, 12, 60,144,121, 47, 10,101,128,144, 74,127,221,154, 64,101, 8,140, 72, 97, 70,231, 76, 66, 63,213, 77,139,243,
- 48,134,148,155, 30,172,133,169, 70,122, 49,171,176,195, 24,152, 17,236, 28, 35, 35, 36, 6, 4,152, 15,218, 1,212,111,129,230,
- 91,216,235, 61,118,146,206,205,205,221,249,186,215,125,231,254,251,195,226,190, 87, 3, 51,189,247,153, 76, 66,107,195,101, 75,
- 50,101,104, 2,234,102,166,153, 32,208, 75,203,212, 27, 85,154, 71, 47,225,124, 45,165,204,197,200, 76,239, 50,192, 95,187,141,
- 89,152, 82, 72, 35,142,159,141, 80,134, 16, 17, 3, 51,200,102,155,155,134,155, 96,246, 72,101,215,234, 73, 90, 91, 36,213,167,
- 5,246,115,207,156, 24,169, 42, 24,175,187,243,245,145,116,123,153, 75,183,230,159,149,214,157,207,198,202,188,130,124,119, 54,
-202, 38, 54, 3,107, 7,186,160, 48,213, 84,172, 43,239,202, 12,201,163,134,238,124, 42,171, 44, 67,191,204,165,178, 3, 73,152,
- 8,146,164, 21,168,162,137,193,206, 9,180, 46,120, 19,120, 56,192, 32, 2,164, 34,210,117,104, 2,115,230,106, 10, 9, 43,207,
-160, 91,148,217,216,222,204,103, 25,113, 44, 60, 36, 85, 81,226,192, 81,168,239,192,242,166,234, 12,237,169, 28,101,227,241, 28,
-153,183,161, 51,210, 47,122,131,218,202,244,159, 19, 21,239,209, 89,182, 32,185, 91,170,253,188,221, 68, 5, 21,173, 59,227, 24,
- 71, 56,112,132,185,121, 13, 64, 12, 52, 28, 96, 56, 96, 2, 77,166, 41,137, 12,155,136, 70, 2, 49, 7,101,134,183, 20, 65, 66,
-137,102,115, 20,202,253,230,156,187,121, 3, 25, 30, 22,242,176, 54, 9, 37,138, 48,116,181,141,255,165, 51, 32,208,155,151, 90,
- 40,103,181,200, 33,101,244,192,248, 20,168,108, 28,202,212, 35,103,103,212,115,141, 28,164,249,182,105,225,190, 3, 37, 11,207,
- 20, 37, 16,105, 0, 7, 80, 96, 50,140, 19, 35, 0, 88,154, 50,104,120,126, 20, 34,243,112,128,209, 48,216,172,124,127,162,163,
-122,189, 29,242,236,217,228, 1,101,200,210,233, 45,194, 20,123,195, 40,245, 88,145,194,225,240,107, 25,133,160, 18, 68, 50,141,
- 45,179, 44,189,102,165, 66, 61,206, 94,237,228, 26, 17,148, 10,145, 0, 62,186,137, 60, 22,137,108,180,126,122,100,142,135,164,
-236, 45,233,236,205,136,166, 83,233, 58,141,145, 23,231,227,174,197,184,188,216,204,143, 66, 19, 61, 21,205, 12, 0,173, 30,245,
-138, 21, 10,108,127, 66, 75,209,156, 8,170, 76,136, 66,149,185,221, 63,101, 32,179, 10,144, 3, 58,168,136, 12,206,161,169,123,
-161, 78, 87,216,214,219,153,169, 75,218,228,111,190, 1,167,192,102,118,167,244,180, 17,230,126, 64,249,192, 1, 81, 98,154, 78,
- 53,177, 46, 45,196,151,237, 29,238,217, 61, 88,152, 11,193,249,217,228,148,145,158,227, 44, 49, 88,139, 59,172,150, 53,251, 81,
-104,100,217, 19,105,158,188, 86, 73, 17, 66,149, 73, 99, 99,180, 69, 89,242, 76,187,217, 24,180,230, 16,249,147,100,178,121, 57,
- 18,181, 64, 2,161, 45, 19, 15,249,133,126, 10,129, 56,239,212, 71,115, 11,179,136,178, 16,243, 73, 99, 22, 3, 64,184,106,239,
-224,200, 53,115, 75, 11,161, 4, 38,201,188,168,236,123,119,212,141, 26,210,119,172, 95, 21, 77,215,108,224,232,205, 7,133,197,
-125, 71,253,188,174,138,168, 81, 15, 41,164, 58, 19,230,108, 63,212,227, 53,250,172, 80,148,231,141,204,209,251, 83, 39, 16, 84,
-203,208, 63,101,215,147, 25,185,153,122, 57,163,126, 40, 20, 28, 85, 93, 91,239,206,156,155, 60,183,218,205,143,194,104,200, 59,
-123,150,173, 93, 21,244, 11, 85,253,191,216,161,124,188,173,102,195, 28, 22,246, 28, 43, 76,100,143,180, 85, 94, 22,180,123,211,
- 13,126,212, 66,166, 70, 34,123,115, 45,142,167,220,126,185,146, 82, 57,166,173,184, 46, 19, 35, 35,143,101, 91,101, 48,107,129,
-246, 2,170, 86,128, 98, 62,108, 99, 44,167,159,154, 60,242,228,230,250,102,218,189,152,189,242, 12, 22, 41,212,163,254,168, 88,
- 86, 31,244,142, 57,201,208,191,242,206,182, 20, 87, 85,141, 14,188,117, 22, 18, 21,225, 86,112,132, 10,160,139,188,180,190,174,
- 15, 34,102, 8,210, 5, 78,247,123,100,125,197,116, 8,105,164, 65, 42,122,148,227, 70, 30,121,240,209, 53,167,105,137,174,173,
- 39,163,132, 38,209,185, 1, 55,161, 63,128,151,249,107,152,197,128, 62, 91, 85, 1, 70, 63, 75,163,153,147,102,242, 29, 92,117,
-236,237, 51, 21,186,204,206, 70, 31, 52,231,227, 68,182,246,193,156,130,139, 30, 45, 16, 59,180, 18,103,192, 67, 46, 38,161, 23,
- 48,168, 30, 86,146,233,196,245,173, 51,114,204, 4,115,157,233,190, 21, 2,212, 96,128, 3,123,134,175,120,217,112,239,174,198,
- 65, 90,201,220,181,158,185,215, 75,231,183,181,193, 49,123,252, 21,129,128,152, 79,136, 38,234,177,225,234, 84,130, 87,213,169,
-206, 32,204,220, 86, 57,223,166,248,111, 45, 44,102,162, 45, 95,102, 11,114, 69, 19,114,188,141,122,240,160, 24, 61,210, 77, 47,
-167, 31,170, 89,127,250, 14, 74,197,207,117,176,138,116,219,209,147,231, 38, 79,158, 27, 7,198,210, 66,124,229,193,209,161,253,
-131, 24, 57,143,186, 72, 14,141,189,163,138,202,100,196, 21,218,233, 32,194,254,163,111,171,229,221,108, 57, 40,229,141,204, 82,
-167,222, 1, 48, 57,254, 67, 75, 99,125,235, 49, 45,180,211,244,107,158,116,202, 17,163, 30,170, 91,226,101,169, 70,100,112,228,
- 44,112,234, 77,140,212,247,239, 41,173,207, 0,212, 73, 9, 91, 58, 51,237, 95,105, 14, 31,154,219,179, 28,109,120,180, 4, 3,
-202,168, 89,243,190,215,219, 46, 67,222,204,209, 25,167,133,239,136,154,115, 1, 51,245,113, 63,142, 28, 21, 72,250,212, 94, 77,
-111,104,118, 56,108,139, 51,234,159, 9,130,234,197, 10,143,159, 4,117,192, 39, 79, 66, 65,180, 12,157,250,154,202, 60, 77, 78,
-253,204, 58,141,193, 40, 62,126,226, 68, 86,161,167, 47,180,231, 47,180,162, 20, 3,175, 44,197,125,187,155,149,229,184,107, 49,
-142, 6, 1,208, 45,220,132,109, 9, 0, 0, 3,255, 73, 68, 65, 84,245,252, 50,252,224,147, 21, 34,177, 0, 24, 20,146,107,127,
-168,198, 51,250,218,229,164,114,192,167, 33, 87,103,141, 22, 25,213, 65,187, 89, 13, 66,207, 23, 21,186,126, 46, 3,104,175,212,
-110,152,179, 12,210,217,127,121,153, 35, 67, 3,173,239, 12,159, 8,202,103, 42, 59,236,171, 73,164, 65,205, 0,168,232,179,107,
-237,179,171,222,179, 15, 1,163, 65,152, 27,242,174,197,184,188, 24,119, 45,196,197,249,208, 52, 37,207,245, 75, 68,130,206,122,
-208,194,255, 47, 9, 67, 46, 86,144, 26,183, 54, 67,147,172, 86, 40, 14, 44,203, 79,183, 28, 31,133, 66,152,206, 38, 92, 96,165,
-239,184,205,139,137, 29, 59,148,157, 20,196,143, 21,202,175,149,114,210,154,173, 5,238,176,138, 10, 82, 30, 51, 67,153,246, 71,
-221, 68,113,124,110, 91,155,104, 99,179, 91, 31,227,217,181,206, 5, 95, 32, 26, 83,240, 67, 10, 40,138, 74,207,243, 22,116, 35,
- 36,253,210,142,248,150,149,132,221,105,217,245,176,214, 82,211,193,204,175, 0,152, 77,237, 52,227, 94,167,135,247,145,143,243,
-161,197,167,121,102, 86, 2,211,162, 82, 88, 67,214,192, 50,189, 78,101,158, 83,145,207, 14, 2, 20,189,195,175, 80, 60,130,255,
-159,184,125,146,214, 77,177, 40, 42,148,212,196,138, 88, 74, 64,154, 77,197,167,118, 42, 98,206,197, 46,239, 18,231, 50,144,231,
-225, 61, 96,174,245,192,241,109,173,182, 76, 67,166, 2, 46,109,118, 32, 95,208, 85, 83,242,104,172,206, 36,144,229, 92, 34, 42,
- 67,143,240,106, 64, 30,106, 43,153,157,150,211,242,188,182,224,113,182,102,163,164,162,118,252,159,215,238,252,172, 56, 18, 63,
- 47, 46,163, 13, 64, 99,221,189, 44,101, 99,131,151, 34, 96,133,203,130, 90,196,200,220,235,170, 83,101,123,103, 90,141,197,216,
- 64,189, 23,162,192,216,124,236, 44,202, 12, 0,202, 80,152, 23,159,178, 31, 47, 13,103,179,150, 10,234, 80,203,119,121, 6,180,
-204,115, 73, 29,164,246, 8, 89, 50, 31,205, 99,102,249,184,171,114, 56, 88,175, 60,200, 81,203, 4,100, 69,204,110, 40,174, 88,
-165,198, 86, 19,139,146, 9,248,201,210, 25,233,110, 37,149,245, 81,139,106,239, 87, 68,212,233,173,158,179, 47, 49,203,237, 78,
-144,127,153,133,150,185,112, 63,135, 75,243, 33,114, 86,148, 45,133, 42,205, 16,177,224, 67, 59, 97, 48,187,246,172,154,176, 95,
- 33,160,117,162,192,113,151,201,186,188, 1, 36,106,141,235, 69,120, 40,225,204,214, 41, 14, 59, 36, 31,198, 86,165, 73,229, 80,
-198, 25, 67,155,105,246,215,217,190,162,111,118,209, 94,201, 22,217,225, 35,159,168,232,218, 84,124, 32,231,116,169, 2,151,156,
-161, 91, 5, 63,227,162, 92,177,203,207, 64,124,120, 49, 55, 74, 10, 88, 42,147, 8,200,165,131,170,229,121, 74, 62,122,152, 68,
- 47, 99,201, 21,218, 28,154,220, 61,168,192,207, 7, 7,234,142, 22,128, 83,230,184,123, 33, 30, 51, 21,242, 60, 75, 83, 60,145,
-102,136,161, 37,165, 87, 5,247, 79,149,169,168,163, 95,143,172,170, 84, 3,100,197,180,154,111,184,234, 75, 81, 46,195,159, 54,
-185,166,142, 69,125, 40,159,106,140,205,199, 93, 19, 40,150,152,227, 10,156, 65,174,157, 61,153,135,242,250,126,222,146,132,154,
-138,148,242,238,142,244, 41, 42,238,106,230,148,131,156,149, 22, 3,148, 50,252,231,177, 92, 10,134,161,222, 77,148,185, 80,175,
-118, 21, 91,162, 50, 18, 74, 53, 55, 44, 35,152,245, 92,132,252,107,129, 52,203,135,178,135,238,165, 28,189, 1,202,168,110,237,
-148,199,212,109,215, 69, 75,238,111,146,170, 39,243, 74,101,117, 72, 57,128, 68,139, 67,157, 41, 55, 17,182,102,172, 90,195,162,
- 25, 70,143,168,168,185,102,235,171, 41,193, 37, 27,191,148, 34,184,144, 48,177,246, 14,155, 1,124,240,189, 14, 35, 23,209,102,
- 99,114,119, 78, 53, 92,245,237,172,134, 18,173,147,176,209,100, 65,181, 50, 96,135,153,246,207, 9,204,190,172,142,170,111,145,
-148,223,179, 34, 71,200,126,253,181, 87,156,202, 73, 80,245, 95,133,219, 83, 38, 26,123, 67,200,186,197, 49, 21,162,141,221,112,
- 1,130, 84,115,124,251,221, 67,138,146,246,168,128, 88,171,176, 92, 70,254, 59, 80, 42,104, 33,155, 69,166, 90,135,117, 25, 71,
-170, 94, 58,159,218, 81,129,123,191,132,225,211,190,238, 56, 42,217,163,103,107,189,211,125,251,166, 38, 5, 10, 97,150, 48, 3,
-173, 96,161,232, 29, 74,197,223, 59,135,121, 44,187, 15, 77, 51, 78, 42, 0,165,103, 27, 90,233, 38,121, 18,191, 71, 74,163,234,
-148,105,230,101,253,113,216,222, 89, 44,255, 7,220, 22,142,137,141,220,236,213, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/smooth.png.c b/source/blender/editors/datafiles/smooth.png.c
deleted file mode 100644
index 0dcad4213f3..00000000000
--- a/source/blender/editors/datafiles/smooth.png.c
+++ /dev/null
@@ -1,523 +0,0 @@
-/** \file blender/editors/datafiles/smooth.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <smooth_png> */
-
-int datatoc_smooth_png_size= 16428;
-char datatoc_smooth_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13,
- 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,
-143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0,
- 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 19, 0, 34, 13, 86,254,139, 21, 0,
- 0, 32, 0, 73, 68, 65, 84,120,218,236,188,119,124, 92,247,117, 39,250,107,183, 78, 31, 12, 48,131, 54,232,133,189, 87,129, 20,
-213,169, 94, 28, 57,142,101, 59, 94,103, 99,167, 56,137,157,178,155,141,119, 55, 78, 54,222, 36, 78, 98, 39,246,102,159, 21,199,
- 69,242,202, 77,178,122,165, 68, 82,164, 72,138,189, 1, 4, 65,130,232, 29,152, 94,111,249,149,247,199,189, 51,128,100, 39,235,
-228,249,237,250,125,222, 94,138, 36, 0, 94,205,156, 57,247,212,239,249,158, 31,220,187,119, 47,248,159, 94, 43,111,106,106,136,
-254,196,123,112, 75, 75,203,143, 30,255,195,142, 72,205, 31,255,225,191,233, 91,223,181,181, 51,254,245,111, 63,222, 29, 68,175,
-190,115,126,249,166,230,230,184, 15, 75,119,222,127,219,235,207, 30,232,232,141, 55,198, 99, 70,126, 49, 28, 9, 62,112,235,246,
-221,107,187, 94, 63,126, 1, 0,128, 0, 4, 15,252,210,163,253,103,206,212,212, 6,101, 69,214, 61, 94, 33, 4,196,208,235,211,
-219, 58,155,254,254, 63,126, 18, 0, 64, 32, 0, 8,226,238,213, 29,217,116, 6, 65, 4, 0, 7, 0, 64, 8, 17,130,182,101,119,
-116, 55,127,229,143,126, 21, 9, 0,178, 75,227,138, 30,240,135, 66,170,166, 66, 0, 56, 99,220,102,178, 44,109,187,237,193,254,
-139, 35, 51,211, 11, 8, 8, 33, 73, 10, 23, 28, 17, 2, 17,134, 16, 2, 0,186,183,221,117,226,240,121,211, 40,173, 89,215,214,
-217, 29, 71, 0, 0,219, 50, 56,181, 33,128,130,115,203,178, 32,132,175,127,239,155,143,126,242, 83, 39, 94,123, 62,159, 47,239,
-255,208, 39, 16, 0,128,217,101,193, 40,181,140, 98, 62, 15, 1,120,245,185, 35,227,179,233, 82,102,250,153,195,253,173, 93, 93,
-223,127,252, 43,176,175,175,239, 47,127,239, 17, 74,153,101, 90,132,224, 88,199,122,219, 44, 82,179, 48,112,233, 58, 98,230,197,
-161,133,144, 66, 9, 0,176, 84, 44, 83,202, 20, 69,242,248,253,102,126,241, 71, 79, 62,191,121,231, 26, 72,141,129,254,145, 79,
-252,230,199,125,161, 6,248, 83, 61,187,159,230,130, 0,128,107,231, 14, 28,124,254, 71,107,183,172, 78,205, 47,217,148,198,154,
-162,127,253,213,239,191,112,240,212,242, 77,207,255,227,159,153,197,194,209,131,103, 63,240,225,219,137, 36, 9, 33, 16, 70,133,
- 92,113,113, 62,245,203,255,254,203,238, 3,222,183,177,107,227, 77, 55,155,249, 4, 64, 48, 20, 9, 65,136, 56,231, 8, 65, 69,
-145, 30,188,117, 27,182,249,192,232, 52,209, 60,170, 63, 20, 90,189,161, 75, 8,193, 41,133, 8, 33, 0, 17, 66,156,113, 76,200,
- 39, 62,241,192, 67,247,239, 35,225,112,192, 44,230,252,161, 26,106,155, 66,112,219,178, 40,165, 0,130,186,198,250, 64,164,233,
-248,145,211,132,150, 81,199,186, 77,140, 26, 8, 33,132, 9, 0, 16, 66, 40, 41,114, 77,172,205, 27,172,251,250,255,245, 84,223,
-205, 59,234,226,109,132, 51,202,108, 83,112, 6, 33,100,212,182, 45,187,117,205,110, 73,243,254,238,175,125,250,163, 31,186,235,
-232,107,175, 94,159,205, 19,106, 22, 25,165, 64, 48,179, 92, 42, 21,203,157,155,247,253,201,239,254, 97, 93,109,176, 33, 18, 50,
- 74,165,169,241,217,182,134, 8,254,216,195, 55, 91,166, 81, 46,150,202,165,114,231,198,155,110, 92, 58,142, 0,120,228,195,143,
- 28, 57,124,242,194,249,107,136,224,228, 98, 6,149, 75, 70,169, 80, 42, 21,203,109,107,183, 79, 95,191,240,196,183, 95, 9, 4,
- 60, 95,253,235,199,255,244,239,190,188,107,251,170,223,249,220,239,215, 52,214,129,159,213,179, 35, 43,191,249,240,163,247,121,
- 36,254,173, 31,188,241, 27,159,252,216,154, 58,165,119,235, 46,143, 6, 19,115, 51,221,235,183,125,233,111,190,242,223,158,124,
-241,159,179,129,189,123,247,126,245,191,126, 54,183, 56,201,185,109, 51, 24,142, 54, 77, 76,204,111,217,185, 11, 33,116,244,229,
-239, 99,140, 11,249,226,134,109, 27, 56, 99,233,100, 50,149,204, 22,114,197, 27, 99,179,127,249,205,231,222, 31, 8,154,155,227,
- 49,197,154,159, 89,220,178,239, 46, 90, 76,188,240,212, 11,115,227, 19, 65, 63,131, 80, 4,195,126, 93,151,194,145, 32,181, 44,
-106, 91, 8, 67, 77, 83, 60, 30,173, 62, 90,115,255,190,109,183,108, 89,115,101,120, 34, 91, 44,187, 47, 20,143,183,172,110, 10,
-220,255,209, 95, 53, 10,233,197,233,201,218,104, 40, 90, 31, 97,156, 81,163, 40, 4, 69, 8, 35,140, 33,172,218, 48, 4, 64, 32,
-132, 20, 85,174,169, 13,238,191,101,235,142, 85, 29, 58, 38, 87, 39,102, 9, 0,162, 54, 22, 73,207,143, 42,186, 55,218, 28, 55,
-139, 89, 74,105,229,255, 67, 0, 8,206, 24, 23,130,115,225,188,132, 36, 73,156,139,114,217, 88,154, 79,221,114,223,253, 13,109,
- 93,175, 30,189,252,193,219,119, 19, 0, 64,231,170, 30,140,177,109,150, 32, 68, 68,209, 49,161, 92,112,193, 57,227, 76,112, 33,
-132,224,148,113,206, 53,175, 87, 82, 52,106, 91,254,144,242,228, 95,124,253, 83,191,246,208, 43, 47,189, 42, 51,107, 67,107, 84,
-215, 21, 4, 0,144,117,191, 16,140, 81,139, 51, 42,132, 16, 8, 65,136,160, 19,125,132, 0, 0, 72,178, 20,172,141,169,154,119,
-240,124,127, 62,147,141,182,111,216,183,111,243,231,190,240,100,103,188,110,219,190,125,251, 31,190, 77,214, 20, 4, 0, 96,102,
-153,218, 38,163, 38,163, 54, 16, 28,112,198,153,237,152,169,105, 24,154,199, 31,235,216,148, 75,167,190,250,213,239,238,188,253,
- 46,219,178,254,254,139,127,217,208,222,251,185,207,126,240,155,255,227,213,169,145,145,169,145,177, 99,103,175,226,120, 60,126,
-251,174,110, 70, 45, 70,109,198,108,106,153,166, 97,148,139,101,163,108, 40,170, 28,142,198,231,167, 39,190,253, 15, 63,216,182,
- 99, 77, 67,173,143, 16,145, 75,167, 89,201,232, 92,213, 57, 59, 62,121,207, 61, 55,189,242,234,137,165,217,165,142,120, 12,199,
-227, 45, 55,111,105, 55, 13,203, 52, 12,163,236,252,103, 17, 9,247,238,188,167,166,169, 7, 19,249,181,103, 94,100,150,117,190,
-127,172,181,165,254,137,127,124,182,156, 43, 53,182,196, 52, 5,188,241,218,201,233,137,185,223,253, 47, 95, 88,191,117,253,229,
-147,167, 9, 0,160, 92, 50, 56, 23,156,115,206, 57,130,104,195,222,251,168,109,228,151,198, 5, 34, 23,143, 29,158, 75, 21,103,
-150, 82,127,250,249,223,249,219,191,248,218, 47, 60,122,171,238,213,254,230,239,159,109,143,199,186,187,154, 94, 60,116, 46,253,
-153,223,217,189,123,221,120,218,252,217,197,201,159,201, 21,143,199,209,207,234,181,150, 95,200,235,209,142,191,240,119,206,215,
- 39, 95,254,111,159,125,116,255, 59, 47,252,247, 31,254,253,127,254,216, 99,143,190,252,173, 63,249,169, 50,192,189,183,223,244,
-103,255,225, 87, 11,197, 50,132,104,184,255,202,205, 15, 60, 58,118,249,157,133,133, 84, 38,153, 59,122,114,240,211,191,253, 88,
- 48, 18, 29, 60,119,250,218,240,212,127,250,202, 83,255,212, 71,195, 1,191,247, 59, 95,255,219,177,171,151, 66, 33,223,181, 43,
- 35,190,128,214,182,122,171,172,200, 13, 45,237,153,228,124,123, 75, 84, 81,144,162,170,138,130,252, 94,237,238,190,205,119,238,
-222,240,202,145,115,239,123,161, 64, 32,128,159,255,218,231,154,123, 55,223,184,116, 78,247,104,170,166,190,246,252, 17, 90,154,
- 47,102,147,156,149, 52, 85,241, 7,189,170,166, 50,219, 20,140, 99,140,136, 68, 8,193,119,238,222,208, 22,171, 61, 53, 48,188,
-242,133, 16, 86,253, 35, 23,143, 98, 9, 27,134, 49, 63, 53,171,107,138,101,209,134,214, 22,127, 56,166,251,188,146, 44, 1, 1,
- 56,231, 2, 8,136,161,162,200,186, 71, 11,133,253, 27,214,180,255,197,111, 63,246,158,192,214,183,182, 77,213,228,141,125,183,
- 45, 78,141,229,115, 69,159, 95,151, 21, 9, 66,134, 0, 5, 0, 64,136, 97,245,121, 8, 80,173, 70,100, 69,150, 85,105,123, 79,
-251,193,211,253,238, 71,251,253,223,254, 88,164,190, 49, 80, 27,183, 10,243,132, 96, 77, 87, 61, 30, 77, 82, 36,140, 16,198, 8,
-162,106, 80, 3, 66, 8, 46, 56, 23, 66,112,129, 9,246,250,116, 85,147, 59,194,161,227, 3,195,129, 64, 0,175,107,170,213, 84,
- 88,223,210,205,169,129, 33,147,100, 34, 43,146, 44,203,152, 96,132, 16, 0, 64,112, 33, 0,119,196, 1, 0, 48,198, 13,195,180,
- 45,138, 16,170,173,171, 89,191,101,109,123,180, 62,111, 81,210,222, 21, 39, 18, 54, 10, 25, 34,171,138,238, 69,132,112,198, 32,
-132, 0, 66, 8, 33, 99, 76, 0,193,185, 0, 92, 0, 0, 16, 66, 4, 99, 85,149,147, 75, 25,106,211, 64,164,177,100,129,203, 87,
- 71,246,221,180,153,148, 75,229,186,250, 26,219, 44, 10, 46,176, 36, 3, 33, 24,102, 66, 8, 8, 4, 99, 12, 8,193,185,224,140,
- 11,225,190,144,172, 72, 77,221, 27, 86,235,254,196,236,232,212,248, 28, 22,165,117,171,218,115,169, 36, 90,189,105, 77,160,166,
- 94,112,202, 57, 5, 0, 34, 68, 16, 66, 8, 33, 8,145,163, 90, 8, 4, 23, 2, 2, 16,170,107, 84, 61,222,153,201,249, 98, 38,
- 57,120,250,240, 23,254,235,227,161, 0, 58,248,214, 89, 59,159,157,155, 77, 32,205, 91,131,136,204, 25,229,130,185,137, 2, 98,
-136, 32, 0,192, 81, 52,132,144, 96, 84,211,208, 26,138,117,252,240,137, 23, 77,211, 82,189,222, 96,125,215,174,117,173, 77, 93,
- 27, 62,244,209,251,238,255,197,123, 52,143,142, 0,128, 64,112,193, 25,224,206, 51, 1, 16, 8, 8,160,168, 92, 0, 8, 85,247,
- 80,219,188,240,246,203, 15,124,224,150,185,233, 68, 38,145,120,233,135, 79, 79,205, 36,177,236,121,243,192,137,241,225,225,197,
-133, 4,226,220,230,140,114,206, 56,163, 66,112, 1, 4,128, 80, 8,193, 25,181,109,155, 82, 74,109,166,106, 62, 85, 15,248,194,
-161,246,205,183,231,144,250,249, 47,124,205, 35,227,223,254,163,223,155,155,158,249,248,111,125,166,125,253, 77, 45, 45, 49,194,
-169,205, 57, 21,156,113, 46, 32, 16, 64,112,247, 69, 44,155, 82, 42,201, 82, 32,214,232,171,105,254,242,231, 62,111, 99,244,137,
- 96, 48,234,129,159,124,108,255,236,204,226, 91,207, 63, 93, 91,223,232,245,200, 47, 60,249, 84,190, 96,193,203,135,159, 96,140,
- 1,224,124, 14, 46, 56, 99,148,154,166,105, 91, 54, 0,160,161,173,183, 84, 54,206, 28,126, 91,146, 8, 23, 32, 90, 95,219,208,
-210, 56, 53, 54,229, 15,250,226,221,155,190,249, 55,127,119,250,250,212, 39, 31,187,243,187,175,156,193,255,246,195,251, 25,179,
-157,143,198,108,219,182, 44,211,180,108,203, 6, 0,134,106,107, 37, 69,255,209,147, 79,111,216,210, 51, 51, 53,191,251,230,157,
-133, 92, 46,151,206, 60,241,189, 3, 1, 93, 97,102,186,189,187, 89,148,140,203,131, 83,254,160,135,216,166,201,220,208, 47, 56,
-231,140, 50,198, 24,231, 60, 22,111,173,107,223, 60,116,250,141, 29, 55,173, 93,181,227,238,169,137,121, 1, 0, 66,248,196,233,
-171,146, 68,168,105, 94, 27, 24,153,152,207,213, 5, 20,171, 84,164,140,195, 99, 63,250,107,202, 56,175,228,101,206,133, 16,162,
-169,163,219, 23,105, 45,166,103, 32,145,207,190,125,104,232,202, 88, 58,153,251,232,167, 62, 56,112,238, 82,106, 41,179,126, 75,
-239,248,200,180,164,144, 61,251,239, 53, 45,154, 73, 46,124,231,169,151,144,101, 83,106, 83,106,217,148, 82, 74, 25, 99,172,169,
-189,179,148, 75,140, 93, 62,114,253,210,185,114,118,241,251,175,190,171,200,228,142,123,118, 94, 56,125,126,106, 98,254, 67,191,
-249,155, 92,136,108,174,104, 26, 54,132, 34, 24,169, 83,117,127,215,170,118,252,145,135,246, 49,198, 25,227,156, 9,198,120,109,
-180,166,161,103,151,224,180,161,107,155, 16,246,215,191,253,138, 71,176, 98,217,160,101,107,110,102,105,213,218,182, 51, 71,143,
-157, 56, 51,180,118,117, 75, 42,149,123,254,217, 55,144,153,188,113,245,218,235,199, 47,131,159,171,188,214,220,220,140,192,207,
-211, 5, 33,252,151, 9,244, 43, 31,125,248, 43,127,248,137, 7,111,218, 12, 0,184,109, 95,223,183,254,234,247, 21,130,239,223,
-191,239,103, 41,211,222,189,123,143, 30, 61, 10, 0,208, 84, 21, 64, 80, 46, 27, 24,227,115,111,125,155, 72, 50,145, 61,103,143,
- 30,106,110,107, 30,188, 52,180,102, 99, 47, 34, 26, 51,115,227, 35,211, 75,243,233,155,247,247, 93, 62,115, 57,149,204,198, 87,
-175,221,186,107, 39,130, 80,112, 94,200, 46, 14, 93,188,240,187,127,246,245,233,133,228,191,186, 18,113, 5, 66, 8, 29,123,245,
-137,185,177,107,241,158,141,153,197,241,158, 45,251,152, 85,190,124,252,128,164,106,186,174, 54,180,175,149, 60,161,114,102,126,
-113,226, 42,130,200, 27,174, 57,243,206,105, 89, 34,165,146, 49, 63,155,232, 93,223,189, 97,199, 14,102,155, 66,112,179,148,203,
-101,210,185, 76, 62,159, 45,153,166, 5, 0,152,154, 79,124,249,137,151,138,101,227,167, 21,168,175,175,239,223,125,124,127, 48,
-164, 73,178, 58, 63,187, 16, 8,250,230,103, 22,155, 90,155, 5, 51, 15,188,114,124,113, 49,211,220, 84, 27,170,241,215,212,133,
-182,222,124,231,141,203,167,230,102, 23, 59,186, 91,140,178, 97, 26, 22, 66, 72, 81,100, 73,145, 36, 66,136, 44, 67, 8, 57, 99,
-148,218,182, 69, 45,203,178, 76,203, 50,109,211,180, 44,211, 54, 12,219, 44, 27, 79,188,120,228,194,208,232, 63, 47, 16,142,199,
- 91,238,232, 91,219,212,181,193, 27,137, 23,115, 25,171, 92,106,237,234, 48,203,249,134,246, 53, 13, 77,225,133,233,249,196, 82,
-150, 81,214,216, 28, 85, 20,160,233, 74, 91,239, 58, 89, 81,101,153, 40, 10, 81, 20, 25, 17,132, 32, 20, 64, 8,198, 25,165,140,
-115, 32,132, 0, 2, 2,128, 49,198, 4, 75,146, 36, 43,146,162, 72,138, 34,109, 90,221,126,199,206,245,123, 55,173, 58,122,126,
-144,115,241,227, 2, 5, 2, 1, 28,143,199,239,218,179,246,157, 55, 14,101,150,166,125, 62,141, 83,179,190, 99,221,204,232,240,
-244,216,200,141,161, 81,206,185,166, 41,170,166, 48,198,108,203, 36, 4, 67,192,132,224, 0, 8, 88,185,156, 76,186,220, 53, 1,
- 1, 5,132, 8, 57,249, 30, 97,132, 49,150, 8,150, 36, 73, 81, 36, 85,149, 21, 85,185,109,251,186, 61,155, 86, 49,155,141,207,
- 45,189, 79, 32, 2, 32,156, 24,158,184,237,129,251, 2,209, 86,206, 40,179,141,197,241,126, 69,149, 40,165,145,186, 80, 48,228,
-227,156, 67, 4, 9,145, 8,193, 70,217, 20, 34, 67, 36, 66, 8,129, 8, 1, 8, 48, 70,156, 59, 30,235,164, 81, 1, 1, 20, 72,
- 0, 46,156, 10, 10, 8, 8, 48, 2, 16, 72, 8, 17, 9, 43,170,226,241, 9, 70,253,229,146,241,193,128,231,150,173,107,174, 92,
-159,248,225,219,167, 87,244,196, 66,180,173, 89, 47, 16,185,126,225, 88,247,166, 62, 65, 97, 32,210, 32,201,146,199,155, 55, 13,
-211,182, 40, 99, 46, 90,132, 49, 70, 24, 97,132,156, 60, 14,133,112, 10, 4, 8,133,211,134,137, 74, 55,230, 42,203,173,136,160,
- 83,153, 49,198,132,112,164,196,178, 78, 20, 77,246,248,180, 72, 93, 40,218, 16,233,140, 55, 44,228,114,223,122,241,109, 33, 4,
- 1, 0, 46, 78,221, 96, 86,174,190,165,211, 54,203,132, 40, 68,214, 85, 79, 8, 97, 34,203, 37, 74,109,198,184,112,158,119,245,
- 13,160,219, 11, 58,239, 85, 45, 49,160, 83,120, 0,225,254, 27, 0, 8, 33, 33, 4, 20, 80, 8, 97,155,180, 84, 46, 51,202, 9,
-193,235,118,236, 48, 75,249,114, 33,171, 40,202,182,219,183, 14, 95, 62, 55, 51, 58,210, 22,139,204, 26,144, 0, 8, 50,201,108,
- 33, 87, 42,229,115,245,241, 22,205, 23,225,156, 67,136, 48,145,133, 2, 16,182, 57,103,156,115, 87, 5, 28, 2, 4,128, 0, 16,
- 2,167, 71, 22,192, 49, 98,183, 42, 20, 66,188, 39,240, 34, 72, 32,148, 36,224,241,122, 52, 95, 72, 86,189,140,218,133, 50, 31,
-186,112,254,198,141,233, 83,151, 71, 67,186, 60, 50,247,181,143, 61,184, 39, 87,176,182,239,217, 50, 56,107, 18, 32, 64, 83,107,
-189,170,169,186,215, 79, 36,141, 81, 27,112,198, 24, 5, 0, 33,132, 1, 1,144, 35,196, 57, 23, 2, 2, 33,176, 83, 28,115, 71,
- 68,224,138, 34,132, 83, 94,114,238,116,226, 16, 34,136, 32, 66, 0, 99, 34,132, 96,140, 42,154,174,104,222,197,201, 27, 55,134,
-198, 0,128, 35, 35,211,254,250,216, 31,127,238,147,239, 28,120, 59, 85,178,175, 14, 77, 50,219,238, 89,219, 57,114,229, 50, 1,
- 64, 52,181,175, 18, 66, 0, 8, 1, 4,130, 81, 33,184, 83, 97,137,202,199, 20, 8, 64,206, 33,128, 16, 0, 46, 56, 0,208, 81,
- 18, 16, 16, 66,199,158,157, 86, 0, 98,130,116,111, 32,210,188, 74,210,124,227, 3, 71,143,190,113,194,227, 81, 39,199,230,183,
-221,180,110,122,252,157,233,153,165, 15,253,242,125, 47, 63,123,232,194,120,226,254,120, 61, 66,240,225, 95,249,181,141, 55, 13,
- 36,103,198,166,103, 18, 47, 61,115, 32,105,114, 28,143,199, 31,186,103, 47,128, 0,186, 85, 52, 7,156,113,193, 1,119,170,105,
- 33, 0, 0, 80, 32, 8,133,107, 33,162,218,140,136,229,114, 25, 34, 4, 9,193,146, 44,235,190, 26,132,241,244,213, 83, 35, 67,
- 99, 62,191,103, 33, 81, 88,179,161,125,247,254, 71, 54,244,237,211,176, 97,216, 48, 24, 14, 54,134,244, 88, 44,152, 75,167,147,
-115, 19, 10,225, 2,240,174,238,214,222, 53,109, 37, 6, 8, 0, 64, 56, 53,172, 99, 3, 78, 97, 12,132, 16, 28, 0, 14,128, 0,
- 64, 64, 0, 1,224,149,119, 23,156,115, 23,237,112,190, 17, 2, 0,136, 49,242, 4, 34,225,134,238, 66,102,225,226,137,183, 85,
- 89,234,236,109,215,189,222, 72,116,230, 59, 79,190, 54, 63,189,120,117,120,186,185, 62,114,125,116,118,235,166,174,123, 63,252,
-209,212,210,226,179, 79,126,247,248,192,216,183,190,241, 87,154,175,102,126,108,160,255,228,224,216,200, 12,142,199,227,247,221,
-190,205,233, 48,128,211, 55,113, 46, 56,135,194,145, 9, 56,237,139,163, 44,206, 57, 99,148, 51,202, 40,171, 84,151, 2, 64,128,
- 16, 84, 52,175, 47, 92, 95, 72, 77, 31,125,237, 77,127, 40,248,198,193, 75, 91, 54,119,106,190,154, 96, 77,221,158,189,155, 79,
-157,187,190,117, 83,123,115, 60,234,213,149,245, 27,123,230, 39,110, 20, 50, 75,175, 31,185,248,225, 7,111, 62,249,246,241,151,
-127,244,226,109, 15, 62,210,217,211, 62, 48, 48, 72, 0, 0,156,154,140, 59,149,185,168,186, 12,115, 11,126,183,224,230,140, 9,
-193, 42,114, 80,167, 68, 37, 18, 14,132,163,161,134, 30,203, 44, 91,165,172, 96,236,212,145, 19, 75,139,169, 53,155, 86,253,250,
-111, 60, 58,112,238,210,248,216, 25, 89,149, 41,128, 15, 63,114,103,160, 38,122,224,249,103,135,174, 79,245,174,238, 88,187,251,
- 14,106, 91,219,206, 93,107,105,139, 37, 22, 19, 35,179,137, 63,254,247,255, 9, 80,186,227,174, 59, 96, 95, 95,223, 87, 63,255,
-113, 87, 14,176, 28,220, 28, 49,156, 28,229,150,255,140,113,198, 25,227,130,115, 8, 33,145,176,162,170,186, 63,148, 89,154, 47,
- 21,205,167,254,199,107,221, 29,141,197,162,209,222,209, 88, 42, 26,150,205, 54,110,233, 45,149,202,161,154, 64,203,234,157, 63,
-250,198,215, 95,127,231,242,239,125,230, 99,197,244, 98, 32,228,159, 28,159, 63,112,224, 84, 71, 71,195,187,151, 70,246,109,237,
-225, 66,152, 20, 79, 76,206,102, 44,134,227,241,248,157,187,123, 24,165,220,125, 22,148, 51,155, 81,198,168, 77, 45,219,182,109,
-106, 83,203,178,109,219,102, 54,163,148, 65, 0, 52,143, 22,142, 53,213, 52,246,248, 35, 77, 8,203,212, 50, 82,137,132,109,218,
-119, 63,178,223,239, 87, 74,133,210,250, 45,189,107,183,108, 40, 23,178, 61,155,111,114,156,223,171,195,144,223, 71, 75, 57, 73,
-194,163, 35,211,187,110,237,179,139,249,158,158,150,225,209,217,206,150,232,249,254, 49, 90, 42, 69, 67,190,162,205, 8, 0,208,
-178,108,193, 5,175, 68, 20, 39,200,113, 33,128, 99,219, 78, 55,206, 5, 0, 0, 99, 20,174,173, 13, 53,116, 41,122,160,148, 77,
- 72,222, 80, 98,122,232, 59,143, 63,253,145, 79, 62,186,245,182,135,174, 13, 13,157, 63,117,101,195,150, 94,217, 91, 75, 41, 55,
- 76,246,214,243, 47, 60,247,230, 73, 89,215,125, 88,196, 35,193, 77, 15,239, 75, 39, 51,151,250, 71, 21, 73,122,225,208,185,187,
-118,175,189,251,142, 93,178,132,183,109, 2,253, 3, 35, 30,159, 10,210, 69, 2, 0,160,182,107, 19,194,137,198, 92,188,239,130,
- 16, 40,170,210,216,185,206,162, 64,247,120,231, 70, 47,214, 54,247, 36,103, 70, 98,170, 55,214,177,165,163,231,196, 23,191,248,
-205,173,107,219, 37,137,212, 55,213,125,231,233, 67, 31,188,207, 96,140, 31, 63,209,223,211,217,212, 89, 27,188,239,225,125, 77,
- 29,171, 32, 2, 99,131,151,146,137,108,200,167, 29,127,119,224, 15, 62,253,193,181,187,239, 80, 61, 1, 39,134,216,166, 49,114,
-229,130,125,232, 8,236,235,219,243,249, 95,191,155, 11, 46,120,213,114, 28,109, 1, 46, 4,132, 64,150,165, 88,115,139, 47,210,
- 82, 72,207, 44, 78,143,235, 30,141, 72, 42,131,210,245,129,161, 99,231, 71,253, 10,158, 24,157,240,123,212,246,182,134,211,253,
- 35, 15,237,223, 57, 49, 58, 99, 90,244,236,181,137,219,183,175, 41, 22,203,251, 31,220, 23,168,107,186,114,238,220,115,207, 29,
-106,111,142,110,217,190,218, 48,236, 77,125, 55,223,232, 63,155,207, 22,166,166, 22,175,140,206, 19, 89,181,153,197, 40, 3,146,
- 10,247,236,217,179,111,107,151,227, 78,160,146,177,221, 12, 5, 0,198,200, 23, 12,122, 66, 13, 16, 66,219, 50,169,101,228,178,
- 57, 77,197,138,230, 27, 30,184,220, 63, 60,227,213,100,131, 50,175, 71,207,101,243, 97,175,222,218, 90, 63, 59,187,228, 81,101,
-127,192,219,177,110,227,204,232, 80, 56, 82,115,229,226,144,224, 92,146, 73, 40, 28,168,169,171, 41, 21, 10,167,206, 14,105,132,
- 40, 10, 17, 0,250,189,234,240,244, 18,198, 72, 35, 24, 74,242,207, 25,222,232,244,102, 63, 63,194,236,221,187, 23,193,101,132,
-235,231,226,250,249,234, 92,255,197, 2,121, 60,250,207,151, 64,135,127,244,119,159,186,239, 22,137, 96, 0,192,151,191,248,249,
-223,255,216,131, 0,128, 80,192,247,255,174, 64,154,166, 1, 0,250,223,125,225,204,129,111,168,178,212, 88, 95, 7, 0,136,213,
-213, 12,188,251, 98, 98,110,198,239,211,191,250,185, 79, 13, 95,120,235,214,155,182,118,182, 55, 14,158,122,241, 63,126,250, 35,
- 87,206, 29,186,120,248,137,255,254,231,127,240,255, 92, 32, 28, 8, 4,178,217, 44, 0,224, 23, 30,218, 63, 56,116, 3, 0,240,
-149,255,242,155,127,251, 55,127, 86,206,204,149, 75,165, 13,173,245,191,250,145,187,239,219,183,237,131,143,220,155,156,155, 48,
-203, 38, 0, 98,205,198,158,185,177,225,139, 39, 79,143, 12, 79,237,185,251,254,174,158, 46, 9, 3, 73,245, 43, 32,191,170, 49,
-250,214,201,203,255,106,105, 90, 90, 90, 96, 60, 30,159,156,156, 4, 0,188,251,242,227, 62,191,127, 41,107, 73,162,212,127,246,
- 98,160, 38,226,209,241, 80,255,200,222, 59,118, 34,162, 6,163,241,133,177,129,196,124, 18, 19,148,207,151, 1, 16,139,243,201,
-197,185,148,201,249,109,119,110,239,222,120, 19, 66, 48,187, 56,190, 56, 59, 59, 55,189,152,202,228, 22, 82,185,239,190,124,116,
-230, 95,136, 58,236,221,187,215,213,208,246,205,107,111,217,177,118, 46, 97, 53,198,124,144,104, 91,246,222, 1,121,174,152, 47,
- 6,195,254,150,158,245,129,186, 22,136, 20, 65, 11,150, 81,142,119,245, 36, 22, 23, 24,101, 16, 64,140, 81, 46, 83,188,229,190,
-123,172,114,142, 90, 37,206, 24, 4, 12, 19,172, 72, 82,192,163,237,217,188,250,129, 91,183,205, 39, 50,179,139,169,159, 94, 67,
-216,231,243,157, 60,244,204,125,119,236,206,103, 82, 62, 77, 24, 54,128,118,142, 35,249,228,225,163,173, 61,189, 62,191,247,212,
-145,119,218,215,108,212,116, 47,150,148, 96, 36,230,175,107, 43,103,103,243,185,130,215,239,241,248,244,112, 77, 32,155, 90,208,
-117,130, 16, 6, 66,112,193, 16, 4,152, 96, 66, 92,128,121, 99,111,219,254,155, 54,157,185, 50, 82, 42,155, 63,149, 64,127,244,
- 7,191, 21,213,141,196,220,180, 39,220, 60, 55, 49,234,245,233, 75,115, 11, 94,175,148, 73, 36, 95,127,238,224,240,149, 17, 69,
-149,102, 70, 6,101,108, 2, 8, 78, 30,124, 43,159,156, 82, 20, 9, 19,130, 48,242,249, 60,145,186, 80, 32,232,195, 8, 11,193,
- 24,179,157, 90, 27, 65, 8, 17, 68, 24, 99,140,156,225,194,158,205,189, 91,122,218,143,158, 31,252,159, 11,180,123, 83, 23, 97,
- 86,231,198,157,245,241,246,171,231,207, 34,192,203, 38,143, 53, 52,212, 53, 53, 38, 23,230,231,230, 83,204,162, 62,191, 71,150,
-161, 85,202, 17,130, 67, 53, 65, 76, 8, 33, 88,150, 36,247, 45, 49, 2, 0, 10,206, 56, 99, 78,251,228, 0,222,200, 5, 34, 32,
- 66, 8, 66,168,169,242,173,219,214,222,152,156, 79,231,139,255,140, 64, 68, 8,212,218,213, 86,211,208,150, 92,152,102, 28,214,
- 54,212,151,242,121,136,177,166,250,195,145,160, 54,177,232, 64,198,254,144,223,227,245,214,212, 55, 74,178,110, 25,121,171, 92,
-180,169, 37,152, 16, 64, 8, 46, 4,116,170, 23,183, 70,128, 8, 33,196, 17, 70, 4, 16,119, 34,224, 32, 15, 16,254,198,135,246,
-159,188,112,237,153, 67, 39,255,201, 1,188, 77,109,155,225,233,235, 23, 47,159, 61,143, 17, 19, 92,248, 34, 77,185,196, 92, 54,
-123, 61,147,204, 42,138, 4, 0, 48,203, 86, 38,153, 81, 85, 85,214, 36, 0, 4, 66, 18,145,100, 33, 56, 3, 76,184,149,184,128,
- 78,187, 8, 4,128, 0, 10,128, 16,194, 88, 0, 1,129, 4,100, 87, 32, 8, 17,128, 16,238,218,220,211,209, 84,247,151,255,196,
- 56, 31, 63,242,240, 3,118, 98,122,240,210,149,125,247,238, 47,101, 19,225,218,154,124, 54,159,207,102,230,102, 22, 45,147, 34,
-132, 20, 85, 82, 84, 5, 33, 4, 33, 64,144, 11,193, 57,167,156, 51, 0, 4, 0,110,106, 70, 46,120, 42, 0,132, 80,192,202, 52,
- 10, 64,232, 66, 20, 8, 66,132, 16, 70, 8, 97, 4, 33,146, 36,124,211,154,174,183,127,204,164, 90, 90, 90,240,170,150,152, 87,
- 65, 62,191,222,218,213, 27,105,104, 14, 68,154,199,175,245, 83, 74,169, 69, 17, 66,178, 44,105,186,162,235,170,172,202, 68,194,
- 8, 65, 32,152,112,176, 7, 33,160, 43, 17,172,130,186,142,182,150,139,188, 10,136, 85,133,182, 48, 70, 68,194, 24, 33, 0,192,
- 77,107,187,223, 39, 83, 75, 75, 11,222,181,101,237,214, 77,221,219,110,187,223, 27,174,103,204,178,140,188,145, 75, 56,239, 68,
- 8,150,100, 73, 81,101, 69, 83,100, 69,150,100,130, 49,118, 84, 5, 0, 68,192, 17, 5, 58,237,155,131,188,172,224, 31, 84,135,
-118, 14,110, 34, 32, 0, 16, 35, 66, 48, 33,146, 36, 19,140,137,101,217, 59,122,219,143, 94, 28, 90, 41, 16, 10,134, 3, 0, 73,
- 71, 95,126,154, 81, 83, 86,188,186,191, 46, 92, 27,241,120, 53,175, 95,247,250,116,175, 79,247,120,117, 77, 87, 21, 85,114, 66,
-139,112,223, 86, 8,224,168,200,181, 97, 81,177,221,202, 76,183,162, 51, 88, 45,141,129, 3, 60,202, 10,209, 61, 90, 32,232,173,
-137, 4, 36, 73,250,119, 31,190,207, 81,152,107, 67,247,222,187,127, 85, 79, 71, 77, 93, 93,185,152, 13, 70, 26,203,185, 69,206,
- 41, 4, 12, 0,136, 48,196, 24, 19,137, 16,137, 72, 18, 33, 14,138,137, 49, 66,176,106,166, 14, 56,227,232, 65, 64,232, 24, 22,
- 88,161, 31, 23, 1, 96, 92, 84, 26, 9,132, 16,198, 24, 0,168,104,178,166,107, 92,128,237,221,173,151, 70,167, 76,203,142,199,
-227,184,189, 46,172,176, 98,102,105, 49,222,222, 37,169, 30, 34,107,130, 83,206,108, 32, 56,114, 33, 75, 71,207, 21, 97,170,129,
- 5, 33, 87, 23,194,197, 66, 42,189,119, 5, 27,113,140,137, 11,206, 5, 99,220,182, 40,167, 14,227,128, 19,130, 17,130,177,198,
-198, 66, 33,223,209,213,108,148,141, 95,124,240,246,176,172, 38,202,148,196, 26,235, 34,117, 53,117,245,117,170, 63, 12, 33,180,
-205, 18, 0, 0, 19, 69, 82,108, 0, 0, 66,180,130,215,129, 74, 64, 65, 78, 78,112,148,193, 93, 28, 24, 84,128, 71,192, 43,222,
- 6, 5, 4, 14, 78, 3,185, 16,194,182,109,211,180,128, 0,209,134,218,214,222,245,111,191,252, 74, 36, 26, 93,183,237, 38,197,
- 27,153,155,203, 82,179, 8, 85, 13, 0, 3,223,186,103,103, 80, 67,229, 82, 17,178,146,164,120, 4,183, 5, 99, 66, 80, 23, 24,
-114, 81, 95, 8, 33,114, 45,186, 2, 2, 67,136, 28,152,107,197, 28,147, 87, 92,189,242,183,243, 16, 33,132, 8,202, 50, 49,202,
-102, 49, 95, 14, 4,125, 67,151, 7,238,254,208,199,223, 61,116,184,165,107,245,119,191,254,248, 51,175,157, 76,206, 44,238,237,
- 91,119,254,218, 12,201,166, 82, 5, 31, 10,134,124,140, 90,204, 46, 35, 76,132,224, 0, 34, 8, 49,194, 68, 0, 32, 56, 19, 28,
- 85, 13, 19, 64, 0, 33,128, 16, 57,166,227, 88,141,168,244,221, 0, 56, 63, 3, 64, 0,136,128, 0, 16, 67,199, 85, 67,154, 47,
-220,210, 67,202,101, 35,181,152,108,105, 83, 62,243,235,159,241,169,202,119,159, 63, 82, 31,246,127,244,193,190,124,174,184,117,
-239, 45,255,248,210, 25, 2, 0,240,250, 61,254,160, 95,213,189,130, 51,238, 64, 85, 2, 0, 4, 17,194, 2, 8, 1,160,128,188,
-210, 83, 87, 32, 52,238, 26,139, 27,110,170, 48,142, 0, 64,112, 23,238, 19,110, 67, 67, 48, 81,189, 33,111, 48, 70,100, 85, 55,
- 10,186,174, 13,158, 63,127,223,254,190,112,109,195,212,196, 68, 52, 36,223,152, 92, 50,242,197,129,119,143, 2, 0,137,199,167,
- 71,234, 66, 30,175,135, 72,170, 3,103, 2,206,129, 16, 64, 32,224, 68,123, 7,118,173,128, 53, 14, 22, 81, 81,151,211,112, 59,
-152,132,147,213,132, 83, 23, 67,247,217, 34,219,166,140, 51, 8, 97,102,113,244,250,229, 43,233, 84, 30, 0,240,189,151,142,125,
-241, 11,191,149,152,159,187, 62, 48,212, 95, 54, 0,128, 55,223,182,181, 88, 50, 1, 4,200, 23, 8,132,106,107, 85,111,136, 40,
-154,235, 21,130, 87,240,188, 10, 56, 13, 16, 68,200,125, 90, 85,170,131, 27,134,144,123,155,224,142,209,200,178,236,143, 68, 3,
-145, 6, 69,247,201,154,183, 92, 50,178,169,156,172,120,222, 61,124,114, 98,124,110,195,214,213,178, 76, 32,132,102,185, 72,100,
- 89,214,181,222, 85, 45, 22, 0,169,197,212,139,175,159,128, 0, 16, 76, 20, 89, 11, 66,232,194,158, 21,105,220, 64,134, 32,228,
- 0, 2, 4,132, 16, 16, 65, 39, 63, 57, 62,199,221, 76,193,171, 9, 11, 64, 32, 75, 36, 88,215, 26,136,181, 27,133,212,225,231,
-126, 80, 42,217, 83, 19,243,173,237, 13,249,108, 97,224,242,240,195, 31,188,109,113,118,241,213,183, 47, 17,140, 37, 73,138,182,
-244,254,214,182,219,250, 79, 30,172,171,175,185,113,109, 58,234,211, 83,121, 78, 28, 55,114,124,216, 65,154, 65, 21,216,123, 63,
-163, 70,192, 74,129, 33, 32,130,128, 11, 33, 32, 66,144,115, 4,161, 64, 8, 66, 32, 41,154,230,175,129, 0, 10, 70, 35,177,232,
-137,163, 23, 99, 13,145, 77, 59, 55,132,163,205,219,111,191, 55, 95, 40,157, 58,120,160,161,169,225,131,247,183, 32,140, 21,205,
-151, 89, 24, 87,101, 76,195,209,123,127, 97,245,248,200,204,224, 83,111, 34,224,184,140, 75, 67,224,174, 44, 21, 47,230,239, 69,
-230, 65,165,239,134, 96,133, 73, 1, 1, 0, 64, 24, 33, 66, 32,132,140,154,201,169,254,193,211,239,204, 77,205,109,217,177, 38,
-151, 45,248,195, 49,127, 93, 59,150,148,167,255,225, 31,239,120,232,225,169,137,233,114,217,156,157,156,185,116,236,192,226,244,
-216,149,171,147,117, 33,197, 44, 22,106,130, 10, 16,128,184, 65, 95, 8, 46,152, 16, 28, 86,236, 19,186, 74,169, 68,192, 74,188,
-113,126,204, 43,183, 57, 34, 67, 8, 49, 33,178,234, 65, 88, 42,231, 83,233,165,185,124,190,216,208, 20,173,141,213, 66,193,102,
- 38,167, 2,145,230, 63,254,195, 63,254,192,253,125,255,246, 87, 62,179,177,167, 53,157,204,237,184,227, 30, 69,213,127,248,228,
- 83,107, 87, 53,166,211, 57,102,154, 47,190,112, 12, 66, 64, 28,210,134,168,162,230, 46,134, 47, 68,101,120,192, 43, 5,142,168,
-128,161, 14,165,207, 37, 11,112,225, 84,103, 8, 97, 95,184, 65,245,213, 94, 63,247, 86, 38,149,141,214, 71, 66, 53, 97,136,165,
-139,231,174, 25, 86,255,169,183, 79, 68, 67,190,163,135,206, 60,114,199,182, 96, 77,120,237,206, 91,143,188,248,236, 11,111,157,
-189,243,150,237, 27,110,186,155, 90,197,231,158,250, 62, 87, 85,144, 47, 34, 55, 5,114, 86,241,103, 7, 93,228,208, 25, 48, 0,
-225,200, 35,150, 17, 72, 46, 56,103,140,113,230,140,101,220, 63, 5,103, 8, 19,193,108, 0,196,224,229, 27,221,155,247,197,186,
-118, 70,226,235,239,253,232,199, 44,202, 15,157, 31,174, 13,251,226,241,186,124, 54,191,251,142,253, 70,102,250,214,135, 30,217,
-182,186,125,223, 29,123, 16,145, 57,192,225,186,134, 88,208, 39, 0,192,119,222,186,187,171, 53, 6, 42, 50, 57, 53, 50, 0, 66,
- 64, 55,220, 65, 55, 71, 1, 23, 1,101,148, 81, 86,193, 66,133, 51, 71,147, 21, 89,247,215, 42,186,239,218,249,163,233,100,118,
-102, 46, 19,208,108, 97,231, 56,179,100,100,173, 90,221,126,229, 92,255,253, 15,237,227, 14,194,108,100,205,114,254,141,151, 15,
- 50, 32,102,198, 38, 78, 30,122, 11, 33,188,251,246,219,162, 97,252,214,187, 87,136,243, 46, 14,106, 14, 4, 7,130,187,227, 11,
-225,152, 78,197,118, 57,115,112,124,198, 28,205, 56, 60, 74,164,106,154,226,241,171,158,176, 30,168, 45,229,147,215,174,140, 78,
- 76, 46,245, 79,204,124,224,195, 15,120, 2, 53,179, 99, 87, 82,137,236,183,191,255,230,167,126,249,158,147,103,110, 32, 40,152,
- 69, 49,193, 63,248,193,155,109, 93,237,241,168,190,102,235,118,179,152, 26,188,112,229,185,167, 95, 8,215,132, 33, 0, 4, 8,
-206, 57, 5,110,152,229,208, 73, 28, 78, 43,225,136, 86,249, 39,198, 24,163,148,187,116, 21,142, 16,146,100, 57, 84,223,169, 5,
-234, 50, 11, 99,197,236, 66, 49,155,154, 24,157,219,255,208,190,135,117, 45,151,152,125,243,133, 3,144,200,138,130, 30,184,239,
-206,214,222,245,181,141, 45,223,121,242, 5, 11,144, 71,122,214,254,231,191,190,117,102,244,234,245,203, 23,103, 71,175,252,224,
-153, 35,169,146,177,177,187,169,174, 37, 46,198,150,136,243, 24, 42, 90, 17,149,105, 37,119,134, 28,142,153,187, 86, 67, 41, 99,
-156, 49,151,158, 10, 32,144, 21,149, 72, 50,198,228,217, 39,190, 23, 14,251,203,101,179, 88, 54, 10,249,226,211, 79, 31,186,239,
-222,157, 88,194,123,110,221,162,121,253,151, 79,159,207, 38,231, 31,255,218, 15,238,185,187, 79, 34,192, 40,228, 20, 79,248,240,
- 75,111, 44, 38,178,233,124,105,169, 80,254,252, 31, 60,246,246,219,231,236,204, 18,132,144,112,206, 4,179,133,155, 49,151, 7,
- 11,238,172,165, 50,252, 97,180, 98,200,156, 11, 32, 16, 66, 88,194, 16,161,228,236,181, 66,246,108, 34,149,167, 54,227, 66,180,
-181,213,207, 76,204,244,118,212, 95, 56,125,229,150,253,187,231,167,231, 58, 87,135, 54,238,238,251,243, 63,249,146, 26, 8,122,
- 61, 18, 4, 96,236,218,245,115, 79, 60,147, 46,150,139, 5,131,113,254,240,173,155,159,249,222, 27, 80, 81, 22, 23, 82, 0,200,
- 68,112,206,168, 13, 86, 86,157, 85,188,154, 59, 77, 15,119, 70, 28,206, 23, 2, 0, 73, 34,154,174,107,190, 32,145,117,106, 21,
-175, 30,191, 20, 8, 7,253, 94,181,171,167,153, 49, 81,204, 23, 91, 59,155, 34, 13,173, 51, 99,215, 5,231, 99,215,134, 10,249,
- 2,241,133,214,117, 68,253, 53,209,244,226,172,105,148,239,121,228, 22,163, 84,182, 76,251,200,193, 51, 99,227,243, 37,129, 64,
- 38,183,111,239,134,167, 14, 15, 58, 2, 49, 8, 1, 0,156,115,119,134,236,146,142, 29,235,117,120, 74,204, 85,151, 36, 75,190,
-128,223, 27,110, 84, 60, 97, 70, 77, 76,148,182,206,134, 84, 34,221,222,217, 52, 59,157, 80, 20,210,220, 18, 85, 85,173,148, 75,
-215, 53,117, 68, 98,166,162,249,128,224,195,195,115,209,186, 64,118,105,238,141, 87,222,253,133, 15,223,169,121,131,199, 14,158,
- 81, 52,217, 22,216,163,162,235,211, 11,141,126,223,197,243,215, 33, 0,174, 13, 45, 3,231, 98,121,232,225,142, 81,133,112, 52,
- 37, 4, 64, 8,234,186,230, 13, 53,122, 66, 13, 0,145,249,107, 87, 50,137,165, 72,172, 97,231, 94,169,103,251,254,204,252,232,
-223,252,217, 87, 62,177,170, 77,210,188, 64,136,114, 33, 53, 55, 53, 63,116,125,178,148, 47,158,191, 49, 31, 10,104,140,178,185,
-100,246,185,239,191,213,213,221,196, 40,157,154,201,231,139, 86,215,186,214,201,133,100, 32,160,103,115, 37, 0, 0,169,204,194,
-170,179,178, 21, 23, 95, 30, 42, 82, 18,154, 0, 0, 31,157, 73, 68, 65, 84, 25, 58, 79, 82,209,212, 64, 93,139, 30,140, 2, 0,
-202,153,249,154,250,246, 75,167, 47, 92, 58, 59,248, 75,159,254,204,244,196,248,229, 19, 71, 55,172,109, 27,184,120,253,222,143,
-236,153,184,114,124, 97,102,225,165, 67, 23, 11,229,178, 42, 41, 65, 96,215, 55, 70, 34,117, 53,173,205,209,134,218,192,165,161,
-201,197, 68,230,147, 31,191,183,108, 48, 8, 25, 21, 64,211,149, 66,209, 0,128, 19,193, 5, 99,110, 39,202,185,171,164, 74,126,
-128, 66, 56,178, 2,132,145,207,239,107,234,221, 33, 0, 68,146,106, 27, 69,213, 27, 22,128,111,218,185,245,149,167, 95, 61,248,
-204,119, 46,156,191,174,122,189,150, 81, 42,229, 74,119,126, 32,243,210,179, 7,155,155,234, 90, 67, 26,245,202,107, 54,118, 9,
- 46,106,234,194,179,211, 11,217, 76,174,187,163, 65,130,232, 19, 31,217,191,241,230, 7, 40,181,178, 75, 51,159,223,121,203,129,
-231,158,247,120,180, 43,151,166,201,114, 66,250,177, 33, 80,133, 38, 10, 48, 70,225, 72, 36,214,185,213,178,172,204,220, 53, 34,
-169,158, 64,141, 37,136,162,121,106, 26,187,174,140,206,150, 10,229, 85,171, 90, 60, 30,237,133,183,206,116,196,194,215,206,159,
-152, 94,204, 52,214, 71,114,217, 98,115, 75,172,107,245,170, 80,180,101,122,228,146,170, 42, 5,142,230,102,150, 90,155, 34,141,
-173,109, 88, 86,137,162,169,158,128,224,252,238, 71,127,241,210,241, 3,226,226,180,171,161,101,126,194,143,141,167, 8,193,129,
-144,191,166,177,107,110,248,140, 36,203,229,124, 54,151,201, 7,195,193, 66,190, 88,219,208, 52,116,169,191,104,211, 76,201, 88,
-154, 79,249,123,226,183,110, 95,189,102, 99,207,252,236,162,101, 51, 33,128,174,171,183,220,115,107,180, 99, 99, 41,151, 24, 25,
- 26,187,113,125, 74,193,184, 41, 30,237, 94,219,237, 11,214,228, 19,147, 68,210, 36, 69, 53, 74,133,254,115,103, 46, 93,157, 6,
- 64, 16,183,173, 92, 65,153, 88,105, 64, 8, 35, 95,192, 23,105,234,129, 16,219, 86,217, 50,202,146, 34,123, 3,190,154,166,238,
-167,190,252, 13, 85,186,156, 74, 46,121, 8,217,189,115,205, 75, 7,206, 0, 8,101,153, 28,122,237,132,128, 16, 67, 80, 40, 20,
-215,110,234, 82,116,111, 98,226,234,227, 95,253,150, 95, 83,252, 65, 47, 99,124,215,237,183, 47, 76,141,142, 12, 13,204,140,207,
- 12, 13, 79, 47,149, 40, 2, 0, 99,156,203,229, 32,132,248,230, 93,155,154, 99, 33,224, 62,159,106, 14,117,204, 88, 40,178,220,
-208,190,218, 87,219,130, 37, 69,245,248,161, 96,177,246,205, 64,240, 80,172,131,152,179, 19,147,139,138,230,179,140,210,220, 76,
- 50,105,152,119,236,219,212,218,221,122,240,248,101, 93,198, 91, 54,116,182,180, 53,168,186,146, 77, 44,253,245,151,158, 44, 88,
-118, 32, 20,156,156, 89,188,117,223,230,115,239,158,125,253,205,211,103,206, 12,142, 45, 21, 27,253,106,223,142,222,104,200, 3,
- 0, 28,159, 93,178, 4, 33,227,179, 41,177, 44,201,123,166,101, 16, 64, 85, 83,250,167,138,170,111, 72, 8, 97, 91,102, 49,155,
- 4,224, 66, 62,157,168,111, 25,124,249,133,195, 22, 99,170,174, 16,132, 77,211, 18, 12, 29,120,119,200,239,213,211, 38, 15, 10,
-156, 22, 74,185,168,100, 39,102, 49,198,146,170,251, 3, 30,131,131,214,222,206,193,233,212,149,107,179,182, 37, 56,150,144, 97,
- 46, 24,250,153,103, 79, 88, 0, 98,206, 8, 66, 0, 8,184,119,239,222,116, 58,157,201,100,126,222,198, 66,255,123, 47, 33, 68,
- 48, 24, 12,133, 66, 4, 0,144,205,102,167,166,166,254,143, 82,126,156,228, 25, 10,133,208,255, 81,196,255,199,230,155,255, 63,
- 82, 80, 93,109,205,187,111,254,224, 31,254,244, 55,110,223,178, 86,150,222,179,175,135, 49,110,140,213,198,106, 67, 63,255, 10,
- 34,255,154, 73,127,223,142,230,250,240, 11,175, 30, 41, 20, 75,255,212, 61,186,166,254,213,231,127,195, 76, 77,154,166,213,213,
- 24,237,136, 69,230, 82,217, 55,206, 95,121,249,233,111,136,226, 92, 75,207,166,129, 51,167, 38, 71, 70,198, 22,179,183,221,251,
- 96,173,102,124,233,239,158,120,230,205, 19, 16,194,251,238,190,189,161,214,255,210,235,111,207,254,107,233,207, 63,227, 72,180,
-119,239,222,241,241,113,103,224,250,207, 92,191,245,201, 15,239,185,105,199,233,243,131,143, 60,120,151, 79, 87, 11,217, 36, 18,
- 6,103,226,237, 99,231, 10, 20,109,238,109,122,233,229,131,223,127,229,216,186,117,171,255,246,139,159, 67,102,174,152, 75,201,
- 18, 76, 37, 50,201,165,204,236,212, 34, 0,226,206, 71,238,169,107,234,152,189,113,121,122,124, 34,159, 47, 3, 1,102,103,151,
- 26,227,177, 29,183,220,134, 36,175,170,233, 4, 9,219, 44, 89, 70,145,217, 86,185,152,158, 25,159,156,154,152,251,210, 19, 47,
-141,205, 44,252,239,218,120,107,109,109,253, 9, 10,234,108,109,252,222,227,127,106, 83, 42,233,145,161,193,254,191,248,202,147,
- 95,248,147,255, 16,192,121,137, 32, 69,247, 10, 78,109,179, 28,140,182, 77,143, 92, 29, 27,158, 72, 44,164,186, 87,181,214,214,
-215, 44,206, 37, 33,130,109,221, 93,249, 92, 46,151,206,248,131,126,192,237, 84, 50,107, 25,182,109,209, 92,174,216, 24,143,122,
-125,122, 38,153, 77, 37,179,165,146, 97, 25,214,194, 66, 42,109,129,123,238,218, 29, 12,233, 30,127,168,190,165, 75, 86,188, 0,
- 66,219, 44,149,114, 75,133,204,124, 54,149,202,101, 10,139,243,169,119, 47, 93, 31, 24,158,204,228, 11,249, 98, 57,145,206,253,
-175, 84,208, 79,112,177,143,124,224, 14,211,164,217,116,186,115, 85,116,251,206,155,158,218,176,193,235, 15, 83,219, 22, 0, 50,
- 46, 84, 85,153,185,113,233,252,137,119, 36, 9,107,186, 26,174, 13, 66,130, 67,117,141,181,205,221,178,234,245, 4, 99, 66,240,
-217,209,126, 97,166, 11, 57, 91,146, 36, 85, 85,253, 65, 31,165,108,122,124,182, 92, 44, 51,206, 33,130, 18, 33, 66, 22, 1,191,
-215, 74,100, 15,188,254,206, 93,119,108, 11, 71,106, 50, 11,227, 8, 19, 73,214, 1, 0,148, 89, 68, 82,125, 1,191, 68, 36, 85,
- 87,106,163,161,219,251, 54,152,101,211,178, 41, 0, 80, 34, 24, 66, 56,181,144,252,254, 43,239, 12, 79,204,254, 47,138, 65, 91,
- 55,111,248,244,167, 30, 91,219,213,100,155,198,226,204,180,223,175, 28, 61,240, 86, 32,210,180,105,215,246,201,161,115,177,120,
-167,224, 84,146,100, 78,129,199,235, 13,135,125,190, 96, 48, 26,239,205,167, 19, 51,227,195, 38, 69,145,166,230, 92, 54, 91, 42,
-100, 60,222, 64,172,185,171,144,154, 1, 96, 86,213, 52,127, 77,212, 19,106, 48,242,169, 98,161, 56, 59,181,168,106,178,207,239,
-161, 58, 99,148,123,124,122, 32,236, 53,202,214,228,196, 28,150, 73, 93, 52,162,122, 60, 66, 48, 8,145,195, 45,197, 88, 86, 52,
- 14, 17,148,101, 89,211, 85,219,166,150,233, 16, 24, 25,103, 60, 30,139,252,254,191,121, 80, 8, 65, 41, 91, 72,102,142,157,187,
-122,248,204,192,207, 62, 6,237,217,179, 7, 8,254,233, 95,190,191,214, 7, 13, 10,117, 77,241,248, 67,134, 37,184,145,206,101,
- 11,209,198, 6,155, 75, 11,147,215, 61,186,236,241,135,194,209,166,217,177,161,171,253,195,227,195, 51, 22,101,161,144,183, 54,
- 26, 38,132,112,193,169,101, 71,154, 90, 59, 86,245, 4,130, 65, 89,243,113,206,178,137,217,124,174,168,233,158, 96, 77,216, 46,
-231,146,115,227,185,108,193, 52, 76, 46,132,179, 14,232,226,239, 0, 32,140, 36, 66, 20, 77, 81, 84,149,200, 50,198, 82,133,170,
- 77, 25,163,204, 89,157,178, 25,165,140, 81,106, 87,127, 70,157,229, 8, 70, 41,231,140,219,148, 9,198, 77,203, 58,124,122,224,
-232,185,193,108,161,244,179,137, 65,125,125,125, 15,221,123,235,246, 85,245,170,238, 67,208,146, 21, 15,181, 12,201, 23, 61,246,
-250,107,126, 15,150, 36,226,245,123,210,169,130, 36,145,218, 88, 56, 16, 10, 90,166,145, 92, 74,141, 12, 77,140,141,206,228, 11,
-101, 8,160,215,163, 6, 2, 94,175, 95,247,250,117,127,208, 27,169, 13,251,131, 1,179,108,164, 18,233, 82,169, 44,203,146,238,
-213, 36, 89,198, 24,137,202,112,211, 25,216, 56,147,105,103,185,162,186,132,177, 98, 93,212, 65, 60, 65,101,231, 77,112,230,252,
- 18,204,193, 55, 43, 95, 56, 8, 26,165,140, 49, 78, 41,181,109, 74, 41, 99, 22, 59, 61,112,227,185, 67,167,172,234, 98,251,191,
- 74, 65, 56, 30,111, 9,171, 60,172,195,114, 62,109,150, 75,129,186,120,164,185, 7, 2, 62, 49, 50, 82, 40,150, 21, 25, 75, 50,
-209,116, 5, 0,228,241,168,254, 72,131, 39, 24,139,181,116, 55, 52,215, 75,200, 46, 23,203,166, 97, 83,202, 41,165,156, 9, 89,
-150, 84, 77,149, 21, 9, 65,128, 32, 32, 50, 9,134, 2,117, 13,245,254,112, 68,211, 53, 34, 75,206,176,150, 56, 35,100,140, 49,
-118,121,129, 16,192, 42,212, 2,248, 50, 0,196, 29,216, 94, 44,207, 11, 43,179, 85,103,220, 11, 17,114, 23, 58, 16, 70, 24, 19,
-130, 17,198,152, 16, 76, 48,198, 4, 53, 68,195,183,109, 91,187,107, 67, 15, 65,104,116,102,241, 95,170,160, 64, 32, 16, 12, 6,
- 9, 0, 66,241,248, 26, 90,219,151, 22,147,193,134, 78, 89,247,141, 14,156,206,101,243, 62, 77, 72, 80,246,132,106,219,122,123,
-252, 53, 13,115, 99, 87,139,153,249,114, 62,169,232,118, 54, 49, 49, 61, 58,185, 56,151, 96,140,203, 50,225,156, 35,140, 17, 65,
- 0, 66, 69, 85,188, 62,175,238,243, 99, 66,124, 88, 34,178, 6, 33, 22,130,113, 78,145,109, 49, 98, 49,219,230,140, 50, 78, 43,
-163, 29,151, 86, 80,161,111, 3, 14,185, 75, 25, 89,193,127,173,176, 17, 42, 52, 22,192, 57, 68,238,192, 76, 8,136, 57,230,136,
- 49,206, 25, 34, 18,102,148, 51,137, 81, 74, 36,155, 82,153, 73, 10,217,191,119,243,157, 59, 55,140, 76,205, 63,127,228,204, 66,
- 42,251, 47, 14,210,170, 66, 4,132,118, 57,251,206,107, 47,123,189,218,182,190,237,185,164,153, 47,218, 18, 18,220,204, 21, 51,
-243,186, 47, 72, 25, 40,151, 76,193,147,182, 61,159, 76,100, 50,233,188,101, 81, 69,145, 92, 17, 33, 68, 16, 90,134,149, 88, 76,
- 89,166,237, 11,228,188, 62, 93,213, 53, 89,213, 49, 81, 28,222,133,227, 47, 8, 33, 33, 16, 6, 68, 64,103, 29,196,109,157,225,
-138,161, 87,117,171, 8, 32,232, 78, 50, 43,187, 9,208, 57, 58, 6, 65, 36, 0,132, 72, 64, 1,185, 64, 16,114,132, 16,228, 28,
- 11,206, 57,198,156,115, 76, 24,103, 18,161,140, 73, 22,145,101,102, 89,118, 79, 71,227,103,155,163,166, 97,125,247,245, 99,215,
- 38,231,126, 90,158, 96, 60,222,210, 28, 13,104,220, 72, 37, 50, 16,112,193,121,177,144,109, 95,189,182,103,253,166, 64, 64,243,
-120, 84,111,160, 86, 64, 60, 63, 49,204,168,109,154,118, 46, 91, 52, 74, 38,231, 2, 99, 36,201,146,170,200,170,166,104,186,170,
-233,138,162,202,178, 44, 33,140, 28, 76,153,113,198,109,155, 83,147,217, 22,163,150,224,182,131,114, 3,103, 33,164,202, 5, 1,
-206,160,125,153,234,180, 76, 26,169,146, 34,224,251,251,236,149,108, 18,119, 67, 9, 57, 28, 41,136,156, 37, 42, 12, 9,193,132,
- 32, 66, 8, 33,152, 72, 68, 34,142, 19,162,245,157,241,189, 27,123,107,252,190,193,241,153,159,194,197, 32,200,166,178,105,159,
- 4, 49,138,212, 6, 66,145,154,166,142,222, 96,172, 93,112, 30,172,151,100,213, 35, 24,159, 25, 62, 71,205, 18,150, 8, 51, 41,
-193, 88,213,101, 73, 38,156,113,103,105,216,137, 15, 8, 33, 76,156, 16, 64, 48, 70, 66, 0, 70,185, 13,169, 16, 2, 99,230,240,
-150, 16,130,206, 64,169, 66,157,113, 60,200,177,194,229, 15, 94,229, 4,184,200,125, 5, 58, 91, 65,250, 89,113,171,203, 16, 66,
-128, 11, 0, 4,198, 64, 8, 33,144, 64, 2, 10, 1,132, 32, 66,114,143, 12,161,148, 83,219,214, 44,219, 40,155,229,146,185,113,
- 85,219,218,142,166,254,225,169,231,223, 57,203, 42,182,252,147, 92, 76, 0,205,163, 54,183, 55,214, 52,117, 25,165,178,166, 98,
- 79, 40,134, 37,217, 54, 74,212, 42, 67,136,152,101,248,130, 53,156, 25,150,105, 74,196,182,101, 66,169,236, 14, 59,170, 0,123,
-133, 20, 2, 43, 81,211,137,192, 96, 25, 79,230, 8, 1,206,221,109, 52, 80, 33, 91, 57, 62, 35, 92, 75,168, 80,232,224, 50, 67,
-107,153, 19, 85,209,148, 27,209,157, 31, 34, 8,185, 27,168, 28, 67,171, 42,247,125,248, 95, 69, 12,133, 81,106,233,106, 89, 55,
-139,249, 82, 54, 91, 92,213,214,208, 19,191,127,120,106,246, 71, 71,207,254,196, 45, 73, 28,143,199, 55,109,232, 13,250,188,201,
-233,177,228,194,108,122,105, 17, 67,203,227, 15, 99, 76,100, 89,171, 76, 14,109, 8, 5, 66,128, 56,107,152,132, 96,130, 36, 9,
- 19,137, 72, 50,145, 36, 34,201,146, 44, 73, 82,133,232, 36, 17,140, 37,151,240,230,166,240,138, 31, 84, 63, 54,114,191, 4, 2,
-190, 39, 71, 57,204,132,101, 23,116,121, 63, 21,206,152, 88, 86,220,123,140, 11,128, 42,112,189, 98, 3,176, 26,216,161,243,228,
-176,147, 63, 9, 34, 18,145,101, 73, 86, 36, 34, 17,211, 48, 85, 76,246,110,232,137,199, 34, 3,163,211, 63,158,197, 64,217,176,
-187,214,110, 65,152,207, 12, 15, 46, 76, 79,143, 94,189, 70,109,218,178,106, 43,145, 53, 12,161, 96,148, 40,186, 34, 24, 70,196,
- 38,101, 98,155,212,166,140, 73,206, 96,179, 50,182, 18,203,143,217,181, 18, 4,145,195,236,172,236, 48, 86, 89, 35,160,106, 48,
-239,245,155, 31,247, 44,238,108, 51, 58,123,169, 64,188, 79,119,142, 65, 85, 13,207, 37,192, 84,102,209,238,186,158,179,133, 8,
- 17,130, 16, 35, 4, 32,132,144, 16,162,168,138, 28, 9, 9, 46, 16, 38, 68, 82,230,167,103,109,202,214,216,180,111,231,122,226,
-209,230, 18,153,129,129,225, 35, 23,110, 0, 0,112,188,165, 37,164,136,236,212,141,209,193, 65, 8,121,123,111,215,234,173,123,
-107, 26,218, 5,103, 8, 98,231,163,137,202,230, 29, 88,222,170,117,169,104,216, 41,109,156,135,227, 80,228,136,243, 27, 57,229,
-137,115,146,133,195,194, 90,177,234,249,158,133,207,229,218,176, 66, 11,117,171, 34, 8,160,179,170,234, 18,235, 96,245,174,101,
-146,142, 88,233, 65,206, 25, 10,156,218,148,218,212, 61, 98,194,162,150, 69, 1, 0, 62,159,215, 23, 12, 34, 4, 41,165,129, 80,
- 40, 80, 19,131, 24, 22,115, 5, 89, 85, 33,132,103, 47,220, 88,154, 93,168,111,109, 89,191,190, 39, 26,246,251,100,121,253,134,
- 85, 55, 38, 22, 9, 16,162,185,163,115,215,182, 46, 74, 45,193,153, 81,202,205,142, 92,244,134,106, 53, 95, 4,170,144,115,202,
-169,201, 25, 5, 64, 32, 68, 48,150, 43, 53, 48,226,140, 49,196,222, 99,207, 43,246, 71,151, 67, 0, 66,208,177, 11, 33,170,133,
-178, 75,166,113,249,141, 16,112, 46, 32, 4, 85, 6, 45, 0,220, 73,234,206,193, 32, 80, 56,244,159, 10,139,205,173, 1, 92,157,
- 33, 8, 4,196, 43,108,208,169, 12,108,155,218, 22,133, 8, 50,198, 53, 93,109,106,111, 39,178,186, 48, 57, 86, 27,171,203,166,
- 11,153, 84,170, 88,200,215, 53,180, 54,237,218,134, 37, 57,151,152, 61,123,238,202,181,241,212,194,169,193,241,161,235, 23,175,
- 77, 82, 33, 2,129, 0,132,128, 0, 8,231, 38,198,250, 65,158,115, 65, 36,162,234,138,199,171, 51,106, 49,219, 20,254, 8, 34,
-178,203, 75,113,114, 51,132, 8, 97, 65,132, 96,142, 19, 97,103, 64,253,158, 21,189, 21,249,185, 82,222, 33, 0, 0, 70,206, 71,
- 20, 16,186, 36, 98,215,167, 92,150,146, 67, 10,224,192,173,170,129,179,167, 42, 56, 88,201,106, 91,102, 45, 85,184,126, 78, 85,
- 33, 4,196, 2, 11,137, 56,252, 76,136, 16,231,162,144,203, 39,151,178,195, 87,111,152,101, 35,181,148,226, 76,108,218,189, 35,
- 88, 27, 31,190, 49,123,234,208, 41, 14,229,181,221, 83,243,137,151, 47, 14,222, 88, 74, 21, 91, 98,225,250,250, 90,179, 96,154,
- 38,191,189,111,221,246,190,173,199, 47,207, 78,188,124,152, 0, 0, 24,227, 8, 99, 73, 70,138, 34,235, 94, 77,247,234,170,238,
- 33,146,194, 57, 3,212,170, 50,208,220,221, 90, 8, 33,196, 0, 9, 0, 32,130, 92,112, 6, 33,170,206,244,151,205, 99, 69, 79,
- 85, 77, 70,206, 0,219,157, 29, 87,180,195,223,203, 11, 88,166,216, 85, 41,135,239,173,128,156, 20,230,110,129, 59, 92, 78, 1,
- 1,134, 24, 99, 73, 86, 37,205,167,232,126, 73,241, 18, 89, 65, 8, 3, 1,247, 61,140, 32, 4,156,217, 83,195, 3,231,142,157,
-250,198,215,190,155, 43,149, 17,130, 33,175,246,210,155, 19, 5,195,238,142,199,238,191,117, 27, 68,112,116, 60,193,136,229,175,
-173, 93,187,101,189,226,139, 80, 58,225,166,121, 89,145,125,126,143, 44, 75,138, 42,171,154, 34,171,170, 36,169, 85,234, 0, 16,
- 78,127,233,228, 82,225,242,171, 32,130, 8,184, 76, 75,167,171, 4, 2, 32, 0, 57, 23, 8, 9, 33,208,123,204, 72, 0, 71, 19,
-112,133, 30,151,123,210, 74,150,174, 18, 76, 92, 10,137,224, 14,227, 12,172, 72,115,208, 89,155, 23,213, 83,204, 28, 90, 34,224,
-206,107, 51, 40, 56,183, 76,139,154,165,180, 97,149,139,197, 66,190,152, 47, 24,101,211, 52,172, 76, 58,215, 63, 48,220,179,161,
-247,209, 95,250,160, 36,107, 70, 49,147, 94,156, 29, 25,186, 54, 61,151, 25,188, 50, 54,151, 44,180, 54,213, 48, 74,189,154,116,
-173,255, 42, 4, 67,227,163, 11, 0, 66, 2,128, 8,132,252, 13,205, 49, 0, 32,198, 24, 75, 18, 34, 10, 38, 50,194,196,101, 32,
-187,203,225,188, 66,155, 20, 0, 32, 8,152, 0, 14, 17,207, 97,186, 67, 55,157, 32, 12, 93,190,251, 74, 59,130, 80, 8, 14,151,
- 79,109, 88,193, 29,118, 92, 76, 84, 99,145,251,110,160,186, 24, 95, 77, 67, 8, 97, 4, 17, 70,208,225,105, 19, 39, 71, 50, 70,
- 45,163, 76, 41,197,146,230, 11, 55, 41,158, 32,163,214,220,216,224,249,119, 47,100, 51,249, 96,200, 31,174, 9,104,186,106, 25,
-214,187,103,134,110,204, 36, 58,215,173,154, 26, 58,139, 8, 25,187, 49,181, 52,159,156,156,203,166, 50,185,157, 27, 59, 90,219,
-234, 71,198, 22,219, 91,163, 93,221,141,138,170, 14, 15, 77,200, 30, 63, 16, 75, 4, 0,160,168, 30,111,176,206,165, 30, 66,135,
- 87, 10,161, 19, 27, 43,188, 15,224, 54, 83, 43,216, 59, 16, 0,238,230,145, 21, 84, 88, 71, 95,192, 9, 37, 21, 62,152,168, 82,
-242, 93, 75,170,112, 48, 87,148, 62,130,243,101,250, 31, 20, 2, 56, 27, 61, 8, 98, 66, 84,221,171,249,106,100, 45, 0, 17,178,
-202,249, 66,122, 33,157, 88, 42, 21, 75,178, 44,115,206,199,134, 39,151, 22,210,245, 13,145,104,195, 12, 33,100,110,102,241,204,
-217,107,217,146,249,209, 95,186,163,125, 85, 47,181,204,201,209,177,147, 87, 70,211, 20,202,138, 76, 0,247, 6,195,146,162,237,
-104,238, 42,151,202, 23,207, 95,153, 27, 27,193, 4, 45, 45,100, 4,181,134,174, 78,140, 12, 79, 47,166,243, 68, 34, 80,211, 33,
- 4, 4, 0,128, 48, 33,178,234,146, 15,161, 27,252, 4,172, 36, 17, 46, 42,140,211,138, 51,188,143,228,233,208, 95,161, 0, 43,
-138, 97, 0,185,203,151, 94,225, 80, 78,197,135, 28, 70,124,165, 65, 21,208,173,251, 16,114,206, 86, 88,222,188, 64, 24, 19, 73,
-210, 60, 33, 61, 88,167,251, 34, 88, 82,132, 16, 16, 17,129, 20,131,233,103,142,191, 12, 1,199, 4, 21,114, 37,143, 79,175,137,
-134,163,141,245, 78, 21,116,247,189, 17,206, 97, 48, 82,147, 73, 38, 78, 31, 59,119,242,236,144, 33,233,160, 84,220,189,182,181,
-181, 49, 92,206,103,189,193,186, 64, 36, 30,196,164,182,177,147, 51, 10, 0,180,202,185,209,161,203, 4, 90,249, 92, 49,145, 40,
-141, 93, 31, 31,158, 77,185,221,188, 0, 46,137,126,121,103,188, 74, 61,118, 1,153, 21,167, 48, 56, 22,241,190,232, 9,151, 99,
-196,114,253,230,240,132,223,207,154,117, 91, 13, 88,161,173,175,248, 91, 56, 37,129,163,114,228, 36, 36, 34, 19, 89, 33, 68,230,
-212,178, 74,217, 82,110, 49,155,152, 95,154, 95,154, 24,157,201,102,178,121,131,249, 52, 57, 18,241,181,117, 53,119,175, 91,167,
-249, 35,170, 30,108,219,168, 49,219,162, 86,113,232,226,185,147, 71,223,189,249,182,155,238,251,240, 99,239,188,117,144,217,118,
- 56, 32,203,138,196,133, 72,205, 77,204, 79, 12,155,101,131, 82,139, 81,190,184,144,130,170,190,251,230, 61, 8, 17, 33,120, 15,
-224,123,238,184,245,165, 55,142,191,240,198, 59,164,242,161,160, 88,177,252, 1,132,224,192,165,146,187,170, 1,130,243,101,143,
- 19,203,169, 87,192, 21,150, 36, 86,168, 9,252, 24,167,120, 25,246, 17, 66,172, 0,201, 42,218,118,214, 64, 0, 0,208,105,110,
-157,246,156, 81,211, 44,102,203,116, 49,151,154, 79, 37,211,153, 84,206, 40,153,225, 72,112,243,174,141,245,173,189,229, 98,110,
-224,220, 57,203,178,100,205,231, 9,198,108,163,100,102, 19, 23,207,156, 30,190, 60,176,247,246,190, 15,125,252,177, 35, 7, 15,
-255,249,151,190, 29,141, 53,116,212,168,118,125,141,207,239, 97, 76,132,235,162,129, 72,131, 55, 24, 86, 53,239,240,224,149,249,
-197,124, 44,168, 78, 95,235,183, 44,219, 1,115, 39, 39,231,207, 94,153,130, 16,146,202,158, 10,171,242,109,151, 17, 61,231,223,
-184,128, 64, 8, 32,160, 67,197,173, 44,141,172,168, 15,129,128,220,221,242, 1,110,227,202, 57,175,106,105, 69, 25,185,146,255,
- 12,222, 87,100, 58, 5, 19,132, 78,245,175,203,154, 95, 82, 60, 92,112,179,148,205,103,230,153,109,151,138, 69,106,217,178, 76,
-188, 62,221,235,213, 5,179, 38,175, 93, 72,167,114,115, 83,115,227, 35,179,147,163, 51, 91,118,111, 70, 68,155,158, 90,122,243,
-205, 35,235,123,154,158,249,238, 11,215,167,151, 8, 70,171, 91, 98,155, 54,118,204, 47,149,202, 37,179,163,183,179,190,165, 45,
- 57, 63,243,206,129,131, 71, 78, 13,104, 94,207,103, 63,243,171,119,127,240, 49,128, 48, 0,162,144, 89, 58,243,246,193,183,223,
- 62,103, 81, 90, 2,114,197,197, 92, 70,144,203, 10,130,162, 18, 45, 93,255,168, 44,219, 3, 1, 43, 11,255,213,228,235, 80,115,
- 87,172, 31,185,229, 1, 4,192,101,241, 86,188,178, 74, 86,175,114,181, 4,120, 79,233, 4,128,147, 21, 0, 18, 2, 97, 73,214,
-252,154, 55, 68,100,205,178,138,195,231,142,156,123,247,146,172, 72,107, 55,246,180, 53,183,170,158,160,164,120,176,172, 64, 68,
-102, 71, 7,223,120,243,204,200,212, 2, 69,112,233,165, 35, 83,139,233,156, 65,247,223,188, 57,232,149, 85, 85,246,168,114, 83,
- 75,204, 40,155, 61,155,119,220,217,189, 22, 33,124,241,216,155,135, 94, 62, 48, 56, 56, 60,181,148,107,169,175,185,243,206, 93,
-129, 80,141,131,196,216,102,105,232,252,201,179,103,174, 74, 8, 88, 0, 54, 70,124,153,169, 20,236,235,235,123,120,255, 77,119,
-223,182,173,162, 35, 0,156,170,103,153,185, 84,125,236, 0, 0,215,203,170, 21,176,155,155,150, 17,136,234,141,110,198,118,168,
-198, 85,146,234,202,215, 91,134, 19, 43,125, 9, 66, 16, 97, 44,201,170, 30,136,168,158, 16,103,150, 81,204,204, 79, 78, 96,140,
-162, 45, 61, 39, 14, 29,181,205,210,237, 15,220, 71,169,133, 32, 34,178,142,137, 44, 32,148, 36, 69,112,251,252,201,227,207, 60,
-119, 96, 98,102,169, 61, 22,238,219,182, 10, 97, 84, 42, 25,153,116, 30, 2,184,115,207, 70, 69, 83,138,249,162, 81, 54, 26,219,
-218, 67,209,214,254, 11, 23,203,101,171,187,183,221,227,243, 25, 37,195, 52,202,140,163,142, 53, 27, 48,198, 16, 2,179,156,191,
-118,225,212,203, 7,142,157, 25,154, 33,149,144,204, 42, 6, 84, 57,223,195,161,223, 47,135, 26, 0, 86, 84,182,213, 19, 72,220,
-164,199,171, 78, 7,224,242,238, 71,245,128,146, 42,173,142, 87, 48,151,106,247, 15,157, 22, 23, 34, 68, 48, 33,138, 46,235,126,
- 89,245, 17, 89, 21,156,165,230, 71, 7,206, 93, 30,190, 54, 21, 8,249,205, 99, 3,103,251,175,121,189,158,237,123,247, 4,107,
-106, 1, 4,130,179, 98,118,193, 44,166, 1, 0,136,200, 11, 51, 51,109,109,109,191,243,217,223,244,120,117,203, 52, 11,217, 12,
- 70, 48,157, 88,154, 26, 25, 81, 52,197, 1, 93,146,137,220, 27, 7,127, 56, 52,190,208, 84, 27,136,215,133,206,189,115, 76, 85,
-101,191,223, 99,153,182, 81, 54, 58,187,143,199, 26, 34,217,188, 73,100, 93,208, 98, 50,153,131, 21, 23,227,206,126,205,242, 25,
- 17, 43, 41,193, 0, 84, 15,235,169,162,165, 43,208, 13,119,230,224, 84,189,238,110, 91,149,255,238,208,135,171,223,138,149,251,
- 76, 16, 19,172,168,154,234, 9,200, 90,128,200,170,115, 6, 15, 81, 84,140, 37, 33,120, 62,187, 48, 55, 53,149, 88,204, 48,139,
-218,150, 97, 26,180, 39, 94,183,125,251, 26,110,165,146, 51,233, 84, 34,157, 74,102, 77,139,150,138,102, 34,153,185, 52, 52, 22,
-168,141,222,178,181,109,234,234,217,116, 58, 63, 62, 54,215,209,217,116,236,228,149,128,174,230, 45, 17, 10,122, 35,177, 26,211,
-162,186,207,251,216, 47,255, 98, 93, 67,188,152, 79,165, 23,166, 91, 87,109, 6,130,230, 83, 75,131, 23, 47,158,124,231,226,225,
- 35,151,230,178, 5, 10,128, 46, 17,141,224,174, 13,171, 71, 23,243,149,114,153, 83, 7,215, 89, 94, 98, 4,149,211, 67, 43,219,
-108,213,216,186,188,220, 34,192,138,188, 86,161,167,186,170, 97, 21,170,245,123,227,143,179, 80, 1, 17, 66, 80, 81, 84, 79,160,
- 86, 15, 68,101,221,143,136,148, 93,156,188,113,249,180,109,217,154,174, 10,206,115,217, 66,255,133,235,179,115,169,173,219,123,
-111,127,248, 17,198,196,245,129, 75,205,173,241,217,241,145,139,231,134,146,169, 92, 36, 18,174,143,133,218,187, 26,118,223,178,
-243,163,145,198,145,171,151,251,207,245,239,184,237, 94, 77,215, 7,207,158,248,238,179, 7, 91,234, 66,249, 92,222,171,105, 53,
-177,218,250,142, 94, 34,169,154, 55,108,151,210,135, 94,122,241,212,169,129,173,155,123,198,135, 71,231,166,151,250,135,167, 82,
-133,178, 44,201,183,236, 90,243,145,117, 29, 75, 11,169,215, 14, 95,124, 96,255,182,193,201,106, 29, 36, 56,163,180, 26, 57,151,
-145,153,229, 52,237,122, 30,172,134,152,170,129,129,170,102,196,242, 90, 73,133,178,187,226, 39, 21, 96,182,114, 58, 27,198, 24,
- 17, 73, 8, 81,204,204, 23,210, 51,138, 22,152, 25,189,254,220,211, 7, 77,147,182,198,163,138, 42,101, 50,133,197,100,206,163,
-202,197, 92,233,251,255,240,205,165, 84, 14, 66, 20,171, 13, 72, 24,199,162,193, 59,238,221, 35, 17, 98, 91, 22,179, 45,219,200,
- 21, 82,144, 89,102, 54,149, 57,241,250, 11, 87, 6,199, 47,142,204, 54, 68,130,155, 55,118,250, 2,222, 82,177, 60, 51, 57,227,
- 11,215, 5,194,181,253,199,223, 60,252,214,137,177,137,121,136,208, 43,111,158,193, 4, 39,139,229,160, 87,223,185,190, 99,251,
-142, 53,169,165,204,235,111,156,218,178,169,187,189,185,246, 31,190,119,208,226, 16, 42, 26,236,235,235,187,239,214, 77,119,238,
- 89, 43,248,143, 23, 45,142,127,173,192,179,150,157,208, 93, 91,123, 15,202,185,140,230, 45,195,122, 46,216, 86,129,217, 48,193,
- 4, 19, 34, 75,152,200, 68, 82, 16, 33,102, 33,187, 56,191,148, 76,230,242,185,130, 81, 50,174, 93,155,106,111,175,111,109,171,
-183, 45, 26,137, 69, 16,130,139,243, 73, 70, 41, 70,200, 27,208, 17, 66,178,162,122,189,218,220,204, 82,177,104,122,189,106, 56,
- 18,240, 7,131, 88, 82,210,137,196,169,227, 23, 46, 79,166,103,166,102, 30,188,255,182, 71, 31,123,108,116,240,226,141,254,243,
-171,215,117,167,147,153,161,254, 17, 76,112, 36, 26,178,109, 22, 8,121,235, 98,181, 99,163,179,175,189,126, 50, 94, 23,144, 21,
- 41,157, 45,230, 75, 70,216,167,115, 89,159, 77,228,226, 33,213,163, 75,211, 89,115,120,161,226, 98,140, 82,241,147, 32,235,149,
- 70,244, 62, 82,174, 88, 65,202,119,247,186,150, 79,147,226,206,225,197,213, 13, 79, 66,136,164, 72,178,162,201,154, 79, 82,117,
- 76,148,234, 49,152,146,226,181, 44,186, 52,159, 44, 23,203,201,116, 49, 91, 54, 60,126,127,172,181,125,116,240,106, 48,228,191,
- 54, 56,146,203,228,227,173, 13, 30,159,238,245,123, 60,190, 26,162,232,133, 76,162,165, 83, 7, 2,164,150,150, 44,211,202,166,
-211, 68,146, 49,198, 91,182,173, 46, 89, 3, 59,123, 99, 33,141,191,249,253,111, 70,235, 35, 53,145,240,161, 55, 78, 54, 52,214,
-116,244, 52,251, 3, 94, 89, 85,166, 39,230,179,201,156, 44, 75, 1,159, 18, 13,251,188,126, 79,109, 93,200,163,231,198,167, 22,
-134, 22,178, 29, 97, 22,247,147,128, 79, 21, 2,228,243,165,101, 23,227,148,185,112, 15,120, 63, 4,186,114,239,123,197, 82,104,
-245,183,219,115,187,220,234,234,238,166,147,209, 16, 68, 16,202,138,164,234, 30,213, 19, 80,244,128,164,250, 36, 69, 71, 88,162,
-212, 50, 75, 57,106,149, 44,163, 8, 17,232, 94,219,213, 88, 40,228, 50,249,135, 30,189, 75,245,120, 33,132,188,171,125,224,226,
-208,208,149,177,206,158,120, 40, 18,212,116, 29, 97, 66,153,109,101, 23, 85,221,231, 11, 55,153,229,130,191,182,137, 16,217,182,
-202,185,228, 98, 54,185, 52, 53, 62, 51,187,144,177,132, 84, 87,139, 53, 77, 41, 22, 74,243,179,137,107,195, 83, 75, 75,153,117,
- 27, 58, 20,221, 39,105,210,212, 92,118,113,114, 26,223,152,190, 49,155,150, 4, 51, 24, 68, 0, 88, 54, 37, 24, 5, 49,204,230,
-138, 18, 33,249, 66,185, 80,182,100,143, 23, 0, 70, 0,128,156, 11, 46, 24,103, 64, 0,238,194,155,213,195,188,196,123,177, 66,
- 33, 64, 21,148, 88,241,139,115, 87,185, 46,130, 47,220,221,121,140,144,170,169,186,207,175,249,194,146,234,151, 85, 47,150, 85,
- 70,173,114, 49,131, 48, 41,229, 18, 75, 51, 99, 55,174, 77, 88,166, 93, 23, 13,203,138,212,177,102,157,191,182, 25, 33,137, 83,
- 43,155,201, 12, 95,159, 18, 24, 5,195,254, 76, 42, 87,215,210, 43, 41,158, 66,122, 14, 19, 85, 8,118,227,210,177,153,153,228,
-200,216,226,249,225, 9, 1,184,166,233,156,211, 98,209,224,134,105,228,115, 13, 65, 18,107,136, 40,170,210,216, 28, 61, 63, 48,
-150,203, 22,198,134,167,114,233,252,212, 92,114,120,114, 65, 87,101, 93, 83, 31,189,123,251,217,179, 67,165, 98,185, 92,146,234,
-155,107, 77,195, 94, 72,231, 9, 33, 77, 13, 53, 92, 8,184,148, 73,219,116, 69, 37,205, 28,208,203, 1, 50,248, 74,244,116,197,
-185, 80,203,155,197,213,161,121, 53,181, 85,230,200,238,113, 8, 24, 99, 69,149,189,193, 26,127,164, 89,245,134,145, 36, 67,128,
-128,224,166, 81, 48,242, 73, 7,111,242, 71, 26, 49,193,229,178,253,214,203, 71,109,203,234,187,125, 55,145,228,203, 39,142,188,
-116,224,100, 50,155,175, 11,120,154,235, 2, 16,226,177, 27,211,249,124,209,162,112,235,205,119, 80,202, 78, 31, 62,122,117,112,
-162,182, 46,104, 51,208, 63, 60,217, 89, 27,148,100,204,152,104,109,105, 2, 0, 36, 19,185,198,230,218,150,182, 70,143, 79, 79,
- 45,165, 23,230,147,132, 96, 44,145,166,120, 52, 24,242,207,165,138, 17,159,103, 77,111,115,123,103, 83, 48, 82,187,239,174,186,
-112, 36, 20,170,107,162,182,157, 90,152,185, 54,120,245,226,185,107,165,146,225,243,123, 66, 65,111, 38, 89,117, 49,103,147,144,
-175, 4,222,197,123,202,195, 21, 45,234,123, 10,164, 21,119, 59,128, 5, 70, 72, 86,100,143, 63,224,175,105,212, 3,209,124, 62,
- 87, 46,151, 11,153, 33,136,176, 47,210,164,106,126, 65,237, 66,122,190,174,101,189, 0, 66,152,101, 44,105,241,142,174,214,206,
-177,193,193,177,235,195, 63,148, 32, 10, 4,189,183,108,235,204,231, 75,186,174,234, 94, 79, 42,149, 61,117,122, 48,160,201, 4,
-210,137,171,103, 18, 11,139, 23, 6,198,202,197,114, 71, 71, 3, 68,176, 51, 22,206,164, 11, 68,194, 29,157,141, 53,145,128,166,
-105, 91,118,109, 84,117,143, 81,202, 51, 74, 21, 85,174,141,134,205,115,215,188,138,196, 24, 27,186, 50, 86, 72,166,123, 59, 27,
-118,237,219,217,182,110, 55,145, 20, 7,244, 7, 64,216,102, 89, 86,180, 96,109,108,235,174, 93,133,108,242,226,153,129, 8,160,
- 37, 41, 61, 51,178, 80,181,160, 21,123, 70,239,211,200,202, 51,198,150,145,173, 21,237,130, 0, 8, 65, 68,176, 36, 75, 30,175,
-199, 95,211,168, 7, 99,165, 92, 50,179, 48,170,251,107,202,229,114, 49,179,100,148,141,196,236,152,166,235, 68,146, 10,185, 34,
-128, 67,145,166, 78, 68,136, 55, 88, 87,132,136, 82,154, 40,150, 25, 23,205, 33,159,224,124,232,202, 88, 33, 95,138,212,133,115,
-185, 66,201,176,118,239, 88, 29,142,132,124,126, 93, 34,128, 96,108,218, 44,236,243,112,206,203, 69,203,182,236,142,174,198,205,
- 59,214,181,173,218,168,249, 35, 16,203,182, 81, 88,156,188,186, 48,179, 56, 60, 52,145, 73,231,153, 0, 72,209, 59, 90,106, 18,
- 75,217, 82,217,188,243,238, 93,237,171,122,253,181,173,182, 81,178, 77,131,200, 42, 38, 50, 68, 72, 82,180, 64,109, 99, 64,112,
-206, 41, 53,141, 72,125,211,149,179,103,146, 20,131, 27,174,130, 0,175, 30,136,247,222,124,245,254,195,215, 68,165,109, 93,113,
-200, 9,194, 80,150,101,221,171,123,252, 97,213, 87,131, 37,181,144,156, 74,207, 79, 81,198, 10,233, 57, 8,160,224, 76,146,112,
- 46, 87,192,146,238, 9, 4, 7, 47,223, 72, 95,184, 17, 8, 92,144, 8,145, 36, 52,122, 99,242,252,229,145, 2,165, 62,175,183,
-189,179, 9, 1, 48, 57,185, 96, 88, 76, 81,229,206,104,211,236,244,210,204,228,252,210, 98,186, 80, 44, 3, 0, 71,167, 23,103,
- 19,217,218,158,184,105,216,217,116,190,171,183,101,253,230,213,245,109,171, 20,111, 8, 66,100, 21,147,163, 3,231,207,188,123,
-158,217, 44,153,202,199, 26, 34,109,237,245,111,190,121,174,177,181,190,189,167,211, 52,205, 98, 62, 47,107, 65,106,228,179, 75,
-147,249, 76,182, 88, 52, 76,195, 46, 27,118, 54, 95, 44, 83, 0, 24,103,150,109, 24, 70, 33,155,193,222, 26,172, 84,232, 47,238,
-130,238,178,243,172,200,235,239,241, 36, 80,237,194, 93, 24, 17,253,223,157,156, 59,115,211, 64, 16,199,239,228, 59, 89,167,135,
- 95,242,200, 82, 28,143,226,100,130, 33,192,164, 96, 24,168,252, 49,169,104,232,233,232,248, 16, 12, 5,140, 69,130,137,140, 35,
-219,138, 29,203, 47, 89,175,147,142, 2, 18,203, 25,104,104,119,103,103,171,221,226,255,219,255,114, 28,199, 17, 81,168,212, 53,
- 69,109,242,164, 12, 33,151,166, 49, 46, 18,169, 82,245, 87, 75,150, 49,158, 16, 69, 81,139, 98,185,186, 93, 33,158,200,149,134,
-113,232, 44, 22, 23, 87, 99,207,113,151, 16, 0, 9,177,211, 35, 35,244, 3, 73, 38,136,131,253,159,238,133,123, 43, 21,184,115,
-153,152, 39,173, 34, 17, 6,125,103, 60,154,173,131, 56,133,192, 91,249, 47, 31,155,237,182, 65, 19, 42,151,196,102, 75,139,162,
-192,182, 62,205,103,203,175,214,224,115,207,222, 70,137, 86,150,206, 59,230,217,179,163, 31,223, 71,180,165,189,126,245,196,155,
-175,182,126, 32, 41,178,123, 61,126,247,230,237,112, 50, 47,201,132,102, 44, 8,147,138, 88, 60,110, 27,130, 40, 96,150,133, 73,
-146, 80,202, 32,139, 83, 54,248,102,101,188,244, 71,114,253,189,150,255,102, 66,186, 95,197,187,161,203, 51,239, 2, 7,138, 2,
- 95, 81,235,114,245, 64, 40,105, 8, 97, 6, 0, 98, 34,226, 69,165,110, 2,198,194,205,156,102, 28,194, 56,165,201,204,177,181,
-214,105, 1,243, 5,204, 79, 39, 83,123, 56, 93,134, 49, 86,228, 5,194,235,205, 58,163, 20, 47, 54, 81,127, 68,163,152,240,232,
-164,213, 48,154,245,186,209, 44, 18,101,226,184,160,118, 80, 93, 77,116, 93,229,207,142,158,191,120,218,108,119,252,141,119,213,
-235, 9,130, 32, 43,114, 24, 70,151,150,109,125,177,245,178,168, 52,106, 25,132,163,217,210,243,195, 71, 29,243,208, 52,130,109,
- 48,189,241, 62,188,255,104, 13,221,136,102, 34, 42,168, 37,233,118,177,142, 98,122,172,171,186, 94,227, 49,114,174,111, 46,157,
-105, 2,113,146, 50, 22,248, 18,199, 40,205, 24,140, 1,224, 96,183,219,221, 39, 49,255,227, 29, 2,251, 74,245, 63,124, 85,112,
-119,123, 0,246,142, 17,114,255, 99,239,227, 44,159,124,136,137,246,250,176, 60,199,125, 64,177,247, 52,206, 59, 78,157,163,154,
- 44, 47, 5,239,254,198,220,213, 67, 8,127, 1,199,251, 38, 31,206, 72,110,197, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/snake_hook.png.c b/source/blender/editors/datafiles/snake_hook.png.c
deleted file mode 100644
index dd4037231e6..00000000000
--- a/source/blender/editors/datafiles/snake_hook.png.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/** \file blender/editors/datafiles/snake_hook.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <snake_hook_png> */
-
-int datatoc_snake_hook_png_size= 9710;
-char datatoc_snake_hook_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72,
- 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,
-252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,
-215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 19, 0, 34, 13, 86,254,139, 21, 0, 0, 32,
- 0, 73, 68, 65, 84,120,218,237,125,121,148, 94,215, 81,103, 85,221,251,222,183,244, 42,201,218,172,104,177,101, 91,138,109, 57,
-222, 29, 39, 70,100, 51, 38, 38, 9, 4,226, 16,114, 8, 57,129, 9, 14,204, 73, 96,128, 51,204,144, 48,115,102, 6,206, 0, 51,
-135,129, 48, 33, 76, 32, 48, 11,153, 0, 19,150,236,100,199, 24, 59,142, 29,219,177,108,217,178, 45,217, 86, 75,109,181,186,213,
-219,215,223,246,222,189, 85, 53,127,220,251,150,150, 37, 91, 94, 2, 6,242,157, 62,173,175,191,229,190,122,117,171,234,214,173,
-223,175,174,112,239,222,189,240,140,143, 51,249,144,217,190,125,251,225,195,135,239,248,208,127,222, 62,153, 92,177,115,203, 74,
-230,103,151, 86, 78, 61,210, 15, 93,123,113,248,243, 13,151,239,254,185, 55, 85, 99,223,124,253, 85, 0,128,123,247,238, 77, 86,
-230, 54,140,166, 31,191,245,190,211, 93,206, 2,192, 67,211,115,111,255,225,215, 94,117,254,142,109, 27,214,118,135,153,247,242,
- 91,159,189,237,129,199,143,172,250,208, 45,127,244,199,204, 46,239,119,178,222, 82,127,241,232,226,226,236,251,110,188,118,113,
-229,101,143,207, 46,252,222, 95,223, 14, 0, 36, 34, 72, 6,145,140,109,152,164,217,104, 79, 78,140,142,109, 90, 59,177,121,237,
-248,121,155,214,189,239, 13,215, 1, 0, 1,128,170,170,138,170, 32,168, 34, 33, 25, 2, 48,198,180,154,141,241,118,235, 45,215,
-238, 33, 0, 80,206,197,101,226,134, 62, 31,138, 27,120, 55,244, 44, 44, 34, 34,134,112,188,221,180, 0,224,134, 61,206,135,110,
-216,245,195,142,235, 47,230,206,103,206,231,206, 59,207,158,197, 16, 90, 0,200,251,203, 62, 31,184, 97, 39,239, 45, 12, 6,253,
-126,150, 15,157, 27,230,110,232,156,115,222,179,224, 25,205,221,153, 60, 76,248,231,163,239,125,219, 5,155,207,122,205, 37,231,
-255,237,131,143,157,250,131, 31,251,249, 31, 93, 55, 49, 6, 0,198,152,183, 95,119,233,158, 29,103,135,215,223,254,250,215, 87,
- 31,250,173,127,241, 3,136, 88,255, 90,163,217,172,255,137, 0,240,137, 95,124,215,241,165, 78,187,145,182,155,105,111,144,119,
-179,225,251, 62,242,151,171, 62,116,231, 71,127,119,237,217, 23, 12,123, 75,110,208, 25,118,102, 87,230, 15,159,232,244,102, 23,
- 59,189, 44,127,255, 31,127, 46, 10,254,175,223,243, 51,160, 12,160,160, 34,194, 8,154,128,107, 88,171,160, 87,159,191,245,192,
-241,229,110,191, 79,100, 12,168,170,176,170, 2, 34,162, 65, 68, 34,108, 36, 73, 43, 77,222,114,213, 46, 0,176,236,114,246,153,
-248,220,187,129,228, 3,206,251,158,197,139, 48, 11, 0,164,214,188,241,138,221,214,103, 61,246,185, 31,246,252,176,227, 6,203,
- 46,235,230,206,231,142,115,239, 29,139, 42, 52,210,196,186,254,178,247,153, 31,118,243,254,114,214, 95,236,103,249, 32,207, 7,
-121, 62,204, 93,238,188,243, 30,207,208,165,206,228, 97, 79,250,251, 91,127,242,241,193,252,225,249,153,199,190,120,223, 35, 31,
-252,212,223, 60,151,129,110,255,224,127,186,245,238,111,252,194,175,124,224,200,252, 98,187,221,110, 25,252,254,171, 94,122,214,
-248,104, 51, 77, 62,244,249,219, 79,247,253,175,125,228,127,188,250, 39,111,174, 6,106, 54, 26,119, 63,112,239, 45,251, 30,253,
-242, 3,135, 0, 0, 96,161,252,232, 69,231,108,251,129,171, 47,106, 55,146, 45,235, 38,207,217,180,110,114,164,221,233,103,119,
- 28, 56,244,177, 91,191,229, 60,135, 81,170,129, 46, 63,111,107, 98,205,133,219, 54,121,230, 47,238, 59, 88,191,230,254,199,167,
-246, 63,126,198,183,246,190,239,187,238,252, 93, 87, 94,113,185,188, 85,245, 87,145, 68,216,103,189,188, 55,215,237,245, 58,253,
- 97,167, 55,200,188, 71, 64, 64,232, 13,178, 95, 42, 76,108,213, 64, 34,242,240,167, 63, 75,100, 85,152,133, 85,156,120, 47, 62,
-119,105, 59,105,180, 27, 35,221,177,193,202,250, 97, 55,115,110,152,187,126,230, 44,209,111,188,243,141,131, 60, 95, 88,233,253,
-246,103,254,174,114,184,109,219,182,253,208,107,174, 7, 64, 5, 32, 4, 16, 81, 21, 80, 5, 21, 85, 5, 80, 80, 68, 80, 84, 54,
- 68,134,200, 26, 74,173, 77,140, 73, 19,123,245,249,219, 46,220,178,225,241,217,197, 65,238, 44, 0,168,136, 40, 3,123, 17, 47,
-236,132,157,112, 46,236,132,189,176, 87,201,133,115, 17, 96, 81,209, 48,184, 34,162, 69, 76,173,105, 55,211,239,187,124,215,209,
-249,101, 11, 0,156, 15, 84,152,217, 43,123,102, 39, 62, 23,159,249,124,200,110,232,243,158,207,122,222, 59,231,189,243,222,133,
- 88, 37,234, 89, 88, 85, 21, 8,177,217, 72, 38, 71, 91, 22, 0,242,193,138, 10, 11,123, 21,199, 46,103,159,139, 31,250,124,192,
-121,207,251,220, 57,159,123,206,189,207, 61,135,208,151,121,159,251, 16, 0, 61,179,168,130, 53,100, 1, 32,239, 45,170,178,120,
- 47,156,137,207, 56, 31,178, 27, 56,142,129,210,121,239,152,227, 40,222,231,142,179, 48, 92,136,167,222, 59,239, 69,244,133,139,
-147, 47,200, 99,219,182,109,244, 66,141,181,202,251,175,184,240,162, 63,122,255, 47,204, 79,237, 59, 62, 63,255,147,191,251,103,
-157,254,240,204, 7,170,194,245,129,191,250,171, 71,238,250,204,161,153,185,185,165,110,230,125, 98, 8, 0,127,237, 47,190,122,
-134,183, 22,151,146,245, 19,163, 87,109,162,191,190,123,255, 39,191,126,223,129, 35, 51, 79,206, 47,207,175,244, 60,243,107,246,
-156,127,247, 99, 71, 69,245,116, 67,188,237,186, 75, 31,152,154,153,152,152,136,127,127,225, 63,188,231, 63,252,200, 13,231,173,
-159,172,127,232, 85,151, 94,252,150,151, 95,252, 19,175,189,234,253, 55,189,238,169, 67,220,242, 59,191,126,214,228,120, 41, 81,
-212,209, 66,183,191,220, 27, 76,140,143,193,220, 82,249,209,191,249,214, 3,136,120,195,203,118,118, 6,217,187,175,191,250,156,
- 77,103,109, 89, 59,105,140,121,116,122,230,107,251, 31,251,238,247,254,226, 41,148,157,231, 62,177, 54,165,147,111, 65, 85,255,
-250, 91, 49, 60,217, 36,241,206,157,238, 30,169, 84,250,100,187,181,235, 37, 27,137, 78,107, 16, 79, 51, 74, 45,212,166,201,214,
- 13,107,214,140,183, 47,223,185, 93, 17, 54, 77,142, 89, 67,131,220,229,158, 69, 65,152,231,251,131,127,251, 63, 63,253,204,211,
-127,199,127,255, 85,219, 26, 23, 22, 36, 2, 85,246,121,222, 95, 26,118,231, 59,131, 97,167, 55,236, 14,135, 97, 1, 85,213, 15,
-127,254,246,135,167,103, 79, 49,253,223,115,197,158, 79,126,240, 67,227,155,207,111,140, 76, 38,205, 17, 74,154,104, 19, 34,131,
-198, 24,155,166, 36,205,212, 52, 19,107,136, 28, 75,238,249,146,237,155,175,221,189,253,246,135,167, 68,164, 28,104, 98, 98,194,
-124,246,195,191,111,155,109, 0, 97, 97, 16, 65, 68,141, 86, 19, 82, 48, 32,101, 66, 48,198, 36,134, 12, 81,120,247,138,115,207,
-222,185,101,211,125,143, 29, 45, 7, 34,219,104, 17, 25, 0, 34, 66, 36,131,132, 72, 4,136, 72,134, 76, 66,182, 73,105, 43, 73,
-108, 35,177,173, 70,210,110,164,163,173,230,104,171, 49,222,110,157, 61,222,126,215,107,174,172,102,141, 76, 2, 68,136,168, 81,
- 97,136,225, 7, 9,209, 32,145,161,240, 64, 66,180,134, 82,107, 26,137,109,166, 73, 35, 77, 38, 70,218,111,189,118, 79,109,250,
- 69, 65, 5, 20, 68, 69,133, 85, 88, 65, 64, 21, 64, 0, 84, 20, 65, 85, 21, 84, 65, 1, 0, 1, 1, 49, 14, 74, 35,173,198,171,
- 94,186, 3, 0, 44, 8,131,178, 8,131,176,134,129,148, 53,134,125, 81,102, 21, 39, 34, 34,162, 33,123,213, 98, 64, 68, 34, 74,
-173, 93, 51, 62, 50, 42,185,149,184,156,177,178, 19,239,148,125,248,173,226,196,231,194,185,178, 11,235, 7,179,138,196, 31,208,
- 40,156, 53,212,176,118,253,152,181,226,115, 13,233, 46, 59,101, 47, 46, 99,118,226, 51,118, 25,251, 76,124,198,222,177, 8,139,
-176, 74,120, 34, 33,169, 86, 5,208,112,143,137, 1, 43,236,132, 89,197, 43,123,246, 78, 56, 23,151,177,203,196, 13,197, 13,216,
- 13, 88,196,179,120, 22,102, 97, 81, 22,245, 34, 44, 26,135,140,153, 30, 88,206,135, 18, 37,202,197, 59,225,156,243,140,253,144,
-243,129,207,251,206,115,238,189,103,102, 22,207, 28,126,152,197, 11,123,225, 48, 20,168, 34,146,101,159, 9,179,132,183,124, 38,
- 62,103, 55,100, 23, 71,113,204, 65, 28,199,236,226,111,118,204,204,197,109, 74,140,122,150,243,129,132,213,145, 29,187,140,253,
-144,221, 48,108, 20,124, 28,136,115, 31,214, 56,118, 94,226,235,190, 28, 75, 69, 5,148,224, 69,181,174,109,221,186,149,224,197,
-244, 64,196, 23,151, 64,167,200,214,203,199, 67,159,254,156,235,204, 45, 61,249,208,114,103,190, 55,204, 7, 89,158,123,246, 18,
-108, 82,102, 22, 59,255,229, 47,191,246,247, 36,208,167,126,227, 87,206,106,240,253,183,254,233,145, 19, 75, 51,139,157, 19,203,
- 43, 75,221, 65, 63,203,152,213, 88,106, 37, 73,187,153,182,210,244,189, 55,190, 50, 77,236, 19,179,139,127,254,245,125,207, 71,
-130,157, 91,183, 93,189,251,156,143,127,233,150, 83, 11,244,225,159,254, 97,211, 61,114,207,193,185, 7,167,142,237,123, 98,250,
-200,236,194, 82,198,157,254,176, 88, 12,192, 90,179,231,156,237,107, 91, 73, 43,129, 86,154,182,211,228, 61, 55,188,188,221, 72,
- 31,122,242,196,231,191,249,224,153,203,241,139, 63,254, 19,187,214,192,135, 62,245,229,187, 31, 61,124,232,200,212,105, 53,180,
-121,205,232,209, 19,139, 83,179, 11,143, 31,159,159,239,244, 14, 47,116, 79, 94,178, 61,223,251,104,220, 63,111,219,180,241,162,
-179,215,244,134, 89, 98,204,186,118,227, 61, 55,188,252,172,241,209,117, 99, 35,125,214,143,126,233, 27,211,115,243, 44,170,170,
- 68,100,141,185,116,215,121,191,249,190,127,185, 56,115,232,171,119,221,245,205, 67,199,126,253, 15, 63,122, 6, 57,223, 5,231,
-118,251,217, 32,203, 89,181,145,216, 70, 98,158,254, 46,167,102,142, 79,205, 28, 15,207, 55,174, 25,223,177,126,205,104,106, 18,
- 99,172,161, 61, 91,214, 94,182,245, 44, 64, 16,209,254, 96, 56, 16, 60, 50, 55,119,221,123,126,134,189,123, 22, 54,180,118,180,
-233, 85,140,161,118,154,172, 31, 31,117,206, 51,216,251, 15, 63,121, 38, 83,112,124,177,115,124,177,243, 2, 27,245,161,153,121,
-131, 52,214,106,160,142,183, 26,233,134,201,177,157,155,135,187,183,172,255,171,187,246, 51,203, 88,171, 49, 49,218,222,182,110,
-242,165,219, 55,141, 52, 26,205, 52,201, 29,175, 12,179,153,165,149,253, 79, 76, 47,174,244, 86, 6,153,103,126, 33, 5,218, 48,
- 57,186,110,172,221, 72, 83, 17,246, 28, 87, 5, 34,122,247,235,191, 11, 17, 67,229, 68,133,153, 57,103,206,115, 55, 44,170, 67,
- 55, 92,178, 19, 0,168,168,173,120, 85, 17,126,114, 97,229,207,239,120,224,224,244,241,231, 40,208, 47,189,227,173, 55, 93,127,
-125,115,116, 29, 26,171, 18,150, 79, 14,137, 68, 92,127,133,133, 61,251, 92,125,238,243, 1,187, 33,231,189,220,229,206,251,204,
-115,238,217,249,176,219, 98,102,102,150,245,227,237,155,175,191,154, 16,189,104,183, 63,252,127,119, 62,116,224,240,209,103, 22,
- 72, 68,246,125,252, 99,182,209,182,105,139,140, 1, 68, 17, 86,246, 34, 68, 66, 42, 70,133, 17, 89,213, 42,123, 68,131,100, 4,
- 9,136,200, 38, 38, 73,140,203, 82, 55,108,122,231,153,189,136,243,236, 61, 59,150,220,185,204,179,243,156, 51,131, 74,171,145,
-188,253, 21, 23, 15,175,188,160, 59,204,191,250,224, 19, 15, 60,126,244,233, 52,212, 26, 91,171,136, 0,168, 34,161,252, 7, 0,
-132,164, 4,130,136,136,138, 40,194, 33,127, 70, 80,178, 73, 72,175, 0, 0,144,144, 12, 82, 70, 62, 51,194,134,136,173, 73, 89,
-210,196, 52, 67,134,224, 57,143,155, 84,182,134, 26,105,242,134,203, 47,120,237, 69, 59, 58,253,236,255,252,237,189,222,251, 83,
- 8, 68, 73,170, 10, 8, 32, 42,160,128,192,136, 70, 85,148,149, 0, 21, 81, 1,139, 92, 17, 17, 8,136,136, 12,168,130, 81, 80,
- 85, 82, 99, 1, 1,192,103,209,146, 16, 67, 42, 72,200,132,104,136,172, 53,222,179,245,156, 59,111,136, 26,214, 54,147,228, 61,
-223,115,205, 98,183,127,203,195, 71,143, 30,159, 91,181,139, 65, 34, 4, 0, 84, 4, 4,208,176, 11,130, 80, 99, 8,213, 82, 8,
-197, 12, 5, 85,136,137, 51,134,197, 25,138,203, 67, 97,245,229, 70, 4, 1, 16,129, 16,137,208, 32, 26,162,196, 80,106, 77, 98,
-141, 49,100,173,105, 36,118,162,221,124,245,238,173,223,119,217,174,114,247,100,161, 40,210, 70, 41, 84, 64, 5, 84, 69, 24, 68,
- 64, 89, 69, 64,130, 81,139,134,172, 57, 36,206, 42, 42, 12, 42,160,162, 26, 50, 83, 1,192, 80,142, 9, 63,113, 84,128,112, 31,
- 65,212,160,179, 80,159,177,198, 52, 18, 59, 49,210,250,222, 75,207, 63,222,233,207,102,106, 1, 64, 57, 94, 0,130, 62, 68, 85,
- 89, 85, 64, 68,132, 85, 5,152, 37,184,155,176,176, 7,241, 90, 20, 96,148, 93,116, 61,113, 18, 43, 78, 26,179,219, 66, 44,145,
-234,169,130,130, 42, 2, 16, 2, 33, 25, 67,137, 49,137, 53, 35,205,116,189, 72,107,188,105, 1, 64,216, 73, 44, 53, 5,129,164,
-216, 57, 72,244,127,101,101, 22,241,225, 55,176, 99,246, 18,165,113,194,153,114, 30, 50, 99, 81, 21, 9,201,247,201,185,188, 40,
-212,126, 52, 88, 45, 1, 16, 81, 98, 77,194,166,153, 38,185, 26, 11, 0,226,243,104, 42, 16,117,163,170,194, 28,182, 69,160, 34,
-226,133, 25,148, 37,200, 17,170, 92,222,171,228,226,115,102, 39,133, 4, 33,156,214,158,104,177, 57, 8,194, 5,161, 43,141, 41,
- 0, 34, 0, 34, 17, 25, 34, 3,100, 1,128,125, 46, 34,193,108, 75,173, 4, 37,133,173, 86, 57, 83, 69, 26,159,139,120,241,161,
-230,198,197, 92,170,136,120,102,174, 11, 39,225, 59,202, 44,204,241,251, 44,234, 89, 89,148,181,216, 37,168, 34,104,112,141,160,
-161, 76, 68,138, 29, 28,171,106, 16, 66,153, 85, 89, 37,236, 84,124,216, 44, 85,229, 63,169,116, 16,231, 85, 68, 68, 61, 51, 23,
-179, 22, 74,220, 18,159, 48,179,122,150,248, 1,102,102, 17,133,194,224, 0, 17, 80,193, 2, 0,103, 3, 41, 76, 48,250, 87,161,
- 30,101,175,226, 37,136, 34, 62,110, 3, 53,234, 35,236, 93, 10,245, 20,243, 18,182,110, 44,162,197,150,174, 80, 88,185,201, 11,
- 50,213, 53, 26,189, 0,192, 34,226,231,239,185,183, 40,155,134,127, 69, 65,161, 48, 71, 80,145,224,255,113, 3,172, 82,110,134,
-163,111, 71,243, 43,158, 23, 55, 39,170,160,209,210, 11,247, 13,175, 23,198, 4, 44,200, 66, 34,150,213, 48, 90,135,230, 69, 86,
-111, 12,123,179, 23,143, 48,123,247,238,165,147,240,161,127,240,199,139,110,163,248, 29,129,158,243, 86, 58,177,246, 87,222,251,
-222, 55,190,226,154,126,231, 68,127,233,248,160,123,162,159,101, 11, 43,131, 15,125,254,182,123, 14, 78,125,251, 4, 50, 19, 19,
- 19,203,203,203, 39,189,250,214, 27,110,248,196,127,253,205,141,105, 54, 55,181,111,118,102,106,126,105,126, 97,165,215,233, 13,
- 29,243, 37,219, 55,239,189,112,231,225, 19,203, 11, 43,189, 23, 92,154,237,219,183,159, 66, 67, 63,125,211, 91,110,126,243, 27,
-143,238,255,242,236,194,194,194, 74,127,101, 48,236,103,249, 48,247, 44, 2, 0, 68,152, 24,243,182, 87, 94, 50,219,233,126,228,
- 11,119,124,219,167, 44, 49,230,230, 55,125,239,204,163,119, 76,205, 46, 28, 91, 88,158, 89,234, 44,174,244, 58,253, 97,230, 60,
- 2, 52, 18,219,106,164,237, 70,218, 76,147,145, 70,250, 51,111,184,238, 79,110,219,247, 60,247,135, 63,250,250,235,255,244, 75,
- 95,115, 69,114,125,178, 64,183,252,214,127, 60, 49,117,223,212,236,194,161, 99,115,135,102,230,158,152,153,239,244, 7, 8,104,
- 19,147, 24,155, 90,147,218,193,104,179, 57,210, 76,251,141,198, 72, 51,253,145,235, 94,246,224,244,137, 47,222,243,208,115, 16,
-101,247, 57,231,252,252,155, 95,251,179,191,247, 49, 87, 75,245, 87, 9, 52,210, 76,243,238,220,204,252,210,244,252,226,193, 99,
-179,247, 63,254,100,206,114,116,177, 91,255,194,248, 72,251,202,243,118,232,112,200, 34,142,125,219, 37,187,207, 94,183,107,211,
-117, 31,249,202,157, 89,150,159,169,229, 18,125,238,191,253,250, 39, 63,247, 23, 63,245,219,127,116,210,102,119,149, 81,191,242,
-194,157,151,159,187,249,248, 98,231,240,236,226, 35, 71,143, 15,157, 59,120,124,177, 94,183, 7,128,204,185,199,143,207,129,105,
-141,183,155,160,194,170,222,115, 98,233, 85, 23,157,123,193,150, 77, 7,166,103,159,126, 55,189,125,243,230,143,254,242,191,249,
-238,243,206,250,131, 79,126,246,207,110,191,239, 36,160,232,100,163,254,254,107,246,244,178,188,151,229,253, 97, 54,200,157, 52,
-218,117,152,185,254, 56, 56, 61,125,112,122,250,181,151,237, 25, 17, 39,162,142,101,144,187, 53,163,173, 15,220,244,186,241, 86,
-243,214, 71,167, 63,125,251, 61,161,192, 29,244,209,110, 54,126,246, 71,110,186,241,234,203,239,184,243,171,127,241,153, 79,124,
-126,223, 99,139,203,157,103, 54,234, 77, 19, 35, 89,238,114,231, 69,213, 26,234,245,158, 97, 10,190,114,239,253,173, 70,250,202,
-221,231, 52, 45,230,222,246, 51, 55,223,233,141,183, 90,187, 55,142, 95,251,163, 55,142,181, 27,173, 52, 37,162,220,243,137,229,
-149, 35,199, 14,254,234, 71,238,184,111,122,241,241,233,153, 51,245, 50,239,189,103, 81, 5, 67,212, 74,211,230,240,153, 49,193,
- 65,150,127,249,190,135,173, 49,231,110, 90,187,245,172,181,232,179,185, 36, 53,179,100, 13, 25, 66, 85,200,189, 31,122, 93, 28,
-228, 79,204, 45,157, 88, 92,122,118,110,207,170, 10, 64,132,105, 98,198, 90,141,137,204,157,161,145,122,230, 71,166,231, 30,153,
-158, 43,203,187,173,102, 43,119, 57, 63,101,167,252,236,214, 50, 13,104,184, 53,173, 52,157, 24,105,181, 82,243, 28, 99,139,234,
- 96,208,127, 14,210,156, 44,144,136, 26,196,166,181, 35,173,198,154,209,246,230, 53, 19,151,236,252,251, 78,223,158, 18,169,173,
-105, 55,211, 73,225,132,104,164,217,152, 24,105, 13, 29, 63, 50,245,100,187,217, 24,109, 54,206, 26, 31,189,104,219,198,141,147,
- 99, 99, 35,109, 81,237, 13,242,229,254,224,192,209,227, 71,231, 22,186,131,108,101, 48,124,129, 5, 66,196,102,154, 36,198,164,
-214, 76,180,217, 51,111,223,176,246,146,115,182,136,104,171,145,142,181,155,137, 53, 6, 81, 84, 61, 75,238,125,168,177,189,234,
-194,115, 0,226,214,172, 55,204,239, 63, 58,247,191,190,252,117, 56, 61, 18,253, 44, 4, 26,109, 53, 38, 71, 90, 0, 88,236,153,
-128, 16,201,152, 0, 57, 66,224,104, 48,123,145,204,121, 68, 8, 4, 5,231,139,210, 17,226, 72, 51,185,122,231,217, 87,158,243,
-230,161,243,223,120,228,200, 39,110,187,247,185, 11,132,136, 27,214,174, 31, 93,187, 21,141, 41,118,186,177,206, 18, 42, 4, 34,
- 94,189, 99, 63,244,249,160,145,245,114,103, 51,231,135,222,231,206, 15,115,159, 59,207,204,193, 45, 16, 33,181,230,187, 46,220,
-241,138, 93, 91, 31, 57, 54,255,191,191,122, 87,255,140, 87,149, 40, 80,146,216, 91, 63,248,107,163,235,182,216,198, 8, 2, 48,
-123,149,176,211,101, 21, 47, 42, 97,207,170,198,163,177, 68, 41,219,148,178,190, 53,131,148,109,110,125, 51,225,204, 57,199, 28,
- 88, 86, 44,202,194, 34, 64, 4, 59, 55,174,125,255, 77,175,155,237,244,127,251,204,120, 78,166,217,110,255,254,207,253,212, 47,
-255,228, 79,141,172,221,146,182,199, 77,210, 0, 50,136, 20,240, 96,136, 64, 43, 96,168, 9,104, 40, 82, 5,133, 6, 93, 8, 33,
- 18,162,181,198, 32, 25, 34, 99, 40,212,219, 0, 32,108,112, 1,160,153,152, 43,119,190, 36,105, 52, 14, 31,159,127,250, 4,205,
-252,251,155,223,125,221, 21,215, 36,173, 49,147, 52,144, 72, 3, 73, 45,212,166, 32,226,161, 8, 16, 49,224, 80, 90, 84,137,111,
-197, 98,153, 4, 17, 12, 5, 70, 34,153,128, 63,151, 95, 80, 80, 0,131,184,126,188,125,241,142, 45,223,122,124, 90, 79, 99,242,
-219,183,111,183,148, 52,108,163,133, 72, 0, 34, 44, 0,170, 34,160,138, 68, 5,248, 14,136,138,164,168, 2,100, 80, 4,208, 18,
- 49,144, 85, 35, 4, 98, 84, 65,135, 0, 38, 34,228, 8, 65, 30,131,104, 12, 25, 79,185,243,200,168, 0, 45, 85, 85,189,249,250,
-171,255,242,155,143, 28, 59,113,234,101,219, 18, 89, 36, 75,136,160, 8, 8, 42,138,136,138, 4, 32,164, 36,168, 8, 40, 72,136,
-130,136,177,164, 73, 8, 66, 64, 6,201,160, 88,178,172,154,168, 58,107,168,162, 59, 36, 0, 17,185, 39, 68, 68,231, 1, 0,210,
- 88, 14,122,243,149,187, 14,158,232,126,241,155,247,159, 34, 82, 35, 17,133,161,137, 40,208, 8, 3, 41, 0, 81, 99, 41, 52, 76,
- 26,134, 43, 0, 18, 34, 1, 25, 66,131,100,200, 24, 68, 75,198, 26, 99, 16,203,202, 33, 89, 34,107, 76, 98, 77, 98, 41,181,182,
- 97, 77, 98, 77,106, 76,106,109,187,145,180, 27,233,206,117, 35, 63,112,221,229,167, 18, 40, 8,129, 20, 46, 73,136, 74,168, 24,
- 3, 27, 22,107, 92, 81,120,133,162,222, 74, 97,114, 0, 9,136, 32,148, 89,139, 66, 44, 81,168,136, 97,188, 87, 66,107,109,106,
-141, 53,148, 88,178,134, 66,110,190,190,153,252,224, 43, 47,127,234, 90, 22,198,213,192,148, 0, 0, 84,197,147, 88, 70,209,168,
- 79, 70,108,131,187, 81,128,238,177, 34, 88, 20,223, 69, 42,249, 22, 20,171,213,166,224, 93, 24,162, 70, 98,198, 82,124,221,158,
-243, 87, 11, 20,111,157, 10, 15, 42, 84, 82, 22,166,195,243,224, 42,197, 31,171,168, 49, 88,200, 23,191, 88, 13, 83,148,178,227,
- 7, 40,152, 8, 6,150, 9,146,161,196,152,181,163,205,171,206,219,250,148,213, 94, 11, 54, 94,193,245, 40, 24, 46, 2, 32,160,
-133,136,225, 42,165,184,160, 8,101,125, 91,244,164,145, 78, 82, 39,128, 22,165,118, 34, 52,132,150,200, 32, 37,214,108, 24,107,
-191,100,221,100, 33,144, 2,196, 10,117,212,135,150, 4,149, 80, 97, 6, 8,117, 52,141, 68,197,200, 85, 44, 42,105, 82,137, 32,
-149,130, 74, 24, 64,139,202,249,106,206, 81, 40,243,163, 49,100,141,105, 54,236,249, 27,215,148, 75, 71, 89,170, 83, 0, 17, 21,
- 16, 45,107,214,160, 2, 18,175, 29,158, 7,177, 66, 81, 16,180,168,101, 43, 43,115,197,124, 41,176,153, 82,188,146, 95, 19,149,
-133, 16, 2, 2, 81,144,201,182, 26,233, 85, 59,183, 0,128, 45,169,153, 88, 84, 1, 3,163, 56,214, 24, 69, 35,247,166,170,128,
-179,150,112,130,134, 82, 63,131,114, 57,223, 82,215,204,106,189,151, 58, 12,168, 82, 88,145, 8,209, 34, 38,150, 70,154,169, 0,
-144,130,138, 10, 22, 21,106, 84,133, 80,133,133,242,170, 26,197, 42, 81,142, 98,109, 81, 97, 80, 46,212, 35,170, 42, 0,229,165,
- 37,252,121,146,126,160,122, 94,218, 19, 25,178,100, 26,214,104,208, 80,132,201, 68,160, 44,149, 22,176,139,138,128,248, 85,162,
-196, 10,191,143,191,153,149, 3, 26, 14,171,170,179, 5,237, 94,106, 58, 42, 37,211, 24, 89, 48,194, 69,136, 68,104,137, 0,192,
-198,213, 20, 2, 48, 82,204,139, 8, 20, 85,104,173,128, 78, 31,202,214, 42,129, 58, 85,200,164, 94, 85,184, 16,167,224, 60,197,
-129,180,224,211, 70, 11,131, 56,107, 82, 51,246, 8,174, 5,129, 64, 99, 13, 58,168, 39,120, 88, 5, 45, 48,171,122, 16,137, 18,
-104,160, 99, 69,153, 34,238, 33, 21, 30, 37, 82,248, 94, 81, 9,151,162,176, 29,102, 80, 20,107,174, 23, 67, 73,136, 85, 84,104,
- 72,148, 89, 64, 81, 11, 13, 73,229, 56,113,226,216, 67,201, 12, 99, 47,226, 85, 92,172,234,199,162,126,224,222,199, 2,249,106,
- 16, 40,186,165, 74, 85,101,151, 10,159,171, 34,108,136,159,182,240, 20, 13,188,184,232, 71,133,205, 70,113,217,171,122,225, 0,
- 14,123,229, 92,124,144,201,115,128, 25, 84, 57,214,231, 69,180, 82,146,172,130,202, 66,184,144,232,122, 82,154, 83, 48,245, 24,
-207, 45,168, 10,123,192,154, 13, 73,136, 55, 1,125,143, 22, 45,149,245, 20,172, 57,246, 92,104,165, 64, 57, 64, 74, 0,112, 21,
-144, 80,199, 24, 75, 92,161,130, 28, 85, 43, 21,217, 50, 57, 44,125,173, 12, 60, 34, 53,105,162,146,156,122, 23, 25,107,165,101,
- 20,244,184,120,165,112, 59,133, 52, 28,132, 43,180, 87,130,163, 39,249, 96, 25, 68,109, 80, 3,148,211, 90,243,240, 96,209, 26,
- 97,252, 18, 66,244, 34, 62,160, 93, 42,186, 26, 10,170,161,175, 82,224,163, 1, 13,148,136,211,106,193, 59, 44,161,153,114,209,
- 10, 34,217, 96,170,170, 2, 97, 53,170,144, 77, 95,155, 41, 14,252,120, 21, 23,144,167, 96,168, 37,178, 84, 2, 83,117, 88,147,
-163, 86,162,160, 26,229, 14, 26,149, 26, 92,180,138,187,105,227,181,227,194, 4,197,124,197,153, 18, 97, 8,128,102,160, 58, 86,
- 48,101,136,208,133,149, 68,172, 73,185,240,171,128,151, 85,115, 20,241, 53, 9, 46, 22,182,188,149, 76, 53,252,218, 30,156, 57,
- 30, 86,162, 58, 80, 95,174,172, 5, 32, 44, 85, 28,174, 47, 88, 80,123, 46, 80, 5,214,136, 91,174, 50,234,194,247,161, 50,106,
- 65, 22, 35,138,172,196,104,217, 38, 16,250,189, 22, 23, 23,151,150,150, 94,108,176,208, 63,236, 67, 85, 39, 39, 39,215,172, 89,
- 99, 1, 96,121,121,249,200,145, 35,223, 81,202, 83, 73,158,107,214,172,161,239, 40,226, 31, 25,122,247, 29, 5,253, 35,123,216,
-231,231,165,112,217,174, 11, 94,125,249,165, 87,236,218,185,121,162, 45,110,224,135,221, 44,207,230,123,131,187, 31,157,218,127,
-100,230,235, 15, 61, 54, 60,227,194,226, 63, 17, 5, 93,182,251,165,255,234,157,239,186,108,247, 46, 11,156,247,151,179,238,146,
- 27, 46,187, 97,215,173,204, 6, 58,165, 99,110, 91,124,197, 5, 91,175, 62,111,203, 59,246, 94,198, 44,253, 60,159,158, 95,190,
-239,137, 99,183, 60,112,112,152,187,127,178, 10,250,233,183,190,245,231,222,249,174, 97,191, 51,236,204, 46, 61,118,103,191,187,
- 48,200,178,129,243, 89,238,189,231, 60,246,105, 68,130, 80,153,218,132,220, 97,178,221,220,123,225,142, 87,238,222,158,229,126,
-255,209,217,191,121,224,224, 82,183,255, 79, 71, 65,151,239,186,224, 15,254,221, 7, 72,220,220, 99,223, 92, 89,156,233,244,251,
-221, 65,214, 27,102,253, 44, 31,100,110,152,187,216, 78,233,124, 96,194,134, 18, 81,168,236, 25, 67,134,200, 18, 26, 99,194,239,
- 11,206, 94,119,193,230,181, 89,238, 31,158, 89,248,234,190, 71,114,231, 95, 12,138, 64, 60, 53, 44,243,204, 10,122,239,155,111,
-252,137,239,127, 99,255,196, 99,221,229,185,197,110,119,169, 55, 88,238, 14,150,251,131,229,110,191,211,207, 86, 6,195,238, 96,
- 56,200, 93,230,156,231,152,159, 7, 82,162, 49,161,197,214,164, 54, 73, 19,147, 90,147, 24,155, 88,147,196,162,172,217,125,246,
-186,221,155,175, 93, 25,230,247, 60,113,236,222,111, 39,141,228,105, 30, 63,255, 99,239,188,112,203,228,190,135, 30,252,195, 47,
-220,122, 74, 84,237, 25, 20,244, 99,175,187,246,109,123,175, 92, 60,246,240,242,202,202, 98,183, 63,191,210, 91,232,244, 78,116,
-186,115,203,221,185,229,149,197,110,127,152,231, 2,168, 74, 98, 76, 47,203, 29, 11,146, 69, 66, 67, 4,222,173, 25,107,143,165,
- 58,218,178,153,119, 4,121, 98, 77,154,196,222,129,196, 24,107, 77,106,108, 51, 49,123,119,111,223,187,123,219, 82, 47,251,218,
-254, 67, 83,179, 11,223,110,165,156,187,117,219,219,190,231,181,223,189,103,215, 29,119,222,114,219,125,183,127,248,207,166,250,
-195,236,185,184,216,142,141,235,110,122,197,158,110,103,182, 59,200, 22,123,253,249,229,222,137, 78,119,118,169,243,228, 66,231,
-216,252,210,202, 96,216,106,183, 87, 52,153, 61,113, 90, 84,103,190, 70, 17,152, 28, 27,189,104,251,182, 22,161,243,222, 26, 72,
-140, 49,222, 12,209, 91,131,214,154,212,218,241, 86,122,211,181,123, 8,209,171,126,229,254,199,246, 63, 49,205,171,153, 20,207,
-231, 97,136, 94,115,205,213, 31,248,241,119, 13, 22,166,190,126,207, 55, 14, 60,124,207,255,253,236,103,158,152,153,123, 94, 49,
-232, 77,215,236, 65,208,149,193,176,211,207, 58,221, 97,167, 63, 88,234,245, 23, 86,250, 11, 43,189, 97,238, 70,199,199,247, 63,
-241,228,153,139,184,180,210,189,237,129, 7, 1, 96,180,213,218,189,125,235,186, 17, 99,189,179, 6,173, 24,195,156, 57,215, 31,
- 26,107,168,145,218,102,146,188,254,210,243,222,124,213, 75,173, 49,221, 97,246,224,209,217,187, 14, 77,207,204, 47, 62, 91,165,
- 92,117,209, 69,239,120,195,141, 23,109,123,137,244, 79, 60,118,248,208, 35, 83, 71, 62,248,135,191,243,224,244,252,161, 99,115,
-103, 30,248,158, 78, 65,215,236,218, 49,200,252, 48,119,131, 60, 31, 56,151, 57,159, 59,118, 44,162, 58, 58, 58, 50,215,127,142,
- 11,118,119, 48,248,230,129, 71, 0,160,217,104,236,216,120,214,150, 53, 99, 13,163, 69, 20,167, 97,238, 86, 40, 51, 20,218, 77,
- 77,171,153, 94,186, 99,243, 43,118,109,107, 55, 26,173,212, 38,214, 42,153,165,238, 96,224, 92,150, 51,171,230,206,141,180, 91,
-227,237,145,145, 86,123,253,218, 53,235,198,199, 84,164,219, 93,153,155,159,155, 62, 49,247,232,253,183,253,221,173, 43,115, 43,
-195, 39,230, 22, 15,207, 45,202,179,111,125, 57,173,130,182,110, 92, 15,236,115, 70, 23, 26,250, 89, 2, 46,157, 24,106, 38,118,
-232,188, 53,230,121,154,253, 48,203, 14, 76, 77, 31,152, 2, 0, 24,105,181,182,174,159,220, 48,218, 76,136,210,196,132,133, 15,
- 41, 0,190,161,116, 77,101,128,183,198, 36, 6,145, 76,128,138,186, 43,203, 75, 75,139,206,249,161,115,253,204, 13,115,223, 25,
- 12, 6, 98,166,230, 22,142, 47,118,156,123, 94,153,215,105, 21,180, 99,195, 26, 22, 1,192,144,212, 32,162, 33, 76,172,105,164,
- 73,187,145, 58,230, 54,242, 11, 24, 56,123,131,193,129,169,193,129, 98,201,181, 68,214,154, 13,103,173, 91, 55, 49,142,226, 71,
-155,105,106,140,112,198,236, 2,206, 20,208, 75, 64,200,157,239, 12,156, 87, 60, 54, 59, 59, 24,102, 2,224,253, 11,153, 55,156,
- 86, 65,173, 36, 97,137,181,217, 0,103, 37,214, 54, 19, 51,210, 72,188,111,138, 42, 66,182,118,124,100,161,243,194,211, 41, 65,
- 53,244, 6, 79, 77, 31,155,154, 62,246, 34, 77, 20,135,206,169,106, 4,220,201,164,214, 54, 18,230, 70, 26,206,231, 8,136, 50,
- 33, 62, 12,180,212, 89,249,231,184, 89, 93, 25, 58, 22,177,198, 88,162, 70, 98, 0, 18, 68, 48, 68,137,181,205, 70, 58,218,114,
- 19, 35,205, 53,195,145,179, 38,199,190, 53, 53, 55, 61, 55,255,207, 78, 65,199,151, 58,225,240, 2, 36, 74,132, 18,107, 26,214,
-182,210,196,177,120, 31, 32, 31,241,204,142,229,226,109,155,135, 94,142,175,244, 59, 67,222,188,113,195,100, 10, 19,205,100,227,
-196,104,187,145, 36,134, 8, 67,127, 24,134, 94,245, 18,125, 88, 5,121, 70,204, 5, 50,230,149,254,176, 59,204, 79, 44,119, 79,
-116,251, 83,115, 75, 79, 46,118,142, 28, 63,241, 98, 84, 80, 98, 76,146,152,102,154, 36,134, 16, 83, 81,141, 93,249, 69,169, 61,
-146,110, 2,152, 12, 37,135,168,132, 39,137, 74,118, 78,104, 69,193, 10, 22,136, 24, 76,137, 84,133,200, 3, 96, 0,214,180,155,
-107,218,205,173,107,199, 1, 99,153, 61,224,146, 44,220,207,253,254, 35,115,247, 28, 60,242,228,194,210,114,111,240, 15,172,160,
-239,122,233,142,117, 99,163,237,102, 43,105,180,209,164, 17,164,138,128, 85,129, 32, 3, 66,128, 69,209, 68,158, 71,160, 43, 41,
- 4,244, 2,152, 69,125,209,134,230, 2, 80, 34, 44,142,197, 51, 7, 2,111,216,223,198, 86,165,136,195, 70,162, 72, 36,140, 32,
- 16, 34, 26, 59,222,178, 87,159,183,229,229,231,191, 36, 32, 59, 89,238,102,150,251, 95,184,247,225, 3, 71,142,253,125, 43,232,
-221,223,123,221, 59,174,127,117,115,108,109,218, 26, 55,182,129, 68,177,105, 50,186, 69,193,158, 8,168, 95,157, 30, 0, 5,134,
- 90, 67, 68,139,166,175,112,212,147, 19,206,132, 67,167, 84, 56, 12,163,104, 59, 99,241, 42,204,234, 11, 88, 82, 68, 88,184,214,
-210, 8, 0,224,139,205,119, 51, 77,207, 89,159,190,251,250,171, 69,164,159,185,163,243,203,251, 14, 31,251,198, 35,135,159, 51,
- 89,242, 52, 10, 42,192,233,241,118,235,117, 87,190,236,221,111,188,113,243,198,205,148,180,109,179,109,109,130, 38,137,103,190,
- 68,140,187,250, 1,169,240,165,178,195, 43,252, 9,165,130, 84, 84, 24,197,170,120, 48,105, 1, 93, 55,133,157, 97,167,236,146,
- 96, 82, 1, 66, 99,137,192, 39,115,160,107,132,115,173,152, 99,131, 94,233,146,162, 42, 2, 18, 96,124, 0, 64,108, 38,246,220,
-141,107,183,173,159,188,225,210,243,123,195,252,224,236,242, 29, 15, 63,126,124, 97,249, 5, 80,144, 0,188,243,134, 87,191,233,
-218,107,108,163,157, 36, 77, 74,154,198,166,198, 90,192,208,214, 11,128,193,173, 4, 8,149, 3, 93, 36, 88,126, 60, 14, 7,136,
- 80,226, 43, 16, 88,147, 42, 32, 0, 68,161,169,153, 16, 1,145,129, 9, 0, 9,133, 67,140, 50, 66,150,200,171,122, 98, 39, 34,
-214,152, 8,131,138,137,100, 22, 14, 64,118,108,181,244,149,166,130,125,161, 40,176,176, 20,161,158, 16, 83,107, 77,139, 46,222,
- 98, 47,216, 56, 57,116,126,161,239, 62,117,231,190,149,231, 17,176, 44,168, 78,172,217, 56, 58,177, 17,200,144,177,129,149, 23,
-220, 71,132, 75,206,142,106, 69, 58, 64, 0, 5, 4, 80, 68, 3,168,168,162,132,145, 80, 66,136, 85,212, 13, 13,214, 22,196, 43,
- 42, 25, 80, 4,144,192,107, 3, 65, 36, 36, 37, 18, 38,131, 68,226,133,153, 16, 69, 85, 80,132,208,136, 10, 81, 8,231,137, 45,
-123, 47,109,108,148,141, 77,169,204, 74,193, 15, 75, 0, 23, 12,165, 96, 3, 81, 43,181,246,199, 95,125, 69,230,248,232, 82,239,
- 75,247, 30,200,242,252,185,196, 32,178,137,105, 52, 99, 88, 36,132,178,133, 57, 50, 48, 52,112,196,194, 47, 0, 80, 50, 20,104,
- 53, 49,164, 18,137, 42,138, 42,160,160, 0, 69, 42,157, 4,238,155, 2, 25, 4,136,237,210, 20,118,112,150, 0,227,184,136,194,
-164, 72,136, 62,112, 74, 16,137, 84, 5, 11,103, 38, 85, 69, 18, 49,130,162,202,140,162,196, 38, 24, 17,121, 81, 49,194, 90, 54,
-207,162,136, 18, 34, 41, 25, 35,150,217,121,178,134,119,174, 55,219, 95,115, 69,207,201, 93,135,166,247, 63,113,244, 89, 42,136,
-136,140,141,190,131, 8, 4, 10, 26,201,156, 24,163, 48,162, 34, 5,122,158, 18, 72,232,102, 38, 21,193,208,212,174,160,132, 40,
- 18, 1,108, 84, 13,180, 69, 84, 68, 4,210,216,155,175, 0,160, 97,185,163,144, 35, 48,104,120, 27, 20, 81,144, 12,163, 42,139,
- 40,146, 34, 0,138, 80,224,111, 3, 10,170,136, 4, 43, 35, 22, 33, 20, 33, 18, 17, 37, 22, 49, 40,162,106,162,113,161, 81,101,
- 70, 66,178, 70, 18, 54,158,217, 89, 49,214,239,221,189,245,154,115, 55,205, 15,229, 43,247, 29,232,246,250,103,182,138, 33, 17,
- 26, 1,168, 56,164, 37, 21, 18, 81, 37, 26,142,160, 70,190,103, 48,143, 64, 95, 86, 0, 4,137,230,132, 5,137, 57,174,207, 69,
- 79,113,197, 41, 3, 81, 68, 2,210, 64, 52, 6, 82, 16, 85,138,220, 70, 84, 0,163, 42, 64, 33, 75,136,108, 96, 4, 17,164, 48,
- 28,161, 40,138,162, 65, 22, 33, 16, 68, 98, 9, 61,241, 65,113,200, 68, 33,101, 35, 36, 18, 97,193,162,139,159, 45,161, 51, 38,
- 49, 38,181,254, 7,175,220,221,101,184,243,224,209,163, 51,179,207,160, 32, 12,135,137, 21,116,107, 84, 12,190, 21,110, 14, 73,
- 69, 0,131,149, 32,134,211, 27, 74,158,131, 98, 69, 72, 12, 95,170, 29, 47, 16, 86, 24, 4,144, 34,168, 7,130,177, 70,251, 66,
- 84, 8, 12, 99, 5, 13, 10, 80, 0, 50, 0, 18, 62, 67, 10,197,105,181, 80,200, 16,143, 75, 16, 0, 66, 6, 34, 17,160,168, 56,
- 16, 5, 3, 40, 74,145,186, 38,200,128, 8, 28,101, 8,215,228,200, 72, 36,180,206, 95,119,238,166,254,246, 77,223,120,244,240,
-233,150, 60, 11,165,197, 72, 56, 41,130, 0, 5, 20, 9, 84,112, 53, 37, 24, 1, 67, 13, 20, 11,246, 76,145, 1,213,149, 20,119,
- 13, 21,103, 87, 11,178,187, 22,148,247,232,135, 90,176,176, 35, 73, 63,184,181, 98,168, 33, 32, 2, 10,104,136,124, 82, 75,109,
-180,184, 80,121, 78, 5, 20,190, 27,153,205,138,132, 6, 0, 4, 13, 5,103, 22, 69, 84, 66, 81, 68, 68, 67, 36, 10,106, 40, 21,
- 11, 45, 53, 57, 95,187,243,236,249,141,107,239,126,108,250,169,253, 19, 4,165,103,161, 66,113,242, 27,170, 40, 2, 86,233,159,
- 2,104,144, 82, 65,163,123, 5, 59,128,178,241, 61,176,131,181,236, 17,208,146,213, 92, 81,201, 74,245, 86,124, 92,173,232,120,
- 5,255, 45,132,247,177,193,103, 43, 0, 0, 5, 95, 73, 68, 65, 84, 58, 87,118, 53,143,183,198,221,171, 77, 94,204,228,177,104,
-163,192,162,189, 37,244, 1, 68, 30,107,224,220, 83,104, 88, 48,104,201, 36,134, 90,141,116,221, 88,235,186, 93, 91, 95,182, 99,
-243,169, 20, 84,209,155,139, 14,127, 8,135,232,213,184,179,165,178, 34,119, 89,203,204,176, 34,121, 7,194, 98,141,113, 27,148,
- 85, 35, 74,106,113, 18,107, 28, 11, 84,169, 84,177,172, 58, 30, 32,174,147,171,249,226, 21,101,170,166,178,154,109, 33,172, 38,
- 34, 71, 61, 33, 22,135, 81, 64,160, 32, 23,187, 69, 42,224, 41,211, 72,108,187,209,216, 56, 49,114,237,249, 47, 25,105, 54,138,
-109, 66,116,177,130, 22, 23,214,177,120,132, 96,136, 71, 90,158,139, 16, 24,204,101, 54, 4,117,242,118,113,128, 8, 68,246, 88,
- 45,111, 42,121,197, 34,165,102,235,239,150, 20,108, 85,142, 52,215,242,152,146,168,238,146, 63,172,245,155,127,138,125,197,207,
-214,169,250,117,166,104,209,137,163,161, 71,128,202, 83, 98,136, 44,169, 16,169, 53,162, 9,180,224,178,237, 27,142, 46, 13,124,
- 93, 65, 21,157, 50,220, 47,198,134, 26, 9, 79,227,107,129, 87, 29, 24,248, 2, 53, 51, 9,183,131, 5, 99, 14, 87, 29,235,194,
- 53,115,227,218,139, 82,144,173, 3,107,157, 1, 34, 15, 91, 74, 75, 69,168, 14,247, 8,147,160,117, 86, 99, 21, 2, 11, 47,215,
-234,211,225,138,133,121, 98,173, 83, 65, 17, 98, 91, 12,162, 65, 18, 82, 34,177,198,136,106, 42, 70, 19, 85,208,173,147,232, 91,
-227,133,130,180, 60,134, 24, 42,141, 20,145, 65,160,166, 5,168,121,156, 74,233, 41,165, 41,149,199,130, 20, 27, 87, 9,103,150,
-172,218,181,133,211,111,164,224, 25, 11,139, 6, 58, 61, 23,228,249, 82,241,165, 41, 66, 65, 51, 44,156,182, 10,117, 53, 89,107,
-102, 85,183,161,178, 27, 10,107, 73, 10, 34, 16,130, 96, 60,202,135, 69, 13,145, 24,181, 74,169, 90, 21, 69, 67, 26, 20,164,229,
- 25,226,101,168,128,210,191, 64,171,158, 8,128, 98, 63, 10,213,161, 36,113,239, 30, 75, 28, 82, 57, 17,148,180,107, 40,119,182,
-193, 70, 84,149, 65,188, 4,221, 5, 78,184, 50,112,113, 70, 78, 73, 61, 47, 38, 69,162,174,160,100, 91,171,104,125, 30,101,245,
-137, 39, 10,101, 91,197, 42,127,172,175, 5, 69, 84,138, 15, 67, 36, 34,100,208, 8, 89, 82,182,134, 9,125, 97, 65,161,118, 19,
- 72,249,241, 80, 21,168, 8,242, 10, 1, 72, 0, 21, 17,172, 25,145,150,109, 29, 69,251, 64,176, 17, 4, 45, 61, 43,108,116, 3,
- 75,183,222,226, 1, 42,202, 62,246, 60, 4,198,177, 74,169, 16,145, 64,133,175, 71,100, 56,249,244,151,208, 97,162,178,122, 57,
- 57,185, 65,167,234,211,137, 30, 80,133,168, 90, 95, 68, 17,191, 37, 4,111,181,198,184, 72,255, 47, 44, 72, 10, 59, 45, 12, 8,
- 42,135,170,116,165, 18,109,188,240, 41,169, 76,190, 8,189, 34,171,206,223, 9, 31,102, 88,125,102, 81, 85, 48, 82, 95, 4,105,
- 45,252,168, 76, 46, 74, 47, 43, 93, 12,100,149,118, 86,135,157,162,201, 96, 85, 51, 70, 28, 4,138,223, 90,207, 44,234,246, 84,
- 59,121, 12, 73, 98,133, 52, 40, 72,148,185,214,250, 19, 55,243, 85,244,131,250,130, 85,246, 28, 21,161, 7, 42,101,197, 46,150,
-208, 78, 16, 21, 81,107,184, 80,169, 83,213,227, 41,186,202, 5,111, 90,106,102,162, 21,159, 58,118, 50, 64,173,123, 71,171,144,
- 84,118, 26,212,249,252,213, 97, 67,213,209, 93,181,114, 95,153, 89, 84,126,135, 80,229, 5, 85,250, 84,158,111, 22,248,231, 33,
-145,144,144,173,105,113, 32, 28, 70,207, 82,149, 16,195, 99,232, 45,196, 67, 40,155, 30,162,189, 99,108, 8,224, 48, 50,134,154,
-114,116,186,112,238,150,132,179, 0,161,138, 44, 80,133,152, 72, 47,175, 34, 78,101, 62, 18, 59,139, 74,149, 5,146,120, 17,240,
- 32,246, 96, 20, 5, 62, 89,101,116,186, 90, 85, 90,245,131,105,185, 81,210,226,172,187, 88,247, 42, 44, 40,172, 44, 80,105, 85,
-160,222,157, 86,209,216,107,145,160, 56,202, 42, 6,238,106, 57,151,122, 69,177,236, 43,171,124,170, 52,168,202, 71,164,234, 96,
-129,147,243, 69,173,242,171,178,201,163,230, 95, 80, 29,159, 38,197, 97, 95,145, 66,175,245,102,150, 42,183, 42,131, 83,108, 82,
- 41,251, 24,203, 90, 59, 20, 37,246, 66, 65,194,190, 12,108,229, 46,171,136,223, 85,176,131, 85,203,185,212, 66, 15,212, 18, 60,
-174,222, 42,151,240, 74, 71, 92,111, 33,136,179, 42,181,100, 33,174, 88, 18,151,246,147,148, 85, 59,126,171,254, 98,165,184,242,
-124,182, 74, 53,133, 88,197,101, 89,171, 68, 84,235,183, 93,219, 44,174,218,172,134,126,141,226, 88,147,226,236, 58, 41,147,195,
-114, 69, 47, 50, 20,145, 34,105, 22, 44, 26,107,226, 52,151,139,151,114,140, 68, 82,116,117, 20,170, 41, 64,163, 50,196,196,124,
- 89,194,233,224,181,213,170,232,111, 4, 41,144,166,242,182, 99,143, 26,172,234, 10,171, 29, 16, 88,154, 46, 84,111,137,232,170,
-119, 65, 86,157,127,182, 42, 0, 67,177, 81,143,203,188,136, 15,120, 14,212,218,203, 86,175,143,213,188,214, 28, 42,162,129,241,
-102,235,141,154,162, 80, 54,188, 84, 39, 28,174,218, 24,172, 14,180,245, 38, 74,144, 58,126, 82, 5,148,184,219, 91,237,128,177,
- 19,171,122, 75, 66, 67, 85,169,187,208,174, 82, 52, 25, 61,101, 5,148, 58,242, 80,182,149, 22,219,188,224, 98, 44,222,157,188,
-186,195,170,148,190, 90,203,164,238, 89, 28,227, 1,148, 73, 80, 21, 98,138, 99,236,138,133, 35, 30,116, 87, 0, 31,171, 85,115,
-178, 6, 33,224, 22,162, 39,171,163,102, 62,171, 66,204, 42,115,168,159,136, 87,244, 6,201,170, 86, 68,168, 59,102, 61, 98,215,
- 79,206,212,202,197, 64,124, 45, 86,149, 41, 23,212,118, 24,229,255,135, 82,198, 23, 89,213,162, 20,219, 41, 57,230,185, 0, 90,
- 79,106,180,200, 38,139,151,226, 90, 43,161,114, 32, 69,203,235, 73, 43,125,245,149, 82, 35, 90, 11,183,181,251,132,170, 33, 78,
- 98, 32,174,204,164,182,210,151,189,115,197,149,106,151, 3,168,183, 85,197,117,127,239,222,189, 79,169, 27,156, 89, 95,212,139,
-160,123, 10, 95,216, 47, 61,229, 29, 84,253,255,247,125,202,160,216,217,116,216, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/soften.png.c b/source/blender/editors/datafiles/soften.png.c
deleted file mode 100644
index e4ee600fc28..00000000000
--- a/source/blender/editors/datafiles/soften.png.c
+++ /dev/null
@@ -1,298 +0,0 @@
-/** \file blender/editors/datafiles/soften.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <soften_png> */
-
-int datatoc_soften_png_size= 9219;
-char datatoc_soften_png[]= {
-137, 80, 78,
- 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0,
- 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127,
- 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7,
- 21, 0, 4, 17,164, 74, 11,162, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,125, 89,140,101,215,117,221, 94,251,220,247,106,236,
- 42,118,245,196,230, 32,178,217,221, 18,201, 38, 13,118,147, 26,163,216,145, 68, 82, 10,109, 1,142, 0,249,195, 70,254, 44,219,
- 72, 34, 89,147, 53, 81,118,128, 72,137,108,231,199,209, 79,236, 68, 48, 36,216,254,136, 28, 3, 49,146, 32,202, 71, 68, 41,142,
-228, 88, 19, 5, 27, 22,155, 77,138, 33,155, 34, 37,206, 61,213,240,222,189,103,175,124,236,125,206,189,175,170, 56, 40,166,129,
- 24,224,235, 98,117,213,235,247,238, 59,119,159, 61,174,189,246,161,200,143,251,184,252,240,225, 35, 71,174,219,249, 60, 68,228,
-163, 31,251, 68,206, 29, 68, 84, 21,170, 77,211,140,154,166, 25,141,238,254,196,199,253, 69,233,125,191,250,254,182,157,230,220,
-153, 89, 54, 51,203,150, 45,155,209,120,251,237,183,159,190,255,254, 75, 23, 47,234,116, 58,105,167,211,118,218,182, 93,219,181,
-237, 51,207,109, 92, 88,159, 76,167, 93,215,118,147,233,244, 87,126,249, 87, 70,163, 81,211,182,237,127,251,218,179,162, 80,232,
-141,215,206,207,207, 53,203, 29, 69,148, 20,205, 32,121,247,221,159, 76, 63,218,184, 10,160,144, 34, 76, 96,219, 89,206, 70,210,
-204, 22,230,148, 70,146,141, 89, 86,168, 8, 8,156, 95,111,183,166,121,218, 90,151,121, 96,239,120,218,182, 41,153,144,105,121,
-237, 24, 73, 17, 10, 73, 74,206,242,236,197,238,153, 11,221,233,135, 55,142,191,106, 33,238,110,233,178,163, 0, 69, 8, 33,129,
-105,107, 16, 10, 0,202,153, 71, 55, 78, 63,188,121,253,181,139,105,113,239,181, 66, 8, 40, 20,134,236, 40, 20, 81,184, 24,239,
-123,100,179,161,145,200,146,161, 10, 49,151,174,138,152,191,131, 64, 18,123, 73,219,149,234, 79, 11, 11,139, 87, 95,125,181, 42,
- 54, 55, 55,183,239,221,169, 83,167,222,118,251, 29, 36, 21,128,106, 74,201, 55,238, 75, 95,250,210,215,254,215,159,197,139,222,
-247,190, 95,165, 16, 2, 85,133, 34,105, 82, 77,163,113,211, 52,163,209,104,244,201,187, 63, 33, 34, 58, 45, 27,215,118,237,185,
-243,155,207,157,223,216,220,106,219, 54, 79,167,211,201,100,242,169, 79,125, 90, 68,240,147,119,254,194,247,127,176, 5,129, 0,
- 55, 31, 91, 92, 92, 24,173, 44,207, 47, 47,205,143, 71,105,212,232,104, 52,154,155,159, 79,211,230,136, 64,140, 92, 94,132,144,
- 93,103,217,140,180,156,109, 60, 86, 49, 26,217,152,152,154,137,104,215,201,249,139,156,180,214,118,118,229,129,249,148,216, 78,
- 91,107,140, 34,105,105,237, 24, 40, 34, 98,102,153,236,178, 61,245, 92,247,192,217,205,107,174,152, 83,192, 69,154,150,214,174,
- 19, 87, 20,138,136, 76, 91,151, 47, 31,122,116,114,230,236,198,190,213,102, 97,190,193,129, 35,183, 67, 85,224, 91, 5, 8, 68,
- 33, 72,144, 4, 77, 73,147,164,166, 49, 49, 37,125, 79, 69, 33, 4, 4, 80, 21,201, 16,161, 64,205,228,229,122, 96,248,203,251,
- 63,240,193,165,197, 37,223, 36,255, 3,133, 66, 53, 41,128,164,233,179,159,253,157, 39,158,120, 98,247, 11,125,248,215, 62,146,
- 45, 11, 69,140,126, 89,136, 64, 1, 81, 40, 68,160, 9,170, 10,104, 74, 73,129,148,146,106,106,154,230, 99, 31,251,200,204,133,
-254,201, 63,253,103,210,235,182, 96,240, 16, 72,206, 52, 34,165,212, 52, 58,106,154,148, 84,147,130, 72,161, 79,163, 47,124,225,
-243, 15,156, 57, 35, 34, 77, 59,157,250, 50, 32,178, 49, 49, 5,150, 22, 26, 17,153, 78,249,220,165,118,148,180, 25,165,185, 81,
- 26,143, 71, 54,198,168, 17,205,132, 74,206, 72, 10,205,249,231,127,254, 23, 82, 74,191,241,235,159,196,225,235,127, 22, 18, 82,
-129,223,155, 34, 1, 87, 95, 62,110, 18, 70,141,142, 71, 58, 55,110,230,198,163,249,185,102, 52, 74,163, 38, 37, 21,168,206,207,
- 37, 64,147,170,170,166, 81,147,246,172,189, 90,196, 68,132, 34,160, 9, 68,200,197, 57,180,217, 38, 83,155,182, 54,109,243,180,
-181,201,180,155,180,121, 58,237,178,229,229,197, 4,144,102,238,109, 72,154,177,161,100, 33,197,148, 32,161, 98,157,136,110, 78,
-217,118,162, 9, 73, 53, 37,140, 82, 62,191, 78, 10, 22,230,211, 91,111, 91,107,219, 22,128, 27,159, 91,160,154,225,208,177,183,
- 11, 85, 84, 40,136,111, 66, 17,164,164,238,135,167,157,169, 40, 1, 40, 32, 0, 84, 0, 85,252,204,155,247,251,150,194,183,245,
-192,209, 59, 68, 0, 1,253,175,114, 33, 17, 21,154, 40, 32, 66, 64, 5, 20,133,170, 59, 54,104,114,129, 66, 21, 80,129, 54,102,
- 57, 4, 45, 34,162,180,236,171,131, 24, 68,196, 64, 0, 36,125, 39, 50, 69, 85, 68,104,217,149,205, 76, 84, 5, 34, 13,105,190,
-103, 2, 21,154, 64,104, 80,208,197, 47, 4, 21, 74, 17,117,199,168,194, 44,162, 16,165,152,248,135,152, 80, 41,255,223, 61,176,
-235,179,123,247,238,189,236,178,189, 34, 50,153,108,157, 59,119,110, 99, 99,227,199,184,208,177,227,199,223,253,238,159, 3,194,
- 49,249, 95,110,250,170,154, 82, 58,119,238,252,191,254,237,223,124,161, 11,125,236,227,159,176,108, 36,221,118,225,155,234,151,
-211,120, 36,191,152,166,102,212,124,244, 35,191,182,203,133, 62,248,161, 15,139,135, 54,250, 46,193, 85,207,183, 27, 72, 80,164,
- 20,110, 36,169, 47, 49,157,125,244,236,239,253,238,191, 29, 94, 72,187,174,107,187,182,235,186, 46,119, 93,238, 44,119,150,187,
-156,115,238,114,206,150,173,179,220,249,191,119,109,132,156,182,107,175,186,234,170,223,252,173,223,222,126,161, 28, 95,254,102,
-127,248, 79,221,250,250,116, 99,179,157, 78,115,219,229,156,105,153,157,229,156,173,107,219,118, 58,253, 87,159,233, 69,166,150,
-179, 13, 30, 52,210, 72,179,156,243, 51,231, 39,147,105, 55,233,114,219,101,203,204,102, 38,198,204,156,187, 46, 91,151,187,174,
-235, 62,243,153,223,138,152,124,242,228, 41, 79, 38, 38,173, 77,166, 25,128,130,164,252,240,233, 45, 51,210, 92,252,213,105, 70,
- 88,162, 16,226,233, 7,111,190,249,230,111,252,197, 95, 52,102,246,223,255,247,115, 70, 10,220, 76, 64,145,213,165,116,245,229,
-115, 77,146,174,105,178,145,116, 99,132, 80, 20, 98, 10,132, 57,139,116,221,254,125,251, 33, 72, 79,108,190,202, 72,248,174,139,
-185,179, 60,176, 55,177,247, 92,194,216, 82, 33,195,151,165, 52,179,247,119,220,121,103, 90,222,255, 26,132,197, 81, 68, 0, 33,
- 57, 63,214, 28, 34, 17,146,164,248,251,253,202, 73,165, 73, 26, 1,131, 34, 0,201,180,103,223,107, 36,174, 84,174, 71, 25, 53,
-200, 20, 95, 20, 41,241,157,102, 38, 43,203,163,241, 72, 69, 6,239, 32, 69,208, 24, 51, 4, 16, 10, 33, 74, 35, 64,153,182, 89,
- 51, 44, 33, 39,100, 99, 54,205,198,181,213,197,189, 43, 35,192,114, 22, 0, 74, 16,245,166,187,180,103,237,184,212,120,228, 73,
- 27,160,138,114, 59,160,200,230,196,158,124, 46, 63,250,163,233,209,171, 22,194, 3, 70, 10,136,106,103,105,105,223, 49,146, 2,
-169,139,242, 29, 50, 19, 33, 77,184,190,101,147, 73,152,225,131,103, 55,158, 62,223, 94,117,112,236,142,143, 68, 53,252,180,180,
-247,168,167, 34,101, 85, 20,250, 39,209,132,211,214, 60,146,187,199,132, 96, 99, 98, 15, 60,178,185,178,167, 89, 90,212,184, 6,
-124, 69,107, 71, 25, 11,173, 81, 91, 40,160,208, 50, 41,162,238,228,125,217,126, 77,224,177,167,166,103, 30,217, 56,119,177,187,
-250,208, 28, 93, 99, 15, 94,119,167,192, 95,143,186, 48, 82,225, 55, 11,245, 24, 82,146, 93,133,170,136, 64, 84, 0, 81, 64, 84,
- 84, 33,170, 20,163, 80,196, 92, 34,229, 22, 60, 59, 33, 93, 84,140, 77, 22, 26,105, 34,164,152,144, 98, 20, 33, 76, 32,108,132,
- 20,122, 80, 51,191, 99,115,231, 72,128, 20,136,199, 8,191,201, 80, 62, 66, 64, 42, 61, 59,164,146, 34,101, 69,112, 5,246, 0,
- 36, 48, 10,205,224, 27, 67,243, 85, 48, 86, 45, 48, 17,129, 9, 45,116, 29, 20,117,107, 54, 26,133, 66, 51, 19,138,185,174,131,
-230, 31, 80,150, 81, 22, 31, 57, 7, 75, 6, 83,214,240,202,227,199,143,179,245,113,221,117, 71,111,188,241,198, 35, 71,143,174,
-237,221,219, 63, 27,206, 84,224,201,115,252,165,231,206,157, 59,115,230,254,191,250,171,191,252,254,247,191,255,242, 44,104,121,
-121,249,221,239,254,185,195,135,175, 48,179, 65, 49,200,222,195,196, 31,145, 62,174,247, 15,237,127, 82,133, 10,164, 25,141,254,
-227, 23,191,248,173,111,125,243,165, 43, 7,222,249,206,119,222,120,227, 9, 51, 70, 97, 91, 77,106,118,201,240,220,177, 46,165,
-252, 48,187, 36, 47, 56,250,101,149,133,170,170,118,185,251,119,191,247,187,143, 62,250,232,139, 44,232,253, 31,248,144,199,186,
-157, 75,169,158,105,240,103,102, 53,210,151, 25,131,133, 72,191,148,193, 74, 5, 64, 74, 13,128,212,164,127,254, 27,191,190,181,
-181,181,251,130,222,251,222,247,177,134, 21,238, 92,205,204,114,234,142,213, 31, 73,201, 38,238,217,160,240,196, 93,213,215, 84,
- 50, 44,137,228,188, 60, 15, 85,109, 82,243,185,207,253,251, 7, 31,124, 96,123, 69,127,235,109,183,209,108, 88, 81,196, 67, 88,
- 34,181,244,207,212,103,141, 27, 91,237,230, 36,183,157, 67, 47, 30,198, 5,245,190, 64, 33,132,130,192, 25,104, 70,186,111,165,
-121,156,189,229,228,201, 59,239,124,251,131, 15, 60,112,254,252,249, 94, 4,191,244, 75,191,252,124,234,174, 2,122,149,172, 12,
-215, 79, 0,184,180,217,110, 77,204,149, 36, 37, 77, 0, 18, 26,213,164,154, 26, 85,213,212, 36, 5,146, 71, 5,136, 2, 36, 85,
- 19, 73, 40, 84,144,146, 23, 50, 33,174,241,104,252,209,143, 70, 62,138, 95,124,207,123,194,140, 32,143, 63, 57, 57,251,196,244,
-252,165,174,235,216, 7, 74, 96,126,164,123, 87,154, 99, 87, 45,172,173,142,126,248,212, 86,155,153, 20, 80, 36, 69, 82,168,106,
- 74,154,146, 54, 73, 83, 74, 77,210,212,120, 42, 13,255,120,244, 8,128, 0, 80, 21, 29, 42, 89, 36,203,233, 15,255,240, 15, 78,
-159,190, 15,239,124,215, 63,254,214,125,151,138,186,178,151,143,203, 93, 5, 68, 9,191,184,124,127,179,188,224,133, 54, 18,160,
- 10, 85, 52, 73, 83,210,164,104,154,148, 26,109,146, 54, 41,249, 51, 0, 82, 42, 25,191,132, 54,141,155, 84,205, 86,195, 91,168,
- 11,250,171, 95,189, 39, 93,146, 35, 40, 38, 86,151, 18,209, 93, 60,197,136, 36,126,110,140,197,121, 53, 99,151,153, 59,118,102,
-217,152, 77,114,166, 25,179,209,140,185, 51,163,228,128,243,152,205, 51,101,127,129, 37,148,252,142, 81, 81,114,144,210, 10,121,
-205,181, 71,154,240, 61,144,178, 6,235,141, 59,220,153,175, 10,163,134, 91,147,172,136,236, 65,161, 73, 69,213,146,162, 73, 72,
- 85, 78, 93,110, 84, 53,105,211,104,108,168,202,226,252,104,110,156, 4,204, 57, 23,255, 1,150, 77,171,133, 41,200, 70,104, 1,
-181, 49,178, 33,170, 69, 10, 34,162, 70,150,140, 43,119,152,210, 0, 7,207,160,176, 4,209,228,182, 44, 77,210,164,101, 89,201,
- 82,210,185,145,238, 93, 29, 47,205, 39, 85, 8,196,204, 4, 94,204,122,130, 95, 66,142,239,158,131,114,100, 83,178, 14, 23,146,
- 1, 16, 66,188,168, 38, 8,136, 24, 41, 20,116,217, 19, 63, 0, 97, 98, 10,209, 76, 87,148,182, 99, 74,128,216,198,132,235,155,
-188,246,202,133, 35, 87,204,139,192,204,235, 8, 20,223, 69, 80,188,224, 87, 81,211, 44, 46, 34, 17, 16, 10,226,224,241,187,224,
-239,112, 16, 13,190,180,146,214,134,113,144,148,166,209,222, 82,194,217,137, 70,116,149, 73, 39,211, 41,161, 21, 43, 13,227,122,
-195, 77, 43,251,247,142,252, 77,226,213,141,215, 45, 80,117, 93,175,126,211, 21,252,208,177,127, 24, 80,170, 95,133,116,253, 31,
-232, 56, 4,164,136,214,146, 20, 21, 40, 35,136,105,166, 24, 68,189,254,169,193, 69, 3, 61,130,250,197,143, 95,189,112,227,145,
- 37, 99, 93,211, 32,166,244,145, 71,113,240,216,157,116, 48,165,186, 35,178, 44, 46,254, 43, 6, 17, 98, 44, 82,147,108, 37,190,
- 80,168,241, 58,129,246,181, 94,252, 0, 33, 74, 21, 0, 85,156,124,245,242,225, 3,115, 73,181, 42,120, 31, 92, 14, 30,189, 83,
- 2,223,113, 69,175,117, 81,236, 32,197, 1, 22, 1, 40, 18, 90, 40,102,230,203,117,207,224,249, 59, 29,108,114,104, 90, 41, 5,
- 87,243,116,159,177,101, 66, 45, 79, 67, 32, 73, 49,110,116,109,117,124,229,193,185,181,149, 17, 14, 28,185,131,110,128, 1,137,
- 35, 62, 7,253, 26,203, 14, 98, 80,218,133,248, 74,124,161, 80,189,140, 10,208,169, 36,243,174,149, 17,100,189,226, 40,235,118,
-128,132,244,127, 85,223, 31, 45, 6,101, 20,207,202, 76, 72, 72,148,120, 94, 46, 8, 35, 48, 70, 26,110, 20, 18, 52, 65,201,251,
-107,167,192, 34,148,130, 36, 60,139, 55,175,137, 25,254,197,136,210, 84, 16, 15,200, 14, 0,196, 21,154,112,203,129,151,249,109,
-151,130,223,229, 64,161,131, 4, 37,182, 24, 74,145, 72,129, 68,157, 67,250, 78, 16, 20, 19,243,212, 4,162, 22, 85,135, 66,196,
-204,160, 40, 8,155,134, 81,251,158,144, 16,161, 74, 35, 14,203, 41, 40, 70, 81,152,245,134, 34,180,208,174,112,166,161,181,225,
-249, 99,211,132, 14,229,105, 84,117, 40, 73, 72,241, 58,238,225,162, 56, 37,232, 57,132, 24, 1,136, 10,233, 86, 74,245, 50,205,
- 72, 23, 90,236, 66,228, 61,190, 11,168,161,204,104, 20,199,108,232,226,245, 4,147,244, 93,144, 40, 52,125,115, 67,186,230, 40,
-175, 21,199, 47, 34, 98,190,199, 34,131,141, 11, 17,239,146, 33,190,242,120,229,241,114, 87,174,245,209,140,154,197,133,197,241,
-120, 60, 63,191, 48, 26,141,252,201,174,107,183,182, 38,147,201,214,250,250,122,206,249,111,125, 65,163,209,232,150, 91, 78, 94,
-127,195, 13,215,188,234,154,212, 20, 76,144, 16, 13, 59, 43, 37, 15, 84,149,228, 67, 15, 61,116,223,247,254,250,219,223,254,246,
-212, 27, 60, 47,227,130,126,250,103,222,121,226,196,137, 81, 51, 98, 69, 32,135,144,221,108,229, 88, 43,124, 17, 73, 41, 65, 49,
-157, 78,239,253,206,119,254,244, 79,255,211,223,104, 65, 77,211,156, 56,113,226,174,187,126,154, 53,119, 29, 38,218,165,164, 31,
- 86,248,179,149,253,108,105, 15,168,234,133, 11, 23, 62,251,111,126,103,125,125,253,199, 91,208,218,218,218, 93,119,221,117,197,
- 21, 87, 57,102, 52,200,166, 7, 47, 26, 22,246,131,239,207,187, 38,207, 78, 69, 82,147,158,124,226,137, 47,124,254,243,207, 62,
-251,236, 75, 90,208,123,223,251,222,133,133,165,226, 62,183, 87,248,125, 37,223, 23,209, 67, 41,149, 28,203, 11,103, 25, 2, 12,
-195,205, 68, 74,233,204,253,103,126,255,247, 63,247,226,205,241,191,255,147, 63,101,217, 40,204,204,181,106, 46, 49,161, 0,125,
-164,136, 88, 68,146,248, 37, 66,108, 20, 48, 37,126, 5, 56, 91,130, 11,226, 5, 34,178,111,223,190,183,191,227, 29, 95,255,243,
-175,183, 47,168,242,233,245,175,127,131,131,219,178,163,186, 47,229,124, 21, 89,169,243,133,219,192,137,231, 13, 65,229,141, 86,
- 52,225, 31,252,212, 91,154,209,104, 39,198,208, 47,232,117,175,127,253,236, 7, 15,190,200, 29,118,200,157, 63,198, 75, 77, 6,
-146,173,225, 55, 74,193, 42, 90, 10,143, 92,123,228,250, 27,110,248,230, 55,190,241, 60, 11,122,221,235,226,205,213,178,234, 23,
-158, 7,164,233,209, 53,118,153, 57, 23,217, 86, 64,169, 20, 94,158,107,197,101,226,111,138,112,117,101,245, 45,111,121,235,151,
-191,252, 63,118, 46, 72,163, 39, 52,219, 27,218,214, 39, 50,198,207,185,127,210,186,156, 55,183,186,233, 52,119,217, 58,231, 54,
- 88,124,209, 60,251,244, 86,144,191,139,150, 89,175,144, 45, 11,228, 95,124,234,211,187, 44,136,209,152,122,193,135, 13,218, 48,
- 52, 10,219,206,214, 55,186,182,179, 46, 71,245,238,119, 68, 95,188,103, 70,129,189, 83,224,159,145,189,159, 29,181, 62,169,170,
- 31,251,248, 39,182,111,217,109,183,222,182,187, 78,162,119,205,131,239, 16,145,182,181,245,205,174,234, 74,239,169, 36, 72, 23,
- 24,120, 10,175, 88, 89,160, 43,148, 30,191, 95,125,126,110,254,200,117,215,221,251,157,239,244, 11, 58,117,234,214, 93,133, 82,
- 47,226,168,123, 32,240, 68,206, 60,127,113,106, 21,194,175, 64,197, 16,125, 44, 69, 84,173,174, 74,182, 61, 72, 10,163,250,227,
-218,222,181, 11, 23, 46, 60,254,248,227,117,203, 6,139, 40,216,219,214, 52,111,108,230,141,173,188, 53,205, 82,114, 86,135,242,
-158,187, 48,157,180,214,101,118,217,114,203,174,179,174, 99, 54,118, 57, 7, 34,147,141, 38,217, 72, 19,154, 89,150,210,111, 11,
-101,100,209, 18,203,153,102, 70,251, 71,239,122,215,226,226, 98, 68,176,210,159,146,173,169, 61,248,232,214,211,231,219,245,205,
- 92, 34, 24, 68, 36,169, 46, 47,232,225, 3,115,199,174, 94,216,154,116,151, 54, 91, 0, 89, 37,169,154, 90, 42,247, 77,170, 16,
-210, 72, 3,116,176, 70,212,148,222,198,143,226,206, 27, 74,240, 70, 61, 69, 96,162, 98,166, 34, 29,249,129, 15,126,232, 95,126,
-250, 83, 34,146, 78,158, 58,181,185,101, 95,251,203, 11, 15,156,221, 60,119,169,109, 59,235, 75,119,208,107,221, 73,107,207,156,
-207, 15, 61,186, 41, 66,213,222,141, 15,252,113,175, 26, 1, 90, 68,169, 89, 94, 84, 42,135,158, 0, 81, 52,207, 81,131,102, 52,
-186,116,233,210,227,143, 63,150,166,163,163,247, 61,188,209,101,194,235,102, 68, 99, 76,122,176, 42, 42,154,185, 49, 86,151,213,
-171, 69,233, 81,217,242,129,210, 55,244, 2, 30,100, 56,104,171,120, 60,153,146, 12, 56, 99, 97, 38, 14, 42,220,120,226,196, 61,
- 95,254,114,106,246,188, 38,218,195, 33,217,114, 57, 12,234, 42, 8,132,123, 22,116,220,232,246,166,238,208,117, 22,189, 46,170,
-139,178,142,120, 78,129,148, 48, 40,199,103,214, 68,227,202,234, 74, 90, 57,240, 26, 9,112,173,116, 76,163,137,141, 64,145, 28,
-253, 4,247, 44, 36, 65,173,198, 74,109, 45,131, 44, 65,182, 55,118, 67, 70,101, 73,125,235, 23, 51,254,165,246, 8,174,190,250,
- 85,105,121,255,245,126, 71, 5,113, 17,128,142,246,244,226, 20, 81,112, 97, 78, 75,152,236, 87, 35, 97,202, 14, 45, 49,234,122,
- 25,134,199, 8, 42, 11, 99, 13, 40, 81,122, 52, 44,150, 30, 62, 3, 2, 73,123,246,191, 38, 10,244, 2,192,162,215,134,192, 99,
- 0, 38,213,241, 56,170,217,232,110, 74,191,113,181, 8, 29,108, 89,169, 73, 73, 85, 89,156,119, 50, 16, 95,160,137,225,202,215,
-148,221,118,102, 83,129, 17,104,131, 52,218, 28, 19,200,153, 68,144,121, 18, 73, 66, 9,243, 47,133, 81,163,103, 96,108, 72, 51,
- 53, 35,147, 46, 47, 52, 75,139,141, 2,102,172,208, 23,134,105, 3, 5, 74,154,121,131,182,113, 50, 26, 74,120,119, 36,195, 66,
-134,132,177,154, 77,206, 98, 48,117,176,144, 52, 83, 77,146, 40, 52, 97,114,252, 6,102,194, 6,164,176,225,252,184,185,108,101,
- 52, 26,121, 3,216, 42, 40,196, 30, 62,170,229, 62,181,108, 71, 90,222,119, 60, 80, 5,103,102, 4,244, 90,244, 59, 16, 82, 81,
-138, 38,225, 76,147, 26, 61,198, 61, 32, 53, 24,101,105, 33, 29,220, 55,183,178, 52,210,190, 61,240,188,237,175,254,173,128,136,
- 52,225,155, 40,132,133,154,161,207, 87,171,232, 50,232, 52, 87, 15, 78, 84,144,166, 26,216,147, 38, 53, 19, 35, 55, 51, 46,110,
-116, 63,124,186, 91, 91, 29,153,169, 67, 71,168, 61,201,112,115,142, 5,237, 88,147,115, 66,150,246,189, 26, 40,254,208, 1,215,
-138,232, 73,129, 16, 5, 42, 65,163,172,142,163, 15,146,140, 6,247,197, 13,187,184, 97,150,165, 51, 62,252,248,100,110,132,213,
-229,102,155,234,114,214,228, 41,197, 15, 23,111,144,150,246, 30, 43, 73, 94,241,136,225, 15, 3,188,174,153, 99,208,112, 66,242,
- 24, 22, 75, 93,230,133, 13,107, 59,127, 62,118,245,137,103,219, 39,159,107,175, 60, 56,174,139,161,204, 42,115, 85,110,246, 78,
- 53, 45,239, 59, 30,182, 77,214, 82, 48, 18, 33, 22, 56, 79, 10, 93,194,183,151,149,199, 33, 16,180,153,155, 91,174, 84, 14,115,
-151,168, 3,108, 78,237,129, 71, 55,151, 22,210,234, 82, 34,135,124,176, 65,205, 89,158,243,159,210,242,218,113, 9,104, 31,225,
-103, 2,241,166, 64, 80,129, 69,176,242,101,189,190,247,245,116,217,166, 93,112,158, 29,211, 46,184, 45, 66,140,192,143,158,158,
-254,224,169,201,225,125,227,166,209,153, 96, 33,156,205, 3, 5, 34,105,121,239,177,242,179,183, 92, 52, 36, 16, 30,189,196,192,
- 88, 39,138, 91, 6, 69,114,199, 46,135,143, 6, 5,234,203, 41, 6,168,129,136, 82,209,182,242,208,227,155,207,158,239,174,216,
- 63, 46,122, 16, 9, 90,229,192,120, 31, 37, 45,174, 29,173,245, 64,233, 66, 80,226,202,126,223,101,255, 28,204,142,142,140,152,
- 49, 59,173, 58, 0,145, 2,173,178,230,175,145, 60,132,179, 23,217,220,202,103,206,110, 94, 88,207,151,173, 52,227, 70,139,209,
-245, 70, 15, 32, 45,175, 29, 11, 58, 78,224,172, 82,228,222, 35,173,172, 44, 76,169,248,188,100,227, 0,107, 47, 66,101,237,181,
- 97, 38, 69,138, 76, 66, 32,114,105,203, 30,250,193,214, 35, 63,218, 50,147,149,165, 52,106,180, 87,233, 97,107,161,160,181, 85,
- 11,100,128,216,135,202, 74,208,126,196,156,142, 37, 34, 84,150, 60, 78,252,167,248, 13,244,134,143, 95, 4, 80,138, 64,251, 69,
- 71,131, 78, 27,197,194,124,186,234,224,252,193,181,241,158,165, 6, 7,142,222, 81, 57, 81,145,147,123,191,134,165, 39,211,155,
-168, 72,165, 53, 5,133, 22,197,179,160,118, 97,164,231, 45,213,190,151,247, 5,161,197, 30,130,205,234,111,246, 54, 72,109, 80,
-213,252,190, 56,236,248,192, 48,247,168,177,234, 78,155, 72, 22,113,104,219,127,157, 9,240,132, 63,231, 77, 10, 43,153, 35, 41,
- 2,231, 22, 5, 91, 43,146,151,240,190, 66,130, 16,138, 80, 49, 68,176, 93, 24, 65,208,179,178,186,120,166,172, 44, 58, 10, 2,
-111, 91,176, 39, 14, 4, 14, 82,156,103,100, 72,126, 97, 99,216,158, 12,111, 59,140,201, 85,145, 81, 6, 73,244, 95,156, 19, 85,
-224,123,212, 14, 12, 34, 39, 25, 66,247,197,141,153,183,103,100,104, 48,238,229,139,172, 10,254,229,138,205,190,100,172, 9, 57,
- 2,144,240,196, 78,163, 9,236,172,177,200,188,188,181, 26, 20, 73,113, 10, 87,108, 94,168, 55, 35, 73,243,106,148,181, 91, 32,
-194,232,188,148, 44,170,190,195,162,123, 67, 68, 55,163,255,103,167,151,185,144,148,168,121,129, 91, 46,197,170, 56, 41, 98,254,
-193,189,225,211, 34,147, 6,197,172,212,173,125, 89,132,210, 49, 21,235,201, 31,194,210, 40, 5,165,250, 50,175,133,221, 75,149,
-136,229, 9,132,153,235,111,196, 77,138,149, 73,149,112,214, 38,198,248,146,162,169,241, 97, 21,147,132, 4, 44,229,111, 46,254,
-158,180,112, 64, 22,120, 19,136, 94,103,195,105, 71,217, 4,211, 90,176, 88, 4, 69,127,151,149,254,142,245,153, 1,106,153, 22,
- 77,186, 40,239,195,213, 88, 8,161,202,200, 5,236,214, 31,254,155,102,181, 42, 96,209,123,239, 33, 69,212,212,200, 9, 44,172,
-206, 4,168,243, 31, 96,124, 42, 11,117,113,128, 18,151, 68,165, 22,176, 8, 87, 16,194, 29, 48, 38, 36, 82,166,194,140, 23, 41,
-253,189, 72,100, 16,221, 91, 8, 84,130, 31,233, 59, 45, 16,179, 82, 56,122, 1, 30, 54,103,176,194,182,172, 69, 71, 49,183, 96,
- 93, 74,161, 39, 19, 65,185,116, 7, 83,118,184, 84, 62,197,168,132,219, 74,180, 87, 26,102,175, 60, 94,121,188,242,248,187,210,
-111,125,161, 75, 0,203,123,246,172,236,217,179,180,180,188,122,217,234,218,222,181,213,203, 46, 91, 93, 89, 89, 92, 90, 94, 90,
- 90, 24,143,231, 60, 11,148, 25,192, 76,106,214,217,117,221,230,230,198,133,139, 23, 46, 94,188,244,228,147, 79, 92,186,120,233,
-252,133,243, 23, 47, 92, 56,119,238,220,197,139, 23,255,238, 9,104,113,113,241,216,241, 87, 95,121,229,149,135, 14, 30, 92, 93,
-189,108,113,105,177,105,154, 29,120,222, 0,168,219,241, 33,219,168,180, 3,122,111,143, 88,213, 71,215,117, 27,235, 27,231, 47,
-156,127,252,241,199,206,220,127,255, 3,103,206,116, 47, 83,231,251,101, 19,208,193,131, 7, 79,158, 58,117,211, 77, 63, 49, 55,
- 55,142, 25,131,151, 16,252, 80,193, 3,200, 0,151,138, 95, 43,199, 13, 81,168, 23,246,222, 64, 82, 69, 94, 40,125,211,200,185,
-157,165,122,246,236, 35, 95,185,231,158,211,167,239,179,151,113, 42,245,165, 8,104,121,121,249,208,161, 67, 55,223,252, 19,199,
-142, 29,215, 38, 41,148,181, 49, 60,192,185,182,201, 8,187, 42, 77, 63,107, 50, 3, 95, 99,182,225,254,188,223,103,167,230, 80,
-201,133,131, 22,131,119,225,159,123,238,185, 63,251,159, 95, 61,125,250,244, 51,207, 60,243,183, 34,160,131, 7, 15,158, 56,113,
-226,200,145, 35, 7, 15, 29,202,217, 80,144,230,153, 22,146,188,144,218, 96,134,154, 62, 3,205,207,160,189, 51, 77, 53,217,133,
- 72,191,131, 12,240, 98, 79,162,112, 21, 85,147,138,224,236, 35, 15,127,235,155,223,188,247,187,247,182,109,251,242, 8,232,238,
-187,239,158, 76,219,153,142,238, 16, 37,125, 17,201,204, 82, 30,134,119,187,237,201, 93, 94,182,141,182,241, 2,170,180,141,186,
- 48, 52,195,106,125,195,201, 74, 0,152,108, 77,190,242,149,123,238,185,231,203,127, 83, 1,125,240, 67, 31, 30,212,217,124,126,
-125,217,225,121,134, 52,153, 89,185, 12,155,169, 59, 84,105,214, 8,119,240, 90,250, 17,141,109, 76,142, 23, 87,177,242,199,199,
- 38,162,231,152,218,182,253,163, 63,250,131,211,167, 79,255,191,205, 63, 5,157,161,140, 52,176,178,247,100,251,215, 14,145,113,
-155,208,134, 74,183,141, 98, 49,108,248, 14,245,116,160,161, 67,234,253, 96,218,165,194,254, 28, 60, 63,216,198, 97,155,169,212,
-240, 78,167,177,248, 85, 85,111,185,229,228, 29,119,220,121,248,240, 21,143, 61,246,131,157,103, 61,188, 8,159,140,102,220,113,
-143,187,247, 31,118,181, 44,238,248,109,248, 36,119,125,182, 52, 74, 11, 0, 99,180, 40,234, 75,224,211, 25,107, 42, 12,128,120,
-178, 64,113,206, 24, 45, 35, 63,222, 98, 10, 4, 51, 51, 71,207,209, 59, 55,154,145,111,184,241,134, 19, 55,221,120,225,194,165,
- 63,254,226,127,120,224,129, 51, 47, 85,131,110,123,237,235, 88, 6, 80, 75, 67,119,200,182,216,241, 68, 45,172,235,110,178,239,
- 36,114,216, 10,158,189, 70,255,100,129,252,114,102,155,205,231,148,131,155, 49,104,251, 13,251,129, 40,205, 11, 72,143, 93,248,
-173, 71, 55,211,138,120, 29, 38,148, 94,179,134, 91, 76,227,120, 52, 58,117,234,214,183,190,237,246,179,103, 31,121, 41, 60,175,
-244,218,219, 94, 59, 52,142, 98, 55, 3,210,208,144,255,179, 27, 75,103,183,166,239,172, 42,114, 70, 63,115,102,219,218,180,181,
- 54, 91,118,142,239, 80, 42,129,127, 58,141, 25,125,203,125, 24, 16, 67, 18, 61, 94, 92,219, 57, 69, 34,168, 19,237,113, 39,168,
-140, 58,111,240,202,173,183,222,250,198, 55,190,233,201, 39,159,124,250,233,167, 95, 80,131,110,123,237,110, 78,152,187,231,196,
-179,175,236,221,237, 0,228, 28, 6,244, 58,155,236,144,107,219,217,214, 52,111,181, 57,119, 78,214,137, 27,178,194, 54,151,254,
-230, 2,179,196,204, 39, 15,250,107,181,155, 83, 6, 81, 3,227, 66, 52, 73, 7,100,128, 2,163,206,222,149,101, 27,141, 70, 39,
- 79,158,186,241,196,137,239, 63,248,224,243,249,166,116,235,109,183,245,136,116,255,181,171, 35,226,160,175, 93, 9, 96, 47,158,
-143,147,108, 59,110,108,182,155, 91,214,117,133, 19,206,225,247,248,161,206,199, 81, 6,179,114,148, 65, 91, 20,149, 93, 82,206,
-189,232,201,226,168,147, 85, 67, 60,122,232, 2,103, 56,125,142,216,218,158, 61, 43,127,239,205,111, 94, 94,218,115,255,253,167,
-119, 17,208,169, 83,183,190, 56,195,139, 5,110, 43,172,140,104,228, 13,140,178,186, 25, 14,184, 41,126,223,155,147,124,113,189,
-155,180, 57, 91,249, 87, 43,228,249, 1,247,221,141,194, 10, 18, 43, 51,163,247,101,110,170, 55, 87, 22,198, 31,139, 61, 57,162,
- 57, 8,127,197, 15,233, 48, 60,202,160, 39,203,158,120,127,229,149, 87,190,237,109,183,127,239,123,127,125,233,210,165, 25,211,
-249,197,247,188,103, 23,107,138, 33, 2, 78,166,220,156,228,245,205,188,190,105, 91, 83,107, 91,118,214, 91, 89, 2,154,145, 46,
-140,117,113, 62, 45,204,233,194,188, 46,205,167,241, 40, 24, 29, 34,210,117,188,180,217,109,108, 89,229,178,160,212, 10,128,168,
-162,140, 4, 70,193,159,226,151, 50,241,164,253,148,167, 51,105,181,175, 54, 6, 9, 99,207,137, 99, 41,246,250,204,146,144, 84,
- 35,221,110, 9, 84,157,139,242,143,249,250,159,127,253,191,254,151,255,220,135,249,193, 12, 34, 85,100,125,203, 30,123,106,242,
-196,179,237,230,150,181,153,189,207,155, 41,165, 42, 33, 4, 59, 34,184, 52,138,241, 88,247, 44,166, 67,107,163,185, 17, 38, 93,
-204,168, 20, 1, 65,235,156,157, 49,126, 53,168, 2, 6, 83, 81, 51, 40,212, 68, 85,148,102,208, 68,129,154,247, 30, 76, 77, 1,
-173, 45, 68, 84,154, 93,136,170,176,115,203,234, 40,128,154,198,196, 75,105, 93, 68, 6,224,237,159, 92,168,195, 38, 66,229,155,
-222,248,166, 3,251, 15,252,201,159,252,177,131, 45,233,150, 91, 78, 78,167,118,246,137,173,239,222,191,254,189,255,179,254,240,
-227, 91,207,156,111,167,173,183, 58,234, 65, 25, 69,233,163, 93, 95,187, 13, 46, 44,162,223, 45, 49, 97,151,185, 53,181, 54, 91,
- 28, 88, 96,245, 0, 11,103,251, 74,182,146, 59,136,143,179,212, 3, 51,104,195,200,201,158,196, 59,120, 50, 78,196,232, 35,104,
- 92,103, 72,106,238,109, 92, 53,232,119,125,226, 25,109, 69, 12,179,205,234,254,205,108,255,254,253, 55,221,116,211,125,247,221,
-183,181,181,149,158,154, 30,121,240,209,205,167,207,183,109,222, 70, 3,230,108, 49,197, 24, 82,234,153,116,229, 68,147, 50,234,
- 22, 59, 70,136,200,226, 60,150, 23, 85, 81, 28,176,183, 50,135,100,213, 56,255, 67, 42,163,184,182,239,130, 53, 87,250, 40,149,
- 46, 57,224,221, 85,254,157,231,185, 61,169,154,236,251,128, 34,226,214,217, 39,108,179,209,122, 27,123,125,192, 78,226,194,194,
-194,235,223,240,134,239,222,123, 47,174,184,225,103,119,175,204,135, 87,155, 45,175,250,180, 13,101, 10, 23,101,160, 17, 34, 34,
-163,132,213,229, 52, 55,134,150,145,191,234, 4,220, 13,233,224, 87, 45,179,195,241,171, 34,252,142, 34, 85,215,163,170, 42, 49,
-100,128, 24, 58,173, 87,219, 86,206,186,173, 41,124,206,182, 7, 51,103,144,186,250,194, 25, 92, 96,224,158, 0, 77,202,204, 70,
-184, 19,230,226,246,250,179,167,117,199, 38, 87,118, 73, 97, 78,248, 40,155,145,128,162, 73, 2, 97,206, 78,208, 15,127,131, 50,
- 95, 8, 8, 96,131, 81, 6,170,185, 23, 16,247,201, 9, 4, 68, 85, 77, 9, 72, 82,133,250, 88,175, 40,232,210, 25,188,189,208,
- 73,253,248, 64, 0,144,148, 52, 37,159,206,156, 77, 90, 89,137,152,195, 98, 71,250, 17,199,202, 67, 34,141,162, 73, 27,235,171,
-198,210,120,151,126, 50,173, 38, 59, 65,160, 0,203,147,232,187,239, 67,174, 24,169, 34,170,240,195, 30, 16,227,188, 61, 47, 74,
-181,232, 81,120,232, 18,206, 92,173, 8,100,203,126,152,131,153,170, 40, 96,113,176,152, 32,169,250, 0,116,141,128,113,116,134,
- 0, 64, 22, 38, 29, 53, 50, 30,105,210,186, 95,236,241,185,114, 92,158,148,126, 51, 7, 4,202,138,115,246,195,218, 98,146,165,
-129,183, 67,119,240,191, 56,147, 4,150, 98,167, 14,223,247, 32,135, 21,137,199,120,163,167,107,217,226, 51, 81,135, 66,133,234,
- 4, 3,176,140, 49, 51,199, 84,189,168, 87, 22, 64, 82,152,133,103, 45, 49,190,140, 95,219,204, 92,183, 42,212, 66, 88,227, 70,
-199,227, 52,110, 84, 19, 32, 50,156,232, 24, 12, 47,239,172,179,135,117, 12, 75,170, 21, 52, 34, 1, 76,165, 25, 12,163,244,249,
- 67,229,112,212,212,223, 48, 36,136, 20, 26, 27,250, 65, 8, 47, 27,253, 67,178,149,232, 91, 6,108,193, 58, 55, 43,101,188,219,
-117,129, 57, 76, 44,244, 40, 27, 21, 8, 1,121,188,135, 66, 69,251,233, 29,113,175,212, 52, 24,143,211,252, 92,154, 27,197,193,
- 10,197, 7,148, 92,104, 71, 10,178,131, 5,184, 67, 45, 42,104, 46, 2, 82, 5,141, 73,207,220, 30,158, 50, 80,147,140, 18,208,
- 33, 85,100,144,170,187,133,185, 24,116,133, 96,219, 68,112,169, 76, 95, 63,251,174,146, 13,233, 51, 10,213, 58,204,157,142,133,
-127, 76, 10,243, 23,184, 92,224, 34, 67, 82,104,131,241, 40, 45, 46, 52, 11,115,169,105, 92, 44, 17, 25, 81, 82,182,186,105,165,
-176,173, 7,145, 84,203,154,253, 83,105,100,197, 19,177, 76, 94,211,114,131,210, 20, 96, 33, 45,245,202, 82,102,218,221,198,192,
- 26,179,234, 55,147,194,102,100,145, 60, 69,204, 25,113,197,147, 69, 34, 87,168,124,133, 91, 75, 56,211, 23,225, 98,172,120, 73,
- 11,159, 77,104,148,235,109, 38, 5, 7,247,206, 29,218, 55, 55, 55, 6,203, 38, 90,112,171,170,239,221, 85, 55,250,144,190, 43,
-126, 85, 57, 11,181,226, 7,251,131,178,112,249,171,239,218, 94,111,178,175,193,217,179,250,235,223,196,204,203, 48,168,180,133,
-148,164,210,164, 20, 28,155, 30,247, 26, 56,203,218,146,168, 3, 49,129,135, 73,153,245, 15,102, 77,219,201,164,181, 46,163,226,
- 20,154,176,111,101,116,252, 85,139,123, 87,154,221,128, 94,236,232,170,108,111, 44,245, 28,196, 29, 51,149, 69,225, 7, 21, 73,
- 74, 77,161,128, 86,231, 52, 4, 21, 10, 25, 45, 48, 4, 11, 3, 41,167, 71, 48, 78,163, 43,250, 83, 90, 94,133, 46, 37,128, 9,
- 0,115,102, 95,207,234, 15,102,153,122,205, 32, 16,228, 56, 11, 67,218,204,206,232, 69,159,243, 37, 81,142,104, 0, 96,102, 79,
-157,155, 62,249, 92,155,146, 28,222, 63,190,254,154,197,249,185, 52,136, 43,218, 35,108,206,141,162,104, 9,246, 78, 11, 3,234,
- 25, 18, 81,187, 89,156, 59, 65,237,207, 73, 40,231, 76,229,236,116,224,237,179,144, 69,100,181, 22,100, 33,156, 73,245, 61, 12,
-151,132,254, 40,136, 97, 74, 61,152,175,171,168,134,244,192,114,120,178, 58, 20, 74, 74,215,113,107, 98,155, 83,155,182,204, 17,
- 97,226, 38,200,254,140,152,160,105, 25, 47,172,103,167,132,102,227,194, 88, 71,105, 56,128, 87,170,121,108,195,235,156, 44, 84,
- 15, 44,232,117,115, 48,250, 48, 59,162,122,232,248, 59, 68,234,237, 87,170, 53, 49, 76,154, 81,156,244,246,108, 27, 65, 51,236,
- 17, 51, 68,130, 63,160, 28,207,168,187,176,156, 72,199,114,166, 34,204,216,229,194,234, 35,182,125,116, 25,240,168,113,106,166,
-251, 86, 9, 80,227, 49, 14,174,205, 93,115,249,220,190,213, 81,129, 19, 74,106,204,218, 91, 26,150,243, 59,218,224,187,156, 55,
- 5, 28, 58,250,142, 30, 47,192, 12,223,156,210, 11, 25,168,104, 66,141,131, 50,204,147,102,174,224,131,182,229, 4,158, 97,167,
-116,208, 44,162, 0, 52,233,172,247,139,125, 88, 41,211, 93, 82,204, 75, 56, 64, 54,128,126,146, 32,106,141, 18,165,133, 73,177,
-103,169,185,246,240,252, 21, 7,130, 49, 62,184,116,239,103,130,201, 60, 91,167, 96,231,156,247,129, 99,111,175,238,191,128,120,
-197,127,246,100,255,161,188,106,252,143, 91, 17,204,180, 47, 42,255, 23, 40,131, 85,253,171,122,167,111, 66,230,242, 89, 53, 94,
- 86, 52,130,210, 31,249, 66,214,163,169, 80, 45,111,112, 96,113,137, 29, 40,132,124,148,128, 1, 85, 57,176,119,116,228,138,133,
-181,149,166, 73,129,252,176,186,180,193,150,148,230,219,236,144,183,106, 19,140,211,202,119, 68, 95,115, 85, 98,120, 89,135,213,
- 76,146, 53,215,134, 13,202,155,216,133, 58, 95, 91,246,216,130, 61, 41, 0,196, 1,144, 64, 66,203, 73, 47,145, 73,244, 3, 62,
-133, 9,237,185, 55, 10,234, 88, 69, 4, 1,253,163,203,140,137, 51, 24, 45,198, 79,130,200,106,242,212,179,237,147,207,182, 70,
-105,146,238,221,211,236,191,108,180,119,165, 89, 93,110,230,199,169,240,231,135, 88,127, 33,125,250,109,152, 53, 37,129, 41, 59,
- 28,159, 51,232, 90,213,177,187, 50, 35, 35,232, 61,184, 5,107,180,202,104, 0, 85, 5, 7, 90,226,240, 28, 79,178,140,125,209,
- 82, 56,214,131, 27, 15,224,167, 31,164, 99,156, 32, 90, 14,245,169, 3, 35, 38,253, 57,151,209,252, 41, 67, 20, 28, 22,145,126,
-182, 85, 2,104,124,230, 66,251,204,249,232,217,167,132,249,113, 90,152,211,213,229,102,101,185, 89, 93,106,150, 23,211,104,228,
-181, 74,239, 60,154,190, 97, 87,206,168, 47,252,255, 50, 68, 55, 48,113,231,214, 22,118,240, 96,230,172, 12, 47,132,252,250,233,
-240, 8,175,206,160, 21, 49,244,106, 22, 3, 79,113, 65,115, 77,213,184,234, 41, 0, 0, 3,116, 73, 68, 65, 84,163, 22, 19,129,
-184, 58,160, 15, 71,102,131,161, 97, 26,225,149, 96, 47, 14, 63, 20, 39, 34, 68, 76,251,163,223, 68,131, 21,220, 87,196,178,108,
-108,118,235, 91,120,230, 66, 23,130, 47, 38, 6,149, 20,112,129, 52, 70, 27,120, 94,148,122,196,162,112, 10,149,183,216,178,234,
-120,131,150, 61,200, 21,201,129, 37,134, 99, 48,195,204,248, 81, 57,240,183,208,195,251,249,148,240, 43, 6,243,212,107,118, 37,
-136,115,104,225,125,216, 50, 92, 49,104, 86,246, 8, 15, 81,206, 14, 2, 88, 63,187,116,127, 96,126, 4, 43, 64,175,112,216, 27,
-123, 40,176,151,241,116,177,162,169, 16, 16,139,169,148,128, 85, 15,164,171,187,238,176, 93,129,129,164, 76,238,115, 48,181,143,
-225, 28, 24,177,163, 67, 81, 57, 84,140,217,129,114,193, 80, 77, 63,226, 1,131,115,137, 37,220,205,204, 62,248,115, 54, 28,184,
-245,225,198, 58, 88,134, 24,107,240,255, 19, 64, 63,104,224,110,194,232,199,255, 17, 44,183,234,214, 10, 13, 27,136,193, 44, 54,
-253,238, 21, 41, 59, 27,188, 88, 65,109, 20, 80,172, 70,196, 2, 18, 15,143,211,171,219, 59,211,106,220,222,100, 44, 19,238,172,
-242, 43, 1,161,204, 0,120,201, 71,120,101, 41, 82, 73,230,101,167,157,223,142, 62,169, 67, 15,223, 73,204,128,214,121, 46,235,
- 7,169, 81, 64,208,122,236, 48,122, 25,149, 32, 72, 14,103,247, 72,109, 88, 39, 32,251,140,185,244, 7, 34,122,150,132,180, 74,
-138, 21, 90, 43,254,165, 66, 12,216,193,168, 26,180,149,193, 25,241, 69, 0,173,206,190,198,172,176, 59,131, 15, 56,132, 2,148,
-244,192, 10,246, 85, 7,226,172, 2, 85,172, 29, 39,169,195,105, 84,212, 89,192,162,154,240,255,133, 0,251,137,130, 72,142, 93,
-214,245, 3, 96, 13,251,184, 94,133,135, 26,206,124,157, 22,105,135,149, 34,167,151,166,212, 67, 25,103, 12,109,166,217,223,207,
-246, 85,125,243,139, 14, 32,219,210,180,137,153,157, 26,201,165,250, 64, 45, 99, 58,125,226, 82, 42,116, 8, 2,138,194, 96, 70,
-175, 60, 3,139,161, 64, 41, 35,204, 37, 89,170,147, 8, 81,184,201, 64,203,203,148,124, 19, 97, 18,131,138,165, 32,180, 37, 52,
-133,123,160,247,166,138, 49, 85,103, 37,195, 49,162, 74, 46, 24,102,217,245, 80,203,222, 93, 21,141,159,241, 12, 14,134,232,240,
- 84,153, 62,235, 48, 97,159,232, 87, 85,170,120, 21,100, 80,118,163, 76,241,244,177, 33,148,203,243, 79,159, 92, 43,165,112, 37,
- 75,244, 67,149,172, 9, 96, 83,231,208, 66,129, 75, 49, 36, 5, 84,238, 51,150, 58, 64,103, 81,194,135,150,149, 36,126, 87,250,
-148, 84,119, 53,115,202, 1, 57, 60,156,188, 4,109, 31,157,114,205,178,154,195,200,224, 38, 2,183,146,130,118, 85, 91,146, 58,
- 18, 42,125,109, 88, 71, 48, 67,109,202, 91, 81,252, 17,163,153, 87,203,154,210,201,175, 55,212, 48,172, 93,202,152, 58,130, 72,
- 83, 75,114,151, 20, 42,131,192,234, 33, 80, 98,245, 0, 18, 86,135, 58, 3, 55,201,182,191,217,207,213, 32, 12, 99, 80,205, 50,
-132, 35,177,154, 26, 92,138,241, 91, 5,193, 77,252,127, 19, 82,231,159, 4,136,193,119, 72,127,175, 69,120, 97, 76,225,206,165,
- 15, 87, 67, 59,235, 67, 73,196, 53, 66,208,184, 44,122, 58, 69, 28,102, 58, 60, 39,176,248, 50,179,254,184,132, 25, 73,197, 61,
-187, 5,197,240, 19,118,161,206,148, 34,168,247, 95,165,186,234, 39, 26, 7, 67,200,220,230,152,234, 73,247,126,195, 53, 17,148,
-190,198, 55, 17,141,113,193,194,174,130, 40,123, 97,133,140,226,255,129,210, 39, 45,226,179,200,210,227,176, 33,227, 70,122, 47,
- 93, 78,237,232, 19,247, 33, 83, 62,166,125,195,113, 64, 6,163,239,213,163,247, 32,255,208,212,172, 66,144,152, 37,204,128,125,
-178, 80,245, 14,149,244,132,254,176,164, 34,247,254, 32,202,122, 40,126,137,136,213, 54, 88, 90, 60,213,253, 84,111, 84,171,221,
- 8,130,195,151, 13,199, 97,217,175,242,255, 2,210,193, 8,215, 78, 23,231,219, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/splash.png.c b/source/blender/editors/datafiles/splash.png.c
deleted file mode 100644
index 2c4d6b0c834..00000000000
--- a/source/blender/editors/datafiles/splash.png.c
+++ /dev/null
@@ -1,7181 +0,0 @@
-/* DataToC output of file <splash_png> */
-
-int datatoc_splash_png_size = 229594;
-char datatoc_splash_png[] = {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 1,245, 0, 0, 1, 26, 8, 6,
- 0, 0, 0, 8, 90,206, 70, 0, 0, 10, 79,105, 67, 67, 80, 80,104,111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,
-102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61,247,222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,
-139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81,193, 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81,
- 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251,225,123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,
-157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, 30, 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0,
- 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34,192, 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,
-135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, 8,128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152,
- 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, 39,127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21,
- 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86,138, 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48,
- 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, 0, 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,
-132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0,120,153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87,
- 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194,121,153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,
-224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45,234,191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,
-225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, 37,238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,
-160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217,229,228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,
-192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50, 93,129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132,
- 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98,185, 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,
-137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, 53, 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39,
- 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3,128,104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102,
- 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, 0, 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193,
- 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,100,128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96,
- 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, 14, 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200,
- 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133,248, 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145,
- 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, 92, 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,
-178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208,100,116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,
-231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51,196,108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,
-172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, 4, 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88,
- 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3,132, 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98,
- 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67,196, 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210,
- 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147,201,218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,
-195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, 83,226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152,
- 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173,161,182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73,
- 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186, 17,221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,
-244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24,103, 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55,
- 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145,202, 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,
-170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, 83,227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,
-169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, 89,195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11,
- 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177,205,217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57,
- 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248,156,116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226,
- 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, 72,171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187,
- 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157,231, 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,
-107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128,158, 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,
-250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60,197, 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,
-165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, 15,140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38,
- 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, 59, 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,
-231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182,184,101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,
-165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, 17,167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,
-169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98, 23,103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61,
- 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, 58,222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207,
- 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71,103, 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62,
- 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210,245,157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,
-220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81,229,209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,
-181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, 97,239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222,
- 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223, 67,127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,
-137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219,101,246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,
-229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206,105, 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12,
- 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53,119,209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79,
- 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, 63,198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46,
- 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227,123, 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169,
- 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, 22,140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,
-209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,236,145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,
-188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58,189, 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,
-230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149, 7,201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90,
- 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171,158, 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,
-194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, 57,178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,
-184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, 77,107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,
-133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134,157, 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,
-120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151,
- 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47,151,205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,
-201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221,181, 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,
-188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, 73,251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,
-109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, 29,210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,
-239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228,233,247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211,
- 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, 91, 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31,
- 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147,103,242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,
-123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255,139,231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,
-184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199,187,156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,
-233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57, 61,221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,
-253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, 65,217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,
-119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15, 67, 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226,
- 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254,203,174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,
-242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194,198, 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119,
- 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, 83,208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51,
- 45,219, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0,154,156, 24, 0, 0, 0, 7,116, 73, 77, 69, 7,
-220, 4, 26, 17, 37, 54, 89,161,235,246, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,189,123,184,110, 87, 93,223,251,249,253,198,
- 24,115,206,119,173,189,119,216, 33, 23, 18,238,225,242, 88,180,162, 36, 94, 16,139, 96, 55,167,199,123,233, 49,248,148,199, 43,
-167, 36, 94,122,144, 99,213,192,169, 85,218,199,138,212, 99,165, 96,149, 68,212, 90,107, 61,199,160, 85,171, 88, 32, 41, 94,224,
- 40, 98,138, 90,193, 90, 32, 4, 80, 2, 9,201,190,173,245, 94,230, 24,227,247, 59,127,140,119,101,175, 44,118,246, 45, 59, 9,
- 9,243,243, 60,235, 89,239,251,174,249,142, 57,199,156,115,141,239,239, 54,199,128,137,137,137,137,137,137,137,137,137,137,137,
-137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,
-137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137,137, 51, 71, 30,138,157,250,175,191,228,133,100,127, 25,
- 74,135,250, 27,248,251,255,238, 63,136,224,211,229,152,152,152,152,152,152,120, 24,137,186,255,198, 55, 63,159, 99,219,255,149,
- 35,219,206,254, 11,224,162, 11,133, 50,254, 71,198, 99,215,202,139,110,220,154, 46,201,196,196,196,196,196,196,185,161, 15,250,
- 30, 63,118,235, 38,183,223, 6,119,254,205,130, 15,255,213,156,219,110,157,227,225,197, 12, 7,255,220,127,251,165, 79,159, 46,
-201,196,196,196,196,196,196,195, 69,212,191,253, 29,191,205, 76, 95,201,190,110, 3, 33,114,231,199,140, 91,255,114,206, 50, 63,
- 9, 75,127,233,191,253,210,255,109,186, 44, 19, 19, 19, 19, 19, 19,103,143, 60, 84, 59,246,215,127,241, 87,176, 44,111, 98,229,
- 61,181, 44,232, 6,229, 9, 79,141, 92,248,232,142,186,122, 45,218,189, 66,190,242,245,171,233, 18, 77, 76, 76, 76, 76, 76,124,
-154,139, 58,128, 95,127,229, 83,216, 14,111,102, 89,159, 78,174,115, 66,128,203,159,172, 60,230,242, 1,203,127, 70,240,191, 47,
- 95,241,134,219, 30, 46, 39,211,221,175, 4, 14,174,223,222, 42, 34,183, 62,146,111,158,207,180,254, 78, 76, 76, 76, 76,162,126,
- 58, 97,248,177,207,221, 36,165,255,192,220,191,150,236, 75, 48,184,244,241,194,101, 79,152, 17,100, 36,149,175,150,191,119,253,
-219,206,179, 24, 93, 1, 92,113,134,155, 31, 22,145, 91,206,176,221,183, 1,135,214,111, 95, 33, 34,175,121,132,139,250,103, 84,
-127,207,211, 57, 19, 17,153,158,244,152,152,152,120, 64,136,247,123,144,122,251,243, 34, 31,237,250,147,254,241,248, 40,236,239,
- 28, 46,133, 75,129,163,203, 19, 70, 68,191, 95, 72, 43,129, 11,193,239,122, 57, 31,249, 72,207,150,253, 47, 24, 35,135, 63, 9,
- 27,251,150, 60,234,226, 68,237,222,234,255,229, 31,255, 32,253, 95,188, 90,158,255,187,229, 60,245,251,106,224, 71,207, 98, 32,
- 6,184, 17,184, 73, 68,110,152,110,155, 71,132,184,170,136,216,158,168,195, 55, 0,207, 94, 27,124, 7,129,158, 19,117, 39, 6,
- 44,128, 15, 2, 63, 37, 34,215,159,147, 21,125, 26, 65,119,247,207, 91,223,159,135,128,199, 2,151, 0, 35,240, 49,224,189,192,
- 59,128,223, 18,145,191,186,143,239, 95, 14,124, 33,240, 5,192,149,192,229,192, 69,192,163,129, 79, 2,183, 2, 31, 2,222, 2,
-252,242,238,115, 48, 49, 49,241, 25,236,169,251,171, 94,165, 28,184,249, 26,170,252, 83, 68, 46, 34, 4, 67, 4, 84,219,143, 8,
-132, 32,168, 66, 88,191, 87, 5, 93,127, 38, 2,178,179,173, 86, 66, 88,225,178,137,236,218, 54, 4, 48,148,161, 75, 72,253, 61,
-102, 92, 45,207,125,253,157,231, 97, 64,191,238,108, 68,125, 15, 55, 1, 47, 18,145,195,147,167,254,200,233,175,175, 45,183,179,
-224, 40,240, 66, 17,121,251,121,218,255,229,192, 79, 0, 47, 58, 67,227, 64,206, 67, 63,222, 7,188, 82, 68,126,115, 26, 10, 39,
- 38, 30, 25,156,123,245,251,163,110,254,110,208,159,166,112, 9, 38, 66, 37, 80, 37,180,223,235,215,133, 64,241, 64,246,246,122,
-244,192,104, 74,118,101,164,125,222,126, 58,114,221,135, 59,109, 10, 26,105,191,221, 65,197,200,117, 69,213, 47, 99, 46,255,195,
-111,254,174,103, 61, 0,231,225,166, 83,252,236,229, 16,240, 54,119, 63, 56,221, 62,159,209, 92, 0,220,236,238,223,112, 30, 4,
-253,179,129,247,156,169,160,159, 71,158, 1,252,186,187,127,221,116, 57, 39, 38, 30, 25,156, 83,248,221, 95,133, 98,254, 29,204,
-179, 83,115,166, 26,136, 72,243,251,165,249,255, 66,243,184, 17,230,185,110, 16, 20,125,244, 37, 16, 35, 84, 71,154,135, 14,106,
-237,119, 85, 80, 95,191,151, 29, 15,158,126, 72, 43, 4,168,140, 84, 14, 66,186,197,111,126,217,119,240,229,255,230,250,243,149,
-155, 20,145, 23,156,102,208,221, 9,215,239,228,225,175, 4,174, 1,166, 28,242, 35,147,191, 1,126,151, 22,162,126, 55,240, 17,
- 90, 2,233, 31, 0,255, 24,120,210,206,173, 3,252,146,187,191, 93, 68,238, 56, 71, 65,127, 10,240,118,224,226,245, 71, 35,240,
- 70,224,215,104,225,246, 79, 2, 3, 45, 20,255, 12,224, 57,192, 87,159,162,201,143, 1,239, 90,255,220, 2,220, 14,220, 1, 28,
- 3, 30, 71, 11,205,191, 10,120,250,174, 62,252,123,119,255, 2, 17,249,159,211,165,159,152,120,120,115,238,225,247,215, 61,231,
- 90,142, 47,223, 64,169,107,241,222,213,154,200,137,215,165,218,124, 68,101,255, 65,100,255,254, 19, 97,247, 16, 16, 13,160, 2,
-178, 78,149,171,180,144,187,106,107, 76, 35,125, 63, 91,177,179, 29, 65, 16, 81,134, 24,193,222,196,252,130,111,145,175,125,213,
-252, 28, 6,210,123,133,223,239, 43,148,185,231, 59, 87, 0,127,194,137,106,239, 91, 68,228,170, 61,219, 76,225,247,135,207,177,
-119, 34, 50,238,122,191, 5,252, 50,112,157,136,220,125,154,239,254, 24,240,189,187, 62,122,179,136,124,213, 57, 28,131,172,141,
-135,231,174, 63,250, 0,240,149, 34,242,254, 7,184,239,195,250, 94,254,236, 93, 31,255,107, 17,249, 39,211,144, 56, 49,241, 25,
-232,169, 3,200,203,222,121,189,255,235,103,221, 76,208,167, 98, 42,136,237, 42,184,209,245,235,186,162,219,124,246,106, 57,252,
-232, 70,154, 97,102, 77,180, 5, 48,195,199, 45, 36, 8,250,248,103,162, 23, 63, 21, 57,240, 24,100, 56, 0,101,133,109,223,137,
- 31,191,157,213,157,255,179,103,181, 5, 97, 6, 82, 65, 3,178,101,116,155,253,215,179,239,216,147,253, 45,223,251,101,242,247,
-254,239,237, 7,220,250, 17,185,213,221,111, 92,123,232, 59,222,250,249, 24, 96, 15,238,105,235,150,147,229,235,207,161,221,221,
- 21,254,231,244,184,217,249,104,227,193,232,239,158,227, 60,163,246,118, 11,250,250,253,190,179,184, 23,190,207,221,159, 67, 43,
-170, 99,151, 40,159, 45,223,186,235,187,119, 3,207, 23,145,191,126, 16,238,229,165,187,127, 63,240,219,187, 62,190,106, 26, 14,
- 39, 38, 62,131, 69, 29, 64,190,231,191,125, 96,237, 93,156,124,176,253,133,175,253, 92,150,229, 27,247, 5,167,152, 55,111,123,
-185,196, 87,219, 80,183, 9, 79,255, 59,196,171, 94, 76,120,242, 23,127,202,119,119,146,253,126,247,109,148, 15,222, 76,253,240,
- 59,145,208,129, 59, 46, 48,206, 71,186,141,238, 74,130,191,217,255,228,154, 67,114,213, 13,249, 65, 56, 95,231,229, 57,236,181,
-176, 93, 67,171,114,190,242, 36,127,191, 21,184, 1,184,225,190, 4,202,221,127,116,215,119,111, 20,145, 27,118,181,123, 13,123,
- 30,217, 91,183,249,154, 51,169,222,119,247,107,128,235,238,163,141, 83, 30,215, 3,209,223, 83,244,245,186,117,187,187,235, 27,
-110, 2, 94,240, 32,220, 11, 63, 4,188,117,253,122,243, 28,219,120,217,174,215,215, 61, 24,130,190,139,255,182,231,253,231, 77,
-195,225,196,196,103,184,168,159,114, 32,255,185, 23, 92,203,214,242, 13, 20,169,165, 58,158, 87,248,114, 14,101, 5,209,233,191,
-242,149,196,171,254,225,233, 13,135, 11,159, 68,186,240,127, 71, 31,243,185,148,119,191, 17,180, 54,201, 23,129,209, 70, 54,210,
-115, 57,188,241, 67,192, 15, 60, 8,231,107,183,120,156,147,119,233,238,135,128, 95,217,211,214, 94,174,160,165, 7,174,113,247,
- 23,221,199,115,242, 87,114, 34,244,125,211,250,145,172,235, 79, 17, 65,184, 2,184,222,221,175, 20,145,107, 79, 33,190,215,175,
-197,247, 84,199,117,181,187,191,224, 65,236,239,201,250,250,182,211,180,249, 64,243,174,221,183,233, 57,220, 7, 87,237, 18,210,
-187,128, 95,124,144,143,127,175, 17,252,201,105, 56,156,152,152, 68,253, 83, 7,171,235,191,122, 3, 91,188,158,109,127, 9, 85,
- 86,120,174,190,181,181, 65,201, 32,142, 36,232, 95,248,106,194,231,156, 72, 65, 30, 91,172,120,203,159,222,198, 91,254,236, 54,
-238,222, 90,144,130,240,183, 46,191,144,175,189,234,169, 60,235, 41,151, 1, 16, 30,255, 5, 72,183,159,252,142, 31,135, 46, 2,
-222,220,249, 69, 46,164,248, 79,253,237,255,231,191,147,231,255,196, 7, 30, 48, 35,165, 9,222,213,123, 60,194,179,109,227,234,
-181,192,237,230,150,117, 91, 59, 70,194,110,111,246, 10, 90,165,253, 11, 78, 51, 1,206,193,117,187, 59,158,245,141,235,118,119,
- 4,113,247,113, 95,227,238,183,222, 71,254,251, 71, 79, 34,232,187,219,218, 57,182, 43, 79,210,143, 7,171,191, 7,247, 8,250,
-225, 93,199,119,197,131,248,191,243,249,187, 94,215,115,248,254,151,239,122,253,159, 68,228,193,158, 18,249,153,123,222,255,233,
- 52, 28, 78, 76, 76,162,126,239, 65,252, 13,207,125, 26,171,173, 55, 83,244,169, 56, 11,234,220,201, 43, 48,131, 24,144,178, 77,
-122,206, 63,186,151,160,255,209,251,111,231,251,126,233, 15,184,245,147,199, 25,250, 68,138,138, 58,252,217, 71,239,230, 77,127,
-248, 63,248,154,171,158,194, 63,187,250,239,176,209, 39,244,210,207, 34,126,206,139, 40,239,249,121,216,127,233, 78,133,189,225,
- 2, 37,252, 27,224,171, 30,136,147,180,203,131,221, 45, 26, 55,156,101, 27, 87,172,219,216,225, 86,224, 90, 17,217,107, 28,188,
-102,143,119,187,179,239, 83,229, 60,175,219, 37,192,215,238, 13, 97,175,247,253, 43,187,196,243, 58,119,191, 87,168,123, 29,114,
-191,102,143,248,190,104, 79, 30,125,247,177, 29,122,136,250,123,221,174,246, 94, 33, 34, 55,158,228, 90, 61, 24,236, 46,148, 59,
-151,185, 19,190,112,215,235, 63, 88, 31,251, 69,180, 60,251,215,175,239,181, 3,180, 92,251, 7,105, 5,117, 63,127,158,234, 26,
- 34,247,158,167,193,128, 31,158,134,195,137,137, 73,212, 79, 12, 20,255,246, 75,255, 87, 22,254,235, 20, 34, 90,231,148, 17,106,
- 89, 87,180, 11,120, 69, 46,122, 60,241, 11,191,249,158,239,188,255,227,135,249,230,127,251, 22,238, 88, 20, 54, 54,103,228, 16,
- 72, 41,208, 5, 33,120,135,212,194,175,190,235, 3, 4, 85,126,248,197,207,107, 30,251, 83,159, 79,253,171,255, 2,117, 11,210,
-190, 38,236,181, 22,130, 28,242,223,127,249,101,242,220,215,222,126, 14,131,220,117,167,248,243,161,147, 8,216,201,196,233,116,
- 92,191,199,187,188,234,190,242,210, 34,114,211, 58,188,189,227,145, 94,233,238,215,156, 38, 31,126,147,136,188,232, 62,218,187,
-213,221, 95,177,110,111,199,219, 61,180, 54, 2,246,138,229,142, 96,190,224,100,199,183,235,216,254,228, 33,236,239,173,247,213,
-222,249, 40, 50, 60,131,251,229, 82,224, 43,118,125,244,230,115,104,230, 25,187, 94,255,249,250, 89,241, 55,210,102,127,219,205,
-101,235,159, 47, 5, 94,233,238,111, 0,254,201,217,122,246,238,174,180, 71,218, 62,159,246, 72,219,231,237, 18,244,239, 21,145,
-247, 76,195,225,196,196, 36,234,248,245, 87, 38,150,179, 31,102,229,223, 79,145, 21,161,172,168, 45,212, 78,218, 41,119, 19, 60,
-143,196,167, 63, 23,217,119, 98,204,122,197, 47,189,147,247,255,245, 81,184, 96, 31, 71,183, 10, 72, 37, 8,108, 4,225,162,205,
-200,193, 89,228,130, 11,246,241,235,127,252,126,158,247,217, 79,228,208, 51,159, 12, 33, 18,174,120, 46,229, 79,127, 1, 54, 15,
-128, 91,155,160, 38,133,142,108, 95, 7,188,225, 28,186,113,166,179,203,221, 64, 43,212, 58, 43, 65, 95,231,128,119, 27, 6,175,
- 56,157,248,136,200, 45,238,126,195, 46,177, 61,116,154,232,192,181,167,105,239, 38,119,191,133,123,135,186,119,142,239,234, 61,
- 81,136,215,156,234,248,118, 29,219, 53, 15, 81,127, 95,243, 96,136,247, 41,120, 39, 16,214,175, 51,240,221,231,208,198,133,123,
-188,246, 55,112,250,220,124, 0,190, 11,248, 60,119, 63, 36, 34,203, 51,184,247, 78, 53,151,195,123,214,215,230,173,211, 80, 56,
- 49,241,200,224,126,173,167,238,175,251,162,199,113, 60,189,147,101,253,126,178,207,145, 90,169,185, 13, 61, 81, 32,136, 16, 69,
- 36, 40, 18, 5,189,252,115,238,249,238,135, 62,113,132,223,249,211,143,192,198,236,196,179,233, 33, 80, 81,142,175, 42, 31,186,
-115,206,173,119,204,201, 46, 88, 8,220,252,223, 63,124, 66, 0, 46,122, 42,190, 56, 6,148,117, 8,222,161, 24,216,189, 66,154,
- 15, 4, 87,175,189,200,179, 13,241,238, 22,184,195,103, 49,127,252, 77,123,246,125, 95,220,114,134, 97,217, 91,238,227,152, 14,
-237, 17,216, 51, 57,190, 27, 31,162,254,222,250, 80,206,191,239,238,191, 14, 60,101,215, 71,175, 20,145,173,115,104,234, 81,187,
- 94,191,118,151,160,223, 12,124, 29,109,178,155,110,253,251,235,128,255,186,107,251,231, 0, 63,121, 63,187,242,139,192, 63,156,
- 4,125, 98, 98,242,212,219,224,246,250, 47,126, 14,243,122, 51, 89, 19, 81,230, 4,107, 94,179, 35, 20, 17,162, 56, 65,214,179,
-195, 85, 36,118,232,193, 39,220,243,253,219,238, 60,198, 98,158,225, 64,207, 61, 83,208,237,248, 20,170,224,206,145,173, 76, 30,
- 11,143,187, 32,114,124,121,162, 88, 87,246, 95,218,156,150,213, 54,204,246, 11,224,228, 2,145,103,186,191, 74, 69, 94,117,182,
-139, 84,188,226, 20,127,187, 98, 45, 82, 59,139,124,220, 83,253,125, 22,222,226,161,251, 16, 86,206,192,187,190,151, 7,124, 31,
- 5,100,103, 26, 57,184,245, 20,125, 60,171,182,246, 30,219,131,216,223, 91, 30,170,127, 22,119,255,169,181,192,238,240,123, 34,
-242,227,231,193,160,158,173,127,255, 11, 17,249,161, 61,219,221, 1,252, 38,240,155,238,254, 47,128,127,182,254,252,219,220,253,
-181, 34,242, 23,231,184,255,111, 2,190,105, 29,189,249, 54, 17,249,239,211,112, 56, 49,241, 25, 40,234,254, 43, 87, 7, 62,252,
-161,239,225,120,249, 87, 84, 25,233, 89,162, 38, 84,119,178, 9, 65, 58, 18,135,169,190, 73, 12,205,107,183,181, 27,226, 39, 22,
- 89,187,228,130, 13, 66,151,168, 6,184,112, 98,222,247,245,111, 23, 8,202,246, 60,243,225,229,146,254,153,187, 14,213, 43,120,
-134,178, 4, 61, 0, 94, 5,170, 83,253,114,126,231,174, 4,156, 85,190,241, 76,102, 66, 91,231,221,175, 91, 11,251,206, 35, 85,
-103, 58, 97,199,238,199,204,174, 88,207,196,118, 46,220, 87,132,224,254,134,162,207, 73,132,215,219, 94,249, 32,247,247, 33, 17,
-117,119,127, 45,240, 29,187, 62,122,159,136, 60,239,126, 52,121,156,123,135,224,223,118, 18, 65,223,123,159,254,160,187, 63,123,
-125,189,148, 86, 84,247,189,167,249,142,172,143, 63, 2,143, 95, 27,112,255,136, 54,207,188,174,175,213,187,221,253, 37, 34,242,
- 31,167, 33,113, 98,226, 51, 72,212,253,250, 43, 47,224,182, 15,190,137, 81, 14, 33,178, 96, 22, 64, 17,178, 57,171, 26,233,180,
-163,151,151,130, 95, 65,229, 21, 56, 75,180,133,223,201, 25,251,228, 7,208,199,127, 1, 0,127,235,177,143,230,139,158,118, 9,
-255,223, 95,222,217,230,131,119,105,115,191,123, 51, 2, 0,176,230,233, 47,239,222,230,105,143, 57, 49,190,251,177,143,193,234,
- 24,140,115, 95, 91, 4, 96, 56, 10,204,142, 63, 32,107,196,139,200,107,214, 94,228, 78,254,253, 76,138,215, 78, 38, 78,103,179,
-150,251, 67,193,225,243,176,237,195,169,191,103, 34,232,175,167,205,249,190,195,135,248,212, 71,194,238,175,168,191,238, 12,191,
-247,186, 93, 70,216,243,207,226,254, 45,235,227,254, 16,109, 33,154,235,105,147,231, 36,218, 18,179, 55,184,251, 31,138,200,135,
-166, 97,113, 98,226, 51, 64,212,253,199,191,240,153,220, 85,255, 51, 69, 30, 79, 10,115, 6,109,226, 57,154, 51,214,129, 65,150,
-204,228,107,229,255,248,227,183,248,143, 95,245,195,152, 8,130,180,202,119,129,168,248, 39, 78, 68, 10, 85,133, 31,120,225, 85,
-124,229,251,126, 11,150, 25,250,174,109,199, 90,212,141, 22,206,223,154,243,249,207,120, 44,223,244,101, 39,166,169,182, 59,254,
- 18,247, 12,117,108, 27,186, 3,166, 32,183,243,188, 39,141, 15,212,201, 90, 11,251,238,162,186,171, 57,203, 71,219,104, 33,240,
-115,125, 44,233,240,195,240, 30,123, 88,247,215,221,127, 26,248,246, 93, 31,253, 13,240, 89,107,145,188, 63,252, 53,240,196, 93,
-239,255,232, 12,191,183,123,187, 39,220,143,123,249,119,221,253,135,128, 31, 89,127,180, 73,155, 37,239, 91,167, 97,113, 98,226,
- 17, 44,234, 14,194,143,125,254, 75, 88,214,159,193,164, 48, 11,115,122, 21,220,157, 69,117,204, 55,217, 23,254,138,153,124,141,
-124,251,187,214, 11, 81,200, 7, 16, 7,199, 81, 17, 84, 96,216,160,222,246, 14,226,225,219,144,131, 79, 2,224, 43, 62,255, 73,
-220,240, 29,207,231,229, 63,251, 7,204,143,172, 96,232,219,218,235,238, 48,102,152, 47,120,214,103, 93,202,155,190,239,171,216,
- 28, 82,107, 58, 47,168,239,251, 85,164,235,219, 92,240,110, 96,214,188,244,232,239, 57,135,124,250,217,114,211, 46, 79,233,208,
- 57,124,255,134, 71,250, 66, 47,143,148,254,186,251,207, 1,223,182,235,163, 79, 0, 79,223, 59,111,252, 57,242, 23,180,130,183,
- 29,142,156,225,247,118,111,119,193,253, 60,134,223,222, 37,234,112,158,214, 51,152,152,152,120,232, 56,125,245,251,143, 95,117,
- 13, 89,223, 8,186,100,127,202,204,130,224, 56,219, 21, 84, 54,217, 8,191,198,197,242,133, 39, 4, 29, 24,120, 47,218,210,220,
- 64, 19,234, 24,161,108,145,223,241, 19,247,106,254,165,127,247,179,249,195, 87,127, 61, 47,255,234,191,205,147, 47,236, 25, 60,
-179, 79, 43, 95,242,180,139,248,201,239,252,114,126,255, 95, 94,205,147, 47, 61, 49,118,149,119,191, 17, 63,114, 27,164, 30,164,
- 89, 14,148,245,243,240,226,183,124,154,158,231,251,170, 58,127,184, 31,223,161,135,105,127,207, 68,208,127,121,143,160,223,185,
- 22,244,249,121,218,197,222, 25,220, 30,117,134,223,123,212, 57, 24, 2,247,197,222, 80,251, 19,167, 33,113, 98,226, 17,236,169,
-251,245, 87,110,112, 71,253, 17, 76, 70, 14, 4, 72, 34,100,119,230, 57,208,105, 79,210,127,197,144,127, 64,190,241,150,123,207,
- 35, 29,237,189,136,126,148,106,143,193,189, 14, 93, 88, 34, 64,191,143,229, 71,126,127, 40,239,124, 45,241, 57, 47,191,103,243,
-207,125,226, 69,252,196, 75,158,203,171,191,169,240,241,187,183,233, 82,228,242, 11, 63,117,141,140,250,190,223,160,252,249, 47,
-194,176,177, 54, 73, 66, 43,208,171, 38,120,206,168,255,214,131,112,206,206, 37, 63,188,187,160,236,144,187, 31,124,136,159,179,
-222,203,173,187,142,239,140,188,181,245,179,232, 15,215,254,158,174,111,191, 6,188,112,215, 71,119,173, 5,253,216,121,220,205,
-127, 6,126,138, 19,143,178, 61,123,253,217,233,120,246,174,215, 31,190,159,199,240,185,123,222,191,111, 26, 18, 39, 38, 30,201,
-158,250,130,139,112, 14,130, 20,204,157,121,117,230,165,163, 19, 97, 63, 47,146,239,254,163,235,228,218, 91, 62,101,117, 52,185,
-246,150, 57,189,188, 30,241,196,178,250, 58,136, 47,168,138,108,236,167,254,249,191, 39,223,244, 3,248,252,222,107, 72, 12, 41,
-242,164, 75, 47,248, 84, 65,207, 11,234,187,126,138,242, 7,255, 18,233, 59, 36,132,182,132,123,234, 33,103, 48, 75, 80,223, 44,
- 47,184,225, 35, 15,240, 96,191,183,232,235, 76, 35, 3,123, 31, 19,187,230,211,236, 62,216,125,124, 7,215,211,182,158,171,151,
-254,112,232,239,169,174,241,111,157, 68,208,159, 42, 34, 71,206,231,126, 68,228,111,128,119,236,250,232,101,103,248,213,221,219,
-221,124, 63, 15, 99,239, 92, 0,239,158,134,196,137,137, 71,178,168, 95,190,248, 56,179,112, 27, 73, 54,216,206, 27,152,109,176,
- 33,199,217, 31,158, 43,215,254,241,141,167,142, 1,116,111, 36,112,148, 85,137,100,107,207,171, 7,218,148,177,155,251,177, 15,
-254, 14,227,175,126, 51,245,189,191,138, 31,251,155,147, 15,176,219,119, 98, 31,188,137,241, 63,189,132,242,158,159,129, 97,128,
- 16,219,100, 51, 34, 32, 73, 88,100, 33, 56, 56,175,124,128, 7,251,157, 69, 83,118,115,227, 25, 14,224, 55,114,239, 98,177,235,
- 78,227,233, 62,216,220,200,189,139,210,174, 59,131,115,113,221,195,184,191,247,213,175,183,114,239,245, 3,118, 60,244, 35, 15,
-208, 46,119,207,183,126,200,221,255,249,105,142,239,159, 3,127,119,253,182, 2, 63,123, 63,250,250, 82, 62,117, 38,188,223,155,
-134,196,137,137,135, 55,167, 12,191,203,139,222, 55,250,245, 95,250, 60,150,249,123, 48,125, 44,157,190,155, 89,250,121,121,201,
- 31,156,118, 1, 11,249,206,119, 28,246,159,122,246, 75, 89,217,175,176, 85, 10, 81, 33, 4,105, 46, 54,176,113, 0,202, 81,242,
- 59,126, 4,233,246, 33,143,254, 44,244,194,167, 64, 28,192, 50,118,228, 35,248,157,239,133,229, 17, 72, 9, 54,119,213, 4,237,
- 20,187,143,234,244,116,120,121,181,124,205, 47,252,229, 3,232,157, 31,226, 83,215, 23, 63,204,217, 85,190, 95,203,189,231, 94,
-127,219,122,153,209,155,206, 96,255, 87,175,197,242, 1, 41, 56, 19,145,195,238,254, 26, 78, 60,174,119,200,221,175, 63,217, 18,
-173,107, 65, 63,147,101, 79, 63,109,251,123, 31,251,125, 59,240,188,147, 8,250,221,247,163, 77,223,117,142,229, 36,231,253,173,
-238,254, 27,156,152,208,230, 7,221,253, 75,104,143,173,253, 33, 45,103,254, 40, 90,200,253,101,123,162, 35, 63, 41, 34,239,223,
-179,191,219,104, 11,191,252, 30, 45,148,126,247,186, 31,199,105,115,202, 63,150,246, 40,222,119,113,239, 85,230, 0,126, 81, 68,
-222, 52, 13,137, 19, 19,143, 96, 81, 7,144,107,223,241, 17,224,229,231,212,250,119,254,225,155,248,201, 47,122, 45,197, 95,206,
-177,113,193,254, 78, 8,180,162, 54, 28, 82, 66, 82, 2, 55,252,174, 63,163,220,113, 11, 59,211,202,137, 70,136, 29,108,238,219,
- 51, 82, 2, 99,197,109, 6, 26,122, 40,111,103,177,120,213,253, 28,208,253, 28,190,118,237,217,228,137,215,179,165, 93,203,137,
-149,203,118,132,238, 38, 90,184,122,119, 40,127, 39,204,127,136, 19,185,233, 87, 60,192,247,194, 13,220,123, 25,212,107,214, 97,
-248, 27,118, 29,219, 33, 90, 40,253,224,218, 19, 63,204,125,228,224, 31, 6,253,221,203,243,246,188,127, 52,112,215, 89,220, 26,
- 79, 19,145,115, 89,250,247,155,214, 66,252,172, 93,231,248,116,233,143,183, 2,223,119,146,207,159, 8,124,203,250,231,108,120,
- 23,240,210,105, 56,156,152,248, 12, 16,245,251,229, 1,130,123, 42,223,143,166, 75, 24,253,197, 28, 27,151, 62, 4,100, 8, 45,
- 12,191,227,187,136, 66, 55,156,122, 53, 11, 7,204, 97, 85,177, 99, 35,179,203, 46,133, 80,111,161,196,127, 32, 47,186,113,124,
- 16,207,217, 45,107, 65, 63,235, 74,123, 17,185, 97,215, 4, 54, 7,207, 98, 16,127,192, 89,123,235, 47, 90,123,215, 87,236, 18,
-219,147, 45,118,115,152, 54, 35,217,143, 62, 92,251,251,233,130,136, 28, 95, 27, 79,175, 3,190,241, 52,155,231,245,118,175, 56,
- 15,207,201, 3,124, 4,248, 9,224,103, 30,130,245,220, 39, 38, 38, 30,110,162,222, 60,253, 91,178,191,234,121,223,194,197,203,
-191,166,240,253,233, 88,102, 92, 25,186, 17,219, 42,110, 1, 68,228,228,235, 83,173,157, 36,175,109,193, 22,159, 87,116, 62, 50,
-187,232, 32,108, 12,191, 6,199,190, 85, 94,248,155,199, 31,132,243,116,211,218, 51,189,105,239,250,221,231, 40,236, 55,209,194,
-249, 87,115,250, 48,246,141,235,253,223,248,128, 95,171,182, 68,235, 85,107, 17,190,230, 20,231,226,218,245,182, 15,235,254,126,
- 26, 9,251, 97,218, 60,236, 63, 9,188,152, 54, 83,220,229,180,245,212, 15, 3, 31,160, 21,197,253,172,136,156,170,226,253,113,
-192, 23,209, 86,125,123, 22,240,152,117,196,225,209,192, 98, 45,226, 31, 93,255,188, 19,248,127,206,147,113, 48, 49, 49,241,233,
- 50,158, 60,152, 59,243,159,254,146, 47,255,240, 29,243,155,159,120,176,167,172,156, 18, 5,134,128, 68,109,158,187,238, 58, 28,
-119,168,224,197, 96, 89, 9,217, 72, 73, 56, 86,225,192, 19, 47,123, 49,127,241,121,255,175,188,234, 1,159,104,230,129, 63, 39,
-205, 75,219, 27,194,190,149,182,186,217, 77, 15,225,113,237,132,195,119,175,137,126,211, 25,174, 6,247,176,235,239,196,196,196,
-196, 36,234,231, 50,168,191,238,139, 14, 48,200, 55,176,240,255, 11,243, 39,181,169, 97,221, 81, 53,148, 19, 34,109, 40,102, 74,
-123, 24, 14,130,222, 73,228,181,204,134,159,147,111,251,221,143, 79,151,110, 98, 98, 98, 98, 98,226, 33, 22,245,123,196,253,205,
- 95,209,243,209, 35, 79, 39,219,215,131, 60,135,234,151, 97,246, 40,156, 14, 36, 19,229, 40, 65, 62,129,249,159,210,201, 47, 83,
-134,247,202,119,253,238,214,116,201, 38, 38, 38, 38, 38, 38, 62,205, 68,253, 83, 68,254,237,207,139,220, 70, 36,220, 29, 24, 54,
-141,195, 99, 57,217,196, 54, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19,159,134,200, 51,174,124,182,111,198,128, 16, 48,173, 36,132, 98,224, 46,168, 10,130, 80, 53, 35, 34, 4, 7, 71, 49,
- 51,196, 21, 19,192, 4, 13,142,168, 32,110,136, 7,140, 74, 64,113,218,228,242, 70,193, 92, 81, 93,175,157,238, 17, 23,199, 13,
- 36,128, 6,144, 42,184, 64, 80, 48, 4,149,128,148,140,170,146,113, 36, 9, 81, 3, 54, 86, 28, 33,196, 64, 80,197,221,136, 34,
- 72, 72,168, 84,106, 5, 84,136,193, 32, 37, 48, 8,102, 24,142,152, 83,129, 90,156,216, 13,196,206,160, 10,227, 98, 4,169, 72,
-138,168, 42, 86, 42, 67, 18, 86,217,136, 8, 32,148, 24, 81,169,152,181,229, 96, 85,149,106, 70, 10, 74, 12, 29, 8,152, 26,162,
-142,102,197,107,197,113, 92, 5, 17, 65, 76, 17,117, 60, 40, 29, 48, 86,195, 67, 59,167, 34, 14,169, 67, 16, 52,130, 84, 99,149,
- 43, 33, 40, 73,132, 98, 21, 65, 41,222,182, 79,106,140,213, 8, 4,170, 27, 42,142,116, 9,149,132, 68, 69,168, 4, 17, 16,193,
-179, 3,134,163,184, 26,193,149,226, 5,178, 97, 26, 41, 86, 32, 8, 82, 32,198, 13,106, 93,146, 98, 36,231,140,171,162, 81, 41,
- 89, 25,130, 96,140,228,234, 68,237, 48, 55,132, 17,243, 72, 80,197,172, 29, 47, 65, 48, 23,130, 5, 68, 12, 79, 66, 39, 80,106,
-129, 16, 81,119, 52, 38, 4, 3,119, 28,152,197, 30,196, 89, 25,164, 88,177,209,209, 16, 25, 98,192,131,226, 84, 98, 23,240, 10,
-101,171, 16,250, 72, 13, 70, 48, 65, 61,226, 81, 9, 17,194,160,212,121,165,170, 48, 4,161,122,160,246, 78,153,103,186, 16, 48,
-119, 82, 7, 33, 5,198, 45, 33,170,227, 22,136,189, 80, 23,133,106,198,232, 25,137, 3,170,129,153,116,100, 27,241,100, 12, 26,
-153,111, 87,102, 73, 40,106,120, 31, 25,106,207,241,213, 28,239,149,224, 61,212,140,104, 66, 80, 22,121,129,231, 5,146, 4, 43,
-145, 40,138,107,193,179, 48,204,122,132, 64,208,142,176,161,232,166, 33, 38,196, 18,136, 30, 81,150,228,156,232,146, 51,103,100,
-195, 35,210,193,188, 20, 54, 82,164, 22,167,142,130,121,134, 90,177, 20, 97,125,175,205,100, 31,230, 35,227,184,100,144,136,118,
-142, 75,162,100,167,134,202, 16,123,204, 32, 5,199,197, 41, 49, 49,235,103,248,124, 27,168, 20,153, 97,121,139, 94, 55,169,238,
- 44,243,138,136,179, 18,240,234,172, 22, 35,243,178,196, 67, 96, 53,102, 58, 82,235,119, 20,196, 4,241,158, 28, 70,168, 21, 92,
- 16,119,172, 75, 68,156, 52,204, 24,231,133, 24, 19, 42,134, 27,148,114, 28,151,192,254,212, 51,175,130,139, 17,220, 41, 53,211,
-111,236,163,138,224, 57, 19, 24, 64,231, 96, 17,179, 64,149, 66,192, 48,173, 72,136,248, 98,196,112, 98, 12,120,113, 42, 70,215,
-109, 50,142, 43, 76, 42,158,231,228,218, 35, 1, 66,239, 96, 25,169, 51, 54, 14,244,132,234,184,247, 8, 75, 8,138,121, 32,120,
-164,248,138, 46,129,229,192, 42,103, 66,116,136, 3,238,149,152,122,196, 12, 74,197,235,138, 18, 7, 60, 67,218,220, 64,210, 2,
-219, 90, 33, 26,112, 2,157, 20, 86,210, 49,136, 16, 83,135,108, 84,108,140, 48, 86,250, 65, 40, 18, 80,239,232,170, 18,162, 16,
- 58, 69, 7, 97, 49,135,253,170,212,206,128,192,144, 2, 75,139,132, 40, 12,226,140,222, 35,131, 18,115, 32,106, 38,104,101,181,
- 50,186, 11, 34, 62, 42, 65, 21,197, 81,141,232,160,104, 5, 73,129, 94, 20, 69,144, 46,226, 42, 28,216,119,128, 75,174,120, 26,
-161,219,100, 83, 29,237, 20, 87,240,218, 86,196,222, 89, 33, 68, 12, 98, 0, 23, 40,208,198,239,245,235,163, 35,204,111,191,131,
-188,125, 4, 74,225,242, 75,246,179,113,217,227,219,178,155, 14,189,182,149,181, 29, 16,111,223, 3, 48, 64, 79,236,226,158,247,
- 59,220, 97,112,215,109, 71, 41,199,111,103, 51, 85,158,240,228,199,146,102,143,186,103, 57,207,184,254,237,235, 31,217,245,158,
- 93,109,237,252,125,231,253, 22,112,251, 49, 88,222,254,113,124,251,110,158,116,105,199,129,199, 94,177,103,239,231,206, 28,248,
-139, 59,224,174,247,221,138, 47, 63,132,213,145,229,241,145,213, 18,186,153,145, 92,217,178,145,186,170,132, 44, 44,181, 82, 61,
-113,112, 83,176,101, 97,107, 25,160,135,217,190,202,246,177, 66, 62,186,192, 83,160, 32,228,156, 9,117, 69, 73, 16, 45, 81, 74,
- 69, 60,226, 62,103, 94,141,168, 33, 96, 94,193, 42,110, 70, 9, 9, 95, 75,177,139,129, 41,110, 1,193, 17, 12,167, 96, 4,144,
-138, 22,105, 23, 31,199,115,187, 90, 81, 29,171,142,168, 98,193,241,234, 36, 9, 68,192,220, 41,102,168, 20,100,125,183,136, 10,
-216,218, 40, 16,193, 49,130, 56,138, 82, 36, 80,176, 54, 32,186,128, 56, 34, 1, 9,109, 95,213, 10, 65, 3,174,138,215,145, 16,
- 19, 67, 82, 22, 94, 49, 4,169, 59,119, 73, 32,186, 81,196,137,162, 72,114,140, 21, 99,110,219,196, 62, 96,197,209, 10, 65, 29,
- 51, 97,185,172, 16, 64,136, 84,119,118, 44, 16,181, 74, 49, 3, 23, 98, 8, 20, 51,198, 58, 71, 60,172, 13, 15,197,172,160,162,
- 84,109,119, 93, 66,112, 19,170, 56, 4,161,152, 17, 98, 51,108, 2,160,234,212, 90, 40, 4,196,140,190,182,155, 83, 35,140,185,
-130, 7,164, 90, 19, 73, 2, 99,109,255, 21,230,138,138,224,226,168, 9, 34, 32, 53, 83, 1, 98, 34,105,196, 40,132, 20, 41,165,
- 80, 75,197,165, 73,124, 12, 74, 41,134,122, 64,196,201, 24, 90, 22,136, 56, 6,132,152,176, 82,192, 42,169,119,106, 81, 74, 81,
- 16, 71,125, 5,162,152, 8,181, 26, 34,138,132,128, 85,163, 74, 37,104,162, 83,200, 56, 88, 96, 52, 7, 2, 18, 28,149,136, 89,
-165, 75, 16, 70, 97, 25,140, 76, 70, 67, 64,139,161,213, 80, 87,162, 10, 5, 67,172, 82,170,227, 69,219,181, 28, 34, 85,160,221,
- 81, 21, 87, 16, 81, 40, 5,173,142,204, 54,232, 74, 37, 84,195, 8,248,214,138,144, 34, 34,134,141,134, 75, 71, 17,167,214, 17,
-173,138, 41,140,163,209, 97,104,175,200, 50, 16, 36, 17,186, 66,193, 81, 42, 37, 11,115, 28, 73,149,133, 25,213, 5, 86,134,204,
- 64,106, 66,138, 97, 33, 99, 82,208,226, 64, 36,152, 99,105,131, 33, 4,150,227, 10,250, 8, 42, 4, 79, 84, 45,116,217,200, 86,
-241, 85, 96,179, 15,228, 18, 17, 95, 33,170,104, 80, 82, 40,148,218, 17,107,192,197, 24,151, 77,192,243, 16,145, 33, 96,115,129,
-133, 81,180, 32, 57, 17,168,136, 58, 43, 91,226,181, 66, 7,163,102, 82,223, 81, 74, 66,124, 65,159,148, 98,214, 78,227,198,126,
-242,184, 98, 35,175, 8, 6,161,219, 96, 21,230,164, 34,140, 37, 81,125, 69, 82,129, 3,130, 45, 29, 89, 26,149, 66,148, 14, 17,
-131,220,145, 68, 17, 81, 34,198,144,122, 86,181,176, 44,153,154,149,212,181,235,148, 60,224, 14, 86,115, 51,206, 6,197,234, 8,
-197, 48, 53, 98, 8,184, 7,138,197,102, 36, 26, 12,155,145, 98,210, 6,225, 84,214,134,121, 97,158, 71, 72, 25,177,128,214,200,
-104, 43, 92,155,193, 59,132, 72,149,230,104, 20,182,152,197, 77,130, 11, 53, 4,196,141, 28, 3, 27,169,195,163, 83,114, 38,165,
-158, 66,161,203, 3, 26, 14, 82,226,138,213,202,241, 82,232, 21, 60,100, 74, 72,104, 46,108, 70, 67,124,160, 74, 70,180, 9,222,
-184,189,160,239,155, 97,140,247,136, 87, 52,129,231, 45,130, 9,157,244,152, 3,106,104, 84, 54,131, 50, 35,176,240, 74, 25, 33,
- 5,101,227,130,158,154, 35,145,128,233,156,106, 70,169, 1, 17, 97, 22,149,110,191, 50,206, 29, 49,163, 80,137, 54, 35, 81,200,
- 25, 86, 14,110, 14, 22, 33, 8, 81,193,164, 3, 10, 86,122, 66, 16,196, 87,132, 46, 34, 26, 48, 7, 29,148,128, 19, 98, 27, 79,
- 59,109,162,254,184, 75,102, 92,246,232,125, 59,126,222, 9,101, 10,167, 81,174, 93,250, 23,103, 48,118, 3, 62,143,204,122,229,
-226, 11,247, 33,247,165,143,167, 88, 70,108,239, 46, 55, 20,182,162, 32,154,184, 96, 51,210,207,134,189,187,190,167, 73, 57,197,
- 46,246,254,125,216, 49, 8, 4,102, 93, 96,223,129,254,188, 9,250, 78, 63, 20, 67, 37, 51,142, 5, 23,135,160,232,144,169, 42,
-148,209, 89,137,226,139, 37, 49, 10, 51, 13,212, 8, 43, 27,145, 89, 33, 34,108,244,251, 24, 23, 78,204, 66, 60,216,115,220, 20,
- 61,178, 77,206, 75,180,131, 80,132, 84, 42, 5,160, 23, 60, 12,232,209, 54,118, 18, 93, 24,189, 32, 33, 80,202, 72,144,216, 60,
-219, 44,132,232, 77,144, 69, 41,213, 16, 5,241, 74, 8, 97, 61,160, 86,188,130,144, 48,140,234,165,157, 46,119,180, 86,204, 20,
- 83,193,212, 80, 73,116,209,169,185, 98, 89,144,224,136,183,193, 90, 83,243,250,161,137,183,249, 72, 8,177,121, 98, 82, 17, 4,
- 43,160, 98, 72, 74, 4, 4,138, 99, 46,136, 68,130, 26,213, 42,230, 70, 76, 1,119, 3,183,118,114, 67,196, 9,104, 6, 87, 24,
-196,192, 2,243,177,137, 44,106,164,117,255, 86,185,121, 77, 30, 65, 76, 49, 45,184, 8, 62, 58, 53, 8,157,116,184, 84,170, 26,
-234,144, 80, 50, 32, 24, 86, 64, 58, 80, 89,123,174, 34,184, 40, 54, 22, 92, 3,162, 80,115,165, 6, 39,136,182, 78,135, 74, 40,
-134,155, 19, 28,138, 85,114, 16,162, 4,188, 52, 27, 83,215,215,198, 9,212,154, 81, 29, 80, 42,149, 74, 34, 98, 42,132,181,209,
- 69,234, 8,185,144,164,226,237, 62,162,100, 67, 36,145,218,101,193, 77,154,160,136,163, 81,219,117,145,178, 54,186, 28, 86, 75,
- 98,136, 24, 32, 10, 49, 8,102, 5,204,233, 82, 36,133,158,108,149,106, 43, 84, 65,107,187,190, 18, 59, 58, 28,241,102, 36, 84,
- 7, 47, 11,148, 68,236,148, 50, 86,138, 56,196, 66,174,138,105,196,179,182,123, 77, 32,168,225, 69, 40,161, 35, 38, 69,139, 97,
- 94,154,137, 89, 33, 12,134,187,175,163, 64, 21,130,226, 42, 12, 42,100,131,229, 24, 72,201,232, 85, 41,193, 72,230, 8, 29, 70,
- 65, 81,130, 56,213, 5, 29, 3,170, 21, 83, 71,171,144,199,140,199, 64,113, 65,134,212, 12, 31, 7, 33,131, 68, 74,133, 96,129,
- 24, 7,188,203,216,106, 65,172,206, 56, 86, 48, 69,187, 64, 93,140,224, 78,181, 37, 21, 37,136, 50,200,140, 72, 68,122,195,163,
- 17,101, 64, 28,180, 24, 57, 25, 81, 19,148,204, 56, 55,116, 16, 92,218,144, 54, 90, 4,182,169,171, 76,236,135, 38,110, 26,216,
-232, 19,171, 60, 82,139, 0,133,144, 18, 93, 13,140,221, 72, 94,122,139, 54, 85,103,136, 27, 88,223,162, 56,178, 12,224, 25,137,
-198,134,110,144, 25,169, 37,179,181,117, 20,145,136,153, 19,107,198,234,146,161,239, 24,139,177, 57,236,167, 75, 74, 8,219,220,
-181, 5, 38, 17,153, 45,177,197,138, 98,214,238, 7, 89, 65, 78, 72, 52,164, 19,108,116, 48,193,213, 17, 29, 17, 87, 98, 73, 16,
-156, 20,140,133, 5,108,233,104,116,200,205,129, 16,171,200,144,136, 12, 20, 12, 47,112, 32, 14,132, 40, 88,141,200, 40,152, 71,
-162,100, 74, 82, 54, 57,128, 5, 69,171, 49,218,136,196,129, 33, 21, 74,152, 45,132,206, 0, 0, 32, 0, 73, 68, 65, 84,134,130,
-161,150,154,225, 29, 55, 9, 30,168,158,177,224,216, 88,233, 92, 25,125,132,170,136, 11,165, 38,102, 93, 36,234,140, 81, 87,100,
-150,196,174, 25,202, 33, 42,121,229, 12, 62, 50, 22,225, 88, 40, 72, 74, 72,137,132,188,194, 7,197,123, 40,150,168,121,197,108,
-232, 9, 36,196, 97, 75, 42,137,128,211, 81,226,138,228,138, 17, 25,231, 32,131,181,254,199, 68,172, 61,190, 90, 82,108, 36, 12,
- 3, 27,125,100,126,108,100,216,175,120, 89,177, 56, 26,233,135,125,172,100,139,200,140,125, 34,216, 56,178, 10, 25,181, 30, 24,
-208,148,200, 46,104, 41,120,152, 81, 99,193, 54,149, 20, 90,164,178,212,136,104, 7, 81,233, 53,227,174, 68, 87,212,123,138,173,
-218,184, 33,176, 49,219,184,223, 34,230, 14, 17,167,170, 50, 75, 5,233,186,243,163,142, 6, 1, 33,196,200,108,166, 64, 58,111,
-194, 27,189, 69,136,251,160,104, 63, 59,175, 33,240, 12,248,104, 32, 5, 73, 2, 57, 34,201,217,140,137,237, 60, 50, 95, 25,209,
-132,112, 32,177,176,202,254,208, 67,133,237,121,102, 51, 69,102, 27,153,213,246,156,149, 37,234, 0,146, 87,244,195, 1,124,182,
-193,102, 12,172,242,113,134, 24,169,161, 71, 10,216,226, 24, 58, 40, 78, 79,184,248,242,199,189, 42,184, 67, 8,132,144,214,230,
-140,180,171,100, 77,116,171,181,176,178,155, 83, 76, 8,205, 97,195, 69,144, 16,136,170, 32,149,160, 1, 83, 5, 1, 85, 65,109,
- 45,208,193, 16,148, 24, 90, 72, 54,168,131, 74,243, 40,125,237, 29,227, 84, 7, 9, 10,190, 35,122,218,140, 39,131, 24, 20,241,
- 10, 26, 80, 73, 68,117,240,230,185,167, 96,136, 64,206, 21,213,212, 66,153,205, 72,166, 90, 94,135, 95, 42,238,118, 79, 56, 72,
- 20, 52, 40, 81, 3,201,156, 42, 80,130,160,185,133, 49, 53,208, 68, 57,128,187, 99, 98,152,131,107,109,131,101, 16,148,128,136,
- 18, 66, 66,131, 96,162,184,129,209,172, 99, 80,194,144,112, 3,151,128, 74,160,223, 49, 23, 37,180,200,131,183,192,208, 50,151,
-181,161,232, 72,208,123,194, 69, 81, 4,119, 72,125,104,226,183, 78, 77,168, 8, 49, 6, 50,153, 32,144, 52, 96,234, 72,140,136,
- 37, 60, 59,117,157,242,136, 24, 65,140,106,172,195,243,173,241, 22, 41,112, 28,195,131,222,243,223, 41, 30,240,224,235,176, 88,
-135,215, 54, 24,137, 8,230, 80, 28, 60, 8, 93,144,102,144,105,139, 24,152, 22,204, 13, 93,219,219,170,237, 62,170,107, 67,135,
- 42,196,168,212, 10, 42,130, 56,152,121, 75,219, 84,161,186, 99, 82,137, 33,160,181, 9,176, 72,215,250, 26,104,169, 2,169,168,
- 42,177, 8, 67,215, 65, 53, 82, 20, 66,151, 64,132,152, 4,143, 78,165,182, 72, 67,181,118, 28,210, 53,227,195,155, 72, 5, 42,
- 21,165, 70, 65, 93, 49, 75,107,195, 66,200,238,148,209,155, 33, 87,154, 97,164, 65, 24,203,146, 90, 90, 28,171,235, 59,198,177,
- 67,106, 33,134, 21, 49, 9,145,216,162, 0,120,187,249,196,241, 42,100, 31, 97,149, 9,149,102,212,248,136, 6, 33,154,225, 30,
- 41, 54, 50, 11, 61, 42,144,151,115,164, 55,162,119, 88,140,164, 78, 72, 26, 16, 77, 44,243, 72,175,149, 88, 67, 51,102,131, 81,
-179, 99, 99,166,132,245, 45, 37,142, 57,228,170,104,105, 6, 56,140, 72, 7,203,226, 4, 21,186, 24,161, 42, 85, 71,186, 16,209,
-126,147, 36, 10,181,162, 58, 32, 33, 35, 29,100, 9, 96, 35,106, 29,117,125, 93, 86,197, 64,157,136,224,182, 66,106,166,139, 3,
- 85, 34, 85,156, 56, 11, 12, 26, 48, 15, 52,231,196, 72,169, 39,132, 22,161, 49,105,158, 51, 4, 60,116,148,146, 41, 94,233, 66,
-130,212, 17,131, 82,165, 25,113, 9,195,125,164,170,160,125, 34, 13,145, 96, 61,206,136,166,158,104,142,122, 32,196,158,236, 43,
-136, 74,112,167, 75,137,209, 43,170,134,164,128, 75, 5, 21,108, 29, 65, 81,117, 82,216, 71,220, 31, 49,148, 90, 87,136,104,139,
-178, 8, 72, 12, 72, 14, 72, 48,102,113,134,133,136,185, 19,135,128,149,130, 86,161, 51, 33,151, 72,112,135, 40, 72, 85,114, 82,
-250, 40,104, 84,164, 8,163, 21,106,132, 46, 6, 52,130,107, 64, 67, 15,227, 72,139,111,128, 72, 70, 29,182,142, 45, 80, 4,180,
-237, 67,150,109,140, 29,235, 72, 68,217, 63, 27,144,226,160, 1, 87,129, 89, 71,119, 96,131,222,157, 52, 27,145, 62, 18,170,209,
-139,225,170,216,152, 91,100, 72, 2,226,153,150,172, 11,132, 36,136, 87,220,133, 62,118, 12, 93,224,178,199, 94, 66,236, 55,239,
- 95,184,217, 96,117,108,142,231, 21, 7, 6,101,227,224, 5,187,130,227,231,206,162,192,246,177, 5, 82, 22, 92,120, 32, 18,103,
- 7, 56, 31, 43,134, 87,224,248,182, 49, 46,183, 56,144, 50,251, 46,220, 0, 61,127,194, 62, 7, 14,127,114,197,226,232, 39,208,
-186,162,122, 97,116,163, 46,173, 69,107, 11, 68, 83,100, 22, 24,151, 6,209, 32,130,198, 64,170,138,140, 45, 50,231, 1,186,153,
- 98, 57, 51,120,101, 65,166,174, 70, 0, 74,236, 25,116, 31,149,163, 20,132, 89, 80,182,115,104, 41, 99, 7, 84, 28,188, 34, 85,
- 64, 11,168, 32,180, 27, 72, 2,168, 27,182, 14,149,123,139, 8,163, 65, 9, 40, 42, 21, 68,209,216, 18, 44, 6,205, 43, 10, 45,
-119,163, 82, 17, 81, 92,192, 11,136, 10, 65, 13,173, 45,239,107, 34,168,213,245,128,100,168, 87,140,174,185, 75, 72, 19, 87,179,
-182, 83,111, 97,122,139, 1,220, 16,111,225, 89,237,215,255,104,158, 49,154, 97,209,199, 1,195,201, 99,203,233,167, 24, 81, 49,
-178,173,197,168,253, 15, 1, 66,178,128, 25,100, 42,186, 54, 42,106,169,120, 21, 8, 17, 73, 16,170, 96, 82, 16, 17,180, 40, 33,
-181,208,183, 81, 1, 39, 6,193,139,144,146, 96, 18, 48,171, 48,142, 4,119,172,229, 12,168,166,232, 0,120,203,241,162,181, 69,
- 64, 16,240, 74,146, 72,112,193,196,113,132,168,130,161,140,235, 28,101,144, 4,234,160, 78, 10,138, 72, 36,155, 50, 55, 35,136,
- 32, 11, 71, 67, 37, 36, 35,214,204,106,177,164, 20,105,209,148, 46,210,185,224,154,192,154,248,182,136,132, 33, 57,147,171,161,
-162,104, 52, 76,192, 10, 80, 70, 36, 65, 29, 91,193,131, 32, 20,117,130,107,179,140, 4,138, 4,188, 84,116,108, 3,156, 37, 67,
-108, 64, 44, 35, 49,210,249, 58,252,149, 12, 51,176, 90, 90,152, 57, 42, 93, 82,106,161, 25, 77,181, 16,102,145,202, 72, 94,180,
- 16,127, 87, 33, 87,199, 99,165,154, 82, 86, 43,178, 87,168,129, 71, 93,114, 41,179,161, 71,189,133,222,157, 74, 44, 61,171,229,
-136,132,192,124,107,139, 35,199, 14,115,241,129, 11,216,216,127, 33,113,136,204,139, 96,186,194,189,226,121, 64,107,166, 22, 37,
-132, 64,246, 17,207, 66, 55,236, 35,216, 72,233,106,171, 37, 88,129,121, 69,212, 48,115, 66,106,198,103,223, 57,154,103,148, 49,
-163, 93,108,225,100,153, 33, 82,112,150, 96,153,108,153,152, 4,141, 3,110,134, 89, 33,224,104,129, 94, 7,114,202,120,215,163,
- 40, 99,206,168,182,218, 1,201, 16,101,133,210, 17, 58, 33,231, 37,209,157,232, 27, 88, 52,130, 25, 30,193, 18, 4, 29,216,164,
- 96,157,226, 75,167,154,161, 10, 41, 10,133,145,129,158,226,173,102,102,149, 3, 99,103,136, 86,186,110,131, 32, 6,203,109,114,
- 82,138, 24,125,153, 19, 36,145, 23, 6,193, 41, 33, 65, 93, 17, 76, 48, 13, 12, 7, 34,203, 99, 11, 66, 80,124, 72, 45, 58,150,
-157, 28,115, 11,183,214,132,229,138, 6, 65, 67,196, 10,172,130, 35,217,113, 7,106,203,169,215, 82,137,234, 20,221, 32,212, 17,
-145, 64,164, 99,105,133,125, 18,161,135, 42, 35, 86,123,162, 87,164, 66, 30,141,101, 57,134,171,145,106, 33, 12, 1, 31,157, 98,
-133,160, 61,125, 72,184,143,148,108,184, 20, 10, 80,151,145,106, 17,234, 18, 15,134,155,182,240,184,174,232,150,155, 20,113,146,
- 25,150,156,210, 41,113,169,140,101, 36,165, 25, 49, 12,148,228, 40, 1,219, 42,172,242, 10, 73, 61,244,138,174, 42,157, 26,101,
-213,181, 52,145, 6, 76, 87,152,117,104, 86, 86,186, 69,223,247,212, 26, 17, 23,246, 15,129,185,101, 40,134,123, 38,151, 99,224,
-137, 62, 5,204,149,216, 67,234, 18,226,133,100, 1,223,152,161, 2,155,117, 31, 23,236, 75,228, 26, 40, 41, 82, 93,232, 6, 88,
-149, 37, 54, 79,196, 26,136,105, 70, 89,174,176,218, 97,227, 18,157, 69, 98, 23, 72, 37, 82,212, 8,235,208,147, 14,218,234,138,
- 66, 27, 7, 85,133,161, 31,208, 24,238,191, 72,174, 12,183,220, 66,204,225, 60,122,188, 25,130,228, 86,247, 19,187,243, 34,232,
- 0,163, 67,205, 25,165, 69,255,206,103,232, 29, 96, 81,161,140, 43,200, 14, 21,162, 27,169, 58,121,128, 88,148, 33, 26,177, 87,
-200,142, 23,167,215, 22,117, 17,135,229,170,213, 72,213, 84,169, 73, 25,150,128,110,176, 8, 66, 89, 44,240,110,147, 78, 5,182,
-182,240,176,197,144, 18,197, 20,179,237,150, 14,243,236, 72,171,179,193,204, 48, 23, 34, 9,113,167,120, 37,122,128, 10, 30,148,
-128,224, 33, 16,104,131,176, 10,152, 85,220, 50, 30, 59,172,180, 80,137,136, 96,230,205, 80,160,121, 71, 74,165, 90, 11, 57,160,
- 96, 30, 81,154,215, 95,165,229,131, 93,215,169,107,109,161,172, 10,116, 2,174,134, 75, 11,135, 7,137,205, 10,201,133, 40,130,
-133, 0, 94,176,108,184, 43,130, 83,154,107,140,120,110, 65,135, 38,153,235, 1, 21, 98,140,136,181, 34, 45, 36, 16,164,146,243,
- 58, 68, 27, 66, 43,226,208,132,135, 57,234,218, 78, 78,113, 98,132, 92, 65, 44,224,238,100, 27, 81,137, 80, 5,141,130,173, 11,
- 71,188,100,136,235,188,185, 53,175, 30,175,120, 85,138,192,204, 34,172,163, 6,226,235,200, 4, 21,143,129,234, 21,163,229, 34,
-171, 11, 85, 2,142,209,187, 32,162,212,104,120,113, 20, 39,163, 84,247,230, 20, 38,109,121,181, 58, 71,114, 97,235,174, 35, 28,
- 93, 56,166,105,157,247, 83,130,172,232, 59,101,163, 75,136, 36,232, 20,109, 81, 91,196, 91,184,220,204,176,146,233,250,141, 54,
- 8,187,227, 46, 68, 81,242,168, 96,133,216, 69, 92,157,156,141, 72, 32, 4,163, 72,110,213, 48,157,226, 43, 16,150,184, 58, 93,
-140, 72, 85, 36, 9, 57,183, 99,237, 52, 98,177,146,205, 24,250,117,200, 51, 84, 74, 54,242,209,109, 86, 11,103, 57, 63, 78,149,
- 74,201, 74, 33, 35, 14, 73, 19,102,198,162, 20, 66, 63,240,216,191,189,159,139, 83,224,240,145, 45,114,110,181, 19,243,220,138,
- 37, 85,157, 59,238,254, 4,159,248,228,156,143,221,113,152,139, 47, 57,194,229,151, 95, 74, 31, 15,160, 68, 86,217, 48, 90,205,
-128, 57,184,143, 80, 58,186, 32,200,114, 93,216,153,148,213, 88,214, 69,142, 70,135,160,161, 67, 66,162,150,177, 69,146, 98, 70,
- 98,162,230, 22,209,137, 82,154,129, 59, 12,212,149, 65, 17, 74,134, 33, 8,197, 90, 78, 83,130, 48,154,160, 98,132,210, 68, 99,
-206,146,160, 51, 54,102,155,228,178, 98,244, 57, 51,113,146,119,172,182, 71, 66, 12,164, 16,168, 94, 40, 53, 97, 35,152,141, 40,
-149,148, 18, 35, 74,210, 68,208,142,101, 90, 32,106,176,161,248, 86, 79, 13, 21,239,156,148, 21, 99, 73,144,129, 26,149, 90, 51,
- 67,104,255, 95, 99,201,196, 24,232, 59, 90,196,101,110,148,222, 41, 8,154, 51,113,232,216, 62,226,140, 94, 40, 46, 45, 85,102,
-218,238,237, 40, 12, 68, 68,157,101,172, 45, 99,105, 35, 26, 64,181,167, 19,165,178,164,118,145, 90,189, 21,116,166, 74,117, 39,
-185,226,253,128,196,142,213,184,160,235, 35,174,180, 98, 82, 15,168,131,149,136,164, 74,164,178,169, 61, 75, 45, 4, 43, 56, 25,
- 98,196,169,148, 12, 50,174,240, 80,208,216, 82, 31,203,177,165, 29, 24, 91, 4, 43,169, 98, 99,165,168, 48,247,138, 82, 80, 45,
- 84, 47,120, 21,196, 5,247, 76, 74, 9,196,201,203,145, 82, 34,155,177, 9,161, 97,132, 90, 8, 4,180, 11,164,101, 97,177, 79,
-176,226,212,186, 34,154, 65, 89,146,221, 24,147, 96,219, 75, 82,236,240, 46,112,248,216,162, 85,129,244, 74, 41,129,161, 19, 98,
- 63, 99, 89, 35, 33, 4,102, 41,160, 67, 34,120, 70,150,137,126, 38,212,234,196, 82, 89,149, 86,243, 84,103,145, 92,140,152, 51,
-221,178, 96,143,158, 51, 31, 35,157, 9, 34, 61, 27, 51, 97,105, 3, 75,131,125,174,152, 20,186, 16,241, 40,116, 8,193,109,157,
-110, 19, 52, 70, 74, 23,208, 24,136, 97,184,127,161,119, 90,244, 46,210,156,180,216,199,243, 18, 38,223, 41,241, 21,167, 21, 70,
-167,254,188,137,110,109, 46, 22, 90,141,141,205, 8,247,243, 28,156, 36,107, 64,174,160, 82,112, 9,237,127, 63,209,198, 74, 12,
-117, 97,233,176,223, 13,143, 66, 89, 22, 74, 16, 66, 8,132,141,202,220,156,154,141,205, 0, 94, 11, 93, 13,148, 85, 75,225,185,
- 47, 9, 86, 89,216,136, 14, 70,239, 61,228, 57,177,223,135,149,163, 68, 81,199,188,133,217, 53, 40,238,165, 9,145, 52, 15,189,
- 82, 17,147,245,223,104, 5, 71, 42, 4,243, 86,249, 41,134,135,208,170,111,173, 21,184,137,180,220, 89,147,127, 97,180,102,165,
-107,144,150,159,174,235, 66, 55,117, 28, 71,221,113,109,129, 96, 49,199, 5, 52, 42,110, 45,103, 94,139, 19, 66,196,131, 80,169,
- 68,105, 66, 83,173,213, 74, 6,109, 21,247,230, 17,213, 76, 31, 91,248, 78,140,117,117, 56,132,216, 34, 4,209,149,162,237, 31,
-216,220, 40, 53, 55,143,199,149,178,174,206, 15,162,212, 85,133, 24, 33, 4, 48,195,179,145,139, 97, 34,120,208, 22,209,200,144,
-146, 81,181, 21,178, 17, 90,214, 98, 92, 23, 15,105, 13,116, 23, 62, 1,205,119,177,216, 62, 70, 76, 45, 82, 81,106, 38,105, 36,
- 68, 69,106, 5,107,245, 8, 82,155,181,232,102,172,162,183, 10, 85,175,184, 86, 52,117,212,172,152, 87, 66, 7,190,180,118,103,
- 26,152,103,146, 37,198,213,156,213,124,155, 99, 71,140,227, 34, 36, 85,162, 45,201,101,108, 6,140, 71, 86,139,192, 34, 69, 98,
- 76, 72, 15, 27, 49, 49,196,158, 16, 91, 38,176, 87,216, 30,141, 82, 43, 42, 21, 13,161,213, 69, 72, 70, 61, 96, 34,237,105, 2,
- 17, 36, 54, 35,174,138,173,207,181,208,229, 30,247,138,197, 66,136,161, 21,255,100,103, 8,210, 12, 17, 51, 98, 23, 17, 89, 23,
-139,212,130, 70, 97,156,111,115,236,174,227, 28, 91,117,108,110,238, 99, 85, 90, 74,194, 37,162,235,168, 69,174, 43, 68, 19, 49,
- 69, 44,175,184,228,130,253, 60,254,224, 38,159,252,248, 17,114,128,228,235, 28,183,116, 28,191,235, 19,220,126,231, 81, 54, 30,
-117, 57,125,136,204,183,143,241,209, 15,222, 70,234, 6, 46,126,204, 99,216,119,193,197,140,139,145,236, 5,233, 3,193, 21,245,
-246, 79,213, 6,249, 2, 99, 11,193,166, 52, 80,124,196,149, 38, 72,210, 19,146, 65,137,228, 58, 18,226, 58,239, 43,125, 75,199,
-228, 12,181,195,195,136,228,130, 81, 89,209, 55,175,192, 50,173, 74,197,113,109, 69,137,102, 70,116, 1, 70,198, 26, 49, 5,199,
- 88, 89,100, 30,150,116,162, 4, 15,204,197,232, 76,153,251,146,141,125, 61, 41, 43,110, 17, 20, 66,173, 48,182, 58,128, 16, 91,
- 97,107,222,106,181, 24,125,236, 24, 87,149, 81, 42,251,117,134,176, 65,149, 5,163, 45,241,212, 17, 61, 17, 61,224,181,213,115,
-228,117,137,178,148, 17,151, 74,145,196,184,204,140,101,217, 60, 62,239,218,255, 69, 40,136,111, 96,186, 36,206, 6,202,184,162,
- 11, 27,104,167,176, 20,136, 21,195,113, 81,100, 95, 66, 77,137, 25,146, 27, 43,235, 90,154, 65, 2, 30, 35,186, 26,177, 0,193,
- 33, 91, 33, 58, 80, 29,223,232,137, 56, 35, 35, 53, 27, 9,199, 70, 97,236,105,199, 98, 61, 49, 26,162,165, 25, 85, 52,195,175,
-172,203,181,163, 67, 10, 21,186,196,106,158, 33, 20,130, 7,156, 72,214,142,104,133, 49, 26,189,206,208,218,147,217, 34,142, 70,
- 77,173,202, 91, 81,138, 85,250,184, 46,160,204,133,124,116,201, 50, 26, 93,104, 79, 33,104, 22,170, 23,196,135, 22,205,202,149,
- 16,133,162, 74, 20, 39, 58,148,174, 99,144, 30, 75,129, 46,118,100, 59,202,102, 95,153,177,201, 98,181,141,205, 43,165, 70,220,
- 70, 58, 89, 17,242, 6,139,232, 16,140, 33,111,128,192,106,105,216,152,241,141,128, 95,160, 32, 61,145, 14, 17,167, 4,103, 89,
-188,229,247, 99, 70,139, 16,246,117, 45, 74,164, 66, 52,109, 85, 55, 30,128, 74,180,136,122, 97, 24, 28,237,226,121,144, 49,199,
- 35, 68, 51,250, 20,206,155,231, 43,214, 82,181, 73, 32,166,120,222, 68,215,141,123,106,185, 82, 60,191,185,122, 0, 51,168, 37,
-227,222, 34, 51, 26, 34,203,229,146, 96, 10, 38, 84, 10, 94, 71,142,199, 66, 23,133, 42, 66, 94, 25,186,168,204, 54, 54, 16,151,
- 22,145, 21,133,161, 99, 57,102,198,156,155,147,103,199,241, 60, 96,195,128,213, 5, 98,133, 65, 58,142,215, 57, 33,116, 68,168,
-248, 58, 92,237,102, 45,204, 46, 77,108, 52,134, 86, 69, 46,180,220,175,182,240,141,172,159,101, 48, 49, 68,194, 58,111,211, 66,
-164,110,134, 75, 59,200, 90, 11,130,182,112,181,234,218,238,106, 23, 9,113, 4,199,204,113,137,136,210, 30, 45,145,102, 73, 86,
- 49,204, 29, 83,105, 85,182, 42,235, 4,124,179,130,146,180,160,183,212, 17,183, 64, 81,232, 82, 69, 44, 96,165,162, 8, 53, 52,
- 35,195,112,130, 64,169, 74, 22,133,149,177,180,202,108, 22,169,185, 80,150,137, 16,140, 40, 21,243,212,142, 73, 13,169,173,224,
-206,173,172, 31,229,232, 91,228,193, 10,170,177, 21,212,137,181, 71,235, 20,186, 96,216,168, 56, 74,176,140, 5,184,236,241,151,
-242,180,164,252,201,159,207, 57, 94, 13, 66, 19, 58, 17, 65,157, 22,154, 39,147, 84, 25,173, 34, 26,136, 49,144,180, 85,255, 86,
- 10,120,171, 63, 48, 17,124,149,169, 93, 98,232,218,113,206,196, 89,141,115,142, 29, 94,114,116,203,200, 12, 84, 32,132,140,212,
- 5,243,197,138, 85,117,204,140, 64, 89,187,229,129,161,235,209,206, 24,187, 13,134, 80,233,251, 68,232, 2,105,150, 72,177,165,
- 94, 70,175,104, 49, 66,215, 66,239,129, 86, 84, 41, 2, 86, 28, 9, 52,207, 77,157, 32,130, 86, 33,196, 74,169, 21,207, 1,145,
-138,105, 32,104,165,140,161,229, 81,125,132,234, 20, 11,104, 39, 88, 94,113,228, 19,135, 57,124,236, 24,139,165,209,111, 30, 64,
- 67,199,170, 44,201,117, 36,174,115,143, 59, 6,147,149,150, 30, 25,129,237,197,130,203,159,113, 25,183, 94, 52,227,246, 59,182,
- 8, 2, 46, 17,100,201,209,163, 71,208,126,131, 11, 47, 24,216, 47,129, 44,151,176, 61, 6,238, 62,114, 23,135, 63,244, 97, 46,
-185,248,110, 46,189,248,113,244, 27,155,148, 85, 69,129, 24, 30,133,198, 57,105, 44,108, 85, 3,156, 32,177, 25,169,210,211,245,
-153, 82, 86, 88, 30,233,215, 79, 95, 72, 8, 4, 28, 82, 68,215,145,140, 81, 87,212, 26, 8,204,168, 97, 78,151,189, 21,235, 69,
-176,249,255,207,218,187,245, 72,150, 29, 89,122,159,217,190,156,227, 30,151,172, 11,139,108,146, 98,179,187,213, 45,116, 79,235,
- 50, 45, 13, 4, 12,160,145,158,244,191,248,167,244,162,223,160, 7, 61, 8,141,145, 26, 28, 77, 95,201,170,188, 71,132,187,159,
-115,246,222,102,122,176,157, 73,189, 8,146, 80, 25, 0, 1, 22,193,204, 10,143,112, 63,123,219,178,181,190, 69, 60,252,138,226,
- 24,228,202,169, 14, 52, 17,198, 38,187,145, 60,129, 62,210,184, 49,198, 1, 57,179, 12, 65, 49,186, 88,236,189,173,199,234, 32,
- 85, 74,137,207, 88, 58,194, 72, 34,181,211,110, 3,115,167,214,196,182, 59,105, 93, 89,134,179, 15,208,250, 68,238, 17, 61,124,
-249,120,144,189,160,201,227,194, 41,194,154,160,229,193,117, 55,212, 20, 74, 65, 84,168,165,177, 15,167,230, 19,227, 56,208, 90,
-176,110,160, 21, 21,165,228, 74, 86,167,177, 33, 75,165, 31, 27, 75,209,240,215,164,133,235,209,201,201,145, 28,254,154, 36, 11,
-167, 7, 97,219,122,188, 95,186,114, 28, 66, 89,194,157,109,105, 39, 17,207, 26,241, 48,104, 30,227, 25, 89, 64,151,132,111, 66,
-247,103,170, 36,106, 94,105,182,113,236,157,211, 90,226, 18, 91, 43,227,114,197, 51,120,235,177,225, 77, 57, 46,128,169, 96,118,
- 76,149,232, 20,134, 51, 49,202,249,132,121,166, 30, 79,116,205,208, 43, 35, 13,134,221,232, 71,167,171,226, 61, 46, 93, 55, 55,
-180,213, 48,227, 46,149, 86, 22, 28,227,180,156,121, 76,149,151,219, 65, 33, 33,154, 73,169,208,172,177,206, 11, 3,174, 92,183,
- 78, 25, 23,100,141,203, 15,251,142,202,142,164, 19, 47,251,134,237, 78, 57,125, 5,115,152, 89,164, 80, 30, 23,188, 11,108, 30,
- 41,128,118, 69,234,202,121, 45,216,101,196, 51,112, 81,212, 19, 36, 97, 59, 58, 15, 57, 97,110,120,142,213, 78,169,133,161, 66,
-113,229, 84,214, 31,125,160, 25, 17,243, 13,123,129,144, 74,249, 98,211,174,185,225, 54, 88,138,198,100,246,165, 14,117, 15,191,
-137, 26,228, 90,190,184,252,126, 52, 16,107,148,228,108, 12,220,102,242,234, 20,178,134,238, 32, 46,236,215, 65, 90, 42,231, 82,
- 80,117,174,190,115, 60, 93,184, 63,159,177, 62,120,105,157,243, 93, 98, 32,120, 63, 81,229,160,237, 66, 83, 71,181,160,253,129,
-131, 27,221, 55,106, 46, 28, 71, 33, 35, 25,241,136,148,185, 15, 64,195,192,164, 26,147,245,208,207,175,215,220, 64, 50, 88, 11,
- 73, 91,115, 28,248,128, 15, 99,140,216, 53, 38, 28, 12, 4,197, 60,166,244, 33,131,146,231,131, 61,129,245, 61,114,133, 26,242,
-157,247,129,251, 64,139,226, 3,116, 76,243, 93, 6,119,101,152, 32, 24, 41, 73,196,153,188, 77, 9, 59,178,219,106, 48,114, 39,
-229, 18, 89,249, 41, 81,187,199, 69,193,136, 9,188,211,201, 25,150,145, 66,174,215,185, 66, 72, 48,218,148,163,177,240, 18,244,
- 78, 31, 29,205, 25,247,200,124,138,247, 57, 65, 11, 84,193, 40,168, 59,102, 74, 34,145, 5,154,109,180,174,164,212,120,243,219,
-255,149, 81,157,125,186, 11,173, 77, 53,255, 56,200,178,132,241,110,116,208,138,168,161, 73, 25,195, 73,150,145, 20,145, 48,215,
-144, 94,146,128,166,152,168,205, 26,251,190,241,241,165,241,225,121,103,179,153, 2, 72,141, 36, 59,182, 15, 46, 35,162,125, 70,
-248, 25,134,132,148, 37, 46, 92,143, 3,237,198,222, 52,190,191,227, 64,114,226,252,205,119,220,221, 87, 62,190,190, 6, 43, 64,
- 51,168,227,219,193, 48,161,219, 65,169, 43,146, 50,227, 0,211, 48,196,173,185,114,120, 28,246,174,130, 74, 15,222,193,209, 99,
-106,177, 30, 43, 30, 28, 90, 39, 73,231,250,242,129,167,167, 15,124,120,238, 28,230,136, 56,185,111, 56, 95,163,105,161, 95, 14,
- 70,106, 97,104, 36, 51, 92, 65, 58,221, 28, 21, 37,201,193,127,253,159,255,148,209,158,249,159,254,231,255,157,102,160, 90, 24,
-199, 21,183,196, 87,231, 19,169, 29,188,125,121,225,116,122,224,235,175,190,227,187,239,254,154,143, 47, 47,188,249,253, 63,242,
-230,245,191,231,143,126,246, 13,223,126,253,115,206,143, 95,209,246, 43, 38,198,186, 22,206, 30,174,119, 81, 71,108,167,212,130,
-250,202,170,202,166, 47,136, 74, 68,182,214, 21, 90,199,219,149, 83, 17,182,230, 72,202, 20,156,222,183, 88, 65, 45,153,126, 27,
- 72, 17,252,172,113,136,102,197,117,128,118, 92,194, 45, 47,119,138, 30, 70, 59, 6,235, 84,202,142, 22, 70, 20,243, 48,144,105,
- 90,168,230,248,165,179, 87, 69, 52,209,111,142, 90,225,112,200,107, 24, 45, 87,117,182,222,232,125,112,174,225,141, 41, 77,216,
-211,206, 80,143,239,161, 43,195,116, 94, 94,130, 49,208,198, 1,182,144, 79, 39, 82, 51,196,148,209, 54, 68, 79, 48,156, 49, 12,
-147, 75,172,157,172,163, 37,179,228,132,221,118,242,233, 1, 31,141,197,157,230, 70,202, 15,148, 82, 40, 52,158,111, 27, 85, 87,
-198,233, 32,159,156, 59, 18,125, 52, 76, 50,218,140,242,237,137,227,221,109,122, 38, 10, 35, 37,178,117,106, 79,236, 52,198,136,
-235,185, 72, 13,207, 65,135, 68, 39,167, 76,111,225, 77, 41,154,169,107, 24, 1,251,238,184, 14, 54, 55, 82, 3,225,140,248, 65,
-202,141,145, 11, 73, 51,218,149,221,110, 44,114, 66,232,160,157,222,194,124,123,115,167,111, 59, 75,238,100, 81,110,192,144, 30,
-198, 57, 95, 88,115,194,252,133,113, 50,170,148,240, 27,245, 22, 23,226, 82, 57,110,157,236,194,230, 87,186, 23,216, 14, 74, 27,
-108, 98, 28, 99,193, 77, 41,192,177, 30,208,157, 98, 32,169,144,238, 31,177,214, 24, 55,208,154, 72,105, 39,121,230, 65, 87,158,
- 85,209,190, 65, 90, 80,132,147, 14,236,225, 76,139,253, 17,101, 41, 88,118, 14,230, 10,205, 18, 57,103, 54, 19, 74, 10,246, 72,
-169, 25, 73, 57,100,136, 84,168,107,249,209,123,234, 49, 71, 83,117, 67,220,191,200,142,254, 15,151, 5, 34,107,159,132,255,231,
-140,220,255,255,175, 62, 96,140, 78, 86, 35, 45,235, 23,219,213,127,250,121,140, 14, 58, 58,189,247, 80,185,213, 73, 35,225,123,
- 35, 37,167, 38,199,199,160,120, 5, 51,174,215,131, 34,194,157,172,152,108,112, 26,220,146,147, 13,218, 21,172, 56, 35, 95, 41,
-205,120,113,168,115,197,109,150,200, 86,131,111,144, 43,164, 51,233,143,126,241,199,191, 41,105,198,246,199,244, 87,167,216,111,
-171,134, 49, 42, 79,121, 69, 16,146,204, 7, 64, 4,168,208,153,197,150,252, 73,130, 23, 82, 73,161, 90, 11,184, 42, 57,101,210,
- 92,195,185,143, 48,181,187,204, 76,110, 10,202,129, 7,140, 6, 97,238,160, 53,114,242,238, 1,234, 40, 5, 45, 74, 34, 99,222,
- 2,176, 66,194,100,238,173, 73,136, 38,134, 9, 41,205,139, 9,196, 63,139,146,167,187,144, 17,113, 49,106,138, 9,208, 70,236,
- 86, 82,152,119,204, 13,173,225,106, 55,111, 97, 28, 35,148,134, 54,122, 56,180, 61,192, 25, 38,241, 51, 48,226,127,179,153,217,
- 30,238,211,221, 45,236,163,243,254,186,199,228,111,134,117, 67, 25,177,103,105, 7, 46, 66, 82, 97, 31,206, 24, 17, 49,241,102,
- 52,179,152,142, 36,209,123,184, 85,201,153, 84, 29,235, 79,124,120,243,196,247, 31, 14, 94,122,130,162,241, 90,180,225,182,113,
-244,169,136, 76,233, 74,145,128,226, 0, 18,118,248,216,253, 15,167,143, 3,243,193,222, 99,106,249,197, 79,127,202, 47,190,174,
-188,127,190,177,223, 54, 94,158,223,113,187,190,240,244,241,137,231,203,133,143,207, 23,158, 95, 94, 24, 14,119,107, 65,181,198,
- 95, 54, 52,128, 55, 22, 38, 30, 18,216, 16,186, 55,204,103,254,212, 59,163,117,182,231,143,124,120,255, 3,223,191,121,207,251,
-107, 15, 94,193,132, 29,229, 82,249,238,155,175,184, 91, 86,142, 99,139,181,132,135,145, 83, 61,110,111,214, 27,244,198,162,133,
-191,249,203, 95,241, 39, 63,251,138,191,251,199, 39,222, 94,247,144,133,199,198,240,131,156, 43,215,219,198,205,140, 54, 58,151,
-203, 27,164,191, 80,214,133,199,243, 79,233,238,188,121,243,129,143,111,127, 79,178,198,122, 87,169,158,240, 97,116, 31, 97,128,
-114, 35,159,214, 80, 85,134, 98, 73,200,222,145, 2, 62, 4, 59,224,126,133,214,226,189,159,165,162, 53,147,221,208,113,112, 76,
-178,131, 15,137,196, 69, 62, 49,134, 35,214, 25,110,228, 97, 12, 22,202,168,228,210,145,228, 88, 75,184, 77, 16,202,112,164, 19,
-123,113, 19, 24,194, 41, 47, 52,160,119, 71,151, 18,224,166, 30, 38, 69, 39,140,120,153,140, 46,149,222, 19,106, 78, 89, 6,189,
- 31,244,121,105,204,106,212, 84,241, 84,177, 53,226,160, 41, 37,214,101,165,213, 20, 81,206,139,177,245,193, 16,165,181,131,205,
- 99,253,208,183, 13, 81, 39,245,202,146, 87, 82, 54,198,176, 88,215,168,147,181,224,201, 89, 24, 36,133, 77, 2, 16, 85, 82,162,
- 97, 20, 77, 20,207, 32, 39,228,214, 64, 11, 3, 98,191,222,143, 48, 18, 10,248, 72,241, 41, 55,167,239,161,106, 68,230,253, 96,
- 45,113, 57, 53, 83,146, 41,146, 70,172, 79,236,142, 61, 53,134,117,116, 79,180, 30, 23, 74,119, 65,164,179,141,131,222, 65,165,
-134, 74, 54,182,112,199,219,224, 44,101,174, 27, 21,215, 59, 78, 53, 5, 19, 33, 43,231,122,138, 11, 14, 22, 23,251, 28, 74,136,
- 31,134,168,146,206, 25, 29, 59, 93, 29,219,140,209, 15, 52, 45,145, 18, 34,163,230,140, 69, 24,217,168, 67,168, 89,112, 93, 66,
-124,172,133, 69, 5, 74,198,215,133,180, 9,181,156,201,154, 80,205,184, 20,138,215, 88,103,121,192,183,150, 44,156,239,148, 75,
-111, 12,115,106, 2, 58,200,110,164,109,160,165,224, 38,156, 22, 9,181,117,178, 31,210, 92,107,230,148, 88,180,240,147,111, 31,
- 88,239, 31,127,156,153,205,224,242,124, 99,244,131, 34,131,135,199, 59, 72, 63, 62,210,214, 28, 46, 79, 59,118,220,184, 95,149,
-122,119,255, 69, 14, 95, 3, 94,110, 70,191, 94, 41,222,120,120, 40, 72,185,251, 98,135,122, 3,222,188,111, 92,222,190, 99,180,
- 43,230,198,190, 31,140,209,226, 12,114,231,198, 32, 75,101,119,167,103,163,223, 2,110, 52,138,176,109,141,102, 47, 17,183, 59,
-223,177,223,174,232,166,140, 28,166,206,228,149, 38, 3,247, 28,151,190,179,210, 7,236,151, 39,182,235, 59,210, 79,126,254,199,
-191,201, 51,130,150,210,148, 89, 85,113,139, 55,130,194,220,241, 41, 37, 41, 62, 65, 48,174, 78,174,133,164,142,183, 17,123,107,
-143, 75, 64,164,205,226, 67,230, 6,168,199,100,251,233,224,158, 57, 53,145,132,206,195, 81, 68,200,154,227,154,147, 4,117,139,
-184,146,228,121, 11, 49,242, 8, 83,153,121,184,237, 19, 57, 60, 0, 51,226,158,210, 39,192, 73, 2, 27,177, 91,148,136,108, 73,
-174,244,214, 34,202,229,130, 73, 33,143, 1, 35,148,130,125,239,241, 32,241,120, 45,195, 27, 54,156, 82,115,196,213, 90,143, 7,
-108, 73,145,145, 86,157,119,145, 78, 74, 11, 69,116, 26, 8, 7,185,156,226,114, 82,148,156, 64, 75, 66,143,142,117,137, 67,214,
-253,243, 53, 41,139, 48,136, 41, 85, 20, 36,231,184,116,184, 7,145,202,231,238, 80, 5,177,141,203,199, 55,252,238,119, 55,158,
-246,133,161, 9, 77,176,172,137, 36,141,190, 31, 28,157, 9, 15,154,210,213,167,108, 54, 25,153,196,189, 16,114, 45, 36,202, 17,
-106,137,217, 96,223, 55,236,104,177,191,237,198,245,227, 19,111,222, 63,243,114,221,216,154,209, 71,120, 28,122,173,124,245,211,
- 87,124,247,112,230,184, 28, 17, 69,148,198,104, 35,124, 9,132,223, 33,232,119,142,123,199,108,208,219,193,203,251, 55,124,255,
-230, 53,239, 94,118,204, 39,188,100,102,236, 98,194, 87,198,237,133,235,229,153,235,237,133,125,116,122,111, 28,183,157,253,104,
-225,129,240,240,129,124,124,255,145,114,255,138,255,225,191,251, 11,164, 57,127,247, 47,111,177,105,154,234,214,200,170,180,227,
-160,245,142,245,206, 72,202,211,118,227,118,123,135,182,141,188,156,184,187,251, 9,221, 18,191,127,253,134,167,119,175,201, 58,
-184,171, 39, 60, 45, 72,249,164, 74,229,136, 90,114,101,120, 35,175,107, 92,230, 90,163,139,211, 70, 67,150,204, 72, 43, 93,149,
-214,118,250,110,152, 36,134, 57, 72,162, 46,105, 78,186,113,120, 38, 58,201,136,139,154, 84,234,146, 40,192,229,104,168,198,131,
- 1,132,243,114,199,176, 22, 83, 62,198,209, 7,121,105, 84,237,248,176, 88,222,137,179,222, 45, 20, 45,248,216,201, 82, 64, 50,
-186,196,231,184,212,160,199,221,118,167,150,206,216,226, 66,172, 8,199,209, 81, 9,176,210,162, 74, 19, 56,110, 59,214, 6,123,
-151,152, 50, 59, 28, 42, 28, 22,123,110, 12,186, 27, 85,149,130,241,210,246, 9,131, 2, 41,107, 76,251, 9,106,169,164,147,210,
- 53,179,228, 21, 45,130, 22,200,150, 89, 79, 5,245, 51, 71,143,125,124,213,206,209,156, 70, 99, 61,173,161, 94, 20, 1, 73,184,
-159, 41,169,227,218, 16,141, 72,220, 80,193, 74,161,158, 18,227, 24,225,201, 73,130,143,193,190, 95, 16, 27, 36,113, 54,187,146,
- 90, 24, 29,199,100, 72,157,114,162, 42,168,156,130,135,224, 21,207,137,162, 39, 76, 13,242, 2, 42,172,229,192,250,136,103, 70,
-238,100,171,140,222,232,214, 24, 12, 48, 67,172, 49,124, 32,229,196,184, 12, 36,133, 54,182, 15,199,178,147,151,149, 98,145, 54,
- 89,238, 86,242,169,178,172, 15,152, 15,244,124, 38,141, 65, 42, 80,101, 33,121,192,142, 74,142,100,140, 75,227,252, 80,208,180,
-224,117,144,186,208,125, 65,178,179, 32,124,120,110,200, 80, 30,214, 66, 61,192,199, 96,152, 80, 78, 39,238,139,144,242,140, 28,
- 39, 72,154, 40, 75,250, 67, 28,182, 86, 78, 53,243,147,111,191,161,252,200,156,250,165, 67,219, 54,122,111,172,234,220,189,122,
- 12,114,214,143,252,218, 28,110,151, 6,125,231,126, 77,148,243,221, 23, 57,212,119,224,118, 25,180,118, 35,251,193,227,227, 25,
-201, 95, 46,206,118, 1, 62,126, 24, 92, 63,126,192,246, 23,108, 42,219, 85, 74, 92, 32,187,147,125,112, 28, 17, 51,190,211, 28,
-145,229,220,185, 28, 7,173, 9, 71,235,148,121, 33,189,202,141, 62, 4,233, 27, 89,140,161, 3, 93,148,109,187,210,112, 84, 23,
- 56, 6, 42, 43,102,144,126,254,235, 63,251, 77,118,139,105, 78,102, 28,102,146,162,196,231, 1,238, 80, 74, 72,211, 17,237,153,
-128, 62, 15,171, 62,104, 76,204, 30,121,116,149,136,100,105,170,177,167,159,230, 57,155,217,100, 33, 12,105,174, 22,217,113,211,
-153, 37,118, 72, 97, 30,242,153, 96, 27,102,152,196, 60,220, 90, 28,180, 72, 69, 75, 33,137, 33,195, 24, 90, 98,183,157,156, 42,
- 51,235,169,147,234,227, 4,121, 46, 43, 62, 12, 41, 74,170, 14, 1,181,194, 11, 20,141,201, 62,238, 17,131, 97,142, 90, 28,174,
- 41, 49,205, 14,142, 89,153, 59, 62, 71, 78, 9, 29, 3, 36,192, 47,137,200, 98,143, 20, 7,166, 72,162,148,105, 36,235, 3,213,
-128,139, 4,148,102, 34, 19, 75, 32,119,179, 13, 84,202,140,158, 52, 92,116,238, 92, 35, 38, 40,169,128,238, 92,223,191,225,251,
- 15, 74, 75,103,114,145,160, 82, 45, 5, 31, 55,142,126,224, 54,147, 6, 30,153,250, 88,129, 88,208,222,122,251,188, 53,178, 57,
- 57,206,197, 18,195,140,251,187, 7,206,119,143,116, 73, 52,235,236, 47,239,121,243,225,194,112,161,164, 76, 78, 53, 94,203,112,
-126,249,103,127,194,255,248,239,254,138,124,249,200, 63,188,121, 14, 85, 39, 71,244, 44,140, 45, 13,233,113,120, 41, 17,227,186,
-188, 60,241,254,245, 27,222, 61,239, 33,181,187, 78, 73,109,174,111,156,112,233,139,243,244,114,225,233,118,176,247,192,219, 98,
-206,152,223,103,146,132,106, 60,152,250,232,216, 72,252,155,191,249, 19,254,252, 63,253,138,223,254,159,239,121,253,230,198,178,
-158, 89,180,208,143, 78,235, 35,176,182, 2,226, 33,165,154, 65, 27,141,214,175,164,190,115,127,126,164,222,125,195,232,198,247,
-191,251, 23, 62, 60,255, 64,173,194, 82, 79,156,239, 87,164, 75,100, 13,106, 76, 76, 48,200,233, 20,138,210, 72,120,239,164,225,
- 28,214,113, 14,100, 12,108, 76,184, 82, 50, 24,161,110, 45, 57, 50,195,162,145, 6,168,249,132,138,145, 37, 83, 52,115,140,128,
-205, 8, 32,169,134, 95, 37, 67,206, 74,183, 20,239, 53, 13,200, 75,235,138,187,163,106,104,174, 72,201,236,251,129,118, 65,244,
-158,230, 91, 92,106,135, 33, 57, 81,199, 74, 75,145,141, 85, 73,193, 65,144, 68,210,206,210, 65, 88, 35,159,223,161,183, 78, 58,
- 58,187, 42,154, 51, 99,187, 49, 36,194,227,169,198,251,191, 44, 11, 99,190,223, 4,199, 60,145,215,138, 53,135,197,144,155,161,
- 57,211, 44,179,236,241, 75, 30,101, 48,154,227, 73,200,167, 76,245, 48,145,157,214, 48,138,110,251,152,175,121,141,201, 56, 41,
-194, 17,176,161,226,184, 4,177,177, 31, 7, 70, 99,108, 7, 34, 70,235, 13, 90,103,219,247,121,216, 6,186,121,248,192,123,227,
-192,240, 84,201, 75,152,106,207,229,142,114,127, 79,146,196,146, 6, 35, 13,234,162,192, 96,223,198,140,240, 54,250,109, 48, 10,
- 28, 7,248, 1,105, 52,198,128, 65,236,121,157,142,119,195,122,193,117,204,149,228, 58,221,246,149,122, 62,145,123, 40,116,105,
-209,216,169,114, 38,175, 43,232, 32, 31, 3, 22,161,166, 12,135,209,115, 13, 38, 65,114,238,152, 70,222, 53,209, 94,174, 88, 18,
-186, 11,125,187,114,151,148,230, 61, 20,128, 83,172, 96,214, 85,233, 75, 9,111, 75,118,200, 9, 75, 78,238, 33,127,202, 52,250,
-253,225, 80, 47,156,150,194,119, 63,251,246, 71,187,202,119,131,118,219,176, 54,184, 95, 19,235,195,195, 23,217, 81, 31, 6,219,
-181,225,253,202,227, 93, 37,175,231, 47, 35,189, 3,215, 91,103,220, 54,238,115,227,252,245, 99, 80,195,190,212, 62, 29,120,243,
-177,113,121,251, 26,111, 47,184, 88, 80, 39, 85,233, 30,135,114,247, 66, 27,157,189,109,144,140, 13,197,181,114,186, 9, 66, 67,
- 74,130,182, 96, 99,199,250, 9, 49,199, 82, 97,116,231,168,141,211,178, 80, 53,135,113,243,184, 34,154,113,137,132, 81,250,217,
- 47,126,254,155, 58,163,106, 17, 61,179,216,239,105, 24,204,116, 2, 45, 2, 37, 30,147,183,144, 99, 7, 15, 49,221,231, 68,177,
- 21,194, 0, 0, 32, 0, 73, 68, 65, 84,132, 16,135,122,210, 12, 89, 80,151,208,230,221, 64,193,199,204, 47,234,188,107,185,144,
-116, 58, 1,125, 26,211, 84,241,110,100,137,105,210,231, 3, 3,203, 65, 66, 83, 38, 99, 62,205,195,111, 96, 34, 51,203, 62, 66,
-142, 99,238, 4,154,131,102,180,132,201, 79,154, 51, 98,150,142, 15,153,134, 41,200,124,238,180,201,193,150, 47, 57,216,243,180,
- 64, 78,182, 17,152, 63, 98,202,144, 20,210,188, 90,142,125,158, 13, 36, 7,234,154, 4, 57, 39, 20, 13,167,123, 82,220,131, 37,
-143,200,204,250,134,220,214,123, 76,202, 33,203, 58,147,178,139, 23, 69, 44,190, 79,215,248, 51, 99,127,225,233,253, 51,175,159,
- 18,105, 89, 88, 39,188,231,180, 56,139,237,188,108, 59, 71,159,224,155,222, 17,143,139, 80,100, 11, 36, 30, 64, 62,232,198, 52,
- 57, 6,109,207, 49, 82, 86,212,149,245,116,207,207,190,125,197,154,225,250,244,150,119, 79,183, 88, 93,168,163, 58,141, 26, 34,
-172,175, 94,241, 55,255,234, 79,248,235,111,132,191,255,167,183,188,185,244,240, 37,244,184, 68,237,163,135,234, 51, 34,171,127,
-187, 62,243,238,245,247,188,126,247,204,203,209,255,192,120, 22, 72,162, 51,187,173, 80, 79,156,214, 19,231,229, 20,108,112,133,
- 84,106,252,238,166,146,148, 83, 10,208,141, 74, 80,187, 4,110, 47,207,252,228,171,159,242,223,252,247,127, 5,183,157,255,240,
-247, 55,150,124, 98,185, 91,192,149,247,239, 63, 48,218, 17, 25,243,137,239,209, 65,236,231, 81,142,113,176, 31, 47,120,187,178,
-148, 68,215,149, 91,203,124,255,230, 45,251,245, 61,171, 36,238,238, 86,212, 66,137, 74, 54, 87, 36,214, 49,155,188,128, 18, 80,
-165,173, 53, 24,157,165, 46, 65, 81, 28,193, 2, 72,105,161,151, 18, 10,211, 17,236,248, 69, 43, 37,215,169,153,236,116, 61, 2,
-102,148,133,179, 69,212,104,117,195,108,160, 18, 24,213,172,137, 83,130,158,192, 69, 67,121, 74,137, 84,238, 56,174, 7, 41, 67,
-173, 39,204,157,180,148,144,216, 70,164, 20,186, 55, 52,103, 52, 13, 84, 22,154, 25, 49, 64,198,229,128,212,217,122,167,119, 99,
-191, 29, 52,119,218, 62,240,113,196,159, 21,165,230,130,119,137, 11, 77, 73, 48,110,248,161,236, 99,114,255,213, 97, 55, 18,209,
- 7,208,236, 50,209, 90,157,230, 7,226,133, 34, 66,147, 22, 88,227, 4, 89, 19,125, 20, 46, 91,172, 27,214,114,166,232, 96,244,
- 62,213,190,129,143, 78,167, 80,122,101,140, 27, 41,221,147,125,208,199, 17,208,165,174,200,114,194,250, 96,169, 43, 57, 87,210,
- 42,113, 33, 28,193, 67, 88,242, 61,140,142,211,233, 22,234, 68,215, 45,232,126,163,115, 88,166,237, 1,231,233, 54, 98, 79, 47,
-112, 52,167,106,152, 26,135,218,132, 7, 13, 82, 73,147, 73,176,204,174, 9,101,121, 88, 88, 79, 25,151,232,108,168,229, 1,181,
- 74,150, 70,185, 91,112, 18, 37, 67, 27, 91, 12, 58, 61, 46,111,167,197,130,137,225, 7,212, 19,227, 58, 56, 68,216,125, 96,215,
-128, 15,229, 57, 28,136,194,122,206, 36, 93,145,243,202,114,142,157,184, 29, 70, 89, 75,100,128, 37,145,151, 66,150,132,245, 88,
-129,174,121,198, 3,179, 33, 20,114, 41, 60,156, 50, 63,249,238,187, 31, 61, 85,111,221, 57, 46, 27, 98,131, 87,119,153,188,222,
-127,145,195,113, 27,112,123,217,200,182,243,234,171, 19,146,215, 47, 38,143,239, 91,195,142,141,251,234, 44,143, 15, 95, 4,148,
-243, 57,163, 14,188,121,119, 99,123,247, 6,250, 5,213,248,252,185,135, 15,196, 59,236,109, 64, 13,117, 73,119,135,214,216,135,
-177,239,161,138,221,221,175,236,109,208,201, 20, 77,236,126,227,118,187, 48, 42,228,177, 34,239,131,155,208, 44,206,179,163,237,
-164,227, 66, 27, 78,250,238, 23,127,252,155,172, 97,116, 19,141,188,117, 87, 13,200,134,195, 32,226,108,250,153,160, 27,211,171,
- 38,254, 80, 86,226, 51,163,155,130, 80,198,176, 57, 5, 8, 33, 46, 71, 30,219,108, 96, 35,136, 96,146, 34,215,109,170, 72,142,
-189,152, 89,144,112,212,163,168, 69, 82, 69,179,196, 11,159,178,212,128,192, 97,166,112,144, 74,206,104, 17,100, 26,243,196,161,
- 58, 12, 29,225,206,111, 62,127,168,134, 90, 24,234, 28,157,228,179, 17,248, 71,162,112, 37,101, 16, 73, 44, 89, 40,165,196,116,
-167,160, 86,130,158, 39,177, 23,197,162,232, 70,240,136,228,232, 64, 72,168, 6,136, 70, 52,152,232, 17,145, 82,188,143,208,185,
- 71, 60,140,149,248,128, 53, 59,102,236,203, 25,189,135, 44,159, 37, 28,251, 30, 12,252,254,252,158, 31,222,124,228, 67,187, 99,
- 89, 22,138, 6, 63,191, 36, 7,105,124,120,186,226,158,240,110,147,159, 31,174,236,214,108,210,231, 36, 32, 55, 22,135,178, 58,
- 33,188, 10, 81,194, 49,226, 66,247,234,171,123, 30, 11, 60,191,125,207,219,231,107,196,144,194, 66, 5,169, 96,110,156, 31, 95,
-241,175,255,171, 95,243,215,191, 56,241, 15,191,253, 71,254,246, 31, 46,104,138,233, 90, 45, 12, 90, 38, 30,234, 73, 63,184,124,
-124,205,239,191,255,158,151, 13, 36, 71,114, 32,105,130,233,189, 20, 55, 68, 11,229,124,226,254,116, 71,241, 17, 4, 64,159,166,
- 76, 15,243,141, 38,141, 98, 16, 55,210,188,140,184, 12,178, 42,219,209,184,236, 27,255,230,191,248, 51,254,242,175,190,229,119,
-255,241, 13,175, 95, 46, 0,188,249,151,127,226,210,131,116,182, 93, 55, 70,143,134,138,154,227, 33, 45, 3,198,112,172,135, 99,
-191,181,141,170,202,221,253, 35, 57, 21,158,159,119,190,127,251,154,109,127, 38,139,112,119,122, 69, 90,163,244, 39,149, 37,232,
-103, 99, 4,157,109, 57,131,134,161, 79,114, 65, 75,236,191,145,138,233,129,140,240,108, 8, 30,101, 38,147,160,152,212, 40,185,
-208,243, 18, 46,239, 38,156,139,114, 48, 24, 85,177,173, 97, 30,114,111, 94, 78, 52,115,236, 56,230,132, 44,148, 82, 81,194,189,
-175,245, 28,148,186,180,161,169,112,186,143,226, 28,245,240, 79,248, 24, 72,170,127, 88,249, 12,129,222,217,186,114,244, 29,134,
-209,117,193,199, 62,119,193,225,117,144, 92, 81, 21,122,115,186, 24, 9,227,216, 15, 52, 79, 21,204,194,125,143, 10,122, 90,241,
-174, 12,185,198,229, 88, 87, 22, 79,129, 17, 30,202,112, 13,197,100, 31,108,222, 3, 63,124, 28,152,183,224,253,223, 58,253, 8,
- 41,183, 75,167,219,224,104,157, 84,207,208,199, 76,153, 58,102, 11,186, 36,116, 77,104,201,164,126, 71,169, 30,252,126,107,180,
-230,208, 91, 68, 51,147,210, 83,199,124,224,118,144,180, 82,206,103,186, 23, 60, 13,164, 15,112,229,104, 71,196, 12,151, 68, 26,
- 74,254,116, 9, 55,133,106,184,100,170, 66,170, 9,215, 19, 73, 50,233,161,178,228, 28,193,250,102, 97,100,237, 18,114,191,221,
- 40, 89, 96, 81,218, 17,189, 25,227,118,141,105,138, 6, 75,194,196,233, 28,216, 40,148,226,241, 57, 78,137, 45, 53,114, 77,156,
- 61, 62, 44, 41,223,147,150, 5,151,194,121, 89, 65, 32, 77,224,150,245,206,233,241,204, 87,119,117,238,234, 35, 26,103, 29, 36,
- 23, 74,137,213, 27, 9,114, 73,212,146,209, 82,184, 63, 23,190,250,201, 79,254, 63, 64,222,255, 95,228,230,230,244,219, 6,214,
-121, 56, 23,210, 23, 66,174,222, 58,244,109, 35, 99,220,223,175, 19, 62,243,227,191,118,135,253,210,232,251,198,195,234,212,187,
-199, 47,234,126,127, 30,240,241,245, 70,187,188, 71,199,206, 49, 66,249, 13,119,103,248,167,180, 57, 69,160, 23,192, 22,170, 54,
-146,102, 92, 42,244, 78,187,193,182, 95, 72,106,208,158,113, 63,200,174,212, 81,169, 52,154,100,246,108, 80,149, 85, 10,126, 90,
- 16,140,109,111,164, 63,250,229,175,126, 83,167, 28,158,202,167,232,153,131,197,193,226, 56,202, 39, 51,154,207, 29,237, 60, 64,
-244,211, 99, 63,220,213, 89,226,160,235, 76,227,154, 77, 64,205,136,195,206, 52,114,159,154,210,116,207, 70,169,131, 78, 73, 81,
-211,116,183,165,233,138,247,224, 52,151, 20,113,187, 46, 66, 21, 13, 24,136, 8, 42, 1, 39,183,225,164,160,174,130,148,207, 25,
-224, 56,212, 74, 28, 78,243,242,145,178, 32, 75,228,137, 73,144,194,189, 23,235, 7,155,251,250,249,109,228,156,200, 58, 39,238,
-225, 20,145, 9, 68,144, 56,112,150, 40,106,137, 86,180, 68,111, 18,136, 70,130, 79,173,181,196,195,212,199,103, 50, 31,163, 5,
-105, 78,230,129, 59,129, 13,138, 99, 35, 94,143,228,184,184, 28, 31,222,240,253,251,157,139,223,177, 36, 37,219,136,105,211, 7,
-162, 74, 27, 78,235,246, 25,160, 98,163, 7, 27, 94, 50, 74, 96,110,101, 86, 35,137, 50,131,183, 66, 74, 30,175, 95,227, 50,180,
-220,223,243,221,227,153,231, 15,111,121,255,180, 49,200,136,134,244,173,105, 65, 53,184, 0,223, 60, 86,254,244,107,184,188,254,
- 23,254,151,255,227, 13, 77,239,169, 37,246,152, 34,147, 79,128,209,182, 11,223,191,254,158, 55, 31,158, 57, 92,200,105,101, 89,
-114,196, 2, 61,156,178, 99, 56,185,156,169, 53,202, 95,232, 7,173,221,184,109, 55,182, 30,201,134, 49, 26,163,199,110,124,111,
- 61, 34, 96, 46,225, 46, 79,159,248,254,202,203,229,198,119,223,126,197,127,249,111,255, 21, 15, 57,243,219,223,126,207,232,198,
-239,191,255,129,189,109,172,229, 12, 26,110,246,118, 8,189, 53,212,133, 82,148,148, 66,212,145, 20, 68,249,222,110, 88, 31,148,
- 2,231,135, 7,100, 57,113,185, 28,188,121,251,134,235,126, 33,171,243,187,127,254, 39,222,189,123, 77,126,184, 99,189,123, 64,
-204,104,199, 17, 49,173, 37,146, 26,227,165,227,222,105,132, 41,212, 49, 52,101,146, 70,140,209, 61,179, 22, 33,151, 5,242, 9,
- 21, 33, 81, 57, 21,161,105,236,208,185, 29,236, 99, 74,210,122,162,141, 29,183, 35,218, 4, 61, 83, 52, 14, 77,151,131,161, 14,
- 35,212,129, 90, 21, 70, 35,155,177,155,208,110, 1, 86,146, 44,156,165,206,188,249,137,222,133, 62, 12, 27,141,177, 43,116, 24,
- 82,209, 26,200,225,156, 43, 58, 34,115,109, 10,205,140,202,220,221,165,232, 15,136,230,174, 20, 23,153,229,132,245,142,217, 21,
- 92,112, 47,152, 24,187,120,168,114,253, 22, 14,125, 39,168,106,158, 2, 99,235,157, 99,187,209,231, 37,135, 68, 76,184, 37,163,
-235,153,180,174, 60, 44, 25,177, 40,124,145, 10, 69,150,144, 53,113, 82,143,203,134, 9,152,109,120, 19,178, 39, 6, 78,239, 55,
-246, 35,214,103,234, 18,158,143, 34,209, 46,119, 75,140,110,152,100, 10,176,148, 59, 52, 21,180,119,146, 68, 33,213, 82, 22, 74,
- 81,114, 93,144,226,148,165, 70,204,177,197, 67,116,164, 6,217, 41, 61, 46,113,174,142, 14, 67,178, 51, 90,168, 42, 57, 45, 88,
- 3,219, 27,150, 66,113, 9,207,148, 80,124,197,233,228,164,148,116,226,160,147, 79,128,157, 88, 84,112, 93, 65, 51,119,165,196,
-243,151,131,181, 46,164, 85,216,172,227, 93, 56, 37,184, 63,135, 65,115,213, 26,112,163, 54,216,247, 61,220,248, 22, 3, 80, 94,
- 99, 40,114, 19,178, 22,190,126,120,224,225,171,111,126,212,158,218,129,151,109, 48,182, 27,202,224,225,126, 65,203,143,159,168,
- 29,184, 29,206,126,121, 33,211,184,127,188,155, 5, 33, 95,224, 80,183, 80, 0,218,177,241,234,164,148,243,151, 65,207,126,250,
-250,216,224,195,247, 31, 57, 46, 31, 25, 22, 30,160,222,183,207,235,236,222, 15, 14, 55, 40, 3,187,118, 6,138,228, 26,165, 85,
-190,177, 62, 20,236,230, 52,235,129, 79,214, 78, 89,206,184, 20,218,209,105, 99, 58,229,207, 9, 1,246,113, 71,118,193, 24,120,
- 55,210,207,127,253,171,223,100, 9, 3, 20, 8,210, 7,166,130,203,136,221,110, 14, 83,143, 78,221, 92,146,198,110,203,163, 34,
-212, 92,226,128,246, 22,132,180,185, 7,246, 17, 92,243,195, 12, 73, 57, 14,154,208,211,113,157,211, 60, 97,124, 15, 73, 56,218,
-209, 66,110,148,207, 85,176,242,201, 54,255, 89, 45,152, 13,102, 30,111,113,243,112,119, 39, 36, 80,130, 2,221,123,152,238, 44,
-118,151,163,119,146, 57, 75, 46, 72,142,190,185,236, 97, 96,242, 96,148, 70,117,234,228,102,143,201,173,143, 3,153,144,206, 83,
-180,101,185, 89, 60,240,146, 34, 35,152,240,197,149, 49, 39,208, 92, 34, 69, 32, 4, 49,206,198, 17,181,163,125,150, 1,142,168,
- 97, 49,137, 70, 40,108,204,127, 71, 33, 73,138,239, 99,127,225,229,221, 91,126,120, 50,142,114, 71,214, 20,134, 64, 21,180, 6,
-125,205,199, 39,183,125,200, 73, 89,125,250, 1, 18,154, 11,238,113,251,142,182,179,120,109,193,150,158, 30, 9,210, 36,224, 9,
-167,101, 69,198,141, 55, 31, 94, 48, 41, 81,127,235, 18, 28,253,164,147, 69, 32,220,158, 95,248,251,127,120,205,255,246, 31,223,
- 97,245,145,199,243, 18,211,143, 4,233,239,216,158,121,255,246, 7, 94,191,123,226,178,247,104,246,211,132, 36, 69, 69,241, 17,
- 40, 90, 16,202,178,176,164,224,110,111,251, 78,235,141,214, 7,109, 76, 50, 95,104, 31,216, 24,180, 17,233,136,164,177,246,145,
- 89,235,203, 84, 34,156, 65,223, 7,255,237,191,254,115,254,147,255,236,103,188,253,251,247,188,127, 26,172,167, 59, 62, 60,189,
- 13,233,122,185,139,203,164, 10, 93,102,196,110,214,215,230,186, 48,124, 48,182,142,229,232, 34,196, 6,163, 55, 42, 11,231, 90,
- 89,239, 94,241,124,217,249,253, 63,255, 51,255,242,230,137, 15, 79,207,188,188,127,139,238,141,188, 20,150, 83,161,212,115, 72,
-197,251, 49, 83, 17, 35, 46,159, 6,201, 67,169,193, 21, 41,137,178, 46, 48, 7,188, 92,107, 48,249, 75, 71, 74, 67, 85, 24,150,
- 25, 45,222,167,154,227,194, 52,128,146, 18, 75, 73,147,116, 56,216,221,195,244,169, 53,240,198,147,140, 37, 41,162, 50,163,119,
- 12,101,247, 9, 80, 74, 7,151,173, 49,142,198, 62,118, 26, 61, 62, 87, 93, 73,185, 64, 9,102, 66, 73,209, 2,213,109,144,150,
-130,179, 70, 15,132,100,178, 57,229,156,226,242, 59, 12,203, 70,201, 57, 34,167, 12,218, 0,247,112,173,251,126,155,165, 73, 39,
-250,245, 5,115,231, 54, 47,167, 39, 3,100,165, 21, 33,105,225, 84,239, 57,165, 96,173,215,243,202, 82,156, 37, 9, 53,175,208,
-110, 44,105, 33,105, 20, 48,221,218,193, 96, 80,189,145,115, 72,252, 62, 90,168, 47, 20,250, 98,220,246, 78, 59,118,100,173,168,
- 20,180, 31, 51,154,154,162,242, 56, 65,249,116,209, 79, 74, 87, 37,157,156,251,165,198,192,144, 21,107,123,148,162,152,224,150,
-162, 25,173, 57,102, 29, 43, 13,245, 76,239, 59,189,197, 26, 99,120,163, 51,104,173,161,203,138, 30,206,201,157,203,104,113,233,
-211, 40, 13, 93,203, 35,217, 59,156,141, 85, 43,126,190,103, 77, 5,183,138, 13,227,188,102,146, 13,140,142,155, 82, 93,169,119,
-133,156, 42,101, 12,110, 99, 96,162, 88, 55,214,187,196, 90,114, 76,249, 34,108,219, 1, 14, 85, 3,193,253,105,109,133,164, 32,
-126,162, 44,185,240,245, 55, 15,220, 61,188,250,209,241,173,235,203,134,143, 3,177,193,253, 93,249, 34,135,186, 1,151,203,160,
-237, 23,150,228,156, 31,239, 34, 78,253, 37, 20,128, 22,235, 2,252,224,225, 36,228,211,195, 23, 59,212, 13,120,251, 60,120,121,
-251,129,126,123,194,245,192, 13,154, 55,220,140, 91,100,138, 73,187, 49,186,224, 57, 33,214,233,215, 70, 74, 80,236, 64,110, 7,
-151,124,163,100,160, 4,246, 58, 12,171, 55,118,110,136, 8,235,114,162, 90,134, 22,102,200,177, 95,240, 60, 11, 93,126,241,171,
- 63,254, 77,206,130,247, 9, 90, 17, 80,153,249,115,143, 9, 85,230, 55,130,199, 58, 86, 73,145,145,251,212,127, 62, 26, 46, 66,
- 65,104, 12,204,108, 78,227, 18,187,230,249, 7,117, 70,220, 2, 63, 26, 83,146,230,104,120, 83,205, 32, 22, 38, 21, 98,207,158,
- 36, 98, 24,195, 66,138, 21,241,217,228, 54,235, 54, 5,146, 24,185,204, 7,189, 24,101,102, 4, 99, 47, 62,240,168,152,195, 83,
- 16,166,134, 43,244, 56,116, 69, 67,150,180,217,102,230, 18, 7, 50, 54,226, 48,243,136,233, 49,156,180,230, 72, 75,245, 6, 35,
- 20,135,195,156,164,179,192,195, 52,254,172,198, 37, 39, 17,255, 46,153,197,195, 18,237,163,241,115, 67,166,115, 54,104, 96, 42,
- 35, 30, 54,217,145,253,194,229,253,123, 94, 63, 43,190,124, 77,201,225, 91,144, 42,212,236, 44, 26,185,251,162,144,147,115,180,
- 30, 56,206,225,116, 9,156,171, 8,179,109,106,129,148, 16, 41,164,153,106,136, 5, 74, 40, 10,104, 20,183,200,216,217,183, 78,
-159,107, 15,119, 65, 74, 33,231, 48,239,185, 15,108,236, 28,189,179, 53, 48,148,187, 87,175, 56,175, 65, 46, 43, 24, 79, 79,239,
-120,251,246, 53,111,159, 55,246, 99,252,161,207, 88,102,251, 15, 62,163, 84,153,156,194,233,123,236, 55,142, 99,208,137,139,134,
- 77, 42, 68,236,217, 37,204,137, 51, 44, 33, 18, 70, 41,141,107, 35,130,145, 85, 98,253,146,224,195,135,143,252,252,155,111,249,
-171,191,249,107, 22,223,249,219,255,240, 3,235, 87, 95, 49,172,243,238,237, 59, 78,245,140,150,130, 89, 99, 73,133, 92, 23, 26,
- 25, 27, 29,119, 35, 91, 40, 80,119,223,252,148, 68,229,216,119, 64,113,139,149, 64, 54,103,173, 11,229,238,129, 82,214, 32,141,
- 53,231,253,135, 15,188,123,251,154,236,177, 75,247,180,124,246, 44,160, 5,179, 68, 73,160,158,217, 37,100, 89,201, 11,248,129,
- 91,167,214,115,236,178,246,184, 48,230, 44,220, 47, 43,205,156, 46, 7, 42, 5, 87,161, 22,199,114,157,253,242,138,246, 96, 64,
-104,206,129, 80, 62, 6, 57, 11,110, 71, 56,193,139, 81,134, 17,214,177,152,198,155, 89, 32, 94, 75,142,131,175, 57,121,241, 89,
-242, 19,114, 78,145, 80,206, 78,231, 20, 60,136, 96,189, 66,107, 28, 30, 85,183, 73, 15,132,120, 93,133,216,221, 38, 61, 49,218,
-142,154,145,189, 68,221, 41,141,126, 4,134,150, 36,208, 52,126,247,101,137, 53,132,103,214,116,130,121, 73,233, 57, 69, 67, 96,
-118,154, 58,158,102,197,241, 22,151,151, 75,187,197, 10,165, 40,216, 65,201,145,135,247,158, 73, 56, 71,119,108,148,160,198,141,
- 24, 30,196, 18, 69, 42, 73, 7, 53,215,112,229,159, 86,210, 90, 65,160,158, 50,230,131,181,156,177, 17,125, 22, 34, 11,251,113,
- 65, 70,152, 24,247,100,193,207, 16,197, 24, 52,219,163,220,167, 29,100,117,100,100,172,244, 96,124,175,161, 92,164,188,146,125,
-150, 93, 49,184,171,149, 36,142,231,133,186, 4, 81, 81,114, 13, 72,149, 20,178,158, 73,205,104, 62,168,167, 66, 46,198,118,117,
-178,220,179,172, 9,201, 25,215,134, 47, 53,222, 83, 18,126,165, 36,194,178,172, 92,175, 27, 46,137,214, 6,251,136,231,120, 73,
-225,141, 74, 37,124, 62, 90,148,148, 43,226,137,245,156,249,230,155, 87,172,231,251, 31, 45,101, 95, 47, 59,214, 27,201, 7,247,
-143,167,185,106,251,241, 89,239,235,181, 99, 19, 96,116,186,191,255, 34, 57,245, 1, 92, 54,167,111, 27,222, 14, 94,221,159, 72,
-203,249,139, 77,233, 59,240,246,217,184,124,124,130,237, 18,173,165,210,241,214, 57,134, 99,195,232, 61, 81,117,198,200, 55, 97,
-180,144,209,181, 24, 55, 41,236,123, 39,149,196,169,221, 33, 45,206, 76,109,141, 37, 59,139, 59, 62,140,135,229,196,199, 22,230,
-228,193, 51, 57, 59, 69, 6,173, 85,210,207,127,249,235,223,100,241,217,170,149,230, 35,127, 26,226,116,230,153, 93, 63,115,210,
- 61, 71, 32,234, 83, 67,154,166, 0,184,248,164,195,137, 76,119,173,164,233,148,143, 73, 91,197,201, 85,131, 2,103, 97, 14,227,
- 83, 97, 12, 78,250,108,139, 87, 52,167,217, 16, 22,187,250,148, 35,202, 70,207, 33,183,123, 64,104,164,132,105,169, 16, 46,114,
- 60, 5, 2, 54, 7,113,202,124,174, 1, 36, 26,198,240,196,154,163,174, 51,226, 94, 18,120,206, 52,226,112,183,216,125,135, 50,
-173, 33, 37,210,195, 84,214,227,181, 40,225, 98, 31, 62, 62,119,244,154, 27,163,183,248, 89, 77,226,158,155,127, 86, 19,178, 66,
- 55, 67, 36,227, 62, 72,174, 84,141,150, 52, 21,157,253,240, 80,188,115,123,122,207, 15, 79,224,245, 43,238,214, 68,182,131,163,
- 13, 74, 86,170,166,224,101,167, 18,253,188, 71,103,140,193,214,162, 61, 15, 15, 32, 65, 38,248,250,250, 9, 4,132,144,103,163,
-156,187,135,179, 94, 9,251,191, 38,124,174, 34,100,170, 23,193, 4,136,201,207, 90,163,247, 3,179, 96,247,187, 15,114,202,124,
-243,234,107,150, 53,115,123,249,200,235, 31,126,199,155,247, 79,220,142,160, 0, 78,205,103,174,116,194, 80,232, 61, 10, 87, 96,
- 70,111, 70,195, 70,195, 52,135,188, 63, 2,151, 26,239, 51, 1,140,148, 38,141, 76, 34, 94, 41, 26,168, 75,239,125,122, 2,210,
-103,179,102,223, 7,125,119,254,221,191,253, 11,190,249,246,158,223,254,221, 91,110,251,224,171,239,190, 98,223,111,188,121,251,
-142,122,119,199,185,174,180, 54,102,212, 50, 24,246, 46,112,220, 26,121,169,252,228,171, 71,220, 32,157,239, 17,148,219,229, 25,
-243,198,101,108,140,118, 99,205,153,243,233,196,178,222, 5,189, 78, 59,173, 27, 31, 62, 62,241,238,205,247,152,118, 78,165,134,
-107,220,163, 64,164,164,130,201,193,222,111,104,248, 74, 3, 60,131, 99, 18, 85,196,203,242, 42, 98,154,222, 98, 66,235, 53, 74,
-121,206, 5,107,209,120, 70, 79,152,237,172, 37,209,123,195,106,133,226, 36, 51, 20,168, 10,187, 27,169, 40,119, 9,172, 21,134,
-100,140,193,184, 5,213,106,200,244,122,144,163,166,216,227,146, 80,207, 41, 14,163, 20,128, 35,241,132,244,184, 26,163,131, 49,
- 34, 39, 94,172,133,252,108,209,113,208,145,105,168,212,240, 85,176,208,251,141, 92, 10,230,194,178, 60, 34, 39, 65, 44,192, 86,
-154, 50, 89,194, 75, 66, 45,108,227,134,181,141,190, 55, 6,157,158,133,222, 21,219,247,152,186, 15,184,141, 35, 96, 61, 30, 21,
-184, 90, 22,250,209, 88,169,216,128, 81, 98, 37,151, 52,145,179,178,230,168,115,246, 52,168, 90,201, 37,136,119, 94,149,187,111,
-238, 88,206, 95,131, 57,165, 84, 76, 50,230,137,210, 58,121, 73,136, 21,246,125, 99,152, 35, 26,172,237,228, 3,187, 54,124, 12,
-142, 61,158, 5,195,140,156,239, 73, 90,102,220, 87, 24, 54, 34,123,223,149,164, 21,179,152,190, 68,157, 37,159, 25,101, 97, 89,
-239, 73, 73,105, 35, 46, 97, 41,215, 88, 1,202, 64,170,227,116,138, 9,178, 27,141, 28,106, 89, 54,154, 43,150, 19,146,161,220,
-165, 96, 65, 12,153, 42,152,211,250, 76,248, 88,128,182,114,157,105,133, 20, 41, 19,213, 32, 62,230,153,135, 63,157, 78,124,247,
-237, 43,202,143,220,127, 15, 96,187, 70,157,239,162,198,253,171,251, 47, 18,103, 27,192,229,229,192,142, 27,143,119,153,114,250,
- 50,113,182,144,245,141,125,219, 88,232,188,250,250,203,100,234,255,239,206,250,119, 47,131,151,247,239,144,254,204,176,142,249,
- 65,107,131,225, 97, 12, 94,134, 65, 82,142,222, 32, 39,198, 28,168,245,206, 40, 71, 97,147,134,228, 19,151,235, 7,204,118,210,
-169,146, 10, 92, 71,133,154, 89, 87, 56, 88, 56,182,157,158, 78, 28,118,163, 54,165,114,166, 31, 27,233,143,126,253,167,191, 17,
- 27,241,166, 34, 42, 53,133,142,248,236,244, 78,241, 97,205, 42, 72, 9,135,117,128, 68, 20, 77, 37,100,120,201,224,105,190,121,
- 34, 98,225,248,140,197,197,154, 59, 14,104,141, 27,227, 52,105, 33, 26, 86,127,241,120, 96,127,218, 39,143,152,144,181,196, 20,
-178, 38,197, 38, 39,155, 36, 44, 41,118, 43,158,162, 45,204, 45,104, 91,136, 80, 74,138,102,247,230, 36,139, 73, 82,210, 64,166,
-155, 85, 83,166,141,241,185, 49,202,103, 78,187,225, 32,153, 44, 6, 57,232, 85, 54,140,241,233,118, 51,121,190, 33, 99,199,161,
-159,138,146,137,135, 80,184,145,132, 36,177,146, 24, 35, 34,122,154,102, 73,138,133, 92, 28, 38,189,129, 17,125,235,145,213, 14,
- 95,194,126,125,207,235,247, 59,123,126, 96, 41,130,183, 43,221,102,116,173, 36,242,186, 70, 92,237,176, 9, 52,216,184,236,159,
-192, 26,193,218,207, 51,238,229,113, 46,198,195, 24, 67,137, 61, 59, 50,163,137, 54,232,163,147, 83,249,124, 25, 49,139, 24, 98,
- 89, 42,171, 68, 87,116, 31,141,222,123, 0,125, 36, 38, 87, 93, 42,143,143,103,246,143,239,120,251,254, 3, 47,123,159, 53,169,
-194,108, 83,137,184,154,235,140, 74,198,229,108,244, 30, 44,248,209,233, 30,242,225, 12,212,199, 84, 53, 83, 15, 50, 49,181, 50,
-223, 79,238,127,152,208,153,221,235,228,144,244,179, 72,228,159, 83,230,242,124,229,207,127,253,115,254,244, 23, 63,229,223,255,
-237,247,120, 55,202,186,112,247,240, 53, 31, 62,188,227,122,121,102, 21,193,146, 16, 1,131,142,122, 9,247,183,100,214,211,137,
-177,109, 28,125,231,103,223,125,203,126,188,240,244,252, 68,242,224,235,119,139,142,238,225,157, 90, 18,181, 44, 20, 57, 81, 31,
- 31, 35, 31,189,117, 62,188,127,226,249,205, 91,220,140,243,249, 14,213, 5,147,157,156, 18, 99, 8,165,220, 35,122,224,166, 72,
- 15, 21,163,228, 26, 80, 32, 29,113, 72,137, 4, 74,119, 24,213,207,120,115,116,169, 88,219,105,132,236, 45, 53, 62, 35, 41,105,
- 92, 2,204,217, 61,250, 24,232, 6, 86,241,147,176, 95,119,246,190, 35, 53, 7,134, 57,173, 17,215,179, 68, 57, 37, 78,121, 33,
-165, 65, 45,137, 53, 21, 78,181,208,232,228, 28,210,251, 49,169,141, 93,132,228,241,158,237,233, 76,187, 93,145,114,130,217, 29,
- 97, 12, 52, 71, 79,173,106,172,112,244,148,145,146,162,184,198, 50, 3, 67, 37,145,203, 39, 18, 86,163, 15, 65, 77,241,234,100,
- 25, 28, 91,143,194, 17,140,194, 9, 23,167,206,244, 13,229,204,242,120,162, 28, 35,212,155,156, 89,214,202, 16,229,148, 11,185,
-206,139, 90,214,248,121, 29,157,243,114, 38,223, 69,203, 99, 53,165,239,142,136,113, 46,130,245,131,253, 22,196,175, 97,129,164,
-109, 54,224,232,108,121, 67,134, 96,187,210,116, 71, 60, 32, 62, 94, 4, 60,147, 21,242, 57,192, 89, 34,131,106,137,187,122,130,
-188,132, 17, 82, 64,181, 83, 82,102, 80, 67,221,233,141,146, 34,203,238,226,208, 5,125, 88, 41,165, 35,195,105, 67,168,118,166,
-123, 99,179,142,100, 65,233, 12, 87,210, 41,158, 71, 92, 59, 39, 34, 22,120,119, 58, 33, 67, 57,223, 9, 11, 5,177, 66, 87,161,
- 86,161, 2, 78, 92, 46, 85, 61,146, 7,249,140, 76,236,118, 74,202, 79,127,246, 77,168,121, 63, 50, 75,126,220,110,120, 31,156,
-146,179,190,186,255,209,198,187, 79,123,239,237,218,160,109, 60,156, 43,105,253, 50,230,187, 1,236, 55, 99,236, 55, 22,233,156,
-191,186,155, 62,172, 47,231,124,127,255, 97,231,246,241, 25,179, 43,105, 24,251, 17,229, 69,184, 71,111,135, 57, 62, 18,173, 25,
-189, 26,168,114, 90, 19,126,105,112, 51,198, 82,192,141,179, 15,242,131,210,155,193, 67,133,182, 33,253,160,249,100,248,203,153,
-114,223,240,125, 32,102,244, 82,121,185, 61,147,126,249,199,191,252, 77, 78, 25,199, 41,146,167,227, 56, 0, 45, 51,199, 70, 77,
- 50,203, 90,102,174,108,182,158,185, 59, 99,180,248,115, 4, 81,234,147,179,156,153,199,158,231, 8, 54, 34, 22,149,136, 15,213,
-167, 26,214, 20,218,234,148,187, 67,214,206,162, 65,219, 74,153,146,106,132, 16,220, 98, 79, 44,128,134, 81, 76, 71,236, 44,155,
-199,148,169, 50,144, 20,117,169,237, 48, 44, 65,205,204,250,206,193, 16,159, 77,110,132,145, 77,130,210, 35,204, 3, 57, 11,181,
- 8,160,180, 99,246,181, 47, 33,161,125,202,232,227,225, 42,151,153, 16,208,154, 35, 27, 58,223, 50,161, 14,132, 67,247,147, 67,
-223, 62,253, 76,230, 62, 75, 92,208,249,128, 12, 6,126, 66,182, 39,222,188,123,226,201,206,172,235,138,200, 1,250, 64, 93, 87,
- 78, 69,226, 16,203,153,146,230, 30, 63, 11,183,163,197, 94,102, 86,201,250,188,212, 12, 62,237,210,136, 30,233,249,223,221, 71,
- 52,216,165,169, 94,104,250,220, 96, 87, 92, 49,205, 44,229, 76,146,192,208, 90, 50,124, 68,164, 39,215,105,244,243,136, 33,113,
- 92,121,255,225,194, 97,243,226,166, 78, 22,226,205, 75, 96,135, 83, 42, 56,134,245, 49, 47, 50,161, 96, 32,142, 72, 72,144, 19,
- 59, 19,112,162, 79,198,190, 32,228, 68, 92,201,163, 3, 62, 37,137, 73,222,237,115, 79,187,166, 0, 22, 5, 19, 64,217,246,141,
-119,111,174,252,236,241, 91,126,120,234,188,185,117,124,100, 78,167,202,215,175, 30,121,121,255,196,219, 15,239, 80,235,148, 20,
-177, 49, 27,241, 26,115, 81, 94,173, 75,252,253, 34, 12,107,124,124,251,251,176,124,214, 18, 43, 41, 66,250,210,148, 81, 58, 62,
- 6,231,245,158,191,252, 87,127, 77, 89, 31, 57, 90,244, 4,140, 49,248,248,252,204,243,135,183,208, 27,231,187, 51,230,131,101,
- 93, 40, 57,212, 45, 52,212,147,122, 82,210, 90,195,252,216, 59,218, 13,187,171, 68, 82, 84,241,209, 41, 98,228, 53,147,146, 82,
-151, 59,180,109,104,130,118,219, 81,115, 32,199, 69,210, 19, 57, 27,157,198,216,194,221,223,218,160, 38,157, 77,116, 43,119, 37,
- 6, 19, 95, 66, 49,169, 89,209,228, 84, 73,228,147,194,112,108,115, 68, 15,250, 41,222,187,126, 52,218, 40,209,231,224,198, 80,
- 71,107,139,136, 41,134,247, 78,174, 10, 82,195, 69,159, 27,154,203,188, 56, 94, 97, 3,134, 49,124,199,247, 30,117,200,122, 48,
-134, 49,100,208, 92,201,221,232,107, 70,205, 98, 60, 39,161, 90,209,101,153,139,111,135, 10,107, 78, 49,225, 62, 20, 70, 90, 66,
-245, 51, 33,149, 51, 70,116, 83,156,171, 66, 86,110, 71, 15,114,221,225,116,223, 3,185,236, 30,106,227, 17,201, 15, 75, 7,200,
- 65,117, 97,183,198,232, 97,248,181, 49,137,113, 37, 62,199, 82, 3,222, 18, 43,192,206, 90, 11,178,199, 64,112, 62,223,115,244,
-206, 16,161,164,131, 98, 9, 77,117,254, 39,214, 77, 34, 3,145,194,214, 14, 22, 9,178, 99, 87,195,142,107,184,249,147, 82,100,
-161,209,161,116, 74, 90, 33, 13, 44, 9,203,140, 16, 10, 70,154, 0,172,135,181,210,247, 57,141,175,209, 18, 56,122,139,109,201,
-140,103,105,214, 32,125, 78,179,165,171,225,196,244,126, 94, 51,223,125,247, 93,164, 87,126,204,225,219,103,178,100, 52,238, 42,
- 44,119,247, 95,196, 73,190, 15,216, 46, 55,164, 31,220, 63, 44,164,186,126,177, 73,250,122,109, 28,251,198, 89, 7,167, 87, 15,
- 97,174,248, 66, 95,215, 1,207,111,174, 28,207,207, 28,219,133,214,119, 68,156,162, 18,102,206, 99,160,199, 44, 26, 27, 10,199,
- 96, 79, 87, 60, 37,122, 83, 90,143, 40, 49, 26,113,228, 37,156,157, 60,191, 24,119,122, 34, 23,103,219, 19,180, 65,117, 99,244,
- 29, 77,142,101, 37,231, 29, 25, 78,250,229, 47,130, 40,247,169, 82,214, 60,220,210, 62, 31, 98, 34,177,219,140, 46,233,185,207,
-211, 40, 50, 17,145,144,234, 36,118,220, 99,102, 41, 17,155,221,219, 68,172,205,137, 15,201,188, 39, 12,143,189,178,164,132,228,
- 20,123,198, 56, 11, 80,145,184, 79,249,148,217, 25,211, 44, 21, 7,165, 70,112, 30,245,105, 12, 27, 81, 52,195,136,202, 82,235,
- 19, 51, 27,139,101,178, 36, 58, 18,132,174, 17, 53,118, 41,167, 48, 2,150, 28,153,239,217, 21,239,201,145,254,105,122, 54,172,
-123, 76, 28, 40,189,219,188, 80,232,188,137,202,244, 19,204,137,115,150,222,216,236, 73,119,226,161,208, 71, 32,101,139,214,200,
-210,231,248, 25,139, 70,146, 0,132,108,131, 15, 31,222,242,182, 47,172,231, 71,178, 93,130, 4,118,119,230,254, 28,123,123, 23,
- 69,117,230, 84,243,224,182, 53, 30,191,251,150,159, 62, 40,207,215, 3, 47, 57,186,237,213, 62, 99,106, 53,197, 78, 92,100,102,
-232,165,144,209,144,211,221,200, 17,226,143,219,123, 45,228,178, 6,209, 78, 51,163, 93,113, 83,150, 28,149,154,102,145,107, 64,
- 19, 62,226,247,220,198,248,124,128, 99,246,153,158, 38,170,164,148,195,213, 48, 34, 74, 52,204,131, 38,244,121,205, 19, 44,127,
-199, 35,190, 40, 18, 63,115, 62,173, 74,130,176, 87,210, 92,189, 76,233, 65, 98, 81, 31,239, 21, 52, 50,226, 81,161, 67,206,137,
-119,207, 87,174,214, 40,245, 1, 43,153,222, 12,117, 37,173,153,111,127,242, 71,148,122,226,249,253, 71,246,219,141, 97,141,164,
- 81, 67, 9,157,164, 70,213,194,253, 82,120,126,126,226,195,243,109,238,139, 97,201, 37,218,148, 60, 86, 38, 46,177,242,209,190,
-211,219,133,135,135,123,190,126,248, 26,175, 57,136,134, 24,219, 24,188,127,247,150,203,211, 91,126,120,255,134,203,211, 7, 94,
- 61,124, 75, 22,101,213, 4,218, 73, 75,101, 41, 29, 79, 78, 41, 5,205,153,147, 59,137,138,136, 80,178, 98,139,225, 71,166,158,
- 50,181, 15, 88,148, 29, 71,252,204, 41,101,250,112,134, 54, 16,225,184, 70, 50, 37, 75,162,215,168,128, 37, 25,244,142,148,130,
-150, 66,219, 27,107, 86, 30, 78,143, 49, 85, 6, 11,149,253,118,176,155,161,107,193, 70,141, 9, 97, 56,201,157,182,117, 6, 78,
-118,103,116,103, 77,137, 67,140,163,141,104,169, 59,194, 12,232, 75, 66, 70, 66, 77,176,237, 8,229,203, 58,189, 53,122, 15, 40,
-202, 90, 79,244, 91, 24,208, 82,142,125,250,189,156, 98,106,215,204,178, 70,186,225,112, 1,233,104,141,202,222,220, 2,153,139,
-164, 48, 92, 14, 65,220,103,236,199,241, 50, 88,214,130,155,243,114,233, 65, 18, 20, 24,253, 32,137,114,219, 59,169,128,250,194,
- 97,141, 54,241,201,203, 88, 73,146, 25,185,144, 69,194,211, 42,144,181, 34,213, 89,150,133, 59,114, 96,161,211, 3,153,196, 54,
- 58,139,174,211, 56, 12,249, 20,184,103, 63, 42,182, 4,131, 65, 60, 74,139,106, 25,220,246, 29,146,112,242, 2, 37, 98,114,150,
-140, 69, 86,144, 74,223, 6,148,140,165,140,141,134,186, 83, 83,101,185, 95,144,107,163,121, 37,201,194,227,253, 29, 57,175,236,
- 87, 11, 86, 65,178, 48, 72,137, 98,105, 80, 36,179,212,244,185,238, 25,148, 60,235, 86,133, 17,165, 59, 37,113,127, 90,248,246,
-187,111,127,244,129,118, 61,140,227,186,225,222,185, 95,132,114,254, 50, 40,215, 91,119,110, 79, 55, 10,141,199,135,245,139,236,
-233, 63,161,103,111,215, 70,219,119, 30,171, 83,191, 16, 40,231,211,215,135, 1,207,239,158,185,189,188,167,219,117,174,106, 60,
-146, 18, 67,105,195,104, 24,108, 54, 89, 7, 70,219, 58, 91, 19,134, 42, 99, 7,218,129,152,210,113,210,128, 75,106, 72,191,197,
- 37,180,117,154,247,168,250,178, 30, 60, 15, 75, 84, 41,228,205,184,108,157,244,211, 95,253,234, 55, 49,129, 79,110,123,138, 3,
- 91,103,107,155,169,205, 58,210,192,185,106,154,230, 50,137, 76,183, 50, 93,225,201,144,233, 34, 23,209, 9, 9,153,242,111,138,
-155, 51,234,209, 64, 69, 0, 33,146, 70,155,144,216,192, 44,140, 44, 62,101,111, 62, 81,213,231, 78,213, 37,148, 2,225,211,222,
-218, 63,205,120, 84,173,161,144,103, 69,107,130,209,162, 77,110,238,185,162,127, 60, 12,126,154,192,109, 96,157,153,123,158, 59,
-220, 2,185,199,255,247, 19,182, 69,101,102,231, 53,178,242,146, 52,100,102, 79,177,211, 23, 24, 71,240,219, 37, 23,176,128, 87,
- 0,241,218, 82, 10, 68,174,197,170,192,109,204, 28,119, 68,218,178,134,114,113,123,121,205, 15, 31, 21,150, 7,214,124, 99,140,
- 78,210,194,253, 67,230, 62,199, 19,166,148,200,188,215, 42,200, 56,216, 44,243,167,191,254, 57,127,241,179, 51, 31,158, 95, 72,
-185, 96,162, 81, 85,170,137,154,211,108,199,171,224,198, 34, 39, 28,167,141, 3, 81,231,180,172, 33,197, 79, 31, 68, 42,143, 36,
- 45,129,185, 84, 99,223,142,160,251,169,211,134,205,140,117, 28,112,189, 7,217, 79, 38, 26,183,207,200,158,207, 75,153, 68, 75,
- 14, 71,239,211,103, 56,189, 22,159,126, 99, 18,235, 2,183,120,109, 41,110, 68, 97, 84,156, 74,202, 39, 47,169, 32, 1,244,209,
- 50, 47,155, 51,111, 79,236,216,179,166,144,247,137,247,211,209, 54, 46,205, 57,127,251, 45, 53, 29,108,109, 76, 45, 34,113, 42,
- 5,236,153,223,255,240,154,158,206, 65,240,243, 35,154,208, 12,142,163, 49,128, 54, 58, 79,215, 27,157,130,229,144,205,197,102,
-175,124,157,181,181,226,244,126,176,245,198,251, 15,207, 60, 63,253,128, 31, 55,150,186,112,126,120,164,212, 51,210, 99,197,177,
-217, 96, 63,140,219,214,232, 45,254,254,203,243, 19,248, 96, 52, 99, 59,140,197, 21,205, 80,178, 80, 40,140,179,224, 35,133, 25,
- 12,153,242,233,137, 61,117, 90,107, 97, 56,235,133,231,237,138, 75, 96, 40,123,219, 35,167,236,137,221,123, 64, 96,114, 71, 83,
-162, 8,156,151,202, 82,132,180, 38,210,150,232,121,196, 82, 99, 24, 67, 50,142, 48,198,160,156,148,100, 97,194,204,186,176,117,
-240,201,117,239, 51,145,178, 31,145,101, 95,180, 83,164, 32,189, 35,139, 96, 86,233, 71, 35,173, 2, 68, 73, 81, 78,144, 78, 5,
- 19, 97, 41, 18, 81,215, 82, 57, 45,103,196, 14, 50, 9,207, 37, 64, 62,154, 41,231,132,105, 34,175, 37,216, 17, 71,184,207,149,
- 83,148, 10,181,151,184,231, 81,162, 65, 15,235,208,156, 0, 0, 32, 0, 73, 68, 65, 84,177, 74,112,231,107,124,207,251,177,115,
-140, 62,115,249, 17, 87,236, 35, 16,198,247,247,143,104,183, 32, 36, 86, 67, 45, 69,215, 69,118,106,173,161,170, 17,112,160,240,
-115,156,168, 75,194,118,101,200,142, 18,234, 66, 78,194,186, 22, 18, 97,140,141, 5,154, 97,148, 9,205,137,247,254,222,250,132,
-211,212, 0,118,141,192,132,186, 53, 50,202, 80,167, 75,166, 72,166,181,134,211, 40,227,142, 69,238, 40, 94, 88,213,217, 83,226,
- 62,215,160, 54,110,157, 94, 66,177, 40,139,145, 74,225, 76, 32,136,179, 42, 82,167,163, 69, 62,213, 70, 15,178, 46,225,223, 24,
- 78,201, 5, 69,185,187, 91,249,250, 39,223,254,168, 3,205,128,203,173,195, 30, 13,118,231, 69,169, 95,224, 80, 55,224,122, 29,
-244,237,138, 90,231,254,254,244,197, 50,234,183, 6,251,243, 13, 27,141,115, 26, 44, 15, 95,102, 93,240,233,251,254,248,113,240,
-244,254, 45,215,203, 71,220,110,140,225, 12,194, 32,235,238,216, 30, 24,232,156, 43,151,100,108,210, 65,207, 84,203, 12, 57, 16,
-239,113,158,173,112,108, 87,252,188, 34, 35,207,129,106,112, 53, 35,157, 87,250, 6,153, 30, 83, 44, 3,124, 99,219, 14,140, 74,
-142,178,140,140, 43,140, 22,192, 2, 36, 32, 6, 33, 55,199, 84,101,115,207, 53,154, 71, 60,109, 76, 82,172, 31,179, 60,100,238,
-224,125, 10,186, 46,243, 97, 30,221,235, 35, 15,100,132,147, 93,243, 4,192,244,246,217,192,134,135,123, 91, 52,238, 0, 99, 56,
-163, 27,170,138,149, 76, 50, 65,122, 72, 86,185, 6,183,122,180, 30, 49, 27,143, 31,148,154, 96,173,205,143,215,108, 46,114,229,
-255, 98,237, 93,123, 52, 75,175,243,188,107, 61,167,189,247,123,168,170,238,158,158,238, 25,246, 12,135,164,117, 0, 21, 69,176,
- 12, 57, 78, 16, 56, 65, 28, 36,254, 89,250,158, 31,148,111, 9, 16, 5, 65,108, 41,144,109,201, 36,101, 82, 34,103, 56,167,158,
- 62, 85,213,123,218,251, 57,173,124, 88,187,155,148, 19, 3, 6,212, 5, 16,232, 30,206, 84, 87, 23,234,125,247,243,172,117,223,
-215,213,229,237,224, 95, 17,111, 62,225,222, 42,210,189, 25,142,156, 85,112, 82,143,212,160,235, 11,221,210,187,189,118,156, 38,
- 66,247,116,223,241, 42,166,143,244,206,242, 4,206,211,123,167,149, 66, 8,182,211,124,203,161,199,217,139,205, 5, 59,224, 4,
-103,183,133,170,157,168, 30,231, 61, 75, 57,243,205,155, 76, 30,158,112, 21, 27,189, 46,228, 62,112,117,181, 97,183, 77,104,110,
-132,104, 24,203,224, 6,180,158,121, 94, 60, 15,110,174,217,199, 70,240, 3,211, 52, 50,202,200, 33, 47, 28, 15,106,226, 24,105,
-246,144, 14,110,245, 64, 43,229,114, 36, 4, 33, 14, 9,212, 17, 69, 81, 31, 33,237,136,126, 64,122,179, 85, 75, 93,152, 9,168,
-111, 76,155,192,249,214,104, 71, 97, 8,107,226, 94,168,170, 56,111, 1,157,134, 9, 34, 88, 25, 6,181,118,171, 59,245, 53,236,
-182,194, 99, 84,127,195, 54, 48,249,143,190, 11, 64,233,186, 91, 71,204,244,164,118, 37,183,112, 94, 45, 54, 38, 14, 3, 26,196,
-156,228,235, 65,176,181, 85,213, 91, 59, 89, 28, 55, 15,191,199,147,143, 62,195, 17,240,218,205,102, 36,153, 40,112,255,230, 21,
-127,253,215,255,158,219,195,194,199,159,124, 68, 62, 31,185,125,121, 7,162,132, 21,116, 84,202, 66,238, 14,117,129, 16, 26,173,
-130,223, 4, 50,130,228, 74, 60, 45,104,202, 12,209,222,244, 75,237,208, 26,247,247, 11,151,185, 48, 29,239,185,222,236, 25,175,
-118,164, 71, 55,248, 49, 81, 46,103,206,231, 35, 93, 50,175,223,124, 65,153,247,116, 17,210,113, 99,164, 48,113,236,246,123,110,
-198, 13,222,119,198,171,192, 62,222,176,117, 9, 66, 98,236, 66,118, 51,151,195, 5, 29, 71,234,165, 50, 5,199,161,157, 77,135,
- 28, 70,202,229,100, 7, 27, 25, 40,209,177,241,142, 73, 32,151, 78,138, 29, 25, 35, 73, 96,110,150, 95,113, 67, 64,115, 91, 91,
- 44,178, 78,223, 34,165, 22,220,108,172,131, 32, 43, 73,141,153, 82,103,156, 58,150,174,108, 92,167,246, 21,106,228,225,146, 11,
- 42, 74,184, 40, 62,101,163,203,181,128,164,104, 36,186,105,196,183, 74,203, 51, 18, 58, 18, 35,254,210,105, 37,147,210,214,216,
- 23,222, 19,157,199, 23,240,217, 1, 21,205, 51,125,116,180,230,104,117,102,179, 79,176, 52,154, 8,146, 23,220,176,208, 24, 88,
-150, 78,136, 29,189,171,118, 89,240,222, 4, 39,105,161, 75,178, 31,171,105, 32, 70,143,199, 19, 71, 7, 13,138,118, 24, 61, 42,
-138,234, 72, 47,133,208, 65,252,150, 48,218, 4,169,149, 72, 61,157,112,201,209, 23, 71,218, 0,101,139,196,194,220,192,235,130,
- 23, 65,245,138,210,160, 75, 65,154,135, 9, 26, 13,157, 21,170,226, 39,129,165,208,195,218,134,105, 3,234, 3,234, 43, 3, 5,
-239, 39, 51, 72,198,100,221, 14, 87,152,181,155, 55, 91,103, 84,132,235, 7,158,118, 41,156,123,197,109, 19,253,226, 81,231,152,
-181,224,147,160,206, 91, 77,211, 55,155,126, 57,143,200,250,176,232,230, 85,120, 75,248,156,166,244, 15,166,168,153,150, 66, 41,
-221, 4, 65,113,156,222, 91,152,173,170, 53,133,220,154,157,120,111, 6, 53,125,155,113,106,248,228,223, 43, 73,110, 1,230,174,
-132,102,104,178,222,213,104,157,189,210,122, 51,252,114,178,203,205, 41, 23,187,176, 54,143,239, 13, 21,165, 95,128,224,209,166,
- 52, 7,131, 75,118, 49, 40, 11, 65, 71,203,173,232, 45,253,238,192,180,221, 35,243,192,236, 20, 39, 25, 45, 30,134, 66, 57,207,
- 4,175,250,110, 79, 28, 87,159,138,168, 73, 49, 88,109,106,173, 22, 16,103,207, 94, 58,244, 98, 29,206,181,174,166,130, 73, 79,
-180, 34,106, 2, 17,161,128,170,225, 15, 67,180, 14,122,235,132,232,214, 52,185,183,207,169,205,248,234, 85,233,213,106,107, 66,
-131, 30, 86,198,183,213,234,236,135,213,250,226,174,175,220,111,177,209,180,169, 79,109, 23, 6,110,213,200, 86,180, 55,196, 69,
-240, 66, 47, 29,188,217,146, 84, 76, 15,104, 9,253,106,211, 4, 21, 22,239,209,238,109, 4,220,141,231,174,193, 66,122, 56,251,
-111, 92,239,235,215,101,245, 43,137,163, 5,238,180, 17,130,103, 22, 79,207,118,115,117,216,186,192, 98,119,141, 82,173,134,133,
- 26,121,173,228, 51,175, 95,188, 97,241, 55,220, 92, 69, 56, 29,200,213, 18,227, 67,176,233,200,116, 51, 33,231, 76,139,142,109,
- 80,222, 28, 50, 67,216,241,225, 46,145, 23,211,243, 13,227,104,189,242,197, 49, 36, 69,122, 48,132,110,179,215,152,119, 29,213,
- 11,155,113, 36,166, 13, 93, 42, 57, 47,224, 60, 46,140,196,112,133, 11, 66,110, 71,142,167, 51,222,119, 98,114,228,166,112,168,
-134,225, 12,214,221,174,181,173, 35,244,142,214,181, 26,167,106,107,136,174,235,238,118, 29,169,175, 92,255,213,135,135, 58, 75,
- 94, 59,177,232,158,136, 61,252, 13,112,180, 86, 45, 68,241,226,105,116,188, 58,154,216, 94, 40,215,130, 11, 48, 18,185,190,217,
-178,217, 36,238, 79, 51,247,135,153,162,194,239,254,232, 25,143,159,126,194,254,106, 71, 12, 74,111, 11, 75, 9, 4, 47,120, 31,
- 56, 30, 15,252,228,167,127,205,183,207,143, 56, 47,188,250,234, 23,212, 90,184, 95, 50,131, 56,156, 84, 92, 80,198,100,201,255,
- 40,118,112,244, 13, 90, 46,168, 83,162, 79,212, 22,201,217, 42, 77, 33,218, 11,207, 77,145, 82, 5,109,157,211, 60, 51,247,204,
-118,185,231,106,220,113,189,191,226,234,217, 15,185, 28, 78,124,247,237,231,156,151, 19,167,243, 61,165,194, 16,108,151, 22,135,
- 45, 75,109,148,113,166,247, 78, 58, 94, 49,189,250, 14,105,103,246,215,215,140,251, 61, 83, 24, 80, 2,229,120,162, 19,152,107,
-161,212,108,147,161, 34,184,224,205,166,230, 6,118,195, 68,168, 25,100,102, 28, 61,177,120, 22, 42,151,106, 83, 44,154,141,170,
-123, 24,232, 93,168,117, 97, 76, 1, 41,153,193, 55, 84, 43,151,222,240, 89, 57,182,163,153,234, 42,148, 10,113,152,104, 37, 51,
- 13, 27, 46,161,112, 57,207,196, 20, 8, 41,209,234,140, 2,195, 48,225,199, 68, 61,157,215, 62,187,178,204, 74,242,129,158,187,
-185,190,135, 68,107, 29,245,217, 36, 37,120,114,185,216,254, 63, 76,198,158,183,183, 16, 54, 94, 24,247,137, 59, 61,209,115, 6,
- 95,105, 26,145,147,146, 70, 51, 51,150,101,161, 55, 72, 65,144,170,196, 94, 41, 68, 82,132,222, 2,105, 52,133,107,208,140, 79,
- 55, 44,249,140,248,193, 42,187, 4,156, 70,194, 38,194, 37, 91,160, 85,149, 56,141,244,122,161,104,103,240,227,218, 16, 1,245,
- 23,106,177,209,118,211,198,232,175,172,142,232,160,196,134,239,145,128,105,147, 93, 84, 36,116,166,228,169,205,177,212,142,236,
- 35,110, 46, 12, 91, 71,244,123,202,105,198, 57,101, 12, 19,190, 38,138,191,167, 54,207,102,124,136,200,140,195,147, 37,163,135,
- 13,110, 10,184, 12, 75, 93, 51, 23,100,196, 21,171, 6,146, 40,245, 98, 32, 32,181, 85,133,138,245,117,157, 42, 99,136,104,176,
-160,165,143,254,189,220, 76,123,181,195,181,211, 70,140,239,231, 1,169,216,148,184,105, 35,122,236,150,247,158, 62,122, 55,171,
-166,168, 29,160,222, 39,116, 38, 96, 53,202,170,141, 0,152, 75,180,226,131, 82,171, 88,134,108,116,212, 37, 83,179,226,134, 70,
-111,142,208, 3, 69, 51, 41, 57,212,205,212,115, 39,223,123,154,116, 54, 13,156,102, 52,120,242, 41,147, 52,162, 94,168,151,133,
- 22, 60,132, 4,151, 45,165,157,104,162, 56, 42,193,112,149,197, 70,139,128, 91,251,177,130, 61,225, 43,153, 16,236,116,195,186,
- 39,106, 52, 27,109,173, 26, 64, 36,208, 74, 71, 29,132, 16,173,114, 20,236, 13,177, 75,160, 54,219, 13,138,211,149,126,230, 32,
- 85, 75, 83,183,138,115, 38,164,160, 90,138, 79, 93,164,162, 12,211,202,121,175,138,123,215, 7,175,168,243, 52,181,240,151,136,
-210, 74, 39,122, 99,228,170,179,221,110,148, 64,117,250, 91, 61,121,135,115,149,218, 96, 8,158,236,108, 79, 39, 42,120,137,107,
-168,160,209,168, 68,231,169,174, 35,205, 32, 52, 54,219,111,180, 12,201, 59, 60,141, 86, 59,173,174, 61, 34,215,145, 22,200, 75,
- 39,186, 96,181,174, 21,174, 19,213,129, 87,154, 42,181,153, 34, 50,138, 65, 85,110,111,239,185,171, 55,108,246, 27,250,229,110,
-245,129, 79,140,201, 19,146, 1, 90,118,227, 68, 74, 3, 46, 53, 94,125,247,154,251,182,225,211, 15,119,214,223,119,194,233, 88,
-104, 75,103,209, 78,232,137, 18,172,119,174, 56,162, 56,242,114,226, 88, 23,123,160,199,209, 86, 37,216, 56,176, 57,199,184,125,
- 72,116,142,186,156, 9,117, 54, 8, 75,105,214,207, 94, 10,111, 58, 86,171,112, 1, 5,150,197,152,248, 93, 27,170, 30,215,140,
- 43,208,189, 39,136, 39,250,192, 37,159, 44, 91, 97,155,164, 53,181,110,117,186,190,190, 49,202,186,139,183,204,134,173,125,186,
-128,107, 54, 14, 29,136, 4, 31, 86,213,165,185,203,187, 86, 90,233, 28,142,182, 18,122,124,179,225,102,136, 60,127,147,249,244,
-163, 71,124,255,147,199,220,157, 13, 47,234,156,129, 57, 74,104,148,211,137,191,249,233, 79,248,226,171, 23,116,239,233,234, 56,
-228, 70,171, 22,218, 43,189,153,151, 32, 43,181, 84,134,209,250,244,226, 28,195, 96,237,138, 75,235,171,108,168,225, 67, 50,118,
- 66, 85,186,171,164, 80, 9, 49, 32, 14,154, 88,230, 98, 62, 23,150,124,199,208, 46,108,183,145, 63,252,189,223,225,248,209, 15,
-249,119,191,250,183, 28, 95, 63,167,204,197, 12,116, 75,134,218, 40, 30,206, 71,147,190,236,107, 39, 15,182, 83, 59,180, 11,254,
-190,144,176, 7,158, 79,145,221,246,134, 48,142, 68,157,232,173,146, 82, 66,106,103,244,138, 31, 43,190,221,147, 91,103, 28, 18,
-170,182,246,202,213,214, 46,222, 21, 74, 24,161,204,180, 84,208,217, 17,186,146,253,145,224,214, 38, 73, 53,192,252, 92, 10, 18,
- 28,125,182,206,189,132,142,250, 74,119,141,238,149,168, 3,108, 4,231, 61,158,142, 31,134,117, 85,213,233,213, 17,125,160, 55,
- 80, 87,137,226,233, 67,160,229, 11,189, 71,146, 66,205, 51,179, 84,252,232, 8,249, 98,253,122,141, 72,174,228,160,116,159,144,
- 57,147,203,137,154, 61, 89, 26,161,218,131, 35,197, 96,175, 81,245,171,234, 21, 92,175,214,227,239,208,124,198, 15,129,228, 70,
-100,241,244,101, 97,196, 51,108, 70,154,120,124, 28,215,189,246,133, 92, 33,184,102,232,102,201, 84,109, 36,133,114, 94,167,129,
- 9, 90, 91,144,230, 57, 29, 10, 93, 10,174, 55, 3, 70, 57,207,162, 51, 78, 58, 18, 61, 65, 18,218, 58,205,219, 84,202,139, 64,
- 74, 28,238,206,164, 52,154,149, 16, 33,142, 3,229,212, 8,155,137, 16, 45,104, 28,213, 81, 68, 72, 97, 48,192, 77,155,145, 49,
-224, 43,180,161,242, 34, 31,153, 14,138, 31, 38,100,177,247, 65, 31, 60, 9,207, 69, 59, 99, 44,196, 24,105,218,137, 56,196, 69,
-243, 30,104, 32,165, 96,196,130, 38,132,104,245,197,127,240, 3, 82, 49, 76, 50,188, 19,117,189,175, 49,118, 47,213, 2,126, 81,
-215,138,235,123,250,220,213, 50, 90,210,186, 17, 76,223,227,135, 98,218,236,185, 45,228,101,198,105, 99,166,209, 22, 19, 59,233,
-224,184,116, 91,221, 8,192, 18, 80, 95, 8, 77,200,173, 83, 60, 72, 27,216, 70, 71, 47,103,188, 84,106, 19,250, 16, 88, 80,252,
-224,241,167,145,115, 57, 81, 59,164,232,208,185, 82,229, 2, 97,160,229, 76,233,130,255,248,123, 31,255,169,243,193,116,153,205,
-120,212,125, 69,138, 54, 93, 49,140,106, 35,210,190,222,170, 44, 53,237, 8,193,170, 70,109,133,202,184,213,177,142, 55,146,153,
-116, 93,249,236, 22,110, 97,165,197, 53,175,246, 67, 32, 66,175, 6, 59,113,221, 33,174, 65, 20,171,190,121,235,121, 39, 93,193,
- 35,120,186,184, 21,148, 33,171,126, 13,106,209,149, 96, 84, 86,189,162, 82, 90, 67,156,199,247,183,196, 49, 59,144, 4,231,201,
-205,186,212,136,174,228, 55,121,167,115,117, 43,119, 30, 81, 67,151, 74, 64, 74, 71, 89,113,150,235,238,150,119,123,225, 68,213,
- 66, 88, 3,134, 94, 28,126,221,201,251,181,166,103,251,102, 59, 41,183, 86,109, 31,175, 74,155, 79,188,188, 43,200,120,197, 20,
- 10,229,178,160,126, 98, 24, 60,219,113,228,106,123,195,131, 93,196, 41,164,125,192, 45, 51,223,124,119,100,247,240,134,135,215,
- 86, 80, 75,195, 68,140,202,113, 46,220,221, 53,122, 85, 98,156, 24,134,104,221,213,229,158,115,153,137, 97, 36, 72,162, 73,197,
-105,183, 55,201,165,146,136,136, 20,242,229,118,173,124, 29, 41,117,166,148,202,146, 51,173, 89,106,221, 33,212,108, 62,110,149,
-192,219, 45,245,176, 25,240, 62, 48,164,193, 76,110, 33,226, 98,176, 44, 65,107, 52,167, 70, 41, 19,123,227, 77,105, 32, 14, 35,
-105, 53,156,133, 20,240, 26, 86,245,235,218, 54, 72,182,143,199,117,212, 89, 8,206,123, 35, 27, 10,118, 0, 80,148,203, 92, 56,
- 29, 27,181, 41, 75, 45,220, 31,143,108,135,145,176,217,160, 62,210,115,166,137,144,203,194,207,126,246, 83,254,246,243,111,209,
-110, 52,182, 20, 35, 72, 71,123, 49,152,145,246,117,226,100,154,222, 90, 42, 53, 23, 90,111,150,139,116,107, 86,192,217, 52,200,
-175,147, 30, 33,128, 10, 37,219, 21, 64, 86,170, 97,112, 9,245, 32,210,241, 21,142,167, 25, 87,207,164, 49,179,221,239,216,236,
- 62, 68,188, 77, 83, 28, 74,147, 70,203,246, 90,201,173,114, 60,221,115, 57,157,112,174,173,239, 20,202, 82, 60, 48,144,253,192,
-253,225,142,229,124,103,100,169, 52, 18, 35, 20, 26, 74, 39, 18,237,117,179, 17,252,108,220,112,141, 74, 41,182,234, 74, 27, 11,
- 98,245, 10,163, 4,164,122,150, 82,173, 75,191,116,156, 36,156, 31,232, 90,113,123, 96, 10, 22, 66,107,142,184,217, 98,241, 71,
-161,135,193, 82,232, 68,156,102,100, 12,150,155,136,214,210,232,151,133,228, 71, 42, 5,102,243, 26, 72,116,168, 84,131,229, 68,
- 33,185, 70, 67,136,206, 16,194, 52,123,207,169,125,193,251,181, 38, 75, 49,252,101, 12,140,110, 3, 67, 67,162,183, 27,189, 11,
-184,224,153, 82, 52,229, 50,141,208,197,192, 55,210, 24,156,195,169,237,242, 25, 2,227,176,179,213, 93,178, 53, 83,111, 66, 15,
-224,134, 72,107,153, 58,155, 70, 53,120, 69,170, 82,165, 65,117, 4, 77, 88,102,223,168,123,154,148,232, 12,158,227,147,178, 29,
- 61,213,216,182,248,102,225, 84, 47,113,205,181, 20,240, 35,174, 70,226,198,193,118, 36,148,209, 0, 89,107,109, 48,142, 29, 29,
- 10,179, 15,248, 56,224,107,194, 75,161, 56,243,200,187,170,176, 56,130, 84, 74, 15,196, 41,130,247,180,216,240,189,179, 29, 7,
-210,218, 16, 65, 64,170,172, 18,164,128, 56,143, 19, 69,188,213,224,164, 59,196,123,198, 96,151,155, 90,140,108,169,189,161,221,
- 58,248,186,106,101,123,239,166,247,125, 11,132,106,214,238, 64,237,193,120, 56,205,148,243,133,222,236, 18, 48, 6,240, 49,218,
-231,105, 54,169,163, 91, 6,138,110,107, 53,222,253,175,255, 71,191, 94,255, 28,237,156, 78, 11,243,233, 72,235,141,128,178,153,
- 60,178,234,168,109, 2,184,166,170,223, 62,148,126,251,215,191,245,103,216,191,219,222,253, 25,115,173, 28,238,238,169,203,153,
- 90, 26,187, 36,196,193,173, 47,255, 21, 58,182,254,187,218,215,223,247,110,149,219,110,129, 79,233,246,189, 65,187,129,171,218,
- 98,123,237,190,240,234,246,200,171,175,190,166, 93,142, 44,101, 54,175, 1,166,189, 46, 43, 46,188,148,198,164,163, 61, 83,170,
- 48, 80,185, 20, 71, 37,144,253, 66,111,222,104,151, 17,186,116, 66,247,132, 24, 8, 85,144, 90, 89,152, 87,179,101, 99, 94,238,
-109,138,206, 98, 97, 97,239,168, 53, 34,255,248, 79,254,169,138,128, 35, 89, 95, 87, 27, 46,173, 50, 10,170,237,101,154,233, 0,
-123,179, 78,185, 95,245,149, 34,138, 19,227, 88,235,186, 51,238, 98,181, 15,183, 66, 93,140,233,110,183, 38,209,106,123, 36,100,
- 29,195,218,120, 66, 80, 18,145,172,198, 37,183,222,171,221,182,189,216, 77,163,175,193,243, 48,136,213, 2, 48,237, 99,105, 74,
-242,171,182, 53,154, 76,161,245, 12, 62,224,213, 27, 85,206, 55,180, 90,231,185,172,225, 25,112,150, 5, 96, 13, 8,174, 16, 25,
- 31, 2,162, 29,231, 2, 42, 74, 45,141,142,105, 84, 85, 21,223, 45,184, 37,222,140,114,185,101,124, 48, 88, 71,173, 11,218, 43,
-154, 38, 6, 44,124,211,232, 80, 28,177, 53,106,232,212, 10,125, 62,113,247,230,192,177, 71, 66,240,164, 16,236,166,231,163,145,
-129,134,137, 71,251, 29, 15,158,236,184,142, 2,243,204, 47,191,124,197, 65, 3,191,251,253, 27, 6,140, 66,212,125, 96,255,112,
-199, 39,207, 62,100, 94, 22,126,254, 55,223,240,205,151,183,116,215,185,191,189,227,254, 92,113, 49,144,196, 12, 92,189, 58,122,
-203,148,118, 1, 25, 72, 18, 80,189,112,169,198, 31,118,171, 13,202,148,173, 74,119, 32, 62,226,124,176,219,116, 20,188, 4, 66,
-156, 8, 49,146,250,133, 16, 77,135,121, 58,156,185,203,103,122,177,159, 19,197,148,160, 67,154,152,246, 15, 25,130, 67,186,133,
- 45,123,235,228,118, 38, 4,143,230,198,156, 15,134,221,204,133,230, 58,209,123,252,218,146,104,213, 24,228,226, 45,187, 48,164,
- 4,210,233,249,109, 34,223, 86, 54,193, 15, 60,184,218,240,236,179,143,121,250,209, 99,188, 68,242,188,240,197,231,255,129,159,
-255,237,183,204,181, 17,130,189,209,246,154,185,212,106,121,143,117,207,111, 43,124, 35, 2,246,110, 15,105,191,194,115,146, 55,
-163,218, 48, 38,210,176, 65, 92,226,156,179,101, 80,104, 68,226,138,243, 84, 92,232,108,162, 35,140, 17, 45,157,224, 2,121, 61,
- 68,110,146,227,230,225, 21, 63,248,209, 63,225,227, 15,127,192, 79,127,246, 51,126,250,147, 63,167,181, 51,243,220,200,221,234,
-116, 90,237,251,238, 35, 36, 23,232, 30,130, 11,124,244,224, 41, 31, 62,251,152,195, 82,248,246,215,223,226,164,176,217, 15,124,
-248,228,134,113,119, 5, 52, 82,179,230, 74,140,133,161, 58,170,122,102, 21,130, 52,212, 39,170,131,168, 11,168,163,245, 8,203,
-197, 24,231,254,154, 62, 52,150,218,104,185,208,187, 35, 77,202,229,190, 48,207, 5,231, 6,100, 16,134,193, 49,183,140,214, 72,
- 28,192, 5,101, 57, 84, 98, 20, 92, 11,184, 96,182,197,218, 45,240, 24,186, 85, 15,115, 5, 13,224,180,226,157,163,150, 21,246,
-219, 4, 55, 54, 52, 37, 60,142, 86, 32,174, 80,168, 69, 34, 67, 40,204,165, 48,140, 14,252, 72,175, 11,236, 34,105,217, 16,106,
- 51, 44,180, 52,186,206, 70,216,171, 35, 90, 10, 23, 61, 19,212, 81,157, 18, 72,224, 27,251,155,107, 4,200,217,110,175,189, 23,
- 46,165, 25,162, 90, 23,250,165,211,100, 50, 54,194,249, 76, 73,230, 52, 24,123, 96,110, 5, 25, 13,140, 85,206,103, 84, 19,187,
- 52, 82,139,241,220,157, 56, 52, 10, 27,153,112, 18,200,114,100,114,129, 62, 14,148, 82, 13,235, 57, 23,226, 48,112,208, 78,208,
- 78, 8,157,185,155,219, 94,164,225,250,150, 77,176, 6, 72, 79, 14,215,140, 27,210, 5,194,236,240,131, 55,250,216,224,153,118,
- 9, 93, 26,251,171,196,118,187, 53, 6, 1,202,169, 54,122,233, 76, 67, 88,223,232, 45, 64,235, 69,136,206, 14, 63, 49, 13,108,
-118, 87, 12,155, 45,209, 5,134, 33,174, 25, 32,123, 27, 53, 13,182,188, 67,114, 27,144,204, 52,216, 96,105,238, 37, 55,150,203,
-140,167, 24, 88,203,193, 24, 71,226, 56,174,156, 1,227,120,200,170,249, 21,237, 22,160,133, 53, 13,110,236, 1,123, 62,246,245,
-230,175, 44,165,145,151, 25,213,178,242,250, 97, 72,145,148, 70,203,143, 96,239, 55,172, 86, 81,227, 4,172,244, 73,187,117,226,
-188,253,190, 54, 12,195, 45, 22,216,190, 44,153,220,214, 26,104, 91,195,142, 41,154,176,104, 37,128,249, 53, 96,108, 68, 75, 11,
- 52,235, 26,206,126, 75, 30,117,216,123, 83, 45,157,214,141,196,153, 91,229,112, 56,146,207,103,180, 67, 94,238,232,181,177,244,
-197,190,175, 57,115, 90, 58,165,195,164,198,251,168, 93,105,161,144, 91,197, 55,199, 44,149, 54, 47,104,233,232,220,241, 67, 34,
-171,162,139,229,130,154, 83,212, 37,106,153, 73,237, 72, 13,137,188, 40,193,101,146, 27,112,186,225,112,233, 4, 60,184, 6,226,
- 12,151,233,125, 64, 12,251,182, 30,160,196, 52,158,186, 62,136,213,198,190,193,121,187, 89, 59,197, 55,187, 57,175,193,111, 28,
-182, 95,213,102,181, 11,156,141, 51,155,116,154, 66, 32,226,164, 83, 90,179,174,177, 88,189, 67,170, 65, 68,130,170, 5,217,196,
-186,230,189,234,138,104,181, 29, 44, 98,101, 40,175,224,162,163,118, 99,140,186,106,149, 39,137,130, 22, 5,223,169,171,161,204,
-137, 82, 89,171,122,218,240,206,217,168, 30, 71,136, 17,105, 6,215,176,191, 60, 54,198,112,109,117,126,219,227,191,228, 70,115,
-246, 55,116,189,210,194,250,179,175, 38,171,233,107,194, 81,180,144,187,183,206,127,183, 19, 99,247,118,102,243,189,112, 58, 31,
-120,125,158, 9,131, 77, 64,156,139,124,248,236, 99,126,248, 36,242,213,243, 55, 28, 46, 70, 24, 90, 46,141,205,205, 21, 85,207,
-220,150,194,135, 79, 31,178,219, 6,122,133,210, 33,183,194,155, 23,119, 68, 21,158, 61,189,230,191,251,231,191,195,223,252,249,
- 79,248, 63,254,213,175, 56, 20,251,123,215,124,160,187,192,146,141, 14,215, 69,152,246, 15, 40,185,161, 33, 49,164, 71, 56,109,
-108, 18, 68,183,167,123, 33, 14, 66,242,147, 49,238,241,196, 24,184,222,236,241,253,196,210,149,143, 30, 61,100,255,240, 17,191,
-254,226, 87,188,124,254,115,142,135, 25,231, 76,217,107,239, 10,138,184,176,190, 64,148, 39, 87,137,221, 52,210, 27, 84, 81,122,
-117,204,125,224,246,213, 61,113,216,144,245, 68, 95,188,237, 44,223, 78, 8,188,153,242, 66,240, 54,150,247,158,228, 6,162, 87,
-114, 83, 98,180,150,198, 82,212,218, 24,181,240,234,238,200,221, 95,253, 7,190,251,246, 27, 62,251,225, 15, 56,190,121,195, 47,
-127,249,156,162,126, 37,123,193,156, 45,145, 42,111, 15,117,210,141,132,232,141, 53, 47,234, 0, 59, 60,212,214,233,165,211,122,
-166,107, 51,157,110,143,248, 48, 48, 36,161,185, 8,117, 13,203,225,168,222,214, 57,167, 44,248, 92, 72,174,227,118,118, 88,234,
-115,225,178,192,252,197, 75,122,254, 11,182,229,192,213, 16,248,236,247,126,159, 23,175,190,134,151,175, 24,150, 70,205,149, 51,
-198,137,118,217,179,184, 6,201,177,148,198, 47,191,253,146,231,175,191, 51,167,122,156,136, 97,226,124, 82,126,253,197, 61,195,
-230,150,237, 56,176,219, 25, 86,212,181, 29,135,190,224,123,182, 67,247,104,185,142, 20, 18,174,173, 73,236,188, 32, 91,111,150,
-181,102,118,188, 97, 35,228, 38, 40, 19,238,210,236, 48, 31, 27,212,153,126,114,104, 77, 48,128,250, 66,203, 2,203,170, 68,238,
- 74, 41, 21,183, 84,220,184, 67,130,195,245, 76,149,128,244,190,134,181, 28, 58,122, 82, 15,184,218,104, 24, 84,133, 20,209, 62,
- 32, 61,179, 25, 39,123, 64, 22, 71, 74,153,206,250, 48, 15, 25,127, 89, 8, 4,244,210, 8,221,122,253, 18, 27,218, 7,156, 12,
-244, 65,232, 4,114, 63,217,216, 63,108,145,126,164,167,134, 27, 28, 77, 43,109,174,120,159,104,139,194, 80,137,201,147,231, 5,
-231, 54, 16, 58,157,153,218,133,144, 60,251,152,152,213,102,115, 73, 3, 5,135,204,129,141,223, 24,115, 35, 41, 68,193, 21, 71,
-236, 66,211, 6,110,198,249, 9,231, 2,185,119,244,188,144,198, 72, 62, 93, 40,181, 49,137,199,185, 74,214, 66,239, 35,123, 73,
- 44, 68,216, 52, 54,203,194, 57,235, 10,245,218,129, 43,140,181,147,221, 66, 26, 6,130, 58,230,161,208, 91,163, 94,172, 55,162,
-107,181, 23, 32,151, 74,107, 54,205,202,189, 17,147,113, 24,172,138, 30,108,186, 25, 12,154,244,217,167, 79, 25,119, 59,203,205,
-185,191, 63, 66,254, 79, 13,187, 85,127, 59, 32, 7,111, 78,141,203,237, 27,200, 51,163, 87, 62,124,250, 16, 23,211,187,113,252,
-223, 11,214,175,159,248,237, 69, 90,248,205,239,215,172,178,173,247, 20, 14,135, 74, 62,220, 82,150, 51,251, 77,100,255,248, 49,
-235, 95,130,183,133, 98,149,245,146,254,150, 60,250, 31,125,237,111,191, 70,126,251,255,187,116,252,253, 29,173,204,212,211,153,
-205,118, 96,251,193,211, 85, 57,186,174, 4,215,209,120,183, 71,224, 59, 50,237,187,223,175, 24,209,149, 93,198,170, 76, 33, 3,
-241,168, 28,190,121,206,237,203, 23,104, 83, 83, 80,107, 32,151, 76,108, 48, 52, 79, 10, 74,166,178, 28, 51,195, 54,174,153,163,
-192,185, 20, 98,154,240,123,207,252,221, 27,100, 26,205,236, 86, 79,164, 33,112,186,204, 12, 98, 7,253,243, 44, 36, 54,184,208,
-201,203, 5,138,210,162,101,209, 70, 46, 4, 45, 86, 11,235, 88,210,208,189,109, 15,119, 11,201,161,214, 11,118,218, 45, 69, 42,
-209,118,202,125, 33,134, 64,236,145, 69, 43,174,139, 33, 40, 49, 69,166, 56,179, 10, 21,116,149, 44,168, 5,179,122,165, 75,195,
-221,124,159,199, 79,119,132,239,126,193,237,221, 66, 94, 41,111,165,152,235, 56,186, 0, 94,168,173,173, 99,207, 21, 20,175,150,
-126,173,125,237,123,235,219,106,157,141,139, 90, 16, 11,167, 57,123, 49, 86, 21, 59,153,121, 7,161, 49,226,232,117,237, 75,123,
- 7,165,161, 53, 91,149, 47, 56,186, 58,162,218,184, 92,131,167,151,182,214,251,148,228,253,187, 84,119, 15,106, 86,171, 98,253,
-116, 13,109, 29, 83,129, 84, 69, 93,165,213,182,170, 56,101,229,225, 67,206, 71,222,220,207,246,102,229,140,177, 63,183,133,152,
- 2,159,126,176,231,245,171, 11,151, 96, 1,187,229, 60,147,243,158,211,253, 9,117,194, 52,118,164, 36,187,121,135,194,208,133,
- 75,133, 55, 47, 46,124,247,252, 21,121, 57,112,251,230,200,177,101, 42,145,205,213, 53,195,240, 17,227,110, 71,108, 74,247, 27,
- 30, 63, 29,105, 57,227,227, 3,166,209,116,156,155,224,216,143,194,233,112,161, 15,141,122, 94,168, 75,177, 20,243, 24,217,166,
- 72, 88, 10,231,166,228, 10,249,246, 43,190,187,124,199,163, 15, 62,225,112,255, 13,231,195,188,134,251, 96, 57, 85,156,218,109,
-156,222, 41,253,204,175,190,250,156,201, 79, 54,213,241,158,253,144,120,248,228, 41,109,223,121,121,247, 10, 39, 19,226, 22, 66,
- 55,117,103,237,157,174,133,174,158,205, 52,224,125,229, 50, 55, 98,178,174,190,102, 91,179,168,179, 10,182,213,233,154,101, 36,
- 66,228,243,111, 94,241,226,187, 87,116, 34,248,129, 81,140,127, 94, 90, 69,155,241,213,181,174, 15,243, 96,167,250,156, 27,162,
-142, 48, 4,162,216,122,201, 5,251,249,107,189, 65,238,156,156,237, 88,125, 60,179,217,111,152,198, 68,239, 35, 75, 83, 74,201,
- 72,171, 6,254, 33,209, 91,179,126,246,125,198, 71,207,176, 25,232,203, 2, 26,121,254,245, 29,255,215,225,223,178,189,222,243,
-193, 7,223,227,143,126,231,191,230,244,236,196,207,254,230,255,225,112,120,205,206,121, 74, 86,230, 57,147,187, 64,181,250,211,
-118,191,195, 77,137,211,156,233,231, 91, 6,119,100,156,182, 16,182,156, 46,142,195,171,215, 4,255,138,221, 46,240,193,135, 79,
-217,222, 60,164,103, 97, 28,149, 62, 56,164, 15,208, 22, 92, 18,195,185,119,135,250, 72, 88, 42, 61, 42,185, 11,254, 50,163, 26,
-169, 90, 89, 56, 81, 69,136,110, 66,134, 11,101,169, 20, 85, 38, 29,232, 61,147,151, 78,150,142, 95, 9,148, 41, 77,228,222, 13,
-225,234, 38, 46,189,224, 91, 35, 12,137, 65, 44,180,118, 90, 26,179, 8,227, 54, 34,205,147,162, 39,215, 19,174,116,116,101, 94,
-184, 96,171, 36, 51,166, 41, 62, 90, 37,182,204,153,180,210, 14,139,216,109,155, 0, 99, 20,106,134,190, 8,248,245, 34,160,158,
- 86, 79, 12,147, 55,158,194,178, 18,219,100, 67, 26, 35,181,103,114, 29,232,154,105,106,246,199,152, 26, 73,141,107, 81,215,134,
-135,170,133,159,162,236,233,156, 44, 12,150, 2, 82, 22, 14,171,195,126, 8,129,232, 38,232, 23,102,215, 17, 57, 65,223,224, 89,
-208,222, 40,217,222,159, 92,140, 52,159,112,181,208,150,133,144, 2,115,176, 73, 81,157,149,179, 10, 34, 35,174,100,154,220,163,
-161,147, 59,116, 77,204,189,145,156, 99,127, 61,177,100, 24,106,199, 93, 69, 74, 43,112, 92,136, 42, 20,233, 22, 70, 12,158,193,
-139,129,131, 48, 72,150, 80,109, 20,222, 60,155,109, 98,187, 27,121,247,148,252,207,253,144,191,255,235,221,228,169,167,128, 22,
-199,205, 62,146, 82,250,255,255,119,127,251,247,242,255,253, 60,191,253,145,128,182,241,212,131, 35, 57,199,213,126, 98, 76,239,
- 39,128, 39,123,199,155, 75,164, 44, 23, 54, 81,120,250,225,213, 74,102,252, 79,125,209,255, 25,201,184,223,250,136, 15,132,243,
-113, 3,183, 54,106,111,173, 17, 92,183,231,150,131,202, 66, 85,211, 15, 15,227,192,133, 70,200, 6, 40,211,236,136,189,225,212,
- 49,107,160,151,198,226, 35,221,121, 42, 51, 83,186, 70, 91,229,124, 62, 16,101,160,141,145,214, 97,138, 19,205, 29,105, 64,208,
- 6, 82, 9, 72, 64,187, 85,195, 80, 27,135, 27,176, 69,215, 7,207,111, 78,226,226,223,178,160,237,225, 85,115, 55,110,122,244,
-171,113, 76,215, 96,142, 1, 25,196, 54, 7,246,205, 18, 27,109,202,218,135,141,215, 19,255,244, 71, 3, 90, 59,255,231,193,147,
- 75, 93,247, 32,150,149, 94, 88, 59,180, 88, 45,160,169,165, 61, 11,134,124, 29, 86,132,172,190,181,159,173, 99, 62,215, 61, 52,
-103,193, 21, 17, 11, 19,168,195,171,101, 6, 84,108,183,228,215,248,150,137, 74, 32,144, 80,148, 20,131,237,128,106, 69,151, 70,
-105, 74, 28,162,165,191,155,237,123,213,250, 48,208,131, 1, 92,168,182, 55,246, 66, 41,213, 58,253,235,138,129,184,106,106, 85,
-209,156,185,125,115,207,220,197,198,171,206, 88,216, 46,116,234,114,226,197,107, 3,215, 12, 14, 52, 54, 30, 93, 13, 60,255,245,
-151,252,242,249, 29,223,251,222, 99,174,252,136,216, 2,159,136, 16, 55, 66, 34,161,151,204,151,223,126,203,183,183,158, 97,247,
- 33,207,158, 13,140,155,200,102,119,195,211,135, 31, 19,250, 75,106,105,108,246,143,120,188, 83,238, 15, 13, 63, 36,235, 55,135,
- 5,233, 59, 62,120,240,132,211,237,183,168, 84,206,167,204, 82,132,135, 15, 34, 75, 13, 56, 45,156,142, 7, 38,119,197,249,118,
-230, 94,224,245,221, 29,165,125,201,245,163, 15, 89,202,133,122,119, 33, 86,232,206,192, 30,178,238,139,123,173,204,173, 83, 5,
-194, 48, 88,199,190,156, 40, 29, 62,124,250,148,165, 47,220,189,186, 35,141, 19,251, 39, 55, 60,222,236,153,219,153, 90, 27,115,
-174, 72, 47,212,114,176,158,109,207,168,139,164, 56, 26,108,200, 25,105, 76,213, 14,109, 90,161, 75, 99, 28, 6, 11,250,105, 39,
-104,125, 71, 71,140,206, 83,196, 24, 5, 78, 45,124, 89,155,173,123,140, 34,215, 40, 75,179,209, 94, 11,132,232,136,201,227,137,
- 72,231, 55,233,101, 41,248,124,193,249,138, 15, 27,118,155,145,214, 70,242, 92, 56,231,217,252, 1, 3,148,236,173, 94, 89, 50,
- 50,175, 23,165,201,168,103,151, 86,241,167, 19,103,253,134, 20,132,103,159,126,159, 44, 63,226, 23,191,240, 92,110,111,137,210,
- 96,240,208,205, 4,214,186, 73, 87, 66,239,108,167,200,253,171, 19,103, 50,234,149,121, 62, 19,211,196, 52, 68,106, 75,188,124,
-213,248,244, 89,224,191,255,111,254, 11,190,254,106,225,215, 95,124,129,159,103, 52, 25,238,151,170, 52, 41,198, 93, 56, 55,170,
- 87, 82, 82, 74, 45,104,177,145, 37,173,216, 36,172,119, 46,125,161,183,130, 72, 68,244, 66, 62,159,216,142, 35, 36,103,156,246,
-220, 56,246,142,215,133, 97, 19, 8,221,147,123,181, 86,197,246,194,166, 64,149, 13,121,117, 66,187, 41,146, 43, 76,216, 42, 45,
-166, 61,226,222, 18,221, 28,177, 13, 84,159,201,117, 97,231, 70,122,168,148, 37,154, 2, 21,165, 85,199,226, 10,155, 20,169,117,
- 32, 55, 8,226,240,162,148, 48, 83, 79,141, 9, 79,145, 64,189, 52, 6, 47, 44,234, 9,169, 83,101, 49,110, 69, 72, 68,160,208,
- 9,170, 12,147, 50,215,192, 16, 3,253,156,113,226,136, 18,136,201,209,202,217,234,177,226,233, 58,195,185, 33,233,134,105, 43,
-116,127,162, 31, 27,199, 80,112,234,112,107, 77,142,222,236,230, 30, 60,185,116,118,219, 0,186, 48,207,103, 66, 26, 72,126, 64,
- 93,101,179,153,168,179, 77,166,252,232,105,167, 25,241,106, 68, 74,231,113,169,211, 90,199,247,200, 56, 25,235,130,148,104, 9,
- 6, 17,171, 95,118, 88,162,216,168, 91,212, 46, 55,213, 19,213,232,147,186,218, 13, 85, 29,209, 57, 82,112,239,165,155,109, 83,
- 73,193, 59, 37,165,247,135, 90, 53, 16,154,154,215, 35,186,247,155,100, 91, 41,169, 99,114,198, 22,121,143, 31,162,230, 53, 9,
- 81, 40, 81,232,217, 88, 5,181, 43,205, 85,220,228,209, 2, 41,120,206,135, 76, 27, 59, 18,149,249, 62,211,165,112,159, 43,211,
- 60,225,135,107,122, 60,145,231, 66,174,129,160, 39, 98, 63, 83,167,100, 83,171, 83,133, 90,169,139, 18, 73,136, 92, 33,189, 51,
-235, 75, 90,247, 4,203,217,187,117,119, 32,171,188,161,129,120,235, 8,162,148,254, 54, 92,102, 22,175,176,142, 41,187, 58,202,
- 90,229,120,235, 43,119, 33,144,187, 85,219,188, 24, 53, 76,176, 91,182,215,182,186,213, 11,237,203,159,243,151, 47, 26,199,165,
-113,210, 0,120, 27, 43,138,165,157,107, 95,189,211, 40,149,138,119,201,240,170,221,161, 65,233,222, 35, 90,240, 43,143,158, 20,
- 44,108,215, 21, 13, 22,194, 19, 44,136,215,189,141,229,181, 89,200, 69,180,209,107, 51, 84,105, 10,120,160, 96, 98, 4,233, 54,
-185,144,224,145,170, 80, 11,172, 8, 72,130, 5, 41,130,136,213, 76,188, 5,201,188, 26,109, 77, 13,132, 71, 93, 7, 62, 70,224,
- 50,111,124, 76,142,211,249,204,113, 54, 97,188, 23, 49, 64,133, 11,140,211, 64,156,103,158,191,236, 70,105, 15, 70, 58,223,248,
-192,203,243,137,221,163, 27,158, 93,143,228,243,145, 30, 6,134,209, 64, 42,139, 40,151, 55,247,124,243,229, 87,124,125, 91,217,
- 61,250,148, 31,127,250, 41, 59,119,100,190, 8, 15, 30, 61,226,251,223,127,140,151, 45,195,112,205, 16, 13,143,248,193,179,107,
-250,233,200, 57,159, 16, 29,169,217, 19,244,150,229,248,156,187,251, 35,210, 34, 46,116,190,188, 63,115,127,123,226,249,171, 23,
-156, 87,118,254,155,187, 35,211,246, 17,127,240,123,191,207,139,151,207,153,166, 27, 30, 95, 63,102,185,124,201,114,233,212, 90,
- 80,177,108, 66, 91,150,181,139,217,168, 50,211, 46,179,237,140,123,227,117,110, 44,203,133, 42,157, 82, 23,246,219, 27,126,248,
-193,150,124,127, 75, 43,149,152, 28,187, 97,194,249, 29,139, 62, 96,218, 87, 88, 50,199,124,166,148, 19,221, 53,162, 19,196, 37,
- 98, 12,212, 94,109,189,211,100, 21, 17, 57,194, 26,232,113, 43, 74,246,173,151,160,213,167,232,226,155, 0, 0, 32, 0, 73, 68,
- 65, 84,186,202, 69,148,249,178,188,203, 0,172, 99, 41,106,179,176,214, 82, 33,214, 72,244,201,110, 99,193, 91,165,175, 84,222,
-220,118,206,177,178,153, 58, 83,111, 12,195,192,180, 1,252,192,124,185,160,221, 52,188, 78, 70, 68, 60,151, 6,163,118,164,118,
-130, 55,129, 78,111,141,115,168,188,249,234,115, 94,221,191,226,225,230, 33, 63,254,236,199,188,120,245,146,207,191,254, 37,190,
- 84,198, 26,169,106,120,225, 90, 50,103,239,169,151,204,225,124, 97,179, 73,235, 77, 22,180,102,142,186,224,157, 7, 31,120,117,
-127, 96,106,183,252,238, 15,174,249,238, 54,112,188,205, 68, 63, 0, 3, 77, 51, 45,116,244,220,172,254,184,233,180, 73, 72,135,
- 78,119,142, 28, 60,174, 8,205, 25,249,177,157, 23,186,183, 62,190, 11, 74, 41,157, 67,111,140,209, 51,121,161,143, 27,106,175,
-136,139, 84, 32,104, 33,106, 36,138,174,248, 82, 33, 36,199, 92,108, 36,153,170, 51, 74, 93,244,208, 21,113,205,118,241,151,138,
-138,226,195,192,198,121,212, 69,230,243, 61,210, 61,161,193, 38, 57,114, 17, 78,253,100,254,136,104, 65, 52, 41, 51, 45, 37,164,
-129, 63,216,161,165, 95, 41,204,138,171,198,205,143, 10, 26, 19, 15,175, 71,218,253,204,105, 57,147,134, 29,163,120,100,155,141,
- 27,209, 51,209, 39,102, 10, 62,218,250, 7,223,105, 37, 32,173,227,227, 6,212, 24,241, 14,161,212, 74, 44,145,209, 11,111,234,
-194, 62,238, 25, 60, 28,231,194,176,162,109,235, 82, 8, 42,232, 37,210,163,225,179,196, 16,133,148,150,153, 15, 5,141, 66, 98,
- 64,116, 70,130,163,185, 61,131,203, 6, 16,202,129, 81, 38,218, 94, 57,149,194,213,146,136,163,103, 41,153, 97, 81, 24, 28,121,
- 85, 41,143,209,209, 75,195,135,213,133,209, 43,226, 6,188, 58,155, 21,123,243,115,140,195,240, 94,170, 92,189,241, 14,171, 44,
- 62,188,183,228,123, 51,119,239, 90, 29,126,143,135,133,102, 18, 43,237,106,214,192,247, 88,103,123,251,253,168, 75, 65,178,146,
-112, 84,103, 14, 16, 15,171, 62, 90,104,115,129,161, 66,171,200, 57,145,211, 9,137,157,155,184,161, 92, 22, 14, 75, 37,244,194,
-168, 19, 34, 5, 23,142,244,101,196,121,101,108,133, 69,205, 89,192,180,193, 87, 37,169, 50,183, 78,145, 74,240, 3, 53,207, 4,
-241,178,238,190,223,142,216,205,184,212,213,172, 78,234, 87, 47,185, 84,196, 41,210, 76,161,105,138, 84,115, 68,235,197,234, 28,
-160,212,213,126,230,145,119, 61,105,149,117,183, 44, 14,149,130, 83,168, 53,243, 77, 49, 30,185,139,235, 55,184,155,121, 77,187,
-141,208, 21, 11,226,104,111,150,104, 45, 25,113, 29, 47, 30,105,171,118, 82, 65,122, 67, 84,222,189,233,246,158,141, 9,191,250,
-224,163, 54, 58, 98,114,249,226, 25,130,208,214, 23,152,115, 3,195,184, 80,230,138,184,145,224, 44, 11,144,165, 91,197, 39, 8,
-165, 55,122,245,118,243, 6, 8,193,146,209, 88, 8,144,106, 19,138, 46,224,194,154,150,247, 14, 23, 11,173, 53, 68, 61,121,201,
- 28,239,103, 74,119,248,224,172,175, 47, 74, 91, 42, 51,157, 55,218, 41,110,226,131,199,143,217, 12,129, 93, 28,209,229,196,165,
- 41,159,125,111,135, 32, 28,150,204,178,187, 37,104,162,168,114,119, 58,145, 79,183,224, 29,209, 37,150,195, 29,122, 62,162,215,
-143,184,122, 52,242,120,215,120,254,139,191,224,246,120,207,245,195,135, 28, 94,191,230,238,116, 15, 56,142, 47,110,121, 57,223,
- 35, 45, 48,151,194, 93,158, 57, 31, 47,168,223, 16,156,112, 56,188, 65,221, 6,239, 2,231,243, 29,196,200,245,205, 13,231,195,
- 29,151, 95,191, 36,250,196,227, 15, 54, 44,151, 87, 12,155,107,182,227, 53,111,222,220, 83,242,133,174, 74, 19, 27,251,133,232,
-233,162, 4, 31,161, 27,198,214,133,136,138,112,123,184, 71, 93,224,131,199,143,121,180,247,188,185,123,131, 75,201,152, 7, 8,
- 72,161,207,103,188,247,236,182,137,253,205,142,204, 3,154,192,221,241,142,118,188,112, 57,158, 41,205,126,166,222, 98,132,173,
-139, 42, 76,226,169,210, 87,231,128,163,161, 56,231,136,235,232,170, 43,140,163,167,230,133, 57,159,215, 0, 79,179,234,102,240,
-104,239,212, 90,169,181, 83,170, 35,166,193,132, 57,186, 6,126,106,231,112, 42,228, 82, 25,242,145, 41,109,205,117, 62, 13,180,
-232, 40,231, 66,233,179,245,194,155,144, 83, 34, 47,103,130,235,140,219, 45,146, 6,242,165,211,107,231,245,252,146,101,184,231,
-230,234, 3,126,248,241, 51, 30, 60,249,144, 95,253,242, 23,124,247,213,175,108,202,211,141,243, 95,207, 51, 89,154,253,247, 77,
- 56,206, 11,187,158,240,222,116,181, 45,116,130, 43,252,228,167,191,224,127,249,250, 75,254,240,199,191, 67,238,137,187,251,215,
- 60,251, 56,152,248, 71, 10,161, 56,212,123,242, 88,233,151, 66, 95, 44, 65, 47, 93,160, 21, 74,174,184, 20,232, 14, 42, 21,201,
-102,246,243,120,210, 52,160,116,230,101, 38,165, 13, 49, 89,184,116, 35,194,210, 27, 65, 70, 36,102,196,205,248,106, 19, 53, 23,
- 22, 66, 11,118, 0,174,157, 28, 70, 74, 47,140, 30,130,118,232, 1, 31, 6,186, 84, 46,254, 68,104, 66, 47, 2,206,209,186,163,
-251,128,111,133, 54, 8,177, 22,130, 38,250,156,193,157,145,228,105, 44, 56, 38,226,160,108,100,162,230,198,152, 18,110,232,168,
- 23,162, 14, 76, 97,143, 43,138,198,196, 85,216,176,180,108,142,246,162, 56,215,145, 48,146, 23,101, 63,108, 40, 78, 17,201,148,
-158, 16, 55, 16, 6, 11,226, 85, 87,105, 10,213, 45,118,248,172,149, 57, 42, 33,141,212, 94,201, 89, 33,101, 46, 25, 66, 52,152,
- 72,108,214, 50,137, 33, 18,156,226,139, 24,135, 30,184,132,202,134, 64,239, 23,116, 22,148, 1,124,230,152,103,118,211,142, 24,
- 70,106, 61,209,151,142,186,100,134,200,121,161,208, 40, 2, 62,155,130,185, 59, 97,174,142, 49,232, 58, 93,180,158,130,247,213,
-204,128,226,241,193, 40,140,105, 24,222,211,197,215,182,216,206, 89,192,236,189,222,122, 81, 98,116, 86,117,126,143, 23,117, 86,
-157,247, 48, 37,112,239,247,166, 94,129,210, 96, 94,102, 84,243, 58,106, 95,109,127,205, 84,220, 41,136, 29,244,214,192,120, 61,
-119,152,177,149, 80, 98, 61, 44, 94,208,243, 9, 21,143,134,209, 50, 38,245, 76,190, 52,115,157,197,145, 50, 95, 24, 17,154, 36,
-186,102,118,178, 48, 47, 9, 74, 33,188,213,152,178,142,187,173,186, 96,105, 93,213,183, 28,116,163,206,185,181, 54,211, 86, 40,
-162,170,141,185,139, 42, 90, 76,255,232,165, 89,149, 77,220, 10,165, 49, 53,171,180,138,226,236,240,224,132,222,140,252,228,188,
- 37,220, 75,175,224,141,195,237,180,210, 74, 53, 88,107,179,100,169, 91,205, 70,218, 61, 82, 58,221, 23, 92,243,246, 64,139,158,
-226, 77, 46,163,173,155, 62,178,234, 59, 77,108, 83, 35, 99, 5,111,201,205, 75,183,155,178,174, 83,129,232,120, 39,148, 81,111,
- 78,227, 94,236,156,225, 92, 48,213,108, 92,245,120,226, 77, 76, 82,127, 35, 38,113, 35,180, 57,211,155, 37,233,113,221,220,232,
-107,107,195,139,178, 28,143,220, 93,108,228,233, 48,162, 85,171, 5,194,200,144, 70,110, 79, 71, 26,194,205,190,113,245,120,207,
-142,206,231,207, 95, 18,226,200, 78,193,111, 34, 79,159, 92,113,238,157,210,133,122, 56,177,220,189,100, 84, 71, 72,202,183, 34,
-196,155, 71,132,135, 91,158, 62,126,204,131,169,242,191,253,217,255,202, 95,254,236,107, 74,213, 53, 84,209,233,221,163, 52, 46,
-189,174,181, 21, 37,249, 13,105,152, 56,157, 43,251,107, 8,131,231,114, 11, 41,194,213,102, 99, 63,100,226,216,196, 13,196,133,
-211,124,199, 79,255,238,231,196,233,199, 92,239, 28,175,110, 95, 16,167, 71,108, 54,157,194, 29,165,102, 91,181,104,135,158,241,
- 45,216,142, 58,138,137,113,176,202,200,120,253,128, 79,158,125,196, 70, 27,132,198,227,239,125, 76,242, 11, 63,251,217,175, 24,
-227, 53,143, 30, 61,100,188,113, 92,164,115, 56, 95,200,243,137, 33, 14, 12, 99,100,218, 79,180,237, 53,249,177,237,195, 47,203,
-204,114,190,163,148,217, 40,128,210,169,242, 22, 44,220,223, 25,222, 88,229, 58, 34,235, 97,221,129,119,137, 97,176,122,212,144,
- 6,190,123,249,138, 90, 77,218,225,131, 85,181,186, 90, 29, 51, 14,137,249,124, 90, 51, 30,222,180,172,199,202, 44,194,121, 48,
-242,221, 48,141,120, 34,131, 27,209,222, 76, 13,235,236,166, 45, 18,169,205, 50, 2,129,198,224, 42, 62,153,106,248, 84, 59,167,
-215,223,226,106,230, 15,254,232, 79,248, 71,223,255, 1,255,247,191,249,115, 62,255,249,207,168, 45,227,106,165,214, 74,143, 66,
-164, 24,205,208, 77,156,114, 1,223, 73,222,113, 51,108, 24, 55, 35,151,176,240,226,245,129, 63,251,215, 63, 99, 63,221,144,235,
- 17, 74,224,201,147, 39, 48, 42, 41, 59,188,199,176,175,210,169,235,129, 62,215, 74,114,142,150, 28, 93, 61,229,188,216,222,177,
- 38,136, 1,164, 34, 61,210,106, 70,163,160,174,145, 5,212,123, 46, 21, 82, 15,248,208,209,182,161,185, 70, 8,112,153, 51,181,
- 8,211,102, 96,190, 40, 83,135,222,239,113, 29,168,137,162,157, 56, 40,213, 43,173, 47,232, 18,169,106,171,155, 56,174,204,245,
-229,200, 18, 61,234,130, 85, 44,213,188,241,145, 64, 45, 74,139,142,164, 35, 77, 10,110, 18,246,189,209,139,189, 9,198, 93, 36,
- 58, 71, 28,109,250, 66, 83,226, 40,248,139, 35, 37,135,243, 59,196,123,242, 50, 35, 1, 6,201,108,156, 90,186,248, 24,232,233,
-158, 92,133,121,153,237,176,129,135,146,173, 19, 78, 67, 92, 66, 90, 97,230, 66,242,215,104,241, 56,181,214, 76,113,138, 50, 83,
-197, 17,103,203,138,180,113, 32,106,132,102,194,153, 26, 29,122, 46, 4,151,136,161, 24, 88,139,137,114,236,212,233,130, 96,168,
-223, 62, 12, 28, 90, 37,180, 74,242,137, 69,132,201, 71,162, 55, 10, 89,241,214,174,209, 85,112,229,189, 85,141, 21,129, 33,162,
- 18, 72,152,207,225,253, 0, 98,116, 21, 57, 57,156,123,127,224,153,183,163,236,232,176, 16,219,123, 59, 40,240,206,103,146,134,
-248, 94,153,239,239,190,248,214, 9, 42,148,238, 87,145,217,140,246,142, 31,132,114, 86,250,232,208, 18,161, 44,184,220, 9, 17,
-162,223,112,204, 51,135, 89,217,108,141,255, 94,212, 66,143,209, 69,226, 20, 56, 29, 11, 62,120,124,132, 38, 3,147,107,228, 83,
- 33,231, 35, 56,161,106,100, 18,161, 57,143,127,242,241,179, 63,117,171,251,218,250,111,224,157,185,183,197, 12, 47,120,233,102,
- 87, 91,173, 94,172,183,112, 89,185,222, 56, 33, 40,248, 24,214, 94,222, 91, 15,246,202,123, 71, 44, 84,214, 21,159, 44, 93,252,
- 86, 32,227,188,208, 44, 48,189,126,143, 61, 33, 40,173,151,213,190,253,182, 59, 14, 62, 8,189,216,237,207,211,105, 88,253, 66,
-215,213, 0,206,173,100,183, 64, 8, 98,174,234,102, 55,123, 3, 13,216,169,169,117, 93, 37,124, 22, 82,160,175,180, 31,105,136,
-247,182,131,213,190,138, 29, 58,222, 5, 28,209,186,243, 98,172,251, 49,122,188, 56,242,178,224,180,217, 63, 95,215, 11,244,183,
-249, 66, 49,133,109, 47,220,223,222,113,119, 89, 57,250, 30, 68,237, 13, 58,142,215,236,166,145,203,249, 72,169,230, 35,254,228,
-217, 67,250,253,137,159,124,241,138,171,199, 87, 92,109, 34,189,192, 54, 12, 32,149, 87,223,125,195,229,238,192,126,218,177, 77,
-194, 97, 41,188, 60, 71,158,126,250, 49,159,110, 39,166, 48,161,209,241,191,255,235,191,228,245,105, 38,134, 64, 85,235,216, 26,
-251, 89, 12,250, 19, 6,162, 19,124, 8, 76,211, 64,203, 11,187,253,150, 71,187,129,195,221, 17,112,124,248,240,198,120,234,151,
-153,235,155,107,112,112, 58,157,208,222, 56,156, 23,110, 30,127,194, 54, 69,122,155,121,252,232, 9,215, 87, 27,198,205,192,163,
-253, 67,110, 30, 62, 34,110,182,236, 54, 55, 92, 93,223,176,219, 95, 49,110, 30, 18,199, 29,126,152,248,193, 39,223,227,233,206,
- 76,120,207, 30,124, 72,155,239,120,241,242,142, 95,126,241,156, 95, 63,255,154,239, 94,189, 68,157,227,225,245, 13,131,120,118,
-211,158, 39, 79, 63, 98, 59,110, 57,207, 71,180,204,196,160,236,167,128, 23,101, 26,182, 12,227,142, 56, 77,208,161,174,252,239,
- 94, 43,104,121,151,152,125,219,117,181,116,125, 96,136,145, 31,254,232, 51,254,229,191,248,103,252, 79,255,252,143,249,248,227,
- 15,121,115,123,226,116, 60, 89,231, 22,101,179,221,240,227,223,255, 3,126,239, 15,255,128,113, 51, 50,207, 51,151,249, 12,210,
-236,103, 16, 59,149,231,150,201,115,166,213,106,110,117, 17,115, 26,136, 95,101, 71,246, 38,219,178, 99,206,243,106,214,170,164,
- 56, 81, 74, 38,231,133, 23,199, 59,190,187,253,154,157, 86,246,219,107, 14,249,100,149, 29,181, 26,140, 91, 25,237,193, 55, 74,
-158,209,106, 60,137, 90, 26,231,185,224,189,242,112,220,226,188,103,110,133, 92,102,230, 92,184, 63,192,231, 95,127,195,213,228,
-185,249,248,134,185,128, 86,193,119,200,218, 45, 15,147, 45,223, 50,248, 72, 81, 71,197, 56,253,162,144,100,117,233,168, 67, 92,
- 96,240, 19,105, 52,151,121,208, 64,239,102,242, 11,110,141, 51,119, 93, 27, 20, 14,154, 35, 87,165, 86,168,174,146, 20,186, 75,
-150,185,168,149, 99,206, 70,255, 83,165,118,243,204, 39, 17, 74, 1,215,237, 53,138,239, 70,207,195,145, 16,203,253,116, 75,239,
-199,125, 98, 96,189, 88,116, 11, 38,117,103,230, 57,245, 48,122, 79,170,194, 38,140,136, 75, 20,109,132,232,113,211,132, 46, 39,
-114,109,196,253, 42,101,162, 34,117, 64,135,132,202, 25, 89, 32,186,145,220, 47,180, 16, 33, 12,132,186, 48,197,128, 99,196,251,
- 64,151,206,200,128, 72,103, 16,143, 58,161, 86, 97,112, 74,119,153, 90,149,208, 35, 49, 6,182,187, 29,185,219,247,149, 17,211,
-204,118,136,155, 43, 70, 58,243,226,137,226, 89,202, 5,137, 17,145,129,154, 77,208,178, 73, 91,134,193,114, 67,147,172,114,152,
-176, 62, 76,240,164, 24, 24,163, 77,100,212,153,103, 99,240,102,149,244, 26,216, 77,145, 71,143, 31,224,227, 63,252,182,126,158,
- 43,117, 94, 72, 14, 54,187,233, 55, 81,241,127,224,248,253,116, 46,244,178, 48, 37,207,176,221,188,183, 49,249,210, 96,185,204,
-104,158,185,218, 14,248, 97,124,175,207,244,115,133,219, 23, 7,230,229,141, 81, 60,155, 53, 21,122, 91,155, 99, 13,179,249,133,
-192,165, 46,164,193, 83,103,229, 52, 55, 32,227,167, 70,108, 16,122, 52, 17,145,203, 38, 44,148, 14, 58,163, 75,161, 78,149,224,
- 28,243, 92,160,246,149,127,224,137, 20, 90, 53, 39,138,255,232,227,239,253,169, 19, 33, 68, 35,134,137,247,246, 48, 23, 49,146,
- 28,111,187,139,157,250, 54,226,255, 54,103,225, 45, 33, 47, 62, 34,230,252,195, 99,105, 78,123,160, 7,227, 39, 55, 59, 39, 73,
-244,248,232,113, 69,145,110, 41,123,113, 54, 62,215,245,125,192,105, 67,155, 29, 44,188, 66, 8,238,221, 55, 70,130, 95, 63,191,
- 26,197, 77,214, 96, 92, 95,109,114,189, 33,193,126,152, 91,229,221,196, 32, 4, 79, 43,150, 75,118,221,173,192, 15, 97,240, 14,
-183, 26,208,122,201,228, 98,183,187,183,162,149, 94,117, 53,174, 65, 12,186, 62,168,157, 41, 65, 69,223,245, 33,197,197, 53, 83,
- 16,214, 14, 99,181,238,122, 95, 43, 94,218,121,245,234,206, 88,209, 94,222,189, 41, 55, 85, 66,218, 16,122, 33,231, 51, 89,132,
-253,213,158,189,131, 47,190,248,150, 50,108,249,209,247, 38, 66,169, 44, 40,109,233,124,253,213, 11,238,142, 71,190,119, 53,176,
-241,157,101,201, 44, 37,162, 97, 75, 34,226,114, 97,251,228, 35, 62,251,209,239,241,239,254,205,159,241,250,222, 30,234,174,129,
-138, 95,239,171,198, 62,214,102,223, 51, 21,216,132,145, 86,102, 52, 37,246,187, 43,142,119,119,228,210,120,112,115, 67,213,204,
-225,124,102,119,181,103,191, 29,184,191,187, 71,197,225,189,178, 31, 2,255,248,143,254,136, 79,158,125,196,167, 79,158,146, 88,
-232,100,174,134,206, 38, 4,162,111,108, 39,207,199, 31, 60,226,163, 39,215, 60,122,248,144,109, 82,166,160, 36,169,140,227,142,
-103, 31,126,194, 55,127,247,239,249,235, 47,190,227,193,245, 13,109,158,185,189, 63,115,206, 11,113,154,168,245,200,175,191,254,
-156, 87, 47,223, 48,121, 72,155, 72, 26, 38,134,105,139,171,141,243,114, 33,247, 70,155,103,104, 23,134, 8,251,235, 29,131,223,
-227,125,100,216, 76,136,139,134,128, 21, 19,183, 12, 99, 34,250,200,143,126,244,125,254,231,255,241,159,241, 47,255,197, 63,225,
-193, 54,226, 92,228, 95,252, 15,127,204, 63,250,236, 99, 94,188, 58, 83,187, 9,137,126,248,131, 31,241,217, 39,207,216,110, 18,
- 79, 30, 63,225,163,167, 31,115,117,125, 67,201,149,121,190,224,162, 65,113,180,218,100,168,181,198,178, 62,180, 27, 66, 8,202,
-176, 73,136, 11, 43,224,195, 60, 4, 85, 28,165, 9, 57,159, 24,104,204,165,113,201,149,185, 40, 47,222,188,226,245,171,151,164,
-184,101,179,189, 6, 26, 90, 12,146, 68, 16,194, 38, 16,146,113, 25,234, 26, 84,173,125,230,246,205, 29,247,199, 19,251,235,107,
- 84, 49,249,138,235,208, 60,185, 9,127,242,199,191,203,127,251, 95,253,151,228, 46,220,190, 57,226,196,194,103,180,128,134, 96,
- 39,210,210,200, 93,233, 53, 51, 14,137, 16, 35, 49, 56, 52,154, 30,117,152, 2, 68,235, 23,251, 30,112,181,216,129,122, 55,146,
-131,131, 36,184,218, 89, 74,167, 75, 95, 15,245,142, 8,160,149,230, 59,158, 64, 16,101,110,118,219,219,184,117,215,174,224,131,
-103,116,137,203, 10, 79,114,210,169, 94,240,185,211, 93, 32, 12,209,104,133,222, 19, 83, 66,124,194, 19,140, 56, 57, 25, 98,153,
- 49,145, 8,108,118,193, 72, 24,126, 3,105, 64, 60,248, 10,227,102,135,155,214, 53,145, 79,140,221,118,224, 99,156,240,211, 14,
-189, 20,234, 50,211,194,202,193, 80,144, 22,137, 40, 50,218,196, 14, 9, 20,169,150, 87, 40,138,248,106,127,223,238, 9,130, 85,
-132,179, 34,140,196, 4,195,198,179,168,160,181, 18, 39, 35, 38,250,197,122,233,157, 66,116,123, 90,235,212,182, 48,238, 62,192,
-251,110,104,234,141,237,248,107, 19,180,129, 4,207,184,119,112,106,180, 14, 81,212, 66,214,206,240,215,173, 91, 56,219, 49,224,
-197, 17, 92,196, 57,199, 56, 12, 60,250,240,131,127,176,114,181, 1,243,165,160,165, 48, 38,247,222, 30,190, 69, 97,185, 84, 90,
-201,246,121, 55,211,123,123,168,159,115,167, 92,102,168,133,253, 46,189, 55,157,235,219,143,195,185,115,247,230, 53,231,227, 43,
-168,139, 77,148, 74, 96, 41,139, 33,105,171,216,212,170, 22,200, 80,187,103,135,231,212,206,248, 36,176,100, 74, 20,230, 34,224,
-172,173,144,146, 80,138,210,101,195, 57, 95,232, 24,246, 59,246,107,124,220,227,168,120,175, 54,170,199, 51,231, 66, 16,237,230,
-199,110,171, 87,156,102,193, 51,179, 46,194,122,115,173,205,238,224,170, 54,130,103,213, 59,118,111,212,175,214,205,195,222,197,
- 60,229,125, 77, 98,170,247, 54,102,235,208, 91,165,213,213,163, 29, 86,226, 92, 53, 62,153,141,229, 89, 49,166, 30, 51,188, 91,
-173, 77,107, 53,142, 85,183, 49,185,119, 88,106, 89,196,212,142, 30,164, 23,148,128,211,176, 18,241,148, 24, 88, 67,108,205,244,
-165,120, 35,205,173, 95, 80,239,133, 82, 5,151, 18,234, 86,226,207,220, 12, 92,147, 44,176,230,215,114,230,210,234,154, 66,174,
-200,104,105,120,235,210, 11,206,219, 24,187,168,201,106,156,172,200, 74, 9,248,232, 88, 78,103,230,170,120, 31,236,176,208,108,
- 87, 75, 72, 12,227,134, 86,239, 40,181,211,203,204,243,175,158,227,230,133,187,219, 59, 30, 62,124,192,229,245,133,155, 7, 59,
-226,165,242,119,191,252, 37,191,122, 62,243,253, 79, 54,244,208,185, 44,134,201, 4, 33, 74, 99,183,185,225,250,201, 3,110, 30,
- 61,224,245,223,254, 5,183,135, 76,240, 17,173,141,142, 82,123,163, 10,246,231,151,190,154,209,148, 86,171,145,248, 84,113,167,
- 76,219, 52,124, 26,104,249,204, 92, 59, 27,159,112,226,200,151,198,211,155, 61,227,152, 56, 92, 50,211,176,165, 93,206,252,228,
-175,254,130,207,190,255,140,248,232, 67, 54,155,206,135,109, 67,159, 59, 99,218,113, 97, 32, 94, 61,226,227,199, 79,208, 92,169,
-237,204,207,110, 95, 16,189, 99, 24, 39, 90, 94,248,187, 95,252, 21,255,234, 39, 63, 39,238, 30,114, 89, 22,134,209,104,133,181,
-116,106,174, 8, 59, 36,195,151,183, 47,249,252,197,107,158,222,220,240,224,193,222,210,164,185,177,219,237,184,190,218,147,246,
-194,237,237,107,238, 47, 51, 41, 55,254, 95,214,222,108,217,178,236, 58,207,251,198,236,214, 90,123,239,211,100, 87,153, 89, 5,
-128, 0, 8,144, 32,197,198,146, 72, 72,178,195, 97,135, 20,214,141,111,253, 64,124, 16, 63,129,223, 64,182, 67, 97,218, 84,144,
- 18,109, 81, 32, 65,128, 34,122, 20,170, 65, 85,102,158,110,239,189,214,154,205,152,190, 24, 43, 11,164, 29, 14, 95, 48, 51,162,
-162,154,168, 58,117,242,156,179,247,154,115,140,255,255, 62,167,157,253, 94, 8,126, 98, 76,143, 89, 90, 35,175,133,199,143, 42,
-251,253,200,139,247, 31,243, 47,254,224, 91,252,250, 7,239,241,139, 79,110, 72,227,192,229,229,192, 60, 31, 57,221,159,249,111,
-255,155,111,227,189,103, 93, 23,222,220,175,172,173,219,126, 92, 11,135,203,107,166,195,158,229,116,207,205,171,207,109,111,239,
- 3,126,219,187,151,220,200,154, 57,233,202,105, 89,185,184, 56, 48,140, 35,195, 48,177,223,143,204,107,197,236,161, 74, 85, 71,
- 87,227, 67, 8,149,189, 79,164,225, 41, 45,175,204,121,166,105,101, 55,237,216, 31,158, 49, 14,207,121,120,248,148, 92,206,248,
- 38, 76, 83,226,203, 95,125, 65,107,141,155,207,111, 56,223, 47,156,124,103, 94, 59,187,113, 71,110, 29,223, 5,173,142,230,108,
-237,176,214, 7, 38,206,252,214,151,158, 49,207,153,143, 63,250,165,133,171,170, 99, 68,201, 94, 89,137,150,216,237,134,122,109,
-186,176,168,178, 11,246,240,204,171, 26, 20,170, 55, 92, 87,162,171,132, 48,208,231, 70,143,149,188, 8,174,102,246, 50,176, 84,
- 69, 7,129, 82, 54, 78,133, 57,233,149, 76,174,157, 93,138, 52,241,156,180, 17,189,105, 68,227,224, 41,165, 18,188, 71,165, 16,
-197, 89, 54,102,242, 68, 50,185,121, 90,131,105, 50,121,147,174,133, 62, 37,131,218, 84, 96, 7,125,169, 91,238,101, 32,246,145,
-230,132, 92,148,171,209,193,193,227, 99,164,230, 74,114,145, 30,161,228, 29,187, 49,210,253, 66,209, 35,147, 31,104,238, 64,114,
- 80,243,173, 57,219,125,226, 92,110, 89, 91, 97,240, 19,218,173,250, 89,218,130, 75,117,155, 86, 94, 34, 75, 70,164,218,251, 78,
-180, 52,188, 48,177,204, 21,223, 27,209,175,212, 5,123,159,116, 19, 82, 22, 86, 45,244,116,131,115,158,232, 5, 57, 52,118,221,
-130,141,126, 12, 52, 77,200, 34, 20, 50, 7,239,240,165,225,198,248,182,148,131,168,146, 91,195,139,146, 92,218,154, 76,141, 85,
- 45, 7,226,176,213, 90,120, 7,123,234,183,157,117, 17, 54,230,251, 59, 12,157,105, 71,164,147,146,127,231, 31,183,109,213,226,
-119,157, 1, 80, 32,139,218, 84, 80, 45, 44, 29,176, 21,102,233,142,234, 42,197,201,150, 86, 47,228,186,210,114,101,237, 3,195,
- 52, 50, 4,147,138,201, 16, 72,206,241,112,159, 24,135,149, 59, 61, 17,114,231, 20, 10,187,203,129,176, 12, 84,205,156,231, 95,
-178, 75, 19, 61,174,200,234,105, 18,168, 52, 84,133,224,147,167,171,145,207,188, 8,180, 70, 85, 27,113, 85,108, 28,208,229,237,
- 30, 52,219,131, 77,172, 18, 36,221,228, 41,206, 23,164,117, 59, 69,134,109,135,243, 22, 49,234,189, 17,128, 2,120, 21,180, 54,
-123,234,109,244, 31,143, 35,107,179,202,133,120,168, 74, 19,197, 59, 27,176, 75,182, 90,209,178, 54,211,180,227, 32,120,171,131,
-109, 86, 34,193,217,234,165,117, 42,198,108,143,219,104,206,106, 77,216,109,164,109,213, 39, 17,168, 6, 72, 9,162, 44,243, 66,
- 74,158,228, 44,160, 37,193,161,165,144,223, 54, 0,122,163, 59,143,214, 70,116,206, 14, 45,217,250,216,157,206,154, 11,209,219,
- 40,183, 54, 75,199,123, 31,168,155,177,110, 61,173,212,109,255,164, 98, 97, 66,232,196,241,146,167,215,143,153,111,238,185,215,
- 74,107, 91,191, 54, 55,214,170,156,142, 71,254,250,225,158,175,125,208, 89,142,119,252,248,179,149,162,158,190, 84,154,238,184,
- 72,142,172,194,110, 80,220,154, 24,246, 19, 47, 31, 95,242,213,171, 75,254,244,175, 62,226,252,144,241,193,163,197, 70,253, 5,
-190,144,223,136,139,104, 51,184, 40, 2,235,122, 70,232, 44,235,194,221,241,142,218, 42,136,227,156,143,236, 68, 72, 46,144,215,
- 66, 16, 56,140,137,251,211,106,213,181, 24,249,238, 15,127,196, 31,255,159,127,201, 87, 63,248, 50, 47,222,187,226,238,230, 13,
-243, 82,185,186,124,196,179,167,143,216,173, 43,245,213,231,230, 15,142,144,215,153,190, 20,206,121,198, 15,137, 55, 55,119,230,
-209, 88, 23,142,115, 65,122,192, 71, 79,207,133,243,121,102,109, 7,100, 12,132, 16,208,214,200,173,160, 82,249,244,103,159,241,
-234,238,158,113, 8, 92, 63,122,194,243,235,167, 4, 81,124, 1,162, 48, 30, 38,214,156,201,235,145,160,141,224, 28,195,197, 14,
- 90,231, 95,254,171,127,202, 31,254,254,175,243,131,191,249,144, 87, 55, 39,126,231, 31,127,131,127,247,199,127,206,127,250,222,
- 79,249,198, 87, 94,242,239,254,195,247,249,246, 63,251,125, 46,167,137,175,189,124,198,215,190, 52,240,167,255,241,123,124,242,
-249,107, 94,188,247,140,114,124,195,223,254,224,111,248,249,207, 63, 38,164,137,105,183,103,220, 93, 49, 13,145, 32,202,218, 29,
-181, 45,156, 31,142,148,229,196,105, 89, 41,205,129,120, 86,157,141, 17, 30,194,102,180, 83, 8, 19,107,171,168, 54,174, 46, 39,
-118, 59,225,161, 15,172, 13,150,227, 61,243,241,132, 31, 27, 47, 95,124,157, 52, 8, 55,175, 62,166,233,194,122, 86,202, 67,230,
-226, 50, 80,246, 35,189, 9, 15,199,149,139,105, 98, 74, 3,119,231,163,201,131,212, 94,147,211, 0,195, 20,248,248,254,158, 9,
-225,107, 47,223, 35,223, 31,185, 59, 61,208, 7,199,178,218,237, 51,164,193,192, 59,161,208,106, 37, 38,161, 45, 35,139, 86,156,
-100,155,122,117,155, 58,137, 40,185, 41, 94,237, 70,210,139,224, 54,212,111,141, 74, 44,202,172,149,224, 33,212,192, 18, 2,190,
-117, 11, 11,249, 98, 10, 92, 63,162,177,208, 90, 38, 2, 82, 26, 89, 97, 26, 38,235,241,246, 98, 8, 88, 7, 94, 18,141,145,233,
-162, 81,207, 11, 61, 69,188, 11,132,115, 51, 78, 58,153,245,174,144, 24,104,190,177,222,100,210,216,184,138, 35,181, 7,206, 57,
-179,155, 18,156, 23,130,143, 76, 67,160, 72, 71,117, 33, 5,207,202,200, 50, 87, 24, 26, 41, 68,142, 15, 11, 97, 59,160,171, 20,
-118, 62, 49, 21, 65,131, 34,197, 19,170, 39,139,167, 13, 7,212,175, 36, 93, 57,171, 16, 9,156,122,193, 7,181,166, 70,152, 89,
-154, 25, 11, 99,109, 54,174, 79,246,123, 27, 93,226,166, 42,115,107, 92,140, 91, 27,169,101, 78,234, 9, 65, 41,231,206,152, 20,
- 25, 26,113,174,104,119,204,107,128,209,152,241, 29,221,124, 5,102, 77,243,190, 19, 93,178, 76, 71, 20,154, 20,162,236,136, 62,
-253,131, 29,234,127, 87,186,210,187, 5,138,223,165,112,133,110, 53, 67,247, 46, 63, 46,111,161, 55, 27,194,251, 29,154,223,222,
-126, 61,242, 98,121,172, 20, 58, 53,123,122, 81,154,111,182, 30,233, 32,190,161,177,160,165,176,219, 37,214,150, 16,129, 80, 11,
-222, 9, 89, 34,249,222,179,248,149, 28, 58,107, 41,172, 8,205,101,130, 68,134, 46, 44,229,200,172, 17,221, 14,197,221, 9,171,
-175,248,139, 68, 57,182,237, 32,135,213, 33,164,169,141,218,197,130, 69,221, 91, 16,174,170, 34,254,173,163,215,188,226,174,217,
- 24,188,118, 59,153,120,186, 89,194,124,183,126,184, 61, 82,237,196,229, 55, 14, 47,118,162, 43,197,160, 44,222, 57,130,116, 74,
- 23,240, 9, 23,173,227,215, 99,192,111,123,187,174,213,194, 85, 46,144,124, 53,134,124, 83, 52,203,118, 72, 96,219, 53, 26,216,
-166, 75, 53, 68,237,150,152,245, 56,156, 43,219,168, 63,161,100, 75,185, 98,164,187, 64,167, 57,221, 92,195, 74, 16,251,253, 7,
-239, 81,173,219,225,197, 92,220, 73,132, 54,218,216,188,234,178, 97, 23,133,214, 5,117,233, 11, 60,146,108,120,197,214, 43,146,
- 60,158,202,188,174,198,196,239, 74,111, 2,205,246, 24,211,176,163,230, 35,243,106,201,107, 31, 76, 15,121,174,199,205,122,103,
-238,247,159,255,228, 19, 94,205, 74,195, 19,130,161, 43,247,209,225,139, 13,211, 47, 66, 34, 14,239, 81,214, 19,127,242,199,255,
- 43,119,167,127,205,167,231,130, 11, 9,109,171,161,145, 43,116,169, 84,221,136, 19, 98,220, 93,135, 81,240, 74, 89,183, 41, 76,
-103,158,103, 74,110,208, 43,235,188, 90, 56,178, 55,150,114,228,147,207, 19,196, 61, 79,159, 38,188, 15, 60,172,141, 16, 39, 82,
-234, 28,151, 76,241,194,185, 86,126,246,233,107,210,205, 61,154,148,120, 11,127,253,183, 63,198, 7,207,243,151, 47,168, 75,230,
-205,235, 55,184,224,121,249,242, 57,105, 3, 1, 45, 75,230,124, 58, 49, 13,198, 49, 14, 81, 88,214, 19,231,211, 5, 62, 38, 11,
-185,104,101, 85, 3, 34,165,157,199, 63, 88,168,234,116,158,249, 69,121,195,241,116,203,224, 58,151, 87, 87, 92,249, 11,116, 85,
- 82, 28, 89, 90,195, 83, 33,219, 62,248,167, 63,252,132,151,143,158,242, 91,191,253,235, 60,126,126, 77,227,204,254,106,199,139,
-231,207,248,245,111,124,153,251,115,225,248,112,228, 23,191,248,148,159,127,114,224,119,126,243, 27,212,249,158,239,124,231, 59,
-252,120,119, 64,123,231,225,124,226,241,227,103, 92, 31,174, 44,116,169,138,232, 74,115,194,229,238,146,113,127,201,122,113,193,
-195,253, 13,175, 94,223,241,228,217, 51,190,241, 27,223,228,231, 63,251, 9,191,252,248, 83,195, 95,198,193, 8,122,101,166,163,
- 12, 7,227,255,223,223,190, 97,186,124,204, 56,237,249,236,147, 27,150, 92,232,231,143,208,114,207,225,250, 25,195,112,205, 57,
-191, 97, 26,225,205,235, 19,111, 62,175,124,245, 91,191, 70,119,119,188,254,196, 92,206,159,125,254, 41, 75, 89, 76,236,146,141,
-136,120,125,185,231, 75,207,175,113,221,115,204, 51, 77, 60, 31,124,237, 43, 60,124,255,199,228, 58,111,104,206, 64,109,167,109,
- 31,102,173,215, 53, 55, 66,172,150,145, 73, 14,213, 72,207,129, 13, 78,128,184, 78, 46,217, 14,235,181, 34, 81,137,233,130, 82,
- 58, 67,170, 12, 77,169,193, 66, 59, 23,222,147,123,178,186,171, 86,212,117,156,207, 12,189, 19,242, 14, 55, 24, 55, 60,226,105,
- 45, 64, 93,104, 30,156,175,236,152,200, 10,149, 51,251,236,141,151,177, 26,223, 33,215, 35, 61, 90, 66, 63,106, 64, 92, 32,183,
- 5,169,142,105, 47,172,205,227, 37, 35,226, 56,159, 61,135, 33,208, 93,101,174, 25, 9, 30, 6, 97,169,194, 20, 70,171,216,137,
- 17, 39,189,245, 84,201, 93,161,143,236,164,176,186, 51, 61, 57,166,139, 68, 91, 50, 82, 39, 10,153,122,204, 44,205, 60, 21,153,
- 21,215, 4, 77,131,161,175, 93, 66,114,227, 98, 47,188,247,226,203,220,190, 46,220, 31,111,204,147, 17, 7, 82,239,164, 62, 50,
-168,131, 1,134,238, 56, 21, 71,233,142, 20, 2,251, 0,165,120,184, 8,104, 49, 61,169,171,157,238, 26,132, 78,109,213,110,227,
-201,111,178,164,190, 25, 21, 61,158,128,243, 16, 83,124, 39,183,223, 90,205,204,104,140,136,119,119,155, 54, 4,187,110, 16,162,
-119,251, 80,111,213, 8,254, 65,216, 20,208,239,246,166, 94,114,161,150, 74,171,102, 46, 85,103,235, 56,169,118, 89, 44, 5,138,
- 8, 48, 24,107,101, 16,147,101, 13,137, 93,140,176, 84,150,193,158, 89, 49,102,230, 69,241,106, 6, 75,223,132,163, 10,195, 62,
- 32,210, 72,231, 68,174, 66,175, 51,201, 57,132,133, 41, 37, 84, 2,161,183,142, 74,133,224,209,102,108, 57,186,216, 77, 92,100,
- 75,248, 90, 90,217,137,225, 81, 5,235,139,171, 56,136, 1,165, 90,149, 72, 54,252,102,115, 72, 18,146,183, 4,125, 83, 65,196,
- 89,221,173,111,227,121, 39,168,223,176,156,218,191, 72,215,107, 83, 52, 12,224, 42,209, 5,219, 61, 23, 19,194,216,232,206,246,
- 73, 78, 4,103,243,126, 74,175, 27,233, 46, 90,124,102,131, 62, 72,179,149,128,153,132,218,246,128, 86, 16,123,232, 46, 77,192,
-219,222, 75,181,211,130, 61, 44,234,146,109,204,207,198, 67, 86, 33, 72,223,192,252, 13, 85,143,139, 80, 17, 90,171, 36,239,105,
-218,240,126,163,204,117,204,155,219, 59,249,188,178,214,205,227, 94,213, 26, 1,206,129, 15,140, 67, 66,219,194,113, 53, 68,167,
-247, 32, 65, 57,159, 87,134, 97,199,197, 46, 16,171,242,203,251,149,182,173, 51, 74,239,220,212,206,235,211,202,251,143,174,121,
- 34, 16,189,242,253,143, 63, 99,246,158,143, 42,252,179, 47,127, 21,249,197,127, 96,209, 51,189, 59, 74,175,168, 20,219,249, 98,
-149, 37,231,228,139,188,128,223, 2, 46, 29, 19, 76,136, 24, 79,191,212,206, 58,175,196,105,228,112,253,152,203,171, 39, 60,127,
-242, 30,251, 36,244,100,252,167,228, 19,206, 21,142,119, 71,238,151, 27,202,105, 33, 18,152,134, 72, 65, 57,159, 51, 47, 95,236,
-184,186, 60,240,250,214, 14, 47,215, 79, 15,188,185, 59,114, 42, 43,247,199,133,235,139,196, 52, 36,206,231,133,211,124, 79, 26,
-175, 54,141,174,133,203,154, 42,169, 59, 98, 20, 74, 21, 90,206,180, 6,210, 29,222, 25,139, 64, 0,239, 27,201, 59,230,186, 50,
-191,126,205,241,148,113,162,208, 50,251,171, 43,158, 92, 63,166,172, 43, 97, 16, 62,123,243,192,159,253,249,119,248,201, 79, 14,
-252,247,255,195,191,196, 15,158,127,252,237,223,226, 31,125,235,235, 56,224,122, 26,248,241,135,175, 89,158, 63,231,209,245, 5,
- 15,167, 51,159,221,220,112,117,189,227,227,143, 95, 17, 66,226,234,233,115, 46, 14, 7,164,207,204,243,105,219, 99,186,141,136,
-151,161,142, 68,151, 24,198,145,103,143,161,148,153,178, 28,249,221,127,244,187, 60,121,246, 62, 63,249,209,247, 57, 29,111,120,
-122,245, 24,130,231,248,112, 34,184, 78, 57,175,140, 46,178,235,157,215,183,159, 49, 47,103, 19,232, 72,231,116,188,103, 94,103,
-134,225,146, 48,152, 24,231, 75, 95,186,226,219,255,228,247,248,246,183,127,143,255,252,179,159,241, 63,190,249,159,248,229, 71,
-175, 89,203, 39,120, 23,184,124,116,193,110,186,228,220,225,233,227, 43, 6,127, 9, 61,114,123,115,131,212,200,243, 95,123,193,
-251, 47,175,249,217, 79, 78,212, 6, 75, 91,240,211, 0,115,163,180,140,211,104, 7,250,182,226,122,162,175, 1, 74, 37,186,142,
-244,192,172, 43, 40,196,105, 64, 84,240, 97, 79, 43,103,116,153,233,218, 88,194,100, 88,233,197,166, 85, 85,173,177, 81,125,161,
- 55, 97,144, 11,154, 52,252,154, 9, 59, 71,110,153,166,194,224,160,149, 51,213,155,217,113, 23,246, 44, 0,174, 33,107, 32,227,
-144,168, 80, 21, 9,246,112,214,214, 32, 39, 6,117,180, 61,132,213,236,122,243,220,201,161,114,209, 2,145, 78,107,103,102, 60,
- 81, 5,137,202, 24,163,221,254, 67,192,119,165, 71,171,158, 46,107,227,176,243, 20,221,225, 81,166,197,161, 41,242,144,193, 39,
-168, 40,238, 81,164,221, 43,125, 94,153,162,163,118, 8,161, 67,241, 27,228, 72,161, 7,226,106, 45,160,131,223,243,236,242,154,
-245,246, 51,206,234,232,163, 48,183, 70, 24,204,189,225,253,192,218, 28,116,235,207, 15,140, 84, 49, 94,136,143, 35,139, 54,218,
- 12,195,190, 49, 13, 59, 83, 83,247,206,152, 44,172,233,212, 46, 24,205, 91,134,166,169, 34,174,217,207,208,244,110,106, 92,125,
-227,176,122, 7,254, 93,250,206,213,164, 74, 94, 4, 39,239,238,227,214,190,189,245, 75,223,146,250,239,118,252,158, 59,244, 92,
-113,181, 81,123,167,170, 77,221,188, 90,195,234,220, 21,122, 99, 62, 21,252, 69,196,229,202, 40, 74, 72,142, 12,228, 94,113,151,
-142,112, 22,244, 65, 41,110,101,234, 19,121,153,201, 99, 96,172,133, 92, 18,107, 23, 14,154, 88,235, 2, 34, 52,174, 89,227,189,
- 73,166,180,218,244,185, 43,155, 62,117, 43,229, 59,143,120,163, 24, 65,199, 7,135,219, 36, 45, 85, 77,208, 34, 62, 80,154,169,
- 83, 61, 98, 39,117, 31, 45,189, 74, 67,187,226,244, 45, 23, 87, 76,167,218,197,126,224,136,134,139,149, 66,175,130,108, 35, 35,
- 74, 65,123,167,244,134,111,209,166, 6,222, 72,112, 26, 4,223, 21, 95, 59, 18,204,126,133,195, 92,237,120, 82,116,208, 10,173,
- 25, 5,207, 59, 76,254,140,117, 65,187,217, 81, 77,135,232,109,175, 34, 34,168, 19,188, 19,162,136, 29, 28,140, 14,111, 9,229,
-102,129,162,241,209,173, 0, 0, 32, 0, 73, 68, 65, 84,158, 30, 19, 78, 13,109,233,122, 67,182,204, 65, 32,209,213,129,119,180,
-181,162,152,150, 85, 38, 7,179,245,230, 61,158,156, 43,181,154,114,150,237, 32, 34,206,170,124,206, 41,235,122,162,150,182,121,
-153,189,189,232, 47,175,120, 62,121,242,124,207,210,160,138,173, 57,236, 60,226, 57,159, 5,199,192,133,119,132,141, 94,181, 30,
- 63,226,123, 31, 45,212, 97,228,175,255,226,223,242,201,135,159,194, 82,201,170,104,215,237,112,110, 33, 65,245, 14,237,130,182,
-130,243, 14, 47,126,227, 7, 10,174, 59,178,118,122,171, 32,194,254,242,125,158, 63,127,202,184,243, 60, 62, 92,145, 92,179,177,
-189,119,212,249,136, 75, 35,211, 97,226,234,226, 5,251,187,196,235,219, 19,126,245, 92, 62,174, 60,156,206,188,122,117,143,208,
- 25,124, 4, 26,247,119, 15, 92, 12,129,139,221,200,114,151, 57,205, 39, 46,118,145,195, 48,112, 62,159, 89, 22,165,174,158, 49,
- 37,206,171,157,124,215,229,196, 16,119,164,105, 34,175,150,251, 88,215, 98,234, 73,103,240,232, 86, 26,126, 31,173, 23,191,110,
-255,108, 11, 98,222,223,157, 32,141, 60,122, 36,228, 53,115,177,223,145,162,227, 71, 63,249, 5,194, 75,150,155,207,137,151, 17,
- 84,136,131, 39,159, 43, 75, 81, 30, 95, 29, 56,205, 74, 12,145,195,126, 34, 14,145,188, 84,134, 97, 96,127,121,197,163,195,196,
-146, 79, 56, 21,122,247, 20,173,228,178,210,123,165,136, 26,159, 65, 50, 67, 8, 92, 60,121,198,105,153,185,185,189,225,189,231,
-143,248,198, 87,159,243,236,201, 53,255,249,187,223,229,238,205,107,118, 23, 35,193,123,150, 83,166,134,206,163,199, 35,111,110,
- 94,241,139, 95,254, 18, 39,222,124,229,221, 81,157,114, 57, 29, 88,215,149,245,124,143,147,145,151,207,222,227, 43, 95,185,102,
- 31, 29,174,116, 46,199, 61, 31,243,218,160, 36,162, 60,220, 63, 48,141,138, 15,215, 60,123,121, 65,215,149, 86, 19, 23,251, 29,
-175, 62,125,224,238,245, 43,122, 55,167,183,111,221,106, 88,165,208, 52,155,207, 65, 12, 36,213,250, 96,252,128,220,233,169, 89,
- 43,164, 41,174, 21, 28,131, 33,145, 55,159,180, 72, 67, 54, 5,174, 19,147,119,132,232,168,210,137,221, 52, 78, 46,140,248, 8,
-122, 94,112,128,140, 35,173,174,212, 94,136, 62, 48, 5,161,121,111,245,203, 30,223, 38,126,168, 53,227,178, 99,118,214,123, 15,
-150,101, 52,171, 90, 17, 28, 43,139,239,208, 7,106,119, 28,162,193,148,106, 62,113, 26, 3, 67, 78, 12, 65,145,168,180,150,240,
- 18,185, 59,206, 12,251, 9, 39,155,200, 7,143,148, 78, 84,211,207,122,245,212, 94,145,209,209, 92, 38,201,129, 65, 11,235,176,
- 34,110, 64, 6, 88,130, 18, 53, 16,239,149, 93, 12,168, 91,184,155, 87,168,149,235,131,183,240, 92,123, 66,246, 51,223,255,225,
-135,204,243,202,197,232,201,213, 52,210,173, 43,164, 1,199, 96, 10,236,224,241,201, 83, 79, 5,215, 19, 71, 7, 65, 10, 72, 99,
- 76,131,237,133, 93,163,174,141, 24, 60, 90,108,194, 37, 97,147,175,180,198, 16, 71,132, 74,148, 72, 12,129,228,223,205, 67,189,
-110, 23, 64, 7,239,118, 76,110,227, 73,188,219, 32, 61,239,144, 82,215,186,133,159,211,206, 66,220,239,242, 87,219,100, 85, 33,
- 40, 61,118,180, 24,128,180, 22,161, 74,161, 72,163,169,176,191, 26,240,139,114,179, 42,109,237, 92, 28,172,125, 18,171,224, 70,
-165, 46,133, 83, 59,225,207, 21,191,239,244,253,142,126,215,168, 62,224,220, 2, 24, 96,171,248,134,171,157,180, 11,132, 22,201,
-247,243, 86, 69, 79,132,206,219, 27,180,245,112,251,182, 43,239,189, 26,233,127,219,127,183,238, 8, 98,233,239, 42,178,233,106,
-196, 24,241,226,105, 82,137,221, 88,235,160, 54, 6,240,118, 91,102, 75, 94, 54,103,124,238,222, 27, 65, 28, 4, 67,178,182,110,
-148, 55,188, 85, 87,130, 44, 56, 9, 84, 13,230,105,118, 29, 81, 99, 58, 55,245, 56, 42, 90,192,133,104, 5,187, 98, 9,123,239,
-236,230,230,188,125,243,138,179, 16, 97, 23, 71, 15, 14,167,198,161,151, 16, 45,240,212,213,170, 50, 40,226,186, 17,225, 74, 71,
-131,105,210,107, 85,164,228,109,239, 28,168, 20,180,118, 42, 13,183,102, 91, 91, 56,133,224, 76, 74,131, 71, 66, 39,142,253,173,
-201,143, 82,234, 70,209,179, 4,237,232,163,117,215, 67, 36,186,192,188, 86,123,232,110,189,127,239, 60, 95,122,180,199,231, 59,
-226,193, 49,206,141,155, 89,168, 90,141,129,220, 60,143, 14,194,123,215, 17,100,229,180,118, 92,152,248,214,215,174,248,240,246,
-204,167,119, 39,254,247,255,237,223, 18,134,180,233,106, 45,115,160,106,118,243,183,246, 3,121, 59,150,115, 30, 63,154, 62,212,
- 41, 68, 47, 84,205,140,211, 99, 62,120,241, 77,222,127,249,152,221,208, 88,202, 66, 47, 15,100, 26,165, 9,100,131,241,204,249,
-196,124,187,226,117, 0, 85,246, 83,130, 14,251,139,129, 90, 43,243, 58,179,206, 43, 69, 29,206, 57,150,156,185,121, 56,217,129,
-177, 99,249,129,210, 72,131,125, 46, 69, 51,213,101, 98, 12, 4, 39,100,173, 44,107,101, 26, 26,189, 26, 19,129, 90,153,207, 39,
-219, 15,226,104,210,113, 40,222,219,152,209,252,130, 91, 6,196, 37, 66,220, 44, 83,181,224,156,129,139, 90, 81,254,187,127,253,
- 95,241,237,127,254, 91,196,120, 70,139,226,125,162,183,206,249,126,166,171,216,138,198, 67,244,209,232, 97, 26, 72,227, 5,207,
-247, 79,192,117,150,114,102, 55, 6,164, 42, 55, 15, 11,243,241,100, 52,196,222,168, 15,103,150,249,196,227,203, 71, 36, 58,165,
-204, 92, 95, 30, 24, 39,199,239,252,230,151,185, 63, 62, 80, 40,252,243,127,241,207,249,254,223,252,128, 31,254,224,123, 56,239,
- 24,134, 3,116,199,155,215, 39,142, 15,179, 57,197,187,229, 79, 66,138,198,216,159,246, 4,175,244,229, 1,156,112,188, 89,249,
-159,255,205,159,240,135,255,117,231,245,205, 29,159,126,254,154,222,154,153, 4,155,179,125,250,122, 98, 31, 18,147, 8,218, 23,
-230, 89,137,110,100,117,141, 15, 63,126,195,124, 90,201,171, 67,134,142,215,138,115,145, 30, 7,242,188,210,251,130,196,145, 46,
-129, 32,158,228, 18, 69,149,181, 44,120, 25, 72,195,158, 21,165,215,217,164, 20, 46, 64,220,225, 27, 95, 92, 12,106, 83,220, 65,
- 72, 50,208,215, 64,140,178, 9, 50, 26,153,197, 82,229,114,132,193, 51,174,123, 92, 84,238,231,133,233,224,241,171,125,159,187,
- 10,148,149,131, 23, 86,175,180,188,218, 45,113,136,204,222,163, 15, 29,138,210, 70,152,186,167,173, 74,240,145, 93, 26,104, 77,
-209,102, 85,194,117, 74,104,170,164,115, 70, 99,227,232,162,173, 20,171,199,135,142, 4, 79,244,141, 78, 36, 14, 23,160,149,124,
-127, 6,129,180,155,160, 56, 52,205,180,224,241,110,194,149,200, 48,128,207, 43, 82,132, 50, 84,203,246,120,207,120,189,183,247,
-162,226,104, 81, 24,166, 74, 88, 29,119,245, 68,218, 59,214,115, 37,250, 61,113,138,198,124, 47,142, 54, 65, 59, 47, 6,129,123,
-122, 77,203, 10, 46,211, 37,226,113,196, 36, 16, 12,255, 90, 91,193, 37,179, 79,218, 92,185, 18, 9, 12, 81,172,170,212, 59, 62,
- 89,189,177,123, 49,232,213, 59,216, 31,107, 83, 11,157,241,238, 68,234, 38, 93, 83,122,107,132, 36,239,180,163,222, 55,243,162,
- 29, 24,222,113, 0,111,251,228, 91, 46,204,107,195,245, 68,107,213, 70,239,163,224, 72,132,181,126,241,140, 57, 3,131, 15,140,
-131,160,203,153, 24, 3,179, 58, 56,122,156, 22, 98, 31, 72, 97, 7,221, 81,214, 70, 74, 9,145, 76,140,123,150,227,204, 76, 99,
-204,130,132,192, 82,142,196, 62,146,139, 35,238, 20,215, 27,193,163,150, 22,215, 77,222, 34,111,251,223,225,139, 55, 94,186,141,
-143, 59,102, 76, 99, 99,105, 59,217, 76, 87, 94, 13,233, 42,221, 48,174,146,192,219, 55,219, 13, 30,205,138,115,149,136,167,122,
-211,170,118,239,232,173,109, 88,120, 69, 17,219,203, 59,111,156,237,216,209,150,113, 93, 89, 87,199, 97, 8,184,222, 89,138, 49,
-197, 7, 9, 86, 93, 21,161, 55,103, 59,216, 77,209,170, 34, 52,177,116,190,115,237,139,125,103,235,182,171,211, 22, 73, 67, 96,
-204,149, 34,206,110, 90, 98,212, 57,117, 98,129, 24,181,155,106, 87,187,205,155,199,219,128, 29, 40, 70, 26,163, 89,101,202, 37,
-122, 95,237,244,186, 8, 62, 89,133,207, 53, 51, 39,173, 93,113, 61,224, 66,220,122,245, 13,145, 45, 64, 40,109,243,179,123,106,
- 45,180,146,208,114,203,224,149,203, 97,160,113,230,246, 1, 30,112,214,159,215,202,213,245, 72,140, 43,111,212,163,197, 49,180,
-202,245,176,231,247,191,252,140,115,249, 28, 63, 8,247, 15, 11,205,245, 47,244,141,142,110,171,252,183, 76,128,110, 53,198,105,
- 24,104,181,108,104,126,111,161,197,238,121,241,222, 7,252,151,191,255, 79, 8,195,145,211,178,240,230, 38, 32,222,115,127,124,
- 67, 19,240, 53,227, 82, 66,181,145,170,163,144,105,174, 17,165,177,195,130, 67,227, 48,176, 27, 15, 60, 76,103,142,119,119, 60,
-145, 71,156,114,102, 93, 29,222, 59, 14,151, 23,164, 16, 54,221,169, 67, 60, 44,231,133,178,172,236,134,209,114, 5, 13,214,156,
-113,178,103,116,222,168,135,173,177, 44, 74, 11, 25, 69,209,222,192, 69,188, 42, 85,183,189, 34, 66, 43,141, 30, 4, 31, 18,189,
-153, 36,168, 57,251,119,206,243, 3,127,248, 7,191,206,179, 15,174,185,251,116,134,213,209,135,142,106, 97,119, 57,114, 62, 23,
-214,166, 16, 18, 63,249,240, 67,254,226, 47,191,199, 71, 31,191,102,127, 56,144, 98,228,246,230, 53, 49, 56,124, 83,110, 79, 71,
-214, 50,155,245,175,218,148,171,119,229,124, 84, 92,126, 77,120,246, 20,233,149,225, 74, 24,210,158,139,120, 32, 94,122,254,151,
-127,243,127,240,149,175,127,139,223,253, 47,126,155, 39,143,174,249,247,127,246,167, 28,251, 61,187, 97,199, 90, 44, 25, 61,133,
- 72,107,157, 90, 27, 57, 84,158, 94, 92,226, 90,167,106, 97,112,130,134,196,112,113,193,152, 28,223,249,243,255,200,116,185,227,
-209,229,129,251,219,123, 11,239,180, 74,244,176, 54, 69,230, 19,243,121,221, 78,116,137,178,118, 90, 11,156,215,206, 90, 29, 99,
- 72, 44,110, 69,212,211,215, 76,173, 91, 91, 68, 6,180, 22,162, 91,193, 37,214, 8,129, 61,169,207, 40, 25,134,132,111,224,155,
- 39,106,199,135, 74, 17,232, 61, 33, 58,163,179, 85,160,122, 23, 38, 7,132,202,114,178,208,105,243,133,216,131,145, 44,189, 16,
-170,103,237,149, 92, 5, 39,145,249,193,118,161, 18,179, 41,105,219,153,186, 63,192, 48,208,214, 19, 85, 23,168,141,243,169,160,
-217, 65,175,102,215,203,141, 20, 29,213, 11,180,196,144, 54,155,227,234,129, 51,174, 70, 22,162,209,228,176, 74,154,182,204, 18,
- 19, 73,237,101,233,162,125, 47,149,134, 12,142,128, 77, 45,135, 48, 50, 36,193,187,200,178, 40, 4,197,185, 70,144, 72,137,149,
-113,112, 4, 63, 16, 99,229,110,134,250,208, 73,106,210,155, 50, 47,156, 91, 32,186, 72, 26,237,225,178,212, 21,215,236,235,238,
-227, 37, 75,173, 80,149, 24, 58,210,102, 36,121,100,245,164,222,209,131, 35,159, 97,242,141, 48, 41, 90, 29,174, 59,198,193, 52,
-187, 61, 88, 94,167,181, 70,138,208, 61,172,173, 32,193,244,189, 46,164,127,248,173,148,141, 1,177, 77, 83,223,213,195, 87,129,
- 82,218, 38, 14,251,149,254,245, 93, 5,240, 84,173,214,236,125,226, 93,255,106,106,120, 91,175,121,131, 95, 69,227,247,231,140,
-120,107,106,116, 49,208, 25, 69, 41, 30,206, 55,103, 34,141,197, 67, 61, 40,235,109, 38,132, 68,138, 43,193, 79,148,234,104,231,
- 59,228, 58, 64,138,140,103, 37, 5,203, 88,172,218,241,165, 17,171,163,214,140,184, 72, 94, 58,174, 58,252,139, 23, 47,254,232,
- 45,240,207, 30, 92, 98,157,113,111, 61,100, 23, 4,239, 29,210, 58,234, 77,128,235,192,110,167, 94,160, 7,123, 72,200,219, 66,
-156,223, 64, 53,130,244,102,151,125, 15,162,142,130, 65,250,221,118, 46, 64,155, 41, 58,183,235,163,176, 73, 9,156, 5,229,130,
-179,125,175,219,200,220, 0, 94,148,238,135,109,204,100, 97, 56,186, 5,223,212, 9,116, 65,212,180,159, 94, 43,173,169, 81,229,
-106, 69,213, 92,207,136,165,104,181,235,150, 29,104, 6,140, 81, 71, 23, 67,225,210,173,102,151,188, 80,100, 51,216,105,167,108,
-233,204,222, 45, 12, 17, 7, 71, 64,232,190, 35,209, 51,132, 1,173,111, 53,128,141,251,155, 91,230,106,123,167,224,141,157,111,
-184, 82,207,110, 76,172,203,204,186, 97,160, 84, 58,151, 59,229,189, 67,224,114,242,236,163,163,212,206,169, 69,214, 34,224, 6,
-194, 16,105, 85, 56, 61, 40,105, 76, 60,222, 39,251, 58, 13,194,179, 52,242,234,248, 64,238,142,132,114,206,155,167,233,173, 18,
- 21, 35,186, 53, 4, 31, 34,215,251,137, 33, 9, 37,219,234,194,190,247,141, 24, 19,142,206,252,240, 25,247,183,159,114, 60, 31,
-185,126,244,132,103,143,159,145,166,167, 84,113,228,146,233,189,162,217,252,216,218, 10, 45, 23,186, 23,114, 85,150,210,169, 78,
-145, 96,148,194, 82, 11,135,253,129,231, 87,239,241,228,201, 99,158, 63,123,196,213,254,146,235,203,201,106, 63,206,155, 22,212,
- 25,137,207, 5,251,188,138, 42,222, 57,174,246, 87,100, 45,172,165, 80,138,226,130,199,123,161,109,107, 23, 17,103, 50,158,214,
- 89,107, 51, 29, 43,157,113,183, 99,191,155, 40,181,114,121,216,163,170, 4,159,240,193,243,123,191,251,117, 14, 87,201, 60,205,
- 91,118, 16,117,148,165,113, 58,175,220,159, 50,222, 7,254,226, 47,191,203, 95,124,247, 7, 72, 48, 26, 98, 41, 21,173,157,113,
-136, 44,203,204,113, 89,104,165, 51,140,137,142,176, 84,155,142,212,214, 56,231, 74, 8,145, 56, 70,196, 43, 67,116, 60,121,242,
-148,247,159, 95,242,199,127,242,103,124,247,175,254,150,103,151,215,124,253, 43, 95,226, 92, 26, 63,252,225,143,104, 40,209,121,
- 98,180,215, 73,201,246,250,186,216, 95, 16, 93,162,212,108, 30,249, 22,232,213,113, 62,159,185,188,114,148, 90,185, 63,101,198,
- 52,160, 4,206,167, 25,117, 86, 25, 69, 29,185, 22,238,111, 79,188,255,244,146, 39, 47, 30,115,251, 58,243,176, 8,203,154, 81,
- 50,161,195,154,205, 85, 95,186, 18,189,216,142,218,123,155,138,137, 61,224, 37,217, 33,119, 12,157,181, 40,189,217, 67, 69,106,
-176,192, 39, 66,105, 32, 94,136,218,200, 36, 59, 76,122, 80,178,185,181,187, 71, 6,197,247,128,119,158, 36,202,210, 34,173, 71,
-114,155,113,170,118, 91,243, 21,237, 21,167, 1,245, 51,131,139,150,192,207,153,209, 59, 30,206, 43,165, 58, 36, 40,212, 76,235,
-157,232, 61, 1,135, 31,133,113, 24,169,163,224,187, 80,115, 65,220, 8, 49,224,146,167, 20,168, 45,178, 31,246,248,216,169,221,
- 81,117, 70, 90, 64, 82, 68,123,133,102,225, 88,159,182,241,106,140,230,180,112, 10, 98, 55,123, 66, 39,133,184, 73,165, 70,134,
-113, 32,141,163, 73,164,122, 37,198,198,126, 63,208,177,181, 76,237,214, 61,142,111,165, 82,162,212, 44,104, 11,134,190,246, 16,
-123, 66, 54,169,201,154, 11, 97,244,184,234,152, 75, 38,148,198,148, 18,115,237,164, 24, 33, 64,105, 86, 9,246,158,141,249,225,
-182, 77,162,241, 52,146,247,236,198,145,103,239, 61, 49,166,200, 63,112, 63, 61,159, 51, 45,175,236, 7,199,176,219,191,155, 7,
- 99,135,243,185,162,235,194,110, 10,164,105,122,119, 96,152,220, 88,207, 51,154, 11, 23, 23,145, 48, 76,239,244,161,126,123,106,
-188,121,117, 67, 57,223, 18,104,182,190,236,133, 92, 21,201, 66,153, 43,187,109, 79,164,179, 9,149, 86, 15,209, 57, 19, 18, 97,
-205, 49,215, 18,234, 59, 69, 29,218, 60, 81, 2, 99, 16,102,237,148,135,140, 6,143,109,138, 51, 94, 10, 93, 50,243, 90,152,134,
-136,248,200,233,188,224, 95,190,124,127,123,168,111, 15,196, 46, 6,145, 9, 54,202, 54,135,185,199,109, 85, 53,123, 88,219,126,
-118,107,126, 91, 98, 54,188, 85,160,218, 45, 76,187,218,131,119, 27,201,119, 12,161,234,137,116, 39, 91,176, 9,180, 9, 62,184,
- 45,121, 33, 91,176,169,253,202,221,222,177,234,203,246, 3, 42, 46,216, 20,165, 41,210, 13, 94, 17,188,153,112, 98, 16, 68, 43,
- 93, 32,249, 78,107,149,230,133, 40, 80,213, 78,240,253,237,231, 95, 55,108,160, 98,178, 22,204,218,165,106,245, 19, 85,163,127,
- 57,111,159,119, 83, 27,159, 52,237, 91,200, 12,156, 75,150,216, 23,181, 93,149, 51,124,174,219, 14, 46,212,194,237,221, 3, 75,
-209, 77, 14,180,105,105,135,192, 56, 76, 28,246, 59,202,124,102, 41, 5,241,158,199, 87, 19, 95,125,188, 99,231,149,232, 19,169,
- 43, 75,174, 44,218,121,168,118,216, 17, 60,165, 38, 78,115,229,197,228,185,158, 34, 25, 56, 46, 71, 90, 31,153,124,231,151,111,
- 30,232, 56,214,106,159,187, 74,199, 99, 78,242,182,117, 59,134,152, 24, 6, 43,184,158,231, 74,235,138,235, 6,248,216, 79, 7,
-198,184, 99, 46, 51,175, 79,183,144, 11,173, 60,208, 67, 99, 63,140, 60,121,249,146, 39,207,158, 32, 68, 78,235,202,170,157,188,
- 66,110, 43, 85,132, 92, 76,117, 74,110,148,121,165,228,149,105, 26,153,226,192, 16, 60,193, 91,151, 86, 98,176, 4,190, 19, 6,
- 63, 48,142, 59,174, 30, 29,136, 99,160,174,217,190,238,173, 81,155,245,149,157,183,145,190,182,134, 79,241, 11,126, 50,210, 17,
-117,184, 24,236,230,222, 44, 27,209,123, 39,120, 71,171,133,105,220,241,248,250,218,126,110, 68, 24,134,145,111,255,211,223,224,
-209,211,189, 65,149,188, 51,166,246, 90,201,165,115, 94, 26, 75,238,172, 37,243,215,223,255, 1,183,183, 15,140,195,128,239,198,
-251,239,173, 51,140, 19,243, 58,219, 8,212,218,106,228,121,165, 20,251, 25,244, 94,108,237,225,133,195,245, 8, 61,226, 10,164,
- 24,121,246, 98,207, 79,127,254, 17,223,249,222,143,184,121,245, 41,151,207, 30,243,236,215, 94,242,139, 31,255,140,155,219, 91,
-203,161,248,142,106,199,169,165,249, 47, 31, 95, 25,184, 66,160, 71, 8,241,128,195,177,172, 15,252,242,243, 27,174, 47,159,242,
-187,191,241, 62,159,221,220,113,253,248, 49,181, 21,150,117,197, 7, 33,184,132, 83,184, 61, 29, 57, 46,149,175,124,233, 5,170,
- 3,243,218,113,172,172,121,101,241,142,214,149, 46,193, 80,194, 13,180, 27, 81, 18,159,136,162,120,111,140,131, 1, 71, 22,135,
-186,142, 15,141, 62,237, 41, 85,241,169, 35, 61,225,220, 64,201, 39,123,127,208,134, 6,135, 27, 12, 65, 45,139,189,102,189, 15,
-244, 46,172,210, 80, 86, 90, 93, 40,181,162, 69,112,161, 33, 77, 9,197,130,110,158, 98,126,114, 21,122, 19, 84,236,235, 93,171,
- 71,251, 10,205, 17, 91,162,246,188,129, 85, 18,125, 35, 87, 6, 28,193,121,186,138, 77, 60, 48,218, 87,109, 71,195,239,106, 35,
-247, 70,201, 71,219, 95,187, 74, 26,119,232,220,232, 82,104,197,110, 94,201, 37,187,181, 27, 63,218,242, 65, 85, 44,195,131, 67,
-240, 72,138,248,232,240, 21,202, 26,113,190, 50,122,207, 82,156,229,130,122, 49, 14,134, 68, 14,193,209,106,164,116, 72,110,160,
- 73, 32,197, 78, 8,150,150,151, 97,162,149,142,239,153, 62, 0,227,128,107,130, 19,193,139,195, 15,110,123,136, 11,161, 91, 3,
-193,137,241,221,125, 12, 72,143, 95, 60,232, 29,129,113, 10, 60,125,246,248, 31, 92,105,171, 29,230,211, 76, 43,153,253, 20,137,
-227,244,206,110,234,231,115, 70,203,202,197, 20, 9,227,248, 14, 31,234, 86, 93,150,186,114,125, 53,225,226,248, 46, 39,239,220,
-156,149,219,207,223, 80,230, 7,219,123,107,177, 48,111, 48,210,163, 4, 8, 41, 48,175,246,222,215,122,163,212,153,152, 70,138,
-247,228, 94, 89,142, 51,190, 7,115,137,232, 76,237,149, 33, 42,139, 40, 97,221,113, 21, 29,139,158,241,173, 33, 84,100,239,232,
-222, 42,146,210,183, 28, 20, 3,254,197, 7, 31,252,209,214,183, 50, 80,156,179,135, 79,111,150, 44,199, 57,156, 55, 59,153,235,
-134,143,245,222,189,253, 79, 44,244,246,197,195,204,125,193,214,237,155,230,212, 70,161, 30,165, 19,183,219,188, 72, 55, 39,123,
-238, 6,107,149,130, 71,104,106,206,118,188,253,123, 42,118,115,175, 90, 45,108,227, 61,218, 54, 6,123, 12, 70, 67, 11,106,187,
-236,110, 15,111,156,224,164,153,124,161,118, 68,141,220,214,213, 96, 53,189,119,235,180, 6,235, 89, 42,182,175,151, 77, 51,139,
- 90,198,192,117, 71,114, 80,170, 34,222, 81,242, 91,192,131,213,223,156, 64,138, 30, 84,112,222, 8, 86,234,173,254,227,162, 77,
- 22,214,101,225,246,238,129,214,133,174,138,136, 85, 77, 2,158, 33, 78,236,125,228,120,190, 99, 45,202, 56, 68,190,254,116,199,
-151, 46, 7,246, 67, 32, 75,227,184, 58,124, 10, 36, 31, 40, 50, 82,155, 80,218, 74,244,194, 56, 94, 49,247, 74,144,149,169,131,
-184,137,235,167,239,241,104, 16,238,111,239,184, 57,101,242,210,182,160,156, 81,228,140, 98,215, 96, 11,252, 53, 58,203, 82, 88,
-138,121,159, 59,194,110, 58, 48, 12, 17, 60,236, 6,207,205,235,215,188,186, 61,114, 58,175,220,221,190,226,248,112,207, 56,120,
-174, 47, 2, 95,255,181, 47,243,248,217,215, 89,107,100,174,153, 22,160,101, 40,231, 51,181, 84,150,211,137,170,194,112, 24, 24,
- 98,100,151, 18,234,149,166,178, 33, 91, 27,107, 54,248,207,224, 61,205,155, 85, 45,133,136,147,104,129,180,113, 50, 10, 91,112,
-219, 97, 74,201, 37,155,212, 39, 68,122,107,244,190,117,169,163,245,219,107,206,214,216,216,154, 15,181, 22,198,113,228,114,183,
-167,182, 74,213,194,203,151, 47,121,184,185,167,229,194,203,175,188,180,214, 69,169,244,230, 9, 49,146,215, 78,195,243,201,167,
-159,240, 87,127,245, 3,106, 85,124,136,248, 52,144,196,108,102,181, 21,150,101,161, 46,153, 97,244, 52,237, 28, 31, 22,171, 87,
- 34,104,237, 68,129, 16, 35, 41,140,150,233, 8,142,230, 22,158, 60, 26,120,243,203, 27,126,246,233,107,238,143, 15,204,199, 19,
-223,248,230,111,178,219,237,248,201,143,126, 66,169,149, 90, 10,173, 20, 98, 12, 60,123,239, 61, 16, 40, 57,163,173,224, 69, 24,
-199, 29,222,245,237,176,166, 68, 17,222,220,188,226,227, 79,238, 56, 76,123,198, 93, 98, 45,153,210,140, 76,133,130,138,227,252,
-176, 0,142,203,203,199,212, 86,201,117,102,205,230,222, 22, 17,198,110, 58,213,166, 48, 68, 33,170, 80,109, 71,103, 99,108, 54,
- 51,151, 4,162,235, 36, 9,246,240, 31, 58, 84, 15,165, 81,157, 82,115, 70, 70, 97,196,219,158,189, 67,146,141, 53,235, 21,209,
-100, 19, 48, 42,125,235,240, 83, 27, 77, 60, 84, 71,205, 21, 39,193,136,147,154,240,221,216,215, 65, 58,190, 70,170,118, 2, 21,
-186,103,156, 18,180, 74,117,134, 1,174, 62,160,219, 1,104,236,142,222, 2, 69,149,166,141, 16, 21, 87,192, 21,235, 45,183,208,
- 9, 54,170, 99, 61, 87,198, 97, 32,175,149,174,202, 92, 50, 74, 39,137,223, 14,249,254, 11,132,109,140, 38,185,233,218,241,209,
- 28, 22, 94, 28,174, 27,251,195, 57, 79, 75,144,114, 69, 52, 48,215, 74,214,182, 41,125, 15,224, 58,161, 27,119, 97,191,155, 76,
-105, 93, 21,223,236,253,160, 82,217, 57,136, 62, 80, 39,207, 62, 11, 49, 64,142, 66,152, 18,135,228,172, 29,178, 10,226, 61, 46,
-202,214,229, 87,123,159,117,142, 96, 51, 11, 11, 36,139, 24, 3, 64, 60, 53, 87,104, 54,113,164,111,187,108,172, 34,220,251,134,
-212,238,111, 23,221, 91,210,108, 35,206,204, 75, 97, 57, 47,212, 90, 73,174, 51,238,223, 13,245,109,109,112,188, 63, 67, 93, 56,
-236,226, 59,195,184, 42,112, 94, 26,101,158,241,154,185,186,218, 35, 97,120,119,163,125,224,246,152,185,125,115,131,214,123,186,
- 26,206,185,209,201,213, 2,210,104,163,183,134, 43,160,121, 3,187,185,104,133,114,231, 88, 78, 71,100,103,245,181,220,206,200,
-126, 59, 64,182, 66,146,145, 92,207,204,235,140,247,158, 41, 88, 51,171,128,113,228,253,140,223,155,140,136, 86,241, 47,222,127,
-241, 71, 97,115,159,235,166, 79,237,106,183,243,190,193,224,157, 23, 68, 77,255,184,101,229, 65, 28,218, 97, 74,230, 58, 23, 18,
-226, 44,236, 38,186,133, 28, 92,223,144,179, 27, 49, 62,216,248,190,171,221,152,157, 56,122,135, 40, 22,198, 19, 44, 52,167,116,
- 92, 55,253,158,247,125,187, 21, 7,188,247,208,204,147,221,183, 14,124, 24, 18,110, 11,162,233,150, 14,111, 40,104, 65,155, 65,
-216,165,219,109,206, 57,143,115, 66,176, 40, 31, 77,133,224,212,132, 17,221,161,213,210,163,118,125,135,210,219, 86,199, 19, 90,
-109,104,247,155,214,211, 42,120, 18,141, 55, 79,183,135,184, 32, 4,111, 24,203, 33, 4,214,211, 29,175,239, 78, 38,176, 15, 14,
- 9,193,210,196,173, 17,198,137, 16, 28,167,229,140,139,145,167, 87, 19, 95,123,111,226,242, 48,209, 93, 39,116,101, 23, 29,187,
- 67, 98,169,129,211, 50, 48, 87,101,188,220,145,198, 17, 39,145,211,156,121, 51, 7,110, 86,120,113, 61,242,100, 55,208,152,153,
-166,198,235,207,142,124,248,250,196, 82, 13, 2,212,138, 81,239,236,197,218,127,133,239,221, 40, 75, 69, 45,104,182, 31,119,164,
- 16,236,160,230, 26,199,243,194, 90, 50,243,178,240,230,254,142,155,155, 91,142,247,247, 60,220,223,112,188,191, 35,180,149, 58,
-223, 82, 40,236,166, 39,120, 9, 44,203, 3,218,149,247,190,252, 77,222,251,224, 37, 99, 26,113,190, 17, 90, 71, 67,183, 85,141,
- 56, 90,171, 4,231, 25, 70,161, 59,251,129, 14,155,192,167,139,103, 74, 35,187,157,245,182,163, 31, 54, 38,129,146,123, 51, 67,
- 86,124,251,245,124, 43,102,137,244,110,142,116,121,155, 5, 17,251,137, 13, 33,114,185,223,179,228,149,166,149,195,254,146,143,
- 63,121, 69,239,141,223,255,131,111,209,230,149,243,205,194,188, 84, 78, 15,213,170,156,218,249,211,127,255, 23,124,244,201,107,
- 58,106, 97,185, 52,208, 4,164, 43,190, 71,170, 22,138,102,123,224,158, 10,203,230, 26,160,119,188,235, 76, 23, 35,187, 97,199,
- 52,140, 92, 14,158,185, 86, 84, 51, 65, 51, 63,252,233,231, 60, 28,207,212, 92,185, 63,206, 28,239,110,217,143, 59,110,238,238,
-152,151, 51,218, 10,211,110,207,211,231, 47,169,170,212, 82, 80, 45, 84, 85, 66, 24,137,221,234, 93,221, 15,248, 56,242,236, 98,
-228,195, 79, 63,230,225,126, 70, 36,129, 28,152, 18, 76, 49, 49, 47,213,252, 7,218, 64, 42,111,222,220,113,184,120, 66, 26, 15,
- 20,102,122, 43,148,181, 16, 91,160,106, 67, 3,168,107, 12,227,128, 96,192,169, 24,247,166,244,148,104, 29,105,153,241,174,210,
- 37, 50,168,176, 31, 70, 90,178, 16,107,236,158,224, 26, 69, 2,173,141, 52,183, 80,230,153,214,173,141,226,123,163, 84,136, 18,
-161,101,147,152,196, 64, 16,217,236, 17, 30,113, 5, 29,161,171,201,115,124,237,104,134,142,103, 8, 22,172,164,182,141, 18,105,
- 19,173, 56, 93,210,114, 33,137, 29,188,155, 4, 66, 50,100,107,169, 30,167,209,194,183,195,129, 32, 13,130, 82,235, 30,167,202,
- 26, 10,173, 27, 93,115, 89, 42, 45, 23, 52,120, 46, 98,164,186,200,130,237,239,229,109,198,168,153,116, 6,103, 19, 76,196,153,
-200,169, 54, 52,218,219,189,107, 66,117,176,139, 35,133, 66, 33,226,170,210,100,161,230,198,213,148, 76, 12,211, 10, 97, 3,185,
-236,210, 5,222, 43,165, 43, 67,220, 65,232,196, 48,114, 8,158, 69, 61,211, 24,152, 6,163,227,117, 31,232, 78,137, 2, 18,220,
-246,231,136,244, 45, 55,231, 5, 31, 6,187,221, 15,123,106,216,177, 86,251,111,179, 66,110,157,117,173,172,165, 81, 74, 35,151,
- 74,206,149,146, 59,185, 52,214,165, 50,207,149,117,169,156,207,133,187,251, 51,167,251,123,250, 22,148, 43, 85, 41, 75, 37,231,
-102,254,239,181, 24,180,168, 54,106,110,214,236,105,221, 14,215,185,125,145, 57,105, 27, 45,178,213,134,230, 74, 94, 11,199,135,
- 19,101, 93,208, 13, 23,158,182, 75, 96,111, 38,208,234, 88,171,165,171,253, 89,182,131, 70,239,191,250,235,191,255,135, 29,212,
-150, 92, 57, 29, 79,214, 76,105,133,195, 20,240,111, 77,117,102,191,249, 7, 29, 74,114,131,215,175,111, 57,222,223,145,151,147,
-125, 78,106, 89, 31,231,160,173,221, 64, 90, 85,104,210, 56,191,205, 13, 4, 79,201,149,222, 42, 90, 21,239, 70,170, 38,195,175,
- 51, 32, 57,176,174, 5,233,157, 33, 56, 36, 24, 23, 37,119, 33,106, 71,188, 35, 55,103,255,143,188, 16,124, 99,157, 27,161, 55,
-187, 17,243, 22, 60,179, 1, 87,154,110, 34, 19,121, 75,141, 2,227,181,109, 56,187, 77,185,215,240,224, 11, 77, 42,174,111,246,
-178, 38,244,216, 45,135,220,141,179, 46,189,227,154,195, 11, 6,180, 81,103, 23,125,103, 31,103,221, 40,107,210,237,225, 40, 68,
-132,134,239, 54, 2, 4, 91, 13,184, 0,154,187,129,102, 8,232,106, 90, 86, 17,143,120,161,170, 41, 17, 29,208,131, 67,234, 54,
-150,112, 91,154, 89, 59, 42,141,214,132,174,157,204, 86,215,209,134,106, 71,122, 33,185, 64,241,160, 42,184, 32,155,151,206,210,
-227, 97,171,102, 57,111, 15,139, 97, 26,137,192,186, 90,213,164,109,216, 92,241, 74, 85, 91, 80,184,183, 58, 48,204, 75,239,156,
- 33,115,135, 56, 48,165, 61,185,173, 92,239, 35,251,224, 80,231, 40, 93, 76, 3,235,109,201,241,250,182,114,219,140, 27,238,186,
-177,236,101, 45,244,146,185,201,137,221,229,142, 39,143, 61,174, 61,160,235, 3,196, 61, 50, 30, 88,234, 61, 4,103, 35,207,205,
-220, 36,222,214, 38,155,107,199,100, 55, 78, 17,109,132, 96,163, 67,233,194,213,176,163,201, 76, 16,251,123,179,249, 69,214,210,
-248,201, 71,159,240,241,171, 87, 76,233,231, 92, 31,118,136, 79, 76,195, 5,227,240, 64,154, 44, 28, 23,210,200, 55,127,237, 37,
-207, 30, 77,220,206,153,211,205,153,243,124,195,121,205,232,122, 98,237,149,221,152,112, 62, 81,233,196,161,147,207,158,230, 87,
- 66,104,140,106,252,126,213, 70, 28, 18,184, 70,242, 19,211,180,103,119, 49,114, 62,205,120, 60,174,195,177, 88,120,142,109, 87,
-235,186,133, 34,107,111,184,230,236,229,218,237,144, 86,181, 18, 67,224,213,171, 87, 92, 93, 30,248,237,223,250, 58,134,242, 19,
-210, 52, 81,117, 97, 45, 43, 21,207,135,159,190,226,199, 63,255, 20, 16, 66, 8,180, 86,208,156,185,120,244,152,135,251, 55,184,
- 0,211, 16, 89,150,192,233,184,152,107, 29,217, 2, 57,176, 63, 92,176,191, 58, 16,107, 35, 37,199,179,103, 23,124,242,201, 13,
- 55, 55,133,255,235,248, 33,247,119,247,140, 46,113,138, 35, 77, 43, 63,253,217,207,249,249,135,191, 48, 5,172, 8, 93, 2, 49,
-238,140,226, 88, 43,209, 98, 62,236,210, 30,130, 35,247,237, 0,209,148,167,135, 3,206,159,185,123, 88,105, 85,121,243,230, 51,
-246, 23,153, 71, 23,215,188,252, 96,162,247,143,216, 93, 93,224, 67,228,147, 79,126,193,253,253, 3,127,243,195,239,243,205,177,
- 49, 13, 1,173,130,239,145,197,109,189,230,236, 8,187,129, 62, 68, 16, 97, 18,229,246,248, 25, 15,175,238,184,125,243,134, 94,
- 21, 82,103, 8, 9, 23, 34,222, 11,147,223,161,190, 49,237,247, 92,236,174,236,125,195, 77, 56,201, 84,148, 93,138,148,166,136,
-194,218, 60,227,224, 57,157,239,136,209,179, 31, 6, 74,111,204, 93,160,101, 6,137, 52,115,152,208,213,227,166, 45, 60,231, 28,
-221, 53, 78,189, 18, 7,193, 37,232,231, 66, 95, 5, 65,201,199, 59,196,253,106,170,179,219, 77,104,168,212,102,227,105,165, 24,
- 88,106, 57,209,147,178,172,157,216, 78,228,212,237,115,147,198,169, 58,210,212,232, 53,146, 79, 39,110, 93,161,158, 23, 38, 31,
-153, 89, 25, 39, 79,149,142, 52, 71,196,147, 70,160, 10,221,217, 84, 17, 39, 56, 26,129,204,210, 58, 67, 24,209, 4, 7,217,145,
- 38,143,186, 76, 57,206,244, 12,115, 72,248,226,113,204,246,245, 26,119, 48, 36,195,112,207,133, 97, 16,124, 31,205,189, 33,202,
- 0, 84,133,214, 5, 63, 8,154,133, 33, 37, 43,251,117,165, 56,143,228,102,175,235, 96,115,210, 42, 6,251,122,239,217,129,231,
-239,191,247,133,207,227,109, 14,173,243,119,158,107,253,139, 77,232,175,170, 96,250,171, 27, 41, 69, 89,111, 4,214, 51,210,149,
-113,218, 49, 28, 46, 55, 81, 81,183, 6,149,179, 92,150,217, 16,101,251, 56,125,187,136,217, 69,174,183,110, 62,118,187,227,176,
-228, 74, 91, 86, 27,135,122, 56, 54,200,167,106,135,164,238, 54,163,162,223, 24, 95,221,250,255,219, 95, 55, 53,138, 39, 98,149,
- 56,227,170, 24,243,164, 53,101,201,171,245,198, 59, 52,113,124,242,249,145,233,190,154, 86,252,237, 42,195, 27,251, 68,183,233,
-158,119,150,187, 98,203, 80,249, 45,139,165,218, 41,205,124,232,104, 35,107,227,213,221,204,253,241,132,182, 25, 81,160, 55, 84,
- 42,189, 41, 33, 58, 84, 26, 11,129, 97, 16,186,119,196,188, 82,202,192, 40,141,238,102,230,146,172, 26, 92, 42,199,110, 16,170,
-158,103,156,159,240,211, 64,161,224, 51, 16, 7,234, 82,104,174,163,218,208,230,241,154, 9,107, 99, 29, 6,198, 62, 32,126, 33,
-116,177,107,142,138,255,194, 42,246, 86,153,170,221,148,149, 90,237,196,231,182, 55,120,188,163, 85,219,115, 54, 54,254,184,218,
- 93, 21,113,168,239, 72,105,168,183, 7,180,219,192, 41,218,183, 7,231,150, 70,172,116,162,183, 94,184,217,225,196,240,164, 36,
- 36, 70,122,181,230,120,240, 22, 2,234, 45, 51,196,173, 30,183,249,223,105,197,194,117,108, 0, 18,167,180, 77, 80,241, 86,175,
-138,120, 20,161,213, 76,197,225, 93,196, 7,165,245,186,161,101,197, 96, 53,210,113,173, 81,218,230,121,119,134,250, 43,219, 55,
- 53,120,135,184, 95,237,242, 25, 38,198, 20, 24,157,141,146,233,113, 59,248, 41, 61,119, 59,228, 96, 0, 30, 4,252,246, 3,136,
- 19, 92, 83,150,101, 54,104, 77, 80,164, 55, 11,241,181,198, 16, 35, 97, 84, 6,133,207,239, 28,183,179, 71, 98,193, 57,165,157,
-149,153,153, 1,143,119, 3,158,198,215,158,119,174,189,163,172, 43,189, 8,167,227,194, 47,239, 31,108,199,220,170, 29, 42, 54,
-192,140,106,163,139,160, 77, 72, 84,234,246,226, 14,222,210,166, 65, 60, 41, 4, 36,101, 78,111,206,212,214, 13,240,210,130,237,
-163,157,179,175,123, 85, 78,101,230,254, 60, 19, 83, 96,138, 39,118,201,147,246, 59,118, 23,123,244,254,150,255,244,167,159,112,
-253,252,154, 47, 63,127, 15, 15, 92, 94, 93,114, 17, 6,116, 81, 30,238,239,168,229,158,211,249, 68,117,137, 93,117,248,184, 64,
-247, 68,239,169, 88, 23, 94,176,218,228,228, 61,254, 48, 34,193, 19,218,196,253,120,102, 62, 46,204,243,108,136,225,110, 6,164,
-161,155,109,168,245,186,229, 59,108, 21,116,158,143, 28,239, 7, 98, 50,222,247, 93,190,165,139,242,217,231, 15,228,251, 2, 93,
- 25,167,137,117, 49,249,202,156,149,207, 62,255,156,211,241, 68, 12, 1,196,211,189, 41,130, 99,116, 60,122,252,132, 55,175, 63,
- 35, 97, 1,191,181, 47,168,138, 29, 66, 55, 23, 66,171,106,116,179, 32,236, 47, 15,132, 16,153,215,198, 92, 87,206,186, 9, 95,
-100,224,242,234,192,249, 60,155,130, 56, 67,239,133, 46,202,126, 55,241,252,241,123,164, 33, 25,130,185, 20,166, 52,209,134,136,
- 22, 51, 35,218,109,169,163,181,241,144, 23, 11, 45,186, 70,165,178,156,239,248,188, 20,214, 58,240,252,241, 37,143,158, 62,231,
-250,197,151,249,224, 75, 95,230,238,230,150,243,178,192, 26,200, 26,104,117,221, 94,171,129,238, 27,108,161,197,251,155, 87,220,
-188,185,225,238,205,231,220,191, 89,112, 24,178,210,251,128, 22,199, 49,219,155,123,183, 19,162, 29,180,156,145,203,166,221,142,
-221,229, 21, 87,195,142,184,187, 36,140, 9,233,145,182, 86, 42,157,226,102,123,159,145,145, 89, 43,210, 96, 8,142,202,128,214,
-204,220, 22,246,225,138,224, 2, 69, 51,222,153,175, 58,196, 14,197,209, 78,157,234,155,121, 32,124,164,105,193,227, 40,120, 74,
-235, 8,129,164,133,178,120, 26, 1, 13,214,210,105,116,106, 95, 24,206,209,220, 7,237, 12,253, 2,159, 60,161, 22,155,252,172,
- 3,167,114, 66,189, 80,239,148, 93,112,172,209,161, 56, 90, 89, 25,187, 34,253,130,165,173, 60,114, 97,243, 82,168, 17, 52, 37,
- 24, 14,219, 7, 36, 54,114,109,132,185, 19,211,128, 72,101,125,232,244,146, 24, 31, 79,204,210,104,109,133, 41,210,151, 96, 32,
- 48,215, 24,123, 35, 76, 9,191,181,122,170,131,186, 8, 14,163,224,229, 10,163,128,239, 25,237,201,144,217,165,161,209,152, 16,
-130, 80,123,181,181,168, 70,210, 46,113,185, 31,121,235,227,250,127, 93, 76,229,239,249, 73,255,222, 63,255,187, 96,183, 49, 56,
- 90,217,177,246,138, 47,202,227,171,137, 48,254,127,117,223,255,255,234,115,191,234,138,207,125,228,238, 77, 36, 31,239, 8, 20,
-158, 60,186, 38,238,118,166, 98,125,219,154,147,255,199,130,221, 16,199, 0, 0, 32, 0, 73, 68, 65, 84,229,250,173,237,180,255,
- 10, 37, 99,195, 71,187,213,235,219, 84,250, 67,129,249, 72, 94, 86, 98,207, 76,215, 87,184,241,226, 11, 90,185, 29, 62,183,170,
-222,219, 21,171,179,183, 76,221,166, 2, 69,220, 23, 7,136,210,109,141, 89,187, 50,247,198, 10,136, 47,232,186,128,111,244, 2,
-218, 60,206, 69,218, 92,104,222, 96,100, 77, 45, 88, 58,200,192,122,232, 44,181, 35,179,114, 49,108, 12,135,251, 0,249,100,230,
-190, 30, 81,183, 18,188,167, 28, 3,181, 47,228,101,177, 3,114, 3,173,142,212, 34,218, 4, 21,143, 44, 51,115, 56, 19, 28, 4,
-193,217, 73, 76, 12,105,166,111, 37,224,221,146,233, 93,109, 55,142,218,136,201,119,168,197, 82,213,150, 44,223, 8, 70, 2,221,
- 25, 49, 42, 57, 71,109,230,131,117,222,250,207,130, 71,163,218,199,236,197,146,232,218,232,205,255,138, 73,142, 65,106,192,210,
-203, 1, 16, 23, 44, 93, 42,130, 71, 54,189,163,245, 72, 69, 54,141,156, 15,244,178,162,106,110,120,173,186, 49,144, 13, 78,209,
-181,210,141, 61, 75,167,109,129,153,142,104,183,241, 58,250,197,106,193,137,167,168, 2, 30,109, 70,128,139,209,111,232, 89,181,
- 83, 35, 14, 23,188,237,161,181,115,234,219, 9,175, 23, 66,115,102,231, 17, 33,120,219,151,212,237,160,164, 98,134,185,174,142,
-218, 11,119,167,147,177,243, 9, 84, 21,178, 87, 38, 47,236,101, 71,209, 19,183, 15, 11,199,179, 18,211,158,163,170, 61, 28,130,
- 80,154,176,148,134,248,192, 62, 69,158,239,173,210,151,174, 34,210, 3, 31,253,248,115, 62,191, 93,241,193, 19,182, 19,116,119,
- 91, 69,164, 89,136, 77, 20,106, 83, 74, 95,137,222, 35,120,106, 41,156,150,153,112,112,220,191, 57,241,234,238,196,218,236, 84,
-108,111,248,155,239,216, 57, 84,108,106,225,182,213,201,121,153, 89, 43,164,101,230,254,254,214,118,208, 93,249,244,238, 53, 63,
-253,217, 71, 92, 92,238,121,254,232, 25,239,191,255,140,105,186, 6,174,208,246,152,184,187,101,110, 25,157, 31,200, 39,195,144,
-246, 20,240, 58,144,130,163,105, 33,118,199,211, 23, 79,200,203, 61,159,125,126,131, 56,199,154, 27, 62,136,185,164, 53,211,180,
- 90,218,216,217, 3,206, 91,231,193, 62,239,104,196,192,135,227,249,255,102,237,205,154, 44,203,206,243,188,103,125,107,216,251,
- 76, 57, 84,117, 85,117, 85, 53,186,129, 38, 1, 16, 36, 77,130, 16, 41, 50, 72,219,180, 40,138, 54, 25,158, 34,228, 27, 95,248,
-191,224,215, 56,194,150, 29,161, 27, 57, 36,134, 45, 75,214, 64, 17, 33, 26, 48, 5,146, 24,137,110,116,163,187,170, 43, 43,231,
-115,246,176,134,207, 23,223,206, 2, 45,249, 14,153, 17, 29,209,209, 85,157,145,231,228, 62,107,125,195,251, 62, 47,219,221,218,
-206, 42, 17,174,174,175,249, 39,255,231, 55,120,250,246, 35,126,254,253,167,188,120,241, 25,125,183,179,233,138,115, 92,158, 95,
- 45,249,192,230,191,104,197,138,180,155,155, 11,222,123,247, 61,166,225,192,126,127, 75,234, 60, 91, 61,194, 77,153,121, 30,104,
-165, 18, 82, 34,108, 58,130, 51, 43,166,171, 35, 63,254,244, 18,117,149,105, 26, 25, 39, 19, 98,110,215, 43,230,154, 23, 12,174,
-163,101,227,140,179, 18, 30, 62,120,128,239,226, 66,106, 44,203,228,199, 14, 48,135,241, 23,204,199, 42,168,159,216,207,141,174,
- 11,140,211,140,139,214,217, 28,166,145,171, 23,123,166,147,198, 87,126,254,125,222,126,118,204, 39, 82,217, 56,161, 58, 79,214,
- 70, 38, 83, 35,196, 92, 65, 42, 62, 57,174, 62,122,193,217,213,107, 62,123,245, 2,109,158,221,122,197,106,213, 83, 71,193,249,
- 6, 17,162,247,244, 18, 22,212, 67, 33,227,150,233, 82,160, 85,101,191,223, 51,149, 70, 75, 35,237,250,130,157,143,164,221,134,
-245,230,136, 62,110, 40, 45,163,209, 17,165, 80,230, 9, 69,232, 92, 32, 5,251, 92, 30,185, 53,193, 5,138, 43,232,104,156,120,
-212,242, 32,154,107, 52, 7, 33,219,214, 88,164,153, 31,191, 87,186,220, 56, 52,219,245, 23,223,232,124, 96,202,215, 68, 4,157,
- 3, 53, 5,132,129, 67, 72,203,202,172, 71,187, 70,222, 79,198,155,143,139,155,101,110, 72,241,148,170, 28,250, 70,152,102, 36,
- 40, 83,113,200, 92, 40, 20, 86, 93,225,118, 86, 36,152,213, 54,184,192, 92, 6, 90,118,248,104, 90,151, 16, 43, 96,249, 24, 57,
- 52,106,167,156,132, 30,245,129, 54, 21, 92,234,232, 18,204, 93,101,106, 70, 85, 27, 67,193,213,142, 20,237,243,238, 10, 4, 17,
-102,148, 94, 34,218, 76,212,232, 67,196,231, 10, 94,153,180,209,227, 80, 45,168, 4,155, 90,121,161, 15, 61,157,243,196,238,126,
-246,200,178, 0, 98, 66, 20, 66,184, 31,152, 77, 92,214,188, 56,232, 66,160,239,211,127, 88,112,240,255, 95,120,132,255,160, 76,
-248,255,254, 5,119,212,113, 93,102,230, 97,100,219, 39, 30, 61, 60,250,153,196,130,237,223,179,247,125,186, 63,225,236,195,159,
- 48, 12, 35, 34,129,154, 42,126,176,198,130,232, 8, 69, 25,153, 41, 37, 16,139,114,200, 51,190,121, 91, 65,181, 0, 65, 40,101,
-164,184, 74,231,205,213,176,221,108, 57,180, 91, 19,138,135,145,113,190,198,215, 68,198,194,174, 4,101,110, 55, 56, 31,136, 25,
-115,104,185,200,205,124, 48,125,200, 93,132, 40,173, 44, 76,220,165,125,211,106, 42, 83, 5,223, 4,117,139, 69,189, 89,153,164,
-174,162,106, 96, 19,219,143,219,206,188,224,112, 18,151, 12,107,251, 94,246,237,236,226,118,106, 15,134, 79,193,178,153,151,145,
-123,173, 10, 18,150,160, 24,251,229,212,230, 44, 32, 37, 58,230,185,224,151,177,187, 43, 38,254, 42, 90,160, 21,226, 82,161,149,
-101,150,212,212,126,190,230,226, 79,105,121,206,232, 86,121,206,248, 96, 41,108,138, 46,246, 15,219,173,207, 4,130, 52,243, 28,
- 87,219, 13,178,128, 72, 68,173,243,194,139, 13,228,115,225,144, 5,223,123, 60,130, 79, 44,126,232, 72,211,138,143,222, 84,239,
-173, 25, 36, 99,161,247,121, 49, 60,174, 11,110,177,227,129, 86, 33,170,103,133, 35,183,137,161, 84, 10,158,247, 78, 59,186,126,
- 98,188,236,145,228, 41, 25, 84,122, 66,172, 56, 34, 39, 15,223,161, 11, 7,188,155, 72, 15,222,225,102,186,224,135, 63,249, 17,
- 77, 34, 65,140, 20,232,146,188,129, 35, 84, 97, 89, 73,180, 55, 54,196,101,120,128,182,194, 48,217, 46,119,127, 24, 23,181,253,
-130,217, 21,131,213, 56, 39,139, 13,208, 70, 97, 93, 76, 60,122,120, 76,153, 51,115,179,196,183, 97, 60,216, 55, 12,158, 92,148,
- 50, 93,115,179,191,225,245,217, 5,103,231,231,156,158,158,178, 91,111,216,118, 59, 54,235,200,195,221, 41,181, 60,167,180,202,
-217,103, 31, 50, 30,174,233, 52,163,120, 78, 30,191,205,131,117,199,103,103,159,113,118,113,110,194,198,154,161,101, 10,106,220,
-228, 90, 41,154, 81,103,161, 60,120, 49, 54,160, 26,210,216,123, 71,159, 58,131, 60,204, 19,219,205,154, 86,149, 24, 61,231,231,
- 23,252,239,255,252,223,242,201,203, 47,240,189, 31,125,200,111,124,237,171,172,251, 13,235,237,154,253, 97, 52, 38,248, 82,240,
-169,154,125,238,230,122,224,242,213, 25,235,184,225,170,236,161, 41, 49, 68, 30,110,122,114, 61,129,234,136, 65,217,108, 2,211,
- 84, 8, 81,216, 95, 28,184, 29,103,240,149, 92, 42, 67,153,241, 34, 84, 41,228,105, 38,121,143,119,158,214, 85,242,156, 57, 90,
-109, 8,253,198, 66,129,242,196, 60,143,196,184,177, 46,164,192,202, 69,230,154,153, 75,225,201,131, 21,204, 87, 36, 53,177, 27,
-201,132,163,181,154,163, 35,106,228,236,252,134,127,243,231,223,230,111, 51, 64, 92, 49,133, 64,157, 70,130,139, 68, 85, 34,202,
-205,112,201,235,159, 92,115,126,113,198,205,229, 45, 33, 57,158,191,243,148,231, 15,118,236, 15, 35,127,245,195,143,152,231,194,
- 58, 70, 19,127,202,140, 75,230, 96, 80, 1, 81,127, 55,175,180,120, 83,146,129,155,221,140,148,192,156,122,118,169,226,252,129,
- 16,143,104,115,197,141,153,218, 57,219, 29,139,105,214,197, 65,145, 13, 42,141,155,122, 32,138, 67, 87, 29, 76, 51, 85, 33, 22,
-161,118, 21,223,245,228, 67, 1,103,105,139, 73, 76, 85,236, 3,196, 22,240, 46,147,115, 71,107, 7,200, 70,148,172,171,130, 56,
- 71,209, 64, 20,193,249,217,166, 35,251,138,143, 21, 79,199, 88,103,130, 58,154,139,180, 0,157,171, 28,246,142,173, 7,119, 59,
- 49, 15, 21,191, 18, 52, 53, 46,175, 26,113,187, 99, 69,197,163, 76,170, 72,245,198, 67,111, 86, 86,170, 86, 90,107, 76,243,140,
- 87,232,202,154,170,141, 54, 85, 54,235, 64, 11, 30, 38,129, 58,188,113,207,172, 90,160, 74,160,204, 66, 74,158,170,149,208,217,
- 20,176, 58,179, 72,245,201,113,152,148, 46, 6,130, 40, 41,220, 77, 69,141,165,169,106, 90, 18,231, 13, 84, 34,247, 64, 81,171,
- 10,181,154,117, 72,184, 95, 47,185,173, 81,177,152, 82,119,127,224, 25, 1,107, 34, 93,163,239,195,207,156,251, 46,255,222,191,
- 71, 49, 77,150,171, 74,203,230,244,242,193,246,234,174, 52, 14, 8,218,122,164,101,116,231,200,147,112, 68,133,131,185, 74,134,
-131, 3, 53,220,182,246, 14,201,194, 65, 70, 74, 80,194,124, 96,110, 21,113, 29,147,102,194,202, 83, 10, 16, 19,181, 20,186,226,
-152, 37, 81,105,212,121, 38, 52,197, 63,121,250,236,235,134,129,181, 23,141,218,158, 27, 49,111,167, 46, 11,125, 19,191, 89,238,
-177,152,100,213,120,237,234,108, 7,224,204,246,209, 22, 44,172,247, 44, 10,243, 5, 54,211, 22,207,164,218,229,208,114,133,216,
- 17,187, 68, 39, 38,148, 42,214, 35,225, 93, 64,226,178,211, 8,198,153, 23, 53,129, 90,245, 38,120,187,139,183, 19, 51,156,155,
-152,173, 86, 19, 85, 56,161, 45,169, 84, 90,203,162,180,182,101, 81, 91,254,252, 77,122,156,152,194,255, 78, 88, 69,116, 11,245,
-174, 81, 21,132,133, 90, 23,148, 20,197, 46, 53,111, 23,127, 8,182, 71,139, 78,237, 2, 23,111,147, 11, 3,188, 83,203,204,229,
-249, 45,213,121,188,218, 14, 9, 21, 36,129, 36, 59,196,125,112,104,182, 11,112,157, 2,226, 12, 86, 67,136,244,189,167, 11,102,
-219, 26,230,200, 44,142,160,145,121, 46,196, 20,121,248,248,125,222,254,220, 59,120,148,237, 73,207,241,211,175,242,209,199, 31,
-243,205,239,125, 68,232,210, 27, 31,191,199,118, 48,186, 40,247,171,253, 32,139,130,249,167, 97, 61, 13,168,115, 97,206, 11, 20,
- 8, 71,244,198, 46, 16, 2, 46, 6,179,203, 88,118, 33,136, 99,187, 59,161, 95, 84,170,187,205,154,174, 91,227, 83, 32,136,249,
-143,157, 55, 75,135,182,198,172,202,245,254,134,215,231,103, 28,198,137, 92, 14, 12,251, 11,110, 95,157, 67,203, 60,126,231, 25,
- 63,255,222, 47, 16,125,207, 80, 6, 90,232,120,251,201,142,235,139,215,156,157, 93, 19, 3,104, 12,118,224, 54,135,119,145, 62,
- 70, 86,125,207,106,179, 33, 69,123, 30,113, 66,171,213, 14,136, 16, 16,239,151,189,120,194,169, 5, 93, 4,111,185, 2, 49, 69,
-174,175,247,124,250,233, 25,169,235,120,241,241, 39,224, 3,199,167, 59,190,249,239,254,130,215,175,111,232, 99, 7, 40, 57,207,
- 22, 1, 28, 60,227, 97,111,120,225,102,108,250, 82, 70,198,105, 64,156, 35, 37,161, 79, 66, 44,133, 66,102,204,153, 97, 56, 44,
-137,113, 6, 88,194, 53, 74, 51, 10, 98,205,149, 4,148, 60, 35, 49,210,247,107,182,155, 99,186,152, 8, 52, 90,206,198,149, 15,
- 1, 23, 28,182, 48,114,111,220, 33,184, 74,109,133, 24,123, 94, 95, 94, 34,101, 73, 57, 92, 58, 53,151, 4,231,133,235,235, 27,
-254,234,251, 63,230,236,245,107,222,126,248,152,228, 35, 55, 87, 7, 94,190,248,144,179, 79, 63,229, 71, 31,125,196,171, 87,151,
-148,170, 60,127,246,144, 95,251,197, 47,240,206,233,150, 15, 63,254,136,239,126,248, 25,195, 52,129, 42,115, 45,148,229,179, 53,
- 87,203,114,112,213, 86, 56,170, 86, 44,182, 69, 9,190,222,118,156,156,246, 28,175,183, 28,109,183,116,210,216,238, 34,105, 19,
-216,108,143,112,197, 44, 94, 77,148,184, 22,166,105,178,238, 69, 10, 7,189, 69, 52, 64,169, 40, 19,155,184, 50, 72, 77, 84,226,
-162,151, 9,205, 82, 21,205,250,104, 69,193, 52,102,168, 74, 31, 86,203,179, 82, 45, 23, 34,172, 41, 89, 9,190,225, 90,132,105,
- 68,106,135,215,229,220, 35,217, 14, 58, 87, 74, 49, 71,136, 56,208,210,232,212,172,172,153, 37,158, 57,120,156,143,244, 83, 96,
- 28, 6,252,156,113,234,201,234, 65, 61,135,225,134, 50, 41,115, 30, 9,206, 81,171,195,175, 61,125,244, 4,241,212,162, 72, 84,
- 66, 23, 40,211,132,168,199,135, 8, 94,233, 87,158,169, 25, 51,190, 79,102, 89,106, 94,168, 83,102,181, 56, 51, 28,149,110,201,
-192, 64,192,123, 75,173,116, 75,225,237,162,121,234, 85, 33, 6,207,233,241,150,211,135, 39, 63,243,133, 86, 20,166, 49, 83,115,
- 33, 5,207,122,183,190,151,139,189, 52, 24, 15,179,229,168,119,129,126,125,127, 62,242, 49, 55,166,105,198,105,230,120,157, 8,
-253,134,251,252,186, 30, 42, 87,231,151,204,183, 87,248,101, 44,175,203, 93, 83, 81, 36,195,236, 50, 49,121,114,110,232,228, 77,
- 52, 57, 21, 6,157,200,110,177,104,206, 16,252,204,212,178,173, 10, 74,197,205, 29,211,224,208,144, 80,205,144,157,117,255,206,
-195,152,153,242, 8, 93,196,187, 70,169, 19,154, 33,168, 54, 83,125,227,208,104,173,120,171, 38,234,174,170,168,136,141,169, 69,
-113, 69, 80, 87,237, 96,147, 69,204, 35, 14,135,183,249,137, 54,180,154,101,162,170,169, 68,109,199,104, 29, 33,109, 89,189, 47,
-241,171, 2,120,111, 98,138,208, 28, 5, 79,147,134,212, 74,157,179, 77, 16, 90,176,206, 27,155,253,182,106, 44, 93, 43,231, 27,
-234,236, 33,110,234,208,224,209, 2, 57,103,162, 65,171,241, 22, 19, 67,115,166,121,199,123,124, 83,114, 46,148, 98,197, 75,236,
- 13,118,227, 8,184, 90, 76,225, 94,173, 43,247,190,161,206,252,206,230,155,175,184, 86,112, 98,216, 69,175,254, 77,206, 59,139,
- 93,174, 58, 37, 38,143,159,172, 16,170, 57,219,165, 24, 60,193, 57,162, 23, 60, 17,175,222, 62, 37,222,132, 67,159, 92, 54, 98,
-172, 60, 8, 43,188,143,108,146, 99, 63, 85,210,241,154,247,156,227,187,231,133, 38,176,233, 19,109,181,227,241,207,255, 60,239,
- 28,111, 56,123, 53,113, 49,123, 30, 14,183,124,240,193, 79,168,206,128, 47, 78,141, 40, 37,117,113, 53,136, 85,242,193, 65,209,
-133, 8,197,157, 48,209,217,229,191, 40,121, 21, 3,240, 84, 21, 66, 88,138,178,106,133, 21, 94, 17, 20, 31, 87,236,142, 54,180,
-172, 92,223,222,112,125,221, 88,175,214,144, 34,169,131, 77,232, 40,165,114, 27, 70,234, 60,147,107, 33,231,202, 88, 27, 31,125,
-250, 41,159,189,126,197,170, 79,116,169, 99, 55, 92,240,147,243, 23, 60, 57,121,196,147, 71,143,120,231,243, 95, 96,127,113,197,
-139, 31,159,115,123,115,107,176, 34, 49,123,149, 75, 17, 23, 87, 38, 27,139,182,235,247,115, 97,213, 39,166, 92,232,198,137, 62,
- 6,246,243,108, 30,242, 16,160, 53,154, 52,162,116,148, 90, 12, 36,211, 96,206, 25, 37,224,246, 3,221,122,197,237,205,192,163,
-167, 87, 92, 95,158,113,184, 57, 88, 36, 98,201, 84,205, 76,227, 68, 76,145, 72, 96,110,149,169, 77,156,156,236,184,188,184, 96,
-110,209,198,243, 58, 67,201,204,213,179,207, 38,214,171,213,224, 70, 77, 21,241,166, 6,102,161,158, 93,151,107, 19,154, 73,199,
-237, 60,178,242,240,248,248, 49,105,221, 91,197, 47,149, 58, 89, 49, 88, 42,184, 78,240,106,168, 98,213, 72, 76,142,243,215,103,
-156,110,215,236,203, 76,110, 74, 8,139,238,164, 54,180, 68, 68, 45,153,106, 82,101,152, 43,231, 87,151,124,240,193,247, 56, 28,
- 42, 23, 87,151, 52,103, 98,210,105,110,236,182, 27,190,244, 11,207,136,204,124,244,193,199, 92, 92,238,121,121, 61, 88, 90, 25,
-222,206, 9,249,105,220,170,230,193, 44, 95, 33,145,114,227,120,123,204,195, 7, 71,188,245,228,132,211,183, 78, 57, 94, 11,167,
- 39, 1,209, 21,235,221, 67,134,124,131,212, 76, 67, 41, 37,240,137, 63,230,252,118,166,148,153, 58,236, 41, 83, 67, 58, 91,199,
-249, 98, 18,110,151,122, 36, 15, 12,106,194, 68,135,144,169,148,154,105, 58,227, 75,165, 76,133,144, 54, 76,115, 35,215, 72,144,
-198,208, 50,219,245, 22,165,163, 14, 13, 29,110, 9,177, 67,179,113,210,145,104,164,188, 38,100, 50,132, 25, 66,162,148, 66,159,
- 58, 66,131, 48, 5,246, 76, 22, 82, 84,102, 26,142, 24, 19,243,156,209,166,132, 46, 18,100,226,186, 57,210,205, 64, 90, 9,186,
- 93, 35,190, 39,185,108,244,191, 60,224,216,208, 85, 15,193,206,163, 16,141, 94, 88,129,176,238,153,167, 70,239, 35,125, 19, 90,
-181,232, 77, 47, 1, 17,207, 60, 55, 92,104, 4,239,152,166, 76,242,158, 92,132,171, 97,102,219, 69,146,243, 38,234,245, 14,241,
-230,240, 1,211,114,121, 81,107,204,156,220, 79,228,170, 46,184,105, 42,209,246, 11,247, 23, 16,163, 86,156,164, 46,222,235,165,
- 91,155, 93, 23,181, 0,238,126,153,239, 13,168, 99, 93,226,203, 11, 26, 27, 45,155,126, 42, 0,197, 59,202, 10,226,193, 81,166,
-153, 85,239,233,138,114,233, 2, 48, 17, 55,129, 80,149,210,102,138,143, 22, 2, 84, 20, 95,160,120,143,232, 64,113,133,173,236,
-152, 8,220,204, 55,156,198, 19, 82,131, 27,129,184,138,232, 52, 24,217, 83, 97,239, 45, 78,124,225,201, 53, 52,171, 65,102,212,
- 42, 73, 3,181,216, 62,181, 45,157,246, 93,154,151,138,101, 38,123, 49, 94, 59,197, 17,163,169,186, 85, 45, 55, 61, 69, 19,168,
-149,106, 2, 11,165,209,130, 44,114, 74, 27, 13,163,166,130, 55,229,176,117,221,213,101,171,116,138, 9,103, 22,221, 56, 72,195,
- 53, 37,168,103,110,186, 0, 95, 26,185, 86,139, 56,172,134,122,117, 78,236,239, 47,112,155,184,140, 79,171,243,248,232, 33, 79,
-116, 97, 65,247, 53,104,163,190, 9,158,168,234,152,151,201,194,178, 78, 69, 48, 29,129,151, 64,232,188,169,199,157, 35, 58, 79,
-113,139,185,127, 49,238, 55,103,150,192,218,204, 23, 26, 68, 64, 43,226, 3,155,126,101,151,105,173,168,216,216,221, 45,146,211,
-224,148,221,166,113,122,186, 98, 45,189, 93,160,181,240, 96, 29, 56,159, 60, 87, 83, 67, 88, 35, 82, 41,174,178, 58,121,139,119,
- 30,158,178, 81,199,176,125,132,122,207, 7, 63,248, 51,254,242,227, 51,230,106, 43,147,182, 64, 49,170,128,139, 1,159, 33, 59,
-139, 82,245,139,146,212,189, 73,104,131, 24,211, 2, 78,177,149,132,186,187,103,192,186, 67,212, 52, 7,118,233,195,102,181, 97,
-229, 61,251,105, 32, 23,243,197,223, 14, 35,222, 59,210, 42, 66,183,193,187,136,247,158,245,209,206, 20,155,218,112,185,113, 59,
- 76,248,232, 57,140, 3, 55, 55, 35,251, 97,160, 11, 23, 92,190, 60,103,156,246,124,241, 43,191,196, 23, 62,255,140,163, 77,207,
-119,191,159, 41,211, 5,185, 10,130,176,242,193, 56,216,157,205, 16,198,113,134, 96,126,112, 81, 79,222, 8,235,245,138,157, 51,
-218, 90, 46, 10, 58,211,199, 68,223,111,200,173, 50,206,135, 55,162,205,170, 3,243, 52,112,216,239,105, 14,254,229,191,186,229,
- 91,223,252, 43, 14,251,129,224, 26,181,218,132,202, 57,115,133,104, 0, 95, 2, 77, 34, 15, 79,159,112,123,189, 71,130, 71,188,
-101, 32,223, 78,213, 88,231, 49,161,101,166,185, 98,244, 55,160,228,201,178, 0,100,185,228,213,241,229,247, 30,243,254,123,207,
-248,167,255,250,219,168, 38,118, 71, 15, 1,227,220,207,195,213,114, 40, 5,164, 15,134, 58,173, 21,175,102,157,140, 93, 69, 52,
-115,123,115,201, 92, 26, 33,120, 27, 43, 47,192,235, 90, 10,138, 50,206, 35,115,171,180,170, 76,147,231,242,242,156, 50, 7, 42,
- 74,157, 43, 42,202,118,211,241,235,191,252, 14,167,199, 27,254,228, 91,223,227,227,143,207,140,239,189,132, 53,197,208, 83,235,
-158,150, 27, 26,163, 29,192, 49, 25, 93,206, 7,126,241, 75, 79,249,234,175,253, 10, 79,158,157,144,135, 27,110, 46, 71,246, 23,
- 7,126,248,226, 83,252, 74,120,112,114, 69, 72,129, 50,192,163,199,199,188,245,228, 45,158, 61,223,242,237, 15, 95,242,227,191,
-254,132,149,246,248, 53,212, 58,226,196, 19,220,154, 42, 25, 87, 27,206,109, 32,103, 70, 7, 41, 8, 94, 51,145, 64, 21, 71,201,
- 35,194,138,164, 48, 37,135,111,130, 27,101, 81, 88, 11,190,205,166,160, 15, 17,137, 19,234, 86,228, 58,146, 86, 30, 81,207, 48,
- 40,201,117, 4, 61,216,180, 68,123,152, 43, 69, 28,202, 68,136,141,105,158,168, 89,145, 46,225, 75, 65,250, 68,149,202,156,111,
- 72, 81, 72,109,131,214,204, 60, 92, 83, 93, 69, 10, 12,126, 89, 75,248, 21,201, 57,134,201, 52, 72, 93, 20, 52,219,216,125, 46,
-131, 17, 33,125, 64,212, 52, 37,205, 5,162, 64,163, 50,213,138, 23,207, 60,103,186,232, 44, 14,218, 43, 14, 79, 7,228,214,112,
-190,154,143,190, 41,174,101,154,139,230, 54,234, 32, 73, 64,130, 16,188,191,167, 11, 82,151,204,115,131, 48,221,219,229,168, 44,
-171, 80, 91, 79,222,231,151,195,166, 45,226,116,137,158,189,231,200,213,165, 96,143, 2,115,174,120,245, 76,101,134,154,161,120,
-170,218,186, 85, 82,199, 52, 84,164, 22,202, 56,194, 52,211,185, 13, 61,202,109,173, 56,191, 36,151,198,133,138, 57,205,104, 85,
- 18,158,121,186,164, 21,207, 58, 30, 49, 13,133, 91, 49,225,104, 95, 29, 55,165, 50,148,194,138, 74,106, 16,154,191, 19,186,121,
-104,197,108,172,152,143, 78, 23,122, 81,115, 98,104, 65, 91,126,219,222,170,122, 66,116,214, 13, 44,151,211,156,109,143, 83, 40,
- 56, 85,230,220,222,120,218,231, 86,150, 48, 13,187,162, 21,103,213,110,109,120, 26,165, 85, 66,232,112, 5,170,175, 84,181,238,
- 50, 23, 19,118,165, 36,120, 2, 65, 43, 77, 26,190, 42,197, 53,235,208,171, 90, 88,129, 83,180, 44, 97, 20,186,168, 65, 69,153,
-140,117, 97, 92,251,162,128, 89,219,156,170, 81,237, 80, 90,205, 86,116,136, 61,176,158,176,240,233,151,173,187,183,203,183,169,
-141, 76, 17,207,220,204, 21, 47, 81,222, 68,180, 74, 53,111, 98,234, 60,227,236,169,148, 55,170,243,185,100, 82, 8,230,201,149,
-138,239, 60,222, 89,230,249,172,153, 58, 53,116,142,148,126, 73,138,242,209, 86, 18, 78,121,188, 85,114, 29, 24,243,138,121,243,
-140,119,158,253, 2,121,156,184,240, 80,105,124,114,241, 19,190,255,111,191,199,217,229,158,234, 12, 47,233, 37, 66,131,202,108,
-157,182,182,197, 26, 34, 38,110, 2,196,119,136, 83, 74,153, 44,133,202,155, 75,216,105, 91,148,167,141,230,188, 29,138, 98,252,
-226, 86,148,245,118,195, 59,207,223,198,229,202,229,124,133, 54,136,189, 21, 55,115,105,204, 99,230,236,112, 65, 83,136,189,167,
- 15,145,224, 59,188,143, 56, 17,182,199, 61,155, 46,114,126, 5,195, 52,161, 69,185,157, 39,110,135,129,195,119, 14,196,245,134,
-163, 47,190,143,171,215, 60,124,180,101,184, 84,246,243,100, 5, 35,144,117, 38,185,128,107,141,152, 60, 46, 7,188, 86,220,202,
- 49,205,166, 10, 95,121,161, 59, 58, 97,106, 51, 45,119, 56,173,168,100,166, 97,128, 98, 66,159, 41, 23,106, 54,132,176,111, 14,
- 9,129,233, 48,113,126,126, 69, 76, 1,137,222,242,230,235, 76,109,217, 58, 61, 93,138,221,185,178,217, 70, 8, 66,158, 71,180,
- 40,121, 44,100,173,228,146,241, 57,155,254,196,217,172,170,152, 16, 5, 45,224,131,210,188,137,205,126,253, 87,191,196,215,126,
-243,107,244, 39, 15,248,179,111,124,128,225, 88, 42,117,184, 94, 8,132,145, 58, 22,116,154,240, 78,237,185, 40,138,116,149, 54,
-238,241, 49,112,152, 71, 14,183,215,236,142,143,217,244, 29,251,195,108,220,114,173,212, 41, 27, 31, 98,177,133, 70, 21,162,247,
-116,125,224,250,102,196,121, 79,192,115,186, 61,230,242,242,130, 63,249,179,239, 48,102,216, 28,109, 97,110,236,167,137,172, 35,
- 45, 23,130,128, 11, 29, 74, 37,132,100, 48, 30, 15,191,240,149,231,252,225,223,251, 61,142, 31,110,249,246,183,254, 29, 63,248,
-238, 7,116, 18, 57,126,120,194,230,193, 17,199, 61,188,252,236, 53,125,183,197,249, 45, 77,123, 74, 81,222,126, 24,249,157, 95,
-121, 31, 7,124,244,131, 15,137, 8,177,243,116, 46, 48,123,101,206,130, 22, 65,251, 74,205, 19, 65,163,233, 74,162,179,105, 89,
-174, 52, 13,172,214,209,248, 23,135,140, 75, 29,108, 59,250, 62,210, 24,109, 87, 43,141, 66, 32,141,222, 2,131, 18,248,232,240,
- 67,164,151,204, 20, 70,180,116,166,176,247,197, 46,130, 59, 92,244,146, 73, 81, 42,172,197, 10,235,208, 43,179, 6,110,134, 61,
- 15,195,154,162, 25,215,103, 91,241,101,211,160,172,251, 74, 41, 1,218,140,118,137, 41,155,186,190,115,142, 97,114, 20, 17,170,
-122,210, 42, 88,147, 81,102,178, 11,196, 85, 96,213, 42,135, 9, 92, 15, 58,155,120, 89,188,176, 10,194,156, 29,157, 87, 90,138,
-232, 92, 17, 21,178, 86,130,118,214,241,150,106,100, 59,111,207,170, 87, 71,119, 79,116,182, 59,203,152, 83,119, 95, 77,250, 79,
- 47,223, 37,152,226, 62,139,133,187, 49, 64,171,205,166,173,254,126, 35, 87, 45,220,166, 64,169, 8,145,192,130,182,118, 30, 58,
-104, 67, 97,154, 11,178, 50,148,175,182,204,109,169,102,213, 77, 29,171, 36, 92, 79, 35, 84, 33,201,138,129,137, 86, 51,161,131,
-113, 24,108, 85,163,102,251,117,169, 34,226,216, 15, 19,161,192,202, 7,203, 73, 8, 3,173,122,106,236,144,195, 68, 8,142, 55,
-185,218,130, 51, 97,142,218,120,205,251,100,109,170,187, 27,209, 26,165, 75, 22, 21,124,101,233,110,155, 89,189, 12,202,230,104,
-214,214, 47, 86, 46, 71, 39,158,236,212, 46, 6,215,222,100,171,155, 21, 77,153,171,226, 99, 52, 88,140, 7,231, 34,174, 53, 59,
- 80, 81, 19,185, 52, 8, 30,114,109,212,187,209, 70, 53, 70,184,143,166, 48, 22,156,137,218,196,225,130,123, 3, 49,152,179,237,
-230,163, 55, 54, 53,106,129, 45,181, 53,138, 19,162, 19,124,240,118,129, 46,251,218,130, 69,219, 33,142,148, 28, 26, 34,178,116,
-217, 52, 71,191,235,172,255,175,131,177,205,155, 89,254, 16,197,171,160,179, 41,247,189, 64,110, 5, 87,108,226, 80,231,140,138,
- 99, 37, 30,109,133, 66, 36, 6, 79,205,149,171, 49,210, 66,160,139,138,230, 74, 8,107,166, 82,121,212, 57, 98,116, 68,157,121,
-113, 61, 81, 30, 63,231, 97,111,241,180,193, 67,155, 50,175, 63,252, 1,159, 92, 13,168,247, 72, 45,184,234, 12, 66,224,188,177,
-232,155, 82,181, 46,180,168,133,123,239,188,105, 11,188,208,212,222,143, 59, 14,127, 83,197,137, 17, 2,205, 95,122, 55,144, 48,
- 54,251, 23,159, 62,225, 97,128,151,251,153,212,117, 28, 29,173, 65, 28,251,219, 1,169,109, 17, 59, 46,112,136,162, 76,181, 48,
-104, 54, 49,149, 84,186,174,135,118, 68, 92,128, 60,111,192, 50,185, 49,238, 7,254,244, 79,190,193,249,139,151, 28, 61, 88,177,
- 94,173, 45,153,236,228, 9, 14,139,208, 28,134, 3,109, 95,241,157, 51,176, 77, 12,104,141,244,161, 26,196, 1,168,181, 17, 68,
-137,178, 66,178, 67,253, 68, 31, 18,239, 63,127,198,229,205, 5, 47, 47, 14, 6, 79, 26,103,178, 43,168,183,221,108, 45, 21, 9,
-145, 60,100, 66,169, 36,239, 25,242,204, 84, 42, 41,121, 24,103, 36, 6,102,157,185,188,189,181, 32, 25,169,166, 74, 21,199,124,
-152, 23,175,111,181,125,179,247,244, 93,160, 14,153,130, 97,123, 5,163, 29,142,213,113,121,117, 77, 31, 60,239, 61,125,202,135,
-143,174,105, 89,152,231,186, 8,146, 2, 65, 13,199, 90,102,165,239, 77,164,150, 85, 57, 74,142,235,171, 66,223,239,120,239,217,
- 19,190,243,253, 31,112,115, 51,224,212, 51,213,106,164, 69, 76,169,220, 44,209,130,224, 3, 93, 23,152, 10,204,121, 38, 74,196,
-139,231,104,227,241,177,241,221, 31, 93, 50,150, 70,209,204,126, 63, 16, 99, 71,232, 19,137, 8,181, 48,150,138, 83,163,174,133,
- 20,217,244,194,175,254,210,151,248,189,191,251,155,228,105,228,159,253,147, 63,229,236,166,178,219, 29,241,252,201,150, 93,127,
- 68,117, 19,105, 3,167, 21,122,231,233, 78,182, 75,138,156,231,226,106,230,120,237,248,149, 47, 63,199,205, 55,188,120,113,101,
-171,163, 90,240,162,134,205,244, 66,145,153, 85,232,160,121,230,114,160,148, 14,124,102,170, 3,136,209, 35, 27,224, 98,162, 18,
- 16,167,248, 90,193, 71, 42, 30,199, 0, 90,168, 18, 13,152,147, 61,174,122,154, 87,198, 54,225,231, 21,141,140,107, 66, 90, 89,
-134, 64,174,197,214,135, 62,208,239, 2,237, 66, 13,124, 21, 26,101, 72,244,100,124, 88, 49, 86, 7,109, 52,141, 67, 21, 82, 44,
- 12,192, 48,172,241, 73,208,186,103, 53,247, 12,211, 45,185,121,198,117, 66,251, 25, 52,145,154,210,166,145,155, 17, 98,223,225,
- 61,184, 92,200, 64,234,237,231, 64,148,117,215,225,176, 78, 94,196, 33,234,169, 82, 73,209, 81,145, 5,246,102,154,156,232,132,
- 90, 29,174, 54, 20, 27,145,167,251,234, 80, 23, 92, 55, 94, 23, 28,239, 61,117,188,165,209,234,157, 11, 73,238,119, 60, 94,237,
-110,242,122,207,201,108,119, 98,185, 5,255, 93,235, 72,115, 86,196, 75, 19,114,179,103, 50,137,163, 12,141,146,103,124, 52,144,
-218,198,219,154,103, 95,102,220, 38, 18,198,196, 52, 10,169,101, 14,100, 8,129,109,216, 49,165,128,155, 46, 73, 53,209,170, 80,
- 36, 19, 83,194, 15,153,177, 78, 22, 42,166,129, 70,182,176,152,216,225,223,126,250,236,235, 14,140,233,238,173, 42, 53,106,154,
- 51,189,190,187, 3,205, 52,164, 45, 73, 95, 75,200,138, 10, 70, 48,105,149, 24,109,183,189,112, 95, 9,222, 8,112, 34,150,190,
-229,131, 51, 47,183, 91,248,235,222, 70,169, 18,173,106, 8, 78, 8,170,111,222,136,224,108,231, 89,139,177,139,157,119,139, 77,
-205, 20,247, 34,166,180, 21, 49, 32, 64,203,133,156, 27,213, 9, 94, 77,232, 38,193,118,128,238, 14, 2,163,152,135,190,217,158,
-169, 57,123, 48,157, 15,102,106, 91,198,237,141,165, 26, 93,196,157, 33, 5,212,219,107,239,130,224,119, 27, 78,223,122,194,211,
- 7, 27,170,206, 28, 38,197, 59, 33, 70,135, 6, 69,189,137,208,146,143,212,105,224,242,250,176,224,116, 77,147, 32, 78, 8, 18,
-105,205,227,220,140, 23,135,215,196, 91, 15, 2,239,237, 34, 62, 59,182, 33,208,197,200,190, 22,196, 9, 71,199, 59,142,182,130,
-223, 62,167, 59,125, 78,191,234,161,206,212, 90,233, 87,149, 31,126,255, 47,184,184, 25,168, 53, 91,161,133,237,208,154,171,139,
-189,208,186, 81, 19, 0,234,146,237, 30,173,114, 21, 27, 45,163,134,164, 12,209, 47, 81,151,250,198, 24, 34,138,161, 40,213,241,
-224,248, 1, 95,254,210, 59,124,239, 71, 47, 25,125,226,193,233, 17,155,221,154,163, 24,185,185,189, 53, 56,132,247,168, 24,110,
-216, 57, 79,173,246,126, 54,173,212,101, 31,122, 24, 14, 54,173, 89,176,194,193, 7, 66, 12,246,126,151,202,171,243,215, 92,239,
- 7,130, 58,118,187, 13, 69, 43,228,137,205,238,152,227,213, 17, 93,191,197,165,134,107, 1,245, 5, 95, 45,215,188, 97, 5, 92,
- 72, 29, 93,103, 69,203,201, 58,242,251,127,247,215,249,175,255,219,223,229,191,255, 31,254,144, 71,167,199,124,243,155, 31, 89,
- 38,181,154, 23,223, 86, 43, 6,172, 16,105,204,211,204, 60,102,180, 86,134,113,194,185,196,106,181,165,232,184,116,223,142, 7,
-155, 13,227,205, 64, 46,149, 70,161, 58, 40,106, 62,110,154, 77,146,124,176,137, 75, 93,204,175, 41, 69,180, 42,181,152,231,181,
-235, 60,173, 20,190,245,173, 79,152,114,166,214,129,156, 39, 66,151,222,172,123,116,110, 54, 98, 21,161,228,198,102,179, 97, 46,
-153,139,171, 43,182,169,231, 23,127,238,109,158,189,125,196, 95,127,252,138, 97, 28,137,222,180, 17,181, 84,106, 51, 48,137,115,
-142, 24, 61, 62, 4,230, 81, 23,237,140,225,120,215, 93,228,197,103, 47,152, 38, 11,244, 9, 41, 34, 42,148,214,168,115,161,149,
-138,139,130,248,142,224,133,110,215,241,248,104,197,223,249,237,175,242,187,191,251, 31,243,250,252, 21,255,219, 63,254,167, 92,
-190,158,248,220,243, 83,250,157,163,148,194,166,179,136,201,152, 58,118,199,107, 20,229,228,228, 33,235,237,154, 58,143,156,110,
-183,196, 24, 57,233, 3, 49,246,236, 95, 95,227,170, 50,119,130,243,142, 36,107, 83, 18,171,173,196,166,106,216,205, 80,204,221,
-224, 83,194, 21,229,118, 24, 41,197,178,203, 81,208,156,241, 93, 96,229, 59,218,236, 64,103, 35, 23,118,110,225, 81,116, 84,201,
-212, 84,240, 13, 86,222,104,134,123,157,168, 8,157, 86,124,234, 9,234,208, 16,112, 19, 4,157, 25,199,137, 38,138,235, 2,146,
- 59,130,183,137, 37, 21,180, 20, 92, 51, 12,168, 0, 38,171,220,227,123,165,141, 80, 52,160, 83,165,249, 64,174,138,180, 10,131,
-149, 28,210, 21,106,179,207, 93,232,197, 4, 79,206,224, 83,222,123,155, 36,197, 37,155, 67,195,162,136,214,101,178,166, 8, 30,
- 73, 75, 99,161,166, 21,114, 13, 82, 72,116,235,192,163, 71,167,248,248,179,167,147, 77,185,145,199, 9, 90, 97,183, 91,155, 94,
-229, 30,190,166,172,228,105, 70,156,178,217,116, 63,115,232,204,223, 84,235,143, 99, 33, 79, 19, 65,148,205,110,125,111,223,251,
- 14,109,123,125,117,224,246,250,146, 86, 14,214, 16, 85,168,205,206,219,234,109,173, 48,222, 86, 90, 15,121,112,136,142,180, 38,
- 72,157,136, 85, 81,215,152,154, 67,167,106, 13, 66,169,120, 21,124,218,130, 42,121, 63, 46, 80,184, 76,168,137, 74,225, 48,238,
-105, 65,105,243, 76, 25, 10, 42,208,199,158,105,170,248,167, 79,222,254,186,115,118,145, 25, 55,221,198, 21,162,206, 84,235,206,
-240,173,106, 64,157,133,195,108,177,144, 44, 98, 42,179,196,201,130,115, 52, 72,203,157,177, 63, 58, 27,133,150,170,198, 74,110,
-150, 32,164, 45,224,157,101,153,235,221, 72,222, 41, 26, 2,209,233,226, 13,118, 22,163,232,108,119, 90,212,153, 29, 75, 76,117,
- 78,179,177, 71, 89, 86, 0,212,187,116,162, 5,148,211, 20,103,115,103, 84, 34, 62, 46,123,239,106,213,110,215, 45, 44,123,113,
-148, 50,191, 33, 11, 58, 17, 36, 5,146,115,166,154,119, 98,126,251, 78, 76,116,214, 28,169, 19, 98,203,236,231,137,156, 27,157,
- 88,254, 55, 85,241,193,155,154, 23, 79,183, 74, 92, 94,223, 48, 78,101,201,122,247,164, 16,105, 45, 27,250,214, 9,121,110,244,
-171,200,111,188,127,204,201, 6, 38,231,145, 46,162, 94, 88,237, 86, 28,157, 28, 17, 31, 29,179, 73,167, 20,125,202,217,193,246,
-178,170,145,227, 39,143, 25, 95,252, 53,127,245,189,191,100,127,152, 41,117, 38,197, 72, 12, 22,241,149, 91,166,148,138, 22, 19,
-108,153, 27,209,153,138,221, 47, 65, 23, 75, 28,107, 10,194, 58,245,244,169, 3, 15, 37,155, 24,168,181,138,120, 89, 4, 56,194,
-207,189,255, 57,118,219, 19,110, 90,199,233,131,167,108,163,176,221,236,152,166, 27,174,110, 15,148,188, 56, 38, 22, 46,182, 91,
-118,248, 54, 94,179,223,211,162,226, 48,173, 3,141,214, 10, 57, 23,106,105,196,224,217,172, 58,170,107, 76,135,204,249,229, 13,
-183,183,123,188,175, 36, 31,140, 9,158, 64, 66,192,197, 21,171,221,177,141,149, 17, 52, 21, 26,149,232, 61, 43, 31,136,206,209,
-111, 35,127,240, 7,191,197,127,243,223,253,231,244, 50,243,234,229, 25,175, 94, 94,243,227,159,188,226,242,102, 64,213,138,157,
-128, 95,240,185,166,156,111, 8, 83,182, 75, 49,136,163, 91,155, 0,173,243, 70,233,243, 93, 98,219,111,185, 60,220,144,250,192,
- 48,218,122, 71, 91,177, 17,172,243,244,235, 64,110, 70, 70,147,104, 2,201, 78, 60,199,235, 21,191,249,159,252, 42,222, 71, 46,
- 94,237, 41, 28, 51, 76, 38, 84,237,154, 37,254, 65,196, 87,165,102,168,226,144,100,122, 20,113,208,175, 28,175,206, 47, 65,173,
-219,175, 36,190,246,181, 95, 96,187, 89,243,189, 31,125,132,195, 19,197,226,124,181,149, 55,128,141,174,235, 72,253,134,218,148,
- 85,138, 52,231,121,251,209, 26,213,202,203,179, 27,106,177, 66,177,182,106,207,231,178, 51,103, 41, 12,162,115,116, 93, 7,234,
-248,234, 87, 62,207, 31,252,193,239,242,217,249, 25,255,242,159,125,147,119, 31,158,240,238,243,135,108,142, 59,118,167,107,252,
-228, 88,157, 30,179,217, 5, 98, 60, 37,244, 39,180,114,192,149,202, 47,125,229,125,158,127,254, 57,199,111,173,121,240,100,203,
-230, 36,113,188, 78, 12,115,229,118, 26,172,168,200,145,162,149,185, 90,176, 77, 51, 74,146,233,103,186, 70, 47,102, 3,189, 29,
-243,178, 30,108,184,184, 50,212,106,159, 72, 41, 82,115,161, 6, 11,162,145, 26,193,173,105, 78, 23, 52,244, 68,153, 43,125,234,
-169,193, 33, 98, 78,134,230,140,239, 80,230,140, 23,103,200,236, 58, 83, 99,177, 24, 84, 39,196, 46, 16,134, 17,197,236, 0, 0,
- 32, 0, 73, 68, 65, 84,177,244, 65,231,215, 56,215,144, 60, 91,122,165,138,137,215,230,145, 20,183,148, 16, 24,111, 43, 21,193,
- 73, 33,248,100, 4,211, 2,211, 92,109,117,224, 61,125, 72,168,111,248,166, 56,177, 9, 91, 16,155,161,214,102,107,151,138, 5,
- 47, 5,111, 22, 89, 39, 16,212, 47,157,179,117,165,150, 68,105, 35, 96,137,129,190,235,121,235,173,135, 63,243,232, 89,129, 49,
- 43,243, 56, 33, 52,182,247,120, 65, 78,165, 81,166,137,232,149,213,186,127,163,245,249,153, 59,117,103,220,247,121,158,232,189,
-178, 57,218,112,159,123,131, 67,133,203,203, 91,134,155,107,164,218, 14,188, 57, 99,102,200, 34, 12,247, 10,222, 87, 19, 33, 35,
-120,231, 41, 35,204,237, 0, 14,118,101, 77,246, 10,186, 55, 61, 86,231, 33, 5,234, 80,200,254, 96,103, 94,114,212,178,103,104,
- 13, 52,208,173, 18,213, 91,154,163,119, 14, 77, 11,136,103, 4,255,228,237,183,191, 46,226, 12, 37,234, 22, 53,244, 29, 59,215,
-217, 37,239,229,110,236,242,134,154,103, 2, 48, 4, 9, 66,242,222,210,177, 22, 31,184, 46,129, 29,222,185, 69,176,115, 71,108,
-147, 69,156,101, 85,100,211, 98, 89,201,206, 33, 65,105, 8, 77,151, 64,132,165, 11,215, 86,172, 96,168,102,123, 83, 81,100,185,
-160, 74,177, 61,161,199, 81,221,242,132,211, 8,226, 44,113,205,140,225,127,131,205,108, 99,109,241,126,201, 72, 7, 87, 29, 46,
- 6,148,130, 44,194, 50, 42, 4,117, 80,141, 38, 39,152,162,212,167, 96,120,219, 90,152,198,145,121, 46,224,204,226,165,193,147,
-235,132,168,189,230, 50, 55, 98,140,116,171,132,104,225,230,234,118,137,145, 21,219,219,123,155, 80,244, 93, 68, 66,228,189,199,
- 27,222, 57,134, 57,219,165, 65,244,172,195,134, 7, 15,142, 89,159, 60, 71, 4, 66,191,101,168,141,243,146,144, 41,211, 29, 63,
-229,217, 91,137,111,253,233,191,224, 39,159,125,102,194, 63, 93,228, 38,226,105,165, 90,184, 73,157, 40,205, 46,216, 5, 31, 99,
- 49,145,226,173,235, 17,219, 37,187, 86,153,243,200, 60, 79,148, 82,150,137,130,137,125, 88, 44,131,221,106,203,207, 61,123,135,
-243,155, 27,170, 36,222,125,250,136,113,190,225,209,110,197,213,120,195,245,254,134, 41,103,179,218, 40,139,229,198,225, 1,117,
-230,253,183,159, 79,240,193, 45, 75, 31,187,112,204, 30, 86, 44, 88, 5,165,239, 59,214,157,217,178, 14,195,129,179,243,115,206,
-247, 55,236,247, 7,186,149,152,224,100, 58, 32,165,176, 94, 31,177,121,248,136,144, 60, 34,129,150, 77,215,241,224,209, 49,255,
-213, 31,253, 14,191,247, 71,191,207,167, 63,248, 49,255,227,255,244,199,252,195,127,244, 13,126,251,183,191,202,205,197,107,126,
-244,241,185,141,180, 75, 53,203, 24,194, 60,141, 76,185,145, 86,137, 86, 45, 88,165,235,215,244,235, 21,218,108, 36, 43, 78, 88,
-245, 61,243, 60, 51,206, 3, 41, 5,202,178,155,159,231,193, 66, 63,186, 13, 41, 36,112,178,160, 37, 51,165, 20,104,194,233,233,
-150,191,255,247,255, 30,143, 30,108,249,209,167, 23, 60, 60, 89,196,113,205, 4,137,120,103,123,218, 8,101,178, 20, 61, 23,160,
-213, 70,223, 5,188, 40,175, 46, 47, 73,105, 67,140,107,106, 17,142,118, 61, 95,124,255,148,156, 27, 31,127,248,234, 13,226,184,
- 53,179,157,249, 24,233,250,141,233, 40,194,114, 89,212,204,254,246,154,139,171, 61, 94, 34, 49, 26,162,180,214, 66,205, 25,106,
- 70,156, 32,201, 17, 98,111,227,120,239,249,242,151,223,229, 15,255,232,247,121,241,233,103,252,131,255,229, 31,227,188,240,185,
-119,142,120,246,206, 49,187, 7, 15,216,236, 86,164, 20,104,251,129,227,211, 83,182, 71,143,233,189,231,104,179,102,159,111,168,
-185,240,228,217, 49,113,183, 2,191, 1,191, 35,109, 55,236, 86,158,235,155, 3,215,151,151, 4,223, 81,243, 76,105, 35,226, 28,
-193, 5,170,102,188, 52, 50, 66,157, 29,163, 10,173,141, 52, 89, 52, 59, 62, 81, 66,193, 17,233,186, 21,109,121,182,125, 93,120,
-228,154,241,193, 34,156, 87, 81,112,165, 71, 37, 18,155,163,197, 14,137,213,172, 68,205,209, 98,192, 55,199,100,163, 67,180,139,
-136, 56,146, 68,188, 38,102,157,161, 41,157, 40,189,243,148,154,153, 41,168,118, 38,252, 76, 61,165, 86,234,184, 64,149,164,146,
-220,140,119, 48, 11,184,185, 24,126, 56, 4, 74,137,196, 16,108,106,144,130, 37, 94, 6, 53,184, 12, 66,139, 54, 57,147, 59, 1,
-183, 54,106,116,198,206,103, 17, 6, 55,227, 98,120,117, 4,233,204,249, 18, 3,219,213,138,135,111,157,218,101,255,179,218,195,
- 6, 3, 5,121,133,237,118, 5,247,240, 61, 21,139,252,205,227, 72, 16, 88,109,214,247,230,127,175, 10,211, 88,168,121,100, 21,
-133,126,187,185,151,240,153, 55,197, 72,131,171,243, 61, 55, 87,231,180, 50,162, 78,201,217, 46,246, 38, 22,255,157, 5,102,167,
-140,115,163, 28,102, 60, 66, 90, 48,198,172,214,204,216,154,175,180,142,153, 6,174,144,179,157,217,222,123,250, 44,204, 57, 80,
-166,145, 16, 3, 34, 27,106,222, 19,139,210,107, 48,161,245,110, 69,190, 29, 25,199,137, 0,214,121,222,113,111,165, 90, 78,184,
-211,191,233, 95,182,203,248, 77,210, 88,178,170, 88, 22,114, 73,118, 16,131,141, 20,141,187,187, 48,211,219,226,245, 22, 49, 53,
-103,179, 35, 92,113, 84,183,164, 1,185,128,138,129, 50,156,154,176,167, 52,111, 29,157, 55, 33,151,191,187,135,150,116,168,234,
-194, 66, 52, 82, 84,195, 50,246, 50, 46,188,121,232, 27,115, 81,251,111, 2, 82,161,181,121,201,107, 55,208, 78, 19,179,193, 37,
- 67,228, 17,156,208,170,253,185,248,134,250,134,122,111,162,162, 96,123, 76, 87, 2, 46,152, 72,196,123, 97,210,134, 31, 27,169,
- 11,132, 36,148,185, 65,180, 9,135, 23,181,234,189,117,108,187,158,224,133, 57, 43, 49, 45, 28,246,166, 68, 47, 76,109,102,187,
- 90,243,244, 4,214, 64, 22,207,140,178, 22, 97,181,237,241,235, 35, 92,169,184,238,132,217,221,114,178, 25,120,187,116, 92,209,
- 83,202, 45,255,230,255,250,231,124,255,163,239,219,225, 81, 43,121,202, 86,197, 71,101,110, 51, 77,231, 69, 20,103,133,154,163,
- 25,123,223,153, 8, 16, 87,193, 67,151, 86,104, 9, 12,245,198, 70,245,203,184,214, 33,120,145, 37,175,222,243,115,207,158,209,
-202,200,139, 79, 94,178,125,120,202,197, 75,200,178,162,184, 98, 49,186, 46,210, 71,103, 15,247,156,223,132, 43, 84,119, 87,108,
-216,243,117, 23,141,106, 63,195,221,168,223,186,249,138,227, 48, 76,140,185,178, 93,119, 36, 31,217,198, 21,213,193, 56,143,188,
-186,253,140, 87,103,103,188,117,116,204,147,199,143, 89, 29, 41, 83, 25,136,251, 13,167,199,111,241,240,241, 99,240,194,218, 59,
-126,249,111,125,129,223,250,157, 47,242,157,111,124,131, 87,159,237,233,250, 21, 47, 95,238,249,246,119,126,200, 56, 79, 22,100,
-164,249, 14, 87,128, 11, 16, 83, 98, 62, 12,228, 97,198,187,136, 75,129,212, 37,187,248, 77, 78, 73,242, 22,101,122, 51,220,208,
-175, 34, 90,140,234, 5,149,229, 37,161,100,230,217, 81,115,166, 77,217,132,136, 64, 73,240,250,234,146,171,179,115, 62,247,228,
-152,207, 61,123, 66,209, 66,211, 25,116, 32,173, 87,180, 34, 22,224, 34,141, 16, 29,109,130, 50, 87,203,216,142,158,139,171, 91,
-196, 9,169,235, 88,245,134,162,253,139,239,191, 4, 30,243,135,255,233,215, 56,220,140,252,249, 95,254, 8,241,205,176,200, 41,
-145,124, 32,248, 96,218, 17, 49,107,220, 84, 51, 87,215,123,180,100, 66, 52, 94,184,143,137, 24, 87,104,203, 72, 83,242, 82,120,
-175,125, 32,118,129, 95,250,185,103,252, 23,255,229,223,225,230,252, 21,255,224, 31,254, 31, 28,174, 11,218,110,248,203, 31,192,
-238,173, 35,158, 61,138,228, 82, 88,109, 86, 28,202,100, 89,240, 81, 72,209,115,250,224, 17,239,190,247,152,143,127,114,206,247,
-190,253, 99,222,121,254,152,237, 51, 64, 54,192, 99, 30, 60,239,248,210,213, 37,175,207,206, 25,166, 61, 93,128, 82, 19, 99,110,
- 72, 40,244, 85,105,206,227,179, 69,158,170,179,247,183,239, 60,206, 57,242, 92, 8,210,112,113,196,103,155, 68,184, 90,200, 57,
-131, 4,212,123, 52,244,196, 58,162,217, 17, 59,183,220, 31, 29,212, 66, 85, 97,211, 9,101,134, 68, 68, 98, 37,135,138,230, 70,
-204, 27,100, 26,144,232, 24,219, 76,112,182,174,106,101,102, 80,101,172, 74,138, 14,188,167,206,158, 67,187,197,151, 68, 83, 71,
-232,193,105, 96, 44,134,167, 14,201,112,204, 97,235,153, 14,144,146,226,125,193,121, 15, 1,106,153,241, 98,231,142,208, 72,234,
- 40,173, 46, 32, 41, 27,199, 83, 27, 89,102,115,155,168, 89,127,171, 87, 74,171,136, 22, 92, 21, 92,179,243,233, 62,246,223,134,
- 93, 53, 15,182,147,251, 3,207, 52,133, 90, 42, 14,115, 33,221,171,144,173,217,205,238, 22, 91,219,125, 94,232,127,211,138, 39,
-206, 51,223,177,243,157, 67,139, 34, 46, 83,107, 69,130,163,206, 13, 29,171, 89,190,197, 49,207, 19,113,157, 8,101, 98, 28, 43,
-205, 9,161, 13,204, 90, 32,158,224,218, 43,124,187, 37,142,137,131, 6,179, 63, 75,162,186, 66,149,137, 60, 59,188, 11, 12, 58,
- 51, 55,240,251, 66,210,128,243, 30,255,228,241,211,175,227,218,155,139,220,178,130, 45, 56,193, 7,177,135, 71,151, 78,119, 73,
- 92,243,238,238, 13,210,101, 63,235,237,255,105, 75,119,189,176,118,156, 68, 83,204, 75,197, 53,101,158,139, 9,241,150,144, 17,
-239, 27, 18,132, 90, 76,156, 39, 98, 9, 91,193,123,156,180, 37,209, 73, 44,170, 85, 64,154,199, 33,180,102,172,110,213, 37,171,
-217,217, 11, 12, 46,188,201, 80, 54,123,155,141,237, 20, 53, 79,186, 51, 32,236, 93,112,129,225,231, 42,206, 47,211,131,187,232,
- 68,239,192,155,101,195, 59, 79, 31,163, 9,242, 48,109, 64, 12, 30, 9,193, 70,220,203,251,229,235,194,110,119,130,151,133, 69,
- 28,132,152, 58,246,215,231,156, 93,222, 82,229,167,130, 62, 21,135,143,158,164,142, 40,129,211, 35,207,241,166,103,181,237,137,
-219,192,110,117, 2,125, 52, 21,252, 52, 83, 83, 34, 10, 76, 99,228,234, 80,185,154,102, 84, 15,252,228,123,223,225,213,229, 37,
- 85,161,229,201, 86, 35,226,193, 21,202, 52,147, 91, 89, 70,194,182,222,104, 75, 81, 21, 66,162,235, 58,250, 85,111,191,179, 82,
-126, 74, 18, 20,115, 67,136, 98,228, 43,103,201,122, 93,151,120,250,224,132,155,219, 91,246,195,192,233,201, 17,135,253, 5,255,
-209,175,252,109,122, 70, 62,249,248, 5, 53, 56,214,155, 45,235,216, 19,163,167,239,146, 21, 25, 18, 13, 98,227, 45,240,199, 45,
-147, 24, 39,186,132, 52, 24,198,183,185, 37, 56, 65,149, 90, 33,231,106, 54,187,101,223, 31,187,158, 85,191,194, 57,199,112, 24,
-121,117,117,193,249,235, 11, 3,163,212,198, 88,110,113,165,242,254, 59, 79,121,254,222,231,217,109, 60, 31,252,224, 3,168,158,
-183, 78, 55,252,241,191,248,127,120,125, 61,115,254,234,134,207, 94, 94,240,250,242,156,146, 7, 74,245, 76,179,237,250,171,192,
- 48,204,228, 60,211,245, 29,125, 50,110,128,163,226, 93, 66, 2,244, 49, 81,180, 49,150, 25, 39,222, 18,168,178,121,217,167, 33,
- 27,201,203,253, 52, 95,189, 81,151, 11, 51,216,186, 39, 23,218, 60,179,223,195,112,104,148, 73,113,204,228,209,244, 30,185,153,
- 43, 36, 23, 53,139,105, 91, 18,199, 36, 32,210,184,188,185,166, 91,173,232,250,245, 27,144, 81,211,194,235,203, 91,222,125,247,
- 57,127,235, 87,191,194,135, 31,252,152,243,171,129,126,179, 66,146, 39,173, 55, 52,239,108,130,166,134,177, 44,227,132, 23,177,
- 61,122,112, 84, 85, 91,187,212,130, 71,109,130,227, 35, 41, 38,186, 16,248,220,163, 39,252,103,191,251,107,228,195, 53,255,232,
-143,255,132, 82,133,213,186, 67,155,227, 48, 90,166,228,131,109,100,187, 74,244,113,203,233,131, 39,172,214, 91, 30, 30, 37,142,
-118,158,110, 27, 73,111,109,121,240, 96,203,120, 51, 80,138,178,123,107, 11,238, 4, 43,107, 55,156, 62,216,224, 91,230,211,159,
-188,100, 56,100,211,134,168, 82,100, 2, 13,208, 60,146,140, 92, 87,155, 99,118,208,137,135,234,141,119, 46,130,147, 68,220,173,
-112, 56,203,110, 8,194, 38,122, 10,141,168,160,185, 48,107,162,138,195, 69,197, 75,182,224, 38,133, 76, 67,106, 64, 83,101, 44,
- 48,183, 17, 90,101, 67,143, 68,207, 52, 89,183,221,168,104, 48, 31,249,144,111, 41, 14, 92,181,243,209, 88, 1, 6,128, 73,219,
-158,234,108,101,193,122,199, 58, 8, 50, 6,166,160,120, 28,193, 21, 8, 29,115,181,148,199,185,182, 37, 0,107, 81,131,163,148,
-165,201, 10, 49, 45,250, 23, 67, 97,215, 10, 49,121, 35, 70, 98,231,165, 56,179, 33, 58,239, 77,175,112,180,101,119,124,116, 47,
-151,239, 52,102,242, 52,209, 39,191,116,189,247,163, 32,159,198, 66,158, 39,250, 20,232, 86,247,151,117, 62, 55, 24,135,153, 60,
- 79,172,251, 64,183, 94,221,235,197,126, 59, 53, 46,174,174,201,195, 45,117, 30,108,189, 89,178, 37,157,138,160,189, 39,143,138,
- 43, 13,167, 5, 41,149, 24,149, 67, 24,104,154,224,214,236,209, 78, 6, 74, 43, 56,122,100,116,116,213, 2, 21, 11,133,154, 12,
-130,228,212, 51,211, 40,109, 32,248,204, 62,103,106, 51,248, 80,155, 77, 84,155,180,226,159, 60,123,251,235,134, 8,117,119, 43,
-242, 55,201,108,119, 34, 68, 39,150,100,131,115,111,246,164,150,174,186,192, 83, 22,197,188,113, 98, 28,190,185,197, 30,102,209,
-131,212,198, 92, 33, 18, 65, 28,173, 22,106,109,248,100, 65, 25, 82,155, 89,124, 22,117,162,136, 21, 9,119,234,245,187,130,176,
-220,217,172, 44,130,197, 18,118,196, 89,196,224,226,167,175, 78,151, 41,131,188,161,227,137,119, 56, 53,223,117, 8,102,224,174,
-205,210,210,112, 38,186,107,193, 50,209, 81,183,112,210,205,110,228,157,117,182,125,178,195, 52,165,136, 4,111, 79,139, 90,240,
-141, 83,152,231, 12, 94, 80,188,141,126, 67, 36, 36,251,128,125,246,217, 43, 94, 95, 15,118,208,139,241,195, 67,232,136,222,210,
-121,164,235, 72, 93,228,228, 40,146,196,219, 1, 21, 28,210,103,230,155, 1,223,111,240, 82, 65,183, 92,149, 83, 84, 39,186,208,
-241,201, 39,223,231,227,143, 63, 96, 44, 51,211, 48, 83, 90,181,223, 31,141,156, 51,185,232, 27,129,218, 29, 96, 6,231,232, 82,
-207,170, 95,211,165, 14,241,129, 82, 50,121,154, 25,198, 97, 73, 24,179,125,156,247, 9,241,203, 46,220,193,233,209,142, 92, 27,
-183,227, 76,174,153,211, 99, 91, 7,252,198,175,255, 50, 31,255,240,207,249,248,236,154,253,237,173,117,164, 10,187,205,138,126,
-189,102,211,245,236,118,107,214, 41,144, 98, 34, 70,135,168,229, 10,220,101, 52, 91, 32,110, 89, 48, 69, 54,126, 14, 18, 23,102,
-127,179,220,106,231,105,173, 0,158, 39,143,159,241,214, 91, 39,168, 22,202,156,185,185,222,115,125,187,231, 48,206, 92,239,175,
-185, 62,156,145,122,104,172,232,251, 21,243,112,197,167,175, 94,243,239,190,253, 49,115, 45, 56, 23,120,245,234,140,139,155, 27,
- 82,223, 17,130,231, 48,236, 41,165,226,170,163, 52, 19, 90,174,183, 27, 83,170,123,150,241,101, 33,136,163,102,101,204, 19,105,
-221, 33, 90, 41,227,204, 48,205, 76,205,240,189, 34,134,166, 28,243,108, 83, 45, 9,203,239, 59, 46,126,220,128,147, 35,170,118,
-116,209,227, 20,166, 60,227,154, 55, 82, 91,110,204,173,224,131, 97,143,107, 43,224,148,245, 42,114,126,181,167,213,198,106,189,
- 66, 36, 17,196,209,111, 59,122, 9,168,115, 92,158, 79,212, 58, 47,152,216, 53,125,183,131,150, 17,159,208, 5,144,228,112,228,
- 97,207,225,246, 22, 66,192,199, 64,144, 72,148,244,102, 61, 85,106, 65, 85, 9, 41, 17,125,164,235, 87,252,206,111,125,153,163,
-147,192,255,252,191,254, 43, 42,194, 23,223,125,204,238,100, 67,236, 4, 45,240,234,236,192,217,217, 21,187, 85,224,189,119,223,
-227,237,211, 19, 78, 79, 34, 71, 15,214,248, 62,192, 42,130,108,112, 97,203,209,131, 21,229,122, 36,122, 69, 86, 15,150, 75,221,
-186,246, 85,188,225,131,239,126,151,177, 4,100,211, 81, 5,200, 21, 71, 98,172,197,136,114, 85,152,218, 68,140, 59,180, 64, 72,
-153,137, 70,161,145,186,196,106,189, 6,175,104,155, 45,176, 72, 21, 95, 35, 26, 35,153, 70,119,135, 82, 78,105,161,208, 45, 5,
-112,245,224, 11,213, 77,228, 92, 81, 28, 41, 4,154, 22,114,168, 8, 9, 73,149,230, 21, 37, 49,140, 87,136,139,108, 98, 15, 84,
-188,174,152,124, 97, 19, 86,180,193,130,134, 92,231,112,117,198, 51,211,130, 39,180,198,166, 87,106, 78,220,206, 19,218, 34,169,
-115,132, 86,152,115, 70, 98,180, 21,103,181,174, 60, 68, 19, 44,171, 83,251, 60, 54,219,133,138, 88, 35,162, 94,240, 69, 17, 9,
- 56, 60,169, 19,156, 15,164, 16,120,112,122,196,122,187,253,217, 71,217,216, 5, 89,203,204,170,139,247,118,249, 54, 96, 88,104,
-114,155, 85,186, 55, 70, 61,139, 67,106,127,152,104,101,226,104,211, 19,250,254, 94, 59,245,235, 65,185, 56,187,228,112,251,154,
-208,218,178, 26,130, 88, 29, 53, 55,246,185,225,171, 16, 66,160, 97, 44, 11,205,142, 60, 21,124, 16,114, 81,156,159,152, 91,161,
-185, 35, 90, 84,202,180, 71, 99,160,170, 82, 37,227,125, 51, 20,108,131, 88, 39, 92,118,136,139, 16, 42,234, 10,100,207,218,247,
- 12,154,173,224,124,252,248,233,215,113, 22,196,226, 84,222, 8,229,180,217,206, 89,192,136, 87,119,227,119, 21,187,244, 85,236,
- 31, 47,182,255,185, 83,156, 59,111,130, 22,111,204,115, 93,178,204, 21,192, 27, 14, 79,245,142,170,230, 45, 36, 5,161,181, 59,
-106,155, 9,149,172,122, 88, 18,220,196, 89, 42,140,184, 37, 56,126,129, 31, 44, 48, 4, 39,178, 36,203,181, 37, 95,119,241,210,
-171, 37,124,149, 82, 12,166,180,140,178,238,210,200,250, 69,237,236,177,162,165, 96, 57,201, 62, 44,240,149, 37, 80, 38,198, 64,
-112, 98,252,118, 23,172,104, 8, 22,168,209, 74,129, 14, 68, 76, 29, 95,213,194, 82,124, 52,246,117, 29, 38, 62,249,228, 51,246,
-135,108,187,174, 16, 40,181,226,125, 35,250,192,122,181, 38,246, 59,202, 56,242,232, 4,203, 16,206,141,154, 71,156, 68,188, 58,
-210,163,167,132, 8,181, 20,214,238,192,233, 10, 34,141,111,254,223,127,193,171,235, 27,198, 60, 89,116,108, 93,112,145, 14,166,
-146,223, 32, 59,181, 89,167, 14,142,216, 37, 54,171, 35,124,240,196,232,105,181, 82,242,188,232, 29,108, 18, 83, 85,223,204,150,
-116, 81,134,167,216,179, 74,107, 52, 91, 71, 83,171, 32, 93, 64,112, 28, 31,173,249,240,199, 31,115, 53,204,180,217, 86, 40, 14,
-193, 47, 60,126, 35, 15, 54, 16, 79,223,173,216,173,214,196,216,177, 89,117,172,214,235,101,239,238, 77,205,171,205,118,163,216,
-138,195,105, 35,166,142,205,118,103, 26, 15, 47, 54, 54,247,158,205,241, 41,199,187, 19, 82, 72, 68,111, 83,136,162,141,105, 26,
-232, 87, 61,133,132,200,150,241,242,130, 31,125,252, 33,173, 4, 62,252,248,130, 16, 2,222, 5,242,108, 42,246,180,218, 82,242,
- 76, 30, 7, 67,171,138, 95, 10,184, 68, 18,111, 99,110,223, 44,210,215,155,250, 70,106,179,162,182, 53,166,217,188,168,135,105,
- 36,134, 68,232,122,106, 49,197,173, 42, 4,241, 36,151,104,136,105, 56,200, 28,159,158,240,252,217,123,164,152, 32,143, 76,211,
-126,169,186, 51, 51,149, 20, 2,171,190,135,230,105,147,253, 78, 66,244, 8,133,235,195, 45,222, 11, 49,244, 72,112, 68, 85,186,
-232,201,165,177,191, 30,120,117,126,224,187, 63,122,193,231,222,121,192, 87,190,248, 46, 47, 62, 19,166, 58,216,110,217, 43,129,
-132, 35, 47,129, 70,138,182, 76, 45,153, 90,139,209,194, 4,124,234, 16,151, 72,253,138, 85,215,225,212,241,206,179,231,124,254,
- 11,143,248,215,127,246,151,188,188,184,229,249,179, 7,156,172, 58,158, 60,220,240,222,211,199, 28,239, 54,108,143, 19,143,222,
-218,240,240,225,219,188,247,238, 59,172,123, 33,198,176,184, 87,162,197,103,138, 7, 22,204,234, 73, 64, 74,197,113,128,112, 4,
-216,244, 43,109, 34,109, 58,231,230,246, 64,171,141,220, 38, 82,243, 22,165,155, 44,254,121,210, 74, 29, 70, 96,196, 99,175,165,
-173,122,124, 81,250, 46, 90, 34,155, 54, 52, 67, 45,138, 71, 9, 18, 72,105, 17,219, 22, 71,171,153, 90, 4,205, 51, 33, 54,214,
-126,205, 92,148, 42, 21,209,222,206,131,228,240,186,198,139, 66, 77,248, 44, 20, 22,215,198, 97,198,211, 17,220,242,217,239, 86,
- 11,115,163,217,152,126,204,244,114,151,147, 17,233,154,241,254,187, 4,173, 69,166, 42,116,171, 72,234,205,137, 19,213, 92, 43,
-206,121,180, 90,104,145, 19, 7,106,225, 70, 74, 51,167,210,146,201, 32, 98,239,151, 15, 1,109, 75, 90,101,176,179, 49,224, 17,
- 31,121,112,114, 98,123,234,159,241, 43, 23,101, 26, 38,106,201,244,125, 32,221,211, 5,153, 27, 12,135,209,178,206,215, 29, 62,
-165,123,187,116,115, 49,252,172, 43, 19,187,109,143, 79,221,189, 94,234, 55, 83, 99,127,117,197, 52, 94, 67, 53, 23,194, 84, 51,
-197,196, 13, 76, 21,179, 82,250,194,213,126, 38,116, 14,215,102,102,241, 56,233, 88, 53,207,220, 34,115, 39,204,121, 34,164, 66,
- 84,225,102,184, 33,202,100,159,135, 42,180,177, 80,219, 68, 12, 70,121,173, 83, 69, 92,160, 74,195,233,140,150,105,137,241,246,
-119, 49,180,230,239, 94,132,158, 54, 30,117,119,251, 13, 71,211,188, 28,206,178, 16,208,140,220,230,177,172, 99,239,101,177,171,
- 5, 19, 85,181,138, 54, 33, 56, 71, 86,247, 38,163,215,114, 14,204, 82, 38,222, 46,242, 86, 13, 22, 19,124, 88, 46, 33,104,226,
- 8,106, 42, 98,239,127, 26,249,169,173, 33,173,162,213,177, 8,237,233,196, 27,230,114,121,208,125, 93,148,198,152,151, 23,109,
-230, 77,199, 10,137,102,237,191,141, 70,199, 98, 99,245, 96,146,108,183,132,215,180,170, 4, 60,222,233, 50,178,110,118,245, 59,
-165,104,166, 39,224,131, 51,247, 30,209, 98,102, 69,108,191,223, 38, 90,136, 80,132, 38,133, 60, 90,247,232,112, 52,181,200,211,
-224, 34,173, 26,143,123, 40,153, 13, 7,166,210,120,113,230,136,167, 29, 47, 95, 95,241,224,241, 49,207,146,162, 33,209,169, 67,
-230,107,152, 7,124,234, 73, 15,190,200,103,103,127,205,203,243, 87,228,105,194,225, 13, 54,227,140,216, 54, 47,136, 88, 81, 40,
-170,180,214,104, 56,219,191,174, 55,164,174,167,228,137,113, 26,153,115,166,149,121,153,200, 88, 92, 96, 16,140,122,215,204,175,
- 30,227,138,211,163,135, 28,111,119,204,109,224,236,226,140, 24, 58,188, 56,118,219, 29,175, 62, 62,227,250,242,192,245,197,245,
-162, 94, 15, 72,202,140,193,225,218, 93,168,142, 21, 91, 18,148,236,173, 11, 78, 62, 33, 93,100,179,219, 48,141, 35,211, 60,211,
- 74,102,206,149,195, 56,211, 90, 49, 26, 93,127,204,131,211, 99,134,225,134, 33, 55,130, 52, 46, 46, 95,115,241,255,178,246, 38,
- 63,182,166, 91,122,215,111,189,221,247,237, 46,154,211,103,158,108,171, 50,111,111, 76, 25,170, 92, 50,133, 4, 46,171,140, 96,
- 98, 23, 66,194,136,110,104,129, 24,152, 9, 67,106,128,248, 11,144, 60,131, 49, 66,162,145, 65, 32, 33, 6, 22, 20, 24,227,194,
-229,219,223,186,183, 50,239,189,153,121, 50,243,116,209,237,189,191,230,109, 22,131,245,197,201, 50, 24,123, 80, 39,164, 80, 28,
-157, 19, 25, 25, 17,123,239,247, 93,205,243,252,158, 23, 47,120,244,240, 1,187,221,137,161,108,111,174,152,154,167,230, 70, 25,
- 76,185,172,193,241,197,213,196,119,190,241, 1, 63,253,163, 79,153, 26,244, 30, 10,158,148, 34,125, 73, 11,198, 85,113, 97, 69,
- 10, 17,231,148, 94, 86,175,210, 11, 5, 99,154,223,166,238,105,201,139,245,177, 49, 15, 22,122, 84,180, 34,222,114,159,107,179,
-217,153,162,196, 46, 18,154,208,212, 58,103,191, 76, 74,126,243,159,251,109,118,105,197, 39, 31,255,152,195, 52,225,176,202, 59,
-122, 99,219,123, 12,164,212, 68,169, 73, 8, 53, 80,231,202,203,105,143,111, 74,215,173,161, 5,168, 32,189,112,189,207, 28,135,
- 76,205,166,230, 62, 59, 95,243,181,247, 30,112,117,121,224,242,120,131, 74,162,228,145, 78, 21, 66,133, 16,113,189, 99,215, 39,
-124, 85,142, 67,102, 30, 14,228,150,105, 56, 82,179,181, 66, 23,140,194, 40,193,242,184, 63,254,233,199,124,252,211, 47,232,215,
- 91,134,195,140,158, 20, 98,240,156,172,132,251,111,222, 39,244,143,184,115,231, 49,119, 54,119,249,248,211, 79,248,209,247,254,
- 62, 90, 60,190, 15, 68, 45,118,102,212,138,138,231,238,189, 51,254,169, 95,251, 38,111,124,248,216,250,181,250, 83,240,223,176,
-253, 54,107,222,122,231, 62, 79,159,189,100,122, 82,233, 42,236,213, 33,110, 66,147, 71, 22, 95,179, 46,197,186,184,138,203,129,
-118,147,129,134, 76, 75,163, 66,192,121,135,182, 66,141, 17,223,214,200,156, 17, 29,241, 84,170, 38,156, 20,178, 52,198, 73,240,
- 97, 66, 90,198, 15, 32, 29, 86,160,229, 61, 18, 70,134,169,177,233,148,210, 5, 18,145,161, 30,241, 93,164, 87, 79,174,224,164,
-163, 78, 66,145, 9,239, 34,205, 9,116,182,230, 8,206, 70,228, 83, 19, 98,237,168,146,201, 5, 68, 71,104,206, 50,211,179, 81,
-253, 11,137, 78, 51,147, 52,142, 90, 89,247,209,180, 28,226,240, 42, 72, 85,156, 23, 66, 23,173, 96,119, 6, 72,162, 51,209,176,
-182, 70, 85, 35,206, 9,144,186,215, 99, 59,171,173, 89,134,132,234,107, 13,114,169, 69,145, 90,111, 77,223,175,245,210, 45,173,
-161, 90, 95, 89,182, 95,247,155, 54,101,170, 86, 56, 54,201, 76,197,248, 19, 85, 43, 20, 97,189, 76, 56,178, 52, 98,108,148,166,
-116,174, 35, 72,134,236,152,214,149,105,127,164,142, 2,101, 36,183,200,161,152, 11,236, 88, 76,255,213, 69, 79,140,153,121,106,
- 92,207, 25,102, 32, 70,188,206,104,129, 68,162,134,204,205,116, 3,205, 17, 28,139,245,203,181,165, 11,118,175,172, 0,218,140,
-209, 46, 53,224,156, 46, 52, 47,163,146, 89,156,167, 46,193, 20, 75,117, 47, 86,253,154, 8,107,161,179, 81, 22,239,187, 41,222,
- 85, 45,132,162,212, 66, 83,219,149,107,168,214,113,227,201,203,206, 89,156, 77, 4,212,129, 18, 22, 5,175,141,232, 91, 48,255,
-180, 23,103,152, 68, 4, 81,219,167,219, 11,200,196, 36,174,205,168, 23,186, 16,108, 93,220, 20,241,150,206,214,170, 21, 2,222,
- 39,212,123,188, 98,150, 40,175,166,190,151,165,240, 80, 11,164,137,209, 80,182,130,208, 18, 48, 54, 27,121, 57, 65, 91,164, 73,
- 70,180,226,189, 9,144, 82,176,238,255,242, 56, 50,102,203, 48, 39,218, 90,129,214, 72,105,197,122,125, 74,112, 66,206, 35,210,
- 2,159, 93, 8,195,116,201,201, 58,114,218,219, 97, 21,207, 31,226, 99, 67, 71, 79,211,142,110,245,128, 97,130,223,255,195,239,
-114,147,139, 61,121, 68, 45, 6,214, 9,245, 22, 13,170, 95,217,199,186,126,195,106,179, 35, 38, 79,128,175, 46,113,177,239, 81,
-124,178, 78,191, 85, 2,150,218,215,196,194, 88,188, 8,201,123, 78,119, 59, 30,255,202,135, 56,217,243,238,248,152,155,253, 0,
- 18,184,247,240,148,235,103, 79,184,184, 62, 90,200,139, 40,165, 53, 74,201,200, 77, 37, 38, 79,148,106,169,120, 62,217,243,162,
- 41, 69,103,138,122, 92,157,109, 26, 18, 2, 49,120, 98, 56,181, 92,244,155, 35, 57, 27,143,111,179,237,184,119,114,202,149,171,
-132,121,230,162, 24, 19,253,120,188,226,242,112,195,246,238, 93,164, 68,198,113,166, 73, 7, 14,174,142, 35,207, 62,255,146,243,
-205, 35,186,213,138,124, 16,126,254,243, 47,200,173, 34,190,163,148,137, 99, 25, 25, 90, 33, 34,116,190, 35,172,150,149,140,115,
-184, 90,105, 41, 80,201, 80, 26,226,195, 87,142,130, 92, 45,103,187, 97,220,132, 82, 25,230, 25,223, 37,106, 19,114, 29,201,173,
-144, 75, 97,154, 43,235, 20,105, 82,241,193,115,247,206, 9,143, 31,253, 42,223,120,235, 67, 62,250,248, 7,104,178,108,112,245,
- 17,183,140,127,163,139,204,227, 12,209,211,156, 16, 5, 86, 93,199,179,124,201, 92, 10,155,176, 33,185,142, 16, 59, 90,204, 76,
- 89, 41,135,137,211,147, 83,196, 55,118,125,199,230, 52, 66, 15, 63,253,252,153,169,199,203, 68,171, 3,181, 95,211, 57,193,177,
-102,116, 7,203, 46,112,133,221,137, 39,247,137, 25, 37, 31, 15,212, 50, 17,124, 68, 48, 48, 82, 72, 61,207,159, 94,241,197,197,
- 19, 66,240,184, 2,227, 85,225, 51,191,199,197,200,221, 71, 91,210,106,205,233,246,132, 77,140,124,255,251, 63,228,111,253,143,
-255, 59, 63,254,232,167, 68, 39, 68, 31,217,122,112, 41,210,170, 57, 27, 30,220,127,155,156, 61,255,244, 84,121,248,238,155, 68,
-169,176,254, 25,196,111, 2,107,206,223,250,117,222,187, 86,158, 62,253, 17,163, 10, 41,192,236, 59,242, 88,137,201, 58, 91,191,
-218,154,110, 70,102, 90, 16,220, 12, 93,232,208,216, 27, 70, 87, 50,185, 4, 98, 88, 65,104, 8, 19,185, 88,145,102, 96,106, 59,
-215, 36,108, 9,109, 96, 47,166,142,207, 52,188, 43,196,193,188,227, 67,169,132,218,200,206, 81,210,128,171, 61, 73, 86,176,242,
- 54, 94, 31, 26, 49, 40,210, 9,169,174,141, 81, 81, 20,237,108, 2, 88,115,166, 75, 61,107, 81,230, 38,236,135, 69, 39,210, 59,
-228, 0,178, 74,244,179,217, 59, 71, 61, 18,125,196, 73, 68, 85, 57,222, 12,156,244,145,208,121,156, 4,107, 64,154,129,183,106,
- 3, 45,217, 44,199, 62, 34, 33, 32,222,104,153,234,141,241,145,250,248,154, 46,117,181,130, 85,219,107,195,206,222, 22, 11, 54,
-177, 93, 86,175,175,145,246, 86,115, 53, 96, 24,202,235,190,210, 21,200,217,146,216,124, 47,228,217, 65,203,120,113, 76, 71,163,
- 20,116, 17, 14,131, 64, 21,180, 11,184,195,192, 84,170, 5,123,141, 7, 40, 9,169, 51,226, 34,142, 68,190,201,184, 60, 35, 46,
- 83,252,154, 80,130,221,105,101, 36, 36,208, 26, 33,101,234, 84, 12,121, 94, 27,199,169,224,156, 77, 47,171, 54, 2,173,208,156,
-162, 34, 72,243,139,104,169, 45, 8, 81,243,162,183,101,140,174,218, 12, 80,179, 8,230,230,106,222, 72,183,176,208, 75,169, 54,
- 50,174,230, 13, 55, 90, 98, 69,125,164, 41, 72,153,208, 16,151,241,174, 16,157,249,222,125,245,102,185,114, 13,105, 66,240, 54,
- 41,184,221, 33, 33,166,122,215, 91, 49,117, 21,163,218, 46, 15,147, 46,214, 57,243, 67,155,200, 75,243,180,236,131, 3, 62, 52,
- 90, 85, 74, 19,250, 40, 75,174,139,237,205, 67,178, 20,167, 82,133,228, 29, 42, 13, 47,142,121, 17,226,165,232,105,139,207, 88,
-213, 17, 98, 96, 33,215, 19,196,190,166,184, 66,242, 66,174,102,177,179, 17,182, 67, 93, 34,246, 43,188,119,230,165,207, 35,177,
-239,208,180, 33,118, 9,231, 96, 27, 19,251, 57, 51,150,137,185,206,188,156, 35,219, 4,125,167,172,238, 61,224,173,183,222,161,
- 12,151,124,116, 13,215, 67,227, 27,119, 30,241,209,207,190,199,143,127,241,130, 86, 23,200,187,130, 90,223,177,164, 77, 97, 72,
- 82,239,217,237, 78,217,109,182, 4,148,105,154, 81,148, 92, 27, 57,207,104,107, 52,138, 65,122, 52,162, 24,136,165,214,130, 54,
- 33,164,158, 77,234, 17,215,152,162,231,252,108,199,112,115,228,238,195,251,156,111, 6,252,106,199,251,239, 60,228,127,250,227,
- 31,113, 51,206,196,148,172,240,242, 6,146,209,230,168,121,121, 92,231,134,247,149, 73, 64,196,246,148, 49, 24,104,166,150,145,
-222, 37, 98, 8,148, 50, 51, 30, 51, 14, 71, 76,102, 47,220,158,157, 18,250, 72,210, 21, 94,132, 67,172,140,135, 17, 17,232,250,
- 68, 31, 3,178, 59,193,191,120, 78, 83, 71,116, 29,125,223,211,202, 68, 30, 95,178, 58,127,147, 63,252,225, 31,115,121,177,183,
-149,143,100,164, 12,116, 62, 66, 44,208,204,246,117, 43, 12,149, 90, 13,181, 91,150,188,232,141, 67,180,210,198,153,161,100,188,
- 23,106, 83,114,205, 72,131,113,158,105, 45, 19,170, 39,163,148, 57,243,232,222, 41, 95,255,240, 33, 79, 95, 30,248,201, 79,158,
-224,137, 56, 81,222,120,120,151, 63,247, 27,255, 60, 55,215,123,158,189,248, 28,164,177,234,253,130,155,140,140,109, 98, 22,103,
-160, 23, 53, 78, 67, 81, 43,140, 53, 11,174, 84, 92,239,201,177,199,123, 79,231, 20, 13, 86,116,196,196,146,154, 88, 89,199, 13,
-207,159, 94,242,228,233,133,177, 23,104,164, 16, 13,132, 35, 25, 47,153,132, 16, 34, 28,103, 27,235,167, 96,235,132,176,238,105,
- 53,226, 23,218, 95,171,166, 14,255,248,243, 47, 16,157, 9,169, 39, 59, 8,173,241,249,139, 35,215, 55, 19, 62, 57,126,227,215,
-239, 48, 78,133,191,251,251,127,135,255,249,247,127,200,213,213,158, 77,232,169,210,112,190,103,246,141, 40,129, 24,148,190, 63,
-225,108,183, 38,208,248,249,151, 79,248,226,226,200, 38, 69, 30,189,113,135,243,247,214, 32,239, 3,103,156,159,221,161, 75, 27,
-114,184, 38, 22, 69,166,197,190,170,160, 67,163, 76, 35,132,158,234, 3,206, 87, 60, 30,113,142,148,140, 43, 81, 7, 71,110, 25,
-113, 1, 29, 11,234,183,180,118,160, 87, 27,179,207,177, 33, 98, 44,253, 85,191,226, 58,207,184, 90,145, 56, 82,203, 17,117,153,
- 66,196, 21,193,165,104, 75,165,131,210,214,141,232,123,234, 44, 48, 85,252,102,131, 84,136, 35,196,147, 70, 11,194,248, 98,192,
-133, 74, 58, 49,106, 95, 44, 21,233, 44,144,182,175, 91,230,232,217,184,194,126,156,104,215,151,100,233,200,222, 40,143,115,168,
-172, 85,233,157,167,249, 14, 13, 54, 73,117, 90,205,189, 98, 74, 61, 84,205,198,102,114, 25,181,145,189,115,136,143,228,162,116,
-190,161,179,173, 8,255,180, 23, 88, 41,150,131, 96,112,169,215,123, 65, 54,173, 4,177,245,225,235,164,201,149,218, 40,173,144,
- 68,145,240,122,195, 92, 50, 80,134, 9,173, 51, 50,102, 35,140, 6,115,139,197,149,225,124, 39, 28,205, 77,204,185,145, 68,200,
-161,103,158, 10, 77,108,205,168, 28, 89,169,103,156, 5,105, 70, 4,108,206,163,178,166,186, 74,209, 75,146, 11,204, 46,208,198,
- 76,234,172,243,143,125,207, 84, 13, 69, 29,187, 64,137,107, 74,155, 72,162,132, 38,214,141,181, 42,203, 30,219,186, 81,116, 9,
- 68, 80,181,202,207,121, 88,114,206,181, 45,250, 38,177,142,119,217,138, 47, 35,102,243, 7, 55,113,120,127,139,100,181,127,211,
-224,209,102, 12,222, 40,130, 52, 71, 67, 25,107,193, 75, 90, 80,126,141, 86,170,197, 30, 6,179,171, 53,109,102,135, 18,165, 73,
- 67,212, 47,162, 58,251,255,214,214,192,155,138, 28,215,200,197, 50,165, 10,198, 80,183, 95,150, 1, 0,180,121, 36, 58,131, 58,
- 52, 99,185,187, 16,104, 82,200,173,210,102, 37,121, 11, 66,104, 40,170,149,160, 11,112, 34,221, 70, 93, 26,119,186,184,138, 95,
- 8,118,178,168,250,167, 98,138,216, 32,138, 74,101,119,118,135,243,211,103,124,242,249, 75, 52, 68,114,174,164,100, 30, 69, 47,
-129, 22, 61,121, 12,164, 94,144,150,217, 31, 38,254,232,179,145,146,214,252, 11, 31,188, 67,215, 69,180,110, 25,198, 27,134,208,
- 83, 53,243,131, 31,126,151,163,222, 34, 21, 3,173, 21,180,150, 87, 49,160,218, 42,162, 16, 92, 71,138, 17,234,204, 97, 28, 56,
- 78, 51, 49, 69,188, 11, 32,144,243,108,211, 25,205,248,208,225, 67,176, 4,183, 42,204,173,144, 82,100,183,237, 40,115,230,108,
-189, 51, 71, 65, 54,174,251,148,161,223,192,147,207, 62,230,226,122,192,247, 30, 74,163,239, 59,106, 83, 74, 25,205, 95,235,212,
- 4,112,226, 13, 48, 81, 10, 65, 27,222, 11, 71,102, 66,140,116, 11,111,219, 45, 2,174, 57, 47,151,152,107,184, 6,235,212,113,
- 60, 30, 57,223,158, 48,132,192, 29,224,201,176,167, 9,120,117,212, 82,152,199,145, 92, 12,195, 21, 55, 59,206,206,238, 50,207,
-215,204, 2,209,247, 76,115,198,165, 72, 84,200,109,102,170, 3,181, 53, 78, 54, 59, 74,155,153,180, 49, 78, 25, 21, 71, 31, 45,
- 84,162,148,138,139,102, 39,201,211, 72, 41,141,232,189,141,218, 91,195,169,231, 56, 77,160,158, 85,138, 54,161,168,141,166,142,
-247,222,190,203,191,246, 87,127,155,243,179,251,252,205,255,226,191,229,111,255,175,127,192,182, 63, 97,123,254, 62,219,147,187,
-252,226,151, 63, 48,171,167, 52, 66, 72, 12,147,185, 76, 92,179,188,231, 32,145,220,160, 11,137, 50, 87,142,251, 3,101, 62, 16,
-189, 35,164, 53,205, 7,154,107,168, 4, 58,160, 70,108,207, 31, 10,243, 84,185,188, 24,249,236,201, 21,199,189,199,251,153, 90,
- 71,162, 11,104,157,152, 75,165,143, 13,231, 28, 57, 43,142,138,147, 68,117, 51, 14, 33,245, 61, 53, 55,106, 86,166, 50, 17, 67,
-143,230,153, 86, 51, 62,173,160,154,134,165,184,200,221,179,200,221,147, 29, 79,159, 29,248,195,191,247,199,188,188,170,252, 31,
-255,247,207,169,181,208, 4,149,164, 3, 0, 0, 32, 0, 73, 68, 65, 84,173, 60,100,107, 18,212, 9,117, 81,109, 23,233, 56,223,
-108,184,251,248, 28,233, 96,222,103,202,250, 37,135,185, 49,125, 10,135,227,129,183,190, 6,196,135,244,171, 14,113,144,102,101,
- 14,158,131, 22,227, 70,204, 14,239, 70,186,206, 68,141, 1,207, 60, 13,102, 39, 12, 43, 66,116,212,121,102,164,225, 87, 66,148,
- 66,110, 13, 13, 19, 49, 36,142,243, 17,113,129, 92,109,157,163,147,163, 76, 21, 23,160,198, 2, 45, 49,231, 74, 74,142,168,141,
-224, 2, 45, 87,178,119,168, 19,198, 5, 17, 27, 84,152, 90, 68, 75, 38,246, 29,227,108, 4, 62,209, 3,222, 53,164, 4,202,228,
-104,203,180,177, 30, 97,189,243,104,152, 8, 49, 50, 22,135,246, 9,175, 71,106,232,104,181,226,107, 37,109,183, 56,157,153,166,
-204,122, 19, 33, 64, 46,203,152,221, 41,218, 44, 82, 25,103,186, 33,151, 2,161, 57, 26, 29,170, 86,220,251,232, 41, 14, 62,125,
-242,130,211, 93,198, 69,139,114,246,209, 35,222, 47,142, 31, 19, 70,203,226, 10,250,127, 91,213,100,177,129,181,170,148,105, 66,
-171,113, 20,244,118, 92,254, 58, 46,223, 90,121,229,203,121,141,227,119, 43,148,205,185,147,162,188,118,166,188, 46, 23,123,117,
- 51, 5,135,115,137, 60, 29, 64, 76,175,210, 43, 28,138, 50,187, 66, 23, 2,199, 67, 38,119, 10,157, 82,110, 26,126,101, 64, 52,
-157, 21,207, 76,141, 51,174,245,144,148, 54, 79,164, 10, 53,110,168,154,153,219, 76, 44,129, 16, 27,140,141, 34, 71,124,132,182,
-238, 73, 94, 9, 67, 97,214, 21,193, 23,219,169, 27,138, 85,113,203, 78, 86,219,146,109,190,136,222,188, 0,213,112,175,150,108,
-101, 57,230,150,112, 85,109,204, 81, 28,209, 25,202, 48, 55, 83, 96, 59,177,184, 72,244, 54, 34, 85,190,138,205,177,137,132,237,
-147, 80, 2,213,252,151,206,163, 98, 23,184, 56,251,164,132,163,170,163, 46,150, 19,195,183,218, 1, 26, 92,128, 86,236,243,189,
-160,206,209,121, 40, 78,241,248, 5, 64, 99, 88,214, 69, 90,103,193, 31,213, 89,244, 98,109, 11,233,203, 83, 91,193,123,165, 69,
-219,247,107, 83,116,170,212, 32, 36,177, 2,161, 57, 83, 71,163,182,215,171,169,146,196,145, 43, 12,121, 98,221,117,180, 2, 57,
- 41, 65,109,191,249,206,189,115,158, 62,189, 96,174,149, 1,133,105,192,187, 53,135,121, 79,110,145, 82, 26, 93,127,202,201,118,
- 5,231, 70, 86,186,113,247,120,126,241,156, 52,125, 78,215,189,197,251,191,250,171,156, 61,120,196,139,207,190,207,143,127,249,
- 2,230,140, 74, 91, 2, 66, 42,170,213,236,111, 33, 80,139,177,221, 17,101, 30,246,100,103,185,240,125,191, 70,181,144,243,188,
-216,172, 4,173, 38, 96, 44,101,162,182,140, 11, 61,136,176, 94,111, 73,206,113, 56, 30,145, 38,136,244,188,124,249,146,213,166,
- 39,224, 57, 72,134, 86,249,244,201, 39, 28,167, 17,178, 82,107,229,206,157, 7,220, 63,187,207,143,126,242,125, 14,211, 96,138,
-113,109,244,105, 69,234, 34,181,217,222,183,168, 81,189, 74, 41,204,192,189, 55, 31,114,186,221,114,241,244, 37,170,149,105,174,
- 52,173,244,253, 6, 23, 26,135,171, 35,247,206,214, 60,191,184, 54,120,136,154, 29,168, 52,225, 56,140, 12,195,193,214, 36,222,
- 33,154,233,188, 16,253,150,195,213,196,225,236, 64,223,117,164, 4,215, 87, 7,166,225,192, 80, 50,121,174,140,211, 68, 23, 59,
-210, 54,176, 78,189,101,201, 99,142,138, 16,160,214,137, 49,155,136, 12,143, 37,154,209, 44,180,165, 26,200, 40, 4,199, 92, 11,
-173, 22,206,118,107, 78, 55, 27,158,190,188,225,231, 79, 62,227,195,119,127,149,191,246,187,191,195,143,127,244, 83, 30,189,251,
- 29,126,253,215,255, 60, 47, 95, 60,161, 77, 3, 43,239,200,217,225, 37,224,219, 0,107,135, 47, 43,242,176,103,212,130, 72,164,
-100,101, 28, 50,173, 78, 84, 38, 98, 92,225,215, 61,125, 19,114,139,184,128,141,213,179, 82,188, 66,246,220, 28, 38,158, 94, 28,
-208, 92, 17,191,130, 54, 33, 75, 88, 81,159, 2,201,109, 25,134, 3, 62, 56,180,130,119, 66, 22,165,181, 64, 80,165,204, 5,205,
- 86,128,181,214, 32, 5,100, 73, 69,107, 45,160,174,225, 35,132,206,209,175,123,238,221,219,177, 31, 60,255,219,223,125,194,245,
-152,105,190, 18,181,217,104,178, 85, 19,197, 57,219, 45,139, 38,118,235, 19, 54,155, 19,246, 71,207, 39,159, 85, 30, 63, 12,244,
-235,132, 56,184, 25,158,113,124,113,198,205, 63,248, 62,231,103, 63, 96,179, 62, 99,214,204,190, 85,162,122, 66, 2, 38, 69, 74,
-198,173, 10,121, 20, 82,179, 51,136,148,112, 25,122,239,144,201, 32, 86, 65, 28,101, 26,153, 66,193,251,136,211,137, 89, 3, 1,
- 79, 8, 75, 51,115,172,180, 88,200,161,179,137,213,104,163,252,237,218,145, 7,135,172, 18,196, 68, 57, 30, 88,165,206,200,114,
- 57,224,134, 66,149,229, 66,174,149, 81,214, 80, 11,206, 41,211,161,226,214,107,194, 44,232,228,113,157,224,221, 64,157, 3,121,
- 62, 34,154,113,165, 49, 28, 10,155,174, 71,195, 25,197,195, 38, 52, 74,139,184,208,200, 26,112,213, 24, 15,101,110,116,183, 43,
- 60, 49,221, 72,197, 17,146,197,250,214, 25,146,115, 84, 45,196, 96,103,183, 56, 71,140, 29,178,187,195,156, 18, 65, 76,220,235,
-218,210,229, 99,204,140,219,192,161, 91, 66, 29,183,123,249,106,241,217, 77,155,217,145,235,114,230,208,184,184, 26,216,100, 93,
- 80,224,134,192,118,126,209, 92,233, 82, 28, 44, 5,130,252,137, 52,202,127,212, 72, 63,143, 19,181, 84,154, 91,196,216,175,233,
-238,173,149,101,173,216, 22,178,232,107,246,168, 55,236, 28,157,138,185,189, 90, 99, 30, 50,210, 50,174, 5,166,170,120,205,116,
- 46, 48, 81,137, 65, 9,185, 49, 42,184, 0, 50, 28, 8,163,208,238,238, 24,175,110,104, 99,196, 79,153, 76,129,184,166,247,149,
-169, 22,218,190,210,173,132,236, 3,165, 90, 28, 49, 20,164, 69,156,116,140,227, 13,174,122,210,230, 30, 91,255,194, 26,214, 34,
-109, 9, 5,104, 11,117, 76,150, 49,136, 24,203,176,122,102,169, 11, 73,203,163,106,194, 56,117,186,112,224, 45,185, 76, 17,242,
-108,229,157,248, 70,201,109,201,240,118,230,223,107,150,103, 94,213, 80,173, 42, 66,244, 98, 23,179,218, 97,105, 64,216, 37, 58,
-178, 84,252,130,147, 47, 57, 35,152,205,201,184,229,203,222,168, 85, 66,180,255,162,106, 33,104, 48,216,138, 90,106, 90, 12,102,
- 9, 17, 89,180, 0,106,106,112,171, 84, 26,130, 5,180,212,102,144, 25,175,144, 9, 84, 49,133,122, 39,193, 72,121, 46,216,174,
- 90, 10, 65, 28,117, 89, 71,184, 86,152,113, 70,186, 10, 97,121,145,100,168, 66,109,194,196,145,213,217, 9, 39,187,158, 47,158,
- 31, 64, 34, 72, 36,248,132,151,132, 40,196, 20, 24,166, 27,156,203,188,245,240, 29,130, 4,222,250,206,175,241,173,239,188,203,
-225,226, 41,251,253,158,195,151,159,241,242,179,159,240, 7, 63,252, 30,215,163, 61, 22, 85,213,158, 76,170, 52,181,199,207,161,
-180, 98,226, 45, 87, 27, 85,148,206, 37,186,205,150,224, 3,211,120, 68,219,204,118, 19, 40,173, 49,141, 19,121,217,177,123,196,
-198, 66, 33,176,238,172,251, 24,231,145,216,111,217,244, 9, 92,197,183, 30,164, 18,150,168,200,203,171, 43, 74, 89, 28, 7,192,
-205,245,129,175,127,237,107,188, 59,188,195,143,126,242,179, 69,131, 33, 16, 28,223,252,206, 55, 56,233,123, 46, 94, 94,178,191,
- 57,112,117,125,201,211,231,207,193, 11, 15,239, 62,224,237,199,247,225,107, 31, 48,238, 7,110,110,174,249,228,211, 79,184,217,
- 23,230,253, 64,244,112,121, 56, 48,141, 32,154, 57, 78, 3,226, 29,125,236,113, 26,168, 10,125,138,172,187, 68, 12,189, 89,149,
-182,137,241,248,146,139,207, 44,112,103,127,179,231,249,139,231, 76, 83, 6, 28, 62, 69,230,185, 80,231,204,126,244,108, 55, 43,
- 58,231,153,106, 35, 43, 4,181,140,100,164,190,138, 93, 5,139, 21,110, 13,124,115, 20, 10,165, 10, 83,158,240,226, 88,119,145,
- 63,243,237, 7,252,253,239, 61,225, 15,254,175, 31,241, 43,239,188,207, 55, 63,248, 58,127,249, 47,253,139, 12,245,132,224,122,
-198,203, 11, 82,105,184,228,152, 60,204,243, 96,222,226, 16, 9,206,115,147,133, 58, 43, 74,177, 44,109, 15, 58,217,244, 41,174,
-206, 41, 37, 25, 42,203, 85,243,101,123,199, 56,100,134, 50, 46,211,175,184,112, 34, 20, 31, 19, 65, 3,195, 92,169, 94, 9, 49,
-113,255,206, 67,166, 86,121,250,249,167,203, 62,218,163, 57, 19,188,183, 44,185,166,116,222,166, 74,125,191, 33,134,158,185, 94,
- 81,105,104, 57,226,124, 96,149, 78, 56,221, 69, 68,225,187, 31,189,228,250,112,228, 48,212, 87,212,198, 90,231, 37,226, 23,154,
- 55, 70,130,180,196,157,179, 7, 60,186,247, 6,155,179,192,163,147,158,210,132, 95, 62, 63,242,120,149, 56, 59,223, 49,236, 95,
-160,195,129,233,234,192, 23,159, 21,210,234, 37,135, 60,131, 95, 49, 14, 51,218,135,101, 45, 55,162,197, 47,137,104,202,160, 19,
-204,222,248, 18, 65, 24, 25,104, 37,208,187, 13,158,138,143, 27,170, 38,142,135,193, 4,116,222,184, 26,136,167,239,122,230, 84,
- 40,213, 47,136,224,158, 68, 67,104,136,132, 5,113, 61,147, 82, 79,105, 19,110, 74,230, 83,151, 68, 99, 32,137, 99, 44, 30,173,
-141,224,237, 82,236,220,218,176,217,109, 68, 81,106,105,168,115,132,174,195,213,129, 57, 57,186, 10, 61, 61,185, 78,116,155,142,
-168, 19,115,234,240, 45, 80, 14, 13, 31,204, 90,220,170, 7,173, 84,239,160, 22,163,138,137,237,253,107, 85,156,170, 21, 99,139,
-238,105,182, 58,140,152,149,187, 15,118,188,245,230,217,255,111,167,121,251, 81,249,135,239,220,162, 44,107, 87,187,120,199,253,
- 72,189,153, 77,151, 36, 66, 11,145,129,100, 5, 66, 53, 64,166, 43,183,144,171, 91, 84,237,130, 28, 95,244, 59,218,204, 98,251,
- 42,237,173, 53,230,121,164,212,140,168,146,171,240,236,233, 21, 93,215,153,243, 69, 12,101,125,107,165,230,150, 63,249, 39,238,
-102,113,242,170, 89, 84, 93,236,126, 98, 25, 38,195,113, 38,207, 71, 67, 80, 87,133,121,132,228,151,239,235, 79, 15,207,153, 43,
-148,105,166, 84,165,169,217, 72,195, 86,104, 71,111,171,236, 60,225, 69,200, 10,117,182,213, 92,108,153,144,149, 57, 22, 82,113,
- 20, 85,142,229,248,138, 73,144,189,218, 84,172,193, 44, 13,154, 48,107, 35, 20, 71,159, 42,163, 40, 20,101,118,183,193, 93, 74,
-112,150,236,153,135, 3,103, 49,227, 31, 60,122,248,123,222,133,197,198,102,135,151,138, 95,130, 3,150, 42,240,182,189, 94,148,
-143,183,151, 47,226,190, 34,209, 97,187,233,133,202,106, 66, 58,181, 11, 95,151, 75, 94, 23,219,148,168,169,202, 87,169,179,224,
- 11, 53,242, 91,109, 74,116, 14,213,106, 23,214, 98, 73,105,234, 22, 21,178,195,123, 12,107, 42,193,198, 70,218, 44,130,209, 41,
- 78,130, 65, 75,104, 36,139,102, 55, 85,120,144,101,236, 47,184,102,169, 89, 96,187, 99,239,156, 41,100, 29, 8, 6,198,175, 82,
-137,222, 68,100, 78,176,253, 48, 54, 70, 12,201,219,180,194,155, 71,190, 45,191,120, 28,120,156, 9,226, 22,177,153, 81,245, 60,
- 49, 38,106, 25,121,126,113,133, 72,100,189,222,208, 5, 71, 43,153,174, 91,113,239,193, 3,250,205, 9,170,149,235,171, 75,234,
- 48,113,247,108,203,131,251, 15,185,255,246,187,188,241,238, 7,228, 44,124,242,233, 47,249,201, 39, 31,243,252,217,149, 85,190,
-209,219, 67,180,128,128, 74,177,195,239,235,223,254, 22,247, 31, 62, 34,117, 29,211, 56, 24,199, 91, 27,227, 52,146, 23, 26, 84,
-244,176, 90,245,156,238, 54,244,169, 71, 85, 88,237,118,156,156,159,176, 89,239,216,118, 61, 77,149,185, 40,119,223,120,135,135,
-247,206, 77,172,184,106, 12,211,145,208,237,208,241,146, 95,252,242, 51,166,209,162, 38,213, 65,169,149,251,247, 31,242,198,155,
-111,114,189,127,193, 48,205,164,184,162,204, 51, 33,194,227, 55, 30,242,248,237, 55, 57,223,109,249,242,139, 39,220, 28, 6,112,
-142,151, 23, 23, 60,249,236, 9,187,147, 19,222,120,248,208,162, 34,155, 26,243, 29, 97,174,133,227, 48,129, 56,110, 14,123,174,
-174, 15,172,214,107,222,120,243, 62,119,183, 59, 82,180, 24, 92,159, 12,189,219,196,115,125,115,195,229,205, 5,157, 19,174,111,
- 6, 78,238, 60,224,229,203, 23,148,102, 23,161, 29,148, 66,173,102,255,203,165, 80,166, 98, 33, 68, 18,113, 98, 1, 45,173,129,
- 20,133, 38, 12,243, 76,201,213,220, 21,185, 46,217,210, 86,124, 58,113, 28,198,137,171,235,145,155,235,137,144,148,247, 62,120,
-204,183,190,253, 53,226,234,156,139,203,198,112,113,193,148,143,236,247,123, 92, 16,178,216,228, 39,186, 0, 45, 82,242,196,156,
- 51,165, 88,219,100, 41, 83, 19,101,158, 72, 33, 17,250, 13,222, 11,222, 55,164, 21,234, 88, 40,181, 49,204,149, 86, 44,244, 36,
-136, 17,186, 42,153,237,106, 69,140,129, 92, 7,218, 56,210,180,177,233, 58,222,125,252, 54,155,211,251,236,135, 61,165, 14, 4,
-231, 8, 18,150,253,230, 66,123,212, 74, 90,237, 16,239, 32, 79,148, 90,205, 97,239, 3,190, 58,166,185,240,226,122,230,234,242,
-200,116, 28, 9, 73,105,165,216,254,181,217, 36, 32, 72, 71, 21, 19, 97,238, 54, 39, 60,126,244, 62,247,222,190,199,174,131,221,
-249,142,187,247,119,196,216,179, 61,181,204,129,146, 11,115, 61, 82,134,145,235, 43,161,210,232, 92,227,221,119, 31, 50,236, 51,
-151,215, 7,180, 89, 32, 84, 30, 6,139, 68, 13, 88, 66, 90,131, 78, 4,233,108,218,103,145, 79, 35,213, 53,242, 40, 16,101,153,
- 52, 57,230, 6,173, 6,154, 88,211,161,179,185, 85, 66,168,212,217,138,225,220, 34, 41, 89,204,110,157, 10,165, 85, 60,149,144,
- 28,121,202,136, 55, 1, 75,238, 34,174, 90,100, 98,110,133,218,175,104, 56,116,188, 49, 93,207, 18, 88, 37,193, 88, 30,165,245,
-244,201,145,107,123, 5,190,114, 41, 26,251,125,242, 16, 77, 91,164, 96, 33, 81, 75, 98,162, 79,150,119, 33, 44, 46, 26,167,198,
-204,144,136, 72,193, 7,155,136,136, 95, 48,204, 18,120,240,240, 14,235,205, 63, 26, 18, 35,127,226,221, 45,231,246,237,123, 16,
- 22,129,163, 88,136, 85, 23,201, 83,163,149,194,170, 75, 60,124,120,151,237, 58,177,234, 35,171, 85,100,213, 7,186,206,147, 58,
-139,244, 77,157, 39, 38, 79, 74,129,152, 2, 33,121, 66, 23,240, 41,154, 35,164,143,184, 62,209,188,241,249,117, 17, 25,167,205,
- 22, 77, 9,245,129,134,163,122, 79, 21, 71,105,194, 92,117, 17,167,218,159,167,220,152,138, 50,230,202, 48, 21,142, 99,230, 56,
- 20, 14,199,204,229,229,129,195,225,102, 9,137,177,216,220,225, 48, 49, 28, 38,198, 97,102, 60,142,204, 99, 38, 79,153, 60,216,
-223,149,113, 34, 79, 19,101,154,152,198,153, 60,204,148,188, 64,188,166,153,121, 63, 89,128,202, 52, 50, 30, 7,190,120,250,146,
-227,225, 37,195,184, 71, 71,115, 33,169, 52,230, 99, 5, 95, 76, 48, 78, 32,123,135,132,138,159, 7,142,181, 18,187,142, 24, 3,
- 55,147,208,234,132,159,149,222,245, 20,153, 8, 90,168, 33,224, 93, 68,115, 37,165, 70, 17, 75,127,108, 82,104, 89,240, 45, 17,
-214,188,178,161, 91,127, 42,212, 92,120,127,151,240,247,238,220,249,189,175,124,204, 86,233,249, 37, 64, 64,151,165,138, 91, 46,
-114, 67,163,187,165,250, 90,112, 38,134,144,166,213,102, 35, 95, 28, 34, 16, 23,155, 69, 91, 58,111,135,113, 98,197,155, 71, 92,
-150,125,141,143,158,162, 38,124,233,130, 91,252,204,242,138,191, 87,155,121,149,253,146,115,126,235,163,111,230, 91,179, 31, 8,
- 11,185,112,222,189, 10,163, 65, 27,205,217,206,188,137, 91, 20,161,246,189, 53,111,150,175,144, 28,174, 45, 69,155, 26, 98,209,
-214, 4,142,232,108, 52, 85, 53, 24, 49, 46, 57,186,219,157,129, 87, 60, 1,137, 66,155,117, 17,166, 4,188, 26, 4, 55,168,199,
- 5, 79, 86,240, 5,250, 24, 89,245, 61,215,135,107,166,169,145,130,178,233, 87,228, 54,146,235,136,107, 22,247,233,125,135, 91,
-245, 4,223, 49,207,215,252,228, 7,223,229,217,139, 47,233,200,196,205, 57,119, 30,172,248,232,251,127,192, 39, 95, 92,153,149,
-199, 69,250,110,133,119,150,231, 29,119,119,248,215,255,205,191,198,223,248,247,126,151,127,229, 47,254, 38,191,243, 23,255, 89,
- 90, 59,242,135,223,255,163,165, 42,206,228,178,176,197,113, 84,189,253,157, 56, 98,234,185,123,231,140,147,205,150,180,218,114,
-126,118,194,246,100,199,189,179,123,156,159,158, 88, 50,143,183,181,138, 79, 91,222, 56, 63,227,217,179, 79,121,118,121,109, 47,
- 74,177,131,135,106, 2,144, 7,143, 31,114,178, 91,115,253,226,146, 90,237,121,115,184, 60,114,117, 24,120,252,246,125,142, 55,
-151,252,224,199,127, 76,189,101,253,151,202, 48, 12,148,150,185,251,232, 17,117,168,140,135, 27,182,155,142,208, 71, 98, 88,209,
-199,142,195,225,136,143,158,225, 56,114,239,238,125,190,246,254,175,112,247,222,150,198, 76,153,103,114,109,120, 15,199,155, 61,
- 47,159, 63,103,200, 51,207,111,110, 24,143, 71, 78, 78,214, 92,223, 92, 47, 74, 91,165,212,106,153, 7, 77,161,154, 37,173,121,
-111, 48, 15,105, 70,137,107,182,218,192, 59,180, 86,230,146,151, 40,219, 74, 94,138, 94, 89, 10, 92,113, 30, 26, 28,110,102,124,
- 16,250, 46,240,248,225, 29, 78, 54,247,120,242, 44,114,125,117,164,140, 95, 50, 92, 31,237,113,168, 21,239, 61,211, 52,113, 51,
-141, 20,173,228,169, 48, 59,103, 36, 69,133, 92, 42,195,176, 39, 32,164,213, 22, 33,225,157,210,106,166,228, 76,169,150,220,229,
-131, 46, 45,151, 91,132,156,134,151,245,253,154, 16,133, 90,143,204,211,136, 84,216, 31, 15, 56, 31,184,119,255, 62,226, 26,195,
-112,164,210,200,181,225, 22,226, 92, 45,133, 24,123,240,137,220, 38,188,152,230, 33, 4, 79,115, 48,207,149,253, 48, 51, 77, 5,
-218, 68,171, 6,132,114, 10,165,141, 54,118, 15,130,106, 33, 74,192,209,241,230,131, 71,124,227, 87,223, 97,155, 44,245,113, 60,
- 58,250,184,229,222,195, 83,186, 46,217,101, 29,149,208, 60,174,235,249,242,249, 37,135,203,145,206, 7,214,169,160,209,115,184,
- 82, 90, 44, 20,173, 76,163, 21,245, 78, 29,109,114,116, 33,176, 94,226,162, 55,201,155,176, 75, 4,207, 26, 23,102, 86,193, 81,
-103,165, 69, 72,161, 26, 18,155,138,235,148,218, 26, 65,133,168, 86, 64, 74,115,116,189,117,191,130, 71, 52, 64,170, 72,140,168,
- 88,226,164, 11,144, 86,167,116, 40, 78, 51,205, 67, 46, 5, 45,141, 46,206,118,234,169, 16,250, 21, 37, 5, 2,141, 30,103, 10,
-229, 26, 72,125,194,225,241,197, 81, 66,199, 92,192, 55, 19, 98, 38, 47, 36,139,207, 68, 59, 72,192, 56,101, 43, 18,156,199, 97,
-185, 12,194, 87,129, 47,174,217,231,199, 85, 79,200,129,212, 7,238,222,187, 99,137,142,127,106,134,186, 48, 13, 35, 85, 43, 39,
-155,142,126,189,250,255, 20, 6,242, 79, 40, 20,156, 13,236,240,206, 62, 38,103,231,255, 60, 84,106,201,156,158,108, 56, 63,223,
-177, 74,193,136,117,157,167,143,206,222,147,197, 23,119,157, 21, 15, 93, 23,232,251, 72,223, 7,186, 62,146,250, 68,215,119,116,
-235,142,180,238,241,235, 53, 85, 77,248, 75,169,196, 46,176,190,123, 23, 86, 27, 92,236,112, 41, 65,234, 80, 31,169, 62, 80,212,
- 81,156, 39,227,153,170,103, 44,194,220, 28, 67, 17,134, 25, 14,147,114, 51, 76, 92,141,149, 23,251,137, 47,159,239,185,188,184,
-102,154,247,104,158,192,121,107, 86,167,138,243, 80, 68,209,172,140,243,136,159, 51,154, 76, 56,222, 52,163,218, 33,185, 89,241,
-138,163,182,153, 90, 50,146, 43, 89, 42, 94, 86, 6,223, 90,157, 48, 14, 35,117,178, 72,239,226,147, 77,151,187,106, 25, 35, 26,
- 77,243, 86,102,188, 20, 82,220,176, 97,143,127,227,222,195,223,179,137,187,162, 8,226,189,237,153,197, 50,201,157, 91, 16,163,
-106,195,234,224,151,174,188,216,206,182,138, 26,182,113, 25,151, 88, 70,136,179,108,245, 96,104,187, 0,148, 96,157,135, 44,244,
-119,231,109,132, 45,128,107,186, 16, 74,101, 73,100, 83,164, 54,243, 75, 47, 99, 97,179,176, 45, 57,233,183,164, 87, 7,209,252,
-117,214,121, 53,235, 94,108,231,105, 83, 4,191,116,213, 96,223, 71,173, 95,237, 86,196, 89, 84,167, 44,118, 7, 39,134,135,165,
- 46,150,141,104, 83,136,218,172,144,136,113,169,160, 22,207,169,248, 37, 21,110, 25,205,222, 82,248, 84, 77,184,231,112,172, 16,
- 52, 9,161,239, 57, 59,217,114,115, 99,213,227,148,139,173, 33, 26, 76,211,200,241,120,205,113,216, 83,230,204,189,187, 15,121,
-248,214, 7,156,116, 61, 63,253,225,247,248,201, 71, 63, 7, 63,242,131, 63,248,125,254,222, 63,248,152, 42,222,172,108,181,154,
- 37,135,198,155,239,125,131,191,254,215,255, 29,254,202,111,127,139,144,143,180, 92, 72,171,200,183, 63,248, 26, 95,252,252, 83,
- 62,254,252, 57,125,215,225,150,112, 17, 89,170,191,172,134, 33, 61, 57,221,209,167, 68,242,145,213, 58,178, 57, 93,115,122,114,
-138, 95, 39, 84, 39,202, 84, 89,173, 55,148,220,112, 84,206, 78, 2,159,127,249, 57, 95, 62,187, 96, 86,179,104,120,111,235,142,
-171,235, 27,198,121,224,195, 15, 62,100,188,222,115,152, 7,162,120,136,198,236,127,231,237,119,121,254,236, 25, 79,190,120,106,
- 19, 18,103,156,249,224, 28,227,116,196,105,228,124,119,135,156,175,217,110,118,164, 16,217,238, 54,156,110, 18, 55,251, 61, 95,
-251,214, 55,113, 14,162, 68, 30, 62,184,143,115,141,225,120, 88, 82,164, 50,109, 86, 91,187, 44,248,201, 86, 32,151,198,139,139,
- 11,166,121, 88, 2,100,228, 85,180,172, 44,153,187, 90,219,226,107,109,212, 60, 81,170,208, 90,161, 21, 37, 3,185, 54,234,156,
- 13,201, 41,183, 92, 3, 43,134, 83, 88, 89,119,228, 60,234,205, 94,184, 90,117,164, 92,217,187, 13,115,233, 56,188,120, 66, 29,
- 38,174,135, 75, 52,170,217,204, 71,165, 58,115, 86,152,232,212,190,158,175, 22, 45, 90,138, 64,203,196, 85,194,117, 61,205, 57,
-106,153,208, 82,240,106,162,189,213, 42,226, 83,135,230, 66,211,178,240, 30, 50,206,175,209,172, 68, 42, 53, 15,140,227,104,244,
- 68, 96,156, 38,142, 55, 47,233,227,154,199,247,222, 32,109,119, 28,199,137, 50, 15, 70,121,140,129,184,218, 81,107,163, 21,211,
- 76, 88,225,188, 36, 32, 10,139,205, 84,192, 69, 74, 81,124, 19,240,141, 86,236,146, 79,190, 55,151, 73,244,172, 87,103,124,240,
-222,187, 60,122,123,205,137,131,126,221, 35,210, 49,221, 20, 36, 57,124, 52, 36,109,201, 7,134, 23, 35, 97,157,216,110, 18,222,
-141,252,209,143,126,193,207,158, 28, 56, 54, 97, 40, 19,174, 10,142,128,143,142, 94,160,120, 15, 97,178,137,139, 23, 66,112,144,
-193, 37, 33, 38,135, 74, 38,108,182,172,162, 51,187,225, 40,120, 85, 36, 8,248,104,107, 7, 93,194, 63,234,104,188, 74, 73,134,
- 39,110,133, 58, 91,102, 54,193,211,240,120, 85, 66,231, 8,120,106, 19,198,113,228,168, 51,177,235,240,165,177, 90, 34,132,189,
- 23,134, 86,105,213,206, 17,170,199,167,158,232, 50,181, 75, 48, 10,205, 55,226, 73, 79,158, 42,189, 23,168,149,169,206,164,149,
- 35,182, 4, 78,137,206, 10,169, 92, 33, 32, 68,187,237,141,205,239,150,117,232,114,195, 58, 48, 43,162,179,136,223,251,247,238,
- 16,187, 63, 61,204,101,174, 6,158,105, 37,115,178, 93,189,150,175,105, 59,117, 24,134, 9,167,149,221,166, 39,252, 99,192, 51,
-255,184,226,193,203, 87,197, 66,116,208, 7,161,168,144,167, 25,218,196,195,187, 39,156,156,110,217,116,158,117,231, 89,117,158,
- 62, 57,250,228, 88, 37,199,186, 15,175,222, 55,235,192,122, 19,217,109, 34,219, 77,100,187, 77,108,182, 29,155,147, 53,219,179,
- 53,103,103, 59, 54,247,206,193,175,201,227, 68,153,247,104,173, 72,177, 9, 51, 9, 90,245, 72, 41,100,173,140,197,138,150,178,
- 76,164,167,155,140,110,236,130,214,227, 68,213, 70,231,122, 74,107,204,205, 33, 19, 84,205,196, 97, 92, 86, 41, 29, 77, 7,252,
- 58,209, 74,161,150,137,166,182,146,118, 90,169, 42,228, 16, 41,120,158,239, 39,252,131,135,143,126, 79,124,131, 5, 98,128, 10,
- 34, 13, 13, 54,246,241, 75,104,189, 56,143, 91,168, 73, 44, 59,245,102, 24, 55, 68, 45,198, 77,157, 45,101,162,247,198,152,118,
- 30, 89, 40,107, 96, 59,110, 83,181, 11, 81,236, 42, 85,183,236,182,151,110,217,246, 45,183, 9,108,206, 8, 87,118,163,211,165,
-100, 0, 19,167,120,231, 89,210,210, 9,161,179,156,246,219,112, 0,189, 77,150,211, 87,208,156, 16,172,139, 44,185,190, 42, 96,
-168,203, 62,122, 25, 12, 56,231,240,205,170,251,234, 45, 59, 86,154,197,192,246, 97, 5, 98, 60,103,156,154, 74, 60, 23, 27,139,
-168,249,187, 69, 45, 18,182,121,251,206, 99,178,180, 53,145, 64, 31, 60,187,110,203,241,230,154,253, 97, 98,125,114,143,147,211,
- 83,202,156,209,133,254, 20, 4, 92, 43,236, 47,159, 50,220, 92,225,220,204,151, 55, 95, 16,107,224,242,211, 79,249,222,143, 62,
-226, 80,213,210,223, 98,183, 88,158, 70,170,235,249, 15,254,195,127,159,127,233, 55,222,101, 62,140, 38,110,162, 80,242, 64,234,
- 18,239,191,243,152, 63,252,238,143,185,216,143, 70,156,115, 1,109, 13,159, 18,235,110,197,233,110,205,106,189,166,239,123,182,
-119,206,217,116,137,147,245,134,232, 60, 85,148, 85,218, 18, 67, 36,173, 12, 79,185, 91,159,210,230,107,126,241,249, 23, 12,199,
-197, 42,229, 29,206, 69,212,119,132,224, 56, 94,223,176,219,110, 24,246, 3,199,113,178, 75, 59, 38, 84, 51,243,112,228,229,243,
-231,220, 28,167,197,190, 40, 75,154,158, 51,251, 84,115,220,191,123, 70,169,149,232, 2, 83,206,104, 16,214,235, 53,167,119, 31,
-208,117, 61,165, 78,116, 41,242,232,205,251,160, 19,151, 87,215,148,102,118, 50,113, 1, 23, 87,182,167,155, 71,139,188,117, 11,
- 61, 80,172, 56,149,224,113,237,118, 39,119, 75, 68, 52, 45,137,162,139,144,208,166, 69, 45,207,214,209,171,233, 21, 68,160, 58,
-240, 75,177, 43, 46,210, 69, 79, 72, 43,206,118,167,196,224,153, 74, 97,157, 34,253,250,132, 59,247,191, 73, 42, 55, 72, 61,240,
-242,230,134,161, 14, 52,223, 8, 18, 8,190,103, 46,163, 37,127,249,158, 90, 26, 18, 10,173, 20, 90,109, 28,231,129, 76, 37,208,
- 3,182,114, 74, 18,160,201,130, 29,134, 85,220,210, 66, 48,194, 84, 21,155, 76,137,199, 57,235,234,109,213, 84,185, 26,110,152,
-234,104,136, 85, 21,246,135,145, 74,227,222,105,207, 91,247, 31,208, 66, 98,191, 63,146,231, 3, 82, 27,158,176, 28, 86, 19, 46,
- 56, 75,253, 90, 82,193,196, 71,156, 4,212, 11,173,216, 84,171, 5,112,165, 16,125,193,119, 9,151, 2,181, 9,235,245, 25,223,
-124,247, 3,222,120,180,230,116, 19,241, 93,226,238,227, 59,244, 39, 29, 55,121,230,217,231, 3,135,171,129,221, 46,224, 93,165,
-230, 9,215, 43, 41,118, 28, 94,222,240,252,122, 70,214,103,180, 2,105,213,209, 26, 68,159,169, 62, 83,112,180,121,198, 53,165,
- 54,143,139,202,170, 91, 89,144, 71, 89,130,163, 16,242,208,200,227, 76, 1,124, 85, 92, 92,118,182, 65, 40,206,145, 39,195, 44,
-207, 75,161,226, 92,180,159, 31,136,146,168,206, 25,158,121, 65,111,149,102,175,213,216, 10,213,173, 88, 57,143, 91,214,146,246,
-123, 90, 44,104,206,163,179, 96,112, 96, 65,235,140,111,106, 36, 48, 28, 73, 2,179, 36, 18,230,164,193, 37, 86,106, 83,147, 42,
- 14, 23, 77, 75,129,218,227,222,197,101,175,120,203,131, 23, 67,252,138, 55, 59,169,147, 96, 93,188, 15,172, 87, 43,238, 63,188,
-135,127, 13,158,242, 97,170, 76,227, 4,173,178,123,141,212,183,220, 96, 56,152,166,100,187,219,252,169,227, 97,255,161, 88,212,
-169, 48, 30, 71,188, 86,238,156,159, 32,225,159,236,215,255,147,133,194,171,105,195, 82, 52, 68, 7,105,249,184,246, 48, 52,225,
-234,226,134,121,191, 71,107,163, 46,113,229,180,106,141,132, 42,157, 4, 82,242,148, 42, 28,243, 72, 63,117, 56, 63, 49,215, 70,
-200,137, 16, 60,210,102, 74, 7, 18, 35,169, 22, 38, 21,208, 25, 47, 21,122, 53,155,236, 48, 17, 75, 97, 21,149,140,129,164,214,
- 33,152, 59,171, 63,129,210, 51,177,231,205, 93, 36, 32,149,214, 22, 53,187,242, 85,184,198, 34,122,168,206,246,228,210,110, 19,
-208, 60,117, 25,177,138,103, 9,113, 97, 33,204,153,106,188,136,169,233, 75,201, 11,222,193, 66,223, 45,245,205, 81,203, 45,221,
-199, 68, 20, 6,112, 84,195,132, 98,124,111, 19, 68,120, 16, 37, 44,137,106,181,153,154,182, 52, 8, 65, 22,240,141, 9, 55,112,
-186,188,108, 28, 41,154,160,164, 84,161,121, 33, 74, 51, 69,120,185, 37, 80, 41,209,123, 52,207,228,214, 72,105,189,112,239, 61,
-141,108,244,181,165, 24, 72,193,178,142, 91, 40,102,199, 41,118,176, 78,210, 94, 69,134,118,234,104, 62,152,136,132,102,236,104,
-129,190, 24, 60, 4, 87,169, 8,173,206, 28,167,137, 89, 60,247, 79,206,185,127,255, 46,190, 21, 94, 94, 94, 44, 63, 67, 88, 58,
- 72,120,118,241,140,227,120,195,152, 3,111, 60, 56,227,234,242,151,220, 76,121, 17, 31,217,129, 30,165,210,210, 61,222,122,251,
- 49,127,247,239,252,159,252,133, 63,243, 87,145, 78,105, 35,168,244, 56, 95,201,121,224,253, 15,222,224, 27,239, 61,230,151, 95,
- 94,130,119,196, 24,217,222,221,176,233, 35,193,245,156,158,173, 72,146,232,226,142,176, 78,244,193,130,115, 92,170,132, 57,130,
- 91,211,111,173, 11, 95,167,153,249, 40,252,252,249, 37,115, 73, 60,120,227, 45, 54, 65,105, 20,230,106,228,189, 54, 79,204,165,
-240,211,143,127,201, 42,120, 66,240,212,172,120, 31,152,134,145, 63,254,232,151,134,127,245,203,220, 70,156, 9, 22,197, 30,243,
-237,201, 9, 5,232,186,181,189, 32, 80,186,117,199,234,164,167,140,214,121,237,118, 27,152, 29,201,247, 92, 92, 63,103, 56, 78,
-116,125, 34,246,137,221,106,199,113,158, 8,105,197, 80, 39, 14, 7,131,121, 36,239, 45, 80,168,216,184,221,185, 64, 91,124,254,
-141,106, 47,226,106, 59,157,134,195,181,140,182,180, 68, 10,219,138,196, 2,123, 20, 45,183, 98, 79, 80,173, 52,223,115,178, 90,
-177, 94,119, 60,136, 43,126,249,188,114, 28, 10, 97,119,159,162,153, 33, 31, 57,150, 66, 0,238,164, 29, 51, 51,199,170,108,188,
-176,233, 18, 67, 83,186,170,212, 62, 49, 79, 25,170, 50,101,168,121, 38, 4, 15, 8, 69, 43,169,121,112,145, 20, 3,115, 27,233,
- 83,178,248, 98,245,108, 54, 59, 92,218,114,115,245,153,241,206,117,109, 28, 6,154, 77,210, 74,101,156, 27, 45,143,236, 54, 74,
-151, 86,236,175, 95,242,211,159,141,244,187,103,172, 54,107, 30, 61,120,200,179,103,149,113, 26,200, 53,219, 52, 14, 72, 98,108,
-247, 44, 13, 23, 32, 16,240,113,133,150,153,230,102,187, 80,117, 54, 6,128,243, 6, 78, 17,193,199,196, 59,111,191,207,183,254,
-236,123,108,182, 51, 93,220, 48,143, 19,211,113,198,247, 59,238,223,201,148,242,156,151, 47, 43,233,163,137,247,191,117,135,185,
-247,228,171,153, 43,119,224,103, 31, 95, 80,226, 9,109, 1,158,232,172, 20, 13,104, 25,168,218, 40, 89,204,189, 35,158,216, 59,
- 92, 76,150,245, 80,133, 89, 29,157,243,100, 49,237, 12, 45, 82,170, 69, 10, 19, 77,217,149, 7,177, 46, 64, 33,250, 74, 8,107,
-152,171, 97,117,151,213,155,186,108, 78,132,206,108,110,178,164, 81,206, 17,210, 42,194,116,131,234, 26,173, 51,138,163,104,194,
-135, 74, 20,143,150,136, 44,214,216,220,102,146,236, 96,101,132,185, 54, 59,198,156,113,162,100,154,157, 85,173, 65,232, 32, 15,
-204,181,177, 9,145, 89,103,124,138,248,232,201,197,198,237, 18, 76, 23, 3,213, 72,155, 62, 24,143, 64,218,114, 17, 57,186,206,
-156, 25,175,197, 26,134,105, 71, 66, 16,124,138,175,237,226,173,165, 45, 77,221, 45,173,244,245,121,212, 91,177,199,181,139,193,
-180, 7,175,249,173, 85,181,228, 68,191,240, 33, 90, 69,130,233,114, 18,129,227, 52,115, 83,141,179,162, 69, 23,174, 64,161,115,
-171,165, 0,152, 8, 81, 16, 58,110, 40, 36,105, 20,102,116, 22, 90,104, 12,110,198,143, 9,131,163, 87, 74, 78,224, 97, 3,148,
-208,147,157,167, 21,197,181,136,151,204, 73,238,249,173, 15,215,132, 82,111, 35, 49,205, 59, 29, 92,176,113,206, 66,248, 81,113,
-214,141,160, 20, 5, 89, 70,243,186,168,203,189,243,136, 19,156, 26, 76, 85, 4,196,235,146,129, 14,206, 85, 43, 6,212, 64, 50,
-246,103,168,232,146, 41,155,161,120, 91,213, 7,135, 22,139, 54,173, 78,241,193, 84,222,218, 26, 78,162,177,169,189,165,206,228,
- 86,137,139,160,163,214, 98,149,113,187, 21,248, 88,122,147, 75, 38, 94,114,234, 17, 7,115,172, 72,109,104,109,168,171,132, 20,
-169,185,161,217, 32, 34, 57, 52,156, 43, 84, 21, 74,117,132, 20,200,106,151,121, 34, 82,165,124, 53,122,172,197, 88,240,197,155,
-186,183, 22, 19, 26,181, 70, 11,245,149,141,193, 45, 79,214,166, 80,231,153,195, 52,227, 37,112,125,241, 37,219, 62,176,234, 54,
-220,121,176, 33,250,153,139,103, 47, 40,179,210, 42,164,109, 79,215, 37,198,195,200,243,171, 47,185, 57,238, 77, 3, 80, 61, 77,
- 27,181, 21,142,227,204, 95,250,151,255, 10,127,227,223,250, 29,254,227,255,232, 63,225,191,254,239,223,228,223,248,221,223,160,
-205, 47,237,178,242, 43,132,202,122,115,202,155,111,158,177, 93,117,108,182, 91,250,205,134, 62,117, 4, 47,172,214,103,220, 59,
- 59, 33,117,194, 60, 52, 66,100,201,225,246,140, 83,195,213, 21,226,102,110, 14,141,243, 7,111,113,156, 47,248,228,243, 79, 57,
-142,123,186,126, 75, 20, 37,172, 34,226, 58, 98, 93,146,238,216,224, 41, 92, 29, 39,168,158,211,221, 57,234,205,215, 61, 28, 54,
- 28,143, 55, 12,243,180,224, 44,141,182,213,128,205,106, 69,153, 27,167,247,206,113, 17, 43, 19, 23,123,204,219,239, 60, 32,120,
-225,201,103, 7,162,143,132, 24,160, 54,106,221,115,125, 24,184,222,103,118,222,115,186, 90,179,223,239,153,139,210,175,122, 54,
-221,134,195,245,136, 56,115,110,136,150,197,146, 9, 97,233, 88,231, 86,209,234, 76, 8,154, 26, 14,191, 28, 47, 14, 9, 11, 97,
-176, 42, 42,142, 16, 5,173,246, 60, 22, 39, 84, 10,222, 41,201,153,112,165, 41,212, 24, 73,177,227,252,206, 57, 95,127,252, 14,
-194, 53,211,116, 96, 62,238, 9, 10,153, 76,155, 28,104,102, 63, 93,161, 62,161,185, 49,187,138, 82, 81, 81,124,234,201,135,103,
- 84,173,116, 97,101, 97, 36,197, 67,202, 54, 61, 19, 1, 2,213, 45, 93,103,243, 76,181,224,196, 19,154, 50,140, 25,226,140,239,
-182,104, 25,137,209,132,157, 78, 61,121,174,220,204,123,242, 58,115,190, 59,101, 32,115,249,242, 11,226,133,227,108,123,138,119,
- 17,200, 86,176,228,189,237,255,101, 77,194,155,127,127, 54, 81,102,220,217,212,199, 35,196,206, 47,171,141, 64,201,182,199, 68,
- 29,111,220,127,131, 63,251,225, 59, 60,184,151,104,206, 51, 31, 70,194, 90,105, 67,195,249, 1,239, 2,119, 79, 87,108,210, 76,
-222,143, 92, 92, 29, 73, 93,194, 15, 35, 63,254,222,199, 12,242,136,205,170,163,181,153,169, 78,228, 22,236,119,132, 80,230, 72,
-214, 3, 94,130,141,207, 39,243,249,151,228,128,132,164, 66, 43,166,159, 17,175,196,149,167, 19, 33,207,129,178, 63,226, 66,197,
-151,206, 28, 0, 49,162, 90,168, 46, 27,222, 55, 66,161,210, 37,193, 31,148,161, 22,124,216,154, 18, 94,102,146,223,144, 91,227,
-112,172, 4,233,205,198, 43,129, 22, 65,114,198,109, 78,209, 92,200,243, 72, 73,158,208, 42,107,191,161,246,150,177,221,138,224,
- 93, 36, 72,101, 82, 79,205,133,160, 17,223, 65,245, 66,118, 43,220,148,169,179,144,250,104,150,219, 90,140,203,224,154, 21,154,
-152, 32, 80, 17,122,111, 86, 67,154, 16,131,195, 5,177, 46,240, 53, 80, 98,116,153,158, 42, 16, 92,120, 45,157,255,171,139,113,
-153,134,134,232,241,225,117,126,221, 37, 32,212,128, 29,175,221,206,102, 96,155,130, 50, 67,173,203,207,209,152,114, 37,196,192,
-161,152,112, 90, 66,134, 49, 51,207, 16,189,154,102, 36,230,197,142,171,180,125,128, 20,112,195,204, 88, 3,174, 57, 98,191, 1,
-181,148,196,185, 40, 89, 70, 82,176,149,202,152,103,230, 32,168,172,144,146, 49, 14,236, 37,244,145,149, 95,113,231, 36, 18,236,
-146, 50, 10,154,107, 88,174,249, 50,242, 86, 23, 64,218, 50,130,183, 49,180, 51, 37,140,137,224,154,163,184, 37,110,208,142, 74,
-188, 51,241,156, 9, 88, 48,239, 57,246,249, 94,196, 84,142, 56,124,109,228, 10, 36,227, 50, 59, 28, 81,149, 64,179,124,118,183,
-168,203,139, 67,164, 25,127,190,217,232,255,150,111,220,100, 17,185, 57, 90, 7,173, 37, 0, 0, 32, 0, 73, 68, 65, 84,181,128,
- 17, 85, 43, 56,170, 41,207, 99,180,197,126,203, 74,231, 29,109,174, 11, 1,206,212,242,165,154,216,207, 97, 48, 20, 22,171,157,
- 69,189, 58, 84,138,141,249, 67,162,169,225,116, 53,204, 84,111, 12,102, 95,149, 37, 6,198, 58,241, 86,109, 20,182, 0, 92,154,
-131, 64, 38,164, 14,167,112,117,189,231, 48,102,130, 83,142,195, 5,191,248,197,145,211,237, 29, 30,127,248, 29, 86,238, 72,144,
- 45, 58, 93,113,117,179,103,183, 10, 92, 13,151,212,234,168,217, 83,202, 18,153, 42, 48,205, 51, 89, 39,136,107,126,235,207,255,
- 26,143,238,157,240,239,254,219,255, 42,255,233,223,252, 47,249,230,215,223,227,215, 62,188, 99,233, 64, 82,145, 84,248, 31,254,
-187,255,133, 31,254,236, 37,247, 31, 60, 98,189, 53, 59, 93,136,107, 86,155,196,157,237, 25,221, 18, 80, 83,251, 98,114,200, 34,
- 72,128,121,170, 56,169, 22, 57,171, 6, 5, 9,113,203,201, 54,146,107,101,179,181, 9,135, 91,121,218,156, 23,123,160,141,123,
-178,192,102,221,211,170,163, 95,119,172, 86, 43, 27,251,215,130,211,198, 48,205,212,150, 49,183,124,228,249,151, 95,240,236,249,
- 5,105,189,226,237,199,239,194,152,185, 57, 94, 50,251,138,235, 18, 15,239,156,112,117,145,201,211,115, 66,178, 32, 19,239, 29,
-195,254,200,241,250, 96, 29,137, 4,174, 15, 19,215,215, 19,253,122,205,170,235, 89,199,192,254,230,200, 84, 50,226,155, 41,162,
- 39,187,148,235,162,139,208,220,150,199,123,217,125,234,226,149,149, 37,157,173,154,164, 92,212,224, 73, 86,213, 89, 65, 27,128,
-154, 71,242, 56,146,250,142, 20,207,241,221, 41,111, 63,234,185,247,224, 46, 77, 60, 92,239, 57,212,153,218,138,209,252, 98,230,
-152,149, 82, 38, 52, 66, 26,109, 87,236,113,244,226, 56,204,133,185, 57,166, 97, 38,172, 35, 85, 11, 45,219,120,182,238, 51,116,
- 51, 97,115,102,174,138, 58,155,248, 72,108,196, 14, 19,179, 78, 52,241,104, 52,155, 99,151, 18, 55,199,198, 92,192,197, 53,165,
-236, 25,166,202,172, 71,106,131,221,157,173,117,226,173,112,177,191,198,187,136,211, 70,148,196,132, 5, 16,137,131,216,203, 2,
-125,170, 64, 96, 60, 78,102,223, 36, 82,202, 13,186,240,253,155,206,196,212,177,222,221,231,219,223,254,128,135,119, 2, 53, 15,
- 72,218, 17,182,137, 58,220,144,186,200,144,143,228,185,210,110, 10,171, 62,176,125, 99, 71, 19,229,120,113,205, 71, 63,249,152,
- 47,158, 28,120,240,174, 48, 99,232,205,117,234, 25, 71,139, 96,106,100,122,167,168, 70, 32,226, 36,227, 26,116,201,227, 74,164,
-137,169,248,171, 11, 86, 4,151, 6,117, 79, 76,145, 90, 12, 77, 85,115,163, 53, 76,172,234, 2,209, 37,114,206,136,175,144, 61,
- 85, 6, 52,158, 32,201, 17,202,132,182,202,218,217,128, 86,104,196,148, 8,106,209, 79, 69, 10,171,174, 67,139,167,232, 1, 61,
- 14,148,176,195,215,105,193,180,122,142,211,136,204,214, 73, 55, 95, 64, 51,181,118, 36,105, 16, 3,197, 9,122, 44,172, 59,133,
-212,113,116, 19,147,203, 72,117, 4, 85, 92,178, 29,188,163, 17,156, 32,165, 34, 62,217,185,218,204, 50,167,162,148,232,232,220,
- 98, 21,126,141, 93,175, 69, 39,155,254,228,245,229,145,155, 32, 59,152,125,228, 53,195, 97,108, 77, 17,156, 55,129,215,107,124,
-155,155,157,143, 65,148, 44,144,197, 40,167,177, 69,219, 41,104,193,175, 61,189, 58,142,162,248, 58, 35,181, 48,212,129, 92,215,
-108, 54, 29,109, 62,208,218, 4, 98, 9,140,204, 7,138,243,224,143,180,220,168,179,163,134, 70,114, 27,114,174,116, 65,152, 21,
- 43, 16,226,113,185,183,122, 40,153,166, 35, 69,132,126,115,138,127,240,232,141,223, 67,219, 34,114, 91,174,102, 23, 32, 57,164,
-222,238, 24,150,252,239,101,203,232,196,198,129, 62,121,115,248,139,224, 2, 54, 98, 8,182,191, 54, 75,155,121,239, 4,135, 19,
-143,119,138, 95,176,178,186,140,204,157, 46,140, 2,220, 2, 65,176,104, 82,109,166,252,101,193,119,130,217,224,104,106,188,234,
- 80,173, 94,119,118,144,208,254, 68, 2,156,115,248,206,219, 5, 83, 44,215,214, 56,181,205, 4, 50, 46, 44,158,198,219,157, 73,
- 88, 18,202, 44, 81,203,133, 64, 90,212,251,117, 33,198, 53, 95, 80, 39,139,133,105, 65,216, 86,204,215,237, 29, 18,189, 41, 93,
-197, 49,151, 74,117, 86,213,182, 37, 21,206,185,202,211,207,159,241,236,197, 53, 62, 58, 78,118,231,156,173, 31,208,218,132,234,
-192, 73, 92, 33,234, 97, 30,169,170,164,212,113, 60, 76, 72, 80,124,232, 56,204, 35,243, 92, 88,175, 79, 8, 41, 45, 54,156,153,
-171,195,145,127,230,215,255, 28,239,255,202, 91,140,151,207,249,175,254,214,223,230, 47,252,214,111,178, 91, 69, 82, 90,241,195,
-239,254,136,255,236, 63,255,111,200, 97,197,118,187, 38,198, 53,235,179, 29, 15, 79,239,112,114,122,143, 62,118,172, 87,119,108,
-135,167, 10, 49,208,197, 21,173, 20, 35,168,137, 51, 87, 64,241,108,214, 15,145,122,224,197,211,207,241,225,132,243, 7,111,154,
-166, 65, 3,226, 2,109,177, 27, 74, 19,144, 14,159, 2, 93,151, 8,189,103,219, 71,166, 92, 64, 3, 49,117,248, 85, 36,117, 61,
- 15,238,159,243,224,238, 93,190,253,237,175,241,222,219, 15,184,188,154,120,248,198,125,198,121, 79,109,153,214, 60,121,158,120,
-250,244, 37,159,127,250,140,225,184,103,127,125, 99, 94,241, 98,185,226,235, 77,207,163, 55, 31,113,216,143, 52,205,244,171, 21,
-181,121,130,135,245,106,197,156,103,210, 42,146,194,114,104, 59,243, 13,123,181,200, 83, 83,109,203,171, 64, 33,241, 86, 45,186,
-206,227,212,225,177,120, 94, 17,219,154,106, 83,188, 40, 97, 73, 47, 20,103,249,231, 78,133,232,123,250,245,154,179,243, 29,247,
-183, 59, 70, 45, 28,175,175, 25,181,226, 59,200,199, 3,109, 46,204,146,209,197,130, 85,106,198,135,255,135,182, 55,251,217, 44,
- 93,239,179,174,251,153,214, 90,239,251,141, 53,116,119,245,220,187,123, 15,246,182, 29, 27, 59, 78,136, 29, 12, 73, 8, 81,144,
- 37, 44,132,132,196, 25,199, 8, 33,132, 34,229, 0, 41,127, 0, 39, 28,240, 15, 16, 14, 16, 39,136, 0, 10, 4, 98, 99, 67,148,
- 96,236,108,199, 99,188, 71,247, 92,213, 53,125,195, 59,172,245, 76, 55, 7,247,170, 50,226, 0, 33,165,220,210,214,150, 90, 91,
-187,190,170,250,190,247,121,158,251,254,253,174, 43, 17,124,180, 0,164, 79, 28,110,111, 89,142, 59, 78,166, 13,170,129,146, 59,
-221, 53,186,216,197,212,187,132, 23, 71, 84, 71,107,246, 58,243,109, 71,106,207, 56,148,138,170, 99, 51, 94,224,227, 6, 56,114,
-123,253,152,221,254, 96,191,135,124, 52,110,131,247,204,121,230, 56, 55,180, 41, 49, 57, 82, 26,240, 18,209, 94, 44,196, 21, 55,
-136, 90,238,193,201, 11,168, 81, 66,240, 44,189,217,170, 64, 42,186,190, 44,130, 55, 61,234,233,230,130,175,191,243, 33, 63,251,
- 51, 31, 50,109, 6,150, 93,161,177,152,145,173, 41, 75, 41, 28,218, 66,185,186,229, 56, 87,230,172,180,154,241,146,249,238,159,
-124,193,199, 15,111, 24, 46, 94, 39,197, 17,233,144, 38, 71, 74, 9,233,118,233, 4,144,168, 12, 65,104,210,104,117, 96, 76,145,
-105,154, 0, 79,213, 29,158,192,228,170,213,200, 94,242,191, 59,110,113,204,174,219,115,174, 29,169,106, 93,247, 10,244,185,153,
-149,145, 64,211,142,107,144,139,233,118,189,179,116,123,113, 16,182,142,208, 26, 75, 22, 52, 84,194, 52, 64,235,148,158,209, 96,
-220, 4, 45,107,182,192, 21,131,171,168, 18,233, 36, 23,233,169,211,186,224,153,144,120,100,220, 52, 12,137,224,153,162, 49,227,
- 75, 83,130, 40, 75, 7,167,142,136,208,162, 39, 34,248, 24,192,187,151, 59, 96, 69,236,243,199,121,130, 15,196, 16,185,115,247,
-130,205,171,176,179,173, 22,181, 86, 11,131,119, 76,219,233,149, 17,217,142, 75,165, 46, 11,211,240,234,172,111, 38,114, 49,157,
-235,178, 44,108,166,240, 74, 44,117,255,111, 13,237,227,231, 51,135,171,167,148,188,179,246,132, 4,202,210, 40,197,234,143,189,
- 43,245, 8,157,136,120, 33,183,206,210, 26, 18, 6, 92, 25,205,204,232,102,230, 5,154, 8, 65,130,105, 89,203, 45, 58, 57,198,
-109, 34,208, 81,153,104,165, 51,210,240,174, 18,186,153,119, 11,130,139,142,228,148,216, 61, 91,132,127,233,235,247,240,247,238,
-222,251, 59,246,218, 93, 75,254, 98,251,159,222,186,133,194,212,161,110,229,187,175, 73,116,231,156,109,195,157,137, 87,252,106,
-191,145,254, 34, 81,110,243, 15,197,108, 66, 86,181, 88,255,253, 58,216,236, 65, 94,214, 0, 76, 45,104,246,166,214,214,208,222,
- 26,174,107,235, 10,192,173,155,119,113,240, 34, 59,135,183, 3,190,171, 5, 83,172,150, 7,193,123, 68, 34, 62, 24, 83,219,252,
-224, 74,243,130, 11,198, 74, 86, 20, 17, 83,132,118, 21,188,183, 67,222, 39,103,154, 72,111, 41, 87, 26,184,232,112,218,108, 12,
-235, 60, 78, 59,165,218,110, 91,181,211,106,195,249,128, 11,194, 24,116,221,181, 43, 97,237,209, 35,194,224,148, 47, 62,125,200,
-237, 92,217,158, 93,242,246,189,183,185,119,255, 1,219, 49,240,244,209,151, 60,126,252,144,153,140,138,245,142,147, 75,148,126,
- 64,196,179,217, 78,180,124, 32, 55, 91,101,108, 54, 19,199, 37,243,111,255, 59,255, 30,251, 47,191,203, 31, 63, 58,240, 23,126,
-230, 91,252,216, 71,239,242,123,223,249,109,254,232,147,231,252,194, 95,248, 25,188, 54,254,238,127,249, 63,112,189,135, 59,119,
- 78, 73,241,132,237,116,193,249,233,134,211, 77, 36,110, 60,225,244,148,160, 19, 50,216, 56,222, 59, 24, 93, 52, 17,208, 16,209,
-144,200,185,131, 87,206, 78, 47,201,135,107,114, 59,218,215,112,187,231,112,125, 69,111, 7, 51,193,169,129, 50,146,143,108, 46,
-238, 49,158,156,226, 37, 49,196, 19, 68,141,211,174,177,145,134,129,237,184,193, 75,231,206,197, 9,239, 60,184,203,183,191,254,
- 77,126,241, 95,254,113,156, 11, 60,253,242, 9, 55,215,207,232,222, 49, 68,143,147, 70, 41,205,194, 42, 49,226, 71,139, 72,230,
-214, 16,113,156,156,140,252,245,127,229,103,120,242,213, 21,215,115,225,244,116,195,241,104,187,198, 33,216, 55,230, 71,239,126,
-141, 52, 78,124,245,232,137,141,228,156,231, 37,231, 42,216,223,163, 15,206,212,194,193,173,225, 47, 97,240,142,232,237, 85,223,
-197, 64, 31,126,237, 28,139, 23, 90,171,150, 73, 9, 17,130, 80,143, 7,188,118, 94,123,227, 14, 58,120, 92, 89,184, 89, 14,104,
- 62,210, 74, 38,171,216, 26, 96,240,196, 6,147,159,236, 34, 65,163,162, 84, 87,241,226,184,190,121, 98,166, 64,159,104,189, 83,
-157,224,188,183,195,219, 71,150, 60, 19, 52, 51,164, 35,155,212,216,186, 91,238,142, 71,168,149,171,217, 16,174, 73, 78,136, 94,
- 57, 30,111,184,189,126, 66, 94, 14,235,222,215, 20,171,189,219,106, 72,123, 35,183, 66,206, 21,167,209, 90, 31,221, 38, 47,151,
-155, 75, 54,103, 39,244, 82, 86, 32,137,193, 61,124, 24,240,206,190,215,157,116, 68,138,249, 17,154, 50,166,137,119,223,127,151,
-143,126,252, 45,238,158, 15, 4,175, 16, 7, 66, 21, 27,209, 15, 66, 61,236,169,173,208,155,163,123, 97, 68, 56, 30,103,126,248,
-201,103,136, 75,252,216,183, 63, 96, 57, 2, 58,216,207,127,114,244,172,108,226, 64,150, 2, 52,130, 14, 44,125, 65,213, 96, 37,
-154,196,124, 3, 52,130,235,248, 14,139,218,228,176,101,251, 92,147, 22,112, 4,156,247, 56, 47,212, 94, 17, 31,128,133, 54, 91,
-251,193,181, 74,118, 86,207,213, 94,145, 20, 94,110,123,147,155,112,201, 49,186, 83,186, 95, 39, 57, 78,144,210,113,154,172, 13,
-227, 59,193, 25,191,157, 94,241, 93, 24, 24,240,154,112,174,211,210, 64,216, 12,180, 89,241, 33, 83,123,162, 57, 91,177,164,232,
-201, 81,215,252, 80,164, 20,197,111, 70, 38,177,105,154, 75,230, 75,183,139,166,125,166,234, 58,113, 18, 28,193, 5,156,115,140,
-105,226,242,206, 57,195,248, 47,174, 26,205, 77,201,115,161,151,182,122,212, 95,141,190,180, 43, 28,143, 25,109,149,113, 72,175,
- 44, 81,111, 23, 17,229,120,152,169,101,225,116, 51,188, 50,247,251,255,243,162,115,245,228,192,113,255,156,222,102,131,177, 85,
-165, 99, 65,236,118,108, 12, 61, 82, 60,228, 58, 83,143,217,130,147,113,100, 76,157,228, 26,210, 50,115,142,196,224,216, 14,202,
-172,145,113,172,216,216, 52, 34,185,145,197,254,255,122, 85,106, 43,228,222,216,132, 97, 85,188,118, 6, 39,248,173,141,227, 47,
- 70,199, 79,254,212, 61,130,115,242,114,196,168,226,208,117, 71, 78, 51,134, 56,172,251,195,149, 13, 92, 59, 72,171, 32,193, 20,
-231, 43,185, 74, 21,186,211, 85,217,106,227, 73,123,164, 58,250, 90,255,121, 73, 65, 19,112,221,153, 49, 76, 89, 59,206,107, 97,
-220, 89,127,154,110, 35, 81,135,199,169, 65,105,114,235,180,213,247,236, 68,112,205,104,120, 14,135,115,246,181, 52,109,212,214,
- 25, 98,179, 91,189,122, 68, 10,109,189,140, 72,215,151, 66, 4,239,131, 5,184,164,217,107,221,121,235,164,186,246,114,156, 21,
- 67, 34,183,138,119, 16,165, 34, 26, 17,245, 56,201,168,152, 27,218,187,181,155,161,142,174,158,228,160, 8, 56,121, 89, 80, 98,
-110, 11,199,106,154,217, 59,103,103, 92,223, 92,211,186,231,217,245,231,140, 23,119, 25,123,225,203,167, 79,217, 78, 9,196,115,
- 51, 31, 89, 74,103, 60,137,148, 54, 91, 31, 24, 33,247, 25, 63, 43, 62,108,248,133, 95,250, 5,126,229,175,254, 24,255,209,223,
-249,207,249,213,111,126,139, 95,249, 55,126,154,255,240, 63,248,247,249,219,255,233,127,198,127,252,183,127,196, 79,127,227, 67,
-126,244,108,225,244,254, 3, 46, 46, 2, 67, 24, 56, 25,206,241,211,192, 52, 69, 54, 23, 27, 66,186,132,101,207,237, 12,101, 78,
-184,184, 97, 26, 34,238,201,158,205,216,185,157,149, 49, 70, 52, 44, 84,119, 68,182, 35,167,121,195,237,241,134,229, 80,169,181,
-176,204,199, 53,188, 56,218,237, 59, 64,216, 95,179,185, 60,199,251, 64, 40, 30,231, 19,103,219,115,222,121,240, 22,163,155, 73,
-186,227,226,252, 62, 63,243,231, 62,226,157,119,222,225,247,190,243, 5,127,248,189,103,108,210, 41,110, 12,156,115,142,248,100,
-220,128, 33,162, 52,131, 58,172,235,128,158, 60, 1,147, 87,188,245,206, 37,191,248, 75, 31,240, 71,127,252,207,249,193,167, 51,
-125, 76,120, 81,170, 8,135,158,105,206, 49,157,111,121,231,107,111,241,232,209,151, 60,123,254,204,148,190, 81,137, 46,161, 77,
-105,171,202, 55,183, 6,165, 91,142,170, 11, 21, 51,183,105,181, 80,103, 91, 87, 64, 29,197,251,142, 31, 34, 78,147, 5,159,176,
-196,252, 91,239,191,201, 27,175,221,227,112,115,195, 33,103,198, 52, 34, 53, 83, 74,225, 44,140,100,215, 41, 57,211, 82, 96,174,
-130,119, 3,189, 30, 81,109,108, 83,224,250,233,115,250,156, 57, 57,191,160, 22,163,219,121,169,140,189,179, 29,133,206, 72,161,
-243,250,230,154,251,119, 6, 54,195,145,216, 29,187,162, 60,187, 53,201, 80,242,129,210,118,244, 44,148, 58,179,212,106, 43, 36,
-215,240,222,228, 48,181, 44, 4, 31,236, 34, 47,130,107,158,219,219, 27,252, 30, 78, 54,118,120,237,118,207,184,127,231, 62, 39,
-247,239,240,240,106,207, 97, 46,235,132,171, 26,248, 34, 96,215, 17,137,168,183, 52,246, 91,175,191,207, 79,127,235,109, 46, 46,
- 18, 55, 79, 43,103,247, 60, 18, 23,230,221, 74,188, 91, 20,217, 70,100,134, 65, 20,223, 59, 87,249,192, 15,127,240, 25,115,203,
-252,187,255,214, 95,230,217,243,133,239,150,143, 25,182, 30,233,142, 54, 47,224, 2, 59,215,217,229,140, 95,178, 41, 71,101,131,
-140, 21,239, 50, 61, 59,170, 75,140,234, 8,155,137,195,124,164, 46, 66,243,197,250,247, 53,209,123,161,185, 78,170, 3,105,236,
- 84,167, 52,201,132,110, 76,119,175,158,230, 11,163,116, 22,133, 57, 87, 18, 35, 33, 41, 62,138,137,125,196, 83,186, 89, 27, 55,
- 9, 42, 1,233,149, 34,217,252, 24,106,144,171,216, 23,130, 31, 89,122,161, 6,161,123,207,102,244,248,193, 49,223, 20,122, 40,
-248,237,128,204,138,175,202,110,206,180, 75, 97,100,192, 31, 51, 50,116, 52, 68, 70,173,224, 3, 42, 66, 90,181,181, 37,119,124,
- 18,251, 59, 24, 18,189,205,182, 54,244,138, 74, 71, 93, 39,134, 87, 55, 38,183,199, 73, 35,198, 87,184,247, 94,169,117,214,197,
-123,181, 92,246, 86,117, 37,134, 26, 28,252, 85,255, 83, 58,228, 90,168,189,161,193, 17, 26, 20, 87, 81,129,228, 61,234, 29,251,
- 93,103, 89,236,209, 87, 91, 38, 13, 27,188,131,165, 20,150,220,112, 33, 65,115,180,229, 10, 9, 27, 36, 31,240,222,206, 56, 87,
-138,237,220,163, 67,187, 18, 82,163,169, 39,166,192,162,157, 54, 43,219, 49,145,186,160, 75,197,135, 1, 92, 37,110, 54, 38, 35,
-244,205, 27, 34, 86,116,117, 69,123, 83,255,169,173,225, 45,152,236,193,117,196,173, 17,249, 94,233,213, 27, 7, 90,133,246,226,
-181,191,178,130,169, 86, 59,211,210,237,155,172,219, 77, 83,214,241,184,243,160,213, 96, 23,186,166,205,155,179, 52,187, 83, 65,
-124, 48,175,185,183,215, 64,117, 70,244,162,217, 37,194, 57,197, 75,160, 52, 53, 11, 84,183, 31, 38,239, 34,181, 53, 90,233, 36,
- 63, 50,121, 79,238,246,170, 82, 53,121, 64, 20,155, 64,148,185,173,140,121,183,134, 0, 13,104, 35, 93, 73, 42,180,168,168,131,
-177,123,178, 54,170, 88,237,172, 35, 36, 63, 32, 78, 13,225,231, 28, 13,171,228,149,110,116, 49, 31, 35, 56, 72,221,246,206,183,
- 87,207,217, 31, 50, 33, 88,199, 83,180,114,249,218, 37, 23,247, 18, 31,255,232,115,206,239,188,206, 38,236,152,151, 76, 10,142,
- 16, 10,234, 60,155,176, 69,151,106,214, 56, 81, 92, 21, 14,203,145,179,215,239,178, 57,241,124,248,206, 55,248,149,127,253,175,
-243,155,255,215,239,114,245,249, 15,184,255,230, 27,252, 39,127,235,111,241,127,252,218,175,241,171,191,241, 91,220,121,240, 14,
-155,187, 35,103,227, 41,155, 52,112,113,121,134, 11, 91,182, 39,155, 21, 98, 49,209,183,142,205,118,100,206, 27,164, 69, 14,203,
-158,147,139,145,141,116,252, 4, 23,119,224, 56, 63,165,104, 97, 58,142,220,244,247, 25, 46,246,176,189,229,121,110,228,126, 75,
-221,207,180, 92,193, 43,199, 37, 19, 14,123,150,101, 49,255,251,232,105, 45,115,125, 59,114,245,244, 25,175, 63,120,147,191,242,
- 23, 63,228, 47,253,252,187,184, 56,160,115, 34, 12,137, 63,254,157, 31,240,248,209,115, 92,244,140,155,209, 94,146, 26,232, 90,
- 89, 68,112, 27,187,224,233,161,216,223,213, 0,211, 48,242,141,247,222, 98,136,129,119,223,188,143,212,239,115,243,252, 6, 23,
- 71, 27, 17,183, 70, 82,229,201,147, 39,188,246,214,125, 46,207,207,216, 95,221,208,112, 72,176,117, 83, 92, 43, 90,133, 78,154,
- 6,180,205, 4,231,172,154,217,133,170,153, 20,109, 4, 58,203, 64,173, 21,231, 18, 83,114,244, 26, 80,237,212,110, 97,203,119,
-223,124,139,111,127,244, 33, 87, 87, 55,148,217, 17,207, 6, 30,156, 95,242,197,195,207, 86, 88, 83,102,211, 26,170, 71, 82, 87,
- 28, 74,209,192,224,148, 55,134, 35, 93, 3, 95,238,175, 73,105,131, 75, 3, 61, 31,120, 99,211, 56, 29, 23,166, 65, 8,126,224,
-121, 41,116, 26,111,159,121, 78,167,132, 87, 56, 82,184, 57, 86,110,179,167,118,199, 56, 6,230,249, 64,235, 1, 23, 12,173,234,
-188,133,145, 68,160, 84,195,218,234,139,149, 90, 81,186,175,107, 8,211,115,187,219,179,217, 68,114, 3,158, 59, 78,167,129,243,
-211, 9, 31,133,221,205,129,226, 7, 66,242, 72, 61, 26,252,165,219,229,252,181, 59, 95,227,103,127,238, 39,121,235, 93,161, 85,
-165,207, 66,239, 9,230, 35,135,249, 26,239, 7,250, 65,216, 29,247, 72, 20, 11,223,121,165, 28, 51,207,159,239,248,203,191,248,
-211,252,212, 79,125,196,223,251, 95,255, 41,205, 13,148, 58, 35,213,211,165, 19, 90,102, 95,140, 75, 95,154, 39,247,217, 30, 6,
- 25,252, 16, 24, 70,101,147, 28, 57, 55,164,122,104, 1,109, 71,226, 16,113, 45, 18,165,163,147,183, 96, 90, 46,204,251, 35,226,
-130,213,148,124, 68, 99, 94, 87,118,137,185, 24,251, 60,110, 38, 98,239,164, 24, 77,179,155, 76,102,210,235, 13,226,182,198,129,
-167, 82,178, 71, 90, 38,156,108,237,227, 81, 59,163, 38,180, 22,136,110,173,116, 6, 6,159,200, 51,120,205,208, 59,135,171, 61,
-206, 27, 89, 48,185, 0,117, 65, 98,131,205, 72, 8, 48, 22, 71, 28, 44, 37,174,179,192, 24,168, 20, 6,159, 8, 10,185, 54,196,
- 47,171,134,115,165,123,246,181,174,151, 94,209, 78,189, 91, 53,216, 57,121,165, 33, 57, 85, 86, 44,185, 18,195,171,247,168,183,
-214, 9,209, 33, 49,188,242, 67,189,230,142,182, 5,154, 34, 85,104,206,147,123,179,140,136, 15, 24,228,185,210,188,146,134, 4,
- 65,240,109, 97,206, 74,207, 51, 67, 76, 22,172,237,152, 28, 44, 56, 74,175,228,110, 19,225,230, 65,124, 98, 88,148,154,102,188,
-243,180, 93,165,199,129, 94, 51,201,159, 16, 84, 40,190, 32,125,100, 24, 11,119,183,224,167, 45, 65,212,232, 90,221,189,240,247,
-177,118,187,141,236,246,130, 29,167,107,201,221,105, 39, 4, 71,235, 98,187,111, 58, 65,156,245, 68,213,250,177,226, 28, 26,250,
-203,189,245, 11,102, 47, 42,107,181,196,110,103,138,163,151,102, 59,120, 53,225,132, 23,249,211,148,125,192, 18,201, 2,197,218,
- 53,230, 0,199,244,171, 77,204, 52,165,206, 38, 8,104, 37, 73,124,121,128,171,131,170, 21, 23,213,148,174, 29,102,113, 84, 26,
-177, 90, 2, 90, 66,176,223, 63,182, 92,245,222, 58,161,186,242,161,123,203,248,224, 25,196,198,252,234,192, 66,166,118, 81,241,
- 43,141,200,137,101, 2, 52,120,178,118, 36, 87,124,140, 8, 22,140,219,207, 7,150,210, 24,182,194,114,189, 39,119,133,210, 24,
-134,115, 82,252,132,165,205,156,157,108,121,120,125,196,197,200, 52, 58,242,110, 38, 58,195, 94,138,135, 80,131,145,244,186,114,
-251,248, 43,254,251,191,255,191,113,249, 55,255, 85,202,213, 13, 63,248,253,223,228, 31,252,189, 31,178,185,251, 62,255,213,223,
-253, 47,248,169, 31,251,144,223,249,189, 31,217, 14,172, 78, 76,211,192,120,122,202,233,201, 61,194, 52,113,172, 51,161, 70, 90,
-104, 76,113, 68,210,150,131, 30,108,183, 81, 45, 40, 86,147, 82, 52,115,177, 61, 99,234,133, 71, 87,183, 72,235,156,142, 39,180,
- 46,200,253,129,126,104, 28,107, 66,135, 76,174,149,232, 3,219,227,140,248,130,151,136,180, 68,113, 59,252,193, 81, 74,229,249,
-243,199,228,195,158,143,223,191,228,151, 46,255, 6, 87,159,124,143,127,246, 7,191,203, 31,252,209,151,236,158,221,130,175,120,
- 29, 88,178, 93,190,186,102,219, 24, 58,101,244, 9,146,146,177, 75,156,107,157,161, 22,174,159,222,242,189,239, 62,225,195,247,
-239,178, 57,155, 56,204, 11,227, 90,107, 60, 22,197,143,158,253,205,115,158, 60,121,202,116,185,197,125,106,223,163,178,162, 80,
-107,171,116,113,220,123,227, 62, 78,149,253,126, 54,232,146, 42,121,174, 4,133,190,234,123,253, 10, 96,161, 66,107,246, 51,208,
-251, 26, 40,140,145,143,126,226, 39, 88,106,103,183,187,166,247,137,119,182, 23,184,250, 37,173, 53, 78, 82,227,193,120,195,249,
- 48, 83,171, 55,183,193,168, 28, 23,207, 45, 91,134, 62,242,244,121,225, 56, 55,210,232,232,117,225,235,151,202,131,123,141, 52,
- 36,118, 59,101, 41,194,137,207,188,126, 71, 56, 59, 31, 25, 90,100, 41,138,204,149,177, 55, 14,181, 80,107, 36,116, 71,148, 9,
-124,163,180,108, 21,194, 33,216,215,218,157,173,166,186,174,118, 44,251,126,222, 31,246,248, 20, 25,199, 19, 84,149,171,219, 3,
-211, 96, 41,248,185,206, 92, 4,225,245,179,215, 56, 30, 22, 91,134, 53,181,241,155,170,153,234,166, 55,120,255,131,111,243,209,
-215, 47,233,204,168, 91,240,177, 50, 4, 69,250, 41, 12,123,110,123,166,133,132,243, 88, 61,107,236, 28,247,153, 63,252,193,231,
- 92,188,118,135,159,255,249, 31,231,176,191, 97,119, 56, 18, 86,182, 64,165, 17,187,146,129,145,200, 81, 10, 77, 60,113,112, 6,
- 96, 41,102, 95,116,125, 64, 37,163,120,142,199, 35, 16,137, 39, 39,182, 55, 95, 26,226, 26, 44, 14, 25, 18,117,104,180,131,224,
-187, 33,122,155,171,244,210, 73, 62,112,104,149, 74, 96,244,158, 33, 88, 86,166,181, 78,215,132, 59, 86, 92, 0,167,145,226, 58,
-117,238,132, 46, 22, 29,140,163, 1, 65,196, 26, 60,183,192, 20, 60, 94, 61, 49, 64,165,179,223, 85, 11,201,249,194,137,159, 40,
- 90,113,209,115,226, 78,169, 53,115, 20, 71,235,145,208, 27, 77, 35, 91,111, 43, 5,122, 35,166,200,140, 18, 93,160,176, 30,136,
- 62, 64, 53,119,122,237, 13,215, 7, 82, 50, 9,151,151, 87,115, 0,183, 98,175, 77,186,190, 50,217,202,139,151,250,218,189,122,
-165, 30,245, 23,133,243, 23, 60,251,248,103,112,168, 31,150, 78,201, 5,205, 11, 77,236, 51,100,116,193, 30, 10,162,112,104,184,
-208, 25, 3,228,226, 16, 34,199,195,129, 92, 64, 79, 38, 92, 61, 50, 22,243, 50,180,182,176, 59,236,172, 74, 30, 55,200, 80,153,
-170,144,143,160, 81, 76,197,188,183, 73, 73,223,173, 88,244, 77,167,132, 68,200,133,148,148,125,114,140, 83, 36,108, 71,130,115,
- 14,183,250,137,251, 10,142,161, 89,183,181,118,227, 8, 55,237,166,154, 20, 59, 64,181,217,190, 88,125,167,174, 35,201,174,118,
- 48,186,181, 79,240,210, 77,237, 28, 98,154, 48, 59,144,221, 11, 7,185,125,104,202, 75, 12,161, 82,155,221, 6, 21, 11, 4, 5,
-137,232,218, 9,198,137, 17,172, 60,168,132,213, 27,189,142,154,154,190,236,166,182,214,137, 33, 90,232,165, 40, 51,149,208,220,
-138,140,176,157,186,118,123,221, 75,240,102,222,146,149, 64,181,246,232, 17,240,105,245,181,119,171,242, 69, 49,207,123, 89, 95,
-251,193, 89,135,222,108, 6,216,126,177, 98, 65,160, 20, 81, 76,254,210,112,184, 38, 28,111,231, 21,187, 27,152,123, 65,220,132,
-246, 78,169, 7,182, 39, 19,187,121,230,108,155,224,153,145,213, 68,250,218,139,175,232,216,233, 13,164, 52,170, 20,132,138,116,
-225, 55,126,245,215,121, 48,110,248,225,159,124,143,207, 30,126,133, 31, 70, 98,108,252,214,255,254,235,252,163, 95,255, 39,112,
-186,161,235,194, 56,194,233,233, 57,211,230, 4,130,163,249,206, 70, 38,250,224,105, 78,169,181,145,119, 11,101,169,148,219,130,
-246,130,247,224,157,103,148, 17,106,102,191, 44,244,178,160,227,137,213, 55,154, 99, 72,231,108,229, 22,189, 29,145,180, 33,166,
- 3, 42, 16, 87, 25,144,120, 71, 16, 79,240, 91,218,169,210, 41,182,146,241,129,223,255,221,143,249,205,127,252,135, 60,251,234,
- 11,190,243, 7,223, 39,207, 71,251,223,134,129,188,100, 19,232,120, 27, 35, 74,139, 68,241,132,210, 41,199,140,118,107, 38, 4,
-132,221, 97,225,246,249,194,197,249, 41, 31, 63,127,198,135,239,221,229,123, 63,120,204, 38, 5,174,118, 71, 84, 32, 87, 33, 41,
- 60,254,228, 11,246,203,145, 44, 74, 80,193,105, 51, 47, 65,176, 62,175,212,102,166, 43, 55, 16, 38,171, 39,198, 84,200,115,165,
-148,134,139,142,162, 7,106,233,160, 13,231,162,245,219,155,225,149,223,124,240, 22,131, 36,118, 55, 79,240, 41,113,234, 27,223,
-124,251,154,178,187, 97,210,196,137,159,185, 60,111,248, 52,208,178,103, 62, 54,170, 23,252,222,113,230, 50,121,231,249,189,231,
- 87,156,140,157,247,238, 86,124, 56,242,254,155, 19, 42, 35, 83,235,184,212,201, 67,227,194, 5, 82, 40, 12, 77,232, 61,227, 21,
-134,168,212,230,168,197,176,172, 85, 42, 93, 32,161, 84,157,217,156,159,225, 73,220,220, 92,219,196, 71,108,127,219,123,163, 82,
-144, 22,108,157,160,208,231, 35, 26, 19, 93,224, 80, 20,159, 43,131, 75,228,165,177,121,253, 28, 39, 95,113,200, 7, 70,111,162,
-145, 20, 2,221,193,107, 23, 39,188,255, 78,100,222, 63, 39,157,157, 34,199, 25,202,194,114,244,108, 78, 4, 77, 35,203,141,224,
- 3,132, 41, 81,175,142,184, 33, 81,230,103,248, 56,240, 75,127,229,207,243,248,122,199,255,244, 15,126,131,219,188,181,214, 73,
-237,140,105,132,190,144,231,198,144, 20, 41,208,251, 76,157, 29, 50, 68,220, 88, 40,121,161, 19,104, 75,176,245,153, 8,131,183,
-215,209,146, 5, 55, 52,107,219,104, 65,218,128,215, 74, 26, 3, 75,177,190,113,201, 74,151, 45, 75,153, 9, 65, 9, 13,198,141,
-133,229,180,219, 33,173, 99,163,205, 2,139,181, 67, 92,110,148,178,160,211, 57,190, 88,168,181,117, 8,174,162, 46, 66,236,180,
- 54, 80,124, 36,248, 35, 33,158,210,242,140,107,198,214, 88,180, 50, 56, 79, 37, 25, 52, 41, 37, 82,235,184, 12, 21, 71,152, 26,
-251, 34,120,132,224, 61,222,117,186,235,212, 38,184,232,169, 94, 9, 90,113,193,170,174,234,101,205, 67,192,144,162,133,233,254,
- 69, 95,164, 47, 40,156,198, 27,229, 85,158,234,218, 45, 63,229, 2,182,178,125,133, 74, 84,181,217,190,241, 85,228,207, 96, 0,
-239,204, 29,226,130,133,136,117,201, 28, 92, 69, 67,135, 14,199,158,145, 14,203,254,192,162,138,119,129, 52,122,114,222, 19,115,
-196,169,227, 58, 47,104,243,200,102,130,186, 39, 68, 71,201, 71,144, 96,153,140,218,233, 23, 16,151, 17, 61, 46,120, 63,209,157,
-195, 69, 33, 23,199, 64, 67,166, 1,109, 66,216, 15,180,147, 1, 85,103,234,213,186,146,220,220,250, 2,126, 33, 37, 17,173,244,
- 2,120, 80, 39, 54,238,177,175, 25, 89,173, 64, 22, 72, 55,228,168,136,189,121,123, 53,224,140, 56,195,196, 74,208,181,247,238,
- 95,218,218, 36, 8,174, 91,223,180,136,189,254, 67,233, 70,105,179,108, 61, 90,250, 74, 73,242,166,105, 13,238, 37,228, 70, 87,
- 31,186, 52, 16, 23,240,218,112,209,246,111, 93, 87,204,173, 7,175, 1,239, 28,157, 78,233,213,124,233,201,170,108,173,219,239,
-169, 24, 83, 7,113,202,146, 51,163,143,244, 23,138,215, 33, 18,213,126, 93,196, 51,244, 78, 17,251, 16,111,205,106,122, 47,152,
-198,234,214,222,101,173,102, 38, 83, 79, 28,132,227,114,224,217,245, 30,113,230,254, 22,231,233,171,215,250,252,100,224,114,115,
-201,211,167,159,112,123,112, 4,113,244,210,185, 89,102, 68, 59, 75, 61,162,183, 66, 43,121,205,233, 11,110, 74,120,159,184,119,
-118,202,179, 63,249, 1,159, 63,217,179, 73, 3,243,162,244, 37,243, 95,255,183,255, 11,239, 63,248, 6, 31,188,118,151,186,204,
-140,147, 39,134, 13, 41,120,194, 16,109,252, 95,214, 28,132, 23,114, 87, 6, 60, 18, 58,199, 33,208, 90,160,110, 42,245, 32,116,
- 9, 60, 59, 60, 98,127,123, 13,195, 57,113, 60, 55,249,197,198,246,148, 83, 58, 67,101,164, 29,247, 68, 23,168, 61,211,125,166,
- 46, 2, 45,227, 55,195,202, 18,159,145, 16, 25,147, 67,162, 64, 17,254,199,255,249, 31,114, 60,220, 48, 93,158, 17,124, 52,220,
-172,108,232,221,209, 5,162, 15, 12, 82, 41,190, 33,205,147, 38,143,239,157,122, 91,232,213, 67, 18,106,232,108,238,223, 37, 73,
-224,243, 47,158, 17, 92,103,154, 70,110,247, 71, 66, 76,208, 60,145, 66,218, 38,118,199, 35,249, 56, 51,132, 64, 87, 65, 37,145,
- 6,199,118,147,136, 62,209,114, 97, 95, 43,173,117,244,160,108,206, 2, 90, 29,105, 60, 97, 60,219,146,181,241,236,217,151,212,
-146, 81,111, 74,217,160,202,210, 11,105, 28,248,214, 55,126,140,237, 80, 41, 1,194,206,241,237,119,149, 59,103,215, 92,103,207,
-131,115,101,240,133,190, 9, 4, 81, 32,178,153, 34,199, 93,163, 13, 51,147, 14,124,124,221,216,229,133,111,191,127,193,253, 83,
-101,218,130,171, 66, 89, 26,120,225,226, 98,164, 22,225,208, 26,187, 92,240,218,137, 94, 41, 77,121,246,180,241,241,227,202,126,
-134, 97, 10,228,117,250,180,244, 74, 91, 10,119, 79,207,144,181, 9,208,234,145,218,140, 83,239,186,195, 87,187,232, 53, 87,208,
-172, 20, 10,162,157, 97,216,208,221,176, 22, 92,162,129, 92, 92,165,107, 68, 57,172, 24,233, 68,111,153, 97,115,198, 7,239,190,
-198,105,188,226,152, 3,203, 67,251, 32, 59,208,249,226, 7,159,113,113,103,195,229,233,150,179,184,229,234,234, 9, 67,172,164,
-147,129,135, 95, 62,225,147, 47, 31,243,222,123,239,242,254, 27,247,249,245, 95,251, 71,252,211,223,251,148,175,125,244,109, 84,
- 51,162, 66,153, 11,157,194, 68,162,173, 14,121,149,133, 82, 11, 30,187,156, 79, 50, 24, 80, 74,236, 64, 36,119,156,102, 10, 74,
-105, 5, 87, 7, 66,234,104, 20,194,208,105, 59,203, 17,136,235,212, 50, 27,251, 59,206, 56, 77,164,186, 80,105,148,218,200,165,
- 16,100, 75, 10, 74,138,138,140,145,242,172,144,155,178, 9,137, 58,140, 84,205,140, 99,160, 83,241,217, 81,245,204,106,134,243,
- 17,221,120,164,206,180, 99,160, 31, 51, 18, 51,226, 79,113, 45, 19,188,101,110,196, 59,118,173,145, 2,171, 80, 38,210,129,201,
- 9,109,227,144,108, 15, 12,117,138, 20,177,207,235,214,104, 81, 9,147, 95,149,165, 6,212, 10,210,208,206,122,160,203, 43,123,
- 81,187, 53,244,252, 42,199,239,165,118,122,171, 47,205,118,175,178, 67,222,170, 25, 71,221,139,140,215,171,246,168,151,140,214,
-138,170, 71, 41,230,134, 40,149,232,148,214,117, 13,185,121,188, 68,224,192,210,133,193, 71, 54,113,194, 21, 7,161,160,131, 35,
-202, 25,173, 95, 67,111, 4, 85,162, 27,169,181,114,123,216, 51,134,192,188,235, 20, 60, 97, 82,166,144, 76,109,172,209,248, 25,
-177,225,123,160,119, 97,220, 8,219,177, 35,241, 14,161,244,110,120, 66, 89,255, 52, 92, 67,196,140, 79,182, 71,121, 33,184, 80,
- 74,183,195,182,175,254, 93,239, 2, 42, 13, 87,215, 68,172, 88, 65,172,203,154, 20,238,188,244,162, 91,218,188, 90,175,212, 57,
-243, 82,235, 74,129,235, 14,137,246,107,224, 28, 78, 59,235, 90,222, 28,230,232,154, 48,246,150,194,151,117,111,191,206, 89,156,
- 98, 70,159,222,112,125,197,194, 70, 71,167,218, 88,222,121,180,234,159,238,252,187,174, 88,215,110,254,113,214,144, 94,247,150,
-228, 15,142, 90,236,215, 73,193, 91, 8,170, 53,138,235, 86,209, 83,208, 86, 45,108, 23, 60,185, 67,200, 98, 99,124,111,243,249,
-193, 5,170, 70,106, 46, 44,183,123,150,222, 9,105,160,245,204, 50, 55,130,100, 62,249,226, 79,248,112,243, 1,183,187, 43, 11,
-190,120, 11, 17, 82, 11,181, 86, 8,166, 70,173,205, 40, 93, 1,143, 87,161, 86,101,152, 38,238,159, 93,242,197,211, 47, 57,178,
- 55,180,175, 56,198,105,203,102, 76,148,118, 11,121,203,157,187,119,184,184,119,202,197,249, 37,231,211,150, 99,203,102, 18,146,
-140,215,129, 72,129,193, 49, 8,140, 62, 49,156, 42, 79,158, 29,233,165,210,199, 72, 98,129,185,114,240,145,139,113,160, 19, 88,
- 78, 60,142, 72,236,133,138,210, 70, 79,105,139,193, 88,106,164, 19,113, 27,161,215,145,222, 35,121, 46,224, 18, 90, 10,183,199,
-138, 12, 14,149,198,243,135,215,108, 6,207,185,156, 83,213,154, 20,234, 29, 36,203,116,156,196, 13,169,207,220,212, 91,114,173,
- 84,237,132, 96, 12, 2,145,145,174,153, 97,156,216, 29, 23, 30, 95, 29,248, 75, 63,247, 77,254,217,119, 62, 35,165,136,230, 74,
-136,194,193, 43,185,128,111,205, 56,233, 39, 27, 30,188,249, 30, 63,250,225, 15,217,239,143,156,108,206,153, 54, 91,114,107, 6,
- 75, 66, 16,108, 90, 81, 14,176, 59,206, 40, 71,196,117,206,239,188,206,241,112,205, 50, 31,232,173, 91,250,158, 70,237,133,159,
-251,232,219,252,244, 71, 35, 27,247,125, 24, 19,251,189,240,222,219, 23,132, 82,217, 78, 55,100,183, 71, 11,244, 99,101, 9,142,
-180,221, 96,142,144, 43, 36, 55, 90,159,120,122,243,152,203,169,242,206,253, 17,234, 17,105,129,216,204,135,224, 70, 79, 8,137,
- 92,102,122,169,196, 14,207,110,149,160,112, 85, 11,255,252, 81,224,217, 97,131,151,108,218,217,245,194,172,181,178,219, 29, 17,
- 73,140,120,104,197, 20,186, 42, 38,218,193, 28, 69,120,197,169,163, 80, 45, 56, 88, 23,196,121, 78, 47,182, 22,104,242,157,185,
- 21,244,208, 24, 93, 96, 81, 79, 16, 59,200, 90,247,220, 61,123,143,187,119,238,208,251, 21, 44,240,228,234, 25, 78,132,167,251,
-133,155,157,146,221,130,106, 37, 68,144, 1,106,113,168,102,110,119, 59,142, 71,229,237, 7, 3,183,187,175,168,173,114,121,118,
-159, 24, 38,150,156,193, 21, 52,140,212, 93, 69,221,145,112,220,144,151, 61, 21, 75,254,242,194, 5,223, 22, 98, 22,212, 71,147,
-202, 56,179, 86,117,132, 20, 18,210,187,173,206,106,176,240, 81, 84,100,137,120,215,232, 81,153,188, 99, 89, 12, 14,146, 17,122,
-173,196, 35, 12, 67,162,133,138,147, 72,191, 17,218, 16,240,163,163, 45, 11, 89, 43,195, 48,217, 31,105,232,116, 73, 84, 33, 8,
- 95,170, 0, 0, 32, 0, 73, 68, 65, 84, 55,211,231, 29,209, 15,182, 26,204,197,186,210,131, 35,149,194,161, 8,154, 58, 49,120,
- 60,201, 18,211, 85, 8, 27,123,152,232, 18, 73,106,240,167,138,199, 87,155, 96, 70,133, 44,214, 84,152, 54,129,158,149, 42,142,
-158, 61, 93, 42, 49, 36,164,121, 99,134,111,163, 81, 53, 95, 85,232,172, 53, 74,135, 41, 58, 91, 61,189,178,241,251, 58, 5,241,
-193, 76,128,175, 16, 60,211, 91, 55,201, 77,144, 87,121, 95,120, 57,189,152,231, 74,161, 83,209,213,230, 41,244, 8,186, 56, 90,
- 43, 20, 7, 69, 51, 67, 12,120,127,198,112, 20,202,124, 75,143,157,197, 57,150, 54,147,116, 68, 91,164,239,142,224, 77, 15,235,
- 4,178,175,228,170, 6, 83,139, 30, 63,154,252,230,234, 80,172,253,144,187, 61,118,122, 64,202,192,152, 26,167, 37,241,198,217,
- 4,195,134,160,107, 34, 93, 86,216,173, 39,130,118,148,106,220, 98,177,122,153, 95, 95,171,234,186,113,165, 49, 82, 83, 23, 59,
-196, 17, 75,191,135,117, 4,111, 59, 59,187, 65,106, 87,188, 42, 90, 29, 4, 11,219,105,239,107,221,204, 94,248,189, 53,164,219,
-171,183,170,117,166,131,120,219, 51, 4,135,215, 70, 95,247,255,182,168,239,168,120,156,216, 5, 64, 86,232,141,199,180,172, 68,
-193, 53, 59,132, 91, 55,188,231, 16, 34, 34,197,234,169, 62, 16, 2,235,175, 99,255,205,250,234, 46,117,117, 75,247, 74, 41,138,
-186,134, 15, 30,167,141, 42,127, 58,210,105,216, 95,132,198, 72,201, 74, 8,222, 80,183, 62, 49,231,142, 4,195, 42,238,247, 7,
- 14,135, 3,138,103, 24, 18,251,253,115, 46,207, 46, 57, 30,111,248,131,223,255, 14,181, 22,238,221,249, 0, 45,183,184,114,100,
- 81,163,103,133,120,202, 24, 19, 75,201,116,129, 92, 10, 78,133, 97, 72,108,134, 19, 78, 38,199,243, 92,185,185, 57,178,116,199,
-112,114,201, 73, 28,185,126,246,136,231, 79, 31,242,240,209, 23,108,130,231,236,181,251,188,243,238, 7,188,121,247, 53,228,228,
-132, 20, 29,219,105, 2, 31,232, 88,239,181,107,161,170,195,119,101, 59,101, 60, 19, 61, 43,195, 56,177,185,255, 77,222, 67,249,
-209,199,223,165, 30, 3,149,136,143, 19,245,234,128,108, 51, 91,239, 57,248, 83,154,100, 35, 8, 14,137, 56,116,114,235, 28,230,
- 66, 26, 28,170, 3,251,178, 88,208,181, 57,178, 55,150,246,233,230, 1,177,120,227,231,107, 92,195, 73,145,232, 70, 68, 43,199,
-212, 9,135, 13, 33, 57,186,100,230, 82,145, 48, 49, 36, 5,157, 24, 79, 70,158, 63,125,198,231,159,126, 69,124,251,146,101,173,
-249,196, 40,204,205,164, 23,121, 41,134, 83,244,157,225, 98,224,206,221, 51,174,111,206, 44, 23, 33,194,177, 44,200,210, 17,175,
- 70, 93,235, 14,159, 18,113,115, 73, 58,105, 92, 95, 95,113,125,115,141,120, 37,109, 34, 91,189,228,217,163, 47,144, 21,118,244,
-254, 27,151,252,181,191,250,179,188,119,127,161,151, 72,109,194,197,201, 29, 59, 92,229,128, 27,131,213,189,156, 18,123, 52, 51,
-211,241, 6,188,199,215, 72,247,202,211, 67,225,102,158,121,239,193, 57,163,107, 84,215, 57, 30, 28,105, 18,134,104, 96,153, 86,
- 14,180,146, 57,204,157, 93, 22,190,218, 55,118,123, 79,119, 91,142,205,227,250,142,222,205,150,102,253,179,202, 97, 62,114,172,
- 71, 66,142,196, 62,154, 98,185, 8,226,219, 10,222,177,160,170,107,142,210, 26,221, 11, 90,161,119,171,235,105, 83, 19,245,108,
- 60, 49,110,104, 77,168,174,224,157,229, 73,180,119, 36, 54, 46,238,143,108, 79, 34,174, 71,242,174,147,162,242,213, 85,230,217,
-245, 45, 85,148,199, 55,157,222, 54,156, 36,199,249,249,192, 56, 38,126,247,123, 63,226,211,199,153,183,223,188,195,152, 60,215,
- 79,159, 81,197,177, 61, 57,133, 96,212, 53,231, 71,218,188, 71,146, 85,240, 74, 40,248,226,161,111,193, 45, 20,109,248, 69,145,
- 41,161,163, 3, 6, 27,153,183, 66,155, 34, 3, 9, 84, 89, 56,224, 90,196,233,200,241,118, 79, 26,133,153, 5,209,128,138, 35,
- 54,143,196,153, 58,232,186,107,183,203,101,206,118,144,150,177, 33, 18, 72, 34,180, 32,140,109, 67,144,138,175,133,158, 58, 82,
- 3, 78, 42,117,105, 12,120, 92,129, 57,218,138, 39,166,196,109,171,140,110, 67,240,149,160,134, 62,206, 89, 25,214,212, 64, 60,
- 0, 91,144, 36,180,157,146, 78, 58,185, 90,144, 42,224,168,189, 16,170, 35, 56,161,228, 10,234, 25,221,202,201, 16,177,209,188,
- 54,251, 68,205, 66, 12,227, 43, 26,145,219, 1,169,173, 89,240,238, 21,141,178, 21, 91,227, 54, 53,195,230,171, 36,190,189, 72,
-213, 55,237,140,222, 35,175, 26, 60, 83, 49,177, 83,207,104,155,113, 62,114, 40,149, 29, 13,183, 52,150,185, 67, 4,223, 61,146,
- 27, 42,133, 92,161,187,206,156, 43,219,148,104, 75,199,245, 10,163,163,199, 17,245,133,152,128, 30,173,234,184, 85,202, 98,134,
-200, 45, 39,168,102,124,115, 72,143,180, 97,135,196,192,152, 59,199,114, 75, 28, 78,152, 54,158,241, 34, 0, 35,193,169, 5,226,
- 4,135,118,104,107,191, 58,132,132,128,245, 56,157, 67,213,198,242,218, 42,222,219,168, 25, 85,180, 10,126, 48, 12, 44,152,220,
-196, 14,109,183,250,100,205, 25,172,125, 61, 56,155, 85,146,116,173,199,121, 81,208,106, 0,147, 0,116,179, 96, 5,137, 72, 8,
- 92, 94,156, 51, 12,142,229,112,195,205, 97,161,181,213, 33,174, 6,178, 49,175,184, 32,205,162,255, 46,120,170,107,107,101,238,
- 5, 33, 12, 82, 84,122,183, 90,152,243, 70,190,243, 88, 45,165, 7,144, 20,113,221,227, 93,197, 87,172,195,190,186,222,107, 47,
-160, 1,105, 13,231,132,236,186,165,242,187, 91, 31, 62,157,234, 58,226, 59,209,156,168,180, 96, 29,117,109, 66,235,182,223,239,
-174, 34,125, 64,189,114,123,216, 17,131,144,155,240,198,107, 31,178,241,141, 79,175,174,104,186,210,239,214, 10, 94, 76,158,188,
-207,212, 98, 58,217,232, 5, 55, 6, 78,182,145,165,205, 92, 31, 50,170, 13,231, 7,238,220,123, 27,157,111, 25, 37,177, 73, 39,
- 92,149, 35,181, 43,122, 61, 50,125,241, 37,199,229,200,246,244, 62, 67,130, 97,123,202, 52, 25,226,179, 84, 91,161,228,155,163,
- 93,144, 54, 35, 67, 18, 54, 39, 27,124,234, 72,128,187, 23,151, 32, 31,241,240,209,129,154, 29,109,242,248,225,130,105,232, 92,
-237,111,240, 30,184, 41,244,152, 8,174,226, 73,140,147, 25,188,150,155, 27,114, 94,144, 20, 45, 41, 42, 66, 62,220,226,212, 91,
-184,168, 41, 67,138,150,112,142, 27,180,117,130, 8,131,247,220,118, 51, 38,213,101, 38, 75,224,116, 60,161,236, 50, 89, 10, 39,
- 46,178,245, 35,179, 15,156,223,123,131,207, 31,126, 6,181, 18, 84, 56,104, 32,183, 2,218, 12,104, 84, 58,103,219, 75, 62,120,
-240, 54,127,242,233,199, 44,203,194,249,233, 22, 45, 22,254,204,222,204,122, 90, 27,185, 86,124,245,120,217, 49,158,156,208, 78,
- 78,185,109,141,221,237, 30,113,129,209, 37,166,113, 67,173,123, 6,231,249,133,191,248,231,121,235,190, 18,218, 21,112,129,115,
- 66, 11,247,184,122,246, 59,244,186, 35,164, 17,137,142,190, 84,170,108,225,133, 88,101,216,160,139, 16,198,200,243, 79, 22,134,
- 0,111,190,249, 22, 97,255, 4,188,146, 67,231,201,109, 36, 53,207,205, 82,184,174,157,221, 34, 60,217, 37,118,205,122,226,218,
-109,143,171,189,210,250,130, 95, 93,226,121,213,225, 82, 11,117, 41,180,100, 97, 57,137,206, 32, 71,109,253,249,117, 47,186,247,
-129, 41,121,114,110,104, 40,150,122, 87,207, 60,207, 76,227,192,128, 85, 8,251,232, 9,155, 19,244,248, 28,145,110,202,147,238,
-233, 42, 28,231, 25, 23, 26,187,118,224,241,149, 82, 14,217, 68, 37, 37, 48, 47,133,230, 21,231, 35, 31,127,249,132,249,176,240,
- 39,159, 62,103,216,108,248,115,223,186,199,148, 60,173, 0,179,210,130,224,124, 96,144, 5,137,157,190,203, 44,174, 51,196,141,
- 57,236,181, 82,189, 2, 5,223, 32,171,112,238, 29,222, 7, 68,141,243, 32,234,113,100,186, 83,170, 7, 45, 1,113,208,100, 33,
- 40, 80,204,212,214,218, 66,147,196,210, 0,239,232, 55,153,232, 6,252, 4, 69, 61, 33, 0, 81, 40,185,179,149,142,239, 66,158,
-103, 60,158,133,110,211,157, 49,176, 91, 22,156,131, 81, 28,105, 27,233,189,208, 23,197,199,201, 46,148,181, 64, 90,112,147, 71,
-250, 13,180,173,241,224, 69,233, 12,244, 37, 51, 5, 97, 55, 31, 25, 91,192, 21,165,212,192, 52, 36, 91, 55,174, 14,132,165, 47,
-140, 50,224,157,193,127,124, 52,181,179,116,140,159, 16,133,228, 29,225, 21, 85,207,230,102, 97, 82,131,140,188,218,189,119,111,
-171,111,225, 21,115,217, 85, 49,117,120,111, 68, 31,254, 76, 16,177,173, 43,154, 51,173,175,172, 3, 23,136,116,186,216, 74,132,
-172,244,122,228,166,102,170,111, 70,222,156,149, 40,142,161, 22,138, 15,168, 4, 60, 55,116,151,169, 69,241, 1, 68, 35,222, 55,
- 92, 80,106,177,250,226,190, 45, 4, 45,184,164,184,214, 80,239, 89,118,133,192, 64,216, 2,181,178,212, 35, 66,178,169,144,240,
- 34, 37,104,175, 76,100,117, 16, 11,150,238, 94, 69, 47, 43, 73,214,222,225,202, 42,226,120, 33,106,183, 80,194,203,174, 97, 87,
-139,165,169,165,230, 29,198,137, 23,103,251,110,109,110,197,175,154, 9,170,183, 66,119, 21,237,206,186,180, 82, 17,237,164,233,
-156, 59,111,188,206,217,208,153,119,158,246,217, 99,110,123, 3,204,222, 85,105, 43,174, 83,112, 81,104, 69, 13,237,105, 75, 0,
- 75,216,171, 32, 93, 41,182, 59,192, 27, 22, 11, 80,102, 53,208,135,235,178,226,113, 51,210, 3,221, 57, 83,190,174,106,119,239,
- 61,173,214, 85, 34, 99,223,219,185,170,165, 75,163,117,236, 67, 15,248, 44,232, 24,204,176,227, 3,174,219,101,227,222,107,175,
-241,240,225, 99,158, 94, 31,214, 17,139, 82, 41,244,218, 8,227,134,214,247,124,241,244, 41, 57,103, 80,225,152,139,189, 30, 4,
-116,110,180,185,173,126,122, 15, 40,135,227,204,220, 27,185, 64,157, 43,209,121,222,254,218,183,233,243, 53,251,122, 32,164, 13,
-155,237, 5,143, 31, 62,198,159, 78,180, 80, 89, 92,224,226,244, 46,127,243,223,252,107, 60,252,236,135,124,250,232, 57, 65, 2,
-185, 20,206, 46,206,185,253,234, 49,187,155,199, 60,122,250, 57,234, 54,220,187,115,194,131,123, 15, 56,185, 51,114,184, 90,248,
-234,211, 79, 25,166,115,110,118, 79, 56, 30,110,201,143, 26,195,118,224, 52,221,225,152, 11,189,237,113,227,132,106, 69,116, 32,
-249, 17,113, 11,149,202,174, 39,246,229, 96, 44,253,174,136, 44,156, 57, 72,231,119,241,201,126, 95,146, 48,232,199, 92,136, 18,
-105,131,146,221,128,235,194,210, 50,219, 96,156,113,209, 70, 58, 17,146,110, 94, 74,154,211,144,120,227,181,187,124,185, 60,162,
- 73, 39,164,137,190, 44, 80,149,224, 3,125, 4, 87, 59,151,119,207,200,181,114,253,244,136, 75,182,118,242,209,175,232,218,134,
-180,132,136,112,122, 49, 65, 28, 88,110,247, 60,122,248, 5,209,143, 56, 55,161,249,150, 38, 51,195, 24, 57, 63, 57,103, 87, 60,
- 95,187, 55,241,237, 15, 71,194,242,125,188, 27,108, 28,236, 46, 9,113, 15,245,154,219,167,157,105,112,164, 75, 32, 4,234,254,
- 64, 62, 42,155,141, 25,208,186, 40,101, 63,241,201, 23,215,188,246,218, 25, 3, 98,200,199,131,114,123, 29,249,254,147,142, 50,
- 49,183,200,145, 78,171,138,243, 1, 79,162,181,133,105,136, 28,187,218,135,122,242, 86,233, 44,213,210,251,173,145,243, 1,122,
-161, 82, 8, 17,198,148,184, 89,172, 54, 19,253,250, 51,154, 2, 67,220,210,234,158, 90, 22,220, 24,236,231,211, 7,164,218,106,
-170, 40,104,109,120, 17, 98,243,102, 42,116, 98,106, 88, 38, 82,169, 44,243,142, 62, 28,137, 67,224,250,240,156,249,250,192,233,
- 40, 56, 13,148, 82,249,236,233, 21, 55,135,206, 97, 62,240,213,211, 35, 85, 60, 63,255, 19,111,112,118, 17,168,217, 17, 93,226,
-238,105,228, 90, 35,243, 44,148, 86,241, 71,112, 62, 26,209, 77,132, 99, 86, 74,237,136,235,244, 22,241,100,226,152,144, 26,168,
- 5,116,222,147,210, 72,143,141, 86,161, 4, 27,152,186, 26,144,168,232,146, 45,247, 50, 36,154,107,132, 42,208, 15, 84, 21,180,
- 69,203, 98,123,165, 46,130,243, 16,135, 68,169, 74,162,210, 71,101,151,175,173,170,187,237,196, 18, 17, 55, 82,231,229,165,181,
- 82,169,104, 78,184, 65,136,113,203, 54, 36, 22,157, 41,162, 56,201, 56, 61, 99, 62, 86,100, 56,144,206, 78,152,119,141, 33, 31,
- 73,147,167,214,192, 32,194, 48, 37, 52, 26, 75, 67,157, 48,215,204,169, 31,204, 99, 95, 3,189, 67,138,198,194,104, 93,233,234,
-140,217,225,148,212, 34, 61,192, 48,196, 87,118,128,149,218,232,194, 43,187, 40,152, 12,197, 40,127,171,171,243,213, 30,186,106,
- 25, 46,165,191,114,244,236,139, 11, 73,174,149, 78, 99,144,198,161, 54, 90,114,132, 18, 41,131,226,103,165,116,101,118,130, 31,
- 60,174,155,173,109, 78,224, 39,184,189, 61, 34, 64, 58, 59,165,149,192,221,205,192, 56,188,198,167,143, 31,210,229,150,224,134,
-245, 66, 24,144,158,144,182, 24, 91,162, 10,153, 10,123, 91,139, 47, 73, 25,117,160, 83, 57,220, 30,104,199,211, 21,190, 38,158,
-130, 29, 76, 47, 14,111,117, 74, 89, 42, 62, 68, 75,188,175,181, 23,145, 53,245,254,130, 3,223,108,167,208,170,174,135, 59,136,
-154, 62, 83,165, 19,124, 91, 15,214,149,178,182,210,227,156,172,114,151,214, 76, 91, 25, 34,165, 23,179,220,200,154, 64, 87, 12,
-244,176, 88,162,176, 46,139,201, 25,122, 71,130, 97, 95,253, 10,139,168, 43,129,206,121,219,153,171,130,171,182, 22, 8,235,142,
-187,174,147, 2,143, 16, 28,171, 36,113,173, 31, 72, 39,106, 36,120, 40,205, 38, 7, 62,202,203,218, 29,226,137,226, 44,128,179,
- 20,156,179,148, 49,222, 86, 4, 78,141, 66,167, 93,233, 75, 65,131, 81,246,154, 8,209, 85,210,102,226,131,247,222,103,247, 71,
-127,204,178, 28, 24, 37, 90, 99, 0, 40,251, 91, 30,214, 25,223,197,114, 6,210,193,195,224, 45, 48,177,239,133,224, 18, 26,108,
-143, 79,112,164,232, 73,125, 64,106,103, 94, 22,206,238,127,192,223,248,165,127,141,223,254, 39,255,144, 79,230, 61,219, 97,224,
-201,213, 87,180, 30, 24,211,196,197, 48,113,122,182,229,151,127,249,151,249,137,175,191,205, 55,191,246, 14,251,227,204,126,183,
-231,246, 56,243,181,247,222,227,211,239,253, 62,255,205,127,247,247, 89,230,206,156, 31,113, 56, 92,113,253,204, 46, 26, 15, 63,
-255,156, 90, 58,151,119,238, 48,110,207,216,223, 62, 33,239, 51, 37, 41, 99, 56,225,124,123, 74,220,156,226,134,204,228, 59,135,
-253, 13,199,179, 17,223, 43,173,154, 88, 39, 46,137,188,236,201,185,115,122, 18,217,108,238, 16,211,136,182, 74,247,157,227, 30,
-134,193,136,105,201, 9, 18, 3, 75, 62, 48,169, 35, 71,225,216, 60,137, 72,119, 29,245,141, 9, 15,154, 9,131,231,141, 7,247,
- 57,153, 2, 15, 94,187,207,197,217,196,243, 91, 24,134,129,155,253,108,148,187,158,185,185, 61,112,187,223,147, 54, 35,219,205,
-150, 33, 38, 83, 91,170, 82,251, 72,234, 21,136, 44, 75,131,158,120,240,218, 5,135,243, 19,234, 39,157, 58, 23,198,205,134,158,
- 46,184,189,126,204, 97, 57,226,186, 50, 58,207,207,255,244, 91,156,159, 60, 71, 57, 82,218,129,206,192, 77,125,147,171, 79, 62,
- 97,170,145, 97, 88,236,251,120, 78, 52,109, 28,103,120,248, 36,242,250, 70,152,134, 35,185, 58,190,255, 72, 56,118,229,237,119,
-239,211,111, 31,114,117, 93,248,254,179,137, 71,187,200, 81, 29,212, 10, 33,226, 58, 4,215,136, 30,122, 20,164, 4, 90,237, 4,
-239,112, 65, 89,154,129,152,186,235,107, 75,165, 83, 74, 33,172, 89,146,121,127, 68,123, 93,229, 28,138,182,142, 15, 66, 26,183,
-120,231,216, 29, 26,193, 39,220, 48,216,234, 64,133, 30,155,165,171,215, 85, 88,239,206,172, 84,206,160, 82, 69, 42,222, 87,142,
-249, 57,165,193,245, 83, 35,234,149,249,150,180,137, 70,111, 67,169,187,204,237,225,200,163,103,141, 45,141,186, 56,190,246,141,
-251,124,240,238, 93,202,114,228,171,175,174, 24,211,158,146, 28, 62,109, 41,117,193,185,200, 50, 31, 80, 47,120, 25,200,203, 76,
-119,141, 19,159,232,170,204, 44,100, 17,124, 46,228,105,100, 83, 58, 26, 77,142, 90,102,243, 48,120, 28, 82,149,193, 69,230,118,
-228,216,149, 41, 12,168,247, 68, 21,235,230,103,135,159, 18, 37, 43, 74, 64,179, 66, 84,188, 91, 40,213, 83,107,182, 15,198, 57,
-226, 93, 39,250, 72, 89, 58, 89, 58,155,112, 36,149,128, 15, 27, 10, 71, 98, 28,169, 71, 97, 19, 18,221, 43, 26,138,125, 29,251,
- 83,114,157,241,165,208,195,132,180, 78,223,121, 54, 93,169,222, 51,183,136,104,101,136, 19, 77, 2, 3,235, 78, 21, 8, 83, 36,
- 75, 33,100,111,144, 32, 1,237,141,144,176,149,149, 10, 4,163,219,169,116,123,108,201,171, 58,124,187,253,167,174,166,187, 87,
- 8,111,233,181,219,251,138, 87, 13,158,105,212,106, 24,230, 63,139,127,106,195, 2,225, 10,234,141,143,210,231, 35, 4,199, 38,
-193, 46,139,125,182,120,133,217,112,176,221,123,228,194, 81,151,142,139,158, 78,132, 42,220, 81,207,143,255,248, 5,253,252, 13,
-110,255, 96,224,249,103, 63, 50,234,163, 27,193,109,104,109,135,139,138,246, 68,211, 74,243,141, 20, 6, 98,140,116,153, 65,148,
- 50, 12, 68, 34,103,247, 46,128, 13,161,139,174,230, 29,147, 20,168,174, 60,244,224, 95,248, 86, 13, 31,187,238, 42,100,181,102,
-181,106, 47,112,212, 88,217, 34, 38,136,123, 17, 26, 48, 20,165, 73, 47,140, 34,103,187,233,168,214, 61, 93,111, 9,120, 10,101,
-149,128, 68, 23,168,173,226,197, 18,157,249,120,195, 87, 95, 53,110, 82,167,236,103,230,190,238,243,213,200,113,254,197,129,235,
-236,114,161, 88,199, 61, 5,139,179,235, 11,191,177,218,104, 3,188, 37,190,233,107, 0,208, 46, 16, 85, 27, 93, 23,122,119,134,
-164,244,171,134,214,153, 27,185,228, 74,242,142,150,197,176,183,106, 76,230,136, 82,114, 37, 79,158, 97,136, 72,105,208,189, 57,
-219,125,165, 85,165, 58, 75,226,158,223,191,203,135,249, 45,254,248,123,159, 82,214, 42,132, 87,103,166,178,125, 93,137,120, 70,
-180,243,193,250,252, 37,103,211, 75,246, 14, 5,187,204, 44,160, 34, 92, 94, 94, 32, 42,220, 28,247,124,253, 39,222,160,203,194,
- 91,239,126,157,234, 29, 79,159, 60,230,201,245, 19,198,225,130,200,132,106,224,205,119,191,198,183, 63,122, 27,128, 24, 19, 23,
- 49,113,113,118,246,242, 27,245,195,111,253, 24,239,125,231,183,121,252,229, 83,174,142, 71,158,127,245, 57,223,221, 45,204,199,
- 29,119,206,206,136,226,249,225, 39,207, 57,217,158,178,137, 17,239, 60,219,120,151, 41, 37, 72,142,203,251,247, 17, 31,184,185,
-122,206,211,231,159,192,117,165,139,208,171, 16, 83, 34, 33,212,195, 53,251,249,200,102,124,151,182,157, 56,157,162,165,151,241,
-244, 13,140, 45, 32,163,245,162,123, 85, 98,130,124,124, 81,148, 52, 5,234,152, 26,162,131,145, 13, 81, 28,129,111,125,235, 3,
-198, 77,231,147,239,239,152,111, 14,236,111, 51,219,147, 83, 54,243,129,249,184,227,234,249, 42,210,137,194, 69, 19,158, 31, 42,
- 97, 18,134,148,136, 58, 65,128,113, 59, 17,211,134,109, 83,246,135, 29,160,188,126,127,195,103,159, 6,138,203, 4,102,194, 56,
-225,110, 21,239,140, 54,248, 19,239,188,193,143,127,253, 14, 33,238,112,213,130, 63, 7,222,225,187,159, 55, 62,253, 65,231, 98,
-184,100,138, 25,161,178,180, 3,203,226, 56,230, 45,187, 99,228,203,180,224, 93, 69,219,196,199, 95,222,242,209, 91,151, 76,126,
-195, 15,190,220,241,195,175, 28,143,143, 1,141, 29, 63, 90,211, 36, 72,231,116,147,200,226,108,133,165,130,250,128,168,112, 46,
- 59,170, 86,118, 8, 61,152,246, 84,164, 81, 98, 65,198,141,161, 75,187,154, 65, 42, 4, 68, 23,132,129,142,117,176,125,247,224,
- 76,105,108,216,211,110, 53, 29,223,201,181,146, 98, 2, 23, 24, 16,164,174,136,101, 32, 55,251,208,191, 60, 29,144,161,177,155,
-111,169, 10, 90, 11, 45, 87,180, 11,183,168,173,244,162,231,245,187,167,124,250,229, 87, 60, 58,102,222,184,115,198, 71,175,159,
-144,175, 15,248,109,224,236,236,132,231,143, 14, 60,203, 51, 85, 78,232,245, 72,217,119,156, 79, 40,133, 86, 42, 42,142,193, 53,
-122,183,238,111, 79,129, 97,132, 88, 54, 12, 62, 50, 68, 40, 93,112, 85, 24,156,125, 62,149,118, 68,113, 28,252, 14,221,119,198,
- 48, 34,234, 8,135,110, 33, 71,233,244,113,130,214, 25,112,228,222,144,113,160,183, 3,218, 60,189, 31, 8, 97, 34, 57,168, 82,
-145,238,225,232,136, 41,152,114,118, 39, 44, 46, 19, 91,176,222,124, 28,160,216,159,175, 40, 44,173,152,222,121,109, 91,148,210,
- 72, 81, 41,101, 64, 99, 67,181, 82,196, 86, 64,246, 9,160,204,237, 64, 83,240,217, 19,199,129,249,144, 25,146,199,123,199,232,
-215, 26,166,115,212,210,113,216,103,147, 4,111, 96, 48,111,135,240,245,227,231,156, 93, 88, 56, 56, 4,135, 11,209, 72,161, 47,
- 74,220,238,255, 95,226,188,150, 74,175,217, 46,128,238, 85,190,118,173,149,160,205,194,175,175,114, 52, 62,151, 70,171,118, 34,
-216, 90,248, 21, 31,234,165,145,115,129,214, 40,185,179, 84,155, 10,151, 37,115,212, 76,242, 3,168, 32,189, 83, 57,224, 38,143,
-175,158, 90,103, 11, 86,203,150, 92, 23, 92,237, 92,183, 61, 79,159,102,114, 61,103,190,217,209,203,204, 52,194,210, 59,199,221,
- 66, 72, 13, 81,103, 21,237,110,109,178,236,151,245, 19,113, 67,102,199,184,158, 37,211, 38, 0,129,224, 83, 48,171,153,186,245,
-118, 39,235,193,214,205, 45,174, 6,250, 80, 5, 9, 66,119,214, 53,151,117, 39, 39,206,104,109,162, 98,206,116,233, 16, 20,154,
-195, 20, 4,245,101,191,209,137, 95,211,231, 29, 93,148, 24, 61, 93,108,132,174,226, 40,235, 24,166,211,204, 45,174,157,195,110,
-207,193,214, 90,118, 83,116, 98,216, 78, 93, 95, 14,246,133,224, 89,237,112,145,181, 63, 94, 13,215, 40, 1,117, 38,156,241,252,
-233,133, 68,197,118,214,116,197,117, 71,193,118,170,209,121,186, 87,122,151,151, 97,163,214, 87, 0, 64,104, 22,186, 80,160, 41,
-181,117,124,176, 32,142, 46,230,108,111, 44,168, 56, 88,108,204,222,139,224, 82, 66, 69,120,227,245, 55,185,185,190,229,179, 71,
-207,137,226,169,218, 80, 58,209, 91, 47,209, 59,191, 82,150, 76, 45,235,147,141,169, 10,141, 0,144,205,245,157,134, 13,120,184,
-126,246, 4, 23, 19,148, 35,223,249,173,127,204,102,154,120,227,226,156,175, 62,251,140,165, 54,210, 52,211,218, 1,137,167,188,
-253,238, 3,254, 63,127,118, 36,242,206,131,215,249, 63,253, 31, 17, 36,226,138,199, 71, 79,204,145,179, 59,247,216,166,137, 59,
-193,155, 19, 64, 32, 52,208, 65, 40, 58, 51, 31, 27,159,125,254,199,148, 67, 70,186,208, 68, 57,191, 56,103, 94,102,174,175,158,
-145, 75,224, 80,109,191, 29, 61, 92, 63,254,130, 82, 14,156,110,223, 97,228,148, 62,118, 98,114,230,222, 81, 8,189, 82,168,132,
-193,104, 95,139,243, 76,163, 99,222, 31, 16, 54,104, 20,134,170,204,205,170, 62,219, 77,100,222, 29,136, 67,194, 79,129, 71, 31,
- 63,228,114,233,120,167, 60,189,186, 37,151,202,102, 19, 95,126,239,229, 92,217,229, 70,244, 51,163,159,241,201, 83,203,194,217,
-208,184,123,119, 34,157,142, 60,122,120,195,178, 12, 76, 49, 49,151,153,146,139, 53, 43,198, 17,237,202, 4,252,228, 79,190,203,
-201,137,135,230, 88, 42, 28,143,129, 47,110, 28, 95,126,254, 20,245,157,135,255, 55,107,111,250,107,105,118,221,231, 61,123,237,
-189,223,225,156,115,167, 26,122, 98,119,115,104,145,212, 44, 43, 98, 20, 11, 49,236, 36, 78, 12, 59, 1, 2,229, 67,254,199, 32,
- 64, 62,248, 67, 32, 25,178, 44, 71,137, 13,107, 8, 4,137,146,104,138, 83, 23,123,170,234,170,186,117,239, 61,195,251,190,123,
- 90,249,176,222,106, 54, 25, 82,148,168, 38, 64,128,133, 70,119, 23,171, 78,157,189,247, 90,191,223,243,204, 1, 57, 12,102,136,
-139,103,148, 57,227, 98,132,190,176,159, 58, 36,121,174, 46,223,128,250, 13,144,142, 63,255,238,158,111,190,215, 81,124,135, 12,
-171,107,122,137, 4,111, 75,178,154, 13,196,164, 50, 50,248,202,208, 11,125,218,243,122, 44,124, 99,170, 54,137,202,213, 2,120,
-162,164, 98,230,176,162,144,231, 9,105,149, 14, 33,210, 83,154, 85, 71,155,139,164, 60, 17,136, 68,111,129,213,150,101, 69, 69,
-103, 46,130, 29, 30,117, 73,184,208, 81,245,196,225,100, 2,139,178,204,244,195,200,217,217, 37,157, 4,234,220, 56, 29, 14,150,
-159,105,142,235,195, 9, 87, 13,183, 59,110, 60, 69, 22,156, 64,191,219,240,198, 27,103,244,190,242,254,179, 91,194, 33,114,209,
-141,188, 56,205,236,231, 74, 55, 22, 90,233, 80, 55, 17,196,170,170, 77,178,193,175,138, 77,217, 36, 52, 66,205,184, 57,128, 24,
- 95,125,159, 42,155,205,134, 46, 70,102,141, 28,245, 68, 87, 5,209, 64, 1,134,179, 72,192, 81,114,163, 69, 33, 29, 10, 72, 37,
- 68,251,126,211, 48,211, 14, 74,173, 86,243,245,189, 82,181,162, 58,227,180,163,181, 74,223,247,212,148,208, 10,131, 12, 76, 84,
- 98, 44,104,173,214, 23, 94, 76, 81,218, 74, 35,132, 30, 29,188,113,255,155, 34,157,224,165, 81,176,124,129,111,222,208,177, 65,
- 73,139,130, 68, 14,167, 2,161,216, 33, 61, 88,127,216,213,130,138, 49, 37,156, 51, 67,100,193,196, 84, 47,159,228, 90,234,186,
- 79,142,148, 46,240,241,169,113,147, 79,132,160,244, 49, 16,186, 96,171,199,106,141, 34, 31,173,233, 99,181, 47,183,250,172,132,
-178, 2,102,156,179,169,229,188,159,168,171,236,105, 73,137,193, 82,201,159,201,107,186,214,130,188,116,140,124,118,204, 25,112,
-110,229, 11, 84,250, 62,252,189, 71,235,238,167, 92, 26,142, 75,161, 78, 22, 44, 70,192,123, 40,174, 99,185, 75, 38, 70, 27,171,
-169,177, 81, 58,221,224,114, 34,231, 61,174,101,202, 12,197,109,172,155, 63, 84,242, 97,161, 76,130,191,240, 6,128, 83, 56,150,
-104,159,237, 48,209, 92,207, 72, 64, 83,166, 31, 2, 9, 11,160, 55, 63, 80,189, 16,107, 7,199,142,214,101, 26,211, 90,123,198,
-202,255,165,148, 85, 93, 26, 0, 51,160,137,154,112, 69, 81, 8, 1, 81,235,203,218, 56, 93, 76,215,138,213,197,212, 55,227, 72,
-139,133,141,154,135,162, 25,215,108, 44,132, 19, 59, 40,221,203,154,154,165,148,179,218, 97, 27, 86,146,157,120, 33, 55, 99,189,
-247,226,152, 75, 89, 49,110,250,201,200, 58, 74,143, 80, 81,111,227, 41,193,209,106,195,251, 66,112,242, 9, 5,207,119,208,116,
-213,218,213, 96, 48, 14,177,189,180,139,182, 6, 72,139,133, 64,156, 54, 52,155,234,206, 90, 0, 22, 28,108,226,136,242,242, 15,
-142, 93, 66,154, 8,186, 6,241,164, 24,105,172,245,106,117, 64,196, 0, 42,117, 49, 96,138, 51,219, 91, 90, 42,195, 54,240,230,
-171,175,243,244,249,145,148, 18, 33,120,250, 56, 24, 56,199,137, 77, 41,130,217,223,170,115,120,141,150, 73, 40, 74, 82,165,235,
- 20, 9,129,216,237,152,114,229,233,254, 68,244, 61,239,191,251,136, 60, 47,140,247,206,121,120,117,193,205, 97,143, 19,103,150,
- 53,137,132,232, 57,205,135,159,250, 49,182, 95,185,245, 80,232, 61,236,149, 16, 59,182,103,103,108,227,136,244,158,232,148,101,
-113, 4, 96,114, 66,154, 15, 44,199, 35,105, 74,102,223,139,129,174,117, 8,129,203,179,123, 68, 13, 60,187,121,194, 92,142,184,
-185,146, 85,193, 71,150, 23,137,214, 22,198,254,140,139,251, 15,185,186,119,133,122, 71,153, 10,113,115,206, 54,118,108, 54, 29,
- 76, 16,219,129,126,235,144,206, 17, 48, 19,210,177, 84, 74, 89,120,245,225, 3,252, 50, 51,165,194,171, 15,238,241,240,225, 21,
-237,235,223,227,112,152,120,243,157,119,120,253,149, 87,152,143,123, 30, 61,121, 78, 90,131, 42,209,103, 22, 93,209,160,226,201,
-181,225,139,162, 99, 32,211,115,111,219,113,188,254,152,239,126,247,134,203,179,123,156,247, 91,210, 50,209,114,134,166,180, 82,
-248,185,119, 62,207, 91,111, 62, 32,165, 71,164,105, 98, 58, 21, 94,204,175,241,254,117,162,229,133, 94, 58,164, 95,200,131,167,
- 59,154,215,187,121, 71,215, 26, 25, 35,208,213,232,169, 33,147, 93,226,251, 55,133,101,154,200,190, 99,136, 1,231, 28,169, 9,
- 37, 47,168,139, 8,246,153,186,223,195,253, 29,236,198, 5, 2, 92,246,129,116, 74,228,143, 42,184, 96,176,166,144, 41,171,163,
- 91,104,248,113,160,169, 99,201, 9, 31,236, 11, 92, 43, 84, 20, 45, 19,142, 13,227,197, 25, 69, 28,243,139, 27,202,146, 57,209,
- 8,218,120,251,139, 15,185,217, 23, 82, 42,204,190,195,167, 76, 43,134, 56, 45, 10,231, 33,114,121, 17,152,211,204,233, 52,131,
- 54,150,100,149,211,222, 11,169, 22, 92,116,220, 28, 14, 28,167,153,224, 55,252,194, 59,175,240,149, 47,236,200, 8,211,156, 88,
-246, 51, 71,102, 78,167,133,214, 54,156,150, 9,175,158, 49, 68,114, 91,208,165, 3,215,211,252, 68,115,172,246, 64, 5, 55, 48,
-151,140,235, 26,213, 87, 2, 1, 74, 71,118,137,101, 46,148, 86, 44,235,210,103,122,155,243, 82, 93,225, 84,138, 25,245,130,144,
-112,148,102,129,173,185,120,124,151,105,101, 34,202, 72,213,130,174,254,112, 95, 3, 16,233,164,103,138,137, 70,226,148, 23,198,
-110,192,197,128,180,200, 33, 45, 12, 67,181, 16, 91, 84,156,206,140, 37,130,219, 82,100, 38,146,145, 54, 16,116,161,101,165, 72,
-166, 70,163,228, 17, 2,133, 68, 32,218, 23,119,137, 68,117,212, 94,233,107,176, 4,190,218, 35,164, 57,111,252, 5,215, 32,122,
-212,179,174, 82, 58, 84,149,243,139,129, 47,124,233, 77,155,246,213,102, 12, 13,231,172,229,148, 77, 48,165, 86,220,164,101, 91,
-197,148,170,164,100, 99,235, 86,218,218,182, 72, 64,182, 6,132, 8,207,111, 39,230,180, 74,149,130, 55, 27,102, 16,115,106, 56,
-214,203,193,203, 10,153, 77,111,249,244, 64,192,253,224,232, 77,203,106,174,115,250, 50,213,245,153,237,187,107, 53,213,174,168,
- 16,254,158, 33, 60,247,119,248,235,205, 89, 91,168,185,197,244,183,206, 62, 67,170, 16,124,228,133, 83,234, 32,196, 67,132, 21,
- 95,238,232,112,165,145,154,192,182, 49,250,130, 46, 91, 22, 93,184, 89, 78,148, 15,158,211, 14, 79,209, 14,136,145,110,205, 99,
- 73,235,152,202,132,118,141,172,214,101,215,234,113,205, 49,203,132, 15,149, 88, 51, 89,204,240, 6,141,160,249, 7,123,110,135,
-163,214,140,190, 12,181, 53,235,106, 59, 39,168, 22, 27,251, 84, 65,154,241,220, 13,184,102,123,115,105,138, 72,165, 21,147,168,
-132, 80,105,213, 94,210,174,173, 55, 59,103, 53, 52, 31, 60,190, 54,170,152,144, 0, 26, 34,118, 67,126, 73, 36,211,214, 12,191,
- 42, 6,155,113,190,225,154,183, 11, 70, 51,115,141,141, 32, 33, 84, 71, 19, 79,107,141,210,156,117, 64,157, 64,201,134, 83, 84,
-161,182, 98,112,138, 12,137, 66, 44,242,146,127,183,174, 23, 2,205, 27,197,173,111,209,214, 9,161, 33,197,209,188, 67,226,203,
-155,108,181,203,143, 8, 75,173,120,181,196,125,203, 11,161,115, 56, 31,105, 52, 60,142, 83, 74,120,223, 17, 93,192,163,228, 12,
-155, 87,238,241,107,253,175,113,184,126,206,163, 15,223,167,212,194, 40,253,218,209,119, 52,245,224,171,169, 22, 93, 71,227,100,
-126,111,181,238,188,122,165,147,202,241,249, 11,242,116, 34,244, 27,238,142, 19,170,141,229,184,112,183,127,143,219,227,137, 24,
- 35, 82,149,116,202, 28,143,137,239,189,251,136, 23,251, 19, 87,103,155, 31,255, 49,214,194, 71,143,175,209,162,246,226,115, 66,
-171,149,174,219,217, 75, 44,192,216, 25,225,139,182,225,226,193,134, 97, 55, 48,221, 77, 60,121,239, 61,170, 52, 92,110, 28, 91,
-166,187,218,160,210,168,169,176,189,188,160,118,133,143, 63, 42,228, 37, 83,152, 16, 85,106,245,188,120,241,130, 99,119,228,230,
-197, 11,110, 55, 59,124, 31,105,206,113,182, 29,120,248,234, 91,108,124,199, 82, 10, 42, 59,130,139, 92,157, 57,206,206, 95, 33,
- 77, 11, 47,142, 47,184, 58,243,188,122,182, 37,244, 29,211,221,137,143,110,158,225,124,199,253,251, 87,148,230,104, 41,243, 95,
-125,237, 87,216,223,126,200,199,215, 55, 92,223,220, 48,198, 13,227,118,228, 60, 12, 12,189, 7, 47, 28,111,110, 13, 73,236, 19,
-215,215, 47, 72,181,231,222,171,247,168, 37, 80, 83, 98, 24,182,148, 50, 83,138,169,130,239, 95,158,243,203,191,240, 6,135,227,
-145, 15,175, 11,207,158,100,124,255, 42,231, 23,175,144,142,143, 81, 2,135,156,236, 53,236,148, 40, 30,239, 27,130, 39, 47,137,
-110, 20, 74,178, 47,225,187,219,107, 36,120,162, 23,110,211, 17,223,116,189,160, 6,124,236, 32, 64,175,133, 49,102, 30,158, 23,
-222, 62,247, 60,188,112,184,206,163,193,163,169,241,190,142,148,190, 18,212, 19,137,150, 31,105,149,146, 22, 66,232, 80,215, 24,
- 54, 29,233,152,120, 62,221,209,111, 34,157,139, 38,164, 40, 48, 45, 71,250,101,100,236,123, 82, 8,180,229, 68, 75, 11,251, 37,
-241,215,223, 89,216,236,174,184,242, 9, 63, 94, 90,218,119,201, 72,128, 16, 33, 83,120,250,226, 41, 65, 61,169, 25, 12,199, 64,
-115,142,101,158, 41, 4, 14,203,145,227,113,207,217,120,193,213,249, 57, 63,255,246, 5,103,231,158,103, 55, 21, 61, 53,230,169,
-112,151, 50,165, 8,253,121, 68,162,103, 57, 44, 20, 47, 84, 76, 45,169, 90, 41, 75,179,133,154, 23,178,107, 72, 81, 92,128,154,
- 51,197, 7,226,208, 81, 75, 34,231,133,162,213, 38, 11, 91, 65,138, 80,167, 5, 87, 79,150,157,233, 3,165,206, 20, 13,182,218,
-146, 96,197, 78,127, 66,134, 70,218, 3, 84,124,109,244,187,193, 40,123,161,176,164, 70, 40, 86,109, 27,182, 3,233,118,177,233,
- 95,177, 76, 82,239,173,214,107, 97, 81,133,225,156,153, 66,215, 6, 80, 83, 25, 35,133,190,135,234, 29,125,245,180,217,113,146,
-138,146,209,174,153,162,122,216, 16,200,248, 86, 41, 83, 68,197,190,211, 74,177, 14,253, 16, 11,193, 59,156, 4,203, 31,181, 64,
-213, 76,168,133, 16, 35,247,207,182,108,215,158,250,240, 67, 51,243,149,146,245,233,255, 12, 63, 56,244,166, 53,239,172, 10, 11,
-202,237,113, 97,122,242,140, 90, 50,174,115,196,205,142,176,219,126, 66,153,171,106,144, 3, 87, 45,148, 9,159,180,141, 45, 51,
-165,214, 48,122,249,106,182,164,181,146,107, 99, 78,121,253, 46,111,236,239,142,104,131, 16, 2,136, 77,137,196,175,120,242,151,
-255, 76,247,119, 59,118,219,218,171,175,173,218,185,194,103, 63,126,175, 57,211,170, 17,227,178, 66,169,133,146, 45,115,150,106,
- 69,167, 70,236, 7, 90,231,104,105, 94, 21,201, 61, 83, 75,196,126,192,105, 79, 59, 60,102,123,190, 37, 29, 19,223,251,248,128,
-182, 71,148,102, 23,108,156,177, 53,198,216,113, 42, 25,159,138, 93,192,226, 26,226,108, 11, 29, 32,177, 34,109,160,213, 68,236,
-148,167,122,201,181,165, 88,194, 42,105,177, 67, 88,188, 95,193, 46, 43,215,121, 77,178, 91,177,208, 17, 92,161,184, 98,169,245,
-102,191,140,206, 89,122, 62, 23, 83,116,138,115,235, 47,103, 91, 95,254, 47,247,215, 5, 21,219, 87,219,182,123, 53, 68,181, 74,
-109, 66,240,129, 90, 22,112,206,196, 18,206,234, 97,226,237, 28,183, 17,126,253,164,119,238,219, 74,176, 11,246,114,110, 85,145,
- 10,213, 85,219,155, 59, 7, 77,232,188, 35, 59,112, 81,160, 54, 60, 30, 87,100, 29,125,123, 35,193,169, 37,253,165, 52, 82, 43,
-140,209,170, 10,166,118,181, 27,173,119,117,197,233,253,224, 3,218,188, 67, 37, 24,220, 98,129,216, 41,126, 69,199,138, 40,212,
-130,230, 1,149, 66, 45, 66,161,112,121,177, 97, 28, 59,226,182,227,209,187, 31, 48, 77,139, 73, 39,240,168, 6, 91, 64,104, 99,
-105, 51,115, 78,176,202, 69,166,101, 38,164,128, 68,103, 96,154,148,136,125,180,151, 95,232,208, 52,115,119, 60,128,152, 96,163,
- 34,100, 50,167,105,226,227,119, 63,226,247,126,255, 15,248, 95,127,251,127,250,177, 31,243,239,124,227,175,248,207,223,123, 15,
- 21, 11, 52,150,101, 70, 3,196,109,207,176,233,209,229, 4, 97, 96, 51, 68, 14,251, 27,254,224,247,255, 45,190,239,217,132, 17,
-197, 51,108, 55,136,120,186, 24,185,216,236,232,165,103, 57, 77, 28, 79, 39,210,105,193, 23, 49,200,141,246,164,164,164,249, 96,
- 48,160, 82, 72,122, 34,207, 19,253,174,199,119,194,208, 95,242,236,241, 99, 35,125,213,134, 43,137,155,155, 74, 87, 2,126,124,
- 70,220,245,208, 42,175,157,191,205,118, 60,231, 91,223,124,159,219, 23, 31,242, 7,127,242,151, 60,126,242, 28, 45,149, 16, 60,
- 47,246, 47,248,240,233, 13,149,106, 10,219, 69,226,193, 0, 0, 32, 0, 73, 68, 65, 84,211,211,194, 49,100,138, 38,206, 54, 14,
-233, 59, 46, 99,207,248,202, 21, 31,223, 92, 51,157, 78, 76, 83,162,106,207, 91,159,123, 72, 58,135, 15, 63,124, 76,120,249, 37,
-221, 28, 81,225,213, 55,238, 83,232,248,214,119,102,142,233, 62, 89,183,252,242, 91,191,204,245,237, 53,169,218,225,237,154,224,
- 91,143,180,133, 73, 11,195,176, 65,242,201, 94, 75, 51, 86,249,235, 6, 62,120,250, 49,103,219, 11,150,201, 0, 40,213,217, 69,
- 87,201, 92,196,204,131,209, 14,244, 93, 8,188,241, 90, 71,191,235,204, 5,144, 28, 50, 10,249,174, 82, 82, 68,165, 16, 98,103,
- 64, 37, 26, 82, 42,169, 11, 88,230,171,225, 93,160, 68,219,196,217,142, 54, 24, 68, 42,128, 75,153,219,167, 31,154, 39, 93,132,
- 86, 28, 77,205,133,144,150,198,197, 69,135,239, 58,118, 18,152,150,147,177, 42,212, 81, 11,180, 86,153,247, 19,206,123,170,194,
-236, 32,202,192,110, 48, 31, 66, 58, 90,242,126, 24, 54,132, 97,203,107,175,244, 72,175,124,252,244,192, 41, 21,106,132,229, 80,
- 56,156,160,180, 68,119, 47, 88, 63, 61, 6, 90, 45, 22,100,109, 61, 85, 29,165,174,106,229, 32,248, 86, 56,145,136,110, 96, 51,
-116,200,224,109,164, 93, 27,197, 59, 58, 81,178, 91,209,166, 34, 86,181, 28, 58,160,226,114,193, 81,105, 21, 34,118,209, 31,186,
- 74,174, 13,246,158,216,143,180, 58, 81,146, 39,102, 79,149, 74,171,133, 56,120, 90, 24,112,169,209,230, 6, 33,178, 80,169, 83,
-194,197, 1,239,242,234, 5,243,196, 2,117,185,161,250, 64,212,145, 77,244,204, 90, 73, 85, 40,222,177,243, 74,189, 19,102,151,
-161, 9, 18, 70,196, 53, 11,226,105, 97,222, 10,211,148,233,179, 35,110, 58,212, 43,203,169, 33,187,128,116,129, 86,148,156, 51,
-125,244,166,164,118, 14, 98,143, 14, 29,225,103,244,146,143,230,214, 6, 96,135, 35,236, 6,158,238, 55,156,142,123,130, 8,175,
- 63, 56,251,177, 47, 95, 93, 15,211,151, 63,104,138, 29,248, 47, 51, 87,117,125,249,163,164,162,204,199,153, 82,103,220,186, 50,
-120, 49, 21,246,101,193,203,130, 97,203,193, 7,103, 13,171,182,174, 86,229,165, 46,219,173, 20,207,151, 57,174,151, 60,122,187,
- 2, 28, 83,101, 58, 76,168,179,151,237,233,184, 55, 24,149,179,224,167,172, 43,220,127, 24, 77,174,160, 75, 66,235,234, 78,168,
- 21,231,173,118, 24, 67, 33, 29, 26, 76,153,224, 50,179,119,148,236,168,186,103,112, 27,170,243, 8, 21,231, 61, 75,157, 81, 87,
-193,245,212,184, 32,110,135,228, 17,105,149, 89, 27, 57,207,134,171, 30, 34, 46, 39,148,142,226, 27, 46, 37, 74, 87,168,169,225,
-156,163, 27,183,236,252,194,219,111, 92,217,159, 15,113, 47,107,103,235,174,218,252, 85,180, 86,205,226,229,215, 93,117,211,181,
-183,110,164,170, 38,213,252, 47,205,125, 66,140, 67, 13,202,162,173, 65,181,215,108, 83, 11,206, 73,244,166, 39,109, 74, 94, 57,
-240, 81,172, 46,235,221,218,131,111,118, 11,110, 43, 2,182,122, 75,212,231,154,140, 60,236,236,239, 83,103, 35,247, 66,251, 4,
-112,227, 93, 65,124,160,153, 41,154,206,201,154, 4,182,223,136,190,247,168,247,120,167, 72, 53,171, 28,234, 13, 55, 43,182,253,
-111,213,120,217, 78, 28, 75,203,136,115, 44, 88,112, 47, 74,160,173,216, 90,251,121, 11, 65, 76, 98,163,173,173,112, 17, 71, 45,
-141,141,119,184,102, 17,212,174, 11,180,182, 16, 92,192, 59, 33, 87,199, 82, 23, 74,106, 92,221,123,192,110,179,227,219,127,243,
- 93,110, 15, 71, 98,103,201, 93, 85, 89, 43,133,117,237,185,103,227,205, 59,135,122, 79,173,142, 16, 27, 83,154,168,119,153, 24,
- 58,124, 7, 75, 93, 56,206,137,174, 55, 95,183,186,149, 29,191, 36,210,205, 51,254,236, 63,253,223,188,184,123,198,231,238, 63,
-224,234,222, 3, 94,185,127,143,171,251,151,252,241,159,254, 9, 95,255,139,191,230,246,230,134,211, 50, 51,207, 11,173, 21, 68,
- 97,123,118,193, 38, 58,138, 92, 48,167, 19,231,225, 1,175,221,223,241,221,179, 11, 78,211,194,221,124, 71, 81,165,221,124,140,
-132, 64,171,149,143, 62,122,151,179,110,128,174,231,237,207,125,133, 77,220,114, 10, 7,131,127, 56, 71,210, 66,144, 17,239, 12,
- 40, 34,162,104, 52,120,198,160, 3,115,170,252,163,223,250, 37,254,213,191,250, 23,252,233, 31,253, 49,239,125,248, 30,167, 52,
- 17,179,176,185,127,206,183,255,242,175, 72,203,129,239,125,251, 91,124,249,139,111, 18,203,115,156,116,252,218,175,253, 58,254,
-207,255,154,179,205,192,247, 30,189,207,114, 58,113,251,252,150,205,185,231,213,251,231, 60,123,188, 97, 81,101, 89, 22, 92,189,
- 37,231, 72,220,109,185,186,186,160,107,142,219,219, 61,187,237, 8, 26,249,222,119, 62,228,176, 79, 36, 45,156, 14, 71,130, 9,
-171,233,250,142,123,151, 15,184, 73,194,184,185,143, 15, 51,231,175,188,197,131,207, 93,241,225,147,239,208,123,101,142,137, 88,
- 42, 50, 26, 62,173, 29, 19,117, 57,161,193,209,134,136, 84, 65,100,195,199,207, 62, 32,116,141, 7,247,207,248,214,163, 39,244,
-193,115, 62, 78,108, 99,226,225, 78, 56,223,122,122, 47,120,215,177,180,138, 68,199,112,181,161,204, 19,165, 19, 66,111,137,149,
-187,211, 68,173,133, 49,244,182, 19, 69, 56,169,193, 91,108, 2, 20, 72,185, 24,214, 23, 97, 42,142,121, 90, 8,210, 32, 6,227,
-236, 47, 11, 73,247, 43,202,217,242, 47, 49, 42,125, 28,232,186, 1,233, 60,253,102,195,225,217, 1, 87,149,230, 44, 1, 47,205,
- 62,147,115,129, 82,102,198, 56, 66,240, 76, 57,227, 66, 97,202, 7,198, 46,226,226, 25, 15,238, 13, 60,120,112,198,130,112,172,
-194,254,174,145, 75, 99, 58,101,150,165,174,135,174, 24,131, 62, 11,185,122, 92,236,112,193,144,174,100,103, 97,209, 90,104, 47,
-171,172,197, 19, 34,136,118,159,144, 26,195,176,195,215,128, 43, 51,121, 49,106,185,247,138, 23, 80,239,209, 9,168,227,234,163,
-104, 20, 85, 38, 87,160,244,164, 50, 17, 6,207,224,118,100, 63,147,105, 12, 10,117,169,132,104,141, 19,154,226, 90,160, 31, 50,
-148,130,110, 59,202, 98,147,204,144, 70,170,203,232, 0, 97, 9, 4,151,217,179, 39,106,193,123,165,186, 17,114, 69,114, 70,123,
- 27,179,250,176,218, 29,181,163,180,106, 50,151,187, 64,140, 1,233, 59, 82, 80, 70,233,217,141,197, 50, 67,197,162,138,131, 88,
- 24, 43, 55,199, 16,123, 19, 40, 53,165, 11,159,145,157,173, 42,181, 54, 68,161,239,194, 79, 28,101,127,234, 46,176,174, 87,225,
-135, 10,117, 65,126, 40,225,126, 58,235,121,242, 97, 35,165, 76,140,158, 87, 95,127, 64,232, 59,211,153,174,255,190,234, 86,140,
-117,181,148,121, 91,167, 3,154,171,101,169,212, 81,180, 65, 42,102, 73, 44, 74,202,153, 60,159,140, 77, 33,141,214,148,247,158,
- 29,248,248,118,198, 96,253, 48,120,111,144, 48,252, 74,131,115,230, 36, 15, 86,130, 86, 85,147,248,120, 89,207, 59,181,233,147,
-216,138,116,159, 26,199,219, 23, 20,210, 39,147,213,212, 18,217,123,171,231, 22, 1,183,144,252,158, 78, 34,193,193, 60,205,184,
-208,168,115, 33,181, 19, 72,226,162, 63,163,212, 30, 45,135,117, 77, 36, 20, 87, 40, 28, 16,173, 12, 93, 68,203,200,114,154, 8,
-253,136,107, 74,171, 51, 62, 11,174, 52,170, 91,136, 99, 79, 73, 19, 78, 35,231, 62, 18, 66,111, 98, 33, 37,175,250, 59, 83,192,
- 57,117, 54, 38,199,161,205,106, 89, 22, 76, 91,157,203,120, 75,201,131, 17,231, 84,215,181,236, 26,220,248,132,250,166, 86,181,
-112,198,144, 71, 87,110,112, 85, 42, 32,157, 71,155,253, 6,138, 56,114, 41, 56, 31,108,244, 94, 10,213, 25,182,213,173,211,130,
-166,246,246,151,216,209,105, 91, 59,142,107,112, 78,109, 20,228,164, 33, 65,112, 8,226, 12, 54,225,165, 81,138,237,249, 35,158,
-220, 10,206, 9, 46, 4, 43,247, 23, 5,201,208,108,231,212,212,170, 36, 77,236,114, 97, 53,162, 70,107,150,158,206, 25, 74, 2,
- 85, 91, 63, 56,177,142,176,115, 98, 19, 0,239, 88,138,173, 19,130,116,248, 16, 8,177, 82,214, 17,183, 84, 79,150,134,244, 30,
-173,194,102,179,227, 43,191,240, 85, 30,189,251, 46,143,159, 92,219,174,170, 11,118,211, 93,105,118, 52, 27, 97, 53, 39,116, 62,
-112,222, 69, 14, 47,110,169,181, 50,105, 35,167, 74, 88, 50, 9,251,226,110,185, 80,170,195,239, 60, 41, 7,230, 50,115,115, 7,
-137,200,237,254,207,249,155, 7,103,108,124, 79,204, 21,183,233, 56,236, 15,236,143, 51,121,158, 57, 78, 39,230,211,158,121, 89,
- 75,127,249, 68,206,137,193,143,228, 84,152,188,176, 95, 50,175,127,241, 29,104,130,239,148,227,221, 76, 94,102,114,154, 40,197,
-163, 53,177,204, 55,136,194,217,253, 11,110,110,230, 21, 94, 4, 75, 5,143, 93, 56, 8, 3,174, 54,148,202,182, 31, 17, 31,216,
-108, 54,124,233, 23,191,204,111,255, 47,191,205,118, 28,248, 23,255,242, 95,178,164,196,233,120, 66, 81,238, 93, 93,241,239,127,
-255,223,241,111,254,207,223,165,186,204,147,103,143,249,173, 95,255, 60, 47, 94,204,116, 33,208,117, 59,254,217, 63,255, 26,255,
-120, 89,248,223,255,183,223,225,233,245, 19,222,216, 94,114,249,218,134,123,207, 95, 97, 90, 86,164,166,206,220,221,237,121, 49,
- 77, 72, 23,217,109, 7,166,220, 80, 13,204,167,137,155,155, 9,209, 12,209,155, 32,161, 22,232,224,226,225, 3,250,113,195, 54,
-246,198, 95, 24, 59,222,126,235, 53,158,127,252, 33,215,207,159, 34,120,164, 5,212, 53, 42, 9, 52,152,209,206, 7,202,188, 48,
-196,158,109,220,112,154, 22, 78,167, 27,222,122,251, 45,150,214,240,226,120,112, 89,248,210,165,114,113,111,131,168,210,185,222,
-178, 42,210, 8, 19,104, 88,237,127,157, 35, 31, 51,117, 49, 9,205,126, 78, 56,233,240,206,217, 23,163,102,150,178,112, 56,220,
- 48,158, 93,160, 88, 24,169, 54, 99, 84,111, 54, 27,230,227,222, 94, 44,169,174, 33, 46,243,222,131,226, 90,165,180, 10,173, 34,
-163,167,235, 7,134,190,163,186,145,105,190, 54, 83, 93,112, 68,111,234,219,172, 54,109,211,164,102,123, 43, 19, 53,205, 12, 30,
-198, 46,224,194, 25,231,231, 3,239,188, 57, 66,173,124,240,254,129,146, 78, 44,115, 35, 33,104,241,204,121, 34,196, 96,201,142,
-154,172, 82, 26,236,133,149,106,166,148,134, 84,104, 62,211, 90, 36, 68,165,147,194,178,156, 56,180,145,158,108,136,215, 20,137,
-179, 34, 93,196, 69, 59, 56,106,200,248, 26, 57,238, 79,132,222,227,197,161, 36,106,137,184,126,125, 12,104, 35,118,129,164, 66,
- 44,137,185,100,186, 93, 88,105,154, 59,136, 29,130,160, 82, 81, 31,208,206, 30, 27, 53, 71,134, 26,104,237, 14, 84,168, 62, 18,
-183, 59,123,101,114, 36, 59,147,222,104,201, 28,136,248,112, 64,147, 77, 27,194, 24,233,180,152,164,131, 8,206,156, 6,217, 5,
-124, 95, 73,217,130,177, 99,115,198,236,239,192, 47,142,190,111,104,113,104,240, 72, 47,198,203,112,106,210, 45, 17,186, 24,127,
-230, 87,232,167,223,176, 90,215,174,183,115, 4,255,217, 81,217, 58,183,158, 29,193, 51,244, 29,219,161, 3,160,247, 6, 0,250,
-161, 81,183,117,156,112, 63, 58, 17, 88,113,173,121, 13,215, 54,251,186,228,250,230,196,124,253,130,211,180,167, 11,194,238,222,
- 5,174, 31, 73, 21,180, 86,230, 21, 41,142, 42, 45, 25,144,201, 46, 28,197, 88,244,101,177,243,196,153, 64, 43, 83,104,165,208,
-106, 51,221,248,169,216,180,170,158, 40,181,177,148,108,121,179, 92,145,102,240, 36,205, 13, 37,114, 76,208,186,202, 54,118,204,
- 68,114,223,136,197,209, 74,228,148, 15,244, 98,159, 17, 21,135,107,153, 86, 29,157,223,208,188, 82, 59, 19, 24, 57, 23,153,211,
-158, 14,161, 91, 65,145,140, 29, 45,219,154, 60,116,194, 50, 45, 38, 24, 91,153, 82, 65,109,134, 78, 83,187, 97, 57, 12, 72,111,
-163,235, 98, 35,118,111,234, 79,219,155,136,241,183, 9,148,102,212, 42, 17,143,183,118,153,197,214, 90, 69,171,172,151, 4,197,
-117, 98,135,165,179, 81,119, 45, 5, 87, 26,234,189,101,216,138,237,144,181, 53, 11,239, 52,104, 4,196, 41,222, 53, 8,130,170,
- 16,157,144, 83,182, 3,212, 9,205, 25,126,214, 55, 11,237, 41,160, 69, 9,107, 87,183,161,116,226, 64, 43,185, 88,175, 54,186,
-245,128, 44,217,166, 9,209,110, 96,181, 53,114, 89,209,153,234, 8,120, 11,137, 52, 71,108,129, 89, 51,139,154,139, 26,113, 72,
-243, 20, 50, 62, 10,154,131,229, 13, 80,194, 92,241,155, 96,127, 24,170,144,114, 37, 70,165,106,198,121,143, 68, 37,210,129,102,
- 83,188, 98, 52,181,119,222,249, 18,155,190,231,221,247, 30, 83,150,100, 31, 20,231, 63, 9, 2,170,179,177,120, 16, 35,119,125,
-124,123,195,146, 50, 33, 4, 82,201,230,106, 30,162,153,223,106,163,208,112,201, 42, 99,211, 97, 33,247, 74,105, 79, 25,150, 13,
-211,146,200,189,253, 28,143,143, 23,104,205, 26, 9, 45,179, 44, 11, 89,149, 66, 93,117,180,141,229,228, 9, 87, 61,193,207,156,
-191,250,128,167,127,253, 30,239,126,231,235,132,254,156, 94,192,135,136,247,145,224, 61,195, 24,240,253, 14, 13,247,209,211,129,
- 52,221, 48,151, 19,126, 24,208,121,161, 74, 69, 80,186,206, 51,158,157, 49,205,197, 62,115,162, 72,140, 56,173,252, 23,191,252,
-107,108,199, 31,140, 16,251,174,163,239,186, 79,126,252, 27,191,249, 95,242,159,254,228,143,120,113,253,132, 37,103, 66,188,199,
-217,121,230,201,251,239,241,241,211,143,248,254,211,107,254,199,127,250,235,252,206,239,254, 33,215,183, 7, 30,172, 97,160,148,
-102,110,175,247,156, 93,108,184,119,255, 62,205, 85,238,110, 14,236,247, 71,206,118, 35,231,155, 13,115,158,113,169, 90, 54, 67,
-196,242, 37,193,177,217, 12, 60,124,237,156,175,254,242,207,179, 45, 35, 14,225, 88,238,120,237,245, 55,152, 78, 7,190,253,141,
-111, 35,178,165,184, 76,203,109,149,247,216, 31, 98,240,156,166,140,150, 70,205, 21, 55,220, 17,198, 66,215, 5,196,123,106,186,
-230,213, 11,229,193,182,241,234,133,224,124, 64, 85, 62,249, 22, 11, 3,236, 98,103,196,197,176,162, 91,233,209, 34, 60,190,113,
- 28, 82,199,249, 54,114,170,176, 9, 30, 57,205,156,106, 35, 45, 71,115,168,111, 70,251,179,136,160,213,129,120,134,221, 5,183,
-119, 31, 83,115,161,235,251, 85,225,153,237,101, 38, 66,231,189,217,237,188,167, 11,194,232, 58,234,148,168,190,225,162,179, 9,
- 66,236,137, 94, 57, 29,102,156,243, 52,231,105, 53, 83,188, 85, 49,247,139,162, 50,176, 57, 59,231,141, 87, 35,155,251, 61,251,
-199, 19, 55,119, 39,114,182,170,102,170,246,197, 92,251,192, 86, 60,157, 12, 44, 46,179, 44, 14, 98, 98,104,129, 41,173, 85,219,
-174, 67,124, 66, 17,242, 58,133,208,214, 19,218,128, 84,165, 95, 39, 33,181,154,119,186,206, 29, 93, 39,244, 81, 32, 41,185, 56,
-202, 97,194,109, 55,182,143,214, 74,107, 30,150,202,208, 65,114,133, 62, 10, 37,103,218, 70,200,205,211,171, 35,233,132,250, 70,
-239,172,131,174, 37,225,179, 16,194,198,148,188,121, 33, 12, 17, 90,164, 21,165,206, 11, 85, 27,213, 23,194,176, 69,221,140, 6,
-207,232,183,132, 54,225,154, 61,152,244,120,160,116, 17, 52, 33,174,178,137, 29,139,131,238, 44,154,197, 47,207,204,171,189,109,
- 24,140,252, 24, 98, 32,217, 93,145,224,212,132, 91, 1,170,135,232, 10,193,143,182,155,254, 25, 14,244, 19,176, 89, 15,208, 35,
-112,156,138, 77, 87,117, 53, 86,126,102,118, 54, 91,219,184, 6,241,167,116,223,253, 79,154, 8,172,255,187,255,145,191,189,158,
-245,148,125, 64,230,192, 48, 70, 62,255,202,149, 9,193,128, 5,155, 32, 56, 32,175,151, 0, 89, 91,111, 47, 93, 35, 75,174,246,
-136,109,138, 86,229,176, 44,246,247, 22, 71, 93, 10,243,179, 61, 78,158,144,247, 51, 1,101, 84,152, 22, 7,235, 67,180, 81, 25,
-123, 88,230,192, 60,207,132,188,224,220, 57,120,193,231,231, 56,109, 8,145, 37, 37,146,191,166, 16,169,203,129, 57,120, 74,128,
- 94, 78, 56, 63,160, 51,168,156,112,120, 40, 14,183,137,232,210,161,238, 72,117,149,160,133,178, 20,188, 84,104, 91,230, 67, 36,
-189,247, 17, 31, 15,151,118,168, 59,111,187,107, 45,197,246,199,110, 37,169,137,141,148, 69,237,213, 38, 65,112, 77,236,214,236,
-148,205,253,215,184, 55, 46, 60,127,124,205,169, 88,154, 84,170,251, 36, 53, 46,212, 85,101,106,149,145,210,204,175, 46,226,237,
-189, 95, 45,217,222,104,198,120,119, 38, 89,209, 21,251,162, 84,106,182, 15,148, 11, 14, 13,224,242,202, 1,244,110, 77, 58,234,
- 75, 27,186, 49,235,155,208, 58, 11,209,181,182, 38,192,157,128,175,182, 22, 48,224, 59,218, 10,170, 74,107, 30, 9, 66,110,118,
- 9,240, 30, 51,189,149,180, 42, 42,253, 58,106,244,148,100, 7,152,147, 98, 88,206,218, 96, 81, 58,103, 99,208,170,216,205,168,
-100, 58,245,132, 94,105, 98, 47,140,232,172, 37,144, 37, 91,122,116,101,222,233,250,169, 18,132,183,190,240, 54,195, 56,240,189,
-239,189,203, 33, 37,134,110,164,143, 29,185, 20,243, 25,163,228,101,226,246,214,155, 33, 46,152,167, 57,101, 35,227,213,210,200,
- 41, 17, 98,199,249,213, 37,181, 86,168, 51,173, 66, 90, 10,141,196, 49, 39,134,227,145, 83,116, 52,239, 63, 33,238,213, 6,165,
-206,228, 50, 83, 75,161,212,130,163,145,151, 74,154, 39,150,231, 31, 19, 54,142,171,123,231, 12,187, 29,191,242, 75,191,193,146,
- 61,183,211,129,105,127,205,148, 27,249,116,164,164,132, 11, 17,156,242,240,242, 21, 74, 90,136, 69,120,112,113, 73, 14, 71, 94,
- 28, 28,197,159, 16, 9,204,211,204,213,249, 57,131,143, 60,190,185, 35, 58, 8,155,142,205,249,229,223,250, 7,253,236,236,140,
- 55,222,124,133,143, 63,124,204,180, 63,240,238,199, 47,248, 39,191,249, 53,110,238, 30, 19,187,198,183,191,241, 61,246,255,232,
-171, 28,231,180, 94,182, 28,243,205,204,105,127,199,254,120, 96, 90, 14,148,101,225,193, 43,151,184, 93,227,238,144, 13, 97, 28,
- 29,154, 13,113,252,242,146,170, 41,241,218, 91,111,240,181,255,250,159, 82,239, 14,244,165, 82,242, 66, 12, 29, 67,191, 97, 51,
-108,152, 31, 63, 99, 19, 59, 66, 63, 82,202,204,220, 47,182, 39,173,142,139,152,136, 57,115,229, 79, 68, 14,140,125,161,239,206,
-120,244,100,207, 23,223,190,207,231,223,112,204,143,159, 17, 46, 46,141,205, 80, 33, 86,243,120, 59,169, 44,174,193,198,211, 19,
- 32, 4,194,166,195,221, 38, 56, 19,150,187,196,205, 93,198,133, 13,231,195, 57,161, 84,168, 74,212,194,205,109, 69,169, 76,211,
- 29, 34,202,184,187,132,102,204,119,233, 28, 37, 85,134,126, 67,209,163,129,155,154, 7,239, 88, 45,204, 54, 6,119,230, 93,151,
-206,227, 99, 79,118,149,232,123,106, 41, 84,117,212, 82,216, 79, 21,161, 90,221, 78,132,162, 48, 32, 76, 84, 22,223, 19, 55, 59,
-206,207, 2,157, 84, 62,250, 96,207,233,102, 97,154,103, 74,237,241, 33, 82,164,176,180, 74,153, 42, 97,240, 52,151,236, 59, 33,
- 39,118, 46, 16, 9,204,173,210,121, 40, 57,127,114,169, 46,181,224, 17,188, 79, 56, 47,196,110,139, 27, 35,156, 38,124,139,248,
-146,168,222,248,234,209,121, 22, 10,157,143,208, 57,106, 73,136,136, 17, 21,235,130,120, 27, 97,163, 13, 87, 77,197, 27,219,186,
-150,104, 25, 33,227,188,146,178,226,221, 25,137, 59, 10, 29, 73,149, 24, 55,224, 22,219,173, 10,200,224,201, 53,209,137, 71, 36,
-226,146, 25,223,134, 81, 72,117,166, 52,199, 86,108, 53, 55,229,194,216,197,149, 20,185, 48,107, 68, 75,101, 57, 45, 70,169,220,
- 88,250, 57,120,152, 5,235,115, 23,243,169, 55,177,118,146,184,138,211,130, 22, 40, 62, 48,244,221,207, 68,126,115,134,158,255,
-193, 69, 26,251,238, 47, 43, 0,167,143,241, 51, 59,212, 75, 81, 92, 45,150,123, 10,159,177, 22,181,169, 53,183, 4,235,246,175,
- 78,249,176,254,247,229,127,226,203,255,211,238, 71,110, 15, 63,178, 98,168,187,136,137,187,237, 61,255,193, 43, 23,124,243,235,
-133,116,247,156,206, 57,114, 20,166,156,168,116, 68,157, 0, 79, 41,133, 67,190,193, 95,108, 24,117,228,116,187,103, 92, 34, 55,
-181,208,188, 80,124,193, 43,140,178,195,199, 35,174,141, 52, 6, 98, 59, 80, 92,162,158, 38, 66, 27,232, 6, 79,105,141,141,246,
- 84,122,146,155,105,174, 32, 5,156, 27,112,113, 36,178,144,253,194,215, 15,137,119,255,245, 95, 82,142, 95, 39,120, 31,144,151,
-135, 81, 19,123,181,161, 80, 65,157, 88, 8,161,130,203,106,125,116, 26,184, 70,118,145,207,125,249, 87,249, 31,222, 89,248,227,
-223,253, 15,124,253, 90,105, 75,181, 32,130,179,125,151, 45,217, 61,181,218, 66, 95, 80,162, 40, 69, 87, 35, 91, 19, 35,200,173,
-221,116, 95,141, 23,239,229,101,229, 77,105, 98, 35,110,106, 53,162,155, 91,143,240, 44,248,206,210,128,173,217, 17,169,206,174,
- 3, 53,155,223, 92,116, 69, 16,198, 8, 43, 52,163,174, 59,199,128,162,222,236,107, 37,151, 79,104,115,100, 51,204, 41, 74, 43,
-224, 67,179,253, 23,130,115, 38,135,137,222, 58,245,234, 5,223, 11, 78, 35, 81,140, 80,167,213,254,249,174,239, 87,239,174,176,
- 52, 33, 52, 51, 64, 69,137,120,223, 67,104,232,100,187, 65, 71, 67,164,195,121,229,213, 55, 94,165,235, 59,190,243,157,119,121,
-113,119, 68, 66, 64,130,133,231,188, 19, 66, 23,120,122,243,204, 46, 58, 17,150,197,126,109, 93,133,172,133,171,123,247,248,210,
-231,223,166,223,142,124,248,193, 7,136, 15,220,221,158, 8,205,184,216,173,155, 56,228, 4, 39, 35,226,137,116, 70, 94,106, 88,
-216, 9,152, 15, 51,237,101,118, 65, 3,167,195, 45, 50,156,227,124,199,221,243, 39, 60,250,246, 55,141, 96, 21, 58, 54,195, 5,
-103,231,247, 12,252, 83, 46, 13, 52, 84, 10,167,227,173,217,138, 28,108,182,155,213,172,215,115,207,119, 60,187, 89,168,100,206,
-119, 3,189,247, 84, 93, 12, 36,227, 26,154, 26,211,225,248, 83,172, 81,133, 52, 21,118,231, 87,208, 18,105,233,233,183, 15,209,
-149,172,246,238,163,239,243,236,110,194, 85, 71,154,142, 28,151, 45, 13, 56,205,139,173, 77, 90,224,249,237, 29,139,102, 94, 63,
-191,162,247,149, 82,204, 81,223,196, 35,162,184, 98,140,241,165,101,158, 63,187, 97,186,153,185,186,122,149,235, 39,239, 50,140,
- 14, 87, 51,159,127,243,171, 8,240,253,231,215,120, 81,122, 61, 90,182, 4,143,180,198, 23,198,231,120,157, 73,163,240, 96, 87,
- 8,109, 65,189,227, 46, 45,148, 71, 11,191,250,155,111,194,233, 49,213,193,195,171,130,139, 61,167,131,131, 14,216,246,224,149,
-174,234, 58,202,245,132, 24,113,110, 68,130, 25, 15,143,183,133,219,195,196,249,189,183,136,221, 22, 14,215,148, 83,101, 18, 11,
-140,122,231,200, 57,155,171, 62,118,132,110,131, 72,160,181, 66,144, 8,227, 6,113,194, 52, 29, 17, 87,168,185, 80,106,166,243,
- 17,117,150,192, 31,199, 13, 1,207, 16, 60,167,101,161,235, 5,217,158,113,186,155,168,243,132, 35,154,208,169, 40, 34,133, 41,
- 43,179,107,184,176, 97,220,189,206,217,133, 39,250, 3,251, 67,193,105, 92, 17,211, 17,215, 26, 83,106,164,146,209,220,232,156,
-195,251,142,146,102,170, 23, 36, 6,166,162, 44,221, 66,183, 3, 95,148, 67,171, 72,139, 54,230,198,211,168, 12, 50, 16, 6,103,
- 99,208,187,196,128,131,205,154, 9, 82, 33,116,141,101, 41, 84, 50, 4, 33,184,106,225,221,213, 51, 49,148, 13,201, 37,186,160,
-212, 58, 48,251,133, 94, 60, 93,141, 20, 81,106,141,168, 70, 98, 41,204,193,161,105, 97,187, 9,204,185, 33,197, 80,196,217,101,
-220,104,154, 94,106, 54,208, 11, 21,167, 91, 74,205, 8,149,105, 82,124,203,208,119, 76,173, 24,132,203,123,212, 45,200, 46,162,
-203, 96,102,189,206,104,149, 81, 43,116, 35,227,176, 78, 22, 23, 97,174, 21,162,167,223, 40,164, 66,245, 66,107,158,224, 26,190,
-247, 56,113,116,209,127, 38,132, 54,183, 10, 87, 68,149,226, 28, 49,126,118,227,247,164,186, 62,160, 28, 42,254,255, 23,184,243,
-159,250,241,223, 87,202, 90, 75, 51,162,156,107,196,240, 15,191,136,124,114,214,191, 12, 19,138, 49, 1,130, 19,170,154,129, 47,
- 87,172, 53,177, 88,229,181,212, 72,110,142,208, 22,242,236, 81,173,168, 84,194, 24,200,115, 37,248,134,171,129,197, 5,182, 99,
- 79, 21, 71,157, 26,241,204, 26, 21, 4, 79, 22,143, 78, 51,190, 55,205,106,157, 14,120,109,168, 90,112, 83, 28,204,211,145, 41,
-218,218,219,119, 61,233,242, 21, 38,132,224,176,194,187,174,166, 54, 93,123,228,118, 62,138,117,143, 81,243,141, 27,246, 1, 47,
- 17,239, 42,207,191,245, 23,252,217,181,240,100,178,157, 96,176, 24,188,129,106, 20,131,169, 84,219, 97,171,151, 31,252, 53,103,
- 48, 3,195,193, 54,235,151,250,178, 66,230, 86,133,233, 10,157, 11, 86, 12, 4,111,137, 92, 93,145,172,184, 70,203,150,127,192,
- 85,180, 9,162, 66, 11,246,247, 87, 53, 41, 72, 21,104,174,128, 90,216, 33,231,178, 6,255,108,154,160, 6,180, 39,116,206,120,
-196, 89,137,226, 44,184, 81, 50,234, 28,185, 25,112, 65,196, 81,114, 93,131, 68,138,111, 74, 77,128, 20,186, 16,209,182,226,118,
-189,197,248,144, 72,104, 98, 1, 41,103,225, 31, 20, 92,172,248, 92,105,173, 33,205,252,206,205,182,238, 40,149,203,251, 15,248,
-213,221,134, 71,143,190,207,163,247,159, 90,190,176, 42,103, 87,103,252,252,207,125,129,247,223,251, 62,143, 62,122,198, 40, 27,
-180, 21, 51,214,105,195, 17,249,202,151,222,225,234,254, 22, 84,216,124,249, 43,180, 6,115,158,200, 83,194,187,142,221,110,224,
-241,147,143,120,250,244,104,191,155, 50,211,133,145, 70, 64,235, 66,174, 51, 57,103, 28,214, 71,173,181,218,120,191,156,232,117,
-228,250,250,142,126,247,128,216, 15,204,121,207,237,221, 11,230,156,137,181,145,171,141, 25,251,184,193,139,103,232,133, 41, 85,
- 52,216,103, 1,233,232, 46, 29,113,138,180,226,240, 49,174,174,110,143,143,141,211,146,137,161,240,245,191,252, 11,190,246,181,
-223,160,239,187, 31,251, 7,237,253,247, 62,228,131, 15,222,231,181, 87, 95, 99,220,237,192,111,120,254,228, 9, 76, 13, 87, 34,
-199,219,103, 60,122,247,125,148, 70,231, 34,117,105,236, 79, 51, 23,187, 45,173, 66,109,141,128, 48, 79, 11,183,113,143, 70, 79,
-175,158,227,146,168, 90, 44, 83, 82,170,125,246,188,141,209,238,158,126,200,253,205, 6, 36,147,102,197,249,158,243,179,158,253,
-211,175,179, 13,143,136, 2,199,121,203,102, 19, 56,203, 21,164,242,202,189,133,233, 4,110,138, 52, 10,210,121, 72,194,243,103,
- 71,182,247,207,216,141,133,235,239, 63,101, 28, 58,100,211,115,188, 25,169,229,110,229, 27, 84, 66,223,225,218, 14, 23,193,185,
-128, 23, 27,239,226,149,229,232,121,116,179,227,195,147,242,243,159,219,210,220,200,243,169, 17,155,178,204,153, 37, 79, 8, 16,
-199,136,184, 64,154, 22,212, 11,145,113, 85, 16, 87,130, 15,136,239,169, 49,147,107, 33,132, 72,169,101,109,190, 52, 66,236, 57,
- 59,123,192,249,189,123, 12,227, 21,183,251, 39,196,222, 70,225, 81,140,222,168,181,146,138, 93,150,251,104,125,106,245, 35,219,
-225, 62,187,173,160,203,145,219,101,166,247,208,123, 79, 6, 74, 13,148,188,144,106, 70, 51, 28, 14,123,238, 93,245,252,220, 23,
-239, 49,207,129,103,199, 35,125,180,149, 95,142,133,187,155, 3, 47,174,175,137,126,195,235,175,188,202,177, 36,124,107, 4,215,
- 16,169,104,139,180,156,240,126,196, 7,103,149,169,147,162, 20,124, 52,208,120, 71, 67,179,163, 9,196,173,208,138, 61, 54,212,
- 37,106, 81,166, 90,169,109, 54, 36,167, 64,214,134,182, 96,235,188, 65,200,115, 3,215, 35, 52,234,172,196, 65,200, 65,112, 11,
- 4,239,169,197, 19, 26,168,203, 68,215,152, 22, 37,236, 26, 44, 24,209,207, 53,134,190,103,113,133, 82, 33, 23,103,176,159,206,
-130,198, 13, 65,157,237, 69, 99,117, 36, 31,232,166,133,218,108, 53,210,162, 82,151,140,248, 64,206,153,236,133,141, 88, 11, 72,
-125, 79,109,235,247,175,243, 63, 51, 88,229,135, 14, 94,160,164, 98,185, 35, 32,126,134, 47,106, 49,118, 23, 77,173,170,247,233,
-139,132,252, 45, 63,231,186,254, 56,124,106,167,254,233, 3,119, 86, 88,166, 76,107,109,117,130,132, 31,170,186,125, 22, 64,218,
- 92,204, 43,226, 29, 28, 74,101, 74, 74,144, 30, 55, 77,164,166, 36, 45,160,153,128,195,157, 2,141, 9,215,195,161, 58, 92,217,
-224,234, 45,161, 68, 90,107, 56, 58,246, 37,227,202,137, 74,163, 46,142, 48, 20,160, 67,150,194, 84, 11, 74,228,164, 19,174,101,
- 70,191, 5,215,113,200,119, 22,104, 45, 11,210,237, 24,171,240,139, 95,220,242, 43,255,243,127,203,247,159, 94, 17,112,206,226,
-248,230,248,179, 95,200,108,227,110, 39, 43,216,197,131,120,143,150,182,150, 6, 5,239,149,252,226, 49,127,241,194,210,165,118,
-248, 11, 72, 4,193,210,211,110, 69,155, 54, 16, 53,196,107,105, 86,163,241, 56,123,193,171, 17,200,218,122,137, 48, 81,131, 29,
- 82, 34,193,144,161,235,225,167, 78, 86, 73, 12,159, 48,174,113, 66,112,172, 85, 44,108, 7, 36,142, 32, 74,198,254, 61, 20, 19,
- 97,212,102,216, 82, 93,245,173,130, 82, 74, 35, 68,161, 38,163,141,137,183,159, 79,158, 51,206, 59,130,218,184, 8,111,136, 91,
- 39,142,214, 26,222, 91,127,190, 85,243,123,215,100,146, 25, 21, 65, 20,124,177,169,133,250, 96,105,222, 48,224, 37, 67, 51, 39,
-188, 23,104,209, 94,157,218, 48,152, 14,142,230,132,208, 18, 97,136,188,253,165,183,216,237,206,169, 53,115, 56, 45,156,157, 95,
-210,143,145,135,175,220,231,163,143,111,208, 82,233,134,184,122,163, 43,125,216,224, 98,100, 78, 86,193, 25, 70, 83, 93,246,253,
- 14,189,104, 72,242, 60,127,254,156,187,187, 19, 14,165,204, 51,205,121,178, 59,130, 55, 52,173,106,229,101, 35,194,225,112, 93,
- 88,237,123,133, 89,149, 23,143, 31, 49,205, 47, 24,135,183,184,216, 92,114,113,246,144,219,219,103,244,206, 48,164,115,177, 3,
-101,217, 31,121,243,245,175,130, 6, 90,154, 41, 65,104, 45, 32,203,108,122, 95, 23,168, 75,165,219,120, 42,106,142,240,224,241,
- 10,143,191,255, 33,255,230,223,253, 91,254,249,127,243,223,209, 5, 79,252,212,232,239,250,249, 53,127,240, 7,191,199,233,238,
-150,235, 6,178,143, 76,169,241,246,195,192,197, 89, 79,107,149, 37, 87,254,245,255,241, 59, 72, 28,105, 34, 44, 9,134, 93,207,
- 63,249,173,175,240,127,253,135,111,241,244,238, 22, 51, 86, 11,105,177, 26,166, 15,144,150,180, 34,132, 65, 42,104, 23, 9, 94,
-120,184,187, 36, 68,199,205, 71,239, 18, 58,225,112,154,121,253,231,190, 68, 44, 79, 56,119,223,100,120, 53,177,191,117, 12,187,
- 91, 54, 99,166,157, 58, 62,122,218,113,151, 3, 23,103, 71,182, 15, 28,233,197,108, 19, 37,231,120,126,211,120,248,246,142,116,
-216, 35, 45, 65,236, 56,220,118,224, 50,190, 87, 52, 85,154, 44,116,125,135,122, 65, 7, 65,178,210,150, 68,206, 71,188,122,158,
- 94, 15, 60,158,206,232,251,142,155,219, 59,196, 39,202,162,168, 43,102, 64,212, 12, 78,232,194, 64,236, 70,235,237, 47, 9, 25,
- 35,173, 57, 68, 76,119,107,169,183,142,150,109, 28, 26,215, 44, 71,109,141,205,112,193,120,190,227,193,229, 61,230, 35, 76,185,
-225,155,173,128,232, 4,124, 32,169,221,144, 5,199,210, 26,125, 23, 25,119,247,233,134, 30,209, 76,201,137, 60, 85,234,208,177,
-144,232, 53,178, 52, 37, 85,135,150,142,170,153,172,149, 39, 79, 15, 44,105,207,151,223,124,157, 23,127,249,140,143,158,156, 24,
- 98,228,233,205, 19,110,158,223,225,154,145,229, 92,239, 56, 59,123, 96,181, 75, 38,240, 13, 41,222, 12,138,100,150,230,200,197,
-225,135,128, 43, 5, 85,143,108,140,194, 85, 74,181,239, 29, 21,234,146,104, 40, 41, 20,180,244,116, 77, 13,104,163, 30,151, 43,
-211, 18, 80, 89, 24, 46, 34,170,137, 84, 10,204, 21,113, 29,213,121, 92, 81,164, 21,170, 20,186,230,241, 14, 78, 53,177,137, 30,
-178,183,106, 97, 62,225,182,129,124,108,116, 97, 68, 27,196,224, 40,157,173, 11,187, 97, 64, 93, 37,157,236, 21, 47,234,140, 59,
-191,233, 33, 10, 12, 30, 21, 79, 89,167,135,226, 35,199, 19,196,170,196,141,241,197,131,119,168,203, 54, 80,246,202,184, 27,127,
- 50,148,229, 83, 7, 96, 94, 15,186,254,101, 71,125,125,149,134,245, 16, 45, 73, 73,203,178,230,171, 62, 91,233, 74, 45,109,101,
-111, 56,179,168,253, 4,248,139,251,145, 31,251,191,101,223,142,109,101,168, 24, 63, 4, 17,124, 63,124, 42,112,103, 23,149,237,
-167,113,178,107,134,224,211,193, 59,247, 83, 38, 5,211, 60,211,218, 66,195,227, 87, 7,130,235,149,124, 91, 80, 58, 58, 47,100,
- 61, 34, 62,160, 93, 79, 57, 28,105,197, 83, 66, 15, 67,164, 78,141,230,103,124, 56,163,164, 66,235,102, 98,128,232, 27,126,240,
-236,143,130,204, 71, 2,231,200,118,135,182, 35, 29, 14,189,244,212, 69,113,243, 76, 44,166,218, 29, 7,129,141,178,193,241,213,
-215,183,124, 65,206, 89,206, 49,162, 92, 67,241, 47, 3, 96,120,178,227, 19,222,187,119,110,149,184,120,154,232, 15,232, 57, 5,
-130,120,226, 90, 13,123,249,101,216,164,125,178,143,111,168,225,103,197,222,248,205, 53, 11, 70,172,157,115, 47, 74,171,197,110,
-130,171,222,213, 85, 71,109,198,141, 86,209, 53,125,105,123,138,182, 34, 85, 95, 86,219,156, 98,176, 14, 21,219, 49, 97, 47,246,
-134, 35,169, 65, 32, 80, 49,248,189, 84,208, 70,117, 54,150, 67,188,133,201,104,148, 82, 77, 60, 34,107, 23,163,218,175, 71,173,
- 10,222, 83,197, 33,162,248,232, 9, 56,114,158, 41,217,211,247, 27, 74, 49, 45,107,213,134,167,208, 36, 80,115, 69, 54, 17,130,
-179,169, 68, 3,159, 87, 37,173, 20,124, 11, 20,177, 47, 17,141,118, 33,104,174, 64, 21,131,245, 7, 97, 94, 50,170,194,195,123,
-247,136,131,167, 84, 49,226, 83,106,156,157, 95,240,234,195, 11, 30, 63,189, 37, 47, 70,246,138, 93,224,236,226,156, 32, 80,106,
-163, 73, 99, 33,211,240, 48,191,236,114, 86, 62,122,250, 17,143,159,191,160,243, 1,156,193,115,178, 90,231,190, 54,161,185,117,
-114,211,148,110,231,173, 81,224,172, 25, 17,170,224, 78, 19,154, 10, 79, 63,252, 14,199,124, 66,157,195,227,145, 40, 12,177,163,
- 15, 27,206,118,247, 56,138,112,182,219,177,159, 38,134,176,163, 54, 33,170, 50, 79, 71,235, 27,123,147,205,120,223,184,221, 79,
-148,234,232,123, 33,137,227,120,218,243, 71,255,207,127,228,155,223,248, 14,247, 46, 47,120,112,239,146, 47,189,243,121, 88, 22,
-126,239,223,255, 33,239, 63,126,204,188, 63,112, 58, 77,196,205,134,219,155, 59,254,223,161,241,171, 95,126,157, 40, 66,109,202,
-120, 54, 82,179, 99,105,133, 24,160,204,153, 15,223, 59, 49,149, 25,175, 6,199,120,137,167,240, 78, 89, 84,215,254,181,224,130,
- 17,178, 28,142, 94, 60,103,151,247, 72,251,138,187,223, 56,223, 69,222,184, 55,240,149, 47,110,233,239,254, 35, 26, 23, 14, 93,
- 79,139, 39,134,169, 80,138, 33, 64, 47,174, 64, 36, 89,130, 41,247,168,159, 16,215,113,183, 20,138,115,124,238,141,135,148,235,
- 15,233, 66, 79,115,158, 90, 19, 93, 95, 56,165, 72,208, 72,136,141,148, 19, 54,106, 50,175,114, 62, 57,110,246,142,167,215, 29,
-251,101, 96,244,202,112, 21,160,235, 56, 30,102,156, 47,180,230, 41,115, 66,124, 71,236, 61, 33,122,243,219,171,176, 28,246,220,
- 29,239,184,188,188,180,133, 87,174,228,102, 47,205,214, 15,164,154,104,106,248,206, 86,149,243,243, 43,118,155, 11,198,205, 25,
- 47,158,191, 71, 43, 11,169, 26, 24, 67,168,120,107,151,161,186,126,198,125,160, 31,175, 8,113,196,187, 74,107, 25,145,104,137,
-241,140,237,225,163,163,250, 68,178, 14, 4, 75, 58,226,125,227, 23,127,225,115,164, 60,243,231,255,249,187,148,165,242,252,197,
- 19,158,127,124,141, 11,194,102, 24,113,193, 32, 27, 79, 30,189,135,255,252,192,118, 59, 90,218,183, 58, 36, 42,174, 23,131, 74,
-105, 71, 80, 8, 90, 89,180, 18, 11,244, 1,102,239, 9,126, 67, 45, 39,234,105,213,175,138, 9,125,134, 80, 41, 85,112,100, 74,
- 22,212,213,117, 28, 15,237,164,230,147,112, 29,161, 11,204, 62, 19,154,224,155,218, 84,175,223, 80, 45, 73,134,111,149, 84, 71,
-144,108, 50,169,214,163,139, 97,176,203,148,169,222, 49,248,145,214, 42, 50, 40, 77, 19,109, 47,248,234,169, 99, 69, 6,135,207,
-133, 69,103, 34, 91, 91, 48,204, 11,226, 60,101,191, 16, 8,184,161,225,134,141, 77, 55, 91, 35,231,198, 38,142,102, 27, 44,208,
-253,132, 49,185,251,145,157,114,248, 17,142,155,251,212,143, 51,112,147, 77, 6,148, 90,161,113,142, 23, 0, 0, 32, 0, 73, 68,
- 65, 84,165, 15,145, 69,127,112, 0, 46,216,134,232,103,141,206, 45,185, 82,138, 77,119,253, 63, 96, 2,224,126, 28,237, 77,219,
- 58,101,244,156,125,202, 84, 23,249,225,154,157,124,234, 66,243,147,254,153, 63,122,168, 79,192,225, 52,211,202, 68,201,153, 30,
- 72, 90, 44,204, 24,132,150, 23,188, 4, 66,232, 8,203,196, 41, 47, 52,141,148, 58,209, 82, 35, 72, 97, 16,225,168,133,224,102,
- 52, 24,143,164, 86, 91, 69,248,147,152,183,161, 8, 69,178,181, 73, 74,162, 15,158,244, 60,209,188,208, 74, 37,186,158, 83, 77,
-116, 94, 24,171, 35,151, 68,191, 25, 1, 79,106, 16, 60,158,230, 44, 92,224, 94, 26,115,212,217, 72,219, 16, 13,171,200, 69,215,
-145,181,141,171, 85,130,237,157,155,237,216,197,123, 11,190,181,213, 8,227,141, 72,231,197, 58,133,205,173,213, 47, 49,212,107,
-203,213,168, 72, 47,251,144,162,120, 9,182, 71,199, 17, 58,135, 40,148, 98,123,115, 39,209,122,181,171,130,209,254, 53,214,215,
-108,222, 38, 10,157, 4,170, 87, 74,179,241,187,119,166, 46, 44,206,172, 85,110,221, 79,138,179,215,246, 74, 93, 52,176,136, 96,
-248,197, 82,215,202,213,218,159,198,234,106,150,210, 95,236, 38, 31, 87,173,234,186,178,168,190,224, 75,195,181,128, 43, 54,157,
-104, 8, 46, 91,213,199,135,206, 94,193,226,104, 20,230,214, 80,173,132,106,247, 27,234, 58,133,112,142, 42, 21, 71,135, 68,197,
-103,187,116,100, 53,253,161, 58, 75,113,123, 31,248,202,151,222,225,254,195, 3,185, 38,134,113,100,211,111,233,198, 14,209, 66,
- 43, 17,223,155,186,146,220, 8,206, 28,218, 55,251,107,110,175,111,108, 76, 39,142,136,167,170,251,132,205,223,124,163,101,251,
-253, 84, 17,188,115,212,154,152, 21, 54, 97,160,245,149, 83,153,184,188,119,159,216,117,228,230,168,243, 76,106,153, 99,157,201,
-165, 66, 61,113,188,121,142,139,157, 9, 71, 92, 37,173,230,168,165, 40,172,181, 67, 4, 74,104,248,248, 50, 51,224,200,115,195,
-105,166,133, 98, 59,112,247,148,180,191,227,253, 15,222,229,207,254,226, 79, 41, 83,102, 90, 18,203,124,203, 60,207, 44,173,176,
-153, 50, 85, 23, 62,248,254, 51,126,233, 11, 15,108,100,223, 10, 55,199, 59,186, 56,178, 25, 7,230,211, 66,163, 50,205, 51, 85,
-215,117,144, 49, 73, 8,162,108,134,158,227,105,162,105, 37, 52,112,179,210, 44,198,192,229,131, 75, 62,247,160, 35,184,202, 69,
- 55,240,133, 87,110,120,235,171,255, 24,233,133,229,100,149,147, 33, 85,102,231,168,190,209,242, 57,170,202,217,246,136,182, 64,
-229,138,114, 56,208, 82,133, 51,199,147, 23, 11, 23,151, 27, 6, 89, 56,201, 1,221,192, 48,128, 31, 6, 90, 43,148, 59, 51,133,
-157, 52, 48,212, 74,217,207, 76, 75,230, 46,119,188,127, 29,153,231,158,180,114, 21, 36,118, 92,157,141,212,234,185, 93, 14, 36,
- 38,242, 2,121, 57, 89,109, 47,120, 11,123,182, 96, 59, 56,204,212, 54,197,158,126, 99,175,152,224, 26, 45,118,116, 98,198, 66,
-117, 2,146, 41, 73, 56, 27,122,222,122,237,138,139,139,115,190,245, 87,123,136, 66,155, 11,115, 58,225,102, 24, 55, 29, 62, 10,
-117,113,136,143,244,103, 15,136,103, 59, 68, 11,129, 5,231, 60,115,134,166,214, 88,169,185,225, 90, 50,233,156, 64, 37,115, 74,
- 51,175, 92,116,252,247,255,236,171,124,253,111,222,227,247,255,240,175,185,119,241, 42, 95,124,243,117,182,177,231,241,243, 23,
- 28,150, 76, 23,157,141,214,181,241,228,241, 99,222,249,252,231,112, 46, 16,157, 18,139,210, 34,150, 18,198,170,105,181, 6,134,
- 2,205, 43,139,102,243,171, 91,210, 21,137, 74,213, 68,206, 38, 98,129,198, 82,214,183,154, 24,246,147,222, 19, 22,161,229, 74,
-127, 30, 12,126, 19, 5,169, 66, 91, 38,180, 10,221,184, 33,100,161, 48, 35, 18,232,253, 64,106,230, 63,112,209,163, 29,232,146,
- 16, 55, 34, 90,112, 29,104, 84,220,177,162, 62, 50, 77,149,209,117,200,232, 80,153,209, 56, 26,217,178, 22, 90, 72, 44, 71,203,
- 18,117,113, 93, 81,141,158,221, 38, 48, 55,101,174,137,179, 94, 16,177,138,177, 52, 79,232, 59,198,177,251, 59, 31,136,159, 62,
-192, 62,141,171,233,214,106,121,106,213, 30,105, 94,217, 14,225, 39,190,144,255, 94, 33, 57, 32,167, 68,211,102,174,144,207, 48,
- 85, 95,212, 86,177, 65,148,248,119, 64,196,254,232, 95, 13, 63,102, 77,192,143,132,235, 20,152,115,162,104,165, 86, 97, 86,168,
-222,218, 21,210,132,156, 10,245, 48, 81,181,209,141,231, 84, 89, 80,122,144, 70,190, 62, 18,206, 3,231,117, 67, 77, 66,199, 9,
- 63, 56,138,139,212,101, 97,246,208,230,163, 57,217,135, 13,131, 42,167, 85,169,155,197, 19,171,163,185,140,107,194, 38,108,168,
-117,134,147,226, 98, 88, 45,147,149,114, 82, 66,117, 47,181,169,206,196,239,106,175,113, 93, 83,143, 77, 60,226,204,181,110,190,
-150,182, 6,119,214, 78,183, 83,112,230, 18,246, 56,147,148,180, 8, 78,136,174, 25, 32, 64, 27, 62,172,149,154,214,112,226, 41,
-174,174, 92,121, 91,158,139,179,157,116,109, 25, 39,150,202, 38,216, 24,221,240,178,182,131,111, 52,210,122,208,135, 0,117,174,
- 16, 28, 21, 71,171,206,190,152, 0,180,179,221,187, 54,242,210,108,117,192,203, 73, 67, 67, 34, 68,132,172,150, 90,237,229,255,
- 99,237,205, 98, 45, 75,207,243,188,231,251,135,181,214,222,251, 12, 53,116,245, 88, 61,112, 38, 37, 82,180, 76, 39, 82, 36, 74,
-148, 37, 37, 78,100, 9, 9, 32, 88,113,128, 0,214, 69, 46, 18, 32, 1, 2, 4,200,101,224,171, 92,229, 34, 64, 6,192,129, 51,
- 8,200,128, 0, 70,224, 68,177, 69, 71,130, 16,197,178, 72, 81,164, 56, 72, 34,155,108,246, 60,213,112,170,206,180,247, 94,107,
-253,211,151,139,111, 85,117,177,173,144,138, 36, 52, 26,232,234, 83, 56,117,206,169,115,246,250,255,239,123,223,231, 89, 72, 65,
-226,112, 62,216, 78, 28, 65,107,125,168, 28, 52,135, 58, 86,161,107, 74,166, 17,156,167,149,138, 58,207,220, 20, 47, 74, 23, 61,
-174, 21, 27, 51,247, 1, 39, 17,231, 27,162,133,154, 29, 77, 10,195,202, 96, 38, 62, 58,124, 22,170, 52, 83,108, 46,240, 28,169,
- 66, 63, 68,114,105,184,218,232,125, 68,139,146, 92, 65, 85,136,253,138, 39, 14, 6, 99, 59,135, 30,105, 86,211,171, 56, 99, 18,
-103, 59, 84,120,239,105, 90,112,222,190,118,226,252, 67,169, 67,140,129, 32,222, 38, 35,170,212, 44, 4,255,128, 9,174,248, 4,
- 29, 22,232,201, 57,211,230,142, 91,119,239, 50,158,126,155,126,216,224, 99, 79, 23, 61,113,221,227,187, 53,155,213, 26, 65, 8,
-171, 3,182,121,203,249,253, 83,130,157,147, 40,121,182,190,123,244, 6,204,168,149,185,244,232, 62, 49,132,158, 81, 38,138, 8,
-190,236,205, 1,150, 12,120,225,189,195, 79,149, 41,237,184,156,246,108,199, 75,171, 29,145,201,187,204, 60,120,138, 54,238,140,
- 39,188,242,246, 93,226,106, 69, 20,225,236,100,203,209,113,224,217,231,143, 77,147,153,205, 56,232,101, 32,185, 9,143, 18, 37,
-128, 15,104, 17,230,212,208,162, 38,210, 64, 81,129,227,131, 21, 63,249, 67, 55,184,249,116,230,221, 83,143,115, 23, 28, 29, 94,
- 67, 14,110,146, 79,111,195,240, 12,180, 13,125,184, 96, 85,207,200,229, 10, 78, 58, 58,119, 6,171, 64, 58, 19,104,103, 56,151,
-137, 7,142,253, 88, 56, 61,175,124,252,211, 31,160,230,123,184,150,185,220, 59,134, 85,224, 96, 0, 55,122, 14, 14, 10,111,159,
- 52, 94,127, 11, 14,214, 14,207, 33,231, 23,141,153,158,222, 5,170,239, 24, 6,171,202,141,185, 33,108, 8,226,152,234, 72,158,
- 26,243, 52, 51,151, 76, 83,165,186, 74, 77, 25, 41, 91, 27,147,171, 16, 92,100, 26,119,224, 3, 33,246,139, 41, 14,112,129,206,
-175,200,204,164, 42, 92,185,118, 68,119,180,230,240,224,152,182,155, 24,167, 4,189, 1, 72,214, 18,153,200, 86, 67, 69,232,186,
-136,116, 43, 54,171, 35,250,224,112, 37, 49,207, 51,161, 63, 36,198, 64,214,104,135, 81,141,104,112,208,132,150, 39,198,201, 84,
-176,247, 46, 43,191,247,251, 47, 45,246, 43,229,206,221,119, 88,175, 27, 63,242,169, 23,248, 81,255, 33,190,250,226, 43,188,254,
-218, 29,214,174, 67,112, 76,211,196, 91,183,111,243,228,147, 79,179, 90, 69,147,174,204,149,232,134,197, 50,231, 81,241,132,230,
-217,107,182,126,187, 52, 90,171,172, 36,146,138, 9,167,106, 49,228,245, 28, 20, 47, 29,201, 57,186,117, 52, 10,228,174,208, 2,
-104, 31,105, 41,131, 58, 84, 61, 45, 55,188,174,104, 94, 73,173,146,107,194, 43,132,190,225, 58, 33, 54,135, 52,227,170, 51,103,
-162,219,224, 37,216, 42,174,122,116,191, 99,213, 7,116, 63, 83,116,192, 31,116,120,167,132,186, 34, 77,129, 18, 27, 97,180,117,
- 95,136,221, 18,234, 83, 84, 26,109,182, 70,207, 16, 21, 23,173, 77,180,118,246, 90, 72, 16,196,117,198, 25,249, 75,224,167, 79,
-185, 34,205, 2,211,113,245,189,187,239,240, 23,124,168,151,130, 1,187, 98, 48, 27,202, 35,123,252,248,200, 99, 62, 63,178, 14,
-120, 48, 50,119,239, 67,194,126,207,175,139,210, 82,165,101,197,245,242,151,170,138,125,240,177,207,243,204,202, 41,179,135, 57,
-229, 69,128,212,200,187, 61,110,125, 72,214,153,189, 38,162, 40,171,174,177,203, 30,241, 14,167,197,166,122,251,153, 77,131, 34,
-144,106,135,248, 25, 95, 42,190, 53,166,150,141,219,226, 87, 20, 26,110,170,148,150, 12,173, 78,193,201, 64,107, 3,165,237,209,
-222, 83,242, 4, 73, 56, 8, 27,222, 26,143, 72, 56, 78, 78, 19, 65,181,162,213, 88,233,178, 40, 82,131, 55,219, 79, 83,227,157,
-179,116,199,213, 89, 74, 94,104, 6,154,193,129,154,177, 72,197, 82,216,136,221, 14, 16, 35,190,217, 62,253,193, 72,183,154,175,
- 61, 40,190, 51,212,163,170, 25,201,106, 43,118,243,118,106, 58,206,102,112, 26, 84, 17,241,152,243,209,118,174, 56,115,142,183,
-172,104,176, 74,150,119,129, 89, 0,191,140, 80,155, 82,117,217,141, 54,197,105,163,169,144,106, 65,125,176,240,202,226,127,175,
-213,222,246,224, 59,168,180, 68, 88,184,242, 78,192,171,128,135, 92, 45,103, 64,107,232,242,173, 93,213, 92,238, 33,120,114, 85,
-171,130, 84, 51,187,249, 46, 16,154,162,146,104,193, 81,212, 66, 78,222, 89, 69,174,137, 16,177, 48,159, 56,232,250,222,130, 74,
-197,166, 25, 53,171,213,118,186, 64,244,158, 52, 11,173, 89, 95, 89,105, 72,232,160, 22,242, 52, 17,189,195,135,193, 32, 47,117,
- 54,199, 47,198,218, 23,129,177, 38,198,113, 52,155,174,135,224, 59,186, 85, 79,223,247,236,118, 23,160, 22,242,168, 77,208,180,
-180, 2,156, 82,163,195,137,125, 60, 87,142,215,124,250,211,255, 18,183,222,126,147,251,103,119,153,247,151,220,191,191,131, 19,
-197,199, 64, 23, 34, 18, 35,173, 42, 87,175, 29, 83,212, 66, 65, 38,118,240,120, 9, 84,167, 84,201,212,148,153, 46, 42,171,227,
- 3, 90,107,204, 83,193,119,150,234,236, 66,199,156, 19,167, 23, 23,236,199, 29, 36,165, 57, 33,239, 51,117, 46,156,207,149, 86,
- 44, 85,156,198, 29, 5,165,150,204,119, 94,123,139,171,199, 27, 91, 39,133, 1,109,141,219, 39, 91,214, 49,154,194, 54, 55,156,
- 15, 4,231, 8, 78,112, 62,224, 67,199, 88, 10,213, 43,145, 1, 93,110,172,162,153, 15,127,240,113, 62,248,194,134,213,234,194,
-210,211, 99, 38, 94,185, 74,222,159,161,231,223,180,131,111, 4,164, 35, 72,135,211, 45,184, 66, 43,160, 91, 65,231, 5,164,189,
-169,172,250,129,123,167,137,110,117,200, 83, 55,174,112,255,245, 55,160,121,166,226,232,178,103,188, 63, 50,109, 29,219, 82, 57,
- 25, 3, 28, 30,113, 55, 23, 86,178, 38, 15,153,142, 72,240,176, 58, 94, 17,179, 9, 63,242,246,140, 57, 43,251,113,103,233,125,
-169, 20, 77, 76,105,102,183, 61,163,180, 66, 23, 15, 24, 86, 43, 66,173, 52, 49, 42,218, 56,111, 81, 46,216, 28, 30,219,172, 78,
-196,128, 23,106,135, 57, 39,194,213,227,199, 76,179, 59,108,248,218,119,190, 78, 89,146,248,234,150,201,139,115, 86,141,171,142,
- 33,172, 88, 29, 95, 33, 68,197,101,155,132, 84, 13,203, 65,122, 34,202,154, 68, 99,154,103, 36, 5,196,121, 82, 77,164,150, 64,
- 6,246,251, 11,190,252,245, 87,249,220,191,240, 49,254,173,191,245, 89,100, 74,124,249,235, 47,243, 71, 47,191,194,175,252,194,
-207,240,153,191,242, 97,254,201,111,253, 1, 95,250,195, 23, 81,241,196,174,113,121,113,206,181,195,107,180,254,128,230,109,125,
-225,164, 18,100, 77,118,150,187,217,251,134,120,193, 39, 15, 99,164,180,137,209, 55,251, 30,244,118,104, 5, 3, 3,229, 92,112,
- 77,201,201,234,132,171,161,177, 45, 21,167, 6,175,170,185,209,165,137, 62,116,184, 67, 71,155, 43, 45, 87,112,198,233, 80, 7,
-105,106,248,104, 89,158,170,208, 73,160,133,108,108,125,215, 51,172, 6,114,139,168, 40,185,121, 84, 2,181, 37, 92, 22,130,239,
- 17, 55,209, 38,197,187, 21,117,127,137,187, 22,108, 66, 55, 69, 66, 31,113,185,114,162, 35,171,216,115,221,119, 56,113,228, 86,
-172, 62,217, 34, 78,160, 45,225,176,253, 34,171, 92,201,123, 33,178,184,148,156, 30, 70,143,220,123, 15,197,162, 60,180, 56, 42,
-182,174,170,181, 46,176,174,225, 61, 57,203, 95,180,113,214, 32,213,130,115,142, 33,122,250, 71,198,239,241,125,247,118,247,255,
- 49, 14,127,240, 64,159,129, 71, 19, 4,151,115, 33,231,100, 23, 59, 85,106, 93, 90, 30,203, 3,249, 81,174, 93,251,115,132,230,
-170, 66,200,153,210,178,101, 58,138,253, 63, 31, 42, 26,131, 53, 46, 66,166, 59, 56, 34,236,246,236, 79, 71, 88, 71, 58,157,153,
- 71,135,244, 27, 66, 41, 76, 98, 95, 91, 57,190, 66,190,156, 81, 77,104,173,116, 94, 41,128,234, 37,101, 87,105,186, 38,116, 17,
-205,179,181,173,116,162, 85, 79,141,142,218, 28,226,122,138,143, 28, 68,229, 67,207, 60,206, 53,132,119,143, 58,130,151, 96, 72,
- 62, 47,184,186, 48,132,213,152,201, 78,108,247,104, 15,251,102,227,119, 22, 45, 33,203, 45,125,233,181,138, 55,186,156, 87,191,
- 16,233,140,132,230, 88,202,253,165, 17,188, 35, 99, 34,230, 7, 70, 31, 53, 74,235,242,103,250, 69, 82,176,140,216,155,129, 54,
-170,100, 43,245, 56,111, 52,160, 86,105, 73,136,222, 89,226,212, 91,248,172,168, 18,213,170,107,234, 50,218, 28,117,193,181,214,
- 38, 86, 51,241,206,254, 50,139,221,254,171, 46,182, 57, 97,209,214, 45, 93, 93, 53,137, 75,171,182,110,144,210,240, 11,210,182,
-169,141,239,130, 55, 58, 85,197, 94, 8,135,222,240,131,222, 41,196, 64,163,224, 37, 82, 68,145,234, 8,206, 45, 1, 64, 83, 32,
-154,113, 73,232,131, 51,153, 77, 82,188,120,235,136, 59,161, 23,135, 39,146,188,144,165, 34, 1, 66, 54,129,128, 58,240, 73,141,
- 20, 38,158, 82, 51,171,222,166, 6, 41,101,110,159,220,163,150,202,225,193,192,170, 27, 88,173, 6, 46, 79,183, 76,165,178, 90,
-247,108,142, 14,249,247,255,163,255,152, 31,249,216, 71,120,229,165, 63,230,127,248,239,255, 62, 47,189,252,214, 82,200,180,124,
- 68, 23, 59,230,125,230, 96, 19, 17,102,238,223,186,205,143,255,216,143,195,167,254, 42,111,191,125,139, 34,153,221,253, 11,238,
-156,223, 35,231, 9, 45, 59,198,221,158,147,211,219, 92, 59,126,154,131,110,205,249,254, 46,113,115, 8,179,249,152, 3,142, 40,
- 98,221,227, 80,209,224,136, 40, 79, 61,214,179, 27, 39,230, 84, 24,167, 70,196, 49,233,204,165,216, 33, 72,240,104,158, 73, 57,
- 81,180,208,230,196, 79,253,244, 79, 51,167, 61,191,243,187, 95,164, 11,194,253, 91,247,185,118,116,204,193,202,130, 97,206, 69,
-154,122, 70,169, 72,129,121,202,148,105,182, 16,147,139, 6,161,200, 51,185, 85, 92, 5,233, 2,222,119,136,102,142,250,129,143,
-126,224, 10,235,112, 73,157, 51,199,125,133,110,141, 47, 74,125,231, 11,164,253, 27, 68, 9, 72,215, 83,171,210,202, 12, 93,135,
-107, 74, 25, 21,157, 3,185, 40, 26, 34,235,180,163,249,204,155,119, 70,174, 93, 61,228,229,215, 79,248,206, 87,247,124,240, 89,
-219,244,189,245,182,112, 54,130,205,118,174, 67, 23,241,186,226,106,111,128, 39, 47,206,124,219,186, 65, 90,230, 98, 60,229,234,
-241, 39,184,126,176,230,157, 87, 95,225,114, 30,105, 53, 81,202,204, 52,110, 73,105,100,218, 79, 52,105,172,122,240,190,167, 52,
-171, 9,170, 3,223,121,210, 60,225, 68, 88, 29, 94,181,105, 74, 54, 58, 91,201,149,131,131, 21, 67, 31,249,232,115, 55,105,213,
-113,247,242,130,232, 12, 42,229,197, 49, 12, 3,117, 55, 81, 70,160,107,208,123, 67, 39, 79, 91,146,141,122, 44,145,174,102, 8,
- 47, 1,250, 18, 40, 58, 51,215, 75,188, 95, 25,179, 98, 33,173,137, 11,156,156,142,124,249, 15, 95,229, 23,127,233, 6,186, 25,
-184,117,235, 62,111,221, 61, 35, 95, 78,252,157,191,253, 11,252,123,255,246,223,228,233,231,174,241,249,207,255, 33,243,156,104,
-210,184,123,239, 45, 14,143,123, 14, 55,199, 76,169, 25,107, 95, 2, 44, 53, 62,149, 70, 88, 13,164, 86,112, 50,131,235,151,202,
-212,142,185, 86,130,115,116,210,168, 52,246,213,122,157,126,223,160, 15, 20, 31,104, 15, 2,106,165, 89, 69,213, 5,171,208,238,
- 19, 81, 54,164,160,168, 76,148,106, 42,232, 46, 40, 85, 10, 77, 58, 98, 83, 28,129,138, 55,182, 5, 80,245, 18, 45, 66,138,145,
- 20,132,206, 9,185,100,112,158,148,148,153, 75, 6, 31,145, 78,241,171, 67,163,117, 6,193, 83,145, 4,184, 76,140,160,205,113,
- 57, 11, 71, 3, 54, 21,164, 67,212, 38, 62,135,171,254,225, 56,253,209, 75,123,147,247, 30,138, 5, 56, 3,186, 5,188, 50, 43,
-104,130, 7, 45,220,185,192,180,159, 13, 54, 86, 22,110,135,218,107, 92, 93, 14, 11,127, 94,124,122,173, 80, 91, 33,171, 61, 15,
-190,223,142,252,251, 5,227,220,251, 30,232, 15,108, 50,181, 54,187,228, 5,111, 83,161,229, 48,176, 93, 66,113, 15,150, 19,151,
-203,127,175, 30, 9,210, 77,239,235,234,151,247, 77, 37,182,251,153, 52,238,105,205,112,228, 33, 40, 33,249,165,181,227,208, 52,
-211, 87,197,213,142,117, 28, 56,201, 23,232,124,128,168,167, 6, 79,139,147, 5,184, 75,143,247, 5, 77,163,173,126,166,153,134,
- 48,116,157, 93,252,182, 66,136, 61,206, 59,107, 5,177,129, 44, 84,127, 73, 65,232, 52, 34, 53, 51, 28, 15, 92,110,149,213, 58,
-112,116,124,104,159,107, 42, 4,231,108,239,137, 51, 64,190, 87, 80, 28,109,145,188,219, 67,203, 42, 53,110, 9,196, 72,176, 91,
-176,106, 35, 58,219, 7, 91,178, 72, 81,178,185,214, 77,197, 98,123,122,103, 60,243,134,165,232,197, 43, 53, 21,166,106,236, 93,
- 45, 75,205,205,137, 77, 6,106,163,137, 1,105, 92, 23,177,159, 46,191, 36,214,253, 3, 42,173,253, 62,117, 24,116, 71,161,218,
- 13,186,170,209,225,252,226,126,215, 86,105,193,225,151,221,162, 85, 30, 26,234,162,173, 30, 36,152, 19,221,186, 58,214,169,110,
-208,154,163,106,197,137, 82,197, 86, 20,210,202,194,195, 95, 48,182, 78,232,157, 29, 2,134,222,132, 26,206, 5,188,132, 37,112,
-213,112, 64, 8,182,255,215,232,104, 30,250, 26,104,174, 48,205,201,126, 48, 99,164, 54, 35,232,105, 21,156,239,204,196,149, 43,
- 90, 28, 18,237,182, 44,189, 39, 86,131,235, 84,105, 75,197, 67, 16,241,108,239, 95,242,198, 59,111, 51,101,216,239,102, 74, 43,
-220,194, 2,141,171,190,179,131, 86, 16, 74, 42,124,246,167,127,150, 95,250,249,159, 1,224,249,103,159, 65,167, 51,254,147,255,
-244, 63,167,137,163,228,132,243,158,161, 95, 49,244, 29,165, 41, 29, 43, 46, 47, 78,249,167,191,247,121,142, 86, 87,216,237, 51,
-155,163, 35, 98, 92,209,197,192,149, 43, 55, 56, 58,124,158, 90, 2,219,221, 61,124,170, 92,142, 91, 98,183,194,183,128,250, 74,
-196, 49,166,153,139,179, 61, 93,223,113,227,234, 21,180, 58,134, 88,121,242,217,199,120,245,181, 19,238,159,238,137, 27, 97,190,
- 76,203, 10,167, 35,248,192,225,141, 35,230,221, 22,220, 49,183,111,191, 67,191, 90,243, 55,126,241,167,168, 57,241,165, 47,125,
-157,148,118, 92, 92,156,115,114,118, 65,183,238, 97, 95,233, 87, 29, 62,216, 43, 87,115,118,136,148,192,210,115,134,222,121, 35,
-147, 57, 79,236,141,242,229,213,209,212,243,145,231,158,229,153,117,143,184,145,166,130, 78,153,107, 79,222,160,238, 47,184,127,
-239,109, 84, 59,214,131, 66, 46,104, 18,235, 38,207, 80, 71,129, 62, 24, 98, 55,153,156,200, 69, 97,123,158,216,239, 3,159,252,
-225,199,249,221, 47,191,198, 31,191,217,112,157, 99,238, 58, 78,247, 29,195,224, 24,188,167,118, 61,171, 85,207,122, 29, 57,234,
-110, 48,215, 66,174, 91,188, 22,230,109,129,203,145,183,223,189,195,217,105, 79,236, 10, 46, 40,140, 19,190, 22, 52, 14,148,122,
- 74,169,214,182,112, 84, 74,205, 76,243, 14, 90,193,187,184, 76,218, 34,195,186,163,212,204,246,244,148, 56,244,212, 58, 83,114,
-161,235, 6,174, 95,187,198,245,171, 87,233, 36,242,165, 63,250, 2, 37, 21,155,176, 45,171,148, 26,133, 48, 68,166, 92, 25,100,
-131,147, 72,246,106, 10,226, 49,225, 86,157,221, 94, 49,204,106,107,133, 73, 4,245,142, 58, 37,114,134,121, 30,145,154,160, 86,
- 36, 4,214,155, 21,111,223,191,228, 31,126,254, 75,124,238,175,254, 16, 31,255,240,115,156,167,202,187,119, 79,249, 7,255,251,
-239,112,248,183,127,142,127,227, 95,249, 49,242,228,248,252,111,126,145,166,202,184,175,156,220,189,199,102,115, 68,136, 27,124,
-115,204, 50,226,102,123,116, 55,167, 84, 45,100, 87,232,171,105, 74, 75,222, 81,246, 5,149, 14,130,103,146,138,164, 66,140, 17,
-245,166, 61, 46, 8, 37, 79,248, 0, 45, 13,104,180,158, 49, 62,176,175, 74, 84, 79,239, 21, 81,191,188,214,101, 52, 87, 90,244,
-132,208, 19,187, 35,202,254, 30, 37, 58, 52, 89,230, 60,246, 61,154, 38,154,107, 20, 34,157,175,228,233,146, 1,161,117,107,240,
- 9,159, 86,100, 21,106, 13,200,202, 94,223,230, 42, 32,129,190, 21,243, 77,196,200,208, 53, 6, 81,230,108,175,153, 3,138, 4,
-165,123, 36, 24,246,254, 91,232,250,125,187,225,199,220, 35, 1, 48, 1,233,223,219,171,223,119,182,118, 45, 98, 90,106,215,121,
-178, 88,254,253, 92, 33, 52, 56,244,239, 77, 0, 86, 96,129,233, 63,195, 13, 56,101,227, 33,104,109, 22,214,253,203,228,206,212,
- 70,173,141,185, 54,174,244, 6,252,122,112, 88,120, 63,206,234,240, 79,201, 24,116, 63,192,254,118,154, 48,194, 92,206,214,238,
-138,142,178, 47,184, 36,244, 3,108, 91, 65, 91, 71,109,133,203,208,208,117,132,177,176, 19, 79,105,151,144, 60,121, 46,116, 85,
- 72, 96,248,226,208, 97,210, 93, 97,218, 89,203,192, 71, 71,101, 79,211, 64,218, 22,188, 43, 20, 85,156, 14,116, 50,209,106,164,
-133, 76,157, 3,174, 12, 28, 13, 74,136,246, 49,142,165, 16, 84,173, 59,142,179,157, 34,222,180,171, 52, 83,178,162,203,206,221,
- 60,110, 56, 39,104,110, 22,132,211, 66, 22, 19,182, 32,246,123,156, 8,169, 85,156,243, 15,107, 99,176,116, 49,155,249,157, 93,
-179, 91,189,170,208,196,108, 60, 77,176, 10, 25,230, 95,175,205, 35,190,217,255,127,112, 32, 16,165, 52,219,229, 57, 91,205, 89,
-210,173,181,135,249,188,162, 15, 84,136,150,231, 20,245,148,102, 26, 64,117, 14, 39,105,129,227,244,150, 33,104,141, 24, 44, 56,
-102, 41,125, 83, 64,122,156, 17,241,194,210, 31,109, 13, 13, 75, 87,178, 53,162, 11,244, 3,164,182,124,238, 98,234,189,220,160,
- 67,113,177,218,174,210,155,211, 57, 21,187,105,187,162, 56, 23,169,106, 19,143, 0, 20, 28,154,171, 5,105, 48,189,103,112,142,
-148, 50, 33, 64, 31, 34, 65, 29, 91,153,113,173,210,199, 72,206,106, 66, 27, 5, 25,236,139,241,230,203,239,112,122, 97, 80, 36,
- 23, 2,146,178,201, 14,106,101, 63, 45,135,156, 16,104,206, 51,166,249,123, 67, 34,118, 93, 51, 44,112,181,144,137,146, 40, 57,
- 18,194,129,237,118, 58,101,123,153,216,239,118, 36,122,110,157,223, 39,231,145,174, 27, 24,164,227,236,232, 42, 50, 52,250, 32,
-232,152,137,195, 33,161,235,137,177,144,181,144,166,138, 75, 91, 98, 16,142,143, 35,173, 84,106,201,108,174,174, 41,217,113,251,
-222, 5, 23,219,153,176, 19,188, 55,161, 69, 0,234, 60,113,126, 43,209,173, 87, 60,125,253, 6,117,156, 25,250, 21,117,110,172,
- 98,199, 79,255,245,191,198,111,252,227,223,134, 84,121,245,197,111,115,229,198,117,134,131,171, 28,246, 3,199,107,229,246,217,
-222,118,116,213,214, 36, 94,122, 67,250,122,103, 66,153,106,183, 16, 23,236, 64,243,248,213, 53, 79, 63,182,225,183,191,124,194,
-179, 79, 10,159,252, 96, 37,118, 29,155,199,159,229,252,205,111, 49, 37,197,119,149,145, 30,153,161,151,130,167, 65,243,180,185,
-224, 54, 14, 29, 42,161, 8,190, 43,196,131,192, 75,175, 86,214, 87,174,243,204,135,110,242,220,203, 47, 49, 63, 21,185, 87, 86,
-164,230, 56,244, 29,117,174,180, 94,216,108, 60, 87,175, 92,227, 74, 55, 32, 52, 58,223,225,227, 21,206,238, 93,176, 62, 84,246,
- 23, 74,167, 27,144,145, 34,224, 91,164,170, 16, 98,228, 50,103,230,125,230,227, 47, 60, 73,113,142,111,126,243, 13, 59,140, 86,
-147, 18,185,165,152,228, 96,201, 19,120, 74, 25,217, 94,236,169, 90,233, 67,224,234,213,167, 56,216, 28,177, 14, 43,190,254,226,
-183,184,115,231, 62, 67, 31,105, 5,106, 47,228,154,161,120, 75,125,235,136, 87, 37,150,140,203, 43,250,225,136, 57, 20, 92, 20,
-116, 46,100, 43,143,224,221, 49,181,206,200, 16,105,211, 37,105,218,226,107,161,180,134, 58,111, 42, 94, 81, 98, 12,188,253,206,
- 61,190, 32,223,230,115, 63,249, 41, 62,242,241,167,152,247, 91,254,233,239,189,200,127,245,107,191,206,191,243, 43,255, 42, 31,
-120,225,121,158,185,249, 46,111,188,245, 26, 83,206,156,220,187,228,169,107,247,185,241,212, 77,238,238, 38, 88, 68, 30,221,225,
- 10,191, 47,212,125, 53,239,183,120,170, 90,243,165,198, 64, 20, 79, 47,134,169,213, 6, 83,153,241,157, 16,252,138,170,153, 78,
-149, 16,122, 92,176, 14,121,147, 74, 73,246,240,170, 52, 74, 48,143,131,138,169,166,155, 52, 38,245,116,169,160,220,163, 70,193,
-141, 25, 87, 61, 97,213, 40, 36,156,118,136, 79,168, 20, 92, 30,240, 62, 66,200,148,146,240,170,132, 3, 71,218, 90,235,199,237,
- 42,174,235, 16, 95, 73,206, 94, 51,215,190, 55,184, 86,117,164, 40,132,104,215,111,239,128,232, 24, 66,247,103,222,153,127,143,
-157,237,253,129, 48,133,154, 27, 46, 89, 95,255, 96,136, 15,147,226,209,238, 50, 15,111,176, 77,190,247, 33,254,253,138,111, 25,
-216, 78,153, 92, 51,226, 48,103,192,131,212,250, 95,176, 71,174,139,114,181, 21,203,113,133, 31, 0,203,113,127,202,175,221,247,
- 9,206, 57, 96, 88, 72,134,169, 86,102, 4,149, 74, 88, 21,202, 56,113,177, 23,138, 87,134,169, 81,210, 5, 71,221, 26,201, 29,
-251, 92,104,117,162, 95, 59,146, 0, 57,146, 99,161,120, 37, 68,165,159, 51,179, 8, 94,170, 65,134,188,199, 13,145,142, 53,187,
-147, 29, 12,246,189, 85,115,130, 57,146, 67,161,181, 29,131, 56,210,229, 4,222,211,133, 21,100,165,172, 32,157,109,241,207, 60,
-245,228,223,109, 11,152, 69,237,217,101,184, 86,100,129,205, 44, 38, 52, 85, 28,134, 76,245,222, 63, 8,184, 91, 21,162,153, 83,
- 92,155, 73, 86, 92,112,134, 98,173,246, 62,188,247, 38,136,192,161,206,110, 73,226, 29,190,139, 72, 91,174,245, 18, 88,228,163,
-168, 24,114, 85,176,132,185,170, 65,122,155, 46,220, 96, 17,196,217, 3, 81,212,204,113, 2,120, 23,172, 83, 14,102, 42,114, 75,
-239,212,252,127,152,255,197,225,154, 61,156,107,179, 16, 92, 23,172, 10,145,115, 93, 70, 75,246, 80,177, 19,154, 34, 77,141,161,
-237,133,224,237, 22,111,117, 55,232, 6,112, 5, 84,132,150, 27,161,143,116,241, 65,174,160,218,237,218,117,104,106,134,225, 21,
-161,105,165,104,195, 5,197,247, 17, 47,193, 32, 50,226,151, 21,135,209,238, 52, 91,106, 92, 69, 73,217,170,127,165, 66,105, 32,
- 68, 66,203, 54, 34, 83, 72, 37,243,206, 59,119,112,222,186,218,173, 54,114, 30,121,143, 34, 96,243, 56, 47,102, 32,186,115,235,
- 29,134,245, 17, 55,159,121,154,183, 94,254, 54,255,205,223,251, 53,222,186,115,178, 76, 63, 44,148, 56,172, 14,192, 53,164, 54,
- 98,151,129, 74, 46,158,132,195,220, 60,133, 46,216,168,200, 71,232, 92, 79,236, 58,148,198,208,119,244, 93, 52,117,172,102,130,
-120,246, 83,166,185,194,170, 83,180,102,230, 73, 89,109, 34, 47,220,188,206,203,175,221,226,237,119,207,137,125,192,171,237,187,
- 37,152,227,190,150,196, 60, 37,182,151,123,166,221,204,213,235, 71, 28, 93, 57,224, 91,223,124,133,175,125,245,155, 76,101,230,
-153,167,159,225, 3, 31,120,158,143,126,248, 5, 86,113,197,110, 59, 19, 66,207,110,183,165, 91, 13,180, 8,151,251, 61,181,194,
- 16, 3,190, 11,248,224,208, 82,141,158,183, 8,115,134, 85,207,167, 63,241, 33, 66,140,188,248,206,125,134,174,227,249, 39, 54,
- 28, 93,185,198,229,249, 37,103,103,247,136,157,163,140, 9,230,130,106, 49,112,200,250,208, 38, 75, 30,252,122,141, 43, 9,223,
- 28, 49, 6, 90,234,248,253,151, 39,206, 39,199,110,234,121,249,157,115,246, 5,170,239,192, 41,227, 56, 51,151, 74,139,106,129,
-172,105,102,220, 79, 92,140,123,134,154,185,125,114,155,211,251, 59,238, 95, 94,178,159,102,186,131, 3,230, 92,232, 93, 69, 75,
-229,116,123,142, 58,199,246,236,146,203,237, 25,159,250,244,211,252,216, 95,251, 40,127,242,173,119, 25,231,132,243,128,243, 4,
-241,214,228, 0, 83,172, 98, 57,151,214, 42, 89, 43,199, 71, 87,121,242,241,199,121,226,137,171,100,113,188,123,231,222,146, 32,
-246, 56, 41, 32, 80,117, 48, 99, 96, 15,157, 95,217, 42,105,232,240,195, 33,206,135,135,175, 29,218, 96,221, 31, 34,174, 35,251,
-130,111, 66, 75,141,113, 60,183, 20, 58,133, 18, 4,105,158, 90, 51, 90, 44,120, 43, 30,238,221, 63,101,183, 29,121,238,153, 43,
-188,250,250, 45,254,248, 59,111,115,251,100,203,173,123,119,121,250,169,235, 60,249,248, 77,158,124,114,195, 60,237,185,119,186,
-163,181, 29,207, 60,187, 97,181, 94, 49, 93,236,209,102,135, 51,175,150, 1, 48,251, 21,204,169, 64,111, 63, 3, 62, 88,208, 53,
- 33,228, 44,172, 67, 48, 23, 67, 80,104,153,214, 58,170,111, 76,101,111,249,157, 38,208,121,186,206, 2,168, 89,139,133,255, 92,
-160, 73,197,247,107,164, 21,115,173, 87, 71,105,129,208, 5, 2,141, 85, 12,132, 40, 20,245, 86, 35,237, 28,186,175,244,177, 48,
- 22, 33, 59,135,103,128,150, 17,188,173, 35,253, 76, 17,115, 99,196, 67, 65, 23, 45,174, 93,198, 27, 53,152,148,170, 61,184,148,
- 0,171,213, 1, 55, 30,187,242,240,117,226, 65, 78, 76, 22,178,246,131,181,248,251,147,239,237,125,227,239,211, 89, 57,191,123,
- 65,201, 51,206,195,141,235,199,108,150,177,190, 91,198,224,242, 72, 77,206,125,159,135,229, 63,119,219,221,101,166,221, 30,113,
-202,209,193, 1, 7, 75, 90,127,126,164, 42,247, 16,126,243,200,131, 53,189,239,253,191, 31,164, 83, 20,238,157,141, 92,236,118,
-212,218,120,226,234,134,131,245,230, 47,117, 18,112,231, 98,228,242,238, 61,198,105,194, 81,104, 69,209,201, 42,116, 89, 58, 74,
-201,236,118,231,248,205,138,172,141,172,130,186, 66,220, 40,117,231,145, 82,113,131, 39,196, 21, 89, 7,106, 58, 95,204,116,106,
- 23,201,141,199,247,158,118, 57, 51, 81,104, 85, 8,181, 81, 19,120,137, 38, 28,243,150,241, 10, 56, 66,104, 76, 85, 57,232, 29,
-155,155, 79,243,250,252, 36,183,190,243,109, 66, 93,126,192,141,254, 98, 16,133, 86,154,221, 24,195,146,115, 47, 13, 93,130,111,
-198,123,145,135, 29,116,167,141,228, 60, 62, 24,101,173,149,106,200, 23, 15, 78, 21,117,158,212,148, 32,222, 94,168,157,157, 46,
-131, 83,154,150,197,135,235, 9,190,209,176,138,134, 87, 53, 53, 42,141,146,203,210,153, 55,232,141,136, 25,208, 68, 27,117,169,
-223, 57, 93, 2,122,222, 91, 37,170, 85,163, 93,225, 64, 11,193, 71,178, 61, 93,237, 95, 87, 45, 43,208,132,170,149,172,142,188,
-116,211, 69,253,210,213,110,120,196,184,241,193,126, 64, 68, 44, 45,232,189,177,115,157, 58, 52,217, 70,198, 97, 63, 96,165, 21,
-186, 37, 53, 90,232,140, 19,223,189,247, 45, 47, 33,224, 3,132, 36,120, 13,120,245,139,193, 44, 24,169,174,233, 66, 11, 82, 98,
-240,246,103, 86, 69, 52, 24,168, 68,204, 91,175,204, 75, 93,208, 81, 82, 98,220,110,209, 90,169,229,130,230, 28, 41, 77,104,179,
-159,236,166,182, 94,113, 78, 81,241, 52,148,113,119,193,127,249, 95,252,103,252,175,255,243,255,196,246,252,148,221,126,107, 93,
-245, 82, 41,101,166,235,143,128, 7, 95, 19, 37,180, 72,106, 66,115, 29, 65,236,118,209, 84,208,214,152,211,200,102, 24,216,177,
-103,152, 18, 8,244,135, 27,114, 26,105, 85,168,213, 48,158, 62,122, 14, 36,112, 54, 87, 82, 41,184, 88,152,179,112,247,206,158,
-183,222, 62,193, 5,227,113,135,161,195,199, 72, 23, 3, 94, 11,147, 52,156,107,148, 41,113,245,177, 67,126,245, 87,255, 77,110,
- 62,243, 56,243,126, 68, 60,120,103,226, 17, 23,132, 85,191,230,183,127,243,159,241,223,253,218, 63, 96,211, 11,147,102,158,190,
-126,131,147, 91,119,168, 89,113,177, 91,104,133,182,207,172,218,232,221, 0,113, 96,158, 19,171, 46, 48,244, 43,124,127,192,143,
-127, 34,243,220,181, 25,119,188, 98, 74, 29,227,118,135, 44,156,240,119,223, 62,102,117,165,113,124,148,169,219,194, 80, 46,172,
- 98, 53,172,108,125,133, 80,157, 50,110,247,188,113, 55,112, 57, 29,240,177, 79,124,156,219, 39,247,185,119, 41,136,139,172,170,
- 35,174, 86, 6, 34,233,123,214, 7, 3,219,109, 33, 68, 33, 28, 56,242,229,158,211,147, 29,231,243,158,146, 35,110, 19,201, 84,
-174, 28,117,220,124,226, 38,223,125,233,143, 57,159,118,184,150,105, 34,248, 40, 12,235,200,183, 95,124,151,191,242,195, 31,230,
-147,159,120,158,223,253,202, 55,112,150,238,164,170, 29, 78, 89, 64, 82,210,234,195,124,198,193,176,230,202, 99,143,113,112,124,
- 5, 21,199,201,253,219,198, 55, 92,156, 3, 4,235, 65, 11,150, 34,207, 89,136,171, 64,239, 54,132,205, 10,141,130,228,134, 87,
-111,153,155, 85, 71, 83, 71, 45,208,183,142, 89,102,230,233,130, 58,143,180,186,216, 4, 83, 67,235,140,167, 26, 42,179, 46, 83,
- 61, 58, 94,124,233, 54,162,133, 79,124,232, 89, 30,187,118,141,183,111,223,231, 91, 47,189, 13,237, 11,124,246,199,254, 69, 62,
-242,161,143,114,180, 62,228, 11, 95,252, 6, 39, 39,151,188,245,250,187,124,244, 99,143,179,141,141,154, 39, 52, 4,168, 5,241,
-142,181, 10, 37,122,230,113, 79,153, 61, 62, 24,184, 69, 39, 35, 70,122,215, 81,130,163,230, 25,102,165,143, 61, 45,194,148,132,
- 32, 17, 45, 13, 23, 86, 12,209,156, 0,169,179,155,172,199, 70,226, 85, 32, 76,138,120, 7, 4,102, 95,136,190,210,215,142,230,
-214,164,108,175, 89, 45, 84,196, 7,218,110,166, 86,163, 11,210, 69,250, 94,144, 50,225,178,163, 6,155, 24,133,122, 68, 11, 17,
- 50,248,125, 37,123, 65, 92, 37, 27, 52,130,190,137, 29,174, 10,180, 97, 89,151, 14,253, 67,200,202,101,131, 67,103,225,183,139,
-102, 60,129,195,110, 9,152,229,101, 90, 19, 23,186, 91,130, 85,120, 79,144,150, 39,179,252,229,154,232, 36,210, 61,178,251, 46,
-143, 60,212,255, 60,129,179,154, 42,173,102,188,126,111,143,124,248, 1,245, 50,255,131, 58,228, 13,114,174,232,130, 36, 79,242,
-222,251, 30,177,251, 93, 39,223,131,136, 55,254,198,159,245,227, 6,230, 57, 81,107, 6, 77,164, 84, 40,173,178, 79, 80,198,138,
-110, 34,186,111, 28, 13, 29,181, 57,146, 2,113,166,141, 35, 85, 61,114,220,147,207, 61,165, 64,164,209,105,162,100, 72,110, 38,
- 0,153, 14, 77,145, 50,158,219,101,179, 12,248,133,214,216,130,195,133, 2, 13, 98, 13,212, 80,113,205, 81, 4,250,206,113,116,
- 44, 92,121,238, 9, 70,239, 24,227,138,176,120, 84,140, 37,110, 91,223,101,148,108, 8, 87, 37,224,163, 49,207,205, 82, 39,203,
- 11,129, 44, 55, 58, 11,160,213, 82,241,205,238,133, 84,219,201,120, 49, 94,108,192, 25, 86,210, 41,190, 42, 4,104, 52, 90, 82,
-196,119, 56,173, 52,113,214,215,166, 89, 29,100, 97,165,107, 5,139,215,251, 37,173,105,138, 84,125, 48,194,151,197,219, 46,138,
-207, 9,143,163, 74, 32,107, 35, 46,200,214,220, 10,173,218,126,136, 96, 61,117,167, 24,119, 88,161,230, 98, 21, 47, 31,200,181,
-210, 59, 1, 1,134,126, 0, 0, 32, 0, 73, 68, 65, 84,251,179,164, 51, 56, 69, 91,186,244,161,127,112, 50, 14,132,224,108,142,
-209, 4,193,155,192,193, 67,201,141,164, 22, 46, 81,111, 14,116,153,167, 69, 50,176,120,219, 91,160, 44, 12, 30,166, 76,232,109,
- 10,162, 37, 49,170,137,110, 98,215,227,162,199,181, 7,253,203,102,208, 22, 26,100,165,118,216,250, 64, 58,180, 9,187,253, 72,
- 74,118,107, 12,150, 60,196, 19,104,106,188, 1,215, 22,158,189, 52,180, 37,219, 51, 55,225,157,183,222,178, 31,145, 90,201, 45,
- 83, 74,166,161,132,206,227,165, 46,129,178,198,168,202,230,232, 58,183, 95,255, 22,115,154, 8, 97,160,239, 7,212,193,208, 29,
-224,180,227,202,241, 53,198,237,125, 46,166, 29,211, 56,178, 25,122,154, 86,230, 22, 73,165,114,120,117,224,246,233, 57,219,139,
- 29,157,131,253, 69,229,238,201,158,239,190,122,143,232, 29, 67,215, 17,187, 64, 28, 34, 71,171,235, 56,157,104,217,161,181, 50,
-187,106,178, 29,239,185,119,114,193,115, 79, 63,206,245,107,135, 11,168, 72, 41, 53, 83,107,102,154,148,183,223,124,139,147,147,
-219, 92,185,222,243,137, 79, 61,199,147, 87,175,240,221,111,191,140, 84, 91, 51, 8,198,152,111,206,153, 19,220, 5,154, 4,130,
- 87,250,126,205,110,204,236,118, 39, 60,241,184,135,120,131,105, 14, 28,220,120,142, 34, 47,226,136, 84,231,152, 58,207, 91,183,
-225,137,169,227,153,131, 83,210,168,104,109,108,219,204, 52,121,238, 95, 42,103, 59,199,221, 93,207,157, 83, 65, 92, 32, 17,184,
-123,114, 74,158,118, 84,241, 36, 42,107, 9, 92, 91,111,136,171,222, 64, 43,190,208, 92,207,217,118, 68,231,140,102,171,103,169,
- 76, 70, 30,163, 39, 79, 66,127, 24,168,173, 81, 53,211,135,206, 58,207,125, 32,117, 29,183, 78, 46,121,243,181,219,124,246, 39,
- 62,196,215, 94,252, 14,121,204, 4,223,240,193, 20,194,186,160, 70,170,152,180,103,211, 13, 28, 93,123,140, 43,135,199, 56,239,
- 57,189,191,133,217,234,154,185, 36,114, 43, 56,233, 64, 34,120,199, 16, 35, 26, 7,164, 11, 56,233, 88, 29, 92, 99,204, 51,170,
- 59,154, 23,162,116, 84,117,228, 98,175, 15,185, 66,157, 51,211,116, 66, 45, 19, 56, 71, 45, 98, 33, 91,129, 42,206,198,139, 44,
-248, 89,103,106,230,151,222,184,195,241,245, 99, 62,245,201,103,249,248, 7, 31,231, 96,240,124,237,197, 91,252,222, 31,124,131,
-127,237, 23,127,134,159,250,177, 79,241,115,159,251, 81,254,143,127,252, 59,252,179, 47,124, 19,105, 47,242,145,143,125,132, 55,
- 73,228, 54, 19,163,133, 98,231,169, 17, 40,172, 67,103,158,119,177, 92,181,196, 14,169,141,226,161,105,165, 15, 29, 26, 42, 57,
- 23,152,132, 97,216,224, 92,177,183,209,104,123, 69,134,128, 56, 71,240, 3, 90, 77,102,211,247,107,230,253,142,160,158, 62, 54,
-198, 58, 67,237,200,204,132, 62,227,194, 33,117, 63,226,195, 12,226,233,157,167,197, 70, 81, 79,215, 55,166,105, 34,174,122, 80,
- 33,170, 34,177,183, 20,187,155, 40, 69,240,225, 0, 90,178,135,144,218,218,196,247,182, 86, 36, 8, 45,219, 19,235,250,193,128,
- 95,198,233,171, 71, 72, 43, 71, 14,106,103,183,224, 10,236,253,123, 41,248, 75,224,188,193,161, 13, 30,169, 21, 78, 47, 70,107,
- 27,161, 20,173,108, 83,121, 56,126, 79,179,193,124,188,183,151,211, 90,149, 85,144, 63, 19,138,182, 0, 83,158, 77, 21,221,197,
-229,114,244,103, 27,143,251, 31,240,246,240,240, 57,166, 12, 14,174,174, 86,223, 91, 69, 91,246,232,229,193,199,161,112,117,209,
- 44,108,129,109,131,235,242, 94, 54,192, 84,217,186,128,215,224, 50, 55, 46,183,231,148, 60,211,106,161, 8,196,217,211, 13,141,
- 62, 4,146, 83,212,247,224, 34,173, 77, 48, 38,220,176,166, 27, 18,181,173,144,152, 8,212, 5,159, 94,113,172,241, 94,233,244,
-156,174, 27,160, 37,166,180,165, 70, 71, 72,118, 20, 25,181, 32,226, 9, 46, 82,247,224,188, 18, 84, 73,234,152, 53,209,210, 33,
- 85, 19,172, 28, 79,116, 43,238,102,144,150, 8,118,235, 93,198,179, 52, 30,220,220,131, 19, 10,222,186,213,213, 6, 52,162,142,
-182, 32, 33,205,229, 26,105,203,200, 73, 48,252,171,228,250, 48, 26, 41,152,176,196,251,104, 39,201, 82,104, 78,104, 85,237,228,
- 37,142,166,217,110,176,213,254,226,154,229,221,236, 59,166,232,146,158, 55,254,145,107,208,188, 33, 76,171, 46, 15,243,218,168,
-106,200, 62, 17, 93,172, 66,106,245,184,133,184,132, 83, 27,187, 3,181,101,178, 90, 88,202, 73, 93,242, 2,139,198, 81,140,146,
-213,180, 45,182, 43, 65,154,163, 95, 69,230, 57,153,104,193,137,125,231, 7,219,134, 75,174, 84, 47,164,146,233,162, 91,128, 55,
-158,186,236, 89, 75,213,133, 86,103, 70, 53,239, 35,117, 54, 62,177,239, 76, 74, 51,231,204,208, 10,181, 46,208, 28, 31, 17, 45,
-228,162, 68, 49,211,156, 60,232,196, 59,193,119,230,222,205,115,177,177,120, 39,204,187,209,108,109,221, 10, 17,187,253, 55,181,
-106,130,115, 74, 93, 68, 61,174,202, 82,231,115, 52,153,236, 24,167,182, 18,104,173,218, 65, 77,141,251, 60,151,132,228, 30, 41,
- 19,155,205,134,245,193, 21,198,221, 37,251,253,142,110,216, 48,237, 70,138,102,130,222,226,174,143, 28,222, 59, 96,181, 58,198,
-247, 61, 83,157,153, 83,197,187, 2, 62,226,106,133, 20,152,230,153,253,148,217,230, 68, 55, 4, 82, 18,156, 23,250, 56,208,197,
- 64, 92,109,248,236,207,126,150,159,253,201,159, 37,141,123,254,159,223,249, 29,190,248,165,223, 67,200,136, 54, 90, 58,227,159,
-252,214,231,249,194,239, 63,205,207,252,248,167,185,241,196, 33,243, 60, 83,146,249,144,239,221, 63,231, 11, 95,254, 6,190,139,
- 76, 83, 99,186, 40,124,235,221, 55,216,167,194, 16,156, 85, 1, 69,104,222,225, 21,138, 56,170, 83, 14, 99,196,245,145,227,205,
-154,143,125,252,211,236,211,204, 27,111,253, 9,231,231,247,184,122,237, 5, 46,170, 35,157, 29, 83,231, 68,201, 66,119,237, 9,
-142,217,113, 57, 77,188, 90, 6, 86, 82,185,216, 43,183, 47, 50,219,217,147,230, 70,149, 21,174, 19,118,229,148, 92,206,249,163,
- 63, 25, 57,189,123, 98, 22,172,126, 96, 51,244,212,156,216,237, 18, 7,172,184,188, 84,142, 6,123, 96,108,183,230, 8,232,163,
- 65,121, 74,174,236,242, 25,169, 20,100, 31,185,152, 47, 24,167, 68,104,176, 47,137,146, 29,251, 41,241,236,227, 87,249,240,205,
-167,248,246,203,247,249,232,167, 62,206, 7,158,123,138,175,127,227, 37,214, 43, 79,109,149,224, 59, 10, 74,171,149, 90,224,232,
-232, 58, 7,135, 27,214,155, 35,214,253,138,150, 10, 5, 65,131, 35,165,198,156, 50,142,229, 48, 16, 20,109, 25,149, 64, 84,112,
- 85,161,171,132, 16,113,187,137,226, 29,222,175, 80, 49,223,115,149,140,119,145, 57,159,115,122,242, 10,210, 70, 91,211, 45, 24,
- 79,105,130, 83,143, 86, 75,192,135, 86,169, 69, 13, 32,227, 34, 41,123,190,242,141,239,242, 83,159,249, 4, 31,253,192,147,124,
-229,171, 47,113,114,114,159,119,110,159,240,129,231,175,242,185, 79, 63,205,245, 15, 63,201,191,251,252, 47,163,205,241,213,111,
-190,200,199, 63,254, 24, 79,221, 56,230,213,119,182, 12,172,204,123,176,200, 93, 90,105, 28, 12, 61,147, 22,106,106,168, 55,241,
-147, 47,153, 92, 26, 37, 70,218, 36,104, 16,188,119,104,155,104, 1,162, 31,152, 53, 83,139,195,239, 18,210, 53, 92,235, 9, 97,
-160, 50,161,117, 66, 91, 65,250, 21,147,155,108,135, 41, 21,207,176, 76,218, 10, 18, 29,161,143,196,234,216,205,141,216, 71, 42,
-202,188,205,104,245,139, 13, 46,208,250, 1,178, 67, 24,161,122, 19, 37,249, 66,152, 42,253,224, 45,107,226,141,251, 80, 16, 92,
- 51,121,140,107, 29,171,254, 79, 23,152, 60, 74, 83,115,192,245, 71,170,108, 7,192,106,176,212,183, 3,118, 30,238, 68,161,166,
-108, 23, 53,113,182,190, 90,210,225,123,243,229,224,151,219,113,153,148,245, 90,240,206, 38, 0,157,194, 81,247,222,237, 57, 46,
-107, 90, 7,140, 99,177,247, 43, 98,120, 95,249,203, 3,207,212, 10,115, 46, 70,242,139, 29,195, 35, 59,245, 67,224, 80,222,179,
-207, 85, 96,237,222,251,154,108,150, 33,174,123,127, 18, 95,228,225,127,239,213, 81,170,233,110,147, 42, 45, 53,154, 23,198,148,
- 24, 90, 67, 74, 35,104,100, 91, 47,112, 58, 51,196, 13,151,197,170,172,101, 63,147,199, 61,145,142,214,175,112, 61,204,103,231,
-164,253, 14,231,149,236, 28,228,102, 78,117,231,104, 78,192, 71,124,217, 80,229,146, 86, 60, 67, 23, 24,105,180,180, 35, 76,142,
-172,142,110,227,169, 20, 86, 49,114,137,103,103,100, 31, 66,244,193,146,222,186,144,211,156, 1, 87, 74, 51, 93,170,184,133, 19,
-221,202,146,100,181,219,178,125,210,206, 30, 32,213,198,245, 45,200,195, 94,116,196,144,119,185,218,105, 15, 28,189,247, 75,240,
-237,193,208,198,210,244, 42,214, 35,199,217,195,187,177,164, 46, 85, 22,104,131, 80, 91,163,184, 10,205, 25,187, 90, 77,145,105,
- 55,210,138,111, 66,110,138,247,206,170,120,234,168,173,154,185,197, 59, 84,131, 81,237, 44,189,134,119,214, 33,110, 15, 20,147,
-174, 46,129, 49,103,201,126, 23,141,120, 20,236,244, 23, 69,150, 61,164, 66,179,212,180,177,237, 61, 61,145, 74,161, 22,143, 70,
-235,243,250, 69,148,243,224,155, 67,163,117,254,231, 50,161,222,250,249, 41, 57, 60, 66,168, 74,170, 86,173,241, 42,164, 60,179,
- 31,149,225,112,141,139, 14,223, 11, 45,219,109, 79,104,230,123,110,138,132,104,183,138,166,108,119, 35,181, 53, 92,171,230,133,
- 55,186,192,210, 74,112,104,205, 54, 42,111,150,113,160, 62, 32,136, 89,240,207, 45,241, 73,109,217,170, 59,205, 38, 49, 37, 39,
-240, 66, 33, 35,235,198,148,102, 86, 7, 87,120,234,153, 15,154, 11, 28,161,213,145,119, 94,127,133,119,110,191,195,245,235,133,
-167, 54, 31, 36, 51, 2, 25,175, 1,117, 21,193, 83, 4, 66, 23, 9,222,198,248, 93, 55,224,125, 51,181,167, 90,167,248,198,141,
- 39,248,229,127,253,111,113,245,232, 8,128, 39,111,222,228,245,183, 95,231,237, 87, 94, 65, 75,229,246,189,115, 30,211,192,217,
-189, 87,249, 31,223,122,137,117, 60,224,114,119, 78, 78,133,161, 59,160,232,196,157,251,247, 89,175, 14,104, 21, 94,125,227, 46,
-103,231,103,120, 58,106,176,181, 74,231,132,169, 22, 68, 29,174,102, 82, 42,236, 90,197,133,200,106,238,120,241,229, 63,226,202,
-181, 27, 92,191,126,147,169, 42,175,191,123,135,111,126,251, 53,250, 24,185,156,247,196,120,200,227, 69, 89, 29, 94,103, 95,183,
- 92,156,120,242, 52,218,195,144, 2,101,207,249,110,164,247,153,141,174, 41,101,164, 37,200, 58,177, 94, 15, 52, 2,158, 70, 60,
-112,172,165,167,150,198, 92,236,176,188,223,194,110,123, 66, 65,113, 62,176,109,153, 52,111, 73,205, 72,139, 85, 43, 33,121,198,
-203,153,177,238, 12,166, 68,161,105, 96, 55,103,238, 95, 20, 62,253, 67, 79,240,251, 95,251, 54,175,191,244, 22, 31,126,254, 25,
-254,240,107, 47,209,176, 80, 43,106, 36,200,212, 42,235,245, 1,215,158,184, 65,232, 58,250, 62, 24,112, 36, 70,196, 91, 55, 91,
-114, 33,134, 64,145,108, 19,186,220,140,154,213,219,193,208,171,167,182, 72, 73,213,166, 63,177, 35,198,158,113, 63,162, 62, 33,
-210,179,187, 60,225,242,246,203,180,113,143,239,196, 14,242, 15,249,178,102, 87,108,216,106,200,182, 86, 54, 85,202, 98,244,183,
- 41, 21,190,244,181,151,112,210, 24, 54,107, 14,214, 7, 28, 31,109,112,192,237,187,103, 92, 57, 10,108,110,220,228, 63,248, 15,
-127,133,191,247, 95,255, 47,124,241,203,223,225,111,254,220, 79, 80,175, 31,242,230,173, 83, 35,177, 73, 64, 35, 36,109, 84, 81,
-156,174, 8,100, 40,149,172,160, 82, 17,181, 21,154, 12,171,101, 60,108, 19,198,162, 13,153, 27,193, 5,123, 98,161,184,214, 19,
-189,199,117,153, 82,122,234, 60, 34,126, 32,251, 74,116, 74,171, 1, 90,166,120,232, 90, 71, 78, 19, 93, 24,104,123, 97,234, 43,
-177,247,224, 44, 87, 18, 92,160, 56, 99,114, 52,105,204, 85, 25, 92,195, 85,171,202, 54,153,200,115,165,174,215,244,218, 32, 87,
-182, 69,112,210,144,222,163,157,146, 68, 88,187,102,135,165, 63,227, 40,217,189, 79,179,234,190,167, 27,222,136,205,234,124, 33,
- 8,199,189,167, 95, 38, 0, 71,221,123, 15,195,181,135,243, 3,247,240, 64, 80,130,253, 30,255,160, 71,110,195, 24,226,242,235,
-243,220, 76,205, 44,118,113,152,170,213,132,235,195, 94,255, 82,129, 94,254,253,255, 51,214, 47,205,214, 66, 82, 50,113,129, 86,
-125, 63,146,156,255, 62,218,217, 63,109, 50,176,242, 38, 96,223,215, 76,117,130,134, 64,206,149, 58, 54, 38, 23, 41, 53,145,211,
- 93, 91,175,224,152,194, 76,223, 6,198, 57, 81, 91, 0, 57,160, 56, 71,187, 44,100, 86,184,184,160,194,181, 18,242, 76, 66,173,
- 5,210, 53,210, 22,198,113,166,111, 51, 68,155,132,239,118,123, 90,180,103,170,215, 25,113,145,178,191,192, 59,207, 65,173,148,
-180,167, 92, 6, 72,151,132,222,123,166,214,150, 27,177, 37,182, 5, 65,220, 18, 48,211,138,226, 13,226,176,116,201,155,179, 49,
-130,228,138, 11, 38, 86,105, 77,109,177, 31, 30, 4,220,132,212, 12,214,162,213, 72,102,245, 1,179,189, 57, 11,190,213,102,183,
-124, 7,170,197,126,128,150, 29,121,107,141,214,132, 38,246, 64, 16, 31, 17,169, 22, 40, 83,197,133, 64, 45, 21,167,118,234, 47,
-181,128, 55, 29,163,107, 32, 49,162,217,198,239,158, 96,154, 60, 49,230,187,195,126,136, 58, 9,212,133, 45, 31,196, 48,183, 21,
-243,240,186, 96,102, 45, 21, 33,100, 69, 37, 16, 6, 37,149,229,246,219, 44,165, 46,234,209,206, 84,146,190, 86,180, 58,114, 51,
- 72,133,132, 0,165,218,225, 40, 53,138, 47,184, 22, 44,192,179, 28,162, 74,178, 27,178,138,195,117, 15, 18,225,149,179, 93,165,
- 93, 92,114,120,116, 68,191, 50,253,171,151, 70, 28, 12,132, 49, 56,111,187,243,160,228,113, 98,174,137, 90,149, 14,243, 92,219,
- 6,195,120, 2,134,184,109, 54,134, 95, 2,145,162, 25, 33,216, 45, 73,160,166,134, 11,126, 89,195, 8,120, 79,206,141,224,148,
- 46,120,114, 75, 92,222, 61, 69, 85, 89, 29, 29, 82,242, 72, 74,137,166,158, 43,199, 79,112,253,169,155,220,122,243,187, 12,235,
- 35, 98, 31, 40,163,113,168,115,105,180, 73, 89,173, 55,204,115, 65, 74, 0, 55,208, 57, 49,205, 39,150,172, 46,216,129,172,247,
- 16, 30, 41,193,246, 49, 18, 67, 96, 86,111, 68,184, 56,112,243,249,143,112,237,218, 49,125, 84,154, 23,206, 79, 46,249,194, 23,
-190,200, 27,111,190, 78,191, 90,177,238, 6,243,219,215, 74, 74,198,122,183,239,217,128,199, 51,151, 66, 73,213,186, 57,173,225,
-189, 35,213,130,247,145, 89, 29,175,189,246, 26,249,181,215, 56,238,143,121,242,185,167,120,225, 67,159, 96, 62, 57,163,215,198,
-189,233,140,221, 56,242,206,155,223,197,175, 87,244,210,113,184,186, 70, 59, 88, 51,107, 98,222,109,153,178,101, 75,148,142, 49,
- 59,210,156,233, 92,111,163, 55, 4,169,182, 99,205,115,101,102,162, 69,135,168, 77,109,234,121,162, 57, 59,240, 94, 78,231,104,
-115, 12,193,248, 13,117, 86, 18,201,234, 70,219,115, 11, 85, 90, 28, 27,213,153, 77,231, 56,223,141,172,142,122,158,121,238,105,
-254,228,197, 55,248,133,159,253, 81,190,250,149, 39,121,253,221,123, 48, 84,170,142, 24, 37,216,179, 94, 15, 54,117,171, 66,155,
-205,178, 70,245,140, 57,145, 41, 72, 16, 92,243,184, 92,105,181,226,124, 52,186,164,243, 20,103,213,208, 94,149, 60,205,200,234,
- 0, 39,133, 77,244, 76, 33,145,246, 51,251,203,187,220,187,243, 50,144, 88,135,142, 90, 20,155, 3, 44,202,101,169,212,106, 2,
-165,154, 43,142,182,216, 24,205,255, 32,170, 12,113,197,217,118,207,215,191,243, 22,191,244,185,207,240,153, 79,125,148,163,213,
-134, 23, 62,240, 24, 55,159,140,248, 78,217,191,243, 46,253,213,107,252,234,223,249,101,254,254,127,251, 15,249,131,175,254, 9,
- 63,250,163,159,228, 98, 92,179, 59,155,201, 82, 76,149,106,223,214,212, 58,209,102,136, 61,180, 16, 40,179, 3, 55,145,104,116,
- 8, 78,109, 5, 24,134, 64,221, 67,146,202,224, 7,211,157,170, 64,204,168,102,180, 68, 92, 19, 90,240,116, 85,208,170, 80,122,
-130, 88,141,205,209, 76,161, 42, 32,109, 68,197,209,106,165, 23, 24, 75, 37,234, 6,245,166,210,236,156, 35,202, 33,174, 51, 21,
-113,237, 4, 70,101,232, 35,162, 43, 98,232, 73, 50,163,217, 38,139, 97, 8,148, 38,228, 6, 7,193, 20,187,127,244,173, 87,184,
-126,229, 24,245, 29,199,253,192,225,225, 10, 9,142, 82,149, 97, 8,116,193,217,199,160, 60, 36,205,188, 63,173,174, 10,105,159,
- 40,146,105,181, 16,252,202,116,218,127,202,239,109,203, 46,252,193, 62,252, 64,222,227,169, 59,108,156,253, 61, 15, 74, 7,105,
-206,148,148,113,171,129,184, 76, 22,116,129,229, 60,144,198, 38, 96,191,140,199, 31,132,228,178,194,230,145,209,120, 85,232, 31,
-121,255,227,152,208,106,175,123, 65,222, 11, 5,126,191,244,191,252,128, 52,253,163,111,159,114,165, 44, 57,165,152, 29, 90,148,
- 90,148,232,128,117, 65, 47, 26,193, 31, 44, 33,234, 61, 42,153,182, 27,241, 62,208, 92, 79,232,140,147, 17,157,226,135, 3,202,
-121,195,249, 83, 90, 41,164,206, 49,238, 61,206, 79,172,139, 82, 80,164, 57,178,107, 56,237, 23, 18,168,226,200,104,129,172, 30,
- 9,221,194, 89,232, 57, 29,215,188,248,134,112,114,247,140, 54, 37,252, 51,207, 60,251,119, 31,161,225,219,174, 73, 28, 18, 76,
-242,193,242, 96, 94,152, 52,214,245,117,178,208,253, 22,213,159, 51, 32,253,131,127,156,115, 11,174,181,162, 77, 9,203, 13,163,
- 53,111,178,145,165, 2,102, 94, 15, 75,138,251, 7,212,185, 37,245,206, 66,138, 83, 89,232, 52, 78, 12,227,185,128,113,170, 86,
-104, 6, 95,209,224, 89,144,117,118,255, 87, 59,245,139, 55,105,140, 20, 27,201, 71,239,168,173, 45, 78,109,123,187,243,138,115,
-216, 13,191,115,244,222, 45,206,103,183,136,105,236,175,214, 5, 79,177,200,188,125,174,178, 36,233,189, 85, 80, 68,173, 90,231,
-154,129, 82,146, 86,114, 73,230,105,239, 28,203,194, 1, 39,206,190, 46,226, 8, 94, 9, 20, 90,183, 32,122, 27,244,222,177,223,
-237,184,127,182,231,226,114,203,246, 98,100,188, 24, 57, 59,219,114,177,207,140,185,146,246,149, 92,132,210, 60,165, 88,229,112,
- 30,247,156,159,143,196, 16,169,181, 44,232, 87,155, 14,104, 85,107, 31, 88, 88, 2,169, 75,253,208, 25, 14,152, 5,192, 67, 51,
-173,108, 12,142,213,106, 67,240,145, 0, 4, 21,196,119,140,247,239,113,127,187,165, 15, 29, 93, 28,168,165, 26,244,100,233, 27,
-239, 46, 47, 56,186,254, 56, 93,183, 38,231, 25, 45,101,105, 28,116,214,253, 47,137, 86,151,114,100,205, 84,105,120,137, 22,226,
- 19,115,205,143,101, 66, 53,240,194, 11, 31,160,182,194,111,252,163,127,196,151,191,242, 21,202,172,236,114,226,147, 63,252, 17,
- 62,246,177, 15, 16,250,142, 62, 12, 56,223, 24,214, 29,211,104,208,157, 0, 52,117,236,246,123,200,198, 31,119, 94,152,243,140,
-247, 61,173, 9,251,221, 37,170,130, 15,145,218, 76, 94,130,115, 28,172,215, 28, 31, 31, 49,239,246, 28, 29, 94, 39,181,194,106,
-125,200,143,255,244,207, 51,206,123,198,105,207, 19,207, 61, 78,168,158, 77,183,226,208,219, 48,239,236,226, 18,210,142,205,209,
- 53, 94,120,246,195, 60,126,229, 73,226,176,230,232,198,117,222,125,251, 93,166,121,164, 11, 1,213,202,110, 63,211, 20, 98,176,
-219,132, 83,103, 14,104,129,105,159,200, 58,147,198,137,253,180,227,252,114,203,184, 79,156, 93, 92,112,114,255, 62,248,200,102,
- 24, 8,189, 61, 32,199,253,104, 57, 23,130,117,200, 83, 33,167,202,213,227, 99, 62,124,243, 57,222,124,247, 46, 7,135, 71,188,
-113,247, 30,119,239,157,227,188,131,230,232,253,134, 46,116,172,215, 43, 36, 70, 60, 74, 23, 86, 68, 31,153,210, 72,245, 13,247,
- 96, 50,144,102,168, 14,113,209, 38, 99,157, 71,188,183,191, 83,183, 97,221, 7,250,110,192, 71, 79, 23,122,106, 21,182,219,123,
-220,187,243, 58,187,211, 55, 41,121,182, 29,190,243,248,216, 45,109, 14, 3, 89, 17,212, 88, 22,205,204,114,205,137,113,211,155,
- 57, 37, 84, 31, 40,143, 61, 23,231, 59, 90,109,124,230,211, 31,230, 71, 62,120,157,167,158, 57, 96,181,233, 17,233, 72, 37,243,
-198,203,119,184,241,204,211,252,208, 15,127,140,175,124,253, 21,230,180,231,195,207, 63,205,235,239, 90,163,195,139, 67,163,135,
- 28,240, 57, 81,125,176,212,119,107, 72,103, 93,250,206, 45,175, 63, 33,208, 52,163,165,224, 8,224, 34,222,155,136,199,213,128,
-107,106,164, 47,173, 54,185, 43,145,230, 86,204, 76,196, 14,195,193, 6, 37,101,165,182, 64, 8, 3,197, 87, 88, 57, 92,178,139,
- 75,215, 27, 45,204, 59, 97,181,234,145,108,181,218, 13,133, 57, 21, 36, 21, 52, 22,218, 98, 46,116, 99,162,101,155, 44,224,236,
-208,208,121, 24,170, 77, 37,213, 9,231,211,196,221,251, 91, 46, 47,118, 92,156, 79,188,115,114,193,219,119, 78,185,117,118,201,
-221,147, 51,110,223, 57,231,157,187, 23,220,189,117,193,126, 59,115,185,155, 57, 57,155, 57, 63,219,209,114,161,228,194,249,229,
-196,201,221, 51,198,113,139,102,232, 87, 29, 79,222, 56,198,251,240,207, 89,204, 30, 80,218,226, 35, 15,249,239, 87, 36,187,119,
- 81,216,158,159,211,180,176,217,172,120,250,177,227,135,239,111, 37,223,235, 46, 31, 30, 9,177, 45,174,177,135,111,175,134,249,
-127,248,231,206,192,237,179,137,253,217, 37,115,202,116,209,115,237,250,177,249, 54,128,221, 2, 77, 19,121, 0, 79, 91, 38, 18,
-143, 16,244, 30,109, 7, 40, 44, 42,172,247, 30,235,183,183, 51,119,238,222,226,252,108,199, 52, 85, 18, 25,154,133,229,116,103,
-151,223,234,123, 10, 35, 93,233, 40,115,198,123, 8,222,145, 52,145,117,132,177, 32,125,197,245, 3,251, 59,231, 56, 41, 20, 28,
-115, 74, 56,113, 84,102,166,125,166,102, 79, 63, 68,106, 72,148, 57, 17,157,195,117,129, 90, 60,110, 48,219, 41,165,144,164,114,
-180, 17,126,230,231, 62,202, 71,126,232, 51,220, 45, 7,220,123,253, 93, 66, 91,234, 98, 15,190,241,155, 23,139,234,103,115,198,
-214,229,129, 78, 83, 36,152,209, 74,112,148, 7, 99,115,140,224,211,176, 94,186,136,125,209, 60, 66,112,150, 15, 85,177, 19,191,
-202, 66, 83, 19,165, 36, 75, 86,235,194, 59,207, 8, 94,150, 29,186, 42,173, 20,106,131,208, 5, 80,219,195,137,148,165, 23,106,
- 61,114,130, 77, 8, 36,103,196, 27, 0, 70,205, 38,251,176, 26,167,205, 44,102, 33, 56,219,117, 53, 27,193,106, 16,180,217,126,
- 71,156,152,181,168,168,221, 98,157, 80,164,176,146,184,168, 72,237,243,181,139, 68,180,155,223, 98,165, 83, 20, 41,133,220, 26,
- 82, 4,239,132,216, 57, 51,176, 53,104,222, 19,233,141,218, 87,102, 90, 92,198,255,203,144,169,212,197,112,229, 58, 90, 45,204,
-173, 50,230, 14, 71, 99,221, 57,196,119, 52, 10, 18,204, 84,119,255,100,143, 23, 59,244, 12,253,218, 86, 33, 90,232,250,235, 60,
-253,212, 1,185,205,204,105,100,222,207,168, 22,106,173,148,156, 45, 84,232, 5,215,170, 37, 88,197, 18,246, 15,146,209,141, 69,
- 35, 88, 5, 31, 58,123, 88,231, 70, 8, 27,146, 98, 55,178, 50, 35, 90,216,237, 47,112,161,179,128, 89,109,104,155, 73,251, 75,
-156, 10,117,222, 83,253, 64,154, 13,222,177, 34,224, 36,225,195,192, 62,101,212,193,188,132, 77,162,119, 52,177, 93,101,140,214,
-199,204, 99,226,255,250,245, 95,231, 43, 95,249, 3,240,194,189,147,187,104,109,180, 54,113,243,233, 99,170, 20,222,189,117,135,
- 16, 86,108,186,142, 55,223,124,131, 59,183, 95,163, 21,207,245,163,171,108,231, 29, 90,102,126,254, 95,254, 9,238,221,185,199,
-239,127,233, 59,172,174,172,113,109,101,180,186,121,107,122,209,230, 72,251,189, 53, 60,130,179,158,121,205,236, 46,182,228, 73,
-241,110,205,147,143,223,224,160, 19,190,240,127,255, 58, 13, 33,250,142,187,247, 46,184,115,126, 10,222,209,227,241,209,113,245,
-184, 71, 69,184,113,112,200,144, 18,111,222,187,195,241,225, 33,170,141,237,124,138, 11, 54,101,152,246,137, 42, 25, 69,153,178,
-169, 74, 83,218,210, 82,102,206,102, 53,211,214,204,144, 23,133, 16, 34,210, 5,122,223,211,111, 54,248, 24,240,206,147,210,100,
-193,207, 96,130, 32,209,142,185,212,133,165,238,120,237,246, 57,143,223,124,154,245,209, 99,252,111,191,249, 7,108,207,183,244,
- 93,135, 11,129,232, 7,250,245, 1, 74,163, 52, 33,138, 48,108, 6, 90,129,185,101,100,176, 70,135, 43, 30,245,138,139,246,240,
- 83,183,160,149,137, 4,241, 16, 34,125, 55,152, 8, 40,128, 87,207,156, 28,101,188,203,233,237,183,184,188,119, 11, 13, 88,202,
-189, 41,181,102,124,231,233,196,112,201, 37,202,210, 79, 53,203, 34, 84,162,216,164, 45, 89,111,149,232, 29,133, 66, 8, 3, 93,
- 8,124,243,165,119,248,226, 87,190,201, 71, 62,244, 89,168,137,179, 19, 24, 14, 60, 49,218,223,195,139,127,252, 29, 62,249, 35,
- 63,204,223,248,249,191,206,255,249, 27,191,197,241,230, 29, 62,245,241,155,124,235,197, 83,180, 22, 84, 51,213, 39,235,135, 55,
-103, 29,121, 18, 45, 55,186,197,142,213,188, 49, 48, 92, 28,112, 69, 9,226, 24,181,226,170,163,182,137,182,138,196,169, 99,191,
-157, 24, 54,158, 50, 21, 52,102,188, 88,168,169, 37, 27,227,171,122,252, 16,168,169, 80, 67, 51, 63,197, 69, 70,250, 3,138,155,
-112, 5,138,140, 72,240, 54, 0, 15,142,224,247,108, 39, 91,243,185,160, 72, 56, 36, 5, 37,249,194, 52, 27, 68, 43,104, 35, 14,
- 7,182,202,156, 11,251,206,113, 32,176, 94,175, 57,252,127, 89,123,147,102,205,178,235, 60,239,217,221, 57,231,235,110,151,153,
-149,213,100,101,181,168, 42, 64, 16,193, 34, 64, 74,180, 40, 43, 20,116, 72, 17, 30,216,161, 31,160,137,127,132,198,254, 35, 30,
-122, 34,135, 71,178, 29, 86,216,164, 45,211, 20,200, 32, 1, 16, 96,161, 41,161,250,236,187,219,124,205,105,118,179,182, 7,235,
-100, 86, 17,166, 24,118,132, 48,170, 74, 20, 10,153,247,187,247,156,189,215,122,223,231,121,253, 77,140,117, 76, 87, 61, 98, 91,
-245, 60,196,136, 76, 3,219,108,245,114, 54, 36, 40, 35,207,118,123, 76, 80, 67,152,254, 57,245, 70, 37, 51, 84, 39,103,161,105,
- 42,253,126,224,103, 63,255,146,213,170, 35, 2,199, 77,203,217,209,138,166, 9, 28,178, 96, 76,197, 47, 3,198, 58,173,253,121,
-243,119,184,200, 35, 57,205, 72, 84,255,255,221,192,246,155, 29,242,223, 52,174,121,244,121, 47, 57, 99,210,204,199,152,153,242,
-117,238,210,127,243,133,125,152,141,115,221,252,107, 59,129, 49, 67, 59,103, 1,146,192,120,136,172,151,141, 62,163, 4,250,139,
- 11,124, 18, 98,174,180, 77, 97, 26, 51,251,221,132,149,164, 96, 54, 3,174, 92, 49, 13, 19,201,119,116,139, 37,135,148,137,185,
- 82,211,132,229,136,232,206,217,108, 22,148, 26, 72,236, 9,214, 34, 4,188, 68,204,148,193,119,212,186,215, 74, 47, 22, 91, 52,
-235,165,246,163, 68, 25, 7, 74, 93,178, 12, 66,242, 45, 98, 4,147, 42, 47, 5,195, 17, 90, 49, 94,185,130,207,136,126, 65,230,
-151,160, 17,139,109,132, 90,102,187,238, 44,251,112,104, 15,189,212,130,115,118, 14,151, 41, 7,182, 86,143,153, 11,238,117, 62,
- 85, 85, 81,170,131, 1,146,204,164, 28,167, 31,143,169, 85,193, 50,202, 12,196,186, 0,165, 32, 24,170, 5,107, 10,115,167,141,
-146, 53, 64, 80, 49,179, 14, 83, 19,245,213,104,240,197,207,130,136,156, 10,214,205,181,173,130, 90,198,172,211, 14,169,100, 74,
-153,247,253,243,136,207,187,231,183, 83, 94,220,178, 49,144,147, 65,235,182,149,169, 68,108,112,170,133,149,164,174, 92, 17,252,
- 92,165, 43,169, 32,206, 41, 71,220, 88, 37,188,213,140, 21, 1,111,177, 30,140,173, 20, 25,193,120,106,227,161, 20, 74, 74, 24,
-175, 74, 71,153,213,123,173,215,154,223, 97, 40, 28,118,153, 41, 30, 88,116, 45,198, 85,213,241,121, 15,141,163, 75,253,252,141,
-106, 49,177,103,215, 15,204, 57, 70,188,181,115, 63,188,101,113,163, 99,179, 62, 66, 82,230,217,249, 83,250,254, 64, 46,145,152,
- 19, 41, 37, 13, 63, 74, 37, 81,213, 11,236,156, 62,140, 76,197, 89,139,115, 94,253,213, 86, 67, 82,166, 66, 28,162, 2,138,124,
-230,234,252, 49, 24,163,170, 71, 49, 76,169,199,251,134, 48, 39,136,237,252,112,139,166,208,152, 74,208,239, 48,156, 8, 38,171,
-140,194, 56,131,137, 5,239,102, 9, 70,137,212,236, 17,147,248,252,139, 95,179, 10,157,190, 0,242,132,107, 42, 71, 75,207,207,
-127,242, 11,126,145,126,134,247,122,131,170, 78,141,119,102,210,207,212,174, 29,191,255,159,253, 14,255,228, 7,223,230,241,163,
-135,220,187,115,143,255,112,247,138,182, 89, 18,135,131, 58,151, 69,244, 5,134, 18, 10, 13,232,139,199, 24, 46, 47,207, 49, 77,
-203,211,203,175,232,251,128, 91,108,184,121,252, 50, 55,110,222,196,213,194,230,104,197,106,189, 98,138,133,139,167,231, 20, 99,
-112,161, 37,201,132,136,227,201,197, 83,206, 31,222,163, 61, 57,230,171, 59,119,152, 14, 61,205,114,205,152, 34, 83,142, 56, 35,
-140,135,158,203,180,213,155,168, 85, 40,204, 98,233, 89, 47, 55, 44,252,146,166, 83, 1, 10,243, 84,171, 68,152, 36,170,173,171,
- 20, 98, 44,136, 84, 90,223,208,143, 35, 49,239,169,162,129,215,177,100,238,222,125,130, 55,134,221,152,216, 15, 19,190,105,177,
- 97,193, 34, 4,170,209, 91, 72,157, 34, 87, 67, 79,170, 89, 13,109, 46,225,219, 21,118,178,248,234,169, 68,200, 89,171, 63, 14,
-146, 76,248,118,165,245,211,166,165,216,128,219,180, 4,219, 64,233,152,204,196,246,226, 49,219,199,159, 50, 30, 46, 8, 33,168,
-101,177,106, 32, 13, 17,100,170, 20,175, 63,247,186,118,179, 84, 91,240,198,225,196, 80, 68, 3,164,198, 10,198, 27, 61,236, 86,
-245,150,135,110,137,193,243,231, 63,249,148, 91,183,174,241,143,127,239,239, 97,189,167,157, 6, 22,173,227,236,100,205,211,187,
-231,124,254,249, 23,252,238,239,191,195,186,245,252,155,255,249,223,114,251,205,142,215,110,175,121,116,231, 41,141, 93, 50,213,
- 94,201,141, 37, 81,242,200,132,193,132,128, 77,153,236, 50,193,118,186,222, 75,149,224, 42,197, 38, 76,177,100, 96, 49,179, 35,
- 50, 35,185, 26,226,228,176, 86,247,237,147,140, 4,211, 96,168, 72, 45,216,146,113, 98, 17,211, 48,236,123, 66, 23,192, 54,120,
- 12,185, 84,162, 12, 4, 87, 9,238,152,113, 60,208,148,134,188, 88,144,164,208, 68,167,134,189,210, 19,166, 21,165,241, 74,181,
-155,132, 82, 44,195, 54,225, 54,149,188,240,116,217, 34, 85, 56,190,126,196, 15,222,186, 65, 4, 30,165, 51,174,207, 30,139,203,
- 2,187,190,114, 20, 12,131,192, 97,204, 12,219, 65,217, 5, 37, 51,236, 6,117, 24, 88,139, 76, 17, 59,236,245,121,105, 21,214,
- 84, 74,229,124,119,224, 98, 55, 34, 8, 79,141,229,179, 4, 77,167,129, 96, 41,176,232,148, 43, 97,141,227,108,189, 36, 4, 79,
-117, 30,145,204,178, 11, 52,222,145,157,225,176, 61,167,164,164, 43,132, 89,176,245,159,194,210, 86,103,154,156,154, 55, 11,203,
-198,254,141,140,192,145,249,155,187,242,179,223, 88,183, 47, 44, 44,154,175,167, 12,163, 5,187,234,104,230,105,193, 96, 96,204,
- 13, 70,132,208,102, 98,111,176,135,217,180, 25,150,200, 98,164, 92, 85, 14,195, 68,201,142,188, 16,232, 51,118,156, 48,102,143,
-208,208,116, 9,153, 4, 57, 20,114,152, 53,220, 38, 82, 35, 84, 87,208,183,223,252,238,179, 14,114,192,103,139, 11,153, 20, 51,
- 22,171,208, 49, 25,153,170, 78, 77,154, 92, 89,156, 56,218,229, 53,157, 94, 28, 20,230,229,165, 84, 29,141, 86,131,215, 97, 18,
-214, 88,156,211, 29,145, 11, 78,189,228,229, 57,196, 68,197, 15,234,108, 81, 26, 92,121,158, 54,127, 94,137,123, 62, 34,153,199,
-233,179,247, 74,127,176,231, 79, 33, 24,131, 4,221,239, 72, 45, 47,170,116,165, 42,191,215, 26,131,183, 70,193, 51,206,226,157,
-114,220,141,104,189, 75,252,188,159,182,138, 0,181,115, 98, 94,127, 7,162, 59,228, 26,181,190,100, 29,222, 25,130, 84,178,105,
- 20,202, 96, 4,103,213, 33,238,190,177, 37, 50, 86,145,171,197,161,225,170,162,202,211,198, 26, 4,136,169,204,117, 15,149, 39,
-212,148,168,206,234, 65, 33, 84,138, 64,202,250,123,118,165,208,120, 29,225,149,154,161,177,164,249,129, 44,217, 34, 46, 19,240,
- 88,175, 35,242, 82, 13, 37,122, 66, 99, 72,180,184,166,165,177, 22,130,163,163,225, 16, 7,104, 60,142, 66,140, 58,178, 92,172,
-150, 72,150, 23, 35,247, 49,234, 72,118,154, 6,182, 87, 87,132,118,129,115, 45,155,227, 14,239,172,170, 78,141, 97, 24, 15,108,
- 47,175,216,247, 61,165,102,221,229, 27, 67,227, 21,120, 81,158, 47, 83,156,197, 73, 75,131, 99, 55, 30,240,203, 21, 39,167,103,
- 42, 17,153, 50,222, 59, 98,201, 16,237,172,225, 69,201, 72, 88,130, 11, 88,215, 33, 76,140, 78,176,222, 80,162, 30,170,150,109,
- 51, 7, 44, 13, 18,202,220,151,181,100,153,176, 70,171, 80, 67, 44,136,113,216,106, 24, 37,241,201,175, 31, 48,142, 73, 67, 85,
- 67,193,218,137,205, 38,144, 68, 15, 80,165, 22,214,171, 5,215, 78, 91,254,215, 63,250,247,252,203,255,230,191,230,191,253,240,
- 45,254,213,191,250,239,120,178,157, 8,203,134, 52, 36,166, 52, 97,157,193,139,195, 26,209,239,163,182,125, 49,130, 11,206,176,
- 63, 12, 44,142, 58,166, 92,120,248,232, 46, 95,222,251,138,197,122,201, 75, 47,221,228,214,237, 55,185,121,109,195,178, 89,241,
-236,217,125, 18,133,216, 11, 95, 92,125,142, 49,130,219,172, 40, 86, 87, 30,198, 58,166,113,192, 91,143,228, 66,182,218, 77, 63,
-190,190,210,158, 61,186,190, 42, 70,144,236, 72, 50, 40,131,189, 8, 53,171,158,152, 86,201,119,181,177,244,243,205,118, 72, 61,
- 49,121,210, 48, 81, 4, 98,173,180,190, 35,248, 76, 21,248,242,222, 57, 85, 42,109,183,208,181, 79,169, 51, 2, 56,145, 74,102,
-154, 70,106, 85,184, 17,146,217,108,150,180, 86,195,111,160, 42,211,146, 52, 27, 35,185,224, 66,139, 37,232,195,191, 6,214,139,
- 13,222,119,218,117,143, 79,185,123,231, 83,246,151,247,168,146,232,218,133,170,153,171,232, 4, 44,105,175, 54,229, 76, 2,150,
-174,193, 24, 79,170,133, 92, 51,182, 38, 13,147,226, 49,161,168, 93,208, 43, 46,218,160,124,136,156, 35,109,187, 38,102,225,207,
-254,244, 99, 36, 10, 31,124,247, 61,222,127,253, 38,130,174, 3, 79, 54, 11, 62,249,244,215, 28, 45, 91,190,253,157, 87, 57, 63,
-252, 30,127,244, 71,127,206, 43,183,110,176,186,190,226,242,178,135, 98, 73, 40,247,125,101, 90,182,146,152, 36, 97,131, 26,214,
- 74, 77,228,121,117,133, 13,152,236, 85,155,106, 10, 83,227, 97, 80,102, 71, 45,149,104, 10,203, 38, 16, 83,197,219, 35,178, 31,
-177,232,196,101,152, 50, 77,208, 23, 90, 48, 11, 72,134,246, 52, 64,202,144,160,115,158, 98, 2,166, 70, 92, 42, 36,132,144,206,
-112,229,130, 33, 27,214,116,140, 6,138,221, 98, 19,234,203,246,107,252, 96,168,141,114, 60,156,131,100, 43,193,192,217,106,243,
-194,145,126, 22,190,198,160,182, 14, 78, 55,134,245,252,247, 79, 23,158,254,100,195, 53,171,253,237,199,227, 41, 27, 3,161,129,
- 93,129, 39,247, 14, 76, 95,125, 73,157, 38, 50,142,211,107,167,180, 55,174,147,147, 80,182, 7, 42, 17, 41,144, 81, 77, 50,214,
-208,103,109, 11, 65,228,208, 23, 50, 5,177, 80, 75,161, 51, 14, 68,137,146, 53,139,230, 74, 26,199,195,167, 23,148,148, 88, 46,
- 87, 24,231,104,156, 99,189,108,241,193,147, 5,172, 17,218, 54,188,128, 36,105, 6,195,252, 71,161, 54, 41, 37,114,137, 10, 61,
-242,255,255,240,179,225,111, 33,236, 45,236,223,172,203, 97, 12,251, 24,137,169, 48, 85,101,171,132, 69,160, 63,244,152,152, 48,
-101,129, 11,215, 40, 54, 97,167,145,108, 51,102, 9, 77, 92, 51,164,145,105,220,107, 32, 58,195,224, 14, 80, 51,249, 42, 99,188,
- 16,167,132,167,193, 38, 5,250,102,155,136, 84,178,100,188,237, 16, 91, 40,217,224,186, 37, 85,122, 76, 53,172,221,130, 62, 30,
- 8,211,158, 69,235, 25,129,114,216, 83,235,132,111, 27,131,136,142,158,197,104,247, 91, 63, 32, 64,202,220,251,158,237,100, 69,
-129, 45,198, 43,134,181,166, 57,236,102,133, 82,253,215,139,247, 92,177, 78,247,104,207, 67,114,213,168,162,206, 88,125, 33,102,
- 51, 3,111,170, 32, 51, 57,169, 72,213, 23,185, 5,231,176,137, 30,187, 0, 0, 32, 0, 73, 68, 65, 84,204,139,132, 54, 78,113,
-178,144,102,252,172, 67,234, 60,254,174,186, 23,182,243,218,192, 22,245,164,219, 90, 52,224, 97,130,142,249,170,190,132,131,201,
- 24, 12, 89, 64,234,156,130,159,169,109, 37, 85,108,251, 92,248, 82, 8, 62, 19, 81,121, 76,114, 94, 67, 85, 34, 36, 99, 21,246,
- 49,243,127,141,171,212, 73,187,246,110, 86, 63, 58, 83, 16, 3, 57, 59,138,181,216,182, 98,114,154,233,123,117, 54,177,169, 31,
- 62, 20,221, 3, 27, 42,203,227, 87,113,135,158,152, 70,156, 13, 88,223,224, 92,197,153, 64,157, 14,120, 83,145,172,135,146, 90,
-149,157,111,109,125,145, 26,181,226,177, 51,192,162,136, 64,158,200,162,135,182,222, 42, 7, 61, 52, 29, 88,195,226,232,132,211,
-155, 47,235, 52,101, 72, 96, 34,219,203, 11,253, 28,139,106, 5,167, 67,101, 29, 28, 25, 33, 17,233,252, 9,190,237,232, 28,152,
- 14,218,118, 5,161,240,244,254, 67,221, 49, 74,101, 26, 70, 85,236, 82,233,108,162,159,138, 2, 56,156,144,115,166, 98,184,245,
-234, 9,143, 30,156,179, 27, 38, 37,128,121,121,209,157,173, 22, 66,117,164, 82, 8, 70,168, 88,198, 60, 42,144,103, 86, 77, 78,
- 83,164,109, 60,227, 36, 88,163,234, 91,113,134,163,166,229,231, 63,253, 5,239,190,251, 29,154,106, 56,191,186,224,218,145,227,
-211,207,206,241,139,160, 15, 21,163, 35,198, 82, 43, 73,132, 96,132,102, 54, 72,229,106,105, 93,135,196,200,227,251, 23,156,156,
-174, 49,221, 9,157,207,148, 56,241,197,103,159,240,232,222, 87,172, 22, 39, 88,167, 7,213,208, 53,180, 33,208, 54,150,225, 80,
-216,246, 59,134,113,100,218, 31,168,222, 48, 13,137,108,116, 77,229,231,195,242,238,114, 75,206, 25,235,103, 6, 66, 99,177, 4,
- 38, 23,104,157, 39,216,138,105, 91,172, 53,196,152, 72, 49,210, 87, 88, 52,170, 2, 29,199,129, 82, 10,195,161,103,213,174,184,
-241,210, 53, 14, 99, 36,111, 71,140,211, 92,139,128, 18,243,138,182, 86, 28,149, 49,141, 32,133, 38,120,154,176, 1, 3,195, 56,
-145, 43, 28,155,128,115, 94, 5, 50, 94,237,124,181,104, 65,212, 85,193,136,224,221, 18,227, 23,184,102,195,184,219,113,121,126,
-159,195,197, 67, 14,219, 39,152,214, 99,173, 87, 42, 26,170,215, 21,175,251,187,106,173, 94, 14, 18, 16, 58, 92, 51, 63, 63,130,
-161, 74, 3, 24, 92,209,113,174, 65,127,102,107,181, 24,231,230,198, 73, 68,100, 98,189, 56,225,222,179,129,255,229,223,125, 68,
-173,134,163,197,138,245,106,201,144, 18, 79, 30, 63,227,215, 95,126, 65,101,193,111,125,167,242,247,223,127,131, 39,143,246,252,
-217, 15,255,130,151,222,120, 13, 91, 3,210, 0,105,134,221,200, 2,159, 35,181, 38, 76,237,244,112,104,147, 66,149,166,204, 36,
- 70,215,104,168,181,210, 20, 13,206,154,164, 42, 87,103, 13,185, 26,164, 36,214,109,161,151,202,161,168, 36,198,153,138, 13, 6,
- 91,162, 62,203,170, 69,174, 18,214,154, 57,219,224,177, 50,145,140,199,209, 32, 38, 19,250, 45, 7, 28,213, 78,244, 56,237,105,
-205,207,214,241,188,176,238, 52,180, 76, 48,196, 92,241, 83, 33,172,192,210,210,217,191, 93,141,106,126,227,165,229,140,214,216,
- 86,243,203,171,111,225,229,121, 63,253,178, 7, 57,105,249,242,158, 69, 44,180,213,240,222,155, 47,113,114,186,162, 7, 30,239,
- 54, 52, 85, 48,193,209,199,204,184, 31, 8,109, 32, 98, 48,147, 32, 49,107,149,180, 8,210,143,138, 71,181,142, 40, 17,219, 15,
- 24, 91,136,195,128,145, 74, 50,142,251,231, 61, 97, 55,105, 40,219, 24, 13, 99,163,239, 35,107, 43,141,179, 52,222, 81, 43, 44,
- 27, 71,187,104,113,214, 50,101,161,177,149,197, 34,224,156,227, 50,102,118,151, 23,218, 4, 42,170, 27,254, 79,249,159, 2,212,
- 49,146,178,190, 92, 73,137, 36, 5, 16,188, 43,228, 33,227,218,129,197, 8,161,104,181, 51,153,162,113, 51,241,212,162, 46,146,
-156, 61, 39,214,146,165,144, 76, 67,105, 50,213, 6,106, 74,216,208, 96,188,197,246, 66,204, 19,126, 81,169, 67,197, 78,130,105,
-243, 60,141, 76,216,149,133,232, 48,165, 34,109,229, 80, 10, 31,127,244, 25,241,233, 45,158, 61,249, 4, 17,193,235, 13,220,104,
- 96,196,234, 75, 66, 94,220, 88,156,170,247,230,128, 87,170,122, 75,111,140,195,168,140, 82, 71,158, 70,125,230,214, 42, 78,177,
-154, 58,247,158, 13, 37, 11,174,153, 21,172,115, 80, 11, 99,230,219,106, 70,164, 18,188, 74, 89,172,204, 90, 87,163,100,150, 82,
-243, 76,181,155,199,238, 85, 11, 48, 22,247,141,223,155, 87, 38,124,142, 84, 49,208,232,148, 1, 81,227, 90,148,130, 49, 6,111,
- 52, 15, 80, 69,215, 6,166, 90,114,141,202, 67,199,205,139, 23,171, 15, 26,167,171,132,113,202,248,224,102,151,122,209,191,182,
-250,200, 50, 50,191,188,139, 40,160,198, 86,160, 80,170,165,206, 98, 1, 93, 1, 40, 30, 54, 20, 79,232,244,167,170, 74,157,191,
-145,161,184, 74,142, 9,239, 2,194,146,118,115,157,253,213,151, 96, 58, 76,211, 33, 69,199,251,217, 36, 22,109,160,100, 40,117,
-196, 89, 40,232,206,191,177, 78,165,111,162, 55,236, 90,181,111,174,244, 93,165,216, 7, 44,213,233,105,215, 20, 51,247,148,133,
-108,122,114,169, 56, 31, 56, 94, 29,115,184,186, 36,214,172, 55,173, 12,169, 22,174,234,129,102, 95,168, 69,119,102, 67, 63, 40,
-125,203, 24, 82,172,132,206,207,112, 29, 29,193, 21, 50,206,122,138,133, 93, 26, 8,126,201,178, 89,113,232,207, 57, 90, 45,184,
-218, 79, 60,124,186, 69, 36,107, 11, 34, 21,106, 22,138,171,115,210,214, 18,131, 96, 37, 48,150,132,109,140, 6, 42, 75, 36, 35,
-196,164, 73, 23, 51,187, 0,168,208, 4,237, 60,187,198, 51,140,137,179,163, 83,238,124,122,193,191,249,227,127,207, 54, 85,190,
-245,247,222,224,226, 98,207,246,234, 48,211, 1,245,229,154,199,136,233, 44,110,209, 81,114,162, 90, 67,205,145,198,183, 28,157,
- 28,115,180,106,232,199,130,245,154,103,166,107,169, 70,136,105, 75,220, 37, 50,130,223, 26,112,150,213,122,193,162, 57,193,153,
-150,233,240,148, 73, 70,210, 88, 20, 68,100,181,134, 25,163,208, 46, 3,199,203, 53,253, 48, 97,201,196,172,140,130,104,244, 65,
-145,197, 81, 98,198, 4, 85,122,230,113, 36, 77, 19, 75,115,132,179,186,200,144,152,232,199,137, 36,208,154,202,181,235, 55,152,
- 30, 60, 96,187,123,138,169,142,213,122,205,205, 27,215,145, 82,185,186, 58,199,248,145,103, 23,145,110,217,226, 93, 71,104,151,
-224,170,106,104, 75,203, 36, 19,195,238,192,209,250,136,234, 43,105,212,138,161, 32,136,215,125,123, 75,128, 34,196,113,199,179,
-103,119,136,253, 51, 98,191,199, 59,171, 50,145,170, 36,189, 33,141, 4,239, 21,148, 82,117, 5, 85, 49, 52,120,166,156,216, 14,
- 59, 22,169,193,181, 94,215, 31,214,171, 42,211,168,189,177,216, 12,121,206,173, 84,131,179,129,106, 43, 53, 71,162, 63, 32,193,
-210,231,204, 31,253,217, 47,248,233,175,238,112,251,205, 87,120,235,213,155,252,242,227, 47,232,115,100,179,186,203,191,254,159,
- 62,227,159,255,227, 63,224,159,253,225,247,216, 14, 87,124,254,213, 83, 94, 57,187,206,231, 79,159,104,202,202, 26, 14,110,192,
- 57,193, 69,133,107, 17, 42, 77,235, 73,201, 96,151,142, 90, 91,164, 10, 53, 69,196, 20,194, 98,137,243,158,202, 72,152,131,178,
-181, 24, 66,219,113, 96,164, 86,139, 55, 45,206, 10,217, 57,234, 60, 21, 60,148, 1,147,133, 54,180, 4,223,113,152, 18,181, 43,
- 24, 9,172,130,103,148,145,198,121,170,201, 80,133,182,109,112,169,227,144, 71, 58,148,241,145,210,200,182,100, 22, 97, 65,189,
-180,248,205, 2,223, 24,236,228,136,222,112,255, 42,195, 81, 37, 78,153, 38, 70,236,217,138,224,225, 48, 63,159,218,206,129, 5,
-159, 53,203,132, 51, 47,158, 25,246, 27,142,211,154, 50,117, 78, 96, 47,154,192,201,178, 37, 0,199,128,217, 88,214,115,178, 98,
-183, 8, 12, 71,129,107,115,248,108,171, 86,105,150, 86,131,107,207,226, 10, 39,149,106, 33, 21,184,122,122,201,197,253, 7,100,
-163,181,221,245,233, 41,238,232,136, 44,134, 58, 37, 58, 99, 49,193,147,162, 96,210, 68, 33,209,151, 74, 47, 5, 91, 42, 59, 17,
-100, 27, 85,174, 85,133, 90, 4, 87,133, 49,167, 23,151, 54, 74, 70,128, 95,127,245,152,243,203, 61,139,101, 75,193, 17, 92,224,
-120,213,105,149,215, 25, 98,206, 44, 90,175, 43, 34,163,191,191,174,245,115,190,225,121, 34,252,235,205,126,173,232,212,215, 25,
- 98,173,132, 81,139,212, 81, 70,188, 24, 38, 91, 9, 2,187,105, 7, 37, 83,140,224,219, 53, 69, 96, 55,237,105, 12,120,191, 34,
-199,137,166,243,140, 25,178,157,112,161, 69, 74,194, 86, 71,154,246,200,160,117,237, 54,104,170, 61, 97,152,196,226, 38,240,197,
- 83,106,160, 92, 69, 48, 17,227,159, 33,180,132, 35,199,179,107, 27, 70,183,198,199,204, 33, 38,188, 48,215,199,204,108,168,154,
-103,251, 82, 43,209,184,121, 92,110,200, 34,170, 40,181, 78,137,254, 51, 49,184,136,158,122, 29, 50,215,225,148, 23,175,215, 4,
- 93, 74,212, 57,144,245,252,135,212,200,204, 98, 55, 78, 79,179, 78, 41,106,224,245,133,110, 12, 66,193, 88, 52, 16, 39, 80,201,
-154,204,118,110, 30,213,171,164, 33,103,181,121,129,213, 27,138,209,111,210,130,210, 4, 92,177, 47, 14, 19, 2, 42,104, 40,134,
-138,130, 21,168,162,166, 40,235,212, 98,102,244,100,168,141,116,175, 39, 98,107,112, 86,253,201,206,185,185,250, 45,136,119,212,
-108,200,197,128,171,200, 28,148,107, 90, 67, 78,122,250,180, 86, 15, 30,206, 84,178, 81, 58,154, 21, 53,119, 57,241,228,164, 82,
- 22,239, 42,147, 52,236,174,158,176, 29,158,178, 88, 46,240,181,165, 11, 51, 52,198, 54,148, 0, 98, 43, 55,150, 11, 46,246, 79,
-216,165,137,205,250,136,245,122, 67,153, 70,236,120, 32,102,153,119,147,105,134, 15,120,124,240, 56, 31,104, 44,148, 89,162, 44,
- 81, 40, 34, 4,223,128, 15,172, 54, 43,134,237, 57,211, 52,225,219,142,105, 42,115, 61,177, 98,163,238,143,210,152, 89, 44, 1,
-171, 4, 62, 42, 24, 39, 80, 53,205,190, 92,157,178, 58, 57, 33,197,158,241,208, 83,162,193,216,150,176, 80, 27, 94,183, 90, 96,
- 75, 36,197,196,209,170,163,235,214,236, 15,151,216, 70, 52,153, 42,154,161,176, 14, 36, 22, 77, 71, 91, 75, 73,149, 82, 39,170,
-204,146,156,172, 31,121,176, 1,114, 34,138,161,100, 75,215,120,142,218,150,123,251,200,131, 71, 15, 9,203,202, 85, 31, 56, 59,
-187,197,135,191,253, 62, 95,126,113,159,255,227,255,254, 33, 67, 63,205,244,192,164,225, 71,235,112, 52, 76, 53,170, 12,199, 26,
-144,196, 43,175,189,202, 43,175,223,230, 87, 63,253, 49,103,103,175,114,243,214,235,124,252,243,143,216,110, 31, 67, 8,108, 78,
-174, 19, 69,216, 93, 92,112,254,228, 17,235,147, 99, 94,189,190,193,212, 72,117, 70,189,234, 84,188,115, 76,113,210,252,132,241,
-184, 73,232,107,164, 31, 14, 72,213,188,135,161, 98,141, 35,116, 14, 17,157,108,184, 90, 21,106, 98, 19,203, 69,131, 55, 48,142,
- 35, 82,149,237,141, 36,114,156,184, 24,119,252,201,159, 60,210, 85,151,247,100, 73,236,250, 43,222,222,188,206,186, 61,225,104,
- 5,223,255,246,134, 63,249,217, 21,143,158, 29, 48,165,224, 27, 59,175, 63,230, 22, 72,134, 33, 78,152,253, 21,174, 9, 4,223,
- 97,179, 6, 74, 69, 34,140,202,166, 31,166, 3,231,219, 61, 57, 31,232,108,160, 86,171, 4, 72, 99,177, 53, 83,170,197, 89, 63,
-131,193,245, 25, 97, 45,228, 44, 76, 85, 25, 8,182, 84, 98,142,116,193,178, 89,174,153,198,137,195, 52,226,157,218,221,164,102,
-170, 3,111, 23,154, 74,167, 34,174,197,251, 70, 67,156,249,128,136,176,221, 78, 92, 94,142,124,113,247,130,191,104,126,197, 36,
-142,155,175, 28,243,213,103, 15,120,250,108,207,221,119,223,224,214,173, 83,254,224,251,191,197,253, 47,255,152,103,231,119, 56,
- 91,159,241,236, 98,192, 74, 98, 81, 13,169,120,106,227,176, 49,232, 84, 35, 86,188, 15, 16, 39, 36,136,138,157, 66,197,136, 39,
-149, 72,138, 3,221,162,165, 24,193,196, 22,108,102, 28,244,246,218,181, 6,153,132,128, 78,202,172, 47, 12, 67,130,234,112, 71,
- 75,109,154,148,138, 95,120,186, 77, 75,154, 42, 83,204, 52,193, 83,147,103,139,197,214,137,236, 60, 99, 61, 16,130,163,164,168,
-249, 23,107,201, 86,152,124, 97,221, 90, 66,152, 33, 93, 41,115,220, 29,243,234,237,151, 56,221, 24,238, 15,158,135, 59,195,179,
- 90,113,197,144, 46, 19,140,145,205,233,138,206,194,238,114,192, 53, 13, 97,165,153,135, 97,183,103,187, 10,172, 59, 79,113,134,
-195,197, 14, 91, 38, 74,204, 52,139, 64,248,134, 73,237, 55,251,236,207, 33, 52, 14, 56, 49, 95, 99, 87, 27,192, 54,176, 80,231,
- 38, 5,248,229,188, 38,148,156, 41,222,241,202,171,103,188,116,188, 33, 1, 79,179, 78, 15,156,211,250,218,118, 16, 85,242, 58,
- 67,202, 66, 25, 35,214, 58,140,181, 20,169,164, 49, 66,133,156, 43,109, 41,212,233,128, 25, 70, 14,211, 78, 51, 76,206,242,116,
-210,128, 90, 77,218,176,192,239,176,181,206, 85,223,140, 7,130,181,196, 82,144, 82, 89, 45,155,153, 36, 42,148, 92,241, 54,177,
- 88,119,184, 10, 87, 83,225,201,211, 11,166, 62,225, 99, 33,251,192, 48,238, 16, 19, 73,217,210, 24,199,148, 28,185, 89, 66, 25,
- 49, 37, 99,178,197,230,129,182,201,228, 62,211,218, 74,148, 29, 82,215,164, 73, 43,113,245,144,112,173, 90, 30, 73, 30,215, 84,
- 38, 91,145,164, 33,110,124,165, 74,196, 20,143, 24, 75, 44, 19,222, 23,106,234, 40,102, 66,226,200,153,179,188,252,214, 53,238,
-197, 21, 61, 19,213, 56, 60, 50,199,133,172, 80,213,187, 58, 7,221,132,156,235, 92, 11,208,189, 59, 70,117,172, 50,195,115,109,
-117, 32,149,130,222, 74,109,169, 51, 95,122, 70, 8, 82,102,154,155, 2, 47,220,204, 22, 87, 75,154,211, 32,153, 49, 96, 4,107,
- 27,173,145,155,170,117, 44, 83,177, 98,212,202,102,173,210,234,170,210,238,140,177,196, 28,177, 24,149,203,168, 98,125, 54,199,
-169, 96,198,184, 58,215,125,244,252, 33, 70,111,163, 38,100,204,188,171,179,222, 80,196, 35, 58,225, 39, 4, 75,197,106,255,221,
- 27,220,243,145,108, 17, 26,111, 41, 20, 13, 46,165, 2, 78, 79,156, 98,116,119,228,103,119,175,169,122,216, 48, 54, 41, 48,164,
- 26,188, 17, 29,215,100,171, 72, 83, 3, 77, 1,124, 80, 81, 78, 22,114, 29, 73, 57,233,205,165, 91, 98, 29,152, 52, 34,214,129,
- 4,166,105,162,154, 68, 17,161,217,156,113,249,213, 5, 15, 31, 61,229,178,235,240,161,211,155,145, 49, 4,223,224,155,150,211,
-211,155,148,152, 24,135,131, 6,223,130, 83,227,155, 13, 20,111, 72,174,210, 86, 67, 76, 9,153, 6,204,122,161, 7,180, 82, 84,
-224, 18,156, 6, 26,173, 78, 94, 92,240, 8,133,126,119, 78,108, 26, 93, 13, 52,142, 38,168,188, 71,114,101,181,217,112,118,186,
-225,242, 65, 15, 65,237, 97,166, 22, 66, 73,236, 14,123,198, 52,210, 20,104,188,163, 84,195,229, 56,205, 97, 72,165,148,121,235,
- 53,209, 41,224,172, 86,243,158, 19, 12,173,204, 88,220,162,193,160, 96, 45,161,113,140,212,153, 71,144, 57, 58, 59,229,144, 44,
-219,221, 72,173,240,236, 28,250, 67, 98,189,218,240,229, 87,143,248,241,143,126,202, 97,119, 0, 11, 83, 41, 56, 2, 50,155,238,
- 98,218, 83, 98,196,186,134, 73, 42,139,206, 99,156,229,147,143,127,201,205,151,223,228, 59,223,253, 62,126,225,120,250,248, 9,
-103, 71, 55, 88, 28,117,124,240,221,239,177, 61, 63,240,249,199,127,205,110, 24,160, 86, 46,206,239, 3,142,105,154,136, 83, 84,
-170,159,211,100,112,170, 5, 67, 38, 77, 21, 41,154,189, 16,165, 47, 97,124,214, 17,123, 4, 35,149,156, 51,165,100,130, 51,116,
- 75, 71,183, 88, 98,171, 48,148, 76,154,132,126,232, 25,198,253, 92, 47,115,132,160,159,191,136,193, 53,134, 24, 35, 15, 31, 94,
-240,206,235, 39,164,210,176, 92,182,252,243, 63,252,125,254,183,127,247, 11, 30, 63,122,160, 65, 84, 59, 35,115, 49,220, 56,125,
-153, 49, 30, 40, 49,145,147, 33,215, 9,147,210, 60,141,211,157,252,249,112, 69,154, 84, 3,233,189,215,160,172,241, 58, 61, 74,
- 17,231, 53, 37, 43,243,193,218, 25,117,127, 23, 41,243, 65, 94, 19,216, 21,131,169,158,113,200,108, 26,104,187, 5,209, 36,210,
- 52,225, 77,131, 21,167, 98, 27,139, 98,150,189, 99,121,116, 74,231, 87, 76,211, 78, 95,162,250, 95,210,182, 58,129, 58,136,134,
-143,238,222, 59,231,193,253,103,120, 10,255,253,191,254,183,252,159,127,250, 19,190,117,251, 77, 86, 11,199,163,203,158,183,143,
- 95,226,144, 87,148,105, 75, 73,149,138, 39,197, 68,181, 9, 71, 71,202, 35,190,142, 26,240,155, 34,141,247, 24,103,168, 4, 76,
- 30,105,131,131, 40,202,139,159, 49,162,109, 99, 89, 5,203, 32, 19,214,173,144, 80,177, 11, 37,169,120,231,105,124, 67,204, 90,
-157, 28, 67,131, 11, 13, 38,170,127,189,202,156, 3,106, 43,126, 44,224,143, 40,195,158, 98, 60, 49, 39, 76,151,176,102,129,115,
- 94,229, 86, 35,244,214,178,114, 66, 29, 60,178,180,116, 77,224,149,101, 32, 24,184,222, 25,150,141,231,196, 43,254,244,178, 52,
-176, 14,200,198,178, 43, 80, 83,199,241, 70, 39, 64, 87, 2,231, 91,207,238, 42,209,244, 21,201, 19, 87,151,231, 20,137,140, 41,
-147, 75,225, 98, 55,209,110, 90, 74,130,126,156,216, 44, 60,222, 26,246,177,176,112,118,166,178,252,191,129, 54,205,111,252,125,
-141, 25, 43, 5,231, 29,161, 11,156,180, 13,205,252,207, 57,175, 7,134,231, 27,243,110,105,105,105,105,102,138,221,246,184,227,
-236, 27,166,183, 67, 93,178,156, 47,212, 61,240,232,233,134,243, 59, 95, 34, 86,240, 22,142, 94,186,137,217,156,104,198,106,200,
-122,250, 9, 26, 2, 54,227,115,198, 64,161,148,164, 24,238, 56,114,153, 29, 53,101,144,136,175,149,113,154,152,238, 95,144, 37,
-235,116, 50, 79,108,183, 3, 54, 11,198, 8,146, 50, 18, 26,170,139,228,201, 82,137, 44, 3, 28,166,130, 47, 29, 83, 19,149,254,
-153, 26,172,131,125,156, 48,174,101,127, 56,103, 40,158, 58, 78, 24, 2,185, 47,186,202,113,142, 88, 34, 34,137,130, 99,100, 67,
- 93, 78,216, 82,144,201, 82, 91,131, 59, 36, 36, 27,240,153,152, 33,229, 3, 86, 54, 4,183, 70, 98, 70, 38, 33,198, 17,143,247,
-122,178,192,145,171,254,240, 41,180,223,226,189, 94,246,124, 53,218, 35,157,249,192,169,228, 23, 99, 9,227, 45,118,126, 25, 40,
-253,209,234,203, 84, 12,214,169,140, 69,106, 81,143,121, 53,216, 16, 48, 98,230,186, 89, 81,213,170, 85, 89,140, 41,243, 45,237,
-185,252, 4,135,216,168, 55,110, 9, 90,133,171, 21, 51,235, 87, 67,103,168,197,169, 15,222,168, 62,179, 86,173,209,132, 10, 41,
-231, 57, 21,222, 48,214,164,123,231,168, 52, 60, 49, 6,147,237, 60,154,215, 67,140,100, 48,182,224,131,199, 59,136, 89,247,194,
-214,235, 14,191, 58, 75, 41,162,226,131, 10, 50, 10, 33, 24,156,171, 68,129,234, 29, 34, 66,137, 19, 93,104, 8,115, 53, 39,249,
-249,235,117, 40, 4,239, 72,214,144,171,176, 40,137,146, 10, 38, 24,114,174, 60,188,247, 41,175,190,115,202,122,125,157,169,223,
- 99, 91, 77,153, 22,209,244,237, 52, 8, 71,171, 13, 67,220,242,236,106,135,181,158,148, 53,248,101,202,124, 10,157,121, 1,207,
-158, 62,196,121,199,234,232, 38, 55,207,174, 67,217, 19, 92,203,194,105, 44,118,108, 20, 76, 83,140,208, 45, 20,209, 58, 28,118,
-228, 90, 33,103,220,188,203, 52, 34, 52,221, 2,170,182, 22, 98,140,136,101, 14,152, 25,210, 52,106,110,162, 86, 26, 23,200,219,
- 81,251,226,193, 97,170,161,144,145, 0, 77, 52,196,170,139, 20, 39,149, 60, 36,198,148,113,214,145,139,161,198, 66,105, 10,165,
- 56, 82,137,152,160,105,124, 11, 20, 87,112, 34,148,164, 16,153, 82, 51, 71,221, 2,103, 29,216,136, 51, 21,111, 61,215,175, 95,
-231,226,124,135,100,161, 9,134, 59,247, 30,112,216,238,153,178,240,179, 95,126,196,211, 39, 79, 9, 78,199,215,214,232,104,217,
- 59, 71, 27, 90,114,140,184, 82,104,215,158,161,143, 88,239,184,247,249, 39, 12, 83, 36, 95,236,168, 99,130,101,195,131, 71,119,
-240, 4, 94, 59,126,139,199, 15, 30, 48,197,196,122,185,226,232,104, 73,201, 25,113,134,169, 31,200, 89, 27, 24, 38,170, 62,184,
- 82,200,169, 16,154,150, 97,156, 88,110, 2, 47,191,118,141, 60, 21,190,248,236, 19, 98, 17, 66,235, 40, 73,237,131,213, 24, 82,
-201,212, 98,153,162,176,219,238, 88,175, 50,226, 13, 54,107, 32,211,134, 5, 93,227,145,108,181,246, 34, 26, 42,147,249,214,127,
-117,249,140,225,149,215, 89,118,215,249,226,193, 21, 63,248, 48,209, 54, 58,117, 11,141,199, 54, 6,107, 61,203,229,146, 91, 55,
- 94,231,209,147,251,108, 47, 47,200,185,208, 31, 70, 98, 63,168,113,111,177,152, 81,197, 5,113, 6, 95, 28, 38, 87, 6,147, 48,
- 70, 56, 57, 58,229,228,250, 45,238, 62,184, 79,141,232,106,199,206, 45, 10, 84,171,106,172,135, 34,243, 74, 77,215, 93, 21, 97,
- 59,238,216, 44,215,116,190,163, 12, 35, 80, 9,206, 17, 69, 25,237, 77,187,164, 89, 30,227, 67, 71,191,219, 18,199, 43, 68, 10,
-214, 84,226,172,138,246,115,250,217,184,231, 13, 28,133,178,220,185,127,201,221,199,123,254,226,163,207, 56, 93, 29,241,210,245,
- 19,124, 87, 57, 59,109,120,112, 95,215, 82,206,103,186, 84,233, 83,162,184, 68, 87, 85,138, 66, 87,169,163, 85,247,247, 60, 5,
-116, 33, 96,173, 97, 74, 74,187,116,193,106,144, 49, 87,114,110,176, 38,224, 27,163,177,225,209,144,197,226,140, 71,170, 96, 74,
-135, 53,133,148,244,230, 53,182, 3,221,216,232,203,165, 1, 41,158,174, 49, 24, 41,140, 69, 48,181,199, 20, 8,245,152,214,130,
- 35, 48,150, 72,227, 27, 76, 22,170, 19,228,144,240,213,209,189, 26,120,158, 13,139, 73,159,209,155, 89, 19,125,153, 43,171,133,
- 62, 63, 14,192, 50, 88, 94,153,171, 91,199, 64, 58,235,104, 58,117,203,212,190,129, 39,231, 28,178,126, 29,253,178,129, 77,195,
-193,194, 37, 48,137,225, 73, 54,164, 92,113,187,204,170,115,236,130,230,161,198,109,225,164,181,180,173, 30,192,135,177,176, 90,
-232,215, 39, 2, 83,127, 96,200, 25,201,153, 53,134, 96,237,223,200, 0,152,223, 32,220, 53,243,175,181, 51,202, 54,124, 35,212,
-182,252, 70,129,125, 13,140,193,241, 76, 12,198, 27, 58,215,240,222,235,215,105,218, 64, 69,211,255, 94,148, 87, 95, 42,244, 69,
-101, 60, 56,200,165,146,146, 48,236, 38, 92,215, 80,196,144,106, 38, 93,246,184,105,160,171,149, 60, 38,232,175,104,154,158,243,
- 93,161, 68, 37,134,182,182, 97, 26, 51,181,115,200, 48, 80,171, 78, 17, 91,239,152,106, 34, 30, 70,164,105,113,165,193,155,137,
- 90, 45,212,194, 97,159, 48,121,160,109, 59,198, 24,201,181,210, 82,161,140,250,125,231,150,136, 76,152,216,235,202,122,206,165,
-229, 49,106, 79,205,130, 15, 25, 87, 42,213, 46, 56, 57, 57,162,203, 32,105, 55,187, 85, 10,190,166, 57, 94,255,220,186,230,173,
-122,207,171,193,104,174,234,185,128,117,246,170,204,100,117, 83, 49,166,144,147,198,217, 77,208, 20,185,153, 15, 6, 98, 2,198,
- 54, 32,170, 85,172,243, 92,220, 24,163,251,231, 58,143, 69,130,222,222, 21,253, 10,217,152,231,155, 12, 4,193,185, 70, 81,152,
-186,216,192,136,130,237,149, 2,103, 16,171,129,183,231,128,193, 96,225, 5, 60, 78,147,116, 84, 91,104, 69,147,244, 82,235,140,
- 66,172,170,145, 21, 53, 57, 37,141,187,206, 7,131,185, 59,110,102,170, 15, 85, 51, 3,206, 18,208, 91, 98,181, 66, 42, 90,205,
-114,193, 97,242,156,166, 55,250,117, 44, 82,177,193, 82, 74,213,177,158, 5,231, 60,177, 36,133, 69, 24, 71,246,218, 20, 48,174,
-193, 27,139,228,129,187,119,191,224,157,183,190,205,194,180,180,139, 64, 88, 54, 28, 46, 46,233, 92, 75,235, 15,184, 50,113,245,
-236, 25,187,253, 78,111, 43,179,228,198, 91, 59, 91,162,244,192,145,166,137,126, 72,172,142,111,210,110,142,136,227,172,128, 93,
-122, 76,174,172,138,144,108, 34,224, 89,173,142,120,251,229,107,220,249,228,231, 84,227,181,198, 49,244,186, 27,178, 65,247,243,
-117,161,255, 95, 62,208, 45, 55,234, 7,240, 30, 95, 97,191,155,193, 38,206,114, 57,142, 36, 17, 29,107,137,142,200, 93,123,204,
-123,223,126, 19, 83, 96, 63,246, 76,135, 61,249,160,183,130,219, 31,188,206,209,209,138, 31,253,249, 79,120,252,240, 41, 47,191,
-124,202,230,116,205,254,114,164,228, 68,140,137,126,223, 51,149,202,148, 11,113,154, 88,117,158,174,105,233,211, 56, 27, 4,161,
- 91, 44,248,214,219,111,242,127, 61,248, 41, 69,224,201,179,145, 39,207,118,228, 60,241,249, 39, 95, 17,251,145,214,251,185,179,
-170,211, 5,107, 44, 97,177,164, 6, 71,156, 34, 1, 59, 31,236, 12, 38, 23, 82,170,220,126,253, 45,142,215, 39,148, 42, 60,252,
-252, 14,183,223,122, 27,113,137,187,159,254, 7, 62,254,197, 30,231,130,174,113, 74, 38,204,107,153, 49, 38,189,245, 27,207,192,
-220, 47, 77,145,229,170, 99,181, 92, 99, 37,115,235,221,219,188,113,251, 13,188, 52,156, 30, 45,248,203,159,252,148, 52,150,121,
- 90,161, 15,172, 96,245,179,200,104,179,224,176,239,213,101,237,252,204, 78,247,148, 25, 36, 81,179, 98, 50,155,198,115,124,124,
-157, 87,111,191,193,189,175, 62, 97,215, 63,225,253,219,239,242,248,217,129,253,249, 21,175,189,124,202,103,119,238,226, 60, 52,
-190,161, 90,195, 56,236,248,232,227,159, 65,206, 88, 35, 28,134,194,217,201,138,127,242,207,126,192,143,126,252, 43,238, 62, 73,
-172, 86, 11,188, 85,157,239, 56,238, 53,131,177,120,137, 55,222,120,149, 91,175,191, 69, 4, 46, 46, 47,184,232, 47,180,219,155,
-161,144,180,122,105, 85,249,154,156, 18, 41, 77, 97,158,200, 84,198, 24,113,236, 89, 46,214, 44,150, 29, 37, 38,181, 53,186, 66,
-215,116, 44, 55, 39,148,106,216, 30,158,146,251, 3,214,184,249,198, 38, 24,201,244, 7, 8,205,188, 38, 20,176, 2,222,169,120,
-198, 89, 75,168,138,183,221,110, 15,140, 83,230,141,151,143,121,247,237,119,120,242,224, 74,177,190, 85,136,146, 0,135,199,131,
-215,167,157,137,158, 96, 60,153, 1,146,163,161, 50,153, 66, 44,133, 22,253, 92,240, 6, 95, 51, 83,103, 95,212,241,166,169,195,
-212,130, 4, 37,164, 52,203, 64, 78, 66,176,122,177,169,174, 98, 90,161,164,202,193, 68,157,128,229,145,146, 38,106,211,210,132,
-137,246,108,205,164,215,106, 82,217,171,216, 41,247,212,102, 69,173, 6,147, 38,250,125,197,187, 6, 95,132, 80,103,152,143,213,
-233,143,117,240, 12,195,121, 69,235, 80,235,128,199,208, 72,197,203,215, 53,178, 94,244, 89,233, 23, 26,154,219, 75, 97, 28,122,
-164, 86, 58,223,177,234, 22,156,206,189,115,211,130,109, 26, 78, 28,108,129,167,171, 5, 55, 29, 4,171, 35,243, 97,109, 73,214,
-208, 91,216, 71,168,201,208,181,134, 84, 97,234, 43,233, 50,146,179, 6, 54, 75, 20,206, 47, 7, 78, 79, 52, 92,157, 83, 97,181,
-112,179,182, 23,130,232, 69,239,155, 47,249,191,155,251, 46, 72, 42,148,177,210, 93, 91,176,249, 70, 9,254,229,111, 50, 97, 13,
- 28,207,238,121,243, 66,233,234,200,199,129,229,115,180, 45,129, 71, 39, 11,130,213, 3,227,174,192,227,175,174,216,125,250, 43,
- 76, 81,135, 70, 63,141, 88,163,161,199,233,208, 99, 83, 70, 74, 98,155, 12,206,137, 74,180,178,165,173,153,146,174, 52,171,225,
- 45,165, 55, 72,244,212, 38, 33,206, 81,203, 4,182,165,250,150, 82, 38,156, 24,176, 29,198, 10, 57,143, 32, 29, 86, 77, 13,164,
- 49, 35, 82,232,130, 35,143, 78, 65, 97,206,240,171, 59,231,236,255,135,255,157, 75, 2,110, 0,169,215,240, 69, 34,118, 38,138,
- 9, 6, 51, 91, 85,202, 60, 84, 41, 69,199,227,102,222,161,214, 44, 90,109,211,121,247,204, 69,127,142,125, 4,193, 98,130,193,
-198, 74,169,250,250,244, 86,193, 51, 25,189,157, 75, 21,172,168,158, 53, 75,153,107,104,110,254,226,103, 61, 73,212,217,102, 46,
-115,186,156,172,234, 86, 99, 84, 31, 89,209, 96,156, 17,144,130,181,102, 78,221,234,173, 63, 43,200, 29, 35,133,130,193,123, 13,
- 0,138,209,125,186,173,122,108, 72,243,175,233,152,244,121,216,175,104,213,205,155,121,223,170, 20, 44,221, 65,122, 98, 17, 26,
- 23,240, 77, 37, 71, 29, 9, 25,163,182,164,234,212, 46, 23, 83,196, 22, 59,123,213,117,117, 80,157,193,207, 35, 95,243, 60,220,
-234,117,135,234, 76,203,235,175,191,202,231,119,238,113, 56,188,198,233,217, 53, 98,191,195, 75,199,162, 91, 17,115,194,118, 13,
-139,124,197,189,123, 59,114, 18,156,215,138, 95,209, 20,131, 30,168,230,219,176,118,246, 61,155,213,134, 6,139, 52,158,118,213,
- 96,170, 2, 72,130, 53, 72,234, 89, 57, 79,160, 98,107, 34, 22,157, 82,136, 8,185, 10, 37,103,109, 45,148,204, 20,123,253, 67,
-196,204,212, 15,180, 93, 32,103,149,217, 84,235,112,214,178,234, 54,156,157,157,112,137, 78,110, 48,130, 53, 30, 87, 11, 79,174,
-182,172,221, 17, 77,187,102,181, 88,209,189,220, 98,172,165,219, 24,228, 16,249,193,135,191,139, 9,158,235, 71, 43,214, 55,142,
-217, 93,142, 24, 34,113,140,244,211,200,238, 48,114,249,244, 41,219,195,158,243,135,119,169, 89,173,129,214, 88,240,142,183,190,
-245, 14, 77,215,145,178,165, 31, 70,126,253,217, 35,174,246, 59, 14,253,150, 24, 11,214, 55,179, 55,125, 14,188, 89, 93, 2,182,
-141,195, 91, 24,147, 32,139,142, 41,103, 86,190,225,218,245,235,124,231,251, 31,178,123,114,197,227, 7,119,213, 82, 88, 39,202,
- 84,248,157, 63,248,125,222,126,251,187,124,244,211, 31,243,224,203,207,192,168, 59,185, 11,150,125,223,147, 69,205,102,146, 19,
- 18, 19,135,254,192,230,104,201,135,191,243,219,156,157,157,129, 20, 90, 23, 48,162, 45,137, 15,190,247,219,152,245,154,143,254,
-242, 39,244,135, 81, 9,123,162, 21, 52, 99,244,175,141,115,138, 44, 14, 26,162, 19, 10, 62, 4, 4,253,217,189,113,114,202,107,
-175,190,194, 75, 55, 95, 99,185,217,176, 12, 1, 91,180,239,223,191, 54,224,186, 5,159,127,245,132,215,175,223,102,213, 46, 41,
-185,178, 29,175,152,198, 68, 49,133,166, 9,180,182, 99,113,180, 65, 56,240,218,203, 55,248, 23,255,213,127,129,111,225,243,255,
-241,167,172,151, 71,228, 26,233,150, 75,126,235,195,239,227,214, 11, 90,183,100,233, 2, 77,163,134,193, 55,223,124,143,171,243,
- 31, 34, 57,227,108, 75,178,133,198, 7, 13,223, 58,161, 21, 75, 65, 31,236,198, 88,188, 81, 92,242,144, 10,193,102, 92, 23, 72,
- 26, 68, 96,181,184,193, 98,121,194, 97,188,162, 76, 7, 82, 63,234,234, 75,228,107, 81,209,252,115,249,124, 77, 40,165,146,141,
- 33,203,136, 23,139,119, 13, 83, 5, 59, 39,250, 15,195,200, 87,119,182,124,247,219,149,211,117,199,253,167,207, 52, 48, 73,131,
-177,122, 8, 77,136, 6,101,171, 80,219, 57, 15,147, 60,253,116,208, 80,157,109, 40,157,163,179, 6, 51,194,224, 5, 91, 33, 89,
- 75,231, 61,251,113, 84,126, 67, 9, 44,187,134,148, 34,141, 3, 92,102, 18, 15,165,161,198, 3, 54,235,100, 20, 83, 9, 93,192,
-174, 13,101,128, 92, 61, 38, 22, 93, 59,186,138, 23,205, 42,237, 99,131,235, 2, 14,135,152, 37,101, 42,212, 32, 56,239,120,182,
-189,226,227,207, 31, 19,154, 21,207, 46, 46,113,109,195,242,120, 67,172,133,254,106, 75, 91, 55,132, 46, 48,246, 19,173, 49, 60,
- 47,188, 73,213,155,111,154,199,231, 41, 38, 74,138,100,209,166,139,107,190,238,129, 95, 22, 56, 65, 43,212, 30, 8, 2, 43,255,
-117,186,126,221, 26,110,204, 87,171,243,165,118,194,158,247,193,159,181,134, 95,220,235,104,140,182, 25,194,178,225, 73,183,224,
- 66, 12,142,138, 75,112,210, 64,231, 97, 42, 48, 30, 10,155,149, 37, 56,203, 56, 9, 18, 11,155, 77, 96,182,113,107,139,228, 27,
-144,155, 20, 35,212, 76,245,133,229,194,254,157,140, 88,243,183,212,217,252, 55,114, 2, 11,224, 86,203,243, 99,155, 94,100,174,
-173,121,242,105, 75, 26, 35, 78, 2, 83,222, 51,153, 72, 77,144,226,132,175, 75,192,176,236,132,152,123,100,128,214, 44,169,229,
- 64, 53, 45, 67, 26, 41, 46,225,109, 71,179,246,148, 4, 83, 26, 20, 57, 92, 11,102,172,148, 98, 17, 95, 49,249, 74,243, 3, 85,
-167, 47,209, 25,124, 54,106,237,100, 32,138,182,237, 13, 66, 83, 13, 95, 92, 28,184,243, 87,119,104, 76,207, 27,175,157,233, 84,
-171,214, 58,223,195,231, 0, 97,169, 51, 72, 70,193, 17,182,206,163,112, 91,103,151,178, 82,230, 44,134, 84,100,102,191, 91, 36,
-101,213, 84,204,169,107,230, 36,175, 65, 73,116, 20, 75,205, 19,198,122, 13, 34,205,165, 74, 91, 44,213,107,229,205,160,190,114,
- 85,186,206, 19, 0,163, 72, 85,102, 76,136,173, 22,201,133, 16,180, 79, 91,107,197, 27, 79,117,149, 34, 21, 17,139, 55,142, 98,
-202, 92,230,215, 91,115, 49,250,178,107,141,165, 24,139, 17,193, 20, 77,219,106,152,195,227,157, 82,219,244, 97, 57, 75,102,188,
-165, 68, 8,157,213,127, 87, 81, 55,124, 45,234,127,182,179,111,222, 27, 75,156,247,207, 82,138,142,231,106,213,180,172,179,148,
- 25,225,105,157, 42,105,253,156,176,172,200, 44,159,201,216,224,121,235,214, 25,247, 30,254,138,163,213,111,227,221,130,188,159,
-152,134, 75,134, 60,210, 46, 12,173, 77, 92, 92, 94,206,252,226,231, 99,100, 93, 31, 24,163, 10, 90,106,165, 22,131, 15, 13, 16,
- 8,141, 69, 14,208,228,249, 27,194, 10,165,241, 56,177,212, 98,249,173,111,127,151,171,243, 59, 76, 99,194, 89, 75, 44, 66, 46,
- 69, 43,140,190, 97,181, 58, 34,229,145, 20, 39,140,169,164,212,147,147,197,206, 19,155, 54,104,132,230,206,221,207,121,122,222,
-210,120,199,245,211, 99,182,251,158,102,113,198,247,254,254,239,146, 77,100,187,223,209, 95, 93,240,120,215,107, 47,159, 17, 41,
-130, 21, 33,180, 29,103,215,110, 16, 39,224,201,136, 12, 3,110,181,162, 9, 29,116,134, 27,199, 27,222,187,245, 38,171,227,142,
-191,254,171,159,113,247,206, 93,174,250, 61,211, 52,114,118,237, 6,239,127,251, 45, 62,253,228, 62, 34,153,195, 40,220,121,240,
-144, 88, 70, 36, 39, 22,139, 35, 36,171,139,222, 86, 33, 75, 81,200,137, 1,211,122,165,250,145, 89,122, 85,254, 38,147,184,254,
-202, 43, 60,184,251,128,187,159,126,194, 98,179,226,123,223,253,144,227,179, 51,198,237,196,163,123,119,184,127,255,115,190,253,
-238,251,200,238,138,187,207,158, 32,113,164, 79,115, 90,124,230,140, 99, 42, 82, 34,103, 39, 27, 62,252,189,223,225,230, 75, 55,
- 48,165,146,104,180,206, 40,218, 79,150,100,120,231,214,155,156, 28,159,240,232,225, 51,126,245,227, 31, 51,164, 17,177, 42, 27,
-122,158, 34, 52,117,102, 74, 80,231,240,165,186,203, 91,187,224,173,183,222,227,253, 15, 62, 32,203, 72, 38,211,199,204,141, 55,
-222,226,179,175, 62,229,114,187,229,229,235,175,176, 27,133,111, 95,155,248,224,253, 55,249,171,191,254,132,195, 94, 39, 13,139,
-197,138,206, 7,154,174,197,225, 9, 77,199,249, 46,243,236,201,192, 7,239,189,199, 34,252, 25,125,127, 78, 51, 59,231, 99,108,
-121,213,111,168, 33, 83,114,196, 73, 67,168,153,215,222,122, 23,131,229, 23, 31,253,152, 24, 39,156, 88,205, 85, 88,125,104,196,
- 82,192, 20,170, 24,154,224,230,166,129,138,149,118,211,158,224, 58, 68, 60, 77,227,233, 66,199, 48, 30, 24,251, 11,242,164,104,
-221, 44,149, 96, 50,182, 86,245, 68, 56,143,179, 22, 59,135,103, 73,117,246, 76, 23,178,171, 26, 74,117, 6, 68, 15,159,141,107,
-184,255,228, 25,159,223,185,199,217,201, 17,143,118,129, 58, 65,176, 69,167, 51,226, 73, 18,117,133,103, 42, 62, 42, 3, 62, 51,
-225,237, 66,205,107,141,135,160,159, 51,174, 98,109,160,193,145,108,166, 24, 71,231, 90,162, 76, 24,201, 76, 51, 81,178,105, 44,
-185, 36,178,129,154,213, 58, 41, 73,159, 97, 54, 88,166, 52, 96, 75,192,165, 22,150, 13,102, 42,248, 88, 25,131,208,181,150, 69,
- 13,140, 43,149,185,148, 54,225, 59, 71,119, 48,179,231,194,176,104, 90,226,209,154,193,122,226,206, 19,142,143,216,173, 61,117,
- 15,206, 44, 25,125,199,101,132, 56, 56,182,219, 75,134, 81, 45,120,151,253, 64,205, 61,167,103, 27,178,129,254,226, 10, 72, 12,
-162,158,137,165,255, 6, 7, 93,163, 33, 0, 92, 61,127,185,126,163, 39,158, 51,152,249,159, 31, 43,172,191, 33, 90,247,117,102,
- 87,152, 66, 54,137,110,179,224,157,163,192, 2,157, 40,132,206,113,242,141, 94,125,119,228,191, 86,189,206, 67,196,111, 0, 0,
- 32, 0, 73, 68, 65, 84, 6, 75,177,134,105,126, 33,231,153, 19,182,156, 47,224,187, 65,184,188,184,132, 44,152,226, 24,135,204,
-148, 42, 46,232,115, 93,210, 44,212,124,158,238,151,249,157,111,254,227, 47,250,223,108,185, 27,169,196,148, 84,116, 70, 65,156,
- 37,143, 66, 91, 58,146,107, 72,131,157, 51, 36, 21, 87, 91,162,201, 76, 68,188,175, 36, 1,159, 28,113, 40, 44,143, 13,190, 57,
-101,251,244, 9,141,201, 52,174,161,207,149,106, 28,248, 60,191, 31,149, 67, 33, 8, 37, 30,244, 0,236, 26, 44, 22,153, 43,167,
- 18, 15,122, 17, 53,149,215, 95, 95,115,237,157,127,192,176, 23,138,236, 40,163, 50, 24,180, 17, 96, 44,150,175, 57,233, 50,203,
-142, 53, 32, 46,243, 11, 83,230,112,141,222,200,125,208, 31,168, 42,147,254, 51, 70, 89,241,122, 65,183, 84,209, 68,108,148,129,
- 90,131,134,227,140,204,120, 26,189,237,171, 81, 77,230, 17, 47,207,211,112, 56, 87, 53, 20, 87,133, 58,239,252, 93, 80,137,132,
-195, 81,171,238,210,189,117,234, 98,151, 66, 99, 33, 74,129, 10, 78,192,250, 74, 78,149,214,233,169, 88,114, 65, 92,160,206,227,
-124, 77,249,139,214,223,108,157,129, 41, 30,178, 50,228,109,167,228,184,106, 10,166,232, 3,180,186, 10,190, 34,105,198, 23,250,
- 74,202,138,200,245,182,146, 77, 69,170, 39, 4, 71,107, 69, 43,117,212,121,207,175,161,195, 62, 37,108, 12, 44,218,160,201, 99,
-128,154,145,169,208, 46,142,121,121,189,229,215, 63,251, 19, 76, 56,194,134,134, 16, 26,186,176,160, 91,172,233,150,158,107,103,
- 71,132,174,101, 28, 19,125, 63,204,250,219,249, 86,231,244,198, 98,208, 61,230,106,115,196,171,111,188,205,195,123,159, 51,140,
-145,165,135, 85,112,244,117, 66,106,228,157, 91,183,184,253,234,107,252,241, 47,127,196,229,118, 71,219, 46, 84,191, 91,170,126,
- 54, 70,200,101,164, 36, 61, 52,104, 54, 98, 22, 60,216, 25,182, 35,145,106, 97,123,245,144,221, 54,224,188,229,230,181,150,221,
-213, 21,239,222,126,151, 38, 44, 41, 87, 61,139,234,105,143,174,115,116,221,146,134,145,106, 35,229, 32, 80, 71,206,175,118, 60,
-186,251, 21,190,105,200,189,130, 81,138,113, 84,211, 18,235,200, 38, 44,185,118,124,198,230,248, 24,186, 83,222,252,214,117,188,
-111, 24,251, 29,171,227, 13,203,197, 41,199,103,194, 7,223,218,240,206,237, 3,191,248,245, 47,185,184, 18,108,163,211, 33,140,
-157,201,132,202,222,214, 3,170,101, 26,138,238,220,112,164, 56,177, 94, 46, 56, 94, 93,103,119, 56,240,240,206,167,124,239,187,
-255,136, 55,223,123,155,166,209,207,192, 28, 85,238, 62,254,130,195,213, 72,124,169,114,242,210, 13,238, 95,221, 39, 71,157, 38,
-121, 58, 76,233,137, 57, 33, 89,153, 9,175,190,113,155,147,213, 25,121, 44,212,214,226,115, 85,141,172,245, 88, 35, 76, 73,153,
-207,157,107,121,233,236,136, 79, 22, 75, 44,208,182, 65,167, 63, 89,213,157,243, 23,159, 16, 2,222, 5,140,169,132,160, 80,166,
-237,110, 75,174, 3,217,232, 33, 49, 69,189,149,157, 94,191,206,195,123,143,121,227,198,107, 28,164, 97,219,239,248,189,239,189,
- 77,145,235, 88, 43, 92,108,159,114,255,254,231, 84,175,173, 14,103, 33,180,129,221,110,224,231,191,252,132,127,240,143,190,199,
- 91,111,223,228,231, 63,123,132, 44,175,115,180,110,185,118, 20,177,193,130,243,116, 38,208,167,200,141, 83,203,155,111,222,230,
-139,179, 83, 86,235, 51,254,250,103, 63,100,183,189,192,214,140, 45,173,190, 0,141,209,238,185, 8, 5,253,121, 47, 85,176, 77,
-171,187,235, 97,160,109,215,180, 97,193, 48,237,217, 79,189, 30,124,210,132, 9,110,158, 74,105, 45,179,193,145,171, 46,198,152,
- 10,213,234,158,182, 72,197, 25,247,226,223, 93,171, 1,215, 16, 40, 56, 87, 25, 73,252,240, 39,159,242,237,183,110,177,244,107,
-182,195,158,208, 4, 16, 33,214,136, 95,120,106,178,212,152,193, 38,124,104,201,217,208, 89,129,174, 85,227, 99, 78, 76, 57,225,
-218, 14,151,133, 98, 50, 62, 55,136,205,180, 11, 71, 25,148,189,225,124, 67,200,115,117,116,244,170,118, 54,134, 18, 45,166, 22,
-106,227, 48, 46,195,193,235,215,223, 27,210, 48, 81,131,199, 53,134,206, 27,108, 50,196, 18, 48,238, 64, 49, 81,221, 25, 7,161,
- 13, 75,202,243, 29,250,210,177, 92,183,140, 9, 22, 93,203,245, 27, 45,226, 96,111, 45,203,182,229,205, 83, 61,248,127,190,241,
- 60,245,150,184,246, 92,141,117,174,131, 53,236, 14, 14,151, 18,233,252, 64, 28, 35,197, 20, 22,222,243,248,217, 64,117,151,136,
-241,108,135, 9,183, 94, 98,214, 29,206, 85,236, 88,160, 13, 74,225,172,186,246,120, 33, 75,145,175,189,228, 0,251, 4, 37,141,
- 72, 1, 41,150, 96,194, 11, 43, 90, 6, 22,223, 0,203, 57,244,133,253,252,127,126,108,121,161,242,254, 90,177,102, 94,176,232,
-218,206, 34,206, 33,162,111,251,118,181,164,204, 47,244, 61,186, 67,223,204, 19, 5, 3, 92, 13,149,198,131,107,117,205,155,250,
- 74, 87,133,118,165, 97,174, 90, 32, 77,137,197,194,235, 10,192,192,216, 15, 80, 53,204,150,146,134,122,107, 83, 57, 92,237, 49,
- 36,196, 70,188,141, 28,246, 25,187, 57, 33, 48, 80,198,145,140, 33,197,158, 28,139, 6,177, 99, 70,124, 37,212,105,198,172, 43,
-122, 56, 90,139,165,208, 58, 67, 52, 80, 37,227,154,134, 84, 58, 76,142,148,146, 52,192,233,188, 78,141,107,165,150, 21,214, 78,
-124,240,238,187, 28,127,255,191,228,203,143,239,243,244,203, 31, 98,242,132,151,250,252, 37,172, 1, 26, 59,143,188,235,236, 35,
- 47,250,211, 65,145,138,113,141, 42, 35,141, 90,154, 76,173, 26,146, 50, 22,239, 20, 7,235, 85, 72,174,187,229, 96,217,156, 94,
-199, 15, 91,158, 92, 13, 84,167, 99,120,176,138,127,116, 16,139,158,132,236,204,187, 5,139,179, 96,108, 70,202,115,233,138, 2,
- 58,100, 14,213,213, 90,245,219,193, 5,172, 55,212,156, 72, 89,107,110,166,234,184, 29, 28,146, 52,161,158, 4,178, 88,173, 43,
- 80,168,104, 2, 48, 87, 69,212,106, 93,194, 32, 89,171, 35,198, 25,154,249,207,145,178, 96,189,135, 90, 41, 89,244,247, 84, 11,
-181,212,185, 34,103,213,189, 92, 53,124,209,200, 12,199, 49,150,132, 30, 8, 26,103,168, 98, 73, 78,141,108, 4, 13, 63, 76, 53,
- 19,138, 66,103,138, 87,146,217,144,133,213,233,154,183, 23, 13,219,126, 96, 40, 61,227,225,156,253, 46,243,224, 1,108, 95, 62,
-227,165, 91, 47,177, 62, 63,112,247,201,142, 49, 85, 92, 26,245,179,152,119, 82,207,157, 74,205,106,197,230,228, 8, 25, 71,188,
- 51,220,190,245, 38,199, 97,131,233, 84,184,179, 92,108, 56, 61, 89,114,181,187,228,203, 59,247, 20,192,243,252,246,111, 52,197,
-236,168,164,148, 94, 16,150,157,209,151,125,174,149, 82,193, 24,253, 90,138,168, 5,173, 9, 30,219, 58, 62,254,236, 17,235,245,
- 13, 94,191,117,139, 47, 31,124,197,210,117, 20,233, 33, 26,194,114, 65,168, 13, 11,211, 48,173, 71,118,135,204,122,177, 34,183,
- 45, 93,215, 82,143,133, 56, 70, 44, 69, 31,116,178,160,138,193, 47, 4,161,231,217,179, 61,105, 59,226, 27,203,208, 79, 8,133,
- 95,255,170,195,135,150,213,241, 41,255,244, 15,255, 33,201, 28,248,241, 95,126,164,243, 66,107,136,227, 56,147, 16,245,176, 88,
-234,188, 18, 17, 33,215,162,120, 78, 12,135,105,228,246, 27, 55,185,118,122,194,131, 59,159,114,116,227, 37,174,159,156,210, 15,
-122,208,160, 86,190,248,245, 39,236,134, 29,155,227, 99,190,188,147, 41, 9, 53,156,121,143,171,129, 96,245,231,197, 89, 75,104,
- 22,124,241,249, 23,124,242,233,103,188,246,210,171,252,224,195,223,194,217, 66, 31, 29,182, 17,166, 84, 72, 53,233, 33, 35,234,
- 62, 63, 52, 1, 59, 25, 36, 38,172,109, 41,161,170, 88,200,104,184, 12,171, 2, 18,231,156,234, 12,178, 38,122, 75, 18, 76,227,
- 24,134,145, 50, 70,186, 16,120,249,250,171,252,245,189, 31,113, 49, 92,112,188, 58,229,206, 87,143,248,238,135, 7, 94,125,229,
-152,161,102, 22, 71, 29, 79, 30,222,215,145,102,176,232, 19, 0,164,142, 60,184, 56,231,149,151,110,240,225,123,239,113,231, 78,
-207,247,126,251, 59,172,164,240,159,255,195,247,121, 50, 86,254,244, 79,126,201, 97,191,195,251,145, 15,222,122,159,247,223, 56,
-227,181,151,175,225, 28, 92,110,159,240,241, 95,253, 8,103, 61, 98, 5,227,220,220, 38, 49,200,156, 57, 41, 49,225,189,161,228,
-168,181,211, 92, 41,174, 48, 12, 17, 91, 71,114,234,145, 25,126, 83,167,252,194, 32,232, 28,140,162,193, 61, 55,163,155,181,178,
-234, 17,169, 90, 75,156,167, 25,136,144, 25, 24, 71, 71,215,181, 52, 62,112,185,235,249,232,147,251, 92, 59,189,137,245,122,203,
-244,238,136,106, 7, 98,158,176,198,227, 91, 67,118, 42,217,176, 38, 80,172,193,228, 9, 75, 59,115, 61, 44,117, 72, 84,239,136,
- 21, 54,193,208, 15, 5,107, 35,206,174, 64, 70, 24, 43, 9,160,232,228,175,241, 66, 9, 80, 14, 3,193, 4, 74,244,184, 54,210,
-174,244, 79, 54, 38, 33, 88,237, 57,247,131,208, 82,241,141,103,178, 7,150, 29,152,148, 40,209, 16,173,197,120, 21,237,228, 88,
-168,255, 15, 95,111,246, 99, 87,150,157,249,253,214,218,123,159,115,238, 16, 17,140, 32, 51, 73, 38,153, 67,101,149,170, 84,115,
-201, 37, 27, 18, 90,106,117, 11, 6, 26,240,147, 95,140,126,233,127,202,143, 54, 96,192,232, 23,191, 88,134,219, 13,195,237,182,
- 44, 72,109, 89,182,212,173, 42,149,106, 72,101,229,156, 36,147, 12, 50, 24,211, 29,206,176, 39, 63,172, 19,204,148, 0,247, 27,
- 25, 36,131,113,239, 61,231,236, 53,124,223,239, 19, 79, 74,149,184,139, 54,149, 72,118,217, 19,133,131,240, 37, 59,189,164, 74,
-235,148,117, 23,104, 3,236,199, 5,254,104, 9,235, 0, 19,188,232,119,164,139, 51,210, 84,209,133,178,186,117,135,253,241, 17,
-155,125, 70, 38,199, 11, 9,124, 17,177, 0,147,151,123,198,126, 65,219, 52,108,198,129,113,191, 35, 31,118,100,148, 93,204,172,
-214, 13,139,131, 6, 28,196,109, 34,237,182,140,113,196, 59,135,247,198,213,152, 99,184,204, 55,207,151,137,108, 58, 11,229,248,
-143,128,100,229,171, 81,177, 53, 91, 19, 42,133, 59,235, 37,203,175,140,214,215,221,151, 42,252, 2, 28,172,228,213,247,206,192,
-212,152, 23,252,102,192,220, 23,184, 76,208,102,155, 8, 76, 3, 92,156,245,236,243, 64, 85,111,236,253, 98, 52, 71,173,133,236,
-161, 40, 70, 10,213,204,216,159,163,123,179,228,225, 64, 39,107, 36, 93,137, 56,239, 72, 98,241,227, 58,245, 12,213, 32, 69,181,
- 38,139, 33,151, 6, 77, 38, 12, 78,195, 22,157,181, 87, 74,162,117, 29,149,137, 84,123,106,113,160,153,224, 60,239,190,243, 26,
-175,127,103,197,211,243,219,180, 23, 29,154, 34, 94,171,237,147,115, 49,111, 40,115, 74,154, 58,179,158,152, 50,205,112,176, 55,
-239,228,152,204,102,150,170,237,158,188, 51,225,145, 24,134,157, 60,171,218,107, 14,132,118, 65,147,246, 38,164,210, 74, 46,206,
- 64, 54, 20, 26, 47,184, 57,163,221, 7, 43, 18, 10,118,104,203, 92,145,219,120,220,161,126, 30,101, 87,219,185, 57,175,148, 20,
-137,179,239,253,102, 2,224,157,204,234,122,235,254, 27, 60,144, 72, 84,200, 74,118, 22,187, 26,102,193, 84,117, 66, 35,206, 86,
- 2, 10, 99,177,162, 69,156,163,162,120,141,120, 49,141, 65,240,144,139,237,101, 27,231, 77,241, 62, 36, 92,107,235, 8, 37, 80,
- 92,124,101,123,115,170, 72, 19, 40, 14,210, 56,153,136, 37, 64,171, 74,163,222, 84,186,185,216,191, 47, 66,174,246,128,238,113,
- 44,219,142,245,194,177, 42, 14,110,217, 5,185,221, 90, 20,231, 56, 86,190,120,113,197,182, 31,168,117,196,169, 21, 61,175,162,
-239, 68, 56, 60,186,197,235,175,221, 99,181, 92, 51,244,137,126, 63, 18,215, 19, 79, 47, 30,113,231,248,136,215, 31,188,205, 98,
-153,121,255,151,127,197,175,127,245, 75, 62,127,250, 20,117, 86,188, 8,197,184, 2,213,168,117, 82,138, 37, 67,137,152,126, 64,
- 5, 63, 95, 55, 34, 5, 55, 19,161,106,206,164,172,248,228,240,135, 7,252,222,239,252, 1,107,223,178,115, 3,186, 86,114,239,
- 17,215, 82,138,210, 28, 89, 92,237,254,202,118,164, 37, 77,228, 4,131, 14, 38, 62,164,210,116, 13, 33, 4, 66, 14,180, 30, 14,
- 78, 60, 7,238,144,117,179, 70, 95,119, 52,173, 99,220, 23,174,166, 61,251,235,115, 54,219,137,183,111, 47,217, 95, 63,225,229,
-211,103,168,122,170,247, 76,211,254,213, 77,155,171,145, 0,107, 45,132,102,129,111,221,172, 19, 49,213,178,122,207,203,235,103,
- 60,124,240,144, 91,135,183,249,197,207,255, 3,206, 21, 3, 66,184,150,203, 93,207,179, 23, 79, 56, 58,185,195,213,126,195,211,
-103,143,161, 84,170, 4, 90,117,164, 34,236,243, 96,107,153, 10,164,194, 56, 68,166, 56,241,233,240, 41,111, 60,124,157,251,247,
-222, 32,151,194,180, 27, 73, 34,116, 97, 69,210,129,208, 65, 63, 86,106,205,228,152,192, 41,146, 38, 76,215, 87, 77, 52, 90,157,
-125, 30,179,232,202, 8,117,194, 40, 66,174, 19,139,157,103,168,106, 36,186,154, 89, 30, 29,114,116,120,204,233,139, 51,110,127,
-253, 62, 47, 55,129,167,167,207, 41,181,240,236,179,107, 78,238,189,201,250,224,136,139,243, 83, 36, 55,116,115, 12, 40, 77,224,
-131,247, 31,241,254,251, 31,242,163,255,236,183,248,225,143,127,139,111,125,243, 1,255,227,255,252,191,241,191,252,171, 63,165,
- 31, 71,222,255,236, 11,150,139, 35,222,124,227, 30, 87,151, 35, 67,206, 12,187, 11,116,120,206,119,191,253, 13,158,124,246,107,
-174,174, 54,116, 4,242, 20, 9, 98,154, 24,180,190,242,240,215, 92,190,212,244,136, 90,224,135, 84,242, 52, 18,167,105,214,219,
-204, 76, 9, 28,170,217,182, 17, 21,188,187, 57, 24,172,112, 19,169,136,218,115, 64,146, 82,196,248,226, 82,153,125,244, 80,147,
-224, 29,236,118, 35,185,110,185,119,239,117,146, 86, 50, 91,179,139,166,134, 28, 50,213,183, 4, 2, 46,155, 96, 74, 91,193,213,
-209,214, 70,227,132, 72,160,107, 29,217,108, 50,108,250, 17,231,139, 81, 96,221, 14,151, 6,208, 9, 93,118, 72,156, 44,205,177,
- 40,211, 62,226,180,226,138, 32,101, 98,234, 43,226, 12,211,234,150,149, 26,231,128,161,156,169,185, 97, 40, 9,183, 44,228,216,
-210, 72, 99, 57,218,165, 82,119,133, 26,148,182,107,112, 37, 51, 93, 92, 48,245, 6,125, 98,154, 31, 5, 99, 69, 87, 95, 30,137,
-165, 86,156, 24,170,116, 55, 20,198,126, 96,117,176,194, 13, 70,190, 78,177,103,170,149, 28, 11,237,210,113,251,100, 73, 88, 11,
-135, 75,207,216,122,190,126,104, 77,243,163,234, 56,243,135, 12,107,184,206,208,239,141,117, 50,101,235,144,199,113, 79, 68,209,
- 28,168, 21,182,207, 46,137,211, 96, 20,207, 6,246,187, 29, 47,174, 70,212, 53, 12,113,130,206,193,194,191, 26,143,231, 27, 95,
-245,108,105,107,255, 35,217,234,187, 49, 49,236, 7, 10, 19, 94,133,182,253,251,208, 87,253, 7,191,254,234, 20, 32,204,207,116,
-153,253,244, 8, 44, 91,184,213,134, 87, 35,248,125,128,151, 39,135,240,129, 18, 68,184, 30, 54,116, 41, 34,105,207,232, 42,208,
-146,182, 61, 73, 18,197, 21,220,222, 92, 43, 97,117, 11,145,145,202, 14,145, 68,236,133,237,184,131,225,140, 28, 39, 3, 13, 21,
-135,211, 53,232,104,133,116, 30,209,154, 9,218, 18,107, 32,165, 17, 69, 73, 8,169,246,132,162, 68, 73, 64, 34, 87,143, 47,153,
- 59,171, 3, 90, 32,244, 17,250,202, 88, 21, 95,196,212,227,222,155,122,182,224,237,225, 86,211,172,120,247, 56, 95,240,174,218,
-222, 68,101,206, 53,159, 44, 61, 77, 60,181,220,220, 60,118, 16,168, 81, 99, 16, 34, 47, 30,125, 65,213,106,232, 73,249, 74,149,
-229,205, 30,102,149,183, 29,104, 22,228, 98,192, 20, 81,143, 56,243, 76,103, 49, 21,117,112, 66, 77, 51,162, 53,207, 75,155,153,
- 84, 87, 36, 19, 75,161,157, 11,128,169, 36, 2, 58, 71,190, 90, 72,139,175,142, 92, 48, 59,136,128,102, 35,219, 85,181,241, 93,
- 85,193, 37,157,199, 59,201,246,247,115,132, 43,181, 32,173, 39, 36, 19, 0,170, 42,171, 32,228, 34, 20,230,174,214, 65, 28, 65,
-171, 37,222, 81, 10,105,204,102, 67,114, 14,173,113, 94, 73, 8, 77,211, 18,107,154,145, 78,102,127,203,238, 38,220,166,204,187,
-102, 71,156,234, 92,197, 65,183,236, 32, 10,251,161,103, 24,109,199,234,213,145,138, 49,235, 13,220, 97,135,100,183, 88, 48,238,
-206,249,248,195,191,225,254,253,175,147,199,204,243, 47, 78,233, 14,148,187,247,191, 73,186,126,201,159,252,233,255,197,207, 63,
-124,143,113,200,228,106,246, 46,153,163, 97,197, 9,174,204,193, 53,197,210,170, 42, 86,208, 84, 49,242, 20,243,103, 22, 93,153,
-201,126, 6, 40, 72,185,242,214, 91,191, 65, 88, 52,156, 62,191, 32, 44, 26, 98, 63,226,107,135, 54, 48,140,145, 38, 22,174,174,
- 71,210,104,249,224,197, 53,144, 38,106,246, 20,111,240,139, 69,109, 17, 17, 58,175, 44,188, 99,216, 65, 88, 69, 88, 8,187,109,
-207, 69, 63, 34, 69,105, 91, 71,115,112,135, 7,111,220,226, 31,253,206,111,240,201,175,127, 9,210,144,189,162,190,208,213,134,
- 44,142,137, 74,238,123,198,113,164,233, 26,139,188, 44,137,156, 11, 65, 90,211, 66, 36,199,246,242,154,103, 95,124,198,119,191,
-255, 99,126,254,183,191,224,207,254,207,255,149,197,122, 73,208, 5, 85,132, 7,111,190,203,189,251,111,240,222,207,127,194,229,
-139, 83, 92, 19,112, 10, 67, 63, 80,141, 48,140,160, 76, 41,177, 79,145,162,214, 85,199, 92,248,228,211, 71, 28, 31, 31, 19, 17,
-164, 22, 59,148,102,173, 9, 89, 89,132,194, 55,126,227, 29,206,175,182, 44,125,192, 21,161, 52,142, 71, 79,158,176,219,238, 16,
-231,205,245, 32, 55, 76, 4,101,210, 66,158,172,240,220,105, 65,163,208, 74, 32, 74, 66,125,224,222,253, 55,249,228,209,175, 89,
-181, 31,177,219,140, 60,126,178,161,143, 31,115,121,177,231,181,211, 83,142,143,143, 57,123, 89, 40, 83, 68,186, 5,177, 38, 68,
-225,241,211, 43,254,213,191,249, 63,248,175,254,203,127,198,249,203, 45,255,245,127,243, 63,240,211, 95,124,196,110,211,227,170,
-231,224,232,144,227,213, 49,187, 77,230,175,127,242,136,197,226, 47,249,226,209, 99,190,247,131,239,240,253,215, 30,114,117,241,
-125,254,237,255,254,127,147, 98, 37,231, 4,193, 25, 43,162, 78, 72,182,144, 10,211,225, 22,212, 89,242, 98, 45,133, 52, 12,228,
-156,240, 85, 13,175, 91,197, 92, 43,154,173, 48,159,175,199,224,220, 92,208,207,189, 71,101, 22,248,154,104,215,116, 58,214, 24,
-148, 42,244, 83,164, 9, 1,147,202, 36,246,187, 11, 46,175, 60,183,110,223,166,138, 77,232, 74,205,180,206, 19, 83, 37, 53,153,
- 86, 42, 83,206,140,219,194, 66, 27,138,236, 17,239,105,218, 3, 92, 26,233,199, 72, 77, 5, 23, 20,218,128,196,134,117,169,108,
-176, 9,160, 27, 43, 94, 43, 62, 44, 24,174, 35, 53, 39,194,177, 35,237,204,235,172,186,194,171, 41,229,157, 0, 83,198,217,248,
- 18,105,148, 80, 65, 6, 33, 39,199, 94, 71,104, 35,153,150,181, 46, 24,114,198, 73, 97,191,175,164,167, 27,166, 56,178,110, 22,
- 60, 31, 2,161, 49,113,223,245,201,146, 5, 75,162, 42,195,249, 30,169, 35,190, 58, 26,169, 76, 53,227,196,152, 9,105,152,144,
-212,227,213,132,121,190, 10, 33,216,136,122, 63,193,162,124, 25,192,214, 22, 35, 56, 30,118,176, 1,210,232, 57, 88,174,240, 71,
- 75,166,177, 66, 73,116,119, 23, 52,141,253,131,243, 77,103,200,106, 87,104,213, 17,155, 53,159,187, 57,240,231, 42,178,219,140,
- 28, 30,172,112, 8,187,253, 68, 93, 5, 14,150,142, 22,136,251,204,113,107, 60, 2, 17,131, 24,217, 36,215,238,129,105, 28, 41,
-105,100, 28, 35, 7,141,167,105,220,255,111, 46,122,153,187,243,240, 15, 16,176, 95,253,125,154, 39, 8,242, 21, 14,124, 29, 19,
-227, 16,233,247, 3,149,145, 73, 33, 54,138,139,137,234,123,100,154, 40,125, 75,146,129,214, 5, 19,106,199, 61,212, 1,180, 34,
-177, 80, 73, 76,185,101, 74,209, 52, 79, 69,112,161,162, 50,146,103,138,165,196, 74, 85,103,105,118,217, 65,241, 84, 77,212,226,
- 13, 1,238, 21, 98, 32,168, 37,222, 45, 58, 97, 29,132, 1, 72,113, 32, 75, 38, 8,120,170,249,203,185,177,250, 84,243,212, 82,
- 29,206, 87,106,174,166, 40,143,198,236,206, 55, 8,189, 36,179, 72,125,142,239,155,163,213, 67, 8,212, 92,172, 99,244,182, 35,
- 23,153,243,198,113,160,201, 70,246,217, 89,125, 36, 38, 99,213, 92,113,248, 89,145, 81,173,170, 46,166,104,167, 8, 89, 1,157,
- 87, 2, 21,163,199, 57,179,171,196,106,140,250, 82, 19, 17,103, 64,135,170,134,244, 3,130, 26,235,125,114,149,160,246,134,166,
- 98, 99, 61, 45,118,211,122, 28,161,129,224,149, 88, 12,119,169,181,154, 98,218, 57,180,152,241,211,205, 73, 58,137, 68, 42, 51,
-192, 35,151, 89, 83,144, 76,132, 17, 44,140, 34,107,197, 21,251,243, 27,223,189,159, 67, 93,118,195,136,243,106,130,185,105,206,
-146, 22, 83,124,150, 70,137, 99,161,109, 59,104, 10,169,239, 13,250,147,236, 51, 25,134,158,148, 71, 27, 89,206, 35,241, 92,103,
- 57,171,152,149,175,107, 27,218,133,231,229,243,207,249,252,195,247, 17,231, 56, 56, 60,100,181, 62,228,242,197, 11,190,120,244,
- 49,103, 23, 87,196,100,193, 48, 94,237, 82, 54,208,198,108, 99, 17,219, 93, 21,245,148, 57, 51,190, 9, 45,119, 95, 59,161, 93,
- 6,203,166,159, 42, 69, 76,237,190,221,141,196,156, 88, 29, 30,112,239,248, 30, 47,175,246,140,174,112, 84, 19, 50, 20,122,245,
- 52,101, 98,218,103,188,107,184,115,247, 1, 31,255,221,223,176, 62,186, 69, 61, 90,179,189,188,196, 57,207,225,193, 9, 39,247,
- 79, 72,174,240,242,249, 19,182,195,134,186,110, 89,234, 33, 90, 2, 87,187, 61,203,195, 91,116,154, 24,251, 17,159, 38, 70, 15,
- 15,223,188, 77,191,189,224,209,227,151,132,238, 0, 39,167,104,130, 50,227, 80,115, 52, 39,134,118, 13,161, 93,128, 84,114, 54,
-155,163,107,221,172,138,207,224,132, 79, 63,127,204, 23,103,167, 48, 37,210, 48,177,190,243, 38,183,110,157, 64,104,153,210,200,
-255,251, 23,255,142, 28, 51, 77,232, 40, 57, 83,181, 24,162,182,223, 19,179,129,114,210,124,168, 84,148,170, 6,107,186,190,220,
-178,185,222,114,120,112,196, 24, 42, 82,148, 41, 70,100, 37, 4, 7,107,127,192, 55,126,227,219, 16, 71, 66,178,117,149, 4,199,
-110,219,179,187,218, 32,110,142, 64,158, 29, 34, 57,219, 97,144,211,192,208, 23,203, 30,200,150,174, 54,104,182,117,135,111,105,
- 23, 11, 78, 47, 47,241,201, 49,228, 96,157,230, 26,158, 63,125,196,234,240,144,166, 13,148, 26, 25,163, 50,196,209,162, 36,181,
-225,227, 15, 46,249,111,255,187, 63,226,211, 79,207,216,150,202, 65,115,200,173,213,138,234,148,197,162, 33, 28,174,233, 55, 19,
- 87,189,240,233,135,215,220, 58, 58,226, 15,127,255,135,156,159,245,252,238, 15,190,207,175,254,246, 67, 62,127,246,212, 18,204,
- 74, 69, 66, 67,238, 51, 34,145, 86,149, 8, 76, 53,226,146,117,158,130, 93,103, 69, 60, 56, 67,154, 72, 6,167,106,107, 10,241,
-166, 1,154, 57, 18,206,219,164,162,148, 74, 8,134,179,166,202,171, 53,146, 83, 3, 95, 49,147, 50,243, 56,160,221,138, 82, 18,
-101,152, 56, 63,115,172,143,110,209,122, 99,103, 72,235,169,162, 52, 2,105, 28,152, 26,187,255,125, 54,173, 17,190,179,232,231,
-146, 40,121,154, 95,211,124, 10,228,142,152,122, 44,223,210,132,168, 26,102, 4,109, 63,145, 67, 65,157, 39,245,149, 82, 6,252,
- 34, 64, 25,169,222, 19,180,176,159, 18, 53, 7, 80,199,202, 23,162,102,166, 88,233,154,195,249,190,172, 22, 89, 92, 18,181,141,
- 48, 9,135,221,130,219,183,239, 35,171,187, 92, 95, 94, 34,235,142,225, 78, 71, 63, 86,210,147,137, 39, 23, 27,158,238, 12,102,
- 52,109,174,241,237,130,221,246,154, 52,244, 12,211, 57,157,142, 56,237,216,239,123,166,161,103,146,121,175,171, 38, 0,102, 86,
-186, 31,126, 69, 61, 22, 13, 73, 63,191, 78,251,130, 48, 18,164, 49, 69,191, 10, 39, 65, 8, 24, 28, 70, 99,164,143, 19,219,148,
- 89,174, 58,110,221, 94,225,214,106, 33, 36,105, 65, 8,208,175, 28, 53,131,147,150,215, 14,141, 12, 58, 2,251,198, 60,246,141,
- 13, 10,185,188, 24,105, 93, 98,209, 5,114, 76,188,248,226, 37, 18, 11, 82,173,169, 27,250,129,197,218,226,107,166, 89,200,236,
-189,190, 58,165,165,252,253,246, 93,255,193,120,127,156, 15,242,175, 30,250,113, 63,225, 90, 11, 77,242,172,241, 97,100,220,239,
-153,118,150,172,201, 52, 33,181, 69,189, 50, 14,153, 80,149,212,122,198, 62,210, 0,213,123,188,207,116,139, 5,211,126,133,166,
- 75,138, 55,171,120, 78,189,137,211,205,179,132,184,132, 74,139,142, 61, 34,129, 41,123, 60,145,166, 86, 6, 50,226,171,141, 59,
- 72, 20,133,143, 31,159, 18,203, 51,174, 95,190,143,108, 35, 67, 4, 31,173,173,128, 98,225, 41,106,139,108, 19, 95,161,184, 27,
-133,106, 1,211,130, 90,171,166,106, 27,240, 82,110,100,117, 70, 96,171,217, 70, 84,170, 16, 39,195,124,218,133,111, 93, 92, 41,
-198, 62,119, 90, 64,189, 9,125,162, 69,171, 86,111,130,183, 89, 70, 55,231, 56, 43, 97,190,200,114,130,132,220,228,192,160,206,
-104, 60,168,169,226,187,106,130, 56,227, 69,207,156,115, 53,101, 57,197, 65,181,200,205,224,173,194, 23, 39,175,164,144,149, 76,
-140, 74,158,233,117,181, 64,118,230, 93, 53, 38, 61,212,166,224,146, 80,197,207,239,147, 21, 44, 81,237, 80, 20,159,161,192, 52,
-152, 21,172, 83,103,129,246,129, 87, 52,189,154, 43,190, 83, 24,147, 17,210,170, 34, 76, 56,231,172, 91, 44, 21,179,146,218, 78,
-213,226,116, 29,174, 6, 38, 73, 56,173,102, 37, 43,133,206, 55, 22,154,131,220,212, 70,228,148,172,171,111, 58,163, 95, 21,153,
-193, 64,145, 54, 6,142,221, 17,103, 47,191,224,229,213, 37, 5,104,187,134, 92,235,172,202,181, 7,144,159, 85,244, 55, 49,172,
-162, 50, 67, 52, 18, 93, 27,248,222,119,191,203,242, 48,240,226,197, 5,169, 70,222,122,248,144,213, 98,201,199,159,124,198, 79,
-126,242,115,110,223,186,199,195,119,191,195,233, 23, 31,153,250,184,117,196, 41,225,194, 64,223, 79,140,185,242,237,111,252,136,
-147, 3,248, 55,255,250,231,108,119, 61,222, 59,138, 42, 33,116, 28,174,143,121,227,193,155,118, 99, 78, 3, 85, 2, 11,109, 56,
-186,187,230,162,223, 50,140, 61, 77, 92,210, 54, 43,154,133, 67,170,227,181,213,109, 94,191,123,196,211,103, 31,242,233,147, 79,
- 89,250,150,160,193, 92, 5, 73, 73,197,148,218,200,172,145, 16,163,251, 53,174, 33, 89,196, 31, 93,219, 26,212,100, 24,232, 25,
-209,177, 16, 84, 80,239,121,118,246,132,179, 23, 79, 12,169, 76,182,204,109,153, 87, 69,206,155, 7, 23,229,106,219,191,138, 40,
-174, 89,236,189,195,214, 26,234,133,218, 56,134,169, 18,114, 34,180,129, 82, 10,157,182, 20, 96, 17,132, 90, 70,115,152,228,194,
- 46, 13,172,154, 5,181,100,186,198, 96, 62,165, 84, 52,207,164,230, 90, 16, 18,162,118,191,185,160,182, 2,144,194,100, 40, 7,
-134,105,195,167, 31,255, 10,113, 13, 18, 28, 77,211, 82, 82, 36,107,166,140,153,169, 76, 60, 59,125,108, 19,163,154,145,170,180,
-161, 97,213, 52,108,211, 72, 14, 13,191,254,248, 12,239,148,147,163, 3,148,198,160, 48, 65,104,154, 5, 71,139, 35, 14,186,192,
-229,117,143,200, 45, 67,140,166, 66,240,158,223,249, 79,190,205,251,159,127,198,127,255, 47,255, 39,218,101, 64,130,112,188,128,
-218,172,120,118, 62,226, 60, 44,157, 67, 39,177,157,100,172,104,176,150, 80,147,209,214, 74, 52,117,176,101, 74,152, 42,184, 74,
- 69,114,193,121, 37, 71, 8,162, 84, 41,228, 34, 52,206, 28, 56,206,153,176,208,214, 46,142,224,132,152, 50, 12,133, 92,118,168,
- 42,190,105,137,169,103,220, 95,210, 29, 31,130, 19, 92,177, 7,116, 13, 43,202,126,164, 68,193,181,115, 1,213, 10,190, 4,219,
-157, 78,201, 14,247,166,218, 36,207, 41, 37, 77,212, 16,232,227,104,207, 49,183,132, 49, 50,213, 68,179,114, 44,180, 35,230,129,
-154, 58, 52, 12, 52, 85, 72, 9,180,107,140, 57, 48,237, 8, 11, 37,120,199,229,126,164, 45,106,121, 19,139, 66,147, 29,121, 47,
-164,169, 71, 23,129, 90,150,184,234, 9,157, 71,124, 67,112,208,133,150,147,215, 91,222, 56,132,235, 34,124,122,181,228,160, 93,
-144,151, 11,250,253, 72,215,182,188,246,230,138, 77,133,103,143, 19, 92,192,101, 81,242, 62,209, 15, 59,118, 49,145,182,213,138,
- 45,205, 60,249,252, 57,242,212, 38, 55, 26, 90, 14,244,150, 49, 57,174, 19,203, 82,112,165,177, 2,170, 31,217,135, 61,185, 47,
- 76,125, 65,107,195,225,108,112,122, 89, 97,191,143,140, 90, 40,162,180,206,209,181,142,251, 88,151,255,196, 9,185,181,213,174,
- 83,179,198,221, 88,225, 10, 70,154,185, 51,119,207, 17,136, 39, 11, 86,150,105, 67, 95, 33,189,184,164, 31, 39, 38, 28,190,194,
-181, 40,147, 49,207,216,109, 10,141, 66,123, 96,167,243, 48, 84,220, 16, 57, 57,110,152,135,138, 92, 92, 79, 44, 91,111,147,128,
- 10,113,200, 44,194, 44,195,191,241,174, 79, 19,187,190, 82,138, 67,100,193,245,254,194,172,207,181,103,200, 35,101, 29,168, 87,
- 61,178,203, 22,254,162,209, 58,235,153,103,146, 83, 71, 91, 38,130, 52,184, 42, 36,151,200,170,132,125, 38,137, 93, 63, 37, 26,
-138, 88, 98, 33,106,143, 4, 99,168,120,103,244, 77,153, 85,248,140, 22,253,171,192,209, 90,144, 7, 15,184,112, 39,196,190, 16,
-128, 73, 3,182, 81,152,253,228, 41,103,163,190,105,182,176,140, 60,119,236, 78,240, 26,140, 28, 87, 11,226,189,249,205,139,165,
- 99,169, 24,109, 12, 81, 82,169,120, 53, 76,100, 77,144,179,137, 89,114, 41,184, 57, 41,230, 70,213,110,157, 82, 65, 84,105, 52,
-224,212,120,243,126,190,121,111, 64, 49, 57,155,226, 79,252, 77, 80,139, 9,186,210,100,147,128, 90,132, 18, 42,204, 42,244, 66,
-162,173, 74,214,106,234,118,102,229, 62,198,249,141, 41,145, 68,104, 48, 85,174, 40, 20, 2, 34, 38,190,105, 80,138, 51, 53,121,
-245,246,128,245, 34,102, 27, 83,251, 63,114, 18,188, 7,157,249,181, 94, 11, 99, 44,166,194, 68, 17,241,150, 79,238,178, 65, 77,
-230,180,185,154, 11,184,140,134, 96, 92,123, 50, 78, 28, 22, 92,152,172,234, 20,135,107,109,204, 58, 77, 19, 73, 42,161, 88,129,
- 52,165,145,126,187,183,164,185,154,172,128, 18, 1,175,166,172,205,137,197,114,137,122,229,244,233, 11,174,174,182,104, 48, 81,
- 71, 65, 89, 31, 30,114,125, 49,130, 42,222, 7, 84,234,252, 57,206,242,213, 98, 86, 9,197,248,141,130,173, 77,156, 84, 68,220,
-156, 11,173,124,240,203, 15,249,244,209, 35,164, 13, 52,178,226,219,223,186,141,111, 28,169, 36,110,191,246, 22, 97,209, 64, 73,
-200, 8,146,123,104, 50, 99, 4,101,193,209,235,183,120,251,205,187,124,242,179, 63,229,122,179, 65,213, 84,165, 72,101,156, 44,
- 41,238,233,163, 15,112,218,160, 77,224,157,119,127, 68,247,224, 77, 54,253,134,125,205,172, 15,238, 16,135,132,166, 9, 45,133,
-195,251,119,249,241,143,190, 71,218, 62,229,227,191,253,132,247,222,123,194, 15,191,247, 77,139,202, 77,133, 80,212,162, 35,243,
-140,120, 76,246, 89,105,105,141, 71, 79,139, 58,187, 78, 26,223,144,107,182,221,110,169,228,236,232,211,136,244, 61,237,106,197,
-218,169,133,170,164,200,197,102,139,115, 29,183,110,223, 97,216, 93,177,219,237,136, 83,111, 33, 17, 83,180,194,115,214,162, 20,
-108,189, 53,108,119, 92, 93, 92,112,120,120,136,196,128, 91, 20,106,137,232, 84,137,147, 55, 11, 75,153,152,178,221, 68,117,198,
-170,130,146,197, 32, 40, 70,175,242,198,197,207,133, 68, 97, 28, 39, 54,167,167,180,175, 63,164,201, 45, 81, 18,117,156, 56, 63,
-123,201, 46, 79, 28, 54, 97,198, 32, 23,114,142, 76,253, 68, 77, 25,231, 26, 46, 95,156,178, 92, 46, 57, 56, 56, 6,239, 13,164,
-113, 61,130,115,132, 91,129,110,185,194,137, 41,171, 65,209,208, 18,164,218,251, 52, 13,136,243,196,254,130,135,247,239,178,217,
- 9,239,253,234, 11, 46,174, 94,240,238, 91,239,242,251,255,233,111,243,254,167, 47, 73, 87, 47,121,251,173, 35,218,166,229,206,
-241, 9,255,242,143,254,148, 41, 15, 6, 1, 82,197,181,133, 60,102, 92, 85,210,100,163,243, 90,231, 74,149,138, 84,251, 51, 40,
-120,148, 76,157,237,183,222,214, 5, 65, 81,241,164,132, 89,197,180,144,179,216,181,237, 32,197, 57, 76, 88, 2, 57, 86, 66,107,
-140,128,156,132,151, 47,206, 56, 62,184,101, 41, 88,193,147, 53,146,226,150, 42, 66, 35, 66,138,134,147,246,177, 50,197, 13,206,
- 5, 82, 30,144,198, 64, 64,185, 84, 36,155,181,215, 75,161,122, 79, 78, 35, 69, 38,156, 58,218,218,224,134, 64, 8, 48,186,150,
-218, 42,194,138,156, 19, 77, 59, 7, 39, 57,229,112,217, 48,214, 76,140, 17,201,182, 38,204,147, 67,106,102,146, 1, 77,126, 70,
- 27,119, 12,123, 37,231,158, 69, 56, 0,181, 53, 97, 43,153,219,173,185,208,163, 81, 62,168,222,168,140, 82, 42, 93, 19,120,171,
- 53,120,204,245,177, 35,200, 49,254,214,138, 58,129, 62, 45,188,124,122,198,203,205, 72,179, 44,220, 10, 71, 44, 78, 94,103, 75,
- 96,243,242,140,126, 26, 56,125,108,161, 89,227,230,130,182, 21,218,139,181,161,141,183,231,172,214,194,116,157, 24, 99,196,215,
-134,243,197,146, 69,231,208, 88,200,211, 21,165, 36,134,169,144,178,217,140,183,179,245, 45,204,158,115,153, 69,114, 94,255,254,
-232, 60,127,165,179,150,153,148,119,248,149,196,185, 84,139,173,205, 70,155, 2, 60, 56, 57,192, 91,142, 16,254,216,177,158, 19,
-232,112,112,237,133,109,211,208,219, 35,156,161,192,117, 53, 93,213, 84,205, 35,127,181, 43, 92,151, 17,127,184,198,101,184,120,
-185,103,127,253, 4,134, 61,181,191,102,146, 72, 30, 91, 98,218, 89,195,236, 3,117,155, 72,100, 86,193, 38,102, 83,154,168, 53,
- 17,242,146, 84, 54,212,120, 65, 12,194, 16,148, 49, 93,195,228,168, 30,106, 91, 41, 67,197,181,129, 82, 11,105,220,163, 69,240,
- 62,144,167, 61,133,150,152, 34,165, 90,163, 23, 52,160, 82,136,217, 50, 51,171, 56,252,176,180, 6, 54,192,180, 76,172,250, 9,
-239,213, 83,106,157, 21,229, 70, 98,147,202, 92, 45,103, 98,169, 22,216,162,179, 93, 65,205, 34,164,100,178,204, 99,141,146, 45,
- 62,179,218, 76, 31, 21, 82,174,168,138,217, 75,164,190, 82,150,163, 2,217, 98, 74, 45,220,229,102, 53, 94,113,115,246,122,158,
-253,237,102,123,179, 15,160, 5,166,100,135,139,177,227,132, 52,103, 70,136,218, 24,147,234, 40,213, 10,143,209, 87, 52,169,205,
-137,196, 32,254, 2, 56, 31,230, 61,124,161,144,112,213, 2, 92,114,158, 88,180,158, 44, 80,178,208,120, 37,213, 27, 7,133, 89,
- 99, 74, 18, 70, 41, 6, 6, 81,243,196, 87, 17,114, 77,164, 8, 57,123,212, 85, 92, 51,171, 77,243, 60,248,147,138,195,190,103,
- 73,102,225,207,106,107, 13, 93,120,123, 80, 22, 32,154,130, 61,168,241,204,227,156,164, 36,177, 16,125,162, 38, 75,189,155,114,
-165, 86,193, 59,207, 84,147, 9, 75,146, 85,137, 69,141,135,255,252,197, 25,215, 87, 87,118,112,123, 71,144,128,136,210,199,129,
-235,205,198,132, 67, 40,164,132, 96, 55, 86, 74,204, 81,183,206,252,144,197,126, 30,106,181,248,214,156,168, 89,248,232,211,143,
-249,236,227,207,168,185,226, 50,156,159,191,160,250, 55, 72, 83, 79, 77,240,236,241,199, 44,219, 63,224,251, 63,254, 49,159,125,
-254,132,139,151, 79, 72,125,133,152,232,142, 29,239,126,237, 45,150, 26,249,171,159,254,148,152,139, 29,254,226,112,206,108,149,
- 69, 42, 85, 61, 5, 97,209,118,180, 11,101,136,231, 80,146,105,179,213, 33, 8,251,180, 37, 69,207,189,195,187, 28, 30, 30,241,
-171, 15,127,201, 47,255,238, 3, 46, 55, 23,108,119,251,217,250,145, 24, 74,102,204,217, 14, 79,113,120,103, 35,217,126, 26,152,
- 98, 34, 52, 45,109, 23,240, 65, 9, 89,144, 27,209,103, 46,196, 52,226,150, 1, 34, 76,215, 3, 27, 95,240,174,101,202,153, 24,
- 51,168, 50, 14, 61,253,176, 99, 26,173, 16, 24,167, 72, 41, 51, 97, 81,103,241,167, 26, 77, 45,215,194,233,217,115,222,122,248,
-128,198,141,212,164,140, 41,209,202, 28, 83, 92, 5,167, 13,203,160, 51,125, 43,163,203, 22, 31, 58,144, 68,241,205,204,111,152,
-193, 21, 88,194, 89, 63, 70, 62,248,236, 51,170,243, 28, 30, 62,176,136,223,201,177, 90, 30, 17,218, 96, 26,150, 84,153,234,192,
-148, 35,251, 52,226,130, 7,104, 24, 82, 0, 0, 32, 0, 73, 68, 65, 84,199, 21, 33,199, 9,117,158, 41,103,164,100, 98,138, 80,
- 10,235,245, 9,174,182,212, 2,174,109, 76,132,164, 54,149, 24, 39,179,181, 93,111, 55,172,110, 57,188,203,124,254,197, 19,182,
- 19,124, 99,123,159,229,186,225, 79,254,236,223,178, 60, 56,230,187,223,253, 14,231, 79, 30,243, 79,255,233, 15,121,126,118,206,
-122,125,194,237,227,191,229,201,227, 71, 36, 55, 39,129,168,167,250,201, 14, 95, 17,139,123,118,222,146,190,100,122,245, 44,176,
-191, 91,161,120, 19,204,137, 32,120,188, 51,209,216, 56, 89,116, 42, 85, 64,131,101, 45,196,136,136,105,119, 4, 11,175, 26, 75,
- 34, 71,197,139,103, 63, 76, 92, 94,109, 56,188,117,200,152,139,249,221, 67,194, 47, 91,139, 91, 78, 74,145, 68, 77, 3,197, 59,
-202,140,123,106, 93,139,244,142, 84, 19,206,101, 35, 72, 98,164, 60, 81,165,230, 68, 10,194,178, 13,196,156,185, 78,145,154,153,
-225, 34,137,218,169,253,172,193,209,167, 61, 75, 15, 58, 8,251,216,207,244, 76,227,111,176, 16,242,101,158,225, 80,183,144, 52,
-146,229,154, 66, 99, 73,152,155, 45,101, 44,208, 79,140,219, 53,155, 22,174, 7,240, 37,209, 6, 79,118, 51,149, 45, 8,215,179,
-207,220, 77,133, 57, 41, 11,231, 32,199,104,238,167,153,202,215,180, 45,221,162,133,226, 40,139,142, 69, 23, 8,135, 75,250,100,
-219,197,213,235, 45, 91,175,228,231, 17, 55,100,134,112, 0,107, 71, 30, 34,244,137,143, 6,101,186,174,212,205,158, 97,179, 99,
- 24, 43, 62, 9,174,122, 54,207,247,164, 67,211, 2, 77,155,107, 22, 97,133,107, 3,113,194, 68,147,173,252,189,147,253, 70, 41,
-159,110, 44,115, 55,251,239, 10,113, 44,196, 58,145, 75,100,221, 28,226,103, 94,174, 0,157,124,169,162,103,206, 72,111,154, 47,
-179,210, 59, 15,225,150,127, 53, 25,192, 67, 61, 9,244, 4, 82,176,255,107,220, 59,134,113, 98, 75,162, 70,230,128,157, 13,117,
- 26,240,174, 35,145, 73,195,128,120,216, 77,213, 26,161, 32,148,152, 16,137,100, 58,164, 38,163, 3,206, 90,145, 80, 60,117, 76,
- 36,111,150, 64, 70, 59, 20, 60,144,107, 38,167, 72,160, 37, 75,176, 64, 23, 17,180, 22,180, 70, 82, 77,120,245, 80, 23,136, 8,
-163,174, 72, 57, 19,195, 68, 70, 40,177,224,139, 84, 84, 43,181,122,156, 51, 91, 87,169, 17, 73, 54,238,242,150,210, 48,103,101,
- 39,196, 43,226, 10,105,176, 19, 79,171, 69, 94,214,155, 0, 7,205,182,135,206, 2, 37, 65,219, 89,212,101,153, 19,177,196,153,
-231,214,158,205,102, 19, 42,115,154,155, 20,164,204, 73,113,246,204, 2,205,120,173, 76,213,208,126,234, 28,121,102,192,215,146,
-201,226,112, 5, 74,137, 51,208,195, 4, 95, 53, 23, 34,217,126,254, 56, 3,118,212,132, 48, 78, 21, 87, 44,104,165,170,155, 59,
-244,185,171, 23, 3,243,249,121,198,239,138,169,104, 83, 49,144,164,162, 76, 36,116,126,111,166,152,240, 34, 68, 18,185, 10, 29,
-134,174, 21,145, 87, 97, 13,121, 78,186,171, 65, 17, 47, 52,217, 19, 73,115,161, 80, 77, 57, 25, 45,192, 70,189, 99, 44, 22,150,
-225,114, 52, 14, 64, 53,100,173,165,150, 53, 28, 31, 29, 18,227,165,117,206, 94, 45,109,236,166,187,174, 74,236,123,246,165,208,
- 52,193,222,139, 98, 8,217, 90, 12,255, 58,140,102, 33, 50, 60,176, 55, 61, 66, 41, 56, 39,243,215,197, 38, 18, 53,218,216, 71,
- 61, 65, 1,223,177, 27, 6,174, 63,253,212,172, 40,206,186,198,231, 47,158,115,246,236, 5,101, 40,136,120, 46, 46, 30,243,222,
- 47,126,201,239,252,227,127,204,215,222,129,135,111,222, 99,218,108, 73, 35, 52,135, 29,223,120,231, 29,182,167,191,226,163,143,
- 30, 81, 82, 54,109, 70, 73, 68,177,131, 48,207,196, 61,173,176, 88,220, 97,233,215, 76,155,200,234,240,136, 32, 19, 49,159, 19,
-163,144,196, 88,231,203,118, 73,206, 91,222,127,239, 23,124,248,228, 41, 42, 5,113,149,160,194,249,190, 71,231,145,108, 21, 11,
- 32,138, 53,207,233,103,194,225,209, 33,139,245,154,152, 71, 64, 73, 41,162, 1, 26, 28,165, 40,253, 52, 49,109,119,182,207, 76,
-130,235, 51, 89,247,198,137, 78, 19,174, 31,216,237, 95, 82, 81,214,139, 53, 94, 34,187,105,178, 21, 43, 5,201,166,102, 86, 53,
-158,182,212,202,213,229,134,205,245,134,229,221, 59, 54,197, 9, 1,151,173, 64,108,154, 66,173, 29, 83,158, 8, 20,106, 3, 50,
-139, 88,237, 38, 51,244, 49, 8, 69, 21,153,169, 92, 34,149, 49,102,206, 79,159,243,218,237,215, 25,198,204, 80, 11,139,131, 67,
- 86,221,138,188,223, 19,125,161, 31,123,250,253, 68, 22,165,235,132, 58, 51, 6,250,126,164,120,165, 85, 79, 35,158,234,109, 2,
-185, 10,149,141, 47, 52,141, 71, 93, 71,209,132, 79,217, 52, 36, 81, 25,153, 56, 17, 71, 94, 44,249,233, 47,159, 83,130,160,225,
-231,252, 23,127,240, 53, 62,255,252, 57, 79, 78, 63,224,135,191,253,187,188,253,224, 46,175,221,121,200, 55,223,121,151, 79,158,
- 60, 65, 93,182, 34,167, 20, 11,140, 74,182,238,169,226,230,233,159,165, 59,230, 82,172, 16, 83, 33,170,233, 96,236,154, 81, 74,
-245,136,171,102,149,203,153, 41,142, 38,214, 44, 6,240,200,181, 7, 21,188, 4,212, 91, 66,100, 42,137, 90,103,183, 8, 13,217,
- 87,130,120,206, 46, 94,208,172, 15,173,171,243,230, 33, 78,113, 52,178,216, 28,207,236,202,154,156,247, 72,181, 34,167,150,108,
-118,222, 98,215,111,170, 21, 63, 13,150,191,160, 74, 40,129, 84, 51,125,172,212,164,136, 47,180,210,146,202,100,226,215,186, 64,
-181, 32,113, 66, 74,166,210, 18,131, 3, 47, 52,131,146,146,197, 64,167, 77, 36,165, 68, 19, 2, 67,186,100, 93, 21,239, 58,170,
-107,112,221, 93,134,241,136,169, 31,216,143,103,196, 95, 79, 44, 22, 75, 43,100,167, 29,151,233, 16, 31, 58,202,184,229,126,115,
-196, 49,129, 93,129,116,157, 88,104, 70,114, 37,141, 19,211, 52, 32,100,234,148,240,107,133,198,209, 87, 97, 51, 64,217,143,164,
-226,105, 90, 3,201, 84,129,215, 87,202,170,129,179,209, 19,167, 35,218,163,150,102, 5, 99,104,184,117, 2,119, 79,108,159,254,
-249,203, 67, 46,207, 58,106, 86,150,157,226,151,107,206,155, 53,177, 8, 58,128,244,202,213,139, 68, 40,153, 58,141, 20, 87, 9,
-175,159,160, 78,232, 83,102, 59, 36,186,163,214, 92,119,185,152,222,107, 86,184,143,179,222,165, 47,153,234,197, 92, 88,175, 32,
-227,166,185,254,234,194,124,151,161,169, 95,118,254,181,254,125,145, 28, 38,219,226,142, 55,122,222, 22,248,192, 9,215, 35,108,
-206,175,240,217,210, 63,243,156,110,152,118,153, 18,237, 57, 78,198,114,227,139, 71,164, 65,165, 33,231,129,170,153,145, 72, 30,
- 10, 46, 95,163,213, 49,229, 45, 46, 44,168,141, 82,199, 29, 41, 38, 52, 56, 68, 2,190,142,148, 28,152, 92,162,230, 4, 25, 52,
-120, 34, 35,211,188,150,213,162,148,218,115,220, 30,114,114,114,155,103, 27, 40,209,244, 91,187,184,199,223,224, 93,107,205,228,
-153,218,228,110,204,253,110,174,138, 83, 68,234, 44,248, 73, 21, 55,199,166, 82, 44,117,201,200,104,117, 78, 37,178, 61, 99, 82,
- 19,198, 85,201,175, 68, 98, 42,118, 8,220,120, 82, 74, 46,175,240,178, 18, 64,138,216, 65, 58,239, 50,110,118,222,137, 98, 93,
-225, 60, 34,173,147,237, 33,196,207, 25,186,197,118,228,185, 22, 43, 80,164,226, 52, 32, 57, 89,193, 0, 22,198, 48,219,231,110,
-236, 77,150,200,150, 44, 11,218, 91,247,171,226, 44, 10, 22,219,153,167,100, 9, 63, 55,251,242, 82, 51,190, 85,100,178,135, 54,
- 84,166, 98,246,165, 32,182, 23, 86, 21, 82,181, 64,156, 6, 99,196,171, 10,165, 6, 84,140,217,171,210, 80,234, 64,174,144,147,
-216, 67,205,164,208,243,251, 90,102, 81, 98, 33,207,121,232, 57, 71, 50,149,219,119,110,179,223,247, 92,247, 19, 82,173,227, 23,
- 53,203,142,201,105, 42, 77, 99,121,193, 34,193,120,253, 51, 59,255,242,252,226,213,254, 87,253, 77,148,173,189,150, 20,235,171,
-194, 73,213,108,126, 82, 13,102, 82, 29, 4,167,196,148,200,201, 14, 76, 17,219,183, 95, 94,109,248,127,254,242, 61,155,188, 80,
-240, 62,243,241,175,255,146, 55,223,254, 22, 37,238, 56,186,115,155,161, 79,168, 83,218,245, 1,135,203,142,191,252,217, 79, 25,
- 99,229, 7, 63,252, 46,247,238,157,240,179, 95,126,192,217,243,151, 44,187, 37,139,174, 99,219,111,152,166,137,176, 58,196, 45,
- 2, 77,211, 34, 58,146, 93,161, 12,230,203, 45,165,114,112,231,136,227,195,142, 47, 62,255,136, 95,252,250,215,236,182, 3,109,
-171, 44,218, 37, 71,235, 29,159, 61,218,217,174, 60, 56,218,102,193,225,178,163, 91, 47, 89,174, 15,185,117,124,204,221,215,142,
- 1, 79, 30,237,189, 78,147,141,114,139,128,155, 25, 14,195,126, 32, 78,209,186,162,146, 44,124, 33, 21,166, 52,112,118,126,193,
-211,167, 47, 88, 45, 91, 92,200,236,175, 6,131, 23, 5, 12, 48,145,203, 92,116,126, 73, 15, 44, 49,114,122,246,148, 55, 30,190,
-198, 36,138, 47, 38, 54, 44, 81, 73, 37, 19,221,136,100,193,185,150, 26, 42,231, 47,207,249,226,217, 83,156,115,228,148,241,106,
-121, 8,133,196, 27,247,238,240,214,219,111,241,232,209, 19,250,221,158,243,235, 13,251,113,207,144,149,177, 22,186,210,114,235,
-240,117, 62,120,246, 83,188, 91, 16,171, 41, 96,186, 38,224, 85, 40, 26, 8,173,224,241, 54,161, 83,203, 81, 48,248, 77,203,241,
-201, 49, 47, 55,215, 72,202, 72, 26,137,177, 16,199,132, 6,152,250, 1, 74,228,162, 93,112,123,113,204,243,122,198,216,195,123,
-239, 61,166,201, 91,222,251,236,140,253,245,196, 63, 82,248, 39,191,255,219,180,139,142,147, 55, 14,120,244,228,115,242, 4,205,
- 98,193, 56,109,205, 1,227, 21,226, 76,177,100, 22,188,137,206,194, 32,157,185, 9,137, 58, 39, 25,182,234, 73,206,158, 29,100,
- 75,137, 44, 81,230,248,228, 57, 50,245, 70, 87, 83,237,254, 52, 44,171,162,217, 18, 36, 19, 9,167, 5, 23,132,113, 10, 76,125,
-207,193,241, 17, 83, 1, 39,147, 77,140, 80, 98, 42,136, 26,191,157, 17,194, 90, 41, 53, 19,167, 74, 44, 3,206,117, 51,168,105,
- 36, 75,107, 5,186, 20,115, 56,136,217, 17,125,174,208, 4,198,209, 38, 5,222, 59, 92, 84, 38,201, 72, 99,248, 95, 42,168, 47,
-180,169,193,117, 17,137,149, 82,128, 98, 5, 94,138, 19, 90, 43, 3, 45,190,192, 97,235,249,206,253,183, 8, 15,151,156,158,173,
- 25,159, 14, 12,205,158, 40, 19,125,159, 57, 56,120,131,122,188,160,239, 43,151, 87, 91,250,203, 71,156, 95, 30, 49, 20,165,191,
-218,144,155, 37,110,119, 77,205, 59,174,175,183,140,147, 77, 32,243, 96,251,112, 95,108,191,188, 17,104, 23,129,234, 45,184,133,
- 49,113, 57, 65,227,160,201,149,212, 56,220, 45,108,132, 61, 84,154,165,176,158, 5,103,167, 57,179,155,140, 34, 88,114,228,248,
- 96,201,119,239,219, 74,224,195, 73, 25,215,199,112,104,226,187,124,209,177,237, 39, 62, 80,200, 35,212,173, 9, 33,163,237, 38,
- 25,174, 50, 75,205, 12,199,129,156,225,249,211,107,242, 16, 41,181, 35,213, 61, 83, 78,164,161,199,249,150, 88,197, 78,245,238,
-203,121,190,212,155,176,176, 47, 69,112,238, 31,122,228,212, 58,124, 1, 58, 96,223,103,246, 99, 33,212, 74, 74, 91,134, 60,224,
- 85, 9, 42,244, 53, 83,247, 17, 41, 66,242,150, 54, 39,201,236,152, 40,228, 50,145,231,231,114, 27, 32,180, 29,151,227,142,218,
-100,106, 30,208, 1, 98, 76,136, 4,210,100,231, 46, 41,145, 40,116, 62, 32, 76,134,235,142,166,119,210,154, 16,239, 72, 37, 26,
- 34, 61, 69,134,151, 31, 49,108, 54,248,241,154,214, 79, 20,237,240, 57,102,212,123,235, 84,115, 70,164,204,105,107,206,184,233,
- 86,214, 98, 9,227, 50,195, 71, 12,241, 88, 74, 34, 23, 67,200,170, 19,106, 21, 50,182, 3,114, 98, 55,106, 53,137,174, 21, 76,
- 58,163, 81, 42, 72, 99,221,171, 20,193,169,146, 71,163,111, 73,149, 47, 15, 19, 75,111,177, 32,150, 89,225,253,213,232,215, 80,
-230,156,247, 82, 80,149,153, 60,107, 22, 13,235,252, 5, 98, 52,230,122,245, 38,153, 85,211, 9,136,193,227, 77,157, 92,204,170,
-231, 10,212, 49, 83, 22,214,173,230, 10,206, 21,219, 93,204,118, 56,106, 66,179,146,213,147,106, 66,213, 70,235, 49,154,229,162,
- 36,179,151, 53,141,199,205, 74,123,201, 54, 41,240,206, 94, 95, 46,153,148,220,108,197,145,121, 79, 89,201, 67, 33, 43, 52,173,
-101,199,231,152,237, 53,120,172,178, 37,152,175,210,101,250,105,132, 92,230,104, 84, 3,247,212,155,209,180,128,115,206, 72,248,
-206,124,147,204, 95,179, 17,166, 55, 76,110,193, 40, 90,126, 38,112, 80, 8, 93,103,162, 73, 53,159,126,137,118,129,218,228,193,
-118,154, 86, 72,153,178, 69,138, 35, 52,142,253,245,196, 24, 7, 99,146, 75,203,230,250,140,159,252,244,207,121,247,205,119,185,
-222,236, 88,180, 13,119, 31,222,229,246,235, 39,156,159,126,196, 95,252,213, 79,216,236, 6,124,104,249,205,111,125,143,211,211,
- 43,174, 46, 94,242,214,219, 15,248,237, 31,255,136,225,122,207, 31,255,249,159,243,224,225,215,249,205,239,253, 22,169, 76,236,
-119, 23,180,186, 36,229,204,182,159,104,221,146, 34, 27,254,226, 79,254, 53,164,107,126,253,233,199,168, 26,124,232,229,213, 57,
-183,142,142,249,222,247,190,207,225,193,154,131,147, 53,235,238,136,131,197,130,148, 19, 46,172, 24,114,207,148,108, 18,228, 92,
-135, 91, 37, 22,165,179, 81,189,154,226,186, 19,199,113,179,102, 20,240,226,201,110,132, 90,104,154, 53,228,196,102,184,226,234,
-229, 57, 93,211,225,124,195,127,248,247,127,205,227,211, 51,203,110, 78,243, 14,251, 6, 92, 36, 66, 8,128,120, 94,156, 95,177,
-221, 12, 28,174, 22, 76, 2, 34,142,182, 21,198,169,208,185, 76,241, 11, 38, 28,161,102,246,151,123, 54,215, 91,139, 44,118, 95,
-146,229, 52,195, 91,111,156,240,245,175,127,131,214, 47,249,236,241,103,188,120,254,130,253, 56,226,253, 1,161,129, 97,234,185,
-188,190,160, 31, 19,200,158,174,109, 8, 65, 9,174, 49,204, 44,153,160, 30,117,130,171,198,251, 44,106,250,146,235, 97,203,184,
-157, 8,234,216,111,183,168, 11,236,211,104,227,236,164,243,207, 18,216,109, 55,188,118,116,155,182,105,240,113,100,189,128,191,
-248,217, 19, 84,148,127,241,207,255, 25,255,228, 15,255,115, 54,209,113,121,158,184,125,187,130, 54, 44,143,142,184,216, 77, 48,
-153,176, 48, 21,197, 57,235,144,107,182, 67,216,114, 17, 44,153,175, 96, 8, 88,165, 5, 45,134,125,214,121, 20,174,102,239,116,
- 40, 37,203,236, 10, 41, 84,211,247,218, 4,178,154,149, 13, 47,104,227,208, 84,172, 64,106, 90,170, 10,113, 24,216, 93,188, 96,
-189,238,184,220, 95,115,107,189,160,241, 13,113, 42, 4, 28, 69, 51,148,136,243, 13, 49, 22,187,175, 75, 36,168, 53, 4, 82, 35,
-146,156, 77,227, 38, 40, 62,209, 52, 38, 64,141,217, 26,147, 80, 27,138, 14,182, 40, 46,149, 68, 52, 25, 80,204, 56,233, 40, 49,
-205, 2, 75, 11,195,137, 78,240, 73,209,198,172, 92,217, 9,109,105,136, 85,153,114,207,241,193, 61, 78, 14, 26,220, 45,120,250,
- 28, 86,141,112,176, 92,217, 51, 4,199, 15,190,182,102,117, 0, 61,240,211,124, 76,222, 79, 92,215,200,126, 24,168,186,226,240,
-193, 93, 74, 7,155,139, 53,233,233, 57,253,238,154,212, 7, 66,215,178,159, 22, 76, 79,182,212, 56, 17,251, 11,214, 10,126, 92,
-146,251,129, 86, 21, 73, 7, 76, 23, 80,246, 19,135,157,178,242, 38, 92, 67, 45, 17,141,185,211,189,232, 19,187,237,134,158, 17,
-175, 45,173,111, 95,169,203,151, 2,165,133, 67,129,209,195, 54, 24,175,191, 30,136, 5,172,180,129,183, 23,112, 48, 39,119,126,
-210, 6,238, 72, 96, 61,135,200,108,142, 14,136,143,159, 18,115,196, 83,184,170,202,123, 87,214, 60,148,169,208,140,123, 94,191,
-119,203, 10, 40,224,252,108, 71,117,153,241, 96, 69, 43,194,102,152, 56, 64,224,168,125, 69,198, 99, 42,132,133,137,167, 5,168,
-227,200,126,191,195,209,130, 36,212,239, 16, 42,177, 86,106,177,107, 55, 84,161, 76,149, 41, 23,132, 72,174, 25,149,130, 47,102,
-229, 83,231,169, 36, 8,158,178, 51,129, 97,174,197, 24, 44, 5,179, 60,183,133,210,239,236, 62,208,192, 56, 88, 46,138,243, 74,
-156,122,112,138,215, 14,167, 74,146, 17, 73,158,235,101,199,211,180,224,250,122, 75,222,143, 36, 41, 68,153,179, 45,140,241,110,
-129, 37,168, 81,171, 12, 32, 99,213,206, 13,181, 73,103, 27, 77, 44, 51,208,161,216, 97,219,168,169,205,115,170,243, 46,220,118,
-222, 69, 44, 67,221, 20,171, 38, 42,171, 26,240, 70, 11,158,225, 16, 74,150,108,110,172,106,126, 95, 74, 65,107,166,168, 80, 75,
- 50,206,112, 53, 58,189,237,125,205, 55, 30,163, 5, 93,136, 86,202, 76,220,210,249, 97, 35,181, 82,113, 84,175,120,197, 10,148,
-108,118, 56,117,138,243, 30, 41,201,184,209, 50,127,255,217,254,162,165, 48,206,166,198,234,103,104, 5,118, 0,203,156,156,229,
- 21,139, 2,173,224,165, 34,165,226, 26,219,145, 57, 4, 87,178, 41, 23, 69, 8,193,160, 44, 54, 27,168, 72,201,104,205,136, 83,
- 75,154,147,108, 55,182,179,159,183, 98,170,248,166, 89,144,242,100, 7,119, 18,188,122, 60,130, 52,129,215, 94,191,205,147, 71,
-167, 20, 23,230,177,134,249,201,133, 74, 19, 26,144, 66,117,134,230,144,108,201, 85,181,232,171, 11,124, 63, 76, 76,217,212,149,
- 54,218, 53,200, 79, 46,217, 30,144, 2, 82, 12,207, 91,106,166, 76, 25,130, 29, 62, 37, 89,241, 33, 57, 83,124, 33, 84,143,247,
-102, 13, 44,147,165, 9, 5, 31,184, 58,251, 59,254,253,147,247,200,213,113,114,114,143, 91,143,111,115,252,225, 9,236, 30,243,
-249,233, 11,112,202,118,215,179,233,123,226,184, 71, 27, 3,122,248,101,195,254,244,140,102,185,100,181, 56, 96,247, 98, 79,179,
-106, 57, 56,186, 79,231,148,234,225,120, 95,248,236,163,159,243,215, 63,249,119,164,152,120,112,247, 46, 95,123,248, 53, 46,118,
- 59,250,221,142,203,231, 47,249,246,239,125,155,119,111, 31,205, 5, 85, 96, 26, 71,226,100,116,193,169,238,168, 37,226,252, 18,
- 23, 28,244, 17,246, 38,222,112, 85,137, 84,198,201,147,202,100,193, 21,181, 18,217, 81, 70, 72, 57,145, 83,161,161,165,115, 11,
-186,119, 30, 82,122, 37,141,133,251,111, 60,228,217,203,231,148,120,131, 63, 54, 12,113,227,213, 64, 73, 85,240, 8,219,205,200,
-227,211, 83,190,251, 27,223,192,149, 72, 86, 71, 85, 79,219, 8, 37, 37, 10,189,141,163,219, 5,205,193,138,224, 3, 99, 76, 86,
-120,214,104, 35, 63, 17,170, 76,108, 46,159,115,112,116, 11,127,250,156,146, 42,227, 4,141,115,140,215,123,222,123,255,175,233,
-119, 59,186,102,133,119, 66, 27, 26, 98,206, 44,194,130, 84, 19,168, 57, 92,212, 89, 17,127, 51,169,147, 2,211, 16,121,114,241,
-130, 69,219,112,169,158, 48, 89, 10, 93, 33, 17,240, 44, 87,135, 44,252,138, 88,119,236,227,196,237,147,135, 60,125,254, 25,103,
-231,151, 92, 95,111,248,195,223,253, 49, 63,254,237,223,229,241,197,192,139,139,196,237,131, 53,207, 47, 35,103,151, 91,179, 68,
-169,162, 77, 99,221,149,155,241,209, 89, 64,146,105, 6,102,196, 50,234, 13,237, 43, 9,215, 40, 41, 87, 74,157, 32, 42,190, 58,
- 34,160,206,174, 73,102,167, 65, 86,197,205,216,106,193, 50, 25,100,126, 46,213, 50, 39, 47,138,226,178, 13,199,130,180,214, 60,
-148,145,237,217, 57,187,151,158,187,175,221,101,213,117,100, 73,148,212,216, 97,220, 85,202,212, 82,203, 30,113,142, 92,213,104,
-138, 98,254,242,220, 79, 56,241, 72,105,104,156, 35,107, 38, 39, 71,169,137,212, 79,248,197, 44,254,242,134,122, 19, 58,147,114,
-167, 72,246, 66,141,149,126,215, 67,240,132, 54, 19,147, 53, 92,193, 41,211, 24, 25,171, 18, 22, 29,177,122,214,206,115,112,228,
-104, 61, 28,118,149,243,150, 89, 64,156,105,146,190, 58, 92,125,129, 54,103,218, 69, 32,123,129,236,105,218, 53,223,127, 29, 66,
-128,159,138,227,243,218, 49,198,194, 80, 11,199,183, 86,124,235, 91,239,176, 95, 42,143, 79, 43,227,163,150,151,131,121,198,251,
-113,226,200,119,148,199,149,161, 20,246,155, 43,142,218, 74,188, 56, 98, 32,147,210,128, 95, 31, 67,107, 62,115,237, 13,115, 90,
-118,133,208, 65,219, 52,175,188,227,185,192, 90,173, 35, 30,128, 58, 21,110, 32,226, 2, 44, 4, 86, 95,230,170,240,154,179,168,
-213,155,224,149,133, 19,134,168,148, 60,145,170,242,206,253,215,120,251,238, 1, 21,216, 20, 24,167,134,182, 53, 57,242, 0, 12,
-173,227,160,245,100,175,108, 10, 60,155, 10, 23,227,200,129, 4, 58, 39,244,165,176,189,220, 49, 29,175,112,234,232,119,153,221,
-243,151,104,204,140,227, 14,173, 59,234, 14, 70, 25, 81, 18,101, 80,114,134, 36, 61,121,178,226, 83,147, 37,178, 77, 82, 24,117,
- 66,213, 83,114,162,248, 21,251, 84, 40,113,162, 58,227,177, 36, 87, 64, 91, 36,101,107,148,178,195,137, 80,235, 96,114, 7,177,
-176, 44,117, 70,194,175, 89,136,101, 36,150, 76, 39,137,175,223,123,141,251, 95,255, 14, 79,246,231,208,180,108, 46,182,196, 33,
-226,115, 49,128,193,124,251,204,108,236, 57,155, 91, 76,224, 83,196,225,102, 49,157,204, 33, 30,222,153,162,187,148, 74,158,199,
-230,130, 9, 29, 10,160,115,234,145,136,224,155, 57,189,165, 96, 0, 22,177,145, 90, 85,190,140,122, 85, 49,142,110,149,121,132,
-236,236,208,159, 11, 13, 41,216, 14, 78, 50, 34, 30, 39,197,118,239,197, 70,219, 41,153,184,201, 32, 18,106,202,200, 89,200, 84,
-102,136, 74, 81, 71,171, 51,201,170, 22,219, 87,207, 53,217, 92,202, 80,156,129,101, 40,101, 30,135,151, 89,244,102,135,112, 64,
-168, 89, 81,167, 84, 73,136, 42, 83,129, 34, 9,193, 58,231,226, 20,173,102,193,139,213, 66, 81,156, 73,160,201,117, 78, 66,104,
-117,246,220, 87,242,208, 81,188, 69,241,149, 41,145,130,117,249,157,243, 56, 15, 57,101,178, 84, 83,168, 55, 13,165, 86, 90,223,
-224,212,186, 26,212,148,178, 94,157, 69, 51, 86, 59, 80,166, 60,204,239,149, 35,206,175, 35,204,138,216,251, 15,239, 16,199, 29,
-155,171,173,137,117,164,188, 18,102, 57,167,248,106, 74,255, 44, 6,103,169, 53, 19,199, 72,201,149,140, 9, 7,133,202, 66, 90,
- 82,129, 49, 78, 38,176,186, 9, 42,201,133,111,191,249,128,232,170,229, 14,239, 71,174,207, 62,225,236,139,247,200,100, 98, 76,
-196, 34,108,246,123,210,144, 25,246,189, 21, 77,190,161, 76, 19, 79, 94, 60,165,115, 11,154,101,195, 85,127,205,129, 91, 19,188,
-121,248,217,246,252,236, 47,255,152,247,223,251, 9,221,250,128,119,191,245,155,220,191,119,155, 85,187, 96, 36,195,188,159,109,
- 69, 72,251, 13,213,205, 80, 30, 5,100, 66, 27,235,232,106,118,248, 82,241, 37,210, 75,143,182, 74, 78,222,146,163,170,199,231,
-140,180,158, 65, 18,205, 60,109,202, 81, 77,120, 88, 3,169,169,228, 26,113,251, 53, 83,158, 32, 13,156, 28, 31,179, 90, 44,185,
- 28,174,205,246, 41,157,221,236,222,252,188, 57, 21, 35,196, 21,229,244,217, 11,190,246,238,219, 52,139,142,101, 50, 27, 26,193,
-155,245,209, 9,173, 91,178, 75, 59, 62,249,228, 67, 92, 80,150,190,101,138,211,124, 95,217,114,179,223, 12,156,215,167,232,242,
- 53,206, 94,156, 18,188, 35,172, 86, 76, 62,209,167, 43, 74, 74, 52,221, 18, 77, 54,125,152,146,165, 36, 86,151,145,234, 80,245,
-115, 78,128, 67,106, 33,180, 13,205,210,163, 53, 16,251,202,230,106,203,209,131,251,220, 90, 20,118,195,149, 77,124, 66,224,246,
-201, 29,214,221, 33,139,176,164,234, 29,174, 54, 27, 98,222,224, 59,229,244,124, 36,180, 75,220,250, 14, 31, 60, 27,232,251,202,
-242,176,165,184,196,126, 19,249,232,195, 79, 56, 63,125, 66,144, 5,109,104,153,246, 91, 60,158, 50, 79,177, 84,133,164, 25, 71,
- 32,168, 89, 41,197, 7,131,135,212,108,227,243, 50,119,187, 58, 71, 81, 85,197,221, 68, 30,123,161,200, 92, 28,171, 77,175,124,
-177,112, 38, 81, 71,174,213,208,181,185, 48,185, 9, 31, 86,136, 23,250, 24, 41,201,177, 92, 29,240,236,217,231,228,184,229,193,
-155,239, 32,190,101, 44, 61, 94, 50,235, 81,153,234, 22, 45, 5, 87,132,118,225, 76,184,234,140,165,161, 98, 19, 56,117,158,177,
- 79,176,244,224, 19,154, 2,117,236,169,213, 35,221, 2,156, 39,110,118, 56, 95,112,174, 18,197,209, 21, 40, 93, 69,119, 86,219,
-148, 58,143,221, 9,198,188,200, 66, 70, 88, 23,200, 37, 18,100, 98, 56, 27,105,155, 14,223, 79,232,120,141,107, 3, 83,204, 4,
- 89,224,111, 2, 88, 34,108,135, 9,105,122,155, 20,142,153,197,218,219,212, 8, 8, 61, 76,195,134,181,131, 73, 35, 75,241, 60,
- 88, 43,180,112,242,134,240, 41,183, 56,188, 15, 23,123,232,158, 31,179,174,176,126, 8,245,218, 49,196, 59,236, 67, 98,240,142,
- 52, 64, 26, 29,191,124, 33,248, 45,184, 17,174, 79, 47, 41, 83,194,141,142,112, 80,137,251,129,221,254,128, 18,224,250, 60,114,
-103, 33,184,198,211, 85,216, 76, 5,191, 54,127,187,204,193, 45,175,130, 88,248, 42, 2,123,166,189,109, 51,101,234, 25, 98,162,
-115,129,195,182, 53, 95,248,188, 27, 63,240,238, 85,246,122, 11,212,163,142, 35,247,229,247,240,183,151,120, 89,176, 84,211, 61,
-105,113,220, 90, 29, 16,156,177,242,179,119,196,118, 77, 2,166, 9,100, 40, 72,201, 20, 63,144, 82,166,209,134, 82, 50, 83,201,
- 52,174,144,138, 67, 67, 67,142, 19, 99, 26,105,154, 96, 48,177, 82,241,174,101, 31, 71,132, 72, 77,137,154, 21,167, 45,217, 7,
-116,200,175,152, 32,177, 68,164,117,184,201, 56,214,105,156, 8, 44,208, 38,146,226, 64,138,166, 91,234,180,114,188, 88, 81,115,
-203,176,217, 49, 93,101, 22, 65,145,168,120,145,106, 62,229, 58,139, 74,139, 29,160,182,153, 53,162, 91,205,182, 7, 55, 34,156,
- 9,118, 68,103,124,163, 51,186, 91, 81,161,117,166,108,207, 89,208, 96,227, 94, 43,187,188, 89,162, 80, 68,102,183,123,181,129,
- 62,115, 1, 33,179, 81,165,148,155,138,218,200,116,213,155,159,216, 94,178, 67,181, 34,243,190,222,196, 53,134,149,208, 57, 57,
-174, 80,144, 44,224,234,171, 37, 74,214, 74,115,147,192, 53,127,224,200, 77,172,171,179, 78,124,182,207,136, 84,136,133, 70,148,
-172, 54, 5,168, 69,230, 14, 54,162, 26,108,234,224, 61, 90,156,141,251, 75,196, 55, 22,110, 83,138,173, 34, 50,197,178,190,181,
- 82,147,165,205,153, 96,207,196,108,169, 26, 46,182,250, 3,222,122,231,247,240, 77,226,239,254,230,207,184,120,121,137,184, 64,
-101,228, 96,209,161,173, 18, 92, 71,163,152, 23,150,138,119,149,253,126,160, 93, 29,216,103, 37,133, 58,175, 66, 92, 51,103,200,
- 39,179,177,184, 57,187,190, 74,161,122,177,253,190, 20, 94,187,123,143,131,182,229,195,143,254,142,167,167,103,102,205,153,119,
- 73,165, 20, 98,132,174,179, 44,245,146,226,172,157,144, 25, 29,107, 65, 56,109,112,168,247,166, 38,142,150,125,174,222,196, 79,
- 57,101,198, 10, 93,215,178, 90, 46, 89,189,222,176, 88, 31, 50,142, 3,207, 47,207,249,244,243, 71,228,253,196,238,234,138,253,
-230,138, 49, 71, 40,137, 60,101,198,201, 49,198,196,227, 39,143,217,110,255,152,110,217,113,116,114,196,122,125, 7,114,195,139,
- 79,254,150,245, 58,241,214, 59,247,216, 85,207,215,223,126,135, 92,138,133,241,212, 9,117,149, 16, 58, 38,122,234, 62,145, 92,
- 33, 84,123,194,169, 40,226, 61,162, 35,163, 78,228,108,157, 45,206, 96, 33, 49, 43, 73, 28,190, 25,144,186,160,137,217, 82,151,
- 50,100,117,132,133, 71,162, 35,230,200,212,155,237, 50,141, 47, 72, 2, 45, 5,215, 40,119, 78,110,115,126,117,101,197,239,236,
-234, 72, 41,207,112, 32,131, 53, 5, 47,236,118, 59,174, 95,158,113,255,225, 27, 84, 31,208, 38, 19,175, 77,211,208,248, 64,140,
- 61, 31,126,248, 11, 94,190,220,242,221, 31,124,155,243,203, 51, 62,126,255, 9,136,117,226,177, 86, 35,214,237,182, 60,254,228,
- 9,231,231,103,124,243,155, 63, 48,239,125,222,225,180,163,113, 29, 99,156, 44,108,137, 66, 42,133,198, 57, 22,190, 35, 57,101,
- 24,122, 84,188, 21,242,206, 17, 90,103,225, 65,126, 73,234, 18,155,235, 29, 53, 43,111,188,243, 53, 62,252,245,207,152,166,137,
-245,162,227,232,214,235,172,156,103, 26,133, 84, 39,106,220,114,117,117, 74,173, 45, 77,112,220, 57, 62, 33,214, 21, 63,253,249,
- 99,126,244,221,135, 44, 27, 71,154, 18, 49, 87,154,166, 35,105,162,164,145,133, 91, 48,104, 75,140, 3,162, 13, 94, 32,214,140,
-102, 33,107,180, 93,191, 10, 82, 35,222,130,202,204,230,151,203, 28,163, 59,135, 71, 85, 33, 91, 58, 20,165, 26, 23,226,149,221,
- 21, 69,170,218,180,174,164, 87,154,161, 34,144,134,145,136,167,109, 23,164,105, 98,179,221,242,236,236, 11,134, 97, 64,106,225,
-122,115,197,201,157,123,248, 82,104,107,107, 32,153, 96, 20, 72, 21, 19,169, 74, 88,144,179,113,188, 53,168,173,173, 72, 70,197,
-235, 33,122,179,227, 45, 23, 45, 49, 9, 68,168,236,113,183, 2,186,201, 76,219, 76,183,240,168,116,248, 49,227,187, 21,125, 30,
-152,114,101,204, 3, 77, 11,117, 12,166,121,105, 97, 72, 59,196, 11, 31, 95,158,242, 71,127,246,167,172,151, 7,244,211,142,234,
- 11,135, 93,197, 47, 90,252, 65,229,250,209, 33,171, 91, 13,211, 21,232,112,197,164, 61,154, 45,240,201,215, 89,184,164,160, 41,
-227,210,192,245, 46, 50,101,101,237, 23,175, 14,211,221, 57,248, 30,242, 30,150, 51, 71,254,155,247,225, 96, 13,251, 37,252,252,
-210,209,174, 28, 59,129,224, 61,183, 15, 23, 60,120,199,146, 60,207, 7,120,118,218,210, 39, 5, 34,161,233,184,208,142,231,103,
-208, 42,140,207,119,236,229,154,208,182,144,161, 31, 51,233,246, 9,235,201,163,185,224,227,132, 44, 59,152,199,239,229, 43, 75,
-240, 10,244,227, 72, 22,203, 60,200,121,100,135,114, 58,115,227, 47, 98,101, 85,235,255, 71,213,155,244, 90,146,101, 87,122,223,
-233,204,236,222,251, 90,111,194, 61, 60,186,108,152, 73, 38,123, 17, 44, 21, 33, 86, 73, 66, 17,172, 65,141, 36, 64, 3, 13, 4,
- 1,250, 5,130,254,129,126,136, 0, 13, 53,144, 80, 40,112, 34, 65, 20, 68,128,162,216, 21,197,166,178, 97, 50,155,136,140, 8,
-143,240,240,231,175,191,141,153,157,102,111, 13,182, 61, 79,210,103,142,231,254,224,254,238,189,118,206, 94,123,173,111,113,178,
-100,228, 38,133,235, 81, 25, 54,142,149,249,218,216,205,202, 42,194,208, 25, 62,118, 47,112,228,221,219, 61,251,208,195,119,157,
-227,238,234, 64,170,133,226, 60,154, 64, 71, 27,180,234, 42, 80,196,170,121,179,218, 96,218, 90, 70, 36, 89,245,106,153,169,110,
-137, 52,143,119, 86, 48,148, 60, 46, 27,133, 53,151,134,103,199, 76,195,139, 82, 17, 59, 43, 31, 60, 8,210,240,157,167, 49,225,
-125, 36,197, 64,139, 80,179,153, 50, 43, 43,246, 99, 69,198, 61, 81, 15,212, 10,173,138, 93, 96,189,154, 33, 67,151,219,127, 21,
- 49,132,101, 48,166,183, 91,246, 82,170, 15,183, 98, 3,216,187,197, 32,167,206, 45,211, 46,180, 32,230,208,109, 75,130,205,219,
-196, 44, 14, 35,251, 16, 44, 87, 24,172, 1,238, 65, 26, 43,181,226,147,167, 75,145, 86,204,244,214, 57,135,139,158, 82,108, 29,
-128,179,138, 83,117,230,128,181, 12,181, 77, 28, 86,237,103,153,251, 34,133,232,130, 69,220, 22,255,121, 19, 79,114,145,185, 25,
-222,180,143,246,131,149, 38, 72,224,237,116,238,154,153, 69, 52, 26,104, 95, 69,209, 16, 9, 33, 90, 76, 69, 21,231,132, 60, 29,
-172, 28, 4,243, 18,200, 82,145,169, 77,168, 45, 35,222,209,169,195,137,153,203, 4,107,120, 27,134,206,138,102, 4,130,119,108,
- 78, 62,224,195,247,222,225, 47,254,223, 63,224,205,197, 43,226, 58, 81,114,161,214,204, 56, 77,200,178,246,240, 78,241, 49, 49,
- 12, 29,221, 16, 25,139,165, 9,124,114,102,244,202, 66, 45, 19,206, 37,195, 0,133,133,103,143, 93,174,188, 70, 82,124, 40, 46,
- 80, 2,141,208, 91,107, 94,109,213, 46, 51,205,227,172, 13,131, 24,236,147, 84,107,165,104, 69,170, 41, 32,210,154, 33, 63,189,
-167,235,142,112, 41, 81,231,217,160, 55, 34,116, 62,130, 58,166,170,144, 60,174, 52,170, 54,242, 10,230,187, 27, 20, 56, 89, 31,
-211,187,158,189, 76,148, 42,236,199,131,237, 66,241, 12,177,167,182,153,251,155, 59,182,247,183,108,119,247,120, 41,116,125,111,
-106,141, 83,186,222,243, 95,252,243,223,225, 7, 63,120, 69, 81,165, 4,107, 20,156,165,226,131, 80,130,160,108,169,186,161,118,
- 17,234, 76,150,201,120, 12,205,192, 70,218, 59,220,193, 17,164, 32,195, 98, 84,241,213, 60, 8,165, 18,139, 48,145,217, 77, 19,
-235,245,198,222,175,169,209,228, 64,171,130, 87, 75,133, 52, 10,165, 54,138,203, 84,159,136, 62,240,254, 7, 31,241,242,171,175,
-216,141, 19,210, 50,170, 86,190,128,115, 56,181, 66, 11, 23,149,185, 53,190,250,242,138,247, 62,120,223,228,244,217,140,152,104,
-225,230,238,150,139,215, 23,188,252,244, 13,171,254,148,155,219, 43,238,238,182,248,104, 43, 34,177,155, 47,247,119, 51, 59, 55,
-243,213, 87,175,121,246,244, 93,158, 61,127,135, 82,238,109, 90,124,104, 8,116, 74, 65,105,173, 25,116,195, 59,102,133,163,126,
-197, 62,108,237,243,232, 6, 82,231,112,178,180, 85,169, 88,164,235,176,227,254,230,138,213,201, 49,201, 89,158, 23, 63,176,189,
-188,230, 46,192,243,179,167,104, 19,238,119,183, 92, 92,188, 65,138,178, 90, 69,158,188,251, 62,234,214,252,229,159,254, 9, 47,
- 30,255, 27, 54, 71, 3,227, 44,140, 99,225,247,126,247,183,249,226,179, 47,248, 63,255,232,207,121,242,104,195, 48,156,113, 91,
- 94,227,100,196,165,136,199, 62,187, 1, 65,116,230,193,141, 43,120,154, 20,235,151,247,201,198,142, 5, 86,133,179, 67, 58, 46,
- 23, 55,117,118,184,139, 19, 40,153, 52, 44,207, 29, 91, 96,145,165, 46,101, 32,214, 29, 97, 6, 93, 71,149,204,201,201, 35,118,
-183, 55,140,234,185,185,190,225,241,201, 99,162,218,224,210,130,210,187, 72,105,149,185,143,132,170,196,108, 37, 44,120,144, 44,
- 28,173,122,112,145,195,178, 74,136,205,180,199, 26, 71,106,141,184,154,241, 33, 17,103,161, 13,158,144,133, 62, 4, 91,215,100,
- 3,151,212,185,216,186, 65, 61, 58,218,243, 81,189,173, 95,102, 73,248,166, 28,194,196, 79, 94,189,124,107,232,236,210, 17, 83,
-222,114, 52, 28,177,234,182,252,237,247, 62,229,172, 95, 49, 83,153,226,204,170,115, 4,231,233,226, 64,127,186,230,101,121,194,
-112,222,115,121,177,101,110, 19, 41,120,158, 36,199,102,243,115,124,220,174, 45, 54,154, 27, 8, 27,115,143,135,188, 24,207,156,
-153,195, 66,132, 52,152, 93, 73, 70,216,240,243,164,214, 92, 39,154,102,139, 72,198, 53,191,246,222, 49,195,145,129,103, 62,110,
- 27,106,173, 72,140,228, 67,163,239,214,156, 62, 25, 80,129,251,157,103,186,205,148, 38,172,135,129,210,132, 58, 54,198,231, 61,
- 93, 15,211, 4,219,171, 29, 99, 22,102, 2,125, 84,200, 5,175,182,171,191,154,234, 98,109,183, 67,253, 78, 96,159,133,233, 40,
-176, 90,246,253,219,172,140,209, 14,241, 14,152,170, 25,182,255, 49, 93,110, 55,102,170, 28,104,249, 30,137, 21,223, 2, 82, 60,
-234, 34, 77, 51, 53,239,237, 98,169, 75, 33,129,243,198,209,243,214,195, 33,243,206, 64, 70,125,131, 18,112,213, 67,115, 84,215,
-240,209,129, 68, 35,148,138, 53,181,165, 37,230,157,165,226,189,189, 39,231, 90,105,197,250, 87,156, 42,190, 57,171, 11, 22,161,
-220,191,166,228,107,130,243,184, 99,101,158, 51, 49, 46,220,114, 31, 28, 30,121,219, 46,165,250,208, 16,111,153, 79, 17, 12,110,
-162,214,134, 67, 52,131,153,119, 15,252,117, 53,233,252,161,103, 55, 6,147,187, 16, 44,138,106, 7, 53,242,208,209,103, 15, 16,
-145,182, 96, 74, 61,218, 44, 1,170, 75,102,217, 34, 22, 98, 56, 87,111,230, 23,105,182,103, 15,186,248,188,117,201, 0, 59,219,
-157,136, 46,123,153,230, 23, 40,142,117,166,107,131, 66, 37, 44,140,233,210,108,119,172,222, 19, 48,222,188,226,241,157,117,227,
-206,181, 17,163,153,244,188, 43,132,152,136,222,227,170,163,136, 26,251,222, 47, 4, 60,175,182, 83,137,138,111,205,218,124, 8,
-140, 37,211, 13, 61,130, 16, 92,162, 11,150, 51,183,142, 92,143, 36,193,197,192, 87,175, 62,225,243,175,126,134, 6,123,193,189,
- 86,188, 58,236, 17, 4, 69, 43,181, 54, 92,173,204,211,104,198, 68,103, 43,141,182,180,188,185, 16,233,215,107,144,182, 0,112,
-172,181, 14,241,111, 9,106, 34, 74, 45, 19,190,235,241,209, 86, 15,211,158, 41,176, 97, 0, 0, 32, 0, 73, 68, 65, 84,156,173,
-113,110,233,255, 54,208, 76,192,133,184, 60, 48, 45,165,192,146,249,150, 38, 84, 81, 86,209,122,184,107, 41, 22, 45,108,213,252,
- 19,181, 80, 90, 52, 66,112,104,116, 46,209,212,209,122,187,161, 90, 15,179, 48,244,137,118,173, 28,246, 19,151,247,123,114,201,
-160,142,216, 65,157, 38,166, 60, 47, 17, 59,123, 13,134,110, 0,175,244, 67, 32,143,153, 79, 62,189,230,205,205, 53,231, 47,190,
-129,215,136,186,209, 98, 99,234,209, 41, 34,189, 57,202,141,159, 29,152, 0,231,146,213,243, 78, 5, 41,222,114,157,206, 35,213,
- 96, 70, 46,130,100, 15,117,102,114,129,226, 10,131, 11, 8, 5,239, 3,117, 55,211, 90, 69, 82, 68,165,210,147,168, 99,197, 31,
- 41,238,222,145,186,136, 43,158, 46, 6, 30,157, 61,230,238,238, 83, 75, 18,184, 72,197, 89, 76,239,161, 96, 68, 5,209,192,155,
-235, 91,238,111, 15,116,157,242,249,167, 95,240,234,242,150,105,222,145,107, 35, 52,168, 85,185,111, 91,174, 63,190,163,239, 61,
- 67,244,204,139,132,142,194,235,139, 59,130,119,156, 29,159,242,157, 95,249,117,162,141,117,168,243, 12,195,176, 64, 92,170,125,
- 46,213,222, 11,173, 52,238,239,175,240, 49,210, 13, 61,135,195, 30,197, 82, 13,157, 55,249,144, 24, 89,187, 30,183, 89,115,125,
-119, 77,119,179, 66,187,129,118,152,216,239,111, 56,108, 95,241,248,201,123,172,143, 79,144,160,156,236,223,240,179,207, 43, 55,
- 87,151,188,251,236, 29, 78,143,206,233, 54, 43,158, 61, 62,102,142,137,218,224, 48, 22,246,221,129, 15,222, 59,103, 56,219, 48,
-229, 61, 69, 38,214,235,142,253,220, 25,152,196, 27,203,193,208,222,246,217,148, 7,133, 67,100,185, 88,186, 37, 78, 96,209, 82,
-176, 94,117,145, 70, 85, 71, 23, 4,213, 96,208, 42,167,164,206, 47,101, 38,193,214, 85, 14, 58,103,132,201,138,163,180, 76,167,
- 9, 23, 28,211, 97,207,187, 79,158, 83, 30,239,184,217,221,178,219,221,113,117,245,134,199,207,158,113,152, 71, 99, 90, 36, 8,
-126, 96,190,207,132,206,225, 98,161,149,138,224,217,196, 21,227,161,160,110, 34,208, 83,240,116,169,210,212,147,115,160, 39,211,
-130,213, 82,235, 88,112,157,145,246,154, 30,160, 57, 10, 13,169,118,121, 17, 2, 41,118,212, 82, 89,247, 43, 38, 23,168, 89,233,
- 84,113, 73, 9, 27, 40,219,134,151, 74,212, 21,180, 61,206, 21,164, 20,238,101,207,253,148,184, 57, 28, 83,211,140,214, 76, 29,
- 23,213, 18,199,143,227, 21,169,115,120, 34,181,131,195,152, 89, 19,152, 82,227, 71,159,127,193,217,191, 63,102,117,182,230,254,
- 46,211,197,194, 81,119,142,108, 61,227,182,210,142,173, 7, 45, 8,172,131, 69, 31,227, 26,246,163, 29,168,110,209,183,183, 91,
-200,247, 59, 43,177,137,194,209, 38,114,154,126,206, 88,247, 78, 57, 62, 90,211, 13, 43,198,144,121,228, 61, 31, 30,219,215,111,
-142,224, 71,237,132,221, 9,108, 59,112,119,142, 71, 39,129,176,178,153,113, 31,172,210,117, 95,171,109,104,117,197,203,109,162,
-253,180,112, 20, 29,251,219, 59, 78,134,137,246,248,156, 16, 61,119, 83,129,125, 65,211, 99,198, 30, 14, 2,117, 55,114, 52,244,
-156, 46, 46,175, 88,117, 25,146, 22,121, 63, 47, 9,143, 86,168, 78,233, 18,212,221, 68,149, 25,213, 70, 55, 58, 6, 15,217, 59,
-186,185,216, 96,151,108,133, 57, 75,179, 84,213, 92,105,109, 36, 14, 71,184,162,180, 58, 33, 56, 82, 48, 82,105,149,108,175,165,
-122, 90,115, 20,138, 89,164,116,233, 42,105, 66, 71,160,213,106,190, 54, 60,234, 3,163, 10,159,222,122,194,103, 47,217, 93,220,
-216,133,117, 25,160,162,177,150, 23, 89,245,161, 88, 94,151, 6,179, 69, 38,119,218, 12, 67,250, 64, 89,115,186, 72,216, 22,161,
-114, 56,163,192, 45,210,172, 54, 59,217, 91,112, 11, 49,138, 37, 39,109, 6, 21,215, 89,105,137,229,107, 45, 3,158, 22,183,118,
- 91, 14,102,175,214,111,238, 29, 54,117, 99,217,247, 66,123,203,145,215,133,247, 30, 31,148,118, 53,167,186, 41, 4,134,212, 12,
-222,131,216,119, 54, 70,183, 51,160,195, 98, 68,112,222,178,201,193, 47,166,176,166, 84,105, 68,122,188, 66,244, 29,173, 41,196,
-138,136, 21, 80, 24, 47,220, 50,244,210,132,184,180, 73,228,170, 11,154,214, 89, 68, 48,152,121, 48,161, 84,169,144,173,238,181,
-239,143,204, 88, 19, 7,130, 42, 63,249,193,127, 96,206, 51,189,235,233, 26, 22,115, 74, 9, 41, 25, 23, 28,195,176,225,168, 31,
-216,237,183,228, 82,105,109,166, 74, 38,122,111,209, 51,231, 44,182,181,178,106,220, 86,218,226,174, 52, 83,187, 46, 60,237,218,
-172, 21,203,164,122, 97,222,239, 56,236, 71,251,217, 46,209,194,232, 19,222, 57,234, 92, 44, 26,228,140,254, 39, 11, 26, 88,150,
-178,154, 71, 79,223, 97,232,123,110, 14, 35, 42, 98, 56, 97, 49, 92,112, 21, 37, 20, 65, 70,101, 28, 26,209, 39,250,104,170,137,
-180, 30, 52,211, 13,131, 77, 36,181,178,223,239,201,243, 68, 63,116,100, 17, 90,243, 68, 9,212, 90,173, 25,207, 59,166, 90, 9,
-222,177,146, 14,169,141,159,124,114,193,249,233, 19,158, 31, 63,165,239,132,169, 56,202, 44,214,126,164, 29,174,117,228,186,131,
-108,241,196,161,247,100,233, 57,104,198, 57,139,103,105, 16,196,247,182, 22,105, 25,105, 3,149,201,204, 85,170,196,165,120,161,
-228,106, 0,165,102,176, 23,230,138,122, 79,115, 66, 74,142,105,223,232,135,132,155, 70, 66, 72,164,216,243,181,231, 79,121,253,
-250, 75,230,186, 76,189,206, 76,148,242, 16, 25, 21,131,255, 84, 7,243, 60,241,201, 79, 63,231, 39,159,125, 69, 41,178,224,135,
-141, 54,214,245,198,229,238,187, 72,240,129, 67,153,144, 90,237,226,189, 8,145,255,242,183,191,205,217,217, 41,179, 79, 84,129,
-166,129,170,137,251,237, 21, 74,163, 17, 44, 50, 38,205, 90,209,130,163,214,194, 97,127,203, 48,172,129,100,187,104, 53, 53,236,
-176,219, 19,156,176, 62,234,113,226, 25, 15, 7,174,222,124, 69,215,159, 81, 68, 56,236,239, 73,210,248,232,253,196,201,163,158,
-221,221, 72, 31, 87, 60,126,242,152,155,171, 75, 78,143,143,121,255,197, 47,178,122,124,198,127,246,235,207,249,252, 18, 46,111,
- 50, 65,225, 54, 42, 47, 47, 50,241,248, 28,137,129,221,118,203,209,163,199, 28,175, 79,185,219, 95, 35,186, 48,160,213,246,156,
-165, 64, 92,224, 87,110,169, 67,118,203, 20,110,198, 83,187,128, 42,134,135, 86,111,131, 71,195,226,173, 94, 44, 97, 35,210, 32,
- 88,170, 67, 84,169, 44, 81, 80,181, 74, 82,113,137, 76, 33,226, 73,189,231,233,179,119,153,234,129,233,110,100,232, 10,223,254,
-246, 9,223,253,193, 1, 45,130,182,192, 52,142,139,161,184,103, 87,102, 18, 74, 33, 82,139, 91,214, 35,158,135,108,216,202, 15,
-168,116, 52, 49,205, 91,103,104,209, 67,114,212,241, 30,159, 86,184,100, 73,149, 42,129, 86, 21,223, 67,107,158, 12,134,136, 46,
- 13,183,105,196,108, 23, 87,153,109,240,240,222, 83,155, 71,216,177,138,145,232,132,210,238,112, 18,208, 16,153,195,129,208, 60,
-161, 54, 14,140,104,174,120, 13,204, 76,212,173,129,123,194, 96,133, 35, 45, 29, 83,139,242,253,221,103,188,252,242,154,156, 3,
- 18,149,225, 88, 25,220,128,243,142, 97, 72,188,186,248,144,244,253, 99, 52, 42,249,176,229,197,211, 19,220,166, 35,103, 37, 28,
- 31,129,246,111, 91, 4,157, 22,142,142, 35, 49, 58, 78,214,171,133,130, 99, 47,113,112,224,187, 72, 91,106,175,211,240,115,133,
- 96,202, 16, 85, 56,238, 60,253, 26,246,197,241,110,132,163,229,143,116, 43,248,204,121,116,231, 8,181,241,209,243,115,126,237,
- 23, 31,115,171,144, 5,102,247,136,204,158,151, 46,208,178, 82,238, 51,208,179, 59, 64,221, 89, 68,174, 93,101,227, 93,108, 22,
- 37,229,106,199,241,243, 99,226, 58,208,121,184,189, 17,246,183, 55,132,214,131,115,228,125,161,150, 3, 49, 40, 78,109,216,168,
- 4, 36,139,197, 93, 93,165,140,138,214, 70,140,157,149,135, 73, 35, 52,161,230, 25, 41,131, 49, 13,136, 20, 17,212,205, 4,141,
-104,118, 72,155,223,182,146, 58,231, 33, 88,173,171,170,163,204,214, 65, 18, 30,162,231, 14,206,142, 34,167, 31,125,147,250,244,
- 63, 38,125,250, 71,212,241, 43,180, 57,180,118,196,182,180, 20,171, 10, 20, 3, 45,184,133,118,246, 48,241,217,108,101,212,183,
-228,157,177,104,173, 6, 9,109, 98,134,185,106, 55, 97, 23,197,118,243,152,212,137,179,239,221,150, 7, 37,222,211, 17,169,174,
- 48,182, 70, 88, 56,237,226,108, 2, 87,113, 11,113,201, 38,249,234, 45,183,170,106, 17, 42,143,194,130,157, 93,144,221, 40,182,
-251,110,213, 38,250,232,162, 69,197,156, 46, 15,212,102, 53,177, 49,216,102, 64, 11,170,113,145, 40,205,244, 21,156,167, 34,136,
-122,164,121, 98, 90,214, 2,202, 2, 51, 49,156,163,171,101, 81, 86,132,114,176, 78, 31,245, 14,151, 28, 46, 45,146,254,188, 24,
-123,106, 69,124,198, 71,219,255, 87,108,175, 45, 98,230,150,150, 35, 55,229, 13, 35,202,239,254,171,255, 18,157,110,184,120,249,
- 41, 23,187,107,218, 62,147,156, 99,202, 51, 93, 90,243,238,139,175, 81,230, 74,113,194,122,213, 81, 14,247,236, 70,219, 31,111,
-111,111,201,101,102,222,239, 9, 41, 17,213,218,117, 92,236, 24,146, 35, 14,145,104, 68, 13, 90,131, 16, 35,135,237,204,171,235,
-175, 56,140,243, 82,155,106, 44,252,182, 24,228,250, 85, 71,157, 10,201, 5,178,155,200, 98, 81, 70, 71,225,252,236,148, 15, 63,
-248,128,253,110,199,245,229, 27, 84,237,242, 52,137,225,108,115,206, 16,237, 66, 34,181,161, 49,224,170,224,179,210,188, 16, 82,
-207,241,209, 10,180, 33, 90,185,190,186, 68,213,179, 94,173,108,111, 36,176, 58,222,224, 22,122, 88, 80, 37, 58,115,157,167,216,
- 49,183,198,120,125,197,211,211, 99, 82,106,196, 38, 80,204,165, 31,130, 85,232,162,153,228, 18,210, 57,202,220,104, 35,168,223,
-226,219, 66,201,243, 30,239, 19,181, 22, 52,131, 11, 74,174,153,216, 9,213, 43,177, 0, 93,135,115, 61,170,153,185, 20, 36, 91,
-109,102,223, 41,174,154,122,225, 17,164,130,180, 10, 46, 16, 18,132, 42,156, 61, 62,225,228,236,152,139,139, 27,130,139,104, 51,
- 63,132,247, 97, 49,165,217,202,232,116,213, 81,100,207,237,126, 71,109,249,109,124, 16,245,184, 10,197, 21,212, 65, 46, 6,218,
- 96, 89,145,229,170,203, 26,197,243,197, 23,151,108,243,196,253,120,193,106,125,202, 59,239,189,195,246,171, 55,252,195,143,127,
-200, 16, 18, 33, 26,224, 41,134,136,212, 6,209,227,171,167,204,149,174,131,110,112,236,239, 38,220, 16,217,237,183,104,171,244,
-103,199, 86,138, 18,236,130,252,234,213,151, 28, 31,143,172,134,196, 56,205, 12,125,199,212,132,251,221, 87,228, 81,184,122,115,
- 73, 27, 11, 41,245,164,213, 25,117,158,217,143,153,139, 85,199, 92, 42, 83,201,132,213, 0,179, 99,187,207,248,116,204,147,179,
- 39,220,222, 94,115, 38, 14, 93, 15,176, 15, 72,153,205, 72,216, 44,146,134, 83,131, 57,105, 88,218, 32,237,240, 83, 21, 66,234,
-108, 21,164, 51, 8,116,157,169,115,181, 69, 28, 13,159, 30, 12,133,134,167,110, 75,110,220, 59,208, 98,153,117,113,150,140, 8,
-165, 48,105,230,205,254, 13, 77, 10,239, 60,127,198,163, 39,239,242,249,205,207,184,191,203, 28,135,200, 59,231,145, 47, 94,103,
-200, 70, 64,212, 37, 6, 40,116,224, 29, 82, 51,208,112, 30,114,173, 22,177,213, 70, 11, 61,115,155, 80, 25, 41, 17,154, 4,162,
- 76,180,220, 25,239,162,205,108,247,138, 46, 53,104,177, 10,178,244,110,135,169,210,134,138, 52,135,219,139, 65,182,164,167,235,
- 19,161,102, 36,195,224, 6, 14,109,100,231,215,120, 18,154, 71, 58,223,161, 76, 22, 11,214,181,145, 27, 1, 41,133, 89,151,215,
- 85, 29, 67, 31, 24,243,196, 84, 70, 54,125,133,245,128,204,133,157, 87, 90,139,180,172,236,199, 76,159,122,171,204, 13,158, 79,
-190,184, 36,181,142,156, 34,110,206,156,157, 38,178,139,184, 80,120,167, 59, 99,245,151, 39,172, 87,137,203,121,228,254,122, 15,
-100,116,240,124,121,113,205, 7,111,222,103,117, 28,185, 60, 64,189,191,167,239, 3, 49, 58, 60,149,245,170,255,185,244, 93, 45,
- 20, 16, 23,146,169,102,204,108,250, 0,146, 25, 33,207, 35, 99, 30,153,238, 42,143,191,179,226, 60,194,249, 3,227,100,227,121,
-114,116, 76, 26, 76, 70,255, 34,246,188,136,142,167,167,134,208,125, 57,195,237,250,156,211,115, 88, 43, 76,162,220,202, 49,183,
- 41,216,129,175,240,229,181,112,127, 83,168,243,132,228,108, 43, 70, 13,196,180,240, 81, 90, 69, 74,179, 51,200, 53,106,109,230,
- 55,138,142,181,171, 20, 21,178, 42,104,196, 77,107,202,116, 32, 56, 37, 57, 97,148,106, 7,127, 80, 92, 49, 26,168, 11, 44,207,
- 39,131, 77,121,237, 45,230, 24, 65,169,104, 85,124, 23,160, 40,143,186,192,139,103, 79,216,118, 29, 63,165, 49,107,135, 59, 52,
-180,108,137, 34,134,166,244,193, 52, 19,239, 77, 63,113,139,179,188, 25,189,218, 14,115, 75,155,225, 22,200,137, 96,123, 97, 34,
-212, 98,147, 97,203, 14,162,129,102,104,198, 88, 55, 33, 77,233,146,183,134,180, 86,241,170, 4,177,184,155, 15,201, 48,128,205,
- 14,108,231,171,113,191,197,147,107, 70,194, 18,167, 91, 58,241,122,239,200,205,163, 81, 9,106, 89, 63,197, 24,210,120, 43,239,
-112,132,183,107,132,130, 46,135,133, 46, 57,109,171, 23, 85,117, 6,177, 1,198, 34,164,224, 73,189, 69, 92,194,162, 70, 20, 45,
- 20, 13, 48, 54,162, 83,219, 41,170, 25,247,162,235,240,209, 28,183,125, 52, 18, 94,206,141,206,121,138,204,118,201,113,134, 13,
- 84, 81,232, 34,174,122,166,150,233,221,154,169, 8,251,253, 27,158,188,255, 29,190,241,226, 59,188,190,252,156,240,225, 83, 30,
-205,119,236, 14, 59,198,155, 47,217,237,239,216,110,239,249,225, 15,254, 18, 66, 79, 63, 12,188,251,206,135,116,105,224,163,143,
- 62,226,228,241, 11,180,121,238,175, 94,115, 56,188,228,229,203,159,114,183,207,198,211, 70,233,194,128,142,158,236, 11, 81, 29,
-199,167,231, 60,127,239,107, 92, 95,189,230,245,197,119,105,173,129,143,166,142, 96,236,113,154, 80, 75,161, 73, 49, 20,111,215,
-179, 9, 61,130,181, 61,157,159, 63,198, 1,119,119,215,228, 86, 81,167, 28,173, 6,230, 92,120,232,102, 77,206,147,196,147,186,
- 8, 94,169,251, 74,236, 55,168, 78,204,101, 98,125,188, 90,170, 20, 43, 87,151,183,244,113, 81,107, 98,164,202, 76, 74,157, 21,
- 34, 52,168, 82,136, 49, 89,126, 25,248,218, 7, 31,113,180,129, 87, 23,215,116,111,222,176,121,244,132,232, 29, 29,142,169,205,
-196,254,200,214, 44,147,162, 67,135,247,129,185, 30,240,173,225, 90,160,174,122, 8,130,211,158,164,149,169, 89, 53,106,244,144,
-178, 73,159, 26, 28, 37,103, 67,229, 54,136, 49, 82,162, 67,154,205,115, 41, 98,105, 0,167,164,100, 81,169, 32,208,166, 66,115,
-129,161, 63,226,189,231, 31,112,115,121,135,122, 83,145, 2,206, 58,222,245, 1,109,220,216,231, 3,251,233,142,103,239,157,176,
-223, 29,184,223,141,111,125, 42,115,110,180, 57, 47, 13,138,102,202, 67,252,146,114,104,139,129, 85,249,238, 39,175,249, 96, 63,
-209,173, 60, 95, 93, 92, 50, 28, 29,243,241, 79,127,204,110,183, 35, 28,157,208, 71,219, 63,139,143,150,227,175,213, 14,250, 6,
- 49, 6, 54,233,152,156, 51,251,195,129, 60, 78,108,134,193, 98,155,234,144, 46,210,175, 55,200,197, 5,215, 87, 95,114,124,124,
-134,247, 3,185, 86, 62,249,241,223,115,124,218,241,222,243,111, 50,214,239,243,249,151,159,162, 8,199,143, 79, 24,245,192, 7,
-231, 79,185,222, 86,123,248, 23, 97,200,149,131, 58,182, 1,230, 61,124,240,225,135,220,222,188, 97, 46,123, 86,199,143,233,135,
- 13,247,119, 35,218,132, 24,226, 66, 2, 52,122,151, 58,195,246,166, 24, 45,107,174,130,171, 70,132, 20,105,120, 31,192, 5,124,
-180,173,121, 67, 44,105,224, 12, 41,236, 66,248,121, 12, 55,152, 31,200, 46, 79, 38,239,231, 37,221,160, 34, 92,223, 92, 65, 83,
-198, 60,227,125,229,250,250,154, 39,155, 39,252,254,127,247, 47,248,163, 63,254, 49,127,252, 39,127, 69,174, 6,137, 74,235,206,
-106,146, 43,164, 96,181, 86, 50, 11, 62,205,120,223, 81,106, 96,156,182, 52, 7, 74, 71,215,172,174,186,230, 29, 42, 7,179,255,
-198, 13, 72,161, 28, 38,186,213,154, 26, 20, 87, 27,222,245, 84,159,209,226,136, 33,209,198, 74,117,158, 20,205,192, 92,197, 90,
- 38,231, 84,169,179,224,100,194, 5, 51,155,214,176,181,232,218, 44,148,148, 9, 58, 16,171,145,243, 93,231,144,168,164, 82, 41,
- 37, 82,107,181, 65,168,120,220, 88, 16, 28,101,156, 0,165,136, 18,130,210,176, 11,191, 31,123,154,236,233, 86, 3,125,115,212,
-216, 56,236, 61, 89, 7, 36, 23,238,227, 30,247,250, 53,174, 21, 98, 50,118, 71,243,208,167,129,191,126,243, 19,126,248,241, 27,
- 54,195, 9, 57, 10,174,220,115,114, 22,232,143, 86,180, 41,177,127,255,107,188,247,193, 57, 93,244, 92, 92, 23,154,142,132,251,
- 19,210, 28,136,147,210,157,252, 28, 21, 51,102,200,101,180,116, 85,239, 57, 57, 30,254, 9, 84, 70,196, 86,138,109, 41, 26, 27,
- 68, 89, 39,255,182, 71,125,173,112,186,129, 71,203, 69, 97,194,241,228, 60,112,244,243,123, 5,211, 20, 9,146,104,135,157, 41,
- 63,169, 50,141, 86,214, 20,235,100,134, 78,159, 72,201, 46,142, 50, 46,109,144,210, 44,179, 31,109, 40, 81, 39,132, 96,173,157,
-118, 69,169, 56, 49, 12,123, 93,160,232,193,123, 74, 81,164, 86, 82,112,120,183,178,179,214, 7, 91,245,202,178,214,104, 1,135,
-176, 58, 77,248,254,148,171, 29,204, 45,147, 58,193,233, 49,174,215,135, 29,191,190,157,122,237, 96,183,195, 79, 84,151,155,231,
- 3, 13,110,129,187, 60, 20,127, 44,109,170, 97,249,128,212,182,116,219, 57,103, 21,144,178,236,116, 19,111,177,143,210, 22,203,
-106,176,250, 86,156,185,207,195, 98,138,107,139,228,217,212, 66,252, 49,218,206, 88,150,210, 2, 36, 82,171, 55,170,157,218, 30,
-191,106,193,171,201,238,178,244, 47,123, 7,218,138, 85,138, 46, 50,123,240, 86, 51,235,196, 17,196, 62,208,213, 57, 98,122,168,
-136, 16,106, 14, 6,179,240, 13,173,206, 88,234,209,106, 8, 15, 40,125,151,104,179,185,161, 9,208,185,165,219, 87,156,253,220,
- 48,213, 1, 9, 72,140, 52,117,196,234,136, 78, 23,120,141,197,111,230,121, 66, 90, 34,172, 54,124,235, 59,191, 68,201, 91, 14,
-119, 35,243,172, 48, 43, 46, 11, 45,121,186,147,133,250,164, 74,203, 35, 57, 31,216,239,110,240, 4,134,190,167,169,231,232,248,
-148,190, 31, 8, 33, 50, 87,143, 91, 64, 30, 34, 54,233, 5, 5, 87, 97,162,146,111, 47, 56,121,250, 46, 71, 71, 3,211, 56,129,
- 11,246,138,170,162,206, 50,248,121,158,241,213,189, 85,104,188,143,182,115, 70,137, 49, 48,141, 19,151, 23, 87, 28,246,123,154,
- 52,134, 85,207,209,209,154,155,235, 91,136,182,139, 15,209,140, 97,213, 23,203, 18, 87, 40,190,224, 18,196, 20,233, 87, 27, 66,
- 74, 32,158,253,126,162, 63,179, 86, 57,113,134, 3, 61,121,126, 70,252,161,103, 26,243,219,110, 0, 23, 60,215,183,183,188,120,
-113,206,227, 71,199,188,186,218,113,250,232,212,146, 14,189, 67,102,150, 85,210, 68,201,201,144,160,187, 61,190,245, 16, 34, 85,
- 22, 14, 65,181,203, 73,244, 70,113,115,189,229,211, 93,238, 56,180, 70, 11, 51,155,152, 40, 89,104, 73,136, 2,157,128, 70, 3,
- 49,245,179,167,174, 18,206, 67, 96,166, 91, 37,202, 78,144, 54,226,162, 39, 55,161,185,200,147,231,143,121,252,213, 35,222, 92,
-223,144, 98,180,215, 31,195,148,186,102, 74,193, 56, 86,174, 94,237,120,255,131, 71,188,255,252,140,191,255,233, 68,109,205,234,
-140,253,210, 81, 32, 15, 29,225, 15,134,177, 98,223,107,121,207, 5, 60,219,253,200,179,179, 83, 82,171,124,246,217, 79,184,186,
-190, 53, 78, 2,149,208, 29,211,164,145,130,103,136,199, 72,206,140, 58,146,231, 66,158,103,208, 13,222, 39,164,237,105,205, 92,
-219,126, 22,106, 11, 68,151, 88,167, 53,235,245, 17,151,215,215,140,211, 27, 86,235,213, 98, 82, 85,198,237, 1, 61, 19, 3, 72,
-181, 70,215, 13, 60, 59,125,143,163,147, 19, 83,229,122, 40,247, 14,124,199,172,133, 54, 55, 62,121, 61,113,183,207,172, 78, 31,
-179, 57, 59,227,254,238,150,163,225, 49,155,213,154,221, 46, 44, 21,199,126,233, 30,176,216,166,168, 97,169,173,165,206, 76,149,
- 66, 35, 69,165, 76, 6,164, 42,190,226,232, 77,213,195,224, 85, 94,163, 65,109,212, 88, 12, 86,169,236, 9, 88, 76, 83,229,161,
-157, 80,145, 96,207, 2,135,227,118,119, 99,178,170,119,236,101,226,242,238, 13,143,223,255, 55,252,230,119,246,252,251,191,138,
- 80, 61,131, 27, 24,235,150,210,130, 85, 38,171, 91, 36,101, 33,165, 21,173,121, 66,106,204,181,129,135,212, 85,242,210, 51, 17,
- 21,232,140, 83, 97,240, 41,187,240,145, 50,243,190, 24,232,200, 27,240,167, 57,161,142, 7,162,122, 98,223,227,197, 49,141,149,
-208,153, 34,170, 98, 28,254, 86, 51, 33, 23, 66,108, 32,137,198,204,152,133,164,112,104,247,168, 6,214,199, 3,229,208,136, 68,
-170,120,196,239, 45, 25,161,142, 89, 43, 65, 38,196, 7,107,191, 11,230, 5, 82,215,227,117, 54,186,102, 29, 97, 8,212,170, 84,
- 49, 19, 92,201, 43,188, 63,216,101,179, 10, 46, 30, 33,174,161, 85,232, 99, 99, 44, 30,225, 64,149,196, 97, 44,220,186, 27, 74,
- 27,145,228,233, 46, 60,105,117, 76,157, 29, 63,250,248, 75,130,239,136, 36,124, 84, 98, 20,214,125,143,235, 3,157,143,124,249,
-226,125, 78,159,156,178, 94,247,124,250,234,158,203, 47,223,176,241,214, 52,169, 26,255, 9, 19, 94,171, 69, 88,133, 96,205,105,
- 89,232,207,126,126, 41,168, 2,253, 63, 2,201, 59,177, 60,255, 63,254,117,152,148,253,253,158, 41,239, 17,153,105, 1, 68, 38,
- 27,150, 22,122, 92, 81, 35, 77,186, 42,168, 86, 74,141, 52, 58,148,140,148,153, 84, 60,174,115,140,171, 23,212,195,151,168,236,
-169, 83, 37,116,142,130, 95, 90, 8,109,109, 27, 68,168, 96,170,138, 47, 84, 45, 68, 99,177, 98, 87,219,104,116, 87,113,156, 4,
- 71, 23,142,144, 34,244, 2,210, 41,187,237, 37, 43,231, 77,169, 13,139,217,173,169, 29,186,193,189,141,149, 63,112,117,168,106,
-192, 23,151,156,201,235,203,254, 88, 68,209,217,128, 43,205, 41, 49,184,101,234,118,164, 96,125,198, 56,203,111, 59,103,187,121,
-197,150,224,226, 28, 62,218,238,184, 70, 37, 6,147,172, 61, 17,167, 70, 87,162, 45, 44,118, 35,200, 24,223,221, 45,209, 53,177,
-105,218,121,171,141,141,222, 94, 44,239, 44,150,101, 14,216,229,129,160,144,194,207, 27,179,130, 51, 88,189,138, 29,216, 62, 90,
-156,207,163,132, 5, 56, 19,162,163,102, 53,186,216,208, 25, 25,174, 42, 77, 23,153, 63, 6,107,171, 67,145,234,151,222, 92,195,
-185, 58,183, 84, 16, 56, 71,205, 14,159, 34, 82, 77,166, 9, 62, 49,205, 51,251,195, 76,109,247,252,221,159,255, 95,120,127,202,
-227,179, 15,249,230,135,239,211,157,126, 11,230,204, 63,252,236,111,248,226,243,159,218, 5, 37, 24,173, 78,176,250,218,224,148,
-146,149,220, 42,187,221, 13, 78,133, 46, 13, 12,199, 39,196,193, 58,229,131, 58,124, 81, 90,172,196, 96,249, 4, 31, 58, 78,142,
- 31,115,255,213,143,168,173,225,147,193,104, 84,221,178,159, 15, 20, 45,180,102, 26, 77, 67,241, 45, 25,198, 84, 11, 33, 69,138,
- 20,242,238,142, 92,205,109,122,178, 94,225,117,233,155,214,229, 77, 25, 28, 49,121,219,105, 70, 15, 41,208,135,142,121, 62, 16,
- 66,228,244,100,195,106,221,113,127, 51, 18,186,142,205,201,192,106,125,130,106,162, 76,149, 62,246,196,148,104,227,193, 28,192,
-115,229,197,251,207,153, 51,140,219,145,240,232,132, 95,248,250, 55,121,255,197,115, 42,129,150,173,141, 43,132, 21,178,228,212,
-125, 53,153, 90, 66, 49,198, 53,141,190, 79,196,154, 49, 42, 66, 91,222,151,129,105,223, 72,100,170, 52,196, 67, 65,104, 26,240,
-115,165, 14,246, 51,225,144, 45,183,174,214,122,215,173, 19,117, 20,230, 41, 83,114,197, 71, 71,140, 3, 94,246,200,184, 39,132,
-196,175,254,242,175,242,211,143,127,200,151,175, 47,205,108,234, 61,168,221,230,141,188,159,216,141, 7,212, 61,166,219, 12,116,
-125,100,220, 90,150, 85,162,105, 92, 49, 44,229, 37,234, 44, 18,186, 16,201,112,198,115, 32,192,118,170, 76, 63,187, 49, 73,222,
-111,109, 13,161,206, 12, 92,165, 18,131, 65,159, 98, 80,180, 11,116, 50,176, 45, 66,206, 19,210,172, 33, 77,107,163,230,145,146,
-108,114,112, 88,158,221, 71,243,195,168, 40,173,206,236,246,133, 20, 34,155,245,154,146, 65, 98,130,206, 86, 79,143, 78, 79, 89,
-159,111,200, 45,112,249,229, 4, 76,164,238,136,169, 4, 98,177, 34,197,251,253, 72,107,194,166, 31,120,247,233,251,124,255,213,
- 95,179,219, 94,177, 62,123, 68, 63, 28, 51,239,175, 41, 11,163, 61, 5,255,182, 38,215, 47,228, 69,187, 92,154,163,127,154,171,
-117, 54,121,165, 86,165,204, 35, 93, 26,232,215, 27, 52,207,204,243, 72, 76,105,233, 51,136,132,104, 80, 27,188,173, 7,213, 9,
-177,115,120,215, 64, 13, 20,226,189,209, 47, 93, 12,184, 0,100,229,255,249,211,239,242,141,111,252, 33,223,248,232, 3,126,227,
-215,191,193,231,175,110, 64, 2, 55,123,199,213,253, 22,239, 19,174, 5,130,159,168, 94, 81, 9, 36,223,200,217, 36,115, 92, 66,
-139,165, 76,130, 4,212, 85, 66, 77, 11,145,243,222,156, 73, 30, 92,233,241,174, 81,212,122, 48,172, 3,161,144, 98, 7, 41,146,
-141, 61, 12,222,211,180,218,228,217, 58,154,179,116,131, 56, 7,179,165,108, 96, 68,177, 21, 30,173,208,245,199, 6,202,241,133,
-221,126, 71,148, 8,189, 67,199,138, 58, 71, 93,247,232, 44,148,118, 32, 49, 16, 93, 71,174,138, 31, 42,147,100,214,206, 17, 66,
-199, 30, 97,156,246, 8, 35,177, 83,154,207,248, 18, 33,154, 34,229, 68, 40,226, 16,118,212,220,209,122,161,102,143, 20,207,208,
- 57,114,236, 13,193,155,119, 20,103,159, 5,241,224,239,154,165,142, 90, 71, 77,208,213,202,205,106, 96,170,149, 21,137,207, 62,
-121, 69,110,158,181,235, 16,221, 51,181,201,152, 36, 67,199, 31,254,201, 95,243,221,159,188,207,240,244,152, 81, 3,135,171, 43,
-158, 61,118, 28,159, 28,155,177,117, 23,120,247,228, 5, 71,105, 73,105, 21, 8,255,168,237, 69,108, 51,252, 79,126,221,238, 51,
-247,187, 59,124, 45,204,211,132,232, 1,241, 51, 77, 60, 99, 50,229, 5, 49, 19,115,240, 17,215, 39, 14,251,137,206,175,240,206,
-145,139, 69,223,158, 61, 61, 34,156,127,157,253,229, 5, 50, 10, 93, 12,180,150,141,159, 17, 61, 84,123,158, 55,247, 64, 66,141,
-111,227,228,213, 59,188,184, 37,154,108,207,184, 92, 10,243, 78,105, 23, 23,108,111, 51,251,121, 71, 24,149, 94,236,182, 18, 81,
- 79,109,197, 36,170, 5,227,170, 11,140,196,171,237,174, 68, 22,103,131, 3,169,182,215,118,222, 19,156,183, 82,131, 96,127, 55,
-169,145,169, 80,136, 24, 69, 45,250, 98, 84, 58,162, 33, 76,189,229,222,173, 43,221,234, 15,181,139,200,210,122,101,197, 42,246,
-128,116,120, 51,122, 5, 71,109,101,217, 93,216,161,236,124, 64, 60, 36, 13,136,218,215,170, 90,249, 8, 78,150,138, 73, 89, 72,
-107,160, 90, 77,254,240, 17,239,236,239, 58,191, 52,199, 57,107,116, 11, 41,162,190, 82,150, 56, 86, 12,145, 20, 42, 77,236, 80,
- 14,173, 48,138,218, 5,160,202, 82,133,106, 32, 30,231, 33,183,182, 16,234, 2, 1,235,164, 87, 2, 18,148, 96,153, 65,251,186,
- 87,238, 47,111,248,248,147, 47, 64, 28, 63,253,201,247, 9, 49,178,234,215,252,229,122, 67,191, 57,229,217,227,247,233,163, 99,
- 62,220, 27, 34, 50,215,165, 24, 70, 30, 20,110,115, 41,107, 88, 12, 88,142,167,167,199,184, 20,201, 18, 25,210,128,119,142, 70,
-195,135, 53, 82, 71, 90,203, 56,141,244,189,227,243, 87,159,227,151, 53,137, 69,157,150,127,183,131,226, 45,165, 96,210,149,241,
- 8, 68, 45, 97,112,122,116,134,211,198,118,220, 83, 23,201,242,252,244,140, 60,238,104, 98, 13,114, 78,109,218,113, 93,135,206,
-198,237, 71,149,171,114,203, 48, 56,230,169,177, 89,109,120,124,122,194,213,229, 29,189,172, 24,226,192,250,120,195,201,233, 17,
- 58, 59,180, 38,214,253,138,157,155, 80,132, 34,133,175,127,244,132,243,205, 17,127,244,103,127,205,227,119,206, 57,123,250,158,
-153,158,202,196,186, 37,180,247,180,216,153,225, 43, 23,156, 84,112, 61, 45, 85,218,164,196, 52, 80,154,229,249,155,247,228,113,
- 38,249, 72, 72,150,162,104,181,226,131, 73,145,101, 20,124, 20,154,247,150,247,167,209,165, 72,169,224,250, 74, 8,145,150,103,
-186,206,145, 91,160, 56,179,164, 4, 32,197,222, 46,146,115, 68,186,202,147,231,231,220,239, 14,220,221,236, 77, 74,246,142,152,
- 58, 68,132,185, 21,214,213,113,115,127,199, 87,111,182,124,240,238, 35,222,123, 46,124,246,217,107,198,210, 56, 62, 90,241,222,
-251, 79, 72, 78,249,248,227, 87,108,247,197,248,229, 34,248,206,226, 95, 18,172, 13, 81,100,121,207,247, 70, 73, 84,177,124,252,
-118,183,231,228,228,132,105,202,236,247, 91,214,171, 21,155, 97,195,106,189,226,118,127,224,126,123, 67,203, 51, 57,207,172,214,
- 71, 12, 67, 79, 85,152,166,130,248,204,118,159, 9,195, 96, 40,232,250,128, 49, 21,124,240,212, 92, 80, 85,162,139,132, 46,176,
- 90,119,228,195,204,237,224,248,193,255,247,191,115,118,124,204,119,126,227,247,168,177,153,211,252,160,220,220,237,136,109, 75,
- 47,149,231,207,158,243,233,201, 49,119,219,107,134,205, 49,155,126, 69, 25,205,225, 27, 30,184, 19,174, 45, 41,155,133,143,190,
- 20, 54,181, 34,246,236,146, 96, 49,183, 24, 81,109,156,158,157,243,225, 47,254, 2,173, 84,238, 46, 46,120,245,250, 75,187,228,
- 47, 41,141,232, 2, 56,107,138, 12,178, 36,104,130,135,154,145,197,236, 41,197,208,216,113, 25, 10,126,242,242, 75,254,221, 31,
-252, 33,255,195,127,255,223,240,175,127,239,183,248,223,254,224,143,249,233, 39, 95,176,234,123,126,247, 55,126,145,191,255,228,
- 75,238,118,123,212, 69,124, 54,169,181,116,205,202, 96,212, 17, 58,104, 69,240,213,227,123, 91,143,145, 13, 33, 42, 2,212,134,
-174, 3, 97, 50,222, 66,138, 54,245, 6,215,152,179, 48,197, 76,202, 16,162,152, 9, 14,200,135,204,106,216,160, 28,144,108,241,
-204,234,173,207,162, 77,158,160, 13, 92,134, 85, 71, 44, 3,165, 56,202, 52,226,186,137, 46, 37,100,154,201,147, 95,148,198, 74,
-167, 30,241, 11,135, 1, 67,145,102,157, 88,183, 30, 25, 51,163, 43,196,184, 54,111, 81,174, 40,246,222, 71, 51, 49, 28,145, 73,
-168,220,195,242,204,100,104,228,124,143, 76, 64, 58,193,215, 61,186,180,252, 57,146, 93,198,194, 72,110, 19, 82,123, 86,238,148,
- 42,247,212,114, 64,231,200,236, 34,174,238,113,140, 52,183, 98, 47,141,224, 26,247,218,177,238, 11,226, 61,109, 82,122,223,248,
-209, 87, 35,255,240,197,231, 68, 25, 40,209,227,147,208, 77, 21,215, 25, 83, 36,196,192,159,255,237, 51, 78, 54,103,244,113, 67,
-158, 43,239, 60,143, 60,127,126,202,217,201,138,235, 61,156,169,231,131,143, 78, 89,175,108, 15,127,119, 53,242,248, 28, 86,238,
- 93,182,183, 29,165,238, 80, 55, 81, 14,102,152,172, 65, 17,103,171,151, 67, 45,184,193, 19, 82,143,182, 9,231, 76,237,142, 73,
- 57, 62,234, 24,125,135,140, 7,186,216,168,206, 8,161,170, 86,166, 86, 90,229, 80, 76,249,114,222,210,104, 97,233,215,200, 40,
-205, 89,218,203, 98,209, 1,239, 61,183,110,195, 15,238,143,185,184, 58,144,184,183,245, 33,137,156,242,178, 83,199,204,106, 14,
- 43, 61,104,117, 65,169, 58,193, 58, 81,252,226,124, 23, 51,130,121,139, 90,225, 13,103,106,249,117,143,249, 60,244,173,123,221,
-187,182,160, 75,141,176, 70,176,195,214, 97,123, 74,231,148, 20,149,169,153,124,150,188,160,205,242,166, 42,129,232, 42, 4,147,
-216,189, 26,247, 90, 84,169, 77,232,240, 84, 10,179, 40,209, 57,130,179,189,112, 85,197,249,246,143, 84, 6,115,203,187,176, 92,
-131,154, 44,172,230, 72,169,149,228, 59,130,199,130,255,181, 17,156,253,191,145,165, 68, 38, 38, 84,133,105, 55, 25, 16,192, 27,
- 24, 71,164, 49, 31, 26, 26,194,242,189,173,207,220,227,104,209, 26,150,156,218,110,194,227,168,206, 81,107, 99,149,220, 50,100,
-153,210,161,222,176,164,222, 57,106,205,108,183, 51,119,219,107, 46, 94,253,212, 34, 72, 97,153, 22, 44,137, 99,182, 69, 93,242,
-231, 30,139,249,137,209,252, 66,151,104, 75, 12,198,227, 40,206,227,187, 68,223, 29,243,173,175,253, 38, 87, 23,255,192,229,182,
- 50, 29, 26, 55, 87,111,222,198,226, 4,139, 79, 4, 18, 99, 57,216, 52, 17,108,117, 98,105, 7, 97,158,103, 30,157,156,112,126,
-210,113,121,121, 71,205,153,138,114,188, 26, 56, 59, 59,225,179,221,173,169, 48,162,224, 26,189,179,104, 18,193,177, 82,184,217,
-223,113, 59, 70,186, 59,199, 23, 47,191,199,250,244, 20,161,231,236,232,148,224, 29,111,174, 38, 86, 39, 35, 71,231,153, 24, 18,
-125,215,113,126,118,204,213,205, 29, 49,116,116, 93, 96,191,159,184,189,219,241,230,250,128,115, 3, 71, 67, 34,103,161, 75, 66,
- 92, 41, 99,174,180, 67, 35, 97,128, 23,240,136,107,118,160,251,158,220, 10,110,174,248,206,145,151,162,154, 74,160, 22,135,104,
-165,115,129, 92,148, 42,145,192, 76, 83,103, 85,184,213,211,187,140,247, 27,196, 87,146, 15,214,248, 85, 50,115, 8,212,234,169,
- 84, 98, 3,105, 5, 15,246, 80,235, 26,119,215,111,208,185, 90, 78,122,121, 87, 90, 97,144,121, 48,168,149,219,109,227,254,135,
- 95, 49,151,194,217,215,122,126,225,235,207,248,206, 47,127, 72, 19, 97,123,121, 75, 63,172, 56, 76, 35,171, 85,199,221,118,162,
-235, 28,171,213, 64,174, 22,241, 4, 65,131, 85, 1,227,148, 92,140,116, 24,131,149, 63,156, 14,194,111,255,214,115,190,251,195,
-151,124,254,241, 61,231,167, 39,108,206,143,209, 93,131,187, 45, 55,215, 23, 56,224,217,243, 15,120,250,228, 9,126,232,113, 10,
-165,121,166,125, 70, 28, 28, 31, 63,198,135,142,237,213, 53,227, 60,162, 78,104, 98,245,162, 27, 10, 29, 29,193, 7,178, 10, 77,
- 42,218, 38,174,183, 23, 56,175, 76,203,238, 58,111, 51,187,220,152,198,215, 28,201, 29,179,175,172, 86, 3,239,188,251, 1, 63,
-251,241,223, 51,221,223, 18,195,192,241,241, 19,106,109,204,243,110,225, 95,152, 99, 61,245,150,162,152,218, 76,205,149,232, 61,
-195,250, 17,247, 55,215,132,152, 8,209,153,114,161, 2,185,225, 90,229,249,187, 79, 57,204, 7,110, 46, 46,113, 49, 44,253, 20,
-102,116, 12, 78,241,193,234, 75,141,157,241,144, 16,192,166, 97,167, 56,177, 84, 78,169,194,238, 80,112,195, 49, 79, 94,124,147,
-211,211, 63,225,227,159,252, 3,191,255, 59,191,195,127,251, 95,255, 43,254,237,255,241,103,252,223,127,252,183,236,231, 76, 31,
- 29,234,102, 82, 1, 23, 55,148,166,212,253, 12, 71, 61, 93, 53,167,247,216,132,193, 71, 84,246, 20, 73,118,200, 29, 4,245,141,
-228, 19,115,174,184,208,104,179,149,217, 36,122,187,208,104,177,127,107,138, 16,132, 57,239,232,186,132,248,128,212, 70, 16,168,
-190,225,235, 1, 73,130,106,194,207,149, 18,193,139,153, 46,141,198, 54,209, 69, 67, 78,183,185, 88,145,200, 65,112,233,200,208,
-166, 34,148, 58, 82,235,196,168, 5, 52,224,155,103,150,108,165, 77, 46, 17,210,162,154,102,101,102,143, 58, 79,168,130, 23, 83,
- 12,124,105,212, 41, 35,206, 19,219, 29,226, 29, 99,158,168, 18,112,105, 77,146, 25,157,150, 62, 14,151, 57,184, 59, 82,236,241,
- 97, 99,245,220,146,153,243,150,147, 62, 81,230, 12, 65,168, 49, 18,202,196,174, 9, 65, 18, 62,194,174, 84, 98,237,113,117, 75,
- 23, 38, 92,245, 52,129, 67,173, 48, 21,240, 27, 84, 50,183, 23, 87,104,141,164,116, 6,173,241, 31, 86,149,212, 26,126, 72, 16,
- 54,116,181,113,118,116,198,209, 42, 82,188,242,249,171, 87, 28,118,111, 44,101,209, 12,249,186,218,156,144,206, 79,152,167,198,
-237,216,113,127,123, 65,140,183,196, 89,209,113,161,109,182,133, 14,169, 21, 21,232, 66,207, 62, 13,182,238,197,153,122, 92,172,
- 37,148,100,117,227,169, 91,145,235,193, 6,204,210,104, 78,222, 22,143, 65,160, 58,243,126,149, 92, 24, 2,252,202,215,223,229,
-163, 95,249, 85,182,223,191,225,245,205, 15,168,108, 57, 28,148,239,124,116, 66,180,124,186,205, 99, 34, 75, 87,185,122, 50,178,
- 62,150, 0, 0, 32, 0, 73, 68, 65, 84,104, 30, 9, 10,161, 17, 30, 36,243,229, 86, 27,253, 82,212,178, 84, 64, 6,171,164, 65,
-189, 91,200, 89, 86,198, 16,150, 51, 84,157,208,180, 46, 82,167,185,202, 69, 20,213,194, 84, 18,162,141,212,117, 68,231,201, 82,
- 76, 74,119,139,235,221, 5,203, 88, 58,147,195,194,242,176, 86,175,214, 92, 38,230,212,111,106, 21,142,193, 89, 93,163,149,180,
-216,222, 13,239,113, 62,217,135,116,153, 66,113, 74,212, 96, 55,244, 20,232,106,163, 72, 35, 75,160,239,226,219, 98,122, 39,141,
-134,152,105, 40,218,234,161,149,165, 14,114,233, 92, 71, 28, 89,204,193,152,212,246,210, 72,195,165,128,115,205,194, 51, 75,171,
-214, 52,122, 82, 48,232, 77,242,209,140,106,216,247, 84,191,176,146,188, 93, 4, 68, 45, 50,231,130,201,161,194, 67,111,160,224,
-189, 25,255,140, 96,100, 32,136,237,246,192,163, 39,239,144,142,158, 50,116,167,244,157, 50,142, 35, 45, 59, 66, 92, 49, 78,153,
-117,223,243,249, 39,223,227,112, 56,224,221, 2,243, 88,138, 66,156,119, 72, 51,220,109,195,225,213,222, 92,173, 52, 30,157,157,
-242,248,244,132,233, 48, 51,150,106,242,100, 85, 86,171, 13, 49, 5,198,253,193,202,103,180,226,194, 64, 58, 90, 27,115, 62, 42,
-179,131,171,155, 29, 78, 31,113,177,187,226,110,119,203,246,176, 35, 6,199,249,163,119,108,189, 83,132, 79,126,252, 9,175, 95,
-126, 78,236, 2,169,239,185,189,185,103,179,142,116,190, 35,118, 29, 87, 55, 91,126,233, 87,127,141,127,253,228, 67, 54, 39, 3,
- 49,109,240, 13,138,142,236, 23,251,168,132, 74,158,227,162, 0, 57,163, 80,141, 86,195, 27,122, 40,181, 99, 26,183,136, 15,184,
-190, 51,206,123, 81, 90, 45,236,151,154, 79, 97,178,221,170, 68, 66, 21,122,103,209,149, 97, 21, 65, 26, 53, 43, 41, 84, 52,118,
-148,234, 8,173,218, 45,187, 55,121,124,174,224, 53, 82,202,150, 24,133,185,154, 63,163,137, 95,164, 63, 65,117, 90,208,200,158,
-220, 28, 20, 51,194,125,117,117,207,175,252,230, 55,248,231,255,209,175, 81,220,158,251, 87, 23,252,205, 95,189,228,199, 31, 95,
-114,125,127, 32,132,192,106,213,153,126,146,205,216,229,150,124,169,115,130, 52, 93,100, 91,161,235, 29,155,213, 49, 90, 39, 94,
- 60, 61,230,183,126,245, 63,225,127,250,159,255, 16, 23, 59, 82,234,136,105,135,147, 74,215,117, 60,123,250, 46,199,143,158,144,
-124, 66,180,195,105,166,150,145,105, 30,141, 47,161, 48,244, 39, 12,239,118,236,111,239,217, 30,238,161,217, 42, 96,142,137, 77,
-127, 68, 23, 60,243, 56,114,123,125,205,251,167,194,123,143,158,160,171,129,150, 71,170, 15,204,115,230,240,230, 11, 86,171,107,
-186, 77,160, 52,207,197,245, 27, 94,126,241, 25,185, 89,129, 76, 63, 56,186,225,132, 50,110,169, 85,173,156,197,131,208,240,101,
-198,117,129,227,180,161, 36,207,254,176,227,249,139,247,121,242,244,140,151, 63,251,194,220,193, 46,160, 52,162, 55, 72, 75, 41,
-194,166, 95,115,161, 21,223,108,213,168,234,240, 33, 18,186,100,123,236, 90,233, 98, 68, 80,178, 84,130, 6,171,157, 86,181,207,
- 92, 48,186,230,103,175,174,249,155, 63,253, 30,191,255, 95,189,207, 7,239,189, 64,154,227,114,119,197, 52,222, 51,132,153,111,
-125,227,140, 87, 95, 22,182,179, 41,135,179,100,122,217,219,231, 41,122,194,100, 57,241,185, 57, 6,239, 41,174,217,154, 44, 20,
- 42, 38, 79, 35, 7, 90, 72, 84,231, 8,185, 18, 53,225, 59, 71,106, 25, 21,225,144, 43, 3, 17, 95, 4,219,228, 8,121,116,144,
- 44,110, 89,180,226, 66, 34,231,137,212, 15,120, 87,104,234,161, 42,161, 21, 66,191,226, 48, 41,190, 84,220,176,194, 45,233,159,
- 24, 61,206, 37,144, 70,150,145,134,103,192, 17,151,210,169,224,148,234, 49, 85, 84, 4,169,153, 54, 26,134, 52, 68, 65,203, 64,
-240,145, 70, 91,148,216, 2,121, 99,220, 19,183, 36, 3, 52, 26, 11, 95, 14, 12,193, 49,231,106,113,216, 38,184,126,192,171,103,
- 62, 20,196, 93,209,121, 7, 45,225, 80, 14,226, 44,127, 63, 23, 36,103, 92, 74,104,203,228, 90,208,232, 72, 7,143,180, 66,150,
- 3, 99,112,132,190,199, 77, 66, 46,197, 88, 12,245,158, 92,196,226,168, 62, 80,154,195,133,145,178,159,200,179,162,247,205, 98,
-146, 53,240, 38, 5,100,204, 20,167, 72,189, 71,155,146,101, 6, 38, 66,181,181,136,177,254, 29,234, 18, 41, 52,196,203,114, 62,
-154,162, 73,179,104,181,184, 64, 45, 19,251,105,226,182, 93, 80,117, 38, 54,243, 93,169, 95,222, 91,162, 75,180,119,103,195, 21,
- 11,221, 52,218,115,201,163,248,174,210,106, 88, 86,164,137, 80, 38, 62, 56, 31,248,232,235,142,191,252, 65, 69,182, 74,241, 10,
- 97, 98,181,122, 70,120,250,228,236,127,124,216, 33,249,101,191,174,216,116,230, 22, 34,153, 42, 6,112, 89, 14,228,232,140, 64,
-231,150, 47,122,239, 76,218,194,166,114, 22, 41, 95, 22,200,140,143, 14,151,146, 73, 18,206,166,210,214,108, 82,101,233, 74,126,
- 27,145,115,118,113,112,222, 78,170,135, 41,223,249,128,136,253, 27, 2,222,118, 48,206,155,187,220,179,100, 79, 77,117, 72,206,
- 72,105, 52, 5, 93,140, 96,210,136,203,254,209, 45,217,247,148,122,124,176,195,255,225,255, 34, 44,187, 22,177,216, 90, 69,112,
-206, 19,176, 15, 58,206,126, 47, 26,208,100,135,225, 16,194, 2,239,193, 34,121, 64,145, 10, 85,150, 88,160, 97,108,131,127,160,
-239,121, 82,234, 56, 57,217,112,114,188,102,189,217,112,116,212, 19, 22, 68,126, 45,229, 45,159, 94, 45,106,176,168, 33, 15, 36,
- 39,219, 49,226,121,155, 90,112,206, 49,142, 7,246,247, 91,110,111, 47,217,110, 47,223, 2, 60,208, 70,107,133,195,118, 66,117,
-226,245,197, 75,118,251,145, 16,252, 91,192,140,226,137,113,201, 0, 55,161,182, 70,105,149, 90, 50,169, 75,124,253,189, 23,164,
- 46,240,250,230,150,105,158,109, 9, 21,192, 69, 83, 41,238,111,110,109,186,240,129,174,219,240,232,201, 57,143, 30,111,168,213,
-110,184, 55,151,183, 92, 92,191,225,238,246,146, 38, 66, 80,177, 98, 56,111,142, 79,245, 54, 25,205, 99,102,191,223, 49,238, 15,
-196,228,233,134,200,208,245, 4,129, 34,194,253,221, 45,121, 60, 48,229,202, 97, 63, 50, 79, 35,243, 56,147,115,163, 79,129, 46,
- 26, 3,124, 86,112,174, 26,228, 72, 33,123,123,216,104,205,246,158, 81,165,200, 76,203, 21,154,185, 81,173, 67, 36, 27,101,208,
-121, 82, 39,203,197, 81, 8, 39, 29,165, 9,210, 10,235,206, 25, 37,111, 22,235, 2, 16, 91,133,116, 17,124, 49,131,232,110,127,
-107, 37, 16,206,113,241,230,150, 55, 87,247,102, 18,117,142,210,228,193,110,186,116,134, 87,112,198,214, 15, 17,190,249,205,231,
-188,122,125,193,159,253,233,247,152,246, 19, 18, 2, 62,121,230, 82,169,217,214, 56,165,180, 37, 45, 18, 12,209,178,172,154,156,
- 42, 62,120, 98, 76, 4, 31, 57, 62,234,216,239, 38,126,246,229, 37,207, 30,111,120,245,213, 53,215,119, 19, 39, 71, 27,154,204,
-188,185,185, 98,189, 62,225,201,163,119,168,173, 80,201,248,106,109,141,187,105, 94,168, 86,129, 82, 27,170,197, 46,218,193,170,
- 81, 75,153, 57, 63, 57,227,249,251, 47,152,155,112,245,250,134, 90, 51,231,231, 79,232,215,231,124,251, 91, 95,231,244,236, 9,
-115,109,236, 15,123, 46,191,252, 17,167,113,203,215, 63,124,206,209,209, 17,115,110, 28,110,111,249,248,227, 31,219,206, 30, 83,
-174, 28,176,219,221,210,202, 72, 23, 59,235,105,192,179, 26, 18,167,231,214, 15, 31, 99,164,136,103,123,119,201,215,190,254,109,
- 78,207,207,184,189,189, 67,242, 76,151, 34,103, 79, 30, 3,106, 69, 45,120, 46,111, 46,205, 83,210,204, 64,231, 88, 76,109, 84,
- 91,215, 53, 56,228,153,150,179,197, 89,101, 25,248,107,102,206,153,176, 0, 64, 62,123,125,193,123,207, 31,209,201,138,191,248,
-155,239,179,221, 11,231,231,143, 57,236, 70,222,125,178,225,209, 81,207,253,190, 82,114,193,171,241, 32, 92,140,184, 32, 36,215,
- 44,137,211,236,178, 47,218,204,189, 95,172, 58,182, 53, 59,228,188,139,182,182,107, 38, 49,135, 16,201, 84,164,130, 11,145,210,
-148, 38, 25,245,198, 21,175,205,122,209,209,102,102,212,230,150,134,198,136,151, 70,109,160, 45, 80, 69, 81,205,132,133,169,238,
-131,183, 46,239, 32, 52,137,148, 50,227,162,121, 10,172,119,126,180,125,183,243, 20,105,204,197,186,191,141,222, 55, 45,171,208,
-106,230, 77, 5,105,142, 41,239,161,101, 90,155,161, 75,168,152,219, 95,219,132, 74, 94,138,141,132,178,175, 52,167,136,236,169,
-174,153,239,200, 25, 75,189,201,126,121,254,100,186, 0,101,222, 82,164,216, 65,216,242,162,250, 6,170,100, 74, 62, 32,109, 70,
-171,149, 83, 77,121,164,140, 35,173, 40, 62, 31,112,174,162,117, 54,133, 88, 26,181,140, 86,137,218,238, 40,211,222,160, 97, 8,
- 77,118, 84,201,150, 74,104, 35,218, 50,170, 51,193, 21, 84,178,189,142,206,218,113, 28,106,117,202, 1,180, 85, 18,166, 80,149,
- 86,236, 92, 91,210, 43,161,115,104,141,220,108,247, 28,238, 63, 5,217, 25, 33,212, 5, 26, 98,112, 44, 59, 44,236, 57, 44, 86,
-121, 45, 90, 22, 86,129, 41, 92,190,197,229, 76, 21, 40,194, 32,153,255,244,215,126, 25,121,231,159,241,119,223,251,130,122,253,
-247, 4, 13, 68,148, 95,253,198,115,226,219, 61,186, 44, 13, 70,206,118,190, 44,102, 51, 59,214, 23,201, 24,165,115, 75, 60,235,
-193, 96,176,208,111,204,198, 98,121,111,195,199, 26,228,194,135, 37, 87, 90, 27, 69,149, 62, 26, 0,197, 57, 19,147, 85,109,199,
- 25,151, 82,146,164,202, 92, 29,174,179, 55,164,168,218, 14,205,179, 20,202, 68,188,183, 9,179,105,163, 22, 33, 68, 59,148,157,
-211, 37,183,186,220,238, 69, 44, 67,157,108, 10, 53, 31,151,237, 51, 13, 39,219, 72,193, 32, 39,101,201, 47,199, 96,145,152,172,
- 75,159,185,154,193,166, 4,183, 84,209,154,129,197, 59, 71,203, 13, 31, 19,205, 27,100, 63,122, 99,107, 87,215, 8, 41, 25,116,
- 0, 51,199,181, 37, 62,244,240,103,196,195,230,232,136, 16,237,208, 73, 41,218, 26,160, 9,227,161,112, 24, 15,236,199, 3,135,
-105, 98,158,170,237,201,154,233, 34,110, 57,236,189,149, 80, 45,157,244,182,163, 41,109, 70,199,153,105,127,203,221,229,203,133,
- 16, 20, 9, 33,112,122,246, 30,239,190,243, 28,173,198,242,143, 62,226,122,123, 56, 7,239,141, 85,175, 15, 78,225, 5,157, 25,
- 34, 39, 71, 39,204,211,204,253,152,153,230,250,118,117,208,117,107,130, 31,120,115,241,134,237, 97,178,168,163, 26, 45,201,249,
-128,215, 64, 8,142, 86, 71,166,177,224,156, 29,144,195,106, 69,183,238,153,166, 76, 45,150,221,174, 53,155,236,159, 28, 94, 34,
-157,119,116, 36,230, 89,217,202, 76,138,158,182,107,220,221,155,195,124,211,223,211,109, 58, 60,118,128, 37,239,217,172,143,120,
-246,238, 51,222,121,231, 49, 95,123,241, 53,126,246,241, 75,164, 76,196,174,224,102, 53,154, 26, 13,143, 48, 21,129, 69, 41, 73,
-189, 25, 32,107, 19, 51,246, 45, 20,187,164, 61,141,108,135,113,105,132, 98,135,240, 84,237,193,239,165, 82,164, 48,183,198, 42,
- 88, 42,130,224,136, 46,112,191, 29,185,157,175, 88,133,142,152, 28,165,152, 99,221, 7,191,168, 69,182,162,177,155,160, 67, 74,
- 69, 81, 86,177,227,246,245, 61,223,251,201,103,188,252,244,146,211,227, 35,190,249,237,119,120,252,206, 9,207,198, 19,246,119,
- 35,181, 61, 16, 20, 43, 84,107, 51,116, 97, 1, 5,133, 37, 65, 80, 27,177, 11, 68,191,226,120, 45,220, 92,237,248, 95,254,215,
-191, 96, 63, 79,164, 24, 25,190,253,109, 66, 23,240, 18, 8, 41,112,123,184,167,115,129,225,104,197,102,125,206,201,211, 71,188,
- 72,158,195,205,200,188,223,115, 56,220,177,155,247,228,189,210,170, 82,106, 49,252,113,104,108,134,142,117,255, 24, 93,159, 82,
-238,183,100,153,185,159,111, 57,147,247, 24,101,203,184,223,242,230,226, 51, 98,190,226,195,239,252, 18, 71, 39, 1,169, 43,134,
-254,192,217,147,167,252,194, 55,127,137,195, 97,207,245,213, 21, 37, 79, 28,109,206, 56, 26,142,185,159, 38,178,206,116,206,145,
-186,142,212, 69, 66, 13,132,181,195, 53,161,239,123, 14,251,145, 79,126,250, 99, 75,157, 16, 88,159,157,112,250,244, 41, 87,151,
-151, 52,245,244, 93,207,106,181,102,221,173,201, 50,154, 7,161, 46, 7,185, 58,164, 90, 49,149, 58,165,213,106, 23, 59,171,247,
-192,135,142, 95,254,214, 51,142, 54, 43,190,247,131,151, 52,173,124,245,250,130,127,251,239,254,144,127,249, 59,191,193,147,119,
-207,248,244, 71, 23,252,240,239,190,207,211, 23,239,240,249,103,175,248,207,255,197, 63,227,228,236,140,191,252,171, 79,184,157,
- 22,124,109,109, 54,113, 15,107,252,221, 22, 31,102, 90, 14, 22,188,142,230,227,199, 53,195, 42, 87, 71, 45,149,208,139,145, 32,
- 81, 74, 25,241,222,227,134, 64,173, 75,169, 82,112,248, 50, 66, 21,114, 45,244, 46, 65,112, 20,105, 11, 74, 55,178, 10, 22, 77,
-213,160, 52, 9,132, 32, 4,177,122, 73,117,145,156, 27,193, 25,147, 33, 12, 66,136, 22, 49, 46, 57,144,232, 77, 9,212, 74,144,
- 3, 46, 68, 58,140,113, 78,155,145, 4, 65, 27,161, 84, 83, 69, 92,161, 53, 33,121,227,150,180, 10,174,217, 37, 73,253,194,142,
-104, 80,138,173, 55, 92,205, 20,109, 4,237,173, 23,195,141,212, 52,211,251,101,197, 58, 78,248, 80, 24, 75, 66,212,227,213,131,
- 31, 16, 85, 10,153,228, 43,174, 21, 40,142, 22,205,120,216,230,131,109, 88,179,165, 49, 66, 20,242, 60, 65, 76, 56,111,209, 91,
-137, 9,218, 14,201, 51, 77, 51, 49, 64,205,130,239,103, 74, 85,180, 22,134,144, 40,128,202, 68,147,100, 6, 81, 21, 90,205,248,
- 2,154,150,102,211,169,226,147,163,170,162,197, 84,193,224, 44, 71,229, 66, 67,138,224,150,150, 54,223, 20, 77, 1, 45, 21,201,
-211, 2,230, 89, 32,104, 75,122,170, 73, 53, 16,141, 91,218, 60,107,120, 91,179,167, 53,226,165,218,128,153, 28, 23,173, 35,126,
- 5,161,218,231,121, 30, 27,171, 1,158, 61, 93, 19,189, 75,182,147,211, 5, 43,202,255,207,212,155, 53,201,122, 93,233,121,207,
-218,195,151,153, 53,156,121, 6,206,193, 76,128,221, 36,123,180,212, 82, 72,161,112,132,110, 28,225, 8, 95,217,190,244, 95,225,
- 79,241,207,176, 47,172,144, 67,178,218,205, 38,205, 86,179,187,217, 68, 55, 1, 18,103, 62,117,106,174,202,204,111, 15,107,249,
- 98,237, 42,136, 55, 32,128, 64, 85,158,204, 47,247, 94,195,251, 62,175, 99, 91,233, 87,116, 52,247,211,250,120, 47,211,113,104,
-131,195,105, 20, 98, 26,234,108, 79, 39,178,171,140,242,145,169,147,144, 17, 59, 90,145,166, 84,137,206, 90,142, 17,189,218,217,
-210,233, 38, 68, 75, 52,245, 75, 58,116,167,234,180,238, 80, 27, 70, 7, 34,234,246,171,104,142,180,149, 32, 36, 3,141, 66, 38,
- 97,177,123,149, 44,137, 28, 35, 18,194, 40, 2,134,138,169, 57, 13, 76, 22,145, 48,251,135,145,196, 19,150, 26,195, 87,169, 67,
-213, 63,252,142, 41, 37,136,142,247, 76, 61,176,213, 74, 78, 3, 75,219,154,199,102,138,139, 7,187, 56,215,254,202,242, 39,209,
-131, 85,188, 35,142,132,228,133,194,148, 19,177,127, 63,185,168,173,195,180, 68, 68,185,121,115, 98,119,111,151,135,146, 40,210,
- 72,221, 56,191,188,224,247,191,127,201,229,166, 12,112,138,103,206, 51, 24,242, 93, 7, 64, 40,140, 9,126,204,255,141, 53, 81,
-105,181,243,254,224, 27,206,207,223, 13,171,148, 87, 99, 49, 68,207,110,179, 72, 31, 30,124, 36,120,180, 37,129, 7,183,238,176,
-183,191,195,225,197, 57,243, 92,199, 69, 63, 98, 94, 37,146, 82,162,151,141,175, 43, 84,201, 41, 32, 41,179,204,238,159,188,177,
-218,229,236, 96,230,232,252, 18,137,198, 98,218,129, 24, 89,196, 93,190,248,195,175,192, 10,229,244,156,131,245, 9,231, 71, 39,
- 36,140, 82,157,120,214,106, 71,109, 1, 73,168,173,185, 70, 66,226, 8,240, 48,182,151, 21, 73, 78,203, 18, 85, 46, 54, 91, 76,
- 22, 60,126,244,165,139, 2,251,150,157, 4,107,155,152,146,142,215,183,160,182,206,210,115,152, 60,146,113, 14,164, 65, 47,180,
- 88,208, 94, 89,134, 76, 51,255,242, 46,227,228, 54, 42,243,241,118, 65,124,196, 24, 3, 90,133, 24,141,237,236,182, 34,172,122,
- 0,145, 4,158,255,254, 61,251, 55,118,136, 42,180,230, 43, 23, 51,144,228,170, 89, 17, 87,119,250, 63, 15,100, 17,230, 90,248,
-249,223,252,150,227,147,115, 66, 8,108, 74,161,150,206,217,217,134, 55,239, 79, 88,175, 11,139,156,124,247, 54, 69, 90, 83,103,
- 66, 72,164,135, 64,194, 92,237,190,200,124,249,197,151,172,183,151,180, 96,236, 89, 98,189, 57, 25, 22, 42,223, 25,107,245,223,
-171,226,207,232,116, 99,143,157,105,159,197,180,131,168, 80, 46,103, 54,151,199, 92, 94,158, 19,136,236,173,238,178, 13, 5,206,
- 55, 92, 52,245,131, 45, 70,214,179,208, 41,220, 92, 45, 57, 63,170,172, 55,151,220,154, 11,167,103,167,108, 90,229,232,248,132,
-114,118,192, 7, 31, 60, 98, 63, 47,136,211,196,250,162, 96,115,129, 32,124,241,213,143, 0,229,239,254,246,111,120,245,242, 57,
-180, 66, 78,153,180,179, 66,173,121, 50, 93, 9, 44, 22, 80,218, 76,210,132,100,144,217,105,133,235,179,203,193,218, 6,173,145,
-139,139, 53,167, 71, 7, 16,150, 8, 74,158, 50,214, 59, 89,178,143,210, 91, 35,154, 51, 41,167,133,208, 76, 40,117, 67,208, 78,
- 26,118,174,105, 17, 81, 2,159,126,246,132,127,245, 47,126,194,155,227,255,131,231,223,190, 65,122,231, 87,127,255, 59,172, 9,
-237, 50,160, 58,243,245,183,175,248,248,179, 15,120,249,246,128,179,179, 11,126,252,131,199, 28, 29,190,230,239,190,237,208, 58,
- 77,188, 64,232,165,186, 90, 59, 8,228, 56, 48,208,202, 98,103,129, 89,103,190, 84, 54, 52,178, 70,250,182,208, 36,251, 20, 41,
-251,153, 89, 75,167,205, 29,105, 74, 23,165,182,153, 24, 38,167, 96,166,138, 88,114, 58, 94,110,132,222, 89,111, 27,102,157, 96,
-153,102,149,190,105,244, 60, 97,210,113, 72,114,192, 82, 36, 69, 95,147, 74,191, 90,139,118,214,243,198, 15,146,232,222,234, 16,
-151,152,110,125,149, 80, 35,162,234,235, 89, 2, 27, 3,173, 74,208,153, 38,197,215,136, 67,111,209,181, 15, 10,160,115, 33,154,
- 10, 81, 27,164,132,182,237,136,177,158,200,178, 71, 91, 95,208,108, 70,163,209,122, 33,104,116,231,140, 25, 42,238,191, 15, 49,
-163, 44,217,110, 47,145, 60, 66,138,234, 6,137,153,212, 3, 26, 42,189,205,212, 80,104,230, 78,157, 80,103, 66,102,232, 20, 24,
- 43, 54, 87,166, 99, 23,116, 13,180,243, 54,114,208, 97,203,198,153, 28,179, 33, 20, 22,201,227, 98,123, 72, 62,253, 40,133, 89,
-125,186, 18,213,221, 5, 18, 61,251,131, 1, 74,194,212,197,212,209, 27,181,232, 98, 7, 95,109, 15, 79,157, 89, 29, 73,168, 87,
- 19,217, 64, 48,111, 42, 52, 56,176, 13, 85,122,109, 24, 13, 73,137, 30, 59, 27,141,252,159,191,252, 37,246,187,255,157,243,151,
-175,208,254, 6,233,137,155, 59,137,223,124,125,151,120,255,254,189,159,218,136, 5, 85,115,203, 77,188,186,176,101,140,111,197,
-253,144, 50,104,115, 81,130, 95, 6,209, 71,187,152,143, 9,174, 0, 48,189, 59,191, 93, 70,177, 64,240, 17,247,232,229,241, 48,
-101, 23,128, 73, 12, 76,193, 83,148,252,146,241, 55,166, 99, 68,115, 91, 88,107,230,214, 51,235,244, 48,200,116, 3,145,233, 4,
-159, 43, 20,180,143, 61,166,232,185,180, 33,186,239, 93,192,187,173, 16,174,147,227,172,143,237,180,140,200,214,177,171,207, 64,
-109, 10, 83, 30, 69,138,143, 81,196,163,235,156,131,238,110, 56,180,187, 45, 15, 12, 75,190,162,112,196, 40,168, 54,170,249,238,
- 69,204,237, 93,190, 58,240, 85,129, 95, 32, 1, 73, 66,202,113, 88,144,124, 20,221,240, 81, 51,166, 68, 19,114,138,172,215,151,
- 28, 30,158,250,229, 63,168, 99, 18, 32,230, 64,148,116,181,244, 24,174,132,228, 23,175,245,129, 37, 13,136,132, 17,249, 89,221,
- 71, 78, 66,146, 43,244, 61,226, 80, 71,130, 88,119,107,140, 25, 59,171, 29,238,221,187,141,245,198,197,229,150,210, 27,221,124,
-171, 33, 33, 58,180,103,187,102, 59,207,244, 90,135,152,105,201,106,181,203,227, 7,247, 72, 89, 56, 60,185,100,179, 77,220,186,
-125,199, 87, 35,113, 73, 70, 40,115,225,217,135,159,240, 23,255,242, 47,248,163, 63,255,239,248,234,179,175,248,232,217, 71,252,
-240, 71,127,202,189,167, 31,115,255,238, 99,238, 63,184,203,173,187,194,241,225,154, 41,132,235,103,112,177, 74,168,141,100, 46,
-237,208, 2, 33, 24,115,109,152, 41,247, 31, 62, 97,110,151,148,126, 65,235,129, 98, 62,229,136,113, 65, 67,169,117, 6, 21,102,
-117, 1, 99,136,157, 58, 55,255, 12,167,133, 83,248,134, 39, 60, 14,110,114,136,144, 53, 80,130, 79, 42,230,210, 9, 67, 96,101,
-234,226,176,164,238,173, 46, 6,235,205, 57,175, 95, 28,112,116,188,225,252,242,210, 47,243,232,164, 52, 29,147,144,174, 62, 29,
- 50, 92, 3, 18, 66,164,214,202,197,102,235, 19,169,236, 28,254, 69, 78, 28,188, 61,163,110, 43, 31,127,120,143,245,166,248,164,
- 65, 28,195,188,179, 92,146, 66, 70,187, 82,180,179, 90,172,248,131, 63,254, 19,158, 60,249,144,178,109,156,157,157,242,167,127,
-240,144, 47,158,222,229,249,225, 9,166,141, 15, 30, 61,193, 44,243,254,253,123,210,148,216,223,217, 35,167, 68, 78, 43,170, 8,
-103,103,199,156, 30, 31,179,185, 60,103,179,169,108, 75, 97,219,214,227,181,118,230,237,134,219,247,238,241,241, 39, 95, 18, 87,
- 15, 57, 60,124,207,211, 15,239,243,239,254,248, 3,126,245,143,191, 65,251,146,180,186,201,201,197, 57,219,179,183, 60,184,181,
-203,254,174,119, 76,155,147,153,211,147, 11, 46,107, 39,161,204,115,135, 94,137,203, 5,111,223,188,244, 96,139,188, 96, 90, 44,
-249,252,243, 31, 48,175,103,206,206,207, 73,193, 45,169,181, 54, 54,219,194, 60,175, 41,101, 77, 83,255, 12,156, 92,169,172,215,
-231,196,148, 88,166, 21,132, 76,157, 55,195, 6,231,197,186,168, 59, 62,210, 34,179,147,220, 61,210, 90, 27,147, 47, 35,196,140,
-152, 79, 47,223, 28, 28,243,237, 55, 7, 28,190, 95,211,173,185, 62,168, 55,206,206,103, 2, 11, 74, 47,148,178,101,127,255, 46,
- 15,110,239,242,229,151, 15,248,252,207,254, 45,247,239,236,115,112,124,194,209,225, 41, 49,116,230, 14,139,232, 89, 19,161,248,
- 8, 90,162,178,200, 59,142,148,213,192,114,153, 61,245, 80,221, 98,139, 5, 44,118, 98, 80, 36, 7,122, 11,104,169, 14, 99, 18,
-117,184,202, 24, 69,219,112,169, 76, 11,232,181, 19,101,194,130,251,240,107, 5,161, 58,116,107, 20,222, 53, 5, 98, 52,212,220,
-118,103,197,169,227,165,118,132, 74,198,174,193, 49,214,189,233, 48, 26, 77,149, 62,244, 6,165,186, 35,167, 55,223,231,135, 88,
- 40, 87,140,138,104, 48,251,235, 11, 49,121,241,168,101,196,171, 8, 41,186,152,121,138,222, 16, 17, 10, 58, 86, 14,161, 14,107,
- 92, 76,136,118,199, 53,219, 85, 96, 21, 52, 42,216,140,228, 68,157, 55,126, 71, 20,165,137,120,162,100,221, 98,166,204, 38,136,
- 20,180, 84,250,236,197,156, 10,104,237,180,109, 37,136,210,231, 45, 74, 99, 0, 26,199, 8,189,160,205,113,218, 81, 60,146, 27,
- 21, 66,239, 36,201,110,181, 78,126,247, 52,156, 46,215, 69, 61,101,114,232,182, 60, 36, 73,124,141,129, 13,214,130,191, 62,139,
- 32, 57, 33,209,207, 1,143, 58,183,145, 32, 60,148, 83, 33, 33,234,209,193, 14,132, 19,130, 36, 28,155, 22, 88,159,158,113,254,
-246, 27, 74,121, 75,169, 27,234,124,198,217,197, 9,191,250,231, 87,196,123,183,239,253,212, 21,166,131, 62, 35,126, 49, 94, 9,
-224, 84,140,132, 95, 10, 41,122,103,140,250, 98,218,189,207, 35, 98,117, 36, 37,101, 25, 42,120,211,113, 17,123, 65, 16, 66, 28,
-136,198, 17,141, 24,131, 7,128,152, 16,195,132, 4,241, 61, 56,113, 68, 38,250,184,221,163, 77, 27, 54,138, 9, 6,156, 70,198,
- 31, 84,112,177, 73, 74,190,143,143, 68, 39,152,141, 55, 85, 77, 6,184, 34,146,226,194, 83,198, 66, 31,168, 78, 79,168,107, 42,
- 72,242, 75,242, 42, 15,158,232, 94,117, 47, 4, 2,210,227,136, 56,245,169, 69, 23, 63, 96, 34, 16,212, 1, 32, 62, 50,241, 0,
- 13, 53,115, 0,143,132,209, 57, 7,175,218,154,177, 90, 77, 76,139,229, 80,176,123,133,214,219, 72,140,138,195, 47,169,145,144,
-125, 68, 62,111,103,158,191,122,201,197,229, 60, 72, 88, 97,132,212, 24, 41,100,210, 20, 9, 49,146,114, 34,231, 52, 44, 49,105,
- 0,119,220,154,119,181,139,159,242, 14,102, 30,118,146,196,223,155, 43,227,154,118, 31,237,153, 58, 58,115,119,119, 7,213,198,
-250,114, 75, 41,238,171,118, 81, 93, 26, 22, 35,223,227,117,237,244, 58,196,127,139, 29,118,119,246,185,253,232, 22, 71,239,142,
- 57,120,117,200, 98,239, 38, 79,159,125,194, 34, 45,185,119,251, 38, 55,110,222,231,248,236,144,127,248,251,191,230, 23,127,245,
- 95,248,203,159,253, 23,254,241, 87,127,199,235, 23,135, 28, 95, 30,115,124,120,130,149,192,195,135,159,240,175,255,252, 75, 94,
-190,122,205,217,182, 59, 57, 76,156, 26,168,131,147,236, 59, 59,255, 18, 53, 53,110, 44,119,185,121,235, 38, 61, 20,186,102, 31,
- 21, 70,232,221, 87, 64, 42, 5,147, 60, 24, 6,174,146, 37, 7, 82,110,132,214,124,221, 20,124, 20,239, 60, 42,199, 19,183, 94,
-189,184, 68,177,214,189, 43, 23, 67,104, 72, 52,186, 69, 23, 53,154, 81,186,242,226,245, 75, 54,231,151,110,189, 50, 39,152, 93,
- 11, 84,204, 39, 84,221,220, 18, 24, 36,185, 93,204, 6,227, 57,199, 17,124,227,151,250,249,197,154,211,243, 53, 63,250,225,135,
-252,207,255,211,191,229,230,205, 93,222,190, 59,246,195, 52, 68,242, 34, 19, 98,160,180,198,106,119,201, 87, 95,254, 1,143, 31,
-127, 4, 91, 79, 71, 92,159, 31,242,249, 15,110,115,116,114,193,183,207,143, 89, 72,224,195,103,207, 0,229,224,240,136, 52, 77,
-144, 18, 49,123, 42,163,169,139, 59,183,237,210, 3,127,212,127, 78,211, 74,223,118, 71,201,106,231,195, 15, 62, 98,181,218,227,
-108,187,230,252,240, 45,127,240,244, 54,255,230,223,253, 11,254,175,255,248,151,188,124,245, 2, 82,198,202,150, 71, 55, 87,236,
-172, 86,108, 16,206,203,218, 47,194,173,209,172, 82, 74,161,182, 78,107,141,105,127,201,217,201, 37,231,231,103, 44, 23, 75,232,
-112, 99,127,143,123,119,239,243,246,221, 91,119, 11,152,176,222,108,104,243,236,147,156,222,125, 77, 40, 2,234, 89, 16,136, 79,
-213, 98, 26, 51,195,145, 56, 88,123,119, 11,110, 47, 78,187,180, 78,169,234,221,173,118, 98, 10,196, 56, 93,229,193, 33, 65,152,
-183,141,211,139,217, 17,201,161,211, 84, 7, 97,112,193,106,103, 34,165,137,245,102, 67,239, 51, 95,124,242,128,222, 55,124,242,
-217,143,184,113,239, 75,110,223, 80,190,249,246, 45,151, 39, 51, 42, 17,201,206,233,216,214, 66, 19,101, 74, 11, 79,205, 51,101,
- 17,118, 97, 74,244,237,214, 19, 11, 87,137, 28, 12,216,113,166, 55,234, 57,223, 90, 72,203, 9, 84, 9, 41, 51,169,119, 24,162,
-226,185,237, 67,171,210,130,162,181, 35,166,180, 86, 73, 33, 83,197,252,188, 10, 66,235, 29,141,145, 86, 42, 13,111,128,162,217,
- 8,146, 74,168,206,148, 81,224,211, 2, 61, 21,186, 54,239,238,213, 65, 43,221, 73, 94,196,212,137,214,144,144, 17, 38,230,178,
- 65, 77,232,173, 34, 90,145,222,104,214,144,133, 63,235, 88,163, 23, 27,235, 84, 37,152, 66, 87, 54,219,181, 95,208,218,157, 17,
- 98,174,241, 49, 51, 38, 64,115,192, 52, 18,251, 37,165,204,204,115,243, 73,169, 26, 98, 5,169, 21,109, 5,205,222,124, 89, 45,
-160,230,182,176, 58,123, 46, 4,126,161,183, 90,145, 36,174, 27, 42,117,136,193, 27, 93,156, 58,169,230,186, 18, 19,168,163, 32,
- 65,132,210,102, 39, 26,138, 3,110, 90, 27,218, 8,140, 24, 50,201, 60, 53,148, 46,116, 85,180, 67, 30, 26, 14, 83, 37, 68, 67,
- 90,115, 72,207,208,120, 25, 50,214, 65,157, 16, 28,158,134,186, 87, 29, 3, 77,190, 6,215,230, 69, 64,156, 2,105,145, 60,118,
-123,172,219, 72,234,147,226,185,144,160,249, 30, 96,196,123,106, 87,135,104, 72,164,141, 20,243,239, 59,204, 49,157, 69,125,108,
-172,174,210, 14,195,139, 41,194,224,178, 13,232,254,228,135,103, 43, 58, 0,255,206, 99,135,128, 90, 24,129, 12,130,106,117, 33,
- 28, 30, 30,146,163,179,170, 85, 70,198,115,246, 3,207, 6,101, 11, 95,143, 15,161,156,103,154,247,230,129, 35,233, 10,103,139,
-195, 58,114,200, 20, 45, 96,110,209, 80, 19, 66,119,138,157,154, 82,131, 92,231, 10,247,209,233,196, 28,199,136,203,200, 34,152,
- 58,151, 62, 96,136,100, 82,128, 98, 70, 51, 60,164, 33, 68,183,211,140, 34,166, 90, 96,138,145, 96,158, 10,215, 76, 61, 42,118,
- 17,125,124,212,188,250, 19, 27,215,105, 85, 98, 48, 82, 72, 62,218, 85, 35,102, 31,163,246, 32, 92,156,156,114,114,186, 30, 73,
- 83, 97, 28, 58, 9, 89, 46, 92,184,164, 87,152,223,241,239, 66, 32,231, 76,178, 37,170,149, 82,102, 76, 61,190, 81,109, 30,113,
-186,209,119,200,130,119, 32, 54,156, 10,102, 76,211,196,205,189,253, 17,230,177,165,119, 63,204, 66,116,126,184,152,209,196, 47,
-190,189,157, 5,171,157,125, 94, 62,127,227,186, 6,139, 44,150,129, 36,137,147,227, 11, 22,105,226,193,221, 7,156,159,157,145,
- 23,198,124,190,230,248,226, 28, 21, 69, 91,227,108,179,134,139,115, 78,195, 33, 18, 94, 82,126,227,159,149, 5, 97,145, 23,220,
-250, 95,254, 71,190,248,248, 9,239, 14, 79, 33, 6,114, 94, 82, 91, 3, 53, 23, 5,169,119, 84, 87,234,239, 16, 87,164, 41,162,
-219, 51,164, 36, 90,108,148,154,124,138, 19,155, 83,231,100, 66,185,240, 17,180, 66,188, 72,244,197, 2,137,133,148,221,170, 40,
- 34, 72,222,101, 18, 71,207, 74, 4,146, 49, 85,165,134, 70,170,160,105, 73,236, 66,239, 74,171,243, 96, 43, 76,204,235, 13,231,
- 39,103,164, 41, 64, 45, 88,197,169, 93,193,195,143,220, 9,209, 9,226, 43, 18, 44, 12, 30,132, 63, 63,232,149,234,219,133, 99,
-181,116, 30, 61,188,193,237,123,187,252,213, 47,190,230,237,187, 35, 54,155,153, 90, 27, 33, 6, 54, 23, 27,114, 14,236,223,220,
-229,135, 63,248, 33,183,110,222, 98,123,185,161,206,133,229, 42,177,127, 99,159,191,252,217, 75,142, 14,143, 48, 51, 39,156,201,
-224, 43,152, 98,205,197, 62,121,242,113,111, 18, 65,167, 9,182, 30, 76, 20, 37,184,179,160, 53,106, 43,180, 86,208, 86,176,234,
-174,133,156, 61,227,225,213,249, 33,103, 23,141, 68,228,253,251,119,132,229,223,243,147, 63,252, 35,150,187,187,172,183,103,180,
-144, 8,179,147,212,220, 7,222,177,238,197,174, 69, 35,214,196,227, 7, 31,114,242,230, 13,219,114,201, 34, 46,121,241,252, 5,
- 63,248,225, 87,220,191,255,128,131,131,183,172,245,114,172,156,124,173, 38, 49,179,138,217, 19,242,166,140, 85, 72,169,177, 16,
- 39,254,205,205,237,172, 55,238, 76,236,175,118,184,216,158,179, 59, 53, 74, 49,231,114,119,197, 26,172,215,194,101, 45,228,156,
- 9, 49,209,122,189,222,177, 75, 47,116, 9,244, 0, 34,209,133, 86,173,209,107, 65,166, 9,201,137,215, 7, 71,188, 57, 41,132,
- 90,120,241,143,191,224,217, 79,254, 7, 62,249,244, 75,190,252,252,159,248,217,209, 17,189,119,234,133, 34, 49, 50,229, 64, 47,
- 74,233, 67,148,103,145,166,151,180, 6, 27, 26, 38,209,115,216,197,133,109, 54,132,171,150, 27,210, 18,213, 58, 89, 38, 36, 58,
-231, 61, 52,165,217,160,225,213, 72,242,252,193,145, 47, 15, 49,103, 66, 10,228,224,153,242,165, 57, 34,155, 90,156, 43, 18, 60,
- 17,112, 86, 23,109,134, 40,244, 90,129,197, 88,197,174,177, 57,194,184,144, 91,247,148, 78,137,193,225, 70, 10, 88,242, 78, 53,
-140,192,164,226,214,195, 41, 68, 82, 88, 96, 50, 99,115,199,186, 49, 75, 32,137,210,173,122, 34,159, 69,122, 23,239,210,205, 39,
-188,109,110,144, 3, 90,160,140,105,172,228,137, 82, 47, 89,182,113,115, 88,199,146,199,149,170,249,103,134, 68,104, 16,181,178,
-237,133,168, 11,239,242,155,199, 42,199,166,222, 8,132,198,246,162, 16,146,239,235,107,159,209,226, 40, 86, 27,100,210,222, 26,
-152,145,162,163,136,123,240,239,169,108, 12, 66,115,155, 31, 29, 53,215, 57,245,222,233,102,196,232,113, 65,214, 59, 65,157,227,
- 79,243,220, 15,154,107,181,130, 4,159,112, 23,199,196, 6, 7,191, 95, 15,190, 25,231, 52, 4,172, 13, 24,220,112,186,212,210,
-201,178,130, 20,174,215, 27,109,128,212,178,116, 18, 18,174,197,110,142,136,117,175,113,163,141, 40, 23, 25, 35, 5, 15,153, 8,
-195,114,133, 57, 15, 56, 93, 81,217,204, 92,112,210,125, 4, 31, 66,244, 75,185,187, 8,165,245,238, 94,242, 36,136, 42,210,197,
-133, 33,234,227, 7,237, 62,162,143,147,123, 69,187, 53, 80, 15,140, 49,241,136, 64,228,202,127,174,142, 55, 21,175,190, 83,114,
-238,179, 53,101, 27,140, 41, 70,207, 14,111,230, 30, 72,198, 27, 98,174,206,239,173,251,248, 67,194,128,200,100,143, 60,197,131,
- 61, 76, 93,236, 33, 67,244,231, 10,110,161, 91, 32, 7,163,139,184, 8,130, 33, 0, 9, 35,158, 84,125, 82, 48, 13,178, 94, 15,
-137, 86,141,197, 34,140,206, 47, 33,238,160, 33,246, 62,176,138, 62, 13, 9, 33, 82, 90, 67, 82, 36, 76,110, 95,179, 22, 40,101,
-205,203,163, 3,218,224, 94,123, 4,173,184, 16,109, 12,221, 25, 29,180,136,239,214,187,130,213,230,136,220, 33,120,235, 77,189,
- 56,137, 62, 74,182, 62,144,155, 30, 35,143,210, 49, 9,228,156,184,123,251, 54,139, 41,112,126, 89, 93,149,219,250,136,218,245,
-113,157,153, 87,250, 83, 78,124,252,201, 71,180,186,225,249,139,151, 78,209,147,198,205,219,183,233,109,203,201,225,123, 36, 71,
-210, 55,255,192,179, 15,159,241,228,241, 71,228,251, 43,238,110,214,252,246,183,127,199,251, 55,207, 93,131,160, 94, 84, 50,138,
-139, 22, 28, 79, 89,181,242,127,255,231,191,166, 16,145,188,226,222,157,219,236,221,184,141,196,200,173,229, 46, 55,238,236,178,
-217, 28,240,250,187,231, 60,127,127,194,250,226,130,157,253, 61, 82, 54,239,110,114,229,252, 82, 9,210,136, 50, 81, 76,144,222,
-105,237,210, 71,238,173,176, 76, 75, 36, 5,182, 52,172,248,115,143,184,162, 60,100, 99,174, 27,144,236, 73,133, 89,168,213, 72,
- 61, 82,181,210, 75,133, 86,137, 65, 73, 41, 48,215,153, 82, 47,121,243,230,152, 90,189,131,152,107,243,207,165,185,242, 61,196,
- 72, 18, 27, 68,102, 47,236,108,112, 27, 76, 70, 0, 82, 48,122,247, 9,153,137,127,182,119,238,220, 34,132,204, 47,255,246, 27,
-222,190, 61, 33,164,236, 86, 76, 9,200,114,162,181,194,179,143, 63,230,198,157,187,212,121,118, 81, 94,130,185, 43,203,189, 91,
- 14,165,233, 70, 57,122, 71,213,134,212, 64,177, 45,115,155, 93,123,146,132,208, 38,114,186, 42, 66,183, 4,139, 44,242, 2, 9,
-145,178, 29,151, 59,198,165, 42,181,193,217,220,184,145,178,199, 32, 91,224,232,112,205,250,228,152, 24, 39,246,110, 61,230,131,
- 15,191,224,206,237, 91,108,206, 55,212,160,132,160, 62,110,157,133,110, 27, 44, 9, 49,174, 60,157,172, 53, 74,173,220,190,127,
-143,189, 59,247,185, 56, 61, 96,186, 49, 81,171,242,245,175,255,129,237,188,117,222, 67,237,132, 32,228,105,135, 27,251,119,185,
-185,179,203,222,141,219,188,223,204, 64, 37, 95,107,126, 2,151,219, 51, 66, 50,230,237,204,237,253, 37,255,219,255,250,239,185,
-247,232, 14,200,154,237, 37,104,204, 8, 51,229,114,205,193,219, 51,254,195,127,250, 25,191,250,251,223,211,227,146, 56,237,211,
- 54,231, 62, 77,177,230, 8, 50, 13,142,211, 6, 31, 93, 75, 66, 91, 98,177,156,216, 94, 92,240,205,215, 47,121,248,199, 31,243,
- 55,255,245,111,248,224, 7, 63, 36, 46,239,241,236,209, 77,254, 38, 53,102, 2, 22, 42,166, 43, 15,130,161,211,105,232, 60, 81,
-204,161, 56, 77, 26, 44,196, 63,131,217, 25,227,102, 91,188, 76, 82,202,182, 35, 97,114,181,180,219, 65,220,141,147,128,160,104,
-137, 62,162,215,226,185,242,147,187,115,168,126,158, 68, 26,102, 66, 14,147,103, 95,244,128, 42,174,123, 10, 70, 43,141,101, 84,
-154, 40, 33,175,104,115, 69, 71, 33,170, 77,232,230,207, 85,156,252,251,111, 37,251,212,176,119, 54,125,118,239,252,194,215,162,
-173,207, 30, 47,139, 50,215, 45, 77,148,168,221, 11,107, 4,139,184, 95,189, 55,166, 12,181,184,112,174,107,100,138, 78,130, 12,
-178,112,103, 83,237,116, 77,176,222, 34, 52,160,208,173, 0, 0, 32, 0, 73, 68, 65, 84,189,177, 33, 17,227, 2,237,213,197,195,
-221, 85,255, 65,204, 19, 42,251,104,138, 44,160,109, 30,180, 75, 69,139, 39,196,244, 80,145,238,204,149, 62,207,180, 48,185,195,
- 43, 42,162, 25,180,162, 84,255,255,166, 62,253, 25, 5,176,168, 59, 3, 28,251,221, 6, 94, 91,157, 17,161,222,105,107,159,176,
-222,253, 46, 25,197,186, 98,100,205, 14, 58, 50,195,164, 14,237,153, 39,188,133,144, 29, 64,148,243,224,120,130, 22,197,174, 20,
-242,226,147, 91, 83, 65,170,175, 32,194, 52,185, 19, 42, 42,169, 39, 90,223,208, 53, 16,239,222,187,253, 83, 29,162,167, 16,198,
-178, 31, 27,187,232, 17,247, 38, 54,176,167,114, 61,250,165,251, 47, 38,122, 71,172, 87, 64, 25,132,184, 24,246,160,198,117, 72,
-140, 13,232,134,232,176,139,117,247, 6,142, 31,235,129,242,230, 23, 77, 20, 87,114,217,192,182, 74,136,144, 71,252,170,121,113,
-193, 80,105,167,113,209,249,242,192,247, 18, 49, 6,191,192, 71, 28,158, 54,195, 66,186, 30, 31,131,141, 32, 8,143, 12,149, 56,
- 42, 97,145,107,192, 11,221,113,172, 62,141,117, 6,188,147,168,148, 62,118,230,194,128,195,128,187, 2,192,253,207,209,176,224,
-157, 80,199, 71,172,130, 91,140,220,214, 7,139,236, 93,154, 8, 84,147,193,203,240, 11, 5, 2,185, 9, 26, 2,239,223,191,227,
-245,155, 67, 32,186, 90, 61,186,158, 33, 38,167,107, 73, 8,206, 13, 48, 87, 81,234,192,228,250,212,196,215, 5,165,235, 64,186,
-250,239,187, 90,175, 16,100,192,108,134,223, 89,132,155,251, 55,216,221,217,103,189,217, 80,181,211,106,245,244, 51,185, 26,145,
-200,245, 4,227,147,103,143,249,224,195, 39, 92,158,110,120,245,242, 53,221,140,221,253, 61, 62,253,228, 19,118,151,194,155,151,
- 47,120,243,238, 29,135,239, 94,242,205,111,191,230, 87,127,247, 75,126,245,247,255, 31,223,189,248, 39, 78, 14,222,114,118,126,
-230, 54, 49,145, 49,254, 82,215, 82,104,160, 85, 15, 30, 33,103,144,192,222,206, 62,139,229,142, 91, 86,122, 65,226,196,222,173,
- 59,236,164,137, 59,251,183,249,183,127,252,231, 76, 35, 22,119, 90, 78, 88,104,148,217,168, 53, 58,251, 32, 78,164,210, 7,156,
-165, 34,152,227, 79, 43,244,176,101,158,103,250,236,168,224,148,193,180,184,103, 95, 50,147, 45, 72, 40, 86,171,175,113, 66, 66,
-181, 99,181,123, 82, 83,234, 92, 94,156,114,116,244,158,227,227, 51, 94,189,121,135, 69, 33,231,192,249,217,236, 59,244, 48, 82,
- 3,199,142,237, 42, 56, 52,140,168, 80,223,245, 58, 6, 88,204,227, 89, 83, 76,238, 20, 73, 30, 93,121,122,118,201,235,183,231,
- 94,229, 71,127, 54,123,247, 21, 78,181,202, 50,172,184,127,231, 33,155,185, 34,116, 86,139, 68, 75,194, 36,201,149,181,166, 84,
- 81,234,122,230,201,163, 71,212, 90,120,243,250,141,143,147,167,232, 5, 42,254,153,151, 58,211, 91,103,153, 86,164, 60, 86, 11,
- 24,219,186,101, 46, 27, 36, 4,166,213,138,221,221, 29,170,117,182,235, 53,185, 85, 62,252, 96,151,231,239, 59, 22,111,243,244,
-201, 61,166,188,131,174, 22,164, 54,179, 92,237,163,193,104,115,241,206, 34,120,228, 39,181,140, 12, 2, 35,239, 8,155,245,154,
-247,111,223,146, 23, 75,118, 22, 43, 74, 41,148, 90,104, 90, 88,228, 21,123,251,251, 60,184,251,152,189,213, 62,133, 17,155, 43,
-209,245, 13,209,216,174, 43,231, 23, 27,218, 64,233,214,121,230,232,232,148,211,203, 19,158,126,112,151, 63,248,226,115, 62,248,
-234, 83, 30, 61,251,148, 71, 79,159,241,193,167,159,242,197, 79,126,200,191,250,243, 63, 32, 90,229, 55,223,190, 28,216,223,128,
- 13,171,175,153,145, 22, 19, 18,160,214, 66, 10,145,197, 98,135,214,102,159,250,169,114,121,126,201,114,119,193,201,250,130,163,
-183, 7, 60,121,178,199,179, 79, 62,162,172,141,239,126,127, 64, 23,159, 4,230,228,254,100,209,128,118,183, 34, 77, 49, 80, 69,
- 73,248,180,164, 37, 96, 46,104,236,126, 25,247, 48, 4,152,205,251,136,145, 84,105,230, 17,214, 54,249,190, 93,162,160,161,179,
- 96,225,221,122, 83, 79,213,108,134,169,139,120,219,160,114, 26, 74, 26,103,162, 57, 88, 31,187,202,175,232, 62, 61,140, 67,103,
-181, 92,142, 68, 76, 9, 76,201, 87,172, 70,165,153,207, 69,123,243,253,123,215,130,206,138,106, 70,172, 33,161, 81,181, 19,186,
- 50,155, 99,138, 99, 72,180,222,232,226, 66, 62, 68, 92,243,212,221,182, 85, 7, 96, 43,152, 14,193,181,208,138, 43,213,189, 1,
-168, 84,243, 49, 61,218, 92,188, 29,156,252,215, 90,115,107, 31,110, 51,213, 94,175, 89, 3,189, 52,106,109, 68, 21,199,144,107,
-243,137, 51, 74,194, 39,181, 97,160,207, 37, 57,155, 64, 44,208,135, 59, 66,171,123,212, 45,250,243, 16,186, 79,214,122,116,145,
- 86,112,175,223,208,203,116,183, 65,155, 13,250, 34,190, 62,100,172, 59, 37, 13,199,216,192,164,165, 68,176,142,144, 65,117,172,
-244, 12,235,221,115, 81,240, 34,196,130,185, 88, 47, 69,204,234, 72, 31,132,208,219,149,199,156,248,232,254,221,159, 58, 1,246,
-138,186,230, 67, 92, 25,227,109,134, 63,221,239,123,239,212, 7,153,214,109, 99,102,163, 18, 26, 99,248,224, 63,225,234,130,109,
-234,121,200,105,172, 96, 71, 95,201, 32,133, 95,239,206, 49,241, 66, 98,140,145,147,184,104,197,134,199,219,149,124, 46,212,155,
-146, 67,250,175,103,241,193,127,209, 88,183, 14,229,186, 95, 22,170,206,122,214,241,122,188,138,119,102,187, 71,229, 5, 23,189,
- 85, 29, 32, 8,223,201, 51,128, 49,222, 24, 15,224,139,118,255,112,123, 31,162, 63,239,174, 68,220,146,151,146,147,239, 66, 84,
-162, 56, 41, 40, 44,157, 72,101,193, 53, 9,158, 20,231, 73, 56, 97,116,220,174, 24,180,145,226, 21,136,248,239, 44,243,150,223,
-127,247,154, 82, 10, 41, 37,183, 9,166, 64,136, 94,200,184, 78,193, 93, 7,140,104, 92,193,209,131, 14,180,105,204,243,204,182,
-120, 69, 41, 33, 92, 39, 83,165, 48, 58,172,239, 99,247, 88,174,150,228, 24,233,165,178,157,231,113,161,123,145,149, 82,102,145,
- 38,183,207, 76,145,207, 62,121,202,227,199,247, 73,217, 83,253, 14,222,190,101, 91, 11,159,125,254, 41,183,111,239,179,187,152,
-184,123,231, 38,111,223,190,243,160,159,232,162,188,214,103, 54, 23, 23,108,214, 23,215,152, 60, 25,169, 90, 85,125, 52,213, 91,
-195,198,232, 43, 72, 96,185,187,207,147,167, 31,240,244,147,143,121,184,119,143,148,132,105, 90,178, 12, 75, 94,189,251,150,179,
-243,153,143,239,127,206,254,157,192,239, 94,255,158, 32,153,152, 61,179,220,153,239,158,119, 31,174, 51,146, 64,131, 3,133, 90,
-109,244, 33,176, 84, 81,143,232,235,206, 86,136, 98,164,148,189, 3, 48, 99,125,177,113,123,214,225, 59,214,155, 13, 55,119,246,
- 96,202,156, 95,156,113,122,118,200,171, 87,135,188,120,125, 76,140,194,122,189, 37,133,196,157,155, 43, 79, 91, 27, 54, 66, 51,
-215,167,152,249,235, 33,248, 23, 63,242,125, 96, 82,140, 87, 69,142,235, 85,114, 74,204,115,227,244,108,141,186,234,147, 90, 11,
-134,121,128, 77,239, 64, 98,189, 93,115,251,246, 29,166, 41,162, 89, 72,139, 68,180, 70,136,145,144, 50,151,167,103,132,166, 92,
-108, 46,120,240,232, 49, 90,132, 23,175,158, 99,230, 83, 32, 69,136, 57,185,219,163,185,104, 51, 70,165,149, 78,111, 70,169,202,
-102,187,165,183, 13, 65, 50, 41, 11,243,246,130, 90, 10,101,222, 50,133,196,131,251,247,121,117,112,192,106,113,155, 71, 15,111,
-211,203,214,243, 16,172, 96, 59, 1, 43, 62,205,139, 57,248,228,173,251,168, 40,150, 70,143,174,168,127,245,187,111,153, 55, 27,
-146, 68,106,239,180, 46,190,254, 9,145,157,197, 14, 55,118,118,145, 0,167,151, 23, 92,170,113,124,122, 64, 2,150, 59,183,209,
-222,232,101, 75,211, 70, 22, 65, 53, 96,234,137,131,223,252,238, 45,127,253,139, 95,243,237,111,126, 15,151,103,196,190, 38,166,
-192,180, 51, 1, 51,139,189, 91,252,241,159,255, 33, 59, 4,126,241,203, 95,211,212,136,139, 37,189, 13, 6,128,203,104,208,228,
- 81,184, 65, 92,108, 86,172, 49, 45, 2,235,245,134,121,219, 89, 78, 59,252,245,207,255,134,182, 57,231,199,127,244, 19, 30, 63,
-125,204,119,191,127,205,235,151,111, 8, 49,147, 72,227,108,243, 32,171, 22,161,184, 0, 7,219, 54, 74,203, 80, 10, 77, 29, 74,
- 99,189,141,224, 15, 63,188,213,160,121, 42,144,227, 98,123,199,106,245,117, 68, 85, 98,138, 4,241, 51,170, 53, 35, 5,101, 21,
- 34, 77, 29, 65,234,218, 37,191,120,166,201, 3,152,106, 83, 68,140,214, 61, 62,185,119, 37,141,231,180,138,141, 93,175, 79,143,
-218,176, 55,135,193,199,143, 49, 19, 82, 38,101, 37,212,138,244,140,153, 95,174, 26,125,237, 23,174, 28, 76,128, 73, 27, 9,194,
- 46, 28,235,109,140,173, 5,186,186, 31, 63,197,236,207,160, 53,239,214,147, 59,120, 90, 23,230, 90,233,181,163,181,186,115,170,
-121, 96,149,104,167,197,238, 49,109,173, 57,193,180, 55, 68,148,214,219, 32,242, 49,220, 83, 70,235, 13,237,144,228, 42, 31,125,
- 8, 33,233, 88,112,135,143,154, 23, 36, 88,247, 24,219,152,221, 37, 48,184, 40,102,140, 85, 98,245,168,103, 92, 63,224, 63,133,
-241,158,113, 29, 25, 92,205, 95, 71, 14, 97,124,190,226, 23,187, 54,191,251,186, 67,208,180,123,238,189,137,135,115,185,160, 54,
- 95,115, 90,176,238,140, 16,117, 77,136,217,247, 76,153,120,255,225,253,159, 74,136,215,255, 80,112,168,136,255,189, 92, 51,204,
-196,194,181, 50,221,130, 31,122,218,221, 78, 37,226, 93, 69, 74,227, 50, 28,101,129,168,199, 77, 94,253, 50,198,161,229,254,245,
-116,253, 6,219,168, 48,188,243,205,222,226,143,169,129, 12, 9,102, 83,223,214,167,228,172, 98,241,105, 38,166,141,222,188, 48,
-112, 75,150,139,233, 90,241,206, 95,132,209, 17, 95,137,197, 92,157,216,154,139, 70, 76,148,222, 60, 89, 45,166, 64,183, 78,173,
-238,169,190, 10,202, 75,226, 23,122, 55,168, 54, 34, 27,241,206, 38,134,232, 86, 59,140,144,133,136,249,123,149,134, 93, 47, 38,
- 22,217, 31,232,156,124,162,145,166, 68,169,179, 71,242, 17, 8, 99, 20,147, 9,195,226,230, 8,209,131,247,111,121,251,254,132,
-128,139,152, 44, 8, 49,102, 82, 78,163,232, 24,175, 80,252,247,199, 0, 49,123,150,188,246, 74, 41,149,185, 84,239,194, 9,215,
- 48,159, 24,220,114,209,186,143, 82, 76, 96,185, 90,177, 90,100,106, 45,108,231, 74, 85,239,162, 66, 8,132,148,145, 16,169,101,
- 75,142,194,135, 31, 63,227,193,163, 71,152, 68, 98,232,172,210,196,221,123,119,120,248,248, 9, 31, 60,122, 72,206,206,119,206,
-203, 29, 98,242, 66,105,103, 49, 49,133,161, 23, 72,105,120, 63,253,121, 72,163, 34, 87,223, 3,248, 72,113,140, 16,230,178,229,
-244,248,136,111,190,253, 45,223,254,250,107,126,251,187,111,120,251,246, 21,239,223,191,163,108,215,180,121,230,254,221,155,228,
-101,226,197,251,175, 57, 63,219, 16, 87, 59,144,221,183,220,154,147,158,220,161,167,148, 14, 22,189, 91,238,165,210,186, 82,250,
- 64, 2,119,144,236, 23,155, 52, 65,166, 72, 82, 97,187,157,121,119,124,192,249,246,144,180,232, 28,191, 63,226,229,219,119,156,
-156,156,113,118,118,204,193,201, 17,239, 14, 46,120,127,120,198,114,145,120,252,112,159,103,207, 62,224,135, 95,126,204,167, 31,
-220,226,197,171, 83,182,173,140, 80,161, 68,200,190, 56,177,232, 88,217, 24,174,160, 75, 54,166, 57, 92, 11,235, 66,246,244,193,
- 50,123,134,130,160, 20, 85, 2, 94, 44,171,250, 69, 40, 4, 74,157,217,187,115,155, 27, 55,118,145,234,123, 81,235,193,139, 28,
-129,105,103,201,246,244,152, 50,207,220,222,191,201,249,188,225,240,240, 0, 53, 72,203, 21, 41,174,200, 49, 16, 70, 76,113,178,
-192, 86,157, 9,223,230, 45,115,171,148,245,134,109,217,144,243,202,215, 87,189,145, 17,154, 53, 22, 41,241,213, 15, 30,240,187,
-151,223,178,119,227, 14, 33, 71, 90,219, 66,143, 52, 19,114, 27, 22, 36, 58, 73, 22,244,217,105,134, 94,108, 71,103,129,107,231,
-240,240,144,179,139, 75,215, 19,212,142,106, 37, 5, 97,185, 88,144,147,219,254,206,183,151,215, 29,138,160,204,165,144, 87,123,
- 8,201, 3,154, 48,106, 43,168,109,209, 54, 99,173, 58,102,179, 42,191,123,254,138,255,247, 23,191,230,215,255,240, 79,124,252,
-240, 1,143, 63,186, 77, 59, 57,133, 54, 35,171,137,211, 55,103,252,199,255,231, 23,108,180, 49,133,132,116,241, 8,216,214, 9,
-105, 66, 66,118, 36, 43,157,253,229, 46,155,217,169,142, 93, 59,102,202,106,247, 54,167,103,151,124,124,127,143, 31,254,228,135,
-236,220,122, 72, 98,230, 31,254,233, 27,247,200,147,232, 85,145,101,242,172,185, 46,104, 53, 82,247,149,141, 31, 90,141,237,188,
-185, 62, 10, 29,162,225,110,158, 58, 38,155, 6,132,230,226, 81, 29, 36,189,214, 27,162,234,122,168,118, 37, 72, 14,108, 91,161,
-245,226,251,250,152,188, 8, 32,211, 77, 41,117,235, 35,226,174, 36,137, 88,136,132,156, 60,167, 35,102,180, 84, 98, 55,183, 89,
-245, 97,217, 10,222, 16, 25, 14, 91, 50,233, 68,243,145,126, 71, 73,187,174,119,200, 18, 29,187, 13,228, 20,145,152,104,189,187,
-168, 81,235,152,168,250, 36, 88,146, 11,167,193,134, 31,219,252,252,194,159,253, 54, 23,255,206,104,119,141,151, 26, 13,232, 58,
-211,187,139,218, 84, 13,109, 74, 41, 67,224,233, 32,143, 81,216, 65,208,136, 49, 95,131,202, 80,247,236,135, 1, 3,194,174,198,
-221, 74,178, 68, 41,141, 16, 59, 77,187,159, 37, 22,105,189,141,179,209,239, 21, 53, 71, 14,155,249,249,106, 97, 36,152,138,141,
-251,205, 87,211, 93,205,159,155, 17,111,206,152,134,235, 16,231,114, 53,237, 29,159,173,119, 60,142, 65, 55,115,104,141,105,247,
-215, 28,188,169,245, 84, 74,134,211,161, 59, 57,240,193,131,187, 63, 13,163, 67, 54,211,161,214,214, 33, 62, 50, 31,243,217, 8,
- 66, 9, 78, 76, 19,240, 52, 43,243, 12,108,223,203, 15,161,221,136, 50,140, 35,228,197, 70,117,123,245,191, 32,120, 0,140,186,
- 95, 48,100, 79,115, 51, 13,196, 56,198,237,216,176, 73,248,120,217,180,187, 96,109,144,223,100, 20, 26, 72, 28, 42,236,126,173,
- 22, 86, 95, 51, 97,214,209, 40, 35,135, 79, 28, 85, 40,110,241,242, 7,211,197,101, 97,136,221, 66,240,135,175, 15,153,159, 43,
-208,187,239,194,109,224, 39, 51, 78,171, 35,186,104, 42, 69, 79,126, 11,230,136,216,152, 71,161, 33,136,172,188,240, 8,174,210,
-214,166,126,217, 34,172,114,114,157,129, 93,113,220,251,216,187,132,225, 62,128,245,229, 5,207, 95,188,161,206, 14,178, 49, 60,
- 21, 46,135,124,109,203, 11,146, 80,148,185, 86, 36, 70,130,138,143,131,172, 83,183,101, 88,208,140,144,178,119, 21, 87, 59,118,
-134,253,103, 84, 90,171,197,138,156, 38, 23,255,168,127,182,136,187, 7, 66,114,237, 65, 47, 51, 41, 9,159,254,224, 99, 30,221,
-185, 51,118,248, 78,162,107, 77, 88,174, 86,220,218,223, 35,197,129,215,149,137,188, 16,238,223,191,195,211, 71,143,249,228,179,
-167,124,252,241, 51,158, 61,249,144,135, 15, 30,113,255,225, 93,110,238,238,114,107,103,135,144,188, 20, 21, 73,195, 34,230,106,
-104, 83, 87,131,247,238, 99,181,210,102,214,155, 51,206,207, 79, 57, 56,122,199,119,175,126,199,219, 55,111,120,119,112, 72,109,
-133,180, 52,230, 57,179,218,221, 71, 91,245, 3, 52, 14,132, 99,247,196,175,210, 43,117,174, 88,117, 5,189,135,225,116, 66,132,
-184,138, 44,210,146,165, 76, 88,156, 57, 63,191,228,226,244, 20,147, 53, 79,159,222,228, 95,253,235, 47,249,227, 63,249, 17,183,
-247,118, 57, 61, 59,227,226,124,195,166,174,169,181,113,126,186, 97,154, 2,159,124,254,152, 39,143,239,113,251,214, 62,235,121,
-195, 47,127,245, 29,239, 79,206, 60, 60, 7,119, 82,216, 40,151, 91,237, 62, 94, 31,154, 15,128,152,174,254,125,240, 16, 33,241,
- 80,150,222,174, 44, 50,230,100,177,161,152,237,221, 45,153, 68,207, 91,120,250,228, 25,121,218,115, 77, 72, 82,178, 37,154,118,
-186, 42,139,197, 13,142, 78, 79,152,231, 66,140, 75, 14,142,222,115,126,121,129,154, 49,165, 76, 78,153, 24,242, 72, 21, 27,249,
- 6, 5,230,178,245,253,174,186,190,100,179, 89,179,179,191, 67, 94, 44,192,148,156, 38,164, 11, 33, 27,127,246,195,103, 20,221,
-241,233, 76,104,212, 16, 89,165,228,182, 83,160,149,121,196, 45, 7,180, 27, 83,112, 65,106, 27,171,151, 32,254,188,190,123,243,
- 6, 53, 31,139,202, 32, 39,106,112,234,222, 92, 11, 18,125, 2, 54,207, 30,106,212,123, 33, 38,183, 71,181, 90, 8,193,104,218,
-169,243, 76,169,227,253, 11,145, 40,129, 73, 18,197,224,240,240,130,143, 30,223,226,214,222, 77,222,190,124,203,241,233, 41,155,
-227, 99,254,195,127,254, 57, 63,255,229,183,110,229,237, 46,234,109,204,238,224, 69,145, 56, 17, 13,202,188,117,212, 44,194,118,
-187,198,186, 51, 61,130, 4,214, 23,107,246,246, 18, 79,159,220,231,238,253, 61,110,222,186,205,193,187, 11, 94,189,120,139,100,
-143,131, 13, 26, 40, 42,132,214, 92,104,137,249,104,183, 55, 36, 54,106, 83,130, 76, 76,171, 21, 18,179, 71,226,106, 64, 91,245,
- 11,163,225, 17,209,210,136,109,184, 64, 26,222,192, 8,222, 49,154, 81,108,156, 97,113, 92, 54, 33,208,181, 32,221,155,129,166,
-184, 67, 32, 12, 55, 17, 30,208, 67, 87, 84,103, 23,227, 38,255, 28, 50,222, 77, 55,115,161, 88, 83,195,250,140,116,163,139, 23,
-151, 26,148,212,101, 8,103, 61, 52, 75,128, 20, 5,181,177, 6, 28,128,179,101,136, 72,158,152, 96, 36,241,141, 75, 61,169,175,
- 78,171,249,110, 91, 32, 38, 40,173, 19,174, 96,161,226,214, 63, 9, 46,218,179, 90,177,226,246,178, 56,208,184,173, 59,142,156,
- 46, 67, 43,213, 92,249,111,174, 35,106,234, 26,170, 74, 31, 76,148,192,108,190,170,160,122,199,174,162,158,144,168, 66, 12,213,
- 11, 70,117,181,185,141, 9, 50,102,244, 16,168, 84, 7, 88,209, 6, 88,198, 6, 74,124, 52, 86, 68,108,196, 6,119,237,164,224,
- 98,111, 85, 35,152,211,255,166,232, 12,148,110, 67,159, 96,234,119,131, 94,173, 80, 96, 74,131,212,103, 62,170,167, 42, 9, 25,
-197,184, 23, 77,126,128,143, 88,200, 64, 64,194, 80,177,247, 43,180,169, 98, 36,223,211,104, 31,222, 58,239, 92,131, 25,166,133,
-102,193,119, 36,248,110, 55,166, 97,145, 24, 69,131, 96,238,205, 30, 92,117,183,186,123,215, 24,178,139,241,100,164,178, 49, 48,
-141,202, 8, 90, 48, 35, 6, 31, 11,169, 66, 78,217,197,121,230,201,104,158,163,110, 87,141,171,219,134,186,211,219,100, 68,217,
-217,213,104, 94, 96, 74,129, 46, 62, 77, 88,165, 48,172, 12,227,193,138,254, 87,195,173, 93,174,118,175, 68,117,159,116,192,119,
-236, 12,255,187,133,192, 52, 8,118,137, 72,136,138, 82,220, 30,163, 35, 70, 49, 12,127,166,193,102,158, 93,141,218,141, 28,161,
-182, 64, 53, 35, 14,192, 77,180,206,241,209, 17,235,117, 37, 79, 11, 98,188, 54, 87,249, 24,200,146, 71, 99,134,136,182, 25,173,
-142,147, 36, 70,223,161,209,105, 87, 97, 58,226, 95,124,144, 33, 70, 28, 56, 92,103,255,178,183,218, 97,239,134, 19,227, 74, 85,
-191,208,237,170, 91,112,235, 90,157,103,246,119, 22,124,244,209, 51,110,222,185,197,146,177,147, 11,238,191,235, 81,104,193, 71,
- 93, 89, 2, 57, 70,178, 24,181,204,104,116, 18, 24, 65,152,166,204,254,206, 29,238,106,163,196,193, 15,152, 27, 77, 27,141, 70,
-189,172,204,155,153,109,221,114,121,122,198,182, 84, 78,207,206,217,206, 91,230,222,152,231, 58, 62,115, 7,112, 69,132, 94, 11,
- 47, 94,125,199,187,163,119,252,248,203,175,184,255,228, 9, 89, 34,101,144, 15,117,246, 63,211, 34,100,182,205, 64, 43, 75,132,
-173,121, 14,168,136,139, 5,187, 94,241,218, 61,236,102,110,199,176,154,248,163,175,158,242,249,167,143,217,191,245,136, 26,215,
-156,189, 59,224,252,114,166, 53,175, 86,247,151, 43,182,173,112,247,214,210,163, 83,167, 5,235, 75,229,249,203,151, 60,127,121,
-192,249,201,154,157,157, 60, 16,157,174, 37,185,174,198,205,177,186,173, 43, 41,184,157,138,222,135,110,194,217, 3,243,166, 58,
- 0, 10,232, 50, 32, 80,214,221, 50,164, 29, 98,194,186,179,235,247,119,247,216,191,177,130,108,216, 28, 49, 38, 26,129, 30,183,
-131, 88,165, 92, 94, 94, 96,166, 28, 95,158,177,217, 94,210, 90,245,236, 7,235,104, 47,148,226,182,202,218,189,227, 17,113,218,
- 97,217,120,129,232,228, 66,248,147,175,158,177,183,183,207,127,250,249,175,216, 70,103,232, 55, 77,156, 85,229,206,205, 15,185,
-220,188,195,172,186,179,166,206,196,100,204,179, 50, 13, 86, 64,239,149, 36,141,218,149, 90, 11, 49, 37, 52, 8, 77,133, 91, 55,
-110,115,247,222,125, 46, 78, 14, 60, 19,222,160,213, 54, 26, 1,159,210,245,162, 88,114, 30,122, 31, 98,165,237,217, 25,203,157,
-125,154,217, 88, 19,204, 78, 95,171,219,161, 1,138,180,224, 54, 32,130,210, 52,240,159,127,254,119, 92,110, 47, 29,218,179,204,
-244,237,204,207,126,246, 91,154,249, 51,131, 86,234,128,146,168,184,122, 59,216, 26, 20,138, 86,206, 46,207,216,221,185, 73,235,
-221,105,111,150,216,174,215,172,107,225, 55,223,188,231,151, 63,251,175, 44, 22, 11,158,125,242, 17, 79,159,236,241,237,173, 93,
-222,157,215, 65, 95, 44, 35, 74,217, 92, 26,213, 59,166, 9, 74,163,180,230,235, 76, 18,165,108,137, 49, 16,186,239,226,147,224,
-182,195,232,151,170,199,176,118,255,239, 99,118,212,174,245,235,213,131, 12, 14, 70,107,190, 94, 42,163,104,215,190,165,169,103,
-104,164, 0,189, 39,170,205,196,184,160,215,153,185,117,166, 9,186, 85,164, 71, 90,139,232,213, 51,172,160,177,185, 8, 55,234,
-112, 46, 57,209, 83,204,156, 98,215, 42,154,129, 58, 46, 93,243, 6,224,234,252,113, 54, 7,244, 86, 9, 18,201,146,232,166,206,
- 19,240,217, 39,203,149, 50, 91,167, 87,104,181,147,122,248,190, 1, 85,163, 23,159, 56,134,152,125,197, 53,208,220, 69, 5,233,
-213,155,172, 56,249, 72,187,117, 82,244, 81,120,243,202,216,185, 42, 99,202,137, 25,149, 62,190,167, 3,110,150, 19, 90,253,253,
-157, 12,186,137, 79, 56,175, 86, 25,214, 7,198,103,140,194, 49,106,175,164,161, 27, 8,233, 10,157,142,127, 31,166, 5,210, 60,
-212,154, 81,200, 16,156,230,231, 43, 0, 95, 87, 88, 20,186, 65, 30, 43, 96, 21, 29,105,122,130,201,194,139,102, 43, 88, 20, 82,
-247, 66, 1, 11, 4,105,174,126,247,226,200,133,101, 54,114, 93,163, 93, 49,223,227,245,152,215,217,196, 46,154,210, 48,120, 37,
-166,174,176, 20,103,165, 75, 24, 49,144,214, 93,225,126, 37, 60, 27, 23,174,142,238, 63,228,201,233, 91,221,133, 28,193, 92,192,
- 17,130,124,127, 17,169,239,196, 98,242, 98, 40,146, 49,173,168,248,129,131, 92, 29, 60,226,169, 54, 67, 41,175,234,138,226,222,
-253, 77, 78,214,125, 44, 79, 36, 68,127,160,186, 42, 77,125, 95, 95, 77,199,174,201,247,219,142,220,236, 52,243,202,191, 99, 78,
-241, 82, 67,171,209, 68,201,113,225,157, 18, 56,230, 48, 36,194,228,106,126, 23, 55,249,100, 32, 52, 99,177, 19,105,150,145,162,
-196, 36,168,102,232,138, 76,157,156, 19, 92,118, 82, 18,234,168,144,183,243,134,195,211, 11,223,163, 4,135, 13,136, 68, 31,245,
- 39,255, 60, 34,217, 1, 26, 97,197,206,106,242, 14, 63,120, 53,218,155, 11, 87,124,231, 10,214,132, 24,199,164,162, 15,137, 86,
- 72,220,220,219,227,230,222, 30,115, 45,116,173,174,131,107, 62,250,137,100,162, 36,182,219, 13,183,246,118,248,252, 7,159,178,
-179, 88,161,189, 49,135,136,105,164,181,153, 60, 77,238,229, 15,209,225, 54,109,198, 66, 70, 84,153,166, 29, 66, 18, 47,106, 12,
-250,220,217,234,165, 43,135, 27, 72,107,190,163, 34, 49, 77,145,221,213, 14, 11, 11, 84, 25, 85,117,247,170,122, 46,149,185, 94,
- 50,111, 59,109, 46, 92,108, 46,216,172, 43, 23,103, 27,230,178,165,246,198,118, 91,120,253,238, 13,207, 62,249, 8,116,102, 25,
- 97,182,128,133, 68,154, 12,102,239,254,187, 37, 23,206,153,143, 84,139, 22, 22,113,137, 6,227,232,253, 27,206, 15, 79, 80, 43,
- 60,251,248, 30,127,250,163, 47,249,236,211,143,168,210, 57,219, 28,242,230,249, 17,207, 95,188,226,245,203, 99,222, 29,188,167,
-206,202,249,153,175,107, 52, 68,246,196, 71,140,175, 78,103,222,189, 57, 68, 21,166, 69, 30,123, 34,187, 22,186,244,246,189,231,
-127,208, 51,137, 83, 34,154, 81,139,142,156, 5,103,203,187,176,110, 20,169,234, 9,136, 14, 72, 1,186, 31,110, 72, 64,187, 50,
-237, 46, 71, 23,220,153, 38,223,125, 54, 81,164, 5, 66,111, 88,223, 80,234,150,139,205, 37,251,201,199,221, 86, 59, 58, 69, 74,
-131, 88, 60,129,171, 53,231, 38, 36, 34,183,246,118,185,245,232, 62,243, 60,115,112,124,196,209,187, 45,165, 54, 62,120,120,131,
-251,143, 30,242,151,191,252, 53,171,213, 10, 9, 19,203, 4, 55, 86,187,180,176,164,190, 86, 31,187,214,202,108,129,108, 11, 76,
-214,254,236,171,127,183, 26,213, 35,100,147, 67,116,130, 69,214,235,194,251, 55,175,217, 92,158, 95, 31,134, 18, 3,189, 20,162,
- 5,100,225, 7,143, 26,180, 90,252, 2,145, 54,120,218, 51,155,141, 63,189, 69, 43,148, 74,183, 74,235,243, 72, 98,100, 76,179,
- 6,227, 34, 24,223,190, 58,225,213,193,223, 18, 2,164, 69,162,215,206,155,131, 1,186, 25,147,175, 56,212,211,155,170, 36,203,
-228,133, 7, 45,181, 6,155,205,204,237,125, 99, 38, 51,215,130,138,114,177,217,208,204, 56,186,156,249,199,111,222,115,243,238,
- 63, 50,207,194,148,133, 56, 53,127,125,243,102, 20,107,145, 24,156,159,222, 76, 9,221, 3, 88,122,129,148,160,197,177, 54, 88,
- 23, 31, 57, 7, 7, 28,245, 10, 65, 60,194, 53, 72, 34, 37,165,170,123,200, 67, 80,122, 15, 4,117,117,248, 50, 70,146, 84,108,
-130,106,145,208, 11, 50, 67, 17,199,194,250,250, 58, 97,189,250, 5,210, 10, 21, 67, 19,108, 55,141,101, 88, 18,146,175, 58,139,
- 25,105,146, 33,118,118,251, 44, 42, 3,190,210,253, 78, 8, 6,213,207, 85, 33, 58,148,174, 43,219, 50,123,110, 60,129,104,222,
- 20, 20, 51,255,158, 7,176,224,118,190, 60,160, 43, 98,226, 72,228,209, 57, 71, 17,114,202, 52,107,152, 54, 23,111, 91,101, 10,
-145,174,141, 41,249,247, 29,237,204,120,243,167, 6, 86,202,160,181, 57,190,150,216, 9, 54,210,198, 66, 35,132,136,149,193,137,
- 8, 35,110,220, 60,223, 32, 52, 47, 30, 6,176, 16,105, 70,235,176, 8,114, 29,128, 22,131,255, 46, 27,211, 16, 27,107,198, 16,
-109,104, 9,124,154,171,226,223,183, 78, 39,152, 11,233,132,129,125, 9, 50,130,185,100, 60,223,131, 30,163, 14,100, 51,115,184,
- 78, 8,153, 64,165, 42,164, 52, 13,238,130,187,188,170,205,152,101,210,148,211, 53, 65, 76,162,145, 36,186,215,188,186, 21,202,
- 35, 29,135,244,205,240, 39, 77, 28, 81, 42,193,223,168,124, 37, 38, 11,120,247, 27, 92, 8,208,171, 91,116,166,156, 60,180,195,
-209,101, 88,136, 94, 65,170,251,221, 37,248,151,199,205,244,174, 42, 84, 4,137,145,116, 53,118,144,224,225, 6,201,109,110,125,
- 28,118, 58,210,204,174,252,244, 78,236, 50,166, 36, 16,197,173, 77, 87,244, 58,241,241, 83, 10,238, 19,141,209, 83,136,252,146,
- 31,190,120,186,115,134,211, 68,186, 50, 3,180,161,142,183,200, 98,202,222, 77,137,250, 67,150,253,181,182,222,145, 58,118,111,
-163,194, 18,235, 52,137,216,172, 30, 7,155,147,191, 86,153, 60,213,203,130,143, 83, 71,240,202,148, 4, 26,156, 28, 29,177,221,
-110, 73,121, 49,108,118, 78,226, 51,113,213,187,116,229,178,156,123, 76, 97,200,164,232, 22,149,170,149, 82,188, 67, 55, 11, 4,
-190, 7,240,244,238,159, 35, 24, 33, 9,203,157, 37,211, 98,193,118,222,178,221,206,148,174, 94, 33,170, 33, 41, 16, 82,160,213,
-153,189,157, 37, 31,125,250, 9, 55,119,110,248,197,143, 82,187,191,239,116,232,165,145, 87,201,133, 78,132, 17,222, 80,135,229,
- 78,233, 51,144, 19, 49, 76,244,114,137, 36,136, 53, 80,164,248, 26, 41,249,225, 48,205, 66,223,129,139,214, 28, 18,163, 30, 95,
-184,147, 50,139,165,176,220, 91, 16,250, 68,138,193, 81,148, 93, 41, 27, 69,181, 81, 74,101, 59, 55,106, 45, 14, 29, 34, 19,243,
- 2,237, 51,211,232,112, 52, 85,122, 80,122,117,122, 97, 87,163, 39,255, 98, 93, 92,158,240,230,237,107,202,118,205,221, 7,187,
-252,201,143,191,224,233, 7, 79,184,183,191,224,229,235,215, 28,157, 93,112,124,252,150,151,191, 59,230,253,201,134,139,205,154,
-205,122, 38,196,204,122, 91,169,189, 33,221, 59,140,222, 59,111,223,156,250,184, 49, 45,156, 15, 80,219, 16,133,126,239, 83,151,
- 1, 3, 82, 51, 82,136,104,113, 20,230,213, 84,170,142,188,234, 41, 39,239, 54,209,161, 52, 30, 41,133,221, 15, 12, 53,151,218,
-160,234,191, 15,119,142,244,230,154,136, 94, 28,208, 19, 36,178,202, 11, 38,113,187,141,213, 70,195,147,190, 68, 33,139, 57, 7,
- 91,113, 53,118, 74,220,190,181,207,141,219,183, 60,239,249,252,146,157,197,130, 47,255,236, 75,126,243,207,240,219, 23,239, 57,
- 88,119, 22,121,197, 78, 90,113,190, 94,115,161,153, 60,173,120,124,119,159, 95,125,189, 37,247, 72,154, 18, 76, 66, 91, 55,176,
-192, 86, 11,180,128, 36, 63,180,187, 5,178, 4,106, 54,222,191,125,195, 63,125,253, 27,108,158,137,217, 29, 29,115,117,186, 92,
- 16,161,170,210,202,214, 69,158,113,216,137,112,116,116,143,238,244,176,205, 6,137,110,169,181, 40,244,210, 8, 33,249, 94,146,
- 48, 38,117,238,116,137, 67,196,187,187,187, 67,179,206,209,217, 57, 71,167,107,223, 75, 6,215, 11,140, 22,206,215, 67,106,174,
-248,174, 67,148,106, 74,221, 20, 46,215,231,164,229, 2, 93, 87,106,245, 17,100,110,129,237,220,248,221,251, 99, 30,127,247,134,
-128,114,247,209,167,252,201, 31,253,152,119,255,233,215,204,165,147,178, 43,206,105,130,180,230, 90, 6, 81,102,221, 16,131, 16,
-101, 98,219,252,210, 10,209, 40,173, 66,117,196,105, 90,152,123,211, 45, 17,233, 20,109,238,151,150,136, 21,131,169,210, 69,188,
-176,178,206,166,155,235, 68, 48, 52,122, 96,151,153,121, 32, 81, 53,135, 53,153, 95, 78,168, 55, 87,193,154, 35,104,163,145,241,
-187,161,217,150, 94, 51,193,250, 0,139, 13, 79,188, 69, 50,193, 65,114,173,248,239,202,209, 27, 54,109,100,240,232, 99, 11,228,
-180,164, 7, 31,137, 47, 82,164, 79, 25, 9,153,214,103,135,182,196, 78,159,135, 86,196, 58, 83,152,124,165, 16,157,222,167,227,
-245,105, 52, 66, 95, 64,223,140, 48,166,171,239, 87, 98, 10, 13, 22, 75, 58,141, 86, 7, 27, 37,249,189, 21, 67,192,130, 83,240,
-250, 80,107,215,226,128,165,148,196,249, 4, 8, 21, 31,189,199,241,157, 37,121,130,105, 28,123,114,233,120,241,163,254, 44,132,
-152,209,226,239,135,133,238,150,186,170,132, 60,194,202,204,245, 0,134,141,187,210, 41,165,140, 12, 17,223,233,123,147,234, 23,
-117,244,212, 75,191,245,253, 46, 18, 87,243,135, 24,208, 90,208, 14, 51,190,122,179,110,180, 94,137, 31, 60,121,248,211, 16,130,
-179,200, 7, 43,125,146, 72,140, 54, 50,214,125, 39,236, 73, 97,174,126,215,107,141,188,143,237, 85,100,192, 94,124,111,226, 34,
-243, 56,140,241,190, 23, 39,142,102,121, 80,219, 2,190,219, 38,197,239,119,226, 35,192, 32, 12,118,176,143,186, 7,138,112, 84,
- 56,170, 62,238,182,145, 4,110, 64,235,230, 20, 38,174, 30,198,224,135,155, 94, 13,173, 93,196, 54, 68,134,215,136, 85, 69, 71,
-120,135, 31,184,138,177,154,226, 16,116, 76, 64, 96, 18,163, 53, 29,254,204,140,226, 9, 94, 59, 83,118,204,172,185, 13, 37,249,
-164,206, 59,156,156,198, 84, 66, 9, 57,195,232,176, 99,134,168,201,171,213,144, 61,197,103,116,189, 33, 56, 46,247,228,226,148,
-231, 47,222, 80,198,207,137, 33, 32,164,161, 50, 55,162, 36, 68, 34,203,189, 93, 62,251,244, 41,155,203, 11,230, 82, 80,243,204,
-115,237, 46, 40,116, 18, 19,195,101,224,107,138,213, 98,201,238,106,193, 34, 77,228, 52,177,153,103, 15,231,168,109,136, 63,198,
-151, 98,140,135,247,247,246,249,193,151, 95,112,235,214,174,115,171,195, 24,139, 13,109, 66, 72, 48, 77, 1,137, 19, 65,132, 69,
- 22, 22,209,195, 85, 8, 94, 38,171,186, 13,144, 86, 92,200,178,173,148,160,196,180, 24,228, 47,231,248,231, 28,233, 10,117, 91,
-124, 71,103,145, 90,175,104,108, 35,123,186, 42,235,186,101,189,153,209,218, 73, 4,114,154,200,147,176,179,187,100,218,217,197,
-146,142, 73,142,161, 73, 64, 58,165,109,233, 10,189,141,169, 77,240,247,176,215,153,195,247,239,120,251,246, 53,214, 58, 31,124,
-240,128, 31,125,246,132, 39,247,238, 97, 65, 57, 60, 58,229,155,231,111,248,237, 63, 63,231,235, 95,191,228,221,241, 57,151,151,
- 27,234,218,197, 53,189, 22, 90,245, 4, 49,134,168,235,252,108, 30,157,160,199, 65,234,176,171, 13, 93, 11, 58, 68,158, 97,120,
- 39, 83,156,188, 75,163, 12, 90, 30,180,238,225, 54, 62,253,234,126,152, 95, 89, 49,245,191, 85,157,186,156,215,204, 15,180, 15,
- 63,120,202,195, 15, 31,208,170, 23, 70,214, 6,241, 49, 71, 52,185, 3,225,213,239,126,207, 92, 46,217,219,221, 39, 69, 72, 83,
-230,246,157,219,236,223,184,193,238,206,130,148, 2, 41, 76, 60,120,240,144,189,253, 61,150,203, 37,155,237,153,135,117,244,198,
-159,253,233,231,252,235,127,249, 99,126,253,143, 95,243,250,229, 1,111,222,189,101,110,107,132,202,235,215,175, 57, 61, 63, 33,
- 10,108, 6,201,177, 26,208,157, 21,222,205,167, 63,102, 5, 13,133,160, 70, 32, 82,154, 79, 39,222,188,250,142,163,247,111,137,
- 41, 59,224,232,106, 42,193, 8, 95, 25,223,103, 9, 54,132,142,205, 15, 56,145, 49, 97, 26,194, 36,171, 99,119, 89, 17, 83,210,
-208,164, 4, 92,212,100,195,203,174,138,187, 57, 22, 75,126,240,233, 99,254,252, 39, 95,113,112,180,230,232,228,140, 56,214, 89,
-170,221,167, 8, 81,198, 72,246,138, 94,232,150,203, 40,208,212,184,121,251, 22,189, 42,165,108, 89, 78, 25, 11,137,121,179, 33,
- 50,177,179,152,216, 93,116,226, 98,129,234,146,111,191,123,193,220,221, 13,209, 90,103, 46, 74, 76,110, 57,108, 29, 66,118, 36,
-104, 47, 46,105,106,214,105, 10, 42,126,192,196,225,138, 16, 38,186, 56, 69,207,146,147, 59,181, 86,178,186, 86,199, 5, 91,126,
- 89, 89, 31,251,216,224, 54,219, 86,189,136,204,196, 49,229, 16, 90,173,174, 59, 0,212, 26,145, 4,137, 49, 78, 22,230,238,162,
-211,148,134,206,195,198, 25, 51,156, 53, 17, 27,252,244,224,205,105, 28,206, 40, 53,202,240, 94, 7,247, 2,121, 48,214,240,105,
- 95, 77,205,164,123, 62,195, 21, 7, 37,139,143,251,175,144,102, 82,125,245,192,176,174, 90,247, 3, 93, 71,123,103,131,186, 86,
-205,191, 63, 50,146, 58,175,162, 99,137,248, 4, 49,164,161,100, 31,196,205, 16,137, 9, 66, 28,142,151,101,246,207,192,188,166,
-115, 33,162, 91, 79,227,176, 5,171,185,139,160,117,255,243,197, 48,194,181, 2, 87,139,210, 97, 55, 27,106,252,232,211,239,126,
- 69, 33, 21,103, 80,136,233, 88, 53,140, 29,122,184, 34,124,250,138, 88,213, 32,250,250, 54, 6, 29,172, 16,220, 74,173,230,147,
- 39, 17, 44, 5,114,200,244,174,196, 71, 15,239,254, 52,132,116,189, 31, 13, 34, 99, 95,235,227,135,156, 93, 12,150,134, 36, 55,
-135,232, 25,187, 38,228, 44,164, 33,252, 9,146, 33, 8, 57, 48, 50,199,251,247, 66,177, 96, 67, 72,231, 85,160, 68, 39,101, 37,
-146,119,239,138, 63,189,209,198,126, 79,135, 7,211,199, 94, 87,231,151, 12,235, 91, 12, 35,215,124,140, 66,162,248,133, 23,174,
-119, 20,134,225,182,183,104, 87, 98, 46,187, 86,235,135, 48,248,207, 10, 41, 37, 31, 7,171, 34, 41,123,215, 52, 86, 10,225, 90,
-185, 31,134,125,220, 19,200, 2, 66,206, 17, 73, 78,251, 82,243,206, 32,192, 16, 7, 14,237, 64, 8, 36,113,192, 8, 18, 73, 41,
-147, 70,151, 72,116,225, 91,104,145,144, 2, 41,123,140,233,203, 23, 47,120,127,188, 33, 7, 87,198, 42, 78, 52,242, 11,222,173,
-108, 57, 46,185,255,225, 83,246, 86,153,131,131,247,180,238,221,106, 99,248, 44,199,123,165,227,240,239,173,177, 88,237,242,233,
- 71, 79, 73,162,180,106,148,222,188,106, 52, 70,242, 83,191, 38,226,165, 36,220,127,112,159,143,159,125,196,254,254, 98,240,134,
- 59, 70,119, 81,158, 8,139, 24,145,144, 8, 22, 89,166,204, 32,241,146,162, 34,221, 85,150, 17,195,121, 0, 0, 32, 0, 73, 68,
- 65, 84, 81, 53, 14,101,107,107,244,106,212,222, 33, 39, 31, 55,141,209,102, 88, 64,102,120, 64,107, 39,238,184,182,195,196,181,
- 27,105, 74,172,210,130,222, 58, 51, 91,130, 6,106, 51, 98,134,162,176,169,157,106,174, 2,183, 40,244,173, 39,239,165,168,244,
-217, 19,204,226, 78,134,117, 35, 36,119, 66,104, 23, 46,214,151,188,120,241,156,227,195,119,164,148,120,252,248, 30,207, 62,188,
- 77,154,150, 92, 94,108, 56, 59, 59,230,159,190, 61,226,229,139,119, 28,159, 92,114,185,105,148,109,119, 10, 97,239, 72, 8,212,
-185,146,162,211,214, 74,113,139,228,200, 58, 28,202,213,177,186, 26,244,168, 97,226, 28,194,184, 43,185,156,103, 9,228,148,136,
- 18,168,213,201, 87,134, 67, 55,180,251,116,203,139,231,241,124,143,113,190,224,251,197, 48, 70,118, 31,126,244,148,221,188,235,
-192,163,156, 40, 24, 49, 47,252,155,160,149,180, 90,160, 58,243,201, 71,159,242,217, 23, 95,240,236,222, 67,238,223,127,194, 71,
-159,125,193,141,253, 91,236,173,110, 34, 18, 88,237,237,176,123,107,207,211,173, 4,118,151, 59,220,188,125,159,203,205, 37, 39,
-103,149,255,254,223,252, 5, 95,125,246, 33,255,252,205,119,252,230,235,127,230,243, 79, 62,227,243, 47,127,204,102, 19,249,235,
-159,255, 21,173,117,110,223,121,132, 76,129,216,133, 82,182, 46,172,138, 99,189, 35,197,103,142,234, 34,185, 56,172,175,111,223,
-188,229,236,236, 4,137,129,218,113,177,173, 65, 27,103,132,136, 79, 36,174, 10, 37, 29,151, 87,111, 3,113,109,206,144,240,226,
-215,190, 63, 0,211,228, 7, 72, 47,174, 6,113,201,182,139,103, 85, 57, 59, 95,243,238,240,148,109,237,188, 59, 60, 99,189,217,
-248,119,118, 16, 7,175,224, 85, 30,131, 49,118,252,189,141,243,201, 51,198,151, 97,201, 34, 79,172, 55, 23, 35, 74, 26, 54,181,
-178,156,150,220,216,223,229,230,221,125, 98, 16,190,254,250, 27,222, 28, 28,210,106,244,104,229,170, 16,157,205, 16,136, 4, 51,
- 84, 20,107,117,116,123, 74,235,149,208,187, 79, 15,134,208, 77,212,249, 32, 34,157,201,140, 74, 0,139, 46, 84, 85,255,238,244,
-110,200, 20,189,166,174, 51,178,136,116,137, 80,189,251,116,104,138, 39,138,185,141,202, 65, 52,134, 39,198, 49, 10,169,201,160,
- 89,164,106,247, 53, 94,115,125,129, 12, 17,107,183,113,166,171,167,190,105,215,161,255,240,130, 61,154, 79, 23, 66, 31, 73,154,
- 58,146, 9,135,173, 59,117, 15, 48, 49,117,253,149, 74,245,115,184, 27, 57, 64,193,133,207,166, 66, 27,201,158,100, 25, 58, 41,
-127,143,212, 6, 0, 12,189,126, 93,173,251,179, 50, 69, 95,121,169, 8, 22, 59, 29,165,107, 24, 12, 18,183,210,198,232,147,199,
- 48,114, 53,162,184,208, 91,134,106, 61, 5,223,249,143,173,215, 40,166, 71,180,182,186,125, 45, 40,232,120, 46,186,186, 29, 55,
- 17,220,245,131, 79, 86,204,220, 97, 0,110,125,182,232, 13,160,168, 12,138,157,235,166, 66, 12,184,214,239, 74, 31, 31,104,125,
-252,204,225, 46, 98,196, 45,187, 39,219,241,197, 34, 66,188,113,107,239,167,243,118,166,110,103,230,178,101, 91, 42,219,185,186,
- 98, 15,175, 52,100, 36,203,132, 32,126, 49, 77,233, 90,204, 48, 45, 18, 41, 77, 44,242,130,197, 40, 0,124,239,235,213, 68,140,
- 30, 7,153,226,184, 34, 7,173,205,212, 71, 33,150,252, 66,116,101,188, 17, 76,137,230, 16, 16,141, 35,237, 39,184,103, 29, 13,
- 99, 13,224, 15,146,118, 87,204, 94, 69,143,146,133,160, 94, 81,129,179,205,221,255,238, 73, 86,190,171,247,226, 68,213,223,139,
- 62, 68,108, 46, 8,154,152,166,137,197,120, 64, 21, 27, 44,120, 23, 50,137,137,167, 37,198,232, 97,246,193,223,224,100,208,131,
- 16, 82, 32,146,200,203,137,197,238,138,189,157, 29,143, 44, 12,145,180,200,254, 97,198, 65,239, 19, 37,165,232, 36, 49, 20,137,
-194,229,229,154, 87, 47,222, 48,143, 47,157, 4,207,215,205, 57, 17, 83, 30,163,230,198, 20, 19,189, 52,222,191, 63,166,245, 70,
-109,149, 86,170, 31, 96,100, 66, 8,131,252, 54, 56,194, 49,243,217, 39,159,241,201,135, 31,112,122,114,204,241,229,197, 8,167,
-105,244, 62, 32, 12,230,222,208,219,119,110,241,209, 71, 31,240,225,179,167,228,156,177, 86,168,221, 71,167, 98,230,168, 73, 22,
- 44, 86,113,248,215, 23,132,165, 14, 21,183,143,132, 91,183,107, 78,126, 25,100,187,176,240, 3,112,154, 38,168,141,190, 45,254,
-190,103,163, 84, 88,152, 19, 6, 93,183,225,236,227, 62, 37, 22,198,112, 10, 8,181, 85,122,141,254,108,150,234,218,134, 20,152,
-154,171,230, 67, 16,114, 78, 44,131, 31,120, 1, 87, 0,247, 25,164, 87, 90,168,108,186,242,254,253, 1, 47,190,251,142,245,229,
- 41,251, 55,119,185,119,255, 22, 55,118, 92,124,178, 89, 55, 14, 15, 79,121,245,250,136,231,175,143, 56, 60, 60,101,189, 25,150,
-159,218,152,107, 37, 70,231,235,107, 11,212, 1,177,104,117,118, 71, 64,112, 1, 91, 24, 30,252,136, 23,119,138,251,139, 51,110,
-207,188, 74,112,186,218,187,153,186,194,223,221, 19, 12,111, 52, 67,244, 52,162,117,213,191, 31,225,218,238,226,211, 59, 51, 47,
-196,159, 60,253, 8,201,137, 44,209, 99, 74,131,176,191,152,136, 57, 51,207, 91, 98,217,186,102,165, 41, 71,199,135,156,109,103,
- 34, 66, 52, 79, 46,204,217,145,167, 0,139,180, 66,181,147, 45,178, 90,253,255, 84,189, 89,179,101,217,117,157,247,205,213,236,
-125,154,123,111,246,153,149, 89,149,213,163, 0, 1, 32, 77, 5,101,218, 18,237, 8,203,150,195, 86, 4,195,244, 79,194,223, 81,
-132, 95, 28,126,115,132, 27, 89,242, 3, 3,148, 68,152, 36, 72, 11, 64, 53, 89,168,204,170,236,111,115,206,217,123,175,102,250,
- 97,206,115,147,126, 66, 1, 72, 36,238, 61,205, 94,107,142, 57,198, 55,214,204,125, 97, 60,219, 80, 84, 89,246,149,255,238,159,
-255,103,252,250,203, 39, 60,249,246, 57,143, 31,190,199,221,251,239,241,241,195,219,220, 60, 91,113,227,206, 35,134,237,138, 48,
- 9, 61, 68,163,139,149,163,139,221,253, 24,101, 66, 37,160, 13,115, 12, 15,208,150,153,231, 63,252, 64, 80, 33,134, 68,239,213,
- 47,244,150,138,209,238,149,195, 88, 42,195,228,204, 2, 33, 26, 23,254,232,182,238,248,170,207, 38,236,186, 52,119, 92,119, 22,
-231,237,219, 36, 27,124,106, 74, 28,166,153, 31, 94,188,226,176,219, 95,151,249,104,247,135,183,119,146,103,177,110,243, 20,227,
-245,129,213, 20, 95,117, 52,198, 60,112,168,197,113,213,217, 92,248, 57, 17, 55,198,164, 80, 26,245,176,227,229,121,101, 58,242,
-191, 59, 70,135,171, 66, 81,107, 39,236,158,139, 87, 53,133, 34,123,175, 69, 80,143, 17,143,206,182, 72, 22,129, 43,170, 72, 52,
-216, 75,148, 78,139, 70, 86, 67, 18, 90,204,196,220,187, 51, 41, 90, 35,186,159, 33,198, 76, 20,175, 0,214,106, 10, 99,183,105,
-182,249,128,148,174, 75,175, 26,181, 26, 82,183, 5,177, 52,129,151,145, 72,196, 58,205, 37,218,119, 87,132, 94,237, 66,170,162,
-144, 44,193,100,222, 39,243, 79, 73,176, 42,100,237,198,140,192,169,163,201, 1, 53,213, 39,124,155,226,109, 45,216, 90, 49, 87,
-122,192, 7,181, 98, 20,182, 32,134,151,237,141,230, 43, 36,106, 55, 40,144, 39,147, 8,199,250,112,219,165, 71,204, 96,232,133,
-161,246, 28,244,169, 28, 95, 55,119,245,110,235, 96,151,203, 36,246,187,171,127, 23,155, 63,115,142,170, 18,106,150,185, 16,130,
- 49, 0,143,118, 53, 81, 87, 65, 13,104,166, 14,218, 50,244,178,186, 2,101,190, 3,179,114,188,107, 46, 13, 30,107, 19, 87,119,
- 37,152,220, 79,169,190,195,119,137, 28, 69,212, 86,175,241,206,237, 27,191, 8,189, 27, 55, 91, 58,218, 76, 86,234,117,166,181,
- 98, 38,134,165, 82,107, 99,105,141, 82, 43,165,116, 74,183, 93,116,109,226,191,136,237, 0, 82,202,246,195,135,196,144, 71, 35,
- 8,165, 68, 14, 22,227,176, 91,108, 36,199, 76,204, 6,166,183, 40,155,185,125, 91,179, 3, 78,213, 37, 84,123, 71,108,175, 30,
-236, 96,104, 88, 9,130, 65,244,195,241,249,102, 83,190,120,218,190, 91,230,176,105,243,226, 20,251, 67, 71,248,138, 98, 42, 68,
-120,215, 68,105,111, 70, 54,158,111, 45,213, 46, 12,110, 82, 16, 73,164,156, 9,254,207,155,205,138,152,173,122,116,149,182,172,
- 86, 25,141,129,117, 62, 97, 56, 73, 16, 35,245, 48,115,113,113,224,114,223,174, 47, 18, 61,192,184, 90, 25,201,204, 60, 78, 44,
-181,160, 13, 94,255,240,146,239, 95,190, 65,162,151,107,132, 64,204,129, 60,100,155, 42,106,103,119,216,147, 98,180,178, 1,237,
-244, 50,115,152, 23,154,196,107,212,175,122, 59,219, 17, 95,123,247,189,247,248,252,211,143,129,200,184,222,178,223,159,115,121,
-113,105,151, 43, 53,131,210,217,217, 41,239,127,244, 62,159, 60,254,128,245,106, 36, 54,101, 46,147,101,241, 91, 96, 16,187, 40,
-228, 60, 48,108, 87,244, 90,189, 77, 74,144,106, 15,221, 30, 18, 26,173,221, 78,114, 34, 69,199, 10,167, 72,104,238,152,111,205,
- 11, 42,132,213,152,136, 49, 27, 45, 43,218, 42, 38,164, 12,139, 80,154,237,239,123,181, 44,185,101, 80,124, 23,152, 35, 73, 50,
- 42,145,208,141, 76,117, 92, 29,109, 82,164, 84,163, 82, 5, 1,230,198,178, 76, 44,190,122,249,225,233, 51,126,255,236,123, 74,
- 91,216,110, 54,220, 60,221,176, 26, 7,154, 86,230,253,194,197,249,142,243,171, 75, 94, 94,236,216, 95,238,205,252,233,123,241,
-165,218,229, 38,196,104, 70,203, 86,125, 10,234,118,184,240,142,200,136, 95, 98, 69,109, 93,149,130,137,141,197,241,148,105, 72,
- 86,164,210,173,203,189,107,119,170,223,113,250,179, 67, 61,116, 51,155, 40,238,118, 23,241,138,228, 96,166, 28, 55,207,125,242,
-233,103,220,121,240,128, 49, 14,196, 65,209, 48,216, 23,165,207, 92,190,121,201,139,167,223,115,216, 93, 82, 91, 97, 59,172,201,
- 39, 43, 86, 97,100,125, 50,144,135, 53, 57, 25, 2, 57,133, 21, 33, 36,139,135,213, 74, 15,157,101,174,182, 75, 68, 89, 13,129,
-239,190,123,201,131, 15,110,243,193,251,247,248,187,223, 62, 67,180,113,239,238, 35,238,110,224,193,123, 15,152,218,202,246,129,
-173,209,162,241,213,135, 16,168, 75, 53, 38,133,211,228,162, 26,240, 74, 68,208,182,176,217,110,121,115,121,193,180,187,178,103,
-136,218,165, 93,123,247, 85,153, 15, 6,106, 4,178,166,238, 70,247,164, 64, 16, 91, 7, 90, 94,216,113,213, 40,181,204, 6, 53,
-233, 22,213, 21, 95, 37,198,144,188, 97,207,118,156, 57, 88,149,173,237, 73,109,205,102, 55, 4, 91, 9, 90, 74, 33,154,113, 81,
-196,163,176, 70,171, 44, 75, 97,154,247, 14, 12,202,228,156, 41,109,177,130,165,144,208, 5,186, 70, 94,190, 61,103,119, 48,104,
- 75,136,129,222, 26, 34,217,218, 33,219,132,198, 68,142,221, 94,171,166, 72, 22,250,226,113,191,152, 77, 74,246, 53, 76,104,150,
-130,232, 1, 66, 41, 4,146, 81, 24, 99, 2,245,127, 86,123,182, 43,118,241, 35,184,242, 81, 27,205,135,156,227,250, 43,103, 75,
- 17, 53,235,105,162, 22, 43, 49,169,221,158,201,173,129,132, 78, 19, 8,189, 89, 21,113,239, 4,245,195, 6, 39,141,170, 37,166,
-162, 68,135,127, 90, 41,146,205, 52,102,222, 13, 57, 94,203,247, 41, 37, 42, 70,187, 11, 21,138, 67,167,212,191, 47,141, 78,243,
-166, 69,179,111,217,103, 3,191,248,138,163,200,143,171,216,160,216,251,228,159,177,163, 26,166,106,123,240,224,127, 86, 85,140,
- 82,167, 92, 27,174, 43,174, 4, 35,148,230, 75,155, 0, 89,176, 53, 81,116, 21, 96, 94,236,239,141,199,203,130,122,198,191, 57,
-165,206,158,195,205,155, 51,113, 67,171,247,210,218,115,161, 70, 83, 3,180,217,170,214, 91, 59,205,220,109, 3,170,136, 85,188,
-210,252,194,234,207,108,146,181,127,198, 28,174,137,148,131, 36,150,218, 72,203,212,140, 82,230,199,106, 78,106, 5, 42,189,123,
- 14, 92,209,104,163,125, 95,204,249, 45, 78,114, 11,142, 84, 59, 36, 99,173, 7,201,132, 33,146,180, 81,154,144, 87,107, 70, 91,
-198,219,131, 62,153,196,159,106, 32, 15,195,245,164,220,164, 24,166, 82, 27, 37, 68, 74,135,144,149, 49, 25, 92,192, 26,119, 76,
-122,215, 96,114,251,177,196,195,140,114,157, 20, 65,107,179, 91,175, 88, 89,125,245, 72, 87, 20, 3,221, 52,154, 65,246,147,137,
- 76, 71, 87,126,208, 78,143,230,224,108,161,250,244,108, 46,202, 30, 32,198,193, 32, 14,201, 88,219, 42, 66,105,176, 76,197,118,
-151,253, 64,109, 11,243, 82,233,101,225,234,112,224,106, 42, 44,135, 3,181,204,246, 80,143, 35,195,106,197,106,179,225,228,116,
-203,102,220,112,231,193,125, 54,163,146, 10,148,174,206,249,182,203, 75,112,174,190, 68, 43,159, 65,132,245,118, 77, 63,114,245,
-181,210, 75,227, 48,205,148, 90,236, 65, 38,234,209,195,232,217,111, 32,193,126,127,224,245,249, 5,103,235, 21, 26,133,143, 63,
-254, 20,209,223,240,242,205, 21,119,239, 62,224,236,228,132,155,103, 39,172, 78, 87,180,226,238,253,208,223,197,171,114,164,134,
-192, 16,237, 0, 43,211,204,102, 12,206,142,183, 78,240,106,128, 2, 82, 22, 86, 67,224,224,114, 89,247,200,210, 24, 86, 4, 45,
-214, 11,156,215,196,184,102, 46,123, 6,148,144, 71,148, 66,172, 21, 77,182,198,233,197, 34,134,173, 69, 99,111,163,132, 56, 88,
-195,209,210, 33, 41, 81,186,253,108, 93,233,154, 48,204,245, 66,205,208, 14,205,162,118,173, 16, 99,228, 48, 85,158, 63,253,142,
- 55, 23, 23, 68, 85,242,176, 98,189,201, 40,202,213,110,103, 6,165,171,153,214, 59, 75,129,105,182,126,229, 94,187,229,148,109,
-183,130, 40,148,121, 54, 92,102,180,104, 76,237,139, 39, 39,108,202,241,238, 93,186,154,185,235,236,108,228,100, 51,242,242,249,
- 57,218, 59, 99, 74,215,240,155, 35,220, 73,143,152,228,214,253,139,110, 12, 88, 21,147, 36, 77, 46,118, 47,137,243, 36,106,179,
-248,225,143, 62,253,130,207, 62,253, 49,173, 43, 63, 60,123,202,131,199,239, 83,175,246,188,126,251, 3,203,114,129,104,228,228,
-100,203,122, 60,229,244,244, 6,171,213, 17,244, 19, 24,214, 35, 45, 70, 78,243,138,185, 44,196,101, 38,164, 21, 75,155, 72,131,
- 17,202,163, 10, 81,173,208,100,232,157,179,237, 41,255,250,223,254, 45,127,254, 47,254, 19,254,224, 39, 31,242,235,191,251, 61,
-111,119,133, 54, 77,220,189,125,131,147,141,114,177, 88,189,173,204,142,157, 78,230,161, 9,173, 17,219, 98, 42, 79, 20,150,194,
-117,255,130, 14,129,199,143, 62,224,111, 95,190,180, 75,142, 4,107,240, 82, 55, 96, 10,212,102,201,133, 64,180, 29,166, 4,180,
- 47, 38, 79,122, 27,150, 25,138,178, 13, 29,101,246,149,156,213,245, 14,121, 96, 61, 38,166, 90,188,253,209, 36,207,168,182,206,
-105,106, 10, 83,144,232, 96,146,119,151, 4,241, 24,169,170, 82,123, 49,195,149, 42, 90, 23,135, 65, 37, 75, 19,228,234, 14,245,
- 78,157,139,121, 64, 90,103,183, 44,148,182, 99,149,239, 80,166, 78, 74,234,235,160,153,189, 87, 44, 47,165,112,104,141,117,202,
- 44, 46,243, 75, 72,118,177,243, 34,158, 42, 98, 50,125, 79,206, 32,247,238, 12, 96, 72,194,210,141,155,168,173,162, 43,203, 87,
-167,144,208,214, 72, 57,209,163, 80,131, 48,136, 41, 34,225, 24, 33,235,129, 40, 74,141,197,214,157,161, 91,190, 90,133, 62,153,
-202,106,220,122,227,105,116,233,150,155,215,234,205, 98,205,170,156,197,160, 55,170, 66, 95,140,179, 33, 61,120, 89, 76, 48, 47,
- 78, 19,230,106,180, 56,154, 88,225, 18,213, 6,179,166,244, 94,168,106,205,101,221,171,137, 99, 12, 4,127, 93,213,135,183,214,
- 13, 26, 19, 75,132, 49,218,179, 65,148, 34,230,112,239,199,237, 87, 13,164,228, 43,186,210, 8, 67, 50,162,228,210, 72, 99, 32,
- 13,163, 39, 7,196, 27,218, 32, 5,203,142,183, 46, 44,154,104,209, 58, 28,186, 19, 84, 45, 13,213,188,162, 89, 72,132,235, 66,
-179,138,130, 38,130, 90,130, 39, 37,243, 4, 25,147,249,232,142, 47,102,110, 52, 61,132,118, 60,204,155, 80,163, 93, 78,162, 43,
-185, 29,195,245,138, 68,106,179, 72, 99, 12, 62,188, 98,175,117,177,211,144,248,224,238,141, 95,136, 90,198, 88,125,191, 80,107,
- 51,135,179, 79,226,173,218, 95,218,163,213,110,102,137,190,224,247,224,191, 21,117, 91,252,166, 22,187,217,181, 70, 91, 22,230,
-102,109, 92,181,207,236,246, 51,211,178,152, 27,216,247, 32,165, 88,221,170, 6,163, 9,165, 28,145,176,178, 94,247,148,200, 67,
-242, 3, 46,146,194,177,137,205, 92,224,209, 39, 21, 28, 90,208,220,240,102, 45,236, 38,133, 70,130,213, 37,138, 16,162,129, 25,
- 68,109,146, 82, 58, 73,163,187,249, 29,104,163, 70,109, 3,203,214,167, 56, 48,140,153,213, 38,147,135,200,144, 2, 63,124,255,
- 3,191,253,234,247,188,120,249,150,139,243,115,158,191,124,201,171,215,231,236,118, 7,174,118,151,156, 95, 94, 81, 14, 11,173,
- 89,211,142,121, 20, 76,254,139,173,112,249,230, 53,207, 95,189,228,106,233,172, 54, 39,228,152, 32,219,225,113,117,190, 55,230,
-189, 24, 6, 54,199,129,253, 97,199,220,149, 60,102,155,152, 91,161,148,153,195, 97, 98,174,139, 93,118,186, 37, 24, 66,200, 68,
-204,120, 39,222,244,181,236, 39, 74, 19,238,220,188,101,231,124,202,220, 56,189,201,237,219,183,184,251,240, 1,219,205,198, 12,
- 65,222,160,135, 99, 75,135,117, 70,116,160,183, 5,180,217,197,102,136,150,177,116,114, 95,202, 66, 30,173, 99, 56,118, 83, 88,
-150,102, 92,230, 62,123,169, 65,181,106, 90, 29, 50, 12,145,158,236,178, 88,157,240,219,180, 81,171, 48,172, 70,131,204,180, 9,
- 51,194,170,181,238,117,239,142, 22, 51,243,149,106,230,152,156, 7,186, 70,210, 24,145,212, 25,213,204, 83,211,174,210,155,103,
-103, 67,102,154,246,124,251,251,175,121,245,250, 13, 34,194, 48, 68,198,149, 25, 67, 75,179,252,244, 82, 42,115,105, 76, 75,101,
-169,166, 40,128, 53,192,117,237, 94,172,107,173, 72,173, 26, 56,162,183,238,189,247, 6,201,177, 41,178, 95,179,245,171,118, 90,
-169, 24,253, 81, 88, 74,183, 38, 45,239, 73, 56, 62,136,155, 90,252, 82,176,216,139,113,158, 77,166,195, 15,147, 16,205,192, 36,
-209,214, 30,173, 21,136,129,207,191,248, 49,159,125,246, 99, 68,149,231, 47,190,165,206, 51,135,233,138,221,229, 75, 86,121,224,
-244,228,140,147,237, 9,183,239,220,229,244,236, 6,163, 8, 11,194,201,118,205,230,230, 13, 78,238,221, 97,236, 29,141,131, 87,
-209, 22,139, 12,161, 12, 57, 19, 52, 17,194, 64, 12,129,185, 20, 22, 9,140, 41, 83, 74,227,230,221, 7,124,244,222, 77,126,249,
-215, 95,241,250,237, 91, 62,124,239, 46,127,242,199, 63, 33,172,132,111,159,190, 69,147, 53, 47, 90,245,103,112,242, 93, 68,195,
- 64,144, 64, 21, 69, 66, 38, 4,155,158,106,239,220, 56,185,193,213,229, 5,231,231,111, 13, 91, 45,129, 36, 98,242,104, 53,194,
-161,118,155,222, 76,206,108,199,122, 65, 75,204, 56,210, 90,131, 69,165,212,110,212,164,144, 33, 25, 79, 98,189, 30,184,117,114,
-202,122, 28,174,177,205,174, 96,210,177, 75, 32, 57,209,171,248,100,239, 94,158, 33, 33,201,146, 40, 41,101,143,249,218,238, 56,
- 39,119,158, 11,228,156, 57, 59, 61,229,234,176, 51,243,237,122, 69,115,137, 95,187,178, 90,159,250,202, 68,169, 49, 81,251, 98,
-235,196,218,161, 47,166,202, 89,216,140,156, 34, 73,188, 90, 53, 64,247, 70, 63,237,193,148,225,230, 81,212, 36,104,104,182,182,
- 9, 56,169,206, 62,139,199,184,169,200,177,215,219,192, 76, 33, 37,139,129, 53,113,188,161, 56,226, 20,122,177,215, 58,250,202,
-163,131,119,119, 88,242,232, 58, 30,150,193, 66,238,130, 54,239, 31,239, 54, 92,136, 26,157,240,200,149,144,227,174,190,119, 74,
-179,157,180, 28,205,159,209, 10, 82,106,175,102,112, 86,165, 53, 65, 28,151,218,245,168, 94,249,247, 66,133, 65, 34,157, 70,164,
-211,186,120,124,179, 90,227,184,239,236, 69,156,175,160,246,140,239, 62,168,136, 8,161,185, 17, 51,225, 23, 55, 3, 65,213,165,
-251, 37,189, 83, 93,129, 39,218,180,222, 61,142,218,143,124,250,112, 92,147, 4,186,151,181, 4, 9,214,200, 22,154,179,219,142,
- 21,192,118,105, 58, 54, 48,166, 96,234,135,186,225, 60, 74,176, 88,182,226,173,167,141,226, 24,109, 99,167,200,245,164,159, 13,
- 51, 72,239,199,207, 70, 51, 31,131, 6,226,189, 59,183,127, 33,170, 84, 18,146, 50, 67,176,195, 50,250, 11,212,142,165, 39,110,
-128,232,254,144,171, 62, 99,116, 63,252,205, 8,100,110,238, 16,146, 31,246, 71,244,172, 57, 49,135, 36,164,222,160, 54, 14,243,
-194,180,204, 28, 14, 7,174, 14, 51,203,116, 96,127, 40,236,167,153,101, 54,154, 82, 13, 38,173,208, 20,201,129,152,147,247,253,
- 90,255,121,148, 64,136,102, 36, 27,162, 51,114,187, 18,163,145,184,108, 33,233, 82, 87,176, 93,142, 73,215,239, 90,219,130, 87,
-180,166, 60,152, 89, 34,216, 58, 65,130, 50,228,129,156, 77, 18, 73,113, 69,107,149, 87, 47, 95,240,244,187,239,173, 69, 43, 70,
- 90, 45, 44,211, 66, 41,197, 84,135, 14, 33, 39,134, 97, 96,187,222, 48,140, 3,113, 72,156,158,110,249,224,206, 9, 39,235,196,
-229,161, 48, 77,149,195,229, 57,175, 95, 95,146,214, 43,110,108, 54,188,122,250,130, 23,111, 46, 9,217,233,122,113, 96,189, 26,
- 89,166,189, 91, 37, 76,130, 47,213, 14,244,226, 32, 19, 61, 22,242,136, 92,223,144, 81,163,249, 5,191,141,199,144, 56,187,117,
-195,138, 2,150,206,144,147, 97, 92, 49, 96,144,210,141,117, 45,150,205,215,118, 52, 6, 89,205,162,237,145,229, 26, 97, 24,188,
-110, 19, 79, 19,235, 98,104, 34,141,102,196,171,181, 17,197, 92,198,137, 64,233,141, 36, 16,226, 72,236, 64,175,100,212, 38,224,
-214,200, 41,217, 52,177,152,105,135, 56,144, 93,242,157,139, 27, 73,146, 66, 78,172,176, 66, 25,235,130,111,132,208,160, 8, 75,
-155,153, 14,149,185,152, 76, 22,135,200,238, 98,199, 87, 95,125,205,238,242,146,144,108, 37,176,202,150,157,157,166, 70,105, 11,
-101,169, 44, 75, 99,158, 11,197,110,179, 38,201,250,151,158,107,252,100,117, 40,209, 49, 67,218,253,224,117, 24,198, 63,128,179,
-244, 86,209,230, 12,135, 16, 41,222,213, 46, 94,240,160, 30, 67,107,189,154, 49,211,251, 6,244, 56, 5,136, 94,239,205, 77,189,
-180,194,147, 20, 2,235,117,166,169,242,163, 79,127,196,103, 95,124, 70, 90, 39,158,191,120, 77,189,122,203,122, 28,105,109,225,
-189,251,247, 57, 61, 61, 97,123,178,229,100,181, 37,110, 6,171, 86, 21, 24,242,150, 7,119,110,145,215,137,172,118,216,149,150,
- 9,173,144, 66,181, 7, 89, 52, 3, 83,144,192, 24,130, 21,153, 40,228, 32, 28, 14,133,178, 40,111,119, 19,127,242, 71, 95,240,
-228,233,151,252,245, 95,253, 61,127,254, 47,255,148,255,225,127,252,111,121,117,222,248,238,249, 43,166,203, 61,218,173, 78,211,
-184,182,107,178, 55,229,229, 20, 77, 97,106, 46, 79,246,197,138, 99, 84, 56, 57,185,193,197,229, 57,187,253,206, 40,122,197, 34,
-142,193,190,184,206, 96,183, 97, 34,250,103,188,138,189,182, 71, 95,131, 93,202,204, 36, 23, 37,122,121,145, 82,171,178, 44,133,
-165, 26, 59,123, 53, 12,220, 60,221,208, 74, 97, 55, 77,244,110,135,157, 73,159,134,108,182,117,162, 93, 16, 66, 55,215,114,142,
-131,247, 43, 44,212, 86, 60,215,108, 28,254, 60, 36,182,155, 19,166,195,236,187,100, 37, 15, 17, 93, 26, 33,143,164,156,169, 90,
-168,125, 54,168, 14, 66,238,221, 14, 3,245,137, 54, 36,178,154, 1,178, 98, 7, 81, 67,137,213,214, 87, 68, 43, 3,145, 96,151,
-194,238, 89,106, 9,208,171, 90, 43, 32,150,248, 17,245,122,107,119,135,247,102,138,152,224,145,169,100, 64,174, 46,214, 58, 40,
- 68,122, 53,179,114,196,134, 38,162,153, 87, 59,102,212,236,165,160, 89,136, 49, 18,186,210,155, 81, 57, 69,149,166,213, 46, 16,
-193, 19,129,189,217, 10, 69, 21,169,126, 7, 11,230,171,234, 98,147,184, 21,100,169, 53,187, 57,213, 82,212, 76,162, 67, 18, 47,
-209, 50,243,116,119,249, 90,213, 42,161,235,162, 52, 49, 21,150,110,236,143,166,225,122, 87, 45,193, 94, 83, 28, 50, 35,193, 36,
-108, 53,249,216, 59, 34,174, 87,211,230, 59,195,188, 25,173,155,242,219,151, 74, 84,115,237,215, 35, 66,219,245,222, 24,109,210,
-238,210,108,144, 12,129, 94,171, 69, 32, 37, 57, 70,199,108,239,221, 29,253,210, 45,106, 28, 7, 87,178,163, 94,247,150, 52, 12,
- 54, 19,163, 87,109,119,177,203,156,116,211, 2,252, 92,141,120,146, 38,218,122, 69, 92,246,143,167,167,155, 95,180,218,232,205,
-160,254, 75,183,136,154, 89, 5,162,239,119,147, 85, 70,134,204,144,236,225,110,101, 39,209,205, 83, 86, 39, 34, 62, 45,214,222,
-168, 75,165, 19, 9,106, 73, 70,155,159, 59,115,183, 61, 73, 45,133, 82,109, 79,217,123, 35,116,165, 46, 11,165, 53,122, 93,104,
-173, 49, 47, 51,243,188,216, 65, 95, 27,243, 84,153,150,153,165,246,107,226, 79,147,227, 27,174, 72,138, 12, 49, 19, 83,102,200,
- 86, 56,145, 7,147,168, 98, 20, 86,155,124, 68,236, 50, 12,201,234, 38,135,196,144,162,221,209,130,237,204, 36,192, 56,172, 65,
-224,205,249, 5,175, 95,191,229,245,243, 23,252,240,244,123,158,191,186,160,107,180, 86,181,186, 48, 47,139, 53, 3, 5,187,252,
-196, 49,179,221,110,216,108,206, 56,189,113,131,245,176, 97,115, 54,114,182, 93,145,164,243,230,114,225, 80,149,148, 51, 67,138,
-148,121,226,234,106,207, 50, 53,222,188,125,115,205, 12,136,193,147, 5,218, 25,134,108,194, 74,107, 44,243,204, 92,138,187,114,
-125,162,247,213,128,161, 86, 35, 99, 30,188,181,206,190,116, 49, 90,188,112,117,122,194,144,163, 89,118,196,110,193, 93, 22,170,
-199,143, 98,108, 22, 93,115,132,110, 41,157,160,141, 85,206,182, 59,170,194, 60, 21,123, 88,198,232,230, 15,231,184,247, 72,163,
-154, 19,182,219,205,191,247, 70,143,120,196,208,153,238, 78,189, 11, 40, 61,123,202,162, 65,149,198,220, 22,106, 21,234,210,209,
-184, 80,196,202, 68,114,198,219,204,204,213,222, 17,134, 4,105, 5,181, 26, 14,178,165,102, 57, 85, 1, 36,145, 99,230,237,155,
-215,124,253,229,239,216, 93,236,104, 10, 67, 78,140,233, 24,111, 18,235,132, 47,157, 86,139,237,197,107, 49,220,163,154, 90,213,
-154,183,171, 85, 51,238,136,154, 4,142,231,160,123, 63,186,174,237, 51, 85,187,119,162,123,251, 83,142,153,228,171, 45,219,193,
- 31,213, 20,155,248,123,213,107,163,102,192,168, 85,215, 37, 63,222,192,103,208, 33,115,196,133,100,255,159,173, 42, 31, 63,254,
-152, 47,190,248, 17, 41, 7,246,251,137, 23,191,127, 98, 23,239,222,249,248,253, 15,121,244,248,125, 98, 94,113, 99,115,139, 49,
-103,242,102, 52,147, 99, 26, 89,159,142,220, 58, 59,181, 98, 35,133,188,186, 5,251, 43, 66, 16,187,212,104, 99, 19, 78, 29,136,
-100,242,102,237, 11,171, 49,209,177, 75,191,212,198,249,235, 75,222,238,103,254,201, 31, 60,228,175,126,245, 21,255,249,159,254,
- 49,171,237,138,178, 95,248,217,231,159,242,246,242, 21,111,118, 87,164, 4,171,148,236,129,213,141, 79,160,241,136,157,109,168,
- 86,186, 87, 30, 55, 13, 12,171,145, 59,119,239,179,236, 14,188,124,249,194, 98,143,201,158, 31,150, 26,176,200,172, 56,111, 91,
-157,105, 97,185,119,219,157, 91,143, 68,240,142,138,102, 74,100,115,201, 82, 34,135,105, 98, 63, 45,222, 97,175,230,137,145,206,
- 52, 23, 47, 92, 50, 99,168,155,162,157, 2, 88,137, 41, 89,175,131, 19,253,138, 75,200,218, 59, 49, 38,255,204,116,198,213,200,
-180, 44, 44,147,193,122, 98, 16,134, 65, 25,226, 72, 72, 3,165, 89,161,144,173,154,108, 10,238, 94, 67,157,131, 16, 36, 27,221,
- 17,203,175, 75, 11, 80,173,112, 4, 9,134,120, 61, 26, 7,163, 77,194,189, 27,219,160,149, 74,139, 74,202, 35, 34,205,250, 5,
- 36,210,197,164,109, 51,178,194, 48,200,181,191,160,187, 81, 75, 34, 44,254, 60,166, 91, 39,123,148, 64, 76,131,149,202,168, 33,
-151, 83,180,146,170,210, 5,157, 11, 33, 65, 17,243, 29, 28, 63,179,234, 4,182,235,236,117, 0,205, 70, 13, 77,158, 15, 23, 12,
-156,132, 38, 90, 47, 4,154,169, 57,218,188,138, 56,250, 90,197,163,156,189, 25,111, 64,195,117,132,177, 97,191,187,157,150,166,
-250,106,105,239,136,164, 98,166,209,238, 96, 53,179,191, 4,122,176, 60,184,122,118, 60,104,183,159, 37,121, 61,150,152,164,110,
-131,164,241, 68,172,138,213, 46, 82,122,125, 17,115, 22,187,250,235,233,158,140,224, 61,233,199,195,250,200,118, 15, 4,186, 24,
- 34, 54,184, 55, 68,130, 41, 11, 70, 78,181, 46, 10, 31,135,237, 50,155,189,132, 76,205,112, 23,197,214, 2, 98, 95, 38, 7,215,
-216,170, 36,222,184,121,243, 23, 61, 6, 67,182,122,144, 30,109,104,175,212,230, 59,141, 86,169,165, 25, 58,210,161, 32, 34,129,
- 72,183,219, 14, 30,217, 17, 65,226, 64,246,252,177,248,180,161, 57,146,101, 97,222, 79, 28,166, 98,152,217, 32,118,235,165,163,
- 85, 41,199, 95,250, 24, 95,195,126, 14,113, 96, 71,111,149, 86, 23,179,242, 99, 15,206,105,178,202,204,233,112, 96, 55, 47,148,
-106,248,201,165,153,187,180, 54,111,197, 10, 66,146,108,177,179, 97, 32,229,196, 42, 38,198, 97, 68,178,144,194,192,122,189,102,
-179,202,108, 86, 35,235,237,150,216, 42,191,251,237,127,228,247, 79,159,211,230,198,126,183,103,127, 40, 86, 75,233,133, 39, 98,
- 72, 61,182, 39, 43,110,158,109,185,123,123,205,157, 59,107, 78,214,107,242,176,229,198,201,134,245,217, 0, 61, 82, 22,229,226,
-178,114,121,176,223, 95,189,182, 53,196,132,244,198,197,197, 37,115,245,233, 66, 60, 45,174, 30,219, 33, 26,108,165, 76,148, 90,
-175, 89,245, 33,216, 94, 39, 88,141, 29,104, 55, 52,109, 76,164,193,235, 65,181,155,100, 24, 3,159, 60, 56,227,238,217, 9,189,
- 69,222, 94,158,115,152, 15,244, 82,169,189, 91,185, 77,173,214,254, 20, 32,229,200, 42, 69, 66, 14, 84, 21, 67, 84,122,243, 93,
-136,102, 49,237,197, 72,249,189,153, 67, 62,103, 51,127,148,178, 24, 36,166, 9, 25,177,150, 49,173,246,103,134,136,180, 72, 28,
-161,213,104,239,109, 12,132,165,211, 67,162, 39, 65,103,123,143, 7, 13,150,215,143,130,144, 88,202,132, 86,200,106, 41, 2,218,
-145, 26, 88,145, 60,146,186, 80,197,118,249,231,151,151,124,249,213,111,185,188,220,115,114,178,181, 27,122, 11,164,113,160,139,
-178, 56,119,189, 22,219, 79,181, 96,114, 95,111,149, 82,171,125,245,146, 79, 61,221,157,196, 46, 67,226,196, 41, 31,211,129, 70,
-169, 71, 83,166, 18, 99, 96,200,217, 43, 37,171, 61,232,187, 32,209, 46,151,218,222,201,182,193,149, 33,219, 17,246, 99, 15,177,
- 73,159,106, 19,178,122, 73,227, 49, 90,245,225, 71, 31,242,179,159,255,156,148,132, 10, 60,123,250, 12,180, 81,181,114,227,236,
- 22, 55,111,221,102,140,137,205,250, 38,103, 55, 78, 25,114, 98, 41,133, 30,225,246,233, 67,182,171, 21,123,148,170,153,243,171,
-115, 94,190,122,193,102, 53,162, 81, 40, 77, 88,180, 18,157,139,176,234, 3, 75,177, 29,241,152, 86,208,133, 97,101, 15,232,213,
- 58,242,253,243, 87, 60,122,239, 17,159,127,116,151,170,107,126,243,229, 87,252,242,175,254,146, 63,250,233, 79,249,248,211, 15,
-121,246,244, 41, 83, 85,131,254,116,155, 50, 58, 66,104,133, 62, 36,147,104,165, 67,207, 72, 88, 17,134, 0,181,144, 72,220,189,
-247, 62, 33,193,155,215,175, 41,165,216,193, 46,225, 24, 1,230,221, 63, 28,205,175,118, 32, 90,226, 38,121,205,129, 77,119,222,
- 67,121,109, 88, 53, 75,148,186, 90,208,184,119,255, 30,103, 55,110, 51, 29, 10,117,153,141,213,175,226,244,178, 35,147, 92,144,
- 40, 36, 73, 6,130,202,201, 48,215, 62,249, 25, 33, 80,145, 36,108, 86, 55, 40, 75, 99,183,187,160, 54,101,153, 23,134, 24, 57,
- 57,187,109,166, 48,178,201,206,189,153, 23,168, 31, 65, 49,214,207, 80,123,167, 37, 65,212, 24,247, 82, 26, 37, 52, 24,252,130,
- 92, 45,174,149,196, 38, 56, 1,164,117,219,171, 70,203,102, 27, 99,164,211, 99, 52,213,169,217,255, 62, 72, 64, 91,177,203,143,
-100,130, 9,253, 70,201, 67,105,179, 93,110, 37, 10,164, 35,200,200,226,151,161,187,210,201,145, 67,225,109,152, 98,138,106, 24,
- 3, 57, 24,219, 95,187,213, 6, 75,136,164, 56,152,161,175,154, 60,109,159,113,135,165,182, 74,243,152,113, 8,194, 82, 23,187,
-120, 75, 48, 53,178,123, 71,130,103,226,123, 55, 4,109,243, 66, 42,136, 86, 42, 22, 2, 41,252,131,212,130,133,166,141,252, 25,
-236,114, 29, 48,172,184, 38,156, 63,208,173, 21, 82,155,189,151,206, 29,160,138, 23,177,200,245,217, 70,239,215,121,114, 61,130,
-108,131,184,236,110,177,212, 99, 3,104,116, 24, 69, 8,205,140,110,226,241,213,163,220, 78, 39,137, 73, 98, 33,138, 61,103,150,
-102, 60, 19,191,176,168, 26, 4,204,124, 85, 71, 60, 94, 36, 13,225,186,207,196,115,212, 32,129,140,241, 29,226,118,187,253, 69,
-239,225,186,183, 86, 9, 72, 72, 22,235,136, 1, 73,137,113,200,228,144,204,140, 38,234, 77,103,222, 18,213, 26,197,191,244,173,
-155, 27, 82,189,249,170,248,164, 24,188,235, 60,134,129, 16,131, 73,224,118,169, 50, 85,206,155,168,130,247,214,182,218, 88,106,
- 53,140,107,244, 47, 83, 56,198,234,188,162,240,104, 36, 59,246, 29, 55,181,219,122, 47,230,136,165,176, 76, 7, 46, 47,246, 92,
-205,133, 82, 11,135,101,177, 56, 84,173, 20,119,207,171,218,151, 52,143,145,184, 30, 24,199, 21,155, 85,226,135,239,158,240,187,
- 39,223, 19,226,200,144, 35, 75, 89, 40,221, 63,236, 1, 98,202,156,221,124,192,123, 15,238,115,243,108,224,246,141, 83,238,223,
- 62,229,206,217,218,216,195, 75, 70,210, 8,179, 29,102,251,195,129,182,216,161,105,140,120,147,105, 84,108, 50,139,226,147,173,
-250, 27,235, 49, 63,235,224,110, 76,117,161,151,238, 7,140,231,149,187,151, 37, 4,147,222, 37,218,155, 29, 82,230,244,244, 4,
- 45, 11, 75, 41,212,218, 89, 13, 3,255,248,199,119,184,123,170,124,245,237, 83,190,125,242, 13,111,223,188,228,106,191,227,222,
-141, 21, 67,220, 80,106, 39, 69,235,140,206, 49,178, 94,153,255,160,137, 77, 61,116,119,106,214,110, 29,201, 98, 81, 45,137, 24,
-101,171,218,195, 69, 99,179,114,144, 33,209,232, 44, 98, 18, 85,136,201,157,174,194, 56, 68,234, 92, 76,226,235,176, 10,129, 18,
- 20,157,155,237,252,180, 50, 74, 34,100,101,154, 59,211, 98, 78,252, 20, 50, 18, 12,124, 33,254,101,110,245, 88,103,106,153,213,
- 23,207, 95,242,213, 87, 95, 50,207, 54, 89,173, 54, 43, 62,120,124,151, 56, 6,118,135,133,222, 11,173, 86,159,172,171, 93, 12,
-154, 49,226, 75,171,140,121,100,179, 93, 91,245,108,109,102, 92, 52,195,133,197,170,174,165,118, 67, 39,155, 43, 30,251, 28,197,
-228,145, 66,139,168, 93,175, 43,252, 61,147, 99,119,186,167,210,180,217, 69, 65,143,123, 63, 9, 30,213, 50,217,181,117, 43,140,
- 56, 94, 24, 62,121,252,152, 63,252,217,207, 73, 67,162,246,192,114,152,249,230,171,223,161,189,112,235,244, 6,119,110,223, 49,
-216,201,201,150,241,228,182, 81,207,106,160,118,225,253,247, 31,113,186, 61, 99,154, 39,174, 46,222,176,219,217,191,182,221, 37,
-183,110,223,182,203,116,180,104, 99, 18,161,210,233, 89, 57, 44, 11,195,106,100,179, 89,161,193,212,187,221,225,138,231,207,127,
- 96,218, 79,188,126,245,134, 63,255,179,255,154,175,190,126,198,223,252,250,183, 60,121,242,146,205,122,195,207,190,248, 49,207,
-190,126,202, 55,223, 60, 37,159,108,108,162,113, 53, 41, 72,165,213,224, 19, 81,117,202,158, 16,142,181,201, 4,100, 16,238,223,
-187,199,205,155,103,204,243,129,121,182,142,123,117,186,229, 17,250,147,146,239,108, 67,178, 74,215, 24, 60,190,165,174,142,244,
-127,176, 54, 57, 18,168,212, 77,118,230, 82,174, 75, 97,187,217,114,178, 25,216,237, 15,102,252, 76,201, 17,216,226,123, 84,123,
-207,179,151,159, 12,121, 32, 32,204,203,100,102,177, 38, 52, 21,134,152, 57, 57, 93,113,255,246, 77,174, 14, 19, 83, 57, 0,141,
- 49,175,216,156,222,180,159, 95, 2,170,145, 24,212,232,102,217, 30,240, 29, 83, 71, 2, 46,103,183,192, 82,139,199,118,223,149,
- 87, 69,181,120, 88,247,246, 72,232, 84, 9,132, 96,242, 49,193,248, 27,109, 17,143, 74, 25, 1,165,251,164, 23,114,176,162,146,
-121,161,185, 57,204,106, 65,149, 88,204, 1,111, 70, 51,107, 99,235,189, 32,201,211, 67,193, 61, 8,230, 42,176,247,180, 85,146,
- 64,194,228,207,212, 85, 0, 0, 32, 0, 73, 68, 65, 84,200,104,221, 77,134,228, 72, 84,187, 72,217,251, 36, 84,109, 6,136,242,
-194,232, 35,229, 79,124,202,150,238,184,153,230,151, 47, 9, 84,143,232,250,182,158, 32, 6,165,178, 53,170,199, 30,181,217,186,
-194, 39,124, 57,166,165,130,237,188,165,118,126,242, 96,203,103,159,124,192,171,157, 82,247, 7, 52,114,173,148,225,112, 24,187,
-115,116, 90,232,164, 44,148,218,140,251, 95,171, 87,111,219,243, 64,220,199,225,179,249,187,194, 22,169,136,228, 35,198,203,212,
- 82, 53,238,137,164,224,235,205,134,118,167, 21,138,208,163, 48,136,197,211,186,255, 89,195, 69,123,137,161, 95,106,136, 9,191,
-214,217, 64,133,163,106, 53,160,193, 84,170,148, 98,188,150,180,142,131, 71,239,141, 5,159,154, 75,163,101,107, 64,247,113, 2,
-196,218,166, 44, 98, 16,200,126,123, 52,170,144, 73,185, 43,127,203,180, 23,147,123, 8, 54,217, 30,225, 27,248,171, 23, 18,121,
- 48, 51,140, 54, 51,146, 73,138,148, 98, 82, 3, 30, 73, 56,198,181,122, 41,204, 77, 73,238,224,180, 8, 73, 32, 37, 65, 75,225,
-160,221, 50,144, 29, 82, 10, 12,221, 17,138,205,220,131, 90,103, 84,132,101,110,236, 93, 54, 78,195, 64,218,217,180, 36,154, 9,
-114,224,187,223, 63, 39,143, 43,195,140, 6, 37,101,219, 9,222, 56, 27,233,181,176, 28, 26,171,213, 13, 30,126,248, 25,151,207,
-255,142,195,220,200, 33,163,193, 92,172, 81,160, 44,133,178,219,113,185, 76,180,214, 88,161,164, 52,128, 8,193, 91,238,196, 75,
-230,187,218,206,176,149, 78,209,133, 97,149,125, 31, 5, 75, 51, 35,200,177, 8,225,216, 85,175, 30,163, 72, 41,144, 99,194,250,
- 26, 58,189, 28,216, 93, 98,151,162, 60, 18,129, 7,239,109,153,181,241,219,175, 95,242,252,135, 31, 72,162,164, 20,184,117, 58,
-112,186,106,188,126,253,146,188, 57, 35,135,126,237, 65, 16,172, 98, 82,101, 97, 41,110,210, 74,208, 15, 70,202,147, 20,173, 81,
-170,192, 32, 13, 37,219, 36,227,114,243, 50, 87,210,144,136, 77, 88,101,207,150, 78, 21,209,198, 20, 71,208,196, 82, 39, 98,142,
- 28, 80,202, 98, 4,170,156,148, 82,149,121,217,195,224,151,159,110,107,159,113, 48,170, 88, 95,108,143, 90,117,177,216, 79,105,
-104,237,124,247,226, 25,191,127,242,148,185,118,114, 54, 88,207,213,213,158, 87,111, 51,219,117,162,213,133,165, 52,178, 87,215,
-106,183,242, 18,233,134,119,220,110, 79, 25,115,102,119,121,201, 82,139,197,187,130,101, 84,139,171,237,221, 47,179,134, 14,182,
- 41, 60, 37, 75, 9,208, 77,130,108, 90,175,227, 87, 40, 84,127, 56,105,199, 47,193,253,186, 87, 93,189,220, 66, 67, 32,180,110,
- 49,201,113, 96,181, 57, 97, 53, 14,108, 87,107, 86,219, 53,119,110,222,224,198,233, 45,210, 42,153,178,213, 59, 57, 8,203,188,
-231,100,115,131,245,233,134, 33, 12,172, 87,103,172, 78,238,241,254,227,143,233,203,142,167,207,158, 80,231, 29,175,158, 25,109,
-173, 1,211,126, 71,233,157,155,247,238, 65,181,120, 95, 37, 50, 79, 87,180,218, 56,180, 66,185,172,212,101, 97,179, 74, 12,227,
- 64,239, 43, 78,198,206, 85, 57, 16,242,138, 59,103,119,120,246,253, 83,158, 61,189,226,242,170,241,225,135,247,248,119,255,254,
- 63,240,195,239,127,224,127,254, 95,254, 55,238,221,191,199,189, 71,119,224,111,102,130, 54,102,245, 73,165, 43, 45,143,116,170,
-113, 40, 52, 18, 82,162,149,137, 52, 4, 90, 53, 78, 67,153,109,157,115,255,222, 7,220,186,125,151, 87,111,223,240,246,135,231,
-188,121,251,154,171,171, 43,230,186, 88, 84,114, 1,213, 68, 26,160, 30, 21, 13,237, 4, 13,174,123,180,227,253,216, 46,255, 33,
-160, 85, 25,178,152, 91,187, 9, 47,223,158,211,165,243,233,135, 15,185,119,247, 22,223, 61,123, 99,135, 97,118,154, 88,235,150,
-255,207,182, 70, 80, 26,211,178,103,157, 7, 86,195,154,171,125,101,174, 51,170,112,178,218,176,205, 3,127,252,179,143,216,108,
- 50,191,254,205,215,172, 67,229,214,173, 51,131, 63,185, 73,110,169, 19,213,137,156,171, 16, 96,108, 76,123,207, 40,199,232, 15,
-248, 25,137,230, 48,111,173,147,177,180,135, 87,193,184,252, 42,212,217, 18, 33,244, 78, 13,129, 32,141, 58, 53,191,200,128,178,
-166,117,163,209,133, 96,189, 13, 38, 59, 99,205,102,221, 14, 5,210, 17,141,106, 7,101,107,199,136,151,253,255,244,208,105,243,
-108,254,130,232,121,116, 85,195,119, 19, 1, 27, 34,204,219, 16,160,204, 84, 53, 9,123,105,190, 19,111,174, 62,117,107, 43,235,
- 26,136, 97,160,206,147,169,118, 93, 8, 14, 25,210,108,125,227, 33, 98,174,119, 55,188, 53,197,234, 90, 93,225,106,158, 4, 73,
- 41, 27, 11,194,115,121, 34, 66,168, 22,132, 22, 81,238,220, 94,243,232,243, 79,249,143,111,159,113,245,246,156, 80,172,106,181,
- 59,183, 61,104,178,193,101,101,107,130,190,188, 75,167, 48, 36,106, 53,195,179,246,102,238,116,167,198, 5, 73, 14, 74, 91,140,
-155, 16, 33, 30, 29,118, 93,104,126, 49, 55, 96,158,123,102,164,251,138,219,134,234,170, 66, 74, 92,211, 85, 21,107, 97, 84, 53,
-116, 55, 13,132, 66,105, 28, 93, 61, 22,131,211,238, 91,123,165,147, 72,130,231, 37,181,155,140,115, 68, 10,250,228,220, 29,104,
-127,180,241,139,239, 66, 76,194, 18,223, 17,218, 77,199, 24,229, 29,130,201,133,225, 90, 34, 59,118,160,219, 62, 40,138,120, 20,
-195,238, 57,109,174, 72, 74, 30,180,143,150, 13, 28, 34, 57, 56, 80, 64,205,185,217,213,235,250,146,185, 1,231,185,248,238,223,
-195,167,189,219, 45, 42,218, 11,177,244,104, 46,122,181, 47,142, 54,107,216, 89,220,104, 21,189, 54,181, 76,123, 46,206,103,230,
- 98, 95,202,152, 34,105,216,112,115, 29,157, 78,133, 53, 61,133,136, 72, 96, 89,148,152, 35,243,238, 21, 63,188,216,144,154, 33,
- 93,175,166,137,133,145, 94, 22,222, 94, 30, 12, 9, 90,173, 9, 73, 17,230,238,178,149,187, 39, 67,176,157,211,245, 30,198,119,
-219, 90, 11,135,229,192, 42, 15,215,125,245, 57, 7,150,163,132,230,102, 32, 83, 46, 2, 49,173, 24, 87, 35,120,231,117, 91, 26,
-157,133,113, 28, 16, 34,155,117,226,253,135,167, 60,125,250,156,223,126,243,138, 20,133, 97,140,172, 55, 35, 49, 37,254,254,155,
- 11,110,158, 13,220, 59,205, 44, 58,154,108,223,132,165, 86, 74,175, 30, 29,244, 93,104,203,196,236,152,221, 94,201,209,107, 68,
-155, 85,239,206,251, 3,195, 48,218,100,235, 28,126, 65,153,154,115,166,131,157,142,165, 78,180, 22,104, 75,101, 14,157,218, 35,
- 67,112, 10, 20, 74, 81, 65, 75, 37,201,154, 30,148,245,198,178,158, 13,119,136,246, 14,213, 10, 83, 76, 52,236, 60,249,246, 91,
-190,249,250, 41,138,245,217,219,174,206, 62,155,175, 95, 93,114,158,130, 49,213,251, 59, 78,107,183, 80, 56,173, 11,219,147, 19,
- 98, 10,236,118,123,150,102, 78,109,187,145, 91,228,112,169, 6,233,209,250,238,247, 18,167, 46,134,144, 29,142,241,142,128,168,
-250,110,183, 75, 15,166, 14,104, 39,167,200,141, 91,103,108,198, 21, 57, 15,108, 86,107,203, 9,175, 7,134,148, 57,221,222, 96,
- 76, 3,228,129, 30,149,172,153, 60, 36,242, 0,189, 8,109,241,169, 32, 69,222,188,125, 73,211,206,217,233, 77,110, 13, 39,220,
- 58, 59, 65,214, 27, 98,134,171,229, 37, 47,159, 62,167,206,123,150,203, 43, 90,104,200, 16, 88, 71,152,123, 97,220,222,230,209,
-131,143,168,151, 47, 25, 86, 43, 78, 78,215, 92,188, 86,230,195,142,114,190,183,198,189, 97, 75, 80,171, 91, 21, 13, 28,106, 69,
-165,114,231,244,148,245,253,123, 76,203,158, 90, 34,247,238, 62,228,223,254,197, 47,105,218, 25,182, 3, 47,223, 60,225,219,111,
-127,195,221, 59,143,108, 85,149,172, 38, 50, 39,208, 98,157,231,189, 87,107,218, 11,214, 5, 63, 14,214, 69, 29, 67, 32,137, 82,
-138,192, 42,209,180, 16, 36,112,251,244, 62,247,110, 61,162,177,112,254,234, 5,151, 87,151, 44,135, 3, 87,187, 43,166,121, 97,
- 41, 11,243, 60, 95,239, 54,131,187,156,197,129, 85,118,136, 53, 82,136,220,190,119,143,135,247, 31,243,252,229,247, 60,127,241,
- 61, 49, 4, 94,191,185, 96,153, 23,110,223,186,201,184,138,182,154,105,198,216,142, 18, 24, 66, 50, 40, 86,109, 8,133, 74,228,
-144,148, 60,140,108, 55, 91,118,251, 75, 68, 50, 45,116,166,101,199, 7, 31,158,112,247,225, 31,178,187,170,188,190,120,129,196,
-145, 82, 13, 83,220,231, 74, 82,161, 19, 73, 88,244, 81,131,184, 2, 58, 82,169, 68, 42, 41, 56,136,197,229,236, 41,184, 65,203,
-105,144,189, 43, 50, 36,194,102,180,103,101,155,233, 75,123, 7, 59, 9, 66,202, 1, 74, 69,130, 45,179, 53,118, 40,193,148,163,
-108, 53,216, 96, 53,173,210,124,119,220,205,148,233,248,148,235, 18, 45,165,112,108,229,238,238,228, 78,201,128, 41,181, 26,119,
-210, 48,191,209, 20, 23, 47,115, 33, 68, 83, 26,143, 13,144,173, 59, 65, 77,205,249, 78, 51,108,171, 87,197, 74, 55,111, 2, 45,
-155,235,157, 74,175,254,115, 58,191,161,137, 24, 78, 92, 29, 36,147, 26,165, 44,132,144,232,170,100,231,143,136,255,251,210,224,
- 87, 95, 95,240,235,215,191,226,205,219, 43,130, 22,219,193,183, 64, 20, 83, 15, 66,119, 53, 85,173,218, 54,166, 0,120,137, 88,
-241,102, 53, 28,250,226,207,107, 91, 33,169, 51, 7,130, 55,105, 26,213, 84,130,119,169,104,177, 75, 88, 55,133, 81,147,201,250,
-164, 64,175,134,180, 85, 47, 38, 27,130, 61,123, 53,184,111,173, 86,154,202,181,235, 62,113,164, 38, 70,183,230,171,149,135,121,
-121, 78,234,248,206,192,119, 19,142,193,242,135, 89, 39,164,227,222,208, 76, 72, 33,184, 59, 87,237, 0, 63,238,127,187, 40,210,
-202,117,206,214,114,155,114,236,104, 3, 17, 98,244, 41, 95, 77,126,138, 41,145, 82,179,182, 41, 95,141, 37,177,130,135,170,134,
-191,172,150, 24, 39, 36,203,245,150,224,198, 1,196,214, 2, 41, 16, 99,164,246, 66,113, 9,116, 92, 39,234, 50, 51,207, 51, 85,
- 44, 22,151,180, 50, 77, 54,253,199, 16, 41,105, 32,171,177,154,167,253,129, 42,194,106, 28,173, 64,195, 10,135, 80, 39, 60, 17,
-186,237, 91, 83, 71,151,133,222, 58,227, 56, 16, 67,161, 94,189,177, 66,152, 80,233, 49,112,245,226,146,125, 89,204,217, 24,178,
-117,221,250,100,189,120, 82, 32,132,102, 70,147,102, 55,200,222,236, 0,171,205, 71, 65,177, 3, 96, 70, 33,102,134,152,144,174,
-108,214, 35,178, 30,108,210, 81, 65, 93, 58,174,243,204,164,199,238, 98,115,251, 11,126,211, 85, 37, 37,248,254,201,115, 94,190,
-186, 66, 21,198, 49,179, 89,143,148, 89,185,184, 60, 48,207, 74,138,157, 87, 87, 59,182,219,100,181,137, 75, 35,169,201,116,165,
- 45,150, 66,168, 21,177, 22, 12, 59,181,170,210,135,104,166, 69, 73, 68,109, 48, 70,170,152,212,166, 85,220,101,218, 65, 6,106,
- 12,208,140, 36,183,214,200, 44,202,144,147,205, 18,163, 48, 47,149, 90,187, 85,202,170,213,216,138, 90,182,185,102,195,137,246,
-165,144,176, 28,231, 82,102, 74, 13,164, 28, 40, 75,227,249, 15,175, 57, 44,149,113, 48, 6,114,136,110,112,105, 98,148,170,169,
- 80,151,106, 30, 3,113, 35, 77,179, 53,204,176, 30,137, 57,177,223,237, 88, 22,143,162, 4,177, 30, 99,109,180,186, 88,187,154,
-127,164, 3,182, 70,138,241,184,167,109,215, 82,189,250, 83, 47,250, 14, 86,233,212,165, 16,134,200,227,123,119,249,252,163,207,
-184,115,239, 30,102, 45,140,164, 77, 36,231,209,164,208, 90, 81, 77,204,165,177,148,153,200,104,211,147, 86,154, 70,200,118,216,
- 36,127,120, 60,251,230, 9, 39,219, 45, 39, 39,183,121,252,197,143,204,165,127,152, 56, 28, 18,207,255,214,228,113, 13, 74, 14,
-137, 86,103,164,251,133,184, 84, 62,255,226, 67,138, 78,228,245,192,106,157,216,159, 95, 25,107,190, 8, 93, 19,235, 85,167,199,
- 68, 95, 58,196, 72,110, 5, 77, 48,110,173,220,167,134,133,199, 31,125,204,195, 71,159,114,126,245,130,255,245,255,252,223, 9,
-154,248,199, 63,249,132,213,250, 67,238,222, 61,225,135,151,175,184,117,243, 46,159, 62,188,195,111,190,126, 67, 15,149,158, 38,
- 43,217, 8, 66,207, 66, 47,209,162,143,165,122, 47, 66, 96, 42,149,180,138,244,217, 26,183, 66,176,146,166,185,205, 68,137,220,
- 58,187,205,173,219, 15,200,161, 25, 19,162, 44,212,178, 48,237,206,121,251,246, 45,251,221,129,105,191,103, 94, 38,255, 78, 69,
-134, 49,114,118,118,147, 7, 15, 30,178, 61,187, 67,208,145,143, 63, 57, 97,187, 89,243,237,183, 79,160,119, 46,119, 19,251,249,
-149, 69, 63,131, 80,103, 8,110,160,141,195,241,144,240,181,143, 59,189,181,136,113, 15, 70,101,154,246,212,105,226,106, 31, 89,
- 14,157, 15, 62,190,195, 31,254,209, 99,158,124,147,120,245,182,178,168, 96,133,143,157, 78, 70,106, 67, 67,177,105,176, 70,235,
- 43, 32, 34, 75,161, 71, 37, 53, 33, 71,235,139, 87,143,223, 85,108, 47, 29,114, 67,154, 77,244,170,179,151,124,152, 43, 62,166,
- 96,106, 81, 87, 88,212, 28,244, 33,121,201, 79,165,117,123,166, 80,109,122, 44,158,123,166,219, 10,179,213, 64,141,141,152, 2,
-145,129,134,173,226, 74,181,193, 42,199, 72,175, 92,163,151,105,206,253,192, 25,253, 65,236, 96, 22,107, 12, 58,242, 66,164, 44,
-198,177,143, 1,209, 98,185,119,143,193,209, 3, 85, 43,177, 97, 9,145,102, 17, 45, 51,193, 59, 97, 78,212,144,230,209,152, 9,
- 21,117,143, 86,114,234,229,145,193,208, 41,209,122,229, 67, 82, 35, 26,210, 57,223, 79, 48, 61, 71,123, 33,134, 72,167, 64,200,
-116,141,180,210,173,160, 38, 7,139,209, 73,181,245,226,177, 37, 81,187,173,127,125,181,150, 66,176, 53, 5, 88, 67,137, 31,194,
- 33, 90, 10, 74,232,244,122,188, 84, 54, 7, 25, 89, 65, 87,244,213, 17, 94, 70,102, 3,132,197,127, 75,180, 85, 79,108,226,107,
- 85, 75,192,207,126,182,166,104, 96,156,238,195,114,119,131,109,169, 21, 45,141,212,125,214, 13,130, 79,228,174,178, 59,113,169,
-219,167,216, 91,165,172,152,158,238,144,148,227, 98, 5,131,248, 6, 49,105, 71,157, 19,127, 52, 20, 57,201,154, 86, 3,234, 55,
- 45, 81, 99,101,207,190,111,116, 20,182,199,212, 18, 49, 89,252,172, 91,170,131,168,137,113, 21, 89,121,198,143,230, 48,125,137,
-144,132, 84, 21, 89, 37,147, 73,188,249,138, 85, 34,166,129, 85,118,201, 40,118,130,154, 1, 98,158,118, 92, 58,171,123,149, 71,
-134,100, 69, 3,117,113, 89, 92,173, 32,161, 53,203, 35, 55,231,209,207,197,220,176,211,162,172, 71, 97, 46, 51, 82, 27,200,154,
- 60,140,148, 82,172, 63,120,240, 55,172,120,111,175,216,135,162,186,241,207,216,246,141, 86,142, 78,126,187, 5, 18,130,197,181,
- 56, 18,254,237,203, 54,140,137,113, 24, 24,134, 13,105,173,212,195,194, 60, 21, 46,174,246,148,182, 48, 29,150,107, 7,118, 10,
-201, 92,167, 75,129,160,156,156,110,232,243, 68,200,129,187,235, 76, 36,179,223,119,174,166,234, 45, 4,133, 23,207,103, 68,206,
-184,181,185, 97,166,170, 65,153,107, 71,170,221, 6, 67, 72,222,199,100,178,250, 42,175, 45,103, 91, 22,104,153, 24,187,129,122,
-122, 48,117,161, 86,123,227,176, 29,209,170, 24, 39,223,154,193, 76, 25, 90, 90, 37,170,144, 5,234, 98,109,100,105,104,148,201,
- 81,150, 58, 51, 6, 67, 15,151,174, 44,173,179, 74,226, 80, 26, 75, 93,212, 94, 17, 25, 88,150,153,182,120,111, 60,182,151,147,
- 35,101,207, 25, 1,213,233, 84,177,191,155, 44,104, 88,212, 11,229,234, 98,111,135, 42,134,201, 12, 94, 10,212,106, 53, 88,137,
- 90,108, 79, 36, 18,179, 77,224,234, 95,240,107,174,123,195,229,116,187,248,204,197,166,173, 7,247,238,240,209,199, 31,242,225,
- 7, 15,201,195, 13, 74,153, 73,204,172, 17,166, 22,168,186, 64, 85,180, 2, 49, 19, 67,103,181, 78,164,148, 25,131,161, 56, 67,
- 8, 44,138, 69,196,134, 64,185,218, 49, 77, 19, 15, 31,222,231,131, 15, 63,224,198,221,123, 60,251,246,107,174, 46, 95, 33, 87,
-111,152,166,110,252,117, 18,164,200, 92, 39,202,161,114, 85, 43,195,102,100,189,221, 80, 47,207,105, 53,241,230,205, 5,245, 80,
- 8, 55, 70,182,235, 13,165,236,204,232,212, 38,160,114,146,215,172, 79, 78, 89, 40,212,189, 33, 78,167,125,101, 24,183,124,120,
-255,125,254,167,127,245,175,248,205,223,127,205,184, 30,248,232,131,123,252,249,127,245,223,243,224,189, 71,124,253,187,255, 11,
- 33,240,248,253,123,188,125,189,227,201,203, 11,242, 58, 19, 6, 27, 33,202,220,233,186, 16, 71,143,199,206,129, 88, 21,233,145,
-188,177, 10,213, 48, 87, 36, 70,138, 22,171,185, 44,153,210,170,241,185,155, 85, 81,110,134,145, 18, 19, 55,111,110,184,247,232,
- 17,245,208, 56,236,246,236,118, 23,236,118, 23,164,113,197,237, 59,247,216,142,131,213,151,150, 74, 9,157, 90,149,187,183, 31,
- 50,110,215,124,243,187,175,184, 60, 92,209,102, 43, 54, 33, 70, 98, 72,150, 65, 15,145,122, 68, 79, 58,111,123, 76, 43, 68,212,
-165,226, 66, 30, 7, 78,182,107,106,181, 36,198,213,213,196,201,102,197, 31,253,228, 1, 55, 79, 35,127,241, 31,190,229,226,194,
- 65, 36,170,136, 44, 78,201, 52,250,156,169, 19, 21,105,141, 24,204, 89, 80, 82, 34,116,163,227, 36,132, 69, 60,255,221, 13,141,
- 74, 14,132, 34, 44,210,188,214,179, 16, 36,211,155, 83, 87, 60, 17, 17, 99,116, 62,186,181,205,133,166,126,216,200,255, 47,158,
- 44,161, 89,250, 66, 58,131,184,243, 59, 8,173, 23,164,217, 48, 82,139, 82,180,152,123, 95,178, 73,221, 29, 55, 13, 26,197,141,
-107,218,159, 64,240,242,146,110,223,205, 16,142, 53,194,217,170,176,123,187, 46,255,234,173, 17,232, 16, 50,173, 41,244,226, 89,
-149,104,223,145,102,145,200,238, 28, 18, 69,141, 70, 41,221, 14, 74,154,167, 31,236, 76,146,208,142, 7,154, 25, 85, 67,198,111,
- 9, 52, 49, 35,117,210, 70,151,104, 20,196,234, 38,195, 99, 25, 86, 79,142, 55,183,105,186,117,165, 52, 95, 69,168,103,239,195,
- 49,137,100, 13,166, 77,195,181,209,249, 8, 57,179,225,160,191,147,222,187, 93,180,130, 68,114,202,126,161,176, 60,157, 86,181,
-203, 84, 23,138, 86, 2,137, 66, 55, 73, 95,140,103, 34,136,141, 4,221,206,219,138,169,136, 34, 66, 58, 50,165,193, 28,126, 54,
- 5,187,195,220, 27,105,204,128, 36,214,110,229,203,247,118, 36,152,137, 25, 81,208,100, 14,200,224,149,169, 98,112,130,235,191,
-207,108,188,118, 11, 13, 98,125,237, 88, 30, 88,157,150,211,213, 8, 96,180, 66,168,145, 9,185,222,123, 30,251,196,211,104,216,
- 62,186, 83,204, 80, 74,177,200, 83, 76,246,192, 21, 4, 73,137,216, 93,150, 17, 33,141,107,206,182,137,101,222,243,246, 98,207,
-126,182,108,244,102,189,242, 66, 49,235,117,239,199,140,178,168, 69, 68,212, 58,130,211,176, 33,165,132,200,200,192,204,178, 28,
- 56,175,133,113, 89,216,228, 8,161, 81,235,129,174,197,242,221,154, 60, 98, 2, 89,109, 21,161,209, 11, 9, 28,135,219,106,181,
-146, 19,204, 81, 30,131, 1, 37,240, 10,193, 97,200,228, 28, 88,165, 1, 69,216, 29, 42, 18,103,100,206, 44, 7,131,164,196,148,
-144,232,187,170,227, 36,105,129, 84,186, 81, 21,120,249,114,207,217, 58,115,255,206, 9,243, 2,231,151,141,210, 26,109,105,104,
-176,222,242,113,189,225,238,205,141,237, 35,131, 23,182,168, 85, 39,106,180, 60,118,232, 71,198,116,225, 80,103,178,120, 44, 36,
- 52,164,186,236,150, 34,189, 5, 58,222,239, 62, 55,134,149,101,146, 43, 1, 29,163, 93,146,138,203, 33, 41,218,151, 87, 23,114,
- 20,234,164, 12, 6,243, 3,141, 52, 93,136, 50,248, 23,173, 81,251,232, 0, 7, 95,231, 4,187,248,212, 86,232,193,111,242,102,
-127,189, 46,228,200,209,246,138,181, 85, 99, 18,184,130,148, 16,134,237,134, 24, 35, 23, 87, 59,207, 20, 31, 93,230, 86, 28,209,
-181,209,138, 77, 3,183,206,182,252,228,195, 15,249,250,251, 23, 92,238, 39,163,143,185,196,223,187, 99,139,137,215, 69, 33,181,
- 54,214,171,145,159,253,232, 71, 60,124,252,136,245,118, 64, 84,184,218, 95, 48,108, 34,212,196,110, 41,104,143,104,170,244,170,
- 44,181,131,238, 8, 73, 24,113,215, 50, 22,205,210,154,160, 44,164, 60, 32, 33,243,221,247, 79,233, 40, 15,238,127,204,159,252,
-167,255, 37, 79, 95,255,158, 84, 58,181, 69,118,203,204,152, 2,189, 22,210, 40, 84, 61,144,134,200,235,243, 55,188,125,241,154,
-127,250,207,254, 25, 49, 6,166, 90,152,166,201, 38,146,193, 24, 2,170, 5,137,217, 0, 56,101, 98, 53,140, 12,195, 72, 15,129,
-211, 37, 51,109,149, 90, 2,151,251,204,237, 91, 31,114,126,241,130, 95,254,234,111,208,222,169,211,194,191,254, 55,127,201,197,
-213,194,230,228,148, 62, 85,238, 63,124, 68, 57, 52,206,110,159,209,158, 62, 35,170, 80,105,212,144, 17, 81, 6, 50, 90,237,153,
- 18, 86,209,119,153, 7,118,135,198,106, 8,196, 54, 82,165,217,100,152,131,145,206, 66,164, 37,181,105,175, 10, 85, 42, 77, 58,
-251,197, 42, 85, 21, 97,117,178,102,187, 61, 37, 12, 15, 89, 20,243, 97,168,165, 79,114, 12,118,225,142, 80,164,113,182,189,199,
- 79,126,118,147, 47,191,250, 91,206, 95,189, 2,113,244,108, 50,138, 37,213, 20,181,104, 69,146,180,210,200,177,177, 30,214,180,
-102,181,168,173, 20, 90,142,172,183, 27, 14, 23, 19, 87,135,115,210,250,148,205,237,202,248,122,231, 80,168, 2,161, 56,181,210,
- 20, 41,233, 80,123,164,177, 56, 51, 34,184,172,108,131,145,162,104,182, 3, 56,164, 72,116,153,187, 54,159,134,212,146, 5,189,
-119,162, 26,130,183,250,144,144, 98,162,139, 85,162, 6, 45, 44,213,124, 21, 81,178,245,203,135, 96,184, 85,181,184, 87,212, 96,
-106,152, 95, 2,234,210, 8,169,179,116, 67, 34,219, 14,206,232,145, 61, 69,164, 85, 23,232, 13, 9, 27,113, 15, 66,175, 14, 4,
-130,164, 66,107,118,144, 55, 34, 57,152, 31,165,245,104, 61,247, 75,177,132,130,203,238, 11,221,211, 54,166, 62,246,232,157,234,
-199, 68,149,218, 57, 83, 36, 92,127, 38, 56,230,202,155, 29,222, 6,133,177, 20,139,150,163,104,142,247, 7, 88, 7,189,181,120,
-250,185,229, 25,239, 78,161, 87,177,159,153,110,207,245, 46,116, 10,129,193,207,191,201, 98,106,168,199, 10,227,245,107,115,157,
-220,242,214, 54,149,234,173,141,198,121, 49,211, 95,119,168, 79,164, 5,177,103,231,160, 14,151, 49,117,207,144,216,199,162,151,
-118,125, 70,135,209,218, 43,237, 3, 36, 44, 85,137,249, 8,189,177,216,103, 18, 13, 94,247,230,229,238,218,174,101,248, 36,193,
-100,117,240, 62, 98,147, 72,172,247,221,176,128, 26, 70, 18,221, 36,100,255,179, 6,233, 55, 50,155,127, 46, 45,187,171,106,210,
-149,187,131, 45,123,235, 86,127, 49,211,129,244,108,183, 56,223, 9, 5, 55,195,169,115,155,151,185, 80,124,191,223,155, 77,125,
-193,115,195, 20,191, 32,136,155,246,196, 72, 59, 41, 9,181,117,150,221, 21, 23,187, 61,162,194,118,181,178,206,240,218, 92,121,
- 48, 50,210, 56, 68, 6,148,165,168, 67, 10,160,232,138, 24, 7, 52, 14,228, 60,178,236, 94, 51,149, 5, 20,182,235, 19, 78, 86,
-153,183,151,151,136, 20,107, 32, 18, 33,235,114, 45,147,191, 43,113,177,123, 77, 43, 11,189,118,170, 42,171,245, 72,107,106,166,
-160, 86,200, 57, 49,174, 51, 41,103, 86,121, 64, 90,103, 41,141,234,113,149,185, 68,202, 60,179,155, 22,242, 96,140,233, 94, 77,
- 77, 9,217, 42, 33,173, 42,214, 80,139, 41, 25, 58,177, 36,229,234, 10,118,115,163,116,251, 34, 29,243,216,235, 97,228,241, 7,
-239,177, 89,103,166,101, 33,174,140,111,157, 5,170,170,239,175, 58,154, 70,154, 24, 91, 90, 92,158, 14,106,114,124, 79,246, 70,
- 7,236,161,194,108,147,187, 10, 70, 39,236,157, 74, 37,237, 35, 75,111,228, 85, 96, 29, 50,147, 75,213, 42,102, 10, 73, 67, 38,
-132, 68,101,102,204,209, 10, 46, 74, 97,212,200,201, 24, 88, 90,133, 16, 88,229,108,243,116, 13,204, 5,134,113,197,103,159,189,
-207,151, 95, 63,227,234, 98, 34, 38,203,128,119, 85,218,190, 17, 99, 69,213,140, 53,226,185,253,245, 56,144,114, 96,183, 59,160,
- 90,201, 65,220,156,226, 75, 67,212,229,249,206,227, 71,247,248,249, 79, 62,231,193,237,251,144, 7,126,245,235,255,215,254, 59,
-237,142,241, 52,114, 23, 85, 89,218,130, 2, 15,238,221,225,103, 63,249, 9,247,238,220,167,117,101, 42, 11,210,173, 16,166, 75,
- 98,223,172, 11, 64,151, 25,157,221,213, 59, 68, 66,111, 12, 98, 89,216,193,107,106,151,165, 1, 7, 66, 24, 9, 81,153,202,158,
-183, 47,158,243,224,238, 93, 62,255,228, 67,238,222,187,109, 78,229, 59, 59, 14,135,198, 84,206, 25,215, 17,105,131, 57,142, 75,
-225,201,179,167,124,248,240, 17,159,191,255, 62, 63,255, 71,127,192, 15, 47, 95,177,236, 38,214,235, 45,123, 85,230,249,156, 80,
-179,145,219, 48,199,252, 92, 59,227, 58, 50,156,110, 56,212,128,234,142, 65, 3, 97,189,102,211, 58,183,239,220,228, 87,255,238,
-255,224,183,223,124, 73, 28, 3,210, 77,241,250,139, 95,254, 18, 9,194,127,241, 79,254, 41,103,219,192,201, 73, 96,184,178, 26,
- 98,131,138, 64,107,139, 71,252, 60,110,214, 19,161, 55,203,198, 15, 86, 70, 82, 15,118,224, 84,169,214, 57, 93,154,245,123, 55,
-243,207, 20, 26, 61, 4,227, 7, 56, 15,252, 88,237,217, 28,229,169, 52,150,218, 8,126, 34,107,129, 42,202,152, 6, 75,110, 72,
-131, 58,179, 74,153,143, 62,250,130,191, 57,255,247,180,186,160, 33,208, 12,216, 72, 12,214, 9, 97,109, 89, 29, 90,101,158,173,
-190, 53,196, 64,169, 54, 41,150,105, 38,137,181, 46,126,249,187,167,252, 89, 18,110, 62,248,140,151,223, 30,232,253,119,166, 36,
- 53,163, 13,198,216, 8, 53, 80,233, 72, 42,126, 94,218,165, 88,233,126, 0,181,235, 98,160, 38, 29,102,207,119,231,132,246,106,
- 81,192, 94,237,162, 34,118, 57, 64,178,253,172,193, 39,215,166, 20,137, 6, 20, 19,168,221,246,243, 10,180,101, 33, 98, 10,103,
- 8,193,168,100, 1, 90,114,198, 72, 83,218, 92,125,143, 28,173, 40, 70,109,157, 99,216,226,110,173,109,170,228,220,233,154, 60,
-178,105,127,191,116, 97,174,166,124, 4, 35,220,216,207,216, 26,218, 23, 74,115,152, 24,130,182,226,201, 42, 43,140,209,238, 5,
-223,122, 4,225, 56,187, 33, 96,223, 81,181,215, 92,221, 75,229,159, 34, 47,100,193, 25,245, 71, 46,188,157, 17,173, 21, 66,138,
- 84, 21,104, 74, 58, 22,190, 52, 87, 4,212,128, 51,199, 1,183,209,208,144,172,193, 45,218, 69, 36, 17,252, 0,110,132,108, 74,
-166,244,102,141,131,214, 26,198,187, 13,184,209, 86,113, 43,155,248,103, 18, 73, 22,229,244,210,153,168, 22, 17,175, 98,116, 78,
-169, 13, 73,217,134, 17, 47,246, 73, 77,233,234, 84, 69,111, 59, 57, 58,225,193,200,114, 18, 34,169, 97,197,245, 81,196,203, 83,
-124, 58,214,198,130, 27, 37, 60, 11,109, 53,143,126,208,135, 64,136,153, 32,118,195, 74, 1,203, 26,122,150,221,118, 99,174,148,
-123,230, 49,226, 61,184,213,121,190, 71,119,176,203,205, 57,184, 19,208,220, 72, 22, 89,114,146,142, 85,166, 10,253,218,101,232,
- 47,210,181,212, 99,230,189,230,237,105, 49, 4, 52, 67,236, 74,153, 11,243,126,199,249,229, 76, 90,173,216,172, 6,147,149,156,
-200, 22,147,239,117,188,203,125,125,182,226, 78,206,108,134, 64, 45,133,239, 94, 52, 14,213,106,103,235,116,206,229,229, 91, 74,
-239,172,198,129, 48, 36,230,218,188, 22,143,235,138,188, 46,253,154,199, 14, 94, 35,171,157, 64,164, 54, 3,145,172,214, 43,198,
- 16,121,179,191,162,245,206,102,181,226,198,233, 41, 39, 39, 35,251,195,204, 97, 50,226, 84,239,206,183, 31, 3, 90, 27,135,105,
- 50, 24, 12,246,123, 39,223, 91,169, 8, 33,100, 66,176, 78,239,211,237,200,118,187,102,154, 11,135,253,194, 68,112,218, 81,113,
-180, 97,103, 51,142,124,254,217, 39,156,108,215,104,179, 6,184,117, 12, 76, 42, 28,220,217, 45, 42,140,155, 12, 97, 96, 57, 40,
-213,127,159, 94, 58, 99, 78,164, 16, 41,189, 51, 45,141,144,128,100,217, 88, 37,208,164, 82,150,153, 32,158, 25,165,209,251, 66,
-157,133,131, 6,150, 80,137,171,204, 74, 19,186,120, 23,186, 24,166, 86, 23,165, 47, 1, 66,101, 66, 57, 44,198,124,110,181, 83,
-250, 66,169, 22, 3,219,156,110, 88,165,200,157, 91, 15,216,140,183,249,234,171,175,120,249,230, 21,101,246,174,109,209,235,155,
-180,160,148,121, 38, 13, 3, 42,137,203,203, 29,189, 85, 55,225,217, 14, 30,117,103,124, 16, 62,250,232,125,110,222,216,240,224,
-225, 67,198,180, 98,175,133,247,223,127,192,247,207,158,241,228,135, 23,118,244,151,226,248,221, 68,239,157, 28, 3,159,124,252,
- 1, 63,251,233, 79, 25,157, 44,150,186,146, 7,101,100, 64,123, 96, 90, 2, 34,197,112,144, 73,236,146,104,114,142,181,250,169,
-201,172,227,118, 77, 20,152,151,217, 14,164, 24,145, 97,195,213,203, 75,106,239, 60,126,244, 49,143,222,123,204, 50,237,185,184,
- 56, 80,198,204,171,233,130,203,139,215,204,243,200,102,125, 66,236,194, 2, 28, 46,206, 57,253,252,199, 60,124,240, 35, 46,119,
-149,195,190,113,114,178, 37,116,171, 81, 30,194, 41, 61, 10,122,181,135,105, 34,246,206,233,217, 29,230,114,201,244,226, 53,104,
-224,236,254, 9,107,201,188,124,115,193,237,211,219,172,211, 57,255,230,151,255, 55,173, 85, 54,227,198, 34,171, 33,162,179, 81,
- 14, 31,222,187,205,144,133,205,217, 29,222,252,221,115,226,106, 64,107, 39,123, 93,103, 40,238,211, 56, 22, 56, 37,241, 54,187,
-145, 22, 43,138,145, 7,123,183,203,112,210, 76,212, 70,149, 70,170,145, 82,221,163, 18, 70, 98,180,140,189,246,206, 16,172,175,
-224, 48, 79,132,138, 69, 42,131, 66,139, 32,150,200,145, 20, 24, 67,166,207, 80,165,160, 93, 72, 49, 17,197,106, 70,219, 49,194,
-137, 32,217,240,179,145, 8, 25, 52, 38, 98,176,168, 85,104,130,186,113, 78,171, 50, 76,151,252,244,139,247,121,125, 62,243,155,
-191,251,146,127,249,103,255,130,243,183, 31,112,247,175,182, 92, 30, 38,148,129,132,201,236, 61, 86, 82, 53,247,126,169,246,196,
- 77, 9,171, 6,117, 24, 18, 14, 59, 9, 67, 66,171, 32,193,166,123,186, 79,240, 5,187, 24,120,149,169, 61,103, 12,166,210,164,
- 59,175, 94,188,170, 53, 34,152,175,197,234,172, 35,146,133,170, 16, 66, 35,106, 48,102,185, 15, 86, 41,153,234, 86,181, 81,122,
- 39,117,115,186,135, 0, 75,169,228, 40,158, 49,239,200, 34, 44,125, 62, 58,128, 25, 83, 50,126, 67,235, 70,196, 19,175, 60,245,
-204,117,107,199,110,114, 83,124, 85,142,254, 35, 59,158,173,227, 98, 49, 62,123,136,215,127,182, 21,147,194,147, 68, 98,118,117,
-221,213, 49, 67,236,198,235,244,139,122,249,139,168,173, 80,113, 28,111, 72, 1,117, 74,163,248,127,174, 14, 26, 10,222,170,166,
- 98,248, 91,212,155,247,162,216,247, 80,149,238, 36, 78, 99,222, 27,108, 42, 29, 11, 91,194, 81, 17, 16, 95, 33, 24, 83,222,106,
-177,133,168,102,108,115,228,167,197, 78, 11, 88,217,182, 41,189, 68,152,251,236,138,141, 35,126,197,112,217, 26,186,249,181,154,
- 69,226, 74, 53,207,137, 85,190, 6,146,241, 46,222, 1,242,173,209,220, 14,183,230, 13, 81, 4, 71,137, 86,147,165, 45, 55, 23,
-105,161,123, 27,141, 29,184,193, 1,251, 33,102,151,230, 13, 83,152,146,130,172, 64, 27, 57,121,199, 49,110,254,169,213, 77, 35,
-234, 37, 23,246,179,132,224, 45, 62, 29, 98,142,142,168, 85,231, 26, 59,222, 48,102, 87,246,223, 85,208, 73, 83,235, 72, 79,114,
-109, 86,144, 52, 48,158, 68,238,111,236, 67,179,168,237, 92,114,181, 15,107,175,118,211,237, 4,154,199,141,234,186,243,182, 44,
- 92,236, 11,115, 53,134,184, 72, 99, 62, 92, 58,120,198,238, 73,243,254,202,189, 3, 71,186, 85, 53,186,145, 27, 28,162, 55,149,
- 85,133, 94, 29,110,210, 42, 57,101, 86, 67,226,106,183,163,214,206,102,179,230,198,217,150, 33, 71, 88, 26,243,110,102, 95, 27,
-195,224,210,218,210,217,228, 13,183,111,156,112,152, 34,111,246, 19, 73, 35,195,104, 95,186,212, 19,115, 89,108,186,139, 3, 61,
-219,244,178,148,194,180,204, 8,137, 28,224, 48, 79, 20,151,204,134,213,138, 15, 63,250,192, 12,120, 73, 57,205,107, 84,148,180,
-202,124,241,249, 39,232, 60,241,244,201,119, 28,218, 64, 31,132, 16, 51, 41,102,234,126,166,205, 19, 61, 42,125,180,198, 34, 82,
-102, 16,107,185,194, 77, 68, 1,123, 63, 90, 47,212, 50, 83,131,185,210, 99, 12,164,117,162, 30, 22,164, 43,177,218, 36, 84,178,
- 18, 19,132, 86,153,231,153,175,191,251,129,195, 92, 24, 82, 48,197, 67, 42,171,100,190,139,222, 43, 75,233,104, 19,110,223,187,
-131,222, 60, 35,166, 21,195, 74,248,224,227, 71,220,190,119,131,105,154,248,253,147,103, 76,229,104,164,177, 9, 60,199,196,122,
- 28, 56, 28,230,107,207, 68,111,222,137, 28,173,142,179,122,158,252,236,246, 77, 62,121,252,216, 46,155,197, 12,111, 34,194, 31,
-252,252, 15, 56, 59,251,138,171,157, 93,176,114,206,215, 45, 97,119,238,220,225,189,135, 15,216,134,196, 65, 42,121,155,145,131,
- 73,104, 37, 9,173, 66,109, 7, 36,225,192, 27,147,206,196,203,124,178, 3, 66,134, 96, 19, 68, 91, 39,198,147, 1,102,171,120,
- 44,147,242,250,229,107, 30,220,189,203,103, 31,127,196,141,179, 59, 40,145,215, 47,159,241,245,147, 47,217, 77, 59,238,223,127,
-100, 93,211,205,190, 83, 57, 6, 62,251,241,103,124,251,236, 91,126,244,249, 79,185,184,120,203,106,104,196,205, 9,243,116, 73,
- 10, 25, 29, 51,181, 47,148,165, 16, 36, 50,174, 86, 44,193, 38,152, 33, 5, 54, 97, 96, 55, 57,174, 84, 19,119, 30,220,231,175,
-255,159,191,228,171,175,190,226,108,187,101, 53, 12,132, 0, 83,177,236,114, 30,236,243,114,235,222, 45, 36, 8, 23,111,175, 8,
-173, 90,109,192, 34,215, 69, 69,181, 84,180,137,169, 97,139,131,128, 88, 72, 52, 90,234, 76, 13, 86,216,144,218,250, 76,212, 68,
-151, 21,113,128, 85,140,148,165,210, 41, 84, 53, 70,124,200,118,209,110,117, 50, 83,101,243, 85,141,118,250, 16,200, 26,169, 98,
-126,150,165, 55,130,248,228,235, 7, 67, 26,146,197, 54,171, 53,100, 5,167,145,105,140, 52,188, 63,194,193, 68,221, 85,206,160,
-193, 14,149, 20,169,181, 50,166,204, 31,255,163,247,248,245,175,255,158,127,254,223,252, 41, 63,254,241, 99,126,250,243,207,248,
-250,217, 43, 66, 47,102,226,244,129, 35, 6,195,221,198,152,189,226,183,209, 42, 52,175, 22,142, 26, 45, 94,233, 84, 54,123, 46,
- 87, 51,244,206,147,153,167, 66,162,118,219, 99,167,104,197, 37, 69,186, 53,183, 53, 69,117,242,157,175,225,139,155,185,158,205,
-136,222,124, 42, 22, 87, 60, 56, 54, 71,118,198, 49,209, 60, 38, 24,181,218,122, 13, 59, 36,163,239,138, 83, 50, 42,222,210,139,
- 13, 27,173,218, 0, 84,188,220, 37, 68,122,241, 26,221,110,144,151, 46,118,169,107,189, 59,138,197,118,241,157, 99, 55,120,163,
-105,245,231,125, 66,186, 41,128,205, 39,183, 60,248,122, 32,136, 7,182,173,173,179,105,187, 78, 22,165, 96,141,111, 72,160, 55,
-129,190, 56, 1, 46,162,165, 32, 67,164,119, 55,135,171, 33,155,143, 5, 41,209,211, 49,226,236, 20, 91,243, 10, 93,108,218,215,
- 96, 48,161,238,201,176,128,145,246, 68, 42,161, 71,107, 99, 20, 53, 34, 93,244,149, 46,225,154,176, 26,142,205,121,106,187,252,
- 46,234,117,183, 86,195,107,174, 96,131,230, 91,164,209, 46, 83, 66,244,179,170,218,231, 48, 58, 85,180, 91, 22,223, 21,118,203,
- 84,219, 1, 92,220, 80, 16, 29, 81,103, 59,128,148,131,229, 17, 93,126,231,184,103,175, 70,180, 9,110, 56,104,149,107,178, 18,
-177, 81,171,197, 9, 66, 3,164, 94, 71,136,196,111, 93,200, 64, 24,162,239,190, 13,115,199, 98, 11,255,218,253, 67,171,149,174,
-201,162,114,106,237,113,221,155,147, 2, 71,143, 66,164,247,128, 28,113,123,252,127, 76,189,219,175,109,219,117,167,245,245,214,
-123, 31, 99,204,185,214,222,123,237,203,217,103,159,155,207, 57,246,177, 29,199,177, 83, 9,185, 57, 9, 85, 20, 16, 82,170,155,
-138,146,160, 36, 36,144, 0, 81, 8, 30,224, 15, 64, 66,145,120, 67, 66, 20, 15,136, 7, 30,144, 10, 21, 82, 69,133, 2, 2, 68,
- 42, 74,225,220,202, 46,151,147,216,142,237,216,177,125,236,115,191,236,251,186,205, 57,198,232,151,198, 67,107,115, 29, 63,248,
-193,183,179,247,154,107,206, 57,122,111,237,247,251,190, 64, 36,146,252, 7, 86, 9,228, 60,218,173,185,249,139,230,246, 57,209,
-134,166, 78,144, 70,234, 86, 45,105, 13,158,158,173,180,223,248, 92,147, 0, 0, 32, 0, 73, 68, 65, 84,117, 53, 87, 49,160,125,
- 97,223,140, 40,135,155,227,106, 43,134, 52, 69,188, 81, 87, 29,237, 41,222,251,247,224,139,122, 73,246,176,215,237, 48,110,204,
-183,188,174,157, 33,101,142,183, 19, 73,225,114, 89,152, 59, 20,109,140, 57,113,116,180, 65,235,194,165, 54,142,134,108,218,215,
-163,155, 44,237, 1,180,195,159,101,111,154, 16, 35,185, 91,146,180,174,171, 37, 67,103, 59,108,140,131,237,253,148,110,130,135,
- 16,184,121,231, 54,173, 41,143,159,156, 35, 41,112, 62,100, 34, 74,222, 31,243, 75, 47,127,130,151,158,185,198, 63,123,248,127,
-243,224,225, 37, 71,227,134, 49, 8, 45,118, 90, 6, 73, 91, 54,201,247, 57,185,177, 44,141, 54, 69, 66, 15,180, 82,188, 86,100,
- 24, 70,103,196,122,194,181, 89,245,112, 85,242,104,230,168,221,110,230,178,239,168,173,176,150,202,186,175,156,157, 61,225,195,
- 71, 79,200, 18, 25,134,200,241,209,192,179,119,111,240,177,103, 79, 56,222, 12,164, 96,196,173,203,179, 61, 79,206,102, 62,126,
- 7,194, 52,240,221, 31,157,129, 8, 39, 55,239,112,250,248, 17, 75, 91,217, 47, 43,181, 53, 68, 18, 41, 89,230,226,236,233,217,
- 85, 38, 3,159,238,228, 96, 85,168,165,154, 89,233,214,205,107,220,188,117,211, 84,139,187, 29,105, 76,132, 96, 35,215,241,250,
-200,107, 63,241, 73,198,124,196, 92, 11, 49, 41, 49, 36,114, 20,186, 36,218, 92, 40,189, 90,152, 51, 5,114,135,160,131, 85,119,
- 68, 9,154,168, 75,161, 22,131,104,140,227,136,100, 99,173,107, 72,244,100,159,107, 24,208, 53, 26,101,175, 53, 36, 11,107,221,
-115,254,244, 1, 63,253,249, 79,115,227,246,117, 74, 92,120,244,100,161,235, 57, 79, 30,189,199,181,107,183,184,113,251, 54,187,
-203,115,202,229,158,180,221,144,211,196,229,217, 19,238,221,123,134, 87, 62,249,113,190,245,141,111, 48,140, 35,115,153, 9, 12,
-196,188,101,185,188,164, 45, 51, 49, 10,151,235,138,236,149,202,204, 81, 22,174,143, 35,103,187, 74,185,124,202, 18, 58,211,176,
-165,158, 63,228,255,250,127,127,155, 77, 78,196,148, 40,218,201,205, 70,167,157,206,115,247,110,210, 66, 97,147, 55,212,102,117,
-163, 54, 23,152, 6,235,138,235, 10,205, 94,183, 30, 43, 53, 88,224,172, 55,147, 92,175,161, 19,230,206,144, 18,139, 64,148, 78,
-144, 17,154, 16, 83,177, 92, 72, 80,122,180, 47,218,220,125, 58,212, 42,213, 97, 99, 41, 5, 82, 43,246,122,107, 36, 53,231,102,
- 15, 6,248,208, 96, 55,178,222,149, 82, 87,131,184, 52,179, 47, 50,101, 18,209, 86, 44,221,136,132, 97,176,124, 70,107,157, 82,
- 22,219,195,138,243,193, 91,231, 83,247, 78,248,252,167,158, 35, 72,224,179, 63,245, 19, 60,220, 95,242,198,155,239,242,211,191,
-250,243,124,254, 39, 63,207, 87,191,250, 58,143, 30, 63,245,224,151,203,172, 58,148,110, 40,215, 32,137,185, 55,122, 42,136,250,
-200, 88,171,123, 31,108, 52, 30, 53,162, 84, 74, 89,141,224, 25,157,208, 22, 44,117,236, 74,121,151, 43,205, 6, 38,233,157, 33,
-195, 94,149,156, 6,180, 85, 90, 15,104, 86, 66, 55, 3,163,101, 29,186,113,239,187,173,207,214,197, 46, 95, 99, 12,228,148,217,
-215, 66, 23, 51,133,197, 14, 89, 58,189, 8,213,235, 94,177, 91,200,186,134, 64,211, 21, 82, 96,168, 54, 9, 80,237,228,104,235,
-183,174, 21,233, 38, 67, 65, 33, 54, 75,245, 91, 23, 91, 73, 81, 40,181, 34,205,220,245, 42,157,126,133, 79,117,210,156, 8, 97,
-237, 54,182,246,236, 18,193,234,101, 81,236,125, 96,162, 46, 91,251,150,106,249,136, 32,102, 32,109,213,130,143, 70,133,115, 13,
-108, 16, 84, 44, 72, 43,154,160, 27, 6, 56,133, 64,245, 42,158,115,184,204, 93, 78,240,223, 27, 40,245,170,185,116, 72,194, 91,
-205,218, 66,125, 7,159,187,184,150, 24,137,246,250,151,195,119, 80, 53,218,157,246, 43, 21,184,197,212,148,205, 96,251,252, 46,
- 29,105,163, 61,107,253,182, 47, 1,195,200,170, 32,107, 37, 37, 49,184, 64,143, 54,162,178,211, 70,184,210,208,169, 90,151,208,
- 14, 84,110, 64,234,135,164,186, 5,168,154,167, 66,237,228,237, 6, 41,181,240, 4,197,228,243, 7,146,173, 96,163,132,210, 12,
-177, 42,118, 48,179,189,191, 8, 34, 3, 18, 32,183,102,191,228,238,156,112,151,148,116,133, 24,204,201,107, 50, 0,163, 25,217,
- 15, 96, 29,192,152,212, 82,251, 61,160, 33,217, 11, 91, 26,113,204,126,160,176, 95,106, 76,163,215,173,108,111,108,183,111,117,
-144,191,194,182, 49,100,251, 37,149, 82,168, 42,104, 75,180,181, 80,221, 11,108, 60, 94, 11, 15,170,107, 92,109, 76,116,168,116,
- 28, 14, 61,234,144,128,142,196, 12,170,204,107, 49,171,211, 24,141, 19,109, 6, 21,242,118,226,198, 96, 39,239,117, 94,160, 43,
-227,144, 8, 83,160,148,217,107, 19,209,236, 82, 13, 98, 26,208, 84, 8,181, 49,215,143,200, 81, 74, 53,253,163,155,232,172, 50,
-209,145, 24,185,125,231, 14, 83,178, 7, 75, 76, 66, 40,157,179,253, 76, 30, 39,226,124,202,239,252,246, 23, 25,179,240,254,187,
- 31, 16, 66, 99,183, 44, 76, 1,171, 81,116,227, 24,132, 49, 33, 37, 64, 14, 72, 74,104, 19,242, 80,233,209,117,168,181,211,197,
- 60,191, 53,194,102, 18,180, 26,227,120,202,182,255,123,252,244,140, 55,223,122,151, 16,237,195, 57, 36, 59, 88,244,106, 65, 47,
- 92, 63,155, 98,166,105, 98,110, 74, 92, 45,216,168, 49, 48,151,200,163,211,133,207,188,146,121,249,185,219,252,240,157, 5,136,
-236,207,247,188,254,163,119,152,231,234, 55,232,200,102, 24,105,170, 92,238, 47,237,195,153,178,237,167,130, 50, 13,147,141,185,
- 75, 33,244,206,152, 3,159,122,237, 21,174,167,193, 89,229,129,181, 84,134, 33,147,198,224,156,249, 4, 17,198,104,155,173,178,
-159, 13,139, 57,118,136, 66,209, 13,194,130,148, 70,141,118, 98,207, 17,234,140, 57, 15, 74,179,155, 88, 24,145, 97, 36,230, 72,
-216,175, 72,180,101,251, 10,132,170, 72,183, 41,130,166, 68, 47,129,211,243, 83,242, 24, 57,121,230, 54,219,219,119,185,125,251,
- 14,127,254,173,111,178, 59, 61,227,214,141,187,196,205, 17,143,159, 60, 38,213,202,144, 70,186,116,122, 61, 99,119, 49,243,210,
-189,231,185,255,240, 17,105,216,162, 41, 50,181,153,186, 40,243,254, 28,213, 29,183, 55,199, 44,219,213,224, 54, 85,137,121,195,
-178, 22,206,215,194, 26, 43, 12, 9,221,237,185,118,107,203, 63,255,202,215,248,240,193,251,108,199,145,101, 53,190,185,138, 92,
-237, 92, 63,251,218,167,121,249,149,123,188,240,226, 51,156,157,239, 41,203, 66,158, 70,211, 74, 14, 22,214,154, 47,149, 20, 44,
-208,104,208, 21,101, 84,161,171,213,172,114,136,172,116, 90,237,164, 60, 88, 0, 43, 71,187, 92,116, 19, 94, 68,215,107,244,222,
-104, 45,120,170, 56, 17,195, 96,128,160,102, 33,168, 44,182,183,109,201, 40,103,181, 99,148, 76, 34,189,172,100,177,110,178, 86,
- 35,209, 73,109,254,157, 98,127, 31, 85,179,156, 33,198,215,200, 49,217, 45,208, 84,112,180,218, 88,214,153, 59,119,174, 65,142,
-148,186,227,229,151, 95,228,209, 7,247,161,118,158,121,225, 54, 47, 60,127,155,135, 15, 30, 59,142, 89,200, 89, 89,215,234, 41,
-243, 78, 43,123,243,198,123,139,162,225,135, 15,223, 27, 15,195, 8,177, 82, 84,136,105,180,118,105,237, 31,133,180,204, 49, 77,
- 91, 59,201,235,150, 68, 33,183,100, 25,134, 96,212,187,106,192,121,114,177,146, 77, 22,161,209, 89,202, 74, 10, 31, 29, 38,140,
-181, 0, 90, 97,141,246,239,197,241,197, 41, 64,109, 2,217, 19,222,118,201, 37, 6,101, 41, 51, 45, 38, 82, 41, 84,205,148,110,
- 1,197, 36, 74, 45,133, 16, 29,215, 27, 18,134,210,177,181,218, 21, 15, 62,224,151, 72, 91,144, 23, 85,164, 26,133, 45,248,216,
- 58, 10, 22,246,235,166, 73, 85,109,214, 59, 87,231,171, 68, 99, 30, 72,176,160,107, 28,109, 90,167,158,255, 18,172, 14, 86, 91,
- 35, 99, 30,147,171, 80,152,211,221,170, 54,119, 55, 4,151,217,248,119,122,116,242, 99, 83,151, 52,217,180, 26, 21,127, 55, 26,
- 7, 64, 15,147, 2,237, 68, 15, 70,166,168,246,119,112, 87,132,184, 5,146, 30,173,240,228, 20, 56,237,118,209, 24,228,240, 12,
-244, 66, 17, 54, 25, 48,132,110, 33, 73,186,162, 13,170, 6,210,225,102,218,235, 1, 31, 31,220, 9,237, 53,182,195,141,220,111,
-163,118, 28,179, 61,235, 1,179, 26,176,138, 79, 60, 32, 48,125,127,222, 91,161, 81,233, 45, 58,121,199,247, 22,213, 59,141,206,
-174, 53, 43,154,255,101,131,207, 78, 8,100, 20,178, 61,184,210,161,244,175,174,174, 12, 29,173,149,166,221,246,250, 4,219,191,
-119,171,156, 72,180,135,119,180,134,166,133,100,186, 82,122,167, 20,151, 36,116, 32, 88,128,198,127,100, 59,224, 96,234,188, 24,
-178,229, 6, 82, 99, 24, 13,118,144,212,198, 56, 85, 97, 93, 13,118, 17,170,241,155,235,225, 97,167,129,218,235, 21,102, 49, 68,
-177,219, 49, 6, 65,208, 96,224,156,165,184,254,112,200,244, 2,105, 28,216, 78, 91, 34,141, 82, 23,235,160, 23, 39, 15,181,202,
-233,105,224,104, 59, 48,104,133, 10,146, 7, 75,173,214, 70,163,177,150,195, 58,195,252,222,221, 45, 70,248, 58, 35, 74, 34, 76,
-112,114,243, 4, 17,168,107,181, 64,202,162,164, 44,158, 86,175, 12, 67,224,254, 59,111,211, 74,163, 15, 98,233, 92, 13,172, 49,
- 18,233,244, 18, 24,162,178,236,109,236,214, 4,242, 32,132,214,145, 20,152, 91,131, 26, 24,242, 72,204, 29,213,140, 68,241, 55,
-190,123,159,243,200,205,113,226,195,119,222,225,236,226,146,187,119,142,217,142, 19,105,176,247, 74,220, 69, 46,246,197,220,208,
-165,243,248,108,207,227,243, 29,111,189, 43,150,202,119, 57,202,141, 27, 55,216,110,183,252,193,215,127,196,167,159, 54,106, 24,
-169,203,202,155,239,188,205,217,197, 41, 33, 64, 78,131, 1,113, 98,162,172,179, 51,188,147,213, 76,174,212,184,198, 58,168,205,
-250,253,175,125,236,101,158,127,230, 25,235, 5,199,234,211,167,100,187,176,170,244, 34,150,132,238, 43, 90,212,165, 58,153,201,
-193, 41,171, 88,168,102,174,198,162, 15, 3,104,107, 92,236, 22,147,178, 4,119, 58, 70, 35, 34, 70,129, 52, 4, 74, 55, 48,139,
- 65, 61, 58, 18, 27, 75, 11, 48,129,236, 4, 25, 50, 79, 31,223,231,198,241, 77,142,211,109,234,238,146,251,239, 61,225,209,211,
- 29,187,146,152,182, 27,230,249, 18, 26,196,235, 25, 82, 36,246,206,254,204,148,148,199,183,159,229,135,223,255, 1, 55,174,111,
- 88,245,136, 28, 39,234,102,101,140,137,121,159, 56,159, 47, 44,232,153,132,139,186, 48, 52, 75, 11,135,152,236, 51,169,202,209,
-141,231,185,104,231,252,206, 31,254,174,121,156,171,175,206, 90,179, 26, 44,202,107, 47,125,140,103,111,221,229,229, 59,119,121,
-254,238, 11,252,159,255,236, 75,172,113, 70,210, 53,100,153,145,162,172,186,210, 53, 82, 66, 33, 20,163,172, 5,201,104,131,124,
-104, 59, 72, 67,234, 64, 14, 6, 0,210,186, 18,134,145,186, 22,242,224, 55,202,170,196,208, 41,161, 89, 27,163, 39,180, 85, 58,
-201,190,241,115,180,112,164, 67, 89, 80, 40,173,153,128, 5,165,175,179,179, 0,156,191,230,249,157, 40, 7,243,153,239, 79, 67,
- 37,196,193,113,177,201,191, 99,204,121,221,123, 32,165,204,155, 15,158,242,206, 7,143,248,229, 95,249, 44, 66,224,100, 51,113,
- 94,224,244,254, 3,114, 12, 44,187, 39, 76, 89,216,151,234, 59,214,236,204,132, 78,169,166,190, 18,175,234,138, 52,180,205,134,
-124,245,192,112,109,197, 87,143,214, 41, 47,173,216,119, 86, 17,154,250,228, 44,234,149, 95, 59, 70,131,179,244,216,104, 54,200,
-246, 11, 91,242,118, 94, 32,134,230, 57,159,122, 32,146, 80,181, 17,154,221,224,123,200,172, 90,160,117,198,104,135,161, 24,160,
-168,173,102,165,117, 11,233, 73,176,224, 97, 53,122, 91,210,142,180, 72, 79, 92, 5,197,122, 55, 87,249,161,195, 94,235,226,200,
-222,224,117, 84,227,153, 84,181,137,222, 21,193,180, 71, 91,239,210, 9,206, 78, 9, 65, 24, 52, 28,134,199, 24,215,170,250,101,
-174, 35,221,242, 87, 11,254, 48,148, 67, 81, 85, 28,226,117, 8,243, 43, 45, 59,127, 66,109,213,167,173, 89, 16, 87, 15,114, 22,
- 75, 59,247, 98,191, 43,193,214,101,253,192,106,241,105,183,150, 6, 17,247, 13, 88,194, 93,130,146, 83,112,115,158, 25, 48, 85,
- 6,187,137,215,238, 54, 64,107,159, 29,206, 21,221,167,225, 74,114,229,179,101, 28,114, 50,131,158,229,111, 76, 7,156,248,168,
-249,212, 85, 72, 86, 65,176, 15,133,120,145,255, 80, 63, 15,110,167,193, 65, 52,218,237,148,103,189, 76, 83,124, 6,215,158,181,
- 98, 21, 51, 17,235,209, 86,119, 16, 35,131,191,145,154, 99,251,112,198,185,237,239, 53,120,152, 44, 56, 7,250, 48,102,119, 91,
- 85, 10,209,110, 46,222, 57, 86,199, 1,118,204, 28, 36,218, 73, 41,154, 14,207, 79,209,253,128,227, 67,209,140,167,147, 45,165,
- 89,203, 1,215,105, 95,202,226,238, 96,171, 36, 43,186,136, 33, 61,163, 80,129, 42,254, 80,142, 92,221,192,115,204, 68, 53, 34,
-221,184,201,140,181,184, 49,206, 56,188, 90,172,131, 72, 16,227, 5, 59,197,191, 53, 69, 82, 68,123,103, 45, 54,157, 32, 42,203,
- 92,216, 12, 27,142,143, 6, 36, 40,243, 92, 88,139,105, 4,171,194,152, 35,203,190,176,239, 43,171,141, 87, 72,209, 67,111,206,
- 43,239,173, 80,234, 33,101,233,171,140, 30, 24, 83,182, 78,230, 90,209,216,185,251,204, 61,110, 94,223,176,174,139, 5, 48,114,
-224,114, 85,118, 75,117,221,234,202, 80,162, 43,120,189,207,170,145, 50,175,204,221, 96, 49, 81, 35,227,209, 64, 40, 21,130,141,
- 75,119,103,254,187, 31, 6,214,186, 16,106,103,191, 95, 41,125,101,119, 57,211,155, 57,181, 67,140,104, 43, 92, 63,185,206, 43,
-207,222,227,252,252,156,105,176,209,124, 45,166, 47,164, 7,206, 47, 87,219,163, 55,179,254,153,114,209,216,235, 81, 2,146,236,
- 97,188,223, 45,140,195,196,251, 15,159,178,219, 85,134,105, 98, 89, 42, 79,158, 60,162,180,206,144, 12,237, 57,109, 55, 44,243,
-106,161, 25, 57,124,117, 53,180, 25,213,111,183, 59,183,239,144,222,184,125,231, 38,159,124,245,227,128,176,150,149,216, 18,109,
- 84, 36, 52,250,206,124, 4,195, 54,146,100, 68,107,161, 73, 52, 33, 82,239,236,171,249,189, 45, 45, 92, 25,232,116, 17,230,106,
- 97,152, 90, 76,144, 49, 69, 33,110,146,173, 4, 98, 36,199, 74, 93,172,195, 60,201, 64,165, 82, 90,100, 28,187,245,144,207, 3,
-161, 87,130, 90,120,115, 58, 58,161,212,153,151, 94,121,133,243, 71,103,108, 71,227,235,223,127,116, 97, 95, 66, 34, 70,102, 28,
- 3,235,185,237,192, 95,249,216,203,156, 28, 95,227,244,209, 19, 72, 39,196, 80, 73,155,145,105, 58,102,185, 88,200,195,132, 14,
-130,214,206,197,211, 74, 30, 38,210, 16,152,106, 35, 78, 91,230,221, 3,214, 53, 82,134, 61, 95,250,163,223, 99,183, 59,227,218,
-116,100,187,205,214,173,173,160,202,141,227,235,188,246,202, 43, 92,191, 61,241, 51,191,240, 89,222,126,184,242,246, 91, 31, 18,
-100,176, 67, 80, 48,126, 69,171, 29,201, 43,109,113, 14,120,233, 6,101,138,209,250,185,105,195, 32,205,216, 2, 13,122, 89, 65,
-163, 93,150,162,250,103,220,190,160,213, 83,211, 18,212, 32, 43, 90,208,176, 26,111,163, 71,155,200, 37, 33, 13, 25, 74,165, 72,
- 66, 82,163, 22,155,208, 5,241,247, 31,106, 89, 30,127,135,216, 13,168, 59, 65, 81,157,163,126, 96,122, 91, 85,203, 90, 64, 10,
-162, 44,251,198,119,127,244, 1, 95,248,194, 79,178, 61,185, 78,210,202, 75, 47,190,196,151,191,250, 13,110,159,220,225,231,255,
-149,207,242,224,209, 87, 56,127,208, 73, 40,117,221,219,207, 34,209, 96, 77,126, 8,175, 98,170,226, 20, 5,165,153, 84, 73,149,
-170,133,168,150,223,168,169, 35,205,130, 97, 77, 14, 13, 18, 87, 46,119,251,172,116, 96,208,200,190, 54,178, 40,154,226,213,207,
- 21, 83,183,137, 21,202,218,108,109, 23, 35, 52, 45,176, 26,238,186,246,110,193,178,161, 19,178, 88, 7,187, 27, 50,185,118, 37,
-209, 41,218, 73,254,200, 13,226, 54,198,110,249, 4, 11,182,205, 36,196,184,143, 78, 36,181, 91,173,255,121,221, 16,176,161,117,
- 36,155, 94,218, 70,228,201,219, 83,118,131,175,168,173,168,220,194,167,171,101, 80, 66,254,136, 30, 73, 55,177, 74, 79, 6, 98,
- 49, 61,134,169,172,107, 53,197,177,198,106,207, 10, 55,174,225,147,230,238,232,229, 32,166, 60, 86, 9,132,118,168,251, 85,247,
- 45,153, 99, 35, 71,203, 95, 5,241,252,121,199,201,118,234,188, 14, 92, 74, 99,239, 37,123, 14,219, 97,203,198,246,122,197, 37,
-129, 78,179, 27,244, 85,101, 60,146, 77, 78,165,133,174, 25, 13, 54,149,106,221,134, 84,205,157, 5, 16, 89, 15, 90,214,110,207,
-217, 68, 12,164, 16,157, 65,174,214,107,108, 62,126,240,158,122,208,230,227, 39,220,153,235,150, 26, 71, 48,210,236, 47,101, 24,
-209, 78,145, 67,149,196,212,145,110,138,135, 96,200,191,238, 65,173, 32,205, 61,196, 22, 86,146, 48,248, 88,197, 30, 76, 77, 43,
-245, 48, 37, 16,155, 2,196, 96, 15,134,216, 43,122,160,240,248,232,195,234,201,217,190,172,171,186, 26,208, 2, 19,210,149,165,
- 44,180, 46, 76, 41, 80, 90,101,237,182,247, 72, 41, 56, 84,193,170, 52,163,218,190, 78, 98, 50,251,213, 90,104,193, 69, 52, 46,
-139,104,173, 91,253, 95, 93,106, 47,145,237,144,104,106,149,156, 41,102, 79, 79, 30,144,141,254, 24,105,246,165,223,122, 99, 93,
-102,186, 54,114,206, 28, 31,143,164,152, 89,246,123, 74, 49, 5,173,168,112,180, 61, 98, 24,182,108,143, 34,109,189,224,244,236,
- 41, 41,142, 76,195,192,126, 94,216, 45, 59, 11, 30,250,120, 80,146,241,247,107,235, 12,209,198,244,231,187,217, 30,112, 99, 98,
- 95, 86,110,132,137,205,148,145, 96, 24,218, 60,175, 44, 40,218,138,219,137, 34,121, 18,250,178, 34, 26,145, 60,144,147,157,202,
-251, 82,216,215,202, 48,108,152,219,202,190, 88,216,173,117, 40, 8,236,247,208, 27,165,194,126,217, 49,239,119, 22, 66,211,230,
-104, 80,123, 51,175,165, 80,215,194, 7, 79, 78, 25, 6, 59,125,158,183,133,122, 81,105,197, 44,106, 65, 59, 83,142,214, 38, 80,
- 24, 69,252,205,108,159,135, 49, 11, 55,142,224, 51, 47, 14, 60,255,151, 62,205, 48,101,182,227, 72, 41,149, 63,254,118,226,171,
-223,122,135,162,118, 43,159,119,179, 7, 28,133, 24,226,149,124,232,176, 63,106,221,146,244,215,182, 19,159,120,229, 19, 72, 76,
-204,117,161,197,142,200,196, 96, 79,127, 52, 38,100, 80, 66,129,158,253,125,145, 77, 97, 42,173, 18,242,100,212,180,181, 94, 73,
- 70, 74, 83,179,208,181, 78,111, 43, 61, 36, 66, 30,136, 34, 76, 83, 36,135,228,182,186,206, 13, 25, 88,131,237, 39,135,148,209,
-162,198, 27,143,221, 72,107, 23, 51, 77, 43,155,173,112,237,250, 17,105, 28,168,161,208,119,149,122,217,145, 38, 72, 28,220, 82,
-149,169, 23, 54,186, 95,180,240,236,189, 59,172,203, 76, 30, 97,115, 52,176,153, 34, 83,218, 32, 49,114,150, 26,189, 4, 36, 77,
-188,241,193, 59,124,255, 47,254, 37,239, 61,188,228, 95,253, 55,127,141, 23,110,159,112,255,233, 99, 54, 57,113,255,188,114,255,
-205,111,241,250,159,127,139,164,201,104, 94,193,236, 88, 65,132,220,224, 11, 63,251, 89, 94,126,245,121,126,245, 23, 63,207,245,
- 27, 39,252,241,239,254, 30,125,169,200,112, 4,177, 18, 82, 96,221,173,212,166,164, 24, 73,161,179, 4, 87,125,214, 74,234,149,
-150, 19,251,176,103,179,102,210,144,216,247, 10, 41, 19,168,158,194, 54, 11, 97,145, 10,210,172,119,221,103,164, 11, 34, 11, 61,
- 25, 12,164, 6,131,183,196,195, 84,115, 53,218,151,118, 79, 98,247,106,171,145,106, 18,149,214,176,176, 45,209,222, 19,161, 89,
- 48, 83, 18,181, 86, 98,239,144, 51,193, 27, 59, 26, 26, 42,153,128,201, 63,114,219,240,238,251, 79,121,251,141, 15,249,153, 95,
-121,142,210,148,187,183, 70,222,251, 96,228,242,195, 55,248,149, 47,124,129,111,191,245,128,119,238,255, 9, 25,131,175, 84,231,
- 74, 36,123, 44,218,119,145,163, 64, 27,208,171,184,145,172,145, 9,180,161, 33, 29, 66,143,172, 93,136, 93,201,217,162, 66,173,
-117, 18,198,200,168, 2,161, 52,246, 84,136,209, 15,201,254, 90,132,108, 45,165,160,164, 46, 36,237,214, 60,104, 54,249, 12, 67,
-242, 80, 86,165, 39, 33,117, 59, 68,175,218, 12,132,164,166,123,238,221, 58,230, 85,108,154, 90, 90,163, 20,131,170, 92,161,108,
-237, 25,233,220, 52,123, 88,151, 67,253,181,118, 11, 76, 7, 75,174,171,119,205,163, 21,220,189,202,102,147,225, 38,226,121, 1,
-211, 71, 87,181, 62,123, 10, 92, 29,194,162, 24,114,182,205,102, 69, 36, 10,201, 9,248, 49, 56,159, 94,149,168,246,190, 45,162,
-142, 97, 63, 72, 82, 20,113,238,132,221,122,195, 21, 61,191,169,173, 47, 67,178,223, 75, 9,120,178,221,228, 91,165,217, 13,218,
-112,252,141,216,131,133,231, 13,254,225, 25, 53,107, 40,129, 5,103,123,112,104, 77, 15,144,220,223,174,234, 77, 13,207,106,116,
-151,221,120,239,191,122,131,236,144,141, 10, 13,107,173, 56, 52, 46, 73, 72, 38, 97,145,238, 15,112,239, 25,251, 13,221, 78, 39,
-214, 61, 69, 12,242, 18,100, 32,118,189, 26,165,212, 90,125, 28,143,141, 27,176,177,182, 5,161, 13, 26,161,190, 75,183, 7,180,
-191, 80,193,126,201, 7, 49, 34, 90,209, 46,238, 47,118,231,119, 48,236, 97, 47, 46,136, 73,209, 3,122, 7,227,146,189,216, 17,
- 19, 12,180, 3,130, 86,172, 94,166, 21,138, 6,211,233,245,193,156,209,221,189,182,193, 60,242,149, 72, 45,102,114, 34, 22,203,
- 5, 96,163,123,251,240,171,133, 35,186, 33,110, 27,141,144, 44, 4, 33, 93,136,121, 68,164,123,182, 32,144,114,186, 26,247, 27,
-119,224,144,128,180, 27, 92,202,217,210,158, 94, 43, 25,183, 19, 65, 2,203,126, 54,108,237, 58,219,158, 44,140,244,181,179, 72,
-229,198,245, 13,167,231,123,214, 82, 56, 57,217,178,174, 51, 23,151,123,148, 67,208,195,214, 24, 70,111,181,244,253, 56, 68,118,
-203,138,106,119,163,158,141,234,147, 36, 36,139,141,138, 52,178,221,142, 86, 49,146,137, 44,246,128, 13, 65,217, 71, 76, 9, 41,
-216,151,205, 97,198, 85, 27, 15, 31,159,185, 97,201, 12, 66,218,109, 10,178,219,207, 87, 13,130,174,134,125,173,158,174,109,116,
- 68,237,176, 87, 74,229,242,114, 79,171,141,185, 99,107,131, 86, 89, 75,181,233,141,218,232,115,140,145,107, 83,224,232, 40,115,
- 60,141,228, 8, 23,115,225,253,135, 23,132, 40,156, 92, 59,230,153,187,183,248,236,231,238,113,237,232,136,208,133,126, 13,250,
-144,248,209,123,143,249,224,137,241,216,151,121, 37, 70, 83, 43,134,195, 41, 55,132, 43, 54,117, 8,129,227,141,240,242,171, 47,
-113,124,235,152,185,237,109,199,218,149, 16,173, 27,223, 53,131,116, 50,202, 58, 40,173, 42, 67, 26, 96, 46, 54,158, 29,133,210,
- 87,250,162, 36, 79,219,159,158,159, 83,195,200, 52, 5, 82,142,212,139,204, 38, 7,242, 16,144,176, 97,136, 66,169,123, 82, 26,
-144,150, 57, 95, 42,140,208, 16, 6, 12,101,185,246, 25,109,157, 33, 29,243,240,244, 9,219,188,225,222, 11, 47,241,210, 43,175,
-176,191,216,241,254,251,239,115,185, 91, 56,171,123,242,104, 43,170, 90, 43,210, 77,248, 48,164,204, 16,148, 60, 30,241,224,236,
- 67,110,156, 28,147, 99,102, 36,115,121,121,193,176,189,206,245, 27, 55, 41, 97,143,180,153,227, 33,242,111,253,234,207,242,143,
-127,235,255,227,135,223,252, 51, 94,249,171,127, 13, 41,143,184, 44,149,203,167,231,124,253,235,127,202,249,197,142,113,202,126,
-152, 86,146, 4,150,165,242,217,215, 62,198,223,254,219,127,149,155,215,239,240,211,127,233, 39,249,227,111,191,206,215,190,249,
- 93,114,204,166,115, 46, 70,236,139,193,214, 71, 75, 41,132, 16, 25,137,212,212, 8,177, 80, 27, 30,160, 11, 84, 10,178, 20, 36,
- 43,162, 6,242,208,214, 88,113, 59, 89, 59, 48,252, 45, 65,175,162, 70, 52,108,145, 82, 59,227,212, 89,181, 17, 99,182,112,108,
-107,254,127,233,214, 7,239,213, 56,229,106,198,189,142, 53, 43, 74,175,100,207,240, 32,129, 80,234, 85,143, 91,187, 9,168,122,
-240,148, 80,176, 42, 98, 18,203, 94,156, 95,118,190,254,231,111,240,185, 95,250, 5,198,227, 35,230,101,229,103,127,246, 83,188,
-253,198, 19,198,113, 34,135,201, 30,132,254,224,150,226,171, 73,177,160, 86, 12,206,202,168,133, 76,186,170, 87,245,222,233, 61,
- 32,139,113,226, 27, 21,169, 70,207, 92, 75,247, 84,186,218, 77, 59, 8,210,213, 24, 29, 62, 25,109,158, 1,146,152,109,229, 68,
- 96,233,133, 93,171,100, 15,136,169, 6, 98, 74,116,141, 22,226, 83, 11,125,117,167, 37,246,213,172,122, 81,146,161, 94,155,135,
-242, 74, 53,107,156, 54, 15, 18, 30,180,168,182,143, 47,116,127,168,217, 51,196, 24, 16,118,144,235, 7, 98,155,155, 56, 83,114,
- 67, 91,179, 86, 83,239,157,144,178, 61, 87,106,197,190,144, 12, 66,102,207, 28,155, 38,118, 7,207,224,245,226,126,245, 8,179,
- 74,112, 56, 64,113, 16,130, 10, 33, 53,215,234, 30, 24, 34,166, 13,173,109, 37,165,228,171,102, 27,125, 75,179,207,164,134, 0,
-213,122,248, 68,185,162,165, 70,239,155, 27, 67, 71, 88,187,117,224, 15,109, 2, 61, 24, 53,241, 94,186, 39,204, 74, 3,201,149,
-208,141,211,112, 48, 8,246,110,220,130, 26, 2,117,245, 92, 80,244, 32,164,115, 30,232,129,222,162, 77,124, 61, 0,221, 67, 32,
- 17, 14,198,151,232, 59,101, 91, 67,137, 58,192, 36,224,255, 52, 39,187, 97,137,107, 27, 81, 20,132, 4,177, 16,163,239, 54, 60,
- 28, 96,189,250,131, 30,211,217,189,158, 2,183,241,143, 87, 67,104, 87,134,183, 32, 1,180, 82,171,213, 71, 98,192,195, 86,246,
-130, 36,156,235,235,152,189,230, 55,100, 9, 30,224, 11, 88,250,184, 98, 50, 21, 44,181, 26, 49, 90,156,117,237, 3, 18, 50,205,
-229,243, 65,140,246, 22, 90,167, 5, 27,193,116, 49, 76, 96, 45, 13, 17,200,201, 60,181,218, 10, 53, 24, 58, 54,146,157,246,101,
-125,102,105,248,129, 37,153,250,176, 11, 26, 33,135,104,111,202, 44, 76, 10,211,100,191,152,182,174,200,112,228,183, 78,241,160,
- 29, 68,201,140, 25, 90, 84,144, 72, 9, 43,177,118, 46, 46, 27, 23,151,231, 4,160,172, 51,101, 89,232,205, 70,128, 6,146, 56,
-120,169,109,183, 57,109,182, 86,153, 41,157, 97, 72, 30, 72, 52, 74,154,170,249,130,163, 8,195, 96,183,173, 24,204, 45, 94,189,
- 66, 88,138,237, 71,131, 40,217, 73, 69, 74, 39, 12,153,107, 17, 46,231,149,214,187,157, 50, 99,100,183,236, 41,243, 74, 41,197,
-122,173,181,153, 94, 16, 12,231,170, 54,121,104,193,198,130,251,181,176, 91, 10, 77, 3,177, 41, 75, 95,108,175, 28,229,106, 63,
-219, 85, 56,187,216,115,243,214, 17, 47,220,189,201,118, 26, 8, 1,166,203, 29, 79, 78,247, 92,206,133,247, 31,158, 49,127,179,
-243,253,247, 30,147, 37,178, 44, 11, 50,100, 46, 47, 42,251, 98,163,211, 86, 26,173, 22, 35,198,137, 31, 60, 85,220,107,175,132,
-152, 56, 30,133, 87, 94,122,142,151, 94,122,158,108,154, 35,180, 71, 82, 50, 92,235,229,126, 53,216, 69,194, 38, 60, 8, 27, 87,
-207,150, 12, 90, 96,109, 98,159,137,158, 88, 91,101, 85,101,233,145,180, 53,200, 81,212,196,148, 64, 54,137,156,196, 2, 48, 61,
- 81,155,133,107, 98, 80, 36,217, 94, 81,171,210,227, 64,105,139, 33,117,215,142,234,142, 71,167, 15,185,182,221,146,114, 36,111,
-142,104, 33,178,238, 47,104,177,208,150,106, 7,148,100, 56,231,107, 99,164, 4,225,242,242,146,123,183,110,178,157,174,113,122,
-121,206,230,198, 77,226,118, 67, 84,229,230,120,194,121,233, 92,238,247, 44,243, 5, 79, 30,207,164,124,194, 51,175,190,202,223,
-252,187,207, 51, 78, 71,156, 94, 60, 33,167,196,124, 17,121,253,251,223,226,253,119,223, 50, 67,151, 66,202, 3,181, 22,150,181,
-114,231,218, 9,127,231,239,252, 27, 60,243,194, 61, 94,123,238, 99,252,232,221,199,252,230,111,254, 54,215, 82,102, 31, 96, 94,
- 86, 87,102, 6, 42,145,208, 23, 70, 73, 20, 85,175,232, 84, 40,150,124, 22,237, 70, 12,139,141,208, 64,122,116,166,183, 65, 61,
-162, 70,198, 33,217,195,172,119, 72, 3, 33,172, 76, 49,176, 56,234, 25, 9,148,101,177, 3, 61,137,160,102,107,236, 10, 3,135,
- 68,182, 16,123,163,214,224, 15, 89,219, 77,214, 90,140,214,136,133,106,161,177,182, 70, 36,145, 67,183,201,137,102, 11,240,178,
- 56,216,198,190,199,100,200,124,239, 71, 31,112,254,225,135, 60,115,235, 46, 31, 60, 62,231, 99,227,134, 62,192,255,246,155,255,
-132,215,223,120,199,107, 74,141,192, 96,187,211,216,208, 28,232,171, 35,194, 61,248,101, 40,236,195, 77, 83, 8,158,176, 86, 21,
-219,173, 11,204,205,196, 86, 72, 71,101,180,254,123,183,149,101,105, 46,205, 1, 50,166, 81,238, 10, 73,171, 81,231, 14,163,112,
- 23, 36, 73, 48, 99, 94, 90, 44,159,163,193, 70,201, 7, 76,111, 11,182, 30, 77, 77,161, 46, 38,104, 81, 11, 19,174,118,194, 55,
-175,184, 90,189,236, 80,243,108, 46, 73, 9,106, 83,202, 72,178,176, 94,244,134, 12, 30,112, 68,200, 4, 22,237,118,224, 10,242,
- 81,128,185,121,170,221, 5,172, 92,221,220, 33, 58, 65,207, 86,104,135, 84, 63, 87,127,110,196,171,105,106, 15, 63,237,130,253,
-241, 62, 13,241, 27,118,215, 78,204,201, 46,134, 14, 27,178, 29,125, 53,138,101, 14,134, 1,143,241,202, 56, 26,156,173,110, 59,
-241,118, 72,166, 89,126,204,106, 8,244,104, 35,254,160,145, 16, 44,249,110, 84,216, 6, 45, 56,152,218, 2,112,246,171, 51,126,
-133, 98,147,165,222,140,185, 18, 98,247, 93,126, 50,130,159,135, 3,175, 2,118,189,144,130, 90, 7,179,119, 51, 78,137, 26,241,
-205, 64, 11, 7, 75,141,221,200,164, 5, 35, 53,181,110, 86,161, 32, 62, 78, 72,158, 92,183,113,150,136,141, 60,241,211, 17,213,
- 8, 79, 33,124,100, 36, 67, 13, 36, 96,141, 52,179,179,105, 87, 36,100,242, 16,252,102, 15, 67, 74, 14,217,143,150, 80, 87, 75,
-166, 30,182,162,170,205, 18,204,189,163, 93,168,181, 26, 28,165, 7,179,244,196,140,180,238,135,134,136,100, 33, 5,136, 61,218,
- 45, 52,170,211,131,140,240, 35, 18,172,146, 16,236,127,223,123, 5, 18, 67,238,148,165,179, 84,123, 16,104,171, 70,217,171,205,
-119,112,130,106, 1, 49, 37,108, 80, 53, 44,101, 50, 84,107,168, 54,182,243,207,222, 85,199, 48, 96,187, 43,130,178,149,100,142,
-238,218,124, 39,110, 15,192,218,109,218,112,237,228,132, 86,109,135, 29,195,196, 52,116,170,227, 24,113,178, 89,138, 66, 47, 51,
-213,157,200,165,117,146, 7,229,134, 40, 52, 45, 60,189,188, 32,146, 72, 17,166,154, 32,250,161,168,137, 65, 25,180,208,170,157,
-246, 85,188,179,218,237,182, 58, 76, 66,138, 3,219,156, 80,133, 41,192,233,249, 5,235,188, 51,235,158,133,109,201, 18, 41, 69,
-217, 78,137,227,227,145, 33, 26,144, 98,209,149, 7, 79,102,206, 46, 58,107, 93, 25, 36,144,167, 76,148, 64,204,206,184,109,176,
-155, 59,203, 98, 15,225, 90, 10,247, 31,158,145,115, 38, 38,147,125,172,171, 82,151,206,195,229,130, 7,143, 47,208, 31, 28,122,
-157, 86,241, 24,182, 91,162, 88,167,179,121,151,180, 53,131,107,132,232,252,110,135, 58, 36, 81,142,143, 54,220,188,123, 15, 66,
-100, 93,155, 33,126,155,245,131,199,203,202,118, 51, 49, 12,248,225,117, 36,212, 74,149, 78,152,205,123,189, 34, 94, 65, 51,198,
-122,171,149, 46, 66, 74, 27, 98,109, 68, 15,152,230, 40,164, 41, 51,165, 72, 91, 58, 75, 95,201,219, 13,169, 64,237, 43, 61, 7,
- 66,232, 72,176,132, 60,205,216,219, 83, 78,244,165,176,172, 59,238,220,185,197, 56, 29,115, 52,110,120,251,221,119,157,200,167,
-136,195,111,142, 54, 91, 36, 30,209,150,153,181,236, 41,109,207,115,207,127, 30,137, 35,183,142,174,113,253,248,196,229, 28,157,
- 16, 35,203,110, 79, 93,206,121,250,248, 41, 31, 60,248, 11,100, 21,138, 44, 28,111,175,243,228,236, 17, 2,156, 94, 92,242,238,
-123,111,241,250,155,223, 51,217, 68, 72, 22, 48,170,230, 96, 8, 10,127,235,215,127,133,159,251,185, 95,226,249,123,183,169, 40,
-191,249,191,255, 54,231,187, 29,219,163,103,200,251, 25,149, 21,141,153,190,218,225, 57,137, 85, 52, 67,239,164, 80, 44,144, 25,
- 19,189, 45,110,159,138, 72, 76,212,208, 25,186,117,162, 75,183,207,123, 8,145,218,172,254, 26, 99, 48,137, 70,243, 21, 26,157,
- 36,141,158,162,161, 93, 99,182,239,135,234,208, 36, 85, 10,193,157,230,126, 11, 61,180, 98,192, 45, 95,230, 4,151,152,233,189,
-218,247,131, 65,174,205,180, 21,189,178, 41, 7,126, 67, 50,166, 6,141, 17,225,241,147, 75,190,243,237,239,241,153,207,253, 20,
- 75,203, 60,121,116,193,171, 47,156,240,197, 40,252,232,135,111,179, 73, 27,187,225,246, 78,151, 74, 78,241,202, 3,177,132,132,
-184, 69, 82,131,101, 15,160, 16,100,164,187, 89, 50,134, 78, 88, 18,107, 48,149,241, 1,105,174,181, 81,180,216, 4, 64,141,207,
-208,187, 53, 75, 52, 88,195, 40, 17, 88,151,197, 30, 56,201, 46, 48, 93, 2, 34,110, 78,155,103,203, 23,137, 73,153,114, 78,244,
-214,232,165,216,224, 59,226,162, 43, 31,249, 54,161,246,118,101, 45,236,181,217,136,185, 91,112,109, 12,216,235,233, 21,105,237,
- 54,237,236,218,161,122, 88, 9, 37,117, 69, 7,171,200, 17, 44, 7, 97,245, 61,159,104, 4,187, 20,212,106, 42, 86,106, 37,144,
-168,158,121, 32, 66, 47,106,159,239,234,172, 19, 55, 69,166,100,248, 90,227,230, 67, 17,181, 85, 10,130,136, 61, 88,137,253,176,
- 12,183,223,177, 4,106,107, 68, 53,214,255, 90,237,233, 26,162,253,158, 98,140, 32,134, 67,239, 98,183,229,160,226,211,101,245,
-219,127,191, 34,233, 29, 4,117, 65, 15,127, 23,191, 93,247,112,197, 30, 0, 65,181, 19,181, 91, 5, 15, 91,143,107, 52,158,139,
-144, 12, 14, 20,236,168, 38, 10,107, 48, 38, 31,254,121, 72,138,171, 40,187,177,103,171, 19,184, 98,180,196,104, 88,171,119,161,
- 29,107,231, 33,163,120,216, 99,168,153,109,122,181,157,136, 4, 3,103,168, 68, 82,138,136, 66, 72,197,194,113,221,110,165,189,
- 55, 3,239,184,153, 39, 28,198, 49,189, 95, 9,101, 98, 16, 99,165,251, 41, 80, 87,179,210,136,116, 11,155, 5, 83,120, 74,116,
-165,156, 20,219,216,244, 78,110,205, 79,215, 21,218, 74, 11, 25,165,152,148,160, 4,122, 28,140, 31, 31,220,178,213,237,118, 20,
- 92, 36, 35, 98,111,164, 33, 4,106,179, 15, 86,148, 12,155,200,160,135,137, 67,247,157,136, 5, 70,114,202,148,110, 1, 12,181,
- 99,153,253, 12, 46, 59, 40,172,126, 88,112, 28,110, 12, 72, 55,172,230, 50, 23,154, 86, 82, 26, 24,178,133, 67,182, 41, 51, 76,
- 25, 6, 57,128,208, 9, 58, 82, 75,161, 55,168,171,209,228, 74, 45, 52, 58,165,118,127,182,135,171,201, 74,175,202, 52,142,116,
-237,228,113, 36, 7, 11, 3,238,206, 47,109,183, 44,145,121,159,201,201,216, 1,196,200,133,238,201, 49, 16,253, 48, 17,147, 85,
- 45,186,118,162, 24,124,133,216, 81,215, 80,174,193, 12, 65,183,175,223, 96,165, 19,122,103, 89, 77,131,153,177,196,189,134, 68,
- 28,237, 65,118,146,182,156, 94, 60,162,212, 75,114,132, 33, 91,170,181,183, 64, 41,237, 96, 18,116,220,174,173, 51, 74, 81, 46,
-215, 64, 88,103,118,187, 98,135, 28, 71, 47,198,136,189, 7, 60,112, 25, 60,100,169,189, 49,215, 66,173,118, 91,136, 34,158,115,
-177,204, 1, 98,163,218,222,141, 76,181,219,207,124,237,235,127,102,117,154,174,164,136,221,166,163,221, 92, 62,253,201, 87,248,
-252,167, 62,205, 78, 45,104,212,235, 66,206,214,123,157,207, 43, 90,171, 77,148,138, 88, 74,190, 43,244, 68,148,110, 35,225,156,
- 24, 80,138, 38, 98,183,230,129,113,160, 23, 82,177, 20,118,163,160,251,128, 12,137,148, 7, 68, 26,101,223,136, 33, 33, 49,243,
-248,201, 3,234,218, 24,227,200,115,207,220,227,230,241, 17,223,127,250,128,211,139, 66, 41,141,233,200, 42,111,173, 23,110, 78,
-215,120,178,238,169, 42,164, 52,113,237,198,109,222,123,247,148,124,156,168,122, 73, 42,129,186, 68,150,181,128, 10,155,156, 89,
- 7,248,133, 95,248, 9,110,110, 38,222,249, 96,199,233,121, 67,163,178,159, 19, 15,239, 63,230,143,190,252,135, 92,156, 93, 16,
- 83,178, 3, 94, 10,212,190, 48,164,204,191,251,183,126,157, 79,126,242, 85,238,222, 58,226,230,141, 99,126,247,203,127,198,219,
-111,189,201,209,241,115,236,202,130,246,213,210,185, 75,179, 67,100,116, 0, 85,155, 81, 42, 26, 70, 59,182,213, 56,197, 0, 0,
- 32, 0, 73, 68, 65, 84,100,180,153, 56, 69, 90,202, 80,204,161,160,189,176,107,157,174,139, 53, 74,106, 32, 36, 71, 35, 99,156,
-243, 84, 76, 0,181, 95,103,243,218,251,195, 91, 43,208,170,175, 90,108,101, 40,161, 83, 61, 77, 30,186,173,244, 8, 43,234, 50,
-143,187,119,239, 49, 95, 60,177,135,164,186,196,138, 78,142,217,255, 25,246,192,164,137,213,128, 17, 91,251, 52, 15,122,210,233,
- 57,243,135,127,250, 29,126,233,175,188,203,107,175,124,150, 39,167,103,212,165,241, 55,127,253,215,249,214,159,191,199, 15,127,
-240, 22, 67,154, 28,159,237, 43,167,214,136, 41, 18,212,218, 52, 57, 97,117, 62,223,134,198,102,172,122,237,141,238, 46,114,245,
-198,144, 52,236,245,195,106,120,130, 77, 35,138, 54, 55, 93, 38,131,195,168,178, 63,152,193, 36, 64,179,221,172, 6, 23,131,120,
-208, 51,248,120, 88, 69, 89, 90,113, 28,169, 92,137, 87, 52,224, 55,123,243,132,219,105,200, 24, 5,214,169,175, 87,245,186, 53,
-170,177, 23,214,217, 38,117,218, 73, 34, 86,127,236, 7,213, 72, 71, 37,219,218,209, 33, 81,218,173, 89, 35,221, 70,223,221,171,
-204,146, 60,131,141,201,158,232,129,208, 92, 71, 27, 32,144,136,209,190,103, 85,141, 94,216, 14,136, 27,111, 97,101,247, 75, 88,
-163, 43,250,132, 25,211,153, 98, 74,218,238, 78,170, 20, 3,165, 99,202,221,102, 2,153, 16,204, 85, 98,102, 81, 37,138, 29, 20,
- 57,200,216, 14,187,245,102,174,212,208,213, 66,223,126,176, 82,167, 4, 38,213, 43,200, 77, 23, 8,205, 94,119,107, 41,218,141,
-191,139, 77, 91, 8,163,233, 93,163,241,251,165, 41, 61,139,255, 30,172,161, 17, 67, 32, 94, 59,185,241, 27, 33, 8, 98, 86, 71,
- 82, 18,115, 55, 39,177,192,154,186,117,167,117,106, 91,253,139, 86,232,158,150, 52,119,116,248, 72,164,113, 64,236, 57, 29,168,
- 30,144,127, 33, 80,154,237,118, 66, 20, 55,236, 68, 82, 74,164, 56, 64, 23, 39,193, 69, 75, 43,138, 24, 39, 90, 12,200, 97,134,
- 88,123,226,167,104, 20, 33,107,191, 89,125, 44,244,238, 9,125,187, 57, 73,140,132, 56,144,114,250,232,131,119, 80,227,165, 43,
-101,141, 39, 19, 15,194,146,238,225, 24,175, 35, 8, 36, 25, 72,131, 48, 78, 70,128, 11, 98, 15,186,113,200, 12, 57, 49, 77, 91,
-166,205,214,170, 88,218,201,146, 73, 41, 92,125, 17,224,117,133,224,127,254,225, 32, 96, 99, 68, 27,177,181,106,225,146,186,206,
- 44,173,210,122,101,119,185,178, 47,157,121,221, 51,239, 86,202,210,153,231,197,160, 26, 34, 72, 78,228,156,217, 76,137,105, 51,
- 48,108, 50,155, 97,195, 48,216,127,150,243,200,112, 52, 48,102, 11,213,109,142, 54,140,211, 64, 78, 3,180,102,235, 4,137,246,
-197,224,146, 4, 9,205, 94,107,117, 77, 93,176,125, 92,105,205, 87, 35,134,169,109,221,131, 36,173, 49, 47,149,178,118,115,189,
- 99,181, 47, 9, 66,202,102, 24,147, 20,153,151,194,197,126,101,183, 52,206, 78, 23,158, 60,221, 17,162, 50,229,140, 42,172,189,
- 83,106,165,148,202,186, 86, 90,179,247,225,176, 73, 22, 42,172, 22,236,217,207,133,203,157,161,115, 77, 11,101,239,149, 36,246,
-128, 48, 20,102,101, 93,138,161, 27,187,237,246,245,112,137,231,224, 78,183, 44, 69,247,176, 92,107,149,101, 93, 41, 75,177, 38,
- 65, 55,134,126,171,246, 62, 94, 74,161,148, 75, 94,121, 97,226,241,217, 5, 15, 31,159,163,107,161,104,101,183,168, 81,241,146,
-221, 42,204,117,223, 25,210, 72, 19, 11,131, 78, 41,179,221, 36,155,130, 13,145,109, 76, 72, 79, 20,154,215, 94, 13,185,156,124,
-254,148,143, 50, 33, 68,202,170,244,197, 2,131, 45,193,253, 15,239, 83,215, 61,119,239, 61,203,167, 63,254, 83, 4, 85,222,126,
-247, 13, 46,250, 37,195,152,217,132, 45,189, 54,198, 41,115, 52,100,206,231,153,139,178,112,247,198, 61,226,112,196,147,243,251,
-220,126,246, 14,125,182,181,210,152, 70,134, 65,232, 82,104,155, 35,174,221,126,150,178,143,156,238, 50,183, 94,120,141, 40, 3,
-177, 11,173, 52,190,244,165, 47,242,206,219,111, 48, 14,131, 37,253,197,170, 77, 55,142, 39,254,131,191,247,215,249,183,255,157,
-191,203,201,201, 49,159,252,236,171,124,239,141, 71,252,119,255,195,255,200,107, 31,255, 20, 31, 60,188, 36,197,149, 32, 74,155,
- 27,205,173, 89, 65,213,178, 31,106,123,179, 22, 2,169,155, 99,188,248,154, 47,197,100,252,254, 62, 35,170,200, 24, 16, 18,189,
- 21,147, 21,133,108, 95,110,209, 76,121,237,144, 64, 46,182, 71,181,181,167,208, 66,161, 55,155, 82, 37,197, 53,161, 94,224,237,
- 54,210, 21,181, 47,246,170,157,235, 55,182,236,119, 51, 23,231,167, 70, 10, 68,188, 51,238, 15,149,104,125,252,232,227,222,144,
- 45,204,107,227,101,187, 81,142,211,200,195,199, 59, 78,142, 50,159,251,169,159, 96, 26, 50,203, 90,121,225,249,107,180, 2,127,
-242,141,111,186,160, 37, 16,178,237,229,205, 87,174, 78,227,148,131,103,197,158, 44, 62,198,213, 80,125, 72, 27, 33, 84,162, 90,
-200,179,117,219,241, 54,212,214, 24, 88,133,170, 31,246,218,190, 99,239,221, 42, 89, 65,140, 95, 30,196, 17,166,218,140, 60,215,
-205,136, 22,195, 0,189,185, 16,211,234,163,162,234,146,146, 31,251,123,121, 68,205,170,141,205,166, 3, 52,191,236,116, 91, 9,
- 4,171, 29, 26,146,251, 48,213,140,182,118,208,234, 94,119,223,141,247,238,110, 22,251, 41, 85,187, 77, 19,252,187,178,187, 81,
- 60,137,181, 80,130,157,173, 12, 85,158,156,174, 30, 35, 93, 44,237, 46, 87, 59,252,224,218,235,195, 65, 77,124, 77,124,168,199,
- 29,246,243, 54,238, 15,213,130,173, 26,241,245,144, 58, 95,222, 46, 64, 42,118, 11, 63, 28, 72,240, 0, 91,112,137,142, 98, 0,
- 27,155,152,216, 45, 93,124,100,255,209,179,172,163, 26, 61,144, 46, 87, 74,103,107,206, 56,165, 46, 28, 56,239,205, 95,244, 70,
- 52,154,155, 61,240,187,143,245,197,107,227,189, 18,159,187,253,204,111, 68, 63,105, 85, 21, 79,104,219,104,221, 92,180,217,133,
- 41, 54,154, 21, 9,164,104,149, 41, 3,215,116,211,164,138,125,160,130, 4,174,202,105,205,198,182,173,154, 43, 60, 96, 55,109,
-220,182,211, 93, 42,208,213, 45, 52, 46,219, 8, 41,255,216, 3,209, 70,210,146, 50, 49, 37, 11,230, 72, 66,194,225,129,157, 17,
-137,164, 97, 36,229,129, 60, 38,114,140, 36,177, 96, 87, 76,150,237,138,158,144,143, 49, 57,170, 52,147,134,137, 28, 44,108, 19,
-252,228,222,138,221,182, 75,117, 87,121,239,172,235,225,148,218, 13, 59,168, 86,237, 11,209,160, 22, 67,136, 52,109,228, 33,179,
-217,100,162, 36,134, 33,177, 29, 38,114, 74, 70,171,139,193, 58,163, 8,217,223,100,104,180,218, 90,245, 53,197,161,167,216, 29,
-225,232,193, 24,220,235,222,106,167, 84, 88,150,133,253, 90,152,151,197,121,206, 66,142,131,237,206, 83, 32,165, 72,206,118, 8,
- 25,198,129,205,118,228,218,141, 45,155,109,102, 24, 71,198, 60,144,115, 36, 39,203, 35,152,166,212, 78,190, 81,130, 77, 27, 56,
-140, 23,237, 38, 29,179, 5, 0, 45, 64,168,164, 28,157,174,214,137, 98,163,124, 28, 50, 44, 33, 58,160, 33,145, 98,186,146,238,
- 4,141,236,231,133,148,236,203,182, 52,211,202, 62,115,115,195,189,219, 27,182, 83, 98, 59,154, 79, 64,226, 96,237,133,181, 49,
-142, 38,118, 41,173,218,184, 60, 37, 15,168,224,156, 3,203, 11, 44,139,189, 70,211, 48, 92, 17,181, 98,140,108, 54, 27,174, 95,
- 63,230,217, 59, 39, 68, 26, 23,151, 23,118, 99,195, 30,224, 34,145,113, 24,201,195, 96, 31, 52,103, 52,183,214, 93, 11, 25, 56,
-189,152,121,227,157, 71,124,247,187,111,144,250,194,175,253,235, 47,179,137, 35,223,250,206,251,236,246, 59,246,187,133,203,203,
-133,203,101,161, 84,181,137, 87,239,164,112,196,144, 2,199,155, 13, 61, 10,219, 65, 24,243,192,144, 51,105, 51, 16, 11,228, 49,
- 51, 78, 38,106,105,173,217,200,115,112, 63,130, 2, 41,162, 77,121,255,253,119,200,227,196,203, 47,189,202, 52, 28,115,255,254,
-135,204,243, 25,121,237,228,184, 97,217, 45, 72,236,164,148,121,122,177,178, 46, 11, 89, 58,159,122,237,115, 60, 93, 78,185,118,
- 77,184, 57, 93,163,117,229,104,179, 37,228,129, 46,240,250,119,127,192, 63,250, 71,255, 43,251,243,251, 60,247,236, 11,156,220,
-125,142, 24,149,109,158,120,116, 49,243,149, 47,253, 33,223,248,198,151, 33, 88, 7,116,147,172,134, 39,146,248,236, 79,254, 52,
-159,255,185,159,225, 51,175,189,200,167, 63,255, 25, 30, 62, 85,126,227,191,249, 7,236,158, 60,225,198,245, 59,124,255, 7,223,
-227,214,205, 91,172,197,252,246,146, 6, 11, 72, 81,188,119,189, 18, 83,134,218,209, 30,145, 56,184, 49,180,163,107, 35,132,217,
-170, 69, 98,224,151, 90,149, 97,204, 76, 98, 15,133, 22,130, 25, 17, 75,181, 44,129,217,235,233, 88,211,162,187,108,170, 7,188,
- 86,107, 15,124, 73, 70,218, 54, 8,138,117,187,155, 54,203, 93,168,141, 90, 79, 79,159, 56,156,200,146,238,129, 96, 92,251,131,
- 1, 59,102, 91, 85,106, 32,165,132,228,100,240,161, 0,210, 3, 75,133,167,143,238,243,153,215,158,229,206,221, 23,120,116, 62,
-243,225, 7, 15,120,245, 99, 47,242,238,251,143,121,243,237,247,201, 67, 54, 56,144,123,195,179,216, 94,183,118,159, 86,225,246,
- 73,191, 43, 71, 85, 75,220, 87,191, 32,248,173, 58,133,108,227,115, 95, 79,212,102,214, 68,235, 80, 91, 93,181,170, 50, 8,196,
-156, 44, 12,139, 49, 20, 98,200, 14,104,233,190,187,183,236, 77,117, 27, 27, 93, 63, 58,176,184, 88, 70,122, 39,133, 64, 9,234,
-160,169, 70, 10, 7,223,121, 50, 2,105, 53, 96, 78,247,174, 55,218,174,210,229,226, 19, 47,187,236,218, 69, 76,125,133,125,184,
-108, 73,240, 78,121, 56,172, 87, 61, 4,121,160,150, 58, 28,198,214,235,209,141,162,206,120,144, 67,248,206,194,110,250,227, 66,
- 21, 14,198, 80, 7, 7,137,248,234, 23,151,141,245,171,144,243,193,222,214,186, 56, 99,196, 30,168, 90, 61, 68, 43,225,106,237,
-152, 83, 64,179,175,164,253,191, 11,206,193,176, 56, 63, 62,178, 55,249, 10, 87,223, 98,110,117,107, 7,121,145, 67,149, 2,172,
-173,217, 84, 88,108, 98, 29,197, 14, 35, 34,110,216,235,230,169,144, 32, 54, 25,209, 64,186,115,235, 24,109,149,181, 26,210,178,
- 87, 11,170,173,181,208,131,208,187,197,250,163,255, 67,237,152,102, 95,132,150, 64, 55, 81,130,246, 78,202, 25, 9,214,107,108,
-206, 87,111,221, 74,122,221,249,190, 7, 72, 16,221,110,220,218,236,131,167,206,137, 55,196, 94,178, 23, 68, 45, 85,172, 98, 41,
-249, 3,145,142,208,108,236,175, 22, 36,232, 18,220,142,147, 9,201,247, 25,234,129, 27,183,162,201, 96, 8, 65,141, 98,163,151,
- 26, 32, 70,130, 12, 76, 77, 92,112, 96, 15,114,173,141,218, 42, 7, 37,113,107,157,178,204, 70, 53, 74,129, 44,214,141,157,253,
-231,203, 18,209,168,246, 69,157,124,112,149, 51,169,175,180,181, 33,105,240,176,158,218, 88, 53, 84,234,186, 90,111,221,223, 52,
- 6, 37, 80,170, 6, 74, 45,132,208, 12, 75, 24,237,144, 34, 64, 72,201,130,105, 26, 44, 68,120,112,123,123, 87,114,213,106,111,
- 91,181,196,122, 16, 51, 45, 5, 7,200, 72, 74,132,212,153, 75, 67,162, 65, 17,164, 31, 68, 15,126,235, 64,169,210,137, 85,232,
-150,229, 48, 59, 82,115,168,207,144,144,214,145,100,154, 70,213, 68, 43,149,148, 2,210,162,217,220,176, 21,132, 12,134,129, 13,
-109, 36,134,138, 74, 99,187,221,128,108,237,198,208, 12, 27,121,114,107,224,232,104, 34,107, 36, 75,231,254,227, 83,126,248,246,
-142,243,179, 83,186, 42,147,102,122, 91, 61,191,225,191,115,199, 78,198, 96,127,201,121, 89, 89,215,194,241,181,235,108,143,142,
-120,242,244,145,213,250,242, 96,230,165,214,217, 28,109,217,157,159, 90,235,128, 64,140,145,107,211,214,250,182,142,104, 77, 81,
-104,213,132, 31, 49,167,171, 41, 19,170, 60,125, 50, 51,151,194,241,241,200,231, 63,245,113,190,247,250,135,220,188,153,121,114,
- 89, 8,181, 19,115,160,247,200, 50, 47,180,139, 11, 19,178,196, 75,246, 99,102,222,239, 45,216,217, 96, 24, 19,113, 18, 84, 50,
- 89, 18,153, 70, 91, 23, 36,193,120,124, 68, 42,145,194,194,118,136,172,161,162, 18, 41,187,133,182, 22,182,195,214,164, 62, 23,
-143,184, 88,206,208,121,225,250,241, 9,143,247, 59,208,194, 52,108,153,107,161,176, 39, 13, 35, 83,218,160,203,204,254,236,156,
-231,159,127, 1,237,145,113, 27,205, 28, 72,161, 46,149,219, 55,111,144,214,133, 27,195,204, 51,183, 54,188,245,222, 3, 54,199,
-137,249,113,225,139,191,255, 59,252,225, 31,252, 83,114,138, 87, 13,138, 60, 77, 92,236,247, 60,115,231, 38, 39,121,195,242,112,
-225,197,159,248, 56,223,254,206, 27,252,215,255,213,127,203, 15,190,241,103,252,218, 95,255, 27,252,224,141, 31, 17,116,239,235,
- 8,243, 18,164,218, 24,164, 83,187,173,160, 84, 51,171,174, 72, 82,106,141,116,113, 25,203, 82,168,165, 18,153,208, 94, 60,213,
-126, 72, 76, 79,212,193, 28,220,177, 69,251,114,245, 41,157, 51,172,237, 38,216,172, 11, 78, 24, 89,203,130,150,134, 38, 67,111,
-150,186, 90,218, 90,131,145,214,154,237, 91, 9,137, 90,149,205,246,216, 90, 42,221, 70,197,126, 87,116,168, 8, 46, 32,241, 93,
-123,180, 29,188, 54, 59,248,106, 54,202,219, 52, 13,188,245,254, 25,255,226,203,127,202,209,157, 23,249, 39,255,244,247,249,238,
- 31,127,157,255,228,223,255,123,124,225, 47,255, 44,223,121,243, 45,118,103,123, 3,153,116,187,217,149,106, 2,150,134, 77,104,
-114, 18,234,106,205,145,174, 22,136,235,171,225,179, 37, 98,123,106, 34, 61, 84, 66,109, 46,169, 18, 2, 6, 49, 10,210,201, 98,
-104,214,224,220, 11, 61, 44,119, 85,253,112,189,216,119,138,189, 41,232,180, 43,132,114, 15,205, 31, 60,225,163,116,187, 26,147,
-163,117,215, 43, 87, 39,120,162,166, 84, 22, 23,179, 4,211, 31, 75,197, 32, 63, 46, 86,234, 26,208,190, 16, 98,178,125, 51, 70,
-213,139, 62,153,181,218,184, 81, 62,137,238, 33,209,128,228,128,150,110, 1, 50, 95, 37,106,131, 40, 6, 29,194,109,127,218,244,
- 42, 16,169,142,118,165,117,107,154, 96,239,147,160, 6,125, 82,196, 14, 19, 33,217,107, 89,173, 1, 17, 66,184,154, 20, 4, 2,
- 18,197,246, 13, 29, 84, 26, 17, 87,201,214,213,173,105, 38, 60, 11,221,118,232, 42,253,234,246,109, 56, 87, 67,235,232, 97,191,
-168,246,103,116,177, 3,137,118, 11, 9, 30, 14, 61,182, 62,242, 90,121, 59,136,120, 44,117, 31,124, 90,110, 85, 58, 27,205,247,
-110,217,174,160,145,248,194, 43, 31,255,141,148, 38,146,100,226,118, 96,179,177,189,238,118, 19,125,167,168,100,245,108, 94,211,
-195,103,230,199,198, 8,209, 84,131,146,200,142,221,148, 40, 76,155, 13,155, 49, 50, 13, 98,163,193,209,176,178, 73, 32,121,141,
- 45,137,144,197, 78,100, 33, 68, 11,167, 89, 93,207,186,146, 65, 93, 28, 96,196,174,224,144,252, 31,179,227, 26,129, 46, 88,144,
-175,174, 43,189, 22, 90,239,118,179,109,118,184,104, 65, 61,153,104,181,143,238,163,151,214,171,227,255, 4, 82, 70, 37, 34,105,
- 96,220,108, 25, 55, 71, 12,227,134,163,209,198,215,227,144,152,134,204, 56, 77,164,152,217, 76, 91,134,144,174,106, 4,218,172,
-226, 84,150, 66,213,198,110,183, 99,222, 91,223,189,119,101, 89, 87,127,147, 57, 61,239,160, 23, 12,126,250, 34,144,163,173, 61,
-198,108, 7,131,148,128,117,161,213,149, 86, 87,202,186, 58, 67,192,161, 24,193,254,236, 40,201,195,131,217, 71,104, 16,135, 12,
-152,109,170, 87,245, 83,240, 97, 26,208, 76,167,234,167,226,232,188,250, 48,136,113,159,233,134,126, 69,124, 92,109,219,187, 94,
- 61,213,143, 77, 3, 66,176,215, 36, 13,145,237, 48,146,198,200,102, 72, 54,173,136,198, 31, 24, 36, 56, 40,196,209,140,193, 14,
- 87, 49,218,237, 2, 17,246, 43, 92, 92, 42,167,151, 38,208, 41,205, 79,184,209, 80,151,225, 64,187,116,189, 96,215,143, 56, 10,
- 10,142,231, 92,153, 54, 19, 41, 10,231,231,231,148, 82, 44, 52,216, 11,165,216, 33,170,107, 99, 89,246,150,204,119,125, 98,206,
-217, 12, 94, 41, 26, 71, 57, 70, 19,206,164,241, 42, 48, 42,193,194, 80, 4,187,217,157,237,102,214,167,167,252,228,107,183,185,
-126, 99,226,253,247, 47, 40, 2,251,101,161,173,110,159,146,102,175,219,193, 97, 64,167,175,133,178,206,180, 94,185,208,198,178,
- 44,212,165, 49,207, 51,231,187, 29, 23,251, 74,111, 43, 23,187, 75, 86, 79,100,247,181,146, 98, 98,183,158,241,225,123,247,217,
- 30, 31,115,235,230,117, 68,132,179,203,115,180, 4,246, 33,178,212, 61, 18,221, 5, 17, 35,227,198,118,108,119,239,221,227,246,
-221,123,236, 47, 87,142,175,141, 12,106, 83, 23, 81, 16,217,240,193,163, 83,174, 61,115,155, 95,254,229, 95,166,230,235,140, 39,
-247, 56,127,240,144, 15,222,249,128, 47,254,193,239,243,181, 63,249, 35, 90, 41,196,108, 21,205,105, 72,172,205,110,221, 71,227,
- 6,213,153,218, 2,239, 63,216,241, 15,254,251,255,137, 31,124,243,107,252,103,255,249,127,200, 59,247,103,190,250,245,175,242,
-226,203,175, 48, 12, 27,171, 5,165,136,134,106,114, 13, 43,139, 91,210,124, 87,140, 86, 23, 44,180, 91,181,208, 43,196, 56,209,
- 84, 41,218,220, 68,104, 77,149,210, 86,107, 98, 52,187,213, 74,176,207,112,169,213, 61, 8,216,216,190, 22, 63,148, 55,171,196,
-138, 9, 88, 68,172,237,163,221,140,133, 30, 5, 54,208,145,167,170,115,180,236,201,188,187,180,203, 74,116,177,103,176, 96,157,
-248,103, 80, 57,228, 99,240,157,172,209,223, 66, 52, 65,204, 82, 10,143,159, 92,114,190, 15,124,249,143,254,132,235,229,130,219,
- 39, 3, 15,206,207,120,243,157,199,212,181,147,131,143,201, 69,109, 28,110,114, 79,167,198, 41,197,191, 91,212, 67,177, 77,149,
- 68,240,253,172,179,233,253,150, 73, 15,222,105,110, 87,233,250,165,216,244, 65,162,121, 11,174,252, 28,222,120,178,189,190,151,
-201,163, 5,223,172,168, 20,175,246,212,118,179, 7,135,179, 91,163, 64, 18,173, 25,228, 69,253,182,221, 14, 54, 74,223, 21,119,
- 15,170, 30,164, 41,158,214, 51, 98, 29, 7, 43,156, 29,212, 53,216, 61,218, 8, 94, 78,183,139,198,205, 8,120,126, 42,134, 43,
-225,104,240, 85, 95,243,139,159, 93,143,108,237,123, 56,134,117,111, 92, 93, 97,206,131,175, 17,187, 29, 18, 99,178, 41,109, 14,
-225,144,169,247,218,118,248,104,122, 44,150, 95,104,197,198,237,162,118,225,233,222,194,138, 73,174,192,100, 66, 68, 91,160, 57,
-204, 44,224, 83,162, 3,247, 61, 90,229, 77,131,175,170, 29,151, 30,154,229,209, 16,117, 56,155, 79,131,174,170,224,126, 70,194,
- 14, 42, 33,122, 38, 64,140,246,168,158, 87, 75, 40, 73, 91,115, 82,173,133, 45, 90, 72,118, 27, 11,145, 52, 89,228,191, 87,131,
-135,116,239,244,169, 90, 34,185,246, 70,237,149,165,122,192, 64, 43,146,109, 28,222, 83, 38,202, 64,198,246, 70,162,141,177, 29,
- 0, 50,246,197, 44, 18,160,154,121,167, 25,219,195,100, 10,218, 89,107,183,174,100,182, 61, 67,148,136,102, 11, 58, 36, 95,128,
- 28, 12, 74, 34,202, 64, 36,142,214,137,110, 14,132, 17,177, 36,177,193, 75,250, 1, 76, 76,244,125, 6,221, 32,130, 41, 85, 3,
-175, 52,219,247,205, 33,121,213, 67, 40,190, 67,145, 52,144, 36,209, 83, 96, 84,103, 0,231,196, 32,141,218, 18,173, 86, 66, 18,
-122, 93,141, 34, 55,100,123,104,183,238, 42, 81,161,174,133, 50, 95, 50, 19, 13,200,210,154, 87,184, 64,242, 72, 11, 17,161, 58,
-230, 54, 16, 36,177,221, 70,214,214,141,179, 79,163,214, 25, 84, 40, 85, 72, 26, 89,103,165,230,193,214, 25,205, 79,200, 34,196,
- 93,164,209, 25,220, 20, 23,115, 96,196,199, 84,146, 8,201, 70, 68, 80, 17, 77, 38,142,108, 70,175, 34, 8, 65, 19, 33, 43,172,
- 92,125,248,123,235,244, 82,232, 10,235,170,150,187,136,118,176, 40,232, 85, 71,120,200, 3,155,113, 36, 68,200, 89,104,205,216,
-253,117,153, 45, 85,170,129,162,133,117, 54,231,115,161, 99,240,175,236,157,213,149, 60, 38,238, 28,221, 50, 48,140,195,122,138,
-118,122, 81, 55, 6, 86,214, 90,172, 7,239,163,179,218,236,139,172,180,149, 97, 24,156,192,228,208, 8,173,156,159,158, 51,215,
-149, 90, 42, 18, 19,170,202,110, 93,152,198,129,160,233, 42, 44, 10, 78,213,114,237,240,218, 42,219,237,150,222,149,214, 10,247,
- 31, 46,252,246,191,124,157,147, 23,110,176,174,249,234,134,101,233,229, 25, 29, 34,210, 2,210, 58,227, 48, 49,175, 6, 19,218,
-140, 16, 71, 97, 95,149,113,177, 94,239,254, 96,173,138,193, 48,203,123,159,224,236, 50, 49, 86, 82,140,196, 38, 60,122,248,136,
- 30, 34,215,175,221, 32, 13, 91,154,154,180, 39, 75,160,148, 83, 11,106, 46,157,216,149,179,253,125,114,156,200,219,137, 79,124,
-226, 51,204, 5,174, 95,223, 26, 12, 99, 92,217,132, 35,100,200,124,231, 47, 94,231,127,254,135,255, 11,165,238,249,143,254,227,
-191,207,221,187,207,240,230,183,191,195,229,126,199,131, 15,223,225,219,127,246, 21,230,101,111,185,149, 82, 24,134, 13, 26, 51,
-109, 93,184,118,124, 68,105,202, 91, 31, 62,226,131,211, 63,229,247,190,244, 7,104,223,241,139, 95,248, 85,230, 53,243,181,175,
-255, 11,110,223, 56,225,218,201, 93,160, 90, 27,100,113,175,117, 86,122, 18,106, 89,161,194,241, 56,178,246,149, 90,171,125,177,
-138,171, 36,123,115, 14, 67,179, 16, 80, 27, 93,163,169,164,230, 25,138,222, 13, 69,141, 29,238, 91,251,232, 38, 26, 67,160,174,
- 54, 50,149,209,177, 94, 53,163, 67,160,246,110, 46,241, 81,104,205,254, 21,116, 53,250, 92,133,152, 97,123,237,152,199, 79, 30,
- 48, 56,134,154,222, 81,137, 38,231,104,234, 20,176,206, 50, 23, 86, 86,130, 4,246,101, 33,199,192, 52,108,137, 81,216, 76, 27,
-222,250,240,156,231,191,247, 45,254,139,127,239, 95,227,238,115,183,249,222,251, 79,248, 63,126,235,159,243,230,143,222,230,227,
- 47,222,229,115, 63,253, 42,127,241,131,167,156,158,239, 44, 68, 27,130,103, 2,212, 14, 64, 34, 72, 93, 80, 73,246,220, 21,203,
-148,212,110,151,162,230, 94,140,160, 9,201,246,157, 99,123,121,168,117,143,134,238, 50,146,240, 81,104, 52, 24, 14, 89,253,159,
-111, 29, 52, 99,138,160,209,250,252, 62, 32,214, 67,227,168, 27,213,206, 2,167,209, 62,111, 24,197, 83, 27, 22, 68,246, 48,155,
-207,211,174, 70,233, 7,240,138, 65, 27, 77,217,170,192,210,171,181, 10,162,129,201, 90, 53,180,140,197,218, 32, 84,123,160, 18,
-108,157, 27,101,240, 74, 53, 31,193,115,196,179, 44,174,169,197,181,201,168,113,223, 9,129, 33,186, 95, 36, 88, 91,162,249, 65,
-176,118, 72,217, 97, 68,213,242,213,150,181,112,138,160,103, 45, 44,204,157, 76,122,150, 45,144,108,153, 4,161, 59,163,160,225,
-211,131,222,175, 96, 59, 68,191,128,169, 87, 37, 91,191, 26,186,247,230,213,239,106,244, 79, 21,203, 46,133,116,144, 8,153,214,
- 86,187, 18, 15, 98, 33, 17,243, 96,248, 1, 54, 7, 88,123,181,112,187,218,228, 56,197,132,209,147,218, 65, 74,226,106, 69,199,
-248,181,110,238, 96,122,100, 72,135,206,121, 39,231,129,214, 87,214,101,182,125,135, 22,123, 33,131,217,133,116, 87,153, 67, 36,
-166, 68,210,232, 53, 46,161,210, 40, 33,146,163,221,132,242, 8, 73,236,151,217, 91,101, 89,133, 46,157,105, 85,138,218, 91, 66,
-186,193, 96,106,183,219, 90,116, 9,135, 25,173,108,223, 22,213,236, 86, 49,155, 79, 86, 60, 97, 89, 90,101, 72, 70,149,171, 77,
-127,140,110,151,136, 57, 59, 84,167, 19,200,244,104,187, 1, 75, 38,154, 66, 16, 17, 36, 84,122,233,236,214, 83,106, 83, 46,162,
- 89,109,210, 48,145,228,163, 42,149,250, 78, 36, 68, 71, 30,180, 78, 26,162,117,226,117, 96, 24, 26, 89,142,169, 10,173,154, 56,
-164,251,234, 67,219,130, 58, 74,177,234,161, 98,214,136, 41, 49, 14, 35, 34, 86,173, 11, 30, 52, 17, 63,249,133,222, 25, 6,104,
-165, 80, 68, 77, 10, 80, 10,161,175,104,107,204, 1, 87,242,217, 77,103, 28, 45, 96,151,242,200, 40, 1,146,239,155, 66,190,178,
-205, 73, 80,164,118,250,106,137, 98,165, 17,186,216,116, 33,224,189, 82,123, 61, 91, 43, 70, 69,242, 67, 89,163, 17,206, 22,219,
-107,141,137, 33,103,198,236,191,151,105,195,148,173, 86,148,202,192,118, 18, 72,202, 90, 23,202,188, 90,215,117,109,172, 68, 54,
- 57,162,209,118,246,169, 87,104,137, 34,193,130, 60,189,160, 7, 27, 82,181, 67, 83, 41, 22,142, 91,107,165,247, 13, 90, 45, 15,
- 33, 13,134,110,164,166,165, 54, 74,169,118,152,114,233, 77, 95, 87,114, 74,140,163,221,208, 47,119,123,154, 86,203, 56,168, 82,
- 74,115,164,166, 29,134,134, 28, 57,218,108,217,110,183,124,229,107,143, 25, 54, 71,196, 20, 73, 34, 12,211,132, 12, 70,248, 10,
- 4,246,125,165,119, 27,243, 73,175,180, 54,216,195,131,206,130, 9,101,232,149,165, 20,215,123, 54,138,216,222, 50,132, 66,237,
- 6, 96,138, 77,185,120,188,243,123,136,176, 61,222, 80,231, 29, 37, 88,202,248, 56,111,169,107,167,247,202,233,147,135,180, 90,
-184,125, 50,112,188,217,112,237,218, 45,222,248,214, 55, 88, 47,159,114,116,239, 99, 76,155, 72, 28, 71,246,203,158,156, 42, 47,
-222, 25,121,252,193, 3,158,190,243, 22,247,238, 62, 67,173,157,215, 95,255, 62, 95,249,227, 47, 49,175, 59, 35, 32,250, 45,168,
-248,123,245,230,241, 13,238,220,122,134,135, 15, 62,160,246,194,122, 57,179,206, 11,175,190,116,143,235,119, 95,226,183,254,159,
-223, 97,190, 56,229,167,126,254, 47, 19,105, 84,111,151, 24,133, 59, 2, 3,185,175,104,136,180, 1,230,213,136,146,141,192, 24,
- 19,181,153,220, 36, 73, 99, 76, 80,212, 2,147,115, 89, 73,105, 32,116,152,203, 74,140, 91,171, 28, 29, 26, 60, 7,113, 70, 56,
-172,248,140, 78, 22, 98,167,214,104, 32,144, 8,172, 21, 9,149,148, 35,133,110, 30,243,110,245, 71, 66, 71,226, 64,107,202,245,
- 27, 55, 25,134,247,204,216,150,140,113, 97,129,165, 72, 69, 41,101, 79, 40,182, 20, 60,218,100,142,166, 27, 12,219, 27, 92,156,
- 63,102,183, 59, 37,229,137,152, 50,121, 16, 30,158,159,242,202,167, 62,201,245,123, 47,242,143,191,248, 15,121,235,237,119, 89,
-230, 83,206,206, 50, 39,249,211,220,190,117,147,211,211, 11, 36, 14,254,192,245,208,154, 20, 3,185, 4, 51,246, 73,104,190,127,
- 55,167,184, 95,208, 12,190,115,136,235, 7, 76, 16, 83,237,161, 39,110,183, 68,108,141,103,172, 15,171, 84,169,138,165,196,219,
- 33, 7,229, 96,160, 96,120,230, 36,118, 61,140,174,138,181,155,178,162,165,218, 35, 91,205,113,161,216,231,154, 24,205, 25, 17,
-236,150,220,181, 95, 41,118, 91, 56,236,152,253,144, 4, 12,142,137,181,138,176,208,197, 89, 36, 81, 8, 61, 16,180,122,190,200,
- 87,129,161, 57,142,220, 98,165,173,169, 93, 80,154, 79, 59,162, 99,131,125, 58, 96, 63,170,210,162,137,203, 56, 4,255, 14,114,
- 49, 76,174,210, 48, 6, 62, 26,253,126,172,168,216, 74,195,134, 14, 9,161,160,193,114, 47, 1, 99, 96,200, 16, 29,234,117,213,
- 87,179,215,199, 1,107,138,161,102,163,231,165,172,217,234,127, 30,157,226, 97,205, 68, 50,145,173, 31,228,122,112,134,127,117,
- 97,138,131,133,104, 80,117, 37, 4,171,120, 95, 37,238,125,196,161, 40,169, 20,165,137,221,142, 7,181, 90, 64,199, 30,168, 21,
-144, 48,216,141, 78, 43,165, 21,114, 16,154,116,119,200, 70, 98, 28,237,193, 28, 5,137,142, 1,109,118, 58, 94,218,194,186,174,
-172,107,114, 78,109,240,209,151,176,186, 91, 59, 73,118,101,157,125,145,135, 81,200, 1,242,198, 32, 18,170,150,102, 20,109,110,
-136,243,234, 29, 74, 12,209,130,119,216,201,217,244,142,246,112, 12,217, 2, 55,162,234,230,156, 72,204, 32, 41, 24,212,192,251,
-225,150, 82,172, 68,237,104,140,182,147,160,179, 16,220,127,110, 95,164, 67,234,136,102,151,221,219, 38, 75, 84,105,107, 49,168,
-127,204,214,225, 84, 35, 78, 73,176,180,168,214, 98, 48, 21,233,104, 21, 66,182, 84,104,151,200, 24, 45,252,167,201,126, 97, 1,
-251,121,107, 55, 70,113, 95, 26, 75,171,212,102, 59, 55,241, 81,243,188, 46,128,250, 13,179,113,186, 24, 37, 46, 37,177, 48, 18,
-145, 32, 13,212, 66,134,118, 2, 94, 81, 85,246, 43,236,163,144, 66,178,118, 65,182,157,116,206,137, 32,209,242, 1,162,100, 17,
-198, 41,217, 13, 18,171, 97,137, 40, 77, 3,235,186, 90,239,218,123,190,130, 18,166,104, 19,148, 98,111,114, 51,131, 21, 11,244,
-133, 67,215, 18, 82, 22, 98, 10, 12,155,209, 14,137, 93,153,226, 68,220, 38,162, 6,142,183, 48, 47,213,129, 13,118,234, 93,246,
- 1, 77, 48, 58, 49, 16, 54,244,181, 83, 5,116, 99, 39,242,169, 55,178, 88, 13,178, 21,123,157, 36, 89,157,169, 84, 59, 52,238,
-231,217, 68, 59, 93,168,173, 80, 90,161, 84,245, 96, 95,134,104,129,196, 82, 43,227,176,181,208, 96, 90, 56,222,110, 56, 26, 34,
-215,143,111,113,253,250, 9,121,216, 16,162,189,231,247,203,158,181,217,216, 53, 21,104, 37,208, 82, 38, 71,187, 65, 4,233, 76,
-211,200,148,237,247,160, 29, 7,143, 8,161, 41,125, 76,180, 93,101, 35,134, 46,174, 29, 22, 10,171,192, 20,132,161,102,118,235,
-142,203,121,207,181,163, 13,147, 88,197,242,244,201, 57, 15, 30, 63,228,198,201, 49,131, 14,148, 82, 24, 68,121,239,205,119,184,
-115,247, 5,142,111,220,227, 11,191,248, 11,188,247,222,155, 60,124,250,136, 65, 7,214,245,156,163,126,211,171, 65,145,107,215,
- 78,248, 79,255,254,127,201,230,248,136, 55,223,125,200,143,254,226,117, 62,252,224,109, 62,241,226,200, 27, 63, 56,246,224,226,
-192, 7, 31, 62,102, 55, 47,108,162,175,202, 34,156, 93,156, 82,235,250,255, 51,245,102, 77,150, 93,231,153,222,179,166, 61,156,
-147,115,214, 60, 0, 69, 76, 44, 12, 28, 10,224, 0, 18, 32, 4, 18, 18, 73, 81,162,220, 33, 65,164,228,110,187,237,112,203, 86,
-132, 35,252, 27,116,103, 95,116, 71,216,173,107,119, 72,106,169, 29,150, 40,117, 91, 82,107,104,113, 4, 8,176, 69, 2, 36, 5,
- 98, 44, 20,128, 26, 80,168, 41, 51, 43,167,115,206,222,123, 77,190,248,214,201,226, 5,131, 17, 12,146, 85,200, 60,103,239,181,
-190,239,125,159,167, 16, 28,101, 18,240,233, 79,126,130,159,188,245, 6,155, 55,175,112,246,225,143,162, 92, 67, 8, 81,110, 68,
- 97, 38, 99,101, 99,200,105, 74,239,229, 32, 62,148,228,176, 83, 74, 14, 56, 33,161, 26, 11,193, 8,253,208,213, 84, 42, 51,120,
-217, 33,203,139, 35, 99,147, 34,134, 94,146,237, 41,202,237, 48, 43, 76, 40,224, 18, 6, 57,184,149, 70,168,166, 92,191, 85, 32,
-101,143,197, 10,107,163, 15,104, 91,201,222, 30, 69, 54, 86, 52,159, 49,224, 70, 21,163,197, 37,246,182,110,161,172,145,177,111,
- 89,127, 69, 50, 49,120,106,231,104, 27,121,121, 7, 31, 96,232, 24, 47,174,147,194,148,189,157,125,252,208,161,173,227,237,203,
-187,252,225,127,248, 91, 78,158, 61,195,115, 47,252,132,173,141, 45,156,213,220,184,221,241,206,165, 27, 44, 44, 31,193, 85,154,
-140, 36,245,115,136,146,239,209,101, 52, 30, 51,232, 65,166, 90,101, 76, 61, 31, 61,171, 82,210,182, 90,158, 29, 57,121, 33,207,
- 41,209,187,166,210,199,182, 74,198,194, 68,161, 40,102, 43,232,235, 52,103,111,204,215, 89,101,186,104,115,150, 10, 85,249,204,
- 73,102, 78,152, 27, 58,151, 23, 16,136, 77,179, 28, 38, 84, 20,247,134,190,211,196, 21,188,152,146,172, 79, 32,224, 52, 2,238,
- 73, 89, 4, 45, 90,160, 93, 30, 73,243,163, 10, 69,143,112,224, 26,145,127, 98, 85, 80,172,134,228, 59,225, 37, 96,100,231,108,
-101, 71,173, 82,198, 72,160, 72,160, 95,197,122,173, 35,229,121,194,129,233, 19,149,101,173,226,229,217, 54, 15,248,102,162,236,
-226, 85,121,167,193,193, 65, 5, 35,214,210, 74, 9,226, 53,251, 44,237,233,121,130, 94, 33, 13, 32, 74,144, 45, 75,150, 74, 27,
- 93,100,230,154, 33,203,103, 95,147,202,164, 5, 17, 60, 41, 85,188, 8, 89,106,124, 41,149, 49,123,201,179,105, 35,211,129, 36,
-125,250,164,132,152,170, 16,105, 15,200,148,218,206, 98,194,101,139,211,138, 62, 9,141, 74,176,179,178,171,210,185, 39,151,142,
-175,195, 16,203,130,211,216,140, 78, 6,135,193,186,146,148, 87,169,220,228,196, 42,230,178,140, 12, 66, 2,223, 69,124, 14, 4,
- 15,222,203, 73,198,104,139,169, 42,193,233,105,133, 31, 76,129,206, 40,140,115,212,165,254, 34,198, 52, 73, 91,107, 19,161,178,
- 16, 75,253, 65, 73,184,194, 88,129,183, 4,239,138,132, 70, 78,165, 85,170, 9, 40, 66,204,212, 70,146,170,209, 10, 49, 40,135,
- 80,240,122,153,161, 72, 34,170, 74, 70,217,118,214, 19, 74,128, 33, 6,232, 84,249, 16,231, 2,156,176, 53, 86, 41,140, 74, 36,
- 37,192,253, 20, 66, 1,254, 43, 44, 21,198,229,131,132, 42, 66, 54, 44,192,150,204, 48,247,247, 90, 71,107,231,235, 38, 85,250,
-241,194, 18,183, 77,164, 14,189,236,165,124, 46, 83, 9,133,181, 37, 57,169, 20, 41, 11,111, 62, 38, 17,214,232, 92,128, 54,186,
-162, 42, 99,203,160, 29,163,197, 17,163,113,131, 10,210,193, 54, 57,225, 99, 70, 69,177,187,129,103,214, 79, 8, 81,234, 32, 3,
- 48,157,150,209,146,173, 48, 42,209, 54, 21,170, 46, 52, 62,196, 42,150,131,112, 2,138, 88, 15, 42, 73,210,166, 20, 5, 57, 75,
- 2, 29,165, 71, 58,239, 14,251, 76, 55,244, 76,165,133, 75,229, 28, 90,105,156,211, 84,149,194,213, 13,174, 18, 83,148, 73,153,
-214,198, 3,146,159, 83,153,104, 44, 97, 8,164, 65, 51,228,249, 77, 56, 17,145, 92, 64, 93, 37,114, 0,109,101,135, 24, 82, 66,
-103,195,200,247,164, 36,189,236,156,115, 89,211,248,162, 23,150,135,101, 99,150,241, 37,112, 20,162,103,177, 26, 83, 85, 53, 85,
-109,137, 9,118,103, 51, 84,223, 51,114, 22, 74,242, 55, 67, 1,251, 40,178, 49,216, 28, 72,161, 0,111,140,198, 79, 39, 56,101,
-168,235, 10,173, 13,227,166,161, 50, 14, 87, 67,212,137,145, 19, 98, 79, 21,149,144,205, 36,217,135, 82, 10,107, 28,187,187, 59,
- 68, 50,163,209,136,182, 54,108, 93,251,128, 43,239, 95,102,117,109, 65, 36, 42,126,134,211, 21,201, 26, 78,157, 62,131,182,150,
-221,205, 27,188,117,233, 38, 59,183,174, 19,125, 67,178,137, 81,213,178,191, 51, 99,103,127,155,172,106,250, 97, 96,230, 59,210,
-254, 14, 55,175,109,241,234,207,126,198,219, 23, 94,227,127,253,159,127,139, 71, 30,220,226,149,243,151, 88, 95, 61,204,210,226,
- 42, 23, 46,190, 75,136,208,180, 11, 4,239,241,179, 41, 40,169, 49, 37, 63,240,149, 95,250,101,246,252,136,119,222,190,192,153,
- 51,247,112,228,240, 73,186, 56,224, 92, 3,253, 64,101,148,132, 79,135,136,170, 13, 89, 71,166,222,147, 83,166,209, 21, 26, 67,
- 80, 50,126, 87, 67,148,135,173,133,174,235, 75,234,218,144,140, 40,121, 83,180, 16, 34, 73, 15,100, 79,209, 12,203,141, 48,147,
-176, 9,250, 24, 24,140,224, 97,133,193,175,136, 67,143,169, 32,103, 67, 63, 4,156, 86, 5,124,149, 74,133, 78,110,119,177,132,
-188,234,164, 89, 93, 93,101,127,123, 75,110,176, 37,123, 18,178,140,174,157,214, 56,235, 14,166,154,125, 14,204,118,183,105,204,
- 62,218, 74, 94,100,152, 69, 24,228,182,249,237, 23, 94,101,250,220,203,236,109,109, 21, 14,129,140,111,187,157, 61,150,215,214,
-137, 94,126, 70, 90,207, 15,128, 94, 38,136,229,165,166,178,240,225,125,136,104,171, 17, 46, 27,101,143,156,136, 73, 21,120,149,
-228,149,162,146,195, 14, 37,147,148,146,176,213,117, 5,217,107, 8,145,160, 37,104, 76, 40, 4, 54,100,228,166,140, 97, 40,180,
- 74, 19, 5, 13, 45, 50, 36, 89,119,198, 40,249,135,156, 15, 18,182,114,153,211,186,220,126,239,132,189, 84,206,104, 11, 33,148,
-138,155, 22,229, 51, 74,161, 92,217, 25,151,218, 94, 42,183, 82,202,247, 74, 21, 94,123, 34, 30,224, 81, 29,243,177,183,100, 3,
- 82,121, 15,228, 36,217, 38,101, 53,248, 50,129, 45, 47,119,156,157,151,101, 74,157,215,146, 99,209, 99, 23, 33,203,252,165,175,
-203,242, 64, 57, 45,220,127,149,136,165,190, 22, 83, 18,164,110,169,241,233,194,163,157,135, 46,165, 62, 23, 15, 98,221,202, 88,
-212, 28, 24,166, 11,163, 68,131, 15, 94, 2,222, 89,214, 31, 89,139, 55,133, 40, 1, 56,157, 36, 48,158,146, 63,104, 28, 8,157,
- 85,198,249,115, 96, 18,165,180,168,231, 40, 90,192,206,102,145, 92,205, 37,238,243, 84,160,149,211, 83,214,228,212,147, 18, 68,
- 93,164, 42,194, 82,148, 38,234, 17, 71, 0, 0, 32, 0, 73, 68, 65, 84,222,105, 10, 56,109,105,138,153, 39, 41,153,247, 99,164,
-144,175, 82,148,148,105, 20,155,140, 43,227,161, 92, 66, 30, 41, 75,161, 63,196,140, 15,133,116,104,196,108, 19, 58,208,206, 82,
- 85, 50, 30, 18, 68,162,252,239,135,174,103,230, 75, 21,201, 24, 17, 2, 16,233, 82, 36,107, 67, 85, 21,248, 68, 82,210,103,204,
- 26,173, 51,170,106,104,172, 17,235, 87,234,241,101,204,174, 11, 64, 69,231,136, 33,177, 52, 90,164, 90,144, 19,217,144, 61,201,
- 7, 98,148, 83, 91, 84,153, 28,228,165, 26, 98, 34, 24, 71,229,156, 88,210, 84,102,200,170,104, 53, 69,106, 18,173,124,241, 98,
-206,100,163,168,157,195, 25, 77,157, 61, 54,107, 6,239,165, 90, 84, 96, 43, 42, 41,170,186,150, 21, 67,242, 76,186, 76, 82, 14,
-167, 34,117,213, 98, 17,242, 88,176,134, 48,235,165,215,157,198, 64, 36,204, 2, 73,103, 66, 10,248,217,192, 20,121,177,145,193,
-247,145,201,254, 62,104, 25,169,143, 70, 82,171,170,106,203,130, 86, 56, 99, 56,172, 5, 77, 88, 89, 67, 55, 27, 8, 36,186,105,
-199,108, 38,249,137,236, 51,193,207,196, 52,164, 65, 5,105, 28,204,199,217,198, 89, 32, 8,218, 19, 39,187,167,152,208, 86,163,
-162,194,212,146,110,143,115, 57, 80,202,114,176, 83, 82, 77,201,222, 51,244,242,247,173,113,146, 38,245, 10,219,212, 18,156,244,
- 14,227, 12,217, 70,124, 81, 61,154, 40,112,144,218, 72,183,123,150, 18,218,100,108,173,209, 57,211,135,132, 77, 50, 61,176, 77,
- 77, 74,134,169,151,196,106,165, 45, 49, 88,114,233, 62,135,228,113,174, 46, 85,171,128, 70, 38, 22, 51,223,211,167, 64,239, 3,
-170,239,112,198,209, 25,241, 92,155,162,236,236,180,150,181, 70,237, 48, 73, 82,214, 1, 33, 89,169, 32,245,160,212, 75,224,116,
-179,235, 48, 86,254,124, 93,105, 42,107, 4,142,169, 43,178, 9, 50,180,139,146,148, 77,202,211, 79,247,228, 64, 90, 85,232,186,
-226,202,251,151,185,118,253, 58,199, 79, 63, 70,211, 44,176,123,123,143,202,120, 76,237, 48,227, 5, 90,179,128,182,134,183, 94,
-251, 25, 41, 6, 22, 23, 22,120,224,161, 15,179,184,188, 66, 99, 50,123,211, 61,246,124,194,172,142,152,236,237,113,249,157, 15,
-120,229,149, 31,243,214, 27, 63, 99,152, 13, 92,120,239,125, 62,242,216, 71,121,241,229, 55, 8,195, 22,207, 60,245, 17,158,250,
-212,135,249,119,127,250, 45,218,186,102, 58,204, 27, 50, 3, 74,101,238,185,251, 52, 33, 91, 94,124,225,187, 28, 59,116,152,187,
-239,121, 64,124, 9,198,146,213, 64,204, 30, 93, 41, 42, 47, 55,149, 62, 72,112,201,101,217,139,245, 97, 86,106,156,141,172, 30,
-178,151,106,149,105, 8,106,134,141,229, 69, 26,122, 1, 43, 5, 1,217,248, 33,201,243,170,236, 87, 35,153,108, 68,191, 44,173,
- 16,241,106,231, 36, 64, 30,173,101, 69,150,138,169, 81,114, 24, 65,160, 34, 74,198,174, 41, 10, 93,204, 40, 69,242,145,118,180,
-128,107,218, 50,129,147,113,114,140, 17,171, 13,174,178,165,238, 84,158, 31, 74,234,110,125, 24, 32, 12, 98,214,117, 2, 34,234,
-102,251,236, 13,189,160,102, 11,125, 76,151,253,252,214,100,198,194,100, 31,172,166,113, 53, 67, 47,129, 88,103, 44,129, 3, 52,
- 8, 57,107, 84,249,179, 84,128,172,101, 90,165,138, 60, 43, 35,181, 51,225,141,103, 84,214,178,187, 46,116, 76, 95,198,248,185,
-224,154,201, 25,147,140,172, 18,181,102, 72, 65,212,202, 90,145,163, 48,241,149, 22,151,132, 46,194,174,148, 50,131, 14, 7,149,
-172,148,138,172, 42, 73,200,111, 30,212,149, 91,107,121,105,106,197, 48, 8,179, 93,101, 69,240,146,153, 80, 5,137,106,140, 92,
-235, 83,200, 5,227, 45,183,107, 14, 68, 48, 97, 94,186, 66,155,249, 36, 83,203,193,165,136,200, 72,114,187,206, 7,196, 78,196,
- 88,151,131, 48, 75, 10,206, 54, 43,141,214,197, 41,167,231,212, 66, 69,246,197, 43, 80,116,217,206,200,164,200,163,165,169,161,
-178,144, 77,209, 37,240,108,202, 42,180,176, 90, 40,218,238,210, 46, 80, 73,194,108,150, 68,151, 18,149,147,164,127,204,241, 14,
-162,156, 44,136,215,232, 81,161,116,225,115, 89, 71, 43, 57, 88,104, 85, 8,168,101,117, 45, 12,123,141,213, 6,147, 35, 62,114,
-135, 92,167,228,240, 99,125,223,163,114, 44, 32,156, 40, 55, 48, 93,201,126,220, 8,194, 81, 41, 57,137, 68, 82, 49,239, 20,170,
-154,118,120,147,233, 20, 34, 49,201, 10, 93, 60,193,209,104,185, 13,163, 36,140,161,148,236,237,109,141,113, 70, 94,250, 5,184,
-175, 24, 24, 6,185, 57, 65, 38,100, 33,225,232, 74,118,193, 10, 35,100,161, 40,117, 20,227, 52,181,129, 48,100,188, 15,162, 61,
- 12,130,200, 11, 4, 72,150,136,224, 15, 13, 1,149, 29, 89, 69,166,179,142, 61,235,168, 91,141, 65,164, 47, 46,103, 73, 60,107,
- 57,249,170,172,152, 13, 1,111,107,156,203, 40, 42,218, 70,118,169, 81,201, 38,196, 26,176,214,144,166, 61,183,247,118, 64, 25,
-156,210, 12,169,194, 25, 75,101, 53,169,239,152, 70,193, 33,206,166, 72,119, 57, 6,250,126,134,199, 48,100, 9,145,229, 24, 8,
-123, 19, 66, 86, 24,107, 48, 70,246,124,139,109, 77,213, 84, 56,171, 14,254,126, 58, 57,178,201,164,228,208,206, 98, 22,199,228,
-152,177,206,226, 44, 7,118, 36,171, 52, 67, 55,197,251,129, 62, 36,246, 59, 79, 55,243,101,244,169,240, 67,199,246,230, 30, 49,
-120,105, 7,164,132,182,182, 96, 88,101,239,229,140, 19,189,171, 53,168, 88,224, 63,165,179,174,180,212, 64,106, 37,201,246, 46,
-200, 7, 62, 13,101,167,103,133,251,188,183, 43, 4, 44,107, 29, 10,131, 30, 12,149, 21, 44,112,214, 10,227,180, 4, 36, 83, 66,
- 59, 67, 78, 96,173,184,176,251,217,128,214,208,251,140, 11,226,187,175,219, 90,254,251,131,132,121,116,101,168,202,216,139, 82,
-151,169,131, 28,212,230,225,185,218, 54, 50, 34, 76,153,156, 60, 58, 5,198,166,150, 17,156, 81, 40,151, 24,188,156,132,137,208,
-117, 3,179,105,143,247, 34,195,152,139,105, 80, 37,148,153, 18, 51,100, 31,107,116,241, 32,151, 22,134,177, 61,182,115, 12, 86,
- 86, 33,202, 73, 26,185,210, 22,141, 56,166,157, 53, 36, 21,169, 76, 81,201, 70,216,153,193,108, 95, 86, 3, 67, 24,232,166, 83,
-134,224, 25,215, 13,139,109,205,246,116, 66,109, 23,216,219,159,176,188,190,206,120,188,200, 93,199, 45, 97,128,237,110, 87, 60,
- 4,170, 34,231, 26,147, 18,219,211, 45, 6, 15, 33,121,114, 14,140,155,154,241,234, 58,110,121,141, 35,199, 79,112,216, 39,174,
-223,188,142, 73, 29,111, 95,127,133, 31,189,252, 67,222,122,227, 39,132, 24, 56,121,236, 52, 57,181,140, 71,135,168, 43, 67,223,
-237,241,242,171, 23,120,248,236,125, 44, 47, 54, 44,182,153,163,203, 75,224, 3,221, 16,232,178, 97,117,101,157,127,252,193,143,
-168,109,230,222,143,125,148, 33,104, 82,246,100, 15,202,120,129,117,100, 77,202, 3,170, 77,152,153, 28,242,117,209, 84,106,171,
-136,157,199,106, 75,118,146, 8, 78,125,128, 90,223, 49, 66, 26,228, 57, 82, 58,193,115,127, 4,133, 35,145,148,112, 45, 84,202,
-101, 90, 85, 52,151,193,139, 73, 78,219, 66, 16,211,228, 28,228,176, 20, 13, 38, 43,178, 81,133, 17,144, 15, 62, 71, 90, 27,169,
-105,229,204,120,188,200,222,206,150, 28, 60, 99,144, 16,171,149, 21,202, 92,187,153,116, 66,103, 93, 46,125,138, 20, 6, 98,138,
- 56, 39,207,210, 46,244,248,190, 63, 72,112, 11, 44, 75,118,183, 27,187, 19,150,119, 59,106,140,152, 4,179,244,171,125, 12, 40,
- 39,163,213, 92, 52,161,181, 50,248,249, 68, 66, 33,150,200,130, 97,197,231,131, 86, 76, 72, 17,165,101, 26, 71, 1,201,200, 20,
-209, 73, 86, 39,201,152, 56, 70,153, 50,200, 74, 38, 74,214,200, 64, 82, 81,194,113, 65,110,209,185,200,199,115,154,251,222,231,
-144, 42,185,165,235,164,203,116, 42,150,186, 45, 63,167, 49, 53,100, 60, 54,149, 26,174,214,197,161, 62, 55,230, 69, 97,102, 88,
- 57, 52,196,178, 51, 55,133, 18, 25, 75,248, 87, 75, 20, 92, 86, 4, 41,161,181,147,188,143, 49, 66,247, 83,194,135, 32, 75,104,
-151, 60, 39,229,204,155, 9, 90,170,213, 57,201,237,183,212,240, 76,116,133,133, 96, 14,110,217, 49, 69, 97, 24, 32, 18, 22, 98,
- 62,104, 79,145, 51, 22, 33,109,162, 51, 41,150,122, 97, 73,215, 43, 10,213, 83,101,161,108,234, 50, 37, 17, 50, 70,185,152,201,
- 74, 36,104,185, 93, 23,235,107, 89, 49, 73,190,193, 18,101, 69,233, 52, 41,202,133, 43,246, 30,147,100, 82,148,202,219, 51,229,
- 80,234,152,178,144, 80,167,238,249,112, 54, 90, 78, 80,226,184, 77, 7,200,185, 92,250,122, 74,105, 41,214,151, 19, 32,197,206,
- 38,136,198, 59, 21, 15,173, 12,218, 89,225,198,103,197,250,250, 58, 31,125,244,163, 60,244,192, 89,142, 28, 62, 84, 66, 87, 20,
- 67, 80,102, 50,157,114,233,226, 21, 94,127,253,103,188,245,206,121,116,148, 93,204, 16, 11,242, 83,137,140, 67,200,197,130,157,
-149,138,148, 35,167,142, 97, 54, 72, 53, 66, 25, 98, 12,101, 20,147,231, 87,126,140, 21, 25,137,213,242, 80, 79, 7,169,120, 97,
-175,203,254, 89, 17,181,193,150, 9,130,176,194, 7,148,169,168,140,128,100, 76, 86, 24,155, 24,114,194,152, 26, 83, 25,170,218,
-146,125,192, 26, 73,161,103,157, 8, 24,156,177,180,149, 33,244, 61, 3, 18, 0,145, 52,106, 58, 56,121,186,148,233,147,244,224,
-173, 49,164,126,160,239,123, 33,178,145, 25,124,162, 15, 9, 99, 52,181,171,203,111, 58, 10,248, 6,133,171, 29, 99,215,148,118,
-128,162, 29, 9, 91, 61, 19,169,170, 22,165, 51, 67, 63,224,208,104, 35, 34,139,105, 63, 16,122,143, 31, 60,218, 58,122, 63,197,
-119,145,206, 7,102,179, 25,147,253,125,209, 42,102, 43,137, 80,171,203,110, 76,203,184, 41, 38,140,213,165,198, 17,240, 65, 81,
- 85,182, 36, 90, 51,181,181, 56,163,101,231,229, 12,181,214, 36, 95,220,194,218, 20,130, 82, 65, 8,147, 11,204, 72, 10, 7,206,
-218,114, 29, 17,153, 66,109,229,159,119, 8,178,206,177,133, 34,152,172, 34,118, 2,148, 73, 70,246,122, 37, 54, 88,152,236, 50,
-209,169, 52,130, 20,206,114, 83, 10, 49, 8, 86,179,232,114, 99, 49,180,149,245, 23,120, 45,147,162, 66,236,154, 77,103,116, 19,
-143,143,153,193,123, 98,105, 84,196, 32,137,226,172,101,119,167,149, 34, 27,169,103,234, 36,233,219,108, 68,197,106,140,162,209,
- 26,109, 13,206, 84, 18, 14,210,138,202, 57,154,186, 33,196,158,217,172,103,103,127,198,100, 50,195,144,168,202, 21,195, 20,192,
-201,225,229,241, 1,125, 42,250,196, 80, 84,188, 90, 41,108,211,112,232,240, 9,148,111,233, 98,192, 15,189, 96, 38, 81, 12, 97,
-202,224, 21, 62,244,204,166,123,132,105,143, 87, 50, 73,168,154, 49, 77, 61, 34,171, 76,173, 45,157,223,230,234,213,107,104,173,
-233,246,119,120,248,227,143,177,176,176, 66,220,189, 69, 55,219, 98, 50,237, 24, 66, 64,145,104,156, 84, 94,109, 85,113, 98,109,
-140,211,138,189,125,185,197, 93,186,181,201,209, 67,135,136,213,152, 65,141,104,236,136, 16, 61,202, 89, 65, 27,167, 40,160, 12,
-227,201,185, 38, 40, 80,193,203,109, 62, 75, 24,201, 84, 18,190,212, 5,243,156,229,217, 79,236, 61, 73,151,151,110, 8, 68, 45,
- 1, 40, 91, 18,218, 33, 4,162, 10, 56,167,165,171,156, 33,101, 77,204, 65,218, 28,242, 67, 20, 29,174,149, 81,242,188,194,104,
-100,172,136, 85,154, 16,134, 82,195, 50, 37,116, 20,176, 90,113,123,111,194,181,247,223, 41,191, 23,249,110,160,140, 40,171, 53,
- 88,227, 14,118,186, 26, 25,161,135,144, 80, 57, 50, 90,104,153,204,122,182, 54,183, 74,160, 86, 62,191,149,115,160, 52, 85, 61,
-194,217,192,177, 99, 71,169,236, 10, 62, 37, 66, 30, 14, 30,252,115,215, 10,115,169, 73,169, 94,205, 79, 19,166, 36,193, 67,148,
-239, 66,138, 82,221, 21,135, 3, 69, 48, 34,104,100,165, 50,217,184, 34, 54,146,207,115,244,169,104,115,101,255,174,178,176,199,
- 67, 44,224, 35,209, 51, 21, 52,172, 76,104, 85, 78,229,239, 36,135, 94,241,182, 43,230,229,240,172,228,103,175, 74,221,139, 40,
-149, 65,135,172, 61, 83, 97,158,228,226, 56, 80, 37, 50, 96,230,117,179, 44, 50,169, 68, 98,174,146,154,175, 39,141,150, 44, 79,
- 98,110,191, 44,225,179,108, 11,190, 90, 66,127, 42, 7, 57, 12,228,140, 53,142,156,230,141, 34,133, 41,211, 12, 95,198,251,146,
-155, 18,219,165,209, 5,108,149,181,100,110,178,164,241,253, 32, 8, 96, 37,243,121,169, 5,102, 11, 58,150,138,224, 29,168,135,
-153, 35, 75,165, 1, 92,158,234,101, 13, 81, 66,241, 62,201, 74, 40, 5,233,207,199, 82,169,212, 90,214,120, 42,103, 42,147, 10,
- 92,205,130, 21,183,135, 31, 4,227,155,202,164, 67,154,136, 34, 88, 55,218, 18, 82, 70,157,188,235,129,172,202, 62, 92, 30,184,
- 82, 87, 72,209, 31,148,238,181,154, 83,126,228,131, 75, 9, 56, 25, 93, 48,121, 90, 42,113, 41, 68, 76, 45,251,224,143,127,236,
-227,124,249, 75,191,200,161, 67,135,121,253,141,243, 92,186,124,137,141, 91, 55,217,221,157, 82, 85, 21,135,143, 30,226,204,233,
-211, 60,244,208,131,180, 77,205,143,126,252, 18,207, 63,255, 34,123,187,251,114, 19,214,170,240,201, 35, 67, 63,224,189, 40, 19,
- 5,207,104, 48, 6,252,180, 35,168,140,210, 66, 82,211,161, 36, 58,181,220,168,141, 81, 40,211,128,145, 52,178,206, 65,170, 26,
-165,223,167, 11,112,102, 8,101,210, 16,197,126, 35, 82,178, 40,112, 26,101, 80, 73, 30, 6,186, 16,130, 20, 86,198, 67, 38, 83,
- 25, 49,184,161, 83, 57,169, 90,218,166,130, 20,232,252, 64, 42,190, 93, 97,245, 88, 49, 63, 41, 65,205,186, 81, 77, 21,133,127,
-172,221,220, 42, 23,153, 13, 1,147, 29,117, 45,159,134, 33, 39, 20, 3, 49, 43,186,169, 39, 27,249, 38,132, 32,187,118,171, 10,
- 39,222, 21, 76, 97,202, 4, 20, 78,215, 7,245, 14,107, 53,214, 36,134,137,208,182, 34,153, 62, 38, 92,150,147,113,232,123,118,
- 39, 61,211,153,168, 47,109,211,144,162,167,155,204, 8, 49,201, 3, 50,202, 67, 88, 35,253, 78, 31,188,104, 40,173,208,143,180,
-134, 33, 8,155,223, 22, 32,142, 66,128, 34, 86, 43, 76, 18, 10,151,177,229,103,140, 84,213, 84, 86,132,129, 98, 23,211, 84,149,
-147,244,106,169,170,152,242, 1, 54,186,149, 73, 66, 78, 12,190,199, 24, 35, 99,167, 36, 95,240, 65, 71,156, 21, 97,133,182,138,
-186,106,193,102, 44,208, 58, 71, 46,220,130,206,223, 1, 27, 73, 71,182,220,144, 74, 30, 34,165,128,137, 48, 16,136, 62, 18,134,
-129,105,231,241, 83, 47,161, 25,114,169,166, 72,130, 53,204,111, 4,148,250, 98,121, 40, 10,111, 62,203,193, 74,101,153,230,100,
- 69, 55,155,146,135,158,170,178,184,202,208,214,142,165,165, 17, 75,227,154,145, 19,170,223,168,182,124,232,244, 73, 94,121,239,
- 22,227,202, 72, 16,174, 18,233,199,254, 48, 33, 37,203, 82, 51,130,148,209,166, 97,175,243, 92,219,218,197, 71, 47, 43,173,126,
-198,180,155, 48, 12,129, 97, 24,132, 37,173, 10,133, 12,161,242,229,172,104,234,138, 67, 71,214, 89, 94, 24, 99,117,162,169,107,
-198,173,102, 58,141,212, 77, 77,223,117,244, 67, 79,229, 12, 93, 31, 88, 28,213, 50, 61,114,150,165,229, 6, 19, 51,157, 79,132,
- 33,176,223, 71, 90,171, 88,104, 90,250,106,137,168, 23,240, 64, 55,120,178, 87, 24,203,129,144, 72, 35, 21, 69,163,156,224,126,
-149, 70,231, 72,152, 91, 4, 17,132,105, 74, 74,116,155,128, 79,153,232,131, 4, 60,139,211,115,136, 2,109,202, 58, 80,169,242,
- 50,143, 81,254,140, 18,238,138,177,112,200,131,172,228, 84,249, 46,162,147,216,248, 10, 56, 4, 21,201,126, 78,160, 19,232, 74,
-109, 97,115,107,143, 43,239,191, 71, 91, 85,160,165, 50, 84, 54,199,133,185, 96,133, 52, 39, 87, 58,124, 20,180,118,219,140,232,
-188,231,246,246, 22,209,135,131, 3,176, 49, 90,160, 72, 10,140,169, 73, 49,112,248,240, 42, 75,171, 71, 81,200,120, 63,165,132,
-113,146, 7, 24,202,196, 64, 37,129, 70,101, 93,216,234,166,132,247, 68, 66, 46,122,224, 84,224, 96, 6,114, 18,165,172,182, 98,
-168,204,243,155,181, 96,245,200,161, 28,121,138,241, 50,147, 80,214, 22,217, 87, 16, 5,119, 44, 90,219, 52,223,111,103, 14, 98,
-220,229,223, 66,246,196, 36,107, 78,149, 98,161,172,201, 63,131, 51,134,140,200,119,180, 41,191,183,249,174,188,220,228,173, 17,
-113,146,211, 2,255, 81,102,126,187, 46, 41,115, 69, 49,202, 21,186, 94, 81,129,103, 85,100,237, 86, 36, 45, 34,248, 74,194,225,
- 64,250,237,218,164,242, 62, 83, 5,196, 35,221,246, 84,246,230,243,231, 50, 81,126,102, 33,153, 66,102, 51,165, 94, 29, 73, 74,
- 17,186, 68,206, 3, 90, 9, 94,155, 57, 37, 87,240,129,114, 72, 41,173, 2, 61,151,120,205,139,109, 86,201, 51, 53, 9,139, 32,
-102,201, 62, 97, 51,209, 75, 93,206, 40,153, 80,162, 82, 33,212, 41, 26, 43, 23, 88, 77, 81,107,207,233,135, 8, 32,141, 98, 54,
- 85,165,245,164, 83,194, 39,241,203, 75, 9,223,232,162, 18, 45,225, 8,165, 15, 82,137, 20, 82,153,153,135,161,226,124,230, 89,
- 70, 67, 81, 18,177,214,201, 56,235,241,207,126,154, 95,249,213, 95, 97,115,115,147, 63,255,139,191, 32,122, 56,121,234, 56,107,
-203,203, 92,185,122,141, 55,222,124,147,119,223, 57,207,139, 25, 14, 29, 94,229,115,159,253, 12, 79,124,230, 73,214, 86,143,240,
-141,191,248,255,216,223,217,198, 88,176,166,132, 73,172,197,202, 16, 94,106, 62, 67, 95,146,220,131,124,136,245, 64,202,154,202,
- 84, 24,103, 49,202,224,180,212,241, 72, 51, 82, 7, 89, 89,172,158,187,219, 11, 72,167,132,153, 20,138,232,229, 38,236,140,189,
-131,116,213, 8,160, 6, 73,139,146, 10, 34, 81,107,218,170,198,167,129, 62,123,108,146, 73,135, 16,220, 50, 81,121, 65, 31, 26,
-112,214,200, 8, 76, 91,154, 74,161,130,103,210, 5, 9,207,117,157,236,164, 34, 5,156, 34,230, 49, 87, 59, 82,147,233,186,112,
-128,237,117,198,202,237,160,146, 17,188, 49, 14,211,119, 66,112,211,224,149,199, 69, 67, 8,224,115,162,178,114,219, 51, 70,110,
-213, 74,183,120, 99,160, 50, 44, 54,224,103, 51,226, 60,249,237,160,173,199, 44, 46,180,248,126,160, 31, 98, 57, 52, 88,186,198,
-225,131,199,135, 72,223,121,200,138, 33, 12, 36,148,116,193,231, 35,176, 44,107, 26,135,104, 31,149,146,154, 93, 78, 50, 66,236,
-162,220,250,181,202, 40, 91, 38, 28,133,216,104,172,193,186,132,117,181,124,201,172,194, 79, 7,145,202,168,140, 79, 2,126, 80,
- 54, 98, 93, 57,169,199,132, 45,211, 1,231, 28, 57,103, 90, 93,161,237, 29,239,192,108, 38,193, 28,149, 34, 83,229, 49, 90, 30,
-144, 49,105, 90, 43,216,218,172,101,236, 88,238, 26,232,108, 32,104,162, 17,129, 71,165, 28,102, 92, 51,238, 21,106, 61, 19,189,
-103,240,129, 62,118,194,188,239, 99, 9, 17,229,242,178,146, 53,133, 81, 98, 76,182, 72,120, 72,231, 72,240,112,247,241,150,183,
- 47,111,163,107,203,225,245, 21,106, 39, 7,190,195,171, 43,220,115,247, 49, 78,174, 45,176,208,182,184,102,129,151,127,250, 6,
- 23, 46, 94, 99,177,109, 24,141, 26,249,140, 40,208,118,129,233,206, 14,181, 50, 44,141, 26, 86, 23, 42, 78, 31, 25, 97,252, 77,
-222,184,240, 62, 33,128,118,230,192, 43,237,172, 41,196, 69, 65, 2,163, 85,193,106,106,142,172,173,202,195, 44,244,140,151, 87,
-176,214,224,127, 78, 59,186, 48,110,164, 14, 56, 4,201,101,168,192,125,247,172,176,113,123,194,168, 90, 98, 92, 85,188,252,179,
- 75, 44, 46,215,228,168,240, 68,246,125,132,176, 67, 59, 18,162,159,169, 44, 62,105,166,161,147, 73, 96, 50,101, 18, 54, 20,185,
- 83, 42, 72,102,249, 94,154,172, 65,107, 98,232, 25, 84, 38,249,132,201, 18, 10,205, 81, 17, 98,135, 83,134,202, 90,124,236, 37,
-223,145, 21,125,169,177,165, 20,202, 78, 85, 40,109, 66, 12,205,104,157, 49,182, 46,253,230,132, 73,154,172,163,220, 80,131,212,
- 57,197,205,208,151, 73,142, 33, 68,197,164,155,145,130, 39,219,106,222, 90, 58,168, 47,153,194,153, 8,201,227,172,147,236, 77,
-142, 44,180, 99,250,108,217,218,221, 32, 12,125,161,127,113,160, 34, 37, 69, 76,237,228,230,167,146, 76, 49, 75,218, 92,106,182,
- 78,216,226, 70, 97,147,198, 15, 67, 65, 34, 91, 44,137,161, 68,173,229,210,144,101, 76, 31, 44,170,188, 96,148, 86,248,156,177,
- 42,151,233, 65, 46, 16, 40, 89, 79,164, 88,186,252, 6,162, 47, 92,123, 20,106,144,169,162,209, 5,196,163,132, 28,153,148, 28,
- 88,137,165,163, 93,214,167,145, 84, 14, 12,146,178,215, 7, 13,115,193, 78, 11,184, 38,150,116,182,172, 9, 84,177,165,165, 98,
- 53,155,203,175, 40, 92,145, 88, 82,243,166,164,238, 77,193,243, 38,188,188,111, 8,133, 23, 96, 73, 41, 98, 98, 40, 42,218, 18,
- 88,211,229,246,122,231,105, 47,142,241,178, 66,240, 73, 86, 97,104,205,224, 51,141,146,208, 94, 78,136, 88, 43,139, 75, 89,229,
-178,167,142,233, 96, 53, 93,208,163,197,162, 46, 41,122, 29, 53,186,214,210, 90, 72,114,179, 79, 74,203,106, 41,102, 84,144,198,
-148, 50,148,204,129,164,220,109, 9,241,166, 36,147,224, 92,246, 22, 57, 27,105,131, 28,216, 83,133,149,146,180,252,204,138, 48,
-179, 76, 11,203, 36, 36, 75, 58, 63, 43, 48, 11, 75, 43,191,151, 83, 20,180, 94,150,147,155,184, 97, 57,248,129,100,197,193,252,
- 94, 86, 22, 69, 87, 88, 94,252, 90,205,201, 63,154, 71, 31,125,148, 95,255,245,127,198,219,239,188,205,159,254,233, 55,248,240,
-125,247,243,204, 51, 79,115,239,125,247,114,250,228, 41, 30,126,232, 44,143,158,251, 24,227,209,152,235,215,111,178,189,181,197,
-123, 23,222,225,230,198, 6,159,124,244, 28,199,143,202,205,190,235, 3,174, 88,180, 66,233,203,235,100, 14, 24,189,243,148,106,
- 22, 58,137,132, 26, 98,225,181,199,132,159,159, 68,179,220,188, 82, 12,114,179, 45, 95,156, 3,173,105,206,196, 16,136,126, 14,
-168, 81,104, 99, 49,117, 35, 53,175, 44, 15,166,202, 57,234, 74,106, 14,198, 25,177, 27, 37,168,173, 43, 61, 73,192, 24,176, 22,
-173,107, 9, 59, 25,139,209,149,252, 45,149,198,154, 26,172, 17,126,190, 22,127,185,116,252, 35, 42,101,169,255, 37, 69, 93, 91,
-134, 97, 38,148,161,212, 17, 82, 47, 29,251, 16, 36,148, 99, 12,149, 22,147, 87, 93, 89, 28, 2,126,112, 73,166, 15,209,168,146,
- 47,240,164,144,152,120, 79, 55, 36,134,190, 39, 36, 67, 72, 26,159,197,193,155,148,197,105, 67,221,180,152,106,204,210,202, 33,
- 70,227, 49,245,184, 97,101,237, 16,227,145,101,105,117,204,241, 67,171, 28, 95, 93,228,196,145,117,214,215,151, 89,108, 43, 86,
- 86, 71,172, 46,181,162, 48,212, 10,109, 29, 75,109,131,179, 26,103, 28,174,109,104, 70, 53,181,171,229,239,105, 13, 57,120,148,
-150,186, 95,240, 18, 70, 11,243,105,129,143,178,247,202, 10, 83,183,152,166, 18,205,235, 98,203,184,169,104, 90,199,210, 72,108,
-115,109,101,209, 41, 22, 24, 70, 38,198,129, 48, 4,122, 95,234, 52,115,191, 60,185,124, 49, 51, 93,239,165, 46,151, 50, 41, 27,
-134, 40, 55,128,232, 33, 69, 69,215, 69, 6, 47, 55,173,148, 33, 68,232,123, 17, 72,100,101,208, 86,164, 67, 85, 93, 81,143, 90,
-198,227, 49,139,227,154,133, 81,197, 66, 85, 51, 26, 53, 88,107, 74, 74, 90, 29,176,173, 18, 20, 18, 94,230,238, 83, 71,216,184,
-189, 67, 70,177,178,188,128,173, 29, 22, 69,219,200,255, 95,213, 52, 12,192,222,254,192,203,175, 95,224,198,230,109, 98,206,116,
- 67,199,108, 50,101,119,119, 66, 63, 4, 78,173,183, 44,181, 21,171,203, 35, 48,137, 58,121,158,253,103, 79,114,108,161,229,253,
- 43, 87,153,206,194,193,193, 84,169, 59, 42,227,249,120,127,238, 50,104,154, 10,133, 98,119, 50,197,135, 64,101, 32, 13, 1, 83,
- 60, 12,174,110, 25,213, 22,165, 52,171,227, 26, 93, 89,110, 79, 19,179,153, 98, 99,107,143,143,127,228, 44, 23, 46,127,192,198,
-230,109,148, 85, 12,222,176,187, 59,195,152,204,153, 19,107,220,184,117,155,181,133, 17,173, 22, 56, 80, 95, 50, 48,170,146, 49,
-119,138, 66,134, 83, 81, 73, 31, 59, 38,140,118,132, 48,208,199, 65,210,230, 49, 65, 33,154, 89, 7,163, 74,163,157,194, 85, 6,
-173, 34,161,247,178,166, 11,129, 16,101,151, 29,131, 4,230,196, 57,165, 15,164, 27, 25,249,140,205, 57, 15,177, 76,239,180, 50,
-228, 44,105,221,164,196,252,101,140, 1,101,184,181,181,193,116,111, 87,198,183, 70,166, 47,174,244,144, 83, 33,208,201, 86, 82,
-122,225,198,138,153,112,107,247, 54,195,116,239,128,136,152,231,205, 25, 35, 55,210,156,139,191, 92, 69,150,150,214,202,127,166,
- 14,188, 11, 82,111, 66,110,145, 63,183,167, 37, 75,117, 88,194,133, 37, 37, 62,175, 86, 41, 65, 0,231, 12, 26,135,113,133,155,
-159,230, 91,136,242,226, 40,161, 63,144, 81,111,201,211, 30, 88, 11, 77, 33, 79,230, 82,227, 19,152,203, 29,191,135, 66,224, 59,
-114, 65,138, 16,231,100,208,132, 47,189, 49,101,138,247,157, 32,170, 80,165,202,129,104,206,132,147,201,162, 0,172,132, 37, 47,
- 53, 26, 93,222, 60,130, 2, 86, 7,125,177,124,112,153, 60,192,168,166,132,202,194, 95,151,247,182, 57, 32,142,170,172, 80,201,
-148,149,133, 47,124,244, 2,147, 65,163,147, 16, 51,147,146, 12, 67, 60, 16,190, 68, 34, 2,235, 81,101,250,150, 74, 82, 47,151,
-213, 46,133,106,169,138,219, 62,151,199,191, 81,166,116,131, 36, 4, 72,177,158,166, 40, 47,123,165, 75,184,182, 48, 1,114,201,
- 13,164, 92,248,238, 73,160, 96, 81, 2, 97, 2,109, 2, 1,210,168, 68, 30,130, 60, 87,116, 1,240,100,176, 37,116, 23,230,217,
-129,241,226,194,239,145,162,160, 2, 83,193,251,165, 64,140,254, 64,112, 64, 20, 74, 81, 76, 30,162, 23,106, 91,144,219,166,214,
-153,224, 61, 49,101,142, 30, 61,204,111,125,253, 89,182,182,182,248,163, 63,248, 15,220,218,216, 98,214,247,244,222,163,178,162,
- 27, 6,246,167, 83, 20,176,182,190,134, 70,177,185,117,155,166,105,217,217,217, 99, 58,157,242,232,185,115,164,228,121,239,226,
-213, 98, 82,155,255, 50,106,217,191, 25, 25,105, 12, 65,164,245,198, 57, 22,199, 11,140, 70, 13,149, 86,248,190, 47,185, 0, 67,
-211, 44,210, 54,181,156, 58,189,103, 54,244,248,168, 14,126, 33,115,174,119, 44, 39, 48,231,172,220, 90,162,236,239,134,206, 51,
-164, 92,194, 21,162,147, 37,139,100, 64, 27, 69,211,180,140, 23, 91,249,128,197,140, 54,242, 33,148,106, 66,100,232,197, 18, 22,
- 11, 9, 67, 69,129,246,184,186, 18,162,153,151, 81,119, 54,154,186, 54, 84, 70,132, 48,182, 50,152,100, 73,198, 50, 94, 94, 16,
-118,115, 24,202,190,106, 94, 95,137,136, 69, 69, 30, 42,210,217,151, 79,150, 66,146,153,206, 56,108,214,130, 56,240,129, 20,122,
-250,193,227,103, 61, 42,123, 73,204,247, 3,179,161,151, 19,100,136, 76,186, 14,159, 6,124,223,227,125,160,243, 61, 33, 43,250,
- 62, 51,132, 68, 80,146, 45, 8, 70,225,218, 5, 22, 23,199,180,117, 75,211,150, 17,115, 93, 97,180,193, 71,208,141,147, 1,188,
- 54, 24, 91,161,181,165,109, 90, 92, 59,166,109, 90,150, 22, 23,169,235,154,202,136, 47,188,178, 78, 30,220, 42, 75,245, 76,152,
-150,178,251,139,242,229,239,135, 72, 54, 14,235, 90,154,166, 97,180, 48,194,141, 44,117,221,210,214,142,218, 8, 82,210,100,138,
- 81, 78,152,220,253, 32, 94, 1,109, 52, 49, 23,134, 8, 98,188,154,247,101, 93, 86,130, 40, 46,246, 39, 65,142, 6, 98,144,207,
- 73,142, 17, 31, 12, 67,242,196,160, 36,173,158, 69,181,106,170,154,166, 25, 83, 53,142,229, 81,203,104, 84,211,182, 35,154,170,
-146,234,147,209,184,214,240,246,133,247,217,222,217,165,174, 29, 75,227, 17,163,186, 98, 8,137,219,187, 51,182,119,247,120,251,
-221, 75,124,112,229, 58,141,137,188,121,233, 58, 41, 6,234, 74, 58,200,146,154, 72,184,198,112,246,236,221,172,212, 45, 89,105,
-172,242,124,234,147, 31,230,233,223,254,117, 62,114,255,105, 78,173, 85, 92,189,116,149,173,221, 41,214,136, 34, 55,151,102, 75,
- 76, 25, 93, 57, 82,130,181,213, 37, 14,175, 47,179,189,179, 79, 12,129,126, 54,165,110, 44,109,221,176,188, 56, 66, 27, 77, 61,
-178,172, 47, 45,178,184,188, 70,213,214, 76,102, 19,124,159,113,214,178,189,189,203, 75,175, 93,161,247, 3,147,201,148, 48, 4,
-102, 67,207,108, 54, 97,117,113,153,207, 60,254, 24,221,208,113,107,107,143,147, 39, 86, 56,125,236, 8,154,196,126,223, 73, 40,
- 40, 36,116,146,234, 98, 46, 53, 72,180, 34, 32, 15,184,156, 34, 38, 40,113, 49,100, 79, 38,210,182,142,202,214,133, 53, 94,196,
- 59, 65, 38, 9,170, 4,109, 7,239,201, 49,224,163, 84,145, 66, 8, 7, 82, 17, 93, 0, 40, 42, 11,220, 67,105, 77, 72,153,253,
-174, 99,107,103,151,219, 91,219,108,111,111,179,177,113,139,221,157, 93,246,103,251,236,237,238, 16,135,161,220, 26, 13, 42,137,
- 75,251, 14, 33, 12, 12, 66, 86,140, 57,209,245,129,221,221, 45,102,221,190, 4, 75, 85,233,215,151,216,149, 4,228, 18,141, 51,
-172,142, 45, 39, 15,173,176,184,180, 34, 47,217, 44,211,200, 48, 79,170, 23, 41,137, 82,114, 24,144,247, 88,148,219,157, 46, 30,
-239, 80, 66, 97,141, 8,163, 68,123, 42,223,199, 92, 60,234,170, 8, 99,180,201,197, 79, 46,231, 3,159,228, 22,153,181,220, 34,
-229,138,172, 10,133,217,200,229,205, 26,161,195,202, 89,167, 28, 6, 82,177, 54,102, 14,232, 39, 37,204,167,203,116, 68, 91,203,
-124,209,172,180, 60,187,230,194, 47, 89,217,106,156,214, 68,163,127,142, 34,103,138,153, 44,138,132,171, 76,186,230, 23, 72,201,
-204,229,178, 11,207,168, 18,182,148, 49,178,158, 15,247, 75, 16, 79,254,188, 57, 2, 87,149,176, 47, 74, 96, 74,178,225,187,195,
-245,215,165, 6,157,147, 60,239, 83, 10,165, 46, 89,242, 50,115,179,103,188,163, 17,151, 63, 77, 38,214,194, 63,146, 73, 1,166,
-232,204,179, 70,151,245,111, 40, 60,123, 85,216, 41, 81,221,233,175, 23,205,144, 76, 44,202, 75,159, 34, 36,138,130,102, 16, 15,
-125, 81,184,170, 34,194, 49, 89, 11,155,160,100, 12, 82, 46,226,217,131,209, 68,241,164,167,178,195,202, 37,172, 38,249,140, 40,
-189, 10,109,112, 7, 2,120, 57,165, 73, 5, 39,240,248, 99,143,178,180, 48,230,143,255,253, 31,177,113,235, 26, 89, 41, 46,156,
-127,131,119,206,159,199, 57,199,250,145,195,220,125,230, 46,214, 87, 86, 9, 49,178,182,186,198,147, 79, 62,193,251, 87, 63,224,
-236,217, 7, 88, 93, 89, 97, 99,107,139, 19,167, 78, 51, 94,248, 41, 27, 27,155, 40, 39,164, 31,225,244,106, 81, 62, 70, 88, 92,
- 90,230,248,177, 19, 28, 59,126,148, 35,135,143, 48,110, 91,134,190,227,242,229,139,236,239,239,115,242,212, 41,214, 86,143, 96,
-172, 98,119,119,151,119,223,125,151,243,111,190,201,224, 59, 66,180,104,163, 9, 62,224, 42,203,195,247,223,207,241, 19,199, 88,
- 90, 94, 33,248,192,173, 91, 27,188,251,238, 5,110,108,108,162,181,102, 80,114, 83,214, 70,209,182, 45,167, 78,156,226,232,137,
- 99, 28, 63,114,148,241,194,136,156, 18, 91,155,183,120,235,252,121, 54,182,110, 51,110,101, 68,230, 76,192,186,138,224, 35,203,
-107,235, 60,112,223, 3, 28, 62,114, 24, 83, 89,246,118,119,121,255,202, 21,222,126,247, 2,209, 75,247, 17, 45,225, 52,149, 18,
-103,206,156,225,248,201,147, 44, 46, 45,225,135,129, 91,215,175,243,238,197,119,216,157, 78,169,181,165,178, 48,219,159, 48, 11,
- 50,106,143, 25,116,109,177,100,234,218,138,229, 39,107,102, 38,178, 96, 22,208, 33, 49,116,158,140,166,113,142, 88,198,206,174,
-181,204,162, 39, 87, 14, 61, 36,200, 61, 41, 57, 81,108, 38, 79, 91,181, 12, 65, 30,168,169,114,168,228,133,243,222, 67,238, 60,
- 67,142, 24, 87,209,154,113,201, 31,100, 58, 99,176, 78, 48,146, 62, 14, 96, 44,179,201, 62,221,224, 49, 86, 75,106, 85, 65,213,
-212, 84,202,208,123, 57, 84, 10,215, 67,242, 17,217, 39,170,202, 80, 57, 33,191, 25,157,139, 56, 71, 2, 77, 93,138,194, 99,239,
-164, 86, 73,225,134,215,218,129, 21, 0, 82,107, 28,182, 29,177,210,214, 76,251, 41, 57,212,116, 65,110,139, 41, 8,230, 55, 6,
- 67, 82,114, 66, 55,149,124,158,147, 81,168,104,201,126,192, 26, 75, 8,137,126,232,229, 6,110,122,156,202,101, 84, 40,201,110,
-165,172, 16, 13, 77,164, 81,150, 74,107,140,106,233,139,180,200,234, 76,223,121,246,187,142,174,235, 25,143, 28,187,147, 25, 49,
- 37,182,118,167,108,110,237,176,216, 58,198,213, 18, 57,100,158,252,236,189, 92,187,182,135, 77,138,251,143,175, 99, 43, 77,240,
-153,157,253, 9,125,212,196,110,224,141,215, 46,114,246,244,113,140,129,193,123,118,102, 10,170, 49,237, 3,103,249,226, 93,199,
-120,236,211, 31,227,247,254,143,127,199,119, 94,122, 15,165,157, 60, 4,147,140, 98, 27, 91,163, 42, 67, 68,179,179,215,227,195,
- 64,219,212,164,160,184,181,181, 75, 61,106,105,157,163,110, 27,236,168, 38,165,140,159, 37,154, 81,195,241,181, 53,110,238, 77,
- 73, 81,177,188,182,140,219,155,145,179,103, 63, 4,250, 44, 29,244, 97, 54, 99,121,105,204,108,111,224,147, 31, 57,199,123, 31,
-108,240,194, 75, 63,229,137,115, 15,241,185,143, 63, 64,110, 70,252,213,223,255,128,237,217, 4, 91, 91,114, 23, 74,138,152,242,
- 66,145,158,186, 82, 26,159, 35,217, 70, 98,148,149, 1, 81,209,231,128,193, 21,234, 90,198, 57,131, 13,133, 24,233, 37,116, 23,
- 99, 73, 97, 71,121, 56, 83, 91, 84, 80,116, 33, 96,156, 28, 22,187, 73, 98,123,123,147,161,159,210, 77,246, 73,193,203,132, 86,
-151,181,162,171,137, 3, 84,128,109, 27,185,224,200,208, 85, 12,131, 86,220, 15, 26,205, 16, 51, 62, 13, 36, 63, 16,252, 64,140,
-161, 0,154, 10,185,185, 48, 38,156,209,212, 86,242, 5, 11,141,226,158, 19,135,248,240,189,119, 97, 70, 11, 76,102,137,208,239,
- 11, 9,114,150,120,247,230, 46,187, 94, 2,179,206,148,135,250, 16, 36,243,225,132, 84,153, 99,193,178, 24, 75,152, 37,172,147,
-181, 95, 10, 94,228, 86, 90, 92,228,130,220,149,221,172, 48, 29, 74, 98, 62, 67,204, 6, 21,179,120, 22, 48,196, 44,223,197, 20,
-229,123, 17, 82, 44, 10, 81,153, 44,196,162, 71, 85,185,164,115,162, 48,198, 19,194, 47, 55, 86, 88, 36,186,184, 45,116,158,239,
-191, 13, 73, 27,140,137, 88,171,201, 67,241, 33,207,211,245,169, 36,185,117, 65, 53,151,234,154,200, 50, 10,184,169,240, 57,152,
-215,230,146, 8, 83,180, 54,119,214, 34, 82, 71, 32, 41, 89,101,164, 20,208,229,162,161, 84, 16,126, 70,206,114,168, 51, 6, 10,
-181,109, 46,235, 9, 73,114,234, 86,187, 82,151,158,235,226, 11,156,135,121,223,188,188,124,203, 1, 71,103,153,202,233,156,133,
-124,106,141,144, 82, 67, 18,163,167, 17,160, 89, 20,128,188,172,184,203,159,155,181,194,198, 34,211,153,239,235, 65,200,115, 70,
- 17, 10,131,206, 22,192,153, 74,134,164, 32, 34,235,205,236,229,221, 13, 26,171,149,147, 17,101,150,211, 74,204,210,157,211,115,
-147, 21,243, 29,220,252, 60,113, 39, 39,129,130,144, 85,225,248, 38, 62,249,169, 79,240,250,235,175,113,229,242,123, 88,155,133,
-214,133, 66,233,200, 93,119,223,205, 39, 62,241, 41, 62,116,230, 12,171,171,171,194,173,173, 68,250,254, 7,127,252, 39,188,244,
-163, 31,242,181,103,159,101,125,125,157,195,235,235,252,250,127,243, 21,190,253,237,239,114,254,173,243,229, 38, 45,128,142,156,
- 37,117,253,139,191,246, 21, 62,254,145,143,210,180,117, 65,160,202, 9,240,220,163,143, 18,163, 48,179,153,167,245, 51,156,123,
-244, 49,158,123,254,121,190,243,205,191,103, 8,241,128,158,116,215,233, 51,252,119,255,227,191,164,114,245, 1, 21, 9, 50, 23,
-223,125,151,191,254,235,255,204,123,239, 93, 38,149, 47,186,179,134,207, 60,254,105, 62,253,201, 79,177,190,190, 62,255, 77, 31,
-140,149,238,185,239,126,254,238,155,223,230,246,141,107,120, 35,196,182,201,116,224,200,225,195,124,233,151,191,194, 93,167, 79,
-203, 7, 71,203,127,255, 99,231,206,241,220,247,191,195, 75,255,245,167,120, 35, 63, 99,167,107, 62,242,216, 57, 30,255,228,103,
- 25,213,141,236, 99,149,140,233,223,123,239, 2,223,121,254,121,246,119,118,137, 64,213, 2,211, 40,200, 74, 66,233,236, 91, 25,
- 43,169,114,218,207,137, 33, 56, 22,170,138,197, 67, 99,124,242,116, 67,164, 54, 6,167, 27,186, 32,180,173,232, 7,140,177,212,
-180, 96,165,114,150,113,224,101, 39,155,140, 42,192,137,138,136,161, 93, 90,198, 12,248, 0, 0, 32, 0, 73, 68, 65, 84, 26, 99,
-180,116, 56,109,156,159,160, 69,201, 57, 66, 56,248,173,150,212,105,200,158,222,247,164, 73, 36,231,129,157,189, 93,246,186,129,
-228, 59,250, 33, 18,181, 18, 5,229, 48,224,227, 68, 2, 49,218, 49, 13, 3,157, 1,223,251,226, 78, 55, 52,182, 38,155,242,224,
-165, 35,197,136,113, 53,227,118, 76,206,145,125,100, 31,170,251,204, 52,121, 24, 60,126, 24, 17, 21, 84, 78,179, 56,110, 88, 41,
-217, 16, 89, 3, 56,217,139,170, 76, 7,168,148,152, 78,134,114,234, 29, 17,148, 39, 15, 73,168, 91, 74,129,145, 93,172, 15, 3,
-179,217, 64,210, 25,167,107,146,201, 84, 73, 9,119, 89, 87,180, 78, 97, 19,152,202, 98,173,204, 4,186, 91,219,244,253, 64, 93,
-181,196, 52, 97,243,246, 62,221,208,147, 99,100,241,208, 58, 43,171,135,240, 33,114,117,207,243,214,197, 15,200, 41,114,236,248,
- 58, 11,173,161,159,246,156, 92, 89,230,234,237, 25, 27,219,183,240,211, 29, 86,199, 71, 57,186, 54,226,232,209,163,108, 93,251,
-128,189,235,183, 88, 60,118, 6, 26,203,250,163, 79,113,234,174,239,160,126,116, 1,137, 14,202,119,116,105,105,137,163, 39,238,
- 99,119,186,195,198,181,139, 4, 87,201,238,114, 8, 84,181, 35,231,200,181, 43,183,104, 85,205,201,122, 5,141,197, 39, 79, 85,
-203, 33,224,246, 36,114,229,250, 13,134,153,192, 91,150, 87,198, 28, 93, 21,196,233,252,137,151,148,162,109, 27, 54, 55, 54, 49,
-205, 50,203,135,143,115,227,214,247,248,243,191,251,175,156, 62,121,156,175,124,241, 41,126,237,151, 31,231,175,254,246,187,220,
-218,153,202,231, 43,134,210, 32, 72, 36, 99,240, 19, 65,144,102, 44, 49,250, 50,166,150,155,176, 38, 99,113,132, 44, 1,205,152,
- 37,236,166,117,194, 84,142,228,141,176, 18,178, 18,139,149,113,228, 98,240, 82, 6,226, 16,112,206,177,189,189,197,173,171,151,
- 24,141, 42,172,210,180,227, 70,214, 99, 2,154, 70,107,131, 51,148,125,120, 34,132,200,116, 54,147,204,193, 1, 25, 93,232,133,
-222,123, 98, 26,228,198, 89,110, 85, 90, 41, 42, 43, 87, 68, 65, 90,151,219,169, 51, 44, 47,181,160, 13,135,214, 70,220,117,114,
-149,151,222,217, 68, 43,203,104,180,196,218, 66,195,189,199,199, 60,153, 19, 63,125,237, 42, 63, 57,127,157, 73, 40,185,130, 36,
- 28,131,148,202,136, 91, 25,156, 43,211,198, 44, 13,146, 56,239, 63,163, 14,130,134,166,248,211,251,161,216,188,144,145,175,116,
-224, 11,137,110, 16,168,141,154,103,136,148, 34,135,178, 79, 86,166,208, 28, 35,169,120, 40, 84,241,143, 39, 37,236,119,103, 85,
- 9,181,221, 89, 31,228, 84, 58,212,214, 9,224,134, 36, 76,123, 31,133,246,167,212, 1, 48, 43,229,132, 50,249,206,125, 91, 94,
- 62, 28, 63,126,140,135, 31,121,132,111,127,243,191,200,182, 62,235, 3,209,204, 99,159,252, 4, 58,195,203, 47,255,168,116,217,
-197,206, 25, 85,148,119,154, 18,184,141,232, 74,229,192, 40,213,200, 34,108,201, 82, 55,182,149, 16,222,142, 28, 61,198, 3, 31,
-126,144,231,191,243,109,146, 10, 5,127, 43,217, 42,157, 75, 56,173,180, 30,148, 50, 34, 28,251, 57,188, 56, 74, 0,103,201,203,
-173, 62,166, 40, 43,146,162,174,149,232,128, 33,196, 50,117, 85,153,172,197, 90, 26,148,172, 85,178,132, 68, 36,229, 83, 66,144,
-105, 94,209, 46, 93,252,121,181, 78, 21,169,140, 50,114,168,209, 57, 96, 22,151, 86,126, 79, 23, 34,147, 36, 7, 11, 23,216,200,
-109,118,158,246,198, 20,144,126,161, 19,105,123,199, 96,149,139,145,231,215,190,250, 85,190,253,221,239,114,233,242, 21, 25, 1,
-103, 57, 85, 61,248,240, 35,252,139,127,241,207,249,240, 3,247,179,180,184,136,117, 78, 66, 86, 70, 48,133,206, 58,158,127,238,
- 57, 94,123,237,117, 70,227, 49, 43,203,203,156, 56,113,130,135, 30,124,144,253,201,148,107,215,175,201,106, 64,201, 15,175,174,
- 43,126,229,151,191,204,234,202, 10, 10,184,117,235, 38, 23, 47, 94,162,174, 43, 65,167,162,216,159,236,115,225,237, 11,204,166,
- 51, 22, 22,198, 84,206,114,236,232, 81, 46,188,243, 54,183,111,111, 22,152, 3, 28, 63,126,148, 71, 30,126,152,247,175, 94,227,
-198,141, 91,242,226,104, 91, 86, 86,215, 88, 89, 89,225,252, 91,239,136,213, 75,101, 22,198,139,124,254,233,207,115,226,196, 9,
-148,130,141,205, 77,174, 92,185,140, 86,134,182,109, 88, 89, 89,101,161, 29,241,214,249,243,236,207, 38,116,251, 29, 73,193,231,
-159,250, 5,206,158,125,144, 12,108,108,220,226,242,165,247, 89, 91, 91,197, 89,203,250,242, 26,111,190,245, 6,211,217,148, 70,
-193, 3, 15,220,199, 23,158,254, 37,234,170,162,235, 59, 46, 94,122,143,156, 51, 77,221,176,188,182,198,242,226,152, 55, 94,127,
- 85,234,163, 57,210, 69,185, 69,215,198, 34,219,145,129, 72,164,239, 3,251,131,152,221,134,222, 51,243,162, 38,213,218,208,165,
-194,117,175, 26,201, 8, 36, 37, 47,246, 12,209, 88,106,237, 80,198, 72, 37, 45,165,130,219,148, 10, 74,246, 66, 16,139, 49,210,
-245, 29, 97,240, 2,140,168, 20,237,162,220, 82, 43,227,168,170,154,152,161,173, 27, 84,206, 52,245, 2,163,213, 21,150, 86, 22,
- 24, 47, 46, 50,110, 42, 70,139, 35,150,154,150,197,197, 69,172,209,180,163,134, 81, 91,163,181,220,244,157, 73, 96, 13,227,182,
- 41, 99,117, 79, 68,210,232,164,140,201, 2, 99,232,125, 79, 55,219,101, 50,157,209,123, 9, 99,249,156, 48, 86, 73, 42,123, 58,
-101,178,191,199,100,218,177,215, 5, 38,157,103,103,210, 49,243, 50,133,242, 40,204,168, 46,208, 34,193,105,214,181, 97, 97,161,
- 98, 84, 59,198, 11, 21,171,139, 99,198,139, 45,117,221, 80,143, 90, 22,155,154,118,161,166,182, 21, 85,150, 32,143, 26, 50,221,
-116, 70,215,117,236,118, 83,118,247,166,226, 88,159, 78, 25,186,129, 99, 43, 21,215,111,220, 98, 99,107, 91, 38, 11, 33, 98,148,
-226,232,225,195, 44,175,174,210,117, 29, 91, 59, 91, 92,184,112, 25, 29, 50,235, 43, 11,197, 13,144,233,122, 1,132,108,238,108,
- 16, 73,156,185,235, 4,247,222,125,148, 15,159, 57,194,147,191,253, 63,113,232,216, 2,147,173,171, 44,159, 60, 5, 56,174,252,
-211,203, 92,121,227,117, 94,121,227, 50, 62, 41, 66,150, 12,201,120,229, 48,213,104,145, 20, 35,161,155,226, 12,212,141, 21,142,
-120, 74, 44,140,199,140,154,138,155,155,219,100,235, 24, 57, 71,227, 26,124,206, 92,190,124,149,237,173, 91,248,190, 39,133, 65,
-180,160,193,211, 44,140,168,109, 77,215,117, 82, 71, 50,134,213,213,117,246,247,167,172,158, 94,103, 54,153,112,243,250, 13, 76,
- 74,220,218,220,229,251, 63,250, 9,247,127,232, 56, 79, 62,241, 25, 46, 93,120,135,105,223, 11,234, 19,105,174,132, 97, 64,107,
-193,148,134, 36, 43, 44,163,193, 33,191, 83,227,100,175,109,149, 36,172,125,136, 4,239, 15, 82,236, 98,131,147,135,167, 51,146,
- 25,177, 86,170,146, 74,137,100, 3,101,216,188,121, 29, 63,204,176,214, 73,216, 82, 21, 7,134, 42, 43,153,152,100, 45, 73,129,
-170,100, 9, 45,185,170, 2,101,232,135,142,217,108, 70, 63,244,164,232, 15,226,224,115, 61,166,115, 22,235, 12,149,149,132,188,
- 86, 70,216, 20,104,134, 32,213,221,253,174,199, 84,142,215, 46,221,228,181,215, 47,112,253,250, 22, 23,175,220,228,221,155, 59,
- 28, 59,190,194,231, 30,191,159, 15, 63,112,152,237, 91,183,185,122,115, 27,109,164, 6,171,238,224,211,133,183, 62, 23,133,100,
- 97, 39,160,229,230,168,203,243,124,136,114,200,207, 72, 3, 36, 69,177,173,205,235,170, 50,250, 79,119,228, 35,165,158, 37,234,
- 81,125, 96, 70,148,234, 26,152, 36, 32, 46, 93,254, 60,109, 4,226, 98,178, 34,132,132,179, 86,244,203,243,219,112, 44, 21, 60,
-173,177, 74, 75, 54,168,146,137,136,160,183,193,206,241,176,133,238,168,181, 2, 13, 71, 15, 31,229,193, 71, 30,225,159, 94,249,
-167,185,166, 12,107, 44, 57,101,238,185,247, 94,172,181, 92,125,255,125,121,111,233, 44,226,149, 34,145,209,229,194,167,116, 62,
-112, 39,168,194,170, 55, 72,149,204,148,137,121,206,138,181,245, 35, 60,244,240, 89, 94,125,245, 85,193, 93,167, 84, 88, 21, 98,
-104,204, 5,214, 83,128,246,101,213,167, 81,149, 48, 64, 52,194, 64, 17, 50,190,188,120,231,184,216,164,228,179, 97,210,157,144,
-176,100,247,228, 0, 24,146,100,171, 14,138,245,200,122, 72, 23,235,220,252, 23,174,180, 24, 51, 83,150,181, 75,154,107, 93, 11,
-127,223, 44, 45, 47,255,158,162,252, 82, 85,249, 77,170, 2, 17,201,243,186,157, 36,226,117,169,153,229, 66,205, 73, 37, 41, 33,
-213, 65,205, 83, 79,125,142,231,190,247, 2, 59,123, 59, 7,167,211,147, 39,143,241,245,223,250, 58, 71,142, 28, 97,158,214, 81,
- 90,253, 92, 46, 17,142, 29, 61,202,245,235,215,121,243,173,243,188,249,198,155,128, 98,188, 48, 38,196,196,217,179,247,115,123,
-107,139,155,183, 54,228, 47,173,197,232,115,238,227, 31,101,101,117,149, 16, 34,127,251,119,127,203,183,190,249, 61, 50,138,251,
-238,187, 23,173, 20,239, 93,188,196,159,125,227, 27,188,242,234, 27,220,117,215, 41, 86, 87, 87,176,214,113,243,214, 45, 46, 95,
-250, 64,190,160, 40,134,233,140, 55,223,124,131,231,191,255, 2, 63,122,233, 37,250,161,227,254,123,239, 21, 84,173,173,120,231,
-226, 69,182,183,119, 72, 81,234, 63, 15, 60,112, 63,135, 15, 29, 34,165,204,183,191,245,109,254,238,239,255,158, 27,215,111,114,
-223,125,247, 96,173,195, 40,205,107,111,156,103,227,246,109, 82,204, 44, 46,173,242,185,167,158,100, 52, 26, 17, 66,224, 47,255,
-243,223,240,147,159,188,202,217,135, 31,164,174, 27, 82,202,188,245,214, 59,236,110,239,163,141,229,220,163,143,113,252,196, 41,
- 50,112,254,237, 55,249,246,183,254,129,173,173,109,238,189,239, 62,156,115,172, 44,173,242,218, 79,255, 9, 99, 18, 77, 91,211,
- 86, 53,117, 85,225,170,154,166,118,212, 78, 9,130,212, 41, 90, 87,209, 44, 54,180, 54, 51,170, 43, 57,221, 38,143, 77,137,170,
- 54,132, 48,160,116,192,182,142, 58,149, 79,152, 41,222,116,157,208,202,210, 52, 34,205, 25,217,134,197,102, 76,219, 90,217,131,
-187,150,241, 66,205,120,228,104,156, 43,167,249,154,202,180,101,119, 89,145,117, 36,230,128,177,141,132, 18,125,199, 16,133, 54,
- 87, 45,142,105,171, 5, 22, 23,151, 89, 88,108, 88, 61,188,198,202,226,152,163, 43,107, 44, 47, 45, 80, 87, 53,139,163, 5, 52,
- 2,193,208,202, 98,141, 67, 59,199,168,109,105, 91,233,196,219,170, 98,220, 86,184,218,225,180,145,132,125, 1, 20,197, 32, 39,
- 95,107, 44,166,146, 13,157,239, 6,186,201, 62,125, 55,195,119,158,219,187,123,236,236,236,179,125,123,151,205,219,219,108,109,
-239, 49,120, 79,232, 51,189, 31,200, 88,178,114,152, 74,118,163, 90,103, 22, 70, 21,163,229,154,229,209,136,229,133, 49,213, 98,
-195,209, 35,139,140,234,150,165,133,138,229,197,134,218, 88, 42, 35, 35, 74, 82,164,109, 42, 30,249,208, 25,222,185,116,149, 62,
-244, 7, 22,193,227, 71,215, 89, 94, 93,161,247, 19,240, 30, 87, 57, 42,167,169, 44, 60,250,208, 9, 72, 3, 59,219, 19,118, 39,
- 61,179, 24,139,255, 26,198,227,195,236,109,239,241,177, 79, 62,202,201,143,252, 26,227, 67,103,136,187,151, 24, 29, 57,204, 79,
-254,246,191,240,214,171, 63,227,173, 43, 59,236, 77, 3, 67,188, 19,214,153,205,122, 70,166,163,110, 50,195,208, 11, 35, 95,160,
- 19,140, 22, 86,113,182, 98, 24,122,140,181, 36, 31, 57,121,242, 40,251,222,179,113,243, 6,155, 91,155, 34, 76,177, 6,107, 36,
-248,216,245,129,233,100,198,241, 19,107, 52,104, 54,111,239,179,188,186,192, 16, 2,179, 89,143,109, 91,174,223,220,226,246,230,
- 53, 14, 45, 57, 30,186,255, 20,107,149, 69, 15, 59,156,251,212,199,168,150,143,241,195,127,252,199,178,159,246, 34,208,136,178,
-110,209, 38, 10, 41, 44,101, 76, 22, 37,235, 48, 4,114, 20, 12,175,247,129,236, 7, 98, 26,200, 57, 98,203,174, 53, 71, 49,127,
-105,163,239, 0,148,180, 60, 69,117, 1, 40, 5,159,216,218,220, 32,250, 65,122,255,198, 16,163,136,129,162, 36, 39,209, 36,154,
-186, 18, 70, 66, 78,162, 25,205, 25,109,106,170,166,149,172, 79,150,131, 69,144, 84, 84,185,189,202, 96,209, 25, 93,218, 43,148,
- 78,186,147,137, 67,153, 34,134,156,152, 77, 2,211,221, 41,123,123, 19,182,119, 39,120,223,179, 55,153,112,227,230, 6,175,190,
-246, 46,149,201, 60,249,153,143,240,139,191,240, 81,142,172,213,188,249,238, 13,102,179, 32, 14, 5,109,100,135,139,144,202, 12,
- 37, 60, 85,178,231,214,138,212, 40, 6, 33,239,197,178, 11, 87, 73,106,150,100,177,166, 45, 47,175,240,208, 67, 15,115,252,228,
-113,158,249,252,231, 57,124,232, 48, 31, 92,187,202,151,190,248, 37, 62,245,233,199, 25, 6,207,141,107,215, 48, 70,115,252,232,
-113,158,126,250,105, 62,253,217,207,242,224,217,179,108,108,108,176,183,179,199,189,247,220,203,202,202, 42,103, 31,121,132,103,
-158,121,134,211,119,221,197,149,203,151,201, 41, 49,106,199,124,229,171,191,194, 19, 79, 60,193,194,226, 50, 71,142, 28, 97,218,
-117,244, 93,199,250,234, 97,126,241, 23,127,137, 79, 62,254, 56,227,165, 69,110,221,188, 65,240, 17, 74,216, 23,165, 89, 63,116,
-152,211,167, 78,177,180,176,204,211, 79, 63,205,177,163, 71,184,122,237, 42, 49,123, 78,223,117, 6,148,226,202,229, 43,140,219,
- 17,143, 63,254, 4, 79, 61,253, 11,220,125,250,110,110,109,220,162,235, 58, 86, 86,151,121,232,225,143,178,178,178,194, 23,191,
-248,101,238,127,224,126,110,239,108,179,189,187,139,210,153,135, 30,126,144,167,158,122,138, 7,207, 62,136, 34,179,178,178,204,
-171,175,190, 66, 86,240,137, 71, 63,193,231,191,240, 5, 30,120,224, 1,186,190,103,235,246, 22, 43,171, 43,220,123,207,125,124,
-250,211,159,226,227,231, 62,198,141, 15,174, 51,157, 13,210,115, 87, 10,175, 19,231,206,157,227,153,103,158,225,254,251,239,167,
-235, 58,110,239,220,102,117,121,133,123, 63,244, 33, 62,245,248,227, 60,252,209, 71,248,224,131, 15, 88, 89, 90,225, 75, 95,254,
- 50,231, 30,123,148, 24, 61,103,207,158,229,253,203, 87, 11,250,119,206,206,144, 9,162,178,170, 84,252,242, 65, 46, 68,149,204,
-134, 41,117,213, 16, 51, 54, 99, 64,221,137,235,231,185,192, 93,186, 33, 82, 87, 40,220,217, 36,101,215, 3,112, 71, 89,182, 31,
-252,107, 24, 6,186, 97,192,168,138,172, 51,117,227,248,204,103,159,224,196,241,227, 63, 55,218, 62,152,220,223,233, 58, 42, 88,
- 89, 93, 69,107, 77,223, 11, 89, 11, 50,127,241,231,255,145,133,241,136, 50,179,128,108,229,164, 87,108,185,148,157, 90,215, 5,
-246,246,119,249,224,234,251, 2,161,177,178, 19, 30,252,192,238,214, 22,183,183, 54,201,103,206,160, 20,226,118,142,169,156,244,
- 21,147,233,148,163,238, 8, 79, 63,253, 57,214, 86,215, 88, 89, 94, 62,128,240, 40, 4,125,216, 13, 83,116,118, 69,225, 90,228,
- 4, 5,152,224,123,207,214,214, 6,221,172, 99, 97,188, 40,181, 25, 34,169,235, 73,104, 26,103, 10, 70, 86,188,217,239,190,253,
- 30, 49, 36,134,174,199,143, 60,147, 89,199,238,100,198,230,246, 54,237,104, 12,217, 49, 12, 3, 25,120,235,252,123,188,123,241,
- 26, 91,187, 3,159,250,204, 54,135,214,215,137, 33,114,117, 99, 71, 66, 21,213, 32, 61, 85,165,193,106, 81,171, 26, 71,229, 74,
-138, 86, 9, 17, 74,219, 49,182, 25,177, 98, 21, 53,153, 48, 68, 82,233,221,103,157,113,109, 45,166, 55, 27, 49,100, 98, 82,244,
- 29,162, 86,213,154,168,123,252, 44, 10,220, 1, 77,109, 42,162,210, 5,120,147,208, 41, 97,131, 43, 56, 94,133,170, 4,192, 97,
-146,161, 50, 25, 83, 89,130,213,204,102, 30, 87,218, 21, 58, 12,116, 94,240,176,212,154, 42, 59, 26, 91, 81,181,142,177, 89, 99,
-221,101,154,228,240,211, 61,246,167,251,236,238,236,177,223, 79, 24,178, 69,107, 67,200, 30,232,208,104, 70,163,150,217,172, 39,
- 55, 74,234, 39, 42, 75,101,164, 42,186, 68, 4, 78,100,170, 10,167, 2,185,105,165,210,132, 17,104,137,174,136, 81, 56,249,125,
- 31,217,153,238,179,171, 38, 2, 22,113,181,132,186,170, 76, 83,143,104,149,194,182, 14, 87, 87, 88,103,169,180,165,106, 29,125,
-212,168, 70,201, 33,200, 39,218,145,112,231,125,236,104,155,138,144, 35, 91, 67,150,238, 49,178,103, 60,180,186, 74,211, 86,228,
- 48, 99,232,122,134, 33,177,186,180,140, 83,129,157,157, 93,110,236,122, 14, 31,185,139, 35,135, 50,215,110,110,243,254,230, 38,
-169,244,221,187,201, 54, 31,108,237,240, 15,207,189,192,199,191,252,219,152,234, 40,235, 15,156,227,226, 15,191,207,183,255,234,
- 63,241,242,155,215,185,178,217, 99,154,117, 76,165,209, 81,225,108, 18, 93,109,138,172,214,154, 91,131,104,124, 99,204,180,149,
-101,127,214,209,119,129,198, 6,150, 22, 23,216,157,238,113,233,250, 45, 66,223, 99,109,164,109,107,210, 48,208,199, 76, 99, 12,
-174, 86, 52,203,171, 76,247,122, 54, 54, 59,180,174,209, 90, 49,182, 13,202,123,246,211,192,197, 11, 31,176, 55,217, 99,182,179,
-197,116, 71, 51,139,150,223,248,226, 23,104,234,158, 11,175,252,144, 99, 39,239,103,117,113,196,222,116,134, 6,130,182, 56,133,
-212, 74,157, 58, 24,127, 90,237, 80,102, 96, 8,129,193, 71, 28,125,121,249, 27, 98,242,248, 88,204, 93, 73,128, 49, 81,149, 67,
-171,145, 23, 57,201, 16,226, 64, 70, 51,155,205,184,250,254,101,250, 97,114, 32, 41,145,246, 76,162,174, 44, 75,163, 5,124,134,
-161,239, 5,242,161, 53, 42, 40,185,173,147,136,195, 84, 24, 13, 40, 92, 37, 19,204, 52,155,202,131, 56,231,131,110,245,124,149,
- 23, 98, 62, 96,151, 26, 99, 72, 40, 58, 31, 32, 12,140, 70, 53, 71, 15,143,120,100,109,141,231, 94,126,155,201,172, 3, 37,120,
-225,201,100,198,159,253,245, 75, 92,188,120,131,103,190,240, 9,126,227, 75, 95,226,254,211,247,242,175,255,239,255,200,173,219,
- 29,141, 51, 12, 49,146,148,198,149,108, 84,200, 82,115, 74, 94, 26, 64, 81,122,189,100, 12, 78, 89, 57,156, 40, 67, 76,210,137,
-214,201,178,118,232, 16,159,127,230,243,188,248,194, 11,188,248,226, 11,124,229, 87,126,149, 51,247,124,136, 31,191,244, 99, 46,
- 92,120,135,175,126,245,215,248,224,253,247,233,186, 25,255,253,255,240, 47,121,254,185,231,249,217,171, 63,227,212,241,147,252,
-246,127,251,207,249, 55,255,230, 95,115,226,212, 73, 62,249,169, 79,243,195,151,126,200,243,223,251, 30, 95,252,242,151,249,210,
-151,190,200, 95,254,167,191,228,107, 95,255, 58,219, 59,183,121,225,185,239,115,238, 19,143,241,200, 35,143,240,135,127,240,135,
-244, 93,199,239,252,238,239,242,194,247,159,231,103,175,191,206, 39, 30,123,140,103,191,246,117,254,253, 31,253,145, 92, 86, 11,
-154, 54,164,192, 61,247,222, 67,223,205,248,193, 11, 47,240,224, 35,143,240,236,111,254, 38,127,242, 39,127, 84,194,128,242, 26,
-249,210,175,252, 42, 74,193,139,223,255, 62,199,142,159,224, 95,253, 47,191,203,191,253,183,255, 39,203,107,107, 60,243,204, 23,
-248,241,143, 95,230, 7, 47,190,192,131, 15, 62,196,111, 60,251, 44,191,255,251,191,207,253, 31,186,135,175,252,242, 87,249,187,
-191,249, 27,218,113,195, 47, 60,253, 5,174, 95,187, 70,214,150, 39, 30,255, 52,103,207,158,229,123,223,127, 1,149,224, 55,159,
-253, 77,254,244,255,253,127, 80, 74,243,181,175,127,141,111,253,195,183,184,185,113,147,205,157,109, 89,231, 58,139, 15,153,207,
- 62,241, 4, 15,159,125,144,239,191,248, 2,117, 93,243,236,111, 60,203, 55,190,241,103,164, 12,191,249,181,175,243,205,239,124,
-139,217, 7, 51, 38,211, 9,255,234,119,126,135, 31,188,248, 3, 54, 55,183,120,242,201,207,113,252,196, 9,158,127,225, 69,121,
- 45,134,242, 89, 18,181,155,196,244, 50, 18,146,116,160,188, 44,128,180, 42,157,247,161, 96,102,133,240, 86, 75,160, 34,249,162,
-244,147,126,122, 44,123, 0, 40,168, 88,163, 15,160, 14, 2, 1, 40,138, 82, 93,106, 50, 89,198, 52, 73,203,184,224,200,225, 35,
-156,123,244,220, 29, 78, 65, 89,202,231,210,215,156,159,108, 81,200,237, 0,136, 74, 49, 26,183, 34, 82,152,236,241,230,249, 55,
- 75, 64, 73, 9,123, 56, 6,178,181, 7, 96, 96, 85,122,184, 41, 6, 97,214,151, 63, 77,105,141,115, 21,149,173,176,206, 29,168,
- 52, 85, 10,100, 6,121,233,105,205, 51, 95,122,134,207, 63,245, 11, 84, 85,197,165,139,151,216,218,186,205,233,211,167,208,218,
-149, 94,101, 42,105,119,233, 32,230, 50, 14,148,127, 6,139, 15, 6, 87,143, 75,221, 68, 94,176,182,174,168,219, 86,118, 89,138,
-131, 42, 3, 74,106, 77,115, 20,107,209,178,136,190, 52,201, 13, 68, 68, 1, 98,234, 73, 62,224,251,158,190,159, 72,195, 32, 4,
-250, 97, 96,111,103,155,172,164,183, 98,172, 17,217,142,173,217,179, 34,221,153, 51,128,229, 33, 35, 45, 1, 91,239,163,180,161,
-177, 22,159, 2, 42,205, 57, 0,208, 52, 51,185, 81, 86, 6, 21, 13,117,169,242, 77,251, 40, 56, 69,157,240, 67, 64, 41, 75, 85,
- 27, 22, 26, 69, 50,137, 24,132,107,157, 76, 64, 59,135, 69,112,181,189,151, 17, 93,180,208,186, 26, 93, 87, 76,189,167,113,178,
-106,209,217,200,195,167, 86, 84, 24,233,221,151,163,158, 82,145, 16,133,247,239,156,130,122,204,120,212,176,122,248, 24,181, 26,
-216,219,159, 48, 75,137,105,223,139, 33,175, 31,216,153, 14,212, 86, 51, 4,161, 61, 25, 35, 39, 90, 93,183, 50, 22, 47, 93, 80,
- 31,130,220, 86,138, 65, 42,230, 32,184,199, 44, 35,184,136,193, 56, 49,152,169,156,208, 22,148, 46, 13,134, 33,179,191, 63, 48,
- 53, 14,179, 39,176,162, 62,120,180,179, 52,166, 66, 27, 73, 64,187, 90,126, 38, 86, 27, 70,163, 49, 33,201, 46,119,186, 55,225,
-246,222, 77,102,222, 75,141,203, 56,112, 6, 31, 20,166, 24,129,117,134,253,233, 4, 63, 12,204,186,204,214,214,148,189,157,203,
-172, 44,142,248,248, 67, 39,152,254,108,155,119,223,219,226,232,177, 35,244, 65, 32, 44,231,127,250, 10, 63,252,251, 63,230, 51,
- 95,253,223,192,173,241,227,239,191,196,115, 63, 56, 79,175, 42,252,224,217,155, 94,167,235, 67,105, 96,136,229,238,214,230, 62,
-231, 30,248, 16,211,219,123,236,238,205, 24,114,148, 61,222,176, 79, 99,165,101, 32,135,102,205,133,183,223,230,240,250, 10, 74,
-107,169,111, 26, 73,163, 55,203,203,220,117,239, 71,120,247,226, 21,250,201, 69, 54,110,190,143,143,153,181,229, 5,188,247,180,
-173,168, 95, 39,211,125,182,183,110, 49,155,116, 56, 11, 27, 23,206,115,254,220,199,121,242,137, 39,184,253,250,139,156, 30,117,
-220,115,230, 56,223,125,241, 21, 92, 37, 14,121,149, 21,202, 7, 49,175,233, 92,238, 17,129, 58,151,230, 66,206,168, 90,190,235,
- 54,102,114,182,100, 21, 15,112,190, 89,105, 8,162,255, 53, 5, 8,163, 82,194,228,132,198,177, 51,155, 66,234, 75,130,184, 16,
-251, 82,192, 89, 35,141, 12, 91,161,163,103, 24, 96, 54, 29,176,149,129, 4,253,224, 89,104,107,214, 86, 86,216,220,155,208,245,
- 51,178,113,132,148, 57,180, 60, 38, 87, 99,118,111,111, 82,215, 53,211, 94,120, 6,115, 34,103, 78,137, 20, 2,222, 42,188,239,
-197, 58,151, 51,125, 52, 92,221,152,114,252,216, 81, 78,158, 58,204, 91,239,188, 47, 45,135, 98,105, 91,168, 35, 75, 85,228,198,
- 91,175,243,205, 56,227,217,175,125,157, 84, 25,254,247,255,235, 27,236,237,246, 24,167,255,127,166,222, 52,216,178,235, 60,207,
-123,190,181,214,222,251,156,123,251, 78,221,104, 52, 26, 35, 1,130, 19, 32,138, 4, 64, 82, 17, 73, 81,164, 56, 72, 10, 45, 74,
-178,108,201, 42,197,150,172,216, 41, 37,229,196,170, 56,131, 83,138,203,145, 83,149,164,146, 42, 87,156, 74, 92, 21,199, 81, 36,
- 69,214, 96, 81, 49, 53,154,179,197, 73,148, 8,128, 32, 49, 17, 32,129,198,220,243,157,239, 57,103,239,189,134, 47, 63,190,117,
- 78,235, 23,170, 64,176,251,222,115,246, 94,235, 27,222,247,121, 17, 95, 35,179,213,138,100, 23,172,115, 39,218,196, 67,189,237,
-253, 77, 9,111, 76, 14, 19,155,155, 2,187,148, 76, 63, 95,240,229, 47,127, 25,213,194,195, 15,127,141,181,233, 26, 95,123,248,
- 17, 68, 51, 15, 62,248, 16,155,219,155,156,188,118,204,239,255,155, 79,240,248,227, 79,160, 10,123,215,246,248,224, 15,126,216,
- 92, 55,120,158,123,238, 57,190,242,133, 47, 26,123,224,211,159,226,251,223,247,126,206,220,116,154,157,211, 59,252,250,175,255,
- 26, 94,225,249, 11, 23,184,245,214, 91, 1,229,190,183,126, 23, 79, 60,241, 56, 95,249,234,151,209, 12, 23,158,253, 54,191,248,
- 95,252, 3, 78,111,159,102,239,112,175,142, 60,236,242,216,219, 63,224, 19, 31,255, 56, 73,149,231, 46, 60,207,127,250,159,253,
-125,182, 79,109, 87, 85,190, 99,103,231, 52,183,221,118, 43,255,219, 63,251, 95, 17,224,194,243,223, 97,123,103,155,251,223,114,
- 31,135,135,251, 44, 22, 11,190,244,249,207, 83, 92,224,197, 23, 95,228,151,254,209, 63,194,139,231,205,247,223,207, 23,190,240,
-121,190,245,237,167,201,201, 92, 76,247,221,119, 31, 57, 37, 30,120,251,131,252,230,191,250, 13, 91, 69,229,194,100, 58,225,190,
-251,223,202,211, 79, 63,205,165,139, 23,249,202,151,191,132, 11,246,174, 24,197, 48,131, 56, 30,122,224, 65,126,243, 55,254, 95,
-174, 31, 92,131,228,113,234,185,239,254,251,121,234,201, 39,185,120,241, 34, 95,254,210, 87, 64, 51, 15, 61,248, 16, 79, 61,245,
- 20, 95,250,210, 23, 81,133,139, 23, 95,225,239,255,226, 47, 26,177,213,122,235,250,251,155,118,130, 98,218, 7,105, 28, 37, 89,
- 74, 40, 75, 30,203, 0, 75, 29,127,208,146,137, 85,172, 96, 10, 64,111,212,164,186, 47,200,117,167, 98,192,132, 82,237, 8,144,
-147, 33,254,168,151, 75,142, 35,109,215, 48,157,182,104,236, 81,231,185,231,245,175,227,212,169,117,170,147,178,238,164,100, 57,
-164,170, 74, 69,152,205, 23, 92,189,114, 29, 9, 83, 26, 41,108,109,110, 25, 54, 85,108, 68,105,250,140,154, 38,180,196, 6, 46,
-113, 70,152, 49,223, 59, 87, 19,114,204,118, 97,200, 68,139, 99, 21,220,106, 77, 81,234, 63, 53,101,206,158,187,153,119,127,207,
-247,208,181, 45,179,197,156,223,253, 55,159,224,228,232,152, 55,223,247,102,227,149,139,224,212,155,104,170, 84, 27,153,234,106,
-119, 86,242,200, 24,231,228,146,150,142,254, 10,132, 48, 80,134,235, 28,139,113,164,143, 3,155, 34,180, 77,224,182,243, 55,241,
-210,203,175,145, 83,172,107, 12,106,218,143, 85,207,243,249,204,252,172, 34,108,110,109,129, 56, 54, 55,182,152,174, 77, 76,140,
-134,169, 39, 87, 54,153, 88, 72,149, 53, 47, 67, 38, 5,111,138, 88,245, 72,163, 52, 8,139,146,152, 42,148, 28,153,155, 80,147,
-105,219, 50,148, 25,130, 99, 54,247, 70,113, 59,194, 58,247, 96,227,200,226,177,253, 79, 35,196,197, 72,112, 29, 99, 76,204,230,
-115,124,177,189,183,184, 64, 74, 61, 90,253,251,173, 52, 72, 73, 56, 23,144, 86, 25,128, 60,159,145,163,128,180,204,226, 96, 23,
-169,120, 82, 73, 38,244,201, 19, 6,159, 8,190, 16,180, 48,142, 61,125,239, 24,214, 39,164,133,229, 97, 75,227, 40,210, 48, 61,
-181,197, 68, 11, 55,109,121,124,235, 88,159,116,204,102, 11,250,225,136,249,241,192,225,124,134, 43, 16,211,192, 60, 1, 57, 18,
- 51, 76,186,134, 92, 2,174,245,196, 88,200,163,173,147, 20,191,114,120,204, 98,162, 41,158, 70, 45, 40, 34,229,108,142, 65,239,
-153, 52, 19, 74, 19,153,167, 17, 47, 30,146, 80,226, 72,236, 23,196,165,128,211, 53,168,135, 20, 19, 93,215,113,112, 50, 35, 13,
- 54,150, 91,151,200,238,238, 62,154, 11, 15,222,127, 7,175, 94, 57, 38,247,115,174,238, 31, 27, 11, 62,180,196,148,107,208,136,
-114,122,171,227,149,203,215,185,231,246, 51,188,233,222, 29, 62,246,227, 31,225,179, 95,253, 22,170, 48,164,194, 56,159, 51,117,
- 74,154,174,241,201,223,255, 12, 15,125,240,163,140,243, 93,254,221, 87,191,201, 81,182,124,237,181,233,212,132,110,249,132,212,
-219,251,148,178,146, 74, 79,241, 19,110, 58,119, 51,131, 94,195, 13,137,152,146,141,213, 91, 33, 70, 75, 71,115,206, 83,134,129,
-126, 88,208,122, 19,164, 22,133, 51,103, 78,179,118,250,118,158,122,242, 41, 78,246, 46, 49, 13,193, 4, 98, 46,115,254, 84,192,
- 77, 3, 87, 14,102,108, 1,187, 71, 3,187,251,251,180, 14,134,177,112,106, 99,157,135,191,246, 23,236, 31,244,124,239, 59,223,
-206,133,151, 95,225,153, 87,175, 17, 53,227,138,171,197,135,163,196,190,226, 69, 45,221, 74,193,220, 15,134,225, 38,132,186,106,
- 41, 53,187,161, 13,168, 54, 56,108,226, 50,233,108,244,141, 40,190, 8,185,115,132, 98,103,194,152,122,214,167,235,136, 12,244,
-101, 94,225, 41, 98,250, 15,129,249,176,176, 96,170,106,101,114, 4,155,254, 84,235, 83, 82,165,105, 45,238, 54,142,137,156, 70,
- 38,235,183,112,253,100,160,228, 68,206,222,132,100,213, 62,183,236,224,231,195, 72, 72,201,220, 87,197, 98,136,219,201,132,253,
-147,145,175,126,243,121,138,192,198,116, 66, 28, 35,139,177, 71, 69, 57, 56, 25, 57, 92, 12,252,196,207,252, 36, 67,241, 92,184,
-248, 24, 15,222,247, 22,238,126,195,157, 60,242,200,179,172, 99, 83,136,172, 6,209, 81,148, 50, 70,115, 84,145,200, 56,124,242,
- 72,181,247,225,151,140,112, 40, 53, 88, 69, 75, 97,111,127, 31, 77,181,227, 18,199, 98,222,155, 27, 64,165, 90,216,148,217, 98,
-206,230,246, 54,127,251,231,127,150,215,223,251, 6,246,247,247,172,137, 42, 22, 49,188,191,183, 91,201,115,181, 40, 20, 56,189,
-189,195,254,254,158,101, 67, 84,129,219,254,222, 30, 14, 88, 95,155,114,112,184, 79, 74,245, 59,246,142,189,189,125,118,118,118,
-184,190,127,221,166,195,106, 94,246,253,253,253, 21,245, 78, 11, 28, 30, 28,176,115,211,233, 37,124,129,173,157, 29, 78,159,222,
-225,191,251,229,127,178, 98, 50,168,194,231, 62,251,105, 14, 14,224,240,240,208,162,181,151, 89,242, 98,105,115,155,219, 91, 60,
-249,228, 83,245,215, 22, 14,246,247, 87,179,228,173,157,109,254,227,191,247,247,234,221, 97, 75,141, 11, 23, 94,192, 57,232, 23,
- 11,187, 80,107, 49, 46, 42,104,177,198,109,123,123,139,171,215,119,107,220,108,230, 96,239, 42,247,221,255, 38, 0, 22,139,222,
-138, 45, 17,214, 38,211,250, 25, 26,205,117,255,240,160, 78,175,171, 78,173,162,129, 69, 13, 64,102,214,110,203,102,151, 98, 1,
-106, 2,164,100, 33, 42, 78,140,114, 25,172,147, 44, 43, 31,171,171,108, 97,169,220, 93,241, 21, 69,103,131,222,213,101,146, 43,
-143,215, 55, 75, 59, 2, 76, 39, 29,231,207,223,194,115,207, 93, 96, 18, 26,238,184,227,246, 21, 74, 80,111, 0,112,107, 55, 74,
-181, 58, 8,223,248,230,227,188,248,226, 75,148,146, 89, 95,159,112,231, 29,119,114,237,218, 46,135,123,135,136,179, 81,178, 69,
-102,130,175, 23,116,169, 18,124,131, 12,228, 26,129,169, 21,223,103,128, 6,205,149,100, 84, 31, 74, 86,138, 79, 99,133,119, 93,
- 71,215, 78, 64,132, 54,180,188,239,189,239,166, 13, 45,147,182, 93,233, 6,134,126,176, 23, 69, 35, 69,219,106, 97, 88,254,205,
-102,115,147, 26,197,104,151,122, 38,143, 35,195,176, 64, 70,184, 30,175,113,225,194, 11,220,124,246,102,124,211,242,253, 31,248,
- 1,190,243,204,179, 76, 38,147,213,207, 21,176,252,230,158,196, 43,175,188,200, 3,111,127, 27,226, 28,111,126,203, 27, 57, 62,
- 57,226,117,119,221,197,218,100, 13, 69,185,124,245,178, 21, 59,197,142,152, 88,168, 98, 24, 75,145,138,201,128, 5,129, 12, 17,
-162, 51, 5,232,108, 54, 95,229,175,151,152, 25, 92,193, 23,227, 36,107, 84,198,216,161, 69,240, 94, 73, 62,144, 37,210, 56,243,
-206,151, 28, 40,234,232, 99,161,173, 93,116,193, 49,230,140, 11, 5, 70,165, 72,198, 47, 50,210, 22,146,102, 74,233,105,131,103,
-108,243, 82,158, 65, 91,249,210,234, 50,195,112, 66,142, 48,115, 74, 84, 11, 43,112,226, 9, 26,235,200,201,163,243, 57,206, 6,
-246,140,110, 32, 52,150, 52,229, 27,207,164,181,140,224,125,233,193,123, 54,167,167, 57,211, 5, 54,157,137,172, 38,206, 83,162,
-144,211, 17, 39, 7, 11, 22,140,164,146,153,207, 51,139, 18,201, 19,195,230,246, 99, 98, 99, 99,194,108, 62, 50,241,158, 73, 59,
-197,209, 26,224, 65, 50, 50, 22,102,125, 66,241,228, 86,153,166,204,252,164, 71,139, 37,219,133,154,157,172, 21,228,161, 41,209,
-122,155, 28, 9, 9,135,103,236, 7,240, 3, 39,139, 57, 41, 38,246,199,142,211, 59,107,136, 43, 92,187,118,149,211,103,111,101,
-107,218,112,114,120,196,124, 62,103,214, 71, 78, 78, 50,109, 3, 15,221,127, 23,239,126,255, 59,120,248,241, 87,120,229,165, 75,
-184,233, 58,123,187, 39, 56,137, 52,211,134, 44, 29, 79, 63,251, 18,159,250,248, 39,184,245,220, 6,143, 63,241, 60, 81, 27, 38,
-147, 53,206,108,111,242,234,222, 49,195, 56,212,247,207,222,135, 84,224,248,164, 39,208, 49, 38,165,237,188,225,131, 21,242, 34,
-147, 20,114, 92,224,167, 22,116,113,120,176,224,244, 78, 67,210, 58, 13, 11,235,188,250,226,139,204,246, 46,130,115, 36,129,233,
- 90,199,209, 73,102,109, 13,142,162, 50, 31, 10,221, 52, 67, 25, 89,204, 23, 72,215,226, 61, 52,190, 97, 56, 60,224,243,159,250,
-255,120,230, 91,223,225,254,183,190,158, 23, 47,188, 12,177,208, 87, 2, 94, 46,166,209,241, 24,244,163, 4, 83,254, 22,212,254,
- 71, 47,148,161, 22,210,106, 69,191,177,206, 21, 95, 49,163,131,179,134, 32, 52, 38, 80,115,206,194, 55,146, 22, 82, 30, 43, 55,
-189, 30,160, 73,153, 76, 26, 16,161,239, 45, 0,102, 32,174, 32, 31,139,190,199,187,128,115, 98,184,220,190, 71, 40,116,109,203,
- 48, 30, 83, 74,102,247,112,198,108, 62,163, 81, 88,159,182,184,209, 19,135,113, 21,214, 33,197,206, 35,138, 1,170,186,224,217,
-218,220,164,109,215,137,195,156,221,253, 35,110, 94,119,156,187,249, 44,179, 94,185,126,120,192,222,193, 9, 57, 23, 30,125,242,
- 53,126,255,143, 31,229,223,255,177, 31, 70,153,115,117,247, 34, 49,205, 9,222, 38, 47,146, 18, 46, 88,116,182,171, 23,139, 5,
- 53, 25,231,222, 68, 79,118, 49,132,154, 94,169,146,241,206,254, 93, 74,169,230,126,231,218, 56,104,197,122, 85,184, 87,221,237,
-190,227,157,239,228,187,222,122, 63,159,255,204,167,248,215,191,245, 27,168,115,252,210,127,251,203,134, 71,174,177,159,133, 92,
-119,189,118,214, 31, 47,230, 76, 39, 19, 91, 13, 8, 56, 28,211,233,212, 68,119,138,189,111, 90,106,246,136, 99,251,244, 14,243,
-197,188,226,111,117,101,111,155, 78, 38,166,183, 47, 86,168,117,147, 9,243,217,192,210,248,213, 47,230, 92,186,120,153,127,249,
- 47,254, 79, 82,205, 47, 57,125,102,155,253,107,251,220,115,239,189, 43,226,227,106,146, 93,193,236,253,188,103, 50,157, 88,241,
-142,208, 77, 38, 54,133,117,142,190,239,249, 63,254,249,255,206,241,225,140,148, 34, 27, 27,107, 32,194,173,231,206,215, 65,113,
- 77,253, 19,123,182, 52, 89, 2, 95,191,232,153,118, 83,250,197, 12, 16,182,207,156,102,177, 88,212,233,180, 82, 72,160, 30, 42,
-116,202,176,229,133,105,219,173,156, 19, 22, 9,172,213, 15,159,168, 29,150,233,209, 42,180, 38,167, 82, 17,179, 86,144,160,222,
-242,212,181,233,108,236,141,237,167, 92,229,185,107,181, 14, 52,206, 60,144,212, 47, 92,212, 30, 18,215, 52, 85,198,111,200, 82,
-245,133,163,227, 99,222,254,214,239,230,235,143, 61, 70,142,118, 0,172, 88, 0,220,216,169,203, 13,108, 48, 79, 63,253, 45, 62,
-247,217,207, 49,244, 11, 0,238,184,253, 94,206,159, 63,207, 99,143,125,157,197,124,142,107,172, 10, 85, 17,154,106,147, 16, 47,
-108,158, 58,133,170,208, 52, 45, 93,215, 85,181,169, 65, 93, 16, 88, 91, 91,195,183, 70,247, 89, 91,219, 88, 77, 5,214,166,107,
- 86,153, 3, 87,175, 92,231,169,167,159,228,161, 7, 31,164,105, 26,190,231, 93,239,188,177, 18, 80,229,217,103,159,229,210,229,
-215, 86, 84, 50,239, 29,211,233,250,114, 80, 76, 55,105, 45, 90, 80,149, 73,215,161, 57,211, 52, 85,193,153,199,138,169, 21,190,
-248,133, 63,229,236,153, 29,238,126,253,189,188,238,206,215,113,247,157,119, 91, 88, 69,125,120, 36,212, 62, 63, 41,223,124,226,
-113,238,186,235, 78, 30,120,224, 65,110,190,233, 44, 31,253,161, 31,102, 89,190,236, 94,191,206,231, 63,247,185, 21, 87, 36, 85,
- 42,185, 0, 0, 32, 0, 73, 68, 65, 84, 56,103, 83,155,106, 42, 20,103, 7, 92,168,214,165,168,201,226,249, 90, 33,212,128,139,
- 88,140, 3, 45,163, 67,163,101,121,139,183, 23, 74,147, 85,242,226, 3,195, 88,234, 32,103, 32,201,136, 74,139,138,141, 18,135,
- 21,176, 71,241, 94,104,106,151,147,139,199,251,150,121, 30,235,132, 67, 72, 73,209,184,168,160, 14,101,196, 81,198,108, 9,109,
- 94, 44,236, 64,139, 65, 97,178,128, 75,228,138,226,197,103,130,122,188,100,178, 75, 44,134, 64, 19,172,115, 26,143, 35, 39, 50,
- 82, 68,105, 53,160, 90,216,239,214, 16,175,120, 39,132,110,194, 70, 59,165, 11, 5,165, 69,167, 19, 38,226, 16,159,105,221, 17,
- 93, 59, 50, 12, 35, 39, 39, 71,228, 49,115,180,159, 25,213,114,214,231,169,224, 92, 98,218, 56,114,104,105,214, 2,161,174,160,
- 38, 77,131,134,134, 70, 96, 24,212,226, 42,199,194, 24, 19,217, 69, 74, 30,193,121,166, 77,135,150,196, 16, 35, 41, 13, 12,195,
-192, 66,199,154,101, 32,188,242,194, 43,188,238, 14,227,124,199,210,112,215, 29,111,198,135,194,198,153,145,245,105,224,242,197,
-139, 60,255,157,111,115,102,251, 38,110, 62,115,134,173, 83,103,249,157, 47,253, 62,187,179,158,105, 76,140, 53, 40, 99, 62, 52,
-204, 19,180,120,126,243, 87, 63,206,250,198,148, 69, 9, 70,191, 42, 1, 92,199,108,118,141,188,228,160,171, 88, 20,111,202, 92,
- 59, 60,100,226, 61,179,197, 72,108, 45,155,154, 98,226, 46, 98, 33, 2,218,143, 43,109,202,201,236,152,174,221,198,187, 9, 47,
- 95,120, 30,193,236, 61,113, 76, 40,176, 62,157,208,239,101,190,125,113,143,243,119,220,201,214, 90, 7,149,142,184,179, 53,178,
-119,176,199,100, 98,239,230,113, 63,208,118, 83, 94,120,254, 49, 46,188,248,109,114, 28, 56,123,102,199,108, 99,165,208,143, 38,
- 46, 84,204, 27, 61,206, 45,129,141, 38, 17, 8, 53, 2, 20,150, 91, 56,139, 44,182,255, 36, 75,134,177,142,149,115,180, 60,245,
- 96, 93,187,247, 66, 63, 36,134,249,136,147, 42,110,115,182,110, 92, 91, 55,113, 95,138, 70, 63, 27, 83, 68,181, 88, 98, 89,201,
- 21,170, 20, 88, 12, 25,215,220, 80,182,123, 31, 32, 23,242,120,130,230,209, 64, 82,237, 4,113,202,113, 76,117,167, 93,105,101,
- 40, 57, 91,172,231,100, 58, 33, 23, 56, 62, 57, 50,148,111,211, 82,180, 16,211, 2,245, 27,108,108,156,161, 31, 18,251,251,187,
- 36,214,249,213,223,251, 42, 95,254,250,243,252,212, 15,189,139,205,187,119,120,249,210, 30, 67, 31,201,109, 85,143, 71, 91,131,
-150,162, 4, 41,181, 40,213,154,122,153,172,171,202,133, 88, 59, 88,106,178,161,174, 56,238, 90,227,170,235,116, 83,171, 54,168,
- 78, 88,181, 40,211,201,132,189,235,187, 92,248,206,183,217,186,233, 12, 31,248,192,135, 77, 60, 90, 69,109,203,115,211,126, 95,
-179,220, 93,185,244, 26,221,100,194, 3, 15,189,131, 71, 31,249, 58, 15,189,243, 33,206,223,118, 43,197, 9, 79, 60,241, 36,191,
-240, 11,191,192,139, 47, 94,224,194,243,207,241,125,223,247, 94, 4,184,120,241,181,202,135,175,154,111, 39,156,191,245, 86, 30,
-120,240,237,124,253,145, 71,120,239,247,189, 15, 69,120,229,213, 87,120,221,221,119,225,189,227,242,165,139,116,147,142,239,125,
-207,187,249,202, 87,190,204,206,233,109,254,131,191,245,115,252,241, 31,252,145, 85, 15,214,146,214,181,228, 82, 68, 47, 60,251,
-236, 51,188,231, 61,239,230,202,213, 43,140,139, 5,223,251,158,247, 48,246, 61, 72,225, 91, 79, 63,205, 7,222,255, 3,124,234,
-147,159,165,107, 3, 31,253,232,143,112,233,242, 21, 46,189,246,234,138,135,103,184,219, 92, 31, 67,155, 34, 60,245,244,183,248,
-240, 71, 62,196,103, 63,247,105, 38,109,199,131, 15, 62,196,163,143, 61, 86,237,226, 54, 89, 86,129, 39,191,245, 52,255,209,223,
-253,187, 60,241,244, 19, 92,190,116,145, 15,125,248, 35,149,250,103, 22, 65,155,244, 84, 18, 31, 25, 79,176,117,158, 22, 52,171,
-133, 18, 81, 44,166, 68,160,120,143, 58, 71,112, 98,203,117,173, 99, 89,205,213,129, 88, 76, 93, 89,106,120,189,136,199,137,137,
- 48,124,107,248, 68,239, 44,252,192,212,239,153,111,124,227, 27,124,224,251,223,207,125,111,186,159,111, 60,254, 56, 15,127,237,
- 81,110,185,229, 28,183,156, 59, 87, 31, 36, 89,141,169,143,103, 39,124,227,177,111,242,133, 47,126,145,189,131, 3,156,111,105,
- 59,207, 15,252,192,251, 57, 56, 56,228,137,167,158, 33,180,193, 44, 85,110, 82,247,101,105,165, 98,125,230,153,111,115,243,222,
- 1,185,100,174, 95,223,197,169,178,183,187,203, 83, 79, 61, 73,211,182, 92,187,118,165, 30, 56,153,239, 60,255, 29, 82, 21, 66,
- 93,189,118, 13, 23, 2,154, 97, 76,202, 31,253,201, 39,217,219, 61,228,182,219,110, 99,109,173, 35,101,136,105,228,213, 87, 94,
-227,171,127,254, 53,250,209,114,152, 29, 66,142,133, 11, 23, 46,216, 40, 62, 39,174, 92,190, 82, 71, 85, 51,158,122,250, 41,182,
-183,182, 56,153,157,208,207,143,241,212,128,144, 2, 87, 46, 95,226,183,127,231,183,248,238,239,122, 27, 55,157, 61,203,198,230,
- 38,247,190,225,141,180, 77,107,150,156,168,228,226,209,146, 57, 56,232,249,195, 63,249, 12,151,175,238,113,247, 93,119, 50,153,
- 76, 40,165,112,125,247, 58,143, 61,242, 40, 47,190,252,146, 81,209, 74, 21,132, 21,115, 44,148, 8,193,219, 88, 27,103, 73, 71,
-185,250, 37,221, 50, 42, 80,149,210, 71,227, 16,120, 43,149,131,111, 72, 49, 35,100,130, 55,240, 80, 78, 74, 23, 26, 74, 13, 30,
- 42,244,132, 98, 92,230,162, 16, 75,169, 80, 9,207, 80,172, 43, 16, 45,228,208,153, 6, 65,116, 85, 92, 45, 55, 52,190,142, 8,
-157,122,164, 21, 36,218,248,107, 25,115,153,180, 16,196, 17, 38, 30, 25, 12, 23, 58, 82, 17,142,201, 82,210, 92, 12,102, 51,169,
-233, 76,173,179,191, 35,247,137,156,102,102,137, 41, 45,101,152,115,181,233, 9,174, 69,226,136,107, 10,158,214,146,244,138,167,
-235,214,153,156,218,226,230,155,206,226, 53,115,180,152,147,115,100,118, 50,103,136, 35,125,138, 68,109, 9,100, 74,130,182,107,
- 77,135,160,224, 75, 96,107, 99,147,241,148,209, 23,211, 80, 42, 75,220, 56,239,243, 56,210,199, 76, 28, 70, 75,126, 18,251, 94,
- 36,183, 76,214, 3, 18, 61, 46, 24,107,122, 57, 93, 58,238,231, 28, 31,238, 18, 83, 97, 58, 93,227,228,224,152,118,218,177,177,
- 57,225,212, 70, 96,125,210,114,253,210,101,206,157, 59,203,155,239, 62,207,241,188,231,100, 62,227,240,224,152,235,215,119, 89,
-235, 90, 14,143, 14,233, 95,182,113,171, 77,162, 58,134,177, 48,237, 90, 14, 79,230,150, 48, 86,108,127,170,197, 52, 44,210,182,
-148,162, 44, 22, 3,211, 54, 48,196, 76,209, 96,135,186, 56,211, 61,120,181,231, 52,142,104,152,112,125,247,128,137, 47, 36,245,
-104, 74,148, 26,128, 19, 99,164,168,242,226,165, 99,166, 27,137,227,147, 5,107,109, 98,136,133,141,245,117,218, 70, 56,153, 29,
- 18,112,196,156,137,125,100,218,174, 49, 12, 61,107,235, 27,156,218, 58,101, 48, 14, 50,139,126, 36,231,194,164,245,164,100,150,
-181,156, 11, 82, 18,153, 76,204,142, 76, 54, 11, 39,150,127,157, 8,171,117,157,171,132,178,226, 76,232, 89,212, 16,180,154, 61,
-227,162, 39,167, 8,193,145,114,166, 20,165,105,150,184,102,161,235,166,136,239,208,161, 39,165,145,156,122, 20,216,108, 3,125,
- 52, 11,154,171, 88,106, 87,247, 2,147,174, 1,223,208, 71,203, 25, 80, 85,124,227,140,171, 81,173,102, 94,164, 6, 98,153,160,
-200,148,205,217,236,151, 69,241, 56, 94, 61,158,115, 60, 36,182,182, 44, 4,234,129, 55,222,198,241,201, 6, 47, 94,222, 39,162,
- 60,252,228, 75,244, 39, 7,188,237,161, 55, 51, 63,152,161,197,208,207,134, 46, 5,145,130,198, 66, 12, 38, 14,109,156, 53, 64,
-185, 88,200, 80,112,158,236,148,148, 13, 78,163, 75,108,108, 69,145,230,234,199, 86,189,145,145, 94,170,250, 58,229,204,159,127,
-229,207,249,153,191,245, 55,249,229,255,225,127, 98, 24, 6,190,241,200,215, 89, 44, 22,108,109,239,172,210,199, 88,170,178,197,
-172, 86,168,240,187,191,253,219,124,244, 99, 63,202,143,124,236, 99, 60,247,220,115, 92,124,237, 34,154, 11,123,187,123,252,225,
- 39, 62,193, 71,255,202,143,176,115,122,135, 23,158,191,192,239,253,238,239, 34, 78,120,221, 61,247,240,125,239,125, 31,191,246,
-107,191,142, 20,229,226,107,175,113,223, 91,238,231, 99, 63,242, 49,158,127,225, 2,127,252,135,127, 88, 87, 27,134,136, 45, 42,
-124,252,119,127,135, 15,126,232,195,124,240, 67, 31,166,239,123,190,242,103,127,198,133, 11,207,113,207,189,111,184, 17,207,172,
-206, 82,212,234, 52,250, 91,207, 62,205,246,214, 38, 63,255,243, 63, 15, 10,207, 60,253, 12,219,167,183, 17, 45,124,254,243,159,
-225, 3, 31,252, 16,255,240,191,249, 47, 65,225,177, 71, 31,225,209,135, 31,230,214, 91,207, 87, 53, 84,237, 82, 11,252,227, 95,
-254,199,252,147, 95,254,239, 81, 41,124,246, 51,159,225, 35, 31,250, 32,255,245,127,245, 15, 89, 44,122,190,242,229, 47,241,200,
-195, 95,227,158,215,223, 3, 42,213,227, 14,251,215,175,243,153, 79,127,154,159,250,235, 63,197,233,157, 29,190,244,165, 47,175,
-216, 48, 69,132,162,182, 26,172,128,118,242,114,191,238,107, 84,150, 24, 97, 14, 95,179, 13,234, 32, 75,238,184,235, 77,234,234,
-222,199,215,228, 44,139,223,171,163,248,186, 75, 50,142,185, 3, 47,182, 47,173,121,212,154, 13,220,129,100, 78,159,222,228, 63,
-252,217,159,197,225,248,149, 95,249, 21,174, 92,189,198,109,183,221,198, 91,222,252, 38,206,157,191,149,233,116,194,108,126,194,
-149,203, 87,120,254,197,151,120,229,197, 87, 25,135,222, 88,203, 18,248,193,143,124,128,143,254,240, 15,241,111, 63,249,105, 62,
-251,217, 63,181, 42, 68, 11,162, 1,117, 38,166,210,154,175,179,182,190, 78, 8,230, 43,141, 99,102,140, 54,238,157, 78,215, 16,
-111, 97, 16,179,249, 12,205,194,100,109, 74, 55,233,172,211,236, 7,134,161,167, 20,135,247, 53, 92, 65, 60,167, 78,173,153, 74,
- 57, 42,195, 56, 48,159,207,205,115,219,184, 21,201,168,196, 68, 55,153,208, 77, 38, 80, 10,139,177,103,236, 35,136,209,182, 90,
-223, 80, 92, 97,113, 60,179,232, 69,111, 95,253,250,250, 6,222, 11,195,252, 4,212,241,206,119,189,131, 31,251,171,127, 13, 39,
-176,191,187,203,255,253, 47,255, 47,174, 92,189, 94, 87, 27,134,155, 36, 11,235,155,155, 52,221, 4,124, 97,152,207, 73,139,158,
-236,148, 46,152, 47,149,224,106,193,149,209,100, 2, 39,156,141,177,141,113,109, 99,114, 85, 59, 36,100,153,113, 28, 26, 19, 15,
- 57,235,180,137,133,210, 86, 55,100, 78,181,219,240,228,108,194, 72,245, 74, 43, 70,154, 42,165,224, 52, 24,178, 87, 50, 37,103,
-180, 9,184, 2, 37, 26,186,214, 7, 99,169, 91, 30, 57, 52,117,204,153,171,247,212,139,183, 40, 92, 2,173,168,237,253,154,218,
- 17,213,135, 58,169,249, 91, 67, 48,226,155, 20, 79,240, 38,116, 28,139,210, 76, 27, 90,113,198,110,207, 9,159,132,166,235,200,
- 53,103, 58,170,101,174,163, 25,113,208,117, 30, 15,196,228,209, 50,210,132,150,102, 18, 40, 98,120,201,141,105, 75, 25,141,253,
-157,198, 19,134,148, 72,227, 64, 63,140, 20, 21,198, 20, 13, 37, 28, 90,139, 23, 22,193,105, 70,125,160,113,130, 11, 45,211,181,
-150,161, 95, 48,159, 69, 82,137, 38,136, 90,140, 36,171, 81, 88,140,115, 58,239, 57, 58,182, 61,250,124,182,160,184, 9,107, 27,
-155,204,246, 15, 8, 77, 99,135,113,200,232,216,115,255, 27,111,229,239,252,141,247,115,239, 91,222,204, 47,252, 39,255, 35,169,
-221,230,174,215,223,197, 56, 87,156, 36, 36, 14,124,235,194,119, 56, 53,233, 76,193, 61, 20,102,139, 61,230, 67, 98, 99,243, 12,
- 27, 93, 71,123,250, 22,158,124,252, 97,130, 15, 12,195,104,144, 17,133,123,238,186,141,105,215,112,233,234, 62, 57,143, 76,186,
-182, 66,153,172,227,240,206,145,179, 16, 2,132,208,177,232,123, 99,147,231,194,230,169, 73, 21,158, 10,169, 24,110, 56,248,192,
-149,253, 19, 54,218,192,250,214,105,246, 15,118, 57,187,181,206,180,107,112, 93,131,111,214,152,182,129,131,189, 3,174,236,159,
-160, 49,210,181, 13,206, 57, 22,197, 51, 89, 95,195, 59,161,107,221,138, 59,239, 48,125, 1,174, 70, 1,151, 66,227, 44,145,107,
- 40,209,232,103, 49, 83, 52,130, 19,250,185,197,234,150, 58,186, 45,128,100,103,143, 65,221,167, 31, 45,122,142,247,236, 93, 27,
-115, 34,167,196,122,215,176,182,190,193,144, 18,109,232, 72, 69, 76, 29,142,146,134, 5, 57,103,126,252, 61,247,224,215, 55,249,
-212, 95,188,140, 15,222,130, 59,202, 64,204, 75,110,184,176,127,120,128, 47,202,217,155,118,144,166,225,248,232,152, 20,237,157,
- 65, 12,195,122,170,107,152, 76, 39, 12,169, 88,126,183,178,234,150, 75, 30,153, 78, 38, 76, 27,135,111,133,155, 78,159,230,129,
-215,223,198, 11, 23,119,121,228,153, 87, 16, 10,211, 46,240,166,219,111,230,122,159,185,126, 48, 86,127,114,189, 64,139, 34,161,
-114,222,235,106,211, 57,243,220,139,247,132, 90, 88, 56,151,113,101,153, 21,190, 12,103, 49,154, 27, 53, 27, 67,116, 41, 32,212,
- 21,102, 21, 45,198,243, 18, 71, 91,207,236, 84, 65,242,174, 42,254,197,213,120,216,234, 75,119,210,242,174,127,239, 29, 60,252,
-231,127,110,172,120,239,248,207,127,241, 31,240,171,191,246,255,112,184,191,111, 65, 80,206,161,234, 13, 22, 83,189,241,150,228,
-106, 9,107, 86,152, 45,245, 92,182,146,233, 16,198, 82,234,111,111,221,252, 50,101, 52,103,165,243,230,223,215,108,153,190,134,
-150,133,156,148,198, 47, 33,106, 86, 92, 21, 45,214,192,150,170,254,242, 5, 95, 39,228, 41, 91, 34,222,234,119, 87,106,228,105,
-101,188, 47,253,228,141, 24,153,110, 25,223,166, 88,236,100, 41,100, 76,164,232, 87, 73,121, 30, 87, 96,107,123,107, 85,204,168,
- 42, 91,167,119,248,219, 63,247,115,252,211,127,250,191, 24,160,166, 18, 32,125, 21, 89, 59,103, 73,169,170,142,224,108,133,226,
-138,233,160,196, 55,132, 2, 99, 86, 66, 66,104,138, 85,157,169,216,238,220,188,232,186, 26,211,136,179, 3,119,185, 28, 47,121,
- 4, 50,102,188,178,140,109, 81,184, 52, 36, 62,241, 7,127,204,223,252,153,159,230, 39,127,250,167,249,205,223,250, 56, 47,191,
-122,145,151, 94,185, 76, 55,237,104,186, 41, 57, 46, 88,204, 79,106,160,138, 85, 24,107,107, 19,222,253,189,239,225,135, 63,242,
- 97,190,254,216, 55,248,194, 23,191, 82, 61,212,246,243,148, 18,107,108,225, 82, 40, 39,204,142, 23,212,200,250,186, 27,115,244,
- 41, 50,140, 39,246,161,214,188, 96, 7,244, 39, 61,139,249, 96, 52, 32, 99,243,152, 96,196, 91, 39,109, 59,231,129,147,147, 5,
-165, 88, 74, 81,240, 14, 39,211, 21, 46, 23, 10,174,241,140, 41, 17,143,143, 65, 60, 34,134,138, 44,154, 73, 99, 52,134,181,130,
- 15, 77, 85,214, 22,114,129,115, 55,223,202, 95,253,137, 31,101,119,119,151,113, 28,185,231,238,187,106,200,134,240,196,211,223,
-226,218,225, 49,197, 89, 88,132,166, 37, 3,184,208,159,236,115,124, 98,133, 71,206, 22,243,168, 69,137,161, 16, 90, 79, 80,129,
- 28,205, 83,238, 61, 42, 9, 39,193,130, 76, 74,186,193,131, 47, 74, 33, 26,192, 64, 0, 34,100, 37,168, 51, 75,153, 55, 80, 5,
- 37,219,192, 77,133, 69, 63, 16,130, 5,127,148, 84,152,107,196,105, 21, 80, 58,103,225, 56,206, 60,206,193,184,148, 20, 9, 72,
-140,166, 62, 86,136,131, 21,139,206,187, 85, 71,224, 67, 75,168, 47, 98,212,145,178, 76,174, 26, 77,160, 89, 16,178,100, 75, 55,
-171, 65, 13, 89, 33,229,132,244,153,206, 55, 56, 39,164, 65, 45,195, 90, 45,119, 96, 44,118, 0,123,113,140,106,187,168, 38, 24,
-105,171,145,134,146,196,162,112, 25,153,132,150,152, 19,241,100,206,152, 60, 93, 16,202,162,101,140,198,230, 15, 62, 16, 66,195,
-164, 89, 99,107, 91,104, 84,172, 88,235, 19,139,185, 37,227,229,146,140,196,165,153,162,158,182, 8,243,156,112, 10,107,211, 41,
- 77,183,133,115,137,120, 50, 35, 59, 79, 46,142,210, 47,200, 2,231, 78,111,115,237,240,132,174,157, 67,132,197,226, 8,141, 61,
- 65, 18,219,219,235,164, 18,184,124,208,211,118, 66,183,189,206, 65,191,224,206,155, 60, 79,188,116,192,119, 46,116,108, 78,166,
- 76,215,166,192, 26,243, 62,210, 5,136, 49, 51,235,149, 66,195, 48, 14, 76, 99,207, 94, 26,185,244,242, 43, 4,177,221,155, 44,
- 71,240,117,191, 62,166,154, 88,165, 16, 83,177, 2,174, 20,156, 23,198,108, 36,238,148, 10,109,104, 57,127,246, 12,199, 7,187,
-204, 82,228,213,107,115,251,206,151,218,152, 26, 82,161, 41,178,121,243, 77, 28,143, 22, 38, 51, 27, 35,163, 42, 12, 25, 45, 61,
- 55,221,124,158, 59,111,127, 29, 87,119, 31, 35,161,164, 98,123,233,116, 60,227, 56,101, 66,235,217, 59,200, 56,124,245,169,123,
- 67,192, 6, 79, 19, 2,210,128, 23, 71, 83,139, 85, 17,135, 11, 74, 19,214,104,187,142,245,117, 75,214,202,197, 89, 3,160, 70,
- 2,196, 89,124,113, 30, 97, 24,123,118,179, 5, 9,149,122,198, 89,183,111,161, 66,243,126, 48,204,103,195, 42,187, 60,231,196,
-235,239,188,137,201,173,119,242,201, 71, 46,129,247,248, 96,214, 69, 45,145, 28, 35, 81,107,242,163,195,192, 53, 67,178,221,104,
- 29,243,218, 90,187,176, 62,157,176,190,117,154,221,163, 35, 22,199,115,218,174,179,144,169, 18,107,198, 67, 33,198, 68, 89, 40,
-151,119, 95,230,252,186,231,157,111,189,135,103, 95,187,206,222,238, 33,222, 5, 94,187,182,207,250,230, 22,235,155,107,164,222,
-222,203, 33, 47,207, 72, 35,192, 81, 5,184, 70,149, 84, 74,172, 57, 22,197, 82,225,132, 96,204, 15, 12,214,227,196,190,207, 80,
- 71,233,198,156,151,234,118,168,129, 47,234,200, 88,134,130,221,110,118,209,185, 96,232, 88, 81,211, 62,136,145,116,235, 88, 56,
-115,223,125,247,115,247,221,247,112,241,181,215,120,253, 27,222,192,238,238, 46,187,215,174,211,184, 80,201,115, 22,150,146, 85,
- 44,248,200,153,211,201,132,153, 22,211,235,234,209, 85,170,202, 60,137, 53, 63,174, 10, 75,151, 43, 4, 99, 0,212,130, 70, 61,
-120, 69,115,180,194,196, 55,248, 80, 41,111,106,159,149, 56, 71,176,228,148, 85, 60,175,199, 66,177,140, 29, 99, 35,240, 66,182,
-200,223,140,221,119, 82,144,108, 93,114,165,242,212, 20, 60, 75,149,211,213, 42, 34,219,133, 95, 60, 37,165,250, 44,100, 10,158,
-126, 24,248,201,159,252, 41, 30,125,248,107, 44,134,158,135, 30,122, 39,143, 62,252,112,253,217,236,207, 49,203, 26, 20, 21,180,
-152,117,153, 84, 40,234, 32,217,133,174,149, 54,151,197, 33,178,132,207,104, 54, 36, 99,137,228,100,209,153,182,211,178,252,242,
- 34,190, 2,247, 11,170, 9,209, 84,147,177, 20,145, 84, 35,242,172,139,186,118,233, 10,187,123,123, 60,244,192, 3,188,243,161,
-183, 51, 95,204, 57,222, 63, 96,118,124, 68, 63, 44, 72,113,176,220, 89,160,109, 91,238,186,227, 14,126,244, 71,255, 10,223,255,
-190,247,242,212, 83, 79,241,123,191,247,123, 28, 31, 29,225, 36,215,177,238, 95,194, 17, 82, 42, 89,206, 50,218,114,182, 46,108,
- 25,228, 96, 79,130,137,218,188,154,242,176, 84,138, 82,169,151, 21, 36, 75,131,210, 12, 57,145,114, 36,141,145, 82, 34, 37,217,
-200,180, 20, 27, 65,167, 20,137,201, 96, 20,185, 36, 82,178,112,132,226, 20, 73, 86,237,149, 85, 96, 65,245, 72,103, 19,227,149,
-229,150, 69,133,205,205, 13, 30,120,224,109,220,121,199,157,156, 63,127,158,182,109, 57, 57, 62,230,241, 39,159,226,211,159,249,
-119,204, 78,102,150,238,163,166, 46, 86,177,253,159,115,134,154,245,206,194, 27,166, 19, 79,167,202,108,232, 25,146, 18,199,116,
- 67,124, 24,130, 81,195, 44,128,142,148,139, 85,153, 18,200,178, 44,101,108, 71, 21,151, 64,150, 6,114, 49,236,160,237,212,133,
- 6,139,143, 76, 44, 81,135,246, 50,249,234,133,181,147,192,212,170, 75, 3,131,203, 24, 73,138, 66,146,140, 95,238,213, 68,240,
-174,224, 67, 13, 99,240,206, 58,251, 12,177,152, 78,162,104,253,188,138,161,105,113,169,218,152, 28,100,235, 50,236,128, 87, 38,
-193,225,157,210,122,139,186,164, 20,124, 3,105,176, 75, 68,181, 64, 40,184,224, 44,158, 80, 66, 13,225, 80, 98, 78, 12,125, 61,
- 12, 20,146,102,226, 80, 83,203,196, 49,142,153, 49,103, 98,137, 12, 37, 18,135,204,162, 6, 17,205,213,145,100, 2, 77, 67,211,
-173,209,180,129,166,105,209,100,137, 74,227,220, 50,199,211,220, 58,225, 20, 19,195,208, 51,164,132,211, 6,215, 4,186,181, 41,
-107,237,132,245, 83, 83, 54, 78,109,112,211,198, 41,110, 62,179,205,153,115, 55,113,238,244, 14, 59, 27, 83, 38, 19,143, 15,129,
-221,253, 3,130,203,124,232,157,111,226,141,119,191,129,249,209, 1, 63,254,177,247, 50, 92,187,204,159, 61,246, 28, 71,139,158,
-121, 63,112,178, 56,230,120,255, 10,235,235, 83, 74, 81,174, 94,191, 78, 26,122,212, 57, 58,239,153,141,137,197,162,167, 13,134,
- 38,237, 99,170, 60,111,199,250,218,148,113, 76,156,204, 23, 43,222, 67,170,125, 79,240,142, 24, 45,213, 48,180, 29,235, 91,167,
-217,218,220,194,251,150,105,211,114,180, 24, 8,161,225,142,243,183, 24,207, 90, 43,224,196, 65,219, 77, 57, 56,216, 55, 98, 22,
-118,169,228,152,105,188, 99,182,152,115,199,237,175,195, 55,142,215, 46, 95,198,187,150,224,132, 88, 18,165, 40,247,222,121, 27,
-155,107,167,104,189, 29,214, 99,202,164,164,228,152, 57,158, 45, 24,230, 35,139, 69,228,120,214, 51,155, 47,152,207,122,102,125,
-166,143,153,249, 98,228,120, 54, 50, 68,203, 35,207, 89, 9,211, 0,222,211,248,134,181,181,142,201,250,148,126,140, 92,185,118,
-221, 46, 78,107, 62, 45,213, 49, 70,198, 56,146, 83,186, 33, 6, 78,133,148, 35,109,104,240,211, 53,154, 2,151, 95,189,204,201,
- 98, 32,165,140,212, 51, 97,140,177, 90,208,178,113,218,155, 96,246,201, 58,222,103,133, 18, 17, 3, 84, 53,129,156, 51, 41, 39,
- 54,183,118, 8,237, 58,173, 55,200,209, 56, 46,208,170, 95,138,185,208, 72,225,221,111,187,131,231,175,143,188,244,202,101, 84,
- 11,135,179,200,124, 88,176,185,185, 65,211, 76,141,203,209,180, 21,176,228,113, 62, 16, 92, 13, 83,169,204,118,170,112, 13, 45,
-148,164,164,146, 13,220,147,108,162,212,247, 61,195, 56, 50,140, 35, 41, 69, 82,142,140,217,194,168,170,180,217, 98,184,193, 58,
- 78, 49,162,168,175, 9,112,130, 84,240,141, 93,112, 43,157,131,111,248,246,183,191,141, 15,129, 16, 60,151, 46, 95,225,223,254,
-209, 31, 16,156, 35, 99,185,235, 78,188, 37,211, 84,184,153,229,187,151,165, 12,106,185,189, 54,209,152,106, 77, 25,180,142,151,
- 98,207,157, 53,163, 21, 48, 36, 14, 13,102,127, 20,181,133,115,193,253,165, 41,130, 21,182, 37, 44, 87,135,213,107, 45,238, 70,
-192,151,150, 85, 3, 73, 73,213,230,173,171,212, 82, 8, 32, 25,239, 27,123,107,178,233,167,138,228,106, 95,118,166, 57,195,168,
-123,214,198, 27,220,196,176,181, 66, 26, 71,158,122,234, 73,118,206,152,138,255,209, 71, 31,225, 27,143,125,211,156, 65,106, 26,
-166, 32,212,226, 99, 73, 1, 46,245,162,247, 72,205, 71, 8,178,156,215,152, 34, 57,172, 62, 48,181, 15,198, 90,125,181,110, 79,
-147,237,132,178,146,171,101, 76,213,146,186, 92, 77,164, 81,231,208,108, 73, 52,134,151, 21,190,254,248, 55, 89, 44, 22,124,228,
- 7, 63,204,223,248,201,191,198,213,247, 95,229,185,239, 60,199,107,151, 46, 49, 95, 44, 12,143,122,250, 12,175,123,221, 93,220,
-123,239, 61,244,195,192,167, 63,253,105,190,240,197, 47, 50, 91,204, 42,252, 5, 99,237,122,251,162, 52,143,198,249,118,161,246,
-231,246,226,185, 92,234,120, 45, 65,118,203,160, 75,146, 55,202, 78,112,118,169,121, 49,255,183,136,167,241,150, 62,151,213, 68,
- 50,118,145, 75,229, 35, 23, 27,213,177, 12,181,177, 75, 65,130, 67,164,173,169,117,133,168, 32,218,224, 72, 68,117,148,232, 80,
-146, 61, 96,201, 0,253,174,190, 84,175, 93,124,145,223,250,205,127,197, 45,231,110,161,233, 58, 74, 74,134,182,125,233,101,226,
- 48,226, 40, 38,252,241,142, 16,108, 50, 96, 17,128,106, 32, 1, 85, 27, 37, 97,217,231,167,212,252,194, 75,218, 16, 4, 24,172,
-194,239,139,218,136, 56, 56,130,115,184, 92,127,239, 70,144,182, 65, 83, 66,138, 71, 66,203, 48,244,182,147,169,130, 62, 31, 60,
- 52, 19, 66,202,224,109,247,218, 5, 79, 22, 40, 73,201,222, 87,138,149, 85,175,173,216, 52, 32, 73, 65,178, 99,226, 76,228, 33,
-177,128,175,137,127,217, 20,201,206, 57, 98, 1,201, 22,107, 88, 4, 27,159,103,139,194, 20, 47,150, 88,172,138, 43,217,214, 42,
- 57,163, 65, 56,165, 13,222,155,112, 10,177, 12,231, 16, 38, 20,236, 2,157,182, 13,125, 46,104,141,140, 28,139, 9, 16, 83,142,
-168, 11,120,241,140, 57,162,161,208,228,209, 30,127,245,136,120,139,232, 45,163,101, 70, 39,235,148,154, 38, 27,178, 17,161, 31,
- 7, 92,219,144,199,253,218,213, 4, 51, 21,138,195,139,210,117,107, 76,252, 26, 74,164, 65, 25,171, 5, 97,200, 35,154, 28,201,
-247,184, 49, 80,230, 61,235,211, 6,137, 45, 40, 76, 39, 83,124,231,105, 82, 33,172,175,177,179,179, 97, 57, 52,197,113,251,173,
-215,144, 28, 9, 27,231,120,244,185,215,120,251, 27,206, 18,110,186,151,123,222,250, 38, 62,120,112,192, 35,223,218,101, 60,137,
-204,139,141, 5,103,243, 97, 5,108,242,141, 69,253,206, 98, 98, 72,182, 83,183,180, 57,243, 62, 47, 83,180,114, 44, 12,217,252,
-235, 27,235, 19, 74,202, 12,201, 10,228,190,207,117, 74, 38, 12, 25,246, 15, 14,145,177,183,119,240, 47,229, 73,159,191,227, 54,
-214,143, 35, 71,179, 30, 87, 50,154, 70,174, 29,236,219,187, 85,156, 69,134,170,208, 4, 43, 26,218,181, 53,174,238,238,178,181,
-125, 43,139,241,105,134,225,144,147,166,173,209,178, 35, 39,125,207,249, 91,110,102, 51, 77,201, 57,115,114,220, 83, 52, 87,140,
-169, 39,165,196, 24, 19, 99, 74, 80, 50, 67,138,228, 69, 98,177,160,146,231,140, 99,222, 56,193, 59,187, 68,138, 23, 58,111,118,
- 82,215, 52,148,148,184,253,166, 77,250, 49,162, 57,179,232, 19,147,214,115,254,236, 54,195,152,185,184,123,204, 56,142,156,221,
- 62,197,144, 11,141,131,233,218, 58, 47,188,118,196, 15, 62,120, 43,247,255,220,123,249,231,255,250, 97, 94,189,116, 64,104, 3,
-185,228, 90,148,234, 42,186, 52, 38,115,227,196,104, 65, 40,203, 20, 48,169,211,131,156,237,119, 16,148, 16, 90,134, 33,213, 84,
- 81, 95, 71,200, 70,255,163,192,238,225,156,188, 24,184,247,174,115, 60,243,237, 87,217,153, 58,102,139,136,142, 17, 71, 65,130,
- 71,146,226, 92,139,115,137,182,113,164,148,200, 58,226, 75, 13, 46, 41,197, 98,168, 83, 34,250,196, 72,196,101, 67, 48, 47, 29,
- 5,133, 66,142,145,164,150, 17,174, 88,183,187,108,168, 28, 14, 95, 65, 62, 62, 44,215,111, 53,243,161,118,198,224,240,106, 74,
-110,149,202, 94, 37,179, 56,153,241,240,215,190,102,194,117,236, 25,211,124, 99,194,107,105,140,203,252, 8,136,162,248,202, 75,
-137, 53,171, 51, 87,138,154, 83, 87, 83,231,196, 92, 63,222,213,113,184, 84,174,109,205,149,205, 66, 40,150,101, 18,176,207, 53,
- 21,187,183,156,138,157,239, 25,154,170, 71, 64, 26,156,119, 53,131,192, 33, 53, 69, 77,202,141,221,185, 22,203, 14,240,217,184,
- 6, 34,142,156, 77,108,233, 66, 32, 21, 3,182, 21,117, 55, 26,224,250,179,149, 98,211, 7,239, 92, 77,186,203,168, 10,187,123,
-123,124,249, 75, 95,172,207, 8,171,207,212, 83,117, 81, 22, 45,103,133,143,104,101,222, 11, 69,150, 89,244,165,226,112, 45,114,
- 55,102, 37,200, 50, 40, 71,151,245, 88,205,130,150,202,207,213, 82,189,159, 38, 36,177,250, 59,160, 75,148,108, 42,164,101,182,
-175,111, 42,159, 29,158,121,230, 89, 94,121,245, 50,111,125,219, 91,249,174,251,222,196, 91,191,251,109,188,235,123,222, 85, 71,
-128, 6, 67,216,221,223,227, 75,127,246, 23,124,243, 27,223,228,229,151, 95, 54, 65,137,111,237,187,201, 70,185, 43,213, 31,111,
-113,194, 30,209,132,214, 17,141,212, 49,141,101,221, 86,112,255, 82,212,166,177, 70, 46, 56,163,102,105, 94,229,223, 22,108,244,
-110,242,116,243,100, 87,108,143,253,142,206, 70, 58,182,139,182,184, 69,213,130, 74, 29,169,137,117,174, 86, 65,153, 77, 76, 28,
-104, 50,182,176,175, 80, 7, 21, 71,168,158,254,239, 92,120,149, 23, 94,120,181,202, 43,172,255,205,174,198, 7,171, 67, 66, 67,
-206,150,192,211, 96,221,139,115,134,119, 20, 41,182,191, 77,118,209, 56,239,144,198,173,114,120,131, 24, 73,171,235, 60, 37,154,
-202, 61,147,136,125, 38,121, 43,190,130, 4,208,249,106,164, 9,182, 11,109,170,167,159,166, 88,213,173, 25,117,198, 39,182,135,
-200, 42,223, 92,148,113,136, 4,169, 34, 73, 41,168,247,120,133, 44, 5, 87,149,213,102, 3,242,118,145,139,133, 22,168, 4, 19,
- 45,134, 2, 93, 64, 7,179,246,164,154, 55,143,100, 59, 72,100, 41,192,179,226,138,250,242,143,174, 64, 18, 22,121,196, 74,172,
- 76, 97,249,130, 26, 65, 48,143,121,101,133, 50, 4, 92, 93,179,208,163,193,175,246,140,206,129,208, 0,189, 65,137, 84,241,109,
-107,224, 36,132,160, 14,151,148,210, 58,202, 88, 40,193, 98, 15,115, 54, 86, 66, 76,163,117, 37, 62,161,193, 51,246, 51,116, 20,
-154, 78,232, 19,136,179, 46,169,145,137,177,181,131,117,153,228,129, 97, 1, 37,137,145,237,162, 39, 28, 11,146,205,146,162, 37,
-210, 77, 59,166,147, 83,156,190,229, 13,248, 73,226,165,221, 5,254, 96,228,197,139,135,148, 79, 62, 69,233, 7,154,211,119,243,
-208, 59,238,164,164,196, 98, 49,210, 15, 35,135, 71,115, 78,230, 51, 54,215, 54, 45,137,202,219, 14, 50,199,194,152,178,237, 69,
- 75,198,239,116, 12,243, 57,139, 49,114, 60,159,145, 74, 97, 28, 19,235,231,207,160,146,153, 95,185,102,137,141, 2,227,152,105,
- 26, 79, 30, 22,116,174,144,181, 97,210,118,156,140,209, 38, 24,105, 36,116,167,209,217, 62,253,241, 53, 3,214, 56, 49,171,161,
- 78,140,106,166,217,220, 25,216,225,220,105, 97,152,159,176,190,182,193,153,157,211, 28,238, 95,163,196, 30, 39, 66,163,153,197,
-201, 9, 99, 60, 3, 18,104,155,192,230,150,103,172,156,255,206, 7, 70,181,162, 36, 21, 69,114,102,136, 35, 89,197,172, 99, 49,
-210,167,108,185, 7,177, 48, 14, 61,139,222,214,134, 7,117, 18,225,131,163,233, 60,147,233, 6,211, 46,211, 56,152, 12,137,245,
-245,142,115,183,157,231,120, 62,114,249,248, 5, 38,204,184,243,238,187, 57,158, 39,142, 15,118, 17,231, 56,153,245, 92,158,195,
- 27,238,191,155,243,183,189,192,229,235,135, 28,204,102,102, 83, 91,145,228,140, 0,182, 44,158, 82,201, 43,109,146, 33,218, 5,
-215,216, 89,146,114, 50,222,119, 50,141,143, 43,134, 0,182, 84, 66, 97, 24, 35,136,114, 56,139, 92,221, 61,226,141,119,220,201,
-230,230,105,214,166,129,228,231,140,243, 99,200,133,182, 13, 36,201, 56,201, 20,169, 73,100, 21,140,229,155, 96,107,136,172, 68,
- 95, 40,157, 18, 82,102,210, 22,178, 70, 98,170, 32,173,146,145, 49,217,245, 80,187,203, 92, 50,213, 79,101,128, 44, 50, 37,217,
-148,103, 28,204, 18,236,124, 91,133,176,149, 19, 18, 92,181,120, 86, 31,184,247, 86, 0,215,212,187,214, 45, 61,239,141, 89, 96,
-197, 35,132,202, 66,169, 93,104,213,221,148, 98,200,213,160, 30,135,146, 70,179,194,226,155,106,196, 42, 72, 19,240,165, 54, 18,
-181,131, 85,231, 41, 37, 35,185, 50,223, 67, 61,203,171,216, 27, 7, 69,146,137,208, 74,229,249,123, 27,241,151, 82,109,125,197,
-104,163, 86,146, 44,173,146,102,213, 43,163,105, 40,150,145,171,246,179,214,110, 90,106, 71,111,177,117,214,140,138, 1,181,156,
-152, 80, 85,197, 10, 59,167,174, 14, 26, 76,148, 90, 84,170,104,216,192, 99, 53,152,174,126,250, 74,170, 56,103, 39,161, 94,135,
- 10, 37, 82, 28,100, 95,239,167,108,211, 98,185,245,174,215,107,168,217,173,127,249, 82,151, 21, 60,190,254,211,215,170, 69,106,
-165, 83, 47, 27,117, 38,152,113,185,218,226,124,168,224,251, 90, 73, 52,178,242, 0, 90,138,206, 96,179, 1, 87,167, 65, 42,118,
-144,135,250, 0,170, 84, 58, 91, 50, 37, 41,138,211,108,185,227,174,146,190, 42,218,209,156,247,106, 62, 65, 49,194, 78, 17,173,
-106,193,229,229,233, 33,184,154,154, 84,247,248, 56, 92,227,241, 44, 61,212, 38,206,146,154, 84, 87,220, 18,161,111,227, 51,253,
- 75, 52, 92, 42,124, 95,234,223, 89, 10, 20,103,151, 55, 90, 11, 15, 92, 21,121, 8,222, 99,227,126, 17,139,231,196, 40,109, 5,
-173, 66,186,106, 37,245,117,100,163,197,252,167,185,218, 36, 92,221,247, 20, 37,166,140,115, 1, 23,150,190,104, 5, 23,144,162,
- 4, 20,223,154,218, 86,139, 89, 55,116, 41,102, 84,136, 99, 49,106,157, 52,248, 54, 88, 92,168, 20,186,214,219, 30,203,190, 61,
-156, 91, 30, 68, 85,239,225, 42, 23, 59, 69,203, 53, 54,211, 45,193,133,154, 77,110, 55,158, 21, 51, 75,129, 94, 64,154, 96, 93,
-195, 56,146, 83, 77, 92,114, 88, 39, 25, 51, 41, 21,168,249,233,190,138,179,198,148,232,124, 75, 8,181,170,174, 62,220,101, 52,
-161,195,198,150,104, 49, 56, 16,169,218, 6, 77, 60, 21, 53,217,136,222,123,198,146,235,115, 42,148, 6, 72,118,201,225,165,250,
-150, 75, 21,236,153,141, 79, 48, 1, 31,106,223,143, 5, 22,213,124,226, 38,224, 39, 13,141, 90,209, 18, 87,207,101, 13,165, 78,
-245, 3, 35,145,179,226, 93,107,171, 10,169, 66,159, 96,218,135, 89, 78, 16,149, 56,206, 73,163, 29,134,237,250,132, 73, 55,197,
- 51,214, 14, 88,112,110,202,164, 85,114,116,248,137,157, 32,101, 24,232,186,134,136,217,150, 38,109, 11,173, 82,134, 68, 39,142,
-249, 98, 65, 26, 35, 49,101,142, 23, 11,226, 16,201, 89,233,135, 5,243,177,175,217,211,230, 64,136,243, 25,169, 12, 12, 99, 98,
- 28, 18,210,118,148,146, 24,102, 11,130,179, 80, 20, 85,104, 28,180,141,199,183, 13,235,211, 41,109,104, 56, 58,153,113,105,239,
- 0,135,240,192, 59,223,195,252,104,193,254,222,101, 66,211,130, 86,251,212, 56,167, 9,129,217, 48, 44,183,139,136,192,198,218,
- 41, 78,173,111,112,230,220, 77,236, 31, 70, 14,247,143,232, 26,161,159,237,177,232, 71,214,182,118, 56,123,122,135,180,236,140,
- 92,221,141, 22, 97,226, 21,239, 2, 81,133,198,217,228, 33,149, 72,232, 26,200, 70,110, 28,134,136,199,147,114,178, 17,114,178,
-223, 47,198,145, 82, 18,125,157, 94,140, 67, 50, 65,221, 95,210, 13,121,103,200,213,249,201, 49,235,157,103,231,236, 45,196,152,
-112, 57, 86,177, 89,161,233, 90,214,183, 55,144,172,188,118,121,151,253,107,215, 76,132, 25, 44,179,205,190,251, 58,209, 20, 42,
- 35,227, 6,211,163,113,194,250,198, 58, 93,219,209, 15,102,153, 19,215,144, 82,162,241,216,103, 47, 74,202, 6,186,138, 41,147,
- 83,225, 39,222,247,122, 62,240,161,239,229,127,254,245,175,113,249,226, 30,157, 79,136,142,220,124,211,205,132,233, 41,156,135,
- 92, 19,219, 98,206,214,169,213,164,180, 82,207, 14,154,137,129,113, 74, 38,212,240,158, 62,102,188,154,110, 34,141, 67,117,183,
-152,197,212,156, 1,182,123,214, 82,203,232,156, 43, 85, 94,204, 33, 85,125,228, 46, 4,211, 2, 57, 91,179, 73, 13, 4, 19,197,
-206, 89, 23, 16, 85,154,198, 89,180,178,232,242,180,193,230,214,216,221, 82,247,232,120,143,215,186, 50,117,178,194,140,248, 80,
-239,144,122, 38,160,149,108,234,128, 92, 79,253,128, 77, 86,181,173, 5, 66,169,157,178, 61, 75,193,155,204, 63,215, 49, 63,217,
-220, 95,174, 89,130,109, 12,229,139,207,164, 44,140,125,101,157,144,170, 56,116,137, 83,183,251, 98,105,239, 41, 26, 9, 98,100,
- 63,173, 46, 33, 89,222,167, 44,143,118,107,244, 86, 86,112,183,252,222,170, 27,162,148,202,137,177,255, 87, 46, 85,202,232,100,
-101,135,243, 78, 48,130,131,233, 16, 68,164,230,214, 91, 67,148,163, 18,212,249, 58,150,230,198, 72, 91,106, 10, 80, 77,116, 81,
-167,182,148,175, 91,134, 82,189,202,165, 72,229,196, 91,166, 45,197,188,161,150,139, 91,119, 31,169,142, 28,138,128,199,172, 78,
-171,196,122,243,120,139, 22, 52, 37,226,210, 65, 88, 61,122, 90, 76,148,224,196,225, 29, 53, 73,200,173,188,182, 57, 11, 18,236,
- 66, 75, 37,147,212,196, 5,190,118,176, 32,241, 14,215, 0, 0, 20,218, 73, 68, 65, 84,170,102, 91, 72,163,210, 4, 95,133, 20,
-118, 72,250, 10,111,201, 85, 8,129, 19,156, 47,164, 49, 87, 44,174,145,228, 68,177,174,175,122,237, 85,157, 9, 52,176,139, 76,
-107,167,173,248,234,215,180,177, 11,181, 42,213,100, 95,156, 15, 30,245, 6,135,113, 8,161, 13,213,254, 34,184,166, 37,136,121,
- 68,139,220,120,113,212,149,149, 87,183,100, 65,165,161, 46,178,172,115, 47, 66,227, 90,146, 12,140,165,224, 71, 95,185,211,213,
-188,235, 28, 89, 28, 65, 10,237,164,224,104,201, 37, 51,142, 35,226, 19,163, 58,198, 88,240,222, 91,150,178,100, 98, 86, 28,246,
-114,250,198,190,239,152, 0, 13,149, 84,151,104,171,101, 72,139,144, 83,182, 93, 24, 66,138,153,166,149,122, 88, 22,124, 18,146,
-250,154,107,156,109,191,156,204,238,179,156,254,100, 50,190,109,173, 11,160,144, 72,164, 44,171,140,223,166,117,164, 40, 53,250,
-180, 88, 39, 29, 60, 18,132, 60,212,151, 42,216,157,218, 73,139, 15,118,160, 65,187, 66,175,122,231,208, 46, 83,178, 85,255,144,
- 44,153,216, 11, 78, 58, 59,100,178,229,178,143,234,136, 57,209,144, 81, 95,208,228,209, 52,214,200, 92,143, 27, 29,190, 49, 33,
- 86,206,133, 0,148, 46, 88,170, 93, 82, 92, 87,133, 66, 41,131,247,166,194, 12,182, 90,240,185, 33, 74,162, 9, 45,154, 34,222,
-123,114, 82,198, 52, 48,105, 91,196,101,130, 19,202, 56, 16, 51,100, 39,140,243, 26, 73, 89, 50,115,205,134,149,205,137,147,124,
- 2,141,189,204, 27,107, 45, 41, 9,139,152,153, 78, 58,110, 93,155,210,199,200, 52, 76,160, 17,250,197, 17,215,119, 71,250, 52,
-152,206,226,212,142,137,141,134, 72,210,196,152, 19,113, 54, 99, 46,158,197, 98,198, 48, 24, 98,181, 93, 91,227,230,115,183,115,
-112,184, 15, 89,137, 26,233,115,166, 20,232,218,134, 50, 63, 97,126,114, 76, 44, 35,121, 76,230,154, 41,133,105, 19,240, 65,232,
-146, 67, 74,166, 79,133, 16, 60,195, 48, 48,157, 78,137,243, 57, 27,107,107,204, 22, 83,252,244, 20,253,193,117, 78,250, 57,131,
-102,206,159,221, 97, 18,106, 52,101, 42,117,173, 2,189, 42, 90,162,113, 20, 80, 82,170, 19,179,122,226, 59,231, 80,231, 73, 5,
-218, 73, 71,147,215, 76, 9,189, 97,205, 65, 83,109, 64, 57,103,163, 48,166,145, 62,141, 44,134, 66, 31, 45,109, 48, 70,152,208,
- 49,198,204,213, 75, 23, 1, 8,161, 49,231,136,115,104, 63,114,112,112,204,100,210, 17,164,112,122,103,157,146, 51,167,166, 19,
-230,163,114,120,116, 72,206,229, 70,183,236,106, 36,180, 80,207, 75,165,159,155, 99, 38,139,224,125, 75,137, 61, 94,148,132,161,
-182,189,247,248,188, 84, 57,103,156, 40,143, 62,183,199,173,119, 94,226, 3,111,217,230, 79,246,175,176,123,216,179,179, 57,193,
-183,141,133,224, 20,143, 72,131,232,136, 83, 35,179,133,224, 24,115, 66,147,160, 65,113,165,135, 88,181, 2, 1,138,120, 66,168,
-215,131, 40,205,100, 98, 90,169,170, 5, 16, 45,164,202, 3,208,146,108,236,171,182, 99,207, 37,211,148,101,180,104,237,176,221,
-178,145, 74,230, 74, 72,182, 46,213,104,211, 84,231, 60,131,247,136,243,184,198,156, 84,109,229,225, 75, 48, 86,135,137,132, 13,
-122,102,205, 82, 37,212,228,100,147,204, 98,103,212, 18, 97,236, 48, 53,187, 57,126, 12, 91, 46,165, 16,154, 64, 82,243,111, 75,
- 49,166,138,136,161,174, 71,117,248, 2,197, 27,168, 39, 87, 45,150,195,206,216, 54,216, 5,171,209,190, 47,231,129,100,211,166,
- 82,177,164,190,170,223,139,164, 21, 70,221, 9, 53, 22,216, 44,125, 86,184, 88,118, 61, 85,120,238,185, 49,189,241, 53,230, 60,
-217, 56,192, 86, 41, 42,104,109,100,140,164,104,154,162,198,172, 8, 21,180, 6, 69,204,129, 36, 62,212, 96,181, 42, 88, 14,166,
-216, 15,140,182, 39,147,154,219,237,151,163,118,150,221,250, 13, 24, 11,222, 33,206,118, 56,185,254,165,169,142, 73,197,137,141,
- 54,165, 80,138, 91,229,245,106,162,178,189,125,253, 96, 44,204,194, 42,100,227,165, 11,201,210,236,188,171,212,165,140, 86,225,
-147,137, 12,156,237, 89,168,149,236, 56, 2, 38,220, 42,152, 24,194,173,194,101,170,192,219,217,216, 29, 41,120, 53,234, 90, 42,
-224,130, 93,146,146, 87,155,249, 42,104, 83, 52, 91, 16,196,234,119,174,213,149,212,208,190, 37,167, 33, 47, 35, 10, 75,169,161,
- 18, 86,108,100, 92, 13, 10,169,147, 12, 23,106,177, 96,163, 93,173, 81,155,182, 19,113, 52, 82,137, 89,154, 80,103,157,127,240,
-214,121,151, 80, 39, 29, 90,193,184,173, 77, 72,164, 20,171, 52,179, 7,151,137,154,204,251, 45,166, 54,117, 94,170,162,211, 17,
-213, 44, 25, 62, 56,188, 56,178, 4,124, 72,172, 5, 75, 79, 11, 57, 87,186,159,169,197, 29, 82,137, 92, 85, 69, 89, 28, 42,137,
- 98, 99, 24, 20,165, 9, 16, 90, 33,101,131, 75, 4,103, 15,113, 66,160,238,210, 74, 81,114, 31,173, 67, 17, 87, 33, 80,222, 86,
- 17,154,160, 56, 74, 20,156, 87,219,105, 97,207, 85, 8,185,162,126, 5, 52,145, 84,144, 12,193, 9,169,216,224, 93,189,181,246,
-185,140,203,122,182, 82,166, 4,200, 70,167,243,172, 80,157,193,217,222, 51,151, 82,213,179, 74,201,208,250, 14,215, 20, 84, 35,
-154,237,192, 80, 6, 50, 82, 87, 52, 86,108, 74, 80,164, 20,210,201, 64,108,172, 35,241,189,137,235, 18,153, 17, 59,124,130, 19,
- 91,101, 8, 12,149, 15, 32,174, 62, 7,125,193,235, 82,203,106,227, 54,157,180, 53, 47,217,148,180, 57,101, 74,227, 25,227, 2,
- 34,182,163,246, 86,164,206,147,121,228,139, 43,117, 82,210,217, 94, 51, 37, 74, 54,100,165, 43, 86,224, 30,159, 44,104,138, 35,
- 4, 97, 22,204,154,227,101,139,230, 84, 15, 57,144,138,167,164, 1,141, 16, 93, 66, 93, 98,130,194,218, 6, 59, 56,250,249, 17,
-243,217, 49, 49,143, 12, 99,228,234,238, 53, 90,103,246,156,101,241, 45,128, 15,129,131,227, 19,139,149, 77, 17,239,132,214, 57,
-214, 26, 79,104,108,239,217,116,158, 56, 42, 62,219,206, 89,196,178, 11, 22,253,192,233,141,211,184,114,204,236,228,184,118,182,
-142,237,181,134, 51, 59, 19,198,193,186,185,226,133,109, 87, 8, 69, 25,164, 49, 43,162, 90,186, 89, 78,150,196, 22,139, 89, 82,
-155,154,105,144, 99, 33, 82, 44,231, 94, 60,206,181,164,104, 35,121, 23, 60,234, 45,197,208,249,204,154,179, 73, 79, 78,150,133,
-222,224, 24,116, 36,245, 61,177, 31, 76,104,216, 47, 88, 44, 70,134, 33,146,115,102, 44, 54,154,110, 66, 75,104,167, 21, 66, 19,
-216,156, 40,211,206,213, 96, 24,179,202,197,148, 41,185,112,211,214, 58, 27, 91,155, 38,198, 28, 7,114, 44,244, 57,211,231,129,
-152, 18,234,171,234, 27,101, 77, 28,190,109,136,189, 21,146,147,182, 97,127, 46,252,217,195, 23,248,165,191,243, 30,222,247,238,
-187,249,103,255,226, 79,121,101,247,152,201, 36,160,174, 37,141, 22, 30, 80,162,173, 2, 27,241, 20,245,102, 37,245, 90, 85,226,
- 80, 58,129,209,242, 61,172,241,177,243, 71,156, 66, 22, 27, 56,133,134, 16, 2, 13,129, 84,215,152, 90,179, 34,164,158, 21, 41,
-231, 26, 73, 91, 89, 11,197,166,138, 49,219,229,239,150, 81,113,197,138,123, 19, 98,214,118, 80, 19, 37,143,100,129, 40,174,142,
-176,221,202,126,103,147,222,132,215, 96,196, 82,176,148, 61, 49, 81, 93,201,102,111,148, 32,117, 36,109, 83, 22, 19,197, 89,195,
-153,170,205,218, 73, 38,105,192,167, 92, 1,102,101,165,122,103, 57, 53, 13,118,239,217, 57, 14,131, 42,196,100,147,219, 96, 8,
- 92,231,151, 77,162, 77,210, 74, 37, 29,221, 16,221,107, 69,125,187,122, 83, 20, 84,109,218, 96,218, 4,197,235, 82, 60,103,218,
-143, 92,245,105,230,216,180,201,216, 82,223, 32,170, 6,224, 18, 59,215,199, 74, 95, 21,196,166,210, 90, 12, 23, 87,106,209, 18,
-108, 69,234,235, 42, 58,168,115, 43, 78,175,253,189,193, 46,142, 37,128,160,142,196,109,143, 80,208, 98,227, 57,138,189, 56, 22,
-104, 86,187, 93,150,225, 47, 55, 18,223,108,199,238,173,219,207,185, 6,187,152,210, 89,150, 57,176,206,118, 57, 82, 74,197,227,
- 53,248,106,109, 2,235,210,195,114,140,231,189,125,105,174, 1,239,104,196,118,169, 13, 14, 41,150, 73,171,181,114,211,165,226,
-187,142,249,197, 87,105,248,242,139,173, 1,243,170, 3,174,216,101,109,202,115, 27, 11,175,226, 20,139,174, 60,251,213,201,129,
- 52,245,178,119,185,142,130, 50, 74,180, 15,222,155, 38, 65, 42, 99, 89,235,192,189,134, 60, 91,192, 10, 53, 98,216, 43,141,107,
-112, 65,107,183,234, 73,106, 66, 45,219, 75, 47,173,106,246,194,153, 72,211, 4, 60, 90,108,221, 80, 92, 64,146,174, 46, 85,177,
-254, 23,241, 66, 88, 74, 31, 86,168,222,101,161, 96, 21,179,132, 66,147, 29,177,220, 32,193,213,111,145,152, 76,241, 90,212, 94,
- 98,231, 2, 67, 46,196,190,106,233,157,167,109,140, 63,223,134, 58,102, 19,101,158, 99,205, 9,142, 20, 53, 60,108, 78, 54,250,
- 45, 1,178, 88, 53, 47,201, 84,233,173, 56,130,179,233,136, 3, 82, 99,197,128,170, 35,101, 64,172,232, 19,231,236, 80, 80,143,
- 87, 71,104,160, 79,222,112,214,212,195, 73, 51,181,196, 51, 62,187, 75,104, 91,253,202, 57, 35,193,227, 52,153, 37,179,215,250,
-121, 26,206,115, 57, 85,113, 54,207,195, 5, 27, 9,118,117, 39, 95,162,109,202, 18, 66, 95, 82,133,217, 22, 68, 38,181,131,177,
-117,143,185, 36, 44,128, 65,124,180, 92,250,122,128, 52, 98,128, 15,169,163,124,231, 3, 49, 25,108, 37, 21,177,159, 81, 32, 69,
-203,151, 75, 14, 75,249, 43,138, 47, 25, 72,168, 38,242,208, 51, 38, 27, 13,138,179,130,217,103, 37, 21, 27, 45,186,193, 83,242,
-220,118,173, 62,152, 8,177, 20, 28, 35, 37, 37,138, 6,186, 16,112, 14, 22,197,138, 70,145,192,186, 59,195,198,198, 22,125, 74,
-104, 73,204,143, 79,200,121, 96, 49, 38,154,198, 44,113, 33,120,154,166, 97,119,111,159,146, 35,107, 19,207,180, 11, 56, 23,152,
- 54,134, 15,238, 99,180,206,211, 53,244,140,148,108,130,165,147,217,156,166, 13,156, 46,145, 46,100,118,175,237,161, 57,146, 83,
-100,251,220, 89,242,116,131,227,217, 49, 82, 10,147, 83, 29,167, 78,173,161,163,167, 35, 49,245, 29,147,105,192,183,230, 60, 48,
-113, 78, 65,218, 27, 19,190, 54,192, 34,141,228,226, 9,210,144,211, 64, 44,153,152, 70, 14,143, 70,102, 39, 61, 89, 6, 83, 31,
-139, 88,167,164, 14, 45, 29,237,116, 74,167,137,245, 86, 9, 59, 21,104, 83,122,114,206,184,177, 48,166,129,163,249,156, 49,142,
-164, 81, 25,198,194, 34, 42,195, 48, 34,206,130,101,156,111,152,116,245,204,114, 66, 19,132,157,205,117,214, 54,183,141,213,144,
-147,173,130, 74,230,181,235,251,188,122,241,114,205, 66, 55,209, 85,159, 19,231,207,238,208, 53, 13,254,100,206,250,198, 26,184,
-142, 75,215,103, 92,218, 61,225, 99, 63,246,195, 76,166,103,249,213,223,250, 12,126,109, 27,130, 97,136, 83, 52, 38,125, 63,212,
-192, 44, 95,136,163, 81, 29, 93, 41,118,102,131,141,106,197,200,103,193,153, 31,223,139,173, 11,125,181,136,165,229,184, 91,108,
- 28,236, 93,107, 93,179,128,102, 71,231,212, 44,199,226,173,123,198, 4,213,169,138,198,180,234, 57,146, 38, 52, 89,215,169,229,
-198,170,211, 50,202, 21,239,205,103,190, 28,235,199, 58,163,196,153,239, 93,106,144, 86,211, 52,248, 58,177,117,174,174,171,181,
-216, 90, 75,151,219,109, 59, 95, 69, 28, 41, 69, 60, 66,235, 61,189, 83, 19, 86,146,113, 14,123, 14,107, 48,153,138,224, 83, 5,
- 25,137,253,254, 36,147, 90,107,168,171,225,148,140, 91, 47,206,254,101,245,236, 21,234, 36,184,152,232, 78,156, 71,178,153,213,
- 20,200,110,233, 16,178,105, 67, 34,155,194, 31, 76, 20,156, 11,161,166,129,170,203, 21,119,108,200,113,245, 5,141, 84,151,145,
- 53, 52,174, 10,216,109, 53, 90,181, 75,181,121, 21, 49,209, 97,201, 74, 44, 66,112,222,219,151,206,242,206, 17, 59,144,196,164,
-136,141,171, 96, 2,164, 86,100, 74,241,213, 61, 86, 71, 48,203, 93,115,169, 99,124, 17,103, 59, 98, 48,181, 56,106,225,240, 62,
- 84, 68,171, 17,162, 76, 25, 10, 46,203,202,211,237,138, 61, 88,136,172, 38, 6, 78,188,137,176, 82,164, 36,235,222,139,100,139,
- 66, 21,197,249,182, 94,210,163, 65,245,157, 9,234,156,247,148,100,129, 46,234, 66,197,214, 22, 84,171,253,161,140,171, 15, 74,
- 5,188,214,191,119, 73,238,169,251, 17,113,174, 90,206,212, 10, 25,139, 37,178,162,197,217,129,175,130,137,252,178,214,220, 98,
-181,214, 25,251,115,156, 15, 22, 85, 95, 59,254,152, 11,174, 30,192, 89,160, 75,178, 74, 14,203,154, 8,141,162, 99,162, 56, 83,
- 56, 23,103,179, 14,201, 2,161,179, 18, 86, 70,252,210,168,214, 77,237,191, 43, 6, 67,132, 10, 71, 17, 99,147, 91, 88,200,136,
-250,174, 38,234,217, 37,228,162,146, 27,236,146,213,106,231,145,108,104,215,108, 99, 39, 45, 22,185, 26, 28, 44,162, 34, 4, 26,
- 47,149,210,103,133, 93, 87,195, 22,114,174,221, 48,174,114,246,141,100, 21,196,108, 70, 41,103,196, 57,218,224, 45,238,180,113,
-248, 42,114,201, 20, 82,117,121,122, 49,113, 74, 94,238,177,188,160,161,144,146, 64, 95, 40, 19, 79,118,130,247,169,170, 78, 13,
-164,227,196,236,108, 77,129, 62, 23,154, 44,166, 90, 87,207, 88, 76, 84,168,222,226, 70,157,218, 37,232,156,224, 75,160, 31, 19,
-184,140,248, 14,209, 6, 29, 51, 89, 50,243, 26,214, 48,169, 95,244, 64, 66,188, 71,179, 89,233, 82, 28, 43,183,188, 37,248, 2,
-154,241, 98,130, 46, 84,151,225,137, 22, 38, 82,113,204, 82,215, 56,185,134,249, 40, 2,121,180,233, 78,201,132, 73,160,100,208,
- 92,192, 5,130, 55, 76,177,211, 14,193,124,201,217,165,154,232,149,136, 37, 18,199, 66, 86, 99, 68,219,123, 87,104, 90,155,164,
-180,106,164,200, 28, 99,157, 90,100, 22, 37, 17,124,174, 26, 12,111,154,139,152,106,202,157,233, 53,214,167,155,140,100, 72,166,
-121,216,222, 57,197,154, 70,242,152, 88,156,156,172,222,167,152, 96,218, 65,170, 19,211, 18, 51, 49,143,108,174, 79,201, 76, 57,
-153,205,107, 17,108,237,215, 56,140,248,110,194,209,252, 21, 58,151,241,206,115,120,148, 89, 60,119, 17,209, 76, 27, 2, 71,253,
-130,227,131, 14,130,195, 75,166, 33, 32,141,199,139,195,133, 22, 21, 97,125,179, 65,143, 76, 33, 15,129, 38, 52, 8, 13,126, 18,
-200,162, 16, 90,156, 10, 27,205,148,172, 61,161,157,226,137, 38,190, 74, 74, 31,163, 41,135,221,210, 82, 90, 61,238,146, 76,172,
- 25, 54,112,161,176, 54, 41,180, 34,132,110,100,109,205,132,167, 7,253,192,222,254, 17, 99, 63,162, 37, 17, 75,102, 28,109,247,
-154, 82,102, 28, 51,197,195, 65,127, 76,184, 62,199, 53,129,105,219,178,189, 97,163,243,145,166,198,185, 42,222, 43, 94,140, 27,
-191,125,243,237, 28,204, 18,177, 92, 67, 37,160, 41,211,199,196,167,191,250, 52,119,190,245, 33,238,125,224, 1,254,122, 9,124,
-226, 83, 79, 33, 26, 57,115,182, 53, 97, 89,201,140,243,194, 32,145,152, 51,101,176,243, 56,151, 76, 42,144, 98,164,100, 71,198,
- 87,125, 14,140,217,147,179, 48,105,237,188, 78,117,215,219, 56, 76,215,226, 12, 2, 84, 74,229, 24,212, 65,154,111,166, 6, 84,
-201, 74,240, 22, 93,236, 75,107,235, 72, 64,187,140,138, 90, 92,183, 26,178, 54, 39,227, 6,148,100,142,129, 36, 74,201, 54,161,
- 80,205, 72,177, 28, 15, 91, 85,216,236, 92,213, 49, 46,236,210,247,193, 86,156, 46,217, 10,215, 55, 2,165,193, 73,194,183, 54,
-213,243,171,148, 15,123,215, 68,151, 22, 50, 3, 6, 57, 64, 74, 38,136, 77, 7, 20,197, 21,143,115,230, 14,177,181,137, 61,196,
- 6,228, 89,250,192,235,185, 46,230,148, 50,113,191, 86,139,122,205,195,168,235,100,239, 60, 78, 13, 72, 43,150, 79,100, 66,242,
-154, 75, 82, 42,126, 47,166,186, 79,207, 22,241, 45, 78, 8, 89,136,165, 78, 15,140,194, 98, 66,218, 26,160, 33, 85, 57,239,196,
-217,228,118,185,230,175,211,229,214, 9,114,238,246, 55,104,235,116,165,212,179, 29,144, 86,168,124,133,151, 84, 10,142, 23,219,
-111,228, 85, 74, 89,174,119,191,175, 54, 33, 27,125,218, 31, 83, 42, 76,224, 70,231,110,210,124, 27,203,216, 46,195,155, 32, 75,
-179,153,235,169, 10, 64,155, 35,152,117,209, 9, 90, 71,240,138, 89,209,124, 17, 8,222, 14,122,172,251,137,209,168, 82,246,225,
-218, 65,105, 30,119,169,254, 71, 95,139,143,234,232,211,202,224, 93,238,112,212,118, 88,158,170,160, 22,187, 40,114,205,132, 19,
-105,240, 90,139,154,229,128, 94,108,164, 98,202,247, 37, 88,160,170,251, 5,235, 62, 75,169, 75, 95, 91, 39,248,101,141,229,188,
- 61, 52,206,255,255, 77,157, 75,139, 37, 69, 16,133, 79, 68,100,214,189,211,190, 6,231,225,204,232,128, 8, 34,184, 18,183,238,
-252,213,254, 1,119,110,213,133, 8,186, 17,193,141,142, 76,223,170,138,204, 8, 23, 39,170,218, 85, 67,211,208,175,170,204,120,
-156,243, 29, 10,166,160, 24,226, 53, 94, 21, 38, 20, 73, 98, 14,175,157, 84, 71,111, 2,175,127,174,246,165,252,138,173,148,249,
-220, 17, 29,213,247,169, 78,146,194, 14, 6, 5,100, 83, 38,105, 88, 9,184, 68, 41, 80, 75, 35, 1, 7,172, 65, 66,216, 37,198,
-118, 78, 23,178,188,145, 49,202,174, 82,104, 88,105,165, 32, 69,199,242,168, 67,179, 35,125, 32, 45, 17, 42, 72, 95, 57,109, 17,
-218,243,182,122,150,186, 4, 55, 36,141, 68, 59, 40,199, 87, 57,248, 51,183, 54,234, 91, 43,181,142, 98, 64, 36, 54,103, 72,202,
- 16,238,160,150, 43, 93, 26,126,207,203, 98,233,236, 36,229,216,109,178,109, 97, 21, 95, 79, 46,145,152, 15,200, 98, 53, 57,115,
- 14,124, 4,102, 52, 64,137, 7,102, 65,211, 8,223,176,134,244, 32,121,203, 26, 36, 43, 20, 99, 80,254,216,170, 27,154, 57,177,
- 40,213,190, 3, 2,100, 67,196, 64,107, 70,142,128, 4,154, 49,101, 44,102, 98, 42, 99, 68,187, 5, 38, 40, 42,186,154,192, 35,
-152,197, 93,194,192, 24, 65, 4,170,112, 38, 52, 51, 96, 40,154,151, 37,196,147,190,233, 57,128, 14, 10,196, 60, 79, 34,149, 4,
-139,117, 15,118, 37,164,193, 49, 50,118,228,113,152,213,187, 32,129, 17, 43, 26, 26,139,128,224,251, 12,229,247, 9,163,240,210,
- 55,199,182,222, 48, 99,167,214, 98,225,225, 57,198,196, 85, 3,210, 30,225,182, 15,228,220,185,178,177,134, 23, 47,158,226,238,
-238, 49,166, 7,110,111,254,196,239,127,252,133,155, 3, 47,158,127,132, 71,239,189, 3, 76,197,229,218,145,166,144, 80, 44,166,
-208, 46, 88,132,129, 62,189, 84,214,210, 13,125,161,200,113, 1, 69,141,104, 64, 95,174,184,235,244,105,239,201, 78, 85, 67,177,
- 23,175, 32,125, 69,107,236,250,210,121,102,141, 57,207,206,175, 13,224, 30, 0,116,192, 60,225, 30,240,216,145, 38,167,182, 72,
- 77,177, 99,208,159,126,227,185, 36, 25,240,233,136, 16, 12, 15,108,251,141, 35,247, 49,176,110, 43, 54,103,104, 78,235,132,170,
-220,223,110,216,239,111, 96,201,108,104, 6, 60,254,224,125, 92,222,125,138,125,191,135, 97,240,153, 58,210,234, 0, 60,121,249,
- 2, 95,126,241, 26,159,125,250, 10, 63,253,252, 27,222,252,253, 15,150, 75,103,170,226,164,173, 43,149, 30,248,136, 64, 95, 26,
-238,218, 35,160, 37,214,109,197, 92,189, 4,135, 59,223, 53,101,179, 54,157, 92,122,215, 6,247, 1, 76,131, 87, 81, 46,214, 49,
-247,114,163,244, 36,179, 36,146,145, 55, 66, 33, 93,231, 6, 25, 30, 44, 8, 99,140, 18, 45,179, 25,202,242,200,107,146,111,130,
- 3,104, 22,156, 94,248, 44, 97,116, 4, 11,131, 18,101, 19,106, 83,196,184, 26,211,103,204, 83,175, 64,191,248, 65,158,235, 21,
-112,194,102,139,206, 37,173, 0, 50,186, 11,154,150,230, 38,153,209, 17,189, 82,252,146,202,243, 17, 15, 65, 42, 25,138,136, 9,
- 45, 40,137,227, 32,144, 22, 42,191,108,175,162,198,162, 82,178,142,220,226,229, 43,155,165,204,242,150,151,123,152, 22,248, 26,
-233, 11, 67,106,172,160, 69, 25, 65,187,175, 82,220,141, 6,152, 20, 1,180, 36,224,113, 82, 71, 42,122, 91,128,156, 92,127,165,
- 0,242,252,245,103,217, 15,212, 30,180,186,204,146,106, 41, 21,229,140, 48, 52,138,204,216, 62,148, 23,139, 63,136,150,111, 48,
-165, 2, 35,106,212,130,164,245, 65,114,224, 48,124, 20,194,134, 31, 75, 68, 32,101, 91, 35, 30,190, 50,144, 85,207,172,117,126,
-221,177,219,160,226, 93, 0,132,105,197,208, 81,201, 42,162,116, 97, 24, 71,238,166, 28, 65, 31,126, 75, 42, 39,216,165, 74,240,
- 79,147,149,156,131,170,122,154, 54, 70, 78,202, 1,224,121,200,244,157, 17, 36,157, 85, 42, 78,166,210,210,102,117, 83,228,172,
- 24, 79,150, 10,140,205, 27,188,116,149, 42,109,148,173, 65,117,129, 40, 9, 68,170,244,182,241,240,101,241, 65,155, 28,125,166,
- 99, 38,154,118,168, 82, 16,168, 10,160, 53,216, 89,229, 38,250,113,241,218,133,157, 97, 58,125,225,194,106, 53,208,208,154, 34,
-125,175, 64, 70,197,144, 9,193, 66, 15,111,173, 36, 18, 29,211, 55,168, 68,177,180,219,131, 24,228,172, 20, 5, 37,241,168,169,
- 5, 47, 75, 51,131,161,115, 12, 39, 2,109, 87,104, 4, 34,189, 38, 65,220, 97, 91, 85,153,138,168,152, 92,242, 13, 22, 89, 32,
-145,216,146, 43, 25, 65,226,178, 24,124,196,233,141,190, 52,190,176, 35, 2, 22,137,222, 13, 35, 20, 57,248, 91,181, 14,126,110,
- 70,173,126, 88, 56,101, 38, 53, 24, 57, 41,104,116,190, 8,158,252,123,170, 52,104, 35,169,110, 34, 49,149,207,242,184,119,116,
-105,240,218,133, 55, 17,116, 3,246, 16,180, 34,235, 29,129, 33,237, 16, 9, 5, 57,250,172,191, 72, 78, 51,101, 58,215, 28, 19,
-150, 64,191,112,188, 56,182,193,181, 73, 5, 78,112, 4, 42, 20,125,166, 66, 26, 57,250, 45, 73,181,226,122,108, 47,251, 17,159,
- 25,170, 99,121, 96, 70, 18, 92,132,166,152,251,198, 78, 41,152,225,189,198, 10,137,138,107,172,125,107,179, 14,157, 66, 30,120,
- 30, 43, 48,250,172,103,240,125, 60,231, 82,166, 76, 1, 27, 1, 91, 20, 97,128,140,192,186, 13, 24, 38,145,186, 49, 32, 50, 17,
-131,100, 51, 31, 94, 72,105,224,237,253,142,102, 13,159,188,122,205, 93,110,118,124,251,205, 87,248,245,151, 31,241,221,247, 63,
-224,195,103, 31,227,114,119, 69, 14,170,166, 69, 5, 54, 19,166, 29, 48, 66,113, 76, 27,236,194,194,185, 47, 68,159,154, 24, 46,
- 11, 17,182, 98,156,234,221, 93, 47,212,128,216, 21, 88, 58,252,237,134,136,149, 16,146, 69,208, 50,176, 72, 98, 15, 67, 88,194,
- 60,177,152,226,182, 79,226,178,141,221,105, 43,245,122,143, 6, 55, 94,202,195, 57, 65,139,160, 16, 48,110,117,248,254,239, 98,
- 72,153, 24,251,138, 8, 96, 12, 96, 93,223, 98,250,196,190, 77,184,111,248,119,223, 24,219,234,142,183,235, 13,155, 15, 54, 21,
-203, 21, 51, 8, 29,233,151,142,222, 13, 10,171, 9, 90, 98,236,142,125, 50, 64,234,235,207, 95,226,201,211,103, 12, 21,154,206,
-204,251,203, 5,161, 19,195, 3,178, 57, 90, 87, 76, 91, 48, 66, 17,219, 14,228, 32, 67,220, 12,195, 3, 41,137, 46,197,198, 7,
- 65, 99,185, 57,167, 77,197, 83,245, 32,142, 84, 58, 67,181,124,212,121, 39,134, 61,192, 20, 64, 34,213,224,147,194,186, 0,233,
-117, 82,209,161, 82,241, 48, 86,205,222, 60, 8,165,117,246, 11,120,121, 19, 75, 59,153,107, 49,179,168,160,147,133, 56, 33, 21,
-149,246, 29,213,107,242,121,214, 0,208,137,133,205,164, 83,202, 14,135,185,234,185,186,109,198,119, 88, 68, 79, 49,114, 36, 96,
- 89,120,107, 86,229,216,133,151,242,220,198,131,147, 73,170,161, 19, 54, 5, 40,235,154,158, 1,101,165,164,175,112, 45,137, 35,
-222,249, 48,106,101, 53,181, 21, 13, 94, 93,182,130,139,243, 84,174,142,219, 65,116, 85, 78,141,180, 26, 66, 20, 13, 50,148,239,
- 2,202,153,149, 73,180,114, 72, 32,162,225, 63,143, 52,168,208, 66, 34,213,237, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/startup.blend.c b/source/blender/editors/datafiles/startup.blend.c
deleted file mode 100644
index 7337ab8c4e9..00000000000
--- a/source/blender/editors/datafiles/startup.blend.c
+++ /dev/null
@@ -1,11871 +0,0 @@
-/* DataToC output of file <startup_blend> */
-
-int datatoc_startup_blend_size = 379676;
-char datatoc_startup_blend[] = {
- 66, 76, 69, 78, 68, 69, 82, 45,118, 50, 54, 51, 82, 69, 78, 68, 72, 0, 0, 0,144,195,255,255,255,127, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 76, 79, 66, 48, 4, 0, 0,160,191,255,255,255,127, 0, 0,
-218, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 56, 8, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1,184,100,201, 4, 0, 0, 0, 0,
- 40, 92,222, 4, 0, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 0, 0, 88, 1, 0, 0,
-248,149,200, 4, 0, 0, 0, 0,154, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 77, 87,105,110, 77, 97,110, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152,151,200, 4, 0, 0, 0, 0,152,151,200, 4, 0, 0, 0, 0,152,151,200, 4, 0, 0, 0, 0,
-152,151,200, 4, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8,240,133, 3, 0, 0, 0, 0, 88,214,133, 3, 0, 0, 0, 0, 8,240,133, 3, 0, 0, 0, 0,
-136, 69,133, 3, 0, 0, 0, 0, 88,214,133, 3, 0, 0, 0, 0,216, 42,133, 3, 0, 0, 0, 0,216, 42,133, 3, 0, 0, 0, 0,
-216, 42,133, 3, 0, 0, 0, 0, 68, 65, 84, 65, 0, 1, 0, 0,152,151,200, 4, 0, 0, 0, 0,155, 1, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 2,134, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-184,100,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 1, 0,126, 7,146, 4, 0, 0, 0, 0, 1, 0,238, 3,
- 0, 0, 0, 0, 1, 0, 0, 0, 40,135,149, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0,136,189,149, 3, 0, 0, 0, 0,248, 64,187, 4, 0, 0, 0, 0,248, 64,187, 4, 0, 0, 0, 0,
- 8,155,149, 3, 0, 0, 0, 0,104,153,149, 3, 0, 0, 0, 0, 56, 68,133, 3, 0, 0, 0, 0, 56,154,149, 3, 0, 0, 0, 0,
- 88, 37,106, 3, 0, 0, 0, 0, 8,247,180, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 78, 0, 0, 8, 1, 0, 0,232,152,200, 4, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 56,248,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 65,110,105,109, 97,116,
-105,111,110, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,247,186, 4, 0, 0, 0, 0, 72,157,200, 4, 0, 0, 0, 0,
-184,157,200, 4, 0, 0, 0, 0,248,169,200, 4, 0, 0, 0, 0,104,170,200, 4, 0, 0, 0, 0,104,238,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 8,247,186, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136, 44,186, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-136, 44,186, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,112,149, 3, 0, 0, 0, 0, 8,247,186, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,112,149, 3, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,104, 25,189, 4, 0, 0, 0, 0,136, 44,186, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 4,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 25,189, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 56, 84,186, 4, 0, 0, 0, 0, 56,112,149, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 56, 84,186, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8, 87,187, 4, 0, 0, 0, 0,
-104, 25,189, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 8, 87,187, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,164,188, 4, 0, 0, 0, 0, 56, 84,186, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,164,188, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,216,112,189, 4, 0, 0, 0, 0, 8, 87,187, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 24, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,112,189, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 40,221,188, 4, 0, 0, 0, 0,232,164,188, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4,195, 2, 1, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 40,221,188, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,136,140, 3, 0, 0, 0, 0,
-216,112,189, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 60, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 8,136,140, 3, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,154,200, 4, 0, 0, 0, 0, 40,221,188, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 60, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,154,200, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,168,154,200, 4, 0, 0, 0, 0, 8,136,140, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 88, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,154,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 24,155,200, 4, 0, 0, 0, 0, 56,154,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 88, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 24,155,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,155,200, 4, 0, 0, 0, 0,
-168,154,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 88, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-136,155,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,248,155,200, 4, 0, 0, 0, 0, 24,155,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,192, 1,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,155,200, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,104,156,200, 4, 0, 0, 0, 0,136,155,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,156,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-216,156,200, 4, 0, 0, 0, 0,248,155,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 4, 1, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,216,156,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 72,157,200, 4, 0, 0, 0, 0,
-104,156,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4, 60, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 72,157,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,156,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 60, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,157,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 40,158,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,112,149, 3, 0, 0, 0, 0,
-136, 44,186, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,158,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,152,158,200, 4, 0, 0, 0, 0,184,157,200, 4, 0, 0, 0, 0,136, 44,186, 4, 0, 0, 0, 0,
- 56, 84,186, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,158,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 8,159,200, 4, 0, 0, 0, 0, 40,158,200, 4, 0, 0, 0, 0, 56,112,149, 3, 0, 0, 0, 0,
- 8, 87,187, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,159,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,120,159,200, 4, 0, 0, 0, 0,152,158,200, 4, 0, 0, 0, 0, 56, 84,186, 4, 0, 0, 0, 0,
- 8, 87,187, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,159,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,232,159,200, 4, 0, 0, 0, 0, 8,159,200, 4, 0, 0, 0, 0, 8,247,186, 4, 0, 0, 0, 0,
-232,164,188, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,159,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 88,160,200, 4, 0, 0, 0, 0,120,159,200, 4, 0, 0, 0, 0,232,164,188, 4, 0, 0, 0, 0,
-104, 25,189, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,160,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,200,160,200, 4, 0, 0, 0, 0,232,159,200, 4, 0, 0, 0, 0, 8, 87,187, 4, 0, 0, 0, 0,
-216,112,189, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,160,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 56,161,200, 4, 0, 0, 0, 0, 88,160,200, 4, 0, 0, 0, 0,232,164,188, 4, 0, 0, 0, 0,
- 40,221,188, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,161,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,168,161,200, 4, 0, 0, 0, 0,200,160,200, 4, 0, 0, 0, 0, 8,136,140, 3, 0, 0, 0, 0,
-104, 25,189, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,161,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 24,162,200, 4, 0, 0, 0, 0, 56,161,200, 4, 0, 0, 0, 0, 8,136,140, 3, 0, 0, 0, 0,
- 40,221,188, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,162,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,136,162,200, 4, 0, 0, 0, 0,168,161,200, 4, 0, 0, 0, 0, 8,247,186, 4, 0, 0, 0, 0,
- 56,154,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,162,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,248,162,200, 4, 0, 0, 0, 0, 24,162,200, 4, 0, 0, 0, 0,216,112,189, 4, 0, 0, 0, 0,
-168,154,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,162,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,104,163,200, 4, 0, 0, 0, 0,136,162,200, 4, 0, 0, 0, 0,232,164,188, 4, 0, 0, 0, 0,
-168,154,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,163,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,216,163,200, 4, 0, 0, 0, 0,248,162,200, 4, 0, 0, 0, 0, 56,154,200, 4, 0, 0, 0, 0,
-168,154,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,163,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 72,164,200, 4, 0, 0, 0, 0,104,163,200, 4, 0, 0, 0, 0, 56,154,200, 4, 0, 0, 0, 0,
- 24,155,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,164,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,184,164,200, 4, 0, 0, 0, 0,216,163,200, 4, 0, 0, 0, 0,168,154,200, 4, 0, 0, 0, 0,
- 24,155,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,164,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 40,165,200, 4, 0, 0, 0, 0, 72,164,200, 4, 0, 0, 0, 0, 56, 84,186, 4, 0, 0, 0, 0,
-136,155,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,165,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,152,165,200, 4, 0, 0, 0, 0,184,164,200, 4, 0, 0, 0, 0,216,112,189, 4, 0, 0, 0, 0,
-136,155,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,165,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 8,166,200, 4, 0, 0, 0, 0, 40,165,200, 4, 0, 0, 0, 0, 24,155,200, 4, 0, 0, 0, 0,
-136,155,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,166,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,120,166,200, 4, 0, 0, 0, 0,152,165,200, 4, 0, 0, 0, 0, 56,154,200, 4, 0, 0, 0, 0,
-248,155,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,166,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,232,166,200, 4, 0, 0, 0, 0, 8,166,200, 4, 0, 0, 0, 0, 24,155,200, 4, 0, 0, 0, 0,
-104,156,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,166,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 88,167,200, 4, 0, 0, 0, 0,120,166,200, 4, 0, 0, 0, 0,248,155,200, 4, 0, 0, 0, 0,
-104,156,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88,167,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,200,167,200, 4, 0, 0, 0, 0,232,166,200, 4, 0, 0, 0, 0, 40,221,188, 4, 0, 0, 0, 0,
-216,156,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,167,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 56,168,200, 4, 0, 0, 0, 0, 88,167,200, 4, 0, 0, 0, 0,216,112,189, 4, 0, 0, 0, 0,
-216,156,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,168,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,168,168,200, 4, 0, 0, 0, 0,200,167,200, 4, 0, 0, 0, 0, 8, 87,187, 4, 0, 0, 0, 0,
- 72,157,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168,168,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 24,169,200, 4, 0, 0, 0, 0, 56,168,200, 4, 0, 0, 0, 0, 8,136,140, 3, 0, 0, 0, 0,
- 72,157,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24,169,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,136,169,200, 4, 0, 0, 0, 0,168,168,200, 4, 0, 0, 0, 0,216,156,200, 4, 0, 0, 0, 0,
- 72,157,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,169,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0,248,169,200, 4, 0, 0, 0, 0, 24,169,200, 4, 0, 0, 0, 0, 56, 84,186, 4, 0, 0, 0, 0,
-248,155,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,169,200, 4, 0, 0, 0, 0,
-214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,169,200, 4, 0, 0, 0, 0,136,155,200, 4, 0, 0, 0, 0,
-104,156,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,170,200, 4, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 56,174,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 84,186, 4, 0, 0, 0, 0,
-136, 44,186, 4, 0, 0, 0, 0, 56,112,149, 3, 0, 0, 0, 0, 8, 87,187, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,222, 2, 0, 0, 7, 7,241, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,168,247,200, 4, 0, 0, 0, 0,168,247,200, 4, 0, 0, 0, 0, 88,171,200, 4, 0, 0, 0, 0,
-200,172,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,171,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-200,172,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,148, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,221, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,172,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88,171,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0,
- 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3,
- 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0,222, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 56,174,200, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
-200,198,200, 4, 0, 0, 0, 0,104,170,200, 4, 0, 0, 0, 0,232,164,188, 4, 0, 0, 0, 0, 40,221,188, 4, 0, 0, 0, 0,
- 8,136,140, 3, 0, 0, 0, 0,104, 25,189, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0,
- 0, 0, 0, 0, 59, 1, 0, 0, 4, 4,216, 0, 60, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136,197,200, 4, 0, 0, 0, 0,136,197,200, 4, 0, 0, 0, 0, 40,175,200, 4, 0, 0, 0, 0,152,176,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 40,175,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,152,176,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65, 98, 39, 38, 54, 0, 0, 88, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 87, 67, 0, 0,200, 65,
- 0, 0, 87, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,216, 0,
- 26, 0,216, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0,
- 34, 1, 0, 0, 59, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 26, 0, 0, 0, 1, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,152,176,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,175,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 67, 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 71, 67,
- 1, 0,145,195, 0, 0, 0, 0,199, 0, 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 62, 1, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,216, 0,
- 34, 1,199, 0, 34, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 4, 0, 0,240, 4, 0, 0,
- 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 34, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,178,200, 4, 0, 0, 0, 0,232,195,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 8,178,200, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168,179,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95,
- 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95,
- 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,199, 0, 36, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,179,200, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 72,181,200, 4, 0, 0, 0, 0, 8,178,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,199, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 72,181,200, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232,182,200, 4, 0, 0, 0, 0,
-168,179,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,199, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,182,200, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0,136,184,200, 4, 0, 0, 0, 0, 72,181,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,199, 0,203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,136,184,200, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 40,186,200, 4, 0, 0, 0, 0,
-232,182,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105,
- 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,199, 0, 58, 0,
- 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,186,200, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0,200,187,200, 4, 0, 0, 0, 0,136,184,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254,199, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,200,187,200, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104,189,200, 4, 0, 0, 0, 0,
- 40,186,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254,199, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,189,200, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 8,191,200, 4, 0, 0, 0, 0,200,187,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 8,191,200, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168,192,200, 4, 0, 0, 0, 0,
-104,189,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111,
- 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253,199, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,192,200, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 72,194,200, 4, 0, 0, 0, 0, 8,191,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253,199, 0, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 72,194,200, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232,195,200, 4, 0, 0, 0, 0,
-168,192,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253,199, 0,130, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,195,200, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,194,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253,199, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,136,197,200, 4, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,200,198,200, 4, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,184,203,200, 4, 0, 0, 0, 0, 56,174,200, 4, 0, 0, 0, 0, 8,247,186, 4, 0, 0, 0, 0,
- 56,154,200, 4, 0, 0, 0, 0,168,154,200, 4, 0, 0, 0, 0,232,164,188, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 15, 15, 24, 4, 88, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152,202,200, 4, 0, 0, 0, 0,152,202,200, 4, 0, 0, 0, 0,184,199,200, 4, 0, 0, 0, 0,
- 40,201,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184,199,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 40,201,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 39,182,158, 55, 0, 0,131, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,224,130, 68, 0, 0,200, 65, 0,224,130, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 24, 4, 26, 0, 24, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 24, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,201,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,184,199,200, 4, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,
-112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 23, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 18, 0, 0, 0, 61, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2,
- 4, 0, 0, 4, 8, 0, 24, 4, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 23, 4, 0, 0, 26, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 24, 4, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,152,202,200, 4, 0, 0, 0, 0,185, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,203,200, 4, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 24,210,200, 4, 0, 0, 0, 0,200,198,200, 4, 0, 0, 0, 0, 40,221,188, 4, 0, 0, 0, 0,
-216,156,200, 4, 0, 0, 0, 0, 72,157,200, 4, 0, 0, 0, 0, 8,136,140, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 4, 0, 0,240, 4, 0, 0, 61, 1, 0, 0, 59, 2, 0, 0, 3, 3,216, 0,255, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,136,207,200, 4, 0, 0, 0, 0,136,207,200, 4, 0, 0, 0, 0,168,204,200, 4, 0, 0, 0, 0,
- 24,206,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,204,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 24,206,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65,
- 98, 39, 38, 54, 0, 0, 88, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0, 0, 87, 67, 0, 0,200, 65, 0, 0, 87, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0,216, 0, 26, 0,216, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 4, 0, 0,240, 4, 0, 0, 34, 2, 0, 0, 59, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-216, 0, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,206,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,168,204,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 71, 67, 0, 0, 83,195, 0, 0, 0, 0,199, 0, 0, 0,216, 0, 0, 0, 18, 0, 0, 0,228, 0, 0, 0,
- 0, 0, 0, 0,198, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,198, 0, 0, 0, 18, 0, 0, 0,228, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 2, 0, 0, 2, 0, 3, 3,
- 0, 0, 12, 4, 6, 0,216, 0,229, 0,199, 0,211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 4, 0, 0,240, 4, 0, 0, 61, 1, 0, 0, 33, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-216, 0,229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,136,207,200, 4, 0, 0, 0, 0,181, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,217,190, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,
-184,217,190, 4, 0, 0, 0, 0,238, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,232,208,200, 4, 0, 0, 0, 0,
- 68, 65, 84, 65,224, 0, 0, 0,232,208,200, 4, 0, 0, 0, 0,237, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 40, 92,222, 4, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 40, 92,222, 4, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,
- 40, 92,222, 4, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
- 8,118,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,127,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
-168,181,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,140,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
-248,162,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56,134,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
-168,113,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,216,120,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
-152,112,222, 4, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0, 40, 92,222, 4, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
- 24,210,200, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,168,223,200, 4, 0, 0, 0, 0,184,203,200, 4, 0, 0, 0, 0,
- 24,155,200, 4, 0, 0, 0, 0,136,155,200, 4, 0, 0, 0, 0,216,112,189, 4, 0, 0, 0, 0,168,154,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0, 89, 0, 0, 0,194, 2, 0, 0, 1, 1, 87, 2,106, 2, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,221,200, 4, 0, 0, 0, 0,248,221,200, 4, 0, 0, 0, 0,
- 8,211,200, 4, 0, 0, 0, 0,200,216,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,211,200, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,120,212,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 21, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 2, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 21, 68, 0, 0,200, 65, 0,128, 21, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 87, 2, 26, 0, 87, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0, 89, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 87, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,212,200, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,232,213,200, 4, 0, 0, 0, 0, 8,211,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,
- 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
- 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0,193, 1, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 80, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,213,200, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 88,215,200, 4, 0, 0, 0, 0,120,212,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67,
- 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
- 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0,193, 1, 0, 0,115, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,215,200, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,200,216,200, 4, 0, 0, 0, 0,232,213,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,
- 0,128, 96,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128, 96,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0,
- 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0,
- 18, 0, 0, 0,147, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,148, 3,163, 0,130, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, 0, 0, 23, 4, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,216,200, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,215,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,193, 1, 0, 0, 23, 4, 0, 0,115, 0, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 87, 2, 80, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56,218,200, 4, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0, 56,218,200, 4, 0, 0, 0, 0,
-175, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,167,141, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62,
- 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,142, 74, 70, 62,
-166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,164, 96, 68, 65,111,121,173,192,
-248,209,213, 64, 0, 0,128, 63,178,157,229, 62,209,162,227,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 13,114, 91, 62,
- 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,105,147,125, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,
- 9,185,108, 65,214,211,111, 65, 99,240,191, 62,110,116, 85, 63, 64,185, 70,188, 0, 0, 82,180, 48,221,185,190, 44, 45, 51, 62,
- 28, 11, 79, 63, 0, 0, 56,179, 67,108,117,194,183,204,216, 65,105,156, 5,194,212,247,159,192,235, 62,114, 66, 59,254,213,193,
-158,225, 3, 66, 55, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62,
- 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-214,211,111,193, 0, 0,128, 63,178,157,229, 62,209,162,227,190, 48,180, 81,191,184,158, 81,191,117, 90,127, 63, 13,114, 91, 62,
- 26, 63,185, 62, 35, 44,185, 62,145,180,109,188,105,147,125, 63,138, 84,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,
- 9,185,108, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,163, 91, 64,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,163, 91, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,214,211,111, 65,214,211,111, 65,
- 0, 0, 0, 0, 0, 0, 0, 0,236, 15, 72, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
-255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 32, 33, 12, 66,
- 86,152,137, 66,113, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,
-248,221,200, 4, 0, 0, 0, 0,176, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62,
- 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,216,120,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61,
- 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
- 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168,223,200, 4, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,152,231,200, 4, 0, 0, 0, 0, 24,210,200, 4, 0, 0, 0, 0, 56,154,200, 4, 0, 0, 0, 0,
-248,155,200, 4, 0, 0, 0, 0,104,156,200, 4, 0, 0, 0, 0, 24,155,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,191, 1, 0, 0, 89, 0, 0, 0, 3, 1, 0, 0, 2, 2,192, 1,171, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88,230,200, 4, 0, 0, 0, 0, 88,230,200, 4, 0, 0, 0, 0,152,224,200, 4, 0, 0, 0, 0,
-232,228,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,224,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 8,226,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 89, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,224, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,223, 67, 0, 0,200, 65, 0,128,223, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0,192, 1, 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,191, 1, 0, 0, 89, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-192, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,226,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-120,227,200, 4, 0, 0, 0, 0,152,224,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,254,194, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0,
- 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0, 2, 0, 3, 3,
- 0, 0, 0, 4, 6, 0,217, 0,145, 0,200, 0,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,216, 0, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-217, 0,145, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120,227,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-232,228,200, 4, 0, 0, 0, 0, 8,226,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-191, 1, 0, 0,191, 1, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,228,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,120,227,200, 4, 0, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192, 0, 0,160, 64,
- 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0,
- 18, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,230, 0, 0, 0, 18, 0, 0, 0,144, 0, 0, 0,
-111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4, 0, 0,231, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-217, 0, 0, 0,191, 1, 0, 0,115, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-231, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 88,230,200, 4, 0, 0, 0, 0,182, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152, 98,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0,152, 98,200, 4, 0, 0, 0, 0,
- 38, 1, 0, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
-152,231,200, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,104,238,200, 4, 0, 0, 0, 0,168,223,200, 4, 0, 0, 0, 0,
-248,155,200, 4, 0, 0, 0, 0, 56, 84,186, 4, 0, 0, 0, 0,136,155,200, 4, 0, 0, 0, 0,104,156,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 5, 1, 0, 0,194, 2, 0, 0, 12, 12,192, 1,190, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,236,200, 4, 0, 0, 0, 0,216,236,200, 4, 0, 0, 0, 0,
-136,232,200, 4, 0, 0, 0, 0,104,235,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,232,200, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,248,233,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 94, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,224, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,128,223, 67, 0, 0,200, 65, 0,128,223, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 1, 26, 0,192, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,191, 1, 0, 0, 5, 1, 0, 0, 30, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,192, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,233,200, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,104,235,200, 4, 0, 0, 0, 0,136,232,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 67,
- 0, 0, 0,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,201,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0,
- 18, 0, 0, 0,163, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,200, 0,164, 1,200, 0,146, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 31, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,200, 0,164, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,235,200, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,233,200, 4, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68,
- 0, 0, 72,194, 0, 0, 0, 0, 0, 0, 32,193, 0, 0,104, 68, 0, 0,201,195, 0, 0, 0, 0,231, 0, 0, 0,248, 0, 0, 0,
- 18, 0, 0, 0,163, 1, 0, 0, 0, 0, 0, 0,230, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,230, 0, 0, 0,
- 18, 0, 0, 0,163, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72, 0, 64, 28, 70, 10,215, 35, 60, 0, 0, 72, 66,
- 74, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 4, 4, 0,248, 0,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,200, 0, 0, 0,191, 1, 0, 0, 31, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,248, 0,164, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0,216,236,200, 4, 0, 0, 0, 0,
- 39, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,238,200, 4, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,231,200, 4, 0, 0, 0, 0,216,156,200, 4, 0, 0, 0, 0,
-216,112,189, 4, 0, 0, 0, 0, 8, 87,187, 4, 0, 0, 0, 0, 72,157,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 4, 0, 0,240, 4, 0, 0, 61, 2, 0, 0,194, 2, 0, 0, 1, 1,216, 0,134, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,248,245,200, 4, 0, 0, 0, 0,248,245,200, 4, 0, 0, 0, 0, 88,239,200, 4, 0, 0, 0, 0,
-200,240,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,239,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-200,240,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0,
- 0,128,164, 67, 0, 0,200, 65, 0,128,164, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 74, 1, 24, 0, 74, 1, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 4, 0, 0,240, 4, 0, 0, 61, 2, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,240,200, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88,239,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 4, 0, 0,240, 4, 0, 0, 61, 2, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-216, 0,134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 56,242,200, 4, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0, 56,242,200, 4, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0,
- 56,255, 13, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,100, 64, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 72, 1, 77,190, 0, 0, 0, 0,
-221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,
-192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193, 0, 0,128, 63,
-223,149, 47, 63, 55, 70, 58, 63,160, 56, 49,188, 0, 0, 0, 0, 88,126,162,190,229,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0,
- 7,165, 39, 63,150, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192, 78,255,170, 64, 0, 0,128, 63,
- 47,201,194, 63, 61, 73,145,191,244,250, 39,191, 8,165, 39,191,190,164,206, 63,209, 10,143, 63,180,164, 28, 63,149, 84, 28, 63,
-224,153,196,188,136,239, 76, 64, 10,108,228,190, 52,247,227,190,125, 21, 64,191,126,113,172,191,216, 49, 49, 65,152, 9, 52, 65,
-149, 70,158, 62, 24,234,167, 62,192,214,159,187, 0, 0, 6,181,196,188,181,189, 71,238,178, 61,127, 45,128, 62, 0, 0,226, 51,
-168,120, 21,194,107, 5, 2, 66,203,135,213,193,147,214,159,192,177, 38, 19, 66,124,173,255,193, 96,101,210, 65,128, 40,160, 64,
-221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,
-192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193, 0, 0,128, 63,
- 47,201,194, 63, 61, 73,145,191,244,250, 39,191, 8,165, 39,191,190,164,206, 63,209, 10,143, 63,180,164, 28, 63,149, 84, 28, 63,
-224,153,196,188,136,239, 76, 64, 10,108,228,190, 52,247,227,190,125, 21, 64,191,126,113,172,191,216, 49, 49, 65,152, 9, 52, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,102,103, 97, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
-241, 22, 72, 63, 78,162,246,190, 43, 8, 90,190, 2, 35,171,190, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-253,191,136, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 1, 2, 0, 0,255,255, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 0, 0, 0,128, 63,190,133, 65, 66, 99,212, 90, 66, 27,183,118, 66,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,248,245,200, 4, 0, 0, 0, 0,
-176, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 7, 0,216,120,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 2, 0, 0, 0, 1, 0, 3, 0, 8, 0,128, 0, 0, 0, 12, 66, 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0, 56,248,200, 4, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-184,100,201, 4, 0, 0, 0, 0,232,152,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 82, 67,111,109,112,111,115,105,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,249,200, 4, 0, 0, 0, 0,
- 56,255,200, 4, 0, 0, 0, 0,168,255,200, 4, 0, 0, 0, 0,216, 8,201, 4, 0, 0, 0, 0, 72, 9,201, 4, 0, 0, 0, 0,
-120, 61,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,249,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-248,249,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,248,249,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,250,200, 4, 0, 0, 0, 0,
-136,249,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-104,250,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,250,200, 4, 0, 0, 0, 0,248,249,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,250,200, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 72,251,200, 4, 0, 0, 0, 0,104,250,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,251,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-184,251,200, 4, 0, 0, 0, 0,216,250,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,184,251,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40,252,200, 4, 0, 0, 0, 0,
- 72,251,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 40,252,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,252,200, 4, 0, 0, 0, 0,184,251,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152,252,200, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 8,253,200, 4, 0, 0, 0, 0, 40,252,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-126, 7, 92, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,253,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-120,253,200, 4, 0, 0, 0, 0,152,252,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,234, 3, 1, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,120,253,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,253,200, 4, 0, 0, 0, 0,
- 8,253,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-232,253,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,254,200, 4, 0, 0, 0, 0,120,253,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 32, 6,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,254,200, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,200,254,200, 4, 0, 0, 0, 0,232,253,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 3,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,254,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 56,255,200, 4, 0, 0, 0, 0, 88,254,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 56,255,200, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,254,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-168,255,200, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24, 0,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-248,249,200, 4, 0, 0, 0, 0,104,250,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 24, 0,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136, 0,201, 4, 0, 0, 0, 0,168,255,200, 4, 0, 0, 0, 0,
-248,249,200, 4, 0, 0, 0, 0, 72,251,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-136, 0,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248, 0,201, 4, 0, 0, 0, 0, 24, 0,201, 4, 0, 0, 0, 0,
-104,250,200, 4, 0, 0, 0, 0,184,251,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-248, 0,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,104, 1,201, 4, 0, 0, 0, 0,136, 0,201, 4, 0, 0, 0, 0,
- 72,251,200, 4, 0, 0, 0, 0,184,251,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-104, 1,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 1,201, 4, 0, 0, 0, 0,248, 0,201, 4, 0, 0, 0, 0,
-216,250,200, 4, 0, 0, 0, 0,152,252,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-216, 1,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72, 2,201, 4, 0, 0, 0, 0,104, 1,201, 4, 0, 0, 0, 0,
- 40,252,200, 4, 0, 0, 0, 0,152,252,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 72, 2,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184, 2,201, 4, 0, 0, 0, 0,216, 1,201, 4, 0, 0, 0, 0,
-184,251,200, 4, 0, 0, 0, 0, 8,253,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-184, 2,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 40, 3,201, 4, 0, 0, 0, 0, 72, 2,201, 4, 0, 0, 0, 0,
- 72,251,200, 4, 0, 0, 0, 0, 8,253,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 40, 3,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152, 3,201, 4, 0, 0, 0, 0,184, 2,201, 4, 0, 0, 0, 0,
- 40,252,200, 4, 0, 0, 0, 0, 8,253,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-152, 3,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8, 4,201, 4, 0, 0, 0, 0, 40, 3,201, 4, 0, 0, 0, 0,
-184,251,200, 4, 0, 0, 0, 0,152,252,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 8, 4,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120, 4,201, 4, 0, 0, 0, 0,152, 3,201, 4, 0, 0, 0, 0,
- 72,251,200, 4, 0, 0, 0, 0,120,253,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-120, 4,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,232, 4,201, 4, 0, 0, 0, 0, 8, 4,201, 4, 0, 0, 0, 0,
- 8,253,200, 4, 0, 0, 0, 0,232,253,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-232, 4,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88, 5,201, 4, 0, 0, 0, 0,120, 4,201, 4, 0, 0, 0, 0,
-120,253,200, 4, 0, 0, 0, 0,232,253,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 88, 5,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200, 5,201, 4, 0, 0, 0, 0,232, 4,201, 4, 0, 0, 0, 0,
-120,253,200, 4, 0, 0, 0, 0, 88,254,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-200, 5,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56, 6,201, 4, 0, 0, 0, 0, 88, 5,201, 4, 0, 0, 0, 0,
-232,253,200, 4, 0, 0, 0, 0, 88,254,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 56, 6,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,168, 6,201, 4, 0, 0, 0, 0,200, 5,201, 4, 0, 0, 0, 0,
-136,249,200, 4, 0, 0, 0, 0,200,254,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-168, 6,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24, 7,201, 4, 0, 0, 0, 0, 56, 6,201, 4, 0, 0, 0, 0,
-200,254,200, 4, 0, 0, 0, 0, 56,255,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 24, 7,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136, 7,201, 4, 0, 0, 0, 0,168, 6,201, 4, 0, 0, 0, 0,
-216,250,200, 4, 0, 0, 0, 0, 56,255,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-136, 7,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248, 7,201, 4, 0, 0, 0, 0, 24, 7,201, 4, 0, 0, 0, 0,
- 40,252,200, 4, 0, 0, 0, 0, 56,255,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-248, 7,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,104, 8,201, 4, 0, 0, 0, 0,136, 7,201, 4, 0, 0, 0, 0,
- 88,254,200, 4, 0, 0, 0, 0,200,254,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-104, 8,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 8,201, 4, 0, 0, 0, 0,248, 7,201, 4, 0, 0, 0, 0,
-232,253,200, 4, 0, 0, 0, 0, 56,255,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-216, 8,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 8,201, 4, 0, 0, 0, 0,
-136,249,200, 4, 0, 0, 0, 0,120,253,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
- 72, 9,201, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 24, 13,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,251,200, 4, 0, 0, 0, 0,248,249,200, 4, 0, 0, 0, 0,104,250,200, 4, 0, 0, 0, 0,184,251,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,100,201, 4, 0, 0, 0, 0, 40,100,201, 4, 0, 0, 0, 0,
- 56, 10,201, 4, 0, 0, 0, 0,168, 11,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 10,201, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,168, 11,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 11,201, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 10,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69,
- 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0,
- 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0,
- 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 24, 13,201, 4, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 8, 18,201, 4, 0, 0, 0, 0, 72, 9,201, 4, 0, 0, 0, 0, 56,255,200, 4, 0, 0, 0, 0,
- 40,252,200, 4, 0, 0, 0, 0,152,252,200, 4, 0, 0, 0, 0,216,250,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 15, 15, 94, 1, 92, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,232, 16,201, 4, 0, 0, 0, 0,232, 16,201, 4, 0, 0, 0, 0, 8, 14,201, 4, 0, 0, 0, 0,
-120, 15,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 14,201, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-120, 15,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,115, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 94, 1, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 15,201, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 14,201, 4, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0, 0, 0, 72, 66,
- 50, 51, 74,193,154,209,131, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 18, 0, 0, 0, 65, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2,
- 4, 0, 0, 4, 8, 0, 94, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 6, 0, 0,126, 7, 0, 0, 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 94, 1, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,232, 16,201, 4, 0, 0, 0, 0,185, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8, 18,201, 4, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,152, 42,201, 4, 0, 0, 0, 0, 24, 13,201, 4, 0, 0, 0, 0, 40,252,200, 4, 0, 0, 0, 0,
- 8,253,200, 4, 0, 0, 0, 0,184,251,200, 4, 0, 0, 0, 0,152,252,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 6, 0, 0,126, 7, 0, 0, 93, 0, 0, 0,233, 3, 0, 0, 4, 4, 94, 1,141, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88, 41,201, 4, 0, 0, 0, 0, 88, 41,201, 4, 0, 0, 0, 0,248, 18,201, 4, 0, 0, 0, 0,
-104, 20,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 18,201, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-104, 20,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 6, 0, 0,126, 7, 0, 0,208, 3, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 94, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 20,201, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,248, 18,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,174, 67, 0,128, 92,196, 0, 0, 0, 0,
- 0, 0, 0, 0,255,127,166, 67,255,191, 92,196, 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0,
- 0, 0, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0,114, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 0, 94, 1,115, 3, 77, 1,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 6, 0, 0,126, 7, 0, 0, 93, 0, 0, 0,207, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 94, 1,115, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 21,201, 4, 0, 0, 0, 0,
-184, 39,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 21,201, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-120, 23,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,220,255, 76, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-120, 23,201, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24, 25,201, 4, 0, 0, 0, 0,216, 21,201, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 76, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 25,201, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-184, 26,201, 4, 0, 0, 0, 0,120, 23,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,111,255, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-184, 26,201, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88, 28,201, 4, 0, 0, 0, 0, 24, 25,201, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,
-105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,
-105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 76, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 28,201, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-248, 29,201, 4, 0, 0, 0, 0,184, 26,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 58,254, 76, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-248, 29,201, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152, 31,201, 4, 0, 0, 0, 0, 88, 28,201, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110,
- 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110,
- 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,
-108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 31,201, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 56, 33,201, 4, 0, 0, 0, 0,248, 29,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 10,254, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 56, 33,201, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216, 34,201, 4, 0, 0, 0, 0,152, 31,201, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,
-109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,
-109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 34,201, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-120, 36,201, 4, 0, 0, 0, 0, 56, 33,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,218,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-120, 36,201, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24, 38,201, 4, 0, 0, 0, 0,216, 34,201, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 38,201, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-184, 39,201, 4, 0, 0, 0, 0,120, 36,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 40,253, 76, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-184, 39,201, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 38,201, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 88, 41,201, 4, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
-152, 42,201, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 40, 56,201, 4, 0, 0, 0, 0, 8, 18,201, 4, 0, 0, 0, 0,
-200,254,200, 4, 0, 0, 0, 0, 88,254,200, 4, 0, 0, 0, 0,232,253,200, 4, 0, 0, 0, 0, 56,255,200, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 1, 1, 27, 3,140, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 54,201, 4, 0, 0, 0, 0,120, 54,201, 4, 0, 0, 0, 0,
-136, 43,201, 4, 0, 0, 0, 0, 72, 49,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 43,201, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,248, 44,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 70, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 3, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 70, 68, 0, 0,200, 65, 0,128, 70, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 27, 3, 26, 0, 27, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 27, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 44,201, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,104, 46,201, 4, 0, 0, 0, 0,136, 43,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,
- 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
- 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 5, 3, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,114, 1, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 46,201, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,216, 47,201, 4, 0, 0, 0, 0,248, 44,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67,
- 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
- 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 47,201, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 72, 49,201, 4, 0, 0, 0, 0,104, 46,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,
- 0,192,108,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,184,195, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0,
- 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0,
- 18, 0, 0, 0,129, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,130, 1,163, 0,112, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 49,201, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 47,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 0, 0, 31, 6, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 27, 3,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,184, 50,201, 4, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,184, 50,201, 4, 0, 0, 0, 0,
-175, 0, 0, 0, 1, 0, 0, 0, 93,101,230, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30,133,119, 64,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 65,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0,
- 72, 1, 77,190, 0, 0, 0, 0,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,
-149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,
-152, 9, 52,193, 0, 0,128, 63,223,149, 47, 63, 55, 70, 58, 63,192, 56, 49,188, 0, 0, 0, 0, 87,126,162,190,228,251,159, 62,
- 56, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,150, 84, 28,191, 50,247,227, 62, 0, 0, 0, 0,110,101,239, 64,151, 62,208,192,
- 77,255,170, 64, 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, 8,165, 39,191,211,164,167, 63, 55,175,154, 63,
-180,164, 28, 63,149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, 50,247,227,190, 4,213, 27,191,122,122,186,191,
-216, 49, 49, 65,152, 9, 52, 65, 25, 25,195, 62,176,249,206, 62,128,238,196,187, 0, 0,192,179, 55, 15,168,189,201,118,165, 61,
-152, 15,109, 62, 0, 0,152, 51,211,120, 21,194,144, 5, 2, 66, 6,136,213,193,193,214,159,192,219, 38, 19, 66,196,173,255,193,
-154,101,210, 65,173, 40,160, 64,221,149, 47, 63, 85,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,
-149, 84, 28,191, 0, 0, 0, 0,191, 56, 49,188, 54, 53,101, 63, 50,247,227, 62, 0, 0, 0, 0, 90, 38,173,190,254,221,192,190,
-152, 9, 52,193, 0, 0,128, 63, 42, 6,158, 63, 99, 28,157,191,244,250, 39,191, 8,165, 39,191,211,164,167, 63, 55,175,154, 63,
-180,164, 28, 63,149, 84, 28, 63, 39,127,159,188,135,157, 93, 64, 8,108,228,190, 50,247,227,190, 4,213, 27,191,122,122,186,191,
-216, 49, 49, 65,152, 9, 52, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62,250,150, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63,241, 22, 72, 63, 78,162,246,190, 44, 8, 90,190, 3, 35,171,190,214,211,111, 65,214,211,111, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 80, 49,183, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 65, 1, 2, 0, 0,
-255,255, 0, 0, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63,190,133, 65, 66,
-100,212, 90, 66, 31,183,118, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,
-120, 54,201, 4, 0, 0, 0, 0,176, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62,
- 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,216,120,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61,
- 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
- 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 40, 56,201, 4, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,120, 61,201, 4, 0, 0, 0, 0,152, 42,201, 4, 0, 0, 0, 0,120,253,200, 4, 0, 0, 0, 0,
- 72,251,200, 4, 0, 0, 0, 0, 8,253,200, 4, 0, 0, 0, 0,232,253,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 6, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 16, 16, 32, 6, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,248, 59,201, 4, 0, 0, 0, 0,248, 59,201, 4, 0, 0, 0, 0, 24, 57,201, 4, 0, 0, 0, 0,
-136, 58,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24, 57,201, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-136, 58,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 66, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,224,195, 68, 0, 0,200, 65, 0,224,195, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 6, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 58,201, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24, 57,201, 4, 0, 0, 0, 0, 0, 0, 32,193, 0, 0, 0, 68, 0, 0, 32,193, 0, 0, 0, 68,
-128,195,217,195,192,225,108, 68, 96,240,187, 64, 62, 16,253, 67, 15, 6, 0, 0, 32, 6, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0,
- 0, 0, 0, 0, 14, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 14, 6, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,250, 70, 0, 0,250, 70,236, 81,184, 61, 10,215, 19, 64, 10, 0, 0, 0, 0, 0, 3, 0,
- 0, 0, 0, 4, 0, 0, 32, 6, 67, 2, 15, 6, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 6, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 32, 6, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 1, 0, 0,248, 59,201, 4, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 19, 64,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,206, 97, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120, 61,201, 4, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 56,201, 4, 0, 0, 0, 0,136,249,200, 4, 0, 0, 0, 0,
-120,253,200, 4, 0, 0, 0, 0, 88,254,200, 4, 0, 0, 0, 0,200,254,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 6, 6, 4, 3,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,184, 66,201, 4, 0, 0, 0, 0,184, 66,201, 4, 0, 0, 0, 0,104, 62,201, 4, 0, 0, 0, 0,
- 72, 65,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 62,201, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-216, 63,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0, 65, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,192, 64, 68, 0, 0,200, 65, 0,192, 64, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 4, 3, 26, 0, 4, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 63,201, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 72, 65,201, 4, 0, 0, 0, 0,104, 62,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 4, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 65,201, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,216, 63,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67,
- 0, 0,129,191, 0,128, 0, 64, 0, 0,100,190, 0,128,156, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 0, 0, 0, 0, 0, 0,114, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 3, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 3,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 33, 0, 0,184, 66,201, 4, 0, 0, 0, 0,189, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,
-154,153,153, 62,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,184,100,201, 4, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
-104,254,220, 4, 0, 0, 0, 0, 56,248,200, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 82, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,102,201, 4, 0, 0, 0, 0,
-184,107,201, 4, 0, 0, 0, 0, 40,108,201, 4, 0, 0, 0, 0,200,224,219, 4, 0, 0, 0, 0, 56,225,219, 4, 0, 0, 0, 0,
-232,215,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 86,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,102,201, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-120,102,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,120,102,201, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,102,201, 4, 0, 0, 0, 0,
- 8,102,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,146, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-232,102,201, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,103,201, 4, 0, 0, 0, 0,120,102,201, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,126, 7,146, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,103,201, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,200,103,201, 4, 0, 0, 0, 0,232,102,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,103,201, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 56,104,201, 4, 0, 0, 0, 0, 88,103,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 4, 1, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 56,104,201, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,104,201, 4, 0, 0, 0, 0,
-200,103,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-168,104,201, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,105,201, 4, 0, 0, 0, 0, 56,104,201, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,100, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,105,201, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,136,105,201, 4, 0, 0, 0, 0,168,104,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-100, 6,100, 4, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,105,201, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-248,105,201, 4, 0, 0, 0, 0, 24,105,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 6,204, 3, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,248,105,201, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,104,106,201, 4, 0, 0, 0, 0,
-136,105,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,204, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-104,106,201, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,216,106,201, 4, 0, 0, 0, 0,248,105,201, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,156, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216,106,201, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 72,107,201, 4, 0, 0, 0, 0,104,106,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-100, 6,156, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,107,201, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-184,107,201, 4, 0, 0, 0, 0,216,106,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 3, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,184,107,201, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,107,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 6,252, 3, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 40,108,201, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200,217,219, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120,102,201, 4, 0, 0, 0, 0,232,102,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-200,217,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56,218,219, 4, 0, 0, 0, 0, 40,108,201, 4, 0, 0, 0, 0,
-120,102,201, 4, 0, 0, 0, 0,200,103,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 56,218,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,168,218,219, 4, 0, 0, 0, 0,200,217,219, 4, 0, 0, 0, 0,
-232,102,201, 4, 0, 0, 0, 0, 56,104,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-168,218,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24,219,219, 4, 0, 0, 0, 0, 56,218,219, 4, 0, 0, 0, 0,
-200,103,201, 4, 0, 0, 0, 0, 56,104,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 24,219,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136,219,219, 4, 0, 0, 0, 0,168,218,219, 4, 0, 0, 0, 0,
- 8,102,201, 4, 0, 0, 0, 0,168,104,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-136,219,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248,219,219, 4, 0, 0, 0, 0, 24,219,219, 4, 0, 0, 0, 0,
- 88,103,201, 4, 0, 0, 0, 0,168,104,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-248,219,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,104,220,219, 4, 0, 0, 0, 0,136,219,219, 4, 0, 0, 0, 0,
-200,103,201, 4, 0, 0, 0, 0, 24,105,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-104,220,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216,220,219, 4, 0, 0, 0, 0,248,219,219, 4, 0, 0, 0, 0,
- 56,104,201, 4, 0, 0, 0, 0, 24,105,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-216,220,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72,221,219, 4, 0, 0, 0, 0,104,220,219, 4, 0, 0, 0, 0,
-168,104,201, 4, 0, 0, 0, 0,136,105,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 72,221,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184,221,219, 4, 0, 0, 0, 0,216,220,219, 4, 0, 0, 0, 0,
- 24,105,201, 4, 0, 0, 0, 0,136,105,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-184,221,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 40,222,219, 4, 0, 0, 0, 0, 72,221,219, 4, 0, 0, 0, 0,
- 56,104,201, 4, 0, 0, 0, 0,248,105,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 40,222,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152,222,219, 4, 0, 0, 0, 0,184,221,219, 4, 0, 0, 0, 0,
- 88,103,201, 4, 0, 0, 0, 0,248,105,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-152,222,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8,223,219, 4, 0, 0, 0, 0, 40,222,219, 4, 0, 0, 0, 0,
-136,105,201, 4, 0, 0, 0, 0,248,105,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 8,223,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120,223,219, 4, 0, 0, 0, 0,152,222,219, 4, 0, 0, 0, 0,
- 8,102,201, 4, 0, 0, 0, 0,104,106,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-120,223,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,232,223,219, 4, 0, 0, 0, 0, 8,223,219, 4, 0, 0, 0, 0,
-168,104,201, 4, 0, 0, 0, 0,216,106,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-232,223,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88,224,219, 4, 0, 0, 0, 0,120,223,219, 4, 0, 0, 0, 0,
-104,106,201, 4, 0, 0, 0, 0,216,106,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 88,224,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200,224,219, 4, 0, 0, 0, 0,232,223,219, 4, 0, 0, 0, 0,
-200,103,201, 4, 0, 0, 0, 0,104,106,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-200,224,219, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,224,219, 4, 0, 0, 0, 0,
- 24,105,201, 4, 0, 0, 0, 0,216,106,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
- 56,225,219, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 8,229,219, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200,103,201, 4, 0, 0, 0, 0,120,102,201, 4, 0, 0, 0, 0,232,102,201, 4, 0, 0, 0, 0, 56,104,201, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,101, 4, 0, 0,146, 4, 0, 0, 7, 7,127, 7, 46, 0, 1, 0,
- 0, 0, 0, 0, 7, 0, 8, 0, 8,179,109, 3, 0, 0, 0, 0,216,253,220, 4, 0, 0, 0, 0,216,253,220, 4, 0, 0, 0, 0,
- 40,226,219, 4, 0, 0, 0, 0,152,227,219, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152,134,145, 3, 0, 0, 0, 0, 40,204,184, 4, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40,226,219, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,152,227,219, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,171, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,101, 4, 0, 0,126, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40,181,109, 3, 0, 0, 0, 0, 72, 13,189, 4, 0, 0, 0, 0, 72, 13,189, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 61,133, 3, 0, 0, 0, 0,152, 63,133, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,227,219, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,226,219, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,239, 68,
- 0, 0, 0, 0, 0, 0, 48, 65, 0, 0, 0, 0,255,191,237, 68, 0, 0, 0, 0, 0, 0,160, 65,110, 7, 0, 0,127, 7, 0, 0,
- 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,109, 7, 0, 0,
- 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,127, 7, 20, 0,110, 7, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,127, 4, 0, 0,146, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 20, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40,180,109, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 64,133, 3, 0, 0, 0, 0, 8, 66,133, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8,229,219, 4, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,216, 26,220, 4, 0, 0, 0, 0, 56,225,219, 4, 0, 0, 0, 0,168,104,201, 4, 0, 0, 0, 0,
-136,105,201, 4, 0, 0, 0, 0,248,105,201, 4, 0, 0, 0, 0, 88,103,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-101, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,203, 3, 0, 0, 4, 4, 26, 1,204, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,
-136,174,109, 3, 0, 0, 0, 0,152, 25,220, 4, 0, 0, 0, 0,152, 25,220, 4, 0, 0, 0, 0,248,229,219, 4, 0, 0, 0, 0,
-104,231,219, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,207,184, 4, 0, 0, 0, 0,
-232,217,184, 4, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,229,219, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-104,231,219, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,141, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,140, 67, 0, 0,200, 65, 0,128,140, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 26, 1, 26, 0, 26, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-101, 6, 0, 0,126, 7, 0, 0,178, 3, 0, 0,203, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 26, 1, 26, 0, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,178,109, 3, 0, 0, 0, 0,216,191,188, 4, 0, 0, 0, 0,216,191,188, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,136,209,186, 4, 0, 0, 0, 0, 56, 9,189, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,231,219, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,248,229,219, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0,128,108,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 1,128,132, 67, 2,128,108,196, 0, 0, 0, 0, 9, 1, 0, 0, 26, 1, 0, 0, 0, 0, 0, 0,177, 3, 0, 0,
- 0, 0, 0, 0, 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0,177, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 0, 26, 1,178, 3, 9, 1,178, 3, 0, 0,136, 89,189, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-101, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,177, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 26, 1,178, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168,175,109, 3, 0, 0, 0, 0, 56, 69,145, 3, 0, 0, 0, 0,248, 62,194, 4, 0, 0, 0, 0,216,232,219, 4, 0, 0, 0, 0,
-248, 23,220, 4, 0, 0, 0, 0, 8, 10,189, 4, 0, 0, 0, 0,120, 12,189, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,232,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-120,234,219, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,176,109, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,220,255, 9, 1, 36, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-120,234,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24,236,219, 4, 0, 0, 0, 0,216,232,219, 4, 0, 0, 0, 0,
-184,253, 25, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 9, 1, 61, 0, 0, 0, 0, 0, 0, 0, 6, 0,
- 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,236,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-184,237,219, 4, 0, 0, 0, 0,120,234,219, 4, 0, 0, 0, 0, 40, 0, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,111,255, 9, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-184,237,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88,239,219, 4, 0, 0, 0, 0, 24,236,219, 4, 0, 0, 0, 0,
-152, 2, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,
-105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,
-105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 9, 1,203, 0, 0, 0, 0, 0, 0, 0, 6, 0,
- 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,239,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-248,240,219, 4, 0, 0, 0, 0,184,237,219, 4, 0, 0, 0, 0, 8, 5, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 58,254, 9, 1, 58, 0, 20, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-248,240,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152,242,219, 4, 0, 0, 0, 0, 88,239,219, 4, 0, 0, 0, 0,
-120, 7, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110,
- 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110,
- 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,
-108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 9, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0,
- 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,242,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 56,244,219, 4, 0, 0, 0, 0,248,240,219, 4, 0, 0, 0, 0,152,140,238, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 10,254, 9, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 56,244,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216,245,219, 4, 0, 0, 0, 0,152,242,219, 4, 0, 0, 0, 0,
- 8, 17, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,
-109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,
-109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 9, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,245,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-120,247,219, 4, 0, 0, 0, 0, 56,244,219, 4, 0, 0, 0, 0,120, 19, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,218,253, 9, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-120,247,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24,249,219, 4, 0, 0, 0, 0,216,245,219, 4, 0, 0, 0, 0,
-232, 21, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 9, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 0,
- 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,249,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-184,250,219, 4, 0, 0, 0, 0,120,247,219, 4, 0, 0, 0, 0, 88, 24, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 36,253, 9, 1,134, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-184,250,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88,252,219, 4, 0, 0, 0, 0, 24,249,219, 4, 0, 0, 0, 0,
- 56, 29, 26, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,253, 9, 1, 0, 0, 0, 0, 0, 0, 4, 0, 7, 0,
- 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,252,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-248,253,219, 4, 0, 0, 0, 0,184,250,219, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 67, 69, 78, 69, 95, 80, 84, 95,115, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 99,101,110,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,135,255, 41, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-248,253,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152,255,219, 4, 0, 0, 0, 0, 88,252,219, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,117,110,105,116, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,110,105,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,255, 41, 1, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,255,219, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 56, 1,220, 4, 0, 0, 0, 0,248,253,219, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 67, 69, 78, 69, 95, 80, 84, 95,107,101,121,105,110,103, 95,115,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 75,101,121,105,110,103, 32, 83,101,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,191,254, 41, 1, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 56, 1,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216, 2,220, 4, 0, 0, 0, 0,152,255,219, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95,112,104,121,115,105, 99,115,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114, 97,118,105,116,121, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,131,254, 41, 1, 36, 0, 20, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 2,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-120, 4,220, 4, 0, 0, 0, 0, 56, 1,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 67, 69, 78, 69, 95, 80, 84, 95,115,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83,105,109,112,108,105,102,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 27,254, 41, 1, 80, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-120, 4,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24, 6,220, 4, 0, 0, 0, 0,216, 2,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,
-112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 69, 78, 69, 95, 80, 84, 95, 99,117,115,116,111,109, 95,
-112,114,111,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80,114,111,112,101,114,116,105,101,
-115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,223,253, 41, 1, 36, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 6,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-184, 7,220, 4, 0, 0, 0, 0,120, 4,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 16,255,187, 0,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-184, 7,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88, 9,220, 4, 0, 0, 0, 0, 24, 6,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,109, 97,112,112,105,
-110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,109, 97,112,112,105,
-110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 97,112,112,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,254,187, 0,171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 9,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-248, 10,220, 4, 0, 0, 0, 0,184, 7,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105,110,102,108,117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 84, 69, 88, 84, 85, 82, 69, 95, 80, 84, 95,105,110,102,108,117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 73,110,102,108,117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,223,252,187, 0, 86, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-248, 10,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152, 12,220, 4, 0, 0, 0, 0, 88, 9,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 74, 69, 67, 84, 95, 80, 84, 95, 99,111,110,115,116,114,
- 97,105,110,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 74, 69, 67, 84, 95, 80, 84, 95, 99,111,110,115,116,114,
- 97,105,110,116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 67,111,110,115,116,114, 97,105,110,
-116,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,255,187, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 12,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 56, 14,220, 4, 0, 0, 0, 0,248, 10,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 95, 80, 84, 95, 99,111,110,116,101,120,116, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,184,255,171, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 56, 14,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216, 15,220, 4, 0, 0, 0, 0,152, 12,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,110,111,114,109, 97,108,115, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,110,111,114,109, 97,108,115, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,111,114,109, 97,108,115, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102,255,171, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216, 15,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-120, 17,220, 4, 0, 0, 0, 0, 56, 14,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 95, 80, 84, 95,116,101,120,116,117,114,101, 95,115,112, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 95, 80, 84, 95,116,101,120,116,117,114,101, 95,115,112, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 84,101,120,116,117,114,101, 32, 83,112, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 78,255,171, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-120, 17,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24, 19,220, 4, 0, 0, 0, 0,216, 15,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,118,101,114,116,101,120, 95,103,
-114,111,117,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,118,101,114,116,101,120, 95,103,
-114,111,117,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,101,114,116,101,120, 32, 71,114,111,117,112,115, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234,254,171, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 19,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-184, 20,220, 4, 0, 0, 0, 0,120, 17,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 95, 80, 84, 95,115,104, 97,112,101, 95,107,101,121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 95, 80, 84, 95,115,104, 97,112,101, 95,107,101,121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83,104, 97,112,101, 32, 75,101,121,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,134,254,171, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-184, 20,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88, 22,220, 4, 0, 0, 0, 0, 24, 19,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,117,118, 95,116,101,120,116,117,
-114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,117,118, 95,116,101,120,116,117,
-114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 86, 32, 77, 97,112,115, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,254,171, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 22,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-248, 23,220, 4, 0, 0, 0, 0,184, 20,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 95, 80, 84, 95,118,101,114,116,101,120, 95, 99,111,108,111,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 95, 80, 84, 95,118,101,114,116,101,120, 95, 99,111,108,111,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86,101,114,116,101,120, 32, 67,111,108,111,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,204,253,171, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-248, 23,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 22,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,
-114,111,112,115, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95, 99,117,115,116,111,109, 95,112,
-114,111,112,115, 95,109,101,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,115,116,111,109, 32, 80,114,111,112,101,114,116,105,101,
-115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180,253,171, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,152, 25,220, 4, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,120, 98,186, 4, 0, 0, 0, 0,
-255, 13, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
-216, 26,220, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,200, 31,220, 4, 0, 0, 0, 0, 8,229,219, 4, 0, 0, 0, 0,
- 8,102,201, 4, 0, 0, 0, 0,104,106,201, 4, 0, 0, 0, 0,216,106,201, 4, 0, 0, 0, 0,168,104,201, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 6, 0, 0, 0, 0, 0, 0,155, 0, 0, 0, 15, 15,100, 6,156, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56,129,109, 3, 0, 0, 0, 0,168, 30,220, 4, 0, 0, 0, 0,168, 30,220, 4, 0, 0, 0, 0,
-200, 27,220, 4, 0, 0, 0, 0, 56, 29,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 24,134,184, 4, 0, 0, 0, 0,184,229,184, 4, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 27,220, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 56, 29,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,143, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,204, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 6, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,204, 68, 0, 0,200, 65, 0, 96,204, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,100, 6, 26, 0,100, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,100, 6, 26, 0, 6, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88,131,109, 3, 0, 0, 0, 0,168, 71,145, 3, 0, 0, 0, 0,168, 71,145, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,185,133, 3, 0, 0, 0, 0,248, 73,189, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 29,220, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 27,220, 4, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67,
- 0, 0, 0, 0, 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 99, 6, 0, 0,
- 18, 0, 0, 0,129, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65,
- 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,100, 6,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 6, 0, 0, 26, 0, 0, 0,155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,100, 6,130, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88,130,109, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 74,189, 4, 0, 0, 0, 0, 8, 78,189, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,168, 30,220, 4, 0, 0, 0, 0,
-185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
-200, 31,220, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,232,215,220, 4, 0, 0, 0, 0,216, 26,220, 4, 0, 0, 0, 0,
-136,105,201, 4, 0, 0, 0, 0, 24,105,201, 4, 0, 0, 0, 0, 56,104,201, 4, 0, 0, 0, 0,248,105,201, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,101, 6, 0, 0,126, 7, 0, 0,205, 3, 0, 0, 99, 4, 0, 0, 3, 3, 26, 1,151, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 8, 0, 24,126,109, 3, 0, 0, 0, 0,152, 35,220, 4, 0, 0, 0, 0,152, 35,220, 4, 0, 0, 0, 0,
-184, 32,220, 4, 0, 0, 0, 0, 40, 34,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,238,184, 4, 0, 0, 0, 0, 24, 7,168, 4, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,184, 32,220, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 40, 34,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,141, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 1, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,128,140, 67, 0, 0,200, 65, 0,128,140, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 26, 1, 26, 0, 26, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,101, 6, 0, 0,126, 7, 0, 0, 74, 4, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 26, 1, 26, 0, 8, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56,128,109, 3, 0, 0, 0, 0, 40, 20,194, 4, 0, 0, 0, 0, 40, 20,194, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 91,187, 4, 0, 0, 0, 0,168, 93,187, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40, 34,220, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 32,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67,
- 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,132, 67, 0, 0,214,194, 0, 0, 0, 0, 9, 1, 0, 0, 26, 1, 0, 0,
- 18, 0, 0, 0,124, 0, 0, 0, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 8, 1, 0, 0,
- 18, 0, 0, 0,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 18, 0, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 26, 1,125, 0, 9, 1,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,101, 6, 0, 0,126, 7, 0, 0,205, 3, 0, 0, 73, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 26, 1,125, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56,127,109, 3, 0, 0, 0, 0,152,153,203, 4, 0, 0, 0, 0,152,153,203, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 94,187, 4, 0, 0, 0, 0, 24, 96,187, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,152, 35,220, 4, 0, 0, 0, 0,
-181, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 21,177, 4, 0, 0, 0, 0,248, 21,177, 4, 0, 0, 0, 0,
-104,222,190, 4, 0, 0, 0, 0, 0,115,101, 32, 83, 99,117,108,112,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 68, 65, 84, 65, 16, 0, 0, 0,104,222,190, 4, 0, 0, 0, 0,238, 0, 0, 0, 1, 0, 0, 0, 42, 11, 0, 0, 42, 11, 0, 0,
-248, 36,220, 4, 0, 0, 0, 0, 68, 65, 84, 65,160,178, 0, 0,248, 36,220, 4, 0, 0, 0, 0,237, 0, 0, 0, 42, 11, 0, 0,
- 0, 0, 0, 0, 2, 0, 1, 0, 40, 92,222, 4, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 20, 0, 0, 0, 1, 0, 1, 0, 40, 92,222, 4, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 8,118,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,127,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0,168,181,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,140,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0,248,162,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56,134,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0,168,113,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,216,120,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0,152,112,222, 4, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 0, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 2, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 4, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 6, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 8, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 10, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 12, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 14, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 16, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 18, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 20, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 22, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 24, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 26, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 28, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 30, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 32, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 34, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 36, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 38, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 40, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 42, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 44, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 46, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 48, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 50, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 52, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 54, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 56, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 58, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 60, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 62, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 64, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 66, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 31, 0, 68, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 30, 0,255,255, 3, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,232,152,200, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0, 56,248,200, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,184,100,201, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,104,254,220, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,248,149,221, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,184,228,221, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,216, 43,222, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,248,149,200, 4, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 31, 0, 0, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 2, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 4, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 6, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 8, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 10, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 12, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 14, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 16, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 18, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 20, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 22, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 24, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 26, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 28, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 30, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 32, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 34, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 36, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 38, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 40, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 42, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 44, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 46, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 48, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 50, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 52, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 54, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 56, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 58, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 60, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 62, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 64, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 66, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 68, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 70, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 72, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 74, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 76, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 78, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 80, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 82, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0,
- 31, 0, 0, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 2, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 4, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 6, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 8, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 10, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 12, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 14, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 16, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 18, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 20, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 22, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 24, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 26, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 28, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 30, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 32, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 34, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 36, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 38, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 40, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 42, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 44, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 46, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 48, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 50, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 31, 0, 0, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 2, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 4, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 6, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 8, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 10, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 12, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 14, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 16, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 18, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 20, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 22, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 24, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 26, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 28, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 30, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 32, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 34, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 36, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 38, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 40, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 42, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 44, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 46, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 48, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 50, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 52, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 54, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 56, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 58, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 60, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 62, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 64, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 66, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 68, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 70, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 72, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 74, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 76, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 78, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 80, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 82, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 84, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 86, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 88, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 90, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 92, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 94, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0,
- 31, 0, 96, 0, 1, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 21, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 23, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 25, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 29, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 31, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 33, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 35, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 37, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 39, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 41, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 43, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 45, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 47, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 49, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 51, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 53, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 55, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 57, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 59, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 61, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 63, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 65, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 67, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 69, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 71, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 73, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 75, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 77, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 79, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 81, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 83, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 85, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 87, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 89, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 91, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 93, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 95, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 31, 0, 0, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 2, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 4, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 6, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 8, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 10, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 12, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 14, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 16, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 18, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 20, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 22, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 24, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 26, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 28, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 30, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 32, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 34, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 36, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 38, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 40, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 42, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 44, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 46, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 48, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 50, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 52, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 54, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 56, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 58, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 60, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 62, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 64, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 66, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 68, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 70, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 72, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 74, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 76, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 78, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 80, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 82, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 84, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 86, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 88, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 90, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 92, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 94, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,
- 31, 0, 96, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,152,200, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,232,152,200, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,152,200, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,232,152,200, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,152,200, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,232,152,200, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,152,200, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,232,152,200, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,152,200, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,232,152,200, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,248,200, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0, 56,248,200, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,248,200, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0, 56,248,200, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,248,200, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0, 56,248,200, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,248,200, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0, 56,248,200, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,248,200, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0, 56,248,200, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,100,201, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,184,100,201, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,100,201, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,184,100,201, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,100,201, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,184,100,201, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,100,201, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,184,100,201, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,100,201, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,184,100,201, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,254,220, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,104,254,220, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,254,220, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,104,254,220, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,254,220, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,104,254,220, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,254,220, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,104,254,220, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,254,220, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,104,254,220, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,149,221, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,248,149,221, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,149,221, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,248,149,221, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,149,221, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,248,149,221, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,149,221, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,248,149,221, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,149,221, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,248,149,221, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,228,221, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,184,228,221, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,228,221, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,184,228,221, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,228,221, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,184,228,221, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,228,221, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,184,228,221, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,228,221, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,184,228,221, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,216, 43,222, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,216, 43,222, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,216, 43,222, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,216, 43,222, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,216, 43,222, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,216, 43,222, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,216, 43,222, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,216, 43,222, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,216, 43,222, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,216, 43,222, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,162,222, 4, 0, 0, 0, 0,
- 31, 0, 0, 0, 1, 0, 0, 0,248,149,200, 4, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,248,149,200, 4, 0, 0, 0, 0,
- 31, 0, 2, 0, 1, 0, 0, 0,248,149,200, 4, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,248,149,200, 4, 0, 0, 0, 0,
- 31, 0, 4, 0, 1, 0, 0, 0,248,149,200, 4, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,248,149,200, 4, 0, 0, 0, 0,
- 31, 0, 6, 0, 1, 0, 0, 0,248,149,200, 4, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,248,149,200, 4, 0, 0, 0, 0,
- 31, 0, 8, 0, 1, 0, 0, 0,248,149,200, 4, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,248,149,200, 4, 0, 0, 0, 0,
- 31, 0, 10, 0, 1, 0, 0, 0,248,149,200, 4, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0,
- 31, 0, 1, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0,
- 31, 0, 5, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0,
- 31, 0, 7, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0,
- 31, 0, 9, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0,
- 31, 0, 11, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0,
- 31, 0, 13, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0,
- 31, 0, 15, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0,
- 31, 0, 17, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 8,118,222, 4, 0, 0, 0, 0,
- 68, 65, 84, 65,160, 0, 0, 0,232,215,220, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 31,220, 4, 0, 0, 0, 0,104,106,201, 4, 0, 0, 0, 0,200,103,201, 4, 0, 0, 0, 0, 24,105,201, 4, 0, 0, 0, 0,
-216,106,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 6, 0, 0,157, 0, 0, 0, 99, 4, 0, 0,
- 1, 1,100, 6,199, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, 88,132,109, 3, 0, 0, 0, 0, 40,252,220, 4, 0, 0, 0, 0,
- 40,252,220, 4, 0, 0, 0, 0,216,216,220, 4, 0, 0, 0, 0,248,246,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,168, 3,168, 4, 0, 0, 0, 0, 88, 79,171, 4, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-216,216,220, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 72,218,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,192,108, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,204, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 99, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 96,204, 68, 0, 0,200, 65, 0, 96,204, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,100, 6, 26, 0,100, 6, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 6, 0, 0,157, 0, 0, 0,182, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 6, 26, 0, 10, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,142,109, 3, 0, 0, 0, 0,184,213,193, 4, 0, 0, 0, 0,
-184,213,193, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,190,149, 3, 0, 0, 0, 0,
- 40,194,149, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 72,218,220, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,120,242,220, 4, 0, 0, 0, 0,216,216,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128,178, 67, 0, 64, 53,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 53,196, 0, 0, 0, 0,
-143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,212, 2, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,212, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,213, 2,143, 0,213, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,143, 1, 0, 0, 99, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,213, 2, 11, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0,
-160, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,139,109, 3, 0, 0, 0, 0,168,192,202, 4, 0, 0, 0, 0,
-168,192,202, 4, 0, 0, 0, 0,184,219,220, 4, 0, 0, 0, 0,216,240,220, 4, 0, 0, 0, 0,248,194,149, 3, 0, 0, 0, 0,
-104,197,149, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-184,219,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88,221,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 72, 29, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
-111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
-111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0, 0, 0, 39, 0,
- 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,221,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-248,222,220, 4, 0, 0, 0, 0,184,219,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,189,254,143, 0, 43, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-248,222,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152,224,220, 4, 0, 0, 0, 0, 88,221,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
- 98,114,117,115,104, 95,116,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
- 98,114,117,115,104, 95,116,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,254,143, 0, 61, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,224,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 56,226,220, 4, 0, 0, 0, 0,248,222,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,107,101, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,107,101, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83,116,114,111,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,165,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 56,226,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216,227,220, 4, 0, 0, 0, 0,152,224,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
- 98,114,117,115,104, 95, 99,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
- 98,114,117,115,104, 95, 99,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,227,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-120,229,220, 4, 0, 0, 0, 0, 56,226,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 97,112,112,101, 97,114, 97,110, 99,101,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95, 97,112,112,101, 97,114, 97,110, 99,101,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 65,112,112,101, 97,114, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,117,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-120,229,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 24,231,220, 4, 0, 0, 0, 0,216,227,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
-118,101,114,116,101,120,112, 97,105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
-118,101,114,116,101,120,112, 97,105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149,253,143, 0,146, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24,231,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-184,232,220, 4, 0, 0, 0, 0,120,229,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,101,120,116,117,114,101, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,116,101,120,116,117,114,101, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 84,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 93,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-184,232,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 88,234,220, 4, 0, 0, 0, 0, 24,231,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116,
- 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116,
- 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,254,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88,234,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-248,235,220, 4, 0, 0, 0, 0,184,232,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,115,121,109,109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,115,121,109,109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83,121,109,109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,253,253,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-248,235,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,152,237,220, 4, 0, 0, 0, 0, 88,234,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
-109,101,115,104,101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
-109,101,115,104,101,100,105,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,101,115,104, 32, 84,111,111,108,115, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,252,143, 0, 68, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152,237,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 56,239,220, 4, 0, 0, 0, 0,248,235,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116,105,111,110,115,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,109,101,115,104,101,100,105,116, 95,111,112,116,105,111,110,115,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 77,101,115,104, 32, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,235,251,143, 0,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 56,239,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,216,240,220, 4, 0, 0, 0, 0,152,237,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
-119,101,105,103,104,116,112, 97,105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
-119,101,105,103,104,116,112, 97,105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,101,105,103,104,116, 32, 84,111,111,108,115, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159,253,143, 0,190, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,216,240,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56,239,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,119,101,105,103,104,116,112, 97,105,110,116, 95,111,112,116,105,
-111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,119,101,105,103,104,116,112, 97,105,110,116, 95,111,112,116,105,
-111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,157,252,143, 0,234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-120,242,220, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,136,245,220, 4, 0, 0, 0, 0, 72,218,220, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128,178, 67, 0, 0, 90,195, 0, 0, 0, 0, 0, 0, 0, 0,227,102, 16, 67, 24, 30, 90,195, 0, 0, 0, 0,
-143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,216, 0,143, 0,216, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,183, 0, 0, 0,142, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,216, 0, 12, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,140,109, 3, 0, 0, 0, 0, 56,133,193, 4, 0, 0, 0, 0,
- 56,133,193, 4, 0, 0, 0, 0,232,243,220, 4, 0, 0, 0, 0,232,243,220, 4, 0, 0, 0, 0, 56, 25,193, 4, 0, 0, 0, 0,
- 8,183,149, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-232,243,220, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152,141,109, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,
-112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,
-112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0, 32, 77, 97,112, 0,111,100,
-101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 39, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,245,220, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-248,246,220, 4, 0, 0, 0, 0,120,242,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, 0, 96,158,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 35, 67, 0, 96,158,196, 0,128,142,195,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0,
- 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,213, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 0,180, 0,214, 3,163, 0,214, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 99, 6, 0, 0, 99, 6, 0, 0,183, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120,134,109, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,246,220, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,136,245,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-160, 0, 0, 0, 99, 6, 0, 0,183, 0, 0, 0, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-196, 5,173, 3, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120,133,109, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40,123,186, 4, 0, 0, 0, 0, 88,122,186, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,248,220, 4, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,104,248,220, 4, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0,
-255,255,139, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159,152,219, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,142, 6,128,191, 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 11,210, 76,190, 0, 0, 0, 0,
- 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,
-162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63,
- 68,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,
-185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, 62, 95, 68, 65, 51,120,173,192,115,208,213, 64, 0, 0,128, 63,
-177,157,229, 62, 56,113, 48,191,116,169, 81,191,184,158, 81,191,115, 90,127, 63, 0, 24,170, 62,158, 53,185, 62, 35, 44,185, 62,
-143,180,109,188, 99,140,196, 63,218, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65,
- 39,240,191, 62,126,116, 85, 63, 96,189, 70,188, 0, 0,186,180, 48,202,111,190,126, 41,231, 61,228,142, 5, 63, 0, 0,224, 51,
-197,112,117,194,178,208,216, 65,221,158, 5,194,231,251,159,192,221, 54,114, 66, 29,247,213,193, 59,221, 3, 66, 25, 4,160, 64,
- 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,
-162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63,
-177,157,229, 62, 56,113, 48,191,116,169, 81,191,184,158, 81,191,115, 90,127, 63, 0, 24,170, 62,158, 53,185, 62, 35, 44,185, 62,
-143,180,109,188, 99,140,196, 63,218, 72,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 33,171,108, 65, 33,210,111, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152, 67,178, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 67,178, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152, 67,178, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 33,210,111, 65,196, 18,107, 65, 0, 0, 0, 0, 0, 0, 0, 0,
-146, 97,162, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, 85,152,137, 66,113, 27,126, 66,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0, 40,252,220, 4, 0, 0, 0, 0,
-176, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 7, 0,216,120,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 3, 0, 0, 0, 1, 0, 3, 0, 8, 24,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,104,254,220, 4, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,
- 24, 78,221, 4, 0, 0, 0, 0,184,100,201, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,255,220, 4, 0, 0, 0, 0,
-104, 5,221, 4, 0, 0, 0, 0,216, 5,221, 4, 0, 0, 0, 0,152, 14,221, 4, 0, 0, 0, 0, 8, 15,221, 4, 0, 0, 0, 0,
- 40, 71,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,255,220, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 40, 0,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 40, 0,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152, 0,221, 4, 0, 0, 0, 0,
-184,255,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-152, 0,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8, 1,221, 4, 0, 0, 0, 0, 40, 0,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8, 1,221, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,120, 1,221, 4, 0, 0, 0, 0,152, 0,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 1,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-232, 1,221, 4, 0, 0, 0, 0, 8, 1,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,232, 1,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88, 2,221, 4, 0, 0, 0, 0,
-120, 1,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 88, 2,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200, 2,221, 4, 0, 0, 0, 0,232, 1,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200, 2,221, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 56, 3,221, 4, 0, 0, 0, 0, 88, 2,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 32, 6,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 3,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-168, 3,221, 4, 0, 0, 0, 0,200, 2,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,168, 3,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24, 4,221, 4, 0, 0, 0, 0,
- 56, 3,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 24, 4,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136, 4,221, 4, 0, 0, 0, 0,168, 3,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 64, 5,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136, 4,221, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,248, 4,221, 4, 0, 0, 0, 0, 24, 4,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 64, 5,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 4,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-104, 5,221, 4, 0, 0, 0, 0,136, 4,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,140, 1, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,104, 5,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-248, 4,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-216, 5,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72, 6,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 0,221, 4, 0, 0, 0, 0,152, 0,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 72, 6,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184, 6,221, 4, 0, 0, 0, 0,216, 5,221, 4, 0, 0, 0, 0,
- 40, 0,221, 4, 0, 0, 0, 0,120, 1,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-184, 6,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 40, 7,221, 4, 0, 0, 0, 0, 72, 6,221, 4, 0, 0, 0, 0,
-152, 0,221, 4, 0, 0, 0, 0,232, 1,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 40, 7,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152, 7,221, 4, 0, 0, 0, 0,184, 6,221, 4, 0, 0, 0, 0,
-120, 1,221, 4, 0, 0, 0, 0,232, 1,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-152, 7,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8, 8,221, 4, 0, 0, 0, 0, 40, 7,221, 4, 0, 0, 0, 0,
-120, 1,221, 4, 0, 0, 0, 0, 88, 2,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 8, 8,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120, 8,221, 4, 0, 0, 0, 0,152, 7,221, 4, 0, 0, 0, 0,
- 88, 2,221, 4, 0, 0, 0, 0,200, 2,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-120, 8,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,232, 8,221, 4, 0, 0, 0, 0, 8, 8,221, 4, 0, 0, 0, 0,
- 8, 1,221, 4, 0, 0, 0, 0, 56, 3,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-232, 8,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88, 9,221, 4, 0, 0, 0, 0,120, 8,221, 4, 0, 0, 0, 0,
-200, 2,221, 4, 0, 0, 0, 0, 56, 3,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 88, 9,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200, 9,221, 4, 0, 0, 0, 0,232, 8,221, 4, 0, 0, 0, 0,
-184,255,220, 4, 0, 0, 0, 0, 88, 2,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-200, 9,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56, 10,221, 4, 0, 0, 0, 0, 88, 9,221, 4, 0, 0, 0, 0,
-184,255,220, 4, 0, 0, 0, 0, 56, 3,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 56, 10,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,168, 10,221, 4, 0, 0, 0, 0,200, 9,221, 4, 0, 0, 0, 0,
-232, 1,221, 4, 0, 0, 0, 0,168, 3,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-168, 10,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24, 11,221, 4, 0, 0, 0, 0, 56, 10,221, 4, 0, 0, 0, 0,
- 8, 1,221, 4, 0, 0, 0, 0,168, 3,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 24, 11,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136, 11,221, 4, 0, 0, 0, 0,168, 10,221, 4, 0, 0, 0, 0,
-200, 2,221, 4, 0, 0, 0, 0,168, 3,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-136, 11,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248, 11,221, 4, 0, 0, 0, 0, 24, 11,221, 4, 0, 0, 0, 0,
- 24, 4,221, 4, 0, 0, 0, 0,136, 4,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-248, 11,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,104, 12,221, 4, 0, 0, 0, 0,136, 11,221, 4, 0, 0, 0, 0,
-232, 1,221, 4, 0, 0, 0, 0,136, 4,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-104, 12,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 12,221, 4, 0, 0, 0, 0,248, 11,221, 4, 0, 0, 0, 0,
-168, 3,221, 4, 0, 0, 0, 0, 24, 4,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-216, 12,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72, 13,221, 4, 0, 0, 0, 0,104, 12,221, 4, 0, 0, 0, 0,
- 88, 2,221, 4, 0, 0, 0, 0,248, 4,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 72, 13,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184, 13,221, 4, 0, 0, 0, 0,216, 12,221, 4, 0, 0, 0, 0,
- 24, 4,221, 4, 0, 0, 0, 0,248, 4,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-184, 13,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 40, 14,221, 4, 0, 0, 0, 0, 72, 13,221, 4, 0, 0, 0, 0,
-120, 1,221, 4, 0, 0, 0, 0,104, 5,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
- 40, 14,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152, 14,221, 4, 0, 0, 0, 0,184, 13,221, 4, 0, 0, 0, 0,
-136, 4,221, 4, 0, 0, 0, 0,104, 5,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-152, 14,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 14,221, 4, 0, 0, 0, 0,
-248, 4,221, 4, 0, 0, 0, 0,104, 5,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
- 8, 15,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,216, 18,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-120, 1,221, 4, 0, 0, 0, 0, 40, 0,221, 4, 0, 0, 0, 0,152, 0,221, 4, 0, 0, 0, 0,232, 1,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 77,221, 4, 0, 0, 0, 0,136, 77,221, 4, 0, 0, 0, 0,
-248, 15,221, 4, 0, 0, 0, 0,104, 17,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 15,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,104, 17,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 17,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 15,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69,
- 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,238, 68, 0, 0, 0, 0, 0, 0, 0, 64,112, 7, 0, 0,129, 7, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,216, 18,221, 4, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0,104, 43,221, 4, 0, 0, 0, 0, 8, 15,221, 4, 0, 0, 0, 0, 56, 3,221, 4, 0, 0, 0, 0,
-200, 2,221, 4, 0, 0, 0, 0,168, 3,221, 4, 0, 0, 0, 0, 8, 1,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 4, 4, 94, 1,140, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40, 42,221, 4, 0, 0, 0, 0, 40, 42,221, 4, 0, 0, 0, 0,200, 19,221, 4, 0, 0, 0, 0,
- 56, 21,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 19,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 56, 21,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0,175, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,174, 67, 0, 0,200, 65, 0,128,174, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 94, 1, 26, 0, 94, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 6, 0, 0,126, 7, 0, 0,114, 1, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 94, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 21,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,200, 19,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,174, 67, 0, 0, 61,196, 0, 0, 0, 0,
- 0, 0, 0, 0,255,127,166, 67,255,255,184,195, 0, 0, 0, 0, 77, 1, 0, 0, 94, 1, 0, 0, 0, 0, 0, 0,113, 1, 0, 0,
- 0, 0, 0, 0, 78, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0,113, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 0, 94, 1,114, 1, 77, 1,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 6, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 94, 1,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 22,221, 4, 0, 0, 0, 0,
-136, 40,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168, 22,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 72, 24,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,220,255, 76, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 72, 24,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232, 25,221, 4, 0, 0, 0, 0,168, 22,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,114,101,110,100,101,114,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 76, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232, 25,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-136, 27,221, 4, 0, 0, 0, 0, 72, 24,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,111,255, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-136, 27,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 40, 29,221, 4, 0, 0, 0, 0,232, 25,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,
-105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,
-105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 76, 1,203, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40, 29,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-200, 30,221, 4, 0, 0, 0, 0,136, 27,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 58,254, 76, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-200, 30,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104, 32,221, 4, 0, 0, 0, 0, 40, 29,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110,
- 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110,
- 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32, 77,111,116,105,111,110, 32, 66,
-108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104, 32,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 8, 34,221, 4, 0, 0, 0, 0,200, 30,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 10,254, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 8, 34,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168, 35,221, 4, 0, 0, 0, 0,104, 32,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,
-109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,
-109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168, 35,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 72, 37,221, 4, 0, 0, 0, 0, 8, 34,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,218,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 72, 37,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232, 38,221, 4, 0, 0, 0, 0,168, 35,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,116, 97,109,112, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253, 76, 1, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232, 38,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
-136, 40,221, 4, 0, 0, 0, 0, 72, 37,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 40,253, 76, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
-136, 40,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 38,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 40, 42,221, 4, 0, 0, 0, 0,180, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
-104, 43,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,216, 50,221, 4, 0, 0, 0, 0,216, 18,221, 4, 0, 0, 0, 0,
-184,255,220, 4, 0, 0, 0, 0, 88, 2,221, 4, 0, 0, 0, 0,200, 2,221, 4, 0, 0, 0, 0, 56, 3,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0,139, 1, 0, 0, 17, 17, 32, 6,140, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 50,221, 4, 0, 0, 0, 0, 72, 50,221, 4, 0, 0, 0, 0,
- 88, 44,221, 4, 0, 0, 0, 0,216, 48,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 44,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,200, 45,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,196, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,224,195, 68, 0, 0,200, 65, 0,224,195, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 32, 6, 26, 0, 32, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 32, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 45,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,216, 48,221, 4, 0, 0, 0, 0, 88, 44,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67,
- 0, 0,185,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 0, 0,185,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0,
- 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0,
- 0, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,114, 1,203, 0,114, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,220, 0,114, 1, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 56, 47,221, 4, 0, 0, 0, 0, 56, 47,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56, 47,221, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 76, 79, 71, 73, 67, 95, 80, 84, 95,112,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80,114,111,112,101,114,116,105,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196,255,203, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,216, 48,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-200, 45,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, 0, 0,112, 67, 0, 80, 31,195, 0,234,179, 68,
-224,198,182,194,184,177,165, 67, 51, 5, 0, 0, 68, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 5, 0, 0, 18, 0, 0, 0,113, 1, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,250, 70, 0, 0,250, 70, 0, 0, 0, 63, 72,225,154, 63, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 68, 5,
-114, 1, 51, 5, 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, 31, 6, 0, 0,
- 26, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 5,114, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 72, 0, 0, 0, 72, 50,221, 4, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,160, 0, 0, 0,216, 50,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,152, 57,221, 4, 0, 0, 0, 0,
-104, 43,221, 4, 0, 0, 0, 0, 24, 4,221, 4, 0, 0, 0, 0,136, 4,221, 4, 0, 0, 0, 0,232, 1,221, 4, 0, 0, 0, 0,
-168, 3,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0,233, 3, 0, 0,
- 9, 9, 62, 2, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 54,221, 4, 0, 0, 0, 0,
-168, 54,221, 4, 0, 0, 0, 0,200, 51,221, 4, 0, 0, 0, 0, 56, 53,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-200, 51,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 56, 53,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128, 15, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64, 15, 68, 0, 0,200, 65, 0, 64, 15, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 62, 2, 26, 0, 62, 2, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,141, 1, 0, 0,166, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 56, 53,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 51,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128,181, 67, 0, 0, 0, 0, 0,128,218, 67, 0, 0, 0, 0,131,248, 1, 68, 0, 0, 0, 0, 86, 26, 3, 68,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 61, 2, 0, 0, 0, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0, 62, 2, 67, 2, 62, 2, 67, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 5, 0, 0,126, 7, 0, 0,167, 1, 0, 0,233, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 2, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 2, 0, 0,
-168, 54,221, 4, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,152, 57,221, 4, 0, 0, 0, 0,
-216, 0, 0, 0, 1, 0, 0, 0, 40, 71,221, 4, 0, 0, 0, 0,216, 50,221, 4, 0, 0, 0, 0,248, 4,221, 4, 0, 0, 0, 0,
-104, 5,221, 4, 0, 0, 0, 0,136, 4,221, 4, 0, 0, 0, 0, 24, 4,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 69, 1, 0, 0, 63, 5, 0, 0,141, 1, 0, 0,233, 3, 0, 0, 1, 1,251, 3, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,120, 69,221, 4, 0, 0, 0, 0,120, 69,221, 4, 0, 0, 0, 0,136, 58,221, 4, 0, 0, 0, 0,
- 72, 64,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 58,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-248, 59,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0,192,126, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
- 0,128,126, 68, 0, 0,200, 65, 0,128,126, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0,251, 3, 26, 0,251, 3, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 69, 1, 0, 0, 63, 5, 0, 0,141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-251, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 59,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-104, 61,221, 4, 0, 0, 0, 0,136, 58,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 69, 1, 0, 0, 69, 1, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 67, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 61,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-216, 62,221, 4, 0, 0, 0, 0,248, 59,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0,
- 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 69, 1, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,167, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 62,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 72, 64,221, 4, 0, 0, 0, 0,104, 61,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, 0, 0,109,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,109,196, 0,128,145,195,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0,
- 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,144, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 1, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 0,180, 0,145, 2,163, 0,145, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 63, 5, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 64,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,216, 62,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 69, 1, 0, 0, 63, 5, 0, 0,167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-251, 3, 67, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-184, 65,221, 4, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,184, 65,221, 4, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0,
-190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0, 0,128, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
-190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
-149, 53,207, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,121,107, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255,255,249,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
-190, 35, 30, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 40,139, 61, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,111, 18, 3,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,207, 3,116, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,149, 53,207, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,
-221, 57, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 65, 0, 0, 5, 0,251,251, 0, 0, 92, 62, 55, 63,
- 56,186,224,190,237,203,148,190, 3,236,234,190, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,180, 66, 0, 0,180, 66, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,120, 69,221, 4, 0, 0, 0, 0,
-176, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 7, 0,216,120,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
- 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,122, 68, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 40, 71,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,152, 57,221, 4, 0, 0, 0, 0, 88, 2,221, 4, 0, 0, 0, 0,120, 1,221, 4, 0, 0, 0, 0,
-104, 5,221, 4, 0, 0, 0, 0,248, 4,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,
-141, 1, 0, 0,233, 3, 0, 0, 3, 3, 68, 1, 93, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-248, 74,221, 4, 0, 0, 0, 0,248, 74,221, 4, 0, 0, 0, 0, 24, 72,221, 4, 0, 0, 0, 0,136, 73,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 24, 72,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,136, 73,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,162, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,161, 67, 0, 0,200, 65,
- 0,128,161, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 68, 1,
- 26, 0, 68, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,
-141, 1, 0, 0,166, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 26, 0, 0, 0, 1, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,136, 73,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 24, 72,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,153, 67,
- 0, 64, 12,196, 0, 0, 0, 0, 51, 1, 0, 0, 68, 1, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 50, 1, 0, 0, 18, 0, 0, 0, 66, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4, 6, 0, 68, 1,
- 67, 2, 51, 1, 49, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 1, 0, 0,
-167, 1, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 67, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 1, 0, 0,248, 74,221, 4, 0, 0, 0, 0,181, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,241,190, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,200,241,190, 4, 0, 0, 0, 0,
-238, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 88, 76,221, 4, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,
- 88, 76,221, 4, 0, 0, 0, 0,237, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 19, 0, 0, 0, 1, 0, 1, 0, 40, 92,222, 4, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 40, 92,222, 4, 0, 0, 0, 0,
- 21, 0, 1, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,118,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0,136,127,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,181,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0,232,140,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248,162,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 56,134,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,113,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0,216,120,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,152,112,222, 4, 0, 0, 0, 0,
- 21, 0, 0, 0, 1, 0, 1, 0, 40, 92,222, 4, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0, 24, 78,221, 4, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,248,149,221, 4, 0, 0, 0, 0,104,254,220, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 77,111,116,105,111,110, 32, 84,114, 97, 99,107,105,110,103, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104, 79,221, 4, 0, 0, 0, 0, 24, 85,221, 4, 0, 0, 0, 0,136, 85,221, 4, 0, 0, 0, 0,248, 92,221, 4, 0, 0, 0, 0,
-104, 93,221, 4, 0, 0, 0, 0,168,133,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 92,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104, 79,221, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,216, 79,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,216, 79,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 72, 80,221, 4, 0, 0, 0, 0,104, 79,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 4, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 72, 80,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,184, 80,221, 4, 0, 0, 0, 0,
-216, 79,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 98, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-184, 80,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 40, 81,221, 4, 0, 0, 0, 0, 72, 80,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 40, 81,221, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,152, 81,221, 4, 0, 0, 0, 0,184, 80,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 64, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 81,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 8, 82,221, 4, 0, 0, 0, 0, 40, 81,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 64, 4, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 8, 82,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120, 82,221, 4, 0, 0, 0, 0,
-152, 81,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-120, 82,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232, 82,221, 4, 0, 0, 0, 0, 8, 82,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88, 5, 64, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232, 82,221, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 88, 83,221, 4, 0, 0, 0, 0,120, 82,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,108, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 83,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-200, 83,221, 4, 0, 0, 0, 0,232, 82,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6,108, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,200, 83,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56, 84,221, 4, 0, 0, 0, 0,
- 88, 83,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 56, 84,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168, 84,221, 4, 0, 0, 0, 0,200, 83,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 62, 6,120, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168, 84,221, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 24, 85,221, 4, 0, 0, 0, 0, 56, 84,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-208, 2,120, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24, 85,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,168, 84,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 2, 64, 4, 1, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,136, 85,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248, 85,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,216, 79,221, 4, 0, 0, 0, 0, 72, 80,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,248, 85,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,104, 86,221, 4, 0, 0, 0, 0,
-136, 85,221, 4, 0, 0, 0, 0,216, 79,221, 4, 0, 0, 0, 0, 40, 81,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,104, 86,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 86,221, 4, 0, 0, 0, 0,
-248, 85,221, 4, 0, 0, 0, 0, 72, 80,221, 4, 0, 0, 0, 0,152, 81,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,216, 86,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72, 87,221, 4, 0, 0, 0, 0,
-104, 86,221, 4, 0, 0, 0, 0, 40, 81,221, 4, 0, 0, 0, 0,152, 81,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 72, 87,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184, 87,221, 4, 0, 0, 0, 0,
-216, 86,221, 4, 0, 0, 0, 0,104, 79,221, 4, 0, 0, 0, 0,184, 80,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,184, 87,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 40, 88,221, 4, 0, 0, 0, 0,
- 72, 87,221, 4, 0, 0, 0, 0,104, 79,221, 4, 0, 0, 0, 0,232, 82,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 40, 88,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152, 88,221, 4, 0, 0, 0, 0,
-184, 87,221, 4, 0, 0, 0, 0,184, 80,221, 4, 0, 0, 0, 0, 88, 83,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,152, 88,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8, 89,221, 4, 0, 0, 0, 0,
- 40, 88,221, 4, 0, 0, 0, 0,232, 82,221, 4, 0, 0, 0, 0, 88, 83,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 8, 89,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120, 89,221, 4, 0, 0, 0, 0,
-152, 88,221, 4, 0, 0, 0, 0,232, 82,221, 4, 0, 0, 0, 0,200, 83,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,120, 89,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,232, 89,221, 4, 0, 0, 0, 0,
- 8, 89,221, 4, 0, 0, 0, 0, 40, 81,221, 4, 0, 0, 0, 0,200, 83,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,232, 89,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88, 90,221, 4, 0, 0, 0, 0,
-120, 89,221, 4, 0, 0, 0, 0,152, 81,221, 4, 0, 0, 0, 0, 56, 84,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 88, 90,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200, 90,221, 4, 0, 0, 0, 0,
-232, 89,221, 4, 0, 0, 0, 0, 88, 83,221, 4, 0, 0, 0, 0, 56, 84,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,200, 90,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56, 91,221, 4, 0, 0, 0, 0,
- 88, 90,221, 4, 0, 0, 0, 0,200, 83,221, 4, 0, 0, 0, 0, 56, 84,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 56, 91,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,168, 91,221, 4, 0, 0, 0, 0,
-200, 90,221, 4, 0, 0, 0, 0,200, 83,221, 4, 0, 0, 0, 0,168, 84,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,168, 91,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24, 92,221, 4, 0, 0, 0, 0,
- 56, 91,221, 4, 0, 0, 0, 0, 56, 84,221, 4, 0, 0, 0, 0,168, 84,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 24, 92,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136, 92,221, 4, 0, 0, 0, 0,
-168, 91,221, 4, 0, 0, 0, 0, 40, 81,221, 4, 0, 0, 0, 0, 24, 85,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,136, 92,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248, 92,221, 4, 0, 0, 0, 0,
- 24, 92,221, 4, 0, 0, 0, 0,152, 81,221, 4, 0, 0, 0, 0, 24, 85,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,248, 92,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 92,221, 4, 0, 0, 0, 0,168, 84,221, 4, 0, 0, 0, 0, 24, 85,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,160, 0, 0, 0,104, 93,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 56, 97,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40, 81,221, 4, 0, 0, 0, 0,216, 79,221, 4, 0, 0, 0, 0, 72, 80,221, 4, 0, 0, 0, 0,
-152, 81,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 65, 4, 0, 0, 98, 4, 0, 0,
- 7, 7, 63, 6, 34, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,149,221, 4, 0, 0, 0, 0,
-104,149,221, 4, 0, 0, 0, 0, 88, 94,221, 4, 0, 0, 0, 0,200, 95,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 88, 94,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,200, 95,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,163, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,199, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,199, 68, 0, 0,200, 65, 0,192,199, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 63, 6, 26, 0, 63, 6, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 65, 4, 0, 0, 90, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-200, 95,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 94,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,192,239, 68, 0, 0, 0, 0, 0, 0,200, 65, 0, 0, 0, 0, 0,192,197, 68, 0, 0,128, 64, 0, 0, 64, 65,
- 46, 6, 0, 0, 63, 6, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0, 45, 6, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0, 63, 6, 8, 0, 46, 6, 8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 91, 4, 0, 0, 98, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 6, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
- 56, 97,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 40,102,221, 4, 0, 0, 0, 0,104, 93,221, 4, 0, 0, 0, 0,
-104, 79,221, 4, 0, 0, 0, 0,232, 82,221, 4, 0, 0, 0, 0, 88, 83,221, 4, 0, 0, 0, 0,184, 80,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0,107, 0, 0, 0, 15, 15, 63, 6,108, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,101,221, 4, 0, 0, 0, 0, 8,101,221, 4, 0, 0, 0, 0,
- 40, 98,221, 4, 0, 0, 0, 0,152, 99,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 40, 98,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,152, 99,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,199, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,199, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,192,199, 68, 0, 0,200, 65, 0,192,199, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 63, 6, 26, 0, 63, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 63, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 99,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 98,221, 4, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67,
- 0, 0, 0, 0, 0, 0, 72, 66, 88,218,103,194, 40,147,141, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0,
- 18, 0, 0, 0, 81, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65,
- 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4, 8, 0, 63, 6, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0, 26, 0, 0, 0,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 63, 6, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0, 8,101,221, 4, 0, 0, 0, 0,
-185, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
- 40,102,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,232,117,221, 4, 0, 0, 0, 0, 56, 97,221, 4, 0, 0, 0, 0,
-232, 82,221, 4, 0, 0, 0, 0,200, 83,221, 4, 0, 0, 0, 0, 56, 84,221, 4, 0, 0, 0, 0, 88, 83,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0,109, 0, 0, 0,119, 3, 0, 0, 20, 20, 63, 6, 11, 3, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,116,221, 4, 0, 0, 0, 0,104,116,221, 4, 0, 0, 0, 0,
- 24,103,221, 4, 0, 0, 0, 0,248,114,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,103,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,136,104,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 19, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,199, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,192,199, 68, 0, 0,200, 65, 0,192,199, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 0, 0, 10, 0, 63, 6, 26, 0, 63, 6, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 6, 0, 0,109, 0, 0, 0,134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 63, 6, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,104,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,248,105,221, 4, 0, 0, 0, 0, 24,103,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67,
- 0, 64, 30,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 30,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
- 0, 0, 0, 0,120, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 0, 0, 0, 0,120, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,121, 2,143, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,255, 0, 0, 0,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,160, 0,121, 2, 0, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,105,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 8,109,221, 4, 0, 0, 0, 0,136,104,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67,
- 0, 0,240,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,240,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
- 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,135, 0, 0, 0,254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-104,107,221, 4, 0, 0, 0, 0,104,107,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,107,221, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78,101,119, 32, 83, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,143, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 8,109,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 24,112,221, 4, 0, 0, 0, 0,
-248,105,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 64, 60,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,
- 0, 64, 60,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,240, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,240, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,
-241, 2,143, 0,241, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 5, 0, 0, 62, 6, 0, 0,
-135, 0, 0, 0,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,241, 2, 0, 0, 4, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,110,221, 4, 0, 0, 0, 0,120,110,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,120,110,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,
-103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,
-103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,
-101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,255,143, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,112,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,136,113,221, 4, 0, 0, 0, 0, 8,109,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,
- 0, 64,110,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0,192,105,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,
- 18, 0, 0, 0,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 8, 0, 0, 0, 2, 0, 3, 3, 0, 0, 2, 0, 6, 0,160, 0,185, 3,160, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0,160, 0, 0, 0,135, 0, 0, 0,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,113,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,248,114,221, 4, 0, 0, 0, 0, 24,112,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67,
- 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0, 0,124,146, 72,255,255,127,127, 0, 0, 0, 0, 0, 0, 0, 0,
-105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0,160, 0, 0, 0,135, 0, 0, 0,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,114,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,113,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, 0, 0,128,127, 0, 0,128,255, 0, 0,128,127, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 4, 0, 0,
- 0, 0, 0, 0,241, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68,
- 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,255, 4,241, 2,255, 4,241, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0,158, 5, 0, 0,135, 0, 0, 0,119, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255, 4,241, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,104,116,221, 4, 0, 0, 0, 0,
-198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 17,200, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,160, 0, 0, 0,232,117,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,168,133,221, 4, 0, 0, 0, 0,
- 40,102,221, 4, 0, 0, 0, 0,168, 84,221, 4, 0, 0, 0, 0, 24, 85,221, 4, 0, 0, 0, 0,152, 81,221, 4, 0, 0, 0, 0,
- 56, 84,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 62, 6, 0, 0,121, 3, 0, 0, 63, 4, 0, 0,
- 20, 20,110, 3,199, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,132,221, 4, 0, 0, 0, 0,
- 40,132,221, 4, 0, 0, 0, 0,216,118,221, 4, 0, 0, 0, 0,184,130,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-216,118,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 72,120,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,212, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128, 91, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,109, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64, 91, 68, 0, 0,200, 65, 0, 64, 91, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 0, 0, 10, 0,110, 3, 26, 0,110, 3, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 62, 6, 0, 0,121, 3, 0, 0,146, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 72,120,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,184,121,221, 4, 0, 0, 0, 0,216,118,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128,178, 67, 0, 0, 84,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 84,194, 0, 0, 0, 0,
-143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 53, 0,143, 0, 53, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0,209, 2, 0, 0,147, 3, 0, 0, 63, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-184,121,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,200,124,221, 4, 0, 0, 0, 0, 72,120,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,128,178, 67, 0, 0,240,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0,240,194, 0, 0, 0, 0,
-143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0,209, 2, 0, 0,147, 3, 0, 0, 63, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40,123,221, 4, 0, 0, 0, 0, 40,123,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
- 40,123,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,
-114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,
-114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,101,119, 32, 83, 99,114,101,101,110, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,143, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,124,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
-216,127,221, 4, 0, 0, 0, 0,184,121,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 45,195, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 45,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,172, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,172, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 0, 6, 0,160, 0,173, 0,143, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-209, 2, 0, 0,209, 2, 0, 0,147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,126,221, 4, 0, 0, 0, 0,
- 56,126,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 56,126,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,232,255,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-216,127,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 72,129,221, 4, 0, 0, 0, 0,200,124,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 45,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0, 0, 27,195, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,159, 0, 0, 0, 18, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 8, 4, 0, 0, 2, 0, 3, 3, 0, 0, 2, 4, 6, 0,160, 0,173, 0,160, 0,155, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209, 2, 0, 0,112, 3, 0, 0,147, 3, 0, 0, 63, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,173, 0, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 72,129,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,184,130,221, 4, 0, 0, 0, 0,216,127,221, 4, 0, 0, 0, 0,
- 0, 0, 32,193, 0,128, 91, 68,171,170,132,194, 0, 0, 0, 0, 0, 0, 32,193, 0,128, 91, 68, 0, 0, 27,195, 0, 0, 0, 0,
-189, 2, 0, 0,206, 2, 0, 0, 18, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0,188, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,188, 2, 0, 0, 18, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,146, 72,255,255,127,127,
- 10,215, 35, 60, 0, 0, 72, 66, 74, 0, 0, 0, 0, 0, 0, 2, 16, 0, 2, 4, 4, 0,206, 2,173, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,113, 3, 0, 0, 62, 6, 0, 0,147, 3, 0, 0, 63, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,206, 2,173, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-184,130,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,129,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, 0, 0,128,127, 0, 0,128,255, 0, 0,128,127,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 46, 2, 0, 0, 0, 0, 0, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 10, 0, 46, 2,173, 0, 46, 2,173, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,
- 40,132,221, 4, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,200, 0, 0, 0, 0, 2, 0, 20, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168,133,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,232,117,221, 4, 0, 0, 0, 0,200, 83,221, 4, 0, 0, 0, 0, 40, 81,221, 4, 0, 0, 0, 0,
- 24, 85,221, 4, 0, 0, 0, 0,168, 84,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 2, 0, 0,
-121, 3, 0, 0, 63, 4, 0, 0, 20, 20,208, 2,199, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232,147,221, 4, 0, 0, 0, 0,232,147,221, 4, 0, 0, 0, 0,152,134,221, 4, 0, 0, 0, 0,120,146,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,152,134,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 8,136,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 52, 68,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 51, 68, 0, 0,200, 65,
- 0,192, 51, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 0, 0, 10, 0,208, 2,
- 26, 0,208, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 2, 0, 0,
-121, 3, 0, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 2, 26, 0, 0, 0, 1, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 8,136,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,120,137,221, 4, 0, 0, 0, 0,
-152,134,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0, 84,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,
- 0, 0, 84,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,
- 53, 0,143, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 5, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,120,137,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,136,140,221, 4, 0, 0, 0, 0,
- 8,136,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67, 0, 0,240,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,
- 0, 0,240,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,
-120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,138,221, 4, 0, 0, 0, 0,232,138,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,232,138,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,
-108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,
-108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,101,119, 32, 83, 99,114,101,
-101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,143, 0, 16, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,140,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0,152,143,221, 4, 0, 0, 0, 0,120,137,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,178, 67,
- 0, 0, 45,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 45,195, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0,
- 0, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
- 0, 0, 0, 0,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0,173, 0,143, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-248,141,221, 4, 0, 0, 0, 0,248,141,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,141,221, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 67, 76, 73, 80, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,255,143, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,152,143,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 8,145,221, 4, 0, 0, 0, 0,
-136,140,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 64,110,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67,
- 0,192,105,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 18, 0, 0, 0,184, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 0, 0, 0, 2, 0, 3, 3, 0, 0, 2, 0, 6, 0,160, 0,
-185, 3,160, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 2, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0, 8,145,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,120,146,221, 4, 0, 0, 0, 0,
-152,143,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,122, 67,
- 0, 0, 32,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,172, 0, 0, 0, 18, 0, 0, 0,207, 2, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,207, 2, 0, 0, 18, 0, 0, 0,172, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 0,
- 0,124,146, 72,255,255,127,127, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,208, 2,
-173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,207, 2, 0, 0,
-147, 3, 0, 0, 63, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 2,173, 0, 0, 0, 7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 1, 0, 0,120,146,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,145,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, 0, 0,128,127,
- 0, 0,128,255, 0, 0,128,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 1, 0, 0, 0, 0, 0, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 10, 0,144, 1,
-173, 0,144, 1,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 56, 1, 0, 0,232,147,221, 4, 0, 0, 0, 0,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,200, 0, 0, 0, 0, 1, 0,
- 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,248,149,221, 4, 0, 0, 0, 0,
-212, 0, 0, 0, 1, 0, 0, 0,184,228,221, 4, 0, 0, 0, 0, 24, 78,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 83, 99,114,105,112,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 72,151,221, 4, 0, 0, 0, 0,248,156,221, 4, 0, 0, 0, 0,104,157,221, 4, 0, 0, 0, 0,152,166,221, 4, 0, 0, 0, 0,
- 8,167,221, 4, 0, 0, 0, 0,104,221,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 92,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,151,221, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,184,151,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,151,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 40,152,221, 4, 0, 0, 0, 0, 72,151,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0, 40,152,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152,152,221, 4, 0, 0, 0, 0,
-184,151,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
-152,152,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8,153,221, 4, 0, 0, 0, 0, 40,152,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,153,221, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,120,153,221, 4, 0, 0, 0, 0,152,152,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120,153,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-232,153,221, 4, 0, 0, 0, 0, 8,153,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,168, 3, 0, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,232,153,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,154,221, 4, 0, 0, 0, 0,
-120,153,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,168, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 88,154,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200,154,221, 4, 0, 0, 0, 0,232,153,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,154,221, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0, 56,155,221, 4, 0, 0, 0, 0, 88,154,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,155,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
-168,155,221, 4, 0, 0, 0, 0,200,154,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 5,104, 1, 1, 0, 0, 0,
- 68, 65, 84, 65, 32, 0, 0, 0,168,155,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,156,221, 4, 0, 0, 0, 0,
- 56,155,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,104, 1, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
- 24,156,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136,156,221, 4, 0, 0, 0, 0,168,155,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 5,236, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136,156,221, 4, 0, 0, 0, 0,
-213, 0, 0, 0, 1, 0, 0, 0,248,156,221, 4, 0, 0, 0, 0, 24,156,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-126, 7,236, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,156,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,136,156,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 2,168, 3, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,104,157,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216,157,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,184,151,221, 4, 0, 0, 0, 0, 40,152,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,216,157,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72,158,221, 4, 0, 0, 0, 0,
-104,157,221, 4, 0, 0, 0, 0,184,151,221, 4, 0, 0, 0, 0, 8,153,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 72,158,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184,158,221, 4, 0, 0, 0, 0,
-216,157,221, 4, 0, 0, 0, 0, 40,152,221, 4, 0, 0, 0, 0,120,153,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,184,158,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 40,159,221, 4, 0, 0, 0, 0,
- 72,158,221, 4, 0, 0, 0, 0, 8,153,221, 4, 0, 0, 0, 0,120,153,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 40,159,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152,159,221, 4, 0, 0, 0, 0,
-184,158,221, 4, 0, 0, 0, 0,120,153,221, 4, 0, 0, 0, 0,232,153,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,152,159,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8,160,221, 4, 0, 0, 0, 0,
- 40,159,221, 4, 0, 0, 0, 0,152,152,221, 4, 0, 0, 0, 0, 88,154,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 8,160,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120,160,221, 4, 0, 0, 0, 0,
-152,159,221, 4, 0, 0, 0, 0, 72,151,221, 4, 0, 0, 0, 0,200,154,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,120,160,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,232,160,221, 4, 0, 0, 0, 0,
- 8,160,221, 4, 0, 0, 0, 0, 8,153,221, 4, 0, 0, 0, 0,200,154,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,232,160,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88,161,221, 4, 0, 0, 0, 0,
-120,160,221, 4, 0, 0, 0, 0,232,153,221, 4, 0, 0, 0, 0, 56,155,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 88,161,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200,161,221, 4, 0, 0, 0, 0,
-232,160,221, 4, 0, 0, 0, 0, 88,154,221, 4, 0, 0, 0, 0, 56,155,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,200,161,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56,162,221, 4, 0, 0, 0, 0,
- 88,161,221, 4, 0, 0, 0, 0,200,154,221, 4, 0, 0, 0, 0,168,155,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 56,162,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,168,162,221, 4, 0, 0, 0, 0,
-200,161,221, 4, 0, 0, 0, 0, 56,155,221, 4, 0, 0, 0, 0,168,155,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,168,162,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24,163,221, 4, 0, 0, 0, 0,
- 56,162,221, 4, 0, 0, 0, 0, 88,154,221, 4, 0, 0, 0, 0, 24,156,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 24,163,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136,163,221, 4, 0, 0, 0, 0,
-168,162,221, 4, 0, 0, 0, 0,232,153,221, 4, 0, 0, 0, 0, 24,156,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,136,163,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248,163,221, 4, 0, 0, 0, 0,
- 24,163,221, 4, 0, 0, 0, 0,120,153,221, 4, 0, 0, 0, 0,136,156,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,248,163,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,104,164,221, 4, 0, 0, 0, 0,
-136,163,221, 4, 0, 0, 0, 0,152,152,221, 4, 0, 0, 0, 0,136,156,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,104,164,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216,164,221, 4, 0, 0, 0, 0,
-248,163,221, 4, 0, 0, 0, 0, 24,156,221, 4, 0, 0, 0, 0,136,156,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,216,164,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72,165,221, 4, 0, 0, 0, 0,
-104,164,221, 4, 0, 0, 0, 0, 8,153,221, 4, 0, 0, 0, 0,248,156,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 72,165,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184,165,221, 4, 0, 0, 0, 0,
-216,164,221, 4, 0, 0, 0, 0,232,153,221, 4, 0, 0, 0, 0,248,156,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,184,165,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 40,166,221, 4, 0, 0, 0, 0,
- 72,165,221, 4, 0, 0, 0, 0,168,155,221, 4, 0, 0, 0, 0,248,156,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0, 40,166,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152,166,221, 4, 0, 0, 0, 0,
-184,165,221, 4, 0, 0, 0, 0,200,154,221, 4, 0, 0, 0, 0, 56,155,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 40, 0, 0, 0,152,166,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,166,221, 4, 0, 0, 0, 0, 72,151,221, 4, 0, 0, 0, 0, 88,154,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,160, 0, 0, 0, 8,167,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,216,170,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8,153,221, 4, 0, 0, 0, 0,184,151,221, 4, 0, 0, 0, 0, 40,152,221, 4, 0, 0, 0, 0,
-120,153,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0, 5, 4, 0, 0,
- 7, 7,127, 7, 93, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,228,221, 4, 0, 0, 0, 0,
- 40,228,221, 4, 0, 0, 0, 0,248,167,221, 4, 0, 0, 0, 0,104,169,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-248,167,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,104,169,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,236, 3, 0, 0, 5, 4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-104,169,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,167,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,192,239, 68, 0, 0, 0, 0, 0, 0, 28, 66, 0, 0, 0, 0, 0,192,237, 68, 0, 0, 0, 0, 0, 0,134, 66,
-110, 7, 0, 0,127, 7, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,109, 7, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,127, 7, 67, 0,110, 7, 67, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,169, 3, 0, 0,235, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
-216,170,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,104,195,221, 4, 0, 0, 0, 0, 8,167,221, 4, 0, 0, 0, 0,
- 88,154,221, 4, 0, 0, 0, 0, 24,156,221, 4, 0, 0, 0, 0,136,156,221, 4, 0, 0, 0, 0,152,152,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,235, 2, 0, 0, 4, 4,142, 1,236, 2, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,194,221, 4, 0, 0, 0, 0, 40,194,221, 4, 0, 0, 0, 0,
-200,171,221, 4, 0, 0, 0, 0, 56,173,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,171,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 56,173,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,128,198, 67, 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0,210, 2, 0, 0,235, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,142, 1, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56,173,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,171,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,198, 67,
- 0, 0, 61,196, 0, 0, 0, 0, 0, 0, 0, 0,254,127,190, 67,254,127, 52,196, 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0,
- 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0,
- 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64,
- 10, 1, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,142, 1,210, 2,125, 1,210, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,209, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,142, 1,210, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168,174,221, 4, 0, 0, 0, 0,136,192,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,174,221, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 72,176,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 85, 84, 84, 79, 78, 83, 95, 80, 84, 95, 99,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 67,111,110,116,101,120,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,255,124, 1, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 72,176,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232,177,221, 4, 0, 0, 0, 0,
-168,174,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,124, 1, 61, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,177,221, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0,136,179,221, 4, 0, 0, 0, 0, 72,176,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,136,179,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 40,181,221, 4, 0, 0, 0, 0,
-232,177,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,
-110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,124, 1,203, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,181,221, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0,200,182,221, 4, 0, 0, 0, 0,136,179,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,124, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,200,182,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,104,184,221, 4, 0, 0, 0, 0,
- 40,181,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 97,109,112,108,101,100, 32,
- 77,111,116,105,111,110, 32, 66,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,254,124, 1, 0, 0,
- 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104,184,221, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 8,186,221, 4, 0, 0, 0, 0,200,182,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,254,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 8,186,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,168,187,221, 4, 0, 0, 0, 0,
-104,184,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,112,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,
-110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,242,253,124, 1, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,187,221, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0, 72,189,221, 4, 0, 0, 0, 0, 8,186,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,
-103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,
-103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,253,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0, 72,189,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0,232,190,221, 4, 0, 0, 0, 0,
-168,187,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95,115,116, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,116, 97,109,112, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,253,124, 1, 0, 0,
- 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232,190,221, 4, 0, 0, 0, 0,
-215, 0, 0, 0, 1, 0, 0, 0,136,192,221, 4, 0, 0, 0, 0, 72,189,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253,124, 1,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 88, 1, 0, 0,136,192,221, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-232,190,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
- 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253,124, 1, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 40,194,221, 4, 0, 0, 0, 0,
-180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,160, 0, 0, 0,104,195,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,248,208,221, 4, 0, 0, 0, 0,
-216,170,221, 4, 0, 0, 0, 0,168,155,221, 4, 0, 0, 0, 0,248,156,221, 4, 0, 0, 0, 0,232,153,221, 4, 0, 0, 0, 0,
- 56,155,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0,167, 3, 0, 0,
- 1, 1,247, 2, 63, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,207,221, 4, 0, 0, 0, 0,
- 72,207,221, 4, 0, 0, 0, 0, 88,196,221, 4, 0, 0, 0, 0, 24,202,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 88,196,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,200,197,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,192, 61, 68, 0, 0, 0, 0, 0, 0,208, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,246, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128, 61, 68, 0, 0,200, 65, 0,128, 61, 68, 0, 0,200, 65,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,247, 2, 26, 0,247, 2, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,105, 1, 0, 0,130, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-200,197,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 56,199,221, 4, 0, 0, 0, 0, 88,196,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 67, 0, 64, 70,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255,127, 70,196, 0, 0, 0, 0,
-143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0, 43, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,160, 0, 44, 3,143, 0, 26, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,249, 2, 0, 0,131, 1, 0, 0,167, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 37, 2, 0, 0, 5, 0, 3, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 56,199,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,168,200,221, 4, 0, 0, 0, 0,200,197,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 16, 67, 0, 0,206,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 0, 0,206,194, 0, 0, 0, 0,
-143, 0, 0, 0,160, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,142, 0, 0, 0, 18, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,102, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0,131, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 6, 0, 34, 0, 2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
-168,200,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 24,202,221, 4, 0, 0, 0, 0, 56,199,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 35, 67, 0,128,142,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0, 26,196, 0, 0, 0, 0,
-163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0,121, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0,122, 2,163, 0,104, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,239, 5, 0, 0,131, 1, 0, 0,167, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
- 24,202,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,200,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249, 2, 0, 0,239, 5, 0, 0,131, 1, 0, 0,167, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,203,221, 4, 0, 0, 0, 0, 68, 65, 84, 65,112, 3, 0, 0,
-136,203,221, 4, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 74,141,193, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 1,128,191, 0, 0,128,191,
- 0, 0, 0, 0, 0, 0, 0, 0,225,215,163,188, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0,
- 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0,
- 53,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0,
-164, 96, 68, 65,111,121,173,192,248,209,213, 64, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191,
-117, 90,127, 63,166,235,149, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190,
- 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65,217,236,191, 62, 54,117, 85, 63,224,246, 70,188, 0,160, 32,182,
-252, 5,136,190, 43, 33, 3, 62,235,135, 23, 63, 0, 0, 96, 53,215,104, 25,196,133,132,135, 67, 37, 9,167,195,136,252, 71,194,
- 3, 54, 25, 68,158, 87,135,195,205,209,166, 67,151,254, 71, 66, 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0,
- 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,214,211,111,193, 0, 0,128, 63,178,157,229, 62, 30,132, 27,191,222,160, 81,191,184,158, 81,191,
-117, 90,127, 63,166,235,149, 62, 9, 46,185, 62, 35, 44,185, 62,145,180,109,188,212, 60,173, 63,129, 63,228,190, 42, 61,228,190,
- 0, 0, 0, 0, 0, 0, 0, 0, 96,132,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 45, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190,
-214,211,111, 65,214,211,111, 65, 0, 0, 0, 0, 0, 0, 0, 0,107,227, 29, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 30, 33, 12, 66, 86,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 96, 1, 0, 0, 72,207,221, 4, 0, 0, 0, 0,176, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 51, 51, 51, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,216,120,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0, 0, 0, 12, 66,
- 0, 0,128, 63, 10,215, 35, 60, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
-248,208,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 8,215,221, 4, 0, 0, 0, 0,104,195,221, 4, 0, 0, 0, 0,
- 72,151,221, 4, 0, 0, 0, 0,200,154,221, 4, 0, 0, 0, 0, 56,155,221, 4, 0, 0, 0, 0, 88,154,221, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0,103, 1, 0, 0, 18, 18,240, 5,104, 1, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,213,221, 4, 0, 0, 0, 0, 56,213,221, 4, 0, 0, 0, 0,
-232,209,221, 4, 0, 0, 0, 0, 88,211,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232,209,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 88,211,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,160, 67,
- 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,190, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0,
- 0, 0, 0, 0, 25, 0, 0, 0, 0,224,189, 68, 0, 0,200, 65, 0,224,189, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,240, 5, 26, 0,240, 5, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,211,221, 4, 0, 0, 0, 0,
-217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,209,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68,
- 0, 0, 0, 0, 0, 0, 51, 67, 0, 0, 0, 0, 0,224,187, 68, 0, 0, 0, 0, 0, 0,167, 67,223, 5, 0, 0,240, 5, 0, 0,
- 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 5, 0, 0,
- 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 2, 2, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,240, 5, 78, 1,223, 5, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,239, 5, 0, 0, 26, 0, 0, 0,103, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 5, 78, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,212,221, 4, 0, 0, 0, 0,
-195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 24,205,185, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 24,205,185, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,136, 1, 0, 0, 56,213,221, 4, 0, 0, 0, 0,196, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,212,221, 4, 0, 0, 0, 0,200,212,221, 4,
- 0, 0, 0, 0, 62, 62, 62, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,112,121,116,104,111,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 8, 4, 0, 0, 8, 4, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8,215,221, 4, 0, 0, 0, 0,216, 0, 0, 0,
- 1, 0, 0, 0,104,221,221, 4, 0, 0, 0, 0,248,208,221, 4, 0, 0, 0, 0, 24,156,221, 4, 0, 0, 0, 0,232,153,221, 4,
- 0, 0, 0, 0,120,153,221, 4, 0, 0, 0, 0,136,156,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,
-126, 7, 0, 0,237, 2, 0, 0,167, 3, 0, 0, 3, 3,142, 1,187, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,216,218,221, 4, 0, 0, 0, 0,216,218,221, 4, 0, 0, 0, 0,248,215,221, 4, 0, 0, 0, 0,104,217,221, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248,215,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,104,217,221, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 0,199, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,128,198, 67,
- 0, 0,200, 65, 0,128,198, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0,
- 10, 0,142, 1, 26, 0,142, 1, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,
-126, 7, 0, 0,237, 2, 0, 0, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1, 26, 0,
- 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104,217,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,248,215,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,141, 67, 0, 0,244,194, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,128,190, 67, 0, 0, 15,195, 0, 0, 0, 0,125, 1, 0, 0,142, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,
-124, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,124, 1, 0, 0, 18, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 6, 0, 0, 2, 0, 3, 3, 0, 0, 12, 4,
- 6, 0,142, 1,161, 0,125, 1,143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 5, 0, 0,
-126, 7, 0, 0, 7, 3, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 1,161, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,216,218,221, 4, 0, 0, 0, 0,181, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,251,190, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,200,251,190, 4,
- 0, 0, 0, 0,238, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 56,220,221, 4, 0, 0, 0, 0, 68, 65, 84, 65,
-224, 0, 0, 0, 56,220,221, 4, 0, 0, 0, 0,237, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 40, 92,222, 4,
- 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0, 40, 92,222, 4, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0, 40, 92,222, 4,
- 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 8,118,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,136,127,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,181,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,140,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,248,162,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 56,134,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,113,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,216,120,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,152,112,222, 4,
- 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0, 40, 92,222, 4, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,221,221, 4,
- 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,215,221, 4, 0, 0, 0, 0,200,154,221, 4,
- 0, 0, 0, 0, 8,153,221, 4, 0, 0, 0, 0,248,156,221, 4, 0, 0, 0, 0,168,155,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,105, 1, 0, 0,167, 3, 0, 0, 9, 9,248, 2, 63, 2, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,225,221, 4, 0, 0, 0, 0, 56,225,221, 4, 0, 0, 0, 0, 88,222,221, 4,
- 0, 0, 0, 0,200,223,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,222,221, 4, 0, 0, 0, 0,217, 0, 0, 0,
- 1, 0, 0, 0,200,223,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 67, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 62, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,192, 61, 68, 0, 0,200, 65, 0,192, 61, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,248, 2, 26, 0,248, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,105, 1, 0, 0,130, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,248, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200,223,221, 4, 0, 0, 0, 0,217, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,222,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0,
- 0,192, 22, 68,248,150, 23, 68, 8, 41,100, 68, 46,224, 62, 67,233, 15,206, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0, 0, 0, 0, 0,
- 36, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,215, 35, 60, 0, 0,122, 68, 0, 0, 0, 0,
- 1, 0, 3, 0, 0, 0, 0, 4, 10, 0,248, 2, 37, 2,248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,247, 2, 0, 0,131, 1, 0, 0,167, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,248, 2, 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 2, 0, 0, 56,225,221, 4, 0, 0, 0, 0,190, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,231, 1, 0, 0,243, 1, 0, 0,122, 1, 0, 0,124, 1, 0, 0,231, 1, 0, 0,
-243, 1, 0, 0, 4, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 83, 78, 0, 0, 8, 1, 0, 0,184,228,221, 4, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0,216, 43,222, 4,
- 0, 0, 0, 0,248,149,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 85, 86,
- 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,230,221, 4, 0, 0, 0, 0, 24,233,221, 4,
- 0, 0, 0, 0,136,233,221, 4, 0, 0, 0, 0,232,237,221, 4, 0, 0, 0, 0, 88,238,221, 4, 0, 0, 0, 0,120, 26,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,230,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,120,230,221, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0,120,230,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232,230,221, 4, 0, 0, 0, 0, 8,230,221, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,232,230,221, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88,231,221, 4, 0, 0, 0, 0,120,230,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,126, 7, 5, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88,231,221, 4, 0, 0, 0, 0,213, 0, 0, 0,
- 1, 0, 0, 0,200,231,221, 4, 0, 0, 0, 0,232,230,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200,231,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 56,232,221, 4,
- 0, 0, 0, 0, 88,231,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,234, 3, 1, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0, 56,232,221, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168,232,221, 4, 0, 0, 0, 0,200,231,221, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,168,232,221, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24,233,221, 4, 0, 0, 0, 0, 56,232,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,200, 3,234, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24,233,221, 4, 0, 0, 0, 0,213, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,232,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 3, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136,233,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248,233,221, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,230,221, 4, 0, 0, 0, 0,232,230,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248,233,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,104,234,221, 4,
- 0, 0, 0, 0,136,233,221, 4, 0, 0, 0, 0,120,230,221, 4, 0, 0, 0, 0,200,231,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,234,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216,234,221, 4,
- 0, 0, 0, 0,248,233,221, 4, 0, 0, 0, 0,232,230,221, 4, 0, 0, 0, 0, 56,232,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216,234,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72,235,221, 4,
- 0, 0, 0, 0,104,234,221, 4, 0, 0, 0, 0,200,231,221, 4, 0, 0, 0, 0, 56,232,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72,235,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184,235,221, 4,
- 0, 0, 0, 0,216,234,221, 4, 0, 0, 0, 0,200,231,221, 4, 0, 0, 0, 0,168,232,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184,235,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 40,236,221, 4,
- 0, 0, 0, 0, 72,235,221, 4, 0, 0, 0, 0, 8,230,221, 4, 0, 0, 0, 0, 24,233,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,236,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152,236,221, 4,
- 0, 0, 0, 0,184,235,221, 4, 0, 0, 0, 0, 8,230,221, 4, 0, 0, 0, 0,200,231,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,236,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8,237,221, 4,
- 0, 0, 0, 0, 40,236,221, 4, 0, 0, 0, 0,168,232,221, 4, 0, 0, 0, 0, 24,233,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,237,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120,237,221, 4,
- 0, 0, 0, 0,152,236,221, 4, 0, 0, 0, 0, 56,232,221, 4, 0, 0, 0, 0,168,232,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120,237,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,232,237,221, 4,
- 0, 0, 0, 0, 8,237,221, 4, 0, 0, 0, 0, 88,231,221, 4, 0, 0, 0, 0, 24,233,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232,237,221, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,120,237,221, 4, 0, 0, 0, 0, 88,231,221, 4, 0, 0, 0, 0, 56,232,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 88,238,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 40,242,221, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,231,221, 4, 0, 0, 0, 0,120,230,221, 4, 0, 0, 0, 0,232,230,221, 4,
- 0, 0, 0, 0, 56,232,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0,
- 5, 4, 0, 0, 7, 7,127, 7, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 43,222, 4,
- 0, 0, 0, 0, 72, 43,222, 4, 0, 0, 0, 0, 72,239,221, 4, 0, 0, 0, 0,184,240,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 1, 0, 0, 72,239,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,184,240,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,224,239, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,239, 68, 0, 0,200, 65, 0,192,239, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,127, 7, 26, 0,127, 7,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,235, 3, 0, 0,
- 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127, 7, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 1, 0, 0,184,240,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,239,221, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192,
- 0, 0, 0, 0,112, 7, 0, 0,129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0,
- 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-160, 0, 0, 0, 40,242,221, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,120, 26,222, 4, 0, 0, 0, 0, 88,238,221, 4,
- 0, 0, 0, 0, 8,230,221, 4, 0, 0, 0, 0,200,231,221, 4, 0, 0, 0, 0,168,232,221, 4, 0, 0, 0, 0, 24,233,221, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0,233, 3, 0, 0, 6, 6,200, 3,
-234, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,249,221, 4, 0, 0, 0, 0, 8,249,221, 4,
- 0, 0, 0, 0, 24,243,221, 4, 0, 0, 0, 0,152,247,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,243,221, 4,
- 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,136,244,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,215, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0,114, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-199, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192,113, 68, 0, 0,200, 65, 0,192,113, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,200, 3, 26, 0,200, 3, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136,244,221, 4,
- 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,152,247,221, 4, 0, 0, 0, 0, 24,243,221, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 91, 67, 0,192,115,196, 0, 0, 0, 0, 0, 0, 0, 0,254,255, 74, 67,254,255,115,196, 0, 0, 0, 0,203, 0, 0, 0,
-220, 0, 0, 0, 0, 0, 0, 0,207, 3, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
-202, 0, 0, 0, 0, 0, 0, 0,207, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,208, 3,203, 0,208, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,219, 0, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0,208, 3, 0, 0, 4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,248,245,221, 4, 0, 0, 0, 0,248,245,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,248,245,221, 4,
- 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 77, 65, 71, 69, 95, 80, 84, 95,103,112,101,110, 99,105,108, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,114,101, 97,115,101, 32, 80,101,110, 99,105,108, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,255,202, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,247,221, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,136,244,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67, 51, 51, 43,191,
-154,153,213, 63, 51, 51,131,191,154,153, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 2, 0, 0, 0, 0, 0, 0,208, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0,
-199, 3, 0, 0, 26, 0, 0, 0,233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 2,208, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 40, 33, 0, 0, 8,249,221, 4, 0, 0, 0, 0,189, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 65, 0, 0, 0, 0,154,153,153, 62, 0, 0, 0, 0,100, 0, 0, 0,154,153,153, 62,
-100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120, 26,222, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 40,242,221, 4, 0, 0, 0, 0, 24,233,221, 4, 0, 0, 0, 0,168,232,221, 4, 0, 0, 0, 0, 56,232,221, 4,
- 0, 0, 0, 0, 88,231,221, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,
-233, 3, 0, 0, 1, 1,182, 3,234, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 41,222, 4,
- 0, 0, 0, 0,152, 41,222, 4, 0, 0, 0, 0,104, 27,222, 4, 0, 0, 0, 0,104, 36,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 1, 0, 0,104, 27,222, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,216, 28,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,109, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,181, 3, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 64,109, 68, 0, 0,200, 65, 0, 64,109, 68,
- 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,182, 3, 26, 0,182, 3,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,182, 3, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 1, 0, 0,216, 28,222, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,232, 31,222, 4, 0, 0, 0, 0,104, 27,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 67, 0, 0, 86,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 86,196,
- 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 87, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0, 88, 3,143, 0,
- 88, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0,146, 0, 0, 0,
-233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 88, 3, 0, 0, 5, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 30,222, 4, 0, 0, 0, 0, 72, 30,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 88, 1, 0, 0, 72, 30,222, 4, 0, 0, 0, 0,215, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,
-111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,
-111,108,115, 95,111, 98,106,101, 99,116,109,111,100,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 98,106,101, 99,116, 32, 84,111,111,108,115,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,233,253,143, 0,255, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 31,222, 4, 0, 0, 0, 0,217, 0, 0, 0,
- 1, 0, 0, 0,248, 34,222, 4, 0, 0, 0, 0,216, 28,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0,242,194,
- 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67, 91, 90,242,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,
-119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,
-119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0,
- 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,201, 3, 0, 0,104, 4, 0, 0, 26, 0, 0, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,160, 0,120, 0, 0, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 33,222, 4,
- 0, 0, 0, 0, 88, 33,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 33,222, 4, 0, 0, 0, 0,215, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,108, 97,115,116, 95,111,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 79,112,101,114, 97,116,111,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 1, 0, 0,248, 34,222, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,104, 36,222, 4, 0, 0, 0, 0,232, 31,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,128,126,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67,255,191,126,196,
- 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,
- 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 18, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 0, 6, 0,180, 0, 13, 4,163, 0,
-251, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,
-233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 1, 0, 0,104, 36,222, 4, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 34,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105, 4, 0, 0,126, 7, 0, 0, 26, 0, 0, 0,
-233, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 3,208, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 37,222, 4, 0, 0, 0, 0, 68, 65, 84, 65,
-112, 3, 0, 0,216, 37,222, 4, 0, 0, 0, 0,175, 0, 0, 0, 1, 0, 0, 0, 72,246,172, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 13,128,191,
- 0, 0,128,191, 0, 0, 0, 0, 0, 0, 0, 0, 74,215, 76,190, 0, 0, 0, 0, 68,239,209, 62, 51,177,205,190,184,158, 81, 63,
- 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63, 69,239,209, 62, 70,119,105, 63,160, 84, 89,188,
- 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62,
- 0, 0, 0, 0,188,173, 54, 64,136, 95,161,191,147,231,198, 63, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, 48,180, 81,191,
-184,158, 81,191,189,188,157, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63,138, 84,228,190,
- 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64,121, 92,155, 62,151,198, 44, 63,192,214, 32,188,
- 0, 0, 40,180,195, 15,188,190,132, 75, 53, 62,216,125, 81, 63, 0, 0,192,179,115, 77,100,193, 17,173,201, 64,181,148,248,192,
-203,247,159,192,233, 74, 87, 65,247, 46,190,192, 88,106,234, 64, 45, 8,160, 64, 68,239,209, 62, 51,177,205,190,184,158, 81, 63,
- 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 95,192, 0, 0,128, 63,185,214, 13, 63,208,249,224,190, 48,180, 81,191,
-184,158, 81,191,189,188,157, 63,140,225, 88, 62, 26, 63,185, 62, 35, 44,185, 62,241,213,146,188,206,156,122, 63,138, 84,228,190,
- 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,100, 98, 82, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,201,250, 62,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 92, 62, 55, 63, 56,186,224,190,237,203,148,190,
- 3,236,234,190, 0, 25, 95, 64, 0, 25, 95, 64, 0, 0, 0, 0, 0, 0, 0, 0,114,145,245, 58, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 30, 33, 12, 66, 85,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 96, 1, 0, 0,152, 41,222, 4, 0, 0, 0, 0,176, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 32, 65,205,204, 76, 62, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0,216,120,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 3, 0, 8, 8,128, 0,
- 0, 0, 12, 66, 0, 0,128, 63,205,204,204, 61, 0, 0,250, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 10, 0, 7, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,
- 8, 1, 0, 0,216, 43,222, 4, 0, 0, 0, 0,212, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,228,221, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116,
-105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 45,222, 4, 0, 0, 0, 0,248, 49,222, 4, 0, 0, 0, 0,104, 50,222, 4,
- 0, 0, 0, 0,216, 57,222, 4, 0, 0, 0, 0, 72, 58,222, 4, 0, 0, 0, 0,168, 83,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0, 40, 45,222, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,152, 45,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,152, 45,222, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 8, 46,222, 4, 0, 0, 0, 0, 40, 45,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,222, 2, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8, 46,222, 4, 0, 0, 0, 0,213, 0, 0, 0,
- 1, 0, 0, 0,120, 46,222, 4, 0, 0, 0, 0,152, 45,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4,222, 2,
- 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 46,222, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,232, 46,222, 4,
- 0, 0, 0, 0, 8, 46,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0,232, 46,222, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 88, 47,222, 4, 0, 0, 0, 0,120, 46,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 47,222, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,200, 47,222, 4, 0, 0, 0, 0,232, 46,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240, 4,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,200, 47,222, 4, 0, 0, 0, 0,213, 0, 0, 0,
- 1, 0, 0, 0, 56, 48,222, 4, 0, 0, 0, 0, 88, 47,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 92, 1,
- 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56, 48,222, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,168, 48,222, 4,
- 0, 0, 0, 0,200, 47,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 32, 0, 0, 0,168, 48,222, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 24, 49,222, 4, 0, 0, 0, 0, 56, 48,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 2,195, 2, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 24, 49,222, 4,
- 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0,136, 49,222, 4, 0, 0, 0, 0,168, 48,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 92, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136, 49,222, 4, 0, 0, 0, 0,213, 0, 0, 0,
- 1, 0, 0, 0,248, 49,222, 4, 0, 0, 0, 0, 24, 49,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 2, 92, 1,
- 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 49,222, 4, 0, 0, 0, 0,213, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,136, 49,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 68, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,104, 50,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 50,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,152, 45,222, 4, 0, 0, 0, 0, 8, 46,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,216, 50,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 72, 51,222, 4, 0, 0, 0, 0,104, 50,222, 4,
- 0, 0, 0, 0,152, 45,222, 4, 0, 0, 0, 0,232, 46,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 72, 51,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,184, 51,222, 4, 0, 0, 0, 0,216, 50,222, 4,
- 0, 0, 0, 0, 8, 46,222, 4, 0, 0, 0, 0, 88, 47,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,184, 51,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 40, 52,222, 4, 0, 0, 0, 0, 72, 51,222, 4,
- 0, 0, 0, 0,232, 46,222, 4, 0, 0, 0, 0, 88, 47,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 40, 52,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,152, 52,222, 4, 0, 0, 0, 0,184, 51,222, 4,
- 0, 0, 0, 0, 88, 47,222, 4, 0, 0, 0, 0,200, 47,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,152, 52,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 8, 53,222, 4, 0, 0, 0, 0, 40, 52,222, 4,
- 0, 0, 0, 0, 40, 45,222, 4, 0, 0, 0, 0, 56, 48,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 8, 53,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,120, 53,222, 4, 0, 0, 0, 0,152, 52,222, 4,
- 0, 0, 0, 0,232, 46,222, 4, 0, 0, 0, 0,168, 48,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,120, 53,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,232, 53,222, 4, 0, 0, 0, 0, 8, 53,222, 4,
- 0, 0, 0, 0, 56, 48,222, 4, 0, 0, 0, 0, 24, 49,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,232, 53,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 88, 54,222, 4, 0, 0, 0, 0,120, 53,222, 4,
- 0, 0, 0, 0, 24, 49,222, 4, 0, 0, 0, 0,136, 49,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 88, 54,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,200, 54,222, 4, 0, 0, 0, 0,232, 53,222, 4,
- 0, 0, 0, 0,168, 48,222, 4, 0, 0, 0, 0,136, 49,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,200, 54,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 56, 55,222, 4, 0, 0, 0, 0, 88, 54,222, 4,
- 0, 0, 0, 0,200, 47,222, 4, 0, 0, 0, 0,248, 49,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 56, 55,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,168, 55,222, 4, 0, 0, 0, 0,200, 54,222, 4,
- 0, 0, 0, 0,120, 46,222, 4, 0, 0, 0, 0,248, 49,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,168, 55,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 24, 56,222, 4, 0, 0, 0, 0, 56, 55,222, 4,
- 0, 0, 0, 0, 56, 48,222, 4, 0, 0, 0, 0,248, 49,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0, 24, 56,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,136, 56,222, 4, 0, 0, 0, 0,168, 55,222, 4,
- 0, 0, 0, 0, 40, 45,222, 4, 0, 0, 0, 0,120, 46,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,136, 56,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,248, 56,222, 4, 0, 0, 0, 0, 24, 56,222, 4,
- 0, 0, 0, 0, 88, 47,222, 4, 0, 0, 0, 0,168, 48,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,248, 56,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,104, 57,222, 4, 0, 0, 0, 0,136, 56,222, 4,
- 0, 0, 0, 0,200, 47,222, 4, 0, 0, 0, 0,136, 49,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,104, 57,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0,216, 57,222, 4, 0, 0, 0, 0,248, 56,222, 4,
- 0, 0, 0, 0,232, 46,222, 4, 0, 0, 0, 0, 24, 49,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,216, 57,222, 4, 0, 0, 0, 0,214, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 57,222, 4,
- 0, 0, 0, 0,200, 47,222, 4, 0, 0, 0, 0, 24, 49,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-160, 0, 0, 0, 72, 58,222, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 24, 62,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,232, 46,222, 4, 0, 0, 0, 0,152, 45,222, 4, 0, 0, 0, 0, 8, 46,222, 4, 0, 0, 0, 0, 88, 47,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,222, 2, 0, 0, 7, 7,241, 4,
- 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 91,222, 4, 0, 0, 0, 0,152, 91,222, 4,
- 0, 0, 0, 0, 56, 59,222, 4, 0, 0, 0, 0,168, 60,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 59,222, 4,
- 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,168, 60,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,128,148, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,196, 2, 0, 0,221, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168, 60,222, 4,
- 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 59,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0,240,109, 69, 0, 0,128,192, 0, 0, 0, 0, 0, 0, 0, 0,255,255,109, 69, 0, 0, 0,192, 0, 0, 0, 0,112, 7, 0, 0,
-129, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
-111, 7, 0, 0, 18, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3, 2, 0, 0, 4, 10, 0,129, 7, 2, 0,112, 7, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,222, 2, 0, 0,222, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 24, 62,222, 4,
- 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 8, 67,222, 4, 0, 0, 0, 0, 72, 58,222, 4, 0, 0, 0, 0, 40, 45,222, 4,
- 0, 0, 0, 0, 56, 48,222, 4, 0, 0, 0, 0,248, 49,222, 4, 0, 0, 0, 0,120, 46,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 15, 15,241, 4, 68, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 65,222, 4, 0, 0, 0, 0,232, 65,222, 4, 0, 0, 0, 0, 8, 63,222, 4,
- 0, 0, 0, 0,120, 64,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 63,222, 4, 0, 0, 0, 0,217, 0, 0, 0,
- 1, 0, 0, 0,120, 64,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,140, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 64,222, 4, 0, 0, 0, 0,217, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 63,222, 4, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67, 0, 0, 0, 0,
- 0, 0, 72, 66,112,189, 17,192,246, 70,125, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 18, 0, 0, 0,
- 41, 0, 0, 0, 0, 0,128, 63, 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0,
- 0, 0, 0, 2, 4, 0, 0, 4, 8, 0,241, 4, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 26, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,241, 4, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,208, 0, 0, 0,232, 65,222, 4, 0, 0, 0, 0,185, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0, 8, 67,222, 4,
- 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,248, 74,222, 4, 0, 0, 0, 0, 24, 62,222, 4, 0, 0, 0, 0, 56, 48,222, 4,
- 0, 0, 0, 0, 24, 49,222, 4, 0, 0, 0, 0,200, 47,222, 4, 0, 0, 0, 0,248, 49,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 69, 0, 0, 0, 91, 1, 0, 0, 8, 8,241, 4, 23, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 73,222, 4, 0, 0, 0, 0,184, 73,222, 4, 0, 0, 0, 0,248, 67,222, 4,
- 0, 0, 0, 0, 72, 72,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,248, 67,222, 4, 0, 0, 0, 0,217, 0, 0, 0,
- 1, 0, 0, 0,104, 69,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 26, 68, 0, 0, 0, 0,
- 0, 0,208, 65, 0, 0, 0, 0, 0, 32,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0, 0,158, 68, 0, 0,200, 65, 0, 0,158, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,241, 4, 26, 0,241, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0, 69, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,241, 4, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,104, 69,222, 4, 0, 0, 0, 0,217, 0, 0, 0,
- 1, 0, 0, 0,216, 70,222, 4, 0, 0, 0, 0,248, 67,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 67, 0, 0,125,195,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 67, 1, 0,125,195, 0, 0, 0, 0,203, 0, 0, 0,220, 0, 0, 0, 0, 0, 0, 0,
-252, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0,
-252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0,
- 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,220, 0,253, 0,203, 0,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 21, 4, 0, 0,240, 4, 0, 0, 95, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,220, 0,253, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,216, 70,222, 4, 0, 0, 0, 0,217, 0, 0, 0,
- 1, 0, 0, 0, 72, 72,222, 4, 0, 0, 0, 0,104, 69,222, 4, 0, 0, 0, 0, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196,
- 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0,
- 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 0, 0, 91, 1, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 72, 72,222, 4, 0, 0, 0, 0,217, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 70,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0,
- 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,
-252, 0, 0, 0, 18, 0, 0, 0, 20, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 20, 4, 0, 0, 18, 0, 0, 0,
-252, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 63, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60, 0, 0,200, 66,105, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 21, 4,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 0, 0, 95, 0, 0, 0, 91, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 21, 4,253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,184, 73,222, 4, 0, 0, 0, 0,186, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,248, 74,222, 4,
- 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0,168, 83,222, 4, 0, 0, 0, 0, 8, 67,222, 4, 0, 0, 0, 0, 24, 49,222, 4,
- 0, 0, 0, 0,232, 46,222, 4, 0, 0, 0, 0,168, 48,222, 4, 0, 0, 0, 0,136, 49,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 93, 1, 0, 0,194, 2, 0, 0, 2, 2, 48, 2,102, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 81,222, 4, 0, 0, 0, 0,168, 81,222, 4, 0, 0, 0, 0,232, 75,222, 4,
- 0, 0, 0, 0, 56, 80,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 75,222, 4, 0, 0, 0, 0,217, 0, 0, 0,
- 1, 0, 0, 0, 88, 77,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 89, 68, 0, 0, 0, 0,
- 0, 0,208, 65,154,216, 65, 55, 0, 0, 12, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 0,192, 11, 68, 0, 0,200, 65, 0,192, 11, 68, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 2, 0, 3, 3, 4, 0, 12, 0, 10, 0, 48, 2, 26, 0, 48, 2, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 47, 2, 0, 0, 93, 1, 0, 0,118, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 48, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88, 77,222, 4, 0, 0, 0, 0,217, 0, 0, 0,
- 1, 0, 0, 0,200, 78,222, 4, 0, 0, 0, 0,232, 75,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,112,193,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 67, 0, 0,157,195, 0, 0, 0, 0,200, 0, 0, 0,217, 0, 0, 0, 18, 0, 0, 0,
- 75, 1, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,199, 0, 0, 0, 18, 0, 0, 0,
- 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 10, 6, 0, 0,
- 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,217, 0, 76, 1,200, 0, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,216, 0, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,217, 0, 76, 1, 0, 0, 2, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,200, 78,222, 4, 0, 0, 0, 0,217, 0, 0, 0,
- 1, 0, 0, 0, 56, 80,222, 4, 0, 0, 0, 0, 88, 77,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 47, 2, 0, 0, 47, 2, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 56, 80,222, 4, 0, 0, 0, 0,217, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 78,222, 4, 0, 0, 0, 0, 0, 0, 16,193, 0, 0,130, 67, 0, 0,160,192,
- 0, 0,160, 64, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 16,193, 0, 0, 32, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,
- 75, 1, 0, 0, 18, 0, 0, 0, 86, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 86, 1, 0, 0, 18, 0, 0, 0,
- 75, 1, 0, 0,111, 18,131, 58,111, 18,131, 58, 0,124,146, 72, 0, 80, 67, 71, 0, 0, 0, 0, 0, 0, 0, 0,105, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 87, 1, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,217, 0, 0, 0, 47, 2, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 87, 1, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0,168, 81,222, 4, 0, 0, 0, 0,182, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 82,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 0, 0, 0,232, 82,222, 4,
- 0, 0, 0, 0, 38, 1, 0, 0, 1, 0, 0, 0, 40, 92,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-160, 0, 0, 0,168, 83,222, 4, 0, 0, 0, 0,216, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 74,222, 4,
- 0, 0, 0, 0,136, 49,222, 4, 0, 0, 0, 0,168, 48,222, 4, 0, 0, 0, 0, 88, 47,222, 4, 0, 0, 0, 0,200, 47,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0, 93, 1, 0, 0,194, 2, 0, 0, 8, 8,192, 2,
-102, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 90,222, 4, 0, 0, 0, 0, 88, 90,222, 4,
- 0, 0, 0, 0,152, 84,222, 4, 0, 0, 0, 0,232, 88,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 84,222, 4,
- 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 8, 86,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,245, 67, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 48, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-191, 2, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,192, 47, 68, 0, 0,200, 65, 0,192, 47, 68, 0, 0,200, 65, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3, 4, 0, 12, 0, 10, 0,192, 2, 26, 0,192, 2, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0, 93, 1, 0, 0,118, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 2, 26, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 86,222, 4,
- 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,120, 87,222, 4, 0, 0, 0, 0,152, 84,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 4, 0, 0,240, 4, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 4, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,120, 87,222, 4,
- 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,232, 88,222, 4, 0, 0, 0, 0, 8, 86,222, 4, 0, 0, 0, 0, 0, 0,240,195,
- 0, 0,240, 67, 0, 0,135,195, 0, 0,135, 67,238, 33,143,196,238, 33,143, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-191, 2, 0, 0, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55,
- 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 4, 0, 0,192, 2, 76, 1,192, 2, 76, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 2, 0, 0,240, 4, 0, 0,119, 1, 0, 0,194, 2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 2, 76, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,232, 88,222, 4,
- 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 87,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0,
- 17, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,
-201, 2, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 32, 65, 0, 0, 0, 63, 0,124,146, 72, 0, 0, 0, 66, 10,215, 35, 60,
- 0, 0,200, 66,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,202, 2, 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,240, 0, 0, 0, 88, 90,222, 4,
- 0, 0, 0, 0,186, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 0, 0,
-232, 11, 0, 0, 40, 92,222, 4, 0, 0, 0, 0,173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 67, 83, 99,101,110,101, 0,116, 97,103,101,
- 0, 97,105,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 88,104,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 8,118,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,105,222, 4, 0, 0, 0, 0, 8,106,222, 4, 0, 0, 0, 0, 40,105,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,106,222, 4,
- 0, 0, 0, 0,216, 62, 2,224,255,127, 0, 0, 17, 2, 24, 0, 90, 90, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,192, 0, 0, 0, 68,172, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 0, 0, 0,100, 0, 0, 0, 0, 0, 1, 0,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 0, 0, 6, 0, 50, 0,141, 0,128, 7, 56, 4, 8, 0, 8, 0, 24, 0, 17, 0, 0, 0, 90, 0, 1, 0,
- 81, 0, 0, 0, 23, 0, 33, 0, 2, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 8, 0, 24, 0, 10, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,110,222, 4, 0, 0, 0, 0,136,110,222, 4, 0, 0, 0, 0, 0, 0, 1, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,116,109,112,
- 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 5, 0, 0,
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 16, 0, 0, 0,128, 63, 0, 0,128, 63,173, 2, 95, 0,
-154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 66, 76, 69, 78, 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 96,164, 61, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 48,190, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 91,145, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 5, 0,205,204,204, 61,154,153,153, 62,205,204, 76, 62,219, 15, 73, 63,102,102,102, 63, 0, 0, 0, 64,
-154,153, 25, 63, 0, 0, 64, 65,102,102,166, 63, 0, 0, 0, 65, 0, 0,160, 65, 6, 0, 0, 0, 0, 0,192, 64, 0, 0,128, 63,
- 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 32, 0, 0, 0, 32, 0, 1, 0,128, 0, 5, 0,218, 0, 0, 0, 60, 0, 5, 0,
- 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 64,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,195,245, 28,193, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-128, 0, 0, 0, 88,104,222, 4, 0, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40,105,222, 4,
- 0, 0, 0, 0,145, 0, 0, 0, 1, 0, 0, 0,152,105,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 0, 0,226, 2,214, 1,136,127,222, 4, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152,105,222, 4,
- 0, 0, 0, 0,145, 0, 0, 0, 1, 0, 0, 0, 8,106,222, 4, 0, 0, 0, 0, 40,105,222, 4, 0, 0, 0, 0, 1, 0, 0, 0,
- 2, 0, 0, 0, 0, 4, 0, 0,185, 3, 32, 3, 56,134,222, 4, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8,106,222, 4,
- 0, 0, 0, 0,145, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,105,222, 4, 0, 0, 0, 0, 1, 0, 0, 0,
- 3, 0, 0, 0, 0, 4, 0, 0,163, 0, 59, 2,216,120,222, 4, 0, 0, 0, 0, 68, 65, 84, 65,248, 1, 0, 0,120,106,222, 4,
- 0, 0, 0, 0,169, 0, 0, 0, 1, 0, 0, 0,184,108,222, 4, 0, 0, 0, 0, 72,109,222, 4, 0, 0, 0, 0,216,109,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0,
- 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0, 32, 0, 32, 0, 32, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 80, 0, 0, 2, 0, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 5, 0, 5, 0,255,255, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 66, 50, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 10,215, 35, 60,205,204,204, 61,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,250, 0,205,204,204, 61,205,204,204, 61,102,102,166, 63, 0, 0,192, 63, 0, 0,240, 65,
- 72,225,122, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 67, 2, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
- 35, 0, 0, 0,204,197,121, 63, 0, 0, 0, 63, 35, 0, 0, 0, 21,178,129, 63, 0, 0, 0, 63, 0, 0,128, 63, 49, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 64, 0, 0, 0,184,108,222, 4, 0, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0,104, 24,223, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 0, 0, 0, 72,109,222, 4, 0, 0, 0, 0,166, 0, 0, 0, 1, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,200,200,255,128, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,104, 0, 0, 0,216,109,222, 4,
- 0, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,100,100,128,
- 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,190,110,250, 66,
- 72,134,143, 65,216, 8, 42, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,128, 0, 0, 0,136,110,222, 4,
- 0, 0, 0, 0,151, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,
-101,114, 76, 97,121,101,114, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,127, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,200, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 22, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 67, 65, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63,205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63,
- 0, 0, 0, 66, 0, 0,144, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0, 16, 2, 0, 0,168,113,222, 4, 0, 0, 0, 0, 35, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 76, 65, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 8,116,222, 4, 0, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65,
- 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0,
- 1, 0, 0, 0, 0, 2, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 32, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,152,117,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 8,116,222, 4,
- 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0,
- 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, 40, 5,191, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 40, 5,191, 4, 0, 0, 0, 0,125, 1, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 40, 0, 0, 0,152,117,222, 4, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,
- 24, 2, 0, 0, 8,118,222, 4, 0, 0, 0, 0,144, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,114,108,100, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 99, 80, 61,
-114, 99, 80, 61,114, 99, 80, 61,199, 54, 36, 60,199, 54, 36, 60,199, 54, 36, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65,
- 0, 0, 0, 0, 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 64, 0, 0,200, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0,
- 0, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,120,222, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104,120,222, 4, 0, 0, 0, 0, 12, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,128, 5, 0, 0,216,120,222, 4, 0, 0, 0, 0,131, 0, 0, 0,
- 1, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 79, 66, 67, 97,109,101,114, 97, 0, 97,109,101,114, 97, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,112,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,
-250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63,222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,227,251,159, 62, 55, 53,101, 63,
- 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 1, 0,128, 63, 1, 0,128, 51, 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0,128, 63, 1, 0,128, 51,
- 0, 0, 0, 0, 2, 0, 0,179, 2, 0, 0,167, 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 53, 1, 0, 0, 41, 1, 0,128,168,
- 0, 0,128, 63,221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191,
- 0, 0, 0, 0,192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,187,225, 16, 63,
- 0, 0,128, 63,205,204,204, 62,237, 54, 32, 63, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 1, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,168,126,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,168,126,222, 4, 0, 0, 0, 0,134, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62, 10,215,163, 60,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 79, 66, 0, 0,128, 5, 0, 0,136,127,222, 4,
- 0, 0, 0, 0,131, 0, 0, 0, 1, 0, 0, 0, 56,134,222, 4, 0, 0, 0, 0,216,120,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,136,133, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,181,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
- 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,105,149, 3, 0, 0, 0, 0, 88,106,186, 4,
- 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0,
- 0, 0, 68, 0, 0, 0, 7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201,
- 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,133,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,222,186, 4, 0, 0, 0, 0,216,236,188, 4,
- 0, 0, 0, 0, 25, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,248,105,149, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 88,106,186, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 88,133,222, 4, 0, 0, 0, 0,134, 0, 0, 0, 1, 0, 0, 0,
- 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,205,204,204, 61,205,204, 76, 62,
- 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 79, 66, 0, 0,128, 5, 0, 0,
- 56,134,222, 4, 0, 0, 0, 0,131, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,127,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,113,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,229,123, 38, 63, 87, 43, 98, 61,
-229,229,238, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,236, 13, 98,189, 0, 0, 0, 0,
-221,102, 69,191, 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, 0, 0, 0, 0,
-154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 1, 0,128, 50, 0, 0, 0,179, 0, 0, 0, 0,
- 1, 0,128, 50, 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 1, 0, 0, 39, 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, 54,236,148,190,221,102, 69,191, 38,255, 16, 63, 0, 0, 0, 0,
- 24,134,116, 63, 57,174, 76,190,239,161, 95, 62, 0, 0, 0, 0,237, 13, 98,189, 35,194, 26, 63,166,111, 75, 63, 0, 0, 0, 0,
-209, 19, 13, 63,241, 65,102,190, 10, 10,231,192, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
- 5, 0, 1, 0, 0, 0, 68, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0,
- 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 5, 0, 1, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,140,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0, 8,140,222, 4, 0, 0, 0, 0,
-134, 0, 0, 0, 1, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-205,204,204, 61,205,204, 76, 62, 10,215,163, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
- 77, 65, 0, 0,128, 3, 0, 0,232,140,222, 4, 0, 0, 0, 0, 38, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 65, 77, 97,116,101,114,105,
- 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,205,204, 76, 63,
-205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 10,215, 35, 60, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 50, 0,
-205,204, 76, 62, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0,160, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 2, 0,
- 50, 0, 0, 6, 0, 0,128, 63, 0, 0,128, 63, 18, 0, 18, 0, 10,215,163, 59, 10,215,163, 59, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 4, 0, 67, 0, 64, 3, 67, 0, 64, 3, 1, 0, 4, 0, 12, 0, 4, 0, 0, 0, 0, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
- 0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
-184,144,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56,146,222, 4, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,
-205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,
-184,144,222, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-248,162,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 40, 0, 0, 0, 56,146,222, 4, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0,
- 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 53, 0, 53, 0,168,146,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,168,146,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 51, 2, 2, 2, 51, 6, 6, 6,153, 6, 6, 6,153,
- 6, 6, 6,153, 4, 4, 4,102, 3, 3, 3,102, 2, 2, 2, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 3, 3, 51, 8, 8, 8,153, 11, 11, 11,204, 13, 13, 13,255, 12, 12, 12,255, 12, 12, 12,255, 11, 11, 11,255,
- 10, 10, 10,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 51,
- 10, 10, 10,153, 18, 18, 18,255, 20, 20, 20,255, 22, 22, 22,255, 23, 23, 23,255, 22, 22, 22,255, 20, 20, 20,255, 19, 19, 19,255,
- 16, 16, 16,255, 14, 14, 14,255, 11, 11, 11,255, 10, 10, 10,255, 9, 9, 9,255, 9, 9, 9,255, 9, 9, 9,255, 8, 8, 8,204,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7,102, 19, 19, 19,204,
- 27, 27, 27,255, 31, 31, 31,255, 32, 32, 32,255, 33, 33, 33,255, 33, 33, 33,255, 31, 31, 31,255, 30, 30, 30,255, 27, 27, 27,255,
- 25, 25, 25,255, 22, 22, 22,255, 19, 19, 19,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255, 10, 10, 10,255, 10, 10, 10,255,
- 10, 10, 10,255, 4, 4, 4,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,153, 29, 29, 29,255, 37, 37, 37,255,
- 40, 40, 40,255, 42, 42, 42,255, 42, 42, 42,255, 43, 43, 43,255, 41, 41, 41,255, 40, 40, 40,255, 38, 38, 38,255, 36, 36, 36,255,
- 33, 33, 33,255, 30, 30, 30,255, 27, 27, 27,255, 24, 24, 24,255, 20, 20, 20,255, 16, 16, 16,255, 12, 12, 12,255, 10, 10, 10,255,
- 10, 10, 10,255, 10, 10, 10,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 37, 37, 37,255, 44, 44, 44,255, 48, 48, 48,255,
- 50, 50, 50,255, 51, 51, 51,255, 51, 51, 51,255, 50, 50, 50,255, 49, 49, 49,255, 48, 48, 48,255, 45, 45, 45,255, 43, 43, 43,255,
- 41, 41, 41,255, 37, 37, 37,255, 34, 34, 34,255, 31, 31, 31,255, 28, 28, 28,255, 24, 24, 24,255, 20, 20, 20,255, 15, 15, 15,255,
- 11, 11, 11,255, 10, 10, 10,255, 11, 11, 11,255, 7, 7, 7,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13,102, 41, 41, 41,255, 50, 50, 50,255, 54, 54, 54,255, 57, 57, 57,255,
- 58, 58, 58,255, 59, 59, 59,255, 59, 59, 59,255, 58, 58, 58,255, 57, 57, 57,255, 55, 55, 55,255, 53, 53, 53,255, 51, 51, 51,255,
- 48, 48, 48,255, 45, 45, 45,255, 41, 41, 41,255, 38, 38, 38,255, 35, 35, 35,255, 31, 31, 31,255, 27, 27, 27,255, 23, 23, 23,255,
- 17, 17, 17,255, 12, 12, 12,255, 11, 11, 11,255, 11, 11, 11,255, 5, 5, 5,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 36, 36,204, 53, 53, 53,255, 59, 59, 59,255, 63, 63, 63,255, 65, 65, 65,255,
- 66, 66, 66,255, 66, 66, 66,255, 66, 66, 66,255, 65, 65, 65,255, 64, 64, 64,255, 62, 62, 62,255, 60, 60, 60,255, 57, 57, 57,255,
- 54, 54, 54,255, 51, 51, 51,255, 48, 48, 48,255, 44, 44, 44,255, 41, 41, 41,255, 37, 37, 37,255, 33, 33, 33,255, 29, 29, 29,255,
- 24, 24, 24,255, 19, 19, 19,255, 13, 13, 13,255, 11, 11, 11,255, 12, 12, 12,255, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19,102, 56, 56, 56,255, 64, 64, 64,255, 68, 68, 68,255, 71, 71, 71,255, 73, 73, 73,255,
- 74, 74, 74,255, 74, 74, 74,255, 73, 73, 73,255, 72, 72, 72,255, 71, 71, 71,255, 69, 69, 69,255, 67, 67, 67,255, 64, 64, 64,255,
- 61, 61, 61,255, 58, 58, 58,255, 54, 54, 54,255, 50, 50, 50,255, 47, 47, 47,255, 43, 43, 43,255, 39, 39, 39,255, 34, 34, 34,255,
- 30, 30, 30,255, 25, 25, 25,255, 19, 19, 19,255, 13, 13, 13,255, 12, 12, 12,255, 10, 10, 10,204, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 54,255, 66, 66, 66,255, 72, 72, 72,255, 77, 77, 77,255, 79, 79, 79,255, 81, 81, 81,255,
- 81, 81, 81,255, 81, 81, 81,255, 80, 80, 80,255, 79, 79, 79,255, 77, 77, 77,255, 75, 75, 75,255, 73, 73, 73,255, 70, 70, 70,255,
- 67, 67, 67,255, 63, 63, 63,255, 60, 60, 60,255, 56, 56, 56,255, 52, 52, 52,255, 49, 49, 49,255, 44, 44, 44,255, 40, 40, 40,255,
- 35, 35, 35,255, 30, 30, 30,255, 24, 24, 24,255, 18, 18, 18,255, 12, 12, 12,255, 12, 12, 12,255, 6, 6, 6,102, 0, 0, 0, 0,
- 0, 0, 0, 0, 22, 22, 22,102, 67, 67, 67,255, 76, 76, 76,255, 81, 81, 81,255, 84, 84, 84,255, 87, 87, 87,255, 88, 88, 88,255,
- 88, 88, 88,255, 88, 88, 88,255, 87, 87, 87,255, 86, 86, 86,255, 84, 84, 84,255, 82, 82, 82,255, 79, 79, 79,255, 76, 76, 76,255,
- 73, 73, 73,255, 69, 69, 69,255, 65, 65, 65,255, 62, 62, 62,255, 58, 58, 58,255, 54, 54, 54,255, 49, 49, 49,255, 45, 45, 45,255,
- 40, 40, 40,255, 35, 35, 35,255, 29, 29, 29,255, 23, 23, 23,255, 16, 16, 16,255, 12, 12, 12,255, 12, 12, 12,204, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 49, 49,204, 76, 76, 76,255, 84, 84, 84,255, 89, 89, 89,255, 92, 92, 92,255, 94, 94, 94,255, 95, 95, 95,255,
- 95, 95, 95,255, 95, 95, 95,255, 94, 94, 94,255, 93, 93, 93,255, 91, 91, 91,255, 88, 88, 88,255, 85, 85, 85,255, 82, 82, 82,255,
- 79, 79, 79,255, 75, 75, 75,255, 71, 71, 71,255, 67, 67, 67,255, 63, 63, 63,255, 59, 59, 59,255, 55, 55, 55,255, 50, 50, 50,255,
- 45, 45, 45,255, 40, 40, 40,255, 34, 34, 34,255, 28, 28, 28,255, 21, 21, 21,255, 13, 13, 13,255, 14, 14, 14,255, 0, 0, 0, 0,
- 14, 14, 14,102, 70, 70, 70,255, 85, 85, 85,255, 92, 92, 92,255, 97, 97, 97,255,100,100,100,255,102,102,102,255,102,102,102,255,
-103,103,103,255,102,102,102,255,101,101,101,255, 99, 99, 99,255, 97, 97, 97,255, 94, 94, 94,255, 91, 91, 91,255, 88, 88, 88,255,
- 84, 84, 84,255, 81, 81, 81,255, 77, 77, 77,255, 72, 72, 72,255, 68, 68, 68,255, 64, 64, 64,255, 59, 59, 59,255, 55, 55, 55,255,
- 50, 50, 50,255, 44, 44, 44,255, 39, 39, 39,255, 32, 32, 32,255, 25, 25, 25,255, 17, 17, 17,255, 13, 13, 13,255, 7, 7, 7,102,
- 24, 24, 24,102, 80, 80, 80,255, 93, 93, 93,255,100,100,100,255,104,104,104,255,107,107,107,255,109,109,109,255,109,109,109,255,
-109,109,109,255,109,109,109,255,107,107,107,255,106,106,106,255,103,103,103,255,100,100,100,255, 97, 97, 97,255, 94, 94, 94,255,
- 90, 90, 90,255, 86, 86, 86,255, 82, 82, 82,255, 77, 77, 77,255, 73, 73, 73,255, 69, 69, 69,255, 64, 64, 64,255, 59, 59, 59,255,
- 54, 54, 54,255, 49, 49, 49,255, 43, 43, 43,255, 36, 36, 36,255, 29, 29, 29,255, 21, 21, 21,255, 14, 14, 14,255, 10, 10, 10,153,
- 29, 29, 29,102, 89, 89, 89,255,100,100,100,255,107,107,107,255,112,112,112,255,114,114,114,255,116,116,116,255,116,116,116,255,
-116,116,116,255,115,115,115,255,114,114,114,255,112,112,112,255,110,110,110,255,107,107,107,255,104,104,104,255,100,100,100,255,
- 96, 96, 96,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255, 63, 63, 63,255,
- 58, 58, 58,255, 52, 52, 52,255, 46, 46, 46,255, 40, 40, 40,255, 33, 33, 33,255, 24, 24, 24,255, 17, 17, 17,255, 13, 13, 13,204,
- 46, 46, 46,153, 95, 95, 95,255,107,107,107,255,114,114,114,255,118,118,118,255,121,121,121,255,122,122,122,255,123,123,123,255,
-123,123,123,255,122,122,122,255,122,122,122,255,120,120,120,255,118,118,118,255,114,114,114,255,110,110,110,255,106,106,106,255,
-101,101,101,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 83, 83, 83,255, 78, 78, 78,255, 73, 73, 73,255, 68, 68, 68,255,
- 62, 62, 62,255, 56, 56, 56,255, 50, 50, 50,255, 44, 44, 44,255, 36, 36, 36,255, 28, 28, 28,255, 19, 19, 19,255, 12, 12, 12,204,
- 47, 47, 47,153,101,101,101,255,113,113,113,255,120,120,120,255,125,125,125,255,127,127,127,255,129,129,129,255,130,130,130,255,
-130,130,130,255,131,131,131,255,131,131,131,255,131,131,131,255,129,129,129,255,125,125,125,255,120,120,120,255,113,113,113,255,
-108,108,108,255,103,103,103,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 82, 82, 82,255, 77, 77, 77,255, 72, 72, 72,255,
- 66, 66, 66,255, 60, 60, 60,255, 54, 54, 54,255, 47, 47, 47,255, 39, 39, 39,255, 31, 31, 31,255, 22, 22, 22,255, 12, 12, 12,204,
- 48, 48, 48,153,106,106,106,255,118,118,118,255,126,126,126,255,131,131,131,255,134,134,134,255,135,135,135,255,137,137,137,255,
-138,138,138,255,142,142,142,255,147,147,147,255,149,149,149,255,148,148,148,255,142,142,142,255,133,133,133,255,124,124,124,255,
-115,115,115,255,108,108,108,255,102,102,102,255, 97, 97, 97,255, 92, 92, 92,255, 87, 87, 87,255, 81, 81, 81,255, 75, 75, 75,255,
- 69, 69, 69,255, 63, 63, 63,255, 57, 57, 57,255, 49, 49, 49,255, 42, 42, 42,255, 33, 33, 33,255, 24, 24, 24,255, 9, 9, 9,153,
- 32, 32, 32,102,109,109,109,255,123,123,123,255,131,131,131,255,136,136,136,255,140,140,140,255,142,142,142,255,144,144,144,255,
-148,148,148,255,156,156,156,255,168,168,168,255,176,176,176,255,177,177,177,255,168,168,168,255,153,153,153,255,137,137,137,255,
-124,124,124,255,114,114,114,255,107,107,107,255,101,101,101,255, 96, 96, 96,255, 90, 90, 90,255, 85, 85, 85,255, 79, 79, 79,255,
- 72, 72, 72,255, 66, 66, 66,255, 59, 59, 59,255, 52, 52, 52,255, 44, 44, 44,255, 35, 35, 35,255, 26, 26, 26,255, 10, 10, 10,153,
- 17, 17, 17, 51,110,110,110,255,127,127,127,255,136,136,136,255,142,142,142,255,145,145,145,255,148,148,148,255,151,151,151,255,
-159,159,159,255,174,174,174,255,195,195,195,255,212,212,212,255,216,216,216,255,204,204,204,255,179,179,179,255,154,154,154,255,
-135,135,135,255,121,121,121,255,112,112,112,255,106,106,106,255, 99, 99, 99,255, 94, 94, 94,255, 88, 88, 88,255, 82, 82, 82,255,
- 76, 76, 76,255, 69, 69, 69,255, 62, 62, 62,255, 54, 54, 54,255, 46, 46, 46,255, 37, 37, 37,255, 26, 26, 26,255, 6, 6, 6,102,
- 0, 0, 0, 0,107,107,107,255,130,130,130,255,140,140,140,255,146,146,146,255,150,150,150,255,153,153,153,255,158,158,158,255,
-169,169,169,255,191,191,191,255,219,219,219,255,246,246,246,255,254,254,254,255,237,237,237,255,204,204,204,255,170,170,170,255,
-145,145,145,255,127,127,127,255,117,117,117,255,110,110,110,255,103,103,103,255, 97, 97, 97,255, 91, 91, 91,255, 85, 85, 85,255,
- 78, 78, 78,255, 71, 71, 71,255, 64, 64, 64,255, 55, 55, 55,255, 47, 47, 47,255, 37, 37, 37,255, 25, 25, 25,255, 3, 3, 3, 51,
- 0, 0, 0, 0, 65, 65, 65,153,129,129,129,255,142,142,142,255,149,149,149,255,154,154,154,255,158,158,158,255,163,163,163,255,
-176,176,176,255,199,199,199,255,232,232,232,255,255,255,255,255,255,255,255,255,255,255,255,255,220,220,220,255,181,181,181,255,
-151,151,151,255,132,132,132,255,121,121,121,255,113,113,113,255,106,106,106,255,100,100,100,255, 94, 94, 94,255, 87, 87, 87,255,
- 80, 80, 80,255, 73, 73, 73,255, 65, 65, 65,255, 57, 57, 57,255, 48, 48, 48,255, 38, 38, 38,255, 16, 16, 16,153, 0, 0, 0, 0,
- 0, 0, 0, 0, 21, 21, 21, 51,127,127,127,255,143,143,143,255,152,152,152,255,157,157,157,255,161,161,161,255,165,165,165,255,
-177,177,177,255,198,198,198,255,227,227,227,255,253,253,253,255,255,255,255,255,250,250,250,255,217,217,217,255,181,181,181,255,
-153,153,153,255,135,135,135,255,124,124,124,255,117,117,117,255,110,110,110,255,103,103,103,255, 96, 96, 96,255, 89, 89, 89,255,
- 82, 82, 82,255, 74, 74, 74,255, 66, 66, 66,255, 57, 57, 57,255, 48, 48, 48,255, 35, 35, 35,255, 10, 10, 10,153, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93,204,141,141,141,255,153,153,153,255,159,159,159,255,163,163,163,255,167,167,167,255,
-174,174,174,255,188,188,188,255,209,209,209,255,228,228,228,255,234,234,234,255,224,224,224,255,200,200,200,255,173,173,173,255,
-151,151,151,255,136,136,136,255,127,127,127,255,119,119,119,255,112,112,112,255,105,105,105,255, 98, 98, 98,255, 90, 90, 90,255,
- 83, 83, 83,255, 75, 75, 75,255, 66, 66, 66,255, 57, 57, 57,255, 46, 46, 46,255, 24, 24, 24,204, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 51,134,134,134,255,151,151,151,255,160,160,160,255,164,164,164,255,167,167,167,255,
-171,171,171,255,178,178,178,255,189,189,189,255,200,200,200,255,202,202,202,255,195,195,195,255,180,180,180,255,163,163,163,255,
-148,148,148,255,137,137,137,255,129,129,129,255,121,121,121,255,114,114,114,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255,
- 83, 83, 83,255, 74, 74, 74,255, 65, 65, 65,255, 55, 55, 55,255, 41, 41, 41,255, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49,102,145,145,145,255,157,157,157,255,164,164,164,255,167,167,167,255,
-170,170,170,255,172,172,172,255,176,176,176,255,180,180,180,255,179,179,179,255,174,174,174,255,165,165,165,255,155,155,155,255,
-145,145,145,255,137,137,137,255,130,130,130,255,122,122,122,255,115,115,115,255,107,107,107,255, 99, 99, 99,255, 91, 91, 91,255,
- 82, 82, 82,255, 73, 73, 73,255, 63, 63, 63,255, 50, 50, 50,255, 22, 22, 22,153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,149,149,149,255,160,160,160,255,166,166,166,255,
-168,168,168,255,169,169,169,255,170,170,170,255,169,169,169,255,167,167,167,255,164,164,164,255,158,158,158,255,151,151,151,255,
-144,144,144,255,137,137,137,255,130,130,130,255,123,123,123,255,115,115,115,255,106,106,106,255, 98, 98, 98,255, 89, 89, 89,255,
- 80, 80, 80,255, 70, 70, 70,255, 58, 58, 58,255, 27, 27, 27,153, 3, 3, 3, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80, 80,153,150,150,150,255,160,160,160,255,
-165,165,165,255,167,167,167,255,167,167,167,255,166,166,166,255,163,163,163,255,160,160,160,255,155,155,155,255,149,149,149,255,
-143,143,143,255,137,137,137,255,129,129,129,255,121,121,121,255,113,113,113,255,105,105,105,255, 96, 96, 96,255, 86, 86, 86,255,
- 76, 76, 76,255, 63, 63, 63,255, 38, 38, 38,204, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78,153,147,147,147,255,
-157,157,157,255,161,161,161,255,163,163,163,255,162,162,162,255,160,160,160,255,157,157,157,255,152,152,152,255,147,147,147,255,
-141,141,141,255,135,135,135,255,127,127,127,255,119,119,119,255,110,110,110,255,101,101,101,255, 91, 91, 91,255, 80, 80, 80,255,
- 66, 66, 66,255, 32, 32, 32,153, 7, 7, 7, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-134,134,134,255,148,148,148,255,154,154,154,255,155,155,155,255,154,154,154,255,152,152,152,255,147,147,147,255,142,142,142,255,
-136,136,136,255,130,130,130,255,122,122,122,255,114,114,114,255,104,104,104,255, 93, 93, 93,255, 81, 81, 81,255, 54, 54, 54,204,
- 22, 22, 22,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 73, 73, 73,153,103,103,103,204,137,137,137,255,140,140,140,255,140,140,140,255,137,137,137,255,133,133,133,255,
-127,127,127,255,120,120,120,255,113,113,113,255,102,102,102,255, 91, 91, 91,255, 64, 64, 64,204, 28, 28, 28,102, 6, 6, 6, 51,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46,102, 72, 72, 72,153, 72, 72, 72,153, 92, 92, 92,204,
- 88, 88, 88,204, 81, 81, 81,204, 54, 54, 54,153, 35, 35, 35,102, 16, 16, 16, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 84, 69, 0, 0,160, 1, 0, 0,248,162,222, 4, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0,
- 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,164,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
-232,164,222, 4, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 16, 0, 15, 0, 88,165,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,
- 88,165,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 0, 0, 16, 5, 0, 0,168,181,222, 4, 0, 0, 0, 0,
- 49, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-136, 0,191, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,199,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 56,196,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,189,222, 4, 0, 0, 0, 0, 8,193,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 8,187,222, 4, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,255,255,255,255,
-255,255,255,255, 2, 0, 0, 0, 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-184,190,222, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0,
- 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,197,222, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,232,193,222, 4, 0, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 0, 0, 0, 0,255,255,255,255,
-255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-255,255,255,255, 1, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 51,
- 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 67, 0, 30, 0, 6, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 0, 0, 0,
-136, 0,191, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,232,140,222, 4, 0, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0,
- 8,187,222, 4, 0, 0, 0, 0,132, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,189,222, 4, 0, 0, 0, 0, 34, 0, 0, 0, 20, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,190,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
- 88,189,222, 4, 0, 0, 0, 0, 55, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73,
- 26,182, 1, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182, 1, 0, 1, 0,128,191,253,255,127,191,
- 0, 0,128,191, 26,182, 26,182, 26,182, 1, 0,250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182, 1, 0,
- 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73, 1, 0,245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,
-230, 73, 26,182,230, 73, 1, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, 26,182, 26,182,230, 73, 1, 0,255,255,127,191,
- 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,230, 73, 1, 0, 68, 65, 84, 65, 32, 0, 0, 0, 72,190,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0,184,190,222, 4, 0, 0, 0, 0,132, 1, 0, 0, 5, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8,193,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0, 8,193,222, 4, 0, 0, 0, 0, 52, 0, 0, 0, 12, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0,
- 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0,
- 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65, 8, 2, 0, 0,232,193,222, 4, 0, 0, 0, 0,
-132, 1, 0, 0, 5, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 56,196,222, 4, 0, 0, 0, 0, 26, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 45, 86,101,114,116,101,120,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,140, 98, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,192, 0, 0, 0, 56,196,222, 4, 0, 0, 0, 0,
- 58, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 5, 0, 0, 0,
- 3, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 9, 0, 0, 0, 7, 0, 0, 0, 11, 0, 0, 0, 6, 0, 0, 0, 10, 0, 0, 0,
- 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 10, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0,
- 2, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0,
- 3, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0,
- 7, 0, 0, 0, 9, 0, 0, 0, 68, 65, 84, 65, 8, 2, 0, 0, 72,197,222, 4, 0, 0, 0, 0,132, 1, 0, 0, 5, 0, 0, 0,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 78, 71,111,110, 32, 70, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-152,199,222, 4, 0, 0, 0, 0, 25, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 78, 71,111,110, 32, 70, 97, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 24,144, 98, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 72, 0, 0, 0,152,199,222, 4, 0, 0, 0, 0, 57, 0, 0, 0, 6, 0, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 8, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 2, 0, 12, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 16, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 20, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 2, 0, 66, 82, 0, 0, 96, 6, 0, 0, 40,200,222, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,
-104,210,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 65,100,100, 0,104, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88,208,222, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 56, 1, 0, 0,192,200,222, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88,208,222, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,232,209,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232,209,222, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104,210,222, 4, 0, 0, 0, 0,
-131, 1, 0, 0, 1, 0, 0, 0, 40,219,222, 4, 0, 0, 0, 0, 40,200,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108,111, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,217,222, 4, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62,
- 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 0,211,222, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
- 24,217,222, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,
-168,218,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168,218,222, 4, 0, 0, 0, 0,
-125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0,
- 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
- 40,219,222, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0,104,210,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108,117,114, 0, 46, 48, 48, 52, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
-216,225,222, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
- 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,192,219,222, 4, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0,216,225,222, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61,
- 14,215,126,191, 46,189,194, 61,104,227,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-104,227,222, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
- 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0,232,227,222, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0,
- 40,219,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,114,117,115,104, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,152,234,222, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,
-128,228,222, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,234,222, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
-224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 40,236,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0, 40,236,222, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168,236,222, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,
-104,245,222, 4, 0, 0, 0, 0,232,227,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 67,108, 97,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88,243,222, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 8, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63,
- 68, 65, 84, 65, 56, 1, 0, 0, 64,237,222, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88,243,222, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,232,244,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232,244,222, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104,245,222, 4, 0, 0, 0, 0,
-131, 1, 0, 0, 1, 0, 0, 0, 40,254,222, 4, 0, 0, 0, 0,168,236,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, 97,121, 32, 83,116,114,105,112,115, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,252,222, 4, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,160,119, 78, 63, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62,
- 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 0,246,222, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
- 24,252,222, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,
-168,253,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168,253,222, 4, 0, 0, 0, 0,
-125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0,
- 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
- 40,254,222, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0,104,245,222, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108,111,110,101, 0, 48, 48, 49, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
-216, 4,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
- 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,192,254,222, 4, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0,216, 4,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61,
- 14,215,126,191, 46,189,194, 61,104, 6,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-104, 6,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
- 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0,232, 6,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0,
- 40,254,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,114,101, 97,115,101,
- 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,152, 13,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,
-128, 7,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152, 13,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
-228, 97,175,190, 50,131,112, 63,218,243,127,191, 10,183,157,188, 40, 15,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0, 40, 15,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215, 35, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168, 15,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,
-104, 24,223, 4, 0, 0, 0, 0,232, 6,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 68, 97,114,107,101,110, 0, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88, 22,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 56, 1, 0, 0, 64, 16,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88, 22,223, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,232, 23,223, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232, 23,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
-131, 1, 0, 0, 1, 0, 0, 0, 40, 33,223, 4, 0, 0, 0, 0,168, 15,223, 4, 0, 0, 0, 0, 0, 20, 1,160,255,255,255,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68,114, 97,119, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24, 31,223, 4, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 0, 4, 0, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62,
- 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 0, 25,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
- 24, 31,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,
-168, 32,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168, 32,223, 4, 0, 0, 0, 0,
-125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0,
- 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
- 40, 33,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0,104, 24,223, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,105,108,108, 47, 68,101,101,112,101,110, 0, 48, 48,
- 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
-216, 39,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63,
- 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,192, 33,223, 4, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0,216, 39,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,
-224,255,127,191,114, 97,255,186,104, 41,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-104, 41,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
-215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0,232, 41,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0,
- 40, 33,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,108, 97,116,116,101,
-110, 47, 67,111,110,116,114, 97,115,116, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,152, 48,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,
-128, 42,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152, 48,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
-224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 40, 50,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0, 40, 50,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168, 50,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,
-104, 59,223, 4, 0, 0, 0, 0,232, 41,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 71,114, 97, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88, 57,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
- 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 56, 1, 0, 0, 64, 51,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88, 57,223, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,232, 58,223, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232, 58,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
-131, 1, 0, 0, 1, 0, 0, 0, 40, 68,223, 4, 0, 0, 0, 0,168, 50,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 73,110,102,108, 97,116,101, 47, 68,101,102,108, 97,116,101, 0, 48, 48, 49, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24, 66,223, 4, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0,128, 62,
- 0, 0,128, 62, 0, 0,128, 62, 68, 65, 84, 65, 56, 1, 0, 0, 0, 60,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
- 24, 66,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,
-168, 67,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168, 67,223, 4, 0, 0, 0, 0,
-125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0,
- 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
- 40, 68,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0,104, 59,223, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76, 97,121,101,114, 0, 48, 48, 49, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
-216, 74,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 20,174,199, 62,
- 20,174,199, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,192, 68,223, 4, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0,216, 74,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,
-224,255,127,191,114, 97,255,186,104, 76,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-104, 76,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
-215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0,232, 76,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168, 85,223, 4, 0, 0, 0, 0,
- 40, 68,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76,105,103,104,116,101,
-110, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,152, 83,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,
-128, 77,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152, 83,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
- 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 40, 85,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0, 40, 85,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168, 85,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,
-104, 94,223, 4, 0, 0, 0, 0,232, 76,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 77, 97,115,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88, 92,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,168, 82, 99, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,128, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63,
- 68, 65, 84, 65, 56, 1, 0, 0, 64, 86,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88, 92,223, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 44, 95,255,186,224,255,127,191, 23, 97,255,186,232, 93,223, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232, 93,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
-131, 1, 0, 0, 1, 0, 0, 0, 40,103,223, 4, 0, 0, 0, 0,168, 85,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,105,120, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,101,223, 4, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 0, 95,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
- 24,101,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,
-168,102,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168,102,223, 4, 0, 0, 0, 0,
-125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0,
- 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
- 40,103,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0,104, 94,223, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,117,108,116,105,112,108,121, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
-216,109,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
- 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,192,103,223, 4, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0,216,109,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61,
- 14,215,126,191, 46,189,194, 61,104,111,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-104,111,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
- 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0,232,111,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,
- 40,103,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 78,117,100,103,101, 0,
- 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,152,118,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,
-128,112,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,118,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
-224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 40,120,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0, 40,120,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168,120,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,
-104,129,223, 4, 0, 0, 0, 0,232,111,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 80,105,110, 99,104, 47, 77, 97,103,110,105,102,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88,127,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0,128, 62, 0, 0,128, 62, 0, 0,128, 62,
- 68, 65, 84, 65, 56, 1, 0, 0, 64,121,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88,127,223, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,232,128,223, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232,128,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104,129,223, 4, 0, 0, 0, 0,
-131, 1, 0, 0, 1, 0, 0, 0, 40,138,223, 4, 0, 0, 0, 0,168,120,223, 4, 0, 0, 0, 0,253, 21,192, 32, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,111,108,105,115,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,136,223, 4, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 4, 1, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62, 0, 0,128, 62,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 0,130,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
- 24,136,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,
-168,137,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168,137,223, 4, 0, 0, 0, 0,
-125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0,
- 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
- 40,138,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0,104,129,223, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99,114, 97,112,101, 47, 80,101, 97,107,115, 0, 48,
- 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
-216,144,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63,
- 20,174,199, 62, 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,192,138,223, 4, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0,216,144,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,
-224,255,127,191,114, 97,255,186,104,146,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-104,146,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
-215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0,232,146,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0,
- 40,138,223, 4, 0, 0, 0, 0,168,205,210, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99,117,108,112,116,
- 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,152,153,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 8, 92,154,177, 30,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0,160,119, 78, 63,
- 0, 0,128, 63, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0,
-128,147,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,153,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
-224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 40,155,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0, 40,155,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168,155,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,
-104,164,223, 4, 0, 0, 0, 0,232,146,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 83,109,101, 97,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88,162,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 56, 1, 0, 0, 64,156,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88,162,223, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,232,163,223, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232,163,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104,164,223, 4, 0, 0, 0, 0,
-131, 1, 0, 0, 1, 0, 0, 0, 40,173,223, 4, 0, 0, 0, 0,168,155,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,111,111,116,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,171,223, 4, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 64, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0, 0,165,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
- 24,171,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,
-168,172,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168,172,223, 4, 0, 0, 0, 0,
-125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0,
- 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
- 40,173,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0,104,164,223, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,110, 97,107,101, 32, 72,111,111,107, 0, 48, 48, 49,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
-216,179,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 0, 0, 0, 63, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63,
- 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,192,173,223, 4, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0,216,179,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,
-224,255,127,191,114, 97,255,186,104,181,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-104,181,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
-215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0,232,181,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0,
- 40,173,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,111,102,116,101,110,
- 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,152,188,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,
-128,182,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,188,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
- 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61, 40,190,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0, 40,190,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,168,190,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,
-104,199,223, 4, 0, 0, 0, 0,232,181,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 83,117, 98,116,114, 97, 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 88,197,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 63, 35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0,
- 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 56, 1, 0, 0, 64,191,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 88,197,223, 4, 0, 0, 0, 0,
-127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61, 14,215,126,191, 46,189,194, 61,232,198,223, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,232,198,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62, 31,133,107, 63, 0, 0, 0, 0, 0, 0, 64, 63, 10,215,163, 61,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,104,199,223, 4, 0, 0, 0, 0,
-131, 1, 0, 0, 1, 0, 0, 0, 40,208,223, 4, 0, 0, 0, 0,168,190,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,101,120, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 24,206,223, 4, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 63, 35, 0, 0, 0,
- 4, 4, 0, 8, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 51, 51, 51, 63, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
-205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 20,174,199, 62,
- 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 56, 1, 0, 0, 0,200,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,
- 24,206,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,
-168,207,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,168,207,223, 4, 0, 0, 0, 0,
-125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0,
- 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 0, 0, 96, 6, 0, 0,
- 40,208,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0,232,216,223, 4, 0, 0, 0, 0,104,199,223, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,104,117,109, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,
-216,214,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 0, 0, 0, 63, 75, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62, 0, 0,128, 62, 0, 0,128, 63,
- 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,192,208,223, 4, 0, 0, 0, 0,
- 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
-128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 64, 1, 0, 0,216,214,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,
-224,255,127,191,114, 97,255,186,104,216,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,
-104,216,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 62,
-215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 66, 82, 0, 0, 96, 6, 0, 0,232,216,223, 4, 0, 0, 0, 0,131, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40,208,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,119,105,115,116, 0,
- 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0,152,223,223, 4, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 63, 75, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,
-102,102,102, 63,205,204,204, 61, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,205,204,204, 62, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 62,
- 0, 0,128, 62, 0, 0,128, 63, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 56, 1, 0, 0,
-128,217,223, 4, 0, 0, 0, 0, 25, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
-205,204, 76, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,152,223,223, 4, 0, 0, 0, 0,127, 1, 0, 0, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,
-224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186, 40,225,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 48, 0, 0, 0, 40,225,223, 4, 0, 0, 0, 0,125, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 62,215,163,112, 63, 0, 0, 0, 0, 0, 0, 64, 63,143,194,117, 61, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 85, 83, 69, 82,112, 32, 0, 0, 96, 25, 56, 3, 0, 0, 0, 0,211, 0, 0, 0, 1, 0, 0, 0,
- 1, 8, 17, 1, 63, 6, 0, 0, 5, 0, 0, 0, 47,116,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 85,115,101,114,115, 47,116,111,110, 47, 68,101,115,107,116,111,112,
- 47, 0, 45,112,111,119,101,114,112, 99, 47, 98,105,110, 47, 98,108,101,110,100,101,114, 46, 97,112,112, 47, 67,111,110,116,101,
-110,116,115, 47, 82,101,115,111,117,114, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 35, 0, 0, 0, 2, 0, 94, 1, 8, 0, 0, 0, 3, 0, 0, 0,
- 56, 52, 39, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 8, 0, 0, 2, 0, 0, 0, 68,172, 0, 0, 36, 0, 0, 0, 2, 0, 0, 0,
- 0, 1, 0, 0, 72, 0, 0, 0, 0, 0, 64, 0, 5, 0, 2, 0,104, 2,224, 4, 0, 0, 0, 0,104, 2,224, 4, 0, 0, 0, 0,
-104, 51,191, 4, 0, 0, 0, 0,104, 51,191, 4, 0, 0, 0, 0,232, 44,224, 4, 0, 0, 0, 0,232, 44,224, 4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-216,206,222, 4, 0, 0, 0, 0, 72, 44,224, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 2, 0, 25, 0, 0, 0, 20, 0, 20, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 30, 90,100,191,154,153,153, 62,102,102,102, 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 31,250,254, 62, 9, 0, 0, 63,156,153, 25, 63, 0, 0, 0, 0,205,204, 76, 62,205,204, 76, 62,205,204, 76, 62, 0, 0,128, 63,
- 44,135, 22, 63, 32,133,235, 62,184,243,125, 62, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,195, 73, 76, 63, 42,135, 86, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 1, 43,135, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 16, 47, 93, 62, 58,180,200,190,
- 24, 47, 93,190, 0, 0, 0, 0, 14, 0, 1, 0, 25, 0, 15, 0,120, 0, 60, 0, 3, 0, 5, 0,128, 0, 0, 0, 0, 0, 0, 0,
-144, 31, 15, 0, 6, 0, 25, 0, 8, 0, 10, 0,200, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 0, 10, 0, 50, 0, 20, 0, 2, 0,
- 1, 0, 0, 0, 0, 0,128, 63, 60, 0, 0, 0, 0, 0, 2, 0, 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63,
- 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63,
- 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 68, 65, 84, 65, 48, 37, 0, 0,104, 2,224, 4, 0, 0, 0, 0,
-208, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,
-100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,153,153,153,255,
-100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,
-153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255,
- 86,128,194,255,255,255,255,255,255,255,255,255, 0, 0, 0,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 70, 70, 70,255,
- 70, 70, 70,255,255,255,255,255, 0, 0, 0,255,255,255,255,255, 1, 0, 15, 0,241,255, 0, 0, 25, 25, 25,255,153,153,153,255,
-100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,
-153,153,153,255, 90, 90, 90,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 25, 25, 25,255,180,180,180,255,
-153,153,153,255,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0,236,255, 0, 0, 0, 0, 0, 0, 0,255, 70, 70, 70,255,
- 70, 70, 70,255,255,255,255,255,255,255,255,255,204,204,204,255, 1, 0, 15, 0,241,255, 0, 0, 0, 0, 0,255, 63, 63, 63,255,
- 86,128,194,255,255,255,255,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 25, 25, 25,230,
- 45, 45, 45,230,100,100,100,255,160,160,160,255,255,255,255,255, 0, 0, 25, 0,236,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0,
- 86,128,194,255,172,172,172,128,255,255,255,255, 0, 0, 0,255, 1, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0,255, 25, 25, 25,230,
- 45, 45, 45,230,100,100,100,255,255,255,255,255,255,255,255,255, 0, 0, 25, 0,236,255, 0, 0, 25, 25, 25,255,128,128,128,255,
-100,100,100,255, 25, 25, 25,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50,180, 80, 80, 80,180,
-100,100,100,180,128,128,128,255, 0, 0, 0,255,255,255,255,255, 1, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255,190,190,190,255,
-100,100,100,180, 68, 68, 68,255, 0, 0, 0,255,255,255,255,255, 0, 0, 5, 0,251,255, 0, 0, 0, 0, 0,255, 0, 0, 0, 0,
- 86,128,194,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,115,190, 76,255, 90,166, 51,255,
-240,235,100,255,215,211, 75,255,180, 0,255,255,153, 0,230,255, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,130,130,130,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,
- 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255,
- 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,
-255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255,
- 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,
-240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,
-240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,170, 64,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255,
- 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, 32,255,255,255, 75, 75, 75,255,204, 0,153,255,
- 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 32, 0, 0,255, 0, 32, 0,255, 0, 0,128,255, 0, 0, 0, 0, 34,221,221,255,
- 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,
-219, 37, 18,255,240,255, 64,255,240,144,160,255,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255,
- 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,200,200,255, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76,255, 0, 0, 0, 0,
-250,250,250,255, 15, 15, 15,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,145,145,145,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,255,140, 25,255,250,250,250,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130,130,130,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,250,250,250,255, 0, 0, 0, 0,250,250,250,255,
-250,250,250,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255,
- 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,
-219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0,
- 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255,153, 64, 48,255, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,
-240,144,160,255,240,175,144,255, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255,255,255,128, 0, 0, 0,255,255,133, 0,255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,
- 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255,
- 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,
-255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255,
- 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,
-240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,
-240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 79,101, 73,255,135,177,125,255,255,255,255,255,
- 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0,
- 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255,
- 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,
-219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255,
- 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 82, 96,110,255,124,137,150,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,133, 0,255, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,107,107,107,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,255,255,255,150, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,150,150,150,100,112,112,112,100, 96,192, 64,255, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 79,101, 73,255,
-135,177,125,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 82, 96,110,255,124,137,150,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,
-255,133, 0,255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-116,116,116,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255,
- 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,
-219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0,
- 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,
-240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81,105,135,255,
- 32, 32,143,255,109, 88,129,255, 78,152, 62,255, 46,143,143,255,169, 84,124,255, 0, 0, 0, 0,162, 95,111,255,109,145,131,255,
-255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,
- 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255,
- 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0,255,255,255, 10,255,133, 0, 60,
-255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255,
- 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,
-240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,
-240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,114,114,114,255, 18, 66,176, 38,255,133, 0,178,255,133, 0,127, 0,255, 0,255,255, 0, 0,255,225,210,195, 35,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,153,153,153,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-143,143,143,255,198,119,119,255,255, 0, 0,255, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255,
- 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0,
- 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255,
- 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,
-219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255,
- 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,100, 0, 0,255, 0, 0,200,255,
-128, 0, 80,255, 95, 95, 0,255, 0,100, 50,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,127, 51, 76,130,135,140, 76, 0, 0, 0, 0, 0, 0, 0, 0,
-114,114,114,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,173,173,173,255,127,112,112,100, 0, 0, 0, 0, 91, 91, 91,255,
- 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,
-219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0,
- 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,
-240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,
- 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,255,255,255,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255,
- 0, 0, 0,255,255,255,255,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,
-255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255,
- 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,
-240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,
-240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 5,155,155,155,160,100,104,111,255,111,106,100,255,104,106,117,255,
-105,117,110,255,154,155,155,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255,
- 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0,
- 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255,
- 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,
-219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255,
- 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114,114,114,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,140, 25,255, 8, 48, 8,255,
- 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,219, 37, 18,255,255, 32, 32,255,
- 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0, 0, 0, 0, 0, 96,192, 64,255,
-144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,144,144, 0,255,
- 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,
-165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255,
- 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255,140, 25,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255, 0, 0, 0,255,255,160, 0,255,
-219, 37, 18,255,255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 0, 0, 0, 0,
- 0, 0, 0, 0, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0,
- 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,240,255, 64,255, 64,192, 48,255,
-240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,128,255,255,255,255,255,255, 0,170, 0,255,220, 96, 96,255,
-220, 96, 96,255, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255,255,255,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 57, 57, 57,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,102,102,102,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,
- 0, 0, 0, 0, 94, 94, 94,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40, 0, 0, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255,170, 64,255, 8, 48, 8,255, 85,187, 85,255,255,255,255,255, 0, 0, 0,255,255,133, 0,255,
- 0, 0, 0,255,255,160, 0,255,219, 37, 18,255, 32,255,255,255, 75, 75, 75,255,204, 0,153,255, 0, 0, 0, 18,255,133, 0, 60,
-255,133, 0,255, 32, 0, 0,255, 0, 32, 0,255, 0, 0,128,255, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255,
- 80,200,255, 80, 12, 10, 10,128,255,140, 0,255, 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,
-240,144,160,255,255,255,255,255, 0, 0, 0,255,144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0, 0, 0, 0, 0,255,
-240,255, 64,255, 64,192, 48,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,128, 0, 0, 0,255,255,255, 0,255, 4, 0, 0, 0,255,127,127, 0,255,255,255,255,
-255,255,255, 0,255,127, 0, 0,255,127,127,127,255,200,200,200,255,255, 0, 0,255, 0, 0,255,255, 0, 0, 0,255, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0,255,189, 17, 17,255,247, 10, 10,255, 0, 0, 0, 0,
-247, 64, 24,255,246,105, 19,255,250,153, 0,255, 0, 0, 0, 0, 30,145, 9,255, 89,183, 11,255,131,239, 29,255, 0, 0, 0, 0,
- 10, 54,148,255, 54,103,223,255, 94,193,239,255, 0, 0, 0, 0,169, 41, 78,255,193, 65,106,255,240, 93,145,255, 0, 0, 0, 0,
- 67, 12,120,255, 84, 58,163,255,135,100,213,255, 0, 0, 0, 0, 36,120, 90,255, 60,149,121,255,111,182,171,255, 0, 0, 0, 0,
- 75,112,124,255,106,134,145,255,155,194,205,255, 0, 0, 0, 0,244,201, 12,255,238,194, 54,255,243,255, 0,255, 0, 0, 0, 0,
- 30, 32, 36,255, 72, 76, 86,255,255,255,255,255, 0, 0, 0, 0,111, 47,106,255,152, 69,190,255,211, 48,214,255, 0, 0, 0, 0,
-108,142, 34,255,127,176, 34,255,187,239, 91,255, 0, 0, 0, 0,141,141,141,255,176,176,176,255,222,222,222,255, 0, 0, 0, 0,
-131, 67, 38,255,139, 88, 17,255,189,106, 17,255, 0, 0, 0, 0, 8, 49, 14,255, 28, 67, 11,255, 52, 98, 43,255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,
-216,206,222, 4, 0, 0, 0, 0,209, 0, 0, 0, 1, 0, 0, 0,120,207,222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-105,111, 95,115, 99,101,110,101, 95, 51,100,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 80, 0, 0, 0,120,207,222, 4, 0, 0, 0, 0,209, 0, 0, 0, 1, 0, 0, 0,232, 39,224, 4, 0, 0, 0, 0,
-216,206,222, 4, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,102, 98,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,232, 39,224, 4, 0, 0, 0, 0,209, 0, 0, 0, 1, 0, 0, 0,
-136, 40,224, 4, 0, 0, 0, 0,120,207,222, 4, 0, 0, 0, 0,105,111, 95, 97,110,105,109, 95, 98,118,104, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,136, 40,224, 4, 0, 0, 0, 0,
-209, 0, 0, 0, 1, 0, 0, 0, 40, 41,224, 4, 0, 0, 0, 0,232, 39,224, 4, 0, 0, 0, 0,105,111, 95,109,101,115,104, 95,
-112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,
- 40, 41,224, 4, 0, 0, 0, 0,209, 0, 0, 0, 1, 0, 0, 0,200, 41,224, 4, 0, 0, 0, 0,136, 40,224, 4, 0, 0, 0, 0,
-105,111, 95,115, 99,101,110,101, 95,111, 98,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 80, 0, 0, 0,200, 41,224, 4, 0, 0, 0, 0,209, 0, 0, 0, 1, 0, 0, 0,104, 42,224, 4, 0, 0, 0, 0,
- 40, 41,224, 4, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,120, 51,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,104, 42,224, 4, 0, 0, 0, 0,209, 0, 0, 0, 1, 0, 0, 0,
- 8, 43,224, 4, 0, 0, 0, 0,200, 41,224, 4, 0, 0, 0, 0,105,111, 95,109,101,115,104, 95,115,116,108, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 8, 43,224, 4, 0, 0, 0, 0,
-209, 0, 0, 0, 1, 0, 0, 0,168, 43,224, 4, 0, 0, 0, 0,104, 42,224, 4, 0, 0, 0, 0,105,111, 95,109,101,115,104, 95,
-117,118, 95,108, 97,121,111,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,
-168, 43,224, 4, 0, 0, 0, 0,209, 0, 0, 0, 1, 0, 0, 0, 72, 44,224, 4, 0, 0, 0, 0, 8, 43,224, 4, 0, 0, 0, 0,
-105,111, 95, 99,117,114,118,101, 95,115,118,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 80, 0, 0, 0, 72, 44,224, 4, 0, 0, 0, 0,209, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-168, 43,224, 4, 0, 0, 0, 0, 99,121, 99,108,101,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,232, 0, 0, 0,232, 44,224, 4, 0, 0, 0, 0,201, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,101,102, 97,117,108,116, 32, 83,116,121,108,101, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 0,255,255, 0, 0,154,153, 25, 62, 0, 0,128, 63, 0, 0, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0,255,255, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 11, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 3, 0, 0, 0,255,255, 0, 0,154,153, 25, 62, 0, 0,128, 63, 0, 0, 11, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 5, 0, 5, 0, 8, 0,
- 2, 0, 8, 0, 4, 0, 0, 0, 68, 78, 65, 49, 40, 8, 1, 0,232,232,142, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 83, 68, 78, 65, 78, 65, 77, 69, 94, 13, 0, 0, 42,110,101,120,116, 0, 42,112,114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,
-105,114,115,116, 0, 42,108, 97,115,116, 0,120, 0,121, 0,122, 0,120,109,105,110, 0,120,109, 97,120, 0,121,109,105,110, 0,
-121,109, 97,120, 0, 42,112,111,105,110,116,101,114, 0,103,114,111,117,112, 0,118, 97,108, 0,118, 97,108, 50, 0,116,121,112,
-101, 0,115,117, 98,116,121,112,101, 0,102,108, 97,103, 0,110, 97,109,101, 91, 54, 52, 93, 0,115, 97,118,101,100, 0,100, 97,
-116, 97, 0,108,101,110, 0,116,111,116, 97,108,108,101,110, 0, 42,110,101,119,105,100, 0, 42,108,105, 98, 0,110, 97,109,101,
- 91, 54, 54, 93, 0,112, 97,100, 0,117,115, 0,105, 99,111,110, 95,105,100, 0,112, 97,100, 50, 0, 42,112,114,111,112,101,114,
-116,105,101,115, 0,105,100, 0, 42,105,100, 98,108,111, 99,107, 0, 42,102,105,108,101,100, 97,116, 97, 0,110, 97,109,101, 91,
- 49, 48, 50, 52, 93, 0,102,105,108,101,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0, 42,112, 97,114,101,110,116, 0,119, 91, 50,
- 93, 0,104, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 91, 50, 93, 0, 99,104, 97,110,103,101,100, 95,116,105,109,101,115,116,
- 97,109,112, 91, 50, 93, 0, 42,114,101, 99,116, 91, 50, 93, 0, 42,111, 98, 0, 98,108,111, 99,107,116,121,112,101, 0, 97,100,
-114, 99,111,100,101, 0,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 98,112, 0, 42, 98,101,122,116, 0,109, 97,120,114, 99,116,
- 0,116,111,116,114, 99,116, 0,118, 97,114,116,121,112,101, 0,116,111,116,118,101,114,116, 0,105,112,111, 0,101,120,116,114,
- 97,112, 0,114,116, 0, 98,105,116,109, 97,115,107, 0,115,108,105,100,101, 95,109,105,110, 0,115,108,105,100,101, 95,109, 97,
-120, 0, 99,117,114,118, 97,108, 0, 42,100,114,105,118,101,114, 0, 99,117,114,118,101, 0, 99,117,114, 0,115,104,111,119,107,
-101,121, 0,109,117,116,101,105,112,111, 0,112,111,115, 0,112, 97,100, 49, 0,114,101,108, 97,116,105,118,101, 0,116,111,116,
-101,108,101,109, 0,117,105,100, 0, 42,119,101,105,103,104,116,115, 0,118,103,114,111,117,112, 91, 54, 52, 93, 0,115,108,105,
-100,101,114,109,105,110, 0,115,108,105,100,101,114,109, 97,120, 0, 42, 97,100,116, 0, 42,114,101,102,107,101,121, 0,101,108,
-101,109,115,116,114, 91, 51, 50, 93, 0,101,108,101,109,115,105,122,101, 0, 98,108,111, 99,107, 0, 42,105,112,111, 0, 42,102,
-114,111,109, 0,116,111,116,107,101,121, 0,115,108,117,114,112,104, 0, 99,116,105,109,101, 0,117,105,100,103,101,110, 0, 42,
-108,105,110,101, 0, 42,102,111,114,109, 97,116, 0, 98,108,101,110, 0,108,105,110,101,110,111, 0,115,116, 97,114,116, 0,101,
-110,100, 0,102,108, 97,103,115, 0, 99,111,108,111,114, 91, 52, 93, 0,112, 97,100, 91, 52, 93, 0, 42,110, 97,109,101, 0,110,
-108,105,110,101,115, 0,108,105,110,101,115, 0, 42, 99,117,114,108, 0, 42,115,101,108,108, 0, 99,117,114, 99, 0,115,101,108,
- 99, 0,109, 97,114,107,101,114,115, 0, 42,117,110,100,111, 95, 98,117,102, 0,117,110,100,111, 95,112,111,115, 0,117,110,100,
-111, 95,108,101,110, 0, 42, 99,111,109,112,105,108,101,100, 0,109,116,105,109,101, 0,115,105,122,101, 0,115,101,101,107, 0,
-100,116,120, 0,112, 97,115,115,101,112, 97,114,116, 97,108,112,104, 97, 0, 99,108,105,112,115,116, 97, 0, 99,108,105,112,101,
-110,100, 0,108,101,110,115, 0,111,114,116,104,111, 95,115, 99, 97,108,101, 0,100,114, 97,119,115,105,122,101, 0,115,101,110,
-115,111,114, 95,120, 0,115,101,110,115,111,114, 95,121, 0,115,104,105,102,116,120, 0,115,104,105,102,116,121, 0, 89, 70, 95,
-100,111,102,100,105,115,116, 0, 42,100,111,102, 95,111, 98, 0,115,101,110,115,111,114, 95,102,105,116, 0,112, 97,100, 91, 55,
- 93, 0, 42,115, 99,101,110,101, 0,102,114, 97,109,101,110,114, 0,102,114, 97,109,101,115, 0,111,102,102,115,101,116, 0,115,
-102,114, 97, 0,102,105,101, 95,105,109, 97, 0, 99,121, 99,108, 0,111,107, 0,109,117,108,116,105, 95,105,110,100,101,120, 0,
-108, 97,121,101,114, 0,112, 97,115,115, 0,105, 98,117,102,115, 0, 42,103,112,117,116,101,120,116,117,114,101, 0, 42, 97,110,
-105,109, 0, 42,114,114, 0, 42,114,101,110,100,101,114,115, 91, 56, 93, 0,114,101,110,100,101,114, 95,115,108,111,116, 0,108,
- 97,115,116, 95,114,101,110,100,101,114, 95,115,108,111,116, 0,115,111,117,114, 99,101, 0,108, 97,115,116,102,114, 97,109,101,
- 0,116,112, 97,103,101,102,108, 97,103, 0,116,111,116, 98,105,110,100, 0,120,114,101,112, 0,121,114,101,112, 0,116,119,115,
-116, 97, 0,116,119,101,110,100, 0, 98,105,110,100, 99,111,100,101, 0, 42,114,101,112, 98,105,110,100, 0, 42,112, 97, 99,107,
-101,100,102,105,108,101, 0, 42,112,114,101,118,105,101,119, 0,108, 97,115,116,117,112,100, 97,116,101, 0,108, 97,115,116,117,
-115,101,100, 0, 97,110,105,109,115,112,101,101,100, 0,103,101,110, 95,120, 0,103,101,110, 95,121, 0,103,101,110, 95,116,121,
-112,101, 0,103,101,110, 95,102,108, 97,103, 0, 97,115,112,120, 0, 97,115,112,121, 0,116,101,120, 99,111, 0,109, 97,112,116,
-111, 0,109, 97,112,116,111,110,101,103, 0, 98,108,101,110,100,116,121,112,101, 0, 42,111, 98,106,101, 99,116, 0, 42,116,101,
-120, 0,117,118,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,106,120, 0,112,114,111,106,121, 0,112,114,111,106,122, 0,109,
- 97,112,112,105,110,103, 0,111,102,115, 91, 51, 93, 0,115,105,122,101, 91, 51, 93, 0,114,111,116, 0,116,101,120,102,108, 97,
-103, 0, 99,111,108,111,114,109,111,100,101,108, 0,112,109, 97,112,116,111, 0,112,109, 97,112,116,111,110,101,103, 0,110,111,
-114,109, 97,112,115,112, 97, 99,101, 0,119,104,105, 99,104, 95,111,117,116,112,117,116, 0, 98,114,117,115,104, 95,109, 97,112,
- 95,109,111,100,101, 0,114, 0,103, 0, 98, 0,107, 0,100,101,102, 95,118, 97,114, 0, 99,111,108,102, 97, 99, 0,118, 97,114,
-102, 97, 99, 0,110,111,114,102, 97, 99, 0,100,105,115,112,102, 97, 99, 0,119, 97,114,112,102, 97, 99, 0, 99,111,108,115,112,
-101, 99,102, 97, 99, 0,109,105,114,114,102, 97, 99, 0, 97,108,112,104, 97,102, 97, 99, 0,100,105,102,102,102, 97, 99, 0,115,
-112,101, 99,102, 97, 99, 0,101,109,105,116,102, 97, 99, 0,104, 97,114,100,102, 97, 99, 0,114, 97,121,109,105,114,114,102, 97,
- 99, 0,116,114, 97,110,115,108,102, 97, 99, 0, 97,109, 98,102, 97, 99, 0, 99,111,108,101,109,105,116,102, 97, 99, 0, 99,111,
-108,114,101,102,108,102, 97, 99, 0, 99,111,108,116,114, 97,110,115,102, 97, 99, 0,100,101,110,115,102, 97, 99, 0,115, 99, 97,
-116,116,101,114,102, 97, 99, 0,114,101,102,108,102, 97, 99, 0,116,105,109,101,102, 97, 99, 0,108,101,110,103,116,104,102, 97,
- 99, 0, 99,108,117,109,112,102, 97, 99, 0,100, 97,109,112,102, 97, 99, 0,107,105,110,107,102, 97, 99, 0,114,111,117,103,104,
-102, 97, 99, 0,112, 97,100,101,110,115,102, 97, 99, 0,103,114, 97,118,105,116,121,102, 97, 99, 0,108,105,102,101,102, 97, 99,
- 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,102,105,101,108,100,102, 97, 99, 0,115,104, 97,100,111,119,
-102, 97, 99, 0,122,101,110,117,112,102, 97, 99, 0,122,101,110,100,111,119,110,102, 97, 99, 0, 98,108,101,110,100,102, 97, 99,
- 0, 97, 0,116,111,116, 0,105,112,111,116,121,112,101, 0,100, 97,116, 97, 91, 51, 50, 93, 0, 42,105,109, 97, 0, 42, 99,117,
- 98,101, 91, 54, 93, 0,105,109, 97,116, 91, 52, 93, 91, 52, 93, 0,111, 98,105,109, 97,116, 91, 51, 93, 91, 51, 93, 0,115,116,
-121,112,101, 0,118,105,101,119,115, 99, 97,108,101, 0,110,111,116,108, 97,121, 0, 99,117, 98,101,114,101,115, 0,100,101,112,
-116,104, 0,114,101, 99, 97,108, 99, 0,108, 97,115,116,115,105,122,101, 0,102, 97,108,108,111,102,102, 95,116,121,112,101, 0,
-102, 97,108,108,111,102,102, 95,115,111,102,116,110,101,115,115, 0,114, 97,100,105,117,115, 0, 99,111,108,111,114, 95,115,111,
-117,114, 99,101, 0,116,111,116,112,111,105,110,116,115, 0,112,100,112, 97,100, 0,112,115,121,115, 0,112,115,121,115, 95, 99,
- 97, 99,104,101, 95,115,112, 97, 99,101, 0,111, 98, 95, 99, 97, 99,104,101, 95,115,112, 97, 99,101, 0, 42,112,111,105,110,116,
- 95,116,114,101,101, 0, 42,112,111,105,110,116, 95,100, 97,116, 97, 0,110,111,105,115,101, 95,115,105,122,101, 0,110,111,105,
-115,101, 95,100,101,112,116,104, 0,110,111,105,115,101, 95,105,110,102,108,117,101,110, 99,101, 0,110,111,105,115,101, 95, 98,
- 97,115,105,115, 0,112,100,112, 97,100, 51, 91, 51, 93, 0,110,111,105,115,101, 95,102, 97, 99, 0,115,112,101,101,100, 95,115,
- 99, 97,108,101, 0,102, 97,108,108,111,102,102, 95,115,112,101,101,100, 95,115, 99, 97,108,101, 0,112,100,112, 97,100, 50, 0,
- 42, 99,111, 98, 97, 0, 42,102, 97,108,108,111,102,102, 95, 99,117,114,118,101, 0,114,101,115,111,108, 91, 51, 93, 0,105,110,
-116,101,114,112, 95,116,121,112,101, 0,102,105,108,101, 95,102,111,114,109, 97,116, 0,101,120,116,101,110,100, 0,115,109,111,
-107,101,100, 95,116,121,112,101, 0,105,110,116, 95,109,117,108,116,105,112,108,105,101,114, 0,115,116,105,108,108, 95,102,114,
- 97,109,101, 0,115,111,117,114, 99,101, 95,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0, 42,100, 97,116, 97,115,101,116, 0, 99,
- 97, 99,104,101,100,102,114, 97,109,101, 0,111, 99,101, 97,110,109,111,100, 91, 54, 52, 93, 0,111,117,116,112,117,116, 0,110,
-111,105,115,101,115,105,122,101, 0,116,117,114, 98,117,108, 0, 98,114,105,103,104,116, 0, 99,111,110,116,114, 97,115,116, 0,
-115, 97,116,117,114, 97,116,105,111,110, 0,114,102, 97, 99, 0,103,102, 97, 99, 0, 98,102, 97, 99, 0,102,105,108,116,101,114,
-115,105,122,101, 0,109,103, 95, 72, 0,109,103, 95,108, 97, 99,117,110, 97,114,105,116,121, 0,109,103, 95,111, 99,116, 97,118,
-101,115, 0,109,103, 95,111,102,102,115,101,116, 0,109,103, 95,103, 97,105,110, 0,100,105,115,116, 95, 97,109,111,117,110,116,
- 0,110,115, 95,111,117,116,115, 99, 97,108,101, 0,118,110, 95,119, 49, 0,118,110, 95,119, 50, 0,118,110, 95,119, 51, 0,118,
-110, 95,119, 52, 0,118,110, 95,109,101,120,112, 0,118,110, 95,100,105,115,116,109, 0,118,110, 95, 99,111,108,116,121,112,101,
- 0,110,111,105,115,101,100,101,112,116,104, 0,110,111,105,115,101,116,121,112,101, 0,110,111,105,115,101, 98, 97,115,105,115,
- 0,110,111,105,115,101, 98, 97,115,105,115, 50, 0,105,109, 97,102,108, 97,103, 0, 99,114,111,112,120,109,105,110, 0, 99,114,
-111,112,121,109,105,110, 0, 99,114,111,112,120,109, 97,120, 0, 99,114,111,112,121,109, 97,120, 0,116,101,120,102,105,108,116,
-101,114, 0, 97,102,109, 97,120, 0,120,114,101,112,101, 97,116, 0,121,114,101,112,101, 97,116, 0, 99,104,101, 99,107,101,114,
-100,105,115,116, 0,110, 97, 98,108, 97, 0,105,117,115,101,114, 0, 42,110,111,100,101,116,114,101,101, 0, 42,101,110,118, 0,
- 42,112,100, 0, 42,118,100, 0, 42,111,116, 0,117,115,101, 95,110,111,100,101,115, 0,108,111, 99, 91, 51, 93, 0,114,111,116,
- 91, 51, 93, 0,109, 97,116, 91, 52, 93, 91, 52, 93, 0,109,105,110, 91, 51, 93, 0,109, 97,120, 91, 51, 93, 0, 99,111, 98, 97,
- 0, 98,108,101,110,100, 95, 99,111,108,111,114, 91, 51, 93, 0, 98,108,101,110,100, 95,102, 97, 99,116,111,114, 0, 98,108,101,
-110,100, 95,116,121,112,101, 0,112, 97,100, 91, 51, 93, 0,109,111,100,101, 0,116,111,116,101,120, 0,115,104,100,119,114, 0,
-115,104,100,119,103, 0,115,104,100,119, 98, 0,115,104,100,119,112, 97,100, 0,101,110,101,114,103,121, 0,100,105,115,116, 0,
-115,112,111,116,115,105,122,101, 0,115,112,111,116, 98,108,101,110,100, 0,104, 97,105,110,116, 0, 97,116,116, 49, 0, 97,116,
-116, 50, 0, 42, 99,117,114,102, 97,108,108,111,102,102, 0,115,104, 97,100,115,112,111,116,115,105,122,101, 0, 98,105, 97,115,
- 0,115,111,102,116, 0, 99,111,109,112,114,101,115,115,116,104,114,101,115,104, 0, 98,108,101,101,100, 98,105, 97,115, 0,112,
- 97,100, 53, 91, 50, 93, 0, 98,117,102,115,105,122,101, 0,115, 97,109,112, 0, 98,117,102,102,101,114,115, 0,102,105,108,116,
-101,114,116,121,112,101, 0, 98,117,102,102,108, 97,103, 0, 98,117,102,116,121,112,101, 0,114, 97,121, 95,115, 97,109,112, 0,
-114, 97,121, 95,115, 97,109,112,121, 0,114, 97,121, 95,115, 97,109,112,122, 0,114, 97,121, 95,115, 97,109,112, 95,116,121,112,
-101, 0, 97,114,101, 97, 95,115,104, 97,112,101, 0, 97,114,101, 97, 95,115,105,122,101, 0, 97,114,101, 97, 95,115,105,122,101,
-121, 0, 97,114,101, 97, 95,115,105,122,101,122, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0,114, 97,121, 95,115, 97,
-109,112, 95,109,101,116,104,111,100, 0,115,104, 97,100,111,119,109, 97,112, 95,116,121,112,101, 0,116,101,120, 97, 99,116, 0,
-115,104, 97,100,104, 97,108,111,115,116,101,112, 0,115,117,110, 95,101,102,102,101, 99,116, 95,116,121,112,101, 0,115,107,121,
- 98,108,101,110,100,116,121,112,101, 0,104,111,114,105,122,111,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,112,114,
-101, 97,100, 0,115,117,110, 95, 98,114,105,103,104,116,110,101,115,115, 0,115,117,110, 95,115,105,122,101, 0, 98, 97, 99,107,
-115, 99, 97,116,116,101,114,101,100, 95,108,105,103,104,116, 0,115,117,110, 95,105,110,116,101,110,115,105,116,121, 0, 97,116,
-109, 95,116,117,114, 98,105,100,105,116,121, 0, 97,116,109, 95,105,110,115, 99, 97,116,116,101,114,105,110,103, 95,102, 97, 99,
-116,111,114, 0, 97,116,109, 95,101,120,116,105,110, 99,116,105,111,110, 95,102, 97, 99,116,111,114, 0, 97,116,109, 95,100,105,
-115,116, 97,110, 99,101, 95,102, 97, 99,116,111,114, 0,115,107,121, 98,108,101,110,100,102, 97, 99, 0,115,107,121, 95,101,120,
-112,111,115,117,114,101, 0,115,104, 97,100,111,119, 95,102,114,117,115,116,117,109, 95,115,105,122,101, 0,115,107,121, 95, 99,
-111,108,111,114,115,112, 97, 99,101, 0,112, 97,100, 52, 91, 50, 93, 0, 42,109,116,101,120, 91, 49, 56, 93, 0,112,114, 95,116,
-101,120,116,117,114,101, 0,112, 97,100, 54, 91, 52, 93, 0,100,101,110,115,105,116,121, 0,101,109,105,115,115,105,111,110, 0,
-115, 99, 97,116,116,101,114,105,110,103, 0,114,101,102,108,101, 99,116,105,111,110, 0,101,109,105,115,115,105,111,110, 95, 99,
-111,108, 91, 51, 93, 0,116,114, 97,110,115,109,105,115,115,105,111,110, 95, 99,111,108, 91, 51, 93, 0,114,101,102,108,101, 99,
-116,105,111,110, 95, 99,111,108, 91, 51, 93, 0,100,101,110,115,105,116,121, 95,115, 99, 97,108,101, 0,100,101,112,116,104, 95,
- 99,117,116,111,102,102, 0, 97,115,121,109,109,101,116,114,121, 0,115,116,101,112,115,105,122,101, 95,116,121,112,101, 0,115,
-104, 97,100,101,102,108, 97,103, 0,115,104, 97,100,101, 95,116,121,112,101, 0,112,114,101, 99, 97, 99,104,101, 95,114,101,115,
-111,108,117,116,105,111,110, 0,115,116,101,112,115,105,122,101, 0,109,115, 95,100,105,102,102, 0,109,115, 95,105,110,116,101,
-110,115,105,116,121, 0,109,115, 95,115,112,114,101, 97,100, 0, 97,108,112,104, 97, 95, 98,108,101,110,100, 0,102, 97, 99,101,
- 95,111,114,105,101,110,116, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 95,116,121,112,101, 0,115,112,101, 99,114,
- 0,115,112,101, 99,103, 0,115,112,101, 99, 98, 0,109,105,114,114, 0,109,105,114,103, 0,109,105,114, 98, 0, 97,109, 98,114,
- 0, 97,109, 98, 98, 0, 97,109, 98,103, 0, 97,109, 98, 0,101,109,105,116, 0, 97,110,103, 0,115,112,101, 99,116,114, 97, 0,
-114, 97,121, 95,109,105,114,114,111,114, 0, 97,108,112,104, 97, 0,114,101,102, 0,115,112,101, 99, 0,122,111,102,102,115, 0,
- 97,100,100, 0,116,114, 97,110,115,108,117, 99,101,110, 99,121, 0,118,111,108, 0,103, 97,109,101, 0,102,114,101,115,110,101,
-108, 95,109,105,114, 0,102,114,101,115,110,101,108, 95,109,105,114, 95,105, 0,102,114,101,115,110,101,108, 95,116,114, 97, 0,
-102,114,101,115,110,101,108, 95,116,114, 97, 95,105, 0,102,105,108,116,101,114, 0,116,120, 95,108,105,109,105,116, 0,116,120,
- 95,102, 97,108,108,111,102,102, 0,114, 97,121, 95,100,101,112,116,104, 0,114, 97,121, 95,100,101,112,116,104, 95,116,114, 97,
- 0,104, 97,114, 0,115,101,101,100, 49, 0,115,101,101,100, 50, 0,103,108,111,115,115, 95,109,105,114, 0,103,108,111,115,115,
- 95,116,114, 97, 0,115, 97,109,112, 95,103,108,111,115,115, 95,109,105,114, 0,115, 97,109,112, 95,103,108,111,115,115, 95,116,
-114, 97, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104, 95,109,105,114, 0, 97,100, 97,112,116, 95,116,104,114,101,115,104,
- 95,116,114, 97, 0, 97,110,105,115,111, 95,103,108,111,115,115, 95,109,105,114, 0,100,105,115,116, 95,109,105,114, 0,102, 97,
-100,101,116,111, 95,109,105,114, 0,115,104, 97,100,101, 95,102,108, 97,103, 0,109,111,100,101, 95,108, 0,102,108, 97,114,101,
- 99, 0,115,116, 97,114, 99, 0,108,105,110,101, 99, 0,114,105,110,103, 99, 0,104, 97,115,105,122,101, 0,102,108, 97,114,101,
-115,105,122,101, 0,115,117, 98,115,105,122,101, 0,102,108, 97,114,101, 98,111,111,115,116, 0,115,116,114, 97,110,100, 95,115,
-116, 97, 0,115,116,114, 97,110,100, 95,101,110,100, 0,115,116,114, 97,110,100, 95,101, 97,115,101, 0,115,116,114, 97,110,100,
- 95,115,117,114,102,110,111,114, 0,115,116,114, 97,110,100, 95,109,105,110, 0,115,116,114, 97,110,100, 95,119,105,100,116,104,
-102, 97,100,101, 0,115,116,114, 97,110,100, 95,117,118,110, 97,109,101, 91, 54, 52, 93, 0,115, 98,105, 97,115, 0,108, 98,105,
- 97,115, 0,115,104, 97,100, 95, 97,108,112,104, 97, 0,115,101,112,116,101,120, 0,114,103, 98,115,101,108, 0,112,114, 95,116,
-121,112,101, 0,112,114, 95, 98, 97, 99,107, 0,112,114, 95,108, 97,109,112, 0,109,108, 95,102,108, 97,103, 0,100,105,102,102,
- 95,115,104, 97,100,101,114, 0,115,112,101, 99, 95,115,104, 97,100,101,114, 0,114,111,117,103,104,110,101,115,115, 0,114,101,
-102,114, 97, 99, 0,112, 97,114, 97,109, 91, 52, 93, 0,114,109,115, 0,100, 97,114,107,110,101,115,115, 0, 42,114, 97,109,112,
- 95, 99,111,108, 0, 42,114, 97,109,112, 95,115,112,101, 99, 0,114, 97,109,112,105,110, 95, 99,111,108, 0,114, 97,109,112,105,
-110, 95,115,112,101, 99, 0,114, 97,109,112, 98,108,101,110,100, 95, 99,111,108, 0,114, 97,109,112, 98,108,101,110,100, 95,115,
-112,101, 99, 0,114, 97,109,112, 95,115,104,111,119, 0,112, 97,100, 51, 0,114, 97,109,112,102, 97, 99, 95, 99,111,108, 0,114,
- 97,109,112,102, 97, 99, 95,115,112,101, 99, 0, 42,103,114,111,117,112, 0,102,114,105, 99,116,105,111,110, 0,102,104, 0,114,
-101,102,108,101, 99,116, 0,102,104,100,105,115,116, 0,120,121,102,114,105, 99,116, 0,100,121,110, 97,109,111,100,101, 0,115,
-115,115, 95,114, 97,100,105,117,115, 91, 51, 93, 0,115,115,115, 95, 99,111,108, 91, 51, 93, 0,115,115,115, 95,101,114,114,111,
-114, 0,115,115,115, 95,115, 99, 97,108,101, 0,115,115,115, 95,105,111,114, 0,115,115,115, 95, 99,111,108,102, 97, 99, 0,115,
-115,115, 95,116,101,120,102, 97, 99, 0,115,115,115, 95,102,114,111,110,116, 0,115,115,115, 95, 98, 97, 99,107, 0,115,115,115,
- 95,102,108, 97,103, 0,115,115,115, 95,112,114,101,115,101,116, 0,109, 97,112,116,111, 95,116,101,120,116,117,114,101,100, 0,
-115,104, 97,100,111,119,111,110,108,121, 95,102,108, 97,103, 0,105,110,100,101,120, 0,103,112,117,109, 97,116,101,114,105, 97,
-108, 0, 42, 98, 98, 0,115,101,108, 99,111,108, 49, 0,115,101,108, 99,111,108, 50, 0,113,117, 97,116, 91, 52, 93, 0,101,120,
-112,120, 0,101,120,112,121, 0,101,120,112,122, 0,114, 97,100, 0,114, 97,100, 50, 0,115, 0, 42,109, 97,116, 0, 42,105,109,
- 97,116, 0,101,108,101,109,115, 0,100,105,115,112, 0, 42,101,100,105,116,101,108,101,109,115, 0, 42, 42,109, 97,116, 0,102,
-108, 97,103, 50, 0,116,111,116, 99,111,108, 0,119,105,114,101,115,105,122,101, 0,114,101,110,100,101,114,115,105,122,101, 0,
-116,104,114,101,115,104, 0, 42,108, 97,115,116,101,108,101,109, 0,118,101, 99, 91, 51, 93, 91, 51, 93, 0, 97,108,102, 97, 0,
-119,101,105,103,104,116, 0,104, 49, 0,104, 50, 0,102, 49, 0,102, 50, 0,102, 51, 0,104,105,100,101, 0,118,101, 99, 91, 52,
- 93, 0,109, 97,116, 95,110,114, 0,112,110,116,115,117, 0,112,110,116,115,118, 0,114,101,115,111,108,117, 0,114,101,115,111,
-108,118, 0,111,114,100,101,114,117, 0,111,114,100,101,114,118, 0,102,108, 97,103,117, 0,102,108, 97,103,118, 0, 42,107,110,
-111,116,115,117, 0, 42,107,110,111,116,115,118, 0,116,105,108,116, 95,105,110,116,101,114,112, 0,114, 97,100,105,117,115, 95,
-105,110,116,101,114,112, 0, 99,104, 97,114,105,100,120, 0,107,101,114,110, 0,119, 0,104, 0,110,117,114, 98,115, 0, 42,107,
-101,121,105,110,100,101,120, 0,115,104, 97,112,101,110,114, 0,110,117,114, 98, 0, 42,101,100,105,116,110,117,114, 98, 0, 42,
- 98,101,118,111, 98,106, 0, 42,116, 97,112,101,114,111, 98,106, 0, 42,116,101,120,116,111,110, 99,117,114,118,101, 0, 42,112,
- 97,116,104, 0, 42,107,101,121, 0, 98,101,118, 0,100,114, 97,119,102,108, 97,103, 0,116,119,105,115,116, 95,109,111,100,101,
- 0,116,119,105,115,116, 95,115,109,111,111,116,104, 0,115,109, 97,108,108, 99, 97,112,115, 95,115, 99, 97,108,101, 0,112, 97,
-116,104,108,101,110, 0, 98,101,118,114,101,115,111,108, 0,119,105,100,116,104, 0,101,120,116, 49, 0,101,120,116, 50, 0,114,
-101,115,111,108,117, 95,114,101,110, 0,114,101,115,111,108,118, 95,114,101,110, 0, 97, 99,116,110,117, 0, 42,108, 97,115,116,
-115,101,108, 0,115,112, 97, 99,101,109,111,100,101, 0,115,112, 97, 99,105,110,103, 0,108,105,110,101,100,105,115,116, 0,115,
-104,101, 97,114, 0,102,115,105,122,101, 0,119,111,114,100,115,112, 97, 99,101, 0,117,108,112,111,115, 0,117,108,104,101,105,
-103,104,116, 0,120,111,102, 0,121,111,102, 0,108,105,110,101,119,105,100,116,104, 0, 42,115,116,114, 0, 42,115,101,108, 98,
-111,120,101,115, 0, 42,101,100,105,116,102,111,110,116, 0,102, 97,109,105,108,121, 91, 50, 52, 93, 0, 42,118,102,111,110,116,
- 0, 42,118,102,111,110,116, 98, 0, 42,118,102,111,110,116,105, 0, 42,118,102,111,110,116, 98,105, 0,115,101,112, 99,104, 97,
-114, 0,116,111,116, 98,111,120, 0, 97, 99,116, 98,111,120, 0, 42,116, 98, 0,115,101,108,115,116, 97,114,116, 0,115,101,108,
-101,110,100, 0, 42,115,116,114,105,110,102,111, 0, 99,117,114,105,110,102,111, 0, 98,101,118,102, 97, 99, 49, 0, 98,101,118,
-102, 97, 99, 50, 0, 42,109,115,101,108,101, 99,116, 0, 42,109,112,111,108,121, 0, 42,109,116,112,111,108,121, 0, 42,109,108,
-111,111,112, 0, 42,109,108,111,111,112,117,118, 0, 42,109,108,111,111,112, 99,111,108, 0, 42,109,102, 97, 99,101, 0, 42,109,
-116,102, 97, 99,101, 0, 42,116,102, 97, 99,101, 0, 42,109,118,101,114,116, 0, 42,109,101,100,103,101, 0, 42,100,118,101,114,
-116, 0, 42,109, 99,111,108, 0, 42,109,115,116,105, 99,107,121, 0, 42,116,101,120, 99,111,109,101,115,104, 0, 42,101,100,105,
-116, 95, 98,116,109,101,115,104, 0,118,100, 97,116, 97, 0,101,100, 97,116, 97, 0,102,100, 97,116, 97, 0,112,100, 97,116, 97,
- 0,108,100, 97,116, 97, 0,116,111,116,101,100,103,101, 0,116,111,116,102, 97, 99,101, 0,116,111,116,115,101,108,101, 99,116,
- 0,116,111,116,112,111,108,121, 0,116,111,116,108,111,111,112, 0, 97, 99,116, 95,102, 97, 99,101, 0,115,109,111,111,116,104,
-114,101,115,104, 0,115,117, 98,100,105,118, 0,115,117, 98,100,105,118,114, 0,115,117, 98,115,117,114,102,116,121,112,101, 0,
-101,100,105,116,102,108, 97,103, 0, 42,109,114, 0, 42,116,112, 97,103,101, 0,117,118, 91, 52, 93, 91, 50, 93, 0, 99,111,108,
- 91, 52, 93, 0,116,114, 97,110,115,112, 0,116,105,108,101, 0,117,110,119,114, 97,112, 0,118, 49, 0,118, 50, 0,118, 51, 0,
-118, 52, 0,101,100, 99,111,100,101, 0, 99,114,101, 97,115,101, 0, 98,119,101,105,103,104,116, 0,100,101,102, 95,110,114, 0,
- 42,100,119, 0,116,111,116,119,101,105,103,104,116, 0, 99,111, 91, 51, 93, 0,110,111, 91, 51, 93, 0,108,111,111,112,115,116,
- 97,114,116, 0,118, 0,101, 0,117,118, 91, 50, 93, 0, 99,111, 91, 50, 93, 0,102, 0,105, 0,115, 91, 50, 53, 54, 93, 0,116,
-111,116,100,105,115,112, 0,108,101,118,101,108, 0, 40, 42,100,105,115,112,115, 41, 40, 41, 0, 42,104,105,100,100,101,110, 0,
-118, 91, 52, 93, 0,109,105,100, 0,112, 97,100, 91, 50, 93, 0,118, 91, 50, 93, 0, 42,102, 97, 99,101,115, 0, 42, 99,111,108,
-102, 97, 99,101,115, 0, 42,101,100,103,101,115, 0, 42,118,101,114,116,115, 0,108,101,118,101,108,115, 0,108,101,118,101,108,
- 95, 99,111,117,110,116, 0, 99,117,114,114,101,110,116, 0,110,101,119,108,118,108, 0,101,100,103,101,108,118,108, 0,112,105,
-110,108,118,108, 0,114,101,110,100,101,114,108,118,108, 0,117,115,101, 95, 99,111,108, 0, 42,101,100,103,101, 95,102,108, 97,
-103,115, 0, 42,101,100,103,101, 95, 99,114,101, 97,115,101,115, 0,114, 97,100,105,117,115, 91, 51, 93, 0,115,116, 97, 99,107,
-105,110,100,101,120, 0, 42,101,114,114,111,114, 0,109,111,100,105,102,105,101,114, 0, 42,116,101,120,116,117,114,101, 0, 42,
-109, 97,112, 95,111, 98,106,101, 99,116, 0,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 54, 52, 93, 0,117,118,108, 97,
-121,101,114, 95,116,109,112, 0,116,101,120,109, 97,112,112,105,110,103, 0,115,117, 98,100,105,118, 84,121,112,101, 0,114,101,
-110,100,101,114, 76,101,118,101,108,115, 0, 42,101,109, 67, 97, 99,104,101, 0, 42,109, 67, 97, 99,104,101, 0,115,116,114,101,
-110,103,116,104, 0,100,101,102, 97,120,105,115, 0,112, 97,100, 91, 54, 93, 0,108,101,110,103,116,104, 0,114, 97,110,100,111,
-109,105,122,101, 0,115,101,101,100, 0, 42,111, 98, 95, 97,114,109, 0, 42,115,116, 97,114,116, 95, 99, 97,112, 0, 42,101,110,
-100, 95, 99, 97,112, 0, 42, 99,117,114,118,101, 95,111, 98, 0, 42,111,102,102,115,101,116, 95,111, 98, 0,111,102,102,115,101,
-116, 91, 51, 93, 0,115, 99, 97,108,101, 91, 51, 93, 0,109,101,114,103,101, 95,100,105,115,116, 0,102,105,116, 95,116,121,112,
-101, 0,111,102,102,115,101,116, 95,116,121,112,101, 0, 99,111,117,110,116, 0, 97,120,105,115, 0,116,111,108,101,114, 97,110,
- 99,101, 0, 42,109,105,114,114,111,114, 95,111, 98, 0,115,112,108,105,116, 95, 97,110,103,108,101, 0,118, 97,108,117,101, 0,
-114,101,115, 0,118, 97,108, 95,102,108, 97,103,115, 0,108,105,109, 95,102,108, 97,103,115, 0,101, 95,102,108, 97,103,115, 0,
- 98,101,118,101,108, 95, 97,110,103,108,101, 0,100,101,102,103,114,112, 95,110, 97,109,101, 91, 54, 52, 93, 0, 42,100,111,109,
- 97,105,110, 0, 42,102,108,111,119, 0, 42, 99,111,108,108, 0,116,105,109,101, 0,100,105,114,101, 99,116,105,111,110, 0,109,
-105,100,108,101,118,101,108, 0, 42,112,114,111,106,101, 99,116,111,114,115, 91, 49, 48, 93, 0, 42,105,109, 97,103,101, 0,110,
-117,109, 95,112,114,111,106,101, 99,116,111,114,115, 0, 97,115,112,101, 99,116,120, 0, 97,115,112,101, 99,116,121, 0,115, 99,
- 97,108,101,120, 0,115, 99, 97,108,101,121, 0,112,101,114, 99,101,110,116, 0,102, 97, 99,101, 67,111,117,110,116, 0,102, 97,
- 99, 0,114,101,112,101, 97,116, 0, 42,111, 98,106,101, 99,116, 99,101,110,116,101,114, 0,115,116, 97,114,116,120, 0,115,116,
- 97,114,116,121, 0,104,101,105,103,104,116, 0,110, 97,114,114,111,119, 0,115,112,101,101,100, 0,100, 97,109,112, 0,102, 97,
-108,108,111,102,102, 0,116,105,109,101,111,102,102,115, 0,108,105,102,101,116,105,109,101, 0,100,101,102,111,114,109,102,108,
- 97,103, 0,109,117,108,116,105, 0, 42,112,114,101,118, 67,111,115, 0,115,117, 98,116, 97,114,103,101,116, 91, 54, 52, 93, 0,
-112, 97,114,101,110,116,105,110,118, 91, 52, 93, 91, 52, 93, 0, 99,101,110,116, 91, 51, 93, 0, 42,105,110,100,101,120, 97,114,
- 0,116,111,116,105,110,100,101,120, 0,102,111,114, 99,101, 0, 42, 99,108,111,116,104, 79, 98,106,101, 99,116, 0, 42,115,105,
-109, 95,112, 97,114,109,115, 0, 42, 99,111,108,108, 95,112, 97,114,109,115, 0, 42,112,111,105,110,116, 95, 99, 97, 99,104,101,
- 0,112,116, 99, 97, 99,104,101,115, 0, 42,120, 0, 42,120,110,101,119, 0, 42,120,111,108,100, 0, 42, 99,117,114,114,101,110,
-116, 95,120,110,101,119, 0, 42, 99,117,114,114,101,110,116, 95,120, 0, 42, 99,117,114,114,101,110,116, 95,118, 0, 42,109,102,
- 97, 99,101,115, 0,110,117,109,118,101,114,116,115, 0,110,117,109,102, 97, 99,101,115, 0,116,105,109,101, 95,120, 0,116,105,
-109,101, 95,120,110,101,119, 0, 42, 98,118,104,116,114,101,101, 0, 42,118, 0, 42,100,109, 0, 99,102,114, 97, 0,111,112,101,
-114, 97,116,105,111,110, 0,118,101,114,116,101,120, 0,116,111,116,105,110,102,108,117,101,110, 99,101, 0,103,114,105,100,115,
-105,122,101, 0, 42, 98,105,110,100,105,110,102,108,117,101,110, 99,101,115, 0, 42, 98,105,110,100,111,102,102,115,101,116,115,
- 0, 42, 98,105,110,100, 99, 97,103,101, 99,111,115, 0,116,111,116, 99, 97,103,101,118,101,114,116, 0, 42,100,121,110,103,114,
-105,100, 0, 42,100,121,110,105,110,102,108,117,101,110, 99,101,115, 0, 42,100,121,110,118,101,114,116,115, 0, 42,112, 97,100,
- 50, 0,100,121,110,103,114,105,100,115,105,122,101, 0,100,121,110, 99,101,108,108,109,105,110, 91, 51, 93, 0,100,121,110, 99,
-101,108,108,119,105,100,116,104, 0, 98,105,110,100,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42, 98,105,110,100,119,101,105,103,
-104,116,115, 0, 42, 98,105,110,100, 99,111,115, 0, 40, 42, 98,105,110,100,102,117,110, 99, 41, 40, 41, 0, 42,112,115,121,115,
- 0,116,111,116,100,109,118,101,114,116, 0,116,111,116,100,109,101,100,103,101, 0,116,111,116,100,109,102, 97, 99,101, 0,112,
-111,115,105,116,105,111,110, 0,114, 97,110,100,111,109, 95,112,111,115,105,116,105,111,110, 0, 42,102, 97, 99,101,112, 97, 0,
-118,103,114,111,117,112, 0,112,114,111,116,101, 99,116, 0,108,118,108, 0,115, 99,117,108,112,116,108,118,108, 0,116,111,116,
-108,118,108, 0,115,105,109,112,108,101, 0, 42,102,115,115, 0, 42,116, 97,114,103,101,116, 0, 42, 97,117,120, 84, 97,114,103,
-101,116, 0,118,103,114,111,117,112, 95,110, 97,109,101, 91, 54, 52, 93, 0,107,101,101,112, 68,105,115,116, 0,115,104,114,105,
-110,107, 84,121,112,101, 0,115,104,114,105,110,107, 79,112,116,115, 0,112,114,111,106, 65,120,105,115, 0,115,117, 98,115,117,
-114,102, 76,101,118,101,108,115, 0, 42,111,114,105,103,105,110, 0,102, 97, 99,116,111,114, 0,108,105,109,105,116, 91, 50, 93,
- 0,111,114,105,103,105,110, 79,112,116,115, 0,111,102,102,115,101,116, 95,102, 97, 99, 0,111,102,102,115,101,116, 95,102, 97,
- 99, 95,118,103, 0, 99,114,101, 97,115,101, 95,105,110,110,101,114, 0, 99,114,101, 97,115,101, 95,111,117,116,101,114, 0, 99,
-114,101, 97,115,101, 95,114,105,109, 0,109, 97,116, 95,111,102,115, 0,109, 97,116, 95,111,102,115, 95,114,105,109, 0, 42,111,
- 98, 95, 97,120,105,115, 0,115,116,101,112,115, 0,114,101,110,100,101,114, 95,115,116,101,112,115, 0,105,116,101,114, 0,115,
- 99,114,101,119, 95,111,102,115, 0, 97,110,103,108,101, 0, 42,111, 99,101, 97,110, 0, 42,111, 99,101, 97,110, 99, 97, 99,104,
-101, 0,114,101,115,111,108,117,116,105,111,110, 0,115,112, 97,116,105, 97,108, 95,115,105,122,101, 0,119,105,110,100, 95,118,
-101,108,111, 99,105,116,121, 0,115,109, 97,108,108,101,115,116, 95,119, 97,118,101, 0,119, 97,118,101, 95, 97,108,105,103,110,
-109,101,110,116, 0,119, 97,118,101, 95,100,105,114,101, 99,116,105,111,110, 0,119, 97,118,101, 95,115, 99, 97,108,101, 0, 99,
-104,111,112, 95, 97,109,111,117,110,116, 0,102,111, 97,109, 95, 99,111,118,101,114, 97,103,101, 0, 98, 97,107,101,115,116, 97,
-114,116, 0, 98, 97,107,101,101,110,100, 0, 99, 97, 99,104,101,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0,102,111, 97,109,108,
- 97,121,101,114,110, 97,109,101, 91, 54, 52, 93, 0, 99, 97, 99,104,101,100, 0,103,101,111,109,101,116,114,121, 95,109,111,100,
-101, 0,114,101,102,114,101,115,104, 0,114,101,112,101, 97,116, 95,120, 0,114,101,112,101, 97,116, 95,121, 0,102,111, 97,109,
- 95,102, 97,100,101, 0, 42,111, 98,106,101, 99,116, 95,102,114,111,109, 0, 42,111, 98,106,101, 99,116, 95,116,111, 0,102, 97,
-108,108,111,102,102, 95,114, 97,100,105,117,115, 0,101,100,105,116, 95,102,108, 97,103,115, 0,100,101,102, 97,117,108,116, 95,
-119,101,105,103,104,116, 0, 42, 99,109, 97,112, 95, 99,117,114,118,101, 0, 97,100,100, 95,116,104,114,101,115,104,111,108,100,
- 0,114,101,109, 95,116,104,114,101,115,104,111,108,100, 0,109, 97,115,107, 95, 99,111,110,115,116, 97,110,116, 0,109, 97,115,
-107, 95,100,101,102,103,114,112, 95,110, 97,109,101, 91, 54, 52, 93, 0,109, 97,115,107, 95,116,101,120, 95,117,115,101, 95, 99,
-104, 97,110,110,101,108, 0, 42,109, 97,115,107, 95,116,101,120,116,117,114,101, 0, 42,109, 97,115,107, 95,116,101,120, 95,109,
- 97,112, 95,111, 98,106, 0,109, 97,115,107, 95,116,101,120, 95,109, 97,112,112,105,110,103, 0,109, 97,115,107, 95,116,101,120,
- 95,117,118,108, 97,121,101,114, 95,110, 97,109,101, 91, 54, 52, 93, 0,112, 97,100, 95,105, 49, 0,100,101,102,103,114,112, 95,
-110, 97,109,101, 95, 97, 91, 54, 52, 93, 0,100,101,102,103,114,112, 95,110, 97,109,101, 95, 98, 91, 54, 52, 93, 0,100,101,102,
- 97,117,108,116, 95,119,101,105,103,104,116, 95, 97, 0,100,101,102, 97,117,108,116, 95,119,101,105,103,104,116, 95, 98, 0,109,
-105,120, 95,109,111,100,101, 0,109,105,120, 95,115,101,116, 0,112, 97,100, 95, 99, 49, 91, 54, 93, 0,112,114,111,120,105,109,
-105,116,121, 95,109,111,100,101, 0,112,114,111,120,105,109,105,116,121, 95,102,108, 97,103,115, 0, 42,112,114,111,120,105,109,
-105,116,121, 95,111, 98, 95,116, 97,114,103,101,116, 0,109,105,110, 95,100,105,115,116, 0,109, 97,120, 95,100,105,115,116, 0,
-112, 97,100, 95,115, 49, 0, 42, 99, 97,110,118, 97,115, 0, 42, 98,114,117,115,104, 0,116,104,114,101,115,104,111,108,100, 0,
-115, 99, 97,108,101, 0,104,101,114,109,105,116,101, 95,110,117,109, 0, 98,114, 97,110, 99,104, 95,115,109,111,111,116,104,105,
-110,103, 0,115,121,109,109,101,116,114,121, 95, 97,120,101,115, 0, 42,108, 97,116,116, 0,112,110,116,115,119, 0,111,112,110,
-116,115,117, 0,111,112,110,116,115,118, 0,111,112,110,116,115,119, 0,116,121,112,101,117, 0,116,121,112,101,118, 0,116,121,
-112,101,119, 0,102,117, 0,102,118, 0,102,119, 0,100,117, 0,100,118, 0,100,119, 0, 42,100,101,102, 0, 42,108, 97,116,116,
-105, 99,101,100, 97,116, 97, 0,108, 97,116,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 42,101,100,105,116,108, 97,116,116, 0,118,
-101, 99, 91, 56, 93, 91, 51, 93, 0, 42,115, 99,117,108,112,116, 0,112, 97,114,116,121,112,101, 0,112, 97,114, 49, 0,112, 97,
-114, 50, 0,112, 97,114, 51, 0,112, 97,114,115,117, 98,115,116,114, 91, 54, 52, 93, 0, 42,116,114, 97, 99,107, 0, 42,112,114,
-111,120,121, 0, 42,112,114,111,120,121, 95,103,114,111,117,112, 0, 42,112,114,111,120,121, 95,102,114,111,109, 0, 42, 97, 99,
-116,105,111,110, 0, 42,112,111,115,101,108,105, 98, 0, 42,112,111,115,101, 0, 42,103,112,100, 0, 97,118,115, 0, 42,109,112,
- 97,116,104, 0, 99,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108,115, 0,101,102,102,101, 99,116, 0,100,101,
-102, 98, 97,115,101, 0,109,111,100,105,102,105,101,114,115, 0,114,101,115,116,111,114,101, 95,109,111,100,101, 0, 42,109, 97,
-116, 98,105,116,115, 0, 97, 99,116, 99,111,108, 0,100,108,111, 99, 91, 51, 93, 0,111,114,105,103, 91, 51, 93, 0,100,115,105,
-122,101, 91, 51, 93, 0,100,115, 99, 97,108,101, 91, 51, 93, 0,100,114,111,116, 91, 51, 93, 0,100,113,117, 97,116, 91, 52, 93,
- 0,114,111,116, 65,120,105,115, 91, 51, 93, 0,100,114,111,116, 65,120,105,115, 91, 51, 93, 0,114,111,116, 65,110,103,108,101,
- 0,100,114,111,116, 65,110,103,108,101, 0,111, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0, 99,111,110,115,116,105,110,118, 91,
- 52, 93, 91, 52, 93, 0,105,109, 97,116, 95,114,101,110, 91, 52, 93, 91, 52, 93, 0,108, 97,121, 0,112, 97,100, 54, 0, 99,111,
-108, 98,105,116,115, 0,116,114, 97,110,115,102,108, 97,103, 0,112,114,111,116,101, 99,116,102,108, 97,103, 0,116,114, 97, 99,
-107,102,108, 97,103, 0,117,112,102,108, 97,103, 0,110,108, 97,102,108, 97,103, 0,105,112,111,102,108, 97,103, 0,115, 99, 97,
-102,108, 97,103, 0,115, 99, 97,118,105,115,102,108, 97,103, 0,112, 97,100, 53, 0,100,117,112,111,110, 0,100,117,112,111,102,
-102, 0,100,117,112,115,116, 97, 0,100,117,112,101,110,100, 0,115,102, 0,109, 97,115,115, 0,100, 97,109,112,105,110,103, 0,
-105,110,101,114,116,105, 97, 0,102,111,114,109,102, 97, 99,116,111,114, 0,114,100, 97,109,112,105,110,103, 0,109, 97,114,103,
-105,110, 0,109, 97,120, 95,118,101,108, 0,109,105,110, 95,118,101,108, 0,109, 95, 99,111,110,116, 97, 99,116, 80,114,111, 99,
-101,115,115,105,110,103, 84,104,114,101,115,104,111,108,100, 0,111, 98,115,116, 97, 99,108,101, 82, 97,100, 0,115,116,101,112,
- 95,104,101,105,103,104,116, 0,106,117,109,112, 95,115,112,101,101,100, 0,102, 97,108,108, 95,115,112,101,101,100, 0,112, 97,
-100, 49, 91, 52, 93, 0,114,111,116,109,111,100,101, 0, 98,111,117,110,100,116,121,112,101, 0, 99,111,108,108,105,115,105,111,
-110, 95, 98,111,117,110,100,116,121,112,101, 0,114,101,115,116,114,105, 99,116,102,108, 97,103, 0,100,116, 0,101,109,112,116,
-121, 95,100,114, 97,119,116,121,112,101, 0,101,109,112,116,121, 95,100,114, 97,119,115,105,122,101, 0,100,117,112,102, 97, 99,
-101,115, 99, 97, 0,112,114,111,112, 0,115,101,110,115,111,114,115, 0, 99,111,110,116,114,111,108,108,101,114,115, 0, 97, 99,
-116,117, 97,116,111,114,115, 0, 98, 98,115,105,122,101, 91, 51, 93, 0, 97, 99,116,100,101,102, 0,103, 97,109,101,102,108, 97,
-103, 0,103, 97,109,101,102,108, 97,103, 50, 0, 42, 98,115,111,102,116, 0,115,111,102,116,102,108, 97,103, 0, 97,110,105,115,
-111,116,114,111,112,105, 99, 70,114,105, 99,116,105,111,110, 91, 51, 93, 0, 99,111,110,115,116,114, 97,105,110,116,115, 0,110,
-108, 97,115,116,114,105,112,115, 0,104,111,111,107,115, 0,112, 97,114,116,105, 99,108,101,115,121,115,116,101,109, 0, 42,115,
-111,102,116, 0, 42,100,117,112, 95,103,114,111,117,112, 0, 98,111,100,121, 95,116,121,112,101, 0,115,104, 97,112,101,102,108,
- 97,103, 0, 42,102,108,117,105,100,115,105,109, 83,101,116,116,105,110,103,115, 0, 42,100,101,114,105,118,101,100, 68,101,102,
-111,114,109, 0, 42,100,101,114,105,118,101,100, 70,105,110, 97,108, 0,108, 97,115,116, 68, 97,116, 97, 77, 97,115,107, 0, 99,
-117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0,115,116, 97,116,101, 0,105,110,105,116, 95,115,116, 97,116,101, 0,
-103,112,117,108, 97,109,112, 0,112, 99, 95,105,100,115, 0, 42,100,117,112,108,105,108,105,115,116, 0,105,109, 97, 95,111,102,
-115, 91, 50, 93, 0, 99,117,114,105,110,100,101,120, 0, 97, 99,116,105,118,101, 0,111,114,105,103,108, 97,121, 0,111,109, 97,
-116, 91, 52, 93, 91, 52, 93, 0,111,114, 99,111, 91, 51, 93, 0,110,111, 95,100,114, 97,119, 0, 97,110,105,109, 97,116,101,100,
- 0,100,101,102,108,101, 99,116, 0,102,111,114, 99,101,102,105,101,108,100, 0,115,104, 97,112,101, 0,116,101,120, 95,109,111,
-100,101, 0,107,105,110,107, 0,107,105,110,107, 95, 97,120,105,115, 0,122,100,105,114, 0,102, 95,115,116,114,101,110,103,116,
-104, 0,102, 95,100, 97,109,112, 0,102, 95,102,108,111,119, 0,102, 95,115,105,122,101, 0,102, 95,112,111,119,101,114, 0,109,
- 97,120,100,105,115,116, 0,109,105,110,100,105,115,116, 0,102, 95,112,111,119,101,114, 95,114, 0,109, 97,120,114, 97,100, 0,
-109,105,110,114, 97,100, 0,112,100,101,102, 95,100, 97,109,112, 0,112,100,101,102, 95,114,100, 97,109,112, 0,112,100,101,102,
- 95,112,101,114,109, 0,112,100,101,102, 95,102,114,105, 99,116, 0,112,100,101,102, 95,114,102,114,105, 99,116, 0,112,100,101,
-102, 95,115,116,105, 99,107,110,101,115,115, 0, 97, 98,115,111,114,112,116,105,111,110, 0,112,100,101,102, 95,115, 98,100, 97,
-109,112, 0,112,100,101,102, 95,115, 98,105,102,116, 0,112,100,101,102, 95,115, 98,111,102,116, 0, 99,108,117,109,112, 95,102,
- 97, 99, 0, 99,108,117,109,112, 95,112,111,119, 0,107,105,110,107, 95,102,114,101,113, 0,107,105,110,107, 95,115,104, 97,112,
-101, 0,107,105,110,107, 95, 97,109,112, 0,102,114,101,101, 95,101,110,100, 0,116,101,120, 95,110, 97, 98,108, 97, 0, 42,114,
-110,103, 0,102, 95,110,111,105,115,101, 0,119,101,105,103,104,116, 91, 49, 51, 93, 0,103,108,111, 98, 97,108, 95,103,114, 97,
-118,105,116,121, 0,114,116, 91, 51, 93, 0,116,111,116,100, 97,116, 97, 0,102,114, 97,109,101, 0,116,111,116,112,111,105,110,
-116, 0,100, 97,116, 97, 95,116,121,112,101,115, 0, 42,100, 97,116, 97, 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 0,101,120,
-116,114, 97,100, 97,116, 97, 0,115,116,101,112, 0,115,105,109,102,114, 97,109,101, 0,115,116, 97,114,116,102,114, 97,109,101,
- 0,101,110,100,102,114, 97,109,101, 0,101,100,105,116,102,114, 97,109,101, 0,108, 97,115,116, 95,101,120, 97, 99,116, 0,108,
- 97,115,116, 95,118, 97,108,105,100, 0, 99,111,109,112,114,101,115,115,105,111,110, 0,112,114,101,118, 95,110, 97,109,101, 91,
- 54, 52, 93, 0,105,110,102,111, 91, 54, 52, 93, 0,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0, 42, 99, 97, 99,104,101,100, 95,
-102,114, 97,109,101,115, 0,109,101,109, 95, 99, 97, 99,104,101, 0, 42,101,100,105,116, 0, 40, 42,102,114,101,101, 95,101,100,
-105,116, 41, 40, 41, 0,108,105,110, 83,116,105,102,102, 0, 97,110,103, 83,116,105,102,102, 0,118,111,108,117,109,101, 0,118,
-105,116,101,114, 97,116,105,111,110,115, 0,112,105,116,101,114, 97,116,105,111,110,115, 0,100,105,116,101,114, 97,116,105,111,
-110,115, 0, 99,105,116,101,114, 97,116,105,111,110,115, 0,107, 83, 82, 72, 82, 95, 67, 76, 0,107, 83, 75, 72, 82, 95, 67, 76,
- 0,107, 83, 83, 72, 82, 95, 67, 76, 0,107, 83, 82, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 83, 75, 95, 83, 80, 76, 84, 95, 67,
- 76, 0,107, 83, 83, 95, 83, 80, 76, 84, 95, 67, 76, 0,107, 86, 67, 70, 0,107, 68, 80, 0,107, 68, 71, 0,107, 76, 70, 0,107,
- 80, 82, 0,107, 86, 67, 0,107, 68, 70, 0,107, 77, 84, 0,107, 67, 72, 82, 0,107, 75, 72, 82, 0,107, 83, 72, 82, 0,107, 65,
- 72, 82, 0, 99,111,108,108,105,115,105,111,110,102,108, 97,103,115, 0,110,117,109, 99,108,117,115,116,101,114,105,116,101,114,
- 97,116,105,111,110,115, 0,119,101,108,100,105,110,103, 0,116,111,116,115,112,114,105,110,103, 0, 42, 98,112,111,105,110,116,
- 0, 42, 98,115,112,114,105,110,103, 0,109,115,103, 95,108,111, 99,107, 0,109,115,103, 95,118, 97,108,117,101, 0,110,111,100,
-101,109, 97,115,115, 0,110, 97,109,101,100, 86, 71, 95, 77, 97,115,115, 91, 54, 52, 93, 0,103,114, 97,118, 0,109,101,100,105,
- 97,102,114,105, 99,116, 0,114,107,108,105,109,105,116, 0,112,104,121,115,105, 99,115, 95,115,112,101,101,100, 0,103,111, 97,
-108,115,112,114,105,110,103, 0,103,111, 97,108,102,114,105, 99,116, 0,109,105,110,103,111, 97,108, 0,109, 97,120,103,111, 97,
-108, 0,100,101,102,103,111, 97,108, 0,118,101,114,116,103,114,111,117,112, 0,110, 97,109,101,100, 86, 71, 95, 83,111,102,116,
-103,111, 97,108, 91, 54, 52, 93, 0,102,117,122,122,121,110,101,115,115, 0,105,110,115,112,114,105,110,103, 0,105,110,102,114,
-105, 99,116, 0,110, 97,109,101,100, 86, 71, 95, 83,112,114,105,110,103, 95, 75, 91, 54, 52, 93, 0,101,102,114, 97, 0,105,110,
-116,101,114,118, 97,108, 0,108,111, 99, 97,108, 0,115,111,108,118,101,114,102,108, 97,103,115, 0, 42, 42,107,101,121,115, 0,
-116,111,116,112,111,105,110,116,107,101,121, 0,115,101, 99,111,110,100,115,112,114,105,110,103, 0, 99,111,108, 98, 97,108,108,
- 0, 98, 97,108,108,100, 97,109,112, 0, 98, 97,108,108,115,116,105,102,102, 0,115, 98, 99, 95,109,111,100,101, 0, 97,101,114,
-111,101,100,103,101, 0,109,105,110,108,111,111,112,115, 0,109, 97,120,108,111,111,112,115, 0, 99,104,111,107,101, 0,115,111,
-108,118,101,114, 95, 73, 68, 0,112,108, 97,115,116,105, 99, 0,115,112,114,105,110,103,112,114,101,108,111, 97,100, 0, 42,115,
- 99,114, 97,116, 99,104, 0,115,104,101, 97,114,115,116,105,102,102, 0,105,110,112,117,115,104, 0, 42,112,111,105,110,116, 99,
- 97, 99,104,101, 0, 42,101,102,102,101, 99,116,111,114, 95,119,101,105,103,104,116,115, 0,108, 99,111,109, 91, 51, 93, 0,108,
-114,111,116, 91, 51, 93, 91, 51, 93, 0,108,115, 99, 97,108,101, 91, 51, 93, 91, 51, 93, 0,108, 97,115,116, 95,102,114, 97,109,
-101, 0,118,101,108, 91, 51, 93, 0, 42,102,109,100, 0,115,104,111,119, 95, 97,100,118, 97,110, 99,101,100,111,112,116,105,111,
-110,115, 0,114,101,115,111,108,117,116,105,111,110,120,121,122, 0,112,114,101,118,105,101,119,114,101,115,120,121,122, 0,114,
-101, 97,108,115,105,122,101, 0,103,117,105, 68,105,115,112,108, 97,121, 77,111,100,101, 0,114,101,110,100,101,114, 68,105,115,
-112,108, 97,121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 86, 97,108,117,101, 0,118,105,115, 99,111,115,105,116,
-121, 77,111,100,101, 0,118,105,115, 99,111,115,105,116,121, 69,120,112,111,110,101,110,116, 0,103,114, 97,118, 91, 51, 93, 0,
- 97,110,105,109, 83,116, 97,114,116, 0, 97,110,105,109, 69,110,100, 0, 98, 97,107,101, 83,116, 97,114,116, 0, 98, 97,107,101,
- 69,110,100, 0,102,114, 97,109,101, 79,102,102,115,101,116, 0,103,115,116, 97,114, 0,109, 97,120, 82,101,102,105,110,101, 0,
-105,110,105, 86,101,108,120, 0,105,110,105, 86,101,108,121, 0,105,110,105, 86,101,108,122, 0, 42,111,114,103, 77,101,115,104,
- 0, 42,109,101,115,104, 66, 66, 0,115,117,114,102,100, 97,116, 97, 80, 97,116,104, 91, 49, 48, 50, 52, 93, 0, 98, 98, 83,116,
- 97,114,116, 91, 51, 93, 0, 98, 98, 83,105,122,101, 91, 51, 93, 0,116,121,112,101, 70,108, 97,103,115, 0,100,111,109, 97,105,
-110, 78,111,118,101, 99,103,101,110, 0,118,111,108,117,109,101, 73,110,105,116, 84,121,112,101, 0,112, 97,114,116, 83,108,105,
-112, 86, 97,108,117,101, 0,103,101,110,101,114, 97,116,101, 84,114, 97, 99,101,114,115, 0,103,101,110,101,114, 97,116,101, 80,
- 97,114,116,105, 99,108,101,115, 0,115,117,114,102, 97, 99,101, 83,109,111,111,116,104,105,110,103, 0,115,117,114,102, 97, 99,
-101, 83,117, 98,100,105,118,115, 0,112, 97,114,116,105, 99,108,101, 73,110,102, 83,105,122,101, 0,112, 97,114,116,105, 99,108,
-101, 73,110,102, 65,108,112,104, 97, 0,102, 97,114, 70,105,101,108,100, 83,105,122,101, 0, 42,109,101,115,104, 86,101,108,111,
- 99,105,116,105,101,115, 0, 99,112,115, 84,105,109,101, 83,116, 97,114,116, 0, 99,112,115, 84,105,109,101, 69,110,100, 0, 99,
-112,115, 81,117, 97,108,105,116,121, 0, 97,116,116,114, 97, 99,116,102,111,114, 99,101, 83,116,114,101,110,103,116,104, 0, 97,
-116,116,114, 97, 99,116,102,111,114, 99,101, 82, 97,100,105,117,115, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 83,
-116,114,101,110,103,116,104, 0,118,101,108,111, 99,105,116,121,102,111,114, 99,101, 82, 97,100,105,117,115, 0,108, 97,115,116,
-103,111,111,100,102,114, 97,109,101, 0, 97,110,105,109, 82, 97,116,101, 0,109,105,115,116,121,112,101, 0,104,111,114,114, 0,
-104,111,114,103, 0,104,111,114, 98, 0,122,101,110,114, 0,122,101,110,103, 0,122,101,110, 98, 0,102, 97,115,116, 99,111,108,
- 0,101,120,112,111,115,117,114,101, 0,101,120,112, 0,114, 97,110,103,101, 0,108,105,110,102, 97, 99, 0,108,111,103,102, 97,
- 99, 0,103,114, 97,118,105,116,121, 0, 97, 99,116,105,118,105,116,121, 66,111,120, 82, 97,100,105,117,115, 0,115,107,121,116,
-121,112,101, 0,111, 99, 99,108,117,115,105,111,110, 82,101,115, 0,112,104,121,115,105, 99,115, 69,110,103,105,110,101, 0,116,
-105, 99,114, 97,116,101, 0,109, 97,120,108,111,103,105, 99,115,116,101,112, 0,112,104,121,115,117, 98,115,116,101,112, 0,109,
- 97,120,112,104,121,115,116,101,112, 0,109,105,115,105, 0,109,105,115,116,115,116, 97, 0,109,105,115,116,100,105,115,116, 0,
-109,105,115,116,104,105, 0,115,116, 97,114,114, 0,115,116, 97,114,103, 0,115,116, 97,114, 98, 0,115,116, 97,114,107, 0,115,
-116, 97,114,115,105,122,101, 0,115,116, 97,114,109,105,110,100,105,115,116, 0,115,116, 97,114,100,105,115,116, 0,115,116, 97,
-114, 99,111,108,110,111,105,115,101, 0,100,111,102,115,116, 97, 0,100,111,102,101,110,100, 0,100,111,102,109,105,110, 0,100,
-111,102,109, 97,120, 0, 97,111,100,105,115,116, 0, 97,111,100,105,115,116,102, 97, 99, 0, 97,111,101,110,101,114,103,121, 0,
- 97,111, 98,105, 97,115, 0, 97,111,109,111,100,101, 0, 97,111,115, 97,109,112, 0, 97,111,109,105,120, 0, 97,111, 99,111,108,
-111,114, 0, 97,111, 95, 97,100, 97,112,116, 95,116,104,114,101,115,104, 0, 97,111, 95, 97,100, 97,112,116, 95,115,112,101,101,
-100, 95,102, 97, 99, 0, 97,111, 95, 97,112,112,114,111,120, 95,101,114,114,111,114, 0, 97,111, 95, 97,112,112,114,111,120, 95,
- 99,111,114,114,101, 99,116,105,111,110, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95,101,110,101,114,103,121, 0, 97,111,
- 95,101,110,118, 95,101,110,101,114,103,121, 0, 97,111, 95,112, 97,100, 50, 0, 97,111, 95,105,110,100,105,114,101, 99,116, 95,
- 98,111,117,110, 99,101,115, 0, 97,111, 95,112, 97,100, 0, 97,111, 95,115, 97,109,112, 95,109,101,116,104,111,100, 0, 97,111,
- 95,103, 97,116,104,101,114, 95,109,101,116,104,111,100, 0, 97,111, 95, 97,112,112,114,111,120, 95,112, 97,115,115,101,115, 0,
- 42, 97,111,115,112,104,101,114,101, 0, 42, 97,111,116, 97, 98,108,101,115, 0,115,101,108, 99,111,108, 0,115,120, 0,115,121,
- 0, 42,108,112, 70,111,114,109, 97,116, 0, 42,108,112, 80, 97,114,109,115, 0, 99, 98, 70,111,114,109, 97,116, 0, 99, 98, 80,
- 97,114,109,115, 0,102, 99, 99, 84,121,112,101, 0,102, 99, 99, 72, 97,110,100,108,101,114, 0,100,119, 75,101,121, 70,114, 97,
-109,101, 69,118,101,114,121, 0,100,119, 81,117, 97,108,105,116,121, 0,100,119, 66,121,116,101,115, 80,101,114, 83,101, 99,111,
-110,100, 0,100,119, 70,108, 97,103,115, 0,100,119, 73,110,116,101,114,108,101, 97,118,101, 69,118,101,114,121, 0, 97,118,105,
- 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 42, 99,100, 80, 97,114,109,115, 0, 42,112, 97,100, 0, 99,100, 83,
-105,122,101, 0,113,116, 99,111,100,101, 99,110, 97,109,101, 91, 49, 50, 56, 93, 0, 99,111,100,101, 99, 84,121,112,101, 0, 99,
-111,100,101, 99, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0, 99,111,100,101, 99, 0, 99,111,100,101, 99, 70,108,
- 97,103,115, 0, 99,111,108,111,114, 68,101,112,116,104, 0, 99,111,100,101, 99, 84,101,109,112,111,114, 97,108, 81,117, 97,108,
-105,116,121, 0,109,105,110, 83,112, 97,116,105, 97,108, 81,117, 97,108,105,116,121, 0,109,105,110, 84,101,109,112,111,114, 97,
-108, 81,117, 97,108,105,116,121, 0,107,101,121, 70,114, 97,109,101, 82, 97,116,101, 0, 98,105,116, 82, 97,116,101, 0, 97,117,
-100,105,111, 99,111,100,101, 99, 84,121,112,101, 0, 97,117,100,105,111, 83, 97,109,112,108,101, 82, 97,116,101, 0, 97,117,100,
-105,111, 66,105,116, 68,101,112,116,104, 0, 97,117,100,105,111, 67,104, 97,110,110,101,108,115, 0, 97,117,100,105,111, 67,111,
-100,101, 99, 70,108, 97,103,115, 0, 97,117,100,105,111, 66,105,116, 82, 97,116,101, 0, 97,117,100,105,111, 95, 99,111,100,101,
- 99, 0,118,105,100,101,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,100,105,111, 95, 98,105,116,114, 97,116,101, 0, 97,117,
-100,105,111, 95,109,105,120,114, 97,116,101, 0, 97,117,100,105,111, 95, 99,104, 97,110,110,101,108,115, 0, 97,117,100,105,111,
- 95,112, 97,100, 0, 97,117,100,105,111, 95,118,111,108,117,109,101, 0,103,111,112, 95,115,105,122,101, 0,114, 99, 95,109,105,
-110, 95,114, 97,116,101, 0,114, 99, 95,109, 97,120, 95,114, 97,116,101, 0,114, 99, 95, 98,117,102,102,101,114, 95,115,105,122,
-101, 0,109,117,120, 95,112, 97, 99,107,101,116, 95,115,105,122,101, 0,109,117,120, 95,114, 97,116,101, 0,109,105,120,114, 97,
-116,101, 0,109, 97,105,110, 0,115,112,101,101,100, 95,111,102, 95,115,111,117,110,100, 0,100,111,112,112,108,101,114, 95,102,
- 97, 99,116,111,114, 0,100,105,115,116, 97,110, 99,101, 95,109,111,100,101,108, 0, 42,109, 97,116, 95,111,118,101,114,114,105,
-100,101, 0, 42,108,105,103,104,116, 95,111,118,101,114,114,105,100,101, 0,108, 97,121, 95,122,109, 97,115,107, 0,108, 97,121,
- 95,101,120, 99,108,117,100,101, 0,108, 97,121,102,108, 97,103, 0,112, 97,115,115,102,108, 97,103, 0,112, 97,115,115, 95,120,
-111,114, 0,115, 97,109,112,108,101,115, 0,105,109,116,121,112,101, 0,112,108, 97,110,101,115, 0,113,117, 97,108,105,116,121,
- 0, 99,111,109,112,114,101,115,115, 0,101,120,114, 95, 99,111,100,101, 99, 0, 99,105,110,101,111,110, 95,102,108, 97,103, 0,
- 99,105,110,101,111,110, 95,119,104,105,116,101, 0, 99,105,110,101,111,110, 95, 98,108, 97, 99,107, 0, 99,105,110,101,111,110,
- 95,103, 97,109,109, 97, 0,106,112, 50, 95,102,108, 97,103, 0,105,109, 95,102,111,114,109, 97,116, 0, 42, 97,118,105, 99,111,
-100,101, 99,100, 97,116, 97, 0, 42,113,116, 99,111,100,101, 99,100, 97,116, 97, 0,113,116, 99,111,100,101, 99,115,101,116,116,
-105,110,103,115, 0,102,102, 99,111,100,101, 99,100, 97,116, 97, 0,115,117, 98,102,114, 97,109,101, 0,112,115,102,114, 97, 0,
-112,101,102,114, 97, 0,105,109, 97,103,101,115, 0,102,114, 97,109, 97,112,116,111, 0,116,104,114,101, 97,100,115, 0,102,114,
- 97,109,101,108,101,110, 0, 98,108,117,114,102, 97, 99, 0,101,100,103,101, 82, 0,101,100,103,101, 71, 0,101,100,103,101, 66,
- 0,102,117,108,108,115, 99,114,101,101,110, 0,120,112,108, 97,121, 0,121,112,108, 97,121, 0,102,114,101,113,112,108, 97,121,
- 0, 97,116,116,114,105, 98, 0,102,114, 97,109,101, 95,115,116,101,112, 0,115,116,101,114,101,111,109,111,100,101, 0,100,105,
-109,101,110,115,105,111,110,115,112,114,101,115,101,116, 0,109, 97,120,105,109,115,105,122,101, 0,120,115, 99,104, 0,121,115,
- 99,104, 0,120,112, 97,114,116,115, 0,121,112, 97,114,116,115, 0,115,117, 98,105,109,116,121,112,101, 0,100,105,115,112,108,
- 97,121,109,111,100,101, 0,115, 99,101,109,111,100,101, 0,114, 97,121,116,114, 97, 99,101, 95,111,112,116,105,111,110,115, 0,
-114, 97,121,116,114, 97, 99,101, 95,115,116,114,117, 99,116,117,114,101, 0,111, 99,114,101,115, 0,112, 97,100, 52, 0, 97,108,
-112,104, 97,109,111,100,101, 0,111,115, 97, 0,102,114,115, 95,115,101, 99, 0,101,100,103,101,105,110,116, 0,115, 97,102,101,
-116,121, 0, 98,111,114,100,101,114, 0,100,105,115,112,114,101, 99,116, 0,108, 97,121,101,114,115, 0, 97, 99,116,108, 97,121,
- 0,109, 98,108,117,114, 95,115, 97,109,112,108,101,115, 0,120, 97,115,112, 0,121, 97,115,112, 0,102,114,115, 95,115,101, 99,
- 95, 98, 97,115,101, 0,103, 97,117,115,115, 0, 99,111,108,111,114, 95,109,103,116, 95,102,108, 97,103, 0,112,111,115,116,103,
- 97,109,109, 97, 0,112,111,115,116,104,117,101, 0,112,111,115,116,115, 97,116, 0,100,105,116,104,101,114, 95,105,110,116,101,
-110,115,105,116,121, 0, 98, 97,107,101, 95,111,115, 97, 0, 98, 97,107,101, 95,102,105,108,116,101,114, 0, 98, 97,107,101, 95,
-109,111,100,101, 0, 98, 97,107,101, 95,102,108, 97,103, 0, 98, 97,107,101, 95,110,111,114,109, 97,108, 95,115,112, 97, 99,101,
- 0, 98, 97,107,101, 95,113,117, 97,100, 95,115,112,108,105,116, 0, 98, 97,107,101, 95,109, 97,120,100,105,115,116, 0, 98, 97,
-107,101, 95, 98,105, 97,115,100,105,115,116, 0, 98, 97,107,101, 95,112, 97,100, 0,112,105, 99, 91, 49, 48, 50, 52, 93, 0,115,
-116, 97,109,112, 0,115,116, 97,109,112, 95,102,111,110,116, 95,105,100, 0,115,116, 97,109,112, 95,117,100, 97,116, 97, 91, 55,
- 54, 56, 93, 0,102,103, 95,115,116, 97,109,112, 91, 52, 93, 0, 98,103, 95,115,116, 97,109,112, 91, 52, 93, 0,115,101,113, 95,
-112,114,101,118, 95,116,121,112,101, 0,115,101,113, 95,114,101,110,100, 95,116,121,112,101, 0,115,101,113, 95,102,108, 97,103,
- 0,112, 97,100, 53, 91, 53, 93, 0,115,105,109,112,108,105,102,121, 95,102,108, 97,103, 0,115,105,109,112,108,105,102,121, 95,
-115,117, 98,115,117,114,102, 0,115,105,109,112,108,105,102,121, 95,115,104, 97,100,111,119,115, 97,109,112,108,101,115, 0,115,
-105,109,112,108,105,102,121, 95,112, 97,114,116,105, 99,108,101,115, 0,115,105,109,112,108,105,102,121, 95, 97,111,115,115,115,
- 0, 99,105,110,101,111,110,119,104,105,116,101, 0, 99,105,110,101,111,110, 98,108, 97, 99,107, 0, 99,105,110,101,111,110,103,
- 97,109,109, 97, 0,106,112, 50, 95,112,114,101,115,101,116, 0,106,112, 50, 95,100,101,112,116,104, 0,114,112, 97,100, 51, 0,
-100,111,109,101,114,101,115, 0,100,111,109,101,109,111,100,101, 0,100,111,109,101, 97,110,103,108,101, 0,100,111,109,101,116,
-105,108,116, 0,100,111,109,101,114,101,115, 98,117,102, 0, 42,100,111,109,101,116,101,120,116, 0,101,110,103,105,110,101, 91,
- 51, 50, 93, 0,110, 97,109,101, 91, 51, 50, 93, 0,112, 97,114,116,105, 99,108,101, 95,112,101,114, 99, 0,115,117, 98,115,117,
-114,102, 95,109, 97,120, 0,115,104, 97,100, 98,117,102,115, 97,109,112,108,101, 95,109, 97,120, 0, 97,111, 95,101,114,114,111,
-114, 0,116,105,108,116, 0,114,101,115, 98,117,102, 0, 42,119, 97,114,112,116,101,120,116, 0, 99,111,108, 91, 51, 93, 0, 99,
-101,108,108,115,105,122,101, 0, 99,101,108,108,104,101,105,103,104,116, 0, 97,103,101,110,116,109, 97,120,115,108,111,112,101,
- 0, 97,103,101,110,116,109, 97,120, 99,108,105,109, 98, 0, 97,103,101,110,116,104,101,105,103,104,116, 0, 97,103,101,110,116,
-114, 97,100,105,117,115, 0,101,100,103,101,109, 97,120,108,101,110, 0,101,100,103,101,109, 97,120,101,114,114,111,114, 0,114,
-101,103,105,111,110,109,105,110,115,105,122,101, 0,114,101,103,105,111,110,109,101,114,103,101,115,105,122,101, 0,118,101,114,
-116,115,112,101,114,112,111,108,121, 0,100,101,116, 97,105,108,115, 97,109,112,108,101,100,105,115,116, 0,100,101,116, 97,105,
-108,115, 97,109,112,108,101,109, 97,120,101,114,114,111,114, 0,102,114, 97,109,105,110,103, 0,112,108, 97,121,101,114,102,108,
- 97,103, 0,114,116, 49, 0,114,116, 50, 0, 97, 97,115, 97,109,112,108,101,115, 0,112, 97,100, 52, 91, 51, 93, 0,100,111,109,
-101, 0,115,116,101,114,101,111,102,108, 97,103, 0,101,121,101,115,101,112, 97,114, 97,116,105,111,110, 0,114,101, 99, 97,115,
-116, 68, 97,116, 97, 0,109, 97,116,109,111,100,101, 0,101,120,105,116,107,101,121, 0,111, 98,115,116, 97, 99,108,101, 83,105,
-109,117,108, 97,116,105,111,110, 0,108,101,118,101,108, 72,101,105,103,104,116, 0,100,101, 97, 99,116,105,118, 97,116,105,111,
-110,116,105,109,101, 0,108,105,110,101, 97,114,100,101, 97, 99,116,116,104,114,101,115,104,111,108,100, 0, 97,110,103,117,108,
- 97,114,100,101, 97, 99,116,116,104,114,101,115,104,111,108,100, 0, 42, 99, 97,109,101,114, 97, 0, 42,112, 97,105,110,116, 95,
- 99,117,114,115,111,114, 0,112, 97,105,110,116, 95, 99,117,114,115,111,114, 95, 99,111,108, 91, 52, 93, 0,110,117,109, 95,105,
-110,112,117,116, 95,115, 97,109,112,108,101,115, 0,112, 97,105,110,116, 0,115,101, 97,109, 95, 98,108,101,101,100, 0,110,111,
-114,109, 97,108, 95, 97,110,103,108,101, 0,115, 99,114,101,101,110, 95,103,114, 97, 98, 95,115,105,122,101, 91, 50, 93, 0, 42,
-112, 97,105,110,116, 99,117,114,115,111,114, 0,105,110,118,101,114,116, 0,116,111,116,114,101,107,101,121, 0,116,111,116, 97,
-100,100,107,101,121, 0, 98,114,117,115,104,116,121,112,101, 0, 98,114,117,115,104, 91, 55, 93, 0,101,109,105,116,116,101,114,
-100,105,115,116, 0,115,101,108,101, 99,116,109,111,100,101, 0,101,100,105,116,116,121,112,101, 0,100,114, 97,119, 95,115,116,
-101,112, 0,102, 97,100,101, 95,102,114, 97,109,101,115, 0,114, 97,100,105, 97,108, 95,115,121,109,109, 91, 51, 93, 0,108, 97,
-115,116, 95,120, 0,108, 97,115,116, 95,121, 0,108, 97,115,116, 95, 97,110,103,108,101, 0,100,114, 97,119, 95, 97,110, 99,104,
-111,114,101,100, 0, 97,110, 99,104,111,114,101,100, 95,115,105,122,101, 0, 97,110, 99,104,111,114,101,100, 95,108,111, 99, 97,
-116,105,111,110, 91, 51, 93, 0, 97,110, 99,104,111,114,101,100, 95,105,110,105,116,105, 97,108, 95,109,111,117,115,101, 91, 50,
- 93, 0,100,114, 97,119, 95,112,114,101,115,115,117,114,101, 0,112,114,101,115,115,117,114,101, 95,118, 97,108,117,101, 0,115,
-112,101, 99,105, 97,108, 95,114,111,116, 97,116,105,111,110, 0, 42,118,112, 97,105,110,116, 95,112,114,101,118, 0, 42,119,112,
- 97,105,110,116, 95,112,114,101,118, 0,109, 97,116, 91, 51, 93, 91, 51, 93, 0,117,110,112,114,111,106,101, 99,116,101,100, 95,
-114, 97,100,105,117,115, 0, 42,118,112, 97,105,110,116, 0, 42,119,112, 97,105,110,116, 0, 42,117,118,115, 99,117,108,112,116,
- 0,118,103,114,111,117,112, 95,119,101,105,103,104,116, 0, 99,111,114,110,101,114,116,121,112,101, 0,106,111,105,110,116,114,
-105,108,105,109,105,116, 0,100,101,103,114, 0,116,117,114,110, 0,101,120,116,114, 95,111,102,102,115, 0,100,111,117, 98,108,
-105,109,105,116, 0,110,111,114,109, 97,108,115,105,122,101, 0, 97,117,116,111,109,101,114,103,101, 0,115,101,103,109,101,110,
-116,115, 0,114,105,110,103,115, 0,118,101,114,116,105, 99,101,115, 0,117,110,119,114, 97,112,112,101,114, 0,117,118, 99, 97,
-108, 99, 95,114, 97,100,105,117,115, 0,117,118, 99, 97,108, 99, 95, 99,117, 98,101,115,105,122,101, 0,117,118, 99, 97,108, 99,
- 95,109, 97,114,103,105,110, 0,117,118, 99, 97,108, 99, 95,109, 97,112,100,105,114, 0,117,118, 99, 97,108, 99, 95,109, 97,112,
- 97,108,105,103,110, 0,117,118, 99, 97,108, 99, 95,102,108, 97,103, 0,117,118, 95,102,108, 97,103, 0,117,118, 95,115,101,108,
-101, 99,116,109,111,100,101, 0,117,118, 95,115,117, 98,115,117,114,102, 95,108,101,118,101,108, 0,103,112,101,110, 99,105,108,
- 95,102,108, 97,103,115, 0, 97,117,116,111,105,107, 95, 99,104, 97,105,110,108,101,110, 0,105,109, 97,112, 97,105,110,116, 0,
-112, 97,114,116,105, 99,108,101, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 95,115,105,122,101, 0,115,101,108,101, 99,
-116, 95,116,104,114,101,115,104, 0, 99,108,101, 97,110, 95,116,104,114,101,115,104, 0, 97,117,116,111,107,101,121, 95,109,111,
-100,101, 0, 97,117,116,111,107,101,121, 95,102,108, 97,103, 0,109,117,108,116,105,114,101,115, 95,115,117, 98,100,105,118, 95,
-116,121,112,101, 0,112, 97,100, 50, 91, 53, 93, 0,115,107,103,101,110, 95,114,101,115,111,108,117,116,105,111,110, 0,115,107,
-103,101,110, 95,116,104,114,101,115,104,111,108,100, 95,105,110,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,116,104,114,
-101,115,104,111,108,100, 95,101,120,116,101,114,110, 97,108, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,114, 97,116,
-105,111, 0,115,107,103,101,110, 95,108,101,110,103,116,104, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 97,110,103,108,
-101, 95,108,105,109,105,116, 0,115,107,103,101,110, 95, 99,111,114,114,101,108, 97,116,105,111,110, 95,108,105,109,105,116, 0,
-115,107,103,101,110, 95,115,121,109,109,101,116,114,121, 95,108,105,109,105,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,
-103,101,116, 95, 97,110,103,108,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,
-108,101,110,103,116,104, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,100,105,115,
-116, 97,110, 99,101, 95,119,101,105,103,104,116, 0,115,107,103,101,110, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110,
- 95,112,111,115,116,112,114,111, 0,115,107,103,101,110, 95,112,111,115,116,112,114,111, 95,112, 97,115,115,101,115, 0,115,107,
-103,101,110, 95,115,117, 98,100,105,118,105,115,105,111,110,115, 91, 51, 93, 0,115,107,103,101,110, 95,109,117,108,116,105, 95,
-108,101,118,101,108, 0, 42,115,107,103,101,110, 95,116,101,109,112,108, 97,116,101, 0, 98,111,110,101, 95,115,107,101,116, 99,
-104,105,110,103, 0, 98,111,110,101, 95,115,107,101,116, 99,104,105,110,103, 95, 99,111,110,118,101,114,116, 0,115,107,103,101,
-110, 95,115,117, 98,100,105,118,105,115,105,111,110, 95,110,117,109, 98,101,114, 0,115,107,103,101,110, 95,114,101,116, 97,114,
-103,101,116, 95,111,112,116,105,111,110,115, 0,115,107,103,101,110, 95,114,101,116, 97,114,103,101,116, 95,114,111,108,108, 0,
-115,107,103,101,110, 95,115,105,100,101, 95,115,116,114,105,110,103, 91, 56, 93, 0,115,107,103,101,110, 95,110,117,109, 95,115,
-116,114,105,110,103, 91, 56, 93, 0,101,100,103,101, 95,109,111,100,101, 0,101,100,103,101, 95,109,111,100,101, 95,108,105,118,
-101, 95,117,110,119,114, 97,112, 0,115,110, 97,112, 95,109,111,100,101, 0,115,110, 97,112, 95,102,108, 97,103, 0,115,110, 97,
-112, 95,116, 97,114,103,101,116, 0,112,114,111,112,111,114,116,105,111,110, 97,108, 0,112,114,111,112, 95,109,111,100,101, 0,
-112,114,111,112,111,114,116,105,111,110, 97,108, 95,111, 98,106,101, 99,116,115, 0,112, 97,100, 91, 53, 93, 0, 97,117,116,111,
- 95,110,111,114,109, 97,108,105,122,101, 0,109,117,108,116,105,112, 97,105,110,116, 0,117,115,101, 95,117,118, 95,115, 99,117,
-108,112,116, 0,117,118, 95,115, 99,117,108,112,116, 95,115,101,116,116,105,110,103,115, 0,117,118, 95,115, 99,117,108,112,116,
- 95,116,111,111,108, 0,117,118, 95,114,101,108, 97,120, 95,109,101,116,104,111,100, 0,115, 99,117,108,112,116, 95,112, 97,105,
-110,116, 95,115,101,116,116,105,110,103,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100,
- 95,115,105,122,101, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,101,100, 95,117,110,112,114,111,
-106,101, 99,116,101,100, 95,114, 97,100,105,117,115, 0,115, 99,117,108,112,116, 95,112, 97,105,110,116, 95,117,110,105,102,105,
-101,100, 95, 97,108,112,104, 97, 0,117,110,105,102,105,101,100, 95,112, 97,105,110,116, 95,115,101,116,116,105,110,103,115, 0,
-116,111,116,111, 98,106, 0,116,111,116,108, 97,109,112, 0,116,111,116,111, 98,106,115,101,108, 0,116,111,116, 99,117,114,118,
-101, 0,116,111,116,109,101,115,104, 0,116,111,116, 97,114,109, 97,116,117,114,101, 0,115, 99, 97,108,101, 95,108,101,110,103,
-116,104, 0,115,121,115,116,101,109, 0,115,121,115,116,101,109, 95,114,111,116, 97,116,105,111,110, 0,103,114, 97,118,105,116,
-121, 91, 51, 93, 0,113,117,105, 99,107, 95, 99, 97, 99,104,101, 95,115,116,101,112, 0, 42,119,111,114,108,100, 0, 42,115,101,
-116, 0, 98, 97,115,101, 0, 42, 98, 97,115, 97, 99,116, 0, 42,111, 98,101,100,105,116, 0, 99,117,114,115,111,114, 91, 51, 93,
- 0,116,119, 99,101,110,116, 91, 51, 93, 0,116,119,109,105,110, 91, 51, 93, 0,116,119,109, 97,120, 91, 51, 93, 0,108, 97,121,
- 97, 99,116, 0,108, 97,121, 95,117,112,100, 97,116,101,100, 0, 42,101,100, 0, 42,116,111,111,108,115,101,116,116,105,110,103,
-115, 0, 42,115,116, 97,116,115, 0, 97,117,100,105,111, 0,116,114, 97,110,115,102,111,114,109, 95,115,112, 97, 99,101,115, 0,
- 42,115,111,117,110,100, 95,115, 99,101,110,101, 0, 42,115,111,117,110,100, 95,115, 99,101,110,101, 95,104, 97,110,100,108,101,
- 0, 42,115,111,117,110,100, 95,115, 99,114,117, 98, 95,104, 97,110,100,108,101, 0, 42,115,112,101, 97,107,101,114, 95,104, 97,
-110,100,108,101,115, 0, 42,102,112,115, 95,105,110,102,111, 0, 42,116,104,101, 68, 97,103, 0,100, 97,103,105,115,118, 97,108,
-105,100, 0,100, 97,103,102,108, 97,103,115, 0, 97, 99,116,105,118,101, 95,107,101,121,105,110,103,115,101,116, 0,107,101,121,
-105,110,103,115,101,116,115, 0,103,109, 0,117,110,105,116, 0,112,104,121,115,105, 99,115, 95,115,101,116,116,105,110,103,115,
- 0, 42, 99,108,105,112, 0, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 95,109,111,100, 97,108, 0, 99,117,115,
-101,114, 0, 98,108,101,110,100, 0,118,105,101,119, 0,119,105,110,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109,
- 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,105,110,118, 91, 52, 93, 91, 52, 93, 0,112,101,114,115,109, 97,116, 91, 52,
- 93, 91, 52, 93, 0,112,101,114,115,105,110,118, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,109, 97,116,111, 98, 91, 52, 93, 91,
- 52, 93, 0,112,101,114,115,109, 97,116,111, 98, 91, 52, 93, 91, 52, 93, 0, 99,108,105,112, 91, 54, 93, 91, 52, 93, 0, 99,108,
-105,112, 95,108,111, 99, 97,108, 91, 54, 93, 91, 52, 93, 0, 42, 99,108,105,112, 98, 98, 0, 42,108,111, 99, 97,108,118,100, 0,
- 42,114,105, 0, 42,114,101,110,100,101,114, 95,101,110,103,105,110,101, 0, 42,100,101,112,116,104,115, 0, 42,115,109,115, 0,
- 42,115,109,111,111,116,104, 95,116,105,109,101,114, 0,116,119,109, 97,116, 91, 52, 93, 91, 52, 93, 0,118,105,101,119,113,117,
- 97,116, 91, 52, 93, 0,122,102, 97, 99, 0, 99, 97,109,100,120, 0, 99, 97,109,100,121, 0,112,105,120,115,105,122,101, 0, 99,
- 97,109,122,111,111,109, 0,105,115, 95,112,101,114,115,112, 0,112,101,114,115,112, 0,118,105,101,119,108,111, 99,107, 0,116,
-119,100,114, 97,119,102,108, 97,103, 0,114,102,108, 97,103, 0,108,118,105,101,119,113,117, 97,116, 91, 52, 93, 0,108,112,101,
-114,115,112, 0,108,118,105,101,119, 0,103,114,105,100,118,105,101,119, 0,116,119, 97,110,103,108,101, 91, 51, 93, 0,114,111,
-116, 95, 97,110,103,108,101, 0,114,111,116, 95, 97,120,105,115, 91, 51, 93, 0,114,101,103,105,111,110, 98, 97,115,101, 0,115,
-112, 97, 99,101,116,121,112,101, 0, 98,108,111, 99,107,115, 99, 97,108,101, 0, 98,108,111, 99,107,104, 97,110,100,108,101,114,
- 91, 56, 93, 0, 98,117,110,100,108,101, 95,115,105,122,101, 0, 98,117,110,100,108,101, 95,100,114, 97,119,116,121,112,101, 0,
-108, 97,121, 95,117,115,101,100, 0, 42,111, 98, 95, 99,101,110,116,114,101, 0, 98,103,112,105, 99, 98, 97,115,101, 0, 42, 98,
-103,112,105, 99, 0,111, 98, 95, 99,101,110,116,114,101, 95, 98,111,110,101, 91, 54, 52, 93, 0,100,114, 97,119,116,121,112,101,
- 0,111, 98, 95, 99,101,110,116,114,101, 95, 99,117,114,115,111,114, 0,115, 99,101,110,101,108,111, 99,107, 0, 97,114,111,117,
-110,100, 0,103,114,105,100, 0,110,101, 97,114, 0,102, 97,114, 0,109,111,100,101,115,101,108,101, 99,116, 0,103,114,105,100,
-108,105,110,101,115, 0,103,114,105,100,115,117, 98,100,105,118, 0,103,114,105,100,102,108, 97,103, 0,116,119,116,121,112,101,
- 0,116,119,109,111,100,101, 0,116,119,102,108, 97,103, 0,112, 97,100, 50, 91, 50, 93, 0, 97,102,116,101,114,100,114, 97,119,
- 95,116,114, 97,110,115,112, 0, 97,102,116,101,114,100,114, 97,119, 95,120,114, 97,121, 0, 97,102,116,101,114,100,114, 97,119,
- 95,120,114, 97,121,116,114, 97,110,115,112, 0,122, 98,117,102, 0,120,114, 97,121, 0,112, 97,100, 51, 91, 50, 93, 0, 42,112,
-114,111,112,101,114,116,105,101,115, 95,115,116,111,114, 97,103,101, 0,118,101,114,116, 0,104,111,114, 0,109, 97,115,107, 0,
-109,105,110, 91, 50, 93, 0,109, 97,120, 91, 50, 93, 0,109,105,110,122,111,111,109, 0,109, 97,120,122,111,111,109, 0,115, 99,
-114,111,108,108, 0,115, 99,114,111,108,108, 95,117,105, 0,107,101,101,112,116,111,116, 0,107,101,101,112,122,111,111,109, 0,
-107,101,101,112,111,102,115, 0, 97,108,105,103,110, 0,119,105,110,120, 0,119,105,110,121, 0,111,108,100,119,105,110,120, 0,
-111,108,100,119,105,110,121, 0, 42,116, 97, 98, 95,111,102,102,115,101,116, 0,116, 97, 98, 95,110,117,109, 0,116, 97, 98, 95,
- 99,117,114, 0,114,112,116, 95,109, 97,115,107, 0,118, 50,100, 0,109, 97,105,110, 98, 0,109, 97,105,110, 98,111, 0,109, 97,
-105,110, 98,117,115,101,114, 0,114,101, 95, 97,108,105,103,110, 0,112,114,101,118,105,101,119, 0,116,101,120,116,117,114,101,
- 95, 99,111,110,116,101,120,116, 0,112, 97,116,104,102,108, 97,103, 0,100, 97,116, 97,105, 99,111,110, 0, 42,112,105,110,105,
-100, 0, 42,116,101,120,117,115,101,114, 0,116,114,101,101, 0, 42,116,114,101,101,115,116,111,114,101, 0,115,101, 97,114, 99,
-104, 95,115,116,114,105,110,103, 91, 51, 50, 93, 0,115,101, 97,114, 99,104, 95,116,115,101, 0,111,117,116,108,105,110,101,118,
-105,115, 0,115,116,111,114,101,102,108, 97,103, 0,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0, 42, 97,100,115, 0,103,
-104,111,115,116, 67,117,114,118,101,115, 0, 97,117,116,111,115,110, 97,112, 0, 99,117,114,115,111,114, 86, 97,108, 0, 42, 97,
-114,114, 97,121, 0, 99, 97, 99,104,101,115, 0, 99, 97, 99,104,101, 95,100,105,115,112,108, 97,121, 0,114,101,110,100,101,114,
- 95,115,105,122,101, 0, 99,104, 97,110,115,104,111,119,110, 0,122,101, 98,114, 97, 0,122,111,111,109, 0,116,105,116,108,101,
- 91, 51, 50, 93, 0,100,105,114, 91, 49, 48, 53, 54, 93, 0,102,105,108,101, 91, 50, 53, 54, 93, 0,114,101,110, 97,109,101,102,
-105,108,101, 91, 50, 53, 54, 93, 0,114,101,110, 97,109,101,101,100,105,116, 91, 50, 53, 54, 93, 0,102,105,108,116,101,114, 95,
-103,108,111, 98, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108, 95,102,105,114,115,116, 0,115,
-101,108, 95,108, 97,115,116, 0,115,111,114,116, 0,100,105,115,112,108, 97,121, 0,102, 95,102,112, 0,102,112, 95,115,116,114,
- 91, 56, 93, 0,115, 99,114,111,108,108, 95,111,102,102,115,101,116, 0, 42,112, 97,114, 97,109,115, 0, 42,102,105,108,101,115,
- 0, 42,102,111,108,100,101,114,115, 95,112,114,101,118, 0, 42,102,111,108,100,101,114,115, 95,110,101,120,116, 0, 42,111,112,
- 0, 42,115,109,111,111,116,104,115, 99,114,111,108,108, 95,116,105,109,101,114, 0, 42,108, 97,121,111,117,116, 0,114,101, 99,
-101,110,116,110,114, 0, 98,111,111,107,109, 97,114,107,110,114, 0,115,121,115,116,101,109,110,114, 0, 42, 99,117,109, 97,112,
- 0,115, 99,111,112,101,115, 0,115, 97,109,112,108,101, 95,108,105,110,101, 95,104,105,115,116, 0, 99,117,114,115,111,114, 91,
- 50, 93, 0, 99,101,110,116,120, 0, 99,101,110,116,121, 0, 99,117,114,116,105,108,101, 0,108,111, 99,107, 0,112,105,110, 0,
-100,116, 95,117,118, 0,115,116,105, 99,107,121, 0,100,116, 95,117,118,115,116,114,101,116, 99,104, 0, 42,116,101,120,116, 0,
-116,111,112, 0,118,105,101,119,108,105,110,101,115, 0,109,101,110,117,110,114, 0,108,104,101,105,103,104,116, 0, 99,119,105,
-100,116,104, 0,108,105,110,101,110,114,115, 95,116,111,116, 0,108,101,102,116, 0,115,104,111,119,108,105,110,101,110,114,115,
- 0,116, 97, 98,110,117,109, 98,101,114, 0,115,104,111,119,115,121,110,116, 97,120, 0,108,105,110,101, 95,104,108,105,103,104,
-116, 0,111,118,101,114,119,114,105,116,101, 0,108,105,118,101, 95,101,100,105,116, 0,112,105,120, 95,112,101,114, 95,108,105,
-110,101, 0,116,120,116,115, 99,114,111,108,108, 0,116,120,116, 98, 97,114, 0,119,111,114,100,119,114, 97,112, 0,100,111,112,
-108,117,103,105,110,115, 0,102,105,110,100,115,116,114, 91, 50, 53, 54, 93, 0,114,101,112,108, 97, 99,101,115,116,114, 91, 50,
- 53, 54, 93, 0,109, 97,114,103,105,110, 95, 99,111,108,117,109,110, 0, 42,100,114, 97,119, 99, 97, 99,104,101, 0, 42,112,121,
- 95,100,114, 97,119, 0, 42,112,121, 95,101,118,101,110,116, 0, 42,112,121, 95, 98,117,116,116,111,110, 0, 42,112,121, 95, 98,
-114,111,119,115,101,114, 99, 97,108,108, 98, 97, 99,107, 0, 42,112,121, 95,103,108,111, 98, 97,108,100,105, 99,116, 0,108, 97,
-115,116,115,112, 97, 99,101, 0,115, 99,114,105,112,116,110, 97,109,101, 91, 49, 48, 50, 52, 93, 0,115, 99,114,105,112,116, 97,
-114,103, 91, 50, 53, 54, 93, 0, 42,115, 99,114,105,112,116, 0, 42, 98,117,116, 95,114,101,102,115, 0, 42,105,100, 0, 97,115,
-112,101, 99,116, 0,112, 97,100,102, 0,109,120, 0,109,121, 0, 42,101,100,105,116,116,114,101,101, 0,116,114,101,101,116,121,
-112,101, 0,116,101,120,102,114,111,109, 0,115,104, 97,100,101,114,102,114,111,109, 0,108,105,110,107,100,114, 97,103, 0,108,
-101,110, 95, 97,108,108,111, 99, 0, 99,117,114,115,111,114, 0,115, 99,114,111,108,108, 98, 97, 99,107, 0,104,105,115,116,111,
-114,121, 0,112,114,111,109,112,116, 91, 50, 53, 54, 93, 0,108, 97,110,103,117, 97,103,101, 91, 51, 50, 93, 0,115,101,108, 95,
-115,116, 97,114,116, 0,115,101,108, 95,101,110,100, 0,102,105,108,116,101,114, 91, 54, 52, 93, 0,120,108,111, 99,107,111,102,
- 0,121,108,111, 99,107,111,102, 0,117,115,101,114, 0,112, 97,116,104, 95,108,101,110,103,116,104, 0,108,111, 99, 91, 50, 93,
- 0,115,116, 97, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0,117,110,105,115,116, 97, 98,109, 97,116, 91, 52, 93, 91, 52, 93, 0,
-112,111,115,116,112,114,111, 99, 95,102,108, 97,103, 0, 42,100,114, 97,119, 95, 99,111,110,116,101,120,116, 0,100,111,112,101,
- 95,115,111,114,116, 0,100,111,112,101, 95,102,108, 97,103, 0,102,105,108,101,110, 97,109,101, 91, 49, 48, 50, 52, 93, 0, 98,
-108,102, 95,105,100, 0,117,105,102,111,110,116, 95,105,100, 0,114, 95,116,111, 95,108, 0,112,111,105,110,116,115, 0,107,101,
-114,110,105,110,103, 0,105,116, 97,108,105, 99, 0, 98,111,108,100, 0,115,104, 97,100,111,119, 0,115,104, 97,100,120, 0,115,
-104, 97,100,121, 0,115,104, 97,100,111,119, 97,108,112,104, 97, 0,115,104, 97,100,111,119, 99,111,108,111,114, 0,112, 97,110,
-101,108,116,105,116,108,101, 0,103,114,111,117,112,108, 97, 98,101,108, 0,119,105,100,103,101,116,108, 97, 98,101,108, 0,119,
-105,100,103,101,116, 0,112, 97,110,101,108,122,111,111,109, 0,109,105,110,108, 97, 98,101,108, 99,104, 97,114,115, 0,109,105,
-110,119,105,100,103,101,116, 99,104, 97,114,115, 0, 99,111,108,117,109,110,115,112, 97, 99,101, 0,116,101,109,112,108, 97,116,
-101,115,112, 97, 99,101, 0, 98,111,120,115,112, 97, 99,101, 0, 98,117,116,116,111,110,115,112, 97, 99,101,120, 0, 98,117,116,
-116,111,110,115,112, 97, 99,101,121, 0,112, 97,110,101,108,115,112, 97, 99,101, 0,112, 97,110,101,108,111,117,116,101,114, 0,
-111,117,116,108,105,110,101, 91, 52, 93, 0,105,110,110,101,114, 91, 52, 93, 0,105,110,110,101,114, 95,115,101,108, 91, 52, 93,
- 0,105,116,101,109, 91, 52, 93, 0,116,101,120,116, 91, 52, 93, 0,116,101,120,116, 95,115,101,108, 91, 52, 93, 0,115,104, 97,
-100,101,100, 0,115,104, 97,100,101,116,111,112, 0,115,104, 97,100,101,100,111,119,110, 0, 97,108,112,104, 97, 95, 99,104,101,
- 99,107, 0,105,110,110,101,114, 95, 97,110,105,109, 91, 52, 93, 0,105,110,110,101,114, 95, 97,110,105,109, 95,115,101,108, 91,
- 52, 93, 0,105,110,110,101,114, 95,107,101,121, 91, 52, 93, 0,105,110,110,101,114, 95,107,101,121, 95,115,101,108, 91, 52, 93,
- 0,105,110,110,101,114, 95,100,114,105,118,101,110, 91, 52, 93, 0,105,110,110,101,114, 95,100,114,105,118,101,110, 95,115,101,
-108, 91, 52, 93, 0,104,101, 97,100,101,114, 91, 52, 93, 0,115,104,111,119, 95,104,101, 97,100,101,114, 0,119, 99,111,108, 95,
-114,101,103,117,108, 97,114, 0,119, 99,111,108, 95,116,111,111,108, 0,119, 99,111,108, 95,116,101,120,116, 0,119, 99,111,108,
- 95,114, 97,100,105,111, 0,119, 99,111,108, 95,111,112,116,105,111,110, 0,119, 99,111,108, 95,116,111,103,103,108,101, 0,119,
- 99,111,108, 95,110,117,109, 0,119, 99,111,108, 95,110,117,109,115,108,105,100,101,114, 0,119, 99,111,108, 95,109,101,110,117,
- 0,119, 99,111,108, 95,112,117,108,108,100,111,119,110, 0,119, 99,111,108, 95,109,101,110,117, 95, 98, 97, 99,107, 0,119, 99,
-111,108, 95,109,101,110,117, 95,105,116,101,109, 0,119, 99,111,108, 95,116,111,111,108,116,105,112, 0,119, 99,111,108, 95, 98,
-111,120, 0,119, 99,111,108, 95,115, 99,114,111,108,108, 0,119, 99,111,108, 95,112,114,111,103,114,101,115,115, 0,119, 99,111,
-108, 95,108,105,115,116, 95,105,116,101,109, 0,119, 99,111,108, 95,115,116, 97,116,101, 0,112, 97,110,101,108, 0,105, 99,111,
-110,102,105,108,101, 91, 50, 53, 54, 93, 0,105, 99,111,110, 95, 97,108,112,104, 97, 0, 98, 97, 99,107, 91, 52, 93, 0,116,105,
-116,108,101, 91, 52, 93, 0,116,101,120,116, 95,104,105, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,105,116,108,101, 91, 52,
- 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 91, 52, 93, 0,104,101, 97,100,101,114, 95,116,101,120,116, 95,104,105, 91,
- 52, 93, 0, 98,117,116,116,111,110, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,105,116,108,101, 91, 52, 93, 0, 98,117,116,
-116,111,110, 95,116,101,120,116, 91, 52, 93, 0, 98,117,116,116,111,110, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,108,105,
-115,116, 91, 52, 93, 0,108,105,115,116, 95,116,105,116,108,101, 91, 52, 93, 0,108,105,115,116, 95,116,101,120,116, 91, 52, 93,
- 0,108,105,115,116, 95,116,101,120,116, 95,104,105, 91, 52, 93, 0,112, 97,110,101,108, 91, 52, 93, 0,112, 97,110,101,108, 95,
-116,105,116,108,101, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,116, 91, 52, 93, 0,112, 97,110,101,108, 95,116,101,120,
-116, 95,104,105, 91, 52, 93, 0,115,104, 97,100,101, 49, 91, 52, 93, 0,115,104, 97,100,101, 50, 91, 52, 93, 0,104,105,108,105,
-116,101, 91, 52, 93, 0,103,114,105,100, 91, 52, 93, 0,119,105,114,101, 91, 52, 93, 0,115,101,108,101, 99,116, 91, 52, 93, 0,
-108, 97,109,112, 91, 52, 93, 0,115,112,101, 97,107,101,114, 91, 52, 93, 0,101,109,112,116,121, 91, 52, 93, 0, 99, 97,109,101,
-114, 97, 91, 52, 93, 0,112, 97,100, 91, 56, 93, 0, 97, 99,116,105,118,101, 91, 52, 93, 0,103,114,111,117,112, 91, 52, 93, 0,
-103,114,111,117,112, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,116,114, 97,110,115,102,111,114,109, 91, 52, 93, 0,118,101,114,
-116,101,120, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 91, 52, 93, 0,
-101,100,103,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,101,100,103,101, 95,115,101, 97,109, 91, 52, 93, 0,101,100,103,101,
- 95,115,104, 97,114,112, 91, 52, 93, 0,101,100,103,101, 95,102, 97, 99,101,115,101,108, 91, 52, 93, 0,101,100,103,101, 95, 99,
-114,101, 97,115,101, 91, 52, 93, 0,102, 97, 99,101, 91, 52, 93, 0,102, 97, 99,101, 95,115,101,108,101, 99,116, 91, 52, 93, 0,
-102, 97, 99,101, 95,100,111,116, 91, 52, 93, 0,101,120,116,114, 97, 95,101,100,103,101, 95,108,101,110, 91, 52, 93, 0,101,120,
-116,114, 97, 95,102, 97, 99,101, 95, 97,110,103,108,101, 91, 52, 93, 0,101,120,116,114, 97, 95,102, 97, 99,101, 95, 97,114,101,
- 97, 91, 52, 93, 0,112, 97,100, 51, 91, 52, 93, 0,110,111,114,109, 97,108, 91, 52, 93, 0,118,101,114,116,101,120, 95,110,111,
-114,109, 97,108, 91, 52, 93, 0, 98,111,110,101, 95,115,111,108,105,100, 91, 52, 93, 0, 98,111,110,101, 95,112,111,115,101, 91,
- 52, 93, 0,115,116,114,105,112, 91, 52, 93, 0,115,116,114,105,112, 95,115,101,108,101, 99,116, 91, 52, 93, 0, 99,102,114, 97,
-109,101, 91, 52, 93, 0,110,117,114, 98, 95,117,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,118,108,105,110,101, 91, 52,
- 93, 0, 97, 99,116, 95,115,112,108,105,110,101, 91, 52, 93, 0,110,117,114, 98, 95,115,101,108, 95,117,108,105,110,101, 91, 52,
- 93, 0,110,117,114, 98, 95,115,101,108, 95,118,108,105,110,101, 91, 52, 93, 0,108, 97,115,116,115,101,108, 95,112,111,105,110,
-116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,117,116,111, 91,
- 52, 93, 0,104, 97,110,100,108,101, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95, 97,108,105,103,110, 91, 52,
- 93, 0,104, 97,110,100,108,101, 95, 97,117,116,111, 95, 99,108, 97,109,112,101,100, 91, 52, 93, 0,104, 97,110,100,108,101, 95,
-115,101,108, 95,102,114,101,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,117,116,111, 91, 52, 93, 0,104,
- 97,110,100,108,101, 95,115,101,108, 95,118,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,108,105,
-103,110, 91, 52, 93, 0,104, 97,110,100,108,101, 95,115,101,108, 95, 97,117,116,111, 95, 99,108, 97,109,112,101,100, 91, 52, 93,
- 0,100,115, 95, 99,104, 97,110,110,101,108, 91, 52, 93, 0,100,115, 95,115,117, 98, 99,104, 97,110,110,101,108, 91, 52, 93, 0,
- 99,111,110,115,111,108,101, 95,111,117,116,112,117,116, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,112,117,116, 91,
- 52, 93, 0, 99,111,110,115,111,108,101, 95,105,110,102,111, 91, 52, 93, 0, 99,111,110,115,111,108,101, 95,101,114,114,111,114,
- 91, 52, 93, 0, 99,111,110,115,111,108,101, 95, 99,117,114,115,111,114, 91, 52, 93, 0,118,101,114,116,101,120, 95,115,105,122,
-101, 0,111,117,116,108,105,110,101, 95,119,105,100,116,104, 0,102, 97, 99,101,100,111,116, 95,115,105,122,101, 0,110,111,111,
-100,108,101, 95, 99,117,114,118,105,110,103, 0,115,121,110,116, 97,120,108, 91, 52, 93, 0,115,121,110,116, 97,120,110, 91, 52,
- 93, 0,115,121,110,116, 97,120, 98, 91, 52, 93, 0,115,121,110,116, 97,120,118, 91, 52, 93, 0,115,121,110,116, 97,120, 99, 91,
- 52, 93, 0,109,111,118,105,101, 91, 52, 93, 0,109,111,118,105,101, 99,108,105,112, 91, 52, 93, 0,105,109, 97,103,101, 91, 52,
- 93, 0,115, 99,101,110,101, 91, 52, 93, 0, 97,117,100,105,111, 91, 52, 93, 0,101,102,102,101, 99,116, 91, 52, 93, 0,104,112,
- 97,100, 48, 91, 52, 93, 0,116,114, 97,110,115,105,116,105,111,110, 91, 52, 93, 0,109,101,116, 97, 91, 52, 93, 0,101,100,105,
-116,109,101,115,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 91, 52, 93,
- 0,104, 97,110,100,108,101, 95,118,101,114,116,101,120, 95,115,101,108,101, 99,116, 91, 52, 93, 0,104, 97,110,100,108,101, 95,
-118,101,114,116,101,120, 95,115,105,122,101, 0,109, 97,114,107,101,114, 95,111,117,116,108,105,110,101, 91, 52, 93, 0,109, 97,
-114,107,101,114, 91, 52, 93, 0, 97, 99,116, 95,109, 97,114,107,101,114, 91, 52, 93, 0,115,101,108, 95,109, 97,114,107,101,114,
- 91, 52, 93, 0,100,105,115, 95,109, 97,114,107,101,114, 91, 52, 93, 0,108,111, 99,107, 95,109, 97,114,107,101,114, 91, 52, 93,
- 0, 98,117,110,100,108,101, 95,115,111,108,105,100, 91, 52, 93, 0,112, 97,116,104, 95, 98,101,102,111,114,101, 91, 52, 93, 0,
-112, 97,116,104, 95, 97,102,116,101,114, 91, 52, 93, 0, 99, 97,109,101,114, 97, 95,112, 97,116,104, 91, 52, 93, 0,104,112, 97,
-100, 91, 55, 93, 0,112,114,101,118,105,101,119, 95, 98, 97, 99,107, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,
-116, 99,104, 95,102, 97, 99,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,101,100,103,101, 91,
- 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,105,116, 99,104, 95,118,101,114,116, 91, 52, 93, 0,112,114,101,118,105,101,
-119, 95,115,116,105,116, 99,104, 95,115,116,105,116, 99,104, 97, 98,108,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,
-116,105,116, 99,104, 95,117,110,115,116,105,116, 99,104, 97, 98,108,101, 91, 52, 93, 0,112,114,101,118,105,101,119, 95,115,116,
-105,116, 99,104, 95, 97, 99,116,105,118,101, 91, 52, 93, 0,109, 97,116, 99,104, 91, 52, 93, 0,115,101,108,101, 99,116,101,100,
- 95,104,105,103,104,108,105,103,104,116, 91, 52, 93, 0,115,107,105,110, 95,114,111,111,116, 91, 52, 93, 0,115,111,108,105,100,
- 91, 52, 93, 0,116,117,105, 0,116, 98,117,116,115, 0,116,118, 51,100, 0,116,102,105,108,101, 0,116,105,112,111, 0,116,105,
-110,102,111, 0,116, 97, 99,116, 0,116,110,108, 97, 0,116,115,101,113, 0,116,105,109, 97, 0,116,101,120,116, 0,116,111,111,
-112,115, 0,116,116,105,109,101, 0,116,110,111,100,101, 0,116,108,111,103,105, 99, 0,116,117,115,101,114,112,114,101,102, 0,
-116, 99,111,110,115,111,108,101, 0,116, 99,108,105,112, 0,116, 97,114,109, 91, 50, 48, 93, 0, 97, 99,116,105,118,101, 95,116,
-104,101,109,101, 95, 97,114,101, 97, 0,109,111,100,117,108,101, 91, 54, 52, 93, 0,115,112,101, 99, 91, 52, 93, 0,100,117,112,
-102,108, 97,103, 0,115, 97,118,101,116,105,109,101, 0,116,101,109,112,100,105,114, 91, 55, 54, 56, 93, 0,102,111,110,116,100,
-105,114, 91, 55, 54, 56, 93, 0,114,101,110,100,101,114,100,105,114, 91, 49, 48, 50, 52, 93, 0,116,101,120,116,117,100,105,114,
- 91, 55, 54, 56, 93, 0,112,121,116,104,111,110,100,105,114, 91, 55, 54, 56, 93, 0,115,111,117,110,100,100,105,114, 91, 55, 54,
- 56, 93, 0,105,109, 97,103,101, 95,101,100,105,116,111,114, 91, 49, 48, 50, 52, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,
-114, 91, 49, 48, 50, 52, 93, 0, 97,110,105,109, 95,112,108, 97,121,101,114, 95,112,114,101,115,101,116, 0,118, 50,100, 95,109,
-105,110, 95,103,114,105,100,115,105,122,101, 0,116,105,109,101, 99,111,100,101, 95,115,116,121,108,101, 0,118,101,114,115,105,
-111,110,115, 0,100, 98,108, 95, 99,108,105, 99,107, 95,116,105,109,101, 0,103, 97,109,101,102,108, 97,103,115, 0,119,104,101,
-101,108,108,105,110,101,115, 99,114,111,108,108, 0,117,105,102,108, 97,103, 0,108, 97,110,103,117, 97,103,101, 0,117,115,101,
-114,112,114,101,102, 0,118,105,101,119,122,111,111,109, 0,109,105,120, 98,117,102,115,105,122,101, 0, 97,117,100,105,111,100,
-101,118,105, 99,101, 0, 97,117,100,105,111,114, 97,116,101, 0, 97,117,100,105,111,102,111,114,109, 97,116, 0, 97,117,100,105,
-111, 99,104, 97,110,110,101,108,115, 0,100,112,105, 0,101,110, 99,111,100,105,110,103, 0,116,114, 97,110,115,111,112,116,115,
- 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 49, 0,109,101,110,117,116,104,114,101,115,104,111,108,100, 50, 0,116,
-104,101,109,101,115, 0,117,105,102,111,110,116,115, 0,117,105,115,116,121,108,101,115, 0,107,101,121,109, 97,112,115, 0,117,
-115,101,114, 95,107,101,121,109, 97,112,115, 0, 97,100,100,111,110,115, 0,107,101,121, 99,111,110,102,105,103,115,116,114, 91,
- 54, 52, 93, 0,117,110,100,111,115,116,101,112,115, 0,117,110,100,111,109,101,109,111,114,121, 0,103,112, 95,109, 97,110,104,
- 97,116,116,101,110,100,105,115,116, 0,103,112, 95,101,117, 99,108,105,100,101, 97,110,100,105,115,116, 0,103,112, 95,101,114,
- 97,115,101,114, 0,103,112, 95,115,101,116,116,105,110,103,115, 0,116, 98, 95,108,101,102,116,109,111,117,115,101, 0,116, 98,
- 95,114,105,103,104,116,109,111,117,115,101, 0,108,105,103,104,116, 91, 51, 93, 0,116,119, 95,104,111,116,115,112,111,116, 0,
-116,119, 95,102,108, 97,103, 0,116,119, 95,104, 97,110,100,108,101,115,105,122,101, 0,116,119, 95,115,105,122,101, 0,116,101,
-120,116,105,109,101,111,117,116, 0,116,101,120, 99,111,108,108,101, 99,116,114, 97,116,101, 0,119,109,100,114, 97,119,109,101,
-116,104,111,100, 0,100,114, 97,103,116,104,114,101,115,104,111,108,100, 0,109,101,109, 99, 97, 99,104,101,108,105,109,105,116,
- 0,112,114,101,102,101,116, 99,104,102,114, 97,109,101,115, 0,102,114, 97,109,101,115,101,114,118,101,114,112,111,114,116, 0,
-112, 97,100, 95,114,111,116, 95, 97,110,103,108,101, 0,111, 98, 99,101,110,116,101,114, 95,100,105, 97, 0,114,118,105,115,105,
-122,101, 0,114,118,105, 98,114,105,103,104,116, 0,114,101, 99,101,110,116, 95,102,105,108,101,115, 0,115,109,111,111,116,104,
- 95,118,105,101,119,116,120, 0,103,108,114,101,115,108,105,109,105,116, 0, 99,117,114,115,115,105,122,101, 0, 99,111,108,111,
-114, 95,112,105, 99,107,101,114, 95,116,121,112,101, 0,105,112,111, 95,110,101,119, 0,107,101,121,104, 97,110,100,108,101,115,
- 95,110,101,119, 0,115, 99,114, 99, 97,115,116,102,112,115, 0,115, 99,114, 99, 97,115,116,119, 97,105,116, 0,119,105,100,103,
-101,116, 95,117,110,105,116, 0, 97,110,105,115,111,116,114,111,112,105, 99, 95,102,105,108,116,101,114, 0,117,115,101, 95, 49,
- 54, 98,105,116, 95,116,101,120,116,117,114,101,115, 0,112, 97,100, 56, 0,110,100,111,102, 95,115,101,110,115,105,116,105,118,
-105,116,121, 0,110,100,111,102, 95,102,108, 97,103, 0,103,108, 97,108,112,104, 97, 99,108,105,112, 0,116,101,120,116, 95,114,
-101,110,100,101,114, 0,112, 97,100, 57, 0, 99,111, 98, 97, 95,119,101,105,103,104,116, 0,115, 99,117,108,112,116, 95,112, 97,
-105,110,116, 95,111,118,101,114,108, 97,121, 95, 99,111,108, 91, 51, 93, 0,116,119,101, 97,107, 95,116,104,114,101,115,104,111,
-108,100, 0, 97,117,116,104,111,114, 91, 56, 48, 93, 0, 99,111,109,112,117,116,101, 95,100,101,118,105, 99,101, 95,116,121,112,
-101, 0, 99,111,109,112,117,116,101, 95,100,101,118,105, 99,101, 95,105,100, 0,102, 99,117, 95,105,110, 97, 99,116,105,118,101,
- 95, 97,108,112,104, 97, 0,118,101,114,116, 98, 97,115,101, 0,101,100,103,101, 98, 97,115,101, 0, 97,114,101, 97, 98, 97,115,
-101, 0, 42,110,101,119,115, 99,101,110,101, 0,114,101,100,114, 97,119,115, 95,102,108, 97,103, 0,102,117,108,108, 0,116,101,
-109,112, 0,119,105,110,105,100, 0,100,111, 95,100,114, 97,119, 0,100,111, 95,114,101,102,114,101,115,104, 0,100,111, 95,100,
-114, 97,119, 95,103,101,115,116,117,114,101, 0,100,111, 95,100,114, 97,119, 95,112, 97,105,110,116, 99,117,114,115,111,114, 0,
-100,111, 95,100,114, 97,119, 95,100,114, 97,103, 0,115,119, 97,112, 0,109, 97,105,110,119,105,110, 0,115,117, 98,119,105,110,
- 97, 99,116,105,118,101, 0, 42, 97,110,105,109,116,105,109,101,114, 0, 42, 99,111,110,116,101,120,116, 0,104, 97,110,100,108,
-101,114, 91, 56, 93, 0, 42,110,101,119,118, 0,118,101, 99, 0, 42,118, 49, 0, 42,118, 50, 0, 42,116,121,112,101, 0,112, 97,
-110,101,108,110, 97,109,101, 91, 54, 52, 93, 0,116, 97, 98,110, 97,109,101, 91, 54, 52, 93, 0,100,114, 97,119,110, 97,109,101,
- 91, 54, 52, 93, 0,111,102,115,120, 0,111,102,115,121, 0,115,105,122,101,120, 0,115,105,122,101,121, 0,108, 97, 98,101,108,
-111,102,115, 0,114,117,110,116,105,109,101, 95,102,108, 97,103, 0, 99,111,110,116,114,111,108, 0,115,110, 97,112, 0,115,111,
-114,116,111,114,100,101,114, 0, 42,112, 97,110,101,108,116, 97, 98, 0, 42, 97, 99,116,105,118,101,100, 97,116, 97, 0,108,105,
-115,116, 95,115, 99,114,111,108,108, 0,108,105,115,116, 95,115,105,122,101, 0,108,105,115,116, 95,108, 97,115,116, 95,108,101,
-110, 0,108,105,115,116, 95,103,114,105,112, 95,115,105,122,101, 0,108,105,115,116, 95,115,101, 97,114, 99,104, 91, 54, 52, 93,
- 0, 42,118, 51, 0, 42,118, 52, 0, 42,102,117,108,108, 0, 98,117,116,115,112, 97, 99,101,116,121,112,101, 0,104,101, 97,100,
-101,114,116,121,112,101, 0,115,112, 97, 99,101,100, 97,116, 97, 0,104, 97,110,100,108,101,114,115, 0, 97, 99,116,105,111,110,
-122,111,110,101,115, 0,119,105,110,114, 99,116, 0,100,114, 97,119,114, 99,116, 0,115,119,105,110,105,100, 0,114,101,103,105,
-111,110,116,121,112,101, 0, 97,108,105,103,110,109,101,110,116, 0,100,111, 95,100,114, 97,119, 95,111,118,101,114,108, 97,121,
- 0,117,105, 98,108,111, 99,107,115, 0,112, 97,110,101,108,115, 0, 42,104,101, 97,100,101,114,115,116,114, 0, 42,114,101,103,
-105,111,110,100, 97,116, 97, 0,115,117, 98,118,115,116,114, 91, 52, 93, 0,115,117, 98,118,101,114,115,105,111,110, 0,112, 97,
-100,115, 0,109,105,110,118,101,114,115,105,111,110, 0,109,105,110,115,117, 98,118,101,114,115,105,111,110, 0,119,105,110,112,
-111,115, 0, 42, 99,117,114,115, 99,114,101,101,110, 0, 42, 99,117,114,115, 99,101,110,101, 0,102,105,108,101,102,108, 97,103,
-115, 0,103,108,111, 98, 97,108,102, 0,114,101,118,105,115,105,111,110, 0,110, 97,109,101, 91, 50, 53, 54, 93, 0,111,114,105,
-103, 95,119,105,100,116,104, 0,111,114,105,103, 95,104,101,105,103,104,116, 0, 98,111,116,116,111,109, 0,114,105,103,104,116,
- 0,120,111,102,115, 0,121,111,102,115, 0,108,105,102,116, 91, 51, 93, 0,103, 97,109,109, 97, 91, 51, 93, 0,103, 97,105,110,
- 91, 51, 93, 0,100,105,114, 91, 55, 54, 56, 93, 0,116, 99, 0, 98,117,105,108,100, 95,115,105,122,101, 95,102,108, 97,103,115,
- 0, 98,117,105,108,100, 95,116, 99, 95,102,108, 97,103,115, 0,100,111,110,101, 0,115,116, 97,114,116,115,116,105,108,108, 0,
-101,110,100,115,116,105,108,108, 0, 42,115,116,114,105,112,100, 97,116, 97, 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,
-102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97,108, 97,110, 99,101, 0, 42,116,109,112, 0,115,116, 97,114,116,111,102,
-115, 0,101,110,100,111,102,115, 0,109, 97, 99,104,105,110,101, 0,115,116, 97,114,116,100,105,115,112, 0,101,110,100,100,105,
-115,112, 0,115, 97,116, 0,109,117,108, 0,104, 97,110,100,115,105,122,101, 0, 97,110,105,109, 95,112,114,101,115,101,101,107,
- 0,115,116,114,101, 97,109,105,110,100,101,120, 0,109,117,108,116,105, 99, 97,109, 95,115,111,117,114, 99,101, 0, 99,108,105,
-112, 95,102,108, 97,103, 0, 42,115,116,114,105,112, 0, 42,115, 99,101,110,101, 95, 99, 97,109,101,114, 97, 0,101,102,102,101,
- 99,116, 95,102, 97,100,101,114, 0,115,112,101,101,100, 95,102, 97,100,101,114, 0, 42,115,101,113, 49, 0, 42,115,101,113, 50,
- 0, 42,115,101,113, 51, 0,115,101,113, 98, 97,115,101, 0, 42,115,111,117,110,100, 0, 42,115, 99,101,110,101, 95,115,111,117,
-110,100, 0,112,105,116, 99,104, 0,112, 97,110, 0,115,116,114,111, 98,101, 0, 42,101,102,102,101, 99,116,100, 97,116, 97, 0,
- 97,110,105,109, 95,115,116, 97,114,116,111,102,115, 0, 97,110,105,109, 95,101,110,100,111,102,115, 0, 98,108,101,110,100, 95,
-109,111,100,101, 0, 98,108,101,110,100, 95,111,112, 97, 99,105,116,121, 0, 42,111,108,100, 98, 97,115,101,112, 0, 42,112, 97,
-114,115,101,113, 0, 42,115,101,113, 98, 97,115,101,112, 0,109,101,116, 97,115,116, 97, 99,107, 0, 42, 97, 99,116, 95,115,101,
-113, 0, 97, 99,116, 95,105,109, 97,103,101,100,105,114, 91, 49, 48, 50, 52, 93, 0, 97, 99,116, 95,115,111,117,110,100,100,105,
-114, 91, 49, 48, 50, 52, 93, 0,111,118,101,114, 95,111,102,115, 0,111,118,101,114, 95, 99,102,114, 97, 0,111,118,101,114, 95,
-102,108, 97,103, 0,111,118,101,114, 95, 98,111,114,100,101,114, 0,101,100,103,101, 87,105,100,116,104, 0,102,111,114,119, 97,
-114,100, 0,119,105,112,101,116,121,112,101, 0,102, 77,105,110,105, 0,102, 67,108, 97,109,112, 0,102, 66,111,111,115,116, 0,
-100, 68,105,115,116, 0,100, 81,117, 97,108,105,116,121, 0, 98, 78,111, 67,111,109,112, 0, 83, 99, 97,108,101,120, 73,110,105,
- 0, 83, 99, 97,108,101,121, 73,110,105, 0,120, 73,110,105, 0,121, 73,110,105, 0,114,111,116, 73,110,105, 0,105,110,116,101,
-114,112,111,108, 97,116,105,111,110, 0,117,110,105,102,111,114,109, 95,115, 99, 97,108,101, 0, 42,102,114, 97,109,101, 77, 97,
-112, 0,103,108,111, 98, 97,108, 83,112,101,101,100, 0,108, 97,115,116, 86, 97,108,105,100, 70,114, 97,109,101, 0, 98,117,116,
-116,121,112,101, 0,117,115,101,114,106,105,116, 0,115,116, 97, 0,116,111,116,112, 97,114,116, 0,110,111,114,109,102, 97, 99,
- 0,111, 98,102, 97, 99, 0,114, 97,110,100,102, 97, 99, 0,116,101,120,102, 97, 99, 0,114, 97,110,100,108,105,102,101, 0,102,
-111,114, 99,101, 91, 51, 93, 0,118,101, 99,116,115,105,122,101, 0,109, 97,120,108,101,110, 0,100,101,102,118,101, 99, 91, 51,
- 93, 0,109,117,108,116, 91, 52, 93, 0,108,105,102,101, 91, 52, 93, 0, 99,104,105,108,100, 91, 52, 93, 0,109, 97,116, 91, 52,
- 93, 0,116,101,120,109, 97,112, 0, 99,117,114,109,117,108,116, 0,115,116, 97,116,105, 99,115,116,101,112, 0,111,109, 97,116,
- 0,116,105,109,101,116,101,120, 0,115,112,101,101,100,116,101,120, 0,102,108, 97,103, 50,110,101,103, 0,118,101,114,116,103,
-114,111,117,112, 95,118, 0,118,103,114,111,117,112,110, 97,109,101, 91, 54, 52, 93, 0,118,103,114,111,117,112,110, 97,109,101,
- 95,118, 91, 54, 52, 93, 0, 42,107,101,121,115, 0,109,105,110,102, 97, 99, 0,110,114, 0,117,115,101,100, 0,117,115,101,100,
-101,108,101,109, 0, 42,112,111,105,110, 0,114,101,115,101,116,100,105,115,116, 0,108, 97,115,116,118, 97,108, 0, 42,109, 97,
- 0,107,101,121, 0,113,117, 97,108, 0,113,117, 97,108, 50, 0,116, 97,114,103,101,116, 78, 97,109,101, 91, 54, 52, 93, 0,116,
-111,103,103,108,101, 78, 97,109,101, 91, 54, 52, 93, 0,118, 97,108,117,101, 91, 54, 52, 93, 0,109, 97,120,118, 97,108,117,101,
- 91, 54, 52, 93, 0,100,101,108, 97,121, 0,100,117,114, 97,116,105,111,110, 0,109, 97,116,101,114,105, 97,108, 78, 97,109,101,
- 91, 54, 52, 93, 0,100, 97,109,112,116,105,109,101,114, 0,112,114,111,112,110, 97,109,101, 91, 54, 52, 93, 0,109, 97,116,110,
- 97,109,101, 91, 54, 52, 93, 0, 97,120,105,115,102,108, 97,103, 0,112,111,115,101, 99,104, 97,110,110,101,108, 91, 54, 52, 93,
- 0, 99,111,110,115,116,114, 97,105,110,116, 91, 54, 52, 93, 0, 42,102,114,111,109, 79, 98,106,101, 99,116, 0,115,117, 98,106,
-101, 99,116, 91, 54, 52, 93, 0, 98,111,100,121, 91, 54, 52, 93, 0,111,116,121,112,101, 0,112,117,108,115,101, 0,102,114,101,
-113, 0,116,111,116,108,105,110,107,115, 0, 42, 42,108,105,110,107,115, 0,116, 97,112, 0,106,111,121,105,110,100,101,120, 0,
- 97,120,105,115, 95,115,105,110,103,108,101, 0, 97,120,105,115,102, 0, 98,117,116,116,111,110, 0,104, 97,116, 0,104, 97,116,
-102, 0,112,114,101, 99,105,115,105,111,110, 0,115,116,114, 91, 49, 50, 56, 93, 0, 42,109,121,110,101,119, 0,105,110,112,117,
-116,115, 0,116,111,116,115,108,105,110,107,115, 0, 42, 42,115,108,105,110,107,115, 0,118, 97,108,111, 0,115,116, 97,116,101,
- 95,109, 97,115,107, 0, 42, 97, 99,116, 0,102,114, 97,109,101, 80,114,111,112, 91, 54, 52, 93, 0, 98,108,101,110,100,105,110,
- 0,112,114,105,111,114,105,116,121, 0,101,110,100, 95,114,101,115,101,116, 0,115,116,114,105,100,101, 97,120,105,115, 0,115,
-116,114,105,100,101,108,101,110,103,116,104, 0,108, 97,121,101,114, 95,119,101,105,103,104,116, 0,109,105,110, 95,103, 97,105,
-110, 0,109, 97,120, 95,103, 97,105,110, 0,114,101,102,101,114,101,110, 99,101, 95,100,105,115,116, 97,110, 99,101, 0,109, 97,
-120, 95,100,105,115,116, 97,110, 99,101, 0,114,111,108,108,111,102,102, 95,102, 97, 99,116,111,114, 0, 99,111,110,101, 95,105,
-110,110,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101, 95,111,117,116,101,114, 95, 97,110,103,108,101, 0, 99,111,110,101,
- 95,111,117,116,101,114, 95,103, 97,105,110, 0,115,110,100,110,114, 0,115,111,117,110,100, 51, 68, 0,112, 97,100, 54, 91, 49,
- 93, 0, 42,109,101, 0,108,105,110, 86,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103, 86,101,108,111, 99,105,116,121,
- 91, 51, 93, 0,108,111, 99, 97,108,102,108, 97,103, 0,100,121,110, 95,111,112,101,114, 97,116,105,111,110, 0,102,111,114, 99,
-101,108,111, 99, 91, 51, 93, 0,102,111,114, 99,101,114,111,116, 91, 51, 93, 0,112, 97,100, 49, 91, 51, 93, 0,108,105,110,101,
- 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93, 0, 97,110,103,117,108, 97,114,118,101,108,111, 99,105,116,121, 91, 51, 93,
- 0, 42,114,101,102,101,114,101,110, 99,101, 0,109,105,110, 0,109, 97,120, 0,114,111,116,100, 97,109,112, 0,109,105,110,108,
-111, 99, 91, 51, 93, 0,109, 97,120,108,111, 99, 91, 51, 93, 0,109,105,110,114,111,116, 91, 51, 93, 0,109, 97,120,114,111,116,
- 91, 51, 93, 0,109, 97,116,112,114,111,112, 91, 54, 52, 93, 0, 98,117,116,115,116, 97, 0, 98,117,116,101,110,100, 0,100,105,
-115,116,114,105, 98,117,116,105,111,110, 0,105,110,116, 95, 97,114,103, 95, 49, 0,105,110,116, 95, 97,114,103, 95, 50, 0,102,
-108,111, 97,116, 95, 97,114,103, 95, 49, 0,102,108,111, 97,116, 95, 97,114,103, 95, 50, 0,116,111, 80,114,111,112, 78, 97,109,
-101, 91, 54, 52, 93, 0, 42,116,111, 79, 98,106,101, 99,116, 0, 98,111,100,121, 84,121,112,101, 0,102,105,108,101,110, 97,109,
-101, 91, 54, 52, 93, 0,108,111, 97,100, 97,110,105,110, 97,109,101, 91, 54, 52, 93, 0,105,110,116, 95, 97,114,103, 0,102,108,
-111, 97,116, 95, 97,114,103, 0,105,110,102,108,117,101,110, 99,101, 0, 42,115,117, 98,116, 97,114,103,101,116, 0,102, 97, 99,
-105,110,103, 97,120,105,115, 0,118,101,108,111, 99,105,116,121, 0, 97, 99, 99,101,108,101,114, 97,116,105,111,110, 0,116,117,
-114,110,115,112,101,101,100, 0,117,112,100, 97,116,101, 84,105,109,101, 0, 42,110, 97,118,109,101,115,104, 0,103,111, 0, 42,
-104, 97,110,100,108,101, 0, 42,110,101,119,112, 97, 99,107,101,100,102,105,108,101, 0, 97,116,116,101,110,117, 97,116,105,111,
-110, 0,100,105,115,116, 97,110, 99,101, 0, 42, 99, 97, 99,104,101, 0, 42,119, 97,118,101,102,111,114,109, 0, 42,112,108, 97,
-121, 98, 97, 99,107, 95,104, 97,110,100,108,101, 0, 42,108, 97,109,112,114,101,110, 0,103,111, 98,106,101, 99,116, 0,100,117,
-112,108,105, 95,111,102,115, 91, 51, 93, 0, 42,112,114,111,112, 0, 99,104,105,108,100, 98, 97,115,101, 0,114,111,108,108, 0,
-104,101, 97,100, 91, 51, 93, 0,116, 97,105,108, 91, 51, 93, 0, 98,111,110,101, 95,109, 97,116, 91, 51, 93, 91, 51, 93, 0, 97,
-114,109, 95,104,101, 97,100, 91, 51, 93, 0, 97,114,109, 95,116, 97,105,108, 91, 51, 93, 0, 97,114,109, 95,109, 97,116, 91, 52,
- 93, 91, 52, 93, 0, 97,114,109, 95,114,111,108,108, 0,120,119,105,100,116,104, 0,122,119,105,100,116,104, 0,101, 97,115,101,
- 49, 0,101, 97,115,101, 50, 0,114, 97,100, 95,104,101, 97,100, 0,114, 97,100, 95,116, 97,105,108, 0,112, 97,100, 91, 49, 93,
- 0, 98,111,110,101, 98, 97,115,101, 0, 99,104, 97,105,110, 98, 97,115,101, 0, 42,101,100, 98,111, 0, 42, 97, 99,116, 95, 98,
-111,110,101, 0, 42, 97, 99,116, 95,101,100, 98,111,110,101, 0, 42,115,107,101,116, 99,104, 0,103,101,118,101,114,116,100,101,
-102,111,114,109,101,114, 0,108, 97,121,101,114, 95,117,115,101,100, 0,108, 97,121,101,114, 95,112,114,111,116,101, 99,116,101,
-100, 0,103,104,111,115,116,101,112, 0,103,104,111,115,116,115,105,122,101, 0,103,104,111,115,116,116,121,112,101, 0,112, 97,
-116,104,115,105,122,101, 0,103,104,111,115,116,115,102, 0,103,104,111,115,116,101,102, 0,112, 97,116,104,115,102, 0,112, 97,
-116,104,101,102, 0,112, 97,116,104, 98, 99, 0,112, 97,116,104, 97, 99, 0, 42,112,111,105,110,116,115, 0,115,116, 97,114,116,
- 95,102,114, 97,109,101, 0,101,110,100, 95,102,114, 97,109,101, 0,103,104,111,115,116, 95,115,102, 0,103,104,111,115,116, 95,
-101,102, 0,103,104,111,115,116, 95, 98, 99, 0,103,104,111,115,116, 95, 97, 99, 0,103,104,111,115,116, 95,116,121,112,101, 0,
-103,104,111,115,116, 95,115,116,101,112, 0,103,104,111,115,116, 95,102,108, 97,103, 0,112, 97,116,104, 95,116,121,112,101, 0,
-112, 97,116,104, 95,115,116,101,112, 0,112, 97,116,104, 95,118,105,101,119,102,108, 97,103, 0,112, 97,116,104, 95, 98, 97,107,
-101,102,108, 97,103, 0,112, 97,116,104, 95,115,102, 0,112, 97,116,104, 95,101,102, 0,112, 97,116,104, 95, 98, 99, 0,112, 97,
-116,104, 95, 97, 99, 0,105,107,102,108, 97,103, 0, 97,103,114,112, 95,105,110,100,101,120, 0, 99,111,110,115,116,102,108, 97,
-103, 0,115,101,108,101, 99,116,102,108, 97,103, 0,112, 97,100, 48, 91, 54, 93, 0, 42, 98,111,110,101, 0, 42, 99,104,105,108,
-100, 0,105,107,116,114,101,101, 0,115,105,107,116,114,101,101, 0, 42, 99,117,115,116,111,109, 0, 42, 99,117,115,116,111,109,
- 95,116,120, 0,101,117,108, 91, 51, 93, 0, 99,104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109,
- 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91,
- 51, 93, 0,108,105,109,105,116,109,105,110, 91, 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,
-110,101,115,115, 91, 51, 93, 0,105,107,115,116,114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107,
-108,105,110,119,101,105,103,104,116, 0, 42,116,101,109,112, 0, 99,104, 97,110, 98, 97,115,101, 0, 42, 99,104, 97,110,104, 97,
-115,104, 0,112,114,111,120,121, 95,108, 97,121,101,114, 0,115,116,114,105,100,101, 95,111,102,102,115,101,116, 91, 51, 93, 0,
- 99,121, 99,108,105, 99, 95,111,102,102,115,101,116, 91, 51, 93, 0, 97,103,114,111,117,112,115, 0, 97, 99,116,105,118,101, 95,
-103,114,111,117,112, 0,105,107,115,111,108,118,101,114, 0, 42,105,107,100, 97,116, 97, 0, 42,105,107,112, 97,114, 97,109, 0,
-112,114,111,120,121, 95, 97, 99,116, 95, 98,111,110,101, 91, 54, 52, 93, 0,110,117,109,105,116,101,114, 0,110,117,109,115,116,
-101,112, 0,109,105,110,115,116,101,112, 0,109, 97,120,115,116,101,112, 0,115,111,108,118,101,114, 0,102,101,101,100, 98, 97,
- 99,107, 0,109, 97,120,118,101,108, 0,100, 97,109,112,109, 97,120, 0,100, 97,109,112,101,112,115, 0, 99,104, 97,110,110,101,
-108,115, 0, 99,117,115,116,111,109, 67,111,108, 0, 99,115, 0, 99,117,114,118,101,115, 0,103,114,111,117,112,115, 0, 97, 99,
-116,105,118,101, 95,109, 97,114,107,101,114, 0,105,100,114,111,111,116, 0, 42,115,111,117,114, 99,101, 0, 42,102,105,108,116,
-101,114, 95,103,114,112, 0,115,101, 97,114, 99,104,115,116,114, 91, 54, 52, 93, 0,102,105,108,116,101,114,102,108, 97,103, 0,
-114,101,110, 97,109,101, 73,110,100,101,120, 0, 97,100,115, 0,116,105,109,101,115,108,105,100,101, 0, 42,103,114,112, 0,110,
- 97,109,101, 91, 51, 48, 93, 0,111,119,110,115,112, 97, 99,101, 0,116, 97,114,115,112, 97, 99,101, 0,101,110,102,111,114, 99,
-101, 0,104,101, 97,100,116, 97,105,108, 0,108,105,110, 95,101,114,114,111,114, 0,114,111,116, 95,101,114,114,111,114, 0, 42,
-116, 97,114, 0,109, 97,116,114,105,120, 91, 52, 93, 91, 52, 93, 0,115,112, 97, 99,101, 0,114,111,116, 79,114,100,101,114, 0,
-116, 97,114,110,117,109, 0,116, 97,114,103,101,116,115, 0,105,116,101,114, 97,116,105,111,110,115, 0,114,111,111,116, 98,111,
-110,101, 0,109, 97,120, 95,114,111,111,116, 98,111,110,101, 0, 42,112,111,108,101,116, 97,114, 0,112,111,108,101,115,117, 98,
-116, 97,114,103,101,116, 91, 54, 52, 93, 0,112,111,108,101, 97,110,103,108,101, 0,111,114,105,101,110,116,119,101,105,103,104,
-116, 0,103,114, 97, 98,116, 97,114,103,101,116, 91, 51, 93, 0,110,117,109,112,111,105,110,116,115, 0, 99,104, 97,105,110,108,
-101,110, 0,120,122, 83, 99, 97,108,101, 77,111,100,101, 0,114,101,115,101,114,118,101,100, 49, 0,114,101,115,101,114,118,101,
-100, 50, 0,109,105,110,109, 97,120,102,108, 97,103, 0,115,116,117, 99,107, 0, 99, 97, 99,104,101, 91, 51, 93, 0,108,111, 99,
-107,102,108, 97,103, 0,102,111,108,108,111,119,102,108, 97,103, 0,118,111,108,109,111,100,101, 0,112,108, 97,110,101, 0,111,
-114,103,108,101,110,103,116,104, 0, 98,117,108,103,101, 0,112,105,118, 88, 0,112,105,118, 89, 0,112,105,118, 90, 0, 97,120,
- 88, 0, 97,120, 89, 0, 97,120, 90, 0,109,105,110, 76,105,109,105,116, 91, 54, 93, 0,109, 97,120, 76,105,109,105,116, 91, 54,
- 93, 0,101,120,116,114, 97, 70,122, 0,105,110,118,109, 97,116, 91, 52, 93, 91, 52, 93, 0,102,114,111,109, 0,116,111, 0,109,
- 97,112, 91, 51, 93, 0,101,120,112,111, 0,102,114,111,109, 95,109,105,110, 91, 51, 93, 0,102,114,111,109, 95,109, 97,120, 91,
- 51, 93, 0,116,111, 95,109,105,110, 91, 51, 93, 0,116,111, 95,109, 97,120, 91, 51, 93, 0,114,111,116, 65,120,105,115, 0,122,
-109,105,110, 0,122,109, 97,120, 0,112, 97,100, 91, 57, 93, 0,116,114, 97, 99,107, 91, 54, 52, 93, 0,111, 98,106,101, 99,116,
- 91, 54, 52, 93, 0, 42,100,101,112,116,104, 95,111, 98, 0, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,110,111, 95,114,111,
-116, 95, 97,120,105,115, 0,115,116,114,105,100,101, 95, 97,120,105,115, 0, 99,117,114,109,111,100, 0, 97, 99,116,115,116, 97,
-114,116, 0, 97, 99,116,101,110,100, 0, 97, 99,116,111,102,102,115, 0,115,116,114,105,100,101,108,101,110, 0, 98,108,101,110,
-100,111,117,116, 0,115,116,114,105,100,101, 99,104, 97,110,110,101,108, 91, 51, 50, 93, 0,111,102,102,115, 95, 98,111,110,101,
- 91, 51, 50, 93, 0,104, 97,115,105,110,112,117,116, 0,104, 97,115,111,117,116,112,117,116, 0,100, 97,116, 97,116,121,112,101,
- 0,115,111, 99,107,101,116,116,121,112,101, 0,105,115, 95, 99,111,112,121, 0,101,120,116,101,114,110, 97,108, 0, 42,110,101,
-119, 95,115,111, 99,107, 0, 42,115,116,111,114, 97,103,101, 0,108,105,109,105,116, 0,108,111, 99,120, 0,108,111, 99,121, 0,
- 42,100,101,102, 97,117,108,116, 95,118, 97,108,117,101, 0,115,116, 97, 99,107, 95,105,110,100,101,120, 0,115,116, 97, 99,107,
- 95,116,121,112,101, 0,114,101,115,105,122,101,109,111,100,101, 0,111,119,110, 95,105,110,100,101,120, 0,116,111, 95,105,110,
-100,101,120, 0, 42,103,114,111,117,112,115,111, 99,107, 0, 42,108,105,110,107, 0,110,115, 0, 42,114,101, 99,116, 0,120,115,
-105,122,101, 0,121,115,105,122,101, 0, 42,110,101,119, 95,110,111,100,101, 0,108, 97,115,116,121, 0, 99,111,108,111,114, 91,
- 51, 93, 0,111,117,116,112,117,116,115, 0,109,105,110,105,119,105,100,116,104, 0,111,102,102,115,101,116,120, 0,111,102,102,
-115,101,116,121, 0,117,112,100, 97,116,101, 0,108, 97, 98,101,108, 91, 54, 52, 93, 0, 99,117,115,116,111,109, 49, 0, 99,117,
-115,116,111,109, 50, 0, 99,117,115,116,111,109, 51, 0, 99,117,115,116,111,109, 52, 0,110,101,101,100, 95,101,120,101, 99, 0,
-101,120,101, 99, 0, 42,116,104,114,101, 97,100,100, 97,116, 97, 0,116,111,116,114, 0, 98,117,116,114, 0,112,114,118,114, 0,
- 42, 98,108,111, 99,107, 0, 42,116,121,112,101,105,110,102,111, 0, 42,102,114,111,109,110,111,100,101, 0, 42,116,111,110,111,
-100,101, 0, 42,102,114,111,109,115,111, 99,107, 0, 42,116,111,115,111, 99,107, 0,110,111,100,101,115, 0,108,105,110,107,115,
- 0,105,110,105,116, 0, 99,117,114, 95,105,110,100,101,120, 0,110,111,100,101,116,121,112,101, 0,101,100,105,116, 95,113,117,
- 97,108,105,116,121, 0,114,101,110,100,101,114, 95,113,117, 97,108,105,116,121, 0, 99,104,117,110,107,115,105,122,101, 0, 42,
-101,120,101, 99,100, 97,116, 97, 0, 40, 42,112,114,111,103,114,101,115,115, 41, 40, 41, 0, 40, 42,115,116, 97,116,115, 95,100,
-114, 97,119, 41, 40, 41, 0, 40, 42,116,101,115,116, 95, 98,114,101, 97,107, 41, 40, 41, 0, 42,116, 98,104, 0, 42,112,114,104,
- 0, 42,115,100,104, 0,118, 97,108,117,101, 91, 51, 93, 0,118, 97,108,117,101, 91, 52, 93, 0,108, 97, 98,101,108, 95,115,105,
-122,101, 0, 99,121, 99,108,105, 99, 0,109,111,118,105,101, 0,103, 97,109,109, 97, 0,103, 97,105,110, 0,108,105,102,116, 0,
-109, 97,115,116,101,114, 0,115,104, 97,100,111,119,115, 0,109,105,100,116,111,110,101,115, 0,104,105,103,104,108,105,103,104,
-116,115, 0,115,116, 97,114,116,109,105,100,116,111,110,101,115, 0,101,110,100,109,105,100,116,111,110,101,115, 0,102,108, 97,
-112,115, 0,114,111,117,110,100,105,110,103, 0, 99, 97,116, 97,100,105,111,112,116,114,105, 99, 0,108,101,110,115,115,104,105,
-102,116, 0,114,111,116, 97,116,105,111,110, 0,112, 97,115,115, 95,105,110,100,101,120, 0,112, 97,115,115, 95,102,108, 97,103,
- 0,109, 97,120,115,112,101,101,100, 0,109,105,110,115,112,101,101,100, 0, 99,117,114,118,101,100, 0,112,101,114, 99,101,110,
-116,120, 0,112,101,114, 99,101,110,116,121, 0, 98,111,107,101,104, 0,105,109, 97,103,101, 95,105,110, 95,119,105,100,116,104,
- 0,105,109, 97,103,101, 95,105,110, 95,104,101,105,103,104,116, 0, 99,101,110,116,101,114, 95,120, 0, 99,101,110,116,101,114,
- 95,121, 0,115,112,105,110, 0,119,114, 97,112, 0,115,105,103,109, 97, 95, 99,111,108,111,114, 0,115,105,103,109, 97, 95,115,
-112, 97, 99,101, 0,104,117,101, 0, 98, 97,115,101, 95,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0,102,111,114,109, 97,116, 0,
- 97, 99,116,105,118,101, 95,105,110,112,117,116, 0,117,115,101, 95,114,101,110,100,101,114, 95,102,111,114,109, 97,116, 0,117,
-115,101, 95,110,111,100,101, 95,102,111,114,109, 97,116, 0,108, 97,121,101,114, 91, 51, 48, 93, 0,116, 49, 0,116, 50, 0,116,
- 51, 0,102,115,116,114,101,110,103,116,104, 0,102, 97,108,112,104, 97, 0,107,101,121, 91, 52, 93, 0, 97,108,103,111,114,105,
-116,104,109, 0, 99,104, 97,110,110,101,108, 0,120, 49, 0,120, 50, 0,121, 49, 0,121, 50, 0,102, 97, 99, 95,120, 49, 0,102,
- 97, 99, 95,120, 50, 0,102, 97, 99, 95,121, 49, 0,102, 97, 99, 95,121, 50, 0, 99,111,108,110, 97,109,101, 91, 54, 52, 93, 0,
- 98,107,116,121,112,101, 0,112, 97,100, 95, 99, 49, 0,103, 97,109, 99,111, 0,110,111, 95,122, 98,117,102, 0,102,115,116,111,
-112, 0,109, 97,120, 98,108,117,114, 0, 98,116,104,114,101,115,104, 0,112, 97,100, 95,102, 49, 0, 42,100,105, 99,116, 0, 42,
-110,111,100,101, 0, 99,111,108,109,111,100, 0,109,105,120, 0,102, 97,100,101, 0, 97,110,103,108,101, 95,111,102,115, 0,109,
- 0, 99, 0,106,105,116, 0,112,114,111,106, 0,102,105,116, 0,115,108,111,112,101, 91, 51, 93, 0,112,111,119,101,114, 91, 51,
- 93, 0,108,105,102,116, 95,108,103,103, 91, 51, 93, 0,103, 97,109,109, 97, 95,105,110,118, 91, 51, 93, 0,108,105,109, 99,104,
- 97,110, 0,117,110,115,112,105,108,108, 0,108,105,109,115, 99, 97,108,101, 0,117,115,112,105,108,108,114, 0,117,115,112,105,
-108,108,103, 0,117,115,112,105,108,108, 98, 0,116,101,120, 95,109, 97,112,112,105,110,103, 0, 99,111,108,111,114, 95,109, 97,
-112,112,105,110,103, 0,115,117,110, 95,100,105,114,101, 99,116,105,111,110, 91, 51, 93, 0,116,117,114, 98,105,100,105,116,121,
- 0, 99,111,108,111,114, 95,115,112, 97, 99,101, 0,112,114,111,106,101, 99,116,105,111,110, 0,103,114, 97,100,105,101,110,116,
- 95,116,121,112,101, 0, 99,111,108,111,114,105,110,103, 0,109,117,115,103,114, 97,118,101, 95,116,121,112,101, 0,119, 97,118,
-101, 95,116,121,112,101, 0,115,104,111,114,116,121, 0,109,105,110,116, 97, 98,108,101, 0,109, 97,120,116, 97, 98,108,101, 0,
-101,120,116, 95,105,110, 91, 50, 93, 0,101,120,116, 95,111,117,116, 91, 50, 93, 0, 42, 99,117,114,118,101, 0, 42,116, 97, 98,
-108,101, 0, 42,112,114,101,109,117,108,116, 97, 98,108,101, 0,112,114,101,115,101,116, 0, 99,104, 97,110,103,101,100, 95,116,
-105,109,101,115,116, 97,109,112, 0, 99,117,114,114, 0, 99,108,105,112,114, 0, 99,109, 91, 52, 93, 0, 98,108, 97, 99,107, 91,
- 51, 93, 0,119,104,105,116,101, 91, 51, 93, 0, 98,119,109,117,108, 91, 51, 93, 0,115, 97,109,112,108,101, 91, 51, 93, 0,120,
- 95,114,101,115,111,108,117,116,105,111,110, 0,100, 97,116, 97, 95,114, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,103, 91, 50,
- 53, 54, 93, 0,100, 97,116, 97, 95, 98, 91, 50, 53, 54, 93, 0,100, 97,116, 97, 95,108,117,109, 97, 91, 50, 53, 54, 93, 0,115,
- 97,109,112,108,101, 95,102,117,108,108, 0,115, 97,109,112,108,101, 95,108,105,110,101,115, 0, 97, 99, 99,117,114, 97, 99,121,
- 0,119, 97,118,101,102,114,109, 95,109,111,100,101, 0,119, 97,118,101,102,114,109, 95, 97,108,112,104, 97, 0,119, 97,118,101,
-102,114,109, 95,121,102, 97, 99, 0,119, 97,118,101,102,114,109, 95,104,101,105,103,104,116, 0,118,101, 99,115, 99,111,112,101,
- 95, 97,108,112,104, 97, 0,118,101, 99,115, 99,111,112,101, 95,104,101,105,103,104,116, 0,109,105,110,109, 97,120, 91, 51, 93,
- 91, 50, 93, 0,104,105,115,116, 0, 42,119, 97,118,101,102,111,114,109, 95, 49, 0, 42,119, 97,118,101,102,111,114,109, 95, 50,
- 0, 42,119, 97,118,101,102,111,114,109, 95, 51, 0, 42,118,101, 99,115, 99,111,112,101, 0,119, 97,118,101,102,111,114,109, 95,
-116,111,116, 0,111,102,102,115,101,116, 91, 50, 93, 0, 99,108,111,110,101, 0,109,116,101,120, 0, 42,116,111,103,103,108,101,
- 95, 98,114,117,115,104, 0, 42,105, 99,111,110, 95,105,109, 98,117,102, 0,105, 99,111,110, 95,102,105,108,101,112, 97,116,104,
- 91, 49, 48, 50, 52, 93, 0,110,111,114,109, 97,108, 95,119,101,105,103,104,116, 0,111, 98, 95,109,111,100,101, 0,106,105,116,
-116,101,114, 0,115,109,111,111,116,104, 95,115,116,114,111,107,101, 95,114, 97,100,105,117,115, 0,115,109,111,111,116,104, 95,
-115,116,114,111,107,101, 95,102, 97, 99,116,111,114, 0,114, 97,116,101, 0,114,103, 98, 91, 51, 93, 0,115, 99,117,108,112,116,
- 95,112,108, 97,110,101, 0,112,108, 97,110,101, 95,111,102,102,115,101,116, 0,115, 99,117,108,112,116, 95,116,111,111,108, 0,
-118,101,114,116,101,120,112, 97,105,110,116, 95,116,111,111,108, 0,105,109, 97,103,101,112, 97,105,110,116, 95,116,111,111,108,
- 0,109, 97,115,107, 95,116,111,111,108, 0, 97,117,116,111,115,109,111,111,116,104, 95,102, 97, 99,116,111,114, 0, 99,114,101,
- 97,115,101, 95,112,105,110, 99,104, 95,102, 97, 99,116,111,114, 0,112,108, 97,110,101, 95,116,114,105,109, 0,116,101,120,116,
-117,114,101, 95,115, 97,109,112,108,101, 95, 98,105, 97,115, 0,116,101,120,116,117,114,101, 95,111,118,101,114,108, 97,121, 95,
- 97,108,112,104, 97, 0, 97,100,100, 95, 99,111,108, 91, 51, 93, 0,115,117, 98, 95, 99,111,108, 91, 51, 93, 0, 97, 99,116,105,
-118,101, 95,114,110,100, 0, 97, 99,116,105,118,101, 95, 99,108,111,110,101, 0, 97, 99,116,105,118,101, 95,109, 97,115,107, 0,
- 42,108, 97,121,101,114,115, 0,116,121,112,101,109, 97,112, 91, 51, 55, 93, 0,116,111,116,108, 97,121,101,114, 0,109, 97,120,
-108, 97,121,101,114, 0,116,111,116,115,105,122,101, 0, 42,112,111,111,108, 0, 42,101,120,116,101,114,110, 97,108, 0,114,111,
-116, 91, 52, 93, 0, 97,118,101, 91, 51, 93, 0, 42,103,114,111,117,110,100, 0,119, 97,110,100,101,114, 91, 51, 93, 0,114,101,
-115,116, 95,108,101,110,103,116,104, 0,112, 97,114,116,105, 99,108,101, 95,105,110,100,101,120, 91, 50, 93, 0,100,101,108,101,
-116,101, 95,102,108, 97,103, 0,110,117,109, 0,112, 97,114,101,110,116, 0,112, 97, 91, 52, 93, 0,119, 91, 52, 93, 0,102,117,
-118, 91, 52, 93, 0,102,111,102,102,115,101,116, 0,112,114,101,118, 95,115,116, 97,116,101, 0, 42,104, 97,105,114, 0, 42, 98,
-111,105,100, 0,100,105,101,116,105,109,101, 0,110,117,109, 95,100,109, 99, 97, 99,104,101, 0,104, 97,105,114, 95,105,110,100,
-101,120, 0, 97,108,105,118,101, 0,115,112,114,105,110,103, 95,107, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 99,111,110,
-115,116, 97,110,116, 0,121,105,101,108,100, 95,114, 97,116,105,111, 0,112,108, 97,115,116,105, 99,105,116,121, 95, 98, 97,108,
- 97,110, 99,101, 0,121,105,101,108,100, 95, 98, 97,108, 97,110, 99,101, 0,118,105,115, 99,111,115,105,116,121, 95,111,109,101,
-103, 97, 0,118,105,115, 99,111,115,105,116,121, 95, 98,101,116, 97, 0,115,116,105,102,102,110,101,115,115, 95,107, 0,115,116,
-105,102,102,110,101,115,115, 95,107,110,101, 97,114, 0,114,101,115,116, 95,100,101,110,115,105,116,121, 0, 98,117,111,121, 97,
-110, 99,121, 0,115,112,114,105,110,103, 95,102,114, 97,109,101,115, 0, 42, 98,111,105,100,115, 0, 42,102,108,117,105,100, 0,
-100,105,115,116,114, 0,112,104,121,115,116,121,112,101, 0, 97,118,101,109,111,100,101, 0,114,101, 97, 99,116,101,118,101,110,
-116, 0,100,114, 97,119, 0,100,114, 97,119, 95, 97,115, 0,100,114, 97,119, 95,115,105,122,101, 0, 99,104,105,108,100,116,121,
-112,101, 0,114,101,110, 95, 97,115, 0,115,117, 98,102,114, 97,109,101,115, 0,100,114, 97,119, 95, 99,111,108, 0,114,101,110,
- 95,115,116,101,112, 0,104, 97,105,114, 95,115,116,101,112, 0,107,101,121,115, 95,115,116,101,112, 0, 97,100, 97,112,116, 95,
- 97,110,103,108,101, 0, 97,100, 97,112,116, 95,112,105,120, 0,114,111,116,102,114,111,109, 0,105,110,116,101,103,114, 97,116,
-111,114, 0, 98, 98, 95, 97,108,105,103,110, 0, 98, 98, 95,117,118, 95,115,112,108,105,116, 0, 98, 98, 95, 97,110,105,109, 0,
- 98, 98, 95,115,112,108,105,116, 95,111,102,102,115,101,116, 0, 98, 98, 95,116,105,108,116, 0, 98, 98, 95,114, 97,110,100, 95,
-116,105,108,116, 0, 98, 98, 95,111,102,102,115,101,116, 91, 50, 93, 0, 98, 98, 95,115,105,122,101, 91, 50, 93, 0, 98, 98, 95,
-118,101,108, 95,104,101, 97,100, 0, 98, 98, 95,118,101,108, 95,116, 97,105,108, 0, 99,111,108,111,114, 95,118,101, 99, 95,109,
- 97,120, 0,115,105,109,112,108,105,102,121, 95,114,101,102,115,105,122,101, 0,115,105,109,112,108,105,102,121, 95,114, 97,116,
-101, 0,115,105,109,112,108,105,102,121, 95,116,114, 97,110,115,105,116,105,111,110, 0,115,105,109,112,108,105,102,121, 95,118,
-105,101,119,112,111,114,116, 0,116,105,109,101,116,119,101, 97,107, 0, 99,111,117,114, 97,110,116, 95,116, 97,114,103,101,116,
- 0,106,105,116,102, 97, 99, 0,101,102,102, 95,104, 97,105,114, 0,103,114,105,100, 95,114, 97,110,100, 0,112,115, 95,111,102,
-102,115,101,116, 91, 49, 93, 0,103,114,105,100, 95,114,101,115, 0,101,102,102,101, 99,116,111,114, 95, 97,109,111,117,110,116,
- 0,116,105,109,101, 95,102,108, 97,103, 0,116,105,109,101, 95,112, 97,100, 91, 51, 93, 0,112, 97,114,116,102, 97, 99, 0,116,
- 97,110,102, 97, 99, 0,116, 97,110,112,104, 97,115,101, 0,114,101, 97, 99,116,102, 97, 99, 0,111, 98, 95,118,101,108, 91, 51,
- 93, 0, 97,118,101,102, 97, 99, 0,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,114,111,116,102, 97, 99, 0,114, 97,110,
-100,112,104, 97,115,101,102, 97, 99, 0,114, 97,110,100,115,105,122,101, 0, 97, 99, 99, 91, 51, 93, 0,100,114, 97,103,102, 97,
- 99, 0, 98,114,111,119,110,102, 97, 99, 0,114, 97,110,100,108,101,110,103,116,104, 0, 99,104,105,108,100, 95,110, 98,114, 0,
-114,101,110, 95, 99,104,105,108,100, 95,110, 98,114, 0,112, 97,114,101,110,116,115, 0, 99,104,105,108,100,115,105,122,101, 0,
- 99,104,105,108,100,114, 97,110,100,115,105,122,101, 0, 99,104,105,108,100,114, 97,100, 0, 99,104,105,108,100,102,108, 97,116,
- 0, 99,108,117,109,112,112,111,119, 0,107,105,110,107, 95,102,108, 97,116, 0,107,105,110,107, 95, 97,109,112, 95, 99,108,117,
-109,112, 0,114,111,117,103,104, 49, 0,114,111,117,103,104, 49, 95,115,105,122,101, 0,114,111,117,103,104, 50, 0,114,111,117,
-103,104, 50, 95,115,105,122,101, 0,114,111,117,103,104, 50, 95,116,104,114,101,115, 0,114,111,117,103,104, 95,101,110,100, 0,
-114,111,117,103,104, 95,101,110,100, 95,115,104, 97,112,101, 0, 99,108,101,110,103,116,104, 0, 99,108,101,110,103,116,104, 95,
-116,104,114,101,115, 0,112, 97,114,116,105,110,103, 95,102, 97, 99, 0,112, 97,114,116,105,110,103, 95,109,105,110, 0,112, 97,
-114,116,105,110,103, 95,109, 97,120, 0, 98,114, 97,110, 99,104, 95,116,104,114,101,115, 0,100,114, 97,119, 95,108,105,110,101,
- 91, 50, 93, 0,112, 97,116,104, 95,115,116, 97,114,116, 0,112, 97,116,104, 95,101,110,100, 0,116,114, 97,105,108, 95, 99,111,
-117,110,116, 0,107,101,121,101,100, 95,108,111,111,112,115, 0,100,117,112,108,105,119,101,105,103,104,116,115, 0, 42,101,102,
-102, 95,103,114,111,117,112, 0, 42,100,117,112, 95,111, 98, 0, 42, 98, 98, 95,111, 98, 0, 42,112,100, 50, 0, 42,112, 97,114,
-116, 0, 42,112, 97,114,116,105, 99,108,101,115, 0, 42, 42,112, 97,116,104, 99, 97, 99,104,101, 0, 42, 42, 99,104,105,108,100,
- 99, 97, 99,104,101, 0,112, 97,116,104, 99, 97, 99,104,101, 98,117,102,115, 0, 99,104,105,108,100, 99, 97, 99,104,101, 98,117,
-102,115, 0, 42, 99,108,109,100, 0, 42,104, 97,105,114, 95,105,110, 95,100,109, 0, 42,104, 97,105,114, 95,111,117,116, 95,100,
-109, 0, 42,116, 97,114,103,101,116, 95,111, 98, 0, 42,108, 97,116,116,105, 99,101, 0,116,114,101,101, 95,102,114, 97,109,101,
- 0, 98,118,104,116,114,101,101, 95,102,114, 97,109,101, 0, 99,104,105,108,100, 95,115,101,101,100, 0,116,111,116,117,110,101,
-120,105,115,116, 0,116,111,116, 99,104,105,108,100, 0,116,111,116, 99, 97, 99,104,101,100, 0,116,111,116, 99,104,105,108,100,
- 99, 97, 99,104,101, 0,116, 97,114,103,101,116, 95,112,115,121,115, 0,116,111,116,107,101,121,101,100, 0, 98, 97,107,101,115,
-112, 97, 99,101, 0, 98, 98, 95,117,118,110, 97,109,101, 91, 51, 93, 91, 54, 52, 93, 0,118,103,114,111,117,112, 91, 49, 50, 93,
- 0,118,103, 95,110,101,103, 0,114,116, 51, 0, 42,114,101,110,100,101,114,100, 97,116, 97, 0, 42,101,102,102,101, 99,116,111,
-114,115, 0, 42,102,108,117,105,100, 95,115,112,114,105,110,103,115, 0,116,111,116, 95,102,108,117,105,100,115,112,114,105,110,
-103,115, 0, 97,108,108,111, 99, 95,102,108,117,105,100,115,112,114,105,110,103,115, 0, 42,116,114,101,101, 0, 42,112,100,100,
- 0, 42,102,114, 97,110,100, 0,100,116, 95,102,114, 97, 99, 0, 95,112, 97,100, 0, 67,100,105,115, 0, 67,118,105, 0,115,116,
-114,117, 99,116,117,114, 97,108, 0, 98,101,110,100,105,110,103, 0,109, 97,120, 95, 98,101,110,100, 0,109, 97,120, 95,115,116,
-114,117, 99,116, 0,109, 97,120, 95,115,104,101, 97,114, 0, 97,118,103, 95,115,112,114,105,110,103, 95,108,101,110, 0,116,105,
-109,101,115, 99, 97,108,101, 0,101,102,102, 95,102,111,114, 99,101, 95,115, 99, 97,108,101, 0,101,102,102, 95,119,105,110,100,
- 95,115, 99, 97,108,101, 0,115,105,109, 95,116,105,109,101, 95,111,108,100, 0,118,101,108,111, 99,105,116,121, 95,115,109,111,
-111,116,104, 0, 99,111,108,108,105,100,101,114, 95,102,114,105, 99,116,105,111,110, 0,118,101,108, 95,100, 97,109,112,105,110,
-103, 0,115,116,101,112,115, 80,101,114, 70,114, 97,109,101, 0,112,114,101,114,111,108,108, 0,109, 97,120,115,112,114,105,110,
-103,108,101,110, 0,115,111,108,118,101,114, 95,116,121,112,101, 0,118,103,114,111,117,112, 95, 98,101,110,100, 0,118,103,114,
-111,117,112, 95,109, 97,115,115, 0,118,103,114,111,117,112, 95,115,116,114,117, 99,116, 0,115,104, 97,112,101,107,101,121, 95,
-114,101,115,116, 0,112,114,101,115,101,116,115, 0,114,101,115,101,116, 0, 42, 99,111,108,108,105,115,105,111,110, 95,108,105,
-115,116, 0,101,112,115,105,108,111,110, 0,115,101,108,102, 95,102,114,105, 99,116,105,111,110, 0,115,101,108,102,101,112,115,
-105,108,111,110, 0,114,101,112,101,108, 95,102,111,114, 99,101, 0,100,105,115,116, 97,110, 99,101, 95,114,101,112,101,108, 0,
-115,101,108,102, 95,108,111,111,112, 95, 99,111,117,110,116, 0,108,111,111,112, 95, 99,111,117,110,116, 0,112,114,101,115,115,
-117,114,101, 0,116,104,105, 99,107,110,101,115,115, 0,115,116,114,111,107,101,115, 0,102,114, 97,109,101,110,117,109, 0, 42,
- 97, 99,116,102,114, 97,109,101, 0,103,115,116,101,112, 0,105,110,102,111, 91, 49, 50, 56, 93, 0,115, 98,117,102,102,101,114,
- 95,115,105,122,101, 0,115, 98,117,102,102,101,114, 95,115,102,108, 97,103, 0, 42,115, 98,117,102,102,101,114, 0,108,105,115,
-116, 0,112,114,105,110,116,108,101,118,101,108, 0,115,116,111,114,101,108,101,118,101,108, 0, 42,114,101,112,111,114,116,116,
-105,109,101,114, 0, 42,119,105,110,100,114, 97,119, 97, 98,108,101, 0, 42,119,105,110, 97, 99,116,105,118,101, 0,119,105,110,
-100,111,119,115, 0,105,110,105,116,105, 97,108,105,122,101,100, 0,102,105,108,101, 95,115, 97,118,101,100, 0,111,112, 95,117,
-110,100,111, 95,100,101,112,116,104, 0,111,112,101,114, 97,116,111,114,115, 0,113,117,101,117,101, 0,114,101,112,111,114,116,
-115, 0,106,111, 98,115, 0,112, 97,105,110,116, 99,117,114,115,111,114,115, 0,100,114, 97,103,115, 0,107,101,121, 99,111,110,
-102,105,103,115, 0, 42,100,101,102, 97,117,108,116, 99,111,110,102, 0, 42, 97,100,100,111,110, 99,111,110,102, 0, 42,117,115,
-101,114, 99,111,110,102, 0,116,105,109,101,114,115, 0, 42, 97,117,116,111,115, 97,118,101,116,105,109,101,114, 0, 42,103,104,
-111,115,116,119,105,110, 0,103,114, 97, 98, 99,117,114,115,111,114, 0, 42,115, 99,114,101,101,110, 0, 42,110,101,119,115, 99,
-114,101,101,110, 0,115, 99,114,101,101,110,110, 97,109,101, 91, 54, 52, 93, 0,112,111,115,120, 0,112,111,115,121, 0,119,105,
-110,100,111,119,115,116, 97,116,101, 0,109,111,110,105,116,111,114, 0,108, 97,115,116, 99,117,114,115,111,114, 0,109,111,100,
- 97,108, 99,117,114,115,111,114, 0, 97,100,100,109,111,117,115,101,109,111,118,101, 0, 42,101,118,101,110,116,115,116, 97,116,
-101, 0, 42, 99,117,114,115,119,105,110, 0, 42,116,119,101, 97,107, 0,100,114, 97,119,109,101,116,104,111,100, 0,100,114, 97,
-119,102, 97,105,108, 0, 42,100,114, 97,119,100, 97,116, 97, 0,109,111,100, 97,108,104, 97,110,100,108,101,114,115, 0,115,117,
- 98,119,105,110,100,111,119,115, 0,103,101,115,116,117,114,101, 0,105,100,110, 97,109,101, 91, 54, 52, 93, 0,112,114,111,112,
-118, 97,108,117,101, 95,115,116,114, 91, 54, 52, 93, 0,112,114,111,112,118, 97,108,117,101, 0,115,104,105,102,116, 0, 99,116,
-114,108, 0, 97,108,116, 0,111,115,107,101,121, 0,107,101,121,109,111,100,105,102,105,101,114, 0,109, 97,112,116,121,112,101,
- 0, 42,112,116,114, 0, 42,114,101,109,111,118,101, 95,105,116,101,109, 0, 42, 97,100,100, 95,105,116,101,109, 0,105,116,101,
-109,115, 0,100,105,102,102, 95,105,116,101,109,115, 0,115,112, 97, 99,101,105,100, 0,114,101,103,105,111,110,105,100, 0,107,
-109,105, 95,105,100, 0, 40, 42,112,111,108,108, 41, 40, 41, 0, 42,109,111,100, 97,108, 95,105,116,101,109,115, 0, 98, 97,115,
-101,110, 97,109,101, 91, 54, 52, 93, 0, 97, 99,116,107,101,121,109, 97,112, 0, 42, 99,117,115,116,111,109,100, 97,116, 97, 0,
- 42,112,121, 95,105,110,115,116, 97,110, 99,101, 0, 42,114,101,112,111,114,116,115, 0,109, 97, 99,114,111, 0, 42,111,112,109,
- 0, 42,101,100, 97,116, 97, 0, 42, 99,111,101,102,102,105, 99,105,101,110,116,115, 0, 97,114,114, 97,121,115,105,122,101, 0,
-112,111,108,121, 95,111,114,100,101,114, 0, 97,109,112,108,105,116,117,100,101, 0,112,104, 97,115,101, 95,109,117,108,116,105,
-112,108,105,101,114, 0,112,104, 97,115,101, 95,111,102,102,115,101,116, 0,118, 97,108,117,101, 95,111,102,102,115,101,116, 0,
-109,105,100,118, 97,108, 0, 98,101,102,111,114,101, 95,109,111,100,101, 0, 97,102,116,101,114, 95,109,111,100,101, 0, 98,101,
-102,111,114,101, 95, 99,121, 99,108,101,115, 0, 97,102,116,101,114, 95, 99,121, 99,108,101,115, 0,114,101, 99,116, 0,112,104,
- 97,115,101, 0,109,111,100,105,102,105, 99, 97,116,105,111,110, 0,115,116,101,112, 95,115,105,122,101, 0, 42,114,110, 97, 95,
-112, 97,116,104, 0,112, 99,104, 97,110, 95,110, 97,109,101, 91, 51, 50, 93, 0,116,114, 97,110,115, 67,104, 97,110, 0,105,100,
-116,121,112,101, 0,116, 97,114,103,101,116,115, 91, 56, 93, 0,110,117,109, 95,116, 97,114,103,101,116,115, 0,118, 97,114,105,
- 97, 98,108,101,115, 0,101,120,112,114,101,115,115,105,111,110, 91, 50, 53, 54, 93, 0, 42,101,120,112,114, 95, 99,111,109,112,
- 0,118,101, 99, 91, 50, 93, 0, 42,102,112,116, 0, 97,114,114, 97,121, 95,105,110,100,101,120, 0, 99,111,108,111,114, 95,109,
-111,100,101, 0,102,114,111,109, 91, 49, 50, 56, 93, 0,116,111, 91, 49, 50, 56, 93, 0,109, 97,112,112,105,110,103,115, 0,115,
-116,114,105,112,115, 0, 42,114,101,109, 97,112, 0,102, 99,117,114,118,101,115, 0,115,116,114,105,112, 95,116,105,109,101, 0,
- 98,108,101,110,100,109,111,100,101, 0,101,120,116,101,110,100,109,111,100,101, 0, 42,115,112,101, 97,107,101,114, 95,104, 97,
-110,100,108,101, 0,103,114,111,117,112, 91, 54, 52, 93, 0,103,114,111,117,112,109,111,100,101, 0,107,101,121,105,110,103,102,
-108, 97,103, 0,112, 97,116,104,115, 0,100,101,115, 99,114,105,112,116,105,111,110, 91, 50, 52, 48, 93, 0,116,121,112,101,105,
-110,102,111, 91, 54, 52, 93, 0, 97, 99,116,105,118,101, 95,112, 97,116,104, 0, 42,116,109,112, 97, 99,116, 0,110,108, 97, 95,
-116,114, 97, 99,107,115, 0, 42, 97, 99,116,115,116,114,105,112, 0,100,114,105,118,101,114,115, 0,111,118,101,114,114,105,100,
-101,115, 0, 97, 99,116, 95, 98,108,101,110,100,109,111,100,101, 0, 97, 99,116, 95,101,120,116,101,110,100,109,111,100,101, 0,
- 97, 99,116, 95,105,110,102,108,117,101,110, 99,101, 0,114,117,108,101, 0,111,112,116,105,111,110,115, 0,102,101, 97,114, 95,
-102, 97, 99,116,111,114, 0,115,105,103,110, 97,108, 95,105,100, 0,108,111,111,107, 95, 97,104,101, 97,100, 0,111,108,111, 99,
- 91, 51, 93, 0,113,117,101,117,101, 95,115,105,122,101, 0,119, 97,110,100,101,114, 0,102,108,101,101, 95,100,105,115,116, 97,
-110, 99,101, 0,104,101, 97,108,116,104, 0,115,116, 97,116,101, 95,105,100, 0,114,117,108,101,115, 0, 99,111,110,100,105,116,
-105,111,110,115, 0, 97, 99,116,105,111,110,115, 0,114,117,108,101,115,101,116, 95,116,121,112,101, 0,114,117,108,101, 95,102,
-117,122,122,105,110,101,115,115, 0,108, 97,115,116, 95,115,116, 97,116,101, 95,105,100, 0,108, 97,110,100,105,110,103, 95,115,
-109,111,111,116,104,110,101,115,115, 0, 98, 97,110,107,105,110,103, 0, 97,103,103,114,101,115,115,105,111,110, 0, 97,105,114,
- 95,109,105,110, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120, 95,115,112,101,101,100, 0, 97,105,114, 95,109, 97,120,
- 95, 97, 99, 99, 0, 97,105,114, 95,109, 97,120, 95, 97,118,101, 0, 97,105,114, 95,112,101,114,115,111,110, 97,108, 95,115,112,
- 97, 99,101, 0,108, 97,110,100, 95,106,117,109,112, 95,115,112,101,101,100, 0,108, 97,110,100, 95,109, 97,120, 95,115,112,101,
-101,100, 0,108, 97,110,100, 95,109, 97,120, 95, 97, 99, 99, 0,108, 97,110,100, 95,109, 97,120, 95, 97,118,101, 0,108, 97,110,
-100, 95,112,101,114,115,111,110, 97,108, 95,115,112, 97, 99,101, 0,108, 97,110,100, 95,115,116,105, 99,107, 95,102,111,114, 99,
-101, 0,115,116, 97,116,101,115, 0, 42,115,109,100, 0, 42,102,108,117,105,100, 95,103,114,111,117,112, 0, 42, 99,111,108,108,
- 95,103,114,111,117,112, 0, 42,119,116, 0, 42,116,101,120, 95,119,116, 0, 42,116,101,120, 95,115,104, 97,100,111,119, 0, 42,
-115,104, 97,100,111,119, 0,112, 48, 91, 51, 93, 0,112, 49, 91, 51, 93, 0,100,120, 0,111,109,101,103, 97, 0,116,101,109,112,
- 65,109, 98, 0, 98,101,116, 97, 0,114,101,115, 91, 51, 93, 0, 97,109,112,108,105,102,121, 0,109, 97,120,114,101,115, 0,118,
-105,101,119,115,101,116,116,105,110,103,115, 0,110,111,105,115,101, 0,100,105,115,115, 95,112,101,114, 99,101,110,116, 0,100,
-105,115,115, 95,115,112,101,101,100, 0,114,101,115, 95,119,116, 91, 51, 93, 0,100,120, 95,119,116, 0,118, 51,100,110,117,109,
- 0, 99, 97, 99,104,101, 95, 99,111,109,112, 0, 99, 97, 99,104,101, 95,104,105,103,104, 95, 99,111,109,112, 0, 42,112,111,105,
-110,116, 95, 99, 97, 99,104,101, 91, 50, 93, 0,112,116, 99, 97, 99,104,101,115, 91, 50, 93, 0, 98,111,114,100,101,114, 95, 99,
-111,108,108,105,115,105,111,110,115, 0,116,105,109,101, 95,115, 99, 97,108,101, 0,118,111,114,116,105, 99,105,116,121, 0,118,
-101,108,111, 99,105,116,121, 91, 50, 93, 0,118,101,108, 95,109,117,108,116,105, 0,118,103,114,112, 95,104,101, 97,116, 95,115,
- 99, 97,108,101, 91, 50, 93, 0,118,103,114,111,117,112, 95,102,108,111,119, 0,118,103,114,111,117,112, 95,100,101,110,115,105,
-116,121, 0,118,103,114,111,117,112, 95,104,101, 97,116, 0, 42,112,111,105,110,116,115, 95,111,108,100, 0, 42,118,101,108, 0,
- 42,116,114,105,100,105,118,115, 0,109, 97,116, 95,111,108,100, 91, 52, 93, 91, 52, 93, 0,110,117,109,116,114,105,115, 0,118,
-111,108,117,109,101, 95,109, 97,120, 0,118,111,108,117,109,101, 95,109,105,110, 0,100,105,115,116, 97,110, 99,101, 95,109, 97,
-120, 0,100,105,115,116, 97,110, 99,101, 95,114,101,102,101,114,101,110, 99,101, 0, 99,111,110,101, 95, 97,110,103,108,101, 95,
-111,117,116,101,114, 0, 99,111,110,101, 95, 97,110,103,108,101, 95,105,110,110,101,114, 0, 99,111,110,101, 95,118,111,108,117,
-109,101, 95,111,117,116,101,114, 0,114,101,110,100,101,114, 95,102,108, 97,103, 0, 98,117,105,108,100, 95,115,105,122,101, 95,
-102,108, 97,103, 0, 98,117,105,108,100, 95,116, 99, 95,102,108, 97,103, 0,108, 97,115,116,115,105,122,101, 91, 50, 93, 0,116,
-114, 97, 99,107,105,110,103, 0, 42,116,114, 97, 99,107,105,110,103, 95, 99,111,110,116,101,120,116, 0,112,114,111,120,121, 0,
-116,114, 97, 99,107, 95,112,114,101,118,105,101,119, 95,104,101,105,103,104,116, 0, 42,116,114, 97, 99,107, 95,112,114,101,118,
-105,101,119, 0,116,114, 97, 99,107, 95,112,111,115, 91, 50, 93, 0,116,114, 97, 99,107, 95,100,105,115, 97, 98,108,101,100, 0,
- 42,109, 97,114,107,101,114, 0,115,108,105,100,101, 95,115, 99, 97,108,101, 91, 50, 93, 0,101,114,114,111,114, 0, 42,105,110,
-116,114,105,110,115,105, 99,115, 0,115,101,110,115,111,114, 95,119,105,100,116,104, 0,112,105,120,101,108, 95, 97,115,112,101,
- 99,116, 0,102,111, 99, 97,108, 0,117,110,105,116,115, 0,112,114,105,110, 99,105,112, 97,108, 91, 50, 93, 0,107, 49, 0,107,
- 50, 0,107, 51, 0,112,111,115, 91, 50, 93, 0,112, 97,116, 95,109,105,110, 91, 50, 93, 0,112, 97,116, 95,109, 97,120, 91, 50,
- 93, 0,115,101, 97,114, 99,104, 95,109,105,110, 91, 50, 93, 0,115,101, 97,114, 99,104, 95,109, 97,120, 91, 50, 93, 0,109, 97,
-114,107,101,114,115,110,114, 0,108, 97,115,116, 95,109, 97,114,107,101,114, 0, 42,109, 97,114,107,101,114,115, 0, 98,117,110,
-100,108,101, 95,112,111,115, 91, 51, 93, 0,112, 97,116, 95,102,108, 97,103, 0,115,101, 97,114, 99,104, 95,102,108, 97,103, 0,
-102,114, 97,109,101,115, 95,108,105,109,105,116, 0,112, 97,116,116,101,114,110, 95,109, 97,116, 99,104, 0,116,114, 97, 99,107,
-101,114, 0,112,121,114, 97,109,105,100, 95,108,101,118,101,108,115, 0,109,105,110,105,109,117,109, 95, 99,111,114,114,101,108,
- 97,116,105,111,110, 0,100,101,102, 97,117,108,116, 95,116,114, 97, 99,107,101,114, 0,100,101,102, 97,117,108,116, 95,112,121,
-114, 97,109,105,100, 95,108,101,118,101,108,115, 0,100,101,102, 97,117,108,116, 95,109,105,110,105,109,117,109, 95, 99,111,114,
-114,101,108, 97,116,105,111,110, 0,100,101,102, 97,117,108,116, 95,112, 97,116,116,101,114,110, 95,115,105,122,101, 0,100,101,
-102, 97,117,108,116, 95,115,101, 97,114, 99,104, 95,115,105,122,101, 0,100,101,102, 97,117,108,116, 95,102,114, 97,109,101,115,
- 95,108,105,109,105,116, 0,100,101,102, 97,117,108,116, 95,109, 97,114,103,105,110, 0,100,101,102, 97,117,108,116, 95,112, 97,
-116,116,101,114,110, 95,109, 97,116, 99,104, 0,100,101,102, 97,117,108,116, 95,102,108, 97,103, 0,109,111,116,105,111,110, 95,
-102,108, 97,103, 0,107,101,121,102,114, 97,109,101, 49, 0,107,101,121,102,114, 97,109,101, 50, 0,114,101,102,105,110,101, 95,
- 99, 97,109,101,114, 97, 95,105,110,116,114,105,110,115,105, 99,115, 0, 99,108,101, 97,110, 95,102,114, 97,109,101,115, 0, 99,
-108,101, 97,110, 95, 97, 99,116,105,111,110, 0, 99,108,101, 97,110, 95,101,114,114,111,114, 0,111, 98,106,101, 99,116, 95,100,
-105,115,116, 97,110, 99,101, 0,116,111,116, 95,116,114, 97, 99,107, 0, 97, 99,116, 95,116,114, 97, 99,107, 0,109, 97,120,115,
- 99, 97,108,101, 0, 42,114,111,116, 95,116,114, 97, 99,107, 0,108,111, 99,105,110,102, 0,115, 99, 97,108,101,105,110,102, 0,
-114,111,116,105,110,102, 0, 42,115, 99, 97,108,101,105, 98,117,102, 0,108, 97,115,116, 95, 99, 97,109,101,114, 97, 0, 99, 97,
-109,110,114, 0, 42, 99, 97,109,101,114, 97,115, 0,116,114, 97, 99,107,115, 0,114,101, 99,111,110,115,116,114,117, 99,116,105,
-111,110, 0,109,101,115,115, 97,103,101, 91, 50, 53, 54, 93, 0,116,111,116, 95,115,101,103,109,101,110,116, 0, 42,115,101,103,
-109,101,110,116,115, 0,109, 97,120, 95,115,101,103,109,101,110,116, 0,116,111,116, 97,108, 95,102,114, 97,109,101,115, 0,116,
-111,116, 95, 99,104, 97,110,110,101,108, 0,115,111,114,116, 95,109,101,116,104,111,100, 0,115,111,114,116, 95,105,110,118,101,
-114,115,101, 0,115,101,116,116,105,110,103,115, 0, 99, 97,109,101,114, 97, 0,115,116, 97, 98,105,108,105,122, 97,116,105,111,
-110, 0, 42, 97, 99,116, 95,116,114, 97, 99,107, 0,111, 98,106,101, 99,116,115, 0,111, 98,106,101, 99,116,110,114, 0,116,111,
-116, 95,111, 98,106,101, 99,116, 0,100,111,112,101,115,104,101,101,116, 0, 42, 98,114,117,115,104, 95,103,114,111,117,112, 0,
- 99,117,114,114,101,110,116, 95,102,114, 97,109,101, 0,100,105,115,112, 95,116,121,112,101, 0,105,109, 97,103,101, 95,102,105,
-108,101,102,111,114,109, 97,116, 0,101,102,102,101, 99,116, 95,117,105, 0,112,114,101,118,105,101,119, 95,105,100, 0,105,110,
-105,116, 95, 99,111,108,111,114, 95,116,121,112,101, 0,112, 97,100, 95,115, 0,105,109, 97,103,101, 95,114,101,115,111,108,117,
-116,105,111,110, 0,115,117, 98,115,116,101,112,115, 0,105,110,105,116, 95, 99,111,108,111,114, 91, 52, 93, 0, 42,105,110,105,
-116, 95,116,101,120,116,117,114,101, 0,105,110,105,116, 95,108, 97,121,101,114,110, 97,109,101, 91, 54, 52, 93, 0,100,114,121,
- 95,115,112,101,101,100, 0, 99,111,108,111,114, 95,100,114,121, 95,116,104,114,101,115,104,111,108,100, 0,100,101,112,116,104,
- 95, 99,108, 97,109,112, 0,100,105,115,112, 95,102, 97, 99,116,111,114, 0,115,112,114,101, 97,100, 95,115,112,101,101,100, 0,
- 99,111,108,111,114, 95,115,112,114,101, 97,100, 95,115,112,101,101,100, 0,115,104,114,105,110,107, 95,115,112,101,101,100, 0,
-100,114,105,112, 95,118,101,108, 0,100,114,105,112, 95, 97, 99, 99, 0,105,110,102,108,117,101,110, 99,101, 95,115, 99, 97,108,
-101, 0,114, 97,100,105,117,115, 95,115, 99, 97,108,101, 0,119, 97,118,101, 95,100, 97,109,112,105,110,103, 0,119, 97,118,101,
- 95,115,112,101,101,100, 0,119, 97,118,101, 95,116,105,109,101,115, 99, 97,108,101, 0,119, 97,118,101, 95,115,112,114,105,110,
-103, 0,105,109, 97,103,101, 95,111,117,116,112,117,116, 95,112, 97,116,104, 91, 49, 48, 50, 52, 93, 0,111,117,116,112,117,116,
- 95,110, 97,109,101, 91, 54, 52, 93, 0,111,117,116,112,117,116, 95,110, 97,109,101, 50, 91, 54, 52, 93, 0, 42,112,109,100, 0,
-115,117,114,102, 97, 99,101,115, 0, 97, 99,116,105,118,101, 95,115,117,114, 0,101,114,114,111,114, 91, 54, 52, 93, 0, 99,111,
-108,108,105,115,105,111,110, 0,119,101,116,110,101,115,115, 0,112, 97,114,116,105, 99,108,101, 95,114, 97,100,105,117,115, 0,
-112, 97,114,116,105, 99,108,101, 95,115,109,111,111,116,104, 0,112, 97,105,110,116, 95,100,105,115,116, 97,110, 99,101, 0, 42,
-112, 97,105,110,116, 95,114, 97,109,112, 0, 42,118,101,108, 95,114, 97,109,112, 0,112,114,111,120,105,109,105,116,121, 95,102,
- 97,108,108,111,102,102, 0,114, 97,121, 95,100,105,114, 0,119, 97,118,101, 95,102, 97, 99,116,111,114, 0,119, 97,118,101, 95,
- 99,108, 97,109,112, 0,109, 97,120, 95,118,101,108,111, 99,105,116,121, 0,115,109,117,100,103,101, 95,115,116,114,101,110,103,
-116,104, 0, 0, 84, 89, 80, 69, 26, 2, 0, 0, 99,104, 97,114, 0,117, 99,104, 97,114, 0,115,104,111,114,116, 0,117,115,104,
-111,114,116, 0,105,110,116, 0,108,111,110,103, 0,117,108,111,110,103, 0,102,108,111, 97,116, 0,100,111,117, 98,108,101, 0,
-105,110,116, 54, 52, 95,116, 0,117,105,110,116, 54, 52, 95,116, 0,118,111,105,100, 0, 76,105,110,107, 0, 76,105,110,107, 68,
- 97,116, 97, 0, 76,105,115,116, 66, 97,115,101, 0,118,101, 99, 50,115, 0,118,101, 99, 50,102, 0,118,101, 99, 51,102, 0,114,
- 99,116,105, 0,114, 99,116,102, 0, 73, 68, 80,114,111,112,101,114,116,121, 68, 97,116, 97, 0, 73, 68, 80,114,111,112,101,114,
-116,121, 0, 73, 68, 0, 76,105, 98,114, 97,114,121, 0, 70,105,108,101, 68, 97,116, 97, 0, 80,114,101,118,105,101,119, 73,109,
- 97,103,101, 0, 73,112,111, 68,114,105,118,101,114, 0, 79, 98,106,101, 99,116, 0, 73,112,111, 67,117,114,118,101, 0, 66, 80,
-111,105,110,116, 0, 66,101,122, 84,114,105,112,108,101, 0, 73,112,111, 0, 75,101,121, 66,108,111, 99,107, 0, 75,101,121, 0,
- 65,110,105,109, 68, 97,116, 97, 0, 84,101,120,116, 76,105,110,101, 0, 84,101,120,116, 77, 97,114,107,101,114, 0, 84,101,120,
-116, 0, 80, 97, 99,107,101,100, 70,105,108,101, 0, 67, 97,109,101,114, 97, 0, 73,109, 97,103,101, 85,115,101,114, 0, 83, 99,
-101,110,101, 0, 73,109, 97,103,101, 0, 71, 80, 85, 84,101,120,116,117,114,101, 0, 97,110,105,109, 0, 82,101,110,100,101,114,
- 82,101,115,117,108,116, 0, 77, 84,101,120, 0, 84,101,120, 0, 67, 66, 68, 97,116, 97, 0, 67,111,108,111,114, 66, 97,110,100,
- 0, 69,110,118, 77, 97,112, 0, 73,109, 66,117,102, 0, 80,111,105,110,116, 68,101,110,115,105,116,121, 0, 67,117,114,118,101,
- 77, 97,112,112,105,110,103, 0, 86,111,120,101,108, 68, 97,116, 97, 0, 79, 99,101, 97,110, 84,101,120, 0, 98, 78,111,100,101,
- 84,114,101,101, 0, 84,101,120, 77, 97,112,112,105,110,103, 0, 67,111,108,111,114, 77, 97,112,112,105,110,103, 0, 76, 97,109,
-112, 0, 86,111,108,117,109,101, 83,101,116,116,105,110,103,115, 0, 71, 97,109,101, 83,101,116,116,105,110,103,115, 0, 77, 97,
-116,101,114,105, 97,108, 0, 71,114,111,117,112, 0, 86, 70,111,110,116, 0, 86, 70,111,110,116, 68, 97,116, 97, 0, 77,101,116,
- 97, 69,108,101,109, 0, 66,111,117,110,100, 66,111,120, 0, 77,101,116, 97, 66, 97,108,108, 0, 78,117,114, 98, 0, 67,104, 97,
-114, 73,110,102,111, 0, 84,101,120,116, 66,111,120, 0, 69,100,105,116, 78,117,114, 98, 0, 71, 72, 97,115,104, 0, 67,117,114,
-118,101, 0, 80, 97,116,104, 0, 83,101,108, 66,111,120, 0, 69,100,105,116, 70,111,110,116, 0, 77,101,115,104, 0, 77, 83,101,
-108,101, 99,116, 0, 77, 80,111,108,121, 0, 77, 84,101,120, 80,111,108,121, 0, 77, 76,111,111,112, 0, 77, 76,111,111,112, 85,
- 86, 0, 77, 76,111,111,112, 67,111,108, 0, 77, 70, 97, 99,101, 0, 77, 84, 70, 97, 99,101, 0, 84, 70, 97, 99,101, 0, 77, 86,
-101,114,116, 0, 77, 69,100,103,101, 0, 77, 68,101,102,111,114,109, 86,101,114,116, 0, 77, 67,111,108, 0, 77, 83,116,105, 99,
-107,121, 0, 66, 77, 69,100,105,116, 77,101,115,104, 0, 67,117,115,116,111,109, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,
-115, 0, 77, 68,101,102,111,114,109, 87,101,105,103,104,116, 0, 77, 70,108,111, 97,116, 80,114,111,112,101,114,116,121, 0, 77,
- 73,110,116, 80,114,111,112,101,114,116,121, 0, 77, 83,116,114,105,110,103, 80,114,111,112,101,114,116,121, 0, 79,114,105,103,
- 83,112, 97, 99,101, 70, 97, 99,101, 0, 79,114,105,103, 83,112, 97, 99,101, 76,111,111,112, 0, 77, 68,105,115,112,115, 0, 77,
-117,108,116,105,114,101,115, 67,111,108, 0, 77,117,108,116,105,114,101,115, 67,111,108, 70, 97, 99,101, 0, 77,117,108,116,105,
-114,101,115, 70, 97, 99,101, 0, 77,117,108,116,105,114,101,115, 69,100,103,101, 0, 77,117,108,116,105,114,101,115, 76,101,118,
-101,108, 0, 77, 82,101, 99, 97,115,116, 0, 71,114,105,100, 80, 97,105,110,116, 77, 97,115,107, 0, 77, 86,101,114,116, 83,107,
-105,110, 0, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,112,112,105,110,103, 73,110,102,111, 77,111,100,105,102,
-105,101,114, 68, 97,116, 97, 0, 83,117, 98,115,117,114,102, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 76, 97,116,116,
-105, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,117,114,118,101, 77,111,100,105,102,105,101,114, 68, 97,116,
- 97, 0, 66,117,105,108,100, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77, 97,115,107, 77,111,100,105,102,105,101,114,
- 68, 97,116, 97, 0, 65,114,114, 97,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,105,114,114,111,114, 77,111,100,
-105,102,105,101,114, 68, 97,116, 97, 0, 69,100,103,101, 83,112,108,105,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0,
- 66,101,118,101,108, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 77,101,115,104, 77,111,100,105,102,105,101,114, 68,
- 97,116, 97, 0, 83,109,111,107,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,107,101, 68,111,109, 97,105,
-110, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,101, 70,108,111,119, 83,101,116,116,105,110,103,115, 0, 83,109,111,107,
-101, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 68,105,115,112,108, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,
-116, 97, 0, 85, 86, 80,114,111,106,101, 99,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101, 99,105,109, 97,116,
-101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,109,111,111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97,
- 0, 67, 97,115,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87, 97,118,101, 77,111,100,105,102,105,101,114, 68, 97,
-116, 97, 0, 65,114,109, 97,116,117,114,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 72,111,111,107, 77,111,100,105,
-102,105,101,114, 68, 97,116, 97, 0, 83,111,102,116, 98,111,100,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,
-111,116,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 67,108,111,116,104, 0, 67,108,111,116,104, 83,105,109, 83,101,
-116,116,105,110,103,115, 0, 67,108,111,116,104, 67,111,108,108, 83,101,116,116,105,110,103,115, 0, 80,111,105,110,116, 67, 97,
- 99,104,101, 0, 67,111,108,108,105,115,105,111,110, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 66, 86, 72, 84,114,101,
-101, 0, 83,117,114,102, 97, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,101,114,105,118,101,100, 77,101,115,
-104, 0, 66, 86, 72, 84,114,101,101, 70,114,111,109, 77,101,115,104, 0, 66,111,111,108,101, 97,110, 77,111,100,105,102,105,101,
-114, 68, 97,116, 97, 0, 77, 68,101,102, 73,110,102,108,117,101,110, 99,101, 0, 77, 68,101,102, 67,101,108,108, 0, 77,101,115,
-104, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,
-101,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,121,115,116,101,109, 0, 80, 97,
-114,116,105, 99,108,101, 73,110,115,116, 97,110, 99,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 69,120,112,108,111,
-100,101, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 77,117,108,116,105,114,101,115, 77,111,100,105,102,105,101,114, 68,
- 97,116, 97, 0, 70,108,117,105,100,115,105,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 70,108,117,105,100,115,105,
-109, 83,101,116,116,105,110,103,115, 0, 83,104,114,105,110,107,119,114, 97,112, 77,111,100,105,102,105,101,114, 68, 97,116, 97,
- 0, 83,105,109,112,108,101, 68,101,102,111,114,109, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,104, 97,112,101, 75,
-101,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,111,108,105,100,105,102,121, 77,111,100,105,102,105,101,114, 68,
- 97,116, 97, 0, 83, 99,114,101,119, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 79, 99,101, 97,110, 77,111,100,105,102,
-105,101,114, 68, 97,116, 97, 0, 79, 99,101, 97,110, 0, 79, 99,101, 97,110, 67, 97, 99,104,101, 0, 87, 97,114,112, 77,111,100,
-105,102,105,101,114, 68, 97,116, 97, 0, 87,101,105,103,104,116, 86, 71, 69,100,105,116, 77,111,100,105,102,105,101,114, 68, 97,
-116, 97, 0, 87,101,105,103,104,116, 86, 71, 77,105,120, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 87,101,105,103,104,
-116, 86, 71, 80,114,111,120,105,109,105,116,121, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,121,110, 97,109,105, 99,
- 80, 97,105,110,116, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 67, 97,
-110,118, 97,115, 83,101,116,116,105,110,103,115, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 66,114,117,115,104, 83,101,
-116,116,105,110,103,115, 0, 82,101,109,101,115,104, 77,111,100,105,102,105,101,114, 68, 97,116, 97, 0, 83,107,105,110, 77,111,
-100,105,102,105,101,114, 68, 97,116, 97, 0, 69,100,105,116, 76, 97,116,116, 0, 76, 97,116,116,105, 99,101, 0, 98, 68,101,102,
-111,114,109, 71,114,111,117,112, 0, 83, 99,117,108,112,116, 83,101,115,115,105,111,110, 0, 98, 65, 99,116,105,111,110, 0, 98,
- 80,111,115,101, 0, 98, 71, 80,100, 97,116, 97, 0, 98, 65,110,105,109, 86,105,122, 83,101,116,116,105,110,103,115, 0, 98, 77,
-111,116,105,111,110, 80, 97,116,104, 0, 66,117,108,108,101,116, 83,111,102,116, 66,111,100,121, 0, 80, 97,114,116, 68,101,102,
-108,101, 99,116, 0, 83,111,102,116, 66,111,100,121, 0, 79, 98, 72,111,111,107, 0, 68,117,112,108,105, 79, 98,106,101, 99,116,
- 0, 82, 78, 71, 0, 69,102,102,101, 99,116,111,114, 87,101,105,103,104,116,115, 0, 80, 84, 67, 97, 99,104,101, 69,120,116,114,
- 97, 0, 80, 84, 67, 97, 99,104,101, 77,101,109, 0, 80, 84, 67, 97, 99,104,101, 69,100,105,116, 0, 83, 66, 86,101,114,116,101,
-120, 0, 66,111,100,121, 80,111,105,110,116, 0, 66,111,100,121, 83,112,114,105,110,103, 0, 83, 66, 83, 99,114, 97,116, 99,104,
- 0, 70,108,117,105,100, 86,101,114,116,101,120, 86,101,108,111, 99,105,116,121, 0, 87,111,114,108,100, 0, 66, 97,115,101, 0,
- 65,118,105, 67,111,100,101, 99, 68, 97,116, 97, 0, 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 68, 97,116, 97, 0,
- 81,117,105, 99,107,116,105,109,101, 67,111,100,101, 99, 83,101,116,116,105,110,103,115, 0, 70, 70, 77,112,101,103, 67,111,100,
-101, 99, 68, 97,116, 97, 0, 65,117,100,105,111, 68, 97,116, 97, 0, 83, 99,101,110,101, 82,101,110,100,101,114, 76, 97,121,101,
-114, 0, 73,109, 97,103,101, 70,111,114,109, 97,116, 68, 97,116, 97, 0, 82,101,110,100,101,114, 68, 97,116, 97, 0, 82,101,110,
-100,101,114, 80,114,111,102,105,108,101, 0, 71, 97,109,101, 68,111,109,101, 0, 71, 97,109,101, 70,114, 97,109,105,110,103, 0,
- 82,101, 99, 97,115,116, 68, 97,116, 97, 0, 71, 97,109,101, 68, 97,116, 97, 0, 84,105,109,101, 77, 97,114,107,101,114, 0, 80,
- 97,105,110,116, 0, 66,114,117,115,104, 0, 73,109, 97,103,101, 80, 97,105,110,116, 83,101,116,116,105,110,103,115, 0, 80, 97,
-114,116,105, 99,108,101, 66,114,117,115,104, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 69,100,105,116, 83,101,116,116,
-105,110,103,115, 0, 83, 99,117,108,112,116, 0, 85,118, 83, 99,117,108,112,116, 0, 86, 80, 97,105,110,116, 0, 84,114, 97,110,
-115,102,111,114,109, 79,114,105,101,110,116, 97,116,105,111,110, 0, 85,110,105,102,105,101,100, 80, 97,105,110,116, 83,101,116,
-116,105,110,103,115, 0, 84,111,111,108, 83,101,116,116,105,110,103,115, 0, 98, 83,116, 97,116,115, 0, 85,110,105,116, 83,101,
-116,116,105,110,103,115, 0, 80,104,121,115,105, 99,115, 83,101,116,116,105,110,103,115, 0, 69,100,105,116,105,110,103, 0, 83,
- 99,101,110,101, 83,116, 97,116,115, 0, 68, 97,103, 70,111,114,101,115,116, 0, 77,111,118,105,101, 67,108,105,112, 0, 66, 71,
-112,105, 99, 0, 77,111,118,105,101, 67,108,105,112, 85,115,101,114, 0, 82,101,103,105,111,110, 86,105,101,119, 51, 68, 0, 82,
-101,110,100,101,114, 73,110,102,111, 0, 82,101,110,100,101,114, 69,110,103,105,110,101, 0, 86,105,101,119, 68,101,112,116,104,
-115, 0, 83,109,111,111,116,104, 86,105,101,119, 83,116,111,114,101, 0,119,109, 84,105,109,101,114, 0, 86,105,101,119, 51, 68,
- 0, 83,112, 97, 99,101, 76,105,110,107, 0, 86,105,101,119, 50, 68, 0, 83,112, 97, 99,101, 73,110,102,111, 0, 83,112, 97, 99,
-101, 66,117,116,115, 0, 83,112, 97, 99,101, 79,111,112,115, 0, 84,114,101,101, 83,116,111,114,101, 0, 84,114,101,101, 83,116,
-111,114,101, 69,108,101,109, 0, 83,112, 97, 99,101, 73,112,111, 0, 98, 68,111,112,101, 83,104,101,101,116, 0, 83,112, 97, 99,
-101, 78,108, 97, 0, 83,112, 97, 99,101, 84,105,109,101, 67, 97, 99,104,101, 0, 83,112, 97, 99,101, 84,105,109,101, 0, 83,112,
- 97, 99,101, 83,101,113, 0, 70,105,108,101, 83,101,108,101, 99,116, 80, 97,114, 97,109,115, 0, 83,112, 97, 99,101, 70,105,108,
-101, 0, 70,105,108,101, 76,105,115,116, 0,119,109, 79,112,101,114, 97,116,111,114, 0, 70,105,108,101, 76, 97,121,111,117,116,
- 0, 83,112, 97, 99,101, 73,109, 97,103,101, 0, 83, 99,111,112,101,115, 0, 72,105,115,116,111,103,114, 97,109, 0, 83,112, 97,
- 99,101, 84,101,120,116, 0, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 83, 99,114,105,112,116, 0, 83,112, 97, 99,101, 78,
-111,100,101, 0, 83,112, 97, 99,101, 76,111,103,105, 99, 0, 67,111,110,115,111,108,101, 76,105,110,101, 0, 83,112, 97, 99,101,
- 67,111,110,115,111,108,101, 0, 83,112, 97, 99,101, 85,115,101,114, 80,114,101,102, 0, 83,112, 97, 99,101, 67,108,105,112, 0,
- 77,111,118,105,101, 67,108,105,112, 83, 99,111,112,101,115, 0,117,105, 70,111,110,116, 0,117,105, 70,111,110,116, 83,116,121,
-108,101, 0,117,105, 83,116,121,108,101, 0,117,105, 87,105,100,103,101,116, 67,111,108,111,114,115, 0,117,105, 87,105,100,103,
-101,116, 83,116, 97,116,101, 67,111,108,111,114,115, 0,117,105, 80, 97,110,101,108, 67,111,108,111,114,115, 0, 84,104,101,109,
-101, 85, 73, 0, 84,104,101,109,101, 83,112, 97, 99,101, 0, 84,104,101,109,101, 87,105,114,101, 67,111,108,111,114, 0, 98, 84,
-104,101,109,101, 0, 98, 65,100,100,111,110, 0, 83,111,108,105,100, 76,105,103,104,116, 0, 85,115,101,114, 68,101,102, 0, 98,
- 83, 99,114,101,101,110, 0, 83, 99,114, 86,101,114,116, 0, 83, 99,114, 69,100,103,101, 0, 80, 97,110,101,108, 0, 80, 97,110,
-101,108, 84,121,112,101, 0,117,105, 76, 97,121,111,117,116, 0, 83, 99,114, 65,114,101, 97, 0, 83,112, 97, 99,101, 84,121,112,
-101, 0, 65, 82,101,103,105,111,110, 0, 65, 82,101,103,105,111,110, 84,121,112,101, 0, 70,105,108,101, 71,108,111, 98, 97,108,
- 0, 83,116,114,105,112, 69,108,101,109, 0, 83,116,114,105,112, 67,114,111,112, 0, 83,116,114,105,112, 84,114, 97,110,115,102,
-111,114,109, 0, 83,116,114,105,112, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 83,116,114,105,112, 80,114,111,120,121,
- 0, 83,116,114,105,112, 0, 83,101,113,117,101,110, 99,101, 0, 98, 83,111,117,110,100, 0, 77,101,116, 97, 83,116, 97, 99,107,
- 0, 87,105,112,101, 86, 97,114,115, 0, 71,108,111,119, 86, 97,114,115, 0, 84,114, 97,110,115,102,111,114,109, 86, 97,114,115,
- 0, 83,111,108,105,100, 67,111,108,111,114, 86, 97,114,115, 0, 83,112,101,101,100, 67,111,110,116,114,111,108, 86, 97,114,115,
- 0, 69,102,102,101, 99,116, 0, 66,117,105,108,100, 69,102,102, 0, 80, 97,114,116, 69,102,102, 0, 80, 97,114,116,105, 99,108,
-101, 0, 87, 97,118,101, 69,102,102, 0, 98, 80,114,111,112,101,114,116,121, 0, 98, 78,101, 97,114, 83,101,110,115,111,114, 0,
- 98, 77,111,117,115,101, 83,101,110,115,111,114, 0, 98, 84,111,117, 99,104, 83,101,110,115,111,114, 0, 98, 75,101,121, 98,111,
- 97,114,100, 83,101,110,115,111,114, 0, 98, 80,114,111,112,101,114,116,121, 83,101,110,115,111,114, 0, 98, 65, 99,116,117, 97,
-116,111,114, 83,101,110,115,111,114, 0, 98, 68,101,108, 97,121, 83,101,110,115,111,114, 0, 98, 67,111,108,108,105,115,105,111,
-110, 83,101,110,115,111,114, 0, 98, 82, 97,100, 97,114, 83,101,110,115,111,114, 0, 98, 82, 97,110,100,111,109, 83,101,110,115,
-111,114, 0, 98, 82, 97,121, 83,101,110,115,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 83,101,110,115,111,114, 0, 98, 77,
-101,115,115, 97,103,101, 83,101,110,115,111,114, 0, 98, 83,101,110,115,111,114, 0, 98, 67,111,110,116,114,111,108,108,101,114,
- 0, 98, 74,111,121,115,116,105, 99,107, 83,101,110,115,111,114, 0, 98, 69,120,112,114,101,115,115,105,111,110, 67,111,110,116,
- 0, 98, 80,121,116,104,111,110, 67,111,110,116, 0, 98, 65, 99,116,117, 97,116,111,114, 0, 98, 65,100,100, 79, 98,106,101, 99,
-116, 65, 99,116,117, 97,116,111,114, 0, 98, 65, 99,116,105,111,110, 65, 99,116,117, 97,116,111,114, 0, 83,111,117,110,100, 51,
- 68, 0, 98, 83,111,117,110,100, 65, 99,116,117, 97,116,111,114, 0, 98, 69,100,105,116, 79, 98,106,101, 99,116, 65, 99,116,117,
- 97,116,111,114, 0, 98, 83, 99,101,110,101, 65, 99,116,117, 97,116,111,114, 0, 98, 80,114,111,112,101,114,116,121, 65, 99,116,
-117, 97,116,111,114, 0, 98, 79, 98,106,101, 99,116, 65, 99,116,117, 97,116,111,114, 0, 98, 73,112,111, 65, 99,116,117, 97,116,
-111,114, 0, 98, 67, 97,109,101,114, 97, 65, 99,116,117, 97,116,111,114, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 65, 99,
-116,117, 97,116,111,114, 0, 98, 71,114,111,117,112, 65, 99,116,117, 97,116,111,114, 0, 98, 82, 97,110,100,111,109, 65, 99,116,
-117, 97,116,111,114, 0, 98, 77,101,115,115, 97,103,101, 65, 99,116,117, 97,116,111,114, 0, 98, 71, 97,109,101, 65, 99,116,117,
- 97,116,111,114, 0, 98, 86,105,115,105, 98,105,108,105,116,121, 65, 99,116,117, 97,116,111,114, 0, 98, 84,119,111, 68, 70,105,
-108,116,101,114, 65, 99,116,117, 97,116,111,114, 0, 98, 80, 97,114,101,110,116, 65, 99,116,117, 97,116,111,114, 0, 98, 83,116,
- 97,116,101, 65, 99,116,117, 97,116,111,114, 0, 98, 65,114,109, 97,116,117,114,101, 65, 99,116,117, 97,116,111,114, 0, 98, 83,
-116,101,101,114,105,110,103, 65, 99,116,117, 97,116,111,114, 0, 71,114,111,117,112, 79, 98,106,101, 99,116, 0, 66,111,110,101,
- 0, 98, 65,114,109, 97,116,117,114,101, 0, 98, 77,111,116,105,111,110, 80, 97,116,104, 86,101,114,116, 0, 98, 80,111,115,101,
- 67,104, 97,110,110,101,108, 0, 98, 73, 75, 80, 97,114, 97,109, 0, 98, 73,116, 97,115, 99, 0, 98, 65, 99,116,105,111,110, 71,
-114,111,117,112, 0, 83,112, 97, 99,101, 65, 99,116,105,111,110, 0, 98, 65, 99,116,105,111,110, 67,104, 97,110,110,101,108, 0,
- 98, 67,111,110,115,116,114, 97,105,110,116, 67,104, 97,110,110,101,108, 0, 98, 67,111,110,115,116,114, 97,105,110,116, 0, 98,
- 67,111,110,115,116,114, 97,105,110,116, 84, 97,114,103,101,116, 0, 98, 80,121,116,104,111,110, 67,111,110,115,116,114, 97,105,
-110,116, 0, 98, 75,105,110,101,109, 97,116,105, 99, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,112,108,105,110,101, 73,
- 75, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97, 99,107, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98,
- 82,111,116, 97,116,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 97,116,101, 76,105,107,101,
- 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,107,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98,
- 83, 97,109,101, 86,111,108,117,109,101, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 84,114, 97,110,115, 76,105,107,101, 67,
-111,110,115,116,114, 97,105,110,116, 0, 98, 77,105,110, 77, 97,120, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,
-105,111,110, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99,107, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,
-110,116, 0, 98, 68, 97,109,112, 84,114, 97, 99,107, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 80,
- 97,116,104, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,116,114,101,116, 99,104, 84,111, 67,111,110,115,116,114, 97,105,
-110,116, 0, 98, 82,105,103,105,100, 66,111,100,121, 74,111,105,110,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,108,
- 97,109,112, 84,111, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 67,104,105,108,100, 79,102, 67,111,110,115,116,114, 97,105,
-110,116, 0, 98, 84,114, 97,110,115,102,111,114,109, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 80,105,118,111,116, 67,111,
-110,115,116,114, 97,105,110,116, 0, 98, 76,111, 99, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 82,111,
-116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,105,122,101, 76,105,109,105,116, 67,111,110,115,116,
-114, 97,105,110,116, 0, 98, 68,105,115,116, 76,105,109,105,116, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 83,104,114,105,
-110,107,119,114, 97,112, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 70,111,108,108,111,119, 84,114, 97, 99,107, 67,111,110,
-115,116,114, 97,105,110,116, 0, 98, 67, 97,109,101,114, 97, 83,111,108,118,101,114, 67,111,110,115,116,114, 97,105,110,116, 0,
- 98, 79, 98,106,101, 99,116, 83,111,108,118,101,114, 67,111,110,115,116,114, 97,105,110,116, 0, 98, 65, 99,116,105,111,110, 77,
-111,100,105,102,105,101,114, 0, 98, 65, 99,116,105,111,110, 83,116,114,105,112, 0, 98, 78,111,100,101, 83,116, 97, 99,107, 0,
- 98, 78,111,100,101, 83,111, 99,107,101,116, 0, 98, 78,111,100,101, 76,105,110,107, 0, 98, 78,111,100,101, 80,114,101,118,105,
-101,119, 0, 98, 78,111,100,101, 0,117,105, 66,108,111, 99,107, 0, 98, 78,111,100,101, 84,121,112,101, 0, 98, 78,111,100,101,
- 84,114,101,101, 69,120,101, 99, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 73,110,116, 0, 98, 78,111,
-100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 70,108,111, 97,116, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,
-108,117,101, 66,111,111,108,101, 97,110, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 86,101, 99,116,111,
-114, 0, 98, 78,111,100,101, 83,111, 99,107,101,116, 86, 97,108,117,101, 82, 71, 66, 65, 0, 78,111,100,101, 70,114, 97,109,101,
- 0, 78,111,100,101, 73,109, 97,103,101, 65,110,105,109, 0, 67,111,108,111,114, 67,111,114,114,101, 99,116,105,111,110, 68, 97,
-116, 97, 0, 78,111,100,101, 67,111,108,111,114, 67,111,114,114,101, 99,116,105,111,110, 0, 78,111,100,101, 66,111,107,101,104,
- 73,109, 97,103,101, 0, 78,111,100,101, 66,111,120, 77, 97,115,107, 0, 78,111,100,101, 69,108,108,105,112,115,101, 77, 97,115,
-107, 0, 78,111,100,101, 73,109, 97,103,101, 76, 97,121,101,114, 0, 78,111,100,101, 66,108,117,114, 68, 97,116, 97, 0, 78,111,
-100,101, 68, 66,108,117,114, 68, 97,116, 97, 0, 78,111,100,101, 66,105,108, 97,116,101,114, 97,108, 66,108,117,114, 68, 97,116,
- 97, 0, 78,111,100,101, 72,117,101, 83, 97,116, 0, 78,111,100,101, 73,109, 97,103,101, 70,105,108,101, 0, 78,111,100,101, 73,
-109, 97,103,101, 77,117,108,116,105, 70,105,108,101, 0, 78,111,100,101, 73,109, 97,103,101, 77,117,108,116,105, 70,105,108,101,
- 83,111, 99,107,101,116, 0, 78,111,100,101, 67,104,114,111,109, 97, 0, 78,111,100,101, 84,119,111, 88, 89,115, 0, 78,111,100,
-101, 84,119,111, 70,108,111, 97,116,115, 0, 78,111,100,101, 71,101,111,109,101,116,114,121, 0, 78,111,100,101, 86,101,114,116,
-101,120, 67,111,108, 0, 78,111,100,101, 68,101,102,111, 99,117,115, 0, 78,111,100,101, 83, 99,114,105,112,116, 68,105, 99,116,
- 0, 78,111,100,101, 71,108, 97,114,101, 0, 78,111,100,101, 84,111,110,101,109, 97,112, 0, 78,111,100,101, 76,101,110,115, 68,
-105,115,116, 0, 78,111,100,101, 67,111,108,111,114, 66, 97,108, 97,110, 99,101, 0, 78,111,100,101, 67,111,108,111,114,115,112,
-105,108,108, 0, 78,111,100,101, 84,101,120, 66, 97,115,101, 0, 78,111,100,101, 84,101,120, 83,107,121, 0, 78,111,100,101, 84,
-101,120, 73,109, 97,103,101, 0, 78,111,100,101, 84,101,120, 67,104,101, 99,107,101,114, 0, 78,111,100,101, 84,101,120, 69,110,
-118,105,114,111,110,109,101,110,116, 0, 78,111,100,101, 84,101,120, 71,114, 97,100,105,101,110,116, 0, 78,111,100,101, 84,101,
-120, 78,111,105,115,101, 0, 78,111,100,101, 84,101,120, 86,111,114,111,110,111,105, 0, 78,111,100,101, 84,101,120, 77,117,115,
-103,114, 97,118,101, 0, 78,111,100,101, 84,101,120, 87, 97,118,101, 0, 78,111,100,101, 84,101,120, 77, 97,103,105, 99, 0, 78,
-111,100,101, 83,104, 97,100,101,114, 65,116,116,114,105, 98,117,116,101, 0, 84,101,120, 78,111,100,101, 79,117,116,112,117,116,
- 0, 67,117,114,118,101, 77, 97,112, 80,111,105,110,116, 0, 67,117,114,118,101, 77, 97,112, 0, 66,114,117,115,104, 67,108,111,
-110,101, 0, 67,117,115,116,111,109, 68, 97,116, 97, 76, 97,121,101,114, 0, 67,117,115,116,111,109, 68, 97,116, 97, 69,120,116,
-101,114,110, 97,108, 0, 72, 97,105,114, 75,101,121, 0, 80, 97,114,116,105, 99,108,101, 75,101,121, 0, 66,111,105,100, 80, 97,
-114,116,105, 99,108,101, 0, 66,111,105,100, 68, 97,116, 97, 0, 80, 97,114,116,105, 99,108,101, 83,112,114,105,110,103, 0, 67,
-104,105,108,100, 80, 97,114,116,105, 99,108,101, 0, 80, 97,114,116,105, 99,108,101, 84, 97,114,103,101,116, 0, 80, 97,114,116,
-105, 99,108,101, 68,117,112,108,105, 87,101,105,103,104,116, 0, 80, 97,114,116,105, 99,108,101, 68, 97,116, 97, 0, 83, 80, 72,
- 70,108,117,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 83,101,116,116,105,110,103,115, 0, 66,
-111,105,100, 83,101,116,116,105,110,103,115, 0, 80, 97,114,116,105, 99,108,101, 67, 97, 99,104,101, 75,101,121, 0, 75, 68, 84,
-114,101,101, 0, 80, 97,114,116,105, 99,108,101, 68,114, 97,119, 68, 97,116, 97, 0, 76,105,110,107, 78,111,100,101, 0, 98, 71,
- 80, 68,115,112,111,105,110,116, 0, 98, 71, 80, 68,115,116,114,111,107,101, 0, 98, 71, 80, 68,102,114, 97,109,101, 0, 98, 71,
- 80, 68,108, 97,121,101,114, 0, 82,101,112,111,114,116, 76,105,115,116, 0,119,109, 87,105,110,100,111,119, 77, 97,110, 97,103,
-101,114, 0,119,109, 87,105,110,100,111,119, 0,119,109, 75,101,121, 67,111,110,102,105,103, 0,119,109, 69,118,101,110,116, 0,
-119,109, 83,117, 98, 87,105,110,100,111,119, 0,119,109, 71,101,115,116,117,114,101, 0,119,109, 75,101,121, 77, 97,112, 73,116,
-101,109, 0, 80,111,105,110,116,101,114, 82, 78, 65, 0,119,109, 75,101,121, 77, 97,112, 68,105,102,102, 73,116,101,109, 0,119,
-109, 75,101,121, 77, 97,112, 0,119,109, 79,112,101,114, 97,116,111,114, 84,121,112,101, 0, 70, 77,111,100,105,102,105,101,114,
- 0, 70, 77,111,100, 95, 71,101,110,101,114, 97,116,111,114, 0, 70, 77,111,100, 95, 70,117,110, 99,116,105,111,110, 71,101,110,
-101,114, 97,116,111,114, 0, 70, 67, 77, 95, 69,110,118,101,108,111,112,101, 68, 97,116, 97, 0, 70, 77,111,100, 95, 69,110,118,
-101,108,111,112,101, 0, 70, 77,111,100, 95, 67,121, 99,108,101,115, 0, 70, 77,111,100, 95, 80,121,116,104,111,110, 0, 70, 77,
-111,100, 95, 76,105,109,105,116,115, 0, 70, 77,111,100, 95, 78,111,105,115,101, 0, 70, 77,111,100, 95, 83,116,101,112,112,101,
-100, 0, 68,114,105,118,101,114, 84, 97,114,103,101,116, 0, 68,114,105,118,101,114, 86, 97,114, 0, 67,104, 97,110,110,101,108,
- 68,114,105,118,101,114, 0, 70, 80,111,105,110,116, 0, 70, 67,117,114,118,101, 0, 65,110,105,109, 77, 97,112, 80, 97,105,114,
- 0, 65,110,105,109, 77, 97,112,112,101,114, 0, 78,108, 97, 83,116,114,105,112, 0, 78,108, 97, 84,114, 97, 99,107, 0, 75, 83,
- 95, 80, 97,116,104, 0, 75,101,121,105,110,103, 83,101,116, 0, 65,110,105,109, 79,118,101,114,114,105,100,101, 0, 73,100, 65,
-100,116, 84,101,109,112,108, 97,116,101, 0, 66,111,105,100, 82,117,108,101, 0, 66,111,105,100, 82,117,108,101, 71,111, 97,108,
- 65,118,111,105,100, 0, 66,111,105,100, 82,117,108,101, 65,118,111,105,100, 67,111,108,108,105,115,105,111,110, 0, 66,111,105,
-100, 82,117,108,101, 70,111,108,108,111,119, 76,101, 97,100,101,114, 0, 66,111,105,100, 82,117,108,101, 65,118,101,114, 97,103,
-101, 83,112,101,101,100, 0, 66,111,105,100, 82,117,108,101, 70,105,103,104,116, 0, 66,111,105,100, 83,116, 97,116,101, 0, 70,
- 76, 85, 73, 68, 95, 51, 68, 0, 87, 84, 85, 82, 66, 85, 76, 69, 78, 67, 69, 0, 83,112,101, 97,107,101,114, 0, 77,111,118,105,
-101, 67,108,105,112, 80,114,111,120,121, 0, 77,111,118,105,101, 67,108,105,112, 67, 97, 99,104,101, 0, 77,111,118,105,101, 84,
-114, 97, 99,107,105,110,103, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 84,114, 97, 99,107, 0, 77,111,118,105,101,
- 84,114, 97, 99,107,105,110,103, 77, 97,114,107,101,114, 0, 77,111,118,105,101, 82,101, 99,111,110,115,116,114,117, 99,116,101,
-100, 67, 97,109,101,114, 97, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 67, 97,109,101,114, 97, 0, 77,111,118,105,
-101, 84,114, 97, 99,107,105,110,103, 83,101,116,116,105,110,103,115, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 83,
-116, 97, 98,105,108,105,122, 97,116,105,111,110, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 82,101, 99,111,110,115,
-116,114,117, 99,116,105,111,110, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 79, 98,106,101, 99,116, 0, 77,111,118,
-105,101, 84,114, 97, 99,107,105,110,103, 83,116, 97,116,115, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 68,111,112,
-101,115,104,101,101,116, 67,104, 97,110,110,101,108, 0, 77,111,118,105,101, 84,114, 97, 99,107,105,110,103, 68,111,112,101,115,
-104,101,101,116, 0, 68,121,110, 97,109,105, 99, 80, 97,105,110,116, 83,117,114,102, 97, 99,101, 0, 80, 97,105,110,116, 83,117,
-114,102, 97, 99,101, 68, 97,116, 97, 0, 0, 0, 84, 76, 69, 78, 1, 0, 1, 0, 2, 0, 2, 0, 4, 0, 4, 0, 4, 0, 4, 0,
- 8, 0, 8, 0, 8, 0, 0, 0, 16, 0, 24, 0, 16, 0, 4, 0, 8, 0, 12, 0, 16, 0, 16, 0, 32, 0,128, 0,120, 0,144, 8,
- 0, 0, 40, 0,144, 0,128, 5,112, 0, 36, 0, 56, 0,160, 0,192, 0,224, 0, 96, 0, 40, 0, 48, 0,224, 0, 16, 0,200, 0,
- 40, 0,232, 11, 48, 5, 0, 0, 0, 0, 0, 0, 56, 1,160, 1, 24, 0, 8, 3,200, 0, 0, 0,104, 0, 64, 1, 56, 4, 80, 0,
- 32, 1,144, 0, 56, 3, 16, 2, 88, 0, 16, 0,128, 3,152, 0,136, 4, 0, 0,104, 0,104, 0, 0, 1, 80, 0, 8, 0, 16, 0,
- 32, 0, 0, 0, 16, 2, 0, 0, 0, 0, 0, 0, 16, 5, 8, 0, 12, 0, 16, 0, 8, 0, 12, 0, 4, 0, 20, 0, 48, 0, 64, 0,
- 20, 0, 12, 0, 16, 0, 4, 0, 8, 0, 0, 0,184, 0,160, 1, 8, 0, 4, 0, 4, 0, 0, 1, 32, 0, 8, 0, 24, 0, 16, 0,
- 64, 0, 24, 0, 12, 0, 64, 0, 4, 0, 16, 0, 16, 0,112, 0,200, 0,136, 0,192, 0,192, 0,128, 0,192, 0,192, 0,128, 0,
-120, 0,200, 0,120, 0,144, 0, 16, 1, 56, 0,200, 0, 24, 1, 40, 1,120, 0,184, 0,200, 0, 64, 1,200, 0, 88, 1,112, 0,
-168, 0, 0, 0,152, 0, 48, 0, 40, 5,192, 0, 0, 0,152, 0, 0, 0, 0, 0,128, 0, 8, 0, 8, 0,112, 1,144, 0,152, 2,
-136, 0,192, 0,120, 0,128, 0,224, 4,208, 0,200, 0,112, 0,208, 0,144, 0, 16, 5, 0, 0, 0, 0, 48, 1,104, 1,160, 1,
-104, 1,136, 0,104, 0,112, 0,128, 0,120, 0, 16, 0, 96, 1, 88, 0, 0, 0,200, 0,216, 0,152, 0, 48, 0, 24, 0,120, 0,
-152, 0,216, 1, 0, 1,184, 0, 0, 0, 72, 0, 32, 0,176, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 12, 0, 24, 2, 40, 0,
-184, 0,152, 0, 64, 0, 72, 0, 32, 0,128, 0, 24, 0, 56, 9, 64, 0, 24, 0, 16, 0, 56, 0,184, 0, 96, 0, 32, 0, 96, 6,
- 56, 0, 16, 0,168, 0,104, 0, 32, 0, 64, 0,120, 0, 24, 0,248, 1, 32, 0, 8, 0, 24, 0, 80, 8, 0, 0, 0, 0,224, 8,
-104, 0, 8, 0,112, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1, 56, 0,144, 0, 64, 0,248, 0, 24, 1, 16, 0, 16, 0,
-240, 0,112, 0,216, 0, 24, 0,208, 0,240, 0,160, 7,104, 0, 0, 0,168, 0, 0, 0, 40, 33,128, 16, 24, 16,160, 2,168, 5,
- 64, 0, 48, 1, 72, 0, 40, 0,136, 1,104, 0, 56, 1, 56, 0, 24, 4, 32, 0,232, 0, 32, 0, 32, 0, 8, 0, 80, 3,232, 1,
- 16, 0, 48, 37, 80, 0, 56, 0,112, 32, 8, 1, 32, 0, 40, 0, 88, 1, 0, 0, 0, 0,160, 0, 0, 0, 40, 1, 0, 0, 48, 4,
- 8, 1, 16, 0, 8, 0, 44, 0, 16, 4, 72, 3, 72, 1,208, 4, 32, 0, 12, 0, 24, 0, 32, 0, 16, 0, 24, 0, 24, 0, 32, 0,
-136, 1, 0, 0, 64, 0, 96, 0, 80, 0, 8, 0, 80, 0,136, 0,200, 0, 72, 0, 8, 0,136, 0, 76, 0, 72, 0,204, 0,136, 0,
-136, 0,128, 0,136, 0, 92, 0,128, 0, 80, 0,112, 0, 16, 0,168, 0, 32, 0, 72, 0,120, 0, 24, 0,144, 0,112, 0,148, 0,
- 32, 0,128, 0, 88, 0, 88, 0,208, 0,140, 0, 4, 0, 24, 0, 16, 0, 8, 0,160, 0, 48, 0, 40, 0, 72, 1, 0, 1, 16, 0,
- 32, 2, 4, 0, 40, 0,120, 0, 72, 1,120, 0, 56, 0,120, 0,160, 0,112, 0,184, 0, 24, 0, 88, 0, 80, 0, 80, 0, 80, 0,
- 8, 0, 72, 0,104, 0,104, 0, 80, 0, 80, 0, 24, 0, 88, 0,104, 0, 16, 0,144, 0,128, 0, 88, 0, 28, 0, 28, 0, 28, 0,
- 88, 0, 24, 0,160, 0, 16, 0,152, 0, 72, 0,168, 0, 48, 0,208, 0, 56, 0, 16, 0,112, 1, 0, 0, 0, 0, 0, 0, 16, 0,
- 16, 0, 4, 0, 24, 0, 16, 0, 4, 0, 16, 0, 24, 0,104, 0, 20, 0, 24, 0, 24, 0, 8, 0, 40, 0, 28, 0, 12, 0, 12, 0,
- 32, 4, 40, 4, 64, 4, 44, 0, 24, 0, 8, 0,128, 0, 64, 0, 32, 0, 16, 0, 32, 0, 32, 0, 8, 0, 96, 0, 20, 0,200, 3,
-216, 3,208, 3,200, 3,208, 3,208, 3,200, 3,208, 3,208, 3,208, 3,208, 3, 64, 0, 64, 0, 12, 0, 56, 0, 24, 0,104, 0,
- 0, 4, 24, 0, 56, 0, 56, 0, 20, 0, 16, 0, 64, 0, 40, 0, 32, 0,192, 0, 60, 0, 16, 3,104, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 16, 0, 32, 0, 40, 0,192, 0, 40, 0, 88, 1, 0, 1,168, 0, 0, 0, 0, 0, 0, 0,184, 0, 0, 0, 32, 0,136, 0,
- 0, 0,120, 0, 24, 0, 24, 0, 16, 0, 24, 0, 8, 0, 16, 0, 24, 0, 20, 0, 20, 0, 56, 0, 24, 2, 40, 1, 16, 0,104, 0,
- 0, 1, 40, 0,208, 0,104, 0,112, 0,216, 1, 32, 0,128, 0, 56, 0, 80, 0, 64, 0,104, 0, 72, 0, 64, 0,128, 0, 0, 0,
- 0, 0,184, 0, 8, 3, 0, 0, 24, 1,192, 0, 16, 0, 72, 0, 48, 0, 64, 0, 56, 0, 24, 0,128, 0, 0, 1, 48, 0, 32, 0,
- 16, 6, 0, 0, 83, 84, 82, 67,217, 1, 0, 0, 12, 0, 2, 0, 12, 0, 0, 0, 12, 0, 1, 0, 13, 0, 3, 0, 13, 0, 0, 0,
- 13, 0, 1, 0, 11, 0, 2, 0, 14, 0, 2, 0, 11, 0, 3, 0, 11, 0, 4, 0, 15, 0, 2, 0, 2, 0, 5, 0, 2, 0, 6, 0,
- 16, 0, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0, 17, 0, 3, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 18, 0, 4, 0,
- 4, 0, 8, 0, 4, 0, 9, 0, 4, 0, 10, 0, 4, 0, 11, 0, 19, 0, 4, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0,
- 7, 0, 11, 0, 20, 0, 4, 0, 11, 0, 12, 0, 14, 0, 13, 0, 4, 0, 14, 0, 4, 0, 15, 0, 21, 0, 10, 0, 21, 0, 0, 0,
- 21, 0, 1, 0, 0, 0, 16, 0, 0, 0, 17, 0, 2, 0, 18, 0, 0, 0, 19, 0, 4, 0, 20, 0, 20, 0, 21, 0, 4, 0, 22, 0,
- 4, 0, 23, 0, 22, 0, 11, 0, 11, 0, 0, 0, 11, 0, 1, 0, 22, 0, 24, 0, 23, 0, 25, 0, 0, 0, 26, 0, 2, 0, 27, 0,
- 2, 0, 28, 0, 2, 0, 18, 0, 4, 0, 29, 0, 4, 0, 30, 0, 21, 0, 31, 0, 23, 0, 6, 0, 22, 0, 32, 0, 22, 0, 33, 0,
- 24, 0, 34, 0, 0, 0, 35, 0, 0, 0, 36, 0, 23, 0, 37, 0, 25, 0, 5, 0, 4, 0, 38, 0, 4, 0, 39, 0, 2, 0, 40, 0,
- 2, 0, 41, 0, 4, 0, 42, 0, 26, 0, 6, 0, 27, 0, 43, 0, 2, 0, 44, 0, 2, 0, 45, 0, 2, 0, 16, 0, 2, 0, 18, 0,
- 0, 0, 46, 0, 28, 0, 21, 0, 28, 0, 0, 0, 28, 0, 1, 0, 29, 0, 47, 0, 30, 0, 48, 0, 19, 0, 49, 0, 19, 0, 50, 0,
- 2, 0, 44, 0, 2, 0, 45, 0, 2, 0, 51, 0, 2, 0, 52, 0, 2, 0, 53, 0, 2, 0, 54, 0, 2, 0, 18, 0, 2, 0, 55, 0,
- 7, 0, 10, 0, 7, 0, 11, 0, 4, 0, 56, 0, 7, 0, 57, 0, 7, 0, 58, 0, 7, 0, 59, 0, 26, 0, 60, 0, 31, 0, 7, 0,
- 22, 0, 32, 0, 14, 0, 61, 0, 19, 0, 62, 0, 2, 0, 44, 0, 2, 0, 63, 0, 2, 0, 64, 0, 2, 0, 27, 0, 32, 0, 16, 0,
- 32, 0, 0, 0, 32, 0, 1, 0, 7, 0, 65, 0, 7, 0, 59, 0, 2, 0, 16, 0, 2, 0, 66, 0, 2, 0, 67, 0, 2, 0, 18, 0,
- 4, 0, 68, 0, 4, 0, 69, 0, 11, 0, 2, 0, 7, 0, 70, 0, 0, 0, 19, 0, 0, 0, 71, 0, 7, 0, 72, 0, 7, 0, 73, 0,
- 33, 0, 15, 0, 22, 0, 32, 0, 34, 0, 74, 0, 32, 0, 75, 0, 0, 0, 76, 0, 4, 0, 77, 0, 4, 0, 27, 0, 14, 0, 78, 0,
- 31, 0, 79, 0, 22, 0, 80, 0, 2, 0, 16, 0, 2, 0, 81, 0, 2, 0, 82, 0, 2, 0, 18, 0, 7, 0, 83, 0, 4, 0, 84, 0,
- 35, 0, 6, 0, 35, 0, 0, 0, 35, 0, 1, 0, 0, 0, 85, 0, 0, 0, 86, 0, 4, 0, 22, 0, 4, 0, 87, 0, 36, 0, 10, 0,
- 36, 0, 0, 0, 36, 0, 1, 0, 4, 0, 88, 0, 4, 0, 89, 0, 4, 0, 90, 0, 4, 0, 66, 0, 4, 0, 13, 0, 4, 0, 91, 0,
- 0, 0, 92, 0, 0, 0, 93, 0, 37, 0, 15, 0, 22, 0, 32, 0, 0, 0, 94, 0, 4, 0, 91, 0, 4, 0, 95, 0, 14, 0, 96, 0,
- 35, 0, 97, 0, 35, 0, 98, 0, 4, 0, 99, 0, 4, 0,100, 0, 14, 0,101, 0, 0, 0,102, 0, 4, 0,103, 0, 4, 0,104, 0,
- 11, 0,105, 0, 8, 0,106, 0, 38, 0, 3, 0, 4, 0,107, 0, 4, 0,108, 0, 11, 0, 2, 0, 39, 0, 20, 0, 22, 0, 32, 0,
- 34, 0, 74, 0, 0, 0, 16, 0, 0, 0,109, 0, 2, 0, 18, 0, 7, 0,110, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,113, 0,
- 7, 0,114, 0, 7, 0,115, 0, 7, 0,116, 0, 7, 0,117, 0, 7, 0,118, 0, 7, 0,119, 0, 7, 0,120, 0, 31, 0, 79, 0,
- 27, 0,121, 0, 0, 0,122, 0, 0, 0,123, 0, 40, 0, 14, 0, 41, 0,124, 0, 4, 0,125, 0, 4, 0,126, 0, 4, 0,127, 0,
- 4, 0,128, 0, 0, 0,129, 0, 0, 0,130, 0, 0, 0,131, 0, 0, 0, 27, 0, 2, 0,132, 0, 2, 0,133, 0, 2, 0,134, 0,
- 2, 0, 18, 0, 4, 0, 30, 0, 42, 0, 33, 0, 22, 0, 32, 0, 0, 0, 35, 0, 14, 0,135, 0, 43, 0,136, 0, 44, 0,137, 0,
- 45, 0,138, 0, 45, 0,139, 0, 2, 0,140, 0, 2, 0,141, 0, 2, 0,131, 0, 2, 0, 18, 0, 2, 0,142, 0, 2, 0, 16, 0,
- 4, 0,143, 0, 2, 0,144, 0, 2, 0,145, 0, 2, 0,146, 0, 2, 0,147, 0, 2, 0,148, 0, 2, 0,149, 0, 4, 0,150, 0,
- 4, 0,151, 0, 38, 0,152, 0, 25, 0,153, 0, 7, 0,154, 0, 4, 0,155, 0, 2, 0,156, 0, 2, 0,157, 0, 2, 0,158, 0,
- 0, 0,159, 0, 0, 0,160, 0, 7, 0,161, 0, 7, 0,162, 0, 46, 0, 65, 0, 2, 0,163, 0, 2, 0,164, 0, 2, 0,165, 0,
- 2, 0,166, 0, 27, 0,167, 0, 47, 0,168, 0, 0, 0,169, 0, 0, 0,170, 0, 0, 0,171, 0, 0, 0,172, 0, 0, 0,173, 0,
- 7, 0,174, 0, 7, 0,175, 0, 7, 0,176, 0, 2, 0,177, 0, 2, 0,178, 0, 2, 0,179, 0, 2, 0,180, 0, 2, 0,181, 0,
- 2, 0,182, 0, 0, 0,183, 0, 0, 0,123, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0,188, 0,
- 7, 0, 55, 0, 7, 0,189, 0, 7, 0,190, 0, 7, 0,191, 0, 7, 0,192, 0, 7, 0,193, 0, 7, 0,194, 0, 7, 0,195, 0,
- 7, 0,196, 0, 7, 0,197, 0, 7, 0,198, 0, 7, 0,199, 0, 7, 0,200, 0, 7, 0,201, 0, 7, 0,202, 0, 7, 0,203, 0,
- 7, 0,204, 0, 7, 0,205, 0, 7, 0,206, 0, 7, 0,207, 0, 7, 0,208, 0, 7, 0,209, 0, 7, 0,210, 0, 7, 0,211, 0,
- 7, 0,212, 0, 7, 0,213, 0, 7, 0,214, 0, 7, 0,215, 0, 7, 0,216, 0, 7, 0,217, 0, 7, 0,218, 0, 7, 0,219, 0,
- 7, 0,220, 0, 7, 0,221, 0, 7, 0,222, 0, 7, 0,223, 0, 7, 0,224, 0, 7, 0,225, 0, 48, 0, 6, 0, 7, 0,184, 0,
- 7, 0,185, 0, 7, 0,186, 0, 7, 0,226, 0, 7, 0, 65, 0, 4, 0, 62, 0, 49, 0, 5, 0, 2, 0, 18, 0, 2, 0,227, 0,
- 2, 0, 62, 0, 2, 0,228, 0, 48, 0,229, 0, 50, 0, 17, 0, 27, 0,167, 0, 42, 0,230, 0, 51, 0,231, 0, 7, 0,232, 0,
- 7, 0,233, 0, 2, 0, 16, 0, 2, 0,234, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0,235, 0, 4, 0,236, 0, 2, 0,237, 0,
- 2, 0,238, 0, 4, 0,131, 0, 4, 0,143, 0, 2, 0,239, 0, 2, 0,240, 0, 52, 0, 25, 0, 2, 0, 18, 0, 2, 0,241, 0,
- 7, 0,242, 0, 7, 0,243, 0, 2, 0,142, 0, 2, 0,244, 0, 4, 0,245, 0, 4, 0,246, 0, 27, 0,167, 0, 4, 0,247, 0,
- 2, 0,248, 0, 2, 0,249, 0, 11, 0,250, 0, 7, 0,251, 0, 7, 0,252, 0, 2, 0,253, 0, 2, 0,254, 0, 2, 0,255, 0,
- 2, 0, 0, 1, 7, 0, 1, 1, 7, 0, 2, 1, 7, 0, 3, 1, 7, 0, 4, 1, 49, 0, 5, 1, 53, 0, 6, 1, 54, 0, 13, 0,
- 4, 0, 7, 1, 4, 0, 8, 1, 2, 0, 9, 1, 2, 0, 18, 0, 2, 0, 10, 1, 2, 0, 11, 1, 27, 0,167, 0, 7, 0, 12, 1,
- 4, 0, 13, 1, 0, 0, 14, 1, 7, 0, 15, 1, 4, 0, 16, 1, 4, 0,131, 0, 55, 0, 4, 0, 27, 0,167, 0, 0, 0, 17, 1,
- 4, 0, 18, 1, 4, 0, 27, 0, 47, 0, 63, 0, 22, 0, 32, 0, 34, 0, 74, 0, 7, 0, 19, 1, 7, 0, 20, 1, 7, 0, 21, 1,
- 7, 0, 22, 1, 7, 0, 23, 1, 7, 0, 24, 1, 7, 0, 25, 1, 7, 0, 26, 1, 7, 0, 27, 1, 7, 0, 30, 0, 7, 0, 28, 1,
- 7, 0, 29, 1, 7, 0, 30, 1, 7, 0, 31, 1, 7, 0, 32, 1, 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1,
- 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1, 2, 0, 40, 1, 2, 0, 41, 1, 2, 0, 42, 1, 2, 0, 43, 1, 2, 0, 44, 1,
- 2, 0, 45, 1, 2, 0, 46, 1, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0,234, 0, 7, 0, 47, 1, 7, 0, 48, 1, 7, 0, 49, 1,
- 7, 0, 50, 1, 4, 0, 51, 1, 4, 0, 52, 1, 2, 0, 53, 1, 2, 0, 54, 1, 2, 0, 10, 1, 2, 0,129, 0, 4, 0, 22, 0,
- 4, 0,126, 0, 4, 0,127, 0, 4, 0,128, 0, 7, 0, 55, 1, 7, 0, 56, 1, 7, 0, 66, 0, 40, 0, 57, 1, 56, 0, 58, 1,
- 31, 0, 79, 0, 42, 0,230, 0, 49, 0, 5, 1, 50, 0, 59, 1, 25, 0,153, 0, 52, 0, 60, 1, 54, 0, 61, 1, 55, 0, 62, 1,
- 0, 0, 63, 1, 0, 0,123, 0, 57, 0, 13, 0, 7, 0, 64, 1, 7, 0, 65, 1, 7, 0,175, 0, 4, 0, 18, 0, 0, 0,170, 0,
- 0, 0,171, 0, 0, 0,172, 0, 0, 0,173, 0, 4, 0, 27, 0, 7, 0, 66, 1, 7, 0, 67, 1, 7, 0, 68, 1, 27, 0, 43, 0,
- 58, 0, 9, 0, 49, 0, 69, 1, 7, 0, 21, 1, 7, 0, 22, 1, 7, 0, 23, 1, 4, 0, 18, 0, 7, 0, 70, 1, 7, 0, 71, 1,
- 4, 0, 72, 1, 4, 0, 73, 1, 59, 0, 76, 0, 22, 0, 32, 0, 34, 0, 74, 0, 2, 0, 16, 0, 2, 0, 18, 0, 4, 0, 74, 1,
- 2, 0,178, 0, 2, 0, 75, 1, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,187, 0, 7, 0, 76, 1, 7, 0, 77, 1,
- 7, 0, 78, 1, 7, 0, 79, 1, 7, 0, 80, 1, 7, 0, 81, 1, 7, 0, 82, 1, 7, 0, 83, 1, 7, 0, 84, 1, 7, 0, 85, 1,
- 7, 0, 86, 1, 53, 0, 87, 1, 2, 0,241, 0, 2, 0, 30, 0, 7, 0,111, 0, 7, 0,112, 0, 7, 0, 88, 1, 7, 0, 89, 1,
- 7, 0, 90, 1, 7, 0, 91, 1, 7, 0, 92, 1, 7, 0, 93, 1, 2, 0, 94, 1, 2, 0, 95, 1, 2, 0, 96, 1, 2, 0, 97, 1,
- 0, 0, 98, 1, 0, 0, 99, 1, 2, 0,100, 1, 2, 0,101, 1, 2, 0,102, 1, 2, 0,103, 1, 2, 0,104, 1, 7, 0,105, 1,
- 7, 0,106, 1, 7, 0,107, 1, 7, 0,108, 1, 2, 0,109, 1, 2, 0,110, 1, 2, 0,111, 1, 2, 0,112, 1, 2, 0,113, 1,
- 2, 0,114, 1, 7, 0,115, 1, 7, 0,116, 1, 7, 0,117, 1, 7, 0,118, 1, 7, 0,119, 1, 7, 0,120, 1, 7, 0,121, 1,
- 7, 0,122, 1, 7, 0,123, 1, 7, 0,124, 1, 7, 0,125, 1, 7, 0,126, 1, 7, 0,127, 1, 2, 0,128, 1, 0, 0,129, 1,
- 31, 0, 79, 0, 46, 0,130, 1, 2, 0,131, 1, 2, 0, 63, 1, 0, 0,132, 1, 25, 0,153, 0, 56, 0, 58, 1, 60, 0, 18, 0,
- 7, 0,133, 1, 7, 0,134, 1, 7, 0,135, 1, 7, 0,136, 1, 7, 0,137, 1, 7, 0,138, 1, 7, 0,139, 1, 7, 0,140, 1,
- 7, 0,141, 1, 7, 0,142, 1, 2, 0,143, 1, 2, 0,144, 1, 2, 0,145, 1, 2, 0,146, 1, 7, 0,147, 1, 7, 0,148, 1,
- 7, 0,149, 1, 7, 0,150, 1, 61, 0, 4, 0, 4, 0, 18, 0, 4, 0,151, 1, 4, 0,152, 1, 4, 0, 66, 0, 62, 0,126, 0,
- 22, 0, 32, 0, 34, 0, 74, 0, 2, 0,153, 1, 2, 0, 18, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,154, 1,
- 7, 0,155, 1, 7, 0,156, 1, 7, 0,157, 1, 7, 0,158, 1, 7, 0,159, 1, 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1,
- 7, 0,163, 1, 7, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, 7, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1,
- 7, 0,171, 1, 7, 0,172, 1, 7, 0,173, 1, 60, 0,174, 1, 61, 0,175, 1, 7, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1,
- 7, 0,179, 1, 7, 0,180, 1, 7, 0,181, 1, 7, 0,182, 1, 2, 0,183, 1, 2, 0,184, 1, 2, 0,185, 1, 0, 0,186, 1,
- 0, 0,187, 1, 7, 0,188, 1, 7, 0,189, 1, 2, 0,190, 1, 2, 0,191, 1, 7, 0,192, 1, 7, 0,193, 1, 7, 0,194, 1,
- 7, 0,195, 1, 2, 0,196, 1, 2, 0,197, 1, 4, 0, 74, 1, 4, 0,198, 1, 2, 0,199, 1, 2, 0,200, 1, 2, 0,201, 1,
- 2, 0,202, 1, 7, 0,203, 1, 7, 0,204, 1, 7, 0,205, 1, 7, 0,206, 1, 7, 0,207, 1, 7, 0,208, 1, 7, 0,209, 1,
- 7, 0,210, 1, 7, 0,211, 1, 7, 0,212, 1, 0, 0,213, 1, 7, 0,214, 1, 7, 0,215, 1, 7, 0,216, 1, 4, 0,217, 1,
- 0, 0,218, 1, 0, 0,111, 1, 0, 0,219, 1, 0, 0, 63, 1, 2, 0,220, 1, 2, 0,221, 1, 2, 0,131, 1, 2, 0,222, 1,
- 2, 0,223, 1, 2, 0,224, 1, 7, 0,225, 1, 7, 0,226, 1, 7, 0,227, 1, 7, 0,228, 1, 7, 0,229, 1, 2, 0,163, 0,
- 2, 0,164, 0, 49, 0,230, 1, 49, 0,231, 1, 0, 0,232, 1, 0, 0,233, 1, 0, 0,234, 1, 0, 0,235, 1, 2, 0,236, 1,
- 2, 0,237, 1, 7, 0,238, 1, 7, 0,239, 1, 46, 0,130, 1, 56, 0, 58, 1, 31, 0, 79, 0, 63, 0,240, 1, 25, 0,153, 0,
- 7, 0,241, 1, 7, 0,242, 1, 7, 0,243, 1, 7, 0,244, 1, 7, 0,245, 1, 2, 0,246, 1, 2, 0, 30, 0, 7, 0,247, 1,
- 7, 0,248, 1, 7, 0,249, 1, 7, 0,250, 1, 7, 0,251, 1, 7, 0,252, 1, 7, 0,253, 1, 7, 0,254, 1, 7, 0,255, 1,
- 2, 0, 0, 2, 2, 0, 1, 2, 4, 0, 2, 2, 2, 0, 3, 2, 2, 0, 4, 2, 14, 0, 5, 2, 64, 0, 4, 0, 22, 0, 32, 0,
- 0, 0, 35, 0, 65, 0, 2, 0, 38, 0,152, 0, 66, 0, 20, 0, 66, 0, 0, 0, 66, 0, 1, 0, 67, 0, 6, 2, 2, 0, 16, 0,
- 2, 0, 18, 0, 2, 0, 7, 2, 2, 0, 8, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 9, 2, 7, 0, 10, 2,
- 7, 0, 11, 2, 7, 0, 12, 2, 7, 0, 13, 2, 7, 0, 14, 2, 7, 0, 15, 2, 7, 0, 22, 0, 7, 0, 16, 2, 7, 0, 17, 2,
- 68, 0, 20, 0, 22, 0, 32, 0, 34, 0, 74, 0, 67, 0, 6, 2, 14, 0, 18, 2, 14, 0, 19, 2, 14, 0, 20, 2, 31, 0, 79, 0,
- 62, 0, 21, 2, 0, 0, 18, 0, 0, 0, 22, 2, 2, 0, 23, 2, 2, 0,177, 0, 2, 0, 27, 0, 7, 0, 64, 1, 7, 0,175, 0,
- 7, 0, 65, 1, 7, 0, 24, 2, 7, 0, 25, 2, 7, 0, 26, 2, 66, 0, 27, 2, 30, 0, 11, 0, 7, 0, 28, 2, 7, 0, 29, 2,
- 7, 0, 30, 2, 7, 0,243, 0, 2, 0, 53, 0, 0, 0, 31, 2, 0, 0, 32, 2, 0, 0, 33, 2, 0, 0, 34, 2, 0, 0, 35, 2,
- 0, 0, 36, 2, 29, 0, 7, 0, 7, 0, 37, 2, 7, 0, 29, 2, 7, 0, 30, 2, 2, 0, 33, 2, 2, 0, 36, 2, 7, 0,243, 0,
- 7, 0, 27, 0, 69, 0, 21, 0, 69, 0, 0, 0, 69, 0, 1, 0, 2, 0, 16, 0, 2, 0, 38, 2, 2, 0, 36, 2, 2, 0, 18, 0,
- 2, 0, 39, 2, 2, 0, 40, 2, 2, 0, 41, 2, 2, 0, 42, 2, 2, 0, 43, 2, 2, 0, 44, 2, 2, 0, 45, 2, 2, 0, 46, 2,
- 7, 0, 47, 2, 7, 0, 48, 2, 29, 0, 47, 0, 30, 0, 48, 0, 2, 0, 49, 2, 2, 0, 50, 2, 4, 0, 51, 2, 70, 0, 5, 0,
- 2, 0, 52, 2, 2, 0, 38, 2, 0, 0, 18, 0, 0, 0, 27, 0, 2, 0, 30, 0, 71, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0,
- 7, 0, 53, 2, 7, 0, 54, 2, 72, 0, 4, 0, 14, 0, 55, 2, 73, 0, 56, 2, 4, 0, 57, 2, 0, 0, 93, 0, 74, 0, 70, 0,
- 22, 0, 32, 0, 34, 0, 74, 0, 67, 0, 6, 2, 14, 0, 58, 2, 14, 0, 19, 2, 72, 0, 59, 2, 27, 0, 60, 2, 27, 0, 61, 2,
- 27, 0, 62, 2, 31, 0, 79, 0, 75, 0, 63, 2, 33, 0, 64, 2, 62, 0, 21, 2, 14, 0, 65, 2, 7, 0, 64, 1, 7, 0,175, 0,
- 7, 0, 65, 1, 2, 0, 16, 0, 2, 0,177, 0, 2, 0, 66, 2, 2, 0, 67, 2, 7, 0, 68, 2, 7, 0, 69, 2, 4, 0, 70, 2,
- 2, 0, 27, 0, 2, 0, 23, 2, 2, 0, 18, 0, 2, 0, 71, 2, 7, 0, 72, 2, 7, 0, 73, 2, 7, 0, 74, 2, 2, 0, 41, 2,
- 2, 0, 42, 2, 2, 0, 75, 2, 2, 0, 76, 2, 4, 0, 77, 2, 11, 0, 78, 2, 2, 0, 22, 0, 2, 0, 96, 0, 2, 0, 65, 0,
- 2, 0, 79, 2, 7, 0, 80, 2, 7, 0, 81, 2, 7, 0, 82, 2, 7, 0, 83, 2, 7, 0, 84, 2, 7, 0, 85, 2, 7, 0, 86, 2,
- 7, 0, 87, 2, 7, 0, 88, 2, 7, 0, 89, 2, 0, 0, 90, 2, 76, 0, 91, 2, 77, 0, 92, 2, 0, 0, 93, 2, 64, 0, 94, 2,
- 64, 0, 95, 2, 64, 0, 96, 2, 64, 0, 97, 2, 4, 0, 98, 2, 7, 0, 83, 0, 4, 0, 99, 2, 4, 0,100, 2, 71, 0,101, 2,
- 4, 0,102, 2, 4, 0,103, 2, 70, 0,104, 2, 70, 0,105, 2, 7, 0,106, 2, 7, 0,107, 2, 78, 0, 47, 0, 22, 0, 32, 0,
- 34, 0, 74, 0, 67, 0, 6, 2, 31, 0, 79, 0, 33, 0, 64, 2, 62, 0, 21, 2, 79, 0,108, 2, 80, 0,109, 2, 81, 0,110, 2,
- 82, 0,111, 2, 83, 0,112, 2, 84, 0,113, 2, 85, 0,114, 2, 86, 0,115, 2, 87, 0,116, 2, 88, 0,117, 2, 89, 0,118, 2,
- 90, 0,119, 2, 91, 0,120, 2, 92, 0,121, 2, 78, 0,122, 2, 93, 0,123, 2, 94, 0,124, 2, 94, 0,125, 2, 94, 0,126, 2,
- 94, 0,127, 2, 94, 0,128, 2, 4, 0, 52, 0, 4, 0,129, 2, 4, 0,130, 2, 4, 0,131, 2, 4, 0,132, 2, 4, 0,133, 2,
- 4, 0,134, 2, 7, 0, 64, 1, 7, 0,175, 0, 7, 0, 65, 1, 2, 0,177, 0, 2, 0, 66, 2, 2, 0,135, 2, 2, 0, 18, 0,
- 2, 0,136, 2, 2, 0,137, 2, 0, 0,138, 2, 0, 0,139, 2, 2, 0, 23, 2, 95, 0,140, 2, 87, 0, 8, 0, 11, 0,141, 2,
- 7, 0,142, 2, 4, 0,143, 2, 0, 0, 18, 0, 0, 0,144, 2, 2, 0, 74, 1, 2, 0,145, 2, 2, 0,146, 2, 85, 0, 7, 0,
- 4, 0,147, 2, 4, 0,148, 2, 4, 0,149, 2, 4, 0,150, 2, 2, 0, 38, 2, 0, 0,151, 2, 0, 0, 18, 0, 89, 0, 5, 0,
- 4, 0,147, 2, 4, 0,148, 2, 0, 0,152, 2, 0, 0,153, 2, 2, 0, 18, 0, 96, 0, 2, 0, 4, 0,154, 2, 7, 0, 30, 2,
- 90, 0, 3, 0, 96, 0,155, 2, 4, 0,156, 2, 4, 0, 18, 0, 88, 0, 4, 0, 7, 0,157, 2, 2, 0,158, 2, 0, 0, 18, 0,
- 0, 0,153, 2, 91, 0, 4, 0, 0, 0,226, 0, 0, 0,184, 0, 0, 0,185, 0, 0, 0,186, 0, 80, 0, 5, 0, 4, 0,159, 2,
- 4, 0,133, 2, 2, 0, 38, 2, 0, 0, 18, 0, 0, 0, 27, 0, 82, 0, 2, 0, 4, 0,160, 2, 4, 0,161, 2, 81, 0, 6, 0,
- 42, 0,141, 2, 0, 0, 18, 0, 0, 0,144, 2, 2, 0, 74, 1, 2, 0,145, 2, 2, 0,146, 2, 83, 0, 2, 0, 7, 0,162, 2,
- 4, 0, 18, 0, 84, 0, 4, 0, 0, 0,184, 0, 0, 0,185, 0, 0, 0,186, 0, 0, 0,226, 0, 92, 0, 1, 0, 7, 0,163, 2,
- 79, 0, 2, 0, 4, 0, 4, 2, 4, 0, 16, 0, 86, 0, 7, 0, 7, 0,142, 2, 42, 0,141, 2, 0, 0, 18, 0, 0, 0,144, 2,
- 2, 0, 74, 1, 2, 0,145, 2, 2, 0,146, 2, 97, 0, 1, 0, 7, 0,164, 2, 98, 0, 1, 0, 4, 0,165, 2, 99, 0, 1, 0,
- 0, 0,166, 2,100, 0, 1, 0, 7, 0,142, 2,101, 0, 1, 0, 7, 0,162, 2,102, 0, 4, 0, 4, 0,167, 2, 4, 0,168, 2,
- 7, 0,169, 2, 4, 0,170, 2,103, 0, 4, 0, 7, 0,226, 0, 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0,104, 0, 1, 0,
-103, 0,143, 2,105, 0, 5, 0, 4, 0,171, 2, 4, 0,172, 2, 0, 0, 18, 0, 0, 0, 38, 2, 0, 0,173, 2,106, 0, 2, 0,
- 4, 0,174, 2, 4, 0,172, 2,107, 0, 10, 0,107, 0, 0, 0,107, 0, 1, 0,105, 0,175, 2,104, 0,176, 2,106, 0,177, 2,
- 4, 0, 52, 0, 4, 0,130, 2, 4, 0,129, 2, 4, 0, 27, 0, 88, 0,178, 2, 95, 0, 14, 0, 14, 0,179, 2, 88, 0,178, 2,
- 0, 0,180, 2, 0, 0,181, 2, 0, 0,182, 2, 0, 0,183, 2, 0, 0,184, 2, 0, 0,185, 2, 0, 0,186, 2, 0, 0, 18, 0,
- 94, 0,124, 2, 94, 0,126, 2, 2, 0,187, 2, 0, 0,188, 2,108, 0, 1, 0, 4, 0,165, 2,109, 0, 3, 0, 7, 0, 2, 0,
- 4, 0,168, 2, 4, 0, 27, 0,110, 0, 2, 0, 7, 0,189, 2, 4, 0, 18, 0,111, 0, 9, 0,111, 0, 0, 0,111, 0, 1, 0,
- 4, 0, 16, 0, 4, 0, 74, 1, 4, 0,190, 2, 4, 0, 27, 0, 0, 0, 19, 0, 41, 0,124, 0, 0, 0,191, 2,112, 0, 6, 0,
-111, 0,192, 2, 47, 0,193, 2, 27, 0,194, 2, 0, 0,195, 2, 4, 0,196, 2, 4, 0,197, 2,113, 0, 7, 0,111, 0,192, 2,
- 2, 0,198, 2, 2, 0,179, 2, 2, 0,199, 2, 2, 0, 91, 0, 11, 0,200, 2, 11, 0,201, 2,114, 0, 5, 0,111, 0,192, 2,
- 27, 0,167, 0, 0, 0, 19, 0, 7, 0,202, 2, 0, 0, 93, 0,115, 0, 5, 0,111, 0,192, 2, 27, 0,167, 0, 0, 0, 19, 0,
- 2, 0,203, 2, 0, 0,204, 2,116, 0, 5, 0,111, 0,192, 2, 7, 0, 89, 0, 7, 0,205, 2, 4, 0,206, 2, 4, 0,207, 2,
-117, 0, 5, 0,111, 0,192, 2, 27, 0,208, 2, 0, 0, 71, 0, 4, 0, 74, 1, 4, 0, 18, 0,118, 0, 13, 0,111, 0,192, 2,
- 27, 0,209, 2, 27, 0,210, 2, 27, 0,211, 2, 27, 0,212, 2, 7, 0,213, 2, 7, 0,214, 2, 7, 0,205, 2, 7, 0,215, 2,
- 4, 0,216, 2, 4, 0,217, 2, 4, 0, 91, 0, 4, 0,218, 2,119, 0, 5, 0,111, 0,192, 2, 2, 0,219, 2, 2, 0, 18, 0,
- 7, 0,220, 2, 27, 0,221, 2,120, 0, 3, 0,111, 0,192, 2, 7, 0,222, 2, 4, 0, 91, 0,121, 0, 10, 0,111, 0,192, 2,
- 7, 0,223, 2, 4, 0,224, 2, 4, 0, 27, 0, 2, 0, 91, 0, 2, 0,225, 2, 2, 0,226, 2, 2, 0,227, 2, 7, 0,228, 2,
- 0, 0,229, 2,122, 0, 3, 0,111, 0,192, 2, 7, 0, 27, 0, 4, 0, 16, 0,123, 0, 6, 0,111, 0,192, 2,124, 0,230, 2,
-125, 0,231, 2,126, 0,232, 2, 7, 0,233, 2, 4, 0, 16, 0,127, 0, 11, 0,111, 0,192, 2, 47, 0,193, 2, 27, 0,194, 2,
- 0, 0,195, 2, 4, 0,196, 2, 4, 0,197, 2, 7, 0,202, 2, 4, 0,234, 2, 0, 0,229, 2, 7, 0,235, 2, 4, 0, 27, 0,
-128, 0, 12, 0,111, 0,192, 2, 27, 0,236, 2, 42, 0,237, 2, 4, 0, 91, 0, 4, 0,238, 2, 7, 0,239, 2, 7, 0,240, 2,
- 7, 0,241, 2, 7, 0,242, 2, 0, 0,195, 2, 4, 0,196, 2, 4, 0, 27, 0,129, 0, 3, 0,111, 0,192, 2, 7, 0,243, 2,
- 4, 0,244, 2,130, 0, 5, 0,111, 0,192, 2, 7, 0,245, 2, 0, 0,229, 2, 2, 0, 18, 0, 2, 0,246, 2,131, 0, 8, 0,
-111, 0,192, 2, 27, 0,167, 0, 7, 0,245, 2, 7, 0,243, 0, 7, 0,107, 0, 0, 0,229, 2, 2, 0, 18, 0, 2, 0, 16, 0,
-132, 0, 21, 0,111, 0,192, 2, 47, 0,193, 2, 27, 0,194, 2, 0, 0,195, 2, 4, 0,196, 2, 4, 0,197, 2, 27, 0,247, 2,
- 0, 0,229, 2, 2, 0, 18, 0, 2, 0, 27, 0, 7, 0,248, 2, 7, 0,249, 2, 7, 0,250, 2, 7, 0, 72, 2, 7, 0,251, 2,
- 7, 0,252, 2, 7, 0,253, 2, 7, 0,254, 2, 7, 0,255, 2, 7, 0, 0, 3, 7, 0, 66, 0,133, 0, 7, 0,111, 0,192, 2,
- 2, 0, 1, 3, 2, 0, 2, 3, 4, 0, 30, 0, 27, 0,167, 0, 7, 0, 3, 3, 0, 0,229, 2,134, 0, 10, 0,111, 0,192, 2,
- 27, 0,167, 0, 0, 0, 4, 3, 7, 0, 5, 3, 7, 0, 6, 3, 7, 0,254, 2, 4, 0, 7, 3, 4, 0, 8, 3, 7, 0, 9, 3,
- 0, 0, 19, 0,135, 0, 1, 0,111, 0,192, 2,136, 0, 7, 0,111, 0,192, 2, 41, 0,124, 0,137, 0, 10, 3,138, 0, 11, 3,
-139, 0, 12, 3,140, 0, 13, 3, 14, 0, 14, 3,141, 0, 13, 0,111, 0,192, 2, 88, 0, 15, 3, 88, 0, 16, 3, 88, 0, 17, 3,
- 88, 0, 18, 3, 88, 0, 19, 3, 88, 0, 20, 3, 85, 0, 21, 3, 4, 0, 22, 3, 4, 0, 23, 3, 7, 0, 24, 3, 7, 0, 25, 3,
-142, 0, 26, 3,143, 0, 7, 0,111, 0,192, 2, 88, 0, 15, 3, 88, 0, 27, 3,144, 0, 28, 3,145, 0, 26, 3, 4, 0, 29, 3,
- 4, 0, 22, 3,146, 0, 4, 0,111, 0,192, 2, 27, 0,167, 0, 4, 0, 30, 3, 4, 0, 27, 0,147, 0, 2, 0, 4, 0, 31, 3,
- 7, 0, 30, 2,148, 0, 2, 0, 4, 0,127, 0, 4, 0, 32, 3,149, 0, 24, 0,111, 0,192, 2, 27, 0,167, 0, 0, 0,229, 2,
- 2, 0, 33, 3, 2, 0, 18, 0, 2, 0, 74, 1, 2, 0, 27, 0,147, 0, 34, 3, 4, 0, 35, 3, 7, 0, 36, 3, 4, 0, 52, 0,
- 4, 0, 37, 3,148, 0, 38, 3,147, 0, 39, 3, 4, 0, 40, 3, 4, 0, 41, 3, 4, 0, 42, 3, 4, 0, 32, 3, 7, 0, 43, 3,
- 7, 0, 44, 3, 7, 0, 45, 3, 7, 0, 46, 3, 7, 0, 47, 3, 11, 0, 48, 3,150, 0, 8, 0,111, 0,192, 2,151, 0, 49, 3,
-144, 0, 28, 3, 4, 0, 50, 3, 4, 0, 51, 3, 4, 0, 52, 3, 2, 0, 18, 0, 2, 0, 55, 0,152, 0, 8, 0,111, 0,192, 2,
- 27, 0, 43, 0, 2, 0,247, 0, 2, 0, 18, 0, 2, 0,219, 2, 2, 0, 55, 0, 7, 0, 53, 3, 7, 0, 54, 3,153, 0, 6, 0,
-111, 0,192, 2, 4, 0, 55, 3, 2, 0, 18, 0, 2, 0, 56, 3, 7, 0, 57, 3, 0, 0,169, 0,154, 0, 8, 0,111, 0,192, 2,
- 0, 0, 58, 3, 0, 0, 59, 3, 0, 0,185, 2, 0, 0, 60, 3, 0, 0, 61, 3, 0, 0, 91, 0, 0, 0,173, 2,155, 0, 3, 0,
-111, 0,192, 2,156, 0, 62, 3,140, 0, 13, 3,157, 0, 10, 0,111, 0,192, 2, 27, 0, 63, 3, 27, 0, 64, 3, 0, 0, 65, 3,
- 7, 0, 66, 3, 2, 0, 67, 3, 2, 0, 68, 3, 0, 0, 69, 3, 0, 0, 70, 3, 0, 0,204, 2,158, 0, 9, 0,111, 0,192, 2,
- 27, 0, 71, 3, 0, 0, 65, 3, 7, 0, 72, 3, 7, 0, 73, 3, 0, 0, 74, 1, 0, 0,219, 2, 0, 0, 74, 3, 0, 0, 27, 0,
-159, 0, 1, 0,111, 0,192, 2,160, 0, 11, 0,111, 0,192, 2, 0, 0,229, 2, 7, 0,127, 0, 7, 0, 75, 3, 7, 0, 76, 3,
- 7, 0, 77, 3, 7, 0, 78, 3, 7, 0, 79, 3, 4, 0, 18, 0, 2, 0, 80, 3, 2, 0, 81, 3,161, 0, 9, 0,111, 0,192, 2,
- 27, 0, 82, 3, 4, 0, 83, 3, 4, 0, 84, 3, 4, 0, 85, 3, 7, 0, 86, 3, 7, 0, 87, 3, 2, 0,219, 2, 2, 0, 18, 0,
-162, 0, 29, 0,111, 0,192, 2,163, 0, 88, 3,164, 0, 89, 3, 4, 0, 90, 3, 4, 0, 91, 3, 7, 0, 92, 3, 7, 0,253, 2,
- 7, 0, 93, 3, 7, 0,238, 0, 7, 0, 94, 3, 7, 0, 95, 3, 7, 0, 96, 3, 7, 0, 97, 3, 7, 0, 98, 3, 7, 0,233, 2,
- 4, 0, 99, 3, 4, 0,100, 3, 0, 0,101, 3, 0, 0,102, 3, 0, 0,103, 3, 0, 0,104, 3, 0, 0, 18, 0, 0, 0,105, 3,
- 2, 0,106, 3, 2, 0,107, 3, 4, 0,207, 2, 7, 0,107, 0, 7, 0,108, 3, 4, 0, 27, 0,165, 0, 15, 0,111, 0,192, 2,
- 47, 0,193, 2, 27, 0,194, 2, 0, 0,195, 2, 4, 0,196, 2, 4, 0,197, 2, 27, 0,109, 3, 27, 0,110, 3, 53, 0, 87, 1,
- 0, 0,229, 2, 7, 0,202, 2, 7, 0,111, 3, 0, 0, 18, 0, 0, 0,241, 0, 0, 0,204, 2,166, 0, 16, 0,111, 0,192, 2,
- 0, 0,229, 2, 2, 0,112, 3, 2, 0,241, 0, 7, 0,113, 3, 53, 0,114, 3, 7, 0,115, 3, 7, 0,116, 3, 7, 0,117, 3,
- 0, 0,118, 3, 4, 0,119, 3, 47, 0,120, 3, 27, 0,121, 3, 4, 0,122, 3, 0, 0,123, 3, 4, 0,124, 3,167, 0, 16, 0,
-111, 0,192, 2, 0, 0,125, 3, 0, 0,126, 3, 7, 0,127, 3, 7, 0,128, 3, 0, 0,129, 3, 0, 0,130, 3, 0, 0,131, 3,
- 7, 0,117, 3, 0, 0,118, 3, 4, 0,119, 3, 47, 0,120, 3, 27, 0,121, 3, 4, 0,122, 3, 0, 0,123, 3, 4, 0,124, 3,
-168, 0, 16, 0,111, 0,192, 2, 0, 0,229, 2, 4, 0,132, 3, 4, 0,133, 3, 27, 0,134, 3, 7, 0,117, 3, 0, 0,118, 3,
- 4, 0,119, 3, 47, 0,120, 3, 27, 0,121, 3, 4, 0,122, 3, 0, 0,123, 3, 7, 0,135, 3, 7, 0,136, 3, 2, 0,241, 0,
- 2, 0,137, 3,169, 0, 5, 0,111, 0,192, 2,170, 0,138, 3,171, 0,139, 3, 4, 0, 16, 0, 4, 0, 27, 0,172, 0, 8, 0,
-111, 0,192, 2, 7, 0,140, 3, 7, 0,141, 3, 7, 0,142, 3, 0, 0,238, 0, 0, 0, 18, 0, 0, 0, 74, 1, 0, 0, 27, 0,
-173, 0, 5, 0,111, 0,192, 2, 7, 0,143, 3, 0, 0, 18, 0, 0, 0,144, 3, 0, 0,173, 2,174, 0, 3, 0,175, 0,145, 3,
- 4, 0, 57, 2, 0, 0, 93, 0,175, 0, 29, 0, 22, 0, 32, 0, 34, 0, 74, 0, 2, 0, 39, 2, 2, 0, 40, 2, 2, 0,146, 3,
- 2, 0, 18, 0, 2, 0,147, 3, 2, 0,148, 3, 2, 0,149, 3, 2, 0, 30, 0, 0, 0,150, 3, 0, 0,151, 3, 0, 0,152, 3,
- 0, 0,237, 1, 4, 0, 27, 0, 7, 0,153, 3, 7, 0,154, 3, 7, 0,155, 3, 7, 0,156, 3, 7, 0,157, 3, 7, 0,158, 3,
- 29, 0,159, 3, 31, 0, 79, 0, 33, 0, 64, 2, 90, 0,119, 2, 0, 0, 71, 0, 7, 0,160, 3, 7, 0,161, 3,174, 0,162, 3,
-176, 0, 5, 0,176, 0, 0, 0,176, 0, 1, 0, 0, 0, 19, 0, 0, 0, 18, 0, 0, 0,123, 0, 67, 0, 3, 0, 7, 0,163, 3,
- 4, 0, 18, 0, 4, 0, 27, 0, 27, 0,132, 0, 22, 0, 32, 0, 34, 0, 74, 0,177, 0,164, 3, 2, 0, 16, 0, 2, 0,165, 3,
- 4, 0,166, 3, 4, 0,167, 3, 4, 0,168, 3, 0, 0,169, 3, 27, 0, 37, 0, 27, 0,170, 3, 27, 0,171, 3, 27, 0,172, 3,
- 27, 0,173, 3, 31, 0, 79, 0, 67, 0, 6, 2,178, 0,174, 3,178, 0,175, 3,179, 0,176, 3, 11, 0, 2, 0,180, 0,177, 3,
-181, 0,178, 3,182, 0,179, 3, 14, 0,180, 3, 14, 0,181, 3, 14, 0, 19, 2, 14, 0,182, 3, 14, 0,183, 3, 4, 0, 74, 1,
- 4, 0,184, 3, 62, 0, 21, 2, 0, 0,185, 3, 4, 0, 23, 2, 4, 0,186, 3, 7, 0, 64, 1, 7, 0,187, 3, 7, 0,188, 3,
- 7, 0,175, 0, 7, 0,189, 3, 7, 0,190, 3, 7, 0, 65, 1, 7, 0,191, 3, 7, 0, 9, 2, 7, 0,192, 3, 7, 0,193, 3,
- 7, 0,194, 3, 7, 0,195, 3, 7, 0,196, 3, 7, 0,197, 3, 7, 0, 5, 3, 7, 0,198, 3, 7, 0,232, 0, 7, 0,199, 3,
- 4, 0,200, 3, 4, 0,201, 3, 2, 0, 18, 0, 2, 0,202, 3, 2, 0,203, 3, 2, 0,204, 3, 2, 0,205, 3, 2, 0,206, 3,
- 2, 0,207, 3, 2, 0,208, 3, 2, 0,209, 3, 0, 0,210, 3, 0, 0,211, 3, 4, 0,212, 3, 4, 0,213, 3, 4, 0,214, 3,
- 4, 0,215, 3, 7, 0,216, 3, 7, 0, 83, 0, 7, 0,217, 3, 7, 0,218, 3, 7, 0,219, 3, 7, 0,220, 3, 7, 0,221, 3,
- 7, 0,219, 0, 7, 0,222, 3, 7, 0,223, 3, 7, 0,224, 3, 7, 0,225, 3, 7, 0,226, 3, 7, 0,227, 3, 7, 0,228, 3,
- 7, 0,229, 3, 0, 0,230, 3, 2, 0,231, 3, 0, 0,232, 3, 0, 0,233, 3, 0, 0,234, 3, 0, 0,235, 3, 0, 0,109, 0,
- 0, 0,236, 3, 7, 0,237, 3, 7, 0,238, 3, 14, 0,239, 3, 14, 0,240, 3, 14, 0,241, 3, 14, 0,242, 3, 7, 0,243, 3,
- 2, 0, 4, 2, 2, 0,244, 3, 7, 0,143, 2, 4, 0,245, 3, 4, 0,246, 3,183, 0,247, 3, 2, 0,248, 3, 2, 0,239, 0,
- 7, 0,249, 3, 14, 0,250, 3, 14, 0,251, 3, 14, 0,252, 3, 14, 0,253, 3,184, 0, 60, 1,185, 0,254, 3, 63, 0,255, 3,
- 0, 0, 0, 4, 0, 0, 1, 4, 2, 0, 57, 2, 7, 0,135, 2,156, 0, 2, 4,144, 0, 3, 4,144, 0, 4, 4, 10, 0, 5, 4,
- 10, 0, 6, 4, 4, 0, 7, 4, 4, 0, 8, 4, 14, 0, 9, 4, 14, 0, 10, 4, 14, 0, 11, 4, 7, 0, 12, 4,186, 0, 14, 0,
-186, 0, 0, 0,186, 0, 1, 0, 27, 0, 37, 0, 7, 0, 5, 3, 7, 0, 66, 1, 7, 0, 6, 3, 7, 0,254, 2, 0, 0, 19, 0,
- 4, 0, 7, 3, 4, 0, 8, 3, 4, 0, 13, 4, 2, 0, 16, 0, 2, 0, 14, 4, 7, 0, 9, 3,187, 0, 12, 0,187, 0, 0, 0,
-187, 0, 1, 0, 27, 0, 43, 0, 4, 0, 15, 4, 4, 0, 4, 2, 7, 0, 66, 1, 7, 0, 16, 4, 7, 0, 17, 4, 7, 0,162, 2,
- 2, 0, 16, 0, 0, 0, 18, 4, 0, 0, 19, 4,184, 0, 40, 0, 4, 0, 18, 0, 2, 0, 20, 4, 2, 0, 21, 4, 2, 0,254, 2,
- 2, 0, 22, 4, 2, 0, 23, 4, 2, 0, 24, 4, 2, 0, 25, 4, 2, 0, 26, 4, 7, 0, 27, 4, 7, 0, 28, 4, 7, 0, 29, 4,
- 7, 0, 30, 4, 7, 0, 31, 4, 7, 0, 32, 4, 7, 0, 33, 4, 7, 0, 34, 4, 7, 0, 35, 4, 7, 0, 36, 4, 7, 0, 37, 4,
- 7, 0, 38, 4, 7, 0, 39, 4, 7, 0, 40, 4, 7, 0, 41, 4, 7, 0, 42, 4, 7, 0, 43, 4, 7, 0, 44, 4, 7, 0, 45, 4,
- 7, 0, 46, 4, 7, 0, 47, 4, 7, 0, 48, 4, 7, 0, 49, 4, 7, 0, 50, 4, 7, 0, 51, 4, 7, 0, 52, 4, 7, 0, 53, 4,
- 47, 0,168, 0,188, 0, 54, 4, 7, 0, 55, 4, 4, 0,207, 2,189, 0, 5, 0, 63, 0,240, 1, 7, 0, 56, 4, 7, 0, 57, 4,
- 2, 0, 18, 0, 2, 0, 58, 4,190, 0, 5, 0,190, 0, 0, 0,190, 0, 1, 0, 4, 0, 16, 0, 4, 0, 59, 4, 11, 0, 2, 0,
-191, 0, 9, 0,191, 0, 0, 0,191, 0, 1, 0, 4, 0, 60, 4, 4, 0, 61, 4, 4, 0, 62, 4, 4, 0, 18, 0, 11, 0, 63, 4,
- 11, 0, 64, 4, 14, 0, 65, 4,140, 0, 23, 0,140, 0, 0, 0,140, 0, 1, 0, 4, 0, 18, 0, 4, 0, 66, 4, 4, 0, 67, 4,
- 4, 0, 68, 4, 4, 0, 69, 4, 4, 0, 70, 4, 4, 0, 71, 4, 4, 0, 72, 4, 4, 0, 27, 0, 4, 0, 61, 4, 4, 0, 4, 2,
- 2, 0, 73, 4, 2, 0, 55, 0, 0, 0, 19, 0, 0, 0, 74, 4, 0, 0, 75, 4, 0, 0, 76, 4, 0, 0, 77, 4, 14, 0, 78, 4,
-192, 0, 79, 4, 11, 0, 80, 4,193, 0, 1, 0, 7, 0, 37, 2,183, 0, 30, 0, 4, 0, 18, 0, 7, 0, 81, 4, 7, 0, 82, 4,
- 7, 0, 83, 4, 4, 0, 84, 4, 4, 0, 85, 4, 4, 0, 86, 4, 4, 0, 87, 4, 7, 0, 88, 4, 7, 0, 89, 4, 7, 0, 90, 4,
- 7, 0, 91, 4, 7, 0, 92, 4, 7, 0, 93, 4, 7, 0, 94, 4, 7, 0, 95, 4, 7, 0, 96, 4, 7, 0, 97, 4, 7, 0, 98, 4,
- 7, 0, 99, 4, 7, 0,100, 4, 7, 0,101, 4, 7, 0,102, 4, 7, 0,103, 4, 7, 0,104, 4, 7, 0,105, 4, 4, 0,106, 4,
- 4, 0,107, 4, 7, 0,108, 4, 7, 0,222, 3,185, 0, 54, 0, 4, 0, 61, 4, 4, 0,109, 4,194, 0,110, 4,195, 0,111, 4,
- 0, 0, 27, 0, 0, 0,112, 4, 2, 0,113, 4, 7, 0,114, 4, 0, 0,115, 4, 7, 0,116, 4, 7, 0,117, 4, 7, 0,118, 4,
- 7, 0,119, 4, 7, 0,120, 4, 7, 0,121, 4, 7, 0,122, 4, 7, 0,123, 4, 7, 0,124, 4, 2, 0,125, 4, 0, 0,126, 4,
- 2, 0,127, 4, 7, 0,128, 4, 7, 0,129, 4, 0, 0,130, 4, 4, 0,128, 0, 4, 0,131, 4, 4, 0,132, 4, 2, 0,133, 4,
- 2, 0,134, 4,193, 0,135, 4, 4, 0,136, 4, 4, 0, 81, 0, 7, 0,137, 4, 7, 0,138, 4, 7, 0,139, 4, 7, 0,140, 4,
- 2, 0,141, 4, 2, 0,142, 4, 2, 0,143, 4, 2, 0,144, 4, 2, 0,145, 4, 2, 0,146, 4, 2, 0,147, 4, 2, 0,148, 4,
-196, 0,149, 4, 7, 0,150, 4, 7, 0,151, 4,140, 0,152, 4, 14, 0, 14, 3,189, 0,153, 4, 7, 0,154, 4, 7, 0,155, 4,
- 7, 0,156, 4, 4, 0,157, 4,197, 0, 1, 0, 7, 0,158, 4,156, 0, 52, 0,155, 0,159, 4, 2, 0, 16, 0, 2, 0,160, 4,
- 2, 0,161, 4, 2, 0,162, 4, 7, 0,163, 4, 2, 0,164, 4, 2, 0,165, 4, 7, 0,166, 4, 2, 0,167, 4, 2, 0,168, 4,
- 7, 0,169, 4, 7, 0,170, 4, 7, 0,171, 4, 4, 0,172, 4, 4, 0,173, 4, 4, 0,174, 4, 4, 0, 27, 0, 7, 0,175, 4,
- 4, 0,176, 4, 7, 0,177, 4, 7, 0,178, 4, 7, 0,179, 4, 78, 0,180, 4, 78, 0,181, 4, 0, 0,182, 4, 7, 0,183, 4,
- 7, 0,184, 4, 31, 0, 79, 0, 2, 0,185, 4, 0, 0,186, 4, 0, 0,187, 4, 7, 0,188, 4, 4, 0,189, 4, 7, 0,190, 4,
- 7, 0,191, 4, 4, 0,192, 4, 4, 0, 18, 0, 7, 0,193, 4, 7, 0,194, 4, 7, 0,195, 4,197, 0,196, 4, 4, 0, 52, 0,
- 7, 0,197, 4, 7, 0,198, 4, 7, 0,199, 4, 7, 0,200, 4, 7, 0,201, 4, 7, 0,202, 4, 7, 0,203, 4, 4, 0,204, 4,
- 7, 0,205, 4,198, 0, 78, 0, 22, 0, 32, 0, 34, 0, 74, 0, 2, 0,178, 0, 2, 0, 75, 1, 2, 0,111, 1, 2, 0,206, 4,
- 7, 0,207, 4, 7, 0,208, 4, 7, 0,209, 4, 7, 0,210, 4, 7, 0,211, 4, 7, 0,212, 4, 7, 0,160, 1, 7, 0,162, 1,
- 7, 0,161, 1, 7, 0, 30, 0, 4, 0,213, 4, 7, 0,214, 4, 7, 0,215, 4, 7, 0,216, 4, 7, 0,217, 4, 7, 0,218, 4,
- 7, 0,219, 4, 7, 0,220, 4, 2, 0,221, 4, 2, 0, 74, 1, 2, 0,222, 4, 2, 0,223, 4, 2, 0,224, 4, 2, 0,225, 4,
- 2, 0,226, 4, 2, 0,227, 4, 7, 0,228, 4, 7, 0,229, 4, 7, 0,230, 4, 7, 0,231, 4, 7, 0,232, 4, 7, 0,233, 4,
- 7, 0,234, 4, 7, 0,235, 4, 7, 0,236, 4, 7, 0,237, 4, 7, 0,238, 4, 7, 0,239, 4, 2, 0,240, 4, 2, 0,241, 4,
- 2, 0,242, 4, 2, 0,243, 4, 7, 0,244, 4, 7, 0,245, 4, 7, 0,246, 4, 7, 0,247, 4, 2, 0,248, 4, 2, 0,249, 4,
- 2, 0,250, 4, 2, 0,251, 4, 7, 0,252, 4, 7, 0,253, 4, 7, 0,254, 4, 7, 0,255, 4, 7, 0, 0, 5, 7, 0, 1, 5,
- 7, 0, 2, 5, 2, 0, 3, 5, 2, 0, 4, 5, 2, 0, 5, 5, 2, 0, 6, 5, 2, 0, 7, 5, 2, 0, 18, 0, 7, 0, 8, 5,
- 7, 0, 9, 5, 31, 0, 79, 0, 46, 0,130, 1, 2, 0,131, 1, 2, 0, 63, 1, 2, 0,173, 2, 25, 0,153, 0, 56, 0, 58, 1,
-199, 0, 8, 0,199, 0, 0, 0,199, 0, 1, 0, 4, 0,200, 3, 4, 0, 10, 5, 4, 0, 18, 0, 2, 0, 11, 5, 2, 0, 12, 5,
- 27, 0,167, 0,200, 0, 13, 0, 11, 0, 13, 5, 11, 0, 14, 5, 4, 0, 15, 5, 4, 0, 16, 5, 4, 0, 17, 5, 4, 0, 18, 5,
- 4, 0, 19, 5, 4, 0, 20, 5, 4, 0, 21, 5, 4, 0, 22, 5, 4, 0, 23, 5, 4, 0, 27, 0, 0, 0, 24, 5,201, 0, 5, 0,
- 11, 0, 25, 5, 11, 0, 26, 5, 4, 0, 27, 5, 4, 0, 30, 0, 0, 0, 28, 5,202, 0, 17, 0, 4, 0, 29, 5, 4, 0, 30, 5,
- 4, 0, 31, 5, 4, 0, 32, 5, 4, 0, 33, 5, 4, 0, 34, 5, 4, 0, 35, 5, 4, 0, 36, 5, 4, 0, 37, 5, 4, 0, 38, 5,
- 4, 0, 39, 5, 4, 0, 40, 5, 2, 0, 41, 5, 2, 0, 42, 5, 4, 0, 43, 5, 4, 0, 44, 5, 4, 0, 66, 0,203, 0, 17, 0,
- 4, 0, 16, 0, 4, 0, 31, 5, 4, 0, 45, 5, 4, 0, 46, 5, 4, 0, 47, 5, 4, 0, 48, 5, 4, 0, 49, 5, 4, 0, 50, 5,
- 7, 0, 51, 5, 4, 0, 52, 5, 4, 0, 91, 0, 4, 0, 53, 5, 4, 0, 54, 5, 4, 0, 55, 5, 4, 0, 56, 5, 4, 0, 57, 5,
- 21, 0, 31, 0,204, 0, 9, 0, 4, 0, 58, 5, 7, 0, 59, 5, 7, 0, 60, 5, 7, 0, 61, 5, 4, 0, 62, 5, 2, 0, 18, 0,
- 2, 0, 27, 0, 7, 0, 83, 4, 7, 0, 30, 0,205, 0, 13, 0,205, 0, 0, 0,205, 0, 1, 0, 0, 0, 19, 0, 62, 0, 63, 5,
- 63, 0, 64, 5, 4, 0,200, 3, 4, 0, 65, 5, 4, 0, 66, 5, 4, 0, 67, 5, 4, 0, 68, 5, 4, 0, 69, 5, 4, 0, 70, 5,
- 4, 0, 27, 0,206, 0, 13, 0, 0, 0, 71, 5, 0, 0,238, 0, 0, 0, 72, 5, 0, 0, 18, 0, 0, 0, 73, 5, 0, 0, 74, 5,
- 0, 0, 75, 5, 0, 0, 76, 5, 2, 0, 77, 5, 2, 0, 78, 5, 7, 0, 79, 5, 0, 0, 80, 5, 0, 0,123, 0,207, 0,106, 0,
-206, 0, 81, 5,200, 0, 82, 5,201, 0, 83, 5,202, 0, 84, 5,203, 0, 85, 5, 4, 0, 29, 3, 4, 0,128, 0, 4, 0,131, 4,
- 7, 0, 86, 5, 4, 0, 87, 5, 4, 0, 88, 5, 4, 0, 89, 5, 4, 0, 90, 5, 2, 0, 18, 0, 2, 0, 91, 5, 7, 0, 92, 5,
- 7, 0, 93, 5, 7, 0, 94, 5, 7, 0, 95, 5, 7, 0, 96, 5, 2, 0, 97, 5, 2, 0, 98, 5, 2, 0, 99, 5, 2, 0,100, 5,
- 2, 0,238, 0, 2, 0,101, 5, 4, 0,102, 5, 2, 0,103, 5, 2, 0,104, 5, 2, 0, 97, 1, 2, 0,107, 0, 2, 0,105, 5,
- 2, 0,106, 5, 2, 0,107, 5, 2, 0,108, 5, 2, 0,109, 5, 2, 0, 72, 5, 2, 0, 71, 5, 2, 0,110, 5, 2, 0, 73, 5,
- 2, 0,111, 5, 4, 0,112, 5, 4, 0, 74, 1, 4, 0,113, 5, 2, 0,114, 5, 2, 0, 66, 0, 2, 0,115, 5, 2, 0,116, 5,
- 2, 0,117, 5, 2, 0,118, 5, 2, 0,119, 5, 2, 0,120, 5, 19, 0,121, 5, 19, 0,122, 5, 18, 0,123, 5, 14, 0,124, 5,
- 2, 0,125, 5, 2, 0,126, 5, 7, 0,127, 5, 7, 0,128, 5, 7, 0,129, 5, 7, 0,130, 5, 4, 0,131, 5, 7, 0,132, 5,
- 7, 0,133, 5, 7, 0,134, 5, 7, 0,135, 5, 2, 0,136, 5, 2, 0,137, 5, 2, 0,138, 5, 2, 0,139, 5, 2, 0,140, 5,
- 2, 0,141, 5, 7, 0,142, 5, 7, 0,143, 5, 7, 0,144, 5, 0, 0,145, 5, 4, 0,146, 5, 2, 0,147, 5, 2, 0,237, 1,
- 0, 0,148, 5, 7, 0,149, 5, 7, 0,150, 5, 0, 0,151, 5, 0, 0,152, 5, 0, 0,153, 5, 0, 0,154, 5, 4, 0,155, 5,
- 2, 0,156, 5, 2, 0,157, 5, 7, 0,158, 5, 7, 0,159, 5, 2, 0,160, 5, 2, 0,161, 5, 7, 0,162, 5, 2, 0,163, 5,
- 2, 0,164, 5, 4, 0,165, 5, 2, 0,166, 5, 2, 0,167, 5, 2, 0,168, 5, 2, 0,169, 5, 7, 0,170, 5, 7, 0, 30, 0,
- 37, 0,171, 5, 0, 0,172, 5,208, 0, 9, 0,208, 0, 0, 0,208, 0, 1, 0, 0, 0,173, 5, 2, 0,174, 5, 2, 0,175, 5,
- 2, 0,176, 5, 2, 0, 66, 0, 7, 0,177, 5, 7, 0, 30, 0,209, 0, 7, 0, 2, 0,224, 2, 2, 0, 74, 1, 2, 0, 87, 3,
- 2, 0,178, 5, 7, 0,179, 5, 7, 0, 30, 0, 37, 0,180, 5,210, 0, 5, 0, 7, 0,181, 5, 0, 0, 16, 0, 0, 0, 66, 0,
- 0, 0, 30, 0, 0, 0,237, 1,211, 0, 15, 0, 7, 0,182, 5, 7, 0,183, 5, 7, 0,184, 5, 7, 0,185, 5, 7, 0,186, 5,
- 7, 0,187, 5, 7, 0,188, 5, 7, 0,189, 5, 7, 0,190, 5, 7, 0,191, 5, 4, 0,192, 5, 7, 0,193, 5, 7, 0,194, 5,
- 2, 0, 66, 0, 2, 0, 30, 0,212, 0, 36, 0,210, 0,195, 5, 2, 0,196, 5, 2, 0, 98, 5, 2, 0, 99, 5, 2, 0,100, 5,
- 2, 0,238, 0, 2, 0,101, 5, 2, 0,197, 5, 2, 0,198, 5, 2, 0,199, 5, 2, 0,200, 5,209, 0,201, 5, 2, 0,202, 5,
- 2, 0,103, 5, 7, 0,203, 5,211, 0,204, 5, 7, 0,219, 4, 7, 0,220, 4, 4, 0, 18, 0, 2, 0, 74, 1, 2, 0,205, 5,
- 2, 0,222, 4, 2, 0,223, 4, 2, 0,206, 5, 2, 0, 27, 0, 2, 0,224, 4, 2, 0,225, 4, 2, 0,226, 4, 2, 0,227, 4,
- 2, 0,207, 5, 2, 0, 66, 0, 7, 0,208, 5, 7, 0,209, 5, 7, 0,210, 5, 7, 0,211, 5, 7, 0, 30, 0,213, 0, 6, 0,
-213, 0, 0, 0,213, 0, 1, 0, 4, 0, 60, 4, 0, 0, 19, 0, 4, 0, 18, 0, 27, 0,212, 5,214, 0, 6, 0,215, 0,139, 3,
- 11, 0,213, 5, 0, 0,214, 5, 4, 0, 91, 0, 4, 0,215, 5, 4, 0, 27, 0,216, 0, 8, 0,214, 0,216, 5, 2, 0, 18, 0,
- 2, 0, 27, 0, 2, 0,217, 5, 2, 0,218, 5, 2, 0,219, 5, 4, 0, 66, 0, 11, 0,220, 5,217, 0, 6, 0, 2, 0,107, 0,
- 2, 0, 66, 4, 2, 0,221, 5, 2, 0,218, 2, 4, 0, 18, 0, 7, 0,202, 2,218, 0, 14, 0, 2, 0, 18, 0, 2, 0,222, 5,
- 2, 0,223, 5, 2, 0,224, 5,217, 0,225, 5, 11, 0,220, 5, 7, 0,226, 5, 7, 0, 55, 0, 4, 0,227, 5, 4, 0,228, 5,
- 4, 0,229, 5, 4, 0,230, 5, 41, 0,124, 0, 27, 0,167, 0,219, 0, 14, 0,214, 0,216, 5, 4, 0, 91, 0, 4, 0,231, 5,
- 7, 0,232, 5, 7, 0,233, 5, 7, 0,234, 5, 4, 0,235, 5, 4, 0,236, 5, 7, 0,237, 5, 7, 0,238, 5, 4, 0,239, 5,
- 7, 0,240, 5, 7, 0,241, 5, 4, 0, 27, 0,220, 0, 1, 0,214, 0,216, 5,221, 0, 7, 0,214, 0,216, 5, 2, 0, 18, 0,
- 2, 0, 27, 0, 4, 0,227, 0, 4, 0,242, 5, 90, 0,243, 5, 11, 0,220, 5,222, 0, 5, 0,222, 0, 0, 0,222, 0, 1, 0,
- 0, 0, 19, 0, 7, 0,244, 5, 4, 0, 27, 0,223, 0, 6, 0, 4, 0,107, 0, 7, 0,245, 5, 7, 0,168, 1, 7, 0, 30, 2,
- 4, 0, 18, 0, 4, 0, 27, 0,224, 0, 85, 0,221, 0,246, 5,221, 0,247, 5,219, 0,164, 3,220, 0,248, 5, 7, 0,249, 5,
- 2, 0,250, 5, 2, 0,237, 1, 7, 0,251, 5, 7, 0,252, 5, 2, 0, 66, 4, 2, 0,253, 5, 7, 0,254, 5, 7, 0,255, 5,
- 7, 0, 0, 6, 2, 0, 1, 6, 2, 0,227, 5, 2, 0, 2, 6, 2, 0, 3, 6, 2, 0, 4, 6, 2, 0, 5, 6, 7, 0, 6, 6,
- 7, 0, 7, 6, 7, 0, 8, 6, 2, 0, 9, 6, 2, 0, 10, 6, 2, 0, 11, 6, 2, 0, 12, 6, 2, 0, 13, 6, 2, 0, 14, 6,
- 2, 0, 15, 6, 2, 0, 16, 6,216, 0, 17, 6,218, 0, 18, 6, 7, 0, 19, 6, 7, 0, 20, 6, 7, 0, 21, 6, 2, 0, 22, 6,
- 2, 0, 23, 6, 0, 0, 24, 6, 0, 0, 25, 6, 2, 0, 26, 6, 7, 0, 27, 6, 7, 0, 28, 6, 7, 0, 29, 6, 7, 0, 30, 6,
- 7, 0, 31, 6, 7, 0, 32, 6, 7, 0, 33, 6, 7, 0, 34, 6, 7, 0, 35, 6, 7, 0, 36, 6, 2, 0, 37, 6, 0, 0, 38, 6,
- 0, 0, 39, 6, 0, 0, 40, 6, 0, 0, 41, 6, 27, 0, 42, 6, 0, 0, 43, 6, 0, 0, 44, 6, 0, 0, 45, 6, 0, 0, 46, 6,
- 0, 0, 47, 6, 0, 0, 48, 6, 0, 0, 49, 6, 0, 0, 50, 6, 0, 0, 51, 6, 0, 0, 52, 6, 2, 0, 53, 6, 2, 0, 54, 6,
- 2, 0, 55, 6, 2, 0, 56, 6, 0, 0, 57, 6, 0, 0, 58, 6, 0, 0, 59, 6, 0, 0, 60, 6, 4, 0, 61, 6, 4, 0, 62, 6,
- 4, 0, 63, 6, 4, 0, 64, 6, 2, 0, 65, 6, 2, 0, 66, 0, 4, 0, 66, 6, 7, 0, 67, 6, 7, 0, 68, 6,223, 0, 69, 6,
-225, 0, 8, 0, 4, 0, 70, 6, 4, 0, 71, 6, 4, 0, 72, 6, 4, 0, 73, 6, 4, 0, 74, 6, 4, 0, 75, 6, 4, 0, 52, 0,
- 4, 0,130, 2,226, 0, 4, 0, 7, 0, 76, 6, 0, 0, 77, 6, 0, 0, 78, 6, 2, 0, 18, 0,227, 0, 4, 0, 7, 0, 79, 6,
- 4, 0, 18, 0, 4, 0, 80, 6, 4, 0, 55, 0, 41, 0, 46, 0, 22, 0, 32, 0, 34, 0, 74, 0, 27, 0,212, 5,198, 0, 81, 6,
- 41, 0, 82, 6, 14, 0, 83, 6,199, 0, 84, 6, 27, 0, 85, 6, 7, 0, 86, 6, 7, 0, 87, 6, 7, 0, 88, 6, 7, 0, 89, 6,
- 4, 0,200, 3, 4, 0, 90, 6, 4, 0, 91, 6, 2, 0, 18, 0, 2, 0, 63, 1, 56, 0, 58, 1,228, 0, 92, 6,224, 0, 93, 6,
-229, 0, 94, 6,207, 0,184, 0,204, 0, 95, 6, 14, 0,101, 0, 14, 0, 96, 6, 11, 0, 97, 6, 11, 0, 98, 6, 11, 0, 99, 6,
- 11, 0,100, 6, 11, 0,101, 6,230, 0,102, 6, 2, 0,103, 6, 2, 0,104, 6, 2, 0,239, 0, 2, 0,201, 3, 4, 0,211, 3,
- 4, 0,105, 6, 14, 0,106, 6,210, 0,195, 5,212, 0,107, 6,226, 0,108, 6,180, 0,177, 3,227, 0,109, 6,231, 0,110, 6,
- 10, 0, 6, 4, 10, 0,111, 6,232, 0, 14, 0,232, 0, 0, 0,232, 0, 1, 0, 42, 0,230, 0, 40, 0, 57, 1,231, 0,110, 6,
-233, 0,112, 6, 7, 0, 87, 2, 7, 0, 88, 2, 7, 0,107, 0, 7, 0,113, 6, 2, 0,114, 6, 2, 0, 18, 0, 2, 0,142, 0,
- 2, 0, 27, 0,234, 0, 39, 0, 7, 0,115, 6, 7, 0,116, 6, 7, 0,117, 6, 7, 0,118, 6, 7, 0,119, 6, 7, 0,120, 6,
- 7, 0,121, 6, 7, 0,122, 6, 7, 0,123, 6, 67, 0,124, 6,180, 0,177, 3,234, 0,125, 6,235, 0,126, 6,236, 0,127, 6,
-237, 0,128, 6,238, 0,129, 6,239, 0,130, 6, 7, 0,131, 6, 7, 0,132, 6, 7, 0, 81, 1, 7, 0,133, 6, 7, 0,134, 6,
- 7, 0,135, 6, 7, 0,136, 6, 7, 0,174, 0, 7, 0,137, 6, 0, 0,138, 6, 0, 0,139, 6, 0, 0,114, 6, 0, 0,140, 6,
- 2, 0,141, 6, 2, 0,142, 6, 7, 0,143, 6, 2, 0,144, 6, 2, 0,145, 6, 7, 0,146, 6, 7, 0,147, 6, 7, 0,148, 6,
- 7, 0,149, 6,240, 0, 51, 0,241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6, 7, 0,152, 6, 2, 0,153, 6,
- 7, 0,132, 6, 7, 0, 81, 1, 7, 0,154, 6, 2, 0,155, 6, 0, 0,204, 2, 4, 0,156, 6, 2, 0,139, 6, 2, 0,114, 6,
- 27, 0,212, 5, 27, 0,157, 6, 14, 0,158, 6,232, 0,159, 6,240, 0,125, 6, 0, 0,160, 6, 4, 0,200, 3, 4, 0, 90, 6,
- 2, 0,161, 6, 2, 0,162, 6, 2, 0,163, 6, 2, 0,164, 6, 2, 0, 18, 0, 2, 0, 22, 2, 7, 0,113, 0, 7, 0,165, 6,
- 7, 0,166, 6, 7, 0,167, 6, 7, 0,174, 0, 7, 0, 86, 6, 2, 0,168, 6, 2, 0,169, 6, 2, 0,170, 6, 0, 0,171, 6,
- 0, 0,172, 6, 0, 0,173, 6, 0, 0,174, 6, 0, 0,175, 6, 14, 0,176, 6, 14, 0,177, 6, 14, 0,178, 6, 2, 0,179, 6,
- 2, 0,144, 2, 2, 0,180, 6, 0, 0,181, 6, 11, 0,182, 6,180, 0,177, 3,242, 0, 24, 0, 19, 0,227, 0, 19, 0, 62, 0,
- 18, 0,183, 6, 18, 0,184, 6, 18, 0,185, 6, 7, 0,186, 6, 7, 0,187, 6, 7, 0,188, 6, 7, 0,189, 6, 2, 0,190, 6,
- 2, 0,191, 6, 2, 0,192, 6, 2, 0,193, 6, 2, 0,194, 6, 2, 0, 18, 0, 2, 0,195, 6, 2, 0,196, 6, 2, 0,197, 6,
- 2, 0,198, 6, 2, 0,199, 6, 2, 0,164, 6, 7, 0,200, 6, 4, 0,201, 6, 4, 0,202, 6,241, 0, 6, 0,241, 0, 0, 0,
-241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6, 7, 0,152, 6, 2, 0,153, 6,243, 0, 8, 0,241, 0, 0, 0,241, 0, 1, 0,
- 14, 0,150, 6, 4, 0,151, 6, 7, 0,152, 6, 2, 0,153, 6, 0, 0,203, 6, 0, 0,123, 0,244, 0, 21, 0,241, 0, 0, 0,
-241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6, 7, 0,152, 6, 2, 0,153, 6,242, 0,204, 6, 2, 0,205, 6, 2, 0,206, 6,
- 2, 0,207, 6, 2, 0,208, 6, 2, 0,195, 6, 2, 0,209, 6, 2, 0,210, 6, 0, 0, 18, 0, 0, 0, 27, 0, 11, 0, 63, 2,
- 4, 0,211, 6, 4, 0,212, 6, 22, 0,213, 6, 11, 0,214, 6,245, 0, 15, 0,241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6,
- 4, 0,151, 6, 7, 0,152, 6, 2, 0,153, 6,242, 0,204, 6, 14, 0,215, 6,246, 0,216, 6, 0, 0,217, 6,247, 0,218, 6,
- 2, 0, 18, 0, 2, 0,219, 6, 2, 0,220, 6, 2, 0,221, 6,248, 0, 14, 0,241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6,
- 4, 0,151, 6, 7, 0,152, 6, 2, 0,153, 6,242, 0,204, 6,249, 0,222, 6, 14, 0,223, 6, 2, 0, 74, 1, 2, 0,224, 6,
- 4, 0, 18, 0, 7, 0,225, 6, 4, 0,164, 6,250, 0, 11, 0,241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6,
- 7, 0,152, 6, 2, 0,153, 6, 2, 0,224, 6, 2, 0, 18, 0, 4, 0, 27, 0,249, 0,222, 6,242, 0,204, 6,251, 0, 3, 0,
-251, 0, 0, 0,251, 0, 1, 0, 7, 0,226, 6,252, 0, 9, 0,241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6,
- 7, 0,152, 6,242, 0,204, 6, 14, 0,227, 6, 4, 0,228, 6, 4, 0, 18, 0,253, 0, 18, 0,241, 0, 0, 0,241, 0, 1, 0,
- 14, 0,150, 6, 4, 0,151, 6, 7, 0,152, 6, 2, 0,153, 6,242, 0,204, 6, 7, 0, 87, 2, 7, 0, 88, 2, 2, 0,205, 6,
- 2, 0,229, 6, 2, 0,230, 6, 2, 0,231, 6, 4, 0, 18, 0, 7, 0,232, 6, 4, 0,114, 6, 4, 0, 27, 0,180, 0,177, 3,
-254, 0, 16, 0, 0, 0,233, 6, 0, 0,234, 6, 0, 0,235, 6, 0, 0,236, 6, 0, 0,237, 6, 0, 0,238, 6, 4, 0,239, 6,
- 4, 0,240, 6, 4, 0,241, 6, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0,242, 6, 2, 0,243, 6, 2, 0,180, 1, 2, 0,244, 6,
- 0, 0,245, 6,255, 0, 16, 0,241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6, 4, 0,246, 6,254, 0,247, 6,
- 0, 1,248, 6, 14, 0,249, 6, 14, 0,250, 6, 1, 1,251, 6,239, 0,252, 6, 2, 1,253, 6, 2, 0,254, 6, 2, 0,255, 6,
- 2, 0, 0, 7, 2, 0, 30, 0, 3, 1, 25, 0,241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6, 4, 0, 18, 0,
- 42, 0,237, 2, 40, 0, 57, 1, 53, 0, 1, 7, 4, 1, 2, 7, 5, 1, 3, 7,180, 0,177, 3, 7, 0, 4, 7, 7, 0, 87, 2,
- 7, 0, 88, 2, 7, 0,232, 6, 7, 0, 5, 7, 7, 0, 6, 7, 2, 0, 7, 7, 2, 0, 27, 0, 2, 0, 8, 7, 2, 0, 9, 7,
- 0, 0, 10, 7, 0, 0, 11, 7, 0, 0, 12, 7, 0, 0,164, 6, 6, 1, 31, 0,241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6,
- 4, 0,151, 6, 7, 0,152, 6, 2, 0,153, 6, 37, 0, 13, 7, 4, 0, 14, 7, 4, 0, 15, 7, 2, 0, 91, 0, 2, 0, 16, 7,
- 2, 0, 17, 7, 0, 0, 18, 7, 0, 0, 19, 7, 4, 0, 20, 7, 4, 0, 21, 7, 4, 0, 22, 7, 2, 0, 23, 7, 2, 0, 24, 7,
- 2, 0, 25, 7, 2, 0, 26, 7, 7, 0, 27, 7, 18, 0, 28, 7, 18, 0, 29, 7, 4, 0, 30, 7, 4, 0, 31, 7, 0, 0, 32, 7,
- 0, 0, 33, 7, 2, 0, 34, 7, 0, 0,204, 2, 11, 0, 35, 7, 7, 1, 10, 0, 22, 0, 32, 0, 11, 0, 36, 7, 11, 0, 37, 7,
- 11, 0, 38, 7, 11, 0, 39, 7, 11, 0, 40, 7, 4, 0, 91, 0, 4, 0, 41, 7, 0, 0, 42, 7, 0, 0, 43, 7, 8, 1, 10, 0,
-241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6, 7, 0,152, 6, 7, 1, 44, 7, 2, 0, 91, 0, 2, 0, 16, 7,
- 4, 0, 66, 0, 11, 0, 45, 7, 9, 1, 27, 0,241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6, 7, 0,152, 6,
- 2, 0,153, 6,242, 0,204, 6, 22, 0, 46, 7, 22, 0, 80, 0, 2, 0, 18, 0, 2, 0, 66, 0, 7, 0, 47, 7, 7, 0, 87, 2,
- 7, 0, 88, 2, 7, 0,232, 6, 7, 0, 48, 7, 7, 0, 49, 7, 7, 0, 50, 7, 56, 0, 58, 1, 56, 0, 51, 7, 4, 0, 52, 7,
- 2, 0, 53, 7, 2, 0, 54, 7, 2, 0,239, 0, 2, 0, 73, 1, 14, 0, 55, 7,180, 0,177, 3, 10, 1, 10, 0,241, 0, 0, 0,
-241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6, 7, 0,152, 6, 2, 0,153, 6, 2, 0, 18, 0, 2, 0,209, 3, 4, 0, 27, 0,
-180, 0,177, 3, 11, 1, 7, 0, 11, 1, 0, 0, 11, 1, 1, 0, 4, 0, 56, 7, 4, 0, 22, 0, 0, 0, 85, 0, 4, 0, 57, 7,
- 4, 0, 16, 0, 12, 1, 14, 0,241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6, 7, 0,152, 6, 2, 0,153, 6,
- 4, 0, 17, 7, 4, 0, 27, 0, 14, 0, 58, 7, 14, 0, 59, 7, 0, 0, 60, 7, 0, 0, 61, 7, 4, 0, 62, 7, 4, 0, 63, 7,
- 13, 1, 6, 0,241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6, 4, 0, 27, 0, 0, 0, 64, 7, 14, 1, 28, 0,
-241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6, 7, 0, 87, 2, 7, 0, 88, 2, 7, 0, 65, 7, 7, 0, 66, 7,
- 7, 0,232, 6,233, 0, 67, 7,231, 0,110, 6, 15, 1, 2, 7, 4, 0, 18, 0, 2, 0, 74, 1, 2, 0,114, 6, 4, 0, 68, 7,
- 7, 0, 69, 7, 7, 0,141, 3, 7, 0, 87, 3, 4, 0, 27, 0, 7, 0, 70, 7, 7, 0, 71, 7, 4, 0, 72, 7, 4, 0, 30, 0,
- 11, 0, 73, 7, 2, 0, 74, 7, 2, 0, 75, 7, 4, 0,237, 1, 16, 1, 7, 0, 16, 1, 0, 0, 16, 1, 1, 0, 0, 0, 76, 7,
- 2, 0, 77, 7, 2, 0, 78, 7, 2, 0, 79, 7, 2, 0, 27, 0, 17, 1, 12, 0, 2, 0, 78, 7, 2, 0, 80, 7, 2, 0, 81, 7,
- 0, 0,204, 2, 2, 0, 82, 7, 2, 0, 83, 7, 2, 0, 84, 7, 2, 0, 85, 7, 2, 0, 86, 7, 2, 0,195, 6, 7, 0, 87, 7,
- 7, 0, 88, 7, 18, 1, 18, 0, 18, 1, 0, 0, 18, 1, 1, 0, 0, 0, 19, 0, 17, 1, 89, 7, 17, 1, 90, 7, 17, 1, 91, 7,
- 17, 1, 92, 7, 7, 0, 93, 7, 2, 0, 94, 7, 2, 0, 95, 7, 2, 0, 96, 7, 2, 0, 97, 7, 2, 0, 98, 7, 2, 0, 99, 7,
- 2, 0,100, 7, 2, 0,101, 7, 2, 0,102, 7, 2, 0, 27, 0, 19, 1, 10, 0, 0, 0,103, 7, 0, 0,104, 7, 0, 0,105, 7,
- 0, 0,106, 7, 0, 0,107, 7, 0, 0,108, 7, 2, 0,109, 7, 2, 0,110, 7, 2, 0,111, 7, 2, 0,112, 7, 20, 1, 8, 0,
- 0, 0,113, 7, 0, 0,114, 7, 0, 0,115, 7, 0, 0,116, 7, 0, 0,117, 7, 0, 0,118, 7, 7, 0,113, 6, 7, 0, 27, 0,
- 21, 1, 3, 0, 0, 0,119, 7, 2, 0,120, 7, 2, 0, 27, 0, 22, 1, 22, 0, 19, 1,121, 7, 19, 1,122, 7, 19, 1,123, 7,
- 19, 1,124, 7, 19, 1,125, 7, 19, 1,126, 7, 19, 1,127, 7, 19, 1,128, 7, 19, 1,129, 7, 19, 1,130, 7, 19, 1,131, 7,
- 19, 1,132, 7, 19, 1,133, 7, 19, 1,134, 7, 19, 1,135, 7, 19, 1,136, 7, 19, 1,137, 7, 20, 1,138, 7, 21, 1,139, 7,
- 0, 0,140, 7, 7, 0,141, 7, 7, 0, 27, 0, 23, 1,124, 0, 0, 0,142, 7, 0, 0,143, 7, 0, 0,107, 7, 0, 0,144, 7,
- 0, 0,119, 7, 0, 0,145, 7, 0, 0,146, 7, 0, 0,147, 7, 0, 0,148, 7, 0, 0,149, 7, 0, 0,150, 7, 0, 0,151, 7,
- 0, 0,152, 7, 0, 0,153, 7, 0, 0,154, 7, 0, 0,155, 7, 0, 0,156, 7, 0, 0,157, 7, 0, 0,158, 7, 0, 0,159, 7,
- 0, 0,160, 7, 0, 0,161, 7, 0, 0,162, 7, 0, 0,163, 7, 0, 0,164, 7, 0, 0,165, 7, 0, 0,166, 7, 0, 0,167, 7,
- 0, 0,168, 7, 0, 0,169, 7, 0, 0,170, 7, 0, 0,171, 7, 0, 0,172, 7, 0, 0,173, 7, 0, 0,174, 7, 0, 0,175, 7,
- 0, 0,176, 7, 0, 0,177, 7, 0, 0,178, 7, 0, 0,179, 7, 0, 0,180, 7, 0, 0,181, 7, 0, 0,182, 7, 0, 0,183, 7,
- 0, 0,184, 7, 0, 0,185, 7, 0, 0,186, 7, 0, 0,187, 7, 0, 0,188, 7, 0, 0,189, 7, 0, 0,190, 7, 0, 0,191, 7,
- 0, 0,192, 7, 0, 0,193, 7, 0, 0,194, 7, 0, 0,195, 7, 0, 0,196, 7, 0, 0,197, 7, 0, 0,198, 7, 0, 0,199, 7,
- 0, 0,200, 7, 0, 0,201, 7, 0, 0,202, 7, 0, 0,203, 7, 0, 0,204, 7, 0, 0,205, 7, 0, 0,206, 7, 0, 0,207, 7,
- 0, 0,208, 7, 0, 0,209, 7, 0, 0,210, 7, 0, 0,211, 7, 0, 0,212, 7, 0, 0,213, 7, 0, 0,214, 7, 0, 0,215, 7,
- 0, 0,216, 7, 0, 0,217, 7, 0, 0,218, 7, 0, 0,219, 7, 0, 0,220, 7, 0, 0,221, 7, 0, 0,222, 7, 0, 0,223, 7,
- 0, 0,224, 7, 0, 0,225, 7, 0, 0,226, 7, 0, 0,227, 7, 0, 0,228, 7, 0, 0,229, 7, 0, 0,230, 7, 0, 0,231, 7,
- 0, 0,232, 7, 0, 0,233, 7, 0, 0,234, 7, 0, 0,235, 7, 0, 0,236, 7, 0, 0,237, 7, 0, 0,238, 7, 0, 0,239, 7,
- 0, 0,240, 7, 0, 0,241, 7, 0, 0,242, 7, 0, 0,243, 7, 0, 0,244, 7, 0, 0,245, 7, 0, 0,246, 7, 0, 0,247, 7,
- 0, 0,248, 7, 0, 0,249, 7, 0, 0,250, 7, 0, 0,251, 7, 0, 0,252, 7, 0, 0,253, 7, 0, 0,254, 7, 0, 0,255, 7,
- 0, 0, 0, 8, 0, 0, 1, 8, 0, 0, 2, 8, 0, 0, 3, 8, 0, 0, 4, 8, 0, 0, 5, 8, 0, 0, 6, 8, 4, 0,116, 5,
- 24, 1, 5, 0, 0, 0, 7, 8, 0, 0,165, 7, 0, 0,171, 7, 2, 0, 18, 0, 2, 0, 27, 0, 25, 1, 24, 0, 25, 1, 0, 0,
- 25, 1, 1, 0, 0, 0,173, 5, 22, 1, 8, 8, 23, 1, 9, 8, 23, 1, 10, 8, 23, 1, 11, 8, 23, 1, 12, 8, 23, 1, 13, 8,
- 23, 1, 14, 8, 23, 1, 15, 8, 23, 1, 16, 8, 23, 1, 17, 8, 23, 1, 18, 8, 23, 1, 19, 8, 23, 1, 20, 8, 23, 1, 21, 8,
- 23, 1, 22, 8, 23, 1, 23, 8, 23, 1, 24, 8, 23, 1, 25, 8, 24, 1, 26, 8, 4, 0, 27, 8, 4, 0, 27, 0, 26, 1, 3, 0,
- 26, 1, 0, 0, 26, 1, 1, 0, 0, 0, 28, 8, 27, 1, 5, 0, 4, 0, 18, 0, 4, 0, 27, 0, 7, 0,143, 2, 7, 0, 29, 8,
- 7, 0, 37, 2, 28, 1, 93, 0, 4, 0, 18, 0, 4, 0, 30, 8, 4, 0, 31, 8, 0, 0, 32, 8, 0, 0, 33, 8, 0, 0, 34, 8,
- 0, 0, 35, 8, 0, 0, 36, 8, 0, 0, 37, 8, 0, 0, 38, 8, 0, 0, 39, 8, 4, 0, 40, 8, 2, 0, 41, 8, 2, 0, 42, 8,
- 2, 0, 43, 8, 2, 0, 44, 8, 4, 0, 45, 8, 4, 0, 46, 8, 4, 0, 47, 8, 4, 0, 48, 8, 2, 0, 49, 8, 2, 0, 50, 8,
- 4, 0, 51, 8, 4, 0, 52, 8, 4, 0, 53, 8, 4, 0, 54, 8, 4, 0, 55, 8, 4, 0, 58, 7, 4, 0, 56, 8, 2, 0, 57, 8,
- 2, 0, 58, 8, 2, 0, 59, 8, 2, 0, 60, 8, 14, 0, 61, 8, 14, 0, 62, 8, 14, 0, 63, 8, 14, 0, 64, 8, 14, 0, 65, 8,
- 14, 0, 66, 8, 0, 0, 67, 8, 2, 0, 68, 8, 2, 0, 69, 8, 2, 0, 70, 8, 2, 0, 71, 8, 2, 0, 72, 8, 2, 0, 73, 8,
- 2, 0, 74, 8, 2, 0, 75, 8, 27, 1, 76, 8, 2, 0, 77, 8, 2, 0, 78, 8, 2, 0, 79, 8, 2, 0, 80, 8, 2, 0, 81, 8,
- 2, 0, 82, 8, 2, 0, 83, 8, 2, 0, 84, 8, 4, 0, 85, 8, 4, 0, 86, 8, 2, 0, 87, 8, 2, 0, 88, 8, 2, 0, 89, 8,
- 2, 0, 90, 8, 2, 0, 91, 8, 2, 0, 92, 8, 2, 0, 93, 8, 2, 0, 94, 8, 2, 0, 95, 8, 2, 0, 96, 8, 2, 0, 97, 8,
- 2, 0, 98, 8, 2, 0, 99, 8, 2, 0,100, 8, 2, 0,101, 8, 2, 0,102, 8, 2, 0,103, 8, 2, 0,104, 8, 7, 0,105, 8,
- 4, 0,106, 8, 7, 0,107, 8, 2, 0, 22, 6, 2, 0, 23, 6, 2, 0,108, 8, 2, 0,109, 8, 49, 0,110, 8, 7, 0,111, 8,
- 2, 0,112, 8, 2, 0,237, 1, 0, 0,113, 8, 4, 0,114, 8, 4, 0,115, 8, 7, 0,116, 8, 7, 0, 27, 0, 29, 1, 24, 0,
- 22, 0, 32, 0, 14, 0,117, 8, 14, 0,118, 8, 14, 0,119, 8, 14, 0,150, 6, 41, 0,124, 0, 41, 0,120, 8, 4, 0,121, 8,
- 4, 0, 66, 0, 2, 0,122, 8, 2, 0,123, 8, 2, 0,124, 8, 2, 0,125, 8, 2, 0,126, 8, 2, 0,127, 8, 2, 0,128, 8,
- 2, 0,129, 8, 2, 0,130, 8, 2, 0,131, 8, 2, 0,132, 8, 2, 0, 27, 0,239, 0,133, 8, 11, 0,134, 8, 2, 0,135, 8,
- 30, 1, 5, 0, 30, 1, 0, 0, 30, 1, 1, 0, 30, 1,136, 8, 15, 0,137, 8, 4, 0, 18, 0, 31, 1, 7, 0, 31, 1, 0, 0,
- 31, 1, 1, 0, 30, 1,138, 8, 30, 1,139, 8, 2, 0,122, 5, 2, 0, 18, 0, 4, 0, 27, 0, 32, 1, 25, 0, 32, 1, 0, 0,
- 32, 1, 1, 0, 33, 1,140, 8, 34, 1,253, 6, 0, 0,141, 8, 0, 0,142, 8, 0, 0,143, 8, 2, 0,144, 8, 2, 0,145, 8,
- 2, 0,146, 8, 2, 0,147, 8, 2, 0,148, 8, 2, 0, 27, 0, 2, 0, 18, 0, 2, 0,149, 8, 2, 0,150, 8, 2, 0,151, 8,
- 4, 0,152, 8, 32, 1,153, 8, 11, 0,154, 8, 4, 0,155, 8, 4, 0,156, 8, 4, 0,157, 8, 4, 0,158, 8, 0, 0,159, 8,
- 35, 1, 22, 0, 35, 1, 0, 0, 35, 1, 1, 0, 30, 1,138, 8, 30, 1,139, 8, 30, 1,160, 8, 30, 1,161, 8, 29, 1,162, 8,
- 18, 0, 50, 0, 0, 0,151, 6, 0, 0,163, 8, 2, 0,196, 6, 2, 0,197, 6, 2, 0,164, 8, 2, 0, 27, 0, 2, 0,126, 8,
- 2, 0, 57, 7, 2, 0, 18, 0, 36, 1,140, 8, 14, 0,165, 8, 14, 0,150, 6, 14, 0,166, 8, 14, 0,167, 8, 37, 1, 24, 0,
- 37, 1, 0, 0, 37, 1, 1, 0,242, 0,204, 6, 18, 0,168, 8, 18, 0,169, 8, 2, 0,196, 6, 2, 0,197, 6, 2, 0,170, 8,
- 2, 0,171, 8, 2, 0,172, 8, 2, 0, 18, 0, 7, 0, 83, 2, 2, 0,146, 8, 2, 0,147, 8, 2, 0,125, 8, 2, 0,173, 8,
- 2, 0,130, 8, 2, 0, 73, 1, 38, 1,140, 8, 14, 0,174, 8, 14, 0,175, 8, 14, 0,166, 8, 0, 0,176, 8, 11, 0,177, 8,
- 39, 1, 14, 0, 0, 0,178, 8, 2, 0,179, 8, 2, 0,180, 8, 2, 0,181, 8, 2, 0,182, 8, 2, 0,111, 5, 2, 0,183, 8,
- 29, 1,184, 8, 41, 0,185, 8, 4, 0,186, 8, 4, 0,187, 8, 4, 0,188, 8, 4, 0, 27, 0, 0, 0, 76, 7, 40, 1, 3, 0,
- 0, 0,189, 8, 4, 0,190, 8, 4, 0,191, 8, 41, 1, 4, 0, 4, 0, 14, 7, 4, 0,192, 8, 4, 0, 20, 7, 4, 0,193, 8,
- 42, 1, 2, 0, 4, 0,194, 8, 4, 0,195, 8, 43, 1, 5, 0, 7, 0,196, 8, 7, 0,197, 8, 7, 0,198, 8, 4, 0, 18, 0,
- 4, 0, 27, 0, 44, 1, 7, 0, 0, 0,199, 8, 0, 0,235, 6, 44, 0,137, 0, 2, 0,200, 8, 2, 0, 73, 5, 2, 0,201, 8,
- 2, 0,202, 8, 45, 1, 12, 0, 45, 1, 0, 0, 45, 1, 1, 0, 4, 0, 28, 0, 4, 0,203, 8, 4, 0,204, 8, 4, 0,205, 8,
- 40, 1,206, 8, 0, 0,199, 8, 44, 1,171, 3, 41, 1,207, 8, 42, 1,208, 8, 43, 1,209, 8, 46, 1, 49, 0, 46, 1, 0, 0,
- 46, 1, 1, 0, 11, 0,210, 8, 11, 0, 25, 0, 0, 0, 19, 0, 4, 0, 18, 0, 4, 0, 16, 0, 4, 0, 22, 0, 4, 0, 89, 0,
- 4, 0,211, 8, 4, 0,212, 8, 4, 0,204, 8, 4, 0,205, 8, 4, 0,213, 8, 4, 0,238, 0, 4, 0,214, 8, 4, 0,215, 8,
- 7, 0,216, 8, 7, 0,217, 8, 7, 0,218, 8, 2, 0,219, 8, 2, 0,220, 8, 4, 0,221, 8, 4, 0,222, 8, 45, 1,223, 8,
- 31, 0, 79, 0, 41, 0,124, 0, 27, 0,224, 8, 44, 0,137, 0,231, 0,110, 6, 7, 0,225, 8, 7, 0,226, 8, 46, 1,227, 8,
- 46, 1,228, 8, 46, 1,229, 8, 14, 0,230, 8, 47, 1,231, 8, 11, 0,232, 8, 7, 0, 83, 4, 7, 0,233, 8, 7, 0,234, 8,
- 7, 0,235, 8, 11, 0,236, 8, 4, 0,237, 8, 4, 0,238, 8, 4, 0,239, 8, 7, 0,240, 8, 4, 0,128, 0, 4, 0, 27, 0,
- 48, 1, 4, 0, 48, 1, 0, 0, 48, 1, 1, 0, 14, 0,241, 8, 46, 1,242, 8,228, 0, 11, 0, 14, 0,243, 8, 14, 0,230, 8,
- 14, 0,244, 8, 46, 1,245, 8, 0, 0,246, 8, 0, 0,247, 8, 4, 0,248, 8, 4, 0,249, 8, 4, 0,250, 8, 4, 0, 27, 0,
- 19, 0,251, 8, 49, 1, 4, 0, 7, 0,252, 8, 7, 0, 87, 3, 2, 0,253, 8, 2, 0,254, 8, 50, 1, 6, 0, 7, 0,255, 8,
- 7, 0, 0, 9, 7, 0, 1, 9, 7, 0, 2, 9, 4, 0, 3, 9, 4, 0, 4, 9, 51, 1, 8, 0, 7, 0, 5, 9, 7, 0, 6, 9,
- 7, 0, 7, 9, 7, 0, 8, 9, 7, 0, 9, 9, 4, 0,243, 2, 4, 0, 10, 9, 4, 0, 11, 9, 52, 1, 2, 0, 7, 0,181, 5,
- 7, 0, 27, 0, 53, 1, 5, 0, 7, 0, 12, 9, 7, 0, 13, 9, 4, 0, 91, 0, 4, 0,205, 2, 4, 0, 14, 9, 54, 1, 6, 0,
- 54, 1, 0, 0, 54, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 15, 9, 2, 0, 55, 0, 55, 1, 8, 0, 55, 1, 0, 0,
- 55, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 15, 9, 2, 0, 55, 0, 7, 0, 22, 0, 7, 0,128, 0, 56, 1, 45, 0,
- 56, 1, 0, 0, 56, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 15, 9, 2, 0,234, 0, 2, 0,125, 4, 2, 0, 16, 9,
- 7, 0, 17, 9, 7, 0, 90, 0, 7, 0, 0, 3, 4, 0, 18, 9, 4, 0, 81, 0, 4, 0,207, 2, 7, 0, 19, 9, 7, 0, 20, 9,
- 7, 0, 21, 9, 7, 0, 22, 9, 7, 0, 23, 9, 7, 0, 24, 9, 7, 0,253, 2, 7, 0, 56, 1, 7, 0, 25, 9, 7, 0, 26, 9,
- 7, 0, 27, 0, 7, 0, 27, 9, 7, 0, 28, 9, 7, 0, 29, 9, 2, 0, 30, 9, 2, 0, 31, 9, 2, 0, 32, 9, 2, 0, 33, 9,
- 2, 0, 34, 9, 2, 0, 35, 9, 2, 0, 36, 9, 2, 0, 37, 9, 2, 0, 22, 2, 2, 0, 38, 9, 2, 0, 19, 2, 2, 0, 39, 9,
- 0, 0, 40, 9, 0, 0, 41, 9, 7, 0,232, 0, 57, 1, 42, 9, 63, 0,240, 1, 58, 1, 16, 0, 58, 1, 0, 0, 58, 1, 1, 0,
- 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 15, 9, 2, 0,234, 0, 7, 0,248, 2, 7, 0,249, 2, 7, 0,250, 2, 7, 0, 72, 2,
- 7, 0,251, 2, 7, 0,252, 2, 7, 0, 43, 9, 7, 0,253, 2, 7, 0,255, 2, 7, 0, 0, 3,247, 0, 5, 0, 2, 0, 16, 0,
- 2, 0, 44, 9, 2, 0, 18, 0, 2, 0, 45, 9, 22, 0, 46, 7,246, 0, 3, 0, 4, 0, 68, 0, 4, 0, 46, 9,247, 0, 2, 0,
- 59, 1, 7, 0, 59, 1, 0, 0, 59, 1, 1, 0, 0, 0, 19, 0, 2, 0, 16, 0, 2, 0, 18, 0, 4, 0, 21, 0, 11, 0, 47, 9,
- 60, 1, 5, 0, 0, 0, 19, 0, 7, 0, 81, 1, 7, 0, 48, 9, 4, 0, 49, 9, 4, 0, 27, 0, 61, 1, 4, 0, 2, 0, 16, 0,
- 2, 0, 18, 0, 2, 0, 66, 0, 2, 0, 30, 0, 62, 1, 4, 0, 0, 0, 19, 0, 62, 0, 50, 9, 7, 0, 81, 1, 7, 0, 27, 0,
- 63, 1, 6, 0, 2, 0, 51, 9, 2, 0, 52, 9, 2, 0, 16, 0, 2, 0, 53, 9, 0, 0, 54, 9, 0, 0, 55, 9, 64, 1, 5, 0,
- 4, 0, 16, 0, 4, 0, 27, 0, 0, 0, 19, 0, 0, 0, 56, 9, 0, 0, 57, 9, 65, 1, 3, 0, 4, 0, 16, 0, 4, 0, 27, 0,
- 0, 0, 19, 0, 66, 1, 4, 0, 2, 0, 58, 9, 2, 0, 59, 9, 2, 0, 18, 0, 2, 0, 27, 0, 67, 1, 6, 0, 0, 0, 19, 0,
- 0, 0, 60, 9, 2, 0, 61, 9, 2, 0,253, 2, 2, 0, 74, 1, 2, 0, 30, 0, 68, 1, 5, 0, 0, 0, 19, 0, 7, 0, 87, 3,
- 7, 0,216, 4, 2, 0, 18, 0, 2, 0,219, 2, 69, 1, 3, 0, 0, 0, 19, 0, 4, 0,207, 2, 4, 0, 58, 9, 70, 1, 7, 0,
- 0, 0, 19, 0, 7, 0,216, 4, 0, 0, 62, 9, 0, 0, 63, 9, 2, 0, 74, 1, 2, 0, 66, 0, 4, 0, 64, 9, 71, 1, 4, 0,
- 0, 0, 65, 9, 0, 0, 66, 9, 4, 0, 16, 0, 7, 0,223, 2, 72, 1, 3, 0, 27, 0, 67, 9, 0, 0, 68, 9, 0, 0, 69, 9,
- 73, 1, 18, 0, 73, 1, 0, 0, 73, 1, 1, 0, 2, 0, 16, 0, 2, 0, 70, 9, 2, 0, 18, 0, 2, 0, 71, 9, 2, 0, 72, 9,
- 2, 0, 73, 9, 2, 0, 66, 0, 2, 0, 30, 0, 0, 0, 19, 0, 11, 0, 2, 0, 74, 1, 74, 9, 27, 0, 43, 0, 2, 0,221, 5,
- 2, 0,168, 2, 2, 0, 75, 9, 2, 0, 27, 0, 75, 1, 11, 0, 0, 0, 19, 0, 0, 0, 16, 0, 0, 0, 76, 9, 2, 0, 18, 0,
- 2, 0,219, 2, 2, 0, 77, 9, 4, 0, 78, 9, 4, 0, 79, 9, 4, 0, 80, 9, 4, 0, 81, 9, 4, 0, 82, 9, 76, 1, 1, 0,
- 0, 0, 83, 9, 77, 1, 4, 0, 37, 0, 13, 7, 0, 0, 28, 8, 4, 0, 74, 1, 4, 0, 18, 0, 74, 1, 18, 0, 74, 1, 0, 0,
- 74, 1, 1, 0, 74, 1, 84, 9, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 85, 9, 2, 0, 73, 9, 2, 0, 70, 9, 2, 0, 86, 9,
- 2, 0, 30, 0, 2, 0,237, 1, 0, 0, 19, 0, 11, 0, 2, 0, 78, 1, 74, 9, 73, 1, 87, 9, 2, 0, 14, 0, 2, 0, 88, 9,
- 4, 0, 89, 9, 79, 1, 3, 0, 4, 0,233, 2, 4, 0, 27, 0, 27, 0, 43, 0, 80, 1, 15, 0,178, 0, 90, 9, 2, 0, 16, 0,
- 2, 0, 18, 0, 7, 0, 17, 9, 7, 0, 90, 0, 0, 0, 19, 0, 0, 0, 91, 9, 2, 0, 92, 9, 2, 0, 93, 9, 2, 0,133, 0,
- 2, 0, 94, 9, 2, 0, 95, 9, 2, 0, 27, 0, 7, 0, 96, 9, 7, 0, 97, 9, 81, 1, 8, 0, 7, 0, 98, 9, 7, 0, 99, 9,
- 7, 0,100, 9, 7, 0,101, 9, 7, 0,102, 9, 7, 0,103, 9, 7, 0,104, 9, 7, 0,105, 9, 82, 1, 13, 0, 2, 0, 18, 0,
- 2, 0,106, 9, 4, 0, 66, 0, 4, 0, 30, 0, 2, 0,181, 6, 7, 0, 83, 4, 7, 0,233, 8, 47, 1,231, 8, 81, 1,107, 9,
- 2, 0, 16, 0, 2, 0,116, 5, 2, 0,211, 3, 2, 0,108, 9, 83, 1, 11, 0, 4, 0,233, 2, 2, 0, 16, 0, 2, 0, 18, 0,
- 27, 0, 43, 0, 78, 0,109, 9, 0, 0, 19, 0, 7, 0,110, 9, 7, 0,111, 9, 7, 0,217, 3, 2, 0,112, 9, 2, 0,113, 9,
- 84, 1, 5, 0, 2, 0, 16, 0, 2, 0, 66, 0, 4, 0, 27, 0, 41, 0,124, 0, 27, 0,212, 5, 85, 1, 5, 0, 4, 0, 27, 0,
- 4, 0, 16, 0, 0, 0, 19, 0, 0, 0, 56, 9, 27, 0, 43, 0, 86, 1, 13, 0, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0, 70, 9,
- 2, 0,218, 3, 7, 0,114, 9, 7, 0,115, 9, 7, 0, 73, 1, 7, 0,116, 9, 7, 0,187, 3, 7, 0,191, 3, 7, 0,117, 9,
- 7, 0,118, 9, 27, 0,119, 9, 87, 1, 10, 0, 2, 0, 18, 0, 2, 0, 16, 0, 7, 0, 17, 9, 7, 0, 90, 0, 0, 0, 19, 0,
- 0, 0, 91, 9, 2, 0, 66, 0, 2, 0, 30, 0, 2, 0,237, 1, 2, 0,116, 5, 88, 1, 8, 0, 27, 0, 43, 0, 7, 0,250, 2,
- 7, 0,120, 9, 7, 0,121, 9, 7, 0,218, 3, 2, 0, 66, 0, 2, 0,219, 2, 7, 0, 30, 0, 89, 1, 12, 0, 2, 0, 16, 0,
- 2, 0, 74, 1, 2, 0, 18, 0, 2, 0,253, 2, 2, 0,233, 2, 2, 0,122, 9, 4, 0, 27, 0, 7, 0,123, 9, 7, 0,124, 9,
- 7, 0,125, 9, 7, 0,126, 9, 0, 0,127, 9, 90, 1, 9, 0, 2, 0, 18, 0, 2, 0, 16, 0, 4, 0, 17, 9, 4, 0, 90, 0,
- 0, 0, 19, 0, 2, 0, 73, 1, 2, 0, 62, 0, 2, 0,128, 9, 2, 0,129, 9, 91, 1, 7, 0, 4, 0,207, 2, 4, 0,130, 9,
- 4, 0,131, 9, 4, 0,132, 9, 7, 0,133, 9, 7, 0,134, 9, 0, 0, 62, 9, 92, 1, 7, 0, 0, 0,135, 9, 27, 0,136, 9,
- 0, 0, 68, 9, 2, 0,137, 9, 2, 0, 66, 0, 4, 0, 30, 0, 0, 0, 69, 9, 93, 1, 6, 0, 2, 0, 18, 0, 2, 0, 16, 0,
- 4, 0, 17, 9, 4, 0, 90, 0, 0, 0,138, 9, 0, 0,139, 9, 94, 1, 1, 0, 4, 0, 18, 0, 95, 1, 6, 0, 0, 0, 93, 0,
- 2, 0, 16, 0, 2, 0, 18, 0, 4, 0,140, 9, 7, 0,141, 9, 37, 0, 13, 7, 96, 1, 4, 0, 0, 0,173, 2, 2, 0, 18, 0,
- 4, 0, 16, 0, 27, 0, 43, 0, 97, 1, 2, 0, 4, 0, 16, 0, 4, 0,185, 6, 98, 1, 8, 0, 0, 0, 65, 9, 0, 0, 66, 9,
- 4, 0, 16, 0, 7, 0, 30, 2, 7, 0,142, 9, 7, 0, 27, 0, 27, 0, 63, 3, 27, 0,143, 9, 99, 1, 11, 0, 0, 0, 58, 6,
- 0, 0, 18, 0, 2, 0,144, 9, 4, 0, 16, 0, 7, 0, 81, 1, 7, 0,145, 9, 7, 0,146, 9, 7, 0,147, 9, 4, 0,148, 9,
- 27, 0, 63, 3, 27, 0,149, 9, 78, 1, 10, 0, 78, 1, 0, 0, 78, 1, 1, 0, 78, 1, 84, 9, 2, 0, 16, 0, 2, 0, 18, 0,
- 2, 0, 70, 9, 2, 0,150, 9, 0, 0, 19, 0, 11, 0, 2, 0, 27, 0, 43, 0, 47, 1, 17, 0, 22, 0, 32, 0, 0, 0, 35, 0,
- 38, 0,152, 0, 11, 0,151, 9, 38, 0,152, 9, 31, 0, 79, 0, 7, 0, 83, 4, 7, 0,153, 9, 7, 0,233, 8, 7, 0, 98, 9,
- 7, 0, 99, 9, 7, 0,154, 9, 4, 0, 91, 0, 4, 0, 27, 0, 11, 0,155, 9, 11, 0,156, 9, 11, 0,157, 9,100, 1, 6, 0,
-100, 1, 0, 0,100, 1, 1, 0, 27, 0, 43, 0, 11, 0,158, 9, 2, 0,239, 0, 0, 0,204, 2, 63, 0, 4, 0, 22, 0, 32, 0,
- 14, 0,159, 9, 4, 0,133, 0, 7, 0,160, 9,101, 1, 28, 0,101, 1, 0, 0,101, 1, 1, 0, 21, 0,161, 9,101, 1, 37, 0,
- 14, 0,162, 9, 0, 0, 19, 0, 7, 0,163, 9, 7, 0,164, 9, 7, 0,165, 9, 7, 0,166, 9, 4, 0, 18, 0, 7, 0,167, 9,
- 7, 0,168, 9, 7, 0,169, 9, 7, 0,170, 9, 7, 0, 81, 1, 7, 0, 30, 2, 7, 0,171, 9, 7, 0,205, 2, 7, 0,172, 9,
- 7, 0,173, 9, 7, 0,174, 9, 7, 0,175, 9, 7, 0,176, 9, 7, 0,175, 0, 4, 0,133, 0, 2, 0, 2, 6, 2, 0,177, 9,
-102, 1, 27, 0, 22, 0, 32, 0, 34, 0, 74, 0, 14, 0,178, 9, 14, 0,179, 9, 14, 0,180, 9,101, 1,181, 9, 11, 0,182, 9,
- 11, 0,183, 9, 4, 0, 18, 0, 4, 0,161, 6, 4, 0,184, 9, 4, 0, 27, 0, 2, 0, 1, 3, 2, 0,211, 6, 4, 0,185, 9,
- 4, 0,133, 0, 4, 0,186, 9, 2, 0,187, 9, 2, 0,188, 9, 2, 0,189, 9, 2, 0,190, 9, 4, 0,191, 9, 4, 0,192, 9,
- 4, 0,193, 9, 4, 0,194, 9, 4, 0,195, 9, 4, 0,196, 9,103, 1, 2, 0, 7, 0,157, 2, 4, 0, 18, 0,182, 0, 5, 0,
-103, 1,197, 9, 4, 0,205, 2, 4, 0,198, 9, 4, 0,199, 9, 4, 0, 18, 0,181, 0, 16, 0, 4, 0,200, 9, 4, 0,201, 9,
- 4, 0,202, 9, 4, 0,203, 9, 2, 0,204, 9, 2, 0,205, 9, 2, 0,206, 9, 2, 0,239, 0, 2, 0,207, 9, 2, 0,208, 9,
- 2, 0,209, 9, 2, 0,210, 9, 4, 0,211, 9, 4, 0,212, 9, 4, 0,213, 9, 4, 0,214, 9,104, 1, 40, 0,104, 1, 0, 0,
-104, 1, 1, 0, 21, 0,161, 9, 14, 0,250, 3, 0, 0, 19, 0, 2, 0, 18, 0, 2, 0,215, 9, 2, 0,204, 3, 2, 0,216, 9,
- 0, 0,217, 9, 0, 0,218, 9, 0, 0,219, 9,101, 1,220, 9,104, 1, 37, 0,104, 1,221, 9, 14, 0,222, 9, 14, 0,223, 9,
-182, 0,179, 3, 27, 0,224, 9,104, 1,225, 9, 7, 0, 64, 1, 7, 0,175, 0, 7, 0,226, 9, 7, 0, 9, 2, 7, 0,193, 3,
- 7, 0,195, 3, 2, 0,231, 3, 2, 0, 27, 0, 7, 0,227, 9, 7, 0,228, 9, 7, 0,198, 3, 7, 0,229, 9, 7, 0,230, 9,
- 7, 0,231, 9, 7, 0,232, 9, 7, 0,233, 9, 7, 0,234, 9, 7, 0,235, 9, 7, 0,236, 9, 11, 0,237, 9,179, 0, 16, 0,
- 14, 0,238, 9, 73, 0,239, 9, 2, 0, 18, 0, 2, 0, 27, 0, 4, 0,240, 9, 4, 0, 66, 0, 7, 0, 83, 0, 7, 0,241, 9,
- 7, 0,242, 9, 14, 0,243, 9, 4, 0,244, 9, 4, 0,245, 9, 11, 0,246, 9, 11, 0,247, 9,181, 0,178, 3, 0, 0,248, 9,
-105, 1, 1, 0, 4, 0,245, 9,106, 1, 12, 0, 4, 0,245, 9, 7, 0, 82, 9, 2, 0,249, 9, 2, 0,250, 9, 7, 0,251, 9,
- 7, 0,252, 9, 2, 0,253, 9, 2, 0, 18, 0, 7, 0,254, 9, 7, 0,255, 9, 7, 0, 0, 10, 7, 0, 1, 10,107, 1, 7, 0,
-107, 1, 0, 0,107, 1, 1, 0, 14, 0, 2, 10, 4, 0, 18, 0, 4, 0, 3, 10, 0, 0, 19, 0, 24, 1, 4, 10,178, 0, 9, 0,
- 22, 0, 32, 0, 14, 0, 5, 10, 14, 0,238, 9, 14, 0, 6, 10, 14, 0,101, 0, 4, 0, 18, 0, 4, 0, 7, 10, 4, 0, 8, 10,
- 4, 0, 27, 0,249, 0, 8, 0, 22, 0, 9, 10, 14, 0,238, 9, 63, 0, 10, 10, 0, 0, 11, 10, 4, 0, 12, 10, 4, 0, 18, 0,
- 4, 0, 13, 10, 4, 0, 27, 0,108, 1, 13, 0,241, 0, 0, 0,241, 0, 1, 0, 14, 0,150, 6, 4, 0,151, 6, 7, 0,152, 6,
- 2, 0,153, 6,242, 0,204, 6,178, 0,174, 3,249, 0, 14, 10, 0, 0, 74, 1, 0, 0,224, 6, 2, 0, 18, 0, 7, 0, 15, 10,
-109, 1, 8, 0,109, 1, 0, 0,109, 1, 1, 0,107, 1, 16, 10, 31, 0, 79, 0, 14, 0,180, 3, 4, 0, 18, 0, 0, 0, 19, 0,
- 4, 0,123, 8,110, 1, 5, 0,110, 1, 0, 0,110, 1, 1, 0, 31, 0, 79, 0, 2, 0, 18, 0, 0, 0, 17, 10,111, 1, 14, 0,
-111, 1, 0, 0,111, 1, 1, 0, 11, 0, 2, 0, 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 18, 10, 0, 0, 19, 10, 0, 0, 19, 0,
- 2, 0, 27, 0, 7, 0, 20, 10, 7, 0, 21, 10, 31, 0, 79, 0, 7, 0, 22, 10, 7, 0, 23, 10,112, 1, 9, 0,112, 1, 0, 0,
-112, 1, 1, 0, 27, 0, 24, 10, 0, 0, 4, 3, 7, 0, 25, 10, 2, 0, 26, 10, 2, 0, 18, 0, 2, 0, 16, 0, 2, 0, 27, 10,
-113, 1, 7, 0, 37, 0, 13, 7, 21, 0,161, 9, 4, 0, 18, 0, 4, 0, 28, 10, 14, 0, 29, 10, 27, 0, 24, 10, 0, 0, 4, 3,
-114, 1, 15, 0, 27, 0, 24, 10, 2, 0, 30, 10, 2, 0, 18, 0, 2, 0, 31, 10, 2, 0, 32, 10, 0, 0, 4, 3, 27, 0, 33, 10,
- 0, 0, 34, 10, 7, 0, 35, 10, 7, 0, 30, 2, 7, 0, 36, 10, 7, 0, 37, 10, 2, 0, 16, 0, 2, 0, 74, 1, 7, 0, 81, 1,
-115, 1, 6, 0, 27, 0, 24, 10, 7, 0,197, 9, 2, 0, 38, 10, 2, 0, 39, 10, 2, 0, 18, 0, 2, 0, 40, 10,116, 1, 6, 0,
- 27, 0, 24, 10, 4, 0, 41, 10, 4, 0, 42, 10, 4, 0, 91, 0, 4, 0, 27, 0, 0, 0, 4, 3,117, 1, 4, 0, 27, 0, 24, 10,
- 4, 0, 18, 0, 4, 0, 41, 10, 0, 0, 4, 3,118, 1, 4, 0, 27, 0, 24, 10, 4, 0, 18, 0, 4, 0, 41, 10, 0, 0, 4, 3,
-119, 1, 4, 0, 27, 0, 24, 10, 4, 0, 18, 0, 4, 0, 41, 10, 0, 0, 4, 3,120, 1, 2, 0, 4, 0, 18, 0, 7, 0, 83, 4,
-121, 1, 2, 0, 27, 0, 24, 10, 0, 0, 4, 3,122, 1, 10, 0, 27, 0, 24, 10, 4, 0, 43, 10, 7, 0,127, 0, 4, 0, 18, 0,
- 2, 0, 11, 7, 2, 0, 44, 10, 2, 0, 66, 0, 2, 0, 30, 0, 7, 0, 45, 10, 0, 0, 4, 3,123, 1, 10, 0, 27, 0, 24, 10,
- 2, 0, 16, 0, 2, 0,133, 4, 4, 0, 89, 0, 4, 0, 90, 0, 7, 0,120, 9, 7, 0,121, 9, 4, 0, 27, 0,178, 0, 90, 9,
- 0, 0, 4, 3,124, 1, 4, 0, 27, 0, 24, 10, 4, 0,205, 3, 4, 0, 46, 10, 0, 0, 4, 3,125, 1, 4, 0, 27, 0, 24, 10,
- 4, 0,205, 3, 4, 0, 27, 0, 0, 0, 4, 3,126, 1, 6, 0, 27, 0, 24, 10, 7, 0,127, 0, 7, 0, 75, 3, 4, 0, 47, 10,
- 2, 0,205, 3, 2, 0,206, 3,127, 1, 6, 0, 27, 0, 24, 10, 4, 0, 48, 10, 4, 0, 49, 10, 7, 0, 50, 10, 7, 0, 51, 10,
- 0, 0, 4, 3,128, 1, 16, 0, 27, 0, 24, 10, 27, 0,221, 9, 4, 0, 16, 0, 7, 0, 52, 10, 7, 0, 53, 10, 7, 0, 54, 10,
- 7, 0, 55, 10, 7, 0, 56, 10, 7, 0, 57, 10, 7, 0, 58, 10, 7, 0, 59, 10, 7, 0, 60, 10, 2, 0, 18, 0, 2, 0, 27, 0,
- 2, 0, 66, 0, 2, 0, 30, 0,129, 1, 3, 0, 27, 0, 24, 10, 4, 0, 18, 0, 4, 0, 22, 2,130, 1, 5, 0, 27, 0, 24, 10,
- 4, 0, 18, 0, 4, 0, 27, 0, 7, 0, 61, 10, 0, 0, 4, 3,131, 1, 10, 0, 27, 0, 24, 10, 0, 0, 4, 3, 2, 0, 62, 10,
- 2, 0, 63, 10, 0, 0, 64, 10, 0, 0, 65, 10, 7, 0, 66, 10, 7, 0, 67, 10, 7, 0, 68, 10, 7, 0, 69, 10,132, 1, 5, 0,
- 27, 0, 24, 10, 0, 0, 4, 3, 7, 0,213, 2, 2, 0, 70, 10, 2, 0, 18, 0,133, 1, 8, 0, 7, 0, 8, 0, 7, 0, 9, 0,
- 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 71, 10, 7, 0, 72, 10, 2, 0, 18, 0, 2, 0, 22, 2,134, 1, 8, 0, 7, 0, 8, 0,
- 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 71, 10, 7, 0, 72, 10, 2, 0, 18, 0, 2, 0, 22, 2,135, 1, 8, 0,
- 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 71, 10, 7, 0, 72, 10, 2, 0, 18, 0, 2, 0, 22, 2,
-136, 1, 7, 0, 27, 0, 24, 10, 0, 0, 4, 3, 7, 0, 81, 1, 7, 0, 90, 1, 2, 0, 18, 0, 2, 0, 74, 1, 4, 0, 27, 0,
-137, 1, 5, 0, 27, 0, 63, 3, 7, 0, 81, 1, 2, 0, 67, 3, 0, 0, 69, 3, 0, 0, 73, 10,138, 1, 7, 0,231, 0,110, 6,
- 0, 0, 74, 10, 4, 0, 18, 0, 4, 0, 27, 0, 0, 0, 75, 10, 27, 0,212, 5, 27, 0, 76, 10,139, 1, 3, 0,231, 0,110, 6,
- 4, 0, 18, 0, 4, 0, 27, 0,140, 1, 6, 0,231, 0,110, 6, 4, 0, 18, 0, 4, 0, 27, 0, 0, 0, 75, 10, 7, 0, 61, 10,
- 27, 0,212, 5,141, 1, 10, 0,141, 1, 0, 0,141, 1, 1, 0, 2, 0, 16, 0, 2, 0, 18, 0, 0, 0, 77, 10, 7, 0, 19, 1,
- 7, 0, 20, 1, 2, 0, 2, 10, 2, 0, 78, 10, 27, 0, 43, 0,142, 1, 22, 0,142, 1, 0, 0,142, 1, 1, 0, 2, 0, 18, 0,
- 2, 0, 74, 1, 2, 0, 79, 10, 2, 0, 80, 10, 31, 0, 79, 0,178, 0, 90, 9, 27, 0,167, 0, 7, 0, 89, 0, 7, 0, 90, 0,
- 7, 0, 81, 10, 7, 0, 82, 10, 7, 0, 83, 10, 7, 0, 84, 10, 7, 0,246, 2, 7, 0,141, 3, 7, 0, 92, 9, 7, 0, 85, 10,
- 0, 0, 86, 10, 0, 0, 87, 10, 14, 0,183, 3,143, 1, 11, 0, 7, 0, 37, 2, 7, 0,120, 9, 7, 0,121, 9, 11, 0, 2, 0,
- 2, 0, 88, 10, 2, 0, 89, 10, 2, 0, 90, 10, 2, 0, 91, 10, 2, 0, 92, 10, 2, 0, 93, 10, 2, 0,173, 2,144, 1, 21, 0,
-144, 1, 0, 0,144, 1, 1, 0,144, 1, 94, 10, 0, 0, 19, 0, 11, 0, 95, 10, 2, 0, 16, 0, 2, 0, 18, 0, 2, 0, 96, 10,
- 2, 0, 66, 0, 7, 0, 97, 10, 7, 0, 98, 10, 11, 0, 99, 10, 2, 0,100, 10, 2, 0,101, 10, 4, 0,102, 10, 11, 0,155, 9,
- 4, 0,103, 10, 4, 0,104, 10,144, 1,105, 10,145, 1,106, 10,143, 1,107, 10,146, 1, 4, 0, 0, 0,108, 10, 2, 0,109, 10,
- 2, 0,110, 10, 4, 0, 27, 0,147, 1, 41, 0,147, 1, 0, 0,147, 1, 1, 0,147, 1,111, 10, 0, 0, 19, 0, 4, 0, 18, 0,
- 2, 0, 16, 0, 2, 0, 30, 0, 2, 0,203, 8, 2, 0,168, 2, 2, 0,112, 10, 2, 0, 16, 7, 2, 0,100, 10, 2, 0, 44, 9,
- 7, 0,113, 10, 14, 0, 85, 9, 14, 0,114, 10,147, 1, 37, 0, 22, 0, 46, 7, 11, 0, 95, 10, 7, 0, 97, 10, 7, 0, 98, 10,
- 7, 0, 72, 2, 7, 0,250, 2, 7, 0,115, 10, 7, 0,116, 10, 7, 0,117, 10, 4, 0,118, 10, 0, 0,119, 10, 2, 0,120, 10,
- 2, 0,121, 10, 7, 0,122, 10, 7, 0,123, 10, 2, 0,124, 10, 2, 0,125, 10, 11, 0,126, 10, 19, 0,127, 10, 19, 0,128, 10,
- 19, 0,129, 10,146, 1,153, 0,148, 1,130, 10,149, 1,131, 10,145, 1, 8, 0,145, 1, 0, 0,145, 1, 1, 0,147, 1,132, 10,
-147, 1,133, 10,144, 1,134, 10,144, 1,135, 10, 4, 0, 18, 0, 4, 0, 27, 0, 56, 0, 23, 0, 22, 0, 32, 0, 34, 0, 74, 0,
-180, 0,177, 3, 14, 0,136, 10, 14, 0,137, 10, 4, 0, 16, 0, 4, 0,138, 10, 4, 0,139, 10, 4, 0, 18, 0, 4, 0,118, 10,
- 4, 0,140, 10, 2, 0,141, 10, 2, 0,142, 10, 4, 0,143, 10, 14, 0, 85, 9, 14, 0,114, 10,150, 1,144, 10, 11, 0,145, 10,
- 11, 0,146, 10, 4, 0,147, 10, 11, 0,148, 10, 11, 0,149, 10, 11, 0,150, 10,151, 1, 4, 0, 4, 0, 17, 0, 4, 0,223, 2,
- 4, 0,120, 9, 4, 0,121, 9,152, 1, 4, 0, 4, 0, 17, 0, 7, 0,223, 2, 7, 0,120, 9, 7, 0,121, 9,153, 1, 2, 0,
- 0, 0,223, 2, 0, 0, 73, 1,154, 1, 4, 0, 4, 0, 17, 0, 7, 0,151, 10, 7, 0,120, 9, 7, 0,121, 9,155, 1, 1, 0,
- 7, 0,152, 10,156, 1, 2, 0, 2, 0, 18, 0, 2, 0,153, 10,157, 1, 6, 0, 4, 0,126, 0, 4, 0,128, 0, 4, 0, 44, 9,
- 0, 0,154, 10, 0, 0,155, 10, 2, 0, 27, 0,158, 1, 6, 0, 7, 0, 23, 1, 7, 0, 22, 1, 7, 0,156, 10, 7, 0,157, 10,
- 7, 0,158, 10, 4, 0, 27, 0,159, 1, 6, 0,158, 1,159, 10,158, 1,160, 10,158, 1,161, 10,158, 1,162, 10, 7, 0,163, 10,
- 7, 0,164, 10,160, 1, 5, 0, 7, 0, 87, 3, 4, 0,165, 10, 7, 0,166, 10, 7, 0,167, 10, 7, 0,168, 10,161, 1, 6, 0,
- 7, 0, 5, 0, 7, 0, 6, 0, 7, 0,169, 10, 7, 0,250, 2, 7, 0, 72, 2, 4, 0, 27, 0,162, 1, 6, 0, 7, 0, 5, 0,
- 7, 0, 6, 0, 7, 0,169, 10, 7, 0,250, 2, 7, 0, 72, 2, 4, 0, 27, 0,163, 1, 2, 0, 4, 0,170, 10, 4, 0,171, 10,
-164, 1, 16, 0, 2, 0,146, 8, 2, 0,147, 8, 2, 0, 70, 5, 2, 0,172, 10, 2, 0,173, 10, 2, 0, 67, 0, 2, 0, 47, 7,
- 2, 0,174, 10, 7, 0,245, 2, 7, 0,175, 10, 7, 0,176, 10, 2, 0, 97, 1, 0, 0,177, 10, 0, 0,156, 10, 4, 0,178, 10,
- 4, 0,179, 10,165, 1, 9, 0, 7, 0,180, 10, 7, 0,181, 10, 7, 0,154, 9, 7, 0, 87, 3, 7, 0,182, 10, 7, 0,232, 6,
- 2, 0, 85, 3, 0, 0,183, 10, 0, 0, 27, 0,166, 1, 4, 0, 7, 0,184, 10, 7, 0,185, 10, 2, 0, 85, 3, 2, 0, 27, 0,
-167, 1, 3, 0, 7, 0,186, 10, 7, 0,216, 8, 7, 0, 14, 0,168, 1, 4, 0, 0, 0, 35, 0,206, 0, 81, 5, 4, 0,128, 0,
- 4, 0,131, 4,169, 1, 6, 0, 0, 0,187, 10,206, 0,188, 10, 4, 0,128, 0, 4, 0,131, 4, 4, 0,189, 10, 4, 0, 27, 0,
-170, 1, 7, 0, 2, 0,190, 10, 2, 0,191, 10, 4, 0, 66, 0, 0, 0, 76, 4,206, 0,188, 10, 0, 0,192, 10, 0, 0,175, 6,
-171, 1, 9, 0, 7, 0,193, 10, 7, 0,194, 10, 7, 0,195, 10, 7, 0, 83, 2, 7, 0,196, 10, 7, 0,197, 10, 7, 0,198, 10,
- 2, 0,199, 10, 2, 0,200, 10,172, 1, 8, 0, 2, 0,201, 10, 2, 0,202, 10, 2, 0,203, 10, 2, 0,204, 10, 7, 0,205, 10,
- 7, 0,206, 10, 7, 0,207, 10, 7, 0,208, 10,173, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,174, 1, 2, 0, 0, 0,169, 0,
- 0, 0,209, 10,175, 1, 1, 0, 0, 0, 19, 0,176, 1, 12, 0, 0, 0,210, 10, 0, 0,211, 10, 0, 0,209, 6, 0, 0,212, 10,
- 2, 0, 70, 5, 2, 0,213, 10, 7, 0,214, 10, 7, 0,215, 10, 7, 0,216, 10, 7, 0,141, 3, 7, 0,169, 10, 7, 0,217, 10,
-177, 1, 2, 0, 11, 0,218, 10, 11, 0,219, 10,178, 1, 13, 0, 0, 0, 73, 5, 0, 0, 16, 0, 0, 0, 85, 3, 0, 0, 87, 3,
- 0, 0,211, 10, 0, 0,107, 0, 0, 0,173, 2, 7, 0,220, 10, 7, 0,221, 10, 7, 0,140, 3, 7, 0,222, 10, 7, 0,223, 10,
- 7, 0,217, 10,179, 1, 8, 0, 7, 0, 51, 9, 7, 0,127, 0, 7, 0,156, 10, 7, 0,164, 2, 7, 0,224, 10, 7, 0,226, 0,
- 7, 0,225, 10, 4, 0, 16, 0,180, 1, 4, 0, 2, 0,226, 10, 2, 0,227, 10, 2, 0,228, 10, 2, 0, 27, 0,181, 1, 8, 0,
- 7, 0,229, 10, 7, 0,213, 2, 7, 0,230, 10, 7, 0,196, 8, 7, 0,197, 8, 7, 0,198, 8, 7, 0,231, 10, 7, 0,232, 10,
-182, 1, 6, 0, 2, 0,233, 10, 2, 0,234, 10, 7, 0,235, 10, 7, 0,236, 10, 7, 0,237, 10, 7, 0,238, 10,183, 1, 2, 0,
- 57, 0,239, 10, 58, 0,240, 10,184, 1, 3, 0,183, 1, 83, 6, 7, 0,241, 10, 7, 0,242, 10,185, 1, 3, 0,183, 1, 83, 6,
- 4, 0,243, 10, 4, 0, 27, 0,186, 1, 1, 0,183, 1, 83, 6,187, 1, 3, 0,183, 1, 83, 6, 4, 0,243, 10, 4, 0,244, 10,
-188, 1, 3, 0,183, 1, 83, 6, 4, 0,245, 10, 4, 0, 27, 0,189, 1, 1, 0,183, 1, 83, 6,190, 1, 3, 0,183, 1, 83, 6,
- 4, 0,246, 10, 4, 0, 27, 0,191, 1, 3, 0,183, 1, 83, 6, 4, 0,247, 10, 4, 0, 27, 0,192, 1, 3, 0,183, 1, 83, 6,
- 4, 0,248, 10, 4, 0, 27, 0,193, 1, 3, 0,183, 1, 83, 6, 4, 0,238, 0, 4, 0, 27, 0,194, 1, 1, 0, 0, 0, 19, 0,
-195, 1, 1, 0, 0, 0, 19, 0,196, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 18, 0, 2, 0,249, 10,197, 1, 10, 0,
- 2, 0, 61, 4, 2, 0, 18, 0, 7, 0,216, 4, 7, 0,250, 10, 7, 0,251, 10, 7, 0,252, 10, 7, 0,253, 10,196, 1,254, 10,
-196, 1,255, 10,196, 1, 0, 11, 53, 0, 11, 0, 4, 0, 18, 0, 4, 0, 62, 0, 4, 0, 1, 11, 4, 0, 2, 11, 19, 0, 3, 11,
- 19, 0, 4, 11,197, 1, 5, 11, 7, 0, 6, 11, 7, 0, 7, 11, 7, 0, 8, 11, 7, 0, 9, 11, 5, 1, 10, 0, 4, 0, 2, 10,
- 4, 0, 10, 11, 7, 0, 11, 11, 7, 0, 12, 11, 7, 0, 13, 11, 7, 0, 14, 11, 7, 0, 9, 0, 7, 0, 11, 0, 4, 0, 74, 1,
- 4, 0,250, 2, 4, 1, 18, 0, 4, 0,131, 0, 4, 0, 15, 11, 4, 0, 16, 11, 7, 0, 17, 11, 4, 0, 18, 11, 7, 0, 19, 11,
- 7, 0, 20, 11, 4, 0, 21, 11, 7, 0, 22, 11, 4, 0, 23, 11, 7, 0, 24, 11, 5, 1, 25, 11, 7, 0, 26, 11, 7, 0, 27, 11,
- 7, 0, 28, 11, 7, 0, 29, 11, 4, 0, 30, 11, 4, 0, 27, 0,198, 1, 4, 0, 42, 0,237, 2, 7, 0, 31, 11, 7, 0,168, 1,
- 7, 0, 27, 0,215, 0, 36, 0, 22, 0, 32, 0,198, 1, 32, 11, 53, 0,254, 10, 46, 0, 33, 11,215, 0, 34, 11, 51, 0, 35, 11,
- 25, 0,153, 0, 0, 0, 36, 11, 7, 0, 37, 11, 2, 0,113, 6, 2, 0, 38, 11, 7, 0, 30, 2, 4, 0,107, 0, 4, 0, 18, 0,
- 7, 0, 39, 11, 4, 0, 80, 2, 4, 0, 40, 11, 7, 0, 41, 11, 7, 0, 42, 11, 7, 0, 43, 11, 7, 0,168, 1, 4, 0, 44, 11,
- 7, 0, 45, 11, 0, 0, 46, 11, 0, 0, 47, 11, 0, 0, 48, 11, 0, 0, 49, 11, 7, 0, 50, 11, 7, 0, 51, 11, 7, 0, 52, 11,
- 7, 0,250, 2, 7, 0, 53, 11, 4, 0, 54, 11, 7, 0,245, 5, 7, 0, 55, 11, 7, 0, 56, 11,199, 1, 10, 0, 4, 0, 16, 0,
- 4, 0,127, 0, 4, 0, 18, 0, 4, 0, 14, 4, 4, 0, 57, 11, 4, 0, 58, 11, 4, 0, 59, 11, 4, 0, 69, 0, 0, 0, 19, 0,
- 11, 0, 2, 0,200, 1, 1, 0, 0, 0, 76, 7, 94, 0, 7, 0,199, 1, 60, 11, 4, 0, 61, 11, 4, 0, 62, 11, 4, 0, 63, 11,
- 4, 0, 64, 11, 11, 0, 65, 11,200, 1, 66, 11,201, 1, 5, 0, 7, 0,157, 2, 7, 0,233, 2, 7, 0, 30, 2, 2, 0,139, 2,
- 2, 0, 27, 0,202, 1, 5, 0, 7, 0,157, 2, 7, 0,158, 4, 7, 0, 67, 11, 7, 0, 68, 11, 7, 0,233, 2,203, 1, 5, 0,
- 27, 0, 69, 11,204, 1, 21, 0, 7, 0, 79, 6, 7, 0, 70, 11, 7, 0, 55, 0,205, 1, 3, 0, 7, 0, 71, 11, 4, 0, 72, 11,
- 4, 0, 73, 11,206, 1, 7, 0, 4, 0, 74, 11, 4, 0, 75, 11, 4, 0, 76, 11, 7, 0, 77, 11, 7, 0, 78, 11, 7, 0, 79, 11,
- 7, 0, 55, 0,207, 1, 8, 0,207, 1, 0, 0,207, 1, 1, 0, 27, 0, 43, 0, 4, 0,247, 0, 2, 0, 18, 0, 2, 0, 74, 1,
- 7, 0,233, 2, 7, 0, 59, 9,208, 1, 7, 0,208, 1, 0, 0,208, 1, 1, 0, 27, 0, 43, 0, 2, 0,218, 2, 2, 0, 18, 0,
- 2, 0, 4, 2, 2, 0, 55, 0,209, 1, 17, 0,202, 1, 7, 4,202, 1, 80, 11,201, 1, 81, 11,202, 1, 42, 9,203, 1, 82, 11,
- 4, 0, 81, 0, 7, 0,233, 2, 7, 0, 0, 3, 7, 0, 83, 11, 4, 0, 74, 11, 4, 0, 84, 11, 7, 0, 78, 11, 7, 0, 79, 11,
- 7, 0,107, 0, 4, 0, 85, 11, 2, 0, 18, 0, 2, 0, 86, 11,210, 1, 15, 0, 7, 0,243, 0, 7, 0, 87, 11, 7, 0, 71, 11,
- 7, 0, 88, 11, 7, 0, 89, 11, 7, 0, 90, 11, 7, 0, 91, 11, 7, 0, 92, 11, 7, 0, 93, 11, 7, 0, 94, 11, 7, 0, 95, 11,
- 7, 0, 96, 11, 7, 0, 97, 11, 4, 0, 18, 0, 4, 0, 98, 11,211, 1,128, 0, 22, 0, 32, 0, 34, 0, 74, 0,212, 1, 99, 11,
-210, 1,100, 11,189, 0,153, 4, 4, 0, 18, 0, 4, 0, 55, 0, 2, 0, 16, 0, 2, 0, 62, 10, 2, 0,101, 11, 2, 0,111, 1,
- 2, 0,102, 11, 2, 0,231, 3, 2, 0,103, 11, 2, 0,104, 11, 2, 0,105, 11, 2, 0,106, 11, 2, 0,107, 11, 2, 0,108, 11,
- 2, 0,109, 11, 2, 0,110, 11, 2, 0,111, 11, 2, 0,229, 5, 2, 0,112, 11, 2, 0,113, 11, 2, 0,114, 11, 2, 0,115, 11,
- 2, 0,116, 11, 2, 0, 19, 2, 2, 0, 35, 9, 2, 0, 10, 9, 2, 0,117, 11, 2, 0,118, 11, 2, 0, 24, 4, 2, 0, 25, 4,
- 2, 0,119, 11, 2, 0,120, 11, 2, 0,121, 11, 2, 0,122, 11, 7, 0,123, 11, 7, 0,124, 11, 7, 0,125, 11, 7, 0,126, 11,
- 7, 0,127, 11, 7, 0,128, 11, 7, 0,129, 11, 2, 0,155, 5, 2, 0,130, 11, 7, 0,131, 11, 7, 0,132, 11, 7, 0,133, 11,
- 7, 0, 17, 9, 7, 0, 90, 0, 7, 0, 0, 3, 7, 0, 23, 9, 7, 0,134, 11, 7, 0,135, 11, 7, 0,136, 11, 7, 0,137, 11,
- 7, 0,138, 11, 7, 0,139, 11, 4, 0, 18, 9, 4, 0, 16, 9, 4, 0,140, 11, 4, 0,141, 11, 2, 0,142, 11, 2, 0,143, 11,
- 7, 0, 19, 9, 7, 0, 20, 9, 7, 0, 21, 9, 7, 0,144, 11, 7, 0,145, 11, 7, 0,146, 11, 7, 0,147, 11, 7, 0,148, 11,
- 7, 0,149, 11, 7, 0,150, 11, 7, 0,151, 11, 7, 0,152, 11, 7, 0,217, 3, 7, 0,107, 0, 7, 0,153, 11, 7, 0,154, 11,
- 7, 0,155, 11, 7, 0,156, 11, 7, 0,213, 0, 7, 0,157, 11, 4, 0,158, 11, 4, 0,159, 11, 7, 0,160, 11, 7, 0,161, 11,
- 7, 0,162, 11, 7, 0,163, 11, 7, 0,164, 11, 7, 0,212, 0, 7, 0,165, 11, 7, 0, 51, 4, 7, 0, 49, 4, 7, 0, 50, 4,
- 7, 0,166, 11, 7, 0,167, 11, 7, 0,168, 11, 7, 0,169, 11, 7, 0,170, 11, 7, 0,171, 11, 7, 0,172, 11, 7, 0,173, 11,
- 7, 0,174, 11, 7, 0,175, 11, 7, 0,176, 11, 7, 0,177, 11, 7, 0,178, 11, 7, 0,179, 11, 7, 0,180, 11, 7, 0,181, 11,
- 7, 0,182, 11, 7, 0,183, 11, 4, 0,184, 11, 4, 0,185, 11, 46, 0,130, 1, 63, 0,255, 3, 14, 0,186, 11, 63, 0,187, 11,
- 27, 0,188, 11, 27, 0,189, 11, 31, 0, 79, 0,184, 0, 60, 1,184, 0,190, 11,151, 0, 52, 0,151, 0, 0, 0,151, 0, 1, 0,
-211, 1,191, 11,209, 1,192, 11,206, 1,221, 9,192, 0, 79, 4, 11, 0, 80, 4,213, 1,193, 11,213, 1,194, 11, 14, 0,195, 11,
- 14, 0,196, 11,136, 0,197, 11,144, 0,198, 11,144, 0,199, 11, 27, 0,200, 11, 27, 0,201, 11, 27, 0, 37, 0, 14, 0, 29, 10,
- 0, 0, 19, 0, 7, 0,232, 0, 7, 0, 29, 3, 7, 0,202, 11, 7, 0,203, 11, 4, 0,207, 2, 4, 0,204, 11, 4, 0, 18, 0,
- 4, 0, 18, 9, 4, 0,205, 11, 4, 0,206, 11, 4, 0,207, 11, 4, 0,208, 11, 2, 0,239, 0, 2, 0,209, 11, 2, 0,210, 11,
- 2, 0,211, 11, 0, 0,212, 11, 2, 0,213, 11, 2, 0,214, 11, 2, 0,215, 11, 11, 0,216, 11,140, 0,152, 4, 14, 0, 14, 3,
- 14, 0,217, 11,205, 1,218, 11, 4, 0,219, 11, 4, 0,220, 11,214, 1,221, 11,142, 0, 26, 3,215, 1,222, 11, 7, 0,223, 11,
- 7, 0,224, 11, 7, 0,225, 11,138, 0, 38, 0,216, 1,155, 9, 7, 0,122, 4, 7, 0,226, 11, 7, 0,227, 11, 7, 0, 79, 6,
- 7, 0,235, 3, 7, 0,217, 3, 7, 0,228, 11, 7, 0, 82, 2, 7, 0,229, 11, 7, 0,230, 11, 7, 0,231, 11, 7, 0,232, 11,
- 7, 0,233, 11, 7, 0,234, 11, 7, 0,123, 4, 7, 0,235, 11, 7, 0,236, 11, 7, 0,237, 11, 7, 0,124, 4, 7, 0,120, 4,
- 7, 0,121, 4, 7, 0,238, 11, 7, 0,239, 11, 7, 0,240, 11, 4, 0,241, 11, 4, 0, 91, 0, 4, 0,242, 11, 4, 0,243, 11,
- 2, 0,244, 11, 2, 0,245, 11, 2, 0,246, 11, 2, 0,247, 11, 2, 0,248, 11, 2, 0,249, 11, 2, 0,250, 11, 2, 0, 27, 0,
-189, 0,153, 4,139, 0, 11, 0,216, 1,251, 11, 7, 0,252, 11, 7, 0,253, 11, 7, 0,241, 1, 7, 0,254, 11, 7, 0,255, 11,
- 7, 0, 0, 12, 4, 0, 91, 0, 2, 0, 1, 12, 2, 0, 2, 12, 63, 0,240, 1,217, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0,
- 7, 0, 7, 0, 7, 0, 3, 12,218, 1, 6, 0,218, 1, 0, 0,218, 1, 1, 0,217, 1,197, 9, 4, 0,245, 0, 2, 0, 4, 12,
- 2, 0, 18, 0,219, 1, 5, 0,219, 1, 0, 0,219, 1, 1, 0, 14, 0, 5, 12, 4, 0, 6, 12, 4, 0, 18, 0,220, 1, 9, 0,
-220, 1, 0, 0,220, 1, 1, 0, 14, 0,126, 0,219, 1, 7, 12, 4, 0, 18, 0, 2, 0, 4, 12, 2, 0, 8, 12, 7, 0, 92, 0,
- 0, 0, 9, 12,180, 0, 6, 0, 22, 0, 32, 0, 14, 0,124, 5, 4, 0, 18, 0, 2, 0, 10, 12, 2, 0, 11, 12, 11, 0, 12, 12,
-221, 1, 6, 0, 14, 0, 13, 12, 4, 0, 14, 12, 4, 0, 15, 12, 4, 0, 18, 0, 4, 0, 27, 0,239, 0, 16, 12,222, 1, 19, 0,
- 22, 0, 32, 0,223, 1, 17, 12,223, 1, 18, 12, 14, 0, 19, 12, 4, 0, 20, 12, 2, 0, 21, 12, 2, 0, 22, 12, 14, 0, 23, 12,
- 14, 0, 24, 12,221, 1, 25, 12, 14, 0, 26, 12, 14, 0, 27, 12, 14, 0, 28, 12, 14, 0, 29, 12,224, 1, 30, 12,224, 1, 31, 12,
-224, 1, 32, 12, 14, 0, 33, 12,239, 0, 34, 12,223, 1, 32, 0,223, 1, 0, 0,223, 1, 1, 0, 11, 0, 35, 12, 4, 0,124, 8,
- 2, 0, 36, 12, 2, 0, 27, 0, 29, 1, 37, 12, 29, 1, 38, 12, 0, 0, 39, 12, 2, 0, 40, 12, 2, 0, 41, 12, 2, 0,146, 8,
- 2, 0,147, 8, 2, 0, 42, 12, 2, 0, 43, 12, 2, 0, 14, 4, 2, 0, 57, 7, 2, 0, 44, 12, 2, 0, 45, 12, 2, 0, 46, 12,
- 2, 0, 30, 0,225, 1, 47, 12,226, 1, 48, 12,227, 1, 49, 12, 4, 0, 50, 12, 4, 0, 51, 12, 11, 0, 52, 12, 14, 0, 24, 12,
- 14, 0,166, 8, 14, 0, 53, 12, 14, 0, 54, 12, 14, 0, 55, 12,228, 1, 18, 0,228, 1, 0, 0,228, 1, 1, 0, 0, 0, 56, 12,
- 21, 0, 31, 0, 0, 0, 57, 12, 2, 0, 58, 12, 2, 0, 16, 0, 2, 0, 14, 0, 2, 0, 59, 12, 2, 0, 60, 12, 2, 0, 61, 12,
- 2, 0, 62, 12, 2, 0, 63, 12, 2, 0, 18, 0, 2, 0, 64, 12, 2, 0, 32, 0, 2, 0, 27, 0,229, 1, 65, 12,230, 1, 4, 0,
-230, 1, 0, 0,230, 1, 1, 0,228, 1, 66, 12,228, 1, 67, 12,231, 1, 11, 0,231, 1, 0, 0,231, 1, 1, 0, 14, 0, 68, 12,
- 14, 0, 69, 12, 0, 0, 56, 12, 2, 0, 70, 12, 2, 0, 71, 12, 2, 0, 18, 0, 2, 0, 72, 12, 4, 0, 73, 12, 11, 0, 74, 12,
-224, 1, 7, 0,224, 1, 0, 0,224, 1, 1, 0, 0, 0, 56, 12, 0, 0, 75, 12, 14, 0, 64, 8, 4, 0, 76, 12, 4, 0, 18, 0,
- 1, 1, 14, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 56, 12, 21, 0, 31, 0,232, 1,140, 8, 11, 0, 77, 12, 11, 0, 78, 12,
-229, 1, 65, 12,221, 1, 79, 12, 14, 0, 80, 12, 1, 1, 81, 12, 34, 1,253, 6, 2, 0, 18, 0, 2, 0, 73, 1,233, 1, 12, 0,
-233, 1, 0, 0,233, 1, 1, 0, 11, 0, 2, 0, 11, 0, 82, 12, 0, 0, 19, 0, 2, 0, 16, 0, 2, 0, 18, 0, 7, 0,142, 9,
- 7, 0,128, 0, 7, 0,131, 4, 7, 0, 92, 9, 7, 0, 85, 10,234, 1, 5, 0, 7, 0, 83, 12, 4, 0, 84, 12, 4, 0, 85, 12,
- 4, 0, 74, 1, 4, 0, 18, 0,235, 1, 6, 0, 7, 0, 86, 12, 7, 0, 87, 12, 7, 0, 88, 12, 7, 0, 89, 12, 4, 0, 16, 0,
- 4, 0, 18, 0,236, 1, 5, 0, 7, 0,120, 9, 7, 0,121, 9, 7, 0,233, 2, 2, 0, 33, 2, 2, 0, 34, 2,237, 1, 5, 0,
-236, 1, 2, 0, 4, 0, 52, 0, 7, 0, 90, 12, 7, 0,120, 9, 7, 0,121, 9,238, 1, 4, 0, 2, 0, 91, 12, 2, 0, 92, 12,
- 2, 0, 93, 12, 2, 0, 94, 12,239, 1, 2, 0, 37, 0, 44, 7, 21, 0,161, 9,240, 1, 3, 0, 19, 0, 95, 12, 4, 0, 18, 0,
- 4, 0, 27, 0,241, 1, 6, 0, 7, 0,107, 0, 7, 0,202, 2, 7, 0, 96, 12, 7, 0, 27, 0, 2, 0,238, 0, 2, 0, 97, 12,
-242, 1, 5, 0, 7, 0, 98, 12, 7, 0,127, 0, 7, 0,198, 9, 7, 0,199, 9, 4, 0, 18, 0,243, 1, 6, 0, 22, 0, 46, 7,
- 0, 0, 99, 12, 0, 0,100, 12, 2, 0,101, 12, 2, 0, 18, 0, 4, 0,102, 12,244, 1, 7, 0,244, 1, 0, 0,244, 1, 1, 0,
- 0, 0, 19, 0,243, 1,103, 12, 2, 0,104, 12, 2, 0, 16, 0, 7, 0, 59, 0,245, 1, 7, 0, 14, 0,105, 12, 0, 0,106, 12,
- 11, 0,107, 12, 7, 0, 59, 0, 7, 0,142, 9, 4, 0, 16, 0, 4, 0, 18, 0,246, 1, 3, 0, 7, 0,108, 12, 4, 0, 18, 0,
- 4, 0, 27, 0,247, 1, 15, 0,247, 1, 0, 0,247, 1, 1, 0,107, 1, 16, 10,245, 1, 60, 0, 14, 0,183, 3, 30, 0, 48, 0,
-246, 1,109, 12, 4, 0, 52, 0, 7, 0, 59, 0, 2, 0, 18, 0, 2, 0, 10, 1, 4, 0,110, 12, 0, 0, 99, 12, 4, 0,111, 12,
- 7, 0,113, 10,248, 1, 2, 0, 0, 0,112, 12, 0, 0,113, 12,249, 1, 4, 0,249, 1, 0, 0,249, 1, 1, 0,178, 0, 63, 3,
- 14, 0,114, 12,250, 1, 25, 0,250, 1, 0, 0,250, 1, 1, 0, 14, 0,115, 12,178, 0, 90, 9,249, 1,116, 12, 14, 0,117, 12,
- 14, 0,183, 3, 0, 0, 19, 0, 7, 0,142, 9, 7, 0,118, 12, 7, 0, 89, 0, 7, 0, 90, 0, 7, 0, 81, 10, 7, 0, 82, 10,
- 7, 0,246, 2, 7, 0,141, 3, 7, 0, 92, 9, 7, 0, 85, 10, 2, 0,119, 12, 2, 0,120, 12, 2, 0, 66, 0, 2, 0, 16, 0,
- 11, 0,121, 12, 4, 0, 18, 0, 4, 0, 30, 0,251, 1, 6, 0,251, 1, 0, 0,251, 1, 1, 0, 14, 0,115, 12, 4, 0, 18, 0,
- 4, 0, 4, 2, 0, 0, 19, 0,252, 1, 11, 0,252, 1, 0, 0,252, 1, 1, 0, 22, 0, 46, 7, 0, 0,122, 12, 4, 0,102, 12,
- 2, 0,123, 12, 2, 0, 27, 0, 0, 0, 99, 12, 4, 0,110, 12, 2, 0, 18, 0, 2, 0,124, 12,253, 1, 10, 0,253, 1, 0, 0,
-253, 1, 1, 0, 14, 0,125, 12, 0, 0, 56, 12, 0, 0, 19, 0, 0, 0,126, 12, 0, 0,127, 12, 2, 0, 18, 0, 2, 0,124, 12,
- 4, 0,128, 12,254, 1, 5, 0,254, 1, 0, 0,254, 1, 1, 0, 0, 0, 99, 12, 4, 0,110, 12, 7, 0,223, 2, 34, 0, 12, 0,
-178, 0,174, 3,178, 0,129, 12,249, 1,116, 12, 14, 0,130, 12,250, 1,131, 12, 14, 0,132, 12, 14, 0,133, 12, 4, 0, 18, 0,
- 4, 0,239, 0, 2, 0,134, 12, 2, 0,135, 12, 7, 0,136, 12,255, 1, 2, 0, 22, 0, 32, 0, 34, 0, 74, 0, 0, 2, 5, 0,
- 0, 2, 0, 0, 0, 2, 1, 0, 4, 0, 16, 0, 4, 0, 18, 0, 0, 0,173, 5, 1, 2, 6, 0, 0, 2,137, 12, 27, 0, 43, 0,
- 4, 0,138, 12, 7, 0,139, 12, 4, 0,140, 12, 4, 0, 2, 10, 2, 2, 3, 0, 0, 2,137, 12, 4, 0,138, 12, 7, 0,141, 12,
- 3, 2, 8, 0, 0, 2,137, 12, 27, 0, 43, 0, 7, 0, 64, 1, 7, 0,142, 12, 7, 0, 29, 3, 7, 0,154, 9, 4, 0,138, 12,
- 4, 0,143, 12, 4, 2, 5, 0, 0, 2,137, 12, 7, 0,144, 12, 7, 0,168, 2, 7, 0,252, 2, 7, 0, 55, 0, 5, 2, 3, 0,
- 0, 2,137, 12, 7, 0,154, 9, 7, 0,145, 12,204, 1, 4, 0, 7, 0,146, 12, 7, 0,154, 11, 2, 0,147, 12, 2, 0, 74, 1,
- 6, 2, 14, 0, 6, 2, 0, 0, 6, 2, 1, 0, 14, 0,148, 12, 14, 0,149, 12, 14, 0,150, 12, 0, 0,173, 5, 4, 0, 32, 0,
- 4, 0, 18, 0, 4, 0,151, 12, 7, 0,152, 12, 4, 0,140, 12, 4, 0, 2, 10, 7, 0, 83, 4, 7, 0,254, 2,212, 1, 23, 0,
- 4, 0,138, 12, 4, 0,153, 12, 7, 0,154, 12, 7, 0,250, 2, 7, 0,155, 12, 7, 0,233, 8, 7, 0,146, 12, 7, 0,156, 12,
- 7, 0,202, 2, 7, 0, 17, 11, 7, 0,216, 4, 7, 0,157, 12, 7, 0,158, 12, 7, 0,159, 12, 7, 0,160, 12, 7, 0,161, 12,
- 7, 0,162, 12, 7, 0,163, 12, 7, 0,164, 12, 7, 0,165, 12, 7, 0,166, 12, 7, 0,167, 12, 14, 0,168, 12,124, 0, 40, 0,
-123, 0,169, 12, 7, 2,100, 11, 63, 0,170, 12, 63, 0,187, 11, 63, 0,171, 12, 8, 2,172, 12, 43, 0,168, 0, 43, 0,173, 12,
- 43, 0,174, 12, 7, 0,175, 12, 7, 0,176, 12, 7, 0,177, 12, 7, 0,178, 12, 7, 0,179, 12, 7, 0,123, 8, 7, 0,180, 12,
- 7, 0,168, 1, 7, 0,181, 12, 7, 0,141, 3, 4, 0,182, 12, 4, 0,183, 12, 4, 0,184, 12, 4, 0, 91, 0, 4, 0,185, 12,
- 2, 0,186, 12, 2, 0,187, 12, 4, 0,188, 12, 7, 0,202, 2, 4, 0,189, 12, 7, 0,190, 12, 4, 0,191, 12, 4, 0,192, 12,
- 4, 0,193, 12,140, 0,194, 12, 14, 0,195, 12,189, 0,153, 4, 4, 0,196, 12, 7, 0,197, 12, 7, 0,198, 12, 4, 0, 30, 0,
-125, 0, 12, 0,123, 0,169, 12,151, 0, 49, 3, 7, 0,133, 1, 7, 0,123, 8, 7, 0,199, 12, 7, 0,200, 12, 7, 0,201, 12,
- 2, 0,202, 12, 2, 0,203, 12, 2, 0,204, 12, 2, 0, 16, 0, 4, 0, 91, 0,126, 0, 15, 0,123, 0,169, 12,142, 0, 26, 3,
- 7, 0,197, 9, 7, 0,205, 12, 7, 0,206, 12, 4, 0,207, 12, 7, 0, 66, 1, 7, 0,208, 12, 4, 0, 38, 10, 4, 0, 22, 3,
- 4, 0,209, 12, 7, 0,178, 12, 2, 0, 16, 0, 2, 0, 27, 0, 4, 0, 30, 0, 9, 2, 15, 0, 22, 0, 32, 0, 34, 0, 74, 0,
- 47, 1,231, 8, 7, 0,210, 12, 7, 0,211, 12, 7, 0,212, 12, 7, 0,213, 12, 7, 0,153, 9, 7, 0,214, 12, 7, 0,215, 12,
- 7, 0,216, 12, 7, 0, 83, 4, 7, 0,233, 8, 2, 0, 18, 0, 2, 0,116, 9,233, 0, 3, 0, 4, 0,125, 0, 2, 0,229, 6,
- 2, 0,217, 12, 10, 2, 5, 0, 0, 0,199, 8, 2, 0,200, 8, 2, 0, 73, 5, 2, 0,218, 12, 2, 0,219, 12,231, 0, 16, 0,
- 22, 0, 32, 0, 34, 0, 74, 0, 0, 0, 35, 0, 4, 0,142, 0, 4, 0,143, 0, 4, 0,220, 12, 7, 0,161, 0, 7, 0,162, 0,
- 44, 0,137, 0, 11, 2,155, 9,180, 0,177, 3, 12, 2,221, 12, 11, 0,222, 12, 10, 2,223, 12, 4, 0, 18, 0, 4, 0, 22, 0,
- 15, 1, 10, 0, 4, 0,131, 0, 4, 0,224, 12, 51, 0,225, 12, 7, 0,226, 12, 2, 0,227, 12, 0, 0,173, 2, 4, 0,125, 0,
- 13, 2,170, 3, 14, 2,228, 12, 7, 0,229, 12, 15, 2, 3, 0, 4, 0,125, 0, 7, 0,230, 12, 7, 0, 66, 1, 16, 2, 11, 0,
- 11, 0,231, 12, 7, 0,232, 12, 7, 0,233, 12, 7, 0, 27, 0, 7, 0,234, 12, 2, 0,235, 12, 2, 0, 66, 0, 7, 0,236, 12,
- 7, 0,237, 12, 7, 0,238, 12, 7, 0,239, 12, 14, 2, 3, 0, 7, 0,240, 12, 4, 0,125, 0, 4, 0, 18, 0, 13, 2, 24, 0,
- 13, 2, 0, 0, 13, 2, 1, 0, 0, 0, 19, 0, 7, 0,241, 12, 7, 0,242, 12, 7, 0,243, 12, 7, 0,244, 12, 7, 0, 31, 11,
- 4, 0,245, 12, 4, 0,246, 12, 14, 2,247, 12, 7, 0,248, 12, 7, 0,230, 12, 4, 0, 18, 0, 4, 0,249, 12, 4, 0,250, 12,
- 7, 0,113, 10, 2, 0,251, 12, 2, 0,222, 3, 2, 0,252, 12, 2, 0,253, 12, 2, 0,254, 12, 2, 0, 30, 0, 7, 0,255, 12,
- 17, 2, 22, 0, 4, 0, 18, 0, 2, 0, 0, 13, 2, 0, 1, 13, 7, 0, 2, 13, 2, 0, 3, 13, 2, 0, 4, 13, 2, 0, 5, 13,
- 2, 0, 6, 13, 2, 0, 7, 13, 2, 0, 8, 13, 2, 0, 9, 13, 2, 0,252, 2, 4, 0, 10, 13, 4, 0, 11, 13, 2, 0, 12, 13,
- 2, 0, 30, 0, 7, 0, 81, 1, 4, 0, 13, 13, 4, 0, 14, 13, 7, 0, 15, 13, 7, 0, 16, 13, 4, 0,237, 1, 18, 2, 12, 0,
- 4, 0, 18, 0, 4, 0, 17, 13, 4, 0, 18, 13, 7, 0, 19, 13, 13, 2, 20, 13, 7, 0, 21, 13, 7, 0, 22, 13, 7, 0, 23, 13,
- 4, 0,180, 1, 4, 0,131, 0, 7, 0,141, 3, 51, 0, 24, 13, 19, 2, 5, 0, 4, 0, 18, 0, 7, 0,230, 12, 4, 0, 25, 13,
- 4, 0, 26, 13, 15, 2, 27, 13, 20, 2, 7, 0, 20, 2, 0, 0, 20, 2, 1, 0, 0, 0, 19, 0, 4, 0, 18, 0, 7, 0,141, 3,
- 14, 0, 28, 13, 19, 2, 29, 13, 21, 2, 1, 0, 0, 0, 30, 13, 22, 2, 8, 0, 22, 2, 0, 0, 22, 2, 1, 0, 13, 2,170, 3,
- 4, 0, 27, 0, 4, 0, 31, 13, 4, 0, 32, 13, 4, 0, 33, 13, 4, 0, 34, 13, 23, 2, 6, 0, 4, 0,131, 0, 4, 0, 27, 0,
- 14, 0, 2, 10, 4, 0, 35, 13, 2, 0, 36, 13, 2, 0, 37, 13, 12, 2, 11, 0, 17, 2, 38, 13, 16, 2, 39, 13, 14, 0, 28, 13,
- 19, 2, 29, 13, 18, 2, 40, 13, 13, 2, 41, 13, 14, 0, 42, 13, 4, 0, 43, 13, 4, 0, 44, 13, 21, 2, 94, 6, 23, 2, 45, 13,
- 24, 2, 48, 0, 24, 2, 0, 0, 24, 2, 1, 0,170, 0,138, 3, 25, 2, 2, 0, 63, 0, 46, 13,189, 0,153, 4,140, 0,152, 4,
- 14, 0, 14, 3, 4, 0, 47, 13, 0, 0, 19, 0, 2, 0,188, 10, 2, 0, 16, 0, 2, 0, 48, 13, 2, 0, 49, 13, 2, 0, 50, 13,
- 2, 0, 51, 13, 2, 0, 52, 13, 2, 0, 53, 13, 4, 0, 91, 0, 4, 0,181, 3, 4, 0, 54, 13, 4, 0, 55, 13, 4, 0,198, 9,
- 4, 0,199, 9, 4, 0, 27, 0, 7, 0, 56, 13, 47, 0, 57, 13, 0, 0, 58, 13, 4, 0, 59, 13, 4, 0,188, 12, 7, 0, 60, 13,
- 7, 0, 61, 13, 7, 0, 62, 13, 7, 0, 63, 13, 7, 0, 64, 13, 7, 0, 65, 13, 7, 0, 66, 13, 7, 0, 67, 13, 7, 0, 68, 13,
- 7, 0, 69, 13, 7, 0, 70, 13, 7, 0, 71, 13, 7, 0, 72, 13, 7, 0, 73, 13, 0, 0,195, 2, 0, 0, 74, 13, 0, 0, 75, 13,
- 0, 0, 76, 13,170, 0, 7, 0,169, 0, 77, 13,144, 0, 28, 3, 14, 0, 78, 13, 2, 0, 79, 13, 2, 0, 91, 0, 4, 0, 27, 0,
- 0, 0, 80, 13,171, 0, 24, 0,169, 0, 77, 13,144, 0, 28, 3,151, 0, 49, 3, 62, 0, 16, 2, 4, 0, 91, 0, 4, 0, 81, 13,
- 7, 0,184, 0, 7, 0,185, 0, 7, 0,186, 0, 7, 0,168, 1, 7, 0, 82, 13, 7, 0, 83, 13, 7, 0, 84, 13, 7, 0, 85, 13,
- 49, 0, 86, 13, 49, 0, 87, 13, 2, 0, 88, 13, 2, 0,248, 10, 2, 0, 89, 13, 2, 0, 27, 0, 7, 0, 90, 13, 7, 0, 91, 13,
- 7, 0, 92, 13, 7, 0, 93, 13, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0};
-
diff --git a/source/blender/editors/datafiles/subtract.png.c b/source/blender/editors/datafiles/subtract.png.c
deleted file mode 100644
index 65d90fec33d..00000000000
--- a/source/blender/editors/datafiles/subtract.png.c
+++ /dev/null
@@ -1,327 +0,0 @@
-/** \file blender/editors/datafiles/subtract.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <subtract_png> */
-
-int datatoc_subtract_png_size= 10173;
-char datatoc_subtract_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1,
- 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0,
- 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116,
- 73, 77, 69, 7,218, 7, 21, 0, 4, 18, 61, 67, 90, 24, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,125,107,144,101,215, 85,222,
-247,173,189,207,125,245, 99,186,123, 52, 15, 73,150, 61,163, 7,214, 3, 84,150, 98, 25,108,112, 98, 10,227, 84,153,184,192,174,
-178, 9,166, 98, 8,143,144, 63, 38,188, 13,150, 13, 69,112, 66, 32,127,120, 36, 36, 85,137, 19, 72, 12, 1, 12, 85,240, 43,132,
- 10, 69, 72, 72, 72, 48,182, 83,216,178,101,189, 40,235, 57, 51,210,204,244,244,227,190,206,217,107,229,199,218,251,156,115, 91,
- 45, 33, 7,147, 10, 85,186, 83,234,190,125,187,239,185,251,236,199, 90,223,250,214,183,150,128, 47,244,113,246,250,235,207,159,
-191,249,249,175, 19,192,251,126,248,253, 41, 53, 4, 68,132, 34, 49,198, 42,198, 88, 85,247,191,255, 71,252,143,194,119,255,131,
-239,169,235,101, 74,141,170, 38, 85,213,116,237,218,181,221,221,221,139, 23, 46,168,166, 24,227,254,254,126, 92, 46, 23, 48, 0,
-144, 32, 66,249,221,223,253, 79,170, 26,130,144, 52,200,183,254,221,111,251,167, 63,253, 83,241,242,238,236,211,143, 76,247,103,
-137,148, 48,123,144,169, 9,129,170, 8,129, 48,133,225,254,251, 63, 16,174, 54,175, 92,212,201,204, 76,237,217, 11,143,204,230,
-105, 80,137, 8, 0,188,250,213,175,222,217,217, 49, 51, 81, 77,166,106,170,254, 36,169, 61,183,187,104,172,186,227,142, 59,206,
-157, 59, 95, 55,117, 83,215, 17,166,106, 70,210,239,212,204, 70, 27, 55, 52,227, 87, 61,115,109,124,118, 89, 15, 96, 48,132,181,
-173, 91, 72, 3,140,192, 98,250,236,218,214,249,225,218, 41,146, 7,135,233,145, 39,103, 77,194,117, 91, 21, 79,221,252, 53, 68,
-128, 0, 70,144,164,144, 32, 2, 67, 32,133, 20, 72,140,166,102, 76, 72, 20, 33, 76, 12, 9, 16, 64,125, 94,140, 12,208,151,180,
- 92,161,125, 54, 30, 79,110,186,233, 38, 17,206,102,179,163,107,119,239,189,247,126,205,155,191,214,204,132,164, 72, 8,193, 23,
-238,119,126,231, 63,254,247, 63,252,195,124,165,119,190,243, 93, 77, 83,107, 74,170,170,154,230,179,217,238,238,238,213, 43, 87,
-154,212,140,134,163, 75,151, 46, 2,136,203,229, 18, 0,133, 34,242,208,231, 30,122,236,207, 30, 19, 97,144, 96,160, 16,255,240,
- 39, 62,244,163, 31,252, 0,223,244, 55,191,249,145, 39,231, 36,163, 64,247,254, 36,132, 16, 72,138,144,114,250,244,233, 55,189,
-233, 77,195,209, 40, 44,226,121, 0,170, 54,221,191,116,245,202,101, 85, 29, 84, 2,160,170,170, 55,190,241,141, 66,170, 89, 84,
-168,168, 2,162,245, 12,208,195,153,153,133,155,207,157,121,205,107,190,212,204,150, 77,109, 64, 52, 85, 3, 65, 5, 9,133,196,
-170, 58,241,234,203,139,141,253, 41, 6,131,218,204,215,110,231,102,192, 12, 0,116, 57,125,238,196,217,187, 37, 14,146,218,147,
- 23,150, 79, 94, 90,156,217, 25, 84, 21,121,234,252,155, 41, 2, 10, 1, 3,132, 2, 33, 24,136, 64, 9, 65, 2, 36, 70,133,138,
- 25, 13, 6, 64,104,170, 4, 41, 2, 36, 2, 6,138, 41,190, 88, 15,246,127,248,158,239,253,190,181,201,154,193,136,252,143, 66,
-161, 72, 16,146, 65,194,207,253,220,207, 92,188,120,241,248, 11,253,192, 15,254, 80,210, 4, 3,212,252,178, 4, 40, 36,132, 66,
-128, 20, 4, 9, 20, 6, 9,126,192,133,114,225,226,133, 95,248,231,255,172,127,161, 56,157, 78, 1,191,123, 0, 96,239, 1,226,
-169, 39,159,122,234,169, 39,175,237,237,165,166, 1, 72,162,124,197,157,119,222,245,174,111,252,198, 95,254,229,143, 60,252,208,
- 67, 0, 98,189, 92, 2, 80,179,197,210,246,167,141, 26,215,198,225,196,122,188,116,241,210,167, 62,245,167,102, 6, 80,196, 47,
-155, 47, 1,243, 79,182,212, 52,239,126,247, 55,135, 16,126,244,131, 31,224,185,187,223,145,212, 82,242,155, 34, 0, 19,166,249,
-254,193,149,135, 5,245,218, 40, 12,135, 18, 68, 72,136,136,143, 84,213, 98, 12,175,127,253,235, 79,157, 62, 19, 68, 68, 36, 84,
- 49, 46,230, 13,104, 32, 13, 20, 51,136, 88,178,229,226, 90,106, 22, 9,118,237,192,194, 12, 85, 37,227, 97, 24, 84, 54,168,226,
-250,198,198,217,179,103,111,184,254,134,141,141,245,166,174, 85, 68, 68,146,106, 52, 36,152, 65,197,104, 70,129, 54,102, 52,109,
-204,140,132, 65,155, 68, 53, 38,140, 55, 71, 39,111,186,233,250,155, 95,185, 51, 26,134, 42, 74,221, 52, 66, 17, 17, 10, 69, 53,
-154, 54, 48,129, 36, 51,154, 53,160,152, 41,165, 2,168,154, 36, 84,147,205, 87, 12,198, 59, 12, 3, 21, 62,246, 76,250,179, 11,
-207,141, 71,241,149,103, 71,175,186,126, 60,172, 66,140,126, 53,229,169, 91,190, 22, 32, 65,243,111, 20, 0,166,233,224,202,163,
-195,241, 78, 53,185,142,190, 19, 64,131, 80, 4,230,198, 43,248,132,146,178, 62,137, 59, 91,195,168,154,124, 65, 0, 0, 98,154,
- 32, 48,114,253,228,173,244, 21, 2,168,102, 36, 8, 36,131,228, 79,242,205,166,134,131, 89,115, 56,215,104,166,190,147, 65,129,
- 41, 8, 83, 10, 45, 95,195,104, 66, 49, 64,220, 48, 10, 44, 1, 66,136, 65, 97, 36,205, 20, 38,134,255,239, 30, 60,246,213,237,
-237,237,173,173,109, 0,139,197,124,119,119,119, 58,157,126, 1, 23,186,245,182,219,222,249,206,119,181,199, 41, 47, 9, 69,130,
-136, 72, 8, 97,119,247,218, 63,253,233,127,242, 98, 23,250,225, 31,121,191, 38, 53,183,135,249,244,251,193, 39, 37, 63,130, 95,
- 76, 66,172,226,251,126,232, 7,143,241, 55,223,247,253, 63,144,154,148, 52,185, 55, 85, 51,115,127, 9, 51, 83, 3,160, 90,126,
- 86, 53, 75, 77,186,251,203,238, 62,119,254,252, 3, 15,124,122,197,140, 52, 77,227,239,205, 91,134, 36,105, 44, 35, 82,155, 45,
-151,203,122,169, 73, 85, 83, 93, 55,187,187, 87,159,120,226,201,186,169,255,246, 55,189,251, 87,255,195,175,172, 92, 40, 27,118,
-191,213,114,194, 9,166,148,158,126,250,169, 39,158,120,114,111,111, 15,176,108, 68, 72, 33, 72, 46, 23,139,159,248,208, 63,250,
-224, 7,238,247, 55, 74,113,125,170,170,106,106,106,166,102,170,251,251,251,159,249,204,103, 62,253,233, 79,239,238, 94, 53, 51,
-186,137, 32,105, 52,133,170,165,148,234,229,242, 39,127,242,167,242,133, 82, 74, 73,211,108, 94, 95,120,110,246,212,197,249,229,
-221,249,124,209, 92,187,118,237,137, 39,158,120,252,137,199, 83, 74,128, 25, 76,205,124,224, 70,115,172, 32, 66,144,203,122,249,
-222,239,254,110, 0,113,247, 96,249,240,227,243,203,187,117,158, 33, 48,136, 5,189,170,179,103,180,105, 68,168, 10,138, 9, 73,
- 90,222, 46,170, 27, 91, 91,227,241, 88, 83,130,217,117, 39,175, 35,200,115,119,191,163,110,204,204,237,168, 1, 76,245,124, 57,
-189,180,156, 62, 43, 76,147, 81, 24, 13, 67, 16, 58,118,162,136,169,133, 32,175,190,253,246, 87,188,226, 21,155, 27,155,190, 43,
- 6,195, 97, 92, 44,147, 91,144,188,137,136,148,230, 77,179,104,154,134,176, 3, 69,147,108,109, 28, 42, 31, 79, 74, 85, 85,189,
-242,149,175, 60,117,221,169,209, 96,148, 52,249, 16,150,203,101,132,153,249,152,243,102,132,166,100,154,204,204, 8, 36,157, 47,
- 12,192,218, 8, 33,112,243,196,137, 51,103,206,158, 61,123,118, 60, 30, 27, 77,147, 66,128,166,129, 33,170, 37,130,132,193, 8,
- 49, 53,194,146, 89,242,181, 86, 51, 36, 76,231, 41,198,120,102,123,231,134, 27,206,156, 57,115,102, 60,153,144,212,148,140,101,
- 9,208, 68,250, 90,128,160,193, 64, 67,111,127, 90,158, 97, 86, 11,221, 28,108,220,180,125,221,169, 88, 5, 83, 83,170,169, 4,
- 49, 85,245,251, 8,107, 39,111, 53, 51, 16,221,160,154, 69, 90, 78,181, 94, 0, 48, 72,168, 6,163,141,235, 39, 39,110, 58,152,
-203,225, 44,141,135, 18,131,111,124,199,150,121, 37,195,218,246, 45, 20,150, 19, 76,192, 52,213,169,158,107, 51, 51, 82, 66, 53,
-222,188,105,180,118,202,135, 61,155,235,179,215,234,101,173, 85,148, 24,203,251,232, 35,218,185,197, 64, 88,177,218, 0, 76, 53,
- 45, 82, 51, 23, 9,147,173,115,195,241, 54, 0,250,176,193, 38,233,181,189,116,113,183,217,221,111,150,141,141, 6, 18, 3, 65,
-242,244,205,111, 1, 13,144,214, 33,171,105, 61,187,218, 44,246, 6,227,173,193,228, 58,152,123, 22, 97,129,137, 0, 8, 49,146,
-100, 8, 97,125, 18,119, 78, 12,120,234,230, 55,103, 12, 3,177,226, 79,172, 51, 87, 36,197, 15, 89,190, 7, 7, 2, 32,253,179,
- 69,128, 32,194, 8, 51,248, 70,162,250,212,169, 27, 71,144,102, 32,220, 71,152, 1, 2,128,180,124,132, 77, 76, 72, 24, 32,166,
-128, 24,212,151,221,242,178, 27, 13, 84,131,169, 18,102, 70,152,154,219, 54,133,153,194, 64, 5, 64,133,101,115, 97, 52,136, 25,
- 96,166,166, 6,131,169, 42, 12, 10, 26, 0,154,250, 7,148, 97,148,193,107,222,101, 62, 17, 68, 25,195,203,143, 47,220,207,182,
-143,155,111,190,229,206, 59,239, 60,127,203, 45, 59,219,219,221,171,150, 79, 1, 29, 60,231,111,178,187,187,251,208, 67,159,251,
-212,167,254,244,209, 71, 31,253,226, 12,104,125,125,253,157,239,124,215,245,215,223,160,170,214, 1,102, 43, 24,181, 96,120,244,
- 96,114,239, 33,221, 51, 17, 10,136, 88, 85,191,241,235,191,254, 39,127,242,177,151,190, 57,248,182,183,189,237,206, 59,239, 82,
-119, 53,217,243,175,188,187,152, 9,174, 98,245,252,100,117, 72, 30,112,116,195, 42, 3, 21,146, 23, 46, 94,248,181, 95,253,213,
-139, 23, 47,188,248,128,226, 45,183,126,201, 98,177, 44,243,113,204,141,176, 13,110,122,176,191, 63,184,186,174, 65,164,166, 41,
-247, 4,148, 51,219,164, 4,179,253,253,125, 51,123,250,233,167,207,157, 59,119,203, 45, 55,199, 88,253,209, 31,253,143,186,174,
-143, 31, 80,106,234, 50,136, 46,168,233,141,134,182, 50,160,110,241, 82,147,118,119,175,154,225,185,231,158, 83,213,217,108,166,
-154,138, 15,113,183, 6, 53,245, 17,155,217,124,190, 48, 83, 7, 93, 95,255, 13,111,191,231,158,123,254,205,135, 63,252,232,163,
-143, 28, 29,144,223,196,241,187, 43, 3, 15,182, 70,210,173, 99, 93, 47,247,247, 15,154,166,126,230,153,167, 85,109,111,111, 79,
- 85,253, 83,219,187, 48, 72,241, 37, 14, 21,252, 34,230, 62, 42, 53,205,124, 62,255, 59,239,121,207,112, 56,252,151,255,226, 23,
- 62,255,249,207,247,103,168,233,157,158,124,201,166,201, 3, 2, 17,131,128,136, 66, 6,106,147,154, 38, 77,167,211,199,159,120,
- 60, 53,233,242,229,231, 12, 6, 53, 3, 68,104, 70, 17, 90,246,114,101, 36,249, 66, 86,176,160, 2,162,170,154, 26, 0,245,114,
-249, 29,223,249,247, 6,213,224,125,239,203,120, 52,214, 77, 2,144,212,212,160,201,150, 9,150,236,112,150,204,193, 39, 57, 26,
-136, 8,199, 67,198,200,233,193,193,225,225,222,116,122,120,225,153,103,156,112,112,223, 40,238, 31,104,150,125,187, 16,170,160,
-120, 0, 9,154, 99, 0, 90, 21, 29,100, 11, 41, 48,107,154,134, 34,170,250,161, 15,253,227,143,124,228,223, 63,248,224,103,227,
-238, 94,109,176,231,118,155,189,131,102, 94,235,193,212,209, 71,198, 54, 38,160,145, 48,210, 64, 11,233,106,154, 63, 75, 75,166,
-137, 57,188, 33, 64,165, 49,123, 78,245,216,211, 77,149,195,106, 22, 75, 1, 96, 99, 99, 99, 52, 26, 79, 70,227,148, 82, 62,146,
-166,170, 98, 98,223,244, 77,239,254,131, 63,248,125, 94,127,199,215,103, 34,169,133, 15,190,208,171,103,188, 89, 78,205,154,229,
-236,202,114,122,217, 84, 5, 74,193,100, 20, 88,166,144,204,254, 28, 64, 6,135,100,223,252, 56,181,115,199, 29,119,158, 60,121,
-114, 52, 26,141, 39, 99, 41,142, 91,178,233, 34, 69,220, 77, 3, 44,228,131,105, 47,166,247,235,209, 12,154, 22,154, 22,169, 89,
-104,106, 72, 52,102, 76,220, 63, 72, 16,155, 47,132,130,181, 81, 12, 65,131,144, 68, 65, 92,234,150,169,138, 81, 68,110,189,245,
-214,209,104,188,115,114,103, 50,158, 0,208,164, 70, 43,193, 69,187,218, 22,225, 36,141,101, 88, 7,131,137, 90, 94, 50,136,154,
-101, 52,221,104,170, 29,151, 22,107,105, 74, 19,229,162, 81, 24,155,166, 1,108, 60, 10,195, 74, 68, 24, 2, 7, 85,117,242,228,
-201, 24,227,185,115,231, 68,194,250,250,186, 4, 18,162,154, 28,224,101,155,233, 70,215, 73, 57,179, 88, 80, 7, 64,152, 41, 73,
- 24,125,107,192,104,204,219,194, 76,213, 18, 76,203,145,201, 38,192,193, 4,161,141, 10, 13,179, 69, 92,164,184,177,177,117,211,
-185, 27,199,195,234,214, 87,157,244,149,200,168, 88,141, 80, 51,144, 2,154, 64, 84,146,219, 58, 2, 52, 10, 45,170, 25,115,196,
- 64,230, 99, 73, 24,141, 48, 40, 65, 26, 97, 70, 80, 76, 82, 14, 62, 60,158,207,166, 93, 68, 0, 25,174,237, 72, 24, 86,163,173,
-106,176, 6,242,243, 23, 57,168,236,218,116,175, 10,124,213,141,227, 24,184, 54,138, 65,252,148, 8,153, 64, 1, 82, 62, 53, 66,
- 38, 35,105,194, 88, 78,164,127, 35,213, 90,186,214,143,172,185, 91,161, 88,136,144,144, 71,171, 52, 64, 36, 80, 56, 90,191, 94,
- 66,140,195, 19,148, 40, 12,134, 12, 12,151,181, 93,188,188, 0,121,101,191, 22,242,236,201, 97, 85,241,186,173,193,120, 20,130,
- 72, 21, 77, 41, 68, 2,200,148, 9, 93,170, 68, 67,114,158,131,166,238,173,204, 20, 45,131, 68,245,201, 19, 6,132, 74, 25,132,
-162,102, 10, 13, 18,135, 27,215, 11, 67, 53, 58, 65, 4,100,150, 69,205,196, 12,100, 50,136,170,145, 56,156, 41,192,249, 82, 41,
-120,250,217,101,140,156,140,226,198, 36,140, 6,225,228, 86, 21,132,195, 65, 96, 33,116, 98, 49, 91,176, 22,202, 59,248,148,236,
-222, 50,253, 36,145, 38, 12, 3,178, 10, 33,132,106, 68,198,106,120,130, 20, 48, 66,114,128, 96, 16,152,163,105, 49, 83, 2,102,
-162, 73, 77,168, 75,184, 95, 35,185,127,208, 60, 23, 37, 6, 62,126, 41, 4,114, 60, 12, 34,178, 62, 14, 18,196,121,110, 35, 72,
- 37,169, 80, 26,105,254, 13, 52, 53,159, 36,136,208, 24, 7, 19,143, 18, 36, 14, 1,161, 84, 20,231,219, 13,102, 38,198,140,147,
-197, 84, 37, 27, 67,117,236, 14,168, 1, 73,133,166, 41, 9,150, 10, 16,135, 73,128,170, 10, 36, 71,195, 16, 68, 98,222,162,166,
- 6,154,145, 80,154,144, 78, 41,161,132, 11,150, 15,103,156,132, 56,233, 12, 38, 13, 6, 69,134,248, 48, 51,163,137, 9,140, 6,
- 19,122, 44, 65,183,220, 30, 9,153,111, 82,203,177,151, 66, 5,203,101,162,200,178, 54,128,177,236,103,231,203,124,231,104,193,
-168, 96,246, 65, 4,204,138,207, 46, 48,133,240,165,246,115, 97, 38, 37,106,209,124,147, 70,136,230,168, 67, 8,168,106,158, 81,
- 24, 32, 48,191, 37,102, 47, 8,152, 32,194,105, 57,161, 65, 13, 66, 85,182,254, 2,166,153, 68,204,198,180,184,111,203,215,202,
- 23,119, 42, 79, 90, 44,148,143, 39,125,103,102, 11,151,157,153,209,119, 8,160, 70, 18, 2, 51,131, 18, 98,226, 97,154, 27, 34,
- 53,152,229, 0,202, 93,134, 89,119,242, 97,112, 56, 96,166, 25,231, 90, 70,251, 78,181, 16, 48,133,153, 91, 81,100,143, 3, 53,
- 5, 1, 45,134, 63,131,182, 2, 79, 51,222,177,188, 70,118, 12, 66,124,249,241,242,227,139, 29,185,118,216,187,138,147,241,100,
- 48, 24,140, 70,227,170,170, 50,106,107,234,249,124,177, 88,204, 15, 15, 15,147,103, 61,254, 82, 7, 84, 85,213,107, 94,115,207,
-237,119,220,241,170, 87,190, 42,196,146,113, 52, 66,242, 57,243,116,160,195, 61, 51,123,236,177,199, 62,251,153, 7, 62,254,241,
-143,123,178,240,139, 57,160,175,251, 91,111,187,235,174,187,170, 88,181,177, 2,187,164, 15,142, 68,142,109,108,154,113,170,112,
-185, 92,126,242, 19,159,248,237,223,254,173,191,208,128, 98,140,119,221,117,215, 91,223,250,117,214, 98,215,146,180, 64, 47,164,
-239, 71,248,171,145,253,106,104, 79,138,200,222,222,222,207,253,236,207, 28, 30, 30,126, 97, 3,218,217,217,121,235, 91,223,122,
-195, 13,175,112,206,168,135,166,123,127,212, 7,253,189,175, 47, 56, 38, 71,167, 64,136,225,210,197,139,191,244,139,191,120,229,
-202,149,151, 52,160,247,190,247,189,227,241, 90, 49,159, 71, 35,252, 46,146,239,130,232,254, 44, 21,182, 79, 36,103,252, 58,130,
-161,191,152,172,235,230,147,159,252,248,111,255,214,159,191,136,225,141,127,253,111,104, 82,131, 37, 75,217,152,103,135,208,254,
-144, 71,168,217,147,228, 31,114, 44,166, 14,164,108, 37, 66, 69,123, 37,103,249,108,185, 92, 12,170,234, 13,111,248,202, 79,125,
-250, 83, 47, 68, 51,148, 80, 58, 37,148, 79,213, 99, 87,180, 44, 13, 8,237,239,106,133,130,170,234, 7,190,105,154,194, 46, 80,
- 77, 1,106, 74, 6,204,231,179,229, 98, 49,157,206, 46, 94,186, 40,148,123, 94,115,207, 51,207, 60,253,216, 99,143,189,224,128,
- 84, 53,231, 32, 50, 53,214,251,165,161, 77, 23,244, 95,234, 63,245, 1, 25,172,105, 26, 18, 41, 37,128,170, 10, 32,165, 70,205,
-102,179,249,124, 54,155, 78,167,211,195,169,199, 62, 59, 39, 79,126,245, 87,127,205,135, 63,252,175,142, 31,144,169, 90, 75,212,
- 97,229,195,145,129,148,241,136,117, 48, 24,236,224, 96,127,177, 88, 76,103,179,189,189, 61, 83,157,205,102, 64,198,227, 25, 44,
-169, 1,150, 60, 57,147, 84,181,241,152, 86, 83, 58,123,253,217, 31,255,241,159,248,177, 31,251,224,113, 75,166,138,227,153, 42,
-180,251,182,195, 48, 61, 91, 52,159, 47,166,211,233,193,193,193,149, 43, 87, 84,245,240,224,160,108,163,204, 62,116,167,162, 99,
- 1, 53, 37,170, 33,165,100,149, 29, 59, 38,177,156,152,122,209,135,231,249, 52,239,209,221,221,221,231,158,123,238,217,103,159,
-189,244,236,165,221,221,171,139,249,124,185, 88,180,147, 76,146, 45,179,196, 78, 27,208, 25, 54,211,212, 36, 53,163,240,135,127,
-228,253,207, 27,208, 11,141,167,152,129,124,234,218, 87,212,174, 92,189,242,236,165,103, 47, 93,186,120,241,194,133, 43, 87,174,
-204,231,243,197, 98,161,106,109,130,255,232, 52, 23,136,231,176, 79,205,146, 38,109, 26, 83,219, 88,223,248,246,239,248,206,149,
- 1,105,239,145, 82,106, 52, 45,150,105,190, 72,243, 69, 51,155, 55,243, 69, 90,214,218,212,201, 53, 74,243,249,124, 62,159,207,
-166,179,217,108,218, 52,141,106,223,140,230,128,169,183,231,203,147,156,102,128,153, 81, 50, 18,247,233, 78,154,206,159, 59,255,
-218,215,222,215,219,212,221,238,177,186, 49, 3, 14,167,218,168, 31, 62,198,128,225, 48, 68,225,250, 4, 41,233,213,171, 87, 82,
-210, 75,151, 46,206,166,179,140,222,187,124,123, 11,252, 61, 5, 39,173,217,232, 29, 89,192,224,217,220, 24,130,153,153,170, 10,
-222,254,142,119,124,230, 51, 15,120,214, 89,154,164, 77,210,217, 50,205,230,122, 56, 79,211, 89,154, 45,211,124,174,243,133,206,
- 23, 58, 91,170,191,126, 48,109,166,179, 52,157, 45,167,179,121,210,146,208, 0,125,122,156, 81, 65,206,141,148,175,101, 28,106,
- 80,117, 73, 19, 67, 8, 18, 68, 93,134,101,166,170,166,218, 52,205,247,126,223,247,231, 25, 58,152, 53, 77, 99,159,191,176, 80,
-197,238, 94,221,104,207, 32,118, 12,176, 5,130, 76, 54,125,210,172,177,102,145,153, 51, 15,112,224, 49,157, 82,196, 79,171,115,
-183, 78, 55, 58,175,225, 14,187, 10,213,214,214, 86, 53,168, 0,154, 26, 68, 21, 98,170, 65,100, 56, 28,222,119,223,235, 62,246,
-177, 63,150,186,214,186,209,148, 44,165,148,178,161, 55, 83, 51,207, 17,155,169,106, 74,214,184, 57,209,148, 82,249,131, 28,152,
-244,162,140, 34,184,241, 8,164,252,157, 58, 95,225,228, 99,136, 65, 36,192, 74,242, 89,213, 84,147,170,169,125,195,219,223, 78,
- 50,204,227, 45, 23,175, 44, 15,103,105,182,112, 3,155,189,103,182, 60,230,145,151, 54,139,195,186, 94,236, 95,123,110, 54, 91,
-206, 22,245,124,169, 41,127, 16, 68, 8,215,184,149,128,142, 34, 57, 81,233, 12,152,193,117, 63,227,209,232,246, 87,223,190,179,
-179, 61,153,172, 21,147,208,227,105,213, 54, 79,108,198, 69,157,186, 20,163,103,222, 84,139, 51,207,113,171,199,114, 6, 95,120,
- 21,223,241,177,164, 93, 91, 2,182, 92,166,248, 90,109,189, 99,230, 6,201, 16, 66, 8, 33, 71,100, 10, 80, 33,180, 18, 46,222,
-119,223,235, 34,172,253,115, 20,149,139,167,253,114,116, 75, 82, 53,165,122,225,171,103,214, 36, 51,128,243,101, 90,214, 12, 34,
-203,202,130, 96, 52,140, 68, 22, 36,170,170,179,190, 6,248, 8,214,214,214,206,158, 61, 91, 85,131,245,245,117,199, 73,106, 42,
- 20, 51, 80, 97, 98, 65, 85, 41, 41,165,232, 9, 61,235, 72,189,124, 94, 60,221, 13, 80,221, 76, 67, 97, 41,219, 53,167,124, 19,
-154,204, 2, 10, 66, 97,149, 58,144,169, 90,152, 92, 51,196, 16,199,147,201,160,170, 92,194,145, 33,140,106, 22, 51, 42, 84,132,
- 80, 42, 99,222,144,142, 44,140, 57,215,220,243,145,164, 42, 76,181,177,162,236,160,223, 33,243, 9,175,147,169,153,205, 33,228,
-120, 8,130, 33, 16,192,100, 50,142, 49,110,108,110,108,172,111, 12,135,163,205,205, 19,193,117, 63, 62,243, 61, 87, 77, 49, 83,
-117,227, 17, 93,140,198, 50, 69,206,100,104,222,158, 70,205, 60,136,185, 37,233, 49,158,249, 62, 12, 72,170, 10, 85, 19,225, 32,
-194, 67, 16, 82, 6,131,225, 96, 56,220,222,218,222,222,222,174,170,106, 60, 30, 23,224, 6,201,185,224, 54,220, 55,241,235, 58,
- 11,235,172,130, 31, 9,131, 49, 15, 39,143,204,247,228, 11,103,104,205,169, 26, 53, 64,209,104, 16,147, 19,155, 27,177, 10, 91,
- 91, 91,227,241,104, 60,158,132, 24, 69, 66,127,153, 20,164,150,251,162,155, 88,122,142, 33, 58, 77, 1,131, 81,173,147,121,100,
-188,234, 83,167,200,118, 7,102, 43, 89,244,214, 39,152,121, 98,100,182,140,148,112,195,230, 13,227,225,240,236, 13, 91, 39, 54,
- 70,109,234, 47, 39,101,172, 80, 77,118, 4, 98,229, 44, 91,244, 84,123,217, 24,190,125, 44,123,130, 76, 12,175,142,193,250,190,
-147,121,131,139, 72,136,132, 72, 28, 81, 66,157, 40, 13,102,115, 13,161,169,162,196, 32, 20,132, 32,206, 79,201,234, 56,164,189,
-170,106,150,127,250, 13, 88,150,193, 20,138, 26,218,203,149, 25,133, 80,194, 50,143,157, 83,116,158,223, 16, 6, 25, 14,215, 78,
- 82,226,112,237,180, 80,174, 28, 16,148,101, 90, 12,170,250,212,206,224,228,102, 21,163,140, 71,206,207, 49, 51, 98,197,184,228,
-205,236,233, 53,213, 88,148, 39, 78,188,177,165,242,152, 67,139,110,127,183, 27, 25, 45,189,110,158,152,142,148, 0,134,204,210,
- 73,203,237, 91, 72, 90,215,186,108,212, 12, 49,128,100, 12,146,231,133,153,143,207, 14, 47,107,139,252,216,231, 79,101,161, 38,
-137, 44,100,202, 3, 51,128, 18,178, 0,161,176,106,100, 16, 50, 12, 54, 6,147,109,145, 42, 14, 55, 51, 74, 85,223,121,188,182,
-223,144,184,118,152,158,188,180, 24,143,194,169,173,170,138,114,230,228, 80,136, 65, 5,168,148, 73,234, 80, 29, 85, 99, 15, 77,
- 59,243, 38,112,134, 46,187,154, 50, 21,214,201, 65,114, 22,172, 64, 28, 66, 0,241, 40,209,204, 72,133,137,154, 66,132,202,148,
-180, 38,171, 70,155,198,200, 44,237, 78,106,194, 36, 18,124,167,187,164,208, 32, 32, 99, 81, 34,154,147,166,158,168, 51,192,148,
- 57,207,224,235, 18, 43,203,134,213, 25,113,171,198, 91,113,176, 30,194, 40, 84, 19,138,228, 48, 67, 28, 56, 58,111,171, 6,105,
- 18,146, 54,203, 90, 14,231, 41, 80, 46, 94, 94,138,112,231, 68, 21, 69, 78,109, 15, 6, 3,169, 34, 99,132, 66, 4, 6,179, 88,
-196, 75,142,205, 11, 2,116,198, 26,160, 58,235,219,197,139,208, 54,211, 27,201, 10, 33, 82,130,111, 2, 99, 89,124, 87,158, 72,
-230, 10, 12,164,234, 82,133, 33,129, 22, 68,214,198,161, 9,150, 84, 53,193,130,155, 40, 53,136,154, 69,120, 34,129,229, 27,128,
- 60, 19,217, 16,101,159, 34, 21, 76,132,209, 2, 7,113, 19, 12,113,184, 17,171, 73,182,184,150,133,218, 38, 6, 79,240, 0, 90,
-168, 98, 24,148, 20, 83, 75, 50, 95,170,192, 46, 94, 94,146,184,186, 87, 75,144,209, 32,196,192, 97, 21, 70,195, 64,145, 88, 80,
-157, 50, 39,157,138, 79, 84, 43, 26, 2, 87, 16, 7, 40, 33, 1,201, 36,142, 40, 49,132,129,132,170,213,130,100,207,163,128,168,
-159,231,178,193, 73,143,174,133, 2,213,134, 42, 86,207, 64, 98, 58, 83, 35, 70,195, 16,133,227, 81, 92, 27, 27,201, 2,242, 75,
-182,172,168, 0,178,230,206, 47, 89, 34, 20, 86,163, 45,104,114,235, 7, 6, 55, 34,190,191, 11, 43, 79, 31, 83,206,116,137,148,
-152,132, 84, 83, 55,117,133,132,247,227,216, 52,102, 2, 93,164,164, 0, 37,118,212,120,155,141,214, 66,214,147, 37,167, 64, 82,
- 12, 24,140,119,250, 17,151, 26,197,127,237,129, 6, 51,111,239, 86,163,252,178, 20, 75, 64,114, 98,181,203, 49, 27,200,186,209,
-134,130, 70,103, 51, 35, 41,238,242,178,251,242, 92, 78,139, 96, 29,252,144,173,254,205, 60, 56, 66, 89, 8,170,171,185,178, 74,
-170,120,219, 76, 8, 20, 5, 85, 14,217,104, 62, 98,115,114,191, 68,158,101,138, 29, 45,155,160,133,153, 84,207,119,100,117, 60,
- 21,157, 69, 80,133,170, 59,144, 22,164,102, 99,164, 78, 49, 20, 75,101, 57,243,226,126, 49,251, 99,144,150,211,201,102,180,146,
- 86, 45,191,118,121, 25, 29,125, 27, 91,210, 44,231,116,161, 68,155,141,128,162,104, 1,216,202,248, 50, 7,235,225,150,123, 16,
- 67,201,129,228,208, 25,132, 26,203,116,100, 47, 81, 54, 90,206, 46,187,173,200,113, 93,222,201,194, 60, 1,158,104, 67,190,186,
-150, 74, 21,135,250, 62, 44,181, 50, 56, 20,251,130,108,150, 60, 25,153, 35,107,127,115, 70,228,176,156, 97,204,121, 25,247, 71,
-214, 70, 79,180,156, 78,134,153, 41, 85, 10,132, 53, 45, 14,206,138,232, 47,203,242, 90,224, 81,146,195, 94, 47, 4, 99, 86,232,
-161, 68,101, 62, 9,237, 28, 21,108, 80,162, 19,151, 85,180,105,101, 67,209,237,193,247,106,206, 69,250, 59,125,122,253, 28,107,
- 59, 8,203,159,234, 49, 75,135,206, 88,210,214, 68,151,173,202,233,227, 82, 6, 84, 20, 19, 30, 40,177,139, 40, 29, 55, 48, 79,
-161,101,126,185,148,133,136, 79,122, 62, 19, 6, 66,149,104,233,151, 76, 92, 24, 77,169,128,154,235, 75,242, 58,101, 87,147,103,
- 86, 51,255, 87,206, 11,243,194,117,138,239,172,139,205, 57, 90,150,197,233,139,237, 94, 78,152,189,252,120,249,241,242,227,175,
- 68,190,245,197, 46, 65,174,111,108,108,110,108,172,173,173,159,216, 58,177,179,189,115, 98,107,235,196,230,230,100,109,125,109,
-109, 60, 24, 12, 61, 71,213,203,228,172, 36, 45,154,166,153,205,166,123,251,123,251,251, 7,151, 46, 93, 60,216, 63,184,182,119,
-109,127,111,111,119,119,119,127,127,255,175,222, 4, 77, 38,147, 91,111,251,146, 27,111,188,241,204,233,211, 39, 78,108, 77,214,
- 38, 49,198, 99,217,251,126, 78,228,121,201,147,213, 39,173,184,245,121,122,232,166,105,166,135,211,107,123,215,158,126,250,169,
-135, 62,247,185,135, 31,122,168,249, 34,101,190,191,104, 19,116,250,244,233,123,238,189,247, 75,191,244,238,225,112, 80,202,132,
-236, 37, 93,183,132,180, 61, 94, 42,255,200,142,175,245, 64,157,232, 37, 75,251, 9,221, 92,203,201,156, 95, 53,152, 87,117, 61,
-254,248,231,255,203,239,255,254,131, 15,126, 86, 85,255,159, 78,208,250,250,250,153, 51,103,190,236,203,238,190,245,214,219,156,
-209,177, 54, 49,220, 99,132,142,204, 17,143,221, 52,157,138,117,133,113,230,106,194,253, 5,191,174, 86,205,229, 90, 87,118,153,
-232, 54, 23,127,245,234,213,255,246, 95,255,224,193, 7, 31,188,124,249,242, 95,202, 4,157, 62,125,250,174,187,238, 58,127,254,
-252,233, 51,103, 82,210, 44,166, 93,153, 20, 3, 94,108,219,176,111,144,122,150,166,255,250,138,241,193, 49,178,254, 99,197, 0,
-127,222,139, 57,228,244,162, 67, 0,143, 62,250,232, 31,255,175,255,249,192, 3, 15, 52, 61,125,248, 95,104,130,238,191,255,254,
-197,178,110, 51,186, 29,239,216,227, 32, 95,218, 60,175,222,237,145, 23,143,249,179, 35,178,141, 23,217, 74, 71,164, 11,253, 99,
-216,158, 62,144, 98,176,229,124,177,127,176, 95, 55, 77, 93, 47, 63,241,241, 79,124,236, 99,127,252, 23,156,160, 56,155, 47, 90,
-193,137,181, 2,183, 99,102,229,121,150,167,159,154, 94,157,151,222,139,207,223, 74, 71, 15, 97,183, 83,201,254,167, 20, 34,162,
-119,229,222, 83,235, 81,193,158,224,242, 48,117, 62,159,239,239,237, 45,235, 37,193,219,110,187,237,206,187,238, 50,213,223,251,
-189,255,252,212, 83, 79,253, 95, 78, 80,150, 67, 29, 41, 45, 57,142,169,183, 35, 22, 43,151,124,117,242,134,146,122, 88,253,187,
- 30, 99,148,231, 57,167,223,188,247,128,105,210,124, 28, 72,115,113, 68, 9,169,188, 8, 7,173,220,220, 82, 97,196, 45, 37,175,
-140,132,169,205,230,179,197,124,225, 97,230,108,122,120,245,234,213,229,114,217, 47,254, 56,121,242,186, 27,111,124, 69,136,225,
-193, 7, 31,188,250,210,148, 57,199,201, 43, 94, 72,211,240, 34,103,108, 53, 43,192, 86,128,101,171,147,186,250,170,153,105, 74,
-185, 69, 3, 80,215, 77, 93, 55, 46,112, 87,213, 38, 53, 94, 53, 92,242,231,218, 6,206,101,120,244, 12,182,251, 47, 51, 44,151,
-139,197,114,233, 1,104, 93,215, 41,103,236, 11, 43,100,102,176,148,210,249,243,231,223,242,150,183,212,203,230,163, 31,253,181,
-135, 31,126,248, 37,239,160, 85,185,199,138,238,231,216, 23, 90,134, 26,173, 8,196,201, 50,116, 52, 74, 46,188,183, 35,135,209,
-205,127,147,154,189,189,189,249,108,230,217,192,195,195,195,189,189,107, 77,211,144, 76, 41, 45, 22,139,190,125,181, 78,179,113,
-140, 87,224,113, 40,165, 88,136, 14, 68,136, 79,125,211, 44,151,245,104, 52,124,207,123,190,213,128,127,247, 75,255,246,145, 71,
- 30,121, 73, 59,232,121, 59,197,142,223, 60,199,168,116,218, 74,148,222,111, 45,167,133,142,252,117,210, 12,240,154,212,212,117,
- 93,215,181, 79, 80,211, 52, 41,165, 34, 50,242,167,109,142, 46,167,151, 74,193,166, 87, 91,116,226,222,146, 95, 46,228, 18, 51,
- 37,200,150, 74,105, 41, 25,223,115, 73, 85,205,152, 68,228,219,190,253, 59,166,211,233,111,124,244,163, 15, 62,248,217, 23,157,
-160,206, 95, 29,185,203,231,193,223,231, 21,158,149,218,227, 94, 29, 50, 74, 90,167,144, 43, 4, 84,109, 62,155, 93,190,124,121,
-177, 88, 2,214, 52,205,238,238,238,225,116,234, 18, 39, 51, 75,170,153,127,182,231,221,121, 95,146,125, 12,172,101,145,106,183,
-105,164,204,237,228,105, 83,104,201, 23,154,105,211,212,169,137, 36, 85,196,204, 70,195,209,183,124,203,183, 62,253,204,211,191,
-242,203, 31,121, 33, 12, 21,254,218,107, 95,219,171,246,178,149,218,175,254, 79,157,168, 40,111,158,162, 40,180, 30,112, 94,165,
-155,252, 77, 48, 51, 91, 44,151,135, 7, 7,203,229, 82, 85,235,166,158, 78,103,139,197, 92,181,105,213, 21,249,210,189,105,206,
- 66, 40,172, 72, 36,208,137,162, 86,162,193, 14,179,163,208,214,133, 54,244,123, 8, 18,183,182,182,183,183,183, 67, 8, 86,250,
- 45,120,122,119, 99, 99,243, 43,191,234,171,214,215, 54, 62,247,185, 7, 95, 64,148,119,172, 79,207, 42,120, 0, 72,138,101,163,
- 77,147,111, 32,191, 78, 16, 12,194, 24,115,229,181,144,131, 1,163,100, 59,234, 98, 39,159,204,131,131,131,139, 23, 47,206,231,
-115,159, 83, 63, 86,153,198,239,234,188, 74,158,208,186, 68,102, 87, 69,213, 21, 36,148,120,101,229,228,247,215,137, 45, 78, 0,
- 32, 18,144, 75,186,233,189, 5,124,202, 97, 89, 27,144, 52,169,233,125,247,221,247,186,215,189,238,231,127,254,103, 47, 92, 88,
- 41, 43, 13,247,222,123,239,177,126, 75,205, 84, 51,151,169,106,139,165, 11,120, 44,153, 37,181, 70,205,107, 6, 91, 12,229, 94,
- 41,102, 97, 41,204,180,174,151,243,249,162,105,154,166, 73,243,249,108,239,218,181,217,124,222, 52,141,139,113,242, 20,231, 35,
-218,202, 35, 45, 87, 19,174, 36,228, 74,193,101,241, 11, 57, 71, 93,182, 71, 91, 18, 81,210, 24,101,223,103,189, 43, 92,180,188,
-181,189,189,179,179, 19,171,170,243,169, 61, 61,170, 63,190,226,203, 95, 63,158, 76,188,169, 78,222, 65,211, 89,182,157, 73,205,
- 37, 67,126,120,154,198,230, 11,109,249,229,148,250, 54,185, 71, 78,211,183,106, 70,131, 33, 34, 72, 38,205,155,229,254,114,126,
-205, 11,226, 52, 45,231,139,101,219,248, 32, 59,110,101,183, 27,172, 28, 8,148,130,186, 44, 94,201,162,195,222, 62,178,190,206,
-237, 8,138,200, 4,180,139,206, 69, 70,163, 81, 21, 43, 18, 85, 85, 13, 6, 67, 79,131,180, 26, 47,191,100, 42,210, 97, 5, 76,
-236, 13,175,127,195,169,235, 78,253,230,111,126,212,201,150,184,172,253,136,177, 73,182,119,216,236, 31,230,229, 93, 52, 54,157,
-165,164,207,243, 97,180,118, 80, 61,133, 67,238, 91, 32,244,218, 36,146, 38,105,170,203,125,213,134, 70, 34,153, 37, 20,236,211,
-154,212,236,158,138,195, 54,205,123, 37, 87,197, 48,207,134,176, 21,131, 20,136,109,157,127,232,251, 3,230,220,142,121,206,166,
-138,213,104, 52, 4, 24, 99, 12, 34, 46, 2,117, 84,226, 45,126,218, 82, 72, 35,133, 52,213, 70,245,214, 91,111,253,174,239,250,
-251, 31,254,240,191,190,122,245,106,216, 62,123,251,193, 84, 15,166,205,193, 52,237, 79,211,108,161,117,178, 38,105,221, 88,163,
-197,135, 48,215, 31,185,253,203,206,180,228,150,208,214, 13,153, 90,106,212, 5,143,169,105,150,211,229,252,176,169, 83,147, 82,
-157, 82,106, 82,157, 52, 37,164,146,158,241,222, 9,158,136,205, 14,160,131, 59, 69,215, 80, 18,218, 37,190,183,246, 85,182,133,
-111,232,135, 34, 89,229, 14,160,170,134, 39,182, 78,108,110,110, 78,198,227,201,100,178,177,177, 49,153, 76,188,215, 80, 31,169,
- 88, 15, 59, 21,117,146,141,199,227, 47,255,138,175,248,223,159,252, 36,175,191,253, 27, 86,125, 38,143, 65,209,171,225, 85, 11,
- 80,217, 53,250,240, 87, 82,106, 22,150,106,247,122,205,124,119, 57,223,181, 12,127, 60, 41,229, 6, 4,131, 74, 98,200,142, 42,
- 8,243,115,152,137,183,197, 96, 41, 8,205,231,160,245, 98,157,186,110,101, 76, 69,224,106,222, 25, 43, 23,213, 77, 38,147,115,
-231,206,109,111,239,120,121,194, 96, 56, 24,141, 70,210,231, 76,112,132, 23,232,177, 5,164, 4,177,148, 37, 12, 71,208,142,245,
- 68,170,171,113, 88, 81, 7, 23, 33, 79, 73,101, 34,203,153,161,234,193,129, 89, 82,104,139, 6,202,101, 77,205,113,173,119,126,
- 49, 2, 22,172,176, 98,121, 98, 68,114,121,166, 21,145,153, 67,199, 86, 44, 3, 35, 4,236,166,134,237,164,196, 24, 7,131, 97,
- 16, 49, 98, 60, 26,199, 88,121,251,194,226, 59, 58,198,162, 36,142,179, 78, 54,187,182, 86,186,101,166, 6, 9, 18, 75, 14,213,
-218, 82,190,110,223,244, 96,106,150, 19,180, 25,248,226,154,173,111,177,161,170,203,212, 44,115,140,157,106,211,198,235,203,243,
- 97, 53, 2,150, 20, 41, 25,208,248,101,130, 48,132,220,170, 37, 4, 14, 43, 9,193, 45,141, 9, 91,107,215, 6, 85, 25, 44, 81,
-205, 74, 33,179,247,137, 35, 32,194,245,141,205, 51,167,207,140, 70, 35, 16, 85,172, 54, 54, 55,198,227,113,187, 95,124,125,217,
-253,203,194,207,220,145,204,122, 53,218, 36,161, 72,136,244,104,240,104, 77, 2,122,105,212,236,246, 59,104,209, 7, 33, 89, 84,
-215, 9,208,243, 89,110,147,203, 40, 50,176, 46,172,207, 92,108,217,122,174,202,244,219,134,154,229,162, 12, 2,226,230,185, 67,
-216, 44, 41,221, 82,102, 77,239,145, 25, 66, 36, 33,100, 21, 99, 8, 34, 94,223, 34, 36,160, 73, 69,164,171, 29, 56, 26, 99,246,
- 78, 9,219, 34,203,108,122, 85, 16, 59,208,220,227, 36,242, 86, 98, 87, 36,170,171,244, 13,173, 55, 95, 89, 21, 81, 68,245,218,
- 56, 8, 43,248,216, 37, 80, 96,207, 89,101, 10,131, 52, 99, 65, 91,222, 10, 17,203, 58,183, 93, 18,225,176,146, 42,102,139, 43,
-132,132,172,161, 10, 33,172,175,175, 87, 89,174, 26,182,182,183, 78,108,110,134, 16,189,208,108, 56, 26,198, 32,165, 87,207,209,
-110, 3, 47, 68,222,160, 5,170,185, 14, 21, 52, 19, 48,106,161, 5,216, 73,131,209,106,108, 74,118, 61, 55, 87,202, 83, 70, 88,
-145,198,162,156,225, 82, 51, 4,152, 30,249,108,242,200, 22, 45,141,145,114, 62,188,173,135,207,101,185,101,235,231,173,227,178,
-160,190, 42,219,155,177,133, 16, 0,132,144, 91,178, 73, 16,162,173,207, 96,235,237, 58,201,245,234,233,234,254,229,174, 78,108,
- 83, 9,249, 37,210, 52, 69,182, 58,235,172, 50,237,109, 22,235,240,152, 65, 75,227,211,190,102, 81,179,197, 46,231,170,212,231,
-104,174,181,181, 86,109,105,171, 97, 65, 75, 53, 50,203, 97,178,135, 96, 46, 16, 55,170, 49,241, 80,159, 0, 0, 7, 46, 73, 68,
- 65, 84,209,150,161,142,149,215,182,175,173,173,109,159,218, 25, 14, 7, 4,135,131,120,234,228,198,100, 28, 69,132,160,196, 16,
- 36, 20,132, 37, 45, 19,185, 82, 11, 87,100, 66,207,231,175,218, 40,197, 74,184, 76,235, 26,101, 69, 80,143,242,238, 90, 74,179,
-139,162,142, 61,167, 86, 48,125,158,200,182, 19, 76, 91, 74,147,101,241, 71,121,209, 35,103,190,167,117,228, 10, 1,238, 42,162,
-226, 50,153,212,119, 12,213,196, 88, 81, 6, 0, 36,196, 16,171,225,112,208,231,242,209,231, 54, 13, 29,175,224, 45, 18, 88,240,
- 99,249,111, 37,123, 85, 0,142, 29,225,108, 66,136,153,185, 97,143,198, 97, 47,222,179, 14,136,185,108,205, 86, 89, 25,162,204,
-175,153,171,182, 10,130,211,231, 29,242,190,149,180,142, 55,114, 92,103, 52, 66,164,138,131,137,248,168, 24,227, 96, 18,170, 81,
-238, 72, 22,195,181,233,240, 96, 46, 32,170,200,105,189, 24, 13, 26, 82, 66,192,250, 36,172,143, 67, 8,185,250,112,224,102,203,
- 37,242,230,146,204,172,153,114,121, 16,148, 40,146,113,151, 51,230, 70, 30, 34,157,101,242, 77,148, 82,204,131,109, 59,205,181,
-187,162,109,200,198,214, 31,117,182, 39,219,155, 50,181,165, 92, 44,171,154,228,136, 85,212, 23,224,106,217,127, 15,104, 66, 17,
- 9, 3, 9, 3,239,137, 17,170, 73,168,198,126,187, 6, 44, 50,209,200,170, 49,145,180,172, 13, 64,140, 18, 2,134,149,119,164,
- 96,136,226, 29, 2, 50,224, 97,150,150,247,165,139,230,181, 13, 94, 25,103,214, 14,198, 11, 22, 87, 1, 61,162, 15,255,136, 19,
-212,220, 30,176, 68,167, 68, 23,118,177,103, 65, 92,219,148,207,124, 86,181,130, 1, 4, 44,229,198, 23,176,188, 92,214,219,187,
- 38,109,234, 84,226, 48,196, 49,157,148, 8, 85, 28,172, 81, 42, 87,249, 74,136,200, 70, 95,219,136,198,204,146, 98,186, 72,139,
- 70, 9,138,164,186,209,131,105,242,120,127, 88,201,218, 88,170, 64, 35,162,200,104, 40, 85,108,155,103,153, 59,196,174,247, 80,
- 71,250, 61,175,224,173, 76,113,236,142, 66, 79, 13,215, 85, 37,248, 49,104, 29, 31,209,243,131, 64,219,223,166,107,152, 32, 69,
-180, 37, 46,242, 43, 62, 93, 11,143,142, 46,172, 2, 40, 18,194, 48, 14, 55,252, 88, 5,169, 66, 53,166, 68,228, 58,171, 98,199,
-145,209,144,175, 76, 50,232,194,218,188,197,108,161,215, 14, 26,247,113,227, 81,216, 90,143, 85, 20,208, 6, 49, 0,129, 12, 25,
- 33, 11, 87,107,141,250,145,246,241,233,116, 2, 49, 83, 14,174,242,179,182,221,134,181, 68, 37,250,199,204,138,140,177,168,223,
-105,253, 98, 9,203,126, 4,200, 44, 66, 7, 52,189,159, 71, 9, 12,194, 32, 72,149,121,189, 56, 10, 97, 64, 6, 8, 40, 1,109,
-113, 78,145,201,150, 36, 71, 47,171,164,102, 93,122,205, 52, 33, 21, 93,238,162,230,193, 52,197,168, 36, 98, 80, 53,157, 46,114,
-191,164, 42,202,160,242,209, 33, 10,171, 40,185, 67, 50,225,253,125,218, 77,210,221, 23,219,214, 57,173,222,145, 93,204, 85, 98,
-244,118, 40,218,203,110,181,213, 75,154, 19, 93, 30,231, 73,200, 93,170,130, 80, 2, 68,160, 86, 96,124, 14, 55, 68, 66, 53,220,
-140,131,245,188,243,101, 32,113, 88,244, 49,185,252, 32,251, 74, 23,180,183,100, 90,143, 35, 51,230,234, 36, 5,213, 52,105, 30,
-235, 98, 97, 7,211, 38,119,219, 22, 14, 34, 29, 30, 9,177, 54, 10,107,227,224,212,226,104, 40,219, 27,113, 48, 16,223,243, 85,
- 37,161,101,151, 90, 82,211, 12,170,177, 5,107,108, 69,174,160,118,129,156,245, 92, 61,209, 37, 11,172,212,193,184,106,212,221,
- 93, 47,202,181, 54, 31,196,210, 14,190, 72,132, 24, 61,122,234,107, 85,187, 47, 69,138,155,223,157,219,199,168,177, 37,206, 74,
-175,180,174,207,101,209,179,146,232, 74,132, 0, 47,254,241,209, 8,154,100,139, 70,165,108,130,131,216, 12,154,224, 24,189,138,
- 33,134,146,192, 46,205,178, 65, 8, 36, 22, 16,219,134,169,109, 45, 97, 41,120, 68, 97,207,189,210, 45, 75, 85,218,196,134,118,
-140, 61, 4, 82,185,132, 31,170, 12, 67,198,129,104,130,153,132, 42, 84, 19,250, 58, 49,196,193, 26,195,144,108,131,158, 92, 81,
-163, 52, 41,213, 79,204, 21, 0,180,214, 26,169,182,105,157, 82,117,167, 43, 49,181,151, 45,229,115,163,154,184, 80, 0,222,209,
-142,135,243,132,189,214, 29,149,150, 89,204, 59, 40,230,162, 19, 14, 7, 28, 15,131, 87,185,129,140,154,123, 64,181, 27,215,143,
-148,182, 56,144,197, 81,107,143, 25,179, 44,203,230,106,250, 46,135,169, 5,184, 33, 43,123,189, 87, 54, 5,222, 24,187,120,183,
- 85, 93,130,122, 47, 84,165,177,107,186,147, 71,194,220, 50,201,235, 56, 50,172,200,152, 44,151,180,117, 17, 59, 75,239, 32,119,
-227, 61, 35, 97,240,235,171,135,234,154,243, 69, 98, 49,243,140, 76, 38, 41, 49, 53,102, 33, 79, 11, 79,221,252,230, 86,239,143,
-182,125, 33,250,221, 0,203, 44,172, 70,168, 40,137,172,174, 76,116, 53, 6, 52,239,134,102,125, 78,182,229,253,164,196, 62,165,
- 18,195,250,253,136,218,238, 74,165, 6,190, 28,186,194, 36,247,159,173, 32,187, 54,162, 42,193,167, 71,113,189, 86, 0, 37,100,
-151,156, 30, 98,169, 67,110,123,130,228,201,246,121,136,109, 8,202,174,115, 23,114,123, 59, 95,166,150, 69,211,118,193, 11,236,
-233,183,211,107, 13,143,181, 61, 28,104,125, 9,144,172, 74, 26,242, 10,176, 56,132, 82, 3,208, 21,211,101,242,137,109,166,167,
-212, 87,195,178,149, 44, 84,127, 75,223,101,158,191, 53, 2,212, 18, 31, 20,254,187,245,244, 89, 45,215, 2,223, 78, 92,226,126,
- 39,223, 79,180,182, 2,146,157,171,206, 77,187,114,189,154,161,167,172,207,139,220, 43,242,177, 18,214,246, 99, 80, 31,248, 74,
-149,161, 42,251,121, 62, 22,159,208, 26,251,214,103,229,181, 86,122,129,195, 74,159, 69, 15,248,141,237,252,162,180,174, 47, 8,
-174,203, 25,101,167, 45, 93,174,183,224, 29,230,122,155,174,162, 32,151, 76,119,241,155, 47,139,198, 46, 48,180,182, 86,148,173,
- 59,243,113,106, 41,244, 45,251,191,155, 77,180, 77, 25, 91, 92,144,111,187, 31, 99,180, 91,187,253, 95, 50,104,169, 7, 37, 90,
- 76, 67,159, 38,235, 25,196,242, 14, 69, 41,144,235, 78, 11,219, 8,157,185, 96,190, 59, 67,150,219, 70, 50,215,142,117, 25, 52,
- 43,155, 38,159, 69,107, 27, 35,244, 66, 80,107,139,157, 25,139,155,236, 66,233,150,161, 45, 29,204,138,132,195,237, 88, 57, 76,
-109,189,117,143,130,180,213,248,190,195, 76, 37, 56,239,218,184,161, 21, 36, 20,107,156,131, 22,138,149,196, 88, 1,240,190,149,
-218,140, 87,169,247,213,174,166,173,157,149, 46, 54, 44,229, 78, 45,119,211, 58, 77,143,139, 97,173,129, 66,187, 28,165,253, 64,
-167,125,138,221, 42,103,100,150,249, 29,239, 61, 73, 48, 27,202,214,249,230,214, 52, 93, 40,210,210,187,199,169, 30,218,158,108,
- 71, 80,190,217,106,115,242, 82, 42, 95, 28, 62,218, 3,215,118, 76, 40,117,171,229,185, 21,213, 77,233, 65,199,174,220, 56,179,
-128,217,176,161,205,200,230,183,150, 76, 36, 74,179,143, 50,183, 69, 25,128,246,134,162,181, 65,167,246, 67, 3,181, 54, 66,247,
-153,234, 42,140,181, 53,248,208, 54,123,103,173, 65, 93,161,155,142, 36,208, 59,190, 40,187, 69, 53,244,132,138,102,109, 77,161,
- 83, 43,121,232,173,153,212,150, 4, 87,168, 64,202, 28,161, 80,111,210,217, 80,118,205, 40, 80, 14, 19,139,244, 68,115,148,184,
-114,206, 58, 69,161,177,148,141, 51,230,150,135,109,138, 59, 55, 51,237,247, 9, 44,182,172,109, 99,128, 35, 51,101, 37, 58,200,
- 52,124, 30,197, 17,101,112, 75,139,247,236, 87,219,176,200,218, 70, 1, 29, 88,176, 35,134,169,141, 78,253,134,181,164,174,209,
-137,172,188,187,164, 21,203,226,141,107,197,186,201, 42,149,214,130,174,153,112,161,155,133,221,206,108,241,104, 68,103,165, 75,
-231,250, 92,188, 70,176,175,148,207,160, 37, 27, 14,162,139, 18,218,179,214,235, 4,217, 63,106,218, 2, 42, 98,133,123,165,117,
- 96,161,221,119, 44, 0,190,164,179,243, 54,178, 62, 52, 45, 81, 77, 11, 80,122,103, 35,199,209, 61, 97,104,107,141, 90,128,148,
-157, 96,255,207,108,165,155, 84, 59,202,255, 3, 12,217, 15,142, 80,147,252, 33, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/texdraw.png.c b/source/blender/editors/datafiles/texdraw.png.c
deleted file mode 100644
index 5123c4ed292..00000000000
--- a/source/blender/editors/datafiles/texdraw.png.c
+++ /dev/null
@@ -1,305 +0,0 @@
-/** \file blender/editors/datafiles/texdraw.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <texdraw_png> */
-
-int datatoc_texdraw_png_size= 9462;
-char datatoc_texdraw_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0,
- 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98,
- 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,
-155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 21, 0, 4, 18, 61, 67, 90, 24, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,
-124, 89,140,101,215,117,221, 90,251,222, 87,213, 53,177,122, 98, 55,123,160, 40, 78,146,200,166, 68, 54, 69, 89,116, 34, 91, 1,
-100,249, 67,142,156,200,128, 12, 88, 9, 16,219,178,243, 39,217,150, 7, 13,148, 29, 32, 81, 44, 39,254,113,236, 12, 6,226, 64,
-118, 2, 36,158, 62,226, 32, 48,132,124, 68,113,108,121,136, 6,202,146, 69, 54, 71,113,234,110,178,217, 67,117,205,245,222, 61,
-123,229, 99,159,115,238,125, 85,221, 20, 21, 75, 1, 12,232,117,163,234,189, 91,247,221,123,238, 57,123, 92,123,237, 3,124,163,
-175,155,142, 29,187,245,214,219,246, 30, 39,128, 15,127,228, 99, 41,117, 4,204,140,102,109,219,142,218,182, 29,141, 30,250,216,
- 71,243, 73, 31,252,137,159,148, 4,200,104, 52, 51,227,129,253,155,183,222,118,254,200,209,171, 51,163,209, 15,253,208, 95,157,
- 63,119,174, 57,125,255,105, 79,201,147, 11,146,235, 45, 15,254,233, 77, 55, 93,184,225,134, 29, 51, 73,233,232,145, 31,252,236,
-103,255,164,157, 76, 38,140,107,122,243,192, 3, 95, 24,111,211,224,105,198, 73,235, 58,237,140,199, 15, 61,244,241,182,155,116,
- 4, 73,154,249,100,226,238, 0, 65,235, 70,173,253,249,159,253, 45,114, 44,247, 54,165,142, 4, 96,116, 78, 38,158, 18,165,110,
-107,115,223, 35, 95,125,179, 53,147,166,113, 72,109,151, 58, 3,105, 34,109, 50, 73, 77, 99, 15,127,241,116,211,182, 77, 51,105,
-212, 72,130,208,122, 74,162, 25, 0,120, 74,250,203, 47,189,209,204,129, 14, 18, 4, 72, 20,219,148, 18, 9, 73,102,246,165,135,
- 79,145, 73,114,176, 5, 32, 0,104,193,174, 77, 93, 50, 19,208, 72, 34, 41, 37,160, 97,114, 8, 0,157,201,220, 94,213,114, 53,
-245,221,220,220,252,205, 55,223,108,198,173,173,173,221,107,119,255,253,247,191,227,123,222, 41,201, 72,154, 53, 77, 19, 11,247,
-233, 79,127,250,179,127,242,199,101,237, 62,248, 19,130, 8,154, 25,141,198,246,245,111,120,230,240,161,245,253, 7,183,215,215,
-142,124,255,187,127, 27, 64,115,250,244,253,158,220,229,146,110,191,237,177, 59, 95,127,102,255,254,245,185,249,206, 61,153,141,
-223,240,250, 31,253,204,103,254,103, 59,233, 38,177, 44, 52, 91, 88,186, 56, 30,219,168, 85, 26,137,192,231,254,226,158, 46,141,
- 63,241,207,127,177,237, 38, 19,210, 72,156, 60,121,126,188,147,148, 96,132, 75, 4,215, 54, 70,173,141, 5,180, 93, 74, 70, 55,
-179,197,165,139,227,177,187,195,229,127,241,231,223, 1,140,154,102,226,173, 11,101, 89,228,190,114,101,225,224,161, 43,227, 29,
- 59,115,230,222,166, 77,141, 65, 82, 94,187,148,146,209,101,246,236,179,199,151,150,174, 60,242,200, 93,102,157, 4, 52,121, 93,
- 64,182, 41,185,140,148, 72,126,249,203,167, 72, 7, 64,118,137, 18,133, 68, 26, 91,247, 14,104,204, 12,128,148,204,152,146, 72,
- 18, 78,154,211,221,133,111,214,139,195, 15, 63,249, 83, 31, 90,152, 95,136, 69,138,127, 12, 61,107,140,100, 99,205,175,254,234,
-175,188,244,210, 75,215,190,208,207,252,236,207, 37, 79, 16,224,138,203, 18,160,145, 48, 26, 1, 90, 67, 51, 35,173,105, 26, 35,
-155,166,161, 53,223,253,246, 63,127,251,119,253,183,225,133,218,205,205, 77, 64, 40,207,200,193, 11,196,137,227,231,111,189,253,
-185,166,229,168,177,182,165,153, 89, 3, 51,166,100,159,254, 31,239,250,252,231,222,246, 91,191,245,155, 79, 60,254, 56,128,118,
- 50, 30,215,135, 20, 65,210, 72,146, 75,139,235,119,221,115,198,140,227, 49, 90, 55,155,145, 53, 52,200,157,238,130,186,181,117,
-238,108,111,191,239,125,255,160,105,154, 95,248,249,143,243,135,127,228, 71,242, 3, 17,140, 31,180,209,104,114,239,125, 95,134,
-193,104,109,195,118,132,153,145,141, 70, 77,211,194, 72, 1, 18,254,244,179,111, 35,173, 49, 51,179,102,212,182, 41,117,136,165,
- 4,104,128,104,244, 59,238,124,108, 60,150,153, 72, 36, 67,215,113, 50, 81,219,168,105,184,189, 61,255,149, 47,223, 75,163,113,
- 66,154,155,153, 89,114,111,187,206,141,121,249, 76, 0,204,161,201, 36, 77, 38, 78,130, 76,102, 52,195, 35, 15,191, 41,117,251,
- 66,225,204, 38,161, 49,217,112, 26,205,189,245,212, 9,164, 65,162, 59,205, 4,233,249,231,142,223,126,199,211, 18, 82,106,207,
- 60,122,143, 25,105, 70,116,214, 24, 65,107,140,176,166,241, 68,107,104,108,104,230,109,215, 37, 35, 40, 3, 65,152,119, 50,179,
-213,213,125,151, 46, 46,158, 61,123,179,212, 0,201, 29,102, 70,210,221,154,134,238,214,152,185,104,102, 34, 41,107,172,105, 83,
- 74, 78,210, 69,194,204, 73, 75, 41,145,124,246,217,147, 0, 72, 39, 33, 81,130, 25,105, 82, 50, 51, 40,201, 96,146,100,141,193,
- 9,182,201,147, 21,193, 9, 43, 24, 19, 31, 47, 51, 3,104,161,120, 48,130, 36, 40,201,140, 14,144, 2,129, 70,252,230,233,218,
-183, 70,105,235,235,192,129, 3,251,247, 31, 0,176,179,179,189,178,178,178,185,185,249, 13, 92,232,142, 59,239,124,239,123,127,
- 48, 75,102,249, 21,170,111,102, 77,211,172,172, 92,253,229,127,249, 75,175,116,161,143,124,244, 99,158, 60,219,195,172,253, 70,
-100,255, 25,175, 38, 46,102, 77, 59,106, 63,252,115, 63,123,141, 11,125,232,167,127, 6,138,127, 2, 66, 91, 66,111, 65,128,108,
-104,108,154,108, 70, 26, 51,154, 29, 59,246,242,250,250,151,126,234, 39,255,104,202,140,116, 93, 39,197,226,169,154, 17,177,142,
- 72,163,198,143,220,120,113,121,121, 99,126, 97,188,184,184, 61, 55, 55,161, 53,228,220, 39,127,233,151, 63,250,145,159,157,186,
- 16,212, 75, 65, 54, 34,116,130,102,120,240,173,255,167,109,217,182,108, 90,180,173, 53, 13, 83,162,161, 51,106, 50, 30,255,226,
- 39,127,233, 99, 31,253, 72,150, 56, 79,201, 7, 47,185,228,146,187,212,189,249,129, 63,115,143,191, 11,162, 32, 57, 4,165,164,
-228, 93,151,186,174,235, 62,249,201,127,145, 47,148,250,151,187,123,125,127,223,233,207,165,164, 46,197,215,228,138,105,148, 28,
-158,212, 77,144,186,212, 77, 38,227,201,248, 3, 31,252, 32,128,214,229, 0, 8, 1,134,248, 41, 46, 31, 88,145, 82, 74, 20, 64,
-192,146, 60,193, 27,101,255, 9, 64,146,146,187,161,235, 14, 31, 58, 76,176,185,247,222,123, 1,193,243,210,197,164,191,254, 13,
-143,130,121, 13,138, 92, 9,160, 4,185,220,245,197, 47,220, 59, 30,143,234,204,190,243,123,191,183,149,187,226,220,176,253,110,
- 4,132, 46,117, 52,139,167, 33,201, 49, 36,135, 53, 36,112,241,229,195,171,171,115,180, 20,207, 10,114, 60, 30,183, 82,156,234,
-146,133,117, 3,149, 18,204, 36,193, 4, 52, 28,195, 91,209,221, 27,195,153, 71, 78,173,173,239,143,101,205,243,209,117,225,216,
- 61,198,109,150, 28,164, 32, 67, 74,113, 39, 72, 8,129,119,199,185,179,175,121,249,229, 99, 70,144,137,164,137,162,178, 28,163,
-107, 35, 26, 53,131,187, 1, 50, 35,220,221, 35, 4,176,152,213,149,203,203,207, 60,123,167, 25,105, 41,244,144, 70,185, 53,166,
- 28,125, 2,173,146,195,232, 14, 32,145,230, 46,128,238,146, 8,200, 76, 79, 63,117,219,230,230, 50, 45, 73,164, 20, 6,214,100,
- 48, 37,193, 20,106,175,214, 33,184, 19,102, 6,151, 83,164, 33, 37,146, 48,211,163,143,188,110, 60,158, 55, 38,201,104, 4, 41,
- 37, 71, 3,115,138, 4,225, 4, 9,184,121,242, 8,133,220, 37,119, 64,238,190,185,177, 15,240,103,190,118,114,107,107,214,221,
- 93, 2,228,146,220, 93,114,121,114,185, 43, 84,193, 61,201,213,220,125,247,221,202, 10, 27,113,171, 0,172,173, 46,202,121,233,
-210,225, 28, 4, 0,146,178,216,130, 16,136, 48,211,170, 62,186, 13,253, 33, 41,208,165,248,210,120,220,158, 63,127, 83,118,206,
-146,153,145,144,220,105,230, 14, 51,119,192,156,106, 76,249,213,186,156,180,124, 9,119,101,207, 1,119,207,102,128,116,119,154,
- 81, 50, 72,150,227, 39, 9, 12, 99, 40, 73,222,202, 5,246,223,175,151, 40, 70, 42, 66,250,134,241, 21, 48,155, 63, 65, 12,173,
- 98,136, 90, 43, 57, 64,130,238, 94,220,169, 23, 55,151, 67, 77, 41, 70,108,114,137,132,229, 47,185,212, 32, 39, 19,248,246,235,
-255,201,207,214,215,109,183,221,126,247,221,119,223,122,251,237, 7, 15, 28,232,143,134, 93, 64,132,155,198,252,203, 86, 86, 86,
- 30,127,252,177,175,124,229,203, 79, 61,245,212, 55,103, 64,139,139,139,239,125,239, 15, 30, 59,118, 60,156, 70, 9,152, 21, 58,
- 80, 84,161, 88,222, 93,145,116,137,133,107, 72, 8,162, 29,141,126,255,119,127,247,243,159,255,156, 94,181,112,240,221,239,126,
-247,221,119,159,114,207,114, 30,154,171, 61, 67, 38,217, 15,162,198,245,187,135, 20, 9, 71, 63,172, 50, 80, 51,179,174,235, 62,
-245,169, 95,123,250,233, 23, 95,121, 64,237,237,119,188,110,103,103, 92,230,227, 26, 15,194,154,220,128,187, 70,131, 62,205,232,
- 71,224,117,144,230, 70, 52,173,246,205,111,222,242,218,231, 15, 29,188,242,221,111, 63, 45, 52, 23, 47, 30,255,135,239,251,143,
-219,219,219,215, 30, 80,234, 38,101, 16,125, 82, 51, 24, 13, 53, 53,160,169,197, 19, 48, 63,191,125,219,109,207, 44,239,191,218,
- 54,176, 6,102, 48,210,154,152,169,136,142, 16, 51, 5, 89, 82, 50,216,194,252, 75, 15, 61,244, 79, 70,163,230, 55,126,227,223,
- 63,249,228, 19,187, 7,212,165,116,109,237, 39,194,100,230, 73, 97, 89, 34, 8, 32,205,239,188,227,169, 67,135, 46,179,129,145,
- 18, 60, 89,118,237, 6, 58,101,222, 68, 46, 2,164,206, 35, 99,128, 32, 35,141, 41,117, 66,250, 71, 63,252,195,109,219,254,250,
-191,251,183,207, 62,251,236,112,134,186,235,137,187, 33, 28,178,209, 4, 15, 55, 73,128, 39, 79, 62,119,252,196, 57,107,144,156,
- 4, 69, 81, 64,227,141, 91, 56,112, 25,195,116,210,225,113, 45, 23,195,240, 38,159,140,217,165,206,194, 49,186,255,216,143,255,
-227,153,209,204,135, 63,156,131,190,230,244,253,247,103,203, 93,144,151, 60, 97, 66, 47, 88,245, 39,211, 93,119,253,213,129,131,
- 87, 0,120, 53,248,168, 41,176,216, 39,141,156,214, 96,201,227, 6,122,225,185,227, 43, 87,151,161,254,149, 60,125,207, 59,222,
-121,238,220,185,139, 23, 47, 54,247,221,119, 58, 32,145, 8, 54,228,249, 30,200, 49, 30,114, 16, 34,136,186,253,246, 39,230, 23,
-214, 34, 36,137,152, 3,160,138, 83,205,254, 33,198, 39, 72,240,236,134,229, 14,119,184,107,109,125,225,209, 71,238,202,142,171,
-222, 84,130,240,198, 55,190,201,140,173,187,135,176, 0,128,135,195,203,239, 68, 17,112, 17, 6,136,251,151, 86,150, 22, 86,228,
- 76, 16, 9, 56,104,144, 68, 65, 78,153,187,152,220, 91,193,147,153,201,108, 74, 47, 37, 63,251,194,137,231,158,125, 45,152,168,
-108, 32, 82,142,228, 21,136,211,119,125,247,219, 91,247, 4,130, 78, 69,174, 31,227,112,138,130, 74,148,224,128,236,224,225, 11,
- 73, 82,151,179, 65, 51,193,225, 36, 13, 70,210,208,200,140,242, 4, 51,208, 96,150, 19, 34,137,231,206,158,120,254,249,155, 65,
- 18, 94,236, 71, 86,194,252,166,224,109,109, 89,144,144, 2, 41,166,136, 66, 14, 48, 25,193, 52,169, 81,187,149, 82,120,127, 2,
- 46, 49, 75,140,228,144, 53,225,231, 97, 70, 99, 2,217, 77,102,206,157, 61,121,233,242,141,144,129, 36, 20,234, 71,131,152, 51,
-166, 28,176,229,140,150,148, 90, 79,174, 12, 34,193, 61,199, 81,200,177, 45,144,143, 16,150,146, 35,165, 42,222,138, 51,205,172,
- 60, 33, 72, 31,167,209,133, 11, 55, 93,124,249,168,148,109, 17,160, 88,153,226,120,196, 64, 22, 40,131,121,196,179, 34,129, 88,
-187, 54, 73,132, 67,161,225, 0, 92,158, 39, 90,101,198, 37, 82,216,222, 30,141, 70, 59, 17,214, 88, 36, 4,144,187,204,228,206,
-151,206, 31,123,249,226,209,226, 78, 16,147, 20, 90,103,217,166, 91,224, 45,148,145, 9, 52, 32, 81, 22, 3, 97, 10,236,129, 45,
-220,197,176, 25,202, 3, 85, 32,190,148, 59, 24, 33,176, 75,188,122,101,113,110,110,205, 12, 36,106, 92, 62,153, 52,207, 63,123,
-235,230,214, 2, 64,179,156,126, 64,116,203,235, 77, 42, 5, 6, 28,169, 67, 34, 45, 81, 70,198,122, 36, 68,230, 96, 36, 72,183,
-152,161, 88, 35, 18,238,234,103, 7,253, 1,146,186,178,178,124,248,200, 75, 77, 19,243,143,148,154,103,190,246,218,173,173,197,
-200, 7, 4, 41, 85,247, 42, 36,154,133,137, 44, 56, 20, 74,204,130, 44, 33, 64,196, 4,197, 45,131, 52,180, 49, 13,164,220, 51,
- 34, 25,191, 36, 65, 6,134,195, 21,192,241,164,189,244,242,161,195, 71, 46, 16,186,248,242,141, 47, 93, 56, 22,114, 67,196,132,
- 1, 89,146,100,102,128,220, 73, 36,153, 1,146,211,152, 4, 35, 32, 7, 41,138,180, 36, 55, 3,100, 50,143,123,121, 43,169,168,
- 12, 99, 58, 88,164, 71,112, 43,233,103, 60,195,249, 23,143,190,248,210, 17,228, 83,178,182,138,132,187,153,197, 91,137,201,195,
-167, 24, 0,203,206, 35,188,138,195, 16,106, 42,196,236,184,131,116, 42,252,158,163,117,143, 5, 12,241,164,187,194,197,196, 83,
- 38,247, 88,222,154,246, 73, 10,143,239, 69, 39, 3, 52, 9, 39, 96,102,146,147,160, 89,104,135, 36,193, 44,166,197, 4,183, 28,
-245, 19,238,160, 85,207,162,200, 97, 91,149,201, 37,178,218,199,189, 7,201,135,163,204, 83, 22,147, 88, 24,149, 12,204, 29,229,
- 38,145, 85, 72,121,178, 5,185, 44,223, 58,194,135,234,102, 66,198,179,110, 20,127, 9,180, 74,169,172,189, 65,217,186, 84,203,
-185, 43,155,137,143, 53, 50, 75, 41,153,153,187,155,101, 72, 15,178,108,225, 64,129, 20, 97,249,158,161,178, 40,153, 97, 8, 39,
- 11, 26,159,179,229,152, 33, 40,124,164, 27,203,146,169,207, 63,135,225,240,174, 35,197, 91,195, 29, 8, 87,211,191, 11,113,138,
- 15,204,254, 22, 49, 39, 22, 46, 74, 78, 88,201,119,161,234, 71,191,253,250,246,235, 91,153,185,246,177,247,168,157,159,155,159,
-153,153,217,183,111,110, 52,202, 80, 92,215, 77,182,183,119,118,118,182, 55, 54, 54, 82, 74,223,242, 1,141, 70,163,251,238, 59,
-253,134,187,238,186,229, 53,183, 52,109,169, 56,138,176, 28,124, 71, 10, 24,153,170,164,167,159,126,250,209, 71,190,250,133, 47,
-124, 97, 92, 10, 60,223,180, 1,125,223,223,125,247,169, 83,167, 70,237, 72, 21, 55, 46,201,216, 32,161,174, 9, 98,206,240, 1,
- 52, 77, 67,227,120, 60,126,248,139, 95,252,131, 63,248,175,127,173, 1,181,109,123,234,212,169,119,189,235,251, 84, 45, 77, 65,
-183, 48, 72,233,135, 25,254,116,102, 63,157,218,147,102,182,186,186,250,171,255,234, 87, 54, 54, 54,190,177, 1, 29, 60,120,240,
- 93,239,122,215,241,227, 39, 35,134,197, 46,107,136,105,116, 97,250,231,117,199, 20,209, 41,208,180,205,133,151, 94,250,173,223,
-252,205,203,151, 47,191,170, 1,125,224, 3, 31,152,155, 91,112,249, 84, 34,182,107, 2, 75, 2, 63,200,234, 7, 11, 22,254, 53,
-215, 54,109, 26, 9,201,112, 77,211, 52,207,124,237, 43,191,254,235,255,233,235, 14,200,102,102,247,117, 93,231,238,157,119, 3,
- 92,191,226,154, 30,112,167, 92, 73,174, 2,125, 42,197, 71,151, 39,185,123,242,242, 41,197, 23,147,123,138, 11,165,228,201,201,
-173,191,247,158,237, 63,249,211,247, 44, 47,239,251, 58,213,250,183,190,245,193, 0, 97, 17,249,226,244,171,122,175,138, 70, 84,
-204,102, 8, 78, 12,214, 55,231,141,225,194, 73,159,153,217, 57,114,244,165,187,238,122,100,118,223,182,164, 31,122,223,157, 47,
-190,120,219,147, 79, 62,121, 93,251,226,238, 80,133,116, 53,165,118,202, 11,164,233, 67,195,183,225,150,231,231, 54, 23, 22,183,
-150,150, 54,102,103, 38,163, 89, 31,181,221,104,148,102,102,211,204,204,164, 29,165, 40, 74, 22, 8,216,191,247,157, 15,222,126,
-251, 29,255,230, 95,255,218,181, 7,164, 90, 61,239, 53,107, 10, 0,185,134, 23, 22, 20, 40, 13,252,248,177, 23, 79,156, 60, 63,
- 59, 59,105, 90, 25, 13,166, 38, 36, 7, 96, 3,163, 1,114, 69,124, 99, 49,252,166,221, 58,113,252,196, 39, 62,241,139, 31,255,
-248,199,174, 33, 67,185, 38, 52, 93, 27,218, 85, 39, 42,210,228,105,112,112,102,180,121,207, 27,191,124,243, 45, 95, 27,141,118,
- 4,121,130,187,195,163,112, 41, 17,114, 38,119,137, 65,107,112, 36, 41, 73,221,104,180,149, 60,129,248,167,255,236, 19,215, 24,
-144,114, 97,234, 21, 95,129,116,120,255, 97,113,113,229,212, 27,191, 50, 55,183, 17,193, 80, 65, 43, 42,136,192, 0, 27,114, 64,
- 39, 65, 84,145, 83,160,147,123,196,187, 31,249,232,199,246, 12,232,122,227, 41,168, 71, 15,179,151,194,225,226,226,213, 59, 94,
-247,152,217,196,229,114,148, 11,160, 72,123, 64,234,181,202, 68, 1,201,221, 29,114, 8, 73,234,234, 52, 47, 45, 46,189,255,199,
-126,124,106, 64,215, 93, 41, 5,136,146,239,233,165,186,209,216,248,182,219,159, 48,166,228,242, 20,127, 65, 12, 75,187, 13, 42,
- 60,229,255,145, 30, 39,119, 79,220,217, 25,185,203,227, 2,158,110,125,237,173, 15, 60,240,150,225,146, 93,103,122,188,174, 85,
- 94, 16,151,128,116,203,173, 79, 53,205, 88,146,156, 46,121, 66, 62,193, 37, 7, 16,211,144, 77, 2, 35,153,207, 41,186,228,112,
-215,230,230,172, 71,181, 39,165,120,208,247,252,192, 15,204,207,207, 15, 6,132, 93, 8, 26, 74, 45, 76,125,161, 80,144,176,188,
-124,105,233,134,149, 82,195,114,136,249,183,211, 75,253,178, 18,109,242, 60, 3,217,132, 10,146, 82,194,230,198,190, 90, 78,141,
-137,239,186,238,167, 62,244,211,101, 64,152, 22,155,236, 68,202,148,148, 63,187, 36,164,163, 55,157,143, 83, 92,144, 24,235, 25,
-182, 89, 14, 87,145, 39,135, 59,178,104, 59, 80, 70,236,142,171, 87,151, 60, 46,157, 61,128,146, 59,164,217,217,217,183,188,229,
- 59,166,100, 40,251,132,124, 90,118, 23, 85,235,229, 62, 63,183, 49,187,111, 83,130, 39,184,163,200,144,148, 24,112,157,135, 35,
- 73, 97, 36,144,220,187, 20, 62, 68, 41, 10,107,174,175, 61,125, 11, 6, 94,201,139,159,145,235,239,191,231, 61, 36,219, 2, 81,
-229,196,199,115, 2, 51, 0,136, 2,217, 19,246, 47, 95,166,164,114, 32, 50,109,115,186, 57,220, 8,209,123, 8,207, 36, 90,182,
-167, 37,243,242,171, 43, 7,174,174, 46, 21, 37, 68,164, 68, 14,152,123, 2, 52,214,187,191,255,251, 91, 8,130,163, 36,189, 1,
- 94, 1, 84,225, 23, 85,199,180,180,180,226, 81, 5,140,146, 27, 97, 78,207, 8,143,187, 27, 83, 31, 67,101, 52,180, 86, 34,132,
-201,184,125,236,177, 59,242,101,195, 31, 57, 64,135, 81, 48, 72,130,191,229, 45,223,209, 66, 94, 92, 6, 75, 42, 89,252, 69, 92,
-216, 36,161,109, 82, 51, 26,231, 42, 94,224,145,100, 98,198, 13,144,128, 70,112, 9,185,230,235, 25, 89, 51,194, 1,164,212,126,
-245,175,238,222,217, 30, 1,110, 52, 88, 96,232, 38,129, 14,153, 26,119,167,165,148, 90, 15,240,192,233, 37,219,206,248,162,136,
-200,208,157, 0,218,217, 49,233, 1,217,132, 9, 70,153,117,135, 96, 68, 10, 77,119,136,222,176, 81,172,159, 19,216,222,158,123,
-236,204,235,183,182,231,153,231,196, 99, 73, 10, 92, 65, 56,220,140,112, 58, 91,197, 41,204,178, 3,201,115,160,234,238,117,150,
- 56,106,199,114,193, 88,102, 40,123, 6, 51,193,233,168, 64,134,114,169,193, 8,192,197,151, 47, 28, 61,251,194, 73,247, 81, 64,
- 13,185, 98, 49,116,226, 2, 77, 1, 83,137,108, 51,166, 24,227, 18, 11, 82, 45,151, 2, 0,130, 83,144, 53,147,129, 29,166, 59,
-154, 38,103,245,102, 80, 2, 26, 71, 50,135, 26,137,134,228, 88, 89, 57,112,246,249,215,140,119,230,162, 54,162,126,200,176,128,
- 94,170, 65,151,172, 8, 77,155, 45, 16,251, 80, 3,185, 26, 27, 71,242, 31, 73, 79, 25,113,132,228, 36, 83, 65, 53,131,248,228,
- 9, 50,183,196, 9,176,182,186,124,238,236,205,219,219,243, 1,159, 0,153, 87,232, 37, 8,247, 56,194,252, 63,163,120,102,238,
-222,122, 22, 95,167, 51,107,116, 6,119,242,170,197, 45, 61,213, 48,142, 5,128, 84,185,100, 84,208,165,196,181,245,197,179,103,
-111,222,218, 94, 36,242, 80, 84, 10, 72,101,177,114,112,178,171, 20, 86,104, 37,106, 33, 40,132,168,192,194,129, 91, 35, 20, 52,
- 36, 65,236,146,185, 98,154, 3,191,202, 50, 29, 81, 4,224, 59, 59,163,115, 47,156, 92,185,122, 40,170, 70, 96, 37,185, 76,229,
- 20,130,108,122, 28, 86,140, 64,148,251,195, 48,106,176, 66, 33, 80, 10, 4, 44, 32,123,128,147,201, 40,206, 82, 33,176,196,194,
-145, 76,201,183,183, 22,158,125,246,214,241,120, 95, 48,206,242,156, 40, 89,158,201,160,122,132, 62,208,115,166,146, 71,156,133,
-217, 66, 11,188, 69, 65,126, 49, 20,111, 71,121,227, 1,252, 79, 38,173, 18,100, 94, 19,178,140,186, 38, 93, 94, 57,116,238,236,
-205,174,166, 32,116,189,116, 56, 81,140,132, 50,226, 88, 16,222, 33,160,149,197, 2, 16,217,102,131, 92,141, 66,145,176,188,102,
-129, 90,187, 38, 19, 27,119,237,104, 52,137,147,226,236,148,112,229,210,161,115,231, 79,230,213,201, 92,205,140,207,149,196,132,
-153,186,107,232,147, 62,230,149, 71,134,208,122,237,109, 3,107,206,163,201, 86, 59,202, 41,128,101, 48, 63, 8,213, 59, 59, 51,
-109, 59,169, 53,123, 64,151, 95, 62,116,238,197, 19,129,178,102,254, 80, 84, 18, 97,130, 12,245, 61,242,161,140,189,154, 73,178,
-112, 2,206,176,213,144, 96, 25,232,204, 97, 24,228, 53, 12, 26,148, 18, 51, 28, 41,108,110,204,245, 1,182,116,249,242,129, 23,
-206,157, 8,203, 20,174, 27,146, 23,182, 77, 84,247, 74, 73, 16,168, 49,132, 4,149,104,202,107,120,227, 30,166, 70, 50, 40, 80,
-248,248, 29,194,238, 21,208, 12, 69, 10,206,206,250,250, 66,160,252,146, 54,214,231,207,190,112, 60, 22,160,112, 72, 2,106,206,
-105, 85,133, 8, 34,228,243,105,200, 84,152,170, 37,246,228,152, 76, 98, 21,242, 87,138,210,171,255, 88,164, 88,218,218,220,215,
- 77, 26,119, 77,118,218, 23, 94, 56,153, 82,227, 57,102, 85, 69,183, 75,117, 52,207,142,231, 31, 57, 36, 70,189,125,120,192,202,
- 94, 40,149, 94,186, 55,119,223,125,119, 1, 61, 56,149,185,230,148, 53, 43,148, 36,151, 37, 55, 72,231, 95, 60,190,181, 53,151,
- 75,102, 69,166,128,222,102, 68, 48,147, 47,145,143,177, 74,124, 1,206, 57,164, 77,176, 92,165, 85,248, 64,230, 39, 37, 16, 53,
-134, 82,148,129, 42,218, 14, 94,190,124,232,242,229,131, 40,148, 87,101,149,246, 98,156, 2,230, 14,206, 30, 45,164,156,153, 9,
- 37, 25,227, 30, 81, 64,161, 23, 80, 93, 46, 55, 88, 32, 78, 38,215,112,205, 60,207,191,134, 75,150, 3,190, 28,165, 10,211,197,
-243,154,249,196, 59, 47, 50,229,142,190,194,237, 83,186,130, 26,120, 85,186, 87,184,125,151,213,154,120,176,186,170, 32, 74,125,
-121, 37,131, 50,253,226,160, 10, 89,172,127, 63,110,120,113, 83,222,123, 40, 40, 34,208, 72,207,132,162, 97,170,238,187,230,162,
-200, 60, 49,213,135,233,181,204,195, 92,214,242, 84,166, 18,198,249, 69,219, 89, 13,124, 49, 17,229,169,144, 11, 95,145,169, 57,
-242, 80,156, 10, 71,215,231,198,168,137,156, 36,171,143, 18, 15, 25, 90, 86,150,204,251,144,165,228, 38, 37, 27,208,160, 30,194,
-242, 12, 57,188,139,177,245, 92,200, 28,208,213,146, 59,250,180, 59,236, 31,188,180,179,208, 84, 20,180,136, 78,240, 28, 85,133,
- 35, 38,169, 18,132,194, 44, 97,247, 92,230,239,214, 55,138, 55, 89, 30, 6,179, 5, 22,122, 93, 15, 0, 81, 44,243,164,200, 92,
-123,209, 25,216, 52,148,193, 97,119,158,189,103, 52,152,134, 38,149, 35,188,106,232,131, 26, 88,171,111,121, 25, 7, 67, 82, 77,
-153, 45,166, 44,155,227,162,101, 67,155,139,222, 88,151,162,243,148, 53, 47, 81, 91,141,177,138, 12,168,136,181,215,133,202,202,
- 51,192,155, 81,197, 40,175,161,161,103,196,176,146, 61, 7,224,162,170, 80,103,173,118, 31, 50, 29, 75,189,204,217,135,220, 89,
-192,195, 42, 10, 34, 60,142,149,124, 75,117, 40,194,110,192,240,219,175,111,191,190,253,250,246,235,111, 66,189,245,149, 46, 65,
- 46, 46, 45,221,176,180,180,176,176,184,188,127,249,224,129,131,203,251,247, 47,223,112,195,252,194,226,194,194,220,204,204, 44,
- 11,147,169,148,221,166,138, 22, 93,215,109,109,109,174,174,173,174,173,173, 95,184,240,210,250,218,250,213,213,171,107,171,171,
- 43, 43, 43,107,107,107,127,243, 38,104,126,126,254,142, 59, 95,119,226,196,137,163, 71,142, 44, 47,239,159, 95,152,111,219,118,
-208, 94,178,235,234,220,123,147,105, 42,237,160,149,176, 86, 79, 7,175,174,235, 54, 55, 54,175,174, 94, 61,119,238,236,227,143,
- 61,246,196,227,143,119,223,164,202,247, 55,109,130,142, 28, 57,114,250,254,251,239,185,231, 77,179,179, 51,170,196,146, 87,115,
- 93, 21, 16,191,199,165, 88,138,107, 42,212,236, 12, 27, 98, 80, 44, 29, 22,116,115, 47,103,161,177, 10,138,174,174,231,158,123,
-246,127,125,230, 51,103,206, 60, 58,136,155,255,191, 76,208,226,226,226,209,163, 71,223,248,198, 55,221,113,199,157,214, 54, 70,
-147,124, 74, 64,116, 13,206, 53,175, 41, 52,228,174, 18,242,224,227, 30, 14,253,222,159,211, 93,115,145, 28,245,132,223,202, 21,
- 48,187,114,229,202, 31,255,239, 63, 58,115,230,204,165, 75,151,190, 37, 19,116,228,200,145, 83,167, 78,221,122,235,173, 71,142,
- 30,205,141, 75,210,244,164,232,149,163, 38, 14, 13,210,192,210, 12,143, 79, 25, 31, 92,131,214,127, 77, 50,192,215, 59,200,204,
-231,162, 89, 99, 0,159,123,246,153,207,127,238,115, 95,124,248,225,174,155,124,115, 38,232,161,135, 30,218, 25, 79,122, 34,247,
-174, 56, 93,175, 46,158,156, 18, 24,114,239,193,107,156,182,139,182,241, 10,162,180,139,186, 48, 84,195,170,125,133, 36, 8,142,
- 70,233,232,177, 11, 55,220,240,252,239,252,246, 35,255,229, 63,159,249,235, 78,208,135,126,250,103, 52,100,186, 95, 87, 94,246,
- 88,158, 33, 77,102,122, 94, 6, 7,247,138,210,180, 18,238,225,181,244, 84,240, 93, 76,142,235,107, 98,136,149,153,239,155,219,
-185,241,240,165, 35, 71, 47,204,205,109,211, 12, 50,107,108,125, 13, 31,127,232, 75, 95,248,194,243,195,108,247,213,191,218, 76,
-135,218,213, 90,114,173,110, 10,237,178, 88,202,156,166, 30,117, 0,185,247, 60,101, 10,101,197, 53, 50,243, 64, 5,148, 14,212,
- 93,125,137,133, 20, 12,134,220, 65, 78,147, 17,102, 50, 19, 77,141,201,168,118,148,218,153,110,166,157,204,204, 78,230,230,182,
-227,127, 59,138, 61, 34,172,228, 95,201, 19,231,230,155,159,255,133,191,243,228,147,175,255,203, 47, 61,246,135,127,248,223,191,
- 81, 59, 53,160, 87,224,186, 61,102,122, 5,205,210,158, 79,195,131,186,230, 81,212,142, 59, 33, 86,126,123,113,113, 99,105,105,
-125,110,110,123,102,118,220,142, 82,219,120,211,120, 76, 13, 1, 35, 96,160,129, 65,191,204, 4,231,218,245, 82, 84, 49,216,224,
- 72,170, 76, 86, 18,210,104,180, 97,182,249,134,187,238, 62,117,207,169,213,213,181,223,251,221,223,121,226,137,199, 95,181, 4,
-101,176, 82,195,135,220,243,212,218, 27,224,228,166,134,232, 34, 8, 48, 81, 83,187, 18, 12,182, 76, 24,124, 37,215, 92,104, 77,
-183,188,124,245,200,145,139, 75, 55,172,141, 70, 29, 41, 51,128,104,162, 27,209,130,190, 93,104,170,102, 65,145,160,130, 88,155,
-231,151,164,213, 82, 67, 80,172,163,104,161,204,255, 23, 8, 87,211,108,207,140,182, 54,214,231, 33, 44,204,207,253,232,143,190,
-223,165, 79,125,234, 63, 60,249,196, 19,175, 74,130,246, 72,202,117, 18,254, 61, 44,157, 66, 26,210,148, 90,245,245,218, 93,202,
- 25,242,162,133,133,245, 35,135, 95, 94, 62,180, 50, 59, 59,102,113, 77,202, 72, 13, 83, 52,135, 68, 65,153, 8,202,174, 43,207,
-151, 35,100,138,114,132, 77, 78,185,102,150, 11, 23,174,194, 76,142, 98, 73,198, 55, 58,107,118, 2,208, 33, 41, 79, 36,223,255,
-254, 31,219,216,216,248,253,223,251,189, 51,103, 30,125, 37,142, 87,101,126, 76, 27, 97, 93, 59, 38,158, 62,179, 55,183,234, 79,
- 24, 58,244,193,223, 65,106,113,113,237,228,205,207, 29, 63,249,194,226, 13,235, 77,147, 66,245, 6,174, 51, 46,100, 5, 31,207,
-237, 78, 54,236,173,235,187, 8,242,189, 74,235, 73,174,169, 85, 62, 78, 6,189, 8, 64,201,237,202,149,253,235,235,139,195,231,
-242,228,163,209,232,244,233,251,239, 62,117,234,169, 39,159,220,187, 15, 77,158,160, 55, 63,240,128, 48,132,142,116, 29,155, 51,
-245,167, 74,246,212,215,141,199, 5, 65,243,115, 27, 55,223,252,252,137, 19, 47,204, 45,108,152, 13, 5, 47, 58, 9, 88,120, 47,
-181,139, 78, 28,120,195,210,160, 83, 92, 34,251,205, 41, 88,119, 79, 97,229, 77, 72,125,157,152, 16, 38, 93,123,233,226,161,141,
-141,121, 12,220,116, 41,232,248,210,210, 13,127,251,109,111, 91, 92, 88,122,236,177,107,196, 4,205,253,247,191,249,235, 51,188,
- 6, 29,157, 5,211,155,170,146, 76,253,125, 80,214,145, 96,150, 14, 29,184,116,243,107,158, 95, 92, 94, 45,197,179,178,224,185,
- 63, 43,170,135,236,169,242,196, 32, 18, 64,109,149,171,147, 55,152,142,126,225,242,172, 56, 49,232,180,143, 27,237,108,207,188,
-244,226,209,157,237,125,125, 92,151, 75,184,253, 3,156, 56,113,226, 29,239,248,158, 71, 30,249,234,250,250,250,174, 9,186,255,
-213, 38, 35,197, 17, 21,149,138, 54,237,162,108,131,174,220, 82,217,193,204,104,251,166, 99,231,143, 29, 59, 63,154,217,137, 83,
-170, 66, 21, 62, 77,111,164,138,214,228, 66, 81,105,210,201, 21, 24, 98,224, 0,202, 54, 23,152, 6,160,243, 20,105, 88,178, 3,
- 18,174, 92,222,255,226,139, 55,185,219,174,147, 75,201,171, 87,153, 7,223,250,157,115,243,243,177,169, 78, 47, 65,215,115,237,
- 28,218,163,129,105, 17, 6, 45, 16,187,213,171,132, 59,194,236,204,206,177,155,206, 31, 58,124,209,154,174, 84,105, 11, 97, 79,
- 53,238,225,192,196, 15,219,102,167, 53,167,244,208,214,150,180,216,190,193, 43, 39, 13, 8,193,169, 27,150,196,141,220, 53,233,
- 70,207,191,112,243,250,218, 98, 38, 11, 13, 59, 62, 6, 31, 75,245, 31,183,188,230,150,215,188,230,150,167,158,122, 50, 56,233,
-205,125,247,157,190,150, 54,169,215, 37,214,245, 40,157,254, 3,109, 66, 22,165,202, 89,204,218, 53, 26, 77,110,188,241,229,131,
-135, 47,133, 49, 86,222,158, 38,138,103,121,134,226,187,170,225,102,189,222, 32,118, 66,127, 76,189, 81,175, 10,165, 97, 13,130,
-125,109,161,108,225,144,220,158,127,254,228, 75, 47,222,164,178,241, 66, 29, 35,123, 29,211,128, 60, 12,119, 63,124,248,240, 61,
-247,220,243,232,163,143,110,111,111, 55,247,221,119,122,151, 54,105,202, 65,245,189,147, 44, 27, 32,212, 53,166,122,242, 1, 7,
-124, 93,179,180,127,121,229,240,145, 11,163,153,113,126, 10, 14,116, 64,153, 83,161, 50, 77,253, 61,250, 13,103,178,178,229,185,
- 25, 54,254,102, 25,100, 45, 68, 40,183,207, 70,177,139,117,214, 82,215,156, 63,119,236,236, 11, 39,220,219,222,195,104, 24,198,
- 78,177,215,203, 52, 81,210,220,220,220, 91, 31,124,240, 75, 15, 63,220,156, 62,125,223,180,103,175,225,222,192,162,228,193,150,
- 29,187, 6,188,105, 85, 66, 3,170, 37,213,190,125, 91, 55, 30,190, 48, 63,191,153,249,220,177,135, 71,221, 92,162, 92, 43,134,
- 50, 29,106,103, 29,210,160, 54, 84,181, 72,197,250,214, 10,186,132,235,120, 20,108,111,237,251,218, 51,183,156, 59,119, 60,229,
-217,153,182, 31,211, 76,193,169, 50, 84,185, 42,141, 15,190,245, 59, 91,185, 52, 21,232,212,241, 23,102,111,212,246,195, 76, 6,
-195, 41,102, 81,238, 12,242, 25, 74, 91, 27, 73,153,165,249,249,245,217,185,205, 82,145, 84,223,138, 82, 74,244, 46, 49,111,160,
- 66,243,184,151, 44, 64, 52,115,166,192,104,229,177,213,134,101, 2,165, 49,183,145,246,105, 6,175,145, 18,117, 93,115,233,226,
-225,115,103,143,111,239,204,149,176,106, 15, 7,189,200,123,105,105,171,237,194,181,169, 91, 46, 88, 99,173, 52, 37,188,131,182,
-239, 92,127,172,129, 85,175,130,213, 48,230,210,110,233,165, 70,108, 35, 51,153,159, 95,107,155, 73,207,148, 40,115,111,166,126,
-181, 60, 11, 75, 42, 76, 38, 55, 64,110,193, 40, 40,101,227,224,119,132,163,151,169,196, 64,153, 48, 57,148, 5,129,105,210, 94,
- 94, 57,112,225,197,155,214, 55,150, 74,123,161,188,154,127,245, 65,169,114,239,119, 25, 61, 88,113,206,190, 89, 27,142,132, 54,
-183,127, 86,199,148,203,195,136, 94,207, 65,219, 30, 21, 76, 74, 15, 98,157, 74,154,148,121, 62, 44,172,132,182, 29,143,102,130,
- 87, 93, 49, 9,175,156,194,190,227, 1,153,143,136,146,204, 71, 19,114,148, 68, 45,199,203, 42,192,172,140,240, 76, 11,172,172,
-144, 82,199, 79,205,230,198,194,197,139, 55, 94,185,114, 96, 50,153,201, 67,239,249,177,188, 86,232,203,222,230,244,122, 87, 92,
-106, 37, 32, 26,218,202,172,203, 9,103,232, 66,144, 38, 11,134,156,165,163,231,235, 85,153,130, 42,223, 50,214,216,124,212,142,
-205,146, 15,146,143,194,203,200,150,151,185, 48,158, 27,192,251, 0, 56,139,183, 7, 61, 14,140,142,125,193,138, 15,200,115,147,
- 73, 87,221,100,102,117,117,105,229,202,129,245,141,165,201,100,148, 89,125,187, 16,115, 94, 15,139,208,222,220, 50,211,139, 43,
- 4, 35, 25, 24, 18,132,216, 68, 78,213, 72,136,154,186,194, 0, 46,202,209,112,213,203, 41, 6,171, 75,100, 2, 82,225,120,244,
- 33, 71,105,141,173, 88,169, 23, 38, 47, 51, 11, 40,247,234,147, 68,217,161,169,242, 44, 51,115,174, 75,163,173,141,197,213,171,
-203,171,107, 55,236,140,103,161, 6,125,104,224,152, 34, 69, 23, 14, 99, 13,174,122,205,154,254,151,125, 5,123, 90,104,105,194,
-150,167, 54, 58, 9,178,164,135,155, 64, 15, 51,136, 94, 29, 79,161,196,130,193,206,157,138,247, 75, 86,149, 55, 53, 83,105, 33,
- 71,109,239,174,100,235,154,239, 3, 85,137,234,249,101,166, 19, 4,209, 32,183,174, 27,109,109, 44,172,173, 45,109,108, 44,237,
-108,239, 75,222, 84,172, 21,185, 21,190,239,255,185,150,108,244,150,243,154,248, 85,159, 30, 84, 26,229,128,125,212,102,115,238,
-133, 98, 95,194,165, 26,155,170,238, 23, 17, 54,105, 10, 16,116, 12,167, 15,112,209, 19,221, 89,152,199, 40,107, 83, 98,136,158,
-137,150, 5,174, 80, 70, 84,152, 98, 33,113, 54, 30,207,174,173, 46,175,174, 46,111,109,205,167,212, 14, 64, 86, 13,170, 79,123,
-227,248,222, 26, 86,186,104,222,135,131, 61,191,109,119,245,106, 15,145, 59, 79, 83,211,180,240, 48,187, 44,168,151, 19,168,205,
- 7,197,128,171, 82, 97,213, 67,167,153, 39, 87, 73, 49, 33,149,169,179,201,196,154, 81,159, 39, 4,205, 59,247, 25, 20,250, 51,
-251, 29, 17,242,118, 7, 16,146, 48,153,204,172,174, 46,175, 92, 57,184,189, 61,231,110, 5,117, 86,225,163, 98,232,148,119,187,
-238,168,191,197, 32,153, 13,133, 25, 10, 99,170,236, 60,233,133,233, 26,116,236,210,216, 96, 25,103, 24, 0,200, 41,181,234, 57,
-138,232, 27,109,166, 2,139, 98, 77,250,196,110,176, 75,227,128, 57, 29,246,120,103, 50,154, 76,218,125,249,162,213, 8, 49,194,
-188,186, 11, 72,217,159,163,162, 51,205,198,198,194,149,149,131,235,107, 75, 41,141,106, 74, 55,104,170, 43, 91,230,105,136,129,
-215, 13, 2, 67,201, 61,118, 68,170,180, 35,148, 77,123, 81,187,244,197,186, 74,145, 35,213,112,200,229,165, 5,164, 15,176, 90,
- 71,133, 48, 93,189,235,170,198,181,158, 94,165,164, 28, 41,183,173,153, 13,115,156,214,238,108,207, 46, 44,172, 91,211,155,169,
- 74, 81, 85, 33,137,123,110, 94, 65,234,154,213,213,229, 43, 87, 14,110,109, 45,184, 71,187,105,201,104, 80,226,139,188, 69,237,
- 32,179, 44,187, 48, 84, 46, 85,153,152,169, 32, 57,147, 83, 75, 83, 65,133,238,250,185,221, 91, 41,102,239,135, 4,148, 36,197,
-235,230,135,197,124,248,174, 78, 72, 47,188,238,190,183,193, 33, 78,151, 79, 37,165,196,141,141,185,133,197,153,217,125,219,232,
- 79, 24,226,141, 81, 40,224,100,220,174,174, 46, 95,185,114,104,123,107, 78,176, 2, 13,102,102, 98,111,146, 88,218,118,114,124,
- 86,102,198, 7, 32, 82,198,197, 89,211,197, 42, 73,177,239, 80,142, 30,234,108,230,188,169,112,223,175, 83, 78, 39,208,150,202,
-242,180,113, 87, 73,226,243,151,171, 31,204,168,110, 78, 80,138,115, 34,250,118,191,148,184,181,189,111,107,123,118, 52, 19,219,
-146,107, 32,126,153, 67,155, 82,187,182,186,124,241,226,225,237,237,125,213,235,103,153,234, 97,176, 32,216, 87, 95, 62,247, 29,
- 89, 0, 0, 4,103, 73, 68, 65, 84,147,239, 68, 13, 87, 42,111,200,212,231,117, 25, 79,202,156,219,210,160, 17,141, 23, 17,251,
- 70,252,144,191, 68, 71, 52,135,244,113,101,237,122, 34, 64,182, 37,210, 43, 65, 2,228, 62,160, 20,132,215, 30,250,243,194,192,
-237,247,115, 84,109, 77,202, 71,199,227,209,198,250,194,252,252,230,104, 52, 46,156,101, 47, 94,204,214,215, 23, 47, 95, 58,180,
-177,190,232,170, 82,195,190,199, 73, 94,195,129,220,173,225,117, 7,224,114,119, 86,210, 50,167, 70, 69, 40,228, 42,199,113,225,
-117, 98, 27, 30,213,108, 25,101,127,201,204,121, 21, 7, 40, 59,106,155, 68,172,103, 59,132,156,171, 90, 21,187, 49,192,121, 57,
-216, 8, 6, 85, 77,134,181, 81, 84, 10, 46,201,141,245,185,249,249,185,165, 27, 58,179,222,217,143,199,179, 87, 46, 29, 88,185,
-122,160,235,218,129,187, 80,191, 9, 74,217,190,165,234, 87,109,128,168,155,175,228,111,168, 98, 73, 67,238,123,207,241, 29,164,
- 4, 89,112, 48,220,240,196,203, 30,161,170, 37,135, 34, 94,101,215,182, 24, 68, 59, 69,183,141,199,151, 15, 63, 50,243, 77, 69,
-214,118, 42,159, 14,255,122,242,105,209, 64,236,236,204, 94, 93, 89,110,218,110,110,110,139, 84, 74,163,141,245,133, 75,151, 14,
-109,109,205,215,148, 48,179,134,107, 93,162,108,222,131,126,151,207,193, 78, 48, 28, 52, 37, 69, 93,144, 86,244,146,213, 89,169,
-148, 16,163, 91,174,198,134,158,205, 87,217, 7, 44, 82,185,176,188,189, 57,203, 96,208, 48,142,108, 81,207,171,201,106, 9,112,
-122,226, 51,114, 58,237,131, 20,171, 44,178, 15,189, 98, 53,173, 73,182,178,122,195,250,198,252,104, 52, 49,250,164, 27,149,116,
-105,104,167,203,166,229,234,247,156, 26,200,109, 47,179,101, 87,157,188,153, 82,110, 85,200,253, 65, 83,252,228, 10,164, 21,138,
- 74,197,106, 51,200,147, 63, 69, 99, 39,138, 33,231,148,191,239,131, 64,160,205,101,201, 92,170,244,234,194, 49,220,144,175, 40,
- 15, 89,107,234,253,196,144,123, 16, 94,102,111,210,117,109,215,181, 3,128, 93,213,205, 23, 1,156,202,249,134, 51, 50,168,204,
-160,223,224, 44, 47,218,112, 58,250,202, 88,191, 65, 91,126,186, 48,210, 97,133, 43, 40, 17, 5,204, 2,206,213, 93,155,140,112,
-200, 6,233, 25,137, 65,155, 91,222, 47,180,224, 60,158,219,116, 80,197,164, 90,101,247,218, 28, 49, 32,153, 87, 9,226,148, 69,
- 31,246, 14, 12,133, 55, 31, 67,191, 22, 61, 31,188,146,198,170, 71, 80,101, 16,168, 86,130,189,239, 72,202, 16,116,105, 98,240,
-210, 56, 18, 93, 79, 94, 64,117, 85,192, 85, 24, 66,212, 40, 8, 54,119,111,228, 8, 21, 27,164, 62,190,173,205,125, 57,155,241,
-221,187, 66, 85, 35,202,193, 3,104,239,202, 79, 23, 13,114, 40,144,187,211, 6, 6, 94,197, 14, 85, 91, 86,206, 41,130,168, 97,
- 99, 29,106,175,157, 13,122,239, 50, 83, 97,208, 41,227,101, 11, 66,102,180,170, 48, 62,152,253,181, 77, 51,254, 65, 70, 79, 86,
-117,243,225,200,218, 60,146, 58, 71,165, 91,181,191,109,201, 75,166,173,131,166, 42,191,154,138,119,246,176, 96,167, 38,108,152,
-116, 14,171,163, 53, 71, 27,168,118,222, 92,109, 24, 65,123,169, 22, 13, 12,101, 69, 30,250,142, 93, 14,246,108, 6,122, 16, 48,
- 3,149,209, 74, 62,149,153, 42,182, 34, 45,179,147,115, 27,243,126, 22,179, 24, 23, 11, 51,236, 36,241,129,140,212, 22,160,190,
-217,101, 56, 19,211,155, 67,100,221,169, 90,179,107, 66,209, 43,201,112, 16,172,157, 19, 28,180,101,213, 47,201, 75,251,142,250,
- 86,151,108,123, 7,237, 40, 67, 58,134, 6, 70, 85,136,198,234, 82, 49,170, 59,168, 12, 48,252,138,228, 91,193,240,189,180, 29,
-106,208,104, 51,236,176,193,180,117,216,245, 81,195, 46,156,225, 14, 28,187, 97, 25,105,216, 16, 88,155,171,234, 22,146, 3, 21,
- 28, 52,173,101, 43, 88,192,244, 26, 89, 99,112,114,233,166,244, 65, 65, 28,253, 46, 36, 25,232,201, 7,157, 61, 55, 32,171,164,
-247, 38,170,230, 5, 82,219, 3,129,125,159, 87, 5,119,250, 60,184,166, 2,117,180,149,129, 90, 31,152,123, 88,138,195,121,153,
- 78,146, 49, 8,118,170,159,231,148, 35,171, 33, 78,209,166,108, 12,242,223,204, 6, 59, 51,100,197, 43,123, 96,202, 75,200,232,
- 44,101, 13, 49,239, 62, 26,118, 52,123,172,156,197,229,221, 91,221,242, 65, 86,204,172,237,239, 90, 58,148,243,186,168,175,135,
-228,251,151,197, 29,198, 41,187, 56,131,123,119,248,219, 53, 95, 67, 75, 52,180,121,131,202, 63,135,117, 26, 47, 86, 8, 83,219,
- 12,129,125, 31,123,223,242,148,183,253,239,243,241, 72, 52,172,135,137,132, 10,216, 13,206, 41,225, 79,222,227,162, 79,143,115,
-135, 64,237,187,202,122,239,185,169,110,215, 19,198,158,191, 67,137, 24,206,203,208, 24,237, 98,203, 15,191, 50,252, 86,153,223,
-124, 1,105,154,234,152,125,123, 45,154,199, 73,125,122,194,254, 75,131,125,104,114, 64,153,153, 21, 37, 20,232,107,206,220,179,
-239,120,245,252,224, 52,179, 87,146,251,255, 5, 5, 25,118,136, 86,164,160,133, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/thumb.png.c b/source/blender/editors/datafiles/thumb.png.c
deleted file mode 100644
index cbab665181d..00000000000
--- a/source/blender/editors/datafiles/thumb.png.c
+++ /dev/null
@@ -1,294 +0,0 @@
-/** \file blender/editors/datafiles/thumb.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <thumb_png> */
-
-int datatoc_thumb_png_size= 9098;
-char datatoc_thumb_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0,
- 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0,
- 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,
-115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 19, 0, 34, 14,207,247,218,
-175, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,124,123,208, 93, 87,117,223, 90,107,239,115,206,189,223,251, 37,125,210,103, 75,
-223,167,151,223, 22, 66,182,121,197, 22,114, 18, 8, 49,133, 16, 48, 73, 27,167, 6,146, 97, 74, 27, 90, 72, 39,227,166,195, 36,
-105, 59,147,153, 38, 77, 66,167,147, 87, 73,219, 60, 11,100,218, 48,147, 54,208,192,132,242, 10, 73, 1, 27,131,177,141, 9,150,
-173,135, 45,217,178,164,239,253,221,123,206,222,107,173,254,177,247, 62,231,220, 79,178,229, 39, 54, 25,238, 92, 93,157,239,222,
-115,207, 93,103,237,245, 94,191,181,241,208,161, 67,112,209,199,211, 57,137,234,163,183,188, 54,158,125,199,167,206,109, 58,201,
-214, 71,119,252,232,225, 27,119, 79,220,127,252,212,175,190,126,106,211, 73,102,126,126,254,216,177, 99,255,233,125,239,190,230,
-229,135,119,205,239, 91, 63,119, 98,231,204,196,125,143,156,102,150,230, 74, 34,242,141, 63,253,136,205,187, 72, 6,200,188,230,
-134,155, 58,249,151, 10,107, 86,251,213, 31,126,230,206,134,166,172, 51,204,190,220, 88, 62,221, 95, 61,195,174,191,111,110,235,
-203,247,238,156, 25, 29,122,231,205,215,183, 9, 87, 21, 81, 97,118,125,223, 95,101,225,137,225,238,229, 59,182,111,155, 28,189,
-253,240,117,145,112,246, 78,216,137,175,216, 87,204, 37,139, 42, 64,102,104,235,196, 24,179,190,253, 53,215, 18, 0,112,213,231,
-170,199,174, 39,213, 58, 59,199, 34,158, 89, 84, 17, 49,207,237, 80,145, 91, 0,240,229,154,239,175,187,222,138,235,175, 86,222,
- 85,206, 59,207,222,179,103, 97, 17, 66,180, 0,224, 54,150, 93,185,230, 54,150,250, 85, 85, 58, 46, 61, 59,207, 21,179,243,222,
-179, 48, 11, 62,173,181,123,102,143,159, 56,116, 29, 0, 28,252,145,119, 63,213, 73,247,254,233,135,255,249, 45,223, 55, 57, 58,
-116,253, 91,255,233,230,181, 11,255,221,247,103,255,211,218,124,223,182,201, 17,170,134,151, 30,254,218,195, 39, 7, 78,186,231,
-163,255,253,189,255,240, 39,108, 94,168, 10, 32,206,118,252,218, 70,127,207,236,212,221,173,243,204,251,223,241,211, 34,236,250,
-107,229,250,146,219, 88, 1,245,163, 29,131,128,187,182, 76, 92, 54,183,229,222,227,143, 1, 0, 33, 0,128,138,176,248,202, 85,
-235,190, 90,207, 50,123,201,204,196,158,185, 45,147, 35,221,183,189,234, 26, 0,176,204, 78,188, 19,239,132,157,250, 74, 88,132,
-133,136,198,135,135,182, 77,248,202,249,195, 87, 45,144, 84,125,113,125,118, 61,174,214,125,181,225,153,153, 89, 68, 0, 52,179,
-102,164, 91, 76,142, 14, 91, 87,174,251,106,195,247, 87, 93,111,197,185,190, 99,174,152, 43,207,206,179,103, 81, 85, 66,180,213,
-198,178, 47,215, 93,127,165,236,175,151,206,151,206, 87,142, 43,239,157,103,207,236, 88, 68, 4,158,175,181,163,231,107,229,237,
-249,111,253,245,111,124,224,129,135, 31,252,234,183,143,247, 42,255,251,255,247, 43, 0,240,179,255,235,145,172,232,254,234, 15,
- 77, 63,197,133,240,208,161, 67,159,255,252,231, 27, 10, 9,239,250,111,191, 75, 54,247,190,252,204,231, 62,126,234,236,202,242,
- 70,175,114,252, 71,159,187,235,169, 41,194, 67,135, 14,189,251,198, 3,151,239,218, 87, 12, 79, 20,195, 19,182,232, 34, 0,187,
-178,234,175,185,222,234,210,169, 7,238, 61,242,208,233,197,149, 39, 86,215,202,202,123,129, 63,254,236,157, 23,188,144,217,177,
- 99,199,123,222,126, 91,222, 29, 37,178,202,206,149,235,174,191,238,202,117,118,125,241, 21,153,108,203,248,240,150,209,206,104,
-167, 83,100, 86, 85,175,217,185,109,255,252,246,110,167,120,228,204,210,102, 30, 25, 91,136,120,118,149,170,138,175,216, 85,194,
- 21, 87, 61,239,122, 82,245,184,234, 21,153,221, 62, 53, 54, 54,212,217, 54, 53,126,102,101,237,236,202, 90,145,217,203,183, 79,
-247,171,234,163, 95,188,167,185,144,136, 87,246, 32,172,236, 85, 88,197, 43, 59, 97,167,236,153, 43,246,142, 69, 68,213, 26, 26,
- 42,242, 45,227,163,195,157, 98,121,109, 99,181,215, 95, 90,239,223,118,211,203,151,214,215, 63,254,213,191,179, 0, 32,174, 20,
-246,194, 94,124, 37,190, 98, 95,138,235,179, 43,197,245,196,245, 88,132, 89,194,181, 68, 21, 1, 44,209, 80,167, 64, 68, 36, 50,
-132, 0,122,203,193,203, 44, 0,248,170,167,222,177, 56,113, 78,124,233, 93, 95, 92,223,187, 30,187,158,247,226,216,123, 22,239,
-213,113,176, 85,220,190,168, 33,202,179,172,155, 7,251,214, 95,101,231, 84, 28,251,138, 93,159, 93,159, 93, 47,104,148, 19,246,
- 94, 60,139,243,222,177,120,230,202,115,229,217, 51,123,150, 96, 0, 85, 69, 85, 45, 0,150,107,231, 84, 28,187, 74,124,201, 92,
-121,207,172,226,189,120, 17,207,226, 37,126,199,121, 31,108, 99,229,125,229,124,208, 53,231,217,177,248, 23,198, 78, 62,135,199,
-206,157, 59,159, 55,165,189,200,133,206,183,207,207,224,241,239,223,241,166,177,225,161,198, 97,127,234,220, 91,255,221,135, 47,
-122,107, 23,120,247,129, 63,255,243,127,253,182, 31,120,247,235, 94,217, 92,235,147,103,207,143, 13, 54, 93, 8, 55,189,245,187,
- 63,243, 99,215,237,127,213,226,217,147,159,187,251,107,167,151, 86, 43,231,255,240,179,119,141,204,108, 95, 59,115,234,153, 49,
-251,218,189,151, 23,163,211, 91,119, 92,113,205,252,220, 37, 83,227, 67, 69,254,174,239,191, 94,215, 23, 47,202, 16, 83, 31,109,
-155,154,248,194,127,254,173,209,173,187,178, 98, 24,201, 76, 77,109,115,235,167, 89,196,121,190,108,110,230,192,194,220,215,142,
-158,124,178,171,140,143,143,227,158,185,217, 15,255,226,191,178,221,209, 98,120,162, 24, 26, 67,147,169, 56,223,223,112,253,213,
-114,109,241,129,251,191,252,200,153,165,211,203,171,171, 27,125,207,252,145, 47,222, 83, 86,238,130,183,102, 62,255,123, 31,178,
-157, 17,155,119,137, 44,128, 40,179, 48,107,136, 83,216,141, 14,117,165,234, 17, 33,139, 56,230,171,119,108,187,102,199,236, 61,
-199, 30, 59,159, 34,155, 15,141, 50,179, 10,131,178,175,156,170, 42,179,138, 99,239, 68, 4,209, 92,186,101,138, 16, 50, 99,140,
-161,165,213, 13, 4,184,253,240,193, 63,250,236, 87, 55, 11, 36,153,220,144, 69, 50, 0,168,194,236, 74,239,122,174,220,240,253,
- 53,174,122,194, 14,128, 38,199,134,167,199,134,119,206, 76,206,140,143,116,139,204, 16,221,126,248, 32,209,192, 66, 17, 34, 42,
- 34, 34, 2,168,170,130, 42, 4, 35,199, 21,187,158,184,158,136, 35,192,225, 78, 49, 50,212,153,155,158,152, 26, 29, 30,237,118,
- 12,209,109, 55, 29,184,114,225,210, 1,155,141,170,170, 10,160,160,170, 42,162,170,194,233,233, 89, 85, 84, 9,177,176, 86, 10,
-217, 58, 62,138,136,134,104,105,125,227,229, 59,102,148,253, 3, 39, 30, 3, 0, 27, 66, 68, 21, 9,102, 15,210, 83, 85, 84, 88,
- 69, 18,169,128, 8,134,168,200,179,241,225,110,248,225,179, 43,235,215,238,216,114,122,121, 21, 0, 72,153, 85, 88,162,205,103,
- 21, 22,246, 42,193, 11,176, 4, 19,152, 30, 33,202,201,141, 25, 42,242,161,162, 24, 27,234,100,198,188,102,239, 14, 17,177, 34,
- 78,197,131,120, 21, 22,241,194, 78,197,135,181, 23,169,194,157,166, 39, 40,168, 2, 0,130, 49,100,141,201,243,172,155,231,165,
-243,123,183, 77, 91, 97,175,236,133,157,120,167,236,148,157,248, 74,188, 83,174,212, 59, 81, 21, 17, 81, 16, 81,137,156, 84, 80,
- 0, 5, 34, 48,136,214, 80,102,140, 81,178,234, 43, 97,207, 62,196, 89, 21,251, 74,184, 18, 46,217,149, 44,193,188,107,112, 28,
- 34,225, 86, 85, 90,119,138, 8, 68, 72,136,150,189, 99,239,132, 43,102,167,174, 20, 95,138, 47,217,245, 89, 60,199,111, 50,139,
-178,138,168,134,171,132,117, 12,175, 26, 34, 8, 0, 43,174, 47,222,137, 56,113,129,156, 62,187, 30,251,138, 69,131,183, 9,212,
- 48,107, 60,144,244, 86, 32, 44,188, 2, 90,239,251,236,157,122,199, 92,137, 47,185,234,121, 95,177,136, 99,241,202,204,226, 69,
- 19,105,245, 83, 89, 85, 68, 89, 34,141, 0,106,185,236, 49, 59,241,149,114,197,174,244,236, 35,107, 88,194, 85, 68,194,181,152,
- 85, 61,107,112,223,137, 88,102,141,164,193, 75,202,175,237,216,177,131,224,165,244, 64,196,151, 22, 65,207, 67,180, 62, 61,127,
-249, 29,159, 60,123,203,207,253,230, 11, 24,245,159,255,248,210,135, 62,120,250,209, 7,191,116,255,183, 22,215, 54, 42,207,255,
-251,206,111, 62,182,184, 18, 62, 58,123,236, 91,191,250, 67,211,239,250,221, 47,220,241,201,179,128, 8, 0,223,254,155, 79,124,
-226,215,126,166, 92, 91,126,161, 8,250,129, 3,151,151,139,143,204,239,187,110,246,146,125,127,251,229,207, 61,190,184,242,182,
- 87, 94, 93, 49, 51,203,201,197,181,191,188,251, 1, 0,248,253,247,220, 84,215, 31, 62,253,219, 63,255,172,169,185, 64, 58,115,
-254,227,147,255,246,159, 77,206,238,182, 89,129, 38,163,188,123,228, 27,159, 63,114,234,244,202, 70,127,117,163,223,171,156,103,
-102,209, 39,214,250, 31,255,202,189,207, 75,240, 24,203, 35, 79,118,198,103,126,253, 23,167,182,239, 45, 70,167,243,238,168,201,
- 58, 0, 48, 57,115,233,165,219,182, 83,181, 98,141, 41, 50,107, 13,129, 66, 55, 55, 47, 91,152, 59,176,176,125,108,120,232,216,
- 19,139,207,154,160,241,241,241,129, 37,123,253,193,171,127,246,237,111,154,156,216,146, 15,143,231, 67, 19, 89, 49, 68, 54,195,
-224,122,153, 85,188,120,199, 84,117,136,174,216,127,227,206,197, 71,143, 30,127,232,220,234,198, 90,191,191,209,175,214,250, 85,
-191,114,251,182, 77,237,153,157, 84,128, 71, 22,215,255,234,238,111, 62, 27, 25, 18,145,175,254,193,135, 0, 17,208,144, 49,104,
-172,161, 12,109, 70,198,134, 74, 79, 16, 85, 0,128,232, 40, 16,144,136,108,119,108,118,223,190,145,245,197,147, 39,207,156, 89,
-237,245,215,122,213, 90,175,191, 94, 86,189,178,170, 60,239,156, 26,121,215,205,215, 43,232, 87, 30, 58,117,223,177,147,207, 76,
-168,139,177,105, 21, 13, 63,136,170,138,168,226, 69, 69, 33,185, 42,133,232,109, 36,133, 4, 42, 0,128,100,186,163, 51,243,121,
-103, 99,125,249,204,202,218,122,191,187, 81,150,107,189,114,173, 95,246, 74, 87, 58,231, 69, 95,177,231,146, 27,118,207,177,240,
-103,238, 59,246,200,153,115, 79,139,160, 44,239, 42,139,132, 16, 6, 20,133, 85, 85,196, 67,140,110, 84, 36, 4,132, 42,202, 32,
- 82,147, 21, 41, 67,211,233,116,103,137, 54,202,106,173,215, 31,237,118,123,149, 91,235,245, 87,123,253, 94,233,250,206, 57,207,
- 68,248,131,251,119, 11, 47, 56,209,143,124,225,238,139, 16, 68,100, 4,128, 4, 68, 17,149, 21, 9,148, 81, 65, 84, 33, 36,176,
-194, 34, 30, 84, 98,184, 34, 62,228,208,194, 94,197, 9, 87,202, 12, 8, 69,102,137,186,121,230, 58,185, 29, 46,178,241,225,238,
-106,175,191,214, 43,123, 85, 85, 86,190,116,222, 3, 18,233,237,135, 15, 58,207,159,190,239,232,233,197,229,167,178, 67, 10,128,
- 16, 34, 80,141,111,196, 35, 85, 21, 76,124, 10,175,202, 78,216, 43, 59,241,165,176,171,227, 37, 4,200,173, 69, 4, 66, 52,214,
-228,214, 14,119,138,245, 94,185, 94, 86,125, 87, 85, 21,247,157, 43, 29, 83, 70,175,223,191,187,114,124,228,137,149,187,190,125,
-116, 51, 65, 33,122, 5, 17, 5, 5, 16, 80,137, 33, 30,196, 56, 52, 44, 86, 19,244,133,248, 72, 66, 88,212, 4, 51, 77,188, 5,
-104, 13, 1, 0, 90, 69,204, 66,208,218, 43,109, 47,243, 69,101, 43,207,165,243, 27,101,137, 25,238,219, 58,190, 99,226,202,187,
- 30,126,236,196,153,197, 54, 65,241,199, 64,235, 98,128,168, 48,212,252, 16, 6,145, 16,228,130,112, 56, 80, 77, 5,143, 68,166,
-170, 42,130,106,237,185, 17, 17, 9,193, 18,169, 53, 8,133, 49, 38, 51, 84, 57,206,172,201, 44,245, 74,167,160, 67, 88,220,176,
-123,251,229,115, 83,159,255,230,177, 80, 48, 0,101, 14, 34, 12, 73,143, 66,121, 48,253,188,151, 80,111,209, 40, 64, 49,234, 14,
-225,183,138, 40, 72,124,141,153, 66,136,125, 35,187, 32, 36, 37, 64, 8,153, 33,200, 44, 32, 2, 6,122,137, 16, 55,170, 42,215,
-108, 68,225,230,171,118,173,155, 78, 32,200, 69, 30,132, 24, 90, 25, 36, 44, 10,171,120,169, 67,127,102, 17,151,194,240, 42, 70,
-242, 18,126, 59,174, 51, 11, 72,204, 94,162, 88, 53, 97, 51, 98, 32, 35, 4,227, 44, 98, 13,102,214, 20,154,105,186, 25, 71,198,
- 2, 64,248, 61,145, 32, 61, 41,126, 22, 86,150,200,143,112, 66,208, 47,246,202,149,176,139, 57, 79,124, 13, 95,144,200,158,250,
-153, 36, 64, 91,111,214, 4, 18, 32, 17, 26, 66, 99,200, 10,177, 33,131,100, 1, 64,124, 21, 66,121, 80, 85,101, 97, 6, 21,142,
-153, 81,204,108,148, 93, 84,120,239, 84,189,136,176,138, 10,164,100, 9, 88, 53,150,163, 0, 36,165, 21,225,206, 68,129,165,201,
-168, 18,173,218, 44,106, 35,117,177,206, 95,178, 68, 41,142,119, 37, 12,226, 67,194, 38,204, 42, 73,201,195, 10, 54,130,162,162,
-194,113,213,218,127, 70,237, 96, 17, 73, 41, 65,164, 50,100, 46,146,210,210,148,234, 38, 3,131, 22, 0,216,149, 34, 94,155,172,
- 85, 84,147, 44, 7, 3, 24, 8,138, 43, 18, 50,181,102,117, 56, 81,195, 41,137, 11,233, 13,135,196, 41, 81,230, 89, 99,250, 35,
- 42,172,137,110,173,179, 81, 81, 5, 84, 11,128, 92,245,162,122, 71, 27, 19,114,149, 64,147,211,120,145,182, 6,133,188, 89, 5,
-106,202,164,254,136,181,197,161, 84,170, 12, 36,250,118, 50,165,202,170,161, 64, 24,188,129,168, 42,168, 69,132, 79,221,115,159,
-138, 2, 72,210,138,152,160, 71,126, 66,253,218,252, 89,191,132,111,136,106,180,232,154, 28,113,252, 62, 4,238,197, 36, 90, 55,
-173, 32,176, 24, 22,100, 37, 70,203, 70, 60,218,151, 88,189, 49,228,102, 47, 29, 98, 14, 29, 58, 68,136,248,247, 42, 47,251, 30,
- 65,223, 93, 4,189,241,142,223, 25,223, 54,255,252, 23,246,159,203,215,127,238, 19,143,223,241,169,115,157,145,137,231, 77,203,
- 46,158,219, 2,252,201, 29,239,126,255,155, 15,223,120,245,222,243, 63,253,181, 91,102, 1,224, 95,124,236,161,247,125,236,225,
- 75,175,121,245,119, 98,201,182, 77, 77, 92,247,234, 91, 22,182,140, 95,191,123,251,123, 94,255,170,155,175,221,183,233,132,223,
-120,211, 28, 0, 20, 35,227, 63,241,235,127,113,199,167,206, 45, 28, 60,252, 92, 8, 50,227,227,227,203,203, 79, 85, 27,248,229,
-127,252,198,157, 59,118,143, 22,102,105,101,177,172,252, 88, 55, 63,176,107, 46,207,139, 71,207,198,198,160,176, 63,122,215,103,
-246,191,225, 39, 67, 74,105,178,226, 91, 95,248,243,103, 71,205,252,252,252,197, 9,122,223,155, 94,155,219,108,250,210, 43,253,
-242,163, 27,101, 37,162, 94,100,203,104,247,218,249,237, 15, 61,190, 88,121, 15, 0,171, 79, 60,154,117,134, 46,185,234, 21, 75,
-143, 29,251,240,191,188,229, 89,179,103,126,126,254, 34, 75, 54, 58,212, 45,242, 66,216,151,235,231, 46,123,217,225,185,233,137,
-137,209,161,177,110, 55,179, 38,179,230,214, 87, 95,115,248,154, 40, 88,159,253,189, 95, 90, 58,117,244, 67,239, 56,248,194,202,
-208,117,123, 46,237, 12, 79,100,157, 17,241, 37,128, 94,125,213,117, 91,198, 71,198,135, 59,227, 67,221, 78,102, 13,209,238,217,
-201,119,220,124, 93,145,103, 0,240,161,119, 94,247,220,133,250, 34, 75,246, 31,126,234, 45,211, 91,231,179,238,152,201, 58, 42,
-146,229, 67,163, 5,173,174,175, 40, 40, 33, 73, 10, 60,174,217,177,117,199,214,153,191,123,244,244,115,164,230, 34, 50,116,245,
-194,165,239,120,243,143, 22,195,147,182,232, 26,155, 35, 89, 0,205,187,163, 93,168, 54,250, 61, 5, 32, 66, 80, 16, 21, 64,236,
-102,102,255,194,220,177, 51,203,253, 11,181,159,158, 62, 65, 23, 40,233, 13, 21,249,117,151,239,249,229,127,242, 83, 19,211,151,
-218,162, 64, 32, 34, 84, 85, 36, 6, 4, 5,157,154,219,183,203,149,199, 30, 59, 77,136,132,104,136,214,203,210, 3,160,232, 91,
-110,184,242,232,185,213,207,126,253, 91,207, 79,209,243, 55,223,123,251,254,189,251,186,163, 83, 89,119,172, 24, 26, 55,121, 97,
-208, 40,136,170, 40,179, 0, 16, 89, 69, 54,182,152,153,187,140,197,227,153, 69, 10, 68, 17,246,250,101,201, 2,204, 11, 83, 35,
-183,191,246,186,143,124,241,235,206,251,103, 67,144,103,121,239, 91,222,112,219,235, 14,155,188, 75, 38, 55, 89, 97,243,142,201,
-187,100, 45, 34, 1, 33,128, 69,101, 80, 5, 33, 64, 68, 34, 32, 34, 91, 76,207,238, 18, 17, 12, 76, 66, 52,136, 88, 86, 21,128,
- 23, 65,212,219, 14,189,236, 91, 39,207,253,237, 3, 15, 63, 99,161,254,192, 79,223,126,235,205,135,109, 62,108,242,174,205, 58,
- 38, 43,208,228,100, 44, 2,214,181, 42, 72,205, 48, 80, 9, 9, 36,168, 0, 64,158,101,192, 37,171,214, 89,105,138,187, 1, 20,
-167, 71, 59,251, 23,230,238, 59,113, 90, 82,186,255,180,100,136,108,110,139, 33, 0, 4,164,144,111, 67, 40,229, 9,160, 10, 74,
- 11,197,197,172, 34, 16,250,125,160,136,104,178,206,212,196,180,170, 18,128, 33, 36, 66, 66, 48,132,253,202, 59, 96, 86, 52, 10,
-183,221,116,224, 75, 71, 78, 62,112,226,212,211, 93, 50, 50, 25,217, 78, 44, 32, 42, 32, 40,128, 42, 51,160, 72,200, 41, 99, 59,
- 48,100,109, 34,236,235, 20, 15, 0, 77, 86, 76,140,142, 40, 0, 34, 25, 34, 67, 68,225,190, 42,168, 60, 48, 9, 10,190,114,207,
-220,158,173, 19, 31,191,235,155, 79,143, 32, 50,198,102,161, 8, 4, 80,103, 52,162, 45,238, 55, 89, 81,200,254, 82, 18, 7,170,
-138, 68, 54, 31,235, 22,170, 26,150,205, 24, 36, 12, 84,185,202, 51,131,168,194,204,232,208,109, 55, 29,248,216,151,239,239,149,
-213, 69, 8, 66, 34, 34,163, 64,161,250,161,164,164, 34, 26,179, 44, 85,142,237, 83, 17, 17, 78, 7,177, 9, 26, 42,107, 8,100,
-140, 25, 46,114, 85, 13, 50, 30, 95, 16, 13,249,126,229, 60, 51, 17, 90, 52,111,123,229,213, 95,248,246,163,199, 78,157,126,106,
-181, 71, 64, 2, 21, 64, 2, 85, 66, 80,197,192, 22, 4, 81, 21, 8,201, 93,200, 54,153, 65, 88, 52,148,102, 66,205,132, 85, 69,
- 1, 12, 81, 39,207, 68, 21, 66, 61,143, 48, 20,246, 16,161, 95,161,243, 76, 8, 64,116,211,190, 75,246,110,155,249,244,221,247,
- 63,185, 47,139,250,129,161,254, 16, 58,212,177,234, 24,215,176,110, 48,135, 18, 91,232,128,199,254, 62,136,135, 96, 20, 16, 12,
- 81,110,109, 97,109,145,219,161, 34,159, 24,238, 14,119,138,110,145, 15, 21,121,145,153, 64,156, 53,180,125,180,120,243,171,247,
- 63,133,115, 85, 8,109,119,128,230, 25, 84, 9,131, 60, 65,170, 80,164, 66, 79, 40, 23, 71,202,124, 44, 84,168, 2,128, 33,204,
- 66,175,217,154, 78,158,141, 15,119,134,139,162,147,219,110,145,119, 66, 31, 2,192, 16,141,101,230,214,215,236,127,114,111, 31,
-126,114, 48, 97,212,196,161,244, 47,200,184,164,228,159, 85, 20,148, 67, 1,180,174,244, 0, 0, 17,217,134,166,124,164, 91, 12,
- 21,121, 39,203, 58, 69,222,201, 50,107, 12, 32, 18, 81, 70,248, 35,175,184,234, 66, 4,213,235, 83, 23, 84,131,213,139, 69, 27,
- 85, 84, 76, 53, 28,141, 26, 23,126, 95, 52,125, 15, 0, 20, 49,149, 96, 33,250, 56, 99,172,161, 34,179, 97,225, 58,153,237, 20,
-121,183,200,114, 67, 0,106,173,233,100,246, 31, 92,127,229, 5, 56,132,218,148,117, 49,150, 48,106, 3, 8, 88, 87, 65, 34, 4,
- 64, 1, 20, 21,180,117,142,170,130,132,187, 64, 13,229, 58,162,128,234,178,100,114,107,187, 69, 86,228,182,176,166,147,101,157,
- 60, 43,178, 76, 21,172, 49, 29,107,222,112,224,178,205, 50,164,170,168,128,162, 0, 18,126, 47,217,201,186,192, 34, 45, 25, 10,
- 28,148, 26,155,161,173,206, 76,253, 63,166, 50,103,168, 34,102,214, 22, 54,203, 51,155, 89,211,201,179,194,218,142, 53, 8,144,
-103,182,147,219,239,191,102,119, 67, 80, 42,244,132, 31, 14,213,243,184,110,113,117, 98, 37, 41,214, 90, 33, 86,174, 2,123, 2,
-161, 65,201,146,177, 79, 56,143, 84, 56, 4, 34, 50,132,153, 53,185, 53,185,181,214, 80,167,176,121,102, 51, 99, 16,160,176,182,
-155,103, 55,236,221,209, 42,156,139, 52,186, 19,129, 1, 18,127, 50, 21,175, 98,141, 86, 21, 52, 52, 98,234,210,101, 52,231,146,
-234,171,155, 89, 6, 0,160,132, 72, 68,134,200, 26,101, 49,170, 80,100, 89, 93, 74, 43,172,153, 28, 46,118,205, 78, 5,161, 78,
-197,218, 96, 6, 65, 84, 56,150,228, 85, 68, 20,161,109,138, 88,146, 9, 0,101, 85,129, 36,234,181,216,183,244,161, 41,176, 2,
- 0,130, 18, 33, 17, 26, 67,245, 58,102,153, 13,180,102,198,204,207,140, 69, 45, 11, 77,133, 88,103,147,228, 40, 66,119,161,230,
- 7, 8,136,128, 50, 36,240, 71,170, 59, 38,180, 75,162, 40, 22, 6,163,129,213, 1,148, 0,196,224, 41, 82, 70,100,137,172, 49,
-198,144, 53,148,147, 85, 0, 27,251, 2, 53,234, 39,149, 62,211,129,196,130,100, 42,170,198, 26,109,160,181,105,185, 68, 14, 53,
-118,160, 6,211, 12, 6, 67, 33,112, 34, 64,130, 16,171, 80, 8,130,173, 49,198,112,224, 80,114,230, 3,109,151,200, 33, 77, 61,
- 6,168, 91, 31,161, 86,220,212,193,227, 2, 73,124,213,218, 60, 52,210, 84,115,178, 49,180, 65, 9, 9, 17,130, 79, 33,138, 13,
- 36, 27, 76, 72,236, 56, 5, 34, 84, 84, 67, 47, 38,112,194,167,242, 57,215,181,253, 32, 76, 81,238, 84, 3, 70,166,221,220, 72,
- 13,144, 16, 56, 68, 35, 6,181, 57,133, 16,120, 69,219, 64,105, 53, 19, 92, 75,124,210,112, 78, 77, 76, 81,142,112,161, 72, 74,
-116,248,109,106, 6, 30, 18, 73,169,123,103,129, 86,128,218,180, 71, 14, 97,160, 47,152,121,108,140, 86,248, 7, 54,208, 17, 20,
- 93,153, 67,163, 66, 57,182,195,132,155,190, 88,130,131, 57, 17,142,191, 23,144,232,173,198, 69, 98, 82, 34, 47, 26, 46, 24,160,
-189, 17, 51,168, 59, 88,233, 37, 44, 89,146, 27, 8, 87,102, 31,242,158, 36, 46, 9,162,166,177,105, 20,106,236,161,207, 18,241,
-101,181,109,141,138, 6,233, 83,221, 36,106, 45, 58, 20, 90, 14,161,182, 92, 86, 85, 98, 35,161,150,161, 22, 78, 47, 50, 41,244,
- 24,184,238,188, 72,224, 64,221, 78, 24, 92,187,218,247, 54,212,200, 96, 4,147,208,108,218, 16,147,200,179,161,215, 28,237, 97,
-144,232,212, 5, 7, 21, 73, 93, 41,229,176, 82, 81,128, 7,251, 95,160,109,219,170,173, 14, 69, 3,168,139,212, 67,171,125,150,
- 16,139,208, 54,237, 54,234, 84, 92, 35, 81,136, 82, 12,202,161,121,168,226,106, 61,111,186,113,210,178, 63,209,221, 36,106, 0,
- 3, 35,147, 83,132,205,178, 95,103, 49,186, 73,190, 2, 65,177,123, 26,205,157,138,168,250,212, 11,247, 17,142, 40,172, 9,164,
- 87, 31,164,227,216,104,225,122,237, 68,107, 73,111,119,236,218, 43, 42, 77,250,217,102,149, 38, 25,242, 46,217,235,160, 95, 97,
-201, 92,221, 53,107, 4,165,213, 24,108,173, 29,180,126, 58,182, 96,155, 94,103,125, 90, 10, 24,154, 11, 52, 81, 31, 52, 28, 2,
- 17, 85,151, 90,190,131,173, 59,241, 50,176,228,161,245, 12, 44,237,251,134,214, 57, 65,185, 80, 6,160,157,205, 71,210, 58,185,
-181,112, 3,107,102, 31,124,252,140, 10, 43, 72,242, 33,245, 57, 2,122,129, 78, 89, 18, 89,208,193,150, 89, 91,158,234,119,218,
-242,219,234,240, 73,232, 37,138, 16,139,245, 74,130,134, 77,230,129, 35,194,106,113,113,113,105,105,233,165,214, 22,122,113, 31,
-170, 58, 49, 49, 49, 57, 57,105, 1, 96,121,121,249,196,137, 19,223, 99,202,249, 32,207,201,201, 73,250, 30, 35,190,203,186,119,
-223, 99,208,247, 24,244,244, 30, 35, 83,179, 1,184,244, 18,127,188,104, 36,174,157,123,188, 59, 62,125,219, 7,255,143,205,138,
-135,238,252,244,255,251,232, 7, 87, 30, 63,241,247,153, 65,134,104,118,114, 44,183,118,189,172,150,214, 54,158, 78,203,165,183,
-124,246,191,252,212, 43,246,190,250,135,223,250,111,254,228,192, 27,223, 25,222,188,243, 99,191,115,223, 95,253,233,227, 71,190,
- 1, 79,187, 19,241,194,250,178, 67,135, 14, 29, 61,122,244,248,241,227,207,229, 42, 69,150,253,197,127,252,181, 49, 43,247,220,
-243, 55,143,156, 89, 94,235,245, 43,207, 94,228,161,211,203,159,187,247,219, 23,109,229, 33,210,155, 63,240, 95, 47,191,233,205,
- 49, 73, 84, 13, 7,167, 30,184,235, 47, 63,248,190, 39, 30,190,255, 69, 97,205,206,157, 59, 23, 22, 22,158, 31, 6,253,248,107,
-175,127,255,173,111,153,220,249,178,213, 51,199,255,238,254,191, 61,121,118,121,113,109, 99,189, 95, 57,239,189,136, 42, 84,158,
- 31, 91, 94,251,242,183, 79, 44,174,174, 63,217, 69,134, 39,183,220,254, 91,159, 25,157,153,107,135,107,129, 83, 42,252,177, 95,
-250,201, 35, 95,250,228,119,158, 65,102,126,126,126,105,105,233,169, 17, 4, 79,253,152, 30, 27,249,133, 31,123, 93, 70,136,160,
- 67,227,219,102,182,238,200,120, 13,148, 13, 34, 17, 17, 66, 24,114, 31, 31, 42,174,152,219,242,242,221,115,123,183,111,233, 85,
-110,105,189,183,233, 58,174,191,113,231,159,253,118,185,190,178,235,250, 31,168, 89, 3,136,199,191,254,215, 31,122,199,193,197,
- 71,143,124,135, 37,104,124,124,124, 98, 98,226,121, 96,208,207,223,250,131,123,182, 77,231,121, 7, 0, 84,188,205,187, 83,219,
-247,140,229,164,126, 29, 0,195,108,157, 33, 76,209, 41,230,214, 44,108,157,124,217,174,185,107,119,110, 91, 43,221,242,122,175,
-109,108, 78,126,243,206, 47,254,241,175,204, 93,121,195,228, 37,187,153,221,199,126,225, 31,125,225, 15,126,249, 69, 81,177,192,
-160,231,106,164, 23,102,167, 47,191,100, 75,222, 25,177,157, 81, 50, 57,251, 10,122, 75,134,135, 39,102,247, 92, 53, 54,115,242,
-232,189,167,206,156, 93,222,232,247,171,170,244,190,172,194,180,118, 68,238, 18,226,107,175, 90, 56,116,229,124,207,249,111, 28,
- 63,125,255,241,166, 23,251, 63, 62,240,246,209,153,185,213, 51, 39, 95,116, 35,253,156, 36, 8, 17,111,125,205,129,215, 92,181,
-175, 51, 50,147,117, 70,109,103,200,216, 2,201,134, 82,128,201, 58, 99, 83,219,199,135,187, 86,251, 1,138, 97,141,201,172, 13,
- 67,183, 88,215,133, 1, 51,107, 46,153, 26, 61,176,176,253,138, 29,219,156,232,217,149,117, 0,168, 54, 86, 95, 92,214, 60, 15,
- 42,118,235,247,189,252, 61,111,126, 93, 62,178, 37,239, 78,216, 98,200,100, 29,147, 21,148, 21,198,100, 72, 70, 65, 17, 32,239,
-142,142, 79,108, 29,201,128,148,195,160,109,104,232,101,214, 24, 34,131, 4,161,125,137,136,136,150,112,199,244,248,129,133,237,
-215,204,111, 95,238, 87,171,189,254,139,232,235,159,189,138,229,121,254,227,223,127,227, 59,111,249,225,169,137, 73, 52,153, 33,
-139,241,102, 41,180, 87, 66, 37, 8, 67, 11, 64, 56,203,113,106,110,223,240,196,236,242,153,227,167,207, 45,174,246,250,253,202,
- 85,206, 23,153,175, 88,156,243,149, 79,251,200,164, 50, 88,102,240,230,171,118, 41,236, 42, 61,223,249,240,169, 7, 31,121,236,
- 37, 26, 40,110,157, 24,187,110,223,194,238,185,217,253,187, 23,174, 88,152, 31,234,142,216,206,136, 41,134,108,222, 37, 99, 3,
- 6, 6, 99,133, 89,155, 62, 70, 40,152, 33, 41, 50, 33, 10, 34, 49, 20, 67,227,211,219, 47, 27, 25, 59,183,116,238,212,185,149,
-213,181,126, 85, 86,174,242,190,202,172,243,222,249,172, 12, 59, 73, 48, 51, 99,172,247,169,118, 51,115,227,190, 75,111,220,119,
-233,122,197,119, 63,252,232,131, 39, 79,127,231, 25,212, 8,241,232, 80,119,126,118,230, 71,111,188,254,240,254,171,135,134,134,
-208,228,136,198,100, 5,145, 37,155,135,167,177, 25, 25,139, 20, 32, 25,148,188,113,171, 4, 46,130,200,194,169,227,174,138,164,
- 0, 22, 21, 76, 6,197,200,204, 76, 49, 60, 50,122,102,121,233,236,242,250,198, 70,233, 74,231,194,158, 54,133,183, 97,251,155,
-202,123,199,204, 28,219, 62,161, 84, 56, 82,152, 27,175,216,121,227,229, 59,215,157,255,220,189, 71,158, 88, 94,211,239,136,250,
- 89, 81,248,201,215,189,246,245,215, 94,217, 29, 26, 38, 50,136, 9, 52,133, 81,107, 2,232, 6,201,164, 3, 2, 68, 0, 9,173,
-105,136,248,135,129, 94, 97,236,100,214, 3,131, 74, 0, 18, 58,116,100, 12, 64,167, 51,186,197, 22,195, 35,107,231, 86,214, 86,
-194,236,103,218,247, 39,168,155,141, 59,157, 4,129,210,212,211, 82, 85,132,225,204,190,241,224,101, 34,184,230,220,167,191,254,
-224,210,218,250, 11, 44, 65,170,227,227,211,147, 51,115,169, 63,139, 72,209,104, 2, 80, 48, 43, 1,251, 3,128,161,107, 14, 1,
-132,131, 20,206,110, 23, 42, 83,139,163,105,225,135,254, 52, 0, 0,214,163,248, 64,104,173,237,224,200,116,150, 15, 13,119,150,
- 87, 55, 54,214,251, 85,233, 92, 45, 65, 97,227,150,202,115,229,216, 51, 59,207,126, 96, 12, 31,137,116, 52,183,111,185,225, 74,
- 5,125, 98,165,247, 55,223, 58,186,180,182,241, 66,217, 32,178,153, 45,186,173, 62,127,148, 2,172, 39,134, 98,208, 47, 32, 40,
-168, 77,103,173,221,101,131, 6,122, 21,186,252,113, 50,173, 6,207, 72,221, 40, 79, 46,158,172,201, 58,157, 33,204,178,124,184,
-179,177,222,175, 54,202,170,116,222,179,117,158, 75,199,206,251, 50,227, 36, 86, 97, 15, 28, 78,173,239,128, 44, 1, 80,216, 58,
- 54,244, 35, 55, 92, 41,162, 71, 78, 47,125,245,200,137,231,130,226,124, 18, 6, 25,107,108,193, 42,117, 63, 47,128, 90,106, 96,
- 11,168, 6,173, 18, 12, 51,148,218,150,153,150, 94, 53, 77,135,216,249,175,155,139,145, 71, 13,250,161,169, 72, 25,163, 90, 20,
-136,134, 76, 39,207, 54, 74,215,175,170,202,113,158,177, 99,219,241, 92, 57,174,156,175, 77,184,247, 28,182, 13, 10,173, 54,150,
- 48,216, 9,134,112,223,236,228,222,217,137,202,241, 61, 39, 6,194,206,231,202, 32, 68, 34,155, 65,108,221, 70, 49,160,180, 27,
- 73,224, 21, 32, 40, 8,134,110, 50, 40,198, 62,160, 34, 66,221,214,106,183,150,218,179, 76, 0, 65,124,106, 68, 95,187,243, 30,
-182,173, 64, 68,178, 54, 11, 88,158,194,154,210,185,210,121,199,226, 44,119, 50,169,124,220, 51,169,244,222, 57,118, 97, 23, 38,
-207, 94, 24, 17,155,171, 40,168, 98,145,227,245,187,183, 31, 92,216,182,212,171,238, 60,242,232, 99,231,150,158, 59,131, 16,137,
- 2, 80,146, 0, 20, 4,195,125,163, 82, 61,161,170, 10, 74, 10, 2,160,152, 76, 38, 70, 36, 97, 51,240, 5,173,102, 84,187,177,
-213,192,176,164,198,213,112,195,172, 8,150, 66, 32, 50,160,121,102, 67,216, 93,121,118,236,157, 23,107, 77,193,198,101,153, 99,
- 95, 58, 95, 86,190,242,236,172,247,108,146,222, 33,167,145,242,176,158,100,116,106,184,248,193,107,118, 9,192, 3,143, 47,125,
-253,193, 99,237,141, 11,159,105, 28,132, 41,232, 71, 5, 69,192,104, 42,194,150,130, 0,113,128,156, 34, 80, 41, 58,239,228,216,
- 17, 84,133, 35,198, 81, 89,235,182,189, 52, 35,223, 53, 35, 82,211,149, 19,246, 40, 54,116, 65, 2, 60, 50, 0,195,212, 16,170,
- 53,136,104, 8, 13,137,103,102, 67,214, 72, 46,166,200,178, 42,243,165, 15,123,222,121,207,236,188, 97,149,196, 41,101,145,192,
- 38, 2, 36,163,170,112,213,236,196,229, 91,198,214,156,124,246,190,135, 87,215,214,158, 57,131, 16, 16, 80,234,144, 47,140, 17,
-215, 27, 7, 5,143,166, 26,118,231, 1, 0, 1, 12, 55,131, 80, 59, 95,168,251,168,208,112, 65, 48,182,119,185, 6,106, 69,172,
-172, 8,212,216,164,122,156,183, 65, 64, 40, 0, 18,134,189, 9, 77, 24, 99,102, 33, 34, 17, 17, 75, 98, 13,230,108, 59,153,143,
- 91, 3,214, 91,159,137,225,120, 16,182,161,137,234, 27,176, 63,227, 68,111, 60,176,167, 20,253,202,145,147,143, 60,126,230, 89,
- 68,210,105,249,106,200,107,148,174,184,127, 27, 34, 6, 4, 32,160,168,214,160,131, 6, 15, 80, 71,210, 45,232,210, 32,119,154,
-253,144, 26,172, 68,152, 11,143,211,225,241,103,177,193,244, 37,112,127, 88, 60, 9,225, 6,161, 33, 53, 68,214,218,220, 70, 30,
- 85, 33, 89,177,196,172,181, 33, 15, 96,182,152,234,169, 34,162, 33,253,190,189,115,229,194,182,111,156, 56,125,228,212, 19, 23,
- 45,236, 14,164, 26, 24,108, 93,194, 58, 97,130,253,212,228, 70,164,138, 0,212,104,169, 22,158,165,134,145, 0, 68,148, 12, 54,
-188,171,221,153, 70,241,105,176,216, 65,227,218, 60,110,163,193, 52,206,194, 19, 24, 32, 16, 65, 99, 80,132, 65, 16, 13, 49, 26,
- 68, 99, 40,243,156,123, 19,182,192,243,196,150,136, 85,211, 30,125,234,153,189,136, 2, 16, 2,106, 8,223,240,224,252,236,213,
-151, 76, 31, 59,187,122,207,195,143, 62, 69, 80,110,107, 15, 13, 45, 84, 88, 91,112, 32, 56,120, 80,132,136,236, 68,108,112,185,
- 3,207, 22,244, 45, 28,203, 0, 86, 66,161,129, 8,213,152,161, 6,242, 5,136, 42, 18,194, 81,109,144, 67, 24,192, 86,225,246,
- 20, 81, 0,194, 86, 98,168,138, 72,200, 65,202, 40,192,249, 44,147,115,228,140, 48,179, 33,202, 36, 88,113, 10,251,180, 86,158,
- 5, 52,104, 92,136,242,118,207,140, 93, 58, 49,124,244,220,218,125, 71, 31,125, 10, 9,170,189,187,164,200, 38, 80,154, 16, 90,
-160,160, 34,160, 13, 74,184,193, 34,214,184, 68,109, 97, 82, 19, 52,119, 0, 45,219, 48,171, 57, 51,200, 81, 75, 98,180,165,176,
- 33, 28,132,182,190,161, 34,164,242,136,106,216,246, 68, 65, 12, 80,192,176, 7,200,168,241,236, 13, 25,102,207, 72,136,214,144,
-103, 49, 68,198, 24,239,185,242,172,170,134,144,130,238, 34,238,158, 25,221, 62,182,247,158,227,167, 79, 47,173, 60,137,138,105,
-216, 45, 3,106, 48, 45, 38,220, 72, 61,182,141, 13,168, 45,222,191, 36, 70,212,160, 93,109, 1,183,130, 42, 66, 27, 99,213,240,
- 78, 90, 81, 82, 27, 17, 26,192,228, 56,176,155, 71, 99, 35,195,230,109,218,148,111, 65, 65,129,130, 52, 32, 66,144,172,112,200,
- 1,148, 41,158,132, 89, 8,209, 24, 50,204,129,137, 33,125, 97, 84, 3,212,177,232, 16, 17,240,224,194,214,141,114,234, 43, 71,
- 78,246,170,106,128, 65, 53,250, 70, 2, 52, 27, 84, 37, 72,181, 64, 90,202,232,235,181,133,165, 14,113,163,138,130,160, 38,102,
-165, 60, 35,150,132,226,236, 64,120,159,161, 5, 44,106, 28, 89,130,202, 2, 70, 9, 78, 40,198, 56,234, 19,205,227,160, 33,104,
-236,102,218, 88, 46,101,143,168, 68, 38, 70,115,128, 28, 49,153, 36, 72, 34, 20,148, 17,125,152,227,112,222,123, 20, 32, 52, 74,
-121, 22, 37,243,213,251, 46,121, 98,173,255,141, 99,167,194, 42,215, 42, 22,240,190, 42,160, 40,141, 99,138,137,133, 10, 4,244,
-123, 11, 99, 94, 79,243,107,130, 94,182,118, 6,104,237,222, 87, 3,153, 85, 65,227,102, 29,113,203,142, 40,142, 81, 91,235,109,
-244, 68, 18,147, 90, 74, 9,208, 88, 51, 29,200, 27, 49, 33, 66, 21,163, 69, 15,222,138, 80, 65,169,117, 86, 52,183,138, 96, 17,
- 57,110,132,226,189,103, 81, 66, 21,178, 4, 96,128,114,156, 29,165,177, 43,118,174, 98, 23,195,110,209, 16, 49,106,130,245,246,
- 5, 80, 35, 68,219, 73, 67, 13, 5,100,104, 5,202,173,251,151, 54,143, 6,249,213, 98, 95, 68, 54,135,188, 12, 20, 33,102,102,
-117,200,144, 28,105, 11,121, 13, 45,156, 94, 29, 89,192, 32,108,125, 64,172,162,162, 97,180,237,138, 4, 38,212, 21, 8, 90,187,
-100, 68,102,121, 4, 96, 85, 36, 69, 2,178, 10, 29, 80, 91, 20, 50,168, 98,162, 45,193,105,204,106, 26, 12, 80, 5, 72,254, 56,
- 97,189,181, 45, 44, 17,197, 27,211,119,142,188,171,177,225, 49, 83,101, 80, 78,199,117,174, 87, 59, 54,136,147, 89,141,183,219,
-132, 15, 31,200,148, 55, 97, 64,181,150, 38, 12,153,126,212,187, 16,106,106, 12, 24, 48,132, 14, 68, 72, 66, 68, 96, 84,213,132,
-178, 30, 54,144, 14, 99,132, 72,146,155,111, 76, 3,194, 0,144, 24, 90,137, 21,180, 3,229,246, 16, 69, 0,186,139,192, 32, 44,
- 29,234,116,180, 78,226,211, 86, 30, 90, 15,206, 68, 70,196,200, 51, 77,137,161,182,210,230,182,215,108,113,173, 29,150,104, 91,
-146, 90, 5, 96,104, 11, 25, 98,170,206, 32, 80,208, 67, 66, 2, 36, 37, 82, 37, 85,131,170,132, 22, 12, 0, 42, 72, 68,147, 67,
-218,194,172, 53,217,211, 64,139,161, 13,234,173, 13,144,164,215,100,110,195, 6, 40,205,104,135, 72, 51,229,144,152, 37, 3,239,
- 52,170, 91,163,170, 5,106, 12,124, 27,127,169, 3,210, 4, 13,172, 57, 5, 17,208,150,178,198, 38,212,115, 18,208, 66, 98,107,
-189,177, 81,204,102, 4,227,172, 26, 33, 9, 1,106,152, 19,131, 24, 42, 37, 21,107,240,177,168, 42, 49,217, 75,140, 80, 21, 16,
- 28,136, 95,194, 71,181,185,141,154,122, 0,245,192, 0, 0, 2,251, 73, 68, 65, 84, 5, 16,124, 86,154,106,104,164, 70, 65,106,
-163,211,108,224, 35,218,216, 23, 77,116,132, 76, 99, 0, 43, 15,144,120, 8,137, 5, 3, 27,192, 36,178, 34,103,164, 29,114, 13,
-236, 25, 3, 77, 20,219, 12, 76,164,153, 57, 4, 2, 32, 68,129,102, 92, 17, 90, 42,198, 17,171, 27, 36,157,107,179, 32,245,254,
-180,237, 0, 79,131, 1,106, 56,146,166, 44, 6,236, 78, 45, 47, 41, 29,131, 1,128,238, 32, 26,184,149,200, 73,226,194, 38, 21,
- 27, 28, 31,104,237,255,163, 50,144, 17,214, 46,175,197,153, 90, 39,234,218,239,133, 26,161, 81, 19,235, 32,171,150, 32,137,192,
-246, 22,217, 18,135,200,210,178,166,173,127, 82,160,168,109,121, 73,158,123,147,102, 13, 84, 54, 0, 67, 65,168, 61, 30, 4, 97,
-158, 42, 69,220,225,134, 68, 54,107,123,237,182,100,147,224,180, 96,211, 82,103,128,105,216, 32, 70,107,205, 80, 11,198,203, 98,
-107,183, 90,104,219,252,243,222, 74, 18, 36,202, 94, 64, 99,241,176, 38, 48,213, 52, 82,249,189,237,179, 82,245, 11, 6,103,206,
-130, 66,105,152,190,229, 88,247, 8, 69,146, 24,240, 64, 93,140,148,148, 20,183, 66,161,118,112, 93,255, 25,203,152, 77, 28, 52,
- 40, 77, 82,139, 56, 12,204, 26,180, 49,234,210,250,146, 8, 12, 0,210,117,160,112,188,137, 73,141,155, 15, 64,250, 68,136, 12,
- 0,213,245, 60,220,187, 4,171,172,210,216,154,182,243,226,166, 14,208,214,142,129,131,122,234, 76,106,163, 42, 73, 69,164,205,
-136, 36, 26, 33,225,169,199, 23, 68, 55,113,109, 96,135, 55,105,205,207, 52, 3, 91,218, 6,230, 67, 43,205, 1,109,217,244,214,
-244, 98,154, 60, 12,163,232,173,219,105,124,121, 12,145, 55, 43,218,249, 82,195,233, 52,142, 99,202, 0,231,141, 10,212,142, 6,
-154, 65,169, 1, 61,130,129,113,137, 20, 88, 55,100, 13, 76,236,192,249, 3, 26,173, 73,141,129, 96,165, 53,240, 10,178,105, 36,
-170,101,242,181, 53,208, 9,181, 13,130, 48,205, 44,173,185,221, 84,105,199,104, 41, 90,227, 50,173,202, 97, 26,165, 23, 17, 65,
-168,119, 56,211, 52,130, 27, 92, 85,168,154,132,141, 11,176,214,185,116,130,138,132,184, 7, 68, 2,223, 32, 49,164,169,198,139,
- 14, 88, 37, 25,152,152, 27, 16,156,214, 0, 77, 51, 5,217,244,124, 7, 69,104,224,139, 45,185,106, 13,152,130, 13,219,186, 11,
-187,129, 32, 16, 6, 38, 63, 6,203,239, 45, 6,213, 60, 2,229, 88,191,111, 12,123,187, 73, 22,228, 28,218,187,141, 55, 21,178,
- 86,236, 9,237, 48,172, 30, 80,106, 2,107,105, 21,151,218,190, 44, 14,210, 52, 99,135,131, 31,165, 17,191, 40,113, 48, 48,130,
- 36, 58,216,138,105,139,116,203,139, 57, 9,229,212,232,158, 90, 49,116,171, 24,168, 3, 41,232,192,160, 83,109, 59, 0, 46,176,
- 69, 93,138,114, 96, 64,249, 47,156, 73,108,118, 79, 77, 87, 68,234, 90,193,192,144, 90,173, 29, 45,181,109, 20,173, 45, 54,155,
- 38,181, 54,205,255, 36,115, 62,176,120, 54, 56, 24, 16, 7, 10, 77,107,172, 73,217, 67, 18,159,118, 57,213,122, 63, 78, 73,236,
-104, 68,180,101,224, 90, 26,212, 74,169, 66,181, 22, 54,111,251,215,200,116, 99,171, 90,150, 40,197,102, 3, 5,217, 77,243, 80,
-146,196, 73,146, 14, 15, 76,170, 53,179,108, 23, 26, 98,211,218, 79, 65,237,196,235,202, 33, 30, 58,116, 72,117,176, 38,251, 93,
- 53, 22,133,207,215, 55, 46,244, 54,170,254,127,136, 44, 69, 54,247,214,151,234, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/twist.png.c b/source/blender/editors/datafiles/twist.png.c
deleted file mode 100644
index 6075173c37b..00000000000
--- a/source/blender/editors/datafiles/twist.png.c
+++ /dev/null
@@ -1,350 +0,0 @@
-/** \file blender/editors/datafiles/twist.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <twist_png> */
-
-int datatoc_twist_png_size= 10889;
-char datatoc_twist_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0,
- 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65,
- 0, 0,177,143, 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72,
- 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 20, 5, 32, 44,179,189,
- 3,155, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,125,121,180,165, 87, 85,231,222,251,156,239,187,111,172,247,106, 78, 42,149,
- 87,153, 67, 37,129, 4, 8, 24, 66,165, 80, 32,129, 24, 20,193,197,160, 66, 3, 45,189, 80,108, 17,167,232,106,249,195,181,218,
- 70,141,141,141,237,128, 40, 14,140,203,169, 69, 68,198, 32, 67, 24,132, 5,100, 36,132,140, 85,169, 34, 53,215,155,238,244,125,
-231,236,161,255, 56,231,251,238,125,149, 74, 72, 65, 80,232,213, 55, 85,245,238,244,190,123,238, 62,123,252,237,223, 62,193,221,
-187,119,195,183,186,121, 0,184,233,166,155,218,199,215,127,236, 56, 32, 2,192, 13,215,108, 24,189,107,252, 74,215,127,124,241,
-228,151, 74,111,122,222, 83,118,110,223,188,190,125,242, 93,111,252,201,183,191,254,165, 91,214,175, 75, 15,113,215,174, 93,127,
-240, 95, 94, 37,117,191,119,108, 79,111,208, 95,238, 87, 29,239, 88,100, 24,184, 95,133, 55,189,247, 67,221, 97, 77, 0, 80, 78,
-204,148, 83,243,179, 91,206, 23,209,167,237,126,241,161,165,174,136,153, 41,162,189,233, 37,207, 5, 0, 2, 0, 36, 50,101, 87,
- 20,151,236,122,201,234,225, 7,186,131,225,173,251,151, 68, 13,129,136, 40,127,187,186,183, 24,135,221,114,106, 93, 28,246, 14,
-236,187,235,200,106,119,121, 40,123, 22, 7, 95,255,198,109,155,214,205,228, 55,113,221, 23,174,235,222,162,137,172,244, 6,203,
-189,225,209,229, 85,166,169, 39,236,188, 56, 46, 31,205, 31,167, 28, 52, 12, 66,255,120,247,200, 61, 71, 87,251, 83,101, 49,209,
- 41, 99,181,242,181,175,221, 97, 96, 79, 63,247, 12, 15,128,113,184, 82, 87,221, 97, 29,122,195,122,178,240,115,211,147,206,209,
-198,217,233,153,201, 78,136, 92, 56, 34, 64, 24, 14, 86,251, 85,232, 87,161, 10, 17, 9, 39, 59,229, 68, 89, 76,117,202, 77,235,
-102,147,244,241,177,236, 29,142, 63,120,221,187,111,157,219,186, 32,177, 54,131,223,127,193,233, 39,121,251,171,223,246, 25, 87,
-116, 30,241, 74,151,159,191,224,157,255,226, 55, 30, 72, 79, 61,253,130,179, 94,247,188, 43,234,200,175,255,211,127,200,111,186,
-249, 93,127,161, 92,215,189,227,221,197,135,186,195,154,133, 17, 41, 48,247,171, 48,172,195, 47,253,229, 7, 0,128,202,201,217,
-114,114,174, 51,179,105,114,122,253,101,207,122,249,114,191,122,224,232,138,136,130,153,170,190,249, 21,215, 2, 0,145, 47, 76,
-217, 57,183,241,172, 75, 1, 96,165, 63, 24, 12,235,187,143, 13, 13,192, 59,247,153,111,236, 3, 0,207,195,110,221, 95, 52, 21,
- 87, 78,134,222,210,234,160, 58,188,220,173,112,106,190,152,249,226, 93, 15,124,236, 43, 95, 7, 0, 10,195, 85, 13, 21,215,253,
-225,242,161,254,226,190,238,176, 90,234,246,143, 28,222,255,169,187,143,171,217, 51, 47, 92, 0, 0,175,177, 18,174, 56, 12, 98,
-181,178,218, 93, 45,156,155,158, 40,251,117, 56,122,104, 79,167, 44,166, 59, 37, 0,248, 88,247,194,112,169,174, 67,175,170,187,
-131,106,253,204,180,153, 77,150,229,150,185,217,135,142, 47,155,217, 83,206, 58,205, 87,221,163, 85,136,195, 16, 7,117,136, 34,
-147,157,162,172, 61, 34,122,231,102, 38, 58,221, 65,117,162,181,124, 39, 55,122,164, 23,174,255,248,226,245, 31, 59,254,157, 94,
-232,103,223,123, 7, 0,220,240,188,141, 15,127,233,202, 39, 62,129, 8, 79,162, 39,187,118,237,250,131,215,190, 82,133,149,171,
- 88,245,194, 96, 41,132,170, 14, 49,176, 84, 33, 62,120,100,233,112,119,248,204, 39, 44,152,154,168,138, 72, 96,101, 85,102,185,
-225,253,159,220,127,108,185,189,144, 91, 88, 88,248,145,103, 92, 73,190,116,197, 68,209,153,246,229, 52,152,152, 4, 0,115,228,
- 46,126,202,179, 58, 97,177, 63, 12, 19,133, 51, 0, 3, 80, 51, 51,101,181,167,157,127,230,115,159,116,254,141,183,221, 51,242,
- 95, 69,103,202, 84, 36, 6, 53, 43, 38,102, 59,179,155,182, 78,173, 67, 68,242,197,112,229,232,202, 96, 24, 89,142,118,135,203,
-149,238, 60,109, 86,212,212,128, 16, 16,192, 16,222,252,138,107, 1,240,191,189,231,195, 30, 0, 76,133,195,128,195, 80, 57, 40,
-135, 98, 98, 86,124,233, 59,147, 26,227,225,251,190,180,216,237, 71,150, 42, 90,173,238,115,247,199, 43,206, 90,151, 44,167, 91,
-203,111,190,239, 67,107, 60,106,221, 91,148, 56, 84, 14, 34, 76,136, 18,171,186,191, 40,113, 82, 99,181, 58,232,247, 6,245,234,
- 96,216,171, 66, 96, 22, 55,245,145, 59,135,195, 24,143, 31,122,112, 97,243,250,171,159,116,222,151,238, 63,176,218, 31,228, 11,
- 73, 72, 87, 9, 38, 49, 42,199,186, 79,228,156,239,212,189,227,251,143, 44,177,170,154,137,234,160, 14,117, 28,136, 40,144, 91,
-191,113, 83, 21,235,201,178,120,234, 89, 91,191,113,104,241,224,241, 21, 15,128, 18, 43,137, 67,137,149, 72, 48, 14,162, 22, 69,
- 2,115,119, 80,137,234,244, 68, 9, 0,133,247, 83,157, 50, 68,142, 34,221, 97,125,232,200,145,137,210,175,155,154, 32,196,179,
- 55,204, 30, 93,238,122, 0, 8,131, 69, 9,195, 40,204,162,129,153, 89,163, 72,250,157,137, 78,177, 97,118,186,240,190, 14, 49,
- 78,148,162,166,170,155, 69,183,204,205, 46,118,123, 81,205,140, 9,241,210, 51,183,122, 64, 24,244, 87, 69, 53,176,176, 40,139,
- 68, 17, 22, 21, 17, 86, 85, 53, 0, 32, 68, 5, 48, 3, 4, 75, 94,145, 28,121,239, 98, 29,213,204, 0, 0, 31,155,159,252,247,
-187, 45, 44, 44,248, 71,121,185, 13,157,117,127,181, 51,189, 14, 0,126,239,121,155,204,244, 20, 62,161,156,154,189,254,227,139,
-175,123,215, 45, 15,127,169,232, 76,158,116, 69, 39,183,254, 55,190,127, 47, 0,188,253, 63, 61,249,225, 47,197,122,120, 42,254,
- 8,241,189,191,120,237,201,158,198,183,253,220,203, 30, 45,112,157,181,117,227,121,167,111, 22,149, 3,139,171,251,143, 45, 15,
-170,250,132,247,253,229, 27,126, 2, 1, 88, 84, 84,213,172,141, 68,237, 87,195, 91,222,249, 14,145,168, 18, 37, 12,195,112, 37,
- 12,151, 67,228,192, 92, 71, 94,234, 13, 63,113,251,125, 47,123,230,165,166, 42,102, 44, 18, 69, 89, 52,178,152,217,207,255,249,
- 63,174,145, 17, 58, 71,190,112, 69,233, 39,166,203,169,185,206,228, 92,225, 93,233,125,167, 40,214,207, 76, 61,255,210,243, 52,
-107, 28, 32, 34, 17, 34, 34, 32,136,217, 91,254,243, 11,215,200,200,249,142, 43, 58,174,152,244,229, 84, 57,177,206, 79,204, 58,
-114, 6, 0, 96, 14,241, 89, 63,252,154,238,160,234,214,172, 0, 6,205, 95, 3, 51, 83,149,223,126,229,117, 99, 23, 42, 74,114,
- 37,249, 2,169, 64,231,203,201,185,153,205,103,139, 8, 21, 83,151,238,126,233,226,209,253,129,121,101, 80,245,130,153, 90, 90,
- 29,128, 1,152, 2,154,217,203,159,245,212,236,143,200, 21, 0,160, 98, 6, 12,128,190, 51, 53, 57,183,249, 9,167, 95,136,206,
-155,196,227,135,247,214,145,131,216,254,227, 43,103,111,156, 86, 53, 53, 0, 68, 68,116, 0,138,240,196, 51,183,254, 31,239, 0,
-128,144,200, 0, 76,197,140, 17, 77, 57,132,170,167,202, 68,164,194,135,142, 29,169, 66, 12, 33,198,200, 95,121,112, 89,213,192,
- 12, 1, 8,145, 16,189,163,223,120,207,135, 35, 11, 0,120, 83, 81, 14, 28,134, 18, 43,225,128,228, 38, 59, 83, 96,170, 28,227,
-176,219,171, 98,191, 10, 81,164, 98, 16,245, 31,191,235,240,115,158,176, 25, 17, 8,233,157, 55,125,245,182,251,247,141, 92,173,
-132,138,235,228,176,107, 21,246,157, 41,225,136,177, 6,131,186,119,124,249,248,145,192,220,175,234, 65, 20,134,210,251,114,223,
- 16,255,229,147, 55,129,217, 25, 27,231,111, 71,106, 77,143, 56, 12, 36, 86,198, 65,149, 65, 69, 99,144, 56,224,170,207,117, 63,
- 14, 22,135,117,232,215,161, 59,172,251,131, 97,175,183, 90, 85,213,157,123, 14,171,200,121,167,111, 46, 28, 93,121,193,246,209,
-138,148,131, 10,155,177,169,152,178, 69, 85,101, 95,178,196,138,195, 32,138,196, 40,145,165,138, 92,135,104,117,192,114,118,225,
-156, 11,187, 43,135,102, 58, 19, 19,101, 49, 63, 51,185,220, 27, 2,128, 55, 73,151, 16, 83, 81, 97, 48, 65,137,166, 17,205,122,
-189, 30, 33, 18,161,115, 72, 8,162,202,113, 40,195, 1,145,143, 28,166, 59,157,194,209, 69,219, 54,125,225,158,253, 0,224, 85,
- 25,148, 85,216, 56, 40, 7, 48, 53,168,176,182, 16,234,227,221,190,119,228, 29, 77, 20, 5,139,138, 90, 21, 98,168,194,241,213,
-229,201, 78, 89,133,232,136,188,163,185,153,169,180,162, 40, 18,133,107,141,181, 72,173,162,162, 18, 68,135, 85, 93,133, 48, 81,
-150,117,100, 4, 64, 0,239,220, 84,167,156,158,232,120, 71,171,131, 97, 20, 1, 4, 4, 60,111,243,220, 81, 1, 47, 28,148, 43,
- 13, 21,115,149,178,131,192, 82, 71, 14,204,106, 48, 61, 81, 70,102, 71, 68, 68,222, 59, 81, 21,177, 78,225, 74,239, 16,193,204,
- 0,129, 16, 84,213, 75, 28,114,221,231, 24,218,248, 17,152, 89, 68, 68,205,172,112,110,162, 44,213, 12,192,136, 80, 69,213,155,
- 35, 20,209,126, 29, 69, 36, 69,144,237, 27,230, 40, 14, 87, 98,168, 99,186, 10, 75,136, 28, 89, 88, 68, 52, 71, 26, 71, 72,128,
- 0, 72,136, 68, 14,147, 78,123, 71, 96, 6, 0,102,136,104, 96, 62, 68,102,213, 28,209, 88,162,136,136,138,154,168,169,153, 53,
-246,174,150, 30,130, 2,136, 25,152, 1,162, 89, 54,226,199, 51,135,124, 92,110,103,158,121,166,255,182,127,121, 98,102,254, 57,
- 63,247, 59, 23, 63,231,165,249,177,229, 96, 14, 0, 31,254,159,255,245,238,207,188,255,145,194,205,163, 85, 62,136,254,219, 88,
-199, 27,254,241,129,180, 95,128,248,161, 27,126,246,206, 79,252,237, 73,223,185,109,231,229, 79,122,254, 43, 79,187,240,201,127,
-253, 51,167,176, 9,167,182,160, 54, 21,224, 80,255,254,143,108,123,244, 55, 31,184,235, 43, 7,238,250,202,227, 86, 62,156,112,
-115, 69,231,148, 86,243,109,223, 30,171,132, 36,214, 55, 92,179,129,156,191,234,213,191,241,197,191,125,235,183,124,255,107,175,
-190,226,178,115,206, 40,157,227,180,185,102,191,252,151, 31, 24,134,248,173,213,232,170,171,174,122,209,165, 23,236,122,226, 69,
- 0, 36,202,104, 38,202, 26, 43,174, 7, 49, 12,146, 39, 97,205, 25,106, 96, 25,212,252,145,155,191,254,137, 91,239,169, 98, 76,
- 73,106,202, 9, 94,120,229,101, 47,127,230,165,102,166,102,170,154,204, 91,212, 84, 76,147,181,171,153,233,111,255,195,191, 30,
- 88, 92,121,148,228, 17,119,237,218,245, 71,175,123,141,170, 54, 62, 66, 77, 85, 37, 42, 71,149, 32,177,146, 88,113,172, 68, 68,
- 84, 53, 85, 89, 77,110, 83,135, 56,168,234,237,155,215,135, 40,152,115,103,131,102, 53,105, 17,249,183,204, 68,213, 76, 69, 1,
- 1,126,247,253,159, 62,112,124,233, 17,179, 89,114, 5,160, 26, 24, 90,186, 41,185,194, 10, 85, 9,228, 74, 34,135, 0, 8, 67,
- 68, 20, 16, 53, 36, 0, 66,244, 68,212, 41,183,156,113,254,210,161,251,213, 0,137, 58,142, 16,209, 90, 11, 6, 0, 52,132, 84,
-137,165, 36, 8,205, 84, 84,127,233, 71,119,153,193,175,254,245, 7, 79,174, 67,174,232,160,106,118, 38,166,166, 9, 92, 16,114,
- 5, 82, 65,190,164, 98, 2,250, 75, 92,117,197,204, 16, 8,177, 67,254,156,167,188,160, 40,138,225,176,123,104,255,221,169,198,
- 88, 20,155,158,154,158,242,150, 54, 46,249, 97,131, 84,112,142,254, 36,191,172,170,191,253,202,235,204,236,191,189,231,195, 39,
- 46,136,124,137, 89,204,134,166, 10, 98,170,136,106, 0,228, 10,114, 69, 49, 57, 59, 53,183,205,149, 29,242,101, 49, 53,139, 42,
- 96,160, 42,113,216, 93, 58,188,183,138,162,166,162,198, 10, 71, 87,186, 85,144,133,205,235, 28,152,229,239,151,238,101,169, 33,
- 32, 34, 90,242,162,166, 6,240,223, 95,241,195,127,247,217, 91,239,120,240,192,200,236,137, 28, 16, 1, 18, 32,166,228, 18, 76,
-192,140, 8,201,121,231, 75, 87,116,124, 89, 2, 24, 18,130, 48,162, 67,114, 96, 18,134,221,195,135,246,214, 33,132,200,237, 31,
- 53,251,198,129,165,155,247, 45,169,168,136,169,230, 37,101,168, 10,145,112,116, 35, 4, 7,118,206,182,205,107,205, 62,127, 23,
- 49,137,170,172, 34,160,162, 41,191, 49, 1, 3,242, 5,148, 83,190, 51, 73,232,154,175,173, 28,170,238,145,251, 22,123,195, 97,
-136,170, 38,166,106,192,138, 81, 33, 42,138,194,231, 31, 88,188,100,251,252,180,135,166, 30,180, 36, 34, 34, 34,176,251,142,245,
-255,240,159,110, 60,185, 14,169, 4,225,168, 28, 84,162, 74, 52, 97, 51, 81, 17, 48, 5, 4,242, 29, 34,143,136, 42, 12, 9, 41,
- 32, 81,225,186,191,212,237, 46,117,187,221, 42,178,168, 70, 22, 81,141,172,108,164, 72,108,164,230,190,186,119,145, 85,158,125,
-193, 38, 67, 64,160,229,126,253,190, 79,126,177, 44,220,250,233,201, 91, 30, 60,252,136,142,145,195, 64, 56, 10,199, 36, 33, 83,
- 81, 19, 84, 83, 83, 36,135, 34,130, 1,208, 80,188, 57, 54,141,136, 78,226, 48,244,142,213,117,236,174,174,138,106, 21, 98, 29,
- 57,138, 84, 33,154, 25,155, 83,116,224, 74, 67, 39,134, 31,186,227,208,189, 15,220, 13, 42,165,119,219, 55,207, 79,150, 69,100,
-185,108,199,214,229, 65,125,203,158, 3, 39, 89,144,196, 90, 36,170,176, 42,131,176,170, 2,164, 82,202, 82, 13, 96,202, 42, 30,
-145,156, 47,136, 75, 64,144,186,207,117, 95,193, 42,230, 16,185,142, 92,199, 88,231,100, 74,197, 84,196,144, 10,117, 37,184, 2,
-201,159,115,246,133,251,246,222,181,113,195,124,202, 7, 28, 81,167,240,115,147,240,180,115,182,125,249,129, 3, 39,217, 50, 19,
- 49, 97,200,233,148,162,170,153,128,170,162,161, 68, 69, 66, 34, 4, 82,239,145, 60,168, 72,232,199,186,119,120,185,155,172, 88,
-155, 50, 41,161, 38, 81, 36,178,152, 69,128, 1, 32,130,235,144,239,108, 59,227,172, 45,219, 78,123,232,158, 59, 61, 57,239,201,
- 59, 87, 22,102, 86, 60,237,236,211,191,188,231,224,154, 5,153, 36,123, 16, 83, 1,149,244,216, 84,193, 68, 85, 0,172,181, 16,
-138, 14, 0,148,235,186,234, 47,247,135, 85,136,228,136, 4,189, 39, 3,151,180, 55,187, 64,181,168, 42,170,194, 26,171,202, 12,
- 68,101,121,241,176, 48, 59,162, 9,243, 68,228,137,196,185,137,178,184,252,156,109, 95,105,228,228, 1, 80,149, 77, 89, 69, 76,
-163,169,168,178, 73,178, 47, 85,149, 81,218,105, 32,102,106, 26, 34, 15,235,208,171, 2, 0,116,188, 79, 78, 16, 1, 28,145,115,
- 82, 56,199,226, 99,169, 41, 14,138, 72, 21,165,138,177, 10,177,215, 93,157,158,156,232, 13,107, 3, 40, 28, 37,199, 68,142, 10,
-165,203, 22,182,222,186,239,112,179,101, 28,146, 2,153,178,114, 76,117, 76,250,122,201,225,170, 42, 55,129, 44,101,240,201,166,
- 60,209, 84,167, 76, 30, 69, 84, 84,141,197,113,145,150, 98,106, 9,247, 50, 51,171, 35, 87, 33,246,170,186, 14,209, 59, 7,102,
-154, 50,242,198, 67, 21,142,206, 63,109, 99,101,230, 1, 64,179, 82, 71,149,104, 26, 85, 53,165,248, 57,148,170,169,153,136,178,
-170,153,114, 78,221,213,204,188,119, 19, 0,136,224, 8, 35, 11,171,122, 73,223,195,105,206,237,147,142, 89,250, 14,211, 19,229,
-176,142,129,179, 26,168,230,172, 55,185,239,217, 78,161,228, 60, 32,112,232, 9,135,180,140, 20, 4,204,172,149, 79, 94, 83, 35,
-177,156, 90,168,153,181,101,181, 75,206,216, 12,140, 12,209, 33,162, 81, 27,179,204,204, 8,137,114,198,141,128, 33, 21, 36, 0,
-102,170, 89, 69, 17, 1, 97,211,236,148, 7,128, 80, 15, 82,146, 96, 57,137,209,241,204, 97,252, 25,205,129, 32,215, 55, 41,128,
-166,154, 31, 17, 0,193, 12,198,194,106, 10, 86,109, 13, 96, 72,152,138,122,105,222,168,134,205, 21, 44,229, 7, 30, 1, 62,125,
-223,225,124,145,124, 57,107,226,190, 1,180, 31, 96,163,207,111,222,161, 6,106,106,106,172,166,170, 44,154, 74,173, 22, 43, 73,
- 63,213, 0,140,196, 64,148, 24,137,189, 40,169,182,245,154, 25, 42, 56, 51, 52,165,114,242,123, 12,111, 76,181,217,247,206, 98,
-118,239,222, 77,136,248, 61, 37,160,111,191,114, 61,243,137, 87,254,248,111,253, 77, 57, 57,115,194,243,123,191,250,169, 79,252,
-241,245,139,223,188,255,219,187, 44, 46, 44, 44,236,219,183,239,148,126,103,219,206,203, 95,241,214,143,229,194,185,169,160,235,
-254, 42, 0, 36, 32, 57,105,252,231,223,125,195, 23,222,115,195,169,110,217, 41, 75,232, 37,111,254,135,179,159,250, 67,105, 17,
- 71, 30,248,218,251,127,243,149, 43,135, 30,124,248,219, 38,231, 54,158,251,244,107, 94,255, 55,119,125,240,205,175,221,127,251,
-231,191, 91, 18,122,213,159,124,106,235,185, 79, 74,171,121,207, 47, 92,243, 24, 43,101, 95,118, 56,212,143,191,132, 46,126,238,
-203,182,158,119,105,186,255, 39, 63,113, 81,239,248,161,199,248,139,143,113, 53,167, 86,219,251,206,196,117,215,191, 45,221, 95,
- 62,176,231,177,175,230,187, 5, 54,188,252,134,127,110,239,255,217,171,159,250,221, 51,251,199,186,160, 47,253,221,255, 54,149,
- 83,118, 42,142, 94,119,237,174,159,190,250,138,199,223, 15,221,251,249,127,249,189,231,111,222,176,253,188, 23,190,233,175,190,
-229,155,119,110,223,250,202, 31,186,124,243,186,153, 4, 60, 0,226,214,249,117,111,254,251,143,159,178,149,173,159,157, 62,109,
-126,118,243,220,204,100, 89, 42, 88, 29,120,165, 63, 92,233, 15,122, 85, 56,182,218,251,150,215,234, 20,254,181,215, 92,249,140,
- 11,206,140, 41,113, 80, 85,131, 6,117,208, 61,135,143,191,229,159, 62,253, 45,173, 12, 95,116,245,179,127,229,199,158, 87,248,
- 34,199,105,101,149,192,161,146,186, 27, 98, 20, 81, 54, 21,150, 90, 68, 69,235, 40, 95,219,127,232,253, 95,188,253,161, 99, 43,
-129,185,189,208,204, 68,231,237,175,127, 41, 17,168,129,141,112,143,132,164,164,226, 21, 76,161, 91,213,191,254,174, 15,126, 11,
-179,255,129, 75, 46,153,152, 94, 15, 38,205,151, 98, 36,135,228,144, 60, 21,169,155,202,236, 92,161, 42,162,157, 82,127,224,194,
- 29, 79, 61,247,204, 42,132,238,176, 62,184,220,125,239,167,191,250, 91, 63,121,237,212, 68,153,155, 71,166,169,173, 9,104,150,
-155,154,233, 31, 51,208,169,137,226,119, 95,245,130, 95,123,231,191, 60, 26, 84,119,245,149, 87,156,123,218,105, 13,122,130,185,
- 13, 5,132,148, 58, 45,136, 25,181,200, 47, 34,128, 67,240, 68,133,119,179, 19,229,115, 47,191,116,221,100,105,166,109,136,182,
-244,241,102, 0,152,193,233,166, 26, 81, 5, 71,248,244, 11, 22, 62,115,231,201, 35,221,142, 29, 59,168,105,135, 57,164, 12,217,
-147, 47,200,151,206,119, 92, 49, 65,190, 67,174,112,132,142,136, 8,157, 35, 34, 2, 68, 34, 42,188, 47,189,159,232,148,117,168,
- 13,169, 65, 56,160, 5,104, 1,108, 60,145,200,200,158,217,220,244,228,175,252,216, 15, 61,162,217, 99, 2, 36,136,210, 54, 33,
-121,116, 5,249, 2,125,233,124,233, 92,137,174, 64,164,212,168, 24, 33, 43, 0, 4,224, 8, 61,185, 40,210, 31, 14, 21, 41,231,
-136, 99,249, 12, 54,192, 85,179, 24, 51, 68, 51,219, 58, 63,243, 51,215, 94,249, 8, 11, 66, 74, 32, 16, 57,143,222,147, 47,136,
- 60,185,194,249,146,138, 14, 21, 19,206,119,208, 21, 56,214, 0, 72,221, 29,242,197, 51,174,121, 85, 61,236, 39,248,113,185,219,
-211,241,196,181, 45, 57, 64,215, 8, 73,115, 58,125,246,150, 13,151,159,191,112, 50, 63, 68, 68,206,153, 25, 0,165, 98,222, 16,
- 77, 69, 17,201, 12,124, 9, 48,109,166, 18,235,196,187, 64, 0,239,168,152, 90,127,254,147,175,142,213, 32,198, 58,117,100, 89,
-236,224, 82,119,235,220, 84,171, 49, 96, 99, 77,205,164, 93,169, 30,104, 82,244, 23, 95,113,201,190, 99, 43, 71,150,214, 96,160,
- 68, 72, 64, 14,137,128, 40, 1, 72,136,132, 72,152,208, 28,231, 93, 49, 57, 49,187,105,106,253,118,231, 72,213, 84,229,204, 75,
-158,123,222,165,207,150, 80,115, 28, 36, 48, 84, 52, 21,222,182,239,120, 63, 9,103, 28,196,107,251, 6,227,187,153,108,239,141,
-215, 61,243, 97, 18,194, 12,106,153,154,162, 0, 1,104,163,153,136, 72, 62,117,128,202,169,245,235,182,158,235,202,137,178, 51,
- 37, 28,193, 76,149,165,174,196,128, 69,213, 84, 20,204, 32,170, 62,112,108,184,176, 97,210, 18,134,210,148, 68, 89,159,218,142,
-120,194,243, 12, 13,224,183,126,234,218, 55,189,247, 35, 99,177, 12,145,144,114,231, 11,176,209,190,116,143,200, 57,231, 75,223,
-153, 42, 38,166,125,103, 10, 1,132, 3, 18, 1,162,169,114,221,151,124, 75, 21,173,130,218, 48,196, 67,221,168, 73,121,218,229,
- 36,101,111,161, 60, 0, 74,149,163,129, 1,252,236,117, 87,173,177, 50, 32, 36,162,180,191,205, 14, 43, 34, 16,229, 75,152,169,
-134, 74,234,126, 18, 90,146,188, 42,215,189,197, 40,194,170, 81, 68, 52, 87,217, 96,118,112,169, 63, 96, 83, 83,203,114,193, 49,
-163,203, 14,173,145,155, 17,226, 95,221,248,197,147, 96,140, 0, 96,214,128, 50,208, 86,142,198, 28, 17,201,138,137,178,236,100,
- 20, 21, 64, 77,149,195,202,202,145,132, 80,105, 66,211,149,162,152, 24, 2,216,109,251,150,175, 56,123,189,168, 2,102, 34, 74,
-227,137,144, 82,215, 15,145, 21,254,224,159,111, 58, 33, 74,250,166,177,175,109, 11, 55,223, 81, 1, 21, 3, 3, 68, 95, 76,146,
-115, 77, 86,175, 9, 60,230,122,208, 15, 49,178,176,138, 40, 88, 66, 79,196,216, 72, 21,136,240,166,251,142, 61,243,156, 13,166,
-136,168,134,136,218,168, 53,146, 41,188,227, 51,183,220,179,119,255, 73,211, 15,131,164,148, 18,149, 89, 37,154,113,198,175, 76,
- 16,144,124,137,228, 16, 16, 76, 85, 57, 75,136, 67, 28,174, 12, 3,143,109,150,170, 65, 96, 16, 64, 6, 50, 69, 3,188,127, 57,
-158, 51,239, 0, 18, 48,109, 8, 72,104,127,251,133, 59, 62,119,231,125,143,232,169,155, 8, 31, 85,162,106, 48,141,202,209, 50,
-222, 40, 0,136,148,160, 96, 81, 97, 80, 49, 97, 85, 17,174,185,234, 86,145,185, 97,115, 4,150, 16, 98, 29, 67,136, 28,163,164,
- 50,127,207,161,229, 94, 68, 48, 32,196,210, 23, 31,248,210, 29,127,248,207,159,156,242,116,229,133,143, 88, 46,123, 83,149,220,
-106, 97, 21, 54, 97, 19, 78, 72, 99, 14, 72,154, 86, 76, 35,165, 4,211, 80,113,172,204,176,197, 73, 34, 11,179,212,194, 10, 94,
-128, 0,189,130, 67,162,155,238, 61,122,221, 69,155,191,112,215,222,207,220,113,247, 84,167,220,182,101, 99,233,104,194,251, 39,
-158,181,237,142,189, 7, 78,182, 32, 83,229,180,148,152,249, 0, 73,159, 76, 1,208,136,204, 68,197, 1,112, 42,255, 28,152,154,
-113, 24, 10, 7,174, 7,170, 26, 69, 2, 75,136, 28, 88, 34,179,130,176, 57,112, 6,104,138,206, 1,220,184,103,245,182,175,223,
- 55,213, 41, 39,203, 98,227,244,100,100, 46,188,159,235,200,100,167, 28,214,225, 97, 91,166, 98, 18, 19,186,152, 87, 99, 10,169,
- 51, 4,154, 41, 15, 26, 85, 66, 34,100, 40,179,198, 74,185, 86,229, 97, 93,179, 90,100,137,204,145, 51,101, 44,198, 24, 99, 21,
-234, 42,196,200,204, 98, 86,247, 43, 34, 44, 28,205,205,206,152,105, 74, 47, 10,239, 46, 62, 99,227,201,116, 72,213, 82, 95, 32,
-245, 95, 84, 18,149, 70, 65,179,178, 51,107, 12, 26,131,112, 48, 9,194,181,196, 90, 56,128, 89,191,170,165, 81,106, 22, 17, 77,
- 4, 2,225, 24, 57, 12, 99,168, 66,168,133,163,170,158,125,222,206,194, 57, 66,100, 73,170,141,142,104,162,240, 91,230,103, 79,
- 98,101, 54,130, 90,147,187, 87, 48,195,132, 84,137,161,169,153, 67,117,100, 14, 12,144,216, 36, 42,215,106, 22, 89, 45,217,104,
-238,216,129,170,101, 70,156, 25,176,128,235,160, 47,129, 10, 68,114, 68,189, 94,183, 51,183,174, 44, 60, 17, 58, 34,239,220,142,
- 13,179, 71,150,187, 15,183,178, 22,248, 53, 88, 3, 13, 42, 88, 82,243,104, 18,148,131,114,157,186,159, 82,247,135,117, 76,221,
-186,212,163,107, 66, 66,246,178,162, 38, 34,137, 36, 35, 97,168, 18,230, 54,109, 1, 87,136,168,169,165, 48, 78, 68,133,119,219,
- 54,111, 88, 43,161, 54, 0, 38,188,217, 52,161,120,208, 52, 42, 17,209, 20,129, 28,105,234,163,129,132, 97, 8,131, 94, 85,167,
-110, 33, 33, 80,202,240,168,161, 98, 37,175,175,233,251, 9,196,138,156,175,196, 68, 76,204,196,204, 33, 18,145, 39,115, 68,167,
-207,116, 14, 28, 61,193, 83,155,130,106, 94, 83,106,190,174, 85,112, 0, 68, 97, 35, 66,140, 0, 26,135,189, 65, 85, 39,242, 54,
-165,116,147,212,147, 19,178, 68,153,105, 4,174,162, 32, 42, 44, 34,117,232, 14,170, 13,235,166,251, 85,237,157,195, 20, 67, 17,
- 28, 81,225,221,220,244,228, 74,127,216,154,125, 75, 17,145,172, 76,202, 42,130, 32, 96, 10, 9,223, 78, 50, 19, 64, 64,145, 80,
-135, 56, 8,145, 89, 8,144, 40, 37,228,104, 14,189,145,153, 51,176, 20, 77, 73,144, 80,205,140, 69,234, 16, 35, 75, 29, 34, 33,
-214, 49, 2, 20,142, 16, 1, 9,129, 16,207,221, 60,119,115,187,160,180, 26, 72,134,102,106,202, 38, 12,166,162, 2, 38,173,134,
-101, 92, 86,141, 85,170,192, 33, 70, 86, 37, 66, 79,200, 68,226,168,192, 20, 69, 19,240,171,142, 48,197, 19, 71,148,140, 43,136,
- 12,234, 48,213,233,176,168,119, 77,206,133,136, 8,142,104,118,114,162, 59,172, 0,192, 39,216, 57, 69, 46, 75,228, 38,101,211,
-228, 27, 57,119,169, 83, 7, 94, 83,170,170, 85,228,200, 10, 6,142,168,112,142,157,154, 81,170,131, 16, 1,209, 19,138,119,148,
-128,246, 78,161,157,194, 19,161,119, 84,133, 64,132,185,127,169,185,127,157,170,173,133,141, 51,119,126,179,106,148, 90,197, 84,
-115,191, 76,217,154,230,139, 26, 72,198,147, 33,121, 26, 53, 99, 22, 22, 73, 61,203,212, 98,138,146,251, 16,152, 43, 24,113, 68,
- 25,116, 7, 19,209,210, 59, 68, 76,124, 45, 83,243,148,251, 9, 48,150, 77, 78,120, 63,138,101,102, 73, 42,108,146,156, 50, 91,
-211, 52, 17, 85, 85,101,205, 29, 43,145,166,255, 96,134,136,222, 59, 53,237, 20, 14, 0, 68, 21, 37, 91, 63,137, 58,162,220, 44,
-119, 38,106,136,232,136, 16,145, 89, 91, 75, 76,169,119, 83,154,194,214,185,105, 51,243, 96,106,204, 42,172, 26, 85,130, 9,139,
-101,230, 98,234, 40,100,162, 84,179,154,140,192,167,207, 64,244,206,121,159,197, 3, 0,160,154,182, 64, 91,228,223, 76,205, 40,
-123, 41,171,144,179, 55,176,177, 84, 18, 0, 17,183,206,205, 32,162, 55,147,220, 4,106,250, 47,214, 52,167,242,150, 37, 16, 35,
-253,108,158, 73,101, 69,138, 0, 30, 81, 28, 41,128, 51, 3, 67, 32, 2, 52,210,156,195,171, 25,170,162,119, 25, 58, 80, 11, 34,
-106,134,154,195, 66,211, 64, 7,143,208,176, 34,165, 86, 73, 93,169, 70,133,115, 28, 72,134, 7,163, 38, 85,219, 10, 89, 75,139,
-162, 6, 26, 0, 4, 52, 32, 68, 69, 68, 64, 5, 37, 64,203,221,113,116,228,136,132, 84, 77, 49, 39,200, 57,187,197,182,120,243,
- 42, 44, 92,171,130,168, 66,219,116,109, 86, 48,222,149,106, 87,211,196,152, 81,193,140,136, 52, 38,255, 92,187,166,229,217, 24,
- 25, 4,129, 26,141, 86, 29, 75,230,155, 86, 16, 0,120, 53, 21,209,148,106, 36, 93, 94,211,155,210,100,129, 77, 88,201,255,170,
-182,189,161,177, 50,217, 70,125,163,166, 68,109,111,237,238, 52, 59,100, 99,192,196, 8,140, 72,158, 58,227, 92,186,134, 99, 51,
-218,187,230,195,199,214,212,180,195, 70,157,170, 52,224, 0,163,199,184,182,126,109,118,122,172,252,111,159, 88, 83, 42,249,189,
- 75,125,213,166,228,105,107,159,209,253,230,251,105,187, 89, 39,166, 4,105, 79,147,207, 28,251,224,102,179, 12, 21,200,204, 68,
- 81,140, 34, 57, 46, 84,157,182,226, 68, 51, 50,243,106,148, 68,184,123,247,238,165,165,165,229,229,229,239,181,182,208,127,236,
-205,204,230,231,231,215,175, 95,239, 1, 96,101,101,101,255,254,253,255, 95, 40, 15, 39,121,102, 1,253, 7,222, 54,159,115,241,
- 57,151, 63,103,211,217, 23,109, 62,251,162,233,249, 45,228, 61, 18,197, 97,127,245,232, 67,171, 71,190,121,240, 27, 95,221,119,
-235,103,143, 60,240,181,239,203,254,230,183,243, 97,157,137,167,191,228, 13,231, 61,227,249,167,157,127, 25,156,136,215,142,232,
-189, 19, 51,243,179,155,207, 56,227,162,167,239,252,193, 23,143, 19,126, 99, 61,124,232,206, 47,237,249,242, 39,110,251,200,187,
-195,160,251,255,142,128, 92,209,121,230, 43,175,191,226,229,191,184,134,225,220,224,105,221,163, 15, 45, 62,116,255,254,219, 62,
-255,224, 45,159, 89,252,230,125,195,213, 19, 39,104,167,215,111, 94,183,101,251,150,115,159,116,250,133, 79,217,116,214,206,203,
- 94,240,154, 43,127,234, 87, 59, 51,115,117,111,229,163,255,235, 23, 30,248,242, 39, 98, 53,248,126, 21, 16, 34,189,238,221,183,
-174,219,178,125,252,169,244,243,163,111,125,227,237, 31,121,247, 99,185, 72,127,233,104,127,233,232,193,187,111,185,237,195,239,
- 60,225,226,128,184,113,225,130,167,253,248,235,247,221,254,249, 59,111,252,155,239, 39, 1, 33,210,143,254,198, 95, 92,184,251,
-133,163,220,194, 12, 16,123,199, 14,190,239,151,175, 91, 62,184,247,241, 8, 52, 10, 6,199,246,222,245,145,183,252,252,247,153,
- 6,109, 92,184,224,167,223,241,197, 53, 42, 99,102, 96,255,250,199,191,126,243, 7,254,252,251, 43,150,209,227,126,197,139,159,
-243,210,215,188,253,115, 15,215,168,143,188,229, 13,223,119,210,121,252, 53,232,220, 31,120,222,117,191,246,182, 76, 66, 27,203,
- 60,111,254,192,159,127,237,227,239,251,126,204,134, 30,103, 1,221,255,165,143,221,112,205, 70, 0,184, 96,215,143, 92,114,245,
-203,119, 60,249, 89,197,196,148,114,252,220,187,126,231,241,250,136,169,178, 56,115,243,252,121,219, 78,187,100,199,233,103,110,
- 92, 87, 16, 26,128,152, 17,226,151,239,221,247,206, 79,126, 89, 84, 31,199,111,132,187,119,239,222,187,119,239,169, 50,171,254,
-253, 92, 0,161, 67,124,209, 85,151,255,224, 69, 59,166, 10,175, 6, 98,134, 6,106,154,244, 84, 97, 84, 20, 26, 34, 1, 28, 89,
-233,254,222, 63,126,170, 87,213,223,225, 71, 47, 44, 44,156,117,214, 89, 30, 0, 88, 50,213,101,219,198,245, 79, 60,103,251,249,
-103,156,126,241,142,237, 51, 19, 19,147,157,162,244,222, 19,122,135, 4, 6,198,166, 44,194, 44, 38,146, 96, 44,101,150,212, 78,
- 96,209,154,165, 14,177, 14,188,216, 31,236, 57,188,120, 96,105,117,207,225,227, 71,151, 79, 61,163, 67,252,241, 43, 47,123,198,
-133, 59,182,204,207, 56,196, 76,235, 76,189,105, 0, 4, 80, 4, 50, 74,252, 4,108, 82,205, 84,103, 26,192,198,117, 51,191,251,
-234, 23,244,134,241,143, 62,252,217,253, 71,151,190, 83, 13,218,181,107,215,143, 62,237,201,215, 92,246,196,196,255,197,182,199,
-158, 90,103, 25,114,205,210, 48, 17,213, 52, 59, 16, 77,162,168,180,240,154,181,128, 64,134, 5,214, 96, 22,105,228,177, 31,226,
-193,197,213, 61,135, 23,247, 29, 93,254,230,226,242,161,165,110,140,121, 98,105,199,150,141,207,120,194, 89,207,121,210, 5,243,
-211, 19,170,218,234, 5,180,221,236, 49,156,162,197, 22,154,143, 72, 84, 91,109,137, 29,205,239,225,241,110,255,237, 31,251,183,
- 71, 25, 64,122, 76, 26,100, 64,128, 14, 9, 17, 8,199,150, 1, 72,185,223,137,100, 74, 68, 94, 73, 72, 11,115,156,132,229,140,
- 85,216, 11, 55, 83, 75, 32, 13, 37,223, 64, 19, 23, 57, 67,101, 0,166, 58, 51,209,217, 52, 51,189,115,251,150, 24, 37,136, 4,
-102, 17,241,229,228, 89, 91, 54, 12,171, 42,245,223, 18, 94,137,102, 8,160, 77, 51, 90,205,172, 69, 34, 51,143, 4, 27, 58, 66,
-238,102,167, 55, 88, 75, 43, 1, 48,213,249,233,169,235, 95,252,236,126, 85,255,209,135, 63,119,112,113,245,219,117,210,152,211,
- 82, 51, 4,180,134,198,162,134,169,135, 76,128,138,228,212,148,140, 76,156,169, 67,243,230, 68,133,209,177, 9, 35, 71,132,152,
-230, 27, 52, 3,174,148,204, 82, 21, 82,215, 93,140,144,140, 8, 72,209, 17,121,113,101,225,153,121,122,102,182,174,135,206, 33,
-128, 83, 97, 24, 27,184, 26,175,215,208,198, 49,186, 4,253,101, 76, 46,207,187,140,209, 38, 44,163,204,105,182, 28,167, 58,229,
-175,189,232,217,221, 42,252,143,191,187,177,138,241,148, 5,148,250, 37,137, 57, 3, 35, 26, 14, 97,102, 33,153,129,166, 89, 48,
- 48,167,100, 96, 98, 34,170, 2, 72, 38,164,128,148,117, 60,102,132,211,144,146, 2, 25, 98,219,167, 71, 75,110, 53, 97,212, 25,
-144, 86,245,158, 66, 45,102,102, 16, 29, 57, 71,152,190,149,166,239,253, 8, 78, 42,129,114,121,206,183, 81, 58, 91,131,231,140,
-128,197,196,246,154, 40,253,111,189,226,218,123, 14, 30,255,179,143,158, 2,245,213, 45, 44, 44, 92,120,230,246,243,207, 56,163,
- 97, 49, 17, 18, 66,195,104, 34, 36, 64, 66,114,233, 85, 64,151, 27, 80,232, 48,145,103,218,174, 0, 52, 40, 99,174, 2, 96,140,
-221,181,182,112,207, 80, 52,109, 60,253,220,167,236,250,177, 3,123,191, 30, 67,149, 0,249,200, 92,197,168,128,142, 40,185,147,
- 60,193,103,102,227, 68,154,230, 24,131,180,125,136, 96,176,246,115, 90,196,179, 65, 29,161, 65,236,215,207, 76, 94,115,217, 5,
-157,194,223, 51,222,148, 59,217,109,110,110,110,126,126, 62,107, 16,145,211,150,180, 2,105,183, 19,169,194,154,147, 26, 72, 51,
- 59,203,208,212, 72, 77, 9,145,210, 12,156,178, 3,116,136, 21,128, 26,179, 54,251,102, 99, 91,158,142,144, 50, 48, 95, 76,238,
-184,120,247,204,186, 13, 38, 28,170, 94, 93, 13, 56,117,101, 18, 33,192, 32,112,221,171,170, 78, 81, 78, 79,120,203,232,117,114,
- 78,163,248, 49, 38,163,113, 45,179, 53,181, 90,251,100,246, 81,137,155,133, 98,118,213, 69,103, 95,117,209, 57,111,253,224, 77,
- 7,151, 86, 31,155,137, 57, 79,173,111, 78,251, 98,128,100,102, 70,105,255, 32,207,137, 36,150,211,168, 74, 65,116,232,201,151,
-164,108, 60, 41,113, 50,214, 61,171, 7,121,120,162, 25, 62, 73,156,147,249, 51,118,110,217,190,211, 57,167,194, 26,131,114,168,
-170,158, 48,183,253, 11, 51, 83, 5, 53, 80,176, 42,214,203,253,106,118,106,114,166,147, 34,122, 98, 31,141,161,220, 99,232,252,
- 90,233, 24,160,161, 1,142,203,104, 45, 99, 48, 77,123,188,225, 5,187, 30, 90, 92,125,199,141, 95,170, 30,121,252,215,167,108,
-140,200, 37, 83, 69, 92, 35,166, 28, 22, 70,198, 49,182, 20, 68, 34,103, 70, 64, 0, 96, 14, 74, 40, 17, 0, 38, 17,205, 84,170,
-222,234,202,209, 1,139,243,157,217,249,173,219, 22,118, 18,130,138, 32,130, 8,155, 70,225, 32,161, 26,244,151,217, 52,147,158,
- 52,181,122,211,234,193,204, 88,236,232, 74,255, 40,225,105,115, 83, 29, 7,205,145, 1,102, 48,110,205, 54,210, 22, 27, 39, 39,
- 90,107,206,208,244, 4,114,155, 73, 21,146, 59, 52, 60,109,126,246, 55, 95,118,245, 71,111,189,247,211,119,220,251, 40, 26,132,
- 72,148,114,210, 68,132, 3, 52, 2, 80,211,236, 13,113,172,189,144, 59, 17,136,237, 4,102, 50, 31, 36, 36, 71,228,201,121,116,
-133,243,197,134, 29,205, 84,165, 25,170,164, 38, 94,234,187,171,168,114,228, 48, 28,246,150, 19, 85,173, 73, 8,146,140, 72, 21,
- 20, 82, 55,222,152,237,129, 35,171,147,157,114,251, 92,167,253,218, 10, 41,226, 54,255, 1,142,187,232,204,152,109,115,130,102,
-219,199,202, 67,204,130, 66,100,181,171, 47, 61,255, 25, 23,238,248,211,143,126, 97,169, 55, 56, 73, 53,223, 68,121,164,212,223,
- 66,164,113,215,155, 59, 43,169, 91,159,141, 46, 45,129,146, 35,119,158,168,200,196, 80,114,128, 8, 38, 18,134,177,234,113, 24,
-130, 25, 16, 37, 37, 77,202, 6,102,160, 34, 18,227,112,165,223, 93, 76,228, 39, 78,115,149,137,215, 39,194,150,199,194,219,198,
-205,202,160,190,253,161,213,227, 67,205, 99, 79,233,167,142,251, 34, 24, 7, 42,161, 29, 49,182,134, 1,136,136, 13,239,181,121,
- 29, 40, 9,218,108,118,178,124,227, 11,127,112, 97,203,198,147, 22,171,141,196,155,119,231, 92, 53,141, 57, 54,116, 11, 77,227,
- 94,102, 45,219, 55, 79,101, 41, 42, 42, 24, 34,131, 34, 0, 56,116,206, 21, 29, 34,151,230,154, 51, 67, 19, 16, 65,193,204, 76,
- 69,162,212,253,254,234,209, 94, 85,165,147, 55,154,158, 87, 30, 19, 83, 0, 85, 84, 48,209,108,113, 41,177,217,115,100,245, 96,
-233, 47,216, 50, 77,208, 26, 21, 26,166,145,181,108, 86, 77, 75, 46, 39, 9, 72,136,154,245,142, 16, 45, 53,163, 85, 83,247,190,
- 91,241,221, 7,142,125,242,246,123, 22, 31,129, 59,239, 91,165, 52,205,221,199,164,218,137, 70, 5,150, 88,188,105,216, 54,251,
-103, 85,197, 38, 85,205, 65, 53, 73,129, 13,121, 25, 42, 0, 0, 9,250, 73, 68, 65, 84,156,115, 5,122,231, 92, 65, 13, 39,188,
-229, 74, 54,102,170, 42, 34,177,170,122,199, 86,122,171,131, 42, 68, 22, 81, 1, 64,205, 13, 67,208, 20,177, 0, 89, 77, 13, 20,
- 64,148, 52, 55,208,173, 55,140,159,191,247,216, 5,219,231, 79,155,164,180, 86, 52,107, 12,206,192,176, 73,185, 70,217, 55, 34,
-165, 4, 76, 84, 19,123,238,174, 67, 43,127,255,217,175, 12,134,213, 99,132, 59, 44, 87,122, 57,146, 72, 67,241,200, 36,157,164,
- 68,102,146,100,212,254,219,120,111, 34,114, 72, 72,228,208,249,196, 60,111, 82, 95,179,148, 79, 26, 98, 26,133, 20,214, 88,199,
- 97,183,238, 47, 85,172,193, 44, 50,171,129,154,180,228,130,156, 2, 27,138,154, 24, 40, 96, 34,108, 72, 18, 5,152,247,238,238,
-135,150,191, 57, 81, 62,105,219,180, 3, 83, 4, 64, 69, 64,107,147, 81,200, 26,155,118,220, 17,162,115,247, 31,237,126,238,235,
-247,223,118,255,131, 33,196, 83,203,164, 51,195,168,165, 5,106,203,132,107, 73, 57,210, 88,156, 90, 34, 47, 52, 89, 14,145,107,
-184,190, 4, 68,141,162,136,170, 33, 16, 96,170, 57,210,166, 38,249, 4,142, 3,174, 86, 67,168, 6, 85, 93, 87,117,100, 25, 17,
-201, 70, 85,110,162, 41, 36, 13, 66, 0, 84, 32, 5, 84, 3, 53, 74, 42,187, 58, 8, 55,222,213,127,242,217,155, 79,155, 76,231,
- 74,180,229, 89, 34,218, 0, 1, 30, 88,236,222,182,247,224, 93,123,247,207, 76,118,230,166, 38,143, 30, 95, 57, 37,233,180,148,
- 96, 85,201,199, 39, 89,162,247, 38, 97, 73,162,118, 73, 83, 34,103, 15,210,232, 14,102,151,156, 15, 80, 0, 80, 53, 96, 48, 2,
-115, 64, 6,102,144, 37,166, 57,226,168,104,172, 36, 12,185,238,215,129,217,176, 30, 12,180,225,123, 55,103,117,140,168, 1, 44,
-218, 8,136, 12,201, 12, 20,156,161, 26, 98, 10, 64,165,247,183,236, 57,186,101,126,250,210,211,167, 93, 62,255,206,234, 40,255,
-246,141, 7,191,114,247, 3,133, 71,135,174,240,238,220,109, 91, 61, 90,100,217,177, 97,110,203,186,233,175, 62,112,224,177,131,
-106,233,196, 67, 77,100,156,196,158, 55, 17, 77, 39,150, 52,100, 60,104,136,131, 54, 98,173, 24, 2, 66,242,218, 42,185, 82, 76,
- 98, 36,135, 96,152, 40, 59,166,249, 16,177,196, 4,231,192,177,146, 48, 20,174, 69,196, 36, 86,117,101,136,121,131,204, 88, 68,
- 50,147, 67, 69, 45,209,164, 44,219, 14, 41,144, 1, 3, 58, 32, 2, 32, 5, 52, 67, 71,116,120,177,247,217,136, 37,198,155,111,
-185,121, 24, 56, 17, 33, 39, 75,239, 28, 77,117, 58,219, 54,204,101,233, 59, 43, 0, 0,225,105,231,110,219,191,216,123,232,248,
-242, 99, 21,144, 38,215, 48, 34,223,106, 67,193, 29, 63,198,201,214,144, 26,243,145, 38,154, 11,103, 1,112,105,248,217,208, 36,
- 85, 33,128, 76,228, 16, 29,146, 2,130,137, 8,215, 18, 42,137, 3, 97, 86,128, 80, 13, 89, 36,209,142, 88,148, 53,211,247,155,
-105,121,225,134, 48,162, 96,106, 96, 64, 0,100,232,128, 28,146, 51,160, 36, 59, 36, 26,116,123,125,128,233,249,141,225,216, 17,
-231,200, 19,121,231, 38, 59,229,150,245,235, 48,243,223,208, 57,215, 6,223, 51, 55,204,148,222,237, 57,124,252, 49,106,144, 24,
-199,116, 56, 71,227,146,181, 61,149, 37, 7, 53, 51,108,224, 77,104,217, 43,170,102, 14, 49, 89,189, 2,146, 33,167, 34, 54,141,
-125, 0, 41, 58, 1, 37, 0, 51, 97,229, 96, 92, 43, 71, 51, 65,128,126, 85,139, 36,246, 95,202,128, 68,212, 88, 84, 84, 36,241,
-218, 26, 91,107,232,128, 96,128, 6, 14,156, 3,244,128,173,129, 39, 73,193,214,205,219, 66,168,226,176, 95,120, 87,120,183,113,
-211, 38,169,251,232,124, 58,211, 36,177,190,156, 97,225, 29, 0,108,157,157,152,155,220,118,235,201, 88,219, 15,247, 65,166, 38,
- 38,210, 56,154,230, 79, 59,122,145,206,189,105,196,211, 22,207,150, 17, 79, 74,120, 67,170, 89, 76, 18, 81, 10,145, 28,152, 67,
-165,156,251, 10,155, 4,225, 96,202, 0, 16,152,135,117,204,234,218, 80,216,164,185,151,168, 91,105,218, 97,228,191, 51,118, 24,
- 65, 8,192, 3, 57,200,169,150, 3,114,136, 24, 85, 79,219,178,125,121,245, 24,247, 86, 54,110, 57,125,233,216,225,233,201, 9,
- 68, 77, 67, 34,105, 28,194,136,200,212, 59, 50,243, 8,188,243,140,205,247, 30, 58,206,162,143, 30,197, 52,113,127, 27, 78,176,
-230,180,176, 65, 23,115, 19,211, 12, 50, 38, 59,198,218, 74,241,212,192,144, 0,208, 52, 3, 61, 73,143, 44, 77, 21, 37, 51,150,
-168, 82, 75, 28, 10,135,200,178, 58,168,173, 45, 34, 83,250, 99,227, 51, 85,163, 18,211,198,143, 60,104,230, 75, 0, 35, 2, 2,
- 58, 67,135,228,147,209, 33, 18, 32,205, 78,207, 85,160, 51,243, 27,142, 31,250,102,148,130, 8,139,140,203, 16,161, 1,170, 17,
-129,153, 57, 2,112,115,147,229, 69,219,183,222,254,224,161, 71,130,158,124,147, 6,229, 8,213,136,105,156,205,165,205,185, 7,
- 45,151, 79,219,227, 68,108,140, 26,152, 16,190,156,201, 43, 33, 17,170,203,185,154,138, 73,148, 88, 73, 28,132, 24,122, 85, 21,
- 98,108, 82,248, 84,222, 0, 97,147,210, 17,153,170, 34, 18,162,162, 1,158, 64,171,107, 79, 88, 0,128,102,178, 22, 9,208,147,
- 43, 18,204, 55, 61,183,113,229,248, 81, 55, 49, 35,194,234, 76, 84, 17, 40, 79, 84,228, 3,128,200, 37,233, 59,152, 4,120,202,
- 57,219,110,221,123, 80, 79, 22,218,154, 68, 49,107,208,184, 18, 89,126,152, 38,147,198, 51, 73, 48, 28, 79, 20,243, 37, 48, 3,
- 55,205, 84, 85, 26,103,130,102, 78, 72,185,146, 88, 71,230,126, 21, 6,117,140,162, 9,112, 83,179, 36, 84, 2, 50, 26,241,131,
- 1,128,193, 28, 16, 24, 0,129,169, 38, 9,230, 34,209,198,105,119, 96, 38, 6, 17,113,152,182,251,232,177, 35,155, 55,111,150,
- 80, 5, 77,196, 90,200,211, 88,121, 47,140, 8,205, 80, 9, 29,144, 1,128,241,133,167,111,188,247,208, 98,219,224, 57, 49, 81,
- 28,139,229,121, 68, 55, 69,255,166,162,110,146,184, 38,216,103,199,212,160, 87, 0,227,219,220,144, 34,145, 26,233,139, 74, 72,
-164,230, 58,114, 21, 67, 29, 89,213, 18, 12,128,169, 68, 66, 52, 50, 80, 66, 74,254, 76, 27,221, 82, 68, 32, 69, 18, 20, 84,194,
- 53,124,202, 84,126, 36,158,119,242, 98,145, 69,205,134, 33, 30, 58,116,104,221,212,164,153,245,171,160,102,165, 55,239,156,195,
- 92,176,166,225, 65, 2, 72,135,162, 24,209, 76,233,119,110,223,218,158,147, 53, 46,160, 84,180,231,124, 45,149, 93,173,171,206,
-163, 9,144,234, 15,107,207,111, 28,227,144,142, 33,160,163,147,124,198, 24, 24, 54,162,161, 7,230,116,216,165,136, 24,130, 67,
-114,142, 90,192, 2, 0, 0, 20, 45,183, 52,144, 80, 20,137, 72, 68,149, 76,156,170,168, 36,166,185, 53,171,108, 56,167,196,192,
- 72, 44, 12,205, 40, 69, 37,140, 84,151,206, 1,104,136,156,170, 14, 77, 39,208,143, 99, 30, 13, 39,223, 57, 42, 77, 46, 94, 56,
-253,206,125, 7, 79,166, 65, 77, 93,106, 77,152, 79,248,103,190,211,168,146,154,102,216, 51, 21, 28,201,224,208, 18,132,148, 48,
-188,228,177,160, 97, 66,167,141, 77,228,120,102,137,170, 41, 63, 78, 58,239,243, 81,228,104,156, 12,148,204,192,153, 41, 33,169,
- 17,162,145, 9,145,168,122,163,228, 77,204,155,142, 60,100,115,186, 79,161,162, 22,197, 23,158,163,168,119, 46, 48,171,170, 32,
- 34, 82,158,182,161, 28,139,243, 39, 54, 24,121, 59, 0,227,156,235,128,156,185,113,110,255,241,149, 19, 75, 13, 27, 37, 62,109,
- 14, 45,109,116,107, 13,208, 90, 51,108, 66,141, 90,142,112,144, 78,223,109, 77, 49,115,139, 19,253, 92, 84,141, 91,210,117,234,
-145, 18,122, 34,240,142, 4,193, 12, 60,145,128, 52,232,143,170, 17,170,115,168,106, 78, 19,132,214,124,182,142,183,238, 26,152,
-205, 76, 85,163,104,233, 89, 84, 67,225, 3,115,130,186,211, 7, 33,141,186,106,154,167,190,112, 52,205, 10,214, 76,163,227,166,
-217,201,238,176, 94, 30, 84,107,163, 88,158,168,201,185, 98, 83,181, 54, 82,131, 60,102, 15, 35, 74, 63,140,245, 57,155, 26,100,
-204, 53,140, 50,151, 92,242,154,182,140,107,128,212, 21, 41,188,145, 2, 35, 26, 0,170, 48, 18, 53, 24,152,161, 42,161, 26, 88,
-115,226,143,182, 0,194, 88,235,180,193,105, 33,145,224, 75,213,210, 59, 81,141,133, 79,230,156,182, 42,159,201, 75,148, 49,175,
-230, 52,163,182,161,144,207,156, 71, 64, 64, 2, 59,123,203,252,109,251, 14,167, 15,105, 76, 76, 88,243,160,141, 53, 71,227,229,
-220, 13,155,243,150,180, 37,101, 91, 83,218,235, 26, 6,119, 58,172, 48, 87, 6, 13, 27, 92,109,228,213, 91,217, 33, 66,242, 62,
-216,160,127, 44, 72,168,162, 40,152,210, 45,164, 36, 83,112,154,134,237, 40, 95,191, 61,176, 54,153,180, 54,243,249, 73,144,133,
-247, 34, 18,189, 20,236, 75,201, 13,129, 81,240, 64,104,164,131, 6, 99,125,109,204, 39, 66,166, 31,168,186,243,244, 77,203, 99,
- 2, 18,205, 7, 43,107, 51,251, 35,201, 91,235,216,169, 95, 89, 34, 13,249,109,172, 81, 99,163, 84, 50, 13,230, 52,161, 78,155,
- 81, 20,107,244,171, 77, 13,146, 62, 3,129, 3, 50,151,159,194,180, 58, 5,164,140, 92, 38,228,139,242, 32,164, 81,158, 27, 24,
-249,245,214,210,129, 80, 13,156,169,164,193,109, 18, 47, 20,137, 88,114,137, 96,163,110,226,201, 40,243,216, 52,100, 1, 0,177,
-112,184,113,106, 18, 0, 60, 32,152,138,198,160,105, 20,202, 56,127,253,102,231, 97,173, 77,173,169,140, 50,204,216,160,214,107,
- 95, 26,191, 51, 82, 31, 88,123, 38, 37, 0,165,233,116, 66, 3, 2, 3, 75,224, 15,128,166,198,128, 26, 53,237,112,108,206,143,
-132,241,108,219,154,254,162, 25,154,161, 81, 35,129, 38,190,166,179,224, 19,234,150,253,243,216,137, 8, 99, 19, 19,205, 52,125,
- 62,126,124,162, 44,218, 98,149,149,171, 20, 67, 27,209, 96,235,100, 70, 90,211, 58,197, 70,197,181, 61, 20,163, 33,168,228,131,
- 68,154,103, 32, 25, 5,172, 57,138, 12,218,110,231,120,135, 1,113,237,144,189,225,216,241,158,227,147, 39,150, 24, 4,205, 95,
-179,212, 96, 25, 17,174, 41, 89, 40, 18,146,145, 26, 17, 17, 89, 54,206,172,206,216, 72, 24,173, 77,114,219,163, 7,210,248, 84,
- 59,239, 3, 0,170,194, 28,218,184,160,185,152, 0, 61,241,140, 53,104,121, 58, 99,150, 53, 46,181,241,129,160,209,209,170,109,
-203,118,236, 37, 91,155, 47,229,110, 46,226,168,131,213, 72,176, 61,246, 52,255,155,239,102,172, 30,198,155, 95, 99, 77,194,156,
-210, 35,174, 61,190, 35,229, 64,169,143,155,168, 13, 0, 15, 91, 8,140, 55,250,147, 6,153,140,177,148,198,190,146,173, 61,138,
-110,220,196,224, 97,207, 52,190, 96,252, 72,187,118,122, 10,214,156,118, 55, 86,142, 54,165,234, 88,227,207,210, 49, 6, 9,224,
-109, 43,154,246,136,137,166,208,200, 77,206,209,100, 85, 83, 88,143, 55,164,109,212, 53, 28, 85,197, 77,163, 81, 1, 79,156, 55,
- 67, 56, 65,220,190,217,173,124, 54,242,200,124,160,189, 51,230,107, 96,141,116,116,228,160, 96,220,107,218,248,255, 37, 97,172,
-153,126,226,106,218,239,156,150,142,185,163, 10,173,220,199, 88, 83, 10, 13,106,169, 13,255,101,236,115, 70, 9,189,141, 57,189,
-145,224,146,114,106, 91, 21,217, 88,131,118,188, 47,157, 93,244,216,255,223, 3,119,239,222,253,240,177,189,127,191,137,154,239,
-210,123, 79,241, 55,240, 17,185,234,246,127, 1,113,167, 34, 48, 36, 75,123,196, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/datafiles/vertexdraw.png.c b/source/blender/editors/datafiles/vertexdraw.png.c
deleted file mode 100644
index 2117bfa45bd..00000000000
--- a/source/blender/editors/datafiles/vertexdraw.png.c
+++ /dev/null
@@ -1,330 +0,0 @@
-/** \file blender/editors/datafiles/vertexdraw.png.c
- * \ingroup eddatafiles
- */
-/* DataToC output of file <vertexdraw_png> */
-
-int datatoc_vertexdraw_png_size= 10253;
-char datatoc_vertexdraw_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73,
- 72, 68, 82, 0, 0, 0, 96, 0, 0, 0, 96, 8, 2, 0, 0, 1, 26,253,208,249, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,177,143,
- 11,252, 97, 5, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0,
- 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 7, 21, 0, 4, 18, 61, 67, 90, 24, 0, 0,
- 32, 0, 73, 68, 65, 84,120,218,237,125,105,176,101,215, 85,222,247,173,125,238,189,111,236,225,169,213,173,209,178, 60,202,150,
- 44,100, 97, 25, 12,132, 36,101,187,138, 24, 76, 2, 21,243,131, 84, 2, 4,200,143, 36, 54, 96, 6,131,141, 73, 42, 6,131,147,
-144, 98,168, 2, 42,144, 64, 8, 73, 5,108,170, 24,138, 64,254, 0, 33,102, 50,120, 32,128, 53, 11, 73,150, 90,234,185,251,141,
-247,158,179,247,250,242, 99,239,125,206,185,175, 91,182, 12, 38, 85, 84,249,232,245,235,115, 79,223,123,238, 62,107,175,189,134,
-111,125,107, 11,248,116,143, 27,110,188,241,246,219, 95,116,245,117, 2,120,199,119,190, 51,165, 72,192,204,104,214, 52,205,164,
-105,154,201,228, 93,239,252,174,252,166,230,109,223,244,205,251,251,123,128,140, 70, 51,163, 29, 93, 59,119,244, 72,187,117,100,
-255,220,199,110,190,251,239,233,153,103, 78, 55,109,187,128, 0,192,130, 25,237,107,190,236,231,214, 39,190,126, 52,204, 38,112,
-226,173,255,242,159,255,171,127,253,190,166,235, 58,230, 47,246,240,166, 47,248, 95,237,194, 27,195, 74,244, 22,166, 78,187,123,
-120,215,187,190,187,137, 93, 36, 72,146,166,149,112,249, 96,145, 71,170, 73,240,143, 62,122,111,215,117,146, 55, 41, 69, 18,128,
-209,173, 75, 73, 11,200,121,229,242,230, 99,103, 94,254,224, 83,119,133,208, 66, 77, 19, 83, 52,144, 38, 82, 93, 84,234,120,255,
-227, 47,253,248, 19,175, 14, 33,132, 16, 37, 65,104, 60, 37,209, 12, 0,180,187, 63,253,179, 71, 63,231,217,139,183,134, 16, 33,
- 65,128, 68,177, 73, 41,145,144,100,102,255,243,119,223, 72,154, 89, 4, 27, 32, 63,116, 3,198, 38,197,100, 38, 32, 72, 34, 41,
- 37, 32, 48, 57, 4,128,206,100,110,207,107,186, 66,127,182,186,186,118,235,173,183,154,241,224,224,224,240,220,221,123,239,189,
-175,127,195, 27, 37, 25, 73,179, 16, 66,158,184,223,248,141, 95,255,221, 15,126,176,188,233,109,111,251, 38, 65, 68,158, 55,110,
-172, 45,182, 54, 15,142,108,182, 47,190,229,169, 87,188,232,201, 83,119, 61, 6,160,105,219, 22, 64,158,220,207,127,229,135,238,
-126,241, 67,235, 27, 88, 93, 51, 2,161,211,123,222,243,189,239,126,247,119, 55, 93,236,242,180, 76,154,116,251,205,247,207,163,
- 77, 34,167, 9, 18,158, 56,119,115,219,182,223,251,125,239,109, 98,215,145, 70,226,182, 27,159,152,239, 33,206, 64, 66, 93,106,
-125,229,151,127,231, 13, 80, 43,160,137, 41, 25,221,204,166,182, 51,159, 35, 72,109, 27, 30,217,185,229, 79, 30,126,205,188, 69,
-104, 58,161, 78,139,220, 23, 45,218, 14, 93, 55,251,131, 63,255,226,221,249, 86,176,209,220,165,148,140, 46,179, 51, 23,183, 94,
-118,139,126,237, 15,222, 0, 76, 66, 72, 8,101, 94, 64,134, 59,238,120, 5, 0, 73,251,243,213, 7,158,188,195,157, 36, 72,129,
- 16, 65,144,198,198, 61, 2,193,204, 0, 72,201,140, 41,137, 36,225,164, 57,221, 93,248, 76, 29, 28,191,248,230,111,121,251,250,
-218,186,202, 88,202,120,140,102,193, 72, 6, 11, 63,242, 35, 63,116,230,204,153,107,223,232,219,190,253, 59,146, 39, 8,112,229,
-219, 18,160,145, 48, 26, 1, 90,160,153,145, 12, 33, 24,205, 66, 48,179,151,223,246,196, 87,253,227,255, 56,190, 81,179,191,191,
- 15, 8,245, 25, 57, 58, 64,220,113,219, 35,119,220,246,240,137,173,203,235,211,110, 26,212, 24, 44, 32, 24, 56, 11,231, 63,118,
-234, 39,127,253, 95,252,231,159,254,185,135, 31,122, 8, 64,211,181,109,255,144, 34,152,213,129,124,209, 77,143,127,225, 61,191,
-215, 72, 97,106, 74,136, 98, 8,102, 13, 28,136, 0,119, 83, 10,182,191,159,190,250,171,255, 81, 8,225,123,222,253,221,225,238,
-207,185, 91,238,238,114,185,242, 47,225,250, 99,207,190,230, 21,127, 96, 49, 38,154, 28, 2, 33, 73, 76, 9, 49,201,231,126,208,
- 77,126,245,131, 95,114,121,119, 67,238,238,254,119, 95,255,250, 38,165,136, 60,149, 0, 13, 16, 73, 63,178,122, 78,222,206, 35,
- 77, 48, 67,211,169, 93, 96, 18, 92, 12, 59,243,227,159, 56,243,130,199,159,125,209,238,254, 49,178,115, 51, 51, 75,238, 77,140,
-110, 44,211,103, 2, 96, 0,132, 69,156, 59, 72,139,226, 20,251, 62,221,222,221, 58,127,229,228,211,231,110,219,155, 31, 51,203,
-134, 44, 26, 45,175, 64,115,111, 60, 69,129, 52, 72,116,167,153, 36,108,239,173, 30, 36, 11,174,200,230,129,135,239, 60,125,225,
-230, 46,174, 17,180, 96, 68,103,193, 8, 11,193, 19, 45,208, 24,104,230, 77,140,201, 8,202, 64, 16,230, 81,164, 61,117,230,228,
-173, 39, 55,158, 58,251,130,199,159,185, 93, 50, 18,102,145,164,187,133, 64,119, 11,102, 46,154,153, 72,202,130,133, 38,165,228,
- 36, 93, 36,204,156, 52, 41, 45,218,201,111,127,248,139, 0,146, 34,147, 68, 9,102,249, 31,205, 12, 74, 50,152, 36, 89, 48, 56,
-193, 38,121,178,170, 56,217, 10,102,193,231,195,204, 0, 26, 37, 10, 48,130, 36, 40,201,140,142,178, 40, 17,196,207,220, 90,251,
-235, 89,180,253,113,252,248,241, 99,199,142, 3, 88, 44,230,151, 47, 95,222,223,223,255, 52,110,244,146,151,190,244, 45,111,249,
-170,162,153,245,175,188,244,205, 44,132,112,249,242,149,127,247,111,127,224,147,221,232, 59,191,235,157,158, 92,217, 30,150,213,
-111,204,183,179,114,132,124, 51, 11,205,164,121,199,119,124,251, 53,252,205,219,191,245,219, 82, 76,201,147,123,146,187, 75,202,
- 38, 19,146, 60,255, 5,244,103,114,247,175,251,234, 59, 94,126,199,237, 31,252,189, 63, 95, 50, 35, 49,198,252,217,108,127,139,
- 30,176,140, 8,196,145,149,253,245,217, 98,182, 26, 87,167,113,117,165,187,233,196,153,151,221,252, 23, 95,242, 58,188,241,139,
-255,225,235,223,252,129,165, 27, 65,131, 22,176, 40,149, 19,156, 77,187,151,190,224,177, 59, 94,248,200,169,173, 11, 43, 84, 51,
- 65, 19, 64,194,102,198,104,106, 15,126,224,125,239,253,206,119,188,179,104,156,167,228,163, 35,219, 18,185,111,172, 92,122,205,
- 29,191,255,185, 47,251,195,227, 43,231,208,185, 55, 84, 99, 41, 88,164,197,136, 36,135,230, 30, 23,223,255,253,239, 43, 55, 74,
-195,225,238,158,207, 54, 86, 47,222,126,243,195,183,156,124,220,219,212,137, 29,204, 29, 18, 36,128,240,133, 47,156,139,136,249,
-130,109,215,190,245,109,111, 3,208,184, 60, 7, 52,128, 1, 2,140,244,235,142,156, 57,181,245,148, 60,117,193,224,112, 87,114,
-166,122, 47, 38,156,187,178,117,113,231,136,123, 66,212,137,235, 78, 16, 53, 40,161, 8, 38,130, 52, 63,178,126,101, 99,245,242,
-204,246,227, 66, 97, 38,146, 22, 97, 45, 36, 5, 83, 72,234, 82,120,232,137, 23, 62,113,250,134,148, 82,158,168,247,124,223,247,
- 53,114, 87, 86,190,108,251,221,166, 97,127,210, 28, 0, 93, 76,240, 14, 53,160,145, 58, 5, 67,139,233,163, 79,189,228,241,103,
-110,222,222, 91, 7,147, 36,144,109,219, 54, 82,126,167, 75,150,173, 27,173, 53,182,201, 5,193, 45, 79,169,156, 64,208,246, 98,
-235, 19,103,111,125,242,236,109, 87,118,143,184,100,116, 24, 16, 99,118,236, 78, 82,128, 89,242, 98, 23,146, 39,119, 7, 36, 38,
-119, 55, 73,243, 56,189,188,127,226,194,149, 83, 79,158,125,225,254,124, 83,160, 89, 18,203, 4, 0,177, 17, 36,151, 25,220, 13,
-144, 25, 83, 66,114,164, 86,110, 12, 2, 39,190,179, 88,187,184,125,242,161, 79,220,113,101,247,132, 25, 73,208, 92,110,193,228,
-238,121,157, 53, 74, 14,163, 59,128, 68,154,187,220,225,174, 72, 50, 42, 25,219,118,237,145,167, 94,246,232,233,151, 25, 73, 75,
-146,153,201,100, 48, 37,193,148,151,189, 26,135,224, 78,152, 25, 92, 78,113,209, 54,109, 55,137, 17, 38,155,119, 43,247, 63,113,
-231,233,179,183,130, 78, 35, 72, 41, 57, 2,204, 41, 18,132, 19, 36,224,141, 39, 55,131, 32,119, 0,162,217,254,124,186,123,176,
-210,117, 77,114,251,147, 71,239, 62,123,241, 6, 51, 25,229,130,185, 59, 73,185,220, 12, 32, 29, 70, 56,136,208, 72, 74, 14,194,
- 73,152,153,187,239,205, 87,183,247,214,207, 92, 58,113,230,226, 13,103, 46,156,202,161,111, 74,201, 44, 64, 78, 51,202,205, 36,
- 25, 76, 14, 35,232, 84,163,236,146, 73,129, 46, 17,136,209, 30, 63,253,130, 39, 78,223, 6,102, 55, 39, 51, 35, 33,185,211,204,
- 29,102,238,128, 57, 21, 76,229,104, 92, 78, 90,190, 5,220, 85, 60, 7, 92, 78,208,157, 36,221,243, 64,100,144,172,196, 79, 18,
-168, 98,183, 36,111,228, 2,135,207, 3, 40,114,168,182, 69,146, 89,160,202, 58,203,250, 73, 65,132,160,124, 42,161,145, 28, 32,
- 65,119,207, 1, 85,190,209,232, 94,148,242,136, 77, 46,145,176,242, 33,151, 2, 74, 50,129,207, 30,127, 41, 63,219, 31, 47,122,
-209,139, 95,249,202, 87,222,254,226, 23,111, 29, 63, 62, 92,149, 80,189,168,101, 95, 97, 52,218,229,203,151, 31,122,232,193, 63,
-253,211,255,251,232,163,143,126,102, 6,180,177,177,241,150,183,124,213,141, 55,222,228,238, 26, 2,102, 1,172,241, 55,203,233,
-224,215,135,195,134, 51, 51, 26,136,102, 50,249,192, 47,252,194, 31,255,241, 31,233,121, 43, 7,223,252,230, 55,191,242,149,119,
-122,113,199,121, 16, 75,159,102, 13,226,135, 65,244,113,253,225, 33,229,132, 99, 24, 86, 29,168,153,241,186,163, 79,191,239,223,
-255,252,163,143,157,253,228, 3,106, 94,252,146,151, 45, 22,109,149,199, 53, 30,132,125,114, 3, 30, 26, 77,142,124, 86,103, 11,
- 51, 77,155, 24, 2,154, 38, 53, 65,193,208, 4, 15,166,233,180, 51, 98,107,243, 74,104,240,194, 27, 63,241,134,159, 63,233,126,
-115,210,234,189,175,255,208,222, 94,188,246,128, 82,236,234, 32,134,164,102, 52, 26,106,105, 64,195,228, 53, 22, 79,109,157, 13,
- 65,183,156, 60, 61,105,210,145,141,221,198,212,152, 7, 34, 24,130,137,166,208,184, 25, 86,155,133, 5,172,109,204,141, 18, 27,
- 34,252,210,207,126,233, 71, 30,121,221, 79,254,212, 79, 61,242,240, 35,135, 7, 20, 83,186,246,234, 39,178,201, 44, 66, 97,157,
- 34,104, 58,105, 79, 28,189, 48,157,116, 47,186,249,241, 96,186,238,200,197, 73,240,181,149,197,100,226, 77, 80, 8, 52, 67,254,
-225,224,186,243,147,200, 98, 7, 25,113,144,210,193,215,125,237, 63,177, 48,251,137, 31,255,177, 39,158,120, 98, 44,161,248, 92,
-234,110,160, 19,132,209, 4, 39,141,193,226,108,210, 30, 93,223,126,241, 45, 15, 78, 39,241,134,173,179, 77,147, 2, 96, 0, 65,
- 37,120, 0, 41, 6,138,148,101, 91, 12,119, 0, 8,169,248,124,163, 98, 74,177,139, 32, 82,106,191,225, 27,255,217,116, 50,125,
-199, 59, 74, 60, 26, 94,125,239,189,197,114, 87,228,165, 8, 76, 24, 20,171,196,159, 56,190,113,241,212,214,179,215, 31, 63,251,
-194, 27, 30, 95, 91,217,181,148,224, 72, 52, 25, 65,184, 85, 61, 46,107,129, 99,173, 84, 43, 37, 44,124, 18,221, 78,159,191,241,
- 19,103,110,117,207,254, 66,201,211, 27, 94,255,198,211,167, 79,159, 63,127, 62,220,115,207,171, 75,214,153,255,228, 55,161,198,
-193,101, 60, 48,139,193,186, 83, 91,207,188,232,166, 71,143,174, 95,158, 78, 22,217, 30,168,100, 51, 5,189, 82,191, 16, 36, 1,
- 41, 49, 57,146, 35,185,148,152,132,243, 87,182, 46,110, 31,123,230,220,169,115,151, 79,244,129,118,126,218, 87,189,234,110, 51,
- 54, 57,250, 41, 83,237, 69,200,249, 76, 20, 1, 23, 65, 30,221,188,180, 50,105, 55,215, 46, 77,155,125,163,167,133, 0,113, 98,
- 38,152, 36,135, 11,202,193,101,163,152,104,164, 25, 72,145,176,232, 34, 58, 76, 8,220,255, 23, 47,121,246,194, 13,251,237,122,
- 74,201,204, 82,137,228,149, 17,167,191,245,197,127,187,113, 79,200,174, 63,231,250,121, 28, 78, 81,217, 34, 10,132, 48, 13, 7,
-235, 43,187, 43,211, 61,179, 5,201,152,161, 52,194, 12,150,127, 59,220,196,196, 24, 25,204,131,148,195, 48,128, 11,173,200,237,
-207, 30,187,107,190, 88,125,230,226, 77,123,243, 13, 22,151,170,154, 92,144, 53, 60,109,178,184,212,203, 60,139,136,130, 51,143,
-134,112,137,134,174,105, 22,242,228, 46, 51,165,148, 83, 12, 73, 76, 0,137, 96,136, 68, 67, 23,225,134, 72,116, 62,189,176,115,
- 34,122,243,241,199,238, 74,106,182,119,143, 58, 2,101,180, 36,102, 76,129,198,113, 70, 75, 74,141, 39, 87, 1,145,144,129, 39,
- 64, 40,177, 45, 80,174,192,225, 41, 42,117, 74,173, 84,140, 34,232, 50,115, 52, 70, 66, 9, 6,236,182,235,173,175, 92,186,178,
-245,196,153, 23, 38,159, 92,222,221,234, 13, 7, 73,208, 9, 49, 35, 11,148,193,220, 82, 73,222,129, 60,119, 77,146, 8,135,242,
- 10, 47, 33, 21,137, 18,226,231, 19, 89, 86, 79, 39, 18, 24,133,160, 1, 90,138,177, 1,241,244,217, 23,204,219,213,179,151,110,
-184,180,179, 69, 88,245, 41, 9,164, 21,155,110, 25,111,161,140, 76,160, 1,137,178, 60, 16,166,140, 61,176,129,187, 50, 16,151,
-131, 38, 48, 71, 77, 32,229,142, 12,213,201,219, 69,216,231,202,124,165,233, 18,141, 66,130, 12, 81, 19,239,194, 99, 79,191,184,
-243,233,217,139, 55,180,221,170, 96,128, 8,207, 32, 67,214,144,148, 49, 96,129,132, 18,105,137, 50,230, 48, 18, 9, 32, 83, 69,
-169,220,178,132,242, 28,145,112,215, 32, 29, 12, 23, 56,111,167, 14,109, 46,166,237,188,177,224,147,105,108,219,233,131, 79,188,
-220,213,156,189,116, 42,169, 73,113, 34,128,116,210, 72, 33,209, 12, 25,143, 41, 56, 20,208, 79,117,214, 16, 32,199, 4,213, 45,
-131, 52, 52, 89, 12,164,220, 11, 34,153,255,146, 4, 25,152, 77,155, 14, 22,179, 54, 54,251,235,171,139, 56,105,231,147,157,115,
-155, 93,156, 61,125,254, 70,201,186, 56, 43,120, 28, 93, 2, 41, 51, 3,228, 78, 34,201, 12,144,156,198, 36, 24, 1, 57, 72, 81,
-164,165,156, 47,200,100,158,191,203, 27, 73,128,103,241,102,113,176,106,143,224,134, 18, 17,207,219,134, 54, 57,119,105,171,139,
- 22, 83,179,187,191,225, 8,243,197,172,132, 74,114, 51,147,148,141, 65,114,103, 70,178, 0,131,231, 5,233, 4,225, 48, 72,102,
-132,144,165,227, 14,210, 41,203,107, 8,141,123,158, 64,185,203,140,238, 50, 51,185,231,167, 76,158,167, 0,238,130,235,226,246,
-241,139,219,199, 48, 40,189,114,242, 84, 84, 63,231,109,114, 18, 52,203,171, 67,146, 96,150,197, 98,130, 91,137,250, 9,119,208,
-250, 32, 84, 57,167,111, 84,133, 75,148,101,239,238,203,201,135,163,202, 73, 74,121, 58, 49, 88, 50,193, 29,245, 75,114, 86, 33,
- 21, 97, 11,114, 89,249,234, 28, 62,100,111, 84, 66, 9,168,228,172, 40,247, 7, 26,165, 4, 82, 61,234, 72,100,155,213,155,209,
-113, 54,147, 95,246,177,107, 54,255,238,110,101, 77, 9,178, 98,225, 64,129, 20, 97,229, 59,243,146, 5, 85,131, 98, 72, 57,198,
- 41, 3, 98, 25, 80,241,200,204,210, 44, 83,214, 63,125, 29,123, 47,216,241,149,154, 38,194, 29,200,174,102, 56, 43,190,133,130,
- 74, 84,151, 61,145,103,188, 81,148,156, 5,185, 45,177, 5, 63, 85,206,241,217,227,179,199, 95, 61,115, 29, 98,239, 73,179,182,
-186, 54,157, 78, 87, 86, 86, 39,147, 73,190, 24, 99, 55,159, 47, 22,139,249,222,222, 94,202, 17,201, 95,235,128, 38,147,201, 61,
-247,188,250,142, 87,188,226,182, 23,220, 22,154, 90,113, 20, 97, 37,248, 46, 41, 32,153, 23,230, 99,143, 61,118,255,199,255,252,
-195, 31,254,112, 91, 11, 60,159,177, 1,125,233,151,189,249,206, 59,239,156, 52, 19,245,184,113,205,164, 71, 9, 53,171, 99, 44,
- 25, 62,128, 16, 2,141,109,219,126,244, 35, 31,249,229, 95,254,165,191,210,128,154,166,185,243,206, 59,223,244,166, 47, 85,111,
-105,132,190,138,216,167,244,227, 12,127, 57,179, 95, 78,237, 73, 51,219,222,222,254,145, 31,254,161,189,189,189, 79,111, 64, 91,
- 91, 91,111,122,211,155,110,186,233, 22,176, 31,202, 85,233,253, 56,177, 31,253,126,206, 49,229,232, 20, 8, 77, 56,123,230,204,
-127,249,153,159,185,120,241,226,243, 26,208, 91,223,250,214,213,213,117,151, 47, 37, 98,135, 4, 88,234,132, 28,101,245,163, 9,
-203, 69,137, 82,219,180,101, 36,164,192, 53, 27,171,237,233,167, 62,252,190, 31,252,149, 79, 57, 32,155,206, 86, 98,140,238, 30,
- 61,142,112,253,242,227,185,124,225, 46, 87,146, 75, 42, 5,141,148, 95,186,114,137, 35,213,178, 98, 74,249, 83,201, 61,185,187,
-146,167,228, 41, 9,139,123,239, 62,249, 63,254,235,219, 54, 55,215, 62,197,114, 78, 41,245, 46,202,175, 57,163,117,106,144, 33,
-215, 94, 60, 14, 7, 67,227,211,105,219, 24, 38, 77, 52,195,180,233, 44,112, 26, 18,200,217, 52, 26,181,190, 58, 95, 95, 57,216,
- 88,219,191,229,212,179, 52,251,232,111,222,249,227, 63,125,246, 7,127,236,137,231,164, 15,188,246,243, 62,175,166,173, 37, 56,
- 28,126,164,171,214,225,216,209, 2, 98,176, 52, 9, 29,169,105,211, 5,243,166,137,193, 20, 66,108, 66,154, 78, 22, 77,147,214,
- 87,246,214,215,118, 55, 87,119, 79,110,158,157,134,118,182, 50,127,237,189,235, 92,251,251,191,255,251, 31,185,182,132,212, 87,
-207,135,149,181, 4,128, 92,195, 11, 11,130,142, 31,185,180,190,122,112,116,125,231,186, 99,151,154,224, 71,215,119,205,208,192,
-205, 24,130,140, 8, 19, 15,166, 73,136,147, 16,155,153,115,218, 10, 13, 32,122,123,219,173, 55,188,247,189,239,121,231, 59,223,
-125,173, 41,203,216,196,115, 32, 50, 89,111, 75, 86,189,100,139,184, 50, 61,216, 88,217, 62,186,121,249,196,209,179,211, 73, 58,
-190,126,197, 26, 76,160, 96,176, 80,128,152,156,215,150,236, 7, 70, 70,180,169,139,141, 43,146,211,127,243,158,247,124,207,187,
- 15,143,201, 84, 10, 83,159,244,200,117,190,250,174,173,163,231,110,220,122,250,198,173,167, 78, 93,119,250,248,250,249,153, 29,
- 76, 57, 23, 32,135,136, 68, 58, 40,163,140, 34, 19,232,164,131,121,113, 0, 14, 36, 41, 18,110,102,223,249, 93,239,188,106, 64,
-207, 53,158,130,192,104,128,217, 43, 62,114,234,216,233, 23,156,124,252,198,235,159,190,229,228,147,215, 31, 59,187, 58,221,155,
- 77, 14,144,156,201,221,152,211,101, 25, 17,202,185,147, 9, 76,137, 74,144, 18, 20,225,238,158, 32,223,220,216,252,250,111,248,
-198,165, 1,249,115, 28, 82, 46,197,200,229,240,188,216,125,214,236,175, 76,247,103,211,249,116,122,208,216,194,144, 98,162, 92,
-238,116, 49, 11,105,124, 36,135, 11, 73,200, 79, 29,165, 14,150,132,232, 74, 73, 41,121,242,116,251, 11,111,127,205,107,238, 27,
- 41,245,115,225,121,158,211,146,250,155,128,252,250, 99,103, 66, 19,111, 57,245,228,250,202, 62,129,212,194, 76,113, 98,129, 18,
- 13,228, 20,144, 59,130,229,187, 86, 52, 16, 18,208,194, 13, 9,161, 85,232, 98,104, 99, 48, 42, 87,180,190,226, 43,191,242,227,
- 31,255,243, 92,117,182, 49,124, 86, 17,180, 90,140,132,132, 98,193,243,149, 16,218, 73, 88,120,100, 74,148, 35,195, 66,238,112,
-103, 6,189, 92,144,152,215,173,251,240,163, 34, 42, 38,103, 76,148,187,202, 31,151,123,140,241, 91,222,254,173, 85, 66, 99, 70,
- 9,160,188,202,115,113, 69,176, 28,164, 11, 77,232, 38, 77,119,219, 13,127, 49,157,180, 43, 43,123, 57,173, 72,102, 36,130,195,
- 11,197,128,238,185,246,165, 84, 97,210,190,210,204,164, 46,134,179,219, 39,218,110,214, 37, 43, 5, 47,152,220,131,217,108, 54,
-187,239,190,215,254,209, 31,125,200,198,238,162, 40,183, 23, 23, 33, 87,207, 53, 1, 28,244, 92,201,141,157,185, 35, 57,139,119,
-144, 60,193,157,238,202,149, 68, 47,213, 90,197, 84,240, 60, 23, 28,140,145, 49,134, 24,131,138, 91, 42, 18, 74,238,114,253,131,
-175,248, 10,146, 77,133,168, 74,226,227, 37,129, 25, 1, 68,162,133,116,108,227,226,116,210,173,205,246, 38,147, 22,158,212, 58,
- 38,116,163,185,188,162, 26,116,128, 98,130, 68, 43, 80,148,211, 1, 87,162,165, 20,118, 15,214, 63,246,224,171,146, 55,109, 23,
-114, 21, 31, 48, 7,204, 61, 1,106,245,230, 47,255,242, 6,130,224,168, 73,111, 6,175, 0,170,242,139,178, 46, 17, 9,200,166,
-132, 34, 28,164, 23,132, 33, 87, 8,225, 96, 2,129, 8,152, 43, 4,122,198, 61, 92, 25,142,139, 98, 76, 60,104, 39, 41, 53,238,
- 2, 4, 7,232, 48, 10, 6, 73,240,251,238,123,109, 3,121,117, 25,172,169,100,245, 23,217,167,153,192,180, 50,219,159, 54,209,
-216, 25,163,164,148, 51,211, 4, 51,144, 68, 18,192, 4, 73, 12, 66,227, 66, 80,134, 88, 58, 52, 73,205,206,254,198,147,207,190,
-160,237,102,151,182,143, 58,130, 59, 65, 55,154, 4, 58,100, 10,238, 78, 75, 41, 53, 46,101,208,211,107,182, 93,240, 69, 17, 57,
- 67,119, 66,110, 22,205, 58,192,115, 93, 48,235,173, 5,184,128, 4, 4, 32,121,206,237,165,156,243,150, 0, 51,138, 9,152,183,
-147,203, 59,155,109,156,181,109, 3, 22, 68,222, 11,132, 72, 56,220,140,112, 58, 27, 1,116, 56,139,238, 64, 89, 39,144,223,143,
-194,165, 81, 64, 52,166,146, 72,139,146,104, 76, 9,102,117, 61, 26, 67, 33, 19, 42, 2, 38,236,118, 27,209, 39, 87,118,142, 93,
-222, 61,118,176, 88, 59,115,241,132,100, 25,184,224, 82,216, 0,154, 50, 76, 37,178, 41,152, 98, 30,151, 88,145,106,185,148,225,
- 90, 56, 36, 89,136,100, 89,119,116, 9,185, 72,174,148, 96, 70, 21,109,227,196, 61, 5,203,211,189,119,176,210,198,233,179, 23,
-174, 63,115,241, 84,244,233,206,254, 17,203,136, 97, 38,100,141,216,149, 46, 89, 85,154,166, 56, 46, 14,161, 6, 74, 53, 54, 95,
-201,236, 22,121,130,215,101,159, 28, 36, 61, 9,150, 81,191, 98,145,205,185, 31,167,164, 93,217, 63, 14,242,226,238,117, 93, 55,
-187,178,187, 49, 95, 76,162, 38,114,247, 26,132,231, 53, 1,150,159,130,226,153,185,123,227, 69,125,157,158,225,242,170, 58,117,
-214,202, 68, 66, 46, 42,149,233, 34, 51,220, 2,132, 76,146,162,146, 34,108,123,190, 9,183, 7, 62,241,210, 69,183,186,189,119,
-172, 75,179, 62,218,228,128,131, 28,154,179, 97, 45, 75,106, 32, 40, 43, 81,133,133, 51,110,141,188,238,153,203, 12,217,241,187,
-171, 64, 76, 82, 22,185,228, 52, 67, 20, 23,221,170, 20,182,119,215,221,155, 69, 59,233,146, 37, 7,228, 26, 96, 25,100,164,198,
-150,199, 97,168, 40,145,187,178,115,205,201, 79,157,161,172, 80,229, 78, 4, 92,114, 71, 76,141,209,157, 76,102,140, 3,132,233,
- 8,105, 30,218,184,250,212,217, 91,186, 52,121,252,153,151, 72,161,175,174, 25, 11,167,132, 68, 94,227, 20,189,100, 42,133,150,
- 83,148,217, 44,163, 90, 86, 6, 86, 32,115,212,177,246, 39,222, 43, 94,242, 44,213, 84, 29, 42, 28,236, 34,163,135,182, 11,109,
-215,116, 93,227, 9, 62, 68, 87,240, 10, 30,150, 20, 98,200,250, 84,210, 81, 13,215,242, 89, 83, 12,114,111, 20,170,134,149, 57,
-203, 39,142,131,118, 58, 73,150,156, 72, 33,192, 33,117,104,208,217,165,221,173,103,207,223,212,198,217,153, 75, 55, 0, 6,101,
-100,176,208, 84,160,161, 90, 82, 88, 74,125,230,224,189,144, 6,247, 78,247, 70, 2,251,209, 20,171,205, 76, 9,129, 21, 48, 63,
- 19,132,242,218,115, 21, 0, 81,160, 8,119,107, 83,104,213,164, 20, 64, 88,182, 27, 48, 65, 86, 22,173,101, 68,209, 74,117,201,
- 29,153,132,162, 28, 64, 51,219,234, 18, 91,176, 41, 64, 97,173,191, 17, 61,162, 58,130, 94,101, 7,243, 89,215,132,197,124, 50,
-153, 68, 78,220, 26,157,126,230,198, 75,187, 91,123, 7,235,151,247,142, 75,150,165,226,162,153,128,252, 53, 52, 1,200, 72, 98,
-169, 83, 8, 48, 20,108, 26,197,208,101,104, 50,211,116,100,133,170,147, 63, 49,210,155, 60,206, 30,128,118,167,187, 57,173,200,
- 41,162,141,205,124, 49,155,119,211,174,155,196, 24,170,182,148,180,106, 80, 22, 64, 37,178, 29, 49,248,176, 84, 75, 28,200, 49,
- 21,133, 5, 80,172, 91,134,207, 85, 42, 66, 5,173,118, 15,123,139,181, 73,236,218,174,145,116,246,210,245, 73,225,204,133,147,
- 87,246,142, 58, 38,133,187,233, 62,192,183,249,129,145,167, 65,185,162,224, 69, 95, 40,136,162,155,204,145, 45,116,149, 19,205,
-115,105,161, 47,220,229, 53, 56, 64, 49,142, 74,208,233, 98,128,171,139, 13,128,189,249, 90,219,205,246, 22,171,139,110,198, 90,
-247,203,163, 55,179, 92,166, 48,119,229, 18,128,104,230,101, 76,132,101, 8,154,164,155, 83, 86,236,114,161,106, 85, 9,149, 18,
- 80,177,136, 69, 72,165, 40,147,215, 43, 99,108, 20,236,233,115, 55, 5,243,157,189, 13, 87,104,187,105,246, 57,101, 17, 1, 44,
- 48,119, 14,117,104,244,140,161,103, 38,148,100,204,223,145, 11, 40,244, 10,170,203,229,134, 82,229,111, 84,220, 4,114,225,161,
-175,120,148,139,131, 49, 64,231,225,137,103,110,205,201,132,161,134, 7, 82, 79, 7,169, 92, 61, 24,242,210,133,229, 18, 65, 25,
- 83,153, 6,214,143, 20,207,153, 89, 6,217, 57,187,172,175,137,103, 86, 87,175,136,210, 48, 26,175,225,246,144,214,192, 7,128,
- 77, 35,251, 9,175,110,202, 7, 15, 5,229, 8, 20, 18,115,249, 26,114, 21,104, 99, 72,123,106,253, 5,153,173, 95, 77,106,191,
-202, 60,155,203, 98, 19,202,244,229, 53,234, 82,149, 95,173,137,214,199, 96,125, 42,148,194, 87, 78,177, 29,101, 40, 78, 9,197,
-166,245, 5,232,146,125, 65,146,245,143,146, 31, 50,187,214,234, 77,134, 60,180,207, 77,208,179, 45,135,122, 8,235, 51,148,240,
- 46,143,173, 60, 64,249,126,228,202, 37,203,215, 21,146, 66, 97,236,194,107, 59, 11, 77,125,108,145,139, 98,144,215,137,235,197,
-208, 87,134,178,210,244, 19, 52,146,101,249,108,127,162,124, 82,244, 97, 36, 45,176,210,235, 6, 0,136, 98,149,147,108,217, 9,
-142,109, 26,234,224,112, 24,134,184,106, 52, 88,134, 38, 85, 34,188, 58,139,121, 24,234,171,111,101, 26, 71, 67, 82,159, 50, 91,
- 22, 89,193, 14,203,148, 97,108,115,243,128,250, 44,178, 87,243,193,107,231,224,179,143,177,170, 14, 12,177, 67, 63, 81,101,241,
-140,240,102,244,106, 84,230,208, 70,232, 93,209, 71,119, 31, 97,124,234,149,186,183,126, 99,166, 99,173,151, 57, 7, 44,185, 40,
-120, 14, 13,133,156,198,169,215,154,161,102, 7,105, 25,179,251, 44,139,241,179,199,103,143,207, 30,127, 67,234,173,159,236, 22,
-228,198,230,230,145,205,205,245,245,141,163,199,142,110, 29,223, 58,122,236,216,209, 35, 71,214,214, 55,214,215, 87,167,211, 25,
- 43,147,105,196, 36, 28,138, 22, 49,198,131,131,253,237,157,237,157,157,221,179,103,207,236,238,236, 94,217,190,178,179,189,125,
-249,242,229,157,157,157,191,121, 2, 90, 91, 91,123,201, 75, 95,118,243,205, 55,159, 58,121,242,232,209, 99,107,235,107, 77,211,
- 64,215,226,208,142,234,179, 87, 21, 79,150, 79, 70, 28,181, 67,124,232, 24,227,254,222,254,149,237, 43,167, 79, 63,253,208,131,
- 15, 62,252,208, 67,241, 51, 84,249,254,140, 9,232,228,201,147,175,190,247,222,187,238,186,123, 54,155,170, 39,150, 60,159,251,
-170, 4,202, 35, 92,170,188,100, 37,147,229,232, 58,215,146,251, 98,233,184,160, 91,122, 57, 89,234,171,130,114, 87,215,147, 79,
- 62,241,219,191,245, 91, 15, 60,112,255, 40,110,254,255, 34,160,141,141,141, 83,167, 78,189,234, 85,119,191,228, 37, 47,181, 38,
- 24, 77,125, 97,120, 20, 27, 28,146, 17,175,169, 52,228,161, 18,242,232,229, 85, 28,250,171,127, 47,119,205,177,100, 57, 67, 37,
-186,175,197, 95,186,116,233,255,252,206,255,126,224,129, 7, 46, 92,184,240,215, 34,160,147, 39, 79,222,121,231,157,183,223,126,
-251,201, 83,167, 74,227,146,180, 44, 20,125,242,168,137, 99,131, 52,178, 52,227,235, 75,198, 7,215,160,245, 95,147, 12,240,169,
- 46,178,240,185,104, 22, 12,192,233,167, 31,253,200,135,255,224, 67, 31,250,179,182,251, 12,113, 80,222,245,174,119, 45,218,110,
- 32,114, 31,138,211,245,252,226,201, 37,133, 33,175,190,120,141,183, 29,162,109,124, 18, 85, 58, 68, 93, 88, 34,213, 86,157, 42,
-157,149,107, 43,251, 91, 71,174, 76, 38,233,224,160,251,165, 95,253,200,175,252,218, 31,255, 85, 5,244,246,111,253, 54,141,153,
-238,207,169, 47, 87, 89,158,113,105,122, 89, 46,163,139, 87,171,210,242, 34, 36, 72, 24, 43,237,152, 50, 86,112,180,252, 83,145,
-131, 81,134,194,118, 36, 21,130,122, 21,106, 66, 10,150,204, 72,106,125,229,224,196,177, 11,179,105, 36,152, 60,116,105,109,239,
-192,255,195,143,254,230, 31,254,241, 51,127, 57, 99,213, 20, 58,212,161,214,146,107, 85, 95,117,200, 98,169,112,154, 56,124,134,
-188,250,125, 42, 20,202, 30,215, 40,133,255, 66, 96, 68,104,226,116,210, 25, 5, 34, 80, 77, 19,131, 57, 65, 35,154, 38,133,144,
-202, 66, 50, 53,150,169,171, 8,196,100,210,101, 9,134,224,235,179,253,141,181,189,252,158,141,149,189, 83, 71,207,207,166, 45,
- 50,252, 76, 35,237,239,252,244,230, 65,119,195,207,126, 96,250, 67, 63,241,240,249,243, 23, 63, 61, 1,105,188, 57,193,115,180,
- 17,233,147,172, 44, 93,245,106,124, 81,215,188,138, 16, 98, 8, 41,131,170,147, 73, 92,153, 45,242,195, 7,211,108,178, 48, 2,
-132, 17,193, 60, 4,207,134, 39,208, 45, 40,131, 81, 52, 53,150, 26, 19, 32, 11, 90,155, 30, 76,195,194,232, 36, 38, 54, 39, 91,
-176, 19, 67, 41,191,137, 64,100,180,215,221,119,251,230,117, 95,114,230,124,122,255, 47,252,252,195, 15, 63,252,188, 53,104,153,
-238,193, 81,122,123,237, 11,117,161,148,166,134,220, 69, 64, 1, 21, 29,100,253,215,113,129,187,255, 8, 48,157,180,215,109, 94,
-216,220,216, 11,150,140, 58,186,177,125,221,209,139, 77, 19,131,161,177,184,190,118, 48,177,206, 8, 26,140, 40,125, 43,203, 63,
- 0, 66, 63, 96, 67,174, 91,100,232,141,185,168, 89,128, 85,162, 3, 68,209, 12, 1,222, 18,237,145,141,213,111,252,134,175, 77,
-194,127,250,169,159,121,228,145,135,159,151, 6, 93,165, 41,207,145,240, 95,131,165,147, 91, 61,180,180,172,134,122,237,184, 74,
- 8, 50,102,163,106,214, 77,154,182,177,121, 99, 10,150, 26,107,205, 34,145, 32, 26, 19,114, 17, 62,228, 77, 36, 96,133,157, 92,
-154,157, 32, 24,203,164, 89,207,128, 7,232,181,198, 37,106, 82,192,226, 33,152,146, 67,209, 61,165,220, 49,239, 9, 8,255,244,
- 27,190,126,127,111,255, 3,239,127,255, 3, 15,220,255, 73, 5, 52,248,171, 67, 79,121, 85,248,123, 85,227, 89,207, 70,206,165,
-184,210,169,207, 81, 69,142,101,149,109,174,108,223,124,226,244,218,108, 95,228,108,210,158, 56,126,225,200,198, 54, 5, 26, 2,
- 20,232,217, 78, 91,128, 81, 20, 24, 69, 66, 13, 20,138,108, 50,170,198, 92,211, 45, 56,113, 97, 35,249,208, 25, 3, 16,150, 10,
-106,101, 25, 8, 76,185, 0, 22,137, 88,200, 56,160,224, 41,249,202,202,202,215,124,205,215,158,126,230,244,127,255,111, 63,247,
- 92, 49, 84,248,220,215,188, 70, 24, 67, 71,122, 14,155,179,244, 79, 61, 25, 77,207, 29,143,247, 36, 54, 66,211,233,252,216,198,
-229,217,244,192, 44, 77,154,184,185,182,179, 50,157,195,100,230,141, 37, 74,165,219, 5,165,207, 2,130, 81, 8,165,181,133, 86,
-156,159,245,123,165,112, 28, 96,149,106,109, 63,155,153, 6, 83,154,129, 37, 0, 41,133,115,151, 79,156,189,116,170, 77, 77, 38,
-180,184, 44, 3,216,155,155, 71,190,240,139,190,104, 99,125,243,193, 7, 31,184,134, 6,121,173,249, 60,143,136,155, 35,157, 46,
-181,184,225,100,120,149, 27, 23,180,177,186,187,177,186, 27,204, 73, 63,182,177,125,211,201,167,143,172,237,228, 27, 77, 67,244,
-232,217,184, 36, 3, 67,105, 46,204, 13, 39,129, 32,161,192, 80,138, 1, 67,121,160,122,202, 97, 14,250, 18,248,224,103,218,242,
- 56,201, 40,154,216, 80,104,101,209,217, 69,235,186, 80, 36,108,185,183,156,201,147,203,239,187,239,190,215,190,246,181, 63,250,
-163, 63,252,236,179,207, 46,105,208,189,247,222,251,124,147,145,165,117,147,109,116, 53,238, 99,155, 92,106,126,190, 50, 61, 88,
-157,237, 55, 33,134,144, 86,103,251, 39,142,158, 95,153,206, 73, 5,115,203,196,137,106,177,124,136,179,115, 69, 47,135,199, 53,
- 82,174,177,226, 33,186, 98,223,124, 57, 6,159, 5, 40,229, 33, 64,153,140, 7, 0,232,226,228,220,165,235,159,185,112, 67, 27,
-167,227,112, 88,203,254,245,243, 63,239,117,171,107,107,121, 83,157,162, 65,207,165, 61,189, 65, 42, 15, 94, 77, 11,106,173, 86,
-189, 49,214, 56, 67, 83,142,104,204,226,250,234,206,201, 99,103, 38,147,142,208,234,236,128,140,146, 7,203,136, 60,243,174, 55,
-185, 18,158, 43,172,133,215,208,119,172, 64, 18, 83,190,154, 75, 92,227,248,225,234, 64,182,206, 86, 33,147,128, 93, 12,251,139,
-181, 46,206,204,212,198,201,206,193,106,242,218, 91, 4,244,109, 49,169, 82,135, 29,144,233, 11, 94,247, 5,215,159,184,254, 23,
-127,241,253, 25,108, 9,247,220,243,234,107,144, 21,235,111,149,250, 35, 6,208, 95,172,253,211, 42,118,157,245,146,104,116,154,
- 19,106, 66,220, 58,114,241,250,227,231,214,215,246, 86,166,139,217,116, 62,181,150, 33, 23,128, 12,163,248, 91,189, 37, 95, 10,
-200, 75,190, 95, 48,129,122,177,148, 65, 36, 87,173,139,151, 26,132, 4,150,218, 68,130, 4, 39,187,212, 28, 28,172,206,227, 52,
-198,102,209, 78, 47, 93, 57,126,225,202, 86,114, 43,228,136,222, 94,212, 2, 10,107,121,228,196,137, 19,119,221,117,215,253,247,
-223, 63,159,207,195, 61,247,188,250,208,106,210, 82, 82, 62,120, 8,214, 13, 16,106, 10,149,175,100,161,229, 86,172, 52,155,182,
-211, 73, 59, 9,113, 58,105,143,109, 92, 57,182,113,169,105, 58,163, 2, 83, 8,201,114, 35, 95, 41, 26,114,144, 57,176, 36, 38,
- 13, 75,167, 80,116, 84, 93,184, 10,235, 68, 85,129,251, 10,183, 82,158, 84, 58,205, 65, 23,231,221,236,220,229,235, 46, 92,222,
-218,222, 63,178,189,183,121,113,231,248,238,254,102, 74, 65,203,145,138, 48, 30, 70, 97, 2,172,174,174,126,222,231,127,254,199,
- 62,250,209, 6,135,189,119, 14,247,202,134, 68,197,254,130,116, 8,165, 58, 58, 10,129, 10, 75, 37,155,209, 0,159, 77,247,103,
-147,150,192, 36,116, 43,147,189, 73,179,152, 88, 7,194, 76,136,222, 83,108, 20,152, 3,188,188, 17, 93, 94,169,181,219,174,120,
-116,137,116, 88,112,137, 86,170,135,185,109,183,199, 66,234,188,122,102,109,230, 94, 61,211,130,105, 98,148,246,231,179,211,231,
- 79,157,189,120,131, 68,201, 14,186, 89, 23,173, 84,206,200, 94, 30,165, 15,173,246, 76, 59, 5, 50,239,134,242,205,223,252,246,
- 70, 46, 45,101,157, 85, 52,172,237,140, 14,193,243,150, 63,200, 12,167, 44, 69,121,110,202, 44, 91,118,201, 36, 55, 36, 99, 52,
-136,140, 64, 97,228,231,122,162,135,106,191,115,151,163,143, 93, 53, 9, 48,137, 4,141,162, 92, 12,153,167, 37, 6, 67, 38,243,
-160,210,182,250,120,154,189, 81, 76,153,141,192,216, 78, 14, 22, 43, 73, 1,192,238,193,198,124, 62,105,187, 32, 80,178,148, 66,
-174,176,177,164,132,131,210, 14,221,160, 99, 73, 9, 22,172,209, 40,151,207,202,210,191, 35,219,177,190,220, 59,182,218,234, 41,
- 14,181,222, 75,136,230,147,176, 88,157,238,129,152,132, 56,157,204,131,117, 22, 98,105,181, 78, 46, 99,173,112,103,174, 57, 0,
- 40,149, 7,206, 45,147, 38,207,105, 39,106,159,178, 27, 72, 26, 20,178,229,224, 8,110,132, 0, 70, 52,209, 67,182, 7,151,118,
-143, 63,117,246,150,131,249, 42,192, 54, 78, 47, 92,185,110,127,190,177,132,179,176,246,159,171,239,197,206, 46, 18, 28,247,104,
-103, 34,105, 66,211,211, 0, 56, 54,130, 40,253, 16,163,182, 61, 42,115, 70,157, 94, 22, 98, 85,169,236,211, 74, 23,170, 56,112,
-173,115, 57, 54,191,207, 37,120,170,177, 20, 15,109,146, 80,220, 34, 89,182,134, 43, 36,159, 28, 25,169,132,136, 3,233, 46, 87,
-169,235,230, 10, 93,154,116,105, 82,250,128, 23,211,249,162, 89,116, 13,129, 54,154, 11,181,127, 25, 16,113,141, 28,115,148, 60,
-176,152,220, 76,187, 0,233,134,102,160,185,176,134,199,165, 35, 89,125,134,161,108,141, 7,190, 94,175, 83,197,100,176, 58,151,
- 16, 58, 90, 12,230,102, 94,235,222, 94,156,132, 23,160, 35,147,188,122, 22, 1, 71,109,201,227,112, 49,139,201, 10,135, 15, 94,
-100, 39,144, 93,154,236,204,143,116,113, 34, 48,166,201,249,203,215, 95,184,114, 93, 74, 13,192,182,155,238, 47,214,146, 55,172,
- 11,250, 57,240, 8, 93,163, 47,165,108,209, 40, 84,133, 50, 48,107, 16,242, 38,114,101,231,129, 44,146,165, 59,140,224, 34, 22,
-229, 31,217,240,234,130, 60,215,196, 11,197, 50,199,251,169, 6,234,230,101,195,131,108, 0,232,125,131,105,222, 55,168, 54,254,
-143, 36, 37,140, 66,103, 14,111,201, 16, 0, 0, 7,126, 73, 68, 65, 84,179,210,210, 78,116, 30, 22, 93,232, 98, 3,177, 75,205,
- 98, 17, 22,109,147,188,129,216,121,232,162,245,150,129, 84, 38, 7, 12, 51,125,245,127,185, 80, 95,247,216,203, 45,184, 57, 74,
-146,167, 6, 25,147, 47,114, 99,191, 55, 92,181,100, 78,229,154,127, 79,137, 5, 51, 59,119, 4, 34,102,237, 40,122,146,121,188,
-148,146,208, 41, 43, 16, 43,239,187, 64, 20,157,242, 46, 20, 2, 97, 98, 83, 54, 65, 67,202,137,164,114,184,180,159, 86, 59,159,
-230,221, 13,118, 14,142,156,187,116,125,219,173,208, 20,227,100,239, 96,163,141,179,186, 45, 98,112,133,202, 57, 15,153, 91,120,
- 77,240,225,154,248,213,144, 30,244, 73,205, 40,163,105,138, 57,247, 74,177, 7, 7, 46, 78,150, 87,191, 95, 4,138,171, 31, 1,
-130,245,202, 40,150,205,174,220, 84, 50,198,164, 18,132, 19,189,238, 22,146, 93,245,150, 84, 38,196,231,111,139, 53,177, 16, 99,
- 98,140, 33,147, 78,219, 69,115, 48,159, 45,186,153, 64,247,176, 55, 95,137,105,122, 21,208, 91, 40,107, 82,255,188, 68,191, 15,
- 71, 49, 67,229,207, 82,245,106,180, 12,150, 48,155, 16, 26,120, 54,187,172,168,151, 19, 80,161, 42,215, 6,114,170,103,122,107,
-128, 78, 11, 79,174,216, 78, 65, 80,114,166,196, 76,242,140, 98, 26, 21, 4,205, 51, 77,188, 56,248,222, 7, 73,244, 24, 16, 72,
-215, 34,206,182,247,142,117,113, 10, 32,121,115,121,231,248,238,124,195,189,201, 47, 23,221, 76, 10,217, 48, 39,239, 55,126, 29,
-131,184,134,222,133,179, 24, 10,179,190,147,161,238, 60,233,149,233,154,233,216, 80,221,154,210, 6,187,146,149, 40,165,226,230,
- 57,222,162,230, 80, 13,172, 54,218,140,240,211,209, 46,141,245,175,158,186,230, 66,144,195, 84,188, 88,141,174,146,171,150, 2,
-107,251,124, 30,131, 81, 78, 68,128, 33,201,246,231,171,243,118, 6, 49,250,244,210,238,145, 43,187,199, 37,187, 86,157, 40,235,
-136,106, 20, 87,152,239,121, 71,164,158,118,132, 66, 90,172,251,230,100,169,161,144,212,115,142,212,135, 67,121, 83,182,129, 5,
- 85,224, 14,244,105,178,107,112, 93, 61,117,170,127,123,225, 43, 14, 87,234,215,170,210,145,221,145, 82, 72, 41,120, 50,137, 41,
- 5, 12, 35, 40, 91, 56,228,237, 61, 28,161, 95,186, 7,251,107, 59, 7, 71,220, 3,169,182,157, 93,220,185,110,222,174,128,148,
-236, 96,190,234,222, 79,222,120, 11,183,236,148, 75, 44, 80,218, 50,138, 96,150,252, 86, 33, 20,215,166,130,154,218,213, 61, 28,
- 14,225, 16, 99, 24,176, 26,220,166,132, 3, 78, 31, 44, 11,234, 22,119,227,207,121,229,117, 15,189, 13,142,165,109, 85, 37,122,
- 98,151, 66,222,231, 32, 37, 75,202, 49,110,222, 50, 83, 86,186, 46,144,148,187,107, 32,218,238,124,253,220,165,235, 98,156,192,
-176, 88,172,108,239, 31, 93,180, 43,163, 90,152,138,207,173, 58,128, 26,221, 13,233,127, 1,196,251,206,147, 66,231,237,119,125,
-240, 28, 57,136,222, 75,179, 20,100,106,103,196,115,148,211, 9, 52,181,178,188,108,220, 85,147,120, 12, 97, 96, 79,146,204, 61,
- 84, 67, 70, 89,183, 73,113,169, 75, 22,218, 64,163, 11, 93, 12, 49, 6,203,253,105,102, 65, 73, 38, 23, 82,178,253,118, 53,249,
- 68,176,148,108,103,119,125,255, 96, 37,166,169,136,148, 38, 41, 89, 69,105, 92,232, 19,250,146,175,147,160,198, 51, 85, 56,227,
-172,190,186,228, 10,204,140,226, 10, 47,149,198,139, 28,251, 82,100,229, 25,147,142,220, 28,210,167,201,236,187,158, 42, 21,120,
- 20,251,212, 20,107,160, 20,228,109,170, 6, 61, 25,154, 96,250, 37,215, 15,221,157, 93,156,228,173, 83,166, 19,107,187, 73,236,
-154,172,169, 22, 28,193, 13, 98, 64,140,205,153, 75,167, 46,110, 31,151, 12,178,253,118,117,239, 96,195, 61,140, 80,246, 98,227,
- 74,183,134,247, 59, 0,215,111,103,101,192,214,245,212, 95,207, 13, 96, 53,142,203, 94, 39,135,157, 37,254,170, 27, 19,144, 61,
-231, 85, 28,161,236,125,119, 33, 33, 33, 59,136, 30,114,238,151,213, 50, 79,186,218,176,250,154,133,158,175,165,194,129, 0, 33,
- 57,187, 24, 72,116,157,197,100,209,141,209,114, 89,193,211,196, 76, 0,230,221,180,235, 66,138, 37,120, 73,201, 52, 20, 12,122,
- 30,248, 16, 55,140, 59,126,122, 49, 21,207, 51, 24,155,234, 47,122,143, 53,164, 4, 69,113, 48,222,240,196,235, 30,161,234,193,
- 98, 14,177,126, 6, 75,201,190,170, 49, 44,240,186, 81,202,240,146,133,111, 42,178,111,167,170, 11,172,154,191, 60,131,201,121,
-176, 88, 89,132, 41,169,198,226, 70,187,186,232,166,128, 92, 54,111, 87,182,119,143,100,255,221,197,230,242,238,214,222,124,195,
-243, 94,248,133,129, 32,176, 80,217,251,201, 89,218, 9,134,163,166,164, 44,114, 26,139, 97,100,239,172, 42,188,166,220,188,213,
-199,134, 94,204, 87,221, 7, 44,231,162,217,242, 14,230,108,104, 11,233, 93,116,131,254,125,125,178, 90, 3,156,129,248, 92,109,
-129,247,189, 82,195, 36,123,239, 21, 51, 5, 89,117,155,235,152,172,237, 26,185, 92,161,139, 77, 23,155,148, 76,100,242, 38, 57,
-221,139, 87,206,125, 16,101,207,169,161,189,102,153,235, 95, 10, 73, 5,138, 45,173, 10,165, 63,104,137,159,156, 21,176,247, 82,
- 5, 0, 43,102,168,210,155, 80, 50,224,226,172, 52, 50,221, 61, 68, 90,195,205, 38,119,245,212,205, 87,189,119,225,149,203,221,
-219,174,234,197, 42,130,226,131,255,239,251, 85, 20,147, 33, 25,136, 14,205,211,103,111,124,246,252,169,130,154,203,114, 99, 40,
- 4,135, 85,247, 60,254,142,195, 18,233,215,126,223, 21, 85,165,211,111,196,230,253,125, 10, 11,187,223,160,173, 60, 93, 54,210,
-217, 10,247,160, 4,164,220,253,195, 26, 6,148, 94, 74, 56,100,163,244,140, 4,212, 44,141,173,194, 65,114, 31,216, 96,181, 51,
-161, 14,189, 54,118, 93, 21, 41, 29, 98,187,184, 55,135,216,114,203, 4,153,186, 60, 70,166, 62, 55,233,244, 55, 28, 85,123,250,
-150,177,170,221, 40,221, 41,213, 60,179,246,125,169,174, 78,175,106,103,125,254,193,222, 69,201,170, 49,174, 70,200,115,199,247,
- 32,157,108,231,155,190,205,130, 21,245, 40, 0, 69,205,102,252,240,174, 80, 25,180, 41, 12,246,222, 6, 93, 61,243,203,123,166,
-176, 87,230, 67, 6, 62,175,219,156,124,140,164,163, 94, 97,115,199,197, 82, 51,164,188, 90,160,126,214,150,235,188,213,153,229,
- 22,155, 10,229,104, 8,166, 41, 91,102,252,131,148, 3,166, 65,134, 36,164,166,239, 47, 27,218, 66,106, 11,142,234, 86, 95,249,
-210,178,117,168,150,105, 20, 95,143,115,129,195,178, 25,245,140,245,129,185, 70,219, 86, 14,126,187,239,162, 67,209, 6, 91,142,
-160,189, 50, 31, 71,134,178, 71, 30, 10,153,118, 8,103, 80, 91,159, 43, 8, 88, 90, 47, 61,255,111, 13,198,153,169,242,255,190,
-161,223, 68,160,108,104,230,131, 20, 11, 17,166, 90,152,113, 39,137,143,116,164,111, 1, 26,154, 93,198,146, 88,214,156,220,231,
-225, 61,213,242,144, 64,235, 59,198, 77, 41, 61,146, 94,227,197,250,217,254, 67,242,218,190, 51,244,117,214,116,106,212,142, 50,
-166, 99,104,100, 84,133,220, 88, 93,187, 86,250, 29, 84, 52, 42,185,213, 16,194,106,119, 84, 95,130,214,168,209,102,220, 97,179,
-212,233,115,213, 75,141,187,112,198, 59,112, 92, 85,222, 27, 90,118, 48,106,174,170, 86, 86,163, 37, 56, 52,241,228,105, 25,192,
-244, 62,178,198,232,205, 42,157, 70, 94,125,241,168,187, 69, 61,208, 83,247,226, 97,223, 69,163,178, 36,189,175,236,140, 90,107,
-213,168,134,103, 28,250,188,170,118,140,242, 96,114,200,197, 70,113,208, 82,235, 15,175, 98, 41,142,229,178,156, 36, 99, 20,236,
-160,138,134,203,109,124, 53,196,169,171, 73,125, 29, 62, 55, 90,142,118,102, 40, 11,175, 34, 47,242, 26, 50,122,238,237, 45,254,
-203,135,116,169,120,172,146,197,149,221, 91,221,202, 69,246,152, 89, 51,124, 43, 75, 96, 82, 65,246,161, 30, 50,242, 98,195,147,
-244,162, 57,148,236, 95,181,202,176,156,208, 14,150,104,108,243, 70,149,127,142,235,202, 94,173, 16,150,182, 25, 2,135, 62,246,
-161,229,137, 86, 21,139,125, 71, 99,222,102,164,199,141, 80,218,205,151,222, 83,195,159,108,152,122, 72, 58,111, 58, 94,191,211,
-107, 91, 86, 62, 93,170,126,247,201, 79, 79,182, 58,100,149,251,142,178,241, 71,134,125,186, 71, 31, 25,127,170,202,183,220, 64,
- 90,166, 58, 74,213, 30,121,223, 40, 60, 44,175, 90,129, 30,122,207,107, 5,161,194,158, 53, 50, 28,154,137, 11,216,126,104, 43,
- 48,245, 27, 42,114,153,217, 43,201,253,255, 1,198,119,120,131, 48,187, 25,202, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
diff --git a/source/blender/editors/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c
index 6d113cbb924..3b26c46a410 100644
--- a/source/blender/editors/gpencil/drawgpencil.c
+++ b/source/blender/editors/gpencil/drawgpencil.c
@@ -149,7 +149,8 @@ static void gp_draw_stroke_buffer(tGPspoint *points, int totpoints, short thickn
/* ----- Existing Strokes Drawing (3D and Point) ------ */
/* draw a given stroke - just a single dot (only one point) */
-static void gp_draw_stroke_point(bGPDspoint *points, short thickness, short dflag, short sflag, int offsx, int offsy, int winx, int winy)
+static void gp_draw_stroke_point(bGPDspoint *points, short thickness, short dflag, short sflag,
+ int offsx, int offsy, int winx, int winy)
{
/* draw point */
if (sflag & GP_STROKE_3DSPACE) {
@@ -177,8 +178,8 @@ static void gp_draw_stroke_point(bGPDspoint *points, short thickness, short dfla
/* if thickness is less than GP_DRAWTHICKNESS_SPECIAL, simple dot looks ok
* - also mandatory in if Image Editor 'image-based' dot
*/
- if ( (thickness < GP_DRAWTHICKNESS_SPECIAL) ||
- ((dflag & GP_DRAWDATA_IEDITHACK) && (sflag & GP_STROKE_2DSPACE)) )
+ if ((thickness < GP_DRAWTHICKNESS_SPECIAL) ||
+ ((dflag & GP_DRAWDATA_IEDITHACK) && (sflag & GP_STROKE_2DSPACE)))
{
glBegin(GL_POINTS);
glVertex2fv(co);
@@ -253,8 +254,8 @@ static void gp_draw_stroke(bGPDspoint *points, int totpoints, short thickness_s,
/* if thickness is less than GP_DRAWTHICKNESS_SPECIAL, 'smooth' opengl lines look better
* - 'smooth' opengl lines are also required if Image Editor 'image-based' stroke
*/
- if ( (thickness < GP_DRAWTHICKNESS_SPECIAL) ||
- ((dflag & GP_DRAWDATA_IEDITHACK) && (dflag & GP_DRAWDATA_ONLYV2D)) )
+ if ((thickness < GP_DRAWTHICKNESS_SPECIAL) ||
+ ((dflag & GP_DRAWDATA_IEDITHACK) && (dflag & GP_DRAWDATA_ONLYV2D)))
{
bGPDspoint *pt;
int i;
@@ -508,7 +509,8 @@ static void gp_draw_strokes(bGPDframe *gpf, int offsx, int offsy, int winx, int
glDepthMask(0);
glEnable(GL_DEPTH_TEST);
- /* first arg is normally rv3d->dist, but this isn't available here and seems to work quite well without */
+ /* first arg is normally rv3d->dist, but this isn't
+ * available here and seems to work quite well without */
bglPolygonOffset(1.0f, 1.0f);
#if 0
glEnable(GL_POLYGON_OFFSET_LINE);
@@ -579,7 +581,8 @@ static void gp_draw_data(bGPdata *gpd, int offsx, int offsy, int winx, int winy,
/* draw 'onionskins' (frame left + right) */
if (gpl->flag & GP_LAYER_ONIONSKIN) {
- /* drawing method - only immediately surrounding (gstep = 0), or within a frame range on either side (gstep > 0)*/
+ /* drawing method - only immediately surrounding (gstep = 0),
+ * or within a frame range on either side (gstep > 0)*/
if (gpl->gstep) {
bGPDframe *gf;
float fac;
@@ -640,7 +643,8 @@ static void gp_draw_data(bGPdata *gpd, int offsx, int offsy, int winx, int winy,
if (ED_gpencil_session_active() && (gpl->flag & GP_LAYER_ACTIVE) &&
(gpf->flag & GP_FRAME_PAINT))
{
- /* Buffer stroke needs to be drawn with a different linestyle to help differentiate them from normal strokes. */
+ /* Buffer stroke needs to be drawn with a different linestyle
+ * to help differentiate them from normal strokes. */
gp_draw_stroke_buffer(gpd->sbuffer, gpd->sbuffer_size, lthick, dflag, gpd->sbuffer_sflag);
}
}
@@ -683,7 +687,7 @@ void draw_gpencil_2dimage(const bContext *C)
{
/* just draw using standard scaling (settings here are currently ignored anyways) */
- // FIXME: the opengl poly-strokes don't draw at right thickness when done this way, so disabled
+ /* FIXME: the opengl poly-strokes don't draw at right thickness when done this way, so disabled */
offsx = 0;
offsy = 0;
sizex = ar->winx;
@@ -724,8 +728,8 @@ void draw_gpencil_2dimage(const bContext *C)
}
/* draw grease-pencil sketches to specified 2d-view assuming that matrices are already set correctly
- * Note: this gets called twice - first time with onlyv2d=1 to draw 'canvas' strokes, second time with onlyv2d=0 for screen-aligned strokes
- */
+ * Note: this gets called twice - first time with onlyv2d=1 to draw 'canvas' strokes,
+ * second time with onlyv2d=0 for screen-aligned strokes */
void draw_gpencil_view2d(const bContext *C, short onlyv2d)
{
ScrArea *sa = CTX_wm_area(C);
@@ -740,7 +744,7 @@ void draw_gpencil_view2d(const bContext *C, short onlyv2d)
if (gpd == NULL) return;
/* special hack for Image Editor */
- // FIXME: the opengl poly-strokes don't draw at right thickness when done this way, so disabled
+ /* FIXME: the opengl poly-strokes don't draw at right thickness when done this way, so disabled */
if (ELEM(sa->spacetype, SPACE_IMAGE, SPACE_CLIP))
dflag |= GP_DRAWDATA_IEDITHACK;
@@ -750,15 +754,14 @@ void draw_gpencil_view2d(const bContext *C, short onlyv2d)
}
/* draw grease-pencil sketches to specified 3d-view assuming that matrices are already set correctly
- * Note: this gets called twice - first time with only3d=1 to draw 3d-strokes, second time with only3d=0 for screen-aligned strokes
- */
-
+ * Note: this gets called twice - first time with only3d=1 to draw 3d-strokes,
+ * second time with only3d=0 for screen-aligned strokes */
void draw_gpencil_view3d(Scene *scene, View3D *v3d, ARegion *ar, short only3d)
{
bGPdata *gpd;
int dflag = 0;
- rcti rect;
RegionView3D *rv3d = ar->regiondata;
+ int offsx, offsy, winx, winy;
/* check that we have grease-pencil stuff to draw */
gpd = gpencil_data_get_active_v3d(scene); // XXX
@@ -769,19 +772,23 @@ void draw_gpencil_view3d(Scene *scene, View3D *v3d, ARegion *ar, short only3d)
if ((rv3d->persp == RV3D_CAMOB) && !(G.f & G_RENDER_OGL)) {
rctf rectf;
ED_view3d_calc_camera_border(scene, ar, v3d, rv3d, &rectf, TRUE); /* no shift */
- BLI_copy_rcti_rctf(&rect, &rectf);
+
+ offsx = floorf(rectf.xmin + 0.5f);
+ offsy = floorf(rectf.ymin + 0.5f);
+ winx = floorf((rectf.xmax - rectf.xmin) + 0.5f);
+ winy = floorf((rectf.ymax - rectf.ymin) + 0.5f);
}
else {
- rect.xmin = 0;
- rect.ymin = 0;
- rect.xmax = ar->winx;
- rect.ymax = ar->winy;
+ offsx = 0;
+ offsy = 0;
+ winx = ar->winx;
+ winy = ar->winy;
}
/* draw it! */
if (only3d) dflag |= (GP_DRAWDATA_ONLY3D | GP_DRAWDATA_NOSTATUS);
- gp_draw_data(gpd, rect.xmin, rect.ymin, rect.xmax, rect.ymax, CFRA, dflag);
+ gp_draw_data(gpd, offsx, offsy, winx, winy, CFRA, dflag);
}
/* ************************************************** */
diff --git a/source/blender/editors/gpencil/gpencil_buttons.c b/source/blender/editors/gpencil/gpencil_buttons.c
index d90ec02b0c1..8a3c996a481 100644
--- a/source/blender/editors/gpencil/gpencil_buttons.c
+++ b/source/blender/editors/gpencil/gpencil_buttons.c
@@ -75,17 +75,15 @@ static void gp_ui_activelayer_cb(bContext *C, void *gpd, void *gpl)
/* make sure the layer we want to remove is the active one */
gpencil_layer_setactive(gpd, gpl);
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); /* XXX please work! */
+ WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
}
/* delete 'active' layer */
static void gp_ui_dellayer_cb(bContext *C, void *gpd, void *gpl)
{
- /* make sure the layer we want to remove is the active one */
- gpencil_layer_setactive(gpd, gpl);
- gpencil_layer_delactive(gpd);
+ gpencil_layer_delete((bGPdata *)gpd, (bGPDlayer *)gpl);
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); /* XXX please work! */
+ WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
}
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index 3f53f0403d7..46df8ba5fac 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -93,8 +93,8 @@ bGPdata **gpencil_data_get_pointers(const bContext *C, PointerRNA *ptr)
{
Object *ob = CTX_data_active_object(C);
- // TODO: we can include other data-types such as bones later if need be...
-
+ /* TODO: we can include other data-types such as bones later if need be... */
+
/* just in case no active object */
if (ob) {
/* for now, as long as there's an object, default to using that in 3D-View */
@@ -126,18 +126,18 @@ bGPdata **gpencil_data_get_pointers(const bContext *C, PointerRNA *ptr)
SpaceSeq *sseq = (SpaceSeq *)CTX_wm_space_data(C);
/* for now, Grease Pencil data is associated with the space (actually preview region only) */
- // XXX our convention for everything else is to link to data though...
+ /* XXX our convention for everything else is to link to data though... */
if (ptr) RNA_pointer_create(screen_id, &RNA_SpaceSequenceEditor, sseq, ptr);
return &sseq->gpd;
}
break;
-
+
case SPACE_IMAGE: /* Image/UV Editor */
{
SpaceImage *sima = (SpaceImage *)CTX_wm_space_data(C);
-
+
/* for now, Grease Pencil data is associated with the space... */
- // XXX our convention for everything else is to link to data though...
+ /* XXX our convention for everything else is to link to data though... */
if (ptr) RNA_pointer_create(screen_id, &RNA_SpaceImageEditor, sima, ptr);
return &sima->gpd;
}
@@ -224,7 +224,7 @@ static int gp_data_add_exec(bContext *C, wmOperator *op)
}
/* notifiers */
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); // XXX need a nicer one that will work
+ WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -272,7 +272,7 @@ static int gp_data_unlink_exec(bContext *C, wmOperator *op)
}
/* notifiers */
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); // XXX need a nicer one that will work
+ WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -306,10 +306,10 @@ static int gp_layer_add_exec(bContext *C, wmOperator *op)
*gpd_ptr = gpencil_data_addnew("GPencil");
/* add new layer now */
- gpencil_layer_addnew(*gpd_ptr);
+ gpencil_layer_addnew(*gpd_ptr, "GP_Layer", 1);
/* notifiers */
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); // XXX please work!
+ WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -360,7 +360,7 @@ static int gp_actframe_delete_exec(bContext *C, wmOperator *op)
gpencil_layer_delframe(gpl, gpf);
/* notifiers */
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); // XXX please work!
+ WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
@@ -422,8 +422,8 @@ static void gp_strokepoint_convertcoords(bContext *C, bGPDstroke *gps, bGPDspoin
}
else {
if (subrect) {
- mvalf[0] = (((float)pt->x / 100.0f) * (subrect->xmax - subrect->xmin)) + subrect->xmin;
- mvalf[1] = (((float)pt->y / 100.0f) * (subrect->ymax - subrect->ymin)) + subrect->ymin;
+ mvalf[0] = (((float)pt->x / 100.0f) * BLI_rctf_size_x(subrect)) + subrect->xmin;
+ mvalf[1] = (((float)pt->y / 100.0f) * BLI_rctf_size_y(subrect)) + subrect->ymin;
}
else {
mvalf[0] = (float)pt->x / 100.0f * ar->winx;
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 12b002ef612..c07f0db7114 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -27,7 +27,6 @@
* \ingroup edgpencil
*/
-
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
@@ -279,11 +278,15 @@ static void gp_stroke_convertcoords(tGPsdata *p, const int mval[2], float out[3]
gp_get_3d_reference(p, rvec);
/* method taken from editview.c - mouse_cursor() */
- project_int_noclip(p->ar, rvec, mval_prj);
-
- VECSUB2D(mval_f, mval_prj, mval);
- ED_view3d_win_to_delta(p->ar, mval_f, dvec);
- sub_v3_v3v3(out, rvec, dvec);
+ /* TODO, use ED_view3d_project_float_global */
+ if (ED_view3d_project_int_global(p->ar, rvec, mval_prj, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ VECSUB2D(mval_f, mval_prj, mval);
+ ED_view3d_win_to_delta(p->ar, mval_f, dvec);
+ sub_v3_v3v3(out, rvec, dvec);
+ }
+ else {
+ zero_v3(out);
+ }
}
}
@@ -300,8 +303,8 @@ static void gp_stroke_convertcoords(tGPsdata *p, const int mval[2], float out[3]
out[1] = (float)(mval[1]) / (float)(p->ar->winy) * 100;
}
else { /* camera view, use subrect */
- out[0] = ((mval[0] - p->subrect->xmin) / ((p->subrect->xmax - p->subrect->xmin))) * 100;
- out[1] = ((mval[1] - p->subrect->ymin) / ((p->subrect->ymax - p->subrect->ymin))) * 100;
+ out[0] = ((mval[0] - p->subrect->xmin) / BLI_rctf_size_x(p->subrect)) * 100;
+ out[1] = ((mval[1] - p->subrect->ymin) / BLI_rctf_size_y(p->subrect)) * 100;
}
}
}
@@ -392,8 +395,10 @@ static short gp_stroke_addpoint(tGPsdata *p, const int mval[2], float pressure)
pts = &gps->points[gps->totpoints - 1];
- /* special case for poly lines: normally, depth is needed only when creating new stroke from buffer,
- * but poly lines are converting to stroke instantly, so initialize depth buffer before converting coordinates
+ /* special case for poly lines: normally,
+ * depth is needed only when creating new stroke from buffer,
+ * but poly lines are converting to stroke instantly,
+ * so initialize depth buffer before converting coordinates
*/
if (gpencil_project_check(p)) {
View3D *v3d = p->sa->spacedata.first;
@@ -778,7 +783,8 @@ static short gp_stroke_eraser_splitdel(bGPDframe *gpf, bGPDstroke *gps, int i)
}
/* eraser tool - check if part of stroke occurs within last segment drawn by eraser */
-static short gp_stroke_eraser_strokeinside(int mval[], int UNUSED(mvalo[]), short rad, short x0, short y0, short x1, short y1)
+static short gp_stroke_eraser_strokeinside(const int mval[], const int UNUSED(mvalo[]),
+ int rad, int x0, int y0, int x1, int y1)
{
/* simple within-radius check for now */
if (edge_inside_circle(mval[0], mval[1], rad, x0, y0, x1, y1))
@@ -788,13 +794,45 @@ static short gp_stroke_eraser_strokeinside(int mval[], int UNUSED(mvalo[]), shor
return 0;
}
+static void gp_point_to_xy(ARegion *ar, View2D *v2d, rctf *subrect, bGPDstroke *gps, bGPDspoint *pt,
+ int *r_x, int *r_y)
+{
+ int xyval[2];
+
+ if (gps->flag & GP_STROKE_3DSPACE) {
+ if (ED_view3d_project_int_global(ar, &pt->x, xyval, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ *r_x = xyval[0];
+ *r_y = xyval[1];
+ }
+ else {
+ *r_x = V2D_IS_CLIPPED;
+ *r_y = V2D_IS_CLIPPED;
+ }
+ }
+ else if (gps->flag & GP_STROKE_2DSPACE) {
+ UI_view2d_view_to_region(v2d, pt->x, pt->y, r_x, r_y);
+ }
+ else {
+ if (subrect == NULL) { /* normal 3D view */
+ *r_x = (int)(pt->x / 100 * ar->winx);
+ *r_y = (int)(pt->y / 100 * ar->winy);
+ }
+ else { /* camera view, use subrect */
+ *r_x = (int)((pt->x / 100) * BLI_rctf_size_x(subrect)) + subrect->xmin;
+ *r_y = (int)((pt->y / 100) * BLI_rctf_size_y(subrect)) + subrect->ymin;
+ }
+ }
+}
+
+
/* eraser tool - evaluation per stroke */
// TODO: this could really do with some optimization (KD-Tree/BVH?)
-static void gp_stroke_eraser_dostroke(tGPsdata *p, int mval[], int mvalo[], short rad, rcti *rect, bGPDframe *gpf, bGPDstroke *gps)
+static void gp_stroke_eraser_dostroke(tGPsdata *p,
+ const int mval[], const int mvalo[],
+ short rad, const rcti *rect, bGPDframe *gpf, bGPDstroke *gps)
{
bGPDspoint *pt1, *pt2;
int x0 = 0, y0 = 0, x1 = 0, y1 = 0;
- int xyval[2];
int i;
if (gps->totpoints == 0) {
@@ -804,30 +842,13 @@ static void gp_stroke_eraser_dostroke(tGPsdata *p, int mval[], int mvalo[], shor
BLI_freelinkN(&gpf->strokes, gps);
}
else if (gps->totpoints == 1) {
- /* get coordinates */
- if (gps->flag & GP_STROKE_3DSPACE) {
- project_int(p->ar, &gps->points->x, xyval);
- x0 = xyval[0];
- y0 = xyval[1];
- }
- else if (gps->flag & GP_STROKE_2DSPACE) {
- UI_view2d_view_to_region(p->v2d, gps->points->x, gps->points->y, &x0, &y0);
- }
- else {
- if (p->subrect == NULL) { /* normal 3D view */
- x0 = (int)(gps->points->x / 100 * p->ar->winx);
- y0 = (int)(gps->points->y / 100 * p->ar->winy);
- }
- else { /* camera view, use subrect */
- x0 = (int)((gps->points->x / 100) * (p->subrect->xmax - p->subrect->xmin)) + p->subrect->xmin;
- y0 = (int)((gps->points->y / 100) * (p->subrect->ymax - p->subrect->ymin)) + p->subrect->ymin;
- }
- }
+ gp_point_to_xy(p->ar, p->v2d, p->subrect, gps, gps->points, &x0, &y0);
/* do boundbox check first */
- if (BLI_in_rcti(rect, x0, y0)) {
+
+ if ((!ELEM(V2D_IS_CLIPPED, x0, y0)) && BLI_rcti_isect_pt(rect, x0, y0)) {
/* only check if point is inside */
- if ( ((x0 - mval[0]) * (x0 - mval[0]) + (y0 - mval[1]) * (y0 - mval[1])) <= rad * rad) {
+ if (((x0 - mval[0]) * (x0 - mval[0]) + (y0 - mval[1]) * (y0 - mval[1])) <= rad * rad) {
/* free stroke */
MEM_freeN(gps->points);
BLI_freelinkN(&gpf->strokes, gps);
@@ -842,39 +863,13 @@ static void gp_stroke_eraser_dostroke(tGPsdata *p, int mval[], int mvalo[], shor
/* get points to work with */
pt1 = gps->points + i;
pt2 = gps->points + i + 1;
-
- /* get coordinates */
- if (gps->flag & GP_STROKE_3DSPACE) {
- project_int(p->ar, &pt1->x, xyval);
- x0 = xyval[0];
- y0 = xyval[1];
-
- project_int(p->ar, &pt2->x, xyval);
- x1 = xyval[0];
- y1 = xyval[1];
- }
- else if (gps->flag & GP_STROKE_2DSPACE) {
- UI_view2d_view_to_region(p->v2d, pt1->x, pt1->y, &x0, &y0);
-
- UI_view2d_view_to_region(p->v2d, pt2->x, pt2->y, &x1, &y1);
- }
- else {
- if (p->subrect == NULL) { /* normal 3D view */
- x0 = (int)(pt1->x / 100 * p->ar->winx);
- y0 = (int)(pt1->y / 100 * p->ar->winy);
- x1 = (int)(pt2->x / 100 * p->ar->winx);
- y1 = (int)(pt2->y / 100 * p->ar->winy);
- }
- else { /* camera view, use subrect */
- x0 = (int)((pt1->x / 100) * (p->subrect->xmax - p->subrect->xmin)) + p->subrect->xmin;
- y0 = (int)((pt1->y / 100) * (p->subrect->ymax - p->subrect->ymin)) + p->subrect->ymin;
- x1 = (int)((pt2->x / 100) * (p->subrect->xmax - p->subrect->xmin)) + p->subrect->xmin;
- y1 = (int)((pt2->y / 100) * (p->subrect->ymax - p->subrect->ymin)) + p->subrect->ymin;
- }
- }
-
+
+ gp_point_to_xy(p->ar, p->v2d, p->subrect, gps, pt1, &x0, &y0);
+ gp_point_to_xy(p->ar, p->v2d, p->subrect, gps, pt2, &x1, &y1);
+
/* check that point segment of the boundbox of the eraser stroke */
- if (BLI_in_rcti(rect, x0, y0) || BLI_in_rcti(rect, x1, y1)) {
+ if (((!ELEM(V2D_IS_CLIPPED, x0, y0)) && BLI_rcti_isect_pt(rect, x0, y0)) ||
+ ((!ELEM(V2D_IS_CLIPPED, x1, y1)) && BLI_rcti_isect_pt(rect, x1, y1))) {
/* check if point segment of stroke had anything to do with
* eraser region (either within stroke painted, or on its lines)
* - this assumes that linewidth is irrelevant
@@ -1123,7 +1118,7 @@ static void gp_paint_initstroke(tGPsdata *p, short paintmode)
/* get active layer (or add a new one if non-existent) */
p->gpl = gpencil_layer_getactive(p->gpd);
if (p->gpl == NULL) {
- p->gpl = gpencil_layer_addnew(p->gpd);
+ p->gpl = gpencil_layer_addnew(p->gpd, "GP_Layer", 1);
if (p->custom_color[3])
copy_v3_v3(p->gpl->color, p->custom_color);
@@ -1403,13 +1398,17 @@ static void gpencil_draw_status_indicators(tGPsdata *p)
/* print status info */
switch (p->paintmode) {
case GP_PAINTMODE_ERASER:
- ED_area_headerprint(p->sa, "Grease Pencil Erase Session: Hold and drag LMB or RMB to erase | ESC/Enter to end");
+ ED_area_headerprint(p->sa,
+ "Grease Pencil Erase Session: Hold and drag LMB or RMB to erase |"
+ " ESC/Enter to end");
break;
case GP_PAINTMODE_DRAW_STRAIGHT:
- ED_area_headerprint(p->sa, "Grease Pencil Line Session: Hold and drag LMB to draw | ESC/Enter to end");
+ ED_area_headerprint(p->sa, "Grease Pencil Line Session: Hold and drag LMB to draw | "
+ "ESC/Enter to end");
break;
case GP_PAINTMODE_DRAW:
- ED_area_headerprint(p->sa, "Grease Pencil Freehand Session: Hold and drag LMB to draw | ESC/Enter to end");
+ ED_area_headerprint(p->sa, "Grease Pencil Freehand Session: Hold and drag LMB to draw | "
+ "ESC/Enter to end");
break;
default: /* unhandled future cases */
@@ -1480,7 +1479,7 @@ static void gpencil_draw_apply_event(wmOperator *op, wmEvent *event)
float mousef[2];
int tablet = 0;
- /* convert from window-space to area-space mouse coordintes
+ /* convert from window-space to area-space mouse coordinates
* NOTE: float to ints conversions, +1 factor is probably used to ensure a bit more accurate rounding...
*/
p->mval[0] = event->mval[0] + 1;
@@ -1596,7 +1595,7 @@ static int gpencil_draw_exec(bContext *C, wmOperator *op)
gpencil_draw_exit(C, op);
/* refreshes */
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); // XXX need a nicer one that will work
+ WM_event_add_notifier(C, NC_GPENCIL | NA_EDITED, NULL);
/* done */
return OPERATOR_FINISHED;
@@ -1623,12 +1622,12 @@ static int gpencil_draw_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
else
p = op->customdata;
-
- // TODO: set any additional settings that we can take from the events?
- // TODO? if tablet is erasing, force eraser to be on?
-
- // TODO: move cursor setting stuff to stroke-start so that paintmode can be changed midway...
-
+
+ /* TODO: set any additional settings that we can take from the events?
+ * TODO? if tablet is erasing, force eraser to be on? */
+
+ /* TODO: move cursor setting stuff to stroke-start so that paintmode can be changed midway... */
+
/* if eraser is on, draw radial aid */
if (p->paintmode == GP_PAINTMODE_ERASER) {
gpencil_draw_toggle_eraser_cursor(C, p, TRUE);
@@ -1657,7 +1656,7 @@ static int gpencil_draw_invoke(bContext *C, wmOperator *op, wmEvent *event)
//printf("\tGP - hotkey invoked... waiting for click-drag\n");
}
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL, NULL);
+ WM_event_add_notifier(C, NC_GPENCIL | NA_EDITED, NULL);
/* add a modal handler for this operator, so that we can then draw continuous strokes */
WM_event_add_modal_handler(C, op);
return OPERATOR_RUNNING_MODAL;
@@ -1667,14 +1666,7 @@ static int gpencil_draw_invoke(bContext *C, wmOperator *op, wmEvent *event)
static int gpencil_area_exists(bContext *C, ScrArea *sa_test)
{
bScreen *sc = CTX_wm_screen(C);
- ScrArea *sa;
-
- for (sa = sc->areabase.first; sa; sa = sa->next) {
- if (sa == sa_test)
- return 1;
- }
-
- return 0;
+ return (BLI_findindex(&sc->areabase, sa_test) != -1);
}
static tGPsdata *gpencil_stroke_begin(bContext *C, wmOperator *op)
@@ -1692,8 +1684,9 @@ static tGPsdata *gpencil_stroke_begin(bContext *C, wmOperator *op)
//printf("\t\tGP - start stroke\n");
/* we may need to set up paint env again if we're resuming */
- // XXX: watch it with the paintmode! in future, it'd be nice to allow changing paint-mode when in sketching-sessions
- // XXX: with tablet events, we may event want to check for eraser here, for nicer tablet support
+ /* XXX: watch it with the paintmode! in future,
+ * it'd be nice to allow changing paint-mode when in sketching-sessions */
+ /* XXX: with tablet events, we may event want to check for eraser here, for nicer tablet support */
if (gp_session_initdata(C, p))
gp_paint_initstroke(p, p->paintmode);
@@ -1727,39 +1720,46 @@ static int gpencil_draw_modal(bContext *C, wmOperator *op, wmEvent *event)
tGPsdata *p = op->customdata;
int estate = OPERATOR_PASS_THROUGH; /* default exit state - not handled, so let others have a share of the pie */
- // if (event->type == NDOF_MOTION)
- // return OPERATOR_PASS_THROUGH;
- // -------------------------------
- // [mce] Not quite what I was looking
- // for, but a good start! GP continues to
- // draw on the screen while the 3D mouse
- // moves the viewpoint. Problem is that
- // the stroke is converted to 3D only after
- // it is finished. This approach should work
- // better in tools that immediately apply
- // in 3D space.
+ /* if (event->type == NDOF_MOTION)
+ * return OPERATOR_PASS_THROUGH;
+ * -------------------------------
+ * [mce] Not quite what I was looking
+ * for, but a good start! GP continues to
+ * draw on the screen while the 3D mouse
+ * moves the viewpoint. Problem is that
+ * the stroke is converted to 3D only after
+ * it is finished. This approach should work
+ * better in tools that immediately apply
+ * in 3D space. */
//printf("\tGP - handle modal event...\n");
- /* exit painting mode (and/or end current stroke) */
- if (ELEM5(event->type, RETKEY, PADENTER, ESCKEY, SPACEKEY, RIGHTMOUSE)) {
+ /* exit painting mode (and/or end current stroke)
+ * NOTE: cannot do RIGHTMOUSE (as is standard for cancelling) as that would break polyline [#32647]
+ */
+ if (ELEM4(event->type, RETKEY, PADENTER, ESCKEY, SPACEKEY)) {
/* exit() ends the current stroke before cleaning up */
//printf("\t\tGP - end of paint op + end of stroke\n");
p->status = GP_STATUS_DONE;
estate = OPERATOR_FINISHED;
}
- /* toggle painting mode upon mouse-button movement */
- if (event->type == LEFTMOUSE) {
+ /* toggle painting mode upon mouse-button movement
+ * - LEFTMOUSE = standard drawing (all) / straight line drawing (all) / polyline (toolbox only)
+ * - RIGHTMOUSE = polyline (hotkey) / eraser (all)
+ * (Disabling RIGHTMOUSE case here results in bugs like [#32647])
+ */
+ if (ELEM(event->type, LEFTMOUSE, RIGHTMOUSE)) {
/* if painting, end stroke */
if (p->status == GP_STATUS_PAINTING) {
int sketch = 0;
+
/* basically, this should be mouse-button up = end stroke
* BUT what happens next depends on whether we 'painting sessions' is enabled
*/
sketch |= GPENCIL_SKETCH_SESSIONS_ON(p->scene);
/* polyline drawing is also 'sketching' -- all knots should be added during one session */
- sketch |= p->paintmode == GP_PAINTMODE_DRAW_POLY;
+ sketch |= (p->paintmode == GP_PAINTMODE_DRAW_POLY);
if (sketch) {
/* end stroke only, and then wait to resume painting soon */
@@ -1770,7 +1770,7 @@ static int gpencil_draw_modal(bContext *C, wmOperator *op, wmEvent *event)
estate = OPERATOR_RUNNING_MODAL;
/* stroke could be smoothed, send notifier to refresh screen */
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL);
+ WM_event_add_notifier(C, NC_GPENCIL | NA_EDITED, NULL);
}
else {
//printf("\t\tGP - end of stroke + op\n");
@@ -1860,7 +1860,7 @@ static int gpencil_draw_modal(bContext *C, wmOperator *op, wmEvent *event)
case OPERATOR_FINISHED:
/* one last flush before we're done */
gpencil_draw_exit(C, op);
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL); // XXX need a nicer one that will work
+ WM_event_add_notifier(C, NC_GPENCIL | NA_EDITED, NULL);
break;
case OPERATOR_CANCELLED:
@@ -1869,7 +1869,10 @@ static int gpencil_draw_modal(bContext *C, wmOperator *op, wmEvent *event)
case OPERATOR_RUNNING_MODAL | OPERATOR_PASS_THROUGH:
/* event doesn't need to be handled */
- //printf("unhandled event -> %d (mmb? = %d | mmv? = %d)\n", event->type, event->type == MIDDLEMOUSE, event->type==MOUSEMOVE);
+#if 0
+ printf("unhandled event -> %d (mmb? = %d | mmv? = %d)\n",
+ event->type, event->type == MIDDLEMOUSE, event->type==MOUSEMOVE);
+#endif
break;
}
diff --git a/source/blender/editors/gpencil/gpencil_undo.c b/source/blender/editors/gpencil/gpencil_undo.c
index 61f7e1bb86f..3d2cd260fb9 100644
--- a/source/blender/editors/gpencil/gpencil_undo.c
+++ b/source/blender/editors/gpencil/gpencil_undo.c
@@ -25,6 +25,10 @@
* ***** END GPL LICENSE BLOCK *****
*/
+/** \file blender/editors/gpencil/gpencil_undo.c
+ * \ingroup edgpencil
+ */
+
#include <stdlib.h>
#include <string.h>
@@ -34,6 +38,7 @@
#include "DNA_listBase.h"
#include "DNA_windowmanager_types.h"
+#include "BKE_blender.h"
#include "BKE_context.h"
#include "BKE_gpencil.h"
@@ -46,12 +51,10 @@
#include "gpencil_intern.h"
-#define MAXUNDONAME 64
-
typedef struct bGPundonode {
struct bGPundonode *next, *prev;
- char name[MAXUNDONAME];
+ char name[BKE_UNDO_STR_MAX];
struct bGPdata *gpd;
} bGPundonode;
@@ -108,7 +111,7 @@ int ED_undo_gpencil_step(bContext *C, int step, const char *name)
}
}
- WM_event_add_notifier(C, NC_SCREEN | ND_GPENCIL | NA_EDITED, NULL);
+ WM_event_add_notifier(C, NC_GPENCIL | NA_EDITED, NULL);
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/include/BIF_gl.h b/source/blender/editors/include/BIF_gl.h
index a5e5d7ce2e0..479e0b65177 100644
--- a/source/blender/editors/include/BIF_gl.h
+++ b/source/blender/editors/include/BIF_gl.h
@@ -50,5 +50,7 @@
#define glMultMatrixf(x) glMultMatrixf( (float *)(x))
#define glLoadMatrixf(x) glLoadMatrixf( (float *)(x))
+#define GLA_PIXEL_OFS 0.375f
+
#endif /* #ifdef __BIF_GL_H__ */
diff --git a/source/blender/editors/include/BIF_glutil.h b/source/blender/editors/include/BIF_glutil.h
index b939ae47ead..577113927d1 100644
--- a/source/blender/editors/include/BIF_glutil.h
+++ b/source/blender/editors/include/BIF_glutil.h
@@ -116,8 +116,8 @@ void glaRasterPosSafe2f(float x, float y, float known_good_x, float known_good_y
*
* \attention This routine makes many assumptions: the rect data
* is expected to be in RGBA unsigned byte format, the coordinate
- * (0.375, 0.375) is assumed to be within the view frustum, and the
- * modelview and projection matrices are assumed to define a
+ * (GLA_PIXEL_OFS, GLA_PIXEL_OFS) is assumed to be within the view frustum,
+ * and the modelview and projection matrices are assumed to define a
* 1-to-1 mapping to screen space.
* \attention Furthermore, in the case of zoomed or unpixel aligned
* images extending outside the view frustum, but still within the
diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h
index e1401a8ff88..8d7ae3aad6a 100644
--- a/source/blender/editors/include/ED_anim_api.h
+++ b/source/blender/editors/include/ED_anim_api.h
@@ -232,28 +232,28 @@ typedef enum eAnimFilter_Flags {
/* Dopesheet only */
/* 'Scene' channels */
-#define SEL_SCEC(sce) ((sce->flag & SCE_DS_SELECTED))
-#define EXPANDED_SCEC(sce) ((sce->flag & SCE_DS_COLLAPSED) == 0)
+#define SEL_SCEC(sce) (CHECK_TYPE_INLINE(sce, Scene), ((sce->flag & SCE_DS_SELECTED)))
+#define EXPANDED_SCEC(sce) (CHECK_TYPE_INLINE(sce, Scene), ((sce->flag & SCE_DS_COLLAPSED) == 0))
/* 'Sub-Scene' channels (flags stored in Data block) */
-#define FILTER_WOR_SCED(wo) ((wo->flag & WO_DS_EXPAND))
+#define FILTER_WOR_SCED(wo) (CHECK_TYPE_INLINE(wo, World), (wo->flag & WO_DS_EXPAND))
/* 'Object' channels */
-#define SEL_OBJC(base) ((base->flag & SELECT))
-#define EXPANDED_OBJC(ob) ((ob->nlaflag & OB_ADS_COLLAPSED) == 0)
+#define SEL_OBJC(base) (CHECK_TYPE_INLINE(base, Base), ((base->flag & SELECT)))
+#define EXPANDED_OBJC(ob) (CHECK_TYPE_INLINE(ob, Object), ((ob->nlaflag & OB_ADS_COLLAPSED) == 0))
/* 'Sub-object' channels (flags stored in Data block) */
-#define FILTER_SKE_OBJD(key) ((key->flag & KEY_DS_EXPAND))
-#define FILTER_MAT_OBJD(ma) ((ma->flag & MA_DS_EXPAND))
-#define FILTER_LAM_OBJD(la) ((la->flag & LA_DS_EXPAND))
-#define FILTER_CAM_OBJD(ca) ((ca->flag & CAM_DS_EXPAND))
-#define FILTER_CUR_OBJD(cu) ((cu->flag & CU_DS_EXPAND))
-#define FILTER_PART_OBJD(part) ((part->flag & PART_DS_EXPAND))
-#define FILTER_MBALL_OBJD(mb) ((mb->flag2 & MB_DS_EXPAND))
-#define FILTER_ARM_OBJD(arm) ((arm->flag & ARM_DS_EXPAND))
-#define FILTER_MESH_OBJD(me) ((me->flag & ME_DS_EXPAND))
-#define FILTER_LATTICE_OBJD(lt) ((lt->flag & LT_DS_EXPAND))
-#define FILTER_SPK_OBJD(spk) ((spk->flag & SPK_DS_EXPAND))
+#define FILTER_SKE_OBJD(key) (CHECK_TYPE_INLINE(key, Key), ((key->flag & KEY_DS_EXPAND)))
+#define FILTER_MAT_OBJD(ma) (CHECK_TYPE_INLINE(ma, Material), ((ma->flag & MA_DS_EXPAND)))
+#define FILTER_LAM_OBJD(la) (CHECK_TYPE_INLINE(la, Lamp), ((la->flag & LA_DS_EXPAND)))
+#define FILTER_CAM_OBJD(ca) (CHECK_TYPE_INLINE(ca, Camera), ((ca->flag & CAM_DS_EXPAND)))
+#define FILTER_CUR_OBJD(cu) (CHECK_TYPE_INLINE(cu, Curve), ((cu->flag & CU_DS_EXPAND)))
+#define FILTER_PART_OBJD(part) (CHECK_TYPE_INLINE(part, ParticleSettings), ((part->flag & PART_DS_EXPAND)))
+#define FILTER_MBALL_OBJD(mb) (CHECK_TYPE_INLINE(mb, MetaBall), ((mb->flag2 & MB_DS_EXPAND)))
+#define FILTER_ARM_OBJD(arm) (CHECK_TYPE_INLINE(arm, bArmature), ((arm->flag & ARM_DS_EXPAND)))
+#define FILTER_MESH_OBJD(me) (CHECK_TYPE_INLINE(me, Mesh), ((me->flag & ME_DS_EXPAND)))
+#define FILTER_LATTICE_OBJD(lt) (CHECK_TYPE_INLINE(lt, Lattice), ((lt->flag & LT_DS_EXPAND)))
+#define FILTER_SPK_OBJD(spk) (CHECK_TYPE_INLINE(spk, Speaker), ((spk->flag & SPK_DS_EXPAND)))
/* Variable use expanders */
-#define FILTER_NTREE_DATA(ntree) ((ntree->flag & NTREE_DS_EXPAND))
-#define FILTER_TEX_DATA(tex) ((tex->flag & TEX_DS_EXPAND))
+#define FILTER_NTREE_DATA(ntree) (CHECK_TYPE_INLINE(ntree, bNodeTree), ((ntree->flag & NTREE_DS_EXPAND)))
+#define FILTER_TEX_DATA(tex) (CHECK_TYPE_INLINE(tex, Tex), ((tex->flag & TEX_DS_EXPAND)))
/* 'Sub-object/Action' channels (flags stored in Action) */
#define SEL_ACTC(actc) ((actc->flag & ACT_SELECTED))
diff --git a/source/blender/editors/include/ED_armature.h b/source/blender/editors/include/ED_armature.h
index eb02fc97596..efd10f3cb6b 100644
--- a/source/blender/editors/include/ED_armature.h
+++ b/source/blender/editors/include/ED_armature.h
@@ -93,8 +93,18 @@ typedef struct EditBone {
#define BONESEL_NOSEL (1 << 31) /* Indicates a negative number */
/* useful macros */
-#define EBONE_VISIBLE(arm, ebone) (((arm)->layer & (ebone)->layer) && !((ebone)->flag & BONE_HIDDEN_A))
-#define EBONE_EDITABLE(ebone) (((ebone)->flag & BONE_SELECTED) && !((ebone)->flag & BONE_EDITMODE_LOCKED))
+#define EBONE_VISIBLE(arm, ebone) ( \
+ CHECK_TYPE_INLINE(arm, bArmature), \
+ CHECK_TYPE_INLINE(ebone, EditBone), \
+ (((arm)->layer & (ebone)->layer) && !((ebone)->flag & BONE_HIDDEN_A)) \
+ )
+
+#define EBONE_SELECTABLE(arm, ebone) (EBONE_VISIBLE(arm, ebone) && !(ebone->flag & BONE_UNSELECTABLE))
+
+#define EBONE_EDITABLE(ebone) ( \
+ CHECK_TYPE_INLINE(ebone, EditBone), \
+ (((ebone)->flag & BONE_SELECTED) && !((ebone)->flag & BONE_EDITMODE_LOCKED)) \
+ )
/* used in bone_select_hierachy() */
#define BONE_SELECT_PARENT 0
@@ -148,6 +158,7 @@ void ED_armature_enter_posemode(struct bContext *C, struct Base *base);
int ED_pose_channel_in_IK_chain(struct Object *ob, struct bPoseChannel *pchan);
void ED_pose_deselectall(struct Object *ob, int test);
void ED_pose_recalculate_paths(struct Scene *scene, struct Object *ob);
+struct Object *ED_pose_object_from_context(struct bContext *C);
/* sketch */
@@ -180,6 +191,3 @@ void mesh_deform_bind(struct Scene *scene,
#endif
#endif /* __ED_ARMATURE_H__ */
-
-
-
diff --git a/source/blender/editors/include/ED_clip.h b/source/blender/editors/include/ED_clip.h
index 2670fb5b042..28727c913cb 100644
--- a/source/blender/editors/include/ED_clip.h
+++ b/source/blender/editors/include/ED_clip.h
@@ -39,7 +39,6 @@ struct Main;
struct Mask;
struct MovieClip;
struct SpaceClip;
-struct wmEvent;
/* ** clip_editor.c ** */
@@ -52,8 +51,9 @@ int ED_space_clip_tracking_poll(struct bContext *C);
int ED_space_clip_maskedit_poll(struct bContext *C);
int ED_space_clip_maskedit_mask_poll(bContext *C);
-void ED_space_clip_get_size(const struct bContext *C, int *width, int *height);
-void ED_space_clip_get_zoom(const struct bContext *C, float *zoomx, float *zoomy);
+void ED_space_clip_get_size(struct SpaceClip *sc, int *width, int *height);
+void ED_space_clip_get_size_fl(struct SpaceClip *sc, float size[2]);
+void ED_space_clip_get_zoom(struct SpaceClip *sc, struct ARegion *ar, float *zoomx, float *zoomy);
void ED_space_clip_get_aspect(struct SpaceClip *sc, float *aspx, float *aspy);
void ED_space_clip_get_aspect_dimension_aware(struct SpaceClip *sc, float *aspx, float *aspy);
@@ -62,13 +62,15 @@ int ED_space_clip_get_clip_frame_number(struct SpaceClip *sc);
struct ImBuf *ED_space_clip_get_buffer(struct SpaceClip *sc);
struct ImBuf *ED_space_clip_get_stable_buffer(struct SpaceClip *sc, float loc[2], float *scale, float *angle);
+int ED_space_clip_color_sample(struct SpaceClip *sc, struct ARegion *ar, int mval[2], float r_col[3]);
+
void ED_clip_update_frame(const struct Main *mainp, int cfra);
int ED_clip_view_selection(const struct bContext *C, struct ARegion *ar, int fit);
-void ED_clip_point_undistorted_pos(SpaceClip *sc, const float co[2], float r_co[2]);
-void ED_clip_point_stable_pos(const struct bContext *C, float x, float y, float *xr, float *yr);
-void ED_clip_point_stable_pos__reverse(const struct bContext *C, const float co[2], float r_co[2]);
-void ED_clip_mouse_pos(const struct bContext *C, struct wmEvent *event, float co[2]);
+void ED_clip_point_undistorted_pos(struct SpaceClip *sc, const float co[2], float r_co[2]);
+void ED_clip_point_stable_pos(struct SpaceClip *sc, struct ARegion *ar, float x, float y, float *xr, float *yr);
+void ED_clip_point_stable_pos__reverse(struct SpaceClip *sc, struct ARegion *ar, const float co[2], float r_co[2]);
+void ED_clip_mouse_pos(struct SpaceClip *sc, struct ARegion *ar, const int mval[2], float co[2]);
int ED_space_clip_check_show_trackedit(struct SpaceClip *sc);
int ED_space_clip_check_show_maskedit(struct SpaceClip *sc);
@@ -81,7 +83,7 @@ void ED_space_clip_set_mask(struct bContext *C, struct SpaceClip *sc, struct Mas
/* textures buffer */
int ED_space_clip_texture_buffer_supported(struct SpaceClip *sc);
-int ED_space_clip_load_movieclip_buffer(struct SpaceClip *sc, struct ImBuf *ibuf);
+int ED_space_clip_load_movieclip_buffer(struct SpaceClip *sc, struct ImBuf *ibuf, const unsigned char *display_buffer);
void ED_space_clip_unload_movieclip_buffer(struct SpaceClip *sc);
void ED_space_clip_free_texture_buffer(struct SpaceClip *sc);
diff --git a/source/blender/editors/include/ED_curve.h b/source/blender/editors/include/ED_curve.h
index ac8d82e9060..d66cc49a5d0 100644
--- a/source/blender/editors/include/ED_curve.h
+++ b/source/blender/editors/include/ED_curve.h
@@ -67,7 +67,7 @@ void BKE_curve_editNurb_free(struct Curve *cu);
int mouse_nurb(struct bContext *C, const int mval[2], int extend, int deselect, int toggle);
-struct Nurb *add_nurbs_primitive(struct bContext *C, float mat[4][4], int type, int newob);
+struct Nurb *add_nurbs_primitive(struct bContext *C, struct Object *obedit, float mat[4][4], int type, int newob);
int isNurbsel(struct Nurb *nu);
void ED_nurb_set_spline_type(struct Nurb *nu, int type);
diff --git a/source/blender/editors/include/ED_datafiles.h b/source/blender/editors/include/ED_datafiles.h
index 64b57f6858b..8ad36397ce5 100644
--- a/source/blender/editors/include/ED_datafiles.h
+++ b/source/blender/editors/include/ED_datafiles.h
@@ -39,14 +39,14 @@ extern char datatoc_startup_blend[];
extern int datatoc_blender_icons_png_size;
extern char datatoc_blender_icons_png[];
-extern int datatoc_prvicons_size;
-extern char datatoc_prvicons[];
+extern int datatoc_prvicons_png_size;
+extern char datatoc_prvicons_png[];
extern int datatoc_splash_png_size;
extern char datatoc_splash_png[];
-extern int datatoc_Bfont_size;
-extern char datatoc_Bfont[];
+extern int datatoc_bfont_pfb_size;
+extern char datatoc_bfont_pfb[];
extern int datatoc_bfont_ttf_size;
extern char datatoc_bfont_ttf[];
diff --git a/source/blender/editors/include/ED_image.h b/source/blender/editors/include/ED_image.h
index b95615ce365..a50b33966c6 100644
--- a/source/blender/editors/include/ED_image.h
+++ b/source/blender/editors/include/ED_image.h
@@ -38,36 +38,47 @@ struct ImageUser;
struct ToolSettings;
struct uiBlock;
struct wmWindowManager;
+struct ARegion;
+struct Scene;
-/* space_image.c, exported for transform */
+/* image_edit.c, exported for transform */
struct Image *ED_space_image(struct SpaceImage *sima);
-void ED_space_image_set(struct SpaceImage *sima, struct Scene *scene, struct Object *obedit, struct Image *ima);
+void ED_space_image_set(struct SpaceImage *sima, struct Scene *scene, struct Object *obedit, struct Image *ima);
+struct Mask *ED_space_image_get_mask(struct SpaceImage *sima);
+void ED_space_image_set_mask(struct bContext *C, struct SpaceImage *sima, struct Mask *mask);
+int ED_space_image_color_sample(struct SpaceImage *sima, struct ARegion *ar, int mval[2], float r_col[3]);
struct ImBuf *ED_space_image_acquire_buffer(struct SpaceImage *sima, void **lock_r);
void ED_space_image_release_buffer(struct SpaceImage *sima, void *lock);
int ED_space_image_has_buffer(struct SpaceImage *sima);
-void ED_space_image_size(struct SpaceImage *sima, int *width, int *height);
-void ED_space_image_aspect(struct SpaceImage *sima, float *aspx, float *aspy);
-void ED_space_image_zoom(struct SpaceImage *sima, struct ARegion *ar, float *zoomx, float *zoomy);
-void ED_space_image_uv_aspect(struct SpaceImage *sima, float *aspx, float *aspy);
+void ED_space_image_get_size(struct SpaceImage *sima, int *width, int *height);
+void ED_space_image_get_size_fl(struct SpaceImage *sima, float size[2]);
+void ED_space_image_get_aspect(struct SpaceImage *sima, float *aspx, float *aspy);
+void ED_space_image_get_zoom(struct SpaceImage *sima, struct ARegion *ar, float *zoomx, float *zoomy);
+void ED_space_image_get_uv_aspect(struct SpaceImage *sima, float *aspx, float *aspy);
void ED_space_image_paint_update(struct wmWindowManager *wm, struct ToolSettings *settings);
void ED_space_image_uv_sculpt_update(struct wmWindowManager *wm, struct ToolSettings *settings);
-void ED_image_size(struct Image *ima, int *width, int *height);
-void ED_image_aspect(struct Image *ima, float *aspx, float *aspy);
-void ED_image_uv_aspect(struct Image *ima, float *aspx, float *aspy);
+void ED_image_get_uv_aspect(struct Image *ima, struct ImageUser *iuser, float *aspx, float *aspy);
+void ED_image_mouse_pos(struct SpaceImage *sima, struct ARegion *ar, const int mval[2], float co[2]);
+void ED_image_point_pos(struct SpaceImage *sima, struct ARegion *ar, float x, float y, float *xr, float *yr);
+void ED_image_point_pos__reverse(struct SpaceImage *sima, struct ARegion *ar, const float co[2], float r_co[2]);
int ED_space_image_show_render(struct SpaceImage *sima);
int ED_space_image_show_paint(struct SpaceImage *sima);
int ED_space_image_show_uvedit(struct SpaceImage *sima, struct Object *obedit);
int ED_space_image_show_uvshadow(struct SpaceImage *sima, struct Object *obedit);
+int ED_space_image_check_show_maskedit(struct Scene *scene, struct SpaceImage *sima);
+int ED_space_image_maskedit_poll(struct bContext *C);
+int ED_space_image_maskedit_mask_poll(struct bContext *C);
+
/* UI level image (texture) updating... render calls own stuff (too) */
void ED_image_update_frame(const struct Main *mainp, int cfra);
-void ED_image_draw_info(struct ARegion *ar, int color_manage, int channels, int x, int y,
+void ED_image_draw_info(struct Scene *scene, struct ARegion *ar, int color_manage, int use_default_view, int channels, int x, int y,
const unsigned char cp[4], const float fp[4], int *zp, float *zpf);
#endif /* __ED_IMAGE_H__ */
diff --git a/source/blender/editors/include/ED_mask.h b/source/blender/editors/include/ED_mask.h
index 773da04bc7b..dc40b687dfd 100644
--- a/source/blender/editors/include/ED_mask.h
+++ b/source/blender/editors/include/ED_mask.h
@@ -34,14 +34,35 @@
struct wmKeyConfig;
struct MaskLayer;
struct MaskLayerShape;
+struct wmEvent;
+
+/* mask_edit.c */
+void ED_mask_get_size(struct ScrArea *sa, int *width, int *height);
+void ED_mask_zoom(struct ScrArea *sa, struct ARegion *ar, float *zoomx, float *zoomy);
+void ED_mask_get_aspect(struct ScrArea *sa, struct ARegion *ar, float *aspx, float *aspy);
+
+void ED_mask_pixelspace_factor(struct ScrArea *sa, struct ARegion *ar, float *scalex, float *scaley);
+void ED_mask_mouse_pos(struct ScrArea *sa, struct ARegion *ar, const int mval[2], float co[2]);
+
+void ED_mask_point_pos(struct ScrArea *sa, struct ARegion *ar, float x, float y, float *xr, float *yr);
+void ED_mask_point_pos__reverse(struct ScrArea *sa, struct ARegion *ar,
+ float x, float y, float *xr, float *yr);
-/* mask_editor.c */
void ED_operatortypes_mask(void);
void ED_keymap_mask(struct wmKeyConfig *keyconf);
void ED_operatormacros_mask(void);
/* mask_draw.c */
-void ED_mask_draw(const bContext *C, const char draw_flag, const char draw_type);
+void ED_mask_draw(const struct bContext *C, const char draw_flag, const char draw_type);
+void ED_mask_draw_region(struct Mask *mask, struct ARegion *ar,
+ const char draw_flag, const char draw_type,
+ const int width_i, const int height_i,
+ const float aspx, const float aspy,
+ const short do_scale_applied, const short do_post_draw,
+ float stabmat[4][4],
+ const struct bContext *C);
+
+void ED_mask_draw_frames(struct Mask *mask, struct ARegion *ar, const int cfra, const int sfra, const int efra);
/* mask_shapekey.c */
void ED_mask_layer_shape_auto_key(struct MaskLayer *masklay, const int frame);
diff --git a/source/blender/editors/include/ED_mball.h b/source/blender/editors/include/ED_mball.h
index b4b739e4d06..5ce6db97305 100644
--- a/source/blender/editors/include/ED_mball.h
+++ b/source/blender/editors/include/ED_mball.h
@@ -38,7 +38,7 @@ struct wmKeyConfig;
void ED_operatortypes_metaball(void);
void ED_keymap_metaball(struct wmKeyConfig *keyconf);
-struct MetaElem *add_metaball_primitive(struct bContext *C, float mat[4][4], int type, int newname);
+struct MetaElem *add_metaball_primitive(struct bContext *C, struct Object *obedit, float mat[4][4], int type, int newname);
int mouse_mball(struct bContext *C, const int mval[2], int extend, int deselect, int toggle);
diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h
index b2e8ecd09c9..093872c79f6 100644
--- a/source/blender/editors/include/ED_mesh.h
+++ b/source/blender/editors/include/ED_mesh.h
@@ -71,22 +71,19 @@ struct Material;
struct Object;
struct rcti;
-intptr_t mesh_octree_table(struct Object *ob, struct BMEditMesh *em, const float co[3], char mode);
-int mesh_mirrtopo_table(struct Object *ob, char mode);
/* editmesh_utils.c */
-
-/* retrieves mirrored cache vert, or NULL if there isn't one.
- * note: calling this without ensuring the mirror cache state
- * is bad.*/
void EDBM_verts_mirror_cache_begin(struct BMEditMesh *em, const short use_select); /* note, replaces EM_cache_x_mirror_vert in trunk */
void EDBM_verts_mirror_apply(struct BMEditMesh *em, const int sel_from, const int sel_to);
struct BMVert *EDBM_verts_mirror_get(struct BMEditMesh *em, struct BMVert *v);
void EDBM_verts_mirror_cache_clear(struct BMEditMesh *em, struct BMVert *v);
void EDBM_verts_mirror_cache_end(struct BMEditMesh *em);
+void EDBM_mesh_ensure_valid_dm_hack(struct Scene *scene, struct BMEditMesh *em);
void EDBM_mesh_normals_update(struct BMEditMesh *em);
+void EDBM_mesh_clear(struct BMEditMesh *em);
+void EDBM_selectmode_to_scene(struct bContext *C);
void EDBM_mesh_make(struct ToolSettings *ts, struct Scene *scene, struct Object *ob);
void EDBM_mesh_free(struct BMEditMesh *tm);
void EDBM_mesh_load(struct Object *ob);
@@ -104,100 +101,111 @@ struct BMFace *EDBM_face_at_index(struct BMEditMesh *em, int index);
void EDBM_select_more(struct BMEditMesh *em);
void EDBM_select_less(struct BMEditMesh *em);
-void EDBM_selectmode_flush_ex(struct BMEditMesh *em, int selectmode);
+void EDBM_selectmode_flush_ex(struct BMEditMesh *em, const short selectmode);
void EDBM_selectmode_flush(struct BMEditMesh *em);
void EDBM_deselect_flush(struct BMEditMesh *em);
void EDBM_select_flush(struct BMEditMesh *em);
-void EDBM_selectmode_set(struct BMEditMesh *em);
-void EDBM_selectmode_convert(struct BMEditMesh *em, short oldmode, short selectmode);
void undo_push_mesh(struct bContext *C, const char *name);
int EDBM_vert_color_check(struct BMEditMesh *em);
-
void EDBM_mesh_hide(struct BMEditMesh *em, int swap);
void EDBM_mesh_reveal(struct BMEditMesh *em);
void EDBM_update_generic(struct bContext *C, struct BMEditMesh *em, const short do_tessface);
-int EDBM_backbuf_check(unsigned int index);
-int EDBM_backbuf_border_mask_init(struct ViewContext *vc, int mcords[][2], short tot,
- short xmin, short ymin, short xmax, short ymax);
-void EDBM_backbuf_free(void);
-int EDBM_backbuf_border_init(struct ViewContext *vc, short xmin, short ymin, short xmax, short ymax);
-int EDBM_backbuf_circle_init(struct ViewContext *vc, short xs, short ys, short rads);
-
-void EDBM_deselect_by_material(struct BMEditMesh *em, const short index, const short select);
-
struct UvElementMap *EDBM_uv_element_map_create(struct BMEditMesh *em, int selected, int doIslands);
void EDBM_uv_element_map_free(struct UvElementMap *vmap);
int EDBM_mtexpoly_check(struct BMEditMesh *em);
-struct MTexPoly *EDBM_mtexpoly_active_get(struct BMEditMesh *em, struct BMFace **r_act_efa, int sloppy);
+struct MTexPoly *EDBM_mtexpoly_active_get(struct BMEditMesh *em, struct BMFace **r_act_efa, int sloppy, int selected);
void EDBM_uv_vert_map_free(struct UvVertMap *vmap);
struct UvMapVert *EDBM_uv_vert_map_at_index(struct UvVertMap *vmap, unsigned int v);
struct UvVertMap *EDBM_uv_vert_map_create(struct BMEditMesh *em, int selected, int do_face_idx_array, const float limit[2]);
-void EDBM_data_layer_add(struct BMEditMesh *em, struct CustomData *data, int type, const char *name);
-void EDBM_data_layer_free(struct BMEditMesh *em, struct CustomData *data, int type);
-
-void EDBM_select_toggle_all(struct BMEditMesh *em);
-void EDBM_select_swap(struct BMEditMesh *em); /* exported for UV */
-int EDBM_select_interior_faces(struct BMEditMesh *em);
-
void EDBM_flag_enable_all(struct BMEditMesh *em, const char hflag);
void EDBM_flag_disable_all(struct BMEditMesh *em, const char hflag);
+
+
+/* editmesh_select.c */
void EDBM_select_mirrored(struct Object *obedit, struct BMEditMesh *em, int extend);
void EDBM_automerge(struct Scene *scene, struct Object *ob, int update);
-/* editmesh_mods.c */
-extern unsigned int bm_vertoffs, bm_solidoffs, bm_wireoffs;
+int EDBM_backbuf_border_init(struct ViewContext *vc, short xmin, short ymin, short xmax, short ymax);
+int EDBM_backbuf_check(unsigned int index);
+void EDBM_backbuf_free(void);
-int mouse_mesh(struct bContext *C, const int mval[2], short extend, short deselect, short toggle);
+int EDBM_backbuf_border_mask_init(struct ViewContext *vc, const int mcords[][2], short tot,
+ short xmin, short ymin, short xmax, short ymax);
+int EDBM_backbuf_circle_init(struct ViewContext *vc, short xs, short ys, short rads);
-struct BMVert *editbmesh_get_x_mirror_vert(struct Object *ob, struct BMEditMesh *em, struct BMVert *eve, const float co[3], int index);
-int mesh_get_x_mirror_vert(struct Object *ob, int index);
-int *mesh_get_x_mirror_faces(struct Object *ob, struct BMEditMesh *em);
+struct BMVert *EDBM_vert_find_nearest(struct ViewContext *vc, int *dist, short sel, short strict);
+struct BMEdge *EDBM_edge_find_nearest(struct ViewContext *vc, int *dist);
+struct BMFace *EDBM_face_find_nearest(struct ViewContext *vc, int *dist);
+
+int EDBM_select_pick(struct bContext *C, const int mval[2], short extend, short deselect, short toggle);
+
+void EDBM_selectmode_set(struct BMEditMesh *em);
+void EDBM_selectmode_convert(struct BMEditMesh *em, const short selectmode_old, const short selectmode_new);
+
+void EDBM_deselect_by_material(struct BMEditMesh *em, const short index, const short select);
+
+void EDBM_select_toggle_all(struct BMEditMesh *em);
+
+void EDBM_select_swap(struct BMEditMesh *em); /* exported for UV */
+int EDBM_select_interior_faces(struct BMEditMesh *em);
+void em_setup_viewcontext(struct bContext *C, struct ViewContext *vc); /* rename? */
+
+extern unsigned int bm_vertoffs, bm_solidoffs, bm_wireoffs;
-int join_mesh_exec(struct bContext *C, struct wmOperator *op);
-int join_mesh_shapes_exec(struct bContext *C, struct wmOperator *op);
/* mesh_ops.c */
void ED_operatortypes_mesh(void);
void ED_operatormacros_mesh(void);
void ED_keymap_mesh(struct wmKeyConfig *keyconf);
+void ED_keymap_mesh(struct wmKeyConfig *keyconf);
-/* editmesh.c */
-
+/* spacetypes.c */
void ED_spacetypes_init(void);
-void ED_keymap_mesh(struct wmKeyConfig *keyconf);
-/* bmesh_mods.c */
-extern unsigned int bm_vertoffs, bm_solidoffs, bm_wireoffs;
-/* bmesh_tools.c (could be moved) */
-void EMBM_project_snap_verts(struct bContext *C, struct ARegion *ar, struct Object *obedit, struct BMEditMesh *em);
+/* editmesh_tools.c (could be moved) */
+void EMBM_project_snap_verts(struct bContext *C, struct ARegion *ar, struct BMEditMesh *em);
+
/* editface.c */
void paintface_flush_flags(struct Object *ob);
-int paintface_mouse_select(struct bContext *C, struct Object *ob, const int mval[2], int extend, int deselect, int toggle);
-int do_paintface_box_select(struct ViewContext *vc, struct rcti *rect, int select, int extend);
+int paintface_mouse_select(struct bContext *C, struct Object *ob, const int mval[2], int extend, int deselect, int toggle);
+int do_paintface_box_select(struct ViewContext *vc, struct rcti *rect, int select, int extend);
void paintface_deselect_all_visible(struct Object *ob, int action, short flush_flags);
void paintface_select_linked(struct bContext *C, struct Object *ob, int mval[2], int mode);
-int paintface_minmax(struct Object *ob, float r_min[3], float r_max[3]);
+int paintface_minmax(struct Object *ob, float r_min[3], float r_max[3]);
void paintface_hide(struct Object *ob, const int unselected);
void paintface_reveal(struct Object *ob);
void paintvert_deselect_all_visible(struct Object *ob, int action, short flush_flags);
-void paintvert_flush_flags(struct Object *ob);
+void paintvert_flush_flags(struct Object *ob);
-/* object_vgroup.c */
+/* mirrtopo */
+typedef struct MirrTopoStore_t {
+ intptr_t *index_lookup;
+ int prev_vert_tot;
+ int prev_edge_tot;
+ int prev_ob_mode;
+} MirrTopoStore_t;
+int ED_mesh_mirrtopo_recalc_check(struct Mesh *me, const int ob_mode, MirrTopoStore_t *mesh_topo_store);
+void ED_mesh_mirrtopo_init(struct Mesh *me, const int ob_mode, MirrTopoStore_t *mesh_topo_store,
+ const short skip_em_vert_array_init);
+void ED_mesh_mirrtopo_free(MirrTopoStore_t *mesh_topo_store);
+
+
+/* object_vgroup.c */
#define WEIGHT_REPLACE 1
#define WEIGHT_ADD 2
#define WEIGHT_SUBTRACT 3
@@ -218,9 +226,6 @@ void ED_vgroup_vert_add(struct Object *ob, struct bDeformGroup *
void ED_vgroup_vert_remove(struct Object *ob, struct bDeformGroup *dg, int vertnum);
float ED_vgroup_vert_weight(struct Object *ob, struct bDeformGroup *dg, int vertnum);
-struct BMVert *EDBM_vert_find_nearest(struct ViewContext *vc, int *dist, short sel, short strict);
-struct BMEdge *EDBM_edge_find_nearest(struct ViewContext *vc, int *dist);
-struct BMFace *EDBM_face_find_nearest(struct ViewContext *vc, int *dist);
/* mesh_data.c */
// void ED_mesh_geometry_add(struct Mesh *mesh, struct ReportList *reports, int verts, int edges, int faces);
@@ -248,25 +253,6 @@ int ED_mesh_color_add(struct bContext *C, struct Scene *scene, struct Object *ob
int ED_mesh_color_remove(struct bContext *C, struct Object *ob, struct Mesh *me);
int ED_mesh_color_remove_named(struct bContext *C, struct Object *ob, struct Mesh *me, const char *name);
-void EDBM_selectmode_to_scene(struct bContext *C);
-void EDBM_mesh_clear(struct BMEditMesh *em);
-
-#include "../mesh/editmesh_bvh.h"
-
-
-/* mirrtopo */
-typedef struct MirrTopoStore_t {
- intptr_t *index_lookup;
- int prev_vert_tot;
- int prev_edge_tot;
- int prev_ob_mode;
-} MirrTopoStore_t;
-
-int ED_mesh_mirrtopo_recalc_check(struct Mesh *me, const int ob_mode, MirrTopoStore_t *mesh_topo_store);
-void ED_mesh_mirrtopo_init(struct Mesh *me, const int ob_mode, MirrTopoStore_t *mesh_topo_store,
- const short skip_em_vert_array_init);
-void ED_mesh_mirrtopo_free(MirrTopoStore_t *mesh_topo_store);
-
/* mesh backup */
typedef struct BMBackup {
struct BMesh *bmcopy;
@@ -279,6 +265,30 @@ void EDBM_redo_state_restore(struct BMBackup, struct BMEditMesh *em, int recalct
/* delete the backup, optionally flushing it to an editmesh */
void EDBM_redo_state_free(struct BMBackup *, struct BMEditMesh *em, int recalctess);
+
+/* meshtools.c */
+int join_mesh_exec(struct bContext *C, struct wmOperator *op);
+int join_mesh_shapes_exec(struct bContext *C, struct wmOperator *op);
+
+intptr_t mesh_octree_table(struct Object *ob, struct BMEditMesh *em, const float co[3], char mode);
+int mesh_mirrtopo_table(struct Object *ob, char mode);
+
+/* retrieves mirrored cache vert, or NULL if there isn't one.
+ * note: calling this without ensuring the mirror cache state
+ * is bad.*/
+int mesh_get_x_mirror_vert(struct Object *ob, int index);
+struct BMVert *editbmesh_get_x_mirror_vert(struct Object *ob, struct BMEditMesh *em, struct BMVert *eve, const float co[3], int index);
+int *mesh_get_x_mirror_faces(struct Object *ob, struct BMEditMesh *em);
+
+int ED_mesh_pick_vert(struct bContext *C, struct Mesh *me, const int mval[2], unsigned int *index, int size);
+int ED_mesh_pick_face(struct bContext *C, struct Mesh *me, const int mval[2], unsigned int *index, int size);
+int ED_mesh_pick_face_vert(struct bContext *C, struct Mesh *me, struct Object *ob, const int mval[2], unsigned int *index, int size);
+
+#define ED_MESH_PICK_DEFAULT_VERT_SIZE 50
+#define ED_MESH_PICK_DEFAULT_FACE_SIZE 3
+
+#include "../mesh/editmesh_bvh.h"
+
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/editors/include/ED_node.h b/source/blender/editors/include/ED_node.h
index 6f86d01fb98..32baa8883e1 100644
--- a/source/blender/editors/include/ED_node.h
+++ b/source/blender/editors/include/ED_node.h
@@ -41,6 +41,7 @@ struct bNodeTree;
struct bNode;
struct bNodeTree;
struct ScrArea;
+struct Scene;
struct View2D;
typedef enum {
@@ -51,9 +52,9 @@ typedef enum {
} NodeBorder;
/* drawnode.c */
-void ED_init_node_butfuncs(void);
-
-void drawnodesnap(struct View2D *v2d, const float cent[2], float size, NodeBorder border);
+void ED_node_init_butfuncs(void);
+void ED_node_sample_set(const float col[4]);
+void ED_node_draw_snap(struct View2D *v2d, const float cent[2], float size, NodeBorder border);
/* node_draw.c */
void ED_node_tree_update(struct SpaceNode *snode, struct Scene *scene);
@@ -61,21 +62,25 @@ void ED_node_changed_update(struct ID *id, struct bNode *node);
void ED_node_generic_update(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node);
void ED_node_sort(struct bNodeTree *ntree);
+/* node_relationships.c */
+void ED_node_link_intersect_test(struct ScrArea *sa, int test);
+void ED_node_link_insert(struct ScrArea *sa);
+
/* node_edit.c */
void ED_node_shader_default(struct Scene *scene, struct ID *id);
void ED_node_composit_default(struct Scene *sce);
void ED_node_texture_default(struct Tex *tex);
-void ED_node_link_intersect_test(struct ScrArea *sa, int test);
-void ED_node_link_insert(struct ScrArea *sa);
-
+int ED_node_select_check(ListBase *lb);
void ED_node_post_apply_transform(struct bContext *C, struct bNodeTree *ntree);
-
void ED_node_set_active(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node);
-void ED_node_sample_set(const float col[4]);
+void ED_node_composite_job(const bContext *C, struct bNodeTree *nodetree, struct Scene *scene_owner);
-/* node ops.c */
+/* node_ops.c */
void ED_operatormacros_node(void);
+/* node_view.c */
+int ED_space_node_color_sample(struct SpaceNode *snode, struct ARegion *ar, int mval[2], float r_col[3]);
+
#endif /* __ED_NODE_H__ */
diff --git a/source/blender/editors/include/ED_numinput.h b/source/blender/editors/include/ED_numinput.h
index 411df88fb28..126ea13f0b2 100644
--- a/source/blender/editors/include/ED_numinput.h
+++ b/source/blender/editors/include/ED_numinput.h
@@ -57,6 +57,7 @@ typedef struct NumInput {
/*********************** NumInput ********************************/
void initNumInput(NumInput *n);
+#define NUM_STR_REP_LEN 20 /* str must be NUM_STR_LEN * (idx_max + 1) length. */
void outputNumInput(NumInput *n, char *str);
short hasNumInput(NumInput *n);
void applyNumInput(NumInput *n, float *vec);
diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h
index 9209bbb2db7..9836d690e53 100644
--- a/source/blender/editors/include/ED_object.h
+++ b/source/blender/editors/include/ED_object.h
@@ -41,6 +41,7 @@ struct bContext;
struct bPoseChannel;
struct Curve;
struct EnumPropertyItem;
+struct ID;
struct KeyBlock;
struct Lattice;
struct Main;
@@ -84,7 +85,8 @@ typedef enum eParentType {
extern struct EnumPropertyItem prop_clear_parent_types[];
extern struct EnumPropertyItem prop_make_parent_types[];
-int ED_object_parent_set(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, struct Object *par, int partype);
+int ED_object_parent_set(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob,
+ struct Object *par, int partype, int xmirror, int keep_transform);
void ED_object_parent_clear(struct Object *ob, int type);
struct Base *ED_object_scene_link(struct Scene *scene, struct Object *ob);
@@ -101,7 +103,7 @@ void ED_base_object_activate(struct bContext *C, struct Base *base);
void ED_base_object_free_and_unlink(struct Main *bmain, struct Scene *scene, struct Base *base);
-/* single object duplicate, if dupflag==0, fully linked, else it uses the flags given */
+/* single object duplicate, if (dupflag == 0), fully linked, else it uses the flags given */
struct Base *ED_object_add_duplicate(struct Main *bmain, struct Scene *scene, struct Base *base, int dupflag);
void ED_object_parent(struct Object *ob, struct Object *parent, int type, const char *substr);
@@ -124,7 +126,6 @@ float ED_object_new_primitive_matrix(struct bContext *C, struct Object *editob,
const float loc[3], const float rot[3], float primmat[][4]);
void ED_object_add_generic_props(struct wmOperatorType *ot, int do_editmode);
-int ED_object_add_generic_invoke(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
int ED_object_add_generic_get_opts(struct bContext *C, struct wmOperator *op, float loc[3], float rot[3],
int *enter_editmode, unsigned int *layer, int *is_view_aligned);
@@ -177,11 +178,14 @@ int ED_object_modifier_apply(struct ReportList *reports, struct Scene *scene,
int ED_object_modifier_copy(struct ReportList *reports, struct Object *ob, struct ModifierData *md);
int ED_object_iter_other(struct Main *bmain, struct Object *orig_ob, int include_orig,
- int (*callback)(struct Object *ob, void *callback_data),
- void *callback_data);
+ int (*callback)(struct Object *ob, void *callback_data),
+ void *callback_data);
int ED_object_multires_update_totlevels_cb(struct Object *ob, void *totlevel_v);
+/* ibject_select.c */
+void ED_object_select_linked_by_id(struct bContext *C, struct ID *id);
+
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/editors/include/ED_particle.h b/source/blender/editors/include/ED_particle.h
index 0076b08da99..dee97c7882a 100644
--- a/source/blender/editors/include/ED_particle.h
+++ b/source/blender/editors/include/ED_particle.h
@@ -61,7 +61,7 @@ void PE_update_object(struct Scene *scene, struct Object *ob, int useflag);
int PE_mouse_particles(struct bContext *C, const int mval[2], int extend, int deselect, int toggle);
int PE_border_select(struct bContext *C, struct rcti *rect, int select, int extend);
int PE_circle_select(struct bContext *C, int selecting, const int mval[2], float rad);
-int PE_lasso_select(struct bContext *C, int mcords[][2], short moves, short extend, short select);
+int PE_lasso_select(struct bContext *C, const int mcords[][2], const short moves, short extend, short select);
void PE_deselect_all_visible(struct PTCacheEdit *edit);
/* undo */
diff --git a/source/blender/editors/include/ED_render.h b/source/blender/editors/include/ED_render.h
index 7891315be9f..39e2c28a61a 100644
--- a/source/blender/editors/include/ED_render.h
+++ b/source/blender/editors/include/ED_render.h
@@ -56,18 +56,12 @@ void ED_render_scene_update(struct Main *bmain, struct Scene *scene, int updated
typedef struct RenderInfo {
int pr_rectx;
int pr_recty;
- short curtile, tottile, status;
+ short curtile, tottile;
rcti disprect; /* storage for view3d preview rect */
unsigned int *rect;
struct Render *re; /* persistent render */
} RenderInfo;
-/* ri->status */
-#define PR_DBASE 1
-#define PR_DISPRECT 2
-#define PR_PROJECTED 4
-#define PR_ROTATED 8
-
/* Render the preview
*
* pr_method:
diff --git a/source/blender/editors/include/ED_screen.h b/source/blender/editors/include/ED_screen.h
index 4faf82eec36..860d176ffb3 100644
--- a/source/blender/editors/include/ED_screen.h
+++ b/source/blender/editors/include/ED_screen.h
@@ -111,6 +111,7 @@ ScrArea *ED_screen_full_newspace(struct bContext *C, ScrArea *sa, int type);
void ED_screen_full_prevspace(struct bContext *C, ScrArea *sa);
void ED_screen_full_restore(struct bContext *C, ScrArea *sa);
struct ScrArea *ED_screen_full_toggle(struct bContext *C, struct wmWindow *win, struct ScrArea *sa);
+void ED_screens_header_tools_menu_create(struct bContext *C, struct uiLayout *layout, void *arg);
/* anim */
void ED_update_for_newframe(struct Main *bmain, struct Scene *scene, int mute);
@@ -169,6 +170,8 @@ int ED_operator_editlattice(struct bContext *C);
int ED_operator_editmball(struct bContext *C);
int ED_operator_uvedit(struct bContext *C);
int ED_operator_uvmap(struct bContext *C);
+int ED_operator_posemode_exclusive(struct bContext *C);
+int ED_operator_posemode_context(struct bContext *C);
int ED_operator_posemode(struct bContext *C);
int ED_operator_mask(struct bContext *C);
diff --git a/source/blender/editors/include/ED_screen_types.h b/source/blender/editors/include/ED_screen_types.h
index 6b9d8385ac3..527ebb6c3ef 100644
--- a/source/blender/editors/include/ED_screen_types.h
+++ b/source/blender/editors/include/ED_screen_types.h
@@ -98,7 +98,7 @@ typedef struct AZone {
} AZone;
/* actionzone type */
-#define AZONE_AREA 1
-#define AZONE_REGION 2
+#define AZONE_AREA 1 /* corner widgets for splitting areas */
+#define AZONE_REGION 2 /* when a region is collapsed, draw a handle to expose */
#endif /* __ED_SCREEN_TYPES_H__ */
diff --git a/source/blender/editors/include/ED_sculpt.h b/source/blender/editors/include/ED_sculpt.h
index e908868df75..0381ecc1fb3 100644
--- a/source/blender/editors/include/ED_sculpt.h
+++ b/source/blender/editors/include/ED_sculpt.h
@@ -45,8 +45,12 @@ void sculpt_get_redraw_planes(float planes[4][4], struct ARegion *ar,
void ED_sculpt_force_update(struct bContext *C);
float *ED_sculpt_get_last_stroke(struct Object *ob);
int ED_sculpt_minmax(struct bContext *C, float min[3], float max[3]);
-void ED_sculpt_mask_layers_ensure(struct Object *ob,
+int ED_sculpt_mask_layers_ensure(struct Object *ob,
struct MultiresModifierData *mmd);
+enum {
+ ED_SCULPT_MASK_LAYER_CALC_VERT = (1 << 0),
+ ED_SCULPT_MASK_LAYER_CALC_LOOP = (1 << 1)
+};
/* paint_ops.c */
void ED_operatortypes_paint(void);
diff --git a/source/blender/editors/include/ED_sequencer.h b/source/blender/editors/include/ED_sequencer.h
index 7ba26f30c39..84fd5332316 100644
--- a/source/blender/editors/include/ED_sequencer.h
+++ b/source/blender/editors/include/ED_sequencer.h
@@ -29,10 +29,15 @@
struct Scene;
struct Sequence;
+struct SpaceSeq;
void ED_sequencer_select_sequence_single(struct Scene *scene, struct Sequence *seq, int deselect_all);
void ED_sequencer_deselect_all(struct Scene *scene);
+int ED_space_sequencer_maskedit_mask_poll(struct bContext *C);
+int ED_space_sequencer_check_show_maskedit(struct SpaceSeq *sseq, struct Scene *scene);
+int ED_space_sequencer_maskedit_poll(struct bContext *C);
+
void ED_operatormacros_sequencer(void);
#endif /* __ED_SEQUENCER_H__ */
diff --git a/source/blender/editors/include/ED_util.h b/source/blender/editors/include/ED_util.h
index e10f049d0bc..d0ca079b8c9 100644
--- a/source/blender/editors/include/ED_util.h
+++ b/source/blender/editors/include/ED_util.h
@@ -84,6 +84,8 @@ void crazyspace_set_quats_mesh(struct Mesh *me, float *origcos, float *mappedcos
int sculpt_get_first_deform_matrices(struct Scene *scene, struct Object *ob, float (**deformmats)[3][3], float (**deformcos)[3]);
void crazyspace_build_sculpt(struct Scene *scene, struct Object *ob, float (**deformmats)[3][3], float (**deformcos)[3]);
+/* cut-paste buffer free */
+void ED_clipboard_posebuf_free(void);
/* ************** XXX OLD CRUFT WARNING ************* */
diff --git a/source/blender/editors/include/ED_uvedit.h b/source/blender/editors/include/ED_uvedit.h
index 2427ed1a333..56f8a455c52 100644
--- a/source/blender/editors/include/ED_uvedit.h
+++ b/source/blender/editors/include/ED_uvedit.h
@@ -85,6 +85,7 @@ void ED_uvedit_live_unwrap(struct Scene *scene, struct Object *obedit);
void ED_unwrap_lscm(struct Scene *scene, struct Object *obedit, const short sel);
/* uvedit_draw.c */
+void draw_image_cursor(struct SpaceImage *sima, struct ARegion *ar);
void draw_uvedit_main(struct SpaceImage *sima, struct ARegion *ar, struct Scene *scene, struct Object *obedit, struct Object *obact);
/* uvedit_buttons.c */
diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h
index 34892fb3c27..f71133d3118 100644
--- a/source/blender/editors/include/ED_view3d.h
+++ b/source/blender/editors/include/ED_view3d.h
@@ -40,9 +40,11 @@ struct BPoint;
struct BezTriple;
struct BezTriple;
struct BoundBox;
+struct EditBone;
struct ImBuf;
struct MVert;
struct Main;
+struct MetaElem;
struct Nurb;
struct Nurb;
struct Object;
@@ -89,139 +91,79 @@ float *give_cursor(struct Scene *scene, struct View3D *v3d);
int initgrabz(struct RegionView3D *rv3d, float x, float y, float z);
-/**
- * Calculate a 3d location from 2d window coordinates.
- * \param ar The region (used for the window width and height).
- * \param depth_pt The reference location used to calculate the Z depth.
- * \param mval The area relative location (such as event->mval converted to floats).
- * \param out The resulting world-space location.
- */
void ED_view3d_win_to_3d(struct ARegion *ar, const float depth_pt[3], const float mval[2], float out[3]);
-
-/**
- * Calculate a 3d difference vector from 2d window offset.
- * note that initgrabz() must be called first to determine
- * the depth used to calculate the delta.
- * \param ar The region (used for the window width and height).
- * \param mval The area relative 2d difference (such as event->mval[0] - other_x).
- * \param out The resulting world-space delta.
- */
void ED_view3d_win_to_delta(struct ARegion *ar, const float mval[2], float out[3]);
-
-/**
- * Calculate a 3d direction vector from 2d window coordinates.
- * This direction vector starts and the view in the direction of the 2d window coordinates.
- * In orthographic view all window coordinates yield the same vector.
- * \param ar The region (used for the window width and height).
- * \param mval The area relative 2d location (such as event->mval converted to floats).
- * \param out The resulting normalized world-space direction vector.
- */
void ED_view3d_win_to_vector(struct ARegion *ar, const float mval[2], float out[3]);
-
-/**
- * Calculate a 3d segment from 2d window coordinates.
- * This ray_start is located at the viewpoint, ray_end is a far point.
- * ray_start and ray_end are clipped by the view near and far limits
- * so points along this line are always in view.
- * In orthographic view all resulting segments will be parallel.
- * \param ar The region (used for the window width and height).
- * \param v3d The 3d viewport (used for near and far clipping range).
- * \param mval The area relative 2d location (such as event->mval, converted into float[2]).
- * \param ray_start The world-space starting point of the segment.
- * \param ray_end The world-space end point of the segment.
- */
void ED_view3d_win_to_segment_clip(struct ARegion *ar, struct View3D *v3d, const float mval[2], float ray_start[3], float ray_end[3]);
-
-/**
- * Calculate a 3d viewpoint and direction vector from 2d window coordinates.
- * This ray_start is located at the viewpoint, ray_normal is the direction towards mval.
- * ray_start is clipped by the view near limit so points in front of it are always in view.
- * In orthographic view the resulting ray_normal will match the view vector.
- * \param ar The region (used for the window width and height).
- * \param v3d The 3d viewport (used for near clipping value).
- * \param mval The area relative 2d location (such as event->mval, converted into float[2]).
- * \param ray_start The world-space starting point of the segment.
- * \param ray_normal The normalized world-space direction of towards mval.
- */
void ED_view3d_win_to_ray(struct ARegion *ar, struct View3D *v3d, const float mval[2], float ray_start[3], float ray_normal[3]);
-/**
- * Calculate a normalized 3d direction vector from the viewpoint towards a global location.
- * In orthographic view the resulting vector will match the view vector.
- * \param rv3d The region (used for the window width and height).
- * \param coord The world-space location.
- * \param vec The resulting normalized vector.
- */
void ED_view3d_global_to_vector(struct RegionView3D *rv3d, const float coord[3], float vec[3]);
-
-/**
- * Calculate the view transformation matrix from RegionView3D input.
- * The resulting matrix is equivalent to RegionView3D.viewinv
- * \param mat The view 4x4 transformation matrix to calculate.
- * \param ofs The view offset, normally from RegionView3D.ofs.
- * \param quat The view rotation, quaternion normally from RegionView3D.viewquat.
- * \param dist The view distance from ofs, normally from RegionView3D.dist.
- */
void ED_view3d_to_m4(float mat[][4], const float ofs[3], const float quat[4], const float dist);
-
-/**
- * Set the view transformation from a 4x4 matrix.
- * \param mat The view 4x4 transformation matrix to assign.
- * \param ofs The view offset, normally from RegionView3D.ofs.
- * \param quat The view rotation, quaternion normally from RegionView3D.viewquat.
- * \param dist The view distance from ofs, normally from RegionView3D.dist.
- */
void ED_view3d_from_m4(float mat[][4], float ofs[3], float quat[4], float *dist);
-/**
- * Set the RegionView3D members from an objects transformation and optionally lens.
- * \param ob The object to set the view to.
- * \param ofs The view offset to be set, normally from RegionView3D.ofs.
- * \param quat The view rotation to be set, quaternion normally from RegionView3D.viewquat.
- * \param dist The view distance from ofs to be set, normally from RegionView3D.dist.
- * \param lens The view lens angle set for cameras and lamps, normally from View3D.lens.
- */
void ED_view3d_from_object(struct Object *ob, float ofs[3], float quat[4], float *dist, float *lens);
-
-/**
- * Set the object transformation from RegionView3D members.
- * \param ob The object which has the transformation assigned.
- * \param ofs The view offset, normally from RegionView3D.ofs.
- * \param quat The view rotation, quaternion normally from RegionView3D.viewquat.
- * \param dist The view distance from ofs, normally from RegionView3D.dist.
- */
void ED_view3d_to_object(struct Object *ob, const float ofs[3], const float quat[4], const float dist);
-//#if 0 /* UNUSED */
-void view3d_unproject(struct bglMats *mats, float out[3], const short x, const short y, const float z);
-//#endif
-
/* Depth buffer */
-void ED_view3d_depth_update(struct ARegion *ar);
+void ED_view3d_depth_update(struct ARegion *ar);
float ED_view3d_depth_read_cached(struct ViewContext *vc, int x, int y);
-void ED_view3d_depth_tag_update(struct RegionView3D *rv3d);
+void ED_view3d_depth_tag_update(struct RegionView3D *rv3d);
/* Projection */
#define IS_CLIPPED 12000
-void ED_view3d_calc_clipping(struct BoundBox *bb, float planes[4][4], struct bglMats *mats, const struct rcti *rect);
+/* TODO, these functions work quite differently, we should make them behave in a uniform way
+ * otherwise we can't be sure bugs are not added when we need to move from short->float types for eg
+ * - Campbell */
+
+
+/* return values for ED_view3d_project_...() */
+typedef enum {
+ V3D_PROJ_RET_OK = 0,
+ V3D_PROJ_RET_CLIP_NEAR = 1, /* can't avoid this when in perspective mode, (can't avoid) */
+ V3D_PROJ_RET_CLIP_BB = 2, /* bounding box clip - RV3D_CLIPPING */
+ V3D_PROJ_RET_CLIP_WIN = 3, /* outside window bounds */
+ V3D_PROJ_RET_OVERFLOW = 4 /* outside range (mainly for short), (can't avoid) */
+} eV3DProjStatus;
-void project_short(struct ARegion *ar, const float vec[3], short adr[2]);
-void project_short_noclip(struct ARegion *ar, const float vec[3], short adr[2]);
+/* some clipping tests are optional */
+typedef enum {
+ V3D_PROJ_TEST_NOP = 0,
+ V3D_PROJ_TEST_CLIP_BB = (1 << 0),
+ V3D_PROJ_TEST_CLIP_WIN = (1 << 1),
+} eV3DProjTest;
-void project_int(struct ARegion *ar, const float vec[3], int adr[2]);
-void project_int_noclip(struct ARegion *ar, const float vec[3], int adr[2]);
-void apply_project_float(float persmat[4][4], int winx, int winy, const float vec[], float adr[2]);
-void project_float(struct ARegion *ar, const float vec[3], float adr[2]);
-void project_float_noclip(struct ARegion *ar, const float vec[3], float adr[2]);
+/* *** short *** */
+eV3DProjStatus ED_view3d_project_short_ex(struct ARegion *ar, float perspmat[4][4], const int is_local,
+ const float co[3], short r_co[2], eV3DProjTest flag);
+eV3DProjStatus ED_view3d_project_short_global(struct ARegion *ar, const float co[3], short r_co[2], eV3DProjTest flag);
+eV3DProjStatus ED_view3d_project_short_object(struct ARegion *ar, const float co[3], short r_co[2], eV3DProjTest flag);
-int ED_view3d_clip_range_get(struct View3D *v3d, struct RegionView3D *rv3d, float *clipsta, float *clipend);
-int ED_view3d_viewplane_get(struct View3D *v3d, struct RegionView3D *rv3d, int winxi, int winyi, struct rctf *viewplane, float *clipsta, float *clipend);
+/* *** int *** */
+eV3DProjStatus ED_view3d_project_int_ex(struct ARegion *ar, float perspmat[4][4], const int is_local,
+ const float co[3], int r_co[2], eV3DProjTest flag);
+eV3DProjStatus ED_view3d_project_int_global(struct ARegion *ar, const float co[3], int r_co[2], eV3DProjTest flag);
+eV3DProjStatus ED_view3d_project_int_object(struct ARegion *ar, const float co[3], int r_co[2], eV3DProjTest flag);
+
+/* *** float *** */
+eV3DProjStatus ED_view3d_project_float_ex(struct ARegion *ar, float perspmat[4][4], const int is_local,
+ const float co[3], float r_co[2], eV3DProjTest flag);
+eV3DProjStatus ED_view3d_project_float_global(struct ARegion *ar, const float co[3], float r_co[2], eV3DProjTest flag);
+eV3DProjStatus ED_view3d_project_float_object(struct ARegion *ar, const float co[3], float r_co[2], eV3DProjTest flag);
+
+void ED_view3d_project_float_v2_m4(const struct ARegion *a, const float co[3], float r_co[2], float mat[4][4]);
+void ED_view3d_project_float_v3_m4(struct ARegion *a, const float co[3], float r_co[3], float mat[4][4]);
+
+/* Base's get their own function since its a common operation */
+eV3DProjStatus ED_view3d_project_base(struct ARegion *ar, struct Base *base);
+
+void ED_view3d_unproject(struct bglMats *mats, float out[3], const float x, const float y, const float z);
+
+int ED_view3d_clip_range_get(struct View3D *v3d, struct RegionView3D *rv3d, float *clipsta, float *clipend);
+int ED_view3d_viewplane_get(struct View3D *v3d, struct RegionView3D *rv3d, int winxi, int winyi, struct rctf *viewplane, float *clipsta, float *clipend);
void ED_view3d_ob_project_mat_get(struct RegionView3D *v3d, struct Object *ob, float pmat[4][4]);
void ED_view3d_calc_camera_border(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, struct RegionView3D *rv3d, struct rctf *viewborder_r, short no_shift);
-void ED_view3d_project_float_v2(const struct ARegion *a, const float vec[3], float adr[2], float mat[4][4]);
-void ED_view3d_project_float_v3(struct ARegion *a, const float vec[3], float adr[3], float mat[4][4]);
void ED_view3d_calc_camera_border_size(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, struct RegionView3D *rv3d, float size_r[2]);
/* drawobject.c iterators */
@@ -229,8 +171,13 @@ void mesh_foreachScreenVert(struct ViewContext *vc, void (*func)(void *userData,
void mesh_foreachScreenEdge(struct ViewContext *vc, void (*func)(void *userData, struct BMEdge *eed, int x0, int y0, int x1, int y1, int index), void *userData, eV3DClipTest clipVerts);
void mesh_foreachScreenFace(struct ViewContext *vc, void (*func)(void *userData, struct BMFace *efa, int x, int y, int index), void *userData);
void nurbs_foreachScreenVert(struct ViewContext *vc, void (*func)(void *userData, struct Nurb *nu, struct BPoint *bp, struct BezTriple *bezt, int beztindex, int x, int y), void *userData);
+void mball_foreachScreenElem(struct ViewContext *vc, void (*func)(void *userData, struct MetaElem *ml, int x, int y), void *userData);
void lattice_foreachScreenVert(struct ViewContext *vc, void (*func)(void *userData, struct BPoint *bp, int x, int y), void *userData);
+void armature_foreachScreenBone(struct ViewContext *vc, void (*func)(void *userData, struct EditBone *ebone, int x0, int y0, int x1, int y1), void *userData);
+void pose_foreachScreenBone(struct ViewContext *vc, void (*func)(void *userData, struct bPoseChannel *pchan, int x0, int y0, int x1, int y1), void *userData);
+
+void ED_view3d_clipping_calc(struct BoundBox *bb, float planes[4][4], struct bglMats *mats, const struct rcti *rect);
void ED_view3d_clipping_local(struct RegionView3D *rv3d, float mat[][4]);
int ED_view3d_clipping_test(struct RegionView3D *rv3d, const float vec[3], const int is_local);
void ED_view3d_clipping_set(struct RegionView3D *rv3d);
@@ -268,7 +215,7 @@ int view3d_get_view_aligned_coordinate(struct ViewContext *vc, float fp[3], cons
void view3d_get_transformation(const struct ARegion *ar, struct RegionView3D *rv3d, struct Object *ob, struct bglMats *mats);
/* XXX should move to BLI_math */
-int edge_inside_circle(short centx, short centy, short rad, short x1, short y1, short x2, short y2);
+int edge_inside_circle(int centx, int centy, int rad, int x1, int y1, int x2, int y2);
/* get 3d region from context, also if mouse is in header or toolbar */
struct RegionView3D *ED_view3d_context_rv3d(struct bContext *C);
@@ -282,10 +229,12 @@ int ED_view3d_scene_layer_set(int lay, const int *values, int *active);
int ED_view3d_context_activate(struct bContext *C);
void ED_view3d_draw_offscreen(struct Scene *scene, struct View3D *v3d, struct ARegion *ar,
- int winx, int winy, float viewmat[][4], float winmat[][4], int do_bgpic);
+ int winx, int winy, float viewmat[][4], float winmat[][4], int do_bgpic, int colormanage_background);
-struct ImBuf *ED_view3d_draw_offscreen_imbuf(struct Scene *scene, struct View3D *v3d, struct ARegion *ar, int sizex, int sizey, unsigned int flag, int draw_background, char err_out[256]);
-struct ImBuf *ED_view3d_draw_offscreen_imbuf_simple(struct Scene *scene, struct Object *camera, int width, int height, unsigned int flag, int drawtype, int draw_background, char err_out[256]);
+struct ImBuf *ED_view3d_draw_offscreen_imbuf(struct Scene *scene, struct View3D *v3d, struct ARegion *ar, int sizex, int sizey, unsigned int flag,
+ int draw_background, int colormanage_background, char err_out[256]);
+struct ImBuf *ED_view3d_draw_offscreen_imbuf_simple(struct Scene *scene, struct Object *camera, int width, int height, unsigned int flag, int drawtype,
+ int draw_background, int colormanage_background, char err_out[256]);
struct Base *ED_view3d_give_base_under_cursor(struct bContext *C, const int mval[2]);
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index bb6f9fad771..5d2709f0488 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -120,11 +120,12 @@ typedef struct uiLayout uiLayout;
#define UI_BLOCK_CLIP_EVENTS 8192 /* stop handling mouse events */
/* uiPopupBlockHandle->menuretval */
-#define UI_RETURN_CANCEL 1 /* cancel all menus cascading */
-#define UI_RETURN_OK 2 /* choice made */
-#define UI_RETURN_OUT 4 /* left the menu */
-#define UI_RETURN_UPDATE 8 /* update the button that opened */
-#define UI_RETURN_POPUP_OK 16 /* popup is ok to be handled */
+#define UI_RETURN_CANCEL 1 /* cancel all menus cascading */
+#define UI_RETURN_OK 2 /* choice made */
+#define UI_RETURN_OUT 4 /* left the menu */
+#define UI_RETURN_OUT_PARENT 8 /* let the parent handle this event */
+#define UI_RETURN_UPDATE 16 /* update the button that opened */
+#define UI_RETURN_POPUP_OK 32 /* popup is ok to be handled */
/* block->flag bits 12-15 are identical to but->flag bits */
@@ -187,69 +188,73 @@ typedef struct uiLayout uiLayout;
* - bit 8: for 'bit'
* - bit 9-15: button type (now 6 bits, 64 types)
* */
-
-#define CHA 32
-#define SHO 64
-#define INT 96
-#define FLO 128
-/*#define FUN 192*/ /*UNUSED*/
-#define BIT 256
-
-/* button reqyires a pointer */
-#define BUTPOIN (FLO | SHO | CHA)
-
-#define BUT (1 << 9)
-#define ROW (2 << 9)
-#define TOG (3 << 9)
-#define SLI (4 << 9)
-#define NUM (5 << 9)
-#define TEX (6 << 9)
-#define TOG3 (7 << 9)
-#define TOGR (8 << 9)
-#define TOGN (9 << 9)
-#define LABEL (10 << 9)
-#define MENU (11 << 9)
-#define ICONROW (12 << 9)
-#define ICONTOG (13 << 9)
-#define NUMSLI (14 << 9)
-#define COL (15 << 9)
-#define IDPOIN (16 << 9)
-#define HSVSLI (17 << 9)
-#define SCROLL (18 << 9)
-#define BLOCK (19 << 9)
-#define BUTM (20 << 9)
-#define SEPR (21 << 9)
-#define LINK (22 << 9)
-#define INLINK (23 << 9)
-#define KEYEVT (24 << 9)
-#define ICONTEXTROW (25 << 9)
-#define HSVCUBE (26 << 9)
-#define PULLDOWN (27 << 9)
-#define ROUNDBOX (28 << 9)
-#define CHARTAB (29 << 9)
-#define BUT_COLORBAND (30 << 9)
-#define BUT_NORMAL (31 << 9)
-#define BUT_CURVE (32 << 9)
-#define BUT_TOGDUAL (33 << 9)
-#define ICONTOGN (34 << 9)
-#define FTPREVIEW (35 << 9)
-#define NUMABS (36 << 9)
-#define TOGBUT (37 << 9)
-#define OPTION (38 << 9)
-#define OPTIONN (39 << 9)
-#define TRACKPREVIEW (40 << 9)
-/* buttons with value >= SEARCH_MENU don't get undo pushes */
-#define SEARCH_MENU (41 << 9)
-#define BUT_EXTRA (42 << 9)
-#define HSVCIRCLE (43 << 9)
-#define LISTBOX (44 << 9)
-#define LISTROW (45 << 9)
-#define HOTKEYEVT (46 << 9)
-#define BUT_IMAGE (47 << 9)
-#define HISTOGRAM (48 << 9)
-#define WAVEFORM (49 << 9)
-#define VECTORSCOPE (50 << 9)
-#define PROGRESSBAR (51 << 9)
+typedef enum {
+ UI_BUT_POIN_CHAR = 32,
+ UI_BUT_POIN_SHORT = 64,
+ UI_BUT_POIN_INT = 96,
+ UI_BUT_POIN_FLOAT = 128,
+/* UI_BUT_POIN_FUNCTION = 192, */ /*UNUSED*/
+ UI_BUT_POIN_BIT = 256 /* OR'd with a bit index*/
+} eButPointerType;
+
+/* requires (but->poin != NULL) */
+#define UI_BUT_POIN_TYPES (UI_BUT_POIN_FLOAT | UI_BUT_POIN_SHORT | UI_BUT_POIN_CHAR)
+
+/* assigned to but->type, OR'd with the flags above when passing args */
+typedef enum {
+ BUT = (1 << 9),
+ ROW = (2 << 9),
+ TOG = (3 << 9),
+ SLI = (4 << 9),
+ NUM = (5 << 9),
+ TEX = (6 << 9),
+ TOG3 = (7 << 9),
+ TOGR = (8 << 9),
+ TOGN = (9 << 9),
+ LABEL = (10 << 9),
+ MENU = (11 << 9),
+ ICONROW = (12 << 9),
+ ICONTOG = (13 << 9),
+ NUMSLI = (14 << 9),
+ COLOR = (15 << 9),
+ IDPOIN = (16 << 9),
+ HSVSLI = (17 << 9),
+ SCROLL = (18 << 9),
+ BLOCK = (19 << 9),
+ BUTM = (20 << 9),
+ SEPR = (21 << 9),
+ LINK = (22 << 9),
+ INLINK = (23 << 9),
+ KEYEVT = (24 << 9),
+ ICONTEXTROW = (25 << 9),
+ HSVCUBE = (26 << 9),
+ PULLDOWN = (27 << 9),
+ ROUNDBOX = (28 << 9),
+ CHARTAB = (29 << 9),
+ BUT_COLORBAND = (30 << 9),
+ BUT_NORMAL = (31 << 9),
+ BUT_CURVE = (32 << 9),
+ BUT_TOGDUAL = (33 << 9),
+ ICONTOGN = (34 << 9),
+ /* FTPREVIEW = (35 << 9), */ /* UNUSED */
+ NUMABS = (36 << 9),
+ TOGBUT = (37 << 9),
+ OPTION = (38 << 9),
+ OPTIONN = (39 << 9),
+ TRACKPREVIEW = (40 << 9),
+ /* buttons with value >= SEARCH_MENU don't get undo pushes */
+ SEARCH_MENU = (41 << 9),
+ BUT_EXTRA = (42 << 9),
+ HSVCIRCLE = (43 << 9),
+ LISTBOX = (44 << 9),
+ LISTROW = (45 << 9),
+ HOTKEYEVT = (46 << 9),
+ BUT_IMAGE = (47 << 9),
+ HISTOGRAM = (48 << 9),
+ WAVEFORM = (49 << 9),
+ VECTORSCOPE = (50 << 9),
+ PROGRESSBAR = (51 << 9)
+} eButType;
#define BUTTYPE (63 << 9)
@@ -394,7 +399,8 @@ void uiBlockBeginAlign(uiBlock *block);
void uiBlockEndAlign(uiBlock *block);
/* block bounds/position calculation */
-enum {
+typedef enum {
+ UI_BLOCK_BOUNDS_NONE = 0,
UI_BLOCK_BOUNDS = 1,
UI_BLOCK_BOUNDS_TEXT,
UI_BLOCK_BOUNDS_POPUP_MOUSE,
@@ -415,7 +421,6 @@ void uiBlockSetDirection(uiBlock *block, int direction);
void uiBlockFlipOrder(uiBlock *block);
void uiBlockSetFlag(uiBlock *block, int flag);
void uiBlockClearFlag(uiBlock *block, int flag);
-void uiBlockSetXOfs(uiBlock *block, int xofs);
int uiButGetRetVal(uiBut *but);
@@ -455,19 +460,19 @@ uiBut *uiDefBut(uiBlock *block,
void *poin,
float min, float max,
float a1, float a2, const char *tip);
-uiBut *uiDefButF(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefButBitF(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefButI(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefButBitI(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefButS(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefButBitS(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefButC(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefButBitC(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefButR(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefButR_prop(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefButO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, const char *tip);
-uiBut *uiDefButO_ptr(uiBlock *block, int type, struct wmOperatorType *ot, int opcontext, const char *str, int x1, int y1, short x2, short y2, const char *tip);
-uiBut *uiDefButTextO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButF(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButBitF(uiBlock *block, int type, int bit, int retval, const char *str, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButI(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButBitI(uiBlock *block, int type, int bit, int retval, const char *str, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButS(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButBitS(uiBlock *block, int type, int bit, int retval, const char *str, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButC(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButBitC(uiBlock *block, int type, int bit, int retval, const char *str, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButR(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButR_prop(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x, int y, short width, short height, const char *tip);
+uiBut *uiDefButO_ptr(uiBlock *block, int type, struct wmOperatorType *ot, int opcontext, const char *str, int x, int y, short width, short height, const char *tip);
+uiBut *uiDefButTextO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip);
uiBut *uiDefIconBut(uiBlock *block,
int type, int retval, int icon,
@@ -476,18 +481,18 @@ uiBut *uiDefIconBut(uiBlock *block,
void *poin,
float min, float max,
float a1, float a2, const char *tip);
-uiBut *uiDefIconButF(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconButBitF(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconButI(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconButBitI(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconButS(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconButBitS(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconButC(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconButBitC(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconButR_prop(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, int x1, int y1, short x2, short y2, const char *tip);
-uiBut *uiDefIconButO_ptr(uiBlock *block, int type, struct wmOperatorType *ot, int opcontext, int icon, int x1, int y1, short x2, short y2, const char *tip);
+uiBut *uiDefIconButF(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButBitF(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButI(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButBitI(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButS(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButBitS(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButC(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButBitC(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButR_prop(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, struct PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, int x, int y, short width, short height, const char *tip);
+uiBut *uiDefIconButO_ptr(uiBlock *block, int type, struct wmOperatorType *ot, int opcontext, int icon, int x, int y, short width, short height, const char *tip);
uiBut *uiDefIconTextBut(uiBlock *block,
int type, int retval, int icon, const char *str,
@@ -496,18 +501,18 @@ uiBut *uiDefIconTextBut(uiBlock *block,
void *poin,
float min, float max,
float a1, float a2, const char *tip);
-uiBut *uiDefIconTextButF(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconTextButBitF(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconTextButI(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconTextButBitI(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconTextButS(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconTextButBitS(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconTextButC(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconTextButBitC(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconTextButR_prop(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip);
-uiBut *uiDefIconTextButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip);
-uiBut *uiDefIconTextButO_ptr(uiBlock *block, int type, struct wmOperatorType *ot, int opcontext, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip);
+uiBut *uiDefIconTextButF(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButBitF(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButI(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButBitI(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButS(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButBitS(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButC(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButBitC(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButR_prop(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, const char *str, int x, int y, short width, short height, const char *tip);
+uiBut *uiDefIconTextButO_ptr(uiBlock *block, int type, struct wmOperatorType *ot, int opcontext, int icon, const char *str, int x, int y, short width, short height, const char *tip);
/* for passing inputs to ButO buttons */
struct PointerRNA *uiButGetOperatorPtrRNA(uiBut *but);
@@ -515,6 +520,34 @@ struct PointerRNA *uiButGetOperatorPtrRNA(uiBut *but);
void uiButSetUnitType(uiBut *but, const int unit_type);
int uiButGetUnitType(uiBut *but);
+enum {
+ BUT_GET_RNAPROP_IDENTIFIER = 1,
+ BUT_GET_RNASTRUCT_IDENTIFIER,
+ BUT_GET_RNAENUM_IDENTIFIER,
+ BUT_GET_LABEL,
+ BUT_GET_RNA_LABEL,
+ BUT_GET_RNAENUM_LABEL,
+ BUT_GET_RNA_LABEL_CONTEXT, /* Context specified in CTX_XXX_ macros are just unreachable! */
+ BUT_GET_TIP,
+ BUT_GET_RNA_TIP,
+ BUT_GET_RNAENUM_TIP,
+ BUT_GET_OP_KEYMAP
+};
+
+typedef struct uiStringInfo {
+ int type;
+ char *strinfo;
+} uiStringInfo;
+
+/* Note: Expects pointers to uiStringInfo structs as parameters.
+ * Will fill them with translated strings, when possible.
+ * Strings in uiStringInfo must be MEM_freeN'ed by caller. */
+void uiButGetStrInfo(struct bContext *C, uiBut *but, int nbr, ...);
+
+/* Edit i18n stuff. */
+/* Name of the main py op from i18n addon. */
+#define EDTSRC_I18N_OP_NAME "UI_OT_edittranslation"
+
/* Special Buttons
*
* Buttons with a more specific purpose:
@@ -544,25 +577,25 @@ typedef void (*uiIDPoinFuncFP)(struct bContext *C, const char *str, struct ID **
typedef void (*uiIDPoinFunc)(struct bContext *C, struct ID *id, int event);
uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int retval, const char *str,
- int x1, int y1, short x2, short y2, void *idpp, const char *tip);
+ int x, int y, short width, short height, void *idpp, const char *tip);
int uiIconFromID(struct ID *id);
-uiBut *uiDefPulldownBut(uiBlock *block, uiBlockCreateFunc func, void *arg, const char *str, int x1, int y1, short x2, short y2, const char *tip);
-uiBut *uiDefMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, const char *str, int x1, int y1, short x2, short y2, const char *tip);
-uiBut *uiDefIconTextMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip);
-uiBut *uiDefIconMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, int x1, int y1, short x2, short y2, const char *tip);
+uiBut *uiDefPulldownBut(uiBlock *block, uiBlockCreateFunc func, void *arg, const char *str, int x, int y, short width, short height, const char *tip);
+uiBut *uiDefMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, const char *str, int x, int y, short width, short height, const char *tip);
+uiBut *uiDefIconTextMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, const char *str, int x, int y, short width, short height, const char *tip);
+uiBut *uiDefIconMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, int x, int y, short width, short height, const char *tip);
-uiBut *uiDefBlockBut(uiBlock *block, uiBlockCreateFunc func, void *func_arg1, const char *str, int x1, int y1, short x2, short y2, const char *tip);
-uiBut *uiDefBlockButN(uiBlock *block, uiBlockCreateFunc func, void *argN, const char *str, int x1, int y1, short x2, short y2, const char *tip);
+uiBut *uiDefBlockBut(uiBlock *block, uiBlockCreateFunc func, void *func_arg1, const char *str, int x, int y, short width, short height, const char *tip);
+uiBut *uiDefBlockButN(uiBlock *block, uiBlockCreateFunc func, void *argN, const char *str, int x, int y, short width, short height, const char *tip);
-uiBut *uiDefIconBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int retval, int icon, int x1, int y1, short x2, short y2, const char *tip);
-uiBut *uiDefIconTextBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip);
+uiBut *uiDefIconBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int retval, int icon, int x, int y, short width, short height, const char *tip);
+uiBut *uiDefIconTextBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int icon, const char *str, int x, int y, short width, short height, const char *tip);
-uiBut *uiDefKeyevtButS(uiBlock *block, int retval, const char *str, int x1, int y1, short x2, short y2, short *spoin, const char *tip);
-uiBut *uiDefHotKeyevtButS(uiBlock *block, int retval, const char *str, int x1, int y1, short x2, short y2, short *keypoin, short *modkeypoin, const char *tip);
+uiBut *uiDefKeyevtButS(uiBlock *block, int retval, const char *str, int x, int y, short width, short height, short *spoin, const char *tip);
+uiBut *uiDefHotKeyevtButS(uiBlock *block, int retval, const char *str, int x, int y, short width, short height, short *keypoin, short *modkeypoin, const char *tip);
-uiBut *uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxlen, int x1, int y1, short x2, short y2, float a1, float a2, const char *tip);
+uiBut *uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxlen, int x, int y, short width, short height, float a1, float a2, const char *tip);
uiBut *uiDefAutoButR(uiBlock *block, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, const char *name, int icon, int x1, int y1, int x2, int y2);
int uiDefAutoButsRNA(uiLayout *layout, struct PointerRNA *ptr, int (*check_prop)(struct PointerRNA *, struct PropertyRNA *), const char label_align);
@@ -595,7 +628,9 @@ void uiButSetNFunc(uiBut *but, uiButHandleNFunc func, void *argN, void
void uiButSetCompleteFunc(uiBut *but, uiButCompleteFunc func, void *arg);
-void uiBlockSetDrawExtraFunc(uiBlock *block, void (*func)(const struct bContext *C, void *, void *, void *, struct rcti *rect), void *arg1, void *arg2);
+void uiBlockSetDrawExtraFunc(uiBlock *block,
+ void (*func)(const struct bContext *C, void *, void *, void *, struct rcti *rect),
+ void *arg1, void *arg2);
void uiButSetFocusOnEnter(struct wmWindow *win, uiBut *but);
@@ -714,7 +749,9 @@ void uiLayoutSetFunc(uiLayout *layout, uiMenuHandleFunc handlefunc, void *argv);
void uiLayoutSetContextPointer(uiLayout *layout, const char *name, struct PointerRNA *ptr);
void uiLayoutContextCopy(uiLayout *layout, struct bContextStore *context);
const char *uiLayoutIntrospect(uiLayout *layout); // XXX - testing
-void uiLayoutOperatorButs(const struct bContext *C, struct uiLayout *layout, struct wmOperator *op, int (*check_prop)(struct PointerRNA *, struct PropertyRNA *), const char label_align, const short flag);
+void uiLayoutOperatorButs(const struct bContext *C, struct uiLayout *layout, struct wmOperator *op,
+ int (*check_prop)(struct PointerRNA *, struct PropertyRNA *),
+ const char label_align, const short flag);
struct MenuType *uiButGetMenuType(uiBut *but);
void uiLayoutSetOperatorContext(uiLayout *layout, int opcontext);
@@ -773,8 +810,10 @@ void uiTemplateCurveMapping(uiLayout *layout, struct PointerRNA *ptr, const char
void uiTemplateColorWheel(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int value_slider, int lock, int lock_luminosity, int cubic);
void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, const char *propname,
PointerRNA *used_ptr, const char *used_propname, int active_layer);
+void uiTemplateGameStates(uiLayout *layout, struct PointerRNA *ptr, const char *propname,
+ PointerRNA *used_ptr, const char *used_propname, int active_state);
void uiTemplateImage(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, struct PointerRNA *userptr, int compact);
-void uiTemplateImageSettings(uiLayout *layout, struct PointerRNA *imfptr);
+void uiTemplateImageSettings(uiLayout *layout, struct PointerRNA *imfptr, int color_management);
void uiTemplateImageLayers(uiLayout *layout, struct bContext *C, struct Image *ima, struct ImageUser *iuser);
void uiTemplateRunningJobs(uiLayout *layout, struct bContext *C);
void uiTemplateOperatorSearch(uiLayout *layout);
@@ -794,6 +833,9 @@ void uiTemplateMovieClip(struct uiLayout *layout, struct bContext *C, struct Poi
void uiTemplateTrack(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname);
void uiTemplateMarker(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname, PointerRNA *userptr, PointerRNA *trackptr, int cmpact);
+void uiTemplateColorspaceSettings(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname);
+void uiTemplateColormanagedViewSettings(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname);
+
/* items */
void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname);
void uiItemEnumO_ptr(uiLayout *layout, struct wmOperatorType *ot, const char *name, int icon, const char *propname, int value);
diff --git a/source/blender/editors/include/UI_resources.h b/source/blender/editors/include/UI_resources.h
index 51df30d6c28..e879a01dbfb 100644
--- a/source/blender/editors/include/UI_resources.h
+++ b/source/blender/editors/include/UI_resources.h
@@ -127,6 +127,7 @@ enum {
TH_BONE_SOLID,
TH_BONE_POSE,
+ TH_BONE_POSE_ACTIVE,
TH_STRIP,
TH_STRIP_SELECT,
diff --git a/source/blender/editors/include/UI_view2d.h b/source/blender/editors/include/UI_view2d.h
index 5039a30b61a..24759fa778a 100644
--- a/source/blender/editors/include/UI_view2d.h
+++ b/source/blender/editors/include/UI_view2d.h
@@ -120,8 +120,8 @@ enum {
/* Macros: */
/* test if mouse in a scrollbar (assume that scroller availability has been tested) */
-#define IN_2D_VERT_SCROLL(v2d, co) (BLI_in_rcti(&v2d->vert, co[0], co[1]))
-#define IN_2D_HORIZ_SCROLL(v2d, co) (BLI_in_rcti(&v2d->hor, co[0], co[1]))
+#define IN_2D_VERT_SCROLL(v2d, co) (BLI_rcti_isect_pt_v(&v2d->vert, co))
+#define IN_2D_HORIZ_SCROLL(v2d, co) (BLI_rcti_isect_pt_v(&v2d->hor, co))
/* ------------------------------------------ */
/* Type definitions: */
@@ -163,7 +163,8 @@ void UI_view2d_view_orthoSpecial(struct ARegion *ar, struct View2D *v2d, short x
void UI_view2d_view_restore(const struct bContext *C);
/* grid drawing */
-View2DGrid *UI_view2d_grid_calc(struct Scene *scene, struct View2D *v2d, short xunits, short xclamp, short yunits, short yclamp, int winx, int winy);
+View2DGrid *UI_view2d_grid_calc(struct Scene *scene, struct View2D *v2d,
+ short xunits, short xclamp, short yunits, short yclamp, int winx, int winy);
void UI_view2d_grid_draw(struct View2D *v2d, View2DGrid *grid, int flag);
void UI_view2d_constant_grid_draw(struct View2D *v2d);
void UI_view2d_multi_grid_draw(struct View2D *v2d, float step, int level_size, int totlevels);
@@ -171,14 +172,21 @@ void UI_view2d_grid_size(View2DGrid *grid, float *r_dx, float *r_dy);
void UI_view2d_grid_free(View2DGrid *grid);
/* scrollbar drawing */
-View2DScrollers *UI_view2d_scrollers_calc(const struct bContext *C, struct View2D *v2d, short xunits, short xclamp, short yunits, short yclamp);
+View2DScrollers *UI_view2d_scrollers_calc(const struct bContext *C, struct View2D *v2d,
+ short xunits, short xclamp, short yunits, short yclamp);
void UI_view2d_scrollers_draw(const struct bContext *C, struct View2D *v2d, View2DScrollers *scrollers);
void UI_view2d_scrollers_free(View2DScrollers *scrollers);
/* list view tools */
-void UI_view2d_listview_cell_to_view(struct View2D *v2d, short columnwidth, short rowheight, float startx, float starty, int column, int row, struct rctf *rect);
-void UI_view2d_listview_view_to_cell(struct View2D *v2d, short columnwidth, short rowheight, float startx, float starty, float viewx, float viewy, int *column, int *row);
-void UI_view2d_listview_visible_cells(struct View2D *v2d, short columnwidth, short rowheight, float startx, float starty, int *column_min, int *column_max, int *row_min, int *row_max);
+void UI_view2d_listview_cell_to_view(struct View2D *v2d, short columnwidth, short rowheight,
+ float startx, float starty, int column, int row,
+ struct rctf *rect);
+void UI_view2d_listview_view_to_cell(struct View2D *v2d, short columnwidth, short rowheight,
+ float startx, float starty, float viewx, float viewy,
+ int *column, int *row);
+void UI_view2d_listview_visible_cells(struct View2D *v2d, short columnwidth, short rowheight,
+ float startx, float starty, int *column_min, int *column_max,
+ int *row_min, int *row_max);
/* coordinate conversion */
void UI_view2d_region_to_view(struct View2D *v2d, int x, int y, float *viewx, float *viewy);
@@ -202,5 +210,8 @@ void UI_view2d_text_cache_draw(struct ARegion *ar);
void UI_view2d_operatortypes(void);
void UI_view2d_keymap(struct wmKeyConfig *keyconf);
+void UI_view2d_smooth_view(struct bContext *C, struct ARegion *ar,
+ const struct rctf *cur);
+
#endif /* __UI_VIEW2D_H__ */
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index 49d56d427ba..d442ce1b04b 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -33,7 +33,8 @@
#include <math.h>
#include <string.h>
#include <ctype.h>
-
+#include <stddef.h> /* offsetof() */
+
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
@@ -41,7 +42,12 @@
#include "DNA_userdef_types.h"
#include "BLI_math.h"
-#include "BLI_blenlib.h"
+#include "BLI_listbase.h"
+#include "BLI_string.h"
+#include "BLI_string_utf8.h"
+#include "BLI_path_util.h"
+#include "BLI_rect.h"
+
#include "BLI_dynstr.h"
#include "BLI_utildefines.h"
@@ -50,7 +56,6 @@
#include "BKE_unit.h"
#include "BKE_screen.h"
#include "BKE_idprop.h"
-#include "BKE_utildefines.h" /* FILE_MAX */
#include "BIF_gl.h"
@@ -70,11 +75,9 @@
#include "BPY_extern.h"
-#include "interface_intern.h"
+#include "IMB_colormanagement.h"
-#define MENU_WIDTH 120
-#define MENU_ITEM_HEIGHT 20
-#define MENU_SEP_HEIGHT 6
+#include "interface_intern.h"
#define PRECISION_FLOAT_MAX 6
#define PRECISION_FLOAT_MAX_POW 1000000 /* pow(10, PRECISION_FLOAT_MAX) */
@@ -99,8 +102,8 @@ void ui_block_to_window_fl(const ARegion *ar, uiBlock *block, float *x, float *y
float gx, gy;
int sx, sy, getsizex, getsizey;
- getsizex = ar->winrct.xmax - ar->winrct.xmin + 1;
- getsizey = ar->winrct.ymax - ar->winrct.ymin + 1;
+ getsizex = BLI_rcti_size_x(&ar->winrct) + 1;
+ getsizey = BLI_rcti_size_y(&ar->winrct) + 1;
sx = ar->winrct.xmin;
sy = ar->winrct.ymin;
@@ -129,7 +132,7 @@ void ui_block_to_window(const ARegion *ar, uiBlock *block, int *x, int *y)
*y = (int)(fy + 0.5f);
}
-void ui_block_to_window_rct(const ARegion *ar, uiBlock *block, rctf *graph, rcti *winr)
+void ui_block_to_window_rct(const ARegion *ar, uiBlock *block, const rctf *graph, rcti *winr)
{
rctf tmpr;
@@ -137,10 +140,7 @@ void ui_block_to_window_rct(const ARegion *ar, uiBlock *block, rctf *graph, rcti
ui_block_to_window_fl(ar, block, &tmpr.xmin, &tmpr.ymin);
ui_block_to_window_fl(ar, block, &tmpr.xmax, &tmpr.ymax);
- winr->xmin = tmpr.xmin;
- winr->ymin = tmpr.ymin;
- winr->xmax = tmpr.xmax;
- winr->ymax = tmpr.ymax;
+ BLI_rcti_rctf_copy(winr, &tmpr);
}
void ui_window_to_block_fl(const ARegion *ar, uiBlock *block, float *x, float *y) /* for mouse cursor */
@@ -148,8 +148,8 @@ void ui_window_to_block_fl(const ARegion *ar, uiBlock *block, float *x, float *y
float a, b, c, d, e, f, px, py;
int sx, sy, getsizex, getsizey;
- getsizex = ar->winrct.xmax - ar->winrct.xmin + 1;
- getsizey = ar->winrct.ymax - ar->winrct.ymin + 1;
+ getsizex = BLI_rcti_size_x(&ar->winrct) + 1;
+ getsizey = BLI_rcti_size_y(&ar->winrct) + 1;
sx = ar->winrct.xmin;
sy = ar->winrct.ymin;
@@ -196,19 +196,13 @@ void ui_window_to_region(const ARegion *ar, int *x, int *y)
void ui_block_translate(uiBlock *block, int x, int y)
{
- uiBut *bt;
+ uiBut *but;
- for (bt = block->buttons.first; bt; bt = bt->next) {
- bt->x1 += x;
- bt->y1 += y;
- bt->x2 += x;
- bt->y2 += y;
+ for (but = block->buttons.first; but; but = but->next) {
+ BLI_rctf_translate(&but->rect, x, y);
}
- block->minx += x;
- block->miny += y;
- block->maxx += x;
- block->maxy += y;
+ BLI_rctf_translate(&block->rect, x, y);
}
static void ui_text_bounds_block(uiBlock *block, float offset)
@@ -227,26 +221,27 @@ static void ui_text_bounds_block(uiBlock *block, float offset)
if (j > i) i = j;
}
- if (bt->next && bt->x1 < bt->next->x1)
+ if (bt->next && bt->rect.xmin < bt->next->rect.xmin)
lastcol++;
}
/* cope with multi collumns */
bt = block->buttons.first;
while (bt) {
- if (bt->next && bt->x1 < bt->next->x1) {
+ if (bt->next && bt->rect.xmin < bt->next->rect.xmin) {
nextcol = 1;
col++;
}
else nextcol = 0;
- bt->x1 = x1addval;
- bt->x2 = bt->x1 + i + block->bounds;
+ bt->rect.xmin = x1addval;
+ bt->rect.xmax = bt->rect.xmin + i + block->bounds;
- if (col == lastcol)
- bt->x2 = MAX2(bt->x2, offset + block->minbounds);
+ if (col == lastcol) {
+ bt->rect.xmax = maxf(bt->rect.xmax, offset + block->minbounds);
+ }
- ui_check_but(bt); // clips text again
+ ui_check_but(bt); /* clips text again */
if (nextcol)
x1addval += i + block->bounds;
@@ -262,43 +257,35 @@ void ui_bounds_block(uiBlock *block)
if (block->buttons.first == NULL) {
if (block->panel) {
- block->minx = 0.0; block->maxx = block->panel->sizex;
- block->miny = 0.0; block->maxy = block->panel->sizey;
+ block->rect.xmin = 0.0; block->rect.xmax = block->panel->sizex;
+ block->rect.ymin = 0.0; block->rect.ymax = block->panel->sizey;
}
}
else {
- block->minx = block->miny = 10000;
- block->maxx = block->maxy = -10000;
-
- bt = block->buttons.first;
- while (bt) {
- if (bt->x1 < block->minx) block->minx = bt->x1;
- if (bt->y1 < block->miny) block->miny = bt->y1;
-
- if (bt->x2 > block->maxx) block->maxx = bt->x2;
- if (bt->y2 > block->maxy) block->maxy = bt->y2;
+ BLI_rctf_init_minmax(&block->rect);
- bt = bt->next;
+ for (bt = block->buttons.first; bt; bt = bt->next) {
+ BLI_rctf_union(&block->rect, &bt->rect);
}
- block->minx -= block->bounds;
- block->miny -= block->bounds;
- block->maxx += block->bounds;
- block->maxy += block->bounds;
+ block->rect.xmin -= block->bounds;
+ block->rect.ymin -= block->bounds;
+ block->rect.xmax += block->bounds;
+ block->rect.ymax += block->bounds;
}
- block->maxx = block->minx + MAX2(block->maxx - block->minx, block->minbounds);
+ block->rect.xmax = block->rect.xmin + maxf(BLI_rctf_size_x(&block->rect), block->minbounds);
/* hardcoded exception... but that one is annoying with larger safety */
bt = block->buttons.first;
if (bt && strncmp(bt->str, "ERROR", 5) == 0) xof = 10;
else xof = 40;
- block->safety.xmin = block->minx - xof;
- block->safety.ymin = block->miny - xof;
- block->safety.xmax = block->maxx + xof;
- block->safety.ymax = block->maxy + xof;
+ block->safety.xmin = block->rect.xmin - xof;
+ block->safety.ymin = block->rect.ymin - xof;
+ block->safety.xmax = block->rect.xmax + xof;
+ block->safety.ymax = block->rect.ymax + xof;
}
static void ui_centered_bounds_block(const bContext *C, uiBlock *block)
@@ -316,19 +303,19 @@ static void ui_centered_bounds_block(const bContext *C, uiBlock *block)
ui_bounds_block(block);
- width = block->maxx - block->minx;
- height = block->maxy - block->miny;
+ width = BLI_rctf_size_x(&block->rect);
+ height = BLI_rctf_size_y(&block->rect);
startx = (xmax * 0.5f) - (width * 0.5f);
starty = (ymax * 0.5f) - (height * 0.5f);
- ui_block_translate(block, startx - block->minx, starty - block->miny);
+ ui_block_translate(block, startx - block->rect.xmin, starty - block->rect.ymin);
/* now recompute bounds and safety */
ui_bounds_block(block);
}
-static void ui_popup_bounds_block(const bContext *C, uiBlock *block, int bounds_calc)
+static void ui_popup_bounds_block(const bContext *C, uiBlock *block, eBlockBoundsCalc bounds_calc)
{
wmWindow *window = CTX_wm_window(C);
int startx, starty, endx, endy, width, height, oldwidth, oldheight;
@@ -341,14 +328,14 @@ static void ui_popup_bounds_block(const bContext *C, uiBlock *block, int bounds_
wm_window_get_size(window, &xmax, &ymax);
- oldwidth = block->maxx - block->minx;
- oldheight = block->maxy - block->miny;
+ oldwidth = BLI_rctf_size_x(&block->rect);
+ oldheight = BLI_rctf_size_y(&block->rect);
/* first we ensure wide enough text bounds */
if (bounds_calc == UI_BLOCK_BOUNDS_POPUP_MENU) {
if (block->flag & UI_BLOCK_LOOP) {
block->bounds = 50;
- ui_text_bounds_block(block, block->minx);
+ ui_text_bounds_block(block, block->rect.xmin);
}
}
@@ -357,8 +344,8 @@ static void ui_popup_bounds_block(const bContext *C, uiBlock *block, int bounds_
ui_bounds_block(block);
/* and we adjust the position to fit within window */
- width = block->maxx - block->minx;
- height = block->maxy - block->miny;
+ width = BLI_rctf_size_x(&block->rect);
+ height = BLI_rctf_size_y(&block->rect);
/* avoid divide by zero below, caused by calling with no UI, but better not crash */
oldwidth = oldwidth > 0 ? oldwidth : MAX2(1, width);
@@ -366,8 +353,8 @@ static void ui_popup_bounds_block(const bContext *C, uiBlock *block, int bounds_
/* offset block based on mouse position, user offset is scaled
* along in case we resized the block in ui_text_bounds_block */
- startx = window->eventstate->x + block->minx + (block->mx * width) / oldwidth;
- starty = window->eventstate->y + block->miny + (block->my * height) / oldheight;
+ startx = window->eventstate->x + block->rect.xmin + (block->mx * width) / oldwidth;
+ starty = window->eventstate->y + block->rect.ymin + (block->my * height) / oldheight;
if (startx < 10)
startx = 10;
@@ -386,7 +373,7 @@ static void ui_popup_bounds_block(const bContext *C, uiBlock *block, int bounds_
starty = endy - height;
}
- ui_block_translate(block, startx - block->minx, starty - block->miny);
+ ui_block_translate(block, startx - block->rect.xmin, starty - block->rect.ymin);
/* now recompute bounds and safety */
ui_bounds_block(block);
@@ -399,21 +386,21 @@ void uiBoundsBlock(uiBlock *block, int addval)
return;
block->bounds = addval;
- block->dobounds = UI_BLOCK_BOUNDS;
+ block->bounds_type = UI_BLOCK_BOUNDS;
}
/* used for pulldowns */
void uiTextBoundsBlock(uiBlock *block, int addval)
{
block->bounds = addval;
- block->dobounds = UI_BLOCK_BOUNDS_TEXT;
+ block->bounds_type = UI_BLOCK_BOUNDS_TEXT;
}
/* used for block popups */
void uiPopupBoundsBlock(uiBlock *block, int addval, int mx, int my)
{
block->bounds = addval;
- block->dobounds = UI_BLOCK_BOUNDS_POPUP_MOUSE;
+ block->bounds_type = UI_BLOCK_BOUNDS_POPUP_MOUSE;
block->mx = mx;
block->my = my;
}
@@ -422,7 +409,7 @@ void uiPopupBoundsBlock(uiBlock *block, int addval, int mx, int my)
void uiMenuPopupBoundsBlock(uiBlock *block, int addval, int mx, int my)
{
block->bounds = addval;
- block->dobounds = UI_BLOCK_BOUNDS_POPUP_MENU;
+ block->bounds_type = UI_BLOCK_BOUNDS_POPUP_MENU;
block->mx = mx;
block->my = my;
}
@@ -431,16 +418,16 @@ void uiMenuPopupBoundsBlock(uiBlock *block, int addval, int mx, int my)
void uiCenteredBoundsBlock(uiBlock *block, int addval)
{
block->bounds = addval;
- block->dobounds = UI_BLOCK_BOUNDS_POPUP_CENTER;
+ block->bounds_type = UI_BLOCK_BOUNDS_POPUP_CENTER;
}
void uiExplicitBoundsBlock(uiBlock *block, int minx, int miny, int maxx, int maxy)
{
- block->minx = minx;
- block->miny = miny;
- block->maxx = maxx;
- block->maxy = maxy;
- block->dobounds = 0;
+ block->rect.xmin = minx;
+ block->rect.ymin = miny;
+ block->rect.xmax = maxx;
+ block->rect.ymax = maxy;
+ block->bounds_type = UI_BLOCK_BOUNDS_NONE;
}
/* ************** LINK LINE DRAWING ************* */
@@ -504,10 +491,10 @@ static void ui_draw_linkline(uiLinkLine *line, int highlightActiveLines)
if (line->from == NULL || line->to == NULL) return;
- rect.xmin = (line->from->x1 + line->from->x2) / 2.0f;
- rect.ymin = (line->from->y1 + line->from->y2) / 2.0f;
- rect.xmax = (line->to->x1 + line->to->x2) / 2.0f;
- rect.ymax = (line->to->y1 + line->to->y2) / 2.0f;
+ rect.xmin = BLI_rctf_cent_x(&line->from->rect);
+ rect.ymin = BLI_rctf_cent_y(&line->from->rect);
+ rect.xmax = BLI_rctf_cent_x(&line->to->rect);
+ rect.ymax = BLI_rctf_cent_y(&line->to->rect);
if (line->flag & UI_SELECT)
glColor3ub(100, 100, 100);
@@ -524,26 +511,26 @@ static void ui_draw_links(uiBlock *block)
uiBut *but;
uiLinkLine *line;
- // Draw the inactive lines (lines with neither button being hovered over).
- // As we go, remember if we see any active or selected lines.
- int foundselectline = 0;
- int foundactiveline = 0;
+ /* Draw the inactive lines (lines with neither button being hovered over).
+ * As we go, remember if we see any active or selected lines. */
+ int foundselectline = FALSE;
+ int foundactiveline = FALSE;
for (but = block->buttons.first; but; but = but->next) {
if (but->type == LINK && but->link) {
for (line = but->link->lines.first; line; line = line->next) {
if (!(line->from->flag & UI_ACTIVE) && !(line->to->flag & UI_ACTIVE))
ui_draw_linkline(line, 0);
else
- foundactiveline = 1;
+ foundactiveline = TRUE;
if ((line->from->flag & UI_SELECT) || (line->to->flag & UI_SELECT))
- foundselectline = 1;
+ foundselectline = TRUE;
}
}
}
- // Draw any active lines (lines with either button being hovered over).
- // Do this last so they appear on top of inactive lines.
+ /* Draw any active lines (lines with either button being hovered over).
+ * Do this last so they appear on top of inactive lines. */
if (foundactiveline) {
for (but = block->buttons.first; but; but = but->next) {
if (but->type == LINK && but->link) {
@@ -653,8 +640,7 @@ static int ui_but_update_from_old_block(const bContext *C, uiBlock *block, uiBut
*butpp = oldbut;
/* still stuff needs to be copied */
- oldbut->x1 = but->x1; oldbut->y1 = but->y1;
- oldbut->x2 = but->x2; oldbut->y2 = but->y2;
+ oldbut->rect = but->rect;
oldbut->context = but->context; /* set by Layout */
/* typically the same pointers, but not on undo/redo */
@@ -697,28 +683,27 @@ int uiButActiveOnly(const bContext *C, uiBlock *block, uiBut *but)
{
uiBlock *oldblock;
uiBut *oldbut;
- int activate = 0, found = 0, isactive = 0;
+ int activate = FALSE, found = FALSE, isactive = FALSE;
oldblock = block->oldblock;
if (!oldblock)
- activate = 1;
+ activate = TRUE;
else {
for (oldbut = oldblock->buttons.first; oldbut; oldbut = oldbut->next) {
if (ui_but_equals_old(oldbut, but)) {
- found = 1;
+ found = TRUE;
if (oldbut->active)
- isactive = 1;
+ isactive = TRUE;
break;
}
}
}
- if (activate || found == 0) {
+ if ((activate == TRUE) || (found == FALSE)) {
ui_button_activate_do((bContext *)C, CTX_wm_region(C), but);
}
- else if (found && isactive == 0) {
-
+ else if ((found == TRUE) && (isactive == FALSE)) {
BLI_remlink(&block->buttons, but);
ui_free_but(C, but);
return 0;
@@ -764,7 +749,7 @@ static void ui_menu_block_set_keyaccels(uiBlock *block)
int tot_missing = 0;
/* only do it before bounding */
- if (block->minx != block->maxx)
+ if (block->rect.xmin != block->rect.xmax)
return;
for (pass = 0; pass < 2; pass++) {
@@ -772,7 +757,7 @@ static void ui_menu_block_set_keyaccels(uiBlock *block)
* fun first pass on all buttons so first word chars always get first priority */
for (but = block->buttons.first; but; but = but->next) {
- if (!ELEM4(but->type, BUT, MENU, BLOCK, PULLDOWN) || (but->flag & UI_HIDDEN)) {
+ if (!ELEM5(but->type, BUT, BUTM, MENU, BLOCK, PULLDOWN) || (but->flag & UI_HIDDEN)) {
/* pass */
}
else if (but->menu_key == '\0') {
@@ -865,7 +850,7 @@ static void ui_menu_block_set_keymaps(const bContext *C, uiBlock *block)
IDProperty *prop_menu_name = NULL;
/* only do it before bounding */
- if (block->minx != block->maxx)
+ if (block->rect.xmin != block->rect.xmax)
return;
for (but = block->buttons.first; but; but = but->next) {
@@ -928,7 +913,7 @@ void uiEndBlock(const bContext *C, uiBlock *block)
if (ot == NULL || WM_operator_poll_context((bContext *)C, ot, but->opcontext) == 0) {
but->flag |= UI_BUT_DISABLED;
- but->lock = 1;
+ but->lock = TRUE;
}
if (but->context)
@@ -947,21 +932,45 @@ void uiEndBlock(const bContext *C, uiBlock *block)
}
/* handle pending stuff */
- if (block->layouts.first) uiBlockLayoutResolve(block, NULL, NULL);
+ if (block->layouts.first) {
+ uiBlockLayoutResolve(block, NULL, NULL);
+ }
ui_block_do_align(block);
if ((block->flag & UI_BLOCK_LOOP) && (block->flag & UI_BLOCK_NUMSELECT)) {
ui_menu_block_set_keyaccels(block); /* could use a different flag to check */
}
- if (block->flag & UI_BLOCK_LOOP) ui_menu_block_set_keymaps(C, block);
+
+ if (block->flag & UI_BLOCK_LOOP) {
+ ui_menu_block_set_keymaps(C, block);
+ }
/* after keymaps! */
- if (block->dobounds == UI_BLOCK_BOUNDS) ui_bounds_block(block);
- else if (block->dobounds == UI_BLOCK_BOUNDS_TEXT) ui_text_bounds_block(block, 0.0f);
- else if (block->dobounds == UI_BLOCK_BOUNDS_POPUP_CENTER) ui_centered_bounds_block(C, block);
- else if (block->dobounds) ui_popup_bounds_block(C, block, block->dobounds);
+ switch (block->bounds_type) {
+ case UI_BLOCK_BOUNDS_NONE:
+ break;
+ case UI_BLOCK_BOUNDS:
+ ui_bounds_block(block);
+ break;
+ case UI_BLOCK_BOUNDS_TEXT:
+ ui_text_bounds_block(block, 0.0f);
+ break;
+ case UI_BLOCK_BOUNDS_POPUP_CENTER:
+ ui_centered_bounds_block(C, block);
+ break;
- if (block->minx == 0.0f && block->maxx == 0.0f) uiBoundsBlock(block, 0);
- if (block->flag & UI_BUT_ALIGN) uiBlockEndAlign(block);
+ /* fallback */
+ case UI_BLOCK_BOUNDS_POPUP_MOUSE:
+ case UI_BLOCK_BOUNDS_POPUP_MENU:
+ ui_popup_bounds_block(C, block, block->bounds_type);
+ break;
+ }
+
+ if (block->rect.xmin == 0.0f && block->rect.xmax == 0.0f) {
+ uiBoundsBlock(block, 0);
+ }
+ if (block->flag & UI_BUT_ALIGN) {
+ uiBlockEndAlign(block);
+ }
block->endblock = 1;
}
@@ -987,30 +996,26 @@ void ui_fontscale(short *points, float aspect)
/* project button or block (but==NULL) to pixels in regionspace */
static void ui_but_to_pixelrect(rcti *rect, const ARegion *ar, uiBlock *block, uiBut *but)
{
- float gx, gy;
- float getsizex, getsizey;
+ rctf rectf = (but)? but->rect: block->rect;
- getsizex = ar->winx;
- getsizey = ar->winy;
+ ui_block_to_window_fl(ar, block, &rectf.xmin, &rectf.ymin);
+ ui_block_to_window_fl(ar, block, &rectf.xmax, &rectf.ymax);
- gx = (but ? but->x1 : block->minx) + (block->panel ? block->panel->ofsx : 0.0f);
- gy = (but ? but->y1 : block->miny) + (block->panel ? block->panel->ofsy : 0.0f);
-
- rect->xmin = floorf(getsizex * (0.5f + 0.5f * (gx * block->winmat[0][0] + gy * block->winmat[1][0] + block->winmat[3][0])));
- rect->ymin = floorf(getsizey * (0.5f + 0.5f * (gx * block->winmat[0][1] + gy * block->winmat[1][1] + block->winmat[3][1])));
-
- gx = (but ? but->x2 : block->maxx) + (block->panel ? block->panel->ofsx : 0.0f);
- gy = (but ? but->y2 : block->maxy) + (block->panel ? block->panel->ofsy : 0.0f);
-
- rect->xmax = floorf(getsizex * (0.5f + 0.5f * (gx * block->winmat[0][0] + gy * block->winmat[1][0] + block->winmat[3][0])));
- rect->ymax = floorf(getsizey * (0.5f + 0.5f * (gx * block->winmat[0][1] + gy * block->winmat[1][1] + block->winmat[3][1])));
+ rectf.xmin -= ar->winrct.xmin;
+ rectf.ymin -= ar->winrct.ymin;
+ rectf.xmax -= ar->winrct.xmin;
+ rectf.ymax -= ar->winrct.ymin;
+ rect->xmin = floorf(rectf.xmin);
+ rect->ymin = floorf(rectf.ymin);
+ rect->xmax = floorf(rectf.xmax);
+ rect->ymax = floorf(rectf.ymax);
}
/* uses local copy of style, to scale things down, and allow widgets to change stuff */
void uiDrawBlock(const bContext *C, uiBlock *block)
{
- uiStyle style = *UI_GetStyle(); // XXX pass on as arg
+ uiStyle style = *UI_GetStyle(); /* XXX pass on as arg */
ARegion *ar;
uiBut *but;
rcti rect;
@@ -1084,16 +1089,23 @@ void uiDrawBlock(const bContext *C, uiBlock *block)
static void ui_is_but_sel(uiBut *but, double *value)
{
- short is_push = 0, is_true = 1;
+ short is_push = 0; /* (0 == UNSELECT), (1 == SELECT), (2 == DO-NOHING) */
+ short is_true = TRUE;
- if (ELEM3(but->type, TOGN, ICONTOGN, OPTIONN)) is_true = 0;
+ if (ELEM3(but->type, TOGN, ICONTOGN, OPTIONN)) {
+ is_true = FALSE;
+ }
if (but->bit) {
int lvalue;
UI_GET_BUT_VALUE_INIT(but, *value);
lvalue = (int)*value;
- if (BTST(lvalue, (but->bitnr)) ) is_push = is_true;
- else is_push = !is_true;
+ if (UI_BITBUT_TEST(lvalue, (but->bitnr))) {
+ is_push = is_true;
+ }
+ else {
+ is_push = !is_true;
+ }
}
else {
switch (but->type) {
@@ -1131,7 +1143,7 @@ static void ui_is_but_sel(uiBut *but, double *value)
if (*value == (double)but->hardmax) is_push = 1;
}
break;
- case COL:
+ case COLOR:
is_push = 2;
break;
default:
@@ -1140,9 +1152,15 @@ static void ui_is_but_sel(uiBut *but, double *value)
}
}
- if (is_push == 2) ;
- else if (is_push == 1) but->flag |= UI_SELECT;
- else but->flag &= ~UI_SELECT;
+ if (is_push == 2) {
+ /* pass */
+ }
+ else if (is_push == 1) {
+ but->flag |= UI_SELECT;
+ }
+ else {
+ but->flag &= ~UI_SELECT;
+ }
}
static uiBut *ui_find_inlink(uiBlock *block, void *poin)
@@ -1215,14 +1233,14 @@ void uiComposeLinks(uiBlock *block)
void uiBlockSetButLock(uiBlock *block, int val, const char *lockstr)
{
if (val) {
- block->lock = val ? 1 : 0;
+ block->lock = val ? TRUE : FALSE;
block->lockstr = lockstr;
}
}
void uiBlockClearButLock(uiBlock *block)
{
- block->lock = 0;
+ block->lock = FALSE;
block->lockstr = NULL;
}
@@ -1248,8 +1266,7 @@ void ui_delete_linkline(uiLinkLine *line, uiBut *but)
else {
b = 0;
for (a = 0; a < (*(link->totlink)); a++) {
-
- if ( (*(link->ppoin))[a] != line->to->poin) {
+ if ((*(link->ppoin))[a] != line->to->poin) {
(*(link->ppoin))[b] = (*(link->ppoin))[a];
b++;
}
@@ -1292,13 +1309,13 @@ void ui_get_but_vectorf(uiBut *but, float vec[3])
vec[a] = RNA_property_float_get_index(&but->rnapoin, prop, a);
}
}
- else if (but->pointype == CHA) {
+ else if (but->pointype == UI_BUT_POIN_CHAR) {
char *cp = (char *)but->poin;
vec[0] = ((float)cp[0]) / 255.0f;
vec[1] = ((float)cp[1]) / 255.0f;
vec[2] = ((float)cp[2]) / 255.0f;
}
- else if (but->pointype == FLO) {
+ else if (but->pointype == UI_BUT_POIN_FLOAT) {
float *fp = (float *)but->poin;
copy_v3_v3(vec, fp);
}
@@ -1338,13 +1355,13 @@ void ui_set_but_vectorf(uiBut *but, const float vec[3])
}
}
}
- else if (but->pointype == CHA) {
+ else if (but->pointype == UI_BUT_POIN_CHAR) {
char *cp = (char *)but->poin;
cp[0] = (char)(0.5f + vec[0] * 255.0f);
cp[1] = (char)(0.5f + vec[1] * 255.0f);
cp[2] = (char)(0.5f + vec[2] * 255.0f);
}
- else if (but->pointype == FLO) {
+ else if (but->pointype == UI_BUT_POIN_FLOAT) {
float *fp = (float *)but->poin;
copy_v3_v3(fp, vec);
}
@@ -1352,7 +1369,7 @@ void ui_set_but_vectorf(uiBut *but, const float vec[3])
int ui_is_but_float(uiBut *but)
{
- if (but->pointype == FLO && but->poin)
+ if (but->pointype == UI_BUT_POIN_FLOAT && but->poin)
return 1;
if (but->rnaprop && RNA_property_type(but->rnaprop) == PROP_FLOAT)
@@ -1369,7 +1386,7 @@ int ui_is_but_unit(uiBut *but)
if (unit_type == PROP_UNIT_NONE)
return 0;
-#if 1 // removed so angle buttons get correct snapping
+#if 1 /* removed so angle buttons get correct snapping */
if (unit->system_rotation == USER_UNIT_ROT_RADIANS && unit_type == PROP_UNIT_ROTATION)
return 0;
#endif
@@ -1448,16 +1465,16 @@ double ui_get_but_val(uiBut *but)
case 'V': value = hsv[2]; break;
}
}
- else if (but->pointype == CHA) {
+ else if (but->pointype == UI_BUT_POIN_CHAR) {
value = *(char *)but->poin;
}
- else if (but->pointype == SHO) {
+ else if (but->pointype == UI_BUT_POIN_SHORT) {
value = *(short *)but->poin;
}
- else if (but->pointype == INT) {
+ else if (but->pointype == UI_BUT_POIN_INT) {
value = *(int *)but->poin;
}
- else if (but->pointype == FLO) {
+ else if (but->pointype == UI_BUT_POIN_FLOAT) {
value = *(float *)but->poin;
}
@@ -1529,20 +1546,26 @@ void ui_set_but_val(uiBut *but, double value)
}
else {
/* first do rounding */
- if (but->pointype == CHA)
+ if (but->pointype == UI_BUT_POIN_CHAR) {
value = (char)floor(value + 0.5);
- else if (but->pointype == SHO) {
- /* gcc 3.2.1 seems to have problems
+ }
+ else if (but->pointype == UI_BUT_POIN_SHORT) {
+ /* gcc 3.2.1 seems to have problems
* casting a double like 32772.0 to
- * a short so we cast to an int, then
- * to a short */
+ * a short so we cast to an int, then
+ * to a short.
+ *
+ * Update: even in gcc.4.6 using intermediate int cast gives -32764,
+ * where as a direct cast from double to short gives -32768,
+ * if this difference isn't important we could remove this hack,
+ * since we dont support gcc3 anymore - Campbell */
int gcckludge;
gcckludge = (int) floor(value + 0.5);
value = (short)gcckludge;
}
- else if (but->pointype == INT)
+ else if (but->pointype == UI_BUT_POIN_INT)
value = (int)floor(value + 0.5);
- else if (but->pointype == FLO) {
+ else if (but->pointype == UI_BUT_POIN_FLOAT) {
float fval = (float)value;
if (fval >= -0.00001f && fval <= 0.00001f) fval = 0.0f; /* prevent negative zero */
value = fval;
@@ -1551,13 +1574,13 @@ void ui_set_but_val(uiBut *but, double value)
/* then set value with possible edit override */
if (but->editval)
value = *but->editval = value;
- else if (but->pointype == CHA)
+ else if (but->pointype == UI_BUT_POIN_CHAR)
value = *((char *)but->poin) = (char)value;
- else if (but->pointype == SHO)
+ else if (but->pointype == UI_BUT_POIN_SHORT)
value = *((short *)but->poin) = (short)value;
- else if (but->pointype == INT)
+ else if (but->pointype == UI_BUT_POIN_INT)
value = *((int *)but->poin) = (int)value;
- else if (but->pointype == FLO)
+ else if (but->pointype == UI_BUT_POIN_FLOAT)
value = *((float *)but->poin) = (float)value;
}
@@ -2112,10 +2135,17 @@ uiBlock *uiBeginBlock(const bContext *C, ARegion *region, const char *name, shor
block = MEM_callocN(sizeof(uiBlock), "uiBlock");
block->active = 1;
block->dt = dt;
- block->evil_C = (void *)C; // XXX
+ block->evil_C = (void *)C; /* XXX */
if (scn) {
- block->color_profile = (scn->r.color_mgt_flag & R_COLOR_MANAGEMENT);
+ block->color_profile = TRUE;
+
+ /* store display device name, don't lookup for transformations yet
+ * block could be used for non-color displays where looking up for transformation
+ * would slow down redraw, so only lookup for actual transform when it's indeed
+ * needed
+ */
+ block->display_device = scn->display_settings.display_device;
/* copy to avoid crash when scene gets deleted with ui still open */
block->unit = MEM_mallocN(sizeof(scn->unit), "UI UnitSettings");
@@ -2132,9 +2162,7 @@ uiBlock *uiBeginBlock(const bContext *C, ARegion *region, const char *name, shor
wm_subwindow_getmatrix(window, region->swinid, block->winmat);
wm_subwindow_getsize(window, region->swinid, &getsizex, &getsizey);
- /* TODO - investigate why block->winmat[0][0] is negative
- * in the image view when viewRedrawForce is called */
- block->aspect = 2.0 / fabs( (getsizex) * block->winmat[0][0]);
+ block->aspect = 2.0f / fabsf(getsizex * block->winmat[0][0]);
}
else {
/* no subwindow created yet, for menus for example, so we
@@ -2143,7 +2171,7 @@ uiBlock *uiBeginBlock(const bContext *C, ARegion *region, const char *name, shor
wm_subwindow_getmatrix(window, window->screen->mainwin, block->winmat);
wm_subwindow_getsize(window, window->screen->mainwin, &getsizex, &getsizey);
- block->aspect = 2.0 / fabs(getsizex * block->winmat[0][0]);
+ block->aspect = 2.0f / fabsf(getsizex * block->winmat[0][0]);
block->auto_open = TRUE;
block->flag |= UI_BLOCK_LOOP; /* tag as menu */
}
@@ -2217,11 +2245,15 @@ void ui_check_but(uiBut *but)
but->iconadd = (int)value - (int)(but->hardmin);
}
break;
+
+ /* quiet warnings for unhandled types */
+ default:
+ break;
}
/* safety is 4 to enable small number buttons (like 'users') */
- // okwidth= -4 + (but->x2 - but->x1); // UNUSED
+ // okwidth= -4 + (BLI_rcti_size_x(&but->rect)); // UNUSED
/* name: */
switch (but->type) {
@@ -2229,7 +2261,7 @@ void ui_check_but(uiBut *but)
case MENU:
case ICONTEXTROW:
- if (but->x2 - but->x1 > 24) {
+ if (BLI_rctf_size_x(&but->rect) > 24.0f) {
UI_GET_BUT_VALUE_INIT(but, value);
ui_set_name_menu(but, (int)value);
}
@@ -2243,8 +2275,12 @@ void ui_check_but(uiBut *but)
UI_GET_BUT_VALUE_INIT(but, value);
if (ui_is_but_float(but)) {
- if (value == (double) FLT_MAX) BLI_snprintf(but->drawstr, sizeof(but->drawstr), "%sinf", but->str);
- else if (value == (double) -FLT_MAX) BLI_snprintf(but->drawstr, sizeof(but->drawstr), "%s-inf", but->str);
+ if (value == (double) FLT_MAX) {
+ BLI_snprintf(but->drawstr, sizeof(but->drawstr), "%sinf", but->str);
+ }
+ else if (value == (double) -FLT_MAX) {
+ BLI_snprintf(but->drawstr, sizeof(but->drawstr), "%s-inf", but->str);
+ }
/* support length type buttons */
else if (ui_is_but_unit(but)) {
char new_str[sizeof(but->drawstr)];
@@ -2369,8 +2405,8 @@ static int buts_are_horiz(uiBut *but1, uiBut *but2)
{
float dx, dy;
- dx = fabs(but1->x2 - but2->x1);
- dy = fabs(but1->y1 - but2->y2);
+ dx = fabs(but1->rect.xmax - but2->rect.xmin);
+ dy = fabs(but1->rect.ymin - but2->rect.ymax);
if (dx > dy) return 0;
return 1;
@@ -2378,7 +2414,7 @@ static int buts_are_horiz(uiBut *but1, uiBut *but2)
void uiBlockEndAlign(uiBlock *block)
{
- block->flag &= ~UI_BUT_ALIGN; // all 4 flags
+ block->flag &= ~UI_BUT_ALIGN; /* all 4 flags */
}
int ui_but_can_align(uiBut *but)
@@ -2465,7 +2501,7 @@ static void ui_block_do_align_but(uiBut *first, short nr)
flag |= UI_BUT_ALIGN_TOP;
}
- if ( (flag & UI_BUT_ALIGN_TOP) == 0) { /* stil top row */
+ if ((flag & UI_BUT_ALIGN_TOP) == 0) { /* stil top row */
if (prev) {
if (next && buts_are_horiz(but, next))
flag = UI_BUT_ALIGN_DOWN | UI_BUT_ALIGN_LEFT | UI_BUT_ALIGN_RIGHT;
@@ -2486,34 +2522,34 @@ static void ui_block_do_align_but(uiBut *first, short nr)
/* merge coordinates */
if (prev) {
- // simple cases
+ /* simple cases */
if (rows == 0) {
- but->x1 = (prev->x2 + but->x1) / 2.0f;
- prev->x2 = but->x1;
+ but->rect.xmin = (prev->rect.xmax + but->rect.xmin) / 2.0f;
+ prev->rect.xmax = but->rect.xmin;
}
else if (cols == 0) {
- but->y2 = (prev->y1 + but->y2) / 2.0f;
- prev->y1 = but->y2;
+ but->rect.ymax = (prev->rect.ymin + but->rect.ymax) / 2.0f;
+ prev->rect.ymin = but->rect.ymax;
}
else {
if (buts_are_horiz(prev, but)) {
- but->x1 = (prev->x2 + but->x1) / 2.0f;
- prev->x2 = but->x1;
+ but->rect.xmin = (prev->rect.xmax + but->rect.xmin) / 2.0f;
+ prev->rect.xmax = but->rect.xmin;
/* copy height too */
- but->y2 = prev->y2;
+ but->rect.ymax = prev->rect.ymax;
}
else if (prev->prev && buts_are_horiz(prev->prev, prev) == 0) {
/* the previous button is a single one in its row */
- but->y2 = (prev->y1 + but->y2) / 2.0f;
- prev->y1 = but->y2;
+ but->rect.ymax = (prev->rect.ymin + but->rect.ymax) / 2.0f;
+ prev->rect.ymin = but->rect.ymax;
- but->x1 = prev->x1;
+ but->rect.xmin = prev->rect.xmin;
if (next && buts_are_horiz(but, next) == 0)
- but->x2 = prev->x2;
+ but->rect.xmax = prev->rect.xmax;
}
else {
/* the previous button is not a single one in its row */
- but->y2 = prev->y1;
+ but->rect.ymax = prev->rect.ymin;
}
}
}
@@ -2532,39 +2568,77 @@ void ui_block_do_align(uiBlock *block)
ui_block_do_align_but(but, nr);
/* skip with same number */
- for (; but && but->alignnr == nr; but = but->next) ;
+ for (; but && but->alignnr == nr; but = but->next) {
+ /* pass */
+ }
- if (!but)
+ if (!but) {
break;
+ }
}
- else
+ else {
but = but->next;
+ }
}
}
+struct ColorManagedDisplay *ui_block_display_get(uiBlock *block)
+{
+ return IMB_colormanagement_display_get_named(block->display_device);
+}
+
+void ui_block_to_display_space_v3(uiBlock *block, float pixel[3])
+{
+ struct ColorManagedDisplay *display = ui_block_display_get(block);
+
+ IMB_colormanagement_scene_linear_to_display_v3(pixel, display);
+}
+
+void ui_block_to_scene_linear_v3(uiBlock *block, float pixel[3])
+{
+ struct ColorManagedDisplay *display = ui_block_display_get(block);
+
+ IMB_colormanagement_display_to_scene_linear_v3(pixel, display);
+}
+
/**
* \brief ui_def_but is the function that draws many button types
*
+ * \param x,y The lower left hand corner of the button (X axis)
+ * \param width,height The size of the button.
+ *
* for float buttons:
* - \a a1 Click Step (how much to change the value each click)
* - \a a2 Number of decimal point values to display. 0 defaults to 3 (0.000)
* 1,2,3, and a maximum of 4, all greater values will be clamped to 4.
*/
-static uiBut *ui_def_but(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
+static uiBut *ui_def_but(uiBlock *block, int type, int retval, const char *str,
+ int x, int y, short width, short height,
+ void *poin, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
int slen;
-
- if (type & BUTPOIN) { /* a pointer is required */
- if (poin == NULL)
+
+ BLI_assert(width >= 0);
+ BLI_assert(height >= 0);
+
+ /* we could do some more error checks here */
+ if ((type & BUTTYPE) == LABEL) {
+ BLI_assert((poin != NULL || min != 0.0f || max != 0.0f || (a1 == 0.0f && a2 != 0.0f) || (a1 != 0.0f && a1 != 1.0f)) == FALSE);
+ }
+
+ if (type & UI_BUT_POIN_TYPES) { /* a pointer is required */
+ if (poin == NULL) {
+ BLI_assert(0);
return NULL;
+ }
}
but = MEM_callocN(sizeof(uiBut), "uiBut");
but->type = type & BUTTYPE;
- but->pointype = type & BUTPOIN;
- but->bit = type & BIT;
+ but->pointype = type & UI_BUT_POIN_TYPES;
+ but->bit = type & UI_BUT_POIN_BIT;
but->bitnr = type & 31;
but->icon = ICON_NONE;
but->iconadd = 0;
@@ -2580,10 +2654,10 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, const char *str,
}
memcpy(but->str, str, slen + 1);
- but->x1 = x1;
- but->y1 = y1;
- but->x2 = (x1 + x2);
- but->y2 = (y1 + y2);
+ but->rect.xmin = x;
+ but->rect.ymin = y;
+ but->rect.xmax = but->rect.xmin + width;
+ but->rect.ymax = but->rect.ymin + height;
but->poin = poin;
but->hardmin = but->softmin = min;
@@ -2596,8 +2670,8 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, const char *str,
but->lockstr = block->lockstr;
but->dt = block->dt;
- but->aspect = 1.0f; //XXX block->aspect;
- but->block = block; // pointer back, used for frontbuffer status, and picker
+ but->aspect = 1.0f; /* XXX block->aspect; */
+ but->block = block; /* pointer back, used for frontbuffer status, and picker */
if ((block->flag & UI_BUT_ALIGN) && ui_but_can_align(but))
but->alignnr = block->alignnr;
@@ -2622,14 +2696,18 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, const char *str,
}
}
- if ((block->flag & UI_BLOCK_LOOP) || ELEM8(but->type, MENU, TEX, LABEL, IDPOIN, BLOCK, BUTM, SEARCH_MENU, PROGRESSBAR))
+ if ((block->flag & UI_BLOCK_LOOP) ||
+ ELEM8(but->type, MENU, TEX, LABEL, IDPOIN, BLOCK, BUTM, SEARCH_MENU, PROGRESSBAR))
+ {
but->flag |= (UI_TEXT_LEFT | UI_ICON_LEFT);
- else if (but->type == BUT_TOGDUAL)
+ }
+ else if (but->type == BUT_TOGDUAL) {
but->flag |= UI_ICON_LEFT;
+ }
but->flag |= (block->flag & UI_BUT_ALIGN);
- if (but->lock) {
+ if (but->lock == TRUE) {
if (but->lockstr) {
but->flag |= UI_BUT_DISABLED;
}
@@ -2637,7 +2715,7 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, const char *str,
/* keep track of UI_interface.h */
if (ELEM7(but->type, BLOCK, BUT, LABEL, PULLDOWN, ROUNDBOX, LISTBOX, BUTM)) ;
- else if (ELEM3(but->type, SCROLL, SEPR, FTPREVIEW)) ;
+ else if (ELEM(but->type, SCROLL, SEPR /* , FTPREVIEW */ )) ;
else if (but->type >= SEARCH_MENU) ;
else but->flag |= UI_BUT_UNDO;
@@ -2664,13 +2742,17 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, const char *str,
* of our UI functions take prop rather then propname.
*/
-#define UI_DEF_BUT_RNA_DISABLE(but) \
- but->flag |= UI_BUT_DISABLED; \
- but->lock = 1; \
- but->lockstr = ""
+#define UI_DEF_BUT_RNA_DISABLE(but) { \
+ but->flag |= UI_BUT_DISABLED; \
+ but->lock = TRUE; \
+ but->lockstr = ""; \
+ } (void)0
-static uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip)
+static uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, const char *str,
+ int x, int y, short width, short height,
+ PointerRNA *ptr, PropertyRNA *prop, int index,
+ float min, float max, float a1, float a2, const char *tip)
{
const PropertyType proptype = RNA_property_type(prop);
uiBut *but;
@@ -2780,7 +2862,7 @@ static uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, const char *s
}
/* now create button */
- but = ui_def_but(block, type, retval, str, x1, y1, x2, y2, NULL, min, max, a1, a2, tip);
+ but = ui_def_but(block, type, retval, str, x, y, width, height, NULL, min, max, a1, a2, tip);
but->rnapoin = *ptr;
but->rnaprop = prop;
@@ -2816,16 +2898,16 @@ static uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, const char *s
return but;
}
-static uiBut *ui_def_but_rna_propname(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
+static uiBut *ui_def_but_rna_propname(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
{
PropertyRNA *prop = RNA_struct_find_property(ptr, propname);
uiBut *but;
if (prop) {
- but = ui_def_but_rna(block, type, retval, str, x1, y1, x2, y2, ptr, prop, index, min, max, a1, a2, tip);
+ but = ui_def_but_rna(block, type, retval, str, x, y, width, height, ptr, prop, index, min, max, a1, a2, tip);
}
else {
- but = ui_def_but(block, type, retval, propname, x1, y1, x2, y2, NULL, min, max, a1, a2, tip);
+ but = ui_def_but(block, type, retval, propname, x, y, width, height, NULL, min, max, a1, a2, tip);
UI_DEF_BUT_RNA_DISABLE(but);
}
@@ -2833,7 +2915,7 @@ static uiBut *ui_def_but_rna_propname(uiBlock *block, int type, int retval, cons
return but;
}
-static uiBut *ui_def_but_operator_ptr(uiBlock *block, int type, wmOperatorType *ot, int opcontext, const char *str, int x1, int y1, short x2, short y2, const char *tip)
+static uiBut *ui_def_but_operator_ptr(uiBlock *block, int type, wmOperatorType *ot, int opcontext, const char *str, int x, int y, short width, short height, const char *tip)
{
uiBut *but;
@@ -2848,14 +2930,14 @@ static uiBut *ui_def_but_operator_ptr(uiBlock *block, int type, wmOperatorType *
tip = RNA_struct_ui_description(ot->srna);
}
- but = ui_def_but(block, type, -1, str, x1, y1, x2, y2, NULL, 0, 0, 0, 0, tip);
+ but = ui_def_but(block, type, -1, str, x, y, width, height, NULL, 0, 0, 0, 0, tip);
but->optype = ot;
but->opcontext = opcontext;
but->flag &= ~UI_BUT_UNDO; /* no need for ui_but_is_undo(), we never need undo here */
if (!ot) {
but->flag |= UI_BUT_DISABLED;
- but->lock = 1;
+ but->lock = TRUE;
but->lockstr = "";
}
@@ -2863,15 +2945,15 @@ static uiBut *ui_def_but_operator_ptr(uiBlock *block, int type, wmOperatorType *
}
#if 0 /* UNUSED */
-static uiBut *UNUSED_FUNCTION(ui_def_but_operator) (uiBlock * block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, const char *tip)
+static uiBut *UNUSED_FUNCTION(ui_def_but_operator) (uiBlock * block, int type, const char *opname, int opcontext, const char *str, int x, int y, short width, short height, const char *tip)
{
wmOperatorType *ot = WM_operatortype_find(opname, 0);
if (str == NULL && ot == NULL) str = opname;
- return ui_def_but_operator_ptr(block, type, ot, opcontext, str, x1, y1, x2, y2, tip);
+ return ui_def_but_operator_ptr(block, type, ot, opcontext, str, x, y, width, height, tip);
}
#endif
-static uiBut *ui_def_but_operator_text(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
+static uiBut *ui_def_but_operator_text(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
wmOperatorType *ot;
@@ -2887,23 +2969,23 @@ static uiBut *ui_def_but_operator_text(uiBlock *block, int type, const char *opn
tip = ot->description;
}
- but = ui_def_but(block, type, -1, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
+ but = ui_def_but(block, type, -1, str, x, y, width, height, poin, min, max, a1, a2, tip);
but->optype = ot;
but->opcontext = opcontext;
but->flag &= ~UI_BUT_UNDO; /* no need for ui_but_is_undo(), we never need undo here */
if (!ot) {
but->flag |= UI_BUT_DISABLED;
- but->lock = 1;
+ but->lock = TRUE;
but->lockstr = "";
}
return but;
}
-uiBut *uiDefBut(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefBut(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
{
- uiBut *but = ui_def_but(block, type, retval, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
+ uiBut *but = ui_def_but(block, type, retval, str, x, y, width, height, poin, min, max, a1, a2, tip);
ui_check_but(but);
@@ -3022,241 +3104,241 @@ static void ui_check_but_and_iconize(uiBut *but, int icon)
ui_check_but(but);
}
-static uiBut *uiDefButBit(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
+static uiBut *uiDefButBit(uiBlock *block, int type, int bit, int retval, const char *str, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
{
int bitIdx = findBitIndex(bit);
if (bitIdx == -1) {
return NULL;
}
else {
- return uiDefBut(block, type | BIT | bitIdx, retval, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
+ return uiDefBut(block, type | UI_BUT_POIN_BIT | bitIdx, retval, str, x, y, width, height, poin, min, max, a1, a2, tip);
}
}
-uiBut *uiDefButF(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefButF(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefBut(block, type | FLO, retval, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefBut(block, type | UI_BUT_POIN_FLOAT, retval, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButBitF(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefButBitF(uiBlock *block, int type, int bit, int retval, const char *str, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefButBit(block, type | FLO, bit, retval, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefButBit(block, type | UI_BUT_POIN_FLOAT, bit, retval, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButI(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefButI(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefBut(block, type | INT, retval, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefBut(block, type | UI_BUT_POIN_INT, retval, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButBitI(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefButBitI(uiBlock *block, int type, int bit, int retval, const char *str, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefButBit(block, type | INT, bit, retval, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefButBit(block, type | UI_BUT_POIN_INT, bit, retval, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButS(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefButS(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefBut(block, type | SHO, retval, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefBut(block, type | UI_BUT_POIN_SHORT, retval, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButBitS(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefButBitS(uiBlock *block, int type, int bit, int retval, const char *str, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefButBit(block, type | SHO, bit, retval, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefButBit(block, type | UI_BUT_POIN_SHORT, bit, retval, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButC(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefButC(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefBut(block, type | CHA, retval, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefBut(block, type | UI_BUT_POIN_CHAR, retval, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButBitC(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefButBitC(uiBlock *block, int type, int bit, int retval, const char *str, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefButBit(block, type | CHA, bit, retval, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefButBit(block, type | UI_BUT_POIN_CHAR, bit, retval, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButR(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefButR(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
- but = ui_def_but_rna_propname(block, type, retval, str, x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip);
+ but = ui_def_but_rna_propname(block, type, retval, str, x, y, width, height, ptr, propname, index, min, max, a1, a2, tip);
ui_check_but(but);
return but;
}
-uiBut *uiDefButR_prop(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefButR_prop(uiBlock *block, int type, int retval, const char *str, int x, int y, short width, short height, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
- but = ui_def_but_rna(block, type, retval, str, x1, y1, x2, y2, ptr, prop, index, min, max, a1, a2, tip);
+ but = ui_def_but_rna(block, type, retval, str, x, y, width, height, ptr, prop, index, min, max, a1, a2, tip);
ui_check_but(but);
return but;
}
-uiBut *uiDefButO_ptr(uiBlock *block, int type, wmOperatorType *ot, int opcontext, const char *str, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefButO_ptr(uiBlock *block, int type, wmOperatorType *ot, int opcontext, const char *str, int x, int y, short width, short height, const char *tip)
{
uiBut *but;
- but = ui_def_but_operator_ptr(block, type, ot, opcontext, str, x1, y1, x2, y2, tip);
+ but = ui_def_but_operator_ptr(block, type, ot, opcontext, str, x, y, width, height, tip);
ui_check_but(but);
return but;
}
-uiBut *uiDefButO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefButO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x, int y, short width, short height, const char *tip)
{
wmOperatorType *ot = WM_operatortype_find(opname, 0);
if (str == NULL && ot == NULL) str = opname;
- return uiDefButO_ptr(block, type, ot, opcontext, str, x1, y1, x2, y2, tip);
+ return uiDefButO_ptr(block, type, ot, opcontext, str, x, y, width, height, tip);
}
-uiBut *uiDefButTextO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefButTextO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
{
- uiBut *but = ui_def_but_operator_text(block, type, opname, opcontext, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
+ uiBut *but = ui_def_but_operator_text(block, type, opname, opcontext, str, x, y, width, height, poin, min, max, a1, a2, tip);
ui_check_but(but);
return but;
}
/* if a1==1.0 then a2 is an extra icon blending factor (alpha 0.0 - 1.0) */
-uiBut *uiDefIconBut(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconBut(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
{
- uiBut *but = ui_def_but(block, type, retval, "", x1, y1, x2, y2, poin, min, max, a1, a2, tip);
+ uiBut *but = ui_def_but(block, type, retval, "", x, y, width, height, poin, min, max, a1, a2, tip);
ui_check_but_and_iconize(but, icon);
return but;
}
-static uiBut *uiDefIconButBit(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
+static uiBut *uiDefIconButBit(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
{
int bitIdx = findBitIndex(bit);
if (bitIdx == -1) {
return NULL;
}
else {
- return uiDefIconBut(block, type | BIT | bitIdx, retval, icon, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
+ return uiDefIconBut(block, type | UI_BUT_POIN_BIT | bitIdx, retval, icon, x, y, width, height, poin, min, max, a1, a2, tip);
}
}
-uiBut *uiDefIconButF(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconButF(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconBut(block, type | FLO, retval, icon, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconBut(block, type | UI_BUT_POIN_FLOAT, retval, icon, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButBitF(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconButBitF(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconButBit(block, type | FLO, bit, retval, icon, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconButBit(block, type | UI_BUT_POIN_FLOAT, bit, retval, icon, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButI(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconButI(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconBut(block, type | INT, retval, icon, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconBut(block, type | UI_BUT_POIN_INT, retval, icon, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButBitI(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconButBitI(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconButBit(block, type | INT, bit, retval, icon, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconButBit(block, type | UI_BUT_POIN_INT, bit, retval, icon, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButS(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconButS(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconBut(block, type | SHO, retval, icon, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconBut(block, type | UI_BUT_POIN_SHORT, retval, icon, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButBitS(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconButBitS(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconButBit(block, type | SHO, bit, retval, icon, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconButBit(block, type | UI_BUT_POIN_SHORT, bit, retval, icon, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButC(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconButC(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconBut(block, type | CHA, retval, icon, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconBut(block, type | UI_BUT_POIN_CHAR, retval, icon, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButBitC(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconButBitC(uiBlock *block, int type, int bit, int retval, int icon, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconButBit(block, type | CHA, bit, retval, icon, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconButBit(block, type | UI_BUT_POIN_CHAR, bit, retval, icon, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
- but = ui_def_but_rna_propname(block, type, retval, "", x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip);
+ but = ui_def_but_rna_propname(block, type, retval, "", x, y, width, height, ptr, propname, index, min, max, a1, a2, tip);
ui_check_but_and_iconize(but, icon);
return but;
}
-uiBut *uiDefIconButR_prop(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconButR_prop(uiBlock *block, int type, int retval, int icon, int x, int y, short width, short height, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
- but = ui_def_but_rna(block, type, retval, "", x1, y1, x2, y2, ptr, prop, index, min, max, a1, a2, tip);
+ but = ui_def_but_rna(block, type, retval, "", x, y, width, height, ptr, prop, index, min, max, a1, a2, tip);
ui_check_but_and_iconize(but, icon);
return but;
}
-uiBut *uiDefIconButO_ptr(uiBlock *block, int type, wmOperatorType *ot, int opcontext, int icon, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefIconButO_ptr(uiBlock *block, int type, wmOperatorType *ot, int opcontext, int icon, int x, int y, short width, short height, const char *tip)
{
uiBut *but;
- but = ui_def_but_operator_ptr(block, type, ot, opcontext, "", x1, y1, x2, y2, tip);
+ but = ui_def_but_operator_ptr(block, type, ot, opcontext, "", x, y, width, height, tip);
ui_check_but_and_iconize(but, icon);
return but;
}
-uiBut *uiDefIconButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefIconButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, int x, int y, short width, short height, const char *tip)
{
wmOperatorType *ot = WM_operatortype_find(opname, 0);
- return uiDefIconButO_ptr(block, type, ot, opcontext, icon, x1, y1, x2, y2, tip);
+ return uiDefIconButO_ptr(block, type, ot, opcontext, icon, x, y, width, height, tip);
}
/* Button containing both string label and icon */
-uiBut *uiDefIconTextBut(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconTextBut(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
{
- uiBut *but = ui_def_but(block, type, retval, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
+ uiBut *but = ui_def_but(block, type, retval, str, x, y, width, height, poin, min, max, a1, a2, tip);
ui_check_but_and_iconize(but, icon);
but->flag |= UI_ICON_LEFT;
return but;
}
-static uiBut *uiDefIconTextButBit(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
+static uiBut *uiDefIconTextButBit(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x, int y, short width, short height, void *poin, float min, float max, float a1, float a2, const char *tip)
{
int bitIdx = findBitIndex(bit);
if (bitIdx == -1) {
return NULL;
}
else {
- return uiDefIconTextBut(block, type | BIT | bitIdx, retval, icon, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
+ return uiDefIconTextBut(block, type | UI_BUT_POIN_BIT | bitIdx, retval, icon, str, x, y, width, height, poin, min, max, a1, a2, tip);
}
}
-uiBut *uiDefIconTextButF(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconTextButF(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconTextBut(block, type | FLO, retval, icon, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconTextBut(block, type | UI_BUT_POIN_FLOAT, retval, icon, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButBitF(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconTextButBitF(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x, int y, short width, short height, float *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconTextButBit(block, type | FLO, bit, retval, icon, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconTextButBit(block, type | UI_BUT_POIN_FLOAT, bit, retval, icon, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButI(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconTextButI(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconTextBut(block, type | INT, retval, icon, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconTextBut(block, type | UI_BUT_POIN_INT, retval, icon, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButBitI(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconTextButBitI(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x, int y, short width, short height, int *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconTextButBit(block, type | INT, bit, retval, icon, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconTextButBit(block, type | UI_BUT_POIN_INT, bit, retval, icon, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButS(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconTextButS(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconTextBut(block, type | SHO, retval, icon, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconTextBut(block, type | UI_BUT_POIN_SHORT, retval, icon, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButBitS(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconTextButBitS(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x, int y, short width, short height, short *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconTextButBit(block, type | SHO, bit, retval, icon, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconTextButBit(block, type | UI_BUT_POIN_SHORT, bit, retval, icon, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButC(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconTextButC(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconTextBut(block, type | CHA, retval, icon, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconTextBut(block, type | UI_BUT_POIN_CHAR, retval, icon, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButBitC(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconTextButBitC(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x, int y, short width, short height, char *poin, float min, float max, float a1, float a2, const char *tip)
{
- return uiDefIconTextButBit(block, type | CHA, bit, retval, icon, str, x1, y1, x2, y2, (void *) poin, min, max, a1, a2, tip);
+ return uiDefIconTextButBit(block, type | UI_BUT_POIN_CHAR, bit, retval, icon, str, x, y, width, height, (void *) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
- but = ui_def_but_rna_propname(block, type, retval, str, x1, y1, x2, y2, ptr, propname, index, min, max, a1, a2, tip);
+ but = ui_def_but_rna_propname(block, type, retval, str, x, y, width, height, ptr, propname, index, min, max, a1, a2, tip);
ui_check_but_and_iconize(but, icon);
but->flag |= UI_ICON_LEFT;
return but;
}
-uiBut *uiDefIconTextButR_prop(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip)
+uiBut *uiDefIconTextButR_prop(uiBlock *block, int type, int retval, int icon, const char *str, int x, int y, short width, short height, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
- but = ui_def_but_rna(block, type, retval, str, x1, y1, x2, y2, ptr, prop, index, min, max, a1, a2, tip);
+ but = ui_def_but_rna(block, type, retval, str, x, y, width, height, ptr, prop, index, min, max, a1, a2, tip);
ui_check_but_and_iconize(but, icon);
but->flag |= UI_ICON_LEFT;
return but;
}
-uiBut *uiDefIconTextButO_ptr(uiBlock *block, int type, wmOperatorType *ot, int opcontext, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefIconTextButO_ptr(uiBlock *block, int type, wmOperatorType *ot, int opcontext, int icon, const char *str, int x, int y, short width, short height, const char *tip)
{
uiBut *but;
- but = ui_def_but_operator_ptr(block, type, ot, opcontext, str, x1, y1, x2, y2, tip);
+ but = ui_def_but_operator_ptr(block, type, ot, opcontext, str, x, y, width, height, tip);
ui_check_but_and_iconize(but, icon);
but->flag |= UI_ICON_LEFT;
return but;
}
-uiBut *uiDefIconTextButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefIconTextButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, const char *str, int x, int y, short width, short height, const char *tip)
{
wmOperatorType *ot = WM_operatortype_find(opname, 0);
- return uiDefIconTextButO_ptr(block, type, ot, opcontext, icon, str, x1, y1, x2, y2, tip);
+ return uiDefIconTextButO_ptr(block, type, ot, opcontext, icon, str, x, y, width, height, tip);
}
/* END Button containing both string label and icon */
@@ -3282,8 +3364,8 @@ int uiBlocksGetYMin(ListBase *lb)
int min = 0;
for (block = lb->first; block; block = block->next)
- if (block == lb->first || block->miny < min)
- min = block->miny;
+ if (block == lb->first || block->rect.ymin < min)
+ min = block->rect.ymin;
return min;
}
@@ -3307,15 +3389,15 @@ void uiBlockFlipOrder(uiBlock *block)
for (but = block->buttons.first; but; but = but->next) {
if (but->flag & UI_BUT_ALIGN) return;
- if (but->y1 < miny) miny = but->y1;
- if (but->y2 > maxy) maxy = but->y2;
+ if (but->rect.ymin < miny) miny = but->rect.ymin;
+ if (but->rect.ymax > maxy) maxy = but->rect.ymax;
}
/* mirror trick */
centy = (miny + maxy) / 2.0f;
for (but = block->buttons.first; but; but = but->next) {
- but->y1 = centy - (but->y1 - centy);
- but->y2 = centy - (but->y2 - centy);
- SWAP(float, but->y1, but->y2);
+ but->rect.ymin = centy - (but->rect.ymin - centy);
+ but->rect.ymax = centy - (but->rect.ymax - centy);
+ SWAP(float, but->rect.ymin, but->rect.ymax);
}
/* also flip order in block itself, for example for arrowkey */
@@ -3341,11 +3423,6 @@ void uiBlockClearFlag(uiBlock *block, int flag)
block->flag &= ~flag;
}
-void uiBlockSetXOfs(uiBlock *block, int xofs)
-{
- block->xofs = xofs;
-}
-
void uiButSetFlag(uiBut *but, int flag)
{
but->flag |= flag;
@@ -3432,7 +3509,7 @@ int uiButGetUnitType(uiBut *but)
/* own unit define always takes precedence over RNA provided, allowing for overriding
* default value provided in RNA in a few special cases (i.e. Active Keyframe in Graph Edit)
*/
- // XXX: this doesn't allow clearing unit completely, though the same could be said for icons
+ /* XXX: this doesn't allow clearing unit completely, though the same could be said for icons */
if ((ownUnit != 0) || (but->rnaprop == NULL)) {
return ownUnit << 16;
}
@@ -3508,9 +3585,9 @@ void uiButSetCompleteFunc(uiBut *but, uiButCompleteFunc func, void *arg)
but->autofunc_arg = arg;
}
-uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int retval, const char *str, int x1, int y1, short x2, short y2, void *idpp, const char *tip)
+uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int retval, const char *str, int x, int y, short width, short height, void *idpp, const char *tip)
{
- uiBut *but = ui_def_but(block, IDPOIN, retval, str, x1, y1, x2, y2, NULL, 0.0, 0.0, 0.0, 0.0, tip);
+ uiBut *but = ui_def_but(block, IDPOIN, retval, str, x, y, width, height, NULL, 0.0, 0.0, 0.0, 0.0, tip);
but->idpoin_func = func;
but->idpoin_idpp = (ID **) idpp;
ui_check_but(but);
@@ -3521,17 +3598,17 @@ uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int
return but;
}
-uiBut *uiDefBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, const char *str, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, const char *str, int x, int y, short width, short height, const char *tip)
{
- uiBut *but = ui_def_but(block, BLOCK, 0, str, x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
+ uiBut *but = ui_def_but(block, BLOCK, 0, str, x, y, width, height, arg, 0.0, 0.0, 0.0, 0.0, tip);
but->block_create_func = func;
ui_check_but(but);
return but;
}
-uiBut *uiDefBlockButN(uiBlock *block, uiBlockCreateFunc func, void *argN, const char *str, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefBlockButN(uiBlock *block, uiBlockCreateFunc func, void *argN, const char *str, int x, int y, short width, short height, const char *tip)
{
- uiBut *but = ui_def_but(block, BLOCK, 0, str, x1, y1, x2, y2, NULL, 0.0, 0.0, 0.0, 0.0, tip);
+ uiBut *but = ui_def_but(block, BLOCK, 0, str, x, y, width, height, NULL, 0.0, 0.0, 0.0, 0.0, tip);
but->block_create_func = func;
if (but->func_argN) {
MEM_freeN(but->func_argN);
@@ -3542,25 +3619,25 @@ uiBut *uiDefBlockButN(uiBlock *block, uiBlockCreateFunc func, void *argN, const
}
-uiBut *uiDefPulldownBut(uiBlock *block, uiBlockCreateFunc func, void *arg, const char *str, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefPulldownBut(uiBlock *block, uiBlockCreateFunc func, void *arg, const char *str, int x, int y, short width, short height, const char *tip)
{
- uiBut *but = ui_def_but(block, PULLDOWN, 0, str, x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
+ uiBut *but = ui_def_but(block, PULLDOWN, 0, str, x, y, width, height, arg, 0.0, 0.0, 0.0, 0.0, tip);
but->block_create_func = func;
ui_check_but(but);
return but;
}
-uiBut *uiDefMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, const char *str, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, const char *str, int x, int y, short width, short height, const char *tip)
{
- uiBut *but = ui_def_but(block, PULLDOWN, 0, str, x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
+ uiBut *but = ui_def_but(block, PULLDOWN, 0, str, x, y, width, height, arg, 0.0, 0.0, 0.0, 0.0, tip);
but->menu_create_func = func;
ui_check_but(but);
return but;
}
-uiBut *uiDefIconTextMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefIconTextMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, const char *str, int x, int y, short width, short height, const char *tip)
{
- uiBut *but = ui_def_but(block, PULLDOWN, 0, str, x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
+ uiBut *but = ui_def_but(block, PULLDOWN, 0, str, x, y, width, height, arg, 0.0, 0.0, 0.0, 0.0, tip);
but->icon = (BIFIconID) icon;
but->flag |= UI_HAS_ICON;
@@ -3574,9 +3651,9 @@ uiBut *uiDefIconTextMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, in
return but;
}
-uiBut *uiDefIconMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefIconMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, int x, int y, short width, short height, const char *tip)
{
- uiBut *but = ui_def_but(block, PULLDOWN, 0, "", x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
+ uiBut *but = ui_def_but(block, PULLDOWN, 0, "", x, y, width, height, arg, 0.0, 0.0, 0.0, 0.0, tip);
but->icon = (BIFIconID) icon;
but->flag |= UI_HAS_ICON;
@@ -3589,9 +3666,9 @@ uiBut *uiDefIconMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int ic
}
/* Block button containing both string label and icon */
-uiBut *uiDefIconTextBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefIconTextBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int icon, const char *str, int x, int y, short width, short height, const char *tip)
{
- uiBut *but = ui_def_but(block, BLOCK, 0, str, x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
+ uiBut *but = ui_def_but(block, BLOCK, 0, str, x, y, width, height, arg, 0.0, 0.0, 0.0, 0.0, tip);
/* XXX temp, old menu calls pass on icon arrow, which is now UI_ICON_SUBMENU flag */
if (icon != ICON_RIGHTARROW_THIN) {
@@ -3608,9 +3685,9 @@ uiBut *uiDefIconTextBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg,
}
/* Block button containing icon */
-uiBut *uiDefIconBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int retval, int icon, int x1, int y1, short x2, short y2, const char *tip)
+uiBut *uiDefIconBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int retval, int icon, int x, int y, short width, short height, const char *tip)
{
- uiBut *but = ui_def_but(block, BLOCK, retval, "", x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
+ uiBut *but = ui_def_but(block, BLOCK, retval, "", x, y, width, height, arg, 0.0, 0.0, 0.0, 0.0, tip);
but->icon = (BIFIconID) icon;
but->flag |= UI_HAS_ICON;
@@ -3623,18 +3700,18 @@ uiBut *uiDefIconBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int
return but;
}
-uiBut *uiDefKeyevtButS(uiBlock *block, int retval, const char *str, int x1, int y1, short x2, short y2, short *spoin, const char *tip)
+uiBut *uiDefKeyevtButS(uiBlock *block, int retval, const char *str, int x, int y, short width, short height, short *spoin, const char *tip)
{
- uiBut *but = ui_def_but(block, KEYEVT | SHO, retval, str, x1, y1, x2, y2, spoin, 0.0, 0.0, 0.0, 0.0, tip);
+ uiBut *but = ui_def_but(block, KEYEVT | UI_BUT_POIN_SHORT, retval, str, x, y, width, height, spoin, 0.0, 0.0, 0.0, 0.0, tip);
ui_check_but(but);
return but;
}
/* short pointers hardcoded */
/* modkeypoin will be set to KM_SHIFT, KM_ALT, KM_CTRL, KM_OSKEY bits */
-uiBut *uiDefHotKeyevtButS(uiBlock *block, int retval, const char *str, int x1, int y1, short x2, short y2, short *keypoin, short *modkeypoin, const char *tip)
+uiBut *uiDefHotKeyevtButS(uiBlock *block, int retval, const char *str, int x, int y, short width, short height, short *keypoin, short *modkeypoin, const char *tip)
{
- uiBut *but = ui_def_but(block, HOTKEYEVT | SHO, retval, str, x1, y1, x2, y2, keypoin, 0.0, 0.0, 0.0, 0.0, tip);
+ uiBut *but = ui_def_but(block, HOTKEYEVT | UI_BUT_POIN_SHORT, retval, str, x, y, width, height, keypoin, 0.0, 0.0, 0.0, 0.0, tip);
but->modifier_key = *modkeypoin;
ui_check_but(but);
return but;
@@ -3643,9 +3720,9 @@ uiBut *uiDefHotKeyevtButS(uiBlock *block, int retval, const char *str, int x1, i
/* arg is pointer to string/name, use uiButSetSearchFunc() below to make this work */
/* here a1 and a2, if set, control thumbnail preview rows/cols */
-uiBut *uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxlen, int x1, int y1, short x2, short y2, float a1, float a2, const char *tip)
+uiBut *uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxlen, int x, int y, short width, short height, float a1, float a2, const char *tip)
{
- uiBut *but = ui_def_but(block, SEARCH_MENU, retval, "", x1, y1, x2, y2, arg, 0.0, maxlen, a1, a2, tip);
+ uiBut *but = ui_def_but(block, SEARCH_MENU, retval, "", x, y, width, height, arg, 0.0, maxlen, a1, a2, tip);
but->icon = (BIFIconID) icon;
but->flag |= UI_HAS_ICON;
@@ -3691,6 +3768,178 @@ void uiButSetFocusOnEnter(wmWindow *win, uiBut *but)
wm_event_add(win, &event);
}
+void uiButGetStrInfo(bContext *C, uiBut *but, int nbr, ...)
+{
+ va_list args;
+
+ EnumPropertyItem *items = NULL, *item = NULL;
+ int totitems, free_items = FALSE;
+
+ va_start(args, nbr);
+ while (nbr--) {
+ uiStringInfo *si = (uiStringInfo *) va_arg(args, void *);
+ int type = si->type;
+ char *tmp = NULL;
+
+ if (type == BUT_GET_LABEL) {
+ if (but->str) {
+ /* Menu labels can have some complex formating stuff marked by pipes or %t, we don't want those here! */
+ const char *tc1, *tc2;
+
+ tc1 = strstr(but->str, "%t");
+ tc2 = strstr(but->str, "|"); /* XXX For some reason strchr seems to not work here? */
+
+ if (tc2 && (!tc1 || tc1 > tc2))
+ tc1 = tc2;
+
+ if (tc1)
+ tmp = BLI_strdupn(but->str, tc1 - but->str);
+ else
+ tmp = BLI_strdup(but->str);
+ }
+ else
+ type = BUT_GET_RNA_LABEL; /* Fail-safe solution... */
+ }
+ else if (type == BUT_GET_TIP) {
+ if (but->tip && but->tip[0])
+ tmp = BLI_strdup(but->tip);
+ else
+ type = BUT_GET_RNA_TIP; /* Fail-safe solution... */
+ }
+
+ if (type == BUT_GET_RNAPROP_IDENTIFIER) {
+ if (but->rnaprop)
+ tmp = BLI_strdup(RNA_property_identifier(but->rnaprop));
+ }
+ else if (type == BUT_GET_RNASTRUCT_IDENTIFIER) {
+ if (but->rnaprop)
+ tmp = BLI_strdup(RNA_struct_identifier(but->rnapoin.type));
+ else if (but->optype)
+ tmp = BLI_strdup(but->optype->idname);
+ else if (ELEM(but->type, MENU, PULLDOWN)) {
+ MenuType *mt = uiButGetMenuType(but);
+ if (mt)
+ tmp = BLI_strdup(mt->idname);
+ }
+ }
+ else if (ELEM(type, BUT_GET_RNA_LABEL, BUT_GET_RNA_TIP)) {
+ if (but->rnaprop) {
+ if (type == BUT_GET_RNA_LABEL)
+ tmp = BLI_strdup(RNA_property_ui_name(but->rnaprop));
+ else {
+ const char *t = RNA_property_ui_description(but->rnaprop);
+ if (t && t[0])
+ tmp = BLI_strdup(t);
+ }
+ }
+ else if (but->optype) {
+ if (type == BUT_GET_RNA_LABEL)
+ tmp = BLI_strdup(RNA_struct_ui_name(but->optype->srna));
+ else {
+ const char *t = RNA_struct_ui_description(but->optype->srna);
+ if (t && t[0])
+ tmp = BLI_strdup(t);
+ }
+ }
+ else if (ELEM(but->type, MENU, PULLDOWN)) {
+ MenuType *mt = uiButGetMenuType(but);
+ if (mt) {
+ /* not all menus are from python */
+ if (mt->ext.srna) {
+ if (type == BUT_GET_RNA_LABEL)
+ tmp = BLI_strdup(RNA_struct_ui_name(mt->ext.srna));
+ else {
+ const char *t = RNA_struct_ui_description(mt->ext.srna);
+ if (t && t[0])
+ tmp = BLI_strdup(t);
+ }
+ }
+ }
+ }
+ }
+ else if (type == BUT_GET_RNA_LABEL_CONTEXT) {
+ if (but->rnaprop)
+ tmp = BLI_strdup(RNA_property_translation_context(but->rnaprop));
+ else if (but->optype)
+ tmp = BLI_strdup(RNA_struct_translation_context(but->optype->srna));
+ else if (ELEM(but->type, MENU, PULLDOWN)) {
+ MenuType *mt = uiButGetMenuType(but);
+ if (mt)
+ tmp = BLI_strdup(RNA_struct_translation_context(mt->ext.srna));
+ }
+ }
+ else if (ELEM3(type, BUT_GET_RNAENUM_IDENTIFIER, BUT_GET_RNAENUM_LABEL, BUT_GET_RNAENUM_TIP)) {
+ PointerRNA *ptr = NULL;
+ PropertyRNA *prop = NULL;
+ int value = 0;
+
+ /* get the enum property... */
+ if (but->rnaprop && RNA_property_type(but->rnaprop) == PROP_ENUM) {
+ /* enum property */
+ ptr = &but->rnapoin;
+ prop = but->rnaprop;
+ value = (but->type == ROW) ? (int)but->hardmax : (int)ui_get_but_val(but);
+ }
+ else if (but->optype) {
+ PointerRNA *opptr = uiButGetOperatorPtrRNA(but);
+ wmOperatorType *ot = but->optype;
+
+ /* if the default property of the operator is enum and it is set,
+ * fetch the tooltip of the selected value so that "Snap" and "Mirror"
+ * operator menus in the Anim Editors will show tooltips for the different
+ * operations instead of the meaningless generic operator tooltip
+ */
+ if (ot->prop && RNA_property_type(ot->prop) == PROP_ENUM) {
+ if (RNA_struct_contains_property(opptr, ot->prop)) {
+ ptr = opptr;
+ prop = ot->prop;
+ value = RNA_property_enum_get(opptr, ot->prop);
+ }
+ }
+ }
+
+ /* get strings from matching enum item */
+ if (ptr && prop) {
+ if (!item) {
+ int i;
+
+ RNA_property_enum_items_gettexted(C, ptr, prop, &items, &totitems, &free_items);
+ for (i = 0, item = items; i < totitems; i++, item++) {
+ if (item->identifier[0] && item->value == value)
+ break;
+ }
+ }
+ if (item && item->identifier) {
+ if (type == BUT_GET_RNAENUM_IDENTIFIER)
+ tmp = BLI_strdup(item->identifier);
+ else if (type == BUT_GET_RNAENUM_LABEL)
+ tmp = BLI_strdup(item->name);
+ else if (item->description && item->description[0])
+ tmp = BLI_strdup(item->description);
+ }
+ }
+ }
+ else if (type == BUT_GET_OP_KEYMAP) {
+ if (but->optype && !(but->block->flag & UI_BLOCK_LOOP)) {
+ /* operator keymap (not menus, they already have it) */
+ IDProperty *prop = (but->opptr) ? but->opptr->data : NULL;
+ char buf[512];
+
+ if (WM_key_event_operator_string(C, but->optype->idname, but->opcontext, prop, TRUE,
+ buf, sizeof(buf)))
+ {
+ tmp = BLI_strdup(buf);
+ }
+ }
+ }
+
+ si->strinfo = tmp;
+ }
+
+ if (free_items && items)
+ MEM_freeN(items);
+}
+
/* Program Init/Exit */
void UI_init(void)
diff --git a/source/blender/editors/interface/interface_anim.c b/source/blender/editors/interface/interface_anim.c
index c7f8ad521fa..5d62ef768d2 100644
--- a/source/blender/editors/interface/interface_anim.c
+++ b/source/blender/editors/interface/interface_anim.c
@@ -141,7 +141,7 @@ int ui_but_anim_expression_create(uiBut *but, const char *str)
}
/* make sure we have animdata for this */
- // FIXME: until materials can be handled by depsgraph, don't allow drivers to be created for them
+ /* FIXME: until materials can be handled by depsgraph, don't allow drivers to be created for them */
id = (ID *)but->rnapoin.id.data;
if ((id == NULL) || (GS(id->name) == ID_MA) || (GS(id->name) == ID_TE)) {
if (G.debug & G_DEBUG)
@@ -160,9 +160,9 @@ int ui_but_anim_expression_create(uiBut *but, const char *str)
if (driver) {
/* set type of driver */
driver->type = DRIVER_TYPE_PYTHON;
-
+
/* set the expression */
- // TODO: need some way of identifying variables used
+ /* TODO: need some way of identifying variables used */
BLI_strncpy_utf8(driver->expression, str, sizeof(driver->expression));
/* updates */
@@ -187,12 +187,12 @@ void ui_but_anim_autokey(bContext *C, uiBut *but, Scene *scene, float cfra)
if (fcu && !driven) {
id = but->rnapoin.id.data;
-
- // TODO: this should probably respect the keyingset only option for anim
+
+ /* TODO: this should probably respect the keyingset only option for anim */
if (autokeyframe_cfra_can_key(scene, id)) {
ReportList *reports = CTX_wm_reports(C);
short flag = ANIM_get_keyframing_flags(scene, 1);
-
+
fcu->flag &= ~FCURVE_SELECTED;
insert_keyframe(reports, id, action, ((fcu->grp) ? (fcu->grp->name) : (NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
WM_event_add_notifier(C, NC_ANIMATION | ND_KEYFRAME | NA_EDITED, NULL);
@@ -212,6 +212,12 @@ void ui_but_anim_delete_keyframe(bContext *C)
WM_operator_name_call(C, "ANIM_OT_keyframe_delete_button", WM_OP_INVOKE_DEFAULT, NULL);
}
+void ui_but_anim_clear_keyframe(bContext *C)
+{
+ /* this operator calls uiContextActiveProperty */
+ WM_operator_name_call(C, "ANIM_OT_keyframe_clear_button", WM_OP_INVOKE_DEFAULT, NULL);
+}
+
void ui_but_anim_add_driver(bContext *C)
{
/* this operator calls uiContextActiveProperty */
diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c
index f173e7ce630..010df0cbfbc 100644
--- a/source/blender/editors/interface/interface_draw.c
+++ b/source/blender/editors/interface/interface_draw.c
@@ -48,6 +48,7 @@
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
+#include "IMB_colormanagement.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -59,8 +60,6 @@
/* own include */
#include "interface_intern.h"
-#define UI_DISABLED_ALPHA_OFFS -160
-
static int roundboxtype = UI_CNR_ALL;
void uiSetRoundBox(int type)
@@ -85,7 +84,7 @@ void uiDrawBox(int mode, float minx, float miny, float maxx, float maxy, float r
/* mult */
for (a = 0; a < 7; a++) {
- vec[a][0] *= rad; vec[a][1] *= rad;
+ mul_v2_fl(vec[a], rad);
}
glBegin(mode);
@@ -156,18 +155,18 @@ void uiDrawBoxShade(int mode, float minx, float miny, float maxx, float maxy, fl
/* mult */
for (a = 0; a < 7; a++) {
- vec[a][0] *= rad; vec[a][1] *= rad;
+ mul_v2_fl(vec[a], rad);
}
/* get current color, needs to be outside of glBegin/End */
glGetFloatv(GL_CURRENT_COLOR, color);
/* 'shade' defines strength of shading */
- coltop[0] = color[0] + shadetop; if (coltop[0] > 1.0f) coltop[0] = 1.0f;
- coltop[1] = color[1] + shadetop; if (coltop[1] > 1.0f) coltop[1] = 1.0f;
- coltop[2] = color[2] + shadetop; if (coltop[2] > 1.0f) coltop[2] = 1.0f;
- coldown[0] = color[0] + shadedown; if (coldown[0] < 0.0f) coldown[0] = 0.0f;
- coldown[1] = color[1] + shadedown; if (coldown[1] < 0.0f) coldown[1] = 0.0f;
- coldown[2] = color[2] + shadedown; if (coldown[2] < 0.0f) coldown[2] = 0.0f;
+ coltop[0] = minf(1.0f, color[0] + shadetop);
+ coltop[1] = minf(1.0f, color[1] + shadetop);
+ coltop[2] = minf(1.0f, color[2] + shadetop);
+ coldown[0] = maxf(0.0f, color[0] + shadedown);
+ coldown[1] = maxf(0.0f, color[1] + shadedown);
+ coldown[2] = maxf(0.0f, color[2] + shadedown);
glShadeModel(GL_SMOOTH);
glBegin(mode);
@@ -265,18 +264,18 @@ void uiDrawBoxVerticalShade(int mode, float minx, float miny, float maxx, float
/* mult */
for (a = 0; a < 7; a++) {
- vec[a][0] *= rad; vec[a][1] *= rad;
+ mul_v2_fl(vec[a], rad);
}
/* get current color, needs to be outside of glBegin/End */
glGetFloatv(GL_CURRENT_COLOR, color);
/* 'shade' defines strength of shading */
- colLeft[0] = color[0] + shadeLeft; if (colLeft[0] > 1.0f) colLeft[0] = 1.0f;
- colLeft[1] = color[1] + shadeLeft; if (colLeft[1] > 1.0f) colLeft[1] = 1.0f;
- colLeft[2] = color[2] + shadeLeft; if (colLeft[2] > 1.0f) colLeft[2] = 1.0f;
- colRight[0] = color[0] + shadeRight; if (colRight[0] < 0.0f) colRight[0] = 0.0f;
- colRight[1] = color[1] + shadeRight; if (colRight[1] < 0.0f) colRight[1] = 0.0f;
- colRight[2] = color[2] + shadeRight; if (colRight[2] < 0.0f) colRight[2] = 0.0f;
+ colLeft[0] = minf(1.0f, color[0] + shadeLeft);
+ colLeft[1] = minf(1.0f, color[1] + shadeLeft);
+ colLeft[2] = minf(1.0f, color[2] + shadeLeft);
+ colRight[0] = maxf(0.0f, color[0] + shadeRight);
+ colRight[1] = maxf(0.0f, color[1] + shadeRight);
+ colRight[2] = maxf(0.0f, color[2] + shadeRight);
glShadeModel(GL_SMOOTH);
glBegin(mode);
@@ -439,9 +438,9 @@ void ui_draw_but_IMAGE(ARegion *UNUSED(ar), uiBut *but, uiWidgetColors *UNUSED(w
//glColor4f(1.0, 0.f, 0.f, 1.f);
//fdrawbox(rect->xmin, rect->ymin, rect->xmax, rect->ymax)
- w = (rect->xmax - rect->xmin);
- h = (rect->ymax - rect->ymin);
- // prevent drawing outside widget area
+ w = BLI_rcti_size_x(rect);
+ h = BLI_rcti_size_y(rect);
+ /* prevent drawing outside widget area */
glGetIntegerv(GL_SCISSOR_BOX, scissor);
glScissor(ar->winrct.xmin + rect->xmin, ar->winrct.ymin + rect->ymin, w, h);
#endif
@@ -479,7 +478,7 @@ static void ui_draw_but_CHARTAB(uiBut *but)
int charmax = G.charmax;
/* FO_BUILTIN_NAME font in use. There are TTF FO_BUILTIN_NAME and non-TTF FO_BUILTIN_NAME fonts */
- if (!strcmp(G.selfont->name, FO_BUILTIN_NAME)) {
+ if (BKE_vfont_is_builtin(G.selfont)) {
if (G.ui_international == TRUE) {
charmax = 0xff;
}
@@ -493,8 +492,8 @@ static void ui_draw_but_CHARTAB(uiBut *but)
charmax = G.charmax = 0xffff;
/* Calculate the size of the button */
- width = abs(rect->xmax - rect->xmin);
- height = abs(rect->ymax - rect->ymin);
+ width = abs(BLI_rcti_size_x(rect));
+ height = abs(BLI_rcti_size_y(rect));
butw = floor(width / 12);
buth = floor(height / 6);
@@ -508,8 +507,8 @@ static void ui_draw_but_CHARTAB(uiBut *but)
cs = G.charstart;
/* Set the font, in case it is not FO_BUILTIN_NAME font */
- if (G.selfont && strcmp(G.selfont->name, FO_BUILTIN_NAME)) {
- // Is the font file packed, if so then use the packed file
+ if (G.selfont && BKE_vfont_is_builtin(G.selfont) == FALSE) {
+ /* Is the font file packed, if so then use the packed file */
if (G.selfont->packedfile) {
pf = G.selfont->packedfile;
FTF_SetFont(pf->data, pf->size, 14.0);
@@ -537,29 +536,29 @@ static void ui_draw_but_CHARTAB(uiBut *but)
glColor3ub(0, 0, 0);
for (y = 0; y < 6; y++) {
- // Do not draw more than the category allows
+ /* Do not draw more than the category allows */
if (cs > charmax) break;
for (x = 0; x < 12; x++)
{
- // Do not draw more than the category allows
+ /* Do not draw more than the category allows */
if (cs > charmax) break;
- // Draw one grid cell
+ /* Draw one grid cell */
glBegin(GL_LINE_LOOP);
glVertex2f(sx, sy);
glVertex2f(ex, sy);
glVertex2f(ex, ey);
glVertex2f(sx, ey);
- glEnd();
+ glEnd();
- // Draw character inside the cell
+ /* Draw character inside the cell */
memset(wstr, 0, sizeof(wchar_t) * 2);
memset(ustr, 0, 16);
- // Set the font to be either unicode or FO_BUILTIN_NAME
+ /* Set the font to be either unicode or FO_BUILTIN_NAME */
wstr[0] = cs;
- if (strcmp(G.selfont->name, FO_BUILTIN_NAME)) {
+ if (BKE_vfont_is_builtin(G.selfont) == FALSE) {
BLI_strncpy_wchar_as_utf8((char *)ustr, (wchar_t *)wstr, sizeof(ustr));
}
else {
@@ -572,25 +571,25 @@ static void ui_draw_but_CHARTAB(uiBut *but)
}
}
- if ((G.selfont && strcmp(G.selfont->name, FO_BUILTIN_NAME)) ||
- (G.selfont && !strcmp(G.selfont->name, FO_BUILTIN_NAME) && G.ui_international == TRUE))
+ if ((G.selfont && (BKE_vfont_is_builtin(G.selfont) == FALSE)) ||
+ (G.selfont && (BKE_vfont_is_builtin(G.selfont) == TRUE) && G.ui_international == TRUE))
{
float wid;
float llx, lly, llz, urx, ury, urz;
float dx, dy;
float px, py;
- // Calculate the position
+ /* Calculate the position */
wid = FTF_GetStringWidth((char *) ustr, FTF_USE_GETTEXT | FTF_INPUT_UTF8);
FTF_GetBoundingBox((char *) ustr, &llx, &lly, &llz, &urx, &ury, &urz, FTF_USE_GETTEXT | FTF_INPUT_UTF8);
dx = urx - llx;
dy = ury - lly;
- // This isn't fully functional since the but->aspect isn't working like I suspected
+ /* This isn't fully functional since the but->aspect isn't working like I suspected */
px = sx + ((butw / but->aspect) - dx) / 2;
py = sy + ((buth / but->aspect) - dy) / 2;
- // Set the position and draw the character
+ /* Set the position and draw the character */
ui_rasterpos_safe(px, py, but->aspect);
FTF_DrawString((char *) ustr, FTF_USE_GETTEXT | FTF_INPUT_UTF8);
}
@@ -598,9 +597,10 @@ static void ui_draw_but_CHARTAB(uiBut *but)
ui_rasterpos_safe(sx + butw / 2, sy + buth / 2, but->aspect);
UI_DrawString(but->font, (char *) ustr, 0);
}
-
- // Calculate the next position and character
- sx += butw; ex += butw;
+
+ /* Calculate the next position and character */
+ sx += butw;
+ ex += butw;
cs++;
}
/* Add the y position and reset x position */
@@ -629,10 +629,10 @@ static void ui_draw_but_CHARTAB(uiBut *but)
}
}
-#endif // WITH_INTERNATIONAL
+#endif /* WITH_INTERNATIONAL */
#endif
-static void draw_scope_end(rctf *rect, GLint *scissor)
+static void draw_scope_end(const rctf *rect, GLint *scissor)
{
float scaler_x1, scaler_x2;
@@ -642,8 +642,8 @@ static void draw_scope_end(rctf *rect, GLint *scissor)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
/* scale widget */
- scaler_x1 = rect->xmin + (rect->xmax - rect->xmin) / 2 - SCOPE_RESIZE_PAD;
- scaler_x2 = rect->xmin + (rect->xmax - rect->xmin) / 2 + SCOPE_RESIZE_PAD;
+ scaler_x1 = rect->xmin + BLI_rctf_size_x(rect) / 2 - SCOPE_RESIZE_PAD;
+ scaler_x2 = rect->xmin + BLI_rctf_size_y(rect) / 2 + SCOPE_RESIZE_PAD;
glColor4f(0.f, 0.f, 0.f, 0.25f);
fdrawline(scaler_x1, rect->ymin - 4, scaler_x2, rect->ymin - 4);
@@ -714,6 +714,8 @@ static void histogram_draw_one(float r, float g, float b, float alpha,
}
}
+#define HISTOGRAM_TOT_GRID_LINES 4
+
void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *recti)
{
Histogram *hist = (Histogram *)but->poin;
@@ -730,8 +732,8 @@ void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol)
rect.ymin = (float)recti->ymin + SCOPE_RESIZE_PAD + 2;
rect.ymax = (float)recti->ymax - 1;
- w = rect.xmax - rect.xmin;
- h = (rect.ymax - rect.ymin) * hist->ymax;
+ w = BLI_rctf_size_x(&rect);
+ h = BLI_rctf_size_y(&rect) * hist->ymax;
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@@ -749,9 +751,16 @@ void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol)
glColor4f(1.f, 1.f, 1.f, 0.08f);
/* draw grid lines here */
- for (i = 1; i < 4; i++) {
- fdrawline(rect.xmin, rect.ymin + (i / 4.f) * h, rect.xmax, rect.ymin + (i / 4.f) * h);
- fdrawline(rect.xmin + (i / 4.f) * w, rect.ymin, rect.xmin + (i / 4.f) * w, rect.ymax);
+ for (i = 1; i < (HISTOGRAM_TOT_GRID_LINES + 1); i++) {
+ const float fac = (float)i / (float)HISTOGRAM_TOT_GRID_LINES;
+
+ /* so we can tell the 1.0 color point */
+ if (i == HISTOGRAM_TOT_GRID_LINES) {
+ glColor4f(1.0f, 1.0f, 1.0f, 0.5f);
+ }
+
+ fdrawline(rect.xmin, rect.ymin + fac * h, rect.xmax, rect.ymin + fac * h);
+ fdrawline(rect.xmin + fac * w, rect.ymin, rect.xmin + fac * w, rect.ymax);
}
if (hist->mode == HISTO_MODE_LUMA) {
@@ -773,6 +782,8 @@ void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol)
draw_scope_end(&rect, scissor);
}
+#undef HISTOGRAM_TOT_GRID_LINES
+
void ui_draw_but_WAVEFORM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *recti)
{
Scopes *scopes = (Scopes *)but->poin;
@@ -794,9 +805,9 @@ void ui_draw_but_WAVEFORM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol),
if (scopes->wavefrm_yfac < 0.5f)
scopes->wavefrm_yfac = 0.98f;
- w = rect.xmax - rect.xmin - 7;
- h = (rect.ymax - rect.ymin) * scopes->wavefrm_yfac;
- yofs = rect.ymin + (rect.ymax - rect.ymin - h) / 2.0f;
+ w = BLI_rctf_size_x(&rect) - 7;
+ h = BLI_rctf_size_y(&rect) * scopes->wavefrm_yfac;
+ yofs = rect.ymin + (BLI_rctf_size_y(&rect) - h) / 2.0f;
w3 = w / 3.0f;
/* log scale for alpha */
@@ -943,12 +954,12 @@ void ui_draw_but_WAVEFORM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol),
static float polar_to_x(float center, float diam, float ampli, float angle)
{
- return center + diam *ampli *cosf(angle);
+ return center + diam *ampli * cosf(angle);
}
static float polar_to_y(float center, float diam, float ampli, float angle)
{
- return center + diam *ampli *sinf(angle);
+ return center + diam *ampli * sinf(angle);
}
static void vectorscope_draw_target(float centerx, float centery, float diam, const float colf[3])
@@ -1022,8 +1033,8 @@ void ui_draw_but_VECTORSCOPE(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wco
rect.ymin = (float)recti->ymin + SCOPE_RESIZE_PAD + 2;
rect.ymax = (float)recti->ymax - 1;
- w = rect.xmax - rect.xmin;
- h = rect.ymax - rect.ymin;
+ w = BLI_rctf_size_x(&rect);
+ h = BLI_rctf_size_y(&rect);
centerx = rect.xmin + w / 2;
centery = rect.ymin + h / 2;
diam = (w < h) ? w : h;
@@ -1099,10 +1110,14 @@ void ui_draw_but_COLORBAND(uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *rect)
float v3[2], v1[2], v2[2], v1a[2], v2a[2];
int a;
float pos, colf[4] = {0, 0, 0, 0}; /* initialize in case the colorband isn't valid */
-
+ struct ColorManagedDisplay *display = NULL;
+
coba = (ColorBand *)(but->editcoba ? but->editcoba : but->poin);
if (coba == NULL) return;
-
+
+ if (but->block->color_profile)
+ display = ui_block_display_get(but->block);
+
x1 = rect->xmin;
y1 = rect->ymin;
sizex = rect->xmax - x1;
@@ -1130,18 +1145,20 @@ void ui_draw_but_COLORBAND(uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *rect)
glBegin(GL_QUAD_STRIP);
glColor4fv(&cbd->r);
- glVertex2fv(v1); glVertex2fv(v2);
-
+ glVertex2fv(v1);
+ glVertex2fv(v2);
+
for (a = 1; a <= sizex; a++) {
pos = ((float)a) / (sizex - 1);
do_colorband(coba, pos, colf);
- if (but->block->color_profile != BLI_PR_NONE)
- linearrgb_to_srgb_v3_v3(colf, colf);
+ if (display)
+ IMB_colormanagement_scene_linear_to_display_v3(colf, display);
v1[0] = v2[0] = x1 + a;
glColor4fv(colf);
- glVertex2fv(v1); glVertex2fv(v2);
+ glVertex2fv(v1);
+ glVertex2fv(v2);
}
glEnd();
@@ -1228,7 +1245,8 @@ void ui_draw_but_NORMAL(uiBut *but, uiWidgetColors *wcol, rcti *rect)
/* sphere color */
glMaterialfv(GL_FRONT, GL_DIFFUSE, diffn);
- glCullFace(GL_BACK); glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+ glEnable(GL_CULL_FACE);
/* disable blender light */
for (a = 0; a < 8; a++) {
@@ -1251,12 +1269,12 @@ void ui_draw_but_NORMAL(uiBut *but, uiWidgetColors *wcol, rcti *rect)
/* transform to button */
glPushMatrix();
- glTranslatef(rect->xmin + 0.5f * (rect->xmax - rect->xmin), rect->ymin + 0.5f * (rect->ymax - rect->ymin), 0.0f);
+ glTranslatef(rect->xmin + 0.5f * BLI_rcti_size_x(rect), rect->ymin + 0.5f * BLI_rcti_size_y(rect), 0.0f);
- if (rect->xmax - rect->xmin < rect->ymax - rect->ymin)
- size = (rect->xmax - rect->xmin) / 200.f;
+ if (BLI_rcti_size_x(rect) < BLI_rcti_size_y(rect))
+ size = BLI_rcti_size_x(rect) / 200.f;
else
- size = (rect->ymax - rect->ymin) / 200.f;
+ size = BLI_rcti_size_y(rect) / 200.f;
glScalef(size, size, size);
@@ -1344,8 +1362,14 @@ void ui_draw_but_CURVE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *rect
rcti scissor_new;
int a;
- cumap = (CurveMapping *)(but->editcumap ? but->editcumap : but->poin);
- cuma = cumap->cm + cumap->cur;
+ if (but->editcumap) {
+ cumap = but->editcumap;
+ }
+ else {
+ cumap = (CurveMapping *)but->poin;
+ }
+
+ cuma = &cumap->cm[cumap->cur];
/* need scissor test, curve can draw outside of boundary */
glGetIntegerv(GL_VIEWPORT, scissor);
@@ -1353,12 +1377,15 @@ void ui_draw_but_CURVE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *rect
scissor_new.ymin = ar->winrct.ymin + rect->ymin;
scissor_new.xmax = ar->winrct.xmin + rect->xmax;
scissor_new.ymax = ar->winrct.ymin + rect->ymax;
- BLI_isect_rcti(&scissor_new, &ar->winrct, &scissor_new);
- glScissor(scissor_new.xmin, scissor_new.ymin, scissor_new.xmax - scissor_new.xmin, scissor_new.ymax - scissor_new.ymin);
-
+ BLI_rcti_isect(&scissor_new, &ar->winrct, &scissor_new);
+ glScissor(scissor_new.xmin,
+ scissor_new.ymin,
+ BLI_rcti_size_x(&scissor_new),
+ BLI_rcti_size_y(&scissor_new));
+
/* calculate offset and zoom */
- zoomx = (rect->xmax - rect->xmin - 2.0f * but->aspect) / (cumap->curr.xmax - cumap->curr.xmin);
- zoomy = (rect->ymax - rect->ymin - 2.0f * but->aspect) / (cumap->curr.ymax - cumap->curr.ymin);
+ zoomx = (BLI_rcti_size_x(rect) - 2.0f * but->aspect) / BLI_rctf_size_x(&cumap->curr);
+ zoomy = (BLI_rcti_size_y(rect) - 2.0f * but->aspect) / BLI_rctf_size_y(&cumap->curr);
offsx = cumap->curr.xmin - but->aspect / zoomx;
offsy = cumap->curr.ymin - but->aspect / zoomy;
@@ -1470,12 +1497,13 @@ void ui_draw_but_CURVE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *rect
glBegin(GL_LINE_STRIP);
if (cuma->table == NULL)
- curvemapping_changed(cumap, 0); /* 0 = no remove doubles */
+ curvemapping_changed(cumap, FALSE);
cmp = cuma->table;
/* first point */
- if ((cuma->flag & CUMA_EXTEND_EXTRAPOLATE) == 0)
+ if ((cuma->flag & CUMA_EXTEND_EXTRAPOLATE) == 0) {
glVertex2f(rect->xmin, rect->ymin + zoomy * (cmp[0].y - offsy));
+ }
else {
fx = rect->xmin + zoomx * (cmp[0].x - offsx + cuma->ext_in[0]);
fy = rect->ymin + zoomy * (cmp[0].y - offsy + cuma->ext_in[1]);
@@ -1487,8 +1515,9 @@ void ui_draw_but_CURVE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *rect
glVertex2f(fx, fy);
}
/* last point */
- if ((cuma->flag & CUMA_EXTEND_EXTRAPOLATE) == 0)
+ if ((cuma->flag & CUMA_EXTEND_EXTRAPOLATE) == 0) {
glVertex2f(rect->xmax, rect->ymin + zoomy * (cmp[CM_TABLE].y - offsy));
+ }
else {
fx = rect->xmin + zoomx * (cmp[CM_TABLE].x - offsx - cuma->ext_out[0]);
fy = rect->ymin + zoomy * (cmp[CM_TABLE].y - offsy - cuma->ext_out[1]);
@@ -1503,7 +1532,7 @@ void ui_draw_but_CURVE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *rect
glPointSize(3.0f);
bglBegin(GL_POINTS);
for (a = 0; a < cuma->totpoint; a++) {
- if (cmp[a].flag & SELECT)
+ if (cmp[a].flag & CUMA_SELECT)
UI_ThemeColor(TH_TEXT_HI);
else
UI_ThemeColor(TH_TEXT);
@@ -1534,8 +1563,8 @@ void ui_draw_but_TRACKPREVIEW(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wc
rect.ymin = (float)recti->ymin + SCOPE_RESIZE_PAD + 2;
rect.ymax = (float)recti->ymax - 1;
- width = rect.xmax - rect.xmin + 1;
- height = rect.ymax - rect.ymin;
+ width = BLI_rctf_size_x(&rect) + 1;
+ height = BLI_rctf_size_y(&rect);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@@ -1571,9 +1600,9 @@ void ui_draw_but_TRACKPREVIEW(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wc
if (tmpibuf->rect_float)
IMB_rect_from_float(tmpibuf);
- // XXX: for debug only
- // tmpibuf->ftype = PNG;
- // IMB_saveiff(tmpibuf, "sample.png", IB_rect);
+ /* XXX: for debug only
+ * tmpibuf->ftype = PNG;
+ * IMB_saveiff(tmpibuf, "sample.png", IB_rect); */
if (tmpibuf->rect)
scopes->track_preview = tmpibuf;
@@ -1610,8 +1639,8 @@ void ui_draw_but_TRACKPREVIEW(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wc
glTranslatef(rect.xmin + track_pos[0], rect.ymin + track_pos[1], 0.f);
glScissor(ar->winrct.xmin + rect.xmin,
ar->winrct.ymin + rect.ymin,
- rect.xmax - rect.xmin,
- rect.ymax - rect.ymin);
+ BLI_rctf_size_x(&rect),
+ BLI_rctf_size_y(&rect));
for (a = 0; a < 2; a++) {
if (a == 1) {
@@ -1702,7 +1731,7 @@ void uiDrawBoxShadow(unsigned char alpha, float minx, float miny, float maxx, fl
}
-void ui_dropshadow(rctf *rct, float radius, float aspect, float alpha, int UNUSED(select))
+void ui_dropshadow(const rctf *rct, float radius, float aspect, float alpha, int UNUSED(select))
{
int i;
float rad;
@@ -1711,8 +1740,8 @@ void ui_dropshadow(rctf *rct, float radius, float aspect, float alpha, int UNUSE
glEnable(GL_BLEND);
- if (radius > (rct->ymax - rct->ymin - 10.0f) / 2.0f)
- rad = (rct->ymax - rct->ymin - 10.0f) / 2.0f;
+ if (radius > (BLI_rctf_size_y(rct) - 10.0f) / 2.0f)
+ rad = (BLI_rctf_size_y(rct) - 10.0f) / 2.0f;
else
rad = radius;
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 30c5f2fbe40..f798f0b399b 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -54,6 +54,7 @@
#include "PIL_time.h"
+#include "BKE_blender.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
#include "BKE_idprop.h"
@@ -77,6 +78,9 @@
#include "WM_api.h"
#include "WM_types.h"
+/* place the mouse at the scaled down location when un-grabbing */
+#define USE_CONT_MOUSE_CORRECT
+
/* proto */
static void ui_add_smart_controller(bContext *C, uiBut *from, uiBut *to);
static void ui_add_link(bContext *C, uiBut *from, uiBut *to);
@@ -120,8 +124,10 @@ typedef struct uiHandleButtonData {
/* overall state */
uiHandleButtonState state;
- int cancel, escapecancel, retval;
- int applied, appliedinteractive;
+ int retval;
+ /* booleans (could be made into flags) */
+ char cancel, escapecancel;
+ char applied, appliedinteractive;
wmTimer *flashtimer;
/* edited value */
@@ -149,6 +155,12 @@ typedef struct uiHandleButtonData {
float dragf, dragfstart;
CBData *dragcbd;
+#ifdef USE_CONT_MOUSE_CORRECT
+ /* when ungrabbing buttons which are #ui_is_a_warp_but(), we may want to position them
+ * FLT_MAX signifies do-nothing, use #ui_block_to_window_fl() to get this into a usable space */
+ float ungrab_mval[2];
+#endif
+
/* menu open (watch uiFreeActiveButtons) */
uiPopupBlockHandle *menu;
int menuretval;
@@ -193,7 +205,7 @@ typedef struct uiAfterFunc {
bContextStore *context;
- char undostr[512];
+ char undostr[BKE_UNDO_STR_MAX];
int autokey;
} uiAfterFunc;
@@ -256,13 +268,42 @@ static uiBut *ui_but_last(uiBlock *block)
static int ui_is_a_warp_but(uiBut *but)
{
- if (U.uiflag & USER_CONTINUOUS_MOUSE)
- if (ELEM4(but->type, NUM, NUMABS, HSVCIRCLE, TRACKPREVIEW))
+ if (U.uiflag & USER_CONTINUOUS_MOUSE) {
+ if (ELEM6(but->type, NUM, NUMABS, HSVCIRCLE, TRACKPREVIEW, HSVCUBE, BUT_CURVE)) {
return TRUE;
+ }
+ }
return FALSE;
}
+static float ui_mouse_scale_warp_factor(const short shift)
+{
+ if (U.uiflag & USER_CONTINUOUS_MOUSE) {
+ return shift ? 0.05f : 1.0f;
+ }
+ else {
+ return 1.0f;
+ }
+}
+
+static void ui_mouse_scale_warp(uiHandleButtonData *data,
+ const float mx, const float my,
+ float *r_mx, float *r_my,
+ const short shift)
+{
+ if (U.uiflag & USER_CONTINUOUS_MOUSE) {
+ const float fac = ui_mouse_scale_warp_factor(shift);
+ /* slow down the mouse, this is fairly picky */
+ *r_mx = (data->dragstartx * (1.0f - fac) + mx * fac);
+ *r_my = (data->dragstarty * (1.0f - fac) + my * fac);
+ }
+ else {
+ *r_mx = mx;
+ *r_my = my;
+ }
+}
+
/* file selectors are exempt from utf-8 checks */
int ui_is_but_utf8(uiBut *but)
{
@@ -432,7 +473,7 @@ static void ui_apply_but_BUT(bContext *C, uiBut *but, uiHandleButtonData *data)
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_BUTM(bContext *C, uiBut *but, uiHandleButtonData *data)
@@ -441,7 +482,7 @@ static void ui_apply_but_BUTM(bContext *C, uiBut *but, uiHandleButtonData *data)
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data)
@@ -452,7 +493,7 @@ static void ui_apply_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data
ui_check_but(but);
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_TOG(bContext *C, uiBut *but, uiHandleButtonData *data)
@@ -462,19 +503,21 @@ static void ui_apply_but_TOG(bContext *C, uiBut *but, uiHandleButtonData *data)
/* local hack... */
if (but->type == BUT_TOGDUAL && data->togdual) {
- if (but->pointype == SHO)
+ if (but->pointype == UI_BUT_POIN_SHORT) {
but->poin += 2;
- else if (but->pointype == INT)
+ }
+ else if (but->pointype == UI_BUT_POIN_INT) {
but->poin += 4;
+ }
}
value = ui_get_but_val(but);
lvalue = (int)value;
if (but->bit) {
- w = BTST(lvalue, but->bitnr);
- if (w) lvalue = BCLR(lvalue, but->bitnr);
- else lvalue = BSET(lvalue, but->bitnr);
+ w = UI_BITBUT_TEST(lvalue, but->bitnr);
+ if (w) lvalue = UI_BITBUT_CLR(lvalue, but->bitnr);
+ else lvalue = UI_BITBUT_SET(lvalue, but->bitnr);
if (but->type == TOGR) {
if (!data->togonly) {
@@ -502,16 +545,18 @@ static void ui_apply_but_TOG(bContext *C, uiBut *but, uiHandleButtonData *data)
/* end local hack... */
if (but->type == BUT_TOGDUAL && data->togdual) {
- if (but->pointype == SHO)
+ if (but->pointype == UI_BUT_POIN_SHORT) {
but->poin -= 2;
- else if (but->pointype == INT)
+ }
+ else if (but->pointype == UI_BUT_POIN_INT) {
but->poin -= 4;
+ }
}
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_ROW(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data)
@@ -528,7 +573,7 @@ static void ui_apply_but_ROW(bContext *C, uiBlock *block, uiBut *but, uiHandleBu
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_TEX(bContext *C, uiBut *but, uiHandleButtonData *data)
@@ -547,7 +592,7 @@ static void ui_apply_but_TEX(bContext *C, uiBut *but, uiHandleButtonData *data)
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_NUM(bContext *C, uiBut *but, uiHandleButtonData *data)
@@ -557,7 +602,7 @@ static void ui_apply_but_NUM(bContext *C, uiBut *but, uiHandleButtonData *data)
data->value = ui_get_but_val(but);
}
else {
- data->cancel = 1;
+ data->cancel = TRUE;
return;
}
}
@@ -568,42 +613,42 @@ static void ui_apply_but_NUM(bContext *C, uiBut *but, uiHandleButtonData *data)
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_TOG3(bContext *C, uiBut *but, uiHandleButtonData *data)
{
- if (but->pointype == SHO) {
+ if (but->pointype == UI_BUT_POIN_SHORT) {
short *sp = (short *)but->poin;
- if (BTST(sp[1], but->bitnr)) {
- sp[1] = BCLR(sp[1], but->bitnr);
- sp[0] = BCLR(sp[0], but->bitnr);
+ if (UI_BITBUT_TEST(sp[1], but->bitnr)) {
+ sp[1] = UI_BITBUT_CLR(sp[1], but->bitnr);
+ sp[0] = UI_BITBUT_CLR(sp[0], but->bitnr);
}
- else if (BTST(sp[0], but->bitnr)) {
- sp[1] = BSET(sp[1], but->bitnr);
+ else if (UI_BITBUT_TEST(sp[0], but->bitnr)) {
+ sp[1] = UI_BITBUT_SET(sp[1], but->bitnr);
}
else {
- sp[0] = BSET(sp[0], but->bitnr);
+ sp[0] = UI_BITBUT_SET(sp[0], but->bitnr);
}
}
else {
- if (BTST(*(but->poin + 2), but->bitnr)) {
- *(but->poin + 2) = BCLR(*(but->poin + 2), but->bitnr);
- *(but->poin) = BCLR(*(but->poin), but->bitnr);
+ if (UI_BITBUT_TEST(*(but->poin + 2), but->bitnr)) {
+ *(but->poin + 2) = UI_BITBUT_CLR(*(but->poin + 2), but->bitnr);
+ *(but->poin) = UI_BITBUT_CLR(*(but->poin), but->bitnr);
}
- else if (BTST(*(but->poin), but->bitnr)) {
- *(but->poin + 2) = BSET(*(but->poin + 2), but->bitnr);
+ else if (UI_BITBUT_TEST(*(but->poin), but->bitnr)) {
+ *(but->poin + 2) = UI_BITBUT_SET(*(but->poin + 2), but->bitnr);
}
else {
- *(but->poin) = BSET(*(but->poin), but->bitnr);
+ *(but->poin) = UI_BITBUT_SET(*(but->poin), but->bitnr);
}
}
ui_check_but(but);
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_VEC(bContext *C, uiBut *but, uiHandleButtonData *data)
@@ -613,21 +658,21 @@ static void ui_apply_but_VEC(bContext *C, uiBut *but, uiHandleButtonData *data)
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_COLORBAND(bContext *C, uiBut *but, uiHandleButtonData *data)
{
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_CURVE(bContext *C, uiBut *but, uiHandleButtonData *data)
{
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_IDPOIN(bContext *C, uiBut *but, uiHandleButtonData *data)
@@ -636,7 +681,7 @@ static void ui_apply_but_IDPOIN(bContext *C, uiBut *but, uiHandleButtonData *dat
ui_check_but(but);
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
#ifdef WITH_INTERNATIONAL
@@ -644,7 +689,7 @@ static void ui_apply_but_CHARTAB(bContext *C, uiBut *but, uiHandleButtonData *da
{
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
#endif
@@ -657,20 +702,21 @@ static int ui_but_mouse_inside_icon(uiBut *but, ARegion *ar, wmEvent *event)
ui_window_to_block(ar, but->block, &x, &y);
- rect.xmin = but->x1; rect.xmax = but->x2;
- rect.ymin = but->y1; rect.ymax = but->y2;
+ BLI_rcti_rctf_copy(&rect, &but->rect);
- if (but->imb) ; /* use button size itself */
+ if (but->imb) {
+ /* use button size itself */
+ }
else if (but->flag & UI_ICON_LEFT) {
- rect.xmax = rect.xmin + (rect.ymax - rect.ymin);
+ rect.xmax = rect.xmin + (BLI_rcti_size_y(&rect));
}
else {
- int delta = (rect.xmax - rect.xmin) - (rect.ymax - rect.ymin);
+ int delta = BLI_rcti_size_x(&rect) - BLI_rcti_size_y(&rect);
rect.xmin += delta / 2;
rect.xmax -= delta / 2;
}
- return BLI_in_rcti(&rect, x, y);
+ return BLI_rcti_isect_pt(&rect, x, y);
}
static int ui_but_start_drag(bContext *C, uiBut *but, uiHandleButtonData *data, wmEvent *event)
@@ -682,11 +728,11 @@ static int ui_but_start_drag(bContext *C, uiBut *but, uiHandleButtonData *data,
wmDrag *drag;
button_activate_state(C, but, BUTTON_STATE_EXIT);
- data->cancel = 1;
+ data->cancel = TRUE;
drag = WM_event_start_drag(C, but->icon, but->dragtype, but->dragpoin, ui_get_but_val(but));
if (but->imb)
- WM_event_drag_image(drag, but->imb, but->imb_scale, but->x2 - but->x1, but->y2 - but->y1);
+ WM_event_drag_image(drag, but->imb, but->imb_scale, BLI_rctf_size_x(&but->rect), BLI_rctf_size_y(&but->rect));
return 1;
}
@@ -701,13 +747,10 @@ static void ui_delete_active_linkline(uiBlock *block)
uiLink *link;
uiLinkLine *line, *nline;
int a, b;
-
- but = block->buttons.first;
- while (but) {
+
+ for (but = block->buttons.first; but; but = but->next) {
if (but->type == LINK && but->link) {
- line = but->link->lines.first;
- while (line) {
-
+ for (line = but->link->lines.first; line; line = nline) {
nline = line->next;
if (line->flag & UI_SELECT) {
@@ -727,7 +770,7 @@ static void ui_delete_active_linkline(uiBlock *block)
b = 0;
for (a = 0; a < (*(link->totlink)); a++) {
- if ( (*(link->ppoin))[a] != line->to->poin) {
+ if ((*(link->ppoin))[a] != line->to->poin) {
(*(link->ppoin))[b] = (*(link->ppoin))[a];
b++;
}
@@ -741,10 +784,8 @@ static void ui_delete_active_linkline(uiBlock *block)
MEM_freeN(line);
}
- line = nline;
}
}
- but = but->next;
}
}
@@ -756,10 +797,10 @@ static uiLinkLine *ui_is_a_link(uiBut *from, uiBut *to)
link = from->link;
if (link) {
- line = link->lines.first;
- while (line) {
- if (line->from == from && line->to == to) return line;
- line = line->next;
+ for (line = link->lines.first; line; line = line->next) {
+ if (line->from == from && line->to == to) {
+ return line;
+ }
}
}
return NULL;
@@ -778,6 +819,8 @@ static void ui_add_smart_controller(bContext *C, uiBut *from, uiBut *to)
uiLink *link = from->link;
+ PointerRNA props_ptr, object_ptr;
+
if (link->ppoin)
sens_from_links = (bController ***)(link->ppoin);
else return;
@@ -804,12 +847,19 @@ static void ui_add_smart_controller(bContext *C, uiBut *from, uiBut *to)
break;
}
- // only works if the sensor and the actuator are from the same object
+ /* only works if the sensor and the actuator are from the same object */
if (!act_iter) return;
+
+ /* in case the linked controller is not the active one */
+ RNA_pointer_create((ID *)ob, &RNA_Object, ob, &object_ptr);
+
+ WM_operator_properties_create(&props_ptr, "LOGIC_OT_controller_add");
+ RNA_string_set(&props_ptr, "object", ob->id.name + 2);
/* (3) add a new controller */
- if (WM_operator_name_call(C, "LOGIC_OT_controller_add", WM_OP_EXEC_DEFAULT, NULL) & OPERATOR_FINISHED) {
+ if (WM_operator_name_call(C, "LOGIC_OT_controller_add", WM_OP_EXEC_DEFAULT, &props_ptr) & OPERATOR_FINISHED) {
cont = (bController *)ob->controllers.last;
+ cont->type = CONT_LOGIC_AND; /* Quick fix to make sure we always have an AND controller. It might be nicer to make sure the operator gives us the right one though... */
/* (4) link the sensor->controller->actuator */
tmp_but = MEM_callocN(sizeof(uiBut), "uiBut");
@@ -827,6 +877,7 @@ static void ui_add_smart_controller(bContext *C, uiBut *from, uiBut *to)
MEM_freeN(tmp_but->link);
MEM_freeN(tmp_but);
}
+ WM_operator_properties_free(&props_ptr);
}
static void ui_add_link(bContext *C, uiBut *from, uiBut *to)
@@ -837,7 +888,7 @@ static void ui_add_link(bContext *C, uiBut *from, uiBut *to)
void **oldppoin;
int a;
- if ( (line = ui_is_a_link(from, to)) ) {
+ if ((line = ui_is_a_link(from, to))) {
line->flag |= UI_SELECT;
ui_delete_active_linkline(from->block);
return;
@@ -900,35 +951,35 @@ static void ui_apply_but_LINK(bContext *C, uiBut *but, uiHandleButtonData *data)
ui_apply_but_func(C, but);
data->retval = but->retval;
}
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_IMAGE(bContext *C, uiBut *but, uiHandleButtonData *data)
{
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_HISTOGRAM(bContext *C, uiBut *but, uiHandleButtonData *data)
{
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_WAVEFORM(bContext *C, uiBut *but, uiHandleButtonData *data)
{
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
static void ui_apply_but_TRACKPREVIEW(bContext *C, uiBut *but, uiHandleButtonData *data)
{
ui_apply_but_func(C, but);
data->retval = but->retval;
- data->applied = 1;
+ data->applied = TRUE;
}
@@ -959,10 +1010,12 @@ static void ui_apply_button(bContext *C, uiBlock *block, uiBut *but, uiHandleBut
else {
/* we avoid applying interactive edits a second time
* at the end with the appliedinteractive flag */
- if (interactive)
- data->appliedinteractive = 1;
- else if (data->appliedinteractive)
+ if (interactive) {
+ data->appliedinteractive = TRUE;
+ }
+ else if (data->appliedinteractive) {
return;
+ }
}
/* ensures we are writing actual values */
@@ -1020,7 +1073,7 @@ static void ui_apply_button(bContext *C, uiBlock *block, uiBut *but, uiHandleBut
case PULLDOWN:
ui_apply_but_BLOCK(C, but, data);
break;
- case COL:
+ case COLOR:
if (data->cancel)
ui_apply_but_VEC(C, but, data);
else
@@ -1111,8 +1164,9 @@ static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData *data,
static ColorBand but_copypaste_coba = {0};
char buf[UI_MAX_DRAW_STR + 1] = {0};
- if (mode == 'v' && but->lock)
+ if (mode == 'v' && but->lock == TRUE) {
return;
+ }
if (mode == 'v') {
/* extract first line from clipboard in case of multi-line copies */
@@ -1132,7 +1186,9 @@ static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData *data,
/* numeric value */
if (ELEM4(but->type, NUM, NUMABS, NUMSLI, HSVSLI)) {
- if (but->poin == NULL && but->rnapoin.data == NULL) ;
+ if (but->poin == NULL && but->rnapoin.data == NULL) {
+ /* pass */
+ }
else if (mode == 'c') {
ui_get_but_string(but, buf, sizeof(buf));
WM_clipboard_text_set(buf, 0);
@@ -1150,19 +1206,29 @@ static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData *data,
}
/* RGB triple */
- else if (but->type == COL) {
+ else if (but->type == COLOR) {
float rgb[3];
- if (but->poin == NULL && but->rnapoin.data == NULL) ;
+ if (but->poin == NULL && but->rnapoin.data == NULL) {
+ /* pass */
+ }
else if (mode == 'c') {
ui_get_but_vectorf(but, rgb);
+ /* convert to linear color to do compatible copy between gamma and non-gamma */
+ if (but->rnaprop && RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA)
+ srgb_to_linearrgb_v3_v3(rgb, rgb);
+
BLI_snprintf(buf, sizeof(buf), "[%f, %f, %f]", rgb[0], rgb[1], rgb[2]);
WM_clipboard_text_set(buf, 0);
}
else {
if (sscanf(buf, "[%f, %f, %f]", &rgb[0], &rgb[1], &rgb[2]) == 3) {
+ /* assume linear colors in buffer */
+ if (but->rnaprop && RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA)
+ linearrgb_to_srgb_v3_v3(rgb, rgb);
+
button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
ui_set_but_vectorf(but, rgb);
button_activate_state(C, but, BUTTON_STATE_EXIT);
@@ -1174,12 +1240,14 @@ static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData *data,
else if (ELEM3(but->type, TEX, IDPOIN, SEARCH_MENU)) {
uiHandleButtonData *active_data = but->active;
- if (but->poin == NULL && but->rnapoin.data == NULL) ;
+ if (but->poin == NULL && but->rnapoin.data == NULL) {
+ /* pass */
+ }
else if (mode == 'c') {
button_activate_state(C, but, BUTTON_STATE_TEXT_EDITING);
BLI_strncpy(buf, active_data->str, UI_MAX_DRAW_STR);
WM_clipboard_text_set(active_data->str, 0);
- active_data->cancel = 1;
+ active_data->cancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
else {
@@ -1253,7 +1321,7 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho
{
uiStyle *style = UI_GetStyle(); // XXX pass on as arg
uiFontStyle *fstyle = &style->widget;
- int startx = but->x1;
+ int startx = but->rect.xmin;
char *origstr;
uiStyleFontSet(fstyle);
@@ -1267,7 +1335,7 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho
/* XXX solve generic */
if (but->type == NUM || but->type == NUMSLI)
- startx += (int)(0.5f * (but->y2 - but->y1));
+ startx += (int)(0.5f * (BLI_rctf_size_y(&but->rect)));
else if (ELEM(but->type, TEX, SEARCH_MENU)) {
startx += 5;
if (but->flag & UI_HAS_ICON)
@@ -1282,7 +1350,10 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho
while (i > 0) {
if (BLI_str_cursor_step_prev_utf8(origstr, but->ofs, &i)) {
- if (BLF_width(fstyle->uifont_id, origstr + i) > (startx - x) * 0.25f) break; // 0.25 == scale factor for less sensitivity
+ /* 0.25 == scale factor for less sensitivity */
+ if (BLF_width(fstyle->uifont_id, origstr + i) > (startx - x) * 0.25f) {
+ break;
+ }
}
else {
break; /* unlikely but possible */
@@ -1305,7 +1376,7 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho
while (TRUE) {
/* XXX does not take zoom level into account */
- cdist = startx + aspect_sqrt *BLF_width(fstyle->uifont_id, origstr + but->ofs);
+ cdist = startx + aspect_sqrt * BLF_width(fstyle->uifont_id, origstr + but->ofs);
/* check if position is found */
if (cdist < x) {
@@ -1341,13 +1412,13 @@ static void ui_textedit_set_cursor_pos(uiBut *but, uiHandleButtonData *data, sho
static void ui_textedit_set_cursor_select(uiBut *but, uiHandleButtonData *data, short x)
{
- if (x > data->selstartx) data->selextend = EXTEND_RIGHT;
+ if (x > data->selstartx) data->selextend = EXTEND_RIGHT;
else if (x < data->selstartx) data->selextend = EXTEND_LEFT;
ui_textedit_set_cursor_pos(but, data, x);
-
- if (data->selextend == EXTEND_RIGHT) but->selend = but->pos;
- if (data->selextend == EXTEND_LEFT) but->selsta = but->pos;
+
+ if (data->selextend == EXTEND_RIGHT) but->selend = but->pos;
+ else if (data->selextend == EXTEND_LEFT) but->selsta = but->pos;
ui_check_but(but);
}
@@ -1399,7 +1470,8 @@ static int ui_textedit_type_ascii(uiBut *but, uiHandleButtonData *data, char asc
return ui_textedit_type_buf(but, data, buf, 1);
}
-static void ui_textedit_move(uiBut *but, uiHandleButtonData *data, strCursorJumpDirection direction, int select, strCursorJumpType jump)
+static void ui_textedit_move(uiBut *but, uiHandleButtonData *data, strCursorJumpDirection direction,
+ int select, strCursorJumpType jump)
{
const char *str = data->str;
const int len = strlen(str);
@@ -1550,6 +1622,7 @@ static int ui_textedit_copypaste(uiBut *but, uiHandleButtonData *data, int paste
/* paste */
if (paste) {
+ /* TODO, ensure UTF8 ui_is_but_utf8() - campbell */
/* extract the first line from the clipboard */
p = pbuf = WM_clipboard_text_get(0);
@@ -1748,13 +1821,13 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
break;
case RIGHTMOUSE:
case ESCKEY:
- data->cancel = 1;
- data->escapecancel = 1;
+ data->cancel = TRUE;
+ data->escapecancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
retval = WM_UI_HANDLER_BREAK;
break;
- case LEFTMOUSE: {
-
+ case LEFTMOUSE:
+ {
/* exit on LMB only on RELEASE for searchbox, to mimic other popups, and allow multiple menu levels */
if (data->searchbox)
inbox = ui_searchbox_inside(data->searchbox, event->x, event->y);
@@ -1775,7 +1848,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
else if (inbox == 0) {
/* if searchbox, click outside will cancel */
if (data->searchbox)
- data->cancel = data->escapecancel = 1;
+ data->cancel = data->escapecancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
retval = WM_UI_HANDLER_BREAK;
}
@@ -1805,11 +1878,13 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
}
break;
case RIGHTARROWKEY:
- ui_textedit_move(but, data, STRCUR_DIR_NEXT, event->shift, event->ctrl ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
+ ui_textedit_move(but, data, STRCUR_DIR_NEXT,
+ event->shift, event->ctrl ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
retval = WM_UI_HANDLER_BREAK;
break;
case LEFTARROWKEY:
- ui_textedit_move(but, data, STRCUR_DIR_PREV, event->shift, event->ctrl ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
+ ui_textedit_move(but, data, STRCUR_DIR_PREV,
+ event->shift, event->ctrl ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
retval = WM_UI_HANDLER_BREAK;
break;
case DOWNARROWKEY:
@@ -1819,7 +1894,8 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
}
/* pass on purposedly */
case ENDKEY:
- ui_textedit_move(but, data, STRCUR_DIR_NEXT, event->shift, STRCUR_JUMP_ALL);
+ ui_textedit_move(but, data, STRCUR_DIR_NEXT,
+ event->shift, STRCUR_JUMP_ALL);
retval = WM_UI_HANDLER_BREAK;
break;
case UPARROWKEY:
@@ -1829,7 +1905,8 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
}
/* pass on purposedly */
case HOMEKEY:
- ui_textedit_move(but, data, STRCUR_DIR_PREV, event->shift, STRCUR_JUMP_ALL);
+ ui_textedit_move(but, data, STRCUR_DIR_PREV,
+ event->shift, STRCUR_JUMP_ALL);
retval = WM_UI_HANDLER_BREAK;
break;
case PADENTER:
@@ -1838,12 +1915,14 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
retval = WM_UI_HANDLER_BREAK;
break;
case DELKEY:
- changed = ui_textedit_delete(but, data, 1, event->ctrl ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
+ changed = ui_textedit_delete(but, data, 1,
+ event->ctrl ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
retval = WM_UI_HANDLER_BREAK;
break;
case BACKSPACEKEY:
- changed = ui_textedit_delete(but, data, 0, event->shift ? STRCUR_JUMP_ALL : (event->ctrl ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE));
+ changed = ui_textedit_delete(but, data, 0,
+ event->shift ? STRCUR_JUMP_ALL : (event->ctrl ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE));
retval = WM_UI_HANDLER_BREAK;
break;
@@ -1903,8 +1982,12 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
if (changed) {
/* only update when typing for TAB key */
- if (update && data->interactive) ui_apply_button(C, block, but, data, 1);
- else ui_check_but(but);
+ if (update && data->interactive) {
+ ui_apply_button(C, block, but, data, 1);
+ }
+ else {
+ ui_check_but(but);
+ }
but->changed = TRUE;
if (data->searchbox)
@@ -1920,7 +2003,8 @@ static void ui_do_but_textedit_select(bContext *C, uiBlock *block, uiBut *but, u
int mx, my, retval = WM_UI_HANDLER_CONTINUE;
switch (event->type) {
- case MOUSEMOVE: {
+ case MOUSEMOVE:
+ {
mx = event->x;
my = event->y;
ui_window_to_block(data->region, block, &mx, &my);
@@ -1994,8 +2078,12 @@ static void ui_numedit_end(uiBut *but, uiHandleButtonData *data)
static void ui_numedit_apply(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data)
{
- if (data->interactive) ui_apply_button(C, block, but, data, 1);
- else ui_check_but(but);
+ if (data->interactive) {
+ ui_apply_button(C, block, but, data, 1);
+ }
+ else {
+ ui_check_but(but);
+ }
ED_region_tag_redraw(data->region);
}
@@ -2043,14 +2131,18 @@ static void ui_blockopen_begin(bContext *C, uiBut *but, uiHandleButtonData *data
menufunc = ui_block_func_ICONTEXTROW;
arg = but;
break;
- case COL:
+ case COLOR:
ui_get_but_vectorf(but, data->origvec);
copy_v3_v3(data->vec, data->origvec);
but->editvec = data->vec;
- handlefunc = ui_block_func_COL;
+ handlefunc = ui_block_func_COLOR;
arg = but;
break;
+
+ /* quiet warnings for unhandled types */
+ default:
+ break;
}
if (func || handlefunc) {
@@ -2065,7 +2157,7 @@ static void ui_blockopen_begin(bContext *C, uiBut *but, uiHandleButtonData *data
}
/* this makes adjacent blocks auto open from now on */
- //if (but->block->auto_open==0) but->block->auto_open= 1;
+ //if (but->block->auto_open ==0 ) but->block->auto_open = 1;
}
static void ui_blockopen_end(bContext *C, uiBut *but, uiHandleButtonData *data)
@@ -2083,6 +2175,16 @@ static void ui_blockopen_end(bContext *C, uiBut *but, uiHandleButtonData *data)
}
}
+int ui_button_open_menu_direction(uiBut *but)
+{
+ uiHandleButtonData *data = but->active;
+
+ if (data && data->menu)
+ return data->menu->direction;
+
+ return 0;
+}
+
/* ***************** events for different button types *************** */
static int ui_do_but_BUT(bContext *C, uiBut *but, uiHandleButtonData *data, wmEvent *event)
@@ -2104,7 +2206,7 @@ static int ui_do_but_BUT(bContext *C, uiBut *but, uiHandleButtonData *data, wmEv
else if (data->state == BUTTON_STATE_WAIT_RELEASE) {
if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
if (!(but->flag & UI_SELECT))
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
return WM_UI_HANDLER_BREAK;
}
@@ -2135,7 +2237,7 @@ static int ui_do_but_HOTKEYEVT(bContext *C, uiBut *but, uiHandleButtonData *data
if (but->flag & UI_BUT_IMMEDIATE)
ui_set_but_val(but, 0);
else
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
return WM_UI_HANDLER_BREAK;
}
@@ -2157,14 +2259,14 @@ static int ui_do_but_HOTKEYEVT(bContext *C, uiBut *but, uiHandleButtonData *data
if (WM_key_event_string(event->type)[0])
ui_set_but_val(but, event->type);
else
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
return WM_UI_HANDLER_BREAK;
}
else if (event->type == ESCKEY) {
- data->cancel = 1;
- data->escapecancel = 1;
+ data->cancel = TRUE;
+ data->escapecancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
@@ -2190,7 +2292,7 @@ static int ui_do_but_KEYEVT(bContext *C, uiBut *but, uiHandleButtonData *data, w
if (WM_key_event_string(event->type)[0])
ui_set_but_val(but, event->type);
else
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
@@ -2203,7 +2305,9 @@ static int ui_do_but_TEX(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
{
if (data->state == BUTTON_STATE_HIGHLIGHT) {
if (ELEM(event->type, LEFTMOUSE, EVT_BUT_OPEN) && event->val == KM_PRESS) {
- if (but->dt == UI_EMBOSSN && !event->ctrl) ;
+ if (but->dt == UI_EMBOSSN && !event->ctrl) {
+ /* pass */
+ }
else {
button_activate_state(C, but, BUTTON_STATE_TEXT_EDITING);
return WM_UI_HANDLER_BREAK;
@@ -2316,14 +2420,14 @@ static float ui_numedit_apply_snapf(uiBut *but, float tempf, float softmin, floa
}
if (snap == 1) {
- if (softrange < 2.10f) tempf = 0.1f * floorf(10.0f * tempf);
+ if (softrange < 2.10f) tempf = 0.1f * floorf(10.0f * tempf);
else if (softrange < 21.0f) tempf = floorf(tempf);
- else tempf = 10.0f * floorf(tempf / 10.0f);
+ else tempf = 10.0f * floorf(tempf / 10.0f);
}
else if (snap == 2) {
- if (softrange < 2.10f) tempf = 0.01f * floorf(100.0f * tempf);
- else if (softrange < 21.0f) tempf = 0.1f * floorf(10.0f * tempf);
- else tempf = floor(tempf);
+ if (softrange < 2.10f) tempf = 0.01f * floorf(100.0f * tempf);
+ else if (softrange < 21.0f) tempf = 0.1f * floorf(10.0f * tempf);
+ else tempf = floor(tempf);
}
if (fac != 1.0f)
@@ -2402,9 +2506,9 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i
}
}
else {
- if (softrange > 256) fac = 1.0; /* 1px == 1 */
- else if (softrange > 32) fac = 1.0 / 2.0; /* 2px == 1 */
- else fac = 1.0 / 16.0; /* 16px == 1? */
+ if (softrange > 256) fac = 1.0; /* 1px == 1 */
+ else if (softrange > 32) fac = 1.0 / 2.0; /* 2px == 1 */
+ else fac = 1.0 / 16.0; /* 16px == 1? */
temp = data->startvalue + (((double)mx - data->dragstartx) * (double)fac);
temp = ui_numedit_apply_snap(temp, softmin, softmax, snap);
@@ -2436,10 +2540,9 @@ static int ui_numedit_but_NUM(uiBut *but, uiHandleButtonData *data, float fac, i
deler = 500;
if (!ui_is_but_float(but)) {
/* prevent large ranges from getting too out of control */
- if (softrange > 600) deler = powf(softrange, 0.75);
-
- if (softrange < 100) deler = 200.0;
- if (softrange < 25) deler = 50.0;
+ if (softrange > 600) deler = powf(softrange, 0.75);
+ else if (softrange < 100) deler = 200.0;
+ else if (softrange < 25) deler = 50.0;
}
deler /= fac;
@@ -2508,11 +2611,11 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
if (data->state == BUTTON_STATE_HIGHLIGHT) {
/* XXX hardcoded keymap check.... */
if (event->type == WHEELDOWNMOUSE && event->alt) {
- mx = but->x1;
+ mx = but->rect.xmin;
click = 1;
}
else if (event->type == WHEELUPMOUSE && event->alt) {
- mx = but->x2;
+ mx = but->rect.xmax;
click = 1;
}
else if (event->val == KM_PRESS) {
@@ -2525,8 +2628,9 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
retval = WM_UI_HANDLER_BREAK;
}
- else if (ELEM(event->type, PADENTER, RETKEY) && event->val == KM_PRESS)
+ else if (ELEM(event->type, PADENTER, RETKEY) && event->val == KM_PRESS) {
click = 1;
+ }
else if (event->type == MINUSKEY && event->val == KM_PRESS) {
button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
data->value = -data->value;
@@ -2538,8 +2642,8 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
}
else if (data->state == BUTTON_STATE_NUM_EDITING) {
if (event->type == ESCKEY) {
- data->cancel = 1;
- data->escapecancel = 1;
+ data->cancel = TRUE;
+ data->escapecancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
@@ -2554,7 +2658,7 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
fac = 1.0f;
if (event->shift) fac /= 10.0f;
- if (event->alt) fac /= 20.0f;
+ if (event->alt) fac /= 20.0f;
snap = (event->ctrl) ? (event->shift) ? 2 : 1 : 0;
@@ -2582,33 +2686,34 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
softmax = but->softmax;
if (!ui_is_but_float(but)) {
- if (mx < (but->x1 + (but->x2 - but->x1) / 3 - 3)) {
+ if (mx < (but->rect.xmin + BLI_rctf_size_x(&but->rect) / 3 - 3)) {
button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
temp = (int)data->value - 1;
if (temp >= softmin && temp <= softmax)
data->value = (double)temp;
else
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
- else if (mx > (but->x1 + (2 * (but->x2 - but->x1) / 3) + 3)) {
+ else if (mx > (but->rect.xmin + (2 * BLI_rctf_size_x(&but->rect) / 3) + 3)) {
button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
temp = (int)data->value + 1;
if (temp >= softmin && temp <= softmax)
data->value = (double)temp;
else
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
- else
+ else {
button_activate_state(C, but, BUTTON_STATE_TEXT_EDITING);
+ }
}
else {
- if (mx < (but->x1 + (but->x2 - but->x1) / 3 - 3)) {
+ if (mx < (but->rect.xmin + BLI_rctf_size_x(&but->rect) / 3 - 3)) {
button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
tempf = (float)data->value - 0.01f * but->a1;
@@ -2617,7 +2722,7 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
- else if (mx > but->x1 + (2 * ((but->x2 - but->x1) / 3) + 3)) {
+ else if (mx > but->rect.xmin + (2 * (BLI_rctf_size_x(&but->rect) / 3) + 3)) {
button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
tempf = (float)data->value + 0.01f * but->a1;
@@ -2626,8 +2731,9 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
- else
+ else {
button_activate_state(C, but, BUTTON_STATE_TEXT_EDITING);
+ }
}
retval = WM_UI_HANDLER_BREAK;
@@ -2636,7 +2742,7 @@ static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
return retval;
}
-static int ui_numedit_but_SLI(uiBut *but, uiHandleButtonData *data, int shift, int ctrl, int mx)
+static int ui_numedit_but_SLI(uiBut *but, uiHandleButtonData *data, const short shift, const short ctrl, int mx)
{
float deler, f, tempf, softmin, softmax, softrange;
int temp, lvalue, changed = 0;
@@ -2645,14 +2751,20 @@ static int ui_numedit_but_SLI(uiBut *but, uiHandleButtonData *data, int shift, i
softmax = but->softmax;
softrange = softmax - softmin;
- if (but->type == NUMSLI) deler = ((but->x2 - but->x1) - 5.0f * but->aspect);
- else if (but->type == HSVSLI) deler = ((but->x2 - but->x1) / 2.0f - 5.0f * but->aspect);
+ if (but->type == NUMSLI) {
+ deler = (BLI_rctf_size_x(&but->rect) - 5.0f * but->aspect);
+ }
+ else if (but->type == HSVSLI) {
+ deler = (BLI_rctf_size_x(&but->rect) / 2.0f - 5.0f * but->aspect);
+ }
else if (but->type == SCROLL) {
- int horizontal = (but->x2 - but->x1 > but->y2 - but->y1);
- float size = (horizontal) ? (but->x2 - but->x1) : -(but->y2 - but->y1);
+ int horizontal = (BLI_rctf_size_x(&but->rect) > BLI_rctf_size_y(&but->rect));
+ float size = (horizontal) ? BLI_rctf_size_x(&but->rect) : -BLI_rctf_size_y(&but->rect);
deler = size * (but->softmax - but->softmin) / (but->softmax - but->softmin + but->a1);
}
- else deler = (but->x2 - but->x1 - 5.0f * but->aspect);
+ else {
+ deler = (BLI_rctf_size_x(&but->rect) - 5.0f * but->aspect);
+ }
f = (float)(mx - data->dragstartx) / deler + data->dragfstart;
@@ -2664,19 +2776,21 @@ static int ui_numedit_but_SLI(uiBut *but, uiHandleButtonData *data, int shift, i
temp = floorf(tempf + 0.5f);
if (ctrl) {
- if (tempf == softmin || tempf == softmax) ;
+ if (tempf == softmin || tempf == softmax) {
+ /* pass */
+ }
else if (ui_is_but_float(but)) {
if (shift) {
- if (tempf == softmin || tempf == softmax) ;
+ if (tempf == softmin || tempf == softmax) {}
else if (softmax - softmin < 2.10f) tempf = 0.01f * floorf(100.0f * tempf);
- else if (softmax - softmin < 21.0f) tempf = 0.1f * floorf(10.0f * tempf);
- else tempf = floorf(tempf);
+ else if (softmax - softmin < 21.0f) tempf = 0.1f * floorf(10.0f * tempf);
+ else tempf = floorf(tempf);
}
else {
- if (softmax - softmin < 2.10f) tempf = 0.1f * floorf(10.0f * tempf);
+ if (softmax - softmin < 2.10f) tempf = 0.1f * floorf(10.0f * tempf);
else if (softmax - softmin < 21.0f) tempf = floorf(tempf);
- else tempf = 10.0f * floorf(tempf / 10.0f);
+ else tempf = 10.0f * floorf(tempf / 10.0f);
}
}
else {
@@ -2721,11 +2835,11 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
if (data->state == BUTTON_STATE_HIGHLIGHT) {
/* XXX hardcoded keymap check.... */
if (event->type == WHEELDOWNMOUSE && event->alt) {
- mx = but->x1;
+ mx = but->rect.xmin;
click = 2;
}
else if (event->type == WHEELUPMOUSE && event->alt) {
- mx = but->x2;
+ mx = but->rect.xmax;
click = 2;
}
else if (event->val == KM_PRESS) {
@@ -2735,12 +2849,12 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
}
/* alt-click on sides to get "arrows" like in NUM buttons, and match wheel usage above */
else if (event->type == LEFTMOUSE && event->alt) {
- int halfpos = (but->x1 + but->x2) / 2;
+ int halfpos = BLI_rctf_cent_x(&but->rect);
click = 2;
if (mx < halfpos)
- mx = but->x1;
+ mx = but->rect.xmin;
else
- mx = but->x2;
+ mx = but->rect.xmax;
}
else if (event->type == LEFTMOUSE) {
data->dragstartx = mx;
@@ -2748,8 +2862,9 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
retval = WM_UI_HANDLER_BREAK;
}
- else if (ELEM(event->type, PADENTER, RETKEY) && event->val == KM_PRESS)
+ else if (ELEM(event->type, PADENTER, RETKEY) && event->val == KM_PRESS) {
click = 1;
+ }
else if (event->type == MINUSKEY && event->val == KM_PRESS) {
button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
data->value = -data->value;
@@ -2760,8 +2875,8 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
}
else if (data->state == BUTTON_STATE_NUM_EDITING) {
if (event->type == ESCKEY) {
- data->cancel = 1;
- data->escapecancel = 1;
+ data->cancel = TRUE;
+ data->escapecancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
@@ -2802,12 +2917,12 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
#if 0
if (but->type == SLI) {
- f = (float)(mx - but->x1) / (but->x2 - but->x1); /* same as below */
+ f = (float)(mx - but->rect.xmin) / (BLI_rctf_size_x(&but->rect)); /* same as below */
}
else
#endif
{
- f = (float)(mx - but->x1) / (but->x2 - but->x1);
+ f = (float)(mx - but->rect.xmin) / (BLI_rctf_size_x(&but->rect));
}
f = softmin + f * softrange;
@@ -2819,7 +2934,7 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
if (temp >= softmin && temp <= softmax)
data->value = temp;
else
- data->cancel = 1;
+ data->cancel = TRUE;
}
else {
if (f < tempf) tempf -= 0.01f;
@@ -2828,7 +2943,7 @@ static int ui_do_but_SLI(bContext *C, uiBlock *block, uiBut *but, uiHandleButton
if (tempf >= softmin && tempf <= softmax)
data->value = tempf;
else
- data->cancel = 1;
+ data->cancel = TRUE;
}
button_activate_state(C, but, BUTTON_STATE_EXIT);
@@ -2848,7 +2963,7 @@ static int ui_do_but_SCROLL(bContext *C, uiBlock *block, uiBut *but, uiHandleBut
{
int mx, my /*, click= 0 */;
int retval = WM_UI_HANDLER_CONTINUE;
- int horizontal = (but->x2 - but->x1 > but->y2 - but->y1);
+ int horizontal = (BLI_rctf_size_x(&but->rect) > BLI_rctf_size_y(&but->rect));
mx = event->x;
my = event->y;
@@ -2877,8 +2992,8 @@ static int ui_do_but_SCROLL(bContext *C, uiBlock *block, uiBut *but, uiHandleBut
}
else if (data->state == BUTTON_STATE_NUM_EDITING) {
if (event->type == ESCKEY) {
- data->cancel = 1;
- data->escapecancel = 1;
+ data->cancel = TRUE;
+ data->escapecancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
@@ -2917,9 +3032,11 @@ static int ui_do_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data, wm
return WM_UI_HANDLER_BREAK;
}
else if (ELEM3(but->type, MENU, ICONROW, ICONTEXTROW)) {
-
- if (event->type == WHEELDOWNMOUSE && event->alt) {
- data->value = ui_step_name_menu(but, -1);
+ if (ELEM(event->type, WHEELDOWNMOUSE, WHEELUPMOUSE) && event->alt) {
+ const int direction = (event->type == WHEELDOWNMOUSE) ? -1 : 1;
+
+ data->value = ui_step_name_menu(but, direction);
+
button_activate_state(C, but, BUTTON_STATE_EXIT);
ui_apply_button(C, but->block, but, data, 1);
@@ -2933,21 +3050,20 @@ static int ui_do_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data, wm
data->postbut = but;
data->posttype = BUTTON_ACTIVATE_OVER;
- return WM_UI_HANDLER_BREAK;
- }
- else if (event->type == WHEELUPMOUSE && event->alt) {
- data->value = ui_step_name_menu(but, 1);
- button_activate_state(C, but, BUTTON_STATE_EXIT);
- ui_apply_button(C, but->block, but, data, 1);
-
- /* why this is needed described above */
- data->postbut = but;
- data->posttype = BUTTON_ACTIVATE_OVER;
+ /* without this, a new interface that draws as result of the menu change
+ * won't register that the mouse is over it, eg:
+ * Alt+MouseWheel over the render slots, without this,
+ * the slot menu fails to switch a second time.
+ *
+ * The active state of the button could be maintained some other way
+ * and remove this mousemove event.
+ */
+ WM_event_add_mousemove(C);
return WM_UI_HANDLER_BREAK;
}
}
- else if (but->type == COL) {
+ else if (but->type == COLOR) {
if (ELEM(event->type, WHEELDOWNMOUSE, WHEELUPMOUSE) && event->alt) {
float *hsv = ui_block_hsv_get(but->block);
float col[3];
@@ -2979,7 +3095,7 @@ static int ui_do_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data, wm
/* outside icon quit, not needed if drag activated */
if (0 == ui_but_mouse_inside_icon(but, data->region, event)) {
button_activate_state(C, but, BUTTON_STATE_EXIT);
- data->cancel = 1;
+ data->cancel = TRUE;
return WM_UI_HANDLER_BREAK;
}
@@ -3005,7 +3121,7 @@ static int ui_numedit_but_NORMAL(uiBut *but, uiHandleButtonData *data, int mx, i
* else we'll get a harmless but annoying jump when first clicking */
fp = data->origvec;
- rad = (but->x2 - but->x1);
+ rad = BLI_rctf_size_x(&but->rect);
radsq = rad * rad;
if (fp[2] > 0.0f) {
@@ -3018,7 +3134,9 @@ static int ui_numedit_but_NORMAL(uiBut *but, uiHandleButtonData *data, int mx, i
mdx = 2.0f * mrad * fp[0] - (rad * fp[0]);
mdy = 2.0f * mrad * fp[1] - (rad * fp[1]);
}
- else mdx = mdy = 0;
+ else {
+ mdx = mdy = 0;
+ }
dx = (float)(mx + mdx - data->dragstartx);
dy = (float)(my + mdy - data->dragstarty);
@@ -3082,8 +3200,9 @@ static int ui_do_but_NORMAL(bContext *C, uiBlock *block, uiBut *but, uiHandleBut
ui_numedit_apply(C, block, but, data);
}
}
- else if (event->type == LEFTMOUSE && event->val != KM_PRESS)
+ else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
button_activate_state(C, but, BUTTON_STATE_EXIT);
+ }
return WM_UI_HANDLER_BREAK;
}
@@ -3091,26 +3210,41 @@ static int ui_do_but_NORMAL(bContext *C, uiBlock *block, uiBut *but, uiHandleBut
return WM_UI_HANDLER_CONTINUE;
}
-static int ui_numedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, int mx, int my)
+static int ui_numedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, int mx, int my, const short shift)
{
float rgb[3];
float *hsv = ui_block_hsv_get(but->block);
float x, y;
+ float mx_fl, my_fl;
int changed = 1;
int color_profile = but->block->color_profile;
+ ui_mouse_scale_warp(data, mx, my, &mx_fl, &my_fl, shift);
+
+#ifdef USE_CONT_MOUSE_CORRECT
+ if (ui_is_a_warp_but(but)) {
+ /* OK but can go outside bounds */
+ data->ungrab_mval[0] = mx_fl;
+ data->ungrab_mval[1] = my_fl;
+ BLI_rctf_clamp_pt_v(&but->rect, data->ungrab_mval);
+ }
+#endif
+
if (but->rnaprop) {
if (RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA)
- color_profile = BLI_PR_NONE;
+ color_profile = FALSE;
}
ui_get_but_vectorf(but, rgb);
+ if (color_profile && (int)but->a1)
+ ui_block_to_display_space_v3(but->block, rgb);
+
rgb_to_hsv_compat_v(rgb, hsv);
/* relative position within box */
- x = ((float)mx - but->x1) / (but->x2 - but->x1);
- y = ((float)my - but->y1) / (but->y2 - but->y1);
+ x = ((float)mx_fl - but->rect.xmin) / BLI_rctf_size_x(&but->rect);
+ y = ((float)my_fl - but->rect.ymin) / BLI_rctf_size_y(&but->rect);
CLAMP(x, 0.0f, 1.0f);
CLAMP(y, 0.0f, 1.0f);
@@ -3142,17 +3276,16 @@ static int ui_numedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, int mx,
/* exception only for value strip - use the range set in but->min/max */
hsv[2] = y * (but->softmax - but->softmin) + but->softmin;
- if (color_profile)
- hsv[2] = srgb_to_linearrgb(hsv[2]);
-
- if (hsv[2] > but->softmax)
- hsv[2] = but->softmax;
break;
default:
assert(!"invalid hsv type");
}
hsv_to_rgb_v(hsv, rgb);
+
+ if (color_profile && (int)but->a1)
+ ui_block_to_scene_linear_v3(but->block, rgb);
+
copy_v3_v3(data->vec, rgb);
data->draglastx = mx;
@@ -3161,7 +3294,7 @@ static int ui_numedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, int mx,
return changed;
}
-static void ui_ndofedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, wmNDOFMotionData *ndof, int shift)
+static void ui_ndofedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, wmNDOFMotionData *ndof, const short shift)
{
float *hsv = ui_block_hsv_get(but->block);
float rgb[3];
@@ -3171,10 +3304,14 @@ static void ui_ndofedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, wmNDOF
if (but->rnaprop) {
if (RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA)
- color_profile = BLI_PR_NONE;
+ color_profile = FALSE;
}
ui_get_but_vectorf(but, rgb);
+
+ if (color_profile && (int)but->a1)
+ ui_block_to_display_space_v3(but->block, rgb);
+
rgb_to_hsv_compat_v(rgb, hsv);
switch ((int)but->a1) {
@@ -3205,15 +3342,16 @@ static void ui_ndofedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, wmNDOF
/* exception only for value strip - use the range set in but->min/max */
hsv[2] += ndof->rx * sensitivity;
- if (color_profile)
- hsv[2] = srgb_to_linearrgb(hsv[2]);
-
CLAMP(hsv[2], but->softmin, but->softmax);
default:
assert(!"invalid hsv type");
}
-
+
hsv_to_rgb_v(hsv, rgb);
+
+ if (color_profile && (int)but->a1)
+ ui_block_to_scene_linear_v3(but->block, rgb);
+
copy_v3_v3(data->vec, rgb);
ui_set_but_vectorf(but, data->vec);
}
@@ -3235,7 +3373,7 @@ static int ui_do_but_HSVCUBE(bContext *C, uiBlock *block, uiBut *but, uiHandleBu
button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
/* also do drag the first time */
- if (ui_numedit_but_HSVCUBE(but, data, mx, my))
+ if (ui_numedit_but_HSVCUBE(but, data, mx, my, event->shift))
ui_numedit_apply(C, block, but, data);
return WM_UI_HANDLER_BREAK;
@@ -3286,18 +3424,19 @@ static int ui_do_but_HSVCUBE(bContext *C, uiBlock *block, uiBut *but, uiHandleBu
}
else if (data->state == BUTTON_STATE_NUM_EDITING) {
if (event->type == ESCKEY) {
- data->cancel = 1;
- data->escapecancel = 1;
+ data->cancel = TRUE;
+ data->escapecancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
else if (event->type == MOUSEMOVE) {
if (mx != data->draglastx || my != data->draglasty) {
- if (ui_numedit_but_HSVCUBE(but, data, mx, my))
+ if (ui_numedit_but_HSVCUBE(but, data, mx, my, event->shift))
ui_numedit_apply(C, block, but, data);
}
}
- else if (event->type == LEFTMOUSE && event->val != KM_PRESS)
+ else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
button_activate_state(C, but, BUTTON_STATE_EXIT);
+ }
return WM_UI_HANDLER_BREAK;
}
@@ -3305,16 +3444,34 @@ static int ui_do_but_HSVCUBE(bContext *C, uiBlock *block, uiBut *but, uiHandleBu
return WM_UI_HANDLER_CONTINUE;
}
-static int ui_numedit_but_HSVCIRCLE(uiBut *but, uiHandleButtonData *data, int mx, int my, int shift)
+static int ui_numedit_but_HSVCIRCLE(uiBut *but, uiHandleButtonData *data, float mx, float my, int shift)
{
rcti rect;
int changed = 1;
+ float mx_fl, my_fl;
float rgb[3];
float hsv[3];
- rect.xmin = but->x1; rect.xmax = but->x2;
- rect.ymin = but->y1; rect.ymax = but->y2;
-
+ ui_mouse_scale_warp(data, mx, my, &mx_fl, &my_fl, shift);
+
+#ifdef USE_CONT_MOUSE_CORRECT
+ if (ui_is_a_warp_but(but)) {
+ /* OK but can go outside bounds */
+ data->ungrab_mval[0] = mx_fl;
+ data->ungrab_mval[1] = my_fl;
+ { /* clamp */
+ const float radius = minf(BLI_rctf_size_x(&but->rect), BLI_rctf_size_y(&but->rect)) / 2.0f;
+ const float cent[2] = {BLI_rctf_cent_x(&but->rect), BLI_rctf_cent_y(&but->rect)};
+ const float len = len_v2v2(cent, data->ungrab_mval);
+ if (len > radius) {
+ dist_ensure_v2_v2fl(data->ungrab_mval, cent, radius);
+ }
+ }
+ }
+#endif
+
+ BLI_rcti_rctf_copy(&rect, &but->rect);
+
ui_get_but_vectorf(but, rgb);
copy_v3_v3(hsv, ui_block_hsv_get(but->block));
rgb_to_hsv_compat_v(rgb, hsv);
@@ -3325,14 +3482,8 @@ static int ui_numedit_but_HSVCIRCLE(uiBut *but, uiHandleButtonData *data, int mx
if (hsv[2] == 0.f) hsv[2] = 0.0001f;
}
- if (U.uiflag & USER_CONTINUOUS_MOUSE) {
- float fac = shift ? 0.05f : 1.0f;
- /* slow down the mouse, this is fairly picky */
- mx = (data->dragstartx * (1.0f - fac) + mx * fac);
- my = (data->dragstarty * (1.0f - fac) + my * fac);
- }
- ui_hsvcircle_vals_from_pos(hsv, hsv + 1, &rect, (float)mx, (float)my);
+ ui_hsvcircle_vals_from_pos(hsv, hsv + 1, &rect, mx_fl, my_fl);
if (but->flag & UI_BUT_COLOR_CUBIC)
hsv[1] = 1.0f - sqrt3f(1.0f - hsv[1]);
@@ -3352,7 +3503,7 @@ static int ui_numedit_but_HSVCIRCLE(uiBut *but, uiHandleButtonData *data, int mx
return changed;
}
-static void ui_ndofedit_but_HSVCIRCLE(uiBut *but, uiHandleButtonData *data, wmNDOFMotionData *ndof, int shift)
+static void ui_ndofedit_but_HSVCIRCLE(uiBut *but, uiHandleButtonData *data, wmNDOFMotionData *ndof, const short shift)
{
float *hsv = ui_block_hsv_get(but->block);
float rgb[3];
@@ -3365,7 +3516,7 @@ static void ui_ndofedit_but_HSVCIRCLE(uiBut *but, uiHandleButtonData *data, wmND
/* Convert current color on hue/sat disc to circular coordinates phi, r */
phi = fmodf(hsv[0] + 0.25f, 1.0f) * -2.0f * (float)M_PI;
r = hsv[1];
- /* sqr= r>0.f?sqrtf(r):1; */ /* UNUSED */
+ /* sqr = r > 0.0f ? sqrtf(r) : 1; */ /* UNUSED */
/* Convert to 2d vectors */
v[0] = r * cosf(phi);
@@ -3470,21 +3621,21 @@ static int ui_do_but_HSVCIRCLE(bContext *C, uiBlock *block, uiBut *but, uiHandle
}
else if (data->state == BUTTON_STATE_NUM_EDITING) {
if (event->type == ESCKEY) {
- data->cancel = 1;
- data->escapecancel = 1;
+ data->cancel = TRUE;
+ data->escapecancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
/* XXX hardcoded keymap check.... */
else if (event->type == WHEELDOWNMOUSE) {
float *hsv = ui_block_hsv_get(but->block);
hsv[2] = CLAMPIS(hsv[2] - 0.05f, 0.0f, 1.0f);
- ui_set_but_hsv(but); // converts to rgb
+ ui_set_but_hsv(but); /* converts to rgb */
ui_numedit_apply(C, block, but, data);
}
else if (event->type == WHEELUPMOUSE) {
float *hsv = ui_block_hsv_get(but->block);
hsv[2] = CLAMPIS(hsv[2] + 0.05f, 0.0f, 1.0f);
- ui_set_but_hsv(but); // converts to rgb
+ ui_set_but_hsv(but); /* converts to rgb */
ui_numedit_apply(C, block, but, data);
}
else if (event->type == MOUSEMOVE) {
@@ -3511,7 +3662,7 @@ static int ui_numedit_but_COLORBAND(uiBut *but, uiHandleButtonData *data, int mx
if (data->draglastx == mx)
return changed;
- dx = ((float)(mx - data->draglastx)) / (but->x2 - but->x1);
+ dx = ((float)(mx - data->draglastx)) / BLI_rctf_size_x(&but->rect);
data->dragcbd->pos += dx;
CLAMP(data->dragcbd->pos, 0.0f, 1.0f);
@@ -3540,7 +3691,7 @@ static int ui_do_but_COLORBAND(bContext *C, uiBlock *block, uiBut *but, uiHandle
if (event->ctrl) {
/* insert new key on mouse location */
- float pos = ((float)(mx - but->x1)) / (but->x2 - but->x1);
+ float pos = ((float)(mx - but->rect.xmin)) / BLI_rctf_size_x(&but->rect);
colorband_element_add(coba, pos);
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
@@ -3552,7 +3703,7 @@ static int ui_do_but_COLORBAND(bContext *C, uiBlock *block, uiBut *but, uiHandle
/* activate new key when mouse is close */
for (a = 0, cbd = coba->data; a < coba->tot; a++, cbd++) {
- xco = but->x1 + (cbd->pos * (but->x2 - but->x1));
+ xco = but->rect.xmin + (cbd->pos * BLI_rctf_size_x(&but->rect));
xco = ABS(xco - mx);
if (a == coba->cur) xco += 5; // selected one disadvantage
if (xco < mindist) {
@@ -3575,8 +3726,9 @@ static int ui_do_but_COLORBAND(bContext *C, uiBlock *block, uiBut *but, uiHandle
ui_numedit_apply(C, block, but, data);
}
}
- else if (event->type == LEFTMOUSE && event->val != KM_PRESS)
+ else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
button_activate_state(C, but, BUTTON_STATE_EXIT);
+ }
return WM_UI_HANDLER_BREAK;
}
@@ -3584,7 +3736,8 @@ static int ui_do_but_COLORBAND(bContext *C, uiBlock *block, uiBut *but, uiHandle
return WM_UI_HANDLER_CONTINUE;
}
-static int ui_numedit_but_CURVE(uiBut *but, uiHandleButtonData *data, int snap, int mx, int my)
+static int ui_numedit_but_CURVE(uiBut *but, uiHandleButtonData *data, int snap,
+ float mx, float my, const short shift)
{
CurveMapping *cumap = (CurveMapping *)but->poin;
CurveMap *cuma = cumap->cm + cumap->cur;
@@ -3592,8 +3745,8 @@ static int ui_numedit_but_CURVE(uiBut *but, uiHandleButtonData *data, int snap,
float fx, fy, zoomx, zoomy /*, offsx, offsy */ /* UNUSED */;
int a, changed = 0;
- zoomx = (but->x2 - but->x1) / (cumap->curr.xmax - cumap->curr.xmin);
- zoomy = (but->y2 - but->y1) / (cumap->curr.ymax - cumap->curr.ymin);
+ zoomx = BLI_rctf_size_x(&but->rect) / BLI_rctf_size_x(&cumap->curr);
+ zoomy = BLI_rctf_size_y(&but->rect) / BLI_rctf_size_y(&cumap->curr);
/* offsx= cumap->curr.xmin; */
/* offsy= cumap->curr.ymin; */
@@ -3608,12 +3761,18 @@ static int ui_numedit_but_CURVE(uiBut *but, uiHandleButtonData *data, int snap,
}
if (data->dragsel != -1) {
+ CurveMapPoint *cmp_last = NULL;
+ const float mval_factor = ui_mouse_scale_warp_factor(shift);
int moved_point = 0; /* for ctrl grid, can't use orig coords because of sorting */
-
+
fx = (mx - data->draglastx) / zoomx;
fy = (my - data->draglasty) / zoomy;
+
+ fx *= mval_factor;
+ fy *= mval_factor;
+
for (a = 0; a < cuma->totpoint; a++) {
- if (cmp[a].flag & SELECT) {
+ if (cmp[a].flag & CUMA_SELECT) {
float origx = cmp[a].x, origy = cmp[a].y;
cmp[a].x += fx;
cmp[a].y += fy;
@@ -3623,15 +3782,29 @@ static int ui_numedit_but_CURVE(uiBut *but, uiHandleButtonData *data, int snap,
}
if (cmp[a].x != origx || cmp[a].y != origy)
moved_point = 1;
+
+ cmp_last = &cmp[a];
}
}
- curvemapping_changed(cumap, 0); /* no remove doubles */
+ curvemapping_changed(cumap, FALSE);
if (moved_point) {
data->draglastx = mx;
data->draglasty = my;
changed = 1;
+
+#ifdef USE_CONT_MOUSE_CORRECT
+ /* note: using 'cmp_last' is weak since there may be multiple points selected,
+ * but in practice this isnt really an issue */
+ if (ui_is_a_warp_but(but)) {
+ /* OK but can go outside bounds */
+ data->ungrab_mval[0] = but->rect.xmin + ((cmp_last->x - cumap->curr.xmin) * zoomx);
+ data->ungrab_mval[1] = but->rect.ymin + ((cmp_last->y - cumap->curr.ymin) * zoomy);
+ BLI_rctf_clamp_pt_v(&but->rect, data->ungrab_mval);
+ }
+#endif
+
}
data->dragchange = 1; /* mark for selection */
@@ -3683,25 +3856,25 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt
float dist, mindist = 200.0f; // 14 pixels radius
int sel = -1;
- zoomx = (but->x2 - but->x1) / (cumap->curr.xmax - cumap->curr.xmin);
- zoomy = (but->y2 - but->y1) / (cumap->curr.ymax - cumap->curr.ymin);
+ zoomx = BLI_rctf_size_x(&but->rect) / BLI_rctf_size_x(&cumap->curr);
+ zoomy = BLI_rctf_size_y(&but->rect) / BLI_rctf_size_y(&cumap->curr);
offsx = cumap->curr.xmin;
offsy = cumap->curr.ymin;
if (event->ctrl) {
- fx = ((float)my - but->x1) / zoomx + offsx;
- fy = ((float)my - but->y1) / zoomy + offsy;
+ fx = ((float)mx - but->rect.xmin) / zoomx + offsx;
+ fy = ((float)my - but->rect.ymin) / zoomy + offsy;
curvemap_insert(cuma, fx, fy);
- curvemapping_changed(cumap, 0);
+ curvemapping_changed(cumap, FALSE);
changed = 1;
}
/* check for selecting of a point */
cmp = cuma->curve; /* ctrl adds point, new malloc */
for (a = 0; a < cuma->totpoint; a++) {
- fx = but->x1 + zoomx * (cmp[a].x - offsx);
- fy = but->y1 + zoomy * (cmp[a].y - offsy);
+ fx = but->rect.xmin + zoomx * (cmp[a].x - offsx);
+ fy = but->rect.ymin + zoomy * (cmp[a].y - offsy);
dist = (fx - mx) * (fx - mx) + (fy - my) * (fy - my);
if (dist < mindist) {
sel = a;
@@ -3714,20 +3887,20 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt
/* if the click didn't select anything, check if it's clicked on the
* curve itself, and if so, add a point */
- fx = ((float)mx - but->x1) / zoomx + offsx;
- fy = ((float)my - but->y1) / zoomy + offsy;
+ fx = ((float)mx - but->rect.xmin) / zoomx + offsx;
+ fy = ((float)my - but->rect.ymin) / zoomy + offsy;
cmp = cuma->table;
/* loop through the curve segment table and find what's near the mouse.
* 0.05 is kinda arbitrary, but seems to be what works nicely. */
for (i = 0; i <= CM_TABLE; i++) {
- if ( (fabsf(fx - cmp[i].x) < 0.05f) &&
- (fabsf(fy - cmp[i].y) < 0.05f))
+ if ((fabsf(fx - cmp[i].x) < 0.05f) &&
+ (fabsf(fy - cmp[i].y) < 0.05f))
{
curvemap_insert(cuma, fx, fy);
- curvemapping_changed(cumap, 0);
+ curvemapping_changed(cumap, FALSE);
changed = 1;
@@ -3748,16 +3921,18 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt
/* ok, we move a point */
/* deselect all if this one is deselect. except if we hold shift */
if (event->shift == FALSE) {
- for (a = 0; a < cuma->totpoint; a++)
- cmp[a].flag &= ~SELECT;
- cmp[sel].flag |= SELECT;
+ for (a = 0; a < cuma->totpoint; a++) {
+ cmp[a].flag &= ~CUMA_SELECT;
+ }
+ cmp[sel].flag |= CUMA_SELECT;
+ }
+ else {
+ cmp[sel].flag ^= CUMA_SELECT;
}
- else
- cmp[sel].flag ^= SELECT;
}
else {
/* move the view */
- data->cancel = 1;
+ data->cancel = TRUE;
}
data->dragsel = sel;
@@ -3774,7 +3949,7 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt
else if (data->state == BUTTON_STATE_NUM_EDITING) {
if (event->type == MOUSEMOVE) {
if (mx != data->draglastx || my != data->draglasty) {
- if (ui_numedit_but_CURVE(but, data, event->ctrl, mx, my))
+ if (ui_numedit_but_CURVE(but, data, event->ctrl, mx, my, event->shift))
ui_numedit_apply(C, block, but, data);
}
}
@@ -3788,12 +3963,13 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt
/* deselect all, select one */
if (event->shift == FALSE) {
for (a = 0; a < cuma->totpoint; a++)
- cmp[a].flag &= ~SELECT;
- cmp[data->dragsel].flag |= SELECT;
+ cmp[a].flag &= ~CUMA_SELECT;
+ cmp[data->dragsel].flag |= CUMA_SELECT;
}
}
- else
- curvemapping_changed(cumap, 1); /* remove doubles */
+ else {
+ curvemapping_changed(cumap, TRUE); /* remove doubles */
+ }
}
button_activate_state(C, but, BUTTON_STATE_EXIT);
@@ -3810,8 +3986,8 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt
static int in_scope_resize_zone(uiBut *but, int UNUSED(x), int y)
{
- // bottom corner return (x > but->x2 - SCOPE_RESIZE_PAD) && (y < but->y1 + SCOPE_RESIZE_PAD);
- return (y < but->y1 + SCOPE_RESIZE_PAD);
+ /* bottom corner return (x > but->rect.xmax - SCOPE_RESIZE_PAD) && (y < but->rect.ymin + SCOPE_RESIZE_PAD); */
+ return (y < but->rect.ymin + SCOPE_RESIZE_PAD);
}
static int ui_numedit_but_HISTOGRAM(uiBut *but, uiHandleButtonData *data, int mx, int my)
@@ -3821,22 +3997,22 @@ static int ui_numedit_but_HISTOGRAM(uiBut *but, uiHandleButtonData *data, int mx
int changed = 1;
float /* dx, */ dy; /* UNUSED */
- /* rect.xmin = but->x1; rect.xmax = but->x2; */
- /* rect.ymin = but->y1; rect.ymax = but->y2; */
+ /* BLI_rcti_rctf_copy(&rect, &but->rect); */
/* dx = mx - data->draglastx; */ /* UNUSED */
dy = my - data->draglasty;
if (in_scope_resize_zone(but, data->dragstartx, data->dragstarty)) {
/* resize histogram widget itself */
- hist->height = (but->y2 - but->y1) + (data->dragstarty - my);
+ hist->height = BLI_rctf_size_y(&but->rect) + (data->dragstarty - my);
}
else {
- /* scale histogram values */
- const float yfac = MIN2(powf(hist->ymax, 2.f), 1.f) * 0.5f;
- hist->ymax += dy * yfac;
+ /* scale histogram values (dy / 10 for better control) */
+ const float yfac = minf(powf(hist->ymax, 2.0f), 1.0f) * 0.5f;
+ hist->ymax += (dy * 0.1f) * yfac;
- CLAMP(hist->ymax, 1.f, 100.f);
+ /* 0.1 allows us to see HDR colors up to 10 */
+ CLAMP(hist->ymax, 0.1f, 100.f);
}
data->draglastx = mx;
@@ -3878,8 +4054,8 @@ static int ui_do_but_HISTOGRAM(bContext *C, uiBlock *block, uiBut *but, uiHandle
}
else if (data->state == BUTTON_STATE_NUM_EDITING) {
if (event->type == ESCKEY) {
- data->cancel = 1;
- data->escapecancel = 1;
+ data->cancel = TRUE;
+ data->escapecancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
else if (event->type == MOUSEMOVE) {
@@ -3904,8 +4080,7 @@ static int ui_numedit_but_WAVEFORM(uiBut *but, uiHandleButtonData *data, int mx,
int changed = 1;
float /* dx, */ dy /* , yfac=1.f */; /* UNUSED */
- /* rect.xmin = but->x1; rect.xmax = but->x2; */
- /* rect.ymin = but->y1; rect.ymax = but->y2; */
+ /* BLI_rcti_rctf_copy(&rect, &but->rect); */
/* dx = mx - data->draglastx; */ /* UNUSED */
dy = my - data->draglasty;
@@ -3913,7 +4088,7 @@ static int ui_numedit_but_WAVEFORM(uiBut *but, uiHandleButtonData *data, int mx,
if (in_scope_resize_zone(but, data->dragstartx, data->dragstarty)) {
/* resize waveform widget itself */
- scopes->wavefrm_height = (but->y2 - but->y1) + (data->dragstarty - my);
+ scopes->wavefrm_height = BLI_rctf_size_y(&but->rect) + (data->dragstarty - my);
}
else {
/* scale waveform values */
@@ -3962,8 +4137,8 @@ static int ui_do_but_WAVEFORM(bContext *C, uiBlock *block, uiBut *but, uiHandleB
}
else if (data->state == BUTTON_STATE_NUM_EDITING) {
if (event->type == ESCKEY) {
- data->cancel = 1;
- data->escapecancel = 1;
+ data->cancel = TRUE;
+ data->escapecancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
else if (event->type == MOUSEMOVE) {
@@ -3988,15 +4163,14 @@ static int ui_numedit_but_VECTORSCOPE(uiBut *but, uiHandleButtonData *data, int
int changed = 1;
/* float dx, dy; */
- /* rect.xmin = but->x1; rect.xmax = but->x2; */
- /* rect.ymin = but->y1; rect.ymax = but->y2; */
+ /* BLI_rcti_rctf_copy(&rect, &but->rect); */
/* dx = mx - data->draglastx; */
/* dy = my - data->draglasty; */
if (in_scope_resize_zone(but, data->dragstartx, data->dragstarty)) {
/* resize vectorscope widget itself */
- scopes->vecscope_height = (but->y2 - but->y1) + (data->dragstarty - my);
+ scopes->vecscope_height = BLI_rctf_size_y(&but->rect) + (data->dragstarty - my);
}
data->draglastx = mx;
@@ -4030,8 +4204,8 @@ static int ui_do_but_VECTORSCOPE(bContext *C, uiBlock *block, uiBut *but, uiHand
}
else if (data->state == BUTTON_STATE_NUM_EDITING) {
if (event->type == ESCKEY) {
- data->cancel = 1;
- data->escapecancel = 1;
+ data->cancel = TRUE;
+ data->escapecancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
else if (event->type == MOUSEMOVE) {
@@ -4066,17 +4240,17 @@ static int ui_do_but_CHARTAB(bContext *UNUSED(C), uiBlock *UNUSED(block), uiBut
if (data->state == BUTTON_STATE_HIGHLIGHT) {
if (ELEM3(event->type, LEFTMOUSE, PADENTER, RETKEY) && event->val == KM_PRESS) {
/* Calculate the size of the button */
- width = abs(but->x2 - but->x1);
- height = abs(but->y2 - but->y1);
+ width = abs(BLI_rctf_size_x(&but->rect));
+ height = abs(BLI_rctf_size_y(&but->rect));
butw = floor(width / 12);
buth = floor(height / 6);
/* Initialize variables */
- sx = but->x1;
- ex = but->x1 + butw;
- sy = but->y1 + height - buth;
- ey = but->y1 + height;
+ sx = but->rect.xmin;
+ ex = but->rect.xmin + butw;
+ sy = but->rect.ymin + height - buth;
+ ey = but->rect.ymin + height;
cs = G.charstart;
@@ -4173,7 +4347,7 @@ static int ui_do_but_LINK(bContext *C, uiBut *but, uiHandleButtonData *data, wmE
if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
if (!(but->flag & UI_SELECT))
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
return WM_UI_HANDLER_BREAK;
}
@@ -4182,7 +4356,8 @@ static int ui_do_but_LINK(bContext *C, uiBut *but, uiHandleButtonData *data, wmE
return WM_UI_HANDLER_CONTINUE;
}
-static int ui_numedit_but_TRACKPREVIEW(bContext *C, uiBut *but, uiHandleButtonData *data, int mx, int my, int shift)
+static int ui_numedit_but_TRACKPREVIEW(bContext *C, uiBut *but, uiHandleButtonData *data,
+ int mx, int my, const short shift)
{
MovieClipScopes *scopes = (MovieClipScopes *)but->poin;
int changed = 1;
@@ -4198,7 +4373,7 @@ static int ui_numedit_but_TRACKPREVIEW(bContext *C, uiBut *but, uiHandleButtonDa
if (in_scope_resize_zone(but, data->dragstartx, data->dragstarty)) {
/* resize preview widget itself */
- scopes->track_preview_height = (but->y2 - but->y1) + (data->dragstarty - my);
+ scopes->track_preview_height = BLI_rctf_size_y(&but->rect) + (data->dragstarty - my);
}
else {
if (!scopes->track_locked) {
@@ -4206,8 +4381,8 @@ static int ui_numedit_but_TRACKPREVIEW(bContext *C, uiBut *but, uiHandleButtonDa
scopes->marker = BKE_tracking_marker_ensure(scopes->track, scopes->framenr);
scopes->marker->flag &= ~(MARKER_DISABLED | MARKER_TRACKED);
- scopes->marker->pos[0] += -dx * scopes->slide_scale[0] / (but->block->maxx - but->block->minx);
- scopes->marker->pos[1] += -dy * scopes->slide_scale[1] / (but->block->maxy - but->block->miny);
+ scopes->marker->pos[0] += -dx * scopes->slide_scale[0] / BLI_rctf_size_x(&but->block->rect);
+ scopes->marker->pos[1] += -dy * scopes->slide_scale[1] / BLI_rctf_size_y(&but->block->rect);
WM_event_add_notifier(C, NC_MOVIECLIP | NA_EDITED, NULL);
}
@@ -4246,8 +4421,8 @@ static int ui_do_but_TRACKPREVIEW(bContext *C, uiBlock *block, uiBut *but, uiHan
}
else if (data->state == BUTTON_STATE_NUM_EDITING) {
if (event->type == ESCKEY) {
- data->cancel = 1;
- data->escapecancel = 1;
+ data->cancel = TRUE;
+ data->escapecancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
else if (event->type == MOUSEMOVE) {
@@ -4396,26 +4571,27 @@ static void popup_add_shortcut_func(bContext *C, void *arg1, void *UNUSED(arg2))
static int ui_but_menu(bContext *C, uiBut *but)
{
+ ARegion *ar = CTX_wm_region(C);
uiPopupMenu *pup;
uiLayout *layout;
int length;
- const char *name;
+ char *name;
+ uiStringInfo label = {BUT_GET_LABEL, NULL};
- if ((but->rnapoin.data && but->rnaprop) == 0 && but->optype == NULL)
- return 0;
+/* if ((but->rnapoin.data && but->rnaprop) == 0 && but->optype == NULL)*/
+/* return 0;*/
button_timers_tooltip_remove(C, but);
- if (but->rnaprop)
- name = RNA_property_ui_name(but->rnaprop);
- else if (but->optype && but->optype->srna)
- name = RNA_struct_ui_name(but->optype->srna);
- else
- name = IFACE_("<needs_name>"); // XXX - should never happen.
+ uiButGetStrInfo(C, but, 1, &label);
+ name = label.strinfo;
pup = uiPupMenuBegin(C, name, ICON_NONE);
layout = uiPupMenuLayout(pup);
-
+
+ if (label.strinfo)
+ MEM_freeN(label.strinfo);
+
uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_DEFAULT);
if (but->rnapoin.data && but->rnaprop) {
@@ -4452,7 +4628,9 @@ static int ui_but_menu(bContext *C, uiBut *but)
}
- else if (but->flag & UI_BUT_DRIVEN) ;
+ else if (but->flag & UI_BUT_DRIVEN) {
+ /* pass */
+ }
else if (is_anim) {
if (length) {
uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Insert Keyframes"),
@@ -4460,11 +4638,25 @@ static int ui_but_menu(bContext *C, uiBut *but)
uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Insert Single Keyframe"),
ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0);
}
- else
+ else {
uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Insert Keyframe"),
ICON_NONE, "ANIM_OT_keyframe_insert_button", "all", 0);
+ }
}
+ if (but->flag & UI_BUT_ANIMATED) {
+ if (length) {
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Clear Keyframes"),
+ ICON_NONE, "ANIM_OT_keyframe_clear_button", "all", 1);
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Clear Single Keyframes"),
+ ICON_NONE, "ANIM_OT_keyframe_clear_button", "all", 0);
+ }
+ else {
+ uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Clear Keyframes"),
+ ICON_NONE, "ANIM_OT_keyframe_clear_button", "all", 0);
+ }
+ }
+
/* Drivers */
if (but->flag & UI_BUT_DRIVEN) {
uiItemS(layout);
@@ -4475,17 +4667,21 @@ static int ui_but_menu(bContext *C, uiBut *but)
uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Delete Single Driver"),
ICON_NONE, "ANIM_OT_driver_button_remove", "all", 0);
}
- else
+ else {
uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Delete Driver"),
ICON_NONE, "ANIM_OT_driver_button_remove", "all", 0);
+ }
uiItemO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Copy Driver"),
ICON_NONE, "ANIM_OT_copy_driver_button");
- if (ANIM_driver_can_paste())
+ if (ANIM_driver_can_paste()) {
uiItemO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Paste Driver"),
ICON_NONE, "ANIM_OT_paste_driver_button");
+ }
+ }
+ else if (but->flag & (UI_BUT_ANIMATED_KEY | UI_BUT_ANIMATED)) {
+ /* pass */
}
- else if (but->flag & (UI_BUT_ANIMATED_KEY | UI_BUT_ANIMATED)) ;
else if (is_anim) {
uiItemS(layout);
@@ -4495,17 +4691,19 @@ static int ui_but_menu(bContext *C, uiBut *but)
uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Add Single Driver"),
ICON_NONE, "ANIM_OT_driver_button_add", "all", 0);
}
- else
+ else {
uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Add Driver"),
ICON_NONE, "ANIM_OT_driver_button_add", "all", 0);
+ }
- if (ANIM_driver_can_paste())
+ if (ANIM_driver_can_paste()) {
uiItemO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Paste Driver"),
ICON_NONE, "ANIM_OT_paste_driver_button");
+ }
}
/* Keying Sets */
- // TODO: check on modifyability of Keying Set when doing this
+ /* TODO: check on modifyability of Keying Set when doing this */
if (is_anim) {
uiItemS(layout);
@@ -4529,8 +4727,8 @@ static int ui_but_menu(bContext *C, uiBut *but)
/* Property Operators */
- //Copy Property Value
- //Paste Property Value
+ /* Copy Property Value
+ * Paste Property Value */
if (length) {
uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Reset All to Default Values"),
@@ -4538,9 +4736,10 @@ static int ui_but_menu(bContext *C, uiBut *but)
uiItemBooleanO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Reset Single to Default Value"),
ICON_NONE, "UI_OT_reset_default_button", "all", 0);
}
- else
+ else {
uiItemO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Reset to Default Value"),
ICON_NONE, "UI_OT_reset_default_button");
+ }
uiItemO(layout, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Copy Data Path"),
ICON_NONE, "UI_OT_copy_data_path_button");
@@ -4566,7 +4765,7 @@ static int ui_but_menu(bContext *C, uiBut *but)
/* keyboard shortcuts */
if ((kmi) && ISKEYBOARD(kmi->type)) {
- // would rather use a block but, but gets weirdly positioned...
+ /* would rather use a block but, but gets weirdly positioned... */
//uiDefBlockBut(block, menu_change_shortcut, but, "Change Shortcut", 0, 0, uiLayoutGetWidth(layout), UI_UNIT_Y, "");
but2 = uiDefIconTextBut(block, BUT, 0, 0, CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Change Shortcut"),
@@ -4587,7 +4786,12 @@ static int ui_but_menu(bContext *C, uiBut *but)
uiItemS(layout);
}
-
+ /* Show header tools for header buttons. */
+ if (ar->regiontype == RGN_TYPE_HEADER) {
+ uiItemMenuF(layout, IFACE_("Header"), ICON_NONE, ED_screens_header_tools_menu_create, NULL);
+ uiItemS(layout);
+ }
+
{ /* Docs */
char buf[512];
PointerRNA ptr_props;
@@ -4642,8 +4846,8 @@ static int ui_but_menu(bContext *C, uiBut *but)
}
/* perhaps we should move this into (G.debug & G_DEBUG) - campbell */
- uiItemFullO(layout, "UI_OT_editsource", CTX_IFACE_(BLF_I18NCONTEXT_OPERATOR_DEFAULT, "Edit Source"),
- ICON_NONE, NULL, WM_OP_INVOKE_DEFAULT, 0);
+ uiItemFullO(layout, "UI_OT_editsource", NULL, ICON_NONE, NULL, WM_OP_INVOKE_DEFAULT, 0);
+ uiItemFullO(layout, "UI_OT_edittranslation_init", NULL, ICON_NONE, NULL, WM_OP_INVOKE_DEFAULT, 0);
uiPupMenuEnd(C, pup);
@@ -4652,7 +4856,6 @@ static int ui_but_menu(bContext *C, uiBut *but)
static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
{
-// Scene *scene= CTX_data_scene(C);
uiHandleButtonData *data;
int retval;
@@ -4678,18 +4881,31 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
ui_but_drop(C, event, but, data);
}
/* handle keyframing */
- else if (event->type == IKEY && !ELEM3(KM_MOD_FIRST, event->ctrl, event->oskey, event->shift) && event->val == KM_PRESS) {
- if (event->alt)
- ui_but_anim_delete_keyframe(C);
- else
+ else if ((event->type == IKEY) &&
+ !ELEM(KM_MOD_FIRST, event->ctrl, event->oskey) &&
+ (event->val == KM_PRESS))
+ {
+ if (event->alt) {
+ if (event->shift) {
+ ui_but_anim_clear_keyframe(C);
+ }
+ else {
+ ui_but_anim_delete_keyframe(C);
+ }
+ }
+ else {
ui_but_anim_insert_keyframe(C);
+ }
ED_region_tag_redraw(CTX_wm_region(C));
return WM_UI_HANDLER_BREAK;
}
/* handle drivers */
- else if (event->type == DKEY && !ELEM3(KM_MOD_FIRST, event->ctrl, event->oskey, event->shift) && event->val == KM_PRESS) {
+ else if ((event->type == DKEY) &&
+ !ELEM3(KM_MOD_FIRST, event->ctrl, event->oskey, event->shift) &&
+ (event->val == KM_PRESS))
+ {
if (event->alt)
ui_but_anim_remove_driver(C);
else
@@ -4700,7 +4916,10 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
return WM_UI_HANDLER_BREAK;
}
/* handle keyingsets */
- else if (event->type == KKEY && !ELEM3(KM_MOD_FIRST, event->ctrl, event->oskey, event->shift) && event->val == KM_PRESS) {
+ else if ((event->type == KKEY) &&
+ !ELEM3(KM_MOD_FIRST, event->ctrl, event->oskey, event->shift) &&
+ (event->val == KM_PRESS))
+ {
if (event->alt)
ui_but_anim_remove_keyingset(C);
else
@@ -4729,7 +4948,7 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
/* verify if we can edit this button */
if (ELEM(event->type, LEFTMOUSE, RETKEY)) {
/* this should become disabled button .. */
- if (but->lock) {
+ if (but->lock == TRUE) {
if (but->lockstr) {
BKE_report(NULL, RPT_WARNING, but->lockstr);
button_activate_state(C, but, BUTTON_STATE_EXIT);
@@ -4811,8 +5030,8 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
case BUTM:
retval = ui_do_but_BUT(C, but, data, event);
break;
- case COL:
- if (but->a1 == UI_GRAD_V_ALT) // signal to prevent calling up color picker
+ case COLOR:
+ if (but->a1 == UI_GRAD_V_ALT) /* signal to prevent calling up color picker */
retval = ui_do_but_EXIT(C, but, data, event);
else
retval = ui_do_but_BLOCK(C, but, data, event);
@@ -4836,6 +5055,10 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
case CHARTAB:
retval = ui_do_but_CHARTAB(C, block, but, data, event);
break;
+#else
+ /* do nothing */
+ case CHARTAB:
+ break;
#endif
case LINK:
@@ -4845,6 +5068,11 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
case TRACKPREVIEW:
retval = ui_do_but_TRACKPREVIEW(C, block, but, data, event);
break;
+
+ /* quiet warnings for unhandled types */
+ case SEPR:
+ case BUT_EXTRA:
+ break;
}
return retval;
@@ -4854,7 +5082,7 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
static int ui_but_contains_pt(uiBut *but, int mx, int my)
{
- return ((but->x1 < mx && but->x2 >= mx) && (but->y1 < my && but->y2 >= my));
+ return BLI_rctf_isect_pt(&but->rect, mx, my);
}
static uiBut *ui_but_find_activated(ARegion *ar)
@@ -4930,7 +5158,7 @@ static int ui_mouse_inside_region(ARegion *ar, int x, int y)
uiBlock *block;
/* check if the mouse is in the region */
- if (!BLI_in_rcti(&ar->winrct, x, y)) {
+ if (!BLI_rcti_isect_pt(&ar->winrct, x, y)) {
for (block = ar->uiblocks.first; block; block = block->next)
block->auto_open = FALSE;
@@ -4953,10 +5181,7 @@ static int ui_mouse_inside_region(ARegion *ar, int x, int y)
ui_window_to_region(ar, &mx, &my);
/* make a copy of the mask rect, and tweak accordingly for hidden scrollbars */
- mask_rct.xmin = v2d->mask.xmin;
- mask_rct.xmax = v2d->mask.xmax;
- mask_rct.ymin = v2d->mask.ymin;
- mask_rct.ymax = v2d->mask.ymax;
+ mask_rct = v2d->mask;
if (v2d->scroll & (V2D_SCROLL_VERTICAL_HIDE | V2D_SCROLL_VERTICAL_FULLR)) {
if (v2d->scroll & V2D_SCROLL_LEFT)
@@ -4972,7 +5197,7 @@ static int ui_mouse_inside_region(ARegion *ar, int x, int y)
}
/* check if in the rect */
- if (!BLI_in_rcti(&mask_rct, mx, my))
+ if (!BLI_rcti_isect_pt(&mask_rct, mx, my))
return 0;
}
@@ -5025,9 +5250,7 @@ static uiBut *ui_but_find_mouse_over(ARegion *ar, int x, int y)
/* CLIP_EVENTS prevents the event from reaching other blocks */
if (block->flag & UI_BLOCK_CLIP_EVENTS) {
/* check if mouse is inside block */
- if (block->minx <= mx && block->maxx >= mx &&
- block->miny <= my && block->maxy >= my)
- {
+ if (BLI_rctf_isect_pt(&block->rect, mx, my)) {
break;
}
}
@@ -5129,13 +5352,22 @@ static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState s
if (data->used_mouse && !data->autoopentimer) {
int time;
- if (but->block->auto_open == TRUE) time = 1; // test for toolbox
- else if ((but->block->flag & UI_BLOCK_LOOP && but->type != BLOCK) || but->block->auto_open == TRUE) time = 5 * U.menuthreshold2;
- else if (U.uiflag & USER_MENUOPENAUTO) time = 5 * U.menuthreshold1;
- else time = -1;
+ if (but->block->auto_open == TRUE) { /* test for toolbox */
+ time = 1;
+ }
+ else if ((but->block->flag & UI_BLOCK_LOOP && but->type != BLOCK) || but->block->auto_open == TRUE) {
+ time = 5 * U.menuthreshold2;
+ }
+ else if (U.uiflag & USER_MENUOPENAUTO) {
+ time = 5 * U.menuthreshold1;
+ }
+ else {
+ time = -1; /* do nothing */
+ }
- if (time >= 0)
+ if (time >= 0) {
data->autoopentimer = WM_event_add_timer(data->wm, data->window, TIMER, 0.02 * (double)time);
+ }
}
}
}
@@ -5155,13 +5387,29 @@ static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState s
/* number editing */
if (state == BUTTON_STATE_NUM_EDITING) {
if (ui_is_a_warp_but(but))
- WM_cursor_grab(CTX_wm_window(C), TRUE, TRUE, NULL);
+ WM_cursor_grab_enable(CTX_wm_window(C), TRUE, TRUE, NULL);
ui_numedit_begin(but, data);
}
else if (data->state == BUTTON_STATE_NUM_EDITING) {
ui_numedit_end(but, data);
- if (ui_is_a_warp_but(but))
- WM_cursor_ungrab(CTX_wm_window(C));
+ if (ui_is_a_warp_but(but)) {
+
+#ifdef USE_CONT_MOUSE_CORRECT
+ if (data->ungrab_mval[0] != FLT_MAX) {
+ int mouse_ungrab_xy[2];
+ ui_block_to_window_fl(data->region, but->block, &data->ungrab_mval[0], &data->ungrab_mval[1]);
+ mouse_ungrab_xy[0] = data->ungrab_mval[0];
+ mouse_ungrab_xy[1] = data->ungrab_mval[1];
+
+ WM_cursor_grab_disable(data->window, mouse_ungrab_xy);
+ }
+ else {
+ WM_cursor_grab_disable(data->window, NULL);
+ }
+#else
+ WM_cursor_grab_disable(data->window, );
+#endif
+ }
}
/* menu open */
if (state == BUTTON_STATE_MENU_OPEN)
@@ -5223,8 +5471,17 @@ static void button_activate_init(bContext *C, ARegion *ar, uiBut *but, uiButtonA
data->wm = CTX_wm_manager(C);
data->window = CTX_wm_window(C);
data->region = ar;
- if (ELEM(but->type, BUT_CURVE, SEARCH_MENU) ) ; // XXX curve is temp
- else data->interactive = 1;
+
+#ifdef USE_CONT_MOUSE_CORRECT
+ copy_v2_fl(data->ungrab_mval, FLT_MAX);
+#endif
+
+ if (ELEM(but->type, BUT_CURVE, SEARCH_MENU)) {
+ /* XXX curve is temp */
+ }
+ else {
+ data->interactive = TRUE;
+ }
data->state = BUTTON_STATE_INIT;
@@ -5352,7 +5609,7 @@ void ui_button_active_free(const bContext *C, uiBut *but)
* case cleanly anyway in case it happens */
if (but->active) {
data = but->active;
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_exit((bContext *)C, data, but, 0, 1);
}
}
@@ -5500,20 +5757,24 @@ void uiContextAnimUpdate(const bContext *C)
ui_but_anim_flag(but, (scene) ? scene->r.cfra : 0.0f);
ED_region_tag_redraw(ar);
- if (but->active)
+ if (but->active) {
activebut = but;
- else if (!activebut && (but->flag & UI_BUT_LAST_ACTIVE))
+ }
+ else if (!activebut && (but->flag & UI_BUT_LAST_ACTIVE)) {
activebut = but;
+ }
}
}
if (activebut) {
/* always recurse into opened menu, so all buttons update (like colorpicker) */
uiHandleButtonData *data = activebut->active;
- if (data && data->menu)
+ if (data && data->menu) {
ar = data->menu->region;
- else
+ }
+ else {
return;
+ }
}
else {
/* no active button */
@@ -5543,8 +5804,9 @@ static int ui_handle_button_over(bContext *C, wmEvent *event, ARegion *ar)
if (event->type == MOUSEMOVE) {
but = ui_but_find_mouse_over(ar, event->x, event->y);
- if (but)
+ if (but) {
button_activate_init(C, ar, but, BUTTON_ACTIVATE_OVER);
+ }
}
else if (event->type == EVT_BUT_OPEN) {
but = uit_but_find_open_event(ar, event);
@@ -5582,7 +5844,7 @@ static void ui_handle_button_activate(bContext *C, ARegion *ar, uiBut *but, uiBu
oldbut = ui_but_find_activated(ar);
if (oldbut) {
data = oldbut->active;
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_exit(C, data, oldbut, 0, 0);
}
@@ -5610,18 +5872,18 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but)
switch (event->type) {
case WINDEACTIVATE:
case EVT_BUT_CANCEL:
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
retval = WM_UI_HANDLER_CONTINUE;
break;
case MOUSEMOVE:
/* verify if we are still over the button, if not exit */
if (!ui_mouse_inside_button(ar, but, event->x, event->y)) {
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
else if (ui_but_find_mouse_over(ar, event->x, event->y) != but) {
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
else if (event->x != event->prevx || event->y != event->prevy) {
@@ -5631,7 +5893,8 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but)
}
break;
- case TIMER: {
+ case TIMER:
+ {
/* handle tooltip timer */
if (event->customdata == data->tooltiptimer) {
WM_event_remove_timer(data->wm, data->window, data->tooltiptimer);
@@ -5669,7 +5932,7 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but)
else if (data->state == BUTTON_STATE_WAIT_RELEASE) {
switch (event->type) {
case WINDEACTIVATE:
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_state(C, but, BUTTON_STATE_EXIT);
break;
@@ -5685,18 +5948,18 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but)
if (ui_mouse_inside_button(ar, but, event->x, event->y)) {
if (!(but->flag & UI_SELECT)) {
but->flag |= (UI_SELECT | UI_ACTIVE);
- data->cancel = 0;
+ data->cancel = FALSE;
ED_region_tag_redraw(data->region);
}
}
else {
if (but->flag & UI_SELECT) {
but->flag &= ~(UI_SELECT | UI_ACTIVE);
- data->cancel = 1;
+ data->cancel = TRUE;
ED_region_tag_redraw(data->region);
}
}
- }
+ }
break;
default:
/* otherwise catch mouse release event */
@@ -5708,9 +5971,11 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but)
}
else if (data->state == BUTTON_STATE_WAIT_FLASH) {
switch (event->type) {
- case TIMER: {
- if (event->customdata == data->flashtimer)
+ case TIMER:
+ {
+ if (event->customdata == data->flashtimer) {
button_activate_state(C, but, BUTTON_STATE_EXIT);
+ }
}
}
@@ -5720,21 +5985,41 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but)
/* check for exit because of mouse-over another button */
switch (event->type) {
case MOUSEMOVE:
-
- if (data->menu && data->menu->region)
- if (ui_mouse_inside_region(data->menu->region, event->x, event->y))
+ {
+ /* if the mouse is over the button, do nothing */
+ if (ui_mouse_inside_button(data->region, but, event->x, event->y)) {
+ break;
+ }
+
+ /* if the mouse is over the menu, also do nothing */
+ if (data->menu && data->menu->region) {
+ if (ui_mouse_inside_region(data->menu->region, event->x, event->y)) {
break;
-
- {
- uiBut *bt = ui_but_find_mouse_over(ar, event->x, event->y);
+ }
+ else {
+ /* make a rectangle between the menu and the button that opened it,
+ * this avoids any space between them exiting the popup. see [#29072] - campbell */
+ rctf rct_all = but->rect;
+ rctf rct_win;
+
+ ui_block_to_window_fl(ar, block, &rct_all.xmin, &rct_all.ymin);
+ ui_block_to_window_fl(ar, block, &rct_all.xmax, &rct_all.ymax);
+
+ BLI_rctf_rcti_copy(&rct_win, &data->menu->region->winrct);
+ BLI_rctf_union(&rct_all, &rct_win);
- if (bt && bt->active != data) {
- if (but->type != COL) /* exception */
- data->cancel = 1;
- button_activate_state(C, but, BUTTON_STATE_EXIT);
+ if (BLI_rctf_isect_pt(&rct_all, event->x, event->y)) {
+ break;
+ }
}
- break;
}
+
+ if (but->type != COLOR) { /* exception */
+ data->cancel = TRUE;
+ }
+ button_activate_state(C, but, BUTTON_STATE_EXIT);
+ break;
+ }
}
ui_do_button(C, block, but, event);
@@ -5779,6 +6064,8 @@ static int ui_handle_list_event(bContext *C, wmEvent *event, ARegion *ar)
else
value++;
+ CLAMP(value, 0, pa->list_last_len - 1);
+
if (value < pa->list_scroll)
pa->list_scroll = value;
else if (value >= pa->list_scroll + pa->list_size)
@@ -5837,15 +6124,19 @@ static void ui_handle_button_return_submenu(bContext *C, wmEvent *event, uiBut *
/* copy over return values from the closing menu */
if ((menu->menuretval & UI_RETURN_OK) || (menu->menuretval & UI_RETURN_UPDATE)) {
- if (but->type == COL)
+ if (but->type == COLOR)
copy_v3_v3(data->vec, menu->retvec);
else if (ELEM3(but->type, MENU, ICONROW, ICONTEXTROW))
data->value = menu->retvalue;
}
if (menu->menuretval & UI_RETURN_UPDATE) {
- if (data->interactive) ui_apply_button(C, but->block, but, data, 1);
- else ui_check_but(but);
+ if (data->interactive) {
+ ui_apply_button(C, but->block, but, data, TRUE);
+ }
+ else {
+ ui_check_but(but);
+ }
menu->menuretval = 0;
}
@@ -5853,7 +6144,7 @@ static void ui_handle_button_return_submenu(bContext *C, wmEvent *event, uiBut *
/* now change button state or exit, which will close the submenu */
if ((menu->menuretval & UI_RETURN_OK) || (menu->menuretval & UI_RETURN_CANCEL)) {
if (menu->menuretval != UI_RETURN_OK)
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_exit(C, data, but, 1, 0);
}
@@ -5868,7 +6159,7 @@ static void ui_handle_button_return_submenu(bContext *C, wmEvent *event, uiBut *
button_activate_state(C, but, BUTTON_STATE_HIGHLIGHT);
}
else {
- data->cancel = 1;
+ data->cancel = TRUE;
button_activate_exit(C, data, but, 1, 0);
}
}
@@ -5889,7 +6180,7 @@ static void ui_handle_button_return_submenu(bContext *C, wmEvent *event, uiBut *
static void ui_mouse_motion_towards_init(uiPopupBlockHandle *menu, int mx, int my, int force)
{
if (!menu->dotowards || force) {
- menu->dotowards = 1;
+ menu->dotowards = TRUE;
menu->towardsx = mx;
menu->towardsy = my;
@@ -5905,22 +6196,24 @@ static int ui_mouse_motion_towards_check(uiBlock *block, uiPopupBlockHandle *men
float p1[2], p2[2], p3[2], p4[2], oldp[2], newp[2];
int closer;
- if (!menu->dotowards) return 0;
+ if (!menu->dotowards) {
+ return 0;
+ }
/* verify that we are moving towards one of the edges of the
* menu block, in other words, in the triangle formed by the
* initial mouse location and two edge points. */
- p1[0] = block->minx - 20;
- p1[1] = block->miny - 20;
+ p1[0] = block->rect.xmin - 20;
+ p1[1] = block->rect.ymin - 20;
- p2[0] = block->maxx + 20;
- p2[1] = block->miny - 20;
+ p2[0] = block->rect.xmax + 20;
+ p2[1] = block->rect.ymin - 20;
- p3[0] = block->maxx + 20;
- p3[1] = block->maxy + 20;
+ p3[0] = block->rect.xmax + 20;
+ p3[1] = block->rect.ymax + 20;
- p4[0] = block->minx - 20;
- p4[1] = block->maxy + 20;
+ p4[0] = block->rect.xmin - 20;
+ p4[1] = block->rect.ymax + 20;
oldp[0] = menu->towardsx;
oldp[1] = menu->towardsy;
@@ -5928,21 +6221,20 @@ static int ui_mouse_motion_towards_check(uiBlock *block, uiPopupBlockHandle *men
newp[0] = mx;
newp[1] = my;
- if (len_v2v2(oldp, newp) < 4.0f)
+ if (len_squared_v2v2(oldp, newp) < (4.0f * 4.0f))
return menu->dotowards;
- closer = 0;
- closer |= isect_point_tri_v2(newp, oldp, p1, p2);
- closer |= isect_point_tri_v2(newp, oldp, p2, p3);
- closer |= isect_point_tri_v2(newp, oldp, p3, p4);
- closer |= isect_point_tri_v2(newp, oldp, p4, p1);
+ closer = (isect_point_tri_v2(newp, oldp, p1, p2) ||
+ isect_point_tri_v2(newp, oldp, p2, p3) ||
+ isect_point_tri_v2(newp, oldp, p3, p4) ||
+ isect_point_tri_v2(newp, oldp, p4, p1));
if (!closer)
- menu->dotowards = 0;
+ menu->dotowards = FALSE;
/* 1 second timer */
if (PIL_check_seconds_timer() - menu->towardstime > BUTTON_MOUSE_TOWARDS_THRESH)
- menu->dotowards = 0;
+ menu->dotowards = FALSE;
return menu->dotowards;
}
@@ -5951,10 +6243,10 @@ static char ui_menu_scroll_test(uiBlock *block, int my)
{
if (block->flag & (UI_BLOCK_CLIPTOP | UI_BLOCK_CLIPBOTTOM)) {
if (block->flag & UI_BLOCK_CLIPTOP)
- if (my > block->maxy - 14)
+ if (my > block->rect.ymax - 14)
return 't';
if (block->flag & UI_BLOCK_CLIPBOTTOM)
- if (my < block->miny + 14)
+ if (my < block->rect.ymin + 14)
return 'b';
}
return 0;
@@ -5985,25 +6277,25 @@ static int ui_menu_scroll(ARegion *ar, uiBlock *block, int my)
if (test == 't') {
/* bottom button is first button */
- if (b1->y1 < b2->y1)
- dy = bnext->y1 - b1->y1;
+ if (b1->rect.ymin < b2->rect.ymin)
+ dy = bnext->rect.ymin - b1->rect.ymin;
/* bottom button is last button */
else
- dy = bprev->y1 - b2->y1;
+ dy = bprev->rect.ymin - b2->rect.ymin;
}
else if (test == 'b') {
/* bottom button is first button */
- if (b1->y1 < b2->y1)
- dy = b1->y1 - bnext->y1;
+ if (b1->rect.ymin < b2->rect.ymin)
+ dy = b1->rect.ymin - bnext->rect.ymin;
/* bottom button is last button */
else
- dy = b2->y1 - bprev->y1;
+ dy = b2->rect.ymin - bprev->rect.ymin;
}
if (dy) {
for (b1 = block->buttons.first; b1; b1 = b1->next) {
- b1->y1 -= dy;
- b1->y2 -= dy;
+ b1->rect.ymin -= dy;
+ b1->rect.ymax -= dy;
}
/* set flags again */
ui_popup_block_scrolltest(block);
@@ -6017,7 +6309,7 @@ static int ui_menu_scroll(ARegion *ar, uiBlock *block, int my)
return 0;
}
-static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu, int UNUSED(topmenu))
+static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu, int level)
{
ARegion *ar;
uiBlock *block;
@@ -6035,10 +6327,7 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle
ui_window_to_block(ar, block, &mx, &my);
/* check if mouse is inside block */
- inside = 0;
- if (block->minx <= mx && block->maxx >= mx)
- if (block->miny <= my && block->maxy >= my)
- inside = 1;
+ inside = BLI_rctf_isect_pt(&block->rect, mx, my);
/* if there's an active modal button, don't check events or outside, except for search menu */
but = ui_but_find_activated(ar);
@@ -6065,10 +6354,22 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle
}
/* first block own event func */
- if (block->block_event_func && block->block_event_func(C, block, event)) ;
- /* events not for active search menu button */
+ if (block->block_event_func && block->block_event_func(C, block, event)) {
+ /* pass */
+ } /* events not for active search menu button */
else if (but == NULL || but->type != SEARCH_MENU) {
switch (event->type) {
+
+
+ /* let the parent menu get the event */
+#define PASS_EVENT_TO_PARENT_IF_NONACTIVE \
+ if ((level != 0) && (but == NULL)) { \
+ menu->menuretval = UI_RETURN_OUT | UI_RETURN_OUT_PARENT; \
+ BLI_assert(retval == WM_UI_HANDLER_CONTINUE); \
+ break; \
+ } (void)0
+
+
/* closing sublevels of pulldowns */
case LEFTARROWKEY:
if (event->val == KM_PRESS && (block->flag & UI_BLOCK_LOOP))
@@ -6081,6 +6382,9 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle
/* opening sublevels of pulldowns */
case RIGHTARROWKEY:
if (event->val == KM_PRESS && (block->flag & UI_BLOCK_LOOP)) {
+
+ PASS_EVENT_TO_PARENT_IF_NONACTIVE;
+
but = ui_but_find_activated(ar);
if (!but) {
@@ -6101,9 +6405,14 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle
case WHEELUPMOUSE:
case WHEELDOWNMOUSE:
/* arrowkeys: only handle for block_loop blocks */
- if (event->alt || event->shift || event->ctrl || event->oskey) ;
+ if (event->alt || event->shift || event->ctrl || event->oskey) {
+ /* pass */
+ }
else if (inside || (block->flag & UI_BLOCK_LOOP)) {
if (event->val == KM_PRESS) {
+
+ PASS_EVENT_TO_PARENT_IF_NONACTIVE;
+
but = ui_but_find_activated(ar);
if (but) {
/* is there a situation where UI_LEFT or UI_RIGHT would also change navigation direction? */
@@ -6150,8 +6459,9 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle
}
}
- if (bt)
+ if (bt) {
ui_handle_button_activate(C, ar, bt, BUTTON_ACTIVATE);
+ }
}
}
@@ -6182,11 +6492,14 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle
if (act == 0) act = 10;
if ((block->flag & UI_BLOCK_NUMSELECT) && event->val == KM_PRESS) {
+
+ PASS_EVENT_TO_PARENT_IF_NONACTIVE;
+
if (event->alt) act += 10;
count = 0;
for (but = block->buttons.first; but; but = but->next) {
- int doit = 0;
+ int doit = FALSE;
if (but->type != LABEL && but->type != SEPR)
count++;
@@ -6195,19 +6508,29 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle
if (but->rnapoin.data && but->rnaprop) {
if (ELEM(RNA_property_subtype(but->rnaprop), PROP_LAYER, PROP_LAYER_MEMBER)) {
if (but->rnaindex == act - 1)
- doit = 1;
+ doit = TRUE;
}
}
/* exception for menus like layer buts, with button aligning they're not drawn in order */
else if (but->type == TOGR) {
if (but->bitnr == act - 1)
- doit = 1;
+ doit = TRUE;
+ }
+ else if (count == act) {
+ doit = TRUE;
}
- else if (count == act)
- doit = 1;
if (doit) {
- ui_handle_button_activate(C, ar, but, BUTTON_ACTIVATE_APPLY);
+ /* activate buttons but open menu's */
+ uiButtonActivateType activate;
+ if (but->type == PULLDOWN) {
+ activate = BUTTON_ACTIVATE_OPEN;
+ }
+ else {
+ activate = BUTTON_ACTIVATE_APPLY;
+ }
+
+ ui_handle_button_activate(C, ar, but, activate);
break;
}
}
@@ -6249,10 +6572,12 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle
(event->ctrl == FALSE) &&
(event->oskey == FALSE))
{
+ PASS_EVENT_TO_PARENT_IF_NONACTIVE;
+
for (but = block->buttons.first; but; but = but->next) {
if (but->menu_key == event->type) {
- if (but->type == BUT) {
+ if (ELEM(but->type, BUT, BUTM)) {
/* mainly for operator buttons */
ui_handle_button_activate(C, ar, but, BUTTON_ACTIVATE_APPLY);
}
@@ -6287,7 +6612,7 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle
uiSafetyRct *saferct = block->saferct.first;
if (ELEM3(event->type, LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE) && event->val == KM_PRESS) {
- if (saferct && !BLI_in_rctf(&saferct->parent, event->x, event->y)) {
+ if (saferct && !BLI_rctf_isect_pt(&saferct->parent, event->x, event->y)) {
if (block->flag & (UI_BLOCK_OUT_1))
menu->menuretval = UI_RETURN_OK;
else
@@ -6320,9 +6645,9 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle
* events we check all preceding block rects too to make
* arrow keys navigation work */
if (event->type != MOUSEMOVE || saferct == block->saferct.first) {
- if (BLI_in_rctf(&saferct->parent, (float)event->x, (float)event->y))
+ if (BLI_rctf_isect_pt(&saferct->parent, (float)event->x, (float)event->y))
break;
- if (BLI_in_rctf(&saferct->safety, (float)event->x, (float)event->y))
+ if (BLI_rctf_isect_pt(&saferct->safety, (float)event->x, (float)event->y))
break;
}
}
@@ -6338,6 +6663,10 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle
retval = WM_UI_HANDLER_BREAK;
}
}
+
+ /* end switch */
+#undef PASS_EVENT_TO_PARENT_IF_NONACTIVE
+
}
}
@@ -6345,7 +6674,9 @@ static int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle
* buttons inside this region. disabled inside check .. not sure
* anymore why it was there? but it meant enter didn't work
* for example when mouse was not over submenu */
- if ((/*inside &&*/ (!menu->menuretval || (menu->menuretval & UI_RETURN_UPDATE)) && retval == WM_UI_HANDLER_CONTINUE) || event->type == TIMER) {
+ if ((event->type == TIMER) ||
+ (/*inside &&*/ (!menu->menuretval || (menu->menuretval & UI_RETURN_UPDATE)) && retval == WM_UI_HANDLER_CONTINUE))
+ {
but = ui_but_find_activated(ar);
if (but) {
@@ -6424,7 +6755,7 @@ static int ui_handle_menu_return_submenu(bContext *C, wmEvent *event, uiPopupBlo
return WM_UI_HANDLER_BREAK;
}
-static int ui_handle_menus_recursive(bContext *C, wmEvent *event, uiPopupBlockHandle *menu)
+static int ui_handle_menus_recursive(bContext *C, wmEvent *event, uiPopupBlockHandle *menu, int level)
{
uiBut *but;
uiHandleButtonData *data;
@@ -6437,14 +6768,20 @@ static int ui_handle_menus_recursive(bContext *C, wmEvent *event, uiPopupBlockHa
submenu = (data) ? data->menu : NULL;
if (submenu)
- retval = ui_handle_menus_recursive(C, event, submenu);
+ retval = ui_handle_menus_recursive(C, event, submenu, level + 1);
/* now handle events for our own menu */
if (retval == WM_UI_HANDLER_CONTINUE || event->type == TIMER) {
- if (submenu && submenu->menuretval)
+ if (submenu && submenu->menuretval) {
retval = ui_handle_menu_return_submenu(C, event, menu);
- else
- retval = ui_handle_menu_event(C, event, menu, (submenu == NULL));
+ /* we may wan't to quit the submenu and handle the even in this menu */
+ if ((retval == WM_UI_HANDLER_BREAK) && (submenu->menuretval & UI_RETURN_OUT_PARENT)) {
+ retval = ui_handle_menu_event(C, event, menu, level);
+ }
+ }
+ else {
+ retval = ui_handle_menu_event(C, event, menu, level); /* same as above */
+ }
}
return retval;
@@ -6532,7 +6869,7 @@ static int ui_handler_region_menu(bContext *C, wmEvent *event, void *UNUSED(user
if (data->state == BUTTON_STATE_MENU_OPEN) {
/* handle events for menus and their buttons recursively,
* this will handle events from the top to the bottom menu */
- retval = ui_handle_menus_recursive(C, event, data->menu);
+ retval = ui_handle_menus_recursive(C, event, data->menu, 0);
/* handle events for the activated button */
if (retval == WM_UI_HANDLER_CONTINUE || event->type == TIMER) {
@@ -6576,7 +6913,7 @@ static int ui_handler_popup(bContext *C, wmEvent *event, void *userdata)
retval = WM_UI_HANDLER_CONTINUE;
}
- ui_handle_menus_recursive(C, event, menu);
+ ui_handle_menus_recursive(C, event, menu, 0);
/* free if done, does not free handle itself */
if (menu->menuretval) {
diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c
index 737c0377f27..0921107b8e6 100644
--- a/source/blender/editors/interface/interface_icons.c
+++ b/source/blender/editors/interface/interface_icons.c
@@ -59,7 +59,6 @@
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_icons.h"
-#include "BKE_utildefines.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -467,7 +466,7 @@ static void init_brush_icons(void)
{ \
bbuf = IMB_ibImageFromMemory((unsigned char *)datatoc_ ##name## _png, \
datatoc_ ##name## _png_size, \
- IB_rect, "<brush icon>"); \
+ IB_rect, NULL, "<brush icon>"); \
def_internal_icon(bbuf, icon_id, 0, 0, w, ICON_TYPE_BUFFER); \
IMB_freeImBuf(bbuf); \
} (void)0
@@ -521,7 +520,7 @@ static void init_internal_icons(void)
char *icondir = BLI_get_folder(BLENDER_DATAFILES, "icons");
if (icondir) {
BLI_join_dirfile(iconfilestr, sizeof(iconfilestr), icondir, btheme->tui.iconfile);
- bbuf = IMB_loadiffname(iconfilestr, IB_rect); /* if the image is missing bbuf will just be NULL */
+ bbuf = IMB_loadiffname(iconfilestr, IB_rect, NULL); /* if the image is missing bbuf will just be NULL */
if (bbuf && (bbuf->x < ICON_IMAGE_W || bbuf->y < ICON_IMAGE_H)) {
printf("\n***WARNING***\nIcons file %s too small.\nUsing built-in Icons instead\n", iconfilestr);
IMB_freeImBuf(bbuf);
@@ -534,7 +533,7 @@ static void init_internal_icons(void)
}
if (bbuf == NULL)
bbuf = IMB_ibImageFromMemory((unsigned char *)datatoc_blender_icons_png,
- datatoc_blender_icons_png_size, IB_rect, "<blender icons>");
+ datatoc_blender_icons_png_size, IB_rect, NULL, "<blender icons>");
if (bbuf) {
/* free existing texture if any */
@@ -596,7 +595,7 @@ static void init_internal_icons(void)
IMB_freeImBuf(bbuf);
}
-#endif // WITH_HEADLESS
+#endif /* WITH_HEADLESS */
static void init_iconfile_list(struct ListBase *list)
{
@@ -621,7 +620,7 @@ static void init_iconfile_list(struct ListBase *list)
if (restoredir && !chdir(olddir)) {} /* fix warning about checking return value */
for (i = 0; i < totfile; i++) {
- if ( (dir[i].type & S_IFREG) ) {
+ if ((dir[i].type & S_IFREG)) {
char *filename = dir[i].relname;
if (BLI_testextensie(filename, ".png")) {
@@ -836,7 +835,7 @@ static void icon_create_rect(struct PreviewImage *prv_img, enum eIconSizes size)
if (G.debug & G_DEBUG)
printf("%s, error: requested preview image does not exist", __func__);
}
- if (!prv_img->rect[size]) {
+ else if (!prv_img->rect[size]) {
prv_img->w[size] = render_size;
prv_img->h[size] = render_size;
prv_img->changed[size] = 1;
@@ -861,7 +860,8 @@ static void icon_set_image(bContext *C, ID *id, PreviewImage *prv_img, enum eIco
prv_img->w[size], prv_img->h[size]);
}
-static void icon_draw_rect(float x, float y, int w, int h, float UNUSED(aspect), int rw, int rh, unsigned int *rect, float alpha, const float rgb[3], short is_preview)
+static void icon_draw_rect(float x, float y, int w, int h, float UNUSED(aspect), int rw, int rh,
+ unsigned int *rect, float alpha, const float rgb[3], short is_preview)
{
ImBuf *ima = NULL;
@@ -914,7 +914,8 @@ static void icon_draw_rect(float x, float y, int w, int h, float UNUSED(aspect),
}
}
-static void icon_draw_texture(float x, float y, float w, float h, int ix, int iy, int UNUSED(iw), int ih, float alpha, const float rgb[3])
+static void icon_draw_texture(float x, float y, float w, float h, int ix, int iy,
+ int UNUSED(iw), int ih, float alpha, const float rgb[3])
{
float x1, x2, y1, y2;
@@ -957,7 +958,8 @@ static int get_draw_size(enum eIconSizes size)
return 0;
}
-static void icon_draw_size(float x, float y, int icon_id, float aspect, float alpha, const float rgb[3], enum eIconSizes size, int draw_size, int UNUSED(nocreate), short is_preview)
+static void icon_draw_size(float x, float y, int icon_id, float aspect, float alpha, const float rgb[3],
+ enum eIconSizes size, int draw_size, int UNUSED(nocreate), short is_preview)
{
bTheme *btheme = UI_GetTheme();
Icon *icon = NULL;
@@ -1088,7 +1090,7 @@ static int ui_id_brush_get_icon(bContext *C, ID *id)
mode = OB_MODE_TEXTURE_PAINT;
}
else if ((sima = CTX_wm_space_image(C)) &&
- (sima->flag & SI_DRAWTOOL))
+ (sima->mode == SI_MODE_PAINT))
{
mode = OB_MODE_TEXTURE_PAINT;
}
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index 1f88db033a4..b4b0686d6fc 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -94,8 +94,7 @@ typedef enum {
UI_WTYPE_BOX,
UI_WTYPE_SCROLL,
UI_WTYPE_LISTITEM,
- UI_WTYPE_PROGRESSBAR,
-
+ UI_WTYPE_PROGRESSBAR
} uiWidgetTypeEnum;
/* panel limits */
@@ -131,6 +130,14 @@ typedef enum {
/* for scope resize zone */
#define SCOPE_RESIZE_PAD 9
+/* bit button defines */
+/* Bit operations */
+#define UI_BITBUT_TEST(a, b) ( ( (a) & 1 << (b) ) != 0)
+#define UI_BITBUT_SET(a, b) ( (a) | 1 << (b) )
+#define UI_BITBUT_CLR(a, b) ( (a) & ~(1 << (b)) )
+/* bit-row */
+#define UI_BITBUT_ROW(min, max) (((max) >= 31 ? 0xFFFFFFFF : (1 << (max + 1)) - 1) - ((min) ? ((1 << (min)) - 1) : 0) )
+
typedef struct uiLinkLine { /* only for draw/edit */
struct uiLinkLine *next, *prev;
struct uiBut *from, *to;
@@ -151,14 +158,15 @@ typedef struct {
struct uiBut {
struct uiBut *next, *prev;
int flag, drawflag;
- short type, pointype, bit, bitnr, retval, strwidth, ofs, pos, selsta, selend, alignnr;
- short pad1;
+ eButType type;
+ eButPointerType pointype;
+ short bit, bitnr, retval, strwidth, ofs, pos, selsta, selend, alignnr;
char *str;
char strdata[UI_MAX_NAME_STR];
char drawstr[UI_MAX_DRAW_STR];
- float x1, y1, x2, y2;
+ rctf rect;
char *poin;
float hardmin, hardmax, softmin, softmax;
@@ -176,7 +184,7 @@ struct uiBut {
struct bContextStore *context;
- /* not ysed yet, was used in 2.4x for ui_draw_pulldown_round & friends */
+ /* not used yet, was used in 2.4x for ui_draw_pulldown_round & friends */
#if 0
void (*embossfunc)(int, int, float, float, float, float, float, int);
void (*sliderfunc)(int, float, float, float, float, float, float, int);
@@ -264,8 +272,8 @@ struct uiBlock {
char name[UI_MAX_NAME_STR];
float winmat[4][4];
-
- float minx, miny, maxx, maxy;
+
+ rctf rect;
float aspect;
int puphash; /* popup menu hash for memory */
@@ -303,27 +311,32 @@ struct uiBlock {
const char *lockstr;
char lock;
- char active; // to keep blocks while drawing and free them afterwards
- char tooltipdisabled; // to avoid tooltip after click
- char endblock; // uiEndBlock done?
-
- float xofs, yofs; // offset to parent button
- int dobounds, mx, my; // for doing delayed
- int bounds, minbounds; // for doing delayed
+ char active; /* to keep blocks while drawing and free them afterwards */
+ char tooltipdisabled; /* to avoid tooltip after click */
+ char endblock; /* uiEndBlock done? */
+
+ eBlockBoundsCalc bounds_type; /* for doing delayed */
+ int mx, my;
+ int bounds, minbounds; /* for doing delayed */
- rctf safety; // pulldowns, to detect outside, can differ per case how it is created
- ListBase saferct; // uiSafetyRct list
+ rctf safety; /* pulldowns, to detect outside, can differ per case how it is created */
+ ListBase saferct; /* uiSafetyRct list */
- uiPopupBlockHandle *handle; // handle
+ uiPopupBlockHandle *handle; /* handle */
- struct wmOperator *ui_operator; // use so presets can find the operator,
- // across menus and from nested popups which fail for operator context.
+ struct wmOperator *ui_operator; /* use so presets can find the operator, */
+ /* across menus and from nested popups which fail for operator context. */
- void *evil_C; // XXX hack for dynamic operator enums
+ void *evil_C; /* XXX hack for dynamic operator enums */
- struct UnitSettings *unit; // unit system, used a lot for numeric buttons so include here rather then fetching through the scene every time.
- float _hsv[3]; // XXX, only access via ui_block_hsv_get()
- char color_profile; // color profile for correcting linear colors for display
+ struct UnitSettings *unit; /* unit system, used a lot for numeric buttons so include here rather then fetching through the scene every time. */
+ float _hsv[3]; /* XXX, only access via ui_block_hsv_get() */
+
+ char color_profile; /* color profile for correcting linear colors for display */
+
+ char *display_device; /* display devide name used to display this block,
+ * used by color widgets to transform colors from/to scene linear
+ */
};
typedef struct uiSafetyRct {
@@ -340,7 +353,7 @@ void ui_fontscale(short *points, float aspect);
extern void ui_block_to_window_fl(const struct ARegion *ar, uiBlock *block, float *x, float *y);
extern void ui_block_to_window(const struct ARegion *ar, uiBlock *block, int *x, int *y);
-extern void ui_block_to_window_rct(const struct ARegion *ar, uiBlock *block, rctf *graph, rcti *winr);
+extern void ui_block_to_window_rct(const struct ARegion *ar, uiBlock *block, const rctf *graph, rcti *winr);
extern void ui_window_to_block_fl(const struct ARegion *ar, uiBlock *block, float *x, float *y);
extern void ui_window_to_block(const struct ARegion *ar, uiBlock *block, int *x, int *y);
extern void ui_window_to_region(const ARegion *ar, int *x, int *y);
@@ -351,7 +364,8 @@ extern void ui_set_but_hsv(uiBut *but);
extern void ui_get_but_vectorf(uiBut *but, float vec[3]);
extern void ui_set_but_vectorf(uiBut *but, const float vec[3]);
-extern void ui_hsvcircle_vals_from_pos(float *valrad, float *valdist, rcti *rect, float mx, float my);
+extern void ui_hsvcircle_vals_from_pos(float *val_rad, float *val_dist, const rcti *rect,
+ const float mx, const float my);
extern void ui_get_but_string(uiBut *but, char *str, size_t maxlen);
extern void ui_convert_to_unit_alt_name(uiBut *but, char *str, size_t maxlen);
@@ -373,6 +387,10 @@ extern void ui_bounds_block(uiBlock *block);
extern void ui_block_translate(uiBlock *block, int x, int y);
extern void ui_block_do_align(uiBlock *block);
+extern struct ColorManagedDisplay *ui_block_display_get(uiBlock *block);
+void ui_block_to_display_space_v3(uiBlock *block, float pixel[3]);
+void ui_block_to_scene_linear_v3(uiBlock *block, float pixel[3]);
+
/* interface_regions.c */
struct uiPopupBlockHandle {
@@ -400,9 +418,12 @@ struct uiPopupBlockHandle {
int menuretval;
float retvalue;
float retvec[4];
+
+ /* menu direction */
+ int direction;
};
-uiBlock *ui_block_func_COL(struct bContext *C, uiPopupBlockHandle *handle, void *arg_but);
+uiBlock *ui_block_func_COLOR(struct bContext *C, uiPopupBlockHandle *handle, void *arg_but);
void ui_block_func_ICONROW(struct bContext *C, uiLayout *layout, void *arg_but);
void ui_block_func_ICONTEXTROW(struct bContext *C, uiLayout *layout, void *arg_but);
@@ -445,7 +466,7 @@ extern int ui_handler_panel_region(struct bContext *C, struct wmEvent *event);
extern void ui_draw_aligned_panel(struct uiStyle *style, uiBlock *block, rcti *rect);
/* interface_draw.c */
-extern void ui_dropshadow(rctf *rct, float radius, float aspect, float alpha, int select);
+extern void ui_dropshadow(const rctf *rct, float radius, float aspect, float alpha, int select);
void ui_draw_gradient(rcti *rect, const float hsv[3], const int type, const float alpha);
@@ -462,6 +483,7 @@ void ui_draw_but_TRACKPREVIEW(ARegion *ar, uiBut *but, struct uiWidgetColors *wc
extern void ui_button_activate_do(struct bContext *C, struct ARegion *ar, uiBut *but);
extern void ui_button_active_free(const struct bContext *C, uiBut *but);
extern int ui_button_is_active(struct ARegion *ar);
+extern int ui_button_open_menu_direction(uiBut *but);
/* interface_widgets.c */
void ui_draw_anti_tria(float x1, float y1, float x2, float y2, float x3, float y3);
@@ -481,7 +503,7 @@ void ui_widget_color_init(struct ThemeUI *tui);
void ui_draw_menu_item(struct uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int state);
void ui_draw_preview_item(struct uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int state);
-extern unsigned char checker_stipple_sml[];
+extern unsigned char checker_stipple_sml[32 * 32 / 8];
/* used for transp checkers */
#define UI_TRANSP_DARK 100
#define UI_TRANSP_LIGHT 160
@@ -508,6 +530,7 @@ void ui_but_add_shortcut(uiBut *but, const char *key_str, const short do_strip);
void ui_but_anim_flag(uiBut *but, float cfra);
void ui_but_anim_insert_keyframe(struct bContext *C);
void ui_but_anim_delete_keyframe(struct bContext *C);
+void ui_but_anim_clear_keyframe(struct bContext *C);
void ui_but_anim_add_driver(struct bContext *C);
void ui_but_anim_remove_driver(struct bContext *C);
void ui_but_anim_copy_driver(struct bContext *C);
@@ -520,4 +543,3 @@ int ui_but_anim_expression_create(uiBut *but, const char *str);
void ui_but_anim_autokey(struct bContext *C, uiBut *but, struct Scene *scene, float cfra);
#endif
-
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index 3270015271a..8e30b31f3fe 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -39,6 +39,7 @@
#include "BLI_listbase.h"
#include "BLI_string.h"
+#include "BLI_rect.h"
#include "BLI_utildefines.h"
#include "BLF_translation.h"
@@ -238,8 +239,8 @@ static void ui_item_size(uiItem *item, int *r_w, int *r_h)
if (item->type == ITEM_BUTTON) {
uiButtonItem *bitem = (uiButtonItem *)item;
- if (r_w) *r_w = bitem->but->x2 - bitem->but->x1;
- if (r_h) *r_h = bitem->but->y2 - bitem->but->y1;
+ if (r_w) *r_w = BLI_rctf_size_x(&bitem->but->rect);
+ if (r_h) *r_h = BLI_rctf_size_y(&bitem->but->rect);
}
else {
uiLayout *litem = (uiLayout *)item;
@@ -254,8 +255,8 @@ static void ui_item_offset(uiItem *item, int *r_x, int *r_y)
if (item->type == ITEM_BUTTON) {
uiButtonItem *bitem = (uiButtonItem *)item;
- if (r_x) *r_x = bitem->but->x1;
- if (r_y) *r_y = bitem->but->y1;
+ if (r_x) *r_x = bitem->but->rect.xmin;
+ if (r_y) *r_y = bitem->but->rect.ymin;
}
else {
if (r_x) *r_x = 0;
@@ -268,10 +269,10 @@ static void ui_item_position(uiItem *item, int x, int y, int w, int h)
if (item->type == ITEM_BUTTON) {
uiButtonItem *bitem = (uiButtonItem *)item;
- bitem->but->x1 = x;
- bitem->but->y1 = y;
- bitem->but->x2 = x + w;
- bitem->but->y2 = y + h;
+ bitem->but->rect.xmin = x;
+ bitem->but->rect.ymin = y;
+ bitem->but->rect.xmax = x + w;
+ bitem->but->rect.ymax = y + h;
ui_check_but(bitem->but); /* for strlen */
}
@@ -627,7 +628,7 @@ static void ui_item_disabled(uiLayout *layout, const char *name)
but = uiDefBut(block, LABEL, 0, name, 0, 0, w, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
but->flag |= UI_BUT_DISABLED;
- but->lock = 1;
+ but->lock = TRUE;
but->lockstr = "";
}
@@ -834,8 +835,9 @@ void uiItemsFullEnumO(uiLayout *layout, const char *opname, const char *propname
bt = block->buttons.last;
bt->flag = UI_TEXT_LEFT;
}
- else /* XXX bug here, collums draw bottom item badly */
+ else { /* XXX bug here, colums draw bottom item badly */
uiItemS(column);
+ }
}
}
@@ -1898,10 +1900,10 @@ static void ui_litem_layout_box(uiLayout *litem)
/* roundbox around the sublayout */
but = box->roundbox;
- but->x1 = litem->x;
- but->y1 = litem->y;
- but->x2 = litem->x + litem->w;
- but->y2 = litem->y + litem->h;
+ but->rect.xmin = litem->x;
+ but->rect.ymin = litem->y;
+ but->rect.xmax = litem->x + litem->w;
+ but->rect.ymax = litem->y + litem->h;
}
/* multi-column layout, automatically flowing to the next */
@@ -1960,6 +1962,7 @@ static void ui_litem_estimate_column_flow(uiLayout *litem)
x += maxw + litem->space;
maxw = 0;
y = 0;
+ emy = 0; /* need to reset height again for next column */
col++;
}
}
@@ -2010,6 +2013,7 @@ static void ui_litem_layout_column_flow(uiLayout *litem)
if (col < flow->totcol - 1 && emy <= -emh) {
x += itemw + style->columnspace;
y = litem->y;
+ emy = 0; /* need to reset height again for next column */
col++;
}
}
@@ -2512,8 +2516,12 @@ static void ui_item_align(uiLayout *litem, short nr)
if (!bitem->but->alignnr)
bitem->but->alignnr = nr;
}
- else if (item->type == ITEM_LAYOUT_ABSOLUTE) ;
- else if (item->type == ITEM_LAYOUT_OVERLAP) ;
+ else if (item->type == ITEM_LAYOUT_ABSOLUTE) {
+ /* pass */
+ }
+ else if (item->type == ITEM_LAYOUT_OVERLAP) {
+ /* pass */
+ }
else if (item->type == ITEM_LAYOUT_BOX) {
box = (uiLayoutItemBx *)item;
box->roundbox->alignnr = nr;
@@ -2747,7 +2755,7 @@ static void ui_intro_button(DynStr *ds, uiButtonItem *bitem)
uiBut *but = bitem->but;
BLI_dynstr_appendf(ds, "'type':%d, ", but->type); /* see ~ UI_interface.h:200 */
BLI_dynstr_appendf(ds, "'draw_string':'''%s''', ", but->drawstr);
- BLI_dynstr_appendf(ds, "'tip':'''%s''', ", but->tip ? but->tip : ""); // not exactly needed, rna has this
+ BLI_dynstr_appendf(ds, "'tip':'''%s''', ", but->tip ? but->tip : ""); /* not exactly needed, rna has this */
if (but->optype) {
char *opstr = WM_operator_pystring(but->block->evil_C, but->optype, but->opptr, 0);
@@ -2809,7 +2817,7 @@ static void ui_intro_uiLayout(DynStr *ds, uiLayout *layout)
ui_intro_items(ds, &layout->items);
}
-static char *str = NULL; // XXX, constant re-freeing, far from ideal.
+static char *str = NULL; /* XXX, constant re-freeing, far from ideal. */
const char *uiLayoutIntrospect(uiLayout *layout)
{
DynStr *ds = BLI_dynstr_new();
@@ -2832,7 +2840,9 @@ static void ui_layout_operator_buts__reset_cb(bContext *UNUSED(C), void *op_pt,
}
/* this function does not initialize the layout, functions can be called on the layout before and after */
-void uiLayoutOperatorButs(const bContext *C, uiLayout *layout, wmOperator *op, int (*check_prop)(struct PointerRNA *, struct PropertyRNA *), const char label_align, const short flag)
+void uiLayoutOperatorButs(const bContext *C, uiLayout *layout, wmOperator *op,
+ int (*check_prop)(struct PointerRNA *, struct PropertyRNA *),
+ const char label_align, const short flag)
{
if (!op->properties) {
IDPropertyTemplate val = {0};
@@ -2846,8 +2856,10 @@ void uiLayoutOperatorButs(const bContext *C, uiLayout *layout, wmOperator *op, i
/* poll() on this operator may still fail, at the moment there is no nice feedback when this happens
* just fails silently */
if (!WM_operator_repeat_check(C, op)) {
- uiBlockSetButLock(uiLayoutGetBlock(layout), TRUE, "Operator cannot redo");
- uiItemL(layout, IFACE_("* Redo Unsupported *"), ICON_NONE); // XXX, could give some nicer feedback or not show redo panel at all?
+ uiBlockSetButLock(uiLayoutGetBlock(layout), TRUE, "Operator can't' redo");
+
+ /* XXX, could give some nicer feedback or not show redo panel at all? */
+ uiItemL(layout, IFACE_("* Redo Unsupported *"), ICON_NONE);
}
/* menu */
@@ -2863,12 +2875,12 @@ void uiLayoutOperatorButs(const bContext *C, uiLayout *layout, wmOperator *op, i
WM_operator_properties_create(&op_ptr, "WM_OT_operator_preset_add");
RNA_string_set(&op_ptr, "operator", op->type->idname);
- op_ptr = uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMIN, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0);
+ uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMIN, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0);
WM_operator_properties_create(&op_ptr, "WM_OT_operator_preset_add");
RNA_string_set(&op_ptr, "operator", op->type->idname);
RNA_boolean_set(&op_ptr, "remove_active", TRUE);
- op_ptr = uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMOUT, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0);
+ uiItemFullO(row, "WM_OT_operator_preset_add", "", ICON_ZOOMOUT, op_ptr.data, WM_OP_INVOKE_DEFAULT, 0);
}
if (op->type->ui) {
diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c
index 1c3b642b63b..e4e2598c494 100644
--- a/source/blender/editors/interface/interface_ops.c
+++ b/source/blender/editors/interface/interface_ops.c
@@ -27,7 +27,6 @@
* \ingroup edinterface
*/
-
#include <stdio.h>
#include <math.h>
#include <string.h>
@@ -43,6 +42,9 @@
#include "BLI_math_vector.h"
#include "BLI_utildefines.h"
+#include "BLF_api.h"
+#include "BLF_translation.h"
+
#include "BKE_context.h"
#include "BKE_screen.h"
#include "BKE_global.h"
@@ -56,6 +58,8 @@
#include "UI_interface.h"
+#include "IMB_colormanagement.h"
+
#include "interface_intern.h"
#include "WM_api.h"
@@ -66,11 +70,14 @@
#include "BKE_main.h"
#include "BLI_ghash.h"
+#include "ED_image.h" /* for HDR color sampling */
+#include "ED_node.h" /* for HDR color sampling */
+#include "ED_clip.h" /* for HDR color sampling */
/* ********************************************************** */
typedef struct Eyedropper {
- short do_color_management;
+ struct ColorManagedDisplay *display;
PointerRNA ptr;
PropertyRNA *prop;
@@ -84,8 +91,6 @@ typedef struct Eyedropper {
static int eyedropper_init(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
- const int color_manage = scene->r.color_mgt_flag & R_COLOR_MANAGEMENT;
-
Eyedropper *eye;
op->customdata = eye = MEM_callocN(sizeof(Eyedropper), "Eyedropper");
@@ -101,7 +106,12 @@ static int eyedropper_init(bContext *C, wmOperator *op)
return FALSE;
}
- eye->do_color_management = (color_manage && RNA_property_subtype(eye->prop) == PROP_COLOR);
+ if (RNA_property_subtype(eye->prop) == PROP_COLOR) {
+ const char *display_device;
+
+ display_device = scene->display_settings.display_device;
+ eye->display = IMB_colormanagement_display_get_named(display_device);
+ }
return TRUE;
}
@@ -123,9 +133,59 @@ static int eyedropper_cancel(bContext *C, wmOperator *op)
/* *** eyedropper_color_ helper functions *** */
-/* simply get the color from the screen */
-static void eyedropper_color_sample_fl(Eyedropper *UNUSED(eye), int mx, int my, float r_col[3])
+/**
+ * \brief get the color from the screen.
+ *
+ * Special check for image or nodes where we MAY have HDR pixels which don't display.
+ */
+static void eyedropper_color_sample_fl(bContext *C, Eyedropper *UNUSED(eye), int mx, int my, float r_col[3])
{
+
+ /* we could use some clever */
+ wmWindow *win = CTX_wm_window(C);
+ ScrArea *sa;
+ for (sa = win->screen->areabase.first; sa; sa = sa->next) {
+ if (BLI_rcti_isect_pt(&sa->totrct, mx, my)) {
+ if (sa->spacetype == SPACE_IMAGE) {
+ ARegion *ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW);
+ if (BLI_rcti_isect_pt(&ar->winrct, mx, my)) {
+ SpaceImage *sima = sa->spacedata.first;
+ int mval[2] = {mx - ar->winrct.xmin,
+ my - ar->winrct.ymin};
+
+ if (ED_space_image_color_sample(sima, ar, mval, r_col)) {
+ return;
+ }
+ }
+ }
+ else if (sa->spacetype == SPACE_NODE) {
+ ARegion *ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW);
+ if (BLI_rcti_isect_pt(&ar->winrct, mx, my)) {
+ SpaceNode *snode = sa->spacedata.first;
+ int mval[2] = {mx - ar->winrct.xmin,
+ my - ar->winrct.ymin};
+
+ if (ED_space_node_color_sample(snode, ar, mval, r_col)) {
+ return;
+ }
+ }
+ }
+ else if (sa->spacetype == SPACE_CLIP) {
+ ARegion *ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW);
+ if (BLI_rcti_isect_pt(&ar->winrct, mx, my)) {
+ SpaceClip *sc = sa->spacedata.first;
+ int mval[2] = {mx - ar->winrct.xmin,
+ my - ar->winrct.ymin};
+
+ if (ED_space_clip_color_sample(sc, ar, mval, r_col)) {
+ return;
+ }
+ }
+ }
+ }
+ }
+
+ /* fallback to simple opengl picker */
glReadBuffer(GL_FRONT);
glReadPixels(mx, my, 1, 1, GL_RGB, GL_FLOAT, r_col);
glReadBuffer(GL_BACK);
@@ -139,9 +199,10 @@ static void eyedropper_color_set(bContext *C, Eyedropper *eye, const float col[3
/* to maintain alpha */
RNA_property_float_get_array(&eye->ptr, eye->prop, col_conv);
- /* convert from screen (srgb) space to linear rgb space */
- if (eye->do_color_management) {
- srgb_to_linearrgb_v3_v3(col_conv, col);
+ /* convert from display space to linear rgb space */
+ if (eye->display) {
+ copy_v3_v3(col_conv, col);
+ IMB_colormanagement_display_to_scene_linear_v3(col_conv, eye->display);
}
else {
copy_v3_v3(col_conv, col);
@@ -155,7 +216,7 @@ static void eyedropper_color_set(bContext *C, Eyedropper *eye, const float col[3
/* set sample from accumulated values */
static void eyedropper_color_set_accum(bContext *C, Eyedropper *eye)
{
- float col[4];
+ float col[3];
mul_v3_v3fl(col, eye->accum_col, 1.0f / (float)eye->accum_tot);
eyedropper_color_set(C, eye, col);
}
@@ -164,14 +225,14 @@ static void eyedropper_color_set_accum(bContext *C, Eyedropper *eye)
static void eyedropper_color_sample(bContext *C, Eyedropper *eye, int mx, int my)
{
float col[3];
- eyedropper_color_sample_fl(eye, mx, my, col);
+ eyedropper_color_sample_fl(C, eye, mx, my, col);
eyedropper_color_set(C, eye, col);
}
-static void eyedropper_color_sample_accum(Eyedropper *eye, int mx, int my)
+static void eyedropper_color_sample_accum(bContext *C, Eyedropper *eye, int mx, int my)
{
float col[3];
- eyedropper_color_sample_fl(eye, mx, my, col);
+ eyedropper_color_sample_fl(C, eye, mx, my, col);
/* delay linear conversion */
add_v3_v3(eye->accum_col, col);
eye->accum_tot++;
@@ -200,13 +261,13 @@ static int eyedropper_modal(bContext *C, wmOperator *op, wmEvent *event)
else if (event->val == KM_PRESS) {
/* enable accum and make first sample */
eye->accum_start = TRUE;
- eyedropper_color_sample_accum(eye, event->x, event->y);
+ eyedropper_color_sample_accum(C, eye, event->x, event->y);
}
break;
case MOUSEMOVE:
if (eye->accum_start) {
/* button is pressed so keep sampling */
- eyedropper_color_sample_accum(eye, event->x, event->y);
+ eyedropper_color_sample_accum(C, eye, event->x, event->y);
eyedropper_color_set_accum(C, eye);
}
break;
@@ -214,7 +275,7 @@ static int eyedropper_modal(bContext *C, wmOperator *op, wmEvent *event)
if (event->val == KM_RELEASE) {
eye->accum_tot = 0;
zero_v3(eye->accum_col);
- eyedropper_color_sample_accum(eye, event->x, event->y);
+ eyedropper_color_sample_accum(C, eye, event->x, event->y);
eyedropper_color_set_accum(C, eye);
}
break;
@@ -686,10 +747,7 @@ static int ui_editsource_uibut_match(uiBut *but_a, uiBut *but_b)
/* this just needs to be a 'good-enough' comparison so we can know beyond
* reasonable doubt that these buttons are the same between redraws.
* if this fails it only means edit-source fails - campbell */
- if ((but_a->x1 == but_b->x1) &&
- (but_a->x2 == but_b->x2) &&
- (but_a->y1 == but_b->y1) &&
- (but_a->y2 == but_b->y2) &&
+ if (BLI_rctf_compare(&but_a->rect, &but_b->rect, FLT_EPSILON) &&
(but_a->type == but_b->type) &&
(but_a->rnaprop == but_b->rnaprop) &&
(but_a->optype == but_b->optype) &&
@@ -732,8 +790,6 @@ void UI_editsource_active_but_test(uiBut *but)
BLI_ghash_insert(ui_editsource_info->hash, but, but_store);
}
-/* editsource operator component */
-
static int editsource_text_edit(bContext *C, wmOperator *op,
char filepath[FILE_MAX], int line)
{
@@ -843,16 +899,182 @@ static int editsource_exec(bContext *C, wmOperator *op)
static void UI_OT_editsource(wmOperatorType *ot)
{
/* identifiers */
- ot->name = "Reports to Text Block";
+ ot->name = "Edit Source";
ot->idname = "UI_OT_editsource";
- ot->description = "Edit source code for a button";
+ ot->description = "Edit UI source code of the active button";
/* callbacks */
ot->exec = editsource_exec;
}
+/* ------------------------------------------------------------------------- */
+/* EditTranslation utility funcs and operator,
+ * Note: this includes utility functions and button matching checks.
+ * this only works in conjunction with a py operator! */
+
+static void edittranslation_find_po_file(const char *root, const char *uilng, char *path, const size_t maxlen)
+{
+ char tstr[32]; /* Should be more than enough! */
+
+ /* First, full lang code. */
+ BLI_snprintf(tstr, sizeof(tstr), "%s.po", uilng);
+ BLI_join_dirfile(path, maxlen, root, uilng);
+ BLI_join_dirfile(path, maxlen, path, tstr);
+ if (BLI_is_file(path))
+ return;
+
+ /* Now try without the second iso code part (_ES in es_ES). */
+ {
+ char *tc = NULL;
+ size_t szt = 0;
+ tstr[0] = '\0';
+
+ tc = strchr(uilng, '_');
+ if (tc) {
+ szt = tc - uilng;
+ if (szt < sizeof(tstr)) /* Paranoid, should always be true! */
+ BLI_strncpy(tstr, uilng, szt + 1); /* +1 for '\0' char! */
+ }
+ if (tstr[0]) {
+ /* Because of some codes like sr_SR@latin... */
+ tc = strchr(uilng, '@');
+ if (tc)
+ BLI_strncpy(tstr + szt, tc, sizeof(tstr) - szt);
+
+ BLI_join_dirfile(path, maxlen, root, tstr);
+ strcat(tstr, ".po");
+ BLI_join_dirfile(path, maxlen, path, tstr);
+ if (BLI_is_file(path))
+ return;
+ }
+ }
+
+ /* Else no po file! */
+ path[0] = '\0';
+}
+
+static int edittranslation_exec(bContext *C, wmOperator *op)
+{
+ uiBut *but = uiContextActiveButton(C);
+ int ret = OPERATOR_CANCELLED;
+
+ if (but) {
+ PointerRNA ptr;
+ char popath[FILE_MAX];
+ const char *root = U.i18ndir;
+ const char *uilng = BLF_lang_get();
+
+ const int bufs_nbr = 10;
+ uiStringInfo but_label = {BUT_GET_LABEL, NULL};
+ uiStringInfo rna_label = {BUT_GET_RNA_LABEL, NULL};
+ uiStringInfo enum_label = {BUT_GET_RNAENUM_LABEL, NULL};
+ uiStringInfo but_tip = {BUT_GET_TIP, NULL};
+ uiStringInfo rna_tip = {BUT_GET_RNA_TIP, NULL};
+ uiStringInfo enum_tip = {BUT_GET_RNAENUM_TIP, NULL};
+ uiStringInfo rna_struct = {BUT_GET_RNASTRUCT_IDENTIFIER, NULL};
+ uiStringInfo rna_prop = {BUT_GET_RNAPROP_IDENTIFIER, NULL};
+ uiStringInfo rna_enum = {BUT_GET_RNAENUM_IDENTIFIER, NULL};
+ uiStringInfo rna_ctxt = {BUT_GET_RNA_LABEL_CONTEXT, NULL};
+
+ if (!BLI_is_dir(root)) {
+ BKE_report(op->reports, RPT_ERROR, "Please set your User Preferences' \"Translation Branches "
+ "Directory\" path to a valid directory.");
+ return OPERATOR_CANCELLED;
+ }
+ if (!WM_operatortype_find(EDTSRC_I18N_OP_NAME, 0)) {
+ BKE_reportf(op->reports, RPT_ERROR, "Could not find operator \"%s\"! Please enable ui_translate addon "
+ "in the User Preferences.", EDTSRC_I18N_OP_NAME);
+ return OPERATOR_CANCELLED;
+ }
+ /* Try to find a valid po file for current language... */
+ edittranslation_find_po_file(root, uilng, popath, FILE_MAX);
+/* printf("po path: %s\n", popath);*/
+ if (popath[0] == '\0') {
+ BKE_reportf(op->reports, RPT_ERROR, "No valid po found for language '%s' under %s.", uilng, root);
+ return OPERATOR_CANCELLED;
+ }
+
+ uiButGetStrInfo(C, but, bufs_nbr, &but_label, &rna_label, &enum_label, &but_tip, &rna_tip, &enum_tip,
+ &rna_struct, &rna_prop, &rna_enum, &rna_ctxt);
+
+ WM_operator_properties_create(&ptr, EDTSRC_I18N_OP_NAME);
+ RNA_string_set(&ptr, "lang", uilng);
+ RNA_string_set(&ptr, "po_file", popath);
+ RNA_string_set(&ptr, "but_label", but_label.strinfo);
+ RNA_string_set(&ptr, "rna_label", rna_label.strinfo);
+ RNA_string_set(&ptr, "enum_label", enum_label.strinfo);
+ RNA_string_set(&ptr, "but_tip", but_tip.strinfo);
+ RNA_string_set(&ptr, "rna_tip", rna_tip.strinfo);
+ RNA_string_set(&ptr, "enum_tip", enum_tip.strinfo);
+ RNA_string_set(&ptr, "rna_struct", rna_struct.strinfo);
+ RNA_string_set(&ptr, "rna_prop", rna_prop.strinfo);
+ RNA_string_set(&ptr, "rna_enum", rna_enum.strinfo);
+ RNA_string_set(&ptr, "rna_ctxt", rna_ctxt.strinfo);
+ ret = WM_operator_name_call(C, EDTSRC_I18N_OP_NAME, WM_OP_INVOKE_DEFAULT, &ptr);
+
+ /* Clean up */
+ if (but_label.strinfo)
+ MEM_freeN(but_label.strinfo);
+ if (rna_label.strinfo)
+ MEM_freeN(rna_label.strinfo);
+ if (enum_label.strinfo)
+ MEM_freeN(enum_label.strinfo);
+ if (but_tip.strinfo)
+ MEM_freeN(but_tip.strinfo);
+ if (rna_tip.strinfo)
+ MEM_freeN(rna_tip.strinfo);
+ if (enum_tip.strinfo)
+ MEM_freeN(enum_tip.strinfo);
+ if (rna_struct.strinfo)
+ MEM_freeN(rna_struct.strinfo);
+ if (rna_prop.strinfo)
+ MEM_freeN(rna_prop.strinfo);
+ if (rna_enum.strinfo)
+ MEM_freeN(rna_enum.strinfo);
+ if (rna_ctxt.strinfo)
+ MEM_freeN(rna_ctxt.strinfo);
+
+ return ret;
+ }
+ else {
+ BKE_report(op->reports, RPT_ERROR, "Active button not found");
+ return OPERATOR_CANCELLED;
+ }
+}
+
+static void UI_OT_edittranslation_init(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Edit Translation";
+ ot->idname = "UI_OT_edittranslation_init";
+ ot->description = "Edit i18n in current language for the active button";
+
+ /* callbacks */
+ ot->exec = edittranslation_exec;
+}
+
#endif /* WITH_PYTHON */
+static int reloadtranslation_exec(bContext *UNUSED(C), wmOperator *UNUSED(op))
+{
+ BLF_lang_init();
+ BLF_cache_clear();
+ BLF_lang_set(NULL);
+ UI_reinit_font();
+ return OPERATOR_FINISHED;
+}
+
+static void UI_OT_reloadtranslation(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Reload Translation";
+ ot->idname = "UI_OT_reloadtranslation";
+ ot->description = "Force a full reload of UI translation";
+
+ /* callbacks */
+ ot->exec = reloadtranslation_exec;
+}
+
/* ********************************************************* */
/* Registration */
@@ -863,10 +1085,12 @@ void UI_buttons_operatortypes(void)
WM_operatortype_append(UI_OT_copy_data_path_button);
WM_operatortype_append(UI_OT_reset_default_button);
WM_operatortype_append(UI_OT_copy_to_selected_button);
- WM_operatortype_append(UI_OT_reports_to_textblock); // XXX: temp?
+ WM_operatortype_append(UI_OT_reports_to_textblock); /* XXX: temp? */
#ifdef WITH_PYTHON
WM_operatortype_append(UI_OT_editsource);
+ WM_operatortype_append(UI_OT_edittranslation_init);
#endif
+ WM_operatortype_append(UI_OT_reloadtranslation);
}
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c
index 7f9a998e6d0..49e96bea6c6 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -315,13 +315,13 @@ static void ui_offset_panel_block(uiBlock *block)
ofsy = block->panel->sizey - style->panelspace;
for (but = block->buttons.first; but; but = but->next) {
- but->y1 += ofsy;
- but->y2 += ofsy;
+ but->rect.ymin += ofsy;
+ but->rect.ymax += ofsy;
}
- block->maxx = block->panel->sizex;
- block->maxy = block->panel->sizey;
- block->minx = block->miny = 0.0;
+ block->rect.xmax = block->panel->sizex;
+ block->rect.ymax = block->panel->sizey;
+ block->rect.xmin = block->rect.ymin = 0.0;
}
/**************************** drawing *******************************/
@@ -357,14 +357,14 @@ void UI_DrawTriIcon(float x, float y, char dir)
}
/* triangle 'icon' inside rect */
-static void ui_draw_tria_rect(rctf *rect, char dir)
+static void ui_draw_tria_rect(const rctf *rect, char dir)
{
if (dir == 'h') {
- float half = 0.5f * (rect->ymax - rect->ymin);
+ float half = 0.5f * BLI_rctf_size_y(rect);
ui_draw_anti_tria(rect->xmin, rect->ymin, rect->xmin, rect->ymax, rect->xmax, rect->ymin + half);
}
else {
- float half = 0.5f * (rect->xmax - rect->xmin);
+ float half = 0.5f * BLI_rctf_size_x(rect);
ui_draw_anti_tria(rect->xmin, rect->ymax, rect->xmax, rect->ymax, rect->xmin + half, rect->ymin);
}
}
@@ -422,7 +422,7 @@ static void ui_draw_panel_scalewidget(rcti *rect)
glDisable(GL_BLEND);
}
-static void ui_draw_panel_dragwidget(rctf *rect)
+static void ui_draw_panel_dragwidget(const rctf *rect)
{
float xmin, xmax, dx;
float ymin, ymax, dy;
@@ -479,12 +479,12 @@ static void ui_draw_aligned_panel_header(uiStyle *style, uiBlock *block, rcti *r
}
}
-static void rectf_scale(rctf *rect, float scale)
+static void rectf_scale(rctf *rect, const float scale)
{
- float centx = 0.5f * (rect->xmin + rect->xmax);
- float centy = 0.5f * (rect->ymin + rect->ymax);
- float sizex = 0.5f * scale * (rect->xmax - rect->xmin);
- float sizey = 0.5f * scale * (rect->ymax - rect->ymin);
+ float centx = BLI_rctf_cent_x(rect);
+ float centy = BLI_rctf_cent_y(rect);
+ float sizex = BLI_rctf_size_x(rect) * 0.5f * scale;
+ float sizey = BLI_rctf_size_y(rect) * 0.5f * scale;
rect->xmin = centx - sizex;
rect->xmax = centx + sizex;
@@ -547,7 +547,7 @@ void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, rcti *rect)
/* itemrect smaller */
itemrect.xmax = headrect.xmax - 5.0f / block->aspect;
- itemrect.xmin = itemrect.xmax - (headrect.ymax - headrect.ymin);
+ itemrect.xmin = itemrect.xmax - BLI_rcti_size_y(&headrect);
itemrect.ymin = headrect.ymin;
itemrect.ymax = headrect.ymax;
@@ -596,7 +596,7 @@ void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, rcti *rect)
/* itemrect smaller */
itemrect.xmin = headrect.xmin + 5.0f / block->aspect;
- itemrect.xmax = itemrect.xmin + (headrect.ymax - headrect.ymin);
+ itemrect.xmax = itemrect.xmin + BLI_rcti_size_y(&headrect);
itemrect.ymin = headrect.ymin;
itemrect.ymax = headrect.ymax;
@@ -831,14 +831,15 @@ static void ui_do_animate(const bContext *C, Panel *panel)
float fac;
fac = (PIL_check_seconds_timer() - data->starttime) / ANIMATION_TIME;
- fac = sqrt(fac);
- fac = MIN2(fac, 1.0f);
+ fac = minf(sqrt(fac), 1.0f);
/* for max 1 second, interpolate positions */
- if (uiAlignPanelStep(sa, ar, fac, 0))
+ if (uiAlignPanelStep(sa, ar, fac, 0)) {
ED_region_tag_redraw(ar);
- else
+ }
+ else {
fac = 1.0f;
+ }
if (fac >= 1.0f) {
panel_activate_state(C, panel, PANEL_STATE_EXIT);
@@ -874,11 +875,11 @@ void uiEndPanels(const bContext *C, ARegion *ar, int *x, int *y)
/* consistency; are panels not made, whilst they have tabs */
for (panot = ar->panels.first; panot; panot = panot->next) {
- if ((panot->runtime_flag & PNL_ACTIVE) == 0) { // not made
+ if ((panot->runtime_flag & PNL_ACTIVE) == 0) { /* not made */
for (panew = ar->panels.first; panew; panew = panew->next) {
if ((panew->runtime_flag & PNL_ACTIVE)) {
- if (panew->paneltab == panot) { // panew is tab in notmade pa
+ if (panew->paneltab == panot) { /* panew is tab in notmade pa */
break;
}
}
@@ -892,7 +893,7 @@ void uiEndPanels(const bContext *C, ARegion *ar, int *x, int *y)
}
panot->paneltab = panew;
panew->paneltab = NULL;
- ED_region_tag_redraw(ar); // the buttons panew were not made
+ ED_region_tag_redraw(ar); /* the buttons panew were not made */
}
}
}
@@ -978,14 +979,14 @@ static void ui_do_drag(const bContext *C, wmEvent *event, Panel *panel)
short align = panel_aligned(sa, ar), dx = 0, dy = 0;
/* first clip for window, no dragging outside */
- if (!BLI_in_rcti(&ar->winrct, event->x, event->y))
+ if (!BLI_rcti_isect_pt_v(&ar->winrct, &event->x))
return;
dx = (event->x - data->startx) & ~(PNL_GRID - 1);
dy = (event->y - data->starty) & ~(PNL_GRID - 1);
- dx *= (float)(ar->v2d.cur.xmax - ar->v2d.cur.xmin) / (float)(ar->winrct.xmax - ar->winrct.xmin);
- dy *= (float)(ar->v2d.cur.ymax - ar->v2d.cur.ymin) / (float)(ar->winrct.ymax - ar->winrct.ymin);
+ dx *= (float)BLI_rctf_size_x(&ar->v2d.cur) / (float)BLI_rcti_size_x(&ar->winrct);
+ dy *= (float)BLI_rctf_size_y(&ar->v2d.cur) / (float)BLI_rcti_size_y(&ar->winrct);
if (data->state == PANEL_STATE_DRAG_SCALE) {
panel->sizex = MAX2(data->startsizex + dx, UI_PANEL_MINX);
@@ -1032,22 +1033,22 @@ static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, in
else if (event == AKEY)
button = 1;
else if (block->panel->flag & PNL_CLOSEDX) {
- if (my >= block->maxy) button = 1;
+ if (my >= block->rect.ymax) button = 1;
}
else if (block->panel->control & UI_PNL_CLOSE) {
/* whole of header can be used to collapse panel (except top-right corner) */
- if (mx <= block->maxx - 8 - PNL_ICON) button = 2;
- //else if (mx <= block->minx + 10 + 2 * PNL_ICON + 2) button = 1;
+ if (mx <= block->rect.xmax - 8 - PNL_ICON) button = 2;
+ //else if (mx <= block->rect.xmin + 10 + 2 * PNL_ICON + 2) button = 1;
}
- else if (mx <= block->maxx - PNL_ICON - 12) {
+ else if (mx <= block->rect.xmax - PNL_ICON - 12) {
button = 1;
}
if (button) {
- if (button == 2) { // close
+ if (button == 2) { /* close */
ED_region_tag_redraw(ar);
}
- else { // collapse
+ else { /* collapse */
if (block->panel->flag & PNL_CLOSED) {
block->panel->flag &= ~PNL_CLOSED;
/* snap back up so full panel aligns with screen edge */
@@ -1077,7 +1078,7 @@ static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, in
else
ED_region_tag_redraw(ar);
}
- else if (mx <= (block->maxx - PNL_ICON - 12) + PNL_ICON + 2) {
+ else if (mx <= (block->rect.xmax - PNL_ICON - 12) + PNL_ICON + 2) {
panel_activate_state(C, block->panel, PANEL_STATE_DRAG);
}
}
@@ -1105,18 +1106,18 @@ int ui_handler_panel_region(bContext *C, wmEvent *event)
if (!pa || pa->paneltab != NULL)
continue;
- if (pa->type && pa->type->flag & PNL_NO_HEADER) // XXX - accessed freed panels when scripts reload, need to fix.
+ if (pa->type && pa->type->flag & PNL_NO_HEADER) /* XXX - accessed freed panels when scripts reload, need to fix. */
continue;
- if (block->minx <= mx && block->maxx >= mx)
- if (block->miny <= my && block->maxy + PNL_HEADER >= my)
+ if (block->rect.xmin <= mx && block->rect.xmax >= mx)
+ if (block->rect.ymin <= my && block->rect.ymax + PNL_HEADER >= my)
inside = 1;
if (inside && event->val == KM_PRESS) {
if (event->type == AKEY && !ELEM4(KM_MOD_FIRST, event->ctrl, event->oskey, event->shift, event->alt)) {
if (pa->flag & PNL_CLOSEDY) {
- if ((block->maxy <= my) && (block->maxy + PNL_HEADER >= my))
+ if ((block->rect.ymax <= my) && (block->rect.ymax + PNL_HEADER >= my))
ui_handle_panel_header(C, block, mx, my, event->type);
}
else
@@ -1133,15 +1134,15 @@ int ui_handler_panel_region(bContext *C, wmEvent *event)
if (inside) {
/* clicked at panel header? */
if (pa->flag & PNL_CLOSEDX) {
- if (block->minx <= mx && block->minx + PNL_HEADER >= mx)
+ if (block->rect.xmin <= mx && block->rect.xmin + PNL_HEADER >= mx)
inside_header = 1;
}
- else if ((block->maxy <= my) && (block->maxy + PNL_HEADER >= my)) {
+ else if ((block->rect.ymax <= my) && (block->rect.ymax + PNL_HEADER >= my)) {
inside_header = 1;
}
else if (pa->control & UI_PNL_SCALE) {
- if (block->maxx - PNL_HEADER <= mx)
- if (block->miny + PNL_HEADER >= my)
+ if (block->rect.xmax - PNL_HEADER <= mx)
+ if (block->rect.ymin + PNL_HEADER >= my)
inside_scale = 1;
}
@@ -1176,7 +1177,7 @@ int ui_handler_panel_region(bContext *C, wmEvent *event)
#endif
}
else if (event->type == PADPLUSKEY || event->type == PADMINUS) {
-#if 0 // XXX make float panel exception?
+#if 0 /* XXX make float panel exception? */
int zoom = 0;
/* if panel is closed, only zoom if mouse is over the header */
@@ -1274,7 +1275,7 @@ static void panel_activate_state(const bContext *C, Panel *pa, uiHandlePanelStat
* Aligorith, 2009Sep
*/
//test_add_new_tabs(ar); // also copies locations of tabs in dragged panel
- check_panel_overlap(ar, NULL); // clears
+ check_panel_overlap(ar, NULL); /* clears */
}
pa->flag &= ~PNL_SELECT;
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index 40f28de50fa..4dafb4b2d4b 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -66,9 +66,10 @@
#include "ED_screen.h"
+#include "IMB_colormanagement.h"
+
#include "interface_intern.h"
-#define MENU_SEPR_HEIGHT 6
#define B_NOP -1
#define MENU_SHADOW_SIDE 8
#define MENU_SHADOW_BOTTOM 10
@@ -151,7 +152,7 @@ static void menudata_free(MenuData *md)
* if %xNN is given then NN is the return value if
* that option is selected otherwise the return value
* is the index of the option (starting with 1). %l
- * indicates a seperator, sss%l indicates a label and
+ * indicates a separator, sss%l indicates a label and
* new column.
*
* \param str String to be parsed.
@@ -391,7 +392,7 @@ static void ui_tooltip_region_draw_cb(const bContext *UNUSED(C), ARegion *ar)
/* draw text */
uiStyleFontSet(&data->fstyle);
- bbox.ymax = bbox.ymax - 0.5f * ((bbox.ymax - bbox.ymin) - data->toth);
+ bbox.ymax = bbox.ymax - 0.5f * (BLI_rcti_size_y(&bbox) - data->toth);
bbox.ymin = bbox.ymax - data->lineh;
for (i = 0; i < data->totline; i++) {
@@ -417,11 +418,20 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
static ARegionType type;
ARegion *ar;
uiTooltipData *data;
- IDProperty *prop;
+/* IDProperty *prop;*/
char buf[512];
float fonth, fontw, aspect = but->block->aspect;
- float x1f, x2f, y1f, y2f;
- int x1, x2, y1, y2, winx, winy, ofsx, ofsy, w, h, a;
+ int winx, winy, ofsx, ofsy, w, h, a;
+ rctf rect_fl;
+ rcti rect_i;
+
+ const int nbr_info = 6;
+ uiStringInfo but_tip = {BUT_GET_TIP, NULL};
+ uiStringInfo enum_label = {BUT_GET_RNAENUM_LABEL, NULL};
+ uiStringInfo enum_tip = {BUT_GET_RNAENUM_TIP, NULL};
+ uiStringInfo op_keymap = {BUT_GET_OP_KEYMAP, NULL};
+ uiStringInfo rna_struct = {BUT_GET_RNASTRUCT_IDENTIFIER, NULL};
+ uiStringInfo rna_prop = {BUT_GET_RNAPROP_IDENTIFIER, NULL};
if (but->flag & UI_BUT_NO_TOOLTIP)
return NULL;
@@ -429,8 +439,11 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
/* create tooltip data */
data = MEM_callocN(sizeof(uiTooltipData), "uiTooltipData");
+ uiButGetStrInfo(C, but, nbr_info, &but_tip, &enum_label, &enum_tip, &op_keymap, &rna_struct, &rna_prop);
+
/* special case, enum rna buttons only have enum item description,
* use general enum description too before the specific one */
+#if 0
if (but->rnaprop && RNA_property_type(but->rnaprop) == PROP_ENUM) {
const char *descr = RNA_property_description(but->rnaprop);
if (descr && descr[0]) {
@@ -441,7 +454,7 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
if (ELEM(but->type, ROW, MENU)) {
EnumPropertyItem *item;
- int i, totitem, free;
+ int totitem, free;
int value = (but->type == ROW) ? (int)but->hardmax : (int)ui_get_but_val(but);
RNA_property_enum_items_gettexted(C, &but->rnapoin, but->rnaprop, &item, &totitem, &free);
@@ -469,7 +482,23 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
data->color_id[data->totline] = UI_TIP_LC_MAIN;
data->totline++;
}
+#else
+ /* Tip */
+ if (but_tip.strinfo) {
+ BLI_strncpy(data->lines[data->totline], but_tip.strinfo, sizeof(data->lines[0]));
+ data->color_id[data->totline] = UI_TIP_LC_MAIN;
+ data->totline++;
+ }
+ /* Enum item label & tip */
+ if (enum_label.strinfo && enum_tip.strinfo) {
+ BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]),
+ "%s: %s", enum_label.strinfo, enum_tip.strinfo);
+ data->color_id[data->totline] = UI_TIP_LC_SUBMENU;
+ data->totline++;
+ }
+#endif
+#if 0
if (but->optype && !(but->block->flag & UI_BLOCK_LOOP)) {
/* operator keymap (not menus, they already have it) */
prop = (but->opptr) ? but->opptr->data : NULL;
@@ -482,6 +511,14 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
data->totline++;
}
}
+#else
+ /* Op shortcut */
+ if (op_keymap.strinfo) {
+ BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), TIP_("Shortcut: %s"), op_keymap.strinfo);
+ data->color_id[data->totline] = UI_TIP_LC_NORMAL;
+ data->totline++;
+ }
+#endif
if (ELEM3(but->type, TEX, IDPOIN, SEARCH_MENU)) {
/* full string */
@@ -515,7 +552,7 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
data->totline++;
}
}
-
+#if 0
/* rna info */
if ((U.flag & USER_TOOLTIPS_PYTHON) == 0) {
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), TIP_("Python: %s.%s"),
@@ -523,7 +560,7 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
data->color_id[data->totline] = UI_TIP_LC_PYTHON;
data->totline++;
}
-
+#endif
if (but->rnapoin.id.data) {
ID *id = but->rnapoin.id.data;
if (id->lib && id->lib->name) {
@@ -538,6 +575,9 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
char *str;
opptr = uiButGetOperatorPtrRNA(but); /* allocated when needed, the button owns it */
+ /* so the context is passed to itemf functions (some py itemf functions use it) */
+ WM_operator_properties_sanitize(opptr, FALSE);
+
str = WM_operator_pystring(C, but->optype, opptr, 0);
/* operator info */
@@ -558,10 +598,11 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
if (poll_msg) {
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), TIP_("Disabled: %s"), poll_msg);
data->color_id[data->totline] = UI_TIP_LC_ALERT; /* alert */
- data->totline++;
+ data->totline++;
}
}
}
+#if 0
else if (ELEM(but->type, MENU, PULLDOWN)) {
if ((U.flag & USER_TOOLTIPS_PYTHON) == 0) {
MenuType *mt = uiButGetMenuType(but);
@@ -571,8 +612,34 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
data->totline++;
}
}
-
}
+#else
+ if ((U.flag & USER_TOOLTIPS_PYTHON) == 0 && !but->optype && rna_struct.strinfo) {
+ if (rna_prop.strinfo)
+ /* Struct and prop */
+ BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]),
+ TIP_("Python: %s.%s"), rna_struct.strinfo, rna_prop.strinfo);
+ else
+ /* Only struct (e.g. menus) */
+ BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), TIP_("Python: %s"), rna_struct.strinfo);
+ data->color_id[data->totline] = UI_TIP_LC_PYTHON;
+ data->totline++;
+ }
+#endif
+
+ /* Free strinfo's... */
+ if (but_tip.strinfo)
+ MEM_freeN(but_tip.strinfo);
+ if (enum_label.strinfo)
+ MEM_freeN(enum_label.strinfo);
+ if (enum_tip.strinfo)
+ MEM_freeN(enum_tip.strinfo);
+ if (op_keymap.strinfo)
+ MEM_freeN(op_keymap.strinfo);
+ if (rna_struct.strinfo)
+ MEM_freeN(rna_struct.strinfo);
+ if (rna_prop.strinfo)
+ MEM_freeN(rna_prop.strinfo);
assert(data->totline < MAX_TOOLTIP_LINES);
@@ -620,62 +687,59 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
ofsx = (but->block->panel) ? but->block->panel->ofsx : 0;
ofsy = (but->block->panel) ? but->block->panel->ofsy : 0;
- x1f = (but->x1 + but->x2) * 0.5f + ofsx - (TIP_BORDER_X * aspect);
- x2f = x1f + fontw + (TIP_BORDER_X * aspect);
- y2f = but->y1 + ofsy - (TIP_BORDER_Y * aspect);
- y1f = y2f - fonth * aspect - (TIP_BORDER_Y * aspect);
+ rect_fl.xmin = (but->rect.xmin + but->rect.xmax) * 0.5f + ofsx - (TIP_BORDER_X * aspect);
+ rect_fl.xmax = rect_fl.xmin + fontw + (TIP_BORDER_X * aspect);
+ rect_fl.ymax = but->rect.ymin + ofsy - (TIP_BORDER_Y * aspect);
+ rect_fl.ymin = rect_fl.ymax - fonth * aspect - (TIP_BORDER_Y * aspect);
#undef TIP_MARGIN_Y
#undef TIP_BORDER_X
#undef TIP_BORDER_Y
/* copy to int, gets projected if possible too */
- x1 = x1f; y1 = y1f; x2 = x2f; y2 = y2f;
+ BLI_rcti_rctf_copy(&rect_i, &rect_fl);
if (butregion) {
/* XXX temp, region v2ds can be empty still */
if (butregion->v2d.cur.xmin != butregion->v2d.cur.xmax) {
- UI_view2d_to_region_no_clip(&butregion->v2d, x1f, y1f, &x1, &y1);
- UI_view2d_to_region_no_clip(&butregion->v2d, x2f, y2f, &x2, &y2);
+ UI_view2d_to_region_no_clip(&butregion->v2d, rect_fl.xmin, rect_fl.ymin, &rect_i.xmin, &rect_i.ymin);
+ UI_view2d_to_region_no_clip(&butregion->v2d, rect_fl.xmax, rect_fl.ymax, &rect_i.xmax, &rect_i.ymax);
}
- x1 += butregion->winrct.xmin;
- x2 += butregion->winrct.xmin;
- y1 += butregion->winrct.ymin;
- y2 += butregion->winrct.ymin;
+ BLI_rcti_translate(&rect_i, butregion->winrct.xmin, butregion->winrct.ymin);
}
wm_window_get_size(CTX_wm_window(C), &winx, &winy);
- if (x2 > winx) {
+ if (rect_i.xmax > winx) {
/* super size */
- if (x2 > winx + x1) {
- x2 = winx;
- x1 = 0;
+ if (rect_i.xmax > winx + rect_i.xmin) {
+ rect_i.xmax = winx;
+ rect_i.xmin = 0;
}
else {
- x1 -= x2 - winx;
- x2 = winx;
+ rect_i.xmin -= rect_i.xmax - winx;
+ rect_i.xmax = winx;
}
}
/* ensure at least 5 px above screen bounds
* 25 is just a guess to be above the menu item */
- if (y1 < 5) {
- y2 += (-y1) + 30;
- y1 = 30;
+ if (rect_i.ymin < 5) {
+ rect_i.ymax += (-rect_i.ymin) + 30;
+ rect_i.ymin = 30;
}
/* widget rect, in region coords */
data->bbox.xmin = MENU_SHADOW_SIDE;
- data->bbox.xmax = x2 - x1 + MENU_SHADOW_SIDE;
+ data->bbox.xmax = BLI_rcti_size_x(&rect_i) + MENU_SHADOW_SIDE;
data->bbox.ymin = MENU_SHADOW_BOTTOM;
- data->bbox.ymax = y2 - y1 + MENU_SHADOW_BOTTOM;
+ data->bbox.ymax = BLI_rcti_size_y(&rect_i) + MENU_SHADOW_BOTTOM;
/* region bigger for shadow */
- ar->winrct.xmin = x1 - MENU_SHADOW_SIDE;
- ar->winrct.xmax = x2 + MENU_SHADOW_SIDE;
- ar->winrct.ymin = y1 - MENU_SHADOW_BOTTOM;
- ar->winrct.ymax = y2 + MENU_TOP;
+ ar->winrct.xmin = rect_i.xmin - MENU_SHADOW_SIDE;
+ ar->winrct.xmax = rect_i.xmax + MENU_SHADOW_SIDE;
+ ar->winrct.ymin = rect_i.ymin - MENU_SHADOW_BOTTOM;
+ ar->winrct.ymax = rect_i.ymax + MENU_TOP;
/* adds subwindow */
ED_region_init(C, ar);
@@ -802,8 +866,8 @@ static void ui_searchbox_butrect(rcti *rect, uiSearchboxData *data, int itemnr)
{
/* thumbnail preview */
if (data->preview) {
- int buth = (data->bbox.ymax - data->bbox.ymin - 2 * MENU_TOP) / data->prv_rows;
- int butw = (data->bbox.xmax - data->bbox.xmin) / data->prv_cols;
+ int butw = BLI_rcti_size_x(&data->bbox) / data->prv_cols;
+ int buth = (BLI_rcti_size_y(&data->bbox) - 2 * MENU_TOP) / data->prv_rows;
int row, col;
*rect = data->bbox;
@@ -819,7 +883,7 @@ static void ui_searchbox_butrect(rcti *rect, uiSearchboxData *data, int itemnr)
}
/* list view */
else {
- int buth = (data->bbox.ymax - data->bbox.ymin - 2 * MENU_TOP) / SEARCH_ITEMS;
+ int buth = (BLI_rcti_size_y(&data->bbox) - 2 * MENU_TOP) / SEARCH_ITEMS;
*rect = data->bbox;
rect->xmin = data->bbox.xmin + 3.0f;
@@ -836,7 +900,7 @@ int ui_searchbox_inside(ARegion *ar, int x, int y)
{
uiSearchboxData *data = ar->regiondata;
- return(BLI_in_rcti(&data->bbox, x - ar->winrct.xmin, y - ar->winrct.ymin));
+ return(BLI_rcti_isect_pt(&data->bbox, x - ar->winrct.xmin, y - ar->winrct.ymin));
}
/* string validated to be of correct length (but->hardmax) */
@@ -872,13 +936,13 @@ void ui_searchbox_event(bContext *C, ARegion *ar, uiBut *but, wmEvent *event)
ui_searchbox_select(C, ar, but, 1);
break;
case MOUSEMOVE:
- if (BLI_in_rcti(&ar->winrct, event->x, event->y)) {
+ if (BLI_rcti_isect_pt(&ar->winrct, event->x, event->y)) {
rcti rect;
int a;
for (a = 0; a < data->items.totitem; a++) {
ui_searchbox_butrect(&rect, data, a);
- if (BLI_in_rcti(&rect, event->x - ar->winrct.xmin, event->y - ar->winrct.ymin)) {
+ if (BLI_rcti_isect_pt(&rect, event->x - ar->winrct.xmin, event->y - ar->winrct.ymin)) {
if (data->active != a + 1) {
data->active = a + 1;
ui_searchbox_select(C, ar, but, 0);
@@ -1032,13 +1096,13 @@ static void ui_searchbox_region_draw_cb(const bContext *UNUSED(C), ARegion *ar)
if (data->items.more) {
ui_searchbox_butrect(&rect, data, data->items.maxitem - 1);
glEnable(GL_BLEND);
- UI_icon_draw((rect.xmax - rect.xmin) / 2, rect.ymin - 9, ICON_TRIA_DOWN);
+ UI_icon_draw((BLI_rcti_size_x(&rect)) / 2, rect.ymin - 9, ICON_TRIA_DOWN);
glDisable(GL_BLEND);
}
if (data->items.offset) {
ui_searchbox_butrect(&rect, data, 0);
glEnable(GL_BLEND);
- UI_icon_draw((rect.xmax - rect.xmin) / 2, rect.ymax - 7, ICON_TRIA_UP);
+ UI_icon_draw((BLI_rcti_size_x(&rect)) / 2, rect.ymax - 7, ICON_TRIA_UP);
glDisable(GL_BLEND);
}
}
@@ -1069,8 +1133,10 @@ ARegion *ui_searchbox_create(bContext *C, ARegion *butregion, uiBut *but)
ARegion *ar;
uiSearchboxData *data;
float aspect = but->block->aspect;
- float x1f, x2f, y1f, y2f;
- int x1, x2, y1, y2, winx, winy, ofsx, ofsy;
+ rctf rect_fl;
+ rcti rect_i;
+ int winx, winy, ofsx, ofsy;
+ int i;
/* create area region */
ar = ui_add_temporary_region(CTX_wm_screen(C));
@@ -1111,82 +1177,78 @@ ARegion *ui_searchbox_create(bContext *C, ARegion *butregion, uiBut *but)
/* widget rect, in region coords */
data->bbox.xmin = MENU_SHADOW_SIDE;
- data->bbox.xmax = (ar->winrct.xmax - ar->winrct.xmin) - MENU_SHADOW_SIDE;
+ data->bbox.xmax = BLI_rcti_size_x(&ar->winrct) - MENU_SHADOW_SIDE;
data->bbox.ymin = MENU_SHADOW_BOTTOM;
- data->bbox.ymax = (ar->winrct.ymax - ar->winrct.ymin) - MENU_SHADOW_BOTTOM;
+ data->bbox.ymax = BLI_rcti_size_y(&ar->winrct) - MENU_SHADOW_BOTTOM;
/* check if button is lower half */
- if (but->y2 < (but->block->miny + but->block->maxy) / 2) {
- data->bbox.ymin += (but->y2 - but->y1);
+ if (but->rect.ymax < BLI_rctf_cent_y(&but->block->rect)) {
+ data->bbox.ymin += BLI_rctf_size_y(&but->rect);
}
else {
- data->bbox.ymax -= (but->y2 - but->y1);
+ data->bbox.ymax -= BLI_rctf_size_y(&but->rect);
}
}
else {
- x1f = but->x1 - 5; /* align text with button */
- x2f = but->x2 + 5; /* symmetrical */
- y2f = but->y1;
- y1f = y2f - uiSearchBoxhHeight();
+ rect_fl.xmin = but->rect.xmin - 5; /* align text with button */
+ rect_fl.xmax = but->rect.xmax + 5; /* symmetrical */
+ rect_fl.ymax = but->rect.ymin;
+ rect_fl.ymin = rect_fl.ymax - uiSearchBoxhHeight();
ofsx = (but->block->panel) ? but->block->panel->ofsx : 0;
ofsy = (but->block->panel) ? but->block->panel->ofsy : 0;
- x1f += ofsx;
- x2f += ofsx;
- y1f += ofsy;
- y2f += ofsy;
+ BLI_rctf_translate(&rect_fl, ofsx, ofsy);
/* minimal width */
- if (x2f - x1f < 150) x2f = x1f + 150; // XXX arbitrary
+ if (BLI_rctf_size_x(&rect_fl) < 150) {
+ rect_fl.xmax = rect_fl.xmin + 150; /* XXX arbitrary */
+ }
/* copy to int, gets projected if possible too */
- x1 = x1f; y1 = y1f; x2 = x2f; y2 = y2f;
+ BLI_rcti_rctf_copy(&rect_i, &rect_fl);
if (butregion->v2d.cur.xmin != butregion->v2d.cur.xmax) {
- UI_view2d_to_region_no_clip(&butregion->v2d, x1f, y1f, &x1, &y1);
- UI_view2d_to_region_no_clip(&butregion->v2d, x2f, y2f, &x2, &y2);
+ UI_view2d_to_region_no_clip(&butregion->v2d, rect_fl.xmin, rect_fl.ymin, &rect_i.xmin, &rect_i.ymin);
+ UI_view2d_to_region_no_clip(&butregion->v2d, rect_fl.xmax, rect_fl.ymax, &rect_i.xmax, &rect_i.ymax);
}
- x1 += butregion->winrct.xmin;
- x2 += butregion->winrct.xmin;
- y1 += butregion->winrct.ymin;
- y2 += butregion->winrct.ymin;
+ BLI_rcti_translate(&rect_i, butregion->winrct.xmin, butregion->winrct.ymin);
wm_window_get_size(CTX_wm_window(C), &winx, &winy);
- if (x2 > winx) {
+ if (rect_i.xmax > winx) {
/* super size */
- if (x2 > winx + x1) {
- x2 = winx;
- x1 = 0;
+ if (rect_i.xmax > winx + rect_i.xmin) {
+ rect_i.xmax = winx;
+ rect_i.xmin = 0;
}
else {
- x1 -= x2 - winx;
- x2 = winx;
+ rect_i.xmin -= rect_i.xmax - winx;
+ rect_i.xmax = winx;
}
}
- if (y1 < 0) {
+ if (rect_i.ymin < 0) {
int newy1;
- UI_view2d_to_region_no_clip(&butregion->v2d, 0, but->y2 + ofsy, NULL, &newy1);
+ UI_view2d_to_region_no_clip(&butregion->v2d, 0, but->rect.ymax + ofsy, NULL, &newy1);
newy1 += butregion->winrct.ymin;
- y2 = y2 - y1 + newy1;
- y1 = newy1;
+ rect_i.ymax = BLI_rcti_size_y(&rect_i) + newy1;
+ rect_i.ymin = newy1;
}
/* widget rect, in region coords */
data->bbox.xmin = MENU_SHADOW_SIDE;
- data->bbox.xmax = x2 - x1 + MENU_SHADOW_SIDE;
+ data->bbox.xmax = BLI_rcti_size_x(&rect_i) + MENU_SHADOW_SIDE;
data->bbox.ymin = MENU_SHADOW_BOTTOM;
- data->bbox.ymax = y2 - y1 + MENU_SHADOW_BOTTOM;
+ data->bbox.ymax = BLI_rcti_size_y(&rect_i) + MENU_SHADOW_BOTTOM;
/* region bigger for shadow */
- ar->winrct.xmin = x1 - MENU_SHADOW_SIDE;
- ar->winrct.xmax = x2 + MENU_SHADOW_SIDE;
- ar->winrct.ymin = y1 - MENU_SHADOW_BOTTOM;
- ar->winrct.ymax = y2;
+ ar->winrct.xmin = rect_i.xmin - MENU_SHADOW_SIDE;
+ ar->winrct.xmax = rect_i.xmax + MENU_SHADOW_SIDE;
+ ar->winrct.ymin = rect_i.ymin - MENU_SHADOW_BOTTOM;
+ ar->winrct.ymax = rect_i.ymax;
}
/* adds subwindow */
@@ -1207,8 +1269,8 @@ ARegion *ui_searchbox_create(bContext *C, ARegion *butregion, uiBut *but)
data->items.names = MEM_callocN(data->items.maxitem * sizeof(void *), "search names");
data->items.pointers = MEM_callocN(data->items.maxitem * sizeof(void *), "search pointers");
data->items.icons = MEM_callocN(data->items.maxitem * sizeof(int), "search icons");
- for (x1 = 0; x1 < data->items.maxitem; x1++)
- data->items.names[x1] = MEM_callocN(but->hardmax + 1, "search pointers");
+ for (i = 0; i < data->items.maxitem; i++)
+ data->items.names[i] = MEM_callocN(but->hardmax + 1, "search pointers");
return ar;
}
@@ -1274,45 +1336,44 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but,
short dir1 = 0, dir2 = 0;
/* transform to window coordinates, using the source button region/block */
- butrct.xmin = but->x1; butrct.xmax = but->x2;
- butrct.ymin = but->y1; butrct.ymax = but->y2;
+ butrct = but->rect;
ui_block_to_window_fl(butregion, but->block, &butrct.xmin, &butrct.ymin);
ui_block_to_window_fl(butregion, but->block, &butrct.xmax, &butrct.ymax);
+ /* widget_roundbox_set has this correction too, keep in sync */
+ if (but->type != PULLDOWN) {
+ if (but->flag & UI_BUT_ALIGN_TOP)
+ butrct.ymax += 1.0f;
+ if (but->flag & UI_BUT_ALIGN_LEFT)
+ butrct.xmin -= 1.0f;
+ }
+
/* calc block rect */
- if (block->minx == 0.0f && block->maxx == 0.0f) {
+ if (block->rect.xmin == 0.0f && block->rect.xmax == 0.0f) {
if (block->buttons.first) {
- block->minx = block->miny = 10000;
- block->maxx = block->maxy = -10000;
-
- bt = block->buttons.first;
- while (bt) {
- if (bt->x1 < block->minx) block->minx = bt->x1;
- if (bt->y1 < block->miny) block->miny = bt->y1;
+ BLI_rctf_init_minmax(&block->rect);
- if (bt->x2 > block->maxx) block->maxx = bt->x2;
- if (bt->y2 > block->maxy) block->maxy = bt->y2;
-
- bt = bt->next;
+ for (bt = block->buttons.first; bt; bt = bt->next) {
+ BLI_rctf_union(&block->rect, &bt->rect);
}
}
else {
/* we're nice and allow empty blocks too */
- block->minx = block->miny = 0;
- block->maxx = block->maxy = 20;
+ block->rect.xmin = block->rect.ymin = 0;
+ block->rect.xmax = block->rect.ymax = 20;
}
}
- /* aspect = (float)(block->maxx - block->minx + 4);*/ /*UNUSED*/
- ui_block_to_window_fl(butregion, but->block, &block->minx, &block->miny);
- ui_block_to_window_fl(butregion, but->block, &block->maxx, &block->maxy);
+ /* aspect = (float)(BLI_rcti_size_x(&block->rect) + 4);*/ /*UNUSED*/
+ ui_block_to_window_fl(butregion, but->block, &block->rect.xmin, &block->rect.ymin);
+ ui_block_to_window_fl(butregion, but->block, &block->rect.xmax, &block->rect.ymax);
- //block->minx -= 2.0; block->miny -= 2.0;
- //block->maxx += 2.0; block->maxy += 2.0;
+ //block->rect.xmin -= 2.0; block->rect.ymin -= 2.0;
+ //block->rect.xmax += 2.0; block->rect.ymax += 2.0;
- xsize = block->maxx - block->minx + 4; // 4 for shadow
- ysize = block->maxy - block->miny + 4;
+ xsize = BLI_rctf_size_x(&block->rect) + 4; /* 4 for shadow */
+ ysize = BLI_rctf_size_y(&block->rect) + 4;
/* aspect /= (float)xsize;*/ /*UNUSED*/
{
@@ -1366,20 +1427,20 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but,
}
if (dir1 == UI_LEFT) {
- xof = butrct.xmin - block->maxx;
- if (dir2 == UI_TOP) yof = butrct.ymin - block->miny - center;
- else yof = butrct.ymax - block->maxy + center;
+ xof = butrct.xmin - block->rect.xmax;
+ if (dir2 == UI_TOP) yof = butrct.ymin - block->rect.ymin - center;
+ else yof = butrct.ymax - block->rect.ymax + center;
}
else if (dir1 == UI_RIGHT) {
- xof = butrct.xmax - block->minx;
- if (dir2 == UI_TOP) yof = butrct.ymin - block->miny - center;
- else yof = butrct.ymax - block->maxy + center;
+ xof = butrct.xmax - block->rect.xmin;
+ if (dir2 == UI_TOP) yof = butrct.ymin - block->rect.ymin - center;
+ else yof = butrct.ymax - block->rect.ymax + center;
}
else if (dir1 == UI_TOP) {
- yof = butrct.ymax - block->miny;
- if (dir2 == UI_RIGHT) xof = butrct.xmax - block->maxx;
- else xof = butrct.xmin - block->minx;
- // changed direction?
+ yof = butrct.ymax - block->rect.ymin;
+ if (dir2 == UI_RIGHT) xof = butrct.xmax - block->rect.xmax;
+ else xof = butrct.xmin - block->rect.xmin;
+ /* changed direction? */
if ((dir1 & block->direction) == 0) {
if (block->direction & UI_SHIFT_FLIPPED)
xof += dir2 == UI_LEFT ? 25 : -25;
@@ -1387,10 +1448,10 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but,
}
}
else if (dir1 == UI_DOWN) {
- yof = butrct.ymin - block->maxy;
- if (dir2 == UI_RIGHT) xof = butrct.xmax - block->maxx;
- else xof = butrct.xmin - block->minx;
- // changed direction?
+ yof = butrct.ymin - block->rect.ymax;
+ if (dir2 == UI_RIGHT) xof = butrct.xmax - block->rect.xmax;
+ else xof = butrct.xmin - block->rect.xmin;
+ /* changed direction? */
if ((dir1 & block->direction) == 0) {
if (block->direction & UI_SHIFT_FLIPPED)
xof += dir2 == UI_LEFT ? 25 : -25;
@@ -1401,7 +1462,7 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but,
/* and now we handle the exception; no space below or to top */
if (top == 0 && down == 0) {
if (dir1 == UI_LEFT || dir1 == UI_RIGHT) {
- // align with bottom of screen
+ /* align with bottom of screen */
// yof= ysize; (not with menu scrolls)
}
}
@@ -1409,86 +1470,70 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but,
/* or no space left or right */
if (left == 0 && right == 0) {
if (dir1 == UI_TOP || dir1 == UI_DOWN) {
- // align with left size of screen
- xof = -block->minx + 5;
+ /* align with left size of screen */
+ xof = -block->rect.xmin + 5;
}
}
- // apply requested offset in the block
- xof += block->xofs / block->aspect;
- yof += block->yofs / block->aspect;
#if 0
/* clamp to window bounds, could be made into an option if its ever annoying */
- if ( (offscreen = (block->miny + yof)) < 0) yof -= offscreen; /* bottom */
- else if ((offscreen = (block->maxy + yof) - winy) > 0) yof -= offscreen; /* top */
- if ( (offscreen = (block->minx + xof)) < 0) xof -= offscreen; /* left */
- else if ((offscreen = (block->maxx + xof) - winx) > 0) xof -= offscreen; /* right */
+ if ( (offscreen = (block->rect.ymin + yof)) < 0) yof -= offscreen; /* bottom */
+ else if ((offscreen = (block->rect.ymax + yof) - winy) > 0) yof -= offscreen; /* top */
+ if ( (offscreen = (block->rect.xmin + xof)) < 0) xof -= offscreen; /* left */
+ else if ((offscreen = (block->rect.xmax + xof) - winx) > 0) xof -= offscreen; /* right */
#endif
}
/* apply offset, buttons in window coords */
for (bt = block->buttons.first; bt; bt = bt->next) {
- ui_block_to_window_fl(butregion, but->block, &bt->x1, &bt->y1);
- ui_block_to_window_fl(butregion, but->block, &bt->x2, &bt->y2);
+ ui_block_to_window_fl(butregion, but->block, &bt->rect.xmin, &bt->rect.ymin);
+ ui_block_to_window_fl(butregion, but->block, &bt->rect.xmax, &bt->rect.ymax);
- bt->x1 += xof;
- bt->x2 += xof;
- bt->y1 += yof;
- bt->y2 += yof;
+ BLI_rctf_translate(&bt->rect, xof, yof);
- bt->aspect = 1.0;
- // ui_check_but recalculates drawstring size in pixels
+ bt->aspect = 1.0f;
+ /* ui_check_but recalculates drawstring size in pixels */
ui_check_but(bt);
}
- block->minx += xof;
- block->miny += yof;
- block->maxx += xof;
- block->maxy += yof;
+ BLI_rctf_translate(&block->rect, xof, yof);
/* safety calculus */
- if (but) {
- float midx = (butrct.xmin + butrct.xmax) / 2.0f;
- float midy = (butrct.ymin + butrct.ymax) / 2.0f;
+ {
+ const float midx = BLI_rctf_cent_x(&butrct);
+ const float midy = BLI_rctf_cent_y(&butrct);
/* when you are outside parent button, safety there should be smaller */
- // parent button to left
- if (midx < block->minx) block->safety.xmin = block->minx - 3;
- else block->safety.xmin = block->minx - 40;
- // parent button to right
- if (midx > block->maxx) block->safety.xmax = block->maxx + 3;
- else block->safety.xmax = block->maxx + 40;
-
- // parent button on bottom
- if (midy < block->miny) block->safety.ymin = block->miny - 3;
- else block->safety.ymin = block->miny - 40;
- // parent button on top
- if (midy > block->maxy) block->safety.ymax = block->maxy + 3;
- else block->safety.ymax = block->maxy + 40;
-
- // exception for switched pulldowns...
+ /* parent button to left */
+ if (midx < block->rect.xmin) block->safety.xmin = block->rect.xmin - 3;
+ else block->safety.xmin = block->rect.xmin - 40;
+ /* parent button to right */
+ if (midx > block->rect.xmax) block->safety.xmax = block->rect.xmax + 3;
+ else block->safety.xmax = block->rect.xmax + 40;
+
+ /* parent button on bottom */
+ if (midy < block->rect.ymin) block->safety.ymin = block->rect.ymin - 3;
+ else block->safety.ymin = block->rect.ymin - 40;
+ /* parent button on top */
+ if (midy > block->rect.ymax) block->safety.ymax = block->rect.ymax + 3;
+ else block->safety.ymax = block->rect.ymax + 40;
+
+ /* exception for switched pulldowns... */
if (dir1 && (dir1 & block->direction) == 0) {
- if (dir2 == UI_RIGHT) block->safety.xmax = block->maxx + 3;
- if (dir2 == UI_LEFT) block->safety.xmin = block->minx - 3;
+ if (dir2 == UI_RIGHT) block->safety.xmax = block->rect.xmax + 3;
+ if (dir2 == UI_LEFT) block->safety.xmin = block->rect.xmin - 3;
}
block->direction = dir1;
}
- else {
- block->safety.xmin = block->minx - 40;
- block->safety.ymin = block->miny - 40;
- block->safety.xmax = block->maxx + 40;
- block->safety.ymax = block->maxy + 40;
- }
/* keep a list of these, needed for pulldown menus */
saferct = MEM_callocN(sizeof(uiSafetyRct), "uiSafetyRct");
saferct->parent = butrct;
saferct->safety = block->safety;
BLI_freelistN(&block->saferct);
- if (but)
- BLI_duplicatelist(&block->saferct, &but->block->saferct);
+ BLI_duplicatelist(&block->saferct, &but->block->saferct);
BLI_addhead(&block->saferct, saferct);
}
@@ -1506,15 +1551,15 @@ static void ui_popup_block_clip(wmWindow *window, uiBlock *block)
wm_window_get_size(window, &winx, &winy);
- if (block->minx < MENU_SHADOW_SIDE)
- block->minx = MENU_SHADOW_SIDE;
- if (block->maxx > winx - MENU_SHADOW_SIDE)
- block->maxx = winx - MENU_SHADOW_SIDE;
+ if (block->rect.xmin < MENU_SHADOW_SIDE)
+ block->rect.xmin = MENU_SHADOW_SIDE;
+ if (block->rect.xmax > winx - MENU_SHADOW_SIDE)
+ block->rect.xmax = winx - MENU_SHADOW_SIDE;
- if (block->miny < MENU_SHADOW_BOTTOM)
- block->miny = MENU_SHADOW_BOTTOM;
- if (block->maxy > winy - MENU_TOP)
- block->maxy = winy - MENU_TOP;
+ if (block->rect.ymin < MENU_SHADOW_BOTTOM)
+ block->rect.ymin = MENU_SHADOW_BOTTOM;
+ if (block->rect.ymax > winy - MENU_TOP)
+ block->rect.ymax = winy - MENU_TOP;
}
void ui_popup_block_scrolltest(uiBlock *block)
@@ -1533,25 +1578,25 @@ void ui_popup_block_scrolltest(uiBlock *block)
/* mark buttons that are outside boundary and the ones next to it for arrow(s) */
for (bt = block->buttons.first; bt; bt = bt->next) {
- if (bt->y1 < block->miny) {
+ if (bt->rect.ymin < block->rect.ymin) {
bt->flag |= UI_SCROLLED;
block->flag |= UI_BLOCK_CLIPBOTTOM;
/* make space for arrow */
- if (bt->y2 < block->miny + 10) {
- if (is_flip && bt->next && bt->next->y1 > bt->y1)
+ if (bt->rect.ymax < block->rect.ymin + 10) {
+ if (is_flip && bt->next && bt->next->rect.ymin > bt->rect.ymin)
bt->next->flag |= UI_SCROLLED;
- else if (!is_flip && bt->prev && bt->prev->y1 > bt->y1)
+ else if (!is_flip && bt->prev && bt->prev->rect.ymin > bt->rect.ymin)
bt->prev->flag |= UI_SCROLLED;
}
}
- if (bt->y2 > block->maxy) {
+ if (bt->rect.ymax > block->rect.ymax) {
bt->flag |= UI_SCROLLED;
block->flag |= UI_BLOCK_CLIPTOP;
/* make space for arrow */
- if (bt->y1 > block->maxy - 10) {
- if (!is_flip && bt->next && bt->next->y2 < bt->y2)
+ if (bt->rect.ymin > block->rect.ymax - 10) {
+ if (!is_flip && bt->next && bt->next->rect.ymax < bt->rect.ymax)
bt->next->flag |= UI_SCROLLED;
- else if (is_flip && bt->prev && bt->prev->y2 < bt->y2)
+ else if (is_flip && bt->prev && bt->prev->rect.ymax < bt->rect.ymax)
bt->prev->flag |= UI_SCROLLED;
}
}
@@ -1566,7 +1611,6 @@ uiPopupBlockHandle *ui_popup_block_create(bContext *C, ARegion *butregion, uiBut
static ARegionType type;
ARegion *ar;
uiBlock *block;
- uiBut *bt;
uiPopupBlockHandle *handle;
uiSafetyRct *saferct;
@@ -1603,24 +1647,33 @@ uiPopupBlockHandle *ui_popup_block_create(bContext *C, ARegion *butregion, uiBut
ar->regiondata = handle;
+ /* set UI_BLOCK_NUMSELECT before uiEndBlock() so we get alphanumeric keys assigned */
+ if (but) {
+ if (but->type == PULLDOWN) {
+ block->flag |= UI_BLOCK_NUMSELECT;
+ }
+ }
+ else {
+ block->flag |= UI_BLOCK_POPUP | UI_BLOCK_NUMSELECT;
+ }
+
+ block->flag |= UI_BLOCK_LOOP;
+
if (!block->endblock)
uiEndBlock(C, block);
/* if this is being created from a button */
if (but) {
- if (ELEM(but->type, BLOCK, PULLDOWN))
- block->xofs = -2; /* for proper alignment */
-
block->aspect = but->block->aspect;
ui_block_position(window, butregion, but, block);
+ handle->direction = block->direction;
}
else {
/* keep a list of these, needed for pulldown menus */
saferct = MEM_callocN(sizeof(uiSafetyRct), "uiSafetyRct");
saferct->safety = block->safety;
BLI_addhead(&block->saferct, saferct);
- block->flag |= UI_BLOCK_POPUP | UI_BLOCK_NUMSELECT;
}
/* clip block with window boundary */
@@ -1629,24 +1682,12 @@ uiPopupBlockHandle *ui_popup_block_create(bContext *C, ARegion *butregion, uiBut
/* the block and buttons were positioned in window space as in 2.4x, now
* these menu blocks are regions so we bring it back to region space.
* additionally we add some padding for the menu shadow or rounded menus */
- ar->winrct.xmin = block->minx - MENU_SHADOW_SIDE;
- ar->winrct.xmax = block->maxx + MENU_SHADOW_SIDE;
- ar->winrct.ymin = block->miny - MENU_SHADOW_BOTTOM;
- ar->winrct.ymax = block->maxy + MENU_TOP;
+ ar->winrct.xmin = block->rect.xmin - MENU_SHADOW_SIDE;
+ ar->winrct.xmax = block->rect.xmax + MENU_SHADOW_SIDE;
+ ar->winrct.ymin = block->rect.ymin - MENU_SHADOW_BOTTOM;
+ ar->winrct.ymax = block->rect.ymax + MENU_TOP;
- block->minx -= ar->winrct.xmin;
- block->maxx -= ar->winrct.xmin;
- block->miny -= ar->winrct.ymin;
- block->maxy -= ar->winrct.ymin;
-
- for (bt = block->buttons.first; bt; bt = bt->next) {
- bt->x1 -= ar->winrct.xmin;
- bt->x2 -= ar->winrct.xmin;
- bt->y1 -= ar->winrct.ymin;
- bt->y2 -= ar->winrct.ymin;
- }
-
- block->flag |= UI_BLOCK_LOOP;
+ ui_block_translate(block, -ar->winrct.xmin, -ar->winrct.ymin);
/* adds subwindow */
ED_region_init(C, ar);
@@ -1762,11 +1803,11 @@ static void ui_block_func_MENUSTR(bContext *UNUSED(C), uiLayout *layout, void *a
bt->flag = UI_TEXT_LEFT;
}
else if (entry->icon) {
- uiDefIconTextButF(block, BUTM | FLO, B_NOP, entry->icon, entry->str, 0, 0,
+ uiDefIconTextButF(block, BUTM, B_NOP, entry->icon, entry->str, 0, 0,
UI_UNIT_X * 5, UI_UNIT_Y, &handle->retvalue, (float) entry->retval, 0.0, 0, 0, "");
}
else {
- uiDefButF(block, BUTM | FLO, B_NOP, entry->str, 0, 0,
+ uiDefButF(block, BUTM, B_NOP, entry->str, 0, 0,
UI_UNIT_X * 5, UI_UNIT_X, &handle->retvalue, (float) entry->retval, 0.0, 0, 0, "");
}
}
@@ -1784,7 +1825,7 @@ void ui_block_func_ICONROW(bContext *UNUSED(C), uiLayout *layout, void *arg_but)
uiBlockSetFlag(block, UI_BLOCK_MOVEMOUSE_QUIT);
for (a = (int)but->hardmin; a <= (int)but->hardmax; a++)
- uiDefIconButF(block, BUTM | FLO, B_NOP, but->icon + (a - but->hardmin), 0, 0, UI_UNIT_X * 5, UI_UNIT_Y,
+ uiDefIconButF(block, BUTM, B_NOP, but->icon + (a - but->hardmin), 0, 0, UI_UNIT_X * 5, UI_UNIT_Y,
&handle->retvalue, (float)a, 0.0, 0, 0, "");
}
@@ -1814,7 +1855,7 @@ void ui_block_func_ICONTEXTROW(bContext *UNUSED(C), uiLayout *layout, void *arg_
if (entry->sepr)
uiItemS(layout);
else
- uiDefIconTextButF(block, BUTM | FLO, B_NOP, (short)((but->icon) + (entry->retval - but->hardmin)), entry->str,
+ uiDefIconTextButF(block, BUTM, B_NOP, (short)((but->icon) + (entry->retval - but->hardmin)), entry->str,
0, 0, UI_UNIT_X * 5, UI_UNIT_Y, &handle->retvalue, (float) entry->retval, 0.0, 0, 0, "");
}
@@ -1835,12 +1876,6 @@ static void ui_warp_pointer(int x, int y)
/********************* Color Button ****************/
-/* picker sizes S hsize, F full size, D spacer, B button/pallette height */
-#define SPICK 110.0
-#define FPICK 180.0
-#define DPICK 6.0
-#define BPICK 24.0
-
/* for picker, while editing hsv */
void ui_set_but_hsv(uiBut *but)
{
@@ -1856,13 +1891,17 @@ static void ui_update_block_buts_rgb(uiBlock *block, const float rgb[3])
{
uiBut *bt;
float *hsv = ui_block_hsv_get(block);
+ struct ColorManagedDisplay *display = NULL;
/* this is to keep the H and S value when V is equal to zero
* and we are working in HSV mode, of course!
*/
rgb_to_hsv_compat_v(rgb, hsv);
+
+ if (block->color_profile)
+ display = ui_block_display_get(block);
- // this updates button strings, is hackish... but button pointers are on stack of caller function
+ /* this updates button strings, is hackish... but button pointers are on stack of caller function */
for (bt = block->buttons.first; bt; bt = bt->next) {
if (bt->rnaprop) {
@@ -1876,12 +1915,11 @@ static void ui_update_block_buts_rgb(uiBlock *block, const float rgb[3])
/* Hex code is assumed to be in sRGB space (coming from other applications, web, etc) */
- if (block->color_profile == BLI_PR_NONE) {
- copy_v3_v3(rgb_gamma, rgb);
- }
- else {
- /* make an sRGB version, for Hex code */
- linearrgb_to_srgb_v3_v3(rgb_gamma, rgb);
+ copy_v3_v3(rgb_gamma, rgb);
+
+ if (display) {
+ /* make a display version, for Hex code */
+ IMB_colormanagement_scene_linear_to_display_v3(rgb_gamma, display);
}
if (rgb_gamma[0] > 1.0f) rgb_gamma[0] = modf(rgb_gamma[0], &intpart);
@@ -1960,9 +1998,9 @@ static void do_hex_rna_cb(bContext *UNUSED(C), void *bt1, void *hexcl)
hex_to_rgb(hexcol, rgb, rgb + 1, rgb + 2);
/* Hex code is assumed to be in sRGB space (coming from other applications, web, etc) */
- if (but->block->color_profile != BLI_PR_NONE) {
+ if (but->block->color_profile) {
/* so we need to linearise it for Blender */
- srgb_to_linearrgb_v3_v3(rgb, rgb);
+ ui_block_to_scene_linear_v3(but->block, rgb);
}
ui_update_block_buts_rgb(but->block, rgb);
@@ -1986,27 +2024,20 @@ static void picker_new_hide_reveal(uiBlock *block, short colormode)
/* tag buttons */
for (bt = block->buttons.first; bt; bt = bt->next) {
-
- if (bt->type == LABEL) {
- if (bt->str[1] == 'G') {
- if (colormode == 2) bt->flag &= ~UI_HIDDEN;
- else bt->flag |= UI_HIDDEN;
- }
+ if (bt->func == do_picker_rna_cb && bt->type == NUMSLI && bt->rnaindex != 3) {
+ /* RGB sliders (color circle and alpha are always shown) */
+ if (colormode == 0) bt->flag &= ~UI_HIDDEN;
+ else bt->flag |= UI_HIDDEN;
}
-
- if (bt->type == NUMSLI || bt->type == TEX) {
- if (bt->str[1] == 'e') {
- if (colormode == 2) bt->flag &= ~UI_HIDDEN;
- else bt->flag |= UI_HIDDEN;
- }
- else if (ELEM3(bt->str[0], 'R', 'G', 'B')) {
- if (colormode == 0) bt->flag &= ~UI_HIDDEN;
- else bt->flag |= UI_HIDDEN;
- }
- else if (ELEM3(bt->str[0], 'H', 'S', 'V')) {
- if (colormode == 1) bt->flag &= ~UI_HIDDEN;
- else bt->flag |= UI_HIDDEN;
- }
+ else if (bt->func == do_hsv_rna_cb) {
+ /* HSV sliders */
+ if (colormode == 1) bt->flag &= ~UI_HIDDEN;
+ else bt->flag |= UI_HIDDEN;
+ }
+ else if (bt->func == do_hex_rna_cb || bt->type == LABEL) {
+ /* hex input or gamma correction status label */
+ if (colormode == 2) bt->flag &= ~UI_HIDDEN;
+ else bt->flag |= UI_HIDDEN;
}
}
}
@@ -2018,10 +2049,6 @@ static void do_picker_new_mode_cb(bContext *UNUSED(C), void *bt1, void *UNUSED(a
picker_new_hide_reveal(bt->block, colormode);
}
-/* picker sizes S hsize, F full size, D spacer, B button/pallette height */
-#define SPICK1 150.0
-#define DPICK1 6.0
-
#define PICKER_H 150
#define PICKER_W 150
#define PICKER_SPACE 6
@@ -2059,7 +2086,7 @@ static void square_picker(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, in
/* a HS circle, V slider, rgb/hsv/hex sliders */
-static void uiBlockPicker(uiBlock *block, float rgba[4], PointerRNA *ptr, PropertyRNA *prop)
+static void uiBlockPicker(uiBlock *block, float rgba[4], PointerRNA *ptr, PropertyRNA *prop, int show_picker)
{
static short colormode = 0; /* temp? 0=rgb, 1=hsv, 2=hex */
uiBut *bt;
@@ -2077,14 +2104,16 @@ static void uiBlockPicker(uiBlock *block, float rgba[4], PointerRNA *ptr, Proper
/* existence of profile means storage is in linear color space, with display correction */
/* XXX That tip message is not use anywhere! */
- if (block->color_profile == BLI_PR_NONE) {
+ if (!block->color_profile) {
BLI_strncpy(tip, N_("Value in Display Color Space"), sizeof(tip));
copy_v3_v3(rgb_gamma, rgba);
}
else {
BLI_strncpy(tip, N_("Value in Linear RGB Color Space"), sizeof(tip));
- /* make an sRGB version, for Hex code */
- linearrgb_to_srgb_v3_v3(rgb_gamma, rgba);
+
+ /* make a display version, for Hex code */
+ copy_v3_v3(rgb_gamma, rgba);
+ ui_block_to_display_space_v3(block, rgb_gamma);
}
/* sneaky way to check for alpha */
@@ -2118,8 +2147,10 @@ static void uiBlockPicker(uiBlock *block, float rgba[4], PointerRNA *ptr, Proper
uiButSetFunc(bt, do_picker_new_mode_cb, bt, NULL);
uiBlockEndAlign(block);
- bt = uiDefIconButO(block, BUT, "UI_OT_eyedropper", WM_OP_INVOKE_DEFAULT, ICON_EYEDROPPER, butwidth + 10, -60, UI_UNIT_X, UI_UNIT_Y, NULL);
- uiButSetFunc(bt, close_popup_cb, bt, NULL);
+ if (show_picker) {
+ bt = uiDefIconButO(block, BUT, "UI_OT_eyedropper", WM_OP_INVOKE_DEFAULT, ICON_EYEDROPPER, butwidth + 10, -60, UI_UNIT_X, UI_UNIT_Y, NULL);
+ uiButSetFunc(bt, close_popup_cb, bt, NULL);
+ }
/* RGB values */
uiBlockBeginAlign(block);
@@ -2130,8 +2161,8 @@ static void uiBlockPicker(uiBlock *block, float rgba[4], PointerRNA *ptr, Proper
bt = uiDefButR_prop(block, NUMSLI, 0, IFACE_("B "), 0, -100, butwidth, UI_UNIT_Y, ptr, prop, 2, 0.0, 0.0, 0, 3, TIP_("Blue"));
uiButSetFunc(bt, do_picker_rna_cb, bt, NULL);
- // could use uiItemFullR(col, ptr, prop, -1, 0, UI_ITEM_R_EXPAND|UI_ITEM_R_SLIDER, "", ICON_NONE);
- // but need to use uiButSetFunc for updating other fake buttons
+ /* could use uiItemFullR(col, ptr, prop, -1, 0, UI_ITEM_R_EXPAND|UI_ITEM_R_SLIDER, "", ICON_NONE);
+ * but need to use uiButSetFunc for updating other fake buttons */
/* HSV values */
uiBlockBeginAlign(block);
@@ -2200,24 +2231,33 @@ static int ui_picker_small_wheel_cb(const bContext *UNUSED(C), uiBlock *block, w
return 0;
}
-uiBlock *ui_block_func_COL(bContext *C, uiPopupBlockHandle *handle, void *arg_but)
+uiBlock *ui_block_func_COLOR(bContext *C, uiPopupBlockHandle *handle, void *arg_but)
{
uiBut *but = arg_but;
uiBlock *block;
+ int show_picker = TRUE;
block = uiBeginBlock(C, handle->region, __func__, UI_EMBOSS);
if (but->rnaprop) {
if (RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA) {
- block->color_profile = BLI_PR_NONE;
+ block->color_profile = FALSE;
}
}
+
+ if (but->block) {
+ /* if color block is invoked from a popup we wouldn't be able to set color properly
+ * this is because color picker will close popups first and then will try to figure
+ * out active button RNA, and of course it'll fail
+ */
+ show_picker = (but->block->flag & UI_BLOCK_POPUP) == 0;
+ }
uiBlockSetFlag(block, UI_BLOCK_MOVEMOUSE_QUIT);
copy_v3_v3(handle->retvec, but->editvec);
- uiBlockPicker(block, handle->retvec, &but->rnapoin, but->rnaprop);
+ uiBlockPicker(block, handle->retvec, &but->rnapoin, but->rnaprop, show_picker);
block->flag = UI_BLOCK_LOOP | UI_BLOCK_REDRAW | UI_BLOCK_KEEP_OPEN | UI_BLOCK_OUT_1;
uiBoundsBlock(block, 10);
@@ -2306,7 +2346,7 @@ static uiBlock *ui_block_func_POPUP(bContext *C, uiPopupBlockHandle *handle, voi
if (pup->but) {
/* minimum width to enforece */
- minwidth = pup->but->x2 - pup->but->x1;
+ minwidth = BLI_rctf_size_x(&pup->but->rect);
if (pup->but->type == PULLDOWN || pup->but->menu_create_func) {
direction = UI_DOWN;
@@ -2348,15 +2388,15 @@ static uiBlock *ui_block_func_POPUP(bContext *C, uiPopupBlockHandle *handle, voi
* button, so it doesn't overlap the text too much, also note
* the offset is negative because we are inverse moving the
* block to be under the mouse */
- offset[0] = -(bt->x1 + 0.8f * (bt->x2 - bt->x1));
- offset[1] = -(bt->y1 + 0.5f * UI_UNIT_Y);
+ offset[0] = -(bt->rect.xmin + 0.8f * BLI_rctf_size_x(&bt->rect));
+ offset[1] = -(bt->rect.ymin + 0.5f * UI_UNIT_Y);
}
else {
/* position mouse at 0.8*width of the button and below the tile
* on the first item */
offset[0] = 0;
for (bt = block->buttons.first; bt; bt = bt->next)
- offset[0] = MIN2(offset[0], -(bt->x1 + 0.8f * (bt->x2 - bt->x1)));
+ offset[0] = mini(offset[0], -(bt->rect.xmin + 0.8f * BLI_rctf_size_x(&bt->rect)));
offset[1] = 1.5 * UI_UNIT_Y;
}
@@ -2399,6 +2439,7 @@ uiPopupBlockHandle *ui_popup_menu_create(bContext *C, ARegion *butregion, uiBut
uiPopupMenu *pup;
pup = MEM_callocN(sizeof(uiPopupMenu), __func__);
pup->block = uiBeginBlock(C, NULL, __func__, UI_EMBOSSP);
+ pup->block->flag |= UI_BLOCK_NUMSELECT; /* default menus to numselect */
pup->layout = uiBlockLayout(pup->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_MENU, 0, 0, 200, 0, style);
pup->slideout = (but && (but->block->flag & UI_BLOCK_LOOP));
pup->but = but;
@@ -2537,6 +2578,11 @@ static void confirm_cancel_operator(void *opv)
}
static void vconfirm_opname(bContext *C, const char *opname, const char *title, const char *itemfmt, va_list ap)
+#ifdef __GNUC__
+__attribute__ ((format(printf, 4, 0)))
+#endif
+;
+static void vconfirm_opname(bContext *C, const char *opname, const char *title, const char *itemfmt, va_list ap)
{
uiPopupBlockHandle *handle;
char *s, buf[512];
@@ -2587,7 +2633,7 @@ void uiPupMenuOkee(bContext *C, const char *opname, const char *str, ...)
* The operator state for this is implicitly OPERATOR_RUNNING_MODAL */
void uiPupMenuSaveOver(bContext *C, wmOperator *op, const char *filename)
{
- confirm_operator(C, op, "Save Over", filename);
+ confirm_operator(C, op, "Save Over?", filename);
}
void uiPupMenuNotice(bContext *C, const char *str, ...)
diff --git a/source/blender/editors/interface/interface_style.c b/source/blender/editors/interface/interface_style.c
index 5d527667170..acf7712f97b 100644
--- a/source/blender/editors/interface/interface_style.c
+++ b/source/blender/editors/interface/interface_style.c
@@ -152,17 +152,17 @@ void uiStyleFontDrawExt(uiFontStyle *fs, rcti *rect, const char *str,
uiStyleFontSet(fs);
height = BLF_ascender(fs->uifont_id);
- yofs = ceil(0.5f * (rect->ymax - rect->ymin - height));
+ yofs = ceil(0.5f * (BLI_rcti_size_y(rect) - height));
if (fs->align == UI_STYLE_TEXT_CENTER) {
- xofs = floor(0.5f * (rect->xmax - rect->xmin - BLF_width(fs->uifont_id, str)));
+ xofs = floor(0.5f * (BLI_rcti_size_x(rect) - BLF_width(fs->uifont_id, str)));
/* don't center text if it chops off the start of the text, 2 gives some margin */
if (xofs < 2) {
xofs = 2;
}
}
else if (fs->align == UI_STYLE_TEXT_RIGHT) {
- xofs = rect->xmax - rect->xmin - BLF_width(fs->uifont_id, str) - 1;
+ xofs = BLI_rcti_size_x(rect) - BLF_width(fs->uifont_id, str) - 1;
}
/* clip is very strict, so we give it some space */
@@ -209,7 +209,7 @@ void uiStyleFontDrawRotated(uiFontStyle *fs, rcti *rect, const char *str)
height = BLF_ascender(fs->uifont_id);
/* becomes x-offset when rotated */
- xofs = ceil(0.5f * (rect->ymax - rect->ymin - height));
+ xofs = ceil(0.5f * (BLI_rcti_size_y(rect) - height));
/* ignore UI_STYLE, always aligned to top */
@@ -219,8 +219,8 @@ void uiStyleFontDrawRotated(uiFontStyle *fs, rcti *rect, const char *str)
angle = 90.0f;
/* translate rect to vertical */
- txtrect.xmin = rect->xmin - (rect->ymax - rect->ymin);
- txtrect.ymin = rect->ymin - (rect->xmax - rect->xmin);
+ txtrect.xmin = rect->xmin - BLI_rcti_size_y(rect);
+ txtrect.ymin = rect->ymin - BLI_rcti_size_x(rect);
txtrect.xmax = rect->xmin;
txtrect.ymax = rect->ymin;
@@ -257,7 +257,7 @@ uiStyle *UI_GetStyle(void)
{
uiStyle *style = NULL;
/* offset is two struct uiStyle pointers */
- /* style = BLI_findstring( &U.uistyles, "Unifont Style", sizeof(style)*2 ) */;
+ /* style = BLI_findstring(&U.uistyles, "Unifont Style", sizeof(style) * 2) */;
return (style != NULL) ? style : U.uistyles.first;
}
@@ -374,7 +374,7 @@ void uiStyleInit(void)
ui_style_new(&U.uistyles, "Default Style", UIFONT_DEFAULT);
}
- // XXX, this should be moved into a style, but for now best only load the monospaced font once.
+ /* XXX, this should be moved into a style, but for now best only load the monospaced font once. */
if (blf_mono_font == -1)
blf_mono_font = BLF_load_mem_unique("monospace", (unsigned char *)datatoc_bmonofont_ttf, datatoc_bmonofont_ttf_size);
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index e6a4c260d0f..5f9722d0ec0 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -35,11 +35,13 @@
#include "DNA_dynamicpaint_types.h"
#include "DNA_key_types.h"
#include "DNA_scene_types.h"
+#include "DNA_object_types.h"
#include "DNA_userdef_types.h"
#include "BLI_utildefines.h"
#include "BLI_string.h"
#include "BLI_ghash.h"
+#include "BLI_rect.h"
#include "BLF_translation.h"
@@ -55,6 +57,7 @@
#include "BKE_texture.h"
#include "BKE_report.h"
#include "BKE_displist.h"
+#include "BKE_sca.h"
#include "BKE_scene.h"
#include "ED_screen.h"
@@ -254,7 +257,7 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event)
break;
case UI_ID_OPEN:
case UI_ID_ADD_NEW:
- /* these call uiIDContextPropertySet */
+ /* these call uiIDContextProperty */
break;
case UI_ID_DELETE:
memset(&idptr, 0, sizeof(idptr));
@@ -359,6 +362,7 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
type = idptr.type;
if (flag & UI_ID_PREVIEWS) {
+ template->preview = TRUE;
but = uiDefBlockButN(block, id_search_menu, MEM_dupallocN(template), "", 0, 0, UI_UNIT_X * 6, UI_UNIT_Y * 6,
TIP_(template_id_browse_tip(type)));
@@ -371,7 +375,6 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
uiButSetFlag(but, UI_BUT_DISABLED);
uiLayoutRow(layout, TRUE);
- template->preview = 1;
}
else if (flag & UI_ID_BROWSE) {
but = uiDefBlockButN(block, id_search_menu, MEM_dupallocN(template), "", 0, 0, UI_UNIT_X * 1.6, UI_UNIT_Y,
@@ -426,8 +429,15 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
TIP_("Display number of users of this data (click to make a single-user copy)"));
uiButSetNFunc(but, template_id_cb, MEM_dupallocN(template), SET_INT_IN_POINTER(UI_ID_ALONE));
- if (!id_copy(id, NULL, 1 /* test only */) || (idfrom && idfrom->lib) || !editable)
+ if (/* test only */
+ (id_copy(id, NULL, 1) == FALSE) ||
+ (idfrom && idfrom->lib) ||
+ (editable == FALSE) ||
+ /* object in editmode - don't change data */
+ (idfrom && GS(idfrom->name) == ID_OB && (((Object *)idfrom)->mode & OB_MODE_EDIT)))
+ {
uiButSetFlag(but, UI_BUT_DISABLED);
+ }
}
if (user_alert) uiButSetFlag(but, UI_BUT_REDALERT);
@@ -587,7 +597,7 @@ void uiTemplateAnyID(uiLayout *layout, PointerRNA *ptr, const char *propname, co
uiItemL(row, "ID-Block:", ICON_NONE);
/* ID-Type Selector - just have a menu of icons */
- // FIXME: the icon-only setting doesn't work when we supply a blank name
+ /* FIXME: the icon-only setting doesn't work when we supply a blank name */
uiItemFullR(row, ptr, propType, 0, 0, UI_ITEM_R_ICON_ONLY, "", ICON_NONE);
/* ID-Block Selector - just use pointer widget... */
@@ -622,7 +632,7 @@ void uiTemplatePathBuilder(uiLayout *layout, PointerRNA *ptr, const char *propna
/* Path (existing string) Widget */
uiItemR(row, ptr, propname, 0, text, ICON_RNA);
- // TODO: attach something to this to make allow searching of nested properties to 'build' the path
+ /* TODO: attach something to this to make allow searching of nested properties to 'build' the path */
}
/************************ Modifier Template *************************/
@@ -741,7 +751,7 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob,
uiLayoutSetAlignment(row, UI_LAYOUT_ALIGN_EXPAND);
block = uiLayoutGetBlock(row);
/* VIRTUAL MODIFIER */
- // XXX this is not used now, since these cannot be accessed via RNA
+ /* XXX this is not used now, since these cannot be accessed via RNA */
BLI_snprintf(str, sizeof(str), "%s parent deform", md->name);
uiDefBut(block, LABEL, 0, str, 0, 0, 185, UI_UNIT_Y, NULL, 0.0, 0.0, 0.0, 0.0, "Modifier name");
@@ -821,7 +831,7 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob,
uiBlockEndAlign(block);
uiBlockSetEmboss(block, UI_EMBOSSN);
- // When Modifier is a simulation, show button to switch to context rather than the delete button.
+ /* When Modifier is a simulation, show button to switch to context rather than the delete button. */
if (modifier_can_delete(md) && !modifier_is_simulation(md))
uiItemO(row, "", ICON_X, "OBJECT_OT_modifier_remove");
if (modifier_is_simulation(md) == 1)
@@ -908,7 +918,7 @@ uiLayout *uiTemplateModifier(uiLayout *layout, bContext *C, PointerRNA *ptr)
/* find modifier and draw it */
cageIndex = modifiers_getCageIndex(scene, ob, &lastCageIndex, 0);
- // XXX virtual modifiers are not accesible for python
+ /* XXX virtual modifiers are not accesible for python */
vmd = modifiers_getVirtualModifierList(ob);
for (i = 0; vmd; i++, vmd = vmd->next) {
@@ -928,37 +938,35 @@ uiLayout *uiTemplateModifier(uiLayout *layout, bContext *C, PointerRNA *ptr)
#include "BKE_action.h"
#include "BKE_constraint.h"
-#define REDRAWIPO 1
-#define REDRAWNLA 2
-#define REDRAWBUTSOBJECT 3
-#define REDRAWACTION 4
#define B_CONSTRAINT_TEST 5
-#define B_CONSTRAINT_CHANGETARGET 6
-#define REMAKEIPO 8
-#define B_DIFF 9
+// #define B_CONSTRAINT_CHANGETARGET 6
static void do_constraint_panels(bContext *C, void *ob_pt, int event)
{
- Main *bmain = CTX_data_main(C);
- Scene *scene = CTX_data_scene(C);
Object *ob = (Object *)ob_pt;
switch (event) {
case B_CONSTRAINT_TEST:
- break; // no handling
+ break; /* no handling */
+#if 0 /* UNUSED */
case B_CONSTRAINT_CHANGETARGET:
- if (ob->pose) ob->pose->flag |= POSE_RECALC; // checks & sorts pose channels
+ {
+ Main *bmain = CTX_data_main(C);
+ Scene *scene = CTX_data_scene(C);
+ if (ob->pose) ob->pose->flag |= POSE_RECALC; /* checks & sorts pose channels */
DAG_scene_sort(bmain, scene);
break;
+ }
+#endif
default:
break;
}
- // note: RNA updates now call this, commenting else it gets called twice.
- // if there are problems because of this, then rna needs changed update functions.
- //
- // object_test_constraints(ob);
- // if (ob->pose) BKE_pose_update_constraint_flags(ob->pose);
+ /* note: RNA updates now call this, commenting else it gets called twice.
+ * if there are problems because of this, then rna needs changed update functions.
+ *
+ * object_test_constraints(ob);
+ * if (ob->pose) BKE_pose_update_constraint_flags(ob->pose); */
if (ob->type == OB_ARMATURE) DAG_id_tag_update(&ob->id, OB_RECALC_DATA | OB_RECALC_OB);
else DAG_id_tag_update(&ob->id, OB_RECALC_OB);
@@ -1023,7 +1031,7 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
uiDefBut(block, LABEL, B_CONSTRAINT_TEST, typestr, xco + 10, yco, 100, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
if (con->flag & CONSTRAINT_DISABLE)
- uiLayoutSetRedAlert(row, 1);
+ uiLayoutSetRedAlert(row, TRUE);
if (proxy_protected == 0) {
uiItemR(row, &ptr, "name", 0, "", ICON_NONE);
@@ -1031,7 +1039,7 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
else
uiItemL(row, con->name, ICON_NONE);
- uiLayoutSetRedAlert(row, 0);
+ uiLayoutSetRedAlert(row, FALSE);
/* proxy-protected constraints cannot be edited, so hide up/down + close buttons */
if (proxy_protected) {
@@ -1199,7 +1207,7 @@ void uiTemplatePreview(uiLayout *layout, ID *id, int show_buttons, ID *parent, M
block = uiLayoutGetBlock(layout);
row = uiLayoutRow(layout, FALSE);
col = uiLayoutColumn(row, FALSE);
- uiLayoutSetKeepAspect(col, 1);
+ uiLayoutSetKeepAspect(col, TRUE);
/* add preview */
uiDefBut(block, BUT_EXTRA, 0, "", 0, 0, UI_UNIT_X * 6, UI_UNIT_Y * 6, pid, 0.0, 0.0, 0, 0, "");
@@ -1261,8 +1269,6 @@ static void rna_update_cb(bContext *C, void *arg_cb, void *UNUSED(arg))
RNA_property_update(C, &cb->ptr, cb->prop);
}
-#define B_BANDCOL 1
-
static void colorband_add_cb(bContext *C, void *cb_v, void *coba_v)
{
ColorBand *coba = coba_v;
@@ -1378,7 +1384,7 @@ static void colorband_buttons_large(uiLayout *layout, uiBlock *block, ColorBand
static void colorband_buttons_small(uiLayout *layout, uiBlock *block, ColorBand *coba, rctf *butr, RNAUpdateCb *cb)
{
uiBut *bt;
- float unit = (butr->xmax - butr->xmin) / 14.0f;
+ float unit = BLI_rctf_size_x(butr) / 14.0f;
float xs = butr->xmin;
uiBlockBeginAlign(block);
@@ -1404,7 +1410,7 @@ static void colorband_buttons_small(uiLayout *layout, uiBlock *block, ColorBand
TIP_("Set interpolation between color stops"));
uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
- bt = uiDefBut(block, BUT_COLORBAND, 0, "", xs, butr->ymin, butr->xmax - butr->xmin, UI_UNIT_Y, coba, 0, 0, 0, 0, "");
+ bt = uiDefBut(block, BUT_COLORBAND, 0, "", xs, butr->ymin, BLI_rctf_size_x(butr), UI_UNIT_Y, coba, 0, 0, 0, 0, "");
uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
uiBlockEndAlign(block);
@@ -1479,7 +1485,7 @@ void uiTemplateHistogram(uiLayout *layout, PointerRNA *ptr, const char *propname
hist->height = (hist->height <= UI_UNIT_Y) ? UI_UNIT_Y : hist->height;
- bt = uiDefBut(block, HISTOGRAM, 0, "", rect.xmin, rect.ymin, rect.xmax - rect.xmin, hist->height, hist, 0, 0, 0, 0, "");
+ bt = uiDefBut(block, HISTOGRAM, 0, "", rect.xmin, rect.ymin, BLI_rctf_size_x(&rect), hist->height, hist, 0, 0, 0, 0, "");
uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
MEM_freeN(cb);
@@ -1516,8 +1522,8 @@ void uiTemplateWaveform(uiLayout *layout, PointerRNA *ptr, const char *propname)
scopes->wavefrm_height = (scopes->wavefrm_height <= UI_UNIT_Y) ? UI_UNIT_Y : scopes->wavefrm_height;
- bt = uiDefBut(block, WAVEFORM, 0, "", rect.xmin, rect.ymin, rect.xmax - rect.xmin, scopes->wavefrm_height, scopes, 0, 0, 0, 0, "");
- (void)bt; // UNUSED
+ bt = uiDefBut(block, WAVEFORM, 0, "", rect.xmin, rect.ymin, BLI_rctf_size_x(&rect), scopes->wavefrm_height, scopes, 0, 0, 0, 0, "");
+ (void)bt; /* UNUSED */
MEM_freeN(cb);
}
@@ -1553,7 +1559,7 @@ void uiTemplateVectorscope(uiLayout *layout, PointerRNA *ptr, const char *propna
scopes->vecscope_height = (scopes->vecscope_height <= UI_UNIT_Y) ? UI_UNIT_Y : scopes->vecscope_height;
- bt = uiDefBut(block, VECTORSCOPE, 0, "", rect.xmin, rect.ymin, rect.xmax - rect.xmin, scopes->vecscope_height, scopes, 0, 0, 0, 0, "");
+ bt = uiDefBut(block, VECTORSCOPE, 0, "", rect.xmin, rect.ymin, BLI_rctf_size_x(&rect), scopes->vecscope_height, scopes, 0, 0, 0, 0, "");
uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
MEM_freeN(cb);
@@ -1568,11 +1574,11 @@ static void curvemap_buttons_zoom_in(bContext *C, void *cumap_v, void *UNUSED(ar
float d;
/* we allow 20 times zoom */
- if ( (cumap->curr.xmax - cumap->curr.xmin) > 0.04f * (cumap->clipr.xmax - cumap->clipr.xmin) ) {
- d = 0.1154f * (cumap->curr.xmax - cumap->curr.xmin);
+ if (BLI_rctf_size_x(&cumap->curr) > 0.04f * BLI_rctf_size_x(&cumap->clipr)) {
+ d = 0.1154f * BLI_rctf_size_x(&cumap->curr);
cumap->curr.xmin += d;
cumap->curr.xmax -= d;
- d = 0.1154f * (cumap->curr.ymax - cumap->curr.ymin);
+ d = 0.1154f * BLI_rctf_size_y(&cumap->curr);
cumap->curr.ymin += d;
cumap->curr.ymax -= d;
}
@@ -1586,8 +1592,8 @@ static void curvemap_buttons_zoom_out(bContext *C, void *cumap_v, void *UNUSED(u
float d, d1;
/* we allow 20 times zoom, but don't view outside clip */
- if ( (cumap->curr.xmax - cumap->curr.xmin) < 20.0f * (cumap->clipr.xmax - cumap->clipr.xmin) ) {
- d = d1 = 0.15f * (cumap->curr.xmax - cumap->curr.xmin);
+ if (BLI_rctf_size_x(&cumap->curr) < 20.0f * BLI_rctf_size_x(&cumap->clipr)) {
+ d = d1 = 0.15f * BLI_rctf_size_x(&cumap->curr);
if (cumap->flag & CUMA_DO_CLIP)
if (cumap->curr.xmin - d < cumap->clipr.xmin)
@@ -1600,7 +1606,7 @@ static void curvemap_buttons_zoom_out(bContext *C, void *cumap_v, void *UNUSED(u
d1 = -cumap->curr.xmax + cumap->clipr.xmax;
cumap->curr.xmax += d1;
- d = d1 = 0.15f * (cumap->curr.ymax - cumap->curr.ymin);
+ d = d1 = 0.15f * BLI_rctf_size_y(&cumap->curr);
if (cumap->flag & CUMA_DO_CLIP)
if (cumap->curr.ymin - d < cumap->clipr.ymin)
@@ -1621,7 +1627,7 @@ static void curvemap_buttons_setclip(bContext *UNUSED(C), void *cumap_v, void *U
{
CurveMapping *cumap = cumap_v;
- curvemapping_changed(cumap, 0);
+ curvemapping_changed(cumap, FALSE);
}
static void curvemap_buttons_delete(bContext *C, void *cb_v, void *cumap_v)
@@ -1629,13 +1635,13 @@ static void curvemap_buttons_delete(bContext *C, void *cb_v, void *cumap_v)
CurveMapping *cumap = cumap_v;
curvemap_remove(cumap->cm + cumap->cur, SELECT);
- curvemapping_changed(cumap, 0);
+ curvemapping_changed(cumap, FALSE);
rna_update_cb(C, cb_v, NULL);
}
/* NOTE: this is a block-menu, needs 0 events, otherwise the menu closes */
-static uiBlock *curvemap_clipping_func(bContext *C, struct ARegion *ar, void *cumap_v)
+static uiBlock *curvemap_clipping_func(bContext *C, ARegion *ar, void *cumap_v)
{
CurveMapping *cumap = cumap_v;
uiBlock *block;
@@ -1671,32 +1677,32 @@ static void curvemap_tools_dofunc(bContext *C, void *cumap_v, int event)
switch (event) {
case 0: /* reset */
curvemap_reset(cuma, &cumap->clipr, cumap->preset, CURVEMAP_SLOPE_POSITIVE);
- curvemapping_changed(cumap, 0);
+ curvemapping_changed(cumap, FALSE);
break;
case 1:
cumap->curr = cumap->clipr;
break;
case 2: /* set vector */
curvemap_sethandle(cuma, 1);
- curvemapping_changed(cumap, 0);
+ curvemapping_changed(cumap, FALSE);
break;
case 3: /* set auto */
curvemap_sethandle(cuma, 0);
- curvemapping_changed(cumap, 0);
+ curvemapping_changed(cumap, FALSE);
break;
case 4: /* extend horiz */
cuma->flag &= ~CUMA_EXTEND_EXTRAPOLATE;
- curvemapping_changed(cumap, 0);
+ curvemapping_changed(cumap, FALSE);
break;
case 5: /* extend extrapolate */
cuma->flag |= CUMA_EXTEND_EXTRAPOLATE;
- curvemapping_changed(cumap, 0);
+ curvemapping_changed(cumap, FALSE);
break;
}
ED_region_tag_redraw(CTX_wm_region(C));
}
-static uiBlock *curvemap_tools_func(bContext *C, struct ARegion *ar, void *cumap_v)
+static uiBlock *curvemap_tools_func(bContext *C, ARegion *ar, void *cumap_v)
{
uiBlock *block;
short yco = 0, menuwidth = 10 * UI_UNIT_X;
@@ -1718,7 +1724,7 @@ static uiBlock *curvemap_tools_func(bContext *C, struct ARegion *ar, void *cumap
return block;
}
-static uiBlock *curvemap_brush_tools_func(bContext *C, struct ARegion *ar, void *cumap_v)
+static uiBlock *curvemap_brush_tools_func(bContext *C, ARegion *ar, void *cumap_v)
{
uiBlock *block;
short yco = 0, menuwidth = 10 * UI_UNIT_X;
@@ -1743,6 +1749,13 @@ static void curvemap_buttons_redraw(bContext *C, void *UNUSED(arg1), void *UNUSE
ED_region_tag_redraw(CTX_wm_region(C));
}
+static void curvemap_buttons_update(bContext *C, void *arg1_v, void *cumap_v)
+{
+ CurveMapping *cumap = cumap_v;
+ curvemapping_changed(cumap, TRUE);
+ rna_update_cb(C, arg1_v, NULL);
+}
+
static void curvemap_buttons_reset(bContext *C, void *cb_v, void *cumap_v)
{
CurveMapping *cumap = cumap_v;
@@ -1756,7 +1769,7 @@ static void curvemap_buttons_reset(bContext *C, void *cb_v, void *cumap_v)
cumap->white[0] = cumap->white[1] = cumap->white[2] = 1.0f;
curvemapping_set_black_white(cumap, NULL, NULL);
- curvemapping_changed(cumap, 0);
+ curvemapping_changed(cumap, FALSE);
rna_update_cb(C, cb_v, NULL);
}
@@ -1765,12 +1778,14 @@ static void curvemap_buttons_reset(bContext *C, void *cb_v, void *cumap_v)
static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labeltype, int levels, int brush, RNAUpdateCb *cb)
{
CurveMapping *cumap = ptr->data;
+ CurveMap *cm = &cumap->cm[cumap->cur];
+ CurveMapPoint *cmp = NULL;
uiLayout *row, *sub, *split;
uiBlock *block;
uiBut *bt;
float dx = UI_UNIT_X;
int icon, size;
- int bg = -1;
+ int bg = -1, i;
block = uiLayoutGetBlock(layout);
@@ -1859,7 +1874,7 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe
uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
- if (cumap->flag & CUMA_DO_CLIP) icon = ICON_CLIPUV_HLT; else icon = ICON_CLIPUV_DEHLT;
+ icon = (cumap->flag & CUMA_DO_CLIP) ? ICON_CLIPUV_HLT : ICON_CLIPUV_DEHLT;
bt = uiDefIconBlockBut(block, curvemap_clipping_func, cumap, 0, icon, 0, 0, dx, dx, TIP_("Clipping Options"));
uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
@@ -1875,6 +1890,21 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe
row = uiLayoutRow(layout, FALSE);
uiDefBut(block, BUT_CURVE, 0, "", 0, 0, size, MIN2(size, 200), cumap, 0.0f, 1.0f, bg, 0, "");
+ /* sliders for selected point */
+ for (i = 0; i < cm->totpoint; i++) {
+ if (cm->curve[i].flag & CUMA_SELECT) {
+ cmp = &cm->curve[i];
+ break;
+ }
+ }
+
+ if (cmp) {
+ uiLayoutRow(layout, TRUE);
+ uiBlockSetNFunc(block, curvemap_buttons_update, MEM_dupallocN(cb), cumap);
+ bt = uiDefButF(block, NUM, 0, "X", 0, 2 * UI_UNIT_Y, UI_UNIT_X * 10, UI_UNIT_Y, &cmp->x, 0.0f, 1.0f, 1, 5, "");
+ bt = uiDefButF(block, NUM, 0, "Y", 0, 1 * UI_UNIT_Y, UI_UNIT_X * 10, UI_UNIT_Y, &cmp->y, 0.0f, 1.0f, 1, 5, "");
+ }
+
/* black/white levels */
if (levels) {
split = uiLayoutSplit(layout, 0.0f, FALSE);
@@ -1984,14 +2014,14 @@ static void handle_layer_buttons(bContext *C, void *arg1, void *arg2)
RNA_property_boolean_set_index(&but->rnapoin, but->rnaprop, i, FALSE);
}
}
-
+
/* view3d layer change should update depsgraph (invisible object changed maybe) */
/* see view3d_header.c */
}
-// TODO:
-// - for now, grouping of layers is determined by dividing up the length of
-// the array of layer bitflags
+/* TODO:
+ * - for now, grouping of layers is determined by dividing up the length of
+ * the array of layer bitflags */
void uiTemplateLayers(uiLayout *layout, PointerRNA *ptr, const char *propname,
PointerRNA *used_ptr, const char *used_propname, int active_layer)
@@ -2060,6 +2090,74 @@ void uiTemplateLayers(uiLayout *layout, PointerRNA *ptr, const char *propname,
}
}
+void uiTemplateGameStates(uiLayout *layout, PointerRNA *ptr, const char *propname,
+ PointerRNA *used_ptr, const char *used_propname, int active_state)
+{
+ uiLayout *uRow, *uCol;
+ PropertyRNA *prop, *used_prop = NULL;
+ int groups, cols, states;
+ int group, col, state, row;
+ int cols_per_group = 5;
+ Object *ob = (Object *)ptr->id.data;
+
+ prop = RNA_struct_find_property(ptr, propname);
+ if (!prop) {
+ RNA_warning("states property not found: %s.%s", RNA_struct_identifier(ptr->type), propname);
+ return;
+ }
+
+ /* the number of states determines the way we group them
+ * - we want 2 rows only (for now)
+ * - the number of columns (cols) is the total number of buttons per row
+ * the 'remainder' is added to this, as it will be ok to have first row slightly wider if need be
+ * - for now, only split into groups if group will have at least 5 items
+ */
+ states = RNA_property_array_length(ptr, prop);
+ cols = (states / 2) + (states % 2);
+ groups = ((cols / 2) < cols_per_group) ? (1) : (cols / cols_per_group);
+
+ if (used_ptr && used_propname) {
+ used_prop = RNA_struct_find_property(used_ptr, used_propname);
+ if (!used_prop) {
+ RNA_warning("used layers property not found: %s.%s", RNA_struct_identifier(ptr->type), used_propname);
+ return;
+ }
+
+ if (RNA_property_array_length(used_ptr, used_prop) < states)
+ used_prop = NULL;
+ }
+
+ /* layers are laid out going across rows, with the columns being divided into groups */
+
+ for (group = 0; group < groups; group++) {
+ uCol = uiLayoutColumn(layout, TRUE);
+
+ for (row = 0; row < 2; row++) {
+ uiBlock *block;
+ uiBut *but;
+
+ uRow = uiLayoutRow(uCol, TRUE);
+ block = uiLayoutGetBlock(uRow);
+ state = groups * cols_per_group * row + cols_per_group * group;
+
+ /* add layers as toggle buts */
+ for (col = 0; (col < cols_per_group) && (state < states); col++, state++) {
+ int icon = 0;
+ int butlay = 1 << state;
+
+ if (active_state & butlay)
+ icon = ICON_LAYER_ACTIVE;
+ else if (used_prop && RNA_property_boolean_get_index(used_ptr, used_prop, state))
+ icon = ICON_LAYER_USED;
+
+ but = uiDefIconButR_prop(block, ICONTOG, 0, icon, 0, 0, UI_UNIT_X / 2, UI_UNIT_Y / 2, ptr, prop, state, 0, 0, -1, -1, sca_state_name_get(ob, state));
+ uiButSetFunc(but, handle_layer_buttons, but, SET_INT_IN_POINTER(state));
+ but->type = TOG;
+ }
+ }
+ }
+}
+
/************************* List Template **************************/
@@ -2180,7 +2278,7 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
row = uiLayoutRow(split, TRUE);
if (i == 0 || (key->type != KEY_RELATIVE)) uiItemL(row, "", ICON_NONE);
else uiItemR(row, itemptr, "value", 0, "", ICON_NONE);
- uiItemR(row, itemptr, "mute", 0, "", 0);
+ uiItemR(row, itemptr, "mute", 0, "", ICON_NONE);
if ((kb->flag & KEYBLOCK_MUTE) ||
(ob->mode == OB_MODE_EDIT && !((ob->shapeflag & OB_SHAPE_EDIT_MODE) && ob->type == OB_MESH)))
@@ -2242,16 +2340,16 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
}
}
else if (itemptr->type == &RNA_MaskLayer) {
- split = uiLayoutSplit(sub, 0.5f, FALSE);
+ split = uiLayoutRow(sub, FALSE);
uiItemL(split, name, icon);
uiBlockSetEmboss(block, UI_EMBOSSN);
row = uiLayoutRow(split, TRUE);
- // uiItemR(row, itemptr, "alpha", 0, "", ICON_NONE); // enable when used
- uiItemR(row, itemptr, "hide", 0, "", 0);
- uiItemR(row, itemptr, "hide_select", 0, "", 0);
- uiItemR(row, itemptr, "hide_render", 0, "", 0);
+ uiItemR(row, itemptr, "alpha", 0, "", ICON_NONE);
+ uiItemR(row, itemptr, "hide", 0, "", ICON_NONE);
+ uiItemR(row, itemptr, "hide_select", 0, "", ICON_NONE);
+ uiItemR(row, itemptr, "hide_render", 0, "", ICON_NONE);
uiBlockSetEmboss(block, UI_EMBOSS);
}
@@ -2296,7 +2394,7 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
while (id < prop_names_end) {
if ((id_next = strchr(id, ':'))) *id_next++ = '\0';
else id_next = prop_names_end;
- uiItemR(row, itemptr, id, 0, NULL, 0);
+ uiItemR(row, itemptr, id, 0, NULL, ICON_NONE);
id = id_next;
}
MEM_freeN(prop_names);
@@ -2315,7 +2413,6 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname, PointerRNA *activeptr, const char *activepropname, const char *prop_list, int rows, int maxrows, int listtype)
{
- //Scene *scene = CTX_data_scene(C);
PropertyRNA *prop = NULL, *activeprop;
PropertyType type, activetype;
StructRNA *ptype;
@@ -2557,12 +2654,13 @@ void uiTemplateOperatorSearch(uiLayout *layout)
#define B_STOPCOMPO 4
#define B_STOPSEQ 5
#define B_STOPCLIP 6
+#define B_STOPOTHER 7
static void do_running_jobs(bContext *C, void *UNUSED(arg), int event)
{
switch (event) {
case B_STOPRENDER:
- G.afbreek = 1;
+ G.is_break = TRUE;
break;
case B_STOPCAST:
WM_jobs_stop(CTX_wm_manager(C), CTX_wm_screen(C), NULL);
@@ -2571,7 +2669,7 @@ static void do_running_jobs(bContext *C, void *UNUSED(arg), int event)
WM_operator_name_call(C, "SCREEN_OT_animation_play", WM_OP_INVOKE_SCREEN, NULL);
break;
case B_STOPCOMPO:
- WM_jobs_stop(CTX_wm_manager(C), CTX_wm_area(C), NULL);
+ WM_jobs_stop(CTX_wm_manager(C), CTX_data_scene(C), NULL);
break;
case B_STOPSEQ:
WM_jobs_stop(CTX_wm_manager(C), CTX_wm_area(C), NULL);
@@ -2579,6 +2677,9 @@ static void do_running_jobs(bContext *C, void *UNUSED(arg), int event)
case B_STOPCLIP:
WM_jobs_stop(CTX_wm_manager(C), CTX_wm_area(C), NULL);
break;
+ case B_STOPOTHER:
+ G.is_break = TRUE;
+ break;
}
}
@@ -2596,36 +2697,41 @@ void uiTemplateRunningJobs(uiLayout *layout, bContext *C)
uiBlockSetHandleFunc(block, do_running_jobs, NULL);
- if (sa->spacetype == SPACE_NODE) {
- if (WM_jobs_test(wm, sa))
- owner = sa;
- handle_event = B_STOPCOMPO;
- }
- else if (sa->spacetype == SPACE_SEQ) {
- if (WM_jobs_test(wm, sa))
+ if (sa->spacetype == SPACE_SEQ) {
+ if (WM_jobs_test(wm, sa, WM_JOB_TYPE_ANY))
owner = sa;
handle_event = B_STOPSEQ;
}
else if (sa->spacetype == SPACE_CLIP) {
- if (WM_jobs_test(wm, sa))
+ if (WM_jobs_test(wm, sa, WM_JOB_TYPE_ANY))
owner = sa;
handle_event = B_STOPCLIP;
}
else {
Scene *scene;
/* another scene can be rendering too, for example via compositor */
- for (scene = CTX_data_main(C)->scene.first; scene; scene = scene->id.next)
- if (WM_jobs_test(wm, scene))
+ for (scene = CTX_data_main(C)->scene.first; scene; scene = scene->id.next) {
+ if (WM_jobs_test(wm, scene, WM_JOB_TYPE_RENDER)) {
+ handle_event = B_STOPRENDER;
+ break;
+ }
+ else if (WM_jobs_test(wm, scene, WM_JOB_TYPE_COMPOSITE)) {
+ handle_event = B_STOPCOMPO;
break;
+ }
+ else if (WM_jobs_test(wm, scene, WM_JOB_TYPE_ANY)) {
+ handle_event = B_STOPOTHER;
+ break;
+ }
+ }
owner = scene;
- handle_event = B_STOPRENDER;
}
if (owner) {
uiLayout *ui_abs;
ui_abs = uiLayoutAbsolute(layout, FALSE);
- (void)ui_abs; // UNUSED
+ (void)ui_abs; /* UNUSED */
uiDefIconBut(block, BUT, handle_event, ICON_PANEL_CLOSE,
0, UI_UNIT_Y * 0.1, UI_UNIT_X * 0.8, UI_UNIT_Y * 0.8, NULL, 0.0f, 0.0f, 0, 0, TIP_("Stop this job"));
@@ -2634,7 +2740,7 @@ void uiTemplateRunningJobs(uiLayout *layout, bContext *C)
uiLayoutRow(layout, FALSE);
}
- if (WM_jobs_test(wm, screen))
+ if (WM_jobs_test(wm, screen, WM_JOB_TYPE_SCREENCAST))
uiDefIconTextBut(block, BUT, B_STOPCAST, ICON_CANCEL, IFACE_("Capture"), 0, 0, 85, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0,
TIP_("Stop screencast"));
if (screen->animtimer)
@@ -2768,3 +2874,56 @@ void uiTemplateKeymapItemProperties(uiLayout *layout, PointerRNA *ptr)
}
}
+/********************************* Color management *************************************/
+
+void uiTemplateColorspaceSettings(uiLayout *layout, PointerRNA *ptr, const char *propname)
+{
+ PropertyRNA *prop;
+ PointerRNA colorspace_settings_ptr;
+
+ prop = RNA_struct_find_property(ptr, propname);
+
+ if (!prop) {
+ printf("%s: property not found: %s.%s\n",
+ __func__, RNA_struct_identifier(ptr->type), propname);
+ return;
+ }
+
+ colorspace_settings_ptr = RNA_property_pointer_get(ptr, prop);
+
+ uiItemL(layout, "Color Space:", ICON_NONE);
+ uiItemR(layout, &colorspace_settings_ptr, "name", 0, "", ICON_NONE);
+}
+
+void uiTemplateColormanagedViewSettings(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr, const char *propname)
+{
+ PropertyRNA *prop;
+ PointerRNA view_transform_ptr;
+ uiLayout *col, *row;
+ ColorManagedViewSettings *view_settings;
+
+ prop = RNA_struct_find_property(ptr, propname);
+
+ if (!prop) {
+ printf("%s: property not found: %s.%s\n",
+ __func__, RNA_struct_identifier(ptr->type), propname);
+ return;
+ }
+
+ view_transform_ptr = RNA_property_pointer_get(ptr, prop);
+ view_settings = view_transform_ptr.data;
+
+ col = uiLayoutColumn(layout, FALSE);
+
+ row = uiLayoutRow(col, FALSE);
+ uiItemR(row, &view_transform_ptr, "view_transform", UI_ITEM_R_EXPAND, IFACE_("View"), ICON_NONE);
+
+ col = uiLayoutColumn(layout, FALSE);
+ uiItemR(col, &view_transform_ptr, "exposure", 0, NULL, ICON_NONE);
+ uiItemR(col, &view_transform_ptr, "gamma", 0, NULL, ICON_NONE);
+
+ col = uiLayoutColumn(layout, FALSE);
+ uiItemR(col, &view_transform_ptr, "use_curve_mapping", 0, NULL, ICON_NONE);
+ if (view_settings->flag & COLORMANAGE_VIEW_USE_CURVES)
+ uiTemplateCurveMapping(col, &view_transform_ptr, "curve_mapping", 'c', TRUE, 0);
+}
diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c
index 8ff8e0824d6..d363609fbd9 100644
--- a/source/blender/editors/interface/interface_utils.c
+++ b/source/blender/editors/interface/interface_utils.c
@@ -78,7 +78,7 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
if (arraylen && index == -1) {
if (ELEM(RNA_property_subtype(prop), PROP_COLOR, PROP_COLOR_GAMMA))
- but = uiDefButR_prop(block, COL, 0, name, x1, y1, x2, y2, ptr, prop, 0, 0, 0, -1, -1, NULL);
+ but = uiDefButR_prop(block, COLOR, 0, name, x1, y1, x2, y2, ptr, prop, 0, 0, 0, -1, -1, NULL);
}
else if (RNA_property_subtype(prop) == PROP_PERCENTAGE || RNA_property_subtype(prop) == PROP_FACTOR)
but = uiDefButR_prop(block, NUMSLI, 0, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
@@ -102,7 +102,8 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
else
but = uiDefButR_prop(block, TEX, 0, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
break;
- case PROP_POINTER: {
+ case PROP_POINTER:
+ {
PointerRNA pptr;
pptr = RNA_property_pointer_get(ptr, prop);
@@ -115,7 +116,8 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
but = uiDefIconTextButR_prop(block, IDPOIN, 0, icon, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL);
break;
}
- case PROP_COLLECTION: {
+ case PROP_COLLECTION:
+ {
char text[256];
BLI_snprintf(text, sizeof(text), IFACE_("%d items"), RNA_property_collection_length(ptr, prop));
but = uiDefBut(block, LABEL, 0, text, x1, y1, x2, y2, NULL, 0, 0, 0, 0, NULL);
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index 5ee89bb418f..0e1fd87c985 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -46,7 +46,6 @@
#include "BKE_context.h"
#include "BKE_curve.h"
-#include "BKE_utildefines.h"
#include "RNA_access.h"
@@ -260,8 +259,8 @@ static int round_box_shadow_edges(float (*vert)[2], rcti *rect, float rad, int r
rad += step;
- if (2.0f * rad > rect->ymax - rect->ymin)
- rad = 0.5f * (rect->ymax - rect->ymin);
+ if (2.0f * rad > BLI_rcti_size_y(rect))
+ rad = 0.5f * BLI_rcti_size_y(rect);
minx = rect->xmin - step;
miny = rect->ymin - step;
@@ -346,7 +345,8 @@ static void round_box__edges(uiWidgetBase *wt, int roundboxalign, rcti *rect, fl
const int vnum = ((roundboxalign & (UI_CNR_TOP_LEFT | UI_CNR_BOTTOM_LEFT)) == (UI_CNR_TOP_LEFT | UI_CNR_BOTTOM_LEFT) ||
(roundboxalign & (UI_CNR_TOP_RIGHT | UI_CNR_BOTTOM_RIGHT)) == (UI_CNR_TOP_RIGHT | UI_CNR_BOTTOM_RIGHT)) ? 1 : 2;
- minsize = MIN2((rect->xmax - rect->xmin) * hnum, (rect->ymax - rect->ymin) * vnum);
+ minsize = mini(BLI_rcti_size_x(rect) * hnum,
+ BLI_rcti_size_y(rect) * vnum);
if (2.0f * rad > minsize)
rad = 0.5f * minsize;
@@ -491,7 +491,7 @@ static void widget_num_tria(uiWidgetTrias *tria, rcti *rect, float triasize, cha
float centx, centy, sizex, sizey, minsize;
int a, i1 = 0, i2 = 1;
- minsize = MIN2(rect->xmax - rect->xmin, rect->ymax - rect->ymin);
+ minsize = mini(BLI_rcti_size_x(rect), BLI_rcti_size_y(rect));
/* center position and size */
centx = (float)rect->xmin + 0.5f * minsize;
@@ -526,7 +526,7 @@ static void widget_scroll_circle(uiWidgetTrias *tria, rcti *rect, float triasize
float centx, centy, sizex, sizey, minsize;
int a, i1 = 0, i2 = 1;
- minsize = MIN2(rect->xmax - rect->xmin, rect->ymax - rect->ymin);
+ minsize = mini(BLI_rcti_size_x(rect), BLI_rcti_size_y(rect));
/* center position and size */
centx = (float)rect->xmin + 0.5f * minsize;
@@ -570,14 +570,14 @@ static void widget_menu_trias(uiWidgetTrias *tria, rcti *rect)
int a;
/* center position and size */
- centx = rect->xmax - 0.5f * (rect->ymax - rect->ymin);
- centy = rect->ymin + 0.5f * (rect->ymax - rect->ymin);
- size = 0.4f * (rect->ymax - rect->ymin);
+ centx = rect->xmax - 0.5f * BLI_rcti_size_y(rect);
+ centy = rect->ymin + 0.5f * BLI_rcti_size_y(rect);
+ size = 0.4f * BLI_rcti_size_y(rect);
/* XXX exception */
- asp = ((float)rect->xmax - rect->xmin) / ((float)rect->ymax - rect->ymin);
+ asp = ((float)BLI_rcti_size_x(rect)) / ((float)BLI_rcti_size_y(rect));
if (asp > 1.2f && asp < 2.6f)
- centx = rect->xmax - 0.3f * (rect->ymax - rect->ymin);
+ centx = rect->xmax - 0.3f * BLI_rcti_size_y(rect);
for (a = 0; a < 6; a++) {
tria->vec[a][0] = size * menu_tria_vert[a][0] + centx;
@@ -594,9 +594,9 @@ static void widget_check_trias(uiWidgetTrias *tria, rcti *rect)
int a;
/* center position and size */
- centx = rect->xmin + 0.5f * (rect->ymax - rect->ymin);
- centy = rect->ymin + 0.5f * (rect->ymax - rect->ymin);
- size = 0.5f * (rect->ymax - rect->ymin);
+ centx = rect->xmin + 0.5f * BLI_rcti_size_y(rect);
+ centy = rect->ymin + 0.5f * BLI_rcti_size_y(rect);
+ size = 0.5f * BLI_rcti_size_y(rect);
for (a = 0; a < 6; a++) {
tria->vec[a][0] = size * check_tria_vert[a][0] + centx;
@@ -840,8 +840,8 @@ static void widget_draw_preview(BIFIconID icon, float UNUSED(alpha), rcti *rect)
if (icon == ICON_NONE)
return;
- w = rect->xmax - rect->xmin;
- h = rect->ymax - rect->ymin;
+ w = BLI_rcti_size_x(rect);
+ h = BLI_rcti_size_y(rect);
size = MIN2(w, h);
size -= PREVIEW_PAD * 2; /* padding */
@@ -891,8 +891,8 @@ static void widget_draw_icon(uiBut *but, BIFIconID icon, float alpha, rcti *rect
/* calculate blend color */
if (ELEM4(but->type, TOG, ROW, TOGN, LISTROW)) {
- if (but->flag & UI_SELECT) ;
- else if (but->flag & UI_ACTIVE) ;
+ if (but->flag & UI_SELECT) {}
+ else if (but->flag & UI_ACTIVE) {}
else alpha = 0.5f;
}
@@ -965,76 +965,110 @@ static void ui_text_clip_give_next_off(uiBut *but)
but->ofs += bytes;
}
-/* sets but->ofs to make sure text is correctly visible */
-static void ui_text_leftclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
+/**
+ * Cut off the start of the text to fit into the width of \a rect
+ *
+ * \note Sets but->ofs to make sure text is correctly visible.
+ * \note Clips right in some cases, this function could be cleaned up.
+ */
+static void ui_text_clip_left(uiFontStyle *fstyle, uiBut *but, rcti *rect)
{
int border = (but->flag & UI_BUT_ALIGN_RIGHT) ? 8 : 10;
- int okwidth = rect->xmax - rect->xmin - border;
-
+ int okwidth = BLI_rcti_size_x(rect) - border;
if (but->flag & UI_HAS_ICON) okwidth -= UI_DPI_ICON_SIZE;
-
+
/* need to set this first */
uiStyleFontSet(fstyle);
if (fstyle->kerning == 1) /* for BLF_width */
BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
- /* if text editing we define ofs dynamically */
- if (but->editstr && but->pos >= 0) {
- if (but->ofs > but->pos)
- but->ofs = but->pos;
+ but->ofs = 0;
+ but->strwidth = BLF_width(fstyle->uifont_id, but->drawstr);
- if (BLF_width(fstyle->uifont_id, but->drawstr) <= okwidth)
- but->ofs = 0;
+ while (but->strwidth > okwidth) {
+ ui_text_clip_give_next_off(but);
+ but->strwidth = BLF_width(fstyle->uifont_id, but->drawstr + but->ofs);
+ if (but->strwidth < 10) break;
}
- else but->ofs = 0;
-
+
+ if (fstyle->kerning == 1) {
+ BLF_disable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
+ }
+}
+
+/**
+ * Cut off the text, taking into account the cursor location (text display while editing).
+ */
+static void ui_text_clip_cursor(uiFontStyle *fstyle, uiBut *but, rcti *rect)
+{
+ int border = (but->flag & UI_BUT_ALIGN_RIGHT) ? 8 : 10;
+ int okwidth = BLI_rcti_size_x(rect) - border;
+ if (but->flag & UI_HAS_ICON) okwidth -= UI_DPI_ICON_SIZE;
+
+ BLI_assert(but->editstr && but->pos >= 0);
+
+ /* need to set this first */
+ uiStyleFontSet(fstyle);
+
+ if (fstyle->kerning == 1) /* for BLF_width */
+ BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
+
+ /* define ofs dynamically */
+ if (but->ofs > but->pos)
+ but->ofs = but->pos;
+
+ if (BLF_width(fstyle->uifont_id, but->drawstr) <= okwidth)
+ but->ofs = 0;
+
but->strwidth = BLF_width(fstyle->uifont_id, but->drawstr + but->ofs);
-
+
while (but->strwidth > okwidth) {
-
- /* textbut exception, clip right when... */
- if (but->editstr && but->pos >= 0) {
- float width;
- char buf[UI_MAX_DRAW_STR];
-
- /* copy draw string */
- BLI_strncpy_utf8(buf, but->drawstr, sizeof(buf));
- /* string position of cursor */
- buf[but->pos] = 0;
- width = BLF_width(fstyle->uifont_id, buf + but->ofs);
-
- /* if cursor is at 20 pixels of right side button we clip left */
- if (width > okwidth - 20)
- ui_text_clip_give_next_off(but);
- else {
- int len, bytes;
- /* shift string to the left */
- if (width < 20 && but->ofs > 0)
- ui_text_clip_give_prev_off(but);
- len = strlen(but->drawstr);
- bytes = BLI_str_utf8_size(BLI_str_find_prev_char_utf8(but->drawstr, but->drawstr + len));
- but->drawstr[len - bytes] = 0;
- }
- }
- else
+ float width;
+ char buf[UI_MAX_DRAW_STR];
+
+ /* copy draw string */
+ BLI_strncpy_utf8(buf, but->drawstr, sizeof(buf));
+ /* string position of cursor */
+ buf[but->pos] = 0;
+ width = BLF_width(fstyle->uifont_id, buf + but->ofs);
+
+ /* if cursor is at 20 pixels of right side button we clip left */
+ if (width > okwidth - 20) {
ui_text_clip_give_next_off(but);
+ }
+ else {
+ int len, bytes;
+ /* shift string to the left */
+ if (width < 20 && but->ofs > 0)
+ ui_text_clip_give_prev_off(but);
+ len = strlen(but->drawstr);
+ bytes = BLI_str_utf8_size(BLI_str_find_prev_char_utf8(but->drawstr, but->drawstr + len));
+ but->drawstr[len - bytes] = 0;
+ }
but->strwidth = BLF_width(fstyle->uifont_id, but->drawstr + but->ofs);
-
+
if (but->strwidth < 10) break;
}
-
- if (fstyle->kerning == 1)
+
+ if (fstyle->kerning == 1) {
BLF_disable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
+ }
}
-static void ui_text_label_rightclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
+/**
+ * Cut off the end of text to fit into the width of \a rect.
+ *
+ * \note deals with ': ' especially for number buttons
+ */
+static void ui_text_clip_right_label(uiFontStyle *fstyle, uiBut *but, rcti *rect)
{
int border = (but->flag & UI_BUT_ALIGN_RIGHT) ? 8 : 10;
- int okwidth = rect->xmax - rect->xmin - border;
+ int okwidth = BLI_rcti_size_x(rect) - border;
char *cpoin = NULL;
- char *cpend = but->drawstr + strlen(but->drawstr);
+ int drawstr_len = strlen(but->drawstr);
+ char *cpend = but->drawstr + drawstr_len;
/* need to set this first */
uiStyleFontSet(fstyle);
@@ -1045,6 +1079,13 @@ static void ui_text_label_rightclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
but->strwidth = BLF_width(fstyle->uifont_id, but->drawstr);
but->ofs = 0;
+
+ /* First shorten num-buttopns eg,
+ * Translucency: 0.000
+ * becomes
+ * Trans: 0.000
+ */
+
/* find the space after ':' separator */
cpoin = strrchr(but->drawstr, ':');
@@ -1057,8 +1098,11 @@ static void ui_text_label_rightclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
int bytes = cp2 - prev_utf8;
/* shift the text after and including cp2 back by 1 char, +1 to include null terminator */
- memmove(cp2 - bytes, cp2, strlen(cp2) + 1);
+ memmove(cp2 - bytes, cp2, drawstr_len + 1);
cp2 -= bytes;
+
+ drawstr_len -= bytes;
+ // BLI_assert(strlen(but->drawstr) == drawstr_len);
but->strwidth = BLF_width(fstyle->uifont_id, but->drawstr + but->ofs);
if (but->strwidth < 10) break;
@@ -1074,14 +1118,17 @@ static void ui_text_label_rightclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
}
+
+ /* Now just remove trailing chars */
/* once the label's gone, chop off the least significant digits */
while (but->strwidth > okwidth) {
- int len = strlen(but->drawstr);
- int bytes = BLI_str_utf8_size(BLI_str_find_prev_char_utf8(but->drawstr, but->drawstr + len));
+ int bytes = BLI_str_utf8_size(BLI_str_find_prev_char_utf8(but->drawstr, but->drawstr + drawstr_len));
if (bytes < 0)
bytes = 1;
- but->drawstr[len - bytes] = 0;
+ drawstr_len -= bytes;
+ but->drawstr[drawstr_len] = 0;
+ // BLI_assert(strlen(but->drawstr) == drawstr_len);
but->strwidth = BLF_width(fstyle->uifont_id, but->drawstr + but->ofs);
if (but->strwidth < 10) break;
@@ -1094,7 +1141,7 @@ static void ui_text_label_rightclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *but, rcti *rect)
{
-// int transopts;
+ //int transopts; // UNUSED
char *cpoin = NULL;
/* for underline drawing */
@@ -1169,7 +1216,7 @@ static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *b
#if 0
ui_rasterpos_safe(x, y, but->aspect);
- if (but->type == IDPOIN) transopts = 0; // no translation, of course!
+ if (but->type == IDPOIN) transopts = 0; /* no translation, of course! */
else transopts = ui_translate_buttons();
#endif
@@ -1229,60 +1276,63 @@ static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *b
/* draws text and icons for buttons */
static void widget_draw_text_icon(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *but, rcti *rect)
{
-
- if (but == NULL) return;
+ if (but == NULL) {
+ return;
+ }
/* clip but->drawstr to fit in available space */
if (but->editstr && but->pos >= 0) {
- ui_text_leftclip(fstyle, but, rect);
+ ui_text_clip_cursor(fstyle, but, rect);
}
else if (ELEM4(but->type, NUM, NUMABS, NUMSLI, SLI)) {
- ui_text_label_rightclip(fstyle, but, rect);
+ ui_text_clip_right_label(fstyle, but, rect);
}
else if (ELEM(but->type, TEX, SEARCH_MENU)) {
- ui_text_leftclip(fstyle, but, rect);
+ ui_text_clip_left(fstyle, but, rect);
}
else if ((but->block->flag & UI_BLOCK_LOOP) && (but->type == BUT)) {
- ui_text_leftclip(fstyle, but, rect);
+ ui_text_clip_left(fstyle, but, rect);
}
else but->ofs = 0;
-
+
/* check for button text label */
if (but->type == ICONTEXTROW) {
widget_draw_icon(but, (BIFIconID) (but->icon + but->iconadd), 1.0f, rect);
}
else {
-
+
if (but->type == BUT_TOGDUAL) {
int dualset = 0;
- if (but->pointype == SHO)
- dualset = BTST(*(((short *)but->poin) + 1), but->bitnr);
- else if (but->pointype == INT)
- dualset = BTST(*(((int *)but->poin) + 1), but->bitnr);
-
+ if (but->pointype == UI_BUT_POIN_SHORT) {
+ dualset = UI_BITBUT_TEST(*(((short *)but->poin) + 1), but->bitnr);
+ }
+ else if (but->pointype == UI_BUT_POIN_INT) {
+ dualset = UI_BITBUT_TEST(*(((int *)but->poin) + 1), but->bitnr);
+ }
+
widget_draw_icon(but, ICON_DOT, dualset ? 1.0f : 0.25f, rect);
}
else if (but->type == MENU && (but->flag & UI_BUT_NODE_LINK)) {
int tmp = rect->xmin;
- rect->xmin = rect->xmax - (rect->ymax - rect->ymin) - 1;
+ rect->xmin = rect->xmax - BLI_rcti_size_y(rect) - 1;
widget_draw_icon(but, ICON_LAYER_USED, 1.0f, rect);
rect->xmin = tmp;
}
-
+
/* If there's an icon too (made with uiDefIconTextBut) then draw the icon
* and offset the text label to accommodate it */
-
+
if (but->flag & UI_HAS_ICON) {
widget_draw_icon(but, but->icon + but->iconadd, 1.0f, rect);
-
+
rect->xmin += (int)((float)UI_icon_get_width(but->icon + but->iconadd) * UI_DPI_ICON_FAC);
-
- if (but->editstr || (but->flag & UI_TEXT_LEFT))
+
+ if (but->editstr || (but->flag & UI_TEXT_LEFT))
rect->xmin += 5;
}
- else if ((but->flag & UI_TEXT_LEFT))
+ else if ((but->flag & UI_TEXT_LEFT))
rect->xmin += 5;
-
+
/* always draw text for textbutton cursor */
widget_draw_text(fstyle, wcol, but, rect);
@@ -1653,13 +1703,13 @@ static void widget_state(uiWidgetType *wt, int state)
static void widget_state_numslider(uiWidgetType *wt, int state)
{
uiWidgetStateColors *wcol_state = wt->wcol_state;
- float blend = wcol_state->blend - 0.2f; // XXX special tweak to make sure that bar will still be visible
+ float blend = wcol_state->blend - 0.2f; /* XXX special tweak to make sure that bar will still be visible */
/* call this for option button */
widget_state(wt, state);
/* now, set the inner-part so that it reflects state settings too */
- // TODO: maybe we should have separate settings for the blending colors used for this case?
+ /* TODO: maybe we should have separate settings for the blending colors used for this case? */
if (state & UI_SELECT) {
if (state & UI_BUT_ANIMATED_KEY)
@@ -1759,8 +1809,8 @@ static void widget_softshadow(rcti *rect, int roundboxalign, float radin, float
float quad_strip[WIDGET_SIZE_MAX * 2][2];
/* prevent tooltips to not show round shadow */
- if (2.0f * radout > 0.2f * (rect1.ymax - rect1.ymin) )
- rect1.ymax -= 0.2f * (rect1.ymax - rect1.ymin);
+ if (2.0f * radout > 0.2f * BLI_rcti_size_y(&rect1))
+ rect1.ymax -= 0.2f * BLI_rcti_size_y(&rect1);
else
rect1.ymax -= 2.0f * radout;
@@ -1839,63 +1889,60 @@ static void ui_hsv_cursor(float x, float y)
}
-void ui_hsvcircle_vals_from_pos(float *valrad, float *valdist, rcti *rect, float mx, float my)
+void ui_hsvcircle_vals_from_pos(float *val_rad, float *val_dist, const rcti *rect,
+ const float mx, const float my)
{
/* duplication of code... well, simple is better now */
- float centx = (float)(rect->xmin + rect->xmax) / 2;
- float centy = (float)(rect->ymin + rect->ymax) / 2;
- float radius, dist;
-
- if (rect->xmax - rect->xmin > rect->ymax - rect->ymin)
- radius = (float)(rect->ymax - rect->ymin) / 2;
- else
- radius = (float)(rect->xmax - rect->xmin) / 2;
+ const float centx = BLI_rcti_cent_x_fl(rect);
+ const float centy = BLI_rcti_cent_y_fl(rect);
+ const float radius = (float)mini(BLI_rcti_size_x(rect), BLI_rcti_size_y(rect)) / 2.0f;
+ const float m_delta[2] = {mx - centx, my - centy};
+ const float dist_squared = len_squared_v2(m_delta);
- mx -= centx;
- my -= centy;
- dist = sqrt(mx * mx + my * my);
- if (dist < radius)
- *valdist = dist / radius;
- else
- *valdist = 1.0f;
-
- *valrad = atan2f(mx, my) / (2.0f * (float)M_PI) + 0.5f;
+ *val_dist = (dist_squared < (radius * radius)) ? sqrtf(dist_squared) / radius : 1.0f;
+ *val_rad = atan2f(m_delta[0], m_delta[1]) / (2.0f * (float)M_PI) + 0.5f;
}
-static void ui_draw_but_HSVCIRCLE(uiBut *but, uiWidgetColors *wcol, rcti *rect)
+static void ui_draw_but_HSVCIRCLE(uiBut *but, uiWidgetColors *wcol, const rcti *rect)
{
+ const int tot = 32;
+ const float radstep = 2.0f * (float)M_PI / (float)tot;
+
+ const float centx = BLI_rcti_cent_x_fl(rect);
+ const float centy = BLI_rcti_cent_y_fl(rect);
+ float radius = (float)mini(BLI_rcti_size_x(rect), BLI_rcti_size_y(rect)) / 2.0f;
+
/* gouraud triangle fan */
- float radstep, ang = 0.0f;
- float centx, centy, radius, cursor_radius;
+ const float *hsv_ptr = ui_block_hsv_get(but->block);
+ float ang = 0.0f;
+ float cursor_radius;
float rgb[3], hsvo[3], hsv[3], col[3], colcent[3];
- int a, tot = 32;
+ int a;
int color_profile = but->block->color_profile;
if (but->rnaprop && RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA)
- color_profile = BLI_PR_NONE;
-
- radstep = 2.0f * (float)M_PI / (float)tot;
- centx = (float)(rect->xmin + rect->xmax) / 2;
- centy = (float)(rect->ymin + rect->ymax) / 2;
-
- if (rect->xmax - rect->xmin > rect->ymax - rect->ymin)
- radius = (float)(rect->ymax - rect->ymin) / 2;
- else
- radius = (float)(rect->xmax - rect->xmin) / 2;
+ color_profile = FALSE;
/* color */
ui_get_but_vectorf(but, rgb);
- copy_v3_v3(hsv, ui_block_hsv_get(but->block));
+
+ /* since we use compat functions on both 'hsv' and 'hsvo', they need to be initialized */
+ hsvo[0] = hsv[0] = hsv_ptr[0];
+ hsvo[1] = hsv[1] = hsv_ptr[1];
+ hsvo[2] = hsv[2] = hsv_ptr[2];
+
+ rgb_to_hsv_compat_v(rgb, hsvo);
+
+ if (color_profile)
+ ui_block_to_display_space_v3(but->block, rgb);
+
rgb_to_hsv_compat_v(rgb, hsv);
- copy_v3_v3(hsvo, hsv);
/* exception: if 'lock' is set
* lock the value of the color wheel to 1.
* Useful for color correction tools where you're only interested in hue. */
if (but->flag & UI_BUT_COLOR_LOCK)
hsv[2] = 1.f;
- else if (color_profile)
- hsv[2] = linearrgb_to_srgb(hsv[2]);
hsv_to_rgb(0.f, 0.f, hsv[2], colcent, colcent + 1, colcent + 2);
@@ -1952,8 +1999,8 @@ void ui_draw_gradient(rcti *rect, const float hsv[3], const int type, const floa
int a;
float h = hsv[0], s = hsv[1], v = hsv[2];
float dx, dy, sx1, sx2, sy;
- float col0[4][3]; // left half, rect bottom to top
- float col1[4][3]; // right half, rect bottom to top
+ float col0[4][3]; /* left half, rect bottom to top */
+ float col1[4][3]; /* right half, rect bottom to top */
/* draw series of gouraud rects */
glShadeModel(GL_SMOOTH);
@@ -2006,13 +2053,13 @@ void ui_draw_gradient(rcti *rect, const float hsv[3], const int type, const floa
/* old below */
for (dx = 0.0f; dx < 1.0f; dx += color_step) {
- // previous color
+ /* previous color */
copy_v3_v3(col0[0], col1[0]);
copy_v3_v3(col0[1], col1[1]);
copy_v3_v3(col0[2], col1[2]);
copy_v3_v3(col0[3], col1[3]);
- // new color
+ /* new color */
switch (type) {
case UI_GRAD_SV:
hsv_to_rgb(h, 0.0, dx, &col1[0][0], &col1[0][1], &col1[0][2]);
@@ -2056,11 +2103,11 @@ void ui_draw_gradient(rcti *rect, const float hsv[3], const int type, const floa
break;
}
- // rect
- sx1 = rect->xmin + dx * (rect->xmax - rect->xmin);
- sx2 = rect->xmin + (dx + color_step) * (rect->xmax - rect->xmin);
+ /* rect */
+ sx1 = rect->xmin + dx * BLI_rcti_size_x(rect);
+ sx2 = rect->xmin + (dx + color_step) * BLI_rcti_size_x(rect);
sy = rect->ymin;
- dy = (rect->ymax - rect->ymin) / 3.0;
+ dy = BLI_rcti_size_y(rect) / 3.0;
glBegin(GL_QUADS);
for (a = 0; a < 3; a++, sy += dy) {
@@ -2115,8 +2162,8 @@ static void ui_draw_but_HSVCUBE(uiBut *but, rcti *rect)
}
/* cursor */
- x = rect->xmin + x * (rect->xmax - rect->xmin);
- y = rect->ymin + y * (rect->ymax - rect->ymin);
+ x = rect->xmin + x * BLI_rcti_size_x(rect);
+ y = rect->ymin + y * BLI_rcti_size_y(rect);
CLAMP(x, rect->xmin + 3.0f, rect->xmax - 3.0f);
CLAMP(y, rect->ymin + 3.0f, rect->ymax - 3.0f);
@@ -2131,21 +2178,22 @@ static void ui_draw_but_HSVCUBE(uiBut *but, rcti *rect)
static void ui_draw_but_HSV_v(uiBut *but, rcti *rect)
{
uiWidgetBase wtb;
- float rad = 0.5f * (rect->xmax - rect->xmin);
+ float rad = 0.5f * BLI_rcti_size_x(rect);
float x, y;
float rgb[3], hsv[3], v, range;
int color_profile = but->block->color_profile;
if (but->rnaprop && RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA)
- color_profile = BLI_PR_NONE;
+ color_profile = FALSE;
ui_get_but_vectorf(but, rgb);
+
+ if (color_profile)
+ ui_block_to_display_space_v3(but->block, rgb);
+
rgb_to_hsv_v(rgb, hsv);
v = hsv[2];
- if (color_profile)
- v = linearrgb_to_srgb(v);
-
/* map v from property range to [0,1] */
range = but->softmax - but->softmin;
v = (v - but->softmin) / range;
@@ -2165,8 +2213,8 @@ static void ui_draw_but_HSV_v(uiBut *but, rcti *rect)
widgetbase_draw(&wtb, &wcol_tmp);
/* cursor */
- x = rect->xmin + 0.5f * (rect->xmax - rect->xmin);
- y = rect->ymin + v * (rect->ymax - rect->ymin);
+ x = rect->xmin + 0.5f * BLI_rcti_size_x(rect);
+ y = rect->ymin + v * BLI_rcti_size_y(rect);
CLAMP(y, rect->ymin + 3.0f, rect->ymax - 3.0f);
ui_hsv_cursor(x, y);
@@ -2177,7 +2225,7 @@ static void ui_draw_but_HSV_v(uiBut *but, rcti *rect)
/* ************ separator, for menus etc ***************** */
static void ui_draw_separator(rcti *rect, uiWidgetColors *wcol)
{
- int y = rect->ymin + (rect->ymax - rect->ymin) / 2 - 1;
+ int y = rect->ymin + BLI_rcti_size_y(rect) / 2 - 1;
unsigned char col[4];
col[0] = wcol->text[0];
@@ -2196,7 +2244,7 @@ static void ui_draw_separator(rcti *rect, uiWidgetColors *wcol)
static void widget_numbut(uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
{
uiWidgetBase wtb;
- float rad = 0.5f * (rect->ymax - rect->ymin);
+ float rad = 0.5f * BLI_rcti_size_y(rect);
float textofs = rad * 0.75f;
if (state & UI_SELECT)
@@ -2220,7 +2268,6 @@ static void widget_numbut(uiWidgetColors *wcol, rcti *rect, int state, int round
rect->xmax -= textofs;
}
-//static int ui_link_bezier_points(rcti *rect, float coord_array[][2], int resol)
int ui_link_bezier_points(rcti *rect, float coord_array[][2], int resol)
{
float dist, vec[4][2];
@@ -2251,7 +2298,7 @@ void ui_draw_link_bezier(rcti *rect)
if (ui_link_bezier_points(rect, coord_array, LINK_RESOL)) {
/* we can reuse the dist variable here to increment the GL curve eval amount*/
- // const float dist = 1.0f/(float)LINK_RESOL; // UNUSED
+ // const float dist = 1.0f / (float)LINK_RESOL; // UNUSED
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
@@ -2278,12 +2325,12 @@ void uiWidgetScrollDraw(uiWidgetColors *wcol, rcti *rect, rcti *slider, int stat
widget_init(&wtb);
/* determine horizontal/vertical */
- horizontal = (rect->xmax - rect->xmin > rect->ymax - rect->ymin);
+ horizontal = (BLI_rcti_size_x(rect) > BLI_rcti_size_y(rect));
if (horizontal)
- rad = 0.5f * (rect->ymax - rect->ymin);
+ rad = 0.5f * BLI_rcti_size_y(rect);
else
- rad = 0.5f * (rect->xmax - rect->xmin);
+ rad = 0.5f * BLI_rcti_size_x(rect);
wtb.shadedir = (horizontal) ? 1 : 0;
@@ -2295,9 +2342,10 @@ void uiWidgetScrollDraw(uiWidgetColors *wcol, rcti *rect, rcti *slider, int stat
widgetbase_draw(&wtb, wcol);
/* slider */
- if (slider->xmax - slider->xmin < 2 || slider->ymax - slider->ymin < 2) ;
+ if ((BLI_rcti_size_x(slider) < 2) || (BLI_rcti_size_y(slider) < 2)) {
+ /* pass */
+ }
else {
-
SWAP(short, wcol->shadetop, wcol->shadedown);
copy_v4_v4_char(wcol->inner, wcol->item);
@@ -2360,34 +2408,34 @@ static void widget_scroll(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat
rect1 = *rect;
/* determine horizontal/vertical */
- horizontal = (rect->xmax - rect->xmin > rect->ymax - rect->ymin);
+ horizontal = (BLI_rcti_size_x(rect) > BLI_rcti_size_y(rect));
if (horizontal) {
- fac = (rect->xmax - rect->xmin) / (size);
+ fac = BLI_rcti_size_x(rect) / size;
rect1.xmin = rect1.xmin + ceilf(fac * ((float)value - but->softmin));
rect1.xmax = rect1.xmin + ceilf(fac * (but->a1 - but->softmin));
/* ensure minimium size */
- min = rect->ymax - rect->ymin;
+ min = BLI_rcti_size_y(rect);
- if (rect1.xmax - rect1.xmin < min) {
+ if (BLI_rcti_size_x(&rect1) < min) {
rect1.xmax = rect1.xmin + min;
if (rect1.xmax > rect->xmax) {
rect1.xmax = rect->xmax;
- rect1.xmin = MAX2(rect1.xmax - min, rect->xmin);
+ rect1.xmin = maxi(rect1.xmax - min, rect->xmin);
}
}
}
else {
- fac = (rect->ymax - rect->ymin) / (size);
+ fac = BLI_rcti_size_y(rect) / size;
rect1.ymax = rect1.ymax - ceilf(fac * ((float)value - but->softmin));
rect1.ymin = rect1.ymax - ceilf(fac * (but->a1 - but->softmin));
/* ensure minimium size */
- min = rect->xmax - rect->xmin;
+ min = BLI_rcti_size_x(rect);
- if (rect1.ymax - rect1.ymin < min) {
+ if (BLI_rcti_size_y(&rect1) < min) {
rect1.ymax = rect1.ymin + min;
if (rect1.ymax > rect->ymax) {
@@ -2415,10 +2463,10 @@ static void widget_progressbar(uiBut *but, uiWidgetColors *wcol, rcti *rect, int
rect_prog.ymax = rect_prog.ymin + 4;
rect_bar.ymax = rect_bar.ymin + 4;
- w = value * (rect_prog.xmax - rect_prog.xmin);
+ w = value * BLI_rcti_size_x(&rect_prog);
/* ensure minimium size */
- min = rect_prog.ymax - rect_prog.ymin;
+ min = BLI_rcti_size_y(&rect_prog);
w = MAX2(w, min);
rect_bar.xmax = rect_bar.xmin + w;
@@ -2438,8 +2486,8 @@ static void widget_link(uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *rect, in
UI_ThemeColor(TH_TEXT_HI);
- rectlink.xmin = (rect->xmin + rect->xmax) / 2;
- rectlink.ymin = (rect->ymin + rect->ymax) / 2;
+ rectlink.xmin = BLI_rcti_cent_x(rect);
+ rectlink.ymin = BLI_rcti_cent_y(rect);
rectlink.xmax = but->linkto[0];
rectlink.ymax = but->linkto[1];
@@ -2461,7 +2509,7 @@ static void widget_numslider(uiBut *but, uiWidgetColors *wcol, rcti *rect, int s
/* backdrop first */
/* fully rounded */
- offs = 0.5f * (rect->ymax - rect->ymin);
+ offs = 0.5f * BLI_rcti_size_y(rect);
toffs = offs * 0.75f;
round_box_edges(&wtb, roundboxalign, rect, offs);
@@ -2482,7 +2530,7 @@ static void widget_numslider(uiBut *but, uiWidgetColors *wcol, rcti *rect, int s
rect1 = *rect;
value = ui_get_but_val(but);
- fac = ((float)value - but->softmin) * (rect1.xmax - rect1.xmin - offs) / (but->softmax - but->softmin);
+ fac = ((float)value - but->softmin) * (BLI_rcti_size_x(&rect1) - offs) / (but->softmax - but->softmin);
/* left part of slider, always rounded */
rect1.xmax = rect1.xmin + ceil(offs + 1.0f);
@@ -2529,7 +2577,7 @@ static void widget_swatch(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat
if (but->rnaprop) {
if (RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA)
- color_profile = BLI_PR_NONE;
+ color_profile = FALSE;
if (RNA_property_array_length(&but->rnapoin, but->rnaprop) == 4) {
col[3] = RNA_property_float_get_index(&but->rnapoin, but->rnaprop, 3);
@@ -2542,12 +2590,12 @@ static void widget_swatch(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat
round_box_edges(&wtb, roundboxalign, rect, 5.0f);
ui_get_but_vectorf(but, col);
-
+
if (state & (UI_BUT_ANIMATED | UI_BUT_ANIMATED_KEY | UI_BUT_DRIVEN | UI_BUT_REDALERT)) {
- // draw based on state - color for keyed etc
+ /* draw based on state - color for keyed etc */
widgetbase_draw(&wtb, wcol);
-
- // inset to draw swatch color
+
+ /* inset to draw swatch color */
rect->xmin += SWATCH_KEYED_BORDER;
rect->xmax -= SWATCH_KEYED_BORDER;
rect->ymin += SWATCH_KEYED_BORDER;
@@ -2557,7 +2605,7 @@ static void widget_swatch(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat
}
if (color_profile)
- linearrgb_to_srgb_v3_v3(col, col);
+ ui_block_to_display_space_v3(but->block, col);
rgba_float_to_uchar((unsigned char *)wcol->inner, col);
@@ -2615,7 +2663,7 @@ static void widget_menubut(uiWidgetColors *wcol, rcti *rect, int UNUSED(state),
widgetbase_draw(&wtb, wcol);
/* text space */
- rect->xmax -= (rect->ymax - rect->ymin);
+ rect->xmax -= BLI_rcti_size_y(rect);
}
static void widget_menuiconbut(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int roundboxalign)
@@ -2654,16 +2702,16 @@ static void widget_menunodebut(uiWidgetColors *wcol, rcti *rect, int UNUSED(stat
*wcol = wcol_backup;
}
-static void widget_pulldownbut(uiWidgetColors *wcol, rcti *rect, int state, int UNUSED(roundboxalign))
+static void widget_pulldownbut(uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
{
if (state & UI_ACTIVE) {
uiWidgetBase wtb;
- float rad = 0.5f * (rect->ymax - rect->ymin); // 4.0f
-
+ float rad = 0.25f * BLI_rcti_size_y(rect); /* 4.0f */
+
widget_init(&wtb);
-
+
/* half rounded */
- round_box_edges(&wtb, UI_CNR_ALL, rect, rad);
+ round_box_edges(&wtb, roundboxalign, rect, rad);
widgetbase_draw(&wtb, wcol);
}
@@ -2704,10 +2752,10 @@ static void widget_optionbut(uiWidgetColors *wcol, rcti *rect, int state, int UN
widget_init(&wtb);
/* square */
- recttemp.xmax = recttemp.xmin + (recttemp.ymax - recttemp.ymin);
+ recttemp.xmax = recttemp.xmin + BLI_rcti_size_y(&recttemp);
/* smaller */
- delta = 1 + (recttemp.ymax - recttemp.ymin) / 8;
+ delta = 1 + BLI_rcti_size_y(&recttemp) / 8;
recttemp.xmin += delta;
recttemp.ymin += delta;
recttemp.xmax -= delta;
@@ -2724,7 +2772,7 @@ static void widget_optionbut(uiWidgetColors *wcol, rcti *rect, int state, int UN
widgetbase_draw(&wtb, wcol);
/* text space */
- rect->xmin += (rect->ymax - rect->ymin) * 0.7 + delta;
+ rect->xmin += BLI_rcti_size_y(rect) * 0.7 + delta;
}
@@ -2786,7 +2834,7 @@ static void widget_but(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int
static void widget_roundbut(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int roundboxalign)
{
uiWidgetBase wtb;
- float rad = 5.0f; //0.5f*(rect->ymax - rect->ymin);
+ float rad = 5.0f; /* 0.5f * BLI_rcti_size_y(rect); */
widget_init(&wtb);
@@ -3000,9 +3048,12 @@ static uiWidgetType *widget_type(uiWidgetTypeEnum type)
static int widget_roundbox_set(uiBut *but, rcti *rect)
{
+ int roundbox = UI_CNR_ALL;
+
/* alignment */
- if (but->flag & UI_BUT_ALIGN) {
+ if ((but->flag & UI_BUT_ALIGN) && but->type != PULLDOWN) {
+ /* ui_block_position has this correction too, keep in sync */
if (but->flag & UI_BUT_ALIGN_TOP)
rect->ymax += 1;
if (but->flag & UI_BUT_ALIGN_LEFT)
@@ -3010,27 +3061,50 @@ static int widget_roundbox_set(uiBut *but, rcti *rect)
switch (but->flag & UI_BUT_ALIGN) {
case UI_BUT_ALIGN_TOP:
- return UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT;
+ roundbox = UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT;
+ break;
case UI_BUT_ALIGN_DOWN:
- return UI_CNR_TOP_LEFT | UI_CNR_TOP_RIGHT;
+ roundbox = UI_CNR_TOP_LEFT | UI_CNR_TOP_RIGHT;
+ break;
case UI_BUT_ALIGN_LEFT:
- return UI_CNR_TOP_RIGHT | UI_CNR_BOTTOM_RIGHT;
+ roundbox = UI_CNR_TOP_RIGHT | UI_CNR_BOTTOM_RIGHT;
+ break;
case UI_BUT_ALIGN_RIGHT:
- return UI_CNR_TOP_LEFT | UI_CNR_BOTTOM_LEFT;
+ roundbox = UI_CNR_TOP_LEFT | UI_CNR_BOTTOM_LEFT;
+ break;
case UI_BUT_ALIGN_DOWN | UI_BUT_ALIGN_RIGHT:
- return UI_CNR_TOP_LEFT;
+ roundbox = UI_CNR_TOP_LEFT;
+ break;
case UI_BUT_ALIGN_DOWN | UI_BUT_ALIGN_LEFT:
- return UI_CNR_TOP_RIGHT;
+ roundbox = UI_CNR_TOP_RIGHT;
+ break;
case UI_BUT_ALIGN_TOP | UI_BUT_ALIGN_RIGHT:
- return UI_CNR_BOTTOM_LEFT;
+ roundbox = UI_CNR_BOTTOM_LEFT;
+ break;
case UI_BUT_ALIGN_TOP | UI_BUT_ALIGN_LEFT:
- return UI_CNR_BOTTOM_RIGHT;
+ roundbox = UI_CNR_BOTTOM_RIGHT;
+ break;
default:
- return 0;
+ roundbox = 0;
+ break;
}
}
- return UI_CNR_ALL;
+ /* align with open menu */
+ if (but->active) {
+ int direction = ui_button_open_menu_direction(but);
+
+ if (direction == UI_TOP)
+ roundbox &= ~(UI_CNR_TOP_RIGHT|UI_CNR_TOP_LEFT);
+ else if (direction == UI_DOWN)
+ roundbox &= ~(UI_CNR_BOTTOM_RIGHT|UI_CNR_BOTTOM_LEFT);
+ else if (direction == UI_LEFT)
+ roundbox &= ~(UI_CNR_TOP_LEFT|UI_CNR_BOTTOM_LEFT);
+ else if (direction == UI_RIGHT)
+ roundbox &= ~(UI_CNR_TOP_RIGHT|UI_CNR_BOTTOM_RIGHT);
+ }
+
+ return roundbox;
}
/* conversion from old to new buttons, so still messy */
@@ -3154,7 +3228,7 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct
wt = widget_type(UI_WTYPE_MENU_ITEM);
break;
- case COL:
+ case COLOR:
wt = widget_type(UI_WTYPE_SWATCH);
break;
@@ -3175,10 +3249,12 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct
break;
case HSVCUBE:
- if (but->a1 == UI_GRAD_V_ALT) // vertical V slider, uses new widget draw now
+ if (but->a1 == UI_GRAD_V_ALT) { /* vertical V slider, uses new widget draw now */
ui_draw_but_HSV_v(but, rect);
- else // other HSV pickers...
+ }
+ else { /* other HSV pickers... */
ui_draw_but_HSVCUBE(but, rect);
+ }
break;
case HSVCIRCLE:
@@ -3267,12 +3343,12 @@ void ui_draw_menu_back(uiStyle *UNUSED(style), uiBlock *block, rcti *rect)
if (block->flag & UI_BLOCK_CLIPTOP) {
/* XXX no scaling for UI here yet */
glColor3ubv((unsigned char *)wt->wcol.text);
- UI_DrawTriIcon((rect->xmax + rect->xmin) / 2, rect->ymax - 8, 't');
+ UI_DrawTriIcon(BLI_rcti_cent_x(rect), rect->ymax - 8, 't');
}
if (block->flag & UI_BLOCK_CLIPBOTTOM) {
/* XXX no scaling for UI here yet */
glColor3ubv((unsigned char *)wt->wcol.text);
- UI_DrawTriIcon((rect->xmax + rect->xmin) / 2, rect->ymin + 10, 'v');
+ UI_DrawTriIcon(BLI_rcti_cent_x(rect), rect->ymin + 10, 'v');
}
}
}
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index 407b2308af8..1efb24341b8 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -91,7 +91,7 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo
if (btheme) {
- // first check for ui buttons theme
+ /* first check for ui buttons theme */
if (colorid < TH_THEMEUI) {
switch (colorid) {
@@ -303,6 +303,8 @@ const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colo
cp = ts->bone_solid; break;
case TH_BONE_POSE:
cp = ts->bone_pose; break;
+ case TH_BONE_POSE_ACTIVE:
+ cp = ts->bone_pose_active; break;
case TH_STRIP:
cp = ts->strip; break;
case TH_STRIP_SELECT:
@@ -641,9 +643,7 @@ void ui_theme_init_default(void)
bTheme *btheme;
/* we search for the theme with name Default */
- for (btheme = U.themes.first; btheme; btheme = btheme->next) {
- if (strcmp("Default", btheme->name) == 0) break;
- }
+ btheme = BLI_findstring(&U.themes, "Default", offsetof(bTheme, name));
if (btheme == NULL) {
btheme = MEM_callocN(sizeof(bTheme), "theme");
@@ -739,6 +739,7 @@ void ui_theme_init_default(void)
rgba_char_args_set(btheme->tv3d.bone_solid, 200, 200, 200, 255);
/* alpha 80 is not meant editable, used for wire+action draw */
rgba_char_args_set(btheme->tv3d.bone_pose, 80, 200, 255, 80);
+ rgba_char_args_set(btheme->tv3d.bone_pose_active, 140, 255, 255, 80);
rgba_char_args_set(btheme->tv3d.bundle_solid, 200, 200, 200, 255);
rgba_char_args_set(btheme->tv3d.camera_path, 0x00, 0x00, 0x00, 255);
@@ -900,6 +901,7 @@ void ui_theme_init_default(void)
rgba_char_args_set(btheme->tnode.syntaxb, 108, 105, 111, 255); /* operator */
rgba_char_args_set(btheme->tnode.syntaxv, 104, 106, 117, 255); /* generator */
rgba_char_args_set(btheme->tnode.syntaxc, 105, 117, 110, 255); /* group */
+ rgba_char_args_set(btheme->tnode.movie, 155, 155, 155, 160); /* frame */
btheme->tnode.noodle_curving = 5;
/* space logic */
@@ -936,14 +938,14 @@ void UI_SetTheme(int spacetype, int regionid)
theme_regionid = RGN_TYPE_WINDOW;
}
else {
- // later on, a local theme can be found too
+ /* later on, a local theme can be found too */
theme_active = U.themes.first;
theme_spacetype = spacetype;
theme_regionid = regionid;
}
}
-bTheme *UI_GetTheme()
+bTheme *UI_GetTheme(void)
{
return U.themes.first;
}
@@ -1213,7 +1215,8 @@ void UI_GetColorPtrShade3ubv(const unsigned char cp[3], unsigned char col[3], in
}
// get a 3 byte color, blended and shaded between two other char color pointers
-void UI_GetColorPtrBlendShade3ubv(const unsigned char cp1[3], const unsigned char cp2[3], unsigned char col[3], float fac, int offset)
+void UI_GetColorPtrBlendShade3ubv(const unsigned char cp1[3], const unsigned char cp2[3], unsigned char col[3],
+ float fac, int offset)
{
int r, g, b;
@@ -1295,8 +1298,8 @@ void init_userdef_do_versions(void)
/* transform widget settings */
if (U.tw_hotspot == 0) {
U.tw_hotspot = 14;
- U.tw_size = 20; // percentage of window size
- U.tw_handlesize = 16; // percentage of widget radius
+ U.tw_size = 20; /* percentage of window size */
+ U.tw_handlesize = 16; /* percentage of widget radius */
}
if (U.pad_rot_angle == 0)
U.pad_rot_angle = 15;
@@ -1353,7 +1356,7 @@ void init_userdef_do_versions(void)
for (btheme = U.themes.first; btheme; btheme = btheme->next) {
/* check for (alpha == 0) is safe, then color was never set */
if (btheme->ttime.back[3] == 0) {
- // copied from ui_theme_init_default
+ /* copied from ui_theme_init_default */
btheme->ttime = btheme->tv3d;
rgba_char_args_set_fl(btheme->ttime.back, 0.45, 0.45, 0.45, 1.0);
rgba_char_args_set_fl(btheme->ttime.grid, 0.36, 0.36, 0.36, 1.0);
@@ -1740,7 +1743,8 @@ void init_userdef_do_versions(void)
}
if (bmain->versionfile < 257) {
- /* clear "AUTOKEY_FLAG_ONLYKEYINGSET" flag from userprefs, so that it doesn't linger around from old configs like a ghost */
+ /* clear "AUTOKEY_FLAG_ONLYKEYINGSET" flag from userprefs,
+ * so that it doesn't linger around from old configs like a ghost */
U.autokey_flag &= ~AUTOKEY_FLAG_ONLYKEYINGSET;
}
@@ -1912,6 +1916,37 @@ void init_userdef_do_versions(void)
}
}
+ if (bmain->versionfile < 263 || (bmain->versionfile == 263 && bmain->subversionfile < 15)) {
+ bTheme *btheme;
+ for (btheme = U.themes.first; btheme; btheme = btheme->next) {
+ rgba_char_args_set(btheme->tv3d.bone_pose_active, 140, 255, 255, 80);
+ }
+ }
+
+ if (bmain->versionfile < 263 || (bmain->versionfile == 263 && bmain->subversionfile < 16)) {
+ bTheme *btheme;
+
+ for (btheme = U.themes.first; btheme; btheme = btheme->next) {
+ if (btheme->tact.anim_active[3] == 0)
+ rgba_char_args_set(btheme->tact.anim_active, 204, 112, 26, 102);
+
+ if (btheme->tnla.anim_active[3] == 0)
+ rgba_char_args_set(btheme->tnla.anim_active, 204, 112, 26, 102);
+ }
+ }
+
+ if (bmain->versionfile < 263 || (bmain->versionfile == 263 && bmain->subversionfile < 22)) {
+ bTheme *btheme;
+
+ for (btheme = U.themes.first; btheme; btheme = btheme->next) {
+ if (btheme->tipo.lastsel_point[3] == 0)
+ rgba_char_args_set(btheme->tipo.lastsel_point, 0xff, 0xff, 0xff, 255);
+
+ if (btheme->tv3d.skin_root[3] == 0)
+ rgba_char_args_set(btheme->tv3d.skin_root, 180, 77, 77, 255);
+ }
+ }
+
/* GL Texture Garbage Collection (variable abused above!) */
if (U.textimeout == 0) {
U.texcollectrate = 60;
@@ -1926,9 +1961,6 @@ void init_userdef_do_versions(void)
if (U.dbl_click_time == 0) {
U.dbl_click_time = 350;
}
- if (U.anim_player_preset == 0) {
- U.anim_player_preset = 1;
- }
if (U.scrcastfps == 0) {
U.scrcastfps = 10;
U.scrcastwait = 50;
@@ -1948,6 +1980,13 @@ void init_userdef_do_versions(void)
U.ndof_flag = NDOF_LOCK_HORIZON |
NDOF_SHOULD_PAN | NDOF_SHOULD_ZOOM | NDOF_SHOULD_ROTATE;
}
+
+ if (U.ndof_orbit_sensitivity == 0.0f) {
+ U.ndof_orbit_sensitivity = U.ndof_sensitivity;
+
+ if (!(U.flag & USER_TRACKBALL))
+ U.ndof_flag |= NDOF_TURNTABLE;
+ }
if (U.tweak_threshold == 0)
U.tweak_threshold = 10;
diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c
index 392aae1632d..47bee92be62 100644
--- a/source/blender/editors/interface/view2d.c
+++ b/source/blender/editors/interface/view2d.c
@@ -91,16 +91,16 @@ static void view2d_masks(View2D *v2d)
v2d->mask.ymax = v2d->winy - 1;
#if 0
- // XXX see above
+ /* XXX see above */
v2d->scroll &= ~(V2D_SCROLL_HORIZONTAL_HIDE | V2D_SCROLL_VERTICAL_HIDE);
/* check size if: */
if (v2d->scroll & V2D_SCROLL_HORIZONTAL)
if (!(v2d->scroll & V2D_SCROLL_SCALE_HORIZONTAL))
- if (v2d->tot.xmax - v2d->tot.xmin <= v2d->cur.xmax - v2d->cur.xmin)
+ if (BLI_rctf_size_x(&v2d->tot) <= BLI_rcti_size_x(&v2d->cur))
v2d->scroll |= V2D_SCROLL_HORIZONTAL_HIDE;
if (v2d->scroll & V2D_SCROLL_VERTICAL)
if (!(v2d->scroll & V2D_SCROLL_SCALE_VERTICAL))
- if (v2d->tot.ymax - v2d->tot.ymin <= v2d->cur.ymax - v2d->cur.ymin)
+ if (BLI_rctf_size_y(&v2d->tot) <= BLI_rctf_size_y(&v2d->cur))
v2d->scroll |= V2D_SCROLL_VERTICAL_HIDE;
#endif
scroll = view2d_scroll_mapped(v2d->scroll);
@@ -203,7 +203,7 @@ void UI_view2d_region_reinit(View2D *v2d, short type, int winx, int winy)
v2d->cur = v2d->tot;
/* scrollers - should we have these by default? */
- // XXX for now, we don't override this, or set it either!
+ /* XXX for now, we don't override this, or set it either! */
}
break;
@@ -328,8 +328,8 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
rctf *cur, *tot;
/* use mask as size of region that View2D resides in, as it takes into account scrollbars already */
- winx = (float)(v2d->mask.xmax - v2d->mask.xmin + 1);
- winy = (float)(v2d->mask.ymax - v2d->mask.ymin + 1);
+ winx = (float)(BLI_rcti_size_x(&v2d->mask) + 1);
+ winy = (float)(BLI_rcti_size_y(&v2d->mask) + 1);
/* get pointers to rcts for less typing */
cur = &v2d->cur;
@@ -347,10 +347,10 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
* - firstly, we calculate the sizes of the rects
* - curwidth and curheight are saved as reference... modify width and height values here
*/
- totwidth = tot->xmax - tot->xmin;
- totheight = tot->ymax - tot->ymin;
- curwidth = width = cur->xmax - cur->xmin;
- curheight = height = cur->ymax - cur->ymin;
+ totwidth = BLI_rctf_size_x(tot);
+ totheight = BLI_rctf_size_y(tot);
+ curwidth = width = BLI_rctf_size_x(cur);
+ curheight = height = BLI_rctf_size_y(cur);
/* if zoom is locked, size on the appropriate axis is reset to mask size */
if (v2d->keepzoom & V2D_LOCKZOOM_X)
@@ -499,16 +499,16 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
/* resize from centerpoint, unless otherwise specified */
if (width != curwidth) {
if (v2d->keepofs & V2D_LOCKOFS_X) {
- cur->xmax += width - (cur->xmax - cur->xmin);
+ cur->xmax += width - BLI_rctf_size_x(cur);
}
else if (v2d->keepofs & V2D_KEEPOFS_X) {
if (v2d->align & V2D_ALIGN_NO_POS_X)
- cur->xmin -= width - (cur->xmax - cur->xmin);
+ cur->xmin -= width - BLI_rctf_size_x(cur);
else
- cur->xmax += width - (cur->xmax - cur->xmin);
+ cur->xmax += width - BLI_rctf_size_x(cur);
}
else {
- temp = (cur->xmax + cur->xmin) * 0.5f;
+ temp = BLI_rctf_cent_x(cur);
dh = width * 0.5f;
cur->xmin = temp - dh;
@@ -517,16 +517,16 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
}
if (height != curheight) {
if (v2d->keepofs & V2D_LOCKOFS_Y) {
- cur->ymax += height - (cur->ymax - cur->ymin);
+ cur->ymax += height - BLI_rctf_size_y(cur);
}
else if (v2d->keepofs & V2D_KEEPOFS_Y) {
if (v2d->align & V2D_ALIGN_NO_POS_Y)
- cur->ymin -= height - (cur->ymax - cur->ymin);
+ cur->ymin -= height - BLI_rctf_size_y(cur);
else
- cur->ymax += height - (cur->ymax - cur->ymin);
+ cur->ymax += height - BLI_rctf_size_y(cur);
}
else {
- temp = (cur->ymax + cur->ymin) * 0.5f;
+ temp = BLI_rctf_cent_y(cur);
dh = height * 0.5f;
cur->ymin = temp - dh;
@@ -540,11 +540,11 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
float temp, diff;
/* recalculate extents of cur */
- curwidth = cur->xmax - cur->xmin;
- curheight = cur->ymax - cur->ymin;
+ curwidth = BLI_rctf_size_x(cur);
+ curheight = BLI_rctf_size_y(cur);
/* width */
- if ( (curwidth > totwidth) && !(v2d->keepzoom & (V2D_KEEPZOOM | V2D_LOCKZOOM_X | V2D_LIMITZOOM)) ) {
+ if ((curwidth > totwidth) && !(v2d->keepzoom & (V2D_KEEPZOOM | V2D_LOCKZOOM_X | V2D_LIMITZOOM))) {
/* if zoom doesn't have to be maintained, just clamp edges */
if (cur->xmin < tot->xmin) cur->xmin = tot->xmin;
if (cur->xmax > tot->xmax) cur->xmax = tot->xmax;
@@ -592,7 +592,7 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
*/
if ((cur->xmin < tot->xmin) && (cur->xmax > tot->xmax)) {
/* outside boundaries on both sides, so take middle-point of tot, and place in balanced way */
- temp = (tot->xmax + tot->xmin) * 0.5f;
+ temp = BLI_rctf_cent_x(tot);
diff = curheight * 0.5f;
cur->xmin = temp - diff;
@@ -627,7 +627,7 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
}
/* height */
- if ( (curheight > totheight) && !(v2d->keepzoom & (V2D_KEEPZOOM | V2D_LOCKZOOM_Y | V2D_LIMITZOOM)) ) {
+ if ((curheight > totheight) && !(v2d->keepzoom & (V2D_KEEPZOOM | V2D_LOCKZOOM_Y | V2D_LIMITZOOM))) {
/* if zoom doesn't have to be maintained, just clamp edges */
if (cur->ymin < tot->ymin) cur->ymin = tot->ymin;
if (cur->ymax > tot->ymax) cur->ymax = tot->ymax;
@@ -642,7 +642,7 @@ void UI_view2d_curRect_validate_resize(View2D *v2d, int resize)
*/
if ((cur->ymin < tot->ymin) && (cur->ymax > tot->ymax)) {
/* outside boundaries on both sides, so take middle-point of tot, and place in balanced way */
- temp = (tot->ymax + tot->ymin) * 0.5f;
+ temp = BLI_rctf_cent_y(tot);
diff = curheight * 0.5f;
cur->ymin = temp - diff;
@@ -791,8 +791,8 @@ void UI_view2d_curRect_reset(View2D *v2d)
float width, height;
/* assume width and height of 'cur' rect by default, should be same size as mask */
- width = (float)(v2d->mask.xmax - v2d->mask.xmin + 1);
- height = (float)(v2d->mask.ymax - v2d->mask.ymin + 1);
+ width = (float)(BLI_rcti_size_x(&v2d->mask) + 1);
+ height = (float)(BLI_rcti_size_y(&v2d->mask) + 1);
/* handle width - posx and negx flags are mutually exclusive, so watch out */
if ((v2d->align & V2D_ALIGN_NO_POS_X) && !(v2d->align & V2D_ALIGN_NO_NEG_X)) {
@@ -851,7 +851,7 @@ void UI_view2d_totRect_set_resize(View2D *v2d, int width, int height, int resize
if (scroll & V2D_SCROLL_VERTICAL)
height -= V2D_SCROLL_HEIGHT;
- if (ELEM3(0, v2d, width, height)) {
+ if (ELEM(0, width, height)) {
if (G.debug & G_DEBUG)
printf("Error: View2D totRect set exiting: v2d=%p width=%d height=%d\n", (void *)v2d, width, height); // XXX temp debug info
return;
@@ -958,8 +958,8 @@ static void view2d_map_cur_using_mask(View2D *v2d, rctf *curmasked)
*curmasked = v2d->cur;
if (view2d_scroll_mapped(v2d->scroll)) {
- float dx = (v2d->cur.xmax - v2d->cur.xmin) / ((float)(v2d->mask.xmax - v2d->mask.xmin + 1));
- float dy = (v2d->cur.ymax - v2d->cur.ymin) / ((float)(v2d->mask.ymax - v2d->mask.ymin + 1));
+ float dx = BLI_rctf_size_x(&v2d->cur) / ((float)(BLI_rcti_size_x(&v2d->mask) + 1));
+ float dy = BLI_rctf_size_y(&v2d->cur) / ((float)(BLI_rcti_size_y(&v2d->mask) + 1));
if (v2d->mask.xmin != 0)
curmasked->xmin -= dx * (float)v2d->mask.xmin;
@@ -980,19 +980,18 @@ void UI_view2d_view_ortho(View2D *v2d)
rctf curmasked;
float xofs, yofs;
- /* pixel offsets (-0.375f) are needed to get 1:1 correspondence with pixels for smooth UI drawing,
+ /* pixel offsets (-GLA_PIXEL_OFS) are needed to get 1:1 correspondence with pixels for smooth UI drawing,
* but only applied where requested
*/
/* XXX brecht: instead of zero at least use a tiny offset, otherwise
* pixel rounding is effectively random due to float inaccuracy */
- xofs = 0.001f * (v2d->cur.xmax - v2d->cur.xmin) / (v2d->mask.xmax - v2d->mask.xmin);
- yofs = 0.001f * (v2d->cur.ymax - v2d->cur.ymin) / (v2d->mask.ymax - v2d->mask.ymin);
+ xofs = 0.001f * BLI_rctf_size_x(&v2d->cur) / BLI_rcti_size_x(&v2d->mask);
+ yofs = 0.001f * BLI_rctf_size_y(&v2d->cur) / BLI_rcti_size_y(&v2d->mask);
/* apply mask-based adjustments to cur rect (due to scrollers), to eliminate scaling artifacts */
view2d_map_cur_using_mask(v2d, &curmasked);
-
- curmasked.xmin -= xofs; curmasked.xmax -= xofs;
- curmasked.ymin -= yofs; curmasked.ymax -= yofs;
+
+ BLI_rctf_translate(&curmasked, -xofs, -yofs);
/* XXX ton: this flag set by outliner, for icons */
if (v2d->flag & V2D_PIXELOFS_X) {
@@ -1019,12 +1018,12 @@ void UI_view2d_view_orthoSpecial(ARegion *ar, View2D *v2d, short xaxis)
rctf curmasked;
float xofs, yofs;
- /* pixel offsets (-0.375f) are needed to get 1:1 correspondence with pixels for smooth UI drawing,
+ /* pixel offsets (-GLA_PIXEL_OFS) are needed to get 1:1 correspondence with pixels for smooth UI drawing,
* but only applied where requested
*/
/* XXX temp (ton) */
- xofs = 0.0f; // (v2d->flag & V2D_PIXELOFS_X) ? 0.375f : 0.0f;
- yofs = 0.0f; // (v2d->flag & V2D_PIXELOFS_Y) ? 0.375f : 0.0f;
+ xofs = 0.0f; // (v2d->flag & V2D_PIXELOFS_X) ? GLA_PIXEL_OFS : 0.0f;
+ yofs = 0.0f; // (v2d->flag & V2D_PIXELOFS_Y) ? GLA_PIXEL_OFS : 0.0f;
/* apply mask-based adjustments to cur rect (due to scrollers), to eliminate scaling artifacts */
view2d_map_cur_using_mask(v2d, &curmasked);
@@ -1044,8 +1043,8 @@ void UI_view2d_view_orthoSpecial(ARegion *ar, View2D *v2d, short xaxis)
void UI_view2d_view_restore(const bContext *C)
{
ARegion *ar = CTX_wm_region(C);
- int width = ar->winrct.xmax - ar->winrct.xmin + 1;
- int height = ar->winrct.ymax - ar->winrct.ymin + 1;
+ int width = BLI_rcti_size_x(&ar->winrct) + 1;
+ int height = BLI_rcti_size_y(&ar->winrct) + 1;
wmOrtho2(0.0f, (float)width, 0.0f, (float)height);
glLoadIdentity();
@@ -1117,7 +1116,8 @@ static void step_to_grid(float *step, int *power, int unit)
* - winx = width of region we're drawing to, note: not used but keeping for completeness.
* - winy = height of region we're drawing into
*/
-View2DGrid *UI_view2d_grid_calc(Scene *scene, View2D *v2d, short xunits, short xclamp, short yunits, short yclamp, int UNUSED(winx), int winy)
+View2DGrid *UI_view2d_grid_calc(Scene *scene, View2D *v2d,
+ short xunits, short xclamp, short yunits, short yclamp, int UNUSED(winx), int winy)
{
View2DGrid *grid;
@@ -1140,8 +1140,8 @@ View2DGrid *UI_view2d_grid_calc(Scene *scene, View2D *v2d, short xunits, short x
/* calculate x-axis grid scale (only if both args are valid) */
if (ELEM(V2D_ARG_DUMMY, xunits, xclamp) == 0) {
- space = v2d->cur.xmax - v2d->cur.xmin;
- pixels = (float)(v2d->mask.xmax - v2d->mask.xmin);
+ space = BLI_rctf_size_x(&v2d->cur);
+ pixels = (float)BLI_rcti_size_x(&v2d->mask);
if (pixels != 0.0f) {
grid->dx = (U.v2d_min_gridsize * space) / (seconddiv * pixels);
@@ -1158,7 +1158,7 @@ View2DGrid *UI_view2d_grid_calc(Scene *scene, View2D *v2d, short xunits, short x
/* calculate y-axis grid scale (only if both args are valid) */
if (ELEM(V2D_ARG_DUMMY, yunits, yclamp) == 0) {
- space = v2d->cur.ymax - v2d->cur.ymin;
+ space = BLI_rctf_size_y(&v2d->cur);
pixels = (float)winy;
grid->dy = U.v2d_min_gridsize * space / pixels;
@@ -1206,7 +1206,7 @@ void UI_view2d_grid_draw(View2D *v2d, View2DGrid *grid, int flag)
vec2[1] = v2d->cur.ymax;
/* minor gridlines */
- step = (v2d->mask.xmax - v2d->mask.xmin + 1) / U.v2d_min_gridsize;
+ step = (BLI_rcti_size_x(&v2d->mask) + 1) / U.v2d_min_gridsize;
UI_ThemeColor(TH_GRID);
for (a = 0; a < step; a++) {
@@ -1240,7 +1240,7 @@ void UI_view2d_grid_draw(View2D *v2d, View2DGrid *grid, int flag)
vec1[0] = grid->startx;
vec2[0] = v2d->cur.xmax;
- step = (v2d->mask.ymax - v2d->mask.ymin + 1) / U.v2d_min_gridsize;
+ step = (BLI_rcti_size_y(&v2d->mask) + 1) / U.v2d_min_gridsize;
UI_ThemeColor(TH_GRID);
for (a = 0; a <= step; a++) {
@@ -1414,7 +1414,8 @@ struct View2DScrollers {
};
/* Calculate relevant scroller properties */
-View2DScrollers *UI_view2d_scrollers_calc(const bContext *C, View2D *v2d, short xunits, short xclamp, short yunits, short yclamp)
+View2DScrollers *UI_view2d_scrollers_calc(const bContext *C, View2D *v2d,
+ short xunits, short xclamp, short yunits, short yclamp)
{
View2DScrollers *scrollers;
rcti vert, hor;
@@ -1457,8 +1458,8 @@ View2DScrollers *UI_view2d_scrollers_calc(const bContext *C, View2D *v2d, short
/* horizontal scrollers */
if (scroll & V2D_SCROLL_HORIZONTAL) {
/* scroller 'button' extents */
- totsize = v2d->tot.xmax - v2d->tot.xmin;
- scrollsize = (float)(hor.xmax - hor.xmin);
+ totsize = BLI_rctf_size_x(&v2d->tot);
+ scrollsize = (float)BLI_rcti_size_x(&hor);
if (totsize == 0.0f) totsize = 1.0f; /* avoid divide by zero */
fac1 = (v2d->cur.xmin - v2d->tot.xmin) / totsize;
@@ -1498,8 +1499,8 @@ View2DScrollers *UI_view2d_scrollers_calc(const bContext *C, View2D *v2d, short
/* vertical scrollers */
if (scroll & V2D_SCROLL_VERTICAL) {
/* scroller 'button' extents */
- totsize = v2d->tot.ymax - v2d->tot.ymin;
- scrollsize = (float)(vert.ymax - vert.ymin);
+ totsize = BLI_rctf_size_y(&v2d->tot);
+ scrollsize = (float)BLI_rcti_size_y(&vert);
if (totsize == 0.0f) totsize = 1.0f; /* avoid divide by zero */
fac1 = (v2d->cur.ymin - v2d->tot.ymin) / totsize;
@@ -1545,7 +1546,9 @@ View2DScrollers *UI_view2d_scrollers_calc(const bContext *C, View2D *v2d, short
scrollers->yclamp = yclamp;
scrollers->yunits = yunits;
- scrollers->grid = UI_view2d_grid_calc(CTX_data_scene(C), v2d, xunits, xclamp, yunits, yclamp, (hor.xmax - hor.xmin), (vert.ymax - vert.ymin));
+ scrollers->grid = UI_view2d_grid_calc(CTX_data_scene(C), v2d,
+ xunits, xclamp, yunits, yclamp,
+ BLI_rcti_size_x(&hor), BLI_rcti_size_y(&vert));
}
/* return scrollers */
@@ -1629,7 +1632,7 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
*/
if ((v2d->keepzoom & V2D_LOCKZOOM_X) == 0 &&
(v2d->scroll & V2D_SCROLL_SCALE_HORIZONTAL) &&
- (slider.xmax - slider.xmin > V2D_SCROLLER_HANDLE_SIZE))
+ (BLI_rcti_size_x(&slider) > V2D_SCROLLER_HANDLE_SIZE))
{
state |= UI_SCROLL_ARROWS;
}
@@ -1649,11 +1652,11 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
* - fac is x-coordinate to draw to
* - dfac is gap between scale markings
*/
- fac = (grid->startx - v2d->cur.xmin) / (v2d->cur.xmax - v2d->cur.xmin);
- fac = (float)hor.xmin + fac * (hor.xmax - hor.xmin);
+ fac = (grid->startx - v2d->cur.xmin) / BLI_rctf_size_x(&v2d->cur);
+ fac = (float)hor.xmin + fac * BLI_rcti_size_x(&hor);
- dfac = (grid->dx) / (v2d->cur.xmax - v2d->cur.xmin);
- dfac = dfac * (hor.xmax - hor.xmin);
+ dfac = grid->dx / BLI_rctf_size_x(&v2d->cur);
+ dfac = dfac * BLI_rcti_size_x(&hor);
/* set starting value, and text color */
UI_ThemeColor(TH_TEXT);
@@ -1740,7 +1743,7 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
*/
if ((v2d->keepzoom & V2D_LOCKZOOM_Y) == 0 &&
(v2d->scroll & V2D_SCROLL_SCALE_VERTICAL) &&
- (slider.ymax - slider.ymin > V2D_SCROLLER_HANDLE_SIZE))
+ (BLI_rcti_size_y(&slider) > V2D_SCROLLER_HANDLE_SIZE))
{
state |= UI_SCROLL_ARROWS;
}
@@ -1763,11 +1766,11 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
* - these involve a correction for horizontal scrollbar
* NOTE: it's assumed that that scrollbar is there if this is involved!
*/
- fac = (grid->starty - v2d->cur.ymin) / (v2d->cur.ymax - v2d->cur.ymin);
- fac = vert.ymin + fac * (vert.ymax - vert.ymin);
+ fac = (grid->starty - v2d->cur.ymin) / BLI_rctf_size_y(&v2d->cur);
+ fac = vert.ymin + fac * BLI_rcti_size_y(&vert);
- dfac = (grid->dy) / (v2d->cur.ymax - v2d->cur.ymin);
- dfac = dfac * (vert.ymax - vert.ymin);
+ dfac = grid->dy / BLI_rctf_size_y(&v2d->cur);
+ dfac = dfac * BLI_rcti_size_y(&vert);
/* set starting value, and text color */
UI_ThemeColor(TH_TEXT);
@@ -1818,10 +1821,12 @@ void UI_view2d_scrollers_free(View2DScrollers *scrollers)
* This should be (0,0) for most views. However, for those where the starting row was offsetted
* (like for Animation Editor channel lists, to make the first entry more visible), these will be
* the min-coordinates of the first item.
- * - column, row = the 2d-corodinates (in 2D-view / 'tot' rect space) the cell exists at
+ * - column, row = the 2d-coordinates (in 2D-view / 'tot' rect space) the cell exists at
* - rect = coordinates of the cell (passed as single var instead of 4 separate, as it's more useful this way)
*/
-void UI_view2d_listview_cell_to_view(View2D *v2d, short columnwidth, short rowheight, float startx, float starty, int column, int row, rctf *rect)
+void UI_view2d_listview_cell_to_view(View2D *v2d, short columnwidth, short rowheight,
+ float startx, float starty,
+ int column, int row, rctf *rect)
{
/* sanity checks */
if (ELEM(NULL, v2d, rect)) {
@@ -1872,7 +1877,7 @@ void UI_view2d_listview_view_to_cell(View2D *v2d, short columnwidth, short rowhe
const int y = (int)(floorf(fabsf(viewy) + 0.5f) - starty);
/* sizes must not be negative */
- if ( (v2d == NULL) || ((columnwidth <= 0) && (rowheight <= 0)) ) {
+ if ((v2d == NULL) || ((columnwidth <= 0) && (rowheight <= 0))) {
if (column) *column = 0;
if (row) *row = 0;
@@ -1925,17 +1930,17 @@ void UI_view2d_region_to_view(View2D *v2d, int x, int y, float *r_viewx, float *
float div, ofs;
if (r_viewx) {
- div = (float)(v2d->mask.xmax - v2d->mask.xmin);
+ div = (float)BLI_rcti_size_x(&v2d->mask);
ofs = (float)v2d->mask.xmin;
- *r_viewx = v2d->cur.xmin + (v2d->cur.xmax - v2d->cur.xmin) * ((float)x - ofs) / div;
+ *r_viewx = v2d->cur.xmin + BLI_rctf_size_x(&v2d->cur) * ((float)x - ofs) / div;
}
if (r_viewy) {
- div = (float)(v2d->mask.ymax - v2d->mask.ymin);
+ div = (float)BLI_rcti_size_y(&v2d->mask);
ofs = (float)v2d->mask.ymin;
- *r_viewy = v2d->cur.ymin + (v2d->cur.ymax - v2d->cur.ymin) * ((float)y - ofs) / div;
+ *r_viewy = v2d->cur.ymin + BLI_rctf_size_y(&v2d->cur) * ((float)y - ofs) / div;
}
}
@@ -1954,15 +1959,15 @@ void UI_view2d_view_to_region(View2D *v2d, float x, float y, int *regionx, int *
*regiony = V2D_IS_CLIPPED;
/* express given coordinates as proportional values */
- x = (x - v2d->cur.xmin) / (v2d->cur.xmax - v2d->cur.xmin);
- y = (y - v2d->cur.ymin) / (v2d->cur.ymax - v2d->cur.ymin);
+ x = (x - v2d->cur.xmin) / BLI_rctf_size_x(&v2d->cur);
+ y = (y - v2d->cur.ymin) / BLI_rctf_size_y(&v2d->cur);
/* check if values are within bounds */
if ((x >= 0.0f) && (x <= 1.0f) && (y >= 0.0f) && (y <= 1.0f)) {
if (regionx)
- *regionx = (int)(v2d->mask.xmin + x * (v2d->mask.xmax - v2d->mask.xmin));
+ *regionx = (int)(v2d->mask.xmin + x * BLI_rcti_size_x(&v2d->mask));
if (regiony)
- *regiony = (int)(v2d->mask.ymin + y * (v2d->mask.ymax - v2d->mask.ymin));
+ *regiony = (int)(v2d->mask.ymin + y * BLI_rcti_size_y(&v2d->mask));
}
}
@@ -1975,12 +1980,12 @@ void UI_view2d_view_to_region(View2D *v2d, float x, float y, int *regionx, int *
void UI_view2d_to_region_no_clip(View2D *v2d, float x, float y, int *regionx, int *regiony)
{
/* step 1: express given coordinates as proportional values */
- x = (x - v2d->cur.xmin) / (v2d->cur.xmax - v2d->cur.xmin);
- y = (y - v2d->cur.ymin) / (v2d->cur.ymax - v2d->cur.ymin);
+ x = (x - v2d->cur.xmin) / BLI_rctf_size_x(&v2d->cur);
+ y = (y - v2d->cur.ymin) / BLI_rctf_size_y(&v2d->cur);
/* step 2: convert proportional distances to screen coordinates */
- x = v2d->mask.xmin + x * (v2d->mask.xmax - v2d->mask.xmin);
- y = v2d->mask.ymin + y * (v2d->mask.ymax - v2d->mask.ymin);
+ x = v2d->mask.xmin + x * BLI_rcti_size_x(&v2d->mask);
+ y = v2d->mask.ymin + y * BLI_rcti_size_y(&v2d->mask);
/* although we don't clamp to lie within region bounds, we must avoid exceeding size of ints */
if (regionx) {
@@ -2033,8 +2038,8 @@ View2D *UI_view2d_fromcontext_rwin(const bContext *C)
*/
void UI_view2d_getscale(View2D *v2d, float *x, float *y)
{
- if (x) *x = (v2d->mask.xmax - v2d->mask.xmin) / (v2d->cur.xmax - v2d->cur.xmin);
- if (y) *y = (v2d->mask.ymax - v2d->mask.ymin) / (v2d->cur.ymax - v2d->cur.ymin);
+ if (x) *x = BLI_rcti_size_x(&v2d->mask) / BLI_rctf_size_x(&v2d->cur);
+ if (y) *y = BLI_rcti_size_y(&v2d->mask) / BLI_rctf_size_y(&v2d->cur);
}
/* Check if mouse is within scrollers
@@ -2140,7 +2145,7 @@ void UI_view2d_text_cache_draw(ARegion *ar)
const char *str = (const char *)(v2s + 1);
int xofs = 0, yofs;
- yofs = ceil(0.5f * (v2s->rect.ymax - v2s->rect.ymin - default_height));
+ yofs = ceil(0.5f * (BLI_rcti_size_y(&v2s->rect) - default_height));
if (yofs < 1) yofs = 1;
if (col_pack_prev != v2s->col.pack) {
diff --git a/source/blender/editors/interface/view2d_ops.c b/source/blender/editors/interface/view2d_ops.c
index 129a47c7063..eb2f6c62351 100644
--- a/source/blender/editors/interface/view2d_ops.c
+++ b/source/blender/editors/interface/view2d_ops.c
@@ -36,6 +36,7 @@
#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
+#include "BLI_math_base.h"
#include "BKE_context.h"
@@ -118,10 +119,10 @@ static int view_pan_init(bContext *C, wmOperator *op)
vpd->ar = ar;
/* calculate translation factor - based on size of view */
- winx = (float)(ar->winrct.xmax - ar->winrct.xmin + 1);
- winy = (float)(ar->winrct.ymax - ar->winrct.ymin + 1);
- vpd->facx = (v2d->cur.xmax - v2d->cur.xmin) / winx;
- vpd->facy = (v2d->cur.ymax - v2d->cur.ymin) / winy;
+ winx = (float)(BLI_rcti_size_x(&ar->winrct) + 1);
+ winy = (float)(BLI_rcti_size_y(&ar->winrct) + 1);
+ vpd->facx = (BLI_rctf_size_x(&v2d->cur)) / winx;
+ vpd->facy = (BLI_rctf_size_y(&v2d->cur)) / winy;
return 1;
}
@@ -470,7 +471,7 @@ static int view_scrollup_exec(bContext *C, wmOperator *op)
if (RNA_boolean_get(op->ptr, "page")) {
ARegion *ar = CTX_wm_region(C);
- RNA_int_set(op->ptr, "deltay", ar->v2d.mask.ymax - ar->v2d.mask.ymin);
+ RNA_int_set(op->ptr, "deltay", BLI_rcti_size_y(&ar->v2d.mask));
}
/* apply movement, then we're done */
@@ -499,15 +500,15 @@ static void VIEW2D_OT_scroll_up(wmOperatorType *ot)
/* ********************************************************* */
/* SINGLE-STEP VIEW ZOOMING OPERATOR */
-/* This group of operators come in several forms:
- * 1) Scrollwheel 'steps' - rolling mousewheel by one step zooms view by predefined amount
- * 2) Scrollwheel 'steps' + alt + ctrl/shift - zooms view on one axis only (ctrl=x, shift=y) // XXX this could be implemented...
- * 3) Pad +/- Keys - pressing each key moves the zooms the view by a predefined amount
+/* This group of operators come in several forms:
+ * 1) Scrollwheel 'steps' - rolling mousewheel by one step zooms view by predefined amount
+ * 2) Scrollwheel 'steps' + alt + ctrl/shift - zooms view on one axis only (ctrl=x, shift=y) // XXX this could be implemented...
+ * 3) Pad +/- Keys - pressing each key moves the zooms the view by a predefined amount
*
- * In order to make sure this works, each operator must define the following RNA-Operator Props:
- * zoomfacx, zoomfacy - These two zoom factors allow for non-uniform scaling.
- * It is safe to scale by 0, as these factors are used to determine
- * amount to enlarge 'cur' by
+ * In order to make sure this works, each operator must define the following RNA-Operator Props:
+ * zoomfacx, zoomfacy - These two zoom factors allow for non-uniform scaling.
+ * It is safe to scale by 0, as these factors are used to determine
+ * amount to enlarge 'cur' by
*/
/* ------------------ 'Shared' stuff ------------------------ */
@@ -589,12 +590,12 @@ static void view_zoomstep_apply(bContext *C, wmOperator *op)
facy = RNA_float_get(op->ptr, "zoomfacy");
if (facx >= 0.0f) {
- dx = (v2d->cur.xmax - v2d->cur.xmin) * facx;
- dy = (v2d->cur.ymax - v2d->cur.ymin) * facy;
+ dx = BLI_rctf_size_x(&v2d->cur) * facx;
+ dy = BLI_rctf_size_y(&v2d->cur) * facy;
}
else {
- dx = ((v2d->cur.xmax - v2d->cur.xmin) / (1.0f + 2.0f * facx)) * facx;
- dy = ((v2d->cur.ymax - v2d->cur.ymin) / (1.0f + 2.0f * facy)) * facy;
+ dx = (BLI_rctf_size_x(&v2d->cur) / (1.0f + 2.0f * facx)) * facx;
+ dy = (BLI_rctf_size_y(&v2d->cur) / (1.0f + 2.0f * facy)) * facy;
}
/* only resize view on an axis if change is allowed */
@@ -610,7 +611,7 @@ static void view_zoomstep_apply(bContext *C, wmOperator *op)
}
else {
if (U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
- float mval_fac = (vzd->mx_2d - v2d->cur.xmin) / (v2d->cur.xmax - v2d->cur.xmin);
+ float mval_fac = (vzd->mx_2d - v2d->cur.xmin) / BLI_rctf_size_x(&v2d->cur);
float mval_faci = 1.0f - mval_fac;
float ofs = (mval_fac * dx) - (mval_faci * dx);
@@ -635,7 +636,7 @@ static void view_zoomstep_apply(bContext *C, wmOperator *op)
}
else {
if (U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
- float mval_fac = (vzd->my_2d - v2d->cur.ymin) / (v2d->cur.ymax - v2d->cur.ymin);
+ float mval_fac = (vzd->my_2d - v2d->cur.ymin) / BLI_rctf_size_y(&v2d->cur);
float mval_faci = 1.0f - mval_fac;
float ofs = (mval_fac * dy) - (mval_faci * dy);
@@ -671,13 +672,25 @@ static void view_zoomstep_exit(wmOperator *op)
/* this operator only needs this single callback, where it calls the view_zoom_*() methods */
static int view_zoomin_exec(bContext *C, wmOperator *op)
{
+ ScrArea *sa = CTX_wm_area(C);
+ short do_zoom_x = TRUE;
+ short do_zoom_y = TRUE;
+
/* check that there's an active region, as View2D data resides there */
if (!view_zoom_poll(C))
return OPERATOR_PASS_THROUGH;
+ /* default not to zoom the sequencer vertically */
+ if (sa && sa->spacetype == SPACE_SEQ) {
+ ARegion *ar = CTX_wm_region(C);
+
+ if (ar && ar->regiontype != RGN_TYPE_PREVIEW)
+ do_zoom_y = FALSE;
+ }
+
/* set RNA-Props - zooming in by uniform factor */
- RNA_float_set(op->ptr, "zoomfacx", 0.0375f);
- RNA_float_set(op->ptr, "zoomfacy", 0.0375f);
+ RNA_float_set(op->ptr, "zoomfacx", do_zoom_x ? 0.0375f : 0.0f);
+ RNA_float_set(op->ptr, "zoomfacy", do_zoom_y ? 0.0375f : 0.0f);
/* apply movement, then we're done */
view_zoomstep_apply(C, op);
@@ -717,7 +730,7 @@ static void VIEW2D_OT_zoom_in(wmOperatorType *ot)
/* api callbacks */
ot->invoke = view_zoomin_invoke;
-// ot->exec = view_zoomin_exec; // XXX, needs view_zoomdrag_init called first.
+ ot->exec = view_zoomin_exec; // XXX, needs view_zoomdrag_init called first.
ot->poll = view_zoom_poll;
/* rna - must keep these in sync with the other operators */
@@ -728,13 +741,25 @@ static void VIEW2D_OT_zoom_in(wmOperatorType *ot)
/* this operator only needs this single callback, where it callsthe view_zoom_*() methods */
static int view_zoomout_exec(bContext *C, wmOperator *op)
{
+ ScrArea *sa = CTX_wm_area(C);
+ short do_zoom_x = TRUE;
+ short do_zoom_y = TRUE;
+
/* check that there's an active region, as View2D data resides there */
if (!view_zoom_poll(C))
return OPERATOR_PASS_THROUGH;
+ /* default not to zoom the sequencer vertically */
+ if (sa && sa->spacetype == SPACE_SEQ) {
+ ARegion *ar = CTX_wm_region(C);
+
+ if (ar && ar->regiontype != RGN_TYPE_PREVIEW)
+ do_zoom_y = FALSE;
+ }
+
/* set RNA-Props - zooming in by uniform factor */
- RNA_float_set(op->ptr, "zoomfacx", -0.0375f);
- RNA_float_set(op->ptr, "zoomfacy", -0.0375f);
+ RNA_float_set(op->ptr, "zoomfacx", do_zoom_x ? -0.0375f : 0.0f);
+ RNA_float_set(op->ptr, "zoomfacy", do_zoom_y ? -0.0375f : 0.0f);
/* apply movement, then we're done */
view_zoomstep_apply(C, op);
@@ -820,16 +845,16 @@ static void view_zoomdrag_apply(bContext *C, wmOperator *op)
}
else {
if (U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
- float mval_fac = (vzd->mx_2d - v2d->cur.xmin) / (v2d->cur.xmax - v2d->cur.xmin);
+ float mval_fac = (vzd->mx_2d - v2d->cur.xmin) / BLI_rctf_size_x(&v2d->cur);
float mval_faci = 1.0f - mval_fac;
float ofs = (mval_fac * dx) - (mval_faci * dx);
- v2d->cur.xmin += ofs + dx;
- v2d->cur.xmax += ofs - dx;
+ v2d->cur.xmin -= ofs + dx;
+ v2d->cur.xmax -= ofs - dx;
}
else {
- v2d->cur.xmin += dx;
- v2d->cur.xmax -= dx;
+ v2d->cur.xmin -= dx;
+ v2d->cur.xmax += dx;
}
}
}
@@ -839,16 +864,16 @@ static void view_zoomdrag_apply(bContext *C, wmOperator *op)
}
else {
if (U.uiflag & USER_ZOOM_TO_MOUSEPOS) {
- float mval_fac = (vzd->my_2d - v2d->cur.ymin) / (v2d->cur.ymax - v2d->cur.ymin);
+ float mval_fac = (vzd->my_2d - v2d->cur.ymin) / BLI_rctf_size_y(&v2d->cur);
float mval_faci = 1.0f - mval_fac;
float ofs = (mval_fac * dy) - (mval_faci * dy);
- v2d->cur.ymin += ofs + dy;
- v2d->cur.ymax += ofs - dy;
+ v2d->cur.ymin -= ofs + dy;
+ v2d->cur.ymax -= ofs - dy;
}
else {
- v2d->cur.ymin += dy;
- v2d->cur.ymax -= dy;
+ v2d->cur.ymin -= dy;
+ v2d->cur.ymax += dy;
}
}
}
@@ -917,8 +942,8 @@ static int view_zoomdrag_invoke(bContext *C, wmOperator *op, wmEvent *event)
* with magnify information that is stored in x axis
*/
fac = 0.01f * (event->x - event->prevx);
- dx = fac * (v2d->cur.xmax - v2d->cur.xmin) / 10.0f;
- dy = fac * (v2d->cur.ymax - v2d->cur.ymin) / 10.0f;
+ dx = fac * BLI_rctf_size_x(&v2d->cur) / 10.0f;
+ dy = fac * BLI_rctf_size_y(&v2d->cur) / 10.0f;
RNA_float_set(op->ptr, "deltax", dx);
RNA_float_set(op->ptr, "deltay", dy);
@@ -984,14 +1009,14 @@ static int view_zoomdrag_modal(bContext *C, wmOperator *op, wmEvent *event)
float dist;
/* x-axis transform */
- dist = (v2d->mask.xmax - v2d->mask.xmin) / 2.0f;
+ dist = BLI_rcti_size_x(&v2d->mask) / 2.0f;
dx = 1.0f - (fabsf(vzd->lastx - dist) + 2.0f) / (fabsf(event->x - dist) + 2.0f);
- dx *= 0.5f * (v2d->cur.xmax - v2d->cur.xmin);
+ dx *= 0.5f * BLI_rctf_size_x(&v2d->cur);
/* y-axis transform */
- dist = (v2d->mask.ymax - v2d->mask.ymin) / 2.0f;
+ dist = BLI_rcti_size_y(&v2d->mask) / 2.0f;
dy = 1.0f - (fabsf(vzd->lasty - dist) + 2.0f) / (fabsf(event->y - dist) + 2.0f);
- dy *= 0.5f * (v2d->cur.ymax - v2d->cur.ymin);
+ dy *= 0.5f * BLI_rctf_size_y(&v2d->cur);
}
else {
/* 'continuous' or 'dolly' */
@@ -999,11 +1024,11 @@ static int view_zoomdrag_modal(bContext *C, wmOperator *op, wmEvent *event)
/* x-axis transform */
fac = 0.01f * (event->x - vzd->lastx);
- dx = fac * (v2d->cur.xmax - v2d->cur.xmin);
+ dx = fac * BLI_rctf_size_x(&v2d->cur);
/* y-axis transform */
fac = 0.01f * (event->y - vzd->lasty);
- dy = fac * (v2d->cur.ymax - v2d->cur.ymin);
+ dy = fac * BLI_rctf_size_y(&v2d->cur);
#if 0
/* continuous zoom shouldn't move that fast... */
if (U.viewzoom == USER_ZOOM_CONT) { // XXX store this setting as RNA prop?
@@ -1019,8 +1044,14 @@ static int view_zoomdrag_modal(bContext *C, wmOperator *op, wmEvent *event)
}
/* set transform amount, and add current deltas to stored total delta (for redo) */
+ if (U.uiflag & USER_ZOOM_INVERT) {
+ dx *= -1;
+ dy *= -1;
+ }
+
RNA_float_set(op->ptr, "deltax", dx);
RNA_float_set(op->ptr, "deltay", dy);
+
vzd->dx += dx;
vzd->dy += dy;
@@ -1100,6 +1131,7 @@ static int view_borderzoom_exec(bContext *C, wmOperator *op)
ARegion *ar = CTX_wm_region(C);
View2D *v2d = &ar->v2d;
rctf rect;
+ rctf cur_new = v2d->cur;
int gesture_mode;
/* convert coordinates of rect to 'tot' rect coordinates */
@@ -1116,12 +1148,12 @@ static int view_borderzoom_exec(bContext *C, wmOperator *op)
* if zoom is allowed to be changed
*/
if ((v2d->keepzoom & V2D_LOCKZOOM_X) == 0) {
- v2d->cur.xmin = rect.xmin;
- v2d->cur.xmax = rect.xmax;
+ cur_new.xmin = rect.xmin;
+ cur_new.xmax = rect.xmax;
}
if ((v2d->keepzoom & V2D_LOCKZOOM_Y) == 0) {
- v2d->cur.ymin = rect.ymin;
- v2d->cur.ymax = rect.ymax;
+ cur_new.ymin = rect.ymin;
+ cur_new.ymax = rect.ymax;
}
}
else { /* if (gesture_mode == GESTURE_MODAL_OUT) */
@@ -1133,31 +1165,26 @@ static int view_borderzoom_exec(bContext *C, wmOperator *op)
*/
float zoom, center, size;
- // TODO: is this zoom factor calculation valid? It seems to produce same results everytime...
+ /* TODO: is this zoom factor calculation valid? It seems to produce same results everytime... */
if ((v2d->keepzoom & V2D_LOCKZOOM_X) == 0) {
- size = (v2d->cur.xmax - v2d->cur.xmin);
- zoom = size / (rect.xmax - rect.xmin);
- center = (v2d->cur.xmax + v2d->cur.xmin) * 0.5f;
+ size = BLI_rctf_size_x(&cur_new);
+ zoom = size / BLI_rctf_size_x(&rect);
+ center = BLI_rctf_cent_x(&cur_new);
- v2d->cur.xmin = center - (size * zoom);
- v2d->cur.xmax = center + (size * zoom);
+ cur_new.xmin = center - (size * zoom);
+ cur_new.xmax = center + (size * zoom);
}
if ((v2d->keepzoom & V2D_LOCKZOOM_Y) == 0) {
- size = (v2d->cur.ymax - v2d->cur.ymin);
- zoom = size / (rect.ymax - rect.ymin);
- center = (v2d->cur.ymax + v2d->cur.ymin) * 0.5f;
+ size = BLI_rctf_size_y(&cur_new);
+ zoom = size / BLI_rctf_size_y(&rect);
+ center = BLI_rctf_cent_y(&cur_new);
- v2d->cur.ymin = center - (size * zoom);
- v2d->cur.ymax = center + (size * zoom);
+ cur_new.ymin = center - (size * zoom);
+ cur_new.ymax = center + (size * zoom);
}
}
- /* validate that view is in valid configuration after this operation */
- UI_view2d_curRect_validate(v2d);
-
- /* request updates to be done... */
- ED_region_tag_redraw(ar);
- UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
+ UI_view2d_smooth_view(C, ar, &cur_new);
return OPERATOR_FINISHED;
}
@@ -1178,11 +1205,173 @@ static void VIEW2D_OT_zoom_border(wmOperatorType *ot)
ot->poll = view_zoom_poll;
/* rna */
- RNA_def_int(ot->srna, "gesture_mode", 0, INT_MIN, INT_MAX, "Gesture Mode", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "xmin", 0, INT_MIN, INT_MAX, "X Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "xmax", 0, INT_MIN, INT_MAX, "X Max", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "ymin", 0, INT_MIN, INT_MAX, "Y Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, "Y Max", "", INT_MIN, INT_MAX);
+ WM_operator_properties_gesture_border(ot, FALSE);
+}
+
+/* ********************************************************* */
+/* SMOOTH VIEW */
+
+struct SmoothView2DStore {
+ rctf orig_cur, new_cur;
+
+ double time_allowed;
+};
+
+/**
+ * function to get a factor out of a rectangle
+ *
+ * note: this doesn't always work as well as it might because the target size
+ * may not be reached because of clamping the desired rect, we _could_
+ * attempt to clamp the rect before working out the zoom factor but its
+ * not really worthwhile for the few cases this happens.
+ */
+static float smooth_view_rect_to_fac(const rctf *rect_a, const rctf *rect_b)
+{
+ float size_a[2] = {BLI_rctf_size_x(rect_a),
+ BLI_rctf_size_y(rect_a)};
+ float size_b[2] = {BLI_rctf_size_x(rect_b),
+ BLI_rctf_size_y(rect_b)};
+ float cent_a[2] = {BLI_rctf_cent_x(rect_a),
+ BLI_rctf_cent_y(rect_a)};
+ float cent_b[2] = {BLI_rctf_cent_x(rect_b),
+ BLI_rctf_cent_y(rect_b)};
+
+ float fac_max = 0.0f;
+ float tfac;
+
+ int i;
+
+ for (i = 0; i < 2; i++) {
+ /* axis translation normalized to scale */
+ tfac = fabsf(cent_a[i] - cent_b[i]) / minf(size_a[i], size_b[i]);
+ fac_max = maxf(fac_max, tfac);
+ if (fac_max >= 1.0f) break;
+
+ /* axis scale difference, x2 so doubling or half gives 1.0f */
+ tfac = (1.0f - (minf(size_a[i], size_b[i]) / maxf(size_a[i], size_b[i]))) * 2.0f;
+ fac_max = maxf(fac_max, tfac);
+ if (fac_max >= 1.0f) break;
+ }
+ return minf(fac_max, 1.0f);
+}
+
+/* will start timer if appropriate */
+/* the arguments are the desired situation */
+void UI_view2d_smooth_view(bContext *C, ARegion *ar,
+ const rctf *cur)
+{
+ wmWindowManager *wm = CTX_wm_manager(C);
+ wmWindow *win = CTX_wm_window(C);
+
+ View2D *v2d = &ar->v2d;
+ struct SmoothView2DStore sms = {{0}};
+ short ok = FALSE;
+ float fac = 1.0f;
+
+ /* initialize sms */
+ sms.new_cur = v2d->cur;
+
+ /* store the options we want to end with */
+ if (cur) sms.new_cur = *cur;
+
+ if (cur) {
+ fac = smooth_view_rect_to_fac(&v2d->cur, cur);
+ }
+
+ if (C && U.smooth_viewtx && fac > FLT_EPSILON) {
+ int changed = FALSE;
+
+ if (BLI_rctf_compare(&sms.new_cur, &v2d->cur, FLT_EPSILON) == FALSE)
+ changed = TRUE;
+
+ /* The new view is different from the old one
+ * so animate the view */
+ if (changed) {
+ sms.orig_cur = v2d->cur;
+
+ sms.time_allowed = (double)U.smooth_viewtx / 1000.0;
+
+ /* scale the time allowed the change in view */
+ sms.time_allowed *= (double)fac;
+
+ /* keep track of running timer! */
+ if (v2d->sms == NULL)
+ v2d->sms = MEM_mallocN(sizeof(struct SmoothView2DStore), "smoothview v2d");
+ *v2d->sms = sms;
+ if (v2d->smooth_timer)
+ WM_event_remove_timer(wm, win, v2d->smooth_timer);
+ /* TIMER1 is hardcoded in keymap */
+ v2d->smooth_timer = WM_event_add_timer(wm, win, TIMER1, 1.0 / 100.0); /* max 30 frs/sec */
+
+ ok = TRUE;
+ }
+ }
+
+ /* if we get here nothing happens */
+ if (ok == FALSE) {
+ v2d->cur = sms.new_cur;
+
+ UI_view2d_curRect_validate(v2d);
+ ED_region_tag_redraw(ar);
+ UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
+ }
+}
+
+/* only meant for timer usage */
+static int view2d_smoothview_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
+{
+ ARegion *ar = CTX_wm_region(C);
+ View2D *v2d = &ar->v2d;
+ struct SmoothView2DStore *sms = v2d->sms;
+ float step;
+
+ /* escape if not our timer */
+ if (v2d->smooth_timer == NULL || v2d->smooth_timer != event->customdata)
+ return OPERATOR_PASS_THROUGH;
+
+ if (sms->time_allowed != 0.0)
+ step = (float)((v2d->smooth_timer->duration) / sms->time_allowed);
+ else
+ step = 1.0f;
+
+ /* end timer */
+ if (step >= 1.0f) {
+ v2d->cur = sms->new_cur;
+
+ MEM_freeN(v2d->sms);
+ v2d->sms = NULL;
+
+ WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), v2d->smooth_timer);
+ v2d->smooth_timer = NULL;
+ }
+ else {
+ /* ease in/out */
+ step = (3.0f * step * step - 2.0f * step * step * step);
+
+ BLI_rctf_interp(&v2d->cur, &sms->orig_cur, &sms->new_cur, step);
+ }
+
+ UI_view2d_curRect_validate(v2d);
+ UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
+ ED_region_tag_redraw(ar);
+
+ return OPERATOR_FINISHED;
+}
+
+static void VIEW2D_OT_smoothview(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Smooth View 2D";
+ ot->description = "Zoom in the view to the nearest item contained in the border";
+ ot->idname = "VIEW2D_OT_smoothview";
+
+ /* api callbacks */
+ ot->invoke = view2d_smoothview_invoke;
+
+ ot->poll = view2d_poll;
+
+ /* rna */
+ WM_operator_properties_gesture_border(ot, FALSE);
}
/* ********************************************************* */
@@ -1266,7 +1455,7 @@ static short mouse_in_scroller_handle(int mouse, int sc_min, int sc_max, int sh_
}
/* check if mouse is in or past either handle */
- // TODO: check if these extents are still valid or not
+ /* TODO: check if these extents are still valid or not */
in_max = ( (mouse >= (sh_max - V2D_SCROLLER_HANDLE_SIZE)) && (mouse <= (sh_max + V2D_SCROLLER_HANDLE_SIZE)) );
in_min = ( (mouse <= (sh_min + V2D_SCROLLER_HANDLE_SIZE)) && (mouse >= (sh_min - V2D_SCROLLER_HANDLE_SIZE)) );
in_bar = ( (mouse < (sh_max - V2D_SCROLLER_HANDLE_SIZE)) && (mouse > (sh_min + V2D_SCROLLER_HANDLE_SIZE)) );
@@ -1295,6 +1484,7 @@ static void scroller_activate_init(bContext *C, wmOperator *op, wmEvent *event,
View2DScrollers *scrollers;
ARegion *ar = CTX_wm_region(C);
View2D *v2d = &ar->v2d;
+ rctf tot_cur_union;
float mask_size;
/* set custom-data for operator */
@@ -1314,14 +1504,20 @@ static void scroller_activate_init(bContext *C, wmOperator *op, wmEvent *event,
*/
scrollers = UI_view2d_scrollers_calc(C, v2d, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY);
+ /* use a union of 'cur' & 'tot' incase the current view is far outside 'tot'.
+ * In this cases moving the scroll bars has far too little effect and the view can get stuck [#31476] */
+ tot_cur_union = v2d->tot;
+ BLI_rctf_union(&tot_cur_union, &v2d->cur);
if (in_scroller == 'h') {
/* horizontal scroller - calculate adjustment factor first */
- mask_size = (float)(v2d->hor.xmax - v2d->hor.xmin);
- vsm->fac = (v2d->tot.xmax - v2d->tot.xmin) / mask_size;
+ mask_size = (float)BLI_rcti_size_x(&v2d->hor);
+ vsm->fac = BLI_rctf_size_x(&tot_cur_union) / mask_size;
/* get 'zone' (i.e. which part of scroller is activated) */
- vsm->zone = mouse_in_scroller_handle(event->mval[0], v2d->hor.xmin, v2d->hor.xmax, scrollers->hor_min, scrollers->hor_max);
+ vsm->zone = mouse_in_scroller_handle(event->mval[0],
+ v2d->hor.xmin, v2d->hor.xmax,
+ scrollers->hor_min, scrollers->hor_max);
if ((v2d->keepzoom & V2D_LOCKZOOM_X) && ELEM(vsm->zone, SCROLLHANDLE_MIN, SCROLLHANDLE_MAX)) {
/* default to scroll, as handles not usable */
@@ -1333,11 +1529,13 @@ static void scroller_activate_init(bContext *C, wmOperator *op, wmEvent *event,
}
else {
/* vertical scroller - calculate adjustment factor first */
- mask_size = (float)(v2d->vert.ymax - v2d->vert.ymin);
- vsm->fac = (v2d->tot.ymax - v2d->tot.ymin) / mask_size;
+ mask_size = (float)BLI_rcti_size_y(&v2d->vert);
+ vsm->fac = BLI_rctf_size_y(&tot_cur_union) / mask_size;
/* get 'zone' (i.e. which part of scroller is activated) */
- vsm->zone = mouse_in_scroller_handle(event->mval[1], v2d->vert.ymin, v2d->vert.ymax, scrollers->vert_min, scrollers->vert_max);
+ vsm->zone = mouse_in_scroller_handle(event->mval[1],
+ v2d->vert.ymin, v2d->vert.ymax,
+ scrollers->vert_min, scrollers->vert_max);
if ((v2d->keepzoom & V2D_LOCKZOOM_Y) && ELEM(vsm->zone, SCROLLHANDLE_MIN, SCROLLHANDLE_MAX)) {
/* default to scroll, as handles not usable */
@@ -1345,7 +1543,7 @@ static void scroller_activate_init(bContext *C, wmOperator *op, wmEvent *event,
}
vsm->scrollbarwidth = scrollers->vert_max - scrollers->vert_min;
- vsm->scrollbar_orig = ((scrollers->vert_max + scrollers->vert_min) / 2) + +ar->winrct.ymin;
+ vsm->scrollbar_orig = ((scrollers->vert_max + scrollers->vert_min) / 2) + ar->winrct.ymin;
}
UI_view2d_scrollers_free(scrollers);
@@ -1535,8 +1733,8 @@ static int scroller_activate_invoke(bContext *C, wmOperator *op, wmEvent *event)
* NOTE: see view2d.c for latest conditions, and keep this in sync with that
*/
if (ELEM(vsm->zone, SCROLLHANDLE_MIN, SCROLLHANDLE_MAX)) {
- if ( ((vsm->scroller == 'h') && (v2d->scroll & V2D_SCROLL_SCALE_HORIZONTAL) == 0) ||
- ((vsm->scroller == 'v') && (v2d->scroll & V2D_SCROLL_SCALE_VERTICAL) == 0) )
+ if (((vsm->scroller == 'h') && (v2d->scroll & V2D_SCROLL_SCALE_HORIZONTAL) == 0) ||
+ ((vsm->scroller == 'v') && (v2d->scroll & V2D_SCROLL_SCALE_VERTICAL) == 0))
{
/* switch to bar (i.e. no scaling gets handled) */
vsm->zone = SCROLLHANDLE_BAR;
@@ -1545,8 +1743,8 @@ static int scroller_activate_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* check if zone is inappropriate (i.e. 'bar' but panning is banned), so cannot continue */
if (vsm->zone == SCROLLHANDLE_BAR) {
- if ( ((vsm->scroller == 'h') && (v2d->keepofs & V2D_LOCKOFS_X)) ||
- ((vsm->scroller == 'v') && (v2d->keepofs & V2D_LOCKOFS_Y)) )
+ if (((vsm->scroller == 'h') && (v2d->keepofs & V2D_LOCKOFS_X)) ||
+ ((vsm->scroller == 'v') && (v2d->keepofs & V2D_LOCKOFS_Y)))
{
/* free customdata initialized */
scroller_activate_exit(C, op);
@@ -1557,8 +1755,8 @@ static int scroller_activate_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
/* zone is also inappropriate if scroller is not visible... */
- if ( ((vsm->scroller == 'h') && (v2d->scroll & (V2D_SCROLL_HORIZONTAL_HIDE | V2D_SCROLL_HORIZONTAL_FULLR))) ||
- ((vsm->scroller == 'v') && (v2d->scroll & (V2D_SCROLL_VERTICAL_HIDE | V2D_SCROLL_VERTICAL_FULLR))) )
+ if (((vsm->scroller == 'h') && (v2d->scroll & (V2D_SCROLL_HORIZONTAL_HIDE | V2D_SCROLL_HORIZONTAL_FULLR))) ||
+ ((vsm->scroller == 'v') && (v2d->scroll & (V2D_SCROLL_VERTICAL_HIDE | V2D_SCROLL_VERTICAL_FULLR))) )
{
/* free customdata initialized */
scroller_activate_exit(C, op);
@@ -1614,8 +1812,8 @@ static int reset_exec(bContext *C, wmOperator *UNUSED(op))
int winx, winy;
/* zoom 1.0 */
- winx = (float)(v2d->mask.xmax - v2d->mask.xmin + 1);
- winy = (float)(v2d->mask.ymax - v2d->mask.ymin + 1);
+ winx = (float)(BLI_rcti_size_x(&v2d->mask) + 1);
+ winy = (float)(BLI_rcti_size_y(&v2d->mask) + 1);
v2d->cur.xmax = v2d->cur.xmin + winx;
v2d->cur.ymax = v2d->cur.ymin + winy;
@@ -1682,6 +1880,8 @@ void UI_view2d_operatortypes(void)
WM_operatortype_append(VIEW2D_OT_zoom);
WM_operatortype_append(VIEW2D_OT_zoom_border);
+
+ WM_operatortype_append(VIEW2D_OT_smoothview);
WM_operatortype_append(VIEW2D_OT_scroller_activate);
@@ -1715,6 +1915,8 @@ void UI_view2d_keymap(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_out", PADMINUS, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_in", PADPLUSKEY, KM_PRESS, 0, 0);
+ WM_keymap_verify_item(keymap, "VIEW2D_OT_smoothview", TIMER1, KM_ANY, KM_ANY, 0);
+
/* scroll up/down - no modifiers, only when zoom fails */
/* these may fail if zoom is disallowed, in which case they should pass on event */
WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", WHEELDOWNMOUSE, KM_PRESS, 0, 0);
diff --git a/source/blender/editors/io/io_collada.c b/source/blender/editors/io/io_collada.c
index 77808d0a00d..0ec99325752 100644
--- a/source/blender/editors/io/io_collada.c
+++ b/source/blender/editors/io/io_collada.c
@@ -54,6 +54,8 @@
#include "../../collada/collada.h"
+#include "io_collada.h"
+
static int wm_collada_export_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (!RNA_struct_property_is_set(op->ptr, "filepath")) {
@@ -121,41 +123,41 @@ static int wm_collada_export_exec(bContext *C, wmOperator *op)
/* get editmode results */
ED_object_exit_editmode(C, 0); /* 0 = does not exit editmode */
- if (collada_export(
- CTX_data_scene(C),
- filepath,
- apply_modifiers,
- export_mesh_type,
- selected,
- include_children,
- include_armatures,
- deform_bones_only,
-
- active_uv_only,
- include_uv_textures,
- include_material_textures,
- use_texture_copies,
-
- use_object_instantiation,
- sort_by_name,
- second_life)) {
+ if (collada_export(CTX_data_scene(C),
+ filepath,
+ apply_modifiers,
+ export_mesh_type,
+ selected,
+ include_children,
+ include_armatures,
+ deform_bones_only,
+
+ active_uv_only,
+ include_uv_textures,
+ include_material_textures,
+ use_texture_copies,
+
+ use_object_instantiation,
+ sort_by_name,
+ second_life)) {
return OPERATOR_FINISHED;
}
else {
+ BKE_report(op->reports, RPT_WARNING, "Export file not created.");
return OPERATOR_CANCELLED;
}
}
-void uiCollada_exportSettings(uiLayout *layout, PointerRNA *imfptr)
+static void uiCollada_exportSettings(uiLayout *layout, PointerRNA *imfptr)
{
uiLayout *box, *row, *col, *split;
/* Export Options: */
box = uiLayoutBox(layout);
- row = uiLayoutRow(box, 0);
+ row = uiLayoutRow(box, FALSE);
uiItemL(row, IFACE_("Export Data Options:"), ICON_MESH_DATA);
- row = uiLayoutRow(box, 0);
+ row = uiLayoutRow(box, FALSE);
split = uiLayoutSplit(row, 0.6f, UI_LAYOUT_ALIGN_RIGHT);
col = uiLayoutColumn(split, FALSE);
uiItemR(col, imfptr, "apply_modifiers", 0, NULL, ICON_NONE);
@@ -174,7 +176,7 @@ void uiCollada_exportSettings(uiLayout *layout, PointerRNA *imfptr)
uiItemR(row, imfptr, "include_armatures", 0, NULL, ICON_NONE);
uiLayoutSetEnabled(row, RNA_boolean_get(imfptr, "selected"));
- // Texture options
+ /* Texture options */
box = uiLayoutBox(layout);
row = uiLayoutRow(box, FALSE);
uiItemL(row, IFACE_("Texture Options:"), ICON_TEXTURE_DATA);
@@ -192,7 +194,7 @@ void uiCollada_exportSettings(uiLayout *layout, PointerRNA *imfptr)
uiItemR(row, imfptr, "use_texture_copies", 1, NULL, ICON_NONE);
- // Armature options
+ /* Armature options */
box = uiLayoutBox(layout);
row = uiLayoutRow(box, FALSE);
uiItemL(row, IFACE_("Armature Options:"), ICON_ARMATURE_DATA);
@@ -233,7 +235,7 @@ void WM_OT_collada_export(wmOperatorType *ot)
ot->name = "Export COLLADA";
ot->description = "Save a Collada file";
ot->idname = "WM_OT_collada_export";
-
+
ot->invoke = wm_collada_export_invoke;
ot->exec = wm_collada_export_exec;
ot->poll = WM_operator_winactive;
@@ -241,8 +243,9 @@ void WM_OT_collada_export(wmOperatorType *ot)
ot->flag |= OPTYPE_PRESET;
ot->ui = wm_collada_export_draw;
-
- WM_operator_properties_filesel(ot, FOLDERFILE | COLLADAFILE, FILE_BLENDER, FILE_SAVE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
+
+ WM_operator_properties_filesel(ot, FOLDERFILE | COLLADAFILE, FILE_BLENDER, FILE_SAVE,
+ WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
RNA_def_boolean(ot->srna,
"apply_modifiers", 0, "Apply Modifiers",
@@ -268,15 +271,15 @@ void WM_OT_collada_export(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "active_uv_only", 0, "Only Active UV layer",
- "Export textures assigned to the object UV maps");
+ "Export textures assigned to the object UV maps");
RNA_def_boolean(ot->srna, "include_uv_textures", 0, "Include UV Textures",
- "Export textures assigned to the object UV maps");
+ "Export textures assigned to the object UV maps");
RNA_def_boolean(ot->srna, "include_material_textures", 0, "Include Material Textures",
- "Export textures assigned to the object Materials");
+ "Export textures assigned to the object Materials");
- RNA_def_boolean(ot->srna, "use_texture_copies", 1, "Copy",
+ RNA_def_boolean(ot->srna, "use_texture_copies", 1, "Copy",
"Copy textures to same folder where the .dae file is exported");
@@ -295,7 +298,7 @@ void WM_OT_collada_export(wmOperatorType *ot)
static int wm_collada_import_exec(bContext *C, wmOperator *op)
{
char filename[FILE_MAX];
-
+
if (!RNA_struct_property_is_set(op->ptr, "filepath")) {
BKE_report(op->reports, RPT_ERROR, "No filename given");
return OPERATOR_CANCELLED;
@@ -303,9 +306,9 @@ static int wm_collada_import_exec(bContext *C, wmOperator *op)
RNA_string_get(op->ptr, "filepath", filename);
if (collada_import(C, filename)) return OPERATOR_FINISHED;
-
+
BKE_report(op->reports, RPT_ERROR, "Errors found during parsing COLLADA document. Please see console for error log.");
-
+
return OPERATOR_FINISHED;
}
@@ -314,11 +317,12 @@ void WM_OT_collada_import(wmOperatorType *ot)
ot->name = "Import COLLADA";
ot->description = "Load a Collada file";
ot->idname = "WM_OT_collada_import";
-
+
ot->invoke = WM_operator_filesel;
ot->exec = wm_collada_import_exec;
ot->poll = WM_operator_winactive;
-
- WM_operator_properties_filesel(ot, FOLDERFILE | COLLADAFILE, FILE_BLENDER, FILE_OPENFILE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
+
+ WM_operator_properties_filesel(ot, FOLDERFILE | COLLADAFILE, FILE_BLENDER, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
}
#endif
diff --git a/source/blender/editors/io/io_collada.h b/source/blender/editors/io/io_collada.h
index 5cb255e1b7c..4bb1475a3b2 100644
--- a/source/blender/editors/io/io_collada.h
+++ b/source/blender/editors/io/io_collada.h
@@ -24,7 +24,7 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/** \file blender/editor/io/io_collada.h
+/** \file blender/editors/io/io_collada.h
* \ingroup editor/io
*/
diff --git a/source/blender/editors/io/io_ops.c b/source/blender/editors/io/io_ops.c
index b724db6e737..f2a0532932d 100644
--- a/source/blender/editors/io/io_ops.c
+++ b/source/blender/editors/io/io_ops.c
@@ -34,10 +34,12 @@
#include "WM_types.h"
#include "WM_api.h"
+#include "io_ops.h" /* own include */
+
void ED_operatortypes_io(void)
{
#ifdef WITH_COLLADA
- // Collada operators:
+ /* Collada operators: */
WM_operatortype_append(WM_OT_collada_export);
WM_operatortype_append(WM_OT_collada_import);
#endif
diff --git a/source/blender/editors/io/io_ops.h b/source/blender/editors/io/io_ops.h
index 4c04b349655..4fffca4607c 100644
--- a/source/blender/editors/io/io_ops.h
+++ b/source/blender/editors/io/io_ops.h
@@ -24,7 +24,7 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/** \file blender/editor/io/io_ops.h
+/** \file blender/editors/io/io_ops.h
* \ingroup editor/io
*/
diff --git a/source/blender/editors/mask/CMakeLists.txt b/source/blender/editors/mask/CMakeLists.txt
index 57be5a2234a..25fb9cb6430 100644
--- a/source/blender/editors/mask/CMakeLists.txt
+++ b/source/blender/editors/mask/CMakeLists.txt
@@ -30,10 +30,10 @@ set(INC
../../makesrna
../../windowmanager
../../../../intern/guardedalloc
- ${GLEW_INCLUDE_PATH}
)
set(INC_SYS
+ ${GLEW_INCLUDE_PATH}
)
set(SRC
diff --git a/source/blender/editors/mask/mask_add.c b/source/blender/editors/mask/mask_add.c
index c9f6dc0c5fb..a254a6a9278 100644
--- a/source/blender/editors/mask/mask_add.c
+++ b/source/blender/editors/mask/mask_add.c
@@ -38,6 +38,7 @@
#include "BKE_mask.h"
#include "DNA_scene_types.h"
+#include "DNA_screen_types.h"
#include "DNA_mask_types.h"
#include "DNA_object_types.h" /* SELECT */
@@ -57,17 +58,19 @@ static int find_nearest_diff_point(const bContext *C, Mask *mask, const float no
float *u_r, float tangent[2],
const short use_deform)
{
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
+
MaskLayer *masklay, *point_masklay;
MaskSpline *point_spline;
MaskSplinePoint *point = NULL;
- float dist, co[2];
+ float dist = FLT_MAX, co[2];
int width, height;
float u;
- float scalex, scaley, aspx, aspy;
+ float scalex, scaley;
- ED_mask_size(C, &width, &height);
- ED_mask_aspect(C, &aspx, &aspy);
- ED_mask_pixelspace_factor(C, &scalex, &scaley);
+ ED_mask_get_size(sa, &width, &height);
+ ED_mask_pixelspace_factor(sa, ar, &scalex, &scaley);
co[0] = normal_co[0] * scalex;
co[1] = normal_co[1] * scaley;
@@ -88,13 +91,14 @@ static int find_nearest_diff_point(const bContext *C, Mask *mask, const float no
i++, cur_point++)
{
float *diff_points;
- int tot_diff_point;
+ unsigned int tot_diff_point;
diff_points = BKE_mask_point_segment_diff_with_resolution(spline, cur_point, width, height,
&tot_diff_point);
if (diff_points) {
- int i, tot_feather_point, tot_point;
+ int i, tot_point;
+ unsigned int tot_feather_point;
float *feather_points = NULL, *points;
if (feather) {
@@ -121,7 +125,7 @@ static int find_nearest_diff_point(const bContext *C, Mask *mask, const float no
cur_dist = dist_to_line_segment_v2(co, a, b);
- if (point == NULL || cur_dist < dist) {
+ if (cur_dist < dist) {
if (tangent)
sub_v2_v2v2(tangent, &diff_points[2 * i + 2], &diff_points[2 * i]);
@@ -176,22 +180,20 @@ static int find_nearest_diff_point(const bContext *C, Mask *mask, const float no
/******************** add vertex *********************/
-static void setup_vertex_point(const bContext *C, Mask *mask, MaskSpline *spline, MaskSplinePoint *new_point,
+static void setup_vertex_point(Mask *mask, MaskSpline *spline, MaskSplinePoint *new_point,
const float point_co[2], const float tangent[2], const float u,
- MaskSplinePoint *reference_point, const short reference_adjacent)
+ MaskSplinePoint *reference_point, const short reference_adjacent,
+ const float view_zoom)
{
MaskSplinePoint *prev_point = NULL;
MaskSplinePoint *next_point = NULL;
BezTriple *bezt;
- int width, height;
float co[3];
- const float len = 20.0; /* default length of handle in pixel space */
+ const float len = 10.0; /* default length of handle in pixel space */
copy_v2_v2(co, point_co);
co[2] = 0.0f;
- ED_mask_size(C, &width, &height);
-
/* point coordinate */
bezt = &new_point->bezt;
@@ -219,21 +221,15 @@ static void setup_vertex_point(const bContext *C, Mask *mask, MaskSpline *spline
/* initial offset for handles */
if (spline->tot_point == 1) {
/* first point of splien is aligned horizontally */
- bezt->vec[0][0] -= len / width;
- bezt->vec[2][0] += len / width;
+ bezt->vec[0][0] -= len * view_zoom;
+ bezt->vec[2][0] += len * view_zoom;
}
else if (tangent) {
float vec[2];
copy_v2_v2(vec, tangent);
- vec[0] *= width;
- vec[1] *= height;
-
- mul_v2_fl(vec, len / len_v2(vec));
-
- vec[0] /= width;
- vec[1] /= height;
+ mul_v2_fl(vec, len);
sub_v2_v2(bezt->vec[0], vec);
add_v2_v2(bezt->vec[2], vec);
@@ -315,6 +311,7 @@ static void finSelectedSplinePoint(MaskLayer *masklay, MaskSpline **spline, Mask
*point = NULL;
if (check_active) {
+ /* TODO, having an active point but no active spline is possible, why? */
if (masklay->act_spline && masklay->act_point && MASKPOINT_ISSEL_ANY(masklay->act_point)) {
*spline = masklay->act_spline;
*point = masklay->act_point;
@@ -384,7 +381,7 @@ static int add_vertex_subdivide(const bContext *C, Mask *mask, const float co[2]
new_point = &spline->points[point_index + 1];
- setup_vertex_point(C, mask, spline, new_point, co, tangent, u, NULL, TRUE);
+ setup_vertex_point(mask, spline, new_point, co, tangent, u, NULL, TRUE, 1.0f);
/* TODO - we could pass the spline! */
BKE_mask_layer_shape_changed_add(masklay, BKE_mask_layer_shape_spline_to_index(masklay, spline) + point_index + 1, TRUE, TRUE);
@@ -483,7 +480,7 @@ static int add_vertex_extrude(const bContext *C, Mask *mask, MaskLayer *masklay,
masklay->act_point = new_point;
- setup_vertex_point(C, mask, spline, new_point, co, NULL, 0.5f, ref_point, FALSE);
+ setup_vertex_point(mask, spline, new_point, co, NULL, 0.5f, ref_point, FALSE, 1.0f);
if (masklay->splines_shapes.first) {
point_index = (((int)(new_point - spline->points) + 0) % spline->tot_point);
@@ -505,6 +502,7 @@ static int add_vertex_new(const bContext *C, Mask *mask, MaskLayer *masklay, con
MaskSpline *spline;
MaskSplinePoint *point;
MaskSplinePoint *new_point = NULL, *ref_point = NULL;
+ float view_zoom;
if (!masklay) {
/* if there's no masklay currently operationg on, create new one */
@@ -529,7 +527,22 @@ static int add_vertex_new(const bContext *C, Mask *mask, MaskLayer *masklay, con
masklay->act_point = new_point;
- setup_vertex_point(C, mask, spline, new_point, co, NULL, 0.5f, ref_point, FALSE);
+ {
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
+
+ float zoom_x, zoom_y;
+ /* calc view zoom in a simplistic way */
+ ED_mask_zoom(sa, ar, &zoom_x, &zoom_y);
+
+ view_zoom = zoom_x + zoom_y / 2.0f;
+ view_zoom = 1.0f / view_zoom;
+
+ /* arbitrary but gives good results */
+ view_zoom /= 500.0f;
+ }
+
+ setup_vertex_point(mask, spline, new_point, co, NULL, 0.5f, ref_point, FALSE, view_zoom);
{
int point_index = (((int)(new_point - spline->points) + 0) % spline->tot_point);
@@ -543,6 +556,7 @@ static int add_vertex_new(const bContext *C, Mask *mask, MaskLayer *masklay, con
static int add_vertex_exec(bContext *C, wmOperator *op)
{
+ Scene *scene = CTX_data_scene(C);
Mask *mask = CTX_data_edit_mask(C);
MaskLayer *masklay;
@@ -556,7 +570,8 @@ static int add_vertex_exec(bContext *C, wmOperator *op)
RNA_float_get_array(op->ptr, "location", co);
- if (masklay && masklay->act_point && MASKPOINT_ISSEL_ANY(masklay->act_point)) {
+ /* TODO, having an active point but no active spline is possible, why? */
+ if (masklay && masklay->act_spline && masklay->act_point && MASKPOINT_ISSEL_ANY(masklay->act_point)) {
/* cheap trick - double click for cyclic */
MaskSpline *spline = masklay->act_spline;
@@ -581,7 +596,7 @@ static int add_vertex_exec(bContext *C, wmOperator *op)
BKE_mask_calc_handle_point_auto(spline, point_other, FALSE);
/* TODO: only update this spline */
- BKE_mask_update_display(mask, CTX_data_scene(C)->r.cfra);
+ BKE_mask_update_display(mask, CFRA);
WM_event_add_notifier(C, NC_MASK | NA_EDITED, mask);
return OPERATOR_FINISHED;
@@ -603,16 +618,19 @@ static int add_vertex_exec(bContext *C, wmOperator *op)
}
/* TODO: only update this spline */
- BKE_mask_update_display(mask, CTX_data_scene(C)->r.cfra);
+ BKE_mask_update_display(mask, CFRA);
return OPERATOR_FINISHED;
}
static int add_vertex_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
+
float co[2];
- ED_mask_mouse_pos(C, event, co);
+ ED_mask_mouse_pos(sa, ar, event->mval, co);
RNA_float_set_array(op->ptr, "location", co);
@@ -635,7 +653,7 @@ void MASK_OT_add_vertex(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- RNA_def_float_vector(ot->srna, "location", 2, NULL, -FLT_MIN, FLT_MAX,
+ RNA_def_float_vector(ot->srna, "location", 2, NULL, -FLT_MAX, FLT_MAX,
"Location", "Location of vertex in normalized space", -1.0f, 1.0f);
}
@@ -681,9 +699,12 @@ static int add_feather_vertex_exec(bContext *C, wmOperator *op)
static int add_feather_vertex_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
+
float co[2];
- ED_mask_mouse_pos(C, event, co);
+ ED_mask_mouse_pos(sa, ar, event->mval, co);
RNA_float_set_array(op->ptr, "location", co);
@@ -706,6 +727,6 @@ void MASK_OT_add_feather_vertex(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- RNA_def_float_vector(ot->srna, "location", 2, NULL, -FLT_MIN, FLT_MAX,
+ RNA_def_float_vector(ot->srna, "location", 2, NULL, -FLT_MAX, FLT_MAX,
"Location", "Location of vertex in normalized space", -1.0f, 1.0f);
}
diff --git a/source/blender/editors/mask/mask_draw.c b/source/blender/editors/mask/mask_draw.c
index f080b9f96e7..a60b771d179 100644
--- a/source/blender/editors/mask/mask_draw.c
+++ b/source/blender/editors/mask/mask_draw.c
@@ -32,17 +32,22 @@
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
+#include "BLI_math.h"
+#include "BLI_rect.h"
#include "BKE_context.h"
#include "BKE_mask.h"
#include "DNA_mask_types.h"
+#include "DNA_screen_types.h"
#include "DNA_object_types.h" /* SELECT */
#include "ED_mask.h" /* own include */
+#include "ED_space_api.h"
#include "BIF_gl.h"
#include "UI_resources.h"
+#include "UI_view2d.h"
#include "mask_intern.h" /* own include */
@@ -129,7 +134,8 @@ static void draw_spline_points(MaskLayer *masklay, MaskSpline *spline,
if (!spline->tot_point)
return;
- hsize = UI_GetThemeValuef(TH_HANDLE_VERTEX_SIZE);
+ /* TODO, add this to sequence editor */
+ hsize = 4; /* UI_GetThemeValuef(TH_HANDLE_VERTEX_SIZE); */
glPointSize(hsize);
@@ -196,16 +202,16 @@ static void draw_spline_points(MaskLayer *masklay, MaskSpline *spline,
glLineWidth(3);
glColor4ubv(rgb_gray);
glBegin(GL_LINES);
- glVertex3fv(vert);
- glVertex3fv(handle);
+ glVertex2fv(vert);
+ glVertex2fv(handle);
glEnd();
glLineWidth(1);
}
glColor3ubv(rgb_spline);
glBegin(GL_LINES);
- glVertex3fv(vert);
- glVertex3fv(handle);
+ glVertex2fv(vert);
+ glVertex2fv(handle);
glEnd();
}
@@ -220,7 +226,7 @@ static void draw_spline_points(MaskLayer *masklay, MaskSpline *spline,
glColor3f(0.5f, 0.5f, 0.0f);
glBegin(GL_POINTS);
- glVertex3fv(vert);
+ glVertex2fv(vert);
glEnd();
/* draw handle points */
@@ -236,7 +242,7 @@ static void draw_spline_points(MaskLayer *masklay, MaskSpline *spline,
}
glBegin(GL_POINTS);
- glVertex3fv(handle);
+ glVertex2fv(handle);
glEnd();
}
}
@@ -359,10 +365,14 @@ static void draw_spline_curve(MaskLayer *masklay, MaskSpline *spline,
const short is_active,
int width, int height)
{
+ const unsigned int resol = maxi(BKE_mask_spline_feather_resolution(spline, width, height),
+ BKE_mask_spline_resolution(spline, width, height));
+
unsigned char rgb_tmp[4];
const short is_spline_sel = (spline->flag & SELECT) && (masklay->restrictflag & MASK_RESTRICT_SELECT) == 0;
const short is_smooth = (draw_flag & MASK_DRAWFLAG_SMOOTH);
+ const short is_fill = (spline->flag & MASK_SPLINE_NOFILL) == 0;
int tot_diff_point;
float (*diff_points)[2];
@@ -370,7 +380,7 @@ static void draw_spline_curve(MaskLayer *masklay, MaskSpline *spline,
int tot_feather_point;
float (*feather_points)[2];
- diff_points = BKE_mask_spline_differentiate_with_resolution(spline, width, height, &tot_diff_point);
+ diff_points = BKE_mask_spline_differentiate_with_resolution_ex(spline, &tot_diff_point, resol);
if (!diff_points)
return;
@@ -381,13 +391,34 @@ static void draw_spline_curve(MaskLayer *masklay, MaskSpline *spline,
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
- feather_points = BKE_mask_spline_feather_differentiated_points_with_resolution(spline, width, height, &tot_feather_point);
+ feather_points = BKE_mask_spline_feather_differentiated_points_with_resolution_ex(spline, &tot_feather_point, resol, (is_fill != FALSE));
/* draw feather */
mask_spline_feather_color_get(masklay, spline, is_spline_sel, rgb_tmp);
mask_draw_curve_type(spline, feather_points, tot_feather_point,
TRUE, is_smooth, is_active,
rgb_tmp, draw_type);
+
+ if (!is_fill) {
+
+ float *fp = &diff_points[0][0];
+ float *fp_feather = &feather_points[0][0];
+ float tvec[2];
+ int i;
+
+ BLI_assert(tot_diff_point == tot_feather_point);
+
+ for (i = 0; i < tot_diff_point; i++, fp += 2, fp_feather += 2) {
+ sub_v2_v2v2(tvec, fp, fp_feather);
+ add_v2_v2v2(fp_feather, fp, tvec);
+ }
+
+ /* same as above */
+ mask_draw_curve_type(spline, feather_points, tot_feather_point,
+ TRUE, is_smooth, is_active,
+ rgb_tmp, draw_type);
+ }
+
MEM_freeN(feather_points);
/* draw main curve */
@@ -448,13 +479,120 @@ static void draw_masklays(Mask *mask, const char draw_flag, const char draw_type
void ED_mask_draw(const bContext *C,
const char draw_flag, const char draw_type)
{
+ ScrArea *sa = CTX_wm_area(C);
+
Mask *mask = CTX_data_edit_mask(C);
int width, height;
if (!mask)
return;
- ED_mask_size(C, &width, &height);
+ ED_mask_get_size(sa, &width, &height);
+
+ draw_masklays(mask, draw_flag, draw_type, width, height);
+}
+
+/* sets up the opengl context.
+ * width, height are to match the values from ED_mask_get_size() */
+void ED_mask_draw_region(Mask *mask, ARegion *ar,
+ const char draw_flag, const char draw_type,
+ const int width_i, const int height_i, /* convert directly into aspect corrected vars */
+ const float aspx, const float aspy,
+ const short do_scale_applied, const short do_post_draw,
+ float stabmat[4][4], /* optional - only used by clip */
+ const bContext *C /* optional - only used when do_post_draw is set */
+ )
+{
+ struct View2D *v2d = &ar->v2d;
+
+ /* aspect always scales vertically in movie and image spaces */
+ const float width = width_i, height = (float)height_i * (aspy / aspx);
+
+ int x, y;
+ /* int w, h; */
+ float zoomx, zoomy;
+
+ /* frame image */
+ float maxdim;
+ float xofs, yofs;
+
+ /* find window pixel coordinates of origin */
+ UI_view2d_to_region_no_clip(&ar->v2d, 0.0f, 0.0f, &x, &y);
+
+
+ /* w = BLI_rctf_size_x(&v2d->tot); */
+ /* h = BLI_rctf_size_y(&v2d->tot);/*/
+
+
+ zoomx = (float)(BLI_rcti_size_x(&ar->winrct) + 1) / BLI_rctf_size_x(&ar->v2d.cur);
+ zoomy = (float)(BLI_rcti_size_y(&ar->winrct) + 1) / BLI_rctf_size_y(&ar->v2d.cur);
+ if (do_scale_applied) {
+ zoomx /= width;
+ zoomy /= height;
+ }
+
+ x += v2d->tot.xmin * zoomx;
+ y += v2d->tot.ymin * zoomy;
+
+ /* frame the image */
+ maxdim = maxf(width, height);
+ if (width == height) {
+ xofs = yofs = 0;
+ }
+ else if (width < height) {
+ xofs = ((height - width) / -2.0f) * zoomx;
+ yofs = 0.0f;
+ }
+ else { /* (width > height) */
+ xofs = 0.0f;
+ yofs = ((width - height) / -2.0f) * zoomy;
+ }
+
+ /* apply transformation so mask editing tools will assume drawing from the origin in normalized space */
+ glPushMatrix();
+ glTranslatef(x + xofs, y + yofs, 0);
+ glScalef(maxdim * zoomx, maxdim * zoomy, 0);
+
+ if (stabmat) {
+ glMultMatrixf(stabmat);
+ }
+
+ /* draw! */
draw_masklays(mask, draw_flag, draw_type, width, height);
+
+ if (do_post_draw) {
+ ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST_VIEW);
+ }
+
+ glPopMatrix();
+}
+
+void ED_mask_draw_frames(Mask *mask, ARegion *ar, const int cfra, const int sfra, const int efra)
+{
+ const float framelen = ar->winx / (float)(efra - sfra + 1);
+
+ MaskLayer *masklay = BKE_mask_layer_active(mask);
+
+ glBegin(GL_LINES);
+ glColor4ub(255, 175, 0, 255);
+
+ if (masklay) {
+ MaskLayerShape *masklay_shape;
+
+ for (masklay_shape = masklay->splines_shapes.first;
+ masklay_shape;
+ masklay_shape = masklay_shape->next)
+ {
+ int frame = masklay_shape->frame;
+
+ /* draw_keyframe(i, CFRA, sfra, framelen, 1); */
+ int height = (frame == cfra) ? 22 : 10;
+ int x = (frame - sfra) * framelen;
+ glVertex2i(x, 0);
+ glVertex2i(x, height);
+ }
+ }
+
+ glEnd();
}
diff --git a/source/blender/editors/mask/mask_edit.c b/source/blender/editors/mask/mask_edit.c
index 6e0da5fd756..18384ad9de4 100644
--- a/source/blender/editors/mask/mask_edit.c
+++ b/source/blender/editors/mask/mask_edit.c
@@ -42,10 +42,14 @@
#include "ED_screen.h"
#include "ED_mask.h" /* own include */
+#include "ED_image.h"
#include "ED_object.h" /* ED_keymap_proportional_maskmode only */
#include "ED_clip.h"
+#include "ED_sequencer.h"
#include "ED_transform.h"
+#include "UI_view2d.h"
+
#include "RNA_access.h"
#include "mask_intern.h" /* own include */
@@ -54,55 +58,109 @@
int ED_maskedit_poll(bContext *C)
{
- SpaceClip *sc = CTX_wm_space_clip(C);
-
- if (sc) {
- return ED_space_clip_maskedit_poll(C);
+ ScrArea *sa = CTX_wm_area(C);
+ if (sa) {
+ switch (sa->spacetype) {
+ case SPACE_CLIP:
+ return ED_space_clip_maskedit_poll(C);
+ case SPACE_SEQ:
+ return ED_space_sequencer_maskedit_poll(C);
+ case SPACE_IMAGE:
+ return ED_space_image_maskedit_poll(C);
+ }
}
-
return FALSE;
}
int ED_maskedit_mask_poll(bContext *C)
{
- SpaceClip *sc = CTX_wm_space_clip(C);
-
- if (sc) {
- return ED_space_clip_maskedit_mask_poll(C);
+ ScrArea *sa = CTX_wm_area(C);
+ if (sa) {
+ switch (sa->spacetype) {
+ case SPACE_CLIP:
+ return ED_space_clip_maskedit_mask_poll(C);
+ case SPACE_SEQ:
+ return ED_space_sequencer_maskedit_mask_poll(C);
+ case SPACE_IMAGE:
+ return ED_space_image_maskedit_mask_poll(C);
+ }
}
-
return FALSE;
}
/********************** registration *********************/
-void ED_mask_mouse_pos(const bContext *C, wmEvent *event, float co[2])
+/* takes event->mval */
+void ED_mask_mouse_pos(ScrArea *sa, ARegion *ar, const int mval[2], float co[2])
{
- SpaceClip *sc = CTX_wm_space_clip(C);
-
- if (sc) {
- ED_clip_mouse_pos(C, event, co);
- BKE_mask_coord_from_movieclip(sc->clip, &sc->user, co, co);
+ if (sa) {
+ switch (sa->spacetype) {
+ case SPACE_CLIP:
+ {
+ SpaceClip *sc = sa->spacedata.first;
+ ED_clip_mouse_pos(sc, ar, mval, co);
+ BKE_mask_coord_from_movieclip(sc->clip, &sc->user, co, co);
+ break;
+ }
+ case SPACE_SEQ:
+ {
+ UI_view2d_region_to_view(&ar->v2d, mval[0], mval[1], &co[0], &co[1]);
+ break;
+ }
+ case SPACE_IMAGE:
+ {
+ SpaceImage *sima = sa->spacedata.first;
+ ED_image_mouse_pos(sima, ar, mval, co);
+ BKE_mask_coord_from_image(sima->image, &sima->iuser, co, co);
+ break;
+ }
+ default:
+ /* possible other spaces from which mask editing is available */
+ BLI_assert(0);
+ zero_v2(co);
+ break;
+ }
}
else {
- /* possible other spaces from which mask editing is available */
+ BLI_assert(0);
zero_v2(co);
}
}
/* input: x/y - mval space
* output: xr/yr - mask point space */
-void ED_mask_point_pos(const bContext *C, float x, float y, float *xr, float *yr)
+void ED_mask_point_pos(ScrArea *sa, ARegion *ar, float x, float y, float *xr, float *yr)
{
- SpaceClip *sc = CTX_wm_space_clip(C);
float co[2];
- if (sc) {
- ED_clip_point_stable_pos(C, x, y, &co[0], &co[1]);
- BKE_mask_coord_from_movieclip(sc->clip, &sc->user, co, co);
+ if (sa) {
+ switch (sa->spacetype) {
+ case SPACE_CLIP:
+ {
+ SpaceClip *sc = sa->spacedata.first;
+ ED_clip_point_stable_pos(sc, ar, x, y, &co[0], &co[1]);
+ BKE_mask_coord_from_movieclip(sc->clip, &sc->user, co, co);
+ break;
+ }
+ case SPACE_SEQ:
+ zero_v2(co); /* MASKTODO */
+ break;
+ case SPACE_IMAGE:
+ {
+ SpaceImage *sima = sa->spacedata.first;
+ ED_image_point_pos(sima, ar, x, y, &co[0], &co[1]);
+ BKE_mask_coord_from_image(sima->image, &sima->iuser, co, co);
+ break;
+ }
+ default:
+ /* possible other spaces from which mask editing is available */
+ BLI_assert(0);
+ zero_v2(co);
+ break;
+ }
}
else {
- /* possible other spaces from which mask editing is available */
+ BLI_assert(0);
zero_v2(co);
}
@@ -110,21 +168,42 @@ void ED_mask_point_pos(const bContext *C, float x, float y, float *xr, float *yr
*yr = co[1];
}
-void ED_mask_point_pos__reverse(const bContext *C, float x, float y, float *xr, float *yr)
+void ED_mask_point_pos__reverse(ScrArea *sa, ARegion *ar, float x, float y, float *xr, float *yr)
{
- SpaceClip *sc = CTX_wm_space_clip(C);
- ARegion *ar = CTX_wm_region(C);
-
float co[2];
- if (sc && ar) {
- co[0] = x;
- co[1] = y;
- BKE_mask_coord_to_movieclip(sc->clip, &sc->user, co, co);
- ED_clip_point_stable_pos__reverse(C, co, co);
+ if (sa) {
+ switch (sa->spacetype) {
+ case SPACE_CLIP:
+ {
+ SpaceClip *sc = sa->spacedata.first;
+ co[0] = x;
+ co[1] = y;
+ BKE_mask_coord_to_movieclip(sc->clip, &sc->user, co, co);
+ ED_clip_point_stable_pos__reverse(sc, ar, co, co);
+ break;
+ }
+ case SPACE_SEQ:
+ zero_v2(co); /* MASKTODO */
+ break;
+ case SPACE_IMAGE:
+ {
+ SpaceImage *sima = sa->spacedata.first;
+ co[0] = x;
+ co[1] = y;
+ BKE_mask_coord_to_image(sima->image, &sima->iuser, co, co);
+ ED_image_point_pos__reverse(sima, ar, co, co);
+ break;
+ }
+ default:
+ /* possible other spaces from which mask editing is available */
+ BLI_assert(0);
+ zero_v2(co);
+ break;
+ }
}
else {
- /* possible other spaces from which mask editing is available */
+ BLI_assert(0);
zero_v2(co);
}
@@ -132,60 +211,159 @@ void ED_mask_point_pos__reverse(const bContext *C, float x, float y, float *xr,
*yr = co[1];
}
-void ED_mask_size(const bContext *C, int *width, int *height)
+void ED_mask_get_size(ScrArea *sa, int *width, int *height)
{
- ScrArea *sa = CTX_wm_area(C);
if (sa && sa->spacedata.first) {
- if (sa->spacetype == SPACE_CLIP) {
- ED_space_clip_get_size(C, width, height);
- return;
- }
- else if (sa->spacetype == SPACE_SEQ) {
- Scene *scene = CTX_data_scene(C);
- *width = (scene->r.size * scene->r.xsch) / 100;
- *height = (scene->r.size * scene->r.ysch) / 100;
- return;
+ switch (sa->spacetype) {
+ case SPACE_CLIP:
+ {
+ SpaceClip *sc = sa->spacedata.first;
+ ED_space_clip_get_size(sc, width, height);
+ break;
+ }
+ case SPACE_SEQ:
+ {
+// Scene *scene = CTX_data_scene(C);
+// *width = (scene->r.size * scene->r.xsch) / 100;
+// *height = (scene->r.size * scene->r.ysch) / 100;
+ break;
+ }
+ case SPACE_IMAGE:
+ {
+ SpaceImage *sima = sa->spacedata.first;
+ ED_space_image_get_size(sima, width, height);
+ break;
+ }
+ default:
+ /* possible other spaces from which mask editing is available */
+ BLI_assert(0);
+ *width = 0;
+ *height = 0;
+ break;
}
}
-
- /* possible other spaces from which mask editing is available */
- *width = 0;
- *height = 0;
+ else {
+ BLI_assert(0);
+ *width = 0;
+ *height = 0;
+ }
}
-void ED_mask_aspect(const bContext *C, float *aspx, float *aspy)
+void ED_mask_zoom(ScrArea *sa, ARegion *ar, float *zoomx, float *zoomy)
{
- SpaceClip *sc = CTX_wm_space_clip(C);
-
- if (sc) {
- ED_space_clip_get_aspect(sc, aspx, aspy);
+ if (sa && sa->spacedata.first) {
+ switch (sa->spacetype) {
+ case SPACE_CLIP:
+ {
+ SpaceClip *sc = sa->spacedata.first;
+ ED_space_clip_get_zoom(sc, ar, zoomx, zoomy);
+ break;
+ }
+ case SPACE_SEQ:
+ {
+ *zoomx = *zoomy = 1.0f;
+ break;
+ }
+ case SPACE_IMAGE:
+ {
+ SpaceImage *sima = sa->spacedata.first;
+ ED_space_image_get_zoom(sima, ar, zoomx, zoomy);
+ break;
+ }
+ default:
+ /* possible other spaces from which mask editing is available */
+ BLI_assert(0);
+ *zoomx = *zoomy = 1.0f;
+ break;
+ }
}
else {
- /* possible other spaces from which mask editing is available */
- *aspx = 1.0f;
- *aspy = 1.0f;
+ BLI_assert(0);
+ *zoomx = *zoomy = 1.0f;
}
}
-void ED_mask_pixelspace_factor(const bContext *C, float *scalex, float *scaley)
+void ED_mask_get_aspect(ScrArea *sa, ARegion *UNUSED(ar), float *aspx, float *aspy)
{
- SpaceClip *sc = CTX_wm_space_clip(C);
-
- if (sc) {
- int width, height;
- float zoomx, zoomy, aspx, aspy;
-
- ED_space_clip_get_size(C, &width, &height);
- ED_space_clip_get_zoom(C, &zoomx, &zoomy);
- ED_space_clip_get_aspect(sc, &aspx, &aspy);
+ if (sa && sa->spacedata.first) {
+ switch (sa->spacetype) {
+ case SPACE_CLIP:
+ {
+ SpaceClip *sc = sa->spacedata.first;
+ ED_space_clip_get_aspect(sc, aspx, aspy);
+ break;
+ }
+ case SPACE_SEQ:
+ {
+ *aspx = *aspy = 1.0f; /* MASKTODO - render aspect? */
+ break;
+ }
+ case SPACE_IMAGE:
+ {
+ SpaceImage *sima = sa->spacedata.first;
+ ED_space_image_get_aspect(sima, aspx, aspy);
+ break;
+ }
+ default:
+ /* possible other spaces from which mask editing is available */
+ BLI_assert(0);
+ *aspx = *aspy = 1.0f;
+ break;
+ }
+ }
+ else {
+ BLI_assert(0);
+ *aspx = *aspy = 1.0f;
+ }
+}
- *scalex = ((float)width * aspx) * zoomx;
- *scaley = ((float)height * aspy) * zoomy;
+void ED_mask_pixelspace_factor(ScrArea *sa, ARegion *ar, float *scalex, float *scaley)
+{
+ if (sa && sa->spacedata.first) {
+ switch (sa->spacetype) {
+ case SPACE_CLIP:
+ {
+ SpaceClip *sc = sa->spacedata.first;
+ int width, height;
+ float zoomx, zoomy, aspx, aspy;
+
+ ED_space_clip_get_size(sc, &width, &height);
+ ED_space_clip_get_zoom(sc, ar, &zoomx, &zoomy);
+ ED_space_clip_get_aspect(sc, &aspx, &aspy);
+
+ *scalex = ((float)width * aspx) * zoomx;
+ *scaley = ((float)height * aspy) * zoomy;
+ break;
+ }
+ case SPACE_SEQ:
+ {
+ *scalex = *scaley = 1.0f; /* MASKTODO? */
+ break;
+ }
+ case SPACE_IMAGE:
+ {
+ SpaceImage *sima = sa->spacedata.first;
+ int width, height;
+ float zoomx, zoomy, aspx, aspy;
+
+ ED_space_image_get_size(sima, &width, &height);
+ ED_space_image_get_zoom(sima, ar, &zoomx, &zoomy);
+ ED_space_image_get_aspect(sima, &aspx, &aspy);
+
+ *scalex = ((float)width * aspx) * zoomx;
+ *scaley = ((float)height * aspy) * zoomy;
+ break;
+ }
+ default:
+ /* possible other spaces from which mask editing is available */
+ BLI_assert(0);
+ *scalex = *scaley = 1.0f;
+ break;
+ }
}
else {
- /* possible other spaces from which mask editing is available */
- *scalex = 1.0f;
- *scaley = 1.0f;
+ BLI_assert(0);
+ *scalex = *scaley = 1.0f;
}
}
@@ -238,6 +416,9 @@ void ED_operatortypes_mask(void)
WM_operatortype_append(MASK_OT_shape_key_clear);
WM_operatortype_append(MASK_OT_shape_key_feather_reset);
WM_operatortype_append(MASK_OT_shape_key_rekey);
+
+ /* layers */
+ WM_operatortype_append(MASK_OT_layer_move);
}
void ED_keymap_mask(wmKeyConfig *keyconf)
@@ -255,8 +436,8 @@ void ED_keymap_mask(wmKeyConfig *keyconf)
ED_keymap_proportional_maskmode(keyconf, keymap);
/* geometry */
- WM_keymap_add_item(keymap, "MASK_OT_add_vertex_slide", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "MASK_OT_add_feather_vertex_slide", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_add_item(keymap, "MASK_OT_add_vertex_slide", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "MASK_OT_add_feather_vertex_slide", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "MASK_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "MASK_OT_delete", DELKEY, KM_PRESS, 0, 0);
@@ -305,12 +486,11 @@ void ED_keymap_mask(wmKeyConfig *keyconf)
/* shape */
WM_keymap_add_item(keymap, "MASK_OT_cyclic_toggle", CKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "MASK_OT_slide_point", LEFTMOUSE, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "MASK_OT_slide_point", ACTIONMOUSE, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "MASK_OT_handle_type_set", VKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "MASK_OT_normals_make_consistent", NKEY, KM_PRESS, KM_CTRL, 0);
// WM_keymap_add_item(keymap, "MASK_OT_feather_weight_clear", SKEY, KM_PRESS, KM_ALT, 0);
/* ... matches curve editmode */
- RNA_enum_set(WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0)->ptr, "mode", TFM_MASK_SHRINKFATTEN);
/* relationships */
WM_keymap_add_item(keymap, "MASK_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
@@ -319,8 +499,16 @@ void ED_keymap_mask(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "MASK_OT_shape_key_insert", IKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "MASK_OT_shape_key_clear", IKEY, KM_PRESS, KM_ALT, 0);
+ /* for image editor only */
+ WM_keymap_add_item(keymap, "UV_OT_cursor_set", ACTIONMOUSE, KM_PRESS, 0, 0);
- transform_keymap_for_space(keyconf, keymap, SPACE_CLIP);
+ /* Transform (don't use transform_keymap_for_space() since this maps to different spaces) */
+ WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0);
+ WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0);
+ kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0);
+ RNA_enum_set(kmi->ptr, "mode", TFM_MASK_SHRINKFATTEN);
}
void ED_operatormacros_mask(void)
@@ -329,13 +517,15 @@ void ED_operatormacros_mask(void)
wmOperatorType *ot;
wmOperatorTypeMacro *otmacro;
- ot = WM_operatortype_append_macro("MASK_OT_add_vertex_slide", "Add Vertex and Slide", "Add new vertex and slide it", OPTYPE_UNDO | OPTYPE_REGISTER);
+ ot = WM_operatortype_append_macro("MASK_OT_add_vertex_slide", "Add Vertex and Slide",
+ "Add new vertex and slide it", OPTYPE_UNDO | OPTYPE_REGISTER);
ot->description = "Add new vertex and slide it";
WM_operatortype_macro_define(ot, "MASK_OT_add_vertex");
otmacro = WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
RNA_boolean_set(otmacro->ptr, "release_confirm", TRUE);
- ot = WM_operatortype_append_macro("MASK_OT_add_feather_vertex_slide", "Add Feather Vertex and Slide", "Add new vertex to feater and slide it", OPTYPE_UNDO | OPTYPE_REGISTER);
+ ot = WM_operatortype_append_macro("MASK_OT_add_feather_vertex_slide", "Add Feather Vertex and Slide",
+ "Add new vertex to feather and slide it", OPTYPE_UNDO | OPTYPE_REGISTER);
ot->description = "Add new feather vertex and slide it";
WM_operatortype_macro_define(ot, "MASK_OT_add_feather_vertex");
otmacro = WM_operatortype_macro_define(ot, "MASK_OT_slide_point");
diff --git a/source/blender/editors/mask/mask_editaction.c b/source/blender/editors/mask/mask_editaction.c
index 3836b393bf8..561ad004a1d 100644
--- a/source/blender/editors/mask/mask_editaction.c
+++ b/source/blender/editors/mask/mask_editaction.c
@@ -48,6 +48,7 @@
#include "ED_anim_api.h"
#include "ED_keyframes_edit.h"
+#include "ED_mask.h" /* own include */
/* ***************************************** */
/* NOTE ABOUT THIS FILE:
@@ -243,7 +244,7 @@ void ED_masklayer_frames_duplicate(MaskLayer *masklay)
mask_shape_dupe = BKE_mask_layer_shape_duplicate(masklay_shape);
masklay_shape->flag &= ~MASK_SHAPE_SELECT;
- // XXX - how to handle duplicate frames?
+ /* XXX - how to handle duplicate frames? */
BLI_insertlinkafter(&masklay->splines_shapes, masklay_shape, mask_shape_dupe);
}
}
diff --git a/source/blender/editors/mask/mask_intern.h b/source/blender/editors/mask/mask_intern.h
index f1d72f59078..ffd4afca182 100644
--- a/source/blender/editors/mask/mask_intern.h
+++ b/source/blender/editors/mask/mask_intern.h
@@ -70,6 +70,8 @@ struct MaskSplinePoint *ED_mask_point_find_nearest(
struct MaskLayer **masklay_r, struct MaskSpline **spline_r, int *is_handle_r,
float *score);
+void MASK_OT_layer_move(struct wmOperatorType *ot);
+
/* mask_relationships.c */
void MASK_OT_parent_set(struct wmOperatorType *ot);
void MASK_OT_parent_clear(struct wmOperatorType *ot);
@@ -97,15 +99,6 @@ void ED_mask_select_flush_all(struct Mask *mask);
int ED_maskedit_poll(struct bContext *C);
int ED_maskedit_mask_poll(struct bContext *C);
-void ED_mask_size(const struct bContext *C, int *width, int *height);
-void ED_mask_aspect(const struct bContext *C, float *aspx, float *aspy);
-
-void ED_mask_pixelspace_factor(const struct bContext *C, float *scalex, float *scaley);
-void ED_mask_mouse_pos(const struct bContext *C, struct wmEvent *event, float co[2]);
-
-void ED_mask_point_pos(const struct bContext *C, float x, float y, float *xr, float *yr);
-void ED_mask_point_pos__reverse(const struct bContext *C, float x, float y, float *xr, float *yr);
-
/* mask_shapekey.c */
void MASK_OT_shape_key_insert(struct wmOperatorType *ot);
void MASK_OT_shape_key_clear(struct wmOperatorType *ot);
diff --git a/source/blender/editors/mask/mask_ops.c b/source/blender/editors/mask/mask_ops.c
index 91ba05c1ab2..88fbb91edfb 100644
--- a/source/blender/editors/mask/mask_ops.c
+++ b/source/blender/editors/mask/mask_ops.c
@@ -45,10 +45,11 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_screen.h"
-#include "ED_mask.h"
#include "ED_clip.h"
+#include "ED_image.h"
#include "ED_keyframing.h"
+#include "ED_mask.h"
+#include "ED_screen.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -61,17 +62,19 @@ MaskSplinePoint *ED_mask_point_find_nearest(const bContext *C, Mask *mask, float
MaskLayer **masklay_r, MaskSpline **spline_r, int *is_handle_r,
float *score)
{
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
+
MaskLayer *masklay;
MaskLayer *point_masklay = NULL;
MaskSpline *point_spline = NULL;
MaskSplinePoint *point = NULL;
- float co[2], aspx, aspy;
+ float co[2];
float len = FLT_MAX, scalex, scaley;
int is_handle = FALSE, width, height;
- ED_mask_size(C, &width, &height);
- ED_mask_aspect(C, &aspx, &aspy);
- ED_mask_pixelspace_factor(C, &scalex, &scaley);
+ ED_mask_get_size(sa, &width, &height);
+ ED_mask_pixelspace_factor(sa, ar, &scalex, &scaley);
co[0] = normal_co[0] * scalex;
co[1] = normal_co[1] * scaley;
@@ -157,17 +160,19 @@ int ED_mask_feather_find_nearest(const bContext *C, Mask *mask, float normal_co[
MaskLayer **masklay_r, MaskSpline **spline_r, MaskSplinePoint **point_r,
MaskSplinePointUW **uw_r, float *score)
{
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
+
MaskLayer *masklay, *point_masklay = NULL;
MaskSpline *point_spline = NULL;
MaskSplinePoint *point = NULL;
MaskSplinePointUW *uw = NULL;
float len = FLT_MAX, co[2];
- float scalex, scaley, aspx, aspy;
+ float scalex, scaley;
int width, height;
- ED_mask_size(C, &width, &height);
- ED_mask_aspect(C, &aspx, &aspy);
- ED_mask_pixelspace_factor(C, &scalex, &scaley);
+ ED_mask_get_size(sa, &width, &height);
+ ED_mask_pixelspace_factor(sa, ar, &scalex, &scaley);
co[0] = normal_co[0] * scalex;
co[1] = normal_co[1] * scaley;
@@ -255,7 +260,7 @@ int ED_mask_feather_find_nearest(const bContext *C, Mask *mask, float normal_co[
static int mask_new_exec(bContext *C, wmOperator *op)
{
- SpaceClip *sc = CTX_wm_space_clip(C);
+ ScrArea *sa = CTX_wm_area(C);
Mask *mask;
char name[MAX_ID_NAME - 2];
@@ -263,8 +268,27 @@ static int mask_new_exec(bContext *C, wmOperator *op)
mask = BKE_mask_new(name);
- if (sc)
- ED_space_clip_set_mask(C, sc, mask);
+ if (sa && sa->spacedata.first) {
+ switch (sa->spacetype) {
+ case SPACE_CLIP:
+ {
+ SpaceClip *sc = sa->spacedata.first;
+ ED_space_clip_set_mask(C, sc, mask);
+ break;
+ }
+ case SPACE_SEQ:
+ {
+ /* do nothing */
+ break;
+ }
+ case SPACE_IMAGE:
+ {
+ SpaceImage *sima = sa->spacedata.first;
+ ED_space_image_set_mask(C, sima, mask);
+ break;
+ }
+ }
+ }
return OPERATOR_FINISHED;
}
@@ -375,7 +399,7 @@ typedef struct SlidePointData {
MaskSplinePointUW *uw;
float handle[2], no[2], feather[2];
int width, height;
- float weight;
+ float weight, weight_scalar;
short curvature_only, accurate;
short initial_feather, overall_feather;
@@ -406,6 +430,9 @@ static int slide_point_check_initial_feather(MaskSpline *spline)
static void *slide_point_customdata(bContext *C, wmOperator *op, wmEvent *event)
{
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
+
Mask *mask = CTX_data_edit_mask(C);
SlidePointData *customdata = NULL;
MaskLayer *masklay, *cv_masklay, *feather_masklay;
@@ -417,8 +444,8 @@ static void *slide_point_customdata(bContext *C, wmOperator *op, wmEvent *event)
float co[2], cv_score, feather_score;
const float threshold = 19;
- ED_mask_mouse_pos(C, event, co);
- ED_mask_size(C, &width, &height);
+ ED_mask_mouse_pos(sa, ar, event->mval, co);
+ ED_mask_get_size(sa, &width, &height);
cv_point = ED_mask_point_find_nearest(C, mask, co, threshold, &cv_masklay, &cv_spline, &is_handle, &cv_score);
@@ -460,6 +487,7 @@ static void *slide_point_customdata(bContext *C, wmOperator *op, wmEvent *event)
float weight_scalar = BKE_mask_point_weight_scalar(spline, point, uw->u);
customdata->weight = uw->w;
+ customdata->weight_scalar = weight_scalar;
BKE_mask_point_segment_co(spline, point, uw->u, co);
BKE_mask_point_normal(spline, point, uw->u, customdata->no);
@@ -469,6 +497,7 @@ static void *slide_point_customdata(bContext *C, wmOperator *op, wmEvent *event)
BezTriple *bezt = &point->bezt;
customdata->weight = bezt->weight;
+ customdata->weight_scalar = 1.0f;
BKE_mask_point_normal(spline, point, 0.0f, customdata->no);
madd_v2_v2v2fl(customdata->feather, bezt->vec[1], customdata->no, bezt->weight);
@@ -480,7 +509,7 @@ static void *slide_point_customdata(bContext *C, wmOperator *op, wmEvent *event)
copy_m3_m3(customdata->vec, point->bezt.vec);
if (BKE_mask_point_has_handle(point))
BKE_mask_point_handle(point, customdata->handle);
- ED_mask_mouse_pos(C, event, customdata->co);
+ ED_mask_mouse_pos(sa, ar, event->mval, customdata->co);
}
return customdata;
@@ -497,6 +526,7 @@ static int slide_point_invoke(bContext *C, wmOperator *op, wmEvent *event)
WM_event_add_modal_handler(C, op);
+#if 0
if (slidedata->uw) {
if ((slidedata->uw->flag & SELECT) == 0) {
ED_mask_select_toggle_all(mask, SEL_DESELECT);
@@ -513,6 +543,7 @@ static int slide_point_invoke(bContext *C, wmOperator *op, wmEvent *event)
ED_mask_select_flush_all(mask);
}
+#endif
slidedata->masklay->act_spline = slidedata->spline;
slidedata->masklay->act_point = slidedata->point;
@@ -600,24 +631,28 @@ static int slide_point_modal(bContext *C, wmOperator *op, wmEvent *event)
float co[2], dco[2];
switch (event->type) {
- case LEFTCTRLKEY:
- case RIGHTCTRLKEY:
+ case LEFTALTKEY:
+ case RIGHTALTKEY:
case LEFTSHIFTKEY:
case RIGHTSHIFTKEY:
- if (ELEM(event->type, LEFTCTRLKEY, RIGHTCTRLKEY)) {
+ if (ELEM(event->type, LEFTALTKEY, RIGHTALTKEY)) {
if (data->action == SLIDE_ACTION_FEATHER)
- data->overall_feather = event->val == KM_PRESS;
+ data->overall_feather = (event->val == KM_PRESS);
else
- data->curvature_only = event->val == KM_PRESS;
+ data->curvature_only = (event->val == KM_PRESS);
}
if (ELEM(event->type, LEFTSHIFTKEY, RIGHTSHIFTKEY))
- data->accurate = event->val == KM_PRESS;
+ data->accurate = (event->val == KM_PRESS);
/* no break! update CV position */
case MOUSEMOVE:
- ED_mask_mouse_pos(C, event, co);
+ {
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
+
+ ED_mask_mouse_pos(sa, ar, event->mval, co);
sub_v2_v2v2(dco, co, data->co);
if (data->action == SLIDE_ACTION_HANDLE) {
@@ -710,13 +745,13 @@ static int slide_point_modal(bContext *C, wmOperator *op, wmEvent *event)
if (dot_v2v2(no, vec) <= 0.0f)
w = -w;
- delta = w - data->weight;
+ delta = w - data->weight * data->weight_scalar;
if (data->orig_spline == NULL) {
/* restore weight for currently sliding point, so orig_spline would be created
* with original weights used
*/
- *weight = data->weight * weight_scalar;
+ *weight = data->weight;
data->orig_spline = BKE_mask_spline_copy(data->spline);
}
@@ -746,6 +781,7 @@ static int slide_point_modal(bContext *C, wmOperator *op, wmEvent *event)
DAG_id_tag_update(&data->mask->id, 0);
break;
+ }
case LEFTMOUSE:
if (event->val == KM_RELEASE) {
@@ -879,6 +915,7 @@ static void delete_feather_points(MaskSplinePoint *point)
static int delete_exec(bContext *C, wmOperator *UNUSED(op))
{
+ Scene *scene = CTX_data_scene(C);
Mask *mask = CTX_data_edit_mask(C);
MaskLayer *masklay;
@@ -966,7 +1003,7 @@ static int delete_exec(bContext *C, wmOperator *UNUSED(op))
}
/* TODO: only update edited splines */
- BKE_mask_update_display(mask, CTX_data_scene(C)->r.cfra);
+ BKE_mask_update_display(mask, CFRA);
WM_event_add_notifier(C, NC_MASK | NA_EDITED, mask);
@@ -1024,7 +1061,7 @@ static int mask_switch_direction_exec(bContext *C, wmOperator *UNUSED(op))
if (change) {
/* TODO: only update this spline */
- BKE_mask_update_display(mask, CTX_data_scene(C)->r.cfra);
+ BKE_mask_update_display(mask, CFRA);
WM_event_add_notifier(C, NC_MASK | ND_SELECT, mask);
@@ -1090,7 +1127,7 @@ static int mask_normals_make_consistent_exec(bContext *C, wmOperator *UNUSED(op)
if (change) {
/* TODO: only update this spline */
- BKE_mask_update_display(mask, CTX_data_scene(C)->r.cfra);
+ BKE_mask_update_display(mask, CFRA);
WM_event_add_notifier(C, NC_MASK | ND_SELECT, mask);
@@ -1288,6 +1325,7 @@ void MASK_OT_hide_view_set(wmOperatorType *ot)
static int mask_feather_weight_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
+ Scene *scene = CTX_data_scene(C);
Mask *mask = CTX_data_edit_mask(C);
MaskLayer *masklay;
int changed = FALSE;
@@ -1315,7 +1353,7 @@ static int mask_feather_weight_clear_exec(bContext *C, wmOperator *UNUSED(op))
if (changed) {
/* TODO: only update edited splines */
- BKE_mask_update_display(mask, CTX_data_scene(C)->r.cfra);
+ BKE_mask_update_display(mask, CFRA);
WM_event_add_notifier(C, NC_MASK | ND_DRAW, mask);
DAG_id_tag_update(&mask->id, 0);
@@ -1341,3 +1379,74 @@ void MASK_OT_feather_weight_clear(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
+
+/******************** move mask layer operator *********************/
+
+static int mask_layer_move_poll(bContext *C)
+{
+ if (ED_maskedit_mask_poll(C)) {
+ Mask *mask = CTX_data_edit_mask(C);
+
+ return mask->masklay_tot > 0;
+ }
+
+ return FALSE;
+}
+
+static int mask_layer_move_exec(bContext *C, wmOperator *op)
+{
+ Mask *mask = CTX_data_edit_mask(C);
+ MaskLayer *mask_layer = BLI_findlink(&mask->masklayers, mask->masklay_act);
+ MaskLayer *mask_layer_other;
+ int direction = RNA_enum_get(op->ptr, "direction");
+
+ if (!mask_layer)
+ return OPERATOR_CANCELLED;
+
+ if (direction == -1) {
+ mask_layer_other = mask_layer->prev;
+
+ if (!mask_layer_other)
+ return OPERATOR_CANCELLED;
+
+ BLI_remlink(&mask->masklayers, mask_layer);
+ BLI_insertlinkbefore(&mask->masklayers, mask_layer_other, mask_layer);
+ mask->masklay_act--;
+ }
+ else if (direction == 1) {
+ mask_layer_other = mask_layer->next;
+
+ if (!mask_layer_other)
+ return OPERATOR_CANCELLED;
+
+ BLI_remlink(&mask->masklayers, mask_layer);
+ BLI_insertlinkafter(&mask->masklayers, mask_layer_other, mask_layer);
+ mask->masklay_act++;
+ }
+
+ return OPERATOR_FINISHED;
+}
+
+void MASK_OT_layer_move(wmOperatorType *ot)
+{
+ static EnumPropertyItem direction_items[] = {
+ {-1, "UP", 0, "Up", ""},
+ {1, "DOWN", 0, "Down", ""},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ /* identifiers */
+ ot->name = "Move Layer";
+ ot->description = "Move the active layer up/down in the list";
+ ot->idname = "MASK_OT_layer_move";
+
+ /* api callbacks */
+ ot->exec = mask_layer_move_exec;
+ ot->poll = mask_layer_move_poll;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
+ RNA_def_enum(ot->srna, "direction", direction_items, 0, "Direction", "Direction to move the active layer");
+}
diff --git a/source/blender/editors/mask/mask_select.c b/source/blender/editors/mask/mask_select.c
index e619277456e..69cfdf4e51b 100644
--- a/source/blender/editors/mask/mask_select.c
+++ b/source/blender/editors/mask/mask_select.c
@@ -147,7 +147,26 @@ void ED_mask_select_toggle_all(Mask *mask, int action)
continue;
}
- ED_mask_layer_select_set(masklay, (action == SEL_SELECT) ? TRUE : FALSE);
+ if (action == SEL_INVERT) {
+ /* we don't have generic functions for this, its restricted to this operator
+ * if one day we need to re-use such functionality, they can be split out */
+
+ MaskSpline *spline;
+ if (masklay->restrictflag & MASK_RESTRICT_SELECT) {
+ continue;
+ }
+ for (spline = masklay->splines.first; spline; spline = spline->next) {
+ int i;
+ for (i = 0; i < spline->tot_point; i++) {
+ MaskSplinePoint *point = &spline->points[i];
+ BKE_mask_point_select_set(point, !MASKPOINT_ISSEL_ANY(point));
+ }
+ }
+
+ }
+ else {
+ ED_mask_layer_select_set(masklay, (action == SEL_SELECT) ? TRUE : FALSE);
+ }
}
}
@@ -343,9 +362,12 @@ static int select_exec(bContext *C, wmOperator *op)
static int select_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
+
float co[2];
- ED_mask_mouse_pos(C, event, co);
+ ED_mask_mouse_pos(sa, ar, event->mval, co);
RNA_float_set_array(op->ptr, "location", co);
@@ -370,7 +392,7 @@ void MASK_OT_select(wmOperatorType *ot)
/* properties */
WM_operator_properties_mouse_select(ot);
- RNA_def_float_vector(ot->srna, "location", 2, NULL, -FLT_MIN, FLT_MAX,
+ RNA_def_float_vector(ot->srna, "location", 2, NULL, -FLT_MAX, FLT_MAX,
"Location", "Location of vertex in normalized space", -1.0f, 1.0f);
}
@@ -380,6 +402,9 @@ void MASK_OT_select(wmOperatorType *ot)
static int border_select_exec(bContext *C, wmOperator *op)
{
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
+
Mask *mask = CTX_data_edit_mask(C);
MaskLayer *masklay;
int i;
@@ -389,13 +414,10 @@ static int border_select_exec(bContext *C, wmOperator *op)
int change = FALSE, mode, extend;
/* get rectangle from operator */
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
- ED_mask_point_pos(C, rect.xmin, rect.ymin, &rectf.xmin, &rectf.ymin);
- ED_mask_point_pos(C, rect.xmax, rect.ymax, &rectf.xmax, &rectf.ymax);
+ ED_mask_point_pos(sa, ar, rect.xmin, rect.ymin, &rectf.xmin, &rectf.ymin);
+ ED_mask_point_pos(sa, ar, rect.xmax, rect.ymax, &rectf.xmax, &rectf.ymax);
mode = RNA_int_get(op->ptr, "gesture_mode");
extend = RNA_boolean_get(op->ptr, "extend");
@@ -418,7 +440,7 @@ static int border_select_exec(bContext *C, wmOperator *op)
/* TODO: handles? */
/* TODO: uw? */
- if (BLI_in_rctf(&rectf, point_deform->bezt.vec[1][0], point_deform->bezt.vec[1][1])) {
+ if (BLI_rctf_isect_pt_v(&rectf, point_deform->bezt.vec[1])) {
BKE_mask_point_select_set(point, mode == GESTURE_MODAL_SELECT);
BKE_mask_point_select_set_handle(point, mode == GESTURE_MODAL_SELECT);
}
@@ -463,8 +485,11 @@ void MASK_OT_select_border(wmOperatorType *ot)
WM_operator_properties_gesture_border(ot, TRUE);
}
-static int do_lasso_select_mask(bContext *C, int mcords[][2], short moves, short select)
+static int do_lasso_select_mask(bContext *C, const int mcords[][2], short moves, short select)
{
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
+
Mask *mask = CTX_data_edit_mask(C);
MaskLayer *masklay;
int i;
@@ -496,11 +521,11 @@ static int do_lasso_select_mask(bContext *C, int mcords[][2], short moves, short
float screen_co[2];
/* marker in screen coords */
- ED_mask_point_pos__reverse(C,
+ ED_mask_point_pos__reverse(sa, ar,
point_deform->bezt.vec[1][0], point_deform->bezt.vec[1][1],
&screen_co[0], &screen_co[1]);
- if (BLI_in_rcti(&rect, screen_co[0], screen_co[1]) &&
+ if (BLI_rcti_isect_pt(&rect, screen_co[0], screen_co[1]) &&
BLI_lasso_is_point_inside(mcords, moves, screen_co[0], screen_co[1], INT_MAX))
{
BKE_mask_point_select_set(point, select);
@@ -524,7 +549,7 @@ static int do_lasso_select_mask(bContext *C, int mcords[][2], short moves, short
static int clip_lasso_select_exec(bContext *C, wmOperator *op)
{
int mcords_tot;
- int (*mcords)[2] = WM_gesture_lasso_path_to_array(C, op, &mcords_tot);
+ const int (*mcords)[2] = WM_gesture_lasso_path_to_array(C, op, &mcords_tot);
if (mcords) {
short select;
@@ -577,6 +602,9 @@ static int mask_spline_point_inside_ellipse(BezTriple *bezt, float offset[2], fl
static int circle_select_exec(bContext *C, wmOperator *op)
{
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
+
Mask *mask = CTX_data_edit_mask(C);
MaskLayer *masklay;
int i;
@@ -591,16 +619,15 @@ static int circle_select_exec(bContext *C, wmOperator *op)
mode = RNA_int_get(op->ptr, "gesture_mode");
- /* TODO - make generic! - this is SpaceClip only! */
/* compute ellipse and position in unified coordinates */
- ED_space_clip_get_size(C, &width, &height);
- ED_space_clip_get_zoom(C, &zoomx, &zoomy);
+ ED_mask_get_size(sa, &width, &height);
+ ED_mask_zoom(sa, ar, &zoomx, &zoomy);
width = height = MAX2(width, height);
ellipse[0] = width * zoomx / radius;
ellipse[1] = height * zoomy / radius;
- ED_mask_point_pos(C, x, y, &offset[0], &offset[1]);
+ ED_mask_point_pos(sa, ar, x, y, &offset[0], &offset[1]);
/* do actual selection */
for (masklay = mask->masklayers.first; masklay; masklay = masklay->next) {
@@ -663,6 +690,9 @@ void MASK_OT_select_circle(wmOperatorType *ot)
static int mask_select_linked_pick_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
+
Mask *mask = CTX_data_edit_mask(C);
MaskLayer *masklay;
MaskSpline *spline;
@@ -674,7 +704,7 @@ static int mask_select_linked_pick_invoke(bContext *C, wmOperator *op, wmEvent *
const float threshold = 19;
int change = FALSE;
- ED_mask_mouse_pos(C, event, co);
+ ED_mask_mouse_pos(sa, ar, event->mval, co);
point = ED_mask_point_find_nearest(C, mask, co, threshold, &masklay, &spline, &is_handle, NULL);
diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c
index b592449fff5..429b2148894 100644
--- a/source/blender/editors/mesh/editface.c
+++ b/source/blender/editors/mesh/editface.c
@@ -123,43 +123,6 @@ void paintface_flush_flags(Object *ob)
}
}
-/* returns 0 if not found, otherwise 1 */
-static int facesel_face_pick(struct bContext *C, Mesh *me, Object *ob, const int mval[2], unsigned int *index, short rect)
-{
- Scene *scene = CTX_data_scene(C);
- ViewContext vc;
- view3d_set_viewcontext(C, &vc);
-
- if (!me || me->totpoly == 0)
- return 0;
-
- makeDerivedMesh(scene, ob, NULL, CD_MASK_BAREMESH, 0);
-
- // XXX if (v3d->flag & V3D_INVALID_BACKBUF) {
-// XXX drawview.c! check_backbuf();
-// XXX persp(PERSP_VIEW);
-// XXX }
-
- if (rect) {
- /* sample rect to increase changes of selecting, so that when clicking
- * on an edge in the backbuf, we can still select a face */
-
- int dist;
- *index = view3d_sample_backbuf_rect(&vc, mval, 3, 1, me->totpoly + 1, &dist, 0, NULL, NULL);
- }
- else {
- /* sample only on the exact position */
- *index = view3d_sample_backbuf(&vc, mval[0], mval[1]);
- }
-
- if ((*index) <= 0 || (*index) > (unsigned int)me->totpoly)
- return 0;
-
- (*index)--;
-
- return 1;
-}
-
void paintface_hide(Object *ob, const int unselected)
{
Mesh *me;
@@ -174,10 +137,10 @@ void paintface_hide(Object *ob, const int unselected)
while (a--) {
if ((mpoly->flag & ME_HIDE) == 0) {
if (unselected) {
- if ( (mpoly->flag & ME_FACE_SEL) == 0) mpoly->flag |= ME_HIDE;
+ if ((mpoly->flag & ME_FACE_SEL) == 0) mpoly->flag |= ME_HIDE;
}
else {
- if ( (mpoly->flag & ME_FACE_SEL)) mpoly->flag |= ME_HIDE;
+ if ((mpoly->flag & ME_FACE_SEL)) mpoly->flag |= ME_HIDE;
}
}
if (mpoly->flag & ME_HIDE) mpoly->flag &= ~ME_FACE_SEL;
@@ -251,7 +214,9 @@ static void select_linked_tfaces_with_seams(int mode, Mesh *me, unsigned int ind
/* fill array by selection */
mp = me->mpoly;
for (a = 0; a < me->totpoly; a++, mp++) {
- if (mp->flag & ME_HIDE) ;
+ if (mp->flag & ME_HIDE) {
+ /* pass */
+ }
else if (mp->flag & ME_FACE_SEL) {
hash_add_face(ehash, mp, me->mloop + mp->loopstart);
linkflag[a] = 1;
@@ -329,9 +294,9 @@ void paintface_select_linked(bContext *UNUSED(C), Object *ob, int UNUSED(mval[2]
if (me == NULL || me->totpoly == 0) return;
if (mode == 0 || mode == 1) {
- // XXX - Causes glitches, not sure why
+ /* XXX - Causes glitches, not sure why */
#if 0
- if (!facesel_face_pick(C, me, mval, &index, 1))
+ if (!ED_mesh_pick_face(C, me, mval, &index, ED_MESH_PICK_DEFAULT_FACE_SIZE))
return;
#endif
}
@@ -463,7 +428,7 @@ void seam_mark_clear_tface(Scene *scene, short mode)
if (me == 0 || me->totpoly == 0) return;
if (mode == 0)
- mode = pupmenu("Seams%t|Mark Border Seam %x1|Clear Seam %x2");
+ mode = pupmenu("Seams %t|Mark Border Seam %x1|Clear Seam %x2");
if (mode != 1 && mode != 2)
return;
@@ -502,7 +467,7 @@ void seam_mark_clear_tface(Scene *scene, short mode)
BLI_edgehash_free(ehash2, NULL);
}
-// XXX if (G.rt == 8)
+// XXX if (G.debug_value == 8)
// unwrap_lscm(1);
me->drawflag |= ME_DRAWSEAMS;
@@ -518,10 +483,10 @@ int paintface_mouse_select(struct bContext *C, Object *ob, const int mval[2], in
/* Get the face under the cursor */
me = BKE_mesh_from_object(ob);
- if (!facesel_face_pick(C, me, ob, mval, &index, 1))
+ if (!ED_mesh_pick_face(C, me, mval, &index, ED_MESH_PICK_DEFAULT_FACE_SIZE))
return 0;
- if (index >= me->totpoly || index < 0)
+ if (index >= me->totpoly)
return 0;
mpoly_sel = me->mpoly + index;
@@ -570,8 +535,8 @@ int do_paintface_box_select(ViewContext *vc, rcti *rect, int select, int extend)
unsigned int *rt;
char *selar;
int a, index;
- int sx = rect->xmax - rect->xmin + 1;
- int sy = rect->ymax - rect->ymin + 1;
+ int sx = BLI_rcti_size_x(rect) + 1;
+ int sy = BLI_rcti_size_y(rect) + 1;
me = BKE_mesh_from_object(ob);
@@ -609,7 +574,9 @@ int do_paintface_box_select(ViewContext *vc, rcti *rect, int select, int extend)
mpoly = me->mpoly;
for (a = 1; a <= me->totpoly; a++, mpoly++) {
if (selar[a]) {
- if (mpoly->flag & ME_HIDE) ;
+ if (mpoly->flag & ME_HIDE) {
+ /* pass */
+ }
else {
if (select) mpoly->flag |= ME_FACE_SEL;
else mpoly->flag &= ~ME_FACE_SEL;
diff --git a/source/blender/editors/mesh/editmesh_add.c b/source/blender/editors/mesh/editmesh_add.c
index 9cbd9e0b7da..0cf4ac48bf7 100644
--- a/source/blender/editors/mesh/editmesh_add.c
+++ b/source/blender/editors/mesh/editmesh_add.c
@@ -55,16 +55,16 @@
/* ********* add primitive operators ************* */
-static void make_prim_init(bContext *C, const char *idname,
- float *dia, float mat[][4],
- int *state, const float loc[3], const float rot[3], const unsigned int layer)
+static Object *make_prim_init(bContext *C, const char *idname,
+ float *dia, float mat[][4],
+ int *state, const float loc[3], const float rot[3], const unsigned int layer)
{
Object *obedit = CTX_data_edit_object(C);
*state = 0;
if (obedit == NULL || obedit->type != OB_MESH) {
obedit = ED_object_add_type(C, OB_MESH, loc, rot, FALSE, layer);
-
+
rename_id((ID *)obedit, idname);
rename_id((ID *)obedit->data, idname);
@@ -74,11 +74,12 @@ static void make_prim_init(bContext *C, const char *idname,
}
*dia = ED_object_new_primitive_matrix(C, obedit, loc, rot, mat);
+
+ return obedit;
}
-static void make_prim_finish(bContext *C, int *state, int enter_editmode)
+static void make_prim_finish(bContext *C, Object *obedit, int *state, int enter_editmode)
{
- Object *obedit = CTX_data_edit_object(C);
BMEditMesh *em = BMEdit_FromObject(obedit);
/* Primitive has all verts selected, use vert select flush
@@ -97,19 +98,15 @@ static void make_prim_finish(bContext *C, int *state, int enter_editmode)
static int add_primitive_plane_exec(bContext *C, wmOperator *op)
{
Object *obedit;
- Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
int state;
unsigned int layer;
-
- ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
- make_prim_init(C, "Plane", &dia, mat, &state, loc, rot, layer);
- obedit = CTX_data_edit_object(C);
- me = obedit->data;
- em = me->edit_btmesh;
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
+ obedit = make_prim_init(C, "Plane", &dia, mat, &state, loc, rot, layer);
+ em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(em, op, "vertout",
"create_grid xsegments=%i ysegments=%i size=%f mat=%m4", 1, 1, dia, mat))
@@ -117,7 +114,7 @@ static int add_primitive_plane_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- make_prim_finish(C, &state, enter_editmode);
+ make_prim_finish(C, obedit, &state, enter_editmode);
return OPERATOR_FINISHED;
}
@@ -128,12 +125,11 @@ void MESH_OT_primitive_plane_add(wmOperatorType *ot)
ot->name = "Add Plane";
ot->description = "Construct a filled planar mesh with 4 vertices";
ot->idname = "MESH_OT_primitive_plane_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_plane_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -143,26 +139,22 @@ void MESH_OT_primitive_plane_add(wmOperatorType *ot)
static int add_primitive_cube_exec(bContext *C, wmOperator *op)
{
Object *obedit;
- Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
int state;
unsigned int layer;
-
- ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
- make_prim_init(C, "Cube", &dia, mat, &state, loc, rot, layer);
- obedit = CTX_data_edit_object(C);
- me = obedit->data;
- em = me->edit_btmesh;
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
+ obedit = make_prim_init(C, "Cube", &dia, mat, &state, loc, rot, layer);
+ em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(em, op, "vertout", "create_cube mat=%m4 size=%f", mat, dia * 2.0f)) {
return OPERATOR_CANCELLED;
}
-
+
/* BMESH_TODO make plane side this: M_SQRT2 - plane (diameter of 1.41 makes it unit size) */
- make_prim_finish(C, &state, enter_editmode);
+ make_prim_finish(C, obedit, &state, enter_editmode);
return OPERATOR_FINISHED;
}
@@ -173,12 +165,11 @@ void MESH_OT_primitive_cube_add(wmOperatorType *ot)
ot->name = "Add Cube";
ot->description = "Construct a cube mesh";
ot->idname = "MESH_OT_primitive_cube_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_cube_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -194,22 +185,18 @@ static const EnumPropertyItem fill_type_items[] = {
static int add_primitive_circle_exec(bContext *C, wmOperator *op)
{
Object *obedit;
- Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
int state, cap_end, cap_tri;
unsigned int layer;
-
+
cap_end = RNA_enum_get(op->ptr, "fill_type");
cap_tri = (cap_end == 2);
-
- ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
- make_prim_init(C, "Circle", &dia, mat, &state, loc, rot, layer);
- obedit = CTX_data_edit_object(C);
- me = obedit->data;
- em = me->edit_btmesh;
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
+ obedit = make_prim_init(C, "Circle", &dia, mat, &state, loc, rot, layer);
+ em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(em, op, "vertout",
"create_circle segments=%i diameter=%f cap_ends=%b cap_tris=%b mat=%m4",
@@ -218,9 +205,9 @@ static int add_primitive_circle_exec(bContext *C, wmOperator *op)
{
return OPERATOR_CANCELLED;
}
-
- make_prim_finish(C, &state, enter_editmode);
-
+
+ make_prim_finish(C, obedit, &state, enter_editmode);
+
return OPERATOR_FINISHED;
}
@@ -232,15 +219,14 @@ void MESH_OT_primitive_circle_add(wmOperatorType *ot)
ot->name = "Add Circle";
ot->description = "Construct a circle mesh";
ot->idname = "MESH_OT_primitive_circle_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_circle_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
+
/* props */
RNA_def_int(ot->srna, "vertices", 32, 3, INT_MAX, "Vertices", "", 3, 500);
prop = RNA_def_float(ot->srna, "radius", 1.0f, 0.0, FLT_MAX, "Radius", "", 0.001, 100.00);
@@ -253,22 +239,18 @@ void MESH_OT_primitive_circle_add(wmOperatorType *ot)
static int add_primitive_cylinder_exec(bContext *C, wmOperator *op)
{
Object *obedit;
- Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
int state, cap_end, cap_tri;
unsigned int layer;
-
+
cap_end = RNA_enum_get(op->ptr, "end_fill_type");
cap_tri = (cap_end == 2);
-
- ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
- make_prim_init(C, "Cylinder", &dia, mat, &state, loc, rot, layer);
- obedit = CTX_data_edit_object(C);
- me = obedit->data;
- em = me->edit_btmesh;
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
+ obedit = make_prim_init(C, "Cylinder", &dia, mat, &state, loc, rot, layer);
+ em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(
em, op, "vertout",
@@ -281,9 +263,9 @@ static int add_primitive_cylinder_exec(bContext *C, wmOperator *op)
{
return OPERATOR_CANCELLED;
}
-
- make_prim_finish(C, &state, enter_editmode);
-
+
+ make_prim_finish(C, obedit, &state, enter_editmode);
+
return OPERATOR_FINISHED;
}
@@ -295,15 +277,14 @@ void MESH_OT_primitive_cylinder_add(wmOperatorType *ot)
ot->name = "Add Cylinder";
ot->description = "Construct a cylinder mesh";
ot->idname = "MESH_OT_primitive_cylinder_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_cylinder_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
+
/* props */
RNA_def_int(ot->srna, "vertices", 32, 3, INT_MAX, "Vertices", "", 3, 500);
prop = RNA_def_float(ot->srna, "radius", 1.0f, 0.0, FLT_MAX, "Radius", "", 0.001, 100.00);
@@ -318,22 +299,18 @@ void MESH_OT_primitive_cylinder_add(wmOperatorType *ot)
static int add_primitive_cone_exec(bContext *C, wmOperator *op)
{
Object *obedit;
- Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
int state, cap_end, cap_tri;
unsigned int layer;
-
+
cap_end = RNA_enum_get(op->ptr, "end_fill_type");
cap_tri = (cap_end == 2);
-
- ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
- make_prim_init(C, "Cone", &dia, mat, &state, loc, rot, layer);
- obedit = CTX_data_edit_object(C);
- me = obedit->data;
- em = me->edit_btmesh;
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
+ obedit = make_prim_init(C, "Cone", &dia, mat, &state, loc, rot, layer);
+ em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(
em, op, "vertout",
@@ -343,8 +320,8 @@ static int add_primitive_cone_exec(bContext *C, wmOperator *op)
{
return OPERATOR_CANCELLED;
}
-
- make_prim_finish(C, &state, enter_editmode);
+
+ make_prim_finish(C, obedit, &state, enter_editmode);
return OPERATOR_FINISHED;
}
@@ -357,15 +334,14 @@ void MESH_OT_primitive_cone_add(wmOperatorType *ot)
ot->name = "Add Cone";
ot->description = "Construct a conic mesh";
ot->idname = "MESH_OT_primitive_cone_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_cone_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
+
/* props */
RNA_def_int(ot->srna, "vertices", 32, 3, INT_MAX, "Vertices", "", 3, 500);
prop = RNA_def_float(ot->srna, "radius1", 1.0f, 0.0, FLT_MAX, "Radius 1", "", 0.001, 100.00);
@@ -382,19 +358,15 @@ void MESH_OT_primitive_cone_add(wmOperatorType *ot)
static int add_primitive_grid_exec(bContext *C, wmOperator *op)
{
Object *obedit;
- Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
int state;
unsigned int layer;
-
- ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
- make_prim_init(C, "Grid", &dia, mat, &state, loc, rot, layer);
- obedit = CTX_data_edit_object(C);
- me = obedit->data;
- em = me->edit_btmesh;
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
+ obedit = make_prim_init(C, "Grid", &dia, mat, &state, loc, rot, layer);
+ em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(em, op, "vertout",
"create_grid xsegments=%i ysegments=%i size=%f mat=%m4",
@@ -404,8 +376,9 @@ static int add_primitive_grid_exec(bContext *C, wmOperator *op)
{
return OPERATOR_CANCELLED;
}
-
- make_prim_finish(C, &state, enter_editmode);
+
+ make_prim_finish(C, obedit, &state, enter_editmode);
+
return OPERATOR_FINISHED;
}
@@ -417,15 +390,14 @@ void MESH_OT_primitive_grid_add(wmOperatorType *ot)
ot->name = "Add Grid";
ot->description = "Construct a grid mesh";
ot->idname = "MESH_OT_primitive_grid_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_grid_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
+
/* props */
RNA_def_int(ot->srna, "x_subdivisions", 10, 3, INT_MAX, "X Subdivisions", "", 3, 1000);
RNA_def_int(ot->srna, "y_subdivisions", 10, 3, INT_MAX, "Y Subdivisions", "", 3, 1000);
@@ -438,28 +410,25 @@ void MESH_OT_primitive_grid_add(wmOperatorType *ot)
static int add_primitive_monkey_exec(bContext *C, wmOperator *op)
{
Object *obedit;
- Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
int state, view_aligned;
unsigned int layer;
-
+
ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, &view_aligned);
if (!view_aligned)
rot[0] += (float)M_PI / 2.0f;
-
- make_prim_init(C, "Monkey", &dia, mat, &state, loc, rot, layer);
- obedit = CTX_data_edit_object(C);
- me = obedit->data;
- em = me->edit_btmesh;
+ obedit = make_prim_init(C, "Monkey", &dia, mat, &state, loc, rot, layer);
+ em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(em, op, "vertout", "create_monkey mat=%m4", mat)) {
return OPERATOR_CANCELLED;
}
-
- make_prim_finish(C, &state, enter_editmode);
+
+ make_prim_finish(C, obedit, &state, enter_editmode);
+
return OPERATOR_FINISHED;
}
@@ -469,12 +438,11 @@ void MESH_OT_primitive_monkey_add(wmOperatorType *ot)
ot->name = "Add Monkey";
ot->description = "Construct a Suzanne mesh";
ot->idname = "MESH_OT_primitive_monkey_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_monkey_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -484,19 +452,15 @@ void MESH_OT_primitive_monkey_add(wmOperatorType *ot)
static int add_primitive_uvsphere_exec(bContext *C, wmOperator *op)
{
Object *obedit;
- Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
int state;
unsigned int layer;
-
- ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
- make_prim_init(C, "Sphere", &dia, mat, &state, loc, rot, layer);
- obedit = CTX_data_edit_object(C);
- me = obedit->data;
- em = me->edit_btmesh;
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
+ obedit = make_prim_init(C, "Sphere", &dia, mat, &state, loc, rot, layer);
+ em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(em, op, "vertout",
"create_uvsphere segments=%i revolutions=%i diameter=%f mat=%m4",
@@ -505,8 +469,8 @@ static int add_primitive_uvsphere_exec(bContext *C, wmOperator *op)
{
return OPERATOR_CANCELLED;
}
-
- make_prim_finish(C, &state, enter_editmode);
+
+ make_prim_finish(C, obedit, &state, enter_editmode);
return OPERATOR_FINISHED;
}
@@ -519,15 +483,14 @@ void MESH_OT_primitive_uv_sphere_add(wmOperatorType *ot)
ot->name = "Add UV Sphere";
ot->description = "Construct a UV sphere mesh";
ot->idname = "MESH_OT_primitive_uv_sphere_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_uvsphere_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
+
/* props */
RNA_def_int(ot->srna, "segments", 32, 3, INT_MAX, "Segments", "", 3, 500);
RNA_def_int(ot->srna, "ring_count", 16, 3, INT_MAX, "Rings", "", 3, 500);
@@ -540,19 +503,15 @@ void MESH_OT_primitive_uv_sphere_add(wmOperatorType *ot)
static int add_primitive_icosphere_exec(bContext *C, wmOperator *op)
{
Object *obedit;
- Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
int state;
unsigned int layer;
-
- ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
- make_prim_init(C, "Icosphere", &dia, mat, &state, loc, rot, layer);
- obedit = CTX_data_edit_object(C);
- me = obedit->data;
- em = me->edit_btmesh;
+ ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL);
+ obedit = make_prim_init(C, "Icosphere", &dia, mat, &state, loc, rot, layer);
+ em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(
em, op, "vertout",
@@ -562,10 +521,10 @@ static int add_primitive_icosphere_exec(bContext *C, wmOperator *op)
{
return OPERATOR_CANCELLED;
}
-
- make_prim_finish(C, &state, enter_editmode);
- return OPERATOR_FINISHED;
+ make_prim_finish(C, obedit, &state, enter_editmode);
+
+ return OPERATOR_FINISHED;
}
void MESH_OT_primitive_ico_sphere_add(wmOperatorType *ot)
@@ -576,15 +535,14 @@ void MESH_OT_primitive_ico_sphere_add(wmOperatorType *ot)
ot->name = "Add Ico Sphere";
ot->description = "Construct an Icosphere mesh";
ot->idname = "MESH_OT_primitive_ico_sphere_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = add_primitive_icosphere_exec;
ot->poll = ED_operator_scene_editable;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
+
/* props */
RNA_def_int(ot->srna, "subdivisions", 2, 1, INT_MAX, "Subdivisions", "", 1, 8);
prop = RNA_def_float(ot->srna, "size", 1.0f, 0.0f, FLT_MAX, "Size", "", 0.001f, 100.00);
diff --git a/source/blender/editors/mesh/editmesh_bvh.c b/source/blender/editors/mesh/editmesh_bvh.c
index 2cb03104874..e84fa90fe5c 100644
--- a/source/blender/editors/mesh/editmesh_bvh.c
+++ b/source/blender/editors/mesh/editmesh_bvh.c
@@ -49,13 +49,14 @@
#include "ED_mesh.h"
#include "ED_view3d.h"
+#include "editmesh_bvh.h" /* own include */
typedef struct BMBVHTree {
BMEditMesh *em;
BMesh *bm;
BVHTree *tree;
float epsilon;
- float maxdist; //for nearest point search
+ float maxdist; /* for nearest point search */
float uv[2];
/* stuff for topological vert search */
@@ -308,7 +309,7 @@ static void vertsearchcallback(void *userdata, int index, const float *UNUSED(co
}
}
-BMVert *BMBVH_FindClosestVert(BMBVHTree *tree, const float co[3], float maxdist)
+BMVert *BMBVH_FindClosestVert(BMBVHTree *tree, const float co[3], const float maxdist)
{
BVHTreeNearest hit;
@@ -324,7 +325,7 @@ BMVert *BMBVH_FindClosestVert(BMBVHTree *tree, const float co[3], float maxdist)
float dist, curdist = tree->maxdist, v[3];
int cur = 0, i;
- maxdist = tree->maxdist;
+ /* maxdist = tree->maxdist; */ /* UNUSED */
for (i = 0; i < 3; i++) {
sub_v3_v3v3(v, hit.co, ls[i]->v->co);
@@ -370,9 +371,9 @@ int BMBVH_VertVisible(BMBVHTree *tree, BMEdge *e, RegionView3D *r3d)
}
#endif
-static BMFace *edge_ray_cast(BMBVHTree *tree, const float co[3], const float dir[3], float *hitout, BMEdge *e)
+static BMFace *edge_ray_cast(BMBVHTree *tree, const float co[3], const float dir[3], float *r_hitout, BMEdge *e)
{
- BMFace *f = BMBVH_RayCast(tree, co, dir, hitout, NULL);
+ BMFace *f = BMBVH_RayCast(tree, co, dir, r_hitout, NULL);
if (f && BM_edge_in_face(f, e))
return NULL;
@@ -391,18 +392,13 @@ static void scale_point(float c1[3], const float p[3], const float s)
int BMBVH_EdgeVisible(BMBVHTree *tree, BMEdge *e, ARegion *ar, View3D *v3d, Object *obedit)
{
BMFace *f;
- float co1[3], co2[3], co3[3], dir1[4], dir2[4], dir3[4];
+ float co1[3], co2[3], co3[3], dir1[3], dir2[3], dir3[3];
float origin[3], invmat[4][4];
float epsilon = 0.01f;
- float mval_f[2], end[3];
-
- if (!ar) {
- printf("error in BMBVH_EdgeVisible!\n");
- return 0;
- }
-
- mval_f[0] = ar->winx / 2.0f;
- mval_f[1] = ar->winy / 2.0f;
+ float end[3];
+ const float mval_f[2] = {ar->winx / 2.0f,
+ ar->winy / 2.0f};
+
ED_view3d_win_to_segment_clip(ar, v3d, mval_f, origin, end);
invert_m4_m4(invmat, obedit->obmat);
diff --git a/source/blender/editors/mesh/editmesh_knife.c b/source/blender/editors/mesh/editmesh_knife.c
index 2ceb8aeef26..4f4fc27582c 100644
--- a/source/blender/editors/mesh/editmesh_knife.c
+++ b/source/blender/editors/mesh/editmesh_knife.c
@@ -29,7 +29,9 @@
* \ingroup edmesh
*/
-#define _USE_MATH_DEFINES
+#ifdef _MSC_VER
+# define _USE_MATH_DEFINES
+#endif
#include "MEM_guardedalloc.h"
@@ -71,6 +73,9 @@
#define KMAXDIST 10 /* max mouse distance from edge before not detecting it */
+#define KNIFE_FLT_EPS 0.00001f
+#define KNIFE_FLT_EPS_SQUARED (KNIFE_FLT_EPS * KNIFE_FLT_EPS)
+
typedef struct KnifeColors {
unsigned char line[3];
unsigned char edge[3];
@@ -84,6 +89,7 @@ typedef struct KnifeColors {
typedef struct KnifeVert {
BMVert *v; /* non-NULL if this is an original vert */
ListBase edges;
+ ListBase faces;
float co[3], cageco[3], sco[3]; /* sco is screen coordinates for cageco */
short flag, draw, isface, inspace;
@@ -159,7 +165,7 @@ typedef struct KnifeTool_OpData {
int totlinehit;
/* Data for mouse-position-derived data (cur) and previous click (prev) */
- KnifePosData cur, prev;
+ KnifePosData curr, prev;
int totkedge, totkvert;
@@ -221,7 +227,7 @@ static void knife_update_header(bContext *C, KnifeTool_OpData *kcd)
static void knife_project_v3(KnifeTool_OpData *kcd, const float co[3], float sco[3])
{
- ED_view3d_project_float_v3(kcd->ar, co, sco, kcd->projmat);
+ ED_view3d_project_float_v3_m4(kcd->ar, co, sco, kcd->projmat);
}
static void knife_pos_data_clear(KnifePosData *kpd)
@@ -277,6 +283,32 @@ static void knife_add_to_vert_edges(KnifeTool_OpData *kcd, KnifeEdge *kfe)
knife_append_list(kcd, &kfe->v2->edges, kfe);
}
+/* Add faces of an edge to a KnifeVert's faces list. No checks for dups. */
+static void knife_add_edge_faces_to_vert(KnifeTool_OpData *kcd, KnifeVert *kfv, BMEdge *e)
+{
+ BMIter bmiter;
+ BMFace *f;
+
+ BM_ITER_ELEM(f, &bmiter, e, BM_FACES_OF_EDGE) {
+ knife_append_list(kcd, &kfv->faces, f);
+ }
+}
+
+/* Find a face in common in the two faces lists.
+ * If more than one, return the first; if none, return NULL */
+static BMFace *knife_find_common_face(ListBase *faces1, ListBase *faces2)
+{
+ Ref *ref1, *ref2;
+
+ for (ref1 = faces1->first; ref1; ref1 = ref1->next) {
+ for (ref2 = faces2->first; ref2; ref2 = ref2->next) {
+ if (ref1->ref == ref2->ref)
+ return (BMFace *)(ref1->ref);
+ }
+ }
+ return NULL;
+}
+
static KnifeVert *new_knife_vert(KnifeTool_OpData *kcd, const float co[3], float *cageco)
{
KnifeVert *kfv = BLI_mempool_calloc(kcd->kverts);
@@ -298,22 +330,27 @@ static KnifeVert *get_bm_knife_vert(KnifeTool_OpData *kcd, BMVert *v)
KnifeVert *kfv = BLI_ghash_lookup(kcd->origvertmap, v);
if (!kfv) {
+ BMIter bmiter;
+ BMFace *f;
+
kfv = new_knife_vert(kcd, v->co, kcd->cagecos[BM_elem_index_get(v)]);
kfv->v = v;
BLI_ghash_insert(kcd->origvertmap, v, kfv);
+ BM_ITER_ELEM(f, &bmiter, v, BM_FACES_OF_VERT) {
+ knife_append_list(kcd, &kfv->faces, f);
+ }
}
return kfv;
}
-/**
- * get a KnifeEdge wrapper for an existing BMEdge
- * \note #knife_get_face_kedges / #get_bm_knife_edge are called recursively - KEEP STACK MEM USAGE LOW */
+/* get a KnifeEdge wrapper for an existing BMEdge */
static KnifeEdge *get_bm_knife_edge(KnifeTool_OpData *kcd, BMEdge *e)
{
KnifeEdge *kfe = BLI_ghash_lookup(kcd->origedgemap, e);
if (!kfe) {
- BMLoop *l_iter, *l_first;
+ BMIter bmiter;
+ BMFace *f;
kfe = new_knife_edge(kcd);
kfe->e = e;
@@ -324,17 +361,9 @@ static KnifeEdge *get_bm_knife_edge(KnifeTool_OpData *kcd, BMEdge *e)
BLI_ghash_insert(kcd->origedgemap, e, kfe);
- /* avoid BM_ITER because of stack memory usage
- * otherwise we could use BM_FACES_OF_EDGE */
- l_iter = l_first = e->l;
- do {
- knife_append_list(kcd, &kfe->faces, l_iter->f);
-
- /* ensures the kedges lst for this f is initialized,
- * it automatically adds kfe by itself */
- knife_get_face_kedges(kcd, l_iter->f);
-
- } while ((l_iter = l_iter->radial_next) != l_first);
+ BM_ITER_ELEM(f, &bmiter, e, BM_FACES_OF_EDGE) {
+ knife_append_list(kcd, &kfe->faces, f);
+ }
}
return kfe;
@@ -344,43 +373,39 @@ static KnifeEdge *get_bm_knife_edge(KnifeTool_OpData *kcd, BMEdge *e)
* Copy the current position data into prev. */
static void knife_start_cut(KnifeTool_OpData *kcd)
{
- kcd->prev = kcd->cur;
- kcd->cur.is_space = 0; /*TODO: why do we do this? */
+ kcd->prev = kcd->curr;
+ kcd->curr.is_space = 0; /*TODO: why do we do this? */
if (kcd->prev.vert == NULL && kcd->prev.edge == NULL && is_zero_v3(kcd->prev.cage)) {
/* Make prevcage a point on the view ray to mouse closest to a point on model: choose vertex 0 */
float origin[3], ray[3], co[3];
BMVert *v0;
- knife_input_ray_cast(kcd, kcd->cur.mval, origin, ray);
+ knife_input_ray_cast(kcd, kcd->curr.mval, origin, ray);
add_v3_v3v3(co, origin, ray);
v0 = BM_vert_at_index(kcd->em->bm, 0);
if (v0) {
closest_to_line_v3(kcd->prev.cage, v0->co, co, origin);
copy_v3_v3(kcd->prev.co, kcd->prev.cage); /*TODO: do we need this? */
- copy_v3_v3(kcd->cur.cage, kcd->prev.cage);
- copy_v3_v3(kcd->cur.co, kcd->prev.co);
+ copy_v3_v3(kcd->curr.cage, kcd->prev.cage);
+ copy_v3_v3(kcd->curr.co, kcd->prev.co);
}
}
}
-/**
- * \note #knife_get_face_kedges / #get_bm_knife_edge are called recursively - KEEP STACK MEM USAGE LOW */
static ListBase *knife_get_face_kedges(KnifeTool_OpData *kcd, BMFace *f)
{
ListBase *lst = BLI_ghash_lookup(kcd->kedgefacemap, f);
if (!lst) {
- BMLoop *l_iter, *l_first;
+ BMIter bmiter;
+ BMEdge *e;
lst = knife_empty_list(kcd);
- /* avoid BM_ITER because of stack memory usage
- * otherwise we could use BM_EDGES_OF_FACE */
- l_iter = l_first = BM_FACE_FIRST_LOOP(f);
- do {
- knife_append_list(kcd, lst, get_bm_knife_edge(kcd, l_iter->e));
- } while ((l_iter = l_iter->next) != l_first);
+ BM_ITER_ELEM(e, &bmiter, f, BM_EDGES_OF_FACE) {
+ knife_append_list(kcd, lst, get_bm_knife_edge(kcd, e));
+ }
BLI_ghash_insert(kcd->kedgefacemap, f, lst);
}
@@ -389,35 +414,9 @@ static ListBase *knife_get_face_kedges(KnifeTool_OpData *kcd, BMFace *f)
}
/* finds the proper face to restrict face fill to */
-static void knife_find_basef(KnifeTool_OpData *kcd, KnifeEdge *kfe)
+static void knife_find_basef(KnifeEdge *kfe)
{
- if (!kfe->basef) {
- Ref *r1, *r2, *r3, *r4;
-
- if (kfe->v1->isface || kfe->v2->isface) {
- if (kfe->v2->isface)
- kfe->basef = kcd->cur.bmface;
- else
- kfe->basef = kcd->prev.bmface;
- }
- else {
- for (r1 = kfe->v1->edges.first; r1 && !kfe->basef; r1 = r1->next) {
- KnifeEdge *ke1 = r1->ref;
- for (r2 = ke1->faces.first; r2 && !kfe->basef; r2 = r2->next) {
- for (r3 = kfe->v2->edges.first; r3 && !kfe->basef; r3 = r3->next) {
- KnifeEdge *ke2 = r3->ref;
-
- for (r4 = ke2->faces.first; r4 && !kfe->basef; r4 = r4->next) {
- if (r2->ref == r4->ref) {
- kfe->basef = r2->ref;
- }
- }
- }
- }
- }
- }
- /* ok, at this point kfe->basef should be set if any valid possibility exists */
- }
+ kfe->basef = knife_find_common_face(&kfe->v1->faces, &kfe->v2->faces);
}
static void knife_edge_append_face(KnifeTool_OpData *kcd, KnifeEdge *kfe, BMFace *f)
@@ -430,10 +429,11 @@ static KnifeVert *knife_split_edge(KnifeTool_OpData *kcd, KnifeEdge *kfe, float
{
KnifeEdge *newkfe = new_knife_edge(kcd);
Ref *ref;
+ BMFace *f;
float perc, cageco[3], l12;
l12 = len_v3v3(kfe->v1->co, kfe->v2->co);
- if (l12 < FLT_EPSILON * 80) {
+ if (l12 < KNIFE_FLT_EPS) {
copy_v3_v3(cageco, kfe->v1->cageco);
}
else {
@@ -444,6 +444,17 @@ static KnifeVert *knife_split_edge(KnifeTool_OpData *kcd, KnifeEdge *kfe, float
newkfe->v1 = kfe->v1;
newkfe->v2 = new_knife_vert(kcd, co, cageco);
newkfe->v2->draw = 1;
+ if (kfe->e) {
+ knife_add_edge_faces_to_vert(kcd, newkfe->v2, kfe->e);
+ }
+ else {
+ /* kfe cuts across an existing face.
+ * If v1 and v2 are in multiple faces together (e.g., if they
+ * are in doubled polys) then this arbitrarily chooses one of them */
+ f = knife_find_common_face(&kfe->v1->faces, &kfe->v2->faces);
+ if (f)
+ knife_append_list(kcd, &newkfe->v2->faces, f);
+ }
newkfe->basef = kfe->basef;
ref = find_ref(&kfe->v1->edges, kfe);
@@ -465,15 +476,15 @@ static KnifeVert *knife_split_edge(KnifeTool_OpData *kcd, KnifeEdge *kfe, float
return newkfe->v2;
}
-/* Make a single KnifeEdge for cut from kcd->prev to kcd->cur.
+/* Make a single KnifeEdge for cut from kcd->prev to kcd->curr.
* and move cur data to prev. */
static void knife_add_single_cut(KnifeTool_OpData *kcd)
{
KnifeEdge *kfe = new_knife_edge(kcd), *kfe2 = NULL, *kfe3 = NULL;
- if (kcd->prev.vert && kcd->prev.vert == kcd->cur.vert)
+ if (kcd->prev.vert && kcd->prev.vert == kcd->curr.vert)
return;
- if (kcd->prev.edge && kcd->prev.edge == kcd->cur.edge)
+ if (kcd->prev.edge && kcd->prev.edge == kcd->curr.edge)
return;
kfe->draw = 1;
@@ -490,28 +501,32 @@ static void knife_add_single_cut(KnifeTool_OpData *kcd)
kfe->v1->inspace = kcd->prev.is_space;
kfe->draw = !kcd->prev.is_space;
kfe->v1->isface = 1;
+ if (kfe->v1->draw && kcd->prev.bmface)
+ knife_append_list(kcd, &kfe->v1->faces, kcd->prev.bmface);
}
- if (kcd->cur.vert) {
- kfe->v2 = kcd->cur.vert;
+ if (kcd->curr.vert) {
+ kfe->v2 = kcd->curr.vert;
}
- else if (kcd->cur.edge) {
- kfe->v2 = knife_split_edge(kcd, kcd->cur.edge, kcd->cur.co, &kfe3);
- kcd->cur.vert = kfe->v2;
+ else if (kcd->curr.edge) {
+ kfe->v2 = knife_split_edge(kcd, kcd->curr.edge, kcd->curr.co, &kfe3);
+ kcd->curr.vert = kfe->v2;
}
else {
- kfe->v2 = new_knife_vert(kcd, kcd->cur.co, kcd->cur.co);
- kfe->v2->draw = !kcd->cur.is_space;
+ kfe->v2 = new_knife_vert(kcd, kcd->curr.co, kcd->curr.co);
+ kfe->v2->draw = !kcd->curr.is_space;
kfe->v2->isface = 1;
- kfe->v2->inspace = kcd->cur.is_space;
+ kfe->v2->inspace = kcd->curr.is_space;
+ if (kfe->v2->draw && kcd->curr.bmface)
+ knife_append_list(kcd, &kfe->v2->faces, kcd->curr.bmface);
- if (kcd->cur.is_space)
+ if (kcd->curr.is_space)
kfe->draw = 0;
- kcd->cur.vert = kfe->v2;
+ kcd->curr.vert = kfe->v2;
}
- knife_find_basef(kcd, kfe);
+ knife_find_basef(kfe);
knife_add_to_vert_edges(kcd, kfe);
@@ -519,12 +534,12 @@ static void knife_add_single_cut(KnifeTool_OpData *kcd)
knife_edge_append_face(kcd, kfe, kfe->basef);
/* sanity check to make sure we're in the right edge/face lists */
- if (kcd->cur.bmface) {
- if (!find_ref(&kfe->faces, kcd->cur.bmface)) {
- knife_edge_append_face(kcd, kfe, kcd->cur.bmface);
+ if (kcd->curr.bmface) {
+ if (!find_ref(&kfe->faces, kcd->curr.bmface)) {
+ knife_edge_append_face(kcd, kfe, kcd->curr.bmface);
}
- if (kcd->prev.bmface && kcd->prev.bmface != kcd->cur.bmface) {
+ if (kcd->prev.bmface && kcd->prev.bmface != kcd->curr.bmface) {
if (!find_ref(&kfe->faces, kcd->prev.bmface)) {
knife_edge_append_face(kcd, kfe, kcd->prev.bmface);
}
@@ -532,7 +547,7 @@ static void knife_add_single_cut(KnifeTool_OpData *kcd)
}
/* set up for next cut */
- kcd->prev = kcd->cur;
+ kcd->prev = kcd->curr;
}
static int verge_linehit(const void *vlh1, const void *vlh2)
@@ -544,6 +559,67 @@ static int verge_linehit(const void *vlh1, const void *vlh2)
else return 0;
}
+/* If there's a linehit connected (same face) as testi in range [firsti, lasti], return the first such, else -1.
+ * If testi is out of range, look for connection to f instead, if f is non-NULL */
+static int find_connected_linehit(KnifeTool_OpData *kcd, int testi, BMFace *f, int firsti, int lasti)
+{
+ int i;
+
+ for (i = firsti; i <= lasti; i++) {
+ if (testi >= 0 && testi < kcd->totlinehit) {
+ if (knife_find_common_face(&kcd->linehits[testi].kfe->faces,
+ &kcd->linehits[i].kfe->faces))
+ {
+ return i;
+ }
+ }
+ else if (f) {
+ if (find_ref(&kcd->linehits[i].kfe->faces, f))
+ return i;
+ }
+ }
+ return -1;
+}
+
+/* Sort in order of distance along cut line, but take care when distances are equal */
+static void knife_sort_linehits(KnifeTool_OpData *kcd)
+{
+ int i, j, k, nexti, nsame;
+
+ qsort(kcd->linehits, kcd->totlinehit, sizeof(BMEdgeHit), verge_linehit);
+
+ /* for ranges of equal "l", swap if neccesary to make predecessor and
+ * successor faces connected to the linehits at either end of the range */
+ for (i = 0; i < kcd->totlinehit - 1; i = nexti) {
+ for (j = i + 1; j < kcd->totlinehit; j++) {
+ if (fabsf(kcd->linehits[j].l - kcd->linehits[i].l) > KNIFE_FLT_EPS)
+ break;
+ }
+ nexti = j;
+ j--;
+ nsame = j - i;
+ if (nsame > 0) {
+ /* find something connected to predecessor of equal range */
+ k = find_connected_linehit(kcd, i - 1, kcd->prev.bmface, i, j);
+ if (k != -1) {
+ if (k != i) {
+ SWAP(BMEdgeHit, kcd->linehits[i], kcd->linehits[k]);
+ }
+ i++;
+ nsame--;
+ }
+ if (nsame > 0) {
+ /* find something connected to successor of equal range */
+ k = find_connected_linehit(kcd, j + 1, kcd->curr.bmface, i, j);
+ if (k != -1 && k != j) {
+ SWAP(BMEdgeHit, kcd->linehits[j], kcd->linehits[k]);
+ }
+ }
+ /* rest of same range doesn't matter because we won't connect them */
+ }
+ }
+}
+
static void knife_add_single_cut_through(KnifeTool_OpData *kcd, KnifeVert *v1, KnifeVert *v2, BMFace *f)
{
KnifeEdge *kfenew;
@@ -608,29 +684,30 @@ static void knife_cut_through(KnifeTool_OpData *kcd)
return;
}
+ /* TODO: probably don't need to sort at all */
qsort(kcd->linehits, kcd->totlinehit, sizeof(BMEdgeHit), verge_linehit);
splitkfe = MEM_callocN(kcd->totlinehit * sizeof(KnifeEdge *), "knife_cut_through");
if (kcd->prev.vert) {
- if (kcd->prev.vert == kcd->cur.vert)
+ if (kcd->prev.vert == kcd->curr.vert)
return;
firstv = kcd->prev.vert;
knife_get_vert_faces(kcd, firstv, kcd->prev.bmface, &firstfaces);
}
else if (kcd->prev.edge) {
- if (kcd->prev.edge == kcd->cur.edge)
+ if (kcd->prev.edge == kcd->curr.edge)
return;
firstv = knife_split_edge(kcd, kcd->prev.edge, kcd->prev.co, &kfe3);
knife_get_edge_faces(kcd, kcd->prev.edge, &firstfaces);
}
- if (kcd->cur.vert) {
- lastv = kcd->cur.vert;
- knife_get_vert_faces(kcd, lastv, kcd->cur.bmface, &lastfaces);
+ if (kcd->curr.vert) {
+ lastv = kcd->curr.vert;
+ knife_get_vert_faces(kcd, lastv, kcd->curr.bmface, &lastfaces);
}
- else if (kcd->cur.edge) {
- lastv = knife_split_edge(kcd, kcd->cur.edge, kcd->cur.co, &kfe3);
- knife_get_edge_faces(kcd, kcd->cur.edge, &lastfaces);
+ else if (kcd->curr.edge) {
+ lastv = knife_split_edge(kcd, kcd->curr.edge, kcd->curr.co, &kfe3);
+ knife_get_edge_faces(kcd, kcd->curr.edge, &lastfaces);
}
if (firstv) {
@@ -699,15 +776,15 @@ static void knife_cut_through(KnifeTool_OpData *kcd)
kcd->totlinehit = 0;
/* set up for next cut */
- kcd->prev = kcd->cur;
+ kcd->prev = kcd->curr;
}
/* User has just left-clicked after the first time.
- * Add all knife cuts implied by line from prev to cur.
+ * Add all knife cuts implied by line from prev to curr.
* If that line crossed edges then kcd->linehits will be non-NULL. */
static void knife_add_cut(KnifeTool_OpData *kcd)
{
- KnifePosData savcur = kcd->cur;
+ KnifePosData savcur = kcd->curr;
if (kcd->cut_through) {
knife_cut_through(kcd);
@@ -716,14 +793,14 @@ static void knife_add_cut(KnifeTool_OpData *kcd)
BMEdgeHit *lh, *lastlh, *firstlh;
int i;
- qsort(kcd->linehits, kcd->totlinehit, sizeof(BMEdgeHit), verge_linehit);
+ knife_sort_linehits(kcd);
lh = kcd->linehits;
lastlh = firstlh = NULL;
for (i = 0; i < kcd->totlinehit; i++, (lastlh = lh), lh++) {
BMFace *f = lastlh ? lastlh->f : lh->f;
- if (lastlh && len_v3v3(lastlh->hit, lh->hit) == 0.0f) {
+ if (lastlh && len_squared_v3v3(lastlh->hit, lh->hit) == 0.0f) {
if (!firstlh)
firstlh = lastlh;
continue;
@@ -742,9 +819,13 @@ static void knife_add_cut(KnifeTool_OpData *kcd)
lastlh = firstlh = NULL;
}
- if (len_v3v3(kcd->prev.cage, lh->realhit) < FLT_EPSILON * 80)
+ if (len_squared_v3v3(kcd->prev.cage, lh->realhit) < KNIFE_FLT_EPS_SQUARED)
continue;
- if (len_v3v3(kcd->cur.cage, lh->realhit) < FLT_EPSILON * 80)
+ if (len_squared_v3v3(kcd->curr.cage, lh->realhit) < KNIFE_FLT_EPS_SQUARED)
+ continue;
+
+ /* first linehit may be down face parallel to view */
+ if (!lastlh && fabsf(lh->l) < KNIFE_FLT_EPS)
continue;
if (kcd->prev.is_space) {
@@ -757,12 +838,18 @@ static void knife_add_cut(KnifeTool_OpData *kcd)
continue;
}
- kcd->cur.is_space = 0;
- kcd->cur.edge = lh->kfe;
- kcd->cur.bmface = lh->f;
- kcd->cur.vert = lh->v;
- copy_v3_v3(kcd->cur.co, lh->hit);
- copy_v3_v3(kcd->cur.cage, lh->cagehit);
+ kcd->curr.is_space = 0;
+ kcd->curr.edge = lh->kfe;
+ kcd->curr.bmface = lh->f;
+ kcd->curr.vert = lh->v;
+ copy_v3_v3(kcd->curr.co, lh->hit);
+ copy_v3_v3(kcd->curr.cage, lh->cagehit);
+
+ /* don't draw edges down faces parallel to view */
+ if (lastlh && fabsf(lastlh->l - lh->l) < KNIFE_FLT_EPS) {
+ kcd->prev = kcd->curr;
+ continue;
+ }
knife_add_single_cut(kcd);
}
@@ -771,7 +858,7 @@ static void knife_add_cut(KnifeTool_OpData *kcd)
kcd->prev = savcur;
}
else {
- kcd->cur = savcur;
+ kcd->curr = savcur;
knife_add_single_cut(kcd);
}
@@ -924,42 +1011,45 @@ static void knifetool_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
glBegin(GL_LINES);
glVertex3fv(kcd->prev.cage);
- glVertex3fv(kcd->cur.cage);
+ glVertex3fv(kcd->curr.cage);
glEnd();
glLineWidth(1.0);
}
- if (kcd->cur.edge) {
+ if (kcd->curr.edge) {
glColor3ubv(kcd->colors.edge);
glLineWidth(2.0);
glBegin(GL_LINES);
- glVertex3fv(kcd->cur.edge->v1->cageco);
- glVertex3fv(kcd->cur.edge->v2->cageco);
+ glVertex3fv(kcd->curr.edge->v1->cageco);
+ glVertex3fv(kcd->curr.edge->v2->cageco);
glEnd();
glLineWidth(1.0);
}
- else if (kcd->cur.vert) {
+ else if (kcd->curr.vert) {
glColor3ubv(kcd->colors.point);
glPointSize(11);
glBegin(GL_POINTS);
- glVertex3fv(kcd->cur.cage);
+ glVertex3fv(kcd->curr.cage);
glEnd();
}
- if (kcd->cur.bmface) {
+ if (kcd->curr.bmface) {
glColor3ubv(kcd->colors.curpoint);
glPointSize(9);
glBegin(GL_POINTS);
- glVertex3fv(kcd->cur.cage);
+ glVertex3fv(kcd->curr.cage);
glEnd();
}
if (kcd->totlinehit > 0) {
+ const float vthresh4 = kcd->vthresh / 4.0f;
+ const float vthresh4_squared = vthresh4 * vthresh4;
+
BMEdgeHit *lh;
int i;
@@ -978,12 +1068,12 @@ static void knifetool_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
knife_project_v3(kcd, lh->kfe->v2->cageco, sv2);
knife_project_v3(kcd, lh->cagehit, lh->schit);
- if (len_v2v2(lh->schit, sv1) < kcd->vthresh / 4.0f) {
+ if (len_squared_v2v2(lh->schit, sv1) < vthresh4_squared) {
copy_v3_v3(lh->cagehit, lh->kfe->v1->cageco);
glVertex3fv(lh->cagehit);
lh->v = lh->kfe->v1;
}
- else if (len_v2v2(lh->schit, sv2) < kcd->vthresh / 4.0f) {
+ else if (len_squared_v2v2(lh->schit, sv2) < vthresh4_squared) {
copy_v3_v3(lh->cagehit, lh->kfe->v2->cageco);
glVertex3fv(lh->cagehit);
lh->v = lh->kfe->v2;
@@ -1052,11 +1142,11 @@ static void knifetool_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
static float len_v3_tri_side_max(const float v1[3], const float v2[3], const float v3[3])
{
- const float s1 = len_v3v3(v1, v2);
- const float s2 = len_v3v3(v2, v3);
- const float s3 = len_v3v3(v3, v1);
+ const float s1 = len_squared_v3v3(v1, v2);
+ const float s2 = len_squared_v3v3(v2, v3);
+ const float s3 = len_squared_v3v3(v3, v1);
- return MAX3(s1, s2, s3);
+ return sqrtf(MAX3(s1, s2, s3));
}
static BMEdgeHit *knife_edge_tri_isect(KnifeTool_OpData *kcd, BMBVHTree *bmtree,
@@ -1068,13 +1158,13 @@ static BMEdgeHit *knife_edge_tri_isect(KnifeTool_OpData *kcd, BMBVHTree *bmtree,
BLI_array_declare(edges);
BVHTreeOverlap *results, *result;
BMLoop **ls;
- float cos[9], uv[3], lambda;
+ float cos[9], lambda;
unsigned int tot = 0;
- int i, j;
+ int i;
/* for comparing distances, error of intersection depends on triangle scale.
* need to scale down before squaring for accurate comparison */
- const float depsilon = 50 * FLT_EPSILON * len_v3_tri_side_max(v1, v2, v3);
+ const float depsilon = (KNIFE_FLT_EPS / 2.0f) * len_v3_tri_side_max(v1, v2, v3);
const float depsilon_squared = depsilon * depsilon;
copy_v3_v3(cos + 0, v1);
@@ -1088,105 +1178,118 @@ static BMEdgeHit *knife_edge_tri_isect(KnifeTool_OpData *kcd, BMBVHTree *bmtree,
for (i = 0; i < tot; i++, result++) {
float p[3];
+ BMLoop *l1;
+ BMFace *hitf;
+ ListBase *lst;
+ Ref *ref;
ls = (BMLoop **)kcd->em->looptris[result->indexA];
- for (j = 0; j < 3; j++) {
- BMLoop *l1 = ls[j];
- BMFace *hitf;
- ListBase *lst = knife_get_face_kedges(kcd, l1->f);
- Ref *ref;
+ l1 = ls[0];
+ lst = knife_get_face_kedges(kcd, l1->f);
- for (ref = lst->first; ref; ref = ref->next) {
- KnifeEdge *kfe = ref->ref;
+ for (ref = lst->first; ref; ref = ref->next) {
+ KnifeEdge *kfe = ref->ref;
- //if (kfe == kcd->cur.edge || kfe == kcd->prev.edge)
- // continue;
+ if (BLI_smallhash_haskey(ehash, (intptr_t)kfe)) {
+ continue; /* We already found a hit on this knife edge */
+ }
- if (isect_line_tri_v3(kfe->v1->cageco, kfe->v2->cageco, v1, v2, v3, &lambda, uv)) {
- float no[3], view[3], sp[3];
+ if (isect_line_tri_v3(kfe->v1->cageco, kfe->v2->cageco, v1, v2, v3, &lambda, NULL)) {
+ float no[3], view[3], sp[3];
- interp_v3_v3v3(p, kfe->v1->cageco, kfe->v2->cageco, lambda);
+ interp_v3_v3v3(p, kfe->v1->cageco, kfe->v2->cageco, lambda);
- if (kcd->cur.vert && len_squared_v3v3(kcd->cur.vert->cageco, p) < depsilon_squared)
- continue;
- if (kcd->prev.vert && len_squared_v3v3(kcd->prev.vert->cageco, p) < depsilon_squared)
- continue;
- if (len_squared_v3v3(kcd->prev.cage, p) < depsilon_squared ||
- len_squared_v3v3(kcd->cur.cage, p) < depsilon_squared)
- {
- continue;
- }
+ if (kcd->curr.vert && len_squared_v3v3(kcd->curr.vert->cageco, p) < depsilon_squared) {
+ continue;
+ }
+ if (kcd->prev.vert && len_squared_v3v3(kcd->prev.vert->cageco, p) < depsilon_squared) {
+ continue;
+ }
+ if (len_squared_v3v3(kcd->prev.cage, p) < depsilon_squared ||
+ len_squared_v3v3(kcd->curr.cage, p) < depsilon_squared)
+ {
+ continue;
+ }
+
+ knife_project_v3(kcd, p, sp);
+ ED_view3d_unproject(mats, view, sp[0], sp[1], 0.0f);
+ mul_m4_v3(kcd->ob->imat, view);
- knife_project_v3(kcd, p, sp);
- view3d_unproject(mats, view, sp[0], sp[1], 0.0f);
- mul_m4_v3(kcd->ob->imat, view);
+ if (kcd->cut_through) {
+ hitf = FALSE;
+ }
+ else {
+ /* check if this point is visible in the viewport */
+ float p1[3], lambda1;
- if (kcd->cut_through) {
- hitf = FALSE;
+ /* if face isn't planer, p may be behind the current tesselated tri,
+ * so move it onto that and then a little towards eye */
+ if (isect_line_tri_v3(p, view, ls[0]->v->co, ls[1]->v->co, ls[2]->v->co, &lambda1, NULL)) {
+ interp_v3_v3v3(p1, p, view, lambda1);
}
else {
- /* check if this point is visible in the viewport */
- sub_v3_v3(view, p);
- normalize_v3(view);
+ copy_v3_v3(p1, p);
+ }
+ sub_v3_v3(view, p1);
+ normalize_v3(view);
- copy_v3_v3(no, view);
- mul_v3_fl(no, 0.003);
+ copy_v3_v3(no, view);
+ mul_v3_fl(no, 0.003);
- /* go towards view a bit */
- add_v3_v3(p, no);
+ /* go towards view a bit */
+ add_v3_v3(p1, no);
+
+ /* ray cast */
+ hitf = BMBVH_RayCast(bmtree, p1, no, NULL, NULL);
+ }
- /* ray cast */
- hitf = BMBVH_RayCast(bmtree, p, no, NULL, NULL);
+ /* ok, if visible add the new point */
+ if (!hitf && !BLI_smallhash_haskey(ehash, (intptr_t)kfe)) {
+ BMEdgeHit hit;
+
+ if (len_squared_v3v3(p, kcd->curr.co) < depsilon_squared ||
+ len_squared_v3v3(p, kcd->prev.co) < depsilon_squared)
+ {
+ continue;
}
- /* ok, if visible add the new point */
- if (!hitf && !BLI_smallhash_haskey(ehash, (intptr_t)kfe)) {
- BMEdgeHit hit;
-
- if (len_squared_v3v3(p, kcd->cur.co) < depsilon_squared ||
- len_squared_v3v3(p, kcd->prev.co) < depsilon_squared)
- {
- continue;
- }
+ hit.kfe = kfe;
+ hit.v = NULL;
+
+ knife_find_basef(kfe);
+ hit.f = kfe->basef;
+ hit.perc = len_v3v3(p, kfe->v1->cageco) / len_v3v3(kfe->v1->cageco, kfe->v2->cageco);
+ copy_v3_v3(hit.cagehit, p);
+
+ interp_v3_v3v3(p, kfe->v1->co, kfe->v2->co, hit.perc);
+ copy_v3_v3(hit.realhit, p);
+
+ /* BMESH_TODO: should also snap to vertices */
+ if (kcd->snap_midpoints) {
+ float perc = hit.perc;
- hit.kfe = kfe;
- hit.v = NULL;
-
- knife_find_basef(kcd, kfe);
- hit.f = kfe->basef;
- hit.perc = len_v3v3(p, kfe->v1->cageco) / len_v3v3(kfe->v1->cageco, kfe->v2->cageco);
- copy_v3_v3(hit.cagehit, p);
-
- interp_v3_v3v3(p, kfe->v1->co, kfe->v2->co, hit.perc);
- copy_v3_v3(hit.realhit, p);
-
- /* BMESH_TODO: should also snap to vertices */
- if (kcd->snap_midpoints) {
- float perc = hit.perc;
-
- /* select the closest from the edge endpoints or the midpoint */
- if (perc < 0.25f) {
- perc = 0.0f;
- }
- else if (perc < 0.75f) {
- perc = 0.5f;
- }
- else {
- perc = 1.0f;
- }
-
- interp_v3_v3v3(hit.hit, kfe->v1->co, kfe->v2->co, perc);
- interp_v3_v3v3(hit.cagehit, kfe->v1->cageco, kfe->v2->cageco, perc);
+ /* select the closest from the edge endpoints or the midpoint */
+ if (perc < 0.25f) {
+ perc = 0.0f;
+ }
+ else if (perc < 0.75f) {
+ perc = 0.5f;
}
else {
- copy_v3_v3(hit.hit, p);
+ perc = 1.0f;
}
- knife_project_v3(kcd, hit.cagehit, hit.schit);
- BLI_array_append(edges, hit);
- BLI_smallhash_insert(ehash, (intptr_t)kfe, NULL);
+ interp_v3_v3v3(hit.hit, kfe->v1->co, kfe->v2->co, perc);
+ interp_v3_v3v3(hit.cagehit, kfe->v1->cageco, kfe->v2->cageco, perc);
+ }
+ else {
+ copy_v3_v3(hit.hit, p);
}
+ knife_project_v3(kcd, hit.cagehit, hit.schit);
+
+ BLI_array_append(edges, hit);
+ BLI_smallhash_insert(ehash, (intptr_t)kfe, NULL);
}
}
}
@@ -1226,7 +1329,7 @@ static void knife_find_line_hits(KnifeTool_OpData *kcd)
}
copy_v3_v3(v1, kcd->prev.cage);
- copy_v3_v3(v2, kcd->cur.cage);
+ copy_v3_v3(v2, kcd->curr.cage);
/* project screen line's 3d coordinates back into 2d */
knife_project_v3(kcd, v1, s1);
@@ -1293,7 +1396,7 @@ static void knife_input_ray_cast(KnifeTool_OpData *kcd, const int mval_i[2],
mval[1] = (float)mval_i[1];
/* unproject to find view ray */
- view3d_unproject(&mats, r_origin, mval[0], mval[1], 0.0f);
+ ED_view3d_unproject(&mats, r_origin, mval[0], mval[1], 0.0f);
if (kcd->is_ortho) {
negate_v3_v3(r_ray, kcd->vc.rv3d->viewinv[2]);
@@ -1400,9 +1503,10 @@ static float knife_snap_size(KnifeTool_OpData *kcd, float maxsize)
{
float density = (float)knife_sample_screen_density(kcd, maxsize * 2.0f);
- density = MAX2(density, 1);
+ if (density < 1.0f)
+ density = 1.0f;
- return MIN2(maxsize / (density * 0.5f), maxsize);
+ return minf(maxsize / (density * 0.5f), maxsize);
}
/* p is closest point on edge to the mouse cursor */
@@ -1421,7 +1525,7 @@ static KnifeEdge *knife_find_closest_edge(KnifeTool_OpData *kcd, float p[3], flo
copy_v3_v3(p, co);
copy_v3_v3(cagep, cageco);
- kcd->cur.bmface = f;
+ kcd->curr.bmface = f;
if (f) {
KnifeEdge *cure = NULL;
@@ -1485,8 +1589,8 @@ static KnifeEdge *knife_find_closest_edge(KnifeTool_OpData *kcd, float p[3], flo
/* update mouse coordinates to the snapped-to edge's screen coordinates
* this is important for angle snap, which uses the previous mouse position */
edgesnap = new_knife_vert(kcd, p, cagep);
- kcd->cur.mval[0] = (int)edgesnap->sco[0];
- kcd->cur.mval[1] = (int)edgesnap->sco[1];
+ kcd->curr.mval[0] = (int)edgesnap->sco[0];
+ kcd->curr.mval[1] = (int)edgesnap->sco[1];
}
else {
@@ -1518,7 +1622,7 @@ static KnifeVert *knife_find_closest_vert(KnifeTool_OpData *kcd, float p[3], flo
/* set p to co, in case we don't find anything, means a face cut */
copy_v3_v3(p, co);
copy_v3_v3(cagep, p);
- kcd->cur.bmface = f;
+ kcd->curr.bmface = f;
if (f) {
ListBase *lst;
@@ -1569,8 +1673,8 @@ static KnifeVert *knife_find_closest_vert(KnifeTool_OpData *kcd, float p[3], flo
/* update mouse coordinates to the snapped-to vertex's screen coordinates
* this is important for angle snap, which uses the previous mouse position */
- kcd->cur.mval[0] = (int)curv->sco[0];
- kcd->cur.mval[1] = (int)curv->sco[1];
+ kcd->curr.mval[0] = (int)curv->sco[0];
+ kcd->curr.mval[1] = (int)curv->sco[1];
}
return curv;
@@ -1627,30 +1731,30 @@ static int knife_update_active(KnifeTool_OpData *kcd)
if (kcd->angle_snapping != ANGLE_FREE && kcd->mode == MODE_DRAGGING)
knife_snap_angle(kcd);
- knife_pos_data_clear(&kcd->cur);
- kcd->cur.mval[0] = kcd->vc.mval[0];
- kcd->cur.mval[1] = kcd->vc.mval[1];
+ knife_pos_data_clear(&kcd->curr);
+ kcd->curr.mval[0] = kcd->vc.mval[0];
+ kcd->curr.mval[1] = kcd->vc.mval[1];
/* XXX knife_snap_angle updates the view coordinate mouse values to constrained angles,
* which current mouse values are set to current mouse values are then used
* for vertex and edge snap detection, without regard to the exact angle constraint */
- kcd->cur.vert = knife_find_closest_vert(kcd, kcd->cur.co, kcd->cur.cage, &kcd->cur.bmface, &kcd->cur.is_space);
+ kcd->curr.vert = knife_find_closest_vert(kcd, kcd->curr.co, kcd->curr.cage, &kcd->curr.bmface, &kcd->curr.is_space);
- if (!kcd->cur.vert) {
- kcd->cur.edge = knife_find_closest_edge(kcd, kcd->cur.co, kcd->cur.cage, &kcd->cur.bmface, &kcd->cur.is_space);
+ if (!kcd->curr.vert) {
+ kcd->curr.edge = knife_find_closest_edge(kcd, kcd->curr.co, kcd->curr.cage, &kcd->curr.bmface, &kcd->curr.is_space);
}
/* if no hits are found this would normally default to (0, 0, 0) so instead
* get a point at the mouse ray closest to the previous point.
* Note that drawing lines in `free-space` isn't properly supported
* but theres no guarantee (0, 0, 0) has any geometry either - campbell */
- if (kcd->cur.vert == NULL && kcd->cur.edge == NULL) {
+ if (kcd->curr.vert == NULL && kcd->curr.edge == NULL) {
float origin[3], ray[3], co[3];
knife_input_ray_cast(kcd, kcd->vc.mval, origin, ray);
add_v3_v3v3(co, origin, ray);
- closest_to_line_v3(kcd->cur.cage, kcd->prev.cage, co, origin);
+ closest_to_line_v3(kcd->curr.cage, kcd->prev.cage, co, origin);
}
if (kcd->mode == MODE_DRAGGING) {
@@ -1659,6 +1763,9 @@ static int knife_update_active(KnifeTool_OpData *kcd)
return 1;
}
+#define SCANFILL_CUTS 0
+#if SCANFILL_CUTS
+
#define MARK 4
#define DEL 8
#define VERT_ON_EDGE 16
@@ -1667,9 +1774,6 @@ static int knife_update_active(KnifeTool_OpData *kcd)
#define BOUNDARY 128
#define FACE_NEW 256
-#define SCANFILL_CUTS 0
-#if SCANFILL_CUTS
-
typedef struct facenet_entry {
struct facenet_entry *next, *prev;
KnifeEdge *kfe;
@@ -1887,7 +1991,7 @@ static void knifenet_fill_faces(KnifeTool_OpData *kcd)
ScanFillFace *sf_tri;
ScanFillVert *sf_vert, *sf_vert_last;
int j;
- float rndscale = FLT_EPSILON * 25;
+ float rndscale = (KNIFE_FLT_EPS / 4.0f);
f = faces[i];
BLI_smallhash_init(hash);
@@ -2007,9 +2111,9 @@ static void knifenet_fill_faces(KnifeTool_OpData *kcd)
remerge_faces(kcd);
/* delete left over faces */
- BMO_op_callf(bm, "delete geom=%ff context=%i", DEL, DEL_ONLYFACES);
- BMO_op_callf(bm, "delete geom=%fe context=%i", DEL, DEL_EDGES);
- BMO_op_callf(bm, "delete geom=%fv context=%i", DEL, DEL_VERTS);
+ BMO_op_callf(bm, BMO_FLAG_DEFAULTS, "delete geom=%ff context=%i", DEL, DEL_ONLYFACES);
+ BMO_op_callf(bm, BMO_FLAG_DEFAULTS, "delete geom=%fe context=%i", DEL, DEL_EDGES);
+ BMO_op_callf(bm, BMO_FLAG_DEFAULTS, "delete geom=%fv context=%i", DEL, DEL_VERTS);
if (face_nets)
MEM_freeN(face_nets);
@@ -2858,7 +2962,7 @@ static int knifetool_init(bContext *C, wmOperator *op, int UNUSED(do_cut))
/* can't usefully select resulting edges in face mode */
kcd->select_result = (kcd->em->selectmode != SCE_SELECT_FACE);
- knife_pos_data_clear(&kcd->cur);
+ knife_pos_data_clear(&kcd->curr);
knife_pos_data_clear(&kcd->prev);
knife_init_colors(&kcd->colors);
@@ -2920,7 +3024,8 @@ wmKeyMap *knifetool_modal_keymap(wmKeyConfig *keyconf)
{KNF_MODAL_CUT_THROUGH_TOGGLE, "CUT_THROUGH_TOGGLE", 0, "Toggle Cut Through", ""},
{KNF_MODAL_NEW_CUT, "NEW_CUT", 0, "End Current Cut", ""},
{KNF_MODAL_ADD_CUT, "ADD_CUT", 0, "Add Cut", ""},
- {0, NULL, 0, NULL, NULL}};
+ {0, NULL, 0, NULL, NULL}
+ };
wmKeyMap *keymap = WM_modalkeymap_get(keyconf, "Knife Tool Modal Map");
@@ -2959,14 +3064,9 @@ wmKeyMap *knifetool_modal_keymap(wmKeyConfig *keyconf)
static int knifetool_modal(bContext *C, wmOperator *op, wmEvent *event)
{
- Object *obedit;
+ Object *obedit = CTX_data_edit_object(C);
KnifeTool_OpData *kcd = op->customdata;
- if (!C) {
- return OPERATOR_FINISHED;
- }
-
- obedit = CTX_data_edit_object(C);
if (!obedit || obedit->type != OB_MESH || BMEdit_FromObject(obedit) != kcd->em) {
knifetool_exit(C, op);
ED_area_headerprint(CTX_wm_area(C), NULL);
@@ -3030,6 +3130,7 @@ static int knifetool_modal(bContext *C, wmOperator *op, wmEvent *event)
break;
case KNF_MODAL_CUT_THROUGH_TOGGLE:
kcd->cut_through = !kcd->cut_through;
+ knifetool_update_mval(kcd, event->mval); /* refresh knife path */
knife_update_header(C, kcd);
break;
case KNF_MODAL_NEW_CUT:
diff --git a/source/blender/editors/mesh/editmesh_loopcut.c b/source/blender/editors/mesh/editmesh_loopcut.c
index eb2aabd88b8..c0a36e24015 100644
--- a/source/blender/editors/mesh/editmesh_loopcut.c
+++ b/source/blender/editors/mesh/editmesh_loopcut.c
@@ -29,7 +29,9 @@
*/
#include <float.h>
-#define _USE_MATH_DEFINES
+#ifdef _MSC_VER
+# define _USE_MATH_DEFINES
+#endif
#include <math.h>
#include <string.h>
#include <ctype.h>
@@ -371,11 +373,12 @@ static void ringsel_exit(bContext *UNUSED(C), wmOperator *op)
op->customdata = NULL;
}
+
/* called when modal loop selection gets set up... */
static int ringsel_init(bContext *C, wmOperator *op, int do_cut)
{
RingSelOpData *lcd;
-
+
/* alloc new customdata */
lcd = op->customdata = MEM_callocN(sizeof(RingSelOpData), "ringsel Modal Op Data");
@@ -390,7 +393,10 @@ static int ringsel_init(bContext *C, wmOperator *op, int do_cut)
initNumInput(&lcd->num);
lcd->num.idx_max = 0;
lcd->num.flag |= NUM_NO_NEGATIVE | NUM_NO_FRACTION;
-
+
+ /* XXX, temp, workaround for [# ] */
+ EDBM_mesh_ensure_valid_dm_hack(CTX_data_scene(C), lcd->em);
+
em_setup_viewcontext(C, &lcd->vc);
ED_region_tag_redraw(lcd->ar);
@@ -447,6 +453,7 @@ static int loopcut_modal(bContext *C, wmOperator *op, wmEvent *event)
switch (event->type) {
case RETKEY:
+ case PADENTER:
case LEFTMOUSE: /* confirm */ // XXX hardcoded
if (event->val == KM_PRESS) {
/* finish */
diff --git a/source/blender/editors/mesh/editmesh_rip.c b/source/blender/editors/mesh/editmesh_rip.c
index f71ec56ca5f..0b3d178e2e8 100644
--- a/source/blender/editors/mesh/editmesh_rip.c
+++ b/source/blender/editors/mesh/editmesh_rip.c
@@ -57,13 +57,14 @@
/* helper to find edge for edge_rip */
static float edbm_rip_rip_edgedist(ARegion *ar, float mat[][4],
- const float co1[3], const float co2[2], const float mvalf[2])
+ const float co1[3], const float co2[3], const float mvalf[2])
{
- float vec1[3], vec2[3];
+ float vec1[2], vec2[2];
- ED_view3d_project_float_v2(ar, co1, vec1, mat);
- ED_view3d_project_float_v2(ar, co2, vec2, mat);
+ ED_view3d_project_float_v2_m4(ar, co1, vec1, mat);
+ ED_view3d_project_float_v2_m4(ar, co2, vec2, mat);
+ /* TODO: use dist_squared_to_line_segment_v2() looks like we only ever use for comparison */
return dist_to_line_segment_v2(mvalf, vec1, vec2);
}
@@ -96,11 +97,11 @@ static float edbm_rip_edge_side_measure(BMEdge *e, BMLoop *e_l,
mid_v3_v3v3(cent, v1_other->co, v2_other->co);
mid_v3_v3v3(mid, e->v1->co, e->v2->co);
- ED_view3d_project_float_v2(ar, cent, cent, projectMat);
- ED_view3d_project_float_v2(ar, mid, mid, projectMat);
+ ED_view3d_project_float_v2_m4(ar, cent, cent, projectMat);
+ ED_view3d_project_float_v2_m4(ar, mid, mid, projectMat);
- ED_view3d_project_float_v2(ar, e->v1->co, e_v1_co, projectMat);
- ED_view3d_project_float_v2(ar, e->v2->co, e_v2_co, projectMat);
+ ED_view3d_project_float_v2_m4(ar, e->v1->co, e_v1_co, projectMat);
+ ED_view3d_project_float_v2_m4(ar, e->v2->co, e_v2_co, projectMat);
sub_v2_v2v2(vec, cent, mid);
normalize_v2(vec);
@@ -111,8 +112,8 @@ static float edbm_rip_edge_side_measure(BMEdge *e, BMLoop *e_l,
score = len_v2v2(e_v1_co, e_v2_co);
- if (dist_to_line_segment_v2(fmval_tweak, e_v1_co, e_v2_co) >
- dist_to_line_segment_v2(fmval, e_v1_co, e_v2_co))
+ if (dist_squared_to_line_segment_v2(fmval_tweak, e_v1_co, e_v2_co) >
+ dist_squared_to_line_segment_v2(fmval, e_v1_co, e_v2_co))
{
return score;
}
@@ -379,6 +380,7 @@ static int edbm_rip_invoke__vert(bContext *C, wmOperator *op, wmEvent *event)
float projectMat[4][4], fmval[3] = {event->mval[0], event->mval[1]};
float dist = FLT_MAX;
float d;
+ int is_wire;
BMEditSelection ese;
int totboundary_edge = 0;
@@ -402,6 +404,8 @@ static int edbm_rip_invoke__vert(bContext *C, wmOperator *op, wmEvent *event)
if (!v)
return OPERATOR_CANCELLED;
+ is_wire = BM_vert_is_wire(v);
+
e2 = NULL;
if (v->e) {
@@ -429,8 +433,11 @@ static int edbm_rip_invoke__vert(bContext *C, wmOperator *op, wmEvent *event)
* - we cant find an edge - this means we are ripping a faces vert that is connected to other
* geometry only at the vertex.
* - the boundary edge total is greater then 2,
- * in this case edge split _can_ work but we get far nicer results if we use this special case. */
- if (totboundary_edge > 2) {
+ * in this case edge split _can_ work but we get far nicer results if we use this special case.
+ * - there are only 2 edges but we are a wire vert. */
+ if ((is_wire == FALSE && totboundary_edge > 2) ||
+ (is_wire == TRUE && totboundary_edge > 1))
+ {
BMVert **vout;
int vout_len;
@@ -457,21 +464,44 @@ static int edbm_rip_invoke__vert(bContext *C, wmOperator *op, wmEvent *event)
dist = FLT_MAX;
+ /* in the loop below we find the best vertex to drag based on its connected geometry,
+ * either by its face corner, or connected edge (when no faces are attached) */
for (i = 0; i < vout_len; i++) {
- BM_ITER_ELEM (l, &iter, vout[i], BM_LOOPS_OF_VERT) {
- if (!BM_elem_flag_test(l->f, BM_ELEM_HIDDEN)) {
- float l_mid_co[3];
- BM_loop_calc_face_tangent(l, l_mid_co);
- /* scale to average of surrounding edge size, only needs to be approx */
- mul_v3_fl(l_mid_co, (BM_edge_calc_length(l->e) + BM_edge_calc_length(l->prev->e)) / 2.0f);
- add_v3_v3(l_mid_co, v->co);
+ if (BM_vert_is_wire(vout[i]) == FALSE) {
+ /* find the best face corner */
+ BM_ITER_ELEM (l, &iter, vout[i], BM_LOOPS_OF_VERT) {
+ if (!BM_elem_flag_test(l->f, BM_ELEM_HIDDEN)) {
+ float l_mid_co[3];
+ BM_loop_calc_face_tangent(l, l_mid_co);
+
+ /* scale to average of surrounding edge size, only needs to be approx, but should
+ * be roughly equivalent to the check below which uses the middle of the edge. */
+ mul_v3_fl(l_mid_co, (BM_edge_calc_length(l->e) + BM_edge_calc_length(l->prev->e)) / 2.0f);
+ add_v3_v3(l_mid_co, v->co);
- d = edbm_rip_rip_edgedist(ar, projectMat, v->co, l_mid_co, fmval);
+ d = edbm_rip_rip_edgedist(ar, projectMat, v->co, l_mid_co, fmval);
- if (d < dist) {
- dist = d;
- vi_best = i;
+ if (d < dist) {
+ dist = d;
+ vi_best = i;
+ }
+ }
+ }
+ }
+ else {
+ /* a wire vert, find the best edge */
+ BM_ITER_ELEM (e, &iter, vout[i], BM_EDGES_OF_VERT) {
+ if (!BM_elem_flag_test(e, BM_ELEM_HIDDEN)) {
+ float e_mid_co[3];
+ mid_v3_v3v3(e_mid_co, e->v1->co, e->v2->co);
+
+ d = edbm_rip_rip_edgedist(ar, projectMat, v->co, e_mid_co, fmval);
+
+ if (d < dist) {
+ dist = d;
+ vi_best = i;
+ }
}
}
}
diff --git a/source/blender/editors/mesh/editmesh_select.c b/source/blender/editors/mesh/editmesh_select.c
index 5404eb3bea6..680d15ec51e 100644
--- a/source/blender/editors/mesh/editmesh_select.c
+++ b/source/blender/editors/mesh/editmesh_select.c
@@ -113,7 +113,9 @@ void EDBM_automerge(Scene *scene, Object *obedit, int update)
if (!em)
return;
- BMO_op_callf(em->bm, "automerge verts=%hv dist=%f", BM_ELEM_SELECT, scene->toolsettings->doublimit);
+ BMO_op_callf(em->bm, BMO_FLAG_DEFAULTS,
+ "automerge verts=%hv dist=%f",
+ BM_ELEM_SELECT, scene->toolsettings->doublimit);
if (update) {
DAG_id_tag_update(obedit->data, OB_RECALC_DATA);
BMEdit_RecalcTessellation(em);
@@ -129,7 +131,7 @@ unsigned int bm_solidoffs = 0, bm_wireoffs = 0, bm_vertoffs = 0; /* set in dr
static char *selbuf = NULL;
/* opengl doesn't support concave... */
-static void draw_triangulated(int mcords[][2], short tot)
+static void draw_triangulated(const int mcords[][2], const short tot)
{
ListBase lb = {NULL, NULL};
DispList *dl;
@@ -225,7 +227,7 @@ void EDBM_backbuf_free(void)
* - grab again and compare
* returns 'OK'
*/
-int EDBM_backbuf_border_mask_init(ViewContext *vc, int mcords[][2], short tot, short xmin, short ymin, short xmax, short ymax)
+int EDBM_backbuf_border_mask_init(ViewContext *vc, const int mcords[][2], short tot, short xmin, short ymin, short xmax, short ymax)
{
unsigned int *dr, *drm;
struct ImBuf *buf, *bufmask;
@@ -266,11 +268,14 @@ int EDBM_backbuf_border_mask_init(ViewContext *vc, int mcords[][2], short tot, s
/* grab mask */
bufmask = view3d_read_backbuf(vc, xmin, ymin, xmax, ymax);
- drm = bufmask->rect;
+
if (bufmask == NULL) {
return 0; /* only when mem alloc fails, go crash somewhere else! */
}
-
+ else {
+ drm = bufmask->rect;
+ }
+
/* build selection lookup */
selbuf = MEM_callocN(bm_vertoffs + 1, "selbuf");
@@ -443,7 +448,7 @@ BMVert *EDBM_vert_find_nearest(ViewContext *vc, int *dist, short sel, short stri
}
/* returns labda for closest distance v1 to line-piece v2 - v3 */
-float labda_PdistVL2Dfl(const float v1[3], const float v2[3], const float v3[3])
+float labda_PdistVL2Dfl(const float v1[2], const float v2[2], const float v3[2])
{
float rc[2], len;
@@ -482,7 +487,6 @@ static void findnearestedge__doClosest(void *userData, BMEdge *eed, int x0, int
vec[0] = eed->v1->co[0] + labda * (eed->v2->co[0] - eed->v1->co[0]);
vec[1] = eed->v1->co[1] + labda * (eed->v2->co[1] - eed->v1->co[1]);
vec[2] = eed->v1->co[2] + labda * (eed->v2->co[2] - eed->v1->co[2]);
- mul_m4_v3(data->vc.obedit->obmat, vec);
if (ED_view3d_clipping_test(data->vc.rv3d, vec, TRUE) == 0) {
data->dist = distance;
@@ -526,7 +530,7 @@ BMEdge *EDBM_edge_find_nearest(ViewContext *vc, int *dist)
data.closest = NULL;
ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d);
- mesh_foreachScreenEdge(vc, findnearestedge__doClosest, &data, 2);
+ mesh_foreachScreenEdge(vc, findnearestedge__doClosest, &data, V3D_CLIP_TEST_REGION);
*dist = data.dist;
return data.closest;
@@ -1046,21 +1050,27 @@ static void mouse_mesh_loop(bContext *C, int mval[2], short extend, short ring)
/* sets as active, useful for other tools */
if (select) {
if (em->selectmode & SCE_SELECT_VERTEX) {
- /* Find nearest vert from mouse. */
+ /* Find nearest vert from mouse
+ * (initialize to large values incase only one vertex can be projected) */
float v1_co[2], v2_co[2];
+ float length_1 = FLT_MAX;
+ float length_2 = FLT_MAX;
/* We can't be sure this has already been set... */
ED_view3d_init_mats_rv3d(vc.obedit, vc.rv3d);
- project_float_noclip(vc.ar, eed->v1->co, v1_co);
- project_float_noclip(vc.ar, eed->v2->co, v2_co);
+
+ if (ED_view3d_project_float_object(vc.ar, eed->v1->co, v1_co, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ length_1 = len_squared_v2v2(mvalf, v1_co);
+ }
+
+ if (ED_view3d_project_float_object(vc.ar, eed->v2->co, v2_co, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ length_2 = len_squared_v2v2(mvalf, v2_co);
+ }
#if 0
printf("mouse to v1: %f\nmouse to v2: %f\n", len_squared_v2v2(mvalf, v1_co),
len_squared_v2v2(mvalf, v2_co));
#endif
- if (len_squared_v2v2(mvalf, v1_co) < len_squared_v2v2(mvalf, v2_co))
- BM_select_history_store(em->bm, eed->v1);
- else
- BM_select_history_store(em->bm, eed->v2);
+ BM_select_history_store(em->bm, (length_1 < length_2) ? eed->v1 : eed->v2);
}
else if (em->selectmode & SCE_SELECT_EDGE) {
BM_select_history_store(em->bm, eed);
@@ -1080,12 +1090,13 @@ static void mouse_mesh_loop(bContext *C, int mval[2], short extend, short ring)
float co[2], tdist;
BM_face_calc_center_mean(f, cent);
- project_float_noclip(vc.ar, cent, co);
- tdist = len_squared_v2v2(mvalf, co);
- if (tdist < best_dist) {
-/* printf("Best face: %p (%f)\n", f, tdist);*/
- best_dist = tdist;
- efa = f;
+ if (ED_view3d_project_float_object(vc.ar, cent, co, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ tdist = len_squared_v2v2(mvalf, co);
+ if (tdist < best_dist) {
+/* printf("Best face: %p (%f)\n", f, tdist);*/
+ best_dist = tdist;
+ efa = f;
+ }
}
}
}
@@ -1492,31 +1503,31 @@ void MESH_OT_select_shortest_path(wmOperatorType *ot)
/* ************************************************** */
/* here actual select happens */
/* gets called via generic mouse select operator */
-int mouse_mesh(bContext *C, const int mval[2], short extend, short deselect, short toggle)
+int EDBM_select_pick(bContext *C, const int mval[2], short extend, short deselect, short toggle)
{
ViewContext vc;
BMVert *eve = NULL;
BMEdge *eed = NULL;
BMFace *efa = NULL;
-
+
/* setup view context for argument to callbacks */
em_setup_viewcontext(C, &vc);
vc.mval[0] = mval[0];
vc.mval[1] = mval[1];
-
+
if (unified_findnearest(&vc, &eve, &eed, &efa)) {
-
- // Deselect everything
+
+ /* Deselect everything */
if (extend == 0 && deselect == 0 && toggle == 0)
EDBM_flag_disable_all(vc.em, BM_ELEM_SELECT);
-
+
if (efa) {
if (extend) {
- // set the last selected face
+ /* set the last selected face */
BM_active_face_set(vc.em->bm, efa);
-
- // Work-around: deselect first, so we can guarantee it will
- // be active even if it was already selected
+
+ /* Work-around: deselect first, so we can guarantee it will */
+ /* be active even if it was already selected */
BM_select_history_remove(vc.em->bm, efa);
BM_face_select_set(vc.em->bm, efa, FALSE);
BM_select_history_store(vc.em->bm, efa);
@@ -1527,9 +1538,9 @@ int mouse_mesh(bContext *C, const int mval[2], short extend, short deselect, sho
BM_face_select_set(vc.em->bm, efa, FALSE);
}
else {
- // set the last selected face
+ /* set the last selected face */
BM_active_face_set(vc.em->bm, efa);
-
+
if (!BM_elem_flag_test(efa, BM_ELEM_SELECT)) {
BM_select_history_store(vc.em->bm, efa);
BM_face_select_set(vc.em->bm, efa, TRUE);
@@ -1542,8 +1553,8 @@ int mouse_mesh(bContext *C, const int mval[2], short extend, short deselect, sho
}
else if (eed) {
if (extend) {
- // Work-around: deselect first, so we can guarantee it will
- // be active even if it was already selected
+ /* Work-around: deselect first, so we can guarantee it will */
+ /* be active even if it was already selected */
BM_select_history_remove(vc.em->bm, eed);
BM_edge_select_set(vc.em->bm, eed, FALSE);
BM_select_history_store(vc.em->bm, eed);
@@ -1566,8 +1577,8 @@ int mouse_mesh(bContext *C, const int mval[2], short extend, short deselect, sho
}
else if (eve) {
if (extend) {
- // Work-around: deselect first, so we can guarantee it will
- // be active even if it was already selected
+ /* Work-around: deselect first, so we can guarantee it will */
+ /* be active even if it was already selected */
BM_select_history_remove(vc.em->bm, eve);
BM_vert_select_set(vc.em->bm, eve, FALSE);
BM_select_history_store(vc.em->bm, eve);
@@ -1588,9 +1599,9 @@ int mouse_mesh(bContext *C, const int mval[2], short extend, short deselect, sho
}
}
}
-
+
EDBM_selectmode_flush(vc.em);
-
+
/* change active material on object */
if (efa && efa->mat_nr != vc.obedit->actcol - 1) {
vc.obedit->actcol = efa->mat_nr + 1;
@@ -1682,15 +1693,15 @@ void EDBM_selectmode_set(BMEditMesh *em)
}
}
-void EDBM_selectmode_convert(BMEditMesh *em, short oldmode, short selectmode)
+void EDBM_selectmode_convert(BMEditMesh *em, const short selectmode_old, const short selectmode_new)
{
BMEdge *eed;
BMFace *efa;
BMIter iter;
/* have to find out what the selectionmode was previously */
- if (oldmode == SCE_SELECT_VERTEX) {
- if (selectmode == SCE_SELECT_EDGE) {
+ if (selectmode_old == SCE_SELECT_VERTEX) {
+ if (selectmode_new == SCE_SELECT_EDGE) {
/* select all edges associated with every selected vertex */
eed = BM_iter_new(&iter, em->bm, BM_EDGES_OF_MESH, NULL);
for (; eed; eed = BM_iter_step(&iter)) {
@@ -1701,7 +1712,7 @@ void EDBM_selectmode_convert(BMEditMesh *em, short oldmode, short selectmode)
}
}
}
- else if (selectmode == SCE_SELECT_FACE) {
+ else if (selectmode_new == SCE_SELECT_FACE) {
BMIter liter;
BMLoop *l;
@@ -1718,9 +1729,8 @@ void EDBM_selectmode_convert(BMEditMesh *em, short oldmode, short selectmode)
}
}
}
-
- if (oldmode == SCE_SELECT_EDGE) {
- if (selectmode == SCE_SELECT_FACE) {
+ else if (selectmode_old == SCE_SELECT_EDGE) {
+ if (selectmode_new == SCE_SELECT_FACE) {
BMIter liter;
BMLoop *l;
@@ -2220,7 +2230,7 @@ static void deselect_nth_active(BMEditMesh *em, BMVert **r_eve, BMEdge **r_eed,
}
}
else if (em->selectmode & SCE_SELECT_FACE) {
- f = BM_active_face_get(em->bm, TRUE);
+ f = BM_active_face_get(em->bm, TRUE, FALSE);
if (f) {
*r_efa = f;
return;
@@ -2295,8 +2305,7 @@ void em_setup_viewcontext(bContext *C, ViewContext *vc)
view3d_set_viewcontext(C, vc);
if (vc->obedit) {
- Mesh *me = vc->obedit->data;
- vc->em = me->edit_btmesh;
+ vc->em = BMEdit_FromObject(vc->obedit);
}
}
@@ -2321,25 +2330,19 @@ static int edbm_select_sharp_edges_exec(bContext *C, wmOperator *op)
BMIter iter;
BMEdge *e;
BMLoop *l1, *l2;
- float sharp = RNA_float_get(op->ptr, "sharpness"), angle;
+ const float sharp = RNA_float_get(op->ptr, "sharpness");
BM_ITER_MESH (e, &iter, em->bm, BM_EDGES_OF_MESH) {
- if (BM_elem_flag_test(e, BM_ELEM_HIDDEN) || !e->l)
- continue;
-
- l1 = e->l;
- l2 = l1->radial_next;
-
- if (l1 == l2)
- continue;
-
- /* edge has exactly two neighboring faces, check angle */
- angle = angle_normalized_v3v3(l1->f->no, l2->f->no);
+ if (BM_elem_flag_test(e, BM_ELEM_HIDDEN) == FALSE &&
+ BM_edge_loop_pair(e, &l1, &l2))
+ {
+ /* edge has exactly two neighboring faces, check angle */
+ const float angle = angle_normalized_v3v3(l1->f->no, l2->f->no);
- if (fabsf(angle) > sharp) {
- BM_edge_select_set(em->bm, e, TRUE);
+ if (fabsf(angle) > sharp) {
+ BM_edge_select_set(em->bm, e, TRUE);
+ }
}
-
}
WM_event_add_notifier(C, NC_GEOM | ND_SELECT, obedit->data);
@@ -2366,7 +2369,7 @@ void MESH_OT_edges_select_sharp(wmOperatorType *ot)
/* props */
prop = RNA_def_float_rotation(ot->srna, "sharpness", 0, NULL, DEG2RADF(0.01f), DEG2RADF(180.0f),
"Sharpness", "", DEG2RADF(1.0f), DEG2RADF(180.0f));
- RNA_def_property_float_default(prop, DEG2RADF(1.0f));
+ RNA_def_property_float_default(prop, DEG2RADF(30.0f));
}
static int edbm_select_linked_flat_faces_exec(bContext *C, wmOperator *op)
diff --git a/source/blender/editors/mesh/editmesh_slide.c b/source/blender/editors/mesh/editmesh_slide.c
index f08c229d38a..eaf0c14a0a8 100644
--- a/source/blender/editors/mesh/editmesh_slide.c
+++ b/source/blender/editors/mesh/editmesh_slide.c
@@ -27,6 +27,7 @@
/* Takes heavily from editmesh_loopcut.c */
#include "DNA_object_types.h"
+#include "DNA_mesh_types.h"
#include "MEM_guardedalloc.h"
@@ -99,7 +100,7 @@ typedef struct VertexSlideOp {
} VertexSlideOp;
static void vtx_slide_draw(const bContext *C, ARegion *ar, void *arg);
-static int edbm_vertex_slide_exec(bContext *C, wmOperator *op);
+static int edbm_vertex_slide_exec_ex(bContext *C, wmOperator *op, const int do_update);
static void vtx_slide_exit(const bContext *C, wmOperator *op);
static int vtx_slide_set_frame(VertexSlideOp *vso);
@@ -195,16 +196,38 @@ static void vtx_slide_confirm(bContext *C, wmOperator *op)
VertexSlideOp *vso = op->customdata;
BMEditMesh *em = BMEdit_FromObject(vso->obj);
BMesh *bm = em->bm;
+ BMVert *other = NULL;
+
+ BMVert *mirr_vtx = NULL;
+ BMVert *mirr_vtx_other = NULL;
/* Select new edge */
BM_edge_select_set(bm, vso->sel_edge, TRUE);
- /* Invoke operator */
- edbm_vertex_slide_exec(C, op);
+ if (vso->snap_n_merge) {
+ other = BM_edge_other_vert(vso->sel_edge, vso->start_vtx);
+ }
+
+ if (((Mesh *)em->ob->data)->editflag & ME_EDIT_MIRROR_X) {
+ EDBM_verts_mirror_cache_begin(em, TRUE);
+
+ mirr_vtx = EDBM_verts_mirror_get(em, vso->start_vtx);
+ if (vso->snap_n_merge) {
+ mirr_vtx_other = EDBM_verts_mirror_get(em, other);
+ }
+ }
+
+ /* Invoke operator - warning */
+ edbm_vertex_slide_exec_ex(C, op, FALSE);
+
+ if (mirr_vtx) {
+ mirr_vtx->co[0] = -vso->start_vtx->co[0];
+ mirr_vtx->co[1] = vso->start_vtx->co[1];
+ mirr_vtx->co[2] = vso->start_vtx->co[2];
+ }
if (vso->snap_n_merge) {
float other_d;
- BMVert *other = BM_edge_other_vert(vso->sel_edge, vso->start_vtx);
other_d = len_v3v3(vso->interp, other->co);
/* Only snap if within threshold */
@@ -213,6 +236,13 @@ static void vtx_slide_confirm(bContext *C, wmOperator *op)
BM_vert_select_set(bm, vso->start_vtx, TRUE);
EDBM_op_callf(em, op, "pointmerge verts=%hv merge_co=%v", BM_ELEM_SELECT, other->co);
EDBM_flag_disable_all(em, BM_ELEM_SELECT);
+
+ if (mirr_vtx_other) {
+ BM_vert_select_set(bm, mirr_vtx, TRUE);
+ BM_vert_select_set(bm, mirr_vtx_other, TRUE);
+ EDBM_op_callf(em, op, "pointmerge verts=%hv merge_co=%v", BM_ELEM_SELECT, mirr_vtx_other->co);
+ EDBM_flag_disable_all(em, BM_ELEM_SELECT);
+ }
}
else {
/* Store in historty if not merging */
@@ -225,6 +255,10 @@ static void vtx_slide_confirm(bContext *C, wmOperator *op)
BM_select_history_store(em->bm, vso->start_vtx);
}
+ if (((Mesh *)em->ob->data)->editflag & ME_EDIT_MIRROR_X) {
+ EDBM_verts_mirror_cache_end(em);
+ }
+
EDBM_selectmode_flush(em);
/* NC_GEOM | ND_DATA & Retess */
@@ -347,22 +381,23 @@ static BMEdge *vtx_slide_nrst_in_frame(VertexSlideOp *vso, const float mval[2])
BMEdge *edge = NULL;
float v1_proj[3], v2_proj[3];
- float dist = 0;
float min_dist = FLT_MAX;
for (i = 0; i < vso->disk_edges; i++) {
edge = vso->edge_frame[i];
mul_v3_m4v3(v1_proj, vso->obj->obmat, edge->v1->co);
- project_float_noclip(vso->active_region, v1_proj, v1_proj);
-
mul_v3_m4v3(v2_proj, vso->obj->obmat, edge->v2->co);
- project_float_noclip(vso->active_region, v2_proj, v2_proj);
- dist = dist_to_line_segment_v2(mval, v1_proj, v2_proj);
- if (dist < min_dist) {
- min_dist = dist;
- cl_edge = edge;
+ /* we could use ED_view3d_project_float_object here, but for now dont since we dont have the context */
+ if ((ED_view3d_project_float_global(vso->active_region, v1_proj, v1_proj, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) &&
+ (ED_view3d_project_float_global(vso->active_region, v2_proj, v2_proj, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK))
+ {
+ const float dist = dist_to_line_segment_v2(mval, v1_proj, v2_proj);
+ if (dist < min_dist) {
+ min_dist = dist;
+ cl_edge = edge;
+ }
}
}
}
@@ -414,17 +449,21 @@ static void vtx_slide_update(VertexSlideOp *vso, wmEvent *event)
/* Calculate interpolation value for preview */
float t_val;
- float mval_float[] = { (float)event->mval[0], (float)event->mval[1]};
+ float mval_float[2] = { (float)event->mval[0], (float)event->mval[1]};
float closest_2d[2];
other = BM_edge_other_vert(edge, vso->start_vtx);
/* Project points onto screen and do interpolation in 2D */
mul_v3_m4v3(start_vtx_proj, vso->obj->obmat, vso->start_vtx->co);
- project_float_noclip(vso->active_region, start_vtx_proj, start_vtx_proj);
-
mul_v3_m4v3(edge_other_proj, vso->obj->obmat, other->co);
- project_float_noclip(vso->active_region, edge_other_proj, edge_other_proj);
+
+ if ((ED_view3d_project_float_global(vso->active_region, edge_other_proj, edge_other_proj, V3D_PROJ_TEST_NOP) != V3D_PROJ_RET_OK) ||
+ (ED_view3d_project_float_global(vso->active_region, start_vtx_proj, start_vtx_proj, V3D_PROJ_TEST_NOP) != V3D_PROJ_RET_OK))
+ {
+ /* not much we can do here */
+ return;
+ }
closest_to_line_v2(closest_2d, mval_float, start_vtx_proj, edge_other_proj);
@@ -436,7 +475,7 @@ static void vtx_slide_update(VertexSlideOp *vso, wmEvent *event)
if (edge_len <= 0.0f)
edge_len = VTX_SLIDE_SNAP_THRSH;
- edge_len = (len_v3v3(edge->v1->co, edge->v2->co) * VTX_SLIDE_SNAP_THRSH) / edge_len;
+ edge_len = (BM_edge_calc_length(edge) * VTX_SLIDE_SNAP_THRSH) / edge_len;
vso->snap_threshold = edge_len;
@@ -644,7 +683,7 @@ static int edbm_vertex_slide_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED
}
/* Vertex Slide */
-static int edbm_vertex_slide_exec(bContext *C, wmOperator *op)
+static int edbm_vertex_slide_exec_ex(bContext *C, wmOperator *op, const int do_update)
{
Object *obedit = CTX_data_edit_object(C);
BMEditMesh *em = BMEdit_FromObject(obedit);
@@ -708,12 +747,21 @@ static int edbm_vertex_slide_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- /* Update Geometry */
- EDBM_update_generic(C, em, TRUE);
+ if (do_update) {
+ /* Update Geometry */
+ EDBM_update_generic(C, em, TRUE);
+ }
return OPERATOR_FINISHED;
}
+#if 0
+static int edbm_vertex_slide_exec(bContext *C, wmOperator *op)
+{
+ return edbm_vertex_slide_exec_ex(C, op, TRUE);
+}
+#endif
+
void MESH_OT_vert_slide(wmOperatorType *ot)
{
PropertyRNA *prop;
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index 0f13df4c777..891e1487781 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -31,6 +31,7 @@
#include "MEM_guardedalloc.h"
+#include "DNA_key_types.h"
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_modifier_types.h"
@@ -58,6 +59,7 @@
#include "WM_types.h"
#include "ED_mesh.h"
+#include "ED_numinput.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_transform.h"
@@ -151,19 +153,22 @@ void MESH_OT_subdivide(wmOperatorType *ot)
}
-void EMBM_project_snap_verts(bContext *C, ARegion *ar, Object *obedit, BMEditMesh *em)
+void EMBM_project_snap_verts(bContext *C, ARegion *ar, BMEditMesh *em)
{
+ Object *obedit = em->ob;
BMIter iter;
BMVert *eve;
+ ED_view3d_init_mats_rv3d(obedit, ar->regiondata);
+
BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) {
if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) {
- float mval[2], vec[3], no_dummy[3];
+ float mval[2], co_proj[3], no_dummy[3];
int dist_dummy;
- mul_v3_m4v3(vec, obedit->obmat, eve->co);
- project_float_noclip(ar, vec, mval);
- if (snapObjectsContext(C, mval, &dist_dummy, vec, no_dummy, SNAP_NOT_OBEDIT)) {
- mul_v3_m4v3(eve->co, obedit->imat, vec);
+ if (ED_view3d_project_float_object(ar, eve->co, mval, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ if (snapObjectsContext(C, mval, &dist_dummy, co_proj, no_dummy, SNAP_NOT_OBEDIT)) {
+ mul_v3_m4v3(eve->co, obedit->imat, co_proj);
+ }
}
}
}
@@ -254,7 +259,7 @@ static short edbm_extrude_edge(Object *obedit, BMEditMesh *em, const char hflag,
ModifierData *md;
BMElem *ele;
- BMO_op_init(bm, &extop, "extrude_face_region");
+ BMO_op_init(bm, &extop, BMO_FLAG_DEFAULTS, "extrude_face_region");
BMO_slot_buffer_from_enabled_hflag(bm, &extop, "edgefacein", BM_VERT | BM_EDGE | BM_FACE, hflag);
/* If a mirror modifier with clipping is on, we need to adjust some
@@ -394,8 +399,10 @@ static int edbm_extrude_repeat_exec(bContext *C, wmOperator *op)
for (a = 0; a < steps; a++) {
edbm_extrude_edge(obedit, em, BM_ELEM_SELECT, nor);
- //BMO_op_callf(em->bm, "extrude_face_region edgefacein=%hef", BM_ELEM_SELECT);
- BMO_op_callf(em->bm, "translate vec=%v verts=%hv", (float *)dvec, BM_ELEM_SELECT);
+ //BMO_op_callf(em->bm, BMO_FLAG_DEFAULTS, "extrude_face_region edgefacein=%hef", BM_ELEM_SELECT);
+ BMO_op_callf(em->bm, BMO_FLAG_DEFAULTS,
+ "translate vec=%v verts=%hv",
+ (float *)dvec, BM_ELEM_SELECT);
//extrudeflag(obedit, em, SELECT, nor);
//translateflag(em, SELECT, dvec);
}
@@ -435,16 +442,17 @@ static int edbm_extrude_mesh(Scene *scene, Object *obedit, BMEditMesh *em, wmOpe
zero_v3(nor);
+ /* XXX If those popup menus were to be enabled again, please get rid of this "menu string" syntax! */
if (em->selectmode & SCE_SELECT_VERTEX) {
if (em->bm->totvertsel == 0) nr = 0;
else if (em->bm->totvertsel == 1) nr = 4;
else if (em->bm->totedgesel == 0) nr = 4;
else if (em->bm->totfacesel == 0)
- nr = 3; // pupmenu("Extrude %t|Only Edges%x3|Only Vertices%x4");
+ nr = 3; /* pupmenu("Extrude %t|Only Edges %x3|Only Vertices %x4"); */
else if (em->bm->totfacesel == 1)
- nr = 1; // pupmenu("Extrude %t|Region %x1|Only Edges%x3|Only Vertices%x4");
- else
- nr = 1; // pupmenu("Extrude %t|Region %x1||Individual Faces %x2|Only Edges%x3|Only Vertices%x4");
+ nr = 1; /* pupmenu("Extrude %t|Region %x1|Only Edges% x3|Only Vertices %x4"); */
+ else
+ nr = 1; /* pupmenu("Extrude %t|Region %x1|Individual Faces %x2|Only Edges %x3|Only Vertices %x4"); */
}
else if (em->selectmode & SCE_SELECT_EDGE) {
if (em->bm->totedgesel == 0) nr = 0;
@@ -454,16 +462,16 @@ static int edbm_extrude_mesh(Scene *scene, Object *obedit, BMEditMesh *em, wmOpe
else if (em->totedgesel == 1) nr = 3;
else if (em->totfacesel == 0) nr = 3;
else if (em->totfacesel == 1)
- nr = 1; // pupmenu("Extrude %t|Region %x1|Only Edges%x3");
+ nr = 1; /* pupmenu("Extrude %t|Region %x1|Only Edges %x3"); */
else
- nr = 1; // pupmenu("Extrude %t|Region %x1||Individual Faces %x2|Only Edges%x3");
+ nr = 1; /* pupmenu("Extrude %t|Region %x1|Individual Faces %x2|Only Edges %x3"); */
#endif
}
else {
if (em->bm->totfacesel == 0) nr = 0;
else if (em->bm->totfacesel == 1) nr = 1;
else
- nr = 1; // pupmenu("Extrude %t|Region %x1||Individual Faces %x2");
+ nr = 1; /* pupmenu("Extrude %t|Region %x1|Individual Faces %x2"); */
}
if (nr < 1) return 'g';
@@ -726,7 +734,10 @@ static int edbm_dupli_extrude_cursor_invoke(bContext *C, wmOperator *op, wmEvent
short use_proj;
em_setup_viewcontext(C, &vc);
-
+
+ ED_view3d_init_mats_rv3d(vc.obedit, vc.rv3d);
+
+
use_proj = ((vc.scene->toolsettings->snap_flag & SCE_SNAP) &&
(vc.scene->toolsettings->snap_mode == SCE_SNAP_MODE_FACE));
@@ -747,36 +758,34 @@ static int edbm_dupli_extrude_cursor_invoke(bContext *C, wmOperator *op, wmEvent
float nor[3] = {0.0, 0.0, 0.0};
/* 2D normal calc */
- float mval_f[2];
-
- mval_f[0] = (float)event->mval[0];
- mval_f[1] = (float)event->mval[1];
+ const float mval_f[2] = {(float)event->mval[0],
+ (float)event->mval[1]};
/* check for edges that are half selected, use for rotation */
done = FALSE;
BM_ITER_MESH (eed, &iter, vc.em->bm, BM_EDGES_OF_MESH) {
if (BM_elem_flag_test(eed, BM_ELEM_SELECT)) {
- float co1[3], co2[3];
- mul_v3_m4v3(co1, vc.obedit->obmat, eed->v1->co);
- mul_v3_m4v3(co2, vc.obedit->obmat, eed->v2->co);
- project_float_noclip(vc.ar, co1, co1);
- project_float_noclip(vc.ar, co2, co2);
-
- /* 2D rotate by 90d while adding.
- * (x, y) = (y, -x)
- *
- * accumulate the screenspace normal in 2D,
- * with screenspace edge length weighting the result. */
- if (line_point_side_v2(co1, co2, mval_f) >= 0.0f) {
- nor[0] += (co1[1] - co2[1]);
- nor[1] += -(co1[0] - co2[0]);
- }
- else {
- nor[0] += (co2[1] - co1[1]);
- nor[1] += -(co2[0] - co1[0]);
+ float co1[2], co2[2];
+
+ if ((ED_view3d_project_float_object(vc.ar, eed->v1->co, co1, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) &&
+ (ED_view3d_project_float_object(vc.ar, eed->v2->co, co2, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK))
+ {
+ /* 2D rotate by 90d while adding.
+ * (x, y) = (y, -x)
+ *
+ * accumulate the screenspace normal in 2D,
+ * with screenspace edge length weighting the result. */
+ if (line_point_side_v2(co1, co2, mval_f) >= 0.0f) {
+ nor[0] += (co1[1] - co2[1]);
+ nor[1] += -(co1[0] - co2[0]);
+ }
+ else {
+ nor[0] += (co2[1] - co1[1]);
+ nor[1] += -(co2[0] - co1[0]);
+ }
+ done = TRUE;
}
}
- done = TRUE;
}
if (done) {
@@ -833,7 +842,7 @@ static int edbm_dupli_extrude_cursor_invoke(bContext *C, wmOperator *op, wmEvent
/* also project the source, for retopo workflow */
if (use_proj)
- EMBM_project_snap_verts(C, vc.ar, vc.obedit, vc.em);
+ EMBM_project_snap_verts(C, vc.ar, vc.em);
}
edbm_extrude_edge(vc.obedit, vc.em, BM_ELEM_SELECT, nor);
@@ -866,7 +875,7 @@ static int edbm_dupli_extrude_cursor_invoke(bContext *C, wmOperator *op, wmEvent
}
if (use_proj)
- EMBM_project_snap_verts(C, vc.ar, vc.obedit, vc.em);
+ EMBM_project_snap_verts(C, vc.ar, vc.em);
/* This normally happens when pushing undo but modal operators
* like this one don't push undo data until after modal mode is
@@ -1052,6 +1061,7 @@ static int edbm_add_edge_face_exec(bContext *C, wmOperator *op)
BMO_op_exec(em->bm, &bmop);
BMO_slot_buffer_hflag_enable(em->bm, &bmop, "faceout", BM_FACE, BM_ELEM_SELECT, TRUE);
+ BMO_slot_buffer_hflag_enable(em->bm, &bmop, "edgeout", BM_EDGE, BM_ELEM_SELECT, TRUE);
if (!EDBM_op_finish(em, &bmop, op, TRUE)) {
return OPERATOR_CANCELLED;
@@ -1529,6 +1539,10 @@ static int edbm_do_smooth_vertex_exec(bContext *C, wmOperator *op)
int i, repeat;
float clipdist = 0.0f;
+ int xaxis = RNA_boolean_get(op->ptr, "xaxis");
+ int yaxis = RNA_boolean_get(op->ptr, "yaxis");
+ int zaxis = RNA_boolean_get(op->ptr, "zaxis");
+
/* mirror before smooth */
if (((Mesh *)obedit->data)->editflag & ME_EDIT_MIRROR_X) {
EDBM_verts_mirror_cache_begin(em, TRUE);
@@ -1560,8 +1574,9 @@ static int edbm_do_smooth_vertex_exec(bContext *C, wmOperator *op)
for (i = 0; i < repeat; i++) {
if (!EDBM_op_callf(em, op,
- "smooth_vert verts=%hv mirror_clip_x=%b mirror_clip_y=%b mirror_clip_z=%b clipdist=%f",
- BM_ELEM_SELECT, mirrx, mirry, mirrz, clipdist))
+ "smooth_vert verts=%hv mirror_clip_x=%b mirror_clip_y=%b mirror_clip_z=%b clipdist=%f "
+ "use_axis_x=%b use_axis_y=%b use_axis_z=%b",
+ BM_ELEM_SELECT, mirrx, mirry, mirrz, clipdist, xaxis, yaxis, zaxis))
{
return OPERATOR_CANCELLED;
}
@@ -1593,6 +1608,9 @@ void MESH_OT_vertices_smooth(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
RNA_def_int(ot->srna, "repeat", 1, 1, 100, "Number of times to smooth the mesh", "", 1, INT_MAX);
+ RNA_def_boolean(ot->srna, "xaxis", 1, "X-Axis", "Smooth along the X axis");
+ RNA_def_boolean(ot->srna, "yaxis", 1, "Y-Axis", "Smooth along the Y axis");
+ RNA_def_boolean(ot->srna, "zaxis", 1, "Z-Axis", "Smooth along the Z axis");
}
/********************** Smooth/Solid Operators *************************/
@@ -2030,22 +2048,38 @@ static int edbm_remove_doubles_exec(bContext *C, wmOperator *op)
Object *obedit = CTX_data_edit_object(C);
BMEditMesh *em = BMEdit_FromObject(obedit);
BMOperator bmop;
+ const float mergedist = RNA_float_get(op->ptr, "mergedist");
+ int use_unselected = RNA_boolean_get(op->ptr, "use_unselected");
+ int totvert_orig = em->bm->totvert;
int count;
- EDBM_op_init(em, &bmop, op, "find_doubles verts=%hv dist=%f", BM_ELEM_SELECT, RNA_float_get(op->ptr, "mergedist"));
- BMO_op_exec(em->bm, &bmop);
-
- count = BMO_slot_map_count(em->bm, &bmop, "targetmapout");
+ if (use_unselected) {
+ EDBM_op_init(em, &bmop, op,
+ "automerge verts=%hv dist=%f",
+ BM_ELEM_SELECT, mergedist);
+ BMO_op_exec(em->bm, &bmop);
- if (!EDBM_op_callf(em, op, "weld_verts targetmap=%s", &bmop, "targetmapout")) {
- BMO_op_finish(em->bm, &bmop);
- return OPERATOR_CANCELLED;
+ if (!EDBM_op_finish(em, &bmop, op, TRUE)) {
+ return OPERATOR_CANCELLED;
+ }
}
+ else {
+ EDBM_op_init(em, &bmop, op,
+ "find_doubles verts=%hv dist=%f",
+ BM_ELEM_SELECT, mergedist);
+ BMO_op_exec(em->bm, &bmop);
- if (!EDBM_op_finish(em, &bmop, op, TRUE)) {
- return OPERATOR_CANCELLED;
+ if (!EDBM_op_callf(em, op, "weld_verts targetmap=%s", &bmop, "targetmapout")) {
+ BMO_op_finish(em->bm, &bmop);
+ return OPERATOR_CANCELLED;
+ }
+
+ if (!EDBM_op_finish(em, &bmop, op, TRUE)) {
+ return OPERATOR_CANCELLED;
+ }
}
+ count = totvert_orig - em->bm->totvert;
BKE_reportf(op->reports, RPT_INFO, "Removed %d vert%s", count, (count == 1) ? "ex" : "ices");
EDBM_update_generic(C, em, TRUE);
@@ -2070,6 +2104,7 @@ void MESH_OT_remove_doubles(wmOperatorType *ot)
RNA_def_float(ot->srna, "mergedist", 0.0001f, 0.000001f, 50.0f,
"Merge Distance",
"Minimum distance between elements to merge", 0.00001, 10.0);
+ RNA_def_boolean(ot->srna, "use_unselected", 0, "Unselected", "Merge selected to other unselected vertices");
}
/************************ Vertex Path Operator *************************/
@@ -2093,23 +2128,49 @@ static int edbm_select_vertex_path_exec(bContext *C, wmOperator *op)
Object *ob = CTX_data_edit_object(C);
BMEditMesh *em = BMEdit_FromObject(ob);
BMOperator bmop;
+ BMIter iter;
+ BMVert *eve = NULL, *svert = NULL, *evert = NULL;
BMEditSelection *sv, *ev;
/* get the type from RNA */
int type = RNA_enum_get(op->ptr, "type");
+ /* first try to find vertices in edit selection */
sv = em->bm->selected.last;
- if (sv != NULL)
+ if (sv != NULL) {
ev = sv->prev;
- else return OPERATOR_CANCELLED;
- if (ev == NULL)
- return OPERATOR_CANCELLED;
- if ((sv->htype != BM_VERT) || (ev->htype != BM_VERT))
+ if (ev && (sv->htype == BM_VERT) && (ev->htype == BM_VERT)) {
+ svert = (BMVert *)sv->ele;
+ evert = (BMVert *)ev->ele;
+ }
+ }
+
+ /* if those are not found, because vertices where selected by e.g.
+ * border or circle select, find two selected vertices */
+ if (svert == NULL) {
+ BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) {
+ if (!BM_elem_flag_test(eve, BM_ELEM_SELECT) || BM_elem_flag_test(eve, BM_ELEM_HIDDEN))
+ continue;
+
+ if (svert == NULL) svert = eve;
+ else if (evert == NULL) evert = eve;
+ else {
+ /* more than two vertices are selected,
+ * show warning message and cancel operator */
+ svert = evert = NULL;
+ break;
+ }
+ }
+ }
+
+ if (svert == NULL || evert == NULL) {
+ BKE_report(op->reports, RPT_WARNING, "Path Selection requires that two vertices be selected");
return OPERATOR_CANCELLED;
+ }
/* initialize the bmop using EDBM api, which does various ui error reporting and other stuff */
- EDBM_op_init(em, &bmop, op, "shortest_path startv=%e endv=%e type=%i", sv->ele, ev->ele, type);
+ EDBM_op_init(em, &bmop, op, "shortest_path startv=%e endv=%e type=%i", svert, evert, type);
/* execute the operator */
BMO_op_exec(em->bm, &bmop);
@@ -2228,6 +2289,8 @@ static int edbm_blend_from_shape_exec(bContext *C, wmOperator *op)
{
Object *obedit = CTX_data_edit_object(C);
Mesh *me = obedit->data;
+ Key *key = me->key;
+ KeyBlock *kb = NULL;
BMEditMesh *em = me->edit_btmesh;
BMVert *eve;
BMIter iter;
@@ -2241,24 +2304,34 @@ static int edbm_blend_from_shape_exec(bContext *C, wmOperator *op)
totshape = CustomData_number_of_layers(&em->bm->vdata, CD_SHAPEKEY);
if (totshape == 0 || shape < 0 || shape >= totshape)
return OPERATOR_CANCELLED;
-
+
+ /* get shape key - needed for finding reference shape (for add mode only) */
+ if (key) {
+ kb = BLI_findlink(&key->block, shape);
+ }
+
+ /* perform blending on selected vertices*/
BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) {
if (!BM_elem_flag_test(eve, BM_ELEM_SELECT) || BM_elem_flag_test(eve, BM_ELEM_HIDDEN))
continue;
-
+
+ /* get coordinates of shapekey we're blending from */
sco = CustomData_bmesh_get_n(&em->bm->vdata, eve->head.data, CD_SHAPEKEY, shape);
copy_v3_v3(co, sco);
-
-
+
if (add) {
- mul_v3_fl(co, blend);
- add_v3_v3v3(eve->co, eve->co, co);
+ /* in add mode, we add relative shape key offset */
+ if (kb) {
+ float *rco = CustomData_bmesh_get_n(&em->bm->vdata, eve->head.data, CD_SHAPEKEY, kb->relative);
+ sub_v3_v3v3(co, co, rco);
+ }
+
+ madd_v3_v3fl(eve->co, co, blend);
}
else {
+ /* in blend mode, we interpolate to the shape key */
interp_v3_v3v3(eve->co, eve->co, co, blend);
}
-
- copy_v3_v3(sco, co);
}
EDBM_update_generic(C, em, TRUE);
@@ -2460,17 +2533,6 @@ void MESH_OT_solidify(wmOperatorType *ot)
RNA_def_property_ui_range(prop, -10, 10, 0.1, 4);
}
-#define TRAIL_POLYLINE 1 /* For future use, They don't do anything yet */
-#define TRAIL_FREEHAND 2
-#define TRAIL_MIXED 3 /* (1|2) */
-#define TRAIL_AUTO 4
-#define TRAIL_MIDPOINTS 8
-
-typedef struct CutCurve {
- float x;
- float y;
-} CutCurve;
-
/* ******************************************************************** */
/* Knife Subdivide Tool. Subdivides edges intersected by a mouse trail
* drawn by user.
@@ -2504,15 +2566,14 @@ static EnumPropertyItem knife_items[] = {
/* bm_edge_seg_isect() Determines if and where a mouse trail intersects an BMEdge */
-static float bm_edge_seg_isect(BMEdge *e, CutCurve *c, int len, char mode,
- struct GHash *gh, int *isected)
+static float bm_edge_seg_isect(const float sco_a[2], const float sco_b[2],
+ float (*mouse_path)[2], int len, char mode, int *isected)
{
#define MAXSLOPE 100000
float x11, y11, x12 = 0, y12 = 0, x2max, x2min, y2max;
float y2min, dist, lastdist = 0, xdiff2, xdiff1;
float m1, b1, m2, b2, x21, x22, y21, y22, xi;
float yi, x1min, x1max, y1max, y1min, perc = 0;
- float *scr;
float threshold = 0.0;
int i;
@@ -2520,13 +2581,11 @@ static float bm_edge_seg_isect(BMEdge *e, CutCurve *c, int len, char mode,
// XXX threshold = scene->toolsettings->select_thresh / 100;
/* Get screen coords of verts */
- scr = BLI_ghash_lookup(gh, e->v1);
- x21 = scr[0];
- y21 = scr[1];
+ x21 = sco_a[0];
+ y21 = sco_a[1];
- scr = BLI_ghash_lookup(gh, e->v2);
- x22 = scr[0];
- y22 = scr[1];
+ x22 = sco_b[0];
+ y22 = sco_b[1];
xdiff2 = (x22 - x21);
if (xdiff2) {
@@ -2548,11 +2607,11 @@ static float bm_edge_seg_isect(BMEdge *e, CutCurve *c, int len, char mode,
y11 = y12;
}
else {
- x11 = c[i].x;
- y11 = c[i].y;
+ x11 = mouse_path[i][0];
+ y11 = mouse_path[i][1];
}
- x12 = c[i].x;
- y12 = c[i].y;
+ x12 = mouse_path[i][0];
+ y12 = mouse_path[i][1];
/* test e->v1 */
if ((x11 == x21 && y11 == y21) || (x12 == x21 && y12 == y21)) {
@@ -2576,11 +2635,11 @@ static float bm_edge_seg_isect(BMEdge *e, CutCurve *c, int len, char mode,
y11 = y12;
}
else {
- x11 = c[i].x;
- y11 = c[i].y;
+ x11 = mouse_path[i][0];
+ y11 = mouse_path[i][1];
}
- x12 = c[i].x;
- y12 = c[i].y;
+ x12 = mouse_path[i][0];
+ y12 = mouse_path[i][1];
/* Perp. Distance from point to line */
if (m2 != MAXSLOPE) dist = (y12 - m2 * x12 - b2); /* /sqrt(m2 * m2 + 1); Only looking for */
@@ -2600,21 +2659,21 @@ static float bm_edge_seg_isect(BMEdge *e, CutCurve *c, int len, char mode,
m1 = MAXSLOPE;
b1 = x12;
}
- x2max = MAX2(x21, x22) + 0.001f; /* prevent missed edges */
- x2min = MIN2(x21, x22) - 0.001f; /* due to round off error */
- y2max = MAX2(y21, y22) + 0.001f;
- y2min = MIN2(y21, y22) - 0.001f;
+ x2max = maxf(x21, x22) + 0.001f; /* prevent missed edges */
+ x2min = minf(x21, x22) - 0.001f; /* due to round off error */
+ y2max = maxf(y21, y22) + 0.001f;
+ y2min = minf(y21, y22) - 0.001f;
/* Found an intersect, calc intersect point */
if (m1 == m2) { /* co-incident lines */
/* cut at 50% of overlap area */
- x1max = MAX2(x11, x12);
- x1min = MIN2(x11, x12);
- xi = (MIN2(x2max, x1max) + MAX2(x2min, x1min)) / 2.0f;
+ x1max = maxf(x11, x12);
+ x1min = minf(x11, x12);
+ xi = (minf(x2max, x1max) + maxf(x2min, x1min)) / 2.0f;
- y1max = MAX2(y11, y12);
- y1min = MIN2(y11, y12);
- yi = (MIN2(y2max, y1max) + MAX2(y2min, y1min)) / 2.0f;
+ y1max = maxf(y11, y12);
+ y1min = minf(y11, y12);
+ yi = (minf(y2max, y1max) + maxf(y2min, y1min)) / 2.0f;
}
else if (m2 == MAXSLOPE) {
xi = x22;
@@ -2658,9 +2717,9 @@ static float bm_edge_seg_isect(BMEdge *e, CutCurve *c, int len, char mode,
lastdist = dist;
}
return perc;
-}
+}
-#define MAX_CUTS 2048
+#define ELE_EDGE_CUT 1
static int edbm_knife_cut_exec(bContext *C, wmOperator *op)
{
@@ -2672,76 +2731,93 @@ static int edbm_knife_cut_exec(bContext *C, wmOperator *op)
BMIter iter;
BMEdge *be;
BMOperator bmop;
- CutCurve curve[MAX_CUTS];
- struct GHash *gh;
float isect = 0.0f;
- float *scr, co[4];
- int len = 0, isected;
+ int len = 0, isected, i;
short numcuts = 1, mode = RNA_int_get(op->ptr, "type");
+
+ /* allocd vars */
+ float (*screen_vert_coords)[2], (*sco)[2], (*mouse_path)[2];
/* edit-object needed for matrix, and ar->regiondata for projections to work */
if (ELEM3(NULL, obedit, ar, ar->regiondata))
return OPERATOR_CANCELLED;
if (bm->totvertsel < 2) {
- //error("No edges are selected to operate on");
+ BKE_report(op->reports, RPT_ERROR, "No edges are selected to operate on");
+ return OPERATOR_CANCELLED;
+ }
+
+ len = RNA_collection_length(op->ptr, "path");
+
+ if (len < 2) {
+ BKE_report(op->reports, RPT_ERROR, "Mouse path too short");
return OPERATOR_CANCELLED;
}
+ mouse_path = MEM_mallocN(len * sizeof(*mouse_path), __func__);
+
/* get the cut curve */
RNA_BEGIN(op->ptr, itemptr, "path")
{
- RNA_float_get_array(&itemptr, "loc", (float *)&curve[len]);
- len++;
- if (len >= MAX_CUTS) {
- break;
- }
+ RNA_float_get_array(&itemptr, "loc", (float *)&mouse_path[len]);
}
RNA_END;
-
- if (len < 2) {
- return OPERATOR_CANCELLED;
- }
+
+ /* for ED_view3d_project_float_object */
+ ED_view3d_init_mats_rv3d(obedit, ar->regiondata);
+
+ /* TODO, investigate using index lookup for screen_vert_coords() rather then a hash table */
/* the floating point coordinates of verts in screen space will be stored in a hash table according to the vertices pointer */
- gh = BLI_ghash_ptr_new("knife cut exec");
- for (bv = BM_iter_new(&iter, bm, BM_VERTS_OF_MESH, NULL); bv; bv = BM_iter_step(&iter)) {
- scr = MEM_mallocN(sizeof(float) * 2, "Vertex Screen Coordinates");
- copy_v3_v3(co, bv->co);
- co[3] = 1.0f;
- mul_m4_v4(obedit->obmat, co);
- project_float(ar, co, scr);
- BLI_ghash_insert(gh, bv, scr);
+ screen_vert_coords = sco = MEM_mallocN(bm->totvert * sizeof(float) * 2, __func__);
+
+ BM_ITER_MESH_INDEX (bv, &iter, bm, BM_VERTS_OF_MESH, i) {
+ if (ED_view3d_project_float_object(ar, bv->co, *sco, V3D_PROJ_TEST_NOP) != V3D_PROJ_RET_OK) {
+ copy_v2_fl(*sco, FLT_MAX); /* set error value */
+ }
+ BM_elem_index_set(bv, i); /* set_ok */
+ sco++;
+
}
+ bm->elem_index_dirty &= ~BM_VERT; /* clear dirty flag */
if (!EDBM_op_init(em, &bmop, op, "subdivide_edges")) {
+ MEM_freeN(mouse_path);
+ MEM_freeN(screen_vert_coords);
return OPERATOR_CANCELLED;
}
/* store percentage of edge cut for KNIFE_EXACT here.*/
for (be = BM_iter_new(&iter, bm, BM_EDGES_OF_MESH, NULL); be; be = BM_iter_step(&iter)) {
+ int is_cut = FALSE;
if (BM_elem_flag_test(be, BM_ELEM_SELECT)) {
- isect = bm_edge_seg_isect(be, curve, len, mode, gh, &isected);
-
- if (isect != 0.0f) {
- if (mode != KNIFE_MULTICUT && mode != KNIFE_MIDPOINT) {
- BMO_slot_map_float_insert(bm, &bmop,
- "edgepercents",
- be, isect);
-
+ const float *sco_a = screen_vert_coords[BM_elem_index_get(be->v1)];
+ const float *sco_b = screen_vert_coords[BM_elem_index_get(be->v2)];
+
+ /* check for error value (vert cant be projected) */
+ if ((sco_a[0] != FLT_MAX) && (sco_b[0] != FLT_MAX)) {
+ isect = bm_edge_seg_isect(sco_a, sco_b, mouse_path, len, mode, &isected);
+
+ if (isect != 0.0f) {
+ if (mode != KNIFE_MULTICUT && mode != KNIFE_MIDPOINT) {
+ BMO_slot_map_float_insert(bm, &bmop,
+ "edgepercents",
+ be, isect);
+ }
}
- BMO_elem_flag_enable(bm, be, 1);
- }
- else {
- BMO_elem_flag_disable(bm, be, 1);
}
}
- else {
- BMO_elem_flag_disable(bm, be, 1);
- }
+
+ BMO_elem_flag_set(bm, be, ELE_EDGE_CUT, is_cut);
}
-
- BMO_slot_buffer_from_enabled_flag(bm, &bmop, "edges", BM_EDGE, 1);
+
+
+ /* free all allocs */
+ MEM_freeN(screen_vert_coords);
+ MEM_freeN(mouse_path);
+
+
+ BMO_slot_buffer_from_enabled_flag(bm, &bmop, "edges", BM_EDGE, ELE_EDGE_CUT);
if (mode == KNIFE_MIDPOINT) numcuts = 1;
BMO_slot_int_set(&bmop, "numcuts", numcuts);
@@ -2756,14 +2832,14 @@ static int edbm_knife_cut_exec(bContext *C, wmOperator *op)
if (!EDBM_op_finish(em, &bmop, op, TRUE)) {
return OPERATOR_CANCELLED;
}
-
- BLI_ghash_free(gh, NULL, (GHashValFreeFP)MEM_freeN);
EDBM_update_generic(C, em, TRUE);
return OPERATOR_FINISHED;
}
+#undef ELE_EDGE_CUT
+
void MESH_OT_knife_cut(wmOperatorType *ot)
{
PropertyRNA *prop;
@@ -2789,120 +2865,148 @@ void MESH_OT_knife_cut(wmOperatorType *ot)
RNA_def_int(ot->srna, "cursor", BC_KNIFECURSOR, 0, INT_MAX, "Cursor", "", 0, INT_MAX);
}
-static int mesh_separate_selected(Main *bmain, Scene *scene, Base *editbase, wmOperator *wmop)
+static int mesh_separate_tagged(Main *bmain, Scene *scene, Base *base_old, BMesh *bm_old)
{
- Base *basenew;
- BMIter iter;
- BMVert *v;
- BMEdge *e;
- Object *obedit = editbase->object;
- Mesh *me = obedit->data;
- BMEditMesh *em = me->edit_btmesh;
+ Base *base_new;
+ Object *obedit = base_old->object;
BMesh *bm_new;
-
- if (!em)
- return FALSE;
-
+
bm_new = BM_mesh_create(&bm_mesh_allocsize_default);
- CustomData_copy(&em->bm->vdata, &bm_new->vdata, CD_MASK_BMESH, CD_CALLOC, 0);
- CustomData_copy(&em->bm->edata, &bm_new->edata, CD_MASK_BMESH, CD_CALLOC, 0);
- CustomData_copy(&em->bm->ldata, &bm_new->ldata, CD_MASK_BMESH, CD_CALLOC, 0);
- CustomData_copy(&em->bm->pdata, &bm_new->pdata, CD_MASK_BMESH, CD_CALLOC, 0);
+ CustomData_copy(&bm_old->vdata, &bm_new->vdata, CD_MASK_BMESH, CD_CALLOC, 0);
+ CustomData_copy(&bm_old->edata, &bm_new->edata, CD_MASK_BMESH, CD_CALLOC, 0);
+ CustomData_copy(&bm_old->ldata, &bm_new->ldata, CD_MASK_BMESH, CD_CALLOC, 0);
+ CustomData_copy(&bm_old->pdata, &bm_new->pdata, CD_MASK_BMESH, CD_CALLOC, 0);
CustomData_bmesh_init_pool(&bm_new->vdata, bm_mesh_allocsize_default.totvert, BM_VERT);
CustomData_bmesh_init_pool(&bm_new->edata, bm_mesh_allocsize_default.totedge, BM_EDGE);
CustomData_bmesh_init_pool(&bm_new->ldata, bm_mesh_allocsize_default.totloop, BM_LOOP);
CustomData_bmesh_init_pool(&bm_new->pdata, bm_mesh_allocsize_default.totface, BM_FACE);
-
- basenew = ED_object_add_duplicate(bmain, scene, editbase, USER_DUP_MESH); /* 0 = fully linked */
- assign_matarar(basenew->object, give_matarar(obedit), *give_totcolp(obedit)); /* new in 2.5 */
- ED_base_object_select(basenew, BA_DESELECT);
-
- EDBM_op_callf(em, wmop, "duplicate geom=%hvef dest=%p", BM_ELEM_SELECT, bm_new);
- EDBM_op_callf(em, wmop, "delete geom=%hvef context=%i", BM_ELEM_SELECT, DEL_FACES);
+ base_new = ED_object_add_duplicate(bmain, scene, base_old, USER_DUP_MESH);
+ /* DAG_scene_sort(bmain, scene); */ /* normally would call directly after but in this case delay recalc */
+ assign_matarar(base_new->object, give_matarar(obedit), *give_totcolp(obedit)); /* new in 2.5 */
- /* clean up any loose edges */
- BM_ITER_MESH (e, &iter, em->bm, BM_EDGES_OF_MESH) {
- if (BM_elem_flag_test(e, BM_ELEM_HIDDEN))
- continue;
+ ED_base_object_select(base_new, BA_SELECT);
- if (!BM_edge_is_wire(e)) {
- BM_edge_select_set(em->bm, e, FALSE);
- }
- }
- EDBM_op_callf(em, wmop, "delete geom=%hvef context=%i", BM_ELEM_SELECT, DEL_EDGES);
+ BMO_op_callf(bm_old, (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE),
+ "duplicate geom=%hvef dest=%p", BM_ELEM_TAG, bm_new);
+ BMO_op_callf(bm_old, (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE),
+ "delete geom=%hvef context=%i", BM_ELEM_TAG, DEL_FACES);
- /* clean up any loose verts */
- BM_ITER_MESH (v, &iter, em->bm, BM_VERTS_OF_MESH) {
- if (BM_elem_flag_test(v, BM_ELEM_HIDDEN))
- continue;
+ /* deselect loose data - this used to get deleted,
+ * we could de-select edges and verts only, but this turns out to be less complicated
+ * since de-selecting all skips selection flushing logic */
+ BM_mesh_elem_hflag_disable_all(bm_old, BM_VERT | BM_EDGE | BM_FACE, BM_ELEM_SELECT, FALSE);
- if (BM_vert_edge_count(v) != 0) {
- BM_vert_select_set(em->bm, v, FALSE);
- }
- }
+ BM_mesh_normals_update(bm_new, FALSE);
- EDBM_op_callf(em, wmop, "delete geom=%hvef context=%i", BM_ELEM_SELECT, DEL_VERTS);
+ BM_mesh_bm_to_me(bm_new, base_new->object->data, FALSE);
- BM_mesh_normals_update(bm_new, TRUE);
-
- BM_mesh_bm_to_me(bm_new, basenew->object->data, FALSE);
-
BM_mesh_free(bm_new);
- ((Mesh *)basenew->object->data)->edit_btmesh = NULL;
+ ((Mesh *)base_new->object->data)->edit_btmesh = NULL;
return TRUE;
}
-static int mesh_separate_material(Main *bmain, Scene *scene, Base *editbase, wmOperator *wmop)
+static int mesh_separate_selected(Main *bmain, Scene *scene, Base *base_old, BMesh *bm_old)
+{
+ /* we may have tags from previous operators */
+ BM_mesh_elem_hflag_disable_all(bm_old, BM_FACE | BM_EDGE | BM_VERT, BM_ELEM_TAG, FALSE);
+
+ /* sel -> tag */
+ BM_mesh_elem_hflag_enable_test(bm_old, BM_FACE | BM_EDGE | BM_VERT, BM_ELEM_TAG, TRUE, BM_ELEM_SELECT);
+
+ return mesh_separate_tagged(bmain, scene, base_old, bm_old);
+}
+
+/* flush a hflag to from verts to edges/faces */
+static void bm_mesh_hflag_flush_vert(BMesh *bm, const char hflag)
+{
+ BMEdge *e;
+ BMLoop *l_iter;
+ BMLoop *l_first;
+ BMFace *f;
+
+ BMIter eiter;
+ BMIter fiter;
+
+ int ok;
+
+ BM_ITER_MESH (e, &eiter, bm, BM_EDGES_OF_MESH) {
+ if (BM_elem_flag_test(e->v1, hflag) &&
+ BM_elem_flag_test(e->v2, hflag))
+ {
+ BM_elem_flag_enable(e, hflag);
+ }
+ else {
+ BM_elem_flag_disable(e, hflag);
+ }
+ }
+ BM_ITER_MESH (f, &fiter, bm, BM_FACES_OF_MESH) {
+ ok = TRUE;
+ l_iter = l_first = BM_FACE_FIRST_LOOP(f);
+ do {
+ if (!BM_elem_flag_test(l_iter->v, hflag)) {
+ ok = FALSE;
+ break;
+ }
+ } while ((l_iter = l_iter->next) != l_first);
+
+ BM_elem_flag_set(f, hflag, ok);
+ }
+}
+
+static int mesh_separate_material(Main *bmain, Scene *scene, Base *base_old, BMesh *bm_old)
{
BMFace *f_cmp, *f;
BMIter iter;
int result = FALSE;
- Object *obedit = editbase->object;
- BMEditMesh *em = BMEdit_FromObject(obedit);
- BMesh *bm = em->bm;
- EDBM_flag_disable_all(em, BM_ELEM_SELECT);
-
- while ((f_cmp = BM_iter_at_index(bm, BM_FACES_OF_MESH, NULL, 0))) {
+ while ((f_cmp = BM_iter_at_index(bm_old, BM_FACES_OF_MESH, NULL, 0))) {
const short mat_nr = f_cmp->mat_nr;
int tot = 0;
- BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) {
+ BM_mesh_elem_hflag_disable_all(bm_old, BM_VERT | BM_EDGE | BM_FACE, BM_ELEM_TAG, FALSE);
+
+ BM_ITER_MESH (f, &iter, bm_old, BM_FACES_OF_MESH) {
if (f->mat_nr == mat_nr) {
- BM_face_select_set(bm, f, TRUE);
+ BMLoop *l_iter;
+ BMLoop *l_first;
+
+ BM_elem_flag_enable(f, BM_ELEM_TAG);
+ l_iter = l_first = BM_FACE_FIRST_LOOP(f);
+ do {
+ BM_elem_flag_enable(l_iter->v, BM_ELEM_TAG);
+ BM_elem_flag_enable(l_iter->e, BM_ELEM_TAG);
+ } while ((l_iter = l_iter->next) != l_first);
+
tot++;
}
}
/* leave the current object with some materials */
- if (tot == bm->totface) {
+ if (tot == bm_old->totface) {
break;
}
/* Move selection into a separate object */
- result |= mesh_separate_selected(bmain, scene, editbase, wmop);
+ result |= mesh_separate_tagged(bmain, scene, base_old, bm_old);
}
return result;
}
-static int mesh_separate_loose(Main *bmain, Scene *scene, Base *editbase, wmOperator *wmop)
+static int mesh_separate_loose(Main *bmain, Scene *scene, Base *base_old, BMesh *bm_old)
{
int i;
BMEdge *e;
BMVert *v_seed;
BMWalker walker;
int result = FALSE;
- Object *obedit = editbase->object;
- BMEditMesh *em = BMEdit_FromObject(obedit);
- BMesh *bm = em->bm;
- int max_iter = bm->totvert;
+ int max_iter = bm_old->totvert;
/* Clear all selected vertices */
- EDBM_flag_disable_all(em, BM_ELEM_SELECT);
+ BM_mesh_elem_hflag_disable_all(bm_old, BM_VERT | BM_EDGE | BM_FACE, BM_ELEM_TAG, FALSE);
/* A "while (true)" loop should work here as each iteration should
* select and remove at least one vertex and when all vertices
@@ -2910,8 +3014,9 @@ static int mesh_separate_loose(Main *bmain, Scene *scene, Base *editbase, wmOper
* behavior by limiting iterations to the number of vertices in the
* original mesh.*/
for (i = 0; i < max_iter; i++) {
+ int tot = 0;
/* Get a seed vertex to start the walk */
- v_seed = BM_iter_at_index(bm, BM_VERTS_OF_MESH, NULL, 0);
+ v_seed = BM_iter_at_index(bm_old, BM_VERTS_OF_MESH, NULL, 0);
/* No vertices available, can't do anything */
if (v_seed == NULL) {
@@ -2919,33 +3024,33 @@ static int mesh_separate_loose(Main *bmain, Scene *scene, Base *editbase, wmOper
}
/* Select the seed explicitly, in case it has no edges */
- BM_vert_select_set(bm, v_seed, TRUE);
+ if (!BM_elem_flag_test(v_seed, BM_ELEM_TAG)) { BM_elem_flag_enable(v_seed, BM_ELEM_TAG); tot++; }
/* Walk from the single vertex, selecting everything connected
* to it */
- BMW_init(&walker, bm, BMW_SHELL,
+ BMW_init(&walker, bm_old, BMW_SHELL,
BMW_MASK_NOP, BMW_MASK_NOP, BMW_MASK_NOP,
- BMW_FLAG_NOP, /* BMESH_TODO - should be BMW_FLAG_TEST_HIDDEN ? */
+ BMW_FLAG_NOP,
BMW_NIL_LAY);
e = BMW_begin(&walker, v_seed);
for (; e; e = BMW_step(&walker)) {
- BM_vert_select_set(bm, e->v1, TRUE);
- BM_vert_select_set(bm, e->v2, TRUE);
+ if (!BM_elem_flag_test(e->v1, BM_ELEM_TAG)) { BM_elem_flag_enable(e->v1, BM_ELEM_TAG); tot++; }
+ if (!BM_elem_flag_test(e->v2, BM_ELEM_TAG)) { BM_elem_flag_enable(e->v2, BM_ELEM_TAG); tot++; }
}
BMW_end(&walker);
-
- /* Flush the selection to get edge/face selections matching
- * the vertex selection */
- EDBM_selectmode_flush_ex(em, SCE_SELECT_VERTEX);
- if (bm->totvert == bm->totvertsel) {
+ if (bm_old->totvert == tot) {
/* Every vertex selected, nothing to separate, work is done */
break;
}
+ /* Flush the selection to get edge/face selections matching
+ * the vertex selection */
+ bm_mesh_hflag_flush_vert(bm_old, BM_ELEM_TAG);
+
/* Move selection into a separate object */
- result |= mesh_separate_selected(bmain, scene, editbase, wmop);
+ result |= mesh_separate_tagged(bmain, scene, base_old, bm_old);
}
return result;
@@ -2955,19 +3060,65 @@ static int edbm_separate_exec(bContext *C, wmOperator *op)
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
- Base *base = CTX_data_active_base(C);
int retval = 0, type = RNA_enum_get(op->ptr, "type");
- if (type == 0)
- retval = mesh_separate_selected(bmain, scene, base, op);
- else if (type == 1)
- retval = mesh_separate_material(bmain, scene, base, op);
- else if (type == 2)
- retval = mesh_separate_loose(bmain, scene, base, op);
+ if (ED_operator_editmesh(C)) {
+ Base *base = CTX_data_active_base(C);
+ BMEditMesh *em = BMEdit_FromObject(base->object);
+
+ /* editmode separate */
+ if (type == 0) retval = mesh_separate_selected(bmain, scene, base, em->bm);
+ else if (type == 1) retval = mesh_separate_material(bmain, scene, base, em->bm);
+ else if (type == 2) retval = mesh_separate_loose(bmain, scene, base, em->bm);
+ else BLI_assert(0);
+
+ if (retval) {
+ EDBM_update_generic(C, em, TRUE);
+ }
+ }
+ else {
+ if (type == 0) {
+ BKE_report(op->reports, RPT_ERROR, "Selecton not supported in object mode");
+ return OPERATOR_CANCELLED;
+ }
+
+ /* object mode separate */
+ CTX_DATA_BEGIN(C, Base *, base_iter, selected_editable_bases)
+ {
+ Object *ob = base_iter->object;
+ if (ob->type == OB_MESH) {
+ Mesh *me = ob->data;
+ if (me->id.lib == NULL) {
+ BMesh *bm_old = NULL;
+ int retval_iter = 0;
+
+ bm_old = BM_mesh_create(&bm_mesh_allocsize_default);
+
+ BM_mesh_bm_from_me(bm_old, me, FALSE, 0);
+
+ if (type == 1) retval_iter = mesh_separate_material(bmain, scene, base_iter, bm_old);
+ else if (type == 2) retval_iter = mesh_separate_loose(bmain, scene, base_iter, bm_old);
+ else BLI_assert(0);
+
+ if (retval_iter) {
+ BM_mesh_bm_to_me(bm_old, me, FALSE);
+
+ DAG_id_tag_update(&me->id, OB_RECALC_DATA);
+ WM_event_add_notifier(C, NC_GEOM | ND_DATA, me);
+ }
+
+ BM_mesh_free(bm_old);
+
+ retval |= retval_iter;
+ }
+ }
+ }
+ CTX_DATA_END;
+ }
if (retval) {
- BMEditMesh *em = BMEdit_FromObject(base->object);
- EDBM_update_generic(C, em, TRUE);
+ /* delay depsgraph recalc until all objects are duplicated */
+ DAG_scene_sort(bmain, scene);
return OPERATOR_FINISHED;
}
@@ -2994,7 +3145,7 @@ void MESH_OT_separate(wmOperatorType *ot)
/* api callbacks */
ot->invoke = WM_menu_invoke;
ot->exec = edbm_separate_exec;
- ot->poll = ED_operator_editmesh;
+ ot->poll = ED_operator_scene_editable; /* object and editmode */
/* flags */
ot->flag = OPTYPE_UNDO;
@@ -3683,13 +3834,13 @@ static int bmelemsort_comp(const void *v1, const void *v2)
}
/* Reorders vertices/edges/faces using a given methods. Loops are not supported. */
-static void sort_bmelem_flag(bContext *C, const int types, const int flag, const int action,
+static void sort_bmelem_flag(Scene *scene, Object *ob,
+ View3D *v3d, RegionView3D *rv3d,
+ const int types, const int flag, const int action,
const int reverse, const unsigned int seed)
{
- Scene *scene = CTX_data_scene(C);
- Object *ob = CTX_data_edit_object(C);
- ViewContext vc;
- BMEditMesh *em;
+ BMEditMesh *em = BMEdit_FromObject(ob);
+
BMVert *ve;
BMEdge *ed;
BMFace *fa;
@@ -3707,9 +3858,6 @@ static void sort_bmelem_flag(bContext *C, const int types, const int flag, const
if (!(types && flag && action))
return;
- em_setup_viewcontext(C, &vc);
- em = vc.em;
-
if (types & BM_VERT)
totelem[0] = em->bm->totvert;
if (types & BM_EDGE)
@@ -3718,7 +3866,6 @@ static void sort_bmelem_flag(bContext *C, const int types, const int flag, const
totelem[2] = em->bm->totface;
if (ELEM(action, SRT_VIEW_ZAXIS, SRT_VIEW_XAXIS)) {
- RegionView3D *rv3d = ED_view3d_context_rv3d(C);
float mat[4][4];
float fact = reverse ? -1.0 : 1.0;
int coidx = (action == SRT_VIEW_ZAXIS) ? 2 : 0;
@@ -3786,7 +3933,6 @@ static void sort_bmelem_flag(bContext *C, const int types, const int flag, const
}
else if (action == SRT_CURSOR_DISTANCE) {
- View3D *v3d = CTX_wm_view3d(C);
float cur[3];
float mat[4][4];
float fact = reverse ? -1.0 : 1.0;
@@ -4116,18 +4262,32 @@ static void sort_bmelem_flag(bContext *C, const int types, const int flag, const
static int edbm_sort_elements_exec(bContext *C, wmOperator *op)
{
+ Scene *scene = CTX_data_scene(C);
+ Object *ob = CTX_data_edit_object(C);
+
+ /* may be NULL */
+ View3D *v3d = CTX_wm_view3d(C);
+ RegionView3D *rv3d = ED_view3d_context_rv3d(C);
+
int action = RNA_enum_get(op->ptr, "type");
PropertyRNA *prop_elem_types = RNA_struct_find_property(op->ptr, "elements");
- int elem_types = 0;
int reverse = RNA_boolean_get(op->ptr, "reverse");
unsigned int seed = RNA_int_get(op->ptr, "seed");
+ int elem_types = 0;
+
+ if (ELEM(action, SRT_VIEW_ZAXIS, SRT_VIEW_XAXIS)) {
+ if (rv3d == NULL) {
+ BKE_report(op->reports, RPT_ERROR, "View not found, can't sort by view axis");
+ return OPERATOR_CANCELLED;
+ }
+ }
/* If no elem_types set, use current selection mode to set it! */
if (RNA_property_is_set(op->ptr, prop_elem_types)) {
elem_types = RNA_property_enum_get(op->ptr, prop_elem_types);
}
else {
- BMEditMesh *em = BMEdit_FromObject(CTX_data_edit_object(C));
+ BMEditMesh *em = BMEdit_FromObject(ob);
if (em->selectmode & SCE_SELECT_VERTEX)
elem_types |= BM_VERT;
if (em->selectmode & SCE_SELECT_EDGE)
@@ -4137,7 +4297,8 @@ static int edbm_sort_elements_exec(bContext *C, wmOperator *op)
RNA_enum_set(op->ptr, "elements", elem_types);
}
- sort_bmelem_flag(C, elem_types, BM_ELEM_SELECT, action, reverse, seed);
+ sort_bmelem_flag(scene, ob, v3d, rv3d,
+ elem_types, BM_ELEM_SELECT, action, reverse, seed);
return OPERATOR_FINISHED;
}
@@ -4305,23 +4466,31 @@ typedef struct {
int mcenter[2];
float initial_length;
int is_modal;
+ NumInput num_input;
+ float shift_factor; /* The current factor when shift is pressed. Negative when shift not active. */
} BevelData;
#define HEADER_LENGTH 180
static void edbm_bevel_update_header(wmOperator *op, bContext *C)
{
- static char str[] = "Confirm: Enter/LClick, Cancel: (Esc/RMB), factor: %f, Use Dist (D): %s: Use Even (E): %s";
+ static char str[] = "Confirm: Enter/LClick, Cancel: (Esc/RMB), factor: %s, Use Dist (D): %s: Use Even (E): %s";
char msg[HEADER_LENGTH];
ScrArea *sa = CTX_wm_area(C);
+ BevelData *opdata = op->customdata;
if (sa) {
+ char factor_str[NUM_STR_REP_LEN];
+ if (hasNumInput(&opdata->num_input))
+ outputNumInput(&opdata->num_input, factor_str);
+ else
+ BLI_snprintf(factor_str, NUM_STR_REP_LEN, "%f", RNA_float_get(op->ptr, "percent"));
BLI_snprintf(msg, HEADER_LENGTH, str,
- RNA_float_get(op->ptr, "percent"),
+ factor_str,
RNA_boolean_get(op->ptr, "use_dist") ? "On" : "Off",
RNA_boolean_get(op->ptr, "use_even") ? "On" : "Off"
- );
+ );
ED_area_headerprint(sa, msg);
}
@@ -4384,7 +4553,11 @@ static int edbm_bevel_init(bContext *C, wmOperator *op, int is_modal)
opdata->li = li;
opdata->weights = NULL;
opdata->is_modal = is_modal;
-
+ opdata->shift_factor = -1.0f;
+
+ initNumInput(&opdata->num_input);
+ opdata->num_input.flag = NUM_NO_NEGATIVE;
+
/* avoid the cost of allocating a bm copy */
if (is_modal)
opdata->mesh_backup = EDBM_redo_state_store(em);
@@ -4523,7 +4696,21 @@ static int edbm_bevel_invoke(bContext *C, wmOperator *op, wmEvent *event)
static int edbm_bevel_modal(bContext *C, wmOperator *op, wmEvent *event)
{
BevelData *opdata = op->customdata;
-// Scene *scene = CTX_data_scene(C);
+
+ if (event->val == KM_PRESS) {
+ /* Try to handle numeric inputs... */
+ float factor;
+
+ if (handleNumInput(&opdata->num_input, event)) {
+ applyNumInput(&opdata->num_input, &factor);
+ CLAMP(factor, 0.0f, 1.0f);
+ RNA_float_set(op->ptr, "percent", factor);
+
+ edbm_bevel_calc(C, op);
+ edbm_bevel_update_header(op, C);
+ return OPERATOR_RUNNING_MODAL;
+ }
+ }
switch (event->type) {
case ESCKEY:
@@ -4532,22 +4719,32 @@ static int edbm_bevel_modal(bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_CANCELLED;
case MOUSEMOVE:
- {
- float factor;
- float mdiff[2];
+ if (!hasNumInput(&opdata->num_input)) {
+ float factor;
+ float mdiff[2];
- mdiff[0] = opdata->mcenter[0] - event->mval[0];
- mdiff[1] = opdata->mcenter[1] - event->mval[1];
+ mdiff[0] = opdata->mcenter[0] - event->mval[0];
+ mdiff[1] = opdata->mcenter[1] - event->mval[1];
- factor = len_v2(mdiff) / opdata->initial_length;
- factor = MAX2(1.0f - factor, 0.0f);
+ factor = opdata->initial_length / -len_v2(mdiff) + 1.0f;
- RNA_float_set(op->ptr, "percent", factor);
+ /* Fake shift-transform... */
+ if (event->shift) {
+ if (opdata->shift_factor < 0.0f)
+ opdata->shift_factor = RNA_float_get(op->ptr, "percent");
+ factor = (factor - opdata->shift_factor) * 0.1f + opdata->shift_factor;
+ }
+ else if (opdata->shift_factor >= 0.0f)
+ opdata->shift_factor = -1.0f;
- edbm_bevel_calc(C, op);
- edbm_bevel_update_header(op, C);
- return OPERATOR_RUNNING_MODAL;
- }
+ CLAMP(factor, 0.0f, 1.0f);
+
+ RNA_float_set(op->ptr, "percent", factor);
+
+ edbm_bevel_calc(C, op);
+ edbm_bevel_update_header(op, C);
+ }
+ break;
case LEFTMOUSE:
case PADENTER:
@@ -4564,7 +4761,7 @@ static int edbm_bevel_modal(bContext *C, wmOperator *op, wmEvent *event)
edbm_bevel_calc(C, op);
edbm_bevel_update_header(op, C);
}
- return OPERATOR_RUNNING_MODAL;
+ break;
case DKEY:
if (event->val == KM_PRESS) {
@@ -4574,7 +4771,7 @@ static int edbm_bevel_modal(bContext *C, wmOperator *op, wmEvent *event)
edbm_bevel_calc(C, op);
edbm_bevel_update_header(op, C);
}
- return OPERATOR_RUNNING_MODAL;
+ break;
}
return OPERATOR_RUNNING_MODAL;
@@ -4595,11 +4792,11 @@ void MESH_OT_bevel(wmOperatorType *ot)
ot->poll = ED_operator_editmesh;
/* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_GRAB_POINTER | OPTYPE_BLOCKING;
RNA_def_float(ot->srna, "percent", 0.0f, -FLT_MAX, FLT_MAX, "Percentage", "", 0.0f, 1.0f);
-// XXX, disabled for 2.63 release, needs to work much better without overlap before we can give to users.
-// RNA_def_int(ot->srna, "recursion", 1, 1, 50, "Recursion Level", "Recursion Level", 1, 8);
+ /* XXX, disabled for 2.63 release, needs to work much better without overlap before we can give to users. */
+/* RNA_def_int(ot->srna, "recursion", 1, 1, 50, "Recursion Level", "Recursion Level", 1, 8); */
RNA_def_boolean(ot->srna, "use_even", FALSE, "Even", "Calculate evenly spaced bevel");
RNA_def_boolean(ot->srna, "use_dist", FALSE, "Distance", "Interpret the percent in blender units");
@@ -4608,15 +4805,32 @@ void MESH_OT_bevel(wmOperatorType *ot)
static int edbm_bridge_edge_loops_exec(bContext *C, wmOperator *op)
{
+ BMOperator bmop;
Object *obedit = CTX_data_edit_object(C);
BMEditMesh *em = BMEdit_FromObject(obedit);
+ const int use_merge = RNA_boolean_get(op->ptr, "use_merge");
+ const float merge_factor = RNA_float_get(op->ptr, "merge_factor");
- if (!EDBM_op_callf(em, op, "bridge_loops edges=%he", BM_ELEM_SELECT))
+ EDBM_op_init(em, &bmop, op,
+ "bridge_loops edges=%he use_merge=%b merge_factor=%f",
+ BM_ELEM_SELECT, use_merge, merge_factor);
+
+ BMO_op_exec(em->bm, &bmop);
+
+ /* when merge is used the edges are joined and remain selected */
+ if (use_merge == FALSE) {
+ EDBM_flag_disable_all(em, BM_ELEM_SELECT);
+ BMO_slot_buffer_hflag_enable(em->bm, &bmop, "faceout", BM_FACE, BM_ELEM_SELECT, TRUE);
+ }
+
+ if (!EDBM_op_finish(em, &bmop, op, TRUE)) {
return OPERATOR_CANCELLED;
-
- EDBM_update_generic(C, em, TRUE);
- return OPERATOR_FINISHED;
+ }
+ else {
+ EDBM_update_generic(C, em, TRUE);
+ return OPERATOR_FINISHED;
+ }
}
void MESH_OT_bridge_edge_loops(wmOperatorType *ot)
@@ -4634,6 +4848,9 @@ void MESH_OT_bridge_edge_loops(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
RNA_def_boolean(ot->srna, "inside", 0, "Inside", "");
+
+ RNA_def_boolean(ot->srna, "use_merge", FALSE, "Merge", "Merge rather than creating faces");
+ RNA_def_float(ot->srna, "merge_factor", 0.5f, 0.0f, 1.0f, "Merge Factor", "", 0.0f, 1.0f);
}
typedef struct {
@@ -4643,26 +4860,42 @@ typedef struct {
int modify_depth;
int is_modal;
float initial_length;
+ int shift;
+ float shift_amount;
BMBackup backup;
BMEditMesh *em;
+ NumInput num_input;
} InsetData;
static void edbm_inset_update_header(wmOperator *op, bContext *C)
{
InsetData *opdata = op->customdata;
- static char str[] = "Confirm: Enter/LClick, Cancel: (Esc/RClick), thickness: %f, depth (Ctrl to tweak): %f (%s), Outset (O): (%s)";
+ static const char str[] = "Confirm: Enter/LClick, "
+ "Cancel: (Esc/RClick), "
+ "thickness: %s, "
+ "depth (Ctrl to tweak): %s (%s), "
+ "Outset (O): (%s), "
+ "Boundary (B): (%s)";
char msg[HEADER_LENGTH];
ScrArea *sa = CTX_wm_area(C);
if (sa) {
+ char flts_str[NUM_STR_REP_LEN * 2];
+ if (hasNumInput(&opdata->num_input))
+ outputNumInput(&opdata->num_input, flts_str);
+ else {
+ BLI_snprintf(flts_str, NUM_STR_REP_LEN, "%f", RNA_float_get(op->ptr, "thickness"));
+ BLI_snprintf(flts_str + NUM_STR_REP_LEN, NUM_STR_REP_LEN, "%f", RNA_float_get(op->ptr, "depth"));
+ }
BLI_snprintf(msg, HEADER_LENGTH, str,
- RNA_float_get(op->ptr, "thickness"),
- RNA_float_get(op->ptr, "depth"),
+ flts_str,
+ flts_str + NUM_STR_REP_LEN,
opdata->modify_depth ? "On" : "Off",
- RNA_boolean_get(op->ptr, "use_outset") ? "On" : "Off"
- );
+ RNA_boolean_get(op->ptr, "use_outset") ? "On" : "Off",
+ RNA_boolean_get(op->ptr, "use_boundary") ? "On" : "Off"
+ );
ED_area_headerprint(sa, msg);
}
@@ -4680,9 +4913,14 @@ static int edbm_inset_init(bContext *C, wmOperator *op, int is_modal)
opdata->old_thickness = 0.01;
opdata->old_depth = 0.0;
opdata->modify_depth = FALSE;
+ opdata->shift = FALSE;
+ opdata->shift_amount = 0.0f;
opdata->is_modal = is_modal;
opdata->em = em;
+ initNumInput(&opdata->num_input);
+ opdata->num_input.idx_max = 1; /* Two elements. */
+
if (is_modal)
opdata->backup = EDBM_redo_state_store(em);
@@ -4814,9 +5052,28 @@ static int edbm_inset_invoke(bContext *C, wmOperator *op, wmEvent *event)
static int edbm_inset_modal(bContext *C, wmOperator *op, wmEvent *event)
{
- InsetData *opdata;
+ InsetData *opdata = op->customdata;
- opdata = op->customdata;
+ if (event->val == KM_PRESS) {
+ /* Try to handle numeric inputs... */
+ float amounts[2];
+
+ if (handleNumInput(&opdata->num_input, event)) {
+ applyNumInput(&opdata->num_input, amounts);
+ amounts[0] = maxf(amounts[0], 0.0f);
+ RNA_float_set(op->ptr, "thickness", amounts[0]);
+ RNA_float_set(op->ptr, "depth", amounts[1]);
+
+ if (edbm_inset_calc(C, op)) {
+ edbm_inset_update_header(op, C);
+ return OPERATOR_RUNNING_MODAL;
+ }
+ else {
+ edbm_inset_cancel(C, op);
+ return OPERATOR_CANCELLED;
+ }
+ }
+ }
switch (event->type) {
case ESCKEY:
@@ -4825,33 +5082,37 @@ static int edbm_inset_modal(bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_CANCELLED;
case MOUSEMOVE:
- {
- float mdiff[2];
- float amount;
+ if (!hasNumInput(&opdata->num_input)) {
+ float mdiff[2];
+ float amount;
- mdiff[0] = opdata->mcenter[0] - event->mval[0];
- mdiff[1] = opdata->mcenter[1] - event->mval[1];
+ mdiff[0] = opdata->mcenter[0] - event->mval[0];
+ mdiff[1] = opdata->mcenter[1] - event->mval[1];
- if (opdata->modify_depth) {
- amount = opdata->old_depth + (len_v2(mdiff) - opdata->initial_length) / opdata->initial_length;
- RNA_float_set(op->ptr, "depth", amount);
- }
- else {
- amount = opdata->old_thickness - (len_v2(mdiff) - opdata->initial_length) / opdata->initial_length;
- amount = MAX2(amount, 0.0f);
+ if (opdata->modify_depth)
+ amount = opdata->old_depth + opdata->initial_length / len_v2(mdiff) - 1.0f;
+ else
+ amount = opdata->old_thickness - opdata->initial_length / len_v2(mdiff) + 1.0f;
- RNA_float_set(op->ptr, "thickness", amount);
- }
+ /* Fake shift-transform... */
+ if (opdata->shift)
+ amount = (amount - opdata->shift_amount) * 0.1f + opdata->shift_amount;
- if (edbm_inset_calc(C, op)) {
- edbm_inset_update_header(op, C);
- return OPERATOR_RUNNING_MODAL;
- }
- else {
- edbm_inset_cancel(C, op);
- return OPERATOR_CANCELLED;
+ if (opdata->modify_depth)
+ RNA_float_set(op->ptr, "depth", amount);
+ else {
+ amount = maxf(amount, 0.0f);
+ RNA_float_set(op->ptr, "thickness", amount);
+ }
+
+ if (edbm_inset_calc(C, op))
+ edbm_inset_update_header(op, C);
+ else {
+ edbm_inset_cancel(C, op);
+ return OPERATOR_CANCELLED;
+ }
}
- }
+ break;
case LEFTMOUSE:
case PADENTER:
@@ -4860,6 +5121,20 @@ static int edbm_inset_modal(bContext *C, wmOperator *op, wmEvent *event)
edbm_inset_exit(C, op);
return OPERATOR_FINISHED;
+ case LEFTSHIFTKEY:
+ case RIGHTSHIFTKEY:
+ if (event->val == KM_PRESS) {
+ if (opdata->modify_depth)
+ opdata->shift_amount = RNA_float_get(op->ptr, "depth");
+ else
+ opdata->shift_amount = RNA_float_get(op->ptr, "thickness");
+ opdata->shift = TRUE;
+ }
+ else {
+ opdata->shift_amount = 0.0f;
+ opdata->shift = FALSE;
+ }
+ break;
case LEFTCTRLKEY:
case RIGHTCTRLKEY:
@@ -4871,16 +5146,20 @@ static int edbm_inset_modal(bContext *C, wmOperator *op, wmEvent *event)
if (event->val == KM_PRESS) {
opdata->old_thickness = RNA_float_get(op->ptr, "thickness");
+ if (opdata->shift)
+ opdata->shift_amount = opdata->old_thickness;
opdata->modify_depth = TRUE;
}
else {
opdata->old_depth = RNA_float_get(op->ptr, "depth");
+ if (opdata->shift)
+ opdata->shift_amount = opdata->old_depth;
opdata->modify_depth = FALSE;
}
opdata->initial_length = len_v2(mlen);
edbm_inset_update_header(op, C);
- return OPERATOR_RUNNING_MODAL;
+ break;
}
case OKEY:
@@ -4889,13 +5168,26 @@ static int edbm_inset_modal(bContext *C, wmOperator *op, wmEvent *event)
RNA_boolean_set(op->ptr, "use_outset", !use_outset);
if (edbm_inset_calc(C, op)) {
edbm_inset_update_header(op, C);
- return OPERATOR_RUNNING_MODAL;
}
else {
edbm_inset_cancel(C, op);
return OPERATOR_CANCELLED;
}
}
+ break;
+ case BKEY:
+ if (event->val == KM_PRESS) {
+ int use_boundary = RNA_boolean_get(op->ptr, "use_boundary");
+ RNA_boolean_set(op->ptr, "use_boundary", !use_boundary);
+ if (edbm_inset_calc(C, op)) {
+ edbm_inset_update_header(op, C);
+ }
+ else {
+ edbm_inset_cancel(C, op);
+ return OPERATOR_CANCELLED;
+ }
+ }
+ break;
}
return OPERATOR_RUNNING_MODAL;
@@ -4919,7 +5211,7 @@ void MESH_OT_inset(wmOperatorType *ot)
ot->poll = ED_operator_editmesh;
/* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_GRAB_POINTER | OPTYPE_BLOCKING;
/* properties */
RNA_def_boolean(ot->srna, "use_boundary", TRUE, "Boundary", "Inset face boundaries");
@@ -4960,7 +5252,9 @@ static int edbm_wireframe_exec(bContext *C, wmOperator *op)
BM_mesh_elem_hflag_disable_all(em->bm, BM_FACE, BM_ELEM_TAG, FALSE);
BMO_slot_buffer_hflag_enable(em->bm, &bmop, "faces", BM_FACE, BM_ELEM_TAG, FALSE);
- BMO_op_callf(em->bm, "delete geom=%hvef context=%i", BM_ELEM_TAG, DEL_FACES);
+ BMO_op_callf(em->bm, BMO_FLAG_DEFAULTS,
+ "delete geom=%hvef context=%i",
+ BM_ELEM_TAG, DEL_FACES);
}
BM_mesh_elem_hflag_disable_all(em->bm, BM_VERT | BM_EDGE | BM_FACE, BM_ELEM_SELECT, FALSE);
@@ -5010,7 +5304,7 @@ static int edbm_convex_hull_exec(bContext *C, wmOperator *op)
Object *obedit = CTX_data_edit_object(C);
BMEditMesh *em = BMEdit_FromObject(obedit);
BMOperator bmop;
-
+
EDBM_op_init(em, &bmop, op, "convex_hull input=%hvef "
"use_existing_faces=%b",
BM_ELEM_SELECT,
@@ -5074,7 +5368,7 @@ void MESH_OT_convex_hull(wmOperatorType *ot)
/* api callbacks */
ot->exec = edbm_convex_hull_exec;
- ot->poll = EM_view3d_poll;
+ ot->poll = ED_operator_editmesh;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
diff --git a/source/blender/editors/mesh/editmesh_utils.c b/source/blender/editors/mesh/editmesh_utils.c
index 4952dd3f09a..537d463dfbc 100644
--- a/source/blender/editors/mesh/editmesh_utils.c
+++ b/source/blender/editors/mesh/editmesh_utils.c
@@ -48,6 +48,8 @@
#include "BKE_report.h"
#include "BKE_tessmesh.h"
+#include "BKE_object.h" /* XXX. only for EDBM_mesh_ensure_valid_dm_hack() which will be removed */
+
#include "WM_api.h"
#include "WM_types.h"
@@ -102,7 +104,17 @@ void EDBM_redo_state_free(BMBackup *backup, BMEditMesh *em, int recalctess)
BMEdit_RecalcTessellation(em);
}
-
+/* hack to workaround multiple operators being called within the same event loop without an update
+ * see: [#31811] */
+void EDBM_mesh_ensure_valid_dm_hack(Scene *scene, BMEditMesh *em)
+{
+ if ((((ID *)em->ob->data)->flag & LIB_ID_RECALC) ||
+ (em->ob->recalc & OB_RECALC_DATA))
+ {
+ em->ob->recalc |= OB_RECALC_DATA; /* since we may not have done selection flushing */
+ BKE_object_handle_update(scene, em->ob);
+ }
+}
void EDBM_mesh_normals_update(BMEditMesh *em)
{
@@ -166,7 +178,7 @@ int EDBM_op_init(BMEditMesh *em, BMOperator *bmop, wmOperator *op, const char *f
va_start(list, fmt);
- if (!BMO_op_vinitf(bm, bmop, fmt, list)) {
+ if (!BMO_op_vinitf(bm, bmop, BMO_FLAG_DEFAULTS, fmt, list)) {
BKE_reportf(op->reports, RPT_ERROR, "Parse error in %s", __func__);
va_end(list);
return 0;
@@ -235,7 +247,7 @@ int EDBM_op_callf(BMEditMesh *em, wmOperator *op, const char *fmt, ...)
va_start(list, fmt);
- if (!BMO_op_vinitf(bm, &bmop, fmt, list)) {
+ if (!BMO_op_vinitf(bm, &bmop, BMO_FLAG_DEFAULTS, fmt, list)) {
BKE_reportf(op->reports, RPT_ERROR, "Parse error in %s", __func__);
va_end(list);
return 0;
@@ -259,7 +271,7 @@ int EDBM_op_call_and_selectf(BMEditMesh *em, wmOperator *op, const char *selects
va_start(list, fmt);
- if (!BMO_op_vinitf(bm, &bmop, fmt, list)) {
+ if (!BMO_op_vinitf(bm, &bmop, BMO_FLAG_DEFAULTS, fmt, list)) {
BKE_reportf(op->reports, RPT_ERROR, "Parse error in %s", __func__);
va_end(list);
return 0;
@@ -287,7 +299,7 @@ int EDBM_op_call_silentf(BMEditMesh *em, const char *fmt, ...)
va_start(list, fmt);
- if (!BMO_op_vinitf(bm, &bmop, fmt, list)) {
+ if (!BMO_op_vinitf(bm, &bmop, BMO_FLAG_DEFAULTS, fmt, list)) {
va_end(list);
return 0;
}
@@ -345,7 +357,6 @@ void EDBM_mesh_make(ToolSettings *ts, Scene *UNUSED(scene), Object *ob)
me->edit_btmesh->selectmode = me->edit_btmesh->bm->selectmode = ts->selectmode;
me->edit_btmesh->mat_nr = (ob->actcol > 0) ? ob->actcol - 1 : 0;
- me->edit_btmesh->me = me;
me->edit_btmesh->ob = ob;
}
@@ -452,11 +463,9 @@ BMFace *EDBM_face_at_index(BMEditMesh *tm, int index)
return (tm->face_index && index < tm->bm->totface && index >= 0) ? tm->face_index[index] : NULL;
}
-void EDBM_selectmode_flush_ex(BMEditMesh *em, int selectmode)
+void EDBM_selectmode_flush_ex(BMEditMesh *em, const short selectmode)
{
- em->bm->selectmode = selectmode;
- BM_mesh_select_mode_flush(em->bm);
- em->bm->selectmode = em->selectmode;
+ BM_mesh_select_mode_flush_ex(em->bm, selectmode);
}
void EDBM_selectmode_flush(BMEditMesh *em)
@@ -484,7 +493,7 @@ void EDBM_select_more(BMEditMesh *em)
BMOperator bmop;
int use_faces = em->selectmode == SCE_SELECT_FACE;
- BMO_op_initf(em->bm, &bmop,
+ BMO_op_initf(em->bm, &bmop, BMO_FLAG_DEFAULTS,
"region_extend geom=%hvef constrict=%b use_faces=%b",
BM_ELEM_SELECT, FALSE, use_faces);
BMO_op_exec(em->bm, &bmop);
@@ -500,7 +509,7 @@ void EDBM_select_less(BMEditMesh *em)
BMOperator bmop;
int use_faces = em->selectmode == SCE_SELECT_FACE;
- BMO_op_initf(em->bm, &bmop,
+ BMO_op_initf(em->bm, &bmop, BMO_FLAG_DEFAULTS,
"region_extend geom=%hvef constrict=%b use_faces=%b",
BM_ELEM_SELECT, TRUE, use_faces);
BMO_op_exec(em->bm, &bmop);
@@ -538,6 +547,16 @@ static void *getEditMesh(bContext *C)
typedef struct UndoMesh {
Mesh me;
int selectmode;
+
+ /** \note
+ * this isn't a prefect solution, if you edit keys and change shapes this works well (fixing [#32442]),
+ * but editing shape keys, going into object mode, removing or changing their order,
+ * then go back into editmode and undo will give issues - where the old index will be out of sync
+ * with the new object index.
+ *
+ * There are a few ways this could be made to work but for now its a known limitation with mixing
+ * object and editmode operations - Campbell */
+ int shapenr;
} UndoMesh;
/* undo simply makes copies of a bmesh */
@@ -549,13 +568,14 @@ static void *editbtMesh_to_undoMesh(void *emv, void *obdata)
UndoMesh *um = MEM_callocN(sizeof(UndoMesh), "undo Mesh");
/* make sure shape keys work */
- um->me.key = obme->key ? copy_key_nolib(obme->key) : NULL;
+ um->me.key = obme->key ? BKE_key_copy_nolib(obme->key) : NULL;
/* BM_mesh_validate(em->bm); */ /* for troubleshooting */
BM_mesh_bm_to_me(em->bm, &um->me, FALSE);
um->selectmode = em->selectmode;
+ um->shapenr = em->bm->shapenr;
return um;
}
@@ -567,7 +587,7 @@ static void undoMesh_to_editbtMesh(void *umv, void *em_v, void *UNUSED(obdata))
UndoMesh *um = umv;
BMesh *bm;
- ob->shapenr = em->bm->shapenr;
+ ob->shapenr = em->bm->shapenr = um->shapenr;
EDBM_mesh_free(em);
@@ -582,6 +602,7 @@ static void undoMesh_to_editbtMesh(void *umv, void *em_v, void *UNUSED(obdata))
*em = *em_tmp;
em->selectmode = um->selectmode;
+ bm->selectmode = um->selectmode;
em->ob = ob;
MEM_freeN(em_tmp);
@@ -993,15 +1014,15 @@ void EDBM_uv_element_map_free(UvElementMap *element_map)
/* last_sel, use em->act_face otherwise get the last selected face in the editselections
* at the moment, last_sel is mainly useful for making sure the space image dosnt flicker */
-MTexPoly *EDBM_mtexpoly_active_get(BMEditMesh *em, BMFace **r_act_efa, int sloppy)
+MTexPoly *EDBM_mtexpoly_active_get(BMEditMesh *em, BMFace **r_act_efa, int sloppy, int selected)
{
BMFace *efa = NULL;
if (!EDBM_mtexpoly_check(em))
return NULL;
- efa = BM_active_face_get(em->bm, sloppy);
-
+ efa = BM_active_face_get(em->bm, sloppy, selected);
+
if (efa) {
if (r_act_efa) *r_act_efa = efa;
return CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
@@ -1057,14 +1078,14 @@ static BMVert *cache_mirr_intptr_as_bmvert(intptr_t *index_lookup, int index)
#define BM_CD_LAYER_ID "__mirror_index"
void EDBM_verts_mirror_cache_begin(BMEditMesh *em, const short use_select)
{
- Mesh *me = em->me;
+ Mesh *me = (Mesh *)em->ob->data;
BMesh *bm = em->bm;
BMIter iter;
BMVert *v;
int li, topo = 0;
/* one or the other is used depending if topo is enabled */
- BMBVHTree *tree = NULL;
+ struct BMBVHTree *tree = NULL;
MirrTopoStore_t mesh_topo_store = {NULL, -1, -1, -1};
if (me && (me->editflag & ME_EDIT_MIRROR_TOPO)) {
diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c
index 19ca30b9c45..735492cb553 100644
--- a/source/blender/editors/mesh/mesh_data.c
+++ b/source/blender/editors/mesh/mesh_data.c
@@ -43,10 +43,12 @@
#include "DNA_view3d_types.h"
#include "BLI_utildefines.h"
+#include "BLI_path_util.h"
#include "BLI_array.h"
#include "BLI_math.h"
#include "BLI_edgehash.h"
-#include "BLI_utildefines.h"
+#include "BLI_linklist.h"
+#include "BLI_listbase.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
@@ -74,6 +76,64 @@
#include "mesh_intern.h"
+static CustomData *mesh_customdata_get_type(Mesh *me, const char htype, int *r_tot)
+{
+ CustomData *data;
+ BMesh *bm = (me->edit_btmesh) ? me->edit_btmesh->bm : NULL;
+ int tot;
+
+ /* this */
+ switch (htype) {
+ case BM_VERT:
+ if (bm) {
+ data = &bm->vdata;
+ tot = bm->totvert;
+ }
+ else {
+ data = &me->vdata;
+ tot = me->totvert;
+ }
+ break;
+ case BM_EDGE:
+ if (bm) {
+ data = &bm->edata;
+ tot = bm->totedge;
+ }
+ else {
+ data = &me->edata;
+ tot = me->totedge;
+ }
+ break;
+ case BM_LOOP:
+ if (bm) {
+ data = &bm->ldata;
+ tot = bm->totloop;
+ }
+ else {
+ data = &me->ldata;
+ tot = me->totloop;
+ }
+ break;
+ case BM_FACE:
+ if (bm) {
+ data = &bm->pdata;
+ tot = bm->totface;
+ }
+ else {
+ data = &me->pdata;
+ tot = me->totpoly;
+ }
+ break;
+ default:
+ BLI_assert(0);
+ tot = 0;
+ data = NULL;
+ }
+
+ *r_tot = tot;
+ return data;
+}
+
#define GET_CD_DATA(me, data) (me->edit_btmesh ? &me->edit_btmesh->bm->data : &me->data)
static void delete_customdata_layer(bContext *C, Object *ob, CustomDataLayer *layer)
{
@@ -85,24 +145,10 @@ static void delete_customdata_layer(bContext *C, Object *ob, CustomDataLayer *la
int i, actindex, rndindex, cloneindex, stencilindex, tot;
if (layer->type == CD_MLOOPCOL || layer->type == CD_MLOOPUV) {
- if (me->edit_btmesh) {
- data = &me->edit_btmesh->bm->ldata;
- tot = me->edit_btmesh->bm->totloop;
- }
- else {
- data = &me->ldata;
- tot = me->totloop;
- }
+ data = mesh_customdata_get_type(me, BM_LOOP, &tot);
}
else {
- if (me->edit_btmesh) {
- data = &me->edit_btmesh->bm->pdata;
- tot = me->edit_btmesh->bm->totface;
- }
- else {
- data = &me->pdata;
- tot = me->totpoly;
- }
+ data = mesh_customdata_get_type(me, BM_FACE, &tot);
}
index = CustomData_get_layer_index(data, type);
@@ -701,71 +747,124 @@ void MESH_OT_vertex_color_remove(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
-/*********************** sticky operators ************************/
+/* *** CustomData clear functions, we need an operator for each *** */
-static int mesh_sticky_add_exec(bContext *C, wmOperator *UNUSED(op))
+static int mesh_customdata_clear_exec__internal(bContext *C,
+ char htype, int type)
{
- Scene *scene = CTX_data_scene(C);
- View3D *v3d = CTX_wm_view3d(C);
- Object *ob = ED_object_context(C);
- Mesh *me = ob->data;
+ Object *obedit = ED_object_context(C);
+ Mesh *me = obedit->data;
- /* why is this commented out? */
-#if 0
- if (me->msticky)
+ int tot;
+ CustomData *data = mesh_customdata_get_type(me, htype, &tot);
+
+ BLI_assert(CustomData_layertype_is_singleton(type) == TRUE);
+
+ if (CustomData_has_layer(data, type)) {
+ if (me->edit_btmesh) {
+ BM_data_layer_free(me->edit_btmesh->bm, data, type);
+ }
+ else {
+ CustomData_free_layers(data, type, tot);
+ }
+
+ DAG_id_tag_update(&me->id, 0);
+ WM_event_add_notifier(C, NC_GEOM | ND_DATA, me);
+
+ return OPERATOR_FINISHED;
+ }
+ else {
return OPERATOR_CANCELLED;
-#endif
+ }
+}
- RE_make_sticky(scene, v3d);
+/* Clear Mask */
+static int mesh_customdata_clear_mask_poll(bContext *C)
+{
+ Object *ob = ED_object_context(C);
+ if (ob && ob->type == OB_MESH) {
+ Mesh *me = ob->data;
- DAG_id_tag_update(&me->id, 0);
- WM_event_add_notifier(C, NC_GEOM | ND_DATA, me);
+ /* special case - can't run this if we're in sculpt mode */
+ if (ob->mode & OB_MODE_SCULPT) {
+ return FALSE;
+ }
- return OPERATOR_FINISHED;
+ if (me->id.lib == NULL) {
+ CustomData *data = GET_CD_DATA(me, vdata);
+ if (CustomData_has_layer(data, CD_PAINT_MASK)) {
+ return TRUE;
+ }
+ data = GET_CD_DATA(me, ldata);
+ if (CustomData_has_layer(data, CD_GRID_PAINT_MASK)) {
+ return TRUE;
+ }
+ }
+ }
+ return FALSE;
+}
+static int mesh_customdata_clear_mask_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ int ret_a = mesh_customdata_clear_exec__internal(C, BM_VERT, CD_PAINT_MASK);
+ int ret_b = mesh_customdata_clear_exec__internal(C, BM_LOOP, CD_GRID_PAINT_MASK);
+
+ if (ret_a == OPERATOR_FINISHED ||
+ ret_b == OPERATOR_FINISHED)
+ {
+ return OPERATOR_FINISHED;
+ }
+ else {
+ return OPERATOR_CANCELLED;
+ }
}
-void MESH_OT_sticky_add(wmOperatorType *ot)
+void MESH_OT_customdata_clear_mask(wmOperatorType *ot)
{
+
/* identifiers */
- ot->name = "Add Sticky";
- ot->description = "Add sticky UV texture layer";
- ot->idname = "MESH_OT_sticky_add";
-
+ ot->name = "Clear Sculpt-Mask Data";
+ ot->idname = "MESH_OT_customdata_clear_mask";
+ ot->description = "Clear vertex sculpt masking data from the mesh";
+
/* api callbacks */
- ot->poll = layers_poll;
- ot->exec = mesh_sticky_add_exec;
+ ot->exec = mesh_customdata_clear_mask_exec;
+ ot->poll = mesh_customdata_clear_mask_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
-static int mesh_sticky_remove_exec(bContext *C, wmOperator *UNUSED(op))
+/* Clear Skin */
+static int mesh_customdata_clear_skin_poll(bContext *C)
{
Object *ob = ED_object_context(C);
- Mesh *me = ob->data;
-
- if (!me->msticky)
- return OPERATOR_CANCELLED;
-
- CustomData_free_layer_active(&me->vdata, CD_MSTICKY, me->totvert);
- me->msticky = NULL;
-
- DAG_id_tag_update(&me->id, 0);
- WM_event_add_notifier(C, NC_GEOM | ND_DATA, me);
- return OPERATOR_FINISHED;
+ if (ob && ob->type == OB_MESH) {
+ Mesh *me = ob->data;
+ if (me->id.lib == NULL) {
+ CustomData *data = GET_CD_DATA(me, vdata);
+ if (CustomData_has_layer(data, CD_MVERT_SKIN)) {
+ return TRUE;
+ }
+ }
+ }
+ return FALSE;
+}
+static int mesh_customdata_clear_skin_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ return mesh_customdata_clear_exec__internal(C, BM_VERT, CD_MVERT_SKIN);
}
-void MESH_OT_sticky_remove(wmOperatorType *ot)
+void MESH_OT_customdata_clear_skin(wmOperatorType *ot)
{
/* identifiers */
- ot->name = "Remove Sticky";
- ot->description = "Remove sticky UV texture layer";
- ot->idname = "MESH_OT_sticky_remove";
-
+ ot->name = "Clear Skin Data";
+ ot->idname = "MESH_OT_customdata_clear_skin";
+ ot->description = "Clear vertex skin layer";
+
/* api callbacks */
- ot->poll = layers_poll;
- ot->exec = mesh_sticky_remove_exec;
+ ot->exec = mesh_customdata_clear_skin_exec;
+ ot->poll = mesh_customdata_clear_skin_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
diff --git a/source/blender/editors/mesh/mesh_intern.h b/source/blender/editors/mesh/mesh_intern.h
index cf17fce2971..de594b87e2c 100644
--- a/source/blender/editors/mesh/mesh_intern.h
+++ b/source/blender/editors/mesh/mesh_intern.h
@@ -85,8 +85,6 @@ float labda_PdistVL2Dfl(const float v1[3], const float v2[3], const float v3[3])
/* ******************** editface.c */
-void em_setup_viewcontext(struct bContext *C, struct ViewContext *vc);
-
void MESH_OT_separate(struct wmOperatorType *ot);
/* ******************* editmesh_add.c */
@@ -189,8 +187,10 @@ void MESH_OT_uv_texture_add(struct wmOperatorType *ot);
void MESH_OT_uv_texture_remove(struct wmOperatorType *ot);
void MESH_OT_vertex_color_add(struct wmOperatorType *ot);
void MESH_OT_vertex_color_remove(struct wmOperatorType *ot);
-void MESH_OT_sticky_add(struct wmOperatorType *ot);
-void MESH_OT_sticky_remove(struct wmOperatorType *ot);
+/* no create_mask yet */
+void MESH_OT_customdata_clear_mask(struct wmOperatorType *ot);
+void MESH_OT_customdata_clear_skin(struct wmOperatorType *ot);
+
void MESH_OT_drop_named_image(struct wmOperatorType *ot);
/* ************* bmesh_tools.c ***********/
diff --git a/source/blender/editors/mesh/mesh_navmesh.c b/source/blender/editors/mesh/mesh_navmesh.c
index 14d20d68455..88b1f191e3a 100644
--- a/source/blender/editors/mesh/mesh_navmesh.c
+++ b/source/blender/editors/mesh/mesh_navmesh.c
@@ -491,7 +491,7 @@ static int navmesh_face_copy_exec(bContext *C, wmOperator *op)
BMEditMesh *em = BMEdit_FromObject(obedit);
/* do work here */
- BMFace *efa_act = BM_active_face_get(em->bm, FALSE);
+ BMFace *efa_act = BM_active_face_get(em->bm, FALSE, FALSE);
if (efa_act) {
if (CustomData_has_layer(&em->bm->pdata, CD_RECAST)) {
diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c
index dfa1beb614f..3ac8719f304 100644
--- a/source/blender/editors/mesh/mesh_ops.c
+++ b/source/blender/editors/mesh/mesh_ops.c
@@ -134,7 +134,6 @@ void ED_operatortypes_mesh(void)
WM_operatortype_append(MESH_OT_vertices_smooth);
WM_operatortype_append(MESH_OT_noise);
WM_operatortype_append(MESH_OT_flip_normals);
- //WM_operatortype_append(MESH_OT_knife_cut);
WM_operatortype_append(MESH_OT_rip);
WM_operatortype_append(MESH_OT_blend_from_shape);
WM_operatortype_append(MESH_OT_shape_propagate_to_all);
@@ -143,8 +142,8 @@ void ED_operatortypes_mesh(void)
WM_operatortype_append(MESH_OT_uv_texture_remove);
WM_operatortype_append(MESH_OT_vertex_color_add);
WM_operatortype_append(MESH_OT_vertex_color_remove);
- WM_operatortype_append(MESH_OT_sticky_add);
- WM_operatortype_append(MESH_OT_sticky_remove);
+ WM_operatortype_append(MESH_OT_customdata_clear_mask);
+ WM_operatortype_append(MESH_OT_customdata_clear_skin);
WM_operatortype_append(MESH_OT_drop_named_image);
WM_operatortype_append(MESH_OT_edgering_select);
diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c
index cdbf5751ea1..f265113708a 100644
--- a/source/blender/editors/mesh/meshtools.c
+++ b/source/blender/editors/mesh/meshtools.c
@@ -42,6 +42,7 @@
#include "MEM_guardedalloc.h"
#include "DNA_mesh_types.h"
+#include "DNA_view3d_types.h"
#include "DNA_key_types.h"
#include "DNA_material_types.h"
#include "DNA_meshdata_types.h"
@@ -103,7 +104,7 @@ int join_mesh_exec(bContext *C, wmOperator *op)
MLoop *mloop = NULL;
Key *key, *nkey = NULL;
KeyBlock *kb, *okb, *kbn;
- float imat[4][4], cmat[4][4], *fp1, *fp2, curpos;
+ float imat[4][4], cmat[4][4], *fp1, *fp2;
int a, b, totcol, totmat = 0, totedge = 0, totvert = 0, ok = 0;
int totloop = 0, totpoly = 0, vertofs, *matmap = NULL;
int i, j, index, haskey = 0, edgeofs, loopofs, polyofs;
@@ -195,7 +196,7 @@ int join_mesh_exec(bContext *C, wmOperator *op)
}
else if (haskey) {
/* add a new key-block and add to the mesh */
- key = me->key = add_key((ID *)me);
+ key = me->key = BKE_key_add((ID *)me);
key->type = KEY_RELATIVE;
}
@@ -242,45 +243,58 @@ int join_mesh_exec(bContext *C, wmOperator *op)
/* if this mesh has shapekeys, check if destination mesh already has matching entries too */
if (me->key && key) {
- for (kb = me->key->block.first; kb; kb = kb->next) {
+ /* for remapping KeyBlock.relative */
+ int *index_map = MEM_mallocN(sizeof(int) * me->key->totkey, __func__);
+ KeyBlock **kb_map = MEM_mallocN(sizeof(KeyBlock *) * me->key->totkey, __func__);
+
+ for (kb = me->key->block.first, i = 0; kb; kb = kb->next, i++) {
+ BLI_assert(i < me->key->totkey);
+
+ kbn = BKE_keyblock_find_name(key, kb->name);
/* if key doesn't exist in destination mesh, add it */
- if (key_get_named_keyblock(key, kb->name) == NULL) {
- /* copy this existing one over to the new shapekey block */
- kbn = MEM_dupallocN(kb);
- kbn->prev = kbn->next = NULL;
-
+ if (kbn) {
+ index_map[i] = BLI_findindex(&key->block, kbn);
+ }
+ else {
+ index_map[i] = key->totkey;
+
+ kbn = BKE_keyblock_add(key, kb->name);
+
+ BKE_keyblock_copy_settings(kbn, kb);
+
/* adjust settings to fit (allocate a new data-array) */
kbn->data = MEM_callocN(sizeof(float) * 3 * totvert, "joined_shapekey");
- kbn->totelem = totvert;
- kbn->weights = NULL;
-
- okb = key->block.last;
- curpos = (okb) ? okb->pos : -0.1f;
- if (key->type == KEY_RELATIVE)
- kbn->pos = curpos + 0.1f;
- else
- kbn->pos = curpos;
-
- BLI_addtail(&key->block, kbn);
- key->totkey++;
- if (key->totkey == 1) key->refkey = kbn;
-
- // XXX 2.5 Animato
+ kbn->totelem = totvert;
+
+ /* XXX 2.5 Animato */
#if 0
/* also, copy corresponding ipo-curve to ipo-block if applicable */
if (me->key->ipo && key->ipo) {
- // FIXME... this is a luxury item!
+ /* FIXME... this is a luxury item! */
puts("FIXME: ignoring IPO's when joining shapekeys on Meshes for now...");
}
#endif
}
+
+ kb_map[i] = kbn;
+ }
+
+ /* remap relative index values */
+ for (kb = me->key->block.first, i = 0; kb; kb = kb->next, i++) {
+ if (LIKELY(kb->relative < me->key->totkey)) { /* sanity check, should always be true */
+ kb_map[i]->relative = index_map[kb->relative];
+ }
}
+
+ MEM_freeN(index_map);
+ MEM_freeN(kb_map);
}
}
}
}
CTX_DATA_END;
-
+
+
/* setup new data for destination mesh */
memset(&vdata, 0, sizeof(vdata));
memset(&edata, 0, sizeof(edata));
@@ -355,7 +369,8 @@ int join_mesh_exec(bContext *C, wmOperator *op)
fp1 = ((float *)kb->data) + (vertofs * 3);
/* check if this mesh has such a shapekey */
- okb = key_get_named_keyblock(me->key, kb->name);
+ okb = me->key ? BKE_keyblock_find_name(me->key, kb->name) : NULL;
+
if (okb) {
/* copy this mesh's shapekey to the destination shapekey (need to transform first) */
fp2 = ((float *)(okb->data));
@@ -385,7 +400,7 @@ int join_mesh_exec(bContext *C, wmOperator *op)
fp1 = ((float *)kb->data) + (vertofs * 3);
/* check if this was one of the original shapekeys */
- okb = key_get_named_keyblock(nkey, kb->name);
+ okb = nkey ? BKE_keyblock_find_name(nkey, kb->name) : NULL;
if (okb) {
/* copy this mesh's shapekey to the destination shapekey */
fp2 = ((float *)(okb->data));
@@ -426,8 +441,8 @@ int join_mesh_exec(bContext *C, wmOperator *op)
if ((mmd = get_multires_modifier(scene, base->object, TRUE))) {
ED_object_iter_other(bmain, base->object, TRUE,
- ED_object_multires_update_totlevels_cb,
- &mmd->totlvl);
+ ED_object_multires_update_totlevels_cb,
+ &mmd->totlvl);
}
}
@@ -441,18 +456,20 @@ int join_mesh_exec(bContext *C, wmOperator *op)
}
if (me->totpoly) {
- /* make mapping for materials */
- for (a = 1; a <= base->object->totcol; a++) {
- ma = give_current_material(base->object, a);
+ if (totmat) {
+ /* make mapping for materials */
+ for (a = 1; a <= base->object->totcol; a++) {
+ ma = give_current_material(base->object, a);
- for (b = 0; b < totcol; b++) {
- if (ma == matar[b]) {
- matmap[a - 1] = b;
- break;
+ for (b = 0; b < totcol; b++) {
+ if (ma == matar[b]) {
+ matmap[a - 1] = b;
+ break;
+ }
}
}
}
-
+
CustomData_merge(&me->pdata, &pdata, CD_MASK_MESH, CD_DEFAULT, totpoly);
CustomData_copy_data(&me->pdata, &pdata, 0, polyofs, me->totpoly);
@@ -530,7 +547,7 @@ int join_mesh_exec(bContext *C, wmOperator *op)
/* free temp copy of destination shapekeys (if applicable) */
if (nkey) {
- // XXX 2.5 Animato
+ /* XXX 2.5 Animato */
#if 0
/* free it's ipo too - both are not actually freed from memory yet as ID-blocks */
if (nkey->ipo) {
@@ -545,6 +562,12 @@ int join_mesh_exec(bContext *C, wmOperator *op)
MEM_freeN(nkey);
}
+ /* ensure newly inserted keys are time sorted */
+ if (key && (key->type != KEY_RELATIVE)) {
+ BKE_key_sort(key);
+ }
+
+
DAG_scene_sort(bmain, scene); // removed objects, need to rebuild dag before editmode call
#if 0
@@ -604,12 +627,12 @@ int join_mesh_shapes_exec(bContext *C, wmOperator *op)
}
if (key == NULL) {
- key = me->key = add_key((ID *)me);
+ key = me->key = BKE_key_add((ID *)me);
key->type = KEY_RELATIVE;
/* first key added, so it was the basis. initialize it with the existing mesh */
- kb = add_keyblock(key, NULL);
- mesh_to_key(me, kb);
+ kb = BKE_keyblock_add(key, NULL);
+ BKE_key_convert_from_mesh(me, kb);
}
/* now ready to add new keys from selected meshes */
@@ -625,7 +648,7 @@ int join_mesh_shapes_exec(bContext *C, wmOperator *op)
if (!dm) continue;
- kb = add_keyblock(key, base->object->id.name + 2);
+ kb = BKE_keyblock_add(key, base->object->id.name + 2);
DM_to_meshkey(dm, me, kb);
@@ -706,9 +729,9 @@ static void mesh_octree_add_nodes(MocNode **basetable, const float co[3], const
float fx, fy, fz;
int vx, vy, vz;
- if (!finite(co[0]) ||
- !finite(co[1]) ||
- !finite(co[2]))
+ if ((finite(co[0]) == FALSE) ||
+ (finite(co[1]) == FALSE) ||
+ (finite(co[2]) == FALSE))
{
return;
}
@@ -877,7 +900,7 @@ intptr_t mesh_octree_table(Object *ob, BMEditMesh *em, const float co[3], char m
return 0;
}
-MirrTopoStore_t mesh_topo_store = {NULL, -1. - 1, -1};
+static MirrTopoStore_t mesh_topo_store = {NULL, -1. - 1, -1};
/* mode is 's' start, or 'e' end, or 'u' use */
/* if end, ob can be NULL */
@@ -937,9 +960,9 @@ static BMVert *editbmesh_get_x_mirror_vert_spatial(Object *ob, BMEditMesh *em, c
intptr_t poinval;
/* ignore nan verts */
- if (!finite(co[0]) ||
- !finite(co[1]) ||
- !finite(co[2]))
+ if ((finite(co[0]) == FALSE) ||
+ (finite(co[1]) == FALSE) ||
+ (finite(co[2]) == FALSE))
{
return NULL;
}
@@ -1030,13 +1053,13 @@ static float *editmesh_get_mirror_uv(BMEditMesh *em, int axis, float *uv, float
BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) {
uv_poly_center(em, efa, cent);
- if ( (fabs(cent[0] - cent_vec[0]) < 0.001) && (fabs(cent[1] - cent_vec[1]) < 0.001) ) {
+ if ( (fabsf(cent[0] - cent_vec[0]) < 0.001f) && (fabsf(cent[1] - cent_vec[1]) < 0.001f) ) {
BMIter liter;
BMLoop *l;
BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
MLoopUV *luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
- if ( (fabs(luv->uv[0] - vec[0]) < 0.001) && (fabs(luv->uv[1] - vec[1]) < 0.001) ) {
+ if ( (fabsf(luv->uv[0] - vec[0]) < 0.001f) && (fabsf(luv->uv[1] - vec[1]) < 0.001f) ) {
return luv->uv;
}
@@ -1146,3 +1169,126 @@ int *mesh_get_x_mirror_faces(Object *ob, BMEditMesh *em)
return mirrorfaces;
}
+
+/* selection, vertex and face */
+/* returns 0 if not found, otherwise 1 */
+
+/**
+ * Face selection in object mode,
+ * currently only weight-paint and vertex-paint use this.
+ *
+ * \return boolean TRUE == Found
+ */
+int ED_mesh_pick_face(bContext *C, Mesh *me, const int mval[2], unsigned int *index, int size)
+{
+ ViewContext vc;
+
+ if (!me || me->totpoly == 0)
+ return 0;
+
+ view3d_set_viewcontext(C, &vc);
+
+ if (size) {
+ /* sample rect to increase chances of selecting, so that when clicking
+ * on an edge in the backbuf, we can still select a face */
+
+ int dummy_dist;
+ *index = view3d_sample_backbuf_rect(&vc, mval, size, 1, me->totpoly + 1, &dummy_dist, 0, NULL, NULL);
+ }
+ else {
+ /* sample only on the exact position */
+ *index = view3d_sample_backbuf(&vc, mval[0], mval[1]);
+ }
+
+ if ((*index) <= 0 || (*index) > (unsigned int)me->totpoly)
+ return 0;
+
+ (*index)--;
+
+ return 1;
+}
+/**
+ * Use when the back buffer stores face index values. but we want a vert.
+ * This gets the face then finds the closest vertex to mval.
+ */
+int ED_mesh_pick_face_vert(bContext *C, Mesh *me, Object *ob, const int mval[2], unsigned int *index, int size)
+{
+ unsigned int poly_index;
+
+ if (ED_mesh_pick_face(C, me, mval, &poly_index, size)) {
+ Scene *scene = CTX_data_scene(C);
+ struct ARegion *ar = CTX_wm_region(C);
+
+ /* derived mesh to find deformed locations */
+ DerivedMesh *dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
+ int v_idx_best = -1;
+
+ if (dm->getVertCo) {
+ /* find the vert closest to 'mval' */
+ const float mval_f[2] = {(float)mval[0],
+ (float)mval[1]};
+ MPoly *mp = &me->mpoly[poly_index];
+ int fidx;
+ float len_best = FLT_MAX;
+
+ fidx = mp->totloop - 1;
+ do {
+ float co[3], sco[2], len;
+ const int v_idx = me->mloop[mp->loopstart + fidx].v;
+ dm->getVertCo(dm, v_idx, co);
+ mul_m4_v3(ob->obmat, co);
+ if (ED_view3d_project_float_global(ar, co, sco, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ len = len_squared_v2v2(mval_f, sco);
+ if (len < len_best) {
+ len_best = len;
+ v_idx_best = v_idx;
+ }
+ }
+ } while (fidx--);
+ }
+
+ dm->release(dm);
+
+ if (v_idx_best != -1) {
+ *index = v_idx_best;
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+/**
+ * Vertex selection in object mode,
+ * currently only weight paint uses this.
+ *
+ * \return boolean TRUE == Found
+ */
+int ED_mesh_pick_vert(bContext *C, Mesh *me, const int mval[2], unsigned int *index, int size)
+{
+ ViewContext vc;
+
+ if (!me || me->totvert == 0)
+ return 0;
+
+ view3d_set_viewcontext(C, &vc);
+
+ if (size > 0) {
+ /* sample rect to increase chances of selecting, so that when clicking
+ * on an face in the backbuf, we can still select a vert */
+
+ int dummy_dist;
+ *index = view3d_sample_backbuf_rect(&vc, mval, size, 1, me->totvert + 1, &dummy_dist, 0, NULL, NULL);
+ }
+ else {
+ /* sample only on the exact position */
+ *index = view3d_sample_backbuf(&vc, mval[0], mval[1]);
+ }
+
+ if ((*index) <= 0 || (*index) > (unsigned int)me->totvert)
+ return 0;
+
+ (*index)--;
+
+ return 1;
+}
diff --git a/source/blender/editors/metaball/mball_edit.c b/source/blender/editors/metaball/mball_edit.c
index 7b7aaf5a3db..e9063687506 100644
--- a/source/blender/editors/metaball/mball_edit.c
+++ b/source/blender/editors/metaball/mball_edit.c
@@ -98,9 +98,8 @@ void load_editMball(Object *UNUSED(obedit))
}
/* Add metaelem primitive to metaball object (which is in edit mode) */
-MetaElem *add_metaball_primitive(bContext *C, float mat[4][4], int type, int UNUSED(newname))
+MetaElem *add_metaball_primitive(bContext *UNUSED(C), Object *obedit, float mat[4][4], int type, int UNUSED(newname))
{
- Object *obedit = CTX_data_edit_object(C);
MetaBall *mball = (MetaBall *)obedit->data;
MetaElem *ml;
@@ -130,37 +129,33 @@ static int mball_select_all_exec(bContext *C, wmOperator *op)
MetaElem *ml;
int action = RNA_enum_get(op->ptr, "action");
- ml = mb->editelems->first;
- if (ml) {
- if (action == SEL_TOGGLE) {
- action = SEL_SELECT;
- while (ml) {
- if (ml->flag & SELECT) {
- action = SEL_DESELECT;
- break;
- }
- ml = ml->next;
- }
- }
+ if (mb->editelems->first == NULL)
+ return OPERATOR_CANCELLED;
- ml = mb->editelems->first;
- while (ml) {
- switch (action) {
- case SEL_SELECT:
- ml->flag |= SELECT;
- break;
- case SEL_DESELECT:
- ml->flag &= ~SELECT;
- break;
- case SEL_INVERT:
- ml->flag ^= SELECT;
- break;
+ if (action == SEL_TOGGLE) {
+ action = SEL_SELECT;
+ for (ml = mb->editelems->first; ml; ml = ml->next) {
+ if (ml->flag & SELECT) {
+ action = SEL_DESELECT;
+ break;
}
- ml = ml->next;
}
- WM_event_add_notifier(C, NC_GEOM | ND_SELECT, mb);
}
+ switch (action) {
+ case SEL_SELECT:
+ BKE_mball_select_all(mb);
+ break;
+ case SEL_DESELECT:
+ BKE_mball_deselect_all(mb);
+ break;
+ case SEL_INVERT:
+ BKE_mball_select_swap(mb);
+ break;
+ }
+
+ WM_event_add_notifier(C, NC_GEOM | ND_SELECT, mb);
+
return OPERATOR_FINISHED;
}
@@ -228,7 +223,8 @@ void MBALL_OT_select_random_metaelems(struct wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- RNA_def_float_percentage(ot->srna, "percent", 0.5f, 0.0f, 1.0f, "Percent", "Percentage of metaelems to select randomly", 0.0001f, 1.0f);
+ RNA_def_float_percentage(ot->srna, "percent", 0.5f, 0.0f, 1.0f, "Percent",
+ "Percentage of metaelements to select randomly", 0.0001f, 1.0f);
}
/***************************** Duplicate operator *****************************/
@@ -421,7 +417,7 @@ int mouse_mball(bContext *C, const int mval[2], int extend, int deselect, int to
Object *obedit = CTX_data_edit_object(C);
ViewContext vc;
MetaBall *mb = (MetaBall *)obedit->data;
- MetaElem *ml, *act = NULL;
+ MetaElem *ml, *ml_act = NULL;
int a, hits;
unsigned int buffer[4 * MAXPICKBUF];
rcti rect;
@@ -451,14 +447,14 @@ int mouse_mball(bContext *C, const int mval[2], int extend, int deselect, int to
/* index converted for gl stuff */
if (ml->selcol1 == buffer[4 * a + 3]) {
ml->flag |= MB_SCALE_RAD;
- act = ml;
+ ml_act = ml;
}
if (ml->selcol2 == buffer[4 * a + 3]) {
ml->flag &= ~MB_SCALE_RAD;
- act = ml;
+ ml_act = ml;
}
}
- if (act) break;
+ if (ml_act) break;
ml = ml->next;
if (ml == NULL) ml = mb->editelems->first;
if (ml == startelem) break;
@@ -466,31 +462,28 @@ int mouse_mball(bContext *C, const int mval[2], int extend, int deselect, int to
/* When some metaelem was found, then it is necessary to select or
* deselect it. */
- if (act) {
+ if (ml_act) {
if (extend) {
- act->flag |= SELECT;
+ ml_act->flag |= SELECT;
}
else if (deselect) {
- act->flag &= ~SELECT;
+ ml_act->flag &= ~SELECT;
}
else if (toggle) {
- if (act->flag & SELECT)
- act->flag &= ~SELECT;
+ if (ml_act->flag & SELECT)
+ ml_act->flag &= ~SELECT;
else
- act->flag |= SELECT;
+ ml_act->flag |= SELECT;
}
else {
/* Deselect all existing metaelems */
- ml = mb->editelems->first;
- while (ml) {
- ml->flag &= ~SELECT;
- ml = ml->next;
- }
+ BKE_mball_deselect_all(mb);
+
/* Select only metaelem clicked on */
- act->flag |= SELECT;
+ ml_act->flag |= SELECT;
}
- mb->lastelem = act;
+ mb->lastelem = ml_act;
WM_event_add_notifier(C, NC_GEOM | ND_SELECT, mb);
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
index ba26b92f354..43a32cd662e 100644
--- a/source/blender/editors/object/object_add.c
+++ b/source/blender/editors/object/object_add.c
@@ -43,6 +43,7 @@
#include "DNA_meta_types.h"
#include "DNA_object_fluidsim.h"
#include "DNA_object_force.h"
+#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_speaker_types.h"
#include "DNA_vfont_types.h"
@@ -105,10 +106,12 @@
#include "UI_interface.h"
#include "UI_resources.h"
+#include "GPU_material.h"
+
#include "object_intern.h"
/* this is an exact copy of the define in rna_lamp.c
- * kept here because of linking order.
+ * kept here because of linking order.
* Icons are only defined here */
EnumPropertyItem lamp_type_items[] = {
{LA_LOCAL, "POINT", ICON_LAMP_POINT, "Point", "Omnidirectional point light source"},
@@ -119,6 +122,23 @@ EnumPropertyItem lamp_type_items[] = {
{0, NULL, 0, NULL, NULL}
};
+/* copy from rna_object_force.c */
+static EnumPropertyItem field_type_items[] = {
+ {PFIELD_FORCE, "FORCE", ICON_FORCE_FORCE, "Force", ""},
+ {PFIELD_WIND, "WIND", ICON_FORCE_WIND, "Wind", ""},
+ {PFIELD_VORTEX, "VORTEX", ICON_FORCE_VORTEX, "Vortex", ""},
+ {PFIELD_MAGNET, "MAGNET", ICON_FORCE_MAGNETIC, "Magnetic", ""},
+ {PFIELD_HARMONIC, "HARMONIC", ICON_FORCE_HARMONIC, "Harmonic", ""},
+ {PFIELD_CHARGE, "CHARGE", ICON_FORCE_CHARGE, "Charge", ""},
+ {PFIELD_LENNARDJ, "LENNARDJ", ICON_FORCE_LENNARDJONES, "Lennard-Jones", ""},
+ {PFIELD_TEXTURE, "TEXTURE", ICON_FORCE_TEXTURE, "Texture", ""},
+ {PFIELD_GUIDE, "GUIDE", ICON_FORCE_CURVE, "Curve Guide", ""},
+ {PFIELD_BOID, "BOID", ICON_FORCE_BOID, "Boid", ""},
+ {PFIELD_TURBULENCE, "TURBULENCE", ICON_FORCE_TURBULENCE, "Turbulence", ""},
+ {PFIELD_DRAG, "DRAG", ICON_FORCE_DRAG, "Drag", ""},
+ {0, NULL, 0, NULL, NULL}
+};
+
/************************** Exported *****************************/
void ED_object_location_from_view(bContext *C, float loc[3])
@@ -126,7 +146,7 @@ void ED_object_location_from_view(bContext *C, float loc[3])
View3D *v3d = CTX_wm_view3d(C);
Scene *scene = CTX_data_scene(C);
float *cursor;
-
+
cursor = give_cursor(scene, v3d);
copy_v3_v3(loc, cursor);
@@ -150,44 +170,44 @@ void ED_object_base_init_transform(bContext *C, Base *base, const float loc[3],
{
Object *ob = base->object;
Scene *scene = CTX_data_scene(C);
-
+
if (!scene) return;
-
+
if (loc)
copy_v3_v3(ob->loc, loc);
-
+
if (rot)
copy_v3_v3(ob->rot, rot);
-
+
BKE_object_where_is_calc(scene, ob);
}
-/* uses context to figure out transform for primitive */
-/* returns standard diameter */
+/* Uses context to figure out transform for primitive.
+ * Returns standard diameter. */
float ED_object_new_primitive_matrix(bContext *C, Object *obedit,
const float loc[3], const float rot[3], float primmat[][4])
{
Scene *scene = CTX_data_scene(C);
View3D *v3d = CTX_wm_view3d(C);
float mat[3][3], rmat[3][3], cmat[3][3], imat[3][3];
-
+
unit_m4(primmat);
-
+
eul_to_mat3(rmat, rot);
invert_m3(rmat);
-
+
/* inverse transform for initial rotation and object */
copy_m3_m4(mat, obedit->obmat);
mul_m3_m3m3(cmat, rmat, mat);
invert_m3_m3(imat, cmat);
copy_m4_m3(primmat, imat);
-
+
/* center */
copy_v3_v3(primmat[3], loc);
sub_v3_v3v3(primmat[3], primmat[3], obedit->obmat[3]);
invert_m3_m3(imat, mat);
mul_m3_v3(imat, primmat[3]);
-
+
if (v3d)
return ED_view3d_grid_scale(scene, v3d, NULL);
@@ -196,7 +216,7 @@ float ED_object_new_primitive_matrix(bContext *C, Object *obedit,
/********************* Add Object Operator ********************/
-void view_align_update(struct Main *UNUSED(main), struct Scene *UNUSED(scene), struct PointerRNA *ptr)
+static void view_align_update(struct Main *UNUSED(main), struct Scene *UNUSED(scene), struct PointerRNA *ptr)
{
RNA_struct_idprops_unset(ptr, "rotation");
}
@@ -204,7 +224,7 @@ void view_align_update(struct Main *UNUSED(main), struct Scene *UNUSED(scene), s
void ED_object_add_generic_props(wmOperatorType *ot, int do_editmode)
{
PropertyRNA *prop;
-
+
/* note: this property gets hidden for add-camera operator */
prop = RNA_def_boolean(ot->srna, "view_align", 0, "Align to View", "Align the new object to the view");
RNA_def_property_update_runtime(prop, view_align_update);
@@ -214,112 +234,112 @@ void ED_object_add_generic_props(wmOperatorType *ot, int do_editmode)
"Enter editmode when adding this object");
RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE);
}
-
+
prop = RNA_def_float_vector_xyz(ot->srna, "location", 3, NULL, -FLT_MAX, FLT_MAX, "Location",
"Location for the newly added object", -FLT_MAX, FLT_MAX);
RNA_def_property_flag(prop, PROP_SKIP_SAVE);
prop = RNA_def_float_rotation(ot->srna, "rotation", 3, NULL, -FLT_MAX, FLT_MAX, "Rotation",
"Rotation for the newly added object", (float)-M_PI * 2.0f, (float)M_PI * 2.0f);
RNA_def_property_flag(prop, PROP_SKIP_SAVE);
-
+
prop = RNA_def_boolean_layer_member(ot->srna, "layers", 20, NULL, "Layer", "");
RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE);
}
-static void object_add_generic_invoke_options(bContext *C, wmOperator *op)
+int ED_object_add_generic_get_opts(bContext *C, wmOperator *op, float loc[3], float rot[3],
+ int *enter_editmode, unsigned int *layer, int *is_view_aligned)
{
- if (RNA_struct_find_property(op->ptr, "enter_editmode")) /* optional */
- if (!RNA_struct_property_is_set(op->ptr, "enter_editmode"))
- RNA_boolean_set(op->ptr, "enter_editmode", U.flag & USER_ADD_EDITMODE);
-
- if (!RNA_struct_property_is_set(op->ptr, "location")) {
- float loc[3];
-
- ED_object_location_from_view(C, loc);
- RNA_float_set_array(op->ptr, "location", loc);
- }
-
- if (!RNA_struct_property_is_set(op->ptr, "layers")) {
- View3D *v3d = CTX_wm_view3d(C);
- Scene *scene = CTX_data_scene(C);
- int a, values[20], layer;
+ View3D *v3d = CTX_wm_view3d(C);
- if (v3d) {
- layer = (v3d->scenelock && !v3d->localvd) ? scene->layact : v3d->layact;
- }
+ /* Switch to Edit mode? */
+ if (RNA_struct_find_property(op->ptr, "enter_editmode")) { /* optional */
+ int _enter_editmode;
+ if (!enter_editmode)
+ enter_editmode = &_enter_editmode;
+
+ if (RNA_struct_property_is_set(op->ptr, "enter_editmode") && enter_editmode)
+ *enter_editmode = RNA_boolean_get(op->ptr, "enter_editmode");
else {
- layer = scene->layact;
+ *enter_editmode = U.flag & USER_ADD_EDITMODE;
+ RNA_boolean_set(op->ptr, "enter_editmode", *enter_editmode);
}
+ }
- for (a = 0; a < 20; a++) {
- values[a] = (layer & (1 << a));
+ /* Get layers! */
+ {
+ int a, layer_values[20];
+ unsigned int _layer;
+ if (!layer)
+ layer = &_layer;
+
+ if (RNA_struct_property_is_set(op->ptr, "layers")) {
+ RNA_boolean_get_array(op->ptr, "layers", layer_values);
+ *layer = 0;
+ for (a = 0; a < 20; a++) {
+ if (layer_values[a])
+ *layer |= (1 << a);
+ }
+ }
+ else {
+ Scene *scene = CTX_data_scene(C);
+ if (v3d)
+ *layer = (v3d->scenelock && !v3d->localvd) ? scene->layact : v3d->layact;
+ else
+ *layer = scene->layact;
+ for (a = 0; a < 20; a++) {
+ layer_values[a] = *layer & (1 << a);
+ }
+ RNA_boolean_set_array(op->ptr, "layers", layer_values);
}
- RNA_boolean_set_array(op->ptr, "layers", values);
+ /* in local view we additionally add local view layers,
+ * not part of operator properties */
+ if (v3d && v3d->localvd)
+ *layer |= v3d->lay;
}
-}
-int ED_object_add_generic_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
-{
- object_add_generic_invoke_options(C, op);
- return op->type->exec(C, op);
-}
-
-int ED_object_add_generic_get_opts(bContext *C, wmOperator *op, float loc[3], float rot[3],
- int *enter_editmode, unsigned int *layer, int *is_view_aligned)
-{
- View3D *v3d = CTX_wm_view3d(C);
- int a, layer_values[20];
- int view_align;
-
- *enter_editmode = FALSE;
- if (RNA_struct_find_property(op->ptr, "enter_editmode") && RNA_boolean_get(op->ptr, "enter_editmode")) {
- *enter_editmode = TRUE;
- }
+ /* Location! */
+ {
+ float _loc[3];
+ if (!loc)
+ loc = _loc;
- if (RNA_struct_property_is_set(op->ptr, "layers")) {
- RNA_boolean_get_array(op->ptr, "layers", layer_values);
- *layer = 0;
- for (a = 0; a < 20; a++) {
- if (layer_values[a])
- *layer |= (1 << a);
- else
- *layer &= ~(1 << a);
+ if (RNA_struct_property_is_set(op->ptr, "location")) {
+ RNA_float_get_array(op->ptr, "location", loc);
+ }
+ else {
+ ED_object_location_from_view(C, loc);
+ RNA_float_set_array(op->ptr, "location", loc);
}
- }
- else {
- /* not set, use the scenes layers */
- Scene *scene = CTX_data_scene(C);
- *layer = scene->layact;
}
- /* in local view we additionally add local view layers,
- * not part of operator properties */
- if (v3d && v3d->localvd)
- *layer |= v3d->lay;
+ /* Rotation! */
+ {
+ int _is_view_aligned;
+ float _rot[3];
+ if (!is_view_aligned)
+ is_view_aligned = &_is_view_aligned;
+ if (!rot)
+ rot = _rot;
+
+ if (RNA_struct_property_is_set(op->ptr, "rotation"))
+ *is_view_aligned = FALSE;
+ else if (RNA_struct_property_is_set(op->ptr, "view_align"))
+ *is_view_aligned = RNA_boolean_get(op->ptr, "view_align");
+ else {
+ *is_view_aligned = U.flag & USER_ADD_VIEWALIGNED;
+ RNA_boolean_set(op->ptr, "view_align", *is_view_aligned);
+ }
- if (RNA_struct_property_is_set(op->ptr, "rotation"))
- view_align = FALSE;
- else if (RNA_struct_property_is_set(op->ptr, "view_align"))
- view_align = RNA_boolean_get(op->ptr, "view_align");
- else {
- view_align = U.flag & USER_ADD_VIEWALIGNED;
- RNA_boolean_set(op->ptr, "view_align", view_align);
- }
-
- if (view_align) {
- ED_object_rotation_from_view(C, rot);
- RNA_float_set_array(op->ptr, "rotation", rot);
+ if (*is_view_aligned) {
+ ED_object_rotation_from_view(C, rot);
+ RNA_float_set_array(op->ptr, "rotation", rot);
+ }
+ else
+ RNA_float_get_array(op->ptr, "rotation", rot);
}
- else
- RNA_float_get_array(op->ptr, "rotation", rot);
-
- if (is_view_aligned)
- *is_view_aligned = view_align;
-
- RNA_float_get_array(op->ptr, "location", loc);
-
- if (*layer == 0) {
+
+ if (layer && *layer == 0) {
BKE_report(op->reports, RPT_ERROR, "Property 'layer' has no values set");
return 0;
}
@@ -327,19 +347,19 @@ int ED_object_add_generic_get_opts(bContext *C, wmOperator *op, float loc[3], fl
return 1;
}
-/* for object add primitive operators */
-/* do not call undo push in this function (users of this function have to) */
+/* For object add primitive operators.
+ * Do not call undo push in this function (users of this function have to). */
Object *ED_object_add_type(bContext *C, int type, const float loc[3], const float rot[3],
int enter_editmode, unsigned int layer)
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
Object *ob;
-
- /* for as long scene has editmode... */
+
+ /* For as long scene has editmode... */
if (CTX_data_edit_object(C))
ED_object_exit_editmode(C, EM_FREEDATA | EM_FREEUNDO | EM_WAITCURSOR | EM_DO_UNDO); /* freedata, and undo */
-
+
/* deselects all, sets scene->basact */
ob = BKE_object_add(scene, type);
BASACT->lay = ob->lay = layer;
@@ -369,12 +389,12 @@ static int object_add_exec(bContext *C, wmOperator *op)
int enter_editmode;
unsigned int layer;
float loc[3], rot[3];
-
+
if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL))
return OPERATOR_CANCELLED;
ED_object_add_type(C, RNA_enum_get(op->ptr, "type"), loc, rot, enter_editmode, layer);
-
+
return OPERATOR_FINISHED;
}
@@ -384,89 +404,62 @@ void OBJECT_OT_add(wmOperatorType *ot)
ot->name = "Add Object";
ot->description = "Add an object to the scene";
ot->idname = "OBJECT_OT_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = object_add_exec;
-
ot->poll = ED_operator_objectmode;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
+
RNA_def_enum(ot->srna, "type", object_type_items, 0, "Type", "");
ED_object_add_generic_props(ot, TRUE);
}
/********************* Add Effector Operator ********************/
-/* copy from rna_object_force.c*/
-static EnumPropertyItem field_type_items[] = {
- {PFIELD_FORCE, "FORCE", ICON_FORCE_FORCE, "Force", ""},
- {PFIELD_WIND, "WIND", ICON_FORCE_WIND, "Wind", ""},
- {PFIELD_VORTEX, "VORTEX", ICON_FORCE_VORTEX, "Vortex", ""},
- {PFIELD_MAGNET, "MAGNET", ICON_FORCE_MAGNETIC, "Magnetic", ""},
- {PFIELD_HARMONIC, "HARMONIC", ICON_FORCE_HARMONIC, "Harmonic", ""},
- {PFIELD_CHARGE, "CHARGE", ICON_FORCE_CHARGE, "Charge", ""},
- {PFIELD_LENNARDJ, "LENNARDJ", ICON_FORCE_LENNARDJONES, "Lennard-Jones", ""},
- {PFIELD_TEXTURE, "TEXTURE", ICON_FORCE_TEXTURE, "Texture", ""},
- {PFIELD_GUIDE, "GUIDE", ICON_FORCE_CURVE, "Curve Guide", ""},
- {PFIELD_BOID, "BOID", ICON_FORCE_BOID, "Boid", ""},
- {PFIELD_TURBULENCE, "TURBULENCE", ICON_FORCE_TURBULENCE, "Turbulence", ""},
- {PFIELD_DRAG, "DRAG", ICON_FORCE_DRAG, "Drag", ""},
- {0, NULL, 0, NULL, NULL}};
-/* for effector add primitive operators */
-static Object *effector_add_type(bContext *C, wmOperator *op, int type)
+/* for object add operator */
+static int effector_add_exec(bContext *C, wmOperator *op)
{
Object *ob;
- int enter_editmode;
+ int type, enter_editmode;
unsigned int layer;
float loc[3], rot[3];
float mat[4][4];
-
- object_add_generic_invoke_options(C, op);
if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL))
- return NULL;
+ return OPERATOR_CANCELLED;
+
+ type = RNA_enum_get(op->ptr, "type");
if (type == PFIELD_GUIDE) {
ob = ED_object_add_type(C, OB_CURVE, loc, rot, FALSE, layer);
- rename_id(&ob->id, "CurveGuide");
+ if (!ob)
+ return OPERATOR_CANCELLED;
+ rename_id(&ob->id, "CurveGuide");
((Curve *)ob->data)->flag |= CU_PATH | CU_3D;
ED_object_enter_editmode(C, 0);
ED_object_new_primitive_matrix(C, ob, loc, rot, mat);
- BLI_addtail(object_editcurve_get(ob), add_nurbs_primitive(C, mat, CU_NURBS | CU_PRIM_PATH, 1));
-
+ BLI_addtail(object_editcurve_get(ob), add_nurbs_primitive(C, ob, mat, CU_NURBS | CU_PRIM_PATH, 1));
if (!enter_editmode)
ED_object_exit_editmode(C, EM_FREEDATA);
}
else {
ob = ED_object_add_type(C, OB_EMPTY, loc, rot, FALSE, layer);
- rename_id(&ob->id, "Field");
+ if (!ob)
+ return OPERATOR_CANCELLED;
- switch (type) {
- case PFIELD_WIND:
- case PFIELD_VORTEX:
- ob->empty_drawtype = OB_SINGLE_ARROW;
- break;
- }
+ rename_id(&ob->id, "Field");
+ if (ELEM(type, PFIELD_WIND, PFIELD_VORTEX))
+ ob->empty_drawtype = OB_SINGLE_ARROW;
}
ob->pd = object_add_collision_fields(type);
DAG_scene_sort(CTX_data_main(C), CTX_data_scene(C));
- return ob;
-}
-
-/* for object add operator */
-static int effector_add_exec(bContext *C, wmOperator *op)
-{
- if (effector_add_type(C, op, RNA_enum_get(op->ptr, "type")) == NULL)
- return OPERATOR_CANCELLED;
-
return OPERATOR_FINISHED;
}
@@ -476,22 +469,20 @@ void OBJECT_OT_effector_add(wmOperatorType *ot)
ot->name = "Add Effector";
ot->description = "Add an empty object with a physics effector to the scene";
ot->idname = "OBJECT_OT_effector_add";
-
+
/* api callbacks */
- ot->invoke = WM_menu_invoke;
ot->exec = effector_add_exec;
-
ot->poll = ED_operator_objectmode;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
+
ot->prop = RNA_def_enum(ot->srna, "type", field_type_items, 0, "Type", "");
ED_object_add_generic_props(ot, TRUE);
}
-/* ***************** Add Camera *************** */
+/********************* Add Camera Operator ********************/
static int object_camera_add_exec(bContext *C, wmOperator *op)
{
@@ -501,17 +492,15 @@ static int object_camera_add_exec(bContext *C, wmOperator *op)
int enter_editmode;
unsigned int layer;
float loc[3], rot[3];
-
+
/* force view align for cameras */
RNA_boolean_set(op->ptr, "view_align", TRUE);
-
- object_add_generic_invoke_options(C, op);
if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL))
return OPERATOR_CANCELLED;
ob = ED_object_add_type(C, OB_CAMERA, loc, rot, FALSE, layer);
-
+
if (v3d) {
if (v3d->camera == NULL)
v3d->camera = ob;
@@ -526,81 +515,60 @@ static int object_camera_add_exec(bContext *C, wmOperator *op)
void OBJECT_OT_camera_add(wmOperatorType *ot)
{
PropertyRNA *prop;
-
+
/* identifiers */
ot->name = "Add Camera";
ot->description = "Add a camera object to the scene";
ot->idname = "OBJECT_OT_camera_add";
-
+
/* api callbacks */
ot->exec = object_camera_add_exec;
ot->poll = ED_operator_objectmode;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
+
ED_object_add_generic_props(ot, TRUE);
-
+
/* hide this for cameras, default */
prop = RNA_struct_type_find_property(ot->srna, "view_align");
RNA_def_property_flag(prop, PROP_HIDDEN);
-
}
-/* ***************** add primitives *************** */
+/********************* Add Metaball Operator ********************/
+
static int object_metaball_add_exec(bContext *C, wmOperator *op)
{
Object *obedit = CTX_data_edit_object(C);
- /*MetaElem *elem;*/ /*UNUSED*/
int newob = 0;
int enter_editmode;
unsigned int layer;
float loc[3], rot[3];
float mat[4][4];
-
- object_add_generic_invoke_options(C, op); // XXX these props don't get set right when only exec() is called
if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL))
return OPERATOR_CANCELLED;
-
+
if (obedit == NULL || obedit->type != OB_MBALL) {
obedit = ED_object_add_type(C, OB_MBALL, loc, rot, TRUE, layer);
newob = 1;
}
- else DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
-
+ else
+ DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
+
ED_object_new_primitive_matrix(C, obedit, loc, rot, mat);
-
- /* elem= (MetaElem *) */ add_metaball_primitive(C, mat, RNA_enum_get(op->ptr, "type"), newob);
+
+ add_metaball_primitive(C, obedit, mat, RNA_enum_get(op->ptr, "type"), newob);
/* userdef */
if (newob && !enter_editmode) {
ED_object_exit_editmode(C, EM_FREEDATA);
}
-
- WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, obedit);
-
- return OPERATOR_FINISHED;
-}
-static int object_metaball_add_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
-{
- Object *obedit = CTX_data_edit_object(C);
- uiPopupMenu *pup;
- uiLayout *layout;
-
- object_add_generic_invoke_options(C, op);
-
- pup = uiPupMenuBegin(C, op->type->name, ICON_NONE);
- layout = uiPupMenuLayout(pup);
- if (!obedit || obedit->type == OB_MBALL)
- uiItemsEnumO(layout, op->type->idname, "type");
- else
- uiItemsEnumO(layout, "OBJECT_OT_metaball_add", "type");
- uiPupMenuEnd(C, pup);
+ WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, obedit);
- return OPERATOR_CANCELLED;
+ return OPERATOR_FINISHED;
}
void OBJECT_OT_metaball_add(wmOperatorType *ot)
@@ -611,35 +579,37 @@ void OBJECT_OT_metaball_add(wmOperatorType *ot)
ot->idname = "OBJECT_OT_metaball_add";
/* api callbacks */
- ot->invoke = object_metaball_add_invoke;
+ ot->invoke = WM_menu_invoke;/* object_metaball_add_invoke; */
ot->exec = object_metaball_add_exec;
ot->poll = ED_operator_scene_editable;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- RNA_def_enum(ot->srna, "type", metaelem_type_items, 0, "Primitive", "");
+
+ ot->prop = RNA_def_enum(ot->srna, "type", metaelem_type_items, 0, "Primitive", "");
+
ED_object_add_generic_props(ot, TRUE);
}
+/********************* Add Text Operator ********************/
+
static int object_add_text_exec(bContext *C, wmOperator *op)
{
Object *obedit = CTX_data_edit_object(C);
int enter_editmode;
unsigned int layer;
float loc[3], rot[3];
-
- object_add_generic_invoke_options(C, op); // XXX these props don't get set right when only exec() is called
+
if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL))
return OPERATOR_CANCELLED;
-
+
if (obedit && obedit->type == OB_FONT)
return OPERATOR_CANCELLED;
obedit = ED_object_add_type(C, OB_FONT, loc, rot, enter_editmode, layer);
-
+
WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, obedit);
-
+
return OPERATOR_FINISHED;
}
@@ -649,17 +619,18 @@ void OBJECT_OT_text_add(wmOperatorType *ot)
ot->name = "Add Text";
ot->description = "Add a text object to the scene";
ot->idname = "OBJECT_OT_text_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = object_add_text_exec;
ot->poll = ED_operator_objectmode;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
ED_object_add_generic_props(ot, TRUE);
}
+/********************* Add Armature Operator ********************/
+
static int object_armature_add_exec(bContext *C, wmOperator *op)
{
Object *obedit = CTX_data_edit_object(C);
@@ -669,52 +640,91 @@ static int object_armature_add_exec(bContext *C, wmOperator *op)
int enter_editmode;
unsigned int layer;
float loc[3], rot[3];
-
- object_add_generic_invoke_options(C, op); // XXX these props don't get set right when only exec() is called
+
if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL))
return OPERATOR_CANCELLED;
-
+
if ((obedit == NULL) || (obedit->type != OB_ARMATURE)) {
obedit = ED_object_add_type(C, OB_ARMATURE, loc, rot, TRUE, layer);
ED_object_enter_editmode(C, 0);
newob = 1;
}
else DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
-
+
if (obedit == NULL) {
BKE_report(op->reports, RPT_ERROR, "Cannot create editmode armature");
return OPERATOR_CANCELLED;
}
-
+
/* v3d and rv3d are allowed to be NULL */
add_primitive_bone(CTX_data_scene(C), v3d, rv3d);
/* userdef */
if (newob && !enter_editmode)
ED_object_exit_editmode(C, EM_FREEDATA);
-
+
WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, obedit);
-
+
return OPERATOR_FINISHED;
}
void OBJECT_OT_armature_add(wmOperatorType *ot)
-{
+{
/* identifiers */
ot->name = "Add Armature";
ot->description = "Add an armature object to the scene";
ot->idname = "OBJECT_OT_armature_add";
-
+
/* api callbacks */
- ot->invoke = ED_object_add_generic_invoke;
ot->exec = object_armature_add_exec;
ot->poll = ED_operator_objectmode;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
ED_object_add_generic_props(ot, TRUE);
}
+/********************* Add Empty Operator ********************/
+
+static int object_empty_add_exec(bContext *C, wmOperator *op)
+{
+ Object *ob;
+ int type = RNA_enum_get(op->ptr, "type");
+ unsigned int layer;
+ float loc[3], rot[3];
+
+ if (!ED_object_add_generic_get_opts(C, op, loc, rot, NULL, &layer, NULL))
+ return OPERATOR_CANCELLED;
+
+ ob = ED_object_add_type(C, OB_EMPTY, loc, rot, FALSE, layer);
+ ob->empty_drawtype = type;
+
+ return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_empty_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Add Empty";
+ ot->description = "Add an empty object to the scene";
+ ot->idname = "OBJECT_OT_empty_add";
+
+ /* api callbacks */
+ ot->invoke = WM_menu_invoke;
+ ot->exec = object_empty_add_exec;
+ ot->poll = ED_operator_objectmode;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
+ ot->prop = RNA_def_enum(ot->srna, "type", object_empty_drawtype_items, 0, "Type", "");
+
+ ED_object_add_generic_props(ot, FALSE);
+}
+
+/********************* Add Lamp Operator ********************/
+
static const char *get_lamp_defname(int type)
{
switch (type) {
@@ -734,12 +744,10 @@ static int object_lamp_add_exec(bContext *C, wmOperator *op)
Object *ob;
Lamp *la;
int type = RNA_enum_get(op->ptr, "type");
- int enter_editmode;
unsigned int layer;
float loc[3], rot[3];
-
- object_add_generic_invoke_options(C, op);
- if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL))
+
+ if (!ED_object_add_generic_get_opts(C, op, loc, rot, NULL, &layer, NULL))
return OPERATOR_CANCELLED;
ob = ED_object_add_type(C, OB_LAMP, loc, rot, FALSE, layer);
@@ -753,7 +761,7 @@ static int object_lamp_add_exec(bContext *C, wmOperator *op)
ED_node_shader_default(scene, &la->id);
la->use_nodes = TRUE;
}
-
+
return OPERATOR_FINISHED;
}
@@ -763,12 +771,12 @@ void OBJECT_OT_lamp_add(wmOperatorType *ot)
ot->name = "Add Lamp";
ot->description = "Add a lamp object to the scene";
ot->idname = "OBJECT_OT_lamp_add";
-
+
/* api callbacks */
ot->invoke = WM_menu_invoke;
ot->exec = object_lamp_add_exec;
ot->poll = ED_operator_objectmode;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -778,16 +786,16 @@ void OBJECT_OT_lamp_add(wmOperatorType *ot)
ED_object_add_generic_props(ot, FALSE);
}
+/********************* Add Group Instance Operator ********************/
+
static int group_instance_add_exec(bContext *C, wmOperator *op)
{
Group *group = BLI_findlink(&CTX_data_main(C)->group, RNA_enum_get(op->ptr, "group"));
- int enter_editmode;
unsigned int layer;
float loc[3], rot[3];
-
- object_add_generic_invoke_options(C, op);
- if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL))
+
+ if (!ED_object_add_generic_get_opts(C, op, loc, rot, NULL, &layer, NULL))
return OPERATOR_CANCELLED;
if (group) {
@@ -810,20 +818,45 @@ static int group_instance_add_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
+/* only used as menu */
+void OBJECT_OT_group_instance_add(wmOperatorType *ot)
+{
+ PropertyRNA *prop;
+
+ /* identifiers */
+ ot->name = "Add Group Instance";
+ ot->description = "Add a dupligroup instance";
+ ot->idname = "OBJECT_OT_group_instance_add";
+
+ /* api callbacks */
+ ot->invoke = WM_enum_search_invoke;
+ ot->exec = group_instance_add_exec;
+ ot->poll = ED_operator_objectmode;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
+ prop = RNA_def_enum(ot->srna, "group", DummyRNA_NULL_items, 0, "Group", "");
+ RNA_def_enum_funcs(prop, RNA_group_itemf);
+ ot->prop = prop;
+ ED_object_add_generic_props(ot, FALSE);
+}
+
+/********************* Add Speaker Operator ********************/
+
static int object_speaker_add_exec(bContext *C, wmOperator *op)
{
Object *ob;
- int enter_editmode;
unsigned int layer;
float loc[3], rot[3];
Scene *scene = CTX_data_scene(C);
- object_add_generic_invoke_options(C, op);
- if (!ED_object_add_generic_get_opts(C, op, loc, rot, &enter_editmode, &layer, NULL))
+ if (!ED_object_add_generic_get_opts(C, op, loc, rot, NULL, &layer, NULL))
return OPERATOR_CANCELLED;
ob = ED_object_add_type(C, OB_SPEAKER, loc, rot, FALSE, layer);
-
+
/* to make it easier to start using this immediately in NLA, a default sound clip is created
* ready to be moved around to retime the sound and/or make new sound clips
*/
@@ -834,14 +867,14 @@ static int object_speaker_add_exec(bContext *C, wmOperator *op)
NlaStrip *strip = add_nla_soundstrip(CTX_data_scene(C), ob->data);
strip->start = CFRA;
strip->end += strip->start;
-
+
/* hook them up */
BKE_nlatrack_add_strip(nlt, strip);
-
+
/* auto-name the strip, and give the track an interesting name */
strcpy(nlt->name, "SoundTrack");
BKE_nlastrip_validate_name(adt, strip);
-
+
WM_event_add_notifier(C, NC_ANIMATION | ND_NLA | NA_EDITED, NULL);
}
@@ -865,40 +898,26 @@ void OBJECT_OT_speaker_add(wmOperatorType *ot)
ED_object_add_generic_props(ot, TRUE);
}
-/* only used as menu */
-void OBJECT_OT_group_instance_add(wmOperatorType *ot)
-{
- PropertyRNA *prop;
-
- /* identifiers */
- ot->name = "Add Group Instance";
- ot->description = "Add a dupligroup instance";
- ot->idname = "OBJECT_OT_group_instance_add";
-
- /* api callbacks */
- ot->invoke = WM_enum_search_invoke;
- ot->exec = group_instance_add_exec;
-
- ot->poll = ED_operator_objectmode;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+/**************************** Delete Object *************************/
- /* properties */
- prop = RNA_def_enum(ot->srna, "group", DummyRNA_NULL_items, 0, "Group", "");
- RNA_def_enum_funcs(prop, RNA_group_itemf);
- ot->prop = prop;
- ED_object_add_generic_props(ot, FALSE);
+static void object_delete_check_glsl_update(Object *ob)
+{
+ /* some objects could affect on GLSL shading, make sure GLSL settings
+ * are being tagged to be updated when object is removing from scene
+ */
+ if (ob->type == OB_LAMP) {
+ if (ob->gpulamp.first)
+ GPU_lamp_free(ob);
+ }
}
-/**************************** Delete Object *************************/
-
/* remove base from a specific scene */
/* note: now unlinks constraints as well */
void ED_base_object_free_and_unlink(Main *bmain, Scene *scene, Base *base)
{
DAG_id_type_tag(bmain, ID_OB);
BLI_remlink(&scene->base, base);
+ object_delete_check_glsl_update(base->object);
BKE_libblock_free_us(&bmain->object, base->object);
if (scene->basact == base) scene->basact = NULL;
MEM_freeN(base);
@@ -909,16 +928,12 @@ static int object_delete_exec(bContext *C, wmOperator *op)
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
const short use_global = RNA_boolean_get(op->ptr, "use_global");
- /* int is_lamp = FALSE; */ /* UNUSED */
-
+
if (CTX_data_edit_object(C))
return OPERATOR_CANCELLED;
-
+
CTX_DATA_BEGIN (C, Base *, base, selected_bases)
{
-
- /* if (base->object->type==OB_LAMP) is_lamp = TRUE; */
-
/* deselect object -- it could be used in other scenes */
base->object->flag &= ~SELECT;
@@ -945,10 +960,10 @@ static int object_delete_exec(bContext *C, wmOperator *op)
DAG_scene_sort(bmain, scene);
DAG_ids_flush_update(bmain, 0);
-
+
WM_event_add_notifier(C, NC_SCENE | ND_OB_ACTIVE, scene);
WM_event_add_notifier(C, NC_SCENE | ND_LAYER_CONTENT, scene);
-
+
return OPERATOR_FINISHED;
}
@@ -958,12 +973,12 @@ void OBJECT_OT_delete(wmOperatorType *ot)
ot->name = "Delete";
ot->description = "Delete selected objects";
ot->idname = "OBJECT_OT_delete";
-
+
/* api callbacks */
ot->invoke = WM_operator_confirm;
ot->exec = object_delete_exec;
ot->poll = ED_operator_objectmode;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -979,29 +994,29 @@ static void copy_object_set_idnew(bContext *C, int dupflag)
Material *ma, *mao;
ID *id;
int a;
-
+
/* XXX check object pointers */
CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects)
{
BKE_object_relink(ob);
}
CTX_DATA_END;
-
+
/* materials */
if (dupflag & USER_DUP_MAT) {
mao = bmain->mat.first;
while (mao) {
if (mao->id.newid) {
-
ma = (Material *)mao->id.newid;
-
+
if (dupflag & USER_DUP_TEX) {
for (a = 0; a < MAX_MTEX; a++) {
if (ma->mtex[a]) {
id = (ID *)ma->mtex[a]->tex;
if (id) {
ID_NEW_US(ma->mtex[a]->tex)
- else ma->mtex[a]->tex = BKE_texture_copy(ma->mtex[a]->tex);
+ else
+ ma->mtex[a]->tex = BKE_texture_copy(ma->mtex[a]->tex);
id->us--;
}
}
@@ -1011,7 +1026,8 @@ static void copy_object_set_idnew(bContext *C, int dupflag)
id = (ID *)ma->ipo;
if (id) {
ID_NEW_US(ma->ipo)
- else ma->ipo = copy_ipo(ma->ipo);
+ else
+ ma->ipo = copy_ipo(ma->ipo);
id->us--;
}
#endif // XXX old animation system
@@ -1019,7 +1035,7 @@ static void copy_object_set_idnew(bContext *C, int dupflag)
mao = mao->id.next;
}
}
-
+
#if 0 // XXX old animation system
/* lamps */
if (dupflag & USER_DUP_IPO) {
@@ -1030,14 +1046,15 @@ static void copy_object_set_idnew(bContext *C, int dupflag)
id = (ID *)lan->ipo;
if (id) {
ID_NEW_US(lan->ipo)
- else lan->ipo = copy_ipo(lan->ipo);
+ else
+ lan->ipo = copy_ipo(lan->ipo);
id->us--;
}
}
la = la->id.next;
}
}
-
+
/* ipos */
ipo = bmain->ipo.first;
while (ipo) {
@@ -1053,9 +1070,9 @@ static void copy_object_set_idnew(bContext *C, int dupflag)
ipo = ipo->id.next;
}
#endif // XXX old animation system
-
+
set_sca_new_poins();
-
+
clear_id_newpoins();
}
@@ -1068,17 +1085,17 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base,
ListBase *lb;
DupliObject *dob;
GHash *dupli_gh = NULL, *parent_gh = NULL;
-
+
if (!(base->object->transflag & OB_DUPLI))
return;
-
- lb = object_duplilist(scene, base->object);
+
+ lb = object_duplilist(scene, base->object, FALSE);
if (use_hierarchy || use_base_parent) {
dupli_gh = BLI_ghash_ptr_new("make_object_duplilist_real dupli_gh");
parent_gh = BLI_ghash_pair_new("make_object_duplilist_real parent_gh");
}
-
+
for (dob = lb->first; dob; dob = dob->next) {
Base *basen;
Object *ob = BKE_object_copy(dob->ob);
@@ -1086,24 +1103,24 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base,
* should be implemented better...
*/
if (ob->mat == NULL) ob->totcol = 0;
-
+
basen = MEM_dupallocN(base);
basen->flag &= ~(OB_FROMDUPLI | OB_FROMGROUP);
ob->flag = basen->flag;
basen->lay = base->lay;
BLI_addhead(&scene->base, basen); /* addhead: othwise eternal loop */
basen->object = ob;
-
+
/* make sure apply works */
BKE_free_animdata(&ob->id);
ob->adt = NULL;
-
+
ob->parent = NULL;
ob->constraints.first = ob->constraints.last = NULL;
ob->disp.first = ob->disp.last = NULL;
ob->transflag &= ~OB_DUPLI;
ob->lay = base->lay;
-
+
copy_m4_m4(ob->obmat, dob->mat);
BKE_object_apply_mat4(ob, ob->obmat, FALSE, FALSE);
@@ -1112,7 +1129,7 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base,
if (parent_gh)
BLI_ghash_insert(parent_gh, BLI_ghashutil_pairalloc(dob->ob, SET_INT_IN_POINTER(dob->index)), ob);
}
-
+
if (use_hierarchy) {
for (dob = lb->first; dob; dob = dob->next) {
/* original parents */
@@ -1172,8 +1189,6 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base,
invert_m4_m4(ob_dst->parentinv, dob->mat);
BKE_object_apply_mat4(ob_dst, dob->mat, FALSE, TRUE);
DAG_id_tag_update(&ob_dst->id, OB_RECALC_OB);
-
-
}
}
@@ -1183,9 +1198,9 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base,
BLI_ghash_free(parent_gh, BLI_ghashutil_pairfree, NULL);
copy_object_set_idnew(C, 0);
-
+
free_object_duplilist(lb);
-
+
base->object->transflag &= ~OB_DUPLI;
}
@@ -1196,9 +1211,9 @@ static int object_duplicates_make_real_exec(bContext *C, wmOperator *op)
const short use_base_parent = RNA_boolean_get(op->ptr, "use_base_parent");
const short use_hierarchy = RNA_boolean_get(op->ptr, "use_hierarchy");
-
+
clear_id_newpoins();
-
+
CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases)
{
make_object_duplilist_real(C, scene, base, use_base_parent, use_hierarchy);
@@ -1212,23 +1227,22 @@ static int object_duplicates_make_real_exec(bContext *C, wmOperator *op)
DAG_ids_flush_update(bmain, 0);
WM_event_add_notifier(C, NC_SCENE, scene);
WM_main_add_notifier(NC_OBJECT | ND_DRAW, NULL);
-
+
return OPERATOR_FINISHED;
}
void OBJECT_OT_duplicates_make_real(wmOperatorType *ot)
{
-
/* identifiers */
ot->name = "Make Duplicates Real";
ot->description = "Make dupli objects attached to this object real";
ot->idname = "OBJECT_OT_duplicates_make_real";
-
+
/* api callbacks */
ot->exec = object_duplicates_make_real_exec;
-
+
ot->poll = ED_operator_objectmode;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1602,12 +1616,12 @@ void OBJECT_OT_convert(wmOperatorType *ot)
ot->name = "Convert to";
ot->description = "Convert selected objects to another type";
ot->idname = "OBJECT_OT_convert";
-
+
/* api callbacks */
ot->invoke = WM_menu_invoke;
ot->exec = convert_exec;
ot->poll = convert_poll;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1641,12 +1655,12 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
else {
obn = BKE_object_copy(ob);
obn->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME;
-
+
basen = MEM_mallocN(sizeof(Base), "duplibase");
*basen = *base;
BLI_addhead(&scene->base, basen); /* addhead: prevent eternal loop */
basen->object = obn;
-
+
if (basen->flag & OB_FROMGROUP) {
Group *group;
for (group = bmain->group.first; group; group = group->id.next) {
@@ -1654,20 +1668,21 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
add_to_group(group, obn, scene, basen);
}
}
-
+
/* duplicates using userflags */
if (dupflag & USER_DUP_ACT) {
BKE_copy_animdata_id_action(&obn->id);
}
-
+
if (dupflag & USER_DUP_MAT) {
for (a = 0; a < obn->totcol; a++) {
id = (ID *)obn->mat[a];
if (id) {
ID_NEW_US(obn->mat[a])
- else obn->mat[a] = BKE_material_copy(obn->mat[a]);
+ else
+ obn->mat[a] = BKE_material_copy(obn->mat[a]);
id->us--;
-
+
if (dupflag & USER_DUP_ACT) {
BKE_copy_animdata_id_action(&obn->mat[a]->id);
}
@@ -1680,8 +1695,9 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
id = (ID *) psys->part;
if (id) {
ID_NEW_US(psys->part)
- else psys->part = BKE_particlesettings_copy(psys->part);
-
+ else
+ psys->part = BKE_particlesettings_copy(psys->part);
+
if (dupflag & USER_DUP_ACT) {
BKE_copy_animdata_id_action(&psys->part->id);
}
@@ -1690,21 +1706,19 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
}
}
}
-
+
id = obn->data;
didit = 0;
-
+
switch (obn->type) {
case OB_MESH:
if (dupflag & USER_DUP_MESH) {
ID_NEW_US2(obn->data)
else {
obn->data = BKE_mesh_copy(obn->data);
-
if (obn->fluidsimSettings) {
obn->fluidsimSettings->orgMesh = (Mesh *)obn->data;
}
-
didit = 1;
}
id->us--;
@@ -1760,11 +1774,10 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
id->us--;
}
break;
-
case OB_ARMATURE:
obn->recalc |= OB_RECALC_DATA;
- if (obn->pose) obn->pose->flag |= POSE_RECALC;
-
+ if (obn->pose)
+ obn->pose->flag |= POSE_RECALC;
if (dupflag & USER_DUP_ARM) {
ID_NEW_US2(obn->data)
else {
@@ -1774,9 +1787,7 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
}
id->us--;
}
-
break;
-
case OB_LATTICE:
if (dupflag != 0) {
ID_NEW_US2(obn->data)
@@ -1807,13 +1818,12 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
id->us--;
}
break;
-
}
/* check if obdata is copied */
if (didit) {
- Key *key = ob_get_key(obn);
-
+ Key *key = BKE_key_from_object(obn);
+
if (dupflag & USER_DUP_ACT) {
bActuator *act;
@@ -1832,7 +1842,7 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
}
}
}
-
+
if (dupflag & USER_DUP_MAT) {
matarar = give_matarar(obn);
if (matarar) {
@@ -1840,8 +1850,8 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
id = (ID *)(*matarar)[a];
if (id) {
ID_NEW_US((*matarar)[a])
- else (*matarar)[a] = BKE_material_copy((*matarar)[a]);
-
+ else
+ (*matarar)[a] = BKE_material_copy((*matarar)[a]);
id->us--;
}
}
@@ -1854,7 +1864,9 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
/* single object duplicate, if dupflag==0, fully linked, else it uses the flags given */
/* leaves selection of base/object unaltered.
- * note: don't call this within a loop since clear_* funcs loop over the entire database. */
+ * note: don't call this within a loop since clear_* funcs loop over the entire database.
+ * note: caller must do DAG_scene_sort(bmain, scene);
+ * this is not done automatic since we may duplicate many objects in a batch */
Base *ED_object_add_duplicate(Main *bmain, Scene *scene, Base *base, int dupflag)
{
Base *basen;
@@ -1874,7 +1886,8 @@ Base *ED_object_add_duplicate(Main *bmain, Scene *scene, Base *base, int dupflag
BKE_object_relink(ob);
set_sca_new_poins_ob(ob);
- DAG_scene_sort(bmain, scene);
+ /* DAG_scene_sort(bmain, scene); */ /* caller must do */
+
if (ob->data) {
ED_render_id_flush_update(bmain, ob->data);
}
@@ -1889,14 +1902,14 @@ static int duplicate_exec(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
int linked = RNA_boolean_get(op->ptr, "linked");
int dupflag = (linked) ? 0 : U.dupflag;
-
+
clear_id_newpoins();
clear_sca_new_poins(); /* sensor/contr/act */
-
+
CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases)
{
Base *basen = object_add_duplicate_internal(bmain, scene, base, dupflag);
-
+
/* note that this is safe to do with this context iterator,
* the list is made in advance */
ED_base_object_select(base, BA_DESELECT);
@@ -1928,19 +1941,19 @@ static int duplicate_exec(bContext *C, wmOperator *op)
void OBJECT_OT_duplicate(wmOperatorType *ot)
{
PropertyRNA *prop;
-
+
/* identifiers */
ot->name = "Duplicate Objects";
ot->description = "Duplicate selected objects";
ot->idname = "OBJECT_OT_duplicate";
-
+
/* api callbacks */
ot->exec = duplicate_exec;
ot->poll = ED_operator_objectmode;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
+
/* to give to transform */
RNA_def_boolean(ot->srna, "linked", 0, "Linked", "Duplicate object but not object data, linking to the original data");
prop = RNA_def_enum(ot->srna, "mode", transform_mode_types, TFM_TRANSLATION, "Mode", "");
@@ -1949,7 +1962,6 @@ void OBJECT_OT_duplicate(wmOperatorType *ot)
/* **************** add named object, for dragdrop ************* */
-
static int add_named_exec(bContext *C, wmOperator *op)
{
Main *bmain = CTX_data_main(C);
@@ -2004,34 +2016,32 @@ void OBJECT_OT_add_named(wmOperatorType *ot)
ot->name = "Add Named Object";
ot->description = "Add named object";
ot->idname = "OBJECT_OT_add_named";
-
+
/* api callbacks */
ot->exec = add_named_exec;
ot->poll = ED_operator_objectmode;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
+
RNA_def_boolean(ot->srna, "linked", 0, "Linked", "Duplicate object but not object data, linking to the original data");
RNA_def_string(ot->srna, "name", "Cube", MAX_ID_NAME - 2, "Name", "Object name to add");
}
-
-
/**************************** Join *************************/
+
static int join_poll(bContext *C)
{
Object *ob = CTX_data_active_object(C);
-
+
if (!ob || ob->id.lib) return 0;
-
+
if (ELEM4(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_ARMATURE))
return ED_operator_screenactive(C);
else
return 0;
}
-
static int join_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
@@ -2052,7 +2062,7 @@ static int join_exec(bContext *C, wmOperator *op)
return join_curve_exec(C, op);
else if (ob->type == OB_ARMATURE)
return join_armature_exec(C, op);
-
+
return OPERATOR_CANCELLED;
}
@@ -2062,22 +2072,23 @@ void OBJECT_OT_join(wmOperatorType *ot)
ot->name = "Join";
ot->description = "Join selected objects into active object";
ot->idname = "OBJECT_OT_join";
-
+
/* api callbacks */
ot->exec = join_exec;
ot->poll = join_poll;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
/**************************** Join as Shape Key*************************/
+
static int join_shapes_poll(bContext *C)
{
Object *ob = CTX_data_active_object(C);
-
+
if (!ob || ob->id.lib) return 0;
-
+
/* only meshes supported at the moment */
if (ob->type == OB_MESH)
return ED_operator_screenactive(C);
@@ -2089,7 +2100,7 @@ static int join_shapes_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
Object *ob = CTX_data_active_object(C);
-
+
if (scene->obedit) {
BKE_report(op->reports, RPT_ERROR, "This data does not support joining in editmode");
return OPERATOR_CANCELLED;
@@ -2098,10 +2109,10 @@ static int join_shapes_exec(bContext *C, wmOperator *op)
BKE_report(op->reports, RPT_ERROR, "Can't edit external libdata");
return OPERATOR_CANCELLED;
}
-
+
if (ob->type == OB_MESH)
return join_mesh_shapes_exec(C, op);
-
+
return OPERATOR_CANCELLED;
}
@@ -2111,11 +2122,11 @@ void OBJECT_OT_join_shapes(wmOperatorType *ot)
ot->name = "Join as Shapes";
ot->description = "Merge selected objects to shapes of active object";
ot->idname = "OBJECT_OT_join_shapes";
-
+
/* api callbacks */
ot->exec = join_shapes_exec;
ot->poll = join_shapes_poll;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c
index e1c715952d1..6d124377821 100644
--- a/source/blender/editors/object/object_bake.c
+++ b/source/blender/editors/object/object_bake.c
@@ -69,6 +69,7 @@
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
+#include "IMB_colormanagement.h"
#include "GPU_draw.h" /* GPU_free_image */
@@ -358,7 +359,7 @@ static int multiresbake_test_break(MultiresBakeRender *bkr)
return 0;
}
- return G.afbreek;
+ return G.is_break;
}
static void do_multires_bake(MultiresBakeRender *bkr, Image *ima, MPassKnownData passKnownData,
@@ -685,7 +686,7 @@ static void apply_heights_data(void *bake_data)
}
}
- ibuf->userflags = IB_RECT_INVALID;
+ ibuf->userflags = IB_RECT_INVALID | IB_DISPLAY_BUFFER_INVALID;
}
static void free_heights_data(void *bake_data)
@@ -769,6 +770,8 @@ static void apply_heights_callback(DerivedMesh *lores_dm, DerivedMesh *hires_dm,
char *rrgb = (char *)ibuf->rect + pixel * 4;
rrgb[3] = 255;
}
+
+ ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
}
/* MultiresBake callback for normals' baking
@@ -826,6 +829,8 @@ static void apply_tangmat_callback(DerivedMesh *lores_dm, DerivedMesh *hires_dm,
rgb_float_to_uchar(rrgb, vec);
rrgb[3] = 255;
}
+
+ ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
}
static void count_images(MultiresBakeRender *bkr)
@@ -895,7 +900,7 @@ static void finish_images(MultiresBakeRender *bkr)
RE_bake_ibuf_filter(ibuf, (char *)ibuf->userdata, bkr->bake_filter);
- ibuf->userflags |= IB_BITMAPDIRTY;
+ ibuf->userflags |= IB_BITMAPDIRTY | IB_DISPLAY_BUFFER_INVALID;;
if (ibuf->rect_float)
ibuf->userflags |= IB_RECT_INVALID;
@@ -1026,7 +1031,7 @@ static DerivedMesh *multiresbake_create_loresdm(Scene *scene, Object *ob, int *l
tmp_mmd.lvl = *lvl;
tmp_mmd.sculptlvl = *lvl;
dm = multires_make_derived_from_derived(cddm, &tmp_mmd, ob,
- MULTIRES_USE_LOCAL_MMD);
+ 0);
cddm->release(cddm);
}
@@ -1047,7 +1052,7 @@ static DerivedMesh *multiresbake_create_hiresdm(Scene *scene, Object *ob, int *l
tmp_mmd.lvl = mmd->totlvl;
tmp_mmd.sculptlvl = mmd->totlvl;
dm = multires_make_derived_from_derived(cddm, &tmp_mmd, ob,
- MULTIRES_USE_LOCAL_MMD);
+ 0);
cddm->release(cddm);
return dm;
@@ -1241,7 +1246,7 @@ static int multiresbake_image_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
MultiresBakeJob *bkr;
- wmJob *steve;
+ wmJob *wm_job;
if (!multiresbake_check(C, op))
return OPERATOR_CANCELLED;
@@ -1255,14 +1260,15 @@ static int multiresbake_image_exec(bContext *C, wmOperator *op)
}
/* setup job */
- steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Multires Bake", WM_JOB_EXCL_RENDER | WM_JOB_PRIORITY | WM_JOB_PROGRESS);
- WM_jobs_customdata(steve, bkr, multiresbake_freejob);
- WM_jobs_timer(steve, 0.2, NC_IMAGE, 0); /* TODO - only draw bake image, can we enforce this */
- WM_jobs_callbacks(steve, multiresbake_startjob, NULL, NULL, NULL);
+ wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Multires Bake",
+ WM_JOB_EXCL_RENDER | WM_JOB_PRIORITY | WM_JOB_PROGRESS, WM_JOB_TYPE_OBJECT_BAKE_TEXTURE);
+ WM_jobs_customdata_set(wm_job, bkr, multiresbake_freejob);
+ WM_jobs_timer(wm_job, 0.2, NC_IMAGE, 0); /* TODO - only draw bake image, can we enforce this */
+ WM_jobs_callbacks(wm_job, multiresbake_startjob, NULL, NULL, NULL);
- G.afbreek = 0;
+ G.is_break = FALSE;
- WM_jobs_start(CTX_wm_manager(C), steve);
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
WM_cursor_wait(0);
/* add modal handler for ESC */
@@ -1276,7 +1282,7 @@ static int multiresbake_image_exec(bContext *C, wmOperator *op)
/* threaded break test */
static int thread_break(void *UNUSED(arg))
{
- return G.afbreek;
+ return G.is_break;
}
typedef struct BakeRender {
@@ -1323,11 +1329,12 @@ static int test_bake_internal(bContext *C, ReportList *reports)
static void init_bake_internal(BakeRender *bkr, bContext *C)
{
Scene *scene = CTX_data_scene(C);
+ bScreen *sc = CTX_wm_screen(C);
/* get editmode results */
ED_object_exit_editmode(C, 0); /* 0 = does not exit editmode */
- bkr->sa = BKE_screen_find_big_area(CTX_wm_screen(C), SPACE_IMAGE, 10); /* can be NULL */
+ bkr->sa = sc ? BKE_screen_find_big_area(sc, SPACE_IMAGE, 10) : NULL; /* can be NULL */
bkr->main = CTX_data_main(C);
bkr->scene = scene;
bkr->actob = (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL;
@@ -1346,6 +1353,8 @@ static void init_bake_internal(BakeRender *bkr, bContext *C)
static void finish_bake_internal(BakeRender *bkr)
{
+ Image *ima;
+
RE_Database_Free(bkr->re);
/* restore raytrace and AO */
@@ -1357,26 +1366,30 @@ static void finish_bake_internal(BakeRender *bkr)
if (bkr->prev_r_raytrace == 0)
bkr->scene->r.mode &= ~R_RAYTRACE;
- if (bkr->result == BAKE_RESULT_OK) {
- Image *ima;
- /* force OpenGL reload and mipmap recalc */
- for (ima = G.main->image.first; ima; ima = ima->id.next) {
+
+ /* force OpenGL reload and mipmap recalc */
+ for (ima = G.main->image.first; ima; ima = ima->id.next) {
+ ImBuf *ibuf = BKE_image_get_ibuf(ima, NULL);
+
+ if (bkr->result == BAKE_RESULT_OK) {
if (ima->ok == IMA_OK_LOADED) {
- ImBuf *ibuf = BKE_image_get_ibuf(ima, NULL);
if (ibuf) {
if (ibuf->userflags & IB_BITMAPDIRTY) {
+ ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
GPU_free_image(ima);
imb_freemipmapImBuf(ibuf);
}
-
- /* freed when baking is done, but if its canceled we need to free here */
- if (ibuf->userdata) {
- MEM_freeN(ibuf->userdata);
- ibuf->userdata = NULL;
- }
}
}
}
+
+ /* freed when baking is done, but if its canceled we need to free here */
+ if (ibuf) {
+ if (ibuf->userdata) {
+ MEM_freeN(ibuf->userdata);
+ ibuf->userdata = NULL;
+ }
+ }
}
}
@@ -1401,7 +1414,7 @@ static void bake_startjob(void *bkv, short *stop, short *do_update, float *progr
bkr->progress = progress;
RE_test_break_cb(bkr->re, NULL, thread_break);
- G.afbreek = 0; /* blender_test_break uses this global */
+ G.is_break = FALSE; /* blender_test_break uses this global */
RE_Database_Baking(bkr->re, bmain, scene, scene->lay, scene->r.bake_mode, bkr->actob);
@@ -1431,14 +1444,14 @@ static void bake_freejob(void *bkv)
BKE_report(bkr->reports, RPT_WARNING, "Feedback loop detected");
MEM_freeN(bkr);
- G.rendering = 0;
+ G.is_rendering = FALSE;
}
/* catch esc */
static int objects_bake_render_modal(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
/* no running blender, remove handler and pass through */
- if (0 == WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C)))
+ if (0 == WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C), WM_JOB_TYPE_OBJECT_BAKE_TEXTURE))
return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH;
/* running render */
@@ -1468,7 +1481,7 @@ static int objects_bake_render_invoke(bContext *C, wmOperator *op, wmEvent *UNUS
}
else {
/* only one render job at a time */
- if (WM_jobs_test(CTX_wm_manager(C), scene))
+ if (WM_jobs_test(CTX_wm_manager(C), scene, WM_JOB_TYPE_OBJECT_BAKE_TEXTURE))
return OPERATOR_CANCELLED;
if (test_bake_internal(C, op->reports) == 0) {
@@ -1476,21 +1489,22 @@ static int objects_bake_render_invoke(bContext *C, wmOperator *op, wmEvent *UNUS
}
else {
BakeRender *bkr = MEM_callocN(sizeof(BakeRender), "render bake");
- wmJob *steve;
+ wmJob *wm_job;
init_bake_internal(bkr, C);
bkr->reports = op->reports;
/* setup job */
- steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Texture Bake", WM_JOB_EXCL_RENDER | WM_JOB_PRIORITY | WM_JOB_PROGRESS);
- WM_jobs_customdata(steve, bkr, bake_freejob);
- WM_jobs_timer(steve, 0.2, NC_IMAGE, 0); /* TODO - only draw bake image, can we enforce this */
- WM_jobs_callbacks(steve, bake_startjob, NULL, bake_update, NULL);
+ wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Texture Bake",
+ WM_JOB_EXCL_RENDER | WM_JOB_PRIORITY | WM_JOB_PROGRESS, WM_JOB_TYPE_OBJECT_BAKE_TEXTURE);
+ WM_jobs_customdata_set(wm_job, bkr, bake_freejob);
+ WM_jobs_timer(wm_job, 0.2, NC_IMAGE, 0); /* TODO - only draw bake image, can we enforce this */
+ WM_jobs_callbacks(wm_job, bake_startjob, NULL, bake_update, NULL);
- G.afbreek = 0;
- G.rendering = 1;
+ G.is_break = FALSE;
+ G.is_rendering = TRUE;
- WM_jobs_start(CTX_wm_manager(C), steve);
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
WM_cursor_wait(0);
@@ -1528,7 +1542,7 @@ static int bake_image_exec(bContext *C, wmOperator *op)
bkr.reports = op->reports;
RE_test_break_cb(bkr.re, NULL, thread_break);
- G.afbreek = 0; /* blender_test_break uses this global */
+ G.is_break = FALSE; /* blender_test_break uses this global */
RE_Database_Baking(bkr.re, bmain, scene, scene->lay, scene->r.bake_mode, (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL);
diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c
index a38c69fba8a..56f2426b1b0 100644
--- a/source/blender/editors/object/object_constraint.c
+++ b/source/blender/editors/object/object_constraint.c
@@ -40,6 +40,7 @@
#include "BLI_dynstr.h"
#include "BLI_utildefines.h"
+#include "DNA_anim_types.h"
#include "DNA_constraint_types.h"
#include "DNA_curve_types.h"
#include "DNA_scene_types.h"
@@ -51,6 +52,7 @@
#include "BKE_constraint.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
+#include "BKE_fcurve.h"
#include "BKE_global.h"
#include "BKE_main.h"
#include "BKE_object.h"
@@ -71,6 +73,7 @@
#include "ED_object.h"
#include "ED_armature.h"
+#include "ED_keyframing.h"
#include "ED_screen.h"
#include "UI_interface.h"
@@ -462,7 +465,7 @@ static void test_constraints(Object *owner, bPoseChannel *pchan)
if (type == CONSTRAINT_OBTYPE_BONE) {
if (!BKE_armature_find_bone_name(BKE_armature_from_object(owner), ct->subtarget)) {
/* bone must exist in armature... */
- // TODO: clear subtarget?
+ /* TODO: clear subtarget? */
curcon->flag |= CONSTRAINT_DISABLE;
}
else if (strcmp(pchan->name, ct->subtarget) == 0) {
@@ -655,12 +658,15 @@ void CONSTRAINT_OT_stretchto_reset(wmOperatorType *ot)
ot->idname = "CONSTRAINT_OT_stretchto_reset";
ot->description = "Reset original length of bone for Stretch To Constraint";
- ot->exec = stretchto_reset_exec;
+ /* callbacks */
ot->invoke = stretchto_reset_invoke;
+ ot->exec = stretchto_reset_exec;
ot->poll = edit_constraint_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
edit_constraint_properties(ot);
}
@@ -698,12 +704,15 @@ void CONSTRAINT_OT_limitdistance_reset(wmOperatorType *ot)
ot->idname = "CONSTRAINT_OT_limitdistance_reset";
ot->description = "Reset limiting distance for Limit Distance Constraint";
- ot->exec = limitdistance_reset_exec;
+ /* callbacks */
ot->invoke = limitdistance_reset_invoke;
+ ot->exec = limitdistance_reset_exec;
ot->poll = edit_constraint_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
edit_constraint_properties(ot);
}
@@ -718,7 +727,7 @@ static void child_get_inverse_matrix(Scene *scene, Object *ob, bConstraint *con,
unit_m4(invmat);
/* try to find a pose channel - assume that this is the constraint owner */
- // TODO: get from context instead?
+ /* TODO: get from context instead? */
if (ob && ob->pose)
pchan = BKE_pose_channel_active(ob);
@@ -824,12 +833,15 @@ void CONSTRAINT_OT_childof_set_inverse(wmOperatorType *ot)
ot->idname = "CONSTRAINT_OT_childof_set_inverse";
ot->description = "Set inverse correction for ChildOf constraint";
- ot->exec = childof_set_inverse_exec;
+ /* callbacks */
ot->invoke = childof_set_inverse_invoke;
+ ot->exec = childof_set_inverse_exec;
ot->poll = edit_constraint_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
edit_constraint_properties(ot);
}
@@ -868,13 +880,140 @@ void CONSTRAINT_OT_childof_clear_inverse(wmOperatorType *ot)
ot->idname = "CONSTRAINT_OT_childof_clear_inverse";
ot->description = "Clear inverse correction for ChildOf constraint";
- ot->exec = childof_clear_inverse_exec;
+ /* callbacks */
ot->invoke = childof_clear_inverse_invoke;
+ ot->exec = childof_clear_inverse_exec;
+ ot->poll = edit_constraint_poll;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
+ edit_constraint_properties(ot);
+}
+
+/* --------------- Follow Path Constraint ------------------ */
+
+static int followpath_path_animate_exec(bContext *C, wmOperator *op)
+{
+ Object *ob = ED_object_active_context(C);
+ bConstraint *con = edit_constraint_property_get(op, ob, CONSTRAINT_TYPE_FOLLOWPATH);
+ bFollowPathConstraint *data = (con) ? (bFollowPathConstraint *)con->data : NULL;
+
+ bAction *act = NULL;
+ FCurve *fcu = NULL;
+ int sfra = RNA_int_get(op->ptr, "frame_start");
+ int len = RNA_int_get(op->ptr, "length");
+ float standardRange = 1.0;
+
+ /* nearly impossible sanity check */
+ if (data == NULL) {
+ BKE_report(op->reports, RPT_ERROR, "Follow Path constraint not found");
+ return OPERATOR_CANCELLED;
+ }
+
+ /* add F-Curve as appropriate */
+ if (data->tar) {
+ Curve *cu = (Curve *)data->tar->data;
+
+ if ( ELEM(NULL, cu->adt, cu->adt->action) ||
+ (list_find_fcurve(&cu->adt->action->curves, "eval_time", 0) == NULL))
+ {
+ /* create F-Curve for path animation */
+ act = verify_adt_action(&cu->id, 1);
+ fcu = verify_fcurve(act, NULL, NULL, "eval_time", 0, 1);
+
+ /* standard vertical range - 1:1 = 100 frames */
+ standardRange = 100.0f;
+ }
+ else {
+ /* path anim exists already - abort for now as this may well be what was intended */
+ BKE_report(op->reports, RPT_WARNING, "Path is already animated");
+ return OPERATOR_CANCELLED;
+ }
+ }
+ else {
+ /* animate constraint's "fixed offset" */
+ PointerRNA ptr;
+ PropertyRNA *prop;
+ char *path;
+
+ /* get RNA pointer to constraint's "offset_factor" property - to build RNA path */
+ RNA_pointer_create(&ob->id, &RNA_FollowPathConstraint, con, &ptr);
+ prop = RNA_struct_find_property(&ptr, "offset_factor");
+
+ path = RNA_path_from_ID_to_property(&ptr, prop);
+
+ /* create F-Curve for constraint */
+ act = verify_adt_action(&ob->id, 1);
+ fcu = verify_fcurve(act, NULL, NULL, path, 0, 1);
+
+ /* standard vertical range - 0.0 to 1.0 */
+ standardRange = 1.0f;
+
+ /* enable "Use Fixed Position" so that animating this has effect */
+ data->followflag |= FOLLOWPATH_STATIC;
+
+ /* path needs to be freed */
+ if (path)
+ MEM_freeN(path);
+ }
+
+ /* setup dummy 'generator' modifier here to get 1-1 correspondence still working
+ * and define basic slope of this curve based on the properties
+ */
+ if (!fcu->bezt && !fcu->fpt && !fcu->modifiers.first) {
+ FModifier *fcm = add_fmodifier(&fcu->modifiers, FMODIFIER_TYPE_GENERATOR);
+ FMod_Generator *gen = fcm->data;
+
+ /* Assume that we have the following equation:
+ * y = Ax + B
+ * 1 0 <-- coefficients array indices
+ */
+ float A = standardRange / (float)(len);
+ float B = (float)(-sfra) * A;
+
+ gen->coefficients[1] = A;
+ gen->coefficients[0] = B;
+ }
+
+ /* updates... */
+ WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT, ob);
+ return OPERATOR_FINISHED;
+}
+
+static int followpath_path_animate_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
+{
+ /* hook up invoke properties for figuring out which constraint we're dealing with */
+ if (edit_constraint_invoke_properties(C, op)) {
+ return followpath_path_animate_exec(C, op);
+ }
+ else {
+ return OPERATOR_CANCELLED;
+ }
+}
+
+void CONSTRAINT_OT_followpath_path_animate(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Auto Animate Path";
+ ot->idname = "CONSTRAINT_OT_followpath_path_animate";
+ ot->description = "Add default animation for path used by constraint if it isn't animated already";
+
+ /* callbacks */
+ ot->invoke = followpath_path_animate_invoke;
+ ot->exec = followpath_path_animate_exec;
ot->poll = edit_constraint_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* props */
edit_constraint_properties(ot);
+ RNA_def_int(ot->srna, "frame_start", 1, MINAFRAME, MAXFRAME, "Start Frame",
+ "First frame of path animation", MINAFRAME, MAXFRAME);
+ RNA_def_int(ot->srna, "length", 100, 0, MAXFRAME, "Length",
+ "Number of frames that path animation should take", 0, MAXFRAME);
}
/* ------------- Object Solver Constraint ------------------ */
@@ -914,13 +1053,16 @@ void CONSTRAINT_OT_objectsolver_set_inverse(wmOperatorType *ot)
ot->name = "Set Inverse";
ot->idname = "CONSTRAINT_OT_objectsolver_set_inverse";
ot->description = "Set inverse correction for ObjectSolver constraint";
-
- ot->exec = objectsolver_set_inverse_exec;
+
+ /* callbacks */
ot->invoke = objectsolver_set_inverse_invoke;
+ ot->exec = objectsolver_set_inverse_exec;
ot->poll = edit_constraint_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
edit_constraint_properties(ot);
}
@@ -957,13 +1099,16 @@ void CONSTRAINT_OT_objectsolver_clear_inverse(wmOperatorType *ot)
ot->name = "Clear Inverse";
ot->idname = "CONSTRAINT_OT_objectsolver_clear_inverse";
ot->description = "Clear inverse correction for ObjectSolver constraint";
-
- ot->exec = objectsolver_clear_inverse_exec;
+
+ /* callbacks */
ot->invoke = objectsolver_clear_inverse_invoke;
+ ot->exec = objectsolver_clear_inverse_exec;
ot->poll = edit_constraint_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
edit_constraint_properties(ot);
}
@@ -974,7 +1119,7 @@ void ED_object_constraint_set_active(Object *ob, bConstraint *con)
ListBase *lb = get_constraint_lb(ob, con, NULL);
/* lets be nice and escape if its active already */
- // NOTE: this assumes that the stack doesn't have other active ones set...
+ /* NOTE: this assumes that the stack doesn't have other active ones set... */
if ((lb && con) && (con->flag & CONSTRAINT_ACTIVE))
return;
@@ -983,13 +1128,14 @@ void ED_object_constraint_set_active(Object *ob, bConstraint *con)
void ED_object_constraint_update(Object *ob)
{
-
if (ob->pose) BKE_pose_update_constraint_flags(ob->pose);
object_test_constraints(ob);
- if (ob->type == OB_ARMATURE) DAG_id_tag_update(&ob->id, OB_RECALC_DATA | OB_RECALC_OB);
- else DAG_id_tag_update(&ob->id, OB_RECALC_OB);
+ if (ob->type == OB_ARMATURE)
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA | OB_RECALC_OB);
+ else
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB);
}
void ED_object_constraint_dependency_update(Main *bmain, Scene *scene, Object *ob)
@@ -1006,6 +1152,7 @@ static int constraint_poll(bContext *C)
return (ptr.id.data && ptr.data);
}
+
static int constraint_delete_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "constraint", &RNA_Constraint);
@@ -1020,12 +1167,12 @@ static int constraint_delete_exec(bContext *C, wmOperator *UNUSED(op))
constraints_set_active(lb, NULL);
ED_object_constraint_update(ob); /* needed to set the flags on posebones correctly */
-
+
/* ITASC needs to be rebuilt once a constraint is removed [#26920] */
if (is_ik) {
BIK_clear_data(ob->pose);
}
-
+
/* notifiers */
WM_event_add_notifier(C, NC_OBJECT | ND_CONSTRAINT | NA_REMOVED, ob);
@@ -1052,6 +1199,7 @@ void CONSTRAINT_OT_delete(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
+
static int constraint_move_down_exec(bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
@@ -1081,7 +1229,6 @@ static int constraint_move_down_invoke(bContext *C, wmOperator *op, wmEvent *UNU
return OPERATOR_CANCELLED;
}
-
void CONSTRAINT_OT_move_down(wmOperatorType *ot)
{
/* identifiers */
@@ -1090,12 +1237,14 @@ void CONSTRAINT_OT_move_down(wmOperatorType *ot)
ot->description = "Move constraint down in constraint stack";
/* callbacks */
- ot->exec = constraint_move_down_exec;
ot->invoke = constraint_move_down_invoke;
+ ot->exec = constraint_move_down_exec;
ot->poll = edit_constraint_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
edit_constraint_properties(ot);
}
@@ -1185,7 +1334,7 @@ void POSE_OT_constraints_clear(wmOperatorType *ot)
/* callbacks */
ot->exec = pose_constraints_clear_exec;
- ot->poll = ED_operator_posemode; // XXX - do we want to ensure there are selected bones too?
+ ot->poll = ED_operator_posemode_exclusive; // XXX - do we want to ensure there are selected bones too?
}
@@ -1266,7 +1415,7 @@ void POSE_OT_constraints_copy(wmOperatorType *ot)
/* api callbacks */
ot->exec = pose_constraint_copy_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_exclusive;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1392,9 +1541,9 @@ static short get_new_constraint_target(bContext *C, int con_type, Object **tar_o
/* just use the first object we encounter (that isn't the active object)
* and which fulfills the criteria for the object-target that we've got
*/
- if ( (ob != obact) &&
- ((!only_curve) || (ob->type == OB_CURVE)) &&
- ((!only_mesh) || (ob->type == OB_MESH)) )
+ if ((ob != obact) &&
+ ((!only_curve) || (ob->type == OB_CURVE)) &&
+ ((!only_mesh) || (ob->type == OB_MESH)))
{
/* set target */
*tar_ob = ob;
@@ -1478,15 +1627,15 @@ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase
if (type == CONSTRAINT_TYPE_NULL) {
return OPERATOR_CANCELLED;
}
- if ( (type == CONSTRAINT_TYPE_RIGIDBODYJOINT) && (list != &ob->constraints) ) {
+ if ((type == CONSTRAINT_TYPE_RIGIDBODYJOINT) && (list != &ob->constraints)) {
BKE_report(op->reports, RPT_ERROR, "Rigid Body Joint Constraint can only be added to Objects");
return OPERATOR_CANCELLED;
}
- if ( (type == CONSTRAINT_TYPE_KINEMATIC) && ((!pchan) || (list != &pchan->constraints)) ) {
+ if ((type == CONSTRAINT_TYPE_KINEMATIC) && ((!pchan) || (list != &pchan->constraints))) {
BKE_report(op->reports, RPT_ERROR, "IK Constraint can only be added to Bones");
return OPERATOR_CANCELLED;
}
- if ( (type == CONSTRAINT_TYPE_SPLINEIK) && ((!pchan) || (list != &pchan->constraints)) ) {
+ if ((type == CONSTRAINT_TYPE_SPLINEIK) && ((!pchan) || (list != &pchan->constraints))) {
BKE_report(op->reports, RPT_ERROR, "Spline IK Constraint can only be added to Bones");
return OPERATOR_CANCELLED;
}
@@ -1518,16 +1667,16 @@ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase
/* do type-specific tweaking to the constraint settings */
switch (type) {
- case CONSTRAINT_TYPE_PYTHON: // FIXME: this code is not really valid anymore
+ case CONSTRAINT_TYPE_PYTHON: /* FIXME: this code is not really valid anymore */
{
#ifdef WITH_PYTHON
char *menustr;
int scriptint = 0;
/* popup a list of usable scripts */
menustr = buildmenu_pyconstraints(NULL, &scriptint);
- // XXX scriptint = pupmenu(menustr);
+ /* XXX scriptint = pupmenu(menustr); */
MEM_freeN(menustr);
-
+
/* only add constraint if a script was chosen */
if (scriptint) {
/* add constraint */
@@ -1661,7 +1810,7 @@ void POSE_OT_constraint_add(wmOperatorType *ot)
/* api callbacks */
ot->invoke = WM_menu_invoke;
ot->exec = pose_constraint_add_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_exclusive;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1680,7 +1829,7 @@ void POSE_OT_constraint_add_with_targets(wmOperatorType *ot)
/* api callbacks */
ot->invoke = WM_menu_invoke;
ot->exec = pose_constraint_add_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_exclusive;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1766,7 +1915,7 @@ void POSE_OT_ik_add(wmOperatorType *ot)
/* api callbacks */
ot->invoke = pose_ik_add_invoke;
ot->exec = pose_ik_add_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_exclusive;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1787,7 +1936,7 @@ static int pose_ik_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
bConstraint *con, *next;
- // TODO: should we be checking if these contraints were local before we try and remove them?
+ /* TODO: should we be checking if these contraints were local before we try and remove them? */
for (con = pchan->constraints.first; con; con = next) {
next = con->next;
if (con->type == CONSTRAINT_TYPE_KINEMATIC) {
@@ -1816,7 +1965,7 @@ void POSE_OT_ik_clear(wmOperatorType *ot)
/* api callbacks */
ot->exec = pose_ik_clear_exec;
- ot->poll = ED_operator_posemode;
+ ot->poll = ED_operator_posemode_exclusive;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c
index 35ee641d2c1..43c6c332791 100644
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@ -408,12 +408,12 @@ void ED_object_enter_editmode(bContext *C, int flag)
ScrArea *sa = CTX_wm_area(C);
View3D *v3d = NULL;
int ok = 0;
-
+
if (scene->id.lib) return;
-
+
if (sa && sa->spacetype == SPACE_VIEW3D)
v3d = sa->spacedata.first;
-
+
if ((flag & EM_IGNORE_LAYER) == 0) {
base = CTX_data_active_base(C); /* active layer checked here for view3d */
@@ -428,12 +428,12 @@ void ED_object_enter_editmode(bContext *C, int flag)
if (ELEM3(NULL, base, base->object, base->object->data)) return;
ob = base->object;
-
+
if (BKE_object_obdata_is_libdata(ob)) {
error_libdata();
return;
}
-
+
if (flag & EM_WAITCURSOR) waitcursor(1);
ob->restore_mode = ob->mode;
@@ -444,7 +444,7 @@ void ED_object_enter_editmode(bContext *C, int flag)
ED_object_toggle_modes(C, ob->mode);
ob->mode = OB_MODE_EDIT;
-
+
if (ob->type == OB_MESH) {
BMEditMesh *em;
ok = 1;
@@ -457,7 +457,7 @@ void ED_object_enter_editmode(bContext *C, int flag)
/* order doesn't matter */
EDBM_mesh_normals_update(em);
BMEdit_RecalcTessellation(em);
-
+
BM_mesh_select_mode_flush(em->bm);
}
@@ -482,48 +482,48 @@ void ED_object_enter_editmode(bContext *C, int flag)
scene->obedit = ob;
ED_armature_to_edit(ob);
/* to ensure all goes in restposition and without striding */
- DAG_id_tag_update(&ob->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME); // XXX: should this be OB_RECALC_DATA?
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME); /* XXX: should this be OB_RECALC_DATA? */
WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_EDITMODE_ARMATURE, scene);
}
else if (ob->type == OB_FONT) {
- scene->obedit = ob; // XXX for context
+ scene->obedit = ob; /* XXX for context */
ok = 1;
make_editText(ob);
WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_EDITMODE_TEXT, scene);
}
else if (ob->type == OB_MBALL) {
- scene->obedit = ob; // XXX for context
+ scene->obedit = ob; /* XXX for context */
ok = 1;
make_editMball(ob);
WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_EDITMODE_MBALL, scene);
}
else if (ob->type == OB_LATTICE) {
- scene->obedit = ob; // XXX for context
+ scene->obedit = ob; /* XXX for context */
ok = 1;
make_editLatt(ob);
-
+
WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_EDITMODE_LATTICE, scene);
}
else if (ob->type == OB_SURF || ob->type == OB_CURVE) {
ok = 1;
- scene->obedit = ob; // XXX for context
+ scene->obedit = ob; /* XXX for context */
make_editNurb(ob);
-
+
WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_EDITMODE_CURVE, scene);
}
-
+
if (ok) {
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
else {
- scene->obedit = NULL; // XXX for context
+ scene->obedit = NULL; /* XXX for context */
ob->mode &= ~OB_MODE_EDIT;
WM_event_add_notifier(C, NC_SCENE | ND_MODE | NS_MODE_OBJECT, scene);
}
-
+
if (flag & EM_DO_UNDO) ED_undo_push(C, "Enter Editmode");
if (flag & EM_WAITCURSOR) waitcursor(0);
}
@@ -649,11 +649,11 @@ static void copymenu_properties(Scene *scene, View3D *v3d, Object *ob)
for (base = FIRSTBASE; base; base = base->next) {
if ((base != BASACT) && (TESTBASELIB(v3d, base))) {
if (nr == 1) { /* replace */
- copy_properties(&base->object->prop, &ob->prop);
+ BKE_bproperty_copy_list(&base->object->prop, &ob->prop);
}
else {
for (prop = ob->prop.first; prop; prop = prop->next) {
- set_ob_property(base->object, prop);
+ BKE_bproperty_object_set(base->object, prop);
}
}
}
@@ -665,7 +665,7 @@ static void copymenu_properties(Scene *scene, View3D *v3d, Object *ob)
if (prop) {
for (base = FIRSTBASE; base; base = base->next) {
if ((base != BASACT) && (TESTBASELIB(v3d, base))) {
- set_ob_property(base->object, prop);
+ BKE_bproperty_object_set(base->object, prop);
}
}
}
@@ -957,7 +957,7 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event)
base->object->softflag = ob->softflag;
if (base->object->soft) sbFree(base->object->soft);
- base->object->soft = copy_softbody(ob->soft);
+ base->object->soft = copy_softbody(ob->soft, FALSE);
if (!modifiers_findByType(base->object, eModifierType_Softbody)) {
BLI_addhead(&base->object->modifiers, modifier_new(eModifierType_Softbody));
@@ -1017,9 +1017,9 @@ static void UNUSED_FUNCTION(copy_attr_menu) (Main * bmain, Scene * scene, View3D
if (!(ob = OBACT)) return;
- if (scene->obedit) { // XXX get from context
-// if (ob->type == OB_MESH)
-// XXX mesh_copy_menu();
+ if (scene->obedit) { /* XXX get from context */
+/* if (ob->type == OB_MESH) */
+/* XXX mesh_copy_menu(); */
return;
}
@@ -1030,34 +1030,34 @@ static void UNUSED_FUNCTION(copy_attr_menu) (Main * bmain, Scene * scene, View3D
*/
strcpy(str,
- "Copy Attributes %t|Location%x1|Rotation%x2|Size%x3|Draw Options%x4|"
- "Time Offset%x5|Dupli%x6|Object Color%x31|%l|Mass%x7|Damping%x8|All Physical Attributes%x11|Properties%x9|"
- "Logic Bricks%x10|Protected Transform%x29|%l");
+ "Copy Attributes %t|Location %x1|Rotation %x2|Size %x3|Draw Options %x4|"
+ "Time Offset %x5|Dupli %x6|Object Color %x31|%l|Mass %x7|Damping %x8|All Physical Attributes %x11|Properties %x9|"
+ "Logic Bricks %x10|Protected Transform %x29|%l");
- strcat(str, "|Object Constraints%x22");
- strcat(str, "|NLA Strips%x26");
+ strcat(str, "|Object Constraints %x22");
+ strcat(str, "|NLA Strips %x26");
-// XXX if (OB_TYPE_SUPPORT_MATERIAL(ob->type)) {
-// strcat(str, "|Texture Space%x17");
-// }
+/* XXX if (OB_TYPE_SUPPORT_MATERIAL(ob->type)) { */
+/* strcat(str, "|Texture Space %x17"); */
+/* } */
- if (ob->type == OB_FONT) strcat(str, "|Font Settings%x18|Bevel Settings%x19");
- if (ob->type == OB_CURVE) strcat(str, "|Bevel Settings%x19|UV Orco%x28");
+ if (ob->type == OB_FONT) strcat(str, "|Font Settings %x18|Bevel Settings %x19");
+ if (ob->type == OB_CURVE) strcat(str, "|Bevel Settings %x19|UV Orco %x28");
if ((ob->type == OB_FONT) || (ob->type == OB_CURVE)) {
- strcat(str, "|Curve Resolution%x25");
+ strcat(str, "|Curve Resolution %x25");
}
if (ob->type == OB_MESH) {
- strcat(str, "|Subsurf Settings%x21|AutoSmooth%x27");
+ strcat(str, "|Subsurf Settings %x21|AutoSmooth %x27");
}
- if (ob->soft) strcat(str, "|Soft Body Settings%x23");
+ if (ob->soft) strcat(str, "|Soft Body Settings %x23");
- strcat(str, "|Pass Index%x30");
+ strcat(str, "|Pass Index %x30");
if (ob->type == OB_MESH || ob->type == OB_CURVE || ob->type == OB_LATTICE || ob->type == OB_SURF) {
- strcat(str, "|Modifiers ...%x24");
+ strcat(str, "|Modifiers ... %x24");
}
event = pupmenu(str);
@@ -1145,7 +1145,7 @@ static int object_calculate_paths_invoke(bContext *C, wmOperator *op, wmEvent *U
}
/* show popup dialog to allow editing of range... */
- // FIXME: hardcoded dimensions here are just arbitrary
+ /* FIXME: hardcoded dimensions here are just arbitrary */
return WM_operator_props_dialog_popup(C, op, 200, 200);
}
@@ -1585,7 +1585,7 @@ static int game_property_new(bContext *C, wmOperator *op)
char name[MAX_NAME];
int type = RNA_enum_get(op->ptr, "type");
- prop = new_property(type);
+ prop = BKE_bproperty_new(type);
BLI_addtail(&ob->prop, prop);
RNA_string_get(op->ptr, "name", name);
@@ -1593,7 +1593,7 @@ static int game_property_new(bContext *C, wmOperator *op)
BLI_strncpy(prop->name, name, sizeof(prop->name));
}
- unique_property(NULL, prop, 0); // make_unique_prop_names(prop->name);
+ BKE_bproperty_unique(NULL, prop, 0); // make_unique_prop_names(prop->name);
WM_event_add_notifier(C, NC_LOGIC, NULL);
return OPERATOR_FINISHED;
@@ -1631,7 +1631,7 @@ static int game_property_remove(bContext *C, wmOperator *op)
if (prop) {
BLI_remlink(&ob->prop, prop);
- free_property(prop);
+ BKE_bproperty_free(prop);
WM_event_add_notifier(C, NC_LOGIC, NULL);
return OPERATOR_FINISHED;
@@ -1711,7 +1711,7 @@ static int game_property_copy_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, Object *, ob_iter, selected_editable_objects)
{
if (ob != ob_iter)
- set_ob_property(ob_iter, prop);
+ BKE_bproperty_object_set(ob_iter, prop);
} CTX_DATA_END;
}
}
@@ -1720,13 +1720,15 @@ static int game_property_copy_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, Object *, ob_iter, selected_editable_objects)
{
if (ob != ob_iter) {
- if (type == COPY_PROPERTIES_REPLACE)
- copy_properties(&ob_iter->prop, &ob->prop);
-
- /* merge - the default when calling with no argument */
- else
- for (prop = ob->prop.first; prop; prop = prop->next)
- set_ob_property(ob_iter, prop);
+ if (type == COPY_PROPERTIES_REPLACE) {
+ BKE_bproperty_copy_list(&ob_iter->prop, &ob->prop);
+ }
+ else {
+ /* merge - the default when calling with no argument */
+ for (prop = ob->prop.first; prop; prop = prop->next) {
+ BKE_bproperty_object_set(ob_iter, prop);
+ }
+ }
}
}
CTX_DATA_END;
@@ -1761,7 +1763,7 @@ static int game_property_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
CTX_DATA_BEGIN(C, Object *, ob_iter, selected_editable_objects)
{
- free_properties(&ob_iter->prop);
+ BKE_bproperty_free_list(&ob_iter->prop);
}
CTX_DATA_END;
diff --git a/source/blender/editors/object/object_group.c b/source/blender/editors/object/object_group.c
index c9851c6a0db..cca37cf3a44 100644
--- a/source/blender/editors/object/object_group.c
+++ b/source/blender/editors/object/object_group.c
@@ -44,6 +44,7 @@
#include "BKE_group.h"
#include "BKE_main.h"
#include "BKE_report.h"
+#include "BKE_object.h"
#include "ED_screen.h"
#include "ED_object.h"
@@ -59,57 +60,114 @@
/********************* 3d view operators ***********************/
+/* can be called with C == NULL */
+static EnumPropertyItem *group_object_active_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), int *free)
+{
+ Object *ob;
+ EnumPropertyItem *item = NULL, item_tmp = {0};
+ int totitem = 0;
+
+ if (C == NULL) {
+ return DummyRNA_NULL_items;
+ }
+
+ ob = ED_object_context(C);
+
+ /* check that the action exists */
+ if (ob) {
+ Group *group = NULL;
+ int i = 0;
+
+ while ((group = find_group(ob, group))) {
+ item_tmp.identifier = item_tmp.name = group->id.name + 2;
+ /* item_tmp.icon = ICON_ARMATURE_DATA; */
+ item_tmp.value = i;
+ RNA_enum_item_add(&item, &totitem, &item_tmp);
+ i++;
+ }
+ }
+
+ RNA_enum_item_end(&item, &totitem);
+ *free = 1;
+
+ return item;
+}
+
+/* get the group back from the enum index, quite awkward and UI specific */
+static Group *group_object_active_find_index(Object *ob, const int group_object_index)
+{
+ Group *group = NULL;
+ int i = 0;
+ while ((group = find_group(ob, group))) {
+ if (i == group_object_index) {
+ break;
+ }
+ i++;
+ }
+
+ return group;
+}
+
static int objects_add_active_exec(bContext *C, wmOperator *op)
{
+ Object *ob = ED_object_context(C);
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
- Object *ob = OBACT;
- Group *group;
- int ok = 0, cycle = 0;
-
- if (!ob) return OPERATOR_CANCELLED;
-
- /* linking to same group requires its own loop so we can avoid
- * looking up the active objects groups each time */
+ int group_object_index = RNA_enum_get(op->ptr, "group");
+ int is_cycle = FALSE;
+
+ if (ob) {
+ Group *group = group_object_active_find_index(ob, group_object_index);
+
+ /* now add all selected objects from the group */
+ if (group) {
- for (group = bmain->group.first; group; group = group->id.next) {
- if (object_in_group(ob, group)) {
- /* Assign groups to selected objects */
CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases)
{
- if (base->object->dup_group != group)
+ if (base->object->dup_group != group) {
add_to_group(group, base->object, scene, base);
- else
- cycle = 1;
- ok = 1;
+ }
+ else {
+ is_cycle = TRUE;
+ }
}
CTX_DATA_END;
+
+ if (is_cycle) {
+ BKE_report(op->reports, RPT_WARNING, "Skipped some groups because of cycle detected");
+ }
+
+ DAG_scene_sort(bmain, scene);
+ WM_event_add_notifier(C, NC_GROUP | NA_EDITED, NULL);
+
+ return OPERATOR_FINISHED;
}
}
-
- if (!ok) BKE_report(op->reports, RPT_ERROR, "Active Object contains no groups");
- if (cycle)
- BKE_report(op->reports, RPT_WARNING, "Skipped some groups because of cycle detected");
-
- DAG_scene_sort(bmain, scene);
- WM_event_add_notifier(C, NC_GROUP | NA_EDITED, NULL);
-
- return OPERATOR_FINISHED;
+
+ return OPERATOR_CANCELLED;
}
void GROUP_OT_objects_add_active(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Add Selected To Active Group";
ot->description = "Add the object to an object group that contains the active object";
ot->idname = "GROUP_OT_objects_add_active";
/* api callbacks */
- ot->exec = objects_add_active_exec;
+ ot->exec = objects_add_active_exec;
+ ot->invoke = WM_menu_invoke;
ot->poll = ED_operator_objectmode;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
+ prop = RNA_def_enum(ot->srna, "group", DummyRNA_NULL_items, 0, "Group", "The group to add other selected objects to");
+ RNA_def_enum_funcs(prop, group_object_active_itemf);
+ ot->prop = prop;
}
static int objects_remove_active_exec(bContext *C, wmOperator *op)
@@ -164,13 +222,10 @@ static int group_objects_remove_all_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
- Group *group = NULL;
CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases)
{
- group = NULL;
- while ((group = find_group(base->object, group)))
- rem_from_group(group, base->object, scene, base);
+ BKE_object_groups_clear(scene, base, base->object);
}
CTX_DATA_END;
@@ -202,17 +257,8 @@ static int group_objects_remove_exec(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
int group_object_index = RNA_enum_get(op->ptr, "group");
- /* first get the group back from the enum index, quite awkward and UI spesific */
if (ob) {
- Group *group = NULL;
- int i = 0;
-
- while ((group = find_group(ob, group))) {
- if (i == group_object_index) {
- break;
- }
- i++;
- }
+ Group *group = group_object_active_find_index(ob, group_object_index);
/* now remove all selected objects from the group */
if (group) {
@@ -233,40 +279,6 @@ static int group_objects_remove_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
-
-/* can be called with C == NULL */
-static EnumPropertyItem *group_objects_remove_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), int *free)
-{
- Object *ob;
- EnumPropertyItem *item = NULL, item_tmp = {0};
- int totitem = 0;
-
- if (C == NULL) {
- return DummyRNA_NULL_items;
- }
-
- ob = ED_object_context(C);
-
- /* check that the action exists */
- if (ob) {
- Group *group = NULL;
- int i = 0;
-
- while ((group = find_group(ob, group))) {
- item_tmp.identifier = item_tmp.name = group->id.name + 2;
- /* item_tmp.icon = ICON_ARMATURE_DATA; */
- item_tmp.value = i;
- RNA_enum_item_add(&item, &totitem, &item_tmp);
- i++;
- }
- }
-
- RNA_enum_item_end(&item, &totitem);
- *free = 1;
-
- return item;
-}
-
void GROUP_OT_objects_remove(wmOperatorType *ot)
{
PropertyRNA *prop;
@@ -286,7 +298,7 @@ void GROUP_OT_objects_remove(wmOperatorType *ot)
/* properties */
prop = RNA_def_enum(ot->srna, "group", DummyRNA_NULL_items, 0, "Group", "The group to remove this object from");
- RNA_def_enum_funcs(prop, group_objects_remove_itemf);
+ RNA_def_enum_funcs(prop, group_object_active_itemf);
ot->prop = prop;
}
@@ -358,6 +370,7 @@ void OBJECT_OT_group_add(wmOperatorType *ot)
/* api callbacks */
ot->exec = group_add_exec;
+ ot->poll = ED_operator_objectmode;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -391,6 +404,7 @@ void OBJECT_OT_group_link(wmOperatorType *ot)
/* api callbacks */
ot->exec = group_link_exec;
ot->invoke = WM_enum_search_invoke;
+ ot->poll = ED_operator_objectmode;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -426,6 +440,7 @@ void OBJECT_OT_group_remove(wmOperatorType *ot)
/* api callbacks */
ot->exec = group_remove_exec;
+ ot->poll = ED_operator_objectmode;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c
index e9341d90e86..a6afe6b2d04 100644
--- a/source/blender/editors/object/object_hook.c
+++ b/source/blender/editors/object/object_hook.c
@@ -38,6 +38,7 @@
#include "BLI_string.h"
#include "BLI_utildefines.h"
+#include "DNA_armature_types.h"
#include "DNA_curve_types.h"
#include "DNA_lattice_types.h"
#include "DNA_mesh_types.h"
@@ -397,7 +398,7 @@ static void object_hook_select(Object *ob, HookModifierData *hmd)
}
/* special poll operators for hook operators */
-// TODO: check for properties window modifier context too as alternative?
+/* TODO: check for properties window modifier context too as alternative? */
static int hook_op_edit_poll(bContext *C)
{
Object *obedit = CTX_data_edit_object(C);
@@ -430,7 +431,7 @@ static Object *add_hook_object_new(Scene *scene, Object *obedit)
return ob;
}
-static void add_hook_object(Main *bmain, Scene *scene, Object *obedit, Object *ob, int mode)
+static int add_hook_object(Main *bmain, Scene *scene, Object *obedit, Object *ob, int mode, ReportList *reports)
{
ModifierData *md = NULL;
HookModifierData *hmd = NULL;
@@ -439,9 +440,12 @@ static void add_hook_object(Main *bmain, Scene *scene, Object *obedit, Object *o
char name[MAX_NAME];
ok = object_hook_index_array(scene, obedit, &tot, &indexar, name, cent);
-
- if (!ok) return; // XXX error("Requires selected vertices or active Vertex Group");
-
+
+ if (!ok) {
+ BKE_report(reports, RPT_ERROR, "Requires selected vertices or active Vertex Group");
+ return FALSE;
+ }
+
if (mode == OBJECT_ADDHOOK_NEWOB && !ob) {
ob = add_hook_object_new(scene, obedit);
@@ -466,6 +470,17 @@ static void add_hook_object(Main *bmain, Scene *scene, Object *obedit, Object *o
hmd->totindex = tot;
BLI_strncpy(hmd->name, name, sizeof(hmd->name));
+ if (mode == OBJECT_ADDHOOK_SELOB_BONE) {
+ bArmature *arm = ob->data;
+ BLI_assert(ob->type == OB_ARMATURE);
+ if (arm->act_bone) {
+ BLI_strncpy(hmd->subtarget, arm->act_bone->name, sizeof(hmd->subtarget));
+ }
+ else {
+ BKE_report(reports, RPT_WARNING, "Armature has no active object bone");
+ }
+ }
+
/* matrix calculus */
/* vert x (obmat x hook->imat) x hook->obmat x ob->imat */
/* (parentinv ) */
@@ -477,6 +492,8 @@ static void add_hook_object(Main *bmain, Scene *scene, Object *obedit, Object *o
NULL, NULL, NULL, NULL, NULL);
DAG_scene_sort(bmain, scene);
+
+ return TRUE;
}
static int object_add_hook_selob_exec(bContext *C, wmOperator *op)
@@ -485,6 +502,8 @@ static int object_add_hook_selob_exec(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
Object *obedit = CTX_data_edit_object(C);
Object *obsel = NULL;
+ const int use_bone = RNA_boolean_get(op->ptr, "use_bone");
+ const int mode = use_bone ? OBJECT_ADDHOOK_SELOB_BONE : OBJECT_ADDHOOK_SELOB;
CTX_DATA_BEGIN (C, Object *, ob, selected_objects)
{
@@ -499,11 +518,19 @@ static int object_add_hook_selob_exec(bContext *C, wmOperator *op)
BKE_report(op->reports, RPT_ERROR, "Can't add hook with no other selected objects");
return OPERATOR_CANCELLED;
}
+
+ if (use_bone && obsel->type != OB_ARMATURE) {
+ BKE_report(op->reports, RPT_ERROR, "Can't add hook bone for a non armature object");
+ return OPERATOR_CANCELLED;
+ }
- add_hook_object(bmain, scene, obedit, obsel, OBJECT_ADDHOOK_SELOB);
-
- WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, obedit);
- return OPERATOR_FINISHED;
+ if (add_hook_object(bmain, scene, obedit, obsel, mode, op->reports)) {
+ WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, obedit);
+ return OPERATOR_FINISHED;
+ }
+ else {
+ return OPERATOR_CANCELLED;
+ }
}
void OBJECT_OT_hook_add_selobj(wmOperatorType *ot)
@@ -519,19 +546,25 @@ void OBJECT_OT_hook_add_selobj(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ RNA_def_boolean(ot->srna, "use_bone", FALSE, "Active Bone",
+ "Assign the hook to the hook objects active bone");
}
-static int object_add_hook_newob_exec(bContext *C, wmOperator *UNUSED(op))
+static int object_add_hook_newob_exec(bContext *C, wmOperator *op)
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
Object *obedit = CTX_data_edit_object(C);
- add_hook_object(bmain, scene, obedit, NULL, OBJECT_ADDHOOK_NEWOB);
-
- WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene);
- WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, obedit);
- return OPERATOR_FINISHED;
+ if (add_hook_object(bmain, scene, obedit, NULL, OBJECT_ADDHOOK_NEWOB, op->reports)) {
+ WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene);
+ WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, obedit);
+ return OPERATOR_FINISHED;
+ }
+ else {
+ return OPERATOR_CANCELLED;
+ }
}
void OBJECT_OT_hook_add_newobj(wmOperatorType *ot)
@@ -552,13 +585,11 @@ void OBJECT_OT_hook_add_newobj(wmOperatorType *ot)
static int object_hook_remove_exec(bContext *C, wmOperator *op)
{
int num = RNA_enum_get(op->ptr, "modifier");
- Object *ob = NULL;
+ Object *ob = CTX_data_edit_object(C);
HookModifierData *hmd = NULL;
- ob = CTX_data_edit_object(C);
hmd = (HookModifierData *)BLI_findlink(&ob->modifiers, num);
-
- if (!ob || !hmd) {
+ if (!hmd) {
BKE_report(op->reports, RPT_ERROR, "Couldn't find hook modifier");
return OPERATOR_CANCELLED;
}
diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h
index 917f1c67f8f..eb00aa9ef2c 100644
--- a/source/blender/editors/object/object_intern.h
+++ b/source/blender/editors/object/object_intern.h
@@ -43,6 +43,7 @@ struct HookModifierData;
enum {
OBJECT_ADDHOOK_NEWOB = 1,
OBJECT_ADDHOOK_SELOB,
+ OBJECT_ADDHOOK_SELOB_BONE
} eObject_Hook_Add_Mode;
/* internal exports only */
@@ -111,6 +112,7 @@ void OBJECT_OT_add_named(struct wmOperatorType *ot);
void OBJECT_OT_metaball_add(struct wmOperatorType *ot);
void OBJECT_OT_text_add(struct wmOperatorType *ot);
void OBJECT_OT_armature_add(struct wmOperatorType *ot);
+void OBJECT_OT_empty_add(struct wmOperatorType *ot);
void OBJECT_OT_lamp_add(struct wmOperatorType *ot);
void OBJECT_OT_effector_add(struct wmOperatorType *ot);
void OBJECT_OT_camera_add(struct wmOperatorType *ot);
@@ -192,6 +194,7 @@ void CONSTRAINT_OT_childof_set_inverse(struct wmOperatorType *ot);
void CONSTRAINT_OT_childof_clear_inverse(struct wmOperatorType *ot);
void CONSTRAINT_OT_objectsolver_set_inverse(struct wmOperatorType *ot);
void CONSTRAINT_OT_objectsolver_clear_inverse(struct wmOperatorType *ot);
+void CONSTRAINT_OT_followpath_path_animate(struct wmOperatorType *ot);
/* object_vgroup.c */
void OBJECT_OT_vertex_group_add(struct wmOperatorType *ot);
diff --git a/source/blender/editors/object/object_lattice.c b/source/blender/editors/object/object_lattice.c
index e85f47837ef..1f7be0bf9a6 100644
--- a/source/blender/editors/object/object_lattice.c
+++ b/source/blender/editors/object/object_lattice.c
@@ -92,9 +92,9 @@ void make_editLatt(Object *obedit)
free_editLatt(obedit);
- actkey = ob_get_keyblock(obedit);
+ actkey = BKE_keyblock_from_object(obedit);
if (actkey)
- key_to_latt(actkey, lt);
+ BKE_key_convert_to_lattice(actkey, lt);
lt->editlatt = MEM_callocN(sizeof(EditLatt), "editlatt");
lt->editlatt->latt = MEM_dupallocN(lt);
@@ -203,7 +203,7 @@ static int lattice_select_all_exec(bContext *C, wmOperator *op)
while (a--) {
if (bp->hide == 0) {
- if (bp->f1) {
+ if (bp->f1 & SELECT) {
action = SEL_DESELECT;
break;
}
@@ -225,7 +225,7 @@ static int lattice_select_all_exec(bContext *C, wmOperator *op)
while (a--) {
if (bp->hide == 0) {
- bp->f1 ^= 1;
+ bp->f1 ^= SELECT;
}
bp++;
}
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index aab3d8afb22..d75ef78fc4c 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -159,8 +159,10 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *sc
/* set totlvl from existing MDISPS layer if object already had it */
multiresModifier_set_levels_from_disps((MultiresModifierData *)new_md, ob);
- /* ensure that grid paint mask layer is created */
- ED_sculpt_mask_layers_ensure(ob, (MultiresModifierData *)new_md);
+ if (ob->mode & OB_MODE_SCULPT) {
+ /* ensure that grid paint mask layer is created */
+ ED_sculpt_mask_layers_ensure(ob, (MultiresModifierData *)new_md);
+ }
}
else if (type == eModifierType_Skin) {
/* ensure skin-node customdata exists */
@@ -212,10 +214,10 @@ int ED_object_iter_other(Main *bmain, Object *orig_ob, int include_orig,
int totfound = include_orig ? 0 : 1;
for (ob = bmain->object.first; ob && totfound < users;
- ob = ob->id.next)
+ ob = ob->id.next)
{
if (((ob != orig_ob) || include_orig) &&
- (ob->data == orig_ob->data))
+ (ob->data == orig_ob->data))
{
if (callback(ob, callback_data))
return TRUE;
@@ -233,7 +235,7 @@ int ED_object_iter_other(Main *bmain, Object *orig_ob, int include_orig,
static int object_has_modifier_cb(Object *ob, void *data)
{
- ModifierType type = *((ModifierType*)data);
+ ModifierType type = *((ModifierType *)data);
return object_has_modifier(ob, NULL, type);
}
@@ -244,7 +246,7 @@ static int object_has_modifier_cb(Object *ob, void *data)
int ED_object_multires_update_totlevels_cb(Object *ob, void *totlevel_v)
{
ModifierData *md;
- int totlevel = *((int*)totlevel_v);
+ int totlevel = *((int *)totlevel_v);
for (md = ob->modifiers.first; md; md = md->next) {
if (md->type == eModifierType_Multires) {
@@ -268,17 +270,12 @@ static int object_modifier_safe_to_delete(Main *bmain, Object *ob,
static int object_modifier_remove(Main *bmain, Object *ob, ModifierData *md,
int *sort_depsgraph)
{
- ModifierData *obmd;
-
/* It seems on rapid delete it is possible to
* get called twice on same modifier, so make
* sure it is in list. */
- for (obmd = ob->modifiers.first; obmd; obmd = obmd->next)
- if (obmd == md)
- break;
-
- if (!obmd)
+ if (BLI_findindex(&ob->modifiers, md) == -1) {
return 0;
+ }
/* special cases */
if (md->type == eModifierType_ParticleSystem) {
@@ -341,7 +338,7 @@ int ED_object_modifier_remove(ReportList *reports, Main *bmain, Scene *scene, Ob
ok = object_modifier_remove(bmain, ob, md, &sort_depsgraph);
if (!ok) {
- BKE_reportf(reports, RPT_ERROR, "Modifier '%s' not in object '%s'", ob->id.name, md->name);
+ BKE_reportf(reports, RPT_ERROR, "Modifier '%s' not in object '%s'", md->name, ob->id.name);
return 0;
}
@@ -570,15 +567,15 @@ static int modifier_apply_shape(ReportList *reports, Scene *scene, Object *ob, M
}
if (key == NULL) {
- key = me->key = add_key((ID *)me);
+ key = me->key = BKE_key_add((ID *)me);
key->type = KEY_RELATIVE;
/* if that was the first key block added, then it was the basis.
* Initialize it with the mesh, and add another for the modifier */
- kb = add_keyblock(key, NULL);
- mesh_to_key(me, kb);
+ kb = BKE_keyblock_add(key, NULL);
+ BKE_key_convert_from_mesh(me, kb);
}
- kb = add_keyblock(key, md->name);
+ kb = BKE_keyblock_add(key, md->name);
DM_to_meshkey(dm, me, kb);
dm->release(dm);
@@ -715,11 +712,6 @@ int ED_object_modifier_apply(ReportList *reports, Scene *scene, Object *ob, Modi
BLI_remlink(&ob->modifiers, md);
modifier_free(md);
- if (ob->type == OB_MESH) {
- /* ensure mesh paint mask layer remains after applying */
- ED_sculpt_mask_layers_ensure(ob, NULL);
- }
-
return 1;
}
@@ -1148,8 +1140,8 @@ static int multires_higher_levels_delete_exec(bContext *C, wmOperator *op)
multiresModifier_del_levels(mmd, ob, 1);
ED_object_iter_other(CTX_data_main(C), ob, TRUE,
- ED_object_multires_update_totlevels_cb,
- &mmd->totlvl);
+ ED_object_multires_update_totlevels_cb,
+ &mmd->totlvl);
WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
@@ -1192,8 +1184,8 @@ static int multires_subdivide_exec(bContext *C, wmOperator *op)
multiresModifier_subdivide(mmd, ob, 0, mmd->simple);
ED_object_iter_other(CTX_data_main(C), ob, TRUE,
- ED_object_multires_update_totlevels_cb,
- &mmd->totlvl);
+ ED_object_multires_update_totlevels_cb,
+ &mmd->totlvl);
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
@@ -1353,7 +1345,7 @@ void OBJECT_OT_multires_external_save(wmOperatorType *ot)
ot->description = "Save displacements to an external file";
ot->idname = "OBJECT_OT_multires_external_save";
- // XXX modifier no longer in context after file browser .. ot->poll = multires_poll;
+ /* XXX modifier no longer in context after file browser .. ot->poll = multires_poll; */
ot->exec = multires_external_save_exec;
ot->invoke = multires_external_save_invoke;
ot->poll = multires_poll;
@@ -1361,7 +1353,8 @@ void OBJECT_OT_multires_external_save(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
- WM_operator_properties_filesel(ot, FOLDERFILE | BTXFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | BTXFILE, FILE_SPECIAL, FILE_SAVE,
+ WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
edit_modifier_properties(ot);
}
@@ -1375,7 +1368,7 @@ static int multires_external_pack_exec(bContext *C, wmOperator *UNUSED(op))
if (!CustomData_external_test(&me->ldata, CD_MDISPS))
return OPERATOR_CANCELLED;
- // XXX don't remove..
+ /* XXX don't remove.. */
CustomData_external_remove(&me->ldata, &me->id, CD_MDISPS, me->totloop);
return OPERATOR_FINISHED;
@@ -1466,7 +1459,8 @@ static void modifier_skin_customdata_ensure(Object *ob)
me->totvert);
/* Mark an arbitrary vertex as root */
- vs->flag |= MVERT_SKIN_ROOT;
+ if (vs)
+ vs->flag |= MVERT_SKIN_ROOT;
}
}
@@ -1518,8 +1512,8 @@ static void skin_root_clear(BMesh *bm, BMVert *bm_vert, GHash *visited)
static int skin_root_mark_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob = CTX_data_edit_object(C);
- Mesh *me = ob->data;
- BMesh *bm = me->edit_btmesh->bm;
+ BMEditMesh *em = BMEdit_FromObject(ob);
+ BMesh *bm = em->bm;
BMVert *bm_vert;
BMIter bm_iter;
GHash *visited;
@@ -1574,12 +1568,16 @@ typedef enum {
static int skin_loose_mark_clear_exec(bContext *C, wmOperator *op)
{
Object *ob = CTX_data_edit_object(C);
- Mesh *me = ob->data;
- BMesh *bm = me->edit_btmesh->bm;
+ BMEditMesh *em = BMEdit_FromObject(ob);
+ BMesh *bm = em->bm;
BMVert *bm_vert;
BMIter bm_iter;
SkinLooseAction action = RNA_enum_get(op->ptr, "action");
+ if (!CustomData_has_layer(&bm->vdata, CD_MVERT_SKIN)) {
+ return OPERATOR_CANCELLED;
+ }
+
BM_ITER_MESH (bm_vert, &bm_iter, bm, BM_VERTS_OF_MESH) {
if (bm_vert->head.hflag & BM_ELEM_SELECT) {
MVertSkin *vs = CustomData_bmesh_get(&bm->vdata,
@@ -1628,11 +1626,15 @@ void OBJECT_OT_skin_loose_mark_clear(wmOperatorType *ot)
static int skin_radii_equalize_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob = CTX_data_edit_object(C);
- Mesh *me = ob->data;
- BMesh *bm = me->edit_btmesh->bm;
+ BMEditMesh *em = BMEdit_FromObject(ob);
+ BMesh *bm = em->bm;
BMVert *bm_vert;
BMIter bm_iter;
+ if (!CustomData_has_layer(&bm->vdata, CD_MVERT_SKIN)) {
+ return OPERATOR_CANCELLED;
+ }
+
BM_ITER_MESH (bm_vert, &bm_iter, bm, BM_VERTS_OF_MESH) {
if (bm_vert->head.hflag & BM_ELEM_SELECT) {
MVertSkin *vs = CustomData_bmesh_get(&bm->vdata,
@@ -1653,7 +1655,7 @@ static int skin_radii_equalize_exec(bContext *C, wmOperator *UNUSED(op))
void OBJECT_OT_skin_radii_equalize(wmOperatorType *ot)
{
ot->name = "Skin Radii Equalize";
- ot->description = "Make skin radii of selected vertices equal";
+ ot->description = "Make skin radii of selected vertices equal on each axis";
ot->idname = "OBJECT_OT_skin_radii_equalize";
ot->poll = skin_edit_poll;
@@ -1687,11 +1689,9 @@ static void skin_armature_bone_create(Object *skin_ob,
v = (e->v1 == parent_v ? e->v2 : e->v1);
- bone = MEM_callocN(sizeof(EditBone),
- "skin_armature_bone_create EditBone");
+ bone = ED_armature_edit_bone_add(arm, "Bone");
bone->parent = parent_bone;
- bone->layer = 1;
bone->flag |= BONE_CONNECTED;
copy_v3_v3(bone->head, mvert[parent_v].co);
@@ -1699,8 +1699,6 @@ static void skin_armature_bone_create(Object *skin_ob,
bone->rad_head = bone->rad_tail = 0.25;
BLI_snprintf(bone->name, sizeof(bone->name), "Bone.%.2d", endx);
- BLI_addtail(arm->edbo, bone);
-
/* add bDeformGroup */
if ((dg = ED_vgroup_add_name(skin_ob, bone->name))) {
ED_vgroup_vert_add(skin_ob, dg, parent_v, 1, WEIGHT_REPLACE);
@@ -1765,16 +1763,13 @@ static Object *modifier_skin_armature_create(struct Scene *scene,
* a fake root bone (have it going off in the Y direction
* (arbitrary) */
if (emap[v].count > 1) {
- bone = MEM_callocN(sizeof(EditBone), "EditBone");
+ bone = ED_armature_edit_bone_add(arm, "Bone");
copy_v3_v3(bone->head, me->mvert[v].co);
copy_v3_v3(bone->tail, me->mvert[v].co);
- bone->layer = 1;
bone->head[1] = 1.0f;
bone->rad_head = bone->rad_tail = 0.25;
-
- BLI_addtail(arm->edbo, bone);
}
if (emap[v].count >= 1) {
@@ -1804,9 +1799,15 @@ static int skin_armature_create_exec(bContext *C, wmOperator *op)
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
Object *ob = CTX_data_active_object(C), *arm_ob;
+ Mesh *me = ob->data;
ModifierData *skin_md;
ArmatureModifierData *arm_md;
+ if (!CustomData_has_layer(&me->vdata, CD_MVERT_SKIN)) {
+ BKE_reportf(op->reports, RPT_WARNING, "Mesh '%s' has no skin vertex data", me->id.name + 2);
+ return OPERATOR_CANCELLED;
+ }
+
/* create new armature */
arm_ob = modifier_skin_armature_create(scene, ob);
@@ -2045,7 +2046,7 @@ static int oceanbake_breakjob(void *UNUSED(customdata))
/* this is not nice yet, need to make the jobs list template better
* for identifying/acting upon various different jobs */
/* but for now we'll reuse the render break... */
- return (G.afbreek);
+ return (G.is_break);
}
/* called by oceanbake, wmJob sends notifier */
@@ -2068,7 +2069,7 @@ static void oceanbake_startjob(void *customdata, short *stop, short *do_update,
oj->do_update = do_update;
oj->progress = progress;
- G.afbreek = 0; /* XXX shared with render - replace with job 'stop' switch */
+ G.is_break = FALSE; /* XXX shared with render - replace with job 'stop' switch */
BKE_bake_ocean(oj->ocean, oj->och, oceanbake_update, (void *)oj);
@@ -2099,7 +2100,7 @@ static int ocean_bake_exec(bContext *C, wmOperator *op)
int f, cfra, i = 0;
int free = RNA_boolean_get(op->ptr, "free");
- wmJob *steve;
+ wmJob *wm_job;
OceanBakeJob *oj;
if (!omd)
@@ -2166,17 +2167,18 @@ static int ocean_bake_exec(bContext *C, wmOperator *op)
scene->r.cfra = cfra;
/* setup job */
- steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Ocean Simulation", WM_JOB_PROGRESS);
+ wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Ocean Simulation",
+ WM_JOB_PROGRESS, WM_JOB_TYPE_OBJECT_SIM_OCEAN);
oj = MEM_callocN(sizeof(OceanBakeJob), "ocean bake job");
oj->ocean = ocean;
oj->och = och;
oj->omd = omd;
- WM_jobs_customdata(steve, oj, oceanbake_free);
- WM_jobs_timer(steve, 0.1, NC_OBJECT | ND_MODIFIER, NC_OBJECT | ND_MODIFIER);
- WM_jobs_callbacks(steve, oceanbake_startjob, NULL, NULL, oceanbake_endjob);
+ WM_jobs_customdata_set(wm_job, oj, oceanbake_free);
+ WM_jobs_timer(wm_job, 0.1, NC_OBJECT | ND_MODIFIER, NC_OBJECT | ND_MODIFIER);
+ WM_jobs_callbacks(wm_job, oceanbake_startjob, NULL, NULL, oceanbake_endjob);
- WM_jobs_start(CTX_wm_manager(C), steve);
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c
index f8f4fe9c4e5..f857252a635 100644
--- a/source/blender/editors/object/object_ops.c
+++ b/source/blender/editors/object/object_ops.c
@@ -113,6 +113,7 @@ void ED_operatortypes_object(void)
WM_operatortype_append(OBJECT_OT_delete);
WM_operatortype_append(OBJECT_OT_text_add);
WM_operatortype_append(OBJECT_OT_armature_add);
+ WM_operatortype_append(OBJECT_OT_empty_add);
WM_operatortype_append(OBJECT_OT_lamp_add);
WM_operatortype_append(OBJECT_OT_camera_add);
WM_operatortype_append(OBJECT_OT_speaker_add);
@@ -168,6 +169,7 @@ void ED_operatortypes_object(void)
WM_operatortype_append(CONSTRAINT_OT_childof_clear_inverse);
WM_operatortype_append(CONSTRAINT_OT_objectsolver_set_inverse);
WM_operatortype_append(CONSTRAINT_OT_objectsolver_clear_inverse);
+ WM_operatortype_append(CONSTRAINT_OT_followpath_path_animate);
WM_operatortype_append(OBJECT_OT_vertex_group_add);
WM_operatortype_append(OBJECT_OT_vertex_group_remove);
diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c
index fc0aa39e733..446c0a51ed5 100644
--- a/source/blender/editors/object/object_relations.c
+++ b/source/blender/editors/object/object_relations.c
@@ -47,9 +47,11 @@
#include "DNA_speaker_types.h"
#include "DNA_world_types.h"
#include "DNA_object_types.h"
+#include "DNA_vfont_types.h"
#include "BLI_math.h"
#include "BLI_listbase.h"
+#include "BLI_linklist.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
@@ -64,6 +66,7 @@
#include "BKE_DerivedMesh.h"
#include "BKE_displist.h"
#include "BKE_global.h"
+#include "BKE_group.h"
#include "BKE_fcurve.h"
#include "BKE_lamp.h"
#include "BKE_lattice.h"
@@ -133,6 +136,9 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op)
em = me->edit_btmesh;
+ EDBM_mesh_normals_update(em);
+ BMEdit_RecalcTessellation(em);
+
/* derivedMesh might be needed for solving parenting,
* so re-create it here */
makeDerivedMesh(scene, obedit, em, CD_MASK_BAREMESH, 0);
@@ -518,7 +524,8 @@ EnumPropertyItem prop_make_parent_types[] = {
{0, NULL, 0, NULL, NULL}
};
-int ED_object_parent_set(ReportList *reports, Main *bmain, Scene *scene, Object *ob, Object *par, int partype)
+int ED_object_parent_set(ReportList *reports, Main *bmain, Scene *scene, Object *ob, Object *par,
+ int partype, int xmirror, int keep_transform)
{
bPoseChannel *pchan = NULL;
int pararm = ELEM4(partype, PAR_ARMATURE, PAR_ARMATURE_NAME, PAR_ARMATURE_ENVELOPE, PAR_ARMATURE_AUTO);
@@ -570,10 +577,14 @@ int ED_object_parent_set(ReportList *reports, Main *bmain, Scene *scene, Object
}
else {
Object workob;
-
+
/* apply transformation of previous parenting */
- /* BKE_object_apply_mat4(ob, ob->obmat); */ /* removed because of bug [#23577] */
-
+ if (keep_transform) {
+ /* was removed because of bug [#23577],
+ * but this can be handy in some cases too [#32616], so make optional */
+ BKE_object_apply_mat4(ob, ob->obmat, FALSE, FALSE);
+ }
+
/* set the parent (except for follow-path constraint option) */
if (partype != PAR_PATH_CONST) {
ob->parent = par;
@@ -641,12 +652,12 @@ int ED_object_parent_set(ReportList *reports, Main *bmain, Scene *scene, Object
}
else if (pararm && ob->type == OB_MESH && par->type == OB_ARMATURE) {
if (partype == PAR_ARMATURE_NAME)
- create_vgroups_from_armature(reports, scene, ob, par, ARM_GROUPS_NAME, 0);
+ create_vgroups_from_armature(reports, scene, ob, par, ARM_GROUPS_NAME, FALSE);
else if (partype == PAR_ARMATURE_ENVELOPE)
- create_vgroups_from_armature(reports, scene, ob, par, ARM_GROUPS_ENVELOPE, 0);
+ create_vgroups_from_armature(reports, scene, ob, par, ARM_GROUPS_ENVELOPE, xmirror);
else if (partype == PAR_ARMATURE_AUTO) {
WM_cursor_wait(1);
- create_vgroups_from_armature(reports, scene, ob, par, ARM_GROUPS_AUTO, 0);
+ create_vgroups_from_armature(reports, scene, ob, par, ARM_GROUPS_AUTO, xmirror);
WM_cursor_wait(0);
}
/* get corrected inverse */
@@ -674,11 +685,13 @@ static int parent_set_exec(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
Object *par = ED_object_active_context(C);
int partype = RNA_enum_get(op->ptr, "type");
+ int xmirror = RNA_boolean_get(op->ptr, "xmirror");
+ int keep_transform = RNA_boolean_get(op->ptr, "keep_transform");
int ok = 1;
CTX_DATA_BEGIN (C, Object *, ob, selected_editable_objects)
{
- if (!ED_object_parent_set(op->reports, bmain, scene, ob, par, partype)) {
+ if (!ED_object_parent_set(op->reports, bmain, scene, ob, par, partype, xmirror, keep_transform)) {
ok = 0;
break;
}
@@ -702,25 +715,36 @@ static int parent_set_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSE
Object *ob = ED_object_active_context(C);
uiPopupMenu *pup = uiPupMenuBegin(C, "Set Parent To", ICON_NONE);
uiLayout *layout = uiPupMenuLayout(pup);
-
- uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
- uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_OBJECT);
-
+
+ wmOperatorType *ot = WM_operatortype_find("OBJECT_OT_parent_set", TRUE);
+ PointerRNA opptr;
+
+#if 0
+ uiItemEnumO_ptr(layout, ot, NULL, 0, "type", PAR_OBJECT);
+#else
+ opptr = uiItemFullO_ptr(layout, ot, "Object", ICON_NONE, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&opptr, "type", PAR_OBJECT);
+ RNA_boolean_set(&opptr, "keep_transform", FALSE);
+
+ opptr = uiItemFullO_ptr(layout, ot, "Object (Keep Transform)", ICON_NONE, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&opptr, "type", PAR_OBJECT);
+ RNA_boolean_set(&opptr, "keep_transform", TRUE);
+#endif
/* ob becomes parent, make the associated menus */
if (ob->type == OB_ARMATURE) {
- uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_ARMATURE);
- uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_ARMATURE_NAME);
- uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_ARMATURE_ENVELOPE);
- uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_ARMATURE_AUTO);
- uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_BONE);
+ uiItemEnumO_ptr(layout, ot, NULL, 0, "type", PAR_ARMATURE);
+ uiItemEnumO_ptr(layout, ot, NULL, 0, "type", PAR_ARMATURE_NAME);
+ uiItemEnumO_ptr(layout, ot, NULL, 0, "type", PAR_ARMATURE_ENVELOPE);
+ uiItemEnumO_ptr(layout, ot, NULL, 0, "type", PAR_ARMATURE_AUTO);
+ uiItemEnumO_ptr(layout, ot, NULL, 0, "type", PAR_BONE);
}
else if (ob->type == OB_CURVE) {
- uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_CURVE);
- uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_FOLLOW);
- uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_PATH_CONST);
+ uiItemEnumO_ptr(layout, ot, NULL, 0, "type", PAR_CURVE);
+ uiItemEnumO_ptr(layout, ot, NULL, 0, "type", PAR_FOLLOW);
+ uiItemEnumO_ptr(layout, ot, NULL, 0, "type", PAR_PATH_CONST);
}
else if (ob->type == OB_LATTICE) {
- uiItemEnumO(layout, "OBJECT_OT_parent_set", NULL, 0, "type", PAR_LATTICE);
+ uiItemEnumO_ptr(layout, ot, NULL, 0, "type", PAR_LATTICE);
}
uiPupMenuEnd(C, pup);
@@ -728,6 +752,33 @@ static int parent_set_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSE
return OPERATOR_CANCELLED;
}
+static int parent_set_draw_check_prop(PointerRNA *ptr, PropertyRNA *prop)
+{
+ const char *prop_id = RNA_property_identifier(prop);
+ int type = RNA_enum_get(ptr, "type");
+
+ /* Only show XMirror for PAR_ARMATURE_ENVELOPE and PAR_ARMATURE_AUTO! */
+ if (strcmp(prop_id, "xmirror") == 0) {
+ if (ELEM(type, PAR_ARMATURE_ENVELOPE, PAR_ARMATURE_AUTO))
+ return TRUE;
+ else
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void parent_set_ui(bContext *C, wmOperator *op)
+{
+ uiLayout *layout = op->layout;
+ wmWindowManager *wm = CTX_wm_manager(C);
+ PointerRNA ptr;
+
+ RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr);
+
+ /* Main auto-draw call. */
+ uiDefAutoButsRNA(layout, &ptr, parent_set_draw_check_prop, '\0');
+}
void OBJECT_OT_parent_set(wmOperatorType *ot)
{
@@ -739,13 +790,18 @@ void OBJECT_OT_parent_set(wmOperatorType *ot)
/* api callbacks */
ot->invoke = parent_set_invoke;
ot->exec = parent_set_exec;
-
ot->poll = ED_operator_object_active;
+ ot->ui = parent_set_ui;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
RNA_def_enum(ot->srna, "type", prop_make_parent_types, 0, "Type", "");
+ RNA_def_boolean(ot->srna, "xmirror", FALSE, "X Mirror",
+ "Apply weights symmetrically along X axis, for Envelope/Automatic vertex groups creation");
+ RNA_def_boolean(ot->srna, "keep_transform", FALSE, "Keep Transform",
+ "Apply transformation before parenting");
+
}
/* ************ Make Parent Without Inverse Operator ******************* */
@@ -1238,6 +1294,9 @@ static int make_links_scene_exec(bContext *C, wmOperator *op)
DAG_ids_flush_update(bmain, 0);
+ /* redraw the 3D view because the object center points are colored differently */
+ WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, NULL);
+
/* one day multiple scenes will be visible, then we should have some update function for them */
return OPERATOR_FINISHED;
}
@@ -1246,31 +1305,42 @@ enum {
MAKE_LINKS_OBDATA = 1,
MAKE_LINKS_MATERIALS,
MAKE_LINKS_ANIMDATA,
+ MAKE_LINKS_GROUP,
MAKE_LINKS_DUPLIGROUP,
- MAKE_LINKS_MODIFIERS
+ MAKE_LINKS_MODIFIERS,
+ MAKE_LINKS_FONTS
};
/* Return 1 if make link data is allow, zero otherwise */
-static int allow_make_links_data(int ev, Object *ob, Object *obt)
+static int allow_make_links_data(const int type, Object *ob_src, Object *ob_dst)
{
- switch (ev) {
+ switch (type) {
case MAKE_LINKS_OBDATA:
- if (ob->type == obt->type && ob->type != OB_EMPTY)
+ if (ob_src->type == ob_dst->type && ob_src->type != OB_EMPTY)
return 1;
break;
case MAKE_LINKS_MATERIALS:
- if (OB_TYPE_SUPPORT_MATERIAL(ob->type) &&
- OB_TYPE_SUPPORT_MATERIAL(obt->type))
+ if (OB_TYPE_SUPPORT_MATERIAL(ob_src->type) &&
+ OB_TYPE_SUPPORT_MATERIAL(ob_dst->type))
{
return 1;
}
break;
case MAKE_LINKS_ANIMDATA:
+ case MAKE_LINKS_GROUP:
case MAKE_LINKS_DUPLIGROUP:
return 1;
case MAKE_LINKS_MODIFIERS:
- if (ob->type != OB_EMPTY && obt->type != OB_EMPTY)
+ if (ob_src->type != OB_EMPTY && ob_dst->type != OB_EMPTY)
+ return 1;
+ break;
+ case MAKE_LINKS_FONTS:
+ if ((ob_src->data != ob_dst->data) &&
+ (ob_src->type == OB_FONT) &&
+ (ob_dst->type == OB_FONT))
+ {
return 1;
+ }
break;
}
return 0;
@@ -1279,60 +1349,120 @@ static int allow_make_links_data(int ev, Object *ob, Object *obt)
static int make_links_data_exec(bContext *C, wmOperator *op)
{
Main *bmain = CTX_data_main(C);
- int event = RNA_enum_get(op->ptr, "type");
- Object *ob;
+ Scene *scene = CTX_data_scene(C);
+ const int type = RNA_enum_get(op->ptr, "type");
+ Object *ob_src;
ID *id;
int a;
- ob = ED_object_active_context(C);
+ /* group */
+ LinkNode *ob_groups = NULL;
+ int is_cycle = FALSE;
+
+ ob_src = ED_object_active_context(C);
+
+ /* avoid searching all groups in source object each time */
+ if (type == MAKE_LINKS_GROUP) {
+ ob_groups = BKE_object_groups(ob_src);
+ }
- CTX_DATA_BEGIN (C, Object *, obt, selected_editable_objects)
+ CTX_DATA_BEGIN (C, Base *, base_dst, selected_editable_bases)
{
- if (ob != obt) {
- if (allow_make_links_data(event, ob, obt)) {
- switch (event) {
+ Object *ob_dst = base_dst->object;
+
+ if (ob_src != ob_dst) {
+ if (allow_make_links_data(type, ob_src, ob_dst)) {
+ switch (type) {
case MAKE_LINKS_OBDATA: /* obdata */
- id = obt->data;
+ id = ob_dst->data;
id->us--;
- id = ob->data;
+ id = ob_src->data;
id_us_plus(id);
- obt->data = id;
+ ob_dst->data = id;
/* if amount of material indices changed: */
- test_object_materials(obt->data);
+ test_object_materials(ob_dst->data);
- obt->recalc |= OB_RECALC_DATA;
+ ob_dst->recalc |= OB_RECALC_DATA;
break;
case MAKE_LINKS_MATERIALS:
/* new approach, using functions from kernel */
- for (a = 0; a < ob->totcol; a++) {
- Material *ma = give_current_material(ob, a + 1);
- assign_material(obt, ma, a + 1); /* also works with ma==NULL */
+ for (a = 0; a < ob_src->totcol; a++) {
+ Material *ma = give_current_material(ob_src, a + 1);
+ assign_material(ob_dst, ma, a + 1, BKE_MAT_ASSIGN_USERPREF); /* also works with ma==NULL */
}
break;
case MAKE_LINKS_ANIMDATA:
- BKE_copy_animdata_id((ID *)obt, (ID *)ob, FALSE);
- BKE_copy_animdata_id((ID *)obt->data, (ID *)ob->data, FALSE);
+ BKE_copy_animdata_id((ID *)ob_dst, (ID *)ob_src, FALSE);
+ BKE_copy_animdata_id((ID *)ob_dst->data, (ID *)ob_src->data, FALSE);
break;
+ case MAKE_LINKS_GROUP:
+ {
+ LinkNode *group_node;
+
+ /* first clear groups */
+ BKE_object_groups_clear(scene, base_dst, ob_dst);
+
+ /* now add in the groups from the link nodes */
+ for (group_node = ob_groups; group_node; group_node = group_node->next) {
+ if (ob_dst->dup_group != group_node->link) {
+ add_to_group(group_node->link, ob_dst, scene, base_dst);
+ }
+ else {
+ is_cycle = TRUE;
+ }
+ }
+ }
case MAKE_LINKS_DUPLIGROUP:
- obt->dup_group = ob->dup_group;
- if (obt->dup_group) {
- id_lib_extern(&obt->dup_group->id);
- obt->transflag |= OB_DUPLIGROUP;
+ ob_dst->dup_group = ob_src->dup_group;
+ if (ob_dst->dup_group) {
+ id_lib_extern(&ob_dst->dup_group->id);
+ ob_dst->transflag |= OB_DUPLIGROUP;
}
break;
case MAKE_LINKS_MODIFIERS:
- BKE_object_link_modifiers(obt, ob);
- obt->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME;
+ BKE_object_link_modifiers(ob_dst, ob_src);
+ ob_dst->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME;
break;
+ case MAKE_LINKS_FONTS:
+ {
+ Curve *cu_src = ob_src->data;
+ Curve *cu_dst = ob_dst->data;
+
+ if (cu_dst->vfont) cu_dst->vfont->id.us--;
+ cu_dst->vfont = cu_src->vfont;
+ id_us_plus((ID *)cu_dst->vfont);
+ if (cu_dst->vfontb) cu_dst->vfontb->id.us--;
+ cu_dst->vfontb = cu_src->vfontb;
+ id_us_plus((ID *)cu_dst->vfontb);
+ if (cu_dst->vfonti) cu_dst->vfonti->id.us--;
+ cu_dst->vfonti = cu_src->vfonti;
+ id_us_plus((ID *)cu_dst->vfonti);
+ if (cu_dst->vfontbi) cu_dst->vfontbi->id.us--;
+ cu_dst->vfontbi = cu_src->vfontbi;
+ id_us_plus((ID *)cu_dst->vfontbi);
+
+ ob_dst->recalc |= OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME;
+ break;
+ }
}
}
}
}
CTX_DATA_END;
- DAG_scene_sort(bmain, CTX_data_scene(C));
+ if (type == MAKE_LINKS_GROUP) {
+ if (ob_groups) {
+ BLI_linklist_free(ob_groups, NULL);
+ }
+
+ if (is_cycle) {
+ BKE_report(op->reports, RPT_WARNING, "Skipped some groups because of cycle detected");
+ }
+ }
+
+ DAG_scene_sort(bmain, scene);
DAG_ids_flush_update(bmain, 0);
WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, CTX_wm_view3d(C));
@@ -1369,8 +1499,10 @@ void OBJECT_OT_make_links_data(wmOperatorType *ot)
{MAKE_LINKS_OBDATA, "OBDATA", 0, "Object Data", ""},
{MAKE_LINKS_MATERIALS, "MATERIAL", 0, "Materials", ""},
{MAKE_LINKS_ANIMDATA, "ANIMATION", 0, "Animation Data", ""},
+ {MAKE_LINKS_GROUP, "GROUPS", 0, "Group", ""},
{MAKE_LINKS_DUPLIGROUP, "DUPLIGROUP", 0, "DupliGroup", ""},
{MAKE_LINKS_MODIFIERS, "MODIFIERS", 0, "Modifiers", ""},
+ {MAKE_LINKS_FONTS, "FONTS", 0, "Fonts", ""},
{0, NULL, 0, NULL, NULL}};
/* identifiers */
@@ -1408,7 +1540,7 @@ static void single_object_users(Scene *scene, View3D *v3d, int flag)
*/
ob->id.newid = NULL;
- if ( (base->flag & flag) == flag) {
+ if ((base->flag & flag) == flag) {
if (ob->id.lib == NULL && ob->id.us > 1) {
/* base gets copy of object */
obn = BKE_object_copy(ob);
@@ -1582,7 +1714,7 @@ static void single_mat_users(Scene *scene, int flag, int do_textures)
BKE_copy_animdata_id_action(&man->id);
man->id.us = 0;
- assign_material(ob, man, a);
+ assign_material(ob, man, a, BKE_MAT_ASSIGN_USERPREF);
if (do_textures) {
for (b = 0; b < MAX_MTEX; b++) {
@@ -1732,6 +1864,13 @@ static void make_local_makelocalmaterial(Material *ma)
/* nodetree? XXX */
}
+enum {
+ MAKE_LOCAL_SELECT_OB,
+ MAKE_LOCAL_SELECT_OBDATA,
+ MAKE_LOCAL_SELECT_OBDATA_MATERIAL,
+ MAKE_LOCAL_ALL
+};
+
static int make_local_exec(bContext *C, wmOperator *op)
{
Main *bmain = CTX_data_main(C);
@@ -1742,7 +1881,7 @@ static int make_local_exec(bContext *C, wmOperator *op)
ID *id;
int a, b, mode = RNA_enum_get(op->ptr, "type");
- if (mode == 3) {
+ if (mode == MAKE_LOCAL_ALL) {
BKE_library_make_local(bmain, NULL, 0); /* NULL is all libs */
WM_event_add_notifier(C, NC_WINDOW, NULL);
return OPERATOR_FINISHED;
@@ -1770,7 +1909,7 @@ static int make_local_exec(bContext *C, wmOperator *op)
{
id = ob->data;
- if (id && mode > 1) {
+ if (id && (ELEM(mode, MAKE_LOCAL_SELECT_OBDATA, MAKE_LOCAL_SELECT_OBDATA_MATERIAL))) {
id_make_local(id, 0);
adt = BKE_animdata_from_id(id);
if (adt) BKE_animdata_make_local(adt);
@@ -1794,7 +1933,7 @@ static int make_local_exec(bContext *C, wmOperator *op)
}
CTX_DATA_END;
- if (mode > 1) {
+ if (mode == MAKE_LOCAL_SELECT_OBDATA_MATERIAL) {
CTX_DATA_BEGIN (C, Object *, ob, selected_objects)
{
if (ob->type == OB_LAMP) {
@@ -1832,10 +1971,12 @@ static int make_local_exec(bContext *C, wmOperator *op)
void OBJECT_OT_make_local(wmOperatorType *ot)
{
static EnumPropertyItem type_items[] = {
- {1, "SELECTED_OBJECTS", 0, "Selected Objects", ""},
- {2, "SELECTED_OBJECTS_DATA", 0, "Selected Objects and Data", ""},
- {3, "ALL", 0, "All", ""},
- {0, NULL, 0, NULL, NULL}};
+ {MAKE_LOCAL_SELECT_OB, "SELECT_OBJECT", 0, "Selected Objects", ""},
+ {MAKE_LOCAL_SELECT_OBDATA, "SELECT_OBDATA", 0, "Selected Objects and Data", ""},
+ {MAKE_LOCAL_SELECT_OBDATA_MATERIAL, "SELECT_OBDATA_MATERIAL", 0, "Selected Objects, Data and Materials", ""},
+ {MAKE_LOCAL_ALL, "ALL", 0, "All", ""},
+ {0, NULL, 0, NULL, NULL}
+ };
/* identifiers */
ot->name = "Make Local";
@@ -1925,7 +2066,7 @@ static int drop_named_material_invoke(bContext *C, wmOperator *op, wmEvent *even
if (base == NULL || ma == NULL)
return OPERATOR_CANCELLED;
- assign_material(base->object, ma, 1);
+ assign_material(base->object, ma, 1, BKE_MAT_ASSIGN_USERPREF);
DAG_ids_flush_update(bmain, 0);
WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, CTX_wm_view3d(C));
diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c
index 3d3f4ef1260..4ed14c3cdce 100644
--- a/source/blender/editors/object/object_select.c
+++ b/source/blender/editors/object/object_select.c
@@ -186,160 +186,302 @@ void OBJECT_OT_select_by_type(wmOperatorType *ot)
/*********************** Selection by Links *********************/
+enum {
+ OBJECT_SELECT_LINKED_IPO = 1,
+ OBJECT_SELECT_LINKED_OBDATA,
+ OBJECT_SELECT_LINKED_MATERIAL,
+ OBJECT_SELECT_LINKED_TEXTURE,
+ OBJECT_SELECT_LINKED_DUPGROUP,
+ OBJECT_SELECT_LINKED_PARTICLE,
+ OBJECT_SELECT_LINKED_LIBRARY,
+ OBJECT_SELECT_LINKED_LIBRARY_OBDATA
+};
+
static EnumPropertyItem prop_select_linked_types[] = {
- //{1, "IPO", 0, "Object IPO", ""}, // XXX depreceated animation system stuff...
- {2, "OBDATA", 0, "Object Data", ""},
- {3, "MATERIAL", 0, "Material", ""},
- {4, "TEXTURE", 0, "Texture", ""},
- {5, "DUPGROUP", 0, "Dupligroup", ""},
- {6, "PARTICLE", 0, "Particle System", ""},
- {7, "LIBRARY", 0, "Library", ""},
- {8, "LIBRARY_OBDATA", 0, "Library (Object Data)", ""},
+ //{OBJECT_SELECT_LINKED_IPO, "IPO", 0, "Object IPO", ""}, // XXX deprecated animation system stuff...
+ {OBJECT_SELECT_LINKED_OBDATA, "OBDATA", 0, "Object Data", ""},
+ {OBJECT_SELECT_LINKED_MATERIAL, "MATERIAL", 0, "Material", ""},
+ {OBJECT_SELECT_LINKED_TEXTURE, "TEXTURE", 0, "Texture", ""},
+ {OBJECT_SELECT_LINKED_DUPGROUP, "DUPGROUP", 0, "Dupligroup", ""},
+ {OBJECT_SELECT_LINKED_PARTICLE, "PARTICLE", 0, "Particle System", ""},
+ {OBJECT_SELECT_LINKED_LIBRARY, "LIBRARY", 0, "Library", ""},
+ {OBJECT_SELECT_LINKED_LIBRARY_OBDATA, "LIBRARY_OBDATA", 0, "Library (Object Data)", ""},
{0, NULL, 0, NULL, NULL}
};
-static int object_select_linked_exec(bContext *C, wmOperator *op)
+// XXX old animation system
+#if 0
+static int object_select_all_by_ipo(bContext *C, Ipo *ipo)
{
- Scene *scene = CTX_data_scene(C);
- Object *ob;
- void *obdata = NULL;
- Material *mat = NULL, *mat1;
- Tex *tex = NULL;
- int a, b;
- int nr = RNA_enum_get(op->ptr, "type");
- short changed = 0, extend;
- /* events (nr):
- * Object Ipo: 1
- * ObData: 2
- * Current Material: 3
- * Current Texture: 4
- * DupliGroup: 5
- * PSys: 6
- */
+ int changed = FALSE;
- extend = RNA_boolean_get(op->ptr, "extend");
-
- if (extend == 0) {
- CTX_DATA_BEGIN (C, Base *, base, visible_bases)
- {
- ED_base_object_select(base, BA_DESELECT);
+ CTX_DATA_BEGIN (C, Base *, base, visible_bases)
+ {
+ if (base->object->ipo == ipo) {
+ base->flag |= SELECT;
+ base->object->flag = base->flag;
+
+ changed = TRUE;
}
- CTX_DATA_END;
- }
-
- ob = OBACT;
- if (ob == NULL) {
- BKE_report(op->reports, RPT_ERROR, "No Active Object");
- return OPERATOR_CANCELLED;
- }
-
- if (nr == 1) {
- // XXX old animation system
- //ipo= ob->ipo;
- //if (ipo==0) return OPERATOR_CANCELLED;
- return OPERATOR_CANCELLED;
}
- else if (nr == 2) {
- if (ob->data == NULL) return OPERATOR_CANCELLED;
- obdata = ob->data;
- }
- else if (nr == 3 || nr == 4) {
- mat = give_current_material(ob, ob->actcol);
- if (mat == NULL) return OPERATOR_CANCELLED;
- if (nr == 4) {
- if (mat->mtex[(int)mat->texact]) tex = mat->mtex[(int)mat->texact]->tex;
- if (tex == NULL) return OPERATOR_CANCELLED;
+ CTX_DATA_END;
+
+ return changed;
+}
+#endif
+
+static int object_select_all_by_obdata(bContext *C, void *obdata)
+{
+ int changed = FALSE;
+
+ CTX_DATA_BEGIN (C, Base *, base, visible_bases)
+ {
+ if ((base->flag & SELECT) == 0) {
+ if (base->object->data == obdata) {
+ base->flag |= SELECT;
+ base->object->flag = base->flag;
+
+ changed = TRUE;
+ }
}
}
- else if (nr == 5) {
- if (ob->dup_group == NULL) return OPERATOR_CANCELLED;
- }
- else if (nr == 6) {
- if (ob->particlesystem.first == NULL) return OPERATOR_CANCELLED;
- }
- else if (nr == 7) {
- /* do nothing */
- }
- else if (nr == 8) {
- if (ob->data == NULL) return OPERATOR_CANCELLED;
- }
- else
- return OPERATOR_CANCELLED;
-
+ CTX_DATA_END;
+
+ return changed;
+}
+
+static int object_select_all_by_material_texture(bContext *C, int use_texture, Material *mat, Tex *tex)
+{
+ int changed = FALSE;
+
CTX_DATA_BEGIN (C, Base *, base, visible_bases)
{
- if (nr == 1) {
- // XXX old animation system
- //if (base->object->ipo == ipo) base->flag |= SELECT;
- //changed = 1;
- }
- else if (nr == 2) {
- if (base->object->data == obdata) base->flag |= SELECT;
- changed = 1;
- }
- else if (nr == 3 || nr == 4) {
- ob = base->object;
-
+ if ((base->flag & SELECT) == 0) {
+ Object *ob = base->object;
+ Material *mat1;
+ int a, b;
+
for (a = 1; a <= ob->totcol; a++) {
mat1 = give_current_material(ob, a);
- if (nr == 3) {
- if (mat1 == mat) base->flag |= SELECT;
- changed = 1;
+
+ if (!use_texture) {
+ if (mat1 == mat) {
+ base->flag |= SELECT;
+ changed = TRUE;
+ }
}
- else if (mat1 && nr == 4) {
+ else if (mat1 && use_texture) {
for (b = 0; b < MAX_MTEX; b++) {
if (mat1->mtex[b]) {
if (tex == mat1->mtex[b]->tex) {
base->flag |= SELECT;
- changed = 1;
+ changed = TRUE;
break;
}
}
}
}
}
+
+ base->object->flag = base->flag;
}
- else if (nr == 5) {
- if (base->object->dup_group == ob->dup_group) {
+ }
+ CTX_DATA_END;
+
+ return changed;
+}
+
+static int object_select_all_by_dup_group(bContext *C, Object *ob)
+{
+ int changed = FALSE;
+ Group *dup_group = (ob->transflag & OB_DUPLIGROUP) ? ob->dup_group : NULL;
+
+ CTX_DATA_BEGIN (C, Base *, base, visible_bases)
+ {
+ if ((base->flag & SELECT) == 0) {
+ Group *dup_group_other = (base->object->transflag & OB_DUPLIGROUP) ? base->object->dup_group : NULL;
+ if (dup_group == dup_group_other) {
base->flag |= SELECT;
- changed = 1;
+ base->object->flag = base->flag;
+
+ changed = TRUE;
}
}
- else if (nr == 6) {
+ }
+ CTX_DATA_END;
+
+ return changed;
+}
+
+static int object_select_all_by_particle(bContext *C, Object *ob)
+{
+ int changed = FALSE;
+
+ CTX_DATA_BEGIN (C, Base *, base, visible_bases)
+ {
+ if ((base->flag & SELECT) == 0) {
/* loop through other, then actives particles*/
ParticleSystem *psys;
ParticleSystem *psys_act;
-
+
for (psys = base->object->particlesystem.first; psys; psys = psys->next) {
for (psys_act = ob->particlesystem.first; psys_act; psys_act = psys_act->next) {
if (psys->part == psys_act->part) {
base->flag |= SELECT;
- changed = 1;
+ changed = TRUE;
break;
}
}
-
+
if (base->flag & SELECT) {
break;
}
}
+
+ base->object->flag = base->flag;
}
- else if (nr == 7) {
- if (ob->id.lib == base->object->id.lib) {
+ }
+ CTX_DATA_END;
+
+ return changed;
+}
+
+static int object_select_all_by_library(bContext *C, Library *lib)
+{
+ int changed = FALSE;
+
+ CTX_DATA_BEGIN (C, Base *, base, visible_bases)
+ {
+ if ((base->flag & SELECT) == 0) {
+ if (lib == base->object->id.lib) {
base->flag |= SELECT;
- changed = 1;
+ base->object->flag = base->flag;
+
+ changed = TRUE;
}
}
- else if (nr == 8) {
- if (base->object->data && ((ID *)ob->data)->lib == ((ID *)base->object->data)->lib) {
+ }
+ CTX_DATA_END;
+
+ return changed;
+}
+
+static int object_select_all_by_library_obdata(bContext *C, Library *lib)
+{
+ int changed = FALSE;
+
+ CTX_DATA_BEGIN (C, Base *, base, visible_bases)
+ {
+ if ((base->flag & SELECT) == 0) {
+ if (base->object->data && lib == ((ID *)base->object->data)->lib) {
base->flag |= SELECT;
- changed = 1;
+ base->object->flag = base->flag;
+
+ changed = TRUE;
}
}
- base->object->flag = base->flag;
}
CTX_DATA_END;
+
+ return changed;
+}
+
+void ED_object_select_linked_by_id(bContext *C, ID *id)
+{
+ int idtype = GS(id->name);
+ int changed = FALSE;
+
+ if (OB_DATA_SUPPORT_ID(idtype)) {
+ changed = object_select_all_by_obdata(C, id);
+ }
+ else if (idtype == ID_MA) {
+ changed = object_select_all_by_material_texture(C, FALSE, (Material *)id, NULL);
+ }
+ else if (idtype == ID_LI) {
+ changed = object_select_all_by_library(C, (Library *) id);
+ }
+
+ if (changed) {
+ WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, CTX_data_scene(C));
+ }
+}
+
+static int object_select_linked_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene = CTX_data_scene(C);
+ Object *ob;
+ int nr = RNA_enum_get(op->ptr, "type");
+ short changed = FALSE, extend;
+
+ extend = RNA_boolean_get(op->ptr, "extend");
+
+ if (extend == 0) {
+ CTX_DATA_BEGIN (C, Base *, base, visible_bases)
+ {
+ ED_base_object_select(base, BA_DESELECT);
+ }
+ CTX_DATA_END;
+ }
+ ob = OBACT;
+ if (ob == NULL) {
+ BKE_report(op->reports, RPT_ERROR, "No Active Object");
+ return OPERATOR_CANCELLED;
+ }
+
+ if (nr == OBJECT_SELECT_LINKED_IPO) {
+ // XXX old animation system
+ //if (ob->ipo == 0) return OPERATOR_CANCELLED;
+ //object_select_all_by_ipo(C, ob->ipo)
+ return OPERATOR_CANCELLED;
+ }
+ else if (nr == OBJECT_SELECT_LINKED_OBDATA) {
+ if (ob->data == 0)
+ return OPERATOR_CANCELLED;
+
+ changed = object_select_all_by_obdata(C, ob->data);
+ }
+ else if (nr == OBJECT_SELECT_LINKED_MATERIAL || nr == OBJECT_SELECT_LINKED_TEXTURE) {
+ Material *mat = NULL;
+ Tex *tex = NULL;
+ int use_texture = FALSE;
+
+ mat = give_current_material(ob, ob->actcol);
+ if (mat == NULL) return OPERATOR_CANCELLED;
+ if (nr == OBJECT_SELECT_LINKED_TEXTURE) {
+ use_texture = TRUE;
+
+ if (mat->mtex[(int)mat->texact]) tex = mat->mtex[(int)mat->texact]->tex;
+ if (tex == NULL) return OPERATOR_CANCELLED;
+ }
+
+ changed = object_select_all_by_material_texture(C, use_texture, mat, tex);
+ }
+ else if (nr == OBJECT_SELECT_LINKED_DUPGROUP) {
+ if (ob->dup_group == NULL)
+ return OPERATOR_CANCELLED;
+
+ changed = object_select_all_by_dup_group(C, ob);
+ }
+ else if (nr == OBJECT_SELECT_LINKED_PARTICLE) {
+ if (ob->particlesystem.first == NULL)
+ return OPERATOR_CANCELLED;
+
+ changed = object_select_all_by_particle(C, ob);
+ }
+ else if (nr == OBJECT_SELECT_LINKED_LIBRARY) {
+ /* do nothing */
+ changed = object_select_all_by_library(C, ob->id.lib);
+ }
+ else if (nr == OBJECT_SELECT_LINKED_LIBRARY_OBDATA) {
+ if (ob->data == NULL)
+ return OPERATOR_CANCELLED;
+
+ changed = object_select_all_by_library_obdata(C, ((ID *) ob->data)->lib);
+ }
+ else
+ return OPERATOR_CANCELLED;
+
if (changed) {
WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, CTX_data_scene(C));
return OPERATOR_FINISHED;
@@ -581,7 +723,7 @@ static short objects_share_gameprop(Object *a, Object *b)
/*make a copy of all its properties*/
for (prop = a->prop.first; prop; prop = prop->next) {
- if (get_ob_property(b, prop->name) )
+ if (BKE_bproperty_object_get(b, prop->name) )
return 1;
}
return 0;
@@ -846,13 +988,11 @@ static int object_select_same_group_exec(bContext *C, wmOperator *op)
RNA_string_get(op->ptr, "group", group_name);
- for (group = CTX_data_main(C)->group.first; group; group = group->id.next) {
- if (!strcmp(group->id.name, group_name))
- break;
- }
+ group = (Group *)BKE_libblock_find_name(ID_GR, group_name);
- if (!group)
+ if (!group) {
return OPERATOR_PASS_THROUGH;
+ }
CTX_DATA_BEGIN (C, Base *, base, visible_bases)
{
@@ -989,5 +1129,3 @@ void OBJECT_OT_select_random(wmOperatorType *ot)
RNA_def_float_percentage(ot->srna, "percent", 50.f, 0.0f, 100.0f, "Percent", "Percentage of objects to select randomly", 0.f, 100.0f);
RNA_def_boolean(ot->srna, "extend", FALSE, "Extend Selection", "Extend selection instead of deselecting everything first");
}
-
-
diff --git a/source/blender/editors/object/object_shapekey.c b/source/blender/editors/object/object_shapekey.c
index 40b653a62fd..cfd4945688b 100644
--- a/source/blender/editors/object/object_shapekey.c
+++ b/source/blender/editors/object/object_shapekey.c
@@ -78,7 +78,7 @@ static void ED_object_shape_key_add(bContext *C, Scene *scene, Object *ob, int f
{
KeyBlock *kb;
if ((kb = BKE_object_insert_shape_key(scene, ob, NULL, from_mix))) {
- Key *key = ob_get_key(ob);
+ Key *key = BKE_key_from_object(ob);
/* for absolute shape keys, new keys may not be added last */
ob->shapenr = BLI_findindex(&key->block, kb) + 1;
@@ -95,7 +95,7 @@ static int ED_object_shape_key_remove(bContext *C, Object *ob)
Key *key;
//IpoCurve *icu;
- key = ob_get_key(ob);
+ key = BKE_key_from_object(ob);
if (key == NULL)
return 0;
@@ -115,14 +115,14 @@ static int ED_object_shape_key_remove(bContext *C, Object *ob)
/* apply new basis key on original data */
switch (ob->type) {
case OB_MESH:
- key_to_mesh(key->refkey, ob->data);
+ BKE_key_convert_to_mesh(key->refkey, ob->data);
break;
case OB_CURVE:
case OB_SURF:
- key_to_curve(key->refkey, ob->data, BKE_curve_nurbs_get(ob->data));
+ BKE_key_convert_to_curve(key->refkey, ob->data, BKE_curve_nurbs_get(ob->data));
break;
case OB_LATTICE:
- key_to_latt(key->refkey, ob->data);
+ BKE_key_convert_to_lattice(key->refkey, ob->data);
break;
}
}
@@ -155,7 +155,7 @@ static int object_shape_key_mirror(bContext *C, Object *ob)
KeyBlock *kb;
Key *key;
- key = ob_get_key(ob);
+ key = BKE_key_from_object(ob);
if (key == NULL)
return 0;
@@ -323,8 +323,8 @@ void OBJECT_OT_shape_key_remove(wmOperatorType *ot)
static int shape_key_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob = ED_object_context(C);
- Key *key = ob_get_key(ob);
- KeyBlock *kb = ob_get_keyblock(ob);
+ Key *key = BKE_key_from_object(ob);
+ KeyBlock *kb = BKE_keyblock_from_object(ob);
if (!key || !kb)
return OPERATOR_CANCELLED;
@@ -357,8 +357,8 @@ void OBJECT_OT_shape_key_clear(wmOperatorType *ot)
static int shape_key_retime_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob = ED_object_context(C);
- Key *key = ob_get_key(ob);
- KeyBlock *kb = ob_get_keyblock(ob);
+ Key *key = BKE_key_from_object(ob);
+ KeyBlock *kb = BKE_keyblock_from_object(ob);
float cfra = 0.0f;
if (!key || !kb)
@@ -419,7 +419,7 @@ static int shape_key_move_exec(bContext *C, wmOperator *op)
Object *ob = ED_object_context(C);
int type = RNA_enum_get(op->ptr, "type");
- Key *key = ob_get_key(ob);
+ Key *key = BKE_key_from_object(ob);
if (key) {
KeyBlock *kb, *kb_other;
diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c
index 07557d8ea4c..1b08235b75c 100644
--- a/source/blender/editors/object/object_transform.c
+++ b/source/blender/editors/object/object_transform.c
@@ -119,7 +119,7 @@ static void object_clear_rot(Object *ob)
if ((ob->protectflag & OB_LOCK_ROTZ) == 0)
ob->quat[3] = ob->dquat[3] = 0.0f;
- // TODO: does this quat need normalizing now?
+ /* TODO: does this quat need normalizing now? */
}
else {
/* the flag may have been set for the other modes, so just ignore the extra flag... */
@@ -133,7 +133,7 @@ static void object_clear_rot(Object *ob)
}
else {
/* perform clamping using euler form (3-components) */
- // FIXME: deltas are not handled for these cases yet...
+ /* FIXME: deltas are not handled for these cases yet... */
float eul[3], oldeul[3], quat1[4] = {0};
if (ob->rotmode == ROT_MODE_QUAT) {
@@ -477,7 +477,8 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo
Mesh *me = ob->data;
MVert *mvert;
- multiresModifier_scale_disp(scene, ob);
+ if (apply_scale)
+ multiresModifier_scale_disp(scene, ob);
/* adjust data */
mvert = me->mvert;
@@ -758,7 +759,7 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
float min[3], max[3];
/* only bounds support */
INIT_MINMAX(min, max);
- BKE_object_minmax_dupli(scene, ob, min, max);
+ BKE_object_minmax_dupli(scene, ob, min, max, TRUE);
mid_v3_v3v3(cent, min, max);
invert_m4_m4(ob->imat, ob->obmat);
mul_m4_v3(ob->imat, cent);
@@ -961,8 +962,10 @@ void OBJECT_OT_origin_set(wmOperatorType *ot)
{
static EnumPropertyItem prop_set_center_types[] = {
{GEOMETRY_TO_ORIGIN, "GEOMETRY_ORIGIN", 0, "Geometry to Origin", "Move object geometry to object origin"},
- {ORIGIN_TO_GEOMETRY, "ORIGIN_GEOMETRY", 0, "Origin to Geometry", "Move object origin to center of object geometry"},
- {ORIGIN_TO_CURSOR, "ORIGIN_CURSOR", 0, "Origin to 3D Cursor", "Move object origin to position of the 3d cursor"},
+ {ORIGIN_TO_GEOMETRY, "ORIGIN_GEOMETRY", 0, "Origin to Geometry",
+ "Move object origin to center of object geometry"},
+ {ORIGIN_TO_CURSOR, "ORIGIN_CURSOR", 0, "Origin to 3D Cursor",
+ "Move object origin to position of the 3D cursor"},
{0, NULL, 0, NULL, NULL}
};
@@ -974,7 +977,7 @@ void OBJECT_OT_origin_set(wmOperatorType *ot)
/* identifiers */
ot->name = "Set Origin";
- ot->description = "Set the object's origin, by either moving the data, or set to center of data, or use 3d cursor";
+ ot->description = "Set the object's origin, by either moving the data, or set to center of data, or use 3D cursor";
ot->idname = "OBJECT_OT_origin_set";
/* api callbacks */
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c
index c5296d0f7a7..a07bc3edda0 100644
--- a/source/blender/editors/object/object_vgroup.c
+++ b/source/blender/editors/object/object_vgroup.c
@@ -61,6 +61,7 @@
#include "BKE_tessmesh.h"
#include "BKE_report.h"
#include "BKE_DerivedMesh.h"
+#include "BKE_object_deform.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -994,8 +995,9 @@ static void vgroup_duplicate(Object *ob)
dw_org = defvert_find_index(dv, idg);
if (dw_org) {
/* defvert_verify_index re-allocs org so need to store the weight first */
+ const float weight = dw_org->weight;
dw_cpy = defvert_verify_index(dv, icdg);
- dw_cpy->weight = dw_org->weight;
+ dw_cpy->weight = weight;
}
}
@@ -1262,7 +1264,7 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in
dist = dists[i];
}
else {
- if (fabs(dist - distToBe) < fabs(dists[i] - distToBe)) {
+ if (fabsf(dist - distToBe) < fabsf(dists[i] - distToBe)) {
upDown[i] = 0;
changes[i][0] = vc;
changes[i][1] = hc;
@@ -1271,7 +1273,7 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in
else {
upDown[i] = 1;
}
- if (fabs(dists[i] - distToBe) > fabs(distToStart - distToBe)) {
+ if (fabsf(dists[i] - distToBe) > fabsf(distToStart - distToBe)) {
changes[i][0] = 0;
changes[i][1] = 0;
dists[i] = distToStart;
@@ -1287,7 +1289,7 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in
for (i = k + 1; i < totweight; i++) {
dist = dists[i];
- if (fabs(dist) > fabs(dists[i])) {
+ if (fabsf(dist) > fabsf(dists[i])) {
bestIndex = i;
}
}
@@ -1315,17 +1317,17 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in
}
}
bestIndex = -1;
- // find the best change with an acceptable horizontal change
+ /* find the best change with an acceptable horizontal change */
for (i = 0; i < totweight; i++) {
- if (fabs(changes[i][0]) > fabs(changes[i][1] * 2.0f)) {
+ if (fabsf(changes[i][0]) > fabsf(changes[i][1] * 2.0f)) {
bestIndex = i;
break;
}
}
if (bestIndex != -1) {
wasChange = TRUE;
- // it is a good place to stop if it tries to move the opposite direction
- // (relative to the plane) of last time
+ /* it is a good place to stop if it tries to move the opposite direction
+ * (relative to the plane) of last time */
if (lastIndex != -1) {
if (wasUp != upDown[bestIndex]) {
wasChange = FALSE;
@@ -1443,7 +1445,6 @@ static void vgroup_levels(Object *ob, float offset, float gain)
}
}
-/* TODO - select between groups */
static void vgroup_normalize_all(Object *ob, int lock_active)
{
MDeformVert *dv, **dvert_array = NULL;
@@ -1459,29 +1460,35 @@ static void vgroup_normalize_all(Object *ob, int lock_active)
ED_vgroup_give_parray(ob->data, &dvert_array, &dvert_tot, use_vert_sel);
if (dvert_array) {
- if (lock_active) {
+ const int defbase_tot = BLI_countlist(&ob->defbase);
+ char *lock_flags = BKE_objdef_lock_flags_get(ob, defbase_tot);
- for (i = 0; i < dvert_tot; i++) {
- /* in case its not selected */
- if (!(dv = dvert_array[i])) {
- continue;
- }
-
- defvert_normalize_lock(dv, def_nr);
- }
+ if ((lock_active == TRUE) &&
+ (lock_flags != NULL) &&
+ (def_nr < defbase_tot))
+ {
+ lock_flags[def_nr] = TRUE;
}
- else {
- for (i = 0; i < dvert_tot; i++) {
- /* in case its not selected */
- if (!(dv = dvert_array[i])) {
- continue;
+ for (i = 0; i < dvert_tot; i++) {
+ /* in case its not selected */
+ if ((dv = dvert_array[i])) {
+ if (lock_flags) {
+ defvert_normalize_lock_map(dv, lock_flags, defbase_tot);
+ }
+ else if (lock_active) {
+ defvert_normalize_lock_single(dv, def_nr);
+ }
+ else {
+ defvert_normalize(dv);
}
-
- defvert_normalize(dv);
}
}
+ if (lock_flags) {
+ MEM_freeN(lock_flags);
+ }
+
MEM_freeN(dvert_array);
}
}
@@ -1843,8 +1850,8 @@ void ED_vgroup_mirror(Object *ob, const short mirror_weights, const short flip_v
int *flip_map, flip_map_len;
const int def_nr = ob->actdef - 1;
- if ( (mirror_weights == 0 && flip_vgroups == 0) ||
- (BLI_findlink(&ob->defbase, def_nr) == NULL) )
+ if ((mirror_weights == 0 && flip_vgroups == 0) ||
+ (BLI_findlink(&ob->defbase, def_nr) == NULL))
{
return;
}
@@ -1989,6 +1996,10 @@ void ED_vgroup_mirror(Object *ob, const short mirror_weights, const short flip_v
}
}
+ /* flip active group index */
+ if (flip_vgroups && flip_map[def_nr] >= 0)
+ ob->actdef = flip_map[def_nr] + 1;
+
cleanup:
if (flip_map) MEM_freeN(flip_map);
@@ -2089,6 +2100,21 @@ static void vgroup_delete_object_mode(Object *ob, bDeformGroup *dg)
if (ob->actdef < 1 && ob->defbase.first)
ob->actdef = 1;
+ /* remove all dverts */
+ if (ob->defbase.first == NULL) {
+ if (ob->type == OB_MESH) {
+ Mesh *me = ob->data;
+ CustomData_free_layer_active(&me->vdata, CD_MDEFORMVERT, me->totvert);
+ me->dvert = NULL;
+ }
+ else if (ob->type == OB_LATTICE) {
+ Lattice *lt = ob->data;
+ if (lt->dvert) {
+ MEM_freeN(lt->dvert);
+ lt->dvert = NULL;
+ }
+ }
+ }
}
/* only in editmode */
@@ -2981,7 +3007,7 @@ void OBJECT_OT_vertex_group_mirror(wmOperatorType *ot)
/* properties */
RNA_def_boolean(ot->srna, "mirror_weights", TRUE, "Mirror Weights", "Mirror weights");
- RNA_def_boolean(ot->srna, "flip_group_names", TRUE, "Flip Groups", "Flip vertex group names");
+ RNA_def_boolean(ot->srna, "flip_group_names", TRUE, "Flip Group Names", "Flip vertex group names");
RNA_def_boolean(ot->srna, "all_groups", FALSE, "All Groups", "Mirror all vertex groups weights");
}
@@ -3202,7 +3228,7 @@ void OBJECT_OT_vertex_group_set_active(wmOperatorType *ot)
}
/* creates the name_array parameter for vgroup_do_remap, call this before fiddling
- * with the order of vgroups then call vgroup_do_remap after*/
+ * with the order of vgroups then call vgroup_do_remap after */
static char *vgroup_init_remap(Object *ob)
{
bDeformGroup *def;
diff --git a/source/blender/editors/physics/dynamicpaint_ops.c b/source/blender/editors/physics/dynamicpaint_ops.c
index ea8718f0e66..70fe87e5c01 100644
--- a/source/blender/editors/physics/dynamicpaint_ops.c
+++ b/source/blender/editors/physics/dynamicpaint_ops.c
@@ -299,7 +299,7 @@ static int dynamicPaint_bakeImageSequence(bContext *C, DynamicPaintSurface *surf
if (blender_test_break()) return 0;
/* Update progress bar cursor */
- WM_timecursor(win, (int)progress);
+ WM_cursor_time(win, (int)progress);
/* calculate a frame */
scene->r.cfra = (int)frame;
@@ -369,7 +369,7 @@ static int dynamicPaint_initBake(struct bContext *C, struct wmOperator *op)
/* Set state to baking and init surface */
canvas->error[0] = '\0';
canvas->flags |= MOD_DPAINT_BAKING;
- G.afbreek= 0; /* reset blender_test_break*/
+ G.is_break = FALSE; /* reset blender_test_break*/
/* Bake Dynamic Paint */
status = dynamicPaint_bakeImageSequence(C, surface, ob);
diff --git a/source/blender/editors/physics/particle_boids.c b/source/blender/editors/physics/particle_boids.c
index 23ce4776b73..aff66b272fe 100644
--- a/source/blender/editors/physics/particle_boids.c
+++ b/source/blender/editors/physics/particle_boids.c
@@ -56,23 +56,18 @@
/************************ add/del boid rule operators *********************/
static int rule_add_exec(bContext *C, wmOperator *op)
{
- PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
- ParticleSystem *psys= ptr.data;
- Object *ob= ptr.id.data;
- ParticleSettings *part;
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_settings", &RNA_ParticleSettings);
+ ParticleSettings *part = ptr.data;
int type= RNA_enum_get(op->ptr, "type");
BoidRule *rule;
BoidState *state;
- if (!psys || !psys->part || psys->part->phystype != PART_PHYS_BOIDS)
+ if (!part || part->phystype != PART_PHYS_BOIDS)
return OPERATOR_CANCELLED;
- part = psys->part;
-
state = boid_get_current_state(part->boids);
-
for (rule=state->rules.first; rule; rule=rule->next)
rule->flag &= ~BOIDRULE_CURRENT;
@@ -82,7 +77,6 @@ static int rule_add_exec(bContext *C, wmOperator *op)
BLI_addtail(&state->rules, rule);
DAG_id_tag_update(&part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
return OPERATOR_FINISHED;
}
@@ -107,25 +101,22 @@ static int rule_del_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
- PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
- ParticleSystem *psys= ptr.data;
- Object *ob = ptr.id.data;
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_settings", &RNA_ParticleSettings);
+ ParticleSettings *part = ptr.data;
BoidRule *rule;
BoidState *state;
- if (!psys || !psys->part || psys->part->phystype != PART_PHYS_BOIDS)
+ if (!part || part->phystype != PART_PHYS_BOIDS)
return OPERATOR_CANCELLED;
- state = boid_get_current_state(psys->part->boids);
+ state = boid_get_current_state(part->boids);
-
for (rule=state->rules.first; rule; rule=rule->next) {
if (rule->flag & BOIDRULE_CURRENT) {
BLI_remlink(&state->rules, rule);
MEM_freeN(rule);
break;
}
-
}
rule = state->rules.first;
@@ -133,10 +124,8 @@ static int rule_del_exec(bContext *C, wmOperator *UNUSED(op))
rule->flag |= BOIDRULE_CURRENT;
DAG_scene_sort(bmain, scene);
- DAG_id_tag_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
+ DAG_id_tag_update(&part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
-
return OPERATOR_FINISHED;
}
@@ -157,23 +146,21 @@ void BOID_OT_rule_del(wmOperatorType *ot)
/************************ move up/down boid rule operators *********************/
static int rule_move_up_exec(bContext *C, wmOperator *UNUSED(op))
{
- PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
- ParticleSystem *psys= ptr.data;
- Object *ob = ptr.id.data;
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_settings", &RNA_ParticleSettings);
+ ParticleSettings *part = ptr.data;
BoidRule *rule;
BoidState *state;
- if (!psys || !psys->part || psys->part->phystype != PART_PHYS_BOIDS)
+ if (!part || part->phystype != PART_PHYS_BOIDS)
return OPERATOR_CANCELLED;
- state = boid_get_current_state(psys->part->boids);
+ state = boid_get_current_state(part->boids);
for (rule = state->rules.first; rule; rule=rule->next) {
if (rule->flag & BOIDRULE_CURRENT && rule->prev) {
BLI_remlink(&state->rules, rule);
BLI_insertlink(&state->rules, rule->prev->prev, rule);
- DAG_id_tag_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ DAG_id_tag_update(&part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
break;
}
}
@@ -195,23 +182,21 @@ void BOID_OT_rule_move_up(wmOperatorType *ot)
static int rule_move_down_exec(bContext *C, wmOperator *UNUSED(op))
{
- PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
- ParticleSystem *psys= ptr.data;
- Object *ob = ptr.id.data;
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_settings", &RNA_ParticleSettings);
+ ParticleSettings *part = ptr.data;
BoidRule *rule;
BoidState *state;
- if (!psys || !psys->part || psys->part->phystype != PART_PHYS_BOIDS)
+ if (!part || part->phystype != PART_PHYS_BOIDS)
return OPERATOR_CANCELLED;
- state = boid_get_current_state(psys->part->boids);
+ state = boid_get_current_state(part->boids);
for (rule = state->rules.first; rule; rule=rule->next) {
if (rule->flag & BOIDRULE_CURRENT && rule->next) {
BLI_remlink(&state->rules, rule);
BLI_insertlink(&state->rules, rule->next, rule);
- DAG_id_tag_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ DAG_id_tag_update(&part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
break;
}
}
@@ -235,17 +220,13 @@ void BOID_OT_rule_move_down(wmOperatorType *ot)
/************************ add/del boid state operators *********************/
static int state_add_exec(bContext *C, wmOperator *UNUSED(op))
{
- PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
- ParticleSystem *psys= ptr.data;
- Object *ob= ptr.id.data;
- ParticleSettings *part;
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_settings", &RNA_ParticleSettings);
+ ParticleSettings *part = ptr.data;
BoidState *state;
- if (!psys || !psys->part || psys->part->phystype != PART_PHYS_BOIDS)
+ if (!part || part->phystype != PART_PHYS_BOIDS)
return OPERATOR_CANCELLED;
- part = psys->part;
-
for (state=part->boids->states.first; state; state=state->next)
state->flag &= ~BOIDSTATE_CURRENT;
@@ -254,8 +235,6 @@ static int state_add_exec(bContext *C, wmOperator *UNUSED(op))
BLI_addtail(&part->boids->states, state);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
-
return OPERATOR_FINISHED;
}
@@ -276,24 +255,19 @@ static int state_del_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
- PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
- ParticleSystem *psys= ptr.data;
- Object *ob = ptr.id.data;
- ParticleSettings *part;
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_settings", &RNA_ParticleSettings);
+ ParticleSettings *part = ptr.data;
BoidState *state;
- if (!psys || !psys->part || psys->part->phystype != PART_PHYS_BOIDS)
+ if (!part || part->phystype != PART_PHYS_BOIDS)
return OPERATOR_CANCELLED;
- part = psys->part;
-
for (state=part->boids->states.first; state; state=state->next) {
if (state->flag & BOIDSTATE_CURRENT) {
BLI_remlink(&part->boids->states, state);
MEM_freeN(state);
break;
}
-
}
/* there must be at least one state */
@@ -307,9 +281,7 @@ static int state_del_exec(bContext *C, wmOperator *UNUSED(op))
state->flag |= BOIDSTATE_CURRENT;
DAG_scene_sort(bmain, scene);
- DAG_id_tag_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
-
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ DAG_id_tag_update(&part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
return OPERATOR_FINISHED;
}
@@ -331,22 +303,20 @@ void BOID_OT_state_del(wmOperatorType *ot)
/************************ move up/down boid state operators *********************/
static int state_move_up_exec(bContext *C, wmOperator *UNUSED(op))
{
- PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
- ParticleSystem *psys= ptr.data;
- Object *ob = ptr.id.data;
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_settings", &RNA_ParticleSettings);
+ ParticleSettings *part = ptr.data;
BoidSettings *boids;
BoidState *state;
- if (!psys || !psys->part || psys->part->phystype != PART_PHYS_BOIDS)
+ if (!part || part->phystype != PART_PHYS_BOIDS)
return OPERATOR_CANCELLED;
- boids = psys->part->boids;
+ boids = part->boids;
for (state = boids->states.first; state; state=state->next) {
if (state->flag & BOIDSTATE_CURRENT && state->prev) {
BLI_remlink(&boids->states, state);
BLI_insertlink(&boids->states, state->prev->prev, state);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
break;
}
}
@@ -368,21 +338,21 @@ void BOID_OT_state_move_up(wmOperatorType *ot)
static int state_move_down_exec(bContext *C, wmOperator *UNUSED(op))
{
- PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
- ParticleSystem *psys= ptr.data;
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_settings", &RNA_ParticleSettings);
+ ParticleSettings *part = ptr.data;
BoidSettings *boids;
BoidState *state;
- if (!psys || !psys->part || psys->part->phystype != PART_PHYS_BOIDS)
+ if (!part || part->phystype != PART_PHYS_BOIDS)
return OPERATOR_CANCELLED;
- boids = psys->part->boids;
+ boids = part->boids;
for (state = boids->states.first; state; state=state->next) {
if (state->flag & BOIDSTATE_CURRENT && state->next) {
BLI_remlink(&boids->states, state);
BLI_insertlink(&boids->states, state->next, state);
- DAG_id_tag_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
+ DAG_id_tag_update(&part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
break;
}
}
diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c
index d6cf46363d3..1010c0efce4 100644
--- a/source/blender/editors/physics/particle_edit.c
+++ b/source/blender/editors/physics/particle_edit.c
@@ -328,7 +328,7 @@ void PE_hide_keys_time(Scene *scene, PTCacheEdit *edit, float cfra)
static int pe_x_mirror(Object *ob)
{
if (ob->type == OB_MESH)
- return (((Mesh*)ob->data)->editflag & ME_EDIT_MIRROR_X);
+ return (((Mesh *)ob->data)->editflag & ME_EDIT_MIRROR_X);
return 0;
}
@@ -398,41 +398,41 @@ static void PE_set_view3d_data(bContext *C, PEData *data)
/*************************** selection utilities *******************************/
-static int key_test_depth(PEData *data, const float co[3])
+static int key_test_depth(PEData *data, const float co[3], const int screen_co[2])
{
View3D *v3d= data->vc.v3d;
double ux, uy, uz;
float depth;
- short wco[3], x, y;
/* nothing to do */
if ((v3d->drawtype<=OB_WIRE) || (v3d->flag & V3D_ZBUF_SELECT)==0)
return 1;
- project_short(data->vc.ar, co, wco);
-
- if (wco[0] == IS_CLIPPED)
+ /* used to calculate here but all callers have the screen_co already, so pass as arg */
+#if 0
+ if (ED_view3d_project_int_global(data->vc.ar, co, screen_co,
+ V3D_PROJ_TEST_CLIP_BB | V3D_PROJ_TEST_CLIP_WIN) != V3D_PROJ_RET_OK)
+ {
return 0;
+ }
+#endif
gluProject(co[0], co[1], co[2], data->mats.modelview, data->mats.projection,
(GLint *)data->mats.viewport, &ux, &uy, &uz);
- x=wco[0];
- y=wco[1];
-
#if 0 /* works well but too slow on some systems [#23118] */
- x+= (short)data->vc.ar->winrct.xmin;
- y+= (short)data->vc.ar->winrct.ymin;
+ screen_co[0] += (short)data->vc.ar->winrct.xmin;
+ screen_co[1] += (short)data->vc.ar->winrct.ymin;
/* PE_set_view3d_data calls this. no need to call here */
/* view3d_validate_backbuf(&data->vc); */
- glReadPixels(x, y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth);
+ glReadPixels(screen_co[0], screen_co[1], 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth);
#else /* faster to use depths, these are calculated in PE_set_view3d_data */
{
ViewDepths *vd = data->vc.rv3d->depths;
assert(vd && vd->depths);
/* we know its not clipped */
- depth= vd->depths[y * vd->w + x];
+ depth = vd->depths[screen_co[1] * vd->w + screen_co[0]];
}
#endif
@@ -445,21 +445,21 @@ static int key_test_depth(PEData *data, const float co[3])
static int key_inside_circle(PEData *data, float rad, const float co[3], float *distance)
{
float dx, dy, dist;
- int sco[2];
+ int screen_co[2];
- project_int(data->vc.ar, co, sco);
-
- if (sco[0] == IS_CLIPPED)
+ /* TODO, should this check V3D_PROJ_TEST_CLIP_BB too? */
+ if (ED_view3d_project_int_global(data->vc.ar, co, screen_co, V3D_PROJ_TEST_CLIP_WIN) != V3D_PROJ_RET_OK) {
return 0;
-
- dx= data->mval[0] - sco[0];
- dy= data->mval[1] - sco[1];
+ }
+
+ dx= data->mval[0] - screen_co[0];
+ dy= data->mval[1] - screen_co[1];
dist= sqrt(dx*dx + dy*dy);
if (dist > rad)
return 0;
- if (key_test_depth(data, co)) {
+ if (key_test_depth(data, co, screen_co)) {
if (distance)
*distance=dist;
@@ -471,17 +471,16 @@ static int key_inside_circle(PEData *data, float rad, const float co[3], float *
static int key_inside_rect(PEData *data, const float co[3])
{
- int sco[2];
-
- project_int(data->vc.ar, co, sco);
+ int screen_co[2];
- if (sco[0] == IS_CLIPPED)
+ if (ED_view3d_project_int_global(data->vc.ar, co, screen_co, V3D_PROJ_TEST_CLIP_WIN) != V3D_PROJ_RET_OK) {
return 0;
+ }
- if (sco[0] > data->rect->xmin && sco[0] < data->rect->xmax &&
- sco[1] > data->rect->ymin && sco[1] < data->rect->ymax)
+ if (screen_co[0] > data->rect->xmin && screen_co[0] < data->rect->xmax &&
+ screen_co[1] > data->rect->ymin && screen_co[1] < data->rect->ymax)
{
- return key_test_depth(data, co);
+ return key_test_depth(data, co, screen_co);
}
return 0;
@@ -1634,7 +1633,7 @@ int PE_circle_select(bContext *C, int selecting, const int mval[2], float rad)
/************************ lasso select operator ************************/
-int PE_lasso_select(bContext *C, int mcords[][2], short moves, short extend, short select)
+int PE_lasso_select(bContext *C, const int mcords[][2], const short moves, short extend, short select)
{
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_active_object(C);
@@ -1645,7 +1644,7 @@ int PE_lasso_select(bContext *C, int mcords[][2], short moves, short extend, sho
ParticleSystemModifierData *psmd = psys_get_modifier(ob, psys);
POINT_P; KEY_K;
float co[3], mat[4][4]= MAT4_UNITY;
- int vertco[2];
+ int screen_co[2];
PEData data;
@@ -1666,9 +1665,9 @@ int PE_lasso_select(bContext *C, int mcords[][2], short moves, short extend, sho
LOOP_KEYS {
copy_v3_v3(co, key->co);
mul_m4_v3(mat, co);
- project_int(ar, co, vertco);
- if (BLI_lasso_is_point_inside(mcords, moves, vertco[0], vertco[1], IS_CLIPPED) &&
- key_test_depth(&data, co))
+ if ((ED_view3d_project_int_global(ar, co, screen_co, V3D_PROJ_TEST_CLIP_WIN) == V3D_PROJ_RET_OK) &&
+ BLI_lasso_is_point_inside(mcords, moves, screen_co[0], screen_co[1], IS_CLIPPED) &&
+ key_test_depth(&data, co, screen_co))
{
if (select && !(key->flag & PEK_SELECT)) {
key->flag |= PEK_SELECT;
@@ -1686,9 +1685,9 @@ int PE_lasso_select(bContext *C, int mcords[][2], short moves, short extend, sho
copy_v3_v3(co, key->co);
mul_m4_v3(mat, co);
- project_int(ar, co, vertco);
- if (BLI_lasso_is_point_inside(mcords, moves, vertco[0], vertco[1], IS_CLIPPED) &&
- key_test_depth(&data, co))
+ if ((ED_view3d_project_int_global(ar, co, screen_co, V3D_PROJ_TEST_CLIP_WIN) == V3D_PROJ_RET_OK) &&
+ BLI_lasso_is_point_inside(mcords, moves, screen_co[0], screen_co[1], IS_CLIPPED) &&
+ key_test_depth(&data, co, screen_co))
{
if (select && !(key->flag & PEK_SELECT)) {
key->flag |= PEK_SELECT;
@@ -2602,7 +2601,7 @@ void PARTICLE_OT_delete(wmOperatorType *ot)
static void PE_mirror_x(Scene *scene, Object *ob, int tagged)
{
- Mesh *me= (Mesh*)(ob->data);
+ Mesh *me= (Mesh *)(ob->data);
ParticleSystemModifierData *psmd;
PTCacheEdit *edit= PE_get_current(scene, ob);
ParticleSystem *psys = edit->psys;
@@ -2789,7 +2788,7 @@ static void brush_cut(PEData *data, int pa_index)
float rad2, cut_time= 1.0;
float x0, x1, v0, v1, o0, o1, xo0, xo1, d, dv;
int k, cut, keys= (int)pow(2.0, (double)pset->draw_step);
- int vertco[2];
+ int screen_co[2];
/* blunt scissors */
if (BLI_frand() > data->cutfac) return;
@@ -2798,13 +2797,15 @@ static void brush_cut(PEData *data, int pa_index)
if (edit->points[pa_index].flag & PEP_HIDE)
return;
+ if (ED_view3d_project_int_global(ar, key->co, screen_co, V3D_PROJ_TEST_NOP) != V3D_PROJ_RET_OK)
+ return;
+
rad2= data->rad * data->rad;
cut=0;
- project_int_noclip(ar, key->co, vertco);
- x0= (float)vertco[0];
- x1= (float)vertco[1];
+ x0 = (float)screen_co[0];
+ x1 = (float)screen_co[1];
o0= (float)data->mval[0];
o1= (float)data->mval[1];
@@ -2813,26 +2814,27 @@ static void brush_cut(PEData *data, int pa_index)
xo1= x1 - o1;
/* check if root is inside circle */
- if (xo0*xo0 + xo1*xo1 < rad2 && key_test_depth(data, key->co)) {
+ if (xo0*xo0 + xo1*xo1 < rad2 && key_test_depth(data, key->co, screen_co)) {
cut_time= -1.0f;
cut= 1;
}
else {
/* calculate path time closest to root that was inside the circle */
for (k=1, key++; k<=keys; k++, key++) {
- project_int_noclip(ar, key->co, vertco);
- if (key_test_depth(data, key->co) == 0) {
- x0= (float)vertco[0];
- x1= (float)vertco[1];
+ if ((ED_view3d_project_int_global(ar, key->co, screen_co, V3D_PROJ_TEST_NOP) != V3D_PROJ_RET_OK) ||
+ key_test_depth(data, key->co, screen_co) == 0)
+ {
+ x0 = (float)screen_co[0];
+ x1 = (float)screen_co[1];
xo0= x0 - o0;
xo1= x1 - o1;
continue;
}
- v0= (float)vertco[0] - x0;
- v1= (float)vertco[1] - x1;
+ v0 = (float)screen_co[0] - x0;
+ v1 = (float)screen_co[1] - x1;
dv= v0*v0 + v1*v1;
@@ -2857,8 +2859,8 @@ static void brush_cut(PEData *data, int pa_index)
}
}
- x0= (float)vertco[0];
- x1= (float)vertco[1];
+ x0 = (float)screen_co[0];
+ x1 = (float)screen_co[1];
xo0= x0 - o0;
xo1= x1 - o1;
@@ -3379,7 +3381,7 @@ static int brush_add(PEData *data, short number)
ppa= psys->particles+ptn[0].index;
for (k=0; k<pset->totaddkey; k++) {
- thkey= (HairKey*)pa->hair + k;
+ thkey= (HairKey *)pa->hair + k;
thkey->time= pa->time + k * framestep;
key3[0].time= thkey->time/ 100.0f;
@@ -3540,7 +3542,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
switch (pset->brushtype) {
case PE_BRUSH_COMB:
{
- float mval_f[2];
+ const float mval_f[2] = {dx, dy};
data.mval= mval;
data.rad= (float)brush->size;
@@ -3552,8 +3554,6 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
invert_m4_m4(ob->imat, ob->obmat);
- mval_f[0]= dx;
- mval_f[1]= dy;
ED_view3d_win_to_delta(ar, mval_f, vec);
data.dvec= vec;
@@ -3989,7 +3989,9 @@ void PE_undo_step(Scene *scene, int step)
}
else if (step==1) {
- if (edit->curundo==NULL || edit->curundo->prev==NULL);
+ if (edit->curundo==NULL || edit->curundo->prev==NULL) {
+ /* pass */
+ }
else {
if (G.debug & G_DEBUG) printf("undo %s\n", edit->curundo->name);
edit->curundo= edit->curundo->prev;
@@ -3999,7 +4001,9 @@ void PE_undo_step(Scene *scene, int step)
else {
/* curundo has to remain current situation! */
- if (edit->curundo==NULL || edit->curundo->next==NULL);
+ if (edit->curundo==NULL || edit->curundo->next==NULL) {
+ /* pass */
+ }
else {
get_PTCacheUndo(edit, edit->curundo->next);
edit->curundo= edit->curundo->next;
@@ -4111,7 +4115,7 @@ int PE_minmax(Scene *scene, float min[3], float max[3])
}
if (!ok) {
- BKE_object_minmax(ob, min, max);
+ BKE_object_minmax(ob, min, max, TRUE);
ok= 1;
}
@@ -4137,11 +4141,11 @@ static void PE_create_particle_edit(Scene *scene, Object *ob, PointCache *cache,
if (cache && cache->flag & PTCACHE_DISK_CACHE)
return;
- if (psys == NULL && cache->mem_cache.first == NULL)
+ if (psys == NULL && (cache && cache->mem_cache.first == NULL))
return;
if (!edit) {
- totpoint = psys ? psys->totpart : (int)((PTCacheMem*)cache->mem_cache.first)->totpoint;
+ totpoint = psys ? psys->totpart : (int)((PTCacheMem *)cache->mem_cache.first)->totpoint;
edit= MEM_callocN(sizeof(PTCacheEdit), "PE_create_particle_edit");
edit->points=MEM_callocN(totpoint*sizeof(PTCacheEditPoint), "PTCacheEditPoints");
diff --git a/source/blender/editors/physics/particle_object.c b/source/blender/editors/physics/particle_object.c
index b57500df719..a17d84af128 100644
--- a/source/blender/editors/physics/particle_object.c
+++ b/source/blender/editors/physics/particle_object.c
@@ -98,12 +98,14 @@ void OBJECT_OT_particle_system_add(wmOperatorType *ot)
static int particle_system_remove_exec(bContext *C, wmOperator *UNUSED(op))
{
- Object *ob= ED_object_context(C);
+ Object *ob = ED_object_context(C);
Scene *scene = CTX_data_scene(C);
- int mode_orig = ob->mode;
+ int mode_orig;
+
if (!scene || !ob)
return OPERATOR_CANCELLED;
+ mode_orig = ob->mode;
object_remove_particle_system(scene, ob);
/* possible this isn't the active object
diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c
index 2e58fa85a11..315386a947e 100644
--- a/source/blender/editors/physics/physics_fluid.c
+++ b/source/blender/editors/physics/physics_fluid.c
@@ -203,7 +203,7 @@ static void fluidsimPrintChannel(FILE *file, float *channel, int paramsize, char
elbeemSimplifyChannelFloat(channel, &channelSize);
}
else {
- // invalid, cant happen?
+ /* invalid, cant happen? */
}
fprintf(file, " CHANNEL %s =\n", str);
@@ -651,16 +651,16 @@ static int fluid_init_filepaths(Object *fsDomain, char *targetDir, char *targetF
FluidsimSettings *domainSettings= fluidmd->fss;
FILE *fileCfg;
int dirExist = 0;
- char newSurfdataPath[FILE_MAX]; // modified output settings
+ char newSurfdataPath[FILE_MAX]; /* modified output settings */
const char *suffixConfigTmp = FLUID_SUFFIX_CONFIG_TMP;
int outStringsChanged = 0;
- // prepare names...
+ /* prepare names... */
const char *relbase= modifier_path_relbase(fsDomain);
BLI_strncpy(targetDir, domainSettings->surfdataPath, FILE_MAXDIR);
BLI_strncpy(newSurfdataPath, domainSettings->surfdataPath, FILE_MAXDIR); /* if 0'd out below, this value is never used! */
- BLI_path_abs(targetDir, relbase); // fixed #frame-no
+ BLI_path_abs(targetDir, relbase); /* fixed #frame-no */
/* .tmp: don't overwrite/delete original file */
BLI_join_dirfile(targetFile, FILE_MAX, targetDir, suffixConfigTmp);
@@ -695,21 +695,21 @@ static int fluid_init_filepaths(Object *fsDomain, char *targetDir, char *targetF
outStringsChanged=1;
}
- // check if modified output dir is ok
+ /* check if modified output dir is ok */
#if 0
if (outStringsChanged) {
char dispmsg[FILE_MAX+256];
int selection=0;
BLI_strncpy(dispmsg, "Output settings set to: '", sizeof(dispmsg));
strcat(dispmsg, newSurfdataPath);
- strcat(dispmsg, "'%t|Continue with changed settings%x1|Discard and abort%x0");
+ strcat(dispmsg, "'%t|Continue with changed settings %x1|Discard and abort %x0");
- // ask user if thats what he/she wants...
+ /* ask user if thats what he/she wants... */
selection = pupmenu(dispmsg);
- if (selection<1) return 0; // 0 from menu, or -1 aborted
+ if (selection < 1) return 0; /* 0 from menu, or -1 aborted */
BLI_strncpy(targetDir, newSurfdataPath, sizeof(targetDir));
strncpy(domainSettings->surfdataPath, newSurfdataPath, FILE_MAXDIR);
- BLI_path_abs(targetDir, G.main->name); // fixed #frame-no
+ BLI_path_abs(targetDir, G.main->name); /* fixed #frame-no */
}
#endif
return outStringsChanged;
@@ -745,7 +745,7 @@ static int fluidbake_breakjob(void *customdata)
/* this is not nice yet, need to make the jobs list template better
* for identifying/acting upon various different jobs */
/* but for now we'll reuse the render break... */
- return (G.afbreek);
+ return (G.is_break);
}
/* called by fluidbake, wmJob sends notifier */
@@ -765,7 +765,7 @@ static void fluidbake_startjob(void *customdata, short *stop, short *do_update,
fb->do_update = do_update;
fb->progress = progress;
- G.afbreek= 0; /* XXX shared with render - replace with job 'stop' switch */
+ G.is_break = FALSE; /* XXX shared with render - replace with job 'stop' switch */
elbeemSimulate();
*do_update = TRUE;
@@ -782,7 +782,7 @@ static void fluidbake_endjob(void *customdata)
}
}
-int runSimulationCallback(void *data, int status, int frame)
+static int runSimulationCallback(void *data, int status, int frame)
{
FluidBakeJob *fb = (FluidBakeJob *)data;
elbeemSimulationSettings *settings = fb->settings;
@@ -913,7 +913,7 @@ static int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain, shor
return 0;
}
- /* these both have to be valid, otherwise we wouldnt be here */
+ /* these both have to be valid, otherwise we wouldn't be here */
fluidmd = (FluidsimModifierData *)modifiers_findByType(fsDomain, eModifierType_Fluidsim);
domainSettings = fluidmd->fss;
mesh = fsDomain->data;
@@ -1068,14 +1068,15 @@ static int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain, shor
fb->settings = fsset;
if (do_job) {
- wmJob *steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Fluid Simulation", WM_JOB_PROGRESS);
+ wmJob *wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Fluid Simulation",
+ WM_JOB_PROGRESS, WM_JOB_TYPE_OBJECT_SIM_FLUID);
/* setup job */
- WM_jobs_customdata(steve, fb, fluidbake_free);
- WM_jobs_timer(steve, 0.1, NC_SCENE|ND_FRAME, NC_SCENE|ND_FRAME);
- WM_jobs_callbacks(steve, fluidbake_startjob, NULL, NULL, fluidbake_endjob);
+ WM_jobs_customdata_set(wm_job, fb, fluidbake_free);
+ WM_jobs_timer(wm_job, 0.1, NC_SCENE|ND_FRAME, NC_SCENE|ND_FRAME);
+ WM_jobs_callbacks(wm_job, fluidbake_startjob, NULL, NULL, fluidbake_endjob);
- WM_jobs_start(CTX_wm_manager(C), steve);
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
}
else {
short dummy_stop, dummy_do_update;
@@ -1094,7 +1095,7 @@ static int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain, shor
return 1;
}
-void fluidsimFreeBake(Object *UNUSED(ob))
+static void UNUSED_FUNCTION(fluidsimFreeBake)(Object *UNUSED(ob))
{
/* not implemented yet */
}
@@ -1112,7 +1113,7 @@ void fluidsimSettingsFree(FluidsimSettings *UNUSED(fss))
{
}
-FluidsimSettings* fluidsimSettingsCopy(FluidsimSettings *UNUSED(fss))
+FluidsimSettings *fluidsimSettingsCopy(FluidsimSettings *UNUSED(fss))
{
return NULL;
}
@@ -1130,7 +1131,7 @@ static int fluidsimBake(bContext *UNUSED(C), ReportList *UNUSED(reports), Object
static int fluid_bake_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
/* only one bake job at a time */
- if (WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C)))
+ if (WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C), WM_JOB_TYPE_OBJECT_SIM_FLUID))
return OPERATOR_CANCELLED;
if (!fluidsimBake(C, op->reports, CTX_data_active_object(C), TRUE))
diff --git a/source/blender/editors/physics/physics_pointcache.c b/source/blender/editors/physics/physics_pointcache.c
index c935cb7da82..218ae628d3f 100644
--- a/source/blender/editors/physics/physics_pointcache.c
+++ b/source/blender/editors/physics/physics_pointcache.c
@@ -61,7 +61,7 @@
static int cache_break_test(void *UNUSED(cbd))
{
- return G.afbreek==1;
+ return (G.is_break == TRUE);
}
static int ptcache_bake_all_poll(bContext *C)
{
@@ -111,7 +111,7 @@ static int ptcache_bake_all_exec(bContext *C, wmOperator *op)
* and pointcache baking will be reimplemented with
* the job system soon anyways. */
if (win) {
- baker.progressbar = (void (*)(void *, int))WM_timecursor;
+ baker.progressbar = (void (*)(void *, int))WM_cursor_time;
baker.progressend = (void (*)(void *))WM_cursor_restore;
baker.progresscontext = win;
}
@@ -215,7 +215,7 @@ static int ptcache_bake_exec(bContext *C, wmOperator *op)
* and pointcache baking will be reimplemented with
* the job system soon anyways. */
if (win) {
- baker.progressbar = (void (*)(void *, int))WM_timecursor;
+ baker.progressbar = (void (*)(void *, int))WM_cursor_time;
baker.progressend = (void (*)(void *))WM_cursor_restore;
baker.progresscontext = win;
}
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c
index 8fa3c6f992f..c08ea2b6429 100644
--- a/source/blender/editors/render/render_internal.c
+++ b/source/blender/editors/render/render_internal.c
@@ -61,6 +61,7 @@
#include "ED_object.h"
#include "RE_pipeline.h"
+#include "IMB_colormanagement.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -78,8 +79,8 @@ void image_buffer_rect_update(Scene *scene, RenderResult *rr, ImBuf *ibuf, volat
{
float *rectf = NULL;
int ymin, ymax, xmin, xmax;
- int rymin, rxmin, predivide, profile_from;
- unsigned char *rectc;
+ int rymin, rxmin;
+ /* unsigned char *rectc; */ /* UNUSED */
/* if renrect argument, we only refresh scanlines */
if (renrect) {
@@ -123,8 +124,14 @@ void image_buffer_rect_update(Scene *scene, RenderResult *rr, ImBuf *ibuf, volat
if (rr->rectf)
rectf = rr->rectf;
else {
- if (rr->rect32)
+ if (rr->rect32) {
+ /* special case, currently only happens with sequencer rendering,
+ * which updates the whole frame, so we can only mark display buffer
+ * as invalid here (sergey)
+ */
+ ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
return;
+ }
else {
if (rr->renlay == NULL || rr->renlay->rectf == NULL) return;
rectf = rr->renlay->rectf;
@@ -136,20 +143,11 @@ void image_buffer_rect_update(Scene *scene, RenderResult *rr, ImBuf *ibuf, volat
imb_addrectImBuf(ibuf);
rectf += 4 * (rr->rectx * ymin + xmin);
- rectc = (unsigned char *)(ibuf->rect + ibuf->x * rymin + rxmin);
+ /* rectc = (unsigned char *)(ibuf->rect + ibuf->x * rymin + rxmin); */ /* UNUSED */
- if (scene && (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)) {
- profile_from = IB_PROFILE_LINEAR_RGB;
- predivide = (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT_PREDIVIDE);
- }
- else {
- profile_from = IB_PROFILE_SRGB;
- predivide = 0;
- }
-
- IMB_buffer_byte_from_float(rectc, rectf,
- 4, ibuf->dither, IB_PROFILE_SRGB, profile_from, predivide,
- xmax, ymax, ibuf->x, rr->rectx);
+ IMB_partial_display_buffer_update(ibuf, rectf, NULL, rr->rectx, rxmin, rymin,
+ &scene->view_settings, &scene->display_settings,
+ rxmin, rymin, rxmin + xmax, rymin + ymax);
}
/* ****************************** render invoking ***************** */
@@ -213,7 +211,7 @@ static int screen_render_exec(bContext *C, wmOperator *op)
re = RE_NewRender(scene->id.name);
lay = (v3d) ? v3d->lay : scene->lay;
- G.afbreek = 0;
+ G.is_break = FALSE;
RE_test_break_cb(re, NULL, (int (*)(void *))blender_test_break);
ima = BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result");
@@ -224,7 +222,7 @@ static int screen_render_exec(bContext *C, wmOperator *op)
* otherwise, invalidated cache entries can make their way into
* the output rendering. We can't put that into RE_BlenderFrame,
* since sequence rendering can call that recursively... (peter) */
- seq_stripelem_cache_cleanup();
+ BKE_sequencer_cache_cleanup();
RE_SetReports(re, op->reports);
@@ -427,7 +425,7 @@ static void render_endjob(void *rjv)
}
/* XXX render stability hack */
- G.rendering = 0;
+ G.is_rendering = FALSE;
WM_main_add_notifier(NC_WINDOW, NULL);
}
@@ -436,7 +434,7 @@ static int render_breakjob(void *rjv)
{
RenderJob *rj = rjv;
- if (G.afbreek)
+ if (G.is_break)
return 1;
if (rj->stop && *(rj->stop))
return 1;
@@ -452,10 +450,12 @@ static void render_drawlock(void *UNUSED(rjv), int lock)
}
/* catch esc */
-static int screen_render_modal(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
+static int screen_render_modal(bContext *C, wmOperator *op, wmEvent *event)
{
+ Scene *scene = (Scene *) op->customdata;
+
/* no running blender, remove handler and pass through */
- if (0 == WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C))) {
+ if (0 == WM_jobs_test(CTX_wm_manager(C), scene, WM_JOB_TYPE_RENDER)) {
return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH;
}
@@ -477,7 +477,7 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
SceneRenderLayer *srl = NULL;
View3D *v3d = CTX_wm_view3d(C);
Render *re;
- wmJob *steve;
+ wmJob *wm_job;
RenderJob *rj;
Image *ima;
int jobflag;
@@ -487,7 +487,7 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
const char *name;
/* only one render job at a time */
- if (WM_jobs_test(CTX_wm_manager(C), scene))
+ if (WM_jobs_test(CTX_wm_manager(C), scene, WM_JOB_TYPE_RENDER))
return OPERATOR_CANCELLED;
if (!RE_is_rendering_allowed(scene, camera_override, op->reports)) {
@@ -503,7 +503,7 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
WM_jobs_stop_all(CTX_wm_manager(C));
/* get main */
- if (G.rt == 101) {
+ if (G.debug_value == 101) {
/* thread-safety experiment, copy main from the undo buffer */
mainp = BKE_undo_get_main(&scene);
}
@@ -524,7 +524,7 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
* otherwise, invalidated cache entries can make their way into
* the output rendering. We can't put that into RE_BlenderFrame,
* since sequence rendering can call that recursively... (peter) */
- seq_stripelem_cache_cleanup();
+ BKE_sequencer_cache_cleanup();
/* get editmode results */
ED_object_exit_editmode(C, 0); /* 0 = does not exit editmode */
@@ -562,10 +562,10 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
if (RE_seq_render_active(scene, &scene->r)) name = "Sequence Render";
else name = "Render";
- steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, name, jobflag);
- WM_jobs_customdata(steve, rj, render_freejob);
- WM_jobs_timer(steve, 0.2, NC_SCENE | ND_RENDER_RESULT, 0);
- WM_jobs_callbacks(steve, render_startjob, NULL, NULL, render_endjob);
+ wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, name, jobflag, WM_JOB_TYPE_RENDER);
+ WM_jobs_customdata_set(wm_job, rj, render_freejob);
+ WM_jobs_timer(wm_job, 0.2, NC_SCENE | ND_RENDER_RESULT, 0);
+ WM_jobs_callbacks(wm_job, render_startjob, NULL, NULL, render_endjob);
/* get a render result image, and make sure it is empty */
ima = BKE_image_verify_viewer(IMA_TYPE_R_RESULT, "Render Result");
@@ -582,17 +582,23 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
RE_progress_cb(re, rj, render_progress_update);
rj->re = re;
- G.afbreek = 0;
+ G.is_break = FALSE;
+
+ /* store actual owner of job, so modal operator could check for it,
+ * the reason of this is that active scene could change when rendering
+ * several layers from compositor [#31800]
+ */
+ op->customdata = scene;
- WM_jobs_start(CTX_wm_manager(C), steve);
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
WM_cursor_wait(0);
WM_event_add_notifier(C, NC_SCENE | ND_RENDER_RESULT, scene);
- /* we set G.rendering here already instead of only in the job, this ensure
+ /* we set G.is_rendering here already instead of only in the job, this ensure
* main loop or other scene updates are disabled in time, since they may
* have started before the job thread */
- G.rendering = 1;
+ G.is_rendering = TRUE;
/* add modal handler for ESC */
WM_event_add_modal_handler(C, op);
diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c
index d37a16cb1bb..85ae923f881 100644
--- a/source/blender/editors/render/render_opengl.c
+++ b/source/blender/editors/render/render_opengl.c
@@ -63,6 +63,7 @@
#include "RE_pipeline.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
+#include "IMB_colormanagement.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -138,27 +139,35 @@ static void screen_opengl_render_apply(OGLRender *oglrender)
SeqRenderData context;
int chanshown = oglrender->sseq ? oglrender->sseq->chanshown : 0;
- context = seq_new_render_data(oglrender->bmain, scene, oglrender->sizex, oglrender->sizey, 100.0f);
+ context = BKE_sequencer_new_render_data(oglrender->bmain, scene, oglrender->sizex, oglrender->sizey, 100.0f);
- ibuf = give_ibuf_seq(context, CFRA, chanshown);
+ ibuf = BKE_sequencer_give_ibuf(context, CFRA, chanshown);
if (ibuf) {
+ ImBuf *linear_ibuf;
+
BLI_assert((oglrender->sizex == ibuf->x) && (oglrender->sizey == ibuf->y));
- if (ibuf->rect_float == NULL) {
- /* internally sequencer working in sRGB space and stores both bytes and float
- * buffers in sRGB space, but if byte->float onversion doesn't happen in sequencer
- * (e.g. when adding image sequence/movie into sequencer) there'll be only
- * byte buffer and profile will still indicate sRGB->linear space conversion is needed
- * here we're ensure there'll be no conversion happen and float buffer would store
- * linear frame (sergey) */
- ibuf->profile = IB_PROFILE_NONE;
- IMB_float_from_rect(ibuf);
+ linear_ibuf = IMB_dupImBuf(ibuf);
+ IMB_freeImBuf(ibuf);
+
+ if (linear_ibuf->rect_float == NULL) {
+ /* internally sequencer working in display space and stores both bytes and float buffers in that space.
+ * It is possible that byte->float onversion didn't happen in sequencer (e.g. when adding image sequence/movie
+ * into sequencer) there'll be only byte buffer. Create float buffer from existing byte buffer, making it linear
+ */
+
+ IMB_float_from_rect(linear_ibuf);
+ }
+ else {
+ /* ensure float buffer is in linear space, not in display space */
+ BKE_sequencer_imbuf_from_sequencer_space(scene, linear_ibuf);
}
- memcpy(rr->rectf, ibuf->rect_float, sizeof(float) * 4 * oglrender->sizex * oglrender->sizey);
- IMB_freeImBuf(ibuf);
+ memcpy(rr->rectf, linear_ibuf->rect_float, sizeof(float) * 4 * oglrender->sizex * oglrender->sizey);
+
+ IMB_freeImBuf(linear_ibuf);
}
}
else if (view_context) {
@@ -181,7 +190,7 @@ static void screen_opengl_render_apply(OGLRender *oglrender)
}
if ((scene->r.mode & R_OSA) == 0) {
- ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat, TRUE);
+ ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat, TRUE, FALSE);
GPU_offscreen_read_pixels(oglrender->ofs, GL_FLOAT, rr->rectf);
}
else {
@@ -195,7 +204,7 @@ static void screen_opengl_render_apply(OGLRender *oglrender)
BLI_jitter_init(jit_ofs[0], scene->r.osa);
/* first sample buffer, also initializes 'rv3d->persmat' */
- ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat, TRUE);
+ ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat, TRUE, FALSE);
GPU_offscreen_read_pixels(oglrender->ofs, GL_FLOAT, accum_buffer);
/* skip the first sample */
@@ -205,7 +214,7 @@ static void screen_opengl_render_apply(OGLRender *oglrender)
(jit_ofs[j][0] * 2.0f) / sizex,
(jit_ofs[j][1] * 2.0f) / sizey);
- ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat_jitter, TRUE);
+ ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat_jitter, TRUE, FALSE);
GPU_offscreen_read_pixels(oglrender->ofs, GL_FLOAT, accum_tmp);
add_vn_vn(accum_buffer, accum_tmp, sizex * sizey * sizeof(float));
}
@@ -221,7 +230,7 @@ static void screen_opengl_render_apply(OGLRender *oglrender)
else {
/* shouldnt suddenly give errors mid-render but possible */
char err_out[256] = "unknown";
- ImBuf *ibuf_view = ED_view3d_draw_offscreen_imbuf_simple(scene, scene->camera, oglrender->sizex, oglrender->sizey, IB_rectfloat, OB_SOLID, TRUE, err_out);
+ ImBuf *ibuf_view = ED_view3d_draw_offscreen_imbuf_simple(scene, scene->camera, oglrender->sizex, oglrender->sizey, IB_rectfloat, OB_SOLID, TRUE, FALSE, err_out);
camera = scene->camera;
if (ibuf_view) {
@@ -233,27 +242,27 @@ static void screen_opengl_render_apply(OGLRender *oglrender)
}
}
- /* rr->rectf is now filled with image data */
-
- if ((scene->r.stamp & R_STAMP_ALL) && (scene->r.stamp & R_STAMP_DRAW))
- BKE_stamp_buf(scene, camera, NULL, rr->rectf, rr->rectx, rr->recty, 4);
-
/* note on color management:
*
* OpenGL renders into sRGB colors, but render buffers are expected to be
- * linear if color management is enabled. So we convert to linear here, so
- * the conversion back to bytes using the color management flag can make it
- * sRGB again, and so that e.g. openexr saving also saves the correct linear
- * float buffer. */
+ * linear So we convert to linear here, so the conversion back to bytes can make it
+ * sRGB (or other display space) again, and so that e.g. openexr saving also saves the
+ * correct linear float buffer.
+ */
- if (oglrender->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) {
- int predivide = 0; /* no alpha */
+ if (!oglrender->is_sequencer) {
+ /* sequencer has got tricker ocnversion happened above */
IMB_buffer_float_from_float(rr->rectf, rr->rectf,
- 4, IB_PROFILE_LINEAR_RGB, IB_PROFILE_SRGB, predivide,
+ 4, IB_PROFILE_LINEAR_RGB, IB_PROFILE_SRGB, FALSE,
oglrender->sizex, oglrender->sizey, oglrender->sizex, oglrender->sizex);
}
+ /* rr->rectf is now filled with image data */
+
+ if ((scene->r.stamp & R_STAMP_ALL) && (scene->r.stamp & R_STAMP_DRAW))
+ BKE_stamp_buf(scene, camera, NULL, rr->rectf, rr->rectx, rr->recty, 4);
+
RE_ReleaseResult(oglrender->re);
/* update byte from float buffer */
@@ -309,7 +318,7 @@ static int screen_opengl_render_init(bContext *C, wmOperator *op)
}
/* only one render job at a time */
- if (WM_jobs_test(CTX_wm_manager(C), scene))
+ if (WM_jobs_test(CTX_wm_manager(C), scene, WM_JOB_TYPE_RENDER))
return 0;
if (!is_view_context && scene->camera == NULL) {
@@ -476,12 +485,11 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
int ok = 0;
const short view_context = (oglrender->v3d != NULL);
Object *camera = NULL;
-
- /* update animated image textures for gpu, etc,
- * call before BKE_scene_update_for_newframe so modifiers with textures don't lag 1 frame */
- ED_image_update_frame(bmain, scene->r.cfra);
+ int is_movie;
/* go to next frame */
+ if (CFRA < oglrender->nfra)
+ CFRA++;
while (CFRA < oglrender->nfra) {
unsigned int lay = screen_opengl_layers(oglrender);
@@ -492,6 +500,25 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
CFRA++;
}
+ is_movie = BKE_imtype_is_movie(scene->r.im_format.imtype);
+
+ if (!is_movie) {
+ BKE_makepicstring(name, scene->r.pic, oglrender->bmain->name, scene->r.cfra, scene->r.im_format.imtype, scene->r.scemode & R_EXTENSION, TRUE);
+
+ if ((scene->r.mode & R_NO_OVERWRITE) && BLI_exists(name)) {
+ printf("skipping existing frame \"%s\"\n", name);
+
+ /* go to next frame */
+ oglrender->nfra += scene->r.frame_step;
+
+ return 1;
+ }
+ }
+
+ /* update animated image textures for gpu, etc,
+ * call before BKE_scene_update_for_newframe so modifiers with textures don't lag 1 frame */
+ ED_image_update_frame(bmain, CFRA);
+
BKE_scene_update_for_newframe(bmain, scene, screen_opengl_layers(oglrender));
if (view_context) {
@@ -518,12 +545,28 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
ibuf = BKE_image_acquire_ibuf(oglrender->ima, &oglrender->iuser, &lock);
if (ibuf) {
+ int needs_free = FALSE;
+
+ if (is_movie || !BKE_imtype_requires_linear_float(scene->r.im_format.imtype)) {
+ ImBuf *colormanage_ibuf;
+
+ colormanage_ibuf = IMB_colormanagement_imbuf_for_write(ibuf, TRUE, TRUE, &scene->view_settings,
+ &scene->display_settings, &scene->r.im_format);
+
+ // IMB_freeImBuf(ibuf); /* owned by the image */
+ ibuf = colormanage_ibuf;
+ needs_free = TRUE;
+ }
+
/* color -> grayscale */
/* editing directly would alter the render view */
if (scene->r.im_format.planes == R_IMF_PLANES_BW) {
- ImBuf *ibuf_bw = IMB_dupImBuf(ibuf);
+ ImBuf *ibuf_bw = IMB_dupImBuf(ibuf);
IMB_color_to_bw(ibuf_bw);
- // IMB_freeImBuf(ibuf); /* owned by the image */
+
+ if (needs_free)
+ IMB_freeImBuf(ibuf);
+
ibuf = ibuf_bw;
}
else {
@@ -533,10 +576,17 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
ibuf_cpy->rect = ibuf->rect;
ibuf_cpy->rect_float = ibuf->rect_float;
ibuf_cpy->zbuf_float = ibuf->zbuf_float;
+
+ if (needs_free) {
+ ibuf_cpy->mall = ibuf->mall;
+ ibuf->mall = 0;
+ IMB_freeImBuf(ibuf);
+ }
+
ibuf = ibuf_cpy;
}
- if (BKE_imtype_is_movie(scene->r.im_format.imtype)) {
+ if (is_movie) {
ok = oglrender->mh->append_movie(&scene->r, SFRA, CFRA, (int *)ibuf->rect,
oglrender->sizex, oglrender->sizey, oglrender->reports);
if (ok) {
@@ -545,7 +595,6 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
}
}
else {
- BKE_makepicstring(name, scene->r.pic, oglrender->bmain->name, scene->r.cfra, scene->r.im_format.imtype, scene->r.scemode & R_EXTENSION, TRUE);
ok = BKE_imbuf_write_stamp(scene, camera, ibuf, name, &scene->r.im_format);
if (ok == 0) {
@@ -569,10 +618,9 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
/* go to next frame */
oglrender->nfra += scene->r.frame_step;
- scene->r.cfra++;
/* stop at the end or on error */
- if (scene->r.cfra > PEFRA || !ok) {
+ if (CFRA >= PEFRA || !ok) {
screen_opengl_render_end(C, op->customdata);
return 0;
}
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c
index 6357cb48a3d..817067422af 100644
--- a/source/blender/editors/render/render_preview.c
+++ b/source/blender/editors/render/render_preview.c
@@ -64,6 +64,7 @@
#include "BKE_brush.h"
#include "BKE_context.h"
+#include "BKE_colortools.h"
#include "BKE_depsgraph.h"
#include "BKE_global.h"
#include "BKE_idprop.h"
@@ -75,11 +76,13 @@
#include "BKE_material.h"
#include "BKE_node.h"
#include "BKE_object.h"
+#include "BKE_scene.h"
#include "BKE_texture.h"
#include "BKE_world.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
+#include "IMB_colormanagement.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -115,7 +118,8 @@ ImBuf *get_brush_icon(Brush *brush)
BLI_strncpy(path, brush->icon_filepath, sizeof(brush->icon_filepath));
BLI_path_abs(path, G.main->name);
- brush->icon_imbuf = IMB_loadiffname(path, flags);
+ /* use default colorspaces for brushes */
+ brush->icon_imbuf = IMB_loadiffname(path, flags, NULL);
// otherwise lets try to find it in other directories
if (!(brush->icon_imbuf)) {
@@ -123,8 +127,10 @@ ImBuf *get_brush_icon(Brush *brush)
BLI_make_file_string(G.main->name, path, folder, brush->icon_filepath);
- if (path[0])
- brush->icon_imbuf = IMB_loadiffname(path, flags);
+ if (path[0]) {
+ /* use fefault color spaces */
+ brush->icon_imbuf = IMB_loadiffname(path, flags, NULL);
+ }
}
if (brush->icon_imbuf)
@@ -254,6 +260,10 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
}
sce->r.color_mgt_flag = scene->r.color_mgt_flag;
+ BKE_color_managed_display_settings_copy(&sce->display_settings, &scene->display_settings);
+
+ BKE_color_managed_view_settings_free(&sce->view_settings);
+ BKE_color_managed_view_settings_copy(&sce->view_settings, &scene->view_settings);
/* prevent overhead for small renders and icons (32) */
if (id && sp->sizex < 40)
@@ -261,9 +271,19 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
else
sce->r.xparts = sce->r.yparts = 4;
- /* exception: don't color manage texture previews or icons */
- if ((id && sp->pr_method == PR_ICON_RENDER) || id_type == ID_TE)
- sce->r.color_mgt_flag &= ~R_COLOR_MANAGEMENT;
+ /* exception: don't apply render part of display transform for texture previews or icons */
+ if ((id && sp->pr_method == PR_ICON_RENDER) || id_type == ID_TE) {
+ ColorManagedDisplaySettings *display_settings = &sce->display_settings;
+ ColorManagedViewSettings *view_settings = &sce->view_settings;
+
+ const char *default_view_name = IMB_colormanagement_view_get_default_name(display_settings->display_device);
+
+ view_settings->exposure = 0.0f;
+ view_settings->gamma = 1.0f;
+ view_settings->flag &= ~COLORMANAGE_VIEW_USE_CURVES;
+
+ BLI_strncpy(view_settings->view_transform, default_view_name, sizeof(view_settings->view_transform));
+ }
if ((id && sp->pr_method == PR_ICON_RENDER) && id_type != ID_WO)
sce->r.alphamode = R_ALPHAPREMUL;
@@ -474,12 +494,14 @@ static int ed_preview_draw_rect(ScrArea *sa, Scene *sce, ID *id, int split, int
RenderResult rres;
char name[32];
int do_gamma_correct = FALSE, do_predivide = FALSE;
- int offx = 0, newx = rect->xmax - rect->xmin, newy = rect->ymax - rect->ymin;
+ int offx = 0;
+ int newx = BLI_rcti_size_x(rect);
+ int newy = BLI_rcti_size_y(rect);
if (id && GS(id->name) != ID_TE) {
/* exception: don't color manage texture previews - show the raw values */
if (sce) {
- do_gamma_correct = sce->r.color_mgt_flag & R_COLOR_MANAGEMENT;
+ do_gamma_correct = TRUE;
do_predivide = sce->r.color_mgt_flag & R_COLOR_MANAGEMENT_PREDIVIDE;
}
}
@@ -512,15 +534,25 @@ static int ed_preview_draw_rect(ScrArea *sa, Scene *sce, ID *id, int split, int
/* temporary conversion to byte for drawing */
float fx = rect->xmin + offx;
float fy = rect->ymin;
- int profile_from = (do_gamma_correct) ? IB_PROFILE_LINEAR_RGB : IB_PROFILE_SRGB;
int dither = 0;
unsigned char *rect_byte;
rect_byte = MEM_mallocN(rres.rectx * rres.recty * sizeof(int), "ed_preview_draw_rect");
- IMB_buffer_byte_from_float(rect_byte, rres.rectf,
- 4, dither, IB_PROFILE_SRGB, profile_from, do_predivide,
- rres.rectx, rres.recty, rres.rectx, rres.rectx);
+ if (do_gamma_correct) {
+ IMB_display_buffer_transform_apply(rect_byte, rres.rectf, rres.rectx, rres.recty, 4,
+ &sce->view_settings, &sce->display_settings, do_predivide);
+
+ }
+ else {
+ /* OCIO_TODO: currently seems an exception for textures (came fro mlegacish time),
+ * but is it indeed expected behavior, or textures should be
+ * color managed as well?
+ */
+ IMB_buffer_byte_from_float(rect_byte, rres.rectf,
+ 4, dither, IB_PROFILE_SRGB, IB_PROFILE_LINEAR_RGB, do_predivide,
+ rres.rectx, rres.recty, rres.rectx, rres.rectx);
+ }
glaDrawPixelsSafe(fx, fy, rres.rectx, rres.recty, rres.rectx, GL_RGBA, GL_UNSIGNED_BYTE, rect_byte);
@@ -547,7 +579,8 @@ void ED_preview_draw(const bContext *C, void *idp, void *parentp, void *slotp, r
SpaceButs *sbuts = sa->spacedata.first;
rcti newrect;
int ok;
- int newx = rect->xmax - rect->xmin, newy = rect->ymax - rect->ymin;
+ int newx = BLI_rcti_size_x(rect);
+ int newy = BLI_rcti_size_y(rect);
newrect.xmin = rect->xmin;
newrect.xmax = rect->xmin;
@@ -683,7 +716,7 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
if (ELEM(sp->pr_method, PR_BUTS_RENDER, PR_NODE_RENDER)) {
RE_display_draw_cb(re, sp, shader_preview_draw);
}
- /* set this for all previews, default is react to G.afbreek still */
+ /* set this for all previews, default is react to G.is_break still */
RE_test_break_cb(re, sp, shader_preview_break);
/* lens adjust */
@@ -705,7 +738,7 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
}
else {
/* validate owner */
- //if (ri->rect==NULL)
+ //if (ri->rect == NULL)
// ri->rect= MEM_mallocN(sizeof(int)*ri->pr_rectx*ri->pr_recty, "BIF_previewrender");
//RE_ResultGet32(re, ri->rect);
}
@@ -746,7 +779,6 @@ static void shader_preview_free(void *customdata)
if (sp->matcopy) {
struct IDProperty *properties;
- int a;
/* node previews */
shader_preview_updatejob(sp);
@@ -754,13 +786,7 @@ static void shader_preview_free(void *customdata)
/* get rid of copied material */
BLI_remlink(&pr_main->mat, sp->matcopy);
- /* BKE_material_free decrements texture, prevent this. hack alert! */
- for (a = 0; a < MAX_MTEX; a++) {
- MTex *mtex = sp->matcopy->mtex[a];
- if (mtex && mtex->tex) mtex->tex = NULL;
- }
-
- BKE_material_free(sp->matcopy);
+ BKE_material_free_ex(sp->matcopy, FALSE);
properties = IDP_GetProperties((ID *)sp->matcopy, FALSE);
if (properties) {
@@ -792,7 +818,7 @@ static void shader_preview_free(void *customdata)
/* get rid of copied world */
BLI_remlink(&pr_main->world, sp->worldcopy);
- BKE_world_free(sp->worldcopy);
+ BKE_world_free_ex(sp->worldcopy, FALSE);
properties = IDP_GetProperties((ID *)sp->worldcopy, FALSE);
if (properties) {
@@ -1022,16 +1048,17 @@ static void icon_preview_free(void *customdata)
void ED_preview_icon_job(const bContext *C, void *owner, ID *id, unsigned int *rect, int sizex, int sizey)
{
- wmJob *steve;
+ wmJob *wm_job;
IconPreview *ip, *old_ip;
/* suspended start means it starts after 1 timer step, see WM_jobs_timer below */
- steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), owner, "Icon Preview", WM_JOB_EXCL_RENDER | WM_JOB_SUSPEND);
+ wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), owner, "Icon Preview",
+ WM_JOB_EXCL_RENDER | WM_JOB_SUSPEND, WM_JOB_TYPE_RENDER_PREVIEW);
ip = MEM_callocN(sizeof(IconPreview), "icon preview");
/* render all resolutions from suspended job too */
- old_ip = WM_jobs_get_customdata(steve);
+ old_ip = WM_jobs_customdata_get(wm_job);
if (old_ip)
BLI_movelisttolist(&ip->sizes, &old_ip->sizes);
@@ -1043,20 +1070,21 @@ void ED_preview_icon_job(const bContext *C, void *owner, ID *id, unsigned int *r
icon_preview_add_size(ip, rect, sizex, sizey);
/* setup job */
- WM_jobs_customdata(steve, ip, icon_preview_free);
- WM_jobs_timer(steve, 0.25, NC_MATERIAL, NC_MATERIAL);
- WM_jobs_callbacks(steve, icon_preview_startjob_all_sizes, NULL, NULL, icon_preview_endjob);
+ WM_jobs_customdata_set(wm_job, ip, icon_preview_free);
+ WM_jobs_timer(wm_job, 0.25, NC_MATERIAL, NC_MATERIAL);
+ WM_jobs_callbacks(wm_job, icon_preview_startjob_all_sizes, NULL, NULL, icon_preview_endjob);
- WM_jobs_start(CTX_wm_manager(C), steve);
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
}
void ED_preview_shader_job(const bContext *C, void *owner, ID *id, ID *parent, MTex *slot, int sizex, int sizey, int method)
{
Object *ob = CTX_data_active_object(C);
- wmJob *steve;
+ wmJob *wm_job;
ShaderPreview *sp;
- steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), owner, "Shader Preview", WM_JOB_EXCL_RENDER);
+ wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), owner, "Shader Preview",
+ WM_JOB_EXCL_RENDER, WM_JOB_TYPE_RENDER_PREVIEW);
sp = MEM_callocN(sizeof(ShaderPreview), "shader preview");
/* customdata for preview thread */
@@ -1072,11 +1100,11 @@ void ED_preview_shader_job(const bContext *C, void *owner, ID *id, ID *parent, M
else sp->col[0] = sp->col[1] = sp->col[2] = sp->col[3] = 1.0f;
/* setup job */
- WM_jobs_customdata(steve, sp, shader_preview_free);
- WM_jobs_timer(steve, 0.1, NC_MATERIAL, NC_MATERIAL);
- WM_jobs_callbacks(steve, common_preview_startjob, NULL, shader_preview_updatejob, NULL);
+ WM_jobs_customdata_set(wm_job, sp, shader_preview_free);
+ WM_jobs_timer(wm_job, 0.1, NC_MATERIAL, NC_MATERIAL);
+ WM_jobs_callbacks(wm_job, common_preview_startjob, NULL, shader_preview_updatejob, NULL);
- WM_jobs_start(CTX_wm_manager(C), steve);
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
}
void ED_preview_kill_jobs(const struct bContext *C)
diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c
index 21cd02c96f2..8bdd4e544e8 100644
--- a/source/blender/editors/render/render_shading.c
+++ b/source/blender/editors/render/render_shading.c
@@ -750,7 +750,8 @@ void TEXTURE_OT_envmap_save(wmOperatorType *ot)
prop = RNA_def_float_array(ot->srna, "layout", 12, default_envmap_layout, 0.0f, 0.0f, "File layout", "Flat array describing the X,Y position of each cube face in the output image, where 1 is the size of a face - order is [+Z -Z +Y -X -Y +X] (use -1 to skip a face)", 0.0f, 0.0f);
RNA_def_property_flag(prop, PROP_HIDDEN);
- WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE | MOVIEFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE | MOVIEFILE, FILE_SPECIAL, FILE_SAVE,
+ WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
}
static int envmap_clear_exec(bContext *C, wmOperator *UNUSED(op))
diff --git a/source/blender/editors/render/render_update.c b/source/blender/editors/render/render_update.c
index 08ccf37265b..cd55b91cb6b 100644
--- a/source/blender/editors/render/render_update.c
+++ b/source/blender/editors/render/render_update.c
@@ -224,8 +224,12 @@ static void material_changed(Main *bmain, Material *ma)
/* find node materials using this */
for (parent = bmain->mat.first; parent; parent = parent->id.next) {
- if (parent->use_nodes && parent->nodetree && nodes_use_material(parent->nodetree, ma)) ;
- else continue;
+ if (parent->use_nodes && parent->nodetree && nodes_use_material(parent->nodetree, ma)) {
+ /* pass */
+ }
+ else {
+ continue;
+ }
BKE_icon_changed(BKE_icon_getid(&parent->id));
@@ -247,9 +251,15 @@ static void texture_changed(Main *bmain, Tex *tex)
/* find materials */
for (ma = bmain->mat.first; ma; ma = ma->id.next) {
- if (mtex_use_tex(ma->mtex, MAX_MTEX, tex)) ;
- else if (ma->use_nodes && ma->nodetree && nodes_use_tex(ma->nodetree, tex)) ;
- else continue;
+ if (mtex_use_tex(ma->mtex, MAX_MTEX, tex)) {
+ /* pass */
+ }
+ else if (ma->use_nodes && ma->nodetree && nodes_use_tex(ma->nodetree, tex)) {
+ /* pass */
+ }
+ else {
+ continue;
+ }
BKE_icon_changed(BKE_icon_getid(&ma->id));
@@ -259,18 +269,30 @@ static void texture_changed(Main *bmain, Tex *tex)
/* find lamps */
for (la = bmain->lamp.first; la; la = la->id.next) {
- if (mtex_use_tex(la->mtex, MAX_MTEX, tex)) ;
- else if (la->nodetree && nodes_use_tex(la->nodetree, tex)) ;
- else continue;
+ if (mtex_use_tex(la->mtex, MAX_MTEX, tex)) {
+ /* pass */
+ }
+ else if (la->nodetree && nodes_use_tex(la->nodetree, tex)) {
+ /* pass */
+ }
+ else {
+ continue;
+ }
BKE_icon_changed(BKE_icon_getid(&la->id));
}
/* find worlds */
for (wo = bmain->world.first; wo; wo = wo->id.next) {
- if (mtex_use_tex(wo->mtex, MAX_MTEX, tex)) ;
- else if (wo->nodetree && nodes_use_tex(wo->nodetree, tex)) ;
- else continue;
+ if (mtex_use_tex(wo->mtex, MAX_MTEX, tex)) {
+ /* pass */
+ }
+ else if (wo->nodetree && nodes_use_tex(wo->nodetree, tex)) {
+ /* pass */
+ }
+ else {
+ continue;
+ }
BKE_icon_changed(BKE_icon_getid(&wo->id));
}
diff --git a/source/blender/editors/render/render_view.c b/source/blender/editors/render/render_view.c
index 0d902722183..01c0169eb50 100644
--- a/source/blender/editors/render/render_view.c
+++ b/source/blender/editors/render/render_view.c
@@ -297,7 +297,7 @@ static int render_view_show_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent
/* determine if render already shows */
if (sa) {
/* but don't close it when rendering */
- if (!G.rendering) {
+ if (G.is_rendering == FALSE) {
SpaceImage *sima = sa->spacedata.first;
if (sima->flag & SI_PREVSPACE) {
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index 9771fef2d58..ad9b0f61eb1 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -104,10 +104,10 @@ static void region_draw_emboss(ARegion *ar, rcti *scirct)
void ED_region_pixelspace(ARegion *ar)
{
- int width = ar->winrct.xmax - ar->winrct.xmin + 1;
- int height = ar->winrct.ymax - ar->winrct.ymin + 1;
+ int width = BLI_rcti_size_x(&ar->winrct) + 1;
+ int height = BLI_rcti_size_y(&ar->winrct) + 1;
- wmOrtho2(-0.375f, (float)width - 0.375f, -0.375f, (float)height - 0.375f);
+ wmOrtho2(-GLA_PIXEL_OFS, (float)width - GLA_PIXEL_OFS, -GLA_PIXEL_OFS, (float)height - GLA_PIXEL_OFS);
glLoadIdentity();
}
@@ -161,12 +161,15 @@ void ED_area_overdraw_flush(ScrArea *sa, ARegion *ar)
ys = (az->y1 + az->y2) / 2;
/* test if inside */
- if (BLI_in_rcti(&ar->winrct, xs, ys)) {
+ if (BLI_rcti_isect_pt(&ar->winrct, xs, ys)) {
az->do_draw = TRUE;
}
}
}
+/**
+ * \brief Corner widgets use for dragging and splitting the view.
+ */
static void area_draw_azone(short x1, short y1, short x2, short y2)
{
int dx = x2 - x1;
@@ -372,11 +375,11 @@ void ED_area_overdraw(bContext *C)
if (az->ar) {
/* only display tab or icons when the region is hidden */
if (az->ar->flag & (RGN_FLAG_HIDDEN | RGN_FLAG_TOO_SMALL)) {
- if (G.rt == 3)
+ if (G.debug_value == 3)
region_draw_azone_icon(az);
- else if (G.rt == 2)
+ else if (G.debug_value == 2)
region_draw_azone_tria(az);
- else if (G.rt == 1)
+ else if (G.debug_value == 1)
region_draw_azone_tab(az);
else
region_draw_azone_tab_plus(az);
@@ -403,9 +406,13 @@ void region_scissor_winrct(ARegion *ar, rcti *winrct)
while (ar->prev) {
ar = ar->prev;
- if (BLI_isect_rcti(winrct, &ar->winrct, NULL)) {
- if (ar->flag & RGN_FLAG_HIDDEN) ;
- else if (ar->alignment & RGN_SPLIT_PREV) ;
+ if (BLI_rcti_isect(winrct, &ar->winrct, NULL)) {
+ if (ar->flag & RGN_FLAG_HIDDEN) {
+ /* pass */
+ }
+ else if (ar->alignment & RGN_SPLIT_PREV) {
+ /* pass */
+ }
else if (ar->alignment == RGN_OVERLAP_LEFT) {
winrct->xmin = ar->winrct.xmax + 1;
}
@@ -592,13 +599,17 @@ void ED_area_headerprint(ScrArea *sa, const char *str)
/* ************************************************************ */
-static void area_azone_initialize(ScrArea *sa)
+static void area_azone_initialize(bScreen *screen, ScrArea *sa)
{
AZone *az;
/* reinitalize entirely, regions add azones too */
BLI_freelistN(&sa->actionzones);
-
+
+ if (screen->full != SCREENNORMAL) {
+ return;
+ }
+
/* set area action zones */
az = (AZone *)MEM_callocN(sizeof(AZone), "actionzone");
BLI_addtail(&(sa->actionzones), az);
@@ -607,7 +618,7 @@ static void area_azone_initialize(ScrArea *sa)
az->y1 = sa->totrct.ymin - 1;
az->x2 = sa->totrct.xmin + (AZONESPOT - 1);
az->y2 = sa->totrct.ymin + (AZONESPOT - 1);
- BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2);
+ BLI_rcti_init(&az->rect, az->x1, az->x2, az->y1, az->y2);
az = (AZone *)MEM_callocN(sizeof(AZone), "actionzone");
BLI_addtail(&(sa->actionzones), az);
@@ -616,7 +627,7 @@ static void area_azone_initialize(ScrArea *sa)
az->y1 = sa->totrct.ymax + 1;
az->x2 = sa->totrct.xmax - (AZONESPOT - 1);
az->y2 = sa->totrct.ymax - (AZONESPOT - 1);
- BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2);
+ BLI_rcti_init(&az->rect, az->x1, az->x2, az->y1, az->y2);
}
#define AZONEPAD_EDGE 4
@@ -650,7 +661,7 @@ static void region_azone_edge(AZone *az, ARegion *ar)
break;
}
- BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2);
+ BLI_rcti_init(&az->rect, az->x1, az->x2, az->y1, az->y2);
}
static void region_azone_icon(ScrArea *sa, AZone *az, ARegion *ar)
@@ -692,7 +703,7 @@ static void region_azone_icon(ScrArea *sa, AZone *az, ARegion *ar)
break;
}
- BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2);
+ BLI_rcti_init(&az->rect, az->x1, az->x2, az->y1, az->y2);
/* if more azones on 1 spot, set offset */
for (azt = sa->actionzones.first; azt; azt = azt->next) {
@@ -706,7 +717,7 @@ static void region_azone_icon(ScrArea *sa, AZone *az, ARegion *ar)
az->y1 -= AZONESPOT;
az->y2 -= AZONESPOT;
}
- BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2);
+ BLI_rcti_init(&az->rect, az->x1, az->x2, az->y1, az->y2);
}
}
}
@@ -753,7 +764,7 @@ static void region_azone_tab_plus(ScrArea *sa, AZone *az, ARegion *ar)
break;
}
/* rect needed for mouse pointer test */
- BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2);
+ BLI_rcti_init(&az->rect, az->x1, az->x2, az->y1, az->y2);
}
@@ -798,7 +809,7 @@ static void region_azone_tab(ScrArea *sa, AZone *az, ARegion *ar)
break;
}
/* rect needed for mouse pointer test */
- BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2);
+ BLI_rcti_init(&az->rect, az->x1, az->x2, az->y1, az->y2);
}
#define AZONEPAD_TRIAW 16
@@ -843,7 +854,7 @@ static void region_azone_tria(ScrArea *sa, AZone *az, ARegion *ar)
break;
}
/* rect needed for mouse pointer test */
- BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2);
+ BLI_rcti_init(&az->rect, az->x1, az->x2, az->y1, az->y2);
}
@@ -858,11 +869,11 @@ static void region_azone_initialize(ScrArea *sa, ARegion *ar, AZEdge edge)
az->edge = edge;
if (ar->flag & (RGN_FLAG_HIDDEN | RGN_FLAG_TOO_SMALL)) {
- if (G.rt == 3)
+ if (G.debug_value == 3)
region_azone_icon(sa, az, ar);
- else if (G.rt == 2)
+ else if (G.debug_value == 2)
region_azone_tria(sa, az, ar);
- else if (G.rt == 1)
+ else if (G.debug_value == 1)
region_azone_tab(sa, az, ar);
else
region_azone_tab_plus(sa, az, ar);
@@ -894,10 +905,10 @@ static void region_azone_add(ScrArea *sa, ARegion *ar, int alignment)
static int rct_fits(rcti *rect, char dir, int size)
{
if (dir == 'h') {
- return rect->xmax - rect->xmin - size;
+ return BLI_rcti_size_x(rect) - size;
}
- else { // 'v'
- return rect->ymax - rect->ymin - size;
+ else { /* 'v' */
+ return BLI_rcti_size_y(rect) - size;
}
}
@@ -911,7 +922,7 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int
return;
/* no returns in function, winrct gets set in the end again */
- BLI_init_rcti(&ar->winrct, 0, 0, 0, 0);
+ BLI_rcti_init(&ar->winrct, 0, 0, 0, 0);
/* for test; allow split of previously defined region */
if (ar->alignment & RGN_SPLIT_PREV)
@@ -928,26 +939,31 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int
/* prefsize, for header we stick to exception */
prefsizex = ar->sizex ? ar->sizex : ar->type->prefsizex;
- if (ar->regiontype == RGN_TYPE_HEADER)
+ if (ar->regiontype == RGN_TYPE_HEADER) {
prefsizey = ar->type->prefsizey;
+ }
else if (ar->regiontype == RGN_TYPE_UI && sa->spacetype == SPACE_FILE) {
prefsizey = UI_UNIT_Y * 2 + (UI_UNIT_Y / 2);
}
- else
+ else {
prefsizey = ar->sizey ? ar->sizey : ar->type->prefsizey;
-
- /* hidden is user flag */
- if (ar->flag & RGN_FLAG_HIDDEN) ;
- /* XXX floating area region, not handled yet here */
- else if (alignment == RGN_ALIGN_FLOAT) ;
- /* remainder is too small for any usage */
+ }
+
+
+ if (ar->flag & RGN_FLAG_HIDDEN) {
+ /* hidden is user flag */
+ }
+ else if (alignment == RGN_ALIGN_FLOAT) {
+ /* XXX floating area region, not handled yet here */
+ }
else if (rct_fits(remainder, 'v', 1) < 0 || rct_fits(remainder, 'h', 1) < 0) {
+ /* remainder is too small for any usage */
ar->flag |= RGN_FLAG_TOO_SMALL;
}
else if (alignment == RGN_ALIGN_NONE) {
/* typically last region */
ar->winrct = *remainder;
- BLI_init_rcti(remainder, 0, 0, 0, 0);
+ BLI_rcti_init(remainder, 0, 0, 0, 0);
}
else if (alignment == RGN_ALIGN_TOP || alignment == RGN_ALIGN_BOTTOM) {
@@ -1003,20 +1019,20 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int
if (alignment == RGN_ALIGN_HSPLIT) {
if (rct_fits(remainder, 'h', prefsizex) > 4) {
- ar->winrct.xmax = (remainder->xmin + remainder->xmax) / 2;
+ ar->winrct.xmax = BLI_rcti_cent_x(remainder);
remainder->xmin = ar->winrct.xmax + 1;
}
else {
- BLI_init_rcti(remainder, 0, 0, 0, 0);
+ BLI_rcti_init(remainder, 0, 0, 0, 0);
}
}
else {
if (rct_fits(remainder, 'v', prefsizey) > 4) {
- ar->winrct.ymax = (remainder->ymin + remainder->ymax) / 2;
+ ar->winrct.ymax = BLI_rcti_cent_y(remainder);
remainder->ymin = ar->winrct.ymax + 1;
}
else {
- BLI_init_rcti(remainder, 0, 0, 0, 0);
+ BLI_rcti_init(remainder, 0, 0, 0, 0);
}
}
}
@@ -1036,7 +1052,7 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int
if (count != 4) {
/* let's stop adding regions */
- BLI_init_rcti(remainder, 0, 0, 0, 0);
+ BLI_rcti_init(remainder, 0, 0, 0, 0);
if (G.debug & G_DEBUG)
printf("region quadsplit failed\n");
}
@@ -1044,21 +1060,21 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int
}
if (quad) {
if (quad == 1) { /* left bottom */
- ar->winrct.xmax = (remainder->xmin + remainder->xmax) / 2;
- ar->winrct.ymax = (remainder->ymin + remainder->ymax) / 2;
+ ar->winrct.xmax = BLI_rcti_cent_x(remainder);
+ ar->winrct.ymax = BLI_rcti_cent_y(remainder);
}
else if (quad == 2) { /* left top */
- ar->winrct.xmax = (remainder->xmin + remainder->xmax) / 2;
- ar->winrct.ymin = 1 + (remainder->ymin + remainder->ymax) / 2;
+ ar->winrct.xmax = BLI_rcti_cent_x(remainder);
+ ar->winrct.ymin = BLI_rcti_cent_y(remainder) + 1;
}
else if (quad == 3) { /* right bottom */
- ar->winrct.xmin = 1 + (remainder->xmin + remainder->xmax) / 2;
- ar->winrct.ymax = (remainder->ymin + remainder->ymax) / 2;
+ ar->winrct.xmin = BLI_rcti_cent_x(remainder) + 1;
+ ar->winrct.ymax = BLI_rcti_cent_y(remainder);
}
else { /* right top */
- ar->winrct.xmin = 1 + (remainder->xmin + remainder->xmax) / 2;
- ar->winrct.ymin = 1 + (remainder->ymin + remainder->ymax) / 2;
- BLI_init_rcti(remainder, 0, 0, 0, 0);
+ ar->winrct.xmin = BLI_rcti_cent_x(remainder) + 1;
+ ar->winrct.ymin = BLI_rcti_cent_y(remainder) + 1;
+ BLI_rcti_init(remainder, 0, 0, 0, 0);
}
quad++;
@@ -1066,8 +1082,8 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int
}
/* for speedup */
- ar->winx = ar->winrct.xmax - ar->winrct.xmin + 1;
- ar->winy = ar->winrct.ymax - ar->winrct.ymin + 1;
+ ar->winx = BLI_rcti_size_x(&ar->winrct) + 1;
+ ar->winy = BLI_rcti_size_y(&ar->winrct) + 1;
/* set winrect for azones */
if (ar->flag & (RGN_FLAG_HIDDEN | RGN_FLAG_TOO_SMALL)) {
@@ -1089,8 +1105,8 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int
if (ar->alignment & RGN_SPLIT_PREV) {
if (ar->prev) {
remainder = remainder_prev;
- ar->prev->winx = ar->prev->winrct.xmax - ar->prev->winrct.xmin + 1;
- ar->prev->winy = ar->prev->winrct.ymax - ar->prev->winrct.ymin + 1;
+ ar->prev->winx = BLI_rcti_size_x(&ar->prev->winrct) + 1;
+ ar->prev->winy = BLI_rcti_size_y(&ar->prev->winrct) + 1;
}
}
@@ -1113,7 +1129,7 @@ static void region_rect_recursive(ScrArea *sa, ARegion *ar, rcti *remainder, int
static void area_calc_totrct(ScrArea *sa, int sizex, int sizey)
{
- short rt = 0; // CLAMPIS(G.rt, 0, 16);
+ short rt = 0; // CLAMPIS(G.debug_value, 0, 16);
if (sa->v1->vec.x > 0) sa->totrct.xmin = sa->v1->vec.x + 1 + rt;
else sa->totrct.xmin = sa->v1->vec.x;
@@ -1126,8 +1142,8 @@ static void area_calc_totrct(ScrArea *sa, int sizex, int sizey)
else sa->totrct.ymax = sa->v2->vec.y;
/* for speedup */
- sa->winx = sa->totrct.xmax - sa->totrct.xmin + 1;
- sa->winy = sa->totrct.ymax - sa->totrct.ymin + 1;
+ sa->winx = BLI_rcti_size_x(&sa->totrct) + 1;
+ sa->winy = BLI_rcti_size_y(&sa->totrct) + 1;
}
@@ -1149,7 +1165,7 @@ static void ed_default_handlers(wmWindowManager *wm, ScrArea *sa, ListBase *hand
{
/* note, add-handler checks if it already exists */
- // XXX it would be good to have boundbox checks for some of these...
+ /* XXX it would be good to have boundbox checks for some of these... */
if (flag & ED_KEYMAP_UI) {
/* user interface widgets */
UI_add_region_handlers(handlers);
@@ -1219,7 +1235,7 @@ void ED_area_initialize(wmWindowManager *wm, wmWindow *win, ScrArea *sa)
area_calc_totrct(sa, win->sizex, win->sizey);
/* clear all azones, add the area triange widgets */
- area_azone_initialize(sa);
+ area_azone_initialize(win->screen, sa);
/* region rect sizes */
rect = sa->totrct;
@@ -1261,8 +1277,8 @@ void ED_region_init(bContext *C, ARegion *ar)
/* refresh can be called before window opened */
region_subwindow(CTX_wm_window(C), ar);
- ar->winx = ar->winrct.xmax - ar->winrct.xmin + 1;
- ar->winy = ar->winrct.ymax - ar->winrct.ymin + 1;
+ ar->winx = BLI_rcti_size_x(&ar->winrct) + 1;
+ ar->winy = BLI_rcti_size_y(&ar->winrct) + 1;
/* UI convention */
wmOrtho2(-0.01f, ar->winx - 0.01f, -0.01f, ar->winy - 0.01f);
@@ -1297,7 +1313,7 @@ void area_copy_data(ScrArea *sa1, ScrArea *sa2, int swap_space)
if (swap_space == 1) {
SWAP(ListBase, sa1->spacedata, sa2->spacedata);
/* exception: ensure preview is reset */
-// if (sa1->spacetype==SPACE_VIEW3D)
+// if (sa1->spacetype == SPACE_VIEW3D)
// XXX BIF_view3d_previewrender_free(sa1->spacedata.first);
}
else if (swap_space == 2) {
@@ -1418,7 +1434,7 @@ void ED_area_newspace(bContext *C, ScrArea *sa, int type)
/* tell WM to refresh, cursor types etc */
WM_event_add_mousemove(C);
- /*send space change notifier*/
+ /* send space change notifier */
WM_event_add_notifier(C, NC_SPACE | ND_SPACE_CHANGED, sa);
ED_area_tag_refresh(sa);
@@ -1445,46 +1461,46 @@ void ED_area_prevspace(bContext *C, ScrArea *sa)
}
ED_area_tag_redraw(sa);
- /*send space change notifier*/
+ /* send space change notifier */
WM_event_add_notifier(C, NC_SPACE | ND_SPACE_CHANGED, sa);
}
static const char *editortype_pup(void)
{
const char *types = N_(
- "Editor type:%t"
+ "Editor type: %t"
"|3D View %x1"
"|%l"
-
+
"|Timeline %x15"
"|Graph Editor %x2"
"|DopeSheet %x12"
"|NLA Editor %x13"
-
+
"|%l"
-
+
"|UV/Image Editor %x6"
-
+
"|Video Sequence Editor %x8"
"|Movie Clip Editor %x20"
"|Text Editor %x9"
"|Node Editor %x16"
"|Logic Editor %x17"
-
+
"|%l"
-
+
"|Properties %x4"
"|Outliner %x3"
"|User Preferences %x19"
- "|Info%x7"
+ "|Info %x7"
"|%l"
"|File Browser %x5"
-
+
"|%l"
-
+
"|Python Console %x18"
);
@@ -1496,7 +1512,7 @@ static void spacefunc(struct bContext *C, void *UNUSED(arg1), void *UNUSED(arg2)
ED_area_newspace(C, CTX_wm_area(C), CTX_wm_area(C)->butspacetype);
ED_area_tag_redraw(CTX_wm_area(C));
- /*send space change notifier*/
+ /* send space change notifier */
WM_event_add_notifier(C, NC_SPACE | ND_SPACE_CHANGED, CTX_wm_area(C));
}
@@ -1510,7 +1526,7 @@ int ED_area_header_switchbutton(const bContext *C, uiBlock *block, int yco)
but = uiDefIconTextButC(block, ICONTEXTROW, 0, ICON_VIEW3D,
editortype_pup(), xco, yco, UI_UNIT_X + 10, UI_UNIT_Y,
&(sa->butspacetype), 1.0, SPACEICONMAX, 0, 0,
- TIP_("Displays current editor type. Click for menu of available types"));
+ TIP_("Display current editor type (click for a menu of available types)"));
uiButSetFunc(but, spacefunc, NULL, NULL);
uiButClearFlag(but, UI_BUT_UNDO); /* skip undo on screen buttons */
@@ -1567,7 +1583,7 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char *
newcontext = UI_view2d_tab_set(v2d, contextnr);
if (vertical) {
- w = v2d->cur.xmax - v2d->cur.xmin;
+ w = BLI_rctf_size_x(&v2d->cur);
em = (ar->type->prefsizex) ? UI_UNIT_Y / 2 : UI_UNIT_Y;
}
else {
@@ -1654,7 +1670,7 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char *
v2d->scroll |= V2D_SCROLL_HORIZONTAL_HIDE;
v2d->scroll &= ~V2D_SCROLL_VERTICAL_HIDE;
- // don't jump back when panels close or hide
+ /* don't jump back when panels close or hide */
if (!newcontext)
y = MAX2(-y, -v2d->cur.ymin);
else
@@ -1669,14 +1685,14 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char *
//v2d->keepofs &= ~(V2D_LOCKOFS_X|V2D_KEEPOFS_Y);
v2d->scroll |= V2D_SCROLL_VERTICAL_HIDE;
v2d->scroll &= ~V2D_SCROLL_HORIZONTAL_HIDE;
-
- // don't jump back when panels close or hide
+
+ /* don't jump back when panels close or hide */
if (!newcontext)
x = MAX2(x, v2d->cur.xmax);
y = -y;
}
- // +V2D_SCROLL_HEIGHT is workaround to set the actual height
+ /* +V2D_SCROLL_HEIGHT is workaround to set the actual height */
UI_view2d_totRect_set(v2d, x + V2D_SCROLL_WIDTH, y + V2D_SCROLL_HEIGHT);
/* set the view */
@@ -1698,17 +1714,17 @@ void ED_region_panels_init(wmWindowManager *wm, ARegion *ar)
{
wmKeyMap *keymap;
- // XXX quick hacks for files saved with 2.5 already (i.e. the builtin defaults file)
- // scrollbars for button regions
+ /* XXX quick hacks for files saved with 2.5 already (i.e. the builtin defaults file)
+ * scrollbars for button regions */
ar->v2d.scroll |= (V2D_SCROLL_RIGHT | V2D_SCROLL_BOTTOM);
ar->v2d.scroll |= V2D_SCROLL_HORIZONTAL_HIDE;
ar->v2d.scroll &= ~V2D_SCROLL_VERTICAL_HIDE;
ar->v2d.keepzoom |= V2D_KEEPZOOM;
- // correctly initialized User-Prefs?
+ /* correctly initialized User-Prefs? */
if (!(ar->v2d.align & V2D_ALIGN_NO_POS_Y))
ar->v2d.flag &= ~V2D_IS_INITIALISED;
-
+
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_PANELS_UI, ar->winx, ar->winy);
keymap = WM_keymap_find(wm->defaultconf, "View2D Buttons List", 0, 0);
@@ -1762,7 +1778,7 @@ void ED_region_header(const bContext *C, ARegion *ar)
}
/* always as last */
- UI_view2d_totRect_set(&ar->v2d, maxco + UI_UNIT_X + 80, ar->v2d.tot.ymax - ar->v2d.tot.ymin);
+ UI_view2d_totRect_set(&ar->v2d, maxco + UI_UNIT_X + 80, BLI_rctf_size_y(&ar->v2d.tot));
/* restore view matrix? */
UI_view2d_view_restore(C);
@@ -1791,16 +1807,16 @@ void ED_region_info_draw(ARegion *ar, const char *text, int block, float alpha)
/* background box */
rect = ar->winrct;
rect.xmin = 0;
- rect.ymin = ar->winrct.ymax - ar->winrct.ymin - header_height;
+ rect.ymin = BLI_rcti_size_y(&ar->winrct) - header_height;
if (block) {
- rect.xmax = ar->winrct.xmax - ar->winrct.xmin;
+ rect.xmax = BLI_rcti_size_x(&ar->winrct);
}
else {
rect.xmax = rect.xmin + BLF_width(fontid, text) + 24;
}
- rect.ymax = ar->winrct.ymax - ar->winrct.ymin;
+ rect.ymax = BLI_rcti_size_y(&ar->winrct);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
diff --git a/source/blender/editors/screen/glutil.c b/source/blender/editors/screen/glutil.c
index 0f1ffb856e7..24053d76672 100644
--- a/source/blender/editors/screen/glutil.c
+++ b/source/blender/editors/screen/glutil.c
@@ -35,6 +35,7 @@
#include "DNA_vec_types.h"
+#include "BLI_rect.h"
#include "BLI_utildefines.h"
#include "BKE_colortools.h"
@@ -297,13 +298,13 @@ void setlinestyle(int nr)
/* Invert line handling */
-#define gl_toggle(mode, onoff) (((onoff) ? glEnable : glDisable)(mode))
+#define GL_TOGGLE(mode, onoff) (((onoff) ? glEnable : glDisable)(mode))
void set_inverted_drawing(int enable)
{
glLogicOp(enable ? GL_INVERT : GL_COPY);
- gl_toggle(GL_COLOR_LOGIC_OP, enable);
- gl_toggle(GL_DITHER, !enable);
+ GL_TOGGLE(GL_COLOR_LOGIC_OP, enable);
+ GL_TOGGLE(GL_DITHER, !enable);
}
void sdrawXORline(int x0, int y0, int x1, int y1)
@@ -624,8 +625,8 @@ void glaDrawPixelsSafe(float x, float y, int img_w, int img_h, int row_w, int fo
* covers the entire screen).
*/
glGetFloatv(GL_SCISSOR_BOX, scissor);
- draw_w = MIN2(img_w - off_x, ceil((scissor[2] - rast_x) / xzoom));
- draw_h = MIN2(img_h - off_y, ceil((scissor[3] - rast_y) / yzoom));
+ draw_w = mini(img_w - off_x, ceil((scissor[2] - rast_x) / xzoom));
+ draw_h = mini(img_h - off_y, ceil((scissor[3] - rast_y) / yzoom));
if (draw_w > 0 && draw_h > 0) {
int old_row_length = glaGetOneInteger(GL_UNPACK_ROW_LENGTH);
@@ -668,13 +669,13 @@ void glaDrawPixelsSafe(float x, float y, int img_w, int img_h, int row_w, int fo
void glaDefine2DArea(rcti *screen_rect)
{
- int sc_w = screen_rect->xmax - screen_rect->xmin + 1;
- int sc_h = screen_rect->ymax - screen_rect->ymin + 1;
+ const int sc_w = BLI_rcti_size_x(screen_rect) + 1;
+ const int sc_h = BLI_rcti_size_y(screen_rect) + 1;
glViewport(screen_rect->xmin, screen_rect->ymin, sc_w, sc_h);
glScissor(screen_rect->xmin, screen_rect->ymin, sc_w, sc_h);
- /* The 0.375 magic number is to shift the matrix so that
+ /* The GLA_PIXEL_OFS magic number is to shift the matrix so that
* both raster and vertex integer coordinates fall at pixel
* centers properly. For a longer discussion see the OpenGL
* Programming Guide, Appendix H, Correctness Tips.
@@ -683,7 +684,7 @@ void glaDefine2DArea(rcti *screen_rect)
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, sc_w, 0.0, sc_h, -1, 1);
- glTranslatef(0.375, 0.375, 0.0);
+ glTranslatef(GLA_PIXEL_OFS, GLA_PIXEL_OFS, 0.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
@@ -713,10 +714,10 @@ void gla2DSetMap(gla2DDrawInfo *di, rctf *rect)
di->world_rect = *rect;
- sc_w = (di->screen_rect.xmax - di->screen_rect.xmin);
- sc_h = (di->screen_rect.ymax - di->screen_rect.ymin);
- wo_w = (di->world_rect.xmax - di->world_rect.xmin);
- wo_h = (di->world_rect.ymax - di->world_rect.ymin);
+ sc_w = BLI_rcti_size_x(&di->screen_rect);
+ sc_h = BLI_rcti_size_y(&di->screen_rect);
+ wo_w = BLI_rcti_size_x(&di->world_rect);
+ wo_h = BLI_rcti_size_y(&di->world_rect);
di->wo_to_sc[0] = sc_w / wo_w;
di->wo_to_sc[1] = sc_h / wo_h;
@@ -744,10 +745,10 @@ gla2DDrawInfo *glaBegin2DDraw(rcti *screen_rect, rctf *world_rect)
di->world_rect.ymax = di->screen_rect.ymax;
}
- sc_w = (di->screen_rect.xmax - di->screen_rect.xmin);
- sc_h = (di->screen_rect.ymax - di->screen_rect.ymin);
- wo_w = (di->world_rect.xmax - di->world_rect.xmin);
- wo_h = (di->world_rect.ymax - di->world_rect.ymin);
+ sc_w = BLI_rcti_size_x(&di->screen_rect);
+ sc_h = BLI_rcti_size_y(&di->screen_rect);
+ wo_w = BLI_rcti_size_x(&di->world_rect);
+ wo_h = BLI_rcti_size_y(&di->world_rect);
di->wo_to_sc[0] = sc_w / wo_w;
di->wo_to_sc[1] = sc_h / wo_h;
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index a638aac9423..2e1723027b8 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -40,6 +40,7 @@
#include "BLI_utildefines.h"
#include "BKE_context.h"
+#include "BKE_depsgraph.h"
#include "BKE_global.h"
#include "BKE_library.h"
#include "BKE_main.h"
@@ -704,10 +705,6 @@ static void screen_test_scale(bScreen *sc, int winsizex, int winsizey)
/* *********************** DRAWING **************************************** */
-
-#define SCR_BACK 0.55
-#define SCR_ROUND 12
-
/* draw vertical shape visualizing future joining (left as well
* right direction of future joining) */
static void draw_horizontal_join_shape(ScrArea *sa, char dir)
@@ -913,7 +910,7 @@ static void drawscredge_area(ScrArea *sa, int sizex, int sizey, int center)
short y2 = sa->v3->vec.y;
short a, rt;
- rt = 0; // CLAMPIS(G.rt, 0, 16);
+ rt = 0; // CLAMPIS(G.debug_value, 0, 16);
if (center == 0) {
cpack(0x505050);
@@ -1219,7 +1216,7 @@ static void screen_cursor_set(wmWindow *win, wmEvent *event)
ScrArea *sa;
for (sa = win->screen->areabase.first; sa; sa = sa->next)
- if ((az = is_in_area_actionzone(sa, event->x, event->y)))
+ if ((az = is_in_area_actionzone(sa, &event->x)))
break;
if (sa) {
@@ -1262,12 +1259,12 @@ void ED_screen_set_subwinactive(bContext *C, wmEvent *event)
for (sa = scr->areabase.first; sa; sa = sa->next) {
if (event->x > sa->totrct.xmin && event->x < sa->totrct.xmax)
if (event->y > sa->totrct.ymin && event->y < sa->totrct.ymax)
- if (NULL == is_in_area_actionzone(sa, event->x, event->y))
+ if (NULL == is_in_area_actionzone(sa, &event->x))
break;
}
if (sa) {
for (ar = sa->regionbase.first; ar; ar = ar->next) {
- if (BLI_in_rcti(&ar->winrct, event->x, event->y))
+ if (BLI_rcti_isect_pt_v(&ar->winrct, &event->x))
scr->subwinactive = ar->swinid;
}
}
@@ -1314,7 +1311,7 @@ int ED_screen_area_active(const bContext *C)
ScrArea *sa = CTX_wm_area(C);
if (win && sc && sa) {
- AZone *az = is_in_area_actionzone(sa, win->eventstate->x, win->eventstate->y);
+ AZone *az = is_in_area_actionzone(sa, &win->eventstate->x);
ARegion *ar;
if (az && az->type == AZONE_REGION)
@@ -1471,7 +1468,7 @@ void ED_screen_set_scene(bContext *C, bScreen *screen, Scene *scene)
/* are there cameras in the views that are not in the scene? */
for (sc = CTX_data_main(C)->screen.first; sc; sc = sc->id.next) {
- if ( (U.flag & USER_SCENEGLOBAL) || sc == screen) {
+ if ((U.flag & USER_SCENEGLOBAL) || sc == screen) {
ScrArea *sa = sc->areabase.first;
while (sa) {
SpaceLink *sl = sa->spacedata.first;
@@ -1483,7 +1480,7 @@ void ED_screen_set_scene(bContext *C, bScreen *screen, Scene *scene)
if (!v3d->camera || !BKE_scene_base_find(scene, v3d->camera)) {
v3d->camera = BKE_scene_camera_find(sc->scene);
- // XXX if (sc==curscreen) handle_view3d_lock();
+ // XXX if (sc == curscreen) handle_view3d_lock();
if (!v3d->camera) {
ARegion *ar;
for (ar = v3d->regionbase.first; ar; ar = ar->next) {
@@ -1506,6 +1503,7 @@ void ED_screen_set_scene(bContext *C, bScreen *screen, Scene *scene)
CTX_data_scene_set(C, scene);
BKE_scene_set_background(bmain, scene);
+ DAG_on_visible_update(bmain, FALSE);
ED_render_engine_changed(bmain);
ED_update_for_newframe(bmain, scene, 1);
@@ -1767,12 +1765,22 @@ void ED_screen_animation_timer(bContext *C, int redraws, int refresh, int sync,
sad->ar = CTX_wm_region(C);
/* if startframe is larger than current frame, we put currentframe on startframe.
* note: first frame then is not drawn! (ton) */
- if (scene->r.sfra > scene->r.cfra) {
- sad->sfra = scene->r.cfra;
- scene->r.cfra = scene->r.sfra;
+ if (PRVRANGEON) {
+ if (scene->r.psfra > scene->r.cfra) {
+ sad->sfra = scene->r.cfra;
+ scene->r.cfra = scene->r.psfra;
+ }
+ else
+ sad->sfra = scene->r.cfra;
+ }
+ else {
+ if (scene->r.sfra > scene->r.cfra) {
+ sad->sfra = scene->r.cfra;
+ scene->r.cfra = scene->r.sfra;
+ }
+ else
+ sad->sfra = scene->r.cfra;
}
- else
- sad->sfra = scene->r.cfra;
sad->redraws = redraws;
sad->refresh = refresh;
sad->flag |= (enable < 0) ? ANIMPLAY_FLAG_REVERSE : 0;
diff --git a/source/blender/editors/screen/screen_intern.h b/source/blender/editors/screen/screen_intern.h
index aa11c3eecdd..86d99777e98 100644
--- a/source/blender/editors/screen/screen_intern.h
+++ b/source/blender/editors/screen/screen_intern.h
@@ -54,7 +54,7 @@ void removenotused_scredges(bScreen *sc);
int scredge_is_horizontal(ScrEdge *se);
ScrEdge *screen_find_active_scredge(bScreen *sc, int mx, int my);
-struct AZone *is_in_area_actionzone(ScrArea *sa, int x, int y);
+struct AZone *is_in_area_actionzone(ScrArea *sa, const int xy[2]);
/* screen_context.c */
int ed_screen_context(const bContext *C, const char *member, bContextDataResult *result);
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index 6be276dea14..c64a4a37f3a 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -65,15 +65,16 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_util.h"
+#include "ED_armature.h"
+#include "ED_clip.h"
#include "ED_image.h"
-#include "ED_screen.h"
+#include "ED_keyframes_draw.h"
#include "ED_object.h"
-#include "ED_armature.h"
+#include "ED_screen.h"
#include "ED_screen_types.h"
-#include "ED_keyframes_draw.h"
+#include "ED_sequencer.h"
+#include "ED_util.h"
#include "ED_view3d.h"
-#include "ED_clip.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -118,7 +119,7 @@ int ED_operator_screenactive(bContext *C)
/* XXX added this to prevent anim state to change during renders */
static int ED_operator_screenactive_norender(bContext *C)
{
- if (G.rendering) return 0;
+ if (G.is_rendering) return 0;
if (CTX_wm_window(C) == NULL) return 0;
if (CTX_wm_screen(C) == NULL) return 0;
return 1;
@@ -348,6 +349,44 @@ int ED_operator_editarmature(bContext *C)
return 0;
}
+/**
+ * \brief check for pose mode (no mixed modes)
+ *
+ * We wan't to enable most pose operations in weight paint mode,
+ * when it comes to transforming bones, but managing bomes layers/groups
+ * can be left for pose mode only. (not weight paint mode)
+ */
+int ED_operator_posemode_exclusive(bContext *C)
+{
+ Object *obact = CTX_data_active_object(C);
+
+ if (obact && !(obact->mode & OB_MODE_EDIT)) {
+ Object *obpose;
+ if ((obpose = BKE_object_pose_armature_get(obact))) {
+ if (obact == obpose) {
+ return 1;
+ }
+ }
+ }
+
+ return 0;
+}
+
+/* allows for pinned pose objects to be used in the object buttons
+ * and the the non-active pose object to be used in the 3D view */
+int ED_operator_posemode_context(bContext *C)
+{
+ Object *obpose = ED_pose_object_from_context(C);
+
+ if (obpose && !(obpose->mode & OB_MODE_EDIT)) {
+ if (BKE_object_pose_context_check(obpose)) {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
int ED_operator_posemode(bContext *C)
{
Object *obact = CTX_data_active_object(C);
@@ -458,9 +497,30 @@ int ED_operator_editmball(bContext *C)
int ED_operator_mask(bContext *C)
{
- SpaceClip *sc = CTX_wm_space_clip(C);
+ ScrArea *sa = CTX_wm_area(C);
+ if (sa && sa->spacedata.first) {
+ switch (sa->spacetype) {
+ case SPACE_CLIP:
+ {
+ SpaceClip *sc = sa->spacedata.first;
+ return ED_space_clip_check_show_maskedit(sc);
+ }
+ case SPACE_SEQ:
+ {
+ SpaceSeq *sseq = sa->spacedata.first;
+ Scene *scene = CTX_data_scene(C);
+ return ED_space_sequencer_check_show_maskedit(sseq, scene);
+ }
+ case SPACE_IMAGE:
+ {
+ SpaceImage *sima = sa->spacedata.first;
+ Scene *scene = CTX_data_scene(C);
+ return ED_space_image_check_show_maskedit(scene, sima);
+ }
+ }
+ }
- return ED_space_clip_check_show_maskedit(sc);
+ return FALSE;
}
/* *************************** action zone operator ************************** */
@@ -499,7 +559,7 @@ static ScrArea *screen_areahascursor(bScreen *scr, int x, int y)
ScrArea *sa = NULL;
sa = scr->areabase.first;
while (sa) {
- if (BLI_in_rcti(&sa->totrct, x, y)) break;
+ if (BLI_rcti_isect_pt(&sa->totrct, x, y)) break;
sa = sa->next;
}
@@ -518,21 +578,21 @@ static int actionzone_area_poll(bContext *C)
int y = win->eventstate->y;
for (az = sa->actionzones.first; az; az = az->next)
- if (BLI_in_rcti(&az->rect, x, y))
+ if (BLI_rcti_isect_pt(&az->rect, x, y))
return 1;
}
return 0;
}
-AZone *is_in_area_actionzone(ScrArea *sa, int x, int y)
+AZone *is_in_area_actionzone(ScrArea *sa, const int xy[2])
{
AZone *az = NULL;
for (az = sa->actionzones.first; az; az = az->next) {
- if (BLI_in_rcti(&az->rect, x, y)) {
+ if (BLI_rcti_isect_pt_v(&az->rect, xy)) {
if (az->type == AZONE_AREA) {
/* no triangle intersect but a hotspot circle based on corner */
- int radius = (x - az->x1) * (x - az->x1) + (y - az->y1) * (y - az->y1);
+ int radius = (xy[0] - az->x1) * (xy[0] - az->x1) + (xy[1] - az->y1) * (xy[1] - az->y1);
if (radius <= AZONESPOT * AZONESPOT)
break;
@@ -577,7 +637,7 @@ static void actionzone_apply(bContext *C, wmOperator *op, int type)
static int actionzone_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- AZone *az = is_in_area_actionzone(CTX_wm_area(C), event->x, event->y);
+ AZone *az = is_in_area_actionzone(CTX_wm_area(C), &event->x);
sActionzoneData *sad;
/* quick escape */
@@ -827,7 +887,7 @@ static int area_dupli_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* adds window to WM */
rect = sa->totrct;
- BLI_translate_rcti(&rect, win->posx, win->posy);
+ BLI_rcti_translate(&rect, win->posx, win->posy);
newwin = WM_window_open(C, &rect);
/* allocs new screen and adds to newly created window, using window size */
@@ -1151,9 +1211,6 @@ static void SCREEN_OT_area_move(wmOperatorType *ot)
* call exit() or cancel() and remove handler
*/
-#define SPLIT_STARTED 1
-#define SPLIT_PROGRESS 2
-
typedef struct sAreaSplitData {
int x, y; /* last used mouse position */
@@ -1325,12 +1382,12 @@ static int area_split_invoke(bContext *C, wmOperator *op, wmEvent *event)
if (event->type == EVT_ACTIONZONE_AREA) {
sActionzoneData *sad = event->customdata;
- if (sad->modifier > 0) {
+ if (sad == NULL || sad->modifier > 0) {
return OPERATOR_PASS_THROUGH;
}
/* verify *sad itself */
- if (sad == NULL || sad->sa1 == NULL || sad->az == NULL)
+ if (sad->sa1 == NULL || sad->az == NULL)
return OPERATOR_PASS_THROUGH;
/* is this our *sad? if areas not equal it should be passed on */
@@ -1590,10 +1647,10 @@ static int area_max_regionsize(ScrArea *sa, ARegion *scalear, AZEdge edge)
int dist;
if (edge == AE_RIGHT_TO_TOPLEFT || edge == AE_LEFT_TO_TOPRIGHT) {
- dist = sa->totrct.xmax - sa->totrct.xmin;
+ dist = BLI_rcti_size_x(&sa->totrct);
}
else { /* AE_BOTTOM_TO_TOPLEFT, AE_TOP_TO_BOTTOMRIGHT */
- dist = sa->totrct.ymax - sa->totrct.ymin;
+ dist = BLI_rcti_size_y(&sa->totrct);
}
/* subtractwidth of regions on opposite side
@@ -1949,12 +2006,10 @@ static int keyframe_jump_exec(bContext *C, wmOperator *op)
ob_to_keylist(&ads, ob, &keys, NULL);
{
- SpaceClip *sc = CTX_wm_space_clip(C);
- if (sc) {
- if ((sc->mode == SC_MODE_MASKEDIT) && sc->mask) {
- MaskLayer *masklay = BKE_mask_layer_active(sc->mask);
- mask_to_keylist(&ads, masklay, &keys);
- }
+ Mask *mask = CTX_data_edit_mask(C);
+ if (mask) {
+ MaskLayer *masklay = BKE_mask_layer_active(mask);
+ mask_to_keylist(&ads, masklay, &keys);
}
}
@@ -2010,8 +2065,8 @@ static void SCREEN_OT_keyframe_jump(wmOperatorType *ot)
ot->poll = ED_operator_screenactive_norender;
ot->flag = OPTYPE_UNDO;
- /* rna */
- RNA_def_boolean(ot->srna, "next", 1, "Next Keyframe", "");
+ /* properties */
+ RNA_def_boolean(ot->srna, "next", TRUE, "Next Keyframe", "");
}
/* ************** switch screen operator ***************************** */
@@ -2241,12 +2296,12 @@ static int area_join_invoke(bContext *C, wmOperator *op, wmEvent *event)
if (event->type == EVT_ACTIONZONE_AREA) {
sActionzoneData *sad = event->customdata;
- if (sad->modifier > 0) {
+ if (sad == NULL || sad->modifier > 0) {
return OPERATOR_PASS_THROUGH;
}
/* verify *sad itself */
- if (sad == NULL || sad->sa1 == NULL || sad->sa2 == NULL)
+ if (sad->sa1 == NULL || sad->sa2 == NULL)
return OPERATOR_PASS_THROUGH;
/* is this our *sad? if areas equal it should be passed on */
@@ -2807,35 +2862,40 @@ static void SCREEN_OT_header_flip(wmOperatorType *ot)
}
/* ************** header tools operator ***************************** */
-
-static int header_toolbox_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
+void ED_screens_header_tools_menu_create(bContext *C, uiLayout *layout, void *UNUSED(arg))
{
ScrArea *sa = CTX_wm_area(C);
ARegion *ar = CTX_wm_region(C);
- uiPopupMenu *pup;
- uiLayout *layout;
-
- pup = uiPupMenuBegin(C, "Header", ICON_NONE);
- layout = uiPupMenuLayout(pup);
-
- // XXX SCREEN_OT_region_flip doesn't work - gets wrong context for active region, so added custom operator
+
+ /* XXX SCREEN_OT_region_flip doesn't work - gets wrong context for active region, so added custom operator. */
if (ar->alignment == RGN_ALIGN_TOP)
- uiItemO(layout, "Flip to Bottom", ICON_NONE, "SCREEN_OT_header_flip");
+ uiItemO(layout, IFACE_("Flip to Bottom"), ICON_NONE, "SCREEN_OT_header_flip");
else
- uiItemO(layout, "Flip to Top", ICON_NONE, "SCREEN_OT_header_flip");
-
+ uiItemO(layout, IFACE_("Flip to Top"), ICON_NONE, "SCREEN_OT_header_flip");
+
uiItemS(layout);
-
+
/* file browser should be fullscreen all the time, but other regions can be maximized/restored... */
if (sa->spacetype != SPACE_FILE) {
if (sa->full)
- uiItemO(layout, "Tile Area", ICON_NONE, "SCREEN_OT_screen_full_area");
+ uiItemO(layout, IFACE_("Tile Area"), ICON_NONE, "SCREEN_OT_screen_full_area");
else
- uiItemO(layout, "Maximize Area", ICON_NONE, "SCREEN_OT_screen_full_area");
+ uiItemO(layout, IFACE_("Maximize Area"), ICON_NONE, "SCREEN_OT_screen_full_area");
}
-
+}
+
+static int header_toolbox_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
+{
+ uiPopupMenu *pup;
+ uiLayout *layout;
+
+ pup = uiPupMenuBegin(C, N_("Header"), ICON_NONE);
+ layout = uiPupMenuLayout(pup);
+
+ ED_screens_header_tools_menu_create(C, layout, NULL);
+
uiPupMenuEnd(C, pup);
-
+
return OPERATOR_CANCELLED;
}
@@ -3017,7 +3077,7 @@ static int screen_animation_step(bContext *C, wmOperator *UNUSED(op), wmEvent *e
}
}
- /* next frame overriden by user action (pressed jump to first/last frame) */
+ /* next frame overridden by user action (pressed jump to first/last frame) */
if (sad->flag & ANIMPLAY_FLAG_USE_NEXT_FRAME) {
scene->r.cfra = sad->nextfra;
sad->flag &= ~ANIMPLAY_FLAG_USE_NEXT_FRAME;
@@ -3242,11 +3302,7 @@ static void SCREEN_OT_border_select(wmOperatorType *ot)
/* rna */
RNA_def_int(ot->srna, "event_type", 0, INT_MIN, INT_MAX, "Event Type", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "xmin", 0, INT_MIN, INT_MAX, "X Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "xmax", 0, INT_MIN, INT_MAX, "X Max", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "ymin", 0, INT_MIN, INT_MAX, "Y Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, "Y Max", "", INT_MIN, INT_MAX);
-
+ WM_operator_properties_border(ot);
}
#endif
diff --git a/source/blender/editors/screen/screendump.c b/source/blender/editors/screen/screendump.c
index 77289360f98..aeae79aa9d0 100644
--- a/source/blender/editors/screen/screendump.c
+++ b/source/blender/editors/screen/screendump.c
@@ -149,14 +149,16 @@ static void screenshot_crop(ImBuf *ibuf, rcti crop)
{
unsigned int *to = ibuf->rect;
unsigned int *from = ibuf->rect + crop.ymin * ibuf->x + crop.xmin;
- int y, cropw = crop.xmax - crop.xmin, croph = crop.ymax - crop.ymin;
+ int crop_x = BLI_rcti_size_x(&crop);
+ int crop_y = BLI_rcti_size_y(&crop);
+ int y;
- if (cropw > 0 && croph > 0) {
- for (y = 0; y < croph; y++, to += cropw, from += ibuf->x)
- memmove(to, from, sizeof(unsigned int) * cropw);
+ if (crop_x > 0 && crop_y > 0) {
+ for (y = 0; y < crop_y; y++, to += crop_x, from += ibuf->x)
+ memmove(to, from, sizeof(unsigned int) * crop_x);
- ibuf->x = cropw;
- ibuf->y = croph;
+ ibuf->x = crop_x;
+ ibuf->y = crop_y;
}
}
@@ -243,7 +245,7 @@ static void screenshot_draw(bContext *UNUSED(C), wmOperator *op)
/* image template */
RNA_pointer_create(NULL, &RNA_ImageFormatSettings, &scd->im_format, &ptr);
- uiTemplateImageSettings(layout, &ptr);
+ uiTemplateImageSettings(layout, &ptr, FALSE);
/* main draw call */
RNA_pointer_create(NULL, op->type->srna, op->properties, &ptr);
@@ -266,7 +268,8 @@ void SCREEN_OT_screenshot(wmOperatorType *ot)
ot->flag = 0;
- WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE, FILE_SPECIAL, FILE_SAVE,
+ WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
RNA_def_boolean(ot->srna, "full", 1, "Full Screen", "Screenshot the whole Blender window");
}
@@ -395,7 +398,7 @@ static void screenshot_startjob(void *sjv, short *stop, short *do_update, float
static int screencast_exec(bContext *C, wmOperator *op)
{
bScreen *screen = CTX_wm_screen(C);
- wmJob *steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), screen, "Screencast", 0);
+ wmJob *wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), screen, "Screencast", 0, WM_JOB_TYPE_SCREENCAST);
ScreenshotJob *sj = MEM_callocN(sizeof(ScreenshotJob), "screenshot job");
/* setup sj */
@@ -419,11 +422,11 @@ static int screencast_exec(bContext *C, wmOperator *op)
BKE_reports_init(&sj->reports, RPT_PRINT);
/* setup job */
- WM_jobs_customdata(steve, sj, screenshot_freejob);
- WM_jobs_timer(steve, 0.1, 0, NC_SCREEN | ND_SCREENCAST);
- WM_jobs_callbacks(steve, screenshot_startjob, NULL, screenshot_updatejob, NULL);
+ WM_jobs_customdata_set(wm_job, sj, screenshot_freejob);
+ WM_jobs_timer(wm_job, 0.1, 0, NC_SCREEN | ND_SCREENCAST);
+ WM_jobs_callbacks(wm_job, screenshot_startjob, NULL, screenshot_updatejob, NULL);
- WM_jobs_start(CTX_wm_manager(C), steve);
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
WM_event_add_notifier(C, NC_SCREEN | ND_SCREENCAST, screen);
diff --git a/source/blender/editors/sculpt_paint/CMakeLists.txt b/source/blender/editors/sculpt_paint/CMakeLists.txt
index 043b7ecb5cb..ae72dce1415 100644
--- a/source/blender/editors/sculpt_paint/CMakeLists.txt
+++ b/source/blender/editors/sculpt_paint/CMakeLists.txt
@@ -20,6 +20,7 @@
set(INC
../include
+ ../uvedit
../../blenkernel
../../blenlib
../../blenloader
@@ -28,7 +29,6 @@ set(INC
../../imbuf
../../makesdna
../../makesrna
- ../uvedit
../../render/extern/include
../../windowmanager
../../../../intern/guardedalloc
diff --git a/source/blender/editors/sculpt_paint/paint_cursor.c b/source/blender/editors/sculpt_paint/paint_cursor.c
index 5ca436b07b2..e3d714b1917 100644
--- a/source/blender/editors/sculpt_paint/paint_cursor.c
+++ b/source/blender/editors/sculpt_paint/paint_cursor.c
@@ -31,6 +31,7 @@
#include "MEM_guardedalloc.h"
#include "BLI_math.h"
+#include "BLI_rect.h"
#include "BLI_utildefines.h"
#include "DNA_brush_types.h"
@@ -294,7 +295,7 @@ static int project_brush_radius(ViewContext *vc,
ED_view3d_global_to_vector(vc->rv3d, location, view);
- // create a vector that is not orthogonal to view
+ /* create a vector that is not orthogonal to view */
if (fabsf(view[0]) < 0.1f) {
nonortho[0] = view[0] + 1.0f;
@@ -312,20 +313,25 @@ static int project_brush_radius(ViewContext *vc,
nonortho[2] = view[2] + 1.0f;
}
- // get a vector in the plane of the view
+ /* get a vector in the plane of the view */
cross_v3_v3v3(ortho, nonortho, view);
normalize_v3(ortho);
- // make a point on the surface of the brush tagent to the view
+ /* make a point on the surface of the brush tagent to the view */
mul_v3_fl(ortho, radius);
add_v3_v3v3(offset, location, ortho);
- // project the center of the brush, and the tangent point to the view onto the screen
- project_float(vc->ar, location, p1);
- project_float(vc->ar, offset, p2);
-
- // the distance between these points is the size of the projected brush in pixels
- return len_v2v2(p1, p2);
+ /* project the center of the brush, and the tangent point to the view onto the screen */
+ if ((ED_view3d_project_float_global(vc->ar, location, p1, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) &&
+ (ED_view3d_project_float_global(vc->ar, offset, p2, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK))
+ {
+ /* the distance between these points is the size of the projected brush in pixels */
+ return len_v2v2(p1, p2);
+ }
+ else {
+ BLI_assert(0); /* assert because the code that sets up the vectors should disallow this */
+ return 0;
+ }
}
static int sculpt_get_brush_geometry(bContext *C, ViewContext *vc,
@@ -440,8 +446,8 @@ static void paint_draw_alpha_overlay(Sculpt *sd, Brush *brush,
else {
quad.xmin = 0;
quad.ymin = 0;
- quad.xmax = vc->ar->winrct.xmax - vc->ar->winrct.xmin;
- quad.ymax = vc->ar->winrct.ymax - vc->ar->winrct.ymin;
+ quad.xmax = BLI_rcti_size_x(&vc->ar->winrct);
+ quad.ymax = BLI_rcti_size_y(&vc->ar->winrct);
}
/* set quad color */
diff --git a/source/blender/editors/sculpt_paint/paint_hide.c b/source/blender/editors/sculpt_paint/paint_hide.c
index 89c328e71d8..bdd73cd6db3 100644
--- a/source/blender/editors/sculpt_paint/paint_hide.c
+++ b/source/blender/editors/sculpt_paint/paint_hide.c
@@ -197,7 +197,7 @@ static void partialvis_update_grids(Object *ob,
for (x = 0; x < key.grid_size; x++) {
CCGElem *elem = CCG_grid_elem(&key, grids[g], x, y);
const float *co = CCG_elem_co(&key, elem);
- float mask = *CCG_elem_mask(&key, elem);
+ float mask = key.has_mask ? *CCG_elem_mask(&key, elem) : 0.0f;
/* skip grid element if not in the effected area */
if (is_effected(area, planes, co, mask)) {
@@ -251,7 +251,7 @@ static void clip_planes_from_rect(bContext *C,
view3d_operator_needs_opengl(C);
view3d_set_viewcontext(C, &vc);
view3d_get_transformation(vc.ar, vc.rv3d, vc.obact, &mats);
- ED_view3d_calc_clipping(&bb, clip_planes, &mats, rect);
+ ED_view3d_clipping_calc(&bb, clip_planes, &mats, rect);
mul_m4_fl(clip_planes, -1.0f);
}
@@ -388,7 +388,7 @@ void PAINT_OT_hide_show(struct wmOperatorType *ot)
ot->modal = WM_border_select_modal;
ot->exec = hide_show_exec;
/* sculpt-only for now */
- ot->poll = sculpt_mode_poll;
+ ot->poll = sculpt_mode_poll_view3d;
ot->flag = OPTYPE_REGISTER;
@@ -398,8 +398,5 @@ void PAINT_OT_hide_show(struct wmOperatorType *ot)
RNA_def_enum(ot->srna, "area", area_items, PARTIALVIS_INSIDE,
"Area", "Which vertices to hide or show");
- RNA_def_int(ot->srna, "xmin", 0, INT_MIN, INT_MAX, "X Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "xmax", 0, INT_MIN, INT_MAX, "X Max", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "ymin", 0, INT_MIN, INT_MAX, "Y Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, "Y Max", "", INT_MIN, INT_MAX);
+ WM_operator_properties_border(ot);
}
diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c
index 6a8f7db5fc9..c6aaae6b879 100644
--- a/source/blender/editors/sculpt_paint/paint_image.c
+++ b/source/blender/editors/sculpt_paint/paint_image.c
@@ -104,6 +104,8 @@
#include "GPU_draw.h"
#include "GPU_extensions.h"
+#include "IMB_colormanagement.h"
+
#include "paint_intern.h"
/* Defines and Structs */
@@ -139,7 +141,7 @@
#define IMAPAINT_TILE_SIZE (1 << IMAPAINT_TILE_BITS)
#define IMAPAINT_TILE_NUMBER(size) (((size) + IMAPAINT_TILE_SIZE - 1) >> IMAPAINT_TILE_BITS)
-static void imapaint_image_update(SpaceImage *sima, Image *image, ImBuf *ibuf, short texpaint);
+static void imapaint_image_update(Scene *scene, SpaceImage *sima, Image *image, ImBuf *ibuf, short texpaint);
typedef struct ImagePaintState {
@@ -153,7 +155,6 @@ typedef struct ImagePaintState {
Image *image;
ImBuf *canvas;
ImBuf *clonecanvas;
- short clonefreefloat;
char *warnpackedfile;
char *warnmultifile;
@@ -239,8 +240,6 @@ typedef struct ImagePaintRegion {
/* vert flags */
#define PROJ_VERT_CULL 1
-#define PI_80_DEG ((M_PI_2 / 9) * 8)
-
/* This is mainly a convenience struct used so we can keep an array of images we use
* Thir imbufs, etc, in 1 array, When using threads this array is copied for each thread
* because 'partRedrawRect' and 'touch' values would not be thread safe */
@@ -388,7 +387,11 @@ typedef struct UndoImageTile {
char idname[MAX_ID_NAME]; /* name instead of pointer*/
char ibufname[IB_FILENAME_SIZE];
- void *rect;
+ union {
+ float *fp;
+ unsigned int *uint;
+ void *pt;
+ } rect;
int x, y;
short source, use_float;
@@ -406,10 +409,10 @@ static void undo_copy_tile(UndoImageTile *tile, ImBuf *tmpibuf, ImBuf *ibuf, int
tile->y * IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE);
if (ibuf->rect_float) {
- SWAP(void *, tmpibuf->rect_float, tile->rect);
+ SWAP(float *, tmpibuf->rect_float, tile->rect.fp);
}
else {
- SWAP(void *, tmpibuf->rect, tile->rect);
+ SWAP(unsigned int *, tmpibuf->rect, tile->rect.uint);
}
if (restore)
@@ -428,7 +431,7 @@ static void *image_undo_push_tile(Image *ima, ImBuf *ibuf, ImBuf **tmpibuf, int
if (tile->x == x_tile && tile->y == y_tile && ima->gen_type == tile->gen_type && ima->source == tile->source)
if (tile->use_float == use_float)
if (strcmp(tile->idname, ima->id.name) == 0 && strcmp(tile->ibufname, ibuf->name) == 0)
- return tile->rect;
+ return tile->rect.pt;
if (*tmpibuf == NULL)
*tmpibuf = IMB_allocImBuf(IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, 32, IB_rectfloat | IB_rect);
@@ -440,7 +443,7 @@ static void *image_undo_push_tile(Image *ima, ImBuf *ibuf, ImBuf **tmpibuf, int
allocsize = IMAPAINT_TILE_SIZE * IMAPAINT_TILE_SIZE * 4;
allocsize *= (ibuf->rect_float) ? sizeof(float) : sizeof(char);
- tile->rect = MEM_mapallocN(allocsize, "UndeImageTile.rect");
+ tile->rect.pt = MEM_mapallocN(allocsize, "UndeImageTile.rect");
BLI_strncpy(tile->ibufname, ibuf->name, sizeof(tile->ibufname));
@@ -453,7 +456,7 @@ static void *image_undo_push_tile(Image *ima, ImBuf *ibuf, ImBuf **tmpibuf, int
BLI_addtail(lb, tile);
- return tile->rect;
+ return tile->rect.pt;
}
static void image_undo_restore(bContext *C, ListBase *lb)
@@ -506,7 +509,7 @@ static void image_undo_restore(bContext *C, ListBase *lb)
ibuf->userflags |= IB_RECT_INVALID; /* force recreate of char rect */
if (ibuf->mipmap[0])
ibuf->userflags |= IB_MIPMAP_INVALID; /* force mipmap recreatiom */
-
+ ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
}
IMB_freeImBuf(tmpibuf);
@@ -517,7 +520,7 @@ static void image_undo_free(ListBase *lb)
UndoImageTile *tile;
for (tile = lb->first; tile; tile = tile->next)
- MEM_freeN(tile->rect);
+ MEM_freeN(tile->rect.pt);
}
/* get active image for face depending on old/new shading system */
@@ -560,14 +563,14 @@ static int project_bucket_offset(const ProjPaintState *ps, const float projCoSS[
* ps->bucketRect[x + (y*ps->buckets_y)] */
/* please explain?
- * projCoSS[0] - ps->screenMin[0] : zero origin
- * ... / ps->screen_width : range from 0.0 to 1.0
- * ... * ps->buckets_x : use as a bucket index
+ * projCoSS[0] - ps->screenMin[0] : zero origin
+ * ... / ps->screen_width : range from 0.0 to 1.0
+ * ... * ps->buckets_x : use as a bucket index
*
* Second multiplication does similar but for vertical offset
*/
- return ( (int)(((projCoSS[0] - ps->screenMin[0]) / ps->screen_width) * ps->buckets_x)) +
- ( ( (int)(((projCoSS[1] - ps->screenMin[1]) / ps->screen_height) * ps->buckets_y)) * ps->buckets_x);
+ return ( (int)(((projCoSS[0] - ps->screenMin[0]) / ps->screen_width) * ps->buckets_x)) +
+ (((int)(((projCoSS[1] - ps->screenMin[1]) / ps->screen_height) * ps->buckets_y)) * ps->buckets_x);
}
static int project_bucket_offset_safe(const ProjPaintState *ps, const float projCoSS[2])
@@ -583,7 +586,7 @@ static int project_bucket_offset_safe(const ProjPaintState *ps, const float proj
}
/* still use 2D X,Y space but this works for verts transformed by a perspective matrix, using their 4th component as a weight */
-static void barycentric_weights_v2_persp(float v1[4], float v2[4], float v3[4], float co[2], float w[3])
+static void barycentric_weights_v2_persp(const float v1[4], const float v2[4], const float v3[4], const float co[2], float w[3])
{
float wtot_inv, wtot;
@@ -603,13 +606,17 @@ static void barycentric_weights_v2_persp(float v1[4], float v2[4], float v3[4],
w[0] = w[1] = w[2] = 1.0f / 3.0f;
}
-static float VecZDepthOrtho(float pt[2], float v1[3], float v2[3], float v3[3], float w[3])
+static float VecZDepthOrtho(const float pt[2],
+ const float v1[3], const float v2[3], const float v3[3],
+ float w[3])
{
barycentric_weights_v2(v1, v2, v3, pt, w);
return (v1[2] * w[0]) + (v2[2] * w[1]) + (v3[2] * w[2]);
}
-static float VecZDepthPersp(float pt[2], float v1[4], float v2[4], float v3[4], float w[3])
+static float VecZDepthPersp(const float pt[2],
+ const float v1[4], const float v2[4], const float v3[4],
+ float w[3])
{
float wtot_inv, wtot;
float w_tmp[3];
@@ -797,7 +804,7 @@ static int project_paint_PickColor(const ProjPaintState *ps, float pt[2], float
if (rgba_fp) {
if (ibuf->rect_float) {
- copy_v4_v4(rgba_fp, ((float *)ibuf->rect_float + ((xi + yi * ibuf->x) * 4)));
+ copy_v4_v4(rgba_fp, (ibuf->rect_float + ((xi + yi * ibuf->x) * 4)));
}
else {
char *tmp_ch = ((char *)ibuf->rect) + ((xi + yi * ibuf->x) * 4);
@@ -1402,24 +1409,46 @@ static float project_paint_uvpixel_mask(
/* calculate mask */
if (ps->do_mask_normal) {
- MFace *mf = ps->dm_mface + face_index;
- short *no1, *no2, *no3;
+ MFace *mf = &ps->dm_mface[face_index];
float no[3], angle;
- no1 = ps->dm_mvert[mf->v1].no;
- if (side == 1) {
- no2 = ps->dm_mvert[mf->v3].no;
- no3 = ps->dm_mvert[mf->v4].no;
+ if (mf->flag & ME_SMOOTH) {
+ short *no1, *no2, *no3;
+ no1 = ps->dm_mvert[mf->v1].no;
+ if (side == 1) {
+ no2 = ps->dm_mvert[mf->v3].no;
+ no3 = ps->dm_mvert[mf->v4].no;
+ }
+ else {
+ no2 = ps->dm_mvert[mf->v2].no;
+ no3 = ps->dm_mvert[mf->v3].no;
+ }
+
+ no[0] = w[0] * no1[0] + w[1] * no2[0] + w[2] * no3[0];
+ no[1] = w[0] * no1[1] + w[1] * no2[1] + w[2] * no3[1];
+ no[2] = w[0] * no1[2] + w[1] * no2[2] + w[2] * no3[2];
+ normalize_v3(no);
}
else {
- no2 = ps->dm_mvert[mf->v2].no;
- no3 = ps->dm_mvert[mf->v3].no;
+ /* incase the */
+#if 1
+ /* normalizing per pixel isn't optimal, we could cache or check ps->*/
+ if (mf->v4)
+ normal_quad_v3(no,
+ ps->dm_mvert[mf->v1].co,
+ ps->dm_mvert[mf->v2].co,
+ ps->dm_mvert[mf->v3].co,
+ ps->dm_mvert[mf->v4].co);
+ else
+ normal_tri_v3(no,
+ ps->dm_mvert[mf->v1].co,
+ ps->dm_mvert[mf->v2].co,
+ ps->dm_mvert[mf->v3].co);
+#else
+ /* don't use because some modifiers dont have normal data (subsurf for eg) */
+ copy_v3_v3(no, (float *)ps->dm->getTessFaceData(ps->dm, face_index, CD_NORMAL));
+#endif
}
- no[0] = w[0] * no1[0] + w[1] * no2[0] + w[2] * no3[0];
- no[1] = w[0] * no1[1] + w[1] * no2[1] + w[2] * no3[1];
- no[2] = w[0] * no1[2] + w[1] * no2[2] + w[2] * no3[2];
- normalize_v3(no);
-
/* now we can use the normal as a mask */
if (ps->is_ortho) {
angle = angle_normalized_v3v3((float *)ps->viewDir, no);
@@ -1455,9 +1484,9 @@ static float project_paint_uvpixel_mask(
} /* otherwise no mask normal is needed, were within the limit */
}
- // This only works when the opacity dosnt change while painting, stylus pressure messes with this
- // so don't use it.
- // if (ps->is_airbrush==0) mask *= BKE_brush_alpha_get(ps->brush);
+ /* This only works when the opacity dosnt change while painting, stylus pressure messes with this
+ * so don't use it. */
+ // if (ps->is_airbrush == 0) mask *= BKE_brush_alpha_get(ps->brush);
return mask;
}
@@ -1499,7 +1528,7 @@ static ProjPixel *project_paint_uvpixel_init(
//memset(projPixel, 0, size);
if (ibuf->rect_float) {
- projPixel->pixel.f_pt = (float *)ibuf->rect_float + ((x_px + y_px * ibuf->x) * 4);
+ projPixel->pixel.f_pt = ibuf->rect_float + ((x_px + y_px * ibuf->x) * 4);
projPixel->origColor.f[0] = projPixel->newColor.f[0] = projPixel->pixel.f_pt[0];
projPixel->origColor.f[1] = projPixel->newColor.f[1] = projPixel->pixel.f_pt[1];
projPixel->origColor.f[2] = projPixel->newColor.f[2] = projPixel->pixel.f_pt[2];
@@ -1611,7 +1640,7 @@ static int line_clip_rect2f(
if (fabsf(l1[0] - l2[0]) < PROJ_GEOM_TOLERANCE) { /* this is a single point (or close to)*/
- if (BLI_in_rctf(rect, l1[0], l1[1])) {
+ if (BLI_rctf_isect_pt_v(rect, l1)) {
copy_v2_v2(l1_clip, l1);
copy_v2_v2(l2_clip, l2);
return 1;
@@ -1639,7 +1668,7 @@ static int line_clip_rect2f(
}
if (fabsf(l1[1] - l2[1]) < PROJ_GEOM_TOLERANCE) { /* this is a single point (or close to)*/
- if (BLI_in_rctf(rect, l1[0], l1[1])) {
+ if (BLI_rctf_isect_pt_v(rect, l1)) {
copy_v2_v2(l1_clip, l1);
copy_v2_v2(l2_clip, l2);
return 1;
@@ -1663,12 +1692,12 @@ static int line_clip_rect2f(
/* Done with vertical lines */
/* are either of the points inside the rectangle ? */
- if (BLI_in_rctf(rect, l1[0], l1[1])) {
+ if (BLI_rctf_isect_pt_v(rect, l1)) {
copy_v2_v2(l1_clip, l1);
ok1 = 1;
}
- if (BLI_in_rctf(rect, l2[0], l2[1])) {
+ if (BLI_rctf_isect_pt_v(rect, l2)) {
copy_v2_v2(l2_clip, l2);
ok2 = 1;
}
@@ -1816,7 +1845,7 @@ static int project_bucket_isect_circle(const float cent[2], const float radius_s
* this is even less work then an intersection test
*/
#if 0
- if (BLI_in_rctf(bucket_bounds, cent[0], cent[1]))
+ if (BLI_rctf_isect_pt_v(bucket_bounds, cent))
return 1;
#endif
@@ -1983,9 +2012,9 @@ static void project_bucket_clip_face(
float bucket_bounds_ss[4][2];
/* get the UV space bounding box */
- inside_bucket_flag |= BLI_in_rctf(bucket_bounds, v1coSS[0], v1coSS[1]);
- inside_bucket_flag |= BLI_in_rctf(bucket_bounds, v2coSS[0], v2coSS[1]) << 1;
- inside_bucket_flag |= BLI_in_rctf(bucket_bounds, v3coSS[0], v3coSS[1]) << 2;
+ inside_bucket_flag |= BLI_rctf_isect_pt_v(bucket_bounds, v1coSS);
+ inside_bucket_flag |= BLI_rctf_isect_pt_v(bucket_bounds, v2coSS) << 1;
+ inside_bucket_flag |= BLI_rctf_isect_pt_v(bucket_bounds, v3coSS) << 2;
if (inside_bucket_flag == ISECT_ALL3) {
/* all screenspace points are inside the bucket bounding box, this means we don't need to clip and can simply return the UVs */
@@ -2053,7 +2082,7 @@ static void project_bucket_clip_face(
float v1_clipSS[2], v2_clipSS[2];
float w[3];
- /* calc center*/
+ /* calc center */
float cent[2] = {0.0f, 0.0f};
/*float up[2] = {0.0f, 1.0f};*/
int i;
@@ -2291,7 +2320,7 @@ static int IsectPoly2Df_twoside(const float pt[2], float uv[][2], const int tot)
return 1;
}
-/* One of the most important function for projectiopn painting, since it selects the pixels to be added into each bucket.
+/* One of the most important function for projection painting, since it selects the pixels to be added into each bucket.
* initialize pixels from this face where it intersects with the bucket_index, optionally initialize pixels for removing seams */
static void project_paint_face_init(const ProjPaintState *ps, const int thread_index, const int bucket_index, const int face_index, const int image_index, rctf *bucket_bounds, const ImBuf *ibuf, const short clamp_u, const short clamp_v)
{
@@ -2812,7 +2841,7 @@ static int project_bucket_face_isect(ProjPaintState *ps, int bucket_x, int bucke
fidx = mf->v4 ? 3 : 2;
do {
v = ps->screenCoords[(*(&mf->v1 + fidx))];
- if (BLI_in_rctf(&bucket_bounds, v[0], v[1])) {
+ if (BLI_rctf_isect_pt_v(&bucket_bounds, v)) {
return 1;
}
} while (fidx--);
@@ -3107,7 +3136,7 @@ static void project_paint_begin(ProjPaintState *ps)
ps->is_ortho = params.is_ortho;
}
- /* same as view3d_get_object_project_mat */
+ /* same as #ED_view3d_ob_project_mat_get */
mult_m4_m4m4(vmat, viewmat, ps->ob->obmat);
mult_m4_m4m4(ps->projectMat, winmat, vmat);
}
@@ -3585,7 +3614,7 @@ static int project_image_refresh_tagged(ProjPaintState *ps)
pr = &(projIma->partRedrawRect[i]);
if (pr->x2 != -1) { /* TODO - use 'enabled' ? */
imapaintpartial = *pr;
- imapaint_image_update(NULL, projIma->ima, projIma->ibuf, 1); /*last 1 is for texpaint*/
+ imapaint_image_update(NULL, NULL, projIma->ima, projIma->ibuf, 1); /*last 1 is for texpaint*/
redraw = 1;
}
}
@@ -3687,7 +3716,7 @@ typedef struct ProjectHandle {
int thread_index;
} ProjectHandle;
-static void blend_color_mix(unsigned char *cp, const unsigned char *cp1, const unsigned char *cp2, const int fac)
+static void blend_color_mix(unsigned char cp[4], const unsigned char cp1[4], const unsigned char cp2[4], const int fac)
{
/* this and other blending modes previously used >>8 instead of /255. both
* are not equivalent (>>8 is /256), and the former results in rounding
@@ -3700,7 +3729,7 @@ static void blend_color_mix(unsigned char *cp, const unsigned char *cp1, const u
cp[3] = (mfac * cp1[3] + fac * cp2[3]) / 255;
}
-static void blend_color_mix_float(float *cp, const float *cp1, const float *cp2, const float fac)
+static void blend_color_mix_float(float cp[4], const float cp1[4], const float cp2[4], const float fac)
{
const float mfac = 1.0f - fac;
cp[0] = mfac * cp1[0] + fac * cp2[0];
@@ -3709,7 +3738,7 @@ static void blend_color_mix_float(float *cp, const float *cp1, const float *cp2,
cp[3] = mfac * cp1[3] + fac * cp2[3];
}
-static void blend_color_mix_accum(unsigned char *cp, const unsigned char *cp1, const unsigned char *cp2, const int fac)
+static void blend_color_mix_accum(unsigned char cp[4], const unsigned char cp1[4], const unsigned char cp2[4], const int fac)
{
/* this and other blending modes previously used >>8 instead of /255. both
* are not equivalent (>>8 is /256), and the former results in rounding
@@ -3722,6 +3751,17 @@ static void blend_color_mix_accum(unsigned char *cp, const unsigned char *cp1, c
cp[2] = (mfac * cp1[2] + fac * cp2[2]) / 255;
cp[3] = alpha > 255 ? 255 : alpha;
}
+static void blend_color_mix_accum_float(float cp[4], const float cp1[4], const unsigned char cp2[4], const float fac)
+{
+ const float mfac = 1.0f - fac;
+ const float alpha = cp1[3] + (fac * (cp2[3] / 255.0f));
+
+ cp[0] = (mfac * cp1[0] + (fac * (cp2[0] / 255.0f)));
+ cp[1] = (mfac * cp1[1] + (fac * (cp2[1] / 255.0f)));
+ cp[2] = (mfac * cp1[2] + (fac * (cp2[2] / 255.0f)));
+ cp[3] = alpha > 1.0f ? 1.0f : alpha;
+}
+
static void do_projectpaint_clone(ProjPaintState *ps, ProjPixel *projPixel, float alpha, float mask)
{
@@ -3882,7 +3922,7 @@ static void *do_projectpaint_thread(void *ph_v)
/* printf("brush bounds %d %d %d %d\n", bucketMin[0], bucketMin[1], bucketMax[0], bucketMax[1]); */
- while (project_bucket_iter_next(ps, &bucket_index, &bucket_bounds, pos)) {
+ while (project_bucket_iter_next(ps, &bucket_index, &bucket_bounds, pos)) {
/* Check this bucket and its faces are initialized */
if (ps->bucketFlags[bucket_index] == PROJ_BUCKET_NULL) {
@@ -3897,11 +3937,36 @@ static void *do_projectpaint_thread(void *ph_v)
for (node = ps->bucketRect[bucket_index]; node; node = node->next) {
projPixel = (ProjPixel *)node->link;
- bicubic_interpolation_color(ps->reproject_ibuf, projPixel->newColor.ch, NULL, projPixel->projCoSS[0], projPixel->projCoSS[1]);
- if (projPixel->newColor.ch[3]) {
- mask = ((float)projPixel->mask) / 65535.0f;
- blend_color_mix_accum(projPixel->pixel.ch_pt, projPixel->origColor.ch, projPixel->newColor.ch, (int)(mask * projPixel->newColor.ch[3]));
+ /* copy of code below */
+ if (last_index != projPixel->image_index) {
+ last_index = projPixel->image_index;
+ last_projIma = projImages + last_index;
+ last_projIma->touch = 1;
+ is_floatbuf = last_projIma->ibuf->rect_float ? 1 : 0;
+ use_color_correction = TRUE;
+ }
+ /* end copy */
+
+ if (is_floatbuf) {
+ /* re-project buffer is assumed byte - TODO, allow float */
+ bicubic_interpolation_color(ps->reproject_ibuf, projPixel->newColor.ch, NULL,
+ projPixel->projCoSS[0], projPixel->projCoSS[1]);
+ if (projPixel->newColor.ch[3]) {
+ mask = ((float)projPixel->mask) / 65535.0f;
+ blend_color_mix_accum_float(projPixel->pixel.f_pt, projPixel->origColor.f,
+ projPixel->newColor.ch, (mask * (projPixel->newColor.ch[3] / 255.0f)));
+ }
+ }
+ else {
+ /* re-project buffer is assumed byte - TODO, allow float */
+ bicubic_interpolation_color(ps->reproject_ibuf, projPixel->newColor.ch, NULL,
+ projPixel->projCoSS[0], projPixel->projCoSS[1]);
+ if (projPixel->newColor.ch[3]) {
+ mask = ((float)projPixel->mask) / 65535.0f;
+ blend_color_mix_accum(projPixel->pixel.ch_pt, projPixel->origColor.ch,
+ projPixel->newColor.ch, (int)(mask * projPixel->newColor.ch[3]));
+ }
}
}
}
@@ -3955,14 +4020,16 @@ static void *do_projectpaint_thread(void *ph_v)
if (alpha > 0.0f) {
+ /* copy of code above */
if (last_index != projPixel->image_index) {
last_index = projPixel->image_index;
last_projIma = projImages + last_index;
last_projIma->touch = 1;
is_floatbuf = last_projIma->ibuf->rect_float ? 1 : 0;
- use_color_correction = (last_projIma->ibuf->profile == IB_PROFILE_LINEAR_RGB) ? 1 : 0;
+ use_color_correction = TRUE;
}
+ /* end copy */
last_partial_redraw_cell = last_projIma->partRedrawRect + projPixel->bb_cell_index;
last_partial_redraw_cell->x1 = MIN2(last_partial_redraw_cell->x1, projPixel->x_px);
@@ -4176,10 +4243,17 @@ static void imapaint_dirty_region(Image *ima, ImBuf *ibuf, int x, int y, int w,
IMB_freeImBuf(tmpibuf);
}
-static void imapaint_image_update(SpaceImage *sima, Image *image, ImBuf *ibuf, short texpaint)
+static void imapaint_image_update(Scene *scene, SpaceImage *sima, Image *image, ImBuf *ibuf, short texpaint)
{
- if (ibuf->rect_float)
- ibuf->userflags |= IB_RECT_INVALID; /* force recreate of char rect */
+ if (scene) {
+ IMB_partial_display_buffer_update(ibuf, ibuf->rect_float, (unsigned char *) ibuf->rect, ibuf->x, 0, 0,
+ &scene->view_settings, &scene->display_settings,
+ imapaintpartial.x1, imapaintpartial.y1,
+ imapaintpartial.x2, imapaintpartial.y2);
+ }
+ else {
+ ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
+ }
if (ibuf->mipmap[0])
ibuf->userflags |= IB_MIPMAP_INVALID;
@@ -4189,7 +4263,7 @@ static void imapaint_image_update(SpaceImage *sima, Image *image, ImBuf *ibuf, s
int w = imapaintpartial.x2 - imapaintpartial.x1;
int h = imapaintpartial.y2 - imapaintpartial.y1;
/* Testing with partial update in uv editor too */
- GPU_paint_update_image(image, imapaintpartial.x1, imapaintpartial.y1, w, h, 0); //!texpaint);
+ GPU_paint_update_image(image, imapaintpartial.x1, imapaintpartial.y1, w, h); //!texpaint);
}
}
@@ -4503,15 +4577,7 @@ static int imapaint_canvas_set(ImagePaintState *s, Image *ima)
/* temporarily add float rect for cloning */
if (s->canvas->rect_float && !s->clonecanvas->rect_float) {
- int profile = IB_PROFILE_NONE;
-
- /* Don't want to color manage, but don't disturb existing profiles */
- SWAP(int, s->clonecanvas->profile, profile);
-
IMB_float_from_rect(s->clonecanvas);
- s->clonefreefloat = 1;
-
- SWAP(int, s->clonecanvas->profile, profile);
}
else if (!s->canvas->rect_float && !s->clonecanvas->rect)
IMB_rect_from_float(s->clonecanvas);
@@ -4520,28 +4586,32 @@ static int imapaint_canvas_set(ImagePaintState *s, Image *ima)
return 1;
}
-static void imapaint_canvas_free(ImagePaintState *s)
+static void imapaint_canvas_free(ImagePaintState *UNUSED(s))
{
- if (s->clonefreefloat)
- imb_freerectfloatImBuf(s->clonecanvas);
}
static int imapaint_paint_sub_stroke(ImagePaintState *s, BrushPainter *painter, Image *image, short texpaint, float *uv, double time, int update, float pressure)
{
ImBuf *ibuf = BKE_image_get_ibuf(image, s->sima ? &s->sima->iuser : NULL);
float pos[2];
+ int is_data;
if (!ibuf)
return 0;
+ is_data = ibuf->colormanage_flag & IMB_COLORMANAGE_IS_DATA;
+
pos[0] = uv[0] * ibuf->x;
pos[1] = uv[1] * ibuf->y;
BKE_brush_painter_require_imbuf(painter, ((ibuf->rect_float) ? 1 : 0), 0, 0);
- if (BKE_brush_painter_paint(painter, imapaint_paint_op, pos, time, pressure, s, ibuf->profile == IB_PROFILE_LINEAR_RGB)) {
+ /* OCIO_TODO: float buffers are now always linear, so always use color correction
+ * this should probably be changed when texture painting color space is supported
+ */
+ if (BKE_brush_painter_paint(painter, imapaint_paint_op, pos, time, pressure, s, is_data == FALSE)) {
if (update)
- imapaint_image_update(s->sima, image, ibuf, texpaint);
+ imapaint_image_update(s->scene, s->sima, image, ibuf, texpaint);
return 1;
}
else return 0;
@@ -4663,8 +4733,9 @@ static int image_paint_poll(bContext *C)
if (sima) {
ARegion *ar = CTX_wm_region(C);
- if ((sima->flag & SI_DRAWTOOL) && ar->regiontype == RGN_TYPE_WINDOW)
+ if ((sima->mode == SI_MODE_PAINT) && ar->regiontype == RGN_TYPE_WINDOW) {
return 1;
+ }
}
}
@@ -5188,7 +5259,7 @@ void PAINT_OT_image_paint(wmOperatorType *ot)
RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement, "Stroke", "");
}
-int get_imapaint_zoom(bContext *C, float *zoomx, float *zoomy)
+static int get_imapaint_zoom(bContext *C, float *zoomx, float *zoomy)
{
RegionView3D *rv3d = CTX_wm_region_view3d(C);
@@ -5196,7 +5267,7 @@ int get_imapaint_zoom(bContext *C, float *zoomx, float *zoomy)
SpaceImage *sima = CTX_wm_space_image(C);
ARegion *ar = CTX_wm_region(C);
- ED_space_image_zoom(sima, ar, zoomx, zoomy);
+ ED_space_image_get_zoom(sima, ar, zoomx, zoomy);
return 1;
}
@@ -5231,13 +5302,13 @@ static void brush_drawcursor(bContext *C, int x, int y, void *UNUSED(customdata)
!(ts->use_uv_sculpt && (scene->basact->object->mode == OB_MODE_EDIT));
if (use_zoom) {
- pixel_size = MAX2(size * zoomx, size * zoomy);
+ pixel_size = size * maxf(zoomx, zoomy);
}
else {
pixel_size = size;
}
- /* fade out the brush (cheap trick to work around brush interfearing with sampling [#])*/
+ /* fade out the brush (cheap trick to work around brush interfering with sampling [#])*/
if (pixel_size < PX_SIZE_FADE_MIN) {
return;
}
@@ -5249,7 +5320,7 @@ static void brush_drawcursor(bContext *C, int x, int y, void *UNUSED(customdata)
glTranslatef((float)x, (float)y, 0.0f);
- /* No need to scale for uv sculpting, on the contrary it might be useful to keep unscaled */
+ /* No need to scale for uv sculpting, on the contrary it might be useful to keep un-scaled */
if (use_zoom)
glScalef(zoomx, zoomy, 1.0f);
@@ -5287,12 +5358,25 @@ static void toggle_paint_cursor(bContext *C, int enable)
* ensure that the cursor is hidden when not in paint mode */
void ED_space_image_paint_update(wmWindowManager *wm, ToolSettings *settings)
{
+ wmWindow *win;
+ ScrArea *sa;
ImagePaintSettings *imapaint = &settings->imapaint;
+ int enabled = FALSE;
+
+ for (win = wm->windows.first; win; win = win->next)
+ for (sa = win->screen->areabase.first; sa; sa = sa->next)
+ if (sa->spacetype == SPACE_IMAGE)
+ if (((SpaceImage *)sa->spacedata.first)->mode == SI_MODE_PAINT)
+ enabled = TRUE;
- if (!imapaint->paintcursor) {
- imapaint->paintcursor =
- WM_paint_cursor_activate(wm, image_paint_poll,
- brush_drawcursor, NULL);
+ if (enabled) {
+ BKE_paint_init(&imapaint->paint, PAINT_CURSOR_TEXTURE_PAINT);
+
+ if (!imapaint->paintcursor) {
+ imapaint->paintcursor =
+ WM_paint_cursor_activate(wm, image_paint_poll,
+ brush_drawcursor, NULL);
+ }
}
}
@@ -5307,7 +5391,7 @@ void ED_space_image_uv_sculpt_update(wmWindowManager *wm, ToolSettings *settings
settings->uv_relax_method = UV_SCULPT_TOOL_RELAX_LAPLACIAN;
}
- paint_init(&settings->uvsculpt->paint, PAINT_CURSOR_SCULPT);
+ BKE_paint_init(&settings->uvsculpt->paint, PAINT_CURSOR_SCULPT);
WM_paint_cursor_activate(wm, uv_sculpt_brush_poll,
brush_drawcursor, NULL);
@@ -5597,7 +5681,7 @@ static int texture_paint_toggle_exec(bContext *C, wmOperator *op)
me->mtface = CustomData_add_layer(&me->fdata, CD_MTFACE, CD_DEFAULT,
NULL, me->totface);
- paint_init(&scene->toolsettings->imapaint.paint, PAINT_CURSOR_TEXTURE_PAINT);
+ BKE_paint_init(&scene->toolsettings->imapaint.paint, PAINT_CURSOR_TEXTURE_PAINT);
if (U.glreslimit != 0)
GPU_free_images();
@@ -5802,7 +5886,7 @@ static int texture_paint_image_from_view_exec(bContext *C, wmOperator *op)
if (w > maxsize) w = maxsize;
if (h > maxsize) h = maxsize;
- ibuf = ED_view3d_draw_offscreen_imbuf(CTX_data_scene(C), CTX_wm_view3d(C), CTX_wm_region(C), w, h, IB_rect, FALSE, err_out);
+ ibuf = ED_view3d_draw_offscreen_imbuf(CTX_data_scene(C), CTX_wm_view3d(C), CTX_wm_region(C), w, h, IB_rect, FALSE, FALSE, err_out);
if (!ibuf) {
/* Mostly happens when OpenGL offscreen buffer was failed to create, */
/* but could be other reasons. Should be handled in the future. nazgul */
diff --git a/source/blender/editors/sculpt_paint/paint_intern.h b/source/blender/editors/sculpt_paint/paint_intern.h
index 794e7755636..162e2fa15d6 100644
--- a/source/blender/editors/sculpt_paint/paint_intern.h
+++ b/source/blender/editors/sculpt_paint/paint_intern.h
@@ -51,7 +51,7 @@ struct wmOperator;
struct wmOperatorType;
/* paint_stroke.c */
-typedef int (*StrokeGetLocation)(struct bContext *C, float location[3], float mouse[2]);
+typedef int (*StrokeGetLocation)(struct bContext *C, float location[3], const float mouse[2]);
typedef int (*StrokeTestStart)(struct bContext *C, struct wmOperator *op, const float mouse[2]);
typedef void (*StrokeUpdateStep)(struct bContext *C, struct PaintStroke *stroke, struct PointerRNA *itemptr);
typedef void (*StrokeDone)(const struct bContext *C, struct PaintStroke *stroke);
diff --git a/source/blender/editors/sculpt_paint/paint_mask.c b/source/blender/editors/sculpt_paint/paint_mask.c
index e309bdb99cb..697d7c63d1f 100644
--- a/source/blender/editors/sculpt_paint/paint_mask.c
+++ b/source/blender/editors/sculpt_paint/paint_mask.c
@@ -54,6 +54,7 @@
#include "WM_types.h"
#include "ED_screen.h"
+#include "ED_sculpt.h"
#include "paint_intern.h"
#include "sculpt_intern.h" /* for undo push */
@@ -77,7 +78,9 @@ static void mask_flood_fill_set_elem(float *elem,
static int mask_flood_fill_exec(bContext *C, wmOperator *op)
{
ARegion *ar = CTX_wm_region(C);
+ struct Scene *scene = CTX_data_scene(C);
Object *ob = CTX_data_active_object(C);
+ struct MultiresModifierData *mmd = sculpt_multires_active(scene, ob);
PaintMaskFloodMode mode;
float value;
DerivedMesh *dm;
@@ -88,7 +91,9 @@ static int mask_flood_fill_exec(bContext *C, wmOperator *op)
mode = RNA_enum_get(op->ptr, "mode");
value = RNA_float_get(op->ptr, "value");
- dm = mesh_get_derived_final(CTX_data_scene(C), ob, CD_MASK_BAREMESH);
+ ED_sculpt_mask_layers_ensure(ob, mmd);
+
+ dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
pbvh = dm->getPBVH(ob, dm);
ob->sculpt->pbvh = pbvh;
diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c
index 7df6a893b5c..39a95300d5d 100644
--- a/source/blender/editors/sculpt_paint/paint_ops.c
+++ b/source/blender/editors/sculpt_paint/paint_ops.c
@@ -584,27 +584,29 @@ static void ed_keymap_paint_brush_radial_control(wmKeyMap *keymap, const char *p
RCFlags flags)
{
wmKeyMapItem *kmi;
+ /* only size needs to follow zoom, strength shows fixed size circle */
+ int flags_nozoom = flags & (~RC_ZOOM);
kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, 0, 0);
set_brush_rc_props(kmi->ptr, paint, "size", "use_unified_size", flags);
kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0);
- set_brush_rc_props(kmi->ptr, paint, "strength", "use_unified_strength", flags);
+ set_brush_rc_props(kmi->ptr, paint, "strength", "use_unified_strength", flags_nozoom);
kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", WKEY, KM_PRESS, 0, 0);
- set_brush_rc_props(kmi->ptr, paint, "weight", "use_unified_weight", flags);
+ set_brush_rc_props(kmi->ptr, paint, "weight", "use_unified_weight", flags_nozoom);
if (flags & RC_ROTATION) {
kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_CTRL, 0);
- set_brush_rc_props(kmi->ptr, paint, "texture_slot.angle", NULL, flags);
+ set_brush_rc_props(kmi->ptr, paint, "texture_slot.angle", NULL, flags_nozoom);
}
}
-void paint_partial_visibility_keys(wmKeyMap *keymap)
+static void paint_partial_visibility_keys(wmKeyMap *keymap)
{
wmKeyMapItem *kmi;
- /* Partial visiblity */
+ /* Partial visibility */
kmi = WM_keymap_add_item(keymap, "PAINT_OT_hide_show", HKEY, KM_PRESS, KM_SHIFT, 0);
RNA_enum_set(kmi->ptr, "action", PARTIALVIS_SHOW);
RNA_enum_set(kmi->ptr, "area", PARTIALVIS_INSIDE);
@@ -624,7 +626,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
/* Sculpt mode */
keymap = WM_keymap_find(keyconf, "Sculpt", 0, 0);
- keymap->poll = sculpt_poll;
+ keymap->poll = sculpt_mode_poll;
RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "mode", BRUSH_STROKE_NORMAL);
RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "mode", BRUSH_STROKE_INVERT);
diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c
index b53edeadb51..2ae24db7c33 100644
--- a/source/blender/editors/sculpt_paint/paint_stroke.c
+++ b/source/blender/editors/sculpt_paint/paint_stroke.c
@@ -139,13 +139,13 @@ static float event_tablet_data(wmEvent *event, int *pen_flip)
}
/* Put the location of the next stroke dot into the stroke RNA and apply it to the mesh */
-static void paint_brush_stroke_add_step(bContext *C, wmOperator *op, wmEvent *event, float mouse_in[2])
+static void paint_brush_stroke_add_step(bContext *C, wmOperator *op, wmEvent *event, const float mouse_in[2])
{
Scene *scene = CTX_data_scene(C);
Paint *paint = paint_get_active_from_context(C);
Brush *brush = paint_brush(paint);
PaintStroke *stroke = op->customdata;
- float mouse[3];
+ float mouse_out[2];
PointerRNA itemptr;
float location[3];
float pressure;
@@ -159,24 +159,24 @@ static void paint_brush_stroke_add_step(bContext *C, wmOperator *op, wmEvent *ev
if (stroke->vc.obact->sculpt) {
float delta[2];
- BKE_brush_jitter_pos(scene, brush, mouse_in, mouse);
+ BKE_brush_jitter_pos(scene, brush, mouse_in, mouse_out);
/* XXX: meh, this is round about because
* BKE_brush_jitter_pos isn't written in the best way to
* be reused here */
if (brush->flag & BRUSH_JITTER_PRESSURE) {
- sub_v2_v2v2(delta, mouse, mouse_in);
+ sub_v2_v2v2(delta, mouse_out, mouse_in);
mul_v2_fl(delta, pressure);
- add_v2_v2v2(mouse, mouse_in, delta);
+ add_v2_v2v2(mouse_out, mouse_in, delta);
}
}
else {
- copy_v2_v2(mouse, mouse_in);
+ copy_v2_v2(mouse_out, mouse_in);
}
/* TODO: can remove the if statement once all modes have this */
if (stroke->get_location)
- stroke->get_location(C, location, mouse);
+ stroke->get_location(C, location, mouse_out);
else
zero_v3(location);
@@ -184,12 +184,11 @@ static void paint_brush_stroke_add_step(bContext *C, wmOperator *op, wmEvent *ev
RNA_collection_add(op->ptr, "stroke", &itemptr);
RNA_float_set_array(&itemptr, "location", location);
- RNA_float_set_array(&itemptr, "mouse", mouse);
+ RNA_float_set_array(&itemptr, "mouse", mouse_out);
RNA_boolean_set(&itemptr, "pen_flip", pen_flip);
RNA_float_set(&itemptr, "pressure", pressure);
- stroke->last_mouse_position[0] = mouse[0];
- stroke->last_mouse_position[1] = mouse[1];
+ copy_v2_v2(stroke->last_mouse_position, mouse_out);
stroke->update_step(C, stroke, &itemptr);
}
@@ -254,7 +253,10 @@ static int paint_space_stroke(bContext *C, wmOperator *op, wmEvent *event, const
pressure = event_tablet_data(event, NULL);
if (pressure > FLT_EPSILON) {
- scale = (BKE_brush_size_get(scene, stroke->brush) * pressure * stroke->brush->spacing / 50.0f) / length;
+ /* brushes can have a minimum size of 1.0 but with pressure it can be smaller then a pixel
+ * causing very high step sizes, hanging blender [#32381] */
+ const float size_clamp = maxf(1.0f, BKE_brush_size_get(scene, stroke->brush) * pressure);
+ scale = (size_clamp * stroke->brush->spacing / 50.0f) / length;
if (scale > FLT_EPSILON) {
mul_v2_fl(vec, scale);
@@ -521,8 +523,10 @@ int paint_poll(bContext *C)
{
Paint *p = paint_get_active_from_context(C);
Object *ob = CTX_data_active_object(C);
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = CTX_wm_region(C);
return p && ob && paint_brush(p) &&
- CTX_wm_area(C)->spacetype == SPACE_VIEW3D &&
- CTX_wm_region(C)->regiontype == RGN_TYPE_WINDOW;
+ (sa && sa->spacetype == SPACE_VIEW3D) &&
+ (ar && ar->regiontype == RGN_TYPE_WINDOW);
}
diff --git a/source/blender/editors/sculpt_paint/paint_undo.c b/source/blender/editors/sculpt_paint/paint_undo.c
index 8e6c87c1510..e406d4f5c3b 100644
--- a/source/blender/editors/sculpt_paint/paint_undo.c
+++ b/source/blender/editors/sculpt_paint/paint_undo.c
@@ -23,7 +23,6 @@
* \brief Undo system for painting and sculpting.
*/
-
#include <stdlib.h>
#include <string.h>
@@ -35,7 +34,7 @@
#include "DNA_userdef_types.h"
-
+#include "BKE_blender.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -43,11 +42,9 @@
#include "paint_intern.h"
-#define MAXUNDONAME 64
-
typedef struct UndoElem {
struct UndoElem *next, *prev;
- char name[MAXUNDONAME];
+ char name[BKE_UNDO_STR_MAX];
uintptr_t undosize;
ListBase elems;
@@ -155,7 +152,9 @@ static int undo_stack_step(bContext *C, UndoStack *stack, int step, const char *
UndoElem *undo;
if (step == 1) {
- if (stack->current == NULL) ;
+ if (stack->current == NULL) {
+ /* pass */
+ }
else {
if (!name || strcmp(stack->current->name, name) == 0) {
if (G.debug & G_DEBUG_WM) {
@@ -168,7 +167,9 @@ static int undo_stack_step(bContext *C, UndoStack *stack, int step, const char *
}
}
else if (step == -1) {
- if ((stack->current != NULL && stack->current->next == NULL) || stack->elems.first == NULL) ;
+ if ((stack->current != NULL && stack->current->next == NULL) || stack->elems.first == NULL) {
+ /* pass */
+ }
else {
if (!name || strcmp(stack->current->name, name) == 0) {
undo = (stack->current && stack->current->next) ? stack->current->next : stack->elems.first;
@@ -257,7 +258,9 @@ int ED_undo_paint_valid(int type, const char *name)
else
return 0;
- if (stack->current == NULL) ;
+ if (stack->current == NULL) {
+ /* pass */
+ }
else {
if (name && strcmp(stack->current->name, name) == 0)
return 1;
@@ -272,4 +275,3 @@ void ED_undo_paint_free(void)
undo_stack_free(&ImageUndoStack);
undo_stack_free(&MeshUndoStack);
}
-
diff --git a/source/blender/editors/sculpt_paint/paint_utils.c b/source/blender/editors/sculpt_paint/paint_utils.c
index 082e40f8e4c..b3679516fff 100644
--- a/source/blender/editors/sculpt_paint/paint_utils.c
+++ b/source/blender/editors/sculpt_paint/paint_utils.c
@@ -13,7 +13,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
@@ -41,6 +41,7 @@
#include "BLI_math.h"
#include "BLI_utildefines.h"
+#include "BLI_rect.h"
#include "BKE_brush.h"
#include "BKE_context.h"
@@ -80,8 +81,7 @@ int paint_convert_bb_to_rect(rcti *rect,
float projection_mat[4][4];
int i, j, k;
- rect->xmin = rect->ymin = INT_MAX;
- rect->xmax = rect->ymax = INT_MIN;
+ BLI_rcti_init_minmax(rect);
/* return zero if the bounding box has non-positive volume */
if (bb_min[0] > bb_max[0] || bb_min[1] > bb_max[1] || bb_min[2] > bb_max[2])
@@ -93,16 +93,19 @@ int paint_convert_bb_to_rect(rcti *rect,
for (j = 0; j < 2; ++j) {
for (k = 0; k < 2; ++k) {
float vec[3], proj[2];
+ int proj_i[2];
vec[0] = i ? bb_min[0] : bb_max[0];
vec[1] = j ? bb_min[1] : bb_max[1];
vec[2] = k ? bb_min[2] : bb_max[2];
/* convert corner to screen space */
- ED_view3d_project_float_v2(ar, vec, proj, projection_mat);
+ ED_view3d_project_float_v2_m4(ar, vec, proj, projection_mat);
/* expand 2D rectangle */
- rect->xmin = MIN2(rect->xmin, proj[0]);
- rect->xmax = MAX2(rect->xmax, proj[0]);
- rect->ymin = MIN2(rect->ymin, proj[1]);
- rect->ymax = MAX2(rect->ymax, proj[1]);
+
+ /* we could project directly to int? */
+ proj_i[0] = proj[0];
+ proj_i[1] = proj[1];
+
+ BLI_rcti_do_minmax_v(rect, proj_i);
}
}
}
@@ -134,7 +137,7 @@ void paint_calc_redraw_planes(float planes[4][4],
rect.ymin -= 2;
rect.ymax += 2;
- ED_view3d_calc_clipping(&bb, planes, &mats, &rect);
+ ED_view3d_clipping_calc(&bb, planes, &mats, &rect);
mul_m4_fl(planes, -1.0f);
}
@@ -156,14 +159,12 @@ float paint_calc_object_space_radius(ViewContext *vc, const float center[3],
{
Object *ob = vc->obact;
float delta[3], scale, loc[3];
- float mval_f[2];
+ const float mval_f[2] = {pixel_radius, 0.0f};
mul_v3_m4v3(loc, ob->obmat, center);
initgrabz(vc->rv3d, loc[0], loc[1], loc[2]);
- mval_f[0] = pixel_radius;
- mval_f[1] = 0.0f;
ED_view3d_win_to_delta(vc->ar, mval_f, delta);
scale = fabsf(mat4_to_scale(ob->obmat));
@@ -174,15 +175,10 @@ float paint_calc_object_space_radius(ViewContext *vc, const float center[3],
float paint_get_tex_pixel(Brush *br, float u, float v)
{
- TexResult texres;
- float co[3];
+ TexResult texres = {0};
+ float co[3] = {u, v, 0.0f};
int hasrgb;
- co[0] = u;
- co[1] = v;
- co[2] = 0;
-
- memset(&texres, 0, sizeof(TexResult));
hasrgb = multitex_ext(br->mtex.tex, co, NULL, NULL, 0, &texres);
if (hasrgb & TEX_RGB)
@@ -205,7 +201,7 @@ static void imapaint_project(Object *ob, float model[][4], float proj[][4], cons
static void imapaint_tri_weights(Object *ob,
const float v1[3], const float v2[3], const float v3[3],
- const float co[3], float w[3])
+ const float co[2], float w[3])
{
float pv1[4], pv2[4], pv3[4], h[3], divw;
float model[4][4], proj[4][4], wmat[3][3], invwmat[3][3];
@@ -284,7 +280,7 @@ void imapaint_pick_uv(Scene *scene, Object *ob, unsigned int faceindex, const in
/* the triangle with the largest absolute values is the one
* with the most negative weights */
imapaint_tri_weights(ob, mv[0].co, mv[1].co, mv[3].co, p, w);
- absw = fabs(w[0]) + fabs(w[1]) + fabs(w[2]);
+ absw = fabsf(w[0]) + fabsf(w[1]) + fabsf(w[2]);
if (absw < minabsw) {
uv[0] = tf->uv[0][0] * w[0] + tf->uv[1][0] * w[1] + tf->uv[3][0] * w[2];
uv[1] = tf->uv[0][1] * w[0] + tf->uv[1][1] * w[1] + tf->uv[3][1] * w[2];
@@ -292,7 +288,7 @@ void imapaint_pick_uv(Scene *scene, Object *ob, unsigned int faceindex, const in
}
imapaint_tri_weights(ob, mv[1].co, mv[2].co, mv[3].co, p, w);
- absw = fabs(w[0]) + fabs(w[1]) + fabs(w[2]);
+ absw = fabsf(w[0]) + fabsf(w[1]) + fabsf(w[2]);
if (absw < minabsw) {
uv[0] = tf->uv[1][0] * w[0] + tf->uv[2][0] * w[1] + tf->uv[3][0] * w[2];
uv[1] = tf->uv[1][1] * w[0] + tf->uv[2][1] * w[1] + tf->uv[3][1] * w[2];
@@ -301,7 +297,7 @@ void imapaint_pick_uv(Scene *scene, Object *ob, unsigned int faceindex, const in
}
else {
imapaint_tri_weights(ob, mv[0].co, mv[1].co, mv[2].co, p, w);
- absw = fabs(w[0]) + fabs(w[1]) + fabs(w[2]);
+ absw = fabsf(w[0]) + fabsf(w[1]) + fabsf(w[2]);
if (absw < minabsw) {
uv[0] = tf->uv[0][0] * w[0] + tf->uv[1][0] * w[1] + tf->uv[2][0] * w[2];
uv[1] = tf->uv[0][1] * w[0] + tf->uv[1][1] * w[1] + tf->uv[2][1] * w[2];
diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c
index 1b62ba8a7e0..6b3017b8638 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -72,6 +72,7 @@
#include "BKE_mesh.h"
#include "BKE_modifier.h"
#include "BKE_object.h"
+#include "BKE_object_deform.h"
#include "BKE_paint.h"
#include "BKE_report.h"
@@ -133,7 +134,7 @@ int vertex_paint_poll(bContext *C)
paint_brush(&CTX_data_tool_settings(C)->vpaint->paint))
{
ScrArea *sa = CTX_wm_area(C);
- if (sa->spacetype == SPACE_VIEW3D) {
+ if (sa && sa->spacetype == SPACE_VIEW3D) {
ARegion *ar = CTX_wm_region(C);
if (ar->regiontype == RGN_TYPE_WINDOW)
return 1;
@@ -256,7 +257,7 @@ static void do_shared_vertex_tesscol(Mesh *me)
MEM_freeN(scolmain);
}
-void do_shared_vertexcol(Mesh *me, int do_tessface)
+static void do_shared_vertexcol(Mesh *me, int do_tessface)
{
const int use_face_sel = (me->editflag & ME_EDIT_PAINT_MASK);
MPoly *mp;
@@ -845,20 +846,22 @@ static int sample_backbuf_area(ViewContext *vc, int *indexar, int totface, int x
static float calc_vp_strength_dl(VPaint *vp, ViewContext *vc, const float vert_nor[3],
const float mval[2], const float brush_size_pressure)
{
- Brush *brush = paint_brush(&vp->paint);
- float dist_squared;
- float vertco[2], delta[2];
+ float vertco[2];
- project_float_noclip(vc->ar, vert_nor, vertco);
- sub_v2_v2v2(delta, mval, vertco);
- dist_squared = dot_v2v2(delta, delta); /* len squared */
- if (dist_squared > brush_size_pressure * brush_size_pressure) {
- return 0.0f;
- }
- else {
- const float dist = sqrtf(dist_squared);
- return BKE_brush_curve_strength_clamp(brush, dist, brush_size_pressure);
+ if (ED_view3d_project_float_global(vc->ar, vert_nor, vertco, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ float delta[2];
+ float dist_squared;
+
+ sub_v2_v2v2(delta, mval, vertco);
+ dist_squared = dot_v2v2(delta, delta); /* len squared */
+ if (dist_squared <= brush_size_pressure * brush_size_pressure) {
+ Brush *brush = paint_brush(&vp->paint);
+ const float dist = sqrtf(dist_squared);
+ return BKE_brush_curve_strength_clamp(brush, dist, brush_size_pressure);
+ }
}
+
+ return 0.0f;
}
static float calc_vp_alpha_dl(VPaint *vp, ViewContext *vc,
@@ -1008,52 +1011,34 @@ static int weight_sample_invoke(bContext *C, wmOperator *op, wmEvent *event)
me = BKE_mesh_from_object(vc.obact);
if (me && me->dvert && vc.v3d && vc.rv3d) {
- int index;
+ const int use_vert_sel = (me->editflag & ME_EDIT_VERT_SEL) != 0;
+ int v_idx_best = -1;
+ unsigned int index;
view3d_operator_needs_opengl(C);
- index = view3d_sample_backbuf(&vc, event->mval[0], event->mval[1]);
-
- if (index && index <= me->totpoly) {
- DerivedMesh *dm = mesh_get_derived_final(vc.scene, vc.obact, CD_MASK_BAREMESH);
-
- if (dm->getVertCo == NULL) {
+ if (use_vert_sel) {
+ if (ED_mesh_pick_vert(C, me, event->mval, &index, ED_MESH_PICK_DEFAULT_VERT_SIZE)) {
+ v_idx_best = index;
+ }
+ }
+ else {
+ if (ED_mesh_pick_face_vert(C, me, vc.obact, event->mval, &index, ED_MESH_PICK_DEFAULT_FACE_SIZE)) {
+ v_idx_best = index;
+ }
+ else if (ED_mesh_pick_face(C, me, event->mval, &index, ED_MESH_PICK_DEFAULT_FACE_SIZE)) {
+ /* this relies on knowning the internal worksings of ED_mesh_pick_face_vert() */
BKE_report(op->reports, RPT_WARNING, "The modifier used does not support deformed locations");
}
- else {
- MPoly *mp = ((MPoly *)me->mpoly) + (index - 1);
- const int vgroup_active = vc.obact->actdef - 1;
- Scene *scene = vc.scene;
- ToolSettings *ts = vc.scene->toolsettings;
- Brush *brush = paint_brush(&ts->wpaint->paint);
- float mval_f[2];
- int v_idx_best = -1;
- int fidx;
- float len_best = FLT_MAX;
-
- mval_f[0] = (float)event->mval[0];
- mval_f[1] = (float)event->mval[1];
-
- fidx = mp->totloop - 1;
- do {
- float co[3], sco[3], len;
- const int v_idx = me->mloop[mp->loopstart + fidx].v;
- dm->getVertCo(dm, v_idx, co);
- project_float_noclip(vc.ar, co, sco);
- len = len_squared_v2v2(mval_f, sco);
- if (len < len_best) {
- len_best = len;
- v_idx_best = v_idx;
- }
- } while (fidx--);
+ }
- if (v_idx_best != -1) { /* should always be valid */
- float vgroup_weight = defvert_find_weight(&me->dvert[v_idx_best], vgroup_active);
- BKE_brush_weight_set(scene, brush, vgroup_weight);
- change = TRUE;
- }
- }
- dm->release(dm);
+ if (v_idx_best != -1) { /* should always be valid */
+ ToolSettings *ts = vc.scene->toolsettings;
+ Brush *brush = paint_brush(&ts->wpaint->paint);
+ const int vgroup_active = vc.obact->actdef - 1;
+ float vgroup_weight = defvert_find_weight(&me->dvert[v_idx_best], vgroup_active);
+ BKE_brush_weight_set(vc.scene, brush, vgroup_weight);
+ change = TRUE;
}
}
@@ -1084,6 +1069,20 @@ void PAINT_OT_weight_sample(wmOperatorType *ot)
}
/* samples cursor location, and gives menu with vertex groups to activate */
+static int weight_paint_sample_enum_itemf__helper(const MDeformVert *dvert, const int defbase_tot, int *groups)
+{
+ /* this func fills in used vgroup's */
+ int found = FALSE;
+ int i = dvert->totweight;
+ MDeformWeight *dw;
+ for (dw = dvert->dw; i > 0; dw++, i--) {
+ if (dw->def_nr < defbase_tot) {
+ groups[dw->def_nr] = TRUE;
+ found = TRUE;
+ }
+ }
+ return found;
+}
static EnumPropertyItem *weight_paint_sample_enum_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), int *free)
{
if (C) {
@@ -1095,56 +1094,57 @@ static EnumPropertyItem *weight_paint_sample_enum_itemf(bContext *C, PointerRNA
view3d_set_viewcontext(C, &vc);
me = BKE_mesh_from_object(vc.obact);
- if (me && me->dvert && vc.v3d && vc.rv3d) {
- int index;
+ if (me && me->dvert && vc.v3d && vc.rv3d && vc.obact->defbase.first) {
+ const int defbase_tot = BLI_countlist(&vc.obact->defbase);
+ const int use_vert_sel = (me->editflag & ME_EDIT_VERT_SEL) != 0;
+ int *groups = MEM_callocN(defbase_tot * sizeof(int), "groups");
+ int found = FALSE;
+ unsigned int index;
- view3d_operator_needs_opengl(C);
+ int mval[2] = {win->eventstate->x - vc.ar->winrct.xmin,
+ win->eventstate->y - vc.ar->winrct.ymin};
- index = view3d_sample_backbuf(&vc, win->eventstate->x - vc.ar->winrct.xmin, win->eventstate->y - vc.ar->winrct.ymin);
+ view3d_operator_needs_opengl(C);
- if (index && index <= me->totpoly) {
- const int defbase_tot = BLI_countlist(&vc.obact->defbase);
- if (defbase_tot) {
- MPoly *mp = ((MPoly *)me->mpoly) + (index - 1);
+ if (use_vert_sel) {
+ if (ED_mesh_pick_vert(C, me, mval, &index, ED_MESH_PICK_DEFAULT_VERT_SIZE)) {
+ MDeformVert *dvert = &me->dvert[index];
+ found |= weight_paint_sample_enum_itemf__helper(dvert, defbase_tot, groups);
+ }
+ }
+ else {
+ if (ED_mesh_pick_face(C, me, mval, &index, ED_MESH_PICK_DEFAULT_FACE_SIZE)) {
+ MPoly *mp = &me->mpoly[index];
unsigned int fidx = mp->totloop - 1;
- int *groups = MEM_callocN(defbase_tot * sizeof(int), "groups");
- int found = FALSE;
do {
- MDeformVert *dvert = me->dvert + me->mloop[mp->loopstart + fidx].v;
- int i = dvert->totweight;
- MDeformWeight *dw;
- for (dw = dvert->dw; i > 0; dw++, i--) {
- if (dw->def_nr < defbase_tot) {
- groups[dw->def_nr] = TRUE;
- found = TRUE;
- }
- }
+ MDeformVert *dvert = &me->dvert[me->mloop[mp->loopstart + fidx].v];
+ found |= weight_paint_sample_enum_itemf__helper(dvert, defbase_tot, groups);
} while (fidx--);
+ }
+ }
- if (found == FALSE) {
- MEM_freeN(groups);
+ if (found == FALSE) {
+ MEM_freeN(groups);
+ }
+ else {
+ EnumPropertyItem *item = NULL, item_tmp = {0};
+ int totitem = 0;
+ int i = 0;
+ bDeformGroup *dg;
+ for (dg = vc.obact->defbase.first; dg && i < defbase_tot; i++, dg = dg->next) {
+ if (groups[i]) {
+ item_tmp.identifier = item_tmp.name = dg->name;
+ item_tmp.value = i;
+ RNA_enum_item_add(&item, &totitem, &item_tmp);
}
- else {
- EnumPropertyItem *item = NULL, item_tmp = {0};
- int totitem = 0;
- int i = 0;
- bDeformGroup *dg;
- for (dg = vc.obact->defbase.first; dg && i < defbase_tot; i++, dg = dg->next) {
- if (groups[i]) {
- item_tmp.identifier = item_tmp.name = dg->name;
- item_tmp.value = i;
- RNA_enum_item_add(&item, &totitem, &item_tmp);
- }
- }
+ }
- RNA_enum_item_end(&item, &totitem);
- *free = 1;
+ RNA_enum_item_end(&item, &totitem);
+ *free = 1;
- MEM_freeN(groups);
- return item;
- }
- }
+ MEM_freeN(groups);
+ return item;
}
}
}
@@ -1308,29 +1308,6 @@ static char has_locked_group(MDeformVert *dvert, const int defbase_tot,
}
return FALSE;
}
-/*
- * gen_lck_flags gets the status of "flag" for each bDeformGroup
- * in ob->defbase and returns an array containing them
- */
-static char *gen_lock_flags(Object *ob, int defbase_tot)
-{
- char is_locked = FALSE;
- int i;
- //int defbase_tot = BLI_countlist(&ob->defbase);
- char *lock_flags = MEM_mallocN(defbase_tot * sizeof(char), "defflags");
- bDeformGroup *defgroup;
-
- for (i = 0, defgroup = ob->defbase.first; i < defbase_tot && defgroup; defgroup = defgroup->next, i++) {
- lock_flags[i] = ((defgroup->flag & DG_LOCK_WEIGHT) != 0);
- is_locked |= lock_flags[i];
- }
- if (is_locked) {
- return lock_flags;
- }
-
- MEM_freeN(lock_flags);
- return NULL;
-}
static int has_locked_group_selected(int defbase_tot, const char *defbase_sel, const char *lock_flags)
{
@@ -1664,9 +1641,9 @@ static int apply_mp_locks_normalize(Mesh *me, const WeightPaintInfo *wpi,
dv_test.totweight = dv->totweight;
/* do not multi-paint if a locked group is selected or the active group is locked
* !lock_flags[dw->def_nr] helps if nothing is selected, but active group is locked */
- if ( (wpi->lock_flags == NULL) ||
- ((wpi->lock_flags[dw->def_nr] == FALSE) && /* def_nr range has to be checked for by caller */
- has_locked_group_selected(wpi->defbase_tot, wpi->defbase_sel, wpi->lock_flags) == FALSE))
+ if ((wpi->lock_flags == NULL) ||
+ ((wpi->lock_flags[dw->def_nr] == FALSE) && /* def_nr range has to be checked for by caller */
+ has_locked_group_selected(wpi->defbase_tot, wpi->defbase_sel, wpi->lock_flags) == FALSE))
{
if (wpi->do_multipaint && wpi->defbase_tot_sel > 1) {
if (change && change != 1) {
@@ -1722,10 +1699,6 @@ static int get_first_selected_nonzero_weight(MDeformVert *dvert, const int defba
return -1;
}
-
-static char *wpaint_make_validmap(Object *ob);
-
-
static void do_weight_paint_vertex(
/* vars which remain the same for every vert */
VPaint *wp, Object *ob, const WeightPaintInfo *wpi,
@@ -1816,8 +1789,8 @@ static void do_weight_paint_vertex(
/* If there are no locks or multipaint,
* then there is no need to run the more complicated checks */
- if ( (do_multipaint_totsel == FALSE) &&
- (wpi->lock_flags == NULL || has_locked_group(dv, wpi->defbase_tot, wpi->vgroup_validmap, wpi->lock_flags) == FALSE))
+ if ((do_multipaint_totsel == FALSE) &&
+ (wpi->lock_flags == NULL || has_locked_group(dv, wpi->defbase_tot, wpi->vgroup_validmap, wpi->lock_flags) == FALSE))
{
dw->weight = wpaint_blend(wp, dw->weight, dw_prev->weight, alpha, paintweight,
wpi->brush_alpha_value, wpi->do_flip, FALSE);
@@ -1997,7 +1970,7 @@ static int set_wpaint(bContext *C, wmOperator *UNUSED(op)) /* toggle */
if (wp == NULL)
wp = scene->toolsettings->wpaint = new_vpaint(1);
- paint_init(&wp->paint, PAINT_CURSOR_WEIGHT_PAINT);
+ BKE_paint_init(&wp->paint, PAINT_CURSOR_WEIGHT_PAINT);
paint_cursor_start(C, weight_paint_poll);
mesh_octree_table(ob, NULL, NULL, 's');
@@ -2067,63 +2040,6 @@ struct WPaintData {
int defbase_tot;
};
-static char *wpaint_make_validmap(Object *ob)
-{
- bDeformGroup *dg;
- ModifierData *md;
- char *vgroup_validmap;
- GHash *gh;
- int i, step1 = 1;
-
- if (ob->defbase.first == NULL) {
- return NULL;
- }
-
- gh = BLI_ghash_str_new("wpaint_make_validmap gh");
-
- /* add all names to a hash table */
- for (dg = ob->defbase.first; dg; dg = dg->next) {
- BLI_ghash_insert(gh, dg->name, NULL);
- }
-
- /* now loop through the armature modifiers and identify deform bones */
- for (md = ob->modifiers.first; md; md = !md->next && step1 ? (step1 = 0), modifiers_getVirtualModifierList(ob) : md->next) {
- if (!(md->mode & (eModifierMode_Realtime | eModifierMode_Virtual)))
- continue;
-
- if (md->type == eModifierType_Armature) {
- ArmatureModifierData *amd = (ArmatureModifierData *) md;
-
- if (amd->object && amd->object->pose) {
- bPose *pose = amd->object->pose;
- bPoseChannel *chan;
-
- for (chan = pose->chanbase.first; chan; chan = chan->next) {
- if (chan->bone->flag & BONE_NO_DEFORM)
- continue;
-
- if (BLI_ghash_remove(gh, chan->name, NULL, NULL)) {
- BLI_ghash_insert(gh, chan->name, SET_INT_IN_POINTER(1));
- }
- }
- }
- }
- }
-
- vgroup_validmap = MEM_mallocN(BLI_ghash_size(gh), "wpaint valid map");
-
- /* add all names to a hash table */
- for (dg = ob->defbase.first, i = 0; dg; dg = dg->next, i++) {
- vgroup_validmap[i] = (BLI_ghash_lookup(gh, dg->name) != NULL);
- }
-
- BLI_assert(i == BLI_ghash_size(gh));
-
- BLI_ghash_free(gh, NULL, NULL);
-
- return vgroup_validmap;
-}
-
static int wpaint_stroke_test_start(bContext *C, wmOperator *op, const float UNUSED(mouse[2]))
{
Scene *scene = CTX_data_scene(C);
@@ -2202,9 +2118,9 @@ static int wpaint_stroke_test_start(bContext *C, wmOperator *op, const float UNU
/* set up auto-normalize, and generate map for detecting which
* vgroups affect deform bones */
wpd->defbase_tot = BLI_countlist(&ob->defbase);
- wpd->lock_flags = gen_lock_flags(ob, wpd->defbase_tot);
+ wpd->lock_flags = BKE_objdef_lock_flags_get(ob, wpd->defbase_tot);
if (ts->auto_normalize || ts->multipaint || wpd->lock_flags) {
- wpd->vgroup_validmap = wpaint_make_validmap(ob);
+ wpd->vgroup_validmap = BKE_objdef_validmap_get(ob, wpd->defbase_tot);
}
/* painting on subsurfs should give correct points too, this returns me->totvert amount */
@@ -2243,7 +2159,6 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
float alpha;
float mval[2];
int use_vert_sel;
- char *defbase_sel;
const float pressure = RNA_float_get(itemptr, "pressure");
const float brush_size_pressure = BKE_brush_size_get(scene, brush) * (BKE_brush_use_size_pressure(scene, brush) ? pressure : 1.0f);
@@ -2277,12 +2192,13 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
+
/* *** setup WeightPaintInfo - pass onto do_weight_paint_vertex *** */
wpi.defbase_tot = wpd->defbase_tot;
- defbase_sel = MEM_mallocN(wpi.defbase_tot * sizeof(char), "wpi.defbase_sel");
- wpi.defbase_tot_sel = get_selected_defgroups(ob, defbase_sel, wpi.defbase_tot);
- wpi.defbase_sel = defbase_sel; /* so we can stay const */
- if (wpi.defbase_tot_sel == 0 && ob->actdef > 0) wpi.defbase_tot_sel = 1;
+ wpi.defbase_sel = BKE_objdef_selected_get(ob, wpi.defbase_tot, &wpi.defbase_tot_sel);
+ if (wpi.defbase_tot_sel == 0 && ob->actdef > 0) {
+ wpi.defbase_tot_sel = 1;
+ }
wpi.defbase_tot_unsel = wpi.defbase_tot - wpi.defbase_tot_sel;
wpi.vgroup_active = wpd->vgroup_active;
@@ -2313,19 +2229,7 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
if (indexar[0]) totindex = 1;
else totindex = 0;
}
-
- if (wp->flag & VP_COLINDEX) {
- for (index = 0; index < totindex; index++) {
- if (indexar[index] && indexar[index] <= me->totpoly) {
- MPoly *mpoly = ((MPoly *)me->mpoly) + (indexar[index] - 1);
-
- if (mpoly->mat_nr != ob->actcol - 1) {
- indexar[index] = 0;
- }
- }
- }
- }
-
+
if ((me->editflag & ME_EDIT_PAINT_MASK) && me->mpoly) {
for (index = 0; index < totindex; index++) {
if (indexar[index] && indexar[index] <= me->totpoly) {
@@ -2468,7 +2372,8 @@ static void wpaint_stroke_done(const bContext *C, struct PaintStroke *stroke)
static int wpaint_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
-
+ int retval;
+
op->customdata = paint_stroke_new(C, NULL, wpaint_stroke_test_start,
wpaint_stroke_update_step,
wpaint_stroke_done, event->type);
@@ -2476,7 +2381,9 @@ static int wpaint_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* add modal handler */
WM_event_add_modal_handler(C, op);
- op->type->modal(C, op, event);
+ retval = op->type->modal(C, op, event);
+ OPERATOR_RETVAL_CHECK(retval);
+ BLI_assert(retval == OPERATOR_RUNNING_MODAL);
return OPERATOR_RUNNING_MODAL;
}
@@ -2574,7 +2481,7 @@ static int set_vpaint(bContext *C, wmOperator *op) /* toggle */
paint_cursor_start(C, vertex_paint_poll);
- paint_init(&vp->paint, PAINT_CURSOR_VERTEX_PAINT);
+ BKE_paint_init(&vp->paint, PAINT_CURSOR_VERTEX_PAINT);
}
if (me)
@@ -2725,52 +2632,13 @@ static int vpaint_stroke_test_start(bContext *C, struct wmOperator *op, const fl
return 1;
}
-#if 0
-static void vpaint_paint_face(VPaint *vp, VPaintData *vpd, Object *ob,
- const unsigned int index, const float mval[2],
- const float brush_size_pressure, const float brush_alpha_pressure,
- int UNUSED(flip))
+static void copy_lcol_to_mcol(MCol *mcol, const MLoopCol *lcol)
{
- ViewContext *vc = &vpd->vc;
- Brush *brush = paint_brush(&vp->paint);
- Mesh *me = BKE_mesh_from_object(ob);
- MFace *mface = &me->mface[index];
- unsigned int *mcol = ((unsigned int *)me->mcol) + 4 * index;
- unsigned int *mcolorig = ((unsigned int *)vp->vpaint_prev) + 4 * index;
- float alpha;
- int i;
-
- int brush_alpha_pressure_i;
-
- if ((vp->flag & VP_COLINDEX && mface->mat_nr != ob->actcol - 1) ||
- ((me->editflag & ME_EDIT_PAINT_MASK) && !(mface->flag & ME_FACE_SEL)))
- return;
-
- if (brush->vertexpaint_tool == PAINT_BLEND_BLUR) {
- unsigned int fcol1 = mcol_blend(mcol[0], mcol[1], 128);
- if (mface->v4) {
- unsigned int fcol2 = mcol_blend(mcol[2], mcol[3], 128);
- vpd->paintcol = mcol_blend(fcol1, fcol2, 128);
- }
- else {
- vpd->paintcol = mcol_blend(mcol[2], fcol1, 170);
- }
- }
-
- brush_alpha_pressure_i = (int)(brush_alpha_pressure * 255.0f);
-
- for (i = 0; i < (mface->v4 ? 4 : 3); ++i) {
- alpha = calc_vp_alpha_dl(vp, vc, vpd->vpimat, vpd->vertexcosnos + 6 * (&mface->v1)[i],
- mval, brush_size_pressure, brush_alpha_pressure);
- if (alpha) {
- const int alpha_i = (int)(alpha * 255.0f);
- mcol[i] = vpaint_blend(vp, mcol[i], mcolorig[i], vpd->paintcol, alpha_i, brush_alpha_pressure_i);
- }
- }
+ mcol->a = lcol->a;
+ mcol->r = lcol->r;
+ mcol->g = lcol->g;
+ mcol->b = lcol->b;
}
-#endif
-
-/* BMESH version of vpaint_paint_face (commented above) */
static void vpaint_paint_poly(VPaint *vp, VPaintData *vpd, Object *ob,
const unsigned int index, const float mval[2],
@@ -2830,33 +2698,22 @@ static void vpaint_paint_poly(VPaint *vp, VPaintData *vpd, Object *ob,
}
if (vpd->use_fast_update) {
-
-#ifdef CPYCOL
-# undef CPYCOL
-#endif
-#define CPYCOL(c, l) (c)->a = (l)->a, (c)->r = (l)->r, (c)->g = (l)->g, (c)->b = (l)->b
-
/* update vertex colors for tessellations incrementally,
* rather then regenerating the tessellation altogether */
for (e = vpd->polyfacemap[index].first; e; e = e->next) {
- mf = me->mface + e->facenr;
- mc = me->mcol + e->facenr * 4;
+ mf = &me->mface[e->facenr];
+ mc = &me->mcol[e->facenr * 4];
ml = me->mloop + mpoly->loopstart;
mlc = me->mloopcol + mpoly->loopstart;
for (j = 0; j < mpoly->totloop; j++, ml++, mlc++) {
- if (ml->v == mf->v1)
- CPYCOL(mc, mlc);
- else if (ml->v == mf->v2)
- CPYCOL(mc + 1, mlc);
- else if (ml->v == mf->v3)
- CPYCOL(mc + 2, mlc);
- else if (mf->v4 && ml->v == mf->v4)
- CPYCOL(mc + 3, mlc);
+ if (ml->v == mf->v1) copy_lcol_to_mcol(mc + 0, mlc);
+ else if (ml->v == mf->v2) copy_lcol_to_mcol(mc + 1, mlc);
+ else if (ml->v == mf->v3) copy_lcol_to_mcol(mc + 2, mlc);
+ else if (mf->v4 && ml->v == mf->v4) copy_lcol_to_mcol(mc + 3, mlc);
}
}
-#undef CPYCOL
}
}
@@ -2890,7 +2747,7 @@ static void vpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
mval[0] -= vc->ar->winrct.xmin;
mval[1] -= vc->ar->winrct.ymin;
-
+
/* which faces are involved */
if (vp->flag & VP_AREA) {
totindex = sample_backbuf_area(vc, indexar, me->totpoly, mval[0], mval[1], brush_size_pressure);
@@ -2900,19 +2757,6 @@ static void vpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
if (indexar[0]) totindex = 1;
else totindex = 0;
}
-
-
- if (vp->flag & VP_COLINDEX) {
- for (index = 0; index < totindex; index++) {
- if (indexar[index] && indexar[index] <= me->totpoly) {
- MPoly *mpoly = ((MPoly *)me->mpoly) + (indexar[index] - 1);
-
- if (mpoly->mat_nr != ob->actcol - 1) {
- indexar[index] = 0;
- }
- }
- }
- }
if ((me->editflag & ME_EDIT_PAINT_MASK) && me->mpoly) {
for (index = 0; index < totindex; index++) {
@@ -2921,15 +2765,13 @@ static void vpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
if ((mpoly->flag & ME_FACE_SEL) == 0)
indexar[index] = 0;
- }
+ }
}
}
swap_m4m4(vc->rv3d->persmat, mat);
-
for (index = 0; index < totindex; index++) {
-
if (indexar[index] && indexar[index] <= me->totpoly) {
vpaint_paint_poly(vp, vpd, ob, indexar[index] - 1, mval, brush_size_pressure, brush_alpha_pressure);
}
@@ -2977,7 +2819,8 @@ static void vpaint_stroke_done(const bContext *C, struct PaintStroke *stroke)
static int vpaint_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
-
+ int retval;
+
op->customdata = paint_stroke_new(C, NULL, vpaint_stroke_test_start,
vpaint_stroke_update_step,
vpaint_stroke_done, event->type);
@@ -2985,7 +2828,9 @@ static int vpaint_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* add modal handler */
WM_event_add_modal_handler(C, op);
- op->type->modal(C, op, event);
+ retval = op->type->modal(C, op, event);
+ OPERATOR_RETVAL_CHECK(retval);
+ BLI_assert(retval == OPERATOR_RUNNING_MODAL);
return OPERATOR_RUNNING_MODAL;
}
diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c
index bfac2922c2b..e03c2fbfd21 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -369,7 +369,7 @@ static int sculpt_get_redraw_rect(ARegion *ar, RegionView3D *rv3d,
ss = ob->sculpt;
if (ss->cache) {
if (!BLI_rcti_is_empty(&ss->cache->previous_r))
- BLI_union_rcti(rect, &ss->cache->previous_r);
+ BLI_rcti_union(rect, &ss->cache->previous_r);
}
return 1;
@@ -771,7 +771,7 @@ static float tex_strength(SculptSession *ss, Brush *br, float point[3],
if (ss->cache->radial_symmetry_pass)
mul_m4_v3(ss->cache->symm_rot_mat_inv, symm_point);
- ED_view3d_project_float_v2(ss->cache->vc->ar, symm_point, point_2d, ss->cache->projection_mat);
+ ED_view3d_project_float_v2_m4(ss->cache->vc->ar, symm_point, point_2d, ss->cache->projection_mat);
if (mtex->brush_map_mode == MTEX_MAP_MODE_VIEW) {
/* keep coordinates relative to mouse */
@@ -1225,7 +1225,7 @@ static void do_mesh_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *node,
if (sculpt_brush_test(&test, vd.co)) {
const float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist,
ss->cache->view_normal, vd.no, vd.fno,
- smooth_mask ? 0 : *vd.mask);
+ smooth_mask ? 0 : (vd.mask ? *vd.mask : 0.0f));
if (smooth_mask) {
float val = neighbor_average_mask(ss, vd.vert_indices[vd.i]) - *vd.mask;
val *= fade * bstrength;
@@ -1524,7 +1524,7 @@ static void do_draw_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
/* offset vertex */
float fade = tex_strength(ss, brush, vd.co, test.dist,
ss->cache->sculpt_normal_symm, vd.no,
- vd.fno, *vd.mask);
+ vd.fno, vd.mask ? *vd.mask : 0.0f);
mul_v3_v3fl(proxy[vd.i], offset, fade);
@@ -1580,7 +1580,7 @@ static void do_crease_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod
/* offset vertex */
const float fade = tex_strength(ss, brush, vd.co, test.dist,
ss->cache->sculpt_normal_symm,
- vd.no, vd.fno, *vd.mask);
+ vd.no, vd.fno, vd.mask ? *vd.mask : 0.0f);
float val1[3];
float val2[3];
@@ -1623,7 +1623,7 @@ static void do_pinch_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode
if (sculpt_brush_test(&test, vd.co)) {
float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist,
ss->cache->view_normal, vd.no,
- vd.fno, *vd.mask);
+ vd.fno, vd.mask ? *vd.mask : 0.0f);
float val[3];
sub_v3_v3v3(val, test.location, vd.co);
@@ -1677,7 +1677,8 @@ static void do_grab_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
{
if (sculpt_brush_test(&test, origco[vd.i])) {
const float fade = bstrength * tex_strength(ss, brush, origco[vd.i], test.dist,
- ss->cache->sculpt_normal_symm, origno[vd.i], NULL, *vd.mask);
+ ss->cache->sculpt_normal_symm, origno[vd.i],
+ NULL, vd.mask ? *vd.mask : 0.0f);
mul_v3_v3fl(proxy[vd.i], grab_delta, fade);
@@ -1718,7 +1719,7 @@ static void do_nudge_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode
if (sculpt_brush_test(&test, vd.co)) {
const float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist,
ss->cache->sculpt_normal_symm,
- vd.no, vd.fno, *vd.mask);
+ vd.no, vd.fno, vd.mask ? *vd.mask : 0.0f);
mul_v3_v3fl(proxy[vd.i], cono, fade);
@@ -1767,7 +1768,7 @@ static void do_snake_hook_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int to
if (sculpt_brush_test(&test, vd.co)) {
const float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist,
ss->cache->sculpt_normal_symm,
- vd.no, vd.fno, *vd.mask);
+ vd.no, vd.fno, vd.mask ? *vd.mask : 0.0f);
mul_v3_v3fl(proxy[vd.i], grab_delta, fade);
@@ -1815,7 +1816,7 @@ static void do_thumb_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode
if (sculpt_brush_test(&test, origco[vd.i])) {
const float fade = bstrength * tex_strength(ss, brush, origco[vd.i], test.dist,
ss->cache->sculpt_normal_symm,
- origno[vd.i], NULL, *vd.mask);
+ origno[vd.i], NULL, vd.mask ? *vd.mask : 0.0f);
mul_v3_v3fl(proxy[vd.i], cono, fade);
@@ -1868,7 +1869,7 @@ static void do_rotate_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod
if (sculpt_brush_test(&test, origco[vd.i])) {
const float fade = bstrength * tex_strength(ss, brush, origco[vd.i], test.dist,
ss->cache->sculpt_normal_symm,
- origno[vd.i], NULL, *vd.mask);
+ origno[vd.i], NULL, vd.mask ? *vd.mask : 0.0f);
mul_v3_m4v3(proxy[vd.i], m, origco[vd.i]);
sub_v3_v3(proxy[vd.i], origco[vd.i]);
@@ -1921,7 +1922,7 @@ static void do_layer_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode
if (sculpt_brush_test(&test, origco[vd.i])) {
const float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist,
ss->cache->sculpt_normal_symm,
- vd.no, vd.fno, *vd.mask);
+ vd.no, vd.fno, vd.mask ? *vd.mask : 0.0f);
float *disp = &layer_disp[vd.i];
float val[3];
@@ -1974,7 +1975,8 @@ static void do_inflate_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totno
{
if (sculpt_brush_test(&test, vd.co)) {
const float fade = bstrength * tex_strength(ss, brush, vd.co, test.dist,
- ss->cache->view_normal, vd.no, vd.fno, *vd.mask);
+ ss->cache->view_normal,
+ vd.no, vd.fno, vd.mask ? *vd.mask : 0.0f);
float val[3];
if (vd.fno) copy_v3_v3(val, vd.fno);
@@ -2315,7 +2317,7 @@ static void do_flatten_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totno
if (plane_trim(ss->cache, brush, val)) {
const float fade = bstrength * tex_strength(ss, brush, vd.co, sqrt(test.dist),
- an, vd.no, vd.fno, *vd.mask);
+ an, vd.no, vd.fno, vd.mask ? *vd.mask : 0.0f);
mul_v3_v3fl(proxy[vd.i], val, fade);
@@ -2389,7 +2391,7 @@ static void do_clay_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
if (plane_trim(ss->cache, brush, val)) {
const float fade = bstrength * tex_strength(ss, brush, vd.co,
sqrt(test.dist),
- an, vd.no, vd.fno, *vd.mask);
+ an, vd.no, vd.fno, vd.mask ? *vd.mask : 0.0f);
mul_v3_v3fl(proxy[vd.i], val, fade);
@@ -2491,7 +2493,7 @@ static void do_clay_strips_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int t
if (plane_trim(ss->cache, brush, val)) {
const float fade = bstrength * tex_strength(ss, brush, vd.co,
ss->cache->radius * test.dist,
- an, vd.no, vd.fno, *vd.mask);
+ an, vd.no, vd.fno, vd.mask ? *vd.mask : 0.0f);
mul_v3_v3fl(proxy[vd.i], val, fade);
@@ -2555,7 +2557,7 @@ static void do_fill_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
if (plane_trim(ss->cache, brush, val)) {
const float fade = bstrength * tex_strength(ss, brush, vd.co,
sqrt(test.dist),
- an, vd.no, vd.fno, *vd.mask);
+ an, vd.no, vd.fno, vd.mask ? *vd.mask : 0.0f);
mul_v3_v3fl(proxy[vd.i], val, fade);
@@ -2619,7 +2621,7 @@ static void do_scrape_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod
if (plane_trim(ss->cache, brush, val)) {
const float fade = bstrength * tex_strength(ss, brush, vd.co,
sqrt(test.dist),
- an, vd.no, vd.fno, *vd.mask);
+ an, vd.no, vd.fno, vd.mask ? *vd.mask : 0.0f);
mul_v3_v3fl(proxy[vd.i], val, fade);
@@ -2649,7 +2651,7 @@ void sculpt_vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3])
}
if (is_basis) {
- ofs = key_to_vertcos(ob, kb);
+ ofs = BKE_key_convert_to_vertcos(ob, kb);
/* calculate key coord offsets (from previous location) */
for (a = 0; a < me->totvert; a++) {
@@ -2662,7 +2664,7 @@ void sculpt_vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3])
int apply_offset = ((currkey != kb) && (ob->shapenr - 1 == currkey->relative));
if (apply_offset)
- offset_to_key(ob, currkey, ofs);
+ BKE_key_convert_from_offset(ob, currkey, ofs);
currkey = currkey->next;
}
@@ -2683,7 +2685,7 @@ void sculpt_vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3])
}
/* apply new coords on active key block */
- vertcos_to_key(ob, kb, vertCos);
+ BKE_key_convert_from_vertcos(ob, kb, vertCos);
}
static void do_brush_action(Sculpt *sd, Object *ob, Brush *brush)
@@ -3062,17 +3064,49 @@ static void sculpt_update_tex(const Scene *scene, Sculpt *sd, SculptSession *ss)
}
}
-void sculpt_update_mesh_elements(Scene *scene, Sculpt *sd, Object *ob, int need_pmap)
+/**
+ * \param need_mask So the DerivedMesh thats returned has mask data
+ */
+void sculpt_update_mesh_elements(Scene *scene, Sculpt *sd, Object *ob,
+ int need_pmap, int need_mask)
{
- DerivedMesh *dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
+ DerivedMesh *dm;
SculptSession *ss = ob->sculpt;
+ Mesh *me = ob->data;
MultiresModifierData *mmd = sculpt_multires_active(scene, ob);
ss->modifiers_active = sculpt_modifiers_active(scene, sd, ob);
- if (!mmd) ss->kb = ob_get_keyblock(ob);
+ if (need_mask) {
+ if (mmd == NULL) {
+ if (!CustomData_has_layer(&me->vdata, CD_PAINT_MASK)) {
+ ED_sculpt_mask_layers_ensure(ob, NULL);
+ }
+ }
+ else {
+ if (!CustomData_has_layer(&me->ldata, CD_GRID_PAINT_MASK)) {
+#if 1
+ ED_sculpt_mask_layers_ensure(ob, mmd);
+#else /* if we wanted to support adding mask data while multi-res painting, we would need to do this */
+ if ((ED_sculpt_mask_layers_ensure(ob, mmd) & ED_SCULPT_MASK_LAYER_CALC_LOOP)) {
+ /* remake the derived mesh */
+ ob->recalc |= OB_RECALC_DATA;
+ BKE_object_handle_update(scene, ob);
+ }
+#endif
+ }
+ }
+ }
+
+ /* BMESH ONLY --- at some point we should move sculpt code to use polygons only - but for now it needs tessfaces */
+ BKE_mesh_tessface_ensure(me);
+
+ if (!mmd) ss->kb = BKE_keyblock_from_object(ob);
else ss->kb = NULL;
+ /* needs to be called after we ensure tessface */
+ dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
+
if (mmd) {
ss->multires = mmd;
ss->totvert = dm->getNumVerts(dm);
@@ -3083,7 +3117,6 @@ void sculpt_update_mesh_elements(Scene *scene, Sculpt *sd, Object *ob, int need_
ss->face_normals = NULL;
}
else {
- Mesh *me = BKE_mesh_from_object(ob);
ss->totvert = me->totvert;
ss->totpoly = me->totpoly;
ss->mvert = me->mvert;
@@ -3094,9 +3127,6 @@ void sculpt_update_mesh_elements(Scene *scene, Sculpt *sd, Object *ob, int need_
ss->vmask = CustomData_get_layer(&me->vdata, CD_PAINT_MASK);
}
- /* BMESH ONLY --- at some point we should move sculpt code to use polygons only - but for now it needs tessfaces */
- BKE_mesh_tessface_ensure(ob->data);
-
ss->pbvh = dm->getPBVH(ob, dm);
ss->pmap = (need_pmap && dm->getPolyMap) ? dm->getPolyMap(ob, dm) : NULL;
@@ -3106,21 +3136,21 @@ void sculpt_update_mesh_elements(Scene *scene, Sculpt *sd, Object *ob, int need_
free_sculptsession_deformMats(ss);
- if (ss->kb) ss->orig_cos = key_to_vertcos(ob, ss->kb);
- else ss->orig_cos = mesh_getVertexCos(ob->data, NULL);
+ ss->orig_cos = (ss->kb) ? BKE_key_convert_to_vertcos(ob, ss->kb) : mesh_getVertexCos(me, NULL);
crazyspace_build_sculpt(scene, ob, &ss->deform_imats, &ss->deform_cos);
BLI_pbvh_apply_vertCos(ss->pbvh, ss->deform_cos);
- for (a = 0; a < ((Mesh *)ob->data)->totvert; ++a)
+ for (a = 0; a < me->totvert; ++a) {
invert_m3(ss->deform_imats[a]);
+ }
}
}
else free_sculptsession_deformMats(ss);
/* if pbvh is deformed, key block is already applied to it */
if (ss->kb && !BLI_pbvh_isDeformed(ss->pbvh)) {
- float (*vertCos)[3] = key_to_vertcos(ob, ss->kb);
+ float (*vertCos)[3] = BKE_key_convert_to_vertcos(ob, ss->kb);
if (vertCos) {
/* apply shape keys coordinates to PBVH */
@@ -3136,6 +3166,11 @@ int sculpt_mode_poll(bContext *C)
return ob && ob->mode & OB_MODE_SCULPT;
}
+int sculpt_mode_poll_view3d(bContext *C)
+{
+ return (sculpt_mode_poll(C) && CTX_wm_region_view3d(C));
+}
+
int sculpt_poll(bContext *C)
{
return sculpt_mode_poll(C) && paint_poll(C);
@@ -3254,9 +3289,9 @@ static void sculpt_omp_start(Sculpt *sd, SculptSession *ss)
if (ss->multires) {
int i, gridsize, array_mem_size;
BLI_pbvh_node_get_grids(ss->pbvh, NULL, NULL, NULL, NULL,
- &gridsize, NULL, NULL);
+ &gridsize, NULL, NULL);
- array_mem_size = cache->num_threads * sizeof(void*);
+ array_mem_size = cache->num_threads * sizeof(void *);
cache->tmpgrid_co = MEM_mallocN(array_mem_size, "tmpgrid_co array");
cache->tmprow_co = MEM_mallocN(array_mem_size, "tmprow_co array");
@@ -3668,7 +3703,7 @@ static void sculpt_stroke_modifiers_check(const bContext *C, Object *ob)
Brush *brush = paint_brush(&sd->paint);
sculpt_update_mesh_elements(CTX_data_scene(C), sd, ob,
- sculpt_any_smooth_mode(brush, ss->cache, 0));
+ sculpt_any_smooth_mode(brush, ss->cache, 0), FALSE);
}
}
@@ -3703,7 +3738,7 @@ static void sculpt_raycast_cb(PBVHNode *node, void *data_v, float *tmin)
* (This allows us to ignore the GL depth buffer)
* Returns 0 if the ray doesn't hit the mesh, non-zero otherwise
*/
-int sculpt_stroke_get_location(bContext *C, float out[3], float mouse[2])
+int sculpt_stroke_get_location(bContext *C, float out[3], const float mouse[2])
{
ViewContext vc;
Object *ob;
@@ -3774,12 +3809,17 @@ static int sculpt_brush_stroke_init(bContext *C, wmOperator *op)
Brush *brush = paint_brush(&sd->paint);
int mode = RNA_enum_get(op->ptr, "mode");
int is_smooth = 0;
+ int need_mask = FALSE;
+
+ if (brush->sculpt_tool == SCULPT_TOOL_MASK) {
+ need_mask = TRUE;
+ }
view3d_operator_needs_opengl(C);
sculpt_brush_init_tex(scene, sd, ss);
is_smooth = sculpt_any_smooth_mode(brush, NULL, mode);
- sculpt_update_mesh_elements(scene, sd, ob, is_smooth);
+ sculpt_update_mesh_elements(scene, sd, ob, is_smooth, need_mask);
return 1;
}
@@ -3958,6 +3998,7 @@ static int sculpt_brush_stroke_invoke(bContext *C, wmOperator *op, wmEvent *even
{
struct PaintStroke *stroke;
int ignore_background_click;
+ int retval;
if (!sculpt_brush_stroke_init(C, op))
return OPERATOR_CANCELLED;
@@ -3981,7 +4022,9 @@ static int sculpt_brush_stroke_invoke(bContext *C, wmOperator *op, wmEvent *even
/* add modal handler */
WM_event_add_modal_handler(C, op);
- op->type->modal(C, op, event);
+ retval = op->type->modal(C, op, event);
+ OPERATOR_RETVAL_CHECK(retval);
+ BLI_assert(retval == OPERATOR_RUNNING_MODAL);
return OPERATOR_RUNNING_MODAL;
}
@@ -4095,13 +4138,14 @@ static void sculpt_init_session(Scene *scene, Object *ob)
{
ob->sculpt = MEM_callocN(sizeof(SculptSession), "sculpt session");
- sculpt_update_mesh_elements(scene, scene->toolsettings->sculpt, ob, 0);
+ sculpt_update_mesh_elements(scene, scene->toolsettings->sculpt, ob, 0, FALSE);
}
-void ED_sculpt_mask_layers_ensure(Object *ob, MultiresModifierData *mmd)
+int ED_sculpt_mask_layers_ensure(Object *ob, MultiresModifierData *mmd)
{
float *paint_mask;
Mesh *me = ob->data;
+ int ret = 0;
paint_mask = CustomData_get_layer(&me->vdata, CD_PAINT_MASK);
@@ -4154,13 +4198,18 @@ void ED_sculpt_mask_layers_ensure(Object *ob, MultiresModifierData *mmd)
}
}
}
+
+ ret |= ED_SCULPT_MASK_LAYER_CALC_LOOP;
}
/* create vertex paint mask layer if there isn't one already */
if (!paint_mask) {
CustomData_add_layer(&me->vdata, CD_PAINT_MASK,
CD_CALLOC, NULL, me->totvert);
+ ret |= ED_SCULPT_MASK_LAYER_CALC_VERT;
}
+
+ return ret;
}
static int sculpt_toggle_mode(bContext *C, wmOperator *UNUSED(op))
@@ -4194,7 +4243,7 @@ static int sculpt_toggle_mode(bContext *C, wmOperator *UNUSED(op))
if (flush_recalc)
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
-
+
/* Create persistent sculpt mode data */
if (!ts->sculpt) {
ts->sculpt = MEM_callocN(sizeof(Sculpt), "sculpt mode data");
@@ -4210,14 +4259,18 @@ static int sculpt_toggle_mode(bContext *C, wmOperator *UNUSED(op))
sculpt_init_session(scene, ob);
/* Mask layer is required */
- ED_sculpt_mask_layers_ensure(ob, mmd);
+ if (mmd) {
+ /* XXX, we could attempt to support adding mask data mid-sculpt mode (with multi-res)
+ * but this ends up being quite tricky (and slow) */
+ ED_sculpt_mask_layers_ensure(ob, mmd);
+ }
- paint_init(&ts->sculpt->paint, PAINT_CURSOR_SCULPT);
+ BKE_paint_init(&ts->sculpt->paint, PAINT_CURSOR_SCULPT);
paint_cursor_start(C, sculpt_poll);
}
- WM_event_add_notifier(C, NC_SCENE | ND_MODE, CTX_data_scene(C));
+ WM_event_add_notifier(C, NC_SCENE | ND_MODE, scene);
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/sculpt_paint/sculpt_intern.h b/source/blender/editors/sculpt_paint/sculpt_intern.h
index f4467dc22fc..acb906e4a91 100644
--- a/source/blender/editors/sculpt_paint/sculpt_intern.h
+++ b/source/blender/editors/sculpt_paint/sculpt_intern.h
@@ -56,14 +56,16 @@ struct MultiresModifierData *sculpt_multires_active(struct Scene *scene, struct
void sculpt(struct Sculpt *sd);
int sculpt_mode_poll(struct bContext *C);
+int sculpt_mode_poll_view3d(struct bContext *C);
int sculpt_poll(struct bContext *C);
-void sculpt_update_mesh_elements(struct Scene *scene, struct Sculpt *sd, struct Object *ob, int need_pmap);
+void sculpt_update_mesh_elements(struct Scene *scene, struct Sculpt *sd, struct Object *ob,
+ int need_pmap, int need_mask);
/* Deformed mesh sculpt */
void free_sculptsession_deformMats(struct SculptSession *ss);
/* Stroke */
-int sculpt_stroke_get_location(bContext *C, float out[3], float mouse[2]);
+int sculpt_stroke_get_location(bContext *C, float out[3], const float mouse[2]);
/* Undo */
diff --git a/source/blender/editors/sculpt_paint/sculpt_undo.c b/source/blender/editors/sculpt_paint/sculpt_undo.c
index f327f67be33..b204fc75255 100644
--- a/source/blender/editors/sculpt_paint/sculpt_undo.c
+++ b/source/blender/editors/sculpt_paint/sculpt_undo.c
@@ -32,6 +32,7 @@
* \ingroup edsculpt
*/
+#include <stddef.h>
#include "MEM_guardedalloc.h"
@@ -106,13 +107,13 @@ static int sculpt_undo_restore_coords(bContext *C, DerivedMesh *dm, SculptUndoNo
if (ss->kb && strcmp(ss->kb->name, unode->shapeName)) {
/* shape key has been changed before calling undo operator */
- Key *key = ob_get_key(ob);
- KeyBlock *kb = key_get_named_keyblock(key, unode->shapeName);
+ Key *key = BKE_key_from_object(ob);
+ KeyBlock *kb = key ? BKE_keyblock_find_name(key, unode->shapeName) : NULL;
if (kb) {
ob->shapenr = BLI_findindex(&key->block, kb) + 1;
- sculpt_update_mesh_elements(scene, sd, ob, 0);
+ sculpt_update_mesh_elements(scene, sd, ob, 0, FALSE);
WM_event_add_notifier(C, NC_OBJECT | ND_DATA, ob);
}
else {
@@ -126,7 +127,7 @@ static int sculpt_undo_restore_coords(bContext *C, DerivedMesh *dm, SculptUndoNo
if (ss->kb) {
float (*vertCos)[3];
- vertCos = key_to_vertcos(ob, ss->kb);
+ vertCos = BKE_key_convert_to_vertcos(ob, ss->kb);
for (i = 0; i < unode->totvert; i++) {
if (ss->modifiers_active) sculpt_undo_restore_deformed(ss, unode, i, index[i], vertCos[index[i]]);
@@ -265,13 +266,28 @@ static void sculpt_undo_restore(bContext *C, ListBase *lb)
Scene *scene = CTX_data_scene(C);
Sculpt *sd = CTX_data_tool_settings(C)->sculpt;
Object *ob = CTX_data_active_object(C);
- DerivedMesh *dm = mesh_get_derived_final(scene, ob, 0);
+ DerivedMesh *dm;
SculptSession *ss = ob->sculpt;
SculptUndoNode *unode;
MultiresModifierData *mmd;
int update = FALSE, rebuild = FALSE;
+ int need_mask = FALSE;
- sculpt_update_mesh_elements(scene, sd, ob, 0);
+ for (unode = lb->first; unode; unode = unode->next) {
+ if (strcmp(unode->idname, ob->id.name) == 0) {
+ if (unode->type == SCULPT_UNDO_MASK) {
+ /* is possible that we can't do the mask undo (below)
+ * because of the vertex count */
+ need_mask = TRUE;
+ break;
+ }
+ }
+ }
+
+ sculpt_update_mesh_elements(scene, sd, ob, 0, need_mask);
+
+ /* call _after_ sculpt_update_mesh_elements() which may update 'ob->derivedFinal' */
+ dm = mesh_get_derived_final(scene, ob, 0);
for (unode = lb->first; unode; unode = unode->next) {
if (!(strcmp(unode->idname, ob->id.name) == 0))
@@ -379,16 +395,12 @@ static void sculpt_undo_free(ListBase *lb)
SculptUndoNode *sculpt_undo_get_node(PBVHNode *node)
{
ListBase *lb = undo_paint_push_get_list(UNDO_PAINT_MESH);
- SculptUndoNode *unode;
- if (!lb)
+ if (!lb) {
return NULL;
+ }
- for (unode = lb->first; unode; unode = unode->next)
- if (unode->node == node)
- return unode;
-
- return NULL;
+ return BLI_findptr(lb, node, offsetof(SculptUndoNode, node));
}
static void sculpt_undo_alloc_and_store_hidden(PBVH *pbvh,
diff --git a/source/blender/editors/sculpt_paint/sculpt_uv.c b/source/blender/editors/sculpt_paint/sculpt_uv.c
index 95441600d77..0bcccd9479c 100644
--- a/source/blender/editors/sculpt_paint/sculpt_uv.c
+++ b/source/blender/editors/sculpt_paint/sculpt_uv.c
@@ -156,8 +156,8 @@ typedef struct Temp_UvData {
-void HC_relaxation_iteration_uv(BMEditMesh *em, UvSculptData *sculptdata, float mouse_coord[2],
- float alpha, float radius, float aspectRatio)
+static void HC_relaxation_iteration_uv(BMEditMesh *em, UvSculptData *sculptdata, float mouse_coord[2],
+ float alpha, float radius, float aspectRatio)
{
Temp_UVData *tmp_uvdata;
float diff[2];
@@ -315,8 +315,8 @@ static void uv_sculpt_stroke_apply(bContext *C, wmOperator *op, wmEvent *event,
UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &co[0], &co[1]);
sima = CTX_wm_space_image(C);
- ED_space_image_size(sima, &width, &height);
- ED_space_image_zoom(sima, ar, &zoomx, &zoomy);
+ ED_space_image_get_size(sima, &width, &height);
+ ED_space_image_get_zoom(sima, ar, &zoomx, &zoomy);
radius = BKE_brush_size_get(scene, brush) / (width * zoomx);
aspectRatio = width / (float)height;
@@ -683,8 +683,8 @@ static UvSculptData *uv_sculpt_stroke_init(bContext *C, wmOperator *op, wmEvent
radius = BKE_brush_size_get(scene, brush);
sima = CTX_wm_space_image(C);
- ED_space_image_size(sima, &width, &height);
- ED_space_image_zoom(sima, ar, &zoomx, &zoomy);
+ ED_space_image_get_size(sima, &width, &height);
+ ED_space_image_get_zoom(sima, ar, &zoomx, &zoomy);
aspectRatio = width / (float)height;
radius /= (width * zoomx);
diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c
index 9827ffdc324..aaa1328f9f6 100644
--- a/source/blender/editors/sound/sound_ops.c
+++ b/source/blender/editors/sound/sound_ops.c
@@ -186,7 +186,8 @@ static void SOUND_OT_open(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE | SOUNDFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | SOUNDFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
RNA_def_boolean(ot->srna, "cache", FALSE, "Cache", "Cache the sound in memory");
RNA_def_boolean(ot->srna, "mono", FALSE, "Mono", "Mixdown the sound to mono");
}
@@ -207,7 +208,8 @@ static void SOUND_OT_open_mono(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE | SOUNDFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | SOUNDFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
RNA_def_boolean(ot->srna, "cache", FALSE, "Cache", "Cache the sound in memory");
RNA_def_boolean(ot->srna, "mono", TRUE, "Mono", "Mixdown the sound to mono");
}
@@ -659,7 +661,8 @@ static void SOUND_OT_mixdown(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE | SOUNDFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | SOUNDFILE, FILE_SPECIAL, FILE_SAVE,
+ WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
#ifdef WITH_AUDASPACE
RNA_def_int(ot->srna, "accuracy", 1024, 1, 16777216, "Accuracy", "Sample accuracy, important for animation data (the lower the value, the more accurate)", 1, 16777216);
RNA_def_enum(ot->srna, "container", container_items, AUD_CONTAINER_FLAC, "Container", "File format");
@@ -698,7 +701,7 @@ static int sound_pack_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
sound->packedfile = newPackedFile(op->reports, sound->name, ID_BLEND_PATH(bmain, &sound->id));
- sound_load(CTX_data_main(C), sound);
+ sound_load(bmain, sound);
return OPERATOR_FINISHED;
}
@@ -722,6 +725,7 @@ static void SOUND_OT_pack(wmOperatorType *ot)
static int sound_unpack_exec(bContext *C, wmOperator *op)
{
+ Main *bmain = CTX_data_main(C);
int method = RNA_enum_get(op->ptr, "method");
bSound *sound = NULL;
@@ -729,7 +733,7 @@ static int sound_unpack_exec(bContext *C, wmOperator *op)
if (RNA_struct_property_is_set(op->ptr, "id")) {
char sndname[MAX_ID_NAME - 2];
RNA_string_get(op->ptr, "id", sndname);
- sound = BLI_findstring(&CTX_data_main(C)->sound, sndname, offsetof(ID, name) + 2);
+ sound = BLI_findstring(&bmain->sound, sndname, offsetof(ID, name) + 2);
}
if (!sound || !sound->packedfile)
@@ -738,7 +742,7 @@ static int sound_unpack_exec(bContext *C, wmOperator *op)
if (G.fileflags & G_AUTOPACK)
BKE_report(op->reports, RPT_WARNING, "AutoPack is enabled, so image will be packed again on file save");
- unpackSound(CTX_data_main(C), op->reports, sound, method);
+ unpackSound(bmain, op->reports, sound, method);
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/space_action/action_draw.c b/source/blender/editors/space_action/action_draw.c
index edec57d9e93..10adeb3e721 100644
--- a/source/blender/editors/space_action/action_draw.c
+++ b/source/blender/editors/space_action/action_draw.c
@@ -89,7 +89,7 @@ void draw_channel_names(bContext *C, bAnimContext *ac, ARegion *ar)
* start of list offset, and the second is as a correction for the scrollers.
*/
height = ((items * ACHANNEL_STEP) + (ACHANNEL_HEIGHT * 2));
- if (height > (v2d->mask.ymax - v2d->mask.ymin)) {
+ if (height > BLI_rcti_size_y(&v2d->mask)) {
/* don't use totrect set, as the width stays the same
* (NOTE: this is ok here, the configuration is pretty straightforward)
*/
diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c
index b5cd49cc15c..cd036d7cb50 100644
--- a/source/blender/editors/space_action/action_edit.c
+++ b/source/blender/editors/space_action/action_edit.c
@@ -365,13 +365,13 @@ static int actkeys_viewall(bContext *C, const short onlySel)
/* set the horizontal range, with an extra offset so that the extreme keys will be in view */
get_keyframe_extents(&ac, &v2d->cur.xmin, &v2d->cur.xmax, onlySel);
- extra = 0.1f * (v2d->cur.xmax - v2d->cur.xmin);
+ extra = 0.1f * BLI_rctf_size_x(&v2d->cur);
v2d->cur.xmin -= extra;
v2d->cur.xmax += extra;
/* set vertical range */
v2d->cur.ymax = 0.0f;
- v2d->cur.ymin = (float)-(v2d->mask.ymax - v2d->mask.ymin);
+ v2d->cur.ymin = (float)-BLI_rcti_size_y(&v2d->mask);
/* do View2D syncing */
UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
@@ -489,15 +489,15 @@ static int actkeys_copy_exec(bContext *C, wmOperator *op)
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
return OPERATOR_CANCELLED;
-
+
/* copy keyframes */
if (ELEM(ac.datatype, ANIMCONT_GPENCIL, ANIMCONT_MASK)) {
- // FIXME...
+ /* FIXME... */
BKE_report(op->reports, RPT_ERROR, "Keyframe pasting is not available for Grease Pencil mode");
return OPERATOR_CANCELLED;
}
else if (ac.datatype == ANIMCONT_MASK) {
- // FIXME...
+ /* FIXME... */
BKE_report(op->reports, RPT_ERROR, "Keyframe pasting is not available for mask mode");
return OPERATOR_CANCELLED;
}
@@ -1369,10 +1369,14 @@ void ACTION_OT_frame_jump(wmOperatorType *ot)
/* defines for snap keyframes tool */
static EnumPropertyItem prop_actkeys_snap_types[] = {
- {ACTKEYS_SNAP_CFRA, "CFRA", 0, "Current frame", ""},
- {ACTKEYS_SNAP_NEAREST_FRAME, "NEAREST_FRAME", 0, "Nearest Frame", ""}, // XXX as single entry?
- {ACTKEYS_SNAP_NEAREST_SECOND, "NEAREST_SECOND", 0, "Nearest Second", ""}, // XXX as single entry?
- {ACTKEYS_SNAP_NEAREST_MARKER, "NEAREST_MARKER", 0, "Nearest Marker", ""},
+ {ACTKEYS_SNAP_CFRA, "CFRA", 0, "Current frame",
+ "Snap selected keyframes to the current frame"},
+ {ACTKEYS_SNAP_NEAREST_FRAME, "NEAREST_FRAME", 0, "Nearest Frame",
+ "Snap selected keyframes to the nearest (whole) frame (use to fix accidental sub-frame offsets)"},
+ {ACTKEYS_SNAP_NEAREST_SECOND, "NEAREST_SECOND", 0, "Nearest Second",
+ "Snap selected keyframes to the nearest second"},
+ {ACTKEYS_SNAP_NEAREST_MARKER, "NEAREST_MARKER", 0, "Nearest Marker",
+ "Snap selected keyframes to the nearest marker"},
{0, NULL, 0, NULL, NULL}
};
@@ -1473,9 +1477,12 @@ void ACTION_OT_snap(wmOperatorType *ot)
/* defines for mirror keyframes tool */
static EnumPropertyItem prop_actkeys_mirror_types[] = {
- {ACTKEYS_MIRROR_CFRA, "CFRA", 0, "By Times over Current frame", ""},
- {ACTKEYS_MIRROR_XAXIS, "XAXIS", 0, "By Values over Value=0", ""},
- {ACTKEYS_MIRROR_MARKER, "MARKER", 0, "By Times over First Selected Marker", ""},
+ {ACTKEYS_MIRROR_CFRA, "CFRA", 0, "By Times over Current frame",
+ "Flip times of selected keyframes using the current frame as the mirror line"},
+ {ACTKEYS_MIRROR_XAXIS, "XAXIS", 0, "By Values over Value=0",
+ "Flip values of selected keyframes (i.e. negative values become positive, and vice versa)"},
+ {ACTKEYS_MIRROR_MARKER, "MARKER", 0, "By Times over First Selected Marker",
+ "Flip times of selected keyframes using the first selected marker as the reference point"},
{0, NULL, 0, NULL, NULL}
};
@@ -1497,12 +1504,8 @@ static void mirror_action_keys(bAnimContext *ac, short mode)
/* for 'first selected marker' mode, need to find first selected marker first! */
// XXX should this be made into a helper func in the API?
if (mode == ACTKEYS_MIRROR_MARKER) {
- TimeMarker *marker = NULL;
-
- /* find first selected marker */
- marker = ED_markers_get_first_selected(ac->markers);
+ TimeMarker *marker = ED_markers_get_first_selected(ac->markers);
- /* store marker's time (if available) */
if (marker)
ked.f1 = (float)marker->frame;
else
diff --git a/source/blender/editors/space_action/action_select.c b/source/blender/editors/space_action/action_select.c
index b42c6406362..5da348b2a84 100644
--- a/source/blender/editors/space_action/action_select.c
+++ b/source/blender/editors/space_action/action_select.c
@@ -184,6 +184,7 @@ void ACTION_OT_select_all_toggle(wmOperatorType *ot)
/* props */
ot->prop = RNA_def_boolean(ot->srna, "invert", 0, "Invert", "");
+ RNA_def_property_flag(ot->prop, PROP_SKIP_SAVE);
}
/* ******************** Border Select Operator **************************** */
@@ -254,8 +255,8 @@ static void borderselect_action(bAnimContext *ac, rcti rect, short mode, short s
}
/* perform vertical suitability check (if applicable) */
- if ( (mode == ACTKEYS_BORDERSEL_FRAMERANGE) ||
- !((ymax < rectf.ymin) || (ymin > rectf.ymax)) )
+ if ((mode == ACTKEYS_BORDERSEL_FRAMERANGE) ||
+ !((ymax < rectf.ymin) || (ymin > rectf.ymax)))
{
/* loop over data selecting */
if (ale->type == ANIMTYPE_GPLAYER)
@@ -293,10 +294,7 @@ static int actkeys_borderselect_exec(bContext *C, wmOperator *op)
deselect_action_keys(&ac, 1, SELECT_SUBTRACT);
/* get settings from operator */
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
gesture_mode = RNA_int_get(op->ptr, "gesture_mode");
if (gesture_mode == GESTURE_MODAL_SELECT)
@@ -311,7 +309,7 @@ static int actkeys_borderselect_exec(bContext *C, wmOperator *op)
* - the frame-range select option is favored over the channel one (x over y), as frame-range one is often
* used for tweaking timing when "blocking", while channels is not that useful...
*/
- if ((rect.xmax - rect.xmin) >= (rect.ymax - rect.ymin))
+ if (BLI_rcti_size_x(&rect) >= BLI_rcti_size_y(&rect))
mode = ACTKEYS_BORDERSEL_FRAMERANGE;
else
mode = ACTKEYS_BORDERSEL_CHANNELS;
@@ -804,8 +802,8 @@ static void actkeys_select_leftright(bAnimContext *ac, short leftright, short se
TimeMarker *marker;
for (marker = markers->first; marker; marker = marker->next) {
- if ( ((leftright == ACTKEYS_LRSEL_LEFT) && (marker->frame < CFRA)) ||
- ((leftright == ACTKEYS_LRSEL_RIGHT) && (marker->frame >= CFRA)) )
+ if (((leftright == ACTKEYS_LRSEL_LEFT) && (marker->frame < CFRA)) ||
+ ((leftright == ACTKEYS_LRSEL_RIGHT) && (marker->frame >= CFRA)))
{
marker->flag |= SELECT;
}
@@ -881,6 +879,8 @@ static int actkeys_select_leftright_invoke(bContext *C, wmOperator *op, wmEvent
void ACTION_OT_select_leftright(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Select Left/Right";
ot->idname = "ACTION_OT_select_leftright";
@@ -894,9 +894,12 @@ void ACTION_OT_select_leftright(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
- /* id-props */
+ /* properties */
ot->prop = RNA_def_enum(ot->srna, "mode", prop_actkeys_leftright_select_types, ACTKEYS_LRSEL_TEST, "Mode", "");
- RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", "");
+ RNA_def_property_flag(ot->prop, PROP_SKIP_SAVE);
+
+ prop = RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", "");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
/* ******************** Mouse-Click Select Operator *********************** */
@@ -909,9 +912,6 @@ void ACTION_OT_select_leftright(wmOperatorType *ot)
* selection mode between replacing the selection (without) and inverting the selection (with).
*/
-/* sensitivity factor for frame-selections */
-#define FRAME_CLICK_THRESH 0.1f
-
/* ------------------- */
/* option 1) select keyframe directly under mouse */
@@ -1233,6 +1233,8 @@ static int actkeys_clickselect_invoke(bContext *C, wmOperator *op, wmEvent *even
void ACTION_OT_clickselect(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Mouse Select Keys";
ot->idname = "ACTION_OT_clickselect";
@@ -1245,9 +1247,11 @@ void ACTION_OT_clickselect(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
- /* id-props */
- RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", ""); // SHIFTKEY
- RNA_def_boolean(ot->srna, "column", 0, "Column Select", ""); // ALTKEY
+ /* properties */
+ prop = RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", ""); // SHIFTKEY
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ prop = RNA_def_boolean(ot->srna, "column", 0, "Column Select", ""); // ALTKEY
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
/* ************************************************************************** */
diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c
index db1d4ed1155..2e92b1eea6f 100644
--- a/source/blender/editors/space_action/space_action.c
+++ b/source/blender/editors/space_action/space_action.c
@@ -129,8 +129,7 @@ static SpaceLink *action_new(const bContext *C)
/* not spacelink itself */
static void action_free(SpaceLink *UNUSED(sl))
{
-// SpaceAction *saction= (SpaceAction*) sl;
-
+// SpaceAction *saction= (SpaceAction *) sl;
}
@@ -358,8 +357,8 @@ static void action_listener(ScrArea *sa, wmNotifier *wmn)
/* context changes */
switch (wmn->category) {
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL) {
+ case NC_GPENCIL:
+ if (wmn->action == NA_EDITED) {
/* only handle this event in GPencil mode for performance considerations */
if (saction->mode == SACTCONT_GPENCIL)
ED_area_tag_redraw(sa);
@@ -410,6 +409,7 @@ static void action_listener(ScrArea *sa, wmNotifier *wmn)
switch (wmn->data) {
case ND_DATA:
ED_area_tag_refresh(sa);
+ ED_area_tag_redraw(sa);
break;
default: /* just redrawing the view will do */
ED_area_tag_redraw(sa);
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c
index 6154a1cc5ce..c41d2521ee8 100644
--- a/source/blender/editors/space_buttons/buttons_context.c
+++ b/source/blender/editors/space_buttons/buttons_context.c
@@ -683,7 +683,7 @@ const char *buttons_context_dir[] = {
"world", "object", "mesh", "armature", "lattice", "curve",
"meta_ball", "lamp", "speaker", "camera", "material", "material_slot",
"texture", "texture_slot", "texture_user", "bone", "edit_bone",
- "pose_bone", "particle_system", "particle_system_editable",
+ "pose_bone", "particle_system", "particle_system_editable", "particle_settings",
"cloth", "soft_body", "fluid", "smoke", "collision", "brush", "dynamic_paint", NULL
};
@@ -890,6 +890,27 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
CTX_data_pointer_set(result, NULL, &RNA_ParticleSystem, NULL);
return 1;
}
+ else if (CTX_data_equals(member, "particle_settings")) {
+ /* only available when pinned */
+ PointerRNA *ptr = get_pointer_type(path, &RNA_ParticleSettings);
+
+ if (ptr && ptr->data) {
+ CTX_data_pointer_set(result, ptr->id.data, &RNA_ParticleSettings, ptr->data);
+ return 1;
+ }
+ else {
+ /* get settings from active particle system instead */
+ PointerRNA *ptr = get_pointer_type(path, &RNA_ParticleSystem);
+
+ if (ptr && ptr->data) {
+ ParticleSettings *part = ((ParticleSystem *)ptr->data)->part;
+ CTX_data_pointer_set(result, ptr->id.data, &RNA_ParticleSettings, part);
+ return 1;
+ }
+ }
+ set_pointer_type(path, result, &RNA_ParticleSettings);
+ return 1;
+ }
else if (CTX_data_equals(member, "cloth")) {
PointerRNA *ptr = get_pointer_type(path, &RNA_Object);
diff --git a/source/blender/editors/space_buttons/buttons_header.c b/source/blender/editors/space_buttons/buttons_header.c
index b13ba9a1aa3..ebba7d92819 100644
--- a/source/blender/editors/space_buttons/buttons_header.c
+++ b/source/blender/editors/space_buttons/buttons_header.c
@@ -116,8 +116,8 @@ void buttons_header_buttons(const bContext *C, ARegion *ar)
uiBlockSetEmboss(block, UI_EMBOSS);
xco -= UI_UNIT_X;
-
- // Default panels
+
+ /* Default panels */
uiBlockBeginAlign(block);
@@ -148,7 +148,7 @@ void buttons_header_buttons(const bContext *C, ARegion *ar)
uiBlockEndAlign(block);
/* always as last */
- UI_view2d_totRect_set(&ar->v2d, xco + (UI_UNIT_X / 2), ar->v2d.tot.ymax - ar->v2d.tot.ymin);
+ UI_view2d_totRect_set(&ar->v2d, xco + (UI_UNIT_X / 2), BLI_rctf_size_y(&ar->v2d.tot));
uiEndBlock(C, block);
uiDrawBlock(C, block);
diff --git a/source/blender/editors/space_buttons/buttons_ops.c b/source/blender/editors/space_buttons/buttons_ops.c
index c29a8c3934e..c8cf69e3e17 100644
--- a/source/blender/editors/space_buttons/buttons_ops.c
+++ b/source/blender/editors/space_buttons/buttons_ops.c
@@ -230,7 +230,8 @@ void BUTTONS_OT_file_browse(wmOperatorType *ot)
ot->cancel = file_browse_cancel;
/* properties */
- WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
}
/* second operator, only difference from BUTTONS_OT_file_browse is WM_FILESEL_DIRECTORY */
@@ -247,5 +248,6 @@ void BUTTONS_OT_directory_browse(wmOperatorType *ot)
ot->cancel = file_browse_cancel;
/* properties */
- WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_DIRECTORY | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
}
diff --git a/source/blender/editors/space_buttons/buttons_texture.c b/source/blender/editors/space_buttons/buttons_texture.c
index cdecda63432..0e82d8651f3 100644
--- a/source/blender/editors/space_buttons/buttons_texture.c
+++ b/source/blender/editors/space_buttons/buttons_texture.c
@@ -341,7 +341,7 @@ static void template_texture_user_menu(bContext *C, uiLayout *layout, void *UNUS
{
/* callback when opening texture user selection menu, to create buttons. */
SpaceButs *sbuts = CTX_wm_space_buts(C);
- ButsContextTexture *ct = (sbuts) ? sbuts->texuser : NULL;
+ ButsContextTexture *ct = sbuts->texuser;
ButsTextureUser *user;
uiBlock *block = uiLayoutGetBlock(layout);
const char *last_category = NULL;
diff --git a/source/blender/editors/space_clip/CMakeLists.txt b/source/blender/editors/space_clip/CMakeLists.txt
index ecc4dea8b05..75e3d8d5685 100644
--- a/source/blender/editors/space_clip/CMakeLists.txt
+++ b/source/blender/editors/space_clip/CMakeLists.txt
@@ -33,10 +33,10 @@ set(INC
../../windowmanager
../../gpu
../../../../intern/guardedalloc
- ${GLEW_INCLUDE_PATH}
)
set(INC_SYS
+ ${GLEW_INCLUDE_PATH}
)
set(SRC
diff --git a/source/blender/editors/space_clip/clip_buttons.c b/source/blender/editors/space_clip/clip_buttons.c
index e561b2a9e79..969b0e25928 100644
--- a/source/blender/editors/space_clip/clip_buttons.c
+++ b/source/blender/editors/space_clip/clip_buttons.c
@@ -41,6 +41,7 @@
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "BLI_listbase.h"
+#include "BLI_rect.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
@@ -118,6 +119,8 @@ void uiTemplateMovieClip(uiLayout *layout, bContext *C, PointerRNA *ptr, const c
uiTemplateID(layout, C, ptr, propname, NULL, "CLIP_OT_open", NULL);
if (clip) {
+ uiLayout *col;
+
row = uiLayoutRow(layout, FALSE);
block = uiLayoutGetBlock(row);
uiDefBut(block, LABEL, 0, "File Path:", 0, 19, 145, 19, NULL, 0, 0, 0, 0, "");
@@ -128,6 +131,9 @@ void uiTemplateMovieClip(uiLayout *layout, bContext *C, PointerRNA *ptr, const c
uiItemR(row, &clipptr, "filepath", 0, "", ICON_NONE);
uiItemO(row, "", ICON_FILE_REFRESH, "clip.reload");
+
+ col = uiLayoutColumn(layout, FALSE);
+ uiTemplateColorspaceSettings(col, &clipptr, "colorspace_settings");
}
}
@@ -168,7 +174,7 @@ void uiTemplateTrack(uiLayout *layout, PointerRNA *ptr, const char *propname)
scopes->track_preview_height =
(scopes->track_preview_height <= UI_UNIT_Y) ? UI_UNIT_Y : scopes->track_preview_height;
- uiDefBut(block, TRACKPREVIEW, 0, "", rect.xmin, rect.ymin, rect.xmax - rect.xmin,
+ uiDefBut(block, TRACKPREVIEW, 0, "", rect.xmin, rect.ymin, BLI_rctf_size_x(&rect),
scopes->track_preview_height, scopes, 0, 0, 0, 0, "");
}
diff --git a/source/blender/editors/space_clip/clip_dopesheet_draw.c b/source/blender/editors/space_clip/clip_dopesheet_draw.c
index 83d895067cc..cc1b8d444bc 100644
--- a/source/blender/editors/space_clip/clip_dopesheet_draw.c
+++ b/source/blender/editors/space_clip/clip_dopesheet_draw.c
@@ -44,6 +44,7 @@
#include "BLI_string.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
+#include "BLI_rect.h"
#include "ED_screen.h"
#include "ED_clip.h"
@@ -273,7 +274,7 @@ void clip_draw_dopesheet_channels(const bContext *C, ARegion *ar)
dopesheet = &tracking->dopesheet;
height = (dopesheet->tot_channel * CHANNEL_STEP) + (CHANNEL_HEIGHT * 2);
- if (height > (v2d->mask.ymax - v2d->mask.ymin)) {
+ if (height > BLI_rcti_size_y(&v2d->mask)) {
/* don't use totrect set, as the width stays the same
* (NOTE: this is ok here, the configuration is pretty straightforward)
*/
diff --git a/source/blender/editors/space_clip/clip_dopesheet_ops.c b/source/blender/editors/space_clip/clip_dopesheet_ops.c
index 6d1610f3f91..09f6271b6ef 100644
--- a/source/blender/editors/space_clip/clip_dopesheet_ops.c
+++ b/source/blender/editors/space_clip/clip_dopesheet_ops.c
@@ -157,7 +157,7 @@ void CLIP_OT_dopesheet_select_channel(wmOperatorType *ot)
/* properties */
RNA_def_float_vector(ot->srna, "location", 2, NULL, -FLT_MAX, FLT_MAX,
- "Location", "Mouse location to select channel", -100.0f, 100.0f);
+ "Location", "Mouse location to select channel", -100.0f, 100.0f);
RNA_def_boolean(ot->srna, "extend", 0,
- "Extend", "Extend selection rather than clearing the existing selection");
+ "Extend", "Extend selection rather than clearing the existing selection");
}
diff --git a/source/blender/editors/space_clip/clip_draw.c b/source/blender/editors/space_clip/clip_draw.c
index 37da40e11b3..5e940df2a30 100644
--- a/source/blender/editors/space_clip/clip_draw.c
+++ b/source/blender/editors/space_clip/clip_draw.c
@@ -42,6 +42,7 @@
#include "BKE_tracking.h"
#include "BKE_mask.h"
+#include "IMB_colormanagement.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
@@ -53,6 +54,7 @@
#include "ED_screen.h"
#include "ED_clip.h"
+#include "ED_mask.h"
#include "ED_gpencil.h"
#include "BIF_gl.h"
@@ -73,7 +75,7 @@
/*********************** main area drawing *************************/
-void clip_draw_curfra_label(SpaceClip *sc, float x, float y)
+void clip_draw_curfra_label(const int framenr, const float x, const float y)
{
uiStyle *style = UI_GetStyle();
int fontid = style->widget.uifont_id;
@@ -82,7 +84,7 @@ void clip_draw_curfra_label(SpaceClip *sc, float x, float y)
/* frame number */
BLF_size(fontid, 11.0f, U.dpi);
- BLI_snprintf(numstr, sizeof(numstr), "%d", sc->user.framenr);
+ BLI_snprintf(numstr, sizeof(numstr), "%d", framenr);
BLF_width_and_height(fontid, numstr, &font_dims[0], &font_dims[1]);
@@ -93,13 +95,30 @@ void clip_draw_curfra_label(SpaceClip *sc, float x, float y)
BLF_draw(fontid, numstr, sizeof(numstr));
}
+static void draw_keyframe(int frame, int cfra, int sfra, float framelen, int width)
+{
+ int height = (frame == cfra) ? 22 : 10;
+ int x = (frame - sfra) * framelen;
+
+ if (width == 1) {
+ glBegin(GL_LINES);
+ glVertex2i(x, 0);
+ glVertex2i(x, height);
+ glEnd();
+ }
+ else {
+ glRecti(x, 0, x + width, height);
+ }
+}
+
static void draw_movieclip_cache(SpaceClip *sc, ARegion *ar, MovieClip *clip, Scene *scene)
{
float x;
int *points, totseg, i, a;
float sfra = SFRA, efra = EFRA, framelen = ar->winx / (efra - sfra + 1);
+ MovieTracking *tracking = &clip->tracking;
MovieTrackingTrack *act_track = BKE_tracking_track_get_active(&clip->tracking);
- MovieTrackingReconstruction *reconstruction = BKE_tracking_get_active_reconstruction(&clip->tracking);
+ MovieTrackingReconstruction *reconstruction = BKE_tracking_get_active_reconstruction(tracking);
glEnable(GL_BLEND);
@@ -195,32 +214,16 @@ static void draw_movieclip_cache(SpaceClip *sc, ARegion *ar, MovieClip *clip, Sc
UI_ThemeColor(TH_CFRAME);
glRecti(x, 0, x + framelen, 8);
- clip_draw_curfra_label(sc, x, 8.0f);
-
- /* movie clip animation */
- if ((sc->mode == SC_MODE_MASKEDIT) && sc->mask) {
- MaskLayer *masklay = BKE_mask_layer_active(sc->mask);
- if (masklay) {
- MaskLayerShape *masklay_shape;
-
- glColor4ub(255, 175, 0, 255);
- glBegin(GL_LINES);
+ clip_draw_curfra_label(sc->user.framenr, x, 8.0f);
- for (masklay_shape = masklay->splines_shapes.first;
- masklay_shape;
- masklay_shape = masklay_shape->next)
- {
- i = masklay_shape->frame;
+ /* solver keyframes */
+ glColor4ub(175, 255, 0, 255);
+ draw_keyframe(tracking->settings.keyframe1 + clip->start_frame - 1, CFRA, sfra, framelen, 2);
+ draw_keyframe(tracking->settings.keyframe2 + clip->start_frame - 1, CFRA, sfra, framelen, 2);
- /* glRecti((i - sfra) * framelen, 0, (i - sfra + 1) * framelen, 4); */
-
- /* use a line so we always see the keyframes */
- glVertex2i((i - sfra) * framelen, 0);
- glVertex2i((i - sfra) * framelen, (i == CFRA) ? 22 : 10);
- }
-
- glEnd();
- }
+ /* movie clip animation */
+ if ((sc->mode == SC_MODE_MASKEDIT) && sc->mask_info.mask) {
+ ED_mask_draw_frames(sc->mask_info.mask, ar, CFRA, sfra, efra);
}
}
@@ -244,14 +247,7 @@ static void draw_movieclip_notes(SpaceClip *sc, ARegion *ar)
ED_region_info_draw(ar, str, block, 0.6f);
}
-static void verify_buffer_float(ImBuf *ibuf)
-{
- if (ibuf->rect_float && (ibuf->rect == NULL || (ibuf->userflags & IB_RECT_INVALID))) {
- IMB_rect_from_float(ibuf);
- }
-}
-
-static void draw_movieclip_buffer(SpaceClip *sc, ARegion *ar, ImBuf *ibuf,
+static void draw_movieclip_buffer(const bContext *C, SpaceClip *sc, ARegion *ar, ImBuf *ibuf,
int width, int height, float zoomx, float zoomy)
{
int x, y;
@@ -265,13 +261,16 @@ static void draw_movieclip_buffer(SpaceClip *sc, ARegion *ar, ImBuf *ibuf,
glRectf(x, y, x + zoomx * width, y + zoomy * height);
}
else {
- verify_buffer_float(ibuf);
+ unsigned char *display_buffer;
+ void *cache_handle;
- if (ibuf->rect) {
+ display_buffer = IMB_display_buffer_acquire_ctx(C, ibuf, &cache_handle);
+
+ if (display_buffer) {
int need_fallback = 1;
if (ED_space_clip_texture_buffer_supported(sc)) {
- if (ED_space_clip_load_movieclip_buffer(sc, ibuf)) {
+ if (ED_space_clip_load_movieclip_buffer(sc, ibuf, display_buffer)) {
glPushMatrix();
glTranslatef(x, y, 0.0f);
glScalef(zoomx, zoomy, 1.0f);
@@ -297,12 +296,14 @@ static void draw_movieclip_buffer(SpaceClip *sc, ARegion *ar, ImBuf *ibuf,
/* set zoom */
glPixelZoom(zoomx * width / ibuf->x, zoomy * height / ibuf->y);
- glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
+ glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, display_buffer);
/* reset zoom */
glPixelZoom(1.0f, 1.0f);
}
}
+
+ IMB_display_buffer_release(cache_handle);
}
/* draw boundary border for frame if stabilization is enabled */
@@ -714,7 +715,7 @@ static float get_shortest_pattern_side(MovieTrackingMarker *marker)
cur_len = len_v2v2(marker->pattern_corners[i], marker->pattern_corners[next]);
- len = MIN2(cur_len, len);
+ len = minf(cur_len, len);
}
return len;
@@ -786,11 +787,11 @@ static void draw_marker_slide_zones(SpaceClip *sc, MovieTrackingTrack *track, Mo
dy = 6.0f / height / sc->zoom;
side = get_shortest_pattern_side(marker);
- patdx = MIN2(dx * 2.0f / 3.0f, side / 6.0f);
- patdy = MIN2(dy * 2.0f / 3.0f, side * width / height / 6.0f);
+ patdx = minf(dx * 2.0f / 3.0f, side / 6.0f);
+ patdy = minf(dy * 2.0f / 3.0f, side * width / height / 6.0f);
- searchdx = MIN2(dx, (marker->search_max[0] - marker->search_min[0]) / 6.0f);
- searchdy = MIN2(dy, (marker->search_max[1] - marker->search_min[1]) / 6.0f);
+ searchdx = minf(dx, (marker->search_max[0] - marker->search_min[0]) / 6.0f);
+ searchdy = minf(dy, (marker->search_max[1] - marker->search_min[1]) / 6.0f);
px[0] = 1.0f / sc->zoom / width / sc->scale;
px[1] = 1.0f / sc->zoom / height / sc->scale;
@@ -956,12 +957,12 @@ static void draw_marker_texts(SpaceClip *sc, MovieTrackingTrack *track, MovieTra
static void view2d_to_region_float(View2D *v2d, float x, float y, float *regionx, float *regiony)
{
/* express given coordinates as proportional values */
- x = -v2d->cur.xmin / (v2d->cur.xmax - v2d->cur.xmin);
- y = -v2d->cur.ymin / (v2d->cur.ymax - v2d->cur.ymin);
+ x = -v2d->cur.xmin / BLI_rctf_size_x(&v2d->cur);
+ y = -v2d->cur.ymin / BLI_rctf_size_y(&v2d->cur);
/* convert proportional distances to screen coordinates */
- *regionx = v2d->mask.xmin + x * (v2d->mask.xmax - v2d->mask.xmin);
- *regiony = v2d->mask.ymin + y * (v2d->mask.ymax - v2d->mask.ymin);
+ *regionx = v2d->mask.xmin + x * BLI_rcti_size_x(&v2d->mask);
+ *regiony = v2d->mask.ymin + y * BLI_rcti_size_y(&v2d->mask);
}
static void draw_tracking_tracks(SpaceClip *sc, ARegion *ar, MovieClip *clip,
@@ -1125,7 +1126,7 @@ static void draw_tracking_tracks(SpaceClip *sc, ARegion *ar, MovieClip *clip,
if (MARKER_VISIBLE(sc, track, marker)) {
float npos[2];
- copy_v4_v4(vec, track->bundle_pos);
+ copy_v3_v3(vec, track->bundle_pos);
vec[3] = 1;
mul_v4_m4v4(pos, mat, vec);
@@ -1408,17 +1409,16 @@ static void draw_distortion(SpaceClip *sc, ARegion *ar, MovieClip *clip,
glPopMatrix();
}
-void clip_draw_main(const bContext *C, ARegion *ar)
+void clip_draw_main(const bContext *C, SpaceClip *sc, ARegion *ar)
{
- SpaceClip *sc = CTX_wm_space_clip(C);
MovieClip *clip = ED_space_clip_get_clip(sc);
Scene *scene = CTX_data_scene(C);
ImBuf *ibuf;
int width, height;
float zoomx, zoomy;
- ED_space_clip_get_size(C, &width, &height);
- ED_space_clip_get_zoom(C, &zoomx, &zoomy);
+ ED_space_clip_get_size(sc, &width, &height);
+ ED_space_clip_get_zoom(sc, ar, &zoomx, &zoomy);
/* if no clip, nothing to do */
if (!clip) {
@@ -1460,7 +1460,7 @@ void clip_draw_main(const bContext *C, ARegion *ar)
}
if (ibuf) {
- draw_movieclip_buffer(sc, ar, ibuf, width, height, zoomx, zoomy);
+ draw_movieclip_buffer(C, sc, ar, ibuf, width, height, zoomx, zoomy);
IMB_freeImBuf(ibuf);
}
else {
diff --git a/source/blender/editors/space_clip/clip_editor.c b/source/blender/editors/space_clip/clip_editor.c
index 224a250fe4c..167353e7cb7 100644
--- a/source/blender/editors/space_clip/clip_editor.c
+++ b/source/blender/editors/space_clip/clip_editor.c
@@ -44,6 +44,7 @@
#include "BLI_utildefines.h"
#include "BLI_math.h"
+#include "BLI_rect.h"
#include "GPU_extensions.h"
@@ -115,7 +116,7 @@ int ED_space_clip_maskedit_mask_poll(bContext *C)
if (clip) {
SpaceClip *sc = CTX_wm_space_clip(C);
- return sc->mask != NULL;
+ return sc->mask_info.mask != NULL;
}
}
@@ -124,27 +125,32 @@ int ED_space_clip_maskedit_mask_poll(bContext *C)
/* ******** common editing functions ******** */
-void ED_space_clip_get_size(const bContext *C, int *width, int *height)
+void ED_space_clip_get_size(SpaceClip *sc, int *width, int *height)
{
- SpaceClip *sc = CTX_wm_space_clip(C);
-
- if (!sc->clip) {
- *width = *height = 0;
+ if (sc->clip) {
+ BKE_movieclip_get_size(sc->clip, &sc->user, width, height);
}
else {
- BKE_movieclip_get_size(sc->clip, &sc->user, width, height);
+ *width = *height = IMG_SIZE_FALLBACK;
}
}
-void ED_space_clip_get_zoom(const bContext *C, float *zoomx, float *zoomy)
+void ED_space_clip_get_size_fl(SpaceClip *sc, float size[2])
+{
+ int size_i[2];
+ ED_space_clip_get_size(sc, &size_i[0], &size_i[1]);
+ size[0] = size_i[0];
+ size[1] = size_i[1];
+}
+
+void ED_space_clip_get_zoom(SpaceClip *sc, ARegion *ar, float *zoomx, float *zoomy)
{
- ARegion *ar = CTX_wm_region(C);
int width, height;
- ED_space_clip_get_size(C, &width, &height);
+ ED_space_clip_get_size(sc, &width, &height);
- *zoomx = (float)(ar->winrct.xmax - ar->winrct.xmin + 1) / (float)((ar->v2d.cur.xmax - ar->v2d.cur.xmin) * width);
- *zoomy = (float)(ar->winrct.ymax - ar->winrct.ymin + 1) / (float)((ar->v2d.cur.ymax - ar->v2d.cur.ymin) * height);
+ *zoomx = (float)(BLI_rcti_size_x(&ar->winrct) + 1) / (BLI_rctf_size_x(&ar->v2d.cur) * width);
+ *zoomy = (float)(BLI_rcti_size_y(&ar->winrct) + 1) / (BLI_rctf_size_y(&ar->v2d.cur) * height);
}
void ED_space_clip_get_aspect(SpaceClip *sc, float *aspx, float *aspy)
@@ -152,7 +158,7 @@ void ED_space_clip_get_aspect(SpaceClip *sc, float *aspx, float *aspy)
MovieClip *clip = ED_space_clip_get_clip(sc);
if (clip)
- BKE_movieclip_aspect(clip, aspx, aspy);
+ BKE_movieclip_get_aspect(clip, aspx, aspy);
else
*aspx = *aspy = 1.0f;
@@ -242,6 +248,48 @@ ImBuf *ED_space_clip_get_stable_buffer(SpaceClip *sc, float loc[2], float *scale
return NULL;
}
+/* returns color in SRGB */
+/* matching ED_space_image_color_sample() */
+int ED_space_clip_color_sample(SpaceClip *sc, ARegion *ar, int mval[2], float r_col[3])
+{
+ ImBuf *ibuf;
+ float fx, fy, co[2];
+ int ret = FALSE;
+
+ ibuf = ED_space_clip_get_buffer(sc);
+ if (!ibuf) {
+ return FALSE;
+ }
+
+ /* map the mouse coords to the backdrop image space */
+ ED_clip_mouse_pos(sc, ar, mval, co);
+
+ fx = co[0];
+ fy = co[1];
+
+ if (fx >= 0.0f && fy >= 0.0f && fx < 1.0f && fy < 1.0f) {
+ float *fp;
+ unsigned char *cp;
+ int x = (int)(fx * ibuf->x), y = (int)(fy * ibuf->y);
+
+ CLAMP(x, 0, ibuf->x - 1);
+ CLAMP(y, 0, ibuf->y - 1);
+
+ if (ibuf->rect_float) {
+ fp = (ibuf->rect_float + (ibuf->channels) * (y * ibuf->x + x));
+ linearrgb_to_srgb_v3_v3(r_col, fp);
+ ret = TRUE;
+ }
+ else if (ibuf->rect) {
+ cp = (unsigned char *)(ibuf->rect + y * ibuf->x + x);
+ rgb_uchar_to_float(r_col, cp);
+ ret = TRUE;
+ }
+ }
+
+ return ret;
+}
+
void ED_clip_update_frame(const Main *mainp, int cfra)
{
wmWindowManager *wm;
@@ -265,9 +313,8 @@ void ED_clip_update_frame(const Main *mainp, int cfra)
}
}
-static int selected_boundbox(const bContext *C, float min[2], float max[2])
+static int selected_boundbox(SpaceClip *sc, float min[2], float max[2])
{
- SpaceClip *sc = CTX_wm_space_clip(C);
MovieClip *clip = ED_space_clip_get_clip(sc);
MovieTrackingTrack *track;
int width, height, ok = FALSE;
@@ -276,7 +323,7 @@ static int selected_boundbox(const bContext *C, float min[2], float max[2])
INIT_MINMAX2(min, max);
- ED_space_clip_get_size(C, &width, &height);
+ ED_space_clip_get_size(sc, &width, &height);
track = tracksbase->first;
while (track) {
@@ -319,17 +366,17 @@ int ED_clip_view_selection(const bContext *C, ARegion *ar, int fit)
int w, h, frame_width, frame_height;
float min[2], max[2];
- ED_space_clip_get_size(C, &frame_width, &frame_height);
+ ED_space_clip_get_size(sc, &frame_width, &frame_height);
- if (frame_width == 0 || frame_height == 0)
+ if ((frame_width == 0) || (frame_height == 0) || (sc->clip == NULL))
return FALSE;
- if (!selected_boundbox(C, min, max))
+ if (!selected_boundbox(sc, min, max))
return FALSE;
/* center view */
- clip_view_center_to_point(C, (max[0] + min[0]) / (2 * frame_width),
- (max[1] + min[1]) / (2 * frame_height));
+ clip_view_center_to_point(sc, (max[0] + min[0]) / (2 * frame_width),
+ (max[1] + min[1]) / (2 * frame_height));
w = max[0] - min[0];
h = max[1] - min[1];
@@ -341,13 +388,13 @@ int ED_clip_view_selection(const bContext *C, ARegion *ar, int fit)
ED_space_clip_get_aspect(sc, &aspx, &aspy);
- width = ar->winrct.xmax - ar->winrct.xmin + 1;
- height = ar->winrct.ymax - ar->winrct.ymin + 1;
+ width = BLI_rcti_size_x(&ar->winrct) + 1;
+ height = BLI_rcti_size_y(&ar->winrct) + 1;
zoomx = (float)width / w / aspx;
zoomy = (float)height / h / aspy;
- newzoom = 1.0f / power_of_2(1.0f / MIN2(zoomx, zoomy));
+ newzoom = 1.0f / power_of_2(1.0f / minf(zoomx, zoomy));
if (fit || sc->zoom > newzoom)
sc->zoom = newzoom;
@@ -377,15 +424,13 @@ void ED_clip_point_undistorted_pos(SpaceClip *sc, const float co[2], float r_co[
}
}
-void ED_clip_point_stable_pos(const bContext *C, float x, float y, float *xr, float *yr)
+void ED_clip_point_stable_pos(SpaceClip *sc, ARegion *ar, float x, float y, float *xr, float *yr)
{
- ARegion *ar = CTX_wm_region(C);
- SpaceClip *sc = CTX_wm_space_clip(C);
int sx, sy, width, height;
float zoomx, zoomy, pos[3], imat[4][4];
- ED_space_clip_get_zoom(C, &zoomx, &zoomy);
- ED_space_clip_get_size(C, &width, &height);
+ ED_space_clip_get_zoom(sc, ar, &zoomx, &zoomy);
+ ED_space_clip_get_size(sc, &width, &height);
UI_view2d_to_region_no_clip(&ar->v2d, 0.0f, 0.0f, &sx, &sy);
@@ -416,18 +461,16 @@ void ED_clip_point_stable_pos(const bContext *C, float x, float y, float *xr, fl
* \brief the reverse of ED_clip_point_stable_pos(), gets the marker region coords.
* better name here? view_to_track / track_to_view or so?
*/
-void ED_clip_point_stable_pos__reverse(const bContext *C, const float co[2], float r_co[2])
+void ED_clip_point_stable_pos__reverse(SpaceClip *sc, ARegion *ar, const float co[2], float r_co[2])
{
- SpaceClip *sc = CTX_wm_space_clip(C);
- ARegion *ar = CTX_wm_region(C);
float zoomx, zoomy;
float pos[3];
int width, height;
int sx, sy;
UI_view2d_to_region_no_clip(&ar->v2d, 0.0f, 0.0f, &sx, &sy);
- ED_space_clip_get_size(C, &width, &height);
- ED_space_clip_get_zoom(C, &zoomx, &zoomy);
+ ED_space_clip_get_size(sc, &width, &height);
+ ED_space_clip_get_zoom(sc, ar, &zoomx, &zoomy);
ED_clip_point_undistorted_pos(sc, co, pos);
pos[2] = 0.0f;
@@ -439,9 +482,10 @@ void ED_clip_point_stable_pos__reverse(const bContext *C, const float co[2], flo
r_co[1] = (pos[1] * height * zoomy) + (float)sy;
}
-void ED_clip_mouse_pos(const bContext *C, wmEvent *event, float co[2])
+/* takes event->mval */
+void ED_clip_mouse_pos(SpaceClip *sc, ARegion *ar, const int mval[2], float co[2])
{
- ED_clip_point_stable_pos(C, event->mval[0], event->mval[1], &co[0], &co[1]);
+ ED_clip_point_stable_pos(sc, ar, mval[0], mval[1], &co[0], &co[1]);
}
int ED_space_clip_check_show_trackedit(SpaceClip *sc)
@@ -509,15 +553,15 @@ void ED_space_clip_set_clip(bContext *C, bScreen *screen, SpaceClip *sc, MovieCl
Mask *ED_space_clip_get_mask(SpaceClip *sc)
{
- return sc->mask;
+ return sc->mask_info.mask;
}
void ED_space_clip_set_mask(bContext *C, SpaceClip *sc, Mask *mask)
{
- sc->mask = mask;
+ sc->mask_info.mask = mask;
- if (sc->mask && sc->mask->id.us == 0) {
- sc->clip->id.us = 1;
+ if (sc->mask_info.mask && sc->mask_info.mask->id.us == 0) {
+ sc->mask_info.mask->id.us = 1;
}
if (C) {
@@ -533,12 +577,15 @@ typedef struct SpaceClipDrawContext {
GLuint texture; /* OGL texture ID */
short texture_allocated; /* flag if texture was allocated by glGenTextures */
struct ImBuf *texture_ibuf; /* image buffer for which texture was created */
+ const unsigned char *display_buffer; /* display buffer for which texture was created */
int image_width, image_height; /* image width and height for which texture was created */
unsigned last_texture; /* ID of previously used texture, so it'll be restored after clip drawing */
/* fields to check if cache is still valid */
int framenr, start_frame, frame_offset;
short render_size, render_flag;
+
+ char colorspace[64];
} SpaceClipDrawContext;
int ED_space_clip_texture_buffer_supported(SpaceClip *sc)
@@ -563,7 +610,7 @@ int ED_space_clip_texture_buffer_supported(SpaceClip *sc)
return context->buffers_supported;
}
-int ED_space_clip_load_movieclip_buffer(SpaceClip *sc, ImBuf *ibuf)
+int ED_space_clip_load_movieclip_buffer(SpaceClip *sc, ImBuf *ibuf, const unsigned char *display_buffer)
{
SpaceClipDrawContext *context = sc->draw_context;
MovieClip *clip = ED_space_clip_get_clip(sc);
@@ -575,12 +622,22 @@ int ED_space_clip_load_movieclip_buffer(SpaceClip *sc, ImBuf *ibuf)
* assuming displaying happens of footage frames only on which painting doesn't heppen.
* so not changed image buffer pointer means unchanged image content */
need_rebind |= context->texture_ibuf != ibuf;
+ need_rebind |= context->display_buffer != display_buffer;
need_rebind |= context->framenr != sc->user.framenr;
need_rebind |= context->render_size != sc->user.render_size;
need_rebind |= context->render_flag != sc->user.render_flag;
need_rebind |= context->start_frame != clip->start_frame;
need_rebind |= context->frame_offset != clip->frame_offset;
+ if (!need_rebind) {
+ /* OCIO_TODO: not entirely nice, but currently it seems to be easiest way
+ * to deal with changing input color space settings
+ * pointer-based check could fail due to new buffers could be
+ * be allocated on on old memory
+ */
+ need_rebind = strcmp(context->colorspace, clip->colorspace_settings.name) != 0;
+ }
+
if (need_rebind) {
int width = ibuf->x, height = ibuf->y;
int need_recreate = 0;
@@ -620,16 +677,12 @@ int ED_space_clip_load_movieclip_buffer(SpaceClip *sc, ImBuf *ibuf)
glBindTexture(GL_TEXTURE_2D, context->texture);
}
- if (ibuf->rect_float) {
- if (ibuf->rect == NULL)
- IMB_rect_from_float(ibuf);
- }
-
- if (ibuf->rect)
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
+ if (display_buffer)
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, display_buffer);
/* store settings */
context->texture_allocated = 1;
+ context->display_buffer = display_buffer;
context->texture_ibuf = ibuf;
context->image_width = ibuf->x;
context->image_height = ibuf->y;
@@ -638,6 +691,8 @@ int ED_space_clip_load_movieclip_buffer(SpaceClip *sc, ImBuf *ibuf)
context->render_flag = sc->user.render_flag;
context->start_frame = clip->start_frame;
context->frame_offset = clip->frame_offset;
+
+ strcpy(context->colorspace, clip->colorspace_settings.name);
}
else {
/* displaying exactly the same image which was loaded t oa texture,
diff --git a/source/blender/editors/space_clip/clip_graph_draw.c b/source/blender/editors/space_clip/clip_graph_draw.c
index 91501971d9d..7b070fde6ba 100644
--- a/source/blender/editors/space_clip/clip_graph_draw.c
+++ b/source/blender/editors/space_clip/clip_graph_draw.c
@@ -94,7 +94,7 @@ static void tracking_segment_point_cb(void *UNUSED(userdata), MovieTrackingTrack
glVertex2f(scene_framenr, val);
}
-void tracking_segment_start_cb(void *userdata, MovieTrackingTrack *track, int coord)
+static void tracking_segment_start_cb(void *userdata, MovieTrackingTrack *track, int coord)
{
static float colors[2][3] = {{1.0f, 0.0f, 0.0f},
{0.0f, 1.0f, 0.0f}};
@@ -116,7 +116,7 @@ void tracking_segment_start_cb(void *userdata, MovieTrackingTrack *track, int co
glBegin(GL_LINE_STRIP);
}
-void tracking_segment_end_cb(void *UNUSED(userdata))
+static void tracking_segment_end_cb(void *UNUSED(userdata))
{
glEnd();
diff --git a/source/blender/editors/space_clip/clip_graph_ops.c b/source/blender/editors/space_clip/clip_graph_ops.c
index abf7f416b9c..fa235bd2997 100644
--- a/source/blender/editors/space_clip/clip_graph_ops.c
+++ b/source/blender/editors/space_clip/clip_graph_ops.c
@@ -130,7 +130,7 @@ static void find_nearest_tracking_segment_cb(void *userdata, MovieTrackingTrack
copy_v2_v2(data->prev_co, co);
}
-void find_nearest_tracking_segment_end_cb(void *userdata)
+static void find_nearest_tracking_segment_end_cb(void *userdata)
{
MouseSelectUserData *data = userdata;
@@ -321,7 +321,7 @@ static void border_select_cb(void *userdata, MovieTrackingTrack *UNUSED(track),
{
BorderSelectuserData *data = (BorderSelectuserData *) userdata;
- if (BLI_in_rctf(&data->rect, scene_framenr, val)) {
+ if (BLI_rctf_isect_pt(&data->rect, scene_framenr, val)) {
int flag = 0;
if (coord == 0)
@@ -345,6 +345,7 @@ static int border_select_graph_exec(bContext *C, wmOperator *op)
{
SpaceClip *sc = CTX_wm_space_clip(C);
ARegion *ar = CTX_wm_region(C);
+
MovieClip *clip = ED_space_clip_get_clip(sc);
MovieTracking *tracking = &clip->tracking;
MovieTrackingTrack *act_track = BKE_tracking_track_get_active(tracking);
@@ -352,10 +353,7 @@ static int border_select_graph_exec(bContext *C, wmOperator *op)
rcti rect;
/* get rectangle from operator */
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
UI_view2d_region_to_view(&ar->v2d, rect.xmin, rect.ymin, &userdata.rect.xmin, &userdata.rect.ymin);
UI_view2d_region_to_view(&ar->v2d, rect.xmax, rect.ymax, &userdata.rect.xmax, &userdata.rect.ymax);
@@ -582,11 +580,11 @@ static int view_all_exec(bContext *C, wmOperator *UNUSED(op))
}
/* we need an extra "buffer" factor on either side so that the endpoints are visible */
- extra = 0.01f * (v2d->cur.xmax - v2d->cur.xmin);
+ extra = 0.01f * BLI_rctf_size_x(&v2d->cur);
v2d->cur.xmin -= extra;
v2d->cur.xmax += extra;
- extra = 0.01f * (v2d->cur.ymax - v2d->cur.ymin);
+ extra = 0.01f * BLI_rctf_size_y(&v2d->cur);
v2d->cur.ymin -= extra;
v2d->cur.ymax += extra;
@@ -612,7 +610,7 @@ void CLIP_OT_graph_view_all(wmOperatorType *ot)
void ED_clip_graph_center_current_frame(Scene *scene, ARegion *ar)
{
View2D *v2d = &ar->v2d;
- float extra = (v2d->cur.xmax - v2d->cur.xmin) / 2.0f;
+ float extra = BLI_rctf_size_x(&v2d->cur) / 2.0f;
/* set extents of view to start/end frames */
v2d->cur.xmin = (float)CFRA - extra;
diff --git a/source/blender/editors/space_clip/clip_intern.h b/source/blender/editors/space_clip/clip_intern.h
index c61a0baa82e..d33f77c1064 100644
--- a/source/blender/editors/space_clip/clip_intern.h
+++ b/source/blender/editors/space_clip/clip_intern.h
@@ -69,9 +69,9 @@ void clip_draw_dopesheet_channels(const struct bContext *C, struct ARegion *ar);
void CLIP_OT_dopesheet_select_channel(struct wmOperatorType *ot);
/* clip_draw.c */
-void clip_draw_main(const struct bContext *C, struct ARegion *ar);
+void clip_draw_main(const struct bContext *C, struct SpaceClip *sc, struct ARegion *ar);
void clip_draw_grease_pencil(struct bContext *C, int onlyv2d);
-void clip_draw_curfra_label(struct SpaceClip *sc, float x, float y);
+void clip_draw_curfra_label(const int framenr, const float x, const float y);
/* clip_graph_draw.c */
void clip_draw_graph(struct SpaceClip *sc, struct ARegion *ar, struct Scene *scene);
@@ -102,6 +102,8 @@ void CLIP_OT_change_frame(wmOperatorType *ot);
void CLIP_OT_rebuild_proxy(struct wmOperatorType *ot);
void CLIP_OT_mode_set(struct wmOperatorType *ot);
+void CLIP_OT_view_ndof(struct wmOperatorType *ot);
+
/* clip_toolbar.c */
struct ARegion *ED_clip_has_properties_region(struct ScrArea *sa);
void CLIP_OT_tools(struct wmOperatorType *ot);
@@ -125,7 +127,7 @@ void clip_graph_tracking_iterate(struct SpaceClip *sc, int selected_only, int in
void clip_delete_track(struct bContext *C, struct MovieClip *clip, struct ListBase *tracksbase, struct MovieTrackingTrack *track);
void clip_delete_marker(struct bContext *C, struct MovieClip *clip, struct ListBase *tracksbase, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker);
-void clip_view_center_to_point(const struct bContext *C, float x, float y);
+void clip_view_center_to_point(SpaceClip *sc, float x, float y);
void clip_draw_cfra(struct SpaceClip *sc, struct ARegion *ar, struct Scene *scene);
void clip_draw_sfra_efra(struct View2D *v2d, struct Scene *scene);
@@ -150,6 +152,8 @@ void CLIP_OT_hide_tracks(struct wmOperatorType *ot);
void CLIP_OT_hide_tracks_clear(struct wmOperatorType *ot);
void CLIP_OT_lock_tracks(struct wmOperatorType *ot);
+void CLIP_OT_set_solver_keyframe(struct wmOperatorType *ot);
+
void CLIP_OT_set_origin(struct wmOperatorType *ot);
void CLIP_OT_set_plane(struct wmOperatorType *ot);
void CLIP_OT_set_axis(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_clip/clip_ops.c b/source/blender/editors/space_clip/clip_ops.c
index 9d1f52568b4..5c338f3e6f1 100644
--- a/source/blender/editors/space_clip/clip_ops.c
+++ b/source/blender/editors/space_clip/clip_ops.c
@@ -39,6 +39,7 @@
#include "BLI_path_util.h"
#include "BLI_utildefines.h"
#include "BLI_math.h"
+#include "BLI_rect.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -62,6 +63,7 @@
#include "RNA_access.h"
#include "RNA_define.h"
+#include "RNA_enum_types.h"
#include "UI_view2d.h"
@@ -73,6 +75,7 @@ static void sclip_zoom_set(const bContext *C, float zoom, float location[2])
{
SpaceClip *sc = CTX_wm_space_clip(C);
ARegion *ar = CTX_wm_region(C);
+
float oldzoom = sc->zoom;
int width, height;
@@ -80,21 +83,21 @@ static void sclip_zoom_set(const bContext *C, float zoom, float location[2])
if (sc->zoom < 0.1f || sc->zoom > 4.0f) {
/* check zoom limits */
- ED_space_clip_get_size(C, &width, &height);
+ ED_space_clip_get_size(sc, &width, &height);
width *= sc->zoom;
height *= sc->zoom;
if ((width < 4) && (height < 4))
sc->zoom = oldzoom;
- else if ((ar->winrct.xmax - ar->winrct.xmin) <= sc->zoom)
+ else if (BLI_rcti_size_x(&ar->winrct) <= sc->zoom)
sc->zoom = oldzoom;
- else if ((ar->winrct.ymax - ar->winrct.ymin) <= sc->zoom)
+ else if (BLI_rcti_size_y(&ar->winrct) <= sc->zoom)
sc->zoom = oldzoom;
}
if ((U.uiflag & USER_ZOOM_TO_MOUSEPOS) && location) {
- ED_space_clip_get_size(C, &width, &height);
+ ED_space_clip_get_size(sc, &width, &height);
sc->xof += ((location[0] - 0.5f) * width - sc->xof) * (sc->zoom - oldzoom) / sc->zoom;
sc->yof += ((location[1] - 0.5f) * height - sc->yof) * (sc->zoom - oldzoom) / sc->zoom;
@@ -110,16 +113,20 @@ static void sclip_zoom_set_factor(const bContext *C, float zoomfac, float locati
static void sclip_zoom_set_factor_exec(bContext *C, wmEvent *event, float factor)
{
+ ARegion *ar = CTX_wm_region(C);
+
float location[2], *mpos = NULL;
if (event) {
- ED_clip_mouse_pos(C, event, location);
+ SpaceClip *sc = CTX_wm_space_clip(C);
+
+ ED_clip_mouse_pos(sc, ar, event->mval, location);
mpos = location;
}
sclip_zoom_set_factor(C, factor, mpos);
- ED_region_tag_redraw(CTX_wm_region(C));
+ ED_region_tag_redraw(ar);
}
/******************** open clip operator ********************/
@@ -239,12 +246,12 @@ static int open_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
strncpy(path, U.textudir, sizeof(path));
}
+ if (RNA_struct_property_is_set(op->ptr, "files"))
+ return open_exec(C, op);
+
if (!RNA_struct_property_is_set(op->ptr, "relative_path"))
RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
- if (RNA_struct_property_is_set(op->ptr, "filepath"))
- return open_exec(C, op);
-
open_init(C, op);
clip_filesel(C, op, path);
@@ -269,8 +276,7 @@ void CLIP_OT_open(wmOperatorType *ot)
/* properties */
WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE,
- WM_FILESEL_RELPATH | WM_FILESEL_FILES | WM_FILESEL_DIRECTORY,
- FILE_DEFAULTDISPLAY);
+ WM_FILESEL_RELPATH | WM_FILESEL_FILES | WM_FILESEL_DIRECTORY, FILE_DEFAULTDISPLAY);
}
/******************* reload clip operator *********************/
@@ -450,7 +456,7 @@ void CLIP_OT_view_pan(wmOperatorType *ot)
/* properties */
RNA_def_float_vector(ot->srna, "offset", 2, NULL, -FLT_MAX, FLT_MAX,
- "Offset", "Offset in floating point units, 1.0 is the width and height of the image", -FLT_MAX, FLT_MAX);
+ "Offset", "Offset in floating point units, 1.0 is the width and height of the image", -FLT_MAX, FLT_MAX);
}
/********************** view zoom operator *********************/
@@ -465,6 +471,8 @@ typedef struct ViewZoomData {
static void view_zoom_init(bContext *C, wmOperator *op, wmEvent *event)
{
SpaceClip *sc = CTX_wm_space_clip(C);
+ ARegion *ar = CTX_wm_region(C);
+
ViewZoomData *vpd;
op->customdata = vpd = MEM_callocN(sizeof(ViewZoomData), "ClipViewZoomData");
@@ -475,7 +483,7 @@ static void view_zoom_init(bContext *C, wmOperator *op, wmEvent *event)
vpd->zoom = sc->zoom;
vpd->event_type = event->type;
- ED_clip_mouse_pos(C, event, vpd->location);
+ ED_clip_mouse_pos(sc, ar, event->mval, vpd->location);
WM_event_add_modal_handler(C, op);
}
@@ -572,7 +580,7 @@ void CLIP_OT_view_zoom(wmOperatorType *ot)
/* properties */
RNA_def_float(ot->srna, "factor", 0.0f, 0.0f, FLT_MAX,
- "Factor", "Zoom factor, values higher than 1.0 zoom in, lower values zoom out", -FLT_MAX, FLT_MAX);
+ "Factor", "Zoom factor, values higher than 1.0 zoom in, lower values zoom out", -FLT_MAX, FLT_MAX);
}
/********************** view zoom in/out operator *********************/
@@ -592,9 +600,12 @@ static int view_zoom_in_exec(bContext *C, wmOperator *op)
static int view_zoom_in_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ SpaceClip *sc = CTX_wm_space_clip(C);
+ ARegion *ar = CTX_wm_region(C);
+
float location[2];
- ED_clip_mouse_pos(C, event, location);
+ ED_clip_mouse_pos(sc, ar, event->mval, location);
RNA_float_set_array(op->ptr, "location", location);
return view_zoom_in_exec(C, op);
@@ -632,9 +643,12 @@ static int view_zoom_out_exec(bContext *C, wmOperator *op)
static int view_zoom_out_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ SpaceClip *sc = CTX_wm_space_clip(C);
+ ARegion *ar = CTX_wm_region(C);
+
float location[2];
- ED_clip_mouse_pos(C, event, location);
+ ED_clip_mouse_pos(sc, ar, event->mval, location);
RNA_float_set_array(op->ptr, "location", location);
return view_zoom_out_exec(C, op);
@@ -687,7 +701,7 @@ void CLIP_OT_view_zoom_ratio(wmOperatorType *ot)
/* properties */
RNA_def_float(ot->srna, "ratio", 0.0f, 0.0f, FLT_MAX,
- "Ratio", "Zoom ratio, 1.0 is 1:1, higher is zoomed in, lower is zoomed out", -FLT_MAX, FLT_MAX);
+ "Ratio", "Zoom ratio, 1.0 is 1:1, higher is zoomed in, lower is zoomed out", -FLT_MAX, FLT_MAX);
}
/********************** view all operator *********************/
@@ -705,15 +719,15 @@ static int view_all_exec(bContext *C, wmOperator *op)
sc = CTX_wm_space_clip(C);
ar = CTX_wm_region(C);
- ED_space_clip_get_size(C, &w, &h);
+ ED_space_clip_get_size(sc, &w, &h);
ED_space_clip_get_aspect(sc, &aspx, &aspy);
w = w * aspx;
h = h * aspy;
/* check if the image will fit in the image with zoom == 1 */
- width = ar->winrct.xmax - ar->winrct.xmin + 1;
- height = ar->winrct.ymax - ar->winrct.ymin + 1;
+ width = BLI_rcti_size_x(&ar->winrct) + 1;
+ height = BLI_rcti_size_y(&ar->winrct) + 1;
if (fit_view) {
const int margin = 5; /* margin from border */
@@ -721,7 +735,7 @@ static int view_all_exec(bContext *C, wmOperator *op)
zoomx = (float) width / (w + 2 * margin);
zoomy = (float) height / (h + 2 * margin);
- sclip_zoom_set(C, MIN2(zoomx, zoomy), NULL);
+ sclip_zoom_set(C, minf(zoomx, zoomy), NULL);
}
else {
if ((w >= width || h >= height) && (width > 0 && height > 0)) {
@@ -729,7 +743,7 @@ static int view_all_exec(bContext *C, wmOperator *op)
zoomy = (float) height / h;
/* find the zoom value that will fit the image in the image space */
- sclip_zoom_set(C, 1.0f / power_of_2(1.0f / MIN2(zoomx, zoomy)), NULL);
+ sclip_zoom_set(C, 1.0f / power_of_2(1.0f / minf(zoomx, zoomy)), NULL);
}
else
sclip_zoom_set(C, 1.0f, NULL);
@@ -790,7 +804,7 @@ void CLIP_OT_view_selected(wmOperatorType *ot)
static int change_frame_poll(bContext *C)
{
/* prevent changes during render */
- if (G.rendering)
+ if (G.is_rendering)
return 0;
return ED_space_clip_poll(C);
@@ -987,11 +1001,11 @@ static void proxy_startjob(void *pjv, short *stop, short *do_update, float *prog
BKE_movieclip_build_proxy_frame(clip, pj->clip_flag, distortion, cfra,
build_undistort_sizes, build_undistort_count, 1);
- if (*stop || G.afbreek)
+ if (*stop || G.is_break)
break;
*do_update = TRUE;
- *progress = ((float) cfra) / (efra - sfra);
+ *progress = ((float) cfra - sfra) / (efra - sfra);
}
if (distortion)
@@ -1018,7 +1032,7 @@ static void proxy_endjob(void *pjv)
static int clip_rebuild_proxy_exec(bContext *C, wmOperator *UNUSED(op))
{
- wmJob * steve;
+ wmJob *wm_job;
ProxyJob *pj;
Scene *scene = CTX_data_scene(C);
ScrArea *sa = CTX_wm_area(C);
@@ -1028,7 +1042,8 @@ static int clip_rebuild_proxy_exec(bContext *C, wmOperator *UNUSED(op))
if ((clip->flag & MCLIP_USE_PROXY) == 0)
return OPERATOR_CANCELLED;
- steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Building Proxies", WM_JOB_PROGRESS);
+ wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Building Proxies",
+ WM_JOB_PROGRESS, WM_JOB_TYPE_CLIP_BUILD_PROXY);
pj = MEM_callocN(sizeof(ProxyJob), "proxy rebuild job");
pj->scene = scene;
@@ -1041,12 +1056,12 @@ static int clip_rebuild_proxy_exec(bContext *C, wmOperator *UNUSED(op))
clip->proxy.build_size_flag, clip->proxy.quality);
}
- WM_jobs_customdata(steve, pj, proxy_freejob);
- WM_jobs_timer(steve, 0.2, NC_MOVIECLIP | ND_DISPLAY, 0);
- WM_jobs_callbacks(steve, proxy_startjob, NULL, NULL, proxy_endjob);
+ WM_jobs_customdata_set(wm_job, pj, proxy_freejob);
+ WM_jobs_timer(wm_job, 0.2, NC_MOVIECLIP | ND_DISPLAY, 0);
+ WM_jobs_callbacks(wm_job, proxy_startjob, NULL, NULL, proxy_endjob);
- G.afbreek = 0;
- WM_jobs_start(CTX_wm_manager(C), steve);
+ G.is_break = FALSE;
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
ED_area_tag_redraw(CTX_wm_area(C));
@@ -1074,15 +1089,8 @@ static int mode_set_exec(bContext *C, wmOperator *op)
{
SpaceClip *sc = CTX_wm_space_clip(C);
int mode = RNA_enum_get(op->ptr, "mode");
- int toggle = RNA_boolean_get(op->ptr, "toggle");
- if (sc->mode == mode) {
- if (toggle)
- sc->mode = SC_MODE_TRACKING;
- }
- else {
- sc->mode = mode;
- }
+ sc->mode = mode;
WM_event_add_notifier(C, NC_SPACE | ND_SPACE_CLIP, NULL);
@@ -1091,13 +1099,6 @@ static int mode_set_exec(bContext *C, wmOperator *op)
void CLIP_OT_mode_set(wmOperatorType *ot)
{
- static EnumPropertyItem mode_items[] = {
- {SC_MODE_TRACKING, "TRACKING", 0, "Tracking", "Show tracking and solving tools"},
- {SC_MODE_RECONSTRUCTION, "RECONSTRUCTION", 0, "Reconstruction", "Show tracking/reconstruction tools"},
- {SC_MODE_DISTORTION, "DISTORTION", 0, "Distortion", "Show distortion tools"},
- {0, NULL, 0, NULL, NULL}};
-
-
/* identifiers */
ot->name = "Set Clip Mode";
ot->description = "Set the clip interaction mode";
@@ -1109,8 +1110,66 @@ void CLIP_OT_mode_set(wmOperatorType *ot)
ot->poll = ED_space_clip_poll;
/* properties */
- RNA_def_enum(ot->srna, "mode", mode_items, SC_MODE_TRACKING, "Mode", "");
- RNA_def_boolean(ot->srna, "toggle", 0, "Toggle", "");
+ RNA_def_enum(ot->srna, "mode", clip_editor_mode_items, SC_MODE_TRACKING, "Mode", "");
+}
+
+/********************** NDOF operator *********************/
+
+/* Combined pan/zoom from a 3D mouse device.
+ * Z zooms, XY pans
+ * "view" (not "paper") control -- user moves the viewpoint, not the image being viewed
+ * that explains the negative signs in the code below
+ */
+
+static int clip_view_ndof_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
+{
+ if (event->type != NDOF_MOTION)
+ return OPERATOR_CANCELLED;
+ else {
+ SpaceClip *sc = CTX_wm_space_clip(C);
+ ARegion *ar = CTX_wm_region(C);
+
+ wmNDOFMotionData *ndof = (wmNDOFMotionData *) event->customdata;
+
+ float dt = ndof->dt;
+
+ /* tune these until it feels right */
+ const float zoom_sensitivity = 0.5f; /* 50% per second (I think) */
+ const float pan_sensitivity = 300.0f; /* screen pixels per second */
+
+ float pan_x = pan_sensitivity * dt * ndof->tvec[0] / sc->zoom;
+ float pan_y = pan_sensitivity * dt * ndof->tvec[1] / sc->zoom;
+
+ /* "mouse zoom" factor = 1 + (dx + dy) / 300
+ * what about "ndof zoom" factor? should behave like this:
+ * at rest -> factor = 1
+ * move forward -> factor > 1
+ * move backward -> factor < 1
+ */
+ float zoom_factor = 1.0f + zoom_sensitivity * dt * - ndof->tvec[2];
+
+ if (U.ndof_flag & NDOF_ZOOM_INVERT)
+ zoom_factor = -zoom_factor;
+
+ sclip_zoom_set_factor(C, zoom_factor, NULL);
+ sc->xof += pan_x;
+ sc->yof += pan_y;
+
+ ED_region_tag_redraw(ar);
+
+ return OPERATOR_FINISHED;
+ }
+}
+
+void CLIP_OT_view_ndof(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "NDOF Pan/Zoom";
+ ot->idname = "CLIP_OT_view_ndof";
+ ot->description = "Use a 3D mouse device to pan/zoom the view";
+
+ /* api callbacks */
+ ot->invoke = clip_view_ndof_invoke;
}
/********************** macroses *********************/
diff --git a/source/blender/editors/space_clip/clip_toolbar.c b/source/blender/editors/space_clip/clip_toolbar.c
index 3ffba75f2ef..1bdf5214192 100644
--- a/source/blender/editors/space_clip/clip_toolbar.c
+++ b/source/blender/editors/space_clip/clip_toolbar.c
@@ -224,13 +224,13 @@ static void clip_panel_operator_redo(const bContext *C, Panel *pa)
if (op == NULL)
return;
- if (WM_operator_poll((bContext*)C, op->type) == 0)
+ if (WM_operator_poll((bContext *)C, op->type) == 0)
return;
block = uiLayoutGetBlock(pa->layout);
if (!WM_operator_check_ui_enabled(C, op->type->name))
- uiLayoutSetEnabled(pa->layout, 0);
+ uiLayoutSetEnabled(pa->layout, FALSE);
/* note, blockfunc is a default but->func, use Handle func to allow button callbacks too */
uiBlockSetHandleFunc(block, ED_undo_operator_repeat_cb_evt, op);
diff --git a/source/blender/editors/space_clip/clip_utils.c b/source/blender/editors/space_clip/clip_utils.c
index d9c9f63e4a3..ddc624b4cdf 100644
--- a/source/blender/editors/space_clip/clip_utils.c
+++ b/source/blender/editors/space_clip/clip_utils.c
@@ -223,13 +223,12 @@ void clip_delete_marker(bContext *C, MovieClip *clip, ListBase *tracksbase,
}
}
-void clip_view_center_to_point(const bContext *C, float x, float y)
+void clip_view_center_to_point(SpaceClip *sc, float x, float y)
{
- SpaceClip *sc = CTX_wm_space_clip(C);
int width, height;
float aspx, aspy;
- ED_space_clip_get_size(C, &width, &height);
+ ED_space_clip_get_size(sc, &width, &height);
ED_space_clip_get_aspect(sc, &aspx, &aspy);
sc->xof = (x - 0.5f) * width * aspx;
@@ -264,7 +263,7 @@ void clip_draw_cfra(SpaceClip *sc, ARegion *ar, Scene *scene)
UI_view2d_getscale(v2d, &xscale, &yscale);
glScalef(1.0f / xscale, 1.0f, 1.0f);
- clip_draw_curfra_label(sc, (float)sc->user.framenr * xscale, 18);
+ clip_draw_curfra_label(sc->user.framenr, (float)sc->user.framenr * xscale, 18);
/* restore view transform */
glScalef(xscale, 1.0, 1.0);
diff --git a/source/blender/editors/space_clip/space_clip.c b/source/blender/editors/space_clip/space_clip.c
index 0a6a4af6960..ffe4762ad15 100644
--- a/source/blender/editors/space_clip/space_clip.c
+++ b/source/blender/editors/space_clip/space_clip.c
@@ -389,7 +389,6 @@ static void clip_listener(ScrArea *sa, wmNotifier *wmn)
}
switch (wmn->action) {
case NA_SELECTED:
- clip_scopes_tag_refresh(sa);
ED_area_tag_redraw(sa);
break;
case NA_EDITED:
@@ -408,8 +407,6 @@ static void clip_listener(ScrArea *sa, wmNotifier *wmn)
case NC_SCREEN:
switch (wmn->data) {
case ND_ANIMPLAY:
- case ND_GPENCIL:
- clip_scopes_check_gpencil_change(sa);
ED_area_tag_redraw(sa);
break;
}
@@ -421,6 +418,12 @@ static void clip_listener(ScrArea *sa, wmNotifier *wmn)
ED_area_tag_redraw(sa);
}
break;
+ case NC_GPENCIL:
+ if (wmn->action == NA_EDITED) {
+ clip_scopes_check_gpencil_change(sa);
+ ED_area_tag_redraw(sa);
+ }
+ break;
}
}
@@ -439,6 +442,7 @@ static void clip_operatortypes(void)
WM_operatortype_append(CLIP_OT_change_frame);
WM_operatortype_append(CLIP_OT_rebuild_proxy);
WM_operatortype_append(CLIP_OT_mode_set);
+ WM_operatortype_append(CLIP_OT_view_ndof);
/* ** clip_toolbar.c ** */
WM_operatortype_append(CLIP_OT_tools);
@@ -478,6 +482,8 @@ static void clip_operatortypes(void)
WM_operatortype_append(CLIP_OT_hide_tracks_clear);
WM_operatortype_append(CLIP_OT_lock_tracks);
+ WM_operatortype_append(CLIP_OT_set_solver_keyframe);
+
/* orientation */
WM_operatortype_append(CLIP_OT_set_origin);
WM_operatortype_append(CLIP_OT_set_plane);
@@ -559,16 +565,16 @@ static void clip_keymap(struct wmKeyConfig *keyconf)
RNA_boolean_set(kmi->ptr, "sequence", TRUE);
/* mode */
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_mode_set", TABKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", SC_MODE_RECONSTRUCTION);
- RNA_boolean_set(kmi->ptr, "toggle", TRUE);
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_mode_set", TABKEY, KM_PRESS, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "mode", SC_MODE_DISTORTION);
- RNA_boolean_set(kmi->ptr, "toggle", TRUE);
+ WM_keymap_add_menu(keymap, "CLIP_MT_select_mode", TABKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "CLIP_OT_solve_camera", SKEY, KM_PRESS, KM_SHIFT, 0);
+ kmi = WM_keymap_add_item(keymap, "CLIP_OT_set_solver_keyframe", QKEY, KM_PRESS, 0, 0);
+ RNA_enum_set(kmi->ptr, "keyframe", 0);
+
+ kmi = WM_keymap_add_item(keymap, "CLIP_OT_set_solver_keyframe", EKEY, KM_PRESS, 0, 0);
+ RNA_enum_set(kmi->ptr, "keyframe", 1);
+
/* ******** Hotkeys avalaible for main region only ******** */
keymap = WM_keymap_find(keyconf, "Clip Editor", SPACE_CLIP, 0);
@@ -601,6 +607,9 @@ static void clip_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "CLIP_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "CLIP_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "CLIP_OT_view_ndof", NDOF_MOTION, 0, 0, 0);
+
/* jump to special frame */
kmi = WM_keymap_add_item(keymap, "CLIP_OT_frame_jump", LEFTARROWKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
RNA_enum_set(kmi->ptr, "position", 0);
@@ -772,8 +781,8 @@ static int clip_context(const bContext *C, const char *member, bContextDataResul
return TRUE;
}
else if (CTX_data_equals(member, "edit_mask")) {
- if (sc->mask)
- CTX_data_id_pointer_set(result, &sc->mask->id);
+ if (sc->mask_info.mask)
+ CTX_data_id_pointer_set(result, &sc->mask_info.mask->id);
return TRUE;
}
@@ -792,8 +801,16 @@ static int clip_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(eve
static void clip_drop_copy(wmDrag *drag, wmDropBox *drop)
{
- /* copy drag path to properties */
- RNA_string_set(drop->ptr, "filepath", drag->path);
+ PointerRNA itemptr;
+ char dir[FILE_MAX], file[FILE_MAX];
+
+ BLI_split_dirfile(drag->path, dir, file, sizeof(dir), sizeof(file));
+
+ RNA_string_set(drop->ptr, "directory", dir);
+
+ RNA_collection_clear(drop->ptr, "files");
+ RNA_collection_add(drop->ptr, "files", &itemptr);
+ RNA_string_set(&itemptr, "name", file);
}
/* area+region dropbox definition */
@@ -1015,7 +1032,7 @@ static void movieclip_main_area_set_view2d(const bContext *C, ARegion *ar)
float x1, y1, w, h;
int width, height, winx, winy;
- ED_space_clip_get_size(C, &width, &height);
+ ED_space_clip_get_size(sc, &width, &height);
w = width;
h = height;
@@ -1023,8 +1040,8 @@ static void movieclip_main_area_set_view2d(const bContext *C, ARegion *ar)
if (clip)
h *= clip->aspy / clip->aspx / clip->tracking.camera.pixel_aspect;
- winx = ar->winrct.xmax - ar->winrct.xmin + 1;
- winy = ar->winrct.ymax - ar->winrct.ymin + 1;
+ winx = BLI_rcti_size_x(&ar->winrct) + 1;
+ winy = BLI_rcti_size_y(&ar->winrct) + 1;
ar->v2d.tot.xmin = 0;
ar->v2d.tot.ymin = 0;
@@ -1064,10 +1081,11 @@ static void clip_main_area_init(wmWindowManager *wm, ARegion *ar)
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_STANDARD, ar->winx, ar->winy);
- /* own keymap */
+ /* mask polls mode */
keymap = WM_keymap_find(wm->defaultconf, "Mask Editing", 0, 0);
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
+ /* own keymap */
keymap = WM_keymap_find(wm->defaultconf, "Clip", SPACE_CLIP, 0);
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
@@ -1075,50 +1093,6 @@ static void clip_main_area_init(wmWindowManager *wm, ARegion *ar)
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
}
-static void clip_main_area_draw_mask(const bContext *C, ARegion *ar)
-{
- SpaceClip *sc = CTX_wm_space_clip(C);
- int x, y;
- int width, height;
- float zoomx, zoomy;
-
- /* frame image */
- float maxdim;
- float xofs, yofs;
-
- /* find window pixel coordinates of origin */
- UI_view2d_to_region_no_clip(&ar->v2d, 0.0f, 0.0f, &x, &y);
-
- ED_space_clip_get_size(C, &width, &height);
- ED_space_clip_get_zoom(C, &zoomx, &zoomy);
-
- /* frame the image */
- maxdim = maxf(width, height);
- if (width == height) {
- xofs = yofs = 0;
- }
- else if (width < height) {
- xofs = ((height - width) / -2.0f) * zoomx;
- yofs = 0.0f;
- }
- else { /* (width > height) */
- xofs = 0.0f;
- yofs = ((width - height) / -2.0f) * zoomy;
- }
-
- /* apply transformation so mask editing tools will assume drawing from the origin in normalized space */
- glPushMatrix();
- glTranslatef(x + xofs, y + yofs, 0);
- glScalef(maxdim * zoomx, maxdim * zoomy, 0);
- glMultMatrixf(sc->stabmat);
-
- ED_mask_draw(C, sc->mask_draw_flag, sc->mask_draw_type);
-
- ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST_VIEW);
-
- glPopMatrix();
-}
-
static void clip_main_area_draw(const bContext *C, ARegion *ar)
{
/* draw entirely, view changes should be handled here */
@@ -1153,10 +1127,26 @@ static void clip_main_area_draw(const bContext *C, ARegion *ar)
/* data... */
movieclip_main_area_set_view2d(C, ar);
- clip_draw_main(C, ar);
+ clip_draw_main(C, sc, ar);
if (sc->mode == SC_MODE_MASKEDIT) {
- clip_main_area_draw_mask(C, ar);
+
+ Mask *mask = CTX_data_edit_mask(C);
+ if (mask) {
+ ScrArea *sa = CTX_wm_area(C);
+ int width, height;
+ float aspx, aspy;
+ ED_mask_get_size(sa, &width, &height);
+ ED_space_clip_get_aspect(sc, &aspx, &aspy);
+ ED_mask_draw_region(mask, ar,
+ sc->mask_info.draw_flag, sc->mask_info.draw_type,
+ width, height,
+ aspx, aspy,
+ TRUE, TRUE,
+ sc->stabmat, C);
+ }
+
+
}
/* Grease Pencil */
@@ -1173,8 +1163,8 @@ static void clip_main_area_listener(ARegion *ar, wmNotifier *wmn)
{
/* context changes */
switch (wmn->category) {
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL)
+ case NC_GPENCIL:
+ if (wmn->action == NA_EDITED)
ED_region_tag_redraw(ar);
break;
}
@@ -1387,8 +1377,8 @@ static void clip_props_area_listener(ARegion *ar, wmNotifier *wmn)
if (wmn->data == ND_SPACE_CLIP)
ED_region_tag_redraw(ar);
break;
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL)
+ case NC_GPENCIL:
+ if (wmn->action == NA_EDITED)
ED_region_tag_redraw(ar);
break;
}
@@ -1420,8 +1410,8 @@ static void clip_properties_area_listener(ARegion *ar, wmNotifier *wmn)
{
/* context changes */
switch (wmn->category) {
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL)
+ case NC_GPENCIL:
+ if (wmn->data == ND_DATA)
ED_region_tag_redraw(ar);
break;
case NC_BRUSH:
diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c
index 2e4ba844646..97f7d7bf132 100644
--- a/source/blender/editors/space_clip/tracking_ops.c
+++ b/source/blender/editors/space_clip/tracking_ops.c
@@ -42,7 +42,6 @@
#include "BLI_math.h"
#include "BLI_listbase.h"
#include "BLI_rect.h"
-#include "BLI_lasso.h"
#include "BLI_blenlib.h"
#include "BKE_main.h"
@@ -91,7 +90,7 @@ static void add_marker(const bContext *C, float x, float y)
int width, height;
int framenr = ED_space_clip_get_clip_frame_number(sc);
- ED_space_clip_get_size(C, &width, &height);
+ ED_space_clip_get_size(sc, &width, &height);
track = BKE_tracking_track_add(tracking, tracksbase, x, y, framenr, width, height);
@@ -107,7 +106,7 @@ static int add_marker_exec(bContext *C, wmOperator *op)
float pos[2];
int width, height;
- ED_space_clip_get_size(C, &width, &height);
+ ED_space_clip_get_size(sc, &width, &height);
if (!width || !height)
return OPERATOR_CANCELLED;
@@ -127,9 +126,12 @@ static int add_marker_exec(bContext *C, wmOperator *op)
static int add_marker_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ SpaceClip *sc = CTX_wm_space_clip(C);
+ ARegion *ar = CTX_wm_region(C);
+
float co[2];
- ED_clip_mouse_pos(C, event, co);
+ ED_clip_mouse_pos(sc, ar, event->mval, co);
RNA_float_set_array(op->ptr, "location", co);
@@ -370,8 +372,8 @@ static int mouse_on_slide_zone(SpaceClip *sc, MovieTrackingMarker *marker,
dx = size / width / sc->zoom;
dy = size / height / sc->zoom;
- dx = MIN2(dx, (max[0] - min[0]) / 6.0f);
- dy = MIN2(dy, (max[1] - min[1]) / 6.0f);
+ dx = minf(dx, (max[0] - min[0]) / 6.0f);
+ dy = minf(dy, (max[1] - min[1]) / 6.0f);
return IN_RANGE_INCL(co[0], slide_zone[0] - dx, slide_zone[0] + dx) &&
IN_RANGE_INCL(co[1], slide_zone[1] - dy, slide_zone[1] + dy);
@@ -422,14 +424,14 @@ static int get_mouse_pattern_corner(SpaceClip *sc, MovieTrackingMarker *marker,
cur_len = len_v2v2(marker->pattern_corners[i], marker->pattern_corners[next]);
- len = MIN2(cur_len, len);
+ len = minf(cur_len, len);
}
dx = 12.0f / width / sc->zoom;
dy = 12.0f / height / sc->zoom;
- dx = MIN2(dx, len * 2.0f / 3.0f);
- dy = MIN2(dy, len * width / height * 2.0f / 3.0f);
+ dx = minf(dx, len * 2.0f / 3.0f);
+ dy = minf(dy, len * width / height * 2.0f / 3.0f);
for (i = 0; i < 4; i++) {
float crn[2];
@@ -460,8 +462,8 @@ static int mouse_on_offset(SpaceClip *sc, MovieTrackingTrack *track, MovieTracki
dx = 12.0f / width / sc->zoom;
dy = 12.0f / height / sc->zoom;
- dx = MIN2(dx, (pat_max[0] - pat_min[0]) / 2.0f);
- dy = MIN2(dy, (pat_max[1] - pat_min[1]) / 2.0f);
+ dx = minf(dx, (pat_max[0] - pat_min[0]) / 2.0f);
+ dy = minf(dy, (pat_max[1] - pat_min[1]) / 2.0f);
return co[0] >= pos[0] - dx && co[0] <= pos[0] + dx && co[1] >= pos[1] - dy && co[1] <= pos[1] + dy;
}
@@ -525,6 +527,8 @@ static void show_cursor(bContext *C)
MovieTrackingTrack *tracking_marker_check_slide(bContext *C, wmEvent *event, int *area_r, int *action_r, int *corner_r)
{
SpaceClip *sc = CTX_wm_space_clip(C);
+ ARegion *ar = CTX_wm_region(C);
+
MovieClip *clip = ED_space_clip_get_clip(sc);
MovieTrackingTrack *track;
int width, height;
@@ -533,12 +537,12 @@ MovieTrackingTrack *tracking_marker_check_slide(bContext *C, wmEvent *event, int
int framenr = ED_space_clip_get_clip_frame_number(sc);
int action = -1, area = 0, corner = -1;
- ED_space_clip_get_size(C, &width, &height);
+ ED_space_clip_get_size(sc, &width, &height);
if (width == 0 || height == 0)
return NULL;
- ED_clip_mouse_pos(C, event, co);
+ ED_clip_mouse_pos(sc, ar, event->mval, co);
track = tracksbase->first;
while (track) {
@@ -622,6 +626,8 @@ MovieTrackingTrack *tracking_marker_check_slide(bContext *C, wmEvent *event, int
static void *slide_marker_customdata(bContext *C, wmEvent *event)
{
SpaceClip *sc = CTX_wm_space_clip(C);
+ ARegion *ar = CTX_wm_region(C);
+
MovieTrackingTrack *track;
int width, height;
float co[2];
@@ -629,12 +635,12 @@ static void *slide_marker_customdata(bContext *C, wmEvent *event)
int framenr = ED_space_clip_get_clip_frame_number(sc);
int area, action, corner;
- ED_space_clip_get_size(C, &width, &height);
+ ED_space_clip_get_size(sc, &width, &height);
if (width == 0 || height == 0)
return NULL;
- ED_clip_mouse_pos(C, event, co);
+ ED_clip_mouse_pos(sc, ar, event->mval, co);
track = tracking_marker_check_slide(C, event, &area, &action, &corner);
if (track) {
@@ -700,6 +706,8 @@ static void free_slide_data(SlideMarkerData *data)
static int slide_marker_modal(bContext *C, wmOperator *op, wmEvent *event)
{
SpaceClip *sc = CTX_wm_space_clip(C);
+ ARegion *ar = CTX_wm_region(C);
+
SlideMarkerData *data = (SlideMarkerData *)op->customdata;
float dx, dy, mdelta[2];
@@ -751,7 +759,7 @@ static int slide_marker_modal(bContext *C, wmOperator *op, wmEvent *event)
float start[2], end[2];
float scale;
- ED_clip_point_stable_pos(C, data->mval[0], data->mval[1], &start[0], &start[1]);
+ ED_clip_point_stable_pos(sc, ar, data->mval[0], data->mval[1], &start[0], &start[1]);
sub_v2_v2(start, data->old_pos);
@@ -767,7 +775,7 @@ static int slide_marker_modal(bContext *C, wmOperator *op, wmEvent *event)
mval[1] = event->mval[1];
}
- ED_clip_point_stable_pos(C, mval[0], mval[1], &end[0], &end[1]);
+ ED_clip_point_stable_pos(sc, ar, mval[0], mval[1], &end[0], &end[1]);
sub_v2_v2(end, data->old_pos);
@@ -825,7 +833,7 @@ static int slide_marker_modal(bContext *C, wmOperator *op, wmEvent *event)
sub_v2_v2v2(start, data->spos, data->old_pos);
- ED_clip_point_stable_pos(C, mval[0], mval[1], &end[0], &end[1]);
+ ED_clip_point_stable_pos(sc, ar, mval[0], mval[1], &end[0], &end[1]);
sub_v2_v2(end, data->old_pos);
if (len_v2(start) > 0.0f) {
@@ -943,7 +951,7 @@ typedef struct TrackMarkersJob {
static int track_markers_testbreak(void)
{
- return G.afbreek;
+ return G.is_break;
}
static int track_count_markers(SpaceClip *sc, MovieClip *clip)
@@ -1226,11 +1234,11 @@ static int track_markers_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(eve
ScrArea *sa = CTX_wm_area(C);
SpaceClip *sc = CTX_wm_space_clip(C);
MovieClip *clip = ED_space_clip_get_clip(sc);
- wmJob *steve;
+ wmJob *wm_job;
int backwards = RNA_boolean_get(op->ptr, "backwards");
int sequence = RNA_boolean_get(op->ptr, "sequence");
- if (WM_jobs_test(CTX_wm_manager(C), CTX_wm_area(C))) {
+ if (WM_jobs_test(CTX_wm_manager(C), CTX_wm_area(C), WM_JOB_TYPE_ANY)) {
/* only one tracking is allowed at a time */
return OPERATOR_CANCELLED;
}
@@ -1252,23 +1260,24 @@ static int track_markers_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(eve
}
/* setup job */
- steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Track Markers", WM_JOB_PROGRESS);
- WM_jobs_customdata(steve, tmj, track_markers_freejob);
+ wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Track Markers",
+ WM_JOB_PROGRESS, WM_JOB_TYPE_CLIP_TRACK_MARKERS);
+ WM_jobs_customdata_set(wm_job, tmj, track_markers_freejob);
/* if there's delay set in tracking job, tracking should happen
* with fixed FPS. To deal with editor refresh we have to synchronize
* tracks from job and tracks in clip. Do this in timer callback
* to prevent threading conflicts. */
if (tmj->delay > 0)
- WM_jobs_timer(steve, tmj->delay / 1000.0f, NC_MOVIECLIP | NA_EVALUATED, 0);
+ WM_jobs_timer(wm_job, tmj->delay / 1000.0f, NC_MOVIECLIP | NA_EVALUATED, 0);
else
- WM_jobs_timer(steve, 0.2, NC_MOVIECLIP | NA_EVALUATED, 0);
+ WM_jobs_timer(wm_job, 0.2, NC_MOVIECLIP | NA_EVALUATED, 0);
- WM_jobs_callbacks(steve, track_markers_startjob, NULL, track_markers_updatejob, NULL);
+ WM_jobs_callbacks(wm_job, track_markers_startjob, NULL, track_markers_updatejob, NULL);
- G.afbreek = 0;
+ G.is_break = FALSE;
- WM_jobs_start(CTX_wm_manager(C), steve);
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
WM_cursor_wait(0);
/* add modal handler for ESC */
@@ -1280,7 +1289,7 @@ static int track_markers_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(eve
static int track_markers_modal(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
/* no running tracking, remove handler and pass through */
- if (0 == WM_jobs_test(CTX_wm_manager(C), CTX_wm_area(C)))
+ if (0 == WM_jobs_test(CTX_wm_manager(C), CTX_wm_area(C), WM_JOB_TYPE_ANY))
return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH;
/* running tracking */
@@ -1458,10 +1467,10 @@ static int solve_camera_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(even
MovieClip *clip = ED_space_clip_get_clip(sc);
MovieTracking *tracking = &clip->tracking;
MovieTrackingReconstruction *reconstruction = BKE_tracking_get_active_reconstruction(tracking);
- wmJob *steve;
+ wmJob *wm_job;
char error_msg[256] = "\0";
- if (WM_jobs_test(CTX_wm_manager(C), CTX_wm_area(C))) {
+ if (WM_jobs_test(CTX_wm_manager(C), CTX_wm_area(C), WM_JOB_TYPE_ANY)) {
/* only one solve is allowed at a time */
return OPERATOR_CANCELLED;
}
@@ -1483,14 +1492,15 @@ static int solve_camera_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(even
WM_event_add_notifier(C, NC_MOVIECLIP | NA_EVALUATED, clip);
/* setup job */
- steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Solve Camera", WM_JOB_PROGRESS);
- WM_jobs_customdata(steve, scj, solve_camera_freejob);
- WM_jobs_timer(steve, 0.1, NC_MOVIECLIP | NA_EVALUATED, 0);
- WM_jobs_callbacks(steve, solve_camera_startjob, NULL, solve_camera_updatejob, NULL);
+ wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Solve Camera",
+ WM_JOB_PROGRESS, WM_JOB_TYPE_CLIP_SOLVE_CAMERA);
+ WM_jobs_customdata_set(wm_job, scj, solve_camera_freejob);
+ WM_jobs_timer(wm_job, 0.1, NC_MOVIECLIP | NA_EVALUATED, 0);
+ WM_jobs_callbacks(wm_job, solve_camera_startjob, NULL, solve_camera_updatejob, NULL);
- G.afbreek = 0;
+ G.is_break = FALSE;
- WM_jobs_start(CTX_wm_manager(C), steve);
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
WM_cursor_wait(0);
/* add modal handler for ESC */
@@ -1502,7 +1512,7 @@ static int solve_camera_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(even
static int solve_camera_modal(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
/* no running solver, remove handler and pass through */
- if (0 == WM_jobs_test(CTX_wm_manager(C), CTX_wm_area(C)))
+ if (0 == WM_jobs_test(CTX_wm_manager(C), CTX_wm_area(C), WM_JOB_TYPE_ANY))
return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH;
/* running tracking */
@@ -2842,6 +2852,51 @@ void CLIP_OT_lock_tracks(wmOperatorType *ot)
RNA_def_enum(ot->srna, "action", actions_items, 0, "Action", "Lock action to execute");
}
+/********************** set keyframe operator *********************/
+
+static int set_solver_keyframe_exec(bContext *C, wmOperator *op)
+{
+ SpaceClip *sc = CTX_wm_space_clip(C);
+ MovieClip *clip = ED_space_clip_get_clip(sc);
+ MovieTracking *tracking = &clip->tracking;
+ MovieTrackingSettings *settings = &tracking->settings;
+ int keyframe = RNA_enum_get(op->ptr, "keyframe");
+ int framenr = BKE_movieclip_remap_scene_to_clip_frame(clip, sc->user.framenr);
+
+ if (keyframe == 0)
+ settings->keyframe1 = framenr;
+ else
+ settings->keyframe2 = framenr;
+
+ WM_event_add_notifier(C, NC_MOVIECLIP | ND_DISPLAY, clip);
+
+ return OPERATOR_FINISHED;
+}
+
+void CLIP_OT_set_solver_keyframe(wmOperatorType *ot)
+{
+ static EnumPropertyItem keyframe_items[] = {
+ {0, "KEYFRAME_A", 0, "Keyframe A", ""},
+ {1, "KEYFRAME_B", 0, "Keyframe B", ""},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ /* identifiers */
+ ot->name = "Set Solver Keyframe";
+ ot->description = "Set keyframe used by solver";
+ ot->idname = "CLIP_OT_set_solver_keyframe";
+
+ /* api callbacks */
+ ot->exec = set_solver_keyframe_exec;
+ ot->poll = ED_space_clip_tracking_poll;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
+ RNA_def_enum(ot->srna, "keyframe", keyframe_items, 0, "Keyframe", "keyframe to set");
+}
+
/********************** track copy color operator *********************/
static int track_copy_color_exec(bContext *C, wmOperator *UNUSED(op))
diff --git a/source/blender/editors/space_clip/tracking_select.c b/source/blender/editors/space_clip/tracking_select.c
index 0ebb84b3953..4f62d3fdc2f 100644
--- a/source/blender/editors/space_clip/tracking_select.c
+++ b/source/blender/editors/space_clip/tracking_select.c
@@ -107,7 +107,7 @@ static int mouse_on_crns(float co[2], float pos[2], float crns[4][2], float epsx
{
float dist = dist_to_crns(co, pos, crns);
- return dist < MAX2(epsx, epsy);
+ return dist < maxf(epsx, epsy);
}
static int track_mouse_area(const bContext *C, float co[2], MovieTrackingTrack *track)
@@ -119,7 +119,7 @@ static int track_mouse_area(const bContext *C, float co[2], MovieTrackingTrack *
float epsx, epsy;
int width, height;
- ED_space_clip_get_size(C, &width, &height);
+ ED_space_clip_get_size(sc, &width, &height);
BKE_tracking_marker_pattern_minmax(marker, pat_min, pat_max);
@@ -128,8 +128,8 @@ static int track_mouse_area(const bContext *C, float co[2], MovieTrackingTrack *
epsy = MIN4(pat_min[1] - marker->search_min[1], marker->search_max[1] - pat_max[1],
fabsf(pat_min[1]), fabsf(pat_max[1])) / 2;
- epsx = MAX2(epsx, 2.0f / width);
- epsy = MAX2(epsy, 2.0f / height);
+ epsx = maxf(epsx, 2.0f / width);
+ epsy = maxf(epsy, 2.0f / height);
if (sc->flag & SC_SHOW_MARKER_SEARCH) {
if (mouse_on_rect(co, marker->pos, marker->search_min, marker->search_max, epsx, epsy))
@@ -161,12 +161,12 @@ static float dist_to_rect(float co[2], float pos[2], float min[2], float max[2])
float v1[2] = {min[0], min[1]}, v2[2] = {max[0], min[1]};
float v3[2] = {max[0], max[1]}, v4[2] = {min[0], max[1]};
- d1 = dist_to_line_segment_v2(p, v1, v2);
- d2 = dist_to_line_segment_v2(p, v2, v3);
- d3 = dist_to_line_segment_v2(p, v3, v4);
- d4 = dist_to_line_segment_v2(p, v4, v1);
+ d1 = dist_squared_to_line_segment_v2(p, v1, v2);
+ d2 = dist_squared_to_line_segment_v2(p, v2, v3);
+ d3 = dist_squared_to_line_segment_v2(p, v3, v4);
+ d4 = dist_squared_to_line_segment_v2(p, v4, v1);
- return MIN4(d1, d2, d3, d4);
+ return sqrtf(MIN4(d1, d2, d3, d4));
}
static float dist_to_crns(float co[2], float pos[2], float crns[4][2])
@@ -176,12 +176,12 @@ static float dist_to_crns(float co[2], float pos[2], float crns[4][2])
float *v1 = crns[0], *v2 = crns[1];
float *v3 = crns[2], *v4 = crns[3];
- d1 = dist_to_line_segment_v2(p, v1, v2);
- d2 = dist_to_line_segment_v2(p, v2, v3);
- d3 = dist_to_line_segment_v2(p, v3, v4);
- d4 = dist_to_line_segment_v2(p, v4, v1);
+ d1 = dist_squared_to_line_segment_v2(p, v1, v2);
+ d2 = dist_squared_to_line_segment_v2(p, v2, v3);
+ d3 = dist_squared_to_line_segment_v2(p, v3, v4);
+ d4 = dist_squared_to_line_segment_v2(p, v4, v1);
- return MIN4(d1, d2, d3, d4);
+ return sqrtf(MIN4(d1, d2, d3, d4));
}
static MovieTrackingTrack *find_nearest_track(SpaceClip *sc, ListBase *tracksbase, float co[2])
@@ -281,6 +281,9 @@ static int select_exec(bContext *C, wmOperator *op)
static int select_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ SpaceClip *sc = CTX_wm_space_clip(C);
+ ARegion *ar = CTX_wm_region(C);
+
float co[2];
int extend = RNA_boolean_get(op->ptr, "extend");
@@ -299,7 +302,7 @@ static int select_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
}
- ED_clip_mouse_pos(C, event, co);
+ ED_clip_mouse_pos(sc, ar, event->mval, co);
RNA_float_set_array(op->ptr, "location", co);
return select_exec(C, op);
@@ -333,6 +336,8 @@ void CLIP_OT_select(wmOperatorType *ot)
static int border_select_exec(bContext *C, wmOperator *op)
{
SpaceClip *sc = CTX_wm_space_clip(C);
+ ARegion *ar = CTX_wm_region(C);
+
MovieClip *clip = ED_space_clip_get_clip(sc);
MovieTracking *tracking = &clip->tracking;
MovieTrackingTrack *track;
@@ -343,13 +348,10 @@ static int border_select_exec(bContext *C, wmOperator *op)
int framenr = ED_space_clip_get_clip_frame_number(sc);
/* get rectangle from operator */
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
- ED_clip_point_stable_pos(C, rect.xmin, rect.ymin, &rectf.xmin, &rectf.ymin);
- ED_clip_point_stable_pos(C, rect.xmax, rect.ymax, &rectf.xmax, &rectf.ymax);
+ ED_clip_point_stable_pos(sc, ar, rect.xmin, rect.ymin, &rectf.xmin, &rectf.ymin);
+ ED_clip_point_stable_pos(sc, ar, rect.xmax, rect.ymax, &rectf.xmax, &rectf.ymax);
mode = RNA_int_get(op->ptr, "gesture_mode");
extend = RNA_boolean_get(op->ptr, "extend");
@@ -361,7 +363,7 @@ static int border_select_exec(bContext *C, wmOperator *op)
MovieTrackingMarker *marker = BKE_tracking_marker_get(track, framenr);
if (MARKER_VISIBLE(sc, track, marker)) {
- if (BLI_in_rctf(&rectf, marker->pos[0], marker->pos[1])) {
+ if (BLI_rctf_isect_pt_v(&rectf, marker->pos)) {
if (mode == GESTURE_MODAL_SELECT)
BKE_tracking_track_flag_set(track, TRACK_AREA_ALL, SELECT);
else
@@ -411,9 +413,11 @@ void CLIP_OT_select_border(wmOperatorType *ot)
/********************** lasso select operator *********************/
-static int do_lasso_select_marker(bContext *C, int mcords[][2], short moves, short select)
+static int do_lasso_select_marker(bContext *C, const int mcords[][2], const short moves, short select)
{
SpaceClip *sc = CTX_wm_space_clip(C);
+ ARegion *ar = CTX_wm_region(C);
+
MovieClip *clip = ED_space_clip_get_clip(sc);
MovieTracking *tracking = &clip->tracking;
MovieTrackingTrack *track;
@@ -435,9 +439,9 @@ static int do_lasso_select_marker(bContext *C, int mcords[][2], short moves, sho
float screen_co[2];
/* marker in screen coords */
- ED_clip_point_stable_pos__reverse(C, marker->pos, screen_co);
+ ED_clip_point_stable_pos__reverse(sc, ar, marker->pos, screen_co);
- if (BLI_in_rcti(&rect, screen_co[0], screen_co[1]) &&
+ if (BLI_rcti_isect_pt(&rect, screen_co[0], screen_co[1]) &&
BLI_lasso_is_point_inside(mcords, moves, screen_co[0], screen_co[1], V2D_IS_CLIPPED))
{
if (select)
@@ -465,7 +469,7 @@ static int do_lasso_select_marker(bContext *C, int mcords[][2], short moves, sho
static int clip_lasso_select_exec(bContext *C, wmOperator *op)
{
int mcords_tot;
- int (*mcords)[2] = WM_gesture_lasso_path_to_array(C, op, &mcords_tot);
+ const int (*mcords)[2] = WM_gesture_lasso_path_to_array(C, op, &mcords_tot);
if (mcords) {
short select;
@@ -519,6 +523,8 @@ static int marker_inside_ellipse(MovieTrackingMarker *marker, float offset[2], f
static int circle_select_exec(bContext *C, wmOperator *op)
{
SpaceClip *sc = CTX_wm_space_clip(C);
+ ARegion *ar = CTX_wm_region(C);
+
MovieClip *clip = ED_space_clip_get_clip(sc);
MovieTracking *tracking = &clip->tracking;
MovieTrackingTrack *track;
@@ -535,13 +541,13 @@ static int circle_select_exec(bContext *C, wmOperator *op)
mode = RNA_int_get(op->ptr, "gesture_mode");
/* compute ellipse and position in unified coordinates */
- ED_space_clip_get_size(C, &width, &height);
- ED_space_clip_get_zoom(C, &zoomx, &zoomy);
+ ED_space_clip_get_size(sc, &width, &height);
+ ED_space_clip_get_zoom(sc, ar, &zoomx, &zoomy);
ellipse[0] = width * zoomx / radius;
ellipse[1] = height * zoomy / radius;
- ED_clip_point_stable_pos(C, x, y, &offset[0], &offset[1]);
+ ED_clip_point_stable_pos(sc, ar, x, y, &offset[0], &offset[1]);
/* do selection */
track = tracksbase->first;
diff --git a/source/blender/editors/space_console/console_draw.c b/source/blender/editors/space_console/console_draw.c
index 2897c5d7d67..4c2f0ac73d4 100644
--- a/source/blender/editors/space_console/console_draw.c
+++ b/source/blender/editors/space_console/console_draw.c
@@ -191,7 +191,7 @@ static int console_textview_line_color(struct TextViewContext *tvc, unsigned cha
}
-static int console_textview_main__internal(struct SpaceConsole *sc, struct ARegion *ar, int draw, int mval[2], void **mouse_pick, int *pos_pick)
+static int console_textview_main__internal(struct SpaceConsole *sc, ARegion *ar, int draw, int mval[2], void **mouse_pick, int *pos_pick)
{
ConsoleLine cl_dummy = {NULL};
int ret = 0;
@@ -226,19 +226,19 @@ static int console_textview_main__internal(struct SpaceConsole *sc, struct ARegi
}
-void console_textview_main(struct SpaceConsole *sc, struct ARegion *ar)
+void console_textview_main(struct SpaceConsole *sc, ARegion *ar)
{
int mval[2] = {INT_MAX, INT_MAX};
console_textview_main__internal(sc, ar, 1, mval, NULL, NULL);
}
-int console_textview_height(struct SpaceConsole *sc, struct ARegion *ar)
+int console_textview_height(struct SpaceConsole *sc, ARegion *ar)
{
int mval[2] = {INT_MAX, INT_MAX};
return console_textview_main__internal(sc, ar, 0, mval, NULL, NULL);
}
-int console_char_pick(struct SpaceConsole *sc, struct ARegion *ar, int mval[2])
+int console_char_pick(struct SpaceConsole *sc, ARegion *ar, int mval[2])
{
int pos_pick = 0;
void *mouse_pick = NULL;
diff --git a/source/blender/editors/space_console/space_console.c b/source/blender/editors/space_console/space_console.c
index 460b31d69bd..b7ef278275e 100644
--- a/source/blender/editors/space_console/space_console.c
+++ b/source/blender/editors/space_console/space_console.c
@@ -142,7 +142,7 @@ static void console_main_area_init(wmWindowManager *wm, ARegion *ar)
/* always keep the bottom part of the view aligned, less annoying */
if (prev_y_min != ar->v2d.cur.ymin) {
- const float cur_y_range = ar->v2d.cur.ymax - ar->v2d.cur.ymin;
+ const float cur_y_range = BLI_rctf_size_y(&ar->v2d.cur);
ar->v2d.cur.ymin = prev_y_min;
ar->v2d.cur.ymax = prev_y_min + cur_y_range;
}
@@ -326,6 +326,7 @@ static void console_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "CONSOLE_OT_autocomplete", SPACEKEY, KM_PRESS, KM_CTRL, 0); /* python operator - space_text.py */
#endif
+ WM_keymap_add_item(keymap, "CONSOLE_OT_copy_as_script", CKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
WM_keymap_add_item(keymap, "CONSOLE_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "CONSOLE_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
#ifdef __APPLE__
diff --git a/source/blender/editors/space_file/file_intern.h b/source/blender/editors/space_file/file_intern.h
index a07a560328c..e5c6a839380 100644
--- a/source/blender/editors/space_file/file_intern.h
+++ b/source/blender/editors/space_file/file_intern.h
@@ -66,6 +66,7 @@ void FILE_OT_select_border(struct wmOperatorType *ot);
void FILE_OT_select_bookmark(struct wmOperatorType *ot);
void FILE_OT_bookmark_add(struct wmOperatorType *ot);
void FILE_OT_delete_bookmark(struct wmOperatorType *ot);
+void FILE_OT_reset_recent(wmOperatorType *ot);
void FILE_OT_hidedot(struct wmOperatorType *ot);
void FILE_OT_execute(struct wmOperatorType *ot);
void FILE_OT_cancel(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c
index 2d778b94216..7a364eb8685 100644
--- a/source/blender/editors/space_file/file_ops.c
+++ b/source/blender/editors/space_file/file_ops.c
@@ -64,13 +64,8 @@
#include <stdio.h>
#include <ctype.h>
-/* for events */
-#define NOTACTIVEFILE 0
-#define ACTIVATE 1
-#define INACTIVATE 2
-
/* ---------- FILE SELECTION ------------ */
-static FileSelection find_file_mouse_rect(SpaceFile *sfile, struct ARegion *ar, const rcti *rect)
+static FileSelection find_file_mouse_rect(SpaceFile *sfile, ARegion *ar, const rcti *rect)
{
FileSelection sel;
float fxmin, fymin, fxmax, fymax;
@@ -81,7 +76,7 @@ static FileSelection find_file_mouse_rect(SpaceFile *sfile, struct ARegion *ar,
UI_view2d_region_to_view(v2d, rect->xmin, rect->ymin, &fxmin, &fymin);
UI_view2d_region_to_view(v2d, rect->xmax, rect->ymax, &fxmax, &fymax);
- BLI_init_rcti(&rect_view, (int)(v2d->tot.xmin + fxmin), (int)(v2d->tot.xmin + fxmax), (int)(v2d->tot.ymax - fymin), (int)(v2d->tot.ymax - fymax));
+ BLI_rcti_init(&rect_view, (int)(v2d->tot.xmin + fxmin), (int)(v2d->tot.xmin + fxmax), (int)(v2d->tot.ymax - fymin), (int)(v2d->tot.ymax - fymax));
sel = ED_fileselect_layout_offset_rect(sfile->layout, &rect_view);
@@ -156,7 +151,7 @@ static FileSelection file_selection_get(bContext *C, const rcti *rect, short fil
return sel;
}
-static FileSelect file_select_do(bContext *C, int selected_idx)
+static FileSelect file_select_do(bContext *C, int selected_idx, short do_diropen)
{
FileSelect retval = FILE_SELECT_NOTHING;
SpaceFile *sfile = CTX_wm_space_file(C);
@@ -172,8 +167,12 @@ static FileSelect file_select_do(bContext *C, int selected_idx)
params->active_file = selected_idx;
if (S_ISDIR(file->type)) {
+ if (do_diropen == FALSE) {
+ params->file[0] = '\0';
+ retval = FILE_SELECT_DIR;
+ }
/* the path is too long and we are not going up! */
- if (strcmp(file->relname, "..") && strlen(params->dir) + strlen(file->relname) >= FILE_MAX) {
+ else if (strcmp(file->relname, "..") && strlen(params->dir) + strlen(file->relname) >= FILE_MAX) {
// XXX error("Path too long, cannot enter this directory");
}
else {
@@ -202,7 +201,7 @@ static FileSelect file_select_do(bContext *C, int selected_idx)
}
-static FileSelect file_select(bContext *C, const rcti *rect, FileSelType select, short fill)
+static FileSelect file_select(bContext *C, const rcti *rect, FileSelType select, short fill, short do_diropen)
{
SpaceFile *sfile = CTX_wm_space_file(C);
FileSelect retval = FILE_SELECT_NOTHING;
@@ -219,7 +218,7 @@ static FileSelect file_select(bContext *C, const rcti *rect, FileSelType select,
if ((sel.last >= 0) && ((select == FILE_SEL_ADD) || (select == FILE_SEL_TOGGLE))) {
/* Check last selection, if selected, act on the file or dir */
if (filelist_is_selected(sfile->files, sel.last, check_type)) {
- retval = file_select_do(C, sel.last);
+ retval = file_select_do(C, sel.last, do_diropen);
}
}
@@ -243,12 +242,9 @@ static int file_border_select_modal(bContext *C, wmOperator *op, wmEvent *event)
if (result == OPERATOR_RUNNING_MODAL) {
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
- BLI_isect_rcti(&(ar->v2d.mask), &rect, &rect);
+ BLI_rcti_isect(&(ar->v2d.mask), &rect, &rect);
sel = file_selection_get(C, &rect, 0);
if ( (sel.first != params->sel_first) || (sel.last != params->sel_last) ) {
@@ -277,10 +273,7 @@ static int file_border_select_exec(bContext *C, wmOperator *op)
int extend = RNA_boolean_get(op->ptr, "extend");
short select = (RNA_int_get(op->ptr, "gesture_mode") == GESTURE_MODAL_SELECT);
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
if (!extend) {
SpaceFile *sfile = CTX_wm_space_file(C);
@@ -288,9 +281,9 @@ static int file_border_select_exec(bContext *C, wmOperator *op)
file_deselect_all(sfile, SELECTED_FILE);
}
- BLI_isect_rcti(&(ar->v2d.mask), &rect, &rect);
+ BLI_rcti_isect(&(ar->v2d.mask), &rect, &rect);
- ret = file_select(C, &rect, select ? FILE_SEL_ADD : FILE_SEL_REMOVE, 0);
+ ret = file_select(C, &rect, select ? FILE_SEL_ADD : FILE_SEL_REMOVE, FALSE, FALSE);
if (FILE_SELECT_DIR == ret) {
WM_event_add_notifier(C, NC_SPACE | ND_SPACE_FILE_LIST, NULL);
}
@@ -314,7 +307,7 @@ void FILE_OT_select_border(wmOperatorType *ot)
ot->poll = ED_operator_file_active;
ot->cancel = WM_border_select_cancel;
- /* rna */
+ /* properties */
WM_operator_properties_gesture_border(ot, 1);
}
@@ -326,6 +319,7 @@ static int file_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
rcti rect;
int extend = RNA_boolean_get(op->ptr, "extend");
int fill = RNA_boolean_get(op->ptr, "fill");
+ int do_diropen = RNA_boolean_get(op->ptr, "open");
if (ar->regiontype != RGN_TYPE_WINDOW)
return OPERATOR_CANCELLED;
@@ -333,13 +327,13 @@ static int file_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
rect.xmin = rect.xmax = event->mval[0];
rect.ymin = rect.ymax = event->mval[1];
- if (!BLI_in_rcti(&ar->v2d.mask, rect.xmin, rect.ymin))
+ if (!BLI_rcti_isect_pt(&ar->v2d.mask, rect.xmin, rect.ymin))
return OPERATOR_CANCELLED;
/* single select, deselect all selected first */
if (!extend) file_deselect_all(sfile, SELECTED_FILE);
- ret = file_select(C, &rect, extend ? FILE_SEL_TOGGLE : FILE_SEL_ADD, fill);
+ ret = file_select(C, &rect, extend ? FILE_SEL_TOGGLE : FILE_SEL_ADD, fill, do_diropen);
if (FILE_SELECT_DIR == ret)
WM_event_add_notifier(C, NC_SPACE | ND_SPACE_FILE_LIST, NULL);
else if (FILE_SELECT_FILE == ret)
@@ -353,6 +347,8 @@ static int file_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
void FILE_OT_select(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Activate/Select File";
ot->description = "Activate/select file";
@@ -362,9 +358,13 @@ void FILE_OT_select(wmOperatorType *ot)
ot->invoke = file_select_invoke;
ot->poll = ED_operator_file_active;
- /* rna */
- RNA_def_boolean(ot->srna, "extend", 0, "Extend", "Extend selection instead of deselecting everything first");
- RNA_def_boolean(ot->srna, "fill", 0, "Fill", "Select everything beginning with the last selection");
+ /* properties */
+ prop = RNA_def_boolean(ot->srna, "extend", FALSE, "Extend", "Extend selection instead of deselecting everything first");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ prop = RNA_def_boolean(ot->srna, "fill", FALSE, "Fill", "Select everything beginning with the last selection");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ prop = RNA_def_boolean(ot->srna, "open", TRUE, "Open", "Open a directory when selecting it");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
static int file_select_all_exec(bContext *C, wmOperator *UNUSED(op))
@@ -409,9 +409,7 @@ void FILE_OT_select_all_toggle(wmOperatorType *ot)
ot->exec = file_select_all_exec;
ot->poll = ED_operator_file_active;
- /* rna */
-
-
+ /* properties */
}
/* ---------- BOOKMARKS ----------- */
@@ -437,6 +435,8 @@ static int bookmark_select_exec(bContext *C, wmOperator *op)
void FILE_OT_select_bookmark(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Select Directory";
ot->description = "Select a bookmarked directory";
@@ -446,7 +446,9 @@ void FILE_OT_select_bookmark(wmOperatorType *ot)
ot->exec = bookmark_select_exec;
ot->poll = ED_operator_file_active;
- RNA_def_string(ot->srna, "dir", "", 256, "Dir", "");
+ /* properties */
+ prop = RNA_def_string(ot->srna, "dir", "", FILE_MAXDIR, "Dir", "");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
static int bookmark_add_exec(bContext *C, wmOperator *UNUSED(op))
@@ -459,7 +461,7 @@ static int bookmark_add_exec(bContext *C, wmOperator *UNUSED(op))
if (params->dir[0] != '\0') {
char name[FILE_MAX];
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, params->dir, 0, 1);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, params->dir, FS_INSERT_SAVE);
BLI_make_file_string("/", name, BLI_get_folder_create(BLENDER_USER_CONFIG, NULL), BLENDER_BOOKMARK_FILE);
fsmenu_write_file(fsmenu, name);
}
@@ -503,6 +505,8 @@ static int bookmark_delete_exec(bContext *C, wmOperator *op)
void FILE_OT_delete_bookmark(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Delete Bookmark";
ot->description = "Delete selected bookmark";
@@ -512,7 +516,38 @@ void FILE_OT_delete_bookmark(wmOperatorType *ot)
ot->exec = bookmark_delete_exec;
ot->poll = ED_operator_file_active;
- RNA_def_int(ot->srna, "index", -1, -1, 20000, "Index", "", -1, 20000);
+ /* properties */
+ prop = RNA_def_int(ot->srna, "index", -1, -1, 20000, "Index", "", -1, 20000);
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+}
+
+static int reset_recent_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ ScrArea *sa = CTX_wm_area(C);
+ char name[FILE_MAX];
+ struct FSMenu *fsmenu = fsmenu_get();
+
+ while (fsmenu_get_entry(fsmenu, FS_CATEGORY_RECENT, 0) != NULL) {
+ fsmenu_remove_entry(fsmenu, FS_CATEGORY_RECENT, 0);
+ }
+ BLI_make_file_string("/", name, BLI_get_folder_create(BLENDER_USER_CONFIG, NULL), BLENDER_BOOKMARK_FILE);
+ fsmenu_write_file(fsmenu, name);
+ ED_area_tag_redraw(sa);
+
+ return OPERATOR_FINISHED;
+}
+
+void FILE_OT_reset_recent(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Reset Recent";
+ ot->description = "Reset Recent files";
+ ot->idname = "FILE_OT_reset_recent";
+
+ /* api callbacks */
+ ot->exec = reset_recent_exec;
+ ot->poll = ED_operator_file_active;
+
}
int file_highlight_set(SpaceFile *sfile, ARegion *ar, int mx, int my)
@@ -531,7 +566,7 @@ int file_highlight_set(SpaceFile *sfile, ARegion *ar, int mx, int my)
mx -= ar->winrct.xmin;
my -= ar->winrct.ymin;
- if (BLI_in_rcti(&ar->v2d.mask, mx, my)) {
+ if (BLI_rcti_isect_pt(&ar->v2d.mask, mx, my)) {
float fx, fy;
int active_file;
@@ -770,8 +805,9 @@ int file_exec(bContext *C, wmOperator *exec_op)
file_sfile_to_operator(op, sfile, filepath);
- if (BLI_exists(sfile->params->dir))
- fsmenu_insert_entry(fsmenu_get(), FS_CATEGORY_RECENT, sfile->params->dir, 0, 1);
+ if (BLI_exists(sfile->params->dir)) {
+ fsmenu_insert_entry(fsmenu_get(), FS_CATEGORY_RECENT, sfile->params->dir, FS_INSERT_SAVE | FS_INSERT_FIRST);
+ }
BLI_make_file_string(G.main->name, filepath, BLI_get_folder_create(BLENDER_USER_CONFIG, NULL), BLENDER_BOOKMARK_FILE);
fsmenu_write_file(fsmenu_get(), filepath);
@@ -794,7 +830,8 @@ void FILE_OT_execute(struct wmOperatorType *ot)
/* api callbacks */
ot->exec = file_exec;
ot->poll = file_operator_poll;
-
+
+ /* properties */
prop = RNA_def_boolean(ot->srna, "need_active", 0, "Need Active",
"Only execute if there's an active selected file in the file list");
RNA_def_property_flag(prop, PROP_SKIP_SAVE);
@@ -1098,6 +1135,8 @@ int file_directory_new_exec(bContext *C, wmOperator *op)
void FILE_OT_directory_new(struct wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Create New Directory";
ot->description = "Create a new directory";
@@ -1108,7 +1147,8 @@ void FILE_OT_directory_new(struct wmOperatorType *ot)
ot->exec = file_directory_new_exec;
ot->poll = ED_operator_file_active; /* <- important, handler is on window level */
- RNA_def_string_dir_path(ot->srna, "directory", "", FILE_MAX, "Directory", "Name of new directory");
+ prop = RNA_def_string_dir_path(ot->srna, "directory", "", FILE_MAX, "Directory", "Name of new directory");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
@@ -1119,7 +1159,7 @@ static void file_expand_directory(bContext *C)
if (sfile->params) {
/* TODO, what about // when relbase isn't valid? */
- if (G.relbase_valid && strncmp(sfile->params->dir, "//", 2) == 0) {
+ if (G.relbase_valid && BLI_path_is_rel(sfile->params->dir)) {
BLI_path_abs(sfile->params->dir, G.main->name);
}
else if (sfile->params->dir[0] == '~') {
@@ -1277,7 +1317,7 @@ void FILE_OT_hidedot(struct wmOperatorType *ot)
ot->poll = ED_operator_file_active; /* <- important, handler is on window level */
}
-struct ARegion *file_buttons_region(struct ScrArea *sa)
+ARegion *file_buttons_region(ScrArea *sa)
{
ARegion *ar, *arnew;
diff --git a/source/blender/editors/space_file/file_panels.c b/source/blender/editors/space_file/file_panels.c
index 51bd660e126..a7054909aaa 100644
--- a/source/blender/editors/space_file/file_panels.c
+++ b/source/blender/editors/space_file/file_panels.c
@@ -67,14 +67,14 @@ static void file_panel_cb(bContext *C, void *arg_entry, void *UNUSED(arg_v))
WM_operator_properties_free(&ptr);
}
-static void file_panel_category(const bContext *C, Panel *pa, FSMenuCategory category, short *nr, int icon, int allow_delete, int reverse)
+static void file_panel_category(const bContext *C, Panel *pa, FSMenuCategory category, short *nr, int icon, int allow_delete)
{
SpaceFile *sfile = CTX_wm_space_file(C);
uiBlock *block;
uiBut *but;
uiLayout *box, *col;
struct FSMenu *fsmenu = fsmenu_get();
- int i, i_iter, nentries = fsmenu_get_nentries(fsmenu, category);
+ int i, nentries = fsmenu_get_nentries(fsmenu, category);
/* reset each time */
*nr = -1;
@@ -89,13 +89,11 @@ static void file_panel_category(const bContext *C, Panel *pa, FSMenuCategory cat
box = uiLayoutBox(pa->layout);
col = uiLayoutColumn(box, TRUE);
- for (i_iter = 0; i_iter < nentries; ++i_iter) {
+ for (i = 0; i < nentries; ++i) {
char dir[FILE_MAX];
char temp[FILE_MAX];
uiLayout *layout = uiLayoutRow(col, FALSE);
char *entry;
-
- i = reverse ? nentries - (i_iter + 1) : i_iter;
entry = fsmenu_get_entry(fsmenu, category, i);
@@ -134,7 +132,7 @@ static void file_panel_system(const bContext *C, Panel *pa)
SpaceFile *sfile = CTX_wm_space_file(C);
if (sfile)
- file_panel_category(C, pa, FS_CATEGORY_SYSTEM, &sfile->systemnr, ICON_DISK_DRIVE, 0, 0);
+ file_panel_category(C, pa, FS_CATEGORY_SYSTEM, &sfile->systemnr, ICON_DISK_DRIVE, 0);
}
static void file_panel_bookmarks(const bContext *C, Panel *pa)
@@ -147,17 +145,22 @@ static void file_panel_bookmarks(const bContext *C, Panel *pa)
uiItemO(row, IFACE_("Add"), ICON_ZOOMIN, "file.bookmark_add");
uiItemL(row, NULL, ICON_NONE);
- file_panel_category(C, pa, FS_CATEGORY_BOOKMARKS, &sfile->bookmarknr, ICON_BOOKMARKS, 1, 0);
+ file_panel_category(C, pa, FS_CATEGORY_BOOKMARKS, &sfile->bookmarknr, ICON_BOOKMARKS, 1);
}
}
static void file_panel_recent(const bContext *C, Panel *pa)
{
SpaceFile *sfile = CTX_wm_space_file(C);
+ uiLayout *row;
if (sfile) {
if (!(U.uiflag & USER_HIDE_RECENT) ) {
- file_panel_category(C, pa, FS_CATEGORY_RECENT, &sfile->recentnr, ICON_FILE_FOLDER, 0, 1);
+ row = uiLayoutRow(pa->layout, FALSE);
+ uiItemO(row, IFACE_("Reset"), ICON_X, "file.reset_recent");
+ uiItemL(row, NULL, ICON_NONE);
+
+ file_panel_category(C, pa, FS_CATEGORY_RECENT, &sfile->recentnr, ICON_FILE_FOLDER, 0);
}
}
}
diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c
index fb12ea8417a..ce522ec7e3f 100644
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@ -351,11 +351,11 @@ void filelist_filter(FileList *filelist)
{
int num_filtered = 0;
int i, j;
-
+
if (!filelist->filelist)
return;
- // How many files are left after filter ?
+ /* How many files are left after filter ? */
for (i = 0; i < filelist->numfiles; ++i) {
struct direntry *file = &filelist->filelist[i];
if (filelist->filterf(file, filelist->dir, filelist->filter, filelist->hide_dot) ) {
@@ -383,10 +383,13 @@ void filelist_init_icons(void)
short x, y, k;
ImBuf *bbuf;
ImBuf *ibuf;
+
+ BLI_assert(G.background == FALSE);
+
#ifdef WITH_HEADLESS
bbuf = NULL;
#else
- bbuf = IMB_ibImageFromMemory((unsigned char *)datatoc_prvicons, datatoc_prvicons_size, IB_rect, "<splash>");
+ bbuf = IMB_ibImageFromMemory((unsigned char *)datatoc_prvicons_png, datatoc_prvicons_png_size, IB_rect, NULL, "<splash>");
#endif
if (bbuf) {
for (y = 0; y < SPECIAL_IMG_ROWS; y++) {
@@ -408,6 +411,9 @@ void filelist_init_icons(void)
void filelist_free_icons(void)
{
int i;
+
+ BLI_assert(G.background == FALSE);
+
for (i = 0; i < SPECIAL_IMG_MAX; ++i) {
IMB_freeImBuf(gSpecialFileImages[i]);
gSpecialFileImages[i] = NULL;
@@ -428,7 +434,7 @@ void folderlist_popdir(struct ListBase *folderlist, char *dir)
folder = folderlist->last;
if (folder) {
- // remove the current directory
+ /* remove the current directory */
MEM_freeN(folder->foldername);
BLI_freelinkN(folderlist, folder);
@@ -438,7 +444,7 @@ void folderlist_popdir(struct ListBase *folderlist, char *dir)
BLI_strncpy(dir, prev_dir, FILE_MAXDIR);
}
}
- // delete the folder next or use setdir directly before PREVIOUS OP
+ /* delete the folder next or use setdir directly before PREVIOUS OP */
}
void folderlist_pushdir(ListBase *folderlist, const char *dir)
@@ -446,21 +452,21 @@ void folderlist_pushdir(ListBase *folderlist, const char *dir)
struct FolderList *folder, *previous_folder;
previous_folder = folderlist->last;
- // check if already exists
+ /* check if already exists */
if (previous_folder && previous_folder->foldername) {
if (BLI_path_cmp(previous_folder->foldername, dir) == 0) {
return;
}
}
- // create next folder element
+ /* create next folder element */
folder = (FolderList *)MEM_mallocN(sizeof(FolderList), "FolderList");
folder->foldername = (char *)MEM_mallocN(sizeof(char) * (strlen(dir) + 1), "foldername");
folder->foldername[0] = '\0';
BLI_strncpy(folder->foldername, dir, FILE_MAXDIR);
- // add it to the end of the list
+ /* add it to the end of the list */
BLI_addtail(folderlist, folder);
}
@@ -468,16 +474,16 @@ int folderlist_clear_next(struct SpaceFile *sfile)
{
struct FolderList *folder;
- // if there is no folder_next there is nothing we can clear
+ /* if there is no folder_next there is nothing we can clear */
if (!sfile->folders_next)
return 0;
- // if previous_folder, next_folder or refresh_folder operators are executed it doesn't clear folder_next
+ /* if previous_folder, next_folder or refresh_folder operators are executed it doesn't clear folder_next */
folder = sfile->folders_prev->last;
if ((!folder) || (BLI_path_cmp(folder->foldername, sfile->params->dir) == 0))
return 0;
- // eventually clear flist->folders_next
+ /* eventually clear flist->folders_next */
return 1;
}
@@ -615,7 +621,10 @@ short filelist_changed(struct FileList *filelist)
ImBuf *filelist_getimage(struct FileList *filelist, int index)
{
ImBuf *ibuf = NULL;
- int fidx = 0;
+ int fidx = 0;
+
+ BLI_assert(G.background == FALSE);
+
if ( (index < 0) || (index >= filelist->numfiltered) ) {
return NULL;
}
@@ -629,7 +638,10 @@ ImBuf *filelist_geticon(struct FileList *filelist, int index)
{
ImBuf *ibuf = NULL;
struct direntry *file = NULL;
- int fidx = 0;
+ int fidx = 0;
+
+ BLI_assert(G.background == FALSE);
+
if ( (index < 0) || (index >= filelist->numfiltered) ) {
return NULL;
}
@@ -736,7 +748,9 @@ static int file_is_blend_backup(const char *str)
a = strlen(str);
b = 7;
- if (a == 0 || b >= a) ;
+ if (a == 0 || b >= a) {
+ /* pass */
+ }
else {
char *loc;
@@ -1334,7 +1348,7 @@ static void thumbnails_free(void *tjv)
void thumbnails_start(struct FileList *filelist, const struct bContext *C)
{
- wmJob *steve;
+ wmJob *wm_job;
ThumbnailJob *tj;
int idx;
@@ -1356,13 +1370,14 @@ void thumbnails_start(struct FileList *filelist, const struct bContext *C)
BKE_reports_init(&tj->reports, RPT_PRINT);
/* setup job */
- steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), filelist, "Thumbnails", 0);
- WM_jobs_customdata(steve, tj, thumbnails_free);
- WM_jobs_timer(steve, 0.5, NC_WINDOW, NC_WINDOW);
- WM_jobs_callbacks(steve, thumbnails_startjob, NULL, thumbnails_update, NULL);
+ wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), filelist, "Thumbnails",
+ 0, WM_JOB_TYPE_FILESEL_THUMBNAIL);
+ WM_jobs_customdata_set(wm_job, tj, thumbnails_free);
+ WM_jobs_timer(wm_job, 0.5, NC_WINDOW, NC_WINDOW);
+ WM_jobs_callbacks(wm_job, thumbnails_startjob, NULL, thumbnails_update, NULL);
/* start the job */
- WM_jobs_start(CTX_wm_manager(C), steve);
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
}
void thumbnails_stop(struct FileList *filelist, const struct bContext *C)
@@ -1372,5 +1387,5 @@ void thumbnails_stop(struct FileList *filelist, const struct bContext *C)
int thumbnails_running(struct FileList *filelist, const struct bContext *C)
{
- return WM_jobs_test(CTX_wm_manager(C), filelist);
+ return WM_jobs_test(CTX_wm_manager(C), filelist, WM_JOB_TYPE_FILESEL_THUMBNAIL);
}
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c
index adb3e7acca5..1fa89e5db9a 100644
--- a/source/blender/editors/space_file/filesel.c
+++ b/source/blender/editors/space_file/filesel.c
@@ -117,7 +117,7 @@ short ED_fileselect_set_params(SpaceFile *sfile)
const short is_directory = (RNA_struct_find_property(op->ptr, "directory") != NULL);
const short is_relative_path = (RNA_struct_find_property(op->ptr, "relative_path") != NULL);
- BLI_strncpy(params->title, RNA_struct_ui_name(op->type->srna), sizeof(params->title));
+ BLI_strncpy_utf8(params->title, RNA_struct_ui_name(op->type->srna), sizeof(params->title));
if (RNA_struct_find_property(op->ptr, "filemode"))
params->type = RNA_int_get(op->ptr, "filemode");
@@ -265,17 +265,17 @@ void ED_fileselect_reset_params(SpaceFile *sfile)
sfile->params->title[0] = '\0';
}
-int ED_fileselect_layout_numfiles(FileLayout *layout, struct ARegion *ar)
+int ED_fileselect_layout_numfiles(FileLayout *layout, ARegion *ar)
{
int numfiles;
if (layout->flag & FILE_LAYOUT_HOR) {
- int width = (int)(ar->v2d.cur.xmax - ar->v2d.cur.xmin - 2 * layout->tile_border_x);
+ int width = (int)(BLI_rctf_size_x(&ar->v2d.cur) - 2 * layout->tile_border_x);
numfiles = (int)((float)width / (float)layout->tile_w + 0.5f);
return numfiles * layout->rows;
}
else {
- int height = (int)(ar->v2d.cur.ymax - ar->v2d.cur.ymin - 2 * layout->tile_border_y);
+ int height = (int)(BLI_rctf_size_y(&ar->v2d.cur) - 2 * layout->tile_border_y);
numfiles = (int)((float)height / (float)layout->tile_h + 0.5f);
return numfiles * layout->columns;
}
@@ -472,7 +472,7 @@ static void column_widths(struct FileList *files, struct FileLayout *layout)
}
}
-void ED_fileselect_init_layout(struct SpaceFile *sfile, struct ARegion *ar)
+void ED_fileselect_init_layout(struct SpaceFile *sfile, ARegion *ar)
{
FileSelectParams *params = ED_fileselect_get_params(sfile);
FileLayout *layout = NULL;
@@ -503,7 +503,7 @@ void ED_fileselect_init_layout(struct SpaceFile *sfile, struct ARegion *ar)
layout->prv_border_y = 6;
layout->tile_w = layout->prv_w + 2 * layout->prv_border_x;
layout->tile_h = layout->prv_h + 2 * layout->prv_border_y + textheight;
- layout->width = (int)(v2d->cur.xmax - v2d->cur.xmin - 2 * layout->tile_border_x);
+ layout->width = (int)(BLI_rctf_size_x(&v2d->cur) - 2 * layout->tile_border_x);
layout->columns = layout->width / (layout->tile_w + 2 * layout->tile_border_x);
if (layout->columns > 0)
layout->rows = numfiles / layout->columns + 1; // XXX dirty, modulo is zero
@@ -522,7 +522,7 @@ void ED_fileselect_init_layout(struct SpaceFile *sfile, struct ARegion *ar)
layout->prv_border_x = 0;
layout->prv_border_y = 0;
layout->tile_h = textheight * 3 / 2;
- layout->height = (int)(v2d->cur.ymax - v2d->cur.ymin - 2 * layout->tile_border_y);
+ layout->height = (int)(BLI_rctf_size_y(&v2d->cur) - 2 * layout->tile_border_y);
layout->rows = layout->height / (layout->tile_h + 2 * layout->tile_border_y);
column_widths(sfile->files, layout);
@@ -559,7 +559,7 @@ void ED_fileselect_init_layout(struct SpaceFile *sfile, struct ARegion *ar)
layout->dirty = FALSE;
}
-FileLayout *ED_fileselect_get_layout(struct SpaceFile *sfile, struct ARegion *ar)
+FileLayout *ED_fileselect_get_layout(struct SpaceFile *sfile, ARegion *ar)
{
if (!sfile->layout) {
ED_fileselect_init_layout(sfile, ar);
diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c
index 0366043aaa0..66cda3082ea 100644
--- a/source/blender/editors/space_file/fsmenu.c
+++ b/source/blender/editors/space_file/fsmenu.c
@@ -97,163 +97,177 @@ FSMenu *fsmenu_get(void)
static FSMenuEntry *fsmenu_get_category(struct FSMenu *fsmenu, FSMenuCategory category)
{
- FSMenuEntry *fsms = NULL;
+ FSMenuEntry *fsm_head = NULL;
switch (category) {
case FS_CATEGORY_SYSTEM:
- fsms = fsmenu->fsmenu_system;
+ fsm_head = fsmenu->fsmenu_system;
break;
case FS_CATEGORY_BOOKMARKS:
- fsms = fsmenu->fsmenu_bookmarks;
+ fsm_head = fsmenu->fsmenu_bookmarks;
break;
case FS_CATEGORY_RECENT:
- fsms = fsmenu->fsmenu_recent;
+ fsm_head = fsmenu->fsmenu_recent;
break;
}
- return fsms;
+ return fsm_head;
}
-static void fsmenu_set_category(struct FSMenu *fsmenu, FSMenuCategory category, FSMenuEntry *fsms)
+static void fsmenu_set_category(struct FSMenu *fsmenu, FSMenuCategory category, FSMenuEntry *fsm_head)
{
switch (category) {
case FS_CATEGORY_SYSTEM:
- fsmenu->fsmenu_system = fsms;
+ fsmenu->fsmenu_system = fsm_head;
break;
case FS_CATEGORY_BOOKMARKS:
- fsmenu->fsmenu_bookmarks = fsms;
+ fsmenu->fsmenu_bookmarks = fsm_head;
break;
case FS_CATEGORY_RECENT:
- fsmenu->fsmenu_recent = fsms;
+ fsmenu->fsmenu_recent = fsm_head;
break;
}
}
int fsmenu_get_nentries(struct FSMenu *fsmenu, FSMenuCategory category)
{
- FSMenuEntry *fsme;
+ FSMenuEntry *fsm_iter;
int count = 0;
- for (fsme = fsmenu_get_category(fsmenu, category); fsme; fsme = fsme->next)
+ for (fsm_iter = fsmenu_get_category(fsmenu, category); fsm_iter; fsm_iter = fsm_iter->next) {
count++;
+ }
return count;
}
char *fsmenu_get_entry(struct FSMenu *fsmenu, FSMenuCategory category, int idx)
{
- FSMenuEntry *fsme;
+ FSMenuEntry *fsm_iter;
- for (fsme = fsmenu_get_category(fsmenu, category); fsme && idx; fsme = fsme->next)
+ for (fsm_iter = fsmenu_get_category(fsmenu, category); fsm_iter && idx; fsm_iter = fsm_iter->next) {
idx--;
+ }
- return fsme ? fsme->path : NULL;
+ return fsm_iter ? fsm_iter->path : NULL;
}
short fsmenu_can_save(struct FSMenu *fsmenu, FSMenuCategory category, int idx)
{
- FSMenuEntry *fsme;
+ FSMenuEntry *fsm_iter;
- for (fsme = fsmenu_get_category(fsmenu, category); fsme && idx; fsme = fsme->next)
+ for (fsm_iter = fsmenu_get_category(fsmenu, category); fsm_iter && idx; fsm_iter = fsm_iter->next) {
idx--;
+ }
- return fsme ? fsme->save : 0;
+ return fsm_iter ? fsm_iter->save : 0;
}
-void fsmenu_insert_entry(struct FSMenu *fsmenu, FSMenuCategory category, const char *path, int sorted, short save)
+void fsmenu_insert_entry(struct FSMenu *fsmenu, FSMenuCategory category, const char *path, FSMenuInsert flag)
{
- FSMenuEntry *prev;
- FSMenuEntry *fsme;
- FSMenuEntry *fsms;
+ FSMenuEntry *fsm_prev;
+ FSMenuEntry *fsm_iter;
+ FSMenuEntry *fsm_head;
- fsms = fsmenu_get_category(fsmenu, category);
- prev = fsme = fsms;
+ fsm_head = fsmenu_get_category(fsmenu, category);
+ fsm_prev = fsm_head; /* this is odd and not really correct? */
- for (; fsme; prev = fsme, fsme = fsme->next) {
- if (fsme->path) {
- const int cmp_ret = BLI_path_cmp(path, fsme->path);
+ for (fsm_iter = fsm_head; fsm_iter; fsm_prev = fsm_iter, fsm_iter = fsm_iter->next) {
+ if (fsm_iter->path) {
+ const int cmp_ret = BLI_path_cmp(path, fsm_iter->path);
if (cmp_ret == 0) {
+ if (flag & FS_INSERT_FIRST) {
+ if (fsm_iter != fsm_head) {
+ fsm_prev->next = fsm_iter->next;
+ fsm_iter->next = fsm_head;
+ fsmenu_set_category(fsmenu, category, fsm_iter);
+ }
+ }
return;
}
- else if (sorted && cmp_ret < 0) {
+ else if ((flag & FS_INSERT_SORTED) && cmp_ret < 0) {
break;
}
}
else {
- // if we're bookmarking this, file should come
- // before the last separator, only automatically added
- // current dir go after the last sep.
- if (save) {
+ /* if we're bookmarking this, file should come
+ * before the last separator, only automatically added
+ * current dir go after the last sep. */
+ if (flag & FS_INSERT_SAVE) {
break;
}
}
}
-
- fsme = MEM_mallocN(sizeof(*fsme), "fsme");
- fsme->path = BLI_strdup(path);
- fsme->save = save;
- if (prev) {
- fsme->next = prev->next;
- prev->next = fsme;
+ fsm_iter = MEM_mallocN(sizeof(*fsm_iter), "fsme");
+ fsm_iter->path = BLI_strdup(path);
+ fsm_iter->save = (flag & FS_INSERT_SAVE) != 0;
+
+ if (fsm_prev) {
+ if (flag & FS_INSERT_FIRST) {
+ fsm_iter->next = fsm_head;
+ fsmenu_set_category(fsmenu, category, fsm_iter);
+ }
+ else {
+ fsm_iter->next = fsm_prev->next;
+ fsm_prev->next = fsm_iter;
+ }
}
else {
- fsme->next = fsms;
- fsmenu_set_category(fsmenu, category, fsme);
+ fsm_iter->next = fsm_head;
+ fsmenu_set_category(fsmenu, category, fsm_iter);
}
}
void fsmenu_remove_entry(struct FSMenu *fsmenu, FSMenuCategory category, int idx)
{
- FSMenuEntry *prev = NULL, *fsme = NULL;
- FSMenuEntry *fsms = fsmenu_get_category(fsmenu, category);
+ FSMenuEntry *fsm_prev = NULL;
+ FSMenuEntry *fsm_iter;
+ FSMenuEntry *fsm_head;
+
+ fsm_head = fsmenu_get_category(fsmenu, category);
- for (fsme = fsms; fsme && idx; prev = fsme, fsme = fsme->next)
+ for (fsm_iter = fsm_head; fsm_iter && idx; fsm_prev = fsm_iter, fsm_iter = fsm_iter->next)
idx--;
- if (fsme) {
+ if (fsm_iter) {
/* you should only be able to remove entries that were
* not added by default, like windows drives.
* also separators (where path == NULL) shouldn't be removed */
- if (fsme->save && fsme->path) {
+ if (fsm_iter->save && fsm_iter->path) {
/* remove fsme from list */
- if (prev) {
- prev->next = fsme->next;
+ if (fsm_prev) {
+ fsm_prev->next = fsm_iter->next;
}
else {
- fsms = fsme->next;
- fsmenu_set_category(fsmenu, category, fsms);
+ fsm_head = fsm_iter->next;
+ fsmenu_set_category(fsmenu, category, fsm_head);
}
/* free entry */
- MEM_freeN(fsme->path);
- MEM_freeN(fsme);
+ MEM_freeN(fsm_iter->path);
+ MEM_freeN(fsm_iter);
}
}
}
void fsmenu_write_file(struct FSMenu *fsmenu, const char *filename)
{
- FSMenuEntry *fsme = NULL;
- int nskip = 0;
+ FSMenuEntry *fsm_iter = NULL;
+ int nwritten = 0;
FILE *fp = BLI_fopen(filename, "w");
if (!fp) return;
fprintf(fp, "[Bookmarks]\n");
- for (fsme = fsmenu_get_category(fsmenu, FS_CATEGORY_BOOKMARKS); fsme; fsme = fsme->next) {
- if (fsme->path && fsme->save) {
- fprintf(fp, "%s\n", fsme->path);
+ for (fsm_iter = fsmenu_get_category(fsmenu, FS_CATEGORY_BOOKMARKS); fsm_iter; fsm_iter = fsm_iter->next) {
+ if (fsm_iter->path && fsm_iter->save) {
+ fprintf(fp, "%s\n", fsm_iter->path);
}
}
fprintf(fp, "[Recent]\n");
- nskip = fsmenu_get_nentries(fsmenu, FS_CATEGORY_RECENT) - FSMENU_RECENT_MAX;
- // skip first entries if list too long
- for (fsme = fsmenu_get_category(fsmenu, FS_CATEGORY_RECENT); fsme && (nskip > 0); fsme = fsme->next, --nskip) {
- /* pass */
- }
- for (; fsme; fsme = fsme->next) {
- if (fsme->path && fsme->save) {
- fprintf(fp, "%s\n", fsme->path);
+ for (fsm_iter = fsmenu_get_category(fsmenu, FS_CATEGORY_RECENT); fsm_iter && (nwritten < FSMENU_RECENT_MAX); fsm_iter = fsm_iter->next, ++nwritten) {
+ if (fsm_iter->path && fsm_iter->save) {
+ fprintf(fp, "%s\n", fsm_iter->path);
}
}
fclose(fp);
@@ -288,7 +302,7 @@ void fsmenu_read_bookmarks(struct FSMenu *fsmenu, const char *filename)
if (BLI_exists(line))
#endif
{
- fsmenu_insert_entry(fsmenu, category, line, 0, 1);
+ fsmenu_insert_entry(fsmenu, category, line, FS_INSERT_SAVE);
}
}
}
@@ -315,16 +329,16 @@ void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks)
tmps[2] = '\\';
tmps[3] = 0;
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, tmps, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, tmps, FS_INSERT_SORTED);
}
}
/* Adding Desktop and My Documents */
if (read_bookmarks) {
SHGetSpecialFolderPath(0, line, CSIDL_PERSONAL, 0);
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, FS_INSERT_SORTED);
SHGetSpecialFolderPath(0, line, CSIDL_DESKTOPDIRECTORY, 0);
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, FS_INSERT_SORTED);
}
}
#else
@@ -347,7 +361,7 @@ void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks)
FSRefMakePath(&dir, path, FILE_MAX);
if (strcmp((char *)path, "/home") && strcmp((char *)path, "/net")) {
/* /net and /home are meaningless on OSX, home folders are stored in /Users */
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, (char *)path, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, (char *)path, FS_INSERT_SORTED);
}
}
@@ -357,26 +371,26 @@ void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks)
home = getenv("HOME");
if (read_bookmarks && home) {
BLI_snprintf(line, 256, "%s/", home);
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, FS_INSERT_SORTED);
BLI_snprintf(line, 256, "%s/Desktop/", home);
if (BLI_exists(line)) {
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, FS_INSERT_SORTED);
}
BLI_snprintf(line, 256, "%s/Documents/", home);
if (BLI_exists(line)) {
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, FS_INSERT_SORTED);
}
BLI_snprintf(line, 256, "%s/Pictures/", home);
if (BLI_exists(line)) {
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, FS_INSERT_SORTED);
}
BLI_snprintf(line, 256, "%s/Music/", home);
if (BLI_exists(line)) {
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, FS_INSERT_SORTED);
}
BLI_snprintf(line, 256, "%s/Movies/", home);
if (BLI_exists(line)) {
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, FS_INSERT_SORTED);
}
}
#else
@@ -409,7 +423,7 @@ void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks)
if (!CFStringGetCString(pathString, line, 256, kCFStringEncodingASCII))
continue;
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, line, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, line, FS_INSERT_SORTED);
CFRelease(pathString);
CFRelease(cfURL);
@@ -436,7 +450,7 @@ void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks)
FSRefMakePath(&dir, path, FILE_MAX);
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, (char *)path, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, (char *)path, FS_INSERT_SORTED);
}
/* Finally get user favorite places */
@@ -459,7 +473,7 @@ void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks)
if (!CFStringGetCString(pathString, line, 256, kCFStringEncodingASCII))
continue;
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, FS_INSERT_SORTED);
CFRelease(pathString);
CFRelease(cfURL);
@@ -477,10 +491,10 @@ void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks)
if (read_bookmarks && home) {
BLI_snprintf(line, FILE_MAXDIR, "%s/", home);
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, FS_INSERT_SORTED);
BLI_snprintf(line, FILE_MAXDIR, "%s/Desktop/", home);
if (BLI_exists(line)) {
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_BOOKMARKS, line, FS_INSERT_SORTED);
}
}
@@ -505,10 +519,11 @@ void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks)
len = strlen(mnt->mnt_dir);
if (len && mnt->mnt_dir[len - 1] != '/') {
BLI_snprintf(line, FILE_MAXDIR, "%s/", mnt->mnt_dir);
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, line, 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, line, FS_INSERT_SORTED);
+ }
+ else {
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, mnt->mnt_dir, FS_INSERT_SORTED);
}
- else
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, mnt->mnt_dir, 1, 0);
found = 1;
}
@@ -520,7 +535,7 @@ void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks)
/* fallback */
if (!found)
- fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, "/", 1, 0);
+ fsmenu_insert_entry(fsmenu, FS_CATEGORY_SYSTEM, "/", FS_INSERT_SORTED);
}
}
#endif
@@ -530,15 +545,17 @@ void fsmenu_read_system(struct FSMenu *fsmenu, int read_bookmarks)
static void fsmenu_free_category(struct FSMenu *fsmenu, FSMenuCategory category)
{
- FSMenuEntry *fsme = fsmenu_get_category(fsmenu, category);
+ FSMenuEntry *fsm_iter = fsmenu_get_category(fsmenu, category);
- while (fsme) {
- FSMenuEntry *n = fsme->next;
+ while (fsm_iter) {
+ FSMenuEntry *fsm_next = fsm_iter->next;
- if (fsme->path) MEM_freeN(fsme->path);
- MEM_freeN(fsme);
+ if (fsm_iter->path) {
+ MEM_freeN(fsm_iter->path);
+ }
+ MEM_freeN(fsm_iter);
- fsme = n;
+ fsm_iter = fsm_next;
}
}
diff --git a/source/blender/editors/space_file/fsmenu.h b/source/blender/editors/space_file/fsmenu.h
index d7576d71933..30730578085 100644
--- a/source/blender/editors/space_file/fsmenu.h
+++ b/source/blender/editors/space_file/fsmenu.h
@@ -43,6 +43,12 @@ typedef enum FSMenuCategory {
FS_CATEGORY_RECENT
} FSMenuCategory;
+typedef enum FSMenuInsert {
+ FS_INSERT_SORTED = (1 << 0),
+ FS_INSERT_SAVE = (1 << 1),
+ FS_INSERT_FIRST = (1 << 2) /* moves the item to the front of the list when its not already there */
+} FSMenuInsert;
+
struct FSMenu;
struct FSMenu *fsmenu_get(void);
@@ -59,7 +65,7 @@ char *fsmenu_get_entry(struct FSMenu *fsmenu, FSMenuCategory category, int index
* Duplicate entries are not added.
* \param sorted Should entry be inserted in sorted order?
*/
-void fsmenu_insert_entry(struct FSMenu *fsmenu, FSMenuCategory category, const char *path, int sorted, short save);
+void fsmenu_insert_entry(struct FSMenu *fsmenu, FSMenuCategory category, const char *path, const FSMenuInsert flag);
/** Return whether the entry was created by the user and can be saved and deleted */
short fsmenu_can_save(struct FSMenu *fsmenu, FSMenuCategory category, int index);
diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c
index 95d5483b42c..4fe4ad133a9 100644
--- a/source/blender/editors/space_file/space_file.c
+++ b/source/blender/editors/space_file/space_file.c
@@ -48,6 +48,7 @@
#include "BKE_context.h"
#include "BKE_screen.h"
+#include "BKE_global.h"
#include "ED_space_api.h"
#include "ED_screen.h"
@@ -251,7 +252,7 @@ static void file_refresh(const bContext *C, ScrArea *UNUSED(sa))
static void file_listener(ScrArea *sa, wmNotifier *wmn)
{
- /* SpaceFile* sfile = (SpaceFile*)sa->spacedata.first; */
+ /* SpaceFile *sfile = (SpaceFile *)sa->spacedata.first; */
/* context changes */
switch (wmn->category) {
@@ -283,8 +284,6 @@ static void file_main_area_init(wmWindowManager *wm, ARegion *ar)
keymap = WM_keymap_find(wm->defaultconf, "File Browser Main", SPACE_FILE, 0);
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
-
-
}
static void file_main_area_listener(ARegion *ar, wmNotifier *wmn)
@@ -387,6 +386,7 @@ static void file_operatortypes(void)
WM_operatortype_append(FILE_OT_bookmark_toggle);
WM_operatortype_append(FILE_OT_bookmark_add);
WM_operatortype_append(FILE_OT_delete_bookmark);
+ WM_operatortype_append(FILE_OT_reset_recent);
WM_operatortype_append(FILE_OT_hidedot);
WM_operatortype_append(FILE_OT_filenum);
WM_operatortype_append(FILE_OT_directory_new);
@@ -417,12 +417,26 @@ static void file_keymap(struct wmKeyConfig *keyconf)
keymap = WM_keymap_find(keyconf, "File Browser Main", SPACE_FILE, 0);
kmi = WM_keymap_add_item(keymap, "FILE_OT_execute", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
RNA_boolean_set(kmi->ptr, "need_active", TRUE);
+
+ /* left mouse selects and opens */
WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, 0, 0);
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, KM_SHIFT, 0);
RNA_boolean_set(kmi->ptr, "extend", TRUE);
kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, KM_ALT, 0);
RNA_boolean_set(kmi->ptr, "extend", TRUE);
RNA_boolean_set(kmi->ptr, "fill", TRUE);
+
+ /* right mouse selects without opening */
+ kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_CLICK, 0, 0);
+ RNA_boolean_set(kmi->ptr, "open", FALSE);
+ kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_CLICK, KM_SHIFT, 0);
+ RNA_boolean_set(kmi->ptr, "extend", TRUE);
+ RNA_boolean_set(kmi->ptr, "open", FALSE);
+ kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_CLICK, KM_ALT, 0);
+ RNA_boolean_set(kmi->ptr, "extend", TRUE);
+ RNA_boolean_set(kmi->ptr, "fill", TRUE);
+ RNA_boolean_set(kmi->ptr, "open", FALSE);
+
WM_keymap_add_item(keymap, "FILE_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "FILE_OT_refresh", PADPERIOD, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "FILE_OT_select_border", BKEY, KM_PRESS, 0, 0);
@@ -524,7 +538,7 @@ static void file_ui_area_draw(const bContext *C, ARegion *ar)
glClear(GL_COLOR_BUFFER_BIT);
/* scrolling here is just annoying, disable it */
- ar->v2d.cur.ymax = ar->v2d.cur.ymax - ar->v2d.cur.ymin;
+ ar->v2d.cur.ymax = BLI_rctf_size_y(&ar->v2d.cur);
ar->v2d.cur.ymin = 0;
/* set view2d view matrix for scrolling (without scrollers) */
@@ -624,12 +638,18 @@ void ED_file_init(void)
fsmenu_read_bookmarks(fsmenu_get(), name);
}
- filelist_init_icons();
+ if (G.background == FALSE) {
+ filelist_init_icons();
+ }
+
IMB_thumb_makedirs();
}
void ED_file_exit(void)
{
fsmenu_free(fsmenu_get());
- filelist_free_icons();
+
+ if (G.background == FALSE) {
+ filelist_free_icons();
+ }
}
diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c
index efe62eaf495..0d56b02e086 100644
--- a/source/blender/editors/space_graph/graph_buttons.c
+++ b/source/blender/editors/space_graph/graph_buttons.c
@@ -69,12 +69,6 @@
#include "graph_intern.h" // own include
-/* XXX */
-
-/* temporary definition for limits of float number buttons (FLT_MAX tends to infinity with old system) */
-#define UI_FLT_MAX 10000.0f
-
-
/* ******************* graph editor space & buttons ************** */
#define B_REDR 1
diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c
index 870e9bb8168..ef2e56afca0 100644
--- a/source/blender/editors/space_graph/graph_draw.c
+++ b/source/blender/editors/space_graph/graph_draw.c
@@ -88,7 +88,7 @@ static void draw_fcurve_modifier_controls_envelope(FModifier *fcm, View2D *v2d)
{
FMod_Envelope *env = (FMod_Envelope *)fcm->data;
FCM_EnvelopeData *fed;
- const float fac = 0.05f * (v2d->cur.xmax - v2d->cur.xmin);
+ const float fac = 0.05f * BLI_rctf_size_x(&v2d->cur);
int i;
/* draw two black lines showing the standard reference levels */
@@ -137,7 +137,7 @@ static void draw_fcurve_modifier_controls_envelope(FModifier *fcm, View2D *v2d)
static void draw_fcurve_vertices_keyframes(FCurve *fcu, SpaceIpo *UNUSED(sipo), View2D *v2d, short edit, short sel)
{
BezTriple *bezt = fcu->bezt;
- const float fac = 0.05f * (v2d->cur.xmax - v2d->cur.xmin);
+ const float fac = 0.05f * BLI_rctf_size_x(&v2d->cur);
int i;
/* we use bgl points not standard gl points, to workaround vertex
@@ -235,7 +235,7 @@ static void draw_fcurve_vertices_handles(FCurve *fcu, SpaceIpo *sipo, View2D *v2
* if a Graph Editor option to only show handles of selected keys is on.
*/
if (!sel_handle_only || BEZSELECTED(bezt) ) {
- if ( (!prevbezt && (bezt->ipo == BEZT_IPO_BEZ)) || (prevbezt && (prevbezt->ipo == BEZT_IPO_BEZ)) ) {
+ if ((!prevbezt && (bezt->ipo == BEZT_IPO_BEZ)) || (prevbezt && (prevbezt->ipo == BEZT_IPO_BEZ))) {
if ((bezt->f1 & SELECT) == sel) /* && v2d->cur.xmin < bezt->vec[0][0] < v2d->cur.xmax)*/
draw_fcurve_handle_control(bezt->vec[0][0], bezt->vec[0][1], xscale, yscale, hsize);
}
@@ -378,8 +378,8 @@ static void draw_fcurve_handles(SpaceIpo *sipo, FCurve *fcu)
}
else {
/* only draw first handle if previous segment was had handles, and selection is ok */
- if ( ((bezt->f1 & SELECT) == sel) &&
- ( (!prevbezt && (bezt->ipo == BEZT_IPO_BEZ)) || (prevbezt && (prevbezt->ipo == BEZT_IPO_BEZ)) ) )
+ if (((bezt->f1 & SELECT) == sel) &&
+ ((!prevbezt && (bezt->ipo == BEZT_IPO_BEZ)) || (prevbezt && (prevbezt->ipo == BEZT_IPO_BEZ))))
{
fp = bezt->vec[0];
UI_GetThemeColor3ubv(basecol + bezt->h1, col);
@@ -390,8 +390,8 @@ static void draw_fcurve_handles(SpaceIpo *sipo, FCurve *fcu)
}
/* only draw second handle if this segment is bezier, and selection is ok */
- if ( ((bezt->f3 & SELECT) == sel) &&
- (bezt->ipo == BEZT_IPO_BEZ) )
+ if (((bezt->f3 & SELECT) == sel) &&
+ (bezt->ipo == BEZT_IPO_BEZ))
{
fp = bezt->vec[1];
UI_GetThemeColor3ubv(basecol + bezt->h2, col);
@@ -846,11 +846,11 @@ void graph_draw_curves(bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGrid
/* 1) draw curve line */
{
/* set color/drawing style for curve itself */
- if ( ((fcu->grp) && (fcu->grp->flag & AGRP_PROTECTED)) || (fcu->flag & FCURVE_PROTECTED) ) {
+ if (((fcu->grp) && (fcu->grp->flag & AGRP_PROTECTED)) || (fcu->flag & FCURVE_PROTECTED)) {
/* protected curves (non editable) are drawn with dotted lines */
setlinestyle(2);
}
- if ( ((fcu->grp) && (fcu->grp->flag & AGRP_MUTED)) || (fcu->flag & FCURVE_MUTED) ) {
+ if (((fcu->grp) && (fcu->grp->flag & AGRP_MUTED)) || (fcu->flag & FCURVE_MUTED)) {
/* muted curves are drawn in a grayish hue */
// XXX should we have some variations?
UI_ThemeColorShade(TH_HEADER, 50);
@@ -878,7 +878,7 @@ void graph_draw_curves(bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGrid
*/
draw_fcurve_curve(ac, ale->id, fcu, &ar->v2d, grid);
}
- else if ( ((fcu->bezt) || (fcu->fpt)) && (fcu->totvert) ) {
+ else if (((fcu->bezt) || (fcu->fpt)) && (fcu->totvert)) {
/* just draw curve based on defined data (i.e. no modifiers) */
if (fcu->bezt)
draw_fcurve_curve_bezts(ac, ale->id, fcu, &ar->v2d);
@@ -908,7 +908,7 @@ void graph_draw_curves(bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGrid
}
}
}
- else if ( ((fcu->bezt) || (fcu->fpt)) && (fcu->totvert) ) {
+ else if (((fcu->bezt) || (fcu->fpt)) && (fcu->totvert)) {
/* apply unit mapping */
ANIM_unit_mapping_apply_fcurve(ac->scene, ale->id, fcu, 0);
diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c
index dbc66b81874..c5fa64d3a70 100644
--- a/source/blender/editors/space_graph/graph_edit.c
+++ b/source/blender/editors/space_graph/graph_edit.c
@@ -86,6 +86,8 @@
void get_graph_keyframe_extents(bAnimContext *ac, float *xmin, float *xmax, float *ymin, float *ymax,
const short do_sel_only, const short include_handles)
{
+ Scene *scene = ac->scene;
+
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
int filter;
@@ -94,7 +96,7 @@ void get_graph_keyframe_extents(bAnimContext *ac, float *xmin, float *xmax, floa
filter = (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
- /* set large values to try to override */
+ /* set large values initial values that will be easy to override */
if (xmin) *xmin = 999999999.0f;
if (xmax) *xmax = -999999999.0f;
if (ymin) *ymin = 999999999.0f;
@@ -102,6 +104,8 @@ void get_graph_keyframe_extents(bAnimContext *ac, float *xmin, float *xmax, floa
/* check if any channels to set range with */
if (anim_data.first) {
+ short foundBounds = FALSE;
+
/* go through channels, finding max extents */
for (ale = anim_data.first; ale; ale = ale->next) {
AnimData *adt = ANIM_nla_mapping_get(ac, ale);
@@ -110,29 +114,39 @@ void get_graph_keyframe_extents(bAnimContext *ac, float *xmin, float *xmax, floa
float unitFac;
/* get range */
- calc_fcurve_bounds(fcu, &txmin, &txmax, &tymin, &tymax, do_sel_only, include_handles);
-
- /* apply NLA scaling */
- if (adt) {
- txmin = BKE_nla_tweakedit_remap(adt, txmin, NLATIME_CONVERT_MAP);
- txmax = BKE_nla_tweakedit_remap(adt, txmax, NLATIME_CONVERT_MAP);
+ if (calc_fcurve_bounds(fcu, &txmin, &txmax, &tymin, &tymax, do_sel_only, include_handles)) {
+ /* apply NLA scaling */
+ if (adt) {
+ txmin = BKE_nla_tweakedit_remap(adt, txmin, NLATIME_CONVERT_MAP);
+ txmax = BKE_nla_tweakedit_remap(adt, txmax, NLATIME_CONVERT_MAP);
+ }
+
+ /* apply unit corrections */
+ unitFac = ANIM_unit_mapping_get_factor(ac->scene, ale->id, fcu, 0);
+ tymin *= unitFac;
+ tymax *= unitFac;
+
+ /* try to set cur using these values, if they're more extreme than previously set values */
+ if ((xmin) && (txmin < *xmin)) *xmin = txmin;
+ if ((xmax) && (txmax > *xmax)) *xmax = txmax;
+ if ((ymin) && (tymin < *ymin)) *ymin = tymin;
+ if ((ymax) && (tymax > *ymax)) *ymax = tymax;
+
+ foundBounds = TRUE;
}
-
- /* apply unit corrections */
- unitFac = ANIM_unit_mapping_get_factor(ac->scene, ale->id, fcu, 0);
- tymin *= unitFac;
- tymax *= unitFac;
-
- /* try to set cur using these values, if they're more extreme than previously set values */
- if ((xmin) && (txmin < *xmin)) *xmin = txmin;
- if ((xmax) && (txmax > *xmax)) *xmax = txmax;
- if ((ymin) && (tymin < *ymin)) *ymin = tymin;
- if ((ymax) && (tymax > *ymax)) *ymax = tymax;
}
/* ensure that the extents are not too extreme that view implodes...*/
- if ((xmin && xmax) && (fabsf(*xmax - *xmin) < 0.1f)) *xmax += 0.1f;
- if ((ymin && ymax) && (fabsf(*ymax - *ymin) < 0.1f)) *ymax += 0.1f;
+ if (foundBounds) {
+ if ((xmin && xmax) && (fabsf(*xmax - *xmin) < 0.1f)) *xmax += 0.1f;
+ if ((ymin && ymax) && (fabsf(*ymax - *ymin) < 0.1f)) *ymax += 0.1f;
+ }
+ else {
+ if (xmin) *xmin = (float)PSFRA;
+ if (xmax) *xmax = (float)PEFRA;
+ if (ymin) *ymin = -5;
+ if (ymax) *ymax = 5;
+ }
/* free memory */
BLI_freelistN(&anim_data);
@@ -140,8 +154,8 @@ void get_graph_keyframe_extents(bAnimContext *ac, float *xmin, float *xmax, floa
else {
/* set default range */
if (ac->scene) {
- if (xmin) *xmin = (float)ac->scene->r.sfra;
- if (xmax) *xmax = (float)ac->scene->r.efra;
+ if (xmin) *xmin = (float)PSFRA;
+ if (xmax) *xmax = (float)PEFRA;
}
else {
if (xmin) *xmin = -5;
@@ -202,33 +216,28 @@ void GRAPH_OT_previewrange_set(wmOperatorType *ot)
static int graphkeys_viewall(bContext *C, const short do_sel_only, const short include_handles)
{
bAnimContext ac;
- View2D *v2d;
float extra;
+ rctf cur_new;
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
return OPERATOR_CANCELLED;
- v2d = &ac.ar->v2d;
/* set the horizontal range, with an extra offset so that the extreme keys will be in view */
- get_graph_keyframe_extents(&ac,
- &v2d->cur.xmin, &v2d->cur.xmax,
- &v2d->cur.ymin, &v2d->cur.ymax,
- do_sel_only, include_handles);
-
- extra = 0.1f * (v2d->cur.xmax - v2d->cur.xmin);
- v2d->cur.xmin -= extra;
- v2d->cur.xmax += extra;
+ get_graph_keyframe_extents(&ac,
+ &cur_new.xmin, &cur_new.xmax,
+ &cur_new.ymin, &cur_new.ymax,
+ do_sel_only, include_handles);
- extra = 0.1f * (v2d->cur.ymax - v2d->cur.ymin);
- v2d->cur.ymin -= extra;
- v2d->cur.ymax += extra;
+ extra = 0.1f * BLI_rctf_size_x(&cur_new);
+ cur_new.xmin -= extra;
+ cur_new.xmax += extra;
- /* do View2D syncing */
- UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
+ extra = 0.1f * BLI_rctf_size_y(&cur_new);
+ cur_new.ymin -= extra;
+ cur_new.ymax += extra;
- /* set notifier that things have changed */
- ED_area_tag_redraw(CTX_wm_area(C));
+ UI_view2d_smooth_view(C, ac.ar, &cur_new);
return OPERATOR_FINISHED;
}
@@ -260,8 +269,8 @@ void GRAPH_OT_view_all(wmOperatorType *ot)
/* api callbacks */
ot->exec = graphkeys_viewall_exec;
- ot->poll = ED_operator_graphedit_active; // XXX: unchecked poll to get fsamples working too, but makes modifier damage trickier...
-
+ ot->poll = ED_operator_graphedit_active; /* XXX: unchecked poll to get fsamples working too, but makes modifier damage trickier... */
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -279,7 +288,7 @@ void GRAPH_OT_view_selected(wmOperatorType *ot)
/* api callbacks */
ot->exec = graphkeys_view_selected_exec;
- ot->poll = ED_operator_graphedit_active; // XXX: unchecked poll to get fsamples working too, but makes modifier damage trickier...
+ ot->poll = ED_operator_graphedit_active; /* XXX: unchecked poll to get fsamples working too, but makes modifier damage trickier... */
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -1214,7 +1223,8 @@ void GRAPH_OT_sound_bake(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE | SOUNDFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | SOUNDFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
RNA_def_float(ot->srna, "low", 0.0f, 0.0, 100000.0, "Lowest frequency", "", 0.1, 1000.00);
RNA_def_float(ot->srna, "high", 100000.0, 0.0, 100000.0, "Highest frequency", "", 0.1, 1000.00);
RNA_def_float(ot->srna, "attack", 0.005, 0.0, 2.0, "Attack time", "", 0.01, 0.1);
@@ -1641,7 +1651,7 @@ static int graphkeys_euler_filter_exec(bContext *C, wmOperator *op)
int f;
/* sanity check: ensure that there are enough F-Curves to work on in this group */
- // TODO: also enforce assumption that there be a full set of keyframes at each position by ensuring that totvert counts are same?
+ /* TODO: also enforce assumption that there be a full set of keyframes at each position by ensuring that totvert counts are same? */
if (ELEM3(NULL, euf->fcurves[0], euf->fcurves[1], euf->fcurves[2])) {
/* report which components are missing */
BKE_reportf(op->reports, RPT_WARNING,
@@ -1655,9 +1665,9 @@ static int graphkeys_euler_filter_exec(bContext *C, wmOperator *op)
failed++;
continue;
}
-
+
/* simple method: just treat any difference between keys of greater than 180 degrees as being a flip */
- // FIXME: there are more complicated methods that will be needed to fix more cases than just some
+ /* FIXME: there are more complicated methods that will be needed to fix more cases than just some */
for (f = 0; f < 3; f++) {
FCurve *fcu = euf->fcurves[f];
BezTriple *bezt, *prev = NULL;
@@ -1814,12 +1824,18 @@ void GRAPH_OT_frame_jump(wmOperatorType *ot)
/* defines for snap keyframes tool */
static EnumPropertyItem prop_graphkeys_snap_types[] = {
- {GRAPHKEYS_SNAP_CFRA, "CFRA", 0, "Current Frame", ""},
- {GRAPHKEYS_SNAP_VALUE, "VALUE", 0, "Cursor Value", ""},
- {GRAPHKEYS_SNAP_NEAREST_FRAME, "NEAREST_FRAME", 0, "Nearest Frame", ""}, // XXX as single entry?
- {GRAPHKEYS_SNAP_NEAREST_SECOND, "NEAREST_SECOND", 0, "Nearest Second", ""}, // XXX as single entry?
- {GRAPHKEYS_SNAP_NEAREST_MARKER, "NEAREST_MARKER", 0, "Nearest Marker", ""},
- {GRAPHKEYS_SNAP_HORIZONTAL, "HORIZONTAL", 0, "Flatten Handles", ""},
+ {GRAPHKEYS_SNAP_CFRA, "CFRA", 0, "Current Frame",
+ "Snap selected keyframes to the current frame"},
+ {GRAPHKEYS_SNAP_VALUE, "VALUE", 0, "Cursor Value",
+ "Set values of selected keyframes to the cursor value (Y/Horizontal component)"},
+ {GRAPHKEYS_SNAP_NEAREST_FRAME, "NEAREST_FRAME", 0, "Nearest Frame",
+ "Snap selected keyframes to the nearest (whole) frame (use to fix accidental sub-frame offsets)"},
+ {GRAPHKEYS_SNAP_NEAREST_SECOND, "NEAREST_SECOND", 0, "Nearest Second",
+ "Snap selected keyframes to the nearest second"},
+ {GRAPHKEYS_SNAP_NEAREST_MARKER, "NEAREST_MARKER", 0, "Nearest Marker",
+ "Snap selected keyframes to the nearest marker"},
+ {GRAPHKEYS_SNAP_HORIZONTAL, "HORIZONTAL", 0, "Flatten Handles",
+ "Flatten handles for a smoother transition"},
{0, NULL, 0, NULL, NULL}
};
@@ -1922,11 +1938,16 @@ void GRAPH_OT_snap(wmOperatorType *ot)
/* defines for mirror keyframes tool */
static EnumPropertyItem prop_graphkeys_mirror_types[] = {
- {GRAPHKEYS_MIRROR_CFRA, "CFRA", 0, "By Times over Current Frame", ""},
- {GRAPHKEYS_MIRROR_VALUE, "VALUE", 0, "By Values over Cursor Value", ""},
- {GRAPHKEYS_MIRROR_YAXIS, "YAXIS", 0, "By Times over Time=0", ""},
- {GRAPHKEYS_MIRROR_XAXIS, "XAXIS", 0, "By Values over Value=0", ""},
- {GRAPHKEYS_MIRROR_MARKER, "MARKER", 0, "By Times over First Selected Marker", ""},
+ {GRAPHKEYS_MIRROR_CFRA, "CFRA", 0, "By Times over Current Frame",
+ "Flip times of selected keyframes using the current frame as the mirror line"},
+ {GRAPHKEYS_MIRROR_VALUE, "VALUE", 0, "By Values over Cursor Value",
+ "Flip values of selected keyframes using the cursor value (Y/Horizontal component) as the mirror line"},
+ {GRAPHKEYS_MIRROR_YAXIS, "YAXIS", 0, "By Times over Time=0",
+ "Flip times of selected keyframes, effectively reversing the order they appear in"},
+ {GRAPHKEYS_MIRROR_XAXIS, "XAXIS", 0, "By Values over Value=0",
+ "Flip values of selected keyframes (i.e. negative values become positive, and vice versa)"},
+ {GRAPHKEYS_MIRROR_MARKER, "MARKER", 0, "By Times over First Selected Marker",
+ "Flip times of selected keyframes using the first selected marker as the reference point"},
{0, NULL, 0, NULL, NULL}
};
@@ -2217,10 +2238,10 @@ static int graph_fmodifier_copy_exec(bContext *C, wmOperator *op)
/* if this exists, call the copy F-Modifiers API function */
if (ale && ale->data) {
FCurve *fcu = (FCurve *)ale->data;
-
- // TODO: when 'active' vs 'all' boolean is added, change last param!
+
+ /* TODO: when 'active' vs 'all' boolean is added, change last param! */
ok = ANIM_fmodifiers_copy_to_buf(&fcu->modifiers, 0);
-
+
/* free temp data now */
MEM_freeN(ale);
}
@@ -2272,11 +2293,11 @@ static int graph_fmodifier_paste_exec(bContext *C, wmOperator *op)
/* paste modifiers */
for (ale = anim_data.first; ale; ale = ale->next) {
FCurve *fcu = (FCurve *)ale->data;
-
- // TODO: do we want to replace existing modifiers? add user pref for that!
+
+ /* TODO: do we want to replace existing modifiers? add user pref for that! */
ok += ANIM_fmodifiers_paste_from_buf(&fcu->modifiers, 0);
}
-
+
/* clean up */
BLI_freelistN(&anim_data);
diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c
index 62aebcb4edc..08b13b49f55 100644
--- a/source/blender/editors/space_graph/graph_ops.c
+++ b/source/blender/editors/space_graph/graph_ops.c
@@ -179,7 +179,7 @@ static void GRAPH_OT_cursor_set(wmOperatorType *ot)
/* rna */
RNA_def_int(ot->srna, "frame", 0, MINAFRAME, MAXFRAME, "Frame", "", MINAFRAME, MAXFRAME);
- RNA_def_float(ot->srna, "value", 0, FLT_MIN, FLT_MAX, "Value", "", -100.0f, 100.0f);
+ RNA_def_float(ot->srna, "value", 0, -FLT_MAX, FLT_MAX, "Value", "", -100.0f, 100.0f);
}
/* ************************** registration - operator types **********************************/
@@ -372,7 +372,7 @@ static void graphedit_keymap_keyframes(wmKeyConfig *keyconf, wmKeyMap *keymap)
/* insertkey */
WM_keymap_add_item(keymap, "GRAPH_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "GRAPH_OT_click_insert", LEFTMOUSE, KM_CLICK, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "GRAPH_OT_click_insert", ACTIONMOUSE, KM_CLICK, KM_CTRL, 0);
/* copy/paste */
WM_keymap_add_item(keymap, "GRAPH_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
diff --git a/source/blender/editors/space_graph/graph_select.c b/source/blender/editors/space_graph/graph_select.c
index 33e32363cf5..e2fc1657379 100644
--- a/source/blender/editors/space_graph/graph_select.c
+++ b/source/blender/editors/space_graph/graph_select.c
@@ -316,10 +316,7 @@ static int graphkeys_borderselect_exec(bContext *C, wmOperator *op)
incl_handles = RNA_boolean_get(op->ptr, "include_handles");
/* get settings from operator */
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
/* selection 'mode' depends on whether borderselect region only matters on one axis */
if (RNA_boolean_get(op->ptr, "axis_range")) {
@@ -328,7 +325,7 @@ static int graphkeys_borderselect_exec(bContext *C, wmOperator *op)
* - the frame-range select option is favored over the channel one (x over y), as frame-range one is often
* used for tweaking timing when "blocking", while channels is not that useful...
*/
- if ((rect.xmax - rect.xmin) >= (rect.ymax - rect.ymin))
+ if ((BLI_rcti_size_x(&rect)) >= (BLI_rcti_size_y(&rect)))
mode = BEZT_OK_FRAMERANGE;
else
mode = BEZT_OK_VALUERANGE;
@@ -848,6 +845,8 @@ static int graphkeys_select_leftright_invoke(bContext *C, wmOperator *op, wmEven
void GRAPH_OT_select_leftright(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Select Left/Right";
ot->idname = "GRAPH_OT_select_leftright";
@@ -863,7 +862,10 @@ void GRAPH_OT_select_leftright(wmOperatorType *ot)
/* id-props */
ot->prop = RNA_def_enum(ot->srna, "mode", prop_graphkeys_leftright_select_types, GRAPHKEYS_LRSEL_TEST, "Mode", "");
- RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", "");
+ RNA_def_property_flag(ot->prop, PROP_SKIP_SAVE);
+
+ prop = RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", "");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
/* ******************** Mouse-Click Select Operator *********************** */
@@ -940,7 +942,7 @@ static void nearest_fcurve_vert_store(ListBase *matches, View2D *v2d, FCurve *fc
/* if there is already a point for the F-Curve, check if this point is closer than that was */
if ((nvi) && (nvi->fcu == fcu)) {
/* replace if we are closer, or if equal and that one wasn't selected but we are... */
- if ( (nvi->dist > dist) || ((nvi->sel == 0) && BEZSELECTED(bezt)) )
+ if ((nvi->dist > dist) || ((nvi->sel == 0) && BEZSELECTED(bezt)))
replace = 1;
}
/* add new if not replacing... */
@@ -961,9 +963,9 @@ static void nearest_fcurve_vert_store(ListBase *matches, View2D *v2d, FCurve *fc
}
}
else if (fpt) {
- // TODO...
+ /* TODO... */
}
-}
+}
/* helper for find_nearest_fcurve_vert() - build the list of nearest matches */
static void get_nearest_fcurve_verts_list(bAnimContext *ac, const int mval[2], ListBase *matches)
@@ -1333,6 +1335,8 @@ static int graphkeys_clickselect_invoke(bContext *C, wmOperator *op, wmEvent *ev
void GRAPH_OT_clickselect(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Mouse Select Keys";
ot->idname = "GRAPH_OT_clickselect";
@@ -1342,10 +1346,17 @@ void GRAPH_OT_clickselect(wmOperatorType *ot)
ot->invoke = graphkeys_clickselect_invoke;
ot->poll = graphop_visible_keyframes_poll;
- /* id-props */
- RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", ""); // SHIFTKEY
- RNA_def_boolean(ot->srna, "column", 0, "Column Select", "Select all keyframes that occur on the same frame as the one under the mouse"); // ALTKEY
- RNA_def_boolean(ot->srna, "curves", 0, "Only Curves", "Select all the keyframes in the curve"); // CTRLKEY + ALTKEY
+ /* properties */
+ prop = RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", ""); // SHIFTKEY
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+
+ prop = RNA_def_boolean(ot->srna, "column", 0, "Column Select",
+ "Select all keyframes that occur on the same frame as the one under the mouse"); // ALTKEY
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+
+ prop = RNA_def_boolean(ot->srna, "curves", 0, "Only Curves",
+ "Select all the keyframes in the curve"); // CTRLKEY + ALTKEY
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
/* ************************************************************************** */
diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c
index f4cb4ec3d05..a4611cf1453 100644
--- a/source/blender/editors/space_graph/space_graph.c
+++ b/source/blender/editors/space_graph/space_graph.c
@@ -488,7 +488,7 @@ static void graph_listener(ScrArea *sa, wmNotifier *wmn)
// XXX: restore the case below if not enough updates occur...
//default:
- // if (wmn->data==ND_KEYS)
+ // if (wmn->data == ND_KEYS)
// ED_area_tag_redraw(sa);
}
}
diff --git a/source/blender/editors/space_image/CMakeLists.txt b/source/blender/editors/space_image/CMakeLists.txt
index f397f2387d7..3e3c6adcf8c 100644
--- a/source/blender/editors/space_image/CMakeLists.txt
+++ b/source/blender/editors/space_image/CMakeLists.txt
@@ -40,6 +40,7 @@ set(INC_SYS
set(SRC
image_buttons.c
image_draw.c
+ image_edit.c
image_ops.c
space_image.c
diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c
index 92c339d7672..59416dcf0c3 100644
--- a/source/blender/editors/space_image/image_buttons.c
+++ b/source/blender/editors/space_image/image_buttons.c
@@ -27,8 +27,6 @@
* \ingroup spimage
*/
-
-
#include <string.h>
#include <stdio.h>
@@ -73,28 +71,6 @@
#include "image_intern.h"
-#define B_REDR 1
-#define B_IMAGECHANGED 2
-#define B_NOP 0
-#define B_TWINANIM 5
-#define B_SIMAGETILE 6
-#define B_IDNAME 10
-#define B_FACESEL_PAINT_TEST 11
-#define B_SIMA_RECORD 12
-#define B_SIMA_PLAY 13
-
-#define B_SIMANOTHING 16
-#define B_SIMABRUSHCHANGE 17
-#define B_SIMABRUSHBROWSE 18
-#define B_SIMABRUSHLOCAL 19
-#define B_SIMABRUSHDELETE 20
-#define B_KEEPDATA 21
-#define B_SIMABTEXBROWSE 22
-#define B_SIMABTEXDELETE 23
-#define B_VPCOLSLI 24
-#define B_SIMACLONEBROWSE 25
-#define B_SIMACLONEDELETE 26
-
/* proto */
static void image_info(Scene *scene, ImageUser *iuser, Image *ima, ImBuf *ibuf, char *str)
@@ -106,36 +82,36 @@ static void image_info(Scene *scene, ImageUser *iuser, Image *ima, ImBuf *ibuf,
if (ima == NULL) return;
if (ibuf == NULL) {
- ofs += sprintf(str, IFACE_("Can't Load Image"));
+ ofs += sprintf(str, "%s", IFACE_("Can't Load Image"));
}
else {
if (ima->source == IMA_SRC_MOVIE) {
- ofs += sprintf(str, IFACE_("Movie"));
+ ofs += sprintf(str, "%s", IFACE_("Movie"));
if (ima->anim)
ofs += sprintf(str + ofs, IFACE_("%d frs"), IMB_anim_get_duration(ima->anim, IMB_TC_RECORD_RUN));
}
else
- ofs += sprintf(str, IFACE_("Image"));
+ ofs += sprintf(str, "%s", IFACE_("Image"));
- ofs += sprintf(str + ofs, IFACE_(": size %d x %d,"), ibuf->x, ibuf->y);
+ ofs += sprintf(str + ofs, ": %s %d x %d,", IFACE_("size"), ibuf->x, ibuf->y);
if (ibuf->rect_float) {
if (ibuf->channels != 4) {
- ofs += sprintf(str + ofs, IFACE_("%d float channel(s)"), ibuf->channels);
+ ofs += sprintf(str + ofs, "%d %s", ibuf->channels, IFACE_("float channel(s)"));
}
else if (ibuf->planes == R_IMF_PLANES_RGBA)
- ofs += sprintf(str + ofs, IFACE_(" RGBA float"));
+ ofs += sprintf(str + ofs, "%s", IFACE_(" RGBA float"));
else
- ofs += sprintf(str + ofs, IFACE_(" RGB float"));
+ ofs += sprintf(str + ofs, "%s", IFACE_(" RGB float"));
}
else {
if (ibuf->planes == R_IMF_PLANES_RGBA)
- ofs += sprintf(str + ofs, IFACE_(" RGBA byte"));
+ ofs += sprintf(str + ofs, "%s", IFACE_(" RGBA byte"));
else
- ofs += sprintf(str + ofs, IFACE_(" RGB byte"));
+ ofs += sprintf(str + ofs, "%s", IFACE_(" RGB byte"));
}
if (ibuf->zbuf || ibuf->zbuf_float)
- ofs += sprintf(str + ofs, IFACE_(" + Z"));
+ ofs += sprintf(str + ofs, "%s", IFACE_(" + Z"));
if (ima->source == IMA_SRC_SEQUENCE) {
char *file = BLI_last_slash(ibuf->name);
@@ -171,47 +147,6 @@ struct ImageUser *ntree_get_active_iuser(bNodeTree *ntree)
/* ************ panel stuff ************* */
-/* is used for both read and write... */
-
-static int image_panel_poll(const bContext *C, PanelType *UNUSED(pt))
-{
- SpaceImage *sima = CTX_wm_space_image(C);
- ImBuf *ibuf;
- void *lock;
- int result;
-
- ibuf = ED_space_image_acquire_buffer(sima, &lock);
- result = ibuf && ibuf->rect_float;
- ED_space_image_release_buffer(sima, lock);
-
- return result;
-}
-
-static void image_panel_curves(const bContext *C, Panel *pa)
-{
- bScreen *sc = CTX_wm_screen(C);
- SpaceImage *sima = CTX_wm_space_image(C);
- ImBuf *ibuf;
- PointerRNA simaptr;
- int levels;
- void *lock;
-
- ibuf = ED_space_image_acquire_buffer(sima, &lock);
-
- if (ibuf) {
- if (sima->cumap == NULL)
- sima->cumap = curvemapping_add(4, 0.0f, 0.0f, 1.0f, 1.0f);
-
- /* curvemap black/white levels only works for RGBA */
- levels = (ibuf->channels == 4);
-
- RNA_pointer_create(&sc->id, &RNA_SpaceImageEditor, sima, &simaptr);
- uiTemplateCurveMapping(pa->layout, &simaptr, "curve", 'c', levels, 0);
- }
-
- ED_space_image_release_buffer(sima, lock);
-}
-
#if 0
/* 0: disable preview
* otherwise refresh preview
@@ -236,17 +171,18 @@ void image_preview_event(int event)
}
if (exec && G.scene->nodetree) {
+ Scene *scene = G.scene;
/* should work when no node editor in screen..., so we execute right away */
ntreeCompositTagGenerators(G.scene->nodetree);
- G.afbreek = 0;
+ G.is_break = FALSE;
G.scene->nodetree->timecursor = set_timecursor;
G.scene->nodetree->test_break = blender_test_break;
BIF_store_spare();
- ntreeCompositExecTree(G.scene->nodetree, &G.scene->r, 1); /* 1 is do_previews */
+ ntreeCompositExecTree(scene->nodetree, &scene->r, 1, &scene->view_settings, &scene->display_settings); /* 1 is do_previews */
G.scene->nodetree->timecursor = NULL;
G.scene->nodetree->test_break = NULL;
@@ -260,7 +196,7 @@ void image_preview_event(int event)
/* nothing drawn here, we use it to store values */
-static void preview_cb(struct ScrArea *sa, struct uiBlock *block)
+static void preview_cb(ScrArea *sa, struct uiBlock *block)
{
SpaceImage *sima = sa->spacedata.first;
rctf dispf;
@@ -270,17 +206,17 @@ static void preview_cb(struct ScrArea *sa, struct uiBlock *block)
int mval[2];
if (G.scene->r.mode & R_BORDER) {
- winx *= (G.scene->r.border.xmax - G.scene->r.border.xmin);
- winy *= (G.scene->r.border.ymax - G.scene->r.border.ymin);
+ winx *= BLI_rcti_size_x(&G.scene->r.border);
+ winy *= BLI_rctf_size_y(&G.scene->r.border);
}
/* while dragging we need to update the rects, otherwise it doesn't end with correct one */
- BLI_init_rctf(&dispf, 15.0f, (block->maxx - block->minx) - 15.0f, 15.0f, (block->maxy - block->miny) - 15.0f);
+ BLI_rctf_init(&dispf, 15.0f, BLI_rcti_size_x(&block->rect) - 15.0f, 15.0f, (BLI_rctf_size_y(&block->rect)) - 15.0f);
ui_graphics_to_window_rct(sa->win, &dispf, disprect);
/* correction for gla draw */
- BLI_translate_rcti(disprect, -curarea->winrct.xmin, -curarea->winrct.ymin);
+ BLI_rcti_translate(disprect, -curarea->winrct.xmin, -curarea->winrct.ymin);
calc_image_view(sima, 'p');
// printf("winrct %d %d %d %d\n", disprect->xmin, disprect->ymin,disprect->xmax, disprect->ymax);
@@ -372,7 +308,7 @@ static char *slot_menu(void)
static char *layer_menu(RenderResult *rr, short *UNUSED(curlay))
{
RenderLayer *rl;
- int len = 64 + 32 * BLI_countlist(&rr->layers);
+ int len = 64 + RE_MAXNAME * BLI_countlist(&rr->layers);
short a, nr = 0;
char *str = MEM_callocN(len, "menu layers");
@@ -381,11 +317,11 @@ static char *layer_menu(RenderResult *rr, short *UNUSED(curlay))
/* compo result */
if (rr->rectf) {
- a += sprintf(str + a, IFACE_("|Composite %%x0"));
+ a += sprintf(str + a, "|%s %%x0", IFACE_("Composite"));
nr = 1;
}
else if (rr->rect32) {
- a += sprintf(str + a, IFACE_("|Sequence %%x0"));
+ a += sprintf(str + a, "|%s %%x0", IFACE_("Sequence"));
nr = 1;
}
for (rl = rr->layers.first; rl; rl = rl->next, nr++) {
@@ -410,7 +346,7 @@ static char *pass_menu(RenderLayer *rl, short *curpass)
/* rendered results don't have a Combined pass */
if (rl == NULL || rl->rectf) {
- a += sprintf(str + a, IFACE_("|Combined %%x0"));
+ a += sprintf(str + a, "|%s %%x0", IFACE_("Combined"));
nr = 1;
}
@@ -613,6 +549,7 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char
uiLayout *row, *split, *col;
uiBlock *block;
char str[128];
+
void *lock;
if (!ptr->data)
@@ -683,10 +620,12 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char
}
else if (ima->type == IMA_TYPE_R_RESULT) {
/* browse layer/passes */
- Render *re = RE_GetRender(scene->id.name);
- RenderResult *rr = RE_AcquireResultRead(re);
+ RenderResult *rr;
+
+ /* use BKE_image_acquire_renderresult so we get the correct slot in the menu */
+ rr = BKE_image_acquire_renderresult(scene, ima);
uiblock_layer_pass_arrow_buttons(layout, rr, iuser, &ima->render_slot);
- RE_ReleaseResult(re);
+ BKE_image_release_renderresult(scene, ima);
}
}
else {
@@ -728,7 +667,11 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char
uiItemL(layout, str, ICON_NONE);
}
}
-
+
+ col = uiLayoutColumn(layout, FALSE);
+ uiTemplateColorspaceSettings(col, &imaptr, "colorspace_settings");
+ uiItemR(col, &imaptr, "view_as_render", 0, NULL, ICON_NONE);
+
if (ima->source != IMA_SRC_GENERATED) {
if (compact == 0) { /* background image view doesnt need these */
uiItemS(layout);
@@ -794,15 +737,18 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char
MEM_freeN(cb);
}
-void uiTemplateImageSettings(uiLayout *layout, PointerRNA *imfptr)
+void uiTemplateImageSettings(uiLayout *layout, PointerRNA *imfptr, int color_management)
{
ImageFormatData *imf = imfptr->data;
ID *id = imfptr->id.data;
+ PointerRNA display_settings_ptr;
+ PropertyRNA *prop;
const int depth_ok = BKE_imtype_valid_depths(imf->imtype);
/* some settings depend on this being a scene thats rendered */
const short is_render_out = (id && GS(id->name) == ID_SCE);
uiLayout *col, *row, *split, *sub;
+ int show_preview = FALSE;
col = uiLayoutColumn(layout, FALSE);
@@ -843,6 +789,7 @@ void uiTemplateImageSettings(uiLayout *layout, PointerRNA *imfptr)
}
if (is_render_out && (imf->imtype == R_IMF_IMTYPE_OPENEXR)) {
+ show_preview = TRUE;
uiItemR(row, imfptr, "use_preview", 0, NULL, ICON_NONE);
}
@@ -864,21 +811,37 @@ void uiTemplateImageSettings(uiLayout *layout, PointerRNA *imfptr)
uiItemR(col, imfptr, "cineon_gamma", 0, NULL, ICON_NONE);
#endif
}
+
+ /* color management */
+ if (color_management &&
+ (!BKE_imtype_requires_linear_float(imf->imtype) ||
+ (show_preview && imf->flag & R_IMF_FLAG_PREVIEW_JPG)))
+ {
+ prop = RNA_struct_find_property(imfptr, "display_settings");
+ display_settings_ptr = RNA_property_pointer_get(imfptr, prop);
+
+ col = uiLayoutColumn(layout, FALSE);
+ uiItemL(col, IFACE_("Color Management"), ICON_NONE);
+
+ uiItemR(col, &display_settings_ptr, "display_device", 0, NULL, ICON_NONE);
+
+ uiTemplateColormanagedViewSettings(col, NULL, imfptr, "view_settings");
+ }
}
void uiTemplateImageLayers(uiLayout *layout, bContext *C, Image *ima, ImageUser *iuser)
{
Scene *scene = CTX_data_scene(C);
- Render *re;
- RenderResult *rr;
/* render layers and passes */
if (ima && iuser) {
const float dpi_fac = UI_DPI_FAC;
- re = RE_GetRender(scene->id.name);
- rr = RE_AcquireResultRead(re);
+ RenderResult *rr;
+
+ /* use BKE_image_acquire_renderresult so we get the correct slot in the menu */
+ rr = BKE_image_acquire_renderresult(scene, ima);
uiblock_layer_pass_buttons(layout, rr, iuser, 160 * dpi_fac, (ima->type == IMA_TYPE_R_RESULT) ? &ima->render_slot : NULL);
- RE_ReleaseResult(re);
+ BKE_image_release_renderresult(scene, ima);
}
}
@@ -886,14 +849,6 @@ void image_buttons_register(ARegionType *art)
{
PanelType *pt;
- pt = MEM_callocN(sizeof(PanelType), "spacetype image panel curves");
- strcpy(pt->idname, "IMAGE_PT_curves");
- strcpy(pt->label, "Curves");
- pt->draw = image_panel_curves;
- pt->poll = image_panel_poll;
- pt->flag |= PNL_DEFAULT_CLOSED;
- BLI_addtail(&art->paneltypes, pt);
-
pt = MEM_callocN(sizeof(PanelType), "spacetype image panel gpencil");
strcpy(pt->idname, "IMAGE_PT_gpencil");
strcpy(pt->label, "Grease Pencil");
diff --git a/source/blender/editors/space_image/image_draw.c b/source/blender/editors/space_image/image_draw.c
index ac71eb972f6..04566af2b3b 100644
--- a/source/blender/editors/space_image/image_draw.c
+++ b/source/blender/editors/space_image/image_draw.c
@@ -44,12 +44,14 @@
#include "PIL_time.h"
#include "BLI_math.h"
+#include "BLI_rect.h"
#include "BLI_threads.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
+#include "IMB_colormanagement.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -69,34 +71,13 @@
#include "UI_resources.h"
#include "UI_view2d.h"
+#include "WM_api.h"
+#include "WM_types.h"
#include "RE_pipeline.h"
#include "image_intern.h"
-#define HEADER_HEIGHT 18
-
-static void image_verify_buffer_float(Image *ima, ImBuf *ibuf, int color_manage)
-{
- /* detect if we need to redo the curve map.
- * ibuf->rect is zero for compositor and render results after change
- * convert to 32 bits always... drawing float rects isn't supported well (atis)
- *
- * NOTE: if float buffer changes, we have to manually remove the rect
- */
-
- if (ibuf->rect_float && (ibuf->rect == NULL || (ibuf->userflags & IB_RECT_INVALID)) ) {
- if (color_manage) {
- if (ima && ima->source == IMA_SRC_VIEWER)
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
- }
- else
- ibuf->profile = IB_PROFILE_NONE;
-
- IMB_rect_from_float(ibuf);
- }
-}
-
static void draw_render_info(Scene *scene, Image *ima, ARegion *ar)
{
RenderResult *rr;
@@ -111,7 +92,7 @@ static void draw_render_info(Scene *scene, Image *ima, ARegion *ar)
}
/* used by node view too */
-void ED_image_draw_info(ARegion *ar, int color_manage, int channels, int x, int y,
+void ED_image_draw_info(Scene *scene, ARegion *ar, int color_manage, int use_default_view, int channels, int x, int y,
const unsigned char cp[4], const float fp[4], int *zp, float *zpf)
{
char str[256];
@@ -135,7 +116,7 @@ void ED_image_draw_info(ARegion *ar, int color_manage, int channels, int x, int
/* noisy, high contrast make impossible to read if lower alpha is used. */
glColor4ub(0, 0, 0, 190);
- glRecti(0.0, 0.0, ar->winrct.xmax - ar->winrct.xmin + 1, 20);
+ glRecti(0.0, 0.0, BLI_rcti_size_x(&ar->winrct) + 1, 20);
glDisable(GL_BLEND);
BLF_size(blf_mono_font, 11, 72);
@@ -208,6 +189,20 @@ void ED_image_draw_info(ARegion *ar, int color_manage, int channels, int x, int
BLF_draw_ascii(blf_mono_font, str, sizeof(str));
dx += BLF_width(blf_mono_font, str);
}
+
+ if (color_manage && channels == 4) {
+ float pixel[4];
+
+ if (use_default_view)
+ IMB_colormanagement_pixel_to_display_space_v4(pixel, fp, NULL, &scene->display_settings);
+ else
+ IMB_colormanagement_pixel_to_display_space_v4(pixel, fp, &scene->view_settings, &scene->display_settings);
+
+ BLI_snprintf(str, sizeof(str), " | CM R:%-.4f G:%-.4f B:%-.4f", pixel[0], pixel[1], pixel[2]);
+ BLF_position(blf_mono_font, dx, 6, 0);
+ BLF_draw_ascii(blf_mono_font, str, sizeof(str));
+ dx += BLF_width(blf_mono_font, str);
+ }
}
/* color rectangle */
@@ -251,11 +246,15 @@ void ED_image_draw_info(ARegion *ar, int color_manage, int channels, int x, int
}
if (color_manage) {
- linearrgb_to_srgb_v4(finalcol, col);
+ if (use_default_view)
+ IMB_colormanagement_pixel_to_display_space_v4(finalcol, col, NULL, &scene->display_settings);
+ else
+ IMB_colormanagement_pixel_to_display_space_v4(finalcol, col, &scene->view_settings, &scene->display_settings);
}
else {
copy_v4_v4(finalcol, col);
}
+
glDisable(GL_BLEND);
glColor3fv(finalcol);
dx += 5;
@@ -417,10 +416,9 @@ static void sima_draw_zbuffloat_pixels(Scene *scene, float x1, float y1, int rec
MEM_freeN(rectf);
}
-static void draw_image_buffer(SpaceImage *sima, ARegion *ar, Scene *scene, Image *ima, ImBuf *ibuf, float fx, float fy, float zoomx, float zoomy)
+static void draw_image_buffer(const bContext *C, SpaceImage *sima, ARegion *ar, Scene *scene, ImBuf *ibuf, float fx, float fy, float zoomx, float zoomy)
{
int x, y;
- int color_manage = scene->r.color_mgt_flag & R_COLOR_MANAGEMENT;
/* set zoom */
glPixelZoom(zoomx, zoomy);
@@ -444,6 +442,9 @@ static void draw_image_buffer(SpaceImage *sima, ARegion *ar, Scene *scene, Image
sima_draw_zbuffloat_pixels(scene, x, y, ibuf->x, ibuf->y, ibuf->rect_float);
}
else {
+ unsigned char *display_buffer;
+ void *cache_handle;
+
if (sima->flag & SI_USE_ALPHA) {
fdrawcheckerboard(x, y, x + ibuf->x * zoomx, y + ibuf->y * zoomy);
@@ -451,17 +452,17 @@ static void draw_image_buffer(SpaceImage *sima, ARegion *ar, Scene *scene, Image
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
- /* we don't draw floats buffers directly but
- * convert them, and optionally apply curves */
- image_verify_buffer_float(ima, ibuf, color_manage);
+ display_buffer = IMB_display_buffer_acquire_ctx(C, ibuf, &cache_handle);
- if (ibuf->rect)
- glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
+ if (display_buffer)
+ glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, display_buffer);
#if 0
else
glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_FLOAT, ibuf->rect_float);
#endif
-
+
+ IMB_display_buffer_release(cache_handle);
+
if (sima->flag & SI_USE_ALPHA)
glDisable(GL_BLEND);
}
@@ -470,14 +471,14 @@ static void draw_image_buffer(SpaceImage *sima, ARegion *ar, Scene *scene, Image
glPixelZoom(1.0f, 1.0f);
}
-static unsigned int *get_part_from_ibuf(ImBuf *ibuf, short startx, short starty, short endx, short endy)
+static unsigned int *get_part_from_buffer(unsigned int *buffer, int width, short startx, short starty, short endx, short endy)
{
unsigned int *rt, *rp, *rectmain;
short y, heigth, len;
/* the right offset in rectot */
- rt = ibuf->rect + (starty * ibuf->x + startx);
+ rt = buffer + (starty * width + startx);
len = (endx - startx);
heigth = (endy - starty);
@@ -486,7 +487,7 @@ static unsigned int *get_part_from_ibuf(ImBuf *ibuf, short startx, short starty,
for (y = 0; y < heigth; y++) {
memcpy(rp, rt, len * 4);
- rt += ibuf->x;
+ rt += width;
rp += len;
}
return rectmain;
@@ -494,28 +495,34 @@ static unsigned int *get_part_from_ibuf(ImBuf *ibuf, short startx, short starty,
static void draw_image_buffer_tiled(SpaceImage *sima, ARegion *ar, Scene *scene, Image *ima, ImBuf *ibuf, float fx, float fy, float zoomx, float zoomy)
{
+ unsigned char *display_buffer;
unsigned int *rect;
int dx, dy, sx, sy, x, y;
- int color_manage = scene->r.color_mgt_flag & R_COLOR_MANAGEMENT;
+ void *cache_handle;
/* verify valid values, just leave this a while */
if (ima->xrep < 1) return;
if (ima->yrep < 1) return;
-
+
+ if (ima->flag & IMA_VIEW_AS_RENDER)
+ display_buffer = IMB_display_buffer_acquire(ibuf, &scene->view_settings, &scene->display_settings, &cache_handle);
+ else
+ display_buffer = IMB_display_buffer_acquire(ibuf, NULL, &scene->display_settings, &cache_handle);
+
+ if (!display_buffer)
+ return;
+
glPixelZoom(zoomx, zoomy);
if (sima->curtile >= ima->xrep * ima->yrep)
sima->curtile = ima->xrep * ima->yrep - 1;
- /* create char buffer from float if needed */
- image_verify_buffer_float(ima, ibuf, color_manage);
-
/* retrieve part of image buffer */
dx = ibuf->x / ima->xrep;
dy = ibuf->y / ima->yrep;
sx = (sima->curtile % ima->xrep) * dx;
sy = (sima->curtile / ima->xrep) * dy;
- rect = get_part_from_ibuf(ibuf, sx, sy, sx + dx, sy + dy);
+ rect = get_part_from_buffer((unsigned int *)display_buffer, ibuf->x, sx, sy, sx + dx, sy + dy);
/* draw repeated */
for (sy = 0; sy + dy <= ibuf->y; sy += dy) {
@@ -528,10 +535,12 @@ static void draw_image_buffer_tiled(SpaceImage *sima, ARegion *ar, Scene *scene,
glPixelZoom(1.0f, 1.0f);
+ IMB_display_buffer_release(cache_handle);
+
MEM_freeN(rect);
}
-static void draw_image_buffer_repeated(SpaceImage *sima, ARegion *ar, Scene *scene, Image *ima, ImBuf *ibuf, float zoomx, float zoomy)
+static void draw_image_buffer_repeated(const bContext *C, SpaceImage *sima, ARegion *ar, Scene *scene, Image *ima, ImBuf *ibuf, float zoomx, float zoomy)
{
const double time_current = PIL_check_seconds_timer();
@@ -548,7 +557,7 @@ static void draw_image_buffer_repeated(SpaceImage *sima, ARegion *ar, Scene *sce
if (ima && (ima->tpageflag & IMA_TILES))
draw_image_buffer_tiled(sima, ar, scene, ima, ibuf, x, y, zoomx, zoomy);
else
- draw_image_buffer(sima, ar, scene, ima, ibuf, x, y, zoomx, zoomy);
+ draw_image_buffer(C, sima, ar, scene, ibuf, x, y, zoomx, zoomy);
/* only draw until running out of time */
if ((PIL_check_seconds_timer() - time_current) > 0.25)
@@ -631,22 +640,35 @@ static void draw_image_view_tool(Scene *scene)
}
#endif
-static unsigned char *get_alpha_clone_image(Scene *scene, int *width, int *height)
+static unsigned char *get_alpha_clone_image(const bContext *C, Scene *scene, int *width, int *height)
{
Brush *brush = paint_brush(&scene->toolsettings->imapaint.paint);
ImBuf *ibuf;
unsigned int size, alpha;
+ unsigned char *display_buffer;
unsigned char *rect, *cp;
+ void *cache_handle;
if (!brush || !brush->clone.image)
return NULL;
ibuf = BKE_image_get_ibuf(brush->clone.image, NULL);
- if (!ibuf || !ibuf->rect)
+ if (!ibuf)
+ return NULL;
+
+ display_buffer = IMB_display_buffer_acquire_ctx(C, ibuf, &cache_handle);
+
+ if (!display_buffer) {
+ IMB_display_buffer_release(cache_handle);
+
return NULL;
+ }
+
+ rect = MEM_dupallocN(display_buffer);
+
+ IMB_display_buffer_release(cache_handle);
- rect = MEM_dupallocN(ibuf->rect);
if (!rect)
return NULL;
@@ -665,7 +687,7 @@ static unsigned char *get_alpha_clone_image(Scene *scene, int *width, int *heigh
return rect;
}
-static void draw_image_paint_helpers(ARegion *ar, Scene *scene, float zoomx, float zoomy)
+static void draw_image_paint_helpers(const bContext *C, ARegion *ar, Scene *scene, float zoomx, float zoomy)
{
Brush *brush;
int x, y, w, h;
@@ -676,7 +698,7 @@ static void draw_image_paint_helpers(ARegion *ar, Scene *scene, float zoomx, flo
if (brush && (brush->imagepaint_tool == PAINT_TOOL_CLONE)) {
/* this is not very efficient, but glDrawPixels doesn't allow
* drawing with alpha */
- clonerect = get_alpha_clone_image(scene, &w, &h);
+ clonerect = get_alpha_clone_image(C, scene, &w, &h);
if (clonerect) {
UI_view2d_to_region_no_clip(&ar->v2d, brush->clone.offset[0], brush->clone.offset[1], &x, &y);
@@ -697,8 +719,10 @@ static void draw_image_paint_helpers(ARegion *ar, Scene *scene, float zoomx, flo
/* draw main image area */
-void draw_image_main(SpaceImage *sima, ARegion *ar, Scene *scene)
+void draw_image_main(const bContext *C, ARegion *ar)
{
+ SpaceImage *sima = CTX_wm_space_image(C);
+ Scene *scene = CTX_data_scene(C);
Image *ima;
ImBuf *ibuf;
float zoomx, zoomy;
@@ -710,7 +734,7 @@ void draw_image_main(SpaceImage *sima, ARegion *ar, Scene *scene)
what_image(sima);
if (sima->image) {
- ED_image_aspect(sima->image, &xuser_asp, &yuser_asp);
+ ED_image_get_aspect(sima->image, &xuser_asp, &yuser_asp);
/* UGLY hack? until now iusers worked fine... but for flipbook viewer we need this */
if (sima->image->type == IMA_TYPE_COMPOSITE) {
@@ -727,25 +751,35 @@ void draw_image_main(SpaceImage *sima, ARegion *ar, Scene *scene)
/* retrieve the image and information about it */
ima = ED_space_image(sima);
- ED_space_image_zoom(sima, ar, &zoomx, &zoomy);
- ibuf = ED_space_image_acquire_buffer(sima, &lock);
+ ED_space_image_get_zoom(sima, ar, &zoomx, &zoomy);
show_viewer = (ima && ima->source == IMA_SRC_VIEWER);
show_render = (show_viewer && ima->type == IMA_TYPE_R_RESULT);
+ if (show_viewer) {
+ /* use locked draw for drawing viewer image buffer since the conpositor
+ * is running in separated thread and compositor could free this buffers.
+ * other images are not modifying in such a way so they does not require
+ * lock (sergey)
+ */
+ BLI_lock_thread(LOCK_DRAW_IMAGE);
+ }
+
+ ibuf = ED_space_image_acquire_buffer(sima, &lock);
+
/* draw the image or grid */
if (ibuf == NULL)
ED_region_grid_draw(ar, zoomx, zoomy);
else if (sima->flag & SI_DRAW_TILE)
- draw_image_buffer_repeated(sima, ar, scene, ima, ibuf, zoomx, zoomy);
+ draw_image_buffer_repeated(C, sima, ar, scene, ima, ibuf, zoomx, zoomy);
else if (ima && (ima->tpageflag & IMA_TILES))
draw_image_buffer_tiled(sima, ar, scene, ima, ibuf, 0.0f, 0.0, zoomx, zoomy);
else
- draw_image_buffer(sima, ar, scene, ima, ibuf, 0.0f, 0.0f, zoomx, zoomy);
+ draw_image_buffer(C, sima, ar, scene, ibuf, 0.0f, 0.0f, zoomx, zoomy);
/* paint helpers */
- if (sima->flag & SI_DRAWTOOL)
- draw_image_paint_helpers(ar, scene, zoomx, zoomy);
+ if (sima->mode == SI_MODE_PAINT)
+ draw_image_paint_helpers(C, ar, scene, zoomx, zoomy);
/* XXX integrate this code */
@@ -767,8 +801,11 @@ void draw_image_main(SpaceImage *sima, ARegion *ar, Scene *scene)
ED_space_image_release_buffer(sima, lock);
+ if (show_viewer) {
+ BLI_unlock_thread(LOCK_DRAW_IMAGE);
+ }
+
/* render info */
if (ima && show_render)
draw_render_info(scene, ima, ar);
}
-
diff --git a/source/blender/editors/space_image/image_edit.c b/source/blender/editors/space_image/image_edit.c
new file mode 100644
index 00000000000..2f01483d23f
--- /dev/null
+++ b/source/blender/editors/space_image/image_edit.c
@@ -0,0 +1,391 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2008 Blender Foundation.
+ * All rights reserved.
+ *
+ *
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editors/space_image/image_edit.c
+ * \ingroup spimage
+ */
+
+#include "DNA_mask_types.h"
+#include "DNA_object_types.h"
+#include "DNA_scene_types.h"
+
+#include "BLI_math.h"
+#include "BLI_rect.h"
+
+#include "BKE_context.h"
+#include "BKE_global.h"
+#include "BKE_image.h"
+#include "BKE_main.h"
+#include "BKE_tessmesh.h"
+
+#include "IMB_imbuf_types.h"
+
+#include "ED_image.h" /* own include */
+#include "ED_mesh.h"
+#include "ED_screen.h"
+#include "ED_uvedit.h"
+
+#include "UI_view2d.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+/* note; image_panel_properties() uses pointer to sima->image directly */
+Image *ED_space_image(SpaceImage *sima)
+{
+ return sima->image;
+}
+
+/* called to assign images to UV faces */
+void ED_space_image_set(SpaceImage *sima, Scene *scene, Object *obedit, Image *ima)
+{
+ /* context may be NULL, so use global */
+ ED_uvedit_assign_image(G.main, scene, obedit, ima, sima->image);
+
+ /* change the space ima after because uvedit_face_visible_test uses the space ima
+ * to check if the face is displayed in UV-localview */
+ sima->image = ima;
+
+ if (ima == NULL || ima->type == IMA_TYPE_R_RESULT || ima->type == IMA_TYPE_COMPOSITE) {
+ if (sima->mode == SI_MODE_PAINT) {
+ sima->mode = SI_MODE_VIEW;
+ }
+ }
+
+ if (sima->image)
+ BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_USER_NEW_IMAGE);
+
+ if (sima->image && ID_REAL_USERS(sima->image) <= 0)
+ sima->image->id.us = MAX2(sima->image->id.us, 0) + 1;
+
+ if (obedit)
+ WM_main_add_notifier(NC_GEOM | ND_DATA, obedit->data);
+
+ WM_main_add_notifier(NC_SPACE | ND_SPACE_IMAGE, NULL);
+}
+
+Mask *ED_space_image_get_mask(SpaceImage *sima)
+{
+ return sima->mask_info.mask;
+}
+
+void ED_space_image_set_mask(bContext *C, SpaceImage *sima, Mask *mask)
+{
+ sima->mask_info.mask = mask;
+
+ /* weak, but same as image/space */
+ if (sima->mask_info.mask && ID_REAL_USERS(sima->mask_info.mask) <= 0)
+ sima->mask_info.mask->id.us = MAX2(sima->mask_info.mask->id.us, 0) + 1;
+
+ if (C) {
+ WM_event_add_notifier(C, NC_MASK | NA_SELECTED, mask);
+ }
+}
+
+ImBuf *ED_space_image_acquire_buffer(SpaceImage *sima, void **lock_r)
+{
+ ImBuf *ibuf;
+
+ if (sima && sima->image) {
+#if 0
+ if (sima->image->type == IMA_TYPE_R_RESULT && BIF_show_render_spare())
+ return BIF_render_spare_imbuf();
+ else
+#endif
+ ibuf = BKE_image_acquire_ibuf(sima->image, &sima->iuser, lock_r);
+
+ if (ibuf && (ibuf->rect || ibuf->rect_float))
+ return ibuf;
+ }
+ else
+ *lock_r = NULL;
+
+ return NULL;
+}
+
+void ED_space_image_release_buffer(SpaceImage *sima, void *lock)
+{
+ if (sima && sima->image)
+ BKE_image_release_ibuf(sima->image, lock);
+}
+
+int ED_space_image_has_buffer(SpaceImage *sima)
+{
+ ImBuf *ibuf;
+ void *lock;
+ int has_buffer;
+
+ ibuf = ED_space_image_acquire_buffer(sima, &lock);
+ has_buffer = (ibuf != NULL);
+ ED_space_image_release_buffer(sima, lock);
+
+ return has_buffer;
+}
+
+void ED_space_image_get_size(SpaceImage *sima, int *width, int *height)
+{
+ Scene *scene = sima->iuser.scene;
+ ImBuf *ibuf;
+ void *lock;
+
+ ibuf = ED_space_image_acquire_buffer(sima, &lock);
+
+ if (ibuf && ibuf->x > 0 && ibuf->y > 0) {
+ *width = ibuf->x;
+ *height = ibuf->y;
+ }
+ else if (sima->image && sima->image->type == IMA_TYPE_R_RESULT && scene) {
+ /* not very important, just nice */
+ *width = (scene->r.xsch * scene->r.size) / 100;
+ *height = (scene->r.ysch * scene->r.size) / 100;
+
+ if ((scene->r.mode & R_BORDER) && (scene->r.mode & R_CROP)) {
+ *width *= BLI_rctf_size_x(&scene->r.border);
+ *height *= BLI_rctf_size_y(&scene->r.border);
+ }
+
+ }
+ /* I know a bit weak... but preview uses not actual image size */
+ // XXX else if (image_preview_active(sima, width, height));
+ else {
+ *width = IMG_SIZE_FALLBACK;
+ *height = IMG_SIZE_FALLBACK;
+ }
+
+ ED_space_image_release_buffer(sima, lock);
+}
+
+void ED_space_image_get_size_fl(SpaceImage *sima, float size[2])
+{
+ int size_i[2];
+ ED_space_image_get_size(sima, &size_i[0], &size_i[1]);
+ size[0] = size_i[0];
+ size[1] = size_i[1];
+}
+
+
+void ED_space_image_get_aspect(SpaceImage *sima, float *aspx, float *aspy)
+{
+ Image *ima = sima->image;
+ if ((ima == NULL) || (ima->type == IMA_TYPE_R_RESULT) || (ima->type == IMA_TYPE_COMPOSITE) ||
+ (ima->aspx == 0.0f || ima->aspy == 0.0f))
+ {
+ *aspx = *aspy = 1.0;
+ }
+ else {
+ BKE_image_get_aspect(ima, aspx, aspy);
+ }
+}
+
+void ED_space_image_get_zoom(SpaceImage *sima, ARegion *ar, float *zoomx, float *zoomy)
+{
+ int width, height;
+
+ ED_space_image_get_size(sima, &width, &height);
+
+ *zoomx = (float)(BLI_rcti_size_x(&ar->winrct) + 1) / (float)(BLI_rctf_size_x(&ar->v2d.cur) * width);
+ *zoomy = (float)(BLI_rcti_size_y(&ar->winrct) + 1) / (float)(BLI_rctf_size_y(&ar->v2d.cur) * height);
+}
+
+void ED_space_image_get_uv_aspect(SpaceImage *sima, float *aspx, float *aspy)
+{
+ int w, h;
+
+ ED_space_image_get_aspect(sima, aspx, aspy);
+ ED_space_image_get_size(sima, &w, &h);
+
+ *aspx *= (float)w;
+ *aspy *= (float)h;
+
+ if (*aspx < *aspy) {
+ *aspy = *aspy / *aspx;
+ *aspx = 1.0f;
+ }
+ else {
+ *aspx = *aspx / *aspy;
+ *aspy = 1.0f;
+ }
+}
+
+void ED_image_get_uv_aspect(Image *ima, ImageUser *iuser, float *aspx, float *aspy)
+{
+ if (ima) {
+ int w, h;
+
+ BKE_image_get_aspect(ima, aspx, aspy);
+ BKE_image_get_size(ima, iuser, &w, &h);
+
+ *aspx *= (float)w;
+ *aspy *= (float)h;
+ }
+ else {
+ *aspx = 1.0f;
+ *aspy = 1.0f;
+ }
+}
+
+/* takes event->mval */
+void ED_image_mouse_pos(SpaceImage *sima, ARegion *ar, const int mval[2], float co[2])
+{
+ int sx, sy, width, height;
+ float zoomx, zoomy;
+
+ ED_space_image_get_zoom(sima, ar, &zoomx, &zoomy);
+ ED_space_image_get_size(sima, &width, &height);
+
+ UI_view2d_to_region_no_clip(&ar->v2d, 0.0f, 0.0f, &sx, &sy);
+
+ co[0] = ((mval[0] - sx) / zoomx) / width;
+ co[1] = ((mval[1] - sy) / zoomy) / height;
+}
+
+void ED_image_point_pos(SpaceImage *sima, ARegion *ar, float x, float y, float *xr, float *yr)
+{
+ int sx, sy, width, height;
+ float zoomx, zoomy;
+
+ ED_space_image_get_zoom(sima, ar, &zoomx, &zoomy);
+ ED_space_image_get_size(sima, &width, &height);
+
+ UI_view2d_to_region_no_clip(&ar->v2d, 0.0f, 0.0f, &sx, &sy);
+
+ *xr = ((x - sx) / zoomx) / width;
+ *yr = ((y - sy) / zoomy) / height;
+}
+
+void ED_image_point_pos__reverse(SpaceImage *sima, ARegion *ar, const float co[2], float r_co[2])
+{
+ float zoomx, zoomy;
+ int width, height;
+ int sx, sy;
+
+ UI_view2d_to_region_no_clip(&ar->v2d, 0.0f, 0.0f, &sx, &sy);
+ ED_space_image_get_size(sima, &width, &height);
+ ED_space_image_get_zoom(sima, ar, &zoomx, &zoomy);
+
+ r_co[0] = (co[0] * width * zoomx) + (float)sx;
+ r_co[1] = (co[1] * height * zoomy) + (float)sy;
+}
+
+int ED_space_image_show_render(SpaceImage *sima)
+{
+ return (sima->image && ELEM(sima->image->type, IMA_TYPE_R_RESULT, IMA_TYPE_COMPOSITE));
+}
+
+int ED_space_image_show_paint(SpaceImage *sima)
+{
+ if (ED_space_image_show_render(sima))
+ return 0;
+
+ return (sima->mode == SI_MODE_PAINT);
+}
+
+int ED_space_image_show_uvedit(SpaceImage *sima, Object *obedit)
+{
+ if (sima && (ED_space_image_show_render(sima) || ED_space_image_show_paint(sima)))
+ return 0;
+
+ if (obedit && obedit->type == OB_MESH) {
+ struct BMEditMesh *em = BMEdit_FromObject(obedit);
+ int ret;
+
+ ret = EDBM_mtexpoly_check(em);
+
+ return ret;
+ }
+
+ return 0;
+}
+
+int ED_space_image_show_uvshadow(SpaceImage *sima, Object *obedit)
+{
+ if (ED_space_image_show_render(sima))
+ return 0;
+
+ if (ED_space_image_show_paint(sima))
+ if (obedit && obedit->type == OB_MESH) {
+ struct BMEditMesh *em = BMEdit_FromObject(obedit);
+ int ret;
+
+ ret = EDBM_mtexpoly_check(em);
+
+ return ret;
+ }
+
+ return 0;
+}
+
+/* matches clip function */
+int ED_space_image_check_show_maskedit(Scene *scene, SpaceImage *sima)
+{
+ /* check editmode - this is reserved for UV editing */
+ Object *ob = OBACT;
+ if (ob && ob->mode & OB_MODE_EDIT && ED_space_image_show_uvedit(sima, ob)) {
+ return FALSE;
+ }
+
+ return (sima->mode == SI_MODE_MASK);
+}
+
+int ED_space_image_maskedit_poll(bContext *C)
+{
+ SpaceImage *sima = CTX_wm_space_image(C);
+
+ if (sima) {
+ Scene *scene = CTX_data_scene(C);
+ return ED_space_image_check_show_maskedit(scene, sima);
+ }
+
+ return FALSE;
+}
+
+int ED_space_image_maskedit_mask_poll(bContext *C)
+{
+ if (ED_space_image_maskedit_poll(C)) {
+ SpaceImage *sima = CTX_wm_space_image(C);
+ return sima->mask_info.mask != NULL;
+ }
+
+ return FALSE;
+}
+
+/******************** TODO ********************/
+
+/* XXX notifier? */
+
+/* goes over all ImageUsers, and sets frame numbers if auto-refresh is set */
+
+static void image_update_frame(struct Image *UNUSED(ima), struct ImageUser *iuser, void *customdata)
+{
+ int cfra = *(int *)customdata;
+
+ BKE_image_user_check_frame_calc(iuser, cfra, 0);
+}
+
+void ED_image_update_frame(const Main *mainp, int cfra)
+{
+ BKE_image_walk_all_users(mainp, &cfra, image_update_frame);
+}
diff --git a/source/blender/editors/space_image/image_intern.h b/source/blender/editors/space_image/image_intern.h
index 0d3a7614f10..f86e59c41a8 100644
--- a/source/blender/editors/space_image/image_intern.h
+++ b/source/blender/editors/space_image/image_intern.h
@@ -52,7 +52,7 @@ struct ARegion *image_has_scope_region(struct ScrArea *sa);
extern const char *image_context_dir[]; /* doc access */
/* image_draw.c */
-void draw_image_main(struct SpaceImage *sima, struct ARegion *ar, struct Scene *scene);
+void draw_image_main(const struct bContext *C, struct ARegion *ar);
void draw_image_grease_pencil(struct bContext *C, short onlyv2d);
void draw_image_sample_line(struct SpaceImage *sima);
diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c
index 3dc1fbd738f..4f57b2249d1 100644
--- a/source/blender/editors/space_image/image_ops.c
+++ b/source/blender/editors/space_image/image_ops.c
@@ -55,6 +55,7 @@
#include "BKE_report.h"
#include "BKE_screen.h"
+#include "IMB_colormanagement.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -91,24 +92,24 @@ static void sima_zoom_set(SpaceImage *sima, ARegion *ar, float zoom, float locat
if (sima->zoom < 0.1f || sima->zoom > 4.0f) {
/* check zoom limits */
- ED_space_image_size(sima, &width, &height);
+ ED_space_image_get_size(sima, &width, &height);
width *= sima->zoom;
height *= sima->zoom;
if ((width < 4) && (height < 4))
sima->zoom = oldzoom;
- else if ((ar->winrct.xmax - ar->winrct.xmin) <= sima->zoom)
+ else if (BLI_rcti_size_x(&ar->winrct) <= sima->zoom)
sima->zoom = oldzoom;
- else if ((ar->winrct.ymax - ar->winrct.ymin) <= sima->zoom)
+ else if (BLI_rcti_size_y(&ar->winrct) <= sima->zoom)
sima->zoom = oldzoom;
}
if ((U.uiflag & USER_ZOOM_TO_MOUSEPOS) && location) {
float aspx, aspy, w, h;
- ED_space_image_size(sima, &width, &height);
- ED_space_image_aspect(sima, &aspx, &aspy);
+ ED_space_image_get_size(sima, &width, &height);
+ ED_space_image_get_aspect(sima, &aspx, &aspy);
w = width * aspx;
h = height * aspy;
@@ -191,7 +192,7 @@ int space_image_main_area_poll(bContext *C)
}
/* For IMAGE_OT_curves_point_set to avoid sampling when in uv smooth mode or editmode */
-int space_image_main_area_not_uv_brush_poll(bContext *C)
+static int space_image_main_area_not_uv_brush_poll(bContext *C)
{
SpaceImage *sima = CTX_wm_space_image(C);
Scene *scene = CTX_data_scene(C);
@@ -203,17 +204,27 @@ int space_image_main_area_not_uv_brush_poll(bContext *C)
return 0;
}
-static int space_image_image_sample_poll(bContext *C)
+static int image_sample_poll(bContext *C)
{
SpaceImage *sima = CTX_wm_space_image(C);
- Object *obedit = CTX_data_edit_object(C);
- ToolSettings *toolsettings = CTX_data_scene(C)->toolsettings;
+ if (sima) {
+ Scene *scene = CTX_data_scene(C);
+ Object *obedit = CTX_data_edit_object(C);
+ ToolSettings *toolsettings = scene->toolsettings;
+
+ if (obedit) {
+ if (ED_space_image_show_uvedit(sima, obedit) && (toolsettings->use_uv_sculpt))
+ return FALSE;
+ }
+ else if (sima->mode != SI_MODE_VIEW) {
+ return FALSE;
+ }
- if (obedit) {
- if (ED_space_image_show_uvedit(sima, obedit) && (toolsettings->use_uv_sculpt))
- return 0;
+ return space_image_main_area_poll(C);
+ }
+ else {
+ return FALSE;
}
- return space_image_main_area_poll(C);
}
/********************** view pan operator *********************/
@@ -564,21 +575,21 @@ static int image_view_all_exec(bContext *C, wmOperator *UNUSED(op))
sima = CTX_wm_space_image(C);
ar = CTX_wm_region(C);
- ED_space_image_size(sima, &width, &height);
- ED_space_image_aspect(sima, &aspx, &aspy);
+ ED_space_image_get_size(sima, &width, &height);
+ ED_space_image_get_aspect(sima, &aspx, &aspy);
w = width * aspx;
h = height * aspy;
- /* check if the image will fit in the image with zoom==1 */
- width = ar->winrct.xmax - ar->winrct.xmin + 1;
- height = ar->winrct.ymax - ar->winrct.ymin + 1;
+ /* check if the image will fit in the image with (zoom == 1) */
+ width = BLI_rcti_size_x(&ar->winrct) + 1;
+ height = BLI_rcti_size_y(&ar->winrct) + 1;
if ((w >= width || h >= height) && (width > 0 && height > 0)) {
/* find the zoom value that will fit the image in the image space */
zoomx = width / w;
zoomy = height / h;
- sima_zoom_set(sima, ar, 1.0f / power_of_2(1 / MIN2(zoomx, zoomy)), NULL);
+ sima_zoom_set(sima, ar, 1.0f / power_of_2(1.0f / minf(zoomx, zoomy)), NULL);
}
else
sima_zoom_set(sima, ar, 1.0f, NULL);
@@ -621,8 +632,8 @@ static int image_view_selected_exec(bContext *C, wmOperator *UNUSED(op))
obedit = CTX_data_edit_object(C);
ima = ED_space_image(sima);
- ED_space_image_size(sima, &width, &height);
- ED_image_aspect(ima, &aspx, &aspy);
+ ED_space_image_get_size(sima, &width, &height);
+ ED_space_image_get_aspect(sima, &aspx, &aspy);
width = width * aspx;
height = height * aspy;
@@ -901,6 +912,26 @@ static int image_open_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)
ima = tex->ima;
}
+ if (ima == NULL) {
+ PointerRNA ptr;
+ PropertyRNA *prop;
+
+ /* hook into UI */
+ uiIDContextProperty(C, &ptr, &prop);
+
+ if (prop) {
+ PointerRNA oldptr;
+ Image *oldima;
+
+ oldptr = RNA_property_pointer_get(&ptr, prop);
+ oldima = (Image *)oldptr.id.data;
+ /* unlikely to fail but better avoid strange crash */
+ if (oldima && GS(oldima->id.name) == ID_IM) {
+ ima = oldima;
+ }
+ }
+ }
+
if (ima)
path = ima->name;
@@ -931,7 +962,8 @@ void IMAGE_OT_open(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
}
/******************** Match movie length operator ********************/
@@ -1020,7 +1052,7 @@ static int image_replace_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(eve
return image_replace_exec(C, op);
if (!RNA_struct_property_is_set(op->ptr, "relative_path"))
- RNA_boolean_set(op->ptr, "relative_path", (strncmp(sima->image->name, "//", 2)) == 0);
+ RNA_boolean_set(op->ptr, "relative_path", BLI_path_is_rel(sima->image->name));
image_filesel(C, op, sima->image->name);
@@ -1043,7 +1075,8 @@ void IMAGE_OT_replace(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
}
/******************** save image as operator ********************/
@@ -1128,7 +1161,7 @@ static int save_image_options_init(SaveImageOptions *simopts, SpaceImage *sima,
/* check for empty path */
if (guess_path && simopts->filepath[0] == 0) {
- if ( (G.ima[0] == '/') && (G.ima[1] == '/') && (G.ima[2] == '\0') ) {
+ if ((G.ima[0] == '/') && (G.ima[1] == '/') && (G.ima[2] == '\0')) {
BLI_strncpy(simopts->filepath, "//untitled", FILE_MAX);
}
else {
@@ -1136,6 +1169,10 @@ static int save_image_options_init(SaveImageOptions *simopts, SpaceImage *sima,
}
BLI_path_abs(simopts->filepath, G.main->name);
}
+
+ /* color management */
+ BKE_color_managed_display_settings_copy(&simopts->im_format.display_settings, &scene->display_settings);
+ BKE_color_managed_view_settings_copy(&simopts->im_format.view_settings, &scene->view_settings);
}
ED_space_image_release_buffer(sima, lock);
@@ -1146,6 +1183,8 @@ static int save_image_options_init(SaveImageOptions *simopts, SpaceImage *sima,
static void save_image_options_from_op(SaveImageOptions *simopts, wmOperator *op)
{
if (op->customdata) {
+ BKE_color_managed_view_settings_free(&simopts->im_format.view_settings);
+
simopts->im_format = *(ImageFormatData *)op->customdata;
}
@@ -1158,6 +1197,8 @@ static void save_image_options_from_op(SaveImageOptions *simopts, wmOperator *op
static void save_image_options_to_op(SaveImageOptions *simopts, wmOperator *op)
{
if (op->customdata) {
+ BKE_color_managed_view_settings_free(&((ImageFormatData *)op->customdata)->view_settings);
+
*(ImageFormatData *)op->customdata = simopts->im_format;
}
@@ -1173,9 +1214,12 @@ static void save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI
ImBuf *ibuf = ED_space_image_acquire_buffer(sima, &lock);
if (ibuf) {
+ ImBuf *colormanaged_ibuf;
const char *relbase = ID_BLEND_PATH(CTX_data_main(C), &ima->id);
const short relative = (RNA_struct_find_property(op->ptr, "relative_path") && RNA_boolean_get(op->ptr, "relative_path"));
const short save_copy = (RNA_struct_find_property(op->ptr, "copy") && RNA_boolean_get(op->ptr, "copy"));
+ const short save_as_render = (RNA_struct_find_property(op->ptr, "save_as_render") && RNA_boolean_get(op->ptr, "save_as_render"));
+ ImageFormatData *imf = &simopts->im_format;
short ok = FALSE;
/* old global to ensure a 2nd save goes to same dir */
@@ -1199,7 +1243,9 @@ static void save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI
ibuf->planes = BKE_imbuf_alpha_test(ibuf) ? 32 : 24;
}
}
-
+
+ colormanaged_ibuf = IMB_colormanagement_imbuf_for_write(ibuf, save_as_render, TRUE, &imf->view_settings, &imf->display_settings, imf);
+
if (simopts->im_format.imtype == R_IMF_IMTYPE_MULTILAYER) {
Scene *scene = CTX_data_scene(C);
RenderResult *rr = BKE_image_acquire_renderresult(scene, ima);
@@ -1213,7 +1259,8 @@ static void save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI
BKE_image_release_renderresult(scene, ima);
}
else {
- if (BKE_imbuf_write_as(ibuf, simopts->filepath, &simopts->im_format, save_copy)) {
+ if (BKE_imbuf_write_as(colormanaged_ibuf, simopts->filepath, &simopts->im_format, save_copy))
+ {
ok = TRUE;
}
}
@@ -1252,6 +1299,8 @@ static void save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI
if (relative) {
BLI_path_rel(ima->name, relbase); /* only after saving */
}
+
+ IMB_colormanagment_colorspace_from_ibuf_ftype(&ima->colorspace_settings, ibuf);
}
}
else {
@@ -1262,6 +1311,9 @@ static void save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI
WM_event_add_notifier(C, NC_IMAGE | NA_EDITED, sima->image);
WM_cursor_wait(0);
+
+ if (colormanaged_ibuf != ibuf)
+ IMB_freeImBuf(colormanaged_ibuf);
}
ED_space_image_release_buffer(sima, lock);
@@ -1270,6 +1322,9 @@ static void save_image_doit(bContext *C, SpaceImage *sima, wmOperator *op, SaveI
static void image_save_as_free(wmOperator *op)
{
if (op->customdata) {
+ ImageFormatData *im_format = (ImageFormatData *)op->customdata;
+ BKE_color_managed_view_settings_free(&im_format->view_settings);
+
MEM_freeN(op->customdata);
op->customdata = NULL;
}
@@ -1322,6 +1377,11 @@ static int image_save_as_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(eve
RNA_boolean_set(op->ptr, "copy", TRUE);
}
+ if (ima->source == IMA_SRC_VIEWER || (ima->flag & IMA_VIEW_AS_RENDER))
+ RNA_boolean_set(op->ptr, "save_as_render", TRUE);
+ else
+ RNA_boolean_set(op->ptr, "save_as_render", FALSE);
+
op->customdata = MEM_mallocN(sizeof(simopts.im_format), __func__);
memcpy(op->customdata, &simopts.im_format, sizeof(simopts.im_format));
@@ -1357,13 +1417,31 @@ static void image_save_as_draw(bContext *UNUSED(C), wmOperator *op)
/* image template */
RNA_pointer_create(NULL, &RNA_ImageFormatSettings, imf, &ptr);
- uiTemplateImageSettings(layout, &ptr);
+ uiTemplateImageSettings(layout, &ptr, FALSE);
/* main draw call */
RNA_pointer_create(NULL, op->type->srna, op->properties, &ptr);
uiDefAutoButsRNA(layout, &ptr, image_save_as_draw_check_prop, '\0');
}
+static int image_save_as_poll(bContext *C)
+{
+ if (space_image_buffer_exists_poll(C)) {
+ if (G.is_rendering) {
+ /* no need to NULL check here */
+ SpaceImage *sima = CTX_wm_space_image(C);
+ Image *ima = ED_space_image(sima);
+
+ if (ima->source == IMA_SRC_VIEWER) {
+ CTX_wm_operator_poll_msg_set(C, "can't save image while rendering");
+ return FALSE;
+ }
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
void IMAGE_OT_save_as(wmOperatorType *ot)
{
// PropertyRNA *prop;
@@ -1379,15 +1457,17 @@ void IMAGE_OT_save_as(wmOperatorType *ot)
ot->invoke = image_save_as_invoke;
ot->cancel = image_save_as_cancel;
ot->ui = image_save_as_draw;
- ot->poll = space_image_buffer_exists_poll;
+ ot->poll = image_save_as_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
+ RNA_def_boolean(ot->srna, "save_as_render", 0, "Save As Render", "Apply render part of display transform when saving byte image");
RNA_def_boolean(ot->srna, "copy", 0, "Copy", "Create a new image file without modifying the current image in blender");
- WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE | MOVIEFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE | MOVIEFILE, FILE_SPECIAL, FILE_SAVE,
+ WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
}
/******************** save image operator ********************/
@@ -1553,7 +1633,7 @@ static int image_new_exec(bContext *C, wmOperator *op)
PropertyRNA *prop;
char name[MAX_ID_NAME - 2];
float color[4];
- int width, height, floatbuf, uvtestgrid, alpha;
+ int width, height, floatbuf, gen_type, alpha;
/* retrieve state */
sima = CTX_wm_space_image(C);
@@ -1564,17 +1644,19 @@ static int image_new_exec(bContext *C, wmOperator *op)
width = RNA_int_get(op->ptr, "width");
height = RNA_int_get(op->ptr, "height");
floatbuf = RNA_boolean_get(op->ptr, "float");
- uvtestgrid = RNA_boolean_get(op->ptr, "uv_test_grid");
+ gen_type = RNA_enum_get(op->ptr, "generated_type");
RNA_float_get_array(op->ptr, "color", color);
alpha = RNA_boolean_get(op->ptr, "alpha");
- if (!floatbuf && scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
+ if (!floatbuf) {
+ /* OCIO_TODO: perhaps we need to convert to display space, not just to sRGB */
linearrgb_to_srgb_v3_v3(color, color);
+ }
if (!alpha)
color[3] = 1.0f;
- ima = BKE_image_add_generated(width, height, name, alpha ? 32 : 24, floatbuf, uvtestgrid, color);
+ ima = BKE_image_add_generated(width, height, name, alpha ? 32 : 24, floatbuf, gen_type, color);
if (!ima)
return OPERATOR_CANCELLED;
@@ -1631,7 +1713,8 @@ void IMAGE_OT_new(wmOperatorType *ot)
prop = RNA_def_float_color(ot->srna, "color", 4, NULL, 0.0f, FLT_MAX, "Color", "Default fill color", 0.0f, 1.0f);
RNA_def_property_float_array_default(prop, default_color);
RNA_def_boolean(ot->srna, "alpha", 1, "Alpha", "Create an image with an alpha channel");
- RNA_def_boolean(ot->srna, "uv_test_grid", 0, "UV Test Grid", "Fill the image with a grid for UV map testing");
+ RNA_def_enum(ot->srna, "generated_type", image_generated_type_items, IMA_GENTYPE_BLANK,
+ "Generated Type", "Fill the image with a grid for UV map testing");
RNA_def_boolean(ot->srna, "float", 0, "32 bit Float", "Create image with 32 bit floating point bit depth");
}
@@ -1652,7 +1735,7 @@ static int image_invert_exec(bContext *C, wmOperator *op)
Image *ima = CTX_data_edit_image(C);
ImBuf *ibuf = BKE_image_get_ibuf(ima, NULL);
- // flags indicate if this channel should be inverted
+ /* flags indicate if this channel should be inverted */
const short r = RNA_boolean_get(op->ptr, "invert_r");
const short g = RNA_boolean_get(op->ptr, "invert_g");
const short b = RNA_boolean_get(op->ptr, "invert_b");
@@ -1660,7 +1743,7 @@ static int image_invert_exec(bContext *C, wmOperator *op)
int i;
- if (ibuf == NULL) // TODO: this should actually never happen, but does for render-results -> cleanup
+ if (ibuf == NULL) /* TODO: this should actually never happen, but does for render-results -> cleanup */
return OPERATOR_CANCELLED;
/* TODO: make this into an IMB_invert_channels(ibuf,r,g,b,a) method!? */
@@ -1904,17 +1987,61 @@ typedef struct ImageSampleInfo {
float *zfp;
int draw;
+ int color_manage;
+ int use_default_view;
} ImageSampleInfo;
-static void image_sample_draw(const bContext *UNUSED(C), ARegion *ar, void *arg_info)
+static void image_sample_draw(const bContext *C, ARegion *ar, void *arg_info)
{
ImageSampleInfo *info = arg_info;
if (info->draw) {
- /* no color management needed for images (color_manage=0) */
- ED_image_draw_info(ar, 0, info->channels, info->x, info->y, info->colp, info->colfp, info->zp, info->zfp);
+ Scene *scene = CTX_data_scene(C);
+
+ ED_image_draw_info(scene, ar, info->color_manage, info->use_default_view, info->channels,
+ info->x, info->y, info->colp, info->colfp, info->zp, info->zfp);
}
}
+/* returns color in SRGB */
+/* matching ED_space_node_color_sample() */
+int ED_space_image_color_sample(SpaceImage *sima, ARegion *ar, int mval[2], float r_col[3])
+{
+ void *lock;
+ ImBuf *ibuf = ED_space_image_acquire_buffer(sima, &lock);
+ float fx, fy;
+ int ret = FALSE;
+
+ if (ibuf == NULL) {
+ ED_space_image_release_buffer(sima, lock);
+ return FALSE;
+ }
+
+ UI_view2d_region_to_view(&ar->v2d, mval[0], mval[1], &fx, &fy);
+
+ if (fx >= 0.0f && fy >= 0.0f && fx < 1.0f && fy < 1.0f) {
+ float *fp;
+ unsigned char *cp;
+ int x = (int)(fx * ibuf->x), y = (int)(fy * ibuf->y);
+
+ CLAMP(x, 0, ibuf->x - 1);
+ CLAMP(y, 0, ibuf->y - 1);
+
+ if (ibuf->rect_float) {
+ fp = (ibuf->rect_float + (ibuf->channels) * (y * ibuf->x + x));
+ linearrgb_to_srgb_v3_v3(r_col, fp);
+ ret = TRUE;
+ }
+ else if (ibuf->rect) {
+ cp = (unsigned char *)(ibuf->rect + y * ibuf->x + x);
+ rgb_uchar_to_float(r_col, cp);
+ ret = TRUE;
+ }
+ }
+
+ ED_space_image_release_buffer(sima, lock);
+ return ret;
+}
+
static void image_sample_apply(bContext *C, wmOperator *op, wmEvent *event)
{
SpaceImage *sima = CTX_wm_space_image(C);
@@ -1923,7 +2050,9 @@ static void image_sample_apply(bContext *C, wmOperator *op, wmEvent *event)
ImBuf *ibuf = ED_space_image_acquire_buffer(sima, &lock);
ImageSampleInfo *info = op->customdata;
float fx, fy;
-
+ Scene *scene = CTX_data_scene(C);
+ CurveMapping *curve_mapping = scene->view_settings.curve_mapping;
+
if (ibuf == NULL) {
ED_space_image_release_buffer(sima, lock);
info->draw = 0;
@@ -1936,6 +2065,7 @@ static void image_sample_apply(bContext *C, wmOperator *op, wmEvent *event)
float *fp;
unsigned char *cp;
int x = (int)(fx * ibuf->x), y = (int)(fy * ibuf->y);
+ Image *image = ED_space_image(sima);
CLAMP(x, 0, ibuf->x - 1);
CLAMP(y, 0, ibuf->y - 1);
@@ -1949,7 +2079,9 @@ static void image_sample_apply(bContext *C, wmOperator *op, wmEvent *event)
info->colfp = NULL;
info->zp = NULL;
info->zfp = NULL;
-
+
+ info->use_default_view = (image->flag & IMA_VIEW_AS_RENDER) ? FALSE : TRUE;
+
if (ibuf->rect) {
cp = (unsigned char *)(ibuf->rect + y * ibuf->x + x);
@@ -1964,6 +2096,8 @@ static void image_sample_apply(bContext *C, wmOperator *op, wmEvent *event)
info->colf[2] = (float)cp[2] / 255.0f;
info->colf[3] = (float)cp[3] / 255.0f;
info->colfp = info->colf;
+
+ info->color_manage = FALSE;
}
if (ibuf->rect_float) {
fp = (ibuf->rect_float + (ibuf->channels) * (y * ibuf->x + x));
@@ -1973,6 +2107,8 @@ static void image_sample_apply(bContext *C, wmOperator *op, wmEvent *event)
info->colf[2] = fp[2];
info->colf[3] = fp[3];
info->colfp = info->colf;
+
+ info->color_manage = TRUE;
}
if (ibuf->zbuf) {
@@ -1983,25 +2119,21 @@ static void image_sample_apply(bContext *C, wmOperator *op, wmEvent *event)
info->zf = ibuf->zbuf_float[y * ibuf->x + x];
info->zfp = &info->zf;
}
-
- if (sima->cumap && ibuf->channels == 4) {
+
+ if (curve_mapping && ibuf->channels == 4) {
/* we reuse this callback for set curves point operators */
if (RNA_struct_find_property(op->ptr, "point")) {
int point = RNA_enum_get(op->ptr, "point");
if (point == 1) {
- curvemapping_set_black_white(sima->cumap, NULL, info->colfp);
- if (ibuf->rect_float)
- curvemapping_do_ibuf(sima->cumap, ibuf);
+ curvemapping_set_black_white(curve_mapping, NULL, info->colfp);
}
else if (point == 0) {
- curvemapping_set_black_white(sima->cumap, info->colfp, NULL);
- if (ibuf->rect_float)
- curvemapping_do_ibuf(sima->cumap, ibuf);
+ curvemapping_set_black_white(curve_mapping, info->colfp, NULL);
}
}
}
-
+
// XXX node curve integration ..
#if 0
{
@@ -2089,7 +2221,7 @@ void IMAGE_OT_sample(wmOperatorType *ot)
ot->invoke = image_sample_invoke;
ot->modal = image_sample_modal;
ot->cancel = image_sample_cancel;
- ot->poll = space_image_image_sample_poll;
+ ot->poll = image_sample_poll;
/* flags */
ot->flag = OPTYPE_BLOCKING;
@@ -2131,8 +2263,11 @@ static int image_sample_line_exec(bContext *C, wmOperator *op)
hist->co[1][0] = x2f;
hist->co[1][1] = y2f;
- BKE_histogram_update_sample_line(hist, ibuf, (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) != 0);
+ BKE_histogram_update_sample_line(hist, ibuf, &scene->view_settings, &scene->display_settings);
+ /* reset y zoom */
+ hist->ymax = 1.0f;
+
ED_space_image_release_buffer(sima, lock);
ED_area_tag_redraw(CTX_wm_area(C));
@@ -2216,14 +2351,15 @@ static int image_record_composite_apply(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
ImBuf *ibuf;
- WM_timecursor(CTX_wm_window(C), scene->r.cfra);
+ WM_cursor_time(CTX_wm_window(C), scene->r.cfra);
// XXX scene->nodetree->test_break= blender_test_break;
// XXX scene->nodetree->test_break= NULL;
BKE_image_all_free_anim_ibufs(scene->r.cfra);
ntreeCompositTagAnimated(scene->nodetree);
- ntreeCompositExecTree(scene->nodetree, &scene->r, 0, scene->r.cfra != rcd->old_cfra); /* 1 is no previews */
+ ntreeCompositExecTree(scene->nodetree, &scene->r, 0, scene->r.cfra != rcd->old_cfra,
+ &scene->view_settings, &scene->display_settings); /* 1 is no previews */
ED_area_tag_redraw(CTX_wm_area(C));
@@ -2403,22 +2539,3 @@ void IMAGE_OT_cycle_render_slot(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "reverse", 0, "Cycle in Reverse", "");
}
-
-/******************** TODO ********************/
-
-/* XXX notifier? */
-
-/* goes over all ImageUsers, and sets frame numbers if auto-refresh is set */
-
-static void image_update_frame(struct Image *UNUSED(ima), struct ImageUser *iuser, void *customdata)
-{
- int cfra = *(int*)customdata;
-
- BKE_image_user_check_frame_calc(iuser, cfra, 0);
-}
-
-void ED_image_update_frame(const Main *mainp, int cfra)
-{
- BKE_image_walk_all_users(mainp, &cfra, image_update_frame);
-}
-
diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c
index 59e47363a22..7f53f378042 100644
--- a/source/blender/editors/space_image/space_image.c
+++ b/source/blender/editors/space_image/space_image.c
@@ -28,11 +28,8 @@
* \ingroup spimage
*/
-
-#include <string.h>
-#include <stdio.h>
-
#include "DNA_mesh_types.h"
+#include "DNA_mask_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
@@ -41,23 +38,23 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
-#include "BLI_rand.h"
-#include "BLI_utildefines.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
#include "BKE_image.h"
#include "BKE_global.h"
-#include "BKE_main.h"
-#include "BKE_mesh.h"
#include "BKE_scene.h"
#include "BKE_screen.h"
#include "BKE_tessmesh.h"
+#include "BKE_sequencer.h"
+#include "BKE_node.h"
#include "IMB_imbuf_types.h"
#include "ED_image.h"
+#include "ED_mask.h"
#include "ED_mesh.h"
+#include "ED_node.h"
#include "ED_space_api.h"
#include "ED_screen.h"
#include "ED_uvedit.h"
@@ -76,238 +73,6 @@
/**************************** common state *****************************/
-/* note; image_panel_properties() uses pointer to sima->image directly */
-Image *ED_space_image(SpaceImage *sima)
-{
- return sima->image;
-}
-
-/* called to assign images to UV faces */
-void ED_space_image_set(SpaceImage *sima, Scene *scene, Object *obedit, Image *ima)
-{
- /* context may be NULL, so use global */
- ED_uvedit_assign_image(G.main, scene, obedit, ima, sima->image);
-
- /* change the space ima after because uvedit_face_visible_test uses the space ima
- * to check if the face is displayed in UV-localview */
- sima->image = ima;
-
- if (ima == NULL || ima->type == IMA_TYPE_R_RESULT || ima->type == IMA_TYPE_COMPOSITE)
- sima->flag &= ~SI_DRAWTOOL;
-
- if (sima->image)
- BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_USER_NEW_IMAGE);
-
- if (sima->image && sima->image->id.us == 0)
- sima->image->id.us = 1;
-
- if (obedit)
- WM_main_add_notifier(NC_GEOM | ND_DATA, obedit->data);
-
- WM_main_add_notifier(NC_SPACE | ND_SPACE_IMAGE, NULL);
-}
-
-ImBuf *ED_space_image_acquire_buffer(SpaceImage *sima, void **lock_r)
-{
- ImBuf *ibuf;
-
- if (sima && sima->image) {
-#if 0
- if (sima->image->type == IMA_TYPE_R_RESULT && BIF_show_render_spare())
- return BIF_render_spare_imbuf();
- else
-#endif
- ibuf = BKE_image_acquire_ibuf(sima->image, &sima->iuser, lock_r);
-
- if (ibuf && (ibuf->rect || ibuf->rect_float))
- return ibuf;
- }
-
- return NULL;
-}
-
-void ED_space_image_release_buffer(SpaceImage *sima, void *lock)
-{
- if (sima && sima->image)
- BKE_image_release_ibuf(sima->image, lock);
-}
-
-int ED_space_image_has_buffer(SpaceImage *sima)
-{
- ImBuf *ibuf;
- void *lock;
- int has_buffer;
-
- ibuf = ED_space_image_acquire_buffer(sima, &lock);
- has_buffer = (ibuf != NULL);
- ED_space_image_release_buffer(sima, lock);
-
- return has_buffer;
-}
-
-void ED_image_size(Image *ima, int *width, int *height)
-{
- ImBuf *ibuf = NULL;
- void *lock;
-
- if (ima)
- ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock);
-
- if (ibuf && ibuf->x > 0 && ibuf->y > 0) {
- *width = ibuf->x;
- *height = ibuf->y;
- }
- else {
- *width = 256;
- *height = 256;
- }
-
- if (ima)
- BKE_image_release_ibuf(ima, lock);
-}
-
-void ED_space_image_size(SpaceImage *sima, int *width, int *height)
-{
- Scene *scene = sima->iuser.scene;
- ImBuf *ibuf;
- void *lock;
-
- ibuf = ED_space_image_acquire_buffer(sima, &lock);
-
- if (ibuf && ibuf->x > 0 && ibuf->y > 0) {
- *width = ibuf->x;
- *height = ibuf->y;
- }
- else if (sima->image && sima->image->type == IMA_TYPE_R_RESULT && scene) {
- /* not very important, just nice */
- *width = (scene->r.xsch * scene->r.size) / 100;
- *height = (scene->r.ysch * scene->r.size) / 100;
-
- if ((scene->r.mode & R_BORDER) && (scene->r.mode & R_CROP)) {
- *width *= (scene->r.border.xmax - scene->r.border.xmin);
- *height *= (scene->r.border.ymax - scene->r.border.ymin);
- }
-
- }
- /* I know a bit weak... but preview uses not actual image size */
- // XXX else if (image_preview_active(sima, width, height));
- else {
- *width = 256;
- *height = 256;
- }
-
- ED_space_image_release_buffer(sima, lock);
-}
-
-void ED_image_aspect(Image *ima, float *aspx, float *aspy)
-{
- *aspx = *aspy = 1.0;
-
- if ((ima == NULL) || (ima->type == IMA_TYPE_R_RESULT) || (ima->type == IMA_TYPE_COMPOSITE) ||
- (ima->aspx == 0.0f || ima->aspy == 0.0f))
- {
- return;
- }
-
- /* x is always 1 */
- *aspy = ima->aspy / ima->aspx;
-}
-
-void ED_space_image_aspect(SpaceImage *sima, float *aspx, float *aspy)
-{
- ED_image_aspect(ED_space_image(sima), aspx, aspy);
-}
-
-void ED_space_image_zoom(SpaceImage *sima, ARegion *ar, float *zoomx, float *zoomy)
-{
- int width, height;
-
- ED_space_image_size(sima, &width, &height);
-
- *zoomx = (float)(ar->winrct.xmax - ar->winrct.xmin + 1) / (float)((ar->v2d.cur.xmax - ar->v2d.cur.xmin) * width);
- *zoomy = (float)(ar->winrct.ymax - ar->winrct.ymin + 1) / (float)((ar->v2d.cur.ymax - ar->v2d.cur.ymin) * height);
-}
-
-void ED_space_image_uv_aspect(SpaceImage *sima, float *aspx, float *aspy)
-{
- int w, h;
-
- ED_space_image_aspect(sima, aspx, aspy);
- ED_space_image_size(sima, &w, &h);
-
- *aspx *= (float)w;
- *aspy *= (float)h;
-
- if (*aspx < *aspy) {
- *aspy = *aspy / *aspx;
- *aspx = 1.0f;
- }
- else {
- *aspx = *aspx / *aspy;
- *aspy = 1.0f;
- }
-}
-
-void ED_image_uv_aspect(Image *ima, float *aspx, float *aspy)
-{
- int w, h;
-
- ED_image_aspect(ima, aspx, aspy);
- ED_image_size(ima, &w, &h);
-
- *aspx *= (float)w;
- *aspy *= (float)h;
-}
-
-int ED_space_image_show_render(SpaceImage *sima)
-{
- return (sima->image && ELEM(sima->image->type, IMA_TYPE_R_RESULT, IMA_TYPE_COMPOSITE));
-}
-
-int ED_space_image_show_paint(SpaceImage *sima)
-{
- if (ED_space_image_show_render(sima))
- return 0;
-
- return (sima->flag & SI_DRAWTOOL);
-}
-
-int ED_space_image_show_uvedit(SpaceImage *sima, Object *obedit)
-{
- if (sima && (ED_space_image_show_render(sima) || ED_space_image_show_paint(sima)))
- return 0;
-
- if (obedit && obedit->type == OB_MESH) {
- struct BMEditMesh *em = BMEdit_FromObject(obedit);
- int ret;
-
- ret = EDBM_mtexpoly_check(em);
-
- return ret;
- }
-
- return 0;
-}
-
-int ED_space_image_show_uvshadow(SpaceImage *sima, Object *obedit)
-{
- if (ED_space_image_show_render(sima))
- return 0;
-
- if (ED_space_image_show_paint(sima))
- if (obedit && obedit->type == OB_MESH) {
- struct BMEditMesh *em = BMEdit_FromObject(obedit);
- int ret;
-
- ret = EDBM_mtexpoly_check(em);
-
- return ret;
- }
-
- return 0;
-}
-
-
static void image_scopes_tag_refresh(ScrArea *sa)
{
SpaceImage *sima = (SpaceImage *)sa->spacedata.first;
@@ -384,10 +149,10 @@ static SpaceLink *image_new(const bContext *UNUSED(C))
simage = MEM_callocN(sizeof(SpaceImage), "initimage");
simage->spacetype = SPACE_IMAGE;
- simage->zoom = 1;
- simage->lock = 1;
+ simage->zoom = 1.0f;
+ simage->lock = TRUE;
- simage->iuser.ok = 1;
+ simage->iuser.ok = TRUE;
simage->iuser.fie_ima = 2;
simage->iuser.frames = 100;
@@ -430,9 +195,7 @@ static SpaceLink *image_new(const bContext *UNUSED(C))
static void image_free(SpaceLink *sl)
{
SpaceImage *simage = (SpaceImage *) sl;
-
- if (simage->cumap)
- curvemapping_free(simage->cumap);
+
scopes_free(&simage->scopes);
}
@@ -452,8 +215,6 @@ static SpaceLink *image_duplicate(SpaceLink *sl)
SpaceImage *simagen = MEM_dupallocN(sl);
/* clear or remove stuff from old */
- if (simagen->cumap)
- simagen->cumap = curvemapping_copy(simagen->cumap);
scopes_new(&simagen->scopes);
@@ -554,6 +315,19 @@ static void image_keymap(struct wmKeyConfig *keyconf)
RNA_string_set(kmi->ptr, "data_path", "space_data.image.render_slot");
RNA_int_set(kmi->ptr, "value", i);
}
+
+ /* pivot */
+ kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", COMMAKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "data_path", "space_data.pivot_point");
+ RNA_string_set(kmi->ptr, "value", "CENTER");
+
+ kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", COMMAKEY, KM_PRESS, KM_CTRL, 0);
+ RNA_string_set(kmi->ptr, "data_path", "space_data.pivot_point");
+ RNA_string_set(kmi->ptr, "value", "MEDIAN");
+
+ kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", PERIODKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "data_path", "space_data.pivot_point");
+ RNA_string_set(kmi->ptr, "value", "CURSOR");
}
/* dropboxes */
@@ -579,12 +353,14 @@ static void image_dropboxes(void)
WM_dropbox_add(lb, "IMAGE_OT_open", image_drop_poll, image_drop_copy);
}
-
-
-static void image_refresh(const bContext *C, ScrArea *UNUSED(sa))
+/**
+ * \note take care not to get into feedback loop here,
+ * calling composite job causes viewer to refresh.
+ */
+static void image_refresh(const bContext *C, ScrArea *sa)
{
Scene *scene = CTX_data_scene(C);
- SpaceImage *sima = CTX_wm_space_image(C);
+ SpaceImage *sima = sa->spacedata.first;
Object *obedit = CTX_data_edit_object(C);
Image *ima;
@@ -593,15 +369,31 @@ static void image_refresh(const bContext *C, ScrArea *UNUSED(sa))
BKE_image_user_check_frame_calc(&sima->iuser, scene->r.cfra, 0);
/* check if we have to set the image from the editmesh */
- if (ima && (ima->source == IMA_SRC_VIEWER || sima->pin)) ;
+ if (ima && (ima->source == IMA_SRC_VIEWER && sima->mode == SI_MODE_MASK)) {
+ if (sima->lock == FALSE && G.moving) {
+ /* pass */
+ }
+ else {
+ if (scene->nodetree) {
+ Mask *mask = ED_space_image_get_mask(sima);
+ if (mask) {
+ ED_node_composite_job(C, scene->nodetree, scene);
+ }
+ }
+ }
+ }
+ else if (ima && (ima->source == IMA_SRC_VIEWER || sima->pin)) {
+ /* pass */
+ }
else if (obedit && obedit->type == OB_MESH) {
Mesh *me = (Mesh *)obedit->data;
struct BMEditMesh *em = me->edit_btmesh;
- int sloppy = 1; /* partially selected face is ok */
+ int sloppy = TRUE; /* partially selected face is ok */
+ int selected = !(scene->toolsettings->uv_flag & UV_SYNC_SELECTION); /* only selected active face? */
if (BKE_scene_use_new_shading_nodes(scene)) {
/* new shading system, get image from material */
- BMFace *efa = BM_active_face_get(em->bm, sloppy);
+ BMFace *efa = BM_active_face_get(em->bm, sloppy, selected);
if (efa) {
Image *node_ima;
@@ -616,16 +408,15 @@ static void image_refresh(const bContext *C, ScrArea *UNUSED(sa))
MTexPoly *tf;
if (em && EDBM_mtexpoly_check(em)) {
- sima->image = NULL;
-
- tf = EDBM_mtexpoly_active_get(em, NULL, TRUE); /* partially selected face is ok */
-
+ tf = EDBM_mtexpoly_active_get(em, NULL, sloppy, selected);
+
if (tf) {
/* don't need to check for pin here, see above */
sima->image = tf->tpage;
- if (sima->flag & SI_EDITTILE) ;
- else sima->curtile = tf->tile;
+ if ((sima->flag & SI_EDITTILE) == 0) {
+ sima->curtile = tf->tile;
+ }
}
}
}
@@ -643,15 +434,19 @@ static void image_listener(ScrArea *sa, wmNotifier *wmn)
case ND_FRAME:
image_scopes_tag_refresh(sa);
ED_area_tag_refresh(sa);
- ED_area_tag_redraw(sa);
+ ED_area_tag_redraw(sa);
break;
case ND_MODE:
+ if (wmn->subtype == NS_EDITMODE_MESH)
+ ED_area_tag_refresh(sa);
+ ED_area_tag_redraw(sa);
+ break;
case ND_RENDER_RESULT:
+ case ND_RENDER_OPTIONS:
case ND_COMPO_RESULT:
if (ED_space_image_show_render(sima))
image_scopes_tag_refresh(sa);
- ED_area_tag_refresh(sa);
- ED_area_tag_redraw(sa);
+ ED_area_tag_redraw(sa);
break;
}
break;
@@ -668,6 +463,35 @@ static void image_listener(ScrArea *sa, wmNotifier *wmn)
ED_area_tag_redraw(sa);
}
break;
+ case NC_MASK:
+ {
+ // Scene *scene = wmn->window->screen->scene;
+ /* ideally would check for: ED_space_image_check_show_maskedit(scene, sima) but we cant get the scene */
+ if (sima->mode == SI_MODE_MASK) {
+ switch (wmn->data) {
+ case ND_SELECT:
+ ED_area_tag_redraw(sa);
+ break;
+ case ND_DATA:
+ case ND_DRAW:
+ /* causes node-recalc */
+ ED_area_tag_redraw(sa);
+ ED_area_tag_refresh(sa);
+ break;
+ }
+ switch (wmn->action) {
+ case NA_SELECTED:
+ ED_area_tag_redraw(sa);
+ break;
+ case NA_EDITED:
+ /* causes node-recalc */
+ ED_area_tag_redraw(sa);
+ ED_area_tag_refresh(sa);
+ break;
+ }
+ }
+ break;
+ }
case NC_GEOM:
switch (wmn->data) {
case ND_DATA:
@@ -693,7 +517,7 @@ static void image_listener(ScrArea *sa, wmNotifier *wmn)
}
}
-const char *image_context_dir[] = {"edit_image", NULL};
+const char *image_context_dir[] = {"edit_image", "edit_mask", NULL};
static int image_context(const bContext *C, const char *member, bContextDataResult *result)
{
@@ -706,7 +530,13 @@ static int image_context(const bContext *C, const char *member, bContextDataResu
CTX_data_id_pointer_set(result, (ID *)ED_space_image(sima));
return 1;
}
-
+ else if (CTX_data_equals(member, "edit_mask")) {
+ Mask *mask = ED_space_image_get_mask(sima);
+ if (mask) {
+ CTX_data_id_pointer_set(result, &mask->id);
+ }
+ return TRUE;
+ }
return 0;
}
@@ -723,7 +553,7 @@ static void image_main_area_set_view2d(SpaceImage *sima, ARegion *ar)
if (image_preview_active(curarea, &width, &height)) ;
else
#endif
- ED_space_image_size(sima, &width, &height);
+ ED_space_image_get_size(sima, &width, &height);
w = width;
h = height;
@@ -731,8 +561,8 @@ static void image_main_area_set_view2d(SpaceImage *sima, ARegion *ar)
if (ima)
h *= ima->aspy / ima->aspx;
- winx = ar->winrct.xmax - ar->winrct.xmin + 1;
- winy = ar->winrct.ymax - ar->winrct.ymin + 1;
+ winx = BLI_rcti_size_x(&ar->winrct) + 1;
+ winy = BLI_rcti_size_y(&ar->winrct) + 1;
ar->v2d.tot.xmin = 0;
ar->v2d.tot.ymin = 0;
@@ -773,6 +603,10 @@ static void image_main_area_init(wmWindowManager *wm, ARegion *ar)
// image space manages own v2d
// UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_STANDARD, ar->winx, ar->winy);
+ /* mask polls mode */
+ keymap = WM_keymap_find(wm->defaultconf, "Mask Editing", 0, 0);
+ WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
+
/* image paint polls for mode */
keymap = WM_keymap_find(wm->defaultconf, "Image Paint", 0, 0);
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
@@ -797,6 +631,7 @@ static void image_main_area_draw(const bContext *C, ARegion *ar)
SpaceImage *sima = CTX_wm_space_image(C);
Object *obact = CTX_data_active_object(C);
Object *obedit = CTX_data_edit_object(C);
+ Mask *mask = NULL;
Scene *scene = CTX_data_scene(C);
View2D *v2d = &ar->v2d;
//View2DScrollers *scrollers;
@@ -815,14 +650,23 @@ static void image_main_area_draw(const bContext *C, ARegion *ar)
/* we set view2d from own zoom and offset each time */
image_main_area_set_view2d(sima, ar);
-
+
/* we draw image in pixelspace */
- draw_image_main(sima, ar, scene);
+ draw_image_main(C, ar);
/* and uvs in 0.0-1.0 space */
UI_view2d_view_ortho(v2d);
draw_uvedit_main(sima, ar, scene, obedit, obact);
+ /* check for mask (delay draw) */
+ if (ED_space_image_show_uvedit(sima, obedit)) {
+ /* pass */
+ }
+ else if (sima->mode == SI_MODE_MASK) {
+ mask = ED_space_image_get_mask(sima);
+ draw_image_cursor(sima, ar);
+ }
+
ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST_VIEW);
/* Grease Pencil too (in addition to UV's) */
@@ -836,6 +680,23 @@ static void image_main_area_draw(const bContext *C, ARegion *ar)
/* draw Grease Pencil - screen space only */
draw_image_grease_pencil((bContext *)C, 0);
+ if (mask) {
+ int width, height;
+ float aspx, aspy;
+ ED_space_image_get_size(sima, &width, &height);
+ ED_space_image_get_aspect(sima, &aspx, &aspy);
+ ED_mask_draw_region(mask, ar,
+ sima->mask_info.draw_flag, sima->mask_info.draw_type,
+ width, height,
+ aspx, aspy,
+ TRUE, FALSE,
+ NULL, C);
+
+ ED_mask_draw_frames(mask, ar, CFRA, mask->sfra, mask->efra);
+
+ draw_image_cursor(sima, ar);
+ }
+
/* scrollers? */
#if 0
scrollers = UI_view2d_scrollers_calc(C, v2d, V2D_UNIT_VALUES, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY);
@@ -848,8 +709,8 @@ static void image_main_area_listener(ARegion *ar, wmNotifier *wmn)
{
/* context changes */
switch (wmn->category) {
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL)
+ case NC_GPENCIL:
+ if (wmn->action == NA_EDITED)
ED_region_tag_redraw(ar);
break;
}
@@ -877,8 +738,8 @@ static void image_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
{
/* context changes */
switch (wmn->category) {
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL)
+ case NC_GPENCIL:
+ if (wmn->data == ND_DATA)
ED_region_tag_redraw(ar);
break;
case NC_BRUSH:
@@ -915,9 +776,9 @@ static void image_scope_area_draw(const bContext *C, ARegion *ar)
ImBuf *ibuf = ED_space_image_acquire_buffer(sima, &lock);
if (ibuf) {
if (!sima->scopes.ok) {
- BKE_histogram_update_sample_line(&sima->sample_line_hist, ibuf, scene->r.color_mgt_flag & R_COLOR_MANAGEMENT);
+ BKE_histogram_update_sample_line(&sima->sample_line_hist, ibuf, &scene->view_settings, &scene->display_settings);
}
- scopes_update(&sima->scopes, ibuf, scene->r.color_mgt_flag & R_COLOR_MANAGEMENT);
+ scopes_update(&sima->scopes, ibuf, &scene->view_settings, &scene->display_settings);
}
ED_space_image_release_buffer(sima, lock);
diff --git a/source/blender/editors/space_info/info_draw.c b/source/blender/editors/space_info/info_draw.c
index 329917a9f7e..35e19bcce38 100644
--- a/source/blender/editors/space_info/info_draw.c
+++ b/source/blender/editors/space_info/info_draw.c
@@ -249,7 +249,7 @@ static int report_textview_line_color(struct TextViewContext *tvc, unsigned char
#undef USE_INFO_NEWLINE
-static int info_textview_main__internal(struct SpaceInfo *sinfo, struct ARegion *ar, ReportList *reports, int draw, int mval[2], void **mouse_pick, int *pos_pick)
+static int info_textview_main__internal(struct SpaceInfo *sinfo, ARegion *ar, ReportList *reports, int draw, int mval[2], void **mouse_pick, int *pos_pick)
{
int ret = 0;
@@ -279,7 +279,7 @@ static int info_textview_main__internal(struct SpaceInfo *sinfo, struct ARegion
return ret;
}
-void *info_text_pick(struct SpaceInfo *sinfo, struct ARegion *ar, ReportList *reports, int mouse_y)
+void *info_text_pick(struct SpaceInfo *sinfo, ARegion *ar, ReportList *reports, int mouse_y)
{
void *mouse_pick = NULL;
int mval[2];
@@ -292,13 +292,13 @@ void *info_text_pick(struct SpaceInfo *sinfo, struct ARegion *ar, ReportList *re
}
-int info_textview_height(struct SpaceInfo *sinfo, struct ARegion *ar, ReportList *reports)
+int info_textview_height(struct SpaceInfo *sinfo, ARegion *ar, ReportList *reports)
{
int mval[2] = {INT_MAX, INT_MAX};
return info_textview_main__internal(sinfo, ar, reports, 0, mval, NULL, NULL);
}
-void info_textview_main(struct SpaceInfo *sinfo, struct ARegion *ar, ReportList *reports)
+void info_textview_main(struct SpaceInfo *sinfo, ARegion *ar, ReportList *reports)
{
int mval[2] = {INT_MAX, INT_MAX};
info_textview_main__internal(sinfo, ar, reports, 1, mval, NULL, NULL);
diff --git a/source/blender/editors/space_info/info_ops.c b/source/blender/editors/space_info/info_ops.c
index 33a2d5c18c5..805ff1794c9 100644
--- a/source/blender/editors/space_info/info_ops.c
+++ b/source/blender/editors/space_info/info_ops.c
@@ -315,7 +315,8 @@ void FILE_OT_find_missing_files(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
}
/********************* report box operator *********************/
diff --git a/source/blender/editors/space_info/info_report.c b/source/blender/editors/space_info/info_report.c
index 46cd2530063..2324f735a33 100644
--- a/source/blender/editors/space_info/info_report.c
+++ b/source/blender/editors/space_info/info_report.c
@@ -231,10 +231,7 @@ static int borderselect_exec(bContext *C, wmOperator *op)
short selecting = (RNA_int_get(op->ptr, "gesture_mode") == GESTURE_MODAL_SELECT);
//int mval[2];
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
#if 0
mval[0] = rect.xmin;
diff --git a/source/blender/editors/space_info/info_stats.c b/source/blender/editors/space_info/info_stats.c
index 7870e64228a..5e5e0c87feb 100644
--- a/source/blender/editors/space_info/info_stats.c
+++ b/source/blender/editors/space_info/info_stats.c
@@ -70,7 +70,8 @@ typedef struct SceneStats {
static void stats_object(Object *ob, int sel, int totob, SceneStats *stats)
{
switch (ob->type) {
- case OB_MESH: {
+ case OB_MESH:
+ {
/* we assume derivedmesh is already built, this strictly does stats now. */
DerivedMesh *dm = ob->derivedFinal;
int totvert, totedge, totface;
@@ -101,7 +102,8 @@ static void stats_object(Object *ob, int sel, int totob, SceneStats *stats)
break;
case OB_SURF:
case OB_CURVE:
- case OB_FONT: {
+ case OB_FONT:
+ {
int tot = 0, totf = 0;
stats->totcurve += totob;
@@ -121,7 +123,8 @@ static void stats_object(Object *ob, int sel, int totob, SceneStats *stats)
}
break;
}
- case OB_MBALL: {
+ case OB_MBALL:
+ {
int tot = 0, totf = 0;
BKE_displist_count(&ob->disp, &tot, &totf);
@@ -365,7 +368,7 @@ static void stats_string(Scene *scene)
s += sprintf(s, "%s | ", versionstr);
if (scene->obedit) {
- if (ob_get_keyblock(scene->obedit))
+ if (BKE_keyblock_from_object(scene->obedit))
s += sprintf(s, "(Key) ");
if (scene->obedit->type == OB_MESH) {
diff --git a/source/blender/editors/space_info/space_info.c b/source/blender/editors/space_info/space_info.c
index 7cb89b6bc6b..034c382cfd2 100644
--- a/source/blender/editors/space_info/space_info.c
+++ b/source/blender/editors/space_info/space_info.c
@@ -101,7 +101,7 @@ static SpaceLink *info_new(const bContext *UNUSED(C))
/* not spacelink itself */
static void info_free(SpaceLink *UNUSED(sl))
{
-// SpaceInfo *sinfo= (SpaceInfo*) sl;
+// SpaceInfo *sinfo = (SpaceInfo *) sl;
}
diff --git a/source/blender/editors/space_logic/logic_buttons.c b/source/blender/editors/space_logic/logic_buttons.c
index 1595889f596..abdfa0ef4dd 100644
--- a/source/blender/editors/space_logic/logic_buttons.c
+++ b/source/blender/editors/space_logic/logic_buttons.c
@@ -84,10 +84,10 @@ static int cut_links_intersect(uiLinkLine *line, float mcoords[][2], int tot)
int i, b;
rcti rectlink;
- rectlink.xmin = (int) (line->from->x1 + line->from->x2) / 2;
- rectlink.ymin = (int) (line->from->y1 + line->from->y2) / 2;
- rectlink.xmax = (int) (line->to->x1 + line->to->x2) / 2;
- rectlink.ymax = (int) (line->to->y1 + line->to->y2) / 2;
+ rectlink.xmin = (int)BLI_rctf_cent_x(&line->from->rect);
+ rectlink.ymin = (int)BLI_rctf_cent_y(&line->from->rect);
+ rectlink.xmax = (int)BLI_rctf_cent_x(&line->to->rect);
+ rectlink.ymax = (int)BLI_rctf_cent_y(&line->to->rect);
if (ui_link_bezier_points(&rectlink, coord_array, LINK_RESOL)) {
for (i=0; i<tot-1; i++)
diff --git a/source/blender/editors/space_logic/logic_ops.c b/source/blender/editors/space_logic/logic_ops.c
index 1e976cebafd..f2013e405e2 100644
--- a/source/blender/editors/space_logic/logic_ops.c
+++ b/source/blender/editors/space_logic/logic_ops.c
@@ -64,25 +64,25 @@
/* ************* Generic Operator Helpers ************* */
static int edit_sensor_poll(bContext *C)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "sensor", &RNA_Sensor);
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "sensor", &RNA_Sensor);
- if (ptr.data && ((ID*)ptr.id.data)->lib) return 0;
+ if (ptr.data && ((ID *)ptr.id.data)->lib) return 0;
return 1;
}
static int edit_controller_poll(bContext *C)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "controller", &RNA_Controller);
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "controller", &RNA_Controller);
- if (ptr.data && ((ID*)ptr.id.data)->lib) return 0;
+ if (ptr.data && ((ID *)ptr.id.data)->lib) return 0;
return 1;
}
static int edit_actuator_poll(bContext *C)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "actuator", &RNA_Actuator);
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "actuator", &RNA_Actuator);
- if (ptr.data && ((ID*)ptr.id.data)->lib) return 0;
+ if (ptr.data && ((ID *)ptr.id.data)->lib) return 0;
return 1;
}
@@ -94,7 +94,7 @@ static void edit_sensor_properties(wmOperatorType *ot)
static int edit_sensor_invoke_properties(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "sensor", &RNA_Sensor);
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "sensor", &RNA_Sensor);
if (RNA_struct_property_is_set(op->ptr, "sensor") && RNA_struct_property_is_set(op->ptr, "object") )
return 1;
@@ -104,7 +104,7 @@ static int edit_sensor_invoke_properties(bContext *C, wmOperator *op)
Object *ob = ptr.id.data;
RNA_string_set(op->ptr, "sensor", sens->name);
- RNA_string_set(op->ptr, "object", ob->id.name+2);
+ RNA_string_set(op->ptr, "object", ob->id.name + 2);
return 1;
}
@@ -123,7 +123,7 @@ static Object *edit_object_property_get(bContext *C, wmOperator *op)
if (BLI_strnlen(ob_name, MAX_NAME) > 0)
ob = BLI_findstring(&(CTX_data_main(C)->object), ob_name, offsetof(ID, name) + 2);
else
- ob= ED_object_active_context(C);
+ ob = ED_object_active_context(C);
return ob;
}
@@ -135,7 +135,7 @@ static bSensor *edit_sensor_property_get(bContext *C, wmOperator *op, Object **o
RNA_string_get(op->ptr, "sensor", sensor_name);
- *ob= edit_object_property_get(C, op);
+ *ob = edit_object_property_get(C, op);
if (!*ob) return NULL;
sens = BLI_findstring(&((*ob)->sensors), sensor_name, offsetof(bSensor, name));
@@ -150,7 +150,7 @@ static void edit_controller_properties(wmOperatorType *ot)
static int edit_controller_invoke_properties(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "controller", &RNA_Controller);
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "controller", &RNA_Controller);
if (RNA_struct_property_is_set(op->ptr, "controller") && RNA_struct_property_is_set(op->ptr, "object") )
return 1;
@@ -160,7 +160,7 @@ static int edit_controller_invoke_properties(bContext *C, wmOperator *op)
Object *ob = ptr.id.data;
RNA_string_set(op->ptr, "controller", cont->name);
- RNA_string_set(op->ptr, "object", ob->id.name+2);
+ RNA_string_set(op->ptr, "object", ob->id.name + 2);
return 1;
}
@@ -174,7 +174,7 @@ static bController *edit_controller_property_get(bContext *C, wmOperator *op, Ob
RNA_string_get(op->ptr, "controller", controller_name);
- *ob= edit_object_property_get(C, op);
+ *ob = edit_object_property_get(C, op);
if (!*ob) return NULL;
cont = BLI_findstring(&((*ob)->controllers), controller_name, offsetof(bController, name));
@@ -189,7 +189,7 @@ static void edit_actuator_properties(wmOperatorType *ot)
static int edit_actuator_invoke_properties(bContext *C, wmOperator *op)
{
- PointerRNA ptr= CTX_data_pointer_get_type(C, "actuator", &RNA_Actuator);
+ PointerRNA ptr = CTX_data_pointer_get_type(C, "actuator", &RNA_Actuator);
if (RNA_struct_property_is_set(op->ptr, "actuator") && RNA_struct_property_is_set(op->ptr, "object") )
return 1;
@@ -199,7 +199,7 @@ static int edit_actuator_invoke_properties(bContext *C, wmOperator *op)
Object *ob = ptr.id.data;
RNA_string_set(op->ptr, "actuator", act->name);
- RNA_string_set(op->ptr, "object", ob->id.name+2);
+ RNA_string_set(op->ptr, "object", ob->id.name + 2);
return 1;
}
@@ -213,7 +213,7 @@ static bActuator *edit_actuator_property_get(bContext *C, wmOperator *op, Object
RNA_string_get(op->ptr, "actuator", actuator_name);
- *ob= edit_object_property_get(C, op);
+ *ob = edit_object_property_get(C, op);
if (!*ob) return NULL;
act = BLI_findstring(&((*ob)->actuators), actuator_name, offsetof(bActuator, name));
@@ -234,7 +234,7 @@ static int logicbricks_move_property_get(wmOperator *op)
static int sensor_remove_exec(bContext *C, wmOperator *op)
{
- Object *ob=NULL;
+ Object *ob = NULL;
bSensor *sens = edit_sensor_property_get(C, op, &ob);
if (!sens)
@@ -248,7 +248,7 @@ static int sensor_remove_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
- static int sensor_remove_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
+static int sensor_remove_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_sensor_invoke_properties(C, op))
return sensor_remove_exec(C, op);
@@ -267,7 +267,7 @@ static void LOGIC_OT_sensor_remove(wmOperatorType *ot)
ot->poll = edit_sensor_poll;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
edit_sensor_properties(ot);
}
@@ -279,13 +279,13 @@ static int sensor_add_exec(bContext *C, wmOperator *op)
PropertyRNA *prop;
const char *sens_name;
char name[MAX_NAME];
- int type= RNA_enum_get(op->ptr, "type");
+ int type = RNA_enum_get(op->ptr, "type");
- ob= edit_object_property_get(C, op);
+ ob = edit_object_property_get(C, op);
if (!ob)
return OPERATOR_CANCELLED;
- sens= new_sensor(type);
+ sens = new_sensor(type);
BLI_addtail(&(ob->sensors), sens);
/* set the sensor name based on rna type enum */
@@ -323,10 +323,10 @@ static void LOGIC_OT_sensor_add(wmOperatorType *ot)
ot->poll = ED_operator_object_active_editable;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- ot->prop = prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, SENS_ALWAYS, "Type", "Type of sensor to add");
+ ot->prop = prop = RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, SENS_ALWAYS, "Type", "Type of sensor to add");
RNA_def_enum_funcs(prop, rna_Sensor_type_itemf);
RNA_def_string(ot->srna, "name", "", MAX_NAME, "Name", "Name of the Sensor to add");
RNA_def_string(ot->srna, "object", "", MAX_NAME, "Object", "Name of the Object to add the Sensor to");
@@ -351,7 +351,7 @@ static int controller_remove_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
- static int controller_remove_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
+static int controller_remove_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_controller_invoke_properties(C, op))
return controller_remove_exec(C, op);
@@ -370,7 +370,7 @@ static void LOGIC_OT_controller_remove(wmOperatorType *ot)
ot->poll = edit_controller_poll;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
edit_controller_properties(ot);
}
@@ -383,13 +383,13 @@ static int controller_add_exec(bContext *C, wmOperator *op)
const char *cont_name;
int bit;
char name[MAX_NAME];
- int type= RNA_enum_get(op->ptr, "type");
+ int type = RNA_enum_get(op->ptr, "type");
- ob= edit_object_property_get(C, op);
+ ob = edit_object_property_get(C, op);
if (!ob)
return OPERATOR_CANCELLED;
- cont= new_controller(type);
+ cont = new_controller(type);
BLI_addtail(&(ob->controllers), cont);
/* set the controller name based on rna type enum */
@@ -408,11 +408,11 @@ static int controller_add_exec(bContext *C, wmOperator *op)
/* set the controller state mask from the current object state.
* A controller is always in a single state, so select the lowest bit set
* from the object state */
- for (bit=0; bit<OB_MAX_STATES; bit++) {
- if (ob->state & (1<<bit))
+ for (bit = 0; bit < OB_MAX_STATES; bit++) {
+ if (ob->state & (1 << bit))
break;
}
- cont->state_mask = (1<<bit);
+ cont->state_mask = (1 << bit);
if (cont->state_mask == 0) {
/* shouldn't happen, object state is never 0 */
cont->state_mask = 1;
@@ -438,7 +438,7 @@ static void LOGIC_OT_controller_add(wmOperatorType *ot)
ot->poll = ED_operator_object_active_editable;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
ot->prop = RNA_def_enum(ot->srna, "type", controller_type_items, CONT_LOGIC_AND, "Type", "Type of controller to add");
@@ -450,7 +450,7 @@ static void LOGIC_OT_controller_add(wmOperatorType *ot)
static int actuator_remove_exec(bContext *C, wmOperator *op)
{
- Object *ob=NULL;
+ Object *ob = NULL;
bActuator *act = edit_actuator_property_get(C, op, &ob);
if (!act)
@@ -484,7 +484,7 @@ static void LOGIC_OT_actuator_remove(wmOperatorType *ot)
ot->poll = edit_actuator_poll;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
edit_actuator_properties(ot);
}
@@ -495,14 +495,14 @@ static int actuator_add_exec(bContext *C, wmOperator *op)
PointerRNA act_ptr;
PropertyRNA *prop;
const char *act_name;
- char name[MAX_NAME];
- int type= RNA_enum_get(op->ptr, "type");
+ char name[MAX_NAME];
+ int type = RNA_enum_get(op->ptr, "type");
- ob= edit_object_property_get(C, op);
+ ob = edit_object_property_get(C, op);
if (!ob)
return OPERATOR_CANCELLED;
- act= new_actuator(type);
+ act = new_actuator(type);
BLI_addtail(&(ob->actuators), act);
/* set the actuator name based on rna type enum */
@@ -540,27 +540,28 @@ static void LOGIC_OT_actuator_add(wmOperatorType *ot)
ot->poll = ED_operator_object_active_editable;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
- ot->prop = prop= RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, CONT_LOGIC_AND, "Type", "Type of actuator to add");
+ ot->prop = prop = RNA_def_enum(ot->srna, "type", DummyRNA_NULL_items, CONT_LOGIC_AND, "Type", "Type of actuator to add");
RNA_def_enum_funcs(prop, rna_Actuator_type_itemf);
RNA_def_string(ot->srna, "name", "", MAX_NAME, "Name", "Name of the Actuator to add");
RNA_def_string(ot->srna, "object", "", MAX_NAME, "Object", "Name of the Object to add the Actuator to");
}
/* ************* Move Logic Bricks Operator ************* */
-static EnumPropertyItem logicbricks_move_direction[] ={
- {1, "UP", 0, "Move Up", ""},
- {2, "DOWN", 0, "Move Down", ""},
- {0, NULL, 0, NULL, NULL}};
+static EnumPropertyItem logicbricks_move_direction[] = {
+ {1, "UP", 0, "Move Up", ""},
+ {2, "DOWN", 0, "Move Down", ""},
+ {0, NULL, 0, NULL, NULL}
+};
static int sensor_move_exec(bContext *C, wmOperator *op)
{
- Object *ob=NULL;
- bSensor *sens= edit_sensor_property_get(C, op, &ob);
- int move_up= logicbricks_move_property_get(op);
+ Object *ob = NULL;
+ bSensor *sens = edit_sensor_property_get(C, op, &ob);
+ int move_up = logicbricks_move_property_get(op);
if (!sens)
return OPERATOR_CANCELLED;
@@ -594,7 +595,7 @@ static void LOGIC_OT_sensor_move(wmOperatorType *ot)
ot->poll = edit_sensor_poll;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
edit_sensor_properties(ot);
@@ -603,9 +604,9 @@ static void LOGIC_OT_sensor_move(wmOperatorType *ot)
static int controller_move_exec(bContext *C, wmOperator *op)
{
- Object *ob=NULL;
- bController *cont= edit_controller_property_get(C, op, &ob);
- int move_up= logicbricks_move_property_get(op);
+ Object *ob = NULL;
+ bController *cont = edit_controller_property_get(C, op, &ob);
+ int move_up = logicbricks_move_property_get(op);
if (!cont)
return OPERATOR_CANCELLED;
@@ -639,7 +640,7 @@ static void LOGIC_OT_controller_move(wmOperatorType *ot)
ot->poll = edit_controller_poll;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
edit_controller_properties(ot);
@@ -648,9 +649,9 @@ static void LOGIC_OT_controller_move(wmOperatorType *ot)
static int actuator_move_exec(bContext *C, wmOperator *op)
{
- Object *ob=NULL;
+ Object *ob = NULL;
bActuator *act = edit_actuator_property_get(C, op, &ob);
- int move_up= logicbricks_move_property_get(op);
+ int move_up = logicbricks_move_property_get(op);
if (!act)
return OPERATOR_CANCELLED;
@@ -684,7 +685,7 @@ static void LOGIC_OT_actuator_move(wmOperatorType *ot)
ot->poll = edit_actuator_poll;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
edit_actuator_properties(ot);
@@ -694,7 +695,7 @@ static void LOGIC_OT_actuator_move(wmOperatorType *ot)
/* ************* TexFace Converter Operator ************* */
static int texface_convert_exec(bContext *C, wmOperator *UNUSED(op))
{
- Main *bmain= CTX_data_main(C);
+ Main *bmain = CTX_data_main(C);
do_version_tface(bmain, 0);
return OPERATOR_FINISHED;
@@ -705,7 +706,7 @@ static int texface_convert_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(e
return texface_convert_exec(C, op);
}
- static void LOGIC_OT_texface_convert(wmOperatorType *ot)
+static void LOGIC_OT_texface_convert(wmOperatorType *ot)
{
/* identifiers */
ot->name = "TexFace to Material Converter";
@@ -718,7 +719,7 @@ static int texface_convert_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(e
// ot->poll = texface_convert_poll;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c
index 08842698214..5d7ff77e032 100644
--- a/source/blender/editors/space_logic/logic_window.c
+++ b/source/blender/editors/space_logic/logic_window.c
@@ -72,10 +72,7 @@
#include "logic_intern.h"
-
-#define MAX_RENDER_PASS 100
#define B_REDR 1
-#define B_IDNAME 2
#define B_ADD_SENS 2703
#define B_CHANGE_SENS 2704
@@ -91,7 +88,6 @@
#define B_SOUNDACT_BROWSE 2712
-#define B_SETSECTOR 2713
#define B_SETPROP 2714
#define B_SETACTOR 2715
#define B_SETMAINACTOR 2716
@@ -109,7 +105,7 @@ static int vergname(const void *v1, const void *v2)
x1= (char **)v1;
x2= (char **)v2;
- return strcmp(*x1, *x2);
+ return BLI_natstrcmp(*x1, *x2);
}
void make_unique_prop_names(bContext *C, char *str)
@@ -187,178 +183,6 @@ void make_unique_prop_names(bContext *C, char *str)
MEM_freeN(names);
}
-static void make_unique_prop_names_cb(bContext *C, void *strv, void *UNUSED(redraw_view3d_flagv))
-{
- char *str= strv;
-// int redraw_view3d_flag= GET_INT_FROM_POINTER(redraw_view3d_flagv);
-
- make_unique_prop_names(C, str);
-}
-
-
-static void old_sca_move_sensor(bContext *C, void *datav, void *move_up)
-{
- /* deprecated, no longer using it (moved to sca.c) */
- Scene *scene= CTX_data_scene(C);
- bSensor *sens_to_delete= datav;
- int val;
- Base *base;
- bSensor *sens, *tmp;
-
- // val= pupmenu("Move up%x1|Move down %x2");
- val = move_up ? 1:2;
-
- if (val>0) {
- /* now find out which object has this ... */
- base= FIRSTBASE;
- while (base) {
-
- sens= base->object->sensors.first;
- while (sens) {
- if (sens == sens_to_delete) break;
- sens= sens->next;
- }
-
- if (sens) {
- if ( val==1 && sens->prev) {
- for (tmp=sens->prev; tmp; tmp=tmp->prev) {
- if (tmp->flag & SENS_VISIBLE)
- break;
- }
- if (tmp) {
- BLI_remlink(&base->object->sensors, sens);
- BLI_insertlinkbefore(&base->object->sensors, tmp, sens);
- }
- }
- else if ( val==2 && sens->next) {
- for (tmp=sens->next; tmp; tmp=tmp->next) {
- if (tmp->flag & SENS_VISIBLE)
- break;
- }
- if (tmp) {
- BLI_remlink(&base->object->sensors, sens);
- BLI_insertlink(&base->object->sensors, tmp, sens);
- }
- }
- ED_undo_push(C, "Move sensor");
- break;
- }
-
- base= base->next;
- }
- }
-}
-
-static void old_sca_move_controller(bContext *C, void *datav, void *move_up)
-{
- /* deprecated, no longer using it (moved to sca.c) */
- Scene *scene= CTX_data_scene(C);
- bController *controller_to_del= datav;
- int val;
- Base *base;
- bController *cont, *tmp;
-
- //val= pupmenu("Move up%x1|Move down %x2");
- val = move_up ? 1:2;
-
- if (val>0) {
- /* now find out which object has this ... */
- base= FIRSTBASE;
- while (base) {
-
- cont= base->object->controllers.first;
- while (cont) {
- if (cont == controller_to_del) break;
- cont= cont->next;
- }
-
- if (cont) {
- if ( val==1 && cont->prev) {
- /* locate the controller that has the same state mask but is earlier in the list */
- tmp = cont->prev;
- while (tmp) {
- if (tmp->state_mask & cont->state_mask)
- break;
- tmp = tmp->prev;
- }
- if (tmp) {
- BLI_remlink(&base->object->controllers, cont);
- BLI_insertlinkbefore(&base->object->controllers, tmp, cont);
- }
- }
- else if ( val==2 && cont->next) {
- tmp = cont->next;
- while (tmp) {
- if (tmp->state_mask & cont->state_mask)
- break;
- tmp = tmp->next;
- }
- BLI_remlink(&base->object->controllers, cont);
- BLI_insertlink(&base->object->controllers, tmp, cont);
- }
- ED_undo_push(C, "Move controller");
- break;
- }
-
- base= base->next;
- }
- }
-}
-
-static void old_sca_move_actuator(bContext *C, void *datav, void *move_up)
-{
- /* deprecated, no longer using it (moved to sca.c) */
- Scene *scene= CTX_data_scene(C);
- bActuator *actuator_to_move= datav;
- int val;
- Base *base;
- bActuator *act, *tmp;
-
- //val= pupmenu("Move up%x1|Move down %x2");
- val = move_up ? 1:2;
-
- if (val>0) {
- /* now find out which object has this ... */
- base= FIRSTBASE;
- while (base) {
-
- act= base->object->actuators.first;
- while (act) {
- if (act == actuator_to_move) break;
- act= act->next;
- }
-
- if (act) {
- if ( val==1 && act->prev) {
- /* locate the first visible actuators before this one */
- for (tmp = act->prev; tmp; tmp=tmp->prev) {
- if (tmp->flag & ACT_VISIBLE)
- break;
- }
- if (tmp) {
- BLI_remlink(&base->object->actuators, act);
- BLI_insertlinkbefore(&base->object->actuators, tmp, act);
- }
- }
- else if ( val==2 && act->next) {
- for (tmp=act->next; tmp; tmp=tmp->next) {
- if (tmp->flag & ACT_VISIBLE)
- break;
- }
- if (tmp) {
- BLI_remlink(&base->object->actuators, act);
- BLI_insertlink(&base->object->actuators, tmp, act);
- }
- }
- ED_undo_push(C, "Move actuator");
- break;
- }
-
- base= base->next;
- }
- }
-}
-
static void do_logic_buts(bContext *C, void *UNUSED(arg), int event)
{
Main *bmain= CTX_data_main(C);
@@ -631,14 +455,6 @@ static const char *sensor_name(int type)
return "unknown";
}
-static const char *sensor_pup(void)
-{
- /* the number needs to match defines in DNA_sensor_types.h */
- return "Sensors %t|Always %x0|Delay %x13|Keyboard %x3|Mouse %x5|"
- "Touch %x1|Collision %x6|Near %x2|Radar %x7|"
- "Property %x4|Random %x8|Ray %x9|Message %x10|Joystick %x11|Actuator %x12|Armature %x14";
-}
-
static const char *controller_name(int type)
{
switch (type) {
@@ -662,11 +478,6 @@ static const char *controller_name(int type)
return "unknown";
}
-static const char *controller_pup(void)
-{
- return "Controllers %t|AND %x0|OR %x1|XOR %x6|NAND %x4|NOR %x5|XNOR %x7|Expression %x2|Python %x3";
-}
-
static const char *actuator_name(int type)
{
switch (type) {
@@ -718,36 +529,6 @@ static const char *actuator_name(int type)
return "unknown";
}
-
-
-
-static const char *actuator_pup(Object *owner)
-{
- switch (owner->type) {
- case OB_ARMATURE:
- return "Actuators %t|Action %x15|Armature %x23|Motion %x0|Constraint %x9|Ipo %x1"
- "|Camera %x3|Sound %x5|Property %x6|Edit Object %x10"
- "|Scene %x11|Random %x13|Message %x14|Game %x17"
- "|Visibility %x18|2D Filter %x19|Parent %x20|State %x22";
- break;
-
- case OB_MESH:
- return "Actuators %t|Shape Action %x21|Motion %x0|Constraint %x9|Ipo %x1"
- "|Camera %x3|Sound %x5|Property %x6|Edit Object %x10"
- "|Scene %x11|Random %x13|Message %x14|Game %x17"
- "|Visibility %x18|2D Filter %x19|Parent %x20|State %x22";
- break;
-
- default:
- return "Actuators %t|Motion %x0|Constraint %x9|Ipo %x1"
- "|Camera %x3|Sound %x5|Property %x6|Edit Object %x10"
- "|Scene %x11|Random %x13|Message %x14|Game %x17"
- "|Visibility %x18|2D Filter %x19|Parent %x20|State %x22";
- }
-}
-
-
-
static void set_sca_ob(Object *ob)
{
bController *cont;
@@ -878,7 +659,7 @@ static ID **get_selected_and_linked_obs(bContext *C, short *count, short scavisf
}
/* 4th case: select actuator when controller selected */
- if ( (scavisflag & (BUTS_ACT_LINK|BUTS_ACT_STATE)) && (ob->scavisflag & OB_VIS_CONT)) {
+ if ((scavisflag & (BUTS_ACT_LINK|BUTS_ACT_STATE)) && (ob->scavisflag & OB_VIS_CONT)) {
cont= ob->controllers.first;
while (cont) {
for (a=0; a<cont->totlinks; a++) {
@@ -921,7 +702,7 @@ static ID **get_selected_and_linked_obs(bContext *C, short *count, short scavisf
}
while (ob) {
- if ( (ob->scavisflag) && (ob != obact)) {
+ if ((ob->scavisflag) && (ob != obact)) {
idar[nr]= (ID *)ob;
nr++;
}
@@ -935,151 +716,6 @@ static ID **get_selected_and_linked_obs(bContext *C, short *count, short scavisf
return idar;
}
-
-static int get_col_sensor(int type)
-{
- /* XXX themecolors not here */
-
- switch (type) {
- case SENS_ALWAYS: return TH_PANEL;
- case SENS_DELAY: return TH_PANEL;
- case SENS_TOUCH: return TH_PANEL;
- case SENS_COLLISION: return TH_PANEL;
- case SENS_NEAR: return TH_PANEL;
- case SENS_KEYBOARD: return TH_PANEL;
- case SENS_PROPERTY: return TH_PANEL;
- case SENS_ARMATURE: return TH_PANEL;
- case SENS_ACTUATOR: return TH_PANEL;
- case SENS_MOUSE: return TH_PANEL;
- case SENS_RADAR: return TH_PANEL;
- case SENS_RANDOM: return TH_PANEL;
- case SENS_RAY: return TH_PANEL;
- case SENS_MESSAGE: return TH_PANEL;
- case SENS_JOYSTICK: return TH_PANEL;
- default: return TH_PANEL;
- }
-}
-static void set_col_sensor(int type, int medium)
-{
- int col= get_col_sensor(type);
- UI_ThemeColorShade(col, medium?30:0);
-}
-
-
-static void verify_logicbutton_func(bContext *UNUSED(C), void *data1, void *data2)
-{
- bSensor *sens= (bSensor*)data1;
-
- if (sens->level && sens->tap) {
- if (data2 == &(sens->level))
- sens->tap= 0;
- else
- sens->level= 0;
- }
-}
-
-static void test_scriptpoin_but(struct bContext *C, const char *name, ID **idpp)
-{
- *idpp= BLI_findstring(&CTX_data_main(C)->text, name, offsetof(ID, name) + 2);
-}
-
-static void test_actionpoin_but(struct bContext *C, const char *name, ID **idpp)
-{
- *idpp= BLI_findstring(&CTX_data_main(C)->action, name, offsetof(ID, name) + 2);
- if (*idpp)
- id_us_plus(*idpp);
-}
-
-
-static void test_obpoin_but(struct bContext *C, const char *name, ID **idpp)
-{
- *idpp= BLI_findstring(&CTX_data_main(C)->object, name, offsetof(ID, name) + 2);
- if (*idpp)
- id_lib_extern(*idpp); /* checks lib data, sets correct flag for saving then */
-}
-
-static void test_meshpoin_but(struct bContext *C, const char *name, ID **idpp)
-{
- *idpp= BLI_findstring(&CTX_data_main(C)->mesh, name, offsetof(ID, name) + 2);
- if (*idpp)
- id_us_plus(*idpp);
-}
-
-static void test_matpoin_but(struct bContext *C, const char *name, ID **idpp)
-{
- *idpp= BLI_findstring(&CTX_data_main(C)->mat, name, offsetof(ID, name) + 2);
- if (*idpp)
- id_us_plus(*idpp);
-}
-
-static void test_scenepoin_but(struct bContext *C, const char *name, ID **idpp)
-{
- *idpp= BLI_findstring(&CTX_data_main(C)->scene, name, offsetof(ID, name) + 2);
- if (*idpp)
- id_us_plus(*idpp);
-}
-
-static void test_keyboard_event(struct bContext *UNUSED(C), void *arg_ks, void *UNUSED(arg))
-{
- bKeyboardSensor *ks= (bKeyboardSensor*)arg_ks;
-
- if (!ISKEYBOARD(ks->key))
- ks->key= 0;
- if (!ISKEYBOARD(ks->qual))
- ks->qual= 0;
- if (!ISKEYBOARD(ks->qual2))
- ks->qual2= 0;
-}
-
-/**
- * Draws a toggle for pulse mode, a frequency field and a toggle to invert
- * the value of this sensor. Operates on the shared data block of sensors.
- */
-static void draw_default_sensor_header(bSensor *sens,
- uiBlock *block,
- short x,
- short y,
- short w)
-{
- uiBut *but;
-
- /* Pulsing and frequency */
- uiBlockBeginAlign(block);
- uiDefIconButBitS(block, TOG, SENS_PULSE_REPEAT, 1, ICON_DOTSUP,
- (short)(x + 10 + 0.0 * (w - 20)), (short)(y - 21), (short)(0.1 * (w - 20)), 19,
- &sens->pulse, 0.0, 0.0, 0, 0,
- "Activate TRUE level triggering (pulse mode)");
-
- uiDefIconButBitS(block, TOG, SENS_NEG_PULSE_MODE, 1, ICON_DOTSDOWN,
- (short)(x + 10 + 0.1 * (w-20)), (short)(y - 21), (short)(0.1 * (w-20)), 19,
- &sens->pulse, 0.0, 0.0, 0, 0,
- "Activate FALSE level triggering (pulse mode)");
- uiDefButS(block, NUM, 1, "f:",
- (short)(x + 10 + 0.2 * (w-20)), (short)(y - 21), (short)(0.275 * (w-20)), 19,
- &sens->freq, 0.0, 10000.0, 0, 0,
- "Delay between repeated pulses (in logic tics, 0 = no delay)");
- uiBlockEndAlign(block);
-
- /* value or shift? */
- uiBlockBeginAlign(block);
- but = uiDefButS(block, TOG, 1, "Level",
- (short)(x + 10 + 0.5 * (w-20)), (short)(y - 21), (short)(0.20 * (w-20)), 19,
- &sens->level, 0.0, 0.0, 0, 0,
- "Level detector, trigger controllers of new states (only applicable upon logic state transition)");
- uiButSetFunc(but, verify_logicbutton_func, sens, &(sens->level));
- but = uiDefButS(block, TOG, 1, "Tap",
- (short)(x + 10 + 0.702 * (w-20)), (short)(y - 21), (short)(0.12 * (w-20)), 19,
- &sens->tap, 0.0, 0.0, 0, 0,
- "Trigger controllers only for an instant, even while the sensor remains true");
- uiButSetFunc(but, verify_logicbutton_func, sens, &(sens->tap));
- uiBlockEndAlign(block);
-
- uiDefButS(block, TOG, 1, "Inv",
- (short)(x + 10 + 0.85 * (w-20)), (short)(y - 21), (short)(0.15 * (w-20)), 19,
- &sens->invert, 0.0, 0.0, 0, 0,
- "Invert the level (output) of this sensor");
-}
-
static void get_armature_bone_constraint(Object *ob, const char *posechannel, const char *constraint_name, bConstraint **constraint)
{
/* check that bone exist in the active object */
@@ -1094,1848 +730,6 @@ static void get_armature_bone_constraint(Object *ob, const char *posechannel, co
}
/* didn't find any */
}
-static void check_armature_bone_constraint(Object *ob, char *posechannel, char *constraint)
-{
- /* check that bone exist in the active object */
- if (ob->type == OB_ARMATURE && ob->pose) {
- bPoseChannel *pchan;
- bPose *pose = ob->pose;
- for (pchan=pose->chanbase.first; pchan; pchan=pchan->next) {
- if (!strcmp(pchan->name, posechannel)) {
- /* found it, now look for constraint channel */
- bConstraint *con;
- for (con=pchan->constraints.first; con; con=con->next) {
- if (!strcmp(con->name, constraint)) {
- /* found it, all ok */
- return;
- }
- }
- /* didn't find constraint, make empty */
- constraint[0] = 0;
- return;
- }
- }
- }
- /* didn't find any */
- posechannel[0] = 0;
- constraint[0] = 0;
-}
-
-static void check_armature_sensor(bContext *C, void *arg1_but, void *arg2_sens)
-{
- bArmatureSensor *sens = arg2_sens;
- uiBut *but = arg1_but;
- Object *ob= CTX_data_active_object(C);
-
- /* check that bone exist in the active object */
- but->retval = B_REDR;
- check_armature_bone_constraint(ob, sens->posechannel, sens->constraint);
-}
-
-static short draw_sensorbuttons(Object *ob, bSensor *sens, uiBlock *block, short xco, short yco, short width)
-{
- bNearSensor *ns = NULL;
- bTouchSensor *ts = NULL;
- bKeyboardSensor *ks = NULL;
- bPropertySensor *ps = NULL;
- bArmatureSensor *arm = NULL;
- bMouseSensor *ms = NULL;
- bCollisionSensor *cs = NULL;
- bRadarSensor *rs = NULL;
- bRandomSensor *randomSensor = NULL;
- bRaySensor *raySens = NULL;
- bMessageSensor *mes = NULL;
- bJoystickSensor *joy = NULL;
- bActuatorSensor *as = NULL;
- bDelaySensor *ds = NULL;
- uiBut *but;
- short ysize;
- const char *str;
-
- /* yco is at the top of the rect, draw downwards */
-
- set_col_sensor(sens->type, 0);
-
- switch (sens->type) {
- case SENS_ALWAYS:
- {
- ysize= 24;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- draw_default_sensor_header(sens, block, xco, yco, width);
-
- yco-= ysize;
-
- break;
- }
- case SENS_TOUCH:
- {
- ysize= 48;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- draw_default_sensor_header(sens, block, xco, yco, width);
-
- ts= sens->data;
-
- // uiDefBut(block, TEX, 1, "Property:", xco, yco-22, width, 19, &ts->name, 0, MAX_NAME, 0, 0, "Only look for Objects with this property");
- uiDefIDPoinBut(block, test_matpoin_but, ID_MA, 1, "MA:", (short)(xco + 10), (short)(yco-44), (short)(width - 20), 19, &ts->ma, "Only look for floors with this Material");
- // uiDefButF(block, NUM, 1, "Margin:", xco+width/2, yco-44, width/2, 19, &ts->dist, 0.0, 10.0, 100, 0, "Extra margin (distance) for larger sensitivity");
- yco-= ysize;
- break;
- }
- case SENS_COLLISION:
- {
- ysize= 48;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- draw_default_sensor_header(sens, block, xco, yco, width);
- cs= sens->data;
-
- /* The collision sensor will become a generic collision (i.e. it */
- /* absorb the old touch sensor). */
-
- uiDefButBitS(block, TOG, SENS_COLLISION_PULSE, B_REDR, "Pulse", (short)(xco + 10), (short)(yco - 44),
- (short)(0.20 * (width-20)), 19, &cs->mode, 0.0, 0.0, 0, 0,
- "Changes to the set of colliding objects generated pulses");
-
- uiDefButBitS(block, TOG, SENS_COLLISION_MATERIAL, B_REDR, "M/P", (short)(xco + 10 + (0.20 * (width-20))), (short)(yco - 44),
- (short)(0.20 * (width-20)), 19, &cs->mode, 0.0, 0.0, 0, 0,
- "Toggle collision on material or property");
-
- if (cs->mode & SENS_COLLISION_MATERIAL) {
- uiDefBut(block, TEX, 1, "Material:", (short)(xco + 10 + 0.40 * (width-20)),
- (short)(yco-44), (short)(0.6*(width-20)), 19, &cs->materialName, 0, MAX_NAME, 0, 0,
- "Only look for Objects with this material");
- }
- else {
- uiDefBut(block, TEX, 1, "Property:", (short)(xco + 10 + 0.40 * (width-20)), (short)(yco-44),
- (short)(0.6*(width-20)), 19, &cs->name, 0, MAX_NAME, 0, 0,
- "Only look for Objects with this property");
- }
-
- /* uiDefButS(block, NUM, 1, "Damp:", xco+10+width-90, yco-24, 70, 19, &cs->damp, 0, 250, 0, 0, "For 'damp' time don't detect another collision"); */
-
- yco-= ysize;
- break;
- }
- case SENS_NEAR:
- {
- ysize= 72;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- draw_default_sensor_header(sens, block, xco, yco, width);
- ns= sens->data;
-
- uiDefBut(block, TEX, 1, "Property:", (short)(10+xco), (short)(yco-44), (short)(width-20), 19,
- &ns->name, 0, MAX_NAME, 0, 0, "Only look for Objects with this property");
- uiDefButF(block, NUM, 1, "Dist", (short)(10+xco), (short)(yco-68), (short)((width-22)/2), 19,
- &ns->dist, 0.0, 1000.0, 1000, 0, "Trigger distance");
- uiDefButF(block, NUM, 1, "Reset", (short)(10+xco+(width-22)/2), (short)(yco-68), (short)((width-22)/2), 19,
- &ns->resetdist, 0.0, 1000.0, 1000, 0, "Reset distance");
- yco-= ysize;
- break;
- }
- case SENS_RADAR:
- {
- ysize= 72;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- draw_default_sensor_header(sens, block, xco, yco, width);
-
- rs= sens->data;
-
- uiDefBut(block, TEX, 1, "Prop:",
- (short)(10+xco), (short)(yco-44), (short)(0.7 * (width-20)), 19,
- &rs->name, 0, MAX_NAME, 0, 0,
- "Only look for Objects with this property");
-
- str = "Type %t|+X axis %x0|+Y axis %x1|+Z axis %x2|-X axis %x3|-Y axis %x4|-Z axis %x5";
- uiDefButS(block, MENU, B_REDR, str,
- (short)(10+xco+0.7 * (width-20)), (short)(yco-44), (short)(0.3 * (width-22)), 19,
- &rs->axis, 2.0, 31, 0, 0,
- "Specify along which axis the radar cone is cast");
-
- uiDefButF(block, NUM, 1, "Ang:",
- (short)(10+xco), (short)(yco-68), (short)((width-20)/2), 19,
- &rs->angle, 0.0, 179.9, 10, 0,
- "Opening angle of the radar cone");
- uiDefButF(block, NUM, 1, "Dist:",
- (short)(xco+10 + (width-20)/2), (short)(yco-68), (short)((width-20)/2), 19,
- &rs->range, 0.01, 10000.0, 100, 0,
- "Depth of the radar cone");
- yco-= ysize;
- break;
- }
- case SENS_KEYBOARD:
- {
- ks= sens->data;
-
- /* 5 lines: 120 height */
- ysize= (ks->type&1) ? 96:120;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- /* header line */
- draw_default_sensor_header(sens, block, xco, yco, width);
-
- /* part of line 1 */
- uiDefBut(block, LABEL, 0, "Key", xco, yco-44, 40, 19, NULL, 0, 0, 0, 0, "");
- uiDefButBitS(block, TOG, 1, B_REDR, "All keys", xco+40+(width/2), yco-44, (width/2)-50, 19,
- &ks->type, 0, 0, 0, 0, "");
-
-
- if ((ks->type&1)==0) { /* is All Keys option off? */
- /* line 2: hotkey and allkeys toggle */
- but = uiDefKeyevtButS(block, 0, "", xco+40, yco-44, (width)/2, 19, &ks->key, "Key code");
- uiButSetFunc(but, test_keyboard_event, ks, NULL);
-
- /* line 3: two key modifyers (qual1, qual2) */
- uiDefBut(block, LABEL, 0, "Hold", xco, yco-68, 40, 19, NULL, 0, 0, 0, 0, "");
- but = uiDefKeyevtButS(block, 0, "", xco+40, yco-68, (width-50)/2, 19, &ks->qual, "Modifier key code");
- uiButSetFunc(but, test_keyboard_event, ks, NULL);
- but = uiDefKeyevtButS(block, 0, "", xco+40+(width-50)/2, yco-68, (width-50)/2, 19, &ks->qual2, "Second Modifier key code");
- uiButSetFunc(but, test_keyboard_event, ks, NULL);
- }
-
- /* line 4: toggle property for string logging mode */
- uiDefBut(block, TEX, 1, "LogToggle: ",
- xco+10, yco-((ks->type&1) ? 68:92), (width-20), 19,
- ks->toggleName, 0, MAX_NAME, 0, 0,
- "Property that indicates whether to log "
- "keystrokes as a string");
-
- /* line 5: target property for string logging mode */
- uiDefBut(block, TEX, 1, "Target: ",
- xco+10, yco-((ks->type&1) ? 92:116), (width-20), 19,
- ks->targetName, 0, MAX_NAME, 0, 0,
- "Property that receives the keystrokes in case "
- "a string is logged");
-
- yco-= ysize;
- break;
- }
- case SENS_PROPERTY:
- {
- ysize= 96;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize,
- (float)xco+width, (float)yco, 1);
-
- draw_default_sensor_header(sens, block, xco, yco, width);
- ps= sens->data;
-
- str= "Type %t|Equal %x0|Not Equal %x1|Interval %x2|Changed %x3";
- /* str= "Type %t|Equal %x0|Not Equal %x1"; */
- uiDefButI(block, MENU, B_REDR, str, xco+30, yco-44, width-60, 19,
- &ps->type, 0, 31, 0, 0, "Type");
-
- if (ps->type != SENS_PROP_EXPRESSION) {
- uiDefBut(block, TEX, 1, "Prop: ", xco+30, yco-68, width-60, 19,
- ps->name, 0, MAX_NAME, 0, 0, "Property name");
- }
-
- if (ps->type == SENS_PROP_INTERVAL) {
- uiDefBut(block, TEX, 1, "Min: ", xco, yco-92, width/2, 19,
- ps->value, 0, MAX_NAME, 0, 0, "check for min value");
- uiDefBut(block, TEX, 1, "Max: ", xco+width/2, yco-92, width/2, 19,
- ps->maxvalue, 0, MAX_NAME, 0, 0, "check for max value");
- }
- else if (ps->type == SENS_PROP_CHANGED) {
- /* pass */
- }
- else {
- uiDefBut(block, TEX, 1, "Value: ", xco+30, yco-92, width-60, 19,
- ps->value, 0, MAX_NAME, 0, 0, "check for value");
- }
-
- yco-= ysize;
- break;
- }
- case SENS_ARMATURE:
- {
- ysize= 70;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize,
- (float)xco+width, (float)yco, 1);
-
- draw_default_sensor_header(sens, block, xco, yco, width);
- arm= sens->data;
-
- if (ob->type == OB_ARMATURE) {
- uiBlockBeginAlign(block);
- but = uiDefBut(block, TEX, 1, "Bone: ",
- (xco+10), (yco-44), (width-20)/2, 19,
- arm->posechannel, 0, MAX_NAME, 0, 0,
- "Bone on which you want to check a constraint");
- uiButSetFunc(but, check_armature_sensor, but, arm);
- but = uiDefBut(block, TEX, 1, "Cons: ",
- (xco+10)+(width-20)/2, (yco-44), (width-20)/2, 19,
- arm->constraint, 0, MAX_NAME, 0, 0,
- "Name of the constraint you want to control");
- uiButSetFunc(but, check_armature_sensor, but, arm);
- uiBlockEndAlign(block);
-
- str= "Type %t|State changed %x0|Lin error below %x1|Lin error above %x2|Rot error below %x3|Rot error above %x4";
-
- uiDefButI(block, MENU, B_REDR, str, xco+10, yco-66, 0.4*(width-20), 19,
- &arm->type, 0, 31, 0, 0, "Type");
-
- if (arm->type != SENS_ARM_STATE_CHANGED) {
- uiDefButF(block, NUM, 1, "Value: ", xco+10+0.4*(width-20), yco-66, 0.6*(width-20), 19,
- &arm->value, -10000.0, 10000.0, 100, 0, "Test the error against this value");
- }
- }
- yco-= ysize;
- break;
- }
- case SENS_ACTUATOR:
- {
- ysize= 48;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize,
- (float)xco+width, (float)yco, 1);
-
- draw_default_sensor_header(sens, block, xco, yco, width);
- as= sens->data;
-
- uiDefBut(block, TEX, 1, "Act: ", xco+30, yco-44, width-60, 19,
- as->name, 0, MAX_NAME, 0, 0, "Actuator name, actuator active state modifications will be detected");
- yco-= ysize;
- break;
- }
- case SENS_DELAY:
- {
- ysize= 48;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize,
- (float)xco+width, (float)yco, 1);
-
- draw_default_sensor_header(sens, block, xco, yco, width);
- ds = sens->data;
-
- uiDefButS(block, NUM, 0, "Delay", (short)(10+xco), (short)(yco-44), (short)((width-22)*0.4+10), 19,
- &ds->delay, 0.0, 5000.0, 0, 0, "Delay in number of logic tics before the positive trigger (default 60 per second)");
- uiDefButS(block, NUM, 0, "Dur", (short)(10+xco+(width-22)*0.4+10), (short)(yco-44), (short)((width-22)*0.4-10), 19,
- &ds->duration, 0.0, 5000.0, 0, 0, "If >0, delay in number of logic tics before the negative trigger following the positive trigger");
- uiDefButBitS(block, TOG, SENS_DELAY_REPEAT, 0, "REP", (short)(xco + 10 + (width-22)*0.8), (short)(yco - 44),
- (short)(0.20 * (width-22)), 19, &ds->flag, 0.0, 0.0, 0, 0,
- "Toggle repeat option. If selected, the sensor restarts after Delay+Dur logic tics");
- yco-= ysize;
- break;
- }
- case SENS_MOUSE:
- {
- ms= sens->data;
- /* Two lines: 48 pixels high. */
- ysize = 48;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- /* line 1: header */
- draw_default_sensor_header(sens, block, xco, yco, width);
-
- /* Line 2: type selection. The number are a bit mangled to get
- * proper compatibility with older .blend files. */
-
- /* Any sensor type default is 0 but the ms enum starts in 1.
- * Therefore the mouse sensor is initialized to 1 in sca.c */
- str= "Type %t|Left button %x1|Middle button %x2|"
- "Right button %x4|Wheel Up %x5|Wheel Down %x6|Movement %x8|Mouse over %x16|Mouse over any%x32";
- uiDefButS(block, MENU, B_REDR, str, xco+10, yco-44, (width*0.8f)-20, 19,
- &ms->type, 0, 31, 0, 0,
- "Specify the type of event this mouse sensor should trigger on");
-
- if (ms->type==32) {
- uiDefButBitS(block, TOG, SENS_MOUSE_FOCUS_PULSE, B_REDR, "Pulse", (short)(xco + 10) + (width*0.8f)-20, (short)(yco - 44),
- (short)(0.20 * (width-20)), 19, &ms->flag, 0.0, 0.0, 0, 0,
- "Moving the mouse over a different object generates a pulse");
- }
-
- yco-= ysize;
- break;
- }
- case SENS_RANDOM:
- {
- ysize = 48;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- draw_default_sensor_header(sens, block, xco, yco, width);
- randomSensor = sens->data;
- /* some files were wrongly written, avoid crash now */
- if (randomSensor) {
- uiDefButI(block, NUM, 1, "Seed: ", xco+10, yco-44, (width-20), 19,
- &randomSensor->seed, 0, 1000, 0, 0,
- "Initial seed of the generator. (Choose 0 for not random)");
- }
- yco-= ysize;
- break;
- }
- case SENS_RAY:
- {
- ysize = 72;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- draw_default_sensor_header(sens, block, xco, yco, width);
- raySens = sens->data;
-
- /* 1. property or material */
- uiDefButBitS(block, TOG, SENS_COLLISION_MATERIAL, B_REDR, "M/P",
- xco + 10, yco - 44, 0.20 * (width-20), 19,
- &raySens->mode, 0.0, 0.0, 0, 0,
- "Toggle collision on material or property");
-
- if (raySens->mode & SENS_COLLISION_MATERIAL) {
- uiDefBut(block, TEX, 1, "Material:", xco + 10 + 0.20 * (width-20), yco-44, 0.8*(width-20), 19,
- &raySens->matname, 0, MAX_NAME, 0, 0,
- "Only look for Objects with this material");
- }
- else {
- uiDefBut(block, TEX, 1, "Property:", xco + 10 + 0.20 * (width-20), yco-44, 0.8*(width-20), 19,
- &raySens->propname, 0, MAX_NAME, 0, 0,
- "Only look for Objects with this property");
- }
-
- /* X-Ray option */
- uiDefButBitS(block, TOG, SENS_RAY_XRAY, 1, "X",
- xco + 10, yco - 68, 0.10 * (width-20), 19,
- &raySens->mode, 0.0, 0.0, 0, 0,
- "Toggle X-Ray option (see through objects that don't have the property)");
- /* 2. sensing range */
- uiDefButF(block, NUM, 1, "Range", xco+10 + 0.10 * (width-20), yco-68, 0.5 * (width-20), 19,
- &raySens->range, 0.01, 10000.0, 100, 0,
- "Sense objects no farther than this distance");
-
- /* 3. axis choice */
- str = "Type %t|+ X axis %x1|+ Y axis %x0|+ Z axis %x2|- X axis %x3|- Y axis %x4|- Z axis %x5";
- uiDefButI(block, MENU, B_REDR, str, xco+10 + 0.6 * (width-20), yco-68, 0.4 * (width-20), 19,
- &raySens->axisflag, 2.0, 31, 0, 0,
- "Specify along which axis the ray is cast");
-
- yco-= ysize;
- break;
- }
- case SENS_MESSAGE:
- {
- mes = sens->data;
- ysize = 2 * 24; /* total number of lines * 24 pixels/line */
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize,
- (float)xco+width, (float)yco, 1);
-
- /* line 1: header line */
- draw_default_sensor_header(sens, block, xco, yco, width);
-
- /* line 2: Subject filter */
- uiDefBut(block, TEX, 1, "Subject: ",
- (xco+10), (yco-44), (width-20), 19,
- mes->subject, 0, MAX_NAME, 0, 0,
- "Optional subject filter: only accept messages with this subject"
- ", or empty for all");
-
- yco -= ysize;
- break;
- }
- case SENS_JOYSTICK:
- {
-
- ysize = 72;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- /* line 1: header */
- draw_default_sensor_header(sens, block, xco, yco, width);
-
- joy= sens->data;
-
- uiDefButC(block, NUM, 1, "Index:", xco+10, yco-44, 0.33 * (width-20), 19,
- &joy->joyindex, 0, SENS_JOY_MAXINDEX-1, 100, 0,
- "Specify which joystick to use");
-
- str= "Type %t|Button %x0|Axis %x1|Single Axis %x3|Hat%x2";
- uiDefButC(block, MENU, B_REDR, str, xco+87, yco-44, 0.26 * (width-20), 19,
- &joy->type, 0, 31, 0, 0,
- "The type of event this joystick sensor is triggered on");
-
- if (joy->type != SENS_JOY_AXIS_SINGLE) {
- if (joy->flag & SENS_JOY_ANY_EVENT) {
- switch (joy->type) {
- case SENS_JOY_AXIS:
- str = "All Axis Events";
- break;
- case SENS_JOY_BUTTON:
- str = "All Button Events";
- break;
- default:
- str = "All Hat Events";
- break;
- }
- }
- else {
- str = "All";
- }
-
- uiDefButBitS(block, TOG, SENS_JOY_ANY_EVENT, B_REDR, str,
- xco+10 + 0.475 * (width-20), yco-68, ((joy->flag & SENS_JOY_ANY_EVENT) ? 0.525 : 0.12) * (width-20), 19,
- &joy->flag, 0, 0, 0, 0,
- "Triggered by all events on this joysticks current type (axis/button/hat)");
- }
- if (joy->type == SENS_JOY_BUTTON) {
- if ((joy->flag & SENS_JOY_ANY_EVENT)==0) {
- uiDefButI(block, NUM, 1, "Number:", xco+10 + 0.6 * (width-20), yco-68, 0.4 * (width-20), 19,
- &joy->button, 0, 18, 100, 0,
- "Specify which button to use");
- }
- }
- else if (joy->type == SENS_JOY_AXIS) {
- uiDefButS(block, NUM, 1, "Number:", xco+10, yco-68, 0.46 * (width-20), 19,
- &joy->axis, 1, 8.0, 100, 0,
- "Specify which axis pair to use, 1 is useually the main direction input");
-
- uiDefButI(block, NUM, 1, "Threshold:", xco+10 + 0.6 * (width-20), yco-44, 0.4 * (width-20), 19,
- &joy->precision, 0, 32768.0, 100, 0,
- "Specify the precision of the axis");
-
- if ((joy->flag & SENS_JOY_ANY_EVENT)==0) {
- str = "Type %t|Up Axis %x1 |Down Axis %x3|Left Axis %x2|Right Axis %x0";
- uiDefButI(block, MENU, B_REDR, str, xco+10 + 0.6 * (width-20), yco-68, 0.4 * (width-20), 19,
- &joy->axisf, 2.0, 31, 0, 0,
- "The direction of the axis, use 'All Events' to receive events on any direction");
- }
- }
- else if (joy->type == SENS_JOY_HAT) {
- uiDefButI(block, NUM, 1, "Number:", xco+10, yco-68, 0.46 * (width-20), 19,
- &joy->hat, 1, 4.0, 100, 0,
- "Specify which hat to use");
-
- if ((joy->flag & SENS_JOY_ANY_EVENT)==0) {
- str = "Direction%t|Up%x1|Down%x4|Left%x8|Right%x2|%l|Up/Right%x3|Down/Left%x12|Up/Left%x9|Down/Right%x6";
- uiDefButI(block, MENU, 0, str, xco+10 + 0.6 * (width-20), yco-68, 0.4 * (width-20), 19,
- &joy->hatf, 2.0, 31, 0, 0,
- "The direction of the hat, use 'All Events' to receive events on any direction");
- }
- }
- else { /* (joy->type == SENS_JOY_AXIS_SINGLE)*/
- uiDefButS(block, NUM, 1, "Number:", xco+10, yco-68, 0.46 * (width-20), 19,
- &joy->axis_single, 1, 16.0, 100, 0,
- "Specify a single axis (verticle/horizontal/other) to detect");
-
- uiDefButI(block, NUM, 1, "Threshold:", xco+10 + 0.6 * (width-20), yco-44, 0.4 * (width-20), 19,
- &joy->precision, 0, 32768.0, 100, 0,
- "Specify the precision of the axis");
- }
- yco-= ysize;
- break;
- }
- }
-
- return yco-4;
-}
-
-
-
-static short draw_controllerbuttons(bController *cont, uiBlock *block, short xco, short yco, short width)
-{
- bExpressionCont *ec;
- bPythonCont *pc;
- short ysize;
-
- switch (cont->type) {
- case CONT_EXPRESSION:
- ysize= 28;
-
- UI_ThemeColor(TH_PANEL);
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- /* uiDefBut(block, LABEL, 1, "Not yet...", xco, yco-24, 80, 19, NULL, 0, 0, 0, 0, ""); */
- ec= cont->data;
- /* uiDefBut(block, BUT, 1, "Variables", xco, yco-24, 80, 19, NULL, 0, 0, 0, 0, "Available variables for expression"); */
- uiDefBut(block, TEX, 1, "Exp:", xco + 10, yco-21, width-20, 19,
- ec->str, 0, sizeof(ec->str), 0, 0,
- "Expression");
-
- yco-= ysize;
- break;
- case CONT_PYTHON:
- ysize= 28;
-
- if (cont->data==NULL) init_controller(cont);
- pc= cont->data;
-
- UI_ThemeColor(TH_PANEL);
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
-
- uiBlockBeginAlign(block);
- uiDefButI(block, MENU, B_REDR, "Execution Method%t|Script%x0|Module%x1", xco+4, yco-23, 66, 19, &pc->mode, 0, 0, 0, 0, "Python script type (textblock or module - faster)");
- if (pc->mode==0)
- uiDefIDPoinBut(block, test_scriptpoin_but, ID_TXT, 1, "", xco+70, yco-23, width-74, 19, &pc->text, "Blender textblock to run as a script");
- else {
- uiDefBut(block, TEX, 1, "", xco+70, yco-23, (width-70)-25, 19, pc->module, 0, sizeof(pc->module), 0, 0, "Module name and function to run e.g. \"someModule.main\". Internal texts and external python files can be used");
- uiDefButBitI(block, TOG, CONT_PY_DEBUG, B_REDR, "D", (xco+width)-25, yco-23, 19, 19, &pc->flag, 0, 0, 0, 0, "Continuously reload the module from disk for editing external modules without restarting");
- }
- uiBlockEndAlign(block);
-
- yco-= ysize;
- break;
-
- default:
- ysize= 4;
-
- UI_ThemeColor(TH_PANEL);
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- yco-= ysize;
- }
-
- return yco;
-}
-
-static int get_col_actuator(int type)
-{
- switch (type) {
- case ACT_ACTION: return TH_PANEL;
- case ACT_SHAPEACTION: return TH_PANEL;
- case ACT_OBJECT: return TH_PANEL;
- case ACT_IPO: return TH_PANEL;
- case ACT_PROPERTY: return TH_PANEL;
- case ACT_SOUND: return TH_PANEL;
- case ACT_CAMERA: return TH_PANEL;
- case ACT_EDIT_OBJECT: return TH_PANEL;
- case ACT_GROUP: return TH_PANEL;
- case ACT_RANDOM: return TH_PANEL;
- case ACT_SCENE: return TH_PANEL;
- case ACT_MESSAGE: return TH_PANEL;
- case ACT_GAME: return TH_PANEL;
- case ACT_VISIBILITY: return TH_PANEL;
- case ACT_CONSTRAINT: return TH_PANEL;
- case ACT_STATE: return TH_PANEL;
- case ACT_ARMATURE: return TH_PANEL;
- case ACT_STEERING: return TH_PANEL;
- default: return TH_PANEL;
- }
-}
-static void set_col_actuator(int item, int medium)
-{
- int col= get_col_actuator(item);
- UI_ThemeColorShade(col, medium?30:10);
-
-}
-
-static void change_object_actuator(bContext *UNUSED(C), void *act, void *UNUSED(arg))
-{
- bObjectActuator *oa = act;
-
- if (oa->type != oa->otype) {
- switch (oa->type) {
- case ACT_OBJECT_NORMAL:
- memset(oa, 0, sizeof(bObjectActuator));
- oa->flag = ACT_FORCE_LOCAL|ACT_TORQUE_LOCAL|ACT_DLOC_LOCAL|ACT_DROT_LOCAL;
- oa->type = ACT_OBJECT_NORMAL;
- break;
-
- case ACT_OBJECT_SERVO:
- memset(oa, 0, sizeof(bObjectActuator));
- oa->flag = ACT_LIN_VEL_LOCAL;
- oa->type = ACT_OBJECT_SERVO;
- oa->forcerot[0] = 30.0f;
- oa->forcerot[1] = 0.5f;
- oa->forcerot[2] = 0.0f;
- break;
- }
- }
-}
-
-static void change_ipo_actuator(bContext *UNUSED(C), void *arg1_but, void *arg2_ia)
-{
- bIpoActuator *ia = arg2_ia;
- uiBut *but = arg1_but;
-
- if (but->retval & ACT_IPOFORCE)
- ia->flag &= ~ACT_IPOADD;
- else if (but->retval & ACT_IPOADD)
- ia->flag &= ~ACT_IPOFORCE;
- but->retval = B_REDR;
-}
-
-static void update_object_actuator_PID(bContext *UNUSED(C), void *act, void *UNUSED(arg))
-{
- bObjectActuator *oa = act;
- oa->forcerot[0] = 60.0f*oa->forcerot[1];
-}
-
-static char *get_state_name(Object *ob, short bit)
-{
- bController *cont;
- unsigned int mask;
-
- mask = (1<<bit);
- cont = ob->controllers.first;
- while (cont) {
- if (cont->state_mask & mask) {
- return cont->name;
- }
- cont = cont->next;
- }
- return (char*)"";
-}
-
-static void check_state_mask(bContext *C, void *arg1_but, void *arg2_mask)
-{
- wmWindow *win= CTX_wm_window(C);
- int shift= win->eventstate->shift;
- unsigned int *cont_mask = arg2_mask;
- uiBut *but = arg1_but;
-
- if (*cont_mask == 0 || !(shift))
- *cont_mask = (1<<but->retval);
- but->retval = B_REDR;
-}
-
-static void check_armature_actuator(bContext *C, void *arg1_but, void *arg2_act)
-{
- bArmatureActuator *act = arg2_act;
- uiBut *but = arg1_but;
- Object *ob= CTX_data_active_object(C);
-
- /* check that bone exist in the active object */
- but->retval = B_REDR;
- check_armature_bone_constraint(ob, act->posechannel, act->constraint);
-}
-
-
-static short draw_actuatorbuttons(Main *bmain, Object *ob, bActuator *act, uiBlock *block, short xco, short yco, short width)
-{
- bSoundActuator *sa = NULL;
- bObjectActuator *oa = NULL;
- bIpoActuator *ia = NULL;
- bPropertyActuator *pa = NULL;
- bCameraActuator *ca = NULL;
- bEditObjectActuator *eoa = NULL;
- bConstraintActuator *coa = NULL;
- bSceneActuator *sca = NULL;
- bGroupActuator *ga = NULL;
- bRandomActuator *randAct = NULL;
- bMessageActuator *ma = NULL;
- bActionActuator *aa = NULL;
- bGameActuator *gma = NULL;
- bVisibilityActuator *visAct = NULL;
- bTwoDFilterActuator *tdfa = NULL;
- bParentActuator *parAct = NULL;
- bStateActuator *staAct = NULL;
- bArmatureActuator *armAct = NULL;
-
- float *fp;
- short ysize = 0, wval;
- const char *str;
- int myline, stbit;
- uiBut *but;
-
-
- /* yco is at the top of the rect, draw downwards */
- set_col_actuator(act->type, 0);
-
- switch (act->type) {
- case ACT_OBJECT:
- {
- oa = act->data;
- wval = (width-100)/3;
- if (oa->type == ACT_OBJECT_NORMAL) {
- if (ob->gameflag & OB_DYNAMIC) {
- ysize= 175;
- }
- else {
- ysize= 72;
- }
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- uiBlockBeginAlign(block);
- uiDefBut(block, LABEL, 0, "Loc", xco, yco-45, 45, 19, NULL, 0, 0, 0, 0, "Sets the location");
- uiDefButF(block, NUM, 0, "", xco+45, yco-45, wval, 19, oa->dloc, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+wval, yco-45, wval, 19, oa->dloc+1, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-45, wval, 19, oa->dloc+2, -10000.0, 10000.0, 10, 0, "");
- uiBlockEndAlign(block);
-
- uiDefBut(block, LABEL, 0, "Rot", xco, yco-64, 45, 19, NULL, 0, 0, 0, 0, "Sets the rotation");
- uiBlockBeginAlign(block);
- uiDefButF(block, NUM, 0, "", xco+45, yco-64, wval, 19, oa->drot, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+wval, yco-64, wval, 19, oa->drot+1, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-64, wval, 19, oa->drot+2, -10000.0, 10000.0, 10, 0, "");
- uiBlockEndAlign(block);
-
- uiDefButBitS(block, TOG, ACT_DLOC_LOCAL, 0, "L", xco+45+3*wval, yco-45, 15, 19, &oa->flag, 0.0, 0.0, 0, 0, "Local transformation");
- uiDefButBitS(block, TOG, ACT_DROT_LOCAL, 0, "L", xco+45+3*wval, yco-64, 15, 19, &oa->flag, 0.0, 0.0, 0, 0, "Local transformation");
-
- if (ob->gameflag & OB_DYNAMIC) {
- uiDefBut(block, LABEL, 0, "Force", xco, yco-87, 55, 19, NULL, 0, 0, 0, 0, "Sets the force");
- uiBlockBeginAlign(block);
- uiDefButF(block, NUM, 0, "", xco+45, yco-87, wval, 19, oa->forceloc, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+wval, yco-87, wval, 19, oa->forceloc+1, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-87, wval, 19, oa->forceloc+2, -10000.0, 10000.0, 10, 0, "");
- uiBlockEndAlign(block);
-
- uiDefBut(block, LABEL, 0, "Torque", xco, yco-106, 55, 19, NULL, 0, 0, 0, 0, "Sets the torque");
- uiBlockBeginAlign(block);
- uiDefButF(block, NUM, 0, "", xco+45, yco-106, wval, 19, oa->forcerot, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+wval, yco-106, wval, 19, oa->forcerot+1, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-106, wval, 19, oa->forcerot+2, -10000.0, 10000.0, 10, 0, "");
- uiBlockEndAlign(block);
- }
-
- if (ob->gameflag & OB_DYNAMIC) {
- uiDefBut(block, LABEL, 0, "LinV", xco, yco-129, 45, 19, NULL, 0, 0, 0, 0, "Sets the linear velocity");
- uiBlockBeginAlign(block);
- uiDefButF(block, NUM, 0, "", xco+45, yco-129, wval, 19, oa->linearvelocity, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+wval, yco-129, wval, 19, oa->linearvelocity+1, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-129, wval, 19, oa->linearvelocity+2, -10000.0, 10000.0, 10, 0, "");
- uiBlockEndAlign(block);
-
- uiDefBut(block, LABEL, 0, "AngV", xco, yco-148, 45, 19, NULL, 0, 0, 0, 0, "Sets the angular velocity");
- uiBlockBeginAlign(block);
- uiDefButF(block, NUM, 0, "", xco+45, yco-148, wval, 19, oa->angularvelocity, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+wval, yco-148, wval, 19, oa->angularvelocity+1, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-148, wval, 19, oa->angularvelocity+2, -10000.0, 10000.0, 10, 0, "");
- uiBlockEndAlign(block);
-
- uiDefBut(block, LABEL, 0, "Damp", xco, yco-171, 45, 19, NULL, 0, 0, 0, 0, "Number of frames to reach the target velocity");
- uiDefButS(block, NUM, 0, "", xco+45, yco-171, wval, 19, &oa->damping, 0.0, 1000.0, 100, 0, "");
-
- uiDefButBitS(block, TOG, ACT_FORCE_LOCAL, 0, "L", xco+45+3*wval, yco-87, 15, 19, &oa->flag, 0.0, 0.0, 0, 0, "Local transformation");
- uiDefButBitS(block, TOG, ACT_TORQUE_LOCAL, 0, "L", xco+45+3*wval, yco-106, 15, 19, &oa->flag, 0.0, 0.0, 0, 0, "Local transformation");
- uiDefButBitS(block, TOG, ACT_LIN_VEL_LOCAL, 0, "L", xco+45+3*wval, yco-129, 15, 19, &oa->flag, 0.0, 0.0, 0, 0, "Local transformation");
- uiDefButBitS(block, TOG, ACT_ANG_VEL_LOCAL, 0, "L", xco+45+3*wval, yco-148, 15, 19, &oa->flag, 0.0, 0.0, 0, 0, "Local transformation");
-
- uiDefButBitS(block, TOG, ACT_ADD_LIN_VEL, 0, "use_additive", xco+45+3*wval+15, yco-129, 35, 19, &oa->flag, 0.0, 0.0, 0, 0, "Toggles between ADD and SET linV");
- }
- }
- else if (oa->type == ACT_OBJECT_SERVO) {
- ysize= 195;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- uiDefBut(block, LABEL, 0, "Ref", xco, yco-45, 45, 19, NULL, 0, 0, 0, 0, "");
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+45, yco-45, wval*3, 19, &(oa->reference), "Reference object for velocity calculation, leave empty for world reference");
- uiDefBut(block, LABEL, 0, "linV", xco, yco-68, 45, 19, NULL, 0, 0, 0, 0, "Sets the target relative linear velocity, it will be achieved by automatic application of force. Null velocity is a valid target");
- uiBlockBeginAlign(block);
- uiDefButF(block, NUM, 0, "", xco+45, yco-68, wval, 19, oa->linearvelocity, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+wval, yco-68, wval, 19, oa->linearvelocity+1, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-68, wval, 19, oa->linearvelocity+2, -10000.0, 10000.0, 10, 0, "");
- uiBlockEndAlign(block);
- uiDefButBitS(block, TOG, ACT_LIN_VEL_LOCAL, 0, "L", xco+45+3*wval, yco-68, 15, 19, &oa->flag, 0.0, 0.0, 0, 0, "Velocity is defined in local coordinates");
-
- uiDefBut(block, LABEL, 0, "Limit", xco, yco-91, 45, 19, NULL, 0, 0, 0, 0, "Select if the force needs to be limited along certain axis (local or global depending on LinV Local flag)");
- uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, ACT_SERVO_LIMIT_X, B_REDR, "X", xco+45, yco-91, wval, 19, &oa->flag, 0.0, 0.0, 0, 0, "Set limit to force along the X axis");
- uiDefButBitS(block, TOG, ACT_SERVO_LIMIT_Y, B_REDR, "Y", xco+45+wval, yco-91, wval, 19, &oa->flag, 0.0, 0.0, 0, 0, "Set limit to force along the Y axis");
- uiDefButBitS(block, TOG, ACT_SERVO_LIMIT_Z, B_REDR, "Z", xco+45+2*wval, yco-91, wval, 19, &oa->flag, 0.0, 0.0, 0, 0, "Set limit to force along the Z axis");
- uiBlockEndAlign(block);
- uiDefBut(block, LABEL, 0, "Max", xco, yco-110, 45, 19, NULL, 0, 0, 0, 0, "Set the upper limit for force");
- uiDefBut(block, LABEL, 0, "Min", xco, yco-129, 45, 19, NULL, 0, 0, 0, 0, "Set the lower limit for force");
- if (oa->flag & ACT_SERVO_LIMIT_X) {
- uiDefButF(block, NUM, 0, "", xco+45, yco-110, wval, 19, oa->dloc, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45, yco-129, wval, 19, oa->drot, -10000.0, 10000.0, 10, 0, "");
- }
- if (oa->flag & ACT_SERVO_LIMIT_Y) {
- uiDefButF(block, NUM, 0, "", xco+45+wval, yco-110, wval, 19, oa->dloc+1, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+wval, yco-129, wval, 19, oa->drot+1, -10000.0, 10000.0, 10, 0, "");
- }
- if (oa->flag & ACT_SERVO_LIMIT_Z) {
- uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-110, wval, 19, oa->dloc+2, -10000.0, 10000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-129, wval, 19, oa->drot+2, -10000.0, 10000.0, 10, 0, "");
- }
- uiDefBut(block, LABEL, 0, "Servo", xco, yco-152, 45, 19, NULL, 0, 0, 0, 0, "Coefficients of the PID servo controller");
- uiDefButF(block, NUMSLI, B_REDR, "P: ", xco+45, yco-152, wval*3, 19, oa->forcerot, 0.00, 200.0, 100, 0, "Proportional coefficient, typical value is 60x Integral coefficient");
- uiDefBut(block, LABEL, 0, "Slow", xco, yco-171, 45, 19, NULL, 0, 0, 0, 0, "Low value of I coefficient correspond to slow response");
- but = uiDefButF(block, NUMSLI, B_REDR, " I : ", xco+45, yco-171, wval*3, 19, oa->forcerot+1, 0.0, 3.0, 1, 0, "Integral coefficient, low value (0.01) for slow response, high value (0.5) for fast response");
- uiButSetFunc(but, update_object_actuator_PID, oa, NULL);
- uiDefBut(block, LABEL, 0, "Fast", xco+45+3*wval, yco-171, 45, 19, NULL, 0, 0, 0, 0, "High value of I coefficient correspond to fast response");
- uiDefButF(block, NUMSLI, B_REDR, "D: ", xco+45, yco-190, wval*3, 19, oa->forcerot+2, -100.0, 100.0, 100, 0, "Derivate coefficient, not required, high values can cause instability");
- }
- str= "Motion Type %t|Simple motion %x0|Servo Control %x1";
- but = uiDefButS(block, MENU, B_REDR, str, xco+40, yco-23, (width-80), 19, &oa->type, 0.0, 0.0, 0, 0, "");
- oa->otype = oa->type;
- uiButSetFunc(but, change_object_actuator, oa, NULL);
- yco-= ysize;
- break;
- }
- case ACT_ACTION:
- case ACT_SHAPEACTION:
- {
- /* DrawAct */
-#ifdef __NLA_ACTION_BY_MOTION_ACTUATOR
- ysize = 112;
-#else
- ysize= 92;
-#endif
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- aa = act->data;
- wval = (width-60)/3;
-
- // str= "Action types %t|Play %x0|Ping Pong %x1|Flipper %x2|Loop Stop %x3|Loop End %x4|Property %x6";
-#ifdef __NLA_ACTION_BY_MOTION_ACTUATOR
- str= "Action types %t|Play %x0|Flipper %x2|Loop Stop %x3|Loop End %x4|Property %x6|Displacement %x7";
-#else
- str= "Action types %t|Play %x0|Flipper %x2|Loop Stop %x3|Loop End %x4|Property %x6";
-#endif
- uiDefButS(block, MENU, B_REDR, str, xco+10, yco-24, width/3, 19, &aa->type, 0.0, 0.0, 0.0, 0.0, "Action playback type");
- uiDefIDPoinBut(block, test_actionpoin_but, ID_AC, 1, "AC: ", xco+10+ (width/3), yco-24, ((width/3)*2) - (20 + 60), 19, &aa->act, "Action name");
-
- uiDefButBitS(block, TOGN, 1, 0, "Continue", xco+((width/3)*2)+20, yco-24, 60, 19,
- &aa->end_reset, 0.0, 0.0, 0, 0, "Restore last frame when switching on/off, otherwise play from the start each time");
-
-
- if (aa->type == ACT_ACTION_FROM_PROP) {
- uiDefBut(block, TEX, 0, "Prop: ", xco+10, yco-44, width-20, 19, aa->name, 0.0, MAX_NAME, 0, 0, "Use this property to define the Action position");
- }
- else {
- uiDefButF(block, NUM, 0, "Sta: ", xco+10, yco-44, (width-20)/2, 19, &aa->sta, 1.0, MAXFRAMEF, 0, 0, "Start frame");
- uiDefButF(block, NUM, 0, "End: ", xco+10+(width-20)/2, yco-44, (width-20)/2, 19, &aa->end, 1.0, MAXFRAMEF, 0, 0, "End frame");
- }
-
- uiDefButS(block, NUM, 0, "Blendin: ", xco+10, yco-64, (width-20)/2, 19, &aa->blendin, 0.0, 32767, 0.0, 0.0, "Number of frames of motion blending");
- uiDefButS(block, NUM, 0, "Priority: ", xco+10+(width-20)/2, yco-64, (width-20)/2, 19, &aa->priority, 0.0, 100.0, 0.0, 0.0, "Execution priority - lower numbers will override actions with higher numbers, With 2 or more actions at once, the overriding channels must be lower in the stack");
-
- uiDefBut(block, TEX, 0, "FrameProp: ", xco+10, yco-84, width-20, 19, aa->frameProp, 0.0, MAX_NAME, 0, 0, "Assign the action's current frame number to this property");
-
-
-#ifdef __NLA_ACTION_BY_MOTION_ACTUATOR
- if (aa->type == ACT_ACTION_MOTION) {
- uiDefButF(block, NUM, 0, "Cycle: ", xco+30, yco-84, (width-60)/2, 19, &aa->stridelength, 0.0, 2500.0, 0, 0, "Distance covered by a single cycle of the action");
- }
-#endif
-
-
-
- yco-=ysize;
- break;
- }
- case ACT_IPO:
- {
- ia= act->data;
-
- ysize= 72;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- str = "Ipo types %t|Play %x0|Ping Pong %x1|Flipper %x2|Loop Stop %x3|Loop End %x4|Property %x6";
-
- uiDefButS(block, MENU, B_REDR, str, xco+10, yco-24, (width-20)/2, 19, &ia->type, 0, 0, 0, 0, "");
-
- but = uiDefButBitS(block, TOG, ACT_IPOFORCE, ACT_IPOFORCE,
- "Force", xco+10+(width-20)/2, yco-24, (width-20)/4-10, 19,
- &ia->flag, 0, 0, 0, 0,
- "Apply Ipo as a global or local force depending on the local option (dynamic objects only)");
- uiButSetFunc(but, change_ipo_actuator, but, ia);
-
- but = uiDefButBitS(block, TOG, ACT_IPOADD, ACT_IPOADD,
- "Add", xco+3*(width-20)/4, yco-24, (width-20)/4-10, 19,
- &ia->flag, 0, 0, 0, 0,
- "Ipo is added to the current loc/rot/scale in global or local coordinate according to Local flag");
- uiButSetFunc(but, change_ipo_actuator, but, ia);
-
- /* Only show the do-force-local toggle if force is requested */
- if (ia->flag & (ACT_IPOFORCE|ACT_IPOADD)) {
- uiDefButBitS(block, TOG, ACT_IPOLOCAL, 0,
- "L", xco+width-30, yco-24, 20, 19,
- &ia->flag, 0, 0, 0, 0,
- "Let the ipo acts in local coordinates, used in Force and Add mode");
- }
-
- if (ia->type==ACT_IPO_FROM_PROP) {
- uiDefBut(block, TEX, 0,
- "Prop: ", xco+10, yco-44, width-80, 19,
- ia->name, 0.0, MAX_NAME, 0, 0,
- "Use this property to define the Ipo position");
- }
- else {
- uiDefButF(block, NUM, 0,
- "Sta", xco+10, yco-44, (width-80)/2, 19,
- &ia->sta, 1.0, MAXFRAMEF, 0, 0,
- "Start frame");
- uiDefButF(block, NUM, 0,
- "End", xco+10+(width-80)/2, yco-44, (width-80)/2, 19,
- &ia->end, 1.0, MAXFRAMEF, 0, 0,
- "End frame");
- }
- uiDefButBitS(block, TOG, ACT_IPOCHILD, B_REDR,
- "Child", xco+10+(width-80), yco-44, 60, 19,
- &ia->flag, 0, 0, 0, 0,
- "Update IPO on all children Objects as well");
- uiDefBut(block, TEX, 0,
- "FrameProp: ", xco+10, yco-64, width-20, 19,
- ia->frameProp, 0.0, MAX_NAME, 0, 0,
- "Assign the action's current frame number to this property");
-
- yco-= ysize;
- break;
- }
- case ACT_PROPERTY:
- {
- ysize= 68;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- pa= act->data;
-
- str= "Type%t|Assign%x0|Add %x1|Copy %x2|Toggle (bool/int/float/timer)%x3";
- uiDefButI(block, MENU, B_REDR, str, xco+30, yco-24, width-60, 19, &pa->type, 0, 31, 0, 0, "Type");
-
- uiDefBut(block, TEX, 1, "Prop: ", xco+30, yco-44, width-60, 19, pa->name, 0, MAX_NAME, 0, 0, "Property name");
-
-
- if (pa->type==ACT_PROP_TOGGLE) {
- /* no ui */
- ysize -= 22;
- }
- else if (pa->type==ACT_PROP_COPY) {
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+10, yco-64, (width-20)/2, 19, &(pa->ob), "Copy from this Object");
- uiDefBut(block, TEX, 1, "Prop: ", xco+10+(width-20)/2, yco-64, (width-20)/2, 19, pa->value, 0, MAX_NAME, 0, 0, "Copy this property");
- }
- else {
- uiDefBut(block, TEX, 1, "Value: ", xco+30, yco-64, width-60, 19, pa->value, 0, MAX_NAME, 0, 0, "change with this value, use \"\" around strings");
- }
- yco-= ysize;
-
- break;
- }
- case ACT_SOUND:
- {
- sa = act->data;
- sa->sndnr = 0;
-
- if (sa->flag & ACT_SND_3D_SOUND)
- ysize = 180;
- else
- ysize = 92;
-
- wval = (width-20)/2;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- if (bmain->sound.first) {
- IDnames_to_pupstring(&str, "Sound files", NULL, &(bmain->sound), (ID *)sa->sound, &(sa->sndnr));
- /* reset this value, it is for handling the event */
- sa->sndnr = 0;
- uiDefButS(block, MENU, B_SOUNDACT_BROWSE, str, xco+10, yco-22, 20, 19, &(sa->sndnr), 0, 0, 0, 0, "");
- uiDefButO(block, BUT, "sound.open", 0, "Load Sound", xco+wval+10, yco-22, wval, 19,
- "Load a sound file (remember to set caching on for small sounds that are played often)");
-
- if (sa->sound) {
- char dummy_str[] = "Sound mode %t|Play Stop %x0|Play End %x1|Loop Stop %x2|"
- "Loop End %x3|Loop Ping Pong Stop %x5|Loop Ping Pong %x4";
- uiDefBut(block, TEX, B_IDNAME, "SO:", xco+30, yco-22, wval-20, 19,
- ((ID *)sa->sound)->name+2, 0.0, MAX_ID_NAME-2, 0, 0, "");
- uiDefButS(block, MENU, 1, dummy_str, xco+10, yco-44, width-20, 19,
- &sa->type, 0.0, 0.0, 0, 0, "");
- uiDefButF(block, NUM, 0, "Volume:", xco+10, yco-66, wval, 19, &sa->volume,
- 0.0, 1.0, 0, 0, "Sets the volume of this sound");
- uiDefButF(block, NUM, 0, "Pitch:", xco+wval+10, yco-66, wval, 19, &sa->pitch, -12.0,
- 12.0, 0, 0, "Sets the pitch of this sound");
- uiDefButS(block, TOG | BIT, 0, "3D Sound", xco+10, yco-88, width-20, 19,
- &sa->flag, 0.0, 1.0, 0.0, 0.0, "Plays the sound positioned in 3D space");
- if (sa->flag & ACT_SND_3D_SOUND) {
- uiDefButF(block, NUM, 0, "Minimum Gain: ", xco+10, yco-110, wval, 19,
- &sa->sound3D.min_gain, 0.0, 1.0, 0.0, 0.0,
- "The minimum gain of the sound, no matter how far it is away");
- uiDefButF(block, NUM, 0, "Maximum Gain: ", xco+10, yco-132, wval, 19,
- &sa->sound3D.max_gain, 0.0, 1.0, 0.0, 0.0,
- "The maximum gain of the sound, no matter how near it is");
- uiDefButF(block, NUM, 0, "Reference Distance: ", xco+10, yco-154, wval, 19,
- &sa->sound3D.reference_distance, 0.0, FLT_MAX, 0.0, 0.0,
- "The reference distance is the distance where the sound has a gain of 1.0");
- uiDefButF(block, NUM, 0, "Maximum Distance: ", xco+10, yco-176, wval, 19,
- &sa->sound3D.max_distance, 0.0, FLT_MAX, 0.0, 0.0,
- "The maximum distance at which you can hear the sound");
- uiDefButF(block, NUM, 0, "Rolloff: ", xco+wval+10, yco-110, wval, 19,
- &sa->sound3D.rolloff_factor, 0.0, 5.0, 0.0, 0.0,
- "The rolloff factor defines the influence factor on volume depending on distance");
- uiDefButF(block, NUM, 0, "Cone Outer Gain: ", xco+wval+10, yco-132, wval, 19,
- &sa->sound3D.cone_outer_gain, 0.0, 1.0, 0.0, 0.0,
- "The gain outside the outer cone. The gain in the outer cone will be "
- "interpolated between this value and the normal gain in the inner cone");
- uiDefButF(block, NUM, 0, "Cone Outer Angle: ", xco+wval+10, yco-154, wval,
- 19, &sa->sound3D.cone_outer_angle, 0.0, 360.0, 0.0, 0.0,
- "The angle of the outer cone");
- uiDefButF(block, NUM, 0, "Cone Inner Angle: ", xco+wval+10, yco-176, wval,
- 19, &sa->sound3D.cone_inner_angle, 0.0, 360.0, 0.0, 0.0,
- "The angle of the inner cone");
- }
- }
- MEM_freeN((void *)str);
- }
- else {
- uiDefButO(block, BUT, "sound.open", 0, "Load Sound", xco+10, yco-22, width-20, 19, "Load a sound file");
- }
-
- yco-= ysize;
-
- break;
- }
- case ACT_CAMERA:
-
- ysize= 48;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- ca= act->data;
-
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+10, yco-24, (width-20)/2, 19, &(ca->ob), "Look at this Object");
- uiDefButF(block, NUM, 0, "Height:", xco+10+(width-20)/2, yco-24, (width-20)/2, 19, &ca->height, 0.0, 20.0, 0, 0, "");
-
- uiDefButF(block, NUM, 0, "Min:", xco+10, yco-44, (width-60)/2, 19, &ca->min, 0.0, 20.0, 0, 0, "");
-
- if (ca->axis==0) ca->axis= 'x';
- uiDefButS(block, ROW, 0, "X", xco+10+(width-60)/2, yco-44, 20, 19, &ca->axis, 4.0, (float)'x', 0, 0, "Camera tries to get behind the X axis");
- uiDefButS(block, ROW, 0, "Y", xco+30+(width-60)/2, yco-44, 20, 19, &ca->axis, 4.0, (float)'y', 0, 0, "Camera tries to get behind the Y axis");
-
- uiDefButF(block, NUM, 0, "Max:", xco+20+(width)/2, yco-44, (width-60)/2, 19, &ca->max, 0.0, 20.0, 0, 0, "");
-
- yco-= ysize;
-
- break;
-
- case ACT_EDIT_OBJECT:
-
- eoa= act->data;
-
- if (eoa->type==ACT_EDOB_ADD_OBJECT) {
- ysize = 92;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+10, yco-44, (width-20)/2, 19, &(eoa->ob), "Add this Object and all its children (cant be on an visible layer)");
- uiDefButI(block, NUM, 0, "Time:", xco+10+(width-20)/2, yco-44, (width-20)/2, 19, &eoa->time, 0.0, 2000.0, 0, 0, "Duration the new Object lives");
-
- wval= (width-60)/3;
- uiDefBut(block, LABEL, 0, "linV", xco, yco-68, 45, 19,
- NULL, 0, 0, 0, 0,
- "Velocity upon creation");
- uiDefButF(block, NUM, 0, "", xco+45, yco-68, wval, 19,
- eoa->linVelocity, -100.0, 100.0, 10, 0,
- "Velocity upon creation, x component");
- uiDefButF(block, NUM, 0, "", xco+45+wval, yco-68, wval, 19,
- eoa->linVelocity+1, -100.0, 100.0, 10, 0,
- "Velocity upon creation, y component");
- uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-68, wval, 19,
- eoa->linVelocity+2, -100.0, 100.0, 10, 0,
- "Velocity upon creation, z component");
- uiDefButBitS(block, TOG, ACT_EDOB_LOCAL_LINV, 0, "L", xco+45+3*wval, yco-68, 15, 19,
- &eoa->localflag, 0.0, 0.0, 0, 0,
- "Apply the transformation locally");
-
-
- uiDefBut(block, LABEL, 0, "AngV", xco, yco-90, 45, 19,
- NULL, 0, 0, 0, 0,
- "Angular velocity upon creation");
- uiDefButF(block, NUM, 0, "", xco+45, yco-90, wval, 19,
- eoa->angVelocity, -10000.0, 10000.0, 10, 0,
- "Angular velocity upon creation, x component");
- uiDefButF(block, NUM, 0, "", xco+45+wval, yco-90, wval, 19,
- eoa->angVelocity+1, -10000.0, 10000.0, 10, 0,
- "Angular velocity upon creation, y component");
- uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-90, wval, 19,
- eoa->angVelocity+2, -10000.0, 10000.0, 10, 0,
- "Angular velocity upon creation, z component");
- uiDefButBitS(block, TOG, ACT_EDOB_LOCAL_ANGV, 0, "L", xco+45+3*wval, yco-90, 15, 19,
- &eoa->localflag, 0.0, 0.0, 0, 0,
- "Apply the rotation locally");
-
-
- }
- else if (eoa->type==ACT_EDOB_END_OBJECT) {
- ysize= 28;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- }
- else if (eoa->type==ACT_EDOB_REPLACE_MESH) {
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- uiDefIDPoinBut(block, test_meshpoin_but, ID_ME, 1, "ME:", xco+40, yco-44, (width-80)/2, 19, &(eoa->me), "replace the existing, when left blank 'Phys' will remake the existing physics mesh");
-
- uiDefButBitS(block, TOGN, ACT_EDOB_REPLACE_MESH_NOGFX, 0, "Gfx", xco+40 + (width-80)/2, yco-44, (width-80)/4, 19, &eoa->flag, 0, 0, 0, 0, "Replace the display mesh");
- uiDefButBitS(block, TOG, ACT_EDOB_REPLACE_MESH_PHYS, 0, "Phys", xco+40 + (width-80)/2 +(width-80)/4, yco-44, (width-80)/4, 19, &eoa->flag, 0, 0, 0, 0, "Replace the physics mesh (triangle bounds only. compound shapes not supported)");
- }
- else if (eoa->type==ACT_EDOB_TRACK_TO) {
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+10, yco-44, (width-20)/2, 19, &(eoa->ob), "Track to this Object");
- uiDefButI(block, NUM, 0, "Time:", xco+10+(width-20)/2, yco-44, (width-20)/2-40, 19, &eoa->time, 0.0, 2000.0, 0, 0, "Duration the tracking takes");
- uiDefButS(block, TOG, 0, "3D", xco+width-50, yco-44, 40, 19, &eoa->flag, 0.0, 0.0, 0, 0, "Enable 3D tracking");
- }
- else if (eoa->type==ACT_EDOB_DYNAMICS) {
- ysize= 69;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- str= "Dynamic Operation %t|Restore Dynamics %x0|Suspend Dynamics %x1|Enable Rigid Body %x2|Disable Rigid Body %x3|Set Mass %x4";
- uiDefButS(block, MENU, B_REDR, str, xco+40, yco-44, (width-80), 19, &(eoa->dyn_operation), 0.0, 0.0, 0, 0, "");
- if (eoa->dyn_operation==4) {
- uiDefButF(block, NUM, 0, "", xco+40, yco-63, width-80, 19,
- &eoa->mass, 0.0, 10000.0, 10, 0,
- "Mass for object");
- }
- }
- str= "Edit Object %t|Add Object %x0|End Object %x1|Replace Mesh %x2|Track to %x3|Dynamics %x4";
- uiDefButS(block, MENU, B_REDR, str, xco+40, yco-24, (width-80), 19, &eoa->type, 0.0, 0.0, 0, 0, "");
-
- yco-= ysize;
-
- break;
-
- case ACT_CONSTRAINT:
- coa= act->data;
-
- if (coa->type == ACT_CONST_TYPE_LOC) {
- ysize= 69;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- /* str= "Limit %t|None %x0|Loc X %x1|Loc Y %x2|Loc Z %x4|Rot X %x8|Rot Y %x16|Rot Z %x32"; */
- /* coa->flag &= ~(63); */
- str= "Limit %t|None %x0|Loc X %x1|Loc Y %x2|Loc Z %x4";
- coa->flag &= 7;
- coa->time = 0;
- uiDefButS(block, MENU, 1, str, xco+10, yco-65, 70, 19, &coa->flag, 0.0, 0.0, 0, 0, "");
-
- uiDefButS(block, NUM, 0, "damp", xco+10, yco-45, 70, 19, &coa->damp, 0.0, 100.0, 0, 0, "Damping factor: time constant (in frame) of low pass filter");
- uiDefBut(block, LABEL, 0, "Min", xco+80, yco-45, (width-90)/2, 19, NULL, 0.0, 0.0, 0, 0, "");
- uiDefBut(block, LABEL, 0, "Max", xco+80+(width-90)/2, yco-45, (width-90)/2, 19, NULL, 0.0, 0.0, 0, 0, "");
-
- if (coa->flag & ACT_CONST_LOCX) fp= coa->minloc;
- else if (coa->flag & ACT_CONST_LOCY) fp= coa->minloc+1;
- else if (coa->flag & ACT_CONST_LOCZ) fp= coa->minloc+2;
- else if (coa->flag & ACT_CONST_ROTX) fp= coa->minrot;
- else if (coa->flag & ACT_CONST_ROTY) fp= coa->minrot+1;
- else fp= coa->minrot+2;
-
- uiDefButF(block, NUM, 0, "", xco+80, yco-65, (width-90)/2, 19, fp, -2000.0, 2000.0, 10, 0, "");
- uiDefButF(block, NUM, 0, "", xco+80+(width-90)/2, yco-65, (width-90)/2, 19, fp+3, -2000.0, 2000.0, 10, 0, "");
- }
- else if (coa->type == ACT_CONST_TYPE_DIST) {
- ysize= 106;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- str= "Direction %t|None %x0|X axis %x1|Y axis %x2|Z axis %x4|-X axis %x8|-Y axis %x16|-Z axis %x32";
- uiDefButS(block, MENU, B_REDR, str, xco+10, yco-65, 70, 19, &coa->mode, 0.0, 0.0, 0, 0, "Set the direction of the ray");
-
- uiDefButS(block, NUM, 0, "damp", xco+10, yco-45, 70, 19, &coa->damp, 0.0, 100.0, 0, 0, "Damping factor: time constant (in frame) of low pass filter");
- uiDefBut(block, LABEL, 0, "Range", xco+80, yco-45, (width-115)/2, 19, NULL, 0.0, 0.0, 0, 0, "Set the maximum length of ray");
- uiDefButBitS(block, TOG, ACT_CONST_DISTANCE, B_REDR, "Dist", xco+80+(width-115)/2, yco-45, (width-115)/2, 19, &coa->flag, 0.0, 0.0, 0, 0, "Force distance of object to point of impact of ray");
- uiDefButBitS(block, TOG, ACT_CONST_LOCAL, 0, "L", xco+80+(width-115), yco-45, 25, 19,
- &coa->flag, 0.0, 0.0, 0, 0, "Set ray along object's axis or global axis");
-
- if (coa->mode & (ACT_CONST_DIRPX|ACT_CONST_DIRNX)) fp= coa->minloc;
- else if (coa->mode & (ACT_CONST_DIRPY|ACT_CONST_DIRNY)) fp= coa->minloc+1;
- else fp= coa->minloc+2;
-
- uiDefButF(block, NUM, 0, "", xco+80, yco-65, (width-115)/2, 19, fp+3, 0.0, 2000.0, 10, 0, "Maximum length of ray");
- if (coa->flag & ACT_CONST_DISTANCE)
- uiDefButF(block, NUM, 0, "", xco+80+(width-115)/2, yco-65, (width-115)/2, 19, fp, -2000.0, 2000.0, 10, 0, "Keep this distance to target");
- uiDefButBitS(block, TOG, ACT_CONST_NORMAL, 0, "N", xco+80+(width-115), yco-65, 25, 19,
- &coa->flag, 0.0, 0.0, 0, 0, "Set object axis along (local axis) or parallel (global axis) to the normal at hit position");
- uiDefButBitS(block, TOG, ACT_CONST_MATERIAL, B_REDR, "M/P", xco+10, yco-84, 40, 19,
- &coa->flag, 0.0, 0.0, 0, 0, "Detect material instead of property");
- if (coa->flag & ACT_CONST_MATERIAL) {
- uiDefBut(block, TEX, 1, "Material:", xco + 50, yco-84, (width-60), 19,
- coa->matprop, 0, MAX_NAME, 0, 0,
- "Ray detects only Objects with this material");
- }
- else {
- uiDefBut(block, TEX, 1, "Property:", xco + 50, yco-84, (width-60), 19,
- coa->matprop, 0, MAX_NAME, 0, 0,
- "Ray detect only Objects with this property");
- }
- uiDefButBitS(block, TOG, ACT_CONST_PERMANENT, 0, "PER", xco+10, yco-103, 40, 19,
- &coa->flag, 0.0, 0.0, 0, 0, "Persistent actuator: stays active even if ray does not reach target");
- uiDefButS(block, NUM, 0, "time", xco+50, yco-103, (width-60)/2, 19, &(coa->time), 0.0, 1000.0, 0, 0, "Maximum activation time in frame, 0 for unlimited");
- uiDefButS(block, NUM, 0, "rotDamp", xco+50+(width-60)/2, yco-103, (width-60)/2, 19, &(coa->rotdamp), 0.0, 100.0, 0, 0, "Use a different damping for orientation");
- }
- else if (coa->type == ACT_CONST_TYPE_ORI) {
- ysize= 87;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- str= "Direction %t|None %x0|X axis %x1|Y axis %x2|Z axis %x4";
- uiDefButS(block, MENU, B_REDR, str, xco+10, yco-65, 70, 19, &coa->mode, 0.0, 0.0, 0, 0, "Select the axis to be aligned along the reference direction");
-
- uiDefButS(block, NUM, 0, "damp", xco+10, yco-45, 70, 19, &coa->damp, 0.0, 100.0, 0, 0, "Damping factor: time constant (in frame) of low pass filter");
- uiDefBut(block, LABEL, 0, "X", xco+80, yco-45, (width-115)/3, 19, NULL, 0.0, 0.0, 0, 0, "");
- uiDefBut(block, LABEL, 0, "Y", xco+80+(width-115)/3, yco-45, (width-115)/3, 19, NULL, 0.0, 0.0, 0, 0, "");
- uiDefBut(block, LABEL, 0, "Z", xco+80+2*(width-115)/3, yco-45, (width-115)/3, 19, NULL, 0.0, 0.0, 0, 0, "");
-
- uiDefButF(block, NUM, 0, "", xco+80, yco-65, (width-115)/3, 19, &coa->maxrot[0], -2000.0, 2000.0, 10, 0, "X component of reference direction");
- uiDefButF(block, NUM, 0, "", xco+80+(width-115)/3, yco-65, (width-115)/3, 19, &coa->maxrot[1], -2000.0, 2000.0, 10, 0, "Y component of reference direction");
- uiDefButF(block, NUM, 0, "", xco+80+2*(width-115)/3, yco-65, (width-115)/3, 19, &coa->maxrot[2], -2000.0, 2000.0, 10, 0, "Z component of reference direction");
-
- uiDefButS(block, NUM, 0, "time", xco+10, yco-84, 70, 19, &(coa->time), 0.0, 1000.0, 0, 0, "Maximum activation time in frame, 0 for unlimited");
- uiDefButF(block, NUM, 0, "min", xco+80, yco-84, (width-115)/2, 19, &(coa->minloc[0]), 0.0, 180.0, 10, 1, "Minimum angle (in degree) to maintain with target direction. No correction is done if angle with target direction is between min and max");
- uiDefButF(block, NUM, 0, "max", xco+80+(width-115)/2, yco-84, (width-115)/2, 19, &(coa->maxloc[0]), 0.0, 180.0, 10, 1, "Maximum angle (in degree) allowed with target direction. No correction is done if angle with target direction is between min and max");
- }
- else if (coa->type == ACT_CONST_TYPE_FH) {
- ysize= 106;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- str= "Direction %t|None %x0|X axis %x1|Y axis %x2|Z axis %x4|-X axis %x8|-Y axis %x16|-Z axis %x32";
- uiDefButS(block, MENU, B_REDR, str, xco+10, yco-65, 70, 19, &coa->mode, 0.0, 0.0, 0, 0, "Set the direction of the ray (in world coordinate)");
-
- if (coa->mode & (ACT_CONST_DIRPX|ACT_CONST_DIRNX)) fp= coa->minloc;
- else if (coa->mode & (ACT_CONST_DIRPY|ACT_CONST_DIRNY)) fp= coa->minloc+1;
- else fp= coa->minloc+2;
-
- uiDefButF(block, NUM, 0, "damp", xco+10, yco-45, (width-70)/2, 19, &coa->maxrot[0], 0.0, 1.0, 1, 0, "Damping factor of the Fh spring force");
- uiDefButF(block, NUM, 0, "dist", xco+10+(width-70)/2, yco-45, (width-70)/2, 19, fp, 0.010, 2000.0, 10, 0, "Height of the Fh area");
- uiDefButBitS(block, TOG, ACT_CONST_DOROTFH, 0, "Rot Fh", xco+10+(width-70), yco-45, 50, 19, &coa->flag, 0.0, 0.0, 0, 0, "Keep object axis parallel to normal");
-
- uiDefButF(block, NUMSLI, 0, "Fh ", xco+80, yco-65, (width-115), 19, fp+3, 0.0, 1.0, 0, 0, "Spring force within the Fh area");
- uiDefButBitS(block, TOG, ACT_CONST_NORMAL, 0, "N", xco+80+(width-115), yco-65, 25, 19,
- &coa->flag, 0.0, 0.0, 0, 0, "Add a horizontal spring force on slopes");
- uiDefButBitS(block, TOG, ACT_CONST_MATERIAL, B_REDR, "M/P", xco+10, yco-84, 40, 19,
- &coa->flag, 0.0, 0.0, 0, 0, "Detect material instead of property");
- if (coa->flag & ACT_CONST_MATERIAL) {
- uiDefBut(block, TEX, 1, "Material:", xco + 50, yco-84, (width-60), 19,
- coa->matprop, 0, MAX_NAME, 0, 0,
- "Ray detects only Objects with this material");
- }
- else {
- uiDefBut(block, TEX, 1, "Property:", xco + 50, yco-84, (width-60), 19,
- coa->matprop, 0, MAX_NAME, 0, 0,
- "Ray detect only Objects with this property");
- }
- uiDefButBitS(block, TOG, ACT_CONST_PERMANENT, 0, "PER", xco+10, yco-103, 40, 19,
- &coa->flag, 0.0, 0.0, 0, 0, "Persistent actuator: stays active even if ray does not reach target");
- uiDefButS(block, NUM, 0, "time", xco+50, yco-103, 90, 19, &(coa->time), 0.0, 1000.0, 0, 0, "Maximum activation time in frame, 0 for unlimited");
- uiDefButF(block, NUM, 0, "rotDamp", xco+140, yco-103, (width-150), 19, &coa->maxrot[1], 0.0, 1.0, 1, 0, "Use a different damping for rotation");
- }
- str= "Constraint Type %t|Location %x0|Distance %x1|Orientation %x2|Force field %x3";
- but = uiDefButS(block, MENU, B_REDR, str, xco+40, yco-23, (width-80), 19, &coa->type, 0.0, 0.0, 0, 0, "");
- yco-= ysize;
- break;
-
- case ACT_SCENE:
- sca= act->data;
-
- if (sca->type==ACT_SCENE_RESTART) {
- ysize= 28;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- }
- else if (sca->type==ACT_SCENE_CAMERA) {
-
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+40, yco-44, (width-80), 19, &(sca->camera), "Set this Camera. Leave empty to refer to self object");
- }
- else if (sca->type==ACT_SCENE_SET) {
-
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Set this Scene");
- }
- else if (sca->type==ACT_SCENE_ADD_FRONT) {
-
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Add an Overlay Scene");
- }
- else if (sca->type==ACT_SCENE_ADD_BACK) {
-
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Add a Background Scene");
- }
- else if (sca->type==ACT_SCENE_REMOVE) {
-
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Remove a Scene");
- }
- else if (sca->type==ACT_SCENE_SUSPEND) {
-
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Pause a Scene");
- }
- else if (sca->type==ACT_SCENE_RESUME) {
-
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- uiDefIDPoinBut(block, test_scenepoin_but, ID_SCE, 1, "SCE:", xco+40, yco-44, (width-80), 19, &(sca->scene), "Unpause a Scene");
- }
-
- str= "Scene %t|Restart %x0|Set Scene %x1|Set Camera %x2|Add OverlayScene %x3|Add BackgroundScene %x4|Remove Scene %x5|Suspend Scene %x6|Resume Scene %x7";
- uiDefButS(block, MENU, B_REDR, str, xco+40, yco-24, (width-80), 19, &sca->type, 0.0, 0.0, 0, 0, "");
-
- yco-= ysize;
- break;
- case ACT_GAME:
- {
- gma = act->data;
- if (gma->type == ACT_GAME_LOAD) {
- //ysize = 68;
- ysize = 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- uiDefBut(block, TEX, 1, "File: ", xco+10, yco-44, width-20, 19, &(gma->filename), 0, sizeof(gma->filename), 0, 0, "Load this blend file, use the \"//\" prefix for a path relative to the current blend file");
- // uiDefBut(block, TEX, 1, "Anim: ", xco+10, yco-64, width-20, 19, &(gma->loadaniname), 0, sizeof(gma->loadaniname), 0, 0, "Use this loadinganimation");
- }
-#if 0
- else if (gma->type == ACT_GAME_START) {
- ysize = 68;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- uiDefBut(block, TEX, 1, "File: ", xco+10, yco-44, width-20, 19, &(gma->filename), 0, sizeof(gma->filename), 0, 0, "Load this file");
- uiDefBut(block, TEX, 1, "Anim: ", xco+10, yco-64, width-20, 19, &(gma->loadaniname), 0, sizeof(gma->loadaniname), 0, 0, "Use this loadinganimation");
- }
-#endif
- else if (ELEM4(gma->type, ACT_GAME_RESTART, ACT_GAME_QUIT, ACT_GAME_SAVECFG, ACT_GAME_LOADCFG)) {
- ysize = 28;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- }
-
- //str = "Scene %t|Load game%x0|Start loaded game%x1|Restart this game%x2|Quit this game %x3";
- str = "Scene %t|Start new game%x0|Restart this game%x2|Quit this game %x3|Save bge.logic.globalDict %x4|Load bge.logic.globalDict %x5";
- uiDefButS(block, MENU, B_REDR, str, xco+40, yco-24, (width-80), 19, &gma->type, 0.0, 0.0, 0, 0, "");
-
- yco -= ysize;
- break;
- }
- case ACT_GROUP:
- ga= act->data;
-
- ysize= 52;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- str= "GroupKey types %t|Set Key %x6|Play %x0|Ping Pong %x1|Flipper %x2|Loop Stop %x3|Loop End %x4|Property %x5";
-
- uiDefButS(block, MENU, 1, str, xco+20, yco-24, width-40, 19, &ga->type, 0, 0, 0, 0, "");
- if (ga->type==ACT_GROUP_SET) {
- uiDefBut(block, TEX, 0, "Key: ", xco+20, yco-44, (width-10)/2, 19, ga->name, 0.0, MAX_NAME, 0, 0, "This name defines groupkey to be set");
- uiDefButI(block, NUM, 0, "Frame:", xco+20+(width-10)/2, yco-44, (width-70)/2, 19, &ga->sta, 0.0, 2500.0, 0, 0, "Set this frame");
- }
- else if (ga->type==ACT_GROUP_FROM_PROP) {
- uiDefBut(block, TEX, 0, "Prop: ", xco+20, yco-44, width-40, 19, ga->name, 0.0, MAX_NAME, 0, 0, "Use this property to define the Group position");
- }
- else {
- uiDefButI(block, NUM, 0, "State", xco+20, yco-44, (width-40)/2, 19, &ga->sta, 0.0, 2500.0, 0, 0, "Start frame");
- uiDefButI(block, NUM, 0, "End", xco+20+(width-40)/2, yco-44, (width-40)/2, 19, &ga->end, 0.0, 2500.0, 0, 0, "End frame");
- }
- yco-= ysize;
- break;
-
- case ACT_VISIBILITY:
- ysize = 24;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco,
- (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- visAct = act->data;
-
- uiBlockBeginAlign(block);
- uiDefButBitI(block, TOGN, ACT_VISIBILITY_INVISIBLE, B_REDR,
- "Visible",
- xco + 10, yco - 20, (width - 20)/3, 19, &visAct->flag,
- 0.0, 0.0, 0, 0,
- "Set the objects visible. Initialized from the objects render restriction toggle (access in the outliner)");
- uiDefButBitI(block, TOG, ACT_VISIBILITY_OCCLUSION, B_REDR,
- "Occlusion",
- xco + 10 + ((width - 20)/3), yco - 20, (width - 20)/3, 19, &visAct->flag,
- 0.0, 0.0, 0, 0,
- "Set the object to occlude objects behind it. Initialized from the object type in physics button");
- uiBlockEndAlign(block);
-
- uiDefButBitI(block, TOG, ACT_VISIBILITY_RECURSIVE, 0,
- "Children",
- xco + 10 + (((width - 20)/3)*2)+10, yco - 20, ((width - 20)/3)-10, 19, &visAct->flag,
- 0.0, 0.0, 0, 0,
- "Sets all the children of this object to the same visibility/occlusion recursively");
-
- yco-= ysize;
-
- break;
-
- case ACT_STATE:
- ysize = 34;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco,
- (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- staAct = act->data;
-
- str= "Operation %t|Cpy %x0|Add %x1|Sub %x2|Inv %x3";
-
- uiDefButI(block, MENU, B_REDR, str,
- xco + 10, yco - 24, 65, 19, &staAct->type,
- 0.0, 0.0, 0, 0,
- "Select the bit operation on object state mask");
-
- for (wval=0; wval<15; wval+=5) {
- uiBlockBeginAlign(block);
- for (stbit=0; stbit<5; stbit++) {
- but = uiDefButBitI(block, TOG, 1<<(stbit+wval), stbit+wval, "", (short)(xco+85+12*stbit+13*wval), yco-17, 12, 12, (int *)&(staAct->mask), 0, 0, 0, 0, get_state_name(ob, (short)(stbit+wval)));
- uiButSetFunc(but, check_state_mask, but, &(staAct->mask));
- }
- for (stbit=0; stbit<5; stbit++) {
- but = uiDefButBitI(block, TOG, 1<<(stbit+wval+15), stbit+wval+15, "", (short)(xco+85+12*stbit+13*wval), yco-29, 12, 12, (int *)&(staAct->mask), 0, 0, 0, 0, get_state_name(ob, (short)(stbit+wval+15)));
- uiButSetFunc(but, check_state_mask, but, &(staAct->mask));
- }
- }
- uiBlockEndAlign(block);
-
- yco-= ysize;
-
- break;
-
- case ACT_RANDOM:
- ysize = 69;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco,
- (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- randAct = act->data;
-
- /* 1. seed */
- uiDefButI(block, NUM, 1, "Seed: ", (xco+10), yco-24, 0.4 *(width-20), 19,
- &randAct->seed, 0, 1000, 0, 0,
- "Initial seed of the random generator. Use Python for more freedom. "
- " (Choose 0 for not random)");
-
- /* 2. distribution type */
- /* One pick per distribution. These numbers MUST match the #defines */
- /* in game.h !!! */
- str= "Distribution %t|Bool Constant %x0|Bool Uniform %x1"
- "|Bool Bernoulli %x2|Int Constant %x3|Int Uniform %x4"
- "|Int Poisson %x5|Float Constant %x6|Float Uniform %x7"
- "|Float Normal %x8|Float Neg. Exp. %x9";
- uiDefButI(block, MENU, B_REDR, str, (xco+10) + 0.4 * (width-20), yco-24, 0.6 * (width-20), 19,
- &randAct->distribution, 0.0, 0.0, 0, 0,
- "Choose the type of distribution");
-
- /* 3. property */
- uiDefBut(block, TEX, 1, "Property:", (xco+10), yco-44, (width-20), 19,
- &randAct->propname, 0, MAX_NAME, 0, 0,
- "Assign the random value to this property");
-
- /*4. and 5. arguments for the distribution*/
- switch (randAct->distribution) {
- case ACT_RANDOM_BOOL_CONST:
- uiDefButBitI(block, TOG, 1, 1, "Always true", (xco+10), yco-64, (width-20), 19,
- &randAct->int_arg_1, 2.0, 1, 0, 0,
- "Always false or always true");
- break;
- case ACT_RANDOM_BOOL_UNIFORM:
- uiDefBut(block, LABEL, 0, " Do a 50-50 pick", (xco+10), yco-64, (width-20), 19,
- NULL, 0, 0, 0, 0,
- "Choose between true and false, 50% chance each");
- break;
- case ACT_RANDOM_BOOL_BERNOUILLI:
- uiDefButF(block, NUM, 1, "Chance", (xco+10), yco-64, (width-20), 19,
- &randAct->float_arg_1, 0.0, 1.0, 0, 0,
- "Pick a number between 0 and 1. Success if you stay "
- "below this value");
- break;
- case ACT_RANDOM_INT_CONST:
- uiDefButI(block, NUM, 1, "Value: ", (xco+10), yco-64, (width-20), 19,
- &randAct->int_arg_1, -1000, 1000, 0, 0,
- "Always return this number");
- break;
- case ACT_RANDOM_INT_UNIFORM:
- uiDefButI(block, NUM, 1, "Min: ", (xco+10), yco-64, (width-20)/2, 19,
- &randAct->int_arg_1, -1000, 1000, 0, 0,
- "Choose a number from a range. "
- "Lower boundary of the range");
- uiDefButI(block, NUM, 1, "Max: ", (xco+10) + (width-20)/2, yco-64, (width-20)/2, 19,
- &randAct->int_arg_2, -1000, 1000, 0, 0,
- "Choose a number from a range. "
- "Upper boundary of the range");
- break;
- case ACT_RANDOM_INT_POISSON:
- uiDefButF(block, NUM, 1, "Mean: ", (xco+10), yco-64, (width-20), 19,
- &randAct->float_arg_1, 0.01, 100.0, 0, 0,
- "Expected mean value of the distribution");
- break;
- case ACT_RANDOM_FLOAT_CONST:
- uiDefButF(block, NUM, 1, "Value: ", (xco+10), yco-64, (width-20), 19,
- &randAct->float_arg_1, 0.0, 1.0, 0, 0,
- "Always return this number");
- break;
- case ACT_RANDOM_FLOAT_UNIFORM:
- uiDefButF(block, NUM, 1, "Min: ", (xco+10), yco-64, (width-20)/2, 19,
- &randAct->float_arg_1, -10000.0, 10000.0, 0, 0,
- "Choose a number from a range"
- "Lower boundary of the range");
- uiDefButF(block, NUM, 1, "Max: ", (xco+10) + (width-20)/2, yco-64, (width-20)/2, 19,
- &randAct->float_arg_2, -10000.0, 10000.0, 0, 0,
- "Choose a number from a range"
- "Upper boundary of the range");
- break;
- case ACT_RANDOM_FLOAT_NORMAL:
- uiDefButF(block, NUM, 1, "Mean: ", (xco+10), yco-64, (width-20)/2, 19,
- &randAct->float_arg_1, -10000.0, 10000.0, 0, 0,
- "A normal distribution. Mean of the distribution");
- uiDefButF(block, NUM, 1, "SD: ", (xco+10) + (width-20)/2, yco-64, (width-20)/2, 19,
- &randAct->float_arg_2, 0.0, 10000.0, 0, 0,
- "A normal distribution. Standard deviation of the "
- "distribution");
- break;
- case ACT_RANDOM_FLOAT_NEGATIVE_EXPONENTIAL:
- uiDefButF(block, NUM, 1, "Half-life time: ", (xco+10), yco-64, (width-20), 19,
- &randAct->float_arg_1, 0.001, 10000.0, 0, 0,
- "Negative exponential dropoff");
- break;
- default:
- ; /* don't know what this distro is... can be useful for testing */
- /* though :) */
- }
-
- yco-= ysize;
- break;
- case ACT_MESSAGE:
- ma = act->data;
-
- ysize = 4 + (3 * 24); /* footer + number of lines * 24 pixels/line */
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize,
- (float)xco+width, (float)yco, 1);
-
- myline=1;
-
- /* line 1: To */
- uiDefBut(block, TEX, 1, "To: ",
- (xco+10), (yco-(myline++*24)), (width-20), 19,
- &ma->toPropName, 0, MAX_NAME, 0, 0,
- "Optional send message to objects with this name only, or empty to broadcast");
-
- /* line 2: Message Subject */
- uiDefBut(block, TEX, 1, "Subject: ",
- (xco+10), (yco-(myline++*24)), (width-20), 19,
- &ma->subject, 0, MAX_NAME, 0, 0,
- "Optional message subject. This is what can be filtered on");
-
- /* line 3: Text/Property */
- uiDefButBitS(block, TOG, 1, B_REDR, "T/P",
- (xco+10), (yco-(myline*24)), (0.20 * (width-20)), 19,
- &ma->bodyType, 0.0, 0.0, 0, 0,
- "Toggle message type: either Text or a PropertyName");
-
- if (ma->bodyType == ACT_MESG_MESG) {
- /* line 3: Message Body */
- uiDefBut(block, TEX, 1, "Body: ",
- (xco+10+(0.20*(width-20))), (yco-(myline++*24)), (0.8*(width-20)), 19,
- &ma->body, 0, MAX_NAME, 0, 0,
- "Optional message body Text");
- }
- else {
- /* line 3: Property body (set by property) */
- uiDefBut(block, TEX, 1, "Propname: ",
- (xco+10+(0.20*(width-20))), (yco-(myline++*24)), (0.8*(width-20)), 19,
- &ma->body, 0, MAX_NAME, 0, 0,
- "The message body will be set by the Property Value");
- }
-
- yco -= ysize;
- break;
- case ACT_2DFILTER:
- tdfa = act->data;
-
- ysize = 50;
- if (tdfa->type == ACT_2DFILTER_CUSTOMFILTER) {
- ysize +=20;
- }
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- switch (tdfa->type) {
- case ACT_2DFILTER_MOTIONBLUR:
- if (!tdfa->flag) {
- uiDefButS(block, TOG, B_REDR, "D", xco+30, yco-44, 19, 19, &tdfa->flag, 0.0, 0.0, 0.0, 0.0, "Disable Motion Blur");
- uiDefButF(block, NUM, B_REDR, "Value:", xco+52, yco-44, width-82, 19, &tdfa->float_arg, 0.0, 1.0, 0.0, 0.0, "Set motion blur value");
- }
- else {
- uiDefButS(block, TOG, B_REDR, "Disabled", xco+30, yco-44, width-60, 19, &tdfa->flag, 0.0, 0.0, 0.0, 0.0, "Enable Motion Blur");
- }
- break;
- case ACT_2DFILTER_BLUR:
- case ACT_2DFILTER_SHARPEN:
- case ACT_2DFILTER_DILATION:
- case ACT_2DFILTER_EROSION:
- case ACT_2DFILTER_LAPLACIAN:
- case ACT_2DFILTER_SOBEL:
- case ACT_2DFILTER_PREWITT:
- case ACT_2DFILTER_GRAYSCALE:
- case ACT_2DFILTER_SEPIA:
- case ACT_2DFILTER_INVERT:
- case ACT_2DFILTER_NOFILTER:
- case ACT_2DFILTER_DISABLED:
- case ACT_2DFILTER_ENABLED:
- uiDefButI(block, NUM, B_REDR, "Pass Number:", xco+30, yco-44, width-60, 19, &tdfa->int_arg, 0.0, MAX_RENDER_PASS-1, 0.0, 0.0, "Set filter order");
- break;
- case ACT_2DFILTER_CUSTOMFILTER:
- uiDefButI(block, NUM, B_REDR, "Pass Number:", xco+30, yco-44, width-60, 19, &tdfa->int_arg, 0.0, MAX_RENDER_PASS-1, 0.0, 0.0, "Set filter order");
- uiDefIDPoinBut(block, test_scriptpoin_but, ID_SCRIPT, 1, "Script: ", xco+30, yco-64, width-60, 19, &tdfa->text, "");
- break;
- }
-
- str= "2D Filter %t|Motion Blur %x1|Blur %x2|Sharpen %x3|Dilation %x4|Erosion %x5|"
- "Laplacian %x6|Sobel %x7|Prewitt %x8|Gray Scale %x9|Sepia %x10|Invert %x11|Custom Filter %x12|"
- "Enable Filter %x-2|Disable Filter %x-1|Remove Filter %x0|";
- uiDefButS(block, MENU, B_REDR, str, xco+30, yco-24, width-60, 19, &tdfa->type, 0.0, 0.0, 0.0, 0.0, "2D filter type");
-
- yco -= ysize;
- break;
- case ACT_PARENT:
- parAct = act->data;
-
- if (parAct->type==ACT_PARENT_SET) {
-
- ysize= 48;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "OB:", xco+95, yco-24, (width-100), 19, &(parAct->ob), "Set this object as parent");
- uiBlockBeginAlign(block);
- uiDefButBitS(block, TOGN, ACT_PARENT_COMPOUND, B_REDR,
- "Compound",
- xco + 5, yco - 44, (width - 10)/2, 19, &parAct->flag,
- 0.0, 0.0, 0, 0,
- "Add this object shape to the parent shape (only if the parent shape is already compound)");
- uiDefButBitS(block, TOGN, ACT_PARENT_GHOST, B_REDR,
- "Ghost",
- xco + 5 + ((width - 10)/2), yco - 44, (width - 10)/2, 19, &parAct->flag,
- 0.0, 0.0, 0, 0,
- "Make this object ghost while parented (only if not compound)");
- uiBlockEndAlign(block);
- }
- else if (parAct->type==ACT_PARENT_REMOVE) {
-
- ysize= 28;
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- }
-
- str= "Parent %t|Set Parent %x0|Remove Parent %x1";
- uiDefButI(block, MENU, B_REDR, str, xco+5, yco-24, parAct->type==1?(width-80):90, 19, &parAct->type, 0.0, 0.0, 0, 0, "");
-
- yco-= ysize;
- break;
- case ACT_ARMATURE:
- armAct = act->data;
-
- if (ob->type == OB_ARMATURE) {
- str= "Constraint %t|Run armature %x0|Enable %x1|Disable %x2|Set target %x3|Set weight %x4";
- uiDefButI(block, MENU, B_REDR, str, xco+5, yco-24, (width-10)*0.35, 19, &armAct->type, 0.0, 0.0, 0, 0, "");
-
- switch (armAct->type) {
- case ACT_ARM_RUN:
- ysize = 28;
- break;
- default:
- uiBlockBeginAlign(block);
- but = uiDefBut(block, TEX, 1, "Bone: ",
- (xco+5), (yco-44), (width-10)/2, 19,
- armAct->posechannel, 0, MAX_NAME, 0, 0,
- "Bone on which the constraint is defined");
- uiButSetFunc(but, check_armature_actuator, but, armAct);
- but = uiDefBut(block, TEX, 1, "Cons: ",
- (xco+5)+(width-10)/2, (yco-44), (width-10)/2, 19,
- armAct->constraint, 0, MAX_NAME, 0, 0,
- "Name of the constraint you want to control");
- uiButSetFunc(but, check_armature_actuator, but, armAct);
- uiBlockEndAlign(block);
- ysize = 48;
- switch (armAct->type) {
- case ACT_ARM_SETTARGET:
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "Target: ", xco+5, yco-64, (width-10), 19, &(armAct->target), "Set this object as the target of the constraint");
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, 1, "Secondary Target: ", xco+5, yco-84, (width-10), 19, &(armAct->subtarget), "Set this object as the secondary target of the constraint (only IK polar target at the moment)");
- ysize += 40;
- break;
- case ACT_ARM_SETWEIGHT:
- uiDefButF(block, NUM, B_REDR, "Weight:", xco+5+(width-10)*0.35, yco-24, (width-10)*0.65, 19, &armAct->weight, 0.0, 1.0, 0.0, 0.0, "Set weight of this constraint");
- break;
- }
- }
- }
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
- yco-= ysize;
- break;
-
- default:
- ysize= 4;
-
- glRects(xco, yco-ysize, xco+width, yco);
- uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
-
- yco-= ysize;
- break;
- }
-
- uiBlockSetEmboss(block, UI_EMBOSS);
-
- return yco-4;
-}
static void do_sensor_menu(bContext *C, void *UNUSED(arg), int event)
{
@@ -3084,8 +878,6 @@ static uiBlock *actuator_menu(bContext *C, ARegion *ar, void *UNUSED(arg))
return block;
}
-
-
static void check_controller_state_mask(bContext *UNUSED(C), void *arg1_but, void *arg2_mask)
{
unsigned int *cont_mask = arg2_mask;
@@ -3096,17 +888,6 @@ static void check_controller_state_mask(bContext *UNUSED(C), void *arg1_but, voi
but->retval = B_REDR;
}
-static int first_bit(unsigned int mask)
-{
- int bit;
-
- for (bit=0; bit<32; bit++) {
- if (mask & (1<<bit))
- return bit;
- }
- return -1;
-}
-
static uiBlock *controller_state_mask_menu(bContext *C, ARegion *ar, void *arg_cont)
{
uiBlock *block;
@@ -3139,44 +920,6 @@ static uiBlock *controller_state_mask_menu(bContext *C, ARegion *ar, void *arg_c
return block;
}
-static void do_object_state_menu(bContext *UNUSED(C), void *arg, int event)
-{
- Object *ob = arg;
-
- switch (event) {
- case 0:
- ob->state = 0x3FFFFFFF;
- break;
- case 1:
- ob->state = ob->init_state;
- if (!ob->state)
- ob->state = 1;
- break;
- case 2:
- ob->init_state = ob->state;
- break;
- }
-}
-
-static uiBlock *object_state_mask_menu(bContext *C, ARegion *ar, void *arg_obj)
-{
- uiBlock *block;
- short xco = 0;
-
- block= uiBeginBlock(C, ar, __func__, UI_EMBOSSP);
- uiBlockSetButmFunc(block, do_object_state_menu, arg_obj);
-
- uiDefBut(block, BUTM, 1, "Set all bits", 0, (short)(xco-=20), 160, 19, NULL, 0.0, 0.0, 1, 0, "");
- uiDefBut(block, BUTM, 1, "Recall init state", 0, (short)(xco-=20), 160, 19, NULL, 0.0, 0.0, 1, 1, "");
- uiDefBut(block, SEPR, 0, "", 0, (short)(xco-=6), 160, 6, NULL, 0.0, 0.0, 0, 0, "");
- uiDefBut(block, BUTM, 1, "Store init state", 0, (short)(xco-=20), 160, 19, NULL, 0.0, 0.0, 1, 2, "");
-
- uiBlockSetDirection(block, UI_TOP);
- uiEndBlock(C, block);
-
- return block;
-}
-
static int is_sensor_linked(uiBlock *block, bSensor *sens)
{
bController *cont;
@@ -3398,7 +1141,13 @@ static void draw_sensor_message(uiLayout *layout, PointerRNA *ptr)
static void draw_sensor_mouse(uiLayout *layout, PointerRNA *ptr)
{
- uiItemR(layout, ptr, "mouse_event", 0, NULL, ICON_NONE);
+ uiLayout *split;
+
+ split = uiLayoutSplit(layout, 0.8f, FALSE);
+ uiItemR(split, ptr, "mouse_event", 0, NULL, ICON_NONE);
+
+ if (RNA_enum_get(ptr, "mouse_event") == BL_SENS_MOUSE_MOUSEOVER_ANY)
+ uiItemR(split, ptr, "use_pulse", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
}
static void draw_sensor_near(uiLayout *layout, PointerRNA *ptr)
@@ -4352,38 +2101,38 @@ static void draw_actuator_steering(uiLayout *layout, PointerRNA *ptr)
uiLayout *row;
uiLayout *col;
- uiItemR(layout, ptr, "mode", 0, NULL, 0);
- uiItemR(layout, ptr, "target", 0, NULL, 0);
- uiItemR(layout, ptr, "navmesh", 0, NULL, 0);
+ uiItemR(layout, ptr, "mode", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "target", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "navmesh", 0, NULL, ICON_NONE);
row = uiLayoutRow(layout, FALSE);
- uiItemR(row, ptr, "distance", 0, NULL, 0);
- uiItemR(row, ptr, "velocity", 0, NULL, 0);
+ uiItemR(row, ptr, "distance", 0, NULL, ICON_NONE);
+ uiItemR(row, ptr, "velocity", 0, NULL, ICON_NONE);
row = uiLayoutRow(layout, FALSE);
- uiItemR(row, ptr, "acceleration", 0, NULL, 0);
- uiItemR(row, ptr, "turn_speed", 0, NULL, 0);
+ uiItemR(row, ptr, "acceleration", 0, NULL, ICON_NONE);
+ uiItemR(row, ptr, "turn_speed", 0, NULL, ICON_NONE);
row = uiLayoutRow(layout, FALSE);
col = uiLayoutColumn(row, FALSE);
- uiItemR(col, ptr, "facing", 0, NULL, 0);
+ uiItemR(col, ptr, "facing", 0, NULL, ICON_NONE);
col = uiLayoutColumn(row, FALSE);
- uiItemR(col, ptr, "facing_axis", 0, NULL, 0);
+ uiItemR(col, ptr, "facing_axis", 0, NULL, ICON_NONE);
if (!RNA_boolean_get(ptr, "facing")) {
uiLayoutSetActive(col, FALSE);
}
col = uiLayoutColumn(row, FALSE);
- uiItemR(col, ptr, "normal_up", 0, NULL, 0);
+ uiItemR(col, ptr, "normal_up", 0, NULL, ICON_NONE);
if (!RNA_pointer_get(ptr, "navmesh").data) {
uiLayoutSetActive(col, FALSE);
}
row = uiLayoutRow(layout, FALSE);
- uiItemR(row, ptr, "self_terminated", 0, NULL, 0);
+ uiItemR(row, ptr, "self_terminated", 0, NULL, ICON_NONE);
if (RNA_enum_get(ptr, "mode")==ACT_STEERING_PATHFOLLOWING) {
- uiItemR(row, ptr, "update_period", 0, NULL, 0);
+ uiItemR(row, ptr, "update_period", 0, NULL, ICON_NONE);
row = uiLayoutRow(layout, FALSE);
}
- uiItemR(row, ptr, "show_visualization", 0, NULL, 0);
+ uiItemR(row, ptr, "show_visualization", 0, NULL, ICON_NONE);
}
static void draw_brick_actuator(uiLayout *layout, PointerRNA *ptr, bContext *C)
@@ -4452,14 +2201,13 @@ static void draw_brick_actuator(uiLayout *layout, PointerRNA *ptr, bContext *C)
}
}
-static void logic_buttons_new(bContext *C, ARegion *ar)
+void logic_buttons(bContext *C, ARegion *ar)
{
SpaceLogic *slogic= CTX_wm_space_logic(C);
Object *ob= CTX_data_active_object(C);
- Object *act_ob= ob;
ID **idar;
- PointerRNA logic_ptr, settings_ptr;
+ PointerRNA logic_ptr, settings_ptr, object_ptr;
uiLayout *layout, *row, *box;
uiBlock *block;
@@ -4539,7 +2287,9 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
ob= (Object *)idar[a];
/* only draw the controller common header if "use_visible" */
- if ( (ob->scavisflag & OB_VIS_CONT) == 0) continue;
+ if ( (ob->scavisflag & OB_VIS_CONT) == 0) {
+ continue;
+ }
/* Drawing the Controller Header common to all Selected Objects */
@@ -4550,8 +2300,10 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
row = uiLayoutRow(split, TRUE);
uiDefButBitS(block, TOG, OB_SHOWCONT, B_REDR, ob->id.name+2, (short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide controllers");
- if (ob == act_ob)
- uiItemMenuEnumO(row, "LOGIC_OT_controller_add", "type", "Add Controller", ICON_NONE);
+
+ RNA_pointer_create((ID *)ob, &RNA_Object, ob, &object_ptr);
+ uiLayoutSetContextPointer(row, "object", &object_ptr);
+ uiItemMenuEnumO(row, "LOGIC_OT_controller_add", "type", "Add Controller", ICON_NONE);
if (RNA_boolean_get(&settings_ptr, "show_state_panel")) {
@@ -4566,9 +2318,9 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
col = uiLayoutColumn(subsplit, FALSE);
row = uiLayoutRow(col, FALSE);
uiLayoutSetActive(row, RNA_boolean_get(&settings_ptr, "use_all_states") == FALSE);
- uiTemplateLayers(row, &settings_ptr, "states_visible", &settings_ptr, "used_states", 0);
+ uiTemplateGameStates(row, &settings_ptr, "states_visible", &settings_ptr, "used_states", 0);
row = uiLayoutRow(col, FALSE);
- uiTemplateLayers(row, &settings_ptr, "states_initial", &settings_ptr, "used_states", 0);
+ uiTemplateGameStates(row, &settings_ptr, "states_initial", &settings_ptr, "used_states", 0);
col = uiLayoutColumn(subsplit, FALSE);
uiItemR(col, &settings_ptr, "use_all_states", UI_ITEM_R_TOGGLE, NULL, ICON_NONE);
@@ -4645,8 +2397,10 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
row = uiLayoutRow(layout, TRUE);
uiDefButBitS(block, TOG, OB_SHOWSENS, B_REDR, ob->id.name+2, (short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide sensors");
- if (ob == act_ob)
- uiItemMenuEnumO(row, "LOGIC_OT_sensor_add", "type", "Add Sensor", ICON_NONE);
+
+ RNA_pointer_create((ID *)ob, &RNA_Object, ob, &object_ptr);
+ uiLayoutSetContextPointer(row, "object", &object_ptr);
+ uiItemMenuEnumO(row, "LOGIC_OT_sensor_add", "type", "Add Sensor", ICON_NONE);
if ((ob->scaflag & OB_SHOWSENS) == 0) continue;
@@ -4707,12 +2461,16 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
ob= (Object *)idar[a];
/* only draw the actuator common header if "use_visible" */
- if ( (ob->scavisflag & OB_VIS_ACT) == 0) continue;
+ if ((ob->scavisflag & OB_VIS_ACT) == 0) {
+ continue;
+ }
row = uiLayoutRow(layout, TRUE);
uiDefButBitS(block, TOG, OB_SHOWACT, B_REDR, ob->id.name+2, (short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide actuators");
- if (ob == act_ob)
- uiItemMenuEnumO(row, "LOGIC_OT_actuator_add", "type", "Add Actuator", ICON_NONE);
+
+ RNA_pointer_create((ID *)ob, &RNA_Object, ob, &object_ptr);
+ uiLayoutSetContextPointer(row, "object", &object_ptr);
+ uiItemMenuEnumO(row, "LOGIC_OT_actuator_add", "type", "Add Actuator", ICON_NONE);
if ((ob->scaflag & OB_SHOWACT) == 0) continue;
@@ -4763,371 +2521,3 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
if (idar) MEM_freeN(idar);
}
-void logic_buttons(bContext *C, ARegion *ar)
-{
- Main *bmain= CTX_data_main(C);
- SpaceLogic *slogic= CTX_wm_space_logic(C);
- Object *ob= CTX_data_active_object(C);
- ID **idar;
- bSensor *sens;
- bController *cont;
- bActuator *act;
- uiBlock *block;
- uiBut *but;
- PointerRNA logic_ptr;
- int a, iact, stbit, offset;
- int xco, yco, width, ycoo;
- short count;
- char numstr[32];
- /* pin is a bool used for actuator and sensor drawing with states
- * pin so changing states dosnt hide the logic brick */
- char pin;
-
- if (G.rt == 0) {
- logic_buttons_new(C, ar);
- return;
- }
-
- if (ob==NULL) return;
-// uiSetButLock(BKE_object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
-
- BLI_snprintf(numstr, sizeof(numstr), "buttonswin %p", (void *)ar);
- block= uiBeginBlock(C, ar, numstr, UI_EMBOSS);
- uiBlockSetHandleFunc(block, do_logic_buts, NULL);
-
- RNA_pointer_create(NULL, &RNA_SpaceLogicEditor, slogic, &logic_ptr);
-
- idar= get_selected_and_linked_obs(C, &count, slogic->scaflag);
-
- /* clean ACT_LINKED and ACT_VISIBLE of all potentially visible actuators so that
- * we can determine which is actually linked/visible */
- for (a=0; a<count; a++) {
- ob= (Object *)idar[a];
- act= ob->actuators.first;
- while (act) {
- act->flag &= ~(ACT_LINKED|ACT_VISIBLE);
- act = act->next;
- }
- /* same for sensors */
- sens= ob->sensors.first;
- while (sens) {
- sens->flag &= ~(SENS_VISIBLE);
- sens = sens->next;
- }
- }
-
- /* start with the controller because we need to know which one is visible */
- /* ******************************* */
- xco= 400; yco= 170; width= 300;
-
- uiDefBlockBut(block, controller_menu, NULL, "Controllers", xco-10, yco+35, 100, UI_UNIT_Y, "");
-
- uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, BUTS_CONT_SEL, B_REDR, "Sel", xco+110, yco+35, (width-100)/3, UI_UNIT_Y, &slogic->scaflag, 0, 0, 0, 0, "Show all selected Objects");
- uiDefButBitS(block, TOG, BUTS_CONT_ACT, B_REDR, "Act", xco+110+(width-100)/3, yco+35, (width-100)/3, UI_UNIT_Y, &slogic->scaflag, 0, 0, 0, 0, "Show active Object");
- uiDefButBitS(block, TOG, BUTS_CONT_LINK, B_REDR, "Link", xco+110+2*(width-100)/3, yco+35, (width-100)/3, UI_UNIT_Y, &slogic->scaflag, 0, 0, 0, 0, "Show linked Objects to Sensor/Actuator");
- uiBlockEndAlign(block);
-
- for (a=0; a<count; a++) {
- unsigned int controller_state_mask = 0; /* store a bitmask for states that are used */
-
- ob= (Object *)idar[a];
-// uiClearButLock();
-// uiSetButLock(BKE_object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
- if ( (ob->scavisflag & OB_VIS_CONT) == 0) continue;
-
- /* presume it is only objects for now */
- uiBlockBeginAlign(block);
-// if (ob->controllers.first) uiSetCurFont(block, UI_HELVB);
- uiDefButBitS(block, TOG, OB_SHOWCONT, B_REDR, ob->id.name+2, (short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 0, 0, 0, "Active Object name");
-// if (ob->controllers.first) uiSetCurFont(block, UI_HELV);
- uiDefButBitS(block, TOG, OB_ADDCONT, B_ADD_CONT, "Add", (short)(xco+width-40), yco, 50, UI_UNIT_Y, &ob->scaflag, 0, 0, 0, 0, "Add a new Controller");
- uiBlockEndAlign(block);
- yco-=20;
-
- /* mark all actuators linked to these controllers */
- /* note that some of these actuators could be from objects that are not in the display list.
- * It's ok because those actuators will not be displayed here */
- cont= ob->controllers.first;
- while (cont) {
- for (iact=0; iact<cont->totlinks; iact++) {
- act = cont->links[iact];
- if (act)
- act->flag |= ACT_LINKED;
- }
- controller_state_mask |= cont->state_mask;
- cont = cont->next;
- }
-
- if (ob->scaflag & OB_SHOWCONT) {
-
- /* first show the state */
- uiDefBlockBut(block, object_state_mask_menu, ob, "State", (short)(xco-10), (short)(yco-10), 36, UI_UNIT_Y, "Object state menu: store and retrieve initial state");
-
- if (!ob->state)
- ob->state = 1;
- for (offset=0; offset<15; offset+=5) {
- uiBlockBeginAlign(block);
- for (stbit=0; stbit<5; stbit++) {
- but = uiDefButBitI(block, controller_state_mask&(1<<(stbit+offset)) ? BUT_TOGDUAL:TOG, 1<<(stbit+offset), stbit+offset, "", (short)(xco+31+12*stbit+13*offset), yco, 12, 12, (int *)&(ob->state), 0, 0, 0, 0, get_state_name(ob, (short)(stbit+offset)));
- uiButSetFunc(but, check_state_mask, but, &(ob->state));
- }
- for (stbit=0; stbit<5; stbit++) {
- but = uiDefButBitI(block, controller_state_mask&(1<<(stbit+offset+15)) ? BUT_TOGDUAL:TOG, 1<<(stbit+offset+15), stbit+offset+15, "", (short)(xco+31+12*stbit+13*offset), yco-12, 12, 12, (int *)&(ob->state), 0, 0, 0, 0, get_state_name(ob, (short)(stbit+offset+15)));
- uiButSetFunc(but, check_state_mask, but, &(ob->state));
- }
- }
- uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, OB_ALLSTATE, B_SET_STATE_BIT, "All", (short)(xco+226), yco-10, 22, UI_UNIT_Y, &ob->scaflag, 0, 0, 0, 0, "Set all state bits");
- uiDefButBitS(block, TOG, OB_INITSTBIT, B_INIT_STATE_BIT, "Ini", (short)(xco+248), yco-10, 22, UI_UNIT_Y, &ob->scaflag, 0, 0, 0, 0, "Set the initial state");
- uiDefButBitS(block, TOG, OB_DEBUGSTATE, 0, "D", (short)(xco+270), yco-10, 15, UI_UNIT_Y, &ob->scaflag, 0, 0, 0, 0, "Print state debug info");
- uiBlockEndAlign(block);
-
- yco-=35;
-
- /* display only the controllers that match the current state */
- offset = 0;
- for (stbit=0; stbit<32; stbit++) {
- if (!(ob->state & (1<<stbit)))
- continue;
- /* add a separation between controllers of different states */
- if (offset) {
- offset = 0;
- yco -= 6;
- }
- cont= ob->controllers.first;
- while (cont) {
- if (cont->state_mask & (1<<stbit)) {
- /* this controller is visible, mark all its actuator */
- for (iact=0; iact<cont->totlinks; iact++) {
- act = cont->links[iact];
- if (act)
- act->flag |= ACT_VISIBLE;
- }
- uiDefIconButBitS(block, TOG, CONT_DEL, B_DEL_CONT, ICON_X, xco, yco, 22, UI_UNIT_Y, &cont->flag, 0, 0, 0, 0, "Delete Controller");
- uiDefIconButBitS(block, ICONTOG, CONT_SHOW, B_REDR, ICON_RIGHTARROW, (short)(xco+width-22), yco, 22, UI_UNIT_Y, &cont->flag, 0, 0, 0, 0, "Controller settings");
- uiDefIconButBitS(block, TOG, CONT_PRIO, B_REDR, ICON_BOOKMARKS, (short)(xco+width-66), yco, 22, UI_UNIT_Y, &cont->flag, 0, 0, 0, 0, "Mark controller for execution before all non-marked controllers (good for startup scripts)");
-
- sprintf(numstr, "%d", first_bit(cont->state_mask)+1);
- uiDefBlockBut(block, controller_state_mask_menu, cont, numstr, (short)(xco+width-44), yco, 22, UI_UNIT_Y, "Set controller state index (from 1 to 30)");
-
- if (cont->flag & CONT_SHOW) {
- cont->otype= cont->type;
- uiDefButS(block, MENU, B_CHANGE_CONT, controller_pup(), (short)(xco+22), yco, 70, UI_UNIT_Y, &cont->type, 0, 0, 0, 0, "Controller type");
- but = uiDefBut(block, TEX, 1, "", (short)(xco+92), yco, (short)(width-158), UI_UNIT_Y, cont->name, 0, MAX_NAME, 0, 0, "Controller name");
- uiButSetFunc(but, make_unique_prop_names_cb, cont->name, (void*) 0);
-
- ycoo= yco;
- yco= draw_controllerbuttons(cont, block, xco, yco, width);
- if (yco-6 < ycoo) ycoo= (yco+ycoo-20)/2;
- }
- else {
- cpack(0x999999);
- glRecti(xco+22, yco, xco+width-22, yco+19);
- but = uiDefBut(block, LABEL, 0, controller_name(cont->type), (short)(xco+22), yco, 70, UI_UNIT_Y, cont, 0, 0, 0, 0, "Controller type");
- //uiButSetFunc(but, old_sca_move_controller, cont, NULL);
- but = uiDefBut(block, LABEL, 0, cont->name, (short)(xco+92), yco, (short)(width-158), UI_UNIT_Y, cont, 0, 0, 0, 0, "Controller name");
- //uiButSetFunc(but, old_sca_move_controller, cont, NULL);
-
- uiBlockBeginAlign(block);
- but = uiDefIconBut(block, BUT, B_REDR, ICON_TRIA_UP, (short)(xco+width-(110+5)), yco, 22, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Move this logic brick up");
- uiButSetFunc(but, old_sca_move_controller, cont, (void *)TRUE);
- but = uiDefIconBut(block, BUT, B_REDR, ICON_TRIA_DOWN, (short)(xco+width-(88+5)), yco, 22, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Move this logic brick down");
- uiButSetFunc(but, old_sca_move_controller, cont, (void *)FALSE);
- uiBlockEndAlign(block);
-
- ycoo= yco;
- }
-
- but = uiDefIconBut(block, LINK, 0, ICON_LINK, (short)(xco+width), ycoo, UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
- uiSetButLink(but, NULL, (void ***)&(cont->links), &cont->totlinks, LINK_CONTROLLER, LINK_ACTUATOR);
-
- uiDefIconBut(block, INLINK, 0, ICON_INLINK, (short)(xco-19), ycoo, UI_UNIT_X, UI_UNIT_Y, cont, LINK_CONTROLLER, 0, 0, 0, "");
- /* offset is >0 if at least one controller was displayed */
- offset++;
- yco-=20;
- }
- cont= cont->next;
- }
-
- }
- yco-= 6;
- }
- }
-
- /* ******************************* */
- xco= 10; yco= 170; width= 300;
-
- uiDefBlockBut(block, sensor_menu, NULL, "Sensors", xco-10, yco+35, 70, UI_UNIT_Y, "");
-
- uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, BUTS_SENS_SEL, B_REDR, "Sel", xco+80, yco+35, (width-70)/4, UI_UNIT_Y, &slogic->scaflag, 0, 0, 0, 0, "Show all selected Objects");
- uiDefButBitS(block, TOG, BUTS_SENS_ACT, B_REDR, "Act", xco+80+(width-70)/4, yco+35, (width-70)/4, UI_UNIT_Y, &slogic->scaflag, 0, 0, 0, 0, "Show active Object");
- uiDefButBitS(block, TOG, BUTS_SENS_LINK, B_REDR, "Link", xco+80+2*(width-70)/4, yco+35, (width-70)/4, UI_UNIT_Y, &slogic->scaflag, 0, 0, 0, 0, "Show linked Objects to Controller");
- uiDefButBitS(block, TOG, BUTS_SENS_STATE, B_REDR, "State", xco+80+3*(width-70)/4, yco+35, (width-70)/4, UI_UNIT_Y, &slogic->scaflag, 0, 0, 0, 0, "Show only sensors connected to active states");
- uiBlockEndAlign(block);
-
- for (a=0; a<count; a++) {
- ob= (Object *)idar[a];
-// uiClearButLock();
-// uiSetButLock(BKE_object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
-
- if ( (ob->scavisflag & OB_VIS_SENS) == 0) continue;
-
- /* presume it is only objects for now */
- uiBlockBeginAlign(block);
-// if (ob->sensors.first) uiSetCurFont(block, UI_HELVB);
- uiDefButBitS(block, TOG, OB_SHOWSENS, B_REDR, ob->id.name+2, (short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide sensors");
-// if (ob->sensors.first) uiSetCurFont(block, UI_HELV);
- uiDefButBitS(block, TOG, OB_ADDSENS, B_ADD_SENS, "Add", (short)(xco+width-40), yco, 50, UI_UNIT_Y, &ob->scaflag, 0, 0, 0, 0, "Add a new Sensor");
- uiBlockEndAlign(block);
- yco-=20;
-
- if (ob->scaflag & OB_SHOWSENS) {
-
- sens= ob->sensors.first;
- while (sens) {
- if (!(slogic->scaflag & BUTS_SENS_STATE) ||
- (sens->totlinks == 0) || /* always display sensor without links so that is can be edited */
- (sens->flag & SENS_PIN && slogic->scaflag & BUTS_SENS_STATE) || /* states can hide some sensors, pinned sensors ignore the visible state */
- (is_sensor_linked(block, sens))
- ) {
- /* should we draw the pin? - for now always draw when there is a state */
- pin = (slogic->scaflag & BUTS_SENS_STATE && (sens->flag & SENS_SHOW || sens->flag & SENS_PIN)) ? 1 : 0;
-
- sens->flag |= SENS_VISIBLE;
- uiDefIconButBitS(block, TOG, SENS_DEL, B_DEL_SENS, ICON_X, xco, yco, 22, UI_UNIT_Y, &sens->flag, 0, 0, 0, 0, "Delete Sensor");
- if (pin)
- uiDefIconButBitS(block, ICONTOG, SENS_PIN, B_REDR, ICON_PINNED, (short)(xco+width-44), yco, 22, UI_UNIT_Y, &sens->flag, 0, 0, 0, 0, "Display when not linked to a visible states controller");
-
- uiDefIconButBitS(block, ICONTOG, SENS_SHOW, B_REDR, ICON_RIGHTARROW, (short)(xco+width-22), yco, 22, UI_UNIT_Y, &sens->flag, 0, 0, 0, 0, "Sensor settings");
-
- ycoo= yco;
- if (sens->flag & SENS_SHOW) {
- uiDefButS(block, MENU, B_CHANGE_SENS, sensor_pup(), (short)(xco+22), yco, 80, UI_UNIT_Y, &sens->type, 0, 0, 0, 0, "Sensor type");
- but = uiDefBut(block, TEX, 1, "", (short)(xco+102), yco, (short)(width-(pin?146:124)), UI_UNIT_Y, sens->name, 0, MAX_NAME, 0, 0, "Sensor name");
- uiButSetFunc(but, make_unique_prop_names_cb, sens->name, (void*) 0);
-
- sens->otype= sens->type;
- yco= draw_sensorbuttons(ob, sens, block, xco, yco, width);
- if (yco-6 < ycoo) ycoo= (yco+ycoo-20)/2;
- }
- else {
- set_col_sensor(sens->type, 1);
- glRecti(xco + 22, yco, xco + width - 22, yco + 19);
- but = uiDefBut(block, LABEL, 0, sensor_name(sens->type), (short)(xco+22), yco, 80, UI_UNIT_Y, sens, 0, 0, 0, 0, "");
- //uiButSetFunc(but, old_sca_move_sensor, sens, NULL);
- but = uiDefBut(block, LABEL, 0, sens->name, (short)(xco+102), yco, (short)(width-(pin?146:124)), UI_UNIT_Y, sens, 0, MAX_NAME, 0, 0, "");
- //uiButSetFunc(but, old_sca_move_sensor, sens, NULL);
-
- uiBlockBeginAlign(block);
- but = uiDefIconBut(block, BUT, B_REDR, ICON_TRIA_UP, (short)(xco+width-(66+5)), yco, 22, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Move this logic brick up");
- uiButSetFunc(but, old_sca_move_sensor, sens, (void *)TRUE);
- but = uiDefIconBut(block, BUT, B_REDR, ICON_TRIA_DOWN, (short)(xco+width-(44+5)), yco, 22, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Move this logic brick down");
- uiButSetFunc(but, old_sca_move_sensor, sens, (void *)FALSE);
- uiBlockEndAlign(block);
- }
-
- but = uiDefIconBut(block, LINK, 0, ICON_LINK, (short)(xco+width), ycoo, UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
- uiSetButLink(but, NULL, (void ***)&(sens->links), &sens->totlinks, LINK_SENSOR, LINK_CONTROLLER);
-
- yco-=20;
- }
- sens= sens->next;
- }
- yco-= 6;
- }
- }
- /* ******************************* */
- xco= 800; yco= 170; width= 300;
- uiDefBlockBut(block, actuator_menu, NULL, "Actuators", xco-10, yco+35, 90, UI_UNIT_Y, "");
-
- uiBlockBeginAlign(block);
- uiDefButBitS(block, TOG, BUTS_ACT_SEL, B_REDR, "Sel", xco+110, yco+35, (width-100)/4, UI_UNIT_Y, &slogic->scaflag, 0, 0, 0, 0, "Show all selected Objects");
- uiDefButBitS(block, TOG, BUTS_ACT_ACT, B_REDR, "Act", xco+110+(width-100)/4, yco+35, (width-100)/4, UI_UNIT_Y, &slogic->scaflag, 0, 0, 0, 0, "Show active Object");
- uiDefButBitS(block, TOG, BUTS_ACT_LINK, B_REDR, "Link", xco+110+2*(width-100)/4, yco+35, (width-100)/4, UI_UNIT_Y, &slogic->scaflag, 0, 0, 0, 0, "Show linked Objects to Controller");
- uiDefButBitS(block, TOG, BUTS_ACT_STATE, B_REDR, "State", xco+110+3*(width-100)/4, yco+35, (width-100)/4, UI_UNIT_Y, &slogic->scaflag, 0, 0, 0, 0, "Show only actuators connected to active states");
- uiBlockEndAlign(block);
- for (a=0; a<count; a++) {
- ob= (Object *)idar[a];
-// uiClearButLock();
-// uiSetButLock(BKE_object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
- if ( (ob->scavisflag & OB_VIS_ACT) == 0) continue;
-
- /* presume it is only objects for now */
- uiBlockBeginAlign(block);
-// if (ob->actuators.first) uiSetCurFont(block, UI_HELVB);
- uiDefButBitS(block, TOG, OB_SHOWACT, B_REDR, ob->id.name+2, (short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide actuators");
-// if (ob->actuators.first) uiSetCurFont(block, UI_HELV);
- uiDefButBitS(block, TOG, OB_ADDACT, B_ADD_ACT, "Add", (short)(xco+width-40), yco, 50, UI_UNIT_Y, &ob->scaflag, 0, 0, 0, 0, "Add a new Actuator");
- uiBlockEndAlign(block);
- yco-=20;
-
- if (ob->scaflag & OB_SHOWACT) {
-
- act= ob->actuators.first;
- while (act) {
- if (!(slogic->scaflag & BUTS_ACT_STATE) ||
- !(act->flag & ACT_LINKED) || /* always display actuators without links so that is can be edited */
- (act->flag & ACT_VISIBLE) || /* this actuator has visible connection, display it */
- (act->flag & ACT_PIN && slogic->scaflag & BUTS_ACT_STATE))
- {
- pin = (slogic->scaflag & BUTS_ACT_STATE && (act->flag & SENS_SHOW || act->flag & SENS_PIN)) ? 1 : 0;
-
- act->flag |= ACT_VISIBLE; /* mark the actuator as visible to help implementing the up/down action */
- uiDefIconButBitS(block, TOG, ACT_DEL, B_DEL_ACT, ICON_X, xco, yco, 22, UI_UNIT_Y, &act->flag, 0, 0, 0, 0, "Delete Actuator");
- if (pin)
- uiDefIconButBitS(block, ICONTOG, ACT_PIN, B_REDR, ICON_PINNED, (short)(xco+width-44), yco, 22, UI_UNIT_Y, &act->flag, 0, 0, 0, 0, "Display when not linked to a visible states controller");
- uiDefIconButBitS(block, ICONTOG, ACT_SHOW, B_REDR, ICON_RIGHTARROW, (short)(xco+width-22), yco, 22, UI_UNIT_Y, &act->flag, 0, 0, 0, 0, "Display the actuator");
-
- if (act->flag & ACT_SHOW) {
- act->otype= act->type;
- uiDefButS(block, MENU, B_CHANGE_ACT, actuator_pup(ob), (short)(xco+22), yco, 90, UI_UNIT_Y, &act->type, 0, 0, 0, 0, "Actuator type");
- but = uiDefBut(block, TEX, 1, "", (short)(xco+112), yco, (short)(width-(pin?156:134)), UI_UNIT_Y, act->name, 0, MAX_NAME, 0, 0, "Actuator name");
- uiButSetFunc(but, make_unique_prop_names_cb, act->name, (void*) 0);
-
- ycoo= yco;
- yco= draw_actuatorbuttons(bmain, ob, act, block, xco, yco, width);
- if (yco-6 < ycoo) ycoo= (yco+ycoo-20)/2;
- }
- else {
- set_col_actuator(act->type, 1);
- glRecti((short)(xco+22), yco, (short)(xco+width-22), (short)(yco+19));
- /* but= */ uiDefBut(block, LABEL, 0, actuator_name(act->type), (short)(xco+22), yco, 90, UI_UNIT_Y, act, 0, 0, 0, 0, "Actuator type");
- // uiButSetFunc(but, old_sca_move_actuator, act, NULL);
- /* but= */ uiDefBut(block, LABEL, 0, act->name, (short)(xco+112), yco, (short)(width-(pin?156:134)), UI_UNIT_Y, act, 0, 0, 0, 0, "Actuator name");
- // uiButSetFunc(but, old_sca_move_actuator, act, NULL);
-
- uiBlockBeginAlign(block);
- but = uiDefIconBut(block, BUT, B_REDR, ICON_TRIA_UP, (short)(xco+width-(66+5)), yco, 22, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Move this logic brick up");
- uiButSetFunc(but, old_sca_move_actuator, act, (void *)TRUE);
- but = uiDefIconBut(block, BUT, B_REDR, ICON_TRIA_DOWN, (short)(xco+width-(44+5)), yco, 22, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Move this logic brick down");
- uiButSetFunc(but, old_sca_move_actuator, act, (void *)FALSE);
- uiBlockEndAlign(block);
-
- ycoo= yco;
- }
-
- uiDefIconBut(block, INLINK, 0, ICON_INLINK, (short)(xco - 19), ycoo, UI_UNIT_X, UI_UNIT_Y, act, LINK_ACTUATOR, 0, 0, 0, "");
-
- yco-=20;
- }
- act= act->next;
- }
- yco-= 6;
- }
- }
-
- uiComposeLinks(block);
-
- uiEndBlock(C, block);
- uiDrawBlock(C, block);
-
- if (idar) MEM_freeN(idar);
-}
-
-
-
-
-
-
diff --git a/source/blender/editors/space_logic/space_logic.c b/source/blender/editors/space_logic/space_logic.c
index 1caf1075ae6..1a50f72153a 100644
--- a/source/blender/editors/space_logic/space_logic.c
+++ b/source/blender/editors/space_logic/space_logic.c
@@ -302,48 +302,48 @@ static void logic_header_area_draw(const bContext *C, ARegion *ar)
/* only called once, from space/spacetypes.c */
void ED_spacetype_logic(void)
{
- SpaceType *st= MEM_callocN(sizeof(SpaceType), "spacetype logic");
+ SpaceType *st = MEM_callocN(sizeof(SpaceType), "spacetype logic");
ARegionType *art;
- st->spaceid= SPACE_LOGIC;
+ st->spaceid = SPACE_LOGIC;
strncpy(st->name, "Logic", BKE_ST_MAXNAME);
- st->new= logic_new;
- st->free= logic_free;
- st->init= logic_init;
- st->duplicate= logic_duplicate;
- st->operatortypes= logic_operatortypes;
- st->keymap= logic_keymap;
- st->refresh= logic_refresh;
- st->context= logic_context;
+ st->new = logic_new;
+ st->free = logic_free;
+ st->init = logic_init;
+ st->duplicate = logic_duplicate;
+ st->operatortypes = logic_operatortypes;
+ st->keymap = logic_keymap;
+ st->refresh = logic_refresh;
+ st->context = logic_context;
/* regions: main window */
- art= MEM_callocN(sizeof(ARegionType), "spacetype logic region");
+ art = MEM_callocN(sizeof(ARegionType), "spacetype logic region");
art->regionid = RGN_TYPE_WINDOW;
- art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_FRAMES|ED_KEYMAP_VIEW2D;
- art->init= logic_main_area_init;
- art->draw= logic_main_area_draw;
- art->listener= logic_listener;
+ art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_FRAMES | ED_KEYMAP_VIEW2D;
+ art->init = logic_main_area_init;
+ art->draw = logic_main_area_draw;
+ art->listener = logic_listener;
BLI_addhead(&st->regiontypes, art);
/* regions: listview/buttons */
- art= MEM_callocN(sizeof(ARegionType), "spacetype logic region");
+ art = MEM_callocN(sizeof(ARegionType), "spacetype logic region");
art->regionid = RGN_TYPE_UI;
art->prefsizex= 220; // XXX
- art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_FRAMES;
- art->listener= logic_listener;
- art->init= logic_buttons_area_init;
- art->draw= logic_buttons_area_draw;
+ art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_FRAMES;
+ art->listener = logic_listener;
+ art->init = logic_buttons_area_init;
+ art->draw = logic_buttons_area_draw;
BLI_addhead(&st->regiontypes, art);
/* regions: header */
art= MEM_callocN(sizeof(ARegionType), "spacetype logic region");
art->regionid = RGN_TYPE_HEADER;
- art->prefsizey= HEADERY;
- art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES|ED_KEYMAP_HEADER;
- art->init= logic_header_area_init;
- art->draw= logic_header_area_draw;
+ art->prefsizey = HEADERY;
+ art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_VIEW2D | ED_KEYMAP_FRAMES | ED_KEYMAP_HEADER;
+ art->init = logic_header_area_init;
+ art->draw = logic_header_area_draw;
BLI_addhead(&st->regiontypes, art);
diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c
index 804d44ba720..18e983047cd 100644
--- a/source/blender/editors/space_nla/nla_buttons.c
+++ b/source/blender/editors/space_nla/nla_buttons.c
@@ -67,9 +67,6 @@
/* ******************* nla editor space & buttons ************** */
-#define B_NOP 1
-#define B_REDR 2
-
/* -------------- */
static void do_nla_region_buttons(bContext *C, void *UNUSED(arg), int event)
diff --git a/source/blender/editors/space_nla/nla_channels.c b/source/blender/editors/space_nla/nla_channels.c
index e3c831824f1..b3a869ed57d 100644
--- a/source/blender/editors/space_nla/nla_channels.c
+++ b/source/blender/editors/space_nla/nla_channels.c
@@ -140,9 +140,9 @@ static int mouse_nla_channels(bAnimContext *ac, float x, int channel_index, shor
}
else {
Base *b;
-
+
/* deselect all */
- // TODO: should this deselect all other types of channels too?
+ /* TODO: should this deselect all other types of channels too? */
for (b = sce->base.first; b; b = b->next) {
b->flag &= ~SELECT;
b->object->flag = b->flag;
@@ -268,8 +268,8 @@ static int mouse_nla_channels(bAnimContext *ac, float x, int channel_index, shor
if (x >= (v2d->cur.xmax - NLACHANNEL_BUTTON_WIDTH)) {
if (nlaedit_is_tweakmode_on(ac) == 0) {
/* 'push-down' action - only usable when not in TweakMode */
- // TODO: make this use the operator instead of calling the function directly
- // however, calling the operator requires that we supply the args, and that works with proper buttons only
+ /* TODO: make this use the operator instead of calling the function directly
+ * however, calling the operator requires that we supply the args, and that works with proper buttons only */
BKE_nla_action_pushdown(adt);
}
else {
@@ -343,6 +343,8 @@ static int nlachannels_mouseclick_invoke(bContext *C, wmOperator *op, wmEvent *e
void NLA_OT_channels_click(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Mouse Click on NLA Channels";
ot->idname = "NLA_OT_channels_click";
@@ -355,8 +357,9 @@ void NLA_OT_channels_click(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
- /* id-props */
- RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", ""); // SHIFTKEY
+ /* props */
+ prop = RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", ""); // SHIFTKEY
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
/* *********************************************** */
diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c
index 5c9994e46d3..950060dde5f 100644
--- a/source/blender/editors/space_nla/nla_edit.c
+++ b/source/blender/editors/space_nla/nla_edit.c
@@ -266,8 +266,8 @@ static void get_nlastrip_extents(bAnimContext *ac, float *min, float *max, const
/* only consider selected strips? */
if ((onlySel == 0) || (strip->flag & NLASTRIP_FLAG_SELECT)) {
/* extend range if appropriate */
- *min = MIN2(*min, strip->start);
- *max = MAX2(*max, strip->end);
+ *min = minf(*min, strip->start);
+ *max = maxf(*max, strip->end);
}
}
}
@@ -304,13 +304,13 @@ static int nlaedit_viewall(bContext *C, const short onlySel)
/* set the horizontal range, with an extra offset so that the extreme keys will be in view */
get_nlastrip_extents(&ac, &v2d->cur.xmin, &v2d->cur.xmax, onlySel);
- extra = 0.1f * (v2d->cur.xmax - v2d->cur.xmin);
+ extra = 0.1f * BLI_rctf_size_x(&v2d->cur);
v2d->cur.xmin -= extra;
v2d->cur.xmax += extra;
/* set vertical range */
v2d->cur.ymax = 0.0f;
- v2d->cur.ymin = (float)-(v2d->mask.ymax - v2d->mask.ymin);
+ v2d->cur.ymin = (float)-BLI_rcti_size_y(&v2d->mask);
/* do View2D syncing */
UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
@@ -1170,7 +1170,8 @@ static int nlaedit_bake_exec(bContext *C, wmOperator *UNUSED(op))
return OPERATOR_FINISHED;
}
-void NLA_OT_bake(wmOperatorType *ot)
+/* why isn't this used? */
+static void UNUSED_FUNCTION(NLA_OT_bake)(wmOperatorType *ot)
{
/* identifiers */
ot->name = "Bake Strips";
diff --git a/source/blender/editors/space_nla/nla_select.c b/source/blender/editors/space_nla/nla_select.c
index 1ba15d529e8..79be0d0a194 100644
--- a/source/blender/editors/space_nla/nla_select.c
+++ b/source/blender/editors/space_nla/nla_select.c
@@ -198,7 +198,8 @@ void NLA_OT_select_all_toggle(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER /*|OPTYPE_UNDO*/;
/* props */
- RNA_def_boolean(ot->srna, "invert", 0, "Invert", "");
+ ot->prop = RNA_def_boolean(ot->srna, "invert", 0, "Invert", "");
+ RNA_def_property_flag(ot->prop, PROP_SKIP_SAVE);
}
/* ******************** Border Select Operator **************************** */
@@ -244,8 +245,8 @@ static void borderselect_nla_strips(bAnimContext *ac, rcti rect, short mode, sho
ymin = ymax - NLACHANNEL_STEP(snla);
/* perform vertical suitability check (if applicable) */
- if ( (mode == NLA_BORDERSEL_FRAMERANGE) ||
- !((ymax < rectf.ymin) || (ymin > rectf.ymax)) )
+ if ((mode == NLA_BORDERSEL_FRAMERANGE) ||
+ !((ymax < rectf.ymin) || (ymin > rectf.ymax)))
{
/* loop over data selecting (only if NLA-Track) */
if (ale->type == ANIMTYPE_NLATRACK) {
@@ -254,8 +255,8 @@ static void borderselect_nla_strips(bAnimContext *ac, rcti rect, short mode, sho
/* only select strips if they fall within the required ranges (if applicable) */
for (strip = nlt->strips.first; strip; strip = strip->next) {
- if ( (mode == NLA_BORDERSEL_CHANNELS) ||
- BKE_nlastrip_within_bounds(strip, rectf.xmin, rectf.xmax))
+ if ((mode == NLA_BORDERSEL_CHANNELS) ||
+ BKE_nlastrip_within_bounds(strip, rectf.xmin, rectf.xmax))
{
/* set selection */
ACHANNEL_SET_FLAG(strip, selectmode, NLASTRIP_FLAG_SELECT);
@@ -294,10 +295,7 @@ static int nlaedit_borderselect_exec(bContext *C, wmOperator *op)
deselect_nla_strips(&ac, DESELECT_STRIPS_TEST, SELECT_SUBTRACT);
/* get settings from operator */
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
if (RNA_int_get(op->ptr, "gesture_mode") == GESTURE_MODAL_SELECT)
selectmode = SELECT_ADD;
@@ -311,7 +309,7 @@ static int nlaedit_borderselect_exec(bContext *C, wmOperator *op)
* - the frame-range select option is favored over the channel one (x over y), as frame-range one is often
* used for tweaking timing when "blocking", while channels is not that useful...
*/
- if ((rect.xmax - rect.xmin) >= (rect.ymax - rect.ymin))
+ if (BLI_rcti_size_x(&rect) >= BLI_rcti_size_y(&rect))
mode = NLA_BORDERSEL_FRAMERANGE;
else
mode = NLA_BORDERSEL_CHANNELS;
@@ -483,6 +481,8 @@ static int nlaedit_select_leftright_invoke(bContext *C, wmOperator *op, wmEvent
void NLA_OT_select_leftright(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Select Left/Right";
ot->idname = "NLA_OT_select_leftright";
@@ -496,9 +496,12 @@ void NLA_OT_select_leftright(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
- /* id-props */
+ /* properties */
ot->prop = RNA_def_enum(ot->srna, "mode", prop_nlaedit_leftright_select_types, NLAEDIT_LRSEL_TEST, "Mode", "");
- RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", "");
+ RNA_def_property_flag(ot->prop, PROP_SKIP_SAVE);
+
+ prop = RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", "");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
@@ -645,6 +648,8 @@ static int nlaedit_clickselect_invoke(bContext *C, wmOperator *op, wmEvent *even
void NLA_OT_click_select(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name = "Mouse Select";
ot->idname = "NLA_OT_click_select";
@@ -657,8 +662,9 @@ void NLA_OT_click_select(wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
- /* id-props */
- RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", ""); // SHIFTKEY
+ /* properties */
+ prop = RNA_def_boolean(ot->srna, "extend", 0, "Extend Select", ""); // SHIFTKEY
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
/* *********************************************** */
diff --git a/source/blender/editors/space_node/CMakeLists.txt b/source/blender/editors/space_node/CMakeLists.txt
index 8c3397b9ddd..996c6fb530f 100644
--- a/source/blender/editors/space_node/CMakeLists.txt
+++ b/source/blender/editors/space_node/CMakeLists.txt
@@ -31,6 +31,7 @@ set(INC
../../nodes
../../render/extern/include
../../windowmanager
+ ../../compositor
../../../../intern/guardedalloc
../../../../intern/opennl/extern
)
@@ -41,14 +42,17 @@ set(INC_SYS
set(SRC
drawnode.c
+ node_add.c
node_buttons.c
node_draw.c
node_edit.c
+ node_group.c
node_header.c
node_ops.c
+ node_relationships.c
node_select.c
- node_state.c
node_templates.c
+ node_view.c
space_node.c
node_intern.h
@@ -58,4 +62,8 @@ if(WITH_INTERNATIONAL)
add_definitions(-DWITH_INTERNATIONAL)
endif()
+if(WITH_COMPOSITOR)
+ add_definitions(-DWITH_COMPOSITOR)
+endif()
+
blender_add_lib(bf_editor_space_node "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/source/blender/editors/space_node/SConscript b/source/blender/editors/space_node/SConscript
index 2dee750f8c0..7e311b1329d 100644
--- a/source/blender/editors/space_node/SConscript
+++ b/source/blender/editors/space_node/SConscript
@@ -4,7 +4,7 @@ Import ('env')
sources = env.Glob('*.c')
incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
-incs += ' ../../nodes ../../render/extern/include ../../blenloader ../../gpu'
+incs += ' ../../nodes ../../render/extern/include ../../blenloader ../../gpu ../../compositor'
incs += ' ../../windowmanager #intern/guardedalloc #extern/glew/include'
defs = []
cf = []
@@ -25,4 +25,7 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc', '
if env['WITH_BF_INTERNATIONAL']:
defs.append('WITH_INTERNATIONAL')
+if env['WITH_BF_COMPOSITOR']:
+ defs.append("WITH_COMPOSITOR")
+
env.BlenderLib ( 'bf_editors_space_node', sources, Split(incs), defs, libtype=['core'], priority=[55], compileflags=cf )
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
index daab0ce0f5f..470f82195a4 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -27,46 +27,33 @@
/** \file blender/editors/space_node/drawnode.c
* \ingroup spnode
+ * \brief lower level node drawing for nodes (boarders, headers etc), also node layout.
*/
-
-#include <math.h>
-#include <stdio.h>
-#include <string.h>
-
#include "BLI_blenlib.h"
#include "BLI_math.h"
-#include "BLI_utildefines.h"
#include "DNA_node_types.h"
-#include "DNA_material_types.h"
#include "DNA_object_types.h"
-#include "DNA_scene_types.h"
#include "DNA_space_types.h"
#include "DNA_screen_types.h"
#include "BKE_context.h"
#include "BKE_curve.h"
-#include "BKE_global.h"
#include "BKE_image.h"
-#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_node.h"
+#include "BKE_tracking.h"
#include "BLF_api.h"
#include "BLF_translation.h"
-#include "NOD_composite.h"
-#include "NOD_shader.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
-#include "BLF_api.h"
-
#include "MEM_guardedalloc.h"
-
#include "RNA_access.h"
#include "ED_node.h"
@@ -74,16 +61,13 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
#include "UI_resources.h"
+#include "IMB_colormanagement.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
-#include "node_intern.h"
-
-// XXX interface.h
-extern void ui_dropshadow(rctf *rct, float radius, float aspect, float alpha, int select);
+#include "node_intern.h" /* own include */
/* ****************** SOCKET BUTTON DRAW FUNCTIONS ***************** */
@@ -140,7 +124,8 @@ static uiBlock *socket_component_menu(bContext *C, ARegion *ar, void *args_v)
block = uiBeginBlock(C, ar, __func__, UI_EMBOSS);
uiBlockSetFlag(block, UI_BLOCK_KEEP_OPEN);
- layout = uiLayoutColumn(uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, args->x, args->y + 2, args->width, NODE_DY, UI_GetStyle()), FALSE);
+ layout = uiLayoutColumn(uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL,
+ args->x, args->y + 2, args->width, NODE_DY, UI_GetStyle()), FALSE);
uiItemR(layout, &args->ptr, "default_value", UI_ITEM_R_EXPAND, "", ICON_NONE);
@@ -184,7 +169,7 @@ static void node_socket_button_color(const bContext *C, uiBlock *block,
int labelw = width - 40;
RNA_pointer_create(&ntree->id, &RNA_NodeSocket, sock, &ptr);
- bt = uiDefButR(block, COL, B_NODE_EXEC, "",
+ bt = uiDefButR(block, COLOR, B_NODE_EXEC, "",
x, y + 2, (labelw > 0 ? 40 : width), NODE_DY - 2,
&ptr, "default_value", 0, 0, 0, -1, -1, NULL);
if (node)
@@ -212,17 +197,22 @@ static void node_draw_output_default(const bContext *C, uiBlock *block,
const char *name, int UNUSED(x), int UNUSED(y), int UNUSED(width))
{
SpaceNode *snode = CTX_wm_space_node(C);
- float slen;
- int ofs = 0;
const char *ui_name = IFACE_(name);
+ float slen;
+
UI_ThemeColor(TH_TEXT);
- slen = snode->aspect * UI_GetStringWidth(ui_name);
- while (slen > node->width) {
- ofs++;
- slen = snode->aspect * UI_GetStringWidth(ui_name + ofs);
+ slen = (UI_GetStringWidth(ui_name) + NODE_MARGIN_X) * snode->aspect_sqrt;
+ while (slen > node->width && *ui_name) {
+ ui_name = BLI_str_find_next_char_utf8(ui_name, NULL);
+ slen = (UI_GetStringWidth(ui_name) + NODE_MARGIN_X) * snode->aspect_sqrt;
+ }
+
+ if (*ui_name) {
+ uiDefBut(block, LABEL, 0, ui_name,
+ (int)(sock->locx - slen), (int)(sock->locy - 9.0f),
+ (short)slen, (short)NODE_DY,
+ NULL, 0, 0, 0, 0, "");
}
- uiDefBut(block, LABEL, 0, ui_name + ofs, (short)(sock->locx - 15.0f - slen), (short)(sock->locy - 9.0f),
- (short)(node->width - NODE_DY), NODE_DY, NULL, 0, 0, 0, 0, "");
}
/* ****************** BASE DRAW FUNCTIONS FOR NEW OPERATOR NODES ***************** */
@@ -298,14 +288,17 @@ static void node_buts_rgb(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr
static void node_buts_mix_rgb(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiLayout *row;
+ uiLayout *row, *col;
bNodeTree *ntree = (bNodeTree *)ptr->id.data;
- row = uiLayoutRow(layout, TRUE);
+ col = uiLayoutColumn(layout, FALSE);
+ row = uiLayoutRow(col, TRUE);
uiItemR(row, ptr, "blend_type", 0, "", ICON_NONE);
if (ntree->type == NTREE_COMPOSIT)
uiItemR(row, ptr, "use_alpha", 0, "", ICON_IMAGE_RGB_ALPHA);
+
+ uiItemR(col, ptr, "use_clamp", 0, NULL, ICON_NONE);
}
static void node_buts_time(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
@@ -340,8 +333,8 @@ static void node_buts_curvevec(uiLayout *layout, bContext *UNUSED(C), PointerRNA
uiTemplateCurveMapping(layout, ptr, "mapping", 'v', 0, 0);
}
-static float _sample_col[4]; // bad bad, 2.5 will do better?
#define SAMPLE_FLT_ISNONE FLT_MAX
+static float _sample_col[4] = {SAMPLE_FLT_ISNONE}; /* bad bad, 2.5 will do better?... no it won't... */
void ED_node_sample_set(const float col[4])
{
if (col) {
@@ -387,12 +380,12 @@ static void node_buts_normal(uiLayout *layout, bContext *UNUSED(C), PointerRNA *
uiBut *bt;
bt = uiDefButF(block, BUT_NORMAL, B_NODE_EXEC, "",
- (short)butr->xmin, (short)butr->xmin,
- butr->xmax - butr->xmin, butr->xmax - butr->xmin,
+ (int)butr->xmin, (int)butr->xmin,
+ (short)BLI_rctf_size_x(butr), (short)BLI_rctf_size_x(butr),
nor, 0.0f, 1.0f, 0, 0, "");
uiButSetFunc(bt, node_normal_cb, ntree, node);
}
-#if 0 // not used in 2.5x yet
+#if 0 /* not used in 2.5x yet */
static void node_browse_tex_cb(bContext *C, void *ntree_v, void *node_v)
{
Main *bmain = CTX_data_main(C);
@@ -447,6 +440,7 @@ static void node_buts_texture(uiLayout *layout, bContext *UNUSED(C), PointerRNA
static void node_buts_math(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiItemR(layout, ptr, "operation", 0, "", ICON_NONE);
+ uiItemR(layout, ptr, "use_clamp", 0, NULL, ICON_NONE);
}
static int node_resize_area_default(bNode *node, int x, int y)
@@ -455,7 +449,7 @@ static int node_resize_area_default(bNode *node, int x, int y)
rctf totr = node->totr;
/* right part of node */
totr.xmin = node->totr.xmax - 20.0f;
- if (BLI_in_rctf(&totr, x, y))
+ if (BLI_rctf_isect_pt(&totr, x, y))
return NODE_RESIZE_RIGHT;
else
return 0;
@@ -513,7 +507,7 @@ static void node_update_group(const bContext *C, bNodeTree *ntree, bNode *gnode)
counter = 0;
}
else
- BLI_union_rctf(rect, &node->totr);
+ BLI_rctf_union(rect, &node->totr);
}
/* add some room for links to group sockets */
@@ -523,7 +517,7 @@ static void node_update_group(const bContext *C, bNodeTree *ntree, bNode *gnode)
rect->ymax += NODE_DY;
/* input sockets */
- dy = 0.5f * (rect->ymin + rect->ymax) + NODE_DY * (BLI_countlist(&gnode->inputs) - 1);
+ dy = BLI_rctf_cent_y(rect) + (NODE_DY * (BLI_countlist(&gnode->inputs) - 1));
gsock = ngroup->inputs.first;
sock = gnode->inputs.first;
while (gsock || sock) {
@@ -571,7 +565,7 @@ static void node_update_group(const bContext *C, bNodeTree *ntree, bNode *gnode)
}
/* output sockets */
- dy = 0.5f * (rect->ymin + rect->ymax) + NODE_DY * (BLI_countlist(&gnode->outputs) - 1);
+ dy = BLI_rctf_cent_y(rect) + (NODE_DY * (BLI_countlist(&gnode->outputs) - 1));
gsock = ngroup->outputs.first;
sock = gnode->outputs.first;
while (gsock || sock) {
@@ -645,47 +639,51 @@ static void update_group_output_cb(bContext *UNUSED(C), void *UNUSED(snode_v), v
ntreeUpdateTree(ngroup);
}
-static void draw_group_socket_name(SpaceNode *snode, bNode *gnode, bNodeSocket *sock, int in_out, float xoffset, float yoffset)
+static void draw_group_socket_name(SpaceNode *snode, bNode *gnode, bNodeSocket *sock,
+ int in_out, float xoffset, float yoffset, short width, short height)
{
- bNodeTree *ngroup = (bNodeTree *)gnode->id;
- uiBut *bt;
- const char *ui_name = IFACE_(sock->name);
-
if (sock->flag & SOCK_DYNAMIC) {
- bt = uiDefBut(gnode->block, TEX, 0, "",
- sock->locx + xoffset, sock->locy + 1 + yoffset, 72, NODE_DY,
- sock->name, 0, sizeof(sock->name), 0, 0, "");
+ bNodeTree *ngroup = (bNodeTree *)gnode->id;
+ uiBut *but;
+ but = uiDefBut(gnode->block, TEX, 0, "",
+ sock->locx + xoffset, sock->locy + 1 + yoffset, width, height,
+ sock->name, 0, sizeof(sock->name), 0, 0, "");
if (in_out == SOCK_IN)
- uiButSetFunc(bt, update_group_input_cb, snode, ngroup);
+ uiButSetFunc(but, update_group_input_cb, snode, ngroup);
else
- uiButSetFunc(bt, update_group_output_cb, snode, ngroup);
+ uiButSetFunc(but, update_group_output_cb, snode, ngroup);
}
else {
+ const char *ui_name = IFACE_(sock->name);
uiDefBut(gnode->block, LABEL, 0, ui_name,
- sock->locx + xoffset, sock->locy + 1 + yoffset, 72, NODE_DY,
- NULL, 0, sizeof(ui_name), 0, 0, "");
+ sock->locx + xoffset, sock->locy + 1 + yoffset, width, height,
+ NULL, 0, 0, 0, 0, "");
}
}
-static void draw_group_socket(const bContext *C, SpaceNode *snode, bNodeTree *ntree, bNode *gnode, bNodeSocket *sock, bNodeSocket *gsock, int index, int in_out)
+static void draw_group_socket(const bContext *C, SpaceNode *snode, bNodeTree *ntree, bNode *gnode,
+ bNodeSocket *sock, bNodeSocket *gsock, int index, int in_out)
{
+ const float dpi_fac = U.dpi / 72.0f;
bNodeTree *ngroup = (bNodeTree *)gnode->id;
bNodeSocketType *stype = ntreeGetSocketType(gsock ? gsock->type : sock->type);
uiBut *bt;
float offset;
int draw_value;
- float node_group_frame = U.dpi * NODE_GROUP_FRAME / 72;
- float socket_size = NODE_SOCKSIZE * U.dpi / 72;
- float arrowbutw = 0.8f * UI_UNIT_X;
+ const float node_group_frame = NODE_GROUP_FRAME * dpi_fac;
+ const float socket_size = NODE_SOCKSIZE * dpi_fac;
+ const float arrowbutw = 0.8f * UI_UNIT_X;
+ const short co_text_w = 72 * dpi_fac;
+ const float co_margin = 6.0f * dpi_fac;
/* layout stuff for buttons on group left frame */
- float colw = 0.6f * node_group_frame;
- float col1 = 6 - node_group_frame;
- float col2 = col1 + colw + 6;
- float col3 = -arrowbutw - 6;
+ const float colw = 0.6f * node_group_frame;
+ const float col1 = co_margin - node_group_frame;
+ const float col2 = col1 + colw + co_margin;
+ const float col3 = -arrowbutw - co_margin;
/* layout stuff for buttons on group right frame */
- float cor1 = 6;
- float cor2 = cor1 + arrowbutw + 6;
- float cor3 = cor2 + arrowbutw + 6;
+ const float cor1 = co_margin;
+ const float cor2 = cor1 + arrowbutw;
+ const float cor3 = cor2 + arrowbutw + co_margin;
/* node and group socket circles */
if (sock)
@@ -715,22 +713,24 @@ static void draw_group_socket(const bContext *C, SpaceNode *snode, bNodeTree *nt
if (draw_value) {
/* both name and value buttons */
if (gsock) {
- draw_group_socket_name(snode, gnode, gsock, in_out, offset, 0);
+ draw_group_socket_name(snode, gnode, gsock, in_out, offset, 0, co_text_w, NODE_DY);
if (stype->buttonfunc)
- stype->buttonfunc(C, gnode->block, ngroup, NULL, gsock, "", gsock->locx + offset, gsock->locy - NODE_DY, colw);
+ stype->buttonfunc(C, gnode->block, ngroup, NULL, gsock, "",
+ gsock->locx + offset, gsock->locy - NODE_DY, colw);
}
else {
- draw_group_socket_name(snode, gnode, sock, in_out, offset, 0);
+ draw_group_socket_name(snode, gnode, sock, in_out, offset, 0, co_text_w, NODE_DY);
if (stype->buttonfunc)
- stype->buttonfunc(C, gnode->block, ngroup, NULL, sock, "", sock->locx + offset, sock->locy - NODE_DY, colw);
+ stype->buttonfunc(C, gnode->block, ngroup, NULL, sock, "",
+ sock->locx + offset, sock->locy - NODE_DY, colw);
}
}
else {
/* only name, no value button */
if (gsock)
- draw_group_socket_name(snode, gnode, gsock, in_out, offset, -NODE_DYS);
+ draw_group_socket_name(snode, gnode, gsock, in_out, offset, -NODE_DYS, co_text_w, NODE_DY);
else
- draw_group_socket_name(snode, gnode, sock, in_out, offset, -NODE_DYS);
+ draw_group_socket_name(snode, gnode, sock, in_out, offset, -NODE_DYS, co_text_w, NODE_DY);
}
if (gsock && (gsock->flag & SOCK_DYNAMIC)) {
@@ -776,8 +776,9 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN
uiLayout *layout;
PointerRNA ptr;
rctf rect = gnode->totr;
- float node_group_frame = U.dpi * NODE_GROUP_FRAME / 72;
- float group_header = 26 * U.dpi / 72;
+ const float dpi_fac = U.dpi / 72.0f;
+ float node_group_frame = NODE_GROUP_FRAME * dpi_fac;
+ float group_header = 26 * dpi_fac;
int index;
@@ -785,7 +786,9 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN
glEnable(GL_BLEND);
uiSetRoundBox(UI_CNR_TOP_LEFT | UI_CNR_TOP_RIGHT);
UI_ThemeColorShadeAlpha(TH_NODE_GROUP, 0, -70);
- uiDrawBox(GL_POLYGON, rect.xmin - node_group_frame, rect.ymax, rect.xmax + node_group_frame, rect.ymax + group_header, BASIS_RAD);
+ uiDrawBox(GL_POLYGON,
+ rect.xmin - node_group_frame, rect.ymax,
+ rect.xmax + node_group_frame, rect.ymax + group_header, BASIS_RAD);
/* backdrop body */
UI_ThemeColorShadeAlpha(TH_BACK, -8, -70);
@@ -820,15 +823,18 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN
uiSetRoundBox(UI_CNR_ALL);
glColor4ub(200, 200, 200, 140);
glEnable(GL_LINE_SMOOTH);
- uiDrawBox(GL_LINE_LOOP, rect.xmin - node_group_frame, rect.ymin, rect.xmax + node_group_frame, rect.ymax + group_header, BASIS_RAD);
+ uiDrawBox(GL_LINE_LOOP,
+ rect.xmin - node_group_frame, rect.ymin,
+ rect.xmax + node_group_frame, rect.ymax + group_header, BASIS_RAD);
glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
/* backdrop title */
UI_ThemeColor(TH_TEXT_HI);
- layout = uiBlockLayout(gnode->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, (short)(rect.xmin + 15), (short)(rect.ymax + group_header),
- MIN2((int)(rect.xmax - rect.xmin - 18.0f), node_group_frame + 20), group_header, UI_GetStyle());
+ layout = uiBlockLayout(gnode->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL,
+ (int)(rect.xmin + NODE_MARGIN_X), (int)(rect.ymax + (group_header - (2.5f * dpi_fac))),
+ mini((int)(BLI_rctf_size_x(&rect) - 18.0f), node_group_frame + 20), group_header, UI_GetStyle());
RNA_pointer_create(&ntree->id, &RNA_Node, gnode, &ptr);
uiTemplateIDBrowse(layout, (bContext *)C, &ptr, "node_tree", NULL, NULL, NULL);
uiBlockLayoutResolve(gnode->block, NULL, NULL);
@@ -848,13 +854,13 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN
while (gsock && (!sock || sock->groupsock != gsock)) {
draw_group_socket(C, snode, ntree, gnode, NULL, gsock, index, SOCK_IN);
gsock = gsock->next;
- ++index;
+ index++;
}
while (sock && gsock && sock->groupsock == gsock) {
draw_group_socket(C, snode, ntree, gnode, sock, gsock, index, SOCK_IN);
sock = sock->next;
gsock = gsock->next;
- ++index;
+ index++;
}
}
gsock = ngroup->outputs.first;
@@ -868,13 +874,13 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN
while (gsock && (!sock || sock->groupsock != gsock)) {
draw_group_socket(C, snode, ntree, gnode, NULL, gsock, index, SOCK_OUT);
gsock = gsock->next;
- ++index;
+ index++;
}
while (sock && gsock && sock->groupsock == gsock) {
draw_group_socket(C, snode, ntree, gnode, sock, gsock, index, SOCK_OUT);
sock = sock->next;
gsock = gsock->next;
- ++index;
+ index++;
}
}
@@ -884,14 +890,14 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN
}
}
-void node_uifunc_group(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_uifunc_group(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
uiTemplateIDBrowse(layout, C, ptr, "node_tree", NULL, NULL, NULL);
}
static void node_common_buts_whileloop(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "max_iterations", 0, NULL, 0);
+ uiItemR(layout, ptr, "max_iterations", 0, NULL, ICON_NONE);
}
/* XXX Does a bounding box update by iterating over all children.
@@ -934,7 +940,7 @@ static void node_update_frame(const bContext *UNUSED(C), bNodeTree *ntree, bNode
data->flag &= ~NODE_FRAME_RESIZEABLE;
}
else
- BLI_union_rctf(&rect, &noderect);
+ BLI_rctf_union(&rect, &noderect);
}
/* now adjust the frame size from view-space bounding box */
@@ -946,20 +952,22 @@ static void node_update_frame(const bContext *UNUSED(C), bNodeTree *ntree, bNode
node->totr = rect;
}
-static void node_draw_frame_label(bNode *node)
+static void node_draw_frame_label(bNode *node, const float aspect)
{
/* XXX font id is crap design */
- const int fontid = blf_mono_font;
+ const int fontid = UI_GetStyle()->widgetlabel.uifont_id;
NodeFrame *data = (NodeFrame *)node->storage;
rctf *rct = &node->totr;
int color_id = node_get_colorid(node);
- char label[128];
+ const char *label = nodeLabel(node);
/* XXX a bit hacky, should use separate align values for x and y */
float width, ascender;
float x, y;
-
- BLI_strncpy(label, nodeLabel(node), sizeof(label));
- BLF_size(fontid, data->label_size, U.dpi);
+ const int font_size = data->label_size / aspect;
+
+ BLF_enable(fontid, BLF_ASPECT);
+ BLF_aspect(fontid, aspect, aspect, 1.0f);
+ BLF_size(fontid, MIN2(24, font_size), U.dpi); /* clamp otherwise it can suck up a LOT of memory */
/* title color */
UI_ThemeColorBlendShade(TH_TEXT, color_id, 0.8f, 10);
@@ -967,11 +975,14 @@ static void node_draw_frame_label(bNode *node)
width = BLF_width(fontid, label);
ascender = BLF_ascender(fontid);
- x = 0.5f * (rct->xmin + rct->xmax) - 0.5f * width;
- y = rct->ymax - NODE_DYS - ascender;
-
+ /* 'x' doesn't need aspect correction */
+ x = BLI_rctf_cent_x(rct) - (0.5f * width);
+ y = rct->ymax - (((NODE_DY / 4) / aspect) + (ascender * aspect));
+
BLF_position(fontid, x, y, 0);
BLF_draw(fontid, label, BLF_DRAW_STR_DUMMY_MAX);
+
+ BLF_disable(fontid, BLF_ASPECT);
}
static void node_draw_frame(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *UNUSED(ntree), bNode *node)
@@ -981,17 +992,15 @@ static void node_draw_frame(const bContext *C, ARegion *ar, SpaceNode *snode, bN
unsigned char color[4];
float alpha;
- UI_GetThemeColor4ubv(TH_NODE_FRAME, color);
- alpha = (float)(color[3])/255.0f;
-
/* skip if out of view */
- if (node->totr.xmax < ar->v2d.cur.xmin || node->totr.xmin > ar->v2d.cur.xmax ||
- node->totr.ymax < ar->v2d.cur.ymin || node->totr.ymin > ar->v2d.cur.ymax) {
-
+ if (BLI_rctf_isect(&node->totr, &ar->v2d.cur, NULL) == FALSE) {
uiEndBlock(C, node->block);
node->block = NULL;
return;
}
+
+ UI_GetThemeColor4ubv(TH_NODE_FRAME, color);
+ alpha = (float)(color[3]) / 255.0f;
/* shadow */
node_draw_shadow(snode, node, BASIS_RAD, alpha);
@@ -1007,7 +1016,7 @@ static void node_draw_frame(const bContext *C, ARegion *ar, SpaceNode *snode, bN
glDisable(GL_BLEND);
/* outline active and selected emphasis */
- if (node->flag & (NODE_ACTIVE | SELECT)) {
+ if (node->flag & SELECT) {
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
@@ -1016,14 +1025,16 @@ static void node_draw_frame(const bContext *C, ARegion *ar, SpaceNode *snode, bN
else
UI_ThemeColorShadeAlpha(TH_SELECT, 0, -40);
uiSetRoundBox(UI_CNR_ALL);
- uiDrawBox(GL_LINE_LOOP, rct->xmin, rct->ymin, rct->xmax, rct->ymax, BASIS_RAD);
+ uiDrawBox(GL_LINE_LOOP,
+ rct->xmin, rct->ymin,
+ rct->xmax, rct->ymax, BASIS_RAD);
glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
}
/* label */
- node_draw_frame_label(node);
+ node_draw_frame_label(node, snode->aspect);
UI_ThemeClearColor(color_id);
@@ -1062,7 +1073,7 @@ static void node_buts_frame_details(uiLayout *layout, bContext *UNUSED(C), Point
}
-#define NODE_REROUTE_SIZE 8.0f
+#define NODE_REROUTE_SIZE 8.0f
static void node_update_reroute(const bContext *UNUSED(C), bNodeTree *UNUSED(ntree), bNode *node)
{
@@ -1074,36 +1085,36 @@ static void node_update_reroute(const bContext *UNUSED(C), bNodeTree *UNUSED(ntr
nodeToView(node, 0.0f, 0.0f, &locx, &locy);
/* reroute node has exactly one input and one output, both in the same place */
- nsock= node->outputs.first;
- nsock->locx= locx;
- nsock->locy= locy;
+ nsock = node->outputs.first;
+ nsock->locx = locx;
+ nsock->locy = locy;
- nsock= node->inputs.first;
- nsock->locx= locx;
- nsock->locy= locy;
-
- node->width = size*2;
- node->totr.xmin= locx - size;
- node->totr.xmax= locx + size;
- node->totr.ymax= locy + size;
- node->totr.ymin= locy - size;
+ nsock = node->inputs.first;
+ nsock->locx = locx;
+ nsock->locy = locy;
+
+ node->width = size * 2;
+ node->totr.xmin = locx - size;
+ node->totr.xmax = locx + size;
+ node->totr.ymax = locy + size;
+ node->totr.ymin = locy - size;
}
static void node_draw_reroute(const bContext *C, ARegion *ar, SpaceNode *UNUSED(snode), bNodeTree *ntree, bNode *node)
{
bNodeSocket *sock;
- #if 0 /* UNUSED */
- rctf *rct= &node->totr;
+#if 0 /* UNUSED */
+ rctf *rct = &node->totr;
float size = NODE_REROUTE_SIZE;
- #endif
- float socket_size= NODE_SOCKSIZE;
+#endif
+ float socket_size = NODE_SOCKSIZE;
/* skip if out of view */
if (node->totr.xmax < ar->v2d.cur.xmin || node->totr.xmin > ar->v2d.cur.xmax ||
- node->totr.ymax < ar->v2d.cur.ymin || node->totr.ymin > ar->v2d.cur.ymax) {
+ node->totr.ymax < ar->v2d.cur.ymin || node->totr.ymin > ar->v2d.cur.ymax) {
uiEndBlock(C, node->block);
- node->block= NULL;
+ node->block = NULL;
return;
}
@@ -1119,15 +1130,15 @@ static void node_draw_reroute(const bContext *C, ARegion *ar, SpaceNode *UNUSED(
glDisable(GL_BLEND);
/* outline active and selected emphasis */
- if (node->flag & (NODE_ACTIVE | SELECT)) {
+ if (node->flag & SELECT) {
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
- /* using different shades of TH_TEXT_HI for the empasis, like triangle */
- if (node->flag & NODE_ACTIVE)
- UI_ThemeColorShadeAlpha(TH_TEXT_HI, 0, -40);
- else
- UI_ThemeColorShadeAlpha(TH_TEXT_HI, -20, -120);
- uiDrawBox(GL_LINE_LOOP, rct->xmin, rct->ymin, rct->xmax, rct->ymax, size);
+ /* using different shades of TH_TEXT_HI for the empasis, like triangle */
+ if (node->flag & NODE_ACTIVE)
+ UI_ThemeColorShadeAlpha(TH_TEXT_HI, 0, -40);
+ else
+ UI_ThemeColorShadeAlpha(TH_TEXT_HI, -20, -120);
+ uiDrawBox(GL_LINE_LOOP, rct->xmin, rct->ymin, rct->xmax, rct->ymax, size);
glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
@@ -1137,13 +1148,13 @@ static void node_draw_reroute(const bContext *C, ARegion *ar, SpaceNode *UNUSED(
/* only draw input socket. as they all are placed on the same position.
* highlight also if node itself is selected, since we don't display the node body separately!
*/
- for (sock= node->inputs.first; sock; sock= sock->next) {
+ for (sock = node->inputs.first; sock; sock = sock->next) {
node_socket_circle_draw(ntree, sock, socket_size, (sock->flag & SELECT) || (node->flag & SELECT));
}
uiEndBlock(C, node->block);
uiDrawBlock(C, node->block);
- node->block= NULL;
+ node->block = NULL;
}
/* Special tweak area for reroute node.
@@ -1152,12 +1163,12 @@ static void node_draw_reroute(const bContext *C, ARegion *ar, SpaceNode *UNUSED(
static int node_tweak_area_reroute(bNode *node, int x, int y)
{
/* square of tweak radius */
- static const float tweak_radius_sq = 576; /* 24*24 */
+ static const float tweak_radius_sq = 576; /* 24 * 24 */
bNodeSocket *sock = node->inputs.first;
float dx = sock->locx - x;
float dy = sock->locy - y;
- return (dx*dx + dy*dy <= tweak_radius_sq);
+ return (dx * dx + dy * dy <= tweak_radius_sq);
}
static void node_common_set_butfunc(bNodeType *ntype)
@@ -1185,16 +1196,17 @@ static void node_common_set_butfunc(bNodeType *ntype)
ntype->resize_area_func = node_resize_area_frame;
break;
case NODE_REROUTE:
- ntype->drawfunc= node_draw_reroute;
- ntype->drawupdatefunc= node_update_reroute;
- ntype->tweak_area_func= node_tweak_area_reroute;
+ ntype->drawfunc = node_draw_reroute;
+ ntype->drawupdatefunc = node_update_reroute;
+ ntype->tweak_area_func = node_tweak_area_reroute;
break;
}
}
/* ****************** BUTTON CALLBACKS FOR SHADER NODES ***************** */
-static void node_buts_image_user(uiLayout *layout, bContext *C, PointerRNA *ptr, PointerRNA *imaptr, PointerRNA *iuserptr)
+static void node_buts_image_user(uiLayout *layout, bContext *C, PointerRNA *ptr,
+ PointerRNA *imaptr, PointerRNA *iuserptr)
{
uiLayout *col;
int source;
@@ -1309,6 +1321,11 @@ static void node_shader_buts_tex_image(uiLayout *layout, bContext *C, PointerRNA
uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL);
uiItemR(layout, ptr, "color_space", 0, "", ICON_NONE);
+ uiItemR(layout, ptr, "projection", 0, "", ICON_NONE);
+
+ if (RNA_enum_get(ptr, "projection") == SHD_PROJ_BOX) {
+ uiItemR(layout, ptr, "projection_blend", 0, "Blend", ICON_NONE);
+ }
/* note: image user properties used directly here, unlike compositor image node,
* which redefines them in the node struct RNA to get proper updates.
@@ -1344,6 +1361,19 @@ static void node_shader_buts_tex_magic(uiLayout *layout, bContext *UNUSED(C), Po
uiItemR(layout, ptr, "turbulence_depth", 0, NULL, ICON_NONE);
}
+static void node_shader_buts_tex_brick(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiLayout *col;
+
+ col = uiLayoutColumn(layout, TRUE);
+ uiItemR(col, ptr, "offset", 0, IFACE_("Offset"), ICON_NONE);
+ uiItemR(col, ptr, "offset_frequency", 0, IFACE_("Frequency"), ICON_NONE);
+
+ col = uiLayoutColumn(layout, TRUE);
+ uiItemR(col, ptr, "squash", 0, IFACE_("Squash"), ICON_NONE);
+ uiItemR(col, ptr, "squash_frequency", 0, IFACE_("Frequency"), ICON_NONE);
+}
+
static void node_shader_buts_tex_wave(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiItemR(layout, ptr, "wave_type", 0, "", ICON_NONE);
@@ -1359,6 +1389,11 @@ static void node_shader_buts_tex_voronoi(uiLayout *layout, bContext *UNUSED(C),
uiItemR(layout, ptr, "coloring", 0, "", ICON_NONE);
}
+static void node_shader_buts_tex_coord(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "from_dupli", 0, NULL, 0);
+}
+
static void node_shader_buts_glossy(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiItemR(layout, ptr, "distribution", 0, "", ICON_NONE);
@@ -1428,6 +1463,9 @@ static void node_shader_set_butfunc(bNodeType *ntype)
case SH_NODE_TEX_MAGIC:
ntype->uifunc = node_shader_buts_tex_magic;
break;
+ case SH_NODE_TEX_BRICK:
+ ntype->uifunc = node_shader_buts_tex_brick;
+ break;
case SH_NODE_TEX_WAVE:
ntype->uifunc = node_shader_buts_tex_wave;
break;
@@ -1437,6 +1475,9 @@ static void node_shader_set_butfunc(bNodeType *ntype)
case SH_NODE_TEX_VORONOI:
ntype->uifunc = node_shader_buts_tex_voronoi;
break;
+ case SH_NODE_TEX_COORD:
+ ntype->uifunc = node_shader_buts_tex_coord;
+ break;
case SH_NODE_BSDF_GLOSSY:
case SH_NODE_BSDF_GLASS:
ntype->uifunc = node_shader_buts_glossy;
@@ -1461,6 +1502,21 @@ static void node_composit_buts_image(uiLayout *layout, bContext *C, PointerRNA *
node_buts_image_user(layout, C, ptr, &imaptr, &iuserptr);
}
+static void node_composit_buts_image_details(uiLayout *layout, bContext *C, PointerRNA *ptr)
+{
+ bNode *node = ptr->data;
+ PointerRNA imaptr;
+
+ node_composit_buts_image(layout, C, ptr);
+
+ if (!node->id)
+ return;
+
+ imaptr = RNA_pointer_get(ptr, "image");
+
+ uiTemplateColorspaceSettings(layout, &imaptr, "colorspace_settings");
+}
+
static void node_composit_buts_renderlayers(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
bNode *node = ptr->data;
@@ -1500,21 +1556,28 @@ static void node_composit_buts_renderlayers(uiLayout *layout, bContext *C, Point
static void node_composit_buts_blur(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col, *row;
+ int reference;
+ int filter;
col = uiLayoutColumn(layout, FALSE);
-
+ filter = RNA_enum_get(ptr, "filter_type");
+ reference = RNA_boolean_get(ptr, "use_variable_size");
+
uiItemR(col, ptr, "filter_type", 0, "", ICON_NONE);
- if (RNA_enum_get(ptr, "filter_type") != R_FILTER_FAST_GAUSS) {
- uiItemR(col, ptr, "use_bokeh", 0, NULL, ICON_NONE);
+ if (filter != R_FILTER_FAST_GAUSS) {
+ uiItemR(col, ptr, "use_variable_size", 0, NULL, ICON_NONE);
+ if (!reference) {
+ uiItemR(col, ptr, "use_bokeh", 0, NULL, ICON_NONE);
+ }
uiItemR(col, ptr, "use_gamma_correction", 0, NULL, ICON_NONE);
}
uiItemR(col, ptr, "use_relative", 0, NULL, ICON_NONE);
if (RNA_boolean_get(ptr, "use_relative")) {
- uiItemL(col, IFACE_("Aspect Correction"), 0);
+ uiItemL(col, IFACE_("Aspect Correction"), ICON_NONE);
row = uiLayoutRow(layout, TRUE);
- uiItemR(row, ptr, "aspect_correction", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(row, ptr, "aspect_correction", UI_ITEM_R_EXPAND, NULL, ICON_NONE);
col = uiLayoutColumn(layout, TRUE);
uiItemR(col, ptr, "factor_x", 0, IFACE_("X"), ICON_NONE);
@@ -1785,6 +1848,20 @@ static void node_composit_buts_dilateerode(uiLayout *layout, bContext *UNUSED(C)
}
}
+static void node_composit_buts_inpaint(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "distance", 0, NULL, ICON_NONE);
+}
+
+static void node_composit_buts_despeckle(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiLayout *col;
+
+ col = uiLayoutColumn(layout, FALSE);
+ uiItemR(col, ptr, "threshold", 0, NULL, ICON_NONE);
+ uiItemR(col, ptr, "threshold_neighbour", 0, NULL, ICON_NONE);
+}
+
static void node_composit_buts_diff_matte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
@@ -1924,7 +2001,7 @@ static void node_draw_input_file_output(const bContext *C, uiBlock *block,
NodeImageMultiFileSocket *input = sock->storage;
RNA_pointer_create(&ntree->id, &RNA_NodeOutputFileSlotLayer, input, &inputptr);
- uiItemL(row, input->layer, 0);
+ uiItemL(row, input->layer, ICON_NONE);
}
else {
NodeImageMultiFileSocket *input = sock->storage;
@@ -1932,15 +2009,16 @@ static void node_draw_input_file_output(const bContext *C, uiBlock *block,
const char *imtype_name;
RNA_pointer_create(&ntree->id, &RNA_NodeOutputFileSlotFile, input, &inputptr);
- uiItemL(row, input->path, 0);
+ uiItemL(row, input->path, ICON_NONE);
if (!RNA_boolean_get(&inputptr, "use_node_format"))
imfptr = RNA_pointer_get(&inputptr, "format");
imtype_prop = RNA_struct_find_property(&imfptr, "file_format");
- RNA_property_enum_name((bContext *)C, &imfptr, imtype_prop, RNA_property_enum_get(&imfptr, imtype_prop), &imtype_name);
+ RNA_property_enum_name((bContext *)C, &imfptr, imtype_prop,
+ RNA_property_enum_get(&imfptr, imtype_prop), &imtype_name);
uiBlockSetEmboss(block, UI_EMBOSSP);
- uiItemL(row, imtype_name, 0);
+ uiItemL(row, imtype_name, ICON_NONE);
uiBlockSetEmboss(block, UI_EMBOSSN);
}
@@ -1952,74 +2030,81 @@ static void node_composit_buts_file_output(uiLayout *layout, bContext *UNUSED(C)
int multilayer = (RNA_enum_get(&imfptr, "file_format") == R_IMF_IMTYPE_MULTILAYER);
if (multilayer)
- uiItemL(layout, IFACE_("Path:"), 0);
+ uiItemL(layout, IFACE_("Path:"), ICON_NONE);
else
- uiItemL(layout, IFACE_("Base Path:"), 0);
+ uiItemL(layout, IFACE_("Base Path:"), ICON_NONE);
uiItemR(layout, ptr, "base_path", 0, "", ICON_NONE);
}
static void node_composit_buts_file_output_details(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
PointerRNA imfptr = RNA_pointer_get(ptr, "format");
PointerRNA active_input_ptr, op_ptr;
- uiLayout *row;
+ uiLayout *row, *col;
int active_index;
int multilayer = (RNA_enum_get(&imfptr, "file_format") == R_IMF_IMTYPE_MULTILAYER);
node_composit_buts_file_output(layout, C, ptr);
- uiTemplateImageSettings(layout, &imfptr);
+ uiTemplateImageSettings(layout, &imfptr, FALSE);
uiItemS(layout);
uiItemO(layout, IFACE_("Add Input"), ICON_ZOOMIN, "NODE_OT_output_file_add_socket");
+ row = uiLayoutRow(layout, FALSE);
+ col = uiLayoutColumn(row, TRUE);
+
active_index = RNA_int_get(ptr, "active_input_index");
/* using different collection properties if multilayer format is enabled */
if (multilayer) {
- uiTemplateList(layout, C, ptr, "layer_slots", ptr, "active_input_index", NULL, 0, 0, 0);
- RNA_property_collection_lookup_int(ptr, RNA_struct_find_property(ptr, "layer_slots"), active_index, &active_input_ptr);
+ uiTemplateList(col, C, ptr, "layer_slots", ptr, "active_input_index", NULL, 0, 0, 0);
+ RNA_property_collection_lookup_int(ptr, RNA_struct_find_property(ptr, "layer_slots"),
+ active_index, &active_input_ptr);
}
else {
- uiTemplateList(layout, C, ptr, "file_slots", ptr, "active_input_index", NULL, 0, 0, 0);
- RNA_property_collection_lookup_int(ptr, RNA_struct_find_property(ptr, "file_slots"), active_index, &active_input_ptr);
+ uiTemplateList(col, C, ptr, "file_slots", ptr, "active_input_index", NULL, 0, 0, 0);
+ RNA_property_collection_lookup_int(ptr, RNA_struct_find_property(ptr, "file_slots"),
+ active_index, &active_input_ptr);
}
/* XXX collection lookup does not return the ID part of the pointer, setting this manually here */
active_input_ptr.id.data = ptr->id.data;
- row = uiLayoutRow(layout, TRUE);
- op_ptr = uiItemFullO(row, "NODE_OT_output_file_move_active_socket", "", ICON_TRIA_UP, NULL, WM_OP_INVOKE_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ col = uiLayoutColumn(row, TRUE);
+ op_ptr = uiItemFullO(col, "NODE_OT_output_file_move_active_socket", "",
+ ICON_TRIA_UP, NULL, WM_OP_INVOKE_DEFAULT, UI_ITEM_O_RETURN_PROPS);
RNA_enum_set(&op_ptr, "direction", 1);
- op_ptr = uiItemFullO(row, "NODE_OT_output_file_move_active_socket", "", ICON_TRIA_DOWN, NULL, WM_OP_INVOKE_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ op_ptr = uiItemFullO(col, "NODE_OT_output_file_move_active_socket", "",
+ ICON_TRIA_DOWN, NULL, WM_OP_INVOKE_DEFAULT, UI_ITEM_O_RETURN_PROPS);
RNA_enum_set(&op_ptr, "direction", 2);
if (active_input_ptr.data) {
if (multilayer) {
- uiLayout *row, *col;
col = uiLayoutColumn(layout, TRUE);
- uiItemL(col, IFACE_("Layer:"), 0);
+ uiItemL(col, IFACE_("Layer:"), ICON_NONE);
row = uiLayoutRow(col, FALSE);
- uiItemR(row, &active_input_ptr, "name", 0, "", 0);
- uiItemFullO(row, "NODE_OT_output_file_remove_active_socket", "", ICON_X, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_R_ICON_ONLY);
+ uiItemR(row, &active_input_ptr, "name", 0, "", ICON_NONE);
+ uiItemFullO(row, "NODE_OT_output_file_remove_active_socket", "",
+ ICON_X, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_R_ICON_ONLY);
}
else {
- uiLayout *row, *col;
col = uiLayoutColumn(layout, TRUE);
- uiItemL(col, IFACE_("File Path:"), 0);
+ uiItemL(col, IFACE_("File Path:"), ICON_NONE);
row = uiLayoutRow(col, FALSE);
- uiItemR(row, &active_input_ptr, "path", 0, "", 0);
- uiItemFullO(row, "NODE_OT_output_file_remove_active_socket", "", ICON_X, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_R_ICON_ONLY);
+ uiItemR(row, &active_input_ptr, "path", 0, "", ICON_NONE);
+ uiItemFullO(row, "NODE_OT_output_file_remove_active_socket", "",
+ ICON_X, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_R_ICON_ONLY);
/* format details for individual files */
imfptr = RNA_pointer_get(&active_input_ptr, "format");
col = uiLayoutColumn(layout, TRUE);
- uiItemL(col, IFACE_("Format:"), 0);
- uiItemR(col, &active_input_ptr, "use_node_format", 0, NULL, 0);
+ uiItemL(col, IFACE_("Format:"), ICON_NONE);
+ uiItemR(col, &active_input_ptr, "use_node_format", 0, NULL, ICON_NONE);
col = uiLayoutColumn(layout, FALSE);
uiLayoutSetActive(col, RNA_boolean_get(&active_input_ptr, "use_node_format") == FALSE);
- uiTemplateImageSettings(col, &imfptr);
+ uiTemplateImageSettings(col, &imfptr, FALSE);
}
}
}
@@ -2160,6 +2245,21 @@ static void node_composit_buts_movieclip(uiLayout *layout, bContext *C, PointerR
uiTemplateID(layout, C, ptr, "clip", NULL, "CLIP_OT_open", NULL);
}
+static void node_composit_buts_movieclip_details(uiLayout *layout, bContext *C, PointerRNA *ptr)
+{
+ bNode *node = ptr->data;
+ PointerRNA clipptr;
+
+ uiTemplateID(layout, C, ptr, "clip", NULL, "CLIP_OT_open", NULL);
+
+ if (!node->id)
+ return;
+
+ clipptr = RNA_pointer_get(ptr, "clip");
+
+ uiTemplateColorspaceSettings(layout, &clipptr, "colorspace_settings");
+}
+
static void node_composit_buts_stabilize2d(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
bNode *node = ptr->data;
@@ -2169,12 +2269,12 @@ static void node_composit_buts_stabilize2d(uiLayout *layout, bContext *C, Pointe
if (!node->id)
return;
- uiItemR(layout, ptr, "filter_type", 0, "", 0);
+ uiItemR(layout, ptr, "filter_type", 0, "", ICON_NONE);
}
static void node_composit_buts_transform(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "filter_type", 0, "", 0);
+ uiItemR(layout, ptr, "filter_type", 0, "", ICON_NONE);
}
static void node_composit_buts_moviedistortion(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -2186,7 +2286,7 @@ static void node_composit_buts_moviedistortion(uiLayout *layout, bContext *C, Po
if (!node->id)
return;
- uiItemR(layout, ptr, "distortion_type", 0, "", 0);
+ uiItemR(layout, ptr, "distortion_type", 0, "", ICON_NONE);
}
static void node_composit_buts_colorcorrection(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
@@ -2199,15 +2299,15 @@ static void node_composit_buts_colorcorrection(uiLayout *layout, bContext *UNUSE
uiItemR(row, ptr, "blue", 0, NULL, ICON_NONE);
row = uiLayoutRow(layout, FALSE);
- uiItemL(row, "", 0);
- uiItemL(row, IFACE_("Saturation"), 0);
- uiItemL(row, IFACE_("Contrast"), 0);
- uiItemL(row, IFACE_("Gamma"), 0);
- uiItemL(row, IFACE_("Gain"), 0);
- uiItemL(row, IFACE_("Lift"), 0);
+ uiItemL(row, "", ICON_NONE);
+ uiItemL(row, IFACE_("Saturation"), ICON_NONE);
+ uiItemL(row, IFACE_("Contrast"), ICON_NONE);
+ uiItemL(row, IFACE_("Gamma"), ICON_NONE);
+ uiItemL(row, IFACE_("Gain"), ICON_NONE);
+ uiItemL(row, IFACE_("Lift"), ICON_NONE);
row = uiLayoutRow(layout, FALSE);
- uiItemL(row, IFACE_("Master"), 0);
+ uiItemL(row, IFACE_("Master"), ICON_NONE);
uiItemR(row, ptr, "master_saturation", UI_ITEM_R_SLIDER, "", ICON_NONE);
uiItemR(row, ptr, "master_contrast", UI_ITEM_R_SLIDER, "", ICON_NONE);
uiItemR(row, ptr, "master_gamma", UI_ITEM_R_SLIDER, "", ICON_NONE);
@@ -2215,7 +2315,7 @@ static void node_composit_buts_colorcorrection(uiLayout *layout, bContext *UNUSE
uiItemR(row, ptr, "master_lift", UI_ITEM_R_SLIDER, "", ICON_NONE);
row = uiLayoutRow(layout, FALSE);
- uiItemL(row, IFACE_("Highlights"), 0);
+ uiItemL(row, IFACE_("Highlights"), ICON_NONE);
uiItemR(row, ptr, "highlights_saturation", UI_ITEM_R_SLIDER, "", ICON_NONE);
uiItemR(row, ptr, "highlights_contrast", UI_ITEM_R_SLIDER, "", ICON_NONE);
uiItemR(row, ptr, "highlights_gamma", UI_ITEM_R_SLIDER, "", ICON_NONE);
@@ -2223,7 +2323,7 @@ static void node_composit_buts_colorcorrection(uiLayout *layout, bContext *UNUSE
uiItemR(row, ptr, "highlights_lift", UI_ITEM_R_SLIDER, "", ICON_NONE);
row = uiLayoutRow(layout, FALSE);
- uiItemL(row, IFACE_("Midtones"), 0);
+ uiItemL(row, IFACE_("Midtones"), ICON_NONE);
uiItemR(row, ptr, "midtones_saturation", UI_ITEM_R_SLIDER, "", ICON_NONE);
uiItemR(row, ptr, "midtones_contrast", UI_ITEM_R_SLIDER, "", ICON_NONE);
uiItemR(row, ptr, "midtones_gamma", UI_ITEM_R_SLIDER, "", ICON_NONE);
@@ -2231,7 +2331,7 @@ static void node_composit_buts_colorcorrection(uiLayout *layout, bContext *UNUSE
uiItemR(row, ptr, "midtones_lift", UI_ITEM_R_SLIDER, "", ICON_NONE);
row = uiLayoutRow(layout, FALSE);
- uiItemL(row, IFACE_("Shadows"), 0);
+ uiItemL(row, IFACE_("Shadows"), ICON_NONE);
uiItemR(row, ptr, "shadows_saturation", UI_ITEM_R_SLIDER, "", ICON_NONE);
uiItemR(row, ptr, "shadows_contrast", UI_ITEM_R_SLIDER, "", ICON_NONE);
uiItemR(row, ptr, "shadows_gamma", UI_ITEM_R_SLIDER, "", ICON_NONE);
@@ -2252,31 +2352,31 @@ static void node_composit_buts_colorcorrection_but(uiLayout *layout, bContext *U
uiItemR(row, ptr, "green", 0, NULL, ICON_NONE);
uiItemR(row, ptr, "blue", 0, NULL, ICON_NONE);
row = layout;
- uiItemL(row, IFACE_("Saturation"), 0);
+ uiItemL(row, IFACE_("Saturation"), ICON_NONE);
uiItemR(row, ptr, "master_saturation", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "highlights_saturation", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "midtones_saturation", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "shadows_saturation", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
- uiItemL(row, IFACE_("Contrast"), 0);
+ uiItemL(row, IFACE_("Contrast"), ICON_NONE);
uiItemR(row, ptr, "master_contrast", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "highlights_contrast", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "midtones_contrast", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "shadows_contrast", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
- uiItemL(row, IFACE_("Gamma"), 0);
+ uiItemL(row, IFACE_("Gamma"), ICON_NONE);
uiItemR(row, ptr, "master_gamma", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "highlights_gamma", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "midtones_gamma", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "shadows_gamma", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
- uiItemL(row, IFACE_("Gain"), 0);
+ uiItemL(row, IFACE_("Gain"), ICON_NONE);
uiItemR(row, ptr, "master_gain", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "highlights_gain", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "midtones_gain", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "shadows_gain", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
- uiItemL(row, IFACE_("Lift"), 0);
+ uiItemL(row, IFACE_("Lift"), ICON_NONE);
uiItemR(row, ptr, "master_lift", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "highlights_lift", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
uiItemR(row, ptr, "midtones_lift", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
@@ -2317,7 +2417,14 @@ static void node_composit_buts_bokehimage(uiLayout *layout, bContext *UNUSED(C),
uiItemR(layout, ptr, "shift", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
}
-void node_composit_backdrop_viewer(SpaceNode *snode, ImBuf *backdrop, bNode *node, int x, int y)
+static void node_composit_buts_bokehblur(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "use_variable_size", 0, NULL, ICON_NONE);
+ // uiItemR(layout, ptr, "f_stop", 0, NULL, ICON_NONE); // UNUSED
+ uiItemR(layout, ptr, "blur_max", 0, NULL, ICON_NONE);
+}
+
+static void node_composit_backdrop_viewer(SpaceNode *snode, ImBuf *backdrop, bNode *node, int x, int y)
{
// node_composit_backdrop_canvas(snode, backdrop, node, x, y);
if (node->custom1 == 0) {
@@ -2337,7 +2444,7 @@ void node_composit_backdrop_viewer(SpaceNode *snode, ImBuf *backdrop, bNode *nod
}
}
-void node_composit_backdrop_boxmask(SpaceNode *snode, ImBuf *backdrop, bNode *node, int x, int y)
+static void node_composit_backdrop_boxmask(SpaceNode *snode, ImBuf *backdrop, bNode *node, int x, int y)
{
NodeBoxMask *boxmask = node->storage;
const float backdropWidth = backdrop->x;
@@ -2378,7 +2485,7 @@ void node_composit_backdrop_boxmask(SpaceNode *snode, ImBuf *backdrop, bNode *no
glEnd();
}
-void node_composit_backdrop_ellipsemask(SpaceNode *snode, ImBuf *backdrop, bNode *node, int x, int y)
+static void node_composit_backdrop_ellipsemask(SpaceNode *snode, ImBuf *backdrop, bNode *node, int x, int y)
{
NodeEllipseMask *ellipsemask = node->storage;
const float backdropWidth = backdrop->x;
@@ -2448,15 +2555,29 @@ static void node_composit_buts_viewer_but(uiLayout *layout, bContext *UNUSED(C),
static void node_composit_buts_mask(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
+ bNode *node = ptr->data;
+
uiTemplateID(layout, C, ptr, "mask", NULL, NULL, NULL);
uiItemR(layout, ptr, "use_antialiasing", 0, NULL, ICON_NONE);
uiItemR(layout, ptr, "use_feather", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "size_source", 0, "", ICON_NONE);
+
+ if (node->custom1 & (CMP_NODEFLAG_MASK_FIXED | CMP_NODEFLAG_MASK_FIXED_SCENE)) {
+ uiItemR(layout, ptr, "size_x", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "size_y", 0, NULL, ICON_NONE);
+ }
+
+ uiItemR(layout, ptr, "use_motion_blur", 0, NULL, ICON_NONE);
+ if (node->custom1 & CMP_NODEFLAG_MASK_MOTION_BLUR) {
+ uiItemR(layout, ptr, "motion_blur_samples", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "motion_blur_shutter", 0, NULL, ICON_NONE);
+ }
}
static void node_composit_buts_keyingscreen(uiLayout *layout, bContext *C, PointerRNA *ptr)
{
- bNode *node= ptr->data;
+ bNode *node = ptr->data;
uiTemplateID(layout, C, ptr, "clip", NULL, NULL, NULL);
@@ -2479,6 +2600,7 @@ static void node_composit_buts_keying(uiLayout *layout, bContext *UNUSED(C), Poi
uiItemR(layout, ptr, "blur_pre", 0, NULL, ICON_NONE);
uiItemR(layout, ptr, "screen_balance", 0, NULL, ICON_NONE);
uiItemR(layout, ptr, "despill_factor", 0, NULL, ICON_NONE);
+ uiItemR(layout, ptr, "despill_balance", 0, NULL, ICON_NONE);
uiItemR(layout, ptr, "edge_kernel_radius", 0, NULL, ICON_NONE);
uiItemR(layout, ptr, "edge_kernel_tolerance", 0, NULL, ICON_NONE);
uiItemR(layout, ptr, "clip_black", 0, NULL, ICON_NONE);
@@ -2489,6 +2611,45 @@ static void node_composit_buts_keying(uiLayout *layout, bContext *UNUSED(C), Poi
uiItemR(layout, ptr, "blur_post", 0, NULL, ICON_NONE);
}
+static void node_composit_buts_trackpos(uiLayout *layout, bContext *C, PointerRNA *ptr)
+{
+ bNode *node = ptr->data;
+
+ uiTemplateID(layout, C, ptr, "clip", NULL, "CLIP_OT_open", NULL);
+
+ if (node->id) {
+ MovieClip *clip = (MovieClip *) node->id;
+ MovieTracking *tracking = &clip->tracking;
+ MovieTrackingObject *object;
+ uiLayout *col;
+ PointerRNA tracking_ptr;
+ NodeTrackPosData *data = node->storage;
+
+ RNA_pointer_create(&clip->id, &RNA_MovieTracking, tracking, &tracking_ptr);
+
+ col = uiLayoutColumn(layout, FALSE);
+ uiItemPointerR(col, ptr, "tracking_object", &tracking_ptr, "objects", "", ICON_OBJECT_DATA);
+
+ object = BKE_tracking_object_get_named(tracking, data->tracking_object);
+ if (object) {
+ PointerRNA object_ptr;
+
+ RNA_pointer_create(&clip->id, &RNA_MovieTrackingObject, object, &object_ptr);
+
+ uiItemPointerR(col, ptr, "track_name", &object_ptr, "tracks", "", ICON_ANIM_DATA);
+ }
+ else {
+ uiItemR(layout, ptr, "track_name", 0, "", ICON_ANIM_DATA);
+ }
+
+ uiItemR(layout, ptr, "position", 0, NULL, ICON_NONE);
+
+ if (node->custom1 == 2) {
+ uiItemR(layout, ptr, "frame_relative", 0, NULL, ICON_NONE);
+ }
+ }
+}
+
/* only once called */
static void node_composit_set_butfunc(bNodeType *ntype)
{
@@ -2497,6 +2658,7 @@ static void node_composit_set_butfunc(bNodeType *ntype)
case CMP_NODE_IMAGE:
ntype->uifunc = node_composit_buts_image;
+ ntype->uifuncbut = node_composit_buts_image_details;
break;
case CMP_NODE_R_LAYERS:
ntype->uifunc = node_composit_buts_renderlayers;
@@ -2576,6 +2738,12 @@ static void node_composit_set_butfunc(bNodeType *ntype)
case CMP_NODE_DILATEERODE:
ntype->uifunc = node_composit_buts_dilateerode;
break;
+ case CMP_NODE_INPAINT:
+ ntype->uifunc = node_composit_buts_inpaint;
+ break;
+ case CMP_NODE_DESPECKLE:
+ ntype->uifunc = node_composit_buts_despeckle;
+ break;
case CMP_NODE_OUTPUT_FILE:
ntype->uifunc = node_composit_buts_file_output;
ntype->uifuncbut = node_composit_buts_file_output_details;
@@ -2645,6 +2813,7 @@ static void node_composit_set_butfunc(bNodeType *ntype)
break;
case CMP_NODE_MOVIECLIP:
ntype->uifunc = node_composit_buts_movieclip;
+ ntype->uifuncbut = node_composit_buts_movieclip_details;
break;
case CMP_NODE_STABILIZE2D:
ntype->uifunc = node_composit_buts_stabilize2d;
@@ -2673,13 +2842,16 @@ static void node_composit_set_butfunc(bNodeType *ntype)
case CMP_NODE_BOKEHIMAGE:
ntype->uifunc = node_composit_buts_bokehimage;
break;
+ case CMP_NODE_BOKEHBLUR:
+ ntype->uifunc = node_composit_buts_bokehblur;
+ break;
case CMP_NODE_VIEWER:
ntype->uifunc = NULL;
ntype->uifuncbut = node_composit_buts_viewer_but;
ntype->uibackdropfunc = node_composit_backdrop_viewer;
break;
case CMP_NODE_MASK:
- ntype->uifunc= node_composit_buts_mask;
+ ntype->uifunc = node_composit_buts_mask;
break;
case CMP_NODE_KEYINGSCREEN:
ntype->uifunc = node_composit_buts_keyingscreen;
@@ -2687,6 +2859,9 @@ static void node_composit_set_butfunc(bNodeType *ntype)
case CMP_NODE_KEYING:
ntype->uifunc = node_composit_buts_keying;
break;
+ case CMP_NODE_TRACKPOS:
+ ntype->uifunc = node_composit_buts_trackpos;
+ break;
default:
ntype->uifunc = NULL;
}
@@ -2755,7 +2930,7 @@ static void node_texture_buts_proc(uiLayout *layout, bContext *UNUSED(C), Pointe
row = uiLayoutRow(col, FALSE);
uiItemR(row, &tex_ptr, "noise_basis_2", UI_ITEM_R_EXPAND, NULL, ICON_NONE);
row = uiLayoutRow(col, FALSE);
- uiLayoutSetActive(row, !(RNA_enum_get(&tex_ptr, "wood_type") == TEX_BAND || RNA_enum_get(&tex_ptr, "wood_type") == TEX_RING));
+ uiLayoutSetActive(row, !(ELEM(tex->stype, TEX_BAND, TEX_RING)));
uiItemR(row, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND, NULL, ICON_NONE);
break;
@@ -2847,7 +3022,7 @@ static void node_texture_set_butfunc(bNodeType *ntype)
/* ******* init draw callbacks for all tree types, only called in usiblender.c, once ************* */
-void ED_init_node_butfuncs(void)
+void ED_node_init_butfuncs(void)
{
bNodeTreeType *treetype;
bNodeType *ntype;
@@ -2915,7 +3090,7 @@ void ED_init_node_butfuncs(void)
/* ************** Generic drawing ************** */
-void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage)
+void draw_nodespace_back_pix(const bContext *C, ARegion *ar, SpaceNode *snode)
{
if ((snode->flag & SNODE_BACKDRAW) && snode->treetype == NTREE_COMPOSIT) {
@@ -2923,7 +3098,10 @@ void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage)
void *lock;
ImBuf *ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock);
if (ibuf) {
+ SpaceNode *snode = CTX_wm_space_node(C);
float x, y;
+ unsigned char *display_buffer;
+ void *cache_handle;
glMatrixMode(GL_PROJECTION);
glPushMatrix();
@@ -2937,29 +3115,47 @@ void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage)
glaDefine2DArea(&ar->winrct);
/* ortho at pixel level curarea */
- wmOrtho2(-0.375, ar->winx - 0.375, -0.375, ar->winy - 0.375);
+ wmOrtho2(-GLA_PIXEL_OFS, ar->winx - GLA_PIXEL_OFS, -GLA_PIXEL_OFS, ar->winy - GLA_PIXEL_OFS);
x = (ar->winx - snode->zoom * ibuf->x) / 2 + snode->xof;
y = (ar->winy - snode->zoom * ibuf->y) / 2 + snode->yof;
- if (!ibuf->rect) {
- if (color_manage)
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
- else
- ibuf->profile = IB_PROFILE_NONE;
- IMB_rect_from_float(ibuf);
- }
- if (ibuf->rect) {
- if (snode->flag & SNODE_SHOW_ALPHA) {
+ display_buffer = IMB_display_buffer_acquire_ctx(C, ibuf, &cache_handle);
+
+ if (display_buffer) {
+ if (snode->flag & (SNODE_SHOW_R | SNODE_SHOW_G | SNODE_SHOW_B)) {
+ int ofs;
+
+#ifdef __BIG_ENDIAN__
+ if (snode->flag & SNODE_SHOW_R) ofs = 2;
+ else if (snode->flag & SNODE_SHOW_G) ofs = 1;
+ else ofs = 0;
+#else
+ if (snode->flag & SNODE_SHOW_R) ofs = 1;
+ else if (snode->flag & SNODE_SHOW_G) ofs = 2;
+ else ofs = 3;
+#endif
+
glPixelZoom(snode->zoom, snode->zoom);
/* swap bytes, so alpha is most significant one, then just draw it as luminance int */
- if (ENDIAN_ORDER == B_ENDIAN)
- glPixelStorei(GL_UNPACK_SWAP_BYTES, 1);
-
- glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_LUMINANCE, GL_UNSIGNED_INT, ibuf->rect);
-
+
+ glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_LUMINANCE, GL_UNSIGNED_INT,
+ display_buffer + ofs);
+
+ glPixelZoom(1.0f, 1.0f);
+ }
+ else if (snode->flag & SNODE_SHOW_ALPHA) {
+ glPixelZoom(snode->zoom, snode->zoom);
+ /* swap bytes, so alpha is most significant one, then just draw it as luminance int */
+#ifdef __BIG_ENDIAN__
+ glPixelStorei(GL_UNPACK_SWAP_BYTES, 1);
+#endif
+ glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_LUMINANCE, GL_UNSIGNED_INT, display_buffer);
+
+#ifdef __BIG_ENDIAN__
glPixelStorei(GL_UNPACK_SWAP_BYTES, 0);
+#endif
glPixelZoom(1.0f, 1.0f);
}
else if (snode->flag & SNODE_USE_ALPHA) {
@@ -2967,7 +3163,7 @@ void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glPixelZoom(snode->zoom, snode->zoom);
- glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
+ glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, display_buffer);
glPixelZoom(1.0f, 1.0f);
glDisable(GL_BLEND);
@@ -2975,13 +3171,15 @@ void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage)
else {
glPixelZoom(snode->zoom, snode->zoom);
- glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
+ glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, display_buffer);
glPixelZoom(1.0f, 1.0f);
}
}
- /// @note draw selected info on backdrop
+ IMB_display_buffer_release(cache_handle);
+
+ /** @note draw selected info on backdrop */
if (snode->edittree) {
bNode *node = snode->edittree->nodes.first;
while (node) {
@@ -3029,7 +3227,7 @@ static void draw_nodespace_back_tex(ScrArea *sa, SpaceNode *snode)
float zoomx, zoomy;
zoomx = (float)sa->winx / ibuf->x;
zoomy = (float)sa->winy / ibuf->y;
- zoom = MIN2(zoomx, zoomy);
+ zoom = minf(zoomx, zoomy);
}
x = (sa->winx - zoom * ibuf->x) / 2 + snode->xof;
@@ -3068,8 +3266,7 @@ int node_link_bezier_points(View2D *v2d, SpaceNode *snode, bNodeLink *link, floa
}
else {
if (snode == NULL) return 0;
- vec[0][0] = snode->mx;
- vec[0][1] = snode->my;
+ copy_v2_v2(vec[0], snode->cursor);
fromreroute = 0;
}
if (link->tosock) {
@@ -3079,8 +3276,7 @@ int node_link_bezier_points(View2D *v2d, SpaceNode *snode, bNodeLink *link, floa
}
else {
if (snode == NULL) return 0;
- vec[3][0] = snode->mx;
- vec[3][1] = snode->my;
+ copy_v2_v2(vec[3], snode->cursor);
toreroute = 0;
}
@@ -3089,37 +3285,46 @@ int node_link_bezier_points(View2D *v2d, SpaceNode *snode, bNodeLink *link, floa
deltay = vec[3][1] - vec[0][1];
/* check direction later, for top sockets */
if (fromreroute) {
- if (ABS(deltax)>ABS(deltay)) {
- vec[1][1]= vec[0][1];
- vec[1][0]= vec[0][0]+(deltax>0?dist:-dist);
- } else {
- vec[1][0]= vec[0][0];
- vec[1][1]= vec[0][1]+(deltay>0?dist:-dist);
+ if (ABS(deltax) > ABS(deltay)) {
+ vec[1][1] = vec[0][1];
+ vec[1][0] = vec[0][0] + (deltax > 0 ? dist : -dist);
+ }
+ else {
+ vec[1][0] = vec[0][0];
+ vec[1][1] = vec[0][1] + (deltay > 0 ? dist : -dist);
}
- } else {
+ }
+ else {
vec[1][0] = vec[0][0] + dist;
vec[1][1] = vec[0][1];
}
if (toreroute) {
- if (ABS(deltax)>ABS(deltay)) {
- vec[2][1]= vec[3][1];
- vec[2][0]= vec[3][0]+ (deltax>0?-dist:dist);
- } else {
- vec[2][0]= vec[3][0];
- vec[2][1]= vec[3][1]+(deltay>0?-dist:dist);
+ if (ABS(deltax) > ABS(deltay)) {
+ vec[2][1] = vec[3][1];
+ vec[2][0] = vec[3][0] + (deltax > 0 ? -dist : dist);
+ }
+ else {
+ vec[2][0] = vec[3][0];
+ vec[2][1] = vec[3][1] + (deltay > 0 ? -dist : dist);
}
- } else {
+ }
+ else {
vec[2][0] = vec[3][0] - dist;
vec[2][1] = vec[3][1];
}
- if (v2d && MIN4(vec[0][0], vec[1][0], vec[2][0], vec[3][0]) > v2d->cur.xmax) ; /* clipped */
- else if (v2d && MAX4(vec[0][0], vec[1][0], vec[2][0], vec[3][0]) < v2d->cur.xmin) ; /* clipped */
+ if (v2d && MIN4(vec[0][0], vec[1][0], vec[2][0], vec[3][0]) > v2d->cur.xmax) {
+ /* clipped */
+ }
+ else if (v2d && MAX4(vec[0][0], vec[1][0], vec[2][0], vec[3][0]) < v2d->cur.xmin) {
+ /* clipped */
+ }
else {
-
/* always do all three, to prevent data hanging around */
- BKE_curve_forward_diff_bezier(vec[0][0], vec[1][0], vec[2][0], vec[3][0], coord_array[0], resol, sizeof(float) * 2);
- BKE_curve_forward_diff_bezier(vec[0][1], vec[1][1], vec[2][1], vec[3][1], coord_array[0] + 1, resol, sizeof(float) * 2);
+ BKE_curve_forward_diff_bezier(vec[0][0], vec[1][0], vec[2][0], vec[3][0],
+ coord_array[0] + 0, resol, sizeof(float) * 2);
+ BKE_curve_forward_diff_bezier(vec[0][1], vec[1][1], vec[2][1], vec[3][1],
+ coord_array[0] + 1, resol, sizeof(float) * 2);
return 1;
}
@@ -3127,9 +3332,10 @@ int node_link_bezier_points(View2D *v2d, SpaceNode *snode, bNodeLink *link, floa
}
#define LINK_RESOL 24
-#define LINK_ARROW 12 /* position of arrow on the link, LINK_RESOL/2 */
+#define LINK_ARROW 12 /* position of arrow on the link, LINK_RESOL/2 */
#define ARROW_SIZE 7
-void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link, int th_col1, int do_shaded, int th_col2, int do_triple, int th_col3)
+void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link,
+ int th_col1, int do_shaded, int th_col2, int do_triple, int th_col3)
{
float coord_array[LINK_RESOL + 1][2];
@@ -3147,19 +3353,20 @@ void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link, int t
glEnable(GL_LINE_SMOOTH);
- drawarrow = (link->tonode && (link->tonode->type == NODE_REROUTE)) && (link->fromnode && (link->fromnode->type == NODE_REROUTE));
+ drawarrow = ((link->tonode && (link->tonode->type == NODE_REROUTE)) &&
+ (link->fromnode && (link->fromnode->type == NODE_REROUTE)));
+
if (drawarrow) {
- // draw arrow in line segment LINK_ARROW
- float dx, dy, len;
- dx = coord_array[LINK_ARROW][0]-coord_array[LINK_ARROW-1][0];
- dy = coord_array[LINK_ARROW][1]-coord_array[LINK_ARROW-1][1];
- len = sqrtf(dx*dx+dy*dy);
- dx = dx /len*ARROW_SIZE;
- dy = dy /len*ARROW_SIZE;
- arrow1[0] = coord_array[LINK_ARROW][0]-dx+dy;
- arrow1[1] = coord_array[LINK_ARROW][1]-dy-dx;
- arrow2[0] = coord_array[LINK_ARROW][0]-dx-dy;
- arrow2[1] = coord_array[LINK_ARROW][1]-dy+dx;
+ /* draw arrow in line segment LINK_ARROW */
+ float d_xy[2], len;
+
+ sub_v2_v2v2(d_xy, coord_array[LINK_ARROW], coord_array[LINK_ARROW - 1]);
+ len = len_v2(d_xy);
+ mul_v2_fl(d_xy, ARROW_SIZE / len);
+ arrow1[0] = coord_array[LINK_ARROW][0] - d_xy[0] + d_xy[1];
+ arrow1[1] = coord_array[LINK_ARROW][1] - d_xy[1] - d_xy[0];
+ arrow2[0] = coord_array[LINK_ARROW][0] - d_xy[0] - d_xy[1];
+ arrow2[1] = coord_array[LINK_ARROW][1] - d_xy[1] + d_xy[0];
arrow[0] = coord_array[LINK_ARROW][0];
arrow[1] = coord_array[LINK_ARROW][1];
}
@@ -3225,6 +3432,7 @@ void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link, int t
}
}
+#if 0 /* not used in 2.5x yet */
static void node_link_straight_points(View2D *UNUSED(v2d), SpaceNode *snode, bNodeLink *link, float coord_array[][2])
{
if (link->fromsock) {
@@ -3247,7 +3455,8 @@ static void node_link_straight_points(View2D *UNUSED(v2d), SpaceNode *snode, bNo
}
}
-void node_draw_link_straight(View2D *v2d, SpaceNode *snode, bNodeLink *link, int th_col1, int do_shaded, int th_col2, int do_triple, int th_col3)
+void node_draw_link_straight(View2D *v2d, SpaceNode *snode, bNodeLink *link,
+ int th_col1, int do_shaded, int th_col2, int do_triple, int th_col3)
{
float coord_array[2][2];
float linew;
@@ -3282,11 +3491,13 @@ void node_draw_link_straight(View2D *v2d, SpaceNode *snode, bNodeLink *link, int
for (i = 0; i < LINK_RESOL - 1; ++i) {
float t = (float)i / (float)(LINK_RESOL - 1);
UI_ThemeColorBlend(th_col1, th_col2, t);
- glVertex2f((1.0f - t) * coord_array[0][0] + t * coord_array[1][0], (1.0f - t) * coord_array[0][1] + t * coord_array[1][1]);
+ glVertex2f((1.0f - t) * coord_array[0][0] + t * coord_array[1][0],
+ (1.0f - t) * coord_array[0][1] + t * coord_array[1][1]);
t = (float)(i + 1) / (float)(LINK_RESOL - 1);
UI_ThemeColorBlend(th_col1, th_col2, t);
- glVertex2f((1.0f - t) * coord_array[0][0] + t * coord_array[1][0], (1.0f - t) * coord_array[0][1] + t * coord_array[1][1]);
+ glVertex2f((1.0f - t) * coord_array[0][0] + t * coord_array[1][0],
+ (1.0f - t) * coord_array[0][1] + t * coord_array[1][1]);
}
glEnd();
}
@@ -3294,7 +3505,8 @@ void node_draw_link_straight(View2D *v2d, SpaceNode *snode, bNodeLink *link, int
glBegin(GL_LINE_STRIP);
for (i = 0; i < LINK_RESOL; ++i) {
float t = (float)i / (float)(LINK_RESOL - 1);
- glVertex2f((1.0f - t) * coord_array[0][0] + t * coord_array[1][0], (1.0f - t) * coord_array[0][1] + t * coord_array[1][1]);
+ glVertex2f((1.0f - t) * coord_array[0][0] + t * coord_array[1][0],
+ (1.0f - t) * coord_array[0][1] + t * coord_array[1][1]);
}
glEnd();
}
@@ -3304,6 +3516,7 @@ void node_draw_link_straight(View2D *v2d, SpaceNode *snode, bNodeLink *link, int
/* restore previuos linewidth */
glLineWidth(linew);
}
+#endif
/* note; this is used for fake links in groups too */
void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link)
@@ -3355,7 +3568,7 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link)
// node_draw_link_straight(v2d, snode, link, th_col1, do_shaded, th_col2, do_triple, th_col3);
}
-void drawnodesnap(View2D *v2d, const float cent[2], float size, NodeBorder border)
+void ED_node_draw_snap(View2D *v2d, const float cent[2], float size, NodeBorder border)
{
glBegin(GL_LINES);
diff --git a/source/blender/editors/space_node/node_add.c b/source/blender/editors/space_node/node_add.c
new file mode 100644
index 00000000000..99d49fa1e8f
--- /dev/null
+++ b/source/blender/editors/space_node/node_add.c
@@ -0,0 +1,392 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2005 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): David Millan Escriva, Juho Vepsäläinen, Nathan Letwory
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editors/space_node/node_add.c
+ * \ingroup spnode
+ */
+
+#include <errno.h>
+
+#include "DNA_node_types.h"
+
+#include "BLI_math.h"
+
+#include "BKE_context.h"
+#include "BKE_image.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_node.h"
+#include "BKE_report.h"
+
+#include "ED_node.h" /* own include */
+#include "ED_screen.h"
+#include "ED_render.h"
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+#include "RNA_enum_types.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "UI_view2d.h"
+
+#include "node_intern.h" /* own include */
+
+/* can be called from menus too, but they should do own undopush and redraws */
+bNode *node_add_node(SpaceNode *snode, Main *bmain, Scene *scene,
+ bNodeTemplate *ntemp, float locx, float locy)
+{
+ bNode *node = NULL, *gnode;
+
+ node_deselect_all(snode);
+
+ node = nodeAddNode(snode->edittree, ntemp);
+
+ /* generics */
+ if (node) {
+ node_select(node);
+
+ gnode = node_tree_get_editgroup(snode->nodetree);
+ // arbitrary y offset of 60 so its visible
+ if (gnode) {
+ nodeFromView(gnode, locx, locy + 60.0f, &node->locx, &node->locy);
+ }
+ else {
+ node->locx = locx;
+ node->locy = locy + 60.0f;
+ }
+
+ ntreeUpdateTree(snode->edittree);
+ ED_node_set_active(bmain, snode->edittree, node);
+
+ if (snode->nodetree->type == NTREE_COMPOSIT) {
+ if (ELEM4(node->type, CMP_NODE_R_LAYERS, CMP_NODE_COMPOSITE, CMP_NODE_DEFOCUS, CMP_NODE_OUTPUT_FILE)) {
+ node->id = &scene->id;
+ }
+ else if (ELEM3(node->type, CMP_NODE_MOVIECLIP, CMP_NODE_MOVIEDISTORTION, CMP_NODE_STABILIZE2D)) {
+ node->id = (ID *)scene->clip;
+ }
+
+ ntreeCompositForceHidden(snode->edittree, scene);
+ }
+
+ if (node->id)
+ id_us_plus(node->id);
+
+
+ if (snode->flag & SNODE_USE_HIDDEN_PREVIEW)
+ node->flag &= ~NODE_PREVIEW;
+
+ snode_update(snode, node);
+ }
+
+ if (snode->nodetree->type == NTREE_TEXTURE) {
+ ntreeTexCheckCyclics(snode->edittree);
+ }
+
+ return node;
+}
+
+/* ********************** Add reroute operator ***************** */
+static int add_reroute_intersect_check(bNodeLink *link, float mcoords[][2], int tot, float result[2])
+{
+ float coord_array[NODE_LINK_RESOL + 1][2];
+ int i, b;
+
+ if (node_link_bezier_points(NULL, NULL, link, coord_array, NODE_LINK_RESOL)) {
+
+ for (i = 0; i < tot - 1; i++)
+ for (b = 0; b < NODE_LINK_RESOL; b++)
+ if (isect_line_line_v2(mcoords[i], mcoords[i + 1], coord_array[b], coord_array[b + 1]) > 0) {
+ result[0] = (mcoords[i][0] + mcoords[i + 1][0]) / 2.0f;
+ result[1] = (mcoords[i][1] + mcoords[i + 1][1]) / 2.0f;
+ return 1;
+ }
+ }
+ return 0;
+}
+
+static int add_reroute_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ARegion *ar = CTX_wm_region(C);
+ bNode *gnode = node_tree_get_editgroup(snode->nodetree);
+ float mcoords[256][2];
+ int i = 0;
+
+ RNA_BEGIN(op->ptr, itemptr, "path")
+ {
+ float loc[2];
+
+ RNA_float_get_array(&itemptr, "loc", loc);
+ UI_view2d_region_to_view(&ar->v2d, (short)loc[0], (short)loc[1],
+ &mcoords[i][0], &mcoords[i][1]);
+ i++;
+ if (i >= 256) break;
+ }
+ RNA_END;
+
+ if (i > 1) {
+ bNodeLink *link;
+ float insertPoint[2];
+
+ for (link = snode->edittree->links.first; link; link = link->next) {
+ if (add_reroute_intersect_check(link, mcoords, i, insertPoint)) {
+ bNodeTemplate ntemp;
+ bNode *rerouteNode;
+
+ /* always first */
+ ED_preview_kill_jobs(C);
+
+ node_deselect_all(snode);
+
+ ntemp.type = NODE_REROUTE;
+ rerouteNode = nodeAddNode(snode->edittree, &ntemp);
+ if (gnode) {
+ nodeFromView(gnode, insertPoint[0], insertPoint[1], &rerouteNode->locx, &rerouteNode->locy);
+ }
+ else {
+ rerouteNode->locx = insertPoint[0];
+ rerouteNode->locy = insertPoint[1];
+ }
+
+ nodeAddLink(snode->edittree, link->fromnode, link->fromsock, rerouteNode, rerouteNode->inputs.first);
+ link->fromnode = rerouteNode;
+ link->fromsock = rerouteNode->outputs.first;
+
+ /* always last */
+ ntreeUpdateTree(snode->edittree);
+ snode_notify(C, snode);
+ snode_dag_update(C, snode);
+
+ return OPERATOR_FINISHED; // add one reroute at the time.
+ }
+ }
+
+ return OPERATOR_CANCELLED;
+
+ }
+
+ return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;
+}
+
+void NODE_OT_add_reroute(wmOperatorType *ot)
+{
+ PropertyRNA *prop;
+
+ ot->name = "Add reroute";
+ ot->idname = "NODE_OT_add_reroute";
+
+ ot->invoke = WM_gesture_lines_invoke;
+ ot->modal = WM_gesture_lines_modal;
+ ot->exec = add_reroute_exec;
+ ot->cancel = WM_gesture_lines_cancel;
+
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ prop = RNA_def_property(ot->srna, "path", PROP_COLLECTION, PROP_NONE);
+ RNA_def_property_struct_runtime(prop, &RNA_OperatorMousePath);
+ /* internal */
+ RNA_def_int(ot->srna, "cursor", BC_CROSSCURSOR, 0, INT_MAX, "Cursor", "", 0, INT_MAX);
+}
+
+
+/* ****************** Add File Node Operator ******************* */
+
+static int node_add_file_exec(bContext *C, wmOperator *op)
+{
+ Main *bmain = CTX_data_main(C);
+ Scene *scene = CTX_data_scene(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNode *node;
+ Image *ima = NULL;
+ bNodeTemplate ntemp;
+
+ /* check input variables */
+ if (RNA_struct_property_is_set(op->ptr, "filepath")) {
+ char path[FILE_MAX];
+ RNA_string_get(op->ptr, "filepath", path);
+
+ errno = 0;
+
+ ima = BKE_image_load_exists(path);
+
+ if (!ima) {
+ BKE_reportf(op->reports, RPT_ERROR, "Can't read image: \"%s\", %s", path, errno ? strerror(errno) : "Unsupported format");
+ return OPERATOR_CANCELLED;
+ }
+ }
+ else if (RNA_struct_property_is_set(op->ptr, "name")) {
+ char name[MAX_ID_NAME - 2];
+ RNA_string_get(op->ptr, "name", name);
+ ima = (Image *)BKE_libblock_find_name(ID_IM, name);
+
+ if (!ima) {
+ BKE_reportf(op->reports, RPT_ERROR, "Image named \"%s\", not found", name);
+ return OPERATOR_CANCELLED;
+ }
+ }
+
+ node_deselect_all(snode);
+
+ switch (snode->nodetree->type) {
+ case NTREE_SHADER:
+ ntemp.type = SH_NODE_TEX_IMAGE;
+ break;
+ case NTREE_TEXTURE:
+ ntemp.type = TEX_NODE_IMAGE;
+ break;
+ case NTREE_COMPOSIT:
+ ntemp.type = CMP_NODE_IMAGE;
+ break;
+ default:
+ return OPERATOR_CANCELLED;
+ }
+
+ ED_preview_kill_jobs(C);
+
+ node = node_add_node(snode, bmain, scene, &ntemp, snode->cursor[0], snode->cursor[1]);
+
+ if (!node) {
+ BKE_report(op->reports, RPT_WARNING, "Could not add an image node");
+ return OPERATOR_CANCELLED;
+ }
+
+ node->id = (ID *)ima;
+ id_us_plus(node->id);
+
+ snode_notify(C, snode);
+ snode_dag_update(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+static int node_add_file_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ ARegion *ar = CTX_wm_region(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
+
+ /* convert mouse coordinates to v2d space */
+ UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1],
+ &snode->cursor[0], &snode->cursor[1]);
+
+ if (RNA_struct_property_is_set(op->ptr, "filepath") || RNA_struct_property_is_set(op->ptr, "name"))
+ return node_add_file_exec(C, op);
+ else
+ return WM_operator_filesel(C, op, event);
+}
+
+void NODE_OT_add_file(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Add File Node";
+ ot->description = "Add a file node to the current node editor";
+ ot->idname = "NODE_OT_add_file";
+
+ /* callbacks */
+ ot->exec = node_add_file_exec;
+ ot->invoke = node_add_file_invoke;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY); //XXX TODO, relative_path
+ RNA_def_string(ot->srna, "name", "Image", MAX_ID_NAME - 2, "Name", "Datablock name to assign");
+}
+
+
+/********************** New node tree operator *********************/
+
+static int new_node_tree_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode;
+ bNodeTree *ntree;
+ PointerRNA ptr, idptr;
+ PropertyRNA *prop;
+ int treetype;
+ char treename[MAX_ID_NAME - 2] = "NodeTree";
+
+ /* retrieve state */
+ snode = CTX_wm_space_node(C);
+
+ if (RNA_struct_property_is_set(op->ptr, "type"))
+ treetype = RNA_enum_get(op->ptr, "type");
+ else
+ treetype = snode->treetype;
+
+ if (RNA_struct_property_is_set(op->ptr, "name"))
+ RNA_string_get(op->ptr, "name", treename);
+
+ ntree = ntreeAddTree(treename, treetype, 0);
+ if (!ntree)
+ return OPERATOR_CANCELLED;
+
+ /* hook into UI */
+ uiIDContextProperty(C, &ptr, &prop);
+
+ if (prop) {
+ RNA_id_pointer_create(&ntree->id, &idptr);
+ RNA_property_pointer_set(&ptr, prop, idptr);
+ /* RNA_property_pointer_set increases the user count,
+ * fixed here as the editor is the initial user.
+ */
+ ntree->id.us++;
+ RNA_property_update(C, &ptr, prop);
+ }
+ else if (snode) {
+ Scene *scene = CTX_data_scene(C);
+ snode->nodetree = ntree;
+
+ ED_node_tree_update(snode, scene);
+ }
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_new_node_tree(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "New Node Tree";
+ ot->idname = "NODE_OT_new_node_tree";
+ ot->description = "Create a new node tree";
+
+ /* api callbacks */
+ ot->exec = new_node_tree_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ RNA_def_enum(ot->srna, "type", nodetree_type_items, NTREE_COMPOSIT, "Tree Type", "");
+ RNA_def_string(ot->srna, "name", "NodeTree", MAX_ID_NAME - 2, "Name", "");
+}
diff --git a/source/blender/editors/space_node/node_buttons.c b/source/blender/editors/space_node/node_buttons.c
index bc4c391720a..da077d93641 100644
--- a/source/blender/editors/space_node/node_buttons.c
+++ b/source/blender/editors/space_node/node_buttons.c
@@ -28,21 +28,12 @@
* \ingroup spnode
*/
-
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-#include <float.h>
-
#include "MEM_guardedalloc.h"
#include "DNA_node_types.h"
-#include "DNA_scene_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
-#include "BLI_rand.h"
-#include "BLI_utildefines.h"
#include "BLF_translation.h"
@@ -59,10 +50,9 @@
#include "ED_gpencil.h"
#include "ED_screen.h"
-#include "UI_interface.h"
#include "UI_resources.h"
-#include "node_intern.h" // own include
+#include "node_intern.h" /* own include */
/* ******************* node space & buttons ************** */
@@ -70,7 +60,7 @@
/* poll for active nodetree */
static int active_nodetree_poll(const bContext *C, PanelType *UNUSED(pt))
{
- SpaceNode *snode= CTX_wm_space_node(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
return (snode && snode->nodetree);
}
@@ -78,7 +68,7 @@ static int active_nodetree_poll(const bContext *C, PanelType *UNUSED(pt))
/* poll callback for active node */
static int active_node_poll(const bContext *C, PanelType *UNUSED(pt))
{
- SpaceNode *snode= CTX_wm_space_node(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
return (snode && snode->edittree && nodeGetActive(snode->edittree));
}
@@ -86,8 +76,8 @@ static int active_node_poll(const bContext *C, PanelType *UNUSED(pt))
/* active node */
static void active_node_panel(const bContext *C, Panel *pa)
{
- SpaceNode *snode= CTX_wm_space_node(C);
- bNodeTree *ntree= (snode) ? snode->edittree : NULL;
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNodeTree *ntree = (snode) ? snode->edittree : NULL;
bNode *node = (ntree) ? nodeGetActive(ntree) : NULL; // xxx... for editing group nodes
uiLayout *layout, *row, *col, *sub;
PointerRNA ptr, opptr;
@@ -98,7 +88,7 @@ static void active_node_panel(const bContext *C, Panel *pa)
//if (node->id) /* for group nodes */
// RNA_pointer_create(node->id, &RNA_Node, node, &ptr);
//else
- RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr);
+ RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr);
layout = uiLayoutColumn(pa->layout, FALSE);
uiLayoutSetContextPointer(layout, "node", &ptr);
@@ -120,8 +110,8 @@ static void active_node_panel(const bContext *C, Panel *pa)
uiItemR(col, &ptr, "use_custom_color", UI_ITEM_R_ICON_ONLY, NULL, ICON_NONE);
sub = uiLayoutRow(col, FALSE);
if (!(node->flag & NODE_CUSTOM_COLOR))
- uiLayoutSetEnabled(sub, 0);
- uiItemR(sub, &ptr, "color", 0, "", 0);
+ uiLayoutSetEnabled(sub, FALSE);
+ uiItemR(sub, &ptr, "color", 0, "", ICON_NONE);
col = uiLayoutColumn(row, TRUE);
uiItemO(col, "", ICON_ZOOMIN, "node.node_color_preset_add");
@@ -144,24 +134,24 @@ static void active_node_panel(const bContext *C, Panel *pa)
static int node_sockets_poll(const bContext *C, PanelType *UNUSED(pt))
{
- SpaceNode *snode= CTX_wm_space_node(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
- return (snode && snode->nodetree && G.rt == 777);
+ return (snode && snode->nodetree && G.debug_value == 777);
}
static void node_sockets_panel(const bContext *C, Panel *pa)
{
- SpaceNode *snode= CTX_wm_space_node(C);
- bNodeTree *ntree= (snode) ? snode->edittree : NULL;
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNodeTree *ntree = (snode) ? snode->edittree : NULL;
bNode *node = (ntree) ? nodeGetActive(ntree) : NULL;
bNodeSocket *sock;
- uiLayout *layout= pa->layout, *split;
+ uiLayout *layout = pa->layout, *split;
char name[UI_MAX_NAME_STR];
if (ELEM(NULL, ntree, node))
return;
- for (sock=node->inputs.first; sock; sock=sock->next) {
+ for (sock = node->inputs.first; sock; sock = sock->next) {
BLI_snprintf(name, sizeof(name), "%s:", sock->name);
split = uiLayoutSplit(layout, 0.35f, FALSE);
@@ -176,33 +166,33 @@ void node_buttons_register(ARegionType *art)
{
PanelType *pt;
- pt= MEM_callocN(sizeof(PanelType), "spacetype node panel active node");
+ pt = MEM_callocN(sizeof(PanelType), "spacetype node panel active node");
strcpy(pt->idname, "NODE_PT_item");
strcpy(pt->label, IFACE_("Active Node"));
- pt->draw= active_node_panel;
- pt->poll= active_node_poll;
+ pt->draw = active_node_panel;
+ pt->poll = active_node_poll;
BLI_addtail(&art->paneltypes, pt);
- pt= MEM_callocN(sizeof(PanelType), "spacetype node panel node sockets");
+ pt = MEM_callocN(sizeof(PanelType), "spacetype node panel node sockets");
strcpy(pt->idname, "NODE_PT_sockets");
strcpy(pt->label, "Sockets");
- pt->draw= node_sockets_panel;
- pt->poll= node_sockets_poll;
+ pt->draw = node_sockets_panel;
+ pt->poll = node_sockets_poll;
pt->flag |= PNL_DEFAULT_CLOSED;
BLI_addtail(&art->paneltypes, pt);
- pt= MEM_callocN(sizeof(PanelType), "spacetype node panel gpencil");
+ pt = MEM_callocN(sizeof(PanelType), "spacetype node panel gpencil");
strcpy(pt->idname, "NODE_PT_gpencil");
strcpy(pt->label, "Grease Pencil");
- pt->draw= gpencil_panel_standard;
- pt->poll= active_nodetree_poll;
+ pt->draw = gpencil_panel_standard;
+ pt->poll = active_nodetree_poll;
BLI_addtail(&art->paneltypes, pt);
}
static int node_properties(bContext *C, wmOperator *UNUSED(op))
{
- ScrArea *sa= CTX_wm_area(C);
- ARegion *ar= node_has_buttons_region(sa);
+ ScrArea *sa = CTX_wm_area(C);
+ ARegion *ar = node_has_buttons_region(sa);
if (ar)
ED_region_toggle_hidden(C, ar);
@@ -213,7 +203,7 @@ static int node_properties(bContext *C, wmOperator *UNUSED(op))
/* non-standard poll operator which doesn't care if there are any nodes */
static int node_properties_poll(bContext *C)
{
- ScrArea *sa= CTX_wm_area(C);
+ ScrArea *sa = CTX_wm_area(C);
return (sa && (sa->spacetype == SPACE_NODE));
}
diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c
index 65646c855b7..379e9987c4c 100644
--- a/source/blender/editors/space_node/node_draw.c
+++ b/source/blender/editors/space_node/node_draw.c
@@ -26,29 +26,16 @@
/** \file blender/editors/space_node/node_draw.c
* \ingroup spnode
+ * \brief higher level node drawing for the node editor.
*/
-
-#include <math.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "MEM_guardedalloc.h"
-
#include "DNA_node_types.h"
-#include "DNA_lamp_types.h"
-#include "DNA_material_types.h"
#include "DNA_object_types.h"
-#include "DNA_scene_types.h"
#include "DNA_space_types.h"
#include "DNA_screen_types.h"
-#include "DNA_world_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
-#include "BLI_rect.h"
-#include "BLI_threads.h"
-#include "BLI_utildefines.h"
#include "BLF_translation.h"
@@ -67,32 +54,24 @@
#include "ED_gpencil.h"
#include "ED_space_api.h"
-#include "UI_interface.h"
-#include "UI_interface_icons.h"
#include "UI_resources.h"
#include "UI_view2d.h"
#include "RNA_access.h"
-#include "NOD_composite.h"
-#include "NOD_shader.h"
-
-#include "intern/node_util.h"
+#include "node_intern.h" /* own include */
+#include "COM_compositor.h"
-#include "node_intern.h"
-
-/* width of socket columns in group display */
-#define NODE_GROUP_FRAME 120
-// XXX interface.h
-extern void ui_dropshadow(rctf *rct, float radius, float aspect, float alpha, int select);
+/* XXX interface.h */
+extern void ui_dropshadow(const rctf *rct, float radius, float aspect, float alpha, int select);
/* XXX update functions for node editor are a mess, needs a clear concept */
void ED_node_tree_update(SpaceNode *snode, Scene *scene)
{
snode_set_context(snode, scene);
- if (snode->nodetree && snode->nodetree->id.us==0)
- snode->nodetree->id.us= 1;
+ if (snode->nodetree && snode->nodetree->id.us == 0)
+ snode->nodetree->id.us = 1;
}
void ED_node_changed_update(ID *id, bNode *node)
@@ -102,30 +81,30 @@ void ED_node_changed_update(ID *id, bNode *node)
node_tree_from_ID(id, &nodetree, &edittree, &treetype);
- if (treetype==NTREE_SHADER) {
+ if (treetype == NTREE_SHADER) {
DAG_id_tag_update(id, 0);
if (GS(id->name) == ID_MA)
- WM_main_add_notifier(NC_MATERIAL|ND_SHADING_DRAW, id);
+ WM_main_add_notifier(NC_MATERIAL | ND_SHADING_DRAW, id);
else if (GS(id->name) == ID_LA)
- WM_main_add_notifier(NC_LAMP|ND_LIGHTING_DRAW, id);
+ WM_main_add_notifier(NC_LAMP | ND_LIGHTING_DRAW, id);
else if (GS(id->name) == ID_WO)
- WM_main_add_notifier(NC_WORLD|ND_WORLD_DRAW, id);
+ WM_main_add_notifier(NC_WORLD | ND_WORLD_DRAW, id);
}
- else if (treetype==NTREE_COMPOSIT) {
+ else if (treetype == NTREE_COMPOSIT) {
if (node)
nodeUpdate(edittree, node);
/* don't use NodeTagIDChanged, it gives far too many recomposites for image, scene layers, ... */
- node= node_tree_get_editgroup(nodetree);
+ node = node_tree_get_editgroup(nodetree);
if (node)
nodeUpdateID(nodetree, node->id);
- WM_main_add_notifier(NC_SCENE|ND_NODES, id);
+ WM_main_add_notifier(NC_SCENE | ND_NODES, id);
}
- else if (treetype==NTREE_TEXTURE) {
+ else if (treetype == NTREE_TEXTURE) {
DAG_id_tag_update(id, 0);
- WM_main_add_notifier(NC_TEXTURE|ND_NODES, id);
+ WM_main_add_notifier(NC_TEXTURE | ND_NODES, id);
}
}
@@ -136,9 +115,9 @@ static int has_nodetree(bNodeTree *ntree, bNodeTree *lookup)
if (ntree == lookup)
return 1;
- for (node=ntree->nodes.first; node; node=node->next)
+ for (node = ntree->nodes.first; node; node = node->next)
if (node->type == NODE_GROUP && node->id)
- if (has_nodetree((bNodeTree*)node->id, lookup))
+ if (has_nodetree((bNodeTree *)node->id, lookup))
return 1;
return 0;
@@ -150,14 +129,14 @@ typedef struct NodeUpdateCalldata {
} NodeUpdateCalldata;
static void node_generic_update_cb(void *calldata, ID *owner_id, bNodeTree *ntree)
{
- NodeUpdateCalldata *cd= (NodeUpdateCalldata*)calldata;
+ NodeUpdateCalldata *cd = (NodeUpdateCalldata *)calldata;
/* check if nodetree uses the group stored in calldata */
if (has_nodetree(ntree, cd->ntree))
ED_node_changed_update(owner_id, cd->node);
}
void ED_node_generic_update(Main *bmain, bNodeTree *ntree, bNode *node)
{
- bNodeTreeType *tti= ntreeGetType(ntree->type);
+ bNodeTreeType *tti = ntreeGetType(ntree->type);
NodeUpdateCalldata cd;
cd.ntree = ntree;
cd.node = node;
@@ -174,14 +153,14 @@ static int compare_nodes(bNode *a, bNode *b)
/* These tell if either the node or any of the parent nodes is selected.
* A selected parent means an unselected node is also in foreground!
*/
- int a_select=(a->flag & NODE_SELECT), b_select=(b->flag & NODE_SELECT);
- int a_active=(a->flag & NODE_ACTIVE), b_active=(b->flag & NODE_ACTIVE);
+ int a_select = (a->flag & NODE_SELECT), b_select = (b->flag & NODE_SELECT);
+ int a_active = (a->flag & NODE_ACTIVE), b_active = (b->flag & NODE_ACTIVE);
/* if one is an ancestor of the other */
/* XXX there might be a better sorting algorithm for stable topological sort, this is O(n^2) worst case */
- for (parent = a->parent; parent; parent=parent->parent) {
+ for (parent = a->parent; parent; parent = parent->parent) {
/* if b is an ancestor, it is always behind a */
- if (parent==b)
+ if (parent == b)
return 1;
/* any selected ancestor moves the node forward */
if (parent->flag & NODE_ACTIVE)
@@ -189,9 +168,9 @@ static int compare_nodes(bNode *a, bNode *b)
if (parent->flag & NODE_SELECT)
a_select = 1;
}
- for (parent = b->parent; parent; parent=parent->parent) {
+ for (parent = b->parent; parent; parent = parent->parent) {
/* if a is an ancestor, it is always behind b */
- if (parent==a)
+ if (parent == a)
return 0;
/* any selected ancestor moves the node forward */
if (parent->flag & NODE_ACTIVE)
@@ -222,7 +201,7 @@ void ED_node_sort(bNodeTree *ntree)
{
/* merge sort is the algorithm of choice here */
bNode *first_a, *first_b, *node_a, *node_b, *tmp;
- int totnodes= BLI_countlist(&ntree->nodes);
+ int totnodes = BLI_countlist(&ntree->nodes);
int k, a, b;
k = 1;
@@ -231,11 +210,11 @@ void ED_node_sort(bNodeTree *ntree)
do {
/* setup first_b pointer */
- for (b=0; b < k && first_b; ++b) {
+ for (b = 0; b < k && first_b; ++b) {
first_b = first_b->next;
}
/* all batches merged? */
- if (first_b==NULL)
+ if (first_b == NULL)
break;
/* merge batches */
@@ -243,14 +222,14 @@ void ED_node_sort(bNodeTree *ntree)
node_b = first_b;
a = b = 0;
while (a < k && b < k && node_b) {
- if (compare_nodes(node_a, node_b)==0) {
+ if (compare_nodes(node_a, node_b) == 0) {
node_a = node_a->next;
- ++a;
+ a++;
}
else {
tmp = node_b;
node_b = node_b->next;
- ++b;
+ b++;
BLI_remlink(&ntree->nodes, tmp);
BLI_insertlinkbefore(&ntree->nodes, node_a, tmp);
}
@@ -260,7 +239,7 @@ void ED_node_sort(bNodeTree *ntree)
first_b = node_b;
for (; b < k; ++b) {
/* all nodes sorted? */
- if (first_b==NULL)
+ if (first_b == NULL)
break;
first_b = first_b->next;
}
@@ -274,8 +253,8 @@ void ED_node_sort(bNodeTree *ntree)
static void do_node_internal_buttons(bContext *C, void *node_v, int event)
{
- if (event==B_NODE_EXEC) {
- SpaceNode *snode= CTX_wm_space_node(C);
+ if (event == B_NODE_EXEC) {
+ SpaceNode *snode = CTX_wm_space_node(C);
if (snode && snode->id)
ED_node_changed_update(snode->id, node_v);
}
@@ -288,10 +267,10 @@ static void node_uiblocks_init(const bContext *C, bNodeTree *ntree)
/* add node uiBlocks in drawing order - prevents events going to overlapping nodes */
- for (node= ntree->nodes.first; node; node= node->next) {
+ for (node = ntree->nodes.first; node; node = node->next) {
/* ui block */
BLI_snprintf(uiblockstr, sizeof(uiblockstr), "node buttons %p", (void *)node);
- node->block= uiBeginBlock(C, CTX_wm_region(C), uiblockstr, UI_EMBOSS);
+ node->block = uiBeginBlock(C, CTX_wm_region(C), uiblockstr, UI_EMBOSS);
uiBlockSetHandleFunc(node->block, do_node_internal_buttons, node);
/* this cancels events for background nodes */
@@ -311,85 +290,81 @@ static void node_update_basis(const bContext *C, bNodeTree *ntree, bNode *node)
/* get "global" coords */
nodeToView(node, 0.0f, 0.0f, &locx, &locy);
- dy= locy;
+ dy = locy;
/* header */
- dy-= NODE_DY;
+ dy -= NODE_DY;
/* little bit space in top */
if (node->outputs.first)
- dy-= NODE_DYS/2;
+ dy -= NODE_DYS / 2;
/* output sockets */
- for (nsock= node->outputs.first; nsock; nsock= nsock->next) {
+ for (nsock = node->outputs.first; nsock; nsock = nsock->next) {
if (!nodeSocketIsHidden(nsock)) {
- nsock->locx= locx + node->width;
- nsock->locy= dy - NODE_DYS;
- dy-= NODE_DY;
+ nsock->locx = locx + node->width;
+ nsock->locy = dy - NODE_DYS;
+ dy -= NODE_DY;
}
}
node->prvr.xmin = locx + NODE_DYS;
- node->prvr.xmax = locx + node->width- NODE_DYS;
+ node->prvr.xmax = locx + node->width - NODE_DYS;
/* preview rect? */
if (node->flag & NODE_PREVIEW) {
- /* only recalculate size when there's a preview actually, otherwise we use stored result */
- BLI_lock_thread(LOCK_PREVIEW);
-
if (node->preview && node->preview->rect) {
- float aspect= 1.0f;
+ float aspect = 1.0f;
if (node->preview && node->preview->xsize && node->preview->ysize)
- aspect= (float)node->preview->ysize/(float)node->preview->xsize;
+ aspect = (float)node->preview->ysize / (float)node->preview->xsize;
- dy-= NODE_DYS/2;
+ dy -= NODE_DYS / 2;
node->prvr.ymax = dy;
if (aspect <= 1.0f)
- node->prvr.ymin = dy - aspect*(node->width-NODE_DY);
+ node->prvr.ymin = dy - aspect * (node->width - NODE_DY);
else {
- float dx= (node->width - NODE_DYS) - (node->width- NODE_DYS)/aspect; /* width correction of image */
+ /* width correction of image */
+ float dx = (node->width - NODE_DYS) - (node->width - NODE_DYS) / aspect;
- node->prvr.ymin = dy - (node->width-NODE_DY);
+ node->prvr.ymin = dy - (node->width - NODE_DY);
- node->prvr.xmin+= 0.5f*dx;
- node->prvr.xmax-= 0.5f*dx;
+ node->prvr.xmin += 0.5f * dx;
+ node->prvr.xmax -= 0.5f * dx;
}
- dy= node->prvr.ymin - NODE_DYS/2;
+ dy = node->prvr.ymin - NODE_DYS / 2;
/* make sure that maximums are bigger or equal to minimums */
if (node->prvr.xmax < node->prvr.xmin) SWAP(float, node->prvr.xmax, node->prvr.xmin);
if (node->prvr.ymax < node->prvr.ymin) SWAP(float, node->prvr.ymax, node->prvr.ymin);
}
else {
- float oldh= node->prvr.ymax - node->prvr.ymin;
- if (oldh==0.0f)
- oldh= 0.6f*node->width-NODE_DY;
- dy-= NODE_DYS/2;
+ float oldh = BLI_rctf_size_y(&node->prvr);
+ if (oldh == 0.0f)
+ oldh = 0.6f * node->width - NODE_DY;
+ dy -= NODE_DYS / 2;
node->prvr.ymax = dy;
node->prvr.ymin = dy - oldh;
- dy= node->prvr.ymin - NODE_DYS/2;
+ dy = node->prvr.ymin - NODE_DYS / 2;
}
-
- BLI_unlock_thread(LOCK_PREVIEW);
}
/* buttons rect? */
if ((node->flag & NODE_OPTIONS) && node->typeinfo->uifunc) {
- dy-= NODE_DYS/2;
+ dy -= NODE_DYS / 2;
/* set this for uifunc() that don't use layout engine yet */
node->butr.xmin = 0;
- node->butr.xmax = node->width - 2*NODE_DYS;
+ node->butr.xmax = node->width - 2 * NODE_DYS;
node->butr.ymin = 0;
node->butr.ymax = 0;
RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr);
- layout= uiBlockLayout(node->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL,
- locx+NODE_DYS, dy, node->butr.xmax, NODE_DY, UI_GetStyle());
+ layout = uiBlockLayout(node->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL,
+ locx + NODE_DYS, dy, node->butr.xmax, NODE_DY, UI_GetStyle());
uiLayoutSetContextPointer(layout, "node", &ptr);
node->typeinfo->uifunc(layout, (bContext *)C, &ptr);
@@ -397,35 +372,35 @@ static void node_update_basis(const bContext *C, bNodeTree *ntree, bNode *node)
uiBlockEndAlign(node->block);
uiBlockLayoutResolve(node->block, NULL, &buty);
- dy= buty - NODE_DYS/2;
+ dy = buty - NODE_DYS / 2;
}
/* input sockets */
- for (nsock= node->inputs.first; nsock; nsock= nsock->next) {
+ for (nsock = node->inputs.first; nsock; nsock = nsock->next) {
if (!nodeSocketIsHidden(nsock)) {
- nsock->locx= locx;
- nsock->locy= dy - NODE_DYS;
- dy-= NODE_DY;
+ nsock->locx = locx;
+ nsock->locy = dy - NODE_DYS;
+ dy -= NODE_DY;
}
}
/* little bit space in end */
- if (node->inputs.first || (node->flag & (NODE_OPTIONS|NODE_PREVIEW))==0 )
- dy-= NODE_DYS/2;
+ if (node->inputs.first || (node->flag & (NODE_OPTIONS | NODE_PREVIEW)) == 0)
+ dy -= NODE_DYS / 2;
node->totr.xmin = locx;
node->totr.xmax = locx + node->width;
node->totr.ymax = locy;
- node->totr.ymin = MIN2(dy, locy-2*NODE_DY);
+ node->totr.ymin = minf(dy, locy - 2 * NODE_DY);
/* Set the block bounds to clip mouse events from underlying nodes.
* Add a margin for sockets on each side.
*/
uiExplicitBoundsBlock(node->block,
- node->totr.xmin - NODE_SOCKSIZE,
- node->totr.ymin,
- node->totr.xmax + NODE_SOCKSIZE,
- node->totr.ymax);
+ node->totr.xmin - NODE_SOCKSIZE,
+ node->totr.ymin,
+ node->totr.xmax + NODE_SOCKSIZE,
+ node->totr.ymax);
}
/* based on settings in node, sets drawing rect info. each redraw! */
@@ -433,49 +408,49 @@ static void node_update_hidden(bNode *node)
{
bNodeSocket *nsock;
float locx, locy;
- float rad, drad, hiddenrad= HIDDEN_RAD;
- int totin=0, totout=0, tot;
+ float rad, drad, hiddenrad = HIDDEN_RAD;
+ int totin = 0, totout = 0, tot;
/* get "global" coords */
nodeToView(node, 0.0f, 0.0f, &locx, &locy);
/* calculate minimal radius */
- for (nsock= node->inputs.first; nsock; nsock= nsock->next)
+ for (nsock = node->inputs.first; nsock; nsock = nsock->next)
if (!nodeSocketIsHidden(nsock))
totin++;
- for (nsock= node->outputs.first; nsock; nsock= nsock->next)
+ for (nsock = node->outputs.first; nsock; nsock = nsock->next)
if (!nodeSocketIsHidden(nsock))
totout++;
- tot= MAX2(totin, totout);
- if (tot>4) {
- hiddenrad += 5.0f*(float)(tot-4);
+ tot = MAX2(totin, totout);
+ if (tot > 4) {
+ hiddenrad += 5.0f * (float)(tot - 4);
}
node->totr.xmin = locx;
- node->totr.xmax = locx + 3*hiddenrad + node->miniwidth;
- node->totr.ymax = locy + (hiddenrad - 0.5f*NODE_DY);
- node->totr.ymin = node->totr.ymax - 2*hiddenrad;
+ node->totr.xmax = locx + 3 * hiddenrad + node->miniwidth;
+ node->totr.ymax = locy + (hiddenrad - 0.5f * NODE_DY);
+ node->totr.ymin = node->totr.ymax - 2 * hiddenrad;
/* output sockets */
- rad=drad= (float)M_PI/(1.0f + (float)totout);
+ rad = drad = (float)M_PI / (1.0f + (float)totout);
- for (nsock= node->outputs.first; nsock; nsock= nsock->next) {
+ for (nsock = node->outputs.first; nsock; nsock = nsock->next) {
if (!nodeSocketIsHidden(nsock)) {
- nsock->locx= node->totr.xmax - hiddenrad + (float)sin(rad)*hiddenrad;
- nsock->locy= node->totr.ymin + hiddenrad + (float)cos(rad)*hiddenrad;
- rad+= drad;
+ nsock->locx = node->totr.xmax - hiddenrad + (float)sin(rad) * hiddenrad;
+ nsock->locy = node->totr.ymin + hiddenrad + (float)cos(rad) * hiddenrad;
+ rad += drad;
}
}
/* input sockets */
- rad=drad= - (float)M_PI/(1.0f + (float)totin);
+ rad = drad = -(float)M_PI / (1.0f + (float)totin);
- for (nsock= node->inputs.first; nsock; nsock= nsock->next) {
+ for (nsock = node->inputs.first; nsock; nsock = nsock->next) {
if (!nodeSocketIsHidden(nsock)) {
- nsock->locx= node->totr.xmin + hiddenrad + (float)sin(rad)*hiddenrad;
- nsock->locy= node->totr.ymin + hiddenrad + (float)cos(rad)*hiddenrad;
- rad+= drad;
+ nsock->locx = node->totr.xmin + hiddenrad + (float)sin(rad) * hiddenrad;
+ nsock->locy = node->totr.ymin + hiddenrad + (float)cos(rad) * hiddenrad;
+ rad += drad;
}
}
@@ -483,10 +458,10 @@ static void node_update_hidden(bNode *node)
* Add a margin for sockets on each side.
*/
uiExplicitBoundsBlock(node->block,
- node->totr.xmin - NODE_SOCKSIZE,
- node->totr.ymin,
- node->totr.xmax + NODE_SOCKSIZE,
- node->totr.ymax);
+ node->totr.xmin - NODE_SOCKSIZE,
+ node->totr.ymin,
+ node->totr.xmax + NODE_SOCKSIZE,
+ node->totr.ymax);
}
void node_update_default(const bContext *C, bNodeTree *ntree, bNode *node)
@@ -499,29 +474,29 @@ void node_update_default(const bContext *C, bNodeTree *ntree, bNode *node)
int node_select_area_default(bNode *node, int x, int y)
{
- return BLI_in_rctf(&node->totr, x, y);
+ return BLI_rctf_isect_pt(&node->totr, x, y);
}
int node_tweak_area_default(bNode *node, int x, int y)
{
- return BLI_in_rctf(&node->totr, x, y);
+ return BLI_rctf_isect_pt(&node->totr, x, y);
}
int node_get_colorid(bNode *node)
{
- if (node->typeinfo->nclass==NODE_CLASS_INPUT)
+ if (node->typeinfo->nclass == NODE_CLASS_INPUT)
return TH_NODE_IN_OUT;
- if (node->typeinfo->nclass==NODE_CLASS_OUTPUT) {
+ if (node->typeinfo->nclass == NODE_CLASS_OUTPUT) {
if (node->flag & NODE_DO_OUTPUT)
return TH_NODE_IN_OUT;
else
return TH_NODE;
}
- if (node->typeinfo->nclass==NODE_CLASS_CONVERTOR)
+ if (node->typeinfo->nclass == NODE_CLASS_CONVERTOR)
return TH_NODE_CONVERTOR;
if (ELEM3(node->typeinfo->nclass, NODE_CLASS_OP_COLOR, NODE_CLASS_OP_VECTOR, NODE_CLASS_OP_FILTER))
return TH_NODE_OPERATOR;
- if (node->typeinfo->nclass==NODE_CLASS_GROUP)
+ if (node->typeinfo->nclass == NODE_CLASS_GROUP)
return TH_NODE_GROUP;
return TH_NODE;
}
@@ -563,7 +538,7 @@ static void node_circle_draw(float x, float y, float size, char *col, int highli
-0.98846832f, -0.84864425f, -0.57126821f, -0.20129852f
};
/* 16 values of cos function */
- static float co[16] ={
+ static float co[16] = {
1.00000000f, 0.91895781f, 0.68896691f, 0.34730525f,
-0.05064916f, -0.44039415f, -0.75875812f, -0.95413925f,
-0.99486932f, -0.87434661f, -0.61210598f, -0.25065253f,
@@ -574,8 +549,8 @@ static void node_circle_draw(float x, float y, float size, char *col, int highli
glColor3ub(col[0], col[1], col[2]);
glBegin(GL_POLYGON);
- for (a=0; a<16; a++)
- glVertex2f(x+size*si[a], y+size*co[a]);
+ for (a = 0; a < 16; a++)
+ glVertex2f(x + size * si[a], y + size * co[a]);
glEnd();
if (highlight) {
@@ -588,8 +563,8 @@ static void node_circle_draw(float x, float y, float size, char *col, int highli
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
glBegin(GL_LINE_LOOP);
- for (a=0; a<16; a++)
- glVertex2f(x+size*si[a], y+size*co[a]);
+ for (a = 0; a < 16; a++)
+ glVertex2f(x + size * si[a], y + size * co[a]);
glEnd();
glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
@@ -607,9 +582,9 @@ void node_socket_circle_draw(bNodeTree *UNUSED(ntree), bNodeSocket *sock, float
/* not a callback */
static void node_draw_preview(bNodePreview *preview, rctf *prv)
{
- float xscale= (prv->xmax-prv->xmin)/((float)preview->xsize);
- float yscale= (prv->ymax-prv->ymin)/((float)preview->ysize);
- float tile= (prv->xmax - prv->xmin) / 10.0f;
+ float xscale = BLI_rctf_size_x(prv) / ((float)preview->xsize);
+ float yscale = BLI_rctf_size_y(prv) / ((float)preview->ysize);
+ float tile = BLI_rctf_size_x(prv) / 10.0f;
float x, y;
/* draw checkerboard backdrop to show alpha */
@@ -617,26 +592,26 @@ static void node_draw_preview(bNodePreview *preview, rctf *prv)
glRectf(prv->xmin, prv->ymin, prv->xmax, prv->ymax);
glColor3ub(160, 160, 160);
- for (y=prv->ymin; y<prv->ymax; y+=tile*2) {
- for (x=prv->xmin; x<prv->xmax; x+=tile*2) {
- float tilex= tile, tiley= tile;
+ for (y = prv->ymin; y < prv->ymax; y += tile * 2) {
+ for (x = prv->xmin; x < prv->xmax; x += tile * 2) {
+ float tilex = tile, tiley = tile;
- if (x+tile > prv->xmax)
- tilex= prv->xmax-x;
- if (y+tile > prv->ymax)
- tiley= prv->ymax-y;
+ if (x + tile > prv->xmax)
+ tilex = prv->xmax - x;
+ if (y + tile > prv->ymax)
+ tiley = prv->ymax - y;
glRectf(x, y, x + tilex, y + tiley);
}
}
- for (y=prv->ymin+tile; y<prv->ymax; y+=tile*2) {
- for (x=prv->xmin+tile; x<prv->xmax; x+=tile*2) {
- float tilex= tile, tiley= tile;
+ for (y = prv->ymin + tile; y < prv->ymax; y += tile * 2) {
+ for (x = prv->xmin + tile; x < prv->xmax; x += tile * 2) {
+ float tilex = tile, tiley = tile;
- if (x+tile > prv->xmax)
- tilex= prv->xmax-x;
- if (y+tile > prv->ymax)
- tiley= prv->ymax-y;
+ if (x + tile > prv->xmax)
+ tilex = prv->xmax - x;
+ if (y + tile > prv->ymax)
+ tiley = prv->ymax - y;
glRectf(x, y, x + tilex, y + tiley);
}
@@ -661,7 +636,7 @@ static void node_draw_preview(bNodePreview *preview, rctf *prv)
/* common handle function for operator buttons that need to select the node first */
static void node_toggle_button_cb(struct bContext *C, void *node_argv, void *op_argv)
{
- bNode *node = (bNode*)node_argv;
+ bNode *node = (bNode *)node_argv;
const char *opname = (const char *)op_argv;
/* select & activate only the button's node */
@@ -675,15 +650,15 @@ void node_draw_shadow(SpaceNode *snode, bNode *node, float radius, float alpha)
rctf *rct = &node->totr;
uiSetRoundBox(UI_CNR_ALL);
- if (node->parent==NULL)
+ if (node->parent == NULL)
ui_dropshadow(rct, radius, snode->aspect, alpha, node->flag & SELECT);
else {
const float margin = 3.0f;
glColor4f(0.0f, 0.0f, 0.0f, 0.33f);
glEnable(GL_BLEND);
- uiRoundBox(rct->xmin-margin, rct->ymin-margin,
- rct->xmax+margin, rct->ymax+margin, radius+margin);
+ uiRoundBox(rct->xmin - margin, rct->ymin - margin,
+ rct->xmax + margin, rct->ymax + margin, radius + margin);
glDisable(GL_BLEND);
}
}
@@ -691,24 +666,22 @@ void node_draw_shadow(SpaceNode *snode, bNode *node, float radius, float alpha)
static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *node)
{
bNodeSocket *sock;
- rctf *rct= &node->totr;
+ rctf *rct = &node->totr;
float iconofs;
/* float socket_size= NODE_SOCKSIZE*U.dpi/72; */ /* UNUSED */
- float iconbutw= 0.8f*UI_UNIT_X;
- int color_id= node_get_colorid(node);
+ float iconbutw = 0.8f * UI_UNIT_X;
+ int color_id = node_get_colorid(node);
char showname[128]; /* 128 used below */
View2D *v2d = &ar->v2d;
/* hurmf... another candidate for callback, have to see how this works first */
- if (node->id && node->block && snode->treetype==NTREE_SHADER)
+ if (node->id && node->block && snode->treetype == NTREE_SHADER)
nodeShaderSynchronizeID(node, 0);
/* skip if out of view */
- if (node->totr.xmax < ar->v2d.cur.xmin || node->totr.xmin > ar->v2d.cur.xmax ||
- node->totr.ymax < ar->v2d.cur.ymin || node->totr.ymin > ar->v2d.cur.ymax) {
-
+ if (BLI_rctf_isect(&node->totr, &ar->v2d.cur, NULL) == FALSE) {
uiEndBlock(C, node->block);
- node->block= NULL;
+ node->block = NULL;
return;
}
@@ -716,7 +689,7 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
node_draw_shadow(snode, node, BASIS_RAD, 1.0f);
/* header */
- if (color_id==TH_NODE)
+ if (color_id == TH_NODE)
UI_ThemeColorShade(color_id, -20);
else
UI_ThemeColor(color_id);
@@ -724,26 +697,28 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
if (node->flag & NODE_MUTED)
UI_ThemeColorBlend(color_id, TH_REDALERT, 0.5f);
- if (ntree->type == NTREE_COMPOSIT && (snode->flag&SNODE_SHOW_HIGHLIGHT)) {
- if (node->highlight) {
+#ifdef WITH_COMPOSITOR
+ if (ntree->type == NTREE_COMPOSIT && (snode->flag & SNODE_SHOW_HIGHLIGHT)) {
+ if (COM_isHighlightedbNode(node)) {
UI_ThemeColorBlend(color_id, TH_ACTIVE, 0.5f);
- node->highlight = 0;
}
}
+#endif
+
uiSetRoundBox(UI_CNR_TOP_LEFT | UI_CNR_TOP_RIGHT);
- uiRoundBox(rct->xmin, rct->ymax-NODE_DY, rct->xmax, rct->ymax, BASIS_RAD);
+ uiRoundBox(rct->xmin, rct->ymax - NODE_DY, rct->xmax, rct->ymax, BASIS_RAD);
/* show/hide icons */
- iconofs= rct->xmax - 7.0f;
+ iconofs = rct->xmax - 7.0f;
/* preview */
if (node->typeinfo->flag & NODE_PREVIEW) {
uiBut *but;
- iconofs-=iconbutw;
+ iconofs -= iconbutw;
uiBlockSetEmboss(node->block, UI_EMBOSSN);
but = uiDefIconBut(node->block, TOGBUT, B_REDR, ICON_MATERIAL,
- iconofs, rct->ymax-NODE_DY, iconbutw, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
- uiButSetFunc(but, node_toggle_button_cb, node, (void*)"NODE_OT_preview_toggle");
+ iconofs, rct->ymax - NODE_DY, iconbutw, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
+ uiButSetFunc(but, node_toggle_button_cb, node, (void *)"NODE_OT_preview_toggle");
/* XXX this does not work when node is activated and the operator called right afterwards,
* since active ID is not updated yet (needs to process the notifier).
* This can only work as visual indicator!
@@ -755,11 +730,11 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
/* group edit */
if (node->type == NODE_GROUP) {
uiBut *but;
- iconofs-=iconbutw;
+ iconofs -= iconbutw;
uiBlockSetEmboss(node->block, UI_EMBOSSN);
but = uiDefIconBut(node->block, TOGBUT, B_REDR, ICON_NODETREE,
- iconofs, rct->ymax-NODE_DY, iconbutw, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
- uiButSetFunc(but, node_toggle_button_cb, node, (void*)"NODE_OT_group_edit");
+ iconofs, rct->ymax - NODE_DY, iconbutw, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
+ uiButSetFunc(but, node_toggle_button_cb, node, (void *)"NODE_OT_group_edit");
uiBlockSetEmboss(node->block, UI_EMBOSS);
}
@@ -772,16 +747,17 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
/* open/close entirely? */
{
uiBut *but;
- int but_size = UI_UNIT_X *0.6f;
+ int but_size = UI_UNIT_X * 0.6f;
/* XXX button uses a custom triangle draw below, so make it invisible without icon */
uiBlockSetEmboss(node->block, UI_EMBOSSN);
but = uiDefBut(node->block, TOGBUT, B_REDR, "",
- rct->xmin+10.0f-but_size/2, rct->ymax-NODE_DY/2.0f-but_size/2, but_size, but_size, NULL, 0, 0, 0, 0, "");
- uiButSetFunc(but, node_toggle_button_cb, node, (void*)"NODE_OT_hide_toggle");
+ rct->xmin + 10.0f - but_size / 2, rct->ymax - NODE_DY / 2.0f - but_size / 2,
+ but_size, but_size, NULL, 0, 0, 0, 0, "");
+ uiButSetFunc(but, node_toggle_button_cb, node, (void *)"NODE_OT_hide_toggle");
uiBlockSetEmboss(node->block, UI_EMBOSS);
/* custom draw function for this button */
- UI_DrawTriIcon(rct->xmin+10.0f, rct->ymax-NODE_DY/2.0f, 'v');
+ UI_DrawTriIcon(rct->xmin + 10.0f, rct->ymax - NODE_DY / 2.0f, 'v');
}
/* this isn't doing anything for the label, so commenting out */
@@ -795,10 +771,12 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
BLI_strncpy(showname, nodeLabel(node), sizeof(showname));
//if (node->flag & NODE_MUTED)
- // BLI_snprintf(showname, sizeof(showname), "[%s]", showname); // XXX - don't print into self!
+ // BLI_snprintf(showname, sizeof(showname), "[%s]", showname); /* XXX - don't print into self! */
- uiDefBut(node->block, LABEL, 0, showname, (short)(rct->xmin+15), (short)(rct->ymax-NODE_DY),
- (int)(iconofs - rct->xmin-18.0f), NODE_DY, NULL, 0, 0, 0, 0, "");
+ uiDefBut(node->block, LABEL, 0, showname,
+ (int)(rct->xmin + (NODE_MARGIN_X / snode->aspect_sqrt)), (int)(rct->ymax - NODE_DY),
+ (short)(iconofs - rct->xmin - 18.0f), (short)NODE_DY,
+ NULL, 0, 0, 0, 0, "");
/* body */
if (node->flag & NODE_CUSTOM_COLOR)
@@ -807,11 +785,11 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
UI_ThemeColor4(TH_NODE);
glEnable(GL_BLEND);
uiSetRoundBox(UI_CNR_BOTTOM_LEFT | UI_CNR_BOTTOM_RIGHT);
- uiRoundBox(rct->xmin, rct->ymin, rct->xmax, rct->ymax-NODE_DY, BASIS_RAD);
+ uiRoundBox(rct->xmin, rct->ymin, rct->xmax, rct->ymax - NODE_DY, BASIS_RAD);
glDisable(GL_BLEND);
/* outline active and selected emphasis */
- if ( node->flag & (NODE_ACTIVE|SELECT)) {
+ if (node->flag & SELECT) {
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
@@ -832,51 +810,51 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
/* socket inputs, buttons */
- for (sock= node->inputs.first; sock; sock= sock->next) {
+ for (sock = node->inputs.first; sock; sock = sock->next) {
if (nodeSocketIsHidden(sock))
continue;
node_socket_circle_draw(ntree, sock, NODE_SOCKSIZE, sock->flag & SELECT);
node->typeinfo->drawinputfunc(C, node->block, ntree, node, sock, IFACE_(sock->name),
- sock->locx+NODE_DYS, sock->locy-NODE_DYS, node->width-NODE_DY);
+ sock->locx + (NODE_DYS / snode->aspect_sqrt), sock->locy - NODE_DYS,
+ node->width - NODE_DY);
}
/* socket outputs */
- for (sock= node->outputs.first; sock; sock= sock->next) {
+ for (sock = node->outputs.first; sock; sock = sock->next) {
if (nodeSocketIsHidden(sock))
continue;
node_socket_circle_draw(ntree, sock, NODE_SOCKSIZE, sock->flag & SELECT);
node->typeinfo->drawoutputfunc(C, node->block, ntree, node, sock, IFACE_(sock->name),
- sock->locx-node->width+NODE_DYS, sock->locy-NODE_DYS, node->width-NODE_DY);
+ sock->locx - node->width + (NODE_DYS / snode->aspect_sqrt), sock->locy - NODE_DYS,
+ node->width - NODE_DY);
}
/* preview */
if (node->flag & NODE_PREVIEW) {
- BLI_lock_thread(LOCK_PREVIEW);
if (node->preview && node->preview->rect && !BLI_rctf_is_empty(&node->prvr))
node_draw_preview(node->preview, &node->prvr);
- BLI_unlock_thread(LOCK_PREVIEW);
}
UI_ThemeClearColor(color_id);
uiEndBlock(C, node->block);
uiDrawBlock(C, node->block);
- node->block= NULL;
+ node->block = NULL;
}
static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *node)
{
bNodeSocket *sock;
- rctf *rct= &node->totr;
- float dx, centy= 0.5f*(rct->ymax+rct->ymin);
- float hiddenrad= 0.5f*(rct->ymax-rct->ymin);
- float socket_size= NODE_SOCKSIZE*U.dpi/72;
- int color_id= node_get_colorid(node);
- char showname[128]; /* 128 is used below */
+ rctf *rct = &node->totr;
+ float dx, centy = BLI_rctf_cent_y(rct);
+ float hiddenrad = BLI_rctf_size_y(rct) / 2.0f;
+ float socket_size = NODE_SOCKSIZE * U.dpi / 72;
+ int color_id = node_get_colorid(node);
+ char showname[128]; /* 128 is used below */
/* shadow */
node_draw_shadow(snode, node, hiddenrad, 1.0f);
@@ -886,17 +864,20 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b
if (node->flag & NODE_MUTED)
UI_ThemeColorBlend(color_id, TH_REDALERT, 0.5f);
- if (ntree->type == NTREE_COMPOSIT && (snode->flag&SNODE_SHOW_HIGHLIGHT)) {
- if (node->highlight) {
+#ifdef WITH_COMPOSITOR
+ if (ntree->type == NTREE_COMPOSIT && (snode->flag & SNODE_SHOW_HIGHLIGHT)) {
+ if (COM_isHighlightedbNode(node)) {
UI_ThemeColorBlend(color_id, TH_ACTIVE, 0.5f);
- node->highlight = 0;
}
}
+#else
+ (void)ntree;
+#endif
uiRoundBox(rct->xmin, rct->ymin, rct->xmax, rct->ymax, hiddenrad);
/* outline active and selected emphasis */
- if ( node->flag & (NODE_ACTIVE|SELECT)) {
+ if (node->flag & SELECT) {
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
@@ -919,16 +900,17 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b
/* open entirely icon */
{
uiBut *but;
- int but_size = UI_UNIT_X *0.6f;
+ int but_size = UI_UNIT_X * 0.6f;
/* XXX button uses a custom triangle draw below, so make it invisible without icon */
uiBlockSetEmboss(node->block, UI_EMBOSSN);
but = uiDefBut(node->block, TOGBUT, B_REDR, "",
- rct->xmin+10.0f-but_size/2, centy-but_size/2, but_size, but_size, NULL, 0, 0, 0, 0, "");
- uiButSetFunc(but, node_toggle_button_cb, node, (void*)"NODE_OT_hide_toggle");
+ rct->xmin + 10.0f - but_size / 2, centy - but_size / 2,
+ but_size, but_size, NULL, 0, 0, 0, 0, "");
+ uiButSetFunc(but, node_toggle_button_cb, node, (void *)"NODE_OT_hide_toggle");
uiBlockSetEmboss(node->block, UI_EMBOSS);
/* custom draw function for this button */
- UI_DrawTriIcon(rct->xmin+10.0f, centy, 'h');
+ UI_DrawTriIcon(rct->xmin + 10.0f, centy, 'h');
}
/* disable lines */
@@ -940,50 +922,52 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b
else
UI_ThemeColor(TH_TEXT);
- if (node->miniwidth>0.0f) {
+ if (node->miniwidth > 0.0f) {
BLI_strncpy(showname, nodeLabel(node), sizeof(showname));
//if (node->flag & NODE_MUTED)
- // BLI_snprintf(showname, sizeof(showname), "[%s]", showname); // XXX - don't print into self!
+ // BLI_snprintf(showname, sizeof(showname), "[%s]", showname); /* XXX - don't print into self! */
- uiDefBut(node->block, LABEL, 0, showname, (short)(rct->xmin+15), (short)(centy-10),
- (int)(rct->xmax - rct->xmin-18.0f -12.0f), NODE_DY, NULL, 0, 0, 0, 0, "");
+ uiDefBut(node->block, LABEL, 0, showname,
+ (int)(rct->xmin + (NODE_MARGIN_X / snode->aspect_sqrt)), (int)(centy - 10),
+ (short)(BLI_rctf_size_x(rct) - 18.0f - 12.0f), (short)NODE_DY,
+ NULL, 0, 0, 0, 0, "");
}
/* scale widget thing */
- UI_ThemeColorShade(color_id, -10);
- dx= 10.0f;
- fdrawline(rct->xmax-dx, centy-4.0f, rct->xmax-dx, centy+4.0f);
- fdrawline(rct->xmax-dx-3.0f*snode->aspect, centy-4.0f, rct->xmax-dx-3.0f*snode->aspect, centy+4.0f);
+ UI_ThemeColorShade(color_id, -10);
+ dx = 10.0f;
+ fdrawline(rct->xmax - dx, centy - 4.0f, rct->xmax - dx, centy + 4.0f);
+ fdrawline(rct->xmax - dx - 3.0f * snode->aspect, centy - 4.0f, rct->xmax - dx - 3.0f * snode->aspect, centy + 4.0f);
UI_ThemeColorShade(color_id, +30);
- dx-= snode->aspect;
- fdrawline(rct->xmax-dx, centy-4.0f, rct->xmax-dx, centy+4.0f);
- fdrawline(rct->xmax-dx-3.0f*snode->aspect, centy-4.0f, rct->xmax-dx-3.0f*snode->aspect, centy+4.0f);
+ dx -= snode->aspect;
+ fdrawline(rct->xmax - dx, centy - 4.0f, rct->xmax - dx, centy + 4.0f);
+ fdrawline(rct->xmax - dx - 3.0f * snode->aspect, centy - 4.0f, rct->xmax - dx - 3.0f * snode->aspect, centy + 4.0f);
/* sockets */
- for (sock= node->inputs.first; sock; sock= sock->next) {
+ for (sock = node->inputs.first; sock; sock = sock->next) {
if (!nodeSocketIsHidden(sock))
node_socket_circle_draw(snode->nodetree, sock, socket_size, sock->flag & SELECT);
}
- for (sock= node->outputs.first; sock; sock= sock->next) {
+ for (sock = node->outputs.first; sock; sock = sock->next) {
if (!nodeSocketIsHidden(sock))
node_socket_circle_draw(snode->nodetree, sock, socket_size, sock->flag & SELECT);
}
uiEndBlock(C, node->block);
uiDrawBlock(C, node->block);
- node->block= NULL;
+ node->block = NULL;
}
int node_get_resize_cursor(int directions)
{
- if (directions==0)
+ if (directions == 0)
return CURSOR_STD;
- else if ((directions & ~(NODE_RESIZE_TOP|NODE_RESIZE_BOTTOM))==0)
+ else if ((directions & ~(NODE_RESIZE_TOP | NODE_RESIZE_BOTTOM)) == 0)
return CURSOR_Y_MOVE;
- else if ((directions & ~(NODE_RESIZE_RIGHT|NODE_RESIZE_LEFT))==0)
+ else if ((directions & ~(NODE_RESIZE_RIGHT | NODE_RESIZE_LEFT)) == 0)
return CURSOR_X_MOVE;
else
return CURSOR_EDIT;
@@ -997,17 +981,17 @@ void node_set_cursor(wmWindow *win, SpaceNode *snode)
int cursor = CURSOR_STD;
if (ntree) {
- if (node_find_indicated_socket(snode, &node, &sock, SOCK_IN|SOCK_OUT)) {
+ if (node_find_indicated_socket(snode, &node, &sock, SOCK_IN | SOCK_OUT)) {
/* pass */
}
else {
/* check nodes front to back */
- for (node=ntree->nodes.last; node; node=node->prev) {
- if (BLI_in_rctf(&node->totr, snode->mx, snode->my))
- break; /* first hit on node stops */
+ for (node = ntree->nodes.last; node; node = node->prev) {
+ if (BLI_rctf_isect_pt(&node->totr, snode->cursor[0], snode->cursor[1]))
+ break; /* first hit on node stops */
}
if (node) {
- int dir = node->typeinfo->resize_area_func(node, snode->mx, snode->my);
+ int dir = node->typeinfo->resize_area_func(node, snode->cursor[0], snode->cursor[1]);
cursor = node_get_resize_cursor(dir);
}
}
@@ -1035,7 +1019,7 @@ void node_update_nodetree(const bContext *C, bNodeTree *ntree, float offsetx, fl
bNode *node;
/* update nodes front to back, so children sizes get updated before parents */
- for (node= ntree->nodes.last; node; node= node->prev) {
+ for (node = ntree->nodes.last; node; node = node->prev) {
/* XXX little hack */
node->locx += offsetx;
node->locy += offsety;
@@ -1053,35 +1037,50 @@ static void node_draw(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTre
node->typeinfo->drawfunc(C, ar, snode, ntree, node);
}
+#define USE_DRAW_TOT_UPDATE
+
void node_draw_nodetree(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree)
{
bNode *node;
bNodeLink *link;
int a;
- if (ntree==NULL) return; /* groups... */
-
+ if (ntree == NULL) return; /* groups... */
+
+#ifdef USE_DRAW_TOT_UPDATE
+ if (ntree->nodes.first) {
+ BLI_rctf_init_minmax(&ar->v2d.tot);
+ }
+#endif
+
/* draw background nodes, last nodes in front */
- for (a=0, node= ntree->nodes.first; node; node=node->next, a++) {
+ for (a = 0, node = ntree->nodes.first; node; node = node->next, a++) {
+
+#ifdef USE_DRAW_TOT_UPDATE
+ /* unrelated to background nodes, update the v2d->tot,
+ * can be anywhere before we draw the scroll bars */
+ BLI_rctf_union(&ar->v2d.tot, &node->totr);
+#endif
+
if (!(node->flag & NODE_BACKGROUND))
continue;
- node->nr= a; /* index of node in list, used for exec event code */
+ node->nr = a; /* index of node in list, used for exec event code */
node_draw(C, ar, snode, ntree, node);
}
/* node lines */
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
- for (link= ntree->links.first; link; link= link->next)
+ for (link = ntree->links.first; link; link = link->next)
node_draw_link(&ar->v2d, snode, link);
glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
/* draw foreground nodes, last nodes in front */
- for (a=0, node= ntree->nodes.first; node; node=node->next, a++) {
+ for (a = 0, node = ntree->nodes.first; node; node = node->next, a++) {
if (node->flag & NODE_BACKGROUND)
continue;
- node->nr= a; /* index of node in list, used for exec event code */
+ node->nr = a; /* index of node in list, used for exec event code */
node_draw(C, ar, snode, ntree, node);
}
}
@@ -1089,9 +1088,7 @@ void node_draw_nodetree(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeT
void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
{
View2DScrollers *scrollers;
- SpaceNode *snode= CTX_wm_space_node(C);
- Scene *scene= CTX_data_scene(C);
- int color_manage = scene->r.color_mgt_flag & R_COLOR_MANAGEMENT;
+ SpaceNode *snode = CTX_wm_space_node(C);
bNodeLinkDrag *nldrag;
LinkData *linkdata;
@@ -1109,37 +1106,46 @@ void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
glEnable(GL_MAP1_VERTEX_3);
/* aspect+font, set each time */
- snode->aspect= (v2d->cur.xmax - v2d->cur.xmin)/((float)ar->winx);
+ snode->aspect = BLI_rctf_size_x(&v2d->cur) / (float)ar->winx;
+ snode->aspect_sqrt = sqrtf(snode->aspect);
// XXX snode->curfont= uiSetCurFont_ext(snode->aspect);
/* grid */
UI_view2d_multi_grid_draw(v2d, 25.0f, 5, 2);
/* backdrop */
- draw_nodespace_back_pix(ar, snode, color_manage);
+ draw_nodespace_back_pix(C, ar, snode);
/* nodes */
snode_set_context(snode, CTX_data_scene(C));
if (snode->nodetree) {
bNode *node;
+ /* void** highlights = 0; */ /* UNUSED */
node_uiblocks_init(C, snode->nodetree);
/* uiBlocks must be initialized in drawing order for correct event clipping.
* Node group internal blocks added after the main group block.
*/
- for (node= snode->nodetree->nodes.first; node; node= node->next) {
+ for (node = snode->nodetree->nodes.first; node; node = node->next) {
if (node->flag & NODE_GROUP_EDIT)
node_uiblocks_init(C, (bNodeTree *)node->id);
}
node_update_nodetree(C, snode->nodetree, 0.0f, 0.0f);
+
+#ifdef WITH_COMPOSITOR
+ if (snode->nodetree->type == NTREE_COMPOSIT) {
+ COM_startReadHighlights();
+ }
+#endif
+
node_draw_nodetree(C, ar, snode, snode->nodetree);
#if 0
/* active group */
- for (node= snode->nodetree->nodes.first; node; node= node->next) {
+ for (node = snode->nodetree->nodes.first; node; node = node->next) {
if (node->flag & NODE_GROUP_EDIT)
node_draw_group(C, ar, snode, snode->nodetree, node);
}
@@ -1149,9 +1155,10 @@ void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
/* temporary links */
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
- for (nldrag= snode->linkdrag.first; nldrag; nldrag= nldrag->next) {
- for (linkdata=nldrag->links.first; linkdata; linkdata=linkdata->next)
+ for (nldrag = snode->linkdrag.first; nldrag; nldrag = nldrag->next) {
+ for (linkdata = nldrag->links.first; linkdata; linkdata = linkdata->next) {
node_draw_link(&ar->v2d, snode, (bNodeLink *)linkdata->data);
+ }
}
glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
@@ -1170,7 +1177,7 @@ void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
draw_gpencil_view2d(C, 0);
/* scrollers */
- scrollers= UI_view2d_scrollers_calc(C, v2d, 10, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY);
+ scrollers = UI_view2d_scrollers_calc(C, v2d, 10, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY);
UI_view2d_scrollers_draw(C, v2d, scrollers);
UI_view2d_scrollers_free(scrollers);
}
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index 9a6906c43bc..64a8d96a74f 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -29,82 +29,51 @@
* \ingroup spnode
*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-#include <errno.h>
-
#include "MEM_guardedalloc.h"
-#include "DNA_ID.h"
#include "DNA_lamp_types.h"
#include "DNA_material_types.h"
#include "DNA_node_types.h"
#include "DNA_object_types.h"
-#include "DNA_particle_types.h"
-#include "DNA_scene_types.h"
#include "DNA_world_types.h"
-#include "DNA_action_types.h"
-#include "DNA_anim_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
-#include "BLI_utildefines.h"
-#include "BKE_action.h"
-#include "BKE_animsys.h"
+#include "BKE_blender.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
#include "BKE_global.h"
#include "BKE_image.h"
#include "BKE_library.h"
#include "BKE_main.h"
-#include "BKE_node.h"
#include "BKE_material.h"
-#include "BKE_modifier.h"
+#include "BKE_node.h"
#include "BKE_paint.h"
+#include "BKE_report.h"
#include "BKE_scene.h"
-#include "BKE_screen.h"
#include "BKE_texture.h"
-#include "BKE_report.h"
#include "RE_pipeline.h"
-#include "IMB_imbuf_types.h"
-#include "ED_node.h"
-#include "ED_image.h"
+#include "ED_node.h" /* own include */
#include "ED_screen.h"
-#include "ED_space_api.h"
#include "ED_render.h"
#include "RNA_access.h"
#include "RNA_define.h"
-#include "RNA_enum_types.h"
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
-#include "UI_resources.h"
#include "UI_view2d.h"
-#include "IMB_imbuf.h"
-
-#include "RNA_enum_types.h"
-
#include "GPU_material.h"
-#include "node_intern.h"
-#include "NOD_socket.h"
+#include "node_intern.h" /* own include */
-static EnumPropertyItem socket_in_out_items[] = {
- { SOCK_IN, "SOCK_IN", 0, "Input", "" },
- { SOCK_OUT, "SOCK_OUT", 0, "Output", "" },
- { 0, NULL, 0, NULL, NULL },
-};
+#define USE_ESC_COMPO
/* ***************** composite job manager ********************** */
@@ -122,7 +91,13 @@ static int compo_breakjob(void *cjv)
{
CompoJob *cj = cjv;
- return *(cj->stop);
+ /* without G.is_break 'ESC' wont quit - which annoys users */
+ return (*(cj->stop)
+#ifdef USE_ESC_COMPO
+ ||
+ G.is_break
+#endif
+ );
}
/* called by compo, wmJob sends notifier */
@@ -173,8 +148,9 @@ static void compo_startjob(void *cjv, short *stop, short *do_update, float *prog
{
CompoJob *cj = cjv;
bNodeTree *ntree = cj->localtree;
+ Scene *scene = cj->scene;
- if (cj->scene->use_nodes == FALSE)
+ if (scene->use_nodes == FALSE)
return;
cj->stop = stop;
@@ -190,7 +166,7 @@ static void compo_startjob(void *cjv, short *stop, short *do_update, float *prog
// XXX BIF_store_spare();
- ntreeCompositExecTree(ntree, &cj->scene->r, 0, 1); /* 1 is do_previews */
+ ntreeCompositExecTree(ntree, &cj->scene->r, 0, 1, &scene->view_settings, &scene->display_settings); /* 1 is do_previews */
ntree->test_break = NULL;
ntree->stats_draw = NULL;
@@ -198,32 +174,47 @@ static void compo_startjob(void *cjv, short *stop, short *do_update, float *prog
}
-void snode_composite_job(const bContext *C, ScrArea *sa)
+/**
+ * \param sa_owner is the owner of the job,
+ * we don't use it for anything else currently so could also be a void pointer,
+ * but for now keep it an 'Scene' for consistency.
+ *
+ * \note only call from spaces `refresh` callbacks, not direct! - use with care.
+ */
+void ED_node_composite_job(const bContext *C, struct bNodeTree *nodetree, Scene *scene_owner)
{
- SpaceNode *snode = sa->spacedata.first;
- wmJob *steve;
+ wmJob *wm_job;
CompoJob *cj;
- steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Compositing", WM_JOB_EXCL_RENDER | WM_JOB_PROGRESS);
+ /* to fix bug: [#32272] */
+ if (G.is_rendering) {
+ return;
+ }
+
+#ifdef USE_ESC_COMPO
+ G.is_break = FALSE;
+#endif
+
+ wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene_owner, "Compositing",
+ WM_JOB_EXCL_RENDER | WM_JOB_PROGRESS, WM_JOB_TYPE_COMPOSITE);
cj = MEM_callocN(sizeof(CompoJob), "compo job");
-
+
/* customdata for preview thread */
cj->scene = CTX_data_scene(C);
- cj->ntree = snode->nodetree;
-
+ cj->ntree = nodetree;
+
/* setup job */
- WM_jobs_customdata(steve, cj, compo_freejob);
- WM_jobs_timer(steve, 0.1, NC_SCENE, NC_SCENE | ND_COMPO_RESULT);
- WM_jobs_callbacks(steve, compo_startjob, compo_initjob, compo_updatejob, NULL);
-
- WM_jobs_start(CTX_wm_manager(C), steve);
-
+ WM_jobs_customdata_set(wm_job, cj, compo_freejob);
+ WM_jobs_timer(wm_job, 0.1, NC_SCENE, NC_SCENE | ND_COMPO_RESULT);
+ WM_jobs_callbacks(wm_job, compo_startjob, compo_initjob, compo_updatejob, NULL);
+
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
}
/* ***************************************** */
/* operator poll callback */
-static int composite_node_active(bContext *C)
+int composite_node_active(bContext *C)
{
if (ED_operator_node_active(C)) {
SpaceNode *snode = CTX_wm_space_node(C);
@@ -234,7 +225,7 @@ static int composite_node_active(bContext *C)
}
/* also checks for edited groups */
-static bNode *editnode_get_active(bNodeTree *ntree)
+bNode *editnode_get_active(bNodeTree *ntree)
{
bNode *node;
@@ -319,7 +310,8 @@ void ED_node_shader_default(Scene *scene, ID *id)
ntree = ntreeAddTree("Shader Nodetree", NTREE_SHADER, 0);
switch (GS(id->name)) {
- case ID_MA: {
+ case ID_MA:
+ {
Material *ma = (Material *)id;
ma->nodetree = ntree;
@@ -336,7 +328,8 @@ void ED_node_shader_default(Scene *scene, ID *id)
strength = 0.0f;
break;
}
- case ID_WO: {
+ case ID_WO:
+ {
World *wo = (World *)id;
wo->nodetree = ntree;
@@ -347,7 +340,8 @@ void ED_node_shader_default(Scene *scene, ID *id)
strength = 1.0f;
break;
}
- case ID_LA: {
+ case ID_LA:
+ {
Lamp *la = (Lamp *)id;
la->nodetree = ntree;
@@ -610,7 +604,7 @@ void snode_set_context(SpaceNode *snode, Scene *scene)
node_tree_from_ID(snode->id, &snode->nodetree, &snode->edittree, NULL);
}
-static void snode_update(SpaceNode *snode, bNode *node)
+void snode_update(SpaceNode *snode, bNode *node)
{
bNode *gnode;
@@ -789,1048 +783,20 @@ static void edit_node_properties_get(wmOperator *op, bNodeTree *ntree, bNode **r
}
#endif
-/* ***************** Edit Group operator ************* */
-
-void snode_make_group_editable(SpaceNode *snode, bNode *gnode)
-{
- bNode *node;
-
- /* make sure nothing has group editing on */
- for (node = snode->nodetree->nodes.first; node; node = node->next)
- nodeGroupEditClear(node);
-
- if (gnode == NULL) {
- /* with NULL argument we do a toggle */
- if (snode->edittree == snode->nodetree)
- gnode = nodeGetActive(snode->nodetree);
- }
-
- if (gnode) {
- snode->edittree = nodeGroupEditSet(gnode, 1);
-
- /* deselect all other nodes, so we can also do grabbing of entire subtree */
- for (node = snode->nodetree->nodes.first; node; node = node->next)
- node_deselect(node);
- node_select(gnode);
- }
- else
- snode->edittree = snode->nodetree;
-}
-
-static int node_group_edit_exec(bContext *C, wmOperator *UNUSED(op))
-{
- SpaceNode *snode = CTX_wm_space_node(C);
-
- ED_preview_kill_jobs(C);
-
- if (snode->nodetree == snode->edittree) {
- bNode *gnode = nodeGetActive(snode->edittree);
- snode_make_group_editable(snode, gnode);
- }
- else
- snode_make_group_editable(snode, NULL);
-
- WM_event_add_notifier(C, NC_SCENE | ND_NODES, NULL);
-
- return OPERATOR_FINISHED;
-}
-
-static int node_group_edit_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNode *gnode;
-
- /* XXX callback? */
- if (snode->nodetree == snode->edittree) {
- gnode = nodeGetActive(snode->edittree);
- if (gnode && gnode->id && GS(gnode->id->name) == ID_NT && gnode->id->lib) {
- uiPupMenuOkee(C, op->type->idname, "Make group local?");
- return OPERATOR_CANCELLED;
- }
- }
-
- return node_group_edit_exec(C, op);
-}
-
-void NODE_OT_group_edit(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Edit Group";
- ot->description = "Edit node group";
- ot->idname = "NODE_OT_group_edit";
-
- /* api callbacks */
- ot->invoke = node_group_edit_invoke;
- ot->exec = node_group_edit_exec;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-}
-
-/* ***************** Add Group Socket operator ************* */
-
-static int node_group_socket_add_exec(bContext *C, wmOperator *op)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- int in_out = -1;
- char name[MAX_NAME] = "";
- int type = SOCK_FLOAT;
- bNodeTree *ngroup = snode->edittree;
- /* bNodeSocket *sock; */ /* UNUSED */
-
- ED_preview_kill_jobs(C);
-
- if (RNA_struct_property_is_set(op->ptr, "name"))
- RNA_string_get(op->ptr, "name", name);
-
- if (RNA_struct_property_is_set(op->ptr, "type"))
- type = RNA_enum_get(op->ptr, "type");
-
- if (RNA_struct_property_is_set(op->ptr, "in_out"))
- in_out = RNA_enum_get(op->ptr, "in_out");
- else
- return OPERATOR_CANCELLED;
-
- /* using placeholder subtype first */
- /* sock = */ /* UNUSED */ node_group_add_socket(ngroup, name, type, in_out);
-
- ntreeUpdateTree(ngroup);
-
- snode_notify(C, snode);
-
- return OPERATOR_FINISHED;
-}
-
-void NODE_OT_group_socket_add(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Add Group Socket";
- ot->description = "Add node group socket";
- ot->idname = "NODE_OT_group_socket_add";
-
- /* api callbacks */
- ot->exec = node_group_socket_add_exec;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Type", "Input or Output");
- RNA_def_string(ot->srna, "name", "", MAX_NAME, "Name", "Group socket name");
- RNA_def_enum(ot->srna, "type", node_socket_type_items, SOCK_FLOAT, "Type", "Type of the group socket");
-}
-
-/* ***************** Remove Group Socket operator ************* */
-
-static int node_group_socket_remove_exec(bContext *C, wmOperator *op)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- int index = -1;
- int in_out = -1;
- bNodeTree *ngroup = snode->edittree;
- bNodeSocket *sock;
-
- ED_preview_kill_jobs(C);
-
- if (RNA_struct_property_is_set(op->ptr, "index"))
- index = RNA_int_get(op->ptr, "index");
- else
- return OPERATOR_CANCELLED;
-
- if (RNA_struct_property_is_set(op->ptr, "in_out"))
- in_out = RNA_enum_get(op->ptr, "in_out");
- else
- return OPERATOR_CANCELLED;
-
- sock = (bNodeSocket *)BLI_findlink(in_out == SOCK_IN ? &ngroup->inputs : &ngroup->outputs, index);
- if (sock) {
- node_group_remove_socket(ngroup, sock, in_out);
- ntreeUpdateTree(ngroup);
-
- snode_notify(C, snode);
- }
-
- return OPERATOR_FINISHED;
-}
-
-void NODE_OT_group_socket_remove(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Remove Group Socket";
- ot->description = "Remove a node group socket";
- ot->idname = "NODE_OT_group_socket_remove";
-
- /* api callbacks */
- ot->exec = node_group_socket_remove_exec;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "", 0, INT_MAX);
- RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Type", "Input or Output");
-}
-
-/* ***************** Move Group Socket Up operator ************* */
-
-static int node_group_socket_move_up_exec(bContext *C, wmOperator *op)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- int index = -1;
- int in_out = -1;
- bNodeTree *ngroup = snode->edittree;
- bNodeSocket *sock, *prev;
-
- ED_preview_kill_jobs(C);
-
- if (RNA_struct_property_is_set(op->ptr, "index"))
- index = RNA_int_get(op->ptr, "index");
- else
- return OPERATOR_CANCELLED;
-
- if (RNA_struct_property_is_set(op->ptr, "in_out"))
- in_out = RNA_enum_get(op->ptr, "in_out");
- else
- return OPERATOR_CANCELLED;
-
- /* swap */
- if (in_out == SOCK_IN) {
- sock = (bNodeSocket *)BLI_findlink(&ngroup->inputs, index);
- prev = sock->prev;
- /* can't move up the first socket */
- if (!prev)
- return OPERATOR_CANCELLED;
- BLI_remlink(&ngroup->inputs, sock);
- BLI_insertlinkbefore(&ngroup->inputs, prev, sock);
-
- ngroup->update |= NTREE_UPDATE_GROUP_IN;
- }
- else if (in_out == SOCK_OUT) {
- sock = (bNodeSocket *)BLI_findlink(&ngroup->outputs, index);
- prev = sock->prev;
- /* can't move up the first socket */
- if (!prev)
- return OPERATOR_CANCELLED;
- BLI_remlink(&ngroup->outputs, sock);
- BLI_insertlinkbefore(&ngroup->outputs, prev, sock);
-
- ngroup->update |= NTREE_UPDATE_GROUP_OUT;
- }
- ntreeUpdateTree(ngroup);
-
- snode_notify(C, snode);
-
- return OPERATOR_FINISHED;
-}
-
-void NODE_OT_group_socket_move_up(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Move Group Socket Up";
- ot->description = "Move up node group socket";
- ot->idname = "NODE_OT_group_socket_move_up";
-
- /* api callbacks */
- ot->exec = node_group_socket_move_up_exec;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "", 0, INT_MAX);
- RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Type", "Input or Output");
-}
-
-/* ***************** Move Group Socket Up operator ************* */
-
-static int node_group_socket_move_down_exec(bContext *C, wmOperator *op)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- int index = -1;
- int in_out = -1;
- bNodeTree *ngroup = snode->edittree;
- bNodeSocket *sock, *next;
-
- ED_preview_kill_jobs(C);
-
- if (RNA_struct_property_is_set(op->ptr, "index"))
- index = RNA_int_get(op->ptr, "index");
- else
- return OPERATOR_CANCELLED;
-
- if (RNA_struct_property_is_set(op->ptr, "in_out"))
- in_out = RNA_enum_get(op->ptr, "in_out");
- else
- return OPERATOR_CANCELLED;
-
- /* swap */
- if (in_out == SOCK_IN) {
- sock = (bNodeSocket *)BLI_findlink(&ngroup->inputs, index);
- next = sock->next;
- /* can't move down the last socket */
- if (!next)
- return OPERATOR_CANCELLED;
- BLI_remlink(&ngroup->inputs, sock);
- BLI_insertlinkafter(&ngroup->inputs, next, sock);
-
- ngroup->update |= NTREE_UPDATE_GROUP_IN;
- }
- else if (in_out == SOCK_OUT) {
- sock = (bNodeSocket *)BLI_findlink(&ngroup->outputs, index);
- next = sock->next;
- /* can't move down the last socket */
- if (!next)
- return OPERATOR_CANCELLED;
- BLI_remlink(&ngroup->outputs, sock);
- BLI_insertlinkafter(&ngroup->outputs, next, sock);
-
- ngroup->update |= NTREE_UPDATE_GROUP_OUT;
- }
- ntreeUpdateTree(ngroup);
-
- snode_notify(C, snode);
-
- return OPERATOR_FINISHED;
-}
-
-void NODE_OT_group_socket_move_down(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Move Group Socket Down";
- ot->description = "Move down node group socket";
- ot->idname = "NODE_OT_group_socket_move_down";
-
- /* api callbacks */
- ot->exec = node_group_socket_move_down_exec;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "", 0, INT_MAX);
- RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Type", "Input or Output");
-}
-
-/* ******************** Ungroup operator ********************** */
-
-/* returns 1 if its OK */
-static int node_group_ungroup(bNodeTree *ntree, bNode *gnode)
-{
- bNodeLink *link, *linkn;
- bNode *node, *nextn;
- bNodeTree *ngroup, *wgroup;
- ListBase anim_basepaths = {NULL, NULL};
-
- ngroup = (bNodeTree *)gnode->id;
- if (ngroup == NULL) return 0;
-
- /* clear new pointers, set in copytree */
- for (node = ntree->nodes.first; node; node = node->next)
- node->new_node = NULL;
-
- /* wgroup is a temporary copy of the NodeTree we're merging in
- * - all of wgroup's nodes are transferred across to their new home
- * - ngroup (i.e. the source NodeTree) is left unscathed
- */
- wgroup = ntreeCopyTree(ngroup);
-
- /* add the nodes into the ntree */
- for (node = wgroup->nodes.first; node; node = nextn) {
- nextn = node->next;
-
- /* keep track of this node's RNA "base" path (the part of the path identifying the node)
- * if the old nodetree has animation data which potentially covers this node
- */
- if (wgroup->adt) {
- PointerRNA ptr;
- char *path;
-
- RNA_pointer_create(&wgroup->id, &RNA_Node, node, &ptr);
- path = RNA_path_from_ID_to_struct(&ptr);
-
- if (path)
- BLI_addtail(&anim_basepaths, BLI_genericNodeN(path));
- }
-
- /* migrate node */
- BLI_remlink(&wgroup->nodes, node);
- BLI_addtail(&ntree->nodes, node);
-
- node->locx += gnode->locx;
- node->locy += gnode->locy;
-
- node->flag |= NODE_SELECT;
- }
-
- /* restore external links to and from the gnode */
- for (link = ntree->links.first; link; link = link->next) {
- if (link->fromnode == gnode) {
- if (link->fromsock->groupsock) {
- bNodeSocket *gsock = link->fromsock->groupsock;
- if (gsock->link) {
- if (gsock->link->fromnode) {
- /* NB: using the new internal copies here! the groupsock pointer still maps to the old tree */
- link->fromnode = (gsock->link->fromnode ? gsock->link->fromnode->new_node : NULL);
- link->fromsock = gsock->link->fromsock->new_sock;
- }
- else {
- /* group output directly maps to group input */
- bNodeSocket *insock = node_group_find_input(gnode, gsock->link->fromsock);
- if (insock->link) {
- link->fromnode = insock->link->fromnode;
- link->fromsock = insock->link->fromsock;
- }
- }
- }
- else {
- /* copy the default input value from the group socket default to the external socket */
- node_socket_convert_default_value(link->tosock->type, link->tosock->default_value, gsock->type, gsock->default_value);
- }
- }
- }
- }
- /* remove internal output links, these are not used anymore */
- for (link = wgroup->links.first; link; link = linkn) {
- linkn = link->next;
- if (!link->tonode)
- nodeRemLink(wgroup, link);
- }
- /* restore links from internal nodes */
- for (link = wgroup->links.first; link; link = link->next) {
- /* indicates link to group input */
- if (!link->fromnode) {
- /* NB: can't use find_group_node_input here,
- * because gnode sockets still point to the old tree!
- */
- bNodeSocket *insock;
- for (insock = gnode->inputs.first; insock; insock = insock->next)
- if (insock->groupsock->new_sock == link->fromsock)
- break;
- if (insock->link) {
- link->fromnode = insock->link->fromnode;
- link->fromsock = insock->link->fromsock;
- }
- else {
- /* copy the default input value from the group node socket default to the internal socket */
- node_socket_convert_default_value(link->tosock->type, link->tosock->default_value, insock->type, insock->default_value);
- nodeRemLink(wgroup, link);
- }
- }
- }
-
- /* add internal links to the ntree */
- for (link = wgroup->links.first; link; link = linkn) {
- linkn = link->next;
- BLI_remlink(&wgroup->links, link);
- BLI_addtail(&ntree->links, link);
- }
-
- /* and copy across the animation,
- * note that the animation data's action can be NULL here */
- if (wgroup->adt) {
- LinkData *ld, *ldn = NULL;
- bAction *waction;
-
- /* firstly, wgroup needs to temporary dummy action that can be destroyed, as it shares copies */
- waction = wgroup->adt->action = BKE_action_copy(wgroup->adt->action);
-
- /* now perform the moving */
- BKE_animdata_separate_by_basepath(&wgroup->id, &ntree->id, &anim_basepaths);
-
- /* paths + their wrappers need to be freed */
- for (ld = anim_basepaths.first; ld; ld = ldn) {
- ldn = ld->next;
-
- MEM_freeN(ld->data);
- BLI_freelinkN(&anim_basepaths, ld);
- }
-
- /* free temp action too */
- if (waction) {
- BKE_libblock_free(&G.main->action, waction);
- }
- }
-
- /* delete the group instance. this also removes old input links! */
- nodeFreeNode(ntree, gnode);
-
- /* free the group tree (takes care of user count) */
- BKE_libblock_free(&G.main->nodetree, wgroup);
-
- ntree->update |= NTREE_UPDATE_NODES | NTREE_UPDATE_LINKS;
-
- return 1;
-}
-
-static int node_group_ungroup_exec(bContext *C, wmOperator *op)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNode *gnode;
-
- ED_preview_kill_jobs(C);
-
- /* are we inside of a group? */
- gnode = node_tree_get_editgroup(snode->nodetree);
- if (gnode)
- snode_make_group_editable(snode, NULL);
-
- gnode = nodeGetActive(snode->edittree);
- if (gnode == NULL)
- return OPERATOR_CANCELLED;
-
- if (gnode->type != NODE_GROUP) {
- BKE_report(op->reports, RPT_WARNING, "Not a group");
- return OPERATOR_CANCELLED;
- }
- else if (node_group_ungroup(snode->nodetree, gnode)) {
- ntreeUpdateTree(snode->nodetree);
- }
- else {
- BKE_report(op->reports, RPT_WARNING, "Can't ungroup");
- return OPERATOR_CANCELLED;
- }
-
- snode_notify(C, snode);
- snode_dag_update(C, snode);
-
- return OPERATOR_FINISHED;
-}
-
-void NODE_OT_group_ungroup(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Ungroup";
- ot->description = "Ungroup selected nodes";
- ot->idname = "NODE_OT_group_ungroup";
-
- /* api callbacks */
- ot->exec = node_group_ungroup_exec;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-}
-
-/* ******************** Separate operator ********************** */
-
-/* returns 1 if its OK */
-static int node_group_separate_selected(bNodeTree *ntree, bNode *gnode, int make_copy)
-{
- bNodeLink *link, *link_next;
- bNode *node, *node_next, *newnode;
- bNodeTree *ngroup;
- ListBase anim_basepaths = {NULL, NULL};
-
- ngroup = (bNodeTree *)gnode->id;
- if (ngroup == NULL) return 0;
-
- /* deselect all nodes in the target tree */
- for (node = ntree->nodes.first; node; node = node->next)
- node_deselect(node);
-
- /* clear new pointers, set in nodeCopyNode */
- for (node = ngroup->nodes.first; node; node = node->next)
- node->new_node = NULL;
-
- /* add selected nodes into the ntree */
- for (node = ngroup->nodes.first; node; node = node_next) {
- node_next = node->next;
- if (!(node->flag & NODE_SELECT))
- continue;
-
- if (make_copy) {
- /* make a copy */
- newnode = nodeCopyNode(ngroup, node);
- }
- else {
- /* use the existing node */
- newnode = node;
- }
-
- /* keep track of this node's RNA "base" path (the part of the path identifying the node)
- * if the old nodetree has animation data which potentially covers this node
- */
- if (ngroup->adt) {
- PointerRNA ptr;
- char *path;
-
- RNA_pointer_create(&ngroup->id, &RNA_Node, newnode, &ptr);
- path = RNA_path_from_ID_to_struct(&ptr);
-
- if (path)
- BLI_addtail(&anim_basepaths, BLI_genericNodeN(path));
- }
-
- /* ensure valid parent pointers, detach if parent stays inside the group */
- if (newnode->parent && !(newnode->parent->flag & NODE_SELECT))
- nodeDetachNode(newnode);
-
- /* migrate node */
- BLI_remlink(&ngroup->nodes, newnode);
- BLI_addtail(&ntree->nodes, newnode);
-
- newnode->locx += gnode->locx;
- newnode->locy += gnode->locy;
- }
-
- /* add internal links to the ntree */
- for (link = ngroup->links.first; link; link = link_next) {
- int fromselect = (link->fromnode && (link->fromnode->flag & NODE_SELECT));
- int toselect = (link->tonode && (link->tonode->flag & NODE_SELECT));
- link_next = link->next;
-
- if (make_copy) {
- /* make a copy of internal links */
- if (fromselect && toselect)
- nodeAddLink(ntree, link->fromnode->new_node, link->fromsock->new_sock, link->tonode->new_node, link->tosock->new_sock);
- }
- else {
- /* move valid links over, delete broken links */
- if (fromselect && toselect) {
- BLI_remlink(&ngroup->links, link);
- BLI_addtail(&ntree->links, link);
- }
- else if (fromselect || toselect) {
- nodeRemLink(ngroup, link);
- }
- }
- }
-
- /* and copy across the animation,
- * note that the animation data's action can be NULL here */
- if (ngroup->adt) {
- LinkData *ld, *ldn = NULL;
-
- /* now perform the moving */
- BKE_animdata_separate_by_basepath(&ngroup->id, &ntree->id, &anim_basepaths);
-
- /* paths + their wrappers need to be freed */
- for (ld = anim_basepaths.first; ld; ld = ldn) {
- ldn = ld->next;
-
- MEM_freeN(ld->data);
- BLI_freelinkN(&anim_basepaths, ld);
- }
- }
-
- ntree->update |= NTREE_UPDATE_NODES | NTREE_UPDATE_LINKS;
- if (!make_copy)
- ngroup->update |= NTREE_UPDATE_NODES | NTREE_UPDATE_LINKS;
-
- return 1;
-}
-
-typedef enum eNodeGroupSeparateType {
- NODE_GS_COPY,
- NODE_GS_MOVE
-} eNodeGroupSeparateType;
-
-/* Operator Property */
-EnumPropertyItem node_group_separate_types[] = {
- {NODE_GS_COPY, "COPY", 0, "Copy", "Copy to parent node tree, keep group intact"},
- {NODE_GS_MOVE, "MOVE", 0, "Move", "Move to parent node tree, remove from group"},
- {0, NULL, 0, NULL, NULL}
-};
-
-static int node_group_separate_exec(bContext *C, wmOperator *op)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNode *gnode;
- int type = RNA_enum_get(op->ptr, "type");
-
- ED_preview_kill_jobs(C);
-
- /* are we inside of a group? */
- gnode = node_tree_get_editgroup(snode->nodetree);
- if (!gnode) {
- BKE_report(op->reports, RPT_WARNING, "Not inside node group");
- return OPERATOR_CANCELLED;
- }
-
- switch (type) {
- case NODE_GS_COPY:
- if (!node_group_separate_selected(snode->nodetree, gnode, 1)) {
- BKE_report(op->reports, RPT_WARNING, "Can't separate nodes");
- return OPERATOR_CANCELLED;
- }
- break;
- case NODE_GS_MOVE:
- if (!node_group_separate_selected(snode->nodetree, gnode, 0)) {
- BKE_report(op->reports, RPT_WARNING, "Can't separate nodes");
- return OPERATOR_CANCELLED;
- }
- break;
- }
-
- /* switch to parent tree */
- snode_make_group_editable(snode, NULL);
-
- ntreeUpdateTree(snode->nodetree);
-
- snode_notify(C, snode);
- snode_dag_update(C, snode);
-
- return OPERATOR_FINISHED;
-}
-
-static int node_group_separate_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
-{
- uiPopupMenu *pup = uiPupMenuBegin(C, "Separate", ICON_NONE);
- uiLayout *layout = uiPupMenuLayout(pup);
-
- uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
- uiItemEnumO(layout, "NODE_OT_group_separate", NULL, 0, "type", NODE_GS_COPY);
- uiItemEnumO(layout, "NODE_OT_group_separate", NULL, 0, "type", NODE_GS_MOVE);
-
- uiPupMenuEnd(C, pup);
-
- return OPERATOR_CANCELLED;
-}
-
-void NODE_OT_group_separate(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Separate";
- ot->description = "Separate selected nodes from the node group";
- ot->idname = "NODE_OT_group_separate";
-
- /* api callbacks */
- ot->invoke = node_group_separate_invoke;
- ot->exec = node_group_separate_exec;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- RNA_def_enum(ot->srna, "type", node_group_separate_types, NODE_GS_COPY, "Type", "");
-}
-
/* ************************** Node generic ************** */
/* is rct in visible part of node? */
-static bNode *visible_node(SpaceNode *snode, rctf *rct)
+static bNode *visible_node(SpaceNode *snode, const rctf *rct)
{
bNode *node;
for (node = snode->edittree->nodes.last; node; node = node->prev) {
- if (BLI_isect_rctf(&node->totr, rct, NULL))
+ if (BLI_rctf_isect(&node->totr, rct, NULL))
break;
}
return node;
}
-/* **************************** */
-
-typedef struct NodeViewMove {
- int mvalo[2];
- int xmin, ymin, xmax, ymax;
-} NodeViewMove;
-
-static int snode_bg_viewmove_modal(bContext *C, wmOperator *op, wmEvent *event)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- ARegion *ar = CTX_wm_region(C);
- NodeViewMove *nvm = op->customdata;
-
- switch (event->type) {
- case MOUSEMOVE:
-
- snode->xof -= (nvm->mvalo[0] - event->mval[0]);
- snode->yof -= (nvm->mvalo[1] - event->mval[1]);
- nvm->mvalo[0] = event->mval[0];
- nvm->mvalo[1] = event->mval[1];
-
- /* prevent dragging image outside of the window and losing it! */
- CLAMP(snode->xof, nvm->xmin, nvm->xmax);
- CLAMP(snode->yof, nvm->ymin, nvm->ymax);
-
- ED_region_tag_redraw(ar);
-
- break;
-
- case LEFTMOUSE:
- case MIDDLEMOUSE:
- case RIGHTMOUSE:
-
- MEM_freeN(nvm);
- op->customdata = NULL;
-
- WM_event_add_notifier(C, NC_SPACE | ND_SPACE_NODE, NULL);
-
- return OPERATOR_FINISHED;
- }
-
- return OPERATOR_RUNNING_MODAL;
-}
-
-static int snode_bg_viewmove_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
- ARegion *ar = CTX_wm_region(C);
- NodeViewMove *nvm;
- Image *ima;
- ImBuf *ibuf;
- int pad = 10;
- void *lock;
-
- ima = BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node");
- ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock);
-
- if (ibuf == NULL) {
- BKE_image_release_ibuf(ima, lock);
- return OPERATOR_CANCELLED;
- }
-
- nvm = MEM_callocN(sizeof(NodeViewMove), "NodeViewMove struct");
- op->customdata = nvm;
- nvm->mvalo[0] = event->mval[0];
- nvm->mvalo[1] = event->mval[1];
-
- nvm->xmin = -(ar->winx / 2) - ibuf->x / 2 + pad;
- nvm->xmax = ar->winx / 2 + ibuf->x / 2 - pad;
- nvm->ymin = -(ar->winy / 2) - ibuf->y / 2 + pad;
- nvm->ymax = ar->winy / 2 + ibuf->y / 2 - pad;
-
- BKE_image_release_ibuf(ima, lock);
-
- /* add modal handler */
- WM_event_add_modal_handler(C, op);
-
- return OPERATOR_RUNNING_MODAL;
-}
-
-static int snode_bg_viewmove_cancel(bContext *UNUSED(C), wmOperator *op)
-{
- MEM_freeN(op->customdata);
- op->customdata = NULL;
-
- return OPERATOR_CANCELLED;
-}
-
-void NODE_OT_backimage_move(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Background Image Move";
- ot->description = "Move Node backdrop";
- ot->idname = "NODE_OT_backimage_move";
-
- /* api callbacks */
- ot->invoke = snode_bg_viewmove_invoke;
- ot->modal = snode_bg_viewmove_modal;
- ot->poll = composite_node_active;
- ot->cancel = snode_bg_viewmove_cancel;
-
- /* flags */
- ot->flag = OPTYPE_BLOCKING | OPTYPE_GRAB_POINTER;
-}
-
-static int backimage_zoom(bContext *C, wmOperator *op)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- ARegion *ar = CTX_wm_region(C);
- float fac = RNA_float_get(op->ptr, "factor");
-
- snode->zoom *= fac;
- ED_region_tag_redraw(ar);
-
- return OPERATOR_FINISHED;
-}
-
-
-void NODE_OT_backimage_zoom(wmOperatorType *ot)
-{
-
- /* identifiers */
- ot->name = "Background Image Zoom";
- ot->idname = "NODE_OT_backimage_zoom";
- ot->description = "Zoom in/out the background image";
-
- /* api callbacks */
- ot->exec = backimage_zoom;
- ot->poll = composite_node_active;
-
- /* flags */
- ot->flag = OPTYPE_BLOCKING;
-
- /* internal */
- RNA_def_float(ot->srna, "factor", 1.2f, 0.0f, 10.0f, "Factor", "", 0.0f, 10.0f);
-}
-
-/******************** sample backdrop operator ********************/
-
-typedef struct ImageSampleInfo {
- ARegionType *art;
- void *draw_handle;
- int x, y;
- int channels;
- int color_manage;
-
- unsigned char col[4];
- float colf[4];
-
- int draw;
-} ImageSampleInfo;
-
-static void sample_draw(const bContext *C, ARegion *ar, void *arg_info)
-{
- Scene *scene = CTX_data_scene(C);
- ImageSampleInfo *info = arg_info;
-
- if (info->draw) {
- ED_image_draw_info(ar, (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT), info->channels,
- info->x, info->y, info->col, info->colf,
- NULL, NULL /* zbuf - unused for nodes */
- );
- }
-}
-
-static void sample_apply(bContext *C, wmOperator *op, wmEvent *event)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- ARegion *ar = CTX_wm_region(C);
- ImageSampleInfo *info = op->customdata;
- void *lock;
- Image *ima;
- ImBuf *ibuf;
- float fx, fy, bufx, bufy;
-
- ima = BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node");
- ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock);
- if (!ibuf) {
- info->draw = 0;
- return;
- }
-
- if (!ibuf->rect) {
- if (info->color_manage)
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
- else
- ibuf->profile = IB_PROFILE_NONE;
- IMB_rect_from_float(ibuf);
- }
-
- /* map the mouse coords to the backdrop image space */
- bufx = ibuf->x * snode->zoom;
- bufy = ibuf->y * snode->zoom;
- fx = (bufx > 0.0f ? ((float)event->mval[0] - 0.5f * ar->winx - snode->xof) / bufx + 0.5f : 0.0f);
- fy = (bufy > 0.0f ? ((float)event->mval[1] - 0.5f * ar->winy - snode->yof) / bufy + 0.5f : 0.0f);
-
- if (fx >= 0.0f && fy >= 0.0f && fx < 1.0f && fy < 1.0f) {
- float *fp;
- char *cp;
- int x = (int)(fx * ibuf->x), y = (int)(fy * ibuf->y);
-
- CLAMP(x, 0, ibuf->x - 1);
- CLAMP(y, 0, ibuf->y - 1);
-
- info->x = x;
- info->y = y;
- info->draw = 1;
- info->channels = ibuf->channels;
-
- if (ibuf->rect) {
- cp = (char *)(ibuf->rect + y * ibuf->x + x);
-
- info->col[0] = cp[0];
- info->col[1] = cp[1];
- info->col[2] = cp[2];
- info->col[3] = cp[3];
-
- info->colf[0] = (float)cp[0] / 255.0f;
- info->colf[1] = (float)cp[1] / 255.0f;
- info->colf[2] = (float)cp[2] / 255.0f;
- info->colf[3] = (float)cp[3] / 255.0f;
- }
- if (ibuf->rect_float) {
- fp = (ibuf->rect_float + (ibuf->channels) * (y * ibuf->x + x));
-
- info->colf[0] = fp[0];
- info->colf[1] = fp[1];
- info->colf[2] = fp[2];
- info->colf[3] = fp[3];
- }
-
- ED_node_sample_set(info->colf);
- }
- else {
- info->draw = 0;
- ED_node_sample_set(NULL);
- }
-
- BKE_image_release_ibuf(ima, lock);
-
- ED_area_tag_redraw(CTX_wm_area(C));
-}
-
-static void sample_exit(bContext *C, wmOperator *op)
-{
- ImageSampleInfo *info = op->customdata;
-
- ED_node_sample_set(NULL);
- ED_region_draw_cb_exit(info->art, info->draw_handle);
- ED_area_tag_redraw(CTX_wm_area(C));
- MEM_freeN(info);
-}
-
-static int sample_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- ARegion *ar = CTX_wm_region(C);
- ImageSampleInfo *info;
-
- if (snode->treetype != NTREE_COMPOSIT || !(snode->flag & SNODE_BACKDRAW))
- return OPERATOR_CANCELLED;
-
- info = MEM_callocN(sizeof(ImageSampleInfo), "ImageSampleInfo");
- info->art = ar->type;
- info->draw_handle = ED_region_draw_cb_activate(ar->type, sample_draw, info, REGION_DRAW_POST_PIXEL);
- op->customdata = info;
-
- sample_apply(C, op, event);
-
- WM_event_add_modal_handler(C, op);
-
- return OPERATOR_RUNNING_MODAL;
-}
-
-static int sample_modal(bContext *C, wmOperator *op, wmEvent *event)
-{
- switch (event->type) {
- case LEFTMOUSE:
- case RIGHTMOUSE: // XXX hardcoded
- sample_exit(C, op);
- return OPERATOR_CANCELLED;
- case MOUSEMOVE:
- sample_apply(C, op, event);
- break;
- }
-
- return OPERATOR_RUNNING_MODAL;
-}
-
-static int sample_cancel(bContext *C, wmOperator *op)
-{
- sample_exit(C, op);
- return OPERATOR_CANCELLED;
-}
-
-void NODE_OT_backimage_sample(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Backimage Sample";
- ot->idname = "NODE_OT_backimage_sample";
- ot->description = "Use mouse to sample background image";
-
- /* api callbacks */
- ot->invoke = sample_invoke;
- ot->modal = sample_modal;
- ot->cancel = sample_cancel;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_BLOCKING;
-}
-
/* ********************** size widget operator ******************** */
typedef struct NodeSizeWidget {
@@ -1849,8 +815,8 @@ static void node_resize_init(bContext *C, wmOperator *op, wmEvent *UNUSED(event)
NodeSizeWidget *nsw = MEM_callocN(sizeof(NodeSizeWidget), "size widget op data");
op->customdata = nsw;
- nsw->mxstart = snode->mx;
- nsw->mystart = snode->my;
+ nsw->mxstart = snode->cursor[0];
+ nsw->mystart = snode->cursor[1];
/* store old */
nsw->oldlocx = node->locx;
@@ -1988,8 +954,8 @@ static int node_resize_invoke(bContext *C, wmOperator *op, wmEvent *event)
if (node) {
/* convert mouse coordinates to v2d space */
UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1],
- &snode->mx, &snode->my);
- dir = node->typeinfo->resize_area_func(node, snode->mx, snode->my);
+ &snode->cursor[0], &snode->cursor[1]);
+ dir = node->typeinfo->resize_area_func(node, snode->cursor[0], snode->cursor[1]);
if (dir != 0) {
node_resize_init(C, op, event, node, dir);
return OPERATOR_RUNNING_MODAL;
@@ -2061,140 +1027,6 @@ void node_set_hidden_sockets(SpaceNode *snode, bNode *node, int set)
}
}
-static int node_link_viewer(const bContext *C, bNode *tonode)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNode *node;
- bNodeLink *link;
- bNodeSocket *sock;
-
- /* context check */
- if (tonode == NULL || tonode->outputs.first == NULL)
- return OPERATOR_CANCELLED;
- if (ELEM(tonode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER))
- return OPERATOR_CANCELLED;
-
- /* get viewer */
- for (node = snode->edittree->nodes.first; node; node = node->next)
- if (ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER))
- if (node->flag & NODE_DO_OUTPUT)
- break;
- /* no viewer, we make one active */
- if (node == NULL) {
- for (node = snode->edittree->nodes.first; node; node = node->next) {
- if (ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
- node->flag |= NODE_DO_OUTPUT;
- break;
- }
- }
- }
-
- sock = NULL;
-
- /* try to find an already connected socket to cycle to the next */
- if (node) {
- link = NULL;
- for (link = snode->edittree->links.first; link; link = link->next)
- if (link->tonode == node && link->fromnode == tonode)
- if (link->tosock == node->inputs.first)
- break;
- if (link) {
- /* unlink existing connection */
- sock = link->fromsock;
- nodeRemLink(snode->edittree, link);
-
- /* find a socket after the previously connected socket */
- for (sock = sock->next; sock; sock = sock->next)
- if (!nodeSocketIsHidden(sock))
- break;
- }
- }
-
- /* find a socket starting from the first socket */
- if (!sock) {
- for (sock = tonode->outputs.first; sock; sock = sock->next)
- if (!nodeSocketIsHidden(sock))
- break;
- }
-
- if (sock) {
- /* add a new viewer if none exists yet */
- if (!node) {
- Main *bmain = CTX_data_main(C);
- Scene *scene = CTX_data_scene(C);
- bNodeTemplate ntemp;
-
- ntemp.type = CMP_NODE_VIEWER;
- /* XXX location is a quick hack, just place it next to the linked socket */
- node = node_add_node(snode, bmain, scene, &ntemp, sock->locx + 100, sock->locy);
- if (!node)
- return OPERATOR_CANCELLED;
-
- link = NULL;
- }
- else {
- /* get link to viewer */
- for (link = snode->edittree->links.first; link; link = link->next)
- if (link->tonode == node && link->tosock == node->inputs.first)
- break;
- }
-
- if (link == NULL) {
- nodeAddLink(snode->edittree, tonode, sock, node, node->inputs.first);
- }
- else {
- link->fromnode = tonode;
- link->fromsock = sock;
- /* make sure the dependency sorting is updated */
- snode->edittree->update |= NTREE_UPDATE_LINKS;
- }
- ntreeUpdateTree(snode->edittree);
- snode_update(snode, node);
- }
-
- return OPERATOR_FINISHED;
-}
-
-
-static int node_active_link_viewer(bContext *C, wmOperator *UNUSED(op))
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNode *node;
-
- node = editnode_get_active(snode->edittree);
-
- if (!node)
- return OPERATOR_CANCELLED;
-
- ED_preview_kill_jobs(C);
-
- if (node_link_viewer(C, node) == OPERATOR_CANCELLED)
- return OPERATOR_CANCELLED;
-
- snode_notify(C, snode);
-
- return OPERATOR_FINISHED;
-}
-
-
-
-void NODE_OT_link_viewer(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Link to Viewer Node";
- ot->description = "Link to viewer node";
- ot->idname = "NODE_OT_link_viewer";
-
- /* api callbacks */
- ot->exec = node_active_link_viewer;
- ot->poll = composite_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-}
-
-
-
/* return 0, nothing done */
static int UNUSED_FUNCTION(node_mouse_groupheader) (SpaceNode * snode)
{
@@ -2209,11 +1041,11 @@ static int UNUSED_FUNCTION(node_mouse_groupheader) (SpaceNode * snode)
// XXX areamouseco_to_ipoco(G.v2d, mval, &mx, &my);
/* click in header or outside? */
- if (BLI_in_rctf(&gnode->totr, mx, my) == 0) {
+ if (BLI_rctf_isect_pt(&gnode->totr, mx, my) == 0) {
rctf rect = gnode->totr;
rect.ymax += NODE_DY;
- if (BLI_in_rctf(&rect, mx, my) == 0)
+ if (BLI_rctf_isect_pt(&rect, mx, my) == 0)
snode_make_group_editable(snode, NULL); /* toggles, so exits editmode */
// else
// XXX transform_nodes(snode->nodetree, 'g', "Move group");
@@ -2237,10 +1069,10 @@ int node_find_indicated_socket(SpaceNode *snode, bNode **nodep, bNodeSocket **so
/* check if we click in a socket */
for (node = snode->edittree->nodes.first; node; node = node->next) {
- rect.xmin = snode->mx - (NODE_SOCKSIZE + 4);
- rect.ymin = snode->my - (NODE_SOCKSIZE + 4);
- rect.xmax = snode->mx + (NODE_SOCKSIZE + 4);
- rect.ymax = snode->my + (NODE_SOCKSIZE + 4);
+ rect.xmin = snode->cursor[0] - (NODE_SOCKSIZE + 4);
+ rect.ymin = snode->cursor[1] - (NODE_SOCKSIZE + 4);
+ rect.xmax = snode->cursor[0] + (NODE_SOCKSIZE + 4);
+ rect.ymax = snode->cursor[1] + (NODE_SOCKSIZE + 4);
if (!(node->flag & NODE_HIDDEN)) {
/* extra padding inside and out - allow dragging on the text areas too */
@@ -2257,7 +1089,7 @@ int node_find_indicated_socket(SpaceNode *snode, bNode **nodep, bNodeSocket **so
if (in_out & SOCK_IN) {
for (sock = node->inputs.first; sock; sock = sock->next) {
if (!nodeSocketIsHidden(sock)) {
- if (BLI_in_rctf(&rect, sock->locx, sock->locy)) {
+ if (BLI_rctf_isect_pt(&rect, sock->locx, sock->locy)) {
if (node == visible_node(snode, &rect)) {
*nodep = node;
*sockp = sock;
@@ -2270,7 +1102,7 @@ int node_find_indicated_socket(SpaceNode *snode, bNode **nodep, bNodeSocket **so
if (in_out & SOCK_OUT) {
for (sock = node->outputs.first; sock; sock = sock->next) {
if (!nodeSocketIsHidden(sock)) {
- if (BLI_in_rctf(&rect, sock->locx, sock->locy)) {
+ if (BLI_rctf_isect_pt(&rect, sock->locx, sock->locy)) {
if (node == visible_node(snode, &rect)) {
*nodep = node;
*sockp = sock;
@@ -2288,7 +1120,7 @@ int node_find_indicated_socket(SpaceNode *snode, bNode **nodep, bNodeSocket **so
if (in_out & SOCK_IN) {
for (sock = snode->edittree->outputs.first; sock; sock = sock->next) {
if (!nodeSocketIsHidden(sock)) {
- if (BLI_in_rctf(&rect, sock->locx, sock->locy)) {
+ if (BLI_rctf_isect_pt(&rect, sock->locx, sock->locy)) {
*nodep = NULL; /* NULL node pointer indicates group socket */
*sockp = sock;
return 1;
@@ -2299,7 +1131,7 @@ int node_find_indicated_socket(SpaceNode *snode, bNode **nodep, bNodeSocket **so
if (in_out & SOCK_OUT) {
for (sock = snode->edittree->inputs.first; sock; sock = sock->next) {
if (!nodeSocketIsHidden(sock)) {
- if (BLI_in_rctf(&rect, sock->locx, sock->locy)) {
+ if (BLI_rctf_isect_pt(&rect, sock->locx, sock->locy)) {
*nodep = NULL; /* NULL node pointer indicates group socket */
*sockp = sock;
return 1;
@@ -2311,272 +1143,6 @@ int node_find_indicated_socket(SpaceNode *snode, bNode **nodep, bNodeSocket **so
return 0;
}
-static int outside_group_rect(SpaceNode *snode)
-{
- bNode *gnode = node_tree_get_editgroup(snode->nodetree);
- if (gnode) {
- return (snode->mx < gnode->totr.xmin ||
- snode->mx >= gnode->totr.xmax ||
- snode->my < gnode->totr.ymin ||
- snode->my >= gnode->totr.ymax);
- }
- return 0;
-}
-
-/* ****************** Add *********************** */
-
-
-typedef struct bNodeListItem {
- struct bNodeListItem *next, *prev;
- struct bNode *node;
-} bNodeListItem;
-
-static int sort_nodes_locx(void *a, void *b)
-{
- bNodeListItem *nli1 = (bNodeListItem *)a;
- bNodeListItem *nli2 = (bNodeListItem *)b;
- bNode *node1 = nli1->node;
- bNode *node2 = nli2->node;
-
- if (node1->locx > node2->locx)
- return 1;
- else
- return 0;
-}
-
-static int socket_is_available(bNodeTree *UNUSED(ntree), bNodeSocket *sock, int allow_used)
-{
- if (nodeSocketIsHidden(sock))
- return 0;
-
- if (!allow_used && (sock->flag & SOCK_IN_USE))
- return 0;
-
- return 1;
-}
-
-static bNodeSocket *best_socket_output(bNodeTree *ntree, bNode *node, bNodeSocket *sock_target, int allow_multiple)
-{
- bNodeSocket *sock;
-
- /* first look for selected output */
- for (sock = node->outputs.first; sock; sock = sock->next) {
- if (!socket_is_available(ntree, sock, allow_multiple))
- continue;
-
- if (sock->flag & SELECT)
- return sock;
- }
-
- /* try to find a socket with a matching name */
- for (sock = node->outputs.first; sock; sock = sock->next) {
- if (!socket_is_available(ntree, sock, allow_multiple))
- continue;
-
- /* check for same types */
- if (sock->type == sock_target->type) {
- if (strcmp(sock->name, sock_target->name) == 0)
- return sock;
- }
- }
-
- /* otherwise settle for the first available socket of the right type */
- for (sock = node->outputs.first; sock; sock = sock->next) {
-
- if (!socket_is_available(ntree, sock, allow_multiple))
- continue;
-
- /* check for same types */
- if (sock->type == sock_target->type) {
- return sock;
- }
- }
-
- return NULL;
-}
-
-/* this is a bit complicated, but designed to prioritize finding
- * sockets of higher types, such as image, first */
-static bNodeSocket *best_socket_input(bNodeTree *ntree, bNode *node, int num, int replace)
-{
- bNodeSocket *sock;
- int socktype, maxtype = 0;
- int a = 0;
-
- for (sock = node->inputs.first; sock; sock = sock->next) {
- maxtype = MAX2(sock->type, maxtype);
- }
-
- /* find sockets of higher 'types' first (i.e. image) */
- for (socktype = maxtype; socktype >= 0; socktype--) {
- for (sock = node->inputs.first; sock; sock = sock->next) {
-
- if (!socket_is_available(ntree, sock, replace)) {
- a++;
- continue;
- }
-
- if (sock->type == socktype) {
- /* increment to make sure we don't keep finding
- * the same socket on every attempt running this function */
- a++;
- if (a > num)
- return sock;
- }
- }
- }
-
- return NULL;
-}
-
-static int snode_autoconnect_input(SpaceNode *snode, bNode *node_fr, bNodeSocket *sock_fr, bNode *node_to, bNodeSocket *sock_to, int replace)
-{
- bNodeTree *ntree = snode->edittree;
- bNodeLink *link;
-
- /* then we can connect */
- if (replace)
- nodeRemSocketLinks(ntree, sock_to);
-
- link = nodeAddLink(ntree, node_fr, sock_fr, node_to, sock_to);
- /* validate the new link */
- ntreeUpdateTree(ntree);
- if (!(link->flag & NODE_LINK_VALID)) {
- nodeRemLink(ntree, link);
- return 0;
- }
-
- snode_update(snode, node_to);
- return 1;
-}
-
-void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace)
-{
- bNodeTree *ntree = snode->edittree;
- ListBase *nodelist = MEM_callocN(sizeof(ListBase), "items_list");
- bNodeListItem *nli;
- bNode *node;
- int i, numlinks = 0;
-
- for (node = ntree->nodes.first; node; node = node->next) {
- if (node->flag & NODE_SELECT) {
- nli = MEM_mallocN(sizeof(bNodeListItem), "temporary node list item");
- nli->node = node;
- BLI_addtail(nodelist, nli);
- }
- }
-
- /* sort nodes left to right */
- BLI_sortlist(nodelist, sort_nodes_locx);
-
- for (nli = nodelist->first; nli; nli = nli->next) {
- bNode *node_fr, *node_to;
- bNodeSocket *sock_fr, *sock_to;
- int has_selected_inputs = 0;
-
- if (nli->next == NULL) break;
-
- node_fr = nli->node;
- node_to = nli->next->node;
-
- /* if there are selected sockets, connect those */
- for (sock_to = node_to->inputs.first; sock_to; sock_to = sock_to->next) {
- if (sock_to->flag & SELECT) {
- has_selected_inputs = 1;
-
- if (!socket_is_available(ntree, sock_to, replace))
- continue;
-
- /* check for an appropriate output socket to connect from */
- sock_fr = best_socket_output(ntree, node_fr, sock_to, allow_multiple);
- if (!sock_fr)
- continue;
-
- if (snode_autoconnect_input(snode, node_fr, sock_fr, node_to, sock_to, replace))
- ++numlinks;
- }
- }
-
- if (!has_selected_inputs) {
- /* no selected inputs, connect by finding suitable match */
- int num_inputs = BLI_countlist(&node_to->inputs);
-
- for (i = 0; i < num_inputs; i++) {
-
- /* find the best guess input socket */
- sock_to = best_socket_input(ntree, node_to, i, replace);
- if (!sock_to)
- continue;
-
- /* check for an appropriate output socket to connect from */
- sock_fr = best_socket_output(ntree, node_fr, sock_to, allow_multiple);
- if (!sock_fr)
- continue;
-
- if (snode_autoconnect_input(snode, node_fr, sock_fr, node_to, sock_to, replace)) {
- ++numlinks;
- break;
- }
- }
- }
- }
-
- if (numlinks > 0) {
- ntreeUpdateTree(ntree);
- }
-
- BLI_freelistN(nodelist);
- MEM_freeN(nodelist);
-}
-
-/* can be called from menus too, but they should do own undopush and redraws */
-bNode *node_add_node(SpaceNode *snode, Main *bmain, Scene *scene, bNodeTemplate *ntemp, float locx, float locy)
-{
- bNode *node = NULL, *gnode;
-
- node_deselect_all(snode);
-
- node = nodeAddNode(snode->edittree, ntemp);
-
- /* generics */
- if (node) {
- node->locx = locx;
- node->locy = locy + 60.0f; // arbitrary.. so its visible, (0,0) is top of node
- node_select(node);
-
- gnode = node_tree_get_editgroup(snode->nodetree);
- if (gnode) {
- node->locx -= gnode->locx;
- node->locy -= gnode->locy;
- }
-
- ntreeUpdateTree(snode->edittree);
- ED_node_set_active(bmain, snode->edittree, node);
-
- if (snode->nodetree->type == NTREE_COMPOSIT) {
- if (ELEM4(node->type, CMP_NODE_R_LAYERS, CMP_NODE_COMPOSITE, CMP_NODE_DEFOCUS, CMP_NODE_OUTPUT_FILE)) {
- node->id = &scene->id;
- }
- else if (ELEM3(node->type, CMP_NODE_MOVIECLIP, CMP_NODE_MOVIEDISTORTION, CMP_NODE_STABILIZE2D)) {
- node->id = (ID *)scene->clip;
- }
-
- ntreeCompositForceHidden(snode->edittree, scene);
- }
-
- if (node->id)
- id_us_plus(node->id);
-
- snode_update(snode, node);
- }
-
- if (snode->nodetree->type == NTREE_TEXTURE) {
- ntreeTexCheckCyclics(snode->edittree);
- }
-
- return node;
-}
-
/* ****************** Duplicate *********************** */
static void node_duplicate_reparent_recursive(bNode *node)
@@ -2716,764 +1282,19 @@ void NODE_OT_duplicate(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "keep_inputs", 0, "Keep Inputs", "Keep the input links to duplicated nodes");
}
-/* *************************** add link op ******************** */
-
-static void node_remove_extra_links(SpaceNode *snode, bNodeSocket *tsock, bNodeLink *link)
-{
- bNodeLink *tlink;
- bNodeSocket *sock;
-
- if (tsock && nodeCountSocketLinks(snode->edittree, link->tosock) > tsock->limit) {
-
- for (tlink = snode->edittree->links.first; tlink; tlink = tlink->next) {
- if (link != tlink && tlink->tosock == link->tosock)
- break;
- }
- if (tlink) {
- /* try to move the existing link to the next available socket */
- if (tlink->tonode) {
- /* is there a free input socket with the target type? */
- for (sock = tlink->tonode->inputs.first; sock; sock = sock->next) {
- if (sock->type == tlink->tosock->type)
- if (nodeCountSocketLinks(snode->edittree, sock) < sock->limit)
- break;
- }
- if (sock) {
- tlink->tosock = sock;
- sock->flag &= ~SOCK_HIDDEN;
- }
- else {
- nodeRemLink(snode->edittree, tlink);
- }
- }
- else
- nodeRemLink(snode->edittree, tlink);
-
- snode->edittree->update |= NTREE_UPDATE_LINKS;
- }
- }
-}
-
-/* loop that adds a nodelink, called by function below */
-/* in_out = starting socket */
-static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- ARegion *ar = CTX_wm_region(C);
- bNodeLinkDrag *nldrag = op->customdata;
- bNodeTree *ntree = snode->edittree;
- bNode *tnode;
- bNodeSocket *tsock = NULL;
- bNodeLink *link;
- LinkData *linkdata;
- int in_out;
-
- in_out = nldrag->in_out;
-
- UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1],
- &snode->mx, &snode->my);
-
- switch (event->type) {
- case MOUSEMOVE:
-
- if (in_out == SOCK_OUT) {
- if (node_find_indicated_socket(snode, &tnode, &tsock, SOCK_IN)) {
- for (linkdata = nldrag->links.first; linkdata; linkdata = linkdata->next) {
- link = linkdata->data;
-
- /* skip if this is already the target socket */
- if (link->tosock == tsock)
- continue;
- /* skip if socket is on the same node as the fromsock */
- if (tnode && link->fromnode == tnode)
- continue;
-
- /* attach links to the socket */
- link->tonode = tnode;
- link->tosock = tsock;
- /* add it to the node tree temporarily */
- if (BLI_findindex(&ntree->links, link) < 0)
- BLI_addtail(&ntree->links, link);
-
- ntree->update |= NTREE_UPDATE_LINKS;
- }
- ntreeUpdateTree(ntree);
- }
- else {
- int do_update = FALSE;
- for (linkdata = nldrag->links.first; linkdata; linkdata = linkdata->next) {
- link = linkdata->data;
-
- if (link->tonode || link->tosock) {
- BLI_remlink(&ntree->links, link);
- link->prev = link->next = NULL;
- link->tonode = NULL;
- link->tosock = NULL;
-
- ntree->update |= NTREE_UPDATE_LINKS;
- do_update = TRUE;
- }
- }
- if (do_update) {
- ntreeUpdateTree(ntree);
- }
- }
- }
- else {
- if (node_find_indicated_socket(snode, &tnode, &tsock, SOCK_OUT)) {
- for (linkdata = nldrag->links.first; linkdata; linkdata = linkdata->next) {
- link = linkdata->data;
-
- /* skip if this is already the target socket */
- if (link->fromsock == tsock)
- continue;
- /* skip if socket is on the same node as the fromsock */
- if (tnode && link->tonode == tnode)
- continue;
-
- /* attach links to the socket */
- link->fromnode = tnode;
- link->fromsock = tsock;
- /* add it to the node tree temporarily */
- if (BLI_findindex(&ntree->links, link) < 0)
- BLI_addtail(&ntree->links, link);
-
- ntree->update |= NTREE_UPDATE_LINKS;
- }
- ntreeUpdateTree(ntree);
- }
- else {
- int do_update = FALSE;
- for (linkdata = nldrag->links.first; linkdata; linkdata = linkdata->next) {
- link = linkdata->data;
-
- if (link->fromnode || link->fromsock) {
- BLI_remlink(&ntree->links, link);
- link->prev = link->next = NULL;
- link->fromnode = NULL;
- link->fromsock = NULL;
-
- ntree->update |= NTREE_UPDATE_LINKS;
- do_update = TRUE;
- }
- }
- if (do_update) {
- ntreeUpdateTree(ntree);
- }
- }
- }
-
- ED_region_tag_redraw(ar);
- break;
-
- case LEFTMOUSE:
- case RIGHTMOUSE:
- case MIDDLEMOUSE: {
- for (linkdata = nldrag->links.first; linkdata; linkdata = linkdata->next) {
- link = linkdata->data;
-
- if (link->tosock && link->fromsock) {
- /* send changed events for original tonode and new */
- if (link->tonode)
- snode_update(snode, link->tonode);
-
- /* we might need to remove a link */
- if (in_out == SOCK_OUT)
- node_remove_extra_links(snode, link->tosock, link);
-
- /* when linking to group outputs, update the socket type */
- /* XXX this should all be part of a generic update system */
- if (!link->tonode) {
- if (link->tosock->type != link->fromsock->type)
- nodeSocketSetType(link->tosock, link->fromsock->type);
- }
- }
- else if (outside_group_rect(snode) && (link->tonode || link->fromnode)) {
- /* automatically add new group socket */
- if (link->tonode && link->tosock) {
- link->fromsock = node_group_expose_socket(ntree, link->tosock, SOCK_IN);
- link->fromnode = NULL;
- if (BLI_findindex(&ntree->links, link) < 0)
- BLI_addtail(&ntree->links, link);
-
- ntree->update |= NTREE_UPDATE_GROUP_IN | NTREE_UPDATE_LINKS;
- }
- else if (link->fromnode && link->fromsock) {
- link->tosock = node_group_expose_socket(ntree, link->fromsock, SOCK_OUT);
- link->tonode = NULL;
- if (BLI_findindex(&ntree->links, link) < 0)
- BLI_addtail(&ntree->links, link);
-
- ntree->update |= NTREE_UPDATE_GROUP_OUT | NTREE_UPDATE_LINKS;
- }
- }
- else
- nodeRemLink(ntree, link);
- }
-
- ntreeUpdateTree(ntree);
- snode_notify(C, snode);
- snode_dag_update(C, snode);
-
- BLI_remlink(&snode->linkdrag, nldrag);
- /* links->data pointers are either held by the tree or freed already */
- BLI_freelistN(&nldrag->links);
- MEM_freeN(nldrag);
-
- return OPERATOR_FINISHED;
- }
- }
-
- return OPERATOR_RUNNING_MODAL;
-}
-
-/* return 1 when socket clicked */
-static bNodeLinkDrag *node_link_init(SpaceNode *snode, int detach)
+int ED_node_select_check(ListBase *lb)
{
bNode *node;
- bNodeSocket *sock;
- bNodeLink *link, *link_next, *oplink;
- bNodeLinkDrag *nldrag = NULL;
- LinkData *linkdata;
- int num_links;
-
- /* output indicated? */
- if (node_find_indicated_socket(snode, &node, &sock, SOCK_OUT)) {
- nldrag = MEM_callocN(sizeof(bNodeLinkDrag), "drag link op customdata");
-
- num_links = nodeCountSocketLinks(snode->edittree, sock);
- if (num_links > 0 && (num_links >= sock->limit || detach)) {
- /* dragged links are fixed on input side */
- nldrag->in_out = SOCK_IN;
- /* detach current links and store them in the operator data */
- for (link = snode->edittree->links.first; link; link = link_next) {
- link_next = link->next;
- if (link->fromsock == sock) {
- linkdata = MEM_callocN(sizeof(LinkData), "drag link op link data");
- linkdata->data = oplink = MEM_callocN(sizeof(bNodeLink), "drag link op link");
- *oplink = *link;
- oplink->next = oplink->prev = NULL;
- BLI_addtail(&nldrag->links, linkdata);
- nodeRemLink(snode->edittree, link);
- }
- }
- }
- else {
- /* dragged links are fixed on output side */
- nldrag->in_out = SOCK_OUT;
- /* create a new link */
- linkdata = MEM_callocN(sizeof(LinkData), "drag link op link data");
- linkdata->data = oplink = MEM_callocN(sizeof(bNodeLink), "drag link op link");
- oplink->fromnode = node;
- oplink->fromsock = sock;
- BLI_addtail(&nldrag->links, linkdata);
- }
- }
- /* or an input? */
- else if (node_find_indicated_socket(snode, &node, &sock, SOCK_IN)) {
- nldrag = MEM_callocN(sizeof(bNodeLinkDrag), "drag link op customdata");
-
- num_links = nodeCountSocketLinks(snode->edittree, sock);
- if (num_links > 0 && (num_links >= sock->limit || detach)) {
- /* dragged links are fixed on output side */
- nldrag->in_out = SOCK_OUT;
- /* detach current links and store them in the operator data */
- for (link = snode->edittree->links.first; link; link = link_next) {
- link_next = link->next;
- if (link->tosock == sock) {
- linkdata = MEM_callocN(sizeof(LinkData), "drag link op link data");
- linkdata->data = oplink = MEM_callocN(sizeof(bNodeLink), "drag link op link");
- *oplink = *link;
- oplink->next = oplink->prev = NULL;
- BLI_addtail(&nldrag->links, linkdata);
- nodeRemLink(snode->edittree, link);
-
- /* send changed event to original link->tonode */
- if (node)
- snode_update(snode, node);
- }
- }
- }
- else {
- /* dragged links are fixed on input side */
- nldrag->in_out = SOCK_IN;
- /* create a new link */
- linkdata = MEM_callocN(sizeof(LinkData), "drag link op link data");
- linkdata->data = oplink = MEM_callocN(sizeof(bNodeLink), "drag link op link");
- oplink->tonode = node;
- oplink->tosock = sock;
- BLI_addtail(&nldrag->links, linkdata);
- }
- }
-
- return nldrag;
-}
-
-static int node_link_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- ARegion *ar = CTX_wm_region(C);
- bNodeLinkDrag *nldrag;
- int detach = RNA_boolean_get(op->ptr, "detach");
-
- UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1],
- &snode->mx, &snode->my);
-
- ED_preview_kill_jobs(C);
-
- nldrag = node_link_init(snode, detach);
-
- if (nldrag) {
- op->customdata = nldrag;
- BLI_addtail(&snode->linkdrag, nldrag);
-
- /* add modal handler */
- WM_event_add_modal_handler(C, op);
-
- return OPERATOR_RUNNING_MODAL;
- }
- else
- return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;
-}
-
-static int node_link_cancel(bContext *C, wmOperator *op)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNodeLinkDrag *nldrag = op->customdata;
-
- BLI_remlink(&snode->linkdrag, nldrag);
-
- BLI_freelistN(&nldrag->links);
- MEM_freeN(nldrag);
-
- return OPERATOR_CANCELLED;
-}
-
-void NODE_OT_link(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Link Nodes";
- ot->idname = "NODE_OT_link";
- ot->description = "Use the mouse to create a link between two nodes";
-
- /* api callbacks */
- ot->invoke = node_link_invoke;
- ot->modal = node_link_modal;
-// ot->exec = node_link_exec;
- ot->poll = ED_operator_node_active;
- ot->cancel = node_link_cancel;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING;
-
- RNA_def_boolean(ot->srna, "detach", FALSE, "Detach", "Detach and redirect existing links");
-}
-
-/* ********************** Make Link operator ***************** */
-
-/* makes a link between selected output and input sockets */
-static int node_make_link_exec(bContext *C, wmOperator *op)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- int replace = RNA_boolean_get(op->ptr, "replace");
-
- ED_preview_kill_jobs(C);
-
- snode_autoconnect(snode, 1, replace);
-
- /* deselect sockets after linking */
- node_deselect_all_input_sockets(snode, 0);
- node_deselect_all_output_sockets(snode, 0);
-
- ntreeUpdateTree(snode->edittree);
- snode_notify(C, snode);
- snode_dag_update(C, snode);
-
- return OPERATOR_FINISHED;
-}
-
-void NODE_OT_link_make(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Make Links";
- ot->description = "Makes a link between selected output in input sockets";
- ot->idname = "NODE_OT_link_make";
-
- /* callbacks */
- ot->exec = node_make_link_exec;
- ot->poll = ED_operator_node_active; // XXX we need a special poll which checks that there are selected input/output sockets
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- RNA_def_boolean(ot->srna, "replace", 0, "Replace", "Replace socket connections with the new links");
-}
-
-/* ********************** Add reroute operator ***************** */
-#define LINK_RESOL 12
-static int add_reroute_intersect_check(bNodeLink *link, float mcoords[][2], int tot, float result[2])
-{
- float coord_array[LINK_RESOL + 1][2];
- int i, b;
-
- if (node_link_bezier_points(NULL, NULL, link, coord_array, LINK_RESOL)) {
-
- for (i = 0; i < tot - 1; i++)
- for (b = 0; b < LINK_RESOL; b++)
- if (isect_line_line_v2(mcoords[i], mcoords[i + 1], coord_array[b], coord_array[b + 1]) > 0) {
- result[0] = (mcoords[i][0] + mcoords[i + 1][0]) / 2.0f;
- result[1] = (mcoords[i][1] + mcoords[i + 1][1]) / 2.0f;
- return 1;
- }
- }
- return 0;
-}
-
-static int add_reroute_exec(bContext *C, wmOperator *op)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- ARegion *ar = CTX_wm_region(C);
- float mcoords[256][2];
- int i = 0;
-
- RNA_BEGIN(op->ptr, itemptr, "path")
- {
- float loc[2];
-
- RNA_float_get_array(&itemptr, "loc", loc);
- UI_view2d_region_to_view(&ar->v2d, (short)loc[0], (short)loc[1],
- &mcoords[i][0], &mcoords[i][1]);
- i++;
- if (i >= 256) break;
- }
- RNA_END;
-
- if (i > 1) {
- bNodeLink *link;
- float insertPoint[2];
-
- ED_preview_kill_jobs(C);
-
- for (link = snode->edittree->links.first; link; link = link->next) {
- if (add_reroute_intersect_check(link, mcoords, i, insertPoint)) {
- bNodeTemplate ntemp;
- bNode *rerouteNode;
-
- node_deselect_all(snode);
-
- ntemp.type = NODE_REROUTE;
- rerouteNode = nodeAddNode(snode->edittree, &ntemp);
- rerouteNode->locx = insertPoint[0];
- rerouteNode->locy = insertPoint[1];
-
- nodeAddLink(snode->edittree, link->fromnode, link->fromsock, rerouteNode, rerouteNode->inputs.first);
- link->fromnode = rerouteNode;
- link->fromsock = rerouteNode->outputs.first;
-
- break; // add one reroute at the time.
- }
- }
-
- ntreeUpdateTree(snode->edittree);
- snode_notify(C, snode);
- snode_dag_update(C, snode);
- return OPERATOR_FINISHED;
- }
-
- return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;
-}
-
-void NODE_OT_add_reroute(wmOperatorType *ot)
-{
- PropertyRNA *prop;
-
- ot->name = "Add reroute";
- ot->idname = "NODE_OT_add_reroute";
-
- ot->invoke = WM_gesture_lines_invoke;
- ot->modal = WM_gesture_lines_modal;
- ot->exec = add_reroute_exec;
- ot->cancel = WM_gesture_lines_cancel;
-
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- prop = RNA_def_property(ot->srna, "path", PROP_COLLECTION, PROP_NONE);
- RNA_def_property_struct_runtime(prop, &RNA_OperatorMousePath);
- /* internal */
- RNA_def_int(ot->srna, "cursor", BC_CROSSCURSOR, 0, INT_MAX, "Cursor", "", 0, INT_MAX);
-}
-
-
-/* ********************** Cut Link operator ***************** */
-static int cut_links_intersect(bNodeLink *link, float mcoords[][2], int tot)
-{
- float coord_array[LINK_RESOL + 1][2];
- int i, b;
-
- if (node_link_bezier_points(NULL, NULL, link, coord_array, LINK_RESOL)) {
-
- for (i = 0; i < tot - 1; i++)
- for (b = 0; b < LINK_RESOL; b++)
- if (isect_line_line_v2(mcoords[i], mcoords[i + 1], coord_array[b], coord_array[b + 1]) > 0)
- return 1;
- }
- return 0;
-}
-
-static int cut_links_exec(bContext *C, wmOperator *op)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- ARegion *ar = CTX_wm_region(C);
- float mcoords[256][2];
- int i = 0;
-
- RNA_BEGIN(op->ptr, itemptr, "path")
- {
- float loc[2];
-
- RNA_float_get_array(&itemptr, "loc", loc);
- UI_view2d_region_to_view(&ar->v2d, (int)loc[0], (int)loc[1],
- &mcoords[i][0], &mcoords[i][1]);
- i++;
- if (i >= 256) break;
- }
- RNA_END;
-
- if (i > 1) {
- bNodeLink *link, *next;
-
- ED_preview_kill_jobs(C);
-
- for (link = snode->edittree->links.first; link; link = next) {
- next = link->next;
-
- if (cut_links_intersect(link, mcoords, i)) {
- snode_update(snode, link->tonode);
- nodeRemLink(snode->edittree, link);
- }
- }
-
- ntreeUpdateTree(snode->edittree);
- snode_notify(C, snode);
- snode_dag_update(C, snode);
-
- return OPERATOR_FINISHED;
- }
-
- return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;
-}
-
-void NODE_OT_links_cut(wmOperatorType *ot)
-{
- PropertyRNA *prop;
-
- ot->name = "Cut links";
- ot->idname = "NODE_OT_links_cut";
- ot->description = "Use the mouse to cut (remove) some links";
-
- ot->invoke = WM_gesture_lines_invoke;
- ot->modal = WM_gesture_lines_modal;
- ot->exec = cut_links_exec;
- ot->cancel = WM_gesture_lines_cancel;
-
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- prop = RNA_def_property(ot->srna, "path", PROP_COLLECTION, PROP_NONE);
- RNA_def_property_struct_runtime(prop, &RNA_OperatorMousePath);
- /* internal */
- RNA_def_int(ot->srna, "cursor", BC_KNIFECURSOR, 0, INT_MAX, "Cursor", "", 0, INT_MAX);
-}
-
-/* ********************** Detach links operator ***************** */
-
-static int detach_links_exec(bContext *C, wmOperator *UNUSED(op))
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNodeTree *ntree = snode->edittree;
- bNode *node;
-
- ED_preview_kill_jobs(C);
-
- for (node = ntree->nodes.first; node; node = node->next) {
- if (node->flag & SELECT) {
- nodeInternalRelink(ntree, node);
- }
- }
-
- ntreeUpdateTree(ntree);
-
- snode_notify(C, snode);
- snode_dag_update(C, snode);
-
- return OPERATOR_FINISHED;
-}
-
-void NODE_OT_links_detach(wmOperatorType *ot)
-{
- ot->name = "Detach Links";
- ot->idname = "NODE_OT_links_detach";
- ot->description = "Remove all links to selected nodes, and try to connect neighbor nodes together";
-
- ot->exec = detach_links_exec;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-}
-
-/* ********************* automatic node insert on dragging ******************* */
-
-/* assumes sockets in list */
-static bNodeSocket *socket_best_match(ListBase *sockets)
-{
- bNodeSocket *sock;
- int type, maxtype = 0;
-
- /* find type range */
- for (sock = sockets->first; sock; sock = sock->next)
- maxtype = MAX2(sock->type, maxtype);
-
- /* try all types, starting from 'highest' (i.e. colors, vectors, values) */
- for (type = maxtype; type >= 0; --type) {
- for (sock = sockets->first; sock; sock = sock->next) {
- if (!nodeSocketIsHidden(sock) && type == sock->type) {
- return sock;
- }
- }
- }
-
- /* no visible sockets, unhide first of highest type */
- for (type = maxtype; type >= 0; --type) {
- for (sock = sockets->first; sock; sock = sock->next) {
- if (type == sock->type) {
- sock->flag &= ~SOCK_HIDDEN;
- return sock;
- }
+ for (node = lb->first; node; node = node->next) {
+ if (node->flag & NODE_SELECT) {
+ return TRUE;
}
}
-
- return NULL;
-}
-/* prevent duplicate testing code below */
-static SpaceNode *ed_node_link_conditions(ScrArea *sa, bNode **select)
-{
- SpaceNode *snode = sa ? sa->spacedata.first : NULL;
- bNode *node;
- bNodeLink *link;
-
- /* no unlucky accidents */
- if (sa == NULL || sa->spacetype != SPACE_NODE) return NULL;
-
- *select = NULL;
-
- for (node = snode->edittree->nodes.first; node; node = node->next) {
- if (node->flag & SELECT) {
- if (*select)
- break;
- else
- *select = node;
- }
- }
- /* only one selected */
- if (node || *select == NULL) return NULL;
-
- /* correct node */
- if ((*select)->inputs.first == NULL || (*select)->outputs.first == NULL) return NULL;
-
- /* test node for links */
- for (link = snode->edittree->links.first; link; link = link->next) {
- if (link->tonode == *select || link->fromnode == *select)
- return NULL;
- }
-
- return snode;
+ return FALSE;
}
-/* assumes link with NODE_LINKFLAG_HILITE set */
-void ED_node_link_insert(ScrArea *sa)
-{
- bNode *node, *select;
- SpaceNode *snode = ed_node_link_conditions(sa, &select);
- bNodeLink *link;
- bNodeSocket *sockto;
-
- if (snode == NULL) return;
-
- /* get the link */
- for (link = snode->edittree->links.first; link; link = link->next)
- if (link->flag & NODE_LINKFLAG_HILITE)
- break;
-
- if (link) {
- node = link->tonode;
- sockto = link->tosock;
-
- link->tonode = select;
- link->tosock = socket_best_match(&select->inputs);
- link->flag &= ~NODE_LINKFLAG_HILITE;
-
- nodeAddLink(snode->edittree, select, socket_best_match(&select->outputs), node, sockto);
- ntreeUpdateTree(snode->edittree); /* needed for pointers */
- snode_update(snode, select);
- ED_node_changed_update(snode->id, select);
- }
-}
-
-
-/* test == 0, clear all intersect flags */
-void ED_node_link_intersect_test(ScrArea *sa, int test)
-{
- bNode *select;
- SpaceNode *snode = ed_node_link_conditions(sa, &select);
- bNodeLink *link, *selink = NULL;
- float mcoords[6][2];
-
- if (snode == NULL) return;
-
- /* clear flags */
- for (link = snode->edittree->links.first; link; link = link->next)
- link->flag &= ~NODE_LINKFLAG_HILITE;
-
- if (test == 0) return;
-
- /* okay, there's 1 node, without links, now intersect */
- mcoords[0][0] = select->totr.xmin;
- mcoords[0][1] = select->totr.ymin;
- mcoords[1][0] = select->totr.xmax;
- mcoords[1][1] = select->totr.ymin;
- mcoords[2][0] = select->totr.xmax;
- mcoords[2][1] = select->totr.ymax;
- mcoords[3][0] = select->totr.xmin;
- mcoords[3][1] = select->totr.ymax;
- mcoords[4][0] = select->totr.xmin;
- mcoords[4][1] = select->totr.ymin;
- mcoords[5][0] = select->totr.xmax;
- mcoords[5][1] = select->totr.ymax;
-
- /* we only tag a single link for intersect now */
- /* idea; use header dist when more? */
- for (link = snode->edittree->links.first; link; link = link->next) {
-
- if (cut_links_intersect(link, mcoords, 5)) { /* intersect code wants edges */
- if (selink)
- break;
- selink = link;
- }
- }
-
- if (link == NULL && selink)
- selink->flag |= NODE_LINKFLAG_HILITE;
-}
-
-
/* ******************************** */
// XXX some code needing updating to operators...
@@ -3594,7 +1415,6 @@ int node_render_changed_exec(bContext *C, wmOperator *UNUSED(op))
void NODE_OT_render_changed(wmOperatorType *ot)
{
-
ot->name = "Render Changed Layer";
ot->idname = "NODE_OT_render_changed";
ot->description = "Render current scene, when input node's layer has been changed";
@@ -3607,323 +1427,6 @@ void NODE_OT_render_changed(wmOperatorType *ot)
ot->flag = 0;
}
-
-/* ****************** Make Group operator ******************* */
-
-static int node_group_make_test(bNodeTree *ntree, bNode *gnode)
-{
- bNode *node;
- bNodeLink *link;
- int totnode = 0;
-
- /* is there something to group? also do some clearing */
- for (node = ntree->nodes.first; node; node = node->next) {
- if (node == gnode)
- continue;
-
- if (node->flag & NODE_SELECT) {
- /* no groups in groups */
- if (node->type == NODE_GROUP)
- return 0;
- totnode++;
- }
-
- node->done = 0;
- }
- if (totnode == 0) return 0;
-
- /* check if all connections are OK, no unselected node has both
- * inputs and outputs to a selection */
- for (link = ntree->links.first; link; link = link->next) {
- if (link->fromnode && link->tonode && link->fromnode->flag & NODE_SELECT && link->fromnode != gnode)
- link->tonode->done |= 1;
- if (link->fromnode && link->tonode && link->tonode->flag & NODE_SELECT && link->tonode != gnode)
- link->fromnode->done |= 2;
- }
-
- for (node = ntree->nodes.first; node; node = node->next) {
- if (node == gnode)
- continue;
- if ((node->flag & NODE_SELECT) == 0)
- if (node->done == 3)
- break;
- }
- if (node)
- return 0;
-
- return 1;
-}
-
-static void node_get_selected_minmax(bNodeTree *ntree, bNode *gnode, float *min, float *max)
-{
- bNode *node;
- INIT_MINMAX2(min, max);
- for (node = ntree->nodes.first; node; node = node->next) {
- if (node == gnode)
- continue;
- if (node->flag & NODE_SELECT) {
- DO_MINMAX2((&node->locx), min, max);
- }
- }
-}
-
-static int node_group_make_insert_selected(bNodeTree *ntree, bNode *gnode)
-{
- bNodeTree *ngroup = (bNodeTree *)gnode->id;
- bNodeLink *link, *linkn;
- bNode *node, *nextn;
- bNodeSocket *gsock;
- ListBase anim_basepaths = {NULL, NULL};
- float min[2], max[2];
-
- /* deselect all nodes in the target tree */
- for (node = ngroup->nodes.first; node; node = node->next)
- node_deselect(node);
-
- node_get_selected_minmax(ntree, gnode, min, max);
-
- /* move nodes over */
- for (node = ntree->nodes.first; node; node = nextn) {
- nextn = node->next;
- if (node == gnode)
- continue;
- if (node->flag & NODE_SELECT) {
- /* keep track of this node's RNA "base" path (the part of the pat identifying the node)
- * if the old nodetree has animation data which potentially covers this node
- */
- if (ntree->adt) {
- PointerRNA ptr;
- char *path;
-
- RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr);
- path = RNA_path_from_ID_to_struct(&ptr);
-
- if (path)
- BLI_addtail(&anim_basepaths, BLI_genericNodeN(path));
- }
-
- /* ensure valid parent pointers, detach if parent stays outside the group */
- if (node->parent && !(node->parent->flag & NODE_SELECT))
- nodeDetachNode(node);
-
- /* change node-collection membership */
- BLI_remlink(&ntree->nodes, node);
- BLI_addtail(&ngroup->nodes, node);
-
- node->locx -= 0.5f * (min[0] + max[0]);
- node->locy -= 0.5f * (min[1] + max[1]);
- }
- }
-
- /* move animation data over */
- if (ntree->adt) {
- LinkData *ld, *ldn = NULL;
-
- BKE_animdata_separate_by_basepath(&ntree->id, &ngroup->id, &anim_basepaths);
-
- /* paths + their wrappers need to be freed */
- for (ld = anim_basepaths.first; ld; ld = ldn) {
- ldn = ld->next;
-
- MEM_freeN(ld->data);
- BLI_freelinkN(&anim_basepaths, ld);
- }
- }
-
- /* node groups don't use internal cached data */
- ntreeFreeCache(ngroup);
-
- /* relink external sockets */
- for (link = ntree->links.first; link; link = linkn) {
- int fromselect = (link->fromnode && (link->fromnode->flag & NODE_SELECT) && link->fromnode != gnode);
- int toselect = (link->tonode && (link->tonode->flag & NODE_SELECT) && link->tonode != gnode);
- linkn = link->next;
-
- if (gnode && ((fromselect && link->tonode == gnode) || (toselect && link->fromnode == gnode))) {
- /* remove all links to/from the gnode.
- * this can remove link information, but there's no general way to preserve it.
- */
- nodeRemLink(ntree, link);
- }
- else if (fromselect && toselect) {
- BLI_remlink(&ntree->links, link);
- BLI_addtail(&ngroup->links, link);
- }
- else if (toselect) {
- gsock = node_group_expose_socket(ngroup, link->tosock, SOCK_IN);
- link->tosock->link = nodeAddLink(ngroup, NULL, gsock, link->tonode, link->tosock);
- link->tosock = node_group_add_extern_socket(ntree, &gnode->inputs, SOCK_IN, gsock);
- link->tonode = gnode;
- }
- else if (fromselect) {
- /* search for existing group node socket */
- for (gsock = ngroup->outputs.first; gsock; gsock = gsock->next)
- if (gsock->link && gsock->link->fromsock == link->fromsock)
- break;
- if (!gsock) {
- gsock = node_group_expose_socket(ngroup, link->fromsock, SOCK_OUT);
- gsock->link = nodeAddLink(ngroup, link->fromnode, link->fromsock, NULL, gsock);
- link->fromsock = node_group_add_extern_socket(ntree, &gnode->outputs, SOCK_OUT, gsock);
- }
- else
- link->fromsock = node_group_find_output(gnode, gsock);
- link->fromnode = gnode;
- }
- }
-
- /* update of the group tree */
- ngroup->update |= NTREE_UPDATE;
- /* update of the tree containing the group instance node */
- ntree->update |= NTREE_UPDATE_NODES | NTREE_UPDATE_LINKS;
-
- return 1;
-}
-
-static bNode *node_group_make_from_selected(bNodeTree *ntree)
-{
- bNode *gnode;
- bNodeTree *ngroup;
- float min[2], max[2];
- bNodeTemplate ntemp;
-
- node_get_selected_minmax(ntree, NULL, min, max);
-
- /* new nodetree */
- ngroup = ntreeAddTree("NodeGroup", ntree->type, NODE_GROUP);
-
- /* make group node */
- ntemp.type = NODE_GROUP;
- ntemp.ngroup = ngroup;
- gnode = nodeAddNode(ntree, &ntemp);
- gnode->locx = 0.5f * (min[0] + max[0]);
- gnode->locy = 0.5f * (min[1] + max[1]);
-
- node_group_make_insert_selected(ntree, gnode);
-
- /* update of the tree containing the group instance node */
- ntree->update |= NTREE_UPDATE_NODES;
-
- return gnode;
-}
-
-typedef enum eNodeGroupMakeType {
- NODE_GM_NEW,
- NODE_GM_INSERT
-} eNodeGroupMakeType;
-
-/* Operator Property */
-EnumPropertyItem node_group_make_types[] = {
- {NODE_GM_NEW, "NEW", 0, "New", "Create a new node group from selected nodes"},
- {NODE_GM_INSERT, "INSERT", 0, "Insert", "Insert into active node group"},
- {0, NULL, 0, NULL, NULL}
-};
-
-static int node_group_make_exec(bContext *C, wmOperator *op)
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNode *gnode;
- int type = RNA_enum_get(op->ptr, "type");
-
- if (snode->edittree != snode->nodetree) {
- BKE_report(op->reports, RPT_WARNING, "Can not add a new Group in a Group");
- return OPERATOR_CANCELLED;
- }
-
- /* for time being... is too complex to handle */
- if (snode->treetype == NTREE_COMPOSIT) {
- for (gnode = snode->nodetree->nodes.first; gnode; gnode = gnode->next) {
- if (gnode->flag & SELECT)
- if (gnode->type == CMP_NODE_R_LAYERS)
- break;
- }
-
- if (gnode) {
- BKE_report(op->reports, RPT_WARNING, "Can not add RenderLayer in a Group");
- return OPERATOR_CANCELLED;
- }
- }
-
- ED_preview_kill_jobs(C);
-
- switch (type) {
- case NODE_GM_NEW:
- if (node_group_make_test(snode->nodetree, NULL)) {
- gnode = node_group_make_from_selected(snode->nodetree);
- }
- else {
- BKE_report(op->reports, RPT_WARNING, "Can not make Group");
- return OPERATOR_CANCELLED;
- }
- break;
- case NODE_GM_INSERT:
- gnode = nodeGetActive(snode->nodetree);
- if (!gnode || gnode->type != NODE_GROUP) {
- BKE_report(op->reports, RPT_WARNING, "No active Group node");
- return OPERATOR_CANCELLED;
- }
- if (node_group_make_test(snode->nodetree, gnode)) {
- node_group_make_insert_selected(snode->nodetree, gnode);
- }
- else {
- BKE_report(op->reports, RPT_WARNING, "Can not insert into Group");
- return OPERATOR_CANCELLED;
- }
- break;
- }
-
- if (gnode) {
- nodeSetActive(snode->nodetree, gnode);
- snode_make_group_editable(snode, gnode);
- }
-
- if (gnode)
- ntreeUpdateTree((bNodeTree *)gnode->id);
- ntreeUpdateTree(snode->nodetree);
-
- snode_notify(C, snode);
- snode_dag_update(C, snode);
-
- return OPERATOR_FINISHED;
-}
-
-static int node_group_make_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNode *act = nodeGetActive(snode->edittree);
- uiPopupMenu *pup = uiPupMenuBegin(C, "Make Group", ICON_NONE);
- uiLayout *layout = uiPupMenuLayout(pup);
-
- uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
- uiItemEnumO(layout, "NODE_OT_group_make", NULL, 0, "type", NODE_GM_NEW);
-
- /* if active node is a group, add insert option */
- if (act && act->type == NODE_GROUP) {
- uiItemEnumO(layout, "NODE_OT_group_make", NULL, 0, "type", NODE_GM_INSERT);
- }
-
- uiPupMenuEnd(C, pup);
-
- return OPERATOR_CANCELLED;
-}
-
-void NODE_OT_group_make(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Group";
- ot->description = "Make group from selected nodes";
- ot->idname = "NODE_OT_group_make";
-
- /* api callbacks */
- ot->invoke = node_group_make_invoke;
- ot->exec = node_group_make_exec;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- RNA_def_enum(ot->srna, "type", node_group_make_types, NODE_GM_NEW, "Type", "");
-}
-
/* ****************** Hide operator *********************** */
static void node_flag_toggle_exec(SpaceNode *snode, int toggle_flag)
@@ -3957,7 +1460,7 @@ static void node_flag_toggle_exec(SpaceNode *snode, int toggle_flag)
if (toggle_flag == NODE_OPTIONS && (node->typeinfo->flag & NODE_OPTIONS) == 0)
continue;
- if ( (tot_eq && tot_neq) || tot_eq == 0)
+ if ((tot_eq && tot_neq) || tot_eq == 0)
node->flag |= toggle_flag;
else
node->flag &= ~toggle_flag;
@@ -3974,9 +1477,9 @@ static int node_hide_toggle_exec(bContext *C, wmOperator *UNUSED(op))
return OPERATOR_CANCELLED;
node_flag_toggle_exec(snode, NODE_HIDDEN);
-
- snode_notify(C, snode);
-
+
+ WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, NULL);
+
return OPERATOR_FINISHED;
}
@@ -4037,7 +1540,7 @@ static int node_options_toggle_exec(bContext *C, wmOperator *UNUSED(op))
node_flag_toggle_exec(snode, NODE_OPTIONS);
- snode_notify(C, snode);
+ WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, NULL);
return OPERATOR_FINISHED;
}
@@ -4088,7 +1591,7 @@ static int node_socket_toggle_exec(bContext *C, wmOperator *UNUSED(op))
ntreeUpdateTree(snode->edittree);
- snode_notify(C, snode);
+ WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, NULL);
return OPERATOR_FINISHED;
}
@@ -4231,202 +1734,6 @@ void NODE_OT_delete_reconnect(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
-/* ****************** Show Cyclic Dependencies Operator ******************* */
-
-static int node_show_cycles_exec(bContext *C, wmOperator *UNUSED(op))
-{
- SpaceNode *snode = CTX_wm_space_node(C);
-
- /* this is just a wrapper around this call... */
- ntreeUpdateTree(snode->nodetree);
- snode_notify(C, snode);
-
- return OPERATOR_FINISHED;
-}
-
-void NODE_OT_show_cyclic_dependencies(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Show Cyclic Dependencies";
- ot->description = "Sort the nodes and show the cyclic dependencies between the nodes";
- ot->idname = "NODE_OT_show_cyclic_dependencies";
-
- /* callbacks */
- ot->exec = node_show_cycles_exec;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-}
-
-/* ****************** Add File Node Operator ******************* */
-
-static int node_add_file_exec(bContext *C, wmOperator *op)
-{
- Main *bmain = CTX_data_main(C);
- Scene *scene = CTX_data_scene(C);
- SpaceNode *snode = CTX_wm_space_node(C);
- bNode *node;
- Image *ima = NULL;
- bNodeTemplate ntemp;
-
- /* check input variables */
- if (RNA_struct_property_is_set(op->ptr, "filepath")) {
- char path[FILE_MAX];
- RNA_string_get(op->ptr, "filepath", path);
-
- errno = 0;
-
- ima = BKE_image_load_exists(path);
-
- if (!ima) {
- BKE_reportf(op->reports, RPT_ERROR, "Can't read: \"%s\", %s", path, errno ? strerror(errno) : "Unsupported image format");
- return OPERATOR_CANCELLED;
- }
- }
- else if (RNA_struct_property_is_set(op->ptr, "name")) {
- char name[MAX_ID_NAME - 2];
- RNA_string_get(op->ptr, "name", name);
- ima = (Image *)BKE_libblock_find_name(ID_IM, name);
-
- if (!ima) {
- BKE_reportf(op->reports, RPT_ERROR, "Image named \"%s\", not found", name);
- return OPERATOR_CANCELLED;
- }
- }
-
- node_deselect_all(snode);
-
- switch (snode->nodetree->type) {
- case NTREE_SHADER:
- ntemp.type = SH_NODE_TEX_IMAGE;
- break;
- case NTREE_TEXTURE:
- ntemp.type = TEX_NODE_IMAGE;
- break;
- case NTREE_COMPOSIT:
- ntemp.type = CMP_NODE_IMAGE;
- break;
- default:
- return OPERATOR_CANCELLED;
- }
-
- ED_preview_kill_jobs(C);
-
- node = node_add_node(snode, bmain, scene, &ntemp, snode->mx, snode->my);
-
- if (!node) {
- BKE_report(op->reports, RPT_WARNING, "Could not add an image node");
- return OPERATOR_CANCELLED;
- }
-
- node->id = (ID *)ima;
-
- snode_notify(C, snode);
- snode_dag_update(C, snode);
-
- return OPERATOR_FINISHED;
-}
-
-static int node_add_file_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
- ARegion *ar = CTX_wm_region(C);
- SpaceNode *snode = CTX_wm_space_node(C);
-
- /* convert mouse coordinates to v2d space */
- UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1],
- &snode->mx, &snode->my);
-
- if (RNA_struct_property_is_set(op->ptr, "filepath") || RNA_struct_property_is_set(op->ptr, "name"))
- return node_add_file_exec(C, op);
- else
- return WM_operator_filesel(C, op, event);
-}
-
-void NODE_OT_add_file(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Add File Node";
- ot->description = "Add a file node to the current node editor";
- ot->idname = "NODE_OT_add_file";
-
- /* callbacks */
- ot->exec = node_add_file_exec;
- ot->invoke = node_add_file_invoke;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY); //XXX TODO, relative_path
- RNA_def_string(ot->srna, "name", "Image", MAX_ID_NAME - 2, "Name", "Datablock name to assign");
-}
-
-/********************** New node tree operator *********************/
-
-static int new_node_tree_exec(bContext *C, wmOperator *op)
-{
- SpaceNode *snode;
- bNodeTree *ntree;
- PointerRNA ptr, idptr;
- PropertyRNA *prop;
- int treetype;
- char treename[MAX_ID_NAME - 2] = "NodeTree";
-
- /* retrieve state */
- snode = CTX_wm_space_node(C);
-
- if (RNA_struct_property_is_set(op->ptr, "type"))
- treetype = RNA_enum_get(op->ptr, "type");
- else
- treetype = snode->treetype;
-
- if (RNA_struct_property_is_set(op->ptr, "name"))
- RNA_string_get(op->ptr, "name", treename);
-
- ntree = ntreeAddTree(treename, treetype, 0);
- if (!ntree)
- return OPERATOR_CANCELLED;
-
- /* hook into UI */
- uiIDContextProperty(C, &ptr, &prop);
-
- if (prop) {
- RNA_id_pointer_create(&ntree->id, &idptr);
- RNA_property_pointer_set(&ptr, prop, idptr);
- /* RNA_property_pointer_set increases the user count,
- * fixed here as the editor is the initial user.
- */
- --ntree->id.us;
- RNA_property_update(C, &ptr, prop);
- }
- else if (snode) {
- Scene *scene = CTX_data_scene(C);
- snode->nodetree = ntree;
-
- ED_node_tree_update(snode, scene);
- }
-
- return OPERATOR_FINISHED;
-}
-
-void NODE_OT_new_node_tree(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "New Node Tree";
- ot->idname = "NODE_OT_new_node_tree";
- ot->description = "Create a new node tree";
-
- /* api callbacks */
- ot->exec = new_node_tree_exec;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- RNA_def_enum(ot->srna, "type", nodetree_type_items, NTREE_COMPOSIT, "Tree Type", "");
- RNA_def_string(ot->srna, "name", "NodeTree", MAX_ID_NAME - 2, "Name", "");
-}
/* ****************** File Output Add Socket ******************* */
@@ -4438,18 +1745,18 @@ static int node_output_file_add_socket_exec(bContext *C, wmOperator *op)
bNodeTree *ntree;
bNode *node;
char file_path[MAX_NAME];
-
+
ptr = CTX_data_pointer_get(C, "node");
if (!ptr.data)
return OPERATOR_CANCELLED;
node = ptr.data;
ntree = ptr.id.data;
-
+
RNA_string_get(op->ptr, "file_path", file_path);
ntreeCompositOutputFileAddSocket(ntree, node, file_path, &scene->r.im_format);
-
+
snode_notify(C, snode);
-
+
return OPERATOR_FINISHED;
}
@@ -4459,14 +1766,14 @@ void NODE_OT_output_file_add_socket(wmOperatorType *ot)
ot->name = "Add File Node Socket";
ot->description = "Add a new input to a file output node";
ot->idname = "NODE_OT_output_file_add_socket";
-
+
/* callbacks */
ot->exec = node_output_file_add_socket_exec;
ot->poll = composite_node_active;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
+
RNA_def_string(ot->srna, "file_path", "Image", MAX_NAME, "File Path", "Sub-path of the output file");
}
@@ -4535,7 +1842,7 @@ static int node_output_file_move_active_socket_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
BLI_remlink(&node->inputs, sock);
BLI_insertlinkbefore(&node->inputs, before, sock);
- --nimf->active_input;
+ nimf->active_input--;
}
else {
bNodeSocket *after = sock->next;
@@ -4543,7 +1850,7 @@ static int node_output_file_move_active_socket_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
BLI_remlink(&node->inputs, sock);
BLI_insertlinkafter(&node->inputs, after, sock);
- ++nimf->active_input;
+ nimf->active_input++;
}
snode_notify(C, snode);
@@ -4620,305 +1927,210 @@ void NODE_OT_node_copy_color(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
-/* ****************** Set Parent ******************* */
+/* ****************** Copy to clipboard ******************* */
-static int node_parent_set_exec(bContext *C, wmOperator *UNUSED(op))
+static int node_clipboard_copy_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode = CTX_wm_space_node(C);
bNodeTree *ntree = snode->edittree;
- bNode *frame = nodeGetActive(ntree), *node;
- if (!frame || frame->type != NODE_FRAME)
- return OPERATOR_CANCELLED;
+ bNode *gnode = node_tree_get_editgroup(snode->nodetree);
+ float gnode_x = 0.0f, gnode_y = 0.0f;
+ bNode *node, *new_node;
+ bNodeLink *link, *newlink;
+
+ ED_preview_kill_jobs(C);
+
+ /* clear current clipboard */
+ BKE_node_clipboard_clear();
+ BKE_node_clipboard_init(ntree);
+
+ /* get group node offset */
+ if (gnode)
+ nodeToView(gnode, 0.0f, 0.0f, &gnode_x, &gnode_y);
for (node = ntree->nodes.first; node; node = node->next) {
- if (node == frame)
- continue;
- if (node->flag & NODE_SELECT) {
- nodeDetachNode(node);
- nodeAttachNode(node, frame);
+ if (node->flag & SELECT) {
+ new_node = nodeCopyNode(NULL, node);
+ BKE_node_clipboard_add_node(new_node);
}
}
- ED_node_sort(ntree);
- WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, NULL);
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->flag & SELECT) {
+ bNode *new_node = node->new_node;
+
+ /* ensure valid pointers */
+ if (new_node->parent) {
+ /* parent pointer must be redirected to new node or detached if parent is not copied */
+ if (new_node->parent->flag & NODE_SELECT) {
+ new_node->parent = new_node->parent->new_node;
+ }
+ else {
+ nodeDetachNode(new_node);
+ }
+ }
+
+ /* transform to basic view space. child node location is relative to parent */
+ if (!new_node->parent) {
+ new_node->locx += gnode_x;
+ new_node->locy += gnode_y;
+ }
+ }
+ }
+
+ /* copy links between selected nodes
+ * NB: this depends on correct node->new_node and sock->new_sock pointers from above copy!
+ */
+ for (link = ntree->links.first; link; link = link->next) {
+ /* This creates new links between copied nodes. */
+ if (link->tonode && (link->tonode->flag & NODE_SELECT) &&
+ link->fromnode && (link->fromnode->flag & NODE_SELECT))
+ {
+ newlink = MEM_callocN(sizeof(bNodeLink), "bNodeLink");
+ newlink->flag = link->flag;
+ newlink->tonode = link->tonode->new_node;
+ newlink->tosock = link->tosock->new_sock;
+ newlink->fromnode = link->fromnode->new_node;
+ newlink->fromsock = link->fromsock->new_sock;
+
+ BKE_node_clipboard_add_link(newlink);
+ }
+ }
return OPERATOR_FINISHED;
}
-void NODE_OT_parent_set(wmOperatorType *ot)
+void NODE_OT_clipboard_copy(wmOperatorType *ot)
{
/* identifiers */
- ot->name = "Make Parent";
- ot->description = "Attach selected nodes";
- ot->idname = "NODE_OT_parent_set";
+ ot->name = "Copy to clipboard";
+ ot->description = "Copies selected nodes to the clipboard";
+ ot->idname = "NODE_OT_clipboard_copy";
/* api callbacks */
- ot->exec = node_parent_set_exec;
+ ot->exec = node_clipboard_copy_exec;
ot->poll = ED_operator_node_active;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
-/* ****************** Clear Parent ******************* */
+/* ****************** Paste from clipboard ******************* */
-static int node_parent_clear_exec(bContext *C, wmOperator *UNUSED(op))
+static int node_clipboard_paste_exec(bContext *C, wmOperator *op)
{
SpaceNode *snode = CTX_wm_space_node(C);
bNodeTree *ntree = snode->edittree;
+ bNode *gnode = node_tree_get_editgroup(snode->nodetree);
+ float gnode_center[2];
+ const ListBase *clipboard_nodes_lb;
+ const ListBase *clipboard_links_lb;
bNode *node;
-
- for (node = ntree->nodes.first; node; node = node->next) {
- if (node->flag & NODE_SELECT) {
- nodeDetachNode(node);
- }
- }
-
- WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, NULL);
+ bNodeLink *link;
+ int num_nodes;
+ float center[2];
+ int is_clipboard_valid;
- return OPERATOR_FINISHED;
-}
+ /* validate pointers in the clipboard */
+ is_clipboard_valid = BKE_node_clipboard_validate();
+ clipboard_nodes_lb = BKE_node_clipboard_get_nodes();
+ clipboard_links_lb = BKE_node_clipboard_get_links();
-void NODE_OT_parent_clear(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Clear Parent";
- ot->description = "Detach selected nodes";
- ot->idname = "NODE_OT_parent_clear";
+ if (clipboard_nodes_lb->first == NULL) {
+ BKE_report(op->reports, RPT_ERROR, "Clipboard is empty");
+ return OPERATOR_CANCELLED;
+ }
- /* api callbacks */
- ot->exec = node_parent_clear_exec;
- ot->poll = ED_operator_node_active;
+ if (BKE_node_clipboard_get_type() != ntree->type) {
+ BKE_report(op->reports, RPT_ERROR, "Clipboard nodes are an incompatible type");
+ return OPERATOR_CANCELLED;
+ }
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-}
+ /* only warn */
+ if (is_clipboard_valid == FALSE) {
+ BKE_report(op->reports, RPT_WARNING, "Some nodes references could not be restored, will be left empty");
+ }
-/* ****************** Join Nodes ******************* */
+ ED_preview_kill_jobs(C);
-/* tags for depth-first search */
-#define NODE_JOIN_DONE 1
-#define NODE_JOIN_IS_DESCENDANT 2
+ /* deselect old nodes */
+ node_deselect_all(snode);
-static void node_join_attach_recursive(bNode *node, bNode *frame)
-{
- node->done |= NODE_JOIN_DONE;
-
- if (node == frame) {
- node->done |= NODE_JOIN_IS_DESCENDANT;
+ /* get group node offset */
+ if (gnode) {
+ nodeToView(gnode, 0.0f, 0.0f, &gnode_center[0], &gnode_center[1]);
}
- else if (node->parent) {
- /* call recursively */
- if (!(node->parent->done & NODE_JOIN_DONE))
- node_join_attach_recursive(node->parent, frame);
-
- /* in any case: if the parent is a descendant, so is the child */
- if (node->parent->done & NODE_JOIN_IS_DESCENDANT)
- node->done |= NODE_JOIN_IS_DESCENDANT;
- else if (node->flag & NODE_TEST) {
- /* if parent is not an decendant of the frame, reattach the node */
- nodeDetachNode(node);
- nodeAttachNode(node, frame);
- node->done |= NODE_JOIN_IS_DESCENDANT;
- }
+ else {
+ zero_v2(gnode_center);
}
- else if (node->flag & NODE_TEST) {
- nodeAttachNode(node, frame);
- node->done |= NODE_JOIN_IS_DESCENDANT;
+
+ /* calculate "barycenter" for placing on mouse cursor */
+ zero_v2(center);
+ for (node = clipboard_nodes_lb->first, num_nodes = 0; node; node = node->next, num_nodes++) {
+ center[0] += BLI_rctf_cent_x(&node->totr);
+ center[1] += BLI_rctf_cent_y(&node->totr);
}
-}
+ mul_v2_fl(center, 1.0 / num_nodes);
-static int node_join_exec(bContext *C, wmOperator *UNUSED(op))
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- Main *bmain = CTX_data_main(C);
- Scene *scene = CTX_data_scene(C);
- bNodeTree *ntree = snode->edittree;
- bNode *node, *frame;
- bNodeTemplate ntemp;
-
- /* XXX save selection: node_add_node call below sets the new frame as single active+selected node */
- for (node = ntree->nodes.first; node; node = node->next) {
- if (node->flag & NODE_SELECT)
- node->flag |= NODE_TEST;
- else
- node->flag &= ~NODE_TEST;
+ /* copy nodes from clipboard */
+ for (node = clipboard_nodes_lb->first; node; node = node->next) {
+ bNode *new_node = nodeCopyNode(ntree, node);
+
+ /* needed since nodeCopyNode() doesn't increase ID's */
+ id_us_plus(node->id);
+
+ /* pasted nodes are selected */
+ node_select(new_node);
}
- ntemp.main = bmain;
- ntemp.scene = scene;
- ntemp.type = NODE_FRAME;
- frame = node_add_node(snode, bmain, scene, &ntemp, 0.0f, 0.0f);
-
- /* reset tags */
- for (node = ntree->nodes.first; node; node = node->next)
- node->done = 0;
-
- for (node = ntree->nodes.first; node; node = node->next) {
- if (!(node->done & NODE_JOIN_DONE))
- node_join_attach_recursive(node, frame);
+ /* reparent copied nodes */
+ for (node = clipboard_nodes_lb->first; node; node = node->next) {
+ bNode *new_node = node->new_node;
+ if (new_node->parent)
+ new_node->parent = new_node->parent->new_node;
+
+
+ /* place nodes around the mouse cursor. child nodes locations are relative to parent */
+ if (!new_node->parent) {
+ new_node->locx += snode->cursor[0] - center[0] - gnode_center[0];
+ new_node->locy += snode->cursor[1] - center[1] - gnode_center[1];
+ }
}
- /* restore selection */
- for (node = ntree->nodes.first; node; node = node->next) {
- if (node->flag & NODE_TEST)
- node->flag |= NODE_SELECT;
+ for (link = clipboard_links_lb->first; link; link = link->next) {
+ nodeAddLink(ntree, link->fromnode->new_node, link->fromsock->new_sock,
+ link->tonode->new_node, link->tosock->new_sock);
}
- ED_node_sort(ntree);
- WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, NULL);
-
- return OPERATOR_FINISHED;
-}
-
-void NODE_OT_join(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Join Nodes";
- ot->description = "Attach selected nodes to a new common frame";
- ot->idname = "NODE_OT_join";
-
- /* api callbacks */
- ot->exec = node_join_exec;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-}
+ ntreeUpdateTree(snode->edittree);
-/* ****************** Attach ******************* */
+ snode_notify(C, snode);
+ snode_dag_update(C, snode);
-static int node_attach_exec(bContext *C, wmOperator *UNUSED(op))
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNodeTree *ntree = snode->edittree;
- bNode *frame;
-
- /* check nodes front to back */
- for (frame = ntree->nodes.last; frame; frame = frame->prev) {
- /* skip selected, those are the nodes we want to attach */
- if ((frame->type != NODE_FRAME) || (frame->flag & NODE_SELECT))
- continue;
- if (BLI_in_rctf(&frame->totr, snode->mx, snode->my))
- break;
- }
- if (frame) {
- bNode *node, *parent;
- for (node = ntree->nodes.last; node; node = node->prev) {
- if (node->flag & NODE_SELECT) {
- if (node->parent == NULL) {
- /* attach all unparented nodes */
- nodeAttachNode(node, frame);
- }
- else {
- /* attach nodes which share parent with the frame */
- for (parent = frame->parent; parent; parent = parent->parent)
- if (parent == node->parent)
- break;
- if (parent) {
- nodeDetachNode(node);
- nodeAttachNode(node, frame);
- }
- }
- }
- }
- }
-
- ED_node_sort(ntree);
- WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, NULL);
-
return OPERATOR_FINISHED;
}
-static int node_attach_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int node_clipboard_paste_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
ARegion *ar = CTX_wm_region(C);
SpaceNode *snode = CTX_wm_space_node(C);
-
- /* convert mouse coordinates to v2d space */
- UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &snode->mx, &snode->my);
-
- return node_attach_exec(C, op);
-}
-
-void NODE_OT_attach(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Attach Nodes";
- ot->description = "Attach active node to a frame";
- ot->idname = "NODE_OT_attach";
-
- /* api callbacks */
- ot->exec = node_attach_exec;
- ot->invoke = node_attach_invoke;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-}
-
-/* ****************** Detach ******************* */
-
-/* tags for depth-first search */
-#define NODE_DETACH_DONE 1
-#define NODE_DETACH_IS_DESCENDANT 2
-static void node_detach_recursive(bNode *node)
-{
- node->done |= NODE_DETACH_DONE;
-
- if (node->parent) {
- /* call recursively */
- if (!(node->parent->done & NODE_DETACH_DONE))
- node_detach_recursive(node->parent);
-
- /* in any case: if the parent is a descendant, so is the child */
- if (node->parent->done & NODE_DETACH_IS_DESCENDANT)
- node->done |= NODE_DETACH_IS_DESCENDANT;
- else if (node->flag & NODE_SELECT) {
- /* if parent is not a decendant of a selected node, detach */
- nodeDetachNode(node);
- node->done |= NODE_DETACH_IS_DESCENDANT;
- }
- }
- else if (node->flag & NODE_SELECT) {
- node->done |= NODE_DETACH_IS_DESCENDANT;
- }
-}
+ /* convert mouse coordinates to v2d space */
+ UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &snode->cursor[0], &snode->cursor[1]);
-/* detach the root nodes in the current selection */
-static int node_detach_exec(bContext *C, wmOperator *UNUSED(op))
-{
- SpaceNode *snode = CTX_wm_space_node(C);
- bNodeTree *ntree = snode->edittree;
- bNode *node;
-
- /* reset tags */
- for (node = ntree->nodes.first; node; node = node->next)
- node->done = 0;
- /* detach nodes recursively
- * relative order is preserved here!
- */
- for (node = ntree->nodes.first; node; node = node->next) {
- if (!(node->done & NODE_DETACH_DONE))
- node_detach_recursive(node);
- }
-
- ED_node_sort(ntree);
- WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, NULL);
-
- return OPERATOR_FINISHED;
+ return node_clipboard_paste_exec(C, op);
}
-void NODE_OT_detach(wmOperatorType *ot)
+void NODE_OT_clipboard_paste(wmOperatorType *ot)
{
/* identifiers */
- ot->name = "Detach Nodes";
- ot->description = "Detach selected nodes from parents";
- ot->idname = "NODE_OT_detach";
+ ot->name = "Paste from clipboard";
+ ot->description = "Pastes nodes from the clipboard to the active node tree";
+ ot->idname = "NODE_OT_clipboard_paste";
/* api callbacks */
- ot->exec = node_detach_exec;
+ ot->exec = node_clipboard_paste_exec;
+ ot->invoke = node_clipboard_paste_invoke;
ot->poll = ED_operator_node_active;
/* flags */
diff --git a/source/blender/editors/space_node/node_group.c b/source/blender/editors/space_node/node_group.c
new file mode 100644
index 00000000000..b76cc05af5c
--- /dev/null
+++ b/source/blender/editors/space_node/node_group.c
@@ -0,0 +1,1136 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2005 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): David Millan Escriva, Juho Vepsäläinen, Nathan Letwory
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editors/space_node/node_group.c
+ * \ingroup spnode
+ */
+
+#include "MEM_guardedalloc.h"
+
+#include "DNA_node_types.h"
+#include "DNA_object_types.h"
+#include "DNA_anim_types.h"
+
+#include "BLI_blenlib.h"
+
+#include "BKE_action.h"
+#include "BKE_animsys.h"
+#include "BKE_context.h"
+#include "BKE_global.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_report.h"
+
+#include "ED_node.h" /* own include */
+#include "ED_screen.h"
+#include "ED_render.h"
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+#include "RNA_enum_types.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "UI_resources.h"
+
+#include "node_intern.h" /* own include */
+#include "NOD_socket.h"
+
+static EnumPropertyItem socket_in_out_items[] = {
+ { SOCK_IN, "SOCK_IN", 0, "Input", "" },
+ { SOCK_OUT, "SOCK_OUT", 0, "Output", "" },
+ { 0, NULL, 0, NULL, NULL },
+};
+
+/* ***************** Edit Group operator ************* */
+
+void snode_make_group_editable(SpaceNode *snode, bNode *gnode)
+{
+ bNode *node;
+
+ /* make sure nothing has group editing on */
+ for (node = snode->nodetree->nodes.first; node; node = node->next) {
+ nodeGroupEditClear(node);
+
+ /* while we're here, clear texture active */
+ if (node->typeinfo->nclass == NODE_CLASS_TEXTURE) {
+ /* this is not 100% sure to be reliable, see comment on the flag */
+ node->flag &= ~NODE_ACTIVE_TEXTURE;
+ }
+ }
+
+ if (gnode == NULL) {
+ /* with NULL argument we do a toggle */
+ if (snode->edittree == snode->nodetree)
+ gnode = nodeGetActive(snode->nodetree);
+ }
+
+ if (gnode) {
+ snode->edittree = nodeGroupEditSet(gnode, 1);
+
+ /* deselect all other nodes, so we can also do grabbing of entire subtree */
+ for (node = snode->nodetree->nodes.first; node; node = node->next) {
+ node_deselect(node);
+
+ if (node->typeinfo->nclass == NODE_CLASS_TEXTURE) {
+ /* this is not 100% sure to be reliable, see comment on the flag */
+ node->flag &= ~NODE_ACTIVE_TEXTURE;
+ }
+ }
+ node_select(gnode);
+ }
+ else
+ snode->edittree = snode->nodetree;
+}
+
+static int node_group_edit_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+
+ ED_preview_kill_jobs(C);
+
+ if (snode->nodetree == snode->edittree) {
+ bNode *gnode = nodeGetActive(snode->edittree);
+ snode_make_group_editable(snode, gnode);
+ }
+ else
+ snode_make_group_editable(snode, NULL);
+
+ WM_event_add_notifier(C, NC_SCENE | ND_NODES, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+static int node_group_edit_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNode *gnode;
+
+ /* XXX callback? */
+ if (snode->nodetree == snode->edittree) {
+ gnode = nodeGetActive(snode->edittree);
+ if (gnode && gnode->id && GS(gnode->id->name) == ID_NT && gnode->id->lib) {
+ uiPupMenuOkee(C, op->type->idname, "Make group local?");
+ return OPERATOR_CANCELLED;
+ }
+ }
+
+ return node_group_edit_exec(C, op);
+}
+
+void NODE_OT_group_edit(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Edit Group";
+ ot->description = "Edit node group";
+ ot->idname = "NODE_OT_group_edit";
+
+ /* api callbacks */
+ ot->invoke = node_group_edit_invoke;
+ ot->exec = node_group_edit_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+/* ***************** Add Group Socket operator ************* */
+
+static int node_group_socket_add_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ int in_out = -1;
+ char name[MAX_NAME] = "";
+ int type = SOCK_FLOAT;
+ bNodeTree *ngroup = snode->edittree;
+ /* bNodeSocket *sock; */ /* UNUSED */
+
+ ED_preview_kill_jobs(C);
+
+ if (RNA_struct_property_is_set(op->ptr, "name"))
+ RNA_string_get(op->ptr, "name", name);
+
+ if (RNA_struct_property_is_set(op->ptr, "type"))
+ type = RNA_enum_get(op->ptr, "type");
+
+ if (RNA_struct_property_is_set(op->ptr, "in_out"))
+ in_out = RNA_enum_get(op->ptr, "in_out");
+ else
+ return OPERATOR_CANCELLED;
+
+ /* using placeholder subtype first */
+ /* sock = */ /* UNUSED */ node_group_add_socket(ngroup, name, type, in_out);
+
+ ntreeUpdateTree(ngroup);
+
+ snode_notify(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_group_socket_add(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Add Group Socket";
+ ot->description = "Add node group socket";
+ ot->idname = "NODE_OT_group_socket_add";
+
+ /* api callbacks */
+ ot->exec = node_group_socket_add_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Type", "Input or Output");
+ RNA_def_string(ot->srna, "name", "", MAX_NAME, "Name", "Group socket name");
+ RNA_def_enum(ot->srna, "type", node_socket_type_items, SOCK_FLOAT, "Type", "Type of the group socket");
+}
+
+/* ***************** Remove Group Socket operator ************* */
+
+static int node_group_socket_remove_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ int index = -1;
+ int in_out = -1;
+ bNodeTree *ngroup = snode->edittree;
+ bNodeSocket *sock;
+
+ ED_preview_kill_jobs(C);
+
+ if (RNA_struct_property_is_set(op->ptr, "index"))
+ index = RNA_int_get(op->ptr, "index");
+ else
+ return OPERATOR_CANCELLED;
+
+ if (RNA_struct_property_is_set(op->ptr, "in_out"))
+ in_out = RNA_enum_get(op->ptr, "in_out");
+ else
+ return OPERATOR_CANCELLED;
+
+ sock = (bNodeSocket *)BLI_findlink(in_out == SOCK_IN ? &ngroup->inputs : &ngroup->outputs, index);
+ if (sock) {
+ node_group_remove_socket(ngroup, sock, in_out);
+ ntreeUpdateTree(ngroup);
+
+ snode_notify(C, snode);
+ }
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_group_socket_remove(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Remove Group Socket";
+ ot->description = "Remove a node group socket";
+ ot->idname = "NODE_OT_group_socket_remove";
+
+ /* api callbacks */
+ ot->exec = node_group_socket_remove_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "", 0, INT_MAX);
+ RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Type", "Input or Output");
+}
+
+/* ***************** Move Group Socket Up operator ************* */
+
+static int node_group_socket_move_up_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ int index = -1;
+ int in_out = -1;
+ bNodeTree *ngroup = snode->edittree;
+ bNodeSocket *sock, *prev;
+
+ ED_preview_kill_jobs(C);
+
+ if (RNA_struct_property_is_set(op->ptr, "index"))
+ index = RNA_int_get(op->ptr, "index");
+ else
+ return OPERATOR_CANCELLED;
+
+ if (RNA_struct_property_is_set(op->ptr, "in_out"))
+ in_out = RNA_enum_get(op->ptr, "in_out");
+ else
+ return OPERATOR_CANCELLED;
+
+ /* swap */
+ if (in_out == SOCK_IN) {
+ sock = (bNodeSocket *)BLI_findlink(&ngroup->inputs, index);
+ prev = sock->prev;
+ /* can't move up the first socket */
+ if (!prev)
+ return OPERATOR_CANCELLED;
+ BLI_remlink(&ngroup->inputs, sock);
+ BLI_insertlinkbefore(&ngroup->inputs, prev, sock);
+
+ ngroup->update |= NTREE_UPDATE_GROUP_IN;
+ }
+ else if (in_out == SOCK_OUT) {
+ sock = (bNodeSocket *)BLI_findlink(&ngroup->outputs, index);
+ prev = sock->prev;
+ /* can't move up the first socket */
+ if (!prev)
+ return OPERATOR_CANCELLED;
+ BLI_remlink(&ngroup->outputs, sock);
+ BLI_insertlinkbefore(&ngroup->outputs, prev, sock);
+
+ ngroup->update |= NTREE_UPDATE_GROUP_OUT;
+ }
+ ntreeUpdateTree(ngroup);
+
+ snode_notify(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_group_socket_move_up(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Move Group Socket Up";
+ ot->description = "Move up node group socket";
+ ot->idname = "NODE_OT_group_socket_move_up";
+
+ /* api callbacks */
+ ot->exec = node_group_socket_move_up_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "", 0, INT_MAX);
+ RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Type", "Input or Output");
+}
+
+/* ***************** Move Group Socket Up operator ************* */
+
+static int node_group_socket_move_down_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ int index = -1;
+ int in_out = -1;
+ bNodeTree *ngroup = snode->edittree;
+ bNodeSocket *sock, *next;
+
+ ED_preview_kill_jobs(C);
+
+ if (RNA_struct_property_is_set(op->ptr, "index"))
+ index = RNA_int_get(op->ptr, "index");
+ else
+ return OPERATOR_CANCELLED;
+
+ if (RNA_struct_property_is_set(op->ptr, "in_out"))
+ in_out = RNA_enum_get(op->ptr, "in_out");
+ else
+ return OPERATOR_CANCELLED;
+
+ /* swap */
+ if (in_out == SOCK_IN) {
+ sock = (bNodeSocket *)BLI_findlink(&ngroup->inputs, index);
+ next = sock->next;
+ /* can't move down the last socket */
+ if (!next)
+ return OPERATOR_CANCELLED;
+ BLI_remlink(&ngroup->inputs, sock);
+ BLI_insertlinkafter(&ngroup->inputs, next, sock);
+
+ ngroup->update |= NTREE_UPDATE_GROUP_IN;
+ }
+ else if (in_out == SOCK_OUT) {
+ sock = (bNodeSocket *)BLI_findlink(&ngroup->outputs, index);
+ next = sock->next;
+ /* can't move down the last socket */
+ if (!next)
+ return OPERATOR_CANCELLED;
+ BLI_remlink(&ngroup->outputs, sock);
+ BLI_insertlinkafter(&ngroup->outputs, next, sock);
+
+ ngroup->update |= NTREE_UPDATE_GROUP_OUT;
+ }
+ ntreeUpdateTree(ngroup);
+
+ snode_notify(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_group_socket_move_down(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Move Group Socket Down";
+ ot->description = "Move down node group socket";
+ ot->idname = "NODE_OT_group_socket_move_down";
+
+ /* api callbacks */
+ ot->exec = node_group_socket_move_down_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "", 0, INT_MAX);
+ RNA_def_enum(ot->srna, "in_out", socket_in_out_items, SOCK_IN, "Socket Type", "Input or Output");
+}
+
+/* ******************** Ungroup operator ********************** */
+
+/* returns 1 if its OK */
+static int node_group_ungroup(bNodeTree *ntree, bNode *gnode)
+{
+ bNodeLink *link, *linkn;
+ bNode *node, *nextn;
+ bNodeTree *ngroup, *wgroup;
+ ListBase anim_basepaths = {NULL, NULL};
+
+ ngroup = (bNodeTree *)gnode->id;
+ if (ngroup == NULL) return 0;
+
+ /* clear new pointers, set in copytree */
+ for (node = ntree->nodes.first; node; node = node->next)
+ node->new_node = NULL;
+
+ /* wgroup is a temporary copy of the NodeTree we're merging in
+ * - all of wgroup's nodes are transferred across to their new home
+ * - ngroup (i.e. the source NodeTree) is left unscathed
+ * - temp copy. don't change ID usercount
+ */
+ wgroup = ntreeCopyTree_ex(ngroup, FALSE);
+
+ /* add the nodes into the ntree */
+ for (node = wgroup->nodes.first; node; node = nextn) {
+ nextn = node->next;
+
+ /* keep track of this node's RNA "base" path (the part of the path identifying the node)
+ * if the old nodetree has animation data which potentially covers this node
+ */
+ if (wgroup->adt) {
+ PointerRNA ptr;
+ char *path;
+
+ RNA_pointer_create(&wgroup->id, &RNA_Node, node, &ptr);
+ path = RNA_path_from_ID_to_struct(&ptr);
+
+ if (path)
+ BLI_addtail(&anim_basepaths, BLI_genericNodeN(path));
+ }
+
+ /* migrate node */
+ BLI_remlink(&wgroup->nodes, node);
+ BLI_addtail(&ntree->nodes, node);
+
+ /* ensure unique node name in the nodee tree */
+ nodeUniqueName(ntree, node);
+
+ node->locx += gnode->locx;
+ node->locy += gnode->locy;
+
+ node->flag |= NODE_SELECT;
+ }
+
+ /* restore external links to and from the gnode */
+ for (link = ntree->links.first; link; link = link->next) {
+ if (link->fromnode == gnode) {
+ if (link->fromsock->groupsock) {
+ bNodeSocket *gsock = link->fromsock->groupsock;
+ if (gsock->link) {
+ if (gsock->link->fromnode) {
+ /* NB: using the new internal copies here! the groupsock pointer still maps to the old tree */
+ link->fromnode = (gsock->link->fromnode ? gsock->link->fromnode->new_node : NULL);
+ link->fromsock = gsock->link->fromsock->new_sock;
+ }
+ else {
+ /* group output directly maps to group input */
+ bNodeSocket *insock = node_group_find_input(gnode, gsock->link->fromsock);
+ if (insock->link) {
+ link->fromnode = insock->link->fromnode;
+ link->fromsock = insock->link->fromsock;
+ }
+ }
+ }
+ else {
+ /* copy the default input value from the group socket default to the external socket */
+ node_socket_convert_default_value(link->tosock->type, link->tosock->default_value, gsock->type, gsock->default_value);
+ }
+ }
+ }
+ }
+ /* remove internal output links, these are not used anymore */
+ for (link = wgroup->links.first; link; link = linkn) {
+ linkn = link->next;
+ if (!link->tonode)
+ nodeRemLink(wgroup, link);
+ }
+ /* restore links from internal nodes */
+ for (link = wgroup->links.first; link; link = linkn) {
+ linkn = link->next;
+ /* indicates link to group input */
+ if (!link->fromnode) {
+ /* NB: can't use find_group_node_input here,
+ * because gnode sockets still point to the old tree!
+ */
+ bNodeSocket *insock;
+ for (insock = gnode->inputs.first; insock; insock = insock->next)
+ if (insock->groupsock->new_sock == link->fromsock)
+ break;
+ if (insock->link) {
+ link->fromnode = insock->link->fromnode;
+ link->fromsock = insock->link->fromsock;
+ }
+ else {
+ /* copy the default input value from the group node socket default to the internal socket */
+ node_socket_convert_default_value(link->tosock->type, link->tosock->default_value, insock->type, insock->default_value);
+ nodeRemLink(wgroup, link);
+ }
+ }
+ }
+
+ /* add internal links to the ntree */
+ for (link = wgroup->links.first; link; link = linkn) {
+ linkn = link->next;
+ BLI_remlink(&wgroup->links, link);
+ BLI_addtail(&ntree->links, link);
+ }
+
+ /* and copy across the animation,
+ * note that the animation data's action can be NULL here */
+ if (wgroup->adt) {
+ LinkData *ld, *ldn = NULL;
+ bAction *waction;
+
+ /* firstly, wgroup needs to temporary dummy action that can be destroyed, as it shares copies */
+ waction = wgroup->adt->action = BKE_action_copy(wgroup->adt->action);
+
+ /* now perform the moving */
+ BKE_animdata_separate_by_basepath(&wgroup->id, &ntree->id, &anim_basepaths);
+
+ /* paths + their wrappers need to be freed */
+ for (ld = anim_basepaths.first; ld; ld = ldn) {
+ ldn = ld->next;
+
+ MEM_freeN(ld->data);
+ BLI_freelinkN(&anim_basepaths, ld);
+ }
+
+ /* free temp action too */
+ if (waction) {
+ BKE_libblock_free(&G.main->action, waction);
+ }
+ }
+
+ /* delete the group instance. this also removes old input links! */
+ nodeFreeNode(ntree, gnode);
+
+ /* free the group tree (takes care of user count) */
+ BKE_libblock_free(&G.main->nodetree, wgroup);
+
+ ntree->update |= NTREE_UPDATE_NODES | NTREE_UPDATE_LINKS;
+
+ return 1;
+}
+
+static int node_group_ungroup_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNode *gnode;
+
+ ED_preview_kill_jobs(C);
+
+ /* are we inside of a group? */
+ gnode = node_tree_get_editgroup(snode->nodetree);
+ if (gnode)
+ snode_make_group_editable(snode, NULL);
+
+ gnode = nodeGetActive(snode->edittree);
+ if (gnode == NULL)
+ return OPERATOR_CANCELLED;
+
+ if (gnode->type != NODE_GROUP) {
+ BKE_report(op->reports, RPT_WARNING, "Not a group");
+ return OPERATOR_CANCELLED;
+ }
+ else if (node_group_ungroup(snode->nodetree, gnode)) {
+ ntreeUpdateTree(snode->nodetree);
+ }
+ else {
+ BKE_report(op->reports, RPT_WARNING, "Can't ungroup");
+ return OPERATOR_CANCELLED;
+ }
+
+ snode_notify(C, snode);
+ snode_dag_update(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_group_ungroup(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Ungroup";
+ ot->description = "Ungroup selected nodes";
+ ot->idname = "NODE_OT_group_ungroup";
+
+ /* api callbacks */
+ ot->exec = node_group_ungroup_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+/* ******************** Separate operator ********************** */
+
+/* returns 1 if its OK */
+static int node_group_separate_selected(bNodeTree *ntree, bNode *gnode, int make_copy)
+{
+ bNodeLink *link, *link_next;
+ bNode *node, *node_next, *newnode;
+ bNodeTree *ngroup;
+ ListBase anim_basepaths = {NULL, NULL};
+
+ ngroup = (bNodeTree *)gnode->id;
+ if (ngroup == NULL) return 0;
+
+ /* deselect all nodes in the target tree */
+ for (node = ntree->nodes.first; node; node = node->next)
+ node_deselect(node);
+
+ /* clear new pointers, set in nodeCopyNode */
+ for (node = ngroup->nodes.first; node; node = node->next)
+ node->new_node = NULL;
+
+ /* add selected nodes into the ntree */
+ for (node = ngroup->nodes.first; node; node = node_next) {
+ node_next = node->next;
+ if (node->flag & NODE_SELECT) {
+
+ if (make_copy) {
+ /* make a copy */
+ newnode = nodeCopyNode(ngroup, node);
+ }
+ else {
+ /* use the existing node */
+ newnode = node;
+ }
+
+ /* keep track of this node's RNA "base" path (the part of the path identifying the node)
+ * if the old nodetree has animation data which potentially covers this node
+ */
+ if (ngroup->adt) {
+ PointerRNA ptr;
+ char *path;
+
+ RNA_pointer_create(&ngroup->id, &RNA_Node, newnode, &ptr);
+ path = RNA_path_from_ID_to_struct(&ptr);
+
+ if (path)
+ BLI_addtail(&anim_basepaths, BLI_genericNodeN(path));
+ }
+
+ /* ensure valid parent pointers, detach if parent stays inside the group */
+ if (newnode->parent && !(newnode->parent->flag & NODE_SELECT))
+ nodeDetachNode(newnode);
+
+ /* migrate node */
+ BLI_remlink(&ngroup->nodes, newnode);
+ BLI_addtail(&ntree->nodes, newnode);
+
+ /* ensure unique node name in the node tree */
+ nodeUniqueName(ntree, newnode);
+
+ newnode->locx += gnode->locx;
+ newnode->locy += gnode->locy;
+ }
+ else {
+ /* ensure valid parent pointers, detach if child stays inside the group */
+ if (node->parent && (node->parent->flag & NODE_SELECT))
+ nodeDetachNode(node);
+ }
+ }
+
+ /* add internal links to the ntree */
+ for (link = ngroup->links.first; link; link = link_next) {
+ int fromselect = (link->fromnode && (link->fromnode->flag & NODE_SELECT));
+ int toselect = (link->tonode && (link->tonode->flag & NODE_SELECT));
+ link_next = link->next;
+
+ if (make_copy) {
+ /* make a copy of internal links */
+ if (fromselect && toselect)
+ nodeAddLink(ntree, link->fromnode->new_node, link->fromsock->new_sock, link->tonode->new_node, link->tosock->new_sock);
+ }
+ else {
+ /* move valid links over, delete broken links */
+ if (fromselect && toselect) {
+ BLI_remlink(&ngroup->links, link);
+ BLI_addtail(&ntree->links, link);
+ }
+ else if (fromselect || toselect) {
+ nodeRemLink(ngroup, link);
+ }
+ }
+ }
+
+ /* and copy across the animation,
+ * note that the animation data's action can be NULL here */
+ if (ngroup->adt) {
+ LinkData *ld, *ldn = NULL;
+
+ /* now perform the moving */
+ BKE_animdata_separate_by_basepath(&ngroup->id, &ntree->id, &anim_basepaths);
+
+ /* paths + their wrappers need to be freed */
+ for (ld = anim_basepaths.first; ld; ld = ldn) {
+ ldn = ld->next;
+
+ MEM_freeN(ld->data);
+ BLI_freelinkN(&anim_basepaths, ld);
+ }
+ }
+
+ ntree->update |= NTREE_UPDATE_NODES | NTREE_UPDATE_LINKS;
+ if (!make_copy)
+ ngroup->update |= NTREE_UPDATE_NODES | NTREE_UPDATE_LINKS;
+
+ return 1;
+}
+
+typedef enum eNodeGroupSeparateType {
+ NODE_GS_COPY,
+ NODE_GS_MOVE
+} eNodeGroupSeparateType;
+
+/* Operator Property */
+EnumPropertyItem node_group_separate_types[] = {
+ {NODE_GS_COPY, "COPY", 0, "Copy", "Copy to parent node tree, keep group intact"},
+ {NODE_GS_MOVE, "MOVE", 0, "Move", "Move to parent node tree, remove from group"},
+ {0, NULL, 0, NULL, NULL}
+};
+
+static int node_group_separate_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNode *gnode;
+ int type = RNA_enum_get(op->ptr, "type");
+
+ ED_preview_kill_jobs(C);
+
+ /* are we inside of a group? */
+ gnode = node_tree_get_editgroup(snode->nodetree);
+ if (!gnode) {
+ BKE_report(op->reports, RPT_WARNING, "Not inside node group");
+ return OPERATOR_CANCELLED;
+ }
+
+ switch (type) {
+ case NODE_GS_COPY:
+ if (!node_group_separate_selected(snode->nodetree, gnode, 1)) {
+ BKE_report(op->reports, RPT_WARNING, "Can't separate nodes");
+ return OPERATOR_CANCELLED;
+ }
+ break;
+ case NODE_GS_MOVE:
+ if (!node_group_separate_selected(snode->nodetree, gnode, 0)) {
+ BKE_report(op->reports, RPT_WARNING, "Can't separate nodes");
+ return OPERATOR_CANCELLED;
+ }
+ break;
+ }
+
+ /* switch to parent tree */
+ snode_make_group_editable(snode, NULL);
+
+ ntreeUpdateTree(snode->nodetree);
+
+ snode_notify(C, snode);
+ snode_dag_update(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+static int node_group_separate_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
+{
+ uiPopupMenu *pup = uiPupMenuBegin(C, "Separate", ICON_NONE);
+ uiLayout *layout = uiPupMenuLayout(pup);
+
+ uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
+ uiItemEnumO(layout, "NODE_OT_group_separate", NULL, 0, "type", NODE_GS_COPY);
+ uiItemEnumO(layout, "NODE_OT_group_separate", NULL, 0, "type", NODE_GS_MOVE);
+
+ uiPupMenuEnd(C, pup);
+
+ return OPERATOR_CANCELLED;
+}
+
+void NODE_OT_group_separate(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Separate";
+ ot->description = "Separate selected nodes from the node group";
+ ot->idname = "NODE_OT_group_separate";
+
+ /* api callbacks */
+ ot->invoke = node_group_separate_invoke;
+ ot->exec = node_group_separate_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ RNA_def_enum(ot->srna, "type", node_group_separate_types, NODE_GS_COPY, "Type", "");
+}
+
+/* ****************** Make Group operator ******************* */
+
+static int node_group_make_test(bNodeTree *ntree, bNode *gnode)
+{
+ bNode *node;
+ bNodeLink *link;
+ int totnode = 0;
+
+ /* is there something to group? also do some clearing */
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node == gnode)
+ continue;
+
+ if (node->flag & NODE_SELECT) {
+ /* no groups in groups */
+ if (node->type == NODE_GROUP)
+ return 0;
+ totnode++;
+ }
+
+ node->done = 0;
+ }
+ if (totnode == 0) return 0;
+
+ /* check if all connections are OK, no unselected node has both
+ * inputs and outputs to a selection */
+ for (link = ntree->links.first; link; link = link->next) {
+ if (link->fromnode && link->tonode && link->fromnode->flag & NODE_SELECT && link->fromnode != gnode)
+ link->tonode->done |= 1;
+ if (link->fromnode && link->tonode && link->tonode->flag & NODE_SELECT && link->tonode != gnode)
+ link->fromnode->done |= 2;
+ }
+
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node == gnode)
+ continue;
+ if ((node->flag & NODE_SELECT) == 0)
+ if (node->done == 3)
+ break;
+ }
+ if (node)
+ return 0;
+
+ return 1;
+}
+
+
+static void node_get_selected_minmax(bNodeTree *ntree, bNode *gnode, float *min, float *max)
+{
+ bNode *node;
+ INIT_MINMAX2(min, max);
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node == gnode)
+ continue;
+ if (node->flag & NODE_SELECT) {
+ DO_MINMAX2((&node->locx), min, max);
+ }
+ }
+}
+
+static int node_group_make_insert_selected(bNodeTree *ntree, bNode *gnode)
+{
+ bNodeTree *ngroup = (bNodeTree *)gnode->id;
+ bNodeLink *link, *linkn;
+ bNode *node, *nextn;
+ bNodeSocket *gsock;
+ ListBase anim_basepaths = {NULL, NULL};
+ float min[2], max[2];
+
+ /* deselect all nodes in the target tree */
+ for (node = ngroup->nodes.first; node; node = node->next)
+ node_deselect(node);
+
+ node_get_selected_minmax(ntree, gnode, min, max);
+
+ /* move nodes over */
+ for (node = ntree->nodes.first; node; node = nextn) {
+ nextn = node->next;
+ if (node == gnode)
+ continue;
+ if (node->flag & NODE_SELECT) {
+ /* keep track of this node's RNA "base" path (the part of the pat identifying the node)
+ * if the old nodetree has animation data which potentially covers this node
+ */
+ if (ntree->adt) {
+ PointerRNA ptr;
+ char *path;
+
+ RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr);
+ path = RNA_path_from_ID_to_struct(&ptr);
+
+ if (path)
+ BLI_addtail(&anim_basepaths, BLI_genericNodeN(path));
+ }
+
+ /* ensure valid parent pointers, detach if parent stays outside the group */
+ if (node->parent && !(node->parent->flag & NODE_SELECT))
+ nodeDetachNode(node);
+
+ /* change node-collection membership */
+ BLI_remlink(&ntree->nodes, node);
+ BLI_addtail(&ngroup->nodes, node);
+
+ /* ensure unique node name in the ngroup */
+ nodeUniqueName(ngroup, node);
+
+ node->locx -= 0.5f * (min[0] + max[0]);
+ node->locy -= 0.5f * (min[1] + max[1]);
+ }
+ else {
+ /* if the parent is to be inserted but not the child, detach properly */
+ if (node->parent && (node->parent->flag & NODE_SELECT))
+ nodeDetachNode(node);
+ }
+ }
+
+ /* move animation data over */
+ if (ntree->adt) {
+ LinkData *ld, *ldn = NULL;
+
+ BKE_animdata_separate_by_basepath(&ntree->id, &ngroup->id, &anim_basepaths);
+
+ /* paths + their wrappers need to be freed */
+ for (ld = anim_basepaths.first; ld; ld = ldn) {
+ ldn = ld->next;
+
+ MEM_freeN(ld->data);
+ BLI_freelinkN(&anim_basepaths, ld);
+ }
+ }
+
+ /* node groups don't use internal cached data */
+ ntreeFreeCache(ngroup);
+
+ /* relink external sockets */
+ for (link = ntree->links.first; link; link = linkn) {
+ int fromselect = (link->fromnode && (link->fromnode->flag & NODE_SELECT) && link->fromnode != gnode);
+ int toselect = (link->tonode && (link->tonode->flag & NODE_SELECT) && link->tonode != gnode);
+ linkn = link->next;
+
+ if ((fromselect && link->tonode == gnode) || (toselect && link->fromnode == gnode)) {
+ /* remove all links to/from the gnode.
+ * this can remove link information, but there's no general way to preserve it.
+ */
+ nodeRemLink(ntree, link);
+ }
+ else if (fromselect && toselect) {
+ BLI_remlink(&ntree->links, link);
+ BLI_addtail(&ngroup->links, link);
+ }
+ else if (toselect) {
+ gsock = node_group_expose_socket(ngroup, link->tosock, SOCK_IN);
+ link->tosock->link = nodeAddLink(ngroup, NULL, gsock, link->tonode, link->tosock);
+ link->tosock = node_group_add_extern_socket(ntree, &gnode->inputs, SOCK_IN, gsock);
+ link->tonode = gnode;
+ }
+ else if (fromselect) {
+ /* search for existing group node socket */
+ for (gsock = ngroup->outputs.first; gsock; gsock = gsock->next)
+ if (gsock->link && gsock->link->fromsock == link->fromsock)
+ break;
+ if (!gsock) {
+ gsock = node_group_expose_socket(ngroup, link->fromsock, SOCK_OUT);
+ gsock->link = nodeAddLink(ngroup, link->fromnode, link->fromsock, NULL, gsock);
+ link->fromsock = node_group_add_extern_socket(ntree, &gnode->outputs, SOCK_OUT, gsock);
+ }
+ else
+ link->fromsock = node_group_find_output(gnode, gsock);
+ link->fromnode = gnode;
+ }
+ }
+
+ /* update of the group tree */
+ ngroup->update |= NTREE_UPDATE;
+ /* update of the tree containing the group instance node */
+ ntree->update |= NTREE_UPDATE_NODES | NTREE_UPDATE_LINKS;
+
+ return 1;
+}
+
+static bNode *node_group_make_from_selected(bNodeTree *ntree)
+{
+ bNode *gnode;
+ bNodeTree *ngroup;
+ float min[2], max[2];
+ bNodeTemplate ntemp;
+
+ node_get_selected_minmax(ntree, NULL, min, max);
+
+ /* new nodetree */
+ ngroup = ntreeAddTree("NodeGroup", ntree->type, NODE_GROUP);
+
+ /* make group node */
+ ntemp.type = NODE_GROUP;
+ ntemp.ngroup = ngroup;
+ gnode = nodeAddNode(ntree, &ntemp);
+ gnode->locx = 0.5f * (min[0] + max[0]);
+ gnode->locy = 0.5f * (min[1] + max[1]);
+
+ node_group_make_insert_selected(ntree, gnode);
+
+ /* update of the tree containing the group instance node */
+ ntree->update |= NTREE_UPDATE_NODES;
+
+ return gnode;
+}
+
+typedef enum eNodeGroupMakeType {
+ NODE_GM_NEW,
+ NODE_GM_INSERT
+} eNodeGroupMakeType;
+
+/* Operator Property */
+EnumPropertyItem node_group_make_types[] = {
+ {NODE_GM_NEW, "NEW", 0, "New", "Create a new node group from selected nodes"},
+ {NODE_GM_INSERT, "INSERT", 0, "Insert", "Insert into active node group"},
+ {0, NULL, 0, NULL, NULL}
+};
+
+static int node_group_make_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNode *gnode;
+ int type = RNA_enum_get(op->ptr, "type");
+
+ if (snode->edittree != snode->nodetree) {
+ BKE_report(op->reports, RPT_WARNING, "Can not add a new Group in a Group");
+ return OPERATOR_CANCELLED;
+ }
+
+ /* for time being... is too complex to handle */
+ if (snode->treetype == NTREE_COMPOSIT) {
+ for (gnode = snode->nodetree->nodes.first; gnode; gnode = gnode->next) {
+ if (gnode->flag & SELECT)
+ if (gnode->type == CMP_NODE_R_LAYERS)
+ break;
+ }
+
+ if (gnode) {
+ BKE_report(op->reports, RPT_WARNING, "Can not add RenderLayer in a Group");
+ return OPERATOR_CANCELLED;
+ }
+ }
+
+ ED_preview_kill_jobs(C);
+
+ switch (type) {
+ case NODE_GM_NEW:
+ if (node_group_make_test(snode->nodetree, NULL)) {
+ gnode = node_group_make_from_selected(snode->nodetree);
+ }
+ else {
+ BKE_report(op->reports, RPT_WARNING, "Can not make Group");
+ return OPERATOR_CANCELLED;
+ }
+ break;
+ case NODE_GM_INSERT:
+ gnode = nodeGetActive(snode->nodetree);
+ if (!gnode || gnode->type != NODE_GROUP) {
+ BKE_report(op->reports, RPT_WARNING, "No active Group node");
+ return OPERATOR_CANCELLED;
+ }
+ if (node_group_make_test(snode->nodetree, gnode)) {
+ node_group_make_insert_selected(snode->nodetree, gnode);
+ }
+ else {
+ BKE_report(op->reports, RPT_WARNING, "Can not insert into Group");
+ return OPERATOR_CANCELLED;
+ }
+ break;
+ }
+
+ if (gnode) {
+ nodeSetActive(snode->nodetree, gnode);
+ snode_make_group_editable(snode, gnode);
+ }
+
+ if (gnode)
+ ntreeUpdateTree((bNodeTree *)gnode->id);
+ ntreeUpdateTree(snode->nodetree);
+
+ snode_notify(C, snode);
+ snode_dag_update(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+static int node_group_make_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNode *act = nodeGetActive(snode->edittree);
+ uiPopupMenu *pup = uiPupMenuBegin(C, "Make Group", ICON_NONE);
+ uiLayout *layout = uiPupMenuLayout(pup);
+
+ uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
+ uiItemEnumO(layout, "NODE_OT_group_make", NULL, 0, "type", NODE_GM_NEW);
+
+ /* if active node is a group, add insert option */
+ if (act && act->type == NODE_GROUP) {
+ uiItemEnumO(layout, "NODE_OT_group_make", NULL, 0, "type", NODE_GM_INSERT);
+ }
+
+ uiPupMenuEnd(C, pup);
+
+ return OPERATOR_CANCELLED;
+}
+
+void NODE_OT_group_make(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Group";
+ ot->description = "Make group from selected nodes";
+ ot->idname = "NODE_OT_group_make";
+
+ /* api callbacks */
+ ot->invoke = node_group_make_invoke;
+ ot->exec = node_group_make_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ RNA_def_enum(ot->srna, "type", node_group_make_types, NODE_GM_NEW, "Type", "");
+}
diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c
index d4cfa2a3ba2..5ab698cd415 100644
--- a/source/blender/editors/space_node/node_header.c
+++ b/source/blender/editors/space_node/node_header.c
@@ -28,13 +28,10 @@
* \ingroup spnode
*/
-
#include <string.h>
-#include <stdio.h>
#include "DNA_space_types.h"
#include "DNA_node_types.h"
-#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "MEM_guardedalloc.h"
@@ -44,6 +41,7 @@
#include "BLF_translation.h"
+#include "BKE_blender.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_main.h"
@@ -51,59 +49,61 @@
#include "BKE_scene.h"
#include "BKE_screen.h"
-#include "RNA_access.h"
-
#include "WM_api.h"
#include "WM_types.h"
-#include "UI_interface.h"
-#include "UI_interface_icons.h"
-#include "UI_resources.h"
#include "UI_view2d.h"
-#include "node_intern.h"
+#include "node_intern.h" /* own include */
/* ************************ add menu *********************** */
static void do_node_add(bContext *C, bNodeTemplate *ntemp)
{
- Main *bmain= CTX_data_main(C);
- Scene *scene= CTX_data_scene(C);
- SpaceNode *snode= CTX_wm_space_node(C);
- ScrArea *sa= CTX_wm_area(C);
+ Main *bmain = CTX_data_main(C);
+ Scene *scene = CTX_data_scene(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ScrArea *sa = CTX_wm_area(C);
ARegion *ar;
- bNode *node;
+ bNode *node, *node_new;
/* get location to add node at mouse */
- for (ar=sa->regionbase.first; ar; ar=ar->next) {
+ for (ar = sa->regionbase.first; ar; ar = ar->next) {
if (ar->regiontype == RGN_TYPE_WINDOW) {
- wmWindow *win= CTX_wm_window(C);
- int x= win->eventstate->x - ar->winrct.xmin;
- int y= win->eventstate->y - ar->winrct.ymin;
+ wmWindow *win = CTX_wm_window(C);
+ int x = win->eventstate->x - ar->winrct.xmin;
+ int y = win->eventstate->y - ar->winrct.ymin;
- if (y < 60) y+= 60;
- UI_view2d_region_to_view(&ar->v2d, x, y, &snode->mx, &snode->my);
+ if (y < 60) y += 60;
+ UI_view2d_region_to_view(&ar->v2d, x, y, &snode->cursor[0], &snode->cursor[1]);
}
}
/* store selection in temp test flag */
- for (node= snode->edittree->nodes.first; node; node= node->next) {
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
if (node->flag & NODE_SELECT) node->flag |= NODE_TEST;
else node->flag &= ~NODE_TEST;
}
- /* node= */ node_add_node(snode, bmain, scene, ntemp, snode->mx, snode->my);
+ node_new = node_add_node(snode, bmain, scene, ntemp, snode->cursor[0], snode->cursor[1]);
/* select previous selection before autoconnect */
- for (node= snode->edittree->nodes.first; node; node= node->next) {
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
if (node->flag & NODE_TEST) node->flag |= NODE_SELECT;
}
/* deselect after autoconnection */
- for (node= snode->edittree->nodes.first; node; node= node->next) {
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
if (node->flag & NODE_TEST) node->flag &= ~NODE_SELECT;
}
-
+
+ /* once this is called from an operator, this should be removed */
+ if (node_new) {
+ char undostr[BKE_UNDO_STR_MAX];
+ BLI_snprintf(undostr, sizeof(undostr), "Add Node %s", nodeLabel(node_new));
+ BKE_write_undo(C, undostr);
+ }
+
snode_notify(C, snode);
snode_dag_update(C, snode);
}
@@ -123,29 +123,29 @@ static void do_node_add_static(bContext *C, void *UNUSED(arg), int event)
static void do_node_add_group(bContext *C, void *UNUSED(arg), int event)
{
- SpaceNode *snode= CTX_wm_space_node(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
bNodeTemplate ntemp;
- if (event>=0) {
- ntemp.ngroup= BLI_findlink(&G.main->nodetree, event);
+ if (event >= 0) {
+ ntemp.ngroup = BLI_findlink(&G.main->nodetree, event);
ntemp.type = ntemp.ngroup->nodetype;
}
else {
ntemp.type = -event;
switch (ntemp.type) {
- case NODE_GROUP:
- ntemp.ngroup = ntreeAddTree("Group", snode->treetype, ntemp.type);
- break;
- case NODE_FORLOOP:
- ntemp.ngroup = ntreeAddTree("For Loop", snode->treetype, ntemp.type);
- break;
- case NODE_WHILELOOP:
- ntemp.ngroup = ntreeAddTree("While Loop", snode->treetype, ntemp.type);
- break;
- default:
- ntemp.ngroup = NULL;
+ case NODE_GROUP:
+ ntemp.ngroup = ntreeAddTree("Group", snode->treetype, ntemp.type);
+ break;
+ case NODE_FORLOOP:
+ ntemp.ngroup = ntreeAddTree("For Loop", snode->treetype, ntemp.type);
+ break;
+ case NODE_WHILELOOP:
+ ntemp.ngroup = ntreeAddTree("While Loop", snode->treetype, ntemp.type);
+ break;
+ default:
+ ntemp.ngroup = NULL;
}
}
if (!ntemp.ngroup)
@@ -159,10 +159,10 @@ static void do_node_add_group(bContext *C, void *UNUSED(arg), int event)
static int node_tree_has_type(int treetype, int nodetype)
{
- bNodeTreeType *ttype= ntreeGetType(treetype);
+ bNodeTreeType *ttype = ntreeGetType(treetype);
bNodeType *ntype;
- for (ntype=ttype->node_types.first; ntype; ntype=ntype->next) {
- if (ntype->type==nodetype)
+ for (ntype = ttype->node_types.first; ntype; ntype = ntype->next) {
+ if (ntype->type == nodetype)
return 1;
}
return 0;
@@ -170,12 +170,12 @@ static int node_tree_has_type(int treetype, int nodetype)
static void node_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass)
{
- Main *bmain= CTX_data_main(C);
- Scene *scene= CTX_data_scene(C);
- SpaceNode *snode= CTX_wm_space_node(C);
+ Main *bmain = CTX_data_main(C);
+ Scene *scene = CTX_data_scene(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
bNodeTree *ntree;
- int nodeclass= GET_INT_FROM_POINTER(arg_nodeclass);
- int event, compatibility= 0;
+ int nodeclass = GET_INT_FROM_POINTER(arg_nodeclass);
+ int event, compatibility = 0;
ntree = snode->nodetree;
@@ -186,12 +186,12 @@ static void node_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass)
if (ntree->type == NTREE_SHADER) {
if (BKE_scene_use_new_shading_nodes(scene))
- compatibility= NODE_NEW_SHADING;
+ compatibility = NODE_NEW_SHADING;
else
- compatibility= NODE_OLD_SHADING;
+ compatibility = NODE_OLD_SHADING;
}
- if (nodeclass==NODE_CLASS_GROUP) {
+ if (nodeclass == NODE_CLASS_GROUP) {
bNodeTree *ngroup;
uiLayoutSetFunc(layout, do_node_add_group, NULL);
@@ -205,10 +205,10 @@ static void node_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass)
uiItemV(layout, IFACE_("New While Loop"), 0, -NODE_WHILELOOP);
uiItemS(layout);
- for (ngroup=bmain->nodetree.first, event=0; ngroup; ngroup= ngroup->id.next, ++event) {
+ for (ngroup = bmain->nodetree.first, event = 0; ngroup; ngroup = ngroup->id.next, ++event) {
/* only use group trees */
- if (ngroup->type==ntree->type && ELEM3(ngroup->nodetype, NODE_GROUP, NODE_FORLOOP, NODE_WHILELOOP)) {
- uiItemV(layout, ngroup->id.name+2, 0, event);
+ if (ngroup->type == ntree->type && ELEM3(ngroup->nodetype, NODE_GROUP, NODE_FORLOOP, NODE_WHILELOOP)) {
+ uiItemV(layout, ngroup->id.name + 2, 0, event);
}
}
}
@@ -217,30 +217,35 @@ static void node_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass)
uiLayoutSetFunc(layout, do_node_add_static, NULL);
- for (ntype=ntreeGetType(ntree->type)->node_types.first; ntype; ntype=ntype->next) {
- if (ntype->nclass==nodeclass && ntype->name)
- if (!compatibility || (ntype->compatibility & compatibility))
+ for (ntype = ntreeGetType(ntree->type)->node_types.first; ntype; ntype = ntype->next) {
+ if (ntype->nclass == nodeclass && ntype->name) {
+ if (!compatibility || (ntype->compatibility & compatibility)) {
uiItemV(layout, IFACE_(ntype->name), 0, ntype->type);
+ }
+ }
}
}
}
static void node_menu_add_foreach_cb(void *calldata, int nclass, const char *name)
{
- uiLayout *layout= calldata;
+ uiLayout *layout = calldata;
uiItemMenuF(layout, IFACE_(name), 0, node_add_menu, SET_INT_IN_POINTER(nclass));
}
static void node_menu_add(const bContext *C, Menu *menu)
{
- Scene *scene= CTX_data_scene(C);
- SpaceNode *snode= CTX_wm_space_node(C);
- uiLayout *layout= menu->layout;
- bNodeTreeType *ntreetype= ntreeGetType(snode->treetype);
+ Scene *scene = CTX_data_scene(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
+ uiLayout *layout = menu->layout;
+ bNodeTreeType *ntreetype = ntreeGetType(snode->treetype);
if (!snode->nodetree)
uiLayoutSetActive(layout, FALSE);
+ uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_DEFAULT);
+ uiItemO(layout, "Search ...", 0, "NODE_OT_add_search");
+
if (ntreetype && ntreetype->foreach_nodeclass)
ntreetype->foreach_nodeclass(scene, layout, node_menu_add_foreach_cb);
}
@@ -249,10 +254,9 @@ void node_menus_register(void)
{
MenuType *mt;
- mt= MEM_callocN(sizeof(MenuType), "spacetype node menu add");
+ mt = MEM_callocN(sizeof(MenuType), "spacetype node menu add");
strcpy(mt->idname, "NODE_MT_add");
strcpy(mt->label, "Add");
- mt->draw= node_menu_add;
+ mt->draw = node_menu_add;
WM_menutype_add(mt);
}
-
diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h
index d9dbd646fa5..36ebddc8d22 100644
--- a/source/blender/editors/space_node/node_intern.h
+++ b/source/blender/editors/space_node/node_intern.h
@@ -107,30 +107,76 @@ void NODE_OT_select_all(wmOperatorType *ot);
void NODE_OT_select_linked_to(wmOperatorType *ot);
void NODE_OT_select_linked_from(wmOperatorType *ot);
void NODE_OT_select_border(struct wmOperatorType *ot);
+void NODE_OT_select_lasso(struct wmOperatorType *ot);
void NODE_OT_select_same_type(struct wmOperatorType *ot);
void NODE_OT_select_same_type_next(wmOperatorType *ot);
void NODE_OT_select_same_type_prev(wmOperatorType *ot);
-/* node_state.c */
+/* node_view.c */
void NODE_OT_view_all(struct wmOperatorType *ot);
+void NODE_OT_view_selected(struct wmOperatorType *ot);
+
+void NODE_OT_backimage_move(struct wmOperatorType *ot);
+void NODE_OT_backimage_zoom(struct wmOperatorType *ot);
+void NODE_OT_backimage_sample(wmOperatorType *ot);
/* drawnode.c */
void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link);
-void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link, int th_col1, int do_shaded, int th_col2, int do_triple, int th_col3 );
-int node_link_bezier_points(View2D *v2d, SpaceNode *snode, bNodeLink *link, float coord_array[][2], int resol);
-void node_draw_link_straight(View2D *v2d, SpaceNode *snode, bNodeLink *link, int th_col1, int do_shaded, int th_col2, int do_triple, int th_col3 );
-void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage);
+void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link, int th_col1, int do_shaded, int th_col2, int do_triple, int th_col3);
+int node_link_bezier_points(View2D * v2d, SpaceNode * snode, bNodeLink * link, float coord_array[][2], int resol);
+// void node_draw_link_straight(View2D *v2d, SpaceNode *snode, bNodeLink *link, int th_col1, int do_shaded, int th_col2, int do_triple, int th_col3 );
+void draw_nodespace_back_pix(const struct bContext *C, ARegion *ar, SpaceNode *snode);
+
+
+/* node_add.c */
+bNode *node_add_node(struct SpaceNode *snode, struct Main *bmain, struct Scene *scene,
+ struct bNodeTemplate *ntemp, float locx, float locy);
+void NODE_OT_add_reroute(struct wmOperatorType *ot);
+
+
+/* node_group.c */
+void NODE_OT_group_make(struct wmOperatorType *ot);
+void NODE_OT_group_ungroup(struct wmOperatorType *ot);
+void NODE_OT_group_separate(struct wmOperatorType *ot);
+void NODE_OT_group_edit(struct wmOperatorType *ot);
+void NODE_OT_group_socket_add(struct wmOperatorType *ot);
+void NODE_OT_group_socket_remove(struct wmOperatorType *ot);
+void NODE_OT_group_socket_move_up(struct wmOperatorType *ot);
+void NODE_OT_group_socket_move_down(struct wmOperatorType *ot);
+
+
+/* note_add.c */
+void NODE_OT_add_file(struct wmOperatorType *ot);
+void NODE_OT_new_node_tree(struct wmOperatorType *ot);
+
+
+/* node_relationships.c */
+void NODE_OT_link(struct wmOperatorType *ot);
+void NODE_OT_link_make(struct wmOperatorType *ot);
+void NODE_OT_links_cut(struct wmOperatorType *ot);
+void NODE_OT_links_detach(struct wmOperatorType *ot);
+
+void NODE_OT_parent_set(struct wmOperatorType *ot);
+void NODE_OT_parent_clear(struct wmOperatorType *ot);
+void NODE_OT_join(struct wmOperatorType *ot);
+void NODE_OT_attach(struct wmOperatorType *ot);
+void NODE_OT_detach(struct wmOperatorType *ot);
+
+void NODE_OT_show_cyclic_dependencies(struct wmOperatorType *ot);
+void NODE_OT_link_viewer(struct wmOperatorType *ot);
/* node_edit.c */
void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *treetype);
void snode_notify(bContext *C, SpaceNode *snode);
void snode_dag_update(bContext *C, SpaceNode *snode);
-bNode *node_add_node(struct SpaceNode *snode, struct Main *bmain, struct Scene *scene, struct bNodeTemplate *ntemp, float locx, float locy);
void snode_set_context(SpaceNode *snode, Scene *scene);
void snode_make_group_editable(SpaceNode *snode, bNode *gnode);
-void snode_composite_job(const struct bContext *C, ScrArea *sa);
+
bNode *node_tree_get_editgroup(bNodeTree *ntree);
-void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace);
+void snode_update(struct SpaceNode *snode, struct bNode *node);
+bNode *editnode_get_active(bNodeTree *ntree);
+int composite_node_active(struct bContext *C);
+
int node_has_hidden_sockets(bNode *node);
void node_set_hidden_sockets(SpaceNode *snode, bNode *node, int set);
int node_render_changed_exec(bContext *, wmOperator *);
@@ -141,21 +187,6 @@ void NODE_OT_delete(struct wmOperatorType *ot);
void NODE_OT_delete_reconnect(struct wmOperatorType *ot);
void NODE_OT_resize(struct wmOperatorType *ot);
-void NODE_OT_link(struct wmOperatorType *ot);
-void NODE_OT_link_make(struct wmOperatorType *ot);
-void NODE_OT_links_cut(struct wmOperatorType *ot);
-void NODE_OT_links_detach(struct wmOperatorType *ot);
-void NODE_OT_add_reroute(struct wmOperatorType *ot);
-
-void NODE_OT_group_make(struct wmOperatorType *ot);
-void NODE_OT_group_ungroup(struct wmOperatorType *ot);
-void NODE_OT_group_separate(struct wmOperatorType *ot);
-void NODE_OT_group_edit(struct wmOperatorType *ot);
-void NODE_OT_group_socket_add(struct wmOperatorType *ot);
-void NODE_OT_group_socket_remove(struct wmOperatorType *ot);
-void NODE_OT_group_socket_move_up(struct wmOperatorType *ot);
-void NODE_OT_group_socket_move_down(struct wmOperatorType *ot);
-
void NODE_OT_mute_toggle(struct wmOperatorType *ot);
void NODE_OT_hide_toggle(struct wmOperatorType *ot);
void NODE_OT_hide_socket_toggle(struct wmOperatorType *ot);
@@ -163,45 +194,35 @@ void NODE_OT_preview_toggle(struct wmOperatorType *ot);
void NODE_OT_options_toggle(struct wmOperatorType *ot);
void NODE_OT_node_copy_color(struct wmOperatorType *ot);
-void NODE_OT_show_cyclic_dependencies(struct wmOperatorType *ot);
-void NODE_OT_link_viewer(struct wmOperatorType *ot);
void NODE_OT_read_fullsamplelayers(struct wmOperatorType *ot);
void NODE_OT_read_renderlayers(struct wmOperatorType *ot);
void NODE_OT_render_changed(struct wmOperatorType *ot);
-void NODE_OT_backimage_move(struct wmOperatorType *ot);
-void NODE_OT_backimage_zoom(struct wmOperatorType *ot);
-void NODE_OT_backimage_sample(wmOperatorType *ot);
-
-void NODE_OT_add_file(struct wmOperatorType *ot);
-
-void NODE_OT_new_node_tree(struct wmOperatorType *ot);
-
void NODE_OT_output_file_add_socket(struct wmOperatorType *ot);
void NODE_OT_output_file_remove_active_socket(struct wmOperatorType *ot);
void NODE_OT_output_file_move_active_socket(struct wmOperatorType *ot);
-void NODE_OT_parent_set(struct wmOperatorType *ot);
-void NODE_OT_parent_clear(struct wmOperatorType *ot);
-void NODE_OT_join(struct wmOperatorType *ot);
-void NODE_OT_attach(struct wmOperatorType *ot);
-void NODE_OT_detach(struct wmOperatorType *ot);
+/* Note: clipboard_cut is a simple macro of copy + delete */
+void NODE_OT_clipboard_copy(struct wmOperatorType *ot);
+void NODE_OT_clipboard_paste(struct wmOperatorType *ot);
extern const char *node_context_dir[];
// XXXXXX
// XXX from BSE_node.h
-#define HIDDEN_RAD 15.0f
-#define BASIS_RAD 8.0f
-#define NODE_DYS (U.widget_unit/2)
-#define NODE_DY U.widget_unit
-#define NODE_SOCKSIZE 5
+#define HIDDEN_RAD 15.0f
+#define BASIS_RAD 8.0f
+#define NODE_DYS (U.widget_unit / 2)
+#define NODE_DY U.widget_unit
+#define NODE_MARGIN_X 15
+#define NODE_SOCKSIZE 5
+#define NODE_LINK_RESOL 12
// XXX button events (butspace)
enum {
B_NOP = 0,
- B_REDR = 1,
+ B_REDR = 1,
B_NODE_USEMAT,
B_NODE_USESCENE,
B_NODE_USETEX,
diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c
index ff1661f0327..560ef9e8a29 100644
--- a/source/blender/editors/space_node/node_ops.c
+++ b/source/blender/editors/space_node/node_ops.c
@@ -30,13 +30,12 @@
#include "DNA_node_types.h"
-#include "DNA_scene_types.h"
#include "BKE_context.h"
#include "BLI_utildefines.h"
-#include "ED_node.h"
+#include "ED_node.h" /* own include */
#include "ED_screen.h"
#include "ED_transform.h"
@@ -45,7 +44,7 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "node_intern.h"
+#include "node_intern.h" /* own include */
void node_operatortypes(void)
{
@@ -56,11 +55,13 @@ void node_operatortypes(void)
WM_operatortype_append(NODE_OT_select_linked_to);
WM_operatortype_append(NODE_OT_select_linked_from);
WM_operatortype_append(NODE_OT_select_border);
+ WM_operatortype_append(NODE_OT_select_lasso);
WM_operatortype_append(NODE_OT_select_same_type);
WM_operatortype_append(NODE_OT_select_same_type_next);
WM_operatortype_append(NODE_OT_select_same_type_prev);
WM_operatortype_append(NODE_OT_view_all);
+ WM_operatortype_append(NODE_OT_view_selected);
WM_operatortype_append(NODE_OT_mute_toggle);
WM_operatortype_append(NODE_OT_hide_toggle);
@@ -113,6 +114,9 @@ void node_operatortypes(void)
WM_operatortype_append(NODE_OT_join);
WM_operatortype_append(NODE_OT_attach);
WM_operatortype_append(NODE_OT_detach);
+
+ WM_operatortype_append(NODE_OT_clipboard_copy);
+ WM_operatortype_append(NODE_OT_clipboard_paste);
}
void ED_operatormacros_node(void)
@@ -128,14 +132,14 @@ void ED_operatormacros_node(void)
ot = WM_operatortype_append_macro("NODE_OT_translate_attach", "Move and Attach",
"Move nodes and attach to frame",
- OPTYPE_UNDO|OPTYPE_REGISTER);
+ OPTYPE_UNDO | OPTYPE_REGISTER);
mot = WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
RNA_boolean_set(mot->ptr, "release_confirm", TRUE);
WM_operatortype_macro_define(ot, "NODE_OT_attach");
ot = WM_operatortype_append_macro("NODE_OT_detach_translate_attach", "Detach and Move",
"Detach nodes, move and attach to frame",
- OPTYPE_UNDO|OPTYPE_REGISTER);
+ OPTYPE_UNDO | OPTYPE_REGISTER);
WM_operatortype_macro_define(ot, "NODE_OT_detach");
mot = WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
RNA_boolean_set(mot->ptr, "release_confirm", TRUE);
@@ -143,45 +147,45 @@ void ED_operatormacros_node(void)
ot = WM_operatortype_append_macro("NODE_OT_duplicate_move", "Duplicate",
"Duplicate selected nodes and move them",
- OPTYPE_UNDO|OPTYPE_REGISTER);
+ OPTYPE_UNDO | OPTYPE_REGISTER);
WM_operatortype_macro_define(ot, "NODE_OT_duplicate");
WM_operatortype_macro_define(ot, "NODE_OT_translate_attach");
/* modified operator call for duplicating with input links */
ot = WM_operatortype_append_macro("NODE_OT_duplicate_move_keep_inputs", "Duplicate",
"Duplicate selected nodes keeping input links and move them",
- OPTYPE_UNDO|OPTYPE_REGISTER);
+ OPTYPE_UNDO | OPTYPE_REGISTER);
mot = WM_operatortype_macro_define(ot, "NODE_OT_duplicate");
RNA_boolean_set(mot->ptr, "keep_inputs", TRUE);
WM_operatortype_macro_define(ot, "NODE_OT_translate_attach");
ot = WM_operatortype_append_macro("NODE_OT_move_detach_links", "Detach", "Move a node to detach links",
- OPTYPE_UNDO|OPTYPE_REGISTER);
+ OPTYPE_UNDO | OPTYPE_REGISTER);
WM_operatortype_macro_define(ot, "NODE_OT_links_detach");
WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
ot = WM_operatortype_append_macro("NODE_OT_move_detach_links_release", "Detach", "Move a node to detach links",
- OPTYPE_UNDO|OPTYPE_REGISTER);
+ OPTYPE_UNDO | OPTYPE_REGISTER);
WM_operatortype_macro_define(ot, "NODE_OT_links_detach");
- mot = WM_operatortype_macro_define(ot, "NODE_OT_translate_attach");
+ WM_operatortype_macro_define(ot, "NODE_OT_translate_attach");
}
/* helper function for repetitive select operator keymap */
static void node_select_keymap(wmKeyMap *keymap, int extend)
{
/* modifier combinations */
- const int mod_single[] = { 0, KM_CTRL, KM_ALT, KM_CTRL|KM_ALT,
+ const int mod_single[] = { 0, KM_CTRL, KM_ALT, KM_CTRL | KM_ALT,
-1 /* terminator */
- };
- const int mod_extend[] = { KM_SHIFT, KM_SHIFT|KM_CTRL,
- KM_SHIFT|KM_ALT, KM_SHIFT|KM_CTRL|KM_ALT,
+ };
+ const int mod_extend[] = { KM_SHIFT, KM_SHIFT | KM_CTRL,
+ KM_SHIFT | KM_ALT, KM_SHIFT | KM_CTRL | KM_ALT,
-1 /* terminator */
- };
+ };
const int *mod = (extend ? mod_extend : mod_single);
wmKeyMapItem *kmi;
int i;
- for (i=0; mod[i] >= 0; ++i) {
+ for (i = 0; mod[i] >= 0; ++i) {
kmi = WM_keymap_add_item(keymap, "NODE_OT_select", ACTIONMOUSE, KM_PRESS, mod[i], 0);
RNA_boolean_set(kmi->ptr, "extend", extend);
kmi = WM_keymap_add_item(keymap, "NODE_OT_select", SELECTMOUSE, KM_PRESS, mod[i], 0);
@@ -212,23 +216,28 @@ void node_keymap(struct wmKeyConfig *keyconf)
node_select_keymap(keymap, TRUE);
kmi = WM_keymap_add_item(keymap, "NODE_OT_select_border", EVT_TWEAK_S, KM_ANY, 0, 0);
- RNA_boolean_set(kmi->ptr, "tweak", TRUE);
+ RNA_boolean_set(kmi->ptr, "tweak", TRUE);
+ kmi = WM_keymap_add_item(keymap, "NODE_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_ALT, 0);
+ RNA_boolean_set(kmi->ptr, "deselect", FALSE);
+ kmi = WM_keymap_add_item(keymap, "NODE_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT | KM_ALT, 0);
+ RNA_boolean_set(kmi->ptr, "deselect", TRUE);
+
/* each of these falls through if not handled... */
WM_keymap_add_item(keymap, "NODE_OT_link", LEFTMOUSE, KM_PRESS, 0, 0);
kmi = WM_keymap_add_item(keymap, "NODE_OT_link", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "detach", TRUE);
+ RNA_boolean_set(kmi->ptr, "detach", TRUE);
WM_keymap_add_item(keymap, "NODE_OT_resize", LEFTMOUSE, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NODE_OT_add_reroute", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "NODE_OT_links_cut", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "NODE_OT_select_link_viewer", LEFTMOUSE, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_select_link_viewer", LEFTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
WM_keymap_add_item(keymap, "NODE_OT_backimage_move", MIDDLEMOUSE, KM_PRESS, KM_ALT, 0);
kmi = WM_keymap_add_item(keymap, "NODE_OT_backimage_zoom", VKEY, KM_PRESS, 0, 0);
- RNA_float_set(kmi->ptr, "factor", 0.83333f);
+ RNA_float_set(kmi->ptr, "factor", 0.83333f);
kmi = WM_keymap_add_item(keymap, "NODE_OT_backimage_zoom", VKEY, KM_PRESS, KM_ALT, 0);
- RNA_float_set(kmi->ptr, "factor", 1.2f);
+ RNA_float_set(kmi->ptr, "factor", 1.2f);
WM_keymap_add_item(keymap, "NODE_OT_backimage_sample", ACTIONMOUSE, KM_PRESS, KM_ALT, 0);
kmi = WM_keymap_add_item(keymap, "NODE_OT_link_make", FKEY, KM_PRESS, 0, 0);
@@ -239,7 +248,7 @@ void node_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_menu(keymap, "NODE_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "NODE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
/* modified operator call for duplicating with input links */
- WM_keymap_add_item(keymap, "NODE_OT_duplicate_move_keep_inputs", DKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_duplicate_move_keep_inputs", DKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
WM_keymap_add_item(keymap, "NODE_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "NODE_OT_parent_clear", PKEY, KM_PRESS, KM_ALT, 0);
@@ -253,6 +262,7 @@ void node_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "NODE_OT_show_cyclic_dependencies", CKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NODE_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
kmi = WM_keymap_add_item(keymap, "NODE_OT_select_border", BKEY, KM_PRESS, 0, 0);
RNA_boolean_set(kmi->ptr, "tweak", FALSE);
@@ -261,7 +271,11 @@ void node_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "NODE_OT_delete", DELKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NODE_OT_delete_reconnect", XKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "NODE_OT_select_all", AKEY, KM_PRESS, 0, 0);
+ kmi = WM_keymap_add_item(keymap, "NODE_OT_select_all", AKEY, KM_PRESS, 0, 0);
+ RNA_enum_set(kmi->ptr, "action", SEL_TOGGLE);
+ kmi = WM_keymap_add_item(keymap, "NODE_OT_select_all", IKEY, KM_PRESS, KM_CTRL, 0);
+ RNA_enum_set(kmi->ptr, "action", SEL_INVERT);
+
WM_keymap_add_item(keymap, "NODE_OT_select_linked_to", LKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "NODE_OT_select_linked_from", LKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NODE_OT_select_same_type", GKEY, KM_PRESS, KM_SHIFT, 0);
@@ -277,5 +291,8 @@ void node_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "NODE_OT_read_fullsamplelayers", RKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "NODE_OT_render_changed", ZKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_clipboard_copy", CKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_clipboard_paste", VKEY, KM_PRESS, KM_CTRL, 0);
+
transform_keymap_for_space(keyconf, keymap, SPACE_NODE);
}
diff --git a/source/blender/editors/space_node/node_relationships.c b/source/blender/editors/space_node/node_relationships.c
new file mode 100644
index 00000000000..fec7366ee73
--- /dev/null
+++ b/source/blender/editors/space_node/node_relationships.c
@@ -0,0 +1,1423 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2005 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): David Millan Escriva, Juho Vepsäläinen, Nathan Letwory
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editors/space_node/node_relationships.c
+ * \ingroup spnode
+ */
+
+#include "MEM_guardedalloc.h"
+
+#include "DNA_node_types.h"
+#include "DNA_object_types.h"
+
+#include "BLI_math.h"
+#include "BLI_blenlib.h"
+
+#include "BKE_context.h"
+#include "BKE_main.h"
+#include "BKE_node.h"
+
+#include "ED_node.h" /* own include */
+#include "ED_screen.h"
+#include "ED_render.h"
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "UI_view2d.h"
+
+#include "node_intern.h" /* own include */
+
+/* ****************** Add *********************** */
+
+
+typedef struct bNodeListItem {
+ struct bNodeListItem *next, *prev;
+ struct bNode *node;
+} bNodeListItem;
+
+static int sort_nodes_locx(void *a, void *b)
+{
+ bNodeListItem *nli1 = (bNodeListItem *)a;
+ bNodeListItem *nli2 = (bNodeListItem *)b;
+ bNode *node1 = nli1->node;
+ bNode *node2 = nli2->node;
+
+ if (node1->locx > node2->locx)
+ return 1;
+ else
+ return 0;
+}
+
+static int socket_is_available(bNodeTree *UNUSED(ntree), bNodeSocket *sock, int allow_used)
+{
+ if (nodeSocketIsHidden(sock))
+ return 0;
+
+ if (!allow_used && (sock->flag & SOCK_IN_USE))
+ return 0;
+
+ return 1;
+}
+
+static bNodeSocket *best_socket_output(bNodeTree *ntree, bNode *node, bNodeSocket *sock_target, int allow_multiple)
+{
+ bNodeSocket *sock;
+
+ /* first look for selected output */
+ for (sock = node->outputs.first; sock; sock = sock->next) {
+ if (!socket_is_available(ntree, sock, allow_multiple))
+ continue;
+
+ if (sock->flag & SELECT)
+ return sock;
+ }
+
+ /* try to find a socket with a matching name */
+ for (sock = node->outputs.first; sock; sock = sock->next) {
+ if (!socket_is_available(ntree, sock, allow_multiple))
+ continue;
+
+ /* check for same types */
+ if (sock->type == sock_target->type) {
+ if (strcmp(sock->name, sock_target->name) == 0)
+ return sock;
+ }
+ }
+
+ /* otherwise settle for the first available socket of the right type */
+ for (sock = node->outputs.first; sock; sock = sock->next) {
+
+ if (!socket_is_available(ntree, sock, allow_multiple))
+ continue;
+
+ /* check for same types */
+ if (sock->type == sock_target->type) {
+ return sock;
+ }
+ }
+
+ return NULL;
+}
+
+/* this is a bit complicated, but designed to prioritize finding
+ * sockets of higher types, such as image, first */
+static bNodeSocket *best_socket_input(bNodeTree *ntree, bNode *node, int num, int replace)
+{
+ bNodeSocket *sock;
+ int socktype, maxtype = 0;
+ int a = 0;
+
+ for (sock = node->inputs.first; sock; sock = sock->next) {
+ maxtype = MAX2(sock->type, maxtype);
+ }
+
+ /* find sockets of higher 'types' first (i.e. image) */
+ for (socktype = maxtype; socktype >= 0; socktype--) {
+ for (sock = node->inputs.first; sock; sock = sock->next) {
+
+ if (!socket_is_available(ntree, sock, replace)) {
+ a++;
+ continue;
+ }
+
+ if (sock->type == socktype) {
+ /* increment to make sure we don't keep finding
+ * the same socket on every attempt running this function */
+ a++;
+ if (a > num)
+ return sock;
+ }
+ }
+ }
+
+ return NULL;
+}
+
+static int snode_autoconnect_input(SpaceNode *snode, bNode *node_fr, bNodeSocket *sock_fr, bNode *node_to, bNodeSocket *sock_to, int replace)
+{
+ bNodeTree *ntree = snode->edittree;
+ bNodeLink *link;
+
+ /* then we can connect */
+ if (replace)
+ nodeRemSocketLinks(ntree, sock_to);
+
+ link = nodeAddLink(ntree, node_fr, sock_fr, node_to, sock_to);
+ /* validate the new link */
+ ntreeUpdateTree(ntree);
+ if (!(link->flag & NODE_LINK_VALID)) {
+ nodeRemLink(ntree, link);
+ return 0;
+ }
+
+ snode_update(snode, node_to);
+ return 1;
+}
+
+static void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace)
+{
+ bNodeTree *ntree = snode->edittree;
+ ListBase *nodelist = MEM_callocN(sizeof(ListBase), "items_list");
+ bNodeListItem *nli;
+ bNode *node;
+ int i, numlinks = 0;
+
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->flag & NODE_SELECT) {
+ nli = MEM_mallocN(sizeof(bNodeListItem), "temporary node list item");
+ nli->node = node;
+ BLI_addtail(nodelist, nli);
+ }
+ }
+
+ /* sort nodes left to right */
+ BLI_sortlist(nodelist, sort_nodes_locx);
+
+ for (nli = nodelist->first; nli; nli = nli->next) {
+ bNode *node_fr, *node_to;
+ bNodeSocket *sock_fr, *sock_to;
+ int has_selected_inputs = 0;
+
+ if (nli->next == NULL) break;
+
+ node_fr = nli->node;
+ node_to = nli->next->node;
+
+ /* if there are selected sockets, connect those */
+ for (sock_to = node_to->inputs.first; sock_to; sock_to = sock_to->next) {
+ if (sock_to->flag & SELECT) {
+ has_selected_inputs = 1;
+
+ if (!socket_is_available(ntree, sock_to, replace))
+ continue;
+
+ /* check for an appropriate output socket to connect from */
+ sock_fr = best_socket_output(ntree, node_fr, sock_to, allow_multiple);
+ if (!sock_fr)
+ continue;
+
+ if (snode_autoconnect_input(snode, node_fr, sock_fr, node_to, sock_to, replace)) {
+ numlinks++;
+ }
+ }
+ }
+
+ if (!has_selected_inputs) {
+ /* no selected inputs, connect by finding suitable match */
+ int num_inputs = BLI_countlist(&node_to->inputs);
+
+ for (i = 0; i < num_inputs; i++) {
+
+ /* find the best guess input socket */
+ sock_to = best_socket_input(ntree, node_to, i, replace);
+ if (!sock_to)
+ continue;
+
+ /* check for an appropriate output socket to connect from */
+ sock_fr = best_socket_output(ntree, node_fr, sock_to, allow_multiple);
+ if (!sock_fr)
+ continue;
+
+ if (snode_autoconnect_input(snode, node_fr, sock_fr, node_to, sock_to, replace)) {
+ numlinks++;
+ break;
+ }
+ }
+ }
+ }
+
+ if (numlinks > 0) {
+ ntreeUpdateTree(ntree);
+ }
+
+ BLI_freelistN(nodelist);
+ MEM_freeN(nodelist);
+}
+
+/* *************************** link viewer op ******************** */
+
+static int node_link_viewer(const bContext *C, bNode *tonode)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNode *node;
+ bNodeLink *link;
+ bNodeSocket *sock;
+
+ /* context check */
+ if (tonode == NULL || tonode->outputs.first == NULL)
+ return OPERATOR_CANCELLED;
+ if (ELEM(tonode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER))
+ return OPERATOR_CANCELLED;
+
+ /* get viewer */
+ for (node = snode->edittree->nodes.first; node; node = node->next)
+ if (ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER))
+ if (node->flag & NODE_DO_OUTPUT)
+ break;
+ /* no viewer, we make one active */
+ if (node == NULL) {
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
+ if (ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
+ node->flag |= NODE_DO_OUTPUT;
+ break;
+ }
+ }
+ }
+
+ sock = NULL;
+
+ /* try to find an already connected socket to cycle to the next */
+ if (node) {
+ link = NULL;
+ for (link = snode->edittree->links.first; link; link = link->next)
+ if (link->tonode == node && link->fromnode == tonode)
+ if (link->tosock == node->inputs.first)
+ break;
+ if (link) {
+ /* unlink existing connection */
+ sock = link->fromsock;
+ nodeRemLink(snode->edittree, link);
+
+ /* find a socket after the previously connected socket */
+ for (sock = sock->next; sock; sock = sock->next)
+ if (!nodeSocketIsHidden(sock))
+ break;
+ }
+ }
+
+ /* find a socket starting from the first socket */
+ if (!sock) {
+ for (sock = tonode->outputs.first; sock; sock = sock->next)
+ if (!nodeSocketIsHidden(sock))
+ break;
+ }
+
+ if (sock) {
+ /* add a new viewer if none exists yet */
+ if (!node) {
+ Main *bmain = CTX_data_main(C);
+ Scene *scene = CTX_data_scene(C);
+ bNodeTemplate ntemp;
+
+ ntemp.type = CMP_NODE_VIEWER;
+ /* XXX location is a quick hack, just place it next to the linked socket */
+ node = node_add_node(snode, bmain, scene, &ntemp, sock->locx + 100, sock->locy);
+ if (!node)
+ return OPERATOR_CANCELLED;
+
+ link = NULL;
+ }
+ else {
+ /* get link to viewer */
+ for (link = snode->edittree->links.first; link; link = link->next)
+ if (link->tonode == node && link->tosock == node->inputs.first)
+ break;
+ }
+
+ if (link == NULL) {
+ nodeAddLink(snode->edittree, tonode, sock, node, node->inputs.first);
+ }
+ else {
+ link->fromnode = tonode;
+ link->fromsock = sock;
+ /* make sure the dependency sorting is updated */
+ snode->edittree->update |= NTREE_UPDATE_LINKS;
+ }
+ ntreeUpdateTree(snode->edittree);
+ snode_update(snode, node);
+ }
+
+ return OPERATOR_FINISHED;
+}
+
+
+static int node_active_link_viewer(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNode *node;
+
+ node = editnode_get_active(snode->edittree);
+
+ if (!node)
+ return OPERATOR_CANCELLED;
+
+ ED_preview_kill_jobs(C);
+
+ if (node_link_viewer(C, node) == OPERATOR_CANCELLED)
+ return OPERATOR_CANCELLED;
+
+ snode_notify(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+
+void NODE_OT_link_viewer(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Link to Viewer Node";
+ ot->description = "Link to viewer node";
+ ot->idname = "NODE_OT_link_viewer";
+
+ /* api callbacks */
+ ot->exec = node_active_link_viewer;
+ ot->poll = composite_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+
+/* *************************** add link op ******************** */
+
+static void node_remove_extra_links(SpaceNode *snode, bNodeSocket *tsock, bNodeLink *link)
+{
+ bNodeLink *tlink;
+ bNodeSocket *sock;
+
+ if (tsock && nodeCountSocketLinks(snode->edittree, link->tosock) > tsock->limit) {
+
+ for (tlink = snode->edittree->links.first; tlink; tlink = tlink->next) {
+ if (link != tlink && tlink->tosock == link->tosock)
+ break;
+ }
+ if (tlink) {
+ /* try to move the existing link to the next available socket */
+ if (tlink->tonode) {
+ /* is there a free input socket with the target type? */
+ for (sock = tlink->tonode->inputs.first; sock; sock = sock->next) {
+ if (sock->type == tlink->tosock->type)
+ if (nodeCountSocketLinks(snode->edittree, sock) < sock->limit)
+ break;
+ }
+ if (sock) {
+ tlink->tosock = sock;
+ sock->flag &= ~SOCK_HIDDEN;
+ }
+ else {
+ nodeRemLink(snode->edittree, tlink);
+ }
+ }
+ else
+ nodeRemLink(snode->edittree, tlink);
+
+ snode->edittree->update |= NTREE_UPDATE_LINKS;
+ }
+ }
+}
+
+static int outside_group_rect(SpaceNode *snode)
+{
+ bNode *gnode = node_tree_get_editgroup(snode->nodetree);
+ if (gnode) {
+ return (snode->cursor[0] < gnode->totr.xmin ||
+ snode->cursor[0] >= gnode->totr.xmax ||
+ snode->cursor[1] < gnode->totr.ymin ||
+ snode->cursor[1] >= gnode->totr.ymax);
+ }
+ return 0;
+}
+
+/* loop that adds a nodelink, called by function below */
+/* in_out = starting socket */
+static int node_link_modal(bContext *C, wmOperator *op, wmEvent *event)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ARegion *ar = CTX_wm_region(C);
+ bNodeLinkDrag *nldrag = op->customdata;
+ bNodeTree *ntree = snode->edittree;
+ bNode *tnode;
+ bNodeSocket *tsock = NULL;
+ bNodeLink *link;
+ LinkData *linkdata;
+ int in_out;
+
+ in_out = nldrag->in_out;
+
+ UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1],
+ &snode->cursor[0], &snode->cursor[1]);
+
+ switch (event->type) {
+ case MOUSEMOVE:
+
+ if (in_out == SOCK_OUT) {
+ if (node_find_indicated_socket(snode, &tnode, &tsock, SOCK_IN)) {
+ for (linkdata = nldrag->links.first; linkdata; linkdata = linkdata->next) {
+ link = linkdata->data;
+
+ /* skip if this is already the target socket */
+ if (link->tosock == tsock)
+ continue;
+ /* skip if socket is on the same node as the fromsock */
+ if (tnode && link->fromnode == tnode)
+ continue;
+
+ /* attach links to the socket */
+ link->tonode = tnode;
+ link->tosock = tsock;
+ /* add it to the node tree temporarily */
+ if (BLI_findindex(&ntree->links, link) < 0)
+ BLI_addtail(&ntree->links, link);
+
+ ntree->update |= NTREE_UPDATE_LINKS;
+ }
+ ntreeUpdateTree(ntree);
+ }
+ else {
+ int do_update = FALSE;
+ for (linkdata = nldrag->links.first; linkdata; linkdata = linkdata->next) {
+ link = linkdata->data;
+
+ if (link->tonode || link->tosock) {
+ BLI_remlink(&ntree->links, link);
+ link->prev = link->next = NULL;
+ link->tonode = NULL;
+ link->tosock = NULL;
+
+ ntree->update |= NTREE_UPDATE_LINKS;
+ do_update = TRUE;
+ }
+ }
+ if (do_update) {
+ ntreeUpdateTree(ntree);
+ }
+ }
+ }
+ else {
+ if (node_find_indicated_socket(snode, &tnode, &tsock, SOCK_OUT)) {
+ for (linkdata = nldrag->links.first; linkdata; linkdata = linkdata->next) {
+ link = linkdata->data;
+
+ /* skip if this is already the target socket */
+ if (link->fromsock == tsock)
+ continue;
+ /* skip if socket is on the same node as the fromsock */
+ if (tnode && link->tonode == tnode)
+ continue;
+
+ /* attach links to the socket */
+ link->fromnode = tnode;
+ link->fromsock = tsock;
+ /* add it to the node tree temporarily */
+ if (BLI_findindex(&ntree->links, link) < 0)
+ BLI_addtail(&ntree->links, link);
+
+ ntree->update |= NTREE_UPDATE_LINKS;
+ }
+ ntreeUpdateTree(ntree);
+ }
+ else {
+ int do_update = FALSE;
+ for (linkdata = nldrag->links.first; linkdata; linkdata = linkdata->next) {
+ link = linkdata->data;
+
+ if (link->fromnode || link->fromsock) {
+ BLI_remlink(&ntree->links, link);
+ link->prev = link->next = NULL;
+ link->fromnode = NULL;
+ link->fromsock = NULL;
+
+ ntree->update |= NTREE_UPDATE_LINKS;
+ do_update = TRUE;
+ }
+ }
+ if (do_update) {
+ ntreeUpdateTree(ntree);
+ }
+ }
+ }
+
+ ED_region_tag_redraw(ar);
+ break;
+
+ case LEFTMOUSE:
+ case RIGHTMOUSE:
+ case MIDDLEMOUSE:
+ {
+ for (linkdata = nldrag->links.first; linkdata; linkdata = linkdata->next) {
+ link = linkdata->data;
+
+ if (link->tosock && link->fromsock) {
+ /* send changed events for original tonode and new */
+ if (link->tonode)
+ snode_update(snode, link->tonode);
+
+ /* we might need to remove a link */
+ if (in_out == SOCK_OUT)
+ node_remove_extra_links(snode, link->tosock, link);
+
+ /* when linking to group outputs, update the socket type */
+ /* XXX this should all be part of a generic update system */
+ if (!link->tonode) {
+ if (link->tosock->type != link->fromsock->type)
+ nodeSocketSetType(link->tosock, link->fromsock->type);
+ }
+ }
+ else if (outside_group_rect(snode) && (link->tonode || link->fromnode)) {
+ /* automatically add new group socket */
+ if (link->tonode && link->tosock) {
+ link->fromsock = node_group_expose_socket(ntree, link->tosock, SOCK_IN);
+ link->fromnode = NULL;
+ if (BLI_findindex(&ntree->links, link) < 0)
+ BLI_addtail(&ntree->links, link);
+
+ ntree->update |= NTREE_UPDATE_GROUP_IN | NTREE_UPDATE_LINKS;
+ }
+ else if (link->fromnode && link->fromsock) {
+ link->tosock = node_group_expose_socket(ntree, link->fromsock, SOCK_OUT);
+ link->tonode = NULL;
+ if (BLI_findindex(&ntree->links, link) < 0)
+ BLI_addtail(&ntree->links, link);
+
+ ntree->update |= NTREE_UPDATE_GROUP_OUT | NTREE_UPDATE_LINKS;
+ }
+ }
+ else
+ nodeRemLink(ntree, link);
+ }
+
+ ntreeUpdateTree(ntree);
+ snode_notify(C, snode);
+ snode_dag_update(C, snode);
+
+ BLI_remlink(&snode->linkdrag, nldrag);
+ /* links->data pointers are either held by the tree or freed already */
+ BLI_freelistN(&nldrag->links);
+ MEM_freeN(nldrag);
+
+ return OPERATOR_FINISHED;
+ }
+ }
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+/* return 1 when socket clicked */
+static bNodeLinkDrag *node_link_init(SpaceNode *snode, int detach)
+{
+ bNode *node;
+ bNodeSocket *sock;
+ bNodeLink *link, *link_next, *oplink;
+ bNodeLinkDrag *nldrag = NULL;
+ LinkData *linkdata;
+ int num_links;
+
+ /* output indicated? */
+ if (node_find_indicated_socket(snode, &node, &sock, SOCK_OUT)) {
+ nldrag = MEM_callocN(sizeof(bNodeLinkDrag), "drag link op customdata");
+
+ num_links = nodeCountSocketLinks(snode->edittree, sock);
+ if (num_links > 0 && (num_links >= sock->limit || detach)) {
+ /* dragged links are fixed on input side */
+ nldrag->in_out = SOCK_IN;
+ /* detach current links and store them in the operator data */
+ for (link = snode->edittree->links.first; link; link = link_next) {
+ link_next = link->next;
+ if (link->fromsock == sock) {
+ linkdata = MEM_callocN(sizeof(LinkData), "drag link op link data");
+ linkdata->data = oplink = MEM_callocN(sizeof(bNodeLink), "drag link op link");
+ *oplink = *link;
+ oplink->next = oplink->prev = NULL;
+ BLI_addtail(&nldrag->links, linkdata);
+ nodeRemLink(snode->edittree, link);
+ }
+ }
+ }
+ else {
+ /* dragged links are fixed on output side */
+ nldrag->in_out = SOCK_OUT;
+ /* create a new link */
+ linkdata = MEM_callocN(sizeof(LinkData), "drag link op link data");
+ linkdata->data = oplink = MEM_callocN(sizeof(bNodeLink), "drag link op link");
+ oplink->fromnode = node;
+ oplink->fromsock = sock;
+ BLI_addtail(&nldrag->links, linkdata);
+ }
+ }
+ /* or an input? */
+ else if (node_find_indicated_socket(snode, &node, &sock, SOCK_IN)) {
+ nldrag = MEM_callocN(sizeof(bNodeLinkDrag), "drag link op customdata");
+
+ num_links = nodeCountSocketLinks(snode->edittree, sock);
+ if (num_links > 0 && (num_links >= sock->limit || detach)) {
+ /* dragged links are fixed on output side */
+ nldrag->in_out = SOCK_OUT;
+ /* detach current links and store them in the operator data */
+ for (link = snode->edittree->links.first; link; link = link_next) {
+ link_next = link->next;
+ if (link->tosock == sock) {
+ linkdata = MEM_callocN(sizeof(LinkData), "drag link op link data");
+ linkdata->data = oplink = MEM_callocN(sizeof(bNodeLink), "drag link op link");
+ *oplink = *link;
+ oplink->next = oplink->prev = NULL;
+ BLI_addtail(&nldrag->links, linkdata);
+ nodeRemLink(snode->edittree, link);
+
+ /* send changed event to original link->tonode */
+ if (node)
+ snode_update(snode, node);
+ }
+ }
+ }
+ else {
+ /* dragged links are fixed on input side */
+ nldrag->in_out = SOCK_IN;
+ /* create a new link */
+ linkdata = MEM_callocN(sizeof(LinkData), "drag link op link data");
+ linkdata->data = oplink = MEM_callocN(sizeof(bNodeLink), "drag link op link");
+ oplink->tonode = node;
+ oplink->tosock = sock;
+ BLI_addtail(&nldrag->links, linkdata);
+ }
+ }
+
+ return nldrag;
+}
+
+static int node_link_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ARegion *ar = CTX_wm_region(C);
+ bNodeLinkDrag *nldrag;
+ int detach = RNA_boolean_get(op->ptr, "detach");
+
+ UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1],
+ &snode->cursor[0], &snode->cursor[1]);
+
+ ED_preview_kill_jobs(C);
+
+ nldrag = node_link_init(snode, detach);
+
+ if (nldrag) {
+ op->customdata = nldrag;
+ BLI_addtail(&snode->linkdrag, nldrag);
+
+ /* add modal handler */
+ WM_event_add_modal_handler(C, op);
+
+ return OPERATOR_RUNNING_MODAL;
+ }
+ else
+ return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;
+}
+
+static int node_link_cancel(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNodeLinkDrag *nldrag = op->customdata;
+
+ BLI_remlink(&snode->linkdrag, nldrag);
+
+ BLI_freelistN(&nldrag->links);
+ MEM_freeN(nldrag);
+
+ return OPERATOR_CANCELLED;
+}
+
+void NODE_OT_link(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Link Nodes";
+ ot->idname = "NODE_OT_link";
+ ot->description = "Use the mouse to create a link between two nodes";
+
+ /* api callbacks */
+ ot->invoke = node_link_invoke;
+ ot->modal = node_link_modal;
+// ot->exec = node_link_exec;
+ ot->poll = ED_operator_node_active;
+ ot->cancel = node_link_cancel;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING;
+
+ RNA_def_boolean(ot->srna, "detach", FALSE, "Detach", "Detach and redirect existing links");
+}
+
+/* ********************** Make Link operator ***************** */
+
+/* makes a link between selected output and input sockets */
+static int node_make_link_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ int replace = RNA_boolean_get(op->ptr, "replace");
+
+ ED_preview_kill_jobs(C);
+
+ snode_autoconnect(snode, 1, replace);
+
+ /* deselect sockets after linking */
+ node_deselect_all_input_sockets(snode, 0);
+ node_deselect_all_output_sockets(snode, 0);
+
+ ntreeUpdateTree(snode->edittree);
+ snode_notify(C, snode);
+ snode_dag_update(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_link_make(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Make Links";
+ ot->description = "Makes a link between selected output in input sockets";
+ ot->idname = "NODE_OT_link_make";
+
+ /* callbacks */
+ ot->exec = node_make_link_exec;
+ ot->poll = ED_operator_node_active; // XXX we need a special poll which checks that there are selected input/output sockets
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ RNA_def_boolean(ot->srna, "replace", 0, "Replace", "Replace socket connections with the new links");
+}
+
+/* ********************** Cut Link operator ***************** */
+static int cut_links_intersect(bNodeLink *link, float mcoords[][2], int tot)
+{
+ float coord_array[NODE_LINK_RESOL + 1][2];
+ int i, b;
+
+ if (node_link_bezier_points(NULL, NULL, link, coord_array, NODE_LINK_RESOL)) {
+
+ for (i = 0; i < tot - 1; i++)
+ for (b = 0; b < NODE_LINK_RESOL; b++)
+ if (isect_line_line_v2(mcoords[i], mcoords[i + 1], coord_array[b], coord_array[b + 1]) > 0)
+ return 1;
+ }
+ return 0;
+}
+
+static int cut_links_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ARegion *ar = CTX_wm_region(C);
+ float mcoords[256][2];
+ int i = 0;
+
+ RNA_BEGIN(op->ptr, itemptr, "path")
+ {
+ float loc[2];
+
+ RNA_float_get_array(&itemptr, "loc", loc);
+ UI_view2d_region_to_view(&ar->v2d, (int)loc[0], (int)loc[1],
+ &mcoords[i][0], &mcoords[i][1]);
+ i++;
+ if (i >= 256) break;
+ }
+ RNA_END;
+
+ if (i > 1) {
+ int found = FALSE;
+ bNodeLink *link, *next;
+
+ for (link = snode->edittree->links.first; link; link = next) {
+ next = link->next;
+
+ if (cut_links_intersect(link, mcoords, i)) {
+
+ if (found == FALSE) {
+ ED_preview_kill_jobs(C);
+ found = TRUE;
+ }
+
+ snode_update(snode, link->tonode);
+ nodeRemLink(snode->edittree, link);
+ }
+ }
+
+ if (found) {
+ ntreeUpdateTree(snode->edittree);
+ snode_notify(C, snode);
+ snode_dag_update(C, snode);
+
+ return OPERATOR_FINISHED;
+ }
+ else {
+ return OPERATOR_CANCELLED;
+ }
+
+ }
+
+ return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;
+}
+
+void NODE_OT_links_cut(wmOperatorType *ot)
+{
+ PropertyRNA *prop;
+
+ ot->name = "Cut links";
+ ot->idname = "NODE_OT_links_cut";
+ ot->description = "Use the mouse to cut (remove) some links";
+
+ ot->invoke = WM_gesture_lines_invoke;
+ ot->modal = WM_gesture_lines_modal;
+ ot->exec = cut_links_exec;
+ ot->cancel = WM_gesture_lines_cancel;
+
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ prop = RNA_def_property(ot->srna, "path", PROP_COLLECTION, PROP_NONE);
+ RNA_def_property_struct_runtime(prop, &RNA_OperatorMousePath);
+ /* internal */
+ RNA_def_int(ot->srna, "cursor", BC_KNIFECURSOR, 0, INT_MAX, "Cursor", "", 0, INT_MAX);
+}
+
+/* ********************** Detach links operator ***************** */
+
+static int detach_links_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNodeTree *ntree = snode->edittree;
+ bNode *node;
+
+ ED_preview_kill_jobs(C);
+
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->flag & SELECT) {
+ nodeInternalRelink(ntree, node);
+ }
+ }
+
+ ntreeUpdateTree(ntree);
+
+ snode_notify(C, snode);
+ snode_dag_update(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_links_detach(wmOperatorType *ot)
+{
+ ot->name = "Detach Links";
+ ot->idname = "NODE_OT_links_detach";
+ ot->description = "Remove all links to selected nodes, and try to connect neighbor nodes together";
+
+ ot->exec = detach_links_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+
+/* ****************** Show Cyclic Dependencies Operator ******************* */
+
+static int node_show_cycles_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+
+ /* this is just a wrapper around this call... */
+ ntreeUpdateTree(snode->nodetree);
+ snode_notify(C, snode);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_show_cyclic_dependencies(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Show Cyclic Dependencies";
+ ot->description = "Sort the nodes and show the cyclic dependencies between the nodes";
+ ot->idname = "NODE_OT_show_cyclic_dependencies";
+
+ /* callbacks */
+ ot->exec = node_show_cycles_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+/* ****************** Set Parent ******************* */
+
+static int node_parent_set_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNodeTree *ntree = snode->edittree;
+ bNode *frame = nodeGetActive(ntree), *node;
+ if (!frame || frame->type != NODE_FRAME)
+ return OPERATOR_CANCELLED;
+
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node == frame)
+ continue;
+ if (node->flag & NODE_SELECT) {
+ nodeDetachNode(node);
+ nodeAttachNode(node, frame);
+ }
+ }
+
+ ED_node_sort(ntree);
+ WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_parent_set(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Make Parent";
+ ot->description = "Attach selected nodes";
+ ot->idname = "NODE_OT_parent_set";
+
+ /* api callbacks */
+ ot->exec = node_parent_set_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+/* ****************** Clear Parent ******************* */
+
+static int node_parent_clear_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNodeTree *ntree = snode->edittree;
+ bNode *node;
+
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->flag & NODE_SELECT) {
+ nodeDetachNode(node);
+ }
+ }
+
+ WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_parent_clear(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Clear Parent";
+ ot->description = "Detach selected nodes";
+ ot->idname = "NODE_OT_parent_clear";
+
+ /* api callbacks */
+ ot->exec = node_parent_clear_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+/* ****************** Join Nodes ******************* */
+
+/* tags for depth-first search */
+#define NODE_JOIN_DONE 1
+#define NODE_JOIN_IS_DESCENDANT 2
+
+static void node_join_attach_recursive(bNode *node, bNode *frame)
+{
+ node->done |= NODE_JOIN_DONE;
+
+ if (node == frame) {
+ node->done |= NODE_JOIN_IS_DESCENDANT;
+ }
+ else if (node->parent) {
+ /* call recursively */
+ if (!(node->parent->done & NODE_JOIN_DONE))
+ node_join_attach_recursive(node->parent, frame);
+
+ /* in any case: if the parent is a descendant, so is the child */
+ if (node->parent->done & NODE_JOIN_IS_DESCENDANT)
+ node->done |= NODE_JOIN_IS_DESCENDANT;
+ else if (node->flag & NODE_TEST) {
+ /* if parent is not an decendant of the frame, reattach the node */
+ nodeDetachNode(node);
+ nodeAttachNode(node, frame);
+ node->done |= NODE_JOIN_IS_DESCENDANT;
+ }
+ }
+ else if (node->flag & NODE_TEST) {
+ nodeAttachNode(node, frame);
+ node->done |= NODE_JOIN_IS_DESCENDANT;
+ }
+}
+
+static int node_join_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ Main *bmain = CTX_data_main(C);
+ Scene *scene = CTX_data_scene(C);
+ bNodeTree *ntree = snode->edittree;
+ bNode *node, *frame;
+ bNodeTemplate ntemp;
+
+ /* XXX save selection: node_add_node call below sets the new frame as single active+selected node */
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->flag & NODE_SELECT)
+ node->flag |= NODE_TEST;
+ else
+ node->flag &= ~NODE_TEST;
+ }
+
+ ntemp.main = bmain;
+ ntemp.scene = scene;
+ ntemp.type = NODE_FRAME;
+ frame = node_add_node(snode, bmain, scene, &ntemp, 0.0f, 0.0f);
+
+ /* reset tags */
+ for (node = ntree->nodes.first; node; node = node->next)
+ node->done = 0;
+
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (!(node->done & NODE_JOIN_DONE))
+ node_join_attach_recursive(node, frame);
+ }
+
+ /* restore selection */
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->flag & NODE_TEST)
+ node->flag |= NODE_SELECT;
+ }
+
+ ED_node_sort(ntree);
+ WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_join(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Join Nodes";
+ ot->description = "Attach selected nodes to a new common frame";
+ ot->idname = "NODE_OT_join";
+
+ /* api callbacks */
+ ot->exec = node_join_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+/* ****************** Attach ******************* */
+
+static int node_attach_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNodeTree *ntree = snode->edittree;
+ bNode *frame;
+
+ /* check nodes front to back */
+ for (frame = ntree->nodes.last; frame; frame = frame->prev) {
+ /* skip selected, those are the nodes we want to attach */
+ if ((frame->type != NODE_FRAME) || (frame->flag & NODE_SELECT))
+ continue;
+ if (BLI_rctf_isect_pt(&frame->totr, snode->cursor[0], snode->cursor[1]))
+ break;
+ }
+ if (frame) {
+ bNode *node, *parent;
+ for (node = ntree->nodes.last; node; node = node->prev) {
+ if (node->flag & NODE_SELECT) {
+ if (node->parent == NULL) {
+ /* disallow moving a parent into its child */
+ if (nodeAttachNodeCheck(frame, node) == FALSE) {
+ /* attach all unparented nodes */
+ nodeAttachNode(node, frame);
+ }
+ }
+ else {
+ /* attach nodes which share parent with the frame */
+ for (parent = frame->parent; parent; parent = parent->parent) {
+ if (parent == node->parent) {
+ break;
+ }
+ }
+
+ if (parent) {
+ /* disallow moving a parent into its child */
+ if (nodeAttachNodeCheck(frame, node) == FALSE) {
+ nodeDetachNode(node);
+ nodeAttachNode(node, frame);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ ED_node_sort(ntree);
+ WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+static int node_attach_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ ARegion *ar = CTX_wm_region(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
+
+ /* convert mouse coordinates to v2d space */
+ UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &snode->cursor[0], &snode->cursor[1]);
+
+ return node_attach_exec(C, op);
+}
+
+void NODE_OT_attach(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Attach Nodes";
+ ot->description = "Attach active node to a frame";
+ ot->idname = "NODE_OT_attach";
+
+ /* api callbacks */
+ ot->exec = node_attach_exec;
+ ot->invoke = node_attach_invoke;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+/* ****************** Detach ******************* */
+
+/* tags for depth-first search */
+#define NODE_DETACH_DONE 1
+#define NODE_DETACH_IS_DESCENDANT 2
+
+static void node_detach_recursive(bNode *node)
+{
+ node->done |= NODE_DETACH_DONE;
+
+ if (node->parent) {
+ /* call recursively */
+ if (!(node->parent->done & NODE_DETACH_DONE))
+ node_detach_recursive(node->parent);
+
+ /* in any case: if the parent is a descendant, so is the child */
+ if (node->parent->done & NODE_DETACH_IS_DESCENDANT)
+ node->done |= NODE_DETACH_IS_DESCENDANT;
+ else if (node->flag & NODE_SELECT) {
+ /* if parent is not a decendant of a selected node, detach */
+ nodeDetachNode(node);
+ node->done |= NODE_DETACH_IS_DESCENDANT;
+ }
+ }
+ else if (node->flag & NODE_SELECT) {
+ node->done |= NODE_DETACH_IS_DESCENDANT;
+ }
+}
+
+
+/* detach the root nodes in the current selection */
+static int node_detach_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ bNodeTree *ntree = snode->edittree;
+ bNode *node;
+
+ /* reset tags */
+ for (node = ntree->nodes.first; node; node = node->next)
+ node->done = 0;
+ /* detach nodes recursively
+ * relative order is preserved here!
+ */
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (!(node->done & NODE_DETACH_DONE))
+ node_detach_recursive(node);
+ }
+
+ ED_node_sort(ntree);
+ WM_event_add_notifier(C, NC_NODE | ND_DISPLAY, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void NODE_OT_detach(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Detach Nodes";
+ ot->description = "Detach selected nodes from parents";
+ ot->idname = "NODE_OT_detach";
+
+ /* api callbacks */
+ ot->exec = node_detach_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+/* ********************* automatic node insert on dragging ******************* */
+
+
+/* prevent duplicate testing code below */
+static SpaceNode *ed_node_link_conditions(ScrArea *sa, bNode **select)
+{
+ SpaceNode *snode = sa ? sa->spacedata.first : NULL;
+ bNode *node;
+ bNodeLink *link;
+
+ /* no unlucky accidents */
+ if (sa == NULL || sa->spacetype != SPACE_NODE) return NULL;
+
+ *select = NULL;
+
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
+ if (node->flag & SELECT) {
+ if (*select)
+ break;
+ else
+ *select = node;
+ }
+ }
+ /* only one selected */
+ if (node || *select == NULL) return NULL;
+
+ /* correct node */
+ if ((*select)->inputs.first == NULL || (*select)->outputs.first == NULL) return NULL;
+
+ /* test node for links */
+ for (link = snode->edittree->links.first; link; link = link->next) {
+ if (link->tonode == *select || link->fromnode == *select)
+ return NULL;
+ }
+
+ return snode;
+}
+
+/* test == 0, clear all intersect flags */
+void ED_node_link_intersect_test(ScrArea *sa, int test)
+{
+ bNode *select;
+ SpaceNode *snode = ed_node_link_conditions(sa, &select);
+ bNodeLink *link, *selink = NULL;
+ float mcoords[6][2];
+
+ if (snode == NULL) return;
+
+ /* clear flags */
+ for (link = snode->edittree->links.first; link; link = link->next)
+ link->flag &= ~NODE_LINKFLAG_HILITE;
+
+ if (test == 0) return;
+
+ /* okay, there's 1 node, without links, now intersect */
+ mcoords[0][0] = select->totr.xmin;
+ mcoords[0][1] = select->totr.ymin;
+ mcoords[1][0] = select->totr.xmax;
+ mcoords[1][1] = select->totr.ymin;
+ mcoords[2][0] = select->totr.xmax;
+ mcoords[2][1] = select->totr.ymax;
+ mcoords[3][0] = select->totr.xmin;
+ mcoords[3][1] = select->totr.ymax;
+ mcoords[4][0] = select->totr.xmin;
+ mcoords[4][1] = select->totr.ymin;
+ mcoords[5][0] = select->totr.xmax;
+ mcoords[5][1] = select->totr.ymax;
+
+ /* we only tag a single link for intersect now */
+ /* idea; use header dist when more? */
+ for (link = snode->edittree->links.first; link; link = link->next) {
+
+ if (cut_links_intersect(link, mcoords, 5)) { /* intersect code wants edges */
+ if (selink)
+ break;
+ selink = link;
+ }
+ }
+
+ if (link == NULL && selink)
+ selink->flag |= NODE_LINKFLAG_HILITE;
+}
+
+/* assumes sockets in list */
+static bNodeSocket *socket_best_match(ListBase *sockets)
+{
+ bNodeSocket *sock;
+ int type, maxtype = 0;
+
+ /* find type range */
+ for (sock = sockets->first; sock; sock = sock->next)
+ maxtype = MAX2(sock->type, maxtype);
+
+ /* try all types, starting from 'highest' (i.e. colors, vectors, values) */
+ for (type = maxtype; type >= 0; --type) {
+ for (sock = sockets->first; sock; sock = sock->next) {
+ if (!nodeSocketIsHidden(sock) && type == sock->type) {
+ return sock;
+ }
+ }
+ }
+
+ /* no visible sockets, unhide first of highest type */
+ for (type = maxtype; type >= 0; --type) {
+ for (sock = sockets->first; sock; sock = sock->next) {
+ if (type == sock->type) {
+ sock->flag &= ~SOCK_HIDDEN;
+ return sock;
+ }
+ }
+ }
+
+ return NULL;
+}
+
+/* assumes link with NODE_LINKFLAG_HILITE set */
+void ED_node_link_insert(ScrArea *sa)
+{
+ bNode *node, *select;
+ SpaceNode *snode = ed_node_link_conditions(sa, &select);
+ bNodeLink *link;
+ bNodeSocket *sockto;
+
+ if (snode == NULL) return;
+
+ /* get the link */
+ for (link = snode->edittree->links.first; link; link = link->next)
+ if (link->flag & NODE_LINKFLAG_HILITE)
+ break;
+
+ if (link) {
+ node = link->tonode;
+ sockto = link->tosock;
+
+ link->tonode = select;
+ link->tosock = socket_best_match(&select->inputs);
+ link->flag &= ~NODE_LINKFLAG_HILITE;
+
+ nodeAddLink(snode->edittree, select, socket_best_match(&select->outputs), node, sockto);
+ ntreeUpdateTree(snode->edittree); /* needed for pointers */
+ snode_update(snode, select);
+ ED_node_changed_update(snode->id, select);
+ }
+}
diff --git a/source/blender/editors/space_node/node_select.c b/source/blender/editors/space_node/node_select.c
index e7be750928d..b0916a50c37 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -28,22 +28,17 @@
* \ingroup spnode
*/
-
-#include <stdio.h>
-
-#include "BLI_listbase.h"
-
#include "DNA_node_types.h"
-#include "DNA_scene_types.h"
#include "BKE_context.h"
#include "BKE_main.h"
#include "BKE_node.h"
#include "BLI_rect.h"
+#include "BLI_lasso.h"
#include "BLI_utildefines.h"
-#include "ED_node.h"
+#include "ED_node.h" /* own include */
#include "ED_screen.h"
#include "ED_types.h"
@@ -54,8 +49,10 @@
#include "WM_types.h"
#include "UI_view2d.h"
-
-#include "node_intern.h"
+
+#include "MEM_guardedalloc.h"
+
+#include "node_intern.h" /* own include */
/* ****** helpers ****** */
@@ -63,7 +60,7 @@ static bNode *node_under_mouse_select(bNodeTree *ntree, int mx, int my)
{
bNode *node;
- for (node=ntree->nodes.last; node; node=node->prev) {
+ for (node = ntree->nodes.last; node; node = node->prev) {
if (node->typeinfo->select_area_func) {
if (node->typeinfo->select_area_func(node, mx, my))
return node;
@@ -76,7 +73,7 @@ static bNode *node_under_mouse_tweak(bNodeTree *ntree, int mx, int my)
{
bNode *node;
- for (node=ntree->nodes.last; node; node=node->prev) {
+ for (node = ntree->nodes.last; node; node = node->prev) {
if (node->typeinfo->tweak_area_func) {
if (node->typeinfo->tweak_area_func(node, mx, my))
return node;
@@ -97,9 +94,9 @@ void node_deselect(bNode *node)
node->flag &= ~SELECT;
/* deselect sockets too */
- for (sock=node->inputs.first; sock; sock=sock->next)
+ for (sock = node->inputs.first; sock; sock = sock->next)
sock->flag &= ~SELECT;
- for (sock=node->outputs.first; sock; sock=sock->next)
+ for (sock = node->outputs.first; sock; sock = sock->next)
sock->flag &= ~SELECT;
}
@@ -125,16 +122,16 @@ void node_socket_deselect(bNode *node, bNodeSocket *sock, int deselect_node)
sock->flag &= ~SELECT;
if (node && deselect_node) {
- int sel=0;
+ int sel = 0;
/* if no selected sockets remain, also deselect the node */
- for (sock=node->inputs.first; sock; sock=sock->next) {
+ for (sock = node->inputs.first; sock; sock = sock->next) {
if (sock->flag & SELECT) {
sel = 1;
break;
}
}
- for (sock=node->outputs.first; sock; sock=sock->next) {
+ for (sock = node->outputs.first; sock; sock = sock->next) {
if (sock->flag & SELECT) {
sel = 1;
break;
@@ -159,7 +156,7 @@ void node_deselect_all(SpaceNode *snode)
{
bNode *node;
- for (node= snode->edittree->nodes.first; node; node= node->next)
+ for (node = snode->edittree->nodes.first; node; node = node->next)
node_deselect(node);
}
@@ -173,15 +170,15 @@ void node_deselect_all_input_sockets(SpaceNode *snode, int deselect_nodes)
* We can do that more efficiently here.
*/
- for (node= snode->edittree->nodes.first; node; node= node->next) {
- int sel=0;
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
+ int sel = 0;
- for (sock= node->inputs.first; sock; sock=sock->next)
+ for (sock = node->inputs.first; sock; sock = sock->next)
sock->flag &= ~SELECT;
/* if no selected sockets remain, also deselect the node */
if (deselect_nodes) {
- for (sock= node->outputs.first; sock; sock=sock->next) {
+ for (sock = node->outputs.first; sock; sock = sock->next) {
if (sock->flag & SELECT) {
sel = 1;
break;
@@ -193,7 +190,7 @@ void node_deselect_all_input_sockets(SpaceNode *snode, int deselect_nodes)
}
}
- for (sock= snode->edittree->outputs.first; sock; sock=sock->next)
+ for (sock = snode->edittree->outputs.first; sock; sock = sock->next)
sock->flag &= ~SELECT;
}
@@ -207,15 +204,15 @@ void node_deselect_all_output_sockets(SpaceNode *snode, int deselect_nodes)
* We can do that more efficiently here.
*/
- for (node= snode->edittree->nodes.first; node; node= node->next) {
- int sel=0;
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
+ int sel = 0;
- for (sock= node->outputs.first; sock; sock=sock->next)
+ for (sock = node->outputs.first; sock; sock = sock->next)
sock->flag &= ~SELECT;
/* if no selected sockets remain, also deselect the node */
if (deselect_nodes) {
- for (sock= node->inputs.first; sock; sock=sock->next) {
+ for (sock = node->inputs.first; sock; sock = sock->next) {
if (sock->flag & SELECT) {
sel = 1;
break;
@@ -227,7 +224,7 @@ void node_deselect_all_output_sockets(SpaceNode *snode, int deselect_nodes)
}
}
- for (sock= snode->edittree->inputs.first; sock; sock=sock->next)
+ for (sock = snode->edittree->inputs.first; sock; sock = sock->next)
sock->flag &= ~SELECT;
}
@@ -238,7 +235,7 @@ int node_select_same_type(SpaceNode *snode)
int redraw;
/* search for the active node. */
- for (nac= snode->edittree->nodes.first; nac; nac= nac->next) {
+ for (nac = snode->edittree->nodes.first; nac; nac = nac->next) {
if (nac->flag & SELECT)
break;
}
@@ -247,16 +244,16 @@ int node_select_same_type(SpaceNode *snode)
if (!nac)
return(0);
- redraw= 0;
- for (p= snode->edittree->nodes.first; p; p= p->next) {
+ redraw = 0;
+ for (p = snode->edittree->nodes.first; p; p = p->next) {
if (p->type != nac->type && p->flag & SELECT) {
/* if it's selected but different type, unselect */
- redraw= 1;
+ redraw = 1;
node_deselect(p);
}
else if (p->type == nac->type && (!(p->flag & SELECT))) {
/* if it's the same type and is not selected, select! */
- redraw= 1;
+ redraw = 1;
node_select(p);
}
}
@@ -271,7 +268,7 @@ int node_select_same_type_np(SpaceNode *snode, int dir)
bNode *nac, *p, *tnode;
/* search the active one. */
- for (nac= snode->edittree->nodes.first; nac; nac= nac->next) {
+ for (nac = snode->edittree->nodes.first; nac; nac = nac->next) {
if (nac->flag & SELECT)
break;
}
@@ -281,9 +278,9 @@ int node_select_same_type_np(SpaceNode *snode, int dir)
return(0);
if (dir == 0)
- p= nac->next;
+ p = nac->next;
else
- p= nac->prev;
+ p = nac->prev;
while (p) {
/* Now search the next with the same type. */
@@ -291,14 +288,14 @@ int node_select_same_type_np(SpaceNode *snode, int dir)
break;
if (dir == 0)
- p= p->next;
+ p = p->next;
else
- p= p->prev;
+ p = p->prev;
}
if (p) {
- for (tnode=snode->edittree->nodes.first; tnode; tnode=tnode->next)
- if (tnode!=p)
+ for (tnode = snode->edittree->nodes.first; tnode; tnode = tnode->next)
+ if (tnode != p)
node_deselect(tnode);
node_select(p);
return(1);
@@ -308,12 +305,12 @@ int node_select_same_type_np(SpaceNode *snode, int dir)
void node_select_single(bContext *C, bNode *node)
{
- Main *bmain= CTX_data_main(C);
- SpaceNode *snode= CTX_wm_space_node(C);
+ Main *bmain = CTX_data_main(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
bNode *tnode;
- for (tnode=snode->edittree->nodes.first; tnode; tnode=tnode->next)
- if (tnode!=node)
+ for (tnode = snode->edittree->nodes.first; tnode; tnode = tnode->next)
+ if (tnode != node)
node_deselect(tnode);
node_select(node);
@@ -321,7 +318,7 @@ void node_select_single(bContext *C, bNode *node)
ED_node_sort(snode->edittree);
- WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
+ WM_event_add_notifier(C, NC_NODE | NA_SELECTED, NULL);
}
/* ****** Click Select ****** */
@@ -336,8 +333,8 @@ static int node_mouse_select(Main *bmain, SpaceNode *snode, ARegion *ar, const i
/* get mouse coordinates in view2d space */
UI_view2d_region_to_view(&ar->v2d, mval[0], mval[1], &mx, &my);
/* node_find_indicated_socket uses snode->mx/my */
- snode->mx = mx;
- snode->my = my;
+ snode->cursor[0] = mx;
+ snode->cursor[1] = my;
if (extend) {
/* first do socket selection, these generally overlap with nodes.
@@ -356,7 +353,7 @@ static int node_mouse_select(Main *bmain, SpaceNode *snode, ARegion *ar, const i
* allows selecting outputs from different nodes though.
*/
if (node) {
- for (tsock=node->outputs.first; tsock; tsock=tsock->next)
+ for (tsock = node->outputs.first; tsock; tsock = tsock->next)
node_socket_deselect(node, tsock, 1);
}
node_socket_select(node, sock);
@@ -368,20 +365,28 @@ static int node_mouse_select(Main *bmain, SpaceNode *snode, ARegion *ar, const i
node = node_under_mouse_select(snode->edittree, mx, my);
if (node) {
- node_toggle(node);
-
- ED_node_set_active(bmain, snode->edittree, node);
+ if ((node->flag & SELECT) && (node->flag & NODE_ACTIVE) == 0) {
+ /* if node is selected but not active make it active
+ * before it'll be desleected
+ */
+ ED_node_set_active(bmain, snode->edittree, node);
+ }
+ else {
+ node_toggle(node);
+ ED_node_set_active(bmain, snode->edittree, node);
+ }
+
selected = 1;
}
}
}
- else { /* extend==0 */
+ else { /* extend == 0 */
/* find the closest visible node */
node = node_under_mouse_select(snode->edittree, mx, my);
if (node) {
- for (tnode=snode->edittree->nodes.first; tnode; tnode=tnode->next)
+ for (tnode = snode->edittree->nodes.first; tnode; tnode = tnode->next)
node_deselect(tnode);
node_select(node);
ED_node_set_active(bmain, snode->edittree, node);
@@ -398,9 +403,9 @@ static int node_mouse_select(Main *bmain, SpaceNode *snode, ARegion *ar, const i
static int node_select_exec(bContext *C, wmOperator *op)
{
- Main *bmain= CTX_data_main(C);
- SpaceNode *snode= CTX_wm_space_node(C);
- ARegion *ar= CTX_wm_region(C);
+ Main *bmain = CTX_data_main(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ARegion *ar = CTX_wm_region(C);
int mval[2];
short extend;
@@ -413,14 +418,14 @@ static int node_select_exec(bContext *C, wmOperator *op)
/* perform the select */
if (node_mouse_select(bmain, snode, ar, mval, extend)) {
/* send notifiers */
- WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
+ WM_event_add_notifier(C, NC_NODE | NA_SELECTED, NULL);
/* allow tweak event to work too */
- return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
+ return OPERATOR_FINISHED | OPERATOR_PASS_THROUGH;
}
else {
/* allow tweak event to work too */
- return OPERATOR_CANCELLED|OPERATOR_PASS_THROUGH;
+ return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;
}
}
@@ -445,7 +450,7 @@ void NODE_OT_select(wmOperatorType *ot)
ot->poll = ED_operator_node_active;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
RNA_def_int(ot->srna, "mouse_x", 0, INT_MIN, INT_MAX, "Mouse X", "", INT_MIN, INT_MAX);
@@ -457,25 +462,22 @@ void NODE_OT_select(wmOperatorType *ot)
static int node_borderselect_exec(bContext *C, wmOperator *op)
{
- SpaceNode *snode= CTX_wm_space_node(C);
- ARegion *ar= CTX_wm_region(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ARegion *ar = CTX_wm_region(C);
bNode *node;
rcti rect;
rctf rectf;
- int gesture_mode= RNA_int_get(op->ptr, "gesture_mode");
- int extend= RNA_boolean_get(op->ptr, "extend");
+ int gesture_mode = RNA_int_get(op->ptr, "gesture_mode");
+ int extend = RNA_boolean_get(op->ptr, "extend");
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
+ WM_operator_properties_border_to_rcti(op, &rect);
+
UI_view2d_region_to_view(&ar->v2d, rect.xmin, rect.ymin, &rectf.xmin, &rectf.ymin);
-
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
UI_view2d_region_to_view(&ar->v2d, rect.xmax, rect.ymax, &rectf.xmax, &rectf.ymax);
- for (node= snode->edittree->nodes.first; node; node= node->next) {
- if (BLI_isect_rctf(&rectf, &node->totr, NULL)) {
- if (gesture_mode==GESTURE_MODAL_SELECT)
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
+ if (BLI_rctf_isect(&rectf, &node->totr, NULL)) {
+ if (gesture_mode == GESTURE_MODAL_SELECT)
node_select(node);
else
node_deselect(node);
@@ -487,7 +489,7 @@ static int node_borderselect_exec(bContext *C, wmOperator *op)
ED_node_sort(snode->edittree);
- WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
+ WM_event_add_notifier(C, NC_NODE | NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -499,14 +501,14 @@ static int node_border_select_invoke(bContext *C, wmOperator *op, wmEvent *event
if (tweak) {
/* prevent initiating the border select if the mouse is over a node */
/* this allows border select on empty space, but drag-translate on nodes */
- SpaceNode *snode= CTX_wm_space_node(C);
- ARegion *ar= CTX_wm_region(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ARegion *ar = CTX_wm_region(C);
float mx, my;
UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &mx, &my);
if (node_under_mouse_tweak(snode->edittree, mx, my))
- return OPERATOR_CANCELLED|OPERATOR_PASS_THROUGH;
+ return OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH;
}
return WM_border_select_invoke(C, op, event);
@@ -528,38 +530,132 @@ void NODE_OT_select_border(wmOperatorType *ot)
ot->poll = ED_operator_node_active;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* rna */
WM_operator_properties_gesture_border(ot, TRUE);
RNA_def_boolean(ot->srna, "tweak", 0, "Tweak", "Only activate when mouse is not over a node - useful for tweak gesture");
}
-/* ****** Select/Deselect All ****** */
+/* ****** Lasso Select ****** */
-static int node_select_all_exec(bContext *C, wmOperator *UNUSED(op))
+static int do_lasso_select_node(bContext *C, const int mcords[][2], short moves, short select)
{
SpaceNode *snode = CTX_wm_space_node(C);
- bNode *first = snode->edittree->nodes.first;
bNode *node;
- int count= 0;
- for (node=first; node; node=node->next)
- if (node->flag & NODE_SELECT)
- count++;
+ ARegion *ar = CTX_wm_region(C);
- if (count) {
- for (node=first; node; node=node->next)
- node_deselect(node);
+ rcti rect;
+ int change = FALSE;
+
+ /* get rectangle from operator */
+ BLI_lasso_boundbox(&rect, mcords, moves);
+
+ /* do actual selection */
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
+ int screen_co[2];
+ const float cent[2] = {BLI_rctf_cent_x(&node->totr),
+ BLI_rctf_cent_y(&node->totr)};
+
+ /* marker in screen coords */
+ UI_view2d_view_to_region(&ar->v2d,
+ cent[0], cent[1],
+ &screen_co[0], &screen_co[1]);
+
+ if (BLI_rcti_isect_pt(&rect, screen_co[0], screen_co[1]) &&
+ BLI_lasso_is_point_inside(mcords, moves, screen_co[0], screen_co[1], INT_MAX))
+ {
+ if (select)
+ node_select(node);
+ else
+ node_deselect(node);
+
+ change = TRUE;
+ }
}
- else {
- for (node=first; node; node=node->next)
- node_select(node);
+
+ if (change) {
+ WM_event_add_notifier(C, NC_NODE | NA_SELECTED, NULL);
}
-
+
+ return change;
+}
+
+static int node_lasso_select_exec(bContext *C, wmOperator *op)
+{
+ int mcords_tot;
+ const int (*mcords)[2] = WM_gesture_lasso_path_to_array(C, op, &mcords_tot);
+
+ if (mcords) {
+ short select;
+
+ select = !RNA_boolean_get(op->ptr, "deselect");
+ do_lasso_select_node(C, mcords, mcords_tot, select);
+
+ MEM_freeN(mcords);
+
+ return OPERATOR_FINISHED;
+ }
+ return OPERATOR_PASS_THROUGH;
+}
+
+void NODE_OT_select_lasso(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Lasso Select";
+ ot->description = "Select nodes using lasso selection";
+ ot->idname = "NODE_OT_select_lasso";
+
+ /* api callbacks */
+ ot->invoke = WM_gesture_lasso_invoke;
+ ot->modal = WM_gesture_lasso_modal;
+ ot->exec = node_lasso_select_exec;
+ ot->poll = ED_operator_node_active;
+ ot->cancel = WM_gesture_lasso_cancel;
+
+ /* flags */
+ ot->flag = OPTYPE_UNDO;
+
+ /* properties */
+ RNA_def_collection_runtime(ot->srna, "path", &RNA_OperatorMousePath, "Path", "");
+ RNA_def_boolean(ot->srna, "deselect", 0, "Deselect", "Deselect rather than select items");
+ RNA_def_boolean(ot->srna, "extend", 1, "Extend", "Extend selection instead of deselecting everything first");
+}
+
+/* ****** Select/Deselect All ****** */
+
+static int node_select_all_exec(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ListBase *node_lb = &snode->edittree->nodes;
+ bNode *node;
+ int action = RNA_enum_get(op->ptr, "action");
+
+ if (action == SEL_TOGGLE) {
+ if (ED_node_select_check(node_lb))
+ action = SEL_DESELECT;
+ else
+ action = SEL_SELECT;
+ }
+
+ for (node = node_lb->first; node; node = node->next) {
+ switch (action) {
+ case SEL_SELECT:
+ node_select(node);
+ break;
+ case SEL_DESELECT:
+ node_deselect(node);
+ break;
+ case SEL_INVERT:
+ ((node->flag & SELECT) ? node_deselect : node_select)(node);
+ break;
+ }
+ }
+
ED_node_sort(snode->edittree);
- WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
+ WM_event_add_notifier(C, NC_NODE | NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -575,7 +671,9 @@ void NODE_OT_select_all(wmOperatorType *ot)
ot->poll = ED_operator_node_active;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ WM_operator_properties_select_all(ot);
}
/* ****** Select Linked To ****** */
@@ -586,22 +684,22 @@ static int node_select_linked_to_exec(bContext *C, wmOperator *UNUSED(op))
bNodeLink *link;
bNode *node;
- for (node=snode->edittree->nodes.first; node; node=node->next)
+ for (node = snode->edittree->nodes.first; node; node = node->next)
node->flag &= ~NODE_TEST;
- for (link=snode->edittree->links.first; link; link=link->next) {
+ for (link = snode->edittree->links.first; link; link = link->next) {
if (link->fromnode && link->tonode && (link->fromnode->flag & NODE_SELECT))
link->tonode->flag |= NODE_TEST;
}
- for (node=snode->edittree->nodes.first; node; node=node->next) {
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
if (node->flag & NODE_TEST)
node_select(node);
}
ED_node_sort(snode->edittree);
- WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
+ WM_event_add_notifier(C, NC_NODE | NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -617,7 +715,7 @@ void NODE_OT_select_linked_to(wmOperatorType *ot)
ot->poll = ED_operator_node_active;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
/* ****** Select Linked From ****** */
@@ -628,22 +726,22 @@ static int node_select_linked_from_exec(bContext *C, wmOperator *UNUSED(op))
bNodeLink *link;
bNode *node;
- for (node=snode->edittree->nodes.first; node; node=node->next)
+ for (node = snode->edittree->nodes.first; node; node = node->next)
node->flag &= ~NODE_TEST;
- for (link=snode->edittree->links.first; link; link=link->next) {
+ for (link = snode->edittree->links.first; link; link = link->next) {
if (link->fromnode && link->tonode && (link->tonode->flag & NODE_SELECT))
link->fromnode->flag |= NODE_TEST;
}
- for (node=snode->edittree->nodes.first; node; node=node->next) {
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
if (node->flag & NODE_TEST)
node_select(node);
}
ED_node_sort(snode->edittree);
- WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
+ WM_event_add_notifier(C, NC_NODE | NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -659,7 +757,7 @@ void NODE_OT_select_linked_from(wmOperatorType *ot)
ot->poll = ED_operator_node_active;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
/* ****** Select Same Type ****** */
@@ -672,7 +770,7 @@ static int node_select_same_type_exec(bContext *C, wmOperator *UNUSED(op))
ED_node_sort(snode->edittree);
- WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
+ WM_event_add_notifier(C, NC_NODE | NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -688,7 +786,7 @@ void NODE_OT_select_same_type(wmOperatorType *ot)
ot->poll = ED_operator_node_active;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
/* ****** Select The Next/Prev Node Of The Same Type ****** */
@@ -701,7 +799,7 @@ static int node_select_same_type_next_exec(bContext *C, wmOperator *UNUSED(op))
ED_node_sort(snode->edittree);
- WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
+ WM_event_add_notifier(C, NC_NODE | NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -718,7 +816,7 @@ void NODE_OT_select_same_type_next(wmOperatorType *ot)
ot->poll = ED_operator_node_active;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
static int node_select_same_type_prev_exec(bContext *C, wmOperator *UNUSED(op))
@@ -729,7 +827,7 @@ static int node_select_same_type_prev_exec(bContext *C, wmOperator *UNUSED(op))
ED_node_sort(snode->edittree);
- WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
+ WM_event_add_notifier(C, NC_NODE | NA_SELECTED, NULL);
return OPERATOR_FINISHED;
}
@@ -745,5 +843,5 @@ void NODE_OT_select_same_type_prev(wmOperatorType *ot)
ot->poll = ED_operator_node_active;
/* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
diff --git a/source/blender/editors/space_node/node_state.c b/source/blender/editors/space_node/node_state.c
deleted file mode 100644
index 5463d4a8ff0..00000000000
--- a/source/blender/editors/space_node/node_state.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2008 Blender Foundation.
- * All rights reserved.
- *
- *
- * Contributor(s): Blender Foundation, Nathan Letwory
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/editors/space_node/node_state.c
- * \ingroup spnode
- */
-
-
-#include <stdio.h>
-
-#include "DNA_node_types.h"
-#include "DNA_scene_types.h"
-
-#include "BLI_rect.h"
-#include "BLI_utildefines.h"
-
-#include "BKE_context.h"
-#include "BKE_node.h"
-
-#include "ED_screen.h"
-
-#include "RNA_access.h"
-#include "RNA_define.h"
-
-#include "WM_api.h"
-#include "WM_types.h"
-
-#include "UI_view2d.h"
-
-#include "node_intern.h"
-
-
-/* **************** View All Operator ************** */
-
-static void snode_home(ScrArea *UNUSED(sa), ARegion *ar, SpaceNode* snode)
-{
- bNode *node;
- rctf *cur;
- float oldwidth, oldheight, width, height;
- int first= 1;
-
- cur= &ar->v2d.cur;
-
- oldwidth= cur->xmax - cur->xmin;
- oldheight= cur->ymax - cur->ymin;
-
- cur->xmin = cur->ymin = 0.0f;
- cur->xmax=ar->winx;
- cur->ymax=ar->winy;
-
- if (snode->edittree) {
- for (node= snode->edittree->nodes.first; node; node= node->next) {
- if (first) {
- first= 0;
- ar->v2d.cur= node->totr;
- }
- else {
- BLI_union_rctf(cur, &node->totr);
- }
- }
- }
-
- snode->xof= 0;
- snode->yof= 0;
- width= cur->xmax - cur->xmin;
- height= cur->ymax- cur->ymin;
-
- if (width > height) {
- float newheight;
- newheight= oldheight * width/oldwidth;
- cur->ymin = cur->ymin - newheight/4;
- cur->ymax = cur->ymax + newheight/4;
- }
- else {
- float newwidth;
- newwidth= oldwidth * height/oldheight;
- cur->xmin = cur->xmin - newwidth/4;
- cur->xmax = cur->xmax + newwidth/4;
- }
-
- ar->v2d.tot= ar->v2d.cur;
- UI_view2d_curRect_validate(&ar->v2d);
-}
-
-static int node_view_all_exec(bContext *C, wmOperator *UNUSED(op))
-{
- ScrArea *sa= CTX_wm_area(C);
- ARegion *ar= CTX_wm_region(C);
- SpaceNode *snode= CTX_wm_space_node(C);
-
- snode_home(sa, ar, snode);
- ED_region_tag_redraw(ar);
-
- return OPERATOR_FINISHED;
-}
-
-void NODE_OT_view_all(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "View All";
- ot->idname = "NODE_OT_view_all";
- ot->description = "Resize view so you can see all nodes";
-
- /* api callbacks */
- ot->exec = node_view_all_exec;
- ot->poll = ED_operator_node_active;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
-}
diff --git a/source/blender/editors/space_node/node_templates.c b/source/blender/editors/space_node/node_templates.c
index f12c7941e1d..3d93a6c14a1 100644
--- a/source/blender/editors/space_node/node_templates.c
+++ b/source/blender/editors/space_node/node_templates.c
@@ -24,41 +24,32 @@
* \ingroup edinterface
*/
-#include <stdlib.h>
-#include <stddef.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_node_types.h"
-#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
-#include "BLI_utildefines.h"
#include "BLF_translation.h"
#include "BKE_context.h"
-#include "BKE_depsgraph.h"
#include "BKE_library.h"
#include "BKE_main.h"
-#include "BKE_node.h"
#include "BKE_scene.h"
#include "RNA_access.h"
#include "NOD_socket.h"
-#include "WM_api.h"
-#include "WM_types.h"
-
#include "UI_interface.h"
-#include "UI_resources.h"
-#include "../interface/interface_intern.h"
+#include "../interface/interface_intern.h" /* XXX bad level */
+
+#include "ED_node.h" /* own include */
-#include "ED_node.h"
#include "ED_util.h"
/************************* Node Socket Manipulation **************************/
@@ -239,7 +230,7 @@ static void node_socket_add_replace(Main *bmain, bNodeTree *ntree, bNode *node_t
/****************************** Node Link Menu *******************************/
-#define UI_NODE_LINK_ADD 0
+// #define UI_NODE_LINK_ADD 0
#define UI_NODE_LINK_DISCONNECT -1
#define UI_NODE_LINK_REMOVE -2
@@ -605,7 +596,7 @@ static void ui_node_draw_input(uiLayout *layout, bContext *C, bNodeTree *ntree,
uiItemL(row, "", ICON_BLANK1);
bt = block->buttons.last;
- bt->x2 = UI_UNIT_X / 2;
+ bt->rect.xmax = UI_UNIT_X / 2;
uiBlockSetEmboss(block, UI_EMBOSS);
}
@@ -636,11 +627,11 @@ static void ui_node_draw_input(uiLayout *layout, bContext *C, bNodeTree *ntree,
row = uiLayoutRow(split, FALSE);
col = uiLayoutColumn(row, FALSE);
- uiItemR(col, &inputptr, "default_value", 0, "", 0);
+ uiItemR(col, &inputptr, "default_value", 0, "", ICON_NONE);
}
else {
row = uiLayoutRow(split, TRUE);
- uiItemR(row, &inputptr, "default_value", 0, "", 0);
+ uiItemR(row, &inputptr, "default_value", 0, "", ICON_NONE);
}
}
else
diff --git a/source/blender/editors/space_node/node_view.c b/source/blender/editors/space_node/node_view.c
new file mode 100644
index 00000000000..ccf5c4b540f
--- /dev/null
+++ b/source/blender/editors/space_node/node_view.c
@@ -0,0 +1,551 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2008 Blender Foundation.
+ * All rights reserved.
+ *
+ *
+ * Contributor(s): Blender Foundation, Nathan Letwory
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/editors/space_node/node_view.c
+ * \ingroup spnode
+ */
+
+#include "DNA_node_types.h"
+
+#include "BLI_rect.h"
+#include "BLI_utildefines.h"
+#include "BLI_math.h"
+
+#include "BKE_context.h"
+#include "BKE_image.h"
+#include "BKE_screen.h"
+#include "BKE_node.h"
+
+#include "ED_node.h" /* own include */
+#include "ED_screen.h"
+#include "ED_space_api.h"
+#include "ED_image.h"
+
+#include "UI_view2d.h"
+
+#include "RNA_access.h"
+#include "RNA_define.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "UI_view2d.h"
+
+#include "MEM_guardedalloc.h"
+
+#include "IMB_imbuf.h"
+#include "IMB_imbuf_types.h"
+
+#include "node_intern.h" /* own include */
+
+
+/* **************** View All Operator ************** */
+
+static int space_node_view_flag(bContext *C, SpaceNode *snode, ARegion *ar, const int node_flag)
+{
+ bNode *node;
+ rctf cur_new;
+ float oldwidth, oldheight, width, height;
+ int tot = 0;
+ int has_frame = FALSE;
+
+ oldwidth = BLI_rctf_size_x(&ar->v2d.cur);
+ oldheight = BLI_rctf_size_y(&ar->v2d.cur);
+
+ BLI_rctf_init_minmax(&cur_new);
+
+ if (snode->edittree) {
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
+ if ((node->flag & node_flag) == node_flag) {
+ BLI_rctf_union(&cur_new, &node->totr);
+ tot++;
+
+ if (node->type == NODE_FRAME) {
+ has_frame = TRUE;
+ }
+ }
+ }
+ }
+
+ if (tot) {
+ width = BLI_rctf_size_x(&cur_new);
+ height = BLI_rctf_size_y(&cur_new);
+
+ /* for single non-frame nodes, don't zoom in, just pan view,
+ * but do allow zooming out, this allows for big nodes to be zoomed out */
+ if ((tot == 1) &&
+ (has_frame == FALSE) &&
+ ((oldwidth * oldheight) > (width * height)))
+ {
+ /* center, don't zoom */
+ BLI_rctf_resize(&cur_new, oldwidth, oldheight);
+ }
+ else {
+ if (width > height) {
+ float newheight;
+ newheight = oldheight * width / oldwidth;
+ cur_new.ymin = cur_new.ymin - newheight / 4;
+ cur_new.ymax = cur_new.ymax + newheight / 4;
+ }
+ else {
+ float newwidth;
+ newwidth = oldwidth * height / oldheight;
+ cur_new.xmin = cur_new.xmin - newwidth / 4;
+ cur_new.xmax = cur_new.xmax + newwidth / 4;
+ }
+ }
+
+ UI_view2d_smooth_view(C, ar, &cur_new);
+ }
+
+ return (tot != 0);
+}
+
+static int node_view_all_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ ARegion *ar = CTX_wm_region(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
+
+ /* is this really needed? */
+ snode->xof = 0;
+ snode->yof = 0;
+
+ if (space_node_view_flag(C, snode, ar, 0)) {
+ return OPERATOR_FINISHED;
+ }
+ else {
+ return OPERATOR_CANCELLED;
+ }
+}
+
+void NODE_OT_view_all(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "View All";
+ ot->idname = "NODE_OT_view_all";
+ ot->description = "Resize view so you can see all nodes";
+
+ /* api callbacks */
+ ot->exec = node_view_all_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+static int node_view_selected_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ ARegion *ar = CTX_wm_region(C);
+ SpaceNode *snode = CTX_wm_space_node(C);
+
+ if (space_node_view_flag(C, snode, ar, NODE_SELECT)) {
+ return OPERATOR_FINISHED;
+ }
+ else {
+ return OPERATOR_CANCELLED;
+ }
+}
+
+void NODE_OT_view_selected(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "View Selected";
+ ot->idname = "NODE_OT_view_selected";
+ ot->description = "Resize view so you can see selected nodes";
+
+ /* api callbacks */
+ ot->exec = node_view_selected_exec;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+}
+
+/* **************** Backround Image Operators ************** */
+
+typedef struct NodeViewMove {
+ int mvalo[2];
+ int xmin, ymin, xmax, ymax;
+} NodeViewMove;
+
+static int snode_bg_viewmove_modal(bContext *C, wmOperator *op, wmEvent *event)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ARegion *ar = CTX_wm_region(C);
+ NodeViewMove *nvm = op->customdata;
+
+ switch (event->type) {
+ case MOUSEMOVE:
+
+ snode->xof -= (nvm->mvalo[0] - event->mval[0]);
+ snode->yof -= (nvm->mvalo[1] - event->mval[1]);
+ nvm->mvalo[0] = event->mval[0];
+ nvm->mvalo[1] = event->mval[1];
+
+ /* prevent dragging image outside of the window and losing it! */
+ CLAMP(snode->xof, nvm->xmin, nvm->xmax);
+ CLAMP(snode->yof, nvm->ymin, nvm->ymax);
+
+ ED_region_tag_redraw(ar);
+
+ break;
+
+ case LEFTMOUSE:
+ case MIDDLEMOUSE:
+ case RIGHTMOUSE:
+
+ MEM_freeN(nvm);
+ op->customdata = NULL;
+
+ return OPERATOR_FINISHED;
+ }
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+static int snode_bg_viewmove_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ARegion *ar = CTX_wm_region(C);
+ NodeViewMove *nvm;
+ Image *ima;
+ ImBuf *ibuf;
+ const float pad = 32.0f; /* better be bigger then scrollbars */
+
+ void *lock;
+
+ ima = BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node");
+ ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock);
+
+ if (ibuf == NULL) {
+ BKE_image_release_ibuf(ima, lock);
+ return OPERATOR_CANCELLED;
+ }
+
+ nvm = MEM_callocN(sizeof(NodeViewMove), "NodeViewMove struct");
+ op->customdata = nvm;
+ nvm->mvalo[0] = event->mval[0];
+ nvm->mvalo[1] = event->mval[1];
+
+ nvm->xmin = -(ar->winx / 2) - (ibuf->x * (0.5f * snode->zoom)) + pad;
+ nvm->xmax = (ar->winx / 2) + (ibuf->x * (0.5f * snode->zoom)) - pad;
+ nvm->ymin = -(ar->winy / 2) - (ibuf->y * (0.5f * snode->zoom)) + pad;
+ nvm->ymax = (ar->winy / 2) + (ibuf->y * (0.5f * snode->zoom)) - pad;
+
+ BKE_image_release_ibuf(ima, lock);
+
+ /* add modal handler */
+ WM_event_add_modal_handler(C, op);
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+static int snode_bg_viewmove_cancel(bContext *UNUSED(C), wmOperator *op)
+{
+ MEM_freeN(op->customdata);
+ op->customdata = NULL;
+
+ return OPERATOR_CANCELLED;
+}
+
+void NODE_OT_backimage_move(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Background Image Move";
+ ot->description = "Move Node backdrop";
+ ot->idname = "NODE_OT_backimage_move";
+
+ /* api callbacks */
+ ot->invoke = snode_bg_viewmove_invoke;
+ ot->modal = snode_bg_viewmove_modal;
+ ot->poll = composite_node_active;
+ ot->cancel = snode_bg_viewmove_cancel;
+
+ /* flags */
+ ot->flag = OPTYPE_BLOCKING | OPTYPE_GRAB_POINTER;
+}
+
+static int backimage_zoom(bContext *C, wmOperator *op)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ARegion *ar = CTX_wm_region(C);
+ float fac = RNA_float_get(op->ptr, "factor");
+
+ snode->zoom *= fac;
+ ED_region_tag_redraw(ar);
+
+ return OPERATOR_FINISHED;
+}
+
+
+void NODE_OT_backimage_zoom(wmOperatorType *ot)
+{
+
+ /* identifiers */
+ ot->name = "Background Image Zoom";
+ ot->idname = "NODE_OT_backimage_zoom";
+ ot->description = "Zoom in/out the background image";
+
+ /* api callbacks */
+ ot->exec = backimage_zoom;
+ ot->poll = composite_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_BLOCKING;
+
+ /* internal */
+ RNA_def_float(ot->srna, "factor", 1.2f, 0.0f, 10.0f, "Factor", "", 0.0f, 10.0f);
+}
+
+/******************** sample backdrop operator ********************/
+
+typedef struct ImageSampleInfo {
+ ARegionType *art;
+ void *draw_handle;
+ int x, y;
+ int channels;
+
+ unsigned char col[4];
+ float colf[4];
+
+ int draw;
+ int color_manage;
+} ImageSampleInfo;
+
+static void sample_draw(const bContext *C, ARegion *ar, void *arg_info)
+{
+ Scene *scene = CTX_data_scene(C);
+ ImageSampleInfo *info = arg_info;
+
+ if (info->draw) {
+ ED_image_draw_info(scene, ar, info->color_manage, FALSE, info->channels,
+ info->x, info->y, info->col, info->colf,
+ NULL, NULL /* zbuf - unused for nodes */
+ );
+ }
+}
+
+/* returns color in SRGB */
+/* matching ED_space_image_color_sample() */
+int ED_space_node_color_sample(SpaceNode *snode, ARegion *ar, int mval[2], float r_col[3])
+{
+ void *lock;
+ Image *ima;
+ ImBuf *ibuf;
+ float fx, fy, bufx, bufy;
+ int ret = FALSE;
+
+ if (snode->treetype != NTREE_COMPOSIT || (snode->flag & SNODE_BACKDRAW) == 0) {
+ /* use viewer image for color sampling only if we're in compositor tree
+ * with backdrop enabled
+ */
+ return FALSE;
+ }
+
+ ima = BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node");
+ ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock);
+ if (!ibuf) {
+ return FALSE;
+ }
+
+ /* map the mouse coords to the backdrop image space */
+ bufx = ibuf->x * snode->zoom;
+ bufy = ibuf->y * snode->zoom;
+ fx = (bufx > 0.0f ? ((float)mval[0] - 0.5f * ar->winx - snode->xof) / bufx + 0.5f : 0.0f);
+ fy = (bufy > 0.0f ? ((float)mval[1] - 0.5f * ar->winy - snode->yof) / bufy + 0.5f : 0.0f);
+
+ if (fx >= 0.0f && fy >= 0.0f && fx < 1.0f && fy < 1.0f) {
+ float *fp;
+ unsigned char *cp;
+ int x = (int)(fx * ibuf->x), y = (int)(fy * ibuf->y);
+
+ CLAMP(x, 0, ibuf->x - 1);
+ CLAMP(y, 0, ibuf->y - 1);
+
+ if (ibuf->rect_float) {
+ fp = (ibuf->rect_float + (ibuf->channels) * (y * ibuf->x + x));
+ /* IB_PROFILE_NONE is default but infact its linear */
+ linearrgb_to_srgb_v3_v3(r_col, fp);
+ ret = TRUE;
+ }
+ else if (ibuf->rect) {
+ cp = (unsigned char *)(ibuf->rect + y * ibuf->x + x);
+ rgb_uchar_to_float(r_col, cp);
+ ret = TRUE;
+ }
+ }
+
+ BKE_image_release_ibuf(ima, lock);
+
+ return ret;
+}
+
+static void sample_apply(bContext *C, wmOperator *op, wmEvent *event)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ARegion *ar = CTX_wm_region(C);
+ ImageSampleInfo *info = op->customdata;
+ void *lock;
+ Image *ima;
+ ImBuf *ibuf;
+ float fx, fy, bufx, bufy;
+
+ ima = BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node");
+ ibuf = BKE_image_acquire_ibuf(ima, NULL, &lock);
+ if (!ibuf) {
+ info->draw = 0;
+ return;
+ }
+
+ if (!ibuf->rect) {
+ IMB_rect_from_float(ibuf);
+ }
+
+ /* map the mouse coords to the backdrop image space */
+ bufx = ibuf->x * snode->zoom;
+ bufy = ibuf->y * snode->zoom;
+ fx = (bufx > 0.0f ? ((float)event->mval[0] - 0.5f * ar->winx - snode->xof) / bufx + 0.5f : 0.0f);
+ fy = (bufy > 0.0f ? ((float)event->mval[1] - 0.5f * ar->winy - snode->yof) / bufy + 0.5f : 0.0f);
+
+ if (fx >= 0.0f && fy >= 0.0f && fx < 1.0f && fy < 1.0f) {
+ float *fp;
+ unsigned char *cp;
+ int x = (int)(fx * ibuf->x), y = (int)(fy * ibuf->y);
+
+ CLAMP(x, 0, ibuf->x - 1);
+ CLAMP(y, 0, ibuf->y - 1);
+
+ info->x = x;
+ info->y = y;
+ info->draw = 1;
+ info->channels = ibuf->channels;
+
+ if (ibuf->rect) {
+ cp = (unsigned char *)(ibuf->rect + y * ibuf->x + x);
+
+ info->col[0] = cp[0];
+ info->col[1] = cp[1];
+ info->col[2] = cp[2];
+ info->col[3] = cp[3];
+
+ info->colf[0] = (float)cp[0] / 255.0f;
+ info->colf[1] = (float)cp[1] / 255.0f;
+ info->colf[2] = (float)cp[2] / 255.0f;
+ info->colf[3] = (float)cp[3] / 255.0f;
+
+ info->color_manage = FALSE;
+ }
+ if (ibuf->rect_float) {
+ fp = (ibuf->rect_float + (ibuf->channels) * (y * ibuf->x + x));
+
+ info->colf[0] = fp[0];
+ info->colf[1] = fp[1];
+ info->colf[2] = fp[2];
+ info->colf[3] = fp[3];
+
+ info->color_manage = TRUE;
+ }
+
+ ED_node_sample_set(info->colf);
+ }
+ else {
+ info->draw = 0;
+ ED_node_sample_set(NULL);
+ }
+
+ BKE_image_release_ibuf(ima, lock);
+
+ ED_area_tag_redraw(CTX_wm_area(C));
+}
+
+static void sample_exit(bContext *C, wmOperator *op)
+{
+ ImageSampleInfo *info = op->customdata;
+
+ ED_node_sample_set(NULL);
+ ED_region_draw_cb_exit(info->art, info->draw_handle);
+ ED_area_tag_redraw(CTX_wm_area(C));
+ MEM_freeN(info);
+}
+
+static int sample_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ SpaceNode *snode = CTX_wm_space_node(C);
+ ARegion *ar = CTX_wm_region(C);
+ ImageSampleInfo *info;
+
+ if (snode->treetype != NTREE_COMPOSIT || !(snode->flag & SNODE_BACKDRAW))
+ return OPERATOR_CANCELLED;
+
+ info = MEM_callocN(sizeof(ImageSampleInfo), "ImageSampleInfo");
+ info->art = ar->type;
+ info->draw_handle = ED_region_draw_cb_activate(ar->type, sample_draw, info, REGION_DRAW_POST_PIXEL);
+ op->customdata = info;
+
+ sample_apply(C, op, event);
+
+ WM_event_add_modal_handler(C, op);
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+static int sample_modal(bContext *C, wmOperator *op, wmEvent *event)
+{
+ switch (event->type) {
+ case LEFTMOUSE:
+ case RIGHTMOUSE: // XXX hardcoded
+ sample_exit(C, op);
+ return OPERATOR_CANCELLED;
+ case MOUSEMOVE:
+ sample_apply(C, op, event);
+ break;
+ }
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+static int sample_cancel(bContext *C, wmOperator *op)
+{
+ sample_exit(C, op);
+ return OPERATOR_CANCELLED;
+}
+
+void NODE_OT_backimage_sample(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Backimage Sample";
+ ot->idname = "NODE_OT_backimage_sample";
+ ot->description = "Use mouse to sample background image";
+
+ /* api callbacks */
+ ot->invoke = sample_invoke;
+ ot->modal = sample_modal;
+ ot->cancel = sample_cancel;
+ ot->poll = ED_operator_node_active;
+
+ /* flags */
+ ot->flag = OPTYPE_BLOCKING;
+}
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index 349259ad71b..b70d66f60b4 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -29,22 +29,16 @@
*/
-#include <string.h>
-#include <stdio.h>
#include "DNA_lamp_types.h"
#include "DNA_material_types.h"
#include "DNA_node_types.h"
-#include "DNA_object_types.h"
-#include "DNA_scene_types.h"
#include "DNA_world_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
-#include "BLI_rand.h"
-#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -53,7 +47,7 @@
#include "ED_space_api.h"
#include "ED_render.h"
#include "ED_screen.h"
-
+#include "ED_node.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -63,7 +57,7 @@
#include "RNA_access.h"
-#include "node_intern.h" // own include
+#include "node_intern.h" /* own include */
/* ******************** manage regions ********************* */
@@ -192,10 +186,6 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn)
break;
}
break;
- case NC_WM:
- if (wmn->data == ND_FILEREAD)
- ED_area_tag_refresh(sa);
- break;
/* future: add ID checks? */
case NC_MATERIAL:
@@ -267,7 +257,7 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn)
}
}
-static void node_area_refresh(const struct bContext *C, struct ScrArea *sa)
+static void node_area_refresh(const struct bContext *C, ScrArea *sa)
{
/* default now: refresh node is starting preview */
SpaceNode *snode = sa->spacedata.first;
@@ -300,8 +290,9 @@ static void node_area_refresh(const struct bContext *C, struct ScrArea *sa)
snode->recalc = 0;
node_render_changed_exec((struct bContext *)C, NULL);
}
- else
- snode_composite_job(C, sa);
+ else {
+ ED_node_composite_job(C, snode->nodetree, scene);
+ }
}
}
else if (snode->treetype == NTREE_TEXTURE) {
@@ -347,7 +338,7 @@ static void node_cursor(wmWindow *win, ScrArea *sa, ARegion *ar)
/* convert mouse coordinates to v2d space */
UI_view2d_region_to_view(&ar->v2d, win->eventstate->x - ar->winrct.xmin, win->eventstate->y - ar->winrct.ymin,
- &snode->mx, &snode->my);
+ &snode->cursor[0], &snode->cursor[1]);
node_set_cursor(win, snode);
}
@@ -449,9 +440,6 @@ static void node_region_listener(ARegion *ar, wmNotifier *wmn)
break;
case NC_SCREEN:
switch (wmn->data) {
- case ND_GPENCIL:
- ED_region_tag_redraw(ar);
- break;
case ND_SCREENCAST:
case ND_ANIMPLAY:
ED_region_tag_redraw(ar);
@@ -472,6 +460,10 @@ static void node_region_listener(ARegion *ar, wmNotifier *wmn)
if (wmn->action == NA_RENAME)
ED_region_tag_redraw(ar);
break;
+ case NC_GPENCIL:
+ if (wmn->action == NA_EDITED)
+ ED_region_tag_redraw(ar);
+ break;
}
}
diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c
index 42fdd5173d4..d2e47427b94 100644
--- a/source/blender/editors/space_outliner/outliner_draw.c
+++ b/source/blender/editors/space_outliner/outliner_draw.c
@@ -256,10 +256,12 @@ void restrictbutton_gr_restrict_flag(void *poin, void *poin2, int flag)
/* not in editmode */
if (scene->obedit != gob->ob) {
gob->ob->restrictflag |= flag;
-
- if (flag == OB_RESTRICT_VIEW)
- if ((gob->ob->flag & SELECT) == 0)
- ED_base_object_select(BKE_scene_base_find(scene, gob->ob), BA_SELECT);
+
+ if (ELEM(flag, OB_RESTRICT_SELECT, OB_RESTRICT_VIEW)) {
+ if ((gob->ob->flag & SELECT)) {
+ ED_base_object_select(BKE_scene_base_find(scene, gob->ob), BA_DESELECT);
+ }
+ }
}
}
}
@@ -781,7 +783,9 @@ static void outliner_draw_keymapbuts(uiBlock *block, ARegion *ar, SpaceOops *soo
wmKeyMapItem *kmi = te->directdata;
/* modal map? */
- if (kmi->propvalue) ;
+ if (kmi->propvalue) {
+ /* pass */
+ }
else {
uiDefBlockBut(block, operator_search_menu, kmi, "", xstart, (int)te->ys + 1, butw1, UI_UNIT_Y - 1, "Assign new Operator");
}
@@ -1273,8 +1277,8 @@ static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene
* we don't expand items when searching in the datablocks but we
* still want to highlight any filter matches.
*/
- if ( (SEARCHING_OUTLINER(soops) || (soops->outlinevis == SO_DATABLOCKS && soops->search_string[0] != 0)) &&
- (tselem->flag & TSE_SEARCHMATCH))
+ if ((SEARCHING_OUTLINER(soops) || (soops->outlinevis == SO_DATABLOCKS && soops->search_string[0] != 0)) &&
+ (tselem->flag & TSE_SEARCHMATCH))
{
char col[4];
UI_GetThemeColorType4ubv(TH_MATCH, SPACE_OUTLINER, col);
@@ -1407,11 +1411,15 @@ static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene
/* closed item, we draw the icons, not when it's a scene, or master-server list though */
if (!TSELEM_OPEN(tselem, soops)) {
if (te->subtree.first) {
- if (tselem->type == 0 && te->idcode == ID_SCE) ;
- else if (tselem->type != TSE_R_LAYER) { /* this tree element always has same amount of branches, so don't draw */
+ if (tselem->type == 0 && te->idcode == ID_SCE) {
+ /* pass */
+ }
+ else if (tselem->type != TSE_R_LAYER) {
+ /* this tree element always has same amount of branches, so don't draw */
+
int tempx = startx + offsx;
- // divider
+ /* divider */
UI_ThemeColorShade(TH_BACK, -40);
glRecti(tempx - 10, *starty + 4, tempx - 8, *starty + UI_UNIT_Y - 4);
@@ -1523,7 +1531,7 @@ static void outliner_draw_tree(bContext *C, uiBlock *block, Scene *scene, ARegio
{
TreeElement *te;
int starty, startx;
- float col[4];
+ float col[3];
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // only once
diff --git a/source/blender/editors/space_outliner/outliner_edit.c b/source/blender/editors/space_outliner/outliner_edit.c
index 449914feae4..2ec23091019 100644
--- a/source/blender/editors/space_outliner/outliner_edit.c
+++ b/source/blender/editors/space_outliner/outliner_edit.c
@@ -579,11 +579,11 @@ static int outliner_show_active_exec(bContext *C, wmOperator *UNUSED(op))
te = outliner_find_id(so, &so->tree, (ID *)OBACT);
if (te) {
/* make te->ys center of view */
- ytop = (int)(te->ys + (v2d->mask.ymax - v2d->mask.ymin) / 2);
+ ytop = (int)(te->ys + BLI_rcti_size_y(&v2d->mask) / 2);
if (ytop > 0) ytop = 0;
v2d->cur.ymax = (float)ytop;
- v2d->cur.ymin = (float)(ytop - (v2d->mask.ymax - v2d->mask.ymin));
+ v2d->cur.ymin = (float)(ytop - BLI_rcti_size_y(&v2d->mask));
/* make te->xs ==> te->xend center of view */
xdelta = (int)(te->xs - v2d->cur.xmin);
@@ -615,7 +615,7 @@ void OUTLINER_OT_show_active(wmOperatorType *ot)
static int outliner_scroll_page_exec(bContext *C, wmOperator *op)
{
ARegion *ar = CTX_wm_region(C);
- int dy = ar->v2d.mask.ymax - ar->v2d.mask.ymin;
+ int dy = BLI_rcti_size_y(&ar->v2d.mask);
int up = 0;
if (RNA_boolean_get(op->ptr, "up"))
@@ -760,10 +760,10 @@ static void outliner_find_panel(Scene *UNUSED(scene), ARegion *ar, SpaceOops *so
tselem->flag |= TSE_SELECTED;
/* make te->ys center of view */
- ytop = (int)(te->ys + (ar->v2d.mask.ymax - ar->v2d.mask.ymin) / 2);
+ ytop = (int)(te->ys + BLI_rctf_size_y(&ar->v2d.mask) / 2);
if (ytop > 0) ytop = 0;
ar->v2d.cur.ymax = (float)ytop;
- ar->v2d.cur.ymin = (float)(ytop - (ar->v2d.mask.ymax - ar->v2d.mask.ymin));
+ ar->v2d.cur.ymin = (float)(ytop - BLI_rctf_size_y(&ar->v2d.mask));
/* make te->xs ==> te->xend center of view */
xdelta = (int)(te->xs - ar->v2d.cur.xmin);
@@ -1423,7 +1423,7 @@ static int parent_drop_exec(bContext *C, wmOperator *op)
RNA_string_get(op->ptr, "child", childname);
ob = (Object *)BKE_libblock_find_name(ID_OB, childname);
- ED_object_parent_set(op->reports, bmain, scene, ob, par, partype);
+ ED_object_parent_set(op->reports, bmain, scene, ob, par, partype, FALSE, FALSE);
DAG_scene_sort(bmain, scene);
DAG_ids_flush_update(bmain, 0);
@@ -1514,7 +1514,7 @@ static int parent_drop_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
if ((par->type != OB_ARMATURE) && (par->type != OB_CURVE) && (par->type != OB_LATTICE)) {
- if (ED_object_parent_set(op->reports, bmain, scene, ob, par, partype)) {
+ if (ED_object_parent_set(op->reports, bmain, scene, ob, par, partype, FALSE, FALSE)) {
DAG_scene_sort(bmain, scene);
DAG_ids_flush_update(bmain, 0);
WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL);
@@ -1851,7 +1851,7 @@ static int material_drop_invoke(bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_CANCELLED;
}
- assign_material(ob, ma, ob->totcol + 1);
+ assign_material(ob, ma, ob->totcol + 1, BKE_MAT_ASSIGN_USERPREF);
DAG_ids_flush_update(bmain, 0);
WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, CTX_wm_view3d(C));
diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c
index 096713f9cd3..823de61d044 100644
--- a/source/blender/editors/space_outliner/outliner_select.c
+++ b/source/blender/editors/space_outliner/outliner_select.c
@@ -433,8 +433,11 @@ static int tree_element_active_bone(bContext *C, Scene *scene, TreeElement *te,
if (set) {
if (!(bone->flag & BONE_HIDDEN_P)) {
- if (set == 2) ED_pose_deselectall(OBACT, 2); // 2 is clear active tag
- else ED_pose_deselectall(OBACT, 0);
+ Object *ob = OBACT;
+ if (ob) {
+ if (set == 2) ED_pose_deselectall(ob, 2); // 2 is clear active tag
+ else ED_pose_deselectall(ob, 0);
+ }
if (set == 2 && (bone->flag & BONE_SELECTED)) {
bone->flag &= ~BONE_SELECTED;
@@ -444,7 +447,7 @@ static int tree_element_active_bone(bContext *C, Scene *scene, TreeElement *te,
arm->act_bone = bone;
}
- WM_event_add_notifier(C, NC_OBJECT | ND_BONE_ACTIVE, OBACT);
+ WM_event_add_notifier(C, NC_OBJECT | ND_BONE_ACTIVE, ob);
}
}
else {
@@ -899,12 +902,9 @@ static int outliner_border_select_exec(bContext *C, wmOperator *op)
rctf rectf;
int gesture_mode = RNA_int_get(op->ptr, "gesture_mode");
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- UI_view2d_region_to_view(&ar->v2d, rect.xmin, rect.ymin, &rectf.xmin, &rectf.ymin);
+ WM_operator_properties_border_to_rcti(op, &rect);
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ UI_view2d_region_to_view(&ar->v2d, rect.xmin, rect.ymin, &rectf.xmin, &rectf.ymin);
UI_view2d_region_to_view(&ar->v2d, rect.xmax, rect.ymax, &rectf.xmax, &rectf.ymax);
for (te = soops->tree.first; te; te = te->next) {
diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c
index 3d01de1c67a..09df1d57b2b 100644
--- a/source/blender/editors/space_outliner/outliner_tools.c
+++ b/source/blender/editors/space_outliner/outliner_tools.c
@@ -324,6 +324,14 @@ static void id_fake_user_clear_cb(bContext *UNUSED(C), Scene *UNUSED(scene), Tre
}
}
+static void id_select_linked_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te),
+ TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
+{
+ ID *id = tselem->id;
+
+ ED_object_select_linked_by_id(C, id);
+}
+
static void singleuser_action_cb(bContext *C, Scene *UNUSED(scene), TreeElement *UNUSED(te),
TreeStoreElem *tsep, TreeStoreElem *tselem)
{
@@ -522,6 +530,18 @@ static void sequence_cb(int event, TreeElement *te, TreeStoreElem *tselem, void
(void)tselem;
}
+static void data_select_linked_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem), void *C_v)
+{
+ if (event == 5) {
+ if (RNA_struct_is_ID(te->rnaptr.type)) {
+ bContext *C = (bContext *) C_v;
+ ID *id = te->rnaptr.data;
+
+ ED_object_select_linked_by_id(C, id);
+ }
+ }
+}
+
static void outliner_do_data_operation(SpaceOops *soops, int type, int event, ListBase *lb,
void (*operation_cb)(int, TreeElement *, TreeStoreElem *, void *),
void *arg)
@@ -728,7 +748,9 @@ typedef enum eOutlinerIdOpTypes {
OUTLINER_IDOP_FAKE_ADD,
OUTLINER_IDOP_FAKE_CLEAR,
- OUTLINER_IDOP_RENAME
+ OUTLINER_IDOP_RENAME,
+
+ OUTLINER_IDOP_SELECT_LINKED
} eOutlinerIdOpTypes;
// TODO: implement support for changing the ID-block used
@@ -740,6 +762,7 @@ static EnumPropertyItem prop_id_op_types[] = {
"Ensure datablock gets saved even if it isn't in use (e.g. for motion and material libraries)"},
{OUTLINER_IDOP_FAKE_CLEAR, "CLEAR_FAKE", 0, "Clear Fake User", ""},
{OUTLINER_IDOP_RENAME, "RENAME", 0, "Rename", ""},
+ {OUTLINER_IDOP_SELECT_LINKED, "SELECT_LINKED", 0, "Select Linked", ""},
{0, NULL, 0, NULL, NULL}
};
@@ -855,6 +878,11 @@ static int outliner_id_operation_exec(bContext *C, wmOperator *op)
ED_undo_push(C, "Rename");
}
break;
+
+ case OUTLINER_IDOP_SELECT_LINKED:
+ outliner_do_libdata_operation(C, scene, soops, &soops->tree, id_select_linked_cb);
+ ED_undo_push(C, "Select");
+ break;
default:
// invalid - unhandled
@@ -1115,6 +1143,7 @@ static EnumPropertyItem prop_data_op_types[] = {
{2, "DESELECT", 0, "Deselect", ""},
{3, "HIDE", 0, "Hide", ""},
{4, "UNHIDE", 0, "Unhide", ""},
+ {5, "SELECT_LINKED", 0, "Select Linked", ""},
{0, NULL, 0, NULL, NULL}
};
@@ -1131,32 +1160,49 @@ static int outliner_data_operation_exec(bContext *C, wmOperator *op)
event = RNA_enum_get(op->ptr, "type");
set_operation_types(soops, &soops->tree, &scenelevel, &objectlevel, &idlevel, &datalevel);
- if (datalevel == TSE_POSE_CHANNEL) {
- if (event > 0) {
+ if (event <= 0)
+ return OPERATOR_CANCELLED;
+
+ switch (datalevel) {
+ case TSE_POSE_CHANNEL:
+ {
outliner_do_data_operation(soops, datalevel, event, &soops->tree, pchan_cb, NULL);
WM_event_add_notifier(C, NC_OBJECT | ND_POSE, NULL);
ED_undo_push(C, "PoseChannel operation");
}
- }
- else if (datalevel == TSE_BONE) {
- if (event > 0) {
+ break;
+
+ case TSE_BONE:
+ {
outliner_do_data_operation(soops, datalevel, event, &soops->tree, bone_cb, NULL);
WM_event_add_notifier(C, NC_OBJECT | ND_POSE, NULL);
ED_undo_push(C, "Bone operation");
}
- }
- else if (datalevel == TSE_EBONE) {
- if (event > 0) {
+ break;
+
+ case TSE_EBONE:
+ {
outliner_do_data_operation(soops, datalevel, event, &soops->tree, ebone_cb, NULL);
WM_event_add_notifier(C, NC_OBJECT | ND_POSE, NULL);
ED_undo_push(C, "EditBone operation");
}
- }
- else if (datalevel == TSE_SEQUENCE) {
- if (event > 0) {
+ break;
+
+ case TSE_SEQUENCE:
+ {
Scene *scene = CTX_data_scene(C);
outliner_do_data_operation(soops, datalevel, event, &soops->tree, sequence_cb, scene);
}
+ break;
+
+ case TSE_RNA_STRUCT:
+ if (event == 5) {
+ outliner_do_data_operation(soops, datalevel, event, &soops->tree, data_select_linked_cb, C);
+ }
+ break;
+
+ default:
+ break;
}
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c
index 63907f530eb..ef0542130ea 100644
--- a/source/blender/editors/space_outliner/outliner_tree.c
+++ b/source/blender/editors/space_outliner/outliner_tree.c
@@ -769,7 +769,9 @@ static void outliner_add_id_contents(SpaceOops *soops, TreeElement *te, TreeStor
else {
/* do not extend Armature when we have posemode */
tselem = TREESTORE(te->parent);
- if (GS(tselem->id->name) == ID_OB && ((Object *)tselem->id)->mode & OB_MODE_POSE) ;
+ if (GS(tselem->id->name) == ID_OB && ((Object *)tselem->id)->mode & OB_MODE_POSE) {
+ /* pass */
+ }
else {
Bone *curBone;
for (curBone = arm->bonebase.first; curBone; curBone = curBone->next) {
@@ -811,9 +813,15 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i
te->parent = parent;
te->index = index; // for data arays
- if (ELEM3(type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)) ;
- else if (ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) ;
- else if (type == TSE_ANIM_DATA) ;
+ if (ELEM3(type, TSE_SEQUENCE, TSE_SEQ_STRIP, TSE_SEQUENCE_DUP)) {
+ /* pass */
+ }
+ else if (ELEM3(type, TSE_RNA_STRUCT, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM)) {
+ /* pass */
+ }
+ else if (type == TSE_ANIM_DATA) {
+ /* pass */
+ }
else {
te->name = id->name + 2; // default, can be overridden by Library or non-ID data
te->idcode = GS(id->name);
@@ -1055,8 +1063,12 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i
if (key[0]) {
wmOperatorType *ot = NULL;
- if (kmi->propvalue) ;
- else ot = WM_operatortype_find(kmi->idname, 0);
+ if (kmi->propvalue) {
+ /* pass */
+ }
+ else {
+ ot = WM_operatortype_find(kmi->idname, 0);
+ }
if (ot || kmi->propvalue) {
TreeElement *ten = outliner_add_element(soops, &te->subtree, kmi, te, TSE_KEYMAP_ITEM, a);
@@ -1216,8 +1228,8 @@ static int treesort_obtype_alpha(const void *v1, const void *v2)
else {
/* 2nd we check ob type */
if (x1->idcode == ID_OB && x2->idcode == ID_OB) {
- if ( ((Object *)x1->id)->type > ((Object *)x2->id)->type) return 1;
- else if ( ((Object *)x1->id)->type > ((Object *)x2->id)->type) return -1;
+ if (((Object *)x1->id)->type > ((Object *)x2->id)->type) return 1;
+ else if (((Object *)x1->id)->type > ((Object *)x2->id)->type) return -1;
else return 0;
}
else {
@@ -1243,7 +1255,7 @@ static void outliner_sort(SpaceOops *soops, ListBase *lb)
tselem = TREESTORE(te);
/* sorting rules; only object lists or deformgroups */
- if ( (tselem->type == TSE_DEFGROUP) || (tselem->type == 0 && te->idcode == ID_OB)) {
+ if ((tselem->type == TSE_DEFGROUP) || (tselem->type == 0 && te->idcode == ID_OB)) {
/* count first */
for (te = lb->first; te; te = te->next) totelem++;
diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c
index 489a4efe891..6cfc3f97b31 100644
--- a/source/blender/editors/space_outliner/space_outliner.c
+++ b/source/blender/editors/space_outliner/space_outliner.c
@@ -483,7 +483,7 @@ void ED_spacetype_outliner(void)
BLI_addhead(&st->regiontypes, art);
/* regions: header */
- art = MEM_callocN(sizeof(ARegionType), "spacetype time region");
+ art = MEM_callocN(sizeof(ARegionType), "spacetype time header region");
art->regionid = RGN_TYPE_HEADER;
art->prefsizey = HEADERY;
art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_VIEW2D | ED_KEYMAP_FRAMES | ED_KEYMAP_HEADER;
diff --git a/source/blender/editors/space_sequencer/CMakeLists.txt b/source/blender/editors/space_sequencer/CMakeLists.txt
index 7bee8c2bebf..c1f7fc942e4 100644
--- a/source/blender/editors/space_sequencer/CMakeLists.txt
+++ b/source/blender/editors/space_sequencer/CMakeLists.txt
@@ -40,9 +40,11 @@ set(SRC
sequencer_buttons.c
sequencer_draw.c
sequencer_edit.c
+ sequencer_modifier.c
sequencer_ops.c
sequencer_scopes.c
sequencer_select.c
+ sequencer_view.c
space_sequencer.c
sequencer_intern.h
diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c
index 26bedd14d6e..ff895c06d57 100644
--- a/source/blender/editors/space_sequencer/sequencer_add.c
+++ b/source/blender/editors/space_sequencer/sequencer_add.c
@@ -230,7 +230,7 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- seq = alloc_sequence(ed->seqbasep, start_frame, channel);
+ seq = BKE_sequence_alloc(ed->seqbasep, start_frame, channel);
seq->type = SEQ_TYPE_SCENE;
seq->blend_mode = SEQ_TYPE_CROSS; /* so alpha adjustment fade to the strip below */
@@ -242,11 +242,11 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op)
strip->us = 1;
BLI_strncpy(seq->name + 2, sce_seq->id.name + 2, sizeof(seq->name) - 2);
- seqbase_unique_name_recursive(&ed->seqbase, seq);
+ BKE_sequence_base_unique_name_recursive(&ed->seqbase, seq);
seq->scene_sound = sound_scene_add_scene_sound(scene, seq, start_frame, start_frame + seq->len, 0);
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
BKE_sequencer_sort(scene);
if (RNA_boolean_get(op->ptr, "replace_sel")) {
@@ -256,7 +256,7 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op)
}
if (RNA_boolean_get(op->ptr, "overlap") == FALSE) {
- if (seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, seq)) BKE_sequence_base_shuffle(ed->seqbasep, seq, scene);
}
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -329,7 +329,7 @@ static int sequencer_add_movieclip_strip_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- seq = alloc_sequence(ed->seqbasep, start_frame, channel);
+ seq = BKE_sequence_alloc(ed->seqbasep, start_frame, channel);
seq->type = SEQ_TYPE_MOVIECLIP;
seq->blend_mode = SEQ_TYPE_CROSS;
seq->clip = clip;
@@ -343,9 +343,9 @@ static int sequencer_add_movieclip_strip_exec(bContext *C, wmOperator *op)
strip->us = 1;
BLI_strncpy(seq->name + 2, clip->id.name + 2, sizeof(seq->name) - 2);
- seqbase_unique_name_recursive(&ed->seqbase, seq);
+ BKE_sequence_base_unique_name_recursive(&ed->seqbase, seq);
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
BKE_sequencer_sort(scene);
if (RNA_boolean_get(op->ptr, "replace_sel")) {
@@ -355,7 +355,7 @@ static int sequencer_add_movieclip_strip_exec(bContext *C, wmOperator *op)
}
if (RNA_boolean_get(op->ptr, "overlap") == FALSE) {
- if (seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, seq)) BKE_sequence_base_shuffle(ed->seqbasep, seq, scene);
}
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -425,7 +425,7 @@ static int sequencer_add_mask_strip_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- seq = alloc_sequence(ed->seqbasep, start_frame, channel);
+ seq = BKE_sequence_alloc(ed->seqbasep, start_frame, channel);
seq->type = SEQ_TYPE_MASK;
seq->blend_mode = SEQ_TYPE_CROSS;
seq->mask = mask;
@@ -439,9 +439,9 @@ static int sequencer_add_mask_strip_exec(bContext *C, wmOperator *op)
strip->us = 1;
BLI_strncpy(seq->name + 2, mask->id.name + 2, sizeof(seq->name) - 2);
- seqbase_unique_name_recursive(&ed->seqbase, seq);
+ BKE_sequence_base_unique_name_recursive(&ed->seqbase, seq);
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
BKE_sequencer_sort(scene);
if (RNA_boolean_get(op->ptr, "replace_sel")) {
@@ -451,7 +451,7 @@ static int sequencer_add_mask_strip_exec(bContext *C, wmOperator *op)
}
if (RNA_boolean_get(op->ptr, "overlap") == FALSE) {
- if (seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, seq)) BKE_sequence_base_shuffle(ed->seqbasep, seq, scene);
}
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -535,7 +535,7 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad
seq = seq_load_func(C, ed->seqbasep, &seq_load);
if (seq) {
if (overlap == FALSE) {
- if (seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, seq)) BKE_sequence_base_shuffle(ed->seqbasep, seq, scene);
}
}
}
@@ -546,7 +546,8 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad
seq = seq_load_func(C, ed->seqbasep, &seq_load);
if (seq) {
if (overlap == FALSE) {
- if (seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, seq))
+ BKE_sequence_base_shuffle(ed->seqbasep, seq, scene);
}
}
}
@@ -557,7 +558,7 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad
}
BKE_sequencer_sort(scene);
- seq_update_muting(ed);
+ BKE_sequencer_update_muting(ed);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -567,7 +568,7 @@ static int sequencer_add_generic_strip_exec(bContext *C, wmOperator *op, SeqLoad
/* add movie operator */
static int sequencer_add_movie_strip_exec(bContext *C, wmOperator *op)
{
- return sequencer_add_generic_strip_exec(C, op, sequencer_add_movie_strip);
+ return sequencer_add_generic_strip_exec(C, op, BKE_sequencer_add_movie_strip);
}
@@ -613,7 +614,8 @@ void SEQUENCER_OT_movie_strip_add(struct wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
- WM_operator_properties_filesel(ot, FOLDERFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH | WM_FILESEL_FILES, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH | WM_FILESEL_FILES, FILE_DEFAULTDISPLAY);
sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME);
RNA_def_boolean(ot->srna, "sound", TRUE, "Sound", "Load sound with the movie");
}
@@ -622,7 +624,7 @@ void SEQUENCER_OT_movie_strip_add(struct wmOperatorType *ot)
static int sequencer_add_sound_strip_exec(bContext *C, wmOperator *op)
{
- return sequencer_add_generic_strip_exec(C, op, sequencer_add_sound_strip);
+ return sequencer_add_generic_strip_exec(C, op, BKE_sequencer_add_sound_strip);
}
static int sequencer_add_sound_strip_invoke(bContext *C, wmOperator *op, wmEvent *event)
@@ -667,7 +669,8 @@ void SEQUENCER_OT_sound_strip_add(struct wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
- WM_operator_properties_filesel(ot, FOLDERFILE | SOUNDFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH | WM_FILESEL_FILES, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | SOUNDFILE, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH | WM_FILESEL_FILES, FILE_DEFAULTDISPLAY);
sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME);
RNA_def_boolean(ot->srna, "cache", FALSE, "Cache", "Cache the sound in memory");
}
@@ -698,7 +701,7 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op)
/* main adding function */
- seq = sequencer_add_image_strip(C, ed->seqbasep, &seq_load);
+ seq = BKE_sequencer_add_image_strip(C, ed->seqbasep, &seq_load);
strip = seq->strip;
se = strip->stripdata;
@@ -717,7 +720,7 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op)
}
}
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
BKE_sequencer_sort(scene);
@@ -725,7 +728,8 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op)
strncpy(ed->act_imagedir, strip->dir, FILE_MAXDIR - 1);
if (RNA_boolean_get(op->ptr, "overlap") == FALSE) {
- if (seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, seq))
+ BKE_sequence_base_shuffle(ed->seqbasep, seq, scene);
}
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -772,7 +776,8 @@ void SEQUENCER_OT_image_strip_add(struct wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
- WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY | WM_FILESEL_RELPATH | WM_FILESEL_FILES, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_DIRECTORY | WM_FILESEL_RELPATH | WM_FILESEL_FILES, FILE_DEFAULTDISPLAY);
sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME | SEQPROP_ENDFRAME);
}
@@ -811,13 +816,13 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- seq = alloc_sequence(ed->seqbasep, start_frame, channel);
+ seq = BKE_sequence_alloc(ed->seqbasep, start_frame, channel);
seq->type = type;
- BLI_strncpy(seq->name + 2, give_seqname(seq), sizeof(seq->name) - 2);
- seqbase_unique_name_recursive(&ed->seqbase, seq);
+ BLI_strncpy(seq->name + 2, BKE_sequence_give_name(seq), sizeof(seq->name) - 2);
+ BKE_sequence_base_unique_name_recursive(&ed->seqbase, seq);
- sh = get_sequence_effect(seq);
+ sh = BKE_sequence_get_effect(seq);
seq->seq1 = seq1;
seq->seq2 = seq2;
@@ -827,12 +832,12 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
if (!seq1) { /* effect has no deps */
seq->len = 1;
- seq_tx_set_final_right(seq, end_frame);
+ BKE_sequence_tx_set_final_right(seq, end_frame);
}
seq->flag |= SEQ_USE_EFFECT_DEFAULT_FADE;
- calc_sequence(scene, seq);
+ BKE_sequence_calc(scene, seq);
/* basic defaults */
seq->strip = strip = MEM_callocN(sizeof(Strip), "strip");
@@ -861,10 +866,10 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
}
if (RNA_boolean_get(op->ptr, "overlap") == FALSE) {
- if (seq_test_overlap(ed->seqbasep, seq)) shuffle_seq(ed->seqbasep, seq, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, seq)) BKE_sequence_base_shuffle(ed->seqbasep, seq, scene);
}
- update_changed_seq_and_deps(scene, seq, 1, 1); /* runs calc_sequence */
+ BKE_sequencer_update_changed_seq_and_deps(scene, seq, 1, 1); /* runs calc_sequence */
/* not sure if this is needed with update_changed_seq_and_deps.
@@ -902,7 +907,7 @@ static int sequencer_add_effect_strip_invoke(bContext *C, wmOperator *op, wmEven
* skip initializing the channel from the mouse.
* Instead leave the property unset so exec() initializes it to be
* above the strips its applied to. */
- if (get_sequence_effect_num_inputs(type) != 0) {
+ if (BKE_sequence_effect_get_num_inputs(type) != 0) {
prop_flag |= SEQPROP_NOCHAN;
}
}
@@ -928,7 +933,8 @@ void SEQUENCER_OT_effect_strip_add(struct wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
- WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, 0, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH | WM_FILESEL_RELPATH, FILE_DEFAULTDISPLAY);
sequencer_generic_props__internal(ot, SEQPROP_STARTFRAME | SEQPROP_ENDFRAME);
RNA_def_enum(ot->srna, "type", sequencer_prop_effect_types, SEQ_TYPE_CROSS, "Type", "Sequencer effect type");
RNA_def_float_vector(ot->srna, "color", 3, NULL, 0.0f, 1.0f, "Color", "Initialize the strip with this color (only used when type='COLOR')", 0.0f, 1.0f);
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c
index 38f29e8816e..7bec530fae9 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -52,6 +52,7 @@
#include "BKE_sound.h"
+#include "IMB_colormanagement.h"
#include "IMB_imbuf.h"
#include "BIF_gl.h"
@@ -68,6 +69,9 @@
#include "UI_resources.h"
#include "UI_view2d.h"
+#include "WM_api.h"
+#include "WM_types.h"
+
/* own include */
#include "sequencer_intern.h"
@@ -374,7 +378,7 @@ static void draw_seq_handle(View2D *v2d, Sequence *seq, const float handsize_cla
/* draw! */
if (seq->type < SEQ_TYPE_EFFECT ||
- get_sequence_effect_num_inputs(seq->type) == 0)
+ BKE_sequence_effect_get_num_inputs(seq->type) == 0)
{
glEnable(GL_BLEND);
@@ -428,7 +432,7 @@ static void draw_seq_extensions(Scene *scene, ARegion *ar, Sequence *seq)
y1 = seq->machine + SEQ_STRIP_OFSBOTTOM;
y2 = seq->machine + SEQ_STRIP_OFSTOP;
- pixely = (v2d->cur.ymax - v2d->cur.ymin) / (v2d->mask.ymax - v2d->mask.ymin);
+ pixely = BLI_rctf_size_y(&v2d->cur) / BLI_rcti_size_y(&v2d->mask);
if (pixely <= 0) return; /* can happen when the view is split/resized */
@@ -530,7 +534,7 @@ static void draw_seq_text(View2D *v2d, Sequence *seq, float x1, float x2, float
/* note, all strings should include 'name' */
if (name[0] == '\0')
- name = give_seqname(seq);
+ name = BKE_sequence_give_name(seq);
if (seq->type == SEQ_TYPE_META || seq->type == SEQ_TYPE_ADJUSTMENT) {
BLI_snprintf(str, sizeof(str), "%s | %d", name, seq->len);
@@ -685,7 +689,7 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline
const float handsize_clamped = draw_seq_handle_size_get_clamped(seq, pixelx);
/* we need to know if this is a single image/color or not for drawing */
- is_single_image = (char)seq_single_check(seq);
+ is_single_image = (char)BKE_sequence_single_check(seq);
/* body */
x1 = (seq->startstill) ? seq->start : seq->startdisp;
@@ -700,7 +704,9 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline
/* draw the main strip body */
if (is_single_image) { /* single image */
- draw_shadedstrip(seq, background_col, seq_tx_get_final_left(seq, 0), y1, seq_tx_get_final_right(seq, 0), y2);
+ draw_shadedstrip(seq, background_col,
+ BKE_sequence_tx_get_final_left(seq, 0), y1,
+ BKE_sequence_tx_get_final_right(seq, 0), y2);
}
else { /* normal operation */
draw_shadedstrip(seq, background_col, x1, y1, x2, y2);
@@ -719,7 +725,7 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline
/* draw sound wave */
if (seq->type == SEQ_TYPE_SOUND_RAM) {
- drawseqwave(scene, seq, x1, y1, x2, y2, (ar->v2d.cur.xmax - ar->v2d.cur.xmin) / ar->winx);
+ drawseqwave(scene, seq, x1, y1, x2, y2, BLI_rctf_size_x(&ar->v2d.cur) / ar->winx);
}
/* draw lock */
@@ -741,6 +747,17 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline
glDisable(GL_BLEND);
}
+ if (!BKE_sequence_is_valid_check(seq)) {
+ glEnable(GL_POLYGON_STIPPLE);
+
+ /* panic! */
+ glColor4ub(255, 0, 0, 255);
+ glPolygonStipple(stipple_diag_stripes_pos);
+ glRectf(x1, y1, x2, y2);
+
+ glDisable(GL_POLYGON_STIPPLE);
+ }
+
get_seq_color3ubv(scene, seq, col);
if (G.moving && (seq->flag & SELECT)) {
if (seq->flag & SEQ_OVERLAP) {
@@ -798,20 +815,103 @@ static void UNUSED_FUNCTION(set_special_seq_update) (int val)
else special_seq_update = NULL;
}
-void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq, int cfra, int frame_ofs)
+ImBuf *sequencer_ibuf_get(struct Main *bmain, Scene *scene, SpaceSeq *sseq, int cfra, int frame_ofs)
+{
+ SeqRenderData context;
+ ImBuf *ibuf;
+ int rectx, recty;
+ float render_size = 0.0;
+ float proxy_size = 100.0;
+
+ render_size = sseq->render_size;
+ if (render_size == 0) {
+ render_size = scene->r.size;
+ }
+ else {
+ proxy_size = render_size;
+ }
+
+ if (render_size < 0) {
+ return NULL;
+ }
+
+ rectx = (render_size * (float)scene->r.xsch) / 100.0f + 0.5f;
+ recty = (render_size * (float)scene->r.ysch) / 100.0f + 0.5f;
+
+ context = BKE_sequencer_new_render_data(bmain, scene, rectx, recty, proxy_size);
+
+ if (special_seq_update)
+ ibuf = BKE_sequencer_give_ibuf_direct(context, cfra + frame_ofs, special_seq_update);
+ else if (!U.prefetchframes) // XXX || (G.f & G_PLAYANIM) == 0) {
+ ibuf = BKE_sequencer_give_ibuf(context, cfra + frame_ofs, sseq->chanshown);
+ else
+ ibuf = BKE_sequencer_give_ibuf_threaded(context, cfra + frame_ofs, sseq->chanshown);
+
+ return ibuf;
+}
+
+static void sequencer_check_scopes(SequencerScopes *scopes, ImBuf *ibuf)
+{
+ if (scopes->reference_ibuf != ibuf) {
+ if (scopes->zebra_ibuf) {
+ IMB_freeImBuf(scopes->zebra_ibuf);
+ scopes->zebra_ibuf = NULL;
+ }
+
+ if (scopes->waveform_ibuf) {
+ IMB_freeImBuf(scopes->waveform_ibuf);
+ scopes->waveform_ibuf = NULL;
+ }
+
+ if (scopes->sep_waveform_ibuf) {
+ IMB_freeImBuf(scopes->sep_waveform_ibuf);
+ scopes->sep_waveform_ibuf = NULL;
+ }
+
+ if (scopes->vector_ibuf) {
+ IMB_freeImBuf(scopes->vector_ibuf);
+ scopes->vector_ibuf = NULL;
+ }
+
+ if (scopes->histogram_ibuf) {
+ IMB_freeImBuf(scopes->histogram_ibuf);
+ scopes->histogram_ibuf = NULL;
+ }
+ }
+}
+
+static ImBuf *sequencer_make_scope(Scene *scene, ImBuf *ibuf, ImBuf *(*make_scope_cb) (ImBuf *ibuf))
+{
+ ImBuf *display_ibuf = IMB_dupImBuf(ibuf);
+ ImBuf *scope;
+
+ if (display_ibuf->rect_float) {
+ IMB_colormanagement_imbuf_make_display_space(display_ibuf, &scene->view_settings,
+ &scene->display_settings);
+ }
+
+ scope = make_scope_cb(display_ibuf);
+
+ IMB_freeImBuf(display_ibuf);
+
+ return scope;
+}
+
+void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq, int cfra, int frame_ofs, int draw_overlay)
{
struct Main *bmain = CTX_data_main(C);
struct ImBuf *ibuf = NULL;
struct ImBuf *scope = NULL;
struct View2D *v2d = &ar->v2d;
- int rectx, recty;
+ /* int rectx, recty; */ /* UNUSED */
float viewrectx, viewrecty;
float render_size = 0.0;
float proxy_size = 100.0;
float col[3];
GLuint texid;
GLuint last_texid;
- SeqRenderData context;
+ unsigned char *display_buffer;
+ void *cache_handle = NULL;
render_size = sseq->render_size;
if (render_size == 0) {
@@ -827,8 +927,8 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
viewrectx = (render_size * (float)scene->r.xsch) / 100.0f;
viewrecty = (render_size * (float)scene->r.ysch) / 100.0f;
- rectx = viewrectx + 0.5f;
- recty = viewrecty + 0.5f;
+ /* rectx = viewrectx + 0.5f; */ /* UNUSED */
+ /* recty = viewrecty + 0.5f; */ /* UNUSED */
if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
viewrectx *= scene->r.xasp / scene->r.yasp;
@@ -836,7 +936,7 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
viewrecty /= proxy_size / 100.0f;
}
- if (frame_ofs == 0) {
+ if (!draw_overlay || sseq->overlay_type == SEQ_DRAW_OVERLAY_REFERENCE) {
UI_GetThemeColor3fv(TH_SEQ_PREVIEW, col);
glClearColor(col[0], col[1], col[2], 0.0);
glClear(GL_COLOR_BUFFER_BIT);
@@ -849,55 +949,77 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
UI_view2d_curRect_validate(v2d);
/* only initialize the preview if a render is in progress */
- if (G.rendering)
+ if (G.is_rendering)
return;
- context = seq_new_render_data(bmain, scene, rectx, recty, proxy_size);
-
- if (special_seq_update)
- ibuf = give_ibuf_seq_direct(context, cfra + frame_ofs, special_seq_update);
- else if (!U.prefetchframes) // XXX || (G.f & G_PLAYANIM) == 0) {
- ibuf = give_ibuf_seq(context, cfra + frame_ofs, sseq->chanshown);
- else
- ibuf = give_ibuf_seq_threaded(context, cfra + frame_ofs, sseq->chanshown);
+ ibuf = sequencer_ibuf_get(bmain, scene, sseq, cfra, frame_ofs);
if (ibuf == NULL)
return;
if (ibuf->rect == NULL && ibuf->rect_float == NULL)
return;
-
- switch (sseq->mainb) {
- case SEQ_DRAW_IMG_IMBUF:
- if (sseq->zebra != 0) {
- scope = make_zebra_view_from_ibuf(ibuf, sseq->zebra);
- }
- break;
- case SEQ_DRAW_IMG_WAVEFORM:
- if ((sseq->flag & SEQ_DRAW_COLOR_SEPARATED) != 0) {
- scope = make_sep_waveform_view_from_ibuf(ibuf);
- }
- else {
- scope = make_waveform_view_from_ibuf(ibuf);
- }
- break;
- case SEQ_DRAW_IMG_VECTORSCOPE:
- scope = make_vectorscope_view_from_ibuf(ibuf);
- break;
- case SEQ_DRAW_IMG_HISTOGRAM:
- scope = make_histogram_view_from_ibuf(ibuf);
- break;
+
+ if (sseq->mainb != SEQ_DRAW_IMG_IMBUF || sseq->zebra != 0) {
+ SequencerScopes *scopes = &sseq->scopes;
+
+ sequencer_check_scopes(scopes, ibuf);
+
+ switch (sseq->mainb) {
+ case SEQ_DRAW_IMG_IMBUF:
+ if (!scopes->zebra_ibuf) {
+ ImBuf *display_ibuf = IMB_dupImBuf(ibuf);
+
+ if (display_ibuf->rect_float) {
+ IMB_colormanagement_imbuf_make_display_space(display_ibuf, &scene->view_settings,
+ &scene->display_settings);
+ }
+ scopes->zebra_ibuf = make_zebra_view_from_ibuf(display_ibuf, sseq->zebra);
+ IMB_freeImBuf(display_ibuf);
+ }
+ scope = scopes->zebra_ibuf;
+ break;
+ case SEQ_DRAW_IMG_WAVEFORM:
+ if ((sseq->flag & SEQ_DRAW_COLOR_SEPARATED) != 0) {
+ if (!scopes->sep_waveform_ibuf)
+ scopes->sep_waveform_ibuf = sequencer_make_scope(scene, ibuf, make_sep_waveform_view_from_ibuf);
+ scope = scopes->sep_waveform_ibuf;
+ }
+ else {
+ if (!scopes->waveform_ibuf)
+ scopes->waveform_ibuf = sequencer_make_scope(scene, ibuf, make_waveform_view_from_ibuf);
+ scope = scopes->waveform_ibuf;
+ }
+ break;
+ case SEQ_DRAW_IMG_VECTORSCOPE:
+ if (!scopes->vector_ibuf)
+ scopes->vector_ibuf = sequencer_make_scope(scene, ibuf, make_vectorscope_view_from_ibuf);
+ scope = scopes->vector_ibuf;
+ break;
+ case SEQ_DRAW_IMG_HISTOGRAM:
+ if (!scopes->histogram_ibuf)
+ scopes->histogram_ibuf = sequencer_make_scope(scene, ibuf, make_histogram_view_from_ibuf);
+ scope = scopes->histogram_ibuf;
+ break;
+ }
+
+ scopes->reference_ibuf = ibuf;
}
if (scope) {
IMB_freeImBuf(ibuf);
ibuf = scope;
- }
- if (ibuf->rect_float && ibuf->rect == NULL) {
- IMB_rect_from_float(ibuf);
+ if (ibuf->rect_float && ibuf->rect == NULL) {
+ IMB_rect_from_float(ibuf);
+ }
+
+ display_buffer = (unsigned char *)ibuf->rect;
}
-
+ else {
+ display_buffer = IMB_display_buffer_acquire_ctx(C, ibuf, &cache_handle);
+ }
+
/* setting up the view - actual drawing starts here */
UI_view2d_view_ortho(v2d);
@@ -910,20 +1032,28 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, ibuf->x, ibuf->y, 0, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, ibuf->x, ibuf->y, 0, GL_RGBA, GL_UNSIGNED_BYTE, display_buffer);
glBegin(GL_QUADS);
- if (frame_ofs) {
- rctf tot_clip;
- tot_clip.xmin = v2d->tot.xmin + (ABS(v2d->tot.xmax - v2d->tot.xmin) * scene->ed->over_border.xmin);
- tot_clip.ymin = v2d->tot.ymin + (ABS(v2d->tot.ymax - v2d->tot.ymin) * scene->ed->over_border.ymin);
- tot_clip.xmax = v2d->tot.xmin + (ABS(v2d->tot.xmax - v2d->tot.xmin) * scene->ed->over_border.xmax);
- tot_clip.ymax = v2d->tot.ymin + (ABS(v2d->tot.ymax - v2d->tot.ymin) * scene->ed->over_border.ymax);
-
- glTexCoord2f(scene->ed->over_border.xmin, scene->ed->over_border.ymin); glVertex2f(tot_clip.xmin, tot_clip.ymin);
- glTexCoord2f(scene->ed->over_border.xmin, scene->ed->over_border.ymax); glVertex2f(tot_clip.xmin, tot_clip.ymax);
- glTexCoord2f(scene->ed->over_border.xmax, scene->ed->over_border.ymax); glVertex2f(tot_clip.xmax, tot_clip.ymax);
- glTexCoord2f(scene->ed->over_border.xmax, scene->ed->over_border.ymin); glVertex2f(tot_clip.xmax, tot_clip.ymin);
+ if (draw_overlay) {
+ if (sseq->overlay_type == SEQ_DRAW_OVERLAY_RECT) {
+ rctf tot_clip;
+ tot_clip.xmin = v2d->tot.xmin + (fabsf(BLI_rctf_size_x(&v2d->tot)) * scene->ed->over_border.xmin);
+ tot_clip.ymin = v2d->tot.ymin + (fabsf(BLI_rctf_size_y(&v2d->tot)) * scene->ed->over_border.ymin);
+ tot_clip.xmax = v2d->tot.xmin + (fabsf(BLI_rctf_size_x(&v2d->tot)) * scene->ed->over_border.xmax);
+ tot_clip.ymax = v2d->tot.ymin + (fabsf(BLI_rctf_size_y(&v2d->tot)) * scene->ed->over_border.ymax);
+
+ glTexCoord2f(scene->ed->over_border.xmin, scene->ed->over_border.ymin); glVertex2f(tot_clip.xmin, tot_clip.ymin);
+ glTexCoord2f(scene->ed->over_border.xmin, scene->ed->over_border.ymax); glVertex2f(tot_clip.xmin, tot_clip.ymax);
+ glTexCoord2f(scene->ed->over_border.xmax, scene->ed->over_border.ymax); glVertex2f(tot_clip.xmax, tot_clip.ymax);
+ glTexCoord2f(scene->ed->over_border.xmax, scene->ed->over_border.ymin); glVertex2f(tot_clip.xmax, tot_clip.ymin);
+ }
+ else if (sseq->overlay_type == SEQ_DRAW_OVERLAY_REFERENCE) {
+ glTexCoord2f(0.0f, 0.0f); glVertex2f(v2d->tot.xmin, v2d->tot.ymin);
+ glTexCoord2f(0.0f, 1.0f); glVertex2f(v2d->tot.xmin, v2d->tot.ymax);
+ glTexCoord2f(1.0f, 1.0f); glVertex2f(v2d->tot.xmax, v2d->tot.ymax);
+ glTexCoord2f(1.0f, 0.0f); glVertex2f(v2d->tot.xmax, v2d->tot.ymin);
+ }
}
else {
glTexCoord2f(0.0f, 0.0f); glVertex2f(v2d->tot.xmin, v2d->tot.ymin);
@@ -982,7 +1112,8 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
/* draw grease-pencil (image aligned) */
draw_gpencil_2dimage(C);
- IMB_freeImBuf(ibuf);
+ if (!scope)
+ IMB_freeImBuf(ibuf);
/* ortho at pixel level */
UI_view2d_view_restore(C);
@@ -990,58 +1121,35 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
/* draw grease-pencil (screen aligned) */
draw_gpencil_view2d(C, 0);
- //if (sc->mode == SC_MODE_MASKEDIT) {
- if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
- Sequence *seq_act = BKE_sequencer_active_get(scene);
-
- if (seq_act && seq_act->type == SEQ_TYPE_MASK && seq_act->mask) {
- int x, y;
- int width, height;
- float zoomx, zoomy;
-
- /* frame image */
- float maxdim;
- float xofs, yofs;
-
- /* find window pixel coordinates of origin */
- UI_view2d_to_region_no_clip(&ar->v2d, 0.0f, 0.0f, &x, &y);
-
- width = v2d->tot.xmax - v2d->tot.xmin;
- height = v2d->tot.ymax - v2d->tot.ymin;
-
- zoomx = (float)(ar->winrct.xmax - ar->winrct.xmin + 1) / (float)((ar->v2d.cur.xmax - ar->v2d.cur.xmin));
- zoomy = (float)(ar->winrct.ymax - ar->winrct.ymin + 1) / (float)((ar->v2d.cur.ymax - ar->v2d.cur.ymin));
-
- x += v2d->tot.xmin * zoomx;
- y += v2d->tot.ymin * zoomy;
- /* frame the image */
- maxdim = maxf(width, height);
- if (width == height) {
- xofs = yofs = 0;
- }
- else if (width < height) {
- xofs = ((height - width) / -2.0f) * zoomx;
- yofs = 0.0f;
- }
- else { /* (width > height) */
- xofs = 0.0f;
- yofs = ((width - height) / -2.0f) * zoomy;
- }
- /* apply transformation so mask editing tools will assume drawing from the origin in normalized space */
- glPushMatrix();
- glTranslatef(x + xofs, y + yofs, 0);
- glScalef(maxdim * zoomx, maxdim * zoomy, 0);
+ /* NOTE: sequencer mask editing isnt finished, the draw code is working but editing not,
+ * for now just disable drawing since the strip frame will likely be offset */
- ED_mask_draw((bContext *)C, 0, 0); // sc->mask_draw_flag, sc->mask_draw_type
-
- ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST_VIEW);
+ //if (sc->mode == SC_MODE_MASKEDIT) {
+ if (0 && sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
+ Mask *mask = BKE_sequencer_mask_get(scene);
- glPopMatrix();
+ if (mask) {
+ int width, height;
+ float aspx = 1.0f, aspy = 1.0f;
+ // ED_mask_get_size(C, &width, &height);
+
+ //Scene *scene = CTX_data_scene(C);
+ width = (scene->r.size * scene->r.xsch) / 100;
+ height = (scene->r.size * scene->r.ysch) / 100;
+
+ ED_mask_draw_region(mask, ar,
+ 0, 0, /* TODO */
+ width, height,
+ aspx, aspy,
+ FALSE, TRUE,
+ NULL, C);
}
}
+ if (cache_handle)
+ IMB_display_buffer_release(cache_handle);
}
#if 0
@@ -1081,7 +1189,7 @@ static void draw_seq_backdrop(View2D *v2d)
glRectf(v2d->cur.xmin, -1.0, v2d->cur.xmax, 1.0);
/* Alternating horizontal stripes */
- i = MAX2(1, ((int)v2d->cur.ymin) - 1);
+ i = maxi(1, ((int)v2d->cur.ymin) - 1);
glBegin(GL_QUADS);
while (i < v2d->cur.ymax) {
@@ -1100,7 +1208,7 @@ static void draw_seq_backdrop(View2D *v2d)
glEnd();
/* Darker lines separating the horizontal bands */
- i = MAX2(1, ((int)v2d->cur.ymin) - 1);
+ i = maxi(1, ((int)v2d->cur.ymin) - 1);
UI_ThemeColor(TH_GRID);
glBegin(GL_LINES);
@@ -1120,7 +1228,7 @@ static void draw_seq_strips(const bContext *C, Editing *ed, ARegion *ar)
View2D *v2d = &ar->v2d;
Sequence *last_seq = BKE_sequencer_active_get(scene);
int sel = 0, j;
- float pixelx = (v2d->cur.xmax - v2d->cur.xmin) / (v2d->mask.xmax - v2d->mask.xmin);
+ float pixelx = BLI_rctf_size_x(&v2d->cur) / BLI_rcti_size_x(&v2d->mask);
/* loop through twice, first unselected, then selected */
for (j = 0; j < 2; j++) {
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index 7ed5c77ed1f..459a8d54d12 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -151,7 +151,7 @@ static void proxy_startjob(void *pjv, short *stop, short *do_update, float *prog
for (link = pj->queue.first; link; link = link->next) {
struct SeqIndexBuildContext *context = link->data;
- seq_proxy_rebuild(context, stop, do_update, progress);
+ BKE_sequencer_proxy_rebuild(context, stop, do_update, progress);
}
if (*stop) {
@@ -167,17 +167,17 @@ static void proxy_endjob(void *pjv)
LinkData *link;
for (link = pj->queue.first; link; link = link->next) {
- seq_proxy_rebuild_finish(link->data, pj->stop);
+ BKE_sequencer_proxy_rebuild_finish(link->data, pj->stop);
}
- free_imbuf_seq(pj->scene, &ed->seqbase, FALSE, FALSE);
+ BKE_sequencer_free_imbuf(pj->scene, &ed->seqbase, FALSE);
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, pj->scene);
}
static void seq_proxy_build_job(const bContext *C)
{
- wmJob *steve;
+ wmJob *wm_job;
ProxyJob *pj;
Scene *scene = CTX_data_scene(C);
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
@@ -186,9 +186,10 @@ static void seq_proxy_build_job(const bContext *C)
LinkData *link;
Sequence *seq;
- steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Building Proxies", WM_JOB_PROGRESS);
+ wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Building Proxies",
+ WM_JOB_PROGRESS, WM_JOB_TYPE_SEQ_BUILD_PROXY);
- pj = WM_jobs_get_customdata(steve);
+ pj = WM_jobs_customdata_get(wm_job);
if (!pj) {
pj = MEM_callocN(sizeof(ProxyJob), "proxy rebuild job");
@@ -196,24 +197,24 @@ static void seq_proxy_build_job(const bContext *C)
pj->scene = scene;
pj->main = CTX_data_main(C);
- WM_jobs_customdata(steve, pj, proxy_freejob);
- WM_jobs_timer(steve, 0.1, NC_SCENE | ND_SEQUENCER, NC_SCENE | ND_SEQUENCER);
- WM_jobs_callbacks(steve, proxy_startjob, NULL, NULL, proxy_endjob);
+ WM_jobs_customdata_set(wm_job, pj, proxy_freejob);
+ WM_jobs_timer(wm_job, 0.1, NC_SCENE | ND_SEQUENCER, NC_SCENE | ND_SEQUENCER);
+ WM_jobs_callbacks(wm_job, proxy_startjob, NULL, NULL, proxy_endjob);
}
SEQP_BEGIN (ed, seq)
{
if ((seq->flag & SELECT)) {
- context = seq_proxy_rebuild_context(pj->main, pj->scene, seq);
+ context = BKE_sequencer_proxy_rebuild_context(pj->main, pj->scene, seq);
link = BLI_genericNodeN(context);
BLI_addtail(&pj->queue, link);
}
}
SEQ_END
- if (!WM_jobs_is_running(steve)) {
- G.afbreek = 0;
- WM_jobs_start(CTX_wm_manager(C), steve);
+ if (!WM_jobs_is_running(wm_job)) {
+ G.is_break = FALSE;
+ WM_jobs_start(CTX_wm_manager(C), wm_job);
}
ED_area_tag_redraw(CTX_wm_area(C));
@@ -371,7 +372,7 @@ Sequence *find_nearest_seq(Scene *scene, View2D *v2d, int *hand, const int mval[
if (ed == NULL) return NULL;
- pixelx = (v2d->cur.xmax - v2d->cur.xmin) / (v2d->mask.xmax - v2d->mask.xmin);
+ pixelx = BLI_rctf_size_x(&v2d->cur) / BLI_rcti_size_x(&v2d->mask);
UI_view2d_region_to_view(v2d, mval[0], mval[1], &x, &y);
@@ -380,10 +381,10 @@ Sequence *find_nearest_seq(Scene *scene, View2D *v2d, int *hand, const int mval[
while (seq) {
if (seq->machine == (int)y) {
/* check for both normal strips, and strips that have been flipped horizontally */
- if ( ((seq->startdisp < seq->enddisp) && (seq->startdisp <= x && seq->enddisp >= x)) ||
- ((seq->startdisp > seq->enddisp) && (seq->startdisp >= x && seq->enddisp <= x)) )
+ if (((seq->startdisp < seq->enddisp) && (seq->startdisp <= x && seq->enddisp >= x)) ||
+ ((seq->startdisp > seq->enddisp) && (seq->startdisp >= x && seq->enddisp <= x)) )
{
- if (seq_tx_test(seq)) {
+ if (BKE_sequence_tx_test(seq)) {
/* clamp handles to defined size in pixel space */
@@ -466,6 +467,33 @@ void recurs_sel_seq(Sequence *seqm)
}
}
+int ED_space_sequencer_maskedit_mask_poll(bContext *C)
+{
+ /* in this case both funcs are the same, for clip editor not */
+ return ED_space_sequencer_maskedit_poll(C);
+}
+
+int ED_space_sequencer_check_show_maskedit(SpaceSeq *sseq, Scene *scene)
+{
+ if (sseq && sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
+ return (BKE_sequencer_mask_get(scene) != NULL);
+ }
+
+ return FALSE;
+}
+
+int ED_space_sequencer_maskedit_poll(bContext *C)
+{
+ SpaceSeq *sseq = CTX_wm_space_seq(C);
+
+ if (sseq) {
+ Scene *scene = CTX_data_scene(C);
+ return ED_space_sequencer_check_show_maskedit(sseq, scene);
+ }
+
+ return FALSE;
+}
+
int seq_effect_find_selected(Scene *scene, Sequence *activeseq, int type, Sequence **selseq1, Sequence **selseq2, Sequence **selseq3, const char **error_str)
{
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
@@ -478,7 +506,7 @@ int seq_effect_find_selected(Scene *scene, Sequence *activeseq, int type, Sequen
for (seq = ed->seqbasep->first; seq; seq = seq->next) {
if (seq->flag & SELECT) {
- if (seq->type == SEQ_TYPE_SOUND_RAM && get_sequence_effect_num_inputs(type) != 0) {
+ if (seq->type == SEQ_TYPE_SOUND_RAM && BKE_sequence_effect_get_num_inputs(type) != 0) {
*error_str = "Can't apply effects to audio sequence strips";
return 0;
}
@@ -503,7 +531,7 @@ int seq_effect_find_selected(Scene *scene, Sequence *activeseq, int type, Sequen
}
- switch (get_sequence_effect_num_inputs(type)) {
+ switch (BKE_sequence_effect_get_num_inputs(type)) {
case 0:
*selseq1 = *selseq2 = *selseq3 = NULL;
return 1; /* succsess */
@@ -551,13 +579,15 @@ static Sequence *del_seq_find_replace_recurs(Scene *scene, Sequence *seq)
seq2 = del_seq_find_replace_recurs(scene, seq->seq2);
seq3 = del_seq_find_replace_recurs(scene, seq->seq3);
- if (seq1 == seq->seq1 && seq2 == seq->seq2 && seq3 == seq->seq3) ;
+ if (seq1 == seq->seq1 && seq2 == seq->seq2 && seq3 == seq->seq3) {
+ /* pass */
+ }
else if (seq1 || seq2 || seq3) {
seq->seq1 = (seq1) ? seq1 : (seq2) ? seq2 : seq3;
seq->seq2 = (seq2) ? seq2 : (seq1) ? seq1 : seq3;
seq->seq3 = (seq3) ? seq3 : (seq1) ? seq1 : seq2;
- update_changed_seq_and_deps(scene, seq, 1, 1);
+ BKE_sequencer_update_changed_seq_and_deps(scene, seq, 1, 1);
}
else
seq->flag |= SELECT; /* mark for delete */
@@ -585,7 +615,7 @@ static void recurs_del_seq_flag(Scene *scene, ListBase *lb, short flag, short de
BLI_remlink(lb, seq);
if (seq == last_seq) BKE_sequencer_active_set(scene, NULL);
if (seq->type == SEQ_TYPE_META) recurs_del_seq_flag(scene, &seq->seqbase, flag, 1);
- seq_free_sequence(scene, seq);
+ BKE_sequence_free(scene, seq);
}
seq = seqn;
}
@@ -642,12 +672,12 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence *seq, int cutframe)
}
}
- reload_sequence_new_file(scene, seq, FALSE);
- calc_sequence(scene, seq);
+ BKE_sequence_reload_new_file(scene, seq, FALSE);
+ BKE_sequence_calc(scene, seq);
if (!skip_dup) {
/* Duplicate AFTER the first change */
- seqn = seq_dupli_recursive(scene, NULL, seq, SEQ_DUPE_UNIQUE_NAME | SEQ_DUPE_ANIM);
+ seqn = BKE_sequence_dupli_recursive(scene, NULL, seq, SEQ_DUPE_UNIQUE_NAME | SEQ_DUPE_ANIM);
}
if (seqn) {
@@ -682,8 +712,8 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence *seq, int cutframe)
seqn->startstill = 0;
}
- reload_sequence_new_file(scene, seqn, FALSE);
- calc_sequence(scene, seqn);
+ BKE_sequence_reload_new_file(scene, seqn, FALSE);
+ BKE_sequence_calc(scene, seqn);
}
return seqn;
}
@@ -736,11 +766,11 @@ static Sequence *cut_seq_soft(Scene *scene, Sequence *seq, int cutframe)
}
}
- calc_sequence(scene, seq);
+ BKE_sequence_calc(scene, seq);
if (!skip_dup) {
/* Duplicate AFTER the first change */
- seqn = seq_dupli_recursive(scene, NULL, seq, SEQ_DUPE_UNIQUE_NAME | SEQ_DUPE_ANIM);
+ seqn = BKE_sequence_dupli_recursive(scene, NULL, seq, SEQ_DUPE_UNIQUE_NAME | SEQ_DUPE_ANIM);
}
if (seqn) {
@@ -771,7 +801,7 @@ static Sequence *cut_seq_soft(Scene *scene, Sequence *seq, int cutframe)
seqn->startstill = 0;
}
- calc_sequence(scene, seqn);
+ BKE_sequence_calc(scene, seqn);
}
return seqn;
}
@@ -829,7 +859,7 @@ static int insert_gap(Scene *scene, int gap, int cfra)
{
if (seq->startdisp >= cfra) {
seq->start += gap;
- calc_sequence(scene, seq);
+ BKE_sequence_calc(scene, seq);
done = TRUE;
}
}
@@ -947,11 +977,11 @@ static void UNUSED_FUNCTION(no_gaps) (Scene * scene)
for (cfra = CFRA; cfra <= EFRA; cfra++) {
if (first == 0) {
- if (evaluate_seq_frame(scene, cfra) ) first = 1;
+ if (BKE_sequencer_evaluate_frame(scene, cfra) ) first = 1;
}
else {
done = TRUE;
- while (evaluate_seq_frame(scene, cfra) == 0) {
+ while (BKE_sequencer_evaluate_frame(scene, cfra) == 0) {
done = insert_gap(scene, -1, cfra);
if (done == 0) break;
}
@@ -1022,24 +1052,24 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op)
/* also check metas */
for (seq = ed->seqbasep->first; seq; seq = seq->next) {
if (seq->flag & SELECT && !(seq->depth == 0 && seq->flag & SEQ_LOCK) &&
- seq_tx_test(seq))
+ BKE_sequence_tx_test(seq))
{
if ((seq->flag & (SEQ_LEFTSEL + SEQ_RIGHTSEL)) == 0) {
/* simple but no anim update */
/* seq->start= snap_frame-seq->startofs+seq->startstill; */
- seq_translate(scene, seq, (snap_frame - seq->startofs + seq->startstill) - seq->start);
+ BKE_sequence_translate(scene, seq, (snap_frame - seq->startofs + seq->startstill) - seq->start);
}
else {
if (seq->flag & SEQ_LEFTSEL) {
- seq_tx_set_final_left(seq, snap_frame);
+ BKE_sequence_tx_set_final_left(seq, snap_frame);
}
else { /* SEQ_RIGHTSEL */
- seq_tx_set_final_right(seq, snap_frame);
+ BKE_sequence_tx_set_final_right(seq, snap_frame);
}
- seq_tx_handle_xlimits(seq, seq->flag & SEQ_LEFTSEL, seq->flag & SEQ_RIGHTSEL);
+ BKE_sequence_tx_handle_xlimits(seq, seq->flag & SEQ_LEFTSEL, seq->flag & SEQ_RIGHTSEL);
}
- calc_sequence(scene, seq);
+ BKE_sequence_calc(scene, seq);
}
}
@@ -1048,17 +1078,17 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op)
for (seq = ed->seqbasep->first; seq; seq = seq->next) {
if (seq->flag & SELECT && !(seq->depth == 0 && seq->flag & SEQ_LOCK)) {
seq->flag &= ~SEQ_OVERLAP;
- if (seq_test_overlap(ed->seqbasep, seq) ) {
- shuffle_seq(ed->seqbasep, seq, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, seq) ) {
+ BKE_sequence_base_shuffle(ed->seqbasep, seq, scene);
}
}
else if (seq->type & SEQ_TYPE_EFFECT) {
if (seq->seq1 && (seq->seq1->flag & SELECT))
- calc_sequence(scene, seq);
+ BKE_sequence_calc(scene, seq);
else if (seq->seq2 && (seq->seq2->flag & SELECT))
- calc_sequence(scene, seq);
+ BKE_sequence_calc(scene, seq);
else if (seq->seq3 && (seq->seq3->flag & SELECT))
- calc_sequence(scene, seq);
+ BKE_sequence_calc(scene, seq);
}
}
@@ -1113,17 +1143,21 @@ static int sequencer_mute_exec(bContext *C, wmOperator *op)
for (seq = ed->seqbasep->first; seq; seq = seq->next) {
if ((seq->flag & SEQ_LOCK) == 0) {
if (selected) { /* mute unselected */
- if (seq->flag & SELECT)
+ if (seq->flag & SELECT) {
seq->flag |= SEQ_MUTE;
+ BKE_sequence_invalidate_dependent(scene, seq);
+ }
}
else {
- if ((seq->flag & SELECT) == 0)
+ if ((seq->flag & SELECT) == 0) {
seq->flag |= SEQ_MUTE;
+ BKE_sequence_invalidate_dependent(scene, seq);
+ }
}
}
}
- seq_update_muting(ed);
+ BKE_sequencer_update_muting(ed);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
@@ -1160,17 +1194,21 @@ static int sequencer_unmute_exec(bContext *C, wmOperator *op)
for (seq = ed->seqbasep->first; seq; seq = seq->next) {
if ((seq->flag & SEQ_LOCK) == 0) {
if (selected) { /* unmute unselected */
- if (seq->flag & SELECT)
+ if (seq->flag & SELECT) {
seq->flag &= ~SEQ_MUTE;
+ BKE_sequence_invalidate_dependent(scene, seq);
+ }
}
else {
- if ((seq->flag & SELECT) == 0)
+ if ((seq->flag & SELECT) == 0) {
seq->flag &= ~SEQ_MUTE;
+ BKE_sequence_invalidate_dependent(scene, seq);
+ }
}
}
}
- seq_update_muting(ed);
+ BKE_sequencer_update_muting(ed);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
@@ -1270,12 +1308,12 @@ static int sequencer_reload_exec(bContext *C, wmOperator *op)
for (seq = ed->seqbasep->first; seq; seq = seq->next) {
if (seq->flag & SELECT) {
- update_changed_seq_and_deps(scene, seq, 0, 1);
- reload_sequence_new_file(scene, seq, !adjust_length);
+ BKE_sequencer_update_changed_seq_and_deps(scene, seq, 0, 1);
+ BKE_sequence_reload_new_file(scene, seq, !adjust_length);
if (adjust_length) {
- if (seq_test_overlap(ed->seqbasep, seq))
- shuffle_seq(ed->seqbasep, seq, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, seq))
+ BKE_sequence_base_shuffle(ed->seqbasep, seq, scene);
}
}
}
@@ -1312,7 +1350,7 @@ static int sequencer_refresh_all_exec(bContext *C, wmOperator *UNUSED(op))
Scene *scene = CTX_data_scene(C);
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
- free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE);
+ BKE_sequencer_free_imbuf(scene, &ed->seqbase, FALSE);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -1354,7 +1392,7 @@ static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op)
last_seq->seq2 = seq2;
last_seq->seq3 = seq3;
- update_changed_seq_and_deps(scene, last_seq, 1, 1);
+ BKE_sequencer_update_changed_seq_and_deps(scene, last_seq, 1, 1);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -1406,7 +1444,7 @@ static int sequencer_swap_inputs_exec(bContext *C, wmOperator *op)
last_seq->seq1 = last_seq->seq2;
last_seq->seq2 = seq;
- update_changed_seq_and_deps(scene, last_seq, 1, 1);
+ BKE_sequencer_update_changed_seq_and_deps(scene, last_seq, 1, 1);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -1537,8 +1575,8 @@ static int apply_unique_name_cb(Sequence *seq, void *arg_pt)
char name[sizeof(seq->name) - 2];
strcpy(name, seq->name + 2);
- seqbase_unique_name_recursive(&scene->ed->seqbase, seq);
- seq_dupe_animdata(scene, name, seq->name + 2);
+ BKE_sequence_base_unique_name_recursive(&scene->ed->seqbase, seq);
+ BKE_sequencer_dupe_animdata(scene, name, seq->name + 2);
return 1;
}
@@ -1553,7 +1591,7 @@ static int sequencer_add_duplicate_exec(bContext *C, wmOperator *UNUSED(op))
if (ed == NULL)
return OPERATOR_CANCELLED;
- seqbase_dupli_recursive(scene, NULL, &nseqbase, ed->seqbasep, SEQ_DUPE_CONTEXT);
+ BKE_sequence_base_dupli_recursive(scene, NULL, &nseqbase, ed->seqbasep, SEQ_DUPE_CONTEXT);
if (nseqbase.first) {
Sequence *seq = nseqbase.first;
@@ -1561,7 +1599,7 @@ static int sequencer_add_duplicate_exec(bContext *C, wmOperator *UNUSED(op))
BLI_movelisttolist(ed->seqbasep, &nseqbase);
for (; seq; seq = seq->next)
- seq_recursive_apply(seq, apply_unique_name_cb, scene);
+ BKE_sequencer_recursive_apply(seq, apply_unique_name_cb, scene);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
@@ -1624,14 +1662,14 @@ static int sequencer_delete_exec(bContext *C, wmOperator *UNUSED(op))
/* updates lengths etc */
seq = ed->seqbasep->first;
while (seq) {
- calc_sequence(scene, seq);
+ BKE_sequence_calc(scene, seq);
seq = seq->next;
}
/* free parent metas */
ms = ed->metastack.last;
while (ms) {
- calc_sequence(scene, ms->parseq);
+ BKE_sequence_calc(scene, ms->parseq);
ms = ms->prev;
}
@@ -1640,6 +1678,20 @@ static int sequencer_delete_exec(bContext *C, wmOperator *UNUSED(op))
return OPERATOR_FINISHED;
}
+static int sequencer_delete_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ ARegion *ar = CTX_wm_region(C);
+
+ if (ar->regiontype == RGN_TYPE_WINDOW) {
+ /* bounding box of 30 pixels is used for markers shortcuts,
+ * prevent conflict with markers shortcurts here
+ */
+ if (event->mval[1] <= 30)
+ return OPERATOR_PASS_THROUGH;
+ }
+
+ return WM_operator_confirm(C, op, event);
+}
void SEQUENCER_OT_delete(wmOperatorType *ot)
{
@@ -1650,7 +1702,7 @@ void SEQUENCER_OT_delete(wmOperatorType *ot)
ot->description = "Erase selected strips from the sequencer";
/* api callbacks */
- ot->invoke = WM_operator_confirm;
+ ot->invoke = sequencer_delete_invoke;
ot->exec = sequencer_delete_exec;
ot->poll = sequencer_edit_poll;
@@ -1676,14 +1728,14 @@ static int sequencer_offset_clear_exec(bContext *C, wmOperator *UNUSED(op))
/* updates lengths etc */
seq = ed->seqbasep->first;
while (seq) {
- calc_sequence(scene, seq);
+ BKE_sequence_calc(scene, seq);
seq = seq->next;
}
for (seq = ed->seqbasep->first; seq; seq = seq->next) {
if ((seq->type & SEQ_TYPE_EFFECT) == 0 && (seq->flag & SELECT)) {
- if (seq_test_overlap(ed->seqbasep, seq)) {
- shuffle_seq(ed->seqbasep, seq, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, seq)) {
+ BKE_sequence_base_shuffle(ed->seqbasep, seq, scene);
}
}
}
@@ -1733,14 +1785,14 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
/* if (seq->ipo) seq->ipo->id.us--; */
/* XXX, remove fcurve and assign to split image strips */
- start_ofs = cfra = seq_tx_get_final_left(seq, 0);
- frame_end = seq_tx_get_final_right(seq, 0);
+ start_ofs = cfra = BKE_sequence_tx_get_final_left(seq, 0);
+ frame_end = BKE_sequence_tx_get_final_right(seq, 0);
while (cfra < frame_end) {
/* new seq */
- se = give_stripelem(seq, cfra);
+ se = BKE_sequencer_give_stripelem(seq, cfra);
- seq_new = seq_dupli_recursive(scene, scene, seq, SEQ_DUPE_UNIQUE_NAME);
+ seq_new = BKE_sequence_dupli_recursive(scene, scene, seq, SEQ_DUPE_UNIQUE_NAME);
BLI_addtail(ed->seqbasep, seq_new);
seq_new->start = start_ofs;
@@ -1755,12 +1807,12 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
/* new stripdata */
se_new = strip_new->stripdata;
BLI_strncpy(se_new->name, se->name, sizeof(se_new->name));
- calc_sequence(scene, seq_new);
+ BKE_sequence_calc(scene, seq_new);
if (step > 1) {
seq_new->flag &= ~SEQ_OVERLAP;
- if (seq_test_overlap(ed->seqbasep, seq_new)) {
- shuffle_seq(ed->seqbasep, seq_new, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, seq_new)) {
+ BKE_sequence_base_shuffle(ed->seqbasep, seq_new, scene);
}
}
@@ -1770,7 +1822,7 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
start_ofs += step;
}
- seq_free_sequence(scene, seq);
+ BKE_sequence_free(scene, seq);
seq = seq->next;
}
else {
@@ -1842,7 +1894,7 @@ static int sequencer_meta_toggle_exec(bContext *C, wmOperator *UNUSED(op))
/* recalc all: the meta can have effects connected to it */
for (seq = ed->seqbasep->first; seq; seq = seq->next)
- calc_sequence(scene, seq);
+ BKE_sequence_calc(scene, seq);
BKE_sequencer_active_set(scene, ms->parseq);
@@ -1853,7 +1905,7 @@ static int sequencer_meta_toggle_exec(bContext *C, wmOperator *UNUSED(op))
}
- seq_update_muting(ed);
+ BKE_sequencer_update_muting(ed);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
return OPERATOR_FINISHED;
@@ -1884,14 +1936,14 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op)
Sequence *seq, *seqm, *next, *last_seq = BKE_sequencer_active_get(scene);
int channel_max = 1;
- if (seqbase_isolated_sel_check(ed->seqbasep) == FALSE) {
+ if (BKE_sequence_base_isolated_sel_check(ed->seqbasep) == FALSE) {
BKE_report(op->reports, RPT_ERROR, "Please select all related strips");
return OPERATOR_CANCELLED;
}
/* remove all selected from main list, and put in meta */
- seqm = alloc_sequence(ed->seqbasep, 1, 1); /* channel number set later */
+ seqm = BKE_sequence_alloc(ed->seqbasep, 1, 1); /* channel number set later */
strcpy(seqm->name + 2, "MetaStrip");
seqm->type = SEQ_TYPE_META;
seqm->flag = SELECT;
@@ -1907,18 +1959,18 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op)
seq = next;
}
seqm->machine = last_seq ? last_seq->machine : channel_max;
- calc_sequence(scene, seqm);
+ BKE_sequence_calc(scene, seqm);
seqm->strip = MEM_callocN(sizeof(Strip), "metastrip");
seqm->strip->us = 1;
BKE_sequencer_active_set(scene, seqm);
- if (seq_test_overlap(ed->seqbasep, seqm) ) shuffle_seq(ed->seqbasep, seqm, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, seqm) ) BKE_sequence_base_shuffle(ed->seqbasep, seqm, scene);
- seq_update_muting(ed);
+ BKE_sequencer_update_muting(ed);
- seqbase_unique_name_recursive(&scene->ed->seqbase, seqm);
+ BKE_sequence_base_unique_name_recursive(&scene->ed->seqbase, seqm);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -1968,7 +2020,7 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator *UNUSED(op))
last_seq->seqbase.last = NULL;
BLI_remlink(ed->seqbasep, last_seq);
- seq_free_sequence(scene, last_seq);
+ BKE_sequence_free(scene, last_seq);
/* emtpy meta strip, delete all effects depending on it */
for (seq = ed->seqbasep->first; seq; seq = seq->next)
@@ -1982,14 +2034,14 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator *UNUSED(op))
for (seq = ed->seqbasep->first; seq; seq = seq->next) {
if (seq->flag & SELECT) {
seq->flag &= ~SEQ_OVERLAP;
- if (seq_test_overlap(ed->seqbasep, seq)) {
- shuffle_seq(ed->seqbasep, seq, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, seq)) {
+ BKE_sequence_base_shuffle(ed->seqbasep, seq, scene);
}
}
}
BKE_sequencer_sort(scene);
- seq_update_muting(ed);
+ BKE_sequencer_update_muting(ed);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -2015,17 +2067,10 @@ void SEQUENCER_OT_meta_separate(wmOperatorType *ot)
/* view_all operator */
static int sequencer_view_all_exec(bContext *C, wmOperator *UNUSED(op))
{
- //Scene *scene= CTX_data_scene(C);
- bScreen *sc = CTX_wm_screen(C);
- ScrArea *area = CTX_wm_area(C);
- //ARegion *ar= CTX_wm_region(C);
+ ARegion *ar = CTX_wm_region(C);
View2D *v2d = UI_view2d_fromcontext(C);
- v2d->cur = v2d->tot;
- UI_view2d_curRect_validate(v2d);
- UI_view2d_sync(sc, area, v2d, V2D_LOCK_COPY);
-
- ED_area_tag_redraw(CTX_wm_area(C));
+ UI_view2d_smooth_view(C, ar, &v2d->tot);
return OPERATOR_FINISHED;
}
@@ -2084,7 +2129,7 @@ static int sequencer_view_all_preview_exec(bContext *C, wmOperator *UNUSED(op))
zoomY = ((float)height) / ((float)imgheight);
sseq->zoom = (zoomX < zoomY) ? zoomX : zoomY;
- sseq->zoom = 1.0f / power_of_2(1 / MIN2(zoomX, zoomY) );
+ sseq->zoom = 1.0f / power_of_2(1 / minf(zoomX, zoomY));
}
else {
sseq->zoom = 1.0f;
@@ -2113,18 +2158,18 @@ void SEQUENCER_OT_view_all_preview(wmOperatorType *ot)
static int sequencer_view_zoom_ratio_exec(bContext *C, wmOperator *op)
{
- RenderData *r = &CTX_data_scene(C)->r;
+ RenderData *rd = &CTX_data_scene(C)->r;
View2D *v2d = UI_view2d_fromcontext(C);
float ratio = RNA_float_get(op->ptr, "ratio");
- float winx = (int)(r->size * r->xsch) / 100;
- float winy = (int)(r->size * r->ysch) / 100;
+ float winx = (int)(rd->size * rd->xsch) / 100;
+ float winy = (int)(rd->size * rd->ysch) / 100;
- float facx = (v2d->mask.xmax - v2d->mask.xmin) / winx;
- float facy = (v2d->mask.ymax - v2d->mask.ymin) / winy;
+ float facx = BLI_rcti_size_x(&v2d->mask) / winx;
+ float facy = BLI_rcti_size_y(&v2d->mask) / winy;
- BLI_resize_rctf(&v2d->cur, (int)(winx * facx * ratio) + 1, (int)(winy * facy * ratio) + 1);
+ BLI_rctf_resize(&v2d->cur, (int)(winx * facx * ratio) + 1, (int)(winy * facy * ratio) + 1);
ED_region_tag_redraw(CTX_wm_region(C));
@@ -2191,10 +2236,10 @@ static int sequencer_view_selected_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene = CTX_data_scene(C);
View2D *v2d = UI_view2d_fromcontext(C);
- ScrArea *area = CTX_wm_area(C);
- bScreen *sc = CTX_wm_screen(C);
+ ARegion *ar = CTX_wm_region(C);
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
Sequence *seq;
+ rctf cur_new = v2d->cur;
int xmin = MAXFRAME * 2;
int xmax = -MAXFRAME * 2;
@@ -2225,29 +2270,30 @@ static int sequencer_view_selected_exec(bContext *C, wmOperator *UNUSED(op))
ymax += ymargin;
ymin -= ymargin;
- orig_height = v2d->cur.ymax - v2d->cur.ymin;
+ orig_height = BLI_rctf_size_y(&cur_new);
- v2d->cur.xmin = xmin;
- v2d->cur.xmax = xmax;
+ cur_new.xmin = xmin;
+ cur_new.xmax = xmax;
- v2d->cur.ymin = ymin;
- v2d->cur.ymax = ymax;
+ cur_new.ymin = ymin;
+ cur_new.ymax = ymax;
/* only zoom out vertically */
- if (orig_height > v2d->cur.ymax - v2d->cur.ymin) {
- ymid = (v2d->cur.ymax + v2d->cur.ymin) / 2;
+ if (orig_height > BLI_rctf_size_y(&cur_new)) {
+ ymid = BLI_rctf_cent_y(&cur_new);
- v2d->cur.ymin = ymid - (orig_height / 2);
- v2d->cur.ymax = ymid + (orig_height / 2);
+ cur_new.ymin = ymid - (orig_height / 2);
+ cur_new.ymax = ymid + (orig_height / 2);
}
- UI_view2d_curRect_validate(v2d);
- UI_view2d_sync(sc, area, v2d, V2D_LOCK_COPY);
+ UI_view2d_smooth_view(C, ar, &cur_new);
- ED_area_tag_redraw(CTX_wm_area(C));
+ return OPERATOR_FINISHED;
+ }
+ else {
+ return OPERATOR_CANCELLED;
}
- return OPERATOR_FINISHED;
}
void SEQUENCER_OT_view_selected(wmOperatorType *ot)
@@ -2266,7 +2312,9 @@ void SEQUENCER_OT_view_selected(wmOperatorType *ot)
}
-static int find_next_prev_edit(Scene *scene, int cfra, int side)
+static int find_next_prev_edit(Scene *scene, int cfra,
+ const short side,
+ const short do_skip_mute, const short do_center)
{
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
Sequence *seq, *best_seq = NULL, *frame_seq = NULL;
@@ -2277,19 +2325,32 @@ static int find_next_prev_edit(Scene *scene, int cfra, int side)
if (ed == NULL) return cfra;
for (seq = ed->seqbasep->first; seq; seq = seq->next) {
+ int seq_frame;
+
+ if (do_skip_mute && (seq->flag & SEQ_MUTE)) {
+ continue;
+ }
+
+ if (do_center) {
+ seq_frame = (seq->startdisp + seq->enddisp) / 2;
+ }
+ else {
+ seq_frame = seq->startdisp;
+ }
+
dist = MAXFRAME * 2;
switch (side) {
case SEQ_SIDE_LEFT:
- if (seq->startdisp < cfra) {
- dist = cfra - seq->startdisp;
+ if (seq_frame < cfra) {
+ dist = cfra - seq_frame;
}
break;
case SEQ_SIDE_RIGHT:
- if (seq->startdisp > cfra) {
- dist = seq->startdisp - cfra;
+ if (seq_frame > cfra) {
+ dist = seq_frame - cfra;
}
- else if (seq->startdisp == cfra) {
+ else if (seq_frame == cfra) {
frame_seq = seq;
}
break;
@@ -2304,92 +2365,86 @@ static int find_next_prev_edit(Scene *scene, int cfra, int side)
/* if no sequence to the right is found and the
* frame is on the start of the last sequence,
* move to the end of the last sequence */
- if (frame_seq) cfra = frame_seq->enddisp;
+ if (frame_seq) {
+ if (do_center) {
+ cfra = (frame_seq->startdisp + frame_seq->enddisp) / 2;
+ }
+ else {
+ cfra = frame_seq->enddisp;
+ }
+ }
+
+ if (best_seq) {
+ if (do_center) {
+ cfra = (best_seq->startdisp + best_seq->enddisp) / 2;
+ }
+ else {
+ cfra = best_seq->startdisp;
+ }
+ }
- return best_seq ? best_seq->startdisp : cfra;
+ return cfra;
}
-static int next_prev_edit_internal(Scene *scene, int side)
+static int strip_jump_internal(Scene *scene,
+ const short side,
+ const short do_skip_mute, const short do_center)
{
- int change = 0;
+ int change = FALSE;
int cfra = CFRA;
- int nfra = find_next_prev_edit(scene, cfra, side);
+ int nfra = find_next_prev_edit(scene, cfra, side, do_skip_mute, do_center);
if (nfra != cfra) {
CFRA = nfra;
- change = 1;
+ change = TRUE;
}
return change;
}
-/* move frame to next edit point operator */
-static int sequencer_next_edit_exec(bContext *C, wmOperator *UNUSED(op))
+/* jump frame to edit point operator */
+static int sequencer_strip_jump_exec(bContext *C, wmOperator *op)
{
Scene *scene = CTX_data_scene(C);
-
- if (!next_prev_edit_internal(scene, SEQ_SIDE_RIGHT))
- return OPERATOR_CANCELLED;
-
- WM_event_add_notifier(C, NC_SCENE | ND_FRAME, scene);
-
- return OPERATOR_FINISHED;
-}
-
-void SEQUENCER_OT_next_edit(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name = "Next Edit";
- ot->idname = "SEQUENCER_OT_next_edit";
- ot->description = "Move frame to next edit point";
-
- /* api callbacks */
- ot->exec = sequencer_next_edit_exec;
- ot->poll = sequencer_edit_poll;
-
- /* flags */
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-
- /* properties */
-}
+ short next = RNA_boolean_get(op->ptr, "next");
+ short center = RNA_boolean_get(op->ptr, "center");
-/* move frame to previous edit point operator */
-static int sequencer_previous_edit_exec(bContext *C, wmOperator *UNUSED(op))
-{
- Scene *scene = CTX_data_scene(C);
-
- if (!next_prev_edit_internal(scene, SEQ_SIDE_LEFT))
+ /* currently do_skip_mute is always TRUE */
+ if (!strip_jump_internal(scene, next ? SEQ_SIDE_RIGHT : SEQ_SIDE_LEFT, TRUE, center)) {
return OPERATOR_CANCELLED;
+ }
WM_event_add_notifier(C, NC_SCENE | ND_FRAME, scene);
return OPERATOR_FINISHED;
}
-void SEQUENCER_OT_previous_edit(wmOperatorType *ot)
+void SEQUENCER_OT_strip_jump(wmOperatorType *ot)
{
/* identifiers */
- ot->name = "Previous Edit";
- ot->idname = "SEQUENCER_OT_previous_edit";
+ ot->name = "Jump to Strip";
+ ot->idname = "SEQUENCER_OT_strip_jump";
ot->description = "Move frame to previous edit point";
-
+
/* api callbacks */
- ot->exec = sequencer_previous_edit_exec;
+ ot->exec = sequencer_strip_jump_exec;
ot->poll = sequencer_edit_poll;
-
+
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* properties */
+ RNA_def_boolean(ot->srna, "next", TRUE, "Next Strip", "");
+ RNA_def_boolean(ot->srna, "center", TRUE, "Use strip center", "");
}
static void swap_sequence(Scene *scene, Sequence *seqa, Sequence *seqb)
{
int gap = seqb->startdisp - seqa->enddisp;
seqb->start = (seqb->start - seqb->startdisp) + seqa->startdisp;
- calc_sequence(scene, seqb);
+ BKE_sequence_calc(scene, seqb);
seqa->start = (seqa->start - seqa->startdisp) + seqb->enddisp + gap;
- calc_sequence(scene, seqa);
+ BKE_sequence_calc(scene, seqa);
}
#if 0
@@ -2402,7 +2457,7 @@ static Sequence *sequence_find_parent(Scene *scene, Sequence *child)
if (ed == NULL) return NULL;
for (seq = ed->seqbasep->first; seq; seq = seq->next) {
- if ( (seq != child) && seq_is_parent(seq, child) ) {
+ if ((seq != child) && seq_is_parent(seq, child)) {
parent = seq;
break;
}
@@ -2427,9 +2482,9 @@ static int sequencer_swap_exec(bContext *C, wmOperator *op)
if (seq) {
/* disallow effect strips */
- if (get_sequence_effect_num_inputs(seq->type) >= 1 && (seq->effectdata || seq->seq1 || seq->seq2 || seq->seq3))
+ if (BKE_sequence_effect_get_num_inputs(seq->type) >= 1 && (seq->effectdata || seq->seq1 || seq->seq2 || seq->seq3))
return OPERATOR_CANCELLED;
- if ((get_sequence_effect_num_inputs(active_seq->type) >= 1) && (active_seq->effectdata || active_seq->seq1 || active_seq->seq2 || active_seq->seq3))
+ if ((BKE_sequence_effect_get_num_inputs(active_seq->type) >= 1) && (active_seq->effectdata || active_seq->seq1 || active_seq->seq2 || active_seq->seq3))
return OPERATOR_CANCELLED;
switch (side) {
@@ -2444,7 +2499,7 @@ static int sequencer_swap_exec(bContext *C, wmOperator *op)
// XXX - should be a generic function
for (iseq = scene->ed->seqbasep->first; iseq; iseq = iseq->next) {
if ((iseq->type & SEQ_TYPE_EFFECT) && (seq_is_parent(iseq, active_seq) || seq_is_parent(iseq, seq))) {
- calc_sequence(scene, iseq);
+ BKE_sequence_calc(scene, iseq);
}
}
@@ -2452,8 +2507,8 @@ static int sequencer_swap_exec(bContext *C, wmOperator *op)
for (iseq = scene->ed->seqbasep->first; iseq; iseq = iseq->next) {
if ((iseq->type & SEQ_TYPE_EFFECT) && (seq_is_parent(iseq, active_seq) || seq_is_parent(iseq, seq))) {
/* this may now overlap */
- if (seq_test_overlap(ed->seqbasep, iseq) ) {
- shuffle_seq(ed->seqbasep, iseq, scene);
+ if (BKE_sequence_test_overlap(ed->seqbasep, iseq) ) {
+ BKE_sequence_base_shuffle(ed->seqbasep, iseq, scene);
}
}
}
@@ -2502,7 +2557,7 @@ static int sequencer_rendersize_exec(bContext *C, wmOperator *UNUSED(op))
if (active_seq->strip) {
switch (active_seq->type) {
case SEQ_TYPE_IMAGE:
- se = give_stripelem(active_seq, scene->r.cfra);
+ se = BKE_sequencer_give_stripelem(active_seq, scene->r.cfra);
break;
case SEQ_TYPE_MOVIE:
se = active_seq->strip->stripdata;
@@ -2518,7 +2573,7 @@ static int sequencer_rendersize_exec(bContext *C, wmOperator *UNUSED(op))
if (se) {
// prevent setting the render size if sequence values aren't initialized
- if ( (se->orig_width > 0) && (se->orig_height > 0) ) {
+ if ((se->orig_width > 0) && (se->orig_height > 0)) {
scene->r.xsch = se->orig_width;
scene->r.ysch = se->orig_height;
WM_event_add_notifier(C, NC_SCENE | ND_RENDER_OPTIONS, scene);
@@ -2569,14 +2624,14 @@ static int sequencer_copy_exec(bContext *C, wmOperator *op)
ListBase nseqbase = {NULL, NULL};
- seq_free_clipboard();
+ BKE_sequencer_free_clipboard();
- if (seqbase_isolated_sel_check(ed->seqbasep) == FALSE) {
+ if (BKE_sequence_base_isolated_sel_check(ed->seqbasep) == FALSE) {
BKE_report(op->reports, RPT_ERROR, "Please select all related strips");
return OPERATOR_CANCELLED;
}
- seqbase_dupli_recursive(scene, NULL, &nseqbase, ed->seqbasep, SEQ_DUPE_UNIQUE_NAME);
+ BKE_sequence_base_dupli_recursive(scene, NULL, &nseqbase, ed->seqbasep, SEQ_DUPE_UNIQUE_NAME);
/* To make sure the copied strips have unique names between each other add
* them temporarily to the end of the original seqbase. (bug 25932)
@@ -2586,7 +2641,7 @@ static int sequencer_copy_exec(bContext *C, wmOperator *op)
BLI_movelisttolist(ed->seqbasep, &nseqbase);
for (seq = first_seq; seq; seq = seq->next)
- seq_recursive_apply(seq, apply_unique_name_cb, scene);
+ BKE_sequencer_recursive_apply(seq, apply_unique_name_cb, scene);
seqbase_clipboard.first = first_seq;
seqbase_clipboard.last = ed->seqbasep->last;
@@ -2636,13 +2691,13 @@ static int sequencer_paste_exec(bContext *C, wmOperator *UNUSED(op))
ED_sequencer_deselect_all(scene);
ofs = scene->r.cfra - seqbase_clipboard_frame;
- seqbase_dupli_recursive(scene, NULL, &nseqbase, &seqbase_clipboard, SEQ_DUPE_UNIQUE_NAME);
+ BKE_sequence_base_dupli_recursive(scene, NULL, &nseqbase, &seqbase_clipboard, SEQ_DUPE_UNIQUE_NAME);
/* transform pasted strips before adding */
if (ofs) {
for (iseq = nseqbase.first; iseq; iseq = iseq->next) {
- seq_translate(scene, iseq, ofs);
- seq_sound_init(scene, iseq);
+ BKE_sequence_translate(scene, iseq, ofs);
+ BKE_sequence_sound_init(scene, iseq);
}
}
@@ -2652,7 +2707,7 @@ static int sequencer_paste_exec(bContext *C, wmOperator *UNUSED(op))
/* make sure the pasted strips have unique names between them */
for (; iseq; iseq = iseq->next) {
- seq_recursive_apply(iseq, apply_unique_name_cb, scene);
+ BKE_sequencer_recursive_apply(iseq, apply_unique_name_cb, scene);
}
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -2689,7 +2744,7 @@ static int sequencer_swap_data_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- if (seq_swap(seq_act, seq_other, &error_msg) == 0) {
+ if (BKE_sequence_swap(seq_act, seq_other, &error_msg) == 0) {
BKE_report(op->reports, RPT_ERROR, error_msg);
return OPERATOR_CANCELLED;
}
@@ -2703,8 +2758,8 @@ static int sequencer_swap_data_exec(bContext *C, wmOperator *op)
seq_act->scene_sound = NULL;
seq_other->scene_sound = NULL;
- calc_sequence(scene, seq_act);
- calc_sequence(scene, seq_other);
+ BKE_sequence_calc(scene, seq_act);
+ BKE_sequence_calc(scene, seq_other);
if (seq_act->sound) sound_add_scene_sound_defaults(scene, seq_act);
if (seq_other->sound) sound_add_scene_sound_defaults(scene, seq_other);
@@ -2747,11 +2802,11 @@ static int view_ghost_border_exec(bContext *C, wmOperator *op)
if (ed == NULL)
return OPERATOR_CANCELLED;
- rect.xmin /= (float)(ABS(v2d->tot.xmax - v2d->tot.xmin));
- rect.ymin /= (float)(ABS(v2d->tot.ymax - v2d->tot.ymin));
+ rect.xmin /= fabsf(BLI_rctf_size_x(&v2d->tot));
+ rect.ymin /= fabsf(BLI_rctf_size_y(&v2d->tot));
- rect.xmax /= (float)(ABS(v2d->tot.xmax - v2d->tot.xmin));
- rect.ymax /= (float)(ABS(v2d->tot.ymax - v2d->tot.ymin));
+ rect.xmax /= fabsf(BLI_rctf_size_x(&v2d->tot));
+ rect.ymax /= fabsf(BLI_rctf_size_y(&v2d->tot));
rect.xmin += 0.5f;
rect.xmax += 0.5f;
@@ -2805,7 +2860,7 @@ void SEQUENCER_OT_rebuild_proxy(wmOperatorType *ot)
/* identifiers */
ot->name = "Rebuild Proxy and Timecode Indices";
ot->idname = "SEQUENCER_OT_rebuild_proxy";
- ot->description = "Rebuild all selected proxies and timecode indeces using the job system";
+ ot->description = "Rebuild all selected proxies and timecode indices using the job system";
/* api callbacks */
ot->exec = sequencer_rebuild_proxy_exec;
@@ -2855,10 +2910,10 @@ static int sequencer_change_effect_input_exec(bContext *C, wmOperator *op)
SWAP(Sequence *, *seq_1, *seq_2);
}
- update_changed_seq_and_deps(scene, seq, 0, 1);
+ BKE_sequencer_update_changed_seq_and_deps(scene, seq, 0, 1);
/* important else we don't get the imbuf cache flushed */
- free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE);
+ BKE_sequencer_free_imbuf(scene, &ed->seqbase, FALSE);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -2898,27 +2953,27 @@ static int sequencer_change_effect_type_exec(bContext *C, wmOperator *op)
/* can someone explain the logic behind only allowing to increase this,
* copied from 2.4x - campbell */
- if (get_sequence_effect_num_inputs(seq->type) <
- get_sequence_effect_num_inputs(new_type))
+ if (BKE_sequence_effect_get_num_inputs(seq->type) <
+ BKE_sequence_effect_get_num_inputs(new_type))
{
BKE_report(op->reports, RPT_ERROR, "New effect needs more input strips");
return OPERATOR_CANCELLED;
}
else {
- sh = get_sequence_effect(seq);
+ sh = BKE_sequence_get_effect(seq);
sh.free(seq);
seq->type = new_type;
- sh = get_sequence_effect(seq);
+ sh = BKE_sequence_get_effect(seq);
sh.init(seq);
}
/* update */
- update_changed_seq_and_deps(scene, seq, 0, 1);
+ BKE_sequencer_update_changed_seq_and_deps(scene, seq, 0, 1);
/* important else we don't get the imbuf cache flushed */
- free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE);
+ BKE_sequencer_free_imbuf(scene, &ed->seqbase, FALSE);
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
@@ -2986,12 +3041,12 @@ static int sequencer_change_path_exec(bContext *C, wmOperator *op)
/* correct start/end frames so we don't move
* important not to set seq->len= len; allow the function to handle it */
- reload_sequence_new_file(scene, seq, TRUE);
+ BKE_sequence_reload_new_file(scene, seq, TRUE);
- calc_sequence(scene, seq);
+ BKE_sequence_calc(scene, seq);
/* important else we don't get the imbuf cache flushed */
- free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE);
+ BKE_sequencer_free_imbuf(scene, &ed->seqbase, FALSE);
}
else {
/* lame, set rna filepath */
@@ -3047,6 +3102,8 @@ void SEQUENCER_OT_change_path(struct wmOperatorType *ot)
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
- WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_DIRECTORY | WM_FILESEL_RELPATH | WM_FILESEL_FILEPATH | WM_FILESEL_FILES, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | IMAGEFILE | MOVIEFILE, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_DIRECTORY | WM_FILESEL_RELPATH | WM_FILESEL_FILEPATH | WM_FILESEL_FILES,
+ FILE_DEFAULTDISPLAY);
}
diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h
index 14d2ccdbbbe..935bd13fcfc 100644
--- a/source/blender/editors/space_sequencer/sequencer_intern.h
+++ b/source/blender/editors/space_sequencer/sequencer_intern.h
@@ -44,6 +44,7 @@ struct ScrArea;
struct ARegion;
struct ARegionType;
struct Scene;
+struct Main;
/* space_sequencer.c */
struct ARegion *sequencer_has_buttons_region(struct ScrArea *sa);
@@ -51,10 +52,12 @@ struct ARegion *sequencer_has_buttons_region(struct ScrArea *sa);
/* sequencer_draw.c */
void draw_timeline_seq(const struct bContext *C, struct ARegion *ar);
-void draw_image_seq(const struct bContext* C, struct Scene *scene, struct ARegion *ar, struct SpaceSeq *sseq, int cfra, int offset);
+void draw_image_seq(const struct bContext *C, struct Scene *scene, struct ARegion *ar, struct SpaceSeq *sseq, int cfra, int offset, int draw_overlay);
void seq_reset_imageofs(struct SpaceSeq *sseq);
+struct ImBuf *sequencer_ibuf_get(struct Main *bmain, struct Scene *scene, struct SpaceSeq *sseq, int cfra, int frame_ofs);
+
/* sequencer_edit.c */
struct View2D;
void seq_rectf(struct Sequence *seq, struct rctf *rectf);
@@ -95,8 +98,7 @@ void SEQUENCER_OT_meta_toggle(struct wmOperatorType *ot);
void SEQUENCER_OT_meta_make(struct wmOperatorType *ot);
void SEQUENCER_OT_meta_separate(struct wmOperatorType *ot);
void SEQUENCER_OT_snap(struct wmOperatorType *ot);
-void SEQUENCER_OT_previous_edit(struct wmOperatorType *ot);
-void SEQUENCER_OT_next_edit(struct wmOperatorType *ot);
+void SEQUENCER_OT_strip_jump(struct wmOperatorType *ot);
void SEQUENCER_OT_swap(struct wmOperatorType *ot);
void SEQUENCER_OT_swap_data(struct wmOperatorType *ot);
void SEQUENCER_OT_rendersize(struct wmOperatorType *ot);
@@ -116,8 +118,6 @@ void SEQUENCER_OT_paste(struct wmOperatorType *ot);
void SEQUENCER_OT_rebuild_proxy(struct wmOperatorType *ot);
-void SEQUENCER_OT_update_strip_length(struct wmOperatorType *ot);
-
/* preview specific operators */
void SEQUENCER_OT_view_all_preview(struct wmOperatorType *ot);
@@ -177,5 +177,13 @@ struct ImBuf *make_histogram_view_from_ibuf(struct ImBuf * ibuf);
void sequencer_buttons_register(struct ARegionType *art);
void SEQUENCER_OT_properties(struct wmOperatorType *ot);
+/* sequencer_modifiers.c */
+void SEQUENCER_OT_strip_modifier_add(struct wmOperatorType *ot);
+void SEQUENCER_OT_strip_modifier_remove(struct wmOperatorType *ot);
+void SEQUENCER_OT_strip_modifier_move(struct wmOperatorType *ot);
+
+/* sequencer_view.c */
+void SEQUENCER_OT_sample(struct wmOperatorType *ot);
+
#endif /* __SEQUENCER_INTERN_H__ */
diff --git a/source/blender/editors/space_sequencer/sequencer_modifier.c b/source/blender/editors/space_sequencer/sequencer_modifier.c
new file mode 100644
index 00000000000..a4a485b34c6
--- /dev/null
+++ b/source/blender/editors/space_sequencer/sequencer_modifier.c
@@ -0,0 +1,222 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2012 Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Blender Foundation,
+ * Sergey Sharybin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+
+/** \file blender/editors/space_sequencer/sequencer_modifier.c
+ * \ingroup spseq
+ */
+
+#include "MEM_guardedalloc.h"
+
+#include "BLI_blenlib.h"
+#include "BLI_math.h"
+#include "BLI_utildefines.h"
+
+#include "DNA_scene_types.h"
+#include "DNA_mask_types.h"
+#include "DNA_userdef_types.h"
+
+#include "BKE_context.h"
+#include "BKE_global.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
+#include "BKE_sequencer.h"
+#include "BKE_movieclip.h"
+#include "BKE_sequencer.h"
+#include "BKE_mask.h"
+#include "BKE_report.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "RNA_define.h"
+#include "RNA_enum_types.h"
+
+#include "UI_interface.h"
+#include "UI_resources.h"
+
+/* own include */
+#include "sequencer_intern.h"
+
+/*********************** Add modifier operator *************************/
+
+static int strip_modifier_active_poll(bContext *C)
+{
+ Scene *scene = CTX_data_scene(C);
+ Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
+
+ if (ed) {
+ Sequence *seq = BKE_sequencer_active_get(scene);
+
+ if (seq)
+ return BKE_sequence_supports_modifiers(seq);
+ }
+
+ return FALSE;
+}
+
+static int strip_modifier_add_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene = CTX_data_scene(C);
+ Sequence *seq = BKE_sequencer_active_get(scene);
+ int type = RNA_enum_get(op->ptr, "type");
+
+ BKE_sequence_modifier_new(seq, NULL, type);
+
+ BKE_sequence_invalidate_cache(scene, seq);
+ WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
+
+ return OPERATOR_FINISHED;
+}
+
+void SEQUENCER_OT_strip_modifier_add(wmOperatorType *ot)
+{
+ PropertyRNA *prop;
+
+ /* identifiers */
+ ot->name = "Add Strip Modifier";
+ ot->idname = "SEQUENCER_OT_strip_modifier_add";
+ ot->description = "Add a modifier to strip";
+
+ /* api callbacks */
+ ot->exec = strip_modifier_add_exec;
+ ot->poll = strip_modifier_active_poll;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
+ prop = RNA_def_enum(ot->srna, "type", sequence_modifier_type_items, seqModifierType_ColorBalance, "Type", "");
+ ot->prop = prop;
+}
+
+/*********************** Remove modifier operator *************************/
+
+static int strip_modifier_remove_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene = CTX_data_scene(C);
+ Sequence *seq = BKE_sequencer_active_get(scene);
+ char name[MAX_NAME];
+ SequenceModifierData *smd;
+
+ RNA_string_get(op->ptr, "name", name);
+
+ smd = BKE_sequence_modifier_find_by_name(seq, name);
+ if (!smd)
+ return OPERATOR_CANCELLED;
+
+ BLI_remlink(&seq->modifiers, smd);
+ BKE_sequence_modifier_free(smd);
+
+ BKE_sequence_invalidate_cache(scene, seq);
+ WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
+
+ return OPERATOR_FINISHED;
+}
+
+void SEQUENCER_OT_strip_modifier_remove(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Remove Strip Modifier";
+ ot->idname = "SEQUENCER_OT_strip_modifier_remove";
+ ot->description = "Add a modifier to strip";
+
+ /* api callbacks */
+ ot->exec = strip_modifier_remove_exec;
+ ot->poll = strip_modifier_active_poll;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
+ RNA_def_string(ot->srna, "name", "Name", MAX_NAME, "Name", "Name of modifier to remove");
+}
+
+/*********************** Move operator *************************/
+
+enum {
+ SEQ_MODIFIER_MOVE_UP = 0,
+ SEQ_MODIFIER_MOVE_DOWN
+};
+
+static int strip_modifier_move_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene = CTX_data_scene(C);
+ Sequence *seq = BKE_sequencer_active_get(scene);
+ char name[MAX_NAME];
+ int direction;
+ SequenceModifierData *smd;
+
+ RNA_string_get(op->ptr, "name", name);
+ direction = RNA_enum_get(op->ptr, "direction");
+
+ smd = BKE_sequence_modifier_find_by_name(seq, name);
+ if (!smd)
+ return OPERATOR_CANCELLED;
+
+ if (direction == SEQ_MODIFIER_MOVE_UP) {
+ if (smd->prev) {
+ BLI_remlink(&seq->modifiers, smd);
+ BLI_insertlink(&seq->modifiers, smd->prev->prev, smd);
+ }
+ }
+ else if (direction == SEQ_MODIFIER_MOVE_DOWN) {
+ if (smd->next) {
+ BLI_remlink(&seq->modifiers, smd);
+ BLI_insertlink(&seq->modifiers, smd->next, smd);
+ }
+ }
+
+ BKE_sequence_invalidate_cache(scene, seq);
+ WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
+
+ return OPERATOR_FINISHED;
+}
+
+void SEQUENCER_OT_strip_modifier_move(wmOperatorType *ot)
+{
+ static EnumPropertyItem direction_items[] = {
+ {SEQ_MODIFIER_MOVE_UP, "UP", 0, "Up", "Move modifier up in the stack"},
+ {SEQ_MODIFIER_MOVE_DOWN, "DOWN", 0, "Down", "Move modifier down in the stack"},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ /* identifiers */
+ ot->name = "Move Strip Modifier";
+ ot->idname = "SEQUENCER_OT_strip_modifier_move";
+ ot->description = "Move modifier up and down in the stack";
+
+ /* api callbacks */
+ ot->exec = strip_modifier_move_exec;
+ ot->poll = strip_modifier_active_poll;
+
+ /* flags */
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* properties */
+ RNA_def_string(ot->srna, "name", "Name", MAX_NAME, "Name", "Name of modifier to remove");
+ RNA_def_enum(ot->srna, "direction", direction_items, SEQ_MODIFIER_MOVE_UP, "Type", "");
+}
diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c
index 4a1c8f0c006..70b288a59e6 100644
--- a/source/blender/editors/space_sequencer/sequencer_ops.c
+++ b/source/blender/editors/space_sequencer/sequencer_ops.c
@@ -43,6 +43,7 @@
#include "WM_api.h"
#include "WM_types.h"
+#include "ED_sequencer.h"
#include "ED_markers.h"
#include "ED_transform.h" /* transform keymap */
@@ -72,12 +73,14 @@ void sequencer_operatortypes(void)
WM_operatortype_append(SEQUENCER_OT_meta_make);
WM_operatortype_append(SEQUENCER_OT_meta_separate);
WM_operatortype_append(SEQUENCER_OT_snap);
- WM_operatortype_append(SEQUENCER_OT_next_edit);
- WM_operatortype_append(SEQUENCER_OT_previous_edit);
+ WM_operatortype_append(SEQUENCER_OT_strip_jump);
WM_operatortype_append(SEQUENCER_OT_swap);
WM_operatortype_append(SEQUENCER_OT_swap_data);
WM_operatortype_append(SEQUENCER_OT_rendersize);
+ WM_operatortype_append(SEQUENCER_OT_copy);
+ WM_operatortype_append(SEQUENCER_OT_paste);
+
WM_operatortype_append(SEQUENCER_OT_view_all);
WM_operatortype_append(SEQUENCER_OT_view_selected);
WM_operatortype_append(SEQUENCER_OT_view_all_preview);
@@ -110,10 +113,17 @@ void sequencer_operatortypes(void)
WM_operatortype_append(SEQUENCER_OT_sound_strip_add);
WM_operatortype_append(SEQUENCER_OT_image_strip_add);
WM_operatortype_append(SEQUENCER_OT_effect_strip_add);
+
+ /* sequencer_buttons.c */
WM_operatortype_append(SEQUENCER_OT_properties);
- WM_operatortype_append(SEQUENCER_OT_copy);
- WM_operatortype_append(SEQUENCER_OT_paste);
+ /* sequencer_modifiers.c */
+ WM_operatortype_append(SEQUENCER_OT_strip_modifier_add);
+ WM_operatortype_append(SEQUENCER_OT_strip_modifier_remove);
+ WM_operatortype_append(SEQUENCER_OT_strip_modifier_move);
+
+ /* sequencer_view.h */
+ WM_operatortype_append(SEQUENCER_OT_sample);
}
@@ -124,7 +134,9 @@ void sequencer_keymap(wmKeyConfig *keyconf)
/* Common items ------------------------------------------------------------------ */
keymap = WM_keymap_find(keyconf, "SequencerCommon", SPACE_SEQ, 0);
-
+
+ WM_keymap_add_item(keymap, "SEQUENCER_OT_properties", NKEY, KM_PRESS, 0, 0);
+
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", OKEY, KM_PRESS, KM_SHIFT, 0);
RNA_string_set(kmi->ptr, "data_path", "scene.sequence_editor.show_overlay");
@@ -133,9 +145,7 @@ void sequencer_keymap(wmKeyConfig *keyconf)
/* Strips Region --------------------------------------------------------------- */
keymap = WM_keymap_find(keyconf, "Sequencer", SPACE_SEQ, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_properties", NKEY, KM_PRESS, 0, 0);
-
+
kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select_all", AKEY, KM_PRESS, 0, 0);
RNA_enum_set(kmi->ptr, "action", SEL_TOGGLE);
kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select_all", IKEY, KM_PRESS, KM_CTRL, 0);
@@ -145,12 +155,12 @@ void sequencer_keymap(wmKeyConfig *keyconf)
RNA_enum_set(kmi->ptr, "type", SEQ_CUT_SOFT);
kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_cut", KKEY, KM_PRESS, KM_SHIFT, 0);
RNA_enum_set(kmi->ptr, "type", SEQ_CUT_HARD);
-
+
kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_mute", HKEY, KM_PRESS, 0, 0);
RNA_boolean_set(kmi->ptr, "unselected", FALSE);
kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_mute", HKEY, KM_PRESS, KM_SHIFT, 0);
RNA_boolean_set(kmi->ptr, "unselected", TRUE);
-
+
kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_unmute", HKEY, KM_PRESS, KM_ALT, 0);
RNA_boolean_set(kmi->ptr, "unselected", FALSE);
kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_unmute", HKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
@@ -171,7 +181,7 @@ void sequencer_keymap(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", DELKEY, KM_PRESS, 0, 0);
-
+
WM_keymap_add_item(keymap, "SEQUENCER_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
@@ -185,12 +195,24 @@ void sequencer_keymap(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_next_edit", PAGEUPKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_previous_edit", PAGEDOWNKEY, KM_PRESS, 0, 0);
+ kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEUPKEY, KM_PRESS, 0, 0);
+ RNA_boolean_set(kmi->ptr, "next", TRUE);
+ RNA_boolean_set(kmi->ptr, "center", FALSE);
+ kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEDOWNKEY, KM_PRESS, 0, 0);
+ RNA_boolean_set(kmi->ptr, "next", FALSE);
+ RNA_boolean_set(kmi->ptr, "center", FALSE);
+
+ /* alt for center */
+ kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEUPKEY, KM_PRESS, KM_ALT, 0);
+ RNA_boolean_set(kmi->ptr, "next", TRUE);
+ RNA_boolean_set(kmi->ptr, "center", TRUE);
+ kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEDOWNKEY, KM_PRESS, KM_ALT, 0);
+ RNA_boolean_set(kmi->ptr, "next", FALSE);
+ RNA_boolean_set(kmi->ptr, "center", TRUE);
RNA_enum_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_swap", LEFTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "side", SEQ_SIDE_LEFT);
RNA_enum_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_swap", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "side", SEQ_SIDE_RIGHT);
-
+
WM_keymap_add_item(keymap, "SEQUENCER_OT_snap", SKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_swap_inputs", SKEY, KM_PRESS, KM_ALT, 0);
@@ -225,7 +247,7 @@ void sequencer_keymap(wmKeyConfig *keyconf)
RNA_boolean_set(kmi->ptr, "linked_left", TRUE);
kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
RNA_boolean_set(kmi->ptr, "linked_right", TRUE);
-
+
kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0);
RNA_boolean_set(kmi->ptr, "linked_left", TRUE);
RNA_boolean_set(kmi->ptr, "linked_right", TRUE);
@@ -273,14 +295,14 @@ void sequencer_keymap(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "SEQUENCER_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
-
+
kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0);
RNA_boolean_set(kmi->ptr, "extend", FALSE);
kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
RNA_boolean_set(kmi->ptr, "extend", TRUE);
-
+
WM_keymap_add_item(keymap, "SEQUENCER_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
-
+
WM_keymap_add_item(keymap, "SEQUENCER_OT_select_border", BKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
@@ -288,37 +310,39 @@ void sequencer_keymap(wmKeyConfig *keyconf)
WM_keymap_add_menu(keymap, "SEQUENCER_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_menu(keymap, "SEQUENCER_MT_change", CKEY, KM_PRESS, 0, 0);
-
+
kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_int", OKEY, KM_PRESS, 0, 0);
RNA_string_set(kmi->ptr, "data_path", "scene.sequence_editor.overlay_frame");
RNA_int_set(kmi->ptr, "value", 0);
transform_keymap_for_space(keyconf, keymap, SPACE_SEQ);
-
+
/* special markers hotkeys for anim editors: see note in definition of this function */
ED_marker_keymap_animedit_conflictfree(keymap);
-
-
+
+
/* Preview Region ----------------------------------------------------------- */
keymap = WM_keymap_find(keyconf, "SequencerPreview", SPACE_SEQ, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all_preview", HOMEKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_properties", NKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_ghost_border", OKEY, KM_PRESS, 0, 0);
/* would prefer to use numpad keys for job */
RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD1, KM_PRESS, 0, 0)->ptr, "ratio", 1.0f);
-
+
/* Setting zoom levels is not that useful, except for back to zoom level 1, removing keymap because of conflicts for now */
#if 0
RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD8, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 8.0f);
RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD4, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 4.0f);
RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD2, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 2.0f);
-
+
RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD2, KM_PRESS, 0, 0)->ptr, "ratio", 0.5f);
RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD4, KM_PRESS, 0, 0)->ptr, "ratio", 0.25f);
RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD8, KM_PRESS, 0, 0)->ptr, "ratio", 0.125f);
#endif
+
+ /* sample */
+ WM_keymap_add_item(keymap, "SEQUENCER_OT_sample", ACTIONMOUSE, KM_PRESS, 0, 0);
}
void ED_operatormacros_sequencer(void)
diff --git a/source/blender/editors/space_sequencer/sequencer_scopes.c b/source/blender/editors/space_sequencer/sequencer_scopes.c
index 5debeaf79ae..6ed34a79510 100644
--- a/source/blender/editors/space_sequencer/sequencer_scopes.c
+++ b/source/blender/editors/space_sequencer/sequencer_scopes.c
@@ -60,16 +60,14 @@ static void scope_put_pixel(unsigned char *table, unsigned char *pos)
pos[3] = 255;
}
-static void scope_put_pixel_single(unsigned char *table, unsigned char *pos,
- int col)
+static void scope_put_pixel_single(unsigned char *table, unsigned char *pos, int col)
{
char newval = table[pos[col]];
pos[col] = newval;
pos[3] = 255;
}
-static void wform_put_line(int w,
- unsigned char *last_pos, unsigned char *new_pos)
+static void wform_put_line(int w, unsigned char *last_pos, unsigned char *new_pos)
{
if (last_pos > new_pos) {
unsigned char *temp = new_pos;
@@ -86,8 +84,7 @@ static void wform_put_line(int w,
}
}
-static void wform_put_line_single(
- int w, unsigned char *last_pos, unsigned char *new_pos, int col)
+static void wform_put_line_single(int w, unsigned char *last_pos, unsigned char *new_pos, int col)
{
if (last_pos > new_pos) {
unsigned char *temp = new_pos;
@@ -161,8 +158,7 @@ static ImBuf *make_waveform_view_from_ibuf_byte(ImBuf *ibuf)
wform_put_grid(tgt, w, h);
for (x = 0; x < 256; x++) {
- wtable[x] = (unsigned char) (pow(((float) x + 1) / 256,
- waveform_gamma) * 255);
+ wtable[x] = (unsigned char) (pow(((float) x + 1) / 256, waveform_gamma) * 255);
}
for (y = 0; y < ibuf->y; y++) {
@@ -204,8 +200,7 @@ static ImBuf *make_waveform_view_from_ibuf_float(ImBuf *ibuf)
wform_put_grid(tgt, w, h);
for (x = 0; x < 256; x++) {
- wtable[x] = (unsigned char) (pow(((float) x + 1) / 256,
- waveform_gamma) * 255);
+ wtable[x] = (unsigned char) (pow(((float) x + 1) / 256, waveform_gamma) * 255);
}
for (y = 0; y < ibuf->y; y++) {
@@ -249,8 +244,7 @@ ImBuf *make_waveform_view_from_ibuf(ImBuf *ibuf)
static ImBuf *make_sep_waveform_view_from_ibuf_byte(ImBuf *ibuf)
{
- ImBuf *rval = IMB_allocImBuf(
- ibuf->x + 3, 515, 32, IB_rect);
+ ImBuf *rval = IMB_allocImBuf(ibuf->x + 3, 515, 32, IB_rect);
int x, y;
unsigned char *src = (unsigned char *) ibuf->rect;
unsigned char *tgt = (unsigned char *) rval->rect;
@@ -263,8 +257,7 @@ static ImBuf *make_sep_waveform_view_from_ibuf_byte(ImBuf *ibuf)
wform_put_grid(tgt, w, h);
for (x = 0; x < 256; x++) {
- wtable[x] = (unsigned char) (pow(((float) x + 1) / 256,
- waveform_gamma) * 255);
+ wtable[x] = (unsigned char) (pow(((float) x + 1) / 256, waveform_gamma) * 255);
}
for (y = 0; y < ibuf->y; y++) {
@@ -275,16 +268,14 @@ static ImBuf *make_sep_waveform_view_from_ibuf_byte(ImBuf *ibuf)
unsigned char *rgb = src + 4 * (ibuf->x * y + x);
for (c = 0; c < 3; c++) {
unsigned char *p = tgt;
- p += 4 * (w * ((rgb[c] * (h - 3)) / 255 + 1) +
- c * sw + x / 3 + 1);
+ p += 4 * (w * ((rgb[c] * (h - 3)) / 255 + 1) + c * sw + x / 3 + 1);
scope_put_pixel_single(wtable, p, c);
p += 4 * w;
scope_put_pixel_single(wtable, p, c);
if (last_p[c] != NULL) {
- wform_put_line_single(
- w, last_p[c], p, c);
+ wform_put_line_single(w, last_p[c], p, c);
}
last_p[c] = p;
}
@@ -311,8 +302,7 @@ static ImBuf *make_sep_waveform_view_from_ibuf_float(ImBuf *ibuf)
wform_put_grid(tgt, w, h);
for (x = 0; x < 256; x++) {
- wtable[x] = (unsigned char) (pow(((float) x + 1) / 256,
- waveform_gamma) * 255);
+ wtable[x] = (unsigned char) (pow(((float) x + 1) / 256, waveform_gamma) * 255);
}
for (y = 0; y < ibuf->y; y++) {
@@ -327,16 +317,14 @@ static ImBuf *make_sep_waveform_view_from_ibuf_float(ImBuf *ibuf)
CLAMP(v, 0.0f, 1.0f);
- p += 4 * (w * ((int) (v * (h - 3)) + 1) +
- c * sw + x / 3 + 1);
+ p += 4 * (w * ((int) (v * (h - 3)) + 1) + c * sw + x / 3 + 1);
scope_put_pixel_single(wtable, p, c);
p += 4 * w;
scope_put_pixel_single(wtable, p, c);
if (last_p[c] != NULL) {
- wform_put_line_single(
- w, last_p[c], p, c);
+ wform_put_line_single(w, last_p[c], p, c);
}
last_p[c] = p;
}
@@ -461,6 +449,8 @@ static void draw_histogram_bar(ImBuf *ibuf, int x, float val, int col)
}
}
+#define HIS_STEPS 512
+
static ImBuf *make_histogram_view_from_ibuf_byte(ImBuf *ibuf)
{
ImBuf *rval = IMB_allocImBuf(515, 128, 32, IB_rect);
@@ -468,22 +458,38 @@ static ImBuf *make_histogram_view_from_ibuf_byte(ImBuf *ibuf)
unsigned int n;
unsigned char *src = (unsigned char *) ibuf->rect;
- unsigned int bins[3][256];
+ unsigned int bins[3][HIS_STEPS];
- memset(bins, 0, 3 * 256 * sizeof(unsigned int));
+ memset(bins, 0, sizeof(bins));
+ #pragma omp parallel for shared(bins, src, ibuf) private(x, y) if (ibuf->y >= 256)
for (y = 0; y < ibuf->y; y++) {
+ unsigned int cur_bins[3][HIS_STEPS];
+
+ memset(cur_bins, 0, sizeof(cur_bins));
+
for (x = 0; x < ibuf->x; x++) {
- bins[0][*src++]++;
- bins[1][*src++]++;
- bins[2][*src++]++;
- src++;
+ unsigned char *pixel = src + (y * ibuf->x + x) * 4;
+
+ cur_bins[0][pixel[0]]++;
+ cur_bins[1][pixel[1]]++;
+ cur_bins[2][pixel[2]]++;
+ }
+
+ #pragma omp critical
+ {
+ int i;
+ for (i = 0; i < HIS_STEPS; i++) {
+ bins[0][i] += cur_bins[0][i];
+ bins[1][i] += cur_bins[1][i];
+ bins[2][i] += cur_bins[2][i];
+ }
}
}
n = 0;
for (c = 0; c < 3; c++) {
- for (x = 0; x < 256; x++) {
+ for (x = 0; x < HIS_STEPS; x++) {
if (bins[c][x] > n) {
n = bins[c][x];
}
@@ -491,11 +497,9 @@ static ImBuf *make_histogram_view_from_ibuf_byte(ImBuf *ibuf)
}
for (c = 0; c < 3; c++) {
- for (x = 0; x < 256; x++) {
- draw_histogram_bar(rval, x * 2 + 1,
- ((float) bins[c][x]) / n, c);
- draw_histogram_bar(rval, x * 2 + 2,
- ((float) bins[c][x]) / n, c);
+ for (x = 0; x < HIS_STEPS; x++) {
+ draw_histogram_bar(rval, x * 2 + 1, ((float) bins[c][x]) / n, c);
+ draw_histogram_bar(rval, x * 2 + 2, ((float) bins[c][x]) / n, c);
}
}
@@ -504,13 +508,13 @@ static ImBuf *make_histogram_view_from_ibuf_byte(ImBuf *ibuf)
return rval;
}
-static int get_bin_float(float f)
+BLI_INLINE int get_bin_float(float f)
{
if (f < -0.25f) {
- f = -0.25f;
+ return 0;
}
- else if (f > 1.25f) {
- f = 1.25f;
+ else if (f >= 1.25f) {
+ return 511;
}
return (int) (((f + 0.25f) / 1.5f) * 512);
@@ -522,16 +526,32 @@ static ImBuf *make_histogram_view_from_ibuf_float(ImBuf *ibuf)
int n, c, x, y;
float *src = ibuf->rect_float;
- unsigned int bins[3][512];
+ unsigned int bins[3][HIS_STEPS];
- memset(bins, 0, 3 * 256 * sizeof(unsigned int));
+ memset(bins, 0, sizeof(bins));
+ #pragma omp parallel for shared(bins, src, ibuf) private(x, y) if (ibuf->y >= 256)
for (y = 0; y < ibuf->y; y++) {
+ unsigned int cur_bins[3][HIS_STEPS];
+
+ memset(cur_bins, 0, sizeof(cur_bins));
+
for (x = 0; x < ibuf->x; x++) {
- bins[0][get_bin_float(*src++)]++;
- bins[1][get_bin_float(*src++)]++;
- bins[2][get_bin_float(*src++)]++;
- src++;
+ float *pixel = src + (y * ibuf->x + x) * 4;
+
+ cur_bins[0][get_bin_float(pixel[0])]++;
+ cur_bins[1][get_bin_float(pixel[1])]++;
+ cur_bins[2][get_bin_float(pixel[2])]++;
+ }
+
+ #pragma omp critical
+ {
+ int i;
+ for (i = 0; i < HIS_STEPS; i++) {
+ bins[0][i] += cur_bins[0][i];
+ bins[1][i] += cur_bins[1][i];
+ bins[2][i] += cur_bins[2][i];
+ }
}
}
@@ -540,14 +560,14 @@ static ImBuf *make_histogram_view_from_ibuf_float(ImBuf *ibuf)
n = 0;
for (c = 0; c < 3; c++) {
- for (x = 0; x < 512; x++) {
+ for (x = 0; x < HIS_STEPS; x++) {
if (bins[c][x] > n) {
n = bins[c][x];
}
}
}
for (c = 0; c < 3; c++) {
- for (x = 0; x < 512; x++) {
+ for (x = 0; x < HIS_STEPS; x++) {
draw_histogram_bar(rval, x + 1, (float) bins[c][x] / n, c);
}
}
@@ -557,6 +577,8 @@ static ImBuf *make_histogram_view_from_ibuf_float(ImBuf *ibuf)
return rval;
}
+#undef HIS_STEPS
+
ImBuf *make_histogram_view_from_ibuf(ImBuf *ibuf)
{
if (ibuf->rect_float) {
@@ -567,9 +589,7 @@ ImBuf *make_histogram_view_from_ibuf(ImBuf *ibuf)
}
}
-static void vectorscope_put_cross(unsigned char r, unsigned char g,
- unsigned char b,
- char *tgt, int w, int h, int size)
+static void vectorscope_put_cross(unsigned char r, unsigned char g, unsigned char b, char *tgt, int w, int h, int size)
{
float rgb[3], yuv[3];
char *p;
@@ -609,8 +629,7 @@ static ImBuf *make_vectorscope_view_from_ibuf_byte(ImBuf *ibuf)
unsigned char wtable[256];
for (x = 0; x < 256; x++) {
- wtable[x] = (unsigned char) (pow(((float) x + 1) / 256,
- scope_gamma) * 255);
+ wtable[x] = (unsigned char) (pow(((float) x + 1) / 256, scope_gamma) * 255);
}
for (x = 0; x <= 255; x++) {
@@ -656,8 +675,7 @@ static ImBuf *make_vectorscope_view_from_ibuf_float(ImBuf *ibuf)
unsigned char wtable[256];
for (x = 0; x < 256; x++) {
- wtable[x] = (unsigned char) (pow(((float) x + 1) / 256,
- scope_gamma) * 255);
+ wtable[x] = (unsigned char) (pow(((float) x + 1) / 256, scope_gamma) * 255);
}
for (x = 0; x <= 255; x++) {
diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c
index a55f0edc06c..be33b782fdf 100644
--- a/source/blender/editors/space_sequencer/sequencer_select.c
+++ b/source/blender/editors/space_sequencer/sequencer_select.c
@@ -860,10 +860,7 @@ static int sequencer_borderselect_exec(bContext *C, wmOperator *op)
if (ed == NULL)
return OPERATOR_CANCELLED;
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
mval[0] = rect.xmin;
mval[1] = rect.ymin;
@@ -875,7 +872,7 @@ static int sequencer_borderselect_exec(bContext *C, wmOperator *op)
for (seq = ed->seqbasep->first; seq; seq = seq->next) {
seq_rectf(seq, &rq);
- if (BLI_isect_rctf(&rq, &rectf, NULL)) {
+ if (BLI_rctf_isect(&rq, &rectf, NULL)) {
if (selecting) seq->flag |= SELECT;
else seq->flag &= ~SEQ_ALLSEL;
recurs_sel_seq(seq);
@@ -1112,7 +1109,7 @@ static short select_grouped_effect_link(Editing *ed, Sequence *actseq)
actseq->tmp = SET_INT_IN_POINTER(TRUE);
- for (seq_begin(ed, &iter, TRUE); iter.valid; seq_next(&iter)) {
+ for (BKE_sequence_iterator_begin(ed, &iter, TRUE); iter.valid; BKE_sequence_iterator_next(&iter)) {
seq = iter.seq;
/* Ignore all seqs already selected! */
@@ -1140,8 +1137,8 @@ static short select_grouped_effect_link(Editing *ed, Sequence *actseq)
changed = TRUE;
/* Unfortunately, we must restart checks from the beginning. */
- seq_end(&iter);
- seq_begin(ed, &iter, TRUE);
+ BKE_sequence_iterator_end(&iter);
+ BKE_sequence_iterator_begin(ed, &iter, TRUE);
}
/* Video strips bellow active one, or any strip for audio (order do no matters here!). */
@@ -1150,7 +1147,7 @@ static short select_grouped_effect_link(Editing *ed, Sequence *actseq)
changed = TRUE;
}
}
- seq_end(&iter);
+ BKE_sequence_iterator_end(&iter);
return changed;
}
diff --git a/source/blender/editors/space_sequencer/sequencer_view.c b/source/blender/editors/space_sequencer/sequencer_view.c
new file mode 100644
index 00000000000..92b17393114
--- /dev/null
+++ b/source/blender/editors/space_sequencer/sequencer_view.c
@@ -0,0 +1,234 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2012 Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Blender Foundation,
+ * Sergey Sharybin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+
+/** \file blender/editors/space_sequencer/sequencer_view.c
+ * \ingroup spseq
+ */
+
+#include "MEM_guardedalloc.h"
+
+#include "BLI_utildefines.h"
+
+#include "DNA_scene_types.h"
+
+#include "BKE_context.h"
+#include "BKE_main.h"
+#include "BKE_sequencer.h"
+#include "BKE_screen.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "ED_image.h"
+#include "ED_screen.h"
+#include "ED_space_api.h"
+
+#include "IMB_imbuf.h"
+#include "IMB_imbuf_types.h"
+#include "IMB_colormanagement.h"
+
+#include "UI_view2d.h"
+
+/* own include */
+#include "sequencer_intern.h"
+
+/******************** sample backdrop operator ********************/
+
+typedef struct ImageSampleInfo {
+ ARegionType *art;
+ void *draw_handle;
+ int x, y;
+ int channels;
+
+ unsigned char col[4];
+ float colf[4];
+
+ unsigned char *colp;
+ float *colfp;
+
+ int draw;
+int color_manage;
+} ImageSampleInfo;
+
+static void sample_draw(const bContext *C, ARegion *ar, void *arg_info)
+{
+ Scene *scene = CTX_data_scene(C);
+ ImageSampleInfo *info = arg_info;
+
+ if (info->draw) {
+ ED_image_draw_info(scene, ar, info->color_manage, FALSE, info->channels,
+ info->x, info->y, info->colp, info->colfp, NULL, NULL);
+ }
+}
+
+static void sample_apply(bContext *C, wmOperator *op, wmEvent *event)
+{
+ Main *bmain = CTX_data_main(C);
+ Scene *scene = CTX_data_scene(C);
+ SpaceSeq *sseq = (SpaceSeq *) CTX_wm_space_data(C);
+ ARegion *ar = CTX_wm_region(C);
+ ImBuf *ibuf = sequencer_ibuf_get(bmain, scene, sseq, CFRA, 0);
+ ImageSampleInfo *info = op->customdata;
+ float fx, fy;
+
+ if (ibuf == NULL) {
+ IMB_freeImBuf(ibuf);
+ info->draw = 0;
+ return;
+ }
+
+ UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &fx, &fy);
+
+ fx += (float) ibuf->x / 2.0f;
+ fy += (float) ibuf->y / 2.0f;
+
+ if (fx >= 0.0f && fy >= 0.0f && fx < ibuf->x && fy < ibuf->y) {
+ float *fp;
+ unsigned char *cp;
+ int x = (int) fx, y = (int) fy;
+
+ info->x = x;
+ info->y = y;
+ info->draw = 1;
+ info->channels = ibuf->channels;
+
+ info->colp = NULL;
+ info->colfp = NULL;
+
+ if (ibuf->rect) {
+ cp = (unsigned char *)(ibuf->rect + y * ibuf->x + x);
+
+ info->col[0] = cp[0];
+ info->col[1] = cp[1];
+ info->col[2] = cp[2];
+ info->col[3] = cp[3];
+ info->colp = info->col;
+
+ info->colf[0] = (float)cp[0] / 255.0f;
+ info->colf[1] = (float)cp[1] / 255.0f;
+ info->colf[2] = (float)cp[2] / 255.0f;
+ info->colf[3] = (float)cp[3] / 255.0f;
+ info->colfp = info->colf;
+
+ info->color_manage = FALSE;
+ }
+ if (ibuf->rect_float) {
+ fp = (ibuf->rect_float + (ibuf->channels) * (y * ibuf->x + x));
+
+ info->colf[0] = fp[0];
+ info->colf[1] = fp[1];
+ info->colf[2] = fp[2];
+ info->colf[3] = fp[3];
+ info->colfp = info->colf;
+
+ /* sequencer's image buffers are in non-linear space, need to make them linear */
+ BKE_sequencer_pixel_from_sequencer_space_v4(scene, info->colf);
+
+ info->color_manage = TRUE;
+ }
+ }
+ else {
+ info->draw = 0;
+ }
+
+ IMB_freeImBuf(ibuf);
+ ED_area_tag_redraw(CTX_wm_area(C));
+}
+
+static void sample_exit(bContext *C, wmOperator *op)
+{
+ ImageSampleInfo *info = op->customdata;
+
+ ED_region_draw_cb_exit(info->art, info->draw_handle);
+ ED_area_tag_redraw(CTX_wm_area(C));
+ MEM_freeN(info);
+}
+
+static int sample_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ ARegion *ar = CTX_wm_region(C);
+ SpaceSeq *sseq = CTX_wm_space_seq(C);
+ ImageSampleInfo *info;
+
+ if (sseq->mainb != SEQ_DRAW_IMG_IMBUF)
+ return OPERATOR_CANCELLED;
+
+ info = MEM_callocN(sizeof(ImageSampleInfo), "ImageSampleInfo");
+ info->art = ar->type;
+ info->draw_handle = ED_region_draw_cb_activate(ar->type, sample_draw, info, REGION_DRAW_POST_PIXEL);
+ op->customdata = info;
+
+ sample_apply(C, op, event);
+
+ WM_event_add_modal_handler(C, op);
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+static int sample_modal(bContext *C, wmOperator *op, wmEvent *event)
+{
+ switch (event->type) {
+ case LEFTMOUSE:
+ case RIGHTMOUSE: /* XXX hardcoded */
+ sample_exit(C, op);
+ return OPERATOR_CANCELLED;
+ case MOUSEMOVE:
+ sample_apply(C, op, event);
+ break;
+ }
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+static int sample_cancel(bContext *C, wmOperator *op)
+{
+ sample_exit(C, op);
+
+ return OPERATOR_CANCELLED;
+}
+
+static int sample_poll(bContext *C)
+{
+ return BKE_sequencer_editing_get(CTX_data_scene(C), FALSE) != NULL;
+}
+
+void SEQUENCER_OT_sample(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Sample Color";
+ ot->idname = "SEQUENCER_OT_sample";
+ ot->description = "Use mouse to sample color in current frame";
+
+ /* api callbacks */
+ ot->invoke = sample_invoke;
+ ot->modal = sample_modal;
+ ot->cancel = sample_cancel;
+ ot->poll = sample_poll;
+
+ /* flags */
+ ot->flag = OPTYPE_BLOCKING;
+}
diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c
index cabc761161e..7bfe58cb50a 100644
--- a/source/blender/editors/space_sequencer/space_sequencer.c
+++ b/source/blender/editors/space_sequencer/space_sequencer.c
@@ -57,8 +57,19 @@
#include "UI_resources.h"
#include "UI_view2d.h"
+#include "IMB_imbuf.h"
+
#include "sequencer_intern.h" // own include
+/**************************** common state *****************************/
+
+static void sequencer_scopes_tag_refresh(ScrArea *sa)
+{
+ SpaceSeq *sseq = (SpaceSeq *)sa->spacedata.first;
+
+ sseq->scopes.reference_ibuf = NULL;
+}
+
/* ******************** manage regions ********************* */
ARegion *sequencer_has_buttons_region(ScrArea *sa)
@@ -183,12 +194,27 @@ static SpaceLink *sequencer_new(const bContext *C)
}
/* not spacelink itself */
-static void sequencer_free(SpaceLink *UNUSED(sl))
+static void sequencer_free(SpaceLink *sl)
{
-// SpaceSeq *sseq= (SpaceSequencer*) sl;
-
+ SpaceSeq *sseq = (SpaceSeq *) sl;
+ SequencerScopes *scopes = &sseq->scopes;
+
// XXX if (sseq->gpd) BKE_gpencil_free(sseq->gpd);
+ if (scopes->zebra_ibuf)
+ IMB_freeImBuf(scopes->zebra_ibuf);
+
+ if (scopes->waveform_ibuf)
+ IMB_freeImBuf(scopes->waveform_ibuf);
+
+ if (scopes->sep_waveform_ibuf)
+ IMB_freeImBuf(scopes->sep_waveform_ibuf);
+
+ if (scopes->vector_ibuf)
+ IMB_freeImBuf(scopes->vector_ibuf);
+
+ if (scopes->histogram_ibuf)
+ IMB_freeImBuf(scopes->histogram_ibuf);
}
@@ -290,7 +316,24 @@ static SpaceLink *sequencer_duplicate(SpaceLink *sl)
return (SpaceLink *)sseqn;
}
-
+static void sequencer_listener(ScrArea *sa, wmNotifier *wmn)
+{
+ /* context changes */
+ switch (wmn->category) {
+ case NC_SCENE:
+ switch (wmn->data) {
+ case ND_FRAME:
+ case ND_SEQUENCER:
+ sequencer_scopes_tag_refresh(sa);
+ break;
+ }
+ break;
+ case NC_SPACE:
+ if (wmn->data == ND_SPACE_SEQUENCER)
+ sequencer_scopes_tag_refresh(sa);
+ break;
+ }
+}
/* *********************** sequencer (main) region ************************ */
/* add handlers, stuff you only do once or on area/region changes */
@@ -300,7 +343,10 @@ static void sequencer_main_area_init(wmWindowManager *wm, ARegion *ar)
ListBase *lb;
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
-
+
+// keymap = WM_keymap_find(wm->defaultconf, "Mask Editing", 0, 0);
+// WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
+
keymap = WM_keymap_find(wm->defaultconf, "SequencerCommon", SPACE_SEQ, 0);
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
@@ -409,9 +455,9 @@ static int sequencer_context(const bContext *C, const char *member, bContextData
return TRUE;
}
else if (CTX_data_equals(member, "edit_mask")) {
- Sequence *seq_act = BKE_sequencer_active_get(scene);
- if (seq_act && seq_act->type == SEQ_TYPE_MASK && seq_act->mask) {
- CTX_data_id_pointer_set(result, &seq_act->mask->id);
+ Mask *mask = BKE_sequencer_mask_get(scene);
+ if (mask) {
+ CTX_data_id_pointer_set(result, &mask->id);
}
return TRUE;
}
@@ -468,6 +514,9 @@ static void sequencer_preview_area_init(wmWindowManager *wm, ARegion *ar)
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
+// keymap = WM_keymap_find(wm->defaultconf, "Mask Editing", 0, 0);
+// WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
+
keymap = WM_keymap_find(wm->defaultconf, "SequencerCommon", SPACE_SEQ, 0);
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
@@ -481,13 +530,15 @@ static void sequencer_preview_area_draw(const bContext *C, ARegion *ar)
ScrArea *sa = CTX_wm_area(C);
SpaceSeq *sseq = sa->spacedata.first;
Scene *scene = CTX_data_scene(C);
+ int show_split = scene->ed && scene->ed->over_flag & SEQ_EDIT_OVERLAY_SHOW && sseq->mainb == SEQ_DRAW_IMG_IMBUF;
/* XXX temp fix for wrong setting in sseq->mainb */
if (sseq->mainb == SEQ_DRAW_SEQUENCE) sseq->mainb = SEQ_DRAW_IMG_IMBUF;
- draw_image_seq(C, scene, ar, sseq, scene->r.cfra, 0);
+ if (!show_split || sseq->overlay_type != SEQ_DRAW_OVERLAY_REFERENCE)
+ draw_image_seq(C, scene, ar, sseq, scene->r.cfra, 0, FALSE);
- if (scene->ed && scene->ed->over_flag & SEQ_EDIT_OVERLAY_SHOW && sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
+ if (show_split && sseq->overlay_type != SEQ_DRAW_OVERLAY_CURRENT) {
int over_cfra;
if (scene->ed->over_flag & SEQ_EDIT_OVERLAY_ABS)
@@ -495,8 +546,8 @@ static void sequencer_preview_area_draw(const bContext *C, ARegion *ar)
else
over_cfra = scene->r.cfra + scene->ed->over_ofs;
- if (over_cfra != scene->r.cfra)
- draw_image_seq(C, scene, ar, sseq, scene->r.cfra, over_cfra - scene->r.cfra);
+ if (over_cfra != scene->r.cfra || sseq->overlay_type != SEQ_DRAW_OVERLAY_RECT)
+ draw_image_seq(C, scene, ar, sseq, scene->r.cfra, over_cfra - scene->r.cfra, TRUE);
}
}
@@ -505,8 +556,8 @@ static void sequencer_preview_area_listener(ARegion *ar, wmNotifier *wmn)
{
/* context changes */
switch (wmn->category) {
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL) {
+ case NC_GPENCIL:
+ if (wmn->action == NA_EDITED) {
ED_region_tag_redraw(ar);
}
break;
@@ -559,8 +610,8 @@ static void sequencer_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
{
/* context changes */
switch (wmn->category) {
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL) {
+ case NC_GPENCIL:
+ if (wmn->data == ND_DATA) {
ED_region_tag_redraw(ar);
}
break;
@@ -602,6 +653,7 @@ void ED_spacetype_sequencer(void)
st->context = sequencer_context;
st->dropboxes = sequencer_dropboxes;
st->refresh = sequencer_refresh;
+ st->listener = sequencer_listener;
/* regions: main window */
art = MEM_callocN(sizeof(ARegionType), "spacetype sequencer region");
diff --git a/source/blender/editors/space_text/text_draw.c b/source/blender/editors/space_text/text_draw.c
index 8be5b644afb..a68524fcdd6 100644
--- a/source/blender/editors/space_text/text_draw.c
+++ b/source/blender/editors/space_text/text_draw.c
@@ -39,6 +39,7 @@
#include "BLF_api.h"
#include "BLI_blenlib.h"
+#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "DNA_text_types.h"
@@ -50,7 +51,6 @@
#include "BKE_suggestions.h"
#include "BKE_text.h"
-
#include "BIF_gl.h"
#include "ED_datafiles.h"
@@ -1232,7 +1232,7 @@ static void draw_textscroll(SpaceText *st, rcti *scroll, rcti *back)
uiWidgetScrollDraw(&wcol, scroll, &st->txtbar, (st->flags & ST_SCROLL_SELECT) ? UI_SCROLL_PRESSED : 0);
uiSetRoundBox(UI_CNR_ALL);
- rad = 0.4f * MIN2(st->txtscroll.xmax - st->txtscroll.xmin, st->txtscroll.ymax - st->txtscroll.ymin);
+ rad = 0.4f * mini(BLI_rcti_size_x(&st->txtscroll), BLI_rcti_size_y(&st->txtscroll));
UI_GetThemeColor3ubv(TH_HILITE, col);
col[3] = 48;
glColor4ubv(col);
@@ -1741,6 +1741,7 @@ void draw_text_main(SpaceText *st, ARegion *ar)
char linenr[12];
int i, x, y, winx, linecount = 0, lineno = 0;
int wraplinecount = 0, wrap_skip = 0;
+ int margin_column_x;
if (st->lheight) st->viewlines = (int)ar->winy / st->lheight;
else st->viewlines = 0;
@@ -1845,16 +1846,20 @@ void draw_text_main(SpaceText *st, ARegion *ar)
if (st->flags & ST_SHOW_MARGIN) {
UI_ThemeColor(TH_HILITE);
- glBegin(GL_LINES);
- glVertex2i(x + st->cwidth * st->margin_column, 0);
- glVertex2i(x + st->cwidth * st->margin_column, ar->winy - 2);
- glEnd();
+ margin_column_x = x + st->cwidth * (st->margin_column - st->left);
+
+ if (margin_column_x >= x) {
+ glBegin(GL_LINES);
+ glVertex2i(margin_column_x, 0);
+ glVertex2i(margin_column_x, ar->winy - 2);
+ glEnd();
+ }
}
/* draw other stuff */
draw_brackets(st, ar);
draw_markers(st, ar);
- glTranslatef(0.375f, 0.375f, 0.0f); /* XXX scroll requires exact pixel space */
+ glTranslatef(GLA_PIXEL_OFS, GLA_PIXEL_OFS, 0.0f); /* XXX scroll requires exact pixel space */
draw_textscroll(st, &scroll, &back);
draw_documentation(st, ar);
draw_suggestion_list(st, ar);
diff --git a/source/blender/editors/space_text/text_header.c b/source/blender/editors/space_text/text_header.c
index b0cd6aeaab4..7dc3ec1ac60 100644
--- a/source/blender/editors/space_text/text_header.c
+++ b/source/blender/editors/space_text/text_header.c
@@ -59,17 +59,12 @@
#include "WM_types.h"
-
-
-
#ifdef WITH_PYTHON
// XXX #include "BPY_menus.h"
#endif
#include "text_intern.h"
-#define HEADER_PATH_MAX 260
-
/* ************************ header area region *********************** */
/************************** properties ******************************/
diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c
index f0275fb6584..b2fb16ff7fe 100644
--- a/source/blender/editors/space_text/text_ops.c
+++ b/source/blender/editors/space_text/text_ops.c
@@ -310,7 +310,8 @@ void TEXT_OT_open(wmOperatorType *ot)
ot->flag = OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE | TEXTFILE | PYSCRIPTFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY); //XXX TODO, relative_path
+ WM_operator_properties_filesel(ot, FOLDERFILE | TEXTFILE | PYSCRIPTFILE, FILE_SPECIAL, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY); //XXX TODO, relative_path
RNA_def_boolean(ot->srna, "internal", 0, "Make internal", "Make text file internal after loading");
}
@@ -570,7 +571,8 @@ void TEXT_OT_save_as(wmOperatorType *ot)
ot->poll = text_edit_poll;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE | TEXTFILE | PYSCRIPTFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY); //XXX TODO, relative_path
+ WM_operator_properties_filesel(ot, FOLDERFILE | TEXTFILE | PYSCRIPTFILE, FILE_SPECIAL, FILE_SAVE,
+ WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY); //XXX TODO, relative_path
}
/******************* run script operator *********************/
@@ -600,9 +602,12 @@ static int text_run_script(bContext *C, ReportList *reports)
/* Don't report error messages while live editing */
if (!is_live) {
- if (text->curl != curl_prev || curc_prev != text->curc) {
- text_update_cursor_moved(C);
- WM_event_add_notifier(C, NC_TEXT | NA_EDITED, text);
+ /* text may have freed its self */
+ if (CTX_data_edit_text(C) == text) {
+ if (text->curl != curl_prev || curc_prev != text->curc) {
+ text_update_cursor_moved(C);
+ WM_event_add_notifier(C, NC_TEXT | NA_EDITED, text);
+ }
}
BKE_report(reports, RPT_ERROR, "Python script fail, look in the console for now...");
@@ -2407,8 +2412,8 @@ static int text_scroll_bar_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* jump scroll, works in v2d but needs to be added here too :S */
if (event->type == MIDDLEMOUSE) {
- tsc->old[0] = ar->winrct.xmin + (st->txtbar.xmax + st->txtbar.xmin) / 2;
- tsc->old[1] = ar->winrct.ymin + (st->txtbar.ymax + st->txtbar.ymin) / 2;
+ tsc->old[0] = ar->winrct.xmin + BLI_rcti_cent_x(&st->txtbar);
+ tsc->old[1] = ar->winrct.ymin + BLI_rcti_cent_y(&st->txtbar);
tsc->delta[0] = 0;
tsc->delta[1] = 0;
@@ -2928,8 +2933,11 @@ static int text_insert_invoke(bContext *C, wmOperator *op, wmEvent *event)
// if (!RNA_struct_property_is_set(op->ptr, "text")) { /* always set from keymap XXX */
if (!RNA_string_length(op->ptr, "text")) {
- /* if alt/ctrl/super are pressed pass through */
- if (event->ctrl || event->oskey) {
+ /* if alt/ctrl/super are pressed pass through except for utf8 character event
+ * (when input method are used for utf8 inputs, the user may assign key event
+ * including alt/ctrl/super like ctrl+m to commit utf8 string. in such case,
+ * the modifiers in the utf8 character event make no sense.) */
+ if ((event->ctrl || event->oskey) && !event->utf8_buf[0]) {
return OPERATOR_PASS_THROUGH;
}
else {
@@ -3344,7 +3352,7 @@ void TEXT_OT_to_3d_object(wmOperatorType *ot)
/* identifiers */
ot->name = "To 3D Object";
ot->idname = "TEXT_OT_to_3d_object";
- ot->description = "Create 3d text object from active text data block";
+ ot->description = "Create 3D text object from active text data block";
/* api callbacks */
ot->exec = text_to_3d_object_exec;
diff --git a/source/blender/editors/space_text/text_python.c b/source/blender/editors/space_text/text_python.c
index f980e19e9c8..966afe22e42 100644
--- a/source/blender/editors/space_text/text_python.c
+++ b/source/blender/editors/space_text/text_python.c
@@ -180,13 +180,9 @@ static void confirm_suggestion(Text *text, int skipleft)
}
// XXX
-#define L_MOUSE 0
-#define M_MOUSE 0
-#define R_MOUSE 0
#define LR_SHIFTKEY 0
#define LR_ALTKEY 0
#define LR_CTRLKEY 0
-#define LR_OSKEY 0
// XXX
static int doc_scroll = 0;
diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c
index 01d27aaa0b3..13c1938d77c 100644
--- a/source/blender/editors/space_time/space_time.c
+++ b/source/blender/editors/space_time/space_time.c
@@ -208,6 +208,9 @@ static void time_draw_cache(SpaceTime *stime, Object *ob)
if (pid->cache->flag & PTCACHE_BAKED) {
col[0] -= 0.4f; col[1] -= 0.4f; col[2] -= 0.4f;
}
+ else if (pid->cache->flag & PTCACHE_OUTDATED) {
+ col[0] += 0.4f; col[1] += 0.4f; col[2] += 0.4f;
+ }
glColor4fv(col);
glEnableClientState(GL_VERTEX_ARRAY);
@@ -398,6 +401,7 @@ static void time_listener(ScrArea *sa, wmNotifier *wmn)
case ND_POINTCACHE:
case ND_MODIFIER:
case ND_PARTICLE:
+ case ND_KEYS:
ED_area_tag_refresh(sa);
ED_area_tag_redraw(sa);
break;
@@ -699,4 +703,3 @@ void ED_spacetype_time(void)
BKE_spacetype_register(st);
}
-
diff --git a/source/blender/editors/space_time/time_ops.c b/source/blender/editors/space_time/time_ops.c
index 189c8bfc7d0..9067fb6933f 100644
--- a/source/blender/editors/space_time/time_ops.c
+++ b/source/blender/editors/space_time/time_ops.c
@@ -151,7 +151,7 @@ static int time_view_all_exec(bContext *C, wmOperator *UNUSED(op))
v2d->cur.xmax = (float)PEFRA;
/* we need an extra "buffer" factor on either side so that the endpoints are visible */
- extra = 0.01f * (v2d->cur.xmax - v2d->cur.xmin);
+ extra = 0.01f * BLI_rctf_size_x(&v2d->cur);
v2d->cur.xmin -= extra;
v2d->cur.xmax += extra;
diff --git a/source/blender/editors/space_userpref/space_userpref.c b/source/blender/editors/space_userpref/space_userpref.c
index 5376b82f24c..1ea3876f5cc 100644
--- a/source/blender/editors/space_userpref/space_userpref.c
+++ b/source/blender/editors/space_userpref/space_userpref.c
@@ -80,7 +80,7 @@ static SpaceLink *userpref_new(const bContext *UNUSED(C))
/* not spacelink itself */
static void userpref_free(SpaceLink *UNUSED(sl))
{
-// SpaceUserPref *spref= (SpaceUserPref*) sl;
+// SpaceUserPref *spref = (SpaceUserPref *)sl;
}
diff --git a/source/blender/editors/space_view3d/drawanimviz.c b/source/blender/editors/space_view3d/drawanimviz.c
index f8d942b4fd1..135e9b891bb 100644
--- a/source/blender/editors/space_view3d/drawanimviz.c
+++ b/source/blender/editors/space_view3d/drawanimviz.c
@@ -43,7 +43,6 @@
#include "DNA_view3d_types.h"
#include "DNA_object_types.h"
-#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_dlrbTree.h"
@@ -63,9 +62,9 @@
/* ************************************ Motion Paths ************************************* */
-// TODO:
-// - options to draw paths with lines
-// - include support for editing the path verts
+/* TODO:
+ * - options to draw paths with lines
+ * - include support for editing the path verts */
/* Set up drawing environment for drawing motion paths */
void draw_motion_paths_init(View3D *v3d, ARegion *ar)
@@ -80,7 +79,7 @@ void draw_motion_paths_init(View3D *v3d, ARegion *ar)
/* Draw the given motion path for an Object or a Bone
* - assumes that the viewport has already been initialized properly
- * i.e. draw_motion_paths_init() has been called
+ * i.e. draw_motion_paths_init() has been called
*/
void draw_motion_path_instance(Scene *scene,
Object *ob, bPoseChannel *pchan, bAnimVizSettings *avs, bMotionPath *mpath)
@@ -108,11 +107,6 @@ void draw_motion_path_instance(Scene *scene,
* - abort if whole range is past ends of path
* - otherwise clamp endpoints to extents of path
*/
- if ((sfra > mpath->end_frame) || (efra < mpath->start_frame)) {
- /* whole path is out of bounds */
- return;
- }
-
if (sfra < mpath->start_frame) {
/* start clamp */
sfra = mpath->start_frame;
@@ -122,9 +116,14 @@ void draw_motion_path_instance(Scene *scene,
efra = mpath->end_frame;
}
+ if ((sfra > mpath->end_frame) || (efra < mpath->start_frame)) {
+ /* whole path is out of bounds */
+ return;
+ }
+
len = efra - sfra;
- if (len <= 0) {
+ if ((len <= 0) || (mpath->points == NULL)) {
return;
}
@@ -135,10 +134,10 @@ void draw_motion_path_instance(Scene *scene,
/* draw curve-line of path */
glShadeModel(GL_SMOOTH);
- glBegin(GL_LINE_STRIP);
+ glBegin(GL_LINE_STRIP);
for (i = 0, mpv = mpv_start; i < len; i++, mpv++) {
short sel = (pchan) ? (pchan->bone->flag & BONE_SELECTED) : (ob->flag & SELECT);
- float intensity; /* how faint */
+ float intensity; /* how faint */
/* set color
* - more intense for active/selected bones, less intense for unselected bones
@@ -181,7 +180,7 @@ void draw_motion_path_instance(Scene *scene,
UI_ThemeColorBlendShade(TH_CFRAME, TH_BACK, intensity, 10);
}
- /* draw a vertex with this color */
+ /* draw a vertex with this color */
glVertex3fv(mpv->co);
}
@@ -223,7 +222,7 @@ void draw_motion_path_instance(Scene *scene,
UI_ThemeColor(TH_TEXT_HI);
}
- // XXX, this isn't up to date but probably should be kept so.
+ /* XXX, this isn't up to date but probably should be kept so. */
invert_m4_m4(ob->imat, ob->obmat);
/* Draw frame numbers at each framestep value */
@@ -231,7 +230,7 @@ void draw_motion_path_instance(Scene *scene,
unsigned char col[4];
UI_GetThemeColor3ubv(TH_TEXT_HI, col);
col[3] = 255;
-
+
for (i = 0, mpv = mpv_start; i < len; i += stepsize, mpv += stepsize) {
char numstr[32];
float co[3];
diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c
index 33aada7b811..31df13343ce 100644
--- a/source/blender/editors/space_view3d/drawarmature.c
+++ b/source/blender/editors/space_view3d/drawarmature.c
@@ -171,7 +171,7 @@ static short set_pchan_glColor(short colCode, int boneflag, short constflag)
}
else {
if ((boneflag & BONE_DRAW_ACTIVE) && (boneflag & BONE_SELECTED)) {
- UI_ThemeColorShade(TH_BONE_POSE, 40);
+ UI_ThemeColor(TH_BONE_POSE_ACTIVE);
}
else if (boneflag & BONE_DRAW_ACTIVE) {
UI_ThemeColorBlend(TH_WIRE, TH_BONE_POSE, 0.15f); /* unselected active */
@@ -272,7 +272,7 @@ static short set_pchan_glColor(short colCode, int boneflag, short constflag)
case PCHAN_COLOR_LINEBONE:
{
/* inner part in background color or constraint */
- if ( (constflag) && ((bcolor == NULL) || (bcolor->flag & TH_WIRECOLOR_CONSTCOLS)) ) {
+ if ((constflag) && ((bcolor == NULL) || (bcolor->flag & TH_WIRECOLOR_CONSTCOLS))) {
if (constflag & PCHAN_HAS_TARGET) glColor3ub(255, 150, 0);
else if (constflag & PCHAN_HAS_IK) glColor3ub(255, 255, 0);
else if (constflag & PCHAN_HAS_SPLINEIK) glColor3ub(200, 255, 0);
@@ -686,13 +686,13 @@ static void draw_sphere_bone_dist(float smat[][4], float imat[][4], bPoseChannel
tailvec = headvec;
tail = head;
zero_v3(dirvec);
- dirvec[0] = 0.00001; // XXX. weak but ok
+ dirvec[0] = 0.00001; /* XXX. weak but ok */
}
else if (tail - view_dist > head) {
headvec = tailvec;
head = tail;
zero_v3(dirvec);
- dirvec[0] = 0.00001; // XXX. weak but ok
+ dirvec[0] = 0.00001; /* XXX. weak but ok */
}
}
@@ -709,9 +709,9 @@ static void draw_sphere_bone_dist(float smat[][4], float imat[][4], bPoseChannel
glBegin(GL_QUAD_STRIP);
for (a = 0; a < 16; a++) {
- vec[0] = -*(si + a) * dirvec[0] + *(co + a) * norvec[0];
- vec[1] = -*(si + a) * dirvec[1] + *(co + a) * norvec[1];
- vec[2] = -*(si + a) * dirvec[2] + *(co + a) * norvec[2];
+ vec[0] = -si[a] * dirvec[0] + co[a] * norvec[0];
+ vec[1] = -si[a] * dirvec[1] + co[a] * norvec[1];
+ vec[2] = -si[a] * dirvec[2] + co[a] * norvec[2];
madd_v3_v3v3fl(vec1, headvec, vec, head);
madd_v3_v3v3fl(vec2, headvec, vec, head + dist);
@@ -723,9 +723,9 @@ static void draw_sphere_bone_dist(float smat[][4], float imat[][4], bPoseChannel
}
for (a = 15; a >= 0; a--) {
- vec[0] = *(si + a) * dirvec[0] + *(co + a) * norvec[0];
- vec[1] = *(si + a) * dirvec[1] + *(co + a) * norvec[1];
- vec[2] = *(si + a) * dirvec[2] + *(co + a) * norvec[2];
+ vec[0] = si[a] * dirvec[0] + co[a] * norvec[0];
+ vec[1] = si[a] * dirvec[1] + co[a] * norvec[1];
+ vec[2] = si[a] * dirvec[2] + co[a] * norvec[2];
madd_v3_v3v3fl(vec1, tailvec, vec, tail);
madd_v3_v3v3fl(vec2, tailvec, vec, tail + dist);
@@ -737,9 +737,9 @@ static void draw_sphere_bone_dist(float smat[][4], float imat[][4], bPoseChannel
}
/* make it cyclic... */
- vec[0] = -*(si) * dirvec[0] + *(co) * norvec[0];
- vec[1] = -*(si) * dirvec[1] + *(co) * norvec[1];
- vec[2] = -*(si) * dirvec[2] + *(co) * norvec[2];
+ vec[0] = -si[0] * dirvec[0] + co[0] * norvec[0];
+ vec[1] = -si[0] * dirvec[1] + co[0] * norvec[1];
+ vec[2] = -si[0] * dirvec[2] + co[0] * norvec[2];
madd_v3_v3v3fl(vec1, headvec, vec, head);
madd_v3_v3v3fl(vec2, headvec, vec, head + dist);
@@ -1019,7 +1019,7 @@ static void draw_line_bone(int armflag, int boneflag, short constflag, unsigned
/* Draw root point if we are not connected */
if ((boneflag & BONE_CONNECTED) == 0) {
- if (G.f & G_PICKSEL) { // no bitmap in selection mode, crashes 3d cards...
+ if (G.f & G_PICKSEL) { /* no bitmap in selection mode, crashes 3d cards... */
glLoadName(id | BONESEL_ROOT);
glBegin(GL_POINTS);
glVertex3f(0.0f, 0.0f, 0.0f);
@@ -1151,7 +1151,7 @@ static void draw_b_bone(const short dt, int armflag, int boneflag, short constfl
glScalef(length, length, length);
draw_bone_points(dt, armflag, boneflag, id);
glPopMatrix();
- length *= 0.95f; // make vertices visible
+ length *= 0.95f; /* make vertices visible */
}
/* colors for modes */
@@ -1225,7 +1225,7 @@ static void draw_wire_bone_segments(bPoseChannel *pchan, Mat4 *bbones, float len
glBegin(GL_LINES);
glVertex3f(0.0f, 0.0f, 0.0f);
glVertex3f(0.0f, dlen, 0.0f);
- glEnd(); // GL_LINES
+ glEnd(); /* GL_LINES */
glPopMatrix();
}
@@ -1266,7 +1266,7 @@ static void draw_wire_bone(const short dt, int armflag, int boneflag, short cons
glScalef(length, length, length);
draw_bone_points(dt, armflag, boneflag, id);
glPopMatrix();
- length *= 0.95f; // make vertices visible
+ length *= 0.95f; /* make vertices visible */
}
/* this chunk not in object mode */
@@ -1416,7 +1416,9 @@ static void pchan_draw_IK_root_lines(bPoseChannel *pchan, short only_temp)
/* Find the chain's root */
while (parchan->parent) {
segcount++;
- if (segcount == data->rootbone || segcount > 255) break; // 255 is weak
+ if (segcount == data->rootbone || segcount > 255) {
+ break; /* 255 is weak */
+ }
parchan = parchan->parent;
}
if (parchan)
@@ -1440,13 +1442,13 @@ static void pchan_draw_IK_root_lines(bPoseChannel *pchan, short only_temp)
/* Find the chain's root */
while (parchan->parent) {
segcount++;
- // FIXME: revise the breaking conditions
- if (segcount == data->chainlen || segcount > 255) break; // 255 is weak
+ /* FIXME: revise the breaking conditions */
+ if (segcount == data->chainlen || segcount > 255) break; /* 255 is weak */
parchan = parchan->parent;
}
- if (parchan) // XXX revise the breaking conditions to only stop at the tail?
+ if (parchan) /* XXX revise the breaking conditions to only stop at the tail? */
glVertex3fv(parchan->pose_head);
-
+
glEnd();
setlinestyle(0);
}
@@ -1538,7 +1540,7 @@ static void draw_pose_dofs(Object *ob)
for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) {
bone = pchan->bone;
- if ( (bone) && !(bone->flag & (BONE_HIDDEN_P | BONE_HIDDEN_PG))) {
+ if ((bone != NULL) && !(bone->flag & (BONE_HIDDEN_P | BONE_HIDDEN_PG))) {
if (bone->flag & BONE_SELECTED) {
if (bone->layer & arm->layer) {
if (pchan->ikflag & (BONE_IK_XLIMIT | BONE_IK_ZLIMIT)) {
@@ -1594,7 +1596,7 @@ static void draw_pose_dofs(Object *ob)
theta = RAD2DEGF(0.5f * (pchan->limitmin[2] + pchan->limitmax[2]));
glRotatef(theta, 0.0f, 0.0f, 1.0f);
- glColor3ub(50, 50, 255); // blue, Z axis limit
+ glColor3ub(50, 50, 255); /* blue, Z axis limit */
glBegin(GL_LINE_STRIP);
for (a = -16; a <= 16; a++) {
/* *0.5f here comes from M_PI/360.0f when rotations were still in degrees */
@@ -1611,14 +1613,14 @@ static void draw_pose_dofs(Object *ob)
glEnd();
glRotatef(-theta, 0.0f, 0.0f, 1.0f);
- }
+ }
if (pchan->ikflag & BONE_IK_XLIMIT) {
/* OpenGL requires rotations in degrees; so we're taking the average angle here */
theta = RAD2DEGF(0.5f * (pchan->limitmin[0] + pchan->limitmax[0]));
glRotatef(theta, 1.0f, 0.0f, 0.0f);
- glColor3ub(255, 50, 50); // Red, X axis limit
+ glColor3ub(255, 50, 50); /* Red, X axis limit */
glBegin(GL_LINE_STRIP);
for (a = -16; a <= 16; a++) {
/* *0.5f here comes from M_PI/360.0f when rotations were still in degrees */
@@ -1699,8 +1701,8 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
/* 1) bone must be visible, 2) for OpenGL select-drawing cannot have unselectable [#27194]
* NOTE: this is the only case with (NO_DEFORM == 0) flag, as this is for envelope influence drawing
*/
- if ( (bone->flag & (BONE_HIDDEN_P | BONE_NO_DEFORM | BONE_HIDDEN_PG)) == 0 &&
- ((G.f & G_PICKSEL) == 0 || (bone->flag & BONE_UNSELECTABLE) == 0) )
+ if (((bone->flag & (BONE_HIDDEN_P | BONE_NO_DEFORM | BONE_HIDDEN_PG)) == 0) &&
+ ((G.f & G_PICKSEL) == 0 || (bone->flag & BONE_UNSELECTABLE) == 0))
{
if (bone->flag & (BONE_SELECTED)) {
if (bone->layer & arm->layer)
@@ -1730,8 +1732,8 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
arm->layer_used |= bone->layer;
/* 1) bone must be visible, 2) for OpenGL select-drawing cannot have unselectable [#27194] */
- if ( (bone->flag & (BONE_HIDDEN_P | BONE_HIDDEN_PG)) == 0 &&
- ((G.f & G_PICKSEL) == 0 || (bone->flag & BONE_UNSELECTABLE) == 0) )
+ if (((bone->flag & (BONE_HIDDEN_P | BONE_HIDDEN_PG)) == 0) &&
+ ((G.f & G_PICKSEL) == 0 || (bone->flag & BONE_UNSELECTABLE) == 0))
{
if (bone->layer & arm->layer) {
int use_custom = (pchan->custom) && !(arm->flag & ARM_NO_CUSTOM);
@@ -1746,8 +1748,9 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
/* catch exception for bone with hidden parent */
flag = bone->flag;
- if ( (bone->parent) && (bone->parent->flag & (BONE_HIDDEN_P | BONE_HIDDEN_PG)) )
+ if ((bone->parent) && (bone->parent->flag & (BONE_HIDDEN_P | BONE_HIDDEN_PG))) {
flag &= ~BONE_CONNECTED;
+ }
/* set temporary flag for drawing bone as active, but only if selected */
if (bone == arm->act_bone)
@@ -1792,7 +1795,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
}
if (index != -1)
- index += 0x10000; // pose bones count in higher 2 bytes only
+ index += 0x10000; /* pose bones count in higher 2 bytes only */
}
/* very very confusing... but in object mode, solid draw, we cannot do glLoadName yet,
@@ -1817,8 +1820,8 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
bone = pchan->bone;
/* 1) bone must be visible, 2) for OpenGL select-drawing cannot have unselectable [#27194] */
- if ( (bone->flag & (BONE_HIDDEN_P | BONE_HIDDEN_PG)) == 0 &&
- ((G.f & G_PICKSEL) == 0 || (bone->flag & BONE_UNSELECTABLE) == 0) )
+ if (((bone->flag & (BONE_HIDDEN_P | BONE_HIDDEN_PG)) == 0) &&
+ ((G.f & G_PICKSEL) == 0 || (bone->flag & BONE_UNSELECTABLE) == 0) )
{
if (bone->layer & arm->layer) {
if (pchan->custom) {
@@ -1861,7 +1864,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
}
if (index != -1)
- index += 0x10000; // pose bones count in higher 2 bytes only
+ index += 0x10000; /* pose bones count in higher 2 bytes only */
}
/* stick or wire bones have not been drawn yet so don't clear object selection in this case */
if (ELEM(arm->drawtype, ARM_LINE, ARM_WIRE) == 0 && draw_wire) {
@@ -1893,18 +1896,18 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
arm->layer_used |= bone->layer;
/* 1) bone must be visible, 2) for OpenGL select-drawing cannot have unselectable [#27194] */
- if ( (bone->flag & (BONE_HIDDEN_P | BONE_HIDDEN_PG)) == 0 &&
- ((G.f & G_PICKSEL) == 0 || (bone->flag & BONE_UNSELECTABLE) == 0) )
+ if (((bone->flag & (BONE_HIDDEN_P | BONE_HIDDEN_PG)) == 0) &&
+ ((G.f & G_PICKSEL) == 0 || (bone->flag & BONE_UNSELECTABLE) == 0))
{
if (bone->layer & arm->layer) {
const short constflag = pchan->constflag;
if ((do_dashed & 1) && (pchan->parent)) {
/* Draw a line from our root to the parent's tip
- * - only if V3D_HIDE_HELPLINES is enabled...
+ * - only if V3D_HIDE_HELPLINES is enabled...
*/
- if ( (do_dashed & 2) && ((bone->flag & BONE_CONNECTED) == 0) ) {
+ if ((do_dashed & 2) && ((bone->flag & BONE_CONNECTED) == 0)) {
if (arm->flag & ARM_POSEMODE) {
- glLoadName(index & 0xFFFF); // object tag, for bordersel optim
+ glLoadName(index & 0xFFFF); /* object tag, for bordersel optim */
UI_ThemeColor(TH_WIRE);
}
setlinestyle(3);
@@ -1922,15 +1925,15 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
if (constflag & PCHAN_HAS_IK) {
if (bone->flag & BONE_SELECTED) {
if (constflag & PCHAN_HAS_TARGET) glColor3ub(200, 120, 0);
- else glColor3ub(200, 200, 50); // add theme!
-
+ else glColor3ub(200, 200, 50); /* add theme! */
+
glLoadName(index & 0xFFFF);
pchan_draw_IK_root_lines(pchan, !(do_dashed & 2));
}
}
else if (constflag & PCHAN_HAS_SPLINEIK) {
if (bone->flag & BONE_SELECTED) {
- glColor3ub(150, 200, 50); // add theme!
+ glColor3ub(150, 200, 50); /* add theme! */
glLoadName(index & 0xFFFF);
pchan_draw_IK_root_lines(pchan, !(do_dashed & 2));
@@ -2045,7 +2048,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
}
/* Draw additional axes on the bone tail */
- if ( (arm->flag & ARM_DRAWAXES) && (arm->flag & ARM_POSEMODE) ) {
+ if ((arm->flag & ARM_DRAWAXES) && (arm->flag & ARM_POSEMODE)) {
glPushMatrix();
copy_m4_m4(bmat, pchan->pose_mat);
bone_matrix_translate_y(bmat, pchan->bone->length);
@@ -2132,8 +2135,9 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, const short dt)
/* catch exception for bone with hidden parent */
flag = eBone->flag;
- if ( (eBone->parent) && !EBONE_VISIBLE(arm, eBone->parent))
+ if ((eBone->parent) && !EBONE_VISIBLE(arm, eBone->parent)) {
flag &= ~BONE_CONNECTED;
+ }
/* set temporary flag for drawing bone as active, but only if selected */
if (eBone == arm->act_edbone)
@@ -2174,8 +2178,9 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, const short dt)
/* catch exception for bone with hidden parent */
flag = eBone->flag;
- if ( (eBone->parent) && !EBONE_VISIBLE(arm, eBone->parent))
+ if ((eBone->parent) && !EBONE_VISIBLE(arm, eBone->parent)) {
flag &= ~BONE_CONNECTED;
+ }
/* set temporary flag for drawing bone as active, but only if selected */
if (eBone == arm->act_edbone)
@@ -2205,7 +2210,7 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, const short dt)
/* offset to parent */
if (eBone->parent) {
UI_ThemeColor(TH_WIRE);
- glLoadName(-1); // -1 here is OK!
+ glLoadName(-1); /* -1 here is OK! */
setlinestyle(3);
glBegin(GL_LINES);
@@ -2221,13 +2226,20 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, const short dt)
}
/* restore */
- if (index != -1) glLoadName(-1);
- if (ELEM(arm->drawtype, ARM_LINE, ARM_WIRE)) ;
- else if (dt > OB_WIRE) bglPolygonOffset(rv3d->dist, 0.0f);
+ if (index != -1) {
+ glLoadName(-1);
+ }
+
+ if (ELEM(arm->drawtype, ARM_LINE, ARM_WIRE)) {
+ /* pass */
+ }
+ else if (dt > OB_WIRE) {
+ bglPolygonOffset(rv3d->dist, 0.0f);
+ }
/* finally names and axes */
if (arm->flag & (ARM_DRAWNAMES | ARM_DRAWAXES)) {
- // patch for several 3d cards (IBM mostly) that crash on GL_SELECT with text drawing
+ /* patch for several 3d cards (IBM mostly) that crash on GL_SELECT with text drawing */
if ((G.f & G_PICKSEL) == 0) {
float vec[3];
unsigned char col[4];
@@ -2376,7 +2388,11 @@ static void draw_ghost_poses_range(Scene *scene, View3D *v3d, ARegion *ar, Base
}
glDisable(GL_BLEND);
if (v3d->zbuf) glEnable(GL_DEPTH_TEST);
-
+
+ /* before disposing of temp pose, use it to restore object to a sane state */
+ BKE_animsys_evaluate_animdata(scene, &ob->id, adt, (float)cfrao, ADT_RECALC_ALL);
+
+ /* clean up temporary pose */
ghost_poses_tag_unselected(ob, 1); /* unhide unselected bones if need be */
BKE_pose_free(posen);
@@ -2384,7 +2400,6 @@ static void draw_ghost_poses_range(Scene *scene, View3D *v3d, ARegion *ar, Base
CFRA = cfrao;
ob->pose = poseo;
arm->flag = flago;
- BKE_pose_rebuild(ob, ob->data);
ob->mode |= OB_MODE_POSE;
ob->ipoflag = ipoflago;
}
@@ -2455,7 +2470,11 @@ static void draw_ghost_poses_keys(Scene *scene, View3D *v3d, ARegion *ar, Base *
}
glDisable(GL_BLEND);
if (v3d->zbuf) glEnable(GL_DEPTH_TEST);
-
+
+ /* before disposing of temp pose, use it to restore object to a sane state */
+ BKE_animsys_evaluate_animdata(scene, &ob->id, adt, (float)cfrao, ADT_RECALC_ALL);
+
+ /* clean up temporary pose */
ghost_poses_tag_unselected(ob, 1); /* unhide unselected bones if need be */
BLI_dlrbTree_free(&keys);
BKE_pose_free(posen);
@@ -2464,7 +2483,6 @@ static void draw_ghost_poses_keys(Scene *scene, View3D *v3d, ARegion *ar, Base *
CFRA = cfrao;
ob->pose = poseo;
arm->flag = flago;
- BKE_pose_rebuild(ob, ob->data);
ob->mode |= OB_MODE_POSE;
}
@@ -2542,7 +2560,11 @@ static void draw_ghost_poses(Scene *scene, View3D *v3d, ARegion *ar, Base *base)
}
glDisable(GL_BLEND);
if (v3d->zbuf) glEnable(GL_DEPTH_TEST);
-
+
+ /* before disposing of temp pose, use it to restore object to a sane state */
+ BKE_animsys_evaluate_animdata(scene, &ob->id, adt, (float)cfrao, ADT_RECALC_ALL);
+
+ /* clean up temporary pose */
ghost_poses_tag_unselected(ob, 1); /* unhide unselected bones if need be */
BKE_pose_free(posen);
@@ -2550,7 +2572,6 @@ static void draw_ghost_poses(Scene *scene, View3D *v3d, ARegion *ar, Base *base)
CFRA = cfrao;
ob->pose = poseo;
arm->flag = flago;
- BKE_pose_rebuild(ob, ob->data);
ob->mode |= OB_MODE_POSE;
}
@@ -2574,7 +2595,7 @@ int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
const float white[4] = {1.0f, 1.0f, 1.0f, 1.0f};
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white);
glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
- glFrontFace((ob->transflag & OB_NEG_SCALE) ? GL_CW : GL_CCW); // only for lighting...
+ glFrontFace((ob->transflag & OB_NEG_SCALE) ? GL_CW : GL_CCW); /* only for lighting... */
}
/* arm->flag is being used to detect mode... */
diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c
index 19696b2b0e0..e4c21a9c2c8 100644
--- a/source/blender/editors/space_view3d/drawmesh.c
+++ b/source/blender/editors/space_view3d/drawmesh.c
@@ -71,7 +71,7 @@
#include "ED_mesh.h"
#include "ED_uvedit.h"
-#include "view3d_intern.h" // own include
+#include "view3d_intern.h" /* own include */
/* user data structures for derived mesh callbacks */
typedef struct drawMeshFaceSelect_userData {
@@ -179,7 +179,7 @@ static DMDrawOption draw_mesh_face_select__drawFaceOptsInv(void *userData, int i
return DM_DRAW_OPTION_SKIP;
}
-void draw_mesh_face_select(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm)
+static void draw_mesh_face_select(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm)
{
drawMeshFaceSelect_userData data;
@@ -214,7 +214,7 @@ void draw_mesh_face_select(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm)
dm->drawMappedEdges(dm, draw_mesh_face_select__setSelectOpts, &data);
setlinestyle(0);
- bglPolygonOffset(rv3d->dist, 0.0); // resets correctly now, even after calling accumulated offsets
+ bglPolygonOffset(rv3d->dist, 0.0); /* resets correctly now, even after calling accumulated offsets */
BLI_edgehash_free(data.eh, NULL);
}
@@ -223,7 +223,7 @@ void draw_mesh_face_select(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm)
static Material *give_current_material_or_def(Object *ob, int matnr)
{
- extern Material defmaterial; // render module abuse...
+ extern Material defmaterial; /* render module abuse... */
Material *ma = give_current_material(ob, matnr);
return ma ? ma : &defmaterial;
@@ -248,7 +248,7 @@ static int set_draw_settings_cached(int clearcache, MTFace *texface, Material *m
static int c_lit;
static int c_has_texface;
- Object *litob = NULL; //to get mode to turn off mipmap in painting mode
+ Object *litob = NULL; /* to get mode to turn off mipmap in painting mode */
int backculled = GEMAT_BACKCULL;
int alphablend = 0;
int textured = 0;
@@ -317,7 +317,7 @@ static int set_draw_settings_cached(int clearcache, MTFace *texface, Material *m
if (lit != c_lit || ma != c_ma) {
if (lit) {
float spec[4];
- if (!ma) ma = give_current_material_or_def(NULL, 0); //default material
+ if (!ma) ma = give_current_material_or_def(NULL, 0); /* default material */
spec[0] = ma->spec * ma->specr;
spec[1] = ma->spec * ma->specg;
@@ -344,8 +344,9 @@ static void draw_textured_begin(Scene *scene, View3D *v3d, RegionView3D *rv3d, O
{
unsigned char obcol[4];
int is_tex, solidtex;
+ Mesh *me = ob->data;
- // XXX scene->obedit warning
+ /* XXX scene->obedit warning */
/* texture draw is abused for mask selection mode, do this so wire draw
* with face selection in weight paint is not lit. */
@@ -366,16 +367,25 @@ static void draw_textured_begin(Scene *scene, View3D *v3d, RegionView3D *rv3d, O
rgba_float_to_uchar(obcol, ob->col);
- glCullFace(GL_BACK); glEnable(GL_CULL_FACE);
if (solidtex || v3d->drawtype == OB_TEXTURE) is_tex = 1;
else is_tex = 0;
Gtexdraw.ob = ob;
Gtexdraw.is_tex = is_tex;
- Gtexdraw.color_profile = scene->r.color_mgt_flag & R_COLOR_MANAGEMENT;
+
+ Gtexdraw.color_profile = BKE_scene_check_color_management_enabled(scene);
+
memcpy(Gtexdraw.obcol, obcol, sizeof(obcol));
set_draw_settings_cached(1, NULL, NULL, Gtexdraw);
glShadeModel(GL_SMOOTH);
+ if (v3d->flag2 & V3D_BACKFACE_CULLING) {
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+ }
+ else {
+ glDisable(GL_CULL_FACE);
+ }
+ glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, (me->flag & ME_TWOSIDED) ? GL_TRUE : GL_FALSE);
}
static void draw_textured_end(void)
@@ -466,7 +476,8 @@ static DMDrawOption draw_tface__set_draw(MTFace *tface, int has_mcol, int matnr)
return DM_DRAW_OPTION_NORMAL; /* Set color from mcol */
}
}
-static void add_tface_color_layer(DerivedMesh *dm)
+
+static void update_tface_color_layer(DerivedMesh *dm)
{
MTFace *tface = DM_get_tessface_data_layer(dm, CD_MTFACE);
MFace *mface = dm->getTessFaceArray(dm);
@@ -476,7 +487,15 @@ static void add_tface_color_layer(DerivedMesh *dm)
if (!mcol)
mcol = dm->getTessFaceDataArray(dm, CD_MCOL);
- finalCol = MEM_mallocN(sizeof(MCol) * 4 * dm->getNumTessFaces(dm), "add_tface_color_layer");
+ if (CustomData_has_layer(&dm->faceData, CD_TEXTURE_MCOL)) {
+ finalCol = CustomData_get_layer(&dm->faceData, CD_TEXTURE_MCOL);
+ }
+ else {
+ finalCol = MEM_mallocN(sizeof(MCol) * 4 * dm->getNumTessFaces(dm), "add_tface_color_layer");
+
+ CustomData_add_layer(&dm->faceData, CD_TEXTURE_MCOL, CD_ASSIGN, finalCol, dm->numTessFaceData);
+ }
+
for (i = 0; i < dm->getNumTessFaces(dm); i++) {
Material *ma = give_current_material(Gtexdraw.ob, mface[i].mat_nr + 1);
@@ -490,7 +509,7 @@ static void add_tface_color_layer(DerivedMesh *dm)
finalCol[i * 4 + j].r = 255;
}
}
- else if (tface && mface && set_draw_settings_cached(0, tface, ma, Gtexdraw)) {
+ else if (tface && set_draw_settings_cached(0, tface, ma, Gtexdraw)) {
for (j = 0; j < 4; j++) {
finalCol[i * 4 + j].b = 255;
finalCol[i * 4 + j].g = 0;
@@ -542,7 +561,6 @@ static void add_tface_color_layer(DerivedMesh *dm)
}
}
}
- CustomData_add_layer(&dm->faceData, CD_TEXTURE_MCOL, CD_ASSIGN, finalCol, dm->numTessFaceData);
}
static DMDrawOption draw_tface_mapped__set_draw(void *userData, int index)
@@ -614,7 +632,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl)
MLoopCol *mloopcol = me->mloopcol; /* why does mcol exist? */
MLoopCol *lcol;
- bProperty *prop = get_ob_property(ob, "Text");
+ bProperty *prop = BKE_bproperty_object_get(ob, "Text");
GPUVertexAttribs gattribs;
int a, totpoly = me->totpoly;
@@ -640,7 +658,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl)
short matnr = mp->mat_nr;
int mf_smooth = mp->flag & ME_SMOOTH;
Material *mat = me->mat[matnr];
- int mode = mat->game.flag;
+ int mode = mat ? mat->game.flag : GEMAT_INVISIBLE;
if (!(mode & GEMAT_INVISIBLE) && (mode & GEMAT_TEXT) && mp->totloop >= 3) {
/* get the polygon as a tri/quad */
@@ -690,7 +708,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl)
unsigned int j;
lcol = &mloopcol[mp->loopstart];
- for (j = 0; j <= totloop_clamp; j++, lcol++) {
+ for (j = 0; j < totloop_clamp; j++, lcol++) {
MESH_MLOOPCOL_TO_MCOL(lcol, &tmp_mcol[j]);
}
}
@@ -705,10 +723,10 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl)
- // The BM_FONT handling is in the gpu module, shared with the
- // game engine, was duplicated previously
+ /* The BM_FONT handling is in the gpu module, shared with the
+ * game engine, was duplicated previously */
- set_property_valstr(prop, string);
+ BKE_bproperty_set_valstr(prop, string);
characters = strlen(string);
if (!BKE_image_get_ibuf(mtpoly->tpage, NULL))
@@ -756,7 +774,8 @@ static int compareDrawOptionsEm(void *userData, int cur_index, int next_index)
return 1;
}
-void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, DerivedMesh *dm, int draw_flags)
+static void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d,
+ Object *ob, DerivedMesh *dm, const int draw_flags)
{
Mesh *me = ob->data;
@@ -797,8 +816,7 @@ void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d, Objec
else {
drawTFace_userData userData;
- if (!CustomData_has_layer(&dm->faceData, CD_TEXTURE_MCOL))
- add_tface_color_layer(dm);
+ update_tface_color_layer(dm);
userData.mf = DM_get_tessface_data_layer(dm, CD_MFACE);
userData.tf = DM_get_tessface_data_layer(dm, CD_MTFACE);
@@ -808,7 +826,7 @@ void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d, Objec
}
/* draw game engine text hack */
- if (get_ob_property(ob, "Text"))
+ if (BKE_bproperty_object_get(ob, "Text"))
draw_mesh_text(scene, ob, 0);
draw_textured_end();
@@ -856,7 +874,7 @@ static void tex_mat_set_texture_cb(void *userData, int mat_nr, void *attribs)
if (ED_object_get_active_image(data->ob, mat_nr, &ima, &iuser, &node)) {
/* get openl texture */
int mipmap = 1;
- int bindcode = (ima) ? GPU_verify_image(ima, iuser, 0, 0, mipmap) : 0;
+ int bindcode = (ima) ? GPU_verify_image(ima, iuser, 0, 0, mipmap, FALSE) : 0;
float zero[4] = {0.0f, 0.0f, 0.0f, 0.0f};
if (bindcode) {
@@ -926,7 +944,8 @@ static int tex_mat_set_face_editmesh_cb(void *userData, int index)
return !BM_elem_flag_test(efa, BM_ELEM_HIDDEN);
}
-void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, DerivedMesh *dm, const int draw_flags)
+void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d,
+ Object *ob, DerivedMesh *dm, const int draw_flags)
{
if ((!BKE_scene_use_new_shading_nodes(scene)) || (draw_flags & DRAW_MODIFIERS_PREVIEW)) {
draw_mesh_textured_old(scene, v3d, rv3d, ob, dm, draw_flags);
@@ -1002,7 +1021,8 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o
/* Vertex Paint and Weight Paint */
-void draw_mesh_paint(View3D *v3d, RegionView3D *rv3d, Object *ob, DerivedMesh *dm, int draw_flags)
+void draw_mesh_paint(View3D *v3d, RegionView3D *rv3d,
+ Object *ob, DerivedMesh *dm, const int draw_flags)
{
DMSetDrawOptions facemask = NULL;
Mesh *me = ob->data;
@@ -1012,7 +1032,7 @@ void draw_mesh_paint(View3D *v3d, RegionView3D *rv3d, Object *ob, DerivedMesh *d
if (draw_flags & DRAW_FACE_SELECT)
facemask = wpaint__setSolidDrawOptions_facemask;
- if (ob && ob->mode & OB_MODE_WEIGHT_PAINT) {
+ if (ob->mode & OB_MODE_WEIGHT_PAINT) {
if (do_light) {
const float spec[4] = {0.47f, 0.47f, 0.47f, 0.47f};
@@ -1062,7 +1082,7 @@ void draw_mesh_paint(View3D *v3d, RegionView3D *rv3d, Object *ob, DerivedMesh *d
* rather than the shading, this is also forced in wire view */
bglPolygonOffset(rv3d->dist, 1.0);
- glDepthMask(0); // disable write in zbuffer, selected edge wires show better
+ glDepthMask(0); /* disable write in zbuffer, selected edge wires show better */
glEnable(GL_BLEND);
glColor4ub(255, 255, 255, 96);
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 339b5560711..1b008c27fc0 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -35,7 +35,7 @@
#include "DNA_camera_types.h"
#include "DNA_curve_types.h"
-#include "DNA_constraint_types.h" // for drawing constraint
+#include "DNA_constraint_types.h" /* for drawing constraint */
#include "DNA_lamp_types.h"
#include "DNA_lattice_types.h"
#include "DNA_material_types.h"
@@ -56,10 +56,10 @@
#include "BLI_rand.h"
#include "BLI_utildefines.h"
-#include "BKE_anim.h" //for the where_on_path function
+#include "BKE_anim.h" /* for the where_on_path function */
#include "BKE_armature.h"
#include "BKE_camera.h"
-#include "BKE_constraint.h" // for the get_constraint_target function
+#include "BKE_constraint.h" /* for the get_constraint_target function */
#include "BKE_curve.h"
#include "BKE_DerivedMesh.h"
#include "BKE_deform.h"
@@ -101,6 +101,7 @@
#include "ED_sculpt.h"
#include "ED_types.h"
#include "ED_curve.h" /* for curve_editnurbs */
+#include "ED_armature.h"
#include "UI_resources.h"
@@ -108,7 +109,7 @@
#include "wm_subwindow.h"
#include "BLF_api.h"
-#include "view3d_intern.h" // own include
+#include "view3d_intern.h" /* own include */
typedef enum eWireDrawMode {
OBDRAW_WIRE_OFF = 0,
@@ -193,6 +194,17 @@ static void drawcircle_size(float size);
static void draw_empty_sphere(float size);
static void draw_empty_cone(float size);
+static void ob_wire_color_blend_theme_id(const unsigned char ob_wire_col[4], const int theme_id, float fac)
+{
+ float col_wire[3], col_bg[3], col[3];
+
+ rgb_uchar_to_float(col_wire, ob_wire_col);
+
+ UI_GetThemeColor3fv(theme_id, col_bg);
+ interp_v3_v3v3(col, col_bg, col_wire, fac);
+ glColor3fv(col);
+}
+
/* this condition has been made more complex since editmode can draw textures */
static int check_object_draw_texture(Scene *scene, View3D *v3d, int drawtype)
{
@@ -228,107 +240,6 @@ static int check_ob_drawface_dot(Scene *sce, View3D *vd, char dt)
return 1;
}
-/* ************* only use while object drawing **************
- * or after running ED_view3d_init_mats_rv3d
- * */
-static void view3d_project_short_clip(ARegion *ar, const float vec[3], short adr[2], int is_local)
-{
- RegionView3D *rv3d = ar->regiondata;
- float fx, fy, vec4[4];
-
- adr[0] = IS_CLIPPED;
-
- /* clipplanes in eye space */
- if (rv3d->rflag & RV3D_CLIPPING) {
- if (ED_view3d_clipping_test(rv3d, vec, is_local))
- return;
- }
-
- copy_v3_v3(vec4, vec);
- vec4[3] = 1.0;
-
- mul_m4_v4(rv3d->persmatob, vec4);
-
- /* clipplanes in window space */
- if (vec4[3] > (float)BL_NEAR_CLIP) { /* is the NEAR clipping cutoff for picking */
- fx = (ar->winx / 2) * (1 + vec4[0] / vec4[3]);
-
- if (fx > 0 && fx < ar->winx) {
-
- fy = (ar->winy / 2) * (1 + vec4[1] / vec4[3]);
-
- if (fy > 0.0f && fy < (float)ar->winy) {
- adr[0] = (short)floorf(fx);
- adr[1] = (short)floorf(fy);
- }
- }
- }
-}
-
-/* BMESH NOTE: this function is unused in bmesh only */
-
-/* only use while object drawing */
-static void UNUSED_FUNCTION(view3d_project_short_noclip) (ARegion * ar, const float vec[3], short adr[2])
-{
- RegionView3D *rv3d = ar->regiondata;
- float fx, fy, vec4[4];
-
- adr[0] = IS_CLIPPED;
-
- copy_v3_v3(vec4, vec);
- vec4[3] = 1.0;
-
- mul_m4_v4(rv3d->persmatob, vec4);
-
- if (vec4[3] > (float)BL_NEAR_CLIP) { /* is the NEAR clipping cutoff for picking */
- fx = (ar->winx / 2) * (1 + vec4[0] / vec4[3]);
-
- if (fx > -32700 && fx < 32700) {
-
- fy = (ar->winy / 2) * (1 + vec4[1] / vec4[3]);
-
- if (fy > -32700.0f && fy < 32700.0f) {
- adr[0] = (short)floorf(fx);
- adr[1] = (short)floorf(fy);
- }
- }
- }
-}
-
-/* same as view3d_project_short_clip but use persmat instead of persmatob for projection */
-static void view3d_project_short_clip_persmat(ARegion *ar, const float vec[3], short adr[2], int is_local)
-{
- RegionView3D *rv3d = ar->regiondata;
- float fx, fy, vec4[4];
-
- adr[0] = IS_CLIPPED;
-
- /* clipplanes in eye space */
- if (rv3d->rflag & RV3D_CLIPPING) {
- if (ED_view3d_clipping_test(rv3d, vec, is_local))
- return;
- }
-
- copy_v3_v3(vec4, vec);
- vec4[3] = 1.0;
-
- mul_m4_v4(rv3d->persmat, vec4);
-
- /* clipplanes in window space */
- if (vec4[3] > (float)BL_NEAR_CLIP) { /* is the NEAR clipping cutoff for picking */
- fx = (ar->winx / 2) * (1 + vec4[0] / vec4[3]);
-
- if (fx > 0 && fx < ar->winx) {
-
- fy = (ar->winy / 2) * (1 + vec4[1] / vec4[3]);
-
- if (fy > 0.0f && fy < (float)ar->winy) {
- adr[0] = (short)floorf(fx);
- adr[1] = (short)floorf(fy);
- }
- }
- }
-}
/* ************************ */
/* check for glsl drawing */
@@ -653,7 +564,7 @@ void drawaxes(float size, char drawtype)
/* Function to draw an Image on a empty Object */
-static void draw_empty_image(Object *ob)
+static void draw_empty_image(Object *ob, const short dflag, const unsigned char ob_wire_col[4])
{
Image *ima = (Image *)ob->data;
ImBuf *ibuf = ima ? BKE_image_get_ibuf(ima, NULL) : NULL;
@@ -726,15 +637,17 @@ static void draw_empty_image(Object *ob)
glDisable(GL_BLEND);
}
- UI_ThemeColor((ob->flag & SELECT) ? TH_SELECT : TH_WIRE);
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ glColor3ubv(ob_wire_col);
- /* Calculate the outline vertex positions */
- glBegin(GL_LINE_LOOP);
- glVertex2f(ofs_x, ofs_y);
- glVertex2f(ofs_x + ima_x, ofs_y);
- glVertex2f(ofs_x + ima_x, ofs_y + ima_y);
- glVertex2f(ofs_x, ofs_y + ima_y);
- glEnd();
+ /* Calculate the outline vertex positions */
+ glBegin(GL_LINE_LOOP);
+ glVertex2f(ofs_x, ofs_y);
+ glVertex2f(ofs_x + ima_x, ofs_y);
+ glVertex2f(ofs_x + ima_x, ofs_y + ima_y);
+ glVertex2f(ofs_x, ofs_y + ima_y);
+ glEnd();
+ }
/* Reset GL settings */
glMatrixMode(GL_MODELVIEW);
@@ -849,7 +762,7 @@ void view3d_cached_text_draw_add(const float co[3],
BLI_addtail(strings, vos);
copy_v3_v3(vos->vec, co);
- vos->col.pack = *((int *)col);
+ copy_v4_v4_char((char *)vos->col.ub, (const char *)col);
vos->xoffs = xoffs;
vos->flag = flag;
vos->str_len = alloc_len - 1;
@@ -870,13 +783,17 @@ void view3d_cached_text_draw_end(View3D *v3d, ARegion *ar, int depth_write, floa
if (mat && !(vos->flag & V3D_CACHE_TEXT_WORLDSPACE))
mul_m4_v3(mat, vos->vec);
- if (vos->flag & V3D_CACHE_TEXT_GLOBALSPACE)
- view3d_project_short_clip_persmat(ar, vos->vec, vos->sco, (vos->flag & V3D_CACHE_TEXT_LOCALCLIP) != 0);
- else
- view3d_project_short_clip(ar, vos->vec, vos->sco, (vos->flag & V3D_CACHE_TEXT_LOCALCLIP) != 0);
-
- if (vos->sco[0] != IS_CLIPPED)
+ if (ED_view3d_project_short_ex(ar,
+ (vos->flag & V3D_CACHE_TEXT_GLOBALSPACE) ? rv3d->persmat : rv3d->persmatob,
+ (vos->flag & V3D_CACHE_TEXT_LOCALCLIP) != 0,
+ vos->vec, vos->sco,
+ V3D_PROJ_TEST_CLIP_BB | V3D_PROJ_TEST_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
tot++;
+ }
+ else {
+ vos->sco[0] = IS_CLIPPED;
+ }
}
if (tot) {
@@ -1559,17 +1476,18 @@ static void draw_bundle_sphere(void)
static void draw_viewport_object_reconstruction(Scene *scene, Base *base, View3D *v3d,
MovieClip *clip, MovieTrackingObject *tracking_object,
- const short dflag, int *global_track_index, int draw_selected)
+ const short dflag, const unsigned char ob_wire_col[4],
+ int *global_track_index, int draw_selected)
{
MovieTracking *tracking = &clip->tracking;
MovieTrackingTrack *track;
float mat[4][4], imat[4][4];
- unsigned char col[4], scol[4];
+ unsigned char col_unsel[4], col_sel[4];
int tracknr = *global_track_index;
ListBase *tracksbase = BKE_tracking_object_get_tracks(tracking, tracking_object);
- UI_GetThemeColor4ubv(TH_TEXT, col);
- UI_GetThemeColor4ubv(TH_SELECT, scol);
+ UI_GetThemeColor4ubv(TH_TEXT, col_unsel);
+ UI_GetThemeColor4ubv(TH_SELECT, col_sel);
BKE_tracking_get_camera_object_matrix(scene, base->object, mat);
@@ -1612,13 +1530,13 @@ static void draw_viewport_object_reconstruction(Scene *scene, Base *base, View3D
if (v3d->drawtype == OB_WIRE) {
glDisable(GL_LIGHTING);
- if (selected) {
- if (base == BASACT) UI_ThemeColor(TH_ACTIVE);
- else UI_ThemeColor(TH_SELECT);
- }
- else {
- if (track->flag & TRACK_CUSTOMCOLOR) glColor3fv(track->color);
- else UI_ThemeColor(TH_WIRE);
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ if (selected && (track->flag & TRACK_CUSTOMCOLOR) == 0) {
+ glColor3ubv(ob_wire_col);
+ }
+ else {
+ glColor3fv(track->color);
+ }
}
drawaxes(0.05f, v3d->bundle_drawtype);
@@ -1629,8 +1547,9 @@ static void draw_viewport_object_reconstruction(Scene *scene, Base *base, View3D
if (v3d->bundle_drawtype == OB_EMPTY_SPHERE) {
/* selection outline */
if (selected) {
- if (base == BASACT) UI_ThemeColor(TH_ACTIVE);
- else UI_ThemeColor(TH_SELECT);
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ glColor3ubv(ob_wire_col);
+ }
glLineWidth(2.f);
glDisable(GL_LIGHTING);
@@ -1643,21 +1562,24 @@ static void draw_viewport_object_reconstruction(Scene *scene, Base *base, View3D
glLineWidth(1.f);
}
- if (track->flag & TRACK_CUSTOMCOLOR) glColor3fv(track->color);
- else UI_ThemeColor(TH_BUNDLE_SOLID);
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ if (track->flag & TRACK_CUSTOMCOLOR) glColor3fv(track->color);
+ else UI_ThemeColor(TH_BUNDLE_SOLID);
+ }
draw_bundle_sphere();
}
else {
glDisable(GL_LIGHTING);
- if (selected) {
- if (base == BASACT) UI_ThemeColor(TH_ACTIVE);
- else UI_ThemeColor(TH_SELECT);
- }
- else {
- if (track->flag & TRACK_CUSTOMCOLOR) glColor3fv(track->color);
- else UI_ThemeColor(TH_WIRE);
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ if (selected) {
+ glColor3ubv(ob_wire_col);
+ }
+ else {
+ if (track->flag & TRACK_CUSTOMCOLOR) glColor3fv(track->color);
+ else UI_ThemeColor(TH_WIRE);
+ }
}
drawaxes(0.05f, v3d->bundle_drawtype);
@@ -1670,13 +1592,9 @@ static void draw_viewport_object_reconstruction(Scene *scene, Base *base, View3D
if ((dflag & DRAW_PICKING) == 0 && (v3d->flag2 & V3D_SHOW_BUNDLENAME)) {
float pos[3];
- unsigned char tcol[4];
-
- if (selected) memcpy(tcol, scol, sizeof(tcol));
- else memcpy(tcol, col, sizeof(tcol));
mul_v3_m4v3(pos, mat, track->bundle_pos);
- view3d_cached_text_draw_add(pos, track->name, 10, V3D_CACHE_TEXT_GLOBALSPACE, tcol);
+ view3d_cached_text_draw_add(pos, track->name, 10, V3D_CACHE_TEXT_GLOBALSPACE, selected ? col_sel : col_unsel);
}
tracknr++;
@@ -1734,7 +1652,7 @@ static void draw_viewport_reconstruction(Scene *scene, Base *base, View3D *v3d,
tracking_object = tracking->objects.first;
while (tracking_object) {
draw_viewport_object_reconstruction(scene, base, v3d, clip, tracking_object,
- dflag, &global_track_index, draw_selected);
+ dflag, ob_wire_col, &global_track_index, draw_selected);
tracking_object = tracking_object->next;
}
@@ -1960,15 +1878,17 @@ void lattice_foreachScreenVert(ViewContext *vc, void (*func)(void *userData, BPo
DispList *dl = BKE_displist_find(&obedit->disp, DL_VERTS);
float *co = dl ? dl->verts : NULL;
int i, N = lt->editlatt->latt->pntsu * lt->editlatt->latt->pntsv * lt->editlatt->latt->pntsw;
- short s[2] = {IS_CLIPPED, 0};
ED_view3d_clipping_local(vc->rv3d, obedit->obmat); /* for local clipping lookups */
for (i = 0; i < N; i++, bp++, co += 3) {
if (bp->hide == 0) {
- view3d_project_short_clip(vc->ar, dl ? co : bp->vec, s, TRUE);
- if (s[0] != IS_CLIPPED)
- func(userData, bp, s[0], s[1]);
+ int screen_co[2];
+ if (ED_view3d_project_int_object(vc->ar, dl ? co : bp->vec, screen_co,
+ V3D_PROJ_RET_CLIP_BB | V3D_PROJ_RET_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
+ func(userData, bp, screen_co[0], screen_co[1]);
+ }
}
}
}
@@ -2070,19 +1990,16 @@ static void mesh_foreachScreenVert__mapFunc(void *userData, int index, const flo
BMVert *eve = EDBM_vert_at_index(data->vc.em, index);
if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) {
- short s[2] = {IS_CLIPPED, 0};
+ const eV3DProjTest flag = (data->clipVerts == V3D_CLIP_TEST_OFF) ?
+ V3D_PROJ_TEST_NOP :
+ V3D_PROJ_RET_CLIP_BB | V3D_PROJ_RET_CLIP_WIN;
+ int screen_co[2];
- if (data->clipVerts != V3D_CLIP_TEST_OFF) {
- view3d_project_short_clip(data->vc.ar, co, s, TRUE);
- }
- else {
- float co2[2];
- mul_v3_m4v3(co2, data->vc.obedit->obmat, co);
- project_short_noclip(data->vc.ar, co2, s);
+ if (ED_view3d_project_int_object(data->vc.ar, co, screen_co, flag) != V3D_PROJ_RET_OK) {
+ return;
}
- if (s[0] != IS_CLIPPED)
- data->func(data->userData, eve, s[0], s[1], index);
+ data->func(data->userData, eve, screen_co[0], screen_co[1], index);
}
}
@@ -2118,7 +2035,7 @@ static void drawSelectedVertices__mapFunc(void *userData, int index, const float
if (!(mv->flag & ME_HIDE)) {
const char sel = mv->flag & SELECT;
- // TODO define selected color
+ /* TODO define selected color */
if (sel) {
glColor3f(1.0f, 1.0f, 0.0f);
}
@@ -2143,32 +2060,34 @@ static void mesh_foreachScreenEdge__mapFunc(void *userData, int index, const flo
BMEdge *eed = EDBM_edge_at_index(data->vc.em, index);
if (!BM_elem_flag_test(eed, BM_ELEM_HIDDEN)) {
- short s[2][2];
+ int screen_co_a[2];
+ int screen_co_b[2];
+
+ const eV3DProjTest flag = (data->clipVerts == V3D_CLIP_TEST_RV3D_CLIPPING) ?
+ V3D_PROJ_TEST_CLIP_BB | V3D_PROJ_TEST_CLIP_WIN :
+ V3D_PROJ_TEST_NOP;
+
+ if (ED_view3d_project_int_object(data->vc.ar, v0co, screen_co_a, flag) != V3D_PROJ_RET_OK) {
+ return;
+ }
+ if (ED_view3d_project_int_object(data->vc.ar, v1co, screen_co_b, flag) != V3D_PROJ_RET_OK) {
+ return;
+ }
if (data->clipVerts == V3D_CLIP_TEST_RV3D_CLIPPING) {
- view3d_project_short_clip(data->vc.ar, v0co, s[0], TRUE);
- view3d_project_short_clip(data->vc.ar, v1co, s[1], TRUE);
+ /* pass */
}
else {
- float v1_co[3], v2_co[3];
-
- mul_v3_m4v3(v1_co, data->vc.obedit->obmat, v0co);
- mul_v3_m4v3(v2_co, data->vc.obedit->obmat, v1co);
-
- project_short_noclip(data->vc.ar, v1_co, s[0]);
- project_short_noclip(data->vc.ar, v2_co, s[1]);
-
if (data->clipVerts == V3D_CLIP_TEST_REGION) {
- /* make an int copy */
- int s_int[2][2] = {{s[0][0], s[0][1]},
- {s[1][0], s[1][1]}};
- if (!BLI_segment_in_rcti(&data->win_rect, s_int[0], s_int[1])) {
+ if (!BLI_rcti_isect_segment(&data->win_rect, screen_co_a, screen_co_b)) {
return;
}
}
}
- data->func(data->userData, eed, s[0][0], s[0][1], s[1][0], s[1][1], index);
+ data->func(data->userData, eed,
+ screen_co_a[0], screen_co_a[1],
+ screen_co_b[0], screen_co_b[1], index);
}
}
@@ -2207,14 +2126,11 @@ static void mesh_foreachScreenFace__mapFunc(void *userData, int index, const flo
BMFace *efa = EDBM_face_at_index(data->vc.em, index);
if (efa && !BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) {
- float cent2[3];
- short s[2];
-
- mul_v3_m4v3(cent2, data->vc.obedit->obmat, cent);
- project_short(data->vc.ar, cent2, s);
-
- if (s[0] != IS_CLIPPED) {
- data->func(data->userData, efa, s[0], s[1], index);
+ int screen_co[2];
+ if (ED_view3d_project_int_object(data->vc.ar, cent, screen_co,
+ V3D_PROJ_TEST_CLIP_BB | V3D_PROJ_TEST_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
+ data->func(data->userData, efa, screen_co[0], screen_co[1], index);
}
}
}
@@ -2231,8 +2147,7 @@ void mesh_foreachScreenFace(
data.func = func;
data.userData = userData;
- //if (clipVerts)
- ED_view3d_clipping_local(vc->rv3d, vc->obedit->obmat); /* for local clipping lookups */
+ ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d);
EDBM_index_arrays_init(vc->em, 0, 0, 1);
dm->foreachMappedFaceCenter(dm, mesh_foreachScreenFace__mapFunc, &data);
@@ -2242,12 +2157,11 @@ void mesh_foreachScreenFace(
}
void nurbs_foreachScreenVert(
- ViewContext *vc,
- void (*func)(void *userData, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, int x, int y),
- void *userData)
+ ViewContext *vc,
+ void (*func)(void *userData, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, int x, int y),
+ void *userData)
{
Curve *cu = vc->obedit->data;
- short s[2] = {IS_CLIPPED, 0};
Nurb *nu;
int i;
ListBase *nurbs = BKE_curve_editNurbs_get(cu);
@@ -2260,22 +2174,31 @@ void nurbs_foreachScreenVert(
BezTriple *bezt = &nu->bezt[i];
if (bezt->hide == 0) {
+ int screen_co[2];
if (cu->drawflag & CU_HIDE_HANDLES) {
- view3d_project_short_clip(vc->ar, bezt->vec[1], s, TRUE);
- if (s[0] != IS_CLIPPED)
- func(userData, nu, NULL, bezt, 1, s[0], s[1]);
+ if (ED_view3d_project_int_object(vc->ar, bezt->vec[1], screen_co,
+ V3D_PROJ_RET_CLIP_BB | V3D_PROJ_RET_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
+ func(userData, nu, NULL, bezt, 1, screen_co[0], screen_co[1]);
+ }
}
else {
- view3d_project_short_clip(vc->ar, bezt->vec[0], s, TRUE);
- if (s[0] != IS_CLIPPED)
- func(userData, nu, NULL, bezt, 0, s[0], s[1]);
- view3d_project_short_clip(vc->ar, bezt->vec[1], s, TRUE);
- if (s[0] != IS_CLIPPED)
- func(userData, nu, NULL, bezt, 1, s[0], s[1]);
- view3d_project_short_clip(vc->ar, bezt->vec[2], s, TRUE);
- if (s[0] != IS_CLIPPED)
- func(userData, nu, NULL, bezt, 2, s[0], s[1]);
+ if (ED_view3d_project_int_object(vc->ar, bezt->vec[0], screen_co,
+ V3D_PROJ_RET_CLIP_BB | V3D_PROJ_RET_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
+ func(userData, nu, NULL, bezt, 0, screen_co[0], screen_co[1]);
+ }
+ if (ED_view3d_project_int_object(vc->ar, bezt->vec[1], screen_co,
+ V3D_PROJ_RET_CLIP_BB | V3D_PROJ_RET_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
+ func(userData, nu, NULL, bezt, 1, screen_co[0], screen_co[1]);
+ }
+ if (ED_view3d_project_int_object(vc->ar, bezt->vec[2], screen_co,
+ V3D_PROJ_RET_CLIP_BB | V3D_PROJ_RET_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
+ func(userData, nu, NULL, bezt, 2, screen_co[0], screen_co[1]);
+ }
}
}
}
@@ -2285,15 +2208,129 @@ void nurbs_foreachScreenVert(
BPoint *bp = &nu->bp[i];
if (bp->hide == 0) {
- view3d_project_short_clip(vc->ar, bp->vec, s, TRUE);
- if (s[0] != IS_CLIPPED)
- func(userData, nu, bp, NULL, -1, s[0], s[1]);
+ int screen_co[2];
+ if (ED_view3d_project_int_object(vc->ar, bp->vec, screen_co,
+ V3D_PROJ_RET_CLIP_BB | V3D_PROJ_RET_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
+ func(userData, nu, bp, NULL, -1, screen_co[0], screen_co[1]);
+ }
}
}
}
}
}
+/* ED_view3d_init_mats_rv3d must be called first */
+void mball_foreachScreenElem(
+ struct ViewContext *vc,
+ void (*func)(void *userData, struct MetaElem *ml, int x, int y),
+ void *userData)
+{
+ MetaBall *mb = (MetaBall *)vc->obedit->data;
+ MetaElem *ml;
+
+ for (ml = mb->editelems->first; ml; ml = ml->next) {
+ int screen_co[2];
+ if (ED_view3d_project_int_object(vc->ar, &ml->x, screen_co,
+ V3D_PROJ_TEST_CLIP_BB | V3D_PROJ_TEST_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
+ func(userData, ml, screen_co[0], screen_co[1]);
+ }
+ }
+}
+
+/* ED_view3d_init_mats_rv3d must be called first */
+void armature_foreachScreenBone(
+ struct ViewContext *vc,
+ void (*func)(void *userData, struct EditBone *ebone, int x0, int y0, int x1, int y1),
+ void *userData)
+{
+ bArmature *arm = vc->obedit->data;
+ EditBone *ebone;
+
+ for (ebone = arm->edbo->first; ebone; ebone = ebone->next) {
+ if (EBONE_VISIBLE(arm, ebone)) {
+ int screen_co_a[2], screen_co_b[2];
+ int points_proj_tot = 0;
+
+ /* project head location to screenspace */
+ if (ED_view3d_project_int_object(vc->ar, ebone->head, screen_co_a,
+ V3D_PROJ_TEST_CLIP_BB | V3D_PROJ_TEST_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
+ points_proj_tot++;
+ }
+ else {
+ screen_co_a[0] = IS_CLIPPED; /* weak */
+ /* screen_co_a[1]: intentionally dont set this so we get errors on misuse */
+ }
+
+ /* project tail location to screenspace */
+ if (ED_view3d_project_int_object(vc->ar, ebone->tail, screen_co_b,
+ V3D_PROJ_TEST_CLIP_BB | V3D_PROJ_TEST_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
+ points_proj_tot++;
+ }
+ else {
+ screen_co_b[0] = IS_CLIPPED; /* weak */
+ /* screen_co_b[1]: intentionally dont set this so we get errors on misuse */
+ }
+
+ if (points_proj_tot) { /* at least one point's projection worked */
+ func(userData, ebone,
+ screen_co_a[0], screen_co_a[1],
+ screen_co_b[0], screen_co_b[1]);
+ }
+ }
+ }
+}
+
+/* ED_view3d_init_mats_rv3d must be called first */
+/* almost _exact_ copy of #armature_foreachScreenBone */
+void pose_foreachScreenBone(
+ struct ViewContext *vc,
+ void (*func)(void *userData, struct bPoseChannel *pchan, int x0, int y0, int x1, int y1),
+ void *userData)
+{
+ bArmature *arm = vc->obact->data;
+ bPose *pose = vc->obact->pose;
+ bPoseChannel *pchan;
+
+ for (pchan = pose->chanbase.first; pchan; pchan = pchan->next) {
+ if (PBONE_VISIBLE(arm, pchan->bone)) {
+ int screen_co_a[2], screen_co_b[2];
+ int points_proj_tot = 0;
+
+ /* project head location to screenspace */
+ if (ED_view3d_project_int_object(vc->ar, pchan->pose_head, screen_co_a,
+ V3D_PROJ_TEST_CLIP_BB | V3D_PROJ_TEST_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
+ points_proj_tot++;
+ }
+ else {
+ screen_co_a[0] = IS_CLIPPED; /* weak */
+ /* screen_co_a[1]: intentionally dont set this so we get errors on misuse */
+ }
+
+ /* project tail location to screenspace */
+ if (ED_view3d_project_int_object(vc->ar, pchan->pose_tail, screen_co_b,
+ V3D_PROJ_TEST_CLIP_BB | V3D_PROJ_TEST_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
+ points_proj_tot++;
+ }
+ else {
+ screen_co_b[0] = IS_CLIPPED; /* weak */
+ /* screen_co_b[1]: intentionally dont set this so we get errors on misuse */
+ }
+
+ if (points_proj_tot) { /* at least one point's projection worked */
+ func(userData, pchan,
+ screen_co_a[0], screen_co_a[1],
+ screen_co_b[0], screen_co_b[1]);
+ }
+ }
+ }
+}
+
/* ************** DRAW MESH ****************** */
/* First section is all the "simple" draw routines,
@@ -2781,7 +2818,7 @@ static void draw_em_fancy_verts(Scene *scene, View3D *v3d, Object *obedit,
ToolSettings *ts = scene->toolsettings;
int sel;
- if (v3d->zbuf) glDepthMask(0); // disable write in zbuffer, zbuf select
+ if (v3d->zbuf) glDepthMask(0); /* disable write in zbuffer, zbuf select */
for (sel = 0; sel < 2; sel++) {
unsigned char col[4], fcol[4];
@@ -2843,7 +2880,7 @@ static void draw_em_fancy_edges(BMEditMesh *em, Scene *scene, View3D *v3d,
int pass;
unsigned char wireCol[4], selCol[4], actCol[4];
- /* since this function does transparant... */
+ /* since this function does transparent... */
UI_GetThemeColor4ubv(TH_EDGE_SELECT, selCol);
UI_GetThemeColor4ubv(TH_WIRE, wireCol);
UI_GetThemeColor4ubv(TH_EDITMESH_ACTIVE, actCol);
@@ -2854,7 +2891,7 @@ static void draw_em_fancy_edges(BMEditMesh *em, Scene *scene, View3D *v3d,
wireCol[3] = 0;
for (pass = 0; pass < 2; pass++) {
- /* show wires in transparant when no zbuf clipping for select */
+ /* show wires in transparent when no zbuf clipping for select */
if (pass == 0) {
if (v3d->zbuf && (v3d->flag & V3D_ZBUF_SELECT) == 0) {
glEnable(GL_BLEND);
@@ -2874,7 +2911,7 @@ static void draw_em_fancy_edges(BMEditMesh *em, Scene *scene, View3D *v3d,
if (ts->selectmode == SCE_SELECT_FACE) {
draw_dm_edges_sel(em, cageDM, wireCol, selCol, actCol, eed_act);
}
- else if ( (me->drawflag & ME_DRAWEDGES) || (ts->selectmode & SCE_SELECT_EDGE) ) {
+ else if ((me->drawflag & ME_DRAWEDGES) || (ts->selectmode & SCE_SELECT_EDGE)) {
if (cageDM->drawMappedEdgesInterp && (ts->selectmode & SCE_SELECT_VERTEX)) {
glShadeModel(GL_SMOOTH);
draw_dm_edges_sel_interp(em, cageDM, wireCol, selCol);
@@ -3150,7 +3187,7 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d,
{
Mesh *me = ob->data;
- BMFace *efa_act = BM_active_face_get(em->bm, FALSE); /* annoying but active faces is stored differently */
+ BMFace *efa_act = BM_active_face_get(em->bm, FALSE, FALSE); /* annoying but active faces is stored differently */
BMEdge *eed_act = NULL;
BMVert *eve_act = NULL;
@@ -3202,8 +3239,8 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d,
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE);
}
- // Setup for drawing wire over, disable zbuffer
- // write to show selected edge wires better
+ /* Setup for drawing wire over, disable zbuffer
+ * write to show selected edge wires better */
UI_ThemeColor(TH_WIRE);
bglPolygonOffset(rv3d->dist, 1.0);
@@ -3222,18 +3259,18 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d,
UI_GetThemeColor4ubv(TH_FACE, col1);
UI_GetThemeColor4ubv(TH_FACE_SELECT, col2);
UI_GetThemeColor4ubv(TH_EDITMESH_ACTIVE, col3);
-
+
glEnable(GL_BLEND);
- glDepthMask(0); // disable write in zbuffer, needed for nice transp
-
+ glDepthMask(0); /* disable write in zbuffer, needed for nice transp */
+
/* don't draw unselected faces, only selected, this is MUCH nicer when texturing */
if (check_object_draw_texture(scene, v3d, dt))
col1[3] = 0;
-
+
draw_dm_faces_sel(em, cageDM, col1, col2, col3, efa_act);
glDisable(GL_BLEND);
- glDepthMask(1); // restore write in zbuffer
+ glDepthMask(1); /* restore write in zbuffer */
}
else if (efa_act) {
/* even if draw faces is off it would be nice to draw the stipple face
@@ -3242,15 +3279,15 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d,
unsigned char col1[4], col2[4], col3[4];
col1[3] = col2[3] = 0; /* don't draw */
UI_GetThemeColor4ubv(TH_EDITMESH_ACTIVE, col3);
-
+
glEnable(GL_BLEND);
- glDepthMask(0); // disable write in zbuffer, needed for nice transp
-
+ glDepthMask(0); /* disable write in zbuffer, needed for nice transp */
+
draw_dm_faces_sel(em, cageDM, col1, col2, col3, efa_act);
glDisable(GL_BLEND);
- glDepthMask(1); // restore write in zbuffer
-
+ glDepthMask(1); /* restore write in zbuffer */
+
}
/* here starts all fancy draw-extra over */
@@ -3291,7 +3328,8 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d,
draw_em_fancy_edges(em, scene, v3d, me, cageDM, 0, eed_act);
}
- if (em) {
+
+ {
draw_em_fancy_verts(scene, v3d, ob, em, cageDM, eve_act, rv3d);
if (me->drawflag & ME_DRAWNORMALS) {
@@ -3303,8 +3341,8 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d,
draw_dm_vert_normals(em, scene, ob, cageDM);
}
- if ( (me->drawflag & (ME_DRAWEXTRA_EDGELEN | ME_DRAWEXTRA_FACEAREA | ME_DRAWEXTRA_FACEANG)) &&
- !(v3d->flag2 & V3D_RENDER_OVERRIDE))
+ if ((me->drawflag & (ME_DRAWEXTRA_EDGELEN | ME_DRAWEXTRA_FACEAREA | ME_DRAWEXTRA_FACEANG)) &&
+ !(v3d->flag2 & V3D_RENDER_OVERRIDE))
{
draw_em_measure_stats(v3d, ob, em, &scene->unit);
}
@@ -3354,7 +3392,7 @@ static void draw_mesh_object_outline(View3D *v3d, Object *ob, DerivedMesh *dm)
}
static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d, Base *base,
- const short dt, const short dflag)
+ const short dt, const unsigned char ob_wire_col[4], const short dflag)
{
Object *ob = base->object;
Mesh *me = ob->data;
@@ -3401,14 +3439,14 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
else if (dt == OB_WIRE || totface == 0) {
draw_wire = OBDRAW_WIRE_ON; /* draw wire only, no depth buffer stuff */
}
- else if ( ((is_obact && ob->mode & OB_MODE_TEXTURE_PAINT)) ||
- check_object_draw_texture(scene, v3d, dt))
+ else if (((is_obact && ob->mode & OB_MODE_TEXTURE_PAINT)) ||
+ check_object_draw_texture(scene, v3d, dt))
{
- if ( (v3d->flag & V3D_SELECT_OUTLINE) &&
- ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) &&
- (base->flag & SELECT) &&
- !(G.f & G_PICKSEL || (draw_flags & DRAW_FACE_SELECT)) &&
- (draw_wire == OBDRAW_WIRE_OFF))
+ if ((v3d->flag & V3D_SELECT_OUTLINE) &&
+ ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) &&
+ (base->flag & SELECT) &&
+ !(G.f & G_PICKSEL || (draw_flags & DRAW_FACE_SELECT)) &&
+ (draw_wire == OBDRAW_WIRE_OFF))
{
draw_mesh_object_outline(v3d, ob, dm);
}
@@ -3417,7 +3455,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
glFrontFace((ob->transflag & OB_NEG_SCALE) ? GL_CW : GL_CCW);
dm->drawFacesGLSL(dm, GPU_enable_material);
-// if (get_ob_property(ob, "Text"))
+// if (BKE_bproperty_object_get(ob, "Text"))
// XXX draw_mesh_text(ob, 1);
GPU_disable_material();
@@ -3428,13 +3466,12 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
}
if (!(draw_flags & DRAW_FACE_SELECT)) {
- if (base->flag & SELECT)
- UI_ThemeColor(is_obact ? TH_ACTIVE : TH_SELECT);
- else
- UI_ThemeColor(TH_WIRE);
-
- if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0)
+ if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ glColor3ubv(ob_wire_col);
+ }
dm->drawLooseEdges(dm);
+ }
}
}
else if (dt == OB_SOLID) {
@@ -3447,11 +3484,11 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
const float spec[4] = {0.47f, 0.47f, 0.47f, 0.47f};
/* draw outline */
- if ( (v3d->flag & V3D_SELECT_OUTLINE) &&
- ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) &&
- (base->flag & SELECT) &&
- (draw_wire == OBDRAW_WIRE_OFF) &&
- (ob->sculpt == NULL))
+ if ((v3d->flag & V3D_SELECT_OUTLINE) &&
+ ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) &&
+ (base->flag & SELECT) &&
+ (draw_wire == OBDRAW_WIRE_OFF) &&
+ (ob->sculpt == NULL))
{
draw_mesh_object_outline(v3d, ob, dm);
}
@@ -3479,11 +3516,11 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
else {
Paint *p;
- if ( (v3d->flag & V3D_SELECT_OUTLINE) &&
- ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) &&
- (base->flag & SELECT) &&
- (draw_wire == OBDRAW_WIRE_OFF) &&
- (ob->sculpt == NULL))
+ if ((v3d->flag & V3D_SELECT_OUTLINE) &&
+ ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) &&
+ (base->flag & SELECT) &&
+ (draw_wire == OBDRAW_WIRE_OFF) &&
+ (ob->sculpt == NULL))
{
draw_mesh_object_outline(v3d, ob, dm);
}
@@ -3518,14 +3555,12 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE);
- if (base->flag & SELECT) {
- UI_ThemeColor(is_obact ? TH_ACTIVE : TH_SELECT);
- }
- else {
- UI_ThemeColor(TH_WIRE);
- }
- if (!ob->sculpt && (v3d->flag2 & V3D_RENDER_OVERRIDE) == 0)
+ if (!ob->sculpt && (v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ glColor3ubv(ob_wire_col);
+ }
dm->drawLooseEdges(dm);
+ }
}
}
else if (dt == OB_PAINT) {
@@ -3534,42 +3569,22 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
/* since we already draw wire as wp guide, don't draw over the top */
draw_wire = OBDRAW_WIRE_OFF;
}
-
- /* set default draw color back for wire or for draw-extra later on */
- if (dt != OB_WIRE) {
- if (base->flag & SELECT) {
- if (is_obact && ob->flag & OB_FROMGROUP)
- UI_ThemeColor(TH_GROUP_ACTIVE);
- else if (ob->flag & OB_FROMGROUP)
- UI_ThemeColorShade(TH_GROUP_ACTIVE, -16);
- else if (dflag != DRAW_CONSTCOLOR)
- UI_ThemeColor(is_obact ? TH_ACTIVE : TH_SELECT);
- else
- glColor3ub(80, 80, 80);
- }
- else {
- if (ob->flag & OB_FROMGROUP)
- UI_ThemeColor(TH_GROUP);
- else {
- if (ob->dtx & OB_DRAWWIRE && dflag == DRAW_CONSTCOLOR)
- glColor3ub(80, 80, 80);
- else
- UI_ThemeColor(TH_WIRE);
- }
- }
- }
- if (draw_wire != OBDRAW_WIRE_OFF) {
+ if ((draw_wire != OBDRAW_WIRE_OFF) && /* draw extra wire */
+ /* when overriding with render only, don't bother */
+ (((v3d->flag2 & V3D_RENDER_OVERRIDE) && v3d->drawtype >= OB_SOLID) == 0))
+ {
/* When using wireframe object draw in particle edit mode
* the mesh gets in the way of seeing the particles, fade the wire color
* with the background. */
- if (is_obact && (ob->mode & OB_MODE_PARTICLE_EDIT)) {
- float col_wire[4], col_bg[4], col[3];
- UI_GetThemeColor3fv(TH_BACK, col_bg);
- glGetFloatv(GL_CURRENT_COLOR, col_wire);
- interp_v3_v3v3(col, col_bg, col_wire, 0.15);
- glColor3fv(col);
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ if (is_obact && (ob->mode & OB_MODE_PARTICLE_EDIT)) {
+ ob_wire_color_blend_theme_id(ob_wire_col, TH_BACK, 0.15f);
+ }
+ else {
+ glColor3ubv(ob_wire_col);
+ }
}
/* If drawing wire and drawtype is not OB_WIRE then we are
@@ -3583,11 +3598,10 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
*/
if (dt != OB_WIRE && (draw_wire == OBDRAW_WIRE_ON_DEPTH)) {
bglPolygonOffset(rv3d->dist, 1.0);
- glDepthMask(0); // disable write in zbuffer, selected edge wires show better
+ glDepthMask(0); /* disable write in zbuffer, selected edge wires show better */
}
- if (((v3d->flag2 & V3D_RENDER_OVERRIDE) && v3d->drawtype >= OB_SOLID) == 0)
- dm->drawEdges(dm, (dt == OB_WIRE || totface == 0), me->drawflag & ME_ALLEDGES);
+ dm->drawEdges(dm, (dt == OB_WIRE || totface == 0), me->drawflag & ME_ALLEDGES);
if (dt != OB_WIRE && (draw_wire == OBDRAW_WIRE_ON_DEPTH)) {
glDepthMask(1);
@@ -3609,7 +3623,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
/* returns 1 if nothing was drawn, for detecting to draw an object center */
static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d, Base *base,
- const short dt, const short dflag)
+ const short dt, const unsigned char ob_wire_col[4], const short dflag)
{
Object *ob = base->object;
Object *obedit = scene->obedit;
@@ -3629,7 +3643,7 @@ static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
}
if (obedit && ob != obedit && ob->data == obedit->data) {
- if (ob_get_key(ob) || ob_get_key(obedit)) {}
+ if (BKE_key_from_object(ob) || BKE_key_from_object(obedit)) {}
else if (ob->modifiers.first || obedit->modifiers.first) {}
else drawlinked = 1;
}
@@ -3673,7 +3687,7 @@ static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
(check_alpha) ? &do_alpha_after : NULL);
}
- draw_mesh_fancy(scene, ar, v3d, rv3d, base, dt, dflag);
+ draw_mesh_fancy(scene, ar, v3d, rv3d, base, dt, ob_wire_col, dflag);
GPU_end_object_materials();
@@ -3681,7 +3695,7 @@ static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
}
}
- if ((dflag & DRAW_PICKING) == 0 && (base->flag & OB_FROMDUPLI) == 0) {
+ if ((dflag & DRAW_PICKING) == 0 && (base->flag & OB_FROMDUPLI) == 0 && (v3d->flag2 & V3D_RENDER_SHADOW) == 0) {
/* GPU_begin_object_materials checked if this is needed */
if (do_alpha_after) {
if (ob->dtx & OB_DRAWXRAY) {
@@ -3771,12 +3785,14 @@ static int drawDispListwire(ListBase *dlbase)
}
glEnd();
-/* (ton) this code crashes for me when resolv is 86 or higher... no clue */
-// glVertexPointer(3, GL_FLOAT, sizeof(float)*3*dl->nr, data + 3*nr);
-// if (dl->flag & DL_CYCL_V)
-// glDrawArrays(GL_LINE_LOOP, 0, dl->parts);
-// else
-// glDrawArrays(GL_LINE_STRIP, 0, dl->parts);
+#if 0
+ /* (ton) this code crashes for me when resolv is 86 or higher... no clue */
+ glVertexPointer(3, GL_FLOAT, sizeof(float) * 3 * dl->nr, data + 3*nr);
+ if (dl->flag & DL_CYCL_V)
+ glDrawArrays(GL_LINE_LOOP, 0, dl->parts);
+ else
+ glDrawArrays(GL_LINE_STRIP, 0, dl->parts);
+#endif
}
break;
@@ -3802,7 +3818,7 @@ static int drawDispListwire(ListBase *dlbase)
return 0;
}
-static void drawDispListsolid(ListBase *lb, Object *ob,
+static void drawDispListsolid(ListBase *lb, Object *ob, const short dflag,
const unsigned char ob_wire_col[4], int use_glsl)
{
DispList *dl;
@@ -3818,7 +3834,7 @@ static void drawDispListsolid(ListBase *lb, Object *ob,
if (ob->transflag & OB_NEG_SCALE) glFrontFace(GL_CW);
else glFrontFace(GL_CCW);
- if (ob->type == OB_MBALL) { // mball always smooth shaded
+ if (ob->type == OB_MBALL) { /* mball always smooth shaded */
glShadeModel(GL_SMOOTH);
}
@@ -3833,7 +3849,9 @@ static void drawDispListsolid(ListBase *lb, Object *ob,
int nr;
glDisable(GL_LIGHTING);
- glColor3ubv(ob_wire_col);
+
+ if ((dflag & DRAW_CONSTCOLOR) == 0)
+ glColor3ubv(ob_wire_col);
// glVertexPointer(3, GL_FLOAT, 0, dl->verts);
// glDrawArrays(GL_LINE_STRIP, 0, dl->nr);
@@ -3960,7 +3978,7 @@ static int drawCurveDerivedMesh(Scene *scene, View3D *v3d, RegionView3D *rv3d, B
/* returns 1 when nothing was drawn */
static int drawDispList(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
- const short dt, const unsigned char ob_wire_col[4])
+ const short dt, const short dflag, const unsigned char ob_wire_col[4])
{
Object *ob = base->object;
ListBase *lb = NULL;
@@ -4008,12 +4026,12 @@ static int drawDispList(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *bas
else {
if (draw_glsl_material(scene, ob, v3d, dt)) {
GPU_begin_object_materials(v3d, rv3d, scene, ob, 1, NULL);
- drawDispListsolid(lb, ob, ob_wire_col, TRUE);
+ drawDispListsolid(lb, ob, dflag, ob_wire_col, TRUE);
GPU_end_object_materials();
}
else {
GPU_begin_object_materials(v3d, rv3d, scene, ob, 0, NULL);
- drawDispListsolid(lb, ob, ob_wire_col, FALSE);
+ drawDispListsolid(lb, ob, dflag, ob_wire_col, FALSE);
GPU_end_object_materials();
}
if (cu->editnurb && cu->bevobj == NULL && cu->taperobj == NULL && cu->ext1 == 0.0f && cu->ext2 == 0.0f) {
@@ -4045,12 +4063,12 @@ static int drawDispList(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *bas
if (draw_glsl_material(scene, ob, v3d, dt)) {
GPU_begin_object_materials(v3d, rv3d, scene, ob, 1, NULL);
- drawDispListsolid(lb, ob, ob_wire_col, TRUE);
+ drawDispListsolid(lb, ob, dflag, ob_wire_col, TRUE);
GPU_end_object_materials();
}
else {
GPU_begin_object_materials(v3d, rv3d, scene, ob, 0, NULL);
- drawDispListsolid(lb, ob, ob_wire_col, FALSE);
+ drawDispListsolid(lb, ob, dflag, ob_wire_col, FALSE);
GPU_end_object_materials();
}
}
@@ -4069,12 +4087,12 @@ static int drawDispList(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *bas
if (draw_glsl_material(scene, ob, v3d, dt)) {
GPU_begin_object_materials(v3d, rv3d, scene, ob, 1, NULL);
- drawDispListsolid(lb, ob, ob_wire_col, TRUE);
+ drawDispListsolid(lb, ob, dflag, ob_wire_col, TRUE);
GPU_end_object_materials();
}
else {
GPU_begin_object_materials(v3d, rv3d, scene, ob, 0, NULL);
- drawDispListsolid(lb, ob, ob_wire_col, FALSE);
+ drawDispListsolid(lb, ob, dflag, ob_wire_col, FALSE);
GPU_end_object_materials();
}
}
@@ -4287,7 +4305,7 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
ParticleDrawData *pdd = psys->pdd;
Material *ma;
float vel[3], imat[4][4];
- float timestep, pixsize_scale, pa_size, r_tilt, r_length;
+ float timestep, pixsize_scale = 1.0f, pa_size, r_tilt, r_length;
float pa_time, pa_birthtime, pa_dietime, pa_health, intensity;
float cfra;
float ma_col[3] = {0.0f, 0.0f, 0.0f};
@@ -4355,7 +4373,7 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
timestep = psys_get_timestep(&sim);
- if ( (base->flag & OB_FROMDUPLI) && (ob->flag & OB_FROMGROUP) ) {
+ if ((base->flag & OB_FROMDUPLI) && (ob->flag & OB_FROMGROUP)) {
float mat[4][4];
mult_m4_m4m4(mat, ob->obmat, psys->imat);
glMultMatrixf(mat);
@@ -4901,7 +4919,7 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
pdd->ma_col = NULL;
}
- if ( (base->flag & OB_FROMDUPLI) && (ob->flag & OB_FROMGROUP) ) {
+ if ((base->flag & OB_FROMDUPLI) && (ob->flag & OB_FROMGROUP)) {
glLoadMatrixf(rv3d->viewmat);
}
}
@@ -5261,7 +5279,7 @@ static void tekenhandlesN(Nurb *nu, short sel, short hide_handles)
a = nu->pntsu;
while (a--) {
if (bezt->hide == 0) {
- if ( (bezt->f2 & SELECT) == sel) {
+ if ((bezt->f2 & SELECT) == sel) {
fp = bezt->vec[0];
glColor3ubv(handle_cols[MIN2(bezt->h1, TH_HANDLE_COL_TOT - 1)]);
@@ -5272,14 +5290,14 @@ static void tekenhandlesN(Nurb *nu, short sel, short hide_handles)
glVertex3fv(fp + 3);
glVertex3fv(fp + 6);
}
- else if ( (bezt->f1 & SELECT) == sel) {
+ else if ((bezt->f1 & SELECT) == sel) {
fp = bezt->vec[0];
glColor3ubv(handle_cols[MIN2(bezt->h1, TH_HANDLE_COL_TOT - 1)]);
glVertex3fv(fp);
glVertex3fv(fp + 3);
}
- else if ( (bezt->f3 & SELECT) == sel) {
+ else if ((bezt->f3 & SELECT) == sel) {
fp = bezt->vec[1];
glColor3ubv(handle_cols[MIN2(bezt->h2, TH_HANDLE_COL_TOT - 1)]);
@@ -5514,7 +5532,7 @@ static void draw_editnurb(Object *ob, Nurb *nurb, int sel)
for (a = nu->pntsu - 1; a > 0; a--, bp++) {
if (bp->hide == 0 && bp1->hide == 0) {
if (sel) {
- if ( (bp->f1 & SELECT) && (bp1->f1 & SELECT) ) {
+ if ((bp->f1 & SELECT) && (bp1->f1 & SELECT)) {
UI_ThemeColor(TH_NURB_SEL_ULINE);
glBegin(GL_LINE_STRIP);
@@ -5549,7 +5567,7 @@ static void draw_editnurb(Object *ob, Nurb *nurb, int sel)
for (a = nu->pntsv - 1; a > 0; a--, bp += ofs) {
if (bp->hide == 0 && bp1->hide == 0) {
if (sel) {
- if ( (bp->f1 & SELECT) && (bp1->f1 & SELECT) ) {
+ if ((bp->f1 & SELECT) && (bp1->f1 & SELECT)) {
UI_ThemeColor(TH_NURB_SEL_VLINE);
glBegin(GL_LINE_STRIP);
@@ -5587,7 +5605,7 @@ static void draw_editnurb(Object *ob, Nurb *nurb, int sel)
}
static void drawnurb(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base, Nurb *nurb,
- const short dt, const unsigned char ob_wire_col[4])
+ const short dt, const short dflag, const unsigned char ob_wire_col[4])
{
ToolSettings *ts = scene->toolsettings;
Object *ob = base->object;
@@ -5602,7 +5620,7 @@ static void drawnurb(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
UI_GetThemeColor3ubv(TH_WIRE, wire_col);
glColor3ubv(wire_col);
- drawDispList(scene, v3d, rv3d, base, dt, ob_wire_col);
+ drawDispList(scene, v3d, rv3d, base, dt, dflag, ob_wire_col);
if (v3d->zbuf) glDisable(GL_DEPTH_TEST);
@@ -5639,8 +5657,8 @@ static void drawnurb(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
while (nr-- > 0) { /* accounts for empty bevel lists */
const float fac = bevp->radius * ts->normalsize;
- float vec_a[3]; // Offset perpendicular to the curve
- float vec_b[3]; // Delta along the curve
+ float vec_a[3]; /* Offset perpendicular to the curve */
+ float vec_b[3]; /* Delta along the curve */
vec_a[0] = fac;
vec_a[1] = 0.0f;
@@ -5736,7 +5754,7 @@ static void draw_empty_cone(float size)
}
/* draw points on curve speed handles */
-#if 0 // XXX old animation system stuff
+#if 0 /* XXX old animation system stuff */
static void curve_draw_speed(Scene *scene, Object *ob)
{
Curve *cu = ob->data;
@@ -5765,7 +5783,7 @@ static void curve_draw_speed(Scene *scene, Object *ob)
glPointSize(1.0);
bglEnd();
}
-#endif // XXX old animation system stuff
+#endif /* XXX old animation system stuff */
static void draw_textcurs(float textcurs[4][2])
@@ -5913,9 +5931,9 @@ static void drawcone(const float vec[3], float radius, float height, float tmat[
glVertex3f(cur[0], cur[1] - radius, cur[2]);
glEnd();
}
-/* return 1 if nothing was drawn */
+/* return TRUE if nothing was drawn */
static int drawmball(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
- const short dt, const unsigned char ob_wire_col[4])
+ const short dt, const short dflag, const unsigned char ob_wire_col[4])
{
Object *ob = base->object;
MetaBall *mb;
@@ -5927,42 +5945,47 @@ static int drawmball(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
if (mb->editelems) {
if ((G.f & G_PICKSEL) == 0) {
- unsigned char wire_col[3];
- UI_GetThemeColor3ubv(TH_WIRE, wire_col);
+ unsigned char wire_col[4];
+ UI_GetThemeColor4ubv(TH_WIRE, wire_col);
glColor3ubv(wire_col);
- drawDispList(scene, v3d, rv3d, base, dt, wire_col);
+ drawDispList(scene, v3d, rv3d, base, dt, dflag, wire_col);
}
ml = mb->editelems->first;
}
else {
if ((base->flag & OB_FROMDUPLI) == 0) {
- drawDispList(scene, v3d, rv3d, base, dt, ob_wire_col);
+ drawDispList(scene, v3d, rv3d, base, dt, dflag, ob_wire_col);
}
ml = mb->elems.first;
}
- if (ml == NULL) return 1;
+ if (ml == NULL) {
+ return TRUE;
+ }
- if (v3d->flag2 & V3D_RENDER_OVERRIDE) return 0;
-
- /* in case solid draw, reset wire colors */
- if (ob->flag & SELECT) {
- if (ob == OBACT) UI_ThemeColor(TH_ACTIVE);
- else UI_ThemeColor(TH_SELECT);
+ if (v3d->flag2 & V3D_RENDER_OVERRIDE) {
+ return FALSE;
}
- else UI_ThemeColor(TH_WIRE);
invert_m4_m4(imat, rv3d->viewmatob);
normalize_v3(imat[0]);
normalize_v3(imat[1]);
+
+ if (mb->editelems == NULL) {
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ glColor3ubv(ob_wire_col);
+ }
+ }
while (ml) {
/* draw radius */
if (mb->editelems) {
- if ((ml->flag & SELECT) && (ml->flag & MB_SCALE_RAD)) cpack(0xA0A0F0);
- else cpack(0x3030A0);
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ if ((ml->flag & SELECT) && (ml->flag & MB_SCALE_RAD)) cpack(0xA0A0F0);
+ else cpack(0x3030A0);
+ }
if (G.f & G_PICKSEL) {
ml->selcol1 = code;
@@ -5973,8 +5996,10 @@ static int drawmball(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
/* draw stiffness */
if (mb->editelems) {
- if ((ml->flag & SELECT) && !(ml->flag & MB_SCALE_RAD)) cpack(0xA0F0A0);
- else cpack(0x30A030);
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ if ((ml->flag & SELECT) && !(ml->flag & MB_SCALE_RAD)) cpack(0xA0F0A0);
+ else cpack(0x30A030);
+ }
if (G.f & G_PICKSEL) {
ml->selcol2 = code;
@@ -5985,23 +6010,16 @@ static int drawmball(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
ml = ml->next;
}
- return 0;
+ return FALSE;
}
-static void draw_forcefield(Scene *scene, Object *ob, RegionView3D *rv3d)
+static void draw_forcefield(Object *ob, RegionView3D *rv3d,
+ const short dflag, const unsigned char ob_wire_col[4])
{
PartDeflect *pd = ob->pd;
float imat[4][4], tmat[4][4];
float vec[3] = {0.0, 0.0, 0.0};
- int curcol;
float size;
-
- /* XXX why? */
- if (ob != scene->obedit && (ob->flag & SELECT)) {
- if (ob == OBACT) curcol = TH_ACTIVE;
- else curcol = TH_SELECT;
- }
- else curcol = TH_EMPTY;
/* scale size of circle etc with the empty drawsize */
if (ob->type == OB_EMPTY) size = ob->empty_drawsize;
@@ -6009,21 +6027,24 @@ static void draw_forcefield(Scene *scene, Object *ob, RegionView3D *rv3d)
/* calculus here, is reused in PFIELD_FORCE */
invert_m4_m4(imat, rv3d->viewmatob);
-// normalize_v3(imat[0]); // we don't do this because field doesnt scale either... apart from wind!
+// normalize_v3(imat[0]); /* we don't do this because field doesnt scale either... apart from wind! */
// normalize_v3(imat[1]);
if (pd->forcefield == PFIELD_WIND) {
float force_val;
-
- unit_m4(tmat);
- UI_ThemeColorBlend(curcol, TH_BACK, 0.5);
-
+
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ ob_wire_color_blend_theme_id(ob_wire_col, TH_BACK, 0.5f);
+ }
+
//if (has_ipo_code(ob->ipo, OB_PD_FSTR))
// force_val = IPO_GetFloatValue(ob->ipo, OB_PD_FSTR, scene->r.cfra);
//else
{
force_val = pd->f_strength;
}
+
+ unit_m4(tmat);
force_val *= 0.1f;
drawcircball(GL_LINE_LOOP, vec, size, tmat);
vec[2] = 0.5f * force_val;
@@ -6045,11 +6066,11 @@ static void draw_forcefield(Scene *scene, Object *ob, RegionView3D *rv3d)
ffall_val = pd->f_power;
}
- UI_ThemeColorBlend(curcol, TH_BACK, 0.5);
+ if ((dflag & DRAW_CONSTCOLOR) == 0) ob_wire_color_blend_theme_id(ob_wire_col, TH_BACK, 0.5f);
drawcircball(GL_LINE_LOOP, vec, size, imat);
- UI_ThemeColorBlend(curcol, TH_BACK, 0.9f - 0.4f / powf(1.5f, ffall_val));
+ if ((dflag & DRAW_CONSTCOLOR) == 0) ob_wire_color_blend_theme_id(ob_wire_col, TH_BACK, 0.9f - 0.4f / powf(1.5f, ffall_val));
drawcircball(GL_LINE_LOOP, vec, size * 1.5f, imat);
- UI_ThemeColorBlend(curcol, TH_BACK, 0.9f - 0.4f / powf(2.0f, ffall_val));
+ if ((dflag & DRAW_CONSTCOLOR) == 0) ob_wire_color_blend_theme_id(ob_wire_col, TH_BACK, 0.9f - 0.4f / powf(2.0f, ffall_val));
drawcircball(GL_LINE_LOOP, vec, size * 2.0f, imat);
}
else if (pd->forcefield == PFIELD_VORTEX) {
@@ -6068,7 +6089,10 @@ static void draw_forcefield(Scene *scene, Object *ob, RegionView3D *rv3d)
force_val = pd->f_strength;
}
- UI_ThemeColorBlend(curcol, TH_BACK, 0.7f);
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ ob_wire_color_blend_theme_id(ob_wire_col, TH_BACK, 0.7f);
+ }
+
if (force_val < 0) {
drawspiral(vec, size, tmat, 1);
drawspiral(vec, size, tmat, 16);
@@ -6090,16 +6114,18 @@ static void draw_forcefield(Scene *scene, Object *ob, RegionView3D *rv3d)
mindist = pd->f_strength;
}
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ ob_wire_color_blend_theme_id(ob_wire_col, TH_BACK, 0.5f);
+ }
+
/*path end*/
setlinestyle(3);
where_on_path(ob, 1.0f, guidevec1, guidevec2, NULL, NULL, NULL);
- UI_ThemeColorBlend(curcol, TH_BACK, 0.5);
drawcircball(GL_LINE_LOOP, guidevec1, mindist, imat);
/*path beginning*/
setlinestyle(0);
where_on_path(ob, 0.0f, guidevec1, guidevec2, NULL, NULL, NULL);
- UI_ThemeColorBlend(curcol, TH_BACK, 0.5);
drawcircball(GL_LINE_LOOP, guidevec1, mindist, imat);
copy_v3_v3(vec, guidevec1); /* max center */
@@ -6107,7 +6133,10 @@ static void draw_forcefield(Scene *scene, Object *ob, RegionView3D *rv3d)
}
setlinestyle(3);
- UI_ThemeColorBlend(curcol, TH_BACK, 0.5);
+
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ ob_wire_color_blend_theme_id(ob_wire_col, TH_BACK, 0.5f);
+ }
if (pd->falloff == PFIELD_FALL_SPHERE) {
/* as last, guide curve alters it */
@@ -6191,9 +6220,9 @@ static void get_local_bounds(Object *ob, float center[3], float size[3])
copy_v3_v3(size, ob->size);
}
else {
- size[0] = 0.5 * fabs(bb->vec[0][0] - bb->vec[4][0]);
- size[1] = 0.5 * fabs(bb->vec[0][1] - bb->vec[2][1]);
- size[2] = 0.5 * fabs(bb->vec[0][2] - bb->vec[1][2]);
+ size[0] = 0.5 * fabsf(bb->vec[0][0] - bb->vec[4][0]);
+ size[1] = 0.5 * fabsf(bb->vec[0][1] - bb->vec[2][1]);
+ size[2] = 0.5 * fabsf(bb->vec[0][2] - bb->vec[1][2]);
center[0] = (bb->vec[0][0] + bb->vec[4][0]) / 2.0;
center[1] = (bb->vec[0][1] + bb->vec[2][1]) / 2.0;
@@ -6357,59 +6386,46 @@ static void drawObjectSelect(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
glDepthMask(1);
}
-static void drawWireExtra(Scene *scene, RegionView3D *rv3d, Object *ob)
+static void draw_wire_extra(Scene *scene, RegionView3D *rv3d, Object *ob, unsigned char ob_wire_col[4])
{
- if (ob != scene->obedit && (ob->flag & SELECT)) {
- if (ob == OBACT) {
- if (ob->flag & OB_FROMGROUP) UI_ThemeColor(TH_GROUP_ACTIVE);
- else UI_ThemeColor(TH_ACTIVE);
+ if (ELEM4(ob->type, OB_FONT, OB_CURVE, OB_SURF, OB_MBALL)) {
+
+ if (scene->obedit == ob) {
+ UI_ThemeColor(TH_WIRE);
}
- else if (ob->flag & OB_FROMGROUP)
- UI_ThemeColorShade(TH_GROUP_ACTIVE, -16);
- else
- UI_ThemeColor(TH_SELECT);
- }
- else {
- if (ob->flag & OB_FROMGROUP)
- UI_ThemeColor(TH_GROUP);
else {
- if (ob->dtx & OB_DRAWWIRE) {
- glColor3ub(80, 80, 80);
- }
- else {
- UI_ThemeColor(TH_WIRE);
- }
+ glColor3ubv(ob_wire_col);
}
- }
-
- bglPolygonOffset(rv3d->dist, 1.0);
- glDepthMask(0); // disable write in zbuffer, selected edge wires show better
-
- if (ELEM3(ob->type, OB_FONT, OB_CURVE, OB_SURF)) {
- Curve *cu = ob->data;
- if (ED_view3d_boundbox_clip(rv3d, ob->obmat, ob->bb ? ob->bb : cu->bb)) {
- if (ob->type == OB_CURVE)
- draw_index_wire = 0;
- if (ob->derivedFinal) {
- drawCurveDMWired(ob);
+ bglPolygonOffset(rv3d->dist, 1.0);
+ glDepthMask(0); /* disable write in zbuffer, selected edge wires show better */
+
+ if (ELEM3(ob->type, OB_FONT, OB_CURVE, OB_SURF)) {
+ Curve *cu = ob->data;
+ if (ED_view3d_boundbox_clip(rv3d, ob->obmat, ob->bb ? ob->bb : cu->bb)) {
+ if (ob->type == OB_CURVE)
+ draw_index_wire = 0;
+
+ if (ob->derivedFinal) {
+ drawCurveDMWired(ob);
+ }
+ else {
+ drawDispListwire(&ob->disp);
+ }
+
+ if (ob->type == OB_CURVE)
+ draw_index_wire = 1;
}
- else {
+ }
+ else if (ob->type == OB_MBALL) {
+ if (BKE_mball_is_basis(ob)) {
drawDispListwire(&ob->disp);
}
-
- if (ob->type == OB_CURVE)
- draw_index_wire = 1;
}
- }
- else if (ob->type == OB_MBALL) {
- if (BKE_mball_is_basis(ob)) {
- drawDispListwire(&ob->disp);
- }
- }
- glDepthMask(1);
- bglPolygonOffset(rv3d->dist, 0.0);
+ glDepthMask(1);
+ bglPolygonOffset(rv3d->dist, 0.0);
+ }
}
/* should be called in view space */
@@ -6442,14 +6458,12 @@ static void draw_hooks(Object *ob)
}
}
-static void draw_rigid_body_pivot(bRigidBodyJointConstraint *data, const unsigned char ob_wire_col[4])
+static void draw_rigid_body_pivot(bRigidBodyJointConstraint *data, const short dflag, unsigned char ob_wire_col[4])
{
const char *axis_str[3] = {"px", "py", "pz"};
int axis;
float mat[4][4];
- /* color */
-
eul_to_mat4(mat, &data->axX);
glLineWidth(4.0f);
setlinestyle(2);
@@ -6459,7 +6473,7 @@ static void draw_rigid_body_pivot(bRigidBodyJointConstraint *data, const unsigne
copy_v3_v3(v, &data->pivX);
- dir[axis] = 1.f;
+ dir[axis] = 1.0f;
glBegin(GL_LINES);
mul_m4_v3(mat, dir);
add_v3_v3(v, dir);
@@ -6467,7 +6481,11 @@ static void draw_rigid_body_pivot(bRigidBodyJointConstraint *data, const unsigne
glVertex3fv(v);
glEnd();
- view3d_cached_text_draw_add(v, axis_str[axis], 0, V3D_CACHE_TEXT_ASCII, ob_wire_col);
+ /* when const color is set wirecolor is NULL - we could get the current color but
+ * with selection and group instancing its not needed to draw the text */
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ view3d_cached_text_draw_add(v, axis_str[axis], 0, V3D_CACHE_TEXT_ASCII, ob_wire_col);
+ }
}
glLineWidth(1.0f);
setlinestyle(0);
@@ -6548,7 +6566,10 @@ static void draw_object_wire_color(Scene *scene, Base *base, unsigned char r_ob_
r_ob_wire_col[3] = 255;
}
-/* flag can be DRAW_PICKING and/or DRAW_CONSTCOLOR, DRAW_SCENESET */
+/**
+ * main object drawing function, draws in selection
+ * \param dflag (draw flag) can be DRAW_PICKING and/or DRAW_CONSTCOLOR, DRAW_SCENESET
+ */
void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short dflag)
{
static int warning_recursive = 0;
@@ -6579,11 +6600,11 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
}
/* XXX particles are not safe for simultaneous threaded render */
- if (G.rendering && ob->particlesystem.first)
+ if (G.is_rendering && ob->particlesystem.first)
return;
/* xray delay? */
- if ((dflag & DRAW_PICKING) == 0 && (base->flag & OB_FROMDUPLI) == 0) {
+ if ((dflag & DRAW_PICKING) == 0 && (base->flag & OB_FROMDUPLI) == 0 && (v3d->flag2 & V3D_RENDER_SHADOW) == 0) {
/* don't do xray in particle mode, need the z-buffer */
if (!(ob->mode & OB_MODE_PARTICLE_EDIT)) {
/* xray and transp are set when it is drawing the 2nd/3rd pass */
@@ -6618,7 +6639,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
/* which wire color */
if ((dflag & DRAW_CONSTCOLOR) == 0) {
- project_short(ar, ob->obmat[3], &base->sx);
+ ED_view3d_project_base(ar, base);
draw_object_wire_color(scene, base, _ob_wire_col, warning_recursive);
ob_wire_col = _ob_wire_col;
@@ -6682,8 +6703,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
/* draw outline for selected objects, mesh does itself */
if ((v3d->flag & V3D_SELECT_OUTLINE) && ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) && ob->type != OB_MESH) {
if (dt > OB_WIRE && (ob->mode & OB_MODE_EDIT) == 0 && (dflag & DRAW_SCENESET) == 0) {
- if (!(ob->dtx & OB_DRAWWIRE) && (ob->flag & SELECT) && !(dflag & DRAW_PICKING)) {
-
+ if (!(ob->dtx & OB_DRAWWIRE) && (ob->flag & SELECT) && !(dflag & (DRAW_PICKING | DRAW_CONSTCOLOR))) {
drawObjectSelect(scene, v3d, ar, base, ob_wire_col);
}
}
@@ -6691,7 +6711,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
switch (ob->type) {
case OB_MESH:
- empty_object = draw_mesh_object(scene, ar, v3d, rv3d, base, dt, dflag);
+ empty_object = draw_mesh_object(scene, ar, v3d, rv3d, base, dt, ob_wire_col, dflag);
if (dflag != DRAW_CONSTCOLOR) dtx &= ~OB_DRAWWIRE; // mesh draws wire itself
break;
@@ -6703,11 +6723,11 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
if (cu->flag & CU_FAST) {
cpack(0xFFFFFF);
set_inverted_drawing(1);
- drawDispList(scene, v3d, rv3d, base, OB_WIRE, ob_wire_col);
+ drawDispList(scene, v3d, rv3d, base, OB_WIRE, dflag, ob_wire_col);
set_inverted_drawing(0);
}
else {
- drawDispList(scene, v3d, rv3d, base, dt, ob_wire_col);
+ drawDispList(scene, v3d, rv3d, base, dt, dflag, ob_wire_col);
}
if (cu->linewidth != 0.0f) {
@@ -6782,7 +6802,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
}
}
else if (ED_view3d_boundbox_clip(rv3d, ob->obmat, ob->bb ? ob->bb : cu->bb)) {
- empty_object = drawDispList(scene, v3d, rv3d, base, dt, ob_wire_col);
+ empty_object = drawDispList(scene, v3d, rv3d, base, dt, dflag, ob_wire_col);
}
break;
@@ -6792,7 +6812,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
if (cu->editnurb) {
ListBase *nurbs = BKE_curve_editNurbs_get(cu);
- drawnurb(scene, v3d, rv3d, base, nurbs->first, dt, ob_wire_col);
+ drawnurb(scene, v3d, rv3d, base, nurbs->first, dt, dflag, ob_wire_col);
}
else if (dt == OB_BOUNDBOX) {
if (((v3d->flag2 & V3D_RENDER_OVERRIDE) && (v3d->drawtype >= OB_WIRE)) == 0) {
@@ -6800,7 +6820,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
}
}
else if (ED_view3d_boundbox_clip(rv3d, ob->obmat, ob->bb ? ob->bb : cu->bb)) {
- empty_object = drawDispList(scene, v3d, rv3d, base, dt, ob_wire_col);
+ empty_object = drawDispList(scene, v3d, rv3d, base, dt, dflag, ob_wire_col);
//XXX old animsys if (cu->path)
// curve_draw_speed(scene, ob);
@@ -6811,20 +6831,20 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
MetaBall *mb = ob->data;
if (mb->editelems)
- drawmball(scene, v3d, rv3d, base, dt, ob_wire_col);
+ drawmball(scene, v3d, rv3d, base, dt, dflag, ob_wire_col);
else if (dt == OB_BOUNDBOX) {
if (((v3d->flag2 & V3D_RENDER_OVERRIDE) && (v3d->drawtype >= OB_WIRE)) == 0) {
draw_bounding_volume(scene, ob, ob->boundtype);
}
}
else
- empty_object = drawmball(scene, v3d, rv3d, base, dt, ob_wire_col);
+ empty_object = drawmball(scene, v3d, rv3d, base, dt, dflag, ob_wire_col);
break;
}
case OB_EMPTY:
if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
if (ob->empty_drawtype == OB_EMPTY_IMAGE) {
- draw_empty_image(ob);
+ draw_empty_image(ob, dflag, ob_wire_col);
}
else {
drawaxes(ob->empty_drawsize, ob->empty_drawtype);
@@ -6896,7 +6916,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
}
if (ob->pd && ob->pd->forcefield) {
- draw_forcefield(scene, ob, rv3d);
+ draw_forcefield(ob, rv3d, dflag, ob_wire_col);
}
}
@@ -6936,9 +6956,9 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
}
/* draw edit particles last so that they can draw over child particles */
- if ( (warning_recursive == 0) &&
- (dflag & DRAW_PICKING) == 0 &&
- (!scene->obedit))
+ if ((warning_recursive == 0) &&
+ (dflag & DRAW_PICKING) == 0 &&
+ (!scene->obedit))
{
if (ob->mode & OB_MODE_PARTICLE_EDIT && is_obact) {
@@ -6990,7 +7010,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
#endif
}
- // only draw domains
+ /* only draw domains */
if (smd->domain && smd->domain->fluid) {
if (CFRA < smd->domain->point_cache[0]->startframe) {
/* don't show smoke before simulation starts, this could be made an option in the future */
@@ -7068,7 +7088,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
if (con->type == CONSTRAINT_TYPE_RIGIDBODYJOINT) {
bRigidBodyJointConstraint *data = (bRigidBodyJointConstraint *)con->data;
if (data->flag & CONSTRAINT_DRAW_PIVOT)
- draw_rigid_body_pivot(data, ob_wire_col);
+ draw_rigid_body_pivot(data, dflag, ob_wire_col);
}
}
@@ -7103,7 +7123,9 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
}
/*if (dtx & OB_DRAWIMAGE) drawDispListwire(&ob->disp);*/
if ((dtx & OB_DRAWWIRE) && dt >= OB_SOLID) {
- drawWireExtra(scene, rv3d, ob);
+ if ((dflag & DRAW_CONSTCOLOR) == 0) {
+ draw_wire_extra(scene, rv3d, ob, ob_wire_col);
+ }
}
}
}
@@ -7143,7 +7165,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
}
/* object centers, need to be drawn in viewmat space for speed, but OK for picking select */
- if (!is_obact || !(ob->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT | OB_MODE_TEXTURE_PAINT))) {
+ if (!is_obact || !(ob->mode & OB_MODE_ALL_PAINT)) {
int do_draw_center = -1; /* defines below are zero or positive... */
if (v3d->flag2 & V3D_RENDER_OVERRIDE) {
@@ -7236,7 +7258,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, const short
setlinestyle(0);
}
}
- else if ((curcon->flag & CONSTRAINT_EXPAND) && (cti) && (cti->get_constraint_targets)) {
+ else if ((curcon->flag & CONSTRAINT_EXPAND) && (cti->get_constraint_targets)) {
cti->get_constraint_targets(curcon, &targets);
for (ct = targets.first; ct; ct = ct->next) {
@@ -7276,7 +7298,7 @@ static void bbs_obmode_mesh_verts__mapFunc(void *userData, int index, const floa
int offset = (intptr_t) data->offset;
if (!(mv->flag & ME_HIDE)) {
- WM_set_framebuffer_index_color(offset + index);
+ WM_framebuffer_index_set(offset + index);
bglVertex3fv(co);
}
}
@@ -7303,7 +7325,7 @@ static void bbs_mesh_verts__mapFunc(void *userData, int index, const float co[3]
BMVert *eve = EDBM_vert_at_index(ptrs[1], index);
if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) {
- WM_set_framebuffer_index_color(offset + index);
+ WM_framebuffer_index_set(offset + index);
bglVertex3fv(co);
}
}
@@ -7325,7 +7347,7 @@ static DMDrawOption bbs_mesh_wire__setDrawOptions(void *userData, int index)
BMEdge *eed = EDBM_edge_at_index(ptrs[1], index);
if (!BM_elem_flag_test(eed, BM_ELEM_HIDDEN)) {
- WM_set_framebuffer_index_color(offset + index);
+ WM_framebuffer_index_set(offset + index);
return DM_DRAW_OPTION_NORMAL;
}
else {
@@ -7344,7 +7366,7 @@ static DMDrawOption bbs_mesh_solid__setSolidDrawOptions(void *userData, int inde
if (efa && !BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) {
if (((void **)userData)[1]) {
- WM_set_framebuffer_index_color(index + 1);
+ WM_framebuffer_index_set(index + 1);
}
return DM_DRAW_OPTION_NORMAL;
}
@@ -7358,7 +7380,7 @@ static void bbs_mesh_solid__drawCenter(void *userData, int index, const float ce
BMFace *efa = EDBM_face_at_index(((void **)userData)[0], index);
if (!BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) {
- WM_set_framebuffer_index_color(index + 1);
+ WM_framebuffer_index_set(index + 1);
bglVertex3fv(cent);
}
@@ -7391,7 +7413,7 @@ static void bbs_mesh_solid_EM(BMEditMesh *em, Scene *scene, View3D *v3d,
static DMDrawOption bbs_mesh_solid__setDrawOpts(void *UNUSED(userData), int index)
{
- WM_set_framebuffer_index_color(index + 1);
+ WM_framebuffer_index_set(index + 1);
return DM_DRAW_OPTION_NORMAL;
}
@@ -7400,7 +7422,7 @@ static DMDrawOption bbs_mesh_solid_hide__setDrawOpts(void *userData, int index)
Mesh *me = userData;
if (!(me->mpoly[index].flag & ME_HIDE)) {
- WM_set_framebuffer_index_color(index + 1);
+ WM_framebuffer_index_set(index + 1);
return DM_DRAW_OPTION_NORMAL;
}
else {
@@ -7408,7 +7430,7 @@ static DMDrawOption bbs_mesh_solid_hide__setDrawOpts(void *userData, int index)
}
}
-// must have called WM_set_framebuffer_index_color beforehand
+/* must have called WM_framebuffer_index_set beforehand */
static DMDrawOption bbs_mesh_solid_hide2__setDrawOpts(void *userData, int index)
{
Mesh *me = userData;
@@ -7462,11 +7484,11 @@ void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, Objec
bglPolygonOffset(rv3d->dist, 1.0);
- // we draw edges always, for loop (select) tools
+ /* we draw edges always, for loop (select) tools */
bbs_mesh_wire(em, dm, bm_solidoffs);
bm_wireoffs = bm_solidoffs + em->bm->totedge;
- // we draw verts if vert select mode or if in transform (for snap).
+ /* we draw verts if vert select mode or if in transform (for snap). */
if ((ts->selectmode & SCE_SELECT_VERTEX) || (G.moving & G_TRANSFORM_EDIT)) {
bbs_mesh_verts(em, dm, bm_wireoffs);
bm_vertoffs = bm_wireoffs + em->bm->totvert;
@@ -7575,7 +7597,8 @@ void draw_object_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object
break;
case OB_EMPTY:
if (ob->empty_drawtype == OB_EMPTY_IMAGE) {
- draw_empty_image(ob);
+ /* CONSTCOLOR == no wire outline */
+ draw_empty_image(ob, DRAW_CONSTCOLOR, NULL);
}
else {
drawaxes(ob->empty_drawsize, ob->empty_drawtype);
diff --git a/source/blender/editors/space_view3d/drawvolume.c b/source/blender/editors/space_view3d/drawvolume.c
index 7d39a89a130..2c2d4039225 100644
--- a/source/blender/editors/space_view3d/drawvolume.c
+++ b/source/blender/editors/space_view3d/drawvolume.c
@@ -45,7 +45,7 @@
#include "BLI_rand.h"
#include "BKE_curve.h"
-#include "BKE_constraint.h" // for the get_constraint_target function
+#include "BKE_constraint.h" /* for the get_constraint_target function */
#include "BKE_DerivedMesh.h"
#include "BKE_displist.h"
#include "BKE_effect.h"
@@ -148,7 +148,7 @@ static int intersect_edges(float *points, float a, float b, float c, float d, fl
static int convex(const float p0[3], const float up[3], const float a[3], const float b[3])
{
- // Vec3 va = a-p0, vb = b-p0;
+ /* Vec3 va = a-p0, vb = b-p0; */
float va[3], vb[3], tmp[3];
sub_v3_v3v3(va, a, p0);
sub_v3_v3v3(vb, b, p0);
@@ -175,7 +175,7 @@ void draw_volume(ARegion *ar, GPUTexture *tex, float min[3], float max[3], int r
{1.0f, 1.0f, -1.0f}, {-1.0f, 1.0f, -1.0f}, {-1.0f, -1.0f, -1.0f}, {1.0f, -1.0f, -1.0f}
};
- // edges have the form edges[n][0][xyz] + t*edges[n][1][xyz]
+ /* edges have the form edges[n][0][xyz] + t*edges[n][1][xyz] */
float edges[12][2][3] = {
{{1.0f, 1.0f, -1.0f}, {0.0f, 0.0f, 2.0f}},
{{-1.0f, 1.0f, -1.0f}, {0.0f, 0.0f, 2.0f}},
@@ -226,54 +226,54 @@ void draw_volume(ARegion *ar, GPUTexture *tex, float min[3], float max[3], int r
sub_v3_v3v3(size, max, min);
- // maxx, maxy, maxz
+ /* maxx, maxy, maxz */
cv[0][0] = max[0];
cv[0][1] = max[1];
cv[0][2] = max[2];
- // minx, maxy, maxz
+ /* minx, maxy, maxz */
cv[1][0] = min[0];
cv[1][1] = max[1];
cv[1][2] = max[2];
- // minx, miny, maxz
+ /* minx, miny, maxz */
cv[2][0] = min[0];
cv[2][1] = min[1];
cv[2][2] = max[2];
- // maxx, miny, maxz
+ /* maxx, miny, maxz */
cv[3][0] = max[0];
cv[3][1] = min[1];
cv[3][2] = max[2];
- // maxx, maxy, minz
+ /* maxx, maxy, minz */
cv[4][0] = max[0];
cv[4][1] = max[1];
cv[4][2] = min[2];
- // minx, maxy, minz
+ /* minx, maxy, minz */
cv[5][0] = min[0];
cv[5][1] = max[1];
cv[5][2] = min[2];
- // minx, miny, minz
+ /* minx, miny, minz */
cv[6][0] = min[0];
cv[6][1] = min[1];
cv[6][2] = min[2];
- // maxx, miny, minz
+ /* maxx, miny, minz */
cv[7][0] = max[0];
cv[7][1] = min[1];
cv[7][2] = min[2];
- copy_v3_v3(edges[0][0], cv[4]); // maxx, maxy, minz
- copy_v3_v3(edges[1][0], cv[5]); // minx, maxy, minz
- copy_v3_v3(edges[2][0], cv[6]); // minx, miny, minz
- copy_v3_v3(edges[3][0], cv[7]); // maxx, miny, minz
+ copy_v3_v3(edges[0][0], cv[4]); /* maxx, maxy, minz */
+ copy_v3_v3(edges[1][0], cv[5]); /* minx, maxy, minz */
+ copy_v3_v3(edges[2][0], cv[6]); /* minx, miny, minz */
+ copy_v3_v3(edges[3][0], cv[7]); /* maxx, miny, minz */
- copy_v3_v3(edges[4][0], cv[3]); // maxx, miny, maxz
- copy_v3_v3(edges[5][0], cv[2]); // minx, miny, maxz
- copy_v3_v3(edges[6][0], cv[6]); // minx, miny, minz
- copy_v3_v3(edges[7][0], cv[7]); // maxx, miny, minz
+ copy_v3_v3(edges[4][0], cv[3]); /* maxx, miny, maxz */
+ copy_v3_v3(edges[5][0], cv[2]); /* minx, miny, maxz */
+ copy_v3_v3(edges[6][0], cv[6]); /* minx, miny, minz */
+ copy_v3_v3(edges[7][0], cv[7]); /* maxx, miny, minz */
- copy_v3_v3(edges[8][0], cv[1]); // minx, maxy, maxz
- copy_v3_v3(edges[9][0], cv[2]); // minx, miny, maxz
- copy_v3_v3(edges[10][0], cv[6]); // minx, miny, minz
- copy_v3_v3(edges[11][0], cv[5]); // minx, maxy, minz
+ copy_v3_v3(edges[8][0], cv[1]); /* minx, maxy, maxz */
+ copy_v3_v3(edges[9][0], cv[2]); /* minx, miny, maxz */
+ copy_v3_v3(edges[10][0], cv[6]); /* minx, miny, minz */
+ copy_v3_v3(edges[11][0], cv[5]); /* minx, maxy, minz */
// printf("size x: %f, y: %f, z: %f\n", size[0], size[1], size[2]);
// printf("min[2]: %f, max[2]: %f\n", min[2], max[2]);
@@ -311,11 +311,11 @@ void draw_volume(ARegion *ar, GPUTexture *tex, float min[3], float max[3], int r
printf("%f, %f, %f\n", rv3d->viewinv[2][0], rv3d->viewinv[2][1], rv3d->viewinv[2][2]);
#endif
- // get view vector
+ /* get view vector */
copy_v3_v3(viewnormal, rv3d->viewinv[2]);
normalize_v3(viewnormal);
- // find cube vertex that is closest to the viewer
+ /* find cube vertex that is closest to the viewer */
for (i = 0; i < 8; i++) {
float x, y, z;
@@ -346,9 +346,9 @@ void draw_volume(ARegion *ar, GPUTexture *tex, float min[3], float max[3], int r
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, prog);
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, (GLsizei)strlen(text), text);
- // cell spacing
+ /* cell spacing */
glProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, 0, dx, dx, dx, 1.0);
- // custom parameter for smoke style (higher = thicker)
+ /* custom parameter for smoke style (higher = thicker) */
glProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, 1, 7.0, 7.0, 7.0, 1.0);
}
else
@@ -366,14 +366,14 @@ void draw_volume(ARegion *ar, GPUTexture *tex, float min[3], float max[3], int r
cor[2] = (float)res[2] / (float)power_of_2_max_i(res[2]);
}
- // our slices are defined by the plane equation a*x + b*y +c*z + d = 0
- // (a,b,c), the plane normal, are given by viewdir
- // d is the parameter along the view direction. the first d is given by
- // inserting previously found vertex into the plane equation
+ /* our slices are defined by the plane equation a*x + b*y +c*z + d = 0
+ * (a,b,c), the plane normal, are given by viewdir
+ * d is the parameter along the view direction. the first d is given by
+ * inserting previously found vertex into the plane equation */
/* d0 = (viewnormal[0]*cv[i][0] + viewnormal[1]*cv[i][1] + viewnormal[2]*cv[i][2]); */ /* UNUSED */
ds = (ABS(viewnormal[0]) * size[0] + ABS(viewnormal[1]) * size[1] + ABS(viewnormal[2]) * size[2]);
- dd = ds/96.f;
+ dd = ds / 96.f;
n = 0;
good_index = i;
@@ -395,8 +395,8 @@ void draw_volume(ARegion *ar, GPUTexture *tex, float min[3], float max[3], int r
// printf("my d: %f\n", d);
- // intersect_edges returns the intersection points of all cube edges with
- // the given plane that lie within the cube
+ /* intersect_edges returns the intersection points of all cube edges with
+ * the given plane that lie within the cube */
numpoints = intersect_edges(points, viewnormal[0], viewnormal[1], viewnormal[2], -d, edges);
// printf("points: %d\n", numpoints);
@@ -404,7 +404,7 @@ void draw_volume(ARegion *ar, GPUTexture *tex, float min[3], float max[3], int r
if (numpoints > 2) {
copy_v3_v3(p0, points);
- // sort points to get a convex polygon
+ /* sort points to get a convex polygon */
for (i = 1; i < numpoints - 1; i++) {
for (j = i + 1; j < numpoints; j++) {
if (!convex(p0, viewnormal, &points[j * 3], &points[i * 3])) {
@@ -454,4 +454,3 @@ void draw_volume(ARegion *ar, GPUTexture *tex, float min[3], float max[3], int r
glDepthMask(GL_TRUE);
}
}
-
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index a6948222d93..236cbb86724 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -62,7 +62,7 @@
#include "UI_resources.h"
-#include "view3d_intern.h" // own include
+#include "view3d_intern.h" /* own include */
/* ******************** manage regions ********************* */
@@ -776,7 +776,6 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
break;
case NC_SCREEN:
switch (wmn->data) {
- case ND_GPENCIL:
case ND_ANIMPLAY:
case ND_SKETCH:
ED_region_tag_redraw(ar);
@@ -793,6 +792,10 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
}
break;
+ case NC_GPENCIL:
+ if (wmn->action == NA_EDITED)
+ ED_region_tag_redraw(ar);
+ break;
}
}
@@ -941,8 +944,8 @@ static void view3d_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
if (wmn->action == NA_RENAME)
ED_region_tag_redraw(ar);
break;
- case NC_SCREEN:
- if (wmn->data == ND_GPENCIL)
+ case NC_GPENCIL:
+ if (wmn->data == ND_DATA)
ED_region_tag_redraw(ar);
break;
}
@@ -984,7 +987,7 @@ static void view3d_props_area_listener(ARegion *ar, wmNotifier *wmn)
}
/*area (not region) level listener*/
-static void space_view3d_listener(struct ScrArea *sa, struct wmNotifier *wmn)
+static void space_view3d_listener(ScrArea *sa, struct wmNotifier *wmn)
{
View3D *v3d = sa->spacedata.first;
@@ -1016,7 +1019,7 @@ static void space_view3d_listener(struct ScrArea *sa, struct wmNotifier *wmn)
break;
}
- // removed since BKE_image_user_frame_calc is now called in view3d_draw_bgpic because screen_ops doesnt call the notifier.
+ /* removed since BKE_image_user_frame_calc is now called in view3d_draw_bgpic because screen_ops doesnt call the notifier. */
#if 0
if (wmn->category == NC_SCENE && wmn->data == ND_FRAME) {
View3D *v3d = area->spacedata.first;
@@ -1172,7 +1175,7 @@ void ED_spacetype_view3d(void)
/* regions: listview/buttons */
art = MEM_callocN(sizeof(ARegionType), "spacetype view3d buttons region");
art->regionid = RGN_TYPE_UI;
- art->prefsizex = 180; // XXX
+ art->prefsizex = 180; /* XXX */
art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_FRAMES;
art->listener = view3d_buttons_area_listener;
art->init = view3d_buttons_area_init;
@@ -1184,8 +1187,8 @@ void ED_spacetype_view3d(void)
/* regions: tool(bar) */
art = MEM_callocN(sizeof(ARegionType), "spacetype view3d tools region");
art->regionid = RGN_TYPE_TOOLS;
- art->prefsizex = 160; // XXX
- art->prefsizey = 50; // XXX
+ art->prefsizex = 160; /* XXX */
+ art->prefsizey = 50; /* XXX */
art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_FRAMES;
art->listener = view3d_buttons_area_listener;
art->init = view3d_tools_area_init;
diff --git a/source/blender/editors/space_view3d/view3d_buttons.c b/source/blender/editors/space_view3d/view3d_buttons.c
index 6cfa828024d..1f7bae0b23e 100644
--- a/source/blender/editors/space_view3d/view3d_buttons.c
+++ b/source/blender/editors/space_view3d/view3d_buttons.c
@@ -83,17 +83,18 @@
/* ******************* view3d space & buttons ************** */
-#define B_NOP 1
#define B_REDR 2
#define B_OBJECTPANELMEDIAN 1008
+#define NBR_TRANSFORM_PROPERTIES 7
+
/* temporary struct for storing transform properties */
typedef struct {
float ob_eul[4]; /* used for quat too... */
float ob_scale[3]; /* need temp space due to linked values */
float ob_dims[3];
short link_scale;
- float ve_median[7];
+ float ve_median[NBR_TRANSFORM_PROPERTIES];
int curdef;
float *defweightp;
} TransformProperties;
@@ -132,17 +133,38 @@ static float compute_scale_factor(const float ve_median, const float median)
/* is used for both read and write... */
static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float lim)
{
+/* Get rid of those ugly magic numbers, even in a single func they become confusing! */
+/* Location, common to all. */
+/* XXX Those two *must* remain contiguous (used as array)! */
+#define LOC_X 0
+#define LOC_Y 1
+#define LOC_Z 2
+/* Meshes... */
+#define M_CREASE 3
+#define M_WEIGHT 4
+/* XXX Those two *must* remain contiguous (used as array)! */
+#define M_SKIN_X 5
+#define M_SKIN_Y 6
+/* Curves... */
+#define C_BWEIGHT 3
+#define C_WEIGHT 4
+#define C_RADIUS 5
+#define C_TILT 6
+/*Lattice... */
+#define L_WEIGHT 4
+
uiBlock *block = (layout) ? uiLayoutAbsoluteBlock(layout) : NULL;
MDeformVert *dvert = NULL;
TransformProperties *tfp;
- float median[7], ve_median[7];
- int tot, totw, totweight, totedge, totradius;
+ float median[NBR_TRANSFORM_PROPERTIES], ve_median[NBR_TRANSFORM_PROPERTIES];
+ int tot, totedgedata, totcurvedata, totlattdata, totskinradius, totcurvebweight;
+ int meshdata = FALSE, i;
char defstr[320];
- PointerRNA radius_ptr;
+ PointerRNA data_ptr;
- median[0] = median[1] = median[2] = median[3] = median[4] = median[5] = median[6] = 0.0;
- tot = totw = totweight = totedge = totradius = 0;
- defstr[0] = 0;
+ fill_vn_fl(median, NBR_TRANSFORM_PROPERTIES, 0.0f);
+ tot = totedgedata = totcurvedata = totlattdata = totskinradius = totcurvebweight = 0;
+ defstr[0] = '\0';
/* make sure we got storage */
if (v3d->properties_storage == NULL)
@@ -159,9 +181,17 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
BM_ITER_MESH (eve, &iter, bm, BM_VERTS_OF_MESH) {
if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) {
+ MVertSkin *vs;
+
evedef = eve;
tot++;
- add_v3_v3(median, eve->co);
+ add_v3_v3(&median[LOC_X], eve->co);
+
+ vs = (MVertSkin *)CustomData_bmesh_get(&bm->vdata, eve->head.data, CD_MVERT_SKIN);
+ if (vs) {
+ add_v2_v2(&median[M_SKIN_X], vs->radius); /* Third val not used currently. */
+ totskinradius++;
+ }
}
}
@@ -169,12 +199,12 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
if (BM_elem_flag_test(eed, BM_ELEM_SELECT)) {
float *f;
- totedge++;
+ totedgedata++;
f = (float *)CustomData_bmesh_get(&bm->edata, eed->head.data, CD_CREASE);
- median[3] += f ? *f : 0.0f;
+ median[M_CREASE] += f ? *f : 0.0f;
f = (float *)CustomData_bmesh_get(&bm->edata, eed->head.data, CD_BWEIGHT);
- median[6] += f ? *f : 0.0f;
+ median[M_WEIGHT] += f ? *f : 0.0f;
}
}
@@ -204,6 +234,8 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
tfp->defweightp = &dvert->dw[0].weight;
}
}
+
+ meshdata = totedgedata || totskinradius;
}
else if (ob->type == OB_CURVE || ob->type == OB_SURF) {
Curve *cu = ob->data;
@@ -222,22 +254,24 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
a = nu->pntsu;
while (a--) {
if (bezt->f2 & SELECT) {
- add_v3_v3(median, bezt->vec[1]);
+ add_v3_v3(&median[LOC_X], bezt->vec[1]);
tot++;
- median[4] += bezt->weight;
- totweight++;
- median[5] += bezt->radius;
- totradius++;
- selp = bezt;
- seltype = &RNA_BezierSplinePoint;
+ median[C_WEIGHT] += bezt->weight;
+ median[C_RADIUS] += bezt->radius;
+ median[C_TILT] += bezt->alfa;
+ if (!totcurvedata) { /* I.e. first time... */
+ selp = bezt;
+ seltype = &RNA_BezierSplinePoint;
+ }
+ totcurvedata++;
}
else {
if (bezt->f1 & SELECT) {
- add_v3_v3(median, bezt->vec[0]);
+ add_v3_v3(&median[LOC_X], bezt->vec[0]);
tot++;
}
if (bezt->f3 & SELECT) {
- add_v3_v3(median, bezt->vec[2]);
+ add_v3_v3(&median[LOC_X], bezt->vec[2]);
tot++;
}
}
@@ -249,16 +283,18 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
a = nu->pntsu * nu->pntsv;
while (a--) {
if (bp->f1 & SELECT) {
- add_v3_v3(median, bp->vec);
- median[3] += bp->vec[3];
- totw++;
+ add_v3_v3(&median[LOC_X], bp->vec);
+ median[C_BWEIGHT] += bp->vec[3];
+ totcurvebweight++;
tot++;
- median[4] += bp->weight;
- totweight++;
- median[5] += bp->radius;
- totradius++;
- selp = bp;
- seltype = &RNA_SplinePoint;
+ median[C_WEIGHT] += bp->weight;
+ median[C_RADIUS] += bp->radius;
+ median[C_TILT] += bp->alfa;
+ if (!totcurvedata) { /* I.e. first time... */
+ selp = bp;
+ seltype = &RNA_SplinePoint;
+ }
+ totcurvedata++;
}
bp++;
}
@@ -266,80 +302,102 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
nu = nu->next;
}
- if (totradius == 1)
- RNA_pointer_create(&cu->id, seltype, selp, &radius_ptr);
+ if (totcurvedata == 1)
+ RNA_pointer_create(&cu->id, seltype, selp, &data_ptr);
}
else if (ob->type == OB_LATTICE) {
Lattice *lt = ob->data;
BPoint *bp;
int a;
+ StructRNA *seltype = NULL;
+ void *selp = NULL;
a = lt->editlatt->latt->pntsu * lt->editlatt->latt->pntsv * lt->editlatt->latt->pntsw;
bp = lt->editlatt->latt->def;
while (a--) {
if (bp->f1 & SELECT) {
- add_v3_v3(median, bp->vec);
+ add_v3_v3(&median[LOC_X], bp->vec);
tot++;
- median[4] += bp->weight;
- totweight++;
+ median[L_WEIGHT] += bp->weight;
+ if (!totlattdata) { /* I.e. first time... */
+ selp = bp;
+ seltype = &RNA_LatticePoint;
+ }
+ totlattdata++;
}
bp++;
}
+
+ if (totlattdata == 1)
+ RNA_pointer_create(&lt->id, seltype, selp, &data_ptr);
}
if (tot == 0) {
uiDefBut(block, LABEL, 0, IFACE_("Nothing selected"), 0, 130, 200, 20, NULL, 0, 0, 0, 0, "");
return;
}
- median[0] /= (float)tot;
- median[1] /= (float)tot;
- median[2] /= (float)tot;
- if (totedge) {
- median[3] /= (float)totedge;
- median[6] /= (float)totedge;
- }
- else if (totw)
- median[3] /= (float)totw;
- if (totweight)
- median[4] /= (float)totweight;
- if (totradius)
- median[5] /= (float)totradius;
+ /* Location, X/Y/Z */
+ mul_v3_fl(&median[LOC_X], 1.0f / (float)tot);
if (v3d->flag & V3D_GLOBAL_STATS)
- mul_m4_v3(ob->obmat, median);
+ mul_m4_v3(ob->obmat, &median[LOC_X]);
+
+ if (meshdata) {
+ if (totedgedata) {
+ median[M_CREASE] /= (float)totedgedata;
+ median[M_WEIGHT] /= (float)totedgedata;
+ }
+ if (totskinradius) {
+ median[M_SKIN_X] /= (float)totskinradius;
+ median[M_SKIN_Y] /= (float)totskinradius;
+ }
+ }
+ else if (totcurvedata) {
+ median[C_WEIGHT] /= (float)totcurvedata;
+ median[C_RADIUS] /= (float)totcurvedata;
+ median[C_TILT] /= (float)totcurvedata;
+ if (totcurvebweight)
+ median[C_BWEIGHT] /= (float)totcurvebweight;
+ }
+ else if (totlattdata)
+ median[L_WEIGHT] /= (float)totlattdata;
if (block) { /* buttons */
uiBut *but;
int yi = 200;
const int buth = 20 * UI_DPI_ICON_FAC;
const int but_margin = 2;
+ const char *c;
memcpy(tfp->ve_median, median, sizeof(tfp->ve_median));
uiBlockBeginAlign(block);
if (tot == 1) {
- uiDefBut(block, LABEL, 0, IFACE_("Vertex:"), 0, yi -= buth, 200, buth, NULL, 0, 0, 0, 0, "");
- }
- else {
- uiDefBut(block, LABEL, 0, IFACE_("Median:"), 0, yi -= buth, 200, buth, NULL, 0, 0, 0, 0, "");
+ if (totcurvedata) /* Curve */
+ c = IFACE_("Control Point:");
+ else /* Mesh or lattice */
+ c = IFACE_("Vertex:");
}
+ else
+ c = IFACE_("Median:");
+ uiDefBut(block, LABEL, 0, c, 0, yi -= buth, 200, buth, NULL, 0, 0, 0, 0, "");
uiBlockBeginAlign(block);
/* Should be no need to translate these. */
but = uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "X:", 0, yi -= buth, 200, buth,
- &(tfp->ve_median[0]), -lim, lim, 10, RNA_TRANSLATION_PREC_DEFAULT, "");
+ &(tfp->ve_median[LOC_X]), -lim, lim, 10, RNA_TRANSLATION_PREC_DEFAULT, "");
uiButSetUnitType(but, PROP_UNIT_LENGTH);
but = uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Y:", 0, yi -= buth, 200, buth,
- &(tfp->ve_median[1]), -lim, lim, 10, RNA_TRANSLATION_PREC_DEFAULT, "");
+ &(tfp->ve_median[LOC_Y]), -lim, lim, 10, RNA_TRANSLATION_PREC_DEFAULT, "");
uiButSetUnitType(but, PROP_UNIT_LENGTH);
but = uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Z:", 0, yi -= buth, 200, buth,
- &(tfp->ve_median[2]), -lim, lim, 10, RNA_TRANSLATION_PREC_DEFAULT, "");
+ &(tfp->ve_median[LOC_Z]), -lim, lim, 10, RNA_TRANSLATION_PREC_DEFAULT, "");
uiButSetUnitType(but, PROP_UNIT_LENGTH);
- if (totw == tot) {
+ if (totcurvebweight == tot) {
uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "W:", 0, yi -= buth, 200, buth,
- &(tfp->ve_median[3]), 0.01, 100.0, 1, 3, "");
+ &(tfp->ve_median[C_BWEIGHT]), 0.01, 100.0, 1, 3, "");
}
uiBlockBeginAlign(block);
@@ -351,43 +409,60 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
&v3d->flag, 0, 0, 0, 0, "Displays local values");
uiBlockEndAlign(block);
- if (totweight == 1) {
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, IFACE_("Weight:"),
- 0, yi -= buth + but_margin, 200, buth,
- &(tfp->ve_median[4]), 0.0, 1.0, 1, 3, TIP_("Weight used for SoftBody Goal"));
+ /* Meshes... */
+ if (meshdata) {
+ if (totedgedata) {
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN,
+ totedgedata == 1 ? IFACE_("Crease:") : IFACE_("Mean Crease:"),
+ 0, yi -= buth + but_margin, 200, buth,
+ &(tfp->ve_median[M_CREASE]), 0.0, 1.0, 1, 3, TIP_("Weight used by SubSurf modifier"));
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN,
+ totedgedata == 1 ? IFACE_("Bevel Weight:") : IFACE_("Mean Bevel Weight:"),
+ 0, yi -= buth + but_margin, 200, buth,
+ &(tfp->ve_median[M_WEIGHT]), 0.0, 1.0, 1, 3, TIP_("Weight used by Bevel modifier"));
+ }
+ if (totskinradius) {
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN,
+ totskinradius == 1 ? IFACE_("Radius X:") : IFACE_("Mean Radius X:"),
+ 0, yi -= buth + but_margin, 200, buth,
+ &(tfp->ve_median[M_SKIN_X]), 0.0, 100.0, 1, 3, TIP_("X radius used by Skin modifier"));
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN,
+ totskinradius == 1 ? IFACE_("Radius Y:") : IFACE_("Mean Radius Y:"),
+ 0, yi -= buth + but_margin, 200, buth,
+ &(tfp->ve_median[M_SKIN_Y]), 0.0, 100.0, 1, 3, TIP_("Y radius used by Skin modifier"));
+ }
}
- else if (totweight > 1) {
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, IFACE_("Mean Weight:"),
- 0, yi -= buth, 200, buth,
- &(tfp->ve_median[4]), 0.0, 1.0, 1, 3, TIP_("Weight used for SoftBody Goal"));
+ /* Curve... */
+ else if (totcurvedata == 1) {
+ uiDefButR(block, NUM, 0, "Weight", 0, yi -= buth + but_margin, 200, buth,
+ &data_ptr, "weight_softbody", 0, 0.0, 1.0, 1, 3, NULL);
+ uiDefButR(block, NUM, 0, "Radius", 0, yi -= buth + but_margin, 200, buth,
+ &data_ptr, "radius", 0, 0.0, 100.0, 1, 3, NULL);
+ uiDefButR(block, NUM, 0, "Tilt", 0, yi -= buth + but_margin, 200, buth,
+ &data_ptr, "tilt", 0, -M_PI * 2.0f, M_PI * 2.0f, 1, 3, NULL);
}
-
- if (totradius == 1) {
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, IFACE_("Radius:"),
+ else if (totcurvedata > 1) {
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, IFACE_("Mean Weight:"),
0, yi -= buth + but_margin, 200, buth,
- &(tfp->ve_median[5]), 0.0, 100.0, 1, 3, TIP_("Radius of curve control points"));
- }
- else if (totradius > 1) {
+ &(tfp->ve_median[C_WEIGHT]), 0.0, 1.0, 1, 3, TIP_("Weight used for SoftBody Goal"));
uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, IFACE_("Mean Radius:"),
0, yi -= buth + but_margin, 200, buth,
- &(tfp->ve_median[5]), 0.0, 100.0, 1, 3, TIP_("Radius of curve control points"));
+ &(tfp->ve_median[C_RADIUS]), 0.0, 100.0, 1, 3, TIP_("Radius of curve control points"));
+ but = uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, IFACE_("Mean Tilt:"),
+ 0, yi -= buth + but_margin, 200, buth,
+ &(tfp->ve_median[C_TILT]), -M_PI * 2.0f, M_PI * 2.0f, 1, 3,
+ TIP_("Tilt (inclination) of curve control points"));
+ uiButSetUnitType(but, PROP_UNIT_ROTATION);
}
-
- if (totedge == 1) {
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, IFACE_("Crease:"),
- 0, yi -= buth + but_margin, 200, buth,
- &(tfp->ve_median[3]), 0.0, 1.0, 1, 3, TIP_("Weight used by SubSurf modifier"));
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, IFACE_("Bevel Weight:"),
- 0, yi -= buth + but_margin, 200, buth,
- &(tfp->ve_median[6]), 0.0, 1.0, 1, 3, TIP_("Weight used by Bevel modifier"));
+ /* Lattice... */
+ else if (totlattdata == 1) {
+ uiDefButR(block, NUM, 0, "Weight", 0, yi -= buth + but_margin, 200, buth,
+ &data_ptr, "weight_softbody", 0, 0.0, 1.0, 1, 3, NULL);
}
- else if (totedge > 1) {
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, IFACE_("Mean Crease:"),
- 0, yi -= buth + but_margin, 200, buth,
- &(tfp->ve_median[3]), 0.0, 1.0, 1, 3, TIP_("Weight used by SubSurf modifier"));
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, IFACE_("Mean Bevel Weight:"),
+ else if (totlattdata > 1) {
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, IFACE_("Mean Weight:"),
0, yi -= buth + but_margin, 200, buth,
- &(tfp->ve_median[6]), 0.0, 1.0, 1, 3, TIP_("Weight used by Bevel modifier"));
+ &(tfp->ve_median[L_WEIGHT]), 0.0, 1.0, 1, 3, TIP_("Weight used for SoftBody Goal"));
}
uiBlockEndAlign(block);
@@ -399,14 +474,12 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
if (v3d->flag & V3D_GLOBAL_STATS) {
invert_m4_m4(ob->imat, ob->obmat);
- mul_m4_v3(ob->imat, median);
- mul_m4_v3(ob->imat, ve_median);
+ mul_m4_v3(ob->imat, &median[LOC_X]);
+ mul_m4_v3(ob->imat, &ve_median[LOC_X]);
}
- sub_v3_v3v3(median, ve_median, median);
- median[3] = ve_median[3] - median[3];
- median[4] = ve_median[4] - median[4];
- median[5] = ve_median[5] - median[5];
- median[6] = ve_median[6] - median[6];
+ i = NBR_TRANSFORM_PROPERTIES;
+ while (i--)
+ median[i] = ve_median[i] - median[i];
if (ob->type == OB_MESH) {
Mesh *me = ob->data;
@@ -415,20 +488,20 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
BMVert *eve;
BMIter iter;
- if (len_v3(median) > 0.000001f) {
+ if (len_v3(&median[LOC_X]) > 0.000001f) {
BM_ITER_MESH (eve, &iter, bm, BM_VERTS_OF_MESH) {
if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) {
- add_v3_v3(eve->co, median);
+ add_v3_v3(eve->co, &median[LOC_X]);
}
}
EDBM_mesh_normals_update(em);
}
- if (median[3] != 0.0f) {
+ if (median[M_CREASE] != 0.0f) {
BMEdge *eed;
- const float sca = compute_scale_factor(ve_median[3], median[3]);
+ const float sca = compute_scale_factor(ve_median[M_CREASE], median[M_CREASE]);
if (ELEM(sca, 0.0f, 1.0f)) {
BM_ITER_MESH (eed, &iter, bm, BM_EDGES_OF_MESH) {
@@ -464,9 +537,9 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
}
}
- if (median[6] != 0.0f) {
+ if (median[M_WEIGHT] != 0.0f) {
BMEdge *eed;
- const float sca = compute_scale_factor(ve_median[6], median[6]);
+ const float sca = compute_scale_factor(ve_median[M_WEIGHT], median[M_WEIGHT]);
if (ELEM(sca, 0.0f, 1.0f)) {
BM_ITER_MESH (eed, &iter, bm, BM_EDGES_OF_MESH) {
@@ -501,6 +574,55 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
}
}
}
+
+ if (median[M_SKIN_X] != 0.0f) {
+ BMVert *eve;
+ /* That one is not clamped to [0.0, 1.0]. */
+ float sca = ve_median[M_SKIN_X];
+ if (ve_median[M_SKIN_X] - median[M_SKIN_X] == 0.0f) {
+ BM_ITER_MESH (eve, &iter, bm, BM_VERTS_OF_MESH) {
+ if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) {
+ MVertSkin *vs = (MVertSkin *)CustomData_bmesh_get(&bm->vdata, eve->head.data, CD_MVERT_SKIN);
+ if (vs)
+ vs->radius[0] = sca;
+ }
+ }
+ }
+ else {
+ sca /= (ve_median[M_SKIN_X] - median[M_SKIN_X]);
+ BM_ITER_MESH (eve, &iter, bm, BM_VERTS_OF_MESH) {
+ if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) {
+ MVertSkin *vs = (MVertSkin *)CustomData_bmesh_get(&bm->vdata, eve->head.data, CD_MVERT_SKIN);
+ if (vs)
+ vs->radius[0] *= sca;
+ }
+ }
+ }
+ }
+ if (median[M_SKIN_Y] != 0.0f) {
+ BMVert *eve;
+ /* That one is not clamped to [0.0, 1.0]. */
+ float sca = ve_median[M_SKIN_Y];
+ if (ve_median[M_SKIN_Y] - median[M_SKIN_Y] == 0.0f) {
+ BM_ITER_MESH (eve, &iter, bm, BM_VERTS_OF_MESH) {
+ if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) {
+ MVertSkin *vs = (MVertSkin *)CustomData_bmesh_get(&bm->vdata, eve->head.data, CD_MVERT_SKIN);
+ if (vs)
+ vs->radius[1] = sca;
+ }
+ }
+ }
+ else {
+ sca /= (ve_median[M_SKIN_Y] - median[M_SKIN_Y]);
+ BM_ITER_MESH (eve, &iter, bm, BM_VERTS_OF_MESH) {
+ if (BM_elem_flag_test(eve, BM_ELEM_SELECT)) {
+ MVertSkin *vs = (MVertSkin *)CustomData_bmesh_get(&bm->vdata, eve->head.data, CD_MVERT_SKIN);
+ if (vs)
+ vs->radius[1] *= sca;
+ }
+ }
+ }
+ }
EDBM_mesh_normals_update(em);
}
else if (ELEM(ob->type, OB_CURVE, OB_SURF)) {
@@ -510,7 +632,7 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
BezTriple *bezt;
int a;
ListBase *nurbs = BKE_curve_editNurbs_get(cu);
- const float scale_w = compute_scale_factor(ve_median[4], median[4]);
+ const float scale_w = compute_scale_factor(ve_median[C_WEIGHT], median[C_WEIGHT]);
nu = nurbs->first;
while (nu) {
@@ -519,11 +641,11 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
a = nu->pntsu;
while (a--) {
if (bezt->f2 & SELECT) {
- add_v3_v3(bezt->vec[0], median);
- add_v3_v3(bezt->vec[1], median);
- add_v3_v3(bezt->vec[2], median);
+ add_v3_v3(bezt->vec[0], &median[LOC_X]);
+ add_v3_v3(bezt->vec[1], &median[LOC_X]);
+ add_v3_v3(bezt->vec[2], &median[LOC_X]);
- if (median[4] != 0.0f) {
+ if (median[C_WEIGHT] != 0.0f) {
if (ELEM(scale_w, 0.0f, 1.0f)) {
bezt->weight = scale_w;
}
@@ -534,14 +656,15 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
}
}
- bezt->radius += median[5];
+ bezt->radius += median[C_RADIUS];
+ bezt->alfa += median[C_TILT];
}
else {
if (bezt->f1 & SELECT) {
- add_v3_v3(bezt->vec[0], median);
+ add_v3_v3(bezt->vec[0], &median[LOC_X]);
}
if (bezt->f3 & SELECT) {
- add_v3_v3(bezt->vec[2], median);
+ add_v3_v3(bezt->vec[2], &median[LOC_X]);
}
}
bezt++;
@@ -552,10 +675,10 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
a = nu->pntsu * nu->pntsv;
while (a--) {
if (bp->f1 & SELECT) {
- add_v3_v3(bp->vec, median);
- bp->vec[3] += median[3];
+ add_v3_v3(bp->vec, &median[LOC_X]);
+ bp->vec[3] += median[C_BWEIGHT];
- if (median[4] != 0.0f) {
+ if (median[C_WEIGHT] != 0.0f) {
if (ELEM(scale_w, 0.0f, 1.0f)) {
bp->weight = scale_w;
}
@@ -566,7 +689,8 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
}
}
- bp->radius += median[5];
+ bp->radius += median[C_RADIUS];
+ bp->alfa += median[C_TILT];
}
bp++;
}
@@ -581,15 +705,15 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
Lattice *lt = ob->data;
BPoint *bp;
int a;
- const float scale_w = compute_scale_factor(ve_median[4], median[4]);
+ const float scale_w = compute_scale_factor(ve_median[L_WEIGHT], median[L_WEIGHT]);
a = lt->editlatt->latt->pntsu * lt->editlatt->latt->pntsv * lt->editlatt->latt->pntsw;
bp = lt->editlatt->latt->def;
while (a--) {
if (bp->f1 & SELECT) {
- add_v3_v3(bp->vec, median);
+ add_v3_v3(bp->vec, &median[LOC_X]);
- if (median[4] != 0.0f) {
+ if (median[L_WEIGHT] != 0.0f) {
if (ELEM(scale_w, 0.0f, 1.0f)) {
bp->weight = scale_w;
}
@@ -606,7 +730,28 @@ static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float
/* ED_undo_push(C, "Transform properties"); */
}
+
+/* Clean up! */
+/* Location, common to all. */
+#undef LOC_X
+#undef LOC_Y
+#undef LOC_Z
+/* Meshes (and lattice)... */
+#undef M_CREASE
+#undef M_WEIGHT
+#undef M_SKIN_X
+#undef M_SKIN_Y
+/* Curves... */
+#undef C_BWEIGHT
+#undef C_WEIGHT
+#undef C_RADIUS
+#undef C_TILT
+/* Lattice... */
+#undef L_WEIGHT
}
+#undef NBR_TRANSFORM_PROPERTIES
+
+
#define B_VGRP_PNL_COPY 1
#define B_VGRP_PNL_NORMALIZE 2
#define B_VGRP_PNL_EDIT_SINGLE 8 /* or greater */
@@ -1082,7 +1227,6 @@ static void view3d_panel_object(const bContext *C, Panel *pa)
uiBlockSetHandleFunc(block, do_view3d_region_buttons, NULL);
col = uiLayoutColumn(pa->layout, FALSE);
- /* row = uiLayoutRow(col, FALSE); */ /* UNUSED */
RNA_id_pointer_create(&ob->id, &obptr);
if (ob == obedit) {
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index e6ea42aa5ba..c5246b1ad1f 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -28,7 +28,6 @@
* \ingroup spview3d
*/
-
#include <string.h>
#include <stdio.h>
#include <math.h>
@@ -49,6 +48,7 @@
#include "BLI_math.h"
#include "BLI_rand.h"
#include "BLI_utildefines.h"
+#include "BLI_endian_switch.h"
#include "BKE_anim.h"
#include "BKE_camera.h"
@@ -65,10 +65,11 @@
#include "BKE_movieclip.h"
#include "RE_engine.h"
-#include "RE_pipeline.h" // make_stars
+#include "RE_pipeline.h" /* make_stars */
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
+#include "IMB_colormanagement.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -92,8 +93,7 @@
#include "GPU_material.h"
#include "GPU_extensions.h"
-#include "view3d_intern.h" // own include
-
+#include "view3d_intern.h" /* own include */
static void star_stuff_init_func(void)
@@ -243,7 +243,7 @@ static void drawgrid_draw(ARegion *ar, double wx, double wy, double x, double y,
verts[1][1] = (double)ar->winy;
/* iter over 'X' */
- verts[0][0] = verts[1][0] = x - dx *floor(x / dx);
+ verts[0][0] = verts[1][0] = x - dx * floor(x / dx);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_DOUBLE, 0, verts);
@@ -257,7 +257,7 @@ static void drawgrid_draw(ARegion *ar, double wx, double wy, double x, double y,
verts[1][0] = (double)ar->winx;
/* iter over 'Y' */
- verts[0][1] = verts[1][1] = y - dx *floor(y / dx);
+ verts[0][1] = verts[1][1] = y - dx * floor(y / dx);
while (verts[0][1] < ar->winy) {
glDrawArrays(GL_LINES, 0, 2);
verts[0][1] = verts[1][1] = verts[0][1] + dx;
@@ -299,7 +299,7 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, const char **
dx = fabs(x - (wx) * fx / fw);
if (dx == 0) dx = fabs(y - (wy) * fy / fw);
- glDepthMask(0); // disable write in zbuffer
+ glDepthMask(0); /* disable write in zbuffer */
/* check zoom out */
UI_ThemeColor(TH_GRID);
@@ -355,13 +355,15 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, const char **
if (dx < GRID_MIN_PX_D) {
rv3d->gridview *= sublines;
dx *= sublines;
- if (dx < GRID_MIN_PX_D) ;
+ if (dx < GRID_MIN_PX_D) {
+ /* pass */
+ }
else {
UI_ThemeColor(TH_GRID);
drawgrid_draw(ar, wx, wy, x, y, dx);
}
}
- else { // start blending out
+ else { /* start blending out */
UI_ThemeColorBlend(TH_BACK, TH_GRID, dx / (GRID_MIN_PX_D * 6.0));
drawgrid_draw(ar, wx, wy, x, y, dx);
@@ -369,7 +371,7 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, const char **
drawgrid_draw(ar, wx, wy, x, y, sublines * dx);
}
}
- else { // start blending out (GRID_MIN_PX < dx < (GRID_MIN_PX*10))
+ else { /* start blending out (GRID_MIN_PX < dx < (GRID_MIN_PX*10)) */
UI_ThemeColorBlend(TH_BACK, TH_GRID, dx / (GRID_MIN_PX_D * 6.0));
drawgrid_draw(ar, wx, wy, x, y, dx);
@@ -378,10 +380,10 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, const char **
}
}
else {
- if (dx > (GRID_MIN_PX_D * 10.0)) { // start blending in
+ if (dx > (GRID_MIN_PX_D * 10.0)) { /* start blending in */
rv3d->gridview /= sublines;
dx /= sublines;
- if (dx > (GRID_MIN_PX_D * 10.0)) { // start blending in
+ if (dx > (GRID_MIN_PX_D * 10.0)) { /* start blending in */
rv3d->gridview /= sublines;
dx /= sublines;
if (dx > (GRID_MIN_PX_D * 10.0)) {
@@ -435,7 +437,7 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, const char **
fdrawline(x, 0.0, x, (float)ar->winy);
- glDepthMask(1); // enable write in zbuffer
+ glDepthMask(1); /* enable write in zbuffer */
}
#undef GRID_MIN_PX
@@ -473,7 +475,8 @@ static void drawfloor(Scene *scene, View3D *v3d, const char **grid_unit)
grid_scale = ED_view3d_grid_scale(scene, v3d, grid_unit);
grid = gridlines * grid_scale;
- if (v3d->zbuf && scene->obedit) glDepthMask(0); // for zbuffer-select
+ if (v3d->zbuf && scene->obedit)
+ glDepthMask(0); /* for zbuffer-select */
UI_GetThemeColor3ubv(TH_GRID, col_grid);
@@ -552,32 +555,23 @@ static void drawfloor(Scene *scene, View3D *v3d, const char **grid_unit)
static void drawcursor(Scene *scene, ARegion *ar, View3D *v3d)
{
- int mx, my, co[2];
- int flag;
-
+ int co[2];
+
/* we don't want the clipping for cursor */
- flag = v3d->flag;
- v3d->flag = 0;
- project_int(ar, give_cursor(scene, v3d), co);
- v3d->flag = flag;
-
- mx = co[0];
- my = co[1];
-
- if (mx != IS_CLIPPED) {
+ if (ED_view3d_project_int_global(ar, give_cursor(scene, v3d), co, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
setlinestyle(0);
cpack(0xFF);
- circ((float)mx, (float)my, 10.0);
+ circ((float)co[0], (float)co[1], 10.0);
setlinestyle(4);
cpack(0xFFFFFF);
- circ((float)mx, (float)my, 10.0);
+ circ((float)co[0], (float)co[1], 10.0);
setlinestyle(0);
cpack(0x0);
- sdrawline(mx - 20, my, mx - 5, my);
- sdrawline(mx + 5, my, mx + 20, my);
- sdrawline(mx, my - 20, mx, my - 5);
- sdrawline(mx, my + 5, mx, my + 20);
+ sdrawline(co[0] - 20, co[1], co[0] - 5, co[1]);
+ sdrawline(co[0] + 5, co[1], co[0] + 20, co[1]);
+ sdrawline(co[0], co[1] - 20, co[0], co[1] - 5);
+ sdrawline(co[0], co[1] + 5, co[0], co[1] + 20);
}
}
@@ -665,10 +659,10 @@ static void draw_view_axis(RegionView3D *rv3d)
/* draw center and axis of rotation for ongoing 3D mouse navigation */
static void draw_rotation_guide(RegionView3D *rv3d)
{
- float o[3]; // center of rotation
- float end[3]; // endpoints for drawing
+ float o[3]; /* center of rotation */
+ float end[3]; /* endpoints for drawing */
- float color[4] = {0.0f, 0.4235f, 1.0f, 1.0f}; // bright blue so it matches device LEDs
+ float color[4] = {0.0f, 0.4235f, 1.0f, 1.0f}; /* bright blue so it matches device LEDs */
negate_v3_v3(o, rv3d->ofs);
@@ -677,25 +671,25 @@ static void draw_rotation_guide(RegionView3D *rv3d)
glShadeModel(GL_SMOOTH);
glPointSize(5);
glEnable(GL_POINT_SMOOTH);
- glDepthMask(0); // don't overwrite zbuf
+ glDepthMask(0); /* don't overwrite zbuf */
if (rv3d->rot_angle != 0.f) {
- // -- draw rotation axis --
+ /* -- draw rotation axis -- */
float scaled_axis[3];
const float scale = rv3d->dist;
mul_v3_v3fl(scaled_axis, rv3d->rot_axis, scale);
glBegin(GL_LINE_STRIP);
- color[3] = 0.f; // more transparent toward the ends
+ color[3] = 0.f; /* more transparent toward the ends */
glColor4fv(color);
add_v3_v3v3(end, o, scaled_axis);
glVertex3fv(end);
- // color[3] = 0.2f + fabsf(rv3d->rot_angle); // modulate opacity with angle
+ // color[3] = 0.2f + fabsf(rv3d->rot_angle); /* modulate opacity with angle */
// ^^ neat idea, but angle is frame-rate dependent, so it's usually close to 0.2
- color[3] = 0.5f; // more opaque toward the center
+ color[3] = 0.5f; /* more opaque toward the center */
glColor4fv(color);
glVertex3fv(o);
@@ -705,7 +699,7 @@ static void draw_rotation_guide(RegionView3D *rv3d)
glVertex3fv(end);
glEnd();
- // -- draw ring around rotation center --
+ /* -- draw ring around rotation center -- */
{
#define ROT_AXIS_DETAIL 13
@@ -714,7 +708,7 @@ static void draw_rotation_guide(RegionView3D *rv3d)
float angle;
int i;
- float q[4]; // rotate ring so it's perpendicular to axis
+ float q[4]; /* rotate ring so it's perpendicular to axis */
const int upright = fabsf(rv3d->rot_axis[2]) >= 0.95f;
if (!upright) {
const float up[3] = {0.f, 0.f, 1.f};
@@ -725,11 +719,11 @@ static void draw_rotation_guide(RegionView3D *rv3d)
axis_angle_to_quat(q, vis_axis, vis_angle);
}
- color[3] = 0.25f; // somewhat faint
+ color[3] = 0.25f; /* somewhat faint */
glColor4fv(color);
glBegin(GL_LINE_LOOP);
for (i = 0, angle = 0.f; i < ROT_AXIS_DETAIL; ++i, angle += step) {
- float p[3] = {s *cosf(angle), s * sinf(angle), 0.0f};
+ float p[3] = {s * cosf(angle), s * sinf(angle), 0.0f};
if (!upright) {
mul_qt_v3(q, p);
@@ -743,21 +737,23 @@ static void draw_rotation_guide(RegionView3D *rv3d)
#undef ROT_AXIS_DETAIL
}
- color[3] = 1.f; // solid dot
+ color[3] = 1.0f; /* solid dot */
}
else
- color[3] = 0.5f; // see-through dot
+ color[3] = 0.5f; /* see-through dot */
- // -- draw rotation center --
+ /* -- draw rotation center -- */
glColor4fv(color);
glBegin(GL_POINTS);
glVertex3fv(o);
glEnd();
- // find screen coordinates for rotation center, then draw pretty icon
- // mul_m4_v3(rv3d->persinv, rot_center);
- // UI_icon_draw(rot_center[0], rot_center[1], ICON_NDOF_TURN);
- // ^^ just playing around, does not work
+ /* find screen coordinates for rotation center, then draw pretty icon */
+#if 0
+ mul_m4_v3(rv3d->persinv, rot_center);
+ UI_icon_draw(rot_center[0], rot_center[1], ICON_NDOF_TURN);
+#endif
+ /* ^^ just playing around, does not work */
glDisable(GL_BLEND);
glDisable(GL_POINT_SMOOTH);
@@ -898,7 +894,7 @@ static void draw_selected_name(Scene *scene, Object *ob)
/* try to display active shapekey too */
shapes[0] = '\0';
- key = ob_get_key(ob);
+ key = BKE_key_from_object(ob);
if (key) {
kb = BLI_findlink(&key->block, ob->shapenr - 1);
if (kb) {
@@ -970,10 +966,10 @@ static void view3d_camera_border(Scene *scene, ARegion *ar, View3D *v3d, RegionV
rect_camera = params.viewplane;
/* get camera border within viewport */
- viewborder_r->xmin = ((rect_camera.xmin - rect_view.xmin) / (rect_view.xmax - rect_view.xmin)) * ar->winx;
- viewborder_r->xmax = ((rect_camera.xmax - rect_view.xmin) / (rect_view.xmax - rect_view.xmin)) * ar->winx;
- viewborder_r->ymin = ((rect_camera.ymin - rect_view.ymin) / (rect_view.ymax - rect_view.ymin)) * ar->winy;
- viewborder_r->ymax = ((rect_camera.ymax - rect_view.ymin) / (rect_view.ymax - rect_view.ymin)) * ar->winy;
+ viewborder_r->xmin = ((rect_camera.xmin - rect_view.xmin) / BLI_rctf_size_x(&rect_view)) * ar->winx;
+ viewborder_r->xmax = ((rect_camera.xmax - rect_view.xmin) / BLI_rctf_size_x(&rect_view)) * ar->winx;
+ viewborder_r->ymin = ((rect_camera.ymin - rect_view.ymin) / BLI_rctf_size_y(&rect_view)) * ar->winy;
+ viewborder_r->ymax = ((rect_camera.ymax - rect_view.ymin) / BLI_rctf_size_y(&rect_view)) * ar->winy;
}
void ED_view3d_calc_camera_border_size(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d, float size_r[2])
@@ -981,8 +977,8 @@ void ED_view3d_calc_camera_border_size(Scene *scene, ARegion *ar, View3D *v3d, R
rctf viewborder;
view3d_camera_border(scene, ar, v3d, rv3d, &viewborder, TRUE, TRUE);
- size_r[0] = viewborder.xmax - viewborder.xmin;
- size_r[1] = viewborder.ymax - viewborder.ymin;
+ size_r[0] = BLI_rctf_size_x(&viewborder);
+ size_r[1] = BLI_rctf_size_y(&viewborder);
}
void ED_view3d_calc_camera_border(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d,
@@ -1319,12 +1315,14 @@ static void backdrawview3d(Scene *scene, ARegion *ar, View3D *v3d)
if (!(v3d->flag & V3D_INVALID_BACKBUF) ) return;
-// if (test) {
-// if (qtest()) {
-// addafterqueue(ar->win, BACKBUFDRAW, 1);
-// return;
-// }
-// }
+#if 0
+ if (test) {
+ if (qtest()) {
+ addafterqueue(ar->win, BACKBUFDRAW, 1);
+ return;
+ }
+ }
+#endif
if (v3d->drawtype > OB_WIRE) v3d->zbuf = TRUE;
@@ -1336,7 +1334,7 @@ static void backdrawview3d(Scene *scene, ARegion *ar, View3D *v3d)
glDisable(GL_MULTISAMPLE_ARB);
region_scissor_winrct(ar, &winrct);
- glScissor(winrct.xmin, winrct.ymin, winrct.xmax - winrct.xmin, winrct.ymax - winrct.ymin);
+ glScissor(winrct.xmin, winrct.ymin, BLI_rcti_size_x(&winrct), BLI_rcti_size_y(&winrct));
glClearColor(0.0, 0.0, 0.0, 0.0);
if (v3d->zbuf) {
@@ -1370,7 +1368,7 @@ static void backdrawview3d(Scene *scene, ARegion *ar, View3D *v3d)
ED_view3d_clipping_disable();
/* it is important to end a view in a transform compatible with buttons */
-// persp(PERSP_WIN); // set ortho
+// persp(PERSP_WIN); /* set ortho */
}
@@ -1385,16 +1383,21 @@ unsigned int view3d_sample_backbuf(ViewContext *vc, int x, int y)
{
unsigned int col;
- if (x >= vc->ar->winx || y >= vc->ar->winy) return 0;
+ if (x >= vc->ar->winx || y >= vc->ar->winy) {
+ return 0;
+ }
+
x += vc->ar->winrct.xmin;
y += vc->ar->winrct.ymin;
view3d_validate_backbuf(vc);
- glReadPixels(x, y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &col);
- glReadBuffer(GL_BACK);
+ glReadPixels(x, y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &col);
+ glReadBuffer(GL_BACK);
- if (ENDIAN_ORDER == B_ENDIAN) SWITCH_INT(col);
+ if (ENDIAN_ORDER == B_ENDIAN) {
+ BLI_endian_switch_uint32(&col);
+ }
return WM_framebuffer_to_index(col);
}
@@ -1493,20 +1496,20 @@ unsigned int view3d_sample_backbuf_rect(ViewContext *vc, const int mval[2], int
for (a = 0; a < 2; a++) {
for (b = 0; b < nr; b++, distance++) {
- if (*tbuf && *tbuf >= min && *tbuf < max) { //we got a hit
+ if (*tbuf && *tbuf >= min && *tbuf < max) { /* we got a hit */
if (strict) {
indexok = indextest(handle, *tbuf - min + 1);
if (indexok) {
*dist = (short) sqrt( (float)distance);
index = *tbuf - min + 1;
goto exit;
- }
+ }
}
else {
- *dist = (short) sqrt( (float)distance); // XXX, this distance is wrong -
- index = *tbuf - min + 1; // messy yah, but indices start at 1
+ *dist = (short) sqrt( (float)distance); /* XXX, this distance is wrong - */
+ index = *tbuf - min + 1; /* messy yah, but indices start at 1 */
goto exit;
- }
+ }
}
tbuf += (dirvec[rc][0] + dirvec[rc][1]);
@@ -1529,16 +1532,11 @@ exit:
/* ************************************************************* */
static void view3d_draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d,
- const short do_forground, const short do_camera_frame)
+ const short do_foreground, const short do_camera_frame)
{
RegionView3D *rv3d = ar->regiondata;
BGpic *bgpic;
- Image *ima;
- MovieClip *clip;
- ImBuf *ibuf = NULL, *freeibuf;
- float vec[4], fac, asp, zoomx, zoomy;
- float x1, y1, x2, y2, cx, cy;
- int fg_flag = do_forground ? V3D_BGPIC_FOREGROUND : 0;
+ int fg_flag = do_foreground ? V3D_BGPIC_FOREGROUND : 0;
for (bgpic = v3d->bgpicbase.first; bgpic; bgpic = bgpic->next) {
@@ -1550,6 +1548,13 @@ static void view3d_draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d,
(rv3d->persp == RV3D_CAMOB && bgpic->view == (1 << RV3D_VIEW_CAMERA)))
{
float image_aspect[2];
+ float fac, asp, zoomx, zoomy;
+ float x1, y1, x2, y2;
+
+ ImBuf *ibuf = NULL, *freeibuf;
+
+ Image *ima;
+ MovieClip *clip;
/* disable individual images */
if ((bgpic->flag & V3D_BGPIC_DISABLED))
@@ -1574,6 +1579,8 @@ static void view3d_draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d,
else if (bgpic->source == V3D_BGPIC_MOVIE) {
clip = NULL;
+ /* TODO: skip drawing when out of frame range (as image sequences do above) */
+
if (bgpic->flag & V3D_BGPIC_CAMERACLIP) {
if (scene->camera)
clip = BKE_object_movieclip_get(scene, scene->camera, 1);
@@ -1587,7 +1594,7 @@ static void view3d_draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d,
ibuf = BKE_movieclip_get_ibuf(clip, &bgpic->cuser);
image_aspect[0] = clip->aspx;
- image_aspect[1] = clip->aspx;
+ image_aspect[1] = clip->aspy;
/* working with ibuf from image and clip has got different workflow now.
* ibuf acquired from clip is referenced by cache system and should
@@ -1675,26 +1682,25 @@ static void view3d_draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d,
}
}
else {
+ float tvec[3];
float sco[2];
const float mval_f[2] = {1.0f, 0.0f};
/* calc window coord */
initgrabz(rv3d, 0.0, 0.0, 0.0);
- ED_view3d_win_to_delta(ar, mval_f, vec);
- fac = maxf(fabsf(vec[0]), maxf(fabsf(vec[1]), fabsf(vec[2]))); /* largest abs axis */
+ ED_view3d_win_to_delta(ar, mval_f, tvec);
+ fac = maxf(fabsf(tvec[0]), maxf(fabsf(tvec[1]), fabsf(tvec[2]))); /* largest abs axis */
fac = 1.0f / fac;
- asp = ( (float)ibuf->y) / (float)ibuf->x;
+ asp = (float)ibuf->y / (float)ibuf->x;
- zero_v3(vec);
- ED_view3d_project_float_v2(ar, vec, sco, rv3d->persmat);
- cx = sco[0];
- cy = sco[1];
+ zero_v3(tvec);
+ ED_view3d_project_float_v2_m4(ar, tvec, sco, rv3d->persmat);
- x1 = cx + fac * (bgpic->xof - bgpic->size);
- y1 = cy + asp * fac * (bgpic->yof - bgpic->size);
- x2 = cx + fac * (bgpic->xof + bgpic->size);
- y2 = cy + asp * fac * (bgpic->yof + bgpic->size);
+ x1 = sco[0] + fac * (bgpic->xof - bgpic->size);
+ y1 = sco[1] + asp * fac * (bgpic->yof - bgpic->size);
+ x2 = sco[0] + fac * (bgpic->xof + bgpic->size);
+ y2 = sco[1] + asp * fac * (bgpic->yof + bgpic->size);
}
/* complete clip? */
@@ -1711,7 +1717,7 @@ static void view3d_draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d,
/* for some reason; zoomlevels down refuses to use GL_ALPHA_SCALE */
if (zoomx < 1.0f || zoomy < 1.0f) {
- float tzoom = MIN2(zoomx, zoomy);
+ float tzoom = minf(zoomx, zoomy);
int mip = 0;
if ((ibuf->userflags & IB_MIPMAP_INVALID) != 0) {
@@ -1760,30 +1766,35 @@ static void view3d_draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d,
glDepthMask(1);
if (v3d->zbuf) glEnable(GL_DEPTH_TEST);
- if (freeibuf)
+ if (freeibuf) {
IMB_freeImBuf(freeibuf);
+ }
}
}
}
static void view3d_draw_bgpic_test(Scene *scene, ARegion *ar, View3D *v3d,
- const short do_forground, const short do_camera_frame)
+ const short do_foreground, const short do_camera_frame)
{
RegionView3D *rv3d = ar->regiondata;
if ((v3d->flag & V3D_DISPBGPICS) == 0)
return;
+ /* disabled - mango request, since footage /w only render is quite useful
+ * and this option is easy to disable all background images at once */
+#if 0
if (v3d->flag2 & V3D_RENDER_OVERRIDE)
return;
+#endif
if ((rv3d->view == RV3D_VIEW_USER) || (rv3d->persp != RV3D_ORTHO)) {
if (rv3d->persp == RV3D_CAMOB) {
- view3d_draw_bgpic(scene, ar, v3d, do_forground, do_camera_frame);
+ view3d_draw_bgpic(scene, ar, v3d, do_foreground, do_camera_frame);
}
}
else {
- view3d_draw_bgpic(scene, ar, v3d, do_forground, do_camera_frame);
+ view3d_draw_bgpic(scene, ar, v3d, do_foreground, do_camera_frame);
}
}
@@ -1909,8 +1920,8 @@ static void draw_dupli_objects_color(Scene *scene, ARegion *ar, View3D *v3d, Bas
if (base->object->restrictflag & OB_RESTRICT_VIEW) return;
tbase.flag = OB_FROMDUPLI | base->flag;
- lb = object_duplilist(scene, base->object);
- // BLI_sortlist(lb, dupli_ob_sort); // might be nice to have if we have a dupli list with mixed objects.
+ lb = object_duplilist(scene, base->object, FALSE);
+ // BLI_sortlist(lb, dupli_ob_sort); /* might be nice to have if we have a dupli list with mixed objects. */
dob = dupli_step(lb->first);
if (dob) dob_next = dupli_step(dob->next);
@@ -2023,14 +2034,14 @@ void view3d_update_depths_rect(ARegion *ar, ViewDepths *d, rcti *rect)
r.ymax = ar->winy - 1;
/* Constrain rect to depth bounds */
- BLI_isect_rcti(&r, rect, rect);
+ BLI_rcti_isect(&r, rect, rect);
/* assign values to compare with the ViewDepths */
x = rect->xmin;
y = rect->ymin;
- w = rect->xmax - rect->xmin;
- h = rect->ymax - rect->ymin;
+ w = BLI_rcti_size_x(rect);
+ h = BLI_rcti_size_y(rect);
if (w <= 0 || h <= 0) {
if (d->depths)
@@ -2172,7 +2183,7 @@ void draw_depth(Scene *scene, ARegion *ar, View3D *v3d, int (*func)(void *))
glClear(GL_DEPTH_BUFFER_BIT);
glLoadMatrixf(rv3d->viewmat);
-// persp(PERSP_STORE); // store correct view for persp(PERSP_VIEW) calls
+// persp(PERSP_STORE); /* store correct view for persp(PERSP_VIEW) calls */
if (rv3d->rflag & RV3D_CLIPPING) {
ED_view3d_clipping_set(rv3d);
@@ -2322,7 +2333,7 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d)
if (ob->transflag & OB_DUPLI) {
DupliObject *dob;
- ListBase *lb = object_duplilist(scene, ob);
+ ListBase *lb = object_duplilist(scene, ob, FALSE);
for (dob = lb->first; dob; dob = dob->next)
if (dob->ob->type == OB_LAMP)
@@ -2360,7 +2371,7 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d)
mult_m4_m4m4(rv3d.persmat, rv3d.winmat, rv3d.viewmat);
invert_m4_m4(rv3d.persinv, rv3d.viewinv);
- ED_view3d_draw_offscreen(scene, v3d, &ar, winsize, winsize, viewmat, winmat, FALSE);
+ ED_view3d_draw_offscreen(scene, v3d, &ar, winsize, winsize, viewmat, winmat, FALSE, FALSE);
GPU_lamp_shadow_buffer_unbind(shadow->lamp);
v3d->drawtype = drawtype;
@@ -2499,7 +2510,7 @@ static void view3d_main_area_setup_view(Scene *scene, View3D *v3d, ARegion *ar,
void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar,
int winx, int winy, float viewmat[][4], float winmat[][4],
- int do_bgpic)
+ int do_bgpic, int colormanage_background)
{
RegionView3D *rv3d = ar->regiondata;
Base *base;
@@ -2538,10 +2549,25 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar,
/* set background color, fallback on the view background color
* (if active clip is set but frame is failed to load fallback to horizon color as background) */
if (scene->world) {
- if (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
+ /* NOTE: currently OpenGL is supposed to always work in sRGB space and do not
+ * apply any tonemaps since it's really tricky to support for all features (GLSL, textures, etc)
+ * but due to compatibility issues background is being affected display transform, so we can
+ * emulate behavior of disabled color management
+ * but this function is also used for sequencer's scene strips which shouldn't be affected by
+ * tonemaps now and should be purely sRGB, that's why we've got this colormanage_background
+ * we can drop this flag in cost of some compatibility loss -- background wouldn't be
+ * color managed in 3d viewport
+ * same goes to opengl rendering, where color profile should be applied as very final step
+ */
+
+ if (colormanage_background) {
+ IMB_colormanagement_pixel_to_display_space_v3(backcol, &scene->world->horr, &scene->view_settings,
+ &scene->display_settings);
+ }
+ else {
linearrgb_to_srgb_v3_v3(backcol, &scene->world->horr);
- else
- copy_v3_v3(backcol, &scene->world->horr);
+ }
+
glClearColor(backcol[0], backcol[1], backcol[2], 0.0);
}
else {
@@ -2638,7 +2664,7 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar,
glPopMatrix();
- // XXX, without this the sequencer flickers with opengl draw enabled, need to find out why - campbell
+ /* XXX, without this the sequencer flickers with opengl draw enabled, need to find out why - campbell */
glColor4ub(255, 255, 255, 255);
G.f &= ~G_RENDER_OGL;
@@ -2646,7 +2672,8 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar,
/* utility func for ED_view3d_draw_offscreen */
ImBuf *ED_view3d_draw_offscreen_imbuf(Scene *scene, View3D *v3d, ARegion *ar,
- int sizex, int sizey, unsigned int flag, int draw_background, char err_out[256])
+ int sizex, int sizey, unsigned int flag, int draw_background,
+ int colormanage_background, char err_out[256])
{
RegionView3D *rv3d = ar->regiondata;
ImBuf *ibuf;
@@ -2671,10 +2698,10 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(Scene *scene, View3D *v3d, ARegion *ar,
BKE_camera_params_compute_viewplane(&params, sizex, sizey, scene->r.xasp, scene->r.yasp);
BKE_camera_params_compute_matrix(&params);
- ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, params.winmat, draw_background);
+ ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, params.winmat, draw_background, colormanage_background);
}
else {
- ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, NULL, draw_background);
+ ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, NULL, draw_background, colormanage_background);
}
/* read in pixels & stamp */
@@ -2684,9 +2711,6 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(Scene *scene, View3D *v3d, ARegion *ar,
GPU_offscreen_read_pixels(ofs, GL_FLOAT, ibuf->rect_float);
else if (ibuf->rect)
GPU_offscreen_read_pixels(ofs, GL_UNSIGNED_BYTE, ibuf->rect);
-
- //if ((scene->r.stamp & R_STAMP_ALL) && (scene->r.stamp & R_STAMP_DRAW))
- // BKE_stamp_buf(scene, NULL, rr->rectf, rr->rectx, rr->recty, 4);
/* unbind */
GPU_offscreen_unbind(ofs);
@@ -2702,7 +2726,8 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(Scene *scene, View3D *v3d, ARegion *ar,
/* creates own 3d views, used by the sequencer */
ImBuf *ED_view3d_draw_offscreen_imbuf_simple(Scene *scene, Object *camera, int width, int height,
- unsigned int flag, int drawtype, int draw_background, char err_out[256])
+ unsigned int flag, int drawtype, int draw_background,
+ int colormanage_background, char err_out[256])
{
View3D v3d = {NULL};
ARegion ar = {NULL};
@@ -2741,7 +2766,8 @@ ImBuf *ED_view3d_draw_offscreen_imbuf_simple(Scene *scene, Object *camera, int w
mult_m4_m4m4(rv3d.persmat, rv3d.winmat, rv3d.viewmat);
invert_m4_m4(rv3d.persinv, rv3d.viewinv);
- return ED_view3d_draw_offscreen_imbuf(scene, &v3d, &ar, width, height, flag, draw_background, err_out);
+ return ED_view3d_draw_offscreen_imbuf(scene, &v3d, &ar, width, height, flag,
+ draw_background, colormanage_background, err_out);
// seq_view3d_cb(scene, cfra, render_size, seqrectx, seqrecty);
}
@@ -2818,13 +2844,27 @@ static int view3d_main_area_draw_engine(const bContext *C, ARegion *ar, int draw
/* create render engine */
if (!rv3d->render_engine) {
+ RenderEngine *engine;
+
type = RE_engines_find(scene->r.engine);
if (!(type->view_update && type->view_draw))
return 0;
- rv3d->render_engine = RE_engine_create(type);
- type->view_update(rv3d->render_engine, C);
+ engine = RE_engine_create(type);
+
+ engine->tile_x = ceil(ar->winx / (float)scene->r.xparts);
+ engine->tile_y = ceil(ar->winy / (float)scene->r.yparts);
+
+ /* clamp small tile sizes to prevent inefficient threading utilization
+ * the same happens for final renders as well
+ */
+ engine->tile_x = MAX2(engine->tile_x, 64);
+ engine->tile_y = MAX2(engine->tile_x, 64);
+
+ type->view_update(engine, C);
+
+ rv3d->render_engine = engine;
}
/* setup view matrices */
@@ -2840,10 +2880,10 @@ static int view3d_main_area_draw_engine(const bContext *C, ARegion *ar, int draw
ED_view3d_calc_camera_border(scene, ar, v3d, rv3d, &viewborder, FALSE);
- cliprct.xmin = viewborder.xmin + scene->r.border.xmin * (viewborder.xmax - viewborder.xmin);
- cliprct.ymin = viewborder.ymin + scene->r.border.ymin * (viewborder.ymax - viewborder.ymin);
- cliprct.xmax = viewborder.xmin + scene->r.border.xmax * (viewborder.xmax - viewborder.xmin);
- cliprct.ymax = viewborder.ymin + scene->r.border.ymax * (viewborder.ymax - viewborder.ymin);
+ cliprct.xmin = viewborder.xmin + scene->r.border.xmin * BLI_rctf_size_x(&viewborder);
+ cliprct.ymin = viewborder.ymin + scene->r.border.ymin * BLI_rctf_size_y(&viewborder);
+ cliprct.xmax = viewborder.xmin + scene->r.border.xmax * BLI_rctf_size_x(&viewborder);
+ cliprct.ymax = viewborder.ymin + scene->r.border.ymax * BLI_rctf_size_y(&viewborder);
cliprct.xmin += ar->winrct.xmin;
cliprct.xmax += ar->winrct.xmin;
@@ -2857,7 +2897,7 @@ static int view3d_main_area_draw_engine(const bContext *C, ARegion *ar, int draw
if (cliprct.xmax > cliprct.xmin && cliprct.ymax > cliprct.ymin) {
glGetIntegerv(GL_SCISSOR_BOX, scissor);
- glScissor(cliprct.xmin, cliprct.ymin, cliprct.xmax - cliprct.xmin, cliprct.ymax - cliprct.ymin);
+ glScissor(cliprct.xmin, cliprct.ymin, BLI_rcti_size_x(&cliprct), BLI_rcti_size_y(&cliprct));
}
else
return 0;
@@ -2916,10 +2956,9 @@ static void view3d_main_area_draw_objects(const bContext *C, ARegion *ar, const
/* clear background */
if ((v3d->flag2 & V3D_RENDER_OVERRIDE) && scene->world) {
- if (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
- linearrgb_to_srgb_v3_v3(backcol, &scene->world->horr);
- else
- copy_v3_v3(backcol, &scene->world->horr);
+ IMB_colormanagement_pixel_to_display_space_v3(backcol, &scene->world->horr, &scene->view_settings,
+ &scene->display_settings);
+
glClearColor(backcol[0], backcol[1], backcol[2], 0.0);
}
else
@@ -2949,7 +2988,7 @@ static void view3d_main_area_draw_objects(const bContext *C, ARegion *ar, const
glEnable(GL_MULTISAMPLE_ARB);
#endif
- // needs to be done always, gridview is adjusted in drawgrid() now
+ /* needs to be done always, gridview is adjusted in drawgrid() now */
rv3d->gridview = v3d->grid;
if ((rv3d->view == RV3D_VIEW_USER) || (rv3d->persp != RV3D_ORTHO)) {
@@ -3047,7 +3086,7 @@ static void view3d_main_area_draw_objects(const bContext *C, ARegion *ar, const
/* Transp and X-ray afterdraw stuff */
if (v3d->afterdraw_transp.first) view3d_draw_transp(scene, ar, v3d);
- if (v3d->afterdraw_xray.first) view3d_draw_xray(scene, ar, v3d, 1); // clears zbuffer if it is used!
+ if (v3d->afterdraw_xray.first) view3d_draw_xray(scene, ar, v3d, 1); /* clears zbuffer if it is used! */
if (v3d->afterdraw_xraytransp.first) view3d_draw_xraytransp(scene, ar, v3d, 1);
ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST_VIEW);
@@ -3076,7 +3115,7 @@ static void view3d_main_area_draw_objects(const bContext *C, ARegion *ar, const
}
if ((U.ndof_flag & NDOF_SHOW_GUIDE) && (rv3d->viewlock != RV3D_LOCKED) && (rv3d->persp != RV3D_CAMOB))
- // TODO: draw something else (but not this) during fly mode
+ /* TODO: draw something else (but not this) during fly mode */
draw_rotation_guide(rv3d);
}
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index cc3d2d383b8..4e8981f16bd 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -81,7 +81,7 @@
#include "PIL_time.h" /* smoothview */
-#include "view3d_intern.h" // own include
+#include "view3d_intern.h" /* own include */
/* ********************** view3d_edit: view manipulations ********************* */
@@ -375,17 +375,17 @@ typedef struct ViewOpsData {
#define TRACKBALLSIZE (1.1)
-static void calctrackballvec(rcti *rect, int mx, int my, float vec[3])
+static void calctrackballvec(const rcti *rect, int mx, int my, float vec[3])
{
float x, y, radius, d, z, t;
radius = TRACKBALLSIZE;
/* normalize x and y */
- x = (rect->xmax + rect->xmin) / 2 - mx;
- x /= (float)((rect->xmax - rect->xmin) / 4);
- y = (rect->ymax + rect->ymin) / 2 - my;
- y /= (float)((rect->ymax - rect->ymin) / 2);
+ x = BLI_rcti_cent_x(rect) - mx;
+ x /= (float)(BLI_rcti_size_x(rect) / 4);
+ y = BLI_rcti_cent_y(rect) - my;
+ y /= (float)(BLI_rcti_size_y(rect) / 2);
d = sqrt(x * x + y * y);
if (d < radius * (float)M_SQRT1_2) { /* Inside sphere */
@@ -434,7 +434,7 @@ static void viewops_data_create(bContext *C, wmOperator *op, wmEvent *event)
calculateTransformCenter(C, V3D_CENTROID, lastofs, NULL);
negate_v3_v3(vod->dyn_ofs, lastofs);
}
- else if (U.uiflag & USER_ORBIT_ZBUF) {
+ else if (U.uiflag & USER_ZBUF_ORBIT) {
view3d_operator_needs_opengl(C); /* needed for zbuf drawing */
@@ -444,7 +444,7 @@ static void viewops_data_create(bContext *C, wmOperator *op, wmEvent *event)
float my_pivot[3]; /* view */
float dvec[3];
- // locals for dist correction
+ /* locals for dist correction */
float mat[3][3];
float upvec[3];
@@ -475,8 +475,8 @@ static void viewops_data_create(bContext *C, wmOperator *op, wmEvent *event)
{
/* for dolly */
- float mval_f[2];
- VECCOPY2D(mval_f, event->mval);
+ const float mval_f[2] = {(float)event->mval[0],
+ (float)event->mval[1]};
ED_view3d_win_to_vector(vod->ar, mval_f, vod->mousevec);
}
@@ -662,8 +662,7 @@ static void viewrotate_apply(ViewOpsData *vod, int x, int y)
if (vod->use_dyn_ofs) {
/* compute the post multiplication quat, to rotate the offset correctly */
- copy_qt_qt(q1, vod->oldquat);
- conjugate_qt(q1);
+ conjugate_qt_qt(q1, vod->oldquat);
mul_qt_qtqt(q1, q1, vod->viewquat);
conjugate_qt(q1); /* conj == inv for unit quat */
@@ -967,7 +966,6 @@ static int viewrotate_cancel(bContext *C, wmOperator *op)
void VIEW3D_OT_rotate(wmOperatorType *ot)
{
-
/* identifiers */
ot->name = "Rotate view";
ot->description = "Rotate the view";
@@ -1022,9 +1020,10 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event
/* tune these until everything feels right */
const float rot_sensitivity = 1.f;
+#if 0
const float zoom_sensitivity = 1.f;
+#endif
const float pan_sensitivity = 1.f;
-
const int has_rotation = rv3d->viewlock != RV3D_LOCKED && !is_zero_v3(ndof->rvec);
float view_inv[4];
@@ -1036,20 +1035,6 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event
ndof->tx, ndof->ty, ndof->tz, ndof->rx, ndof->ry, ndof->rz, ndof->dt);
#endif
- if (ndof->tz) {
- /* Zoom!
- * velocity should be proportional to the linear velocity attained by rotational motion of same strength
- * [got that?]
- * proportional to arclength = radius * angle
- */
- float zoom_distance = zoom_sensitivity * rv3d->dist * dt * ndof->tz;
-
- if (U.ndof_flag & NDOF_ZOOM_INVERT)
- zoom_distance = -zoom_distance;
-
- rv3d->dist += zoom_distance;
- }
-
if (rv3d->viewlock == RV3D_LOCKED) {
/* rotation not allowed -- explore panning options instead */
float pan_vec[3] = {ndof->tx, ndof->ty, 0.0f};
@@ -1067,34 +1052,7 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event
rv3d->view = RV3D_VIEW_USER;
- if (U.flag & USER_TRACKBALL) {
- float rot[4];
- float axis[3];
- float angle = rot_sensitivity * ndof_to_axis_angle(ndof, axis);
-
- if (U.ndof_flag & NDOF_ROLL_INVERT_AXIS)
- axis[2] = -axis[2];
-
- if (U.ndof_flag & NDOF_TILT_INVERT_AXIS)
- axis[0] = -axis[0];
-
- if (U.ndof_flag & NDOF_ROTATE_INVERT_AXIS)
- axis[1] = -axis[1];
-
- /* transform rotation axis from view to world coordinates */
- mul_qt_v3(view_inv, axis);
-
- /* update the onscreen doo-dad */
- rv3d->rot_angle = angle;
- copy_v3_v3(rv3d->rot_axis, axis);
-
- axis_angle_to_quat(rot, axis, angle);
-
- /* apply rotation */
- mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot);
-
- }
- else {
+ if (U.ndof_flag & NDOF_TURNTABLE) {
/* turntable view code by John Aughey, adapted for 3D mouse by [mce] */
float angle, rot[4];
@@ -1127,6 +1085,33 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event
rot[3] = sin(angle);
mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot);
}
+ else {
+ float rot[4];
+ float axis[3];
+ float angle = rot_sensitivity * ndof_to_axis_angle(ndof, axis);
+
+ if (U.ndof_flag & NDOF_ROLL_INVERT_AXIS)
+ axis[2] = -axis[2];
+
+ if (U.ndof_flag & NDOF_TILT_INVERT_AXIS)
+ axis[0] = -axis[0];
+
+ if (U.ndof_flag & NDOF_ROTATE_INVERT_AXIS)
+ axis[1] = -axis[1];
+
+ /* transform rotation axis from view to world coordinates */
+ mul_qt_v3(view_inv, axis);
+
+ /* update the onscreen doo-dad */
+ rv3d->rot_angle = angle;
+ copy_v3_v3(rv3d->rot_axis, axis);
+
+ axis_angle_to_quat(rot, axis, angle);
+
+ /* apply rotation */
+ mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot);
+
+ }
}
}
@@ -1247,6 +1232,160 @@ void VIEW3D_OT_ndof_pan(struct wmOperatorType *ot)
ot->flag = 0;
}
+
+/*
+ * this is basically just the pan only code + the rotate only code crammed into one function that does both
+ */
+static int ndof_all_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ if (event->type != NDOF_MOTION)
+ return OPERATOR_CANCELLED;
+ else {
+
+ ViewOpsData *vod;
+ RegionView3D *rv3d;
+
+ View3D *v3d = CTX_wm_view3d(C);
+ wmNDOFMotionData *ndof = (wmNDOFMotionData *) event->customdata;
+
+ viewops_data_create(C, op, event);
+ vod = op->customdata;
+ rv3d = vod->rv3d;
+
+ ED_view3d_camera_lock_init(v3d, rv3d);
+
+ if (ndof->progress != P_FINISHING) {
+
+ const float dt = ndof->dt;
+ float view_inv[4];
+
+ float speed = 10.f; /* blender units per second */
+ /* ^^ this is ok for default cube scene, but should scale with.. something */
+
+ /* tune these until everything feels right */
+ const float forward_sensitivity = 1.f;
+ const float vertical_sensitivity = 0.4f;
+ const float lateral_sensitivity = 0.6f;
+
+ float pan_vec[3];
+ const float rot_sensitivity = 1.f;
+#if 0
+ const float zoom_sensitivity = 1.f;
+ const float pan_sensitivity = 1.f;
+ float rot[4];
+ float angle = rot_sensitivity * ndof_to_axis_angle(ndof, axis);
+ float axis[3];
+#endif
+
+ if (U.ndof_flag & NDOF_PANX_INVERT_AXIS)
+ pan_vec[0] = -lateral_sensitivity * ndof->tvec[0];
+ else
+ pan_vec[0] = lateral_sensitivity * ndof->tvec[0];
+
+ if (U.ndof_flag & NDOF_PANZ_INVERT_AXIS)
+ pan_vec[1] = -vertical_sensitivity * ndof->tvec[1];
+ else
+ pan_vec[1] = vertical_sensitivity * ndof->tvec[1];
+
+ if (U.ndof_flag & NDOF_PANY_INVERT_AXIS)
+ pan_vec[2] = -forward_sensitivity * ndof->tvec[2];
+ else
+ pan_vec[2] = forward_sensitivity * ndof->tvec[2];
+
+ mul_v3_fl(pan_vec, speed * dt);
+
+ /* transform motion from view to world coordinates */
+ invert_qt_qt(view_inv, rv3d->viewquat);
+ mul_qt_v3(view_inv, pan_vec);
+
+ /* move center of view opposite of hand motion (this is camera mode, not object mode) */
+ sub_v3_v3(rv3d->ofs, pan_vec);
+
+ if (U.ndof_flag & NDOF_TURNTABLE) {
+ /* turntable view code by John Aughey, adapted for 3D mouse by [mce] */
+ float angle, rot[4];
+ float xvec[3] = {1, 0, 0};
+
+ /* Determine the direction of the x vector (for rotating up and down) */
+ mul_qt_v3(view_inv, xvec);
+
+ /* Perform the up/down rotation */
+ angle = rot_sensitivity * dt * ndof->rx;
+ if (U.ndof_flag & NDOF_TILT_INVERT_AXIS)
+ angle = -angle;
+ rot[0] = cos(angle);
+ mul_v3_v3fl(rot + 1, xvec, sin(angle));
+ mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot);
+
+ /* Perform the orbital rotation */
+ angle = rot_sensitivity * dt * ndof->ry;
+ if (U.ndof_flag & NDOF_ROTATE_INVERT_AXIS)
+ angle = -angle;
+
+ /* update the onscreen doo-dad */
+ rv3d->rot_angle = angle;
+ rv3d->rot_axis[0] = 0;
+ rv3d->rot_axis[1] = 0;
+ rv3d->rot_axis[2] = 1;
+
+ rot[0] = cos(angle);
+ rot[1] = rot[2] = 0.0;
+ rot[3] = sin(angle);
+ mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot);
+
+ }
+ else {
+
+ float rot[4];
+ float axis[3];
+ float angle = rot_sensitivity * ndof_to_axis_angle(ndof, axis);
+
+ if (U.ndof_flag & NDOF_ROLL_INVERT_AXIS)
+ axis[2] = -axis[2];
+
+ if (U.ndof_flag & NDOF_TILT_INVERT_AXIS)
+ axis[0] = -axis[0];
+
+ if (U.ndof_flag & NDOF_ROTATE_INVERT_AXIS)
+ axis[1] = -axis[1];
+
+ /* transform rotation axis from view to world coordinates */
+ mul_qt_v3(view_inv, axis);
+
+ /* update the onscreen doo-dad */
+ rv3d->rot_angle = angle;
+ copy_v3_v3(rv3d->rot_axis, axis);
+
+ axis_angle_to_quat(rot, axis, angle);
+
+ /* apply rotation */
+ mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, rot);
+
+ }
+ }
+ ED_view3d_camera_lock_sync(v3d, rv3d);
+
+ ED_region_tag_redraw(CTX_wm_region(C));
+ viewops_data_free(C, op);
+ return OPERATOR_FINISHED;
+ }
+}
+
+void VIEW3D_OT_ndof_all(struct wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "NDOF move View";
+ ot->description = "Position your viewpoint with the 3D mouse";
+ ot->idname = "VIEW3D_OT_ndof_all";
+
+ /* api callbacks */
+ ot->invoke = ndof_all_invoke;
+ ot->poll = ED_operator_view3d_active;
+
+ /* flags */
+ ot->flag = 0;
+}
+
/* ************************ viewmove ******************************** */
@@ -1497,10 +1636,11 @@ static void viewzoom_apply(ViewOpsData *vod, int x, int y, const short viewzoom,
if (use_cam_zoom) {
float delta;
delta = (x - vod->origx + y - vod->origy) / 10.0f;
- vod->rv3d->camzoom = vod->camzoom0 - delta;
+ vod->rv3d->camzoom = vod->camzoom0 + (zoom_invert ? delta : -delta);
CLAMP(vod->rv3d->camzoom, RV3D_CAMZOOM_MIN, RV3D_CAMZOOM_MAX);
}
+
if (viewzoom == USER_ZOOM_CONT) {
double time = PIL_check_seconds_timer();
float time_step = (float)(time - vod->timer_lastdraw);
@@ -1517,16 +1657,16 @@ static void viewzoom_apply(ViewOpsData *vod, int x, int y, const short viewzoom,
fac = -fac;
}
- // oldstyle zoom
+ /* oldstyle zoom */
zfac = 1.0f + ((fac / 20.0f) * time_step);
vod->timer_lastdraw = time;
}
else if (viewzoom == USER_ZOOM_SCALE) {
int ctr[2], len1, len2;
- // method which zooms based on how far you move the mouse
+ /* method which zooms based on how far you move the mouse */
- ctr[0] = (vod->ar->winrct.xmax + vod->ar->winrct.xmin) / 2;
- ctr[1] = (vod->ar->winrct.ymax + vod->ar->winrct.ymin) / 2;
+ ctr[0] = BLI_rcti_cent_x(&vod->ar->winrct);
+ ctr[1] = BLI_rcti_cent_y(&vod->ar->winrct);
len1 = (int)sqrt((ctr[0] - x) * (ctr[0] - x) + (ctr[1] - y) * (ctr[1] - y)) + 5;
len2 = (int)sqrt((ctr[0] - vod->origx) * (ctr[0] - vod->origx) + (ctr[1] - vod->origy) * (ctr[1] - vod->origy)) + 5;
@@ -1549,8 +1689,10 @@ static void viewzoom_apply(ViewOpsData *vod, int x, int y, const short viewzoom,
}
if (use_cam_zoom) {
+ /* zfac is ignored in this case, see below */
+#if 0
zfac = vod->camzoom0 * (2.0f * ((len2 / len1) - 1.0f) + 1.0f) / vod->rv3d->camzoom;
- zfac = 0;
+#endif
}
else {
zfac = vod->dist0 * (2.0f * ((len2 / len1) - 1.0f) + 1.0f) / vod->rv3d->dist;
@@ -2072,7 +2214,7 @@ static int view3d_all_exec(bContext *C, wmOperator *op) /* was view3d_home() in
continue;
}
- BKE_object_minmax(base->object, min, max);
+ BKE_object_minmax(base->object, min, max, FALSE);
}
}
if (!onedone) {
@@ -2081,7 +2223,7 @@ static int view3d_all_exec(bContext *C, wmOperator *op) /* was view3d_home() in
* I think no, because we always move the cursor, with or without
* object, but in this case there is no change in the scene,
* only the cursor so I choice a ED_region_tag like
- * smooth_view do for the center_cursor.
+ * view3d_smooth_view do for the center_cursor.
* See bug #22640
*/
return OPERATOR_FINISHED;
@@ -2100,7 +2242,7 @@ static int view3d_all_exec(bContext *C, wmOperator *op) /* was view3d_home() in
new_ofs[1] = -(min[1] + max[1]) / 2.0f;
new_ofs[2] = -(min[2] + max[2]) / 2.0f;
- // correction for window aspect ratio
+ /* correction for window aspect ratio */
if (ar->winy > 2 && ar->winx > 2) {
size = (float)ar->winx / (float)ar->winy;
if (size < 1.0f) size = 1.0f / size;
@@ -2109,10 +2251,10 @@ static int view3d_all_exec(bContext *C, wmOperator *op) /* was view3d_home() in
if ((rv3d->persp == RV3D_CAMOB) && !ED_view3d_camera_lock_check(v3d, rv3d)) {
rv3d->persp = RV3D_PERSP;
- smooth_view(C, v3d, ar, v3d->camera, NULL, new_ofs, NULL, &new_dist, NULL);
+ view3d_smooth_view(C, v3d, ar, v3d->camera, NULL, new_ofs, NULL, &new_dist, NULL);
}
else {
- smooth_view(C, v3d, ar, NULL, NULL, new_ofs, NULL, &new_dist, NULL);
+ view3d_smooth_view(C, v3d, ar, NULL, NULL, new_ofs, NULL, &new_dist, NULL);
}
}
// XXX BIF_view3d_previewrender_signal(curarea, PR_DBASE|PR_DISPRECT);
@@ -2218,8 +2360,8 @@ static int viewselected_exec(bContext *C, wmOperator *UNUSED(op))
}
/* account for duplis */
- if (BKE_object_minmax_dupli(scene, base->object, min, max) == 0)
- BKE_object_minmax(base->object, min, max); /* use if duplis not found */
+ if (BKE_object_minmax_dupli(scene, base->object, min, max, FALSE) == 0)
+ BKE_object_minmax(base->object, min, max, FALSE); /* use if duplis not found */
ok = 1;
}
@@ -2266,10 +2408,10 @@ static int viewselected_exec(bContext *C, wmOperator *UNUSED(op))
if (rv3d->persp == RV3D_CAMOB && !ED_view3d_camera_lock_check(v3d, rv3d)) {
rv3d->persp = RV3D_PERSP;
- smooth_view(C, v3d, ar, v3d->camera, NULL, new_ofs, NULL, ok_dist ? &new_dist : NULL, NULL);
+ view3d_smooth_view(C, v3d, ar, v3d->camera, NULL, new_ofs, NULL, ok_dist ? &new_dist : NULL, NULL);
}
else {
- smooth_view(C, v3d, ar, NULL, NULL, new_ofs, NULL, ok_dist ? &new_dist : NULL, NULL);
+ view3d_smooth_view(C, v3d, ar, NULL, NULL, new_ofs, NULL, ok_dist ? &new_dist : NULL, NULL);
}
/* smooth view does viewlock RV3D_BOXVIEW copy */
@@ -2390,7 +2532,7 @@ static int viewcenter_cursor_exec(bContext *C, wmOperator *UNUSED(op))
/* non camera center */
float new_ofs[3];
negate_v3_v3(new_ofs, give_cursor(scene, v3d));
- smooth_view(C, v3d, ar, NULL, NULL, new_ofs, NULL, NULL, NULL);
+ view3d_smooth_view(C, v3d, ar, NULL, NULL, new_ofs, NULL, NULL, NULL);
/* smooth view does viewlock RV3D_BOXVIEW copy */
}
@@ -2435,7 +2577,7 @@ static int view3d_center_camera_exec(bContext *C, wmOperator *UNUSED(op)) /* was
xfac = (float)ar->winx / (float)(size[0] + 4);
yfac = (float)ar->winy / (float)(size[1] + 4);
- rv3d->camzoom = BKE_screen_view3d_zoom_from_fac(MIN2(xfac, yfac));
+ rv3d->camzoom = BKE_screen_view3d_zoom_from_fac(minf(xfac, yfac));
CLAMP(rv3d->camzoom, RV3D_CAMZOOM_MIN, RV3D_CAMZOOM_MAX);
WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, CTX_wm_view3d(C));
@@ -2471,18 +2613,15 @@ static int render_border_exec(bContext *C, wmOperator *op)
rctf vb;
/* get border select values using rna */
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
/* calculate range */
ED_view3d_calc_camera_border(scene, ar, v3d, rv3d, &vb, FALSE);
- scene->r.border.xmin = ((float)rect.xmin - vb.xmin) / (vb.xmax - vb.xmin);
- scene->r.border.ymin = ((float)rect.ymin - vb.ymin) / (vb.ymax - vb.ymin);
- scene->r.border.xmax = ((float)rect.xmax - vb.xmin) / (vb.xmax - vb.xmin);
- scene->r.border.ymax = ((float)rect.ymax - vb.ymin) / (vb.ymax - vb.ymin);
+ scene->r.border.xmin = ((float)rect.xmin - vb.xmin) / BLI_rctf_size_x(&vb);
+ scene->r.border.ymin = ((float)rect.ymin - vb.ymin) / BLI_rctf_size_y(&vb);
+ scene->r.border.xmax = ((float)rect.xmax - vb.xmin) / BLI_rctf_size_x(&vb);
+ scene->r.border.ymax = ((float)rect.ymax - vb.ymin) / BLI_rctf_size_y(&vb);
/* actually set border */
CLAMP(scene->r.border.xmin, 0.0f, 1.0f);
@@ -2528,10 +2667,7 @@ void VIEW3D_OT_render_border(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
/* rna */
- RNA_def_int(ot->srna, "xmin", 0, INT_MIN, INT_MAX, "X Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "xmax", 0, INT_MIN, INT_MAX, "X Max", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "ymin", 0, INT_MIN, INT_MAX, "Y Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, "Y Max", "", INT_MIN, INT_MAX);
+ WM_operator_properties_border(ot);
}
/* ********************* Border Zoom operator ****************** */
@@ -2542,10 +2678,12 @@ static int view3d_zoom_border_exec(bContext *C, wmOperator *op)
View3D *v3d = CTX_wm_view3d(C);
RegionView3D *rv3d = CTX_wm_region_view3d(C);
Scene *scene = CTX_data_scene(C);
+ int gesture_mode;
/* Zooms in on a border drawn by the user */
rcti rect;
- float dvec[3], vb[2], xscale, yscale, scale;
+ float dvec[3], vb[2], xscale, yscale;
+ float dist_range_min;
/* SMOOTHVIEW */
float new_dist;
@@ -2560,10 +2698,10 @@ static int view3d_zoom_border_exec(bContext *C, wmOperator *op)
view3d_operator_needs_opengl(C);
/* get border select values using rna */
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
+
+ /* check if zooming in/out view */
+ gesture_mode = RNA_int_get(op->ptr, "gesture_mode");
/* Get Z Depths, needed for perspective, nice for ortho */
bgl_get_mats(&mats);
@@ -2594,12 +2732,12 @@ static int view3d_zoom_border_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
/* convert border to 3d coordinates */
- if ( (!gluUnProject(cent[0], cent[1], depth_close,
- mats.modelview, mats.projection, (GLint *)mats.viewport,
- &p[0], &p[1], &p[2])) ||
- (!gluUnProject((double)rect.xmin, (double)rect.ymin, depth_close,
- mats.modelview, mats.projection, (GLint *)mats.viewport,
- &p_corner[0], &p_corner[1], &p_corner[2])))
+ if ((!gluUnProject(cent[0], cent[1], depth_close,
+ mats.modelview, mats.projection, (GLint *)mats.viewport,
+ &p[0], &p[1], &p[2])) ||
+ (!gluUnProject((double)rect.xmin, (double)rect.ymin, depth_close,
+ mats.modelview, mats.projection, (GLint *)mats.viewport,
+ &p_corner[0], &p_corner[1], &p_corner[2])))
{
return OPERATOR_CANCELLED;
}
@@ -2608,13 +2746,13 @@ static int view3d_zoom_border_exec(bContext *C, wmOperator *op)
dvec[1] = p[1] - p_corner[1];
dvec[2] = p[2] - p_corner[2];
- new_dist = len_v3(dvec);
- if (new_dist <= v3d->near * 1.5f) new_dist = v3d->near * 1.5f;
-
new_ofs[0] = -p[0];
new_ofs[1] = -p[1];
new_ofs[2] = -p[2];
+ new_dist = len_v3(dvec);
+ dist_range_min = v3d->near * 1.5f;
+
}
else { /* othographic */
/* find the current window width and height */
@@ -2647,15 +2785,26 @@ static int view3d_zoom_border_exec(bContext *C, wmOperator *op)
}
/* work out the ratios, so that everything selected fits when we zoom */
- xscale = ((rect.xmax - rect.xmin) / vb[0]);
- yscale = ((rect.ymax - rect.ymin) / vb[1]);
- scale = (xscale >= yscale) ? xscale : yscale;
+ xscale = (BLI_rcti_size_x(&rect) / vb[0]);
+ yscale = (BLI_rcti_size_y(&rect) / vb[1]);
+ new_dist *= maxf(xscale, yscale);
/* zoom in as required, or as far as we can go */
- new_dist = ((new_dist * scale) >= 0.001f * v3d->grid) ? new_dist * scale : 0.001f * v3d->grid;
+ dist_range_min = 0.001f * v3d->grid;
+ }
+
+ if (gesture_mode == GESTURE_MODAL_OUT) {
+ sub_v3_v3v3(dvec, new_ofs, rv3d->ofs);
+ new_dist = rv3d->dist * (rv3d->dist / new_dist);
+ add_v3_v3v3(new_ofs, rv3d->ofs, dvec);
+ }
+
+ /* clamp after because we may have been zooming out */
+ if (new_dist < dist_range_min) {
+ new_dist = dist_range_min;
}
- smooth_view(C, v3d, ar, NULL, NULL, new_ofs, NULL, &new_dist, NULL);
+ view3d_smooth_view(C, v3d, ar, NULL, NULL, new_ofs, NULL, &new_dist, NULL);
if (rv3d->viewlock & RV3D_BOXVIEW)
view3d_boxview_sync(CTX_wm_area(C), ar);
@@ -2678,7 +2827,7 @@ static int view3d_zoom_border_invoke(bContext *C, wmOperator *op, wmEvent *event
void VIEW3D_OT_zoom_border(wmOperatorType *ot)
{
/* identifiers */
- ot->name = "Border Zoom";
+ ot->name = "Zoom to Border";
ot->description = "Zoom in the view to the nearest object contained in the border";
ot->idname = "VIEW3D_OT_zoom_border";
@@ -2694,11 +2843,7 @@ void VIEW3D_OT_zoom_border(wmOperatorType *ot)
ot->flag = 0;
/* rna */
- RNA_def_int(ot->srna, "xmin", 0, INT_MIN, INT_MAX, "X Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "xmax", 0, INT_MIN, INT_MAX, "X Max", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "ymin", 0, INT_MIN, INT_MAX, "Y Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, "Y Max", "", INT_MIN, INT_MAX);
-
+ WM_operator_properties_gesture_border(ot, FALSE);
}
/* sets the view to 1:1 camera/render-pixel */
@@ -2755,7 +2900,7 @@ static EnumPropertyItem prop_view_items[] = {
{RV3D_VIEW_RIGHT, "RIGHT", 0, "Right", "View From the Right"},
{RV3D_VIEW_TOP, "TOP", 0, "Top", "View From the Top"},
{RV3D_VIEW_BOTTOM, "BOTTOM", 0, "Bottom", "View From the Bottom"},
- {RV3D_VIEW_CAMERA, "CAMERA", 0, "Camera", "View From the active camera"},
+ {RV3D_VIEW_CAMERA, "CAMERA", 0, "Camera", "View From the Active Camera"},
{0, NULL, 0, NULL, NULL}
};
@@ -2825,14 +2970,14 @@ static void axis_set_view(bContext *C, View3D *v3d, ARegion *ar,
if (U.uiflag & USER_AUTOPERSP) rv3d->persp = view ? RV3D_ORTHO : RV3D_PERSP;
else if (rv3d->persp == RV3D_CAMOB) rv3d->persp = perspo;
- smooth_view(C, v3d, ar, v3d->camera, NULL, rv3d->ofs, new_quat, NULL, NULL);
+ view3d_smooth_view(C, v3d, ar, v3d->camera, NULL, rv3d->ofs, new_quat, NULL, NULL);
}
else {
if (U.uiflag & USER_AUTOPERSP) rv3d->persp = view ? RV3D_ORTHO : RV3D_PERSP;
else if (rv3d->persp == RV3D_CAMOB) rv3d->persp = perspo;
- smooth_view(C, v3d, ar, NULL, NULL, NULL, new_quat, NULL, NULL);
+ view3d_smooth_view(C, v3d, ar, NULL, NULL, NULL, new_quat, NULL, NULL);
}
}
@@ -2873,7 +3018,7 @@ static int viewnumpad_exec(bContext *C, wmOperator *op)
break;
case RV3D_VIEW_BACK:
- axis_set_view(C, v3d, ar, 0.0, 0.0, (float)-cos(M_PI / 4.0), (float)-cos(M_PI / 4.0),
+ axis_set_view(C, v3d, ar, 0.0, 0.0, -M_SQRT1_2, -M_SQRT1_2,
viewnum, nextperspo, align_active);
break;
@@ -2888,7 +3033,7 @@ static int viewnumpad_exec(bContext *C, wmOperator *op)
break;
case RV3D_VIEW_FRONT:
- axis_set_view(C, v3d, ar, (float)cos(M_PI / 4.0), (float)-sin(M_PI / 4.0), 0.0, 0.0,
+ axis_set_view(C, v3d, ar, M_SQRT1_2, -M_SQRT1_2, 0.0, 0.0,
viewnum, nextperspo, align_active);
break;
@@ -2950,12 +3095,12 @@ static int viewnumpad_exec(bContext *C, wmOperator *op)
/* finally do snazzy view zooming */
rv3d->persp = RV3D_CAMOB;
- smooth_view(C, v3d, ar, NULL, v3d->camera, rv3d->ofs, rv3d->viewquat, &rv3d->dist, &v3d->lens);
+ view3d_smooth_view(C, v3d, ar, NULL, v3d->camera, rv3d->ofs, rv3d->viewquat, &rv3d->dist, &v3d->lens);
}
else {
/* return to settings of last view */
- /* does smooth_view too */
+ /* does view3d_smooth_view too */
axis_set_view(C, v3d, ar,
rv3d->lviewquat[0], rv3d->lviewquat[1], rv3d->lviewquat[2], rv3d->lviewquat[3],
rv3d->lview, rv3d->lpersp, 0);
@@ -2979,7 +3124,7 @@ void VIEW3D_OT_viewnumpad(wmOperatorType *ot)
/* identifiers */
ot->name = "View numpad";
- ot->description = "Set the view";
+ ot->description = "Use a preset viewpoint";
ot->idname = "VIEW3D_OT_viewnumpad";
/* api callbacks */
@@ -2989,8 +3134,8 @@ void VIEW3D_OT_viewnumpad(wmOperatorType *ot)
/* flags */
ot->flag = 0;
- prop = RNA_def_enum(ot->srna, "type", prop_view_items, 0, "View", "The Type of view");
- RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ ot->prop = RNA_def_enum(ot->srna, "type", prop_view_items, 0, "View", "Preset viewpoint to use");
+ RNA_def_property_flag(ot->prop, PROP_SKIP_SAVE);
prop = RNA_def_boolean(ot->srna, "align_active", 0, "Align Active", "Align to the active object's axis");
RNA_def_property_flag(prop, PROP_SKIP_SAVE);
}
@@ -3008,7 +3153,6 @@ static int vieworbit_exec(bContext *C, wmOperator *op)
View3D *v3d;
ARegion *ar;
RegionView3D *rv3d;
- float phi, q1[4], new_quat[4];
int orbitdir;
/* no NULL check is needed, poll checks */
@@ -3019,36 +3163,40 @@ static int vieworbit_exec(bContext *C, wmOperator *op)
if (rv3d->viewlock == 0) {
if ((rv3d->persp != RV3D_CAMOB) || ED_view3d_camera_lock_check(v3d, rv3d)) {
- if (orbitdir == V3D_VIEW_STEPLEFT || orbitdir == V3D_VIEW_STEPRIGHT) {
- float si;
+ float angle = DEG2RADF((float)U.pad_rot_angle);
+ float quat_mul[4];
+ float quat_new[4];
+
+ if (ELEM(orbitdir, V3D_VIEW_STEPLEFT, V3D_VIEW_STEPRIGHT)) {
+ const float zvec[3] = {0.0f, 0.0f, 1.0f};
+
+ if (orbitdir == V3D_VIEW_STEPRIGHT) {
+ angle = -angle;
+ }
+
/* z-axis */
- phi = (float)(M_PI / 360.0) * U.pad_rot_angle;
- if (orbitdir == V3D_VIEW_STEPRIGHT) phi = -phi;
- si = (float)sin(phi);
- q1[0] = (float)cos(phi);
- q1[1] = q1[2] = 0.0;
- q1[3] = si;
- mul_qt_qtqt(new_quat, rv3d->viewquat, q1);
- rv3d->view = RV3D_VIEW_USER;
+ axis_angle_to_quat(quat_mul, zvec, angle);
}
- else if (orbitdir == V3D_VIEW_STEPDOWN || orbitdir == V3D_VIEW_STEPUP) {
+ else {
+
+ if (orbitdir == V3D_VIEW_STEPDOWN) {
+ angle = -angle;
+ }
+
/* horizontal axis */
- copy_v3_v3(q1 + 1, rv3d->viewinv[0]);
-
- normalize_v3(q1 + 1);
- phi = (float)(M_PI / 360.0) * U.pad_rot_angle;
- if (orbitdir == V3D_VIEW_STEPDOWN) phi = -phi;
- q1[0] = (float)cos(phi);
- mul_v3_fl(q1 + 1, sin(phi));
- mul_qt_qtqt(new_quat, rv3d->viewquat, q1);
- rv3d->view = RV3D_VIEW_USER;
+ axis_angle_to_quat(quat_mul, rv3d->viewinv[0], angle);
}
- smooth_view(C, CTX_wm_view3d(C), ar, NULL, NULL, NULL, new_quat, NULL, NULL);
+ mul_qt_qtqt(quat_new, rv3d->viewquat, quat_mul);
+ rv3d->view = RV3D_VIEW_USER;
+
+ view3d_smooth_view(C, CTX_wm_view3d(C), ar, NULL, NULL, NULL, quat_new, NULL, NULL);
+
+ return OPERATOR_FINISHED;
}
}
- return OPERATOR_FINISHED;
+ return OPERATOR_CANCELLED;
}
void VIEW3D_OT_view_orbit(wmOperatorType *ot)
@@ -3064,7 +3212,9 @@ void VIEW3D_OT_view_orbit(wmOperatorType *ot)
/* flags */
ot->flag = 0;
- RNA_def_enum(ot->srna, "type", prop_view_orbit_items, 0, "Orbit", "Direction of View Orbit");
+
+ /* properties */
+ ot->prop = RNA_def_enum(ot->srna, "type", prop_view_orbit_items, 0, "Orbit", "Direction of View Orbit");
}
static EnumPropertyItem prop_view_pan_items[] = {
@@ -3113,7 +3263,9 @@ void VIEW3D_OT_view_pan(wmOperatorType *ot)
/* flags */
ot->flag = 0;
- RNA_def_enum(ot->srna, "type", prop_view_pan_items, 0, "Pan", "Direction of View Pan");
+
+ /* Properties */
+ ot->prop = RNA_def_enum(ot->srna, "type", prop_view_pan_items, 0, "Pan", "Direction of View Pan");
}
static int viewpersportho_exec(bContext *C, wmOperator *UNUSED(op))
@@ -3141,7 +3293,7 @@ void VIEW3D_OT_view_persportho(wmOperatorType *ot)
{
/* identifiers */
ot->name = "View Persp/Ortho";
- ot->description = "Switch the current view from perspective/orthographic";
+ ot->description = "Switch the current view from perspective/orthographic projection";
ot->idname = "VIEW3D_OT_view_persportho";
/* api callbacks */
@@ -3257,7 +3409,8 @@ void VIEW3D_OT_background_image_remove(wmOperatorType *ot)
/* flags */
ot->flag = 0;
-
+
+ /* properties */
RNA_def_int(ot->srna, "index", 0, 0, INT_MAX, "Index", "Background image index to remove", 0, INT_MAX);
}
@@ -3306,10 +3459,7 @@ static int view3d_clipping_exec(bContext *C, wmOperator *op)
bglMats mats;
rcti rect;
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
rv3d->rflag |= RV3D_CLIPPING;
rv3d->clipbb = MEM_callocN(sizeof(BoundBox), "clipbb");
@@ -3319,7 +3469,7 @@ static int view3d_clipping_exec(bContext *C, wmOperator *op)
view3d_set_viewcontext(C, &vc);
view3d_get_transformation(vc.ar, vc.rv3d, NULL, &mats); /* NULL because we don't want it in object space */
- ED_view3d_calc_clipping(rv3d->clipbb, rv3d->clip, &mats, &rect);
+ ED_view3d_clipping_calc(rv3d->clipbb, rv3d->clip, &mats, &rect);
return OPERATOR_FINISHED;
}
@@ -3362,66 +3512,55 @@ void VIEW3D_OT_clip_border(wmOperatorType *ot)
ot->flag = 0;
/* rna */
- RNA_def_int(ot->srna, "xmin", 0, INT_MIN, INT_MAX, "X Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "xmax", 0, INT_MIN, INT_MAX, "X Max", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "ymin", 0, INT_MIN, INT_MAX, "Y Min", "", INT_MIN, INT_MAX);
- RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, "Y Max", "", INT_MIN, INT_MAX);
+ WM_operator_properties_border(ot);
}
/* ***************** 3d cursor cursor op ******************* */
/* mx my in region coords */
-static int set_3dcursor_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
+static int view3d_cursor3d_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
Scene *scene = CTX_data_scene(C);
ARegion *ar = CTX_wm_region(C);
View3D *v3d = CTX_wm_view3d(C);
RegionView3D *rv3d = CTX_wm_region_view3d(C);
- float dx, dy, fz, *fp = NULL, dvec[3], oldcurs[3];
- int mval[2];
-// short ctrl= 0; // XXX
+ float *fp = NULL;
+ float mval_fl[2];
int flip;
fp = give_cursor(scene, v3d);
-// if (obedit && ctrl) lr_click= 1;
- copy_v3_v3(oldcurs, fp);
-
- project_int_noclip(ar, fp, mval);
flip = initgrabz(rv3d, fp[0], fp[1], fp[2]);
- /* reset the depth based on the view offset */
+ /* reset the depth based on the view offset (we _know_ the offset is infront of us) */
if (flip) {
negate_v3_v3(fp, rv3d->ofs);
-
- /* re initialize */
- project_int_noclip(ar, fp, mval);
- flip = initgrabz(rv3d, fp[0], fp[1], fp[2]);
- (void)flip;
+ /* re initialize, no need to check flip again */
+ /* flip = */ initgrabz(rv3d, fp[0], fp[1], fp[2]);
}
- if (mval[0] != IS_CLIPPED) {
- short depth_used = 0;
+ if (ED_view3d_project_float_global(ar, fp, mval_fl, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ short depth_used = FALSE;
- if (U.uiflag & USER_ORBIT_ZBUF) { /* maybe this should be accessed some other way */
+ if (U.uiflag & USER_ZBUF_CURSOR) { /* maybe this should be accessed some other way */
view3d_operator_needs_opengl(C);
if (ED_view3d_autodist(scene, ar, v3d, event->mval, fp))
- depth_used = 1;
+ depth_used = TRUE;
}
- if (depth_used == 0) {
- float mval_f[2];
- VECSUB2D(mval_f, mval, event->mval);
- ED_view3d_win_to_delta(ar, mval_f, dvec);
+ if (depth_used == FALSE) {
+ float dvec[3];
+ VECSUB2D(mval_fl, mval_fl, event->mval);
+ ED_view3d_win_to_delta(ar, mval_fl, dvec);
sub_v3_v3(fp, dvec);
}
}
else {
-
- dx = ((float)(event->mval[0] - (ar->winx / 2))) * rv3d->zfac / (ar->winx / 2);
- dy = ((float)(event->mval[1] - (ar->winy / 2))) * rv3d->zfac / (ar->winy / 2);
-
- fz = rv3d->persmat[0][3] * fp[0] + rv3d->persmat[1][3] * fp[1] + rv3d->persmat[2][3] * fp[2] + rv3d->persmat[3][3];
- fz = fz / rv3d->zfac;
+ const float dx = ((float)(event->mval[0] - (ar->winx / 2))) * rv3d->zfac / (ar->winx / 2);
+ const float dy = ((float)(event->mval[1] - (ar->winy / 2))) * rv3d->zfac / (ar->winy / 2);
+ const float fz = (rv3d->persmat[0][3] * fp[0] +
+ rv3d->persmat[1][3] * fp[1] +
+ rv3d->persmat[2][3] * fp[2] +
+ rv3d->persmat[3][3]) / rv3d->zfac;
fp[0] = (rv3d->persinv[0][0] * dx + rv3d->persinv[1][0] * dy + rv3d->persinv[2][0] * fz) - rv3d->ofs[0];
fp[1] = (rv3d->persinv[0][1] * dx + rv3d->persinv[1][1] * dy + rv3d->persinv[2][1] * fz) - rv3d->ofs[1];
@@ -3445,7 +3584,7 @@ void VIEW3D_OT_cursor3d(wmOperatorType *ot)
ot->idname = "VIEW3D_OT_cursor3d";
/* api callbacks */
- ot->invoke = set_3dcursor_invoke;
+ ot->invoke = view3d_cursor3d_invoke;
ot->poll = ED_operator_view3d_active;
@@ -3596,7 +3735,7 @@ int ED_view3d_autodist(Scene *scene, ARegion *ar, View3D *v3d, const int mval[2]
return 1;
}
-int ED_view3d_autodist_init(Scene *scene, ARegion *ar, View3D *v3d, int mode) //, float *autodist )
+int ED_view3d_autodist_init(Scene *scene, ARegion *ar, View3D *v3d, int mode)
{
/* Get Z Depths, needed for perspective, nice for ortho */
switch (mode) {
@@ -3611,9 +3750,9 @@ int ED_view3d_autodist_init(Scene *scene, ARegion *ar, View3D *v3d, int mode) //
return 1;
}
-// no 4x4 sampling, run view_autodist_init first
+/* no 4x4 sampling, run view_autodist_init first */
int ED_view3d_autodist_simple(ARegion *ar, const int mval[2], float mouse_worldloc[3],
- int margin, float *force_depth) //, float *autodist )
+ int margin, float *force_depth)
{
bglMats mats; /* ZBuffer depth vars, could cache? */
float depth;
@@ -3645,7 +3784,7 @@ int ED_view3d_autodist_simple(ARegion *ar, const int mval[2], float mouse_worldl
return 1;
}
-int ED_view3d_autodist_depth(struct ARegion *ar, const int mval[2], int margin, float *depth)
+int ED_view3d_autodist_depth(ARegion *ar, const int mval[2], int margin, float *depth)
{
*depth = view_autodist_depth_margin(ar, mval, margin);
@@ -3654,7 +3793,7 @@ int ED_view3d_autodist_depth(struct ARegion *ar, const int mval[2], int margin,
static int depth_segment_cb(int x, int y, void *userData)
{
- struct { struct ARegion *ar; int margin; float depth; } *data = userData;
+ struct { ARegion *ar; int margin; float depth; } *data = userData;
int mval[2];
float depth;
@@ -3672,10 +3811,10 @@ static int depth_segment_cb(int x, int y, void *userData)
}
}
-int ED_view3d_autodist_depth_seg(struct ARegion *ar, const int mval_sta[2], const int mval_end[2],
+int ED_view3d_autodist_depth_seg(ARegion *ar, const int mval_sta[2], const int mval_end[2],
int margin, float *depth)
{
- struct { struct ARegion *ar; int margin; float depth; } data = {NULL};
+ struct { ARegion *ar; int margin; float depth; } data = {NULL};
int p1[2];
int p2[2];
@@ -3694,10 +3833,12 @@ int ED_view3d_autodist_depth_seg(struct ARegion *ar, const int mval_sta[2], cons
}
/**
- * Gets the view transformation from a camera
- * currently dosnt take camzoom into account
+ * Set the view transformation from a 4x4 matrix.
*
- * The dist is not modified for this function, if NULL its assumed zero
+ * \param mat The view 4x4 transformation matrix to assign.
+ * \param ofs The view offset, normally from RegionView3D.ofs.
+ * \param quat The view rotation, quaternion normally from RegionView3D.viewquat.
+ * \param dist The view distance from ofs, normally from RegionView3D.dist.
*/
void ED_view3d_from_m4(float mat[][4], float ofs[3], float quat[4], float *dist)
{
@@ -3728,6 +3869,14 @@ void ED_view3d_from_m4(float mat[][4], float ofs[3], float quat[4], float *dist)
}
}
+/**
+ * Calculate the view transformation matrix from RegionView3D input.
+ * The resulting matrix is equivalent to RegionView3D.viewinv
+ * \param mat The view 4x4 transformation matrix to calculate.
+ * \param ofs The view offset, normally from RegionView3D.ofs.
+ * \param quat The view rotation, quaternion normally from RegionView3D.viewquat.
+ * \param dist The view distance from ofs, normally from RegionView3D.dist.
+ */
void ED_view3d_to_m4(float mat[][4], const float ofs[3], const float quat[4], const float dist)
{
float iviewquat[4] = {-quat[0], quat[1], quat[2], quat[3]};
@@ -3738,8 +3887,14 @@ void ED_view3d_to_m4(float mat[][4], const float ofs[3], const float quat[4], co
sub_v3_v3v3(mat[3], dvec, ofs);
}
-
-/* object -> view */
+/**
+ * Set the RegionView3D members from an objects transformation and optionally lens.
+ * \param ob The object to set the view to.
+ * \param ofs The view offset to be set, normally from RegionView3D.ofs.
+ * \param quat The view rotation to be set, quaternion normally from RegionView3D.viewquat.
+ * \param dist The view distance from ofs to be set, normally from RegionView3D.dist.
+ * \param lens The view lens angle set for cameras and lamps, normally from View3D.lens.
+ */
void ED_view3d_from_object(Object *ob, float ofs[3], float quat[4], float *dist, float *lens)
{
ED_view3d_from_m4(ob->obmat, ofs, quat, dist);
@@ -3753,7 +3908,13 @@ void ED_view3d_from_object(Object *ob, float ofs[3], float quat[4], float *dist,
}
}
-/* view -> object */
+/**
+ * Set the object transformation from RegionView3D members.
+ * \param ob The object which has the transformation assigned.
+ * \param ofs The view offset, normally from RegionView3D.ofs.
+ * \param quat The view rotation, quaternion normally from RegionView3D.viewquat.
+ * \param dist The view distance from ofs, normally from RegionView3D.dist.
+ */
void ED_view3d_to_object(Object *ob, const float ofs[3], const float quat[4], const float dist)
{
float mat[4][4];
diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c
index 95cc37d9f87..c743b88e889 100644
--- a/source/blender/editors/space_view3d/view3d_fly.c
+++ b/source/blender/editors/space_view3d/view3d_fly.c
@@ -219,7 +219,7 @@ typedef struct FlyInfo {
} FlyInfo;
-static void drawFlyPixel(const struct bContext *UNUSED(C), struct ARegion *UNUSED(ar), void *arg)
+static void drawFlyPixel(const struct bContext *UNUSED(C), ARegion *UNUSED(ar), void *arg)
{
FlyInfo *fly = arg;
@@ -333,8 +333,9 @@ static int initFlyInfo(bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *event
upvec[2] = 0.0f;
copy_m3_m4(mat, fly->rv3d->viewinv);
mul_m3_v3(mat, upvec);
- if (fabs(upvec[2]) < 0.1)
+ if (fabsf(upvec[2]) < 0.1f) {
fly->zlock = 1;
+ }
upvec[0] = 0;
upvec[1] = 0;
upvec[2] = 0;
@@ -345,7 +346,6 @@ static int initFlyInfo(bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *event
/* check for flying ortho camera - which we cant support well
* we _could_ also check for an ortho camera but this is easier */
if ((fly->rv3d->persp == RV3D_CAMOB) &&
- (fly->v3d->camera != NULL) &&
(fly->rv3d->is_persp == FALSE))
{
((Camera *)fly->v3d->camera->data)->type = CAM_PERSP;
@@ -488,7 +488,7 @@ static void flyEvent(FlyInfo *fly, wmEvent *event)
else if (event->type == NDOF_MOTION) {
/* do these automagically get delivered? yes. */
// puts("ndof motion detected in fly mode!");
- // static const char* tag_name = "3D mouse position";
+ // static const char *tag_name = "3D mouse position";
wmNDOFMotionData *incoming_ndof = (wmNDOFMotionData *)event->customdata;
switch (incoming_ndof->progress) {
@@ -513,7 +513,7 @@ static void flyEvent(FlyInfo *fly, wmEvent *event)
}
break;
case P_FINISHING:
- // stop keeping track of 3D mouse position
+ /* stop keeping track of 3D mouse position */
#ifdef NDOF_FLY_DEBUG
puts("stop keeping track of 3D mouse position");
#endif
@@ -548,7 +548,7 @@ static void flyEvent(FlyInfo *fly, wmEvent *event)
time_wheel = (float)(time_currwheel - fly->time_lastwheel);
fly->time_lastwheel = time_currwheel;
/* Mouse wheel delays range from (0.5 == slow) to (0.01 == fast) */
- time_wheel = 1.0f + (10.0f - (20.0f * MIN2(time_wheel, 0.5f))); /* 0-0.5 -> 0-5.0 */
+ time_wheel = 1.0f + (10.0f - (20.0f * minf(time_wheel, 0.5f))); /* 0-0.5 -> 0-5.0 */
if (fly->speed < 0.0f) {
fly->speed = 0.0f;
@@ -566,7 +566,7 @@ static void flyEvent(FlyInfo *fly, wmEvent *event)
time_currwheel = PIL_check_seconds_timer();
time_wheel = (float)(time_currwheel - fly->time_lastwheel);
fly->time_lastwheel = time_currwheel;
- time_wheel = 1.0f + (10.0f - (20.0f * MIN2(time_wheel, 0.5f))); /* 0-0.5 -> 0-5.0 */
+ time_wheel = 1.0f + (10.0f - (20.0f * minf(time_wheel, 0.5f))); /* 0-0.5 -> 0-5.0 */
if (fly->speed > 0.0f) {
fly->speed = 0;
@@ -842,7 +842,7 @@ static int flyApply(bContext *C, FlyInfo *fly)
#endif
time_current = PIL_check_seconds_timer();
time_redraw = (float)(time_current - fly->time_lastdraw);
- time_redraw_clamped = MIN2(0.05f, time_redraw); /* clamp redraw time to avoid jitter in roll correction */
+ time_redraw_clamped = minf(0.05f, time_redraw); /* clamp redraw time to avoid jitter in roll correction */
fly->time_lastdraw = time_current;
/* Scale the time to use shift to scale the speed down- just like
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c
index eb202497260..b2ae63df662 100644
--- a/source/blender/editors/space_view3d/view3d_header.c
+++ b/source/blender/editors/space_view3d/view3d_header.c
@@ -84,25 +84,10 @@
* This can be cleaned when I make some new 'mode' icons.
*/
-/* view3d handler codes */
-#define VIEW3D_HANDLER_BACKGROUND 1
-#define VIEW3D_HANDLER_PROPERTIES 2
-#define VIEW3D_HANDLER_OBJECT 3
-#define VIEW3D_HANDLER_PREVIEW 4
-#define VIEW3D_HANDLER_MULTIRES 5
-#define VIEW3D_HANDLER_TRANSFORM 6
-#define VIEW3D_HANDLER_GREASEPENCIL 7
-#define VIEW3D_HANDLER_BONESKETCH 8
-
/* end XXX ************* */
static void do_view3d_header_buttons(bContext *C, void *arg, int event);
-#define B_SCENELOCK 101
-#define B_FULL 102
-#define B_HOME 103
-#define B_VIEWBUT 104
-#define B_PERSP 105
#define B_MODESELECT 108
#define B_SEL_VERT 110
#define B_SEL_EDGE 111
@@ -110,13 +95,10 @@ static void do_view3d_header_buttons(bContext *C, void *arg, int event);
#define B_MAN_TRANS 116
#define B_MAN_ROT 117
#define B_MAN_SCALE 118
-#define B_NDOF 119
#define B_MAN_MODE 120
-#define B_REDR 122
-#define B_NOP 123
-// XXX quickly ported across
-static void handle_view3d_lock(bContext *C)
+/* XXX quickly ported across */
+static void handle_view3d_lock(bContext *C)
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
@@ -346,10 +328,6 @@ static void do_view3d_header_buttons(bContext *C, void *UNUSED(arg), int event)
/* watch it: if sa->win does not exist, check that when calling direct drawing routines */
switch (event) {
- case B_REDR:
- ED_area_tag_redraw(sa);
- break;
-
case B_MODESELECT:
WM_operator_properties_create(&props_ptr, "OBJECT_OT_mode_set");
RNA_enum_set(&props_ptr, "mode", v3d->modeselect);
@@ -370,7 +348,7 @@ static void do_view3d_header_buttons(bContext *C, void *UNUSED(arg), int event)
case B_SEL_EDGE:
if (em) {
if (shift == 0 || em->selectmode == 0) {
- if ( (em->selectmode ^ SCE_SELECT_EDGE) == SCE_SELECT_VERTEX) {
+ if ((em->selectmode ^ SCE_SELECT_EDGE) == SCE_SELECT_VERTEX) {
if (ctrl) EDBM_selectmode_convert(em, SCE_SELECT_VERTEX, SCE_SELECT_EDGE);
}
em->selectmode = SCE_SELECT_EDGE;
@@ -384,7 +362,9 @@ static void do_view3d_header_buttons(bContext *C, void *UNUSED(arg), int event)
case B_SEL_FACE:
if (em) {
if (shift == 0 || em->selectmode == 0) {
- if ( ((ts->selectmode ^ SCE_SELECT_FACE) == SCE_SELECT_VERTEX) || ((ts->selectmode ^ SCE_SELECT_FACE) == SCE_SELECT_EDGE)) {
+ if (((ts->selectmode ^ SCE_SELECT_FACE) == SCE_SELECT_VERTEX) ||
+ ((ts->selectmode ^ SCE_SELECT_FACE) == SCE_SELECT_EDGE))
+ {
if (ctrl) EDBM_selectmode_convert(em, (ts->selectmode ^ SCE_SELECT_FACE), SCE_SELECT_FACE);
}
em->selectmode = SCE_SELECT_FACE;
@@ -414,9 +394,6 @@ static void do_view3d_header_buttons(bContext *C, void *UNUSED(arg), int event)
}
ED_area_tag_redraw(sa);
break;
- case B_NDOF:
- ED_area_tag_redraw(sa);
- break;
case B_MAN_MODE:
ED_area_tag_redraw(sa);
break;
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index 3c6a0dd4b9f..5bfabf4fc4a 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -79,6 +79,7 @@ void VIEW3D_OT_move(struct wmOperatorType *ot);
void VIEW3D_OT_rotate(struct wmOperatorType *ot);
void VIEW3D_OT_ndof_orbit(struct wmOperatorType *ot);
void VIEW3D_OT_ndof_pan(struct wmOperatorType *ot);
+void VIEW3D_OT_ndof_all(struct wmOperatorType *ot);
void VIEW3D_OT_view_all(struct wmOperatorType *ot);
void VIEW3D_OT_viewnumpad(struct wmOperatorType *ot);
void VIEW3D_OT_view_selected(struct wmOperatorType *ot);
@@ -173,8 +174,8 @@ void VIEW3D_OT_game_start(struct wmOperatorType *ot);
int ED_view3d_boundbox_clip(RegionView3D * rv3d, float obmat[][4], struct BoundBox *bb);
-void smooth_view(struct bContext *C, struct View3D *v3d, struct ARegion *ar, struct Object *, struct Object *,
- float *ofs, float *quat, float *dist, float *lens);
+void view3d_smooth_view(struct bContext *C, struct View3D *v3d, struct ARegion *ar, struct Object *, struct Object *,
+ float *ofs, float *quat, float *dist, float *lens);
void setwinmatrixview3d(ARegion *ar, View3D *v3d, rctf *rect); /* rect: for picking */
void setviewmatrixview3d(Scene *scene, View3D *v3d, RegionView3D *rv3d);
diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c
index 7b3e7358978..14c02c2357e 100644
--- a/source/blender/editors/space_view3d/view3d_ops.c
+++ b/source/blender/editors/space_view3d/view3d_ops.c
@@ -64,6 +64,7 @@ void view3d_operatortypes(void)
WM_operatortype_append(VIEW3D_OT_dolly);
WM_operatortype_append(VIEW3D_OT_ndof_orbit);
WM_operatortype_append(VIEW3D_OT_ndof_pan);
+ WM_operatortype_append(VIEW3D_OT_ndof_all);
WM_operatortype_append(VIEW3D_OT_view_all);
WM_operatortype_append(VIEW3D_OT_viewnumpad);
WM_operatortype_append(VIEW3D_OT_view_orbit);
@@ -221,8 +222,9 @@ void view3d_keymap(wmKeyConfig *keyconf)
RNA_boolean_set(kmi->ptr, "align_active", TRUE);
/* 3D mouse */
- WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_orbit", NDOF_MOTION, 0, 0, 0);
+ WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_orbit", NDOF_MOTION, 0, KM_CTRL, 0);
WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_pan", NDOF_MOTION, 0, KM_SHIFT, 0);
+ WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_all", NDOF_MOTION, 0, 0, 0);
WM_keymap_add_item(keymap, "VIEW3D_OT_view_selected", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_FRONT, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_FRONT);
RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", NDOF_BUTTON_BACK, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_BACK);
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index f9ebd4e39c1..5f0bb180711 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -61,13 +61,14 @@
#include "IMB_imbuf.h"
#include "BKE_global.h"
-#include "BKE_context.h"
-#include "BKE_paint.h"
#include "BKE_armature.h"
+#include "BKE_context.h"
#include "BKE_depsgraph.h"
-#include "BKE_tessmesh.h"
+#include "BKE_mball.h"
#include "BKE_movieclip.h"
#include "BKE_object.h"
+#include "BKE_paint.h"
+#include "BKE_tessmesh.h"
#include "BKE_tracking.h"
@@ -92,9 +93,9 @@
#include "UI_interface.h"
#include "UI_resources.h"
-#include "view3d_intern.h" // own include
+#include "view3d_intern.h" /* own include */
-// TODO: should return whether there is valid context to continue
+/* TODO: should return whether there is valid context to continue */
void view3d_set_viewcontext(bContext *C, ViewContext *vc)
{
memset(vc, 0, sizeof(ViewContext));
@@ -110,17 +111,18 @@ int view3d_get_view_aligned_coordinate(ViewContext *vc, float fp[3], const int m
{
float dvec[3];
int mval_cpy[2];
+ eV3DProjStatus ret;
mval_cpy[0] = mval[0];
mval_cpy[1] = mval[1];
- project_int_noclip(vc->ar, fp, mval_cpy);
+ ret = ED_view3d_project_int_global(vc->ar, fp, mval_cpy, V3D_PROJ_TEST_NOP);
initgrabz(vc->rv3d, fp[0], fp[1], fp[2]);
- if (mval_cpy[0] != IS_CLIPPED) {
- float mval_f[2];
- VECSUB2D(mval_f, mval_cpy, mval);
+ if (ret == V3D_PROJ_RET_OK) {
+ const float mval_f[2] = {(float)(mval_cpy[0] - mval[0]),
+ (float)(mval_cpy[1] - mval[1])};
ED_view3d_win_to_delta(vc->ar, mval_f, dvec);
sub_v3_v3(fp, dvec);
@@ -255,10 +257,33 @@ static void edbm_backbuf_check_and_select_tfaces(Mesh *me, int select)
typedef struct LassoSelectUserData {
ViewContext *vc;
- rcti *rect;
- int (*mcords)[2], moves, select, pass, done;
+ const rcti *rect;
+ const int (*mcords)[2];
+ int moves;
+ int select;
+
+ /* runtime */
+ int pass;
+ int is_done;
+ int is_change;
} LassoSelectUserData;
+static void view3d_userdata_lassoselect_init(LassoSelectUserData *r_data,
+ ViewContext *vc, const rcti *rect, const int (*mcords)[2],
+ const int moves, const int select)
+{
+ r_data->vc = vc;
+ r_data->rect = rect;
+ r_data->mcords = mcords;
+ r_data->moves = moves;
+ r_data->select = select;
+
+ /* runtime */
+ r_data->pass = 0;
+ r_data->is_done = FALSE;
+ r_data->is_change = FALSE;
+}
+
static int view3d_selectable_data(bContext *C)
{
Object *ob = CTX_data_active_object(C);
@@ -289,12 +314,12 @@ static int view3d_selectable_data(bContext *C)
/* helper also for borderselect */
-static int edge_fully_inside_rect(rcti *rect, short x1, short y1, short x2, short y2)
+static int edge_fully_inside_rect(const rcti *rect, int x1, int y1, int x2, int y2)
{
- return BLI_in_rcti(rect, x1, y1) && BLI_in_rcti(rect, x2, y2);
+ return BLI_rcti_isect_pt(rect, x1, y1) && BLI_rcti_isect_pt(rect, x2, y2);
}
-static int edge_inside_rect(rcti *rect, short x1, short y1, short x2, short y2)
+static int edge_inside_rect(const rcti *rect, int x1, int y1, int x2, int y2)
{
int d1, d2, d3, d4;
@@ -319,40 +344,70 @@ static int edge_inside_rect(rcti *rect, short x1, short y1, short x2, short y2)
return 1;
}
+static void do_lasso_select_pose__doSelectBone(void *userData, struct bPoseChannel *pchan, int x0, int y0, int x1, int y1)
+{
+ LassoSelectUserData *data = userData;
+ bArmature *arm = data->vc->obact->data;
-#define MOVES_GESTURE 50
-#define MOVES_LASSO 500
-
+ if (PBONE_SELECTABLE(arm, pchan->bone)) {
+ int is_point_done = FALSE;
+ int points_proj_tot = 0;
-/* warning; lasso select with backbuffer-check draws in backbuf with persp(PERSP_WIN)
- * and returns with persp(PERSP_VIEW). After lasso select backbuf is not OK
- */
-static void do_lasso_select_pose(ViewContext *vc, Object *ob, int mcords[][2], short moves, short select)
-{
- bPoseChannel *pchan;
- float vec[3];
- int sco1[2], sco2[2];
- bArmature *arm = ob->data;
-
- if ((ob->type != OB_ARMATURE) || (ob->pose == NULL)) return;
+ /* project head location to screenspace */
+ if (x0 != IS_CLIPPED) {
+ points_proj_tot++;
+ if (BLI_rcti_isect_pt(data->rect, x0, y0) &&
+ BLI_lasso_is_point_inside(data->mcords, data->moves, x0, y0, INT_MAX))
+ {
+ is_point_done = TRUE;
+ }
+ }
- for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) {
- if (PBONE_VISIBLE(arm, pchan->bone) && (pchan->bone->flag & BONE_UNSELECTABLE) == 0) {
- mul_v3_m4v3(vec, ob->obmat, pchan->pose_head);
- project_int(vc->ar, vec, sco1);
- mul_v3_m4v3(vec, ob->obmat, pchan->pose_tail);
- project_int(vc->ar, vec, sco2);
-
- if (BLI_lasso_is_edge_inside(mcords, moves, sco1[0], sco1[1], sco2[0], sco2[1], IS_CLIPPED)) {
- if (select) pchan->bone->flag |= BONE_SELECTED;
- else pchan->bone->flag &= ~BONE_SELECTED;
+ /* project tail location to screenspace */
+ if (x1 != IS_CLIPPED) {
+ points_proj_tot++;
+ if (BLI_rcti_isect_pt(data->rect, x1, y1) &&
+ BLI_lasso_is_point_inside(data->mcords, data->moves, x1, y1, INT_MAX))
+ {
+ is_point_done = TRUE;
}
}
+
+ /* if one of points selected, we skip the bone itself */
+ if ((is_point_done == TRUE) ||
+ ((is_point_done == FALSE) && (points_proj_tot == 2) &&
+ BLI_lasso_is_edge_inside(data->mcords, data->moves, x0, y0, x1, y1, INT_MAX)))
+ {
+ if (data->select) pchan->bone->flag |= BONE_SELECTED;
+ else pchan->bone->flag &= ~BONE_SELECTED;
+ data->is_change = TRUE;
+ }
+ data->is_change |= is_point_done;
}
+}
+static void do_lasso_select_pose(ViewContext *vc, Object *ob, const int mcords[][2], short moves, short select)
+{
+ LassoSelectUserData data;
+ rcti rect;
- if (arm->flag & ARM_HAS_VIZ_DEPS) {
- /* mask modifier ('armature' mode), etc. */
- DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
+ if ((ob->type != OB_ARMATURE) || (ob->pose == NULL)) {
+ return;
+ }
+
+ view3d_userdata_lassoselect_init(&data, vc, &rect, mcords, moves, select);
+
+ ED_view3d_init_mats_rv3d(vc->obact, vc->rv3d);
+
+ BLI_lasso_boundbox(&rect, mcords, moves);
+
+ pose_foreachScreenBone(vc, do_lasso_select_pose__doSelectBone, &data);
+
+ if (data.is_change) {
+ bArmature *arm = ob->data;
+ if (arm->flag & ARM_HAS_VIZ_DEPS) {
+ /* mask modifier ('armature' mode), etc. */
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
+ }
}
}
@@ -367,7 +422,7 @@ static void object_deselect_all_visible(Scene *scene, View3D *v3d)
}
}
-static void do_lasso_select_objects(ViewContext *vc, int mcords[][2], short moves, short extend, short select)
+static void do_lasso_select_objects(ViewContext *vc, const int mcords[][2], const short moves, short extend, short select)
{
Base *base;
@@ -376,7 +431,7 @@ static void do_lasso_select_objects(ViewContext *vc, int mcords[][2], short move
for (base = vc->scene->base.first; base; base = base->next) {
if (BASE_SELECTABLE(vc->v3d, base)) { /* use this to avoid un-needed lasso lookups */
- project_short(vc->ar, base->object->obmat[3], &base->sx);
+ ED_view3d_project_base(vc->ar, base);
if (BLI_lasso_is_point_inside(mcords, moves, base->sx, base->sy, IS_CLIPPED)) {
if (select) ED_base_object_select(base, BA_SELECT);
@@ -394,7 +449,7 @@ static void do_lasso_select_mesh__doSelectVert(void *userData, BMVert *eve, int
{
LassoSelectUserData *data = userData;
- if (BLI_in_rcti(data->rect, x, y) &&
+ if (BLI_rcti_isect_pt(data->rect, x, y) &&
BLI_lasso_is_point_inside(data->mcords, data->moves, x, y, IS_CLIPPED))
{
BM_vert_select_set(data->vc->em->bm, eve, data->select);
@@ -411,7 +466,7 @@ static void do_lasso_select_mesh__doSelectEdge(void *userData, BMEdge *eed, int
BLI_lasso_is_point_inside(data->mcords, data->moves, x1, y1, IS_CLIPPED))
{
BM_edge_select_set(data->vc->em->bm, eed, data->select);
- data->done = TRUE;
+ data->is_done = TRUE;
}
}
else {
@@ -425,14 +480,14 @@ static void do_lasso_select_mesh__doSelectFace(void *userData, BMFace *efa, int
{
LassoSelectUserData *data = userData;
- if (BLI_in_rcti(data->rect, x, y) &&
+ if (BLI_rcti_isect_pt(data->rect, x, y) &&
BLI_lasso_is_point_inside(data->mcords, data->moves, x, y, IS_CLIPPED))
{
BM_face_select_set(data->vc->em->bm, efa, data->select);
}
}
-static void do_lasso_select_mesh(ViewContext *vc, int mcords[][2], short moves, short extend, short select)
+static void do_lasso_select_mesh(ViewContext *vc, const int mcords[][2], short moves, short extend, short select)
{
LassoSelectUserData data;
ToolSettings *ts = vc->scene->toolsettings;
@@ -444,13 +499,7 @@ static void do_lasso_select_mesh(ViewContext *vc, int mcords[][2], short moves,
/* set editmesh */
vc->em = BMEdit_FromObject(vc->obedit);
- data.vc = vc;
- data.rect = &rect;
- data.mcords = mcords;
- data.moves = moves;
- data.select = select;
- data.done = FALSE;
- data.pass = 0;
+ view3d_userdata_lassoselect_init(&data, vc, &rect, mcords, moves, select);
if (extend == 0 && select)
EDBM_flag_disable_all(vc->em, BM_ELEM_SELECT);
@@ -474,7 +523,7 @@ static void do_lasso_select_mesh(ViewContext *vc, int mcords[][2], short moves,
data.pass = 0;
mesh_foreachScreenEdge(vc, do_lasso_select_mesh__doSelectEdge, &data, V3D_CLIP_TEST_OFF);
- if (data.done == 0) {
+ if (data.is_done == 0) {
data.pass = 1;
mesh_foreachScreenEdge(vc, do_lasso_select_mesh__doSelectEdge, &data, V3D_CLIP_TEST_OFF);
}
@@ -502,7 +551,7 @@ static void do_lasso_select_curve__doSelect(void *userData, Nurb *UNUSED(nu), BP
if (BLI_lasso_is_point_inside(data->mcords, data->moves, x, y, IS_CLIPPED)) {
if (bp) {
bp->f1 = data->select ? (bp->f1 | SELECT) : (bp->f1 & ~SELECT);
- if (bp == cu->lastsel && !(bp->f1 & 1)) cu->lastsel = NULL;
+ if (bp == cu->lastsel && !(bp->f1 & SELECT)) cu->lastsel = NULL;
}
else {
if (cu->drawflag & CU_HIDE_HANDLES) {
@@ -521,20 +570,16 @@ static void do_lasso_select_curve__doSelect(void *userData, Nurb *UNUSED(nu), BP
}
}
- if (bezt == cu->lastsel && !(bezt->f2 & 1)) cu->lastsel = NULL;
+ if (bezt == cu->lastsel && !(bezt->f2 & SELECT)) cu->lastsel = NULL;
}
}
}
-static void do_lasso_select_curve(ViewContext *vc, int mcords[][2], short moves, short extend, short select)
+static void do_lasso_select_curve(ViewContext *vc, const int mcords[][2], short moves, short extend, short select)
{
LassoSelectUserData data;
- /* set vc->editnurb */
- data.vc = vc;
- data.mcords = mcords;
- data.moves = moves;
- data.select = select;
+ view3d_userdata_lassoselect_init(&data, vc, NULL, mcords, moves, select);
if (extend == 0 && select)
CU_deselect_all(vc->obedit);
@@ -551,14 +596,11 @@ static void do_lasso_select_lattice__doSelect(void *userData, BPoint *bp, int x,
bp->f1 = data->select ? (bp->f1 | SELECT) : (bp->f1 & ~SELECT);
}
}
-static void do_lasso_select_lattice(ViewContext *vc, int mcords[][2], short moves, short extend, short select)
+static void do_lasso_select_lattice(ViewContext *vc, const int mcords[][2], short moves, short extend, short select)
{
LassoSelectUserData data;
- /* set editdata in vc */
- data.mcords = mcords;
- data.moves = moves;
- data.select = select;
+ view3d_userdata_lassoselect_init(&data, vc, NULL, mcords, moves, select);
if (extend == 0 && select)
ED_setflagsLatt(vc->obedit, 0);
@@ -567,86 +609,107 @@ static void do_lasso_select_lattice(ViewContext *vc, int mcords[][2], short move
lattice_foreachScreenVert(vc, do_lasso_select_lattice__doSelect, &data);
}
-static void do_lasso_select_armature(ViewContext *vc, int mcords[][2], short moves, short extend, short select)
+static void do_lasso_select_armature__doSelectBone(void *userData, struct EditBone *ebone, int x0, int y0, int x1, int y1)
{
- bArmature *arm = vc->obedit->data;
- EditBone *ebone;
- float vec[3];
- short sco1[2], sco2[2], didpoint;
- int change = FALSE;
+ LassoSelectUserData *data = userData;
+ bArmature *arm = data->vc->obedit->data;
- if (extend == 0 && select)
- ED_armature_deselect_all_visible(vc->obedit);
+ if (EBONE_SELECTABLE(arm, ebone)) {
+ int is_point_done = FALSE;
+ int points_proj_tot = 0;
- /* set editdata in vc */
-
- for (ebone = arm->edbo->first; ebone; ebone = ebone->next) {
- if (EBONE_VISIBLE(arm, ebone) && (ebone->flag & BONE_UNSELECTABLE) == 0) {
- mul_v3_m4v3(vec, vc->obedit->obmat, ebone->head);
- project_short(vc->ar, vec, sco1);
- mul_v3_m4v3(vec, vc->obedit->obmat, ebone->tail);
- project_short(vc->ar, vec, sco2);
-
- didpoint = 0;
- if (BLI_lasso_is_point_inside(mcords, moves, sco1[0], sco1[1], IS_CLIPPED)) {
- if (select) ebone->flag |= BONE_ROOTSEL;
- else ebone->flag &= ~BONE_ROOTSEL;
- didpoint = 1;
- change = TRUE;
- }
- if (BLI_lasso_is_point_inside(mcords, moves, sco2[0], sco2[1], IS_CLIPPED)) {
- if (select) ebone->flag |= BONE_TIPSEL;
- else ebone->flag &= ~BONE_TIPSEL;
- didpoint = 1;
- change = TRUE;
+ /* project head location to screenspace */
+ if (x0 != IS_CLIPPED) {
+ points_proj_tot++;
+ if (BLI_rcti_isect_pt(data->rect, x0, y0) &&
+ BLI_lasso_is_point_inside(data->mcords, data->moves, x0, y0, INT_MAX))
+ {
+ is_point_done = TRUE;
+ if (data->select) ebone->flag |= BONE_ROOTSEL;
+ else ebone->flag &= ~BONE_ROOTSEL;
}
- /* if one of points selected, we skip the bone itself */
- if (didpoint == 0 &&
- BLI_lasso_is_edge_inside(mcords, moves, sco1[0], sco1[1], sco2[0], sco2[1], IS_CLIPPED))
+ }
+
+ /* project tail location to screenspace */
+ if (x1 != IS_CLIPPED) {
+ points_proj_tot++;
+ if (BLI_rcti_isect_pt(data->rect, x1, y1) &&
+ BLI_lasso_is_point_inside(data->mcords, data->moves, x1, y1, INT_MAX))
{
- if (select) ebone->flag |= BONE_TIPSEL | BONE_ROOTSEL | BONE_SELECTED;
- else ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
- change = TRUE;
+ is_point_done = TRUE;
+ if (data->select) ebone->flag |= BONE_TIPSEL;
+ else ebone->flag &= ~BONE_TIPSEL;
}
}
+
+ /* if one of points selected, we skip the bone itself */
+ if ((is_point_done == FALSE) && (points_proj_tot == 2) &&
+ BLI_lasso_is_edge_inside(data->mcords, data->moves, x0, y0, x1, y1, INT_MAX))
+ {
+ if (data->select) ebone->flag |= (BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
+ else ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
+ data->is_change = TRUE;
+ }
+
+ data->is_change |= is_point_done;
}
-
- if (change) {
+}
+
+static void do_lasso_select_armature(ViewContext *vc, const int mcords[][2], short moves, short extend, short select)
+{
+ LassoSelectUserData data;
+ rcti rect;
+
+ view3d_userdata_lassoselect_init(&data, vc, &rect, mcords, moves, select);
+
+ ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d);
+
+ BLI_lasso_boundbox(&rect, mcords, moves);
+
+ if (extend == 0 && select)
+ ED_armature_deselect_all_visible(vc->obedit);
+
+ armature_foreachScreenBone(vc, do_lasso_select_armature__doSelectBone, &data);
+
+ if (data.is_change) {
+ bArmature *arm = vc->obedit->data;
ED_armature_sync_selection(arm->edbo);
ED_armature_validate_active(arm);
WM_main_add_notifier(NC_OBJECT | ND_BONE_SELECT, vc->obedit);
}
}
+static void do_lasso_select_mball__doSelectElem(void *userData, struct MetaElem *ml, int x, int y)
+{
+ LassoSelectUserData *data = userData;
-
-
-static void do_lasso_select_meta(ViewContext *vc, int mcords[][2], short moves, short extend, short select)
+ if (BLI_rcti_isect_pt(data->rect, x, y) &&
+ BLI_lasso_is_point_inside(data->mcords, data->moves, x, y, INT_MAX)) {
+ if (data->select) ml->flag |= SELECT;
+ else ml->flag &= ~SELECT;
+ data->is_change = TRUE;
+ }
+}
+static void do_lasso_select_meta(ViewContext *vc, const int mcords[][2], short moves, short extend, short select)
{
+ LassoSelectUserData data;
+ rcti rect;
+
MetaBall *mb = (MetaBall *)vc->obedit->data;
- MetaElem *ml;
- float vec[3];
- short sco[2];
- if (extend == 0 && select) {
- for (ml = mb->editelems->first; ml; ml = ml->next) {
- ml->flag &= ~SELECT;
- }
- }
+ if (extend == 0 && select)
+ BKE_mball_deselect_all(mb);
- for (ml = mb->editelems->first; ml; ml = ml->next) {
-
- mul_v3_m4v3(vec, vc->obedit->obmat, &ml->x);
- project_short(vc->ar, vec, sco);
+ view3d_userdata_lassoselect_init(&data, vc, &rect, mcords, moves, select);
- if (BLI_lasso_is_point_inside(mcords, moves, sco[0], sco[1], IS_CLIPPED)) {
- if (select) ml->flag |= SELECT;
- else ml->flag &= ~SELECT;
- }
- }
+ ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d);
+
+ BLI_lasso_boundbox(&rect, mcords, moves);
+
+ mball_foreachScreenElem(vc, do_lasso_select_mball__doSelectElem, &data);
}
-int do_paintvert_box_select(ViewContext *vc, rcti *rect, int select, int extend)
+static int do_paintvert_box_select(ViewContext *vc, rcti *rect, int select, int extend)
{
Mesh *me;
MVert *mvert;
@@ -654,8 +717,8 @@ int do_paintvert_box_select(ViewContext *vc, rcti *rect, int select, int extend)
unsigned int *rt;
int a, index;
char *selar;
- int sx = rect->xmax - rect->xmin + 1;
- int sy = rect->ymax - rect->ymin + 1;
+ int sx = BLI_rcti_size_x(rect) + 1;
+ int sy = BLI_rcti_size_y(rect) + 1;
me = vc->obact->data;
@@ -705,7 +768,7 @@ int do_paintvert_box_select(ViewContext *vc, rcti *rect, int select, int extend)
return OPERATOR_FINISHED;
}
-static void do_lasso_select_paintvert(ViewContext *vc, int mcords[][2], short moves, short extend, short select)
+static void do_lasso_select_paintvert(ViewContext *vc, const int mcords[][2], short moves, short extend, short select)
{
Object *ob = vc->obact;
Mesh *me = ob ? ob->data : NULL;
@@ -727,7 +790,7 @@ static void do_lasso_select_paintvert(ViewContext *vc, int mcords[][2], short mo
paintvert_flush_flags(ob);
}
-static void do_lasso_select_paintface(ViewContext *vc, int mcords[][2], short moves, short extend, short select)
+static void do_lasso_select_paintface(ViewContext *vc, const int mcords[][2], short moves, short extend, short select)
{
Object *ob = vc->obact;
Mesh *me = ob ? ob->data : NULL;
@@ -758,19 +821,18 @@ static void do_lasso_select_node(int mcords[][2], short moves, short select)
bNode *node;
rcti rect;
- short node_cent[2];
+ int node_cent[2];
float node_centf[2];
BLI_lasso_boundbox(&rect, mcords, moves);
/* store selection in temp test flag */
for (node = snode->edittree->nodes.first; node; node = node->next) {
-
- node_centf[0] = (node->totr.xmin + node->totr.xmax) / 2;
- node_centf[1] = (node->totr.ymin + node->totr.ymax) / 2;
+ node_centf[0] = BLI_RCT_CENTER_X(&node->totr);
+ node_centf[1] = BLI_RCT_CENTER_Y(&node->totr);
ipoco_to_areaco_noclip(G.v2d, node_centf, node_cent);
- if (BLI_in_rcti(&rect, node_cent[0], node_cent[1]) && BLI_lasso_is_point_inside(mcords, moves, node_cent[0], node_cent[1])) {
+ if (BLI_rcti_isect_pt_v(&rect, node_cent) && BLI_lasso_is_point_inside(mcords, moves, node_cent[0], node_cent[1])) {
if (select) {
node->flag |= SELECT;
}
@@ -783,7 +845,9 @@ static void do_lasso_select_node(int mcords[][2], short moves, short select)
}
#endif
-static void view3d_lasso_select(bContext *C, ViewContext *vc, int mcords[][2], short moves, short extend, short select)
+static void view3d_lasso_select(bContext *C, ViewContext *vc,
+ const int mcords[][2], short moves,
+ short extend, short select)
{
Object *ob = CTX_data_active_object(C);
@@ -834,7 +898,7 @@ static int view3d_lasso_select_exec(bContext *C, wmOperator *op)
{
ViewContext vc;
int mcords_tot;
- int (*mcords)[2] = WM_gesture_lasso_path_to_array(C, op, &mcords_tot);
+ const int (*mcords)[2] = WM_gesture_lasso_path_to_array(C, op, &mcords_tot);
if (mcords) {
short extend, select;
@@ -1065,8 +1129,7 @@ static Base *object_mouse_select_menu(bContext *C, ViewContext *vc, unsigned int
}
else {
int temp, dist = 15;
-
- project_short(vc->ar, base->object->obmat[3], &base->sx);
+ ED_view3d_project_base(vc->ar, base);
temp = abs(base->sx - mval[0]) + abs(base->sy - mval[1]);
if (temp < dist)
@@ -1130,19 +1193,19 @@ static short mixed_bones_object_selectbuffer(ViewContext *vc, unsigned int *buff
short a, hits15, hits9 = 0, hits5 = 0;
short has_bones15 = 0, has_bones9 = 0, has_bones5 = 0;
- BLI_init_rcti(&rect, mval[0] - 14, mval[0] + 14, mval[1] - 14, mval[1] + 14);
+ BLI_rcti_init(&rect, mval[0] - 14, mval[0] + 14, mval[1] - 14, mval[1] + 14);
hits15 = view3d_opengl_select(vc, buffer, MAXPICKBUF, &rect);
if (hits15 > 0) {
for (a = 0; a < hits15; a++) if (buffer[4 * a + 3] & 0xFFFF0000) has_bones15 = 1;
offs = 4 * hits15;
- BLI_init_rcti(&rect, mval[0] - 9, mval[0] + 9, mval[1] - 9, mval[1] + 9);
+ BLI_rcti_init(&rect, mval[0] - 9, mval[0] + 9, mval[1] - 9, mval[1] + 9);
hits9 = view3d_opengl_select(vc, buffer + offs, MAXPICKBUF - offs, &rect);
if (hits9 > 0) {
for (a = 0; a < hits9; a++) if (buffer[offs + 4 * a + 3] & 0xFFFF0000) has_bones9 = 1;
offs += 4 * hits9;
- BLI_init_rcti(&rect, mval[0] - 5, mval[0] + 5, mval[1] - 5, mval[1] + 5);
+ BLI_rcti_init(&rect, mval[0] - 5, mval[0] + 5, mval[1] - 5, mval[1] + 5);
hits5 = view3d_opengl_select(vc, buffer + offs, MAXPICKBUF - offs, &rect);
if (hits5 > 0) {
for (a = 0; a < hits5; a++) if (buffer[offs + 4 * a + 3] & 0xFFFF0000) has_bones5 = 1;
@@ -1347,8 +1410,7 @@ static int mouse_select(bContext *C, const int mval[2], short extend, short dese
base = startbase;
while (base) {
if (BASE_SELECTABLE(v3d, base)) {
- project_short(ar, base->object->obmat[3], &base->sx);
-
+ ED_view3d_project_base(ar, base);
temp = abs(base->sx - mval[0]) + abs(base->sy - mval[1]);
if (base == BASACT) temp += 10;
if (temp < dist) {
@@ -1401,7 +1463,7 @@ static int mouse_select(bContext *C, const int mval[2], short extend, short dese
}
/* index of bundle is 1<<16-based. if there's no "bone" index
- * in hight word, this buffer value belongs to camera,. not to bundle */
+ * in height word, this buffer value belongs to camera,. not to bundle */
if (buffer[4 * i + 3] & 0xFFFF0000) {
MovieClip *clip = BKE_object_movieclip_get(scene, basact->object, 0);
MovieTracking *tracking = &clip->tracking;
@@ -1444,7 +1506,8 @@ static int mouse_select(bContext *C, const int mval[2], short extend, short dese
}
}
}
- else if (ED_do_pose_selectbuffer(scene, basact, buffer, hits, extend, deselect, toggle) ) { /* then bone is found */
+ else if (ED_do_pose_selectbuffer(scene, basact, buffer, hits, extend, deselect, toggle) ) {
+ /* then bone is found */
/* we make the armature selected:
* not-selected active object in posemode won't work well for tools */
@@ -1519,30 +1582,50 @@ static int mouse_select(bContext *C, const int mval[2], short extend, short dese
typedef struct BoxSelectUserData {
ViewContext *vc;
- rcti *rect;
- int select, pass, done;
+ const rcti *rect;
+ int select;
+
+ /* runtime */
+ int pass;
+ int is_done;
+ int is_change;
} BoxSelectUserData;
-int edge_inside_circle(short centx, short centy, short rad, short x1, short y1, short x2, short y2)
+static void view3d_userdata_boxselect_init(BoxSelectUserData *r_data,
+ ViewContext *vc, const rcti *rect, const int select)
{
- int radsq = rad * rad;
- float v1[2], v2[2], v3[2];
-
+ r_data->vc = vc;
+ r_data->rect = rect;
+ r_data->select = select;
+
+ /* runtime */
+ r_data->pass = 0;
+ r_data->is_done = FALSE;
+ r_data->is_change = FALSE;
+}
+
+int edge_inside_circle(int centx, int centy, int radius, int x1, int y1, int x2, int y2)
+{
+ int radius_squared = radius * radius;
+
/* check points in circle itself */
- if ( (x1 - centx) * (x1 - centx) + (y1 - centy) * (y1 - centy) <= radsq) return 1;
- if ( (x2 - centx) * (x2 - centx) + (y2 - centy) * (y2 - centy) <= radsq) return 1;
-
- /* pointdistline */
- v3[0] = centx;
- v3[1] = centy;
- v1[0] = x1;
- v1[1] = y1;
- v2[0] = x2;
- v2[1] = y2;
-
- if (dist_to_line_segment_v2(v3, v1, v2) < (float)rad) return 1;
-
- return 0;
+ if ((x1 - centx) * (x1 - centx) + (y1 - centy) * (y1 - centy) <= radius_squared) {
+ return TRUE;
+ }
+ else if ((x2 - centx) * (x2 - centx) + (y2 - centy) * (y2 - centy) <= radius_squared) {
+ return TRUE;
+ }
+ else {
+ const float cent[2] = {centx, centy};
+ const float v1[2] = {x1, y1};
+ const float v2[2] = {x2, y2};
+ /* pointdistline */
+ if (dist_squared_to_line_segment_v2(cent, v1, v2) < (float)radius_squared) {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
}
static void do_nurbs_box_select__doSelect(void *userData, Nurb *UNUSED(nu), BPoint *bp, BezTriple *bezt, int beztindex, int x, int y)
@@ -1551,10 +1634,10 @@ static void do_nurbs_box_select__doSelect(void *userData, Nurb *UNUSED(nu), BPoi
Object *obedit = data->vc->obedit;
Curve *cu = (Curve *)obedit->data;
- if (BLI_in_rcti(data->rect, x, y)) {
+ if (BLI_rcti_isect_pt(data->rect, x, y)) {
if (bp) {
bp->f1 = data->select ? (bp->f1 | SELECT) : (bp->f1 & ~SELECT);
- if (bp == cu->lastsel && !(bp->f1 & 1)) cu->lastsel = NULL;
+ if (bp == cu->lastsel && !(bp->f1 & SELECT)) cu->lastsel = NULL;
}
else {
if (cu->drawflag & CU_HIDE_HANDLES) {
@@ -1573,7 +1656,7 @@ static void do_nurbs_box_select__doSelect(void *userData, Nurb *UNUSED(nu), BPoi
}
}
- if (bezt == cu->lastsel && !(bezt->f2 & 1)) cu->lastsel = NULL;
+ if (bezt == cu->lastsel && !(bezt->f2 & SELECT)) cu->lastsel = NULL;
}
}
}
@@ -1581,9 +1664,7 @@ static int do_nurbs_box_select(ViewContext *vc, rcti *rect, int select, int exte
{
BoxSelectUserData data;
- data.vc = vc;
- data.rect = rect;
- data.select = select;
+ view3d_userdata_boxselect_init(&data, vc, rect, select);
if (extend == 0 && select)
CU_deselect_all(vc->obedit);
@@ -1598,7 +1679,7 @@ static void do_lattice_box_select__doSelect(void *userData, BPoint *bp, int x, i
{
BoxSelectUserData *data = userData;
- if (BLI_in_rcti(data->rect, x, y)) {
+ if (BLI_rcti_isect_pt(data->rect, x, y)) {
bp->f1 = data->select ? (bp->f1 | SELECT) : (bp->f1 & ~SELECT);
}
}
@@ -1606,9 +1687,7 @@ static int do_lattice_box_select(ViewContext *vc, rcti *rect, int select, int ex
{
BoxSelectUserData data;
- data.vc = vc;
- data.rect = rect;
- data.select = select;
+ view3d_userdata_boxselect_init(&data, vc, rect, select);
if (extend == 0 && select)
ED_setflagsLatt(vc->obedit, 0);
@@ -1623,7 +1702,7 @@ static void do_mesh_box_select__doSelectVert(void *userData, BMVert *eve, int x,
{
BoxSelectUserData *data = userData;
- if (BLI_in_rcti(data->rect, x, y)) {
+ if (BLI_rcti_isect_pt(data->rect, x, y)) {
BM_vert_select_set(data->vc->em->bm, eve, data->select);
}
}
@@ -1635,7 +1714,7 @@ static void do_mesh_box_select__doSelectEdge(void *userData, BMEdge *eed, int x0
if (data->pass == 0) {
if (edge_fully_inside_rect(data->rect, x0, y0, x1, y1)) {
BM_edge_select_set(data->vc->em->bm, eed, data->select);
- data->done = TRUE;
+ data->is_done = TRUE;
}
}
else {
@@ -1649,7 +1728,7 @@ static void do_mesh_box_select__doSelectFace(void *userData, BMFace *efa, int x,
{
BoxSelectUserData *data = userData;
- if (BLI_in_rcti(data->rect, x, y)) {
+ if (BLI_rcti_isect_pt(data->rect, x, y)) {
BM_face_select_set(data->vc->em->bm, efa, data->select);
}
}
@@ -1659,11 +1738,7 @@ static int do_mesh_box_select(ViewContext *vc, rcti *rect, int select, int exten
ToolSettings *ts = vc->scene->toolsettings;
int bbsel;
- data.vc = vc;
- data.rect = rect;
- data.select = select;
- data.pass = 0;
- data.done = FALSE;
+ view3d_userdata_boxselect_init(&data, vc, rect, select);
if (extend == 0 && select)
EDBM_flag_disable_all(vc->em, BM_ELEM_SELECT);
@@ -1688,7 +1763,7 @@ static int do_mesh_box_select(ViewContext *vc, rcti *rect, int select, int exten
data.pass = 0;
mesh_foreachScreenEdge(vc, do_mesh_box_select__doSelectEdge, &data, V3D_CLIP_TEST_OFF);
- if (data.done == 0) {
+ if (data.is_done == 0) {
data.pass = 1;
mesh_foreachScreenEdge(vc, do_mesh_box_select__doSelectEdge, &data, V3D_CLIP_TEST_OFF);
}
@@ -1721,11 +1796,8 @@ static int do_meta_box_select(ViewContext *vc, rcti *rect, int select, int exten
hits = view3d_opengl_select(vc, buffer, MAXPICKBUF, rect);
- if (extend == 0 && select) {
- for (ml = mb->editelems->first; ml; ml = ml->next) {
- ml->flag &= ~SELECT;
- }
- }
+ if (extend == 0 && select)
+ BKE_mball_deselect_all(mb);
for (ml = mb->editelems->first; ml; ml = ml->next) {
for (a = 0; a < hits; a++) {
@@ -1825,7 +1897,7 @@ static int do_object_pose_box_select(bContext *C, ViewContext *vc, rcti *rect, i
unsigned int *col; /* color in buffer */
int bone_only;
int bone_selected = 0;
- int totobj = MAXPICKBUF; // XXX solve later
+ int totobj = MAXPICKBUF; /* XXX solve later */
short hits;
if ((ob) && (ob->mode & OB_MODE_POSE))
@@ -1938,10 +2010,7 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op)
view3d_set_viewcontext(C, &vc);
select = (RNA_int_get(op->ptr, "gesture_mode") == GESTURE_MODAL_SELECT);
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
extend = RNA_boolean_get(op->ptr, "extend");
if (vc.obedit) {
@@ -2029,36 +2098,6 @@ void VIEW3D_OT_select_border(wmOperatorType *ot)
WM_operator_properties_gesture_border(ot, TRUE);
}
-/* much like facesel_face_pick()*/
-/* returns 0 if not found, otherwise 1 */
-static int vertsel_vert_pick(struct bContext *C, Mesh *me, const int mval[2], unsigned int *index, int size)
-{
- ViewContext vc;
- view3d_set_viewcontext(C, &vc);
-
- if (!me || me->totvert == 0)
- return 0;
-
- if (size > 0) {
- /* sample rect to increase changes of selecting, so that when clicking
- * on an face in the backbuf, we can still select a vert */
-
- int dist;
- *index = view3d_sample_backbuf_rect(&vc, mval, size, 1, me->totvert + 1, &dist, 0, NULL, NULL);
- }
- else {
- /* sample only on the exact position */
- *index = view3d_sample_backbuf(&vc, mval[0], mval[1]);
- }
-
- if ((*index) <= 0 || (*index) > (unsigned int)me->totvert)
- return 0;
-
- (*index)--;
-
- return 1;
-}
-
/* mouse selection in weight paint */
/* gets called via generic mouse select operator */
static int mouse_weight_paint_vertex_select(bContext *C, const int mval[2], short extend, short deselect, short toggle, Object *obact)
@@ -2067,8 +2106,8 @@ static int mouse_weight_paint_vertex_select(bContext *C, const int mval[2], shor
unsigned int index = 0;
MVert *mv;
- if (vertsel_vert_pick(C, me, mval, &index, 50)) {
- mv = me->mvert + index;
+ if (ED_mesh_pick_vert(C, me, mval, &index, ED_MESH_PICK_DEFAULT_VERT_SIZE)) {
+ mv = &me->mvert[index];
if (extend) {
mv->flag |= SELECT;
}
@@ -2118,7 +2157,7 @@ static int view3d_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
if (obedit && object == FALSE) {
if (obedit->type == OB_MESH)
- retval = mouse_mesh(C, event->mval, extend, deselect, toggle);
+ retval = EDBM_select_pick(C, event->mval, extend, deselect, toggle);
else if (obedit->type == OB_ARMATURE)
retval = mouse_armature(C, event->mval, extend, deselect, toggle);
else if (obedit->type == OB_LATTICE)
@@ -2179,15 +2218,32 @@ typedef struct CircleSelectUserData {
short select;
int mval[2];
float radius;
+ float radius_squared;
+
+ /* runtime */
+ int is_change;
} CircleSelectUserData;
+static void view3d_userdata_circleselect_init(CircleSelectUserData *r_data,
+ ViewContext *vc, const int select, const int mval[2], const float rad)
+{
+ r_data->vc = vc;
+ r_data->select = select;
+ copy_v2_v2_int(r_data->mval, mval);
+ r_data->radius = rad;
+ r_data->radius_squared = rad * rad;
+
+ /* runtime */
+ r_data->is_change = FALSE;
+}
+
static void mesh_circle_doSelectVert(void *userData, BMVert *eve, int x, int y, int UNUSED(index))
{
CircleSelectUserData *data = userData;
- int mx = x - data->mval[0], my = y - data->mval[1];
- float r = sqrt(mx * mx + my * my);
+ const float delta[2] = {(float)(x - data->mval[0]),
+ (float)(y - data->mval[1])};
- if (r <= data->radius) {
+ if (len_squared_v2(delta) <= data->radius_squared) {
BM_vert_select_set(data->vc->em->bm, eve, data->select);
}
}
@@ -2195,17 +2251,17 @@ static void mesh_circle_doSelectEdge(void *userData, BMEdge *eed, int x0, int y0
{
CircleSelectUserData *data = userData;
- if (edge_inside_circle(data->mval[0], data->mval[1], (short) data->radius, x0, y0, x1, y1)) {
+ if (edge_inside_circle(data->mval[0], data->mval[1], (int)data->radius, x0, y0, x1, y1)) {
BM_edge_select_set(data->vc->em->bm, eed, data->select);
}
}
static void mesh_circle_doSelectFace(void *userData, BMFace *efa, int x, int y, int UNUSED(index))
{
CircleSelectUserData *data = userData;
- int mx = x - data->mval[0], my = y - data->mval[1];
- float r = sqrt(mx * mx + my * my);
-
- if (r <= data->radius) {
+ const float delta[2] = {(float)(x - data->mval[0]),
+ (float)(y - data->mval[1])};
+
+ if (len_squared_v2(delta) <= data->radius_squared) {
BM_face_select_set(data->vc->em->bm, efa, data->select);
}
}
@@ -2221,11 +2277,7 @@ static void mesh_circle_select(ViewContext *vc, int select, const int mval[2], f
vc->em = BMEdit_FromObject(vc->obedit);
- data.vc = vc;
- data.select = select;
- data.mval[0] = mval[0];
- data.mval[1] = mval[1];
- data.radius = rad;
+ view3d_userdata_circleselect_init(&data, vc, select, mval, rad);
if (ts->selectmode & SCE_SELECT_VERTEX) {
if (bbsel) {
@@ -2270,6 +2322,7 @@ static void paint_facesel_circle_select(ViewContext *vc, int select, const int m
/* bbsel= */ /* UNUSED */ EDBM_backbuf_circle_init(vc, mval[0], mval[1], (short)(rad + 1.0f));
edbm_backbuf_check_and_select_tfaces(me, select == LEFTMOUSE);
EDBM_backbuf_free();
+ paintface_flush_flags(ob);
}
}
@@ -2295,16 +2348,17 @@ static void paint_vertsel_circle_select(ViewContext *vc, int select, const int m
static void nurbscurve_circle_doSelect(void *userData, Nurb *UNUSED(nu), BPoint *bp, BezTriple *bezt, int beztindex, int x, int y)
{
CircleSelectUserData *data = userData;
- int mx = x - data->mval[0], my = y - data->mval[1];
- float r = sqrt(mx * mx + my * my);
Object *obedit = data->vc->obedit;
Curve *cu = (Curve *)obedit->data;
- if (r <= data->radius) {
+ const float delta[2] = {(float)(x - data->mval[0]),
+ (float)(y - data->mval[1])};
+
+ if (len_squared_v2(delta) <= data->radius_squared) {
if (bp) {
bp->f1 = data->select ? (bp->f1 | SELECT) : (bp->f1 & ~SELECT);
- if (bp == cu->lastsel && !(bp->f1 & 1)) cu->lastsel = NULL;
+ if (bp == cu->lastsel && !(bp->f1 & SELECT)) cu->lastsel = NULL;
}
else {
if (cu->drawflag & CU_HIDE_HANDLES) {
@@ -2323,7 +2377,7 @@ static void nurbscurve_circle_doSelect(void *userData, Nurb *UNUSED(nu), BPoint
}
}
- if (bezt == cu->lastsel && !(bezt->f2 & 1)) cu->lastsel = NULL;
+ if (bezt == cu->lastsel && !(bezt->f2 & SELECT)) cu->lastsel = NULL;
}
}
}
@@ -2331,13 +2385,7 @@ static void nurbscurve_circle_select(ViewContext *vc, int select, const int mval
{
CircleSelectUserData data;
- /* set vc-> edit data */
-
- data.select = select;
- data.mval[0] = mval[0];
- data.mval[1] = mval[1];
- data.radius = rad;
- data.vc = vc;
+ view3d_userdata_circleselect_init(&data, vc, select, mval, rad);
ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */
nurbs_foreachScreenVert(vc, nurbscurve_circle_doSelect, &data);
@@ -2347,10 +2395,10 @@ static void nurbscurve_circle_select(ViewContext *vc, int select, const int mval
static void latticecurve_circle_doSelect(void *userData, BPoint *bp, int x, int y)
{
CircleSelectUserData *data = userData;
- int mx = x - data->mval[0], my = y - data->mval[1];
- float r = sqrt(mx * mx + my * my);
+ const float delta[2] = {(float)(x - data->mval[0]),
+ (float)(y - data->mval[1])};
- if (r <= data->radius) {
+ if (len_squared_v2(delta) <= data->radius_squared) {
bp->f1 = data->select ? (bp->f1 | SELECT) : (bp->f1 & ~SELECT);
}
}
@@ -2358,26 +2406,21 @@ static void lattice_circle_select(ViewContext *vc, int select, const int mval[2]
{
CircleSelectUserData data;
- /* set vc-> edit data */
-
- data.select = select;
- data.mval[0] = mval[0];
- data.mval[1] = mval[1];
- data.radius = rad;
+ view3d_userdata_circleselect_init(&data, vc, select, mval, rad);
ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */
lattice_foreachScreenVert(vc, latticecurve_circle_doSelect, &data);
}
-// NOTE: pose-bone case is copied from editbone case...
+/* NOTE: pose-bone case is copied from editbone case... */
static short pchan_circle_doSelectJoint(void *userData, bPoseChannel *pchan, int x, int y)
{
CircleSelectUserData *data = userData;
- int mx = x - data->mval[0], my = y - data->mval[1];
- float r = sqrt(mx * mx + my * my);
-
- if (r <= data->radius) {
+ const float delta[2] = {(float)(x - data->mval[0]),
+ (float)(y - data->mval[1])};
+
+ if (len_squared_v2(delta) <= data->radius_squared) {
if (data->select)
pchan->bone->flag |= BONE_SELECTED;
else
@@ -2386,63 +2429,78 @@ static short pchan_circle_doSelectJoint(void *userData, bPoseChannel *pchan, int
}
return 0;
}
+static void do_circle_select_pose__doSelectBone(void *userData, struct bPoseChannel *pchan, int x0, int y0, int x1, int y1)
+{
+ CircleSelectUserData *data = userData;
+ bArmature *arm = data->vc->obact->data;
+
+ if (PBONE_SELECTABLE(arm, pchan->bone)) {
+ int is_point_done = FALSE;
+ int points_proj_tot = 0;
+
+ /* project head location to screenspace */
+ if (x0 != IS_CLIPPED) {
+ points_proj_tot++;
+ if (pchan_circle_doSelectJoint(data, pchan, x0, y0)) {
+ is_point_done = TRUE;
+ }
+ }
+
+ /* project tail location to screenspace */
+ if (x1 != IS_CLIPPED) {
+ points_proj_tot++;
+ if (pchan_circle_doSelectJoint(data, pchan, x1, y1)) {
+ is_point_done = TRUE;
+ }
+ }
+
+ /* check if the head and/or tail is in the circle
+ * - the call to check also does the selection already
+ */
+
+ /* only if the endpoints didn't get selected, deal with the middle of the bone too
+ * It works nicer to only do this if the head or tail are not in the circle,
+ * otherwise there is no way to circle select joints alone */
+ if ((is_point_done == FALSE) && (points_proj_tot == 2) &&
+ edge_inside_circle(data->mval[0], data->mval[1], data->radius, x0, y0, x1, y1))
+ {
+ if (data->select) pchan->bone->flag |= BONE_SELECTED;
+ else pchan->bone->flag &= ~BONE_SELECTED;
+ data->is_change = TRUE;
+ }
+
+ data->is_change |= is_point_done;
+ }
+}
static void pose_circle_select(ViewContext *vc, int select, const int mval[2], float rad)
{
CircleSelectUserData data;
- bArmature *arm = vc->obact->data;
- bPose *pose = vc->obact->pose;
- bPoseChannel *pchan;
- int change = FALSE;
- /* set vc->edit data */
- data.select = select;
- data.mval[0] = mval[0];
- data.mval[1] = mval[1];
- data.radius = rad;
+ view3d_userdata_circleselect_init(&data, vc, select, mval, rad);
ED_view3d_init_mats_rv3d(vc->obact, vc->rv3d); /* for foreach's screen/vert projection */
- /* check each PoseChannel... */
- // TODO: could be optimized at some point
- for (pchan = pose->chanbase.first; pchan; pchan = pchan->next) {
- short sco1[2], sco2[2], didpoint = 0;
- float vec[3];
-
- /* skip invisible bones */
- if (PBONE_VISIBLE(arm, pchan->bone) == 0)
- continue;
-
- /* project head location to screenspace */
- mul_v3_m4v3(vec, vc->obact->obmat, pchan->pose_head);
- project_short(vc->ar, vec, sco1);
-
- /* project tail location to screenspace */
- mul_v3_m4v3(vec, vc->obact->obmat, pchan->pose_tail);
- project_short(vc->ar, vec, sco2);
-
- /* check if the head and/or tail is in the circle
- * - the call to check also does the selection already
- */
- if (pchan_circle_doSelectJoint(&data, pchan, sco1[0], sco1[1]))
- didpoint = 1;
- if (pchan_circle_doSelectJoint(&data, pchan, sco2[0], sco2[1]))
- didpoint = 1;
-
- change |= didpoint;
- }
+ pose_foreachScreenBone(vc, do_circle_select_pose__doSelectBone, &data);
+
+ if (data.is_change) {
+ bArmature *arm = vc->obact->data;
- if (change) {
WM_main_add_notifier(NC_OBJECT | ND_BONE_SELECT, vc->obact);
+
+ if (arm->flag & ARM_HAS_VIZ_DEPS) {
+ /* mask modifier ('armature' mode), etc. */
+ DAG_id_tag_update(&vc->obact->id, OB_RECALC_DATA);
+ }
}
}
static short armature_circle_doSelectJoint(void *userData, EditBone *ebone, int x, int y, short head)
{
CircleSelectUserData *data = userData;
- int mx = x - data->mval[0], my = y - data->mval[1];
- float r = sqrt(mx * mx + my * my);
+ const float delta[2] = {(float)(x - data->mval[0]),
+ (float)(y - data->mval[1])};
- if (r <= data->radius) {
+ if (len_squared_v2(delta) <= data->radius_squared) {
if (head) {
if (data->select)
ebone->flag |= BONE_ROOTSEL;
@@ -2459,63 +2517,90 @@ static short armature_circle_doSelectJoint(void *userData, EditBone *ebone, int
}
return 0;
}
-static void armature_circle_select(ViewContext *vc, int select, const int mval[2], float rad)
+static void do_circle_select_armature__doSelectBone(void *userData, struct EditBone *ebone, int x0, int y0, int x1, int y1)
{
- CircleSelectUserData data;
- bArmature *arm = vc->obedit->data;
- EditBone *ebone;
- int change = FALSE;
-
- /* set vc->edit data */
- data.select = select;
- data.mval[0] = mval[0];
- data.mval[1] = mval[1];
- data.radius = rad;
+ CircleSelectUserData *data = userData;
+ bArmature *arm = data->vc->obedit->data;
+
+ if (EBONE_SELECTABLE(arm, ebone)) {
+ int is_point_done = FALSE;
+ int points_proj_tot = 0;
- ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */
-
- /* check each EditBone... */
- // TODO: could be optimized at some point
- for (ebone = arm->edbo->first; ebone; ebone = ebone->next) {
- short sco1[2], sco2[2], didpoint = 0;
- float vec[3];
-
/* project head location to screenspace */
- mul_v3_m4v3(vec, vc->obedit->obmat, ebone->head);
- project_short(vc->ar, vec, sco1);
-
+ if (x0 != IS_CLIPPED) {
+ points_proj_tot++;
+ if (armature_circle_doSelectJoint(data, ebone, x0, y0, TRUE)) {
+ is_point_done = TRUE;
+ }
+ }
+
/* project tail location to screenspace */
- mul_v3_m4v3(vec, vc->obedit->obmat, ebone->tail);
- project_short(vc->ar, vec, sco2);
-
- /* check if the head and/or tail is in the circle
- * - the call to check also does the selection already
+ if (x1 != IS_CLIPPED) {
+ points_proj_tot++;
+ if (armature_circle_doSelectJoint(data, ebone, x1, y1, FALSE)) {
+ is_point_done = TRUE;
+ }
+ }
+
+ /* check if the head and/or tail is in the circle
+ * - the call to check also does the selection already
*/
- if (armature_circle_doSelectJoint(&data, ebone, sco1[0], sco1[1], 1))
- didpoint = 1;
- if (armature_circle_doSelectJoint(&data, ebone, sco2[0], sco2[1], 0))
- didpoint = 1;
-
- /* only if the endpoints didn't get selected, deal with the middle of the bone too */
- // XXX should we just do this always?
- if ( (didpoint == 0) && edge_inside_circle(mval[0], mval[1], rad, sco1[0], sco1[1], sco2[0], sco2[1]) ) {
- if (select)
- ebone->flag |= BONE_TIPSEL | BONE_ROOTSEL | BONE_SELECTED;
- else
- ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
- change = TRUE;
+
+ /* only if the endpoints didn't get selected, deal with the middle of the bone too
+ * It works nicer to only do this if the head or tail are not in the circle,
+ * otherwise there is no way to circle select joints alone */
+ if ((is_point_done == FALSE) && (points_proj_tot == 2) &&
+ edge_inside_circle(data->mval[0], data->mval[1], data->radius, x0, y0, x1, y1))
+ {
+ if (data->select) ebone->flag |= (BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
+ else ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
+ data->is_change = TRUE;
}
-
- change |= didpoint;
+
+ data->is_change |= is_point_done;
}
+}
+static void armature_circle_select(ViewContext *vc, int select, const int mval[2], float rad)
+{
+ CircleSelectUserData data;
+ bArmature *arm = vc->obedit->data;
+
+ view3d_userdata_circleselect_init(&data, vc, select, mval, rad);
+
+ ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d);
+
+ armature_foreachScreenBone(vc, do_circle_select_armature__doSelectBone, &data);
- if (change) {
+ if (data.is_change) {
ED_armature_sync_selection(arm->edbo);
ED_armature_validate_active(arm);
WM_main_add_notifier(NC_OBJECT | ND_BONE_SELECT, vc->obedit);
}
}
+static void do_circle_select_mball__doSelectElem(void *userData, struct MetaElem *ml, int x, int y)
+{
+ CircleSelectUserData *data = userData;
+ const float delta[2] = {(float)(x - data->mval[0]),
+ (float)(y - data->mval[1])};
+
+ if (len_squared_v2(delta) <= data->radius_squared) {
+ if (data->select) ml->flag |= SELECT;
+ else ml->flag &= ~SELECT;
+ data->is_change = TRUE;
+ }
+}
+static void mball_circle_select(ViewContext *vc, int select, const int mval[2], float rad)
+{
+ CircleSelectUserData data;
+
+ view3d_userdata_circleselect_init(&data, vc, select, mval, rad);
+
+ ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d);
+
+ mball_foreachScreenElem(vc, do_circle_select_mball__doSelectElem, &data);
+}
+
/** Callbacks for circle selection in Editmode */
static void obedit_circle_select(ViewContext *vc, short select, const int mval[2], float rad)
@@ -2534,24 +2619,50 @@ static void obedit_circle_select(ViewContext *vc, short select, const int mval[2
case OB_ARMATURE:
armature_circle_select(vc, select, mval, rad);
break;
+ case OB_MBALL:
+ mball_circle_select(vc, select, mval, rad);
+ break;
default:
return;
}
}
+static int object_circle_select(ViewContext *vc, int select, const int mval[2], float rad)
+{
+ Scene *scene = vc->scene;
+ const float radius_squared = rad * rad;
+ const float mval_fl[2] = {mval[0], mval[1]};
+ int is_change = FALSE;
+
+ Base *base;
+ select = select ? BA_SELECT : BA_DESELECT;
+ for (base = FIRSTBASE; base; base = base->next) {
+ if (((base->flag & SELECT) == 0) && BASE_SELECTABLE(vc->v3d, base)) {
+ float screen_co[2];
+ if (ED_view3d_project_float_global(vc->ar, base->object->obmat[3], screen_co,
+ V3D_PROJ_TEST_CLIP_BB | V3D_PROJ_TEST_CLIP_WIN) == V3D_PROJ_RET_OK)
+ {
+ if (len_squared_v2v2(mval_fl, screen_co) <= radius_squared) {
+ ED_base_object_select(base, select);
+ is_change = TRUE;
+ }
+ }
+ }
+ }
+
+ return is_change;
+}
+
/* not a real operator, only for circle test */
static int view3d_circle_select_exec(bContext *C, wmOperator *op)
{
- ScrArea *sa = CTX_wm_area(C);
- ARegion *ar = CTX_wm_region(C);
Scene *scene = CTX_data_scene(C);
Object *obact = CTX_data_active_object(C);
- View3D *v3d = sa->spacedata.first;
- int x = RNA_int_get(op->ptr, "x");
- int y = RNA_int_get(op->ptr, "y");
int radius = RNA_int_get(op->ptr, "radius");
int gesture_mode = RNA_int_get(op->ptr, "gesture_mode");
int select;
+ const int mval[2] = {RNA_int_get(op->ptr, "x"),
+ RNA_int_get(op->ptr, "y")};
select = (gesture_mode == GESTURE_MODAL_SELECT);
@@ -2559,13 +2670,10 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op)
(obact && (obact->mode & (OB_MODE_PARTICLE_EDIT | OB_MODE_POSE))) )
{
ViewContext vc;
- int mval[2];
view3d_operator_needs_opengl(C);
view3d_set_viewcontext(C, &vc);
- mval[0] = x;
- mval[1] = y;
if (CTX_data_edit_object(C)) {
obedit_circle_select(&vc, select, mval, (float)radius);
@@ -2588,21 +2696,12 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
else {
- Base *base;
- select = select ? BA_SELECT : BA_DESELECT;
- for (base = FIRSTBASE; base; base = base->next) {
- if (BASE_SELECTABLE(v3d, base)) {
- project_short(ar, base->object->obmat[3], &base->sx);
- if (base->sx != IS_CLIPPED) {
- int dx = base->sx - x;
- int dy = base->sy - y;
- if (dx * dx + dy * dy < radius * radius)
- ED_base_object_select(base, select);
- }
- }
+ ViewContext vc;
+ view3d_set_viewcontext(C, &vc);
+
+ if (object_circle_select(&vc, select, mval, (float)radius)) {
+ WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene);
}
-
- WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, CTX_data_scene(C));
}
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/space_view3d/view3d_snap.c b/source/blender/editors/space_view3d/view3d_snap.c
index 1991d4bce4f..e55e97e501b 100644
--- a/source/blender/editors/space_view3d/view3d_snap.c
+++ b/source/blender/editors/space_view3d/view3d_snap.c
@@ -101,8 +101,8 @@ static void special_transvert_update(Object *obedit)
DAG_id_tag_update(obedit->data, 0);
if (obedit->type == OB_MESH) {
- Mesh *me = obedit->data;
- BM_mesh_normals_update(me->edit_btmesh->bm, TRUE); // does face centers too
+ BMEditMesh *em = BMEdit_FromObject(obedit);
+ BM_mesh_normals_update(em->bm, TRUE); /* does face centers too */
}
else if (ELEM(obedit->type, OB_CURVE, OB_SURF)) {
Curve *cu = obedit->data;
@@ -223,14 +223,13 @@ static void make_trans_verts(Object *obedit, float min[3], float max[3], int mod
float total, center[3], centroid[3];
int a;
- tottrans = 0; // global!
-
+ tottrans = 0; /* global! */
+
INIT_MINMAX(min, max);
zero_v3(centroid);
if (obedit->type == OB_MESH) {
- Mesh *me = obedit->data;
- BMEditMesh *em = me->edit_btmesh;
+ BMEditMesh *em = BMEdit_FromObject(obedit);
BMesh *bm = em->bm;
BMIter iter;
void *userdata[2] = {em, NULL};
@@ -239,7 +238,7 @@ static void make_trans_verts(Object *obedit, float min[3], float max[3], int mod
/* abuses vertex index all over, set, just set dirty here,
* perhaps this could use its own array instead? - campbell */
- // transform now requires awareness for select mode, so we tag the f1 flags in verts
+ /* transform now requires awareness for select mode, so we tag the f1 flags in verts */
tottrans = 0;
if (em->selectmode & SCE_SELECT_VERTEX) {
BM_ITER_MESH (eve, &iter, bm, BM_VERTS_OF_MESH) {
@@ -304,7 +303,7 @@ static void make_trans_verts(Object *obedit, float min[3], float max[3], int mod
copy_v3_v3(tv->oldloc, eve->co);
tv->loc = eve->co;
if (eve->no[0] != 0.0f || eve->no[1] != 0.0f || eve->no[2] != 0.0f)
- tv->nor = eve->no; // note this is a hackish signal (ton)
+ tv->nor = eve->no; /* note this is a hackish signal (ton) */
tv->flag = BM_elem_index_get(eve) & SELECT;
tv++;
a++;
@@ -608,9 +607,9 @@ static int snap_sel_to_grid(bContext *C, wmOperator *UNUSED(op))
else {
ob->recalc |= OB_RECALC_OB;
- vec[0] = -ob->obmat[3][0] + gridf *floorf(0.5f + ob->obmat[3][0] / gridf);
- vec[1] = -ob->obmat[3][1] + gridf *floorf(0.5f + ob->obmat[3][1] / gridf);
- vec[2] = -ob->obmat[3][2] + gridf *floorf(0.5f + ob->obmat[3][2] / gridf);
+ vec[0] = -ob->obmat[3][0] + gridf * floorf(0.5f + ob->obmat[3][0] / gridf);
+ vec[1] = -ob->obmat[3][1] + gridf * floorf(0.5f + ob->obmat[3][1] / gridf);
+ vec[2] = -ob->obmat[3][2] + gridf * floorf(0.5f + ob->obmat[3][2] / gridf);
if (ob->parent) {
BKE_object_where_is_calc(scene, ob);
@@ -794,8 +793,8 @@ static int snap_curs_to_grid(bContext *C, wmOperator *UNUSED(op))
curs[1] = gridf * floorf(0.5f + curs[1] / gridf);
curs[2] = gridf * floorf(0.5f + curs[2] / gridf);
- WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, v3d); // hrm
-
+ WM_event_add_notifier(C, NC_SPACE | ND_SPACE_VIEW3D, v3d); /* hrm */
+
return OPERATOR_FINISHED;
}
@@ -992,11 +991,11 @@ static int snap_curs_to_active(bContext *C, wmOperator *UNUSED(op))
if (obedit) {
if (obedit->type == OB_MESH) {
+ BMEditMesh *em = BMEdit_FromObject(obedit);
/* check active */
- Mesh *me = obedit->data;
BMEditSelection ese;
- if (BM_select_history_active_get(me->edit_btmesh->bm, &ese)) {
+ if (BM_select_history_active_get(em->bm, &ese)) {
BM_editselection_center(&ese, curs);
}
diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c
index ee1ead76f7c..b40e880591a 100644
--- a/source/blender/editors/space_view3d/view3d_toolbar.c
+++ b/source/blender/editors/space_view3d/view3d_toolbar.c
@@ -111,7 +111,7 @@ static void view3d_panel_operator_redo(const bContext *C, Panel *pa)
block = uiLayoutGetBlock(pa->layout);
if (!WM_operator_check_ui_enabled(C, op->type->name))
- uiLayoutSetEnabled(pa->layout, 0);
+ uiLayoutSetEnabled(pa->layout, FALSE);
/* note, blockfunc is a default but->func, use Handle func to allow button callbacks too */
uiBlockSetHandleFunc(block, ED_undo_operator_repeat_cb_evt, op);
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index 4782b95ba1c..e4a6d7e1b17 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -71,7 +71,7 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "view3d_intern.h" // own include
+#include "view3d_intern.h" /* own include */
/* use this call when executing an operator,
* event system doesn't set for each event the
@@ -87,8 +87,9 @@ void view3d_operator_needs_opengl(const bContext *C)
void view3d_region_operator_needs_opengl(wmWindow *win, ARegion *ar)
{
/* for debugging purpose, context should always be OK */
- if ((ar == NULL) || (ar->regiontype != RGN_TYPE_WINDOW))
+ if ((ar == NULL) || (ar->regiontype != RGN_TYPE_WINDOW)) {
printf("view3d_region_operator_needs_opengl error, wrong region\n");
+ }
else {
RegionView3D *rv3d = ar->regiondata;
@@ -110,7 +111,7 @@ float *give_cursor(Scene *scene, View3D *v3d)
/* ****************** smooth view operator ****************** */
/* This operator is one of the 'timer refresh' ones like animation playback */
-struct SmoothViewStore {
+struct SmoothView3DStore {
float orig_dist, new_dist;
float orig_lens, new_lens;
float orig_quat[4], new_quat[4];
@@ -123,15 +124,15 @@ struct SmoothViewStore {
/* will start timer if appropriate */
/* the arguments are the desired situation */
-void smooth_view(bContext *C, View3D *v3d, ARegion *ar, Object *oldcamera, Object *camera,
- float *ofs, float *quat, float *dist, float *lens)
+void view3d_smooth_view(bContext *C, View3D *v3d, ARegion *ar, Object *oldcamera, Object *camera,
+ float *ofs, float *quat, float *dist, float *lens)
{
wmWindowManager *wm = CTX_wm_manager(C);
wmWindow *win = CTX_wm_window(C);
ScrArea *sa = CTX_wm_area(C);
RegionView3D *rv3d = ar->regiondata;
- struct SmoothViewStore sms = {0};
+ struct SmoothView3DStore sms = {0};
short ok = FALSE;
/* initialize sms */
@@ -184,7 +185,7 @@ void smooth_view(bContext *C, View3D *v3d, ARegion *ar, Object *oldcamera, Objec
/* original values */
if (oldcamera) {
- sms.orig_dist = rv3d->dist; // below function does weird stuff with it...
+ sms.orig_dist = rv3d->dist; /* below function does weird stuff with it... */
ED_view3d_from_object(oldcamera, sms.orig_ofs, sms.orig_quat, &sms.orig_dist, &sms.orig_lens);
}
else {
@@ -227,7 +228,7 @@ void smooth_view(bContext *C, View3D *v3d, ARegion *ar, Object *oldcamera, Objec
/* keep track of running timer! */
if (rv3d->sms == NULL)
- rv3d->sms = MEM_mallocN(sizeof(struct SmoothViewStore), "smoothview v3d");
+ rv3d->sms = MEM_mallocN(sizeof(struct SmoothView3DStore), "smoothview v3d");
*rv3d->sms = sms;
if (rv3d->smooth_timer)
WM_event_remove_timer(wm, win, rv3d->smooth_timer);
@@ -259,7 +260,7 @@ static int view3d_smoothview_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent
{
View3D *v3d = CTX_wm_view3d(C);
RegionView3D *rv3d = CTX_wm_region_view3d(C);
- struct SmoothViewStore *sms = rv3d->sms;
+ struct SmoothView3DStore *sms = rv3d->sms;
float step, step_inv;
/* escape if not our timer */
@@ -303,21 +304,16 @@ static int view3d_smoothview_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent
rv3d->rflag &= ~RV3D_NAVIGATING;
}
else {
- int i;
-
/* ease in/out */
- if (step < 0.5f) step = (float)pow(step * 2.0f, 2.0) / 2.0f;
- else step = (float)1.0f - (powf(2.0f * (1.0f - step), 2.0f) / 2.0f);
+ step = (3.0f * step * step - 2.0f * step * step * step);
step_inv = 1.0f - step;
- for (i = 0; i < 3; i++)
- rv3d->ofs[i] = sms->new_ofs[i] * step + sms->orig_ofs[i] * step_inv;
-
+ interp_v3_v3v3(rv3d->ofs, sms->orig_ofs, sms->new_ofs, step);
interp_qt_qtqt(rv3d->viewquat, sms->orig_quat, sms->new_quat, step);
rv3d->dist = sms->new_dist * step + sms->orig_dist * step_inv;
- v3d->lens = sms->new_lens * step + sms->orig_lens * step_inv;
+ v3d->lens = sms->new_lens * step + sms->orig_lens * step_inv;
ED_view3d_camera_lock_sync(v3d, rv3d);
}
@@ -490,7 +486,7 @@ static int view3d_setobjectascamera_exec(bContext *C, wmOperator *UNUSED(op))
scene->camera = ob;
if (camera_old != ob) /* unlikely but looks like a glitch when set to the same */
- smooth_view(C, v3d, ar, camera_old, v3d->camera, rv3d->ofs, rv3d->viewquat, &rv3d->dist, &v3d->lens);
+ view3d_smooth_view(C, v3d, ar, camera_old, v3d->camera, rv3d->ofs, rv3d->viewquat, &rv3d->dist, &v3d->lens);
WM_event_add_notifier(C, NC_SCENE | ND_RENDER_OPTIONS | NC_OBJECT | ND_DRAW, CTX_data_scene(C));
}
@@ -524,7 +520,7 @@ void VIEW3D_OT_object_as_camera(wmOperatorType *ot)
/* ********************************** */
-void ED_view3d_calc_clipping(BoundBox *bb, float planes[4][4], bglMats *mats, const rcti *rect)
+void ED_view3d_clipping_calc(BoundBox *bb, float planes[4][4], bglMats *mats, const rcti *rect)
{
float modelview[4][4];
double xs, ys, p[3];
@@ -573,7 +569,18 @@ void ED_view3d_calc_clipping(BoundBox *bb, float planes[4][4], bglMats *mats, co
}
}
-/* create intersection coordinates in view Z direction at mouse coordinates */
+/**
+ * Calculate a 3d segment from 2d window coordinates.
+ * This ray_start is located at the viewpoint, ray_end is a far point.
+ * ray_start and ray_end are clipped by the view near and far limits
+ * so points along this line are always in view.
+ * In orthographic view all resulting segments will be parallel.
+ * \param ar The region (used for the window width and height).
+ * \param v3d The 3d viewport (used for near and far clipping range).
+ * \param mval The area relative 2d location (such as event->mval, converted into float[2]).
+ * \param ray_start The world-space starting point of the segment.
+ * \param ray_end The world-space end point of the segment.
+ */
void ED_view3d_win_to_segment_clip(ARegion *ar, View3D *v3d, const float mval[2], float ray_start[3], float ray_end[3])
{
RegionView3D *rv3d = ar->regiondata;
@@ -608,7 +615,17 @@ void ED_view3d_win_to_segment_clip(ARegion *ar, View3D *v3d, const float mval[2]
}
}
-/* create intersection ray in view Z direction at mouse coordinates */
+/**
+ * Calculate a 3d viewpoint and direction vector from 2d window coordinates.
+ * This ray_start is located at the viewpoint, ray_normal is the direction towards mval.
+ * ray_start is clipped by the view near limit so points in front of it are always in view.
+ * In orthographic view the resulting ray_normal will match the view vector.
+ * \param ar The region (used for the window width and height).
+ * \param v3d The 3d viewport (used for near clipping value).
+ * \param mval The area relative 2d location (such as event->mval, converted into float[2]).
+ * \param ray_start The world-space starting point of the segment.
+ * \param ray_normal The normalized world-space direction of towards mval.
+ */
void ED_view3d_win_to_ray(ARegion *ar, View3D *v3d, const float mval[2], float ray_start[3], float ray_normal[3])
{
float ray_end[3];
@@ -618,6 +635,13 @@ void ED_view3d_win_to_ray(ARegion *ar, View3D *v3d, const float mval[2], float r
normalize_v3(ray_normal);
}
+/**
+ * Calculate a normalized 3d direction vector from the viewpoint towards a global location.
+ * In orthographic view the resulting vector will match the view vector.
+ * \param rv3d The region (used for the window width and height).
+ * \param coord The world-space location.
+ * \param vec The resulting normalized vector.
+ */
void ED_view3d_global_to_vector(RegionView3D *rv3d, const float coord[3], float vec[3])
{
if (rv3d->is_persp) {
@@ -664,6 +688,13 @@ int initgrabz(RegionView3D *rv3d, float x, float y, float z)
return flip;
}
+/**
+ * Calculate a 3d location from 2d window coordinates.
+ * \param ar The region (used for the window width and height).
+ * \param depth_pt The reference location used to calculate the Z depth.
+ * \param mval The area relative location (such as event->mval converted to floats).
+ * \param out The resulting world-space location.
+ */
void ED_view3d_win_to_3d(ARegion *ar, const float depth_pt[3], const float mval[2], float out[3])
{
RegionView3D *rv3d = ar->regiondata;
@@ -694,8 +725,14 @@ void ED_view3d_win_to_3d(ARegion *ar, const float depth_pt[3], const float mval[
}
}
-/* always call initgrabz */
-/* only to detect delta motion */
+/**
+ * Calculate a 3d difference vector from 2d window offset.
+ * note that initgrabz() must be called first to determine
+ * the depth used to calculate the delta.
+ * \param ar The region (used for the window width and height).
+ * \param mval The area relative 2d difference (such as event->mval[0] - other_x).
+ * \param out The resulting world-space delta.
+ */
void ED_view3d_win_to_delta(ARegion *ar, const float mval[2], float out[3])
{
RegionView3D *rv3d = ar->regiondata;
@@ -709,9 +746,19 @@ void ED_view3d_win_to_delta(ARegion *ar, const float mval[2], float out[3])
out[2] = (rv3d->persinv[0][2] * dx + rv3d->persinv[1][2] * dy);
}
-/* doesn't rely on initgrabz */
-/* for perspective view, get the vector direction to
- * the mouse cursor as a normalized vector */
+/**
+ * Calculate a 3d direction vector from 2d window coordinates.
+ * This direction vector starts and the view in the direction of the 2d window coordinates.
+ * In orthographic view all window coordinates yield the same vector.
+ *
+ * \note doesn't rely on initgrabz
+ * for perspective view, get the vector direction to
+ * the mouse cursor as a normalized vector.
+ *
+ * \param ar The region (used for the window width and height).
+ * \param mval The area relative 2d location (such as event->mval converted to floats).
+ * \param out The resulting normalized world-space direction vector.
+ */
void ED_view3d_win_to_vector(ARegion *ar, const float mval[2], float out[3])
{
RegionView3D *rv3d = ar->regiondata;
@@ -758,7 +805,7 @@ void ED_view3d_ob_project_mat_get(RegionView3D *rv3d, Object *ob, float pmat[4][
/* Uses window coordinates (x,y) and depth component z to find a point in
* modelspace */
-void view3d_unproject(bglMats *mats, float out[3], const short x, const short y, const float z)
+void ED_view3d_unproject(bglMats *mats, float out[3], const float x, const float y, const float z)
{
double ux, uy, uz;
@@ -770,45 +817,58 @@ void view3d_unproject(bglMats *mats, float out[3], const short x, const short y,
out[2] = uz;
}
-/* use view3d_get_object_project_mat to get projecting mat */
-void ED_view3d_project_float_v2(const ARegion *ar, const float vec[3], float adr[2], float mat[4][4])
+/* use #ED_view3d_ob_project_mat_get to get projecting mat */
+void ED_view3d_project_float_v2_m4(const ARegion *ar, const float co[3], float r_co[2], float mat[4][4])
{
float vec4[4];
- copy_v3_v3(vec4, vec);
+ copy_v3_v3(vec4, co);
vec4[3] = 1.0;
- /* adr[0]= IS_CLIPPED; */ /* always overwritten */
+ /* r_co[0] = IS_CLIPPED; */ /* always overwritten */
mul_m4_v4(mat, vec4);
if (vec4[3] > FLT_EPSILON) {
- adr[0] = (float)(ar->winx / 2.0f) + (ar->winx / 2.0f) * vec4[0] / vec4[3];
- adr[1] = (float)(ar->winy / 2.0f) + (ar->winy / 2.0f) * vec4[1] / vec4[3];
+ r_co[0] = (float)(ar->winx / 2.0f) + (ar->winx / 2.0f) * vec4[0] / vec4[3];
+ r_co[1] = (float)(ar->winy / 2.0f) + (ar->winy / 2.0f) * vec4[1] / vec4[3];
}
else {
- adr[0] = adr[1] = 0.0f;
+ zero_v2(r_co);
}
}
-/* use view3d_get_object_project_mat to get projecting mat */
-void ED_view3d_project_float_v3(ARegion *ar, const float vec[3], float adr[3], float mat[4][4])
+/* use #ED_view3d_ob_project_mat_get to get projecting mat */
+void ED_view3d_project_float_v3_m4(ARegion *ar, const float vec[3], float r_co[3], float mat[4][4])
{
float vec4[4];
copy_v3_v3(vec4, vec);
vec4[3] = 1.0;
- /* adr[0]= IS_CLIPPED; */ /* always overwritten */
+ /* r_co[0] = IS_CLIPPED; */ /* always overwritten */
mul_m4_v4(mat, vec4);
if (vec4[3] > FLT_EPSILON) {
- adr[0] = (float)(ar->winx / 2.0f) + (ar->winx / 2.0f) * vec4[0] / vec4[3];
- adr[1] = (float)(ar->winy / 2.0f) + (ar->winy / 2.0f) * vec4[1] / vec4[3];
- adr[2] = vec4[2] / vec4[3];
+ r_co[0] = (float)(ar->winx / 2.0f) + (ar->winx / 2.0f) * vec4[0] / vec4[3];
+ r_co[1] = (float)(ar->winy / 2.0f) + (ar->winy / 2.0f) * vec4[1] / vec4[3];
+ r_co[2] = vec4[2] / vec4[3];
}
else {
- zero_v3(adr);
+ zero_v3(r_co);
+ }
+}
+
+eV3DProjStatus ED_view3d_project_base(struct ARegion *ar, struct Base *base)
+{
+ eV3DProjStatus ret = ED_view3d_project_short_global(ar, base->object->obmat[3], &base->sx,
+ V3D_PROJ_TEST_CLIP_BB | V3D_PROJ_TEST_CLIP_WIN);
+
+ if (ret != V3D_PROJ_RET_OK) {
+ base->sx = IS_CLIPPED;
+ base->sy = 0;
}
+
+ return ret;
}
int ED_view3d_boundbox_clip(RegionView3D *rv3d, float obmat[][4], BoundBox *bb)
@@ -846,153 +906,145 @@ int ED_view3d_boundbox_clip(RegionView3D *rv3d, float obmat[][4], BoundBox *bb)
return 0;
}
-void project_short(ARegion *ar, const float vec[3], short adr[2]) /* clips */
+/* perspmat is typically...
+ * - 'rv3d->perspmat', is_local == FALSE
+ * - 'rv3d->perspmatob', is_local == TRUE
+ */
+static eV3DProjStatus ed_view3d_project__internal(ARegion *ar,
+ float perspmat[4][4], const int is_local, /* normally hidden */
+ const float co[3], float r_co[2], eV3DProjTest flag)
{
- RegionView3D *rv3d = ar->regiondata;
float fx, fy, vec4[4];
-
- adr[0] = IS_CLIPPED;
-
- if (rv3d->rflag & RV3D_CLIPPING) {
- if (ED_view3d_clipping_test(rv3d, vec, FALSE)) {
- return;
+
+ if (flag & V3D_PROJ_TEST_CLIP_BB) {
+ RegionView3D *rv3d = ar->regiondata;
+ if (rv3d->rflag & RV3D_CLIPPING) {
+ if (ED_view3d_clipping_test(rv3d, co, is_local)) {
+ return V3D_PROJ_RET_CLIP_BB;
+ }
}
}
-
- copy_v3_v3(vec4, vec);
+
+ copy_v3_v3(vec4, co);
vec4[3] = 1.0;
- mul_m4_v4(rv3d->persmat, vec4);
-
- if (vec4[3] > (float)BL_NEAR_CLIP) { /* 0.001 is the NEAR clipping cutoff for picking */
- fx = (ar->winx / 2) * (1 + vec4[0] / vec4[3]);
-
- if (fx > 0 && fx < ar->winx) {
-
- fy = (ar->winy / 2) * (1 + vec4[1] / vec4[3]);
-
- if (fy > 0.0f && fy < (float)ar->winy) {
- adr[0] = (short)floor(fx);
- adr[1] = (short)floor(fy);
+ mul_m4_v4(perspmat, vec4);
+
+ if (vec4[3] > (float)BL_NEAR_CLIP) {
+ fx = ((float)ar->winx / 2.0f) * (1.0f + vec4[0] / vec4[3]);
+ if (((flag & V3D_PROJ_TEST_CLIP_WIN) == 0) || (fx > 0 && fx < ar->winx)) {
+ fy = ((float)ar->winy / 2.0f) * (1.0f + vec4[1] / vec4[3]);
+ if (((flag & V3D_PROJ_TEST_CLIP_WIN) == 0) || (fy > 0.0f && fy < (float)ar->winy)) {
+ r_co[0] = (short)floor(fx);
+ r_co[1] = (short)floor(fy);
+ }
+ else {
+ return V3D_PROJ_RET_CLIP_WIN;
}
}
+ else {
+ return V3D_PROJ_RET_CLIP_WIN;
+ }
}
+ else {
+ return V3D_PROJ_RET_CLIP_NEAR;
+ }
+
+ return V3D_PROJ_RET_OK;
}
-void project_int(ARegion *ar, const float vec[3], int adr[2])
+eV3DProjStatus ED_view3d_project_short_ex(ARegion *ar, float perspmat[4][4], const int is_local,
+ const float co[3], short r_co[2], eV3DProjTest flag)
{
- RegionView3D *rv3d = ar->regiondata;
- float fx, fy, vec4[4];
-
- copy_v3_v3(vec4, vec);
- vec4[3] = 1.0;
- adr[0] = (int)2140000000.0f;
-
- mul_m4_v4(rv3d->persmat, vec4);
-
- if (vec4[3] > (float)BL_NEAR_CLIP) { /* 0.001 is the NEAR clipping cutoff for picking */
- fx = (ar->winx / 2) * (1 + vec4[0] / vec4[3]);
-
- if (fx > -2140000000.0f && fx < 2140000000.0f) {
- fy = (ar->winy / 2) * (1 + vec4[1] / vec4[3]);
-
- if (fy > -2140000000.0f && fy < 2140000000.0f) {
- adr[0] = (int)floor(fx);
- adr[1] = (int)floor(fy);
- }
+ float tvec[2];
+ eV3DProjStatus ret = ed_view3d_project__internal(ar, perspmat, is_local, co, tvec, flag);
+ if (ret == V3D_PROJ_RET_OK) {
+ if ((tvec[0] > -32700.0 && tvec[0] < 32700.0f) &&
+ (tvec[1] > -32700.0 && tvec[1] < 32700.0f))
+ {
+ r_co[0] = (short)floor(tvec[0]);
+ r_co[1] = (short)floor(tvec[1]);
+ }
+ else {
+ ret = V3D_PROJ_RET_OVERFLOW;
}
}
+ return ret;
}
-void project_int_noclip(ARegion *ar, const float vec[3], int adr[2])
+eV3DProjStatus ED_view3d_project_int_ex(ARegion *ar, float perspmat[4][4], const int is_local,
+ const float co[3], int r_co[2], eV3DProjTest flag)
{
- RegionView3D *rv3d = ar->regiondata;
- float fx, fy, vec4[4];
-
- copy_v3_v3(vec4, vec);
- vec4[3] = 1.0;
-
- mul_m4_v4(rv3d->persmat, vec4);
-
- if (fabs(vec4[3]) > BL_NEAR_CLIP) {
- fx = (ar->winx / 2) * (1 + vec4[0] / vec4[3]);
- fy = (ar->winy / 2) * (1 + vec4[1] / vec4[3]);
-
- adr[0] = (int)floor(fx);
- adr[1] = (int)floor(fy);
- }
- else {
- adr[0] = ar->winx / 2;
- adr[1] = ar->winy / 2;
+ float tvec[2];
+ eV3DProjStatus ret = ed_view3d_project__internal(ar, perspmat, is_local, co, tvec, flag);
+ if (ret == V3D_PROJ_RET_OK) {
+ if ((tvec[0] > -2140000000.0 && tvec[0] < 2140000000.0f) &&
+ (tvec[1] > -2140000000.0 && tvec[1] < 2140000000.0f))
+ {
+ r_co[0] = (int)floor(tvec[0]);
+ r_co[1] = (int)floor(tvec[1]);
+ }
+ else {
+ ret = V3D_PROJ_RET_OVERFLOW;
+ }
}
+ return ret;
}
-void project_short_noclip(ARegion *ar, const float vec[3], short adr[2])
+eV3DProjStatus ED_view3d_project_float_ex(ARegion *ar, float perspmat[4][4], const int is_local,
+ const float co[3], float r_co[2], eV3DProjTest flag)
{
- RegionView3D *rv3d = ar->regiondata;
- float fx, fy, vec4[4];
-
- copy_v3_v3(vec4, vec);
- vec4[3] = 1.0;
- adr[0] = IS_CLIPPED;
-
- mul_m4_v4(rv3d->persmat, vec4);
-
- if (vec4[3] > (float)BL_NEAR_CLIP) { /* 0.001 is the NEAR clipping cutoff for picking */
- fx = (ar->winx / 2) * (1 + vec4[0] / vec4[3]);
-
- if (fx > -32700 && fx < 32700) {
-
- fy = (ar->winy / 2) * (1 + vec4[1] / vec4[3]);
-
- if (fy > -32700.0f && fy < 32700.0f) {
- adr[0] = (short)floor(fx);
- adr[1] = (short)floor(fy);
- }
+ float tvec[2];
+ eV3DProjStatus ret = ed_view3d_project__internal(ar, perspmat, is_local, co, tvec, flag);
+ if (ret == V3D_PROJ_RET_OK) {
+ if (finite(tvec[0]) &&
+ finite(tvec[1]))
+ {
+ copy_v2_v2(r_co, tvec);
+ }
+ else {
+ ret = V3D_PROJ_RET_OVERFLOW;
}
}
+ return ret;
}
-void apply_project_float(float persmat[4][4], int winx, int winy, const float vec[3], float adr[2])
+/* --- short --- */
+eV3DProjStatus ED_view3d_project_short_global(ARegion *ar, const float co[3], short r_co[2], eV3DProjTest flag)
{
- float vec4[4];
-
- copy_v3_v3(vec4, vec);
- vec4[3] = 1.0;
- adr[0] = IS_CLIPPED;
-
- mul_m4_v4(persmat, vec4);
-
- if (vec4[3] > (float)BL_NEAR_CLIP) {
- adr[0] = (float)(winx / 2.0f) + (winx / 2.0f) * vec4[0] / vec4[3];
- adr[1] = (float)(winy / 2.0f) + (winy / 2.0f) * vec4[1] / vec4[3];
- }
+ RegionView3D *rv3d = ar->regiondata;
+ return ED_view3d_project_short_ex(ar, rv3d->persmat, FALSE, co, r_co, flag);
}
-
-void project_float(ARegion *ar, const float vec[3], float adr[2])
+/* object space, use ED_view3d_init_mats_rv3d before calling */
+eV3DProjStatus ED_view3d_project_short_object(ARegion *ar, const float co[3], short r_co[2], eV3DProjTest flag)
{
RegionView3D *rv3d = ar->regiondata;
+ return ED_view3d_project_short_ex(ar, rv3d->persmatob, TRUE, co, r_co, flag);
+}
- apply_project_float(rv3d->persmat, ar->winx, ar->winy, vec, adr);
+/* --- int --- */
+eV3DProjStatus ED_view3d_project_int_global(ARegion *ar, const float co[3], int r_co[2], eV3DProjTest flag)
+{
+ RegionView3D *rv3d = ar->regiondata;
+ return ED_view3d_project_int_ex(ar, rv3d->persmat, FALSE, co, r_co, flag);
+}
+/* object space, use ED_view3d_init_mats_rv3d before calling */
+eV3DProjStatus ED_view3d_project_int_object(ARegion *ar, const float co[3], int r_co[2], eV3DProjTest flag)
+{
+ RegionView3D *rv3d = ar->regiondata;
+ return ED_view3d_project_int_ex(ar, rv3d->persmatob, TRUE, co, r_co, flag);
}
-void project_float_noclip(ARegion *ar, const float vec[3], float adr[2])
+/* --- float --- */
+eV3DProjStatus ED_view3d_project_float_global(ARegion *ar, const float co[3], float r_co[2], eV3DProjTest flag)
{
RegionView3D *rv3d = ar->regiondata;
- float vec4[4];
-
- copy_v3_v3(vec4, vec);
- vec4[3] = 1.0;
-
- mul_m4_v4(rv3d->persmat, vec4);
-
- if (fabs(vec4[3]) > BL_NEAR_CLIP) {
- adr[0] = (float)(ar->winx / 2.0f) + (ar->winx / 2.0f) * vec4[0] / vec4[3];
- adr[1] = (float)(ar->winy / 2.0f) + (ar->winy / 2.0f) * vec4[1] / vec4[3];
- }
- else {
- adr[0] = ar->winx / 2.0f;
- adr[1] = ar->winy / 2.0f;
- }
+ return ED_view3d_project_float_ex(ar, rv3d->persmat, FALSE, co, r_co, flag);
+}
+/* object space, use ED_view3d_init_mats_rv3d before calling */
+eV3DProjStatus ED_view3d_project_float_object(ARegion *ar, const float co[3], float r_co[2], eV3DProjTest flag)
+{
+ RegionView3D *rv3d = ar->regiondata;
+ return ED_view3d_project_float_ex(ar, rv3d->persmatob, TRUE, co, r_co, flag);
}
/* copies logic of get_view3d_viewplane(), keep in sync */
@@ -1100,14 +1152,14 @@ static void obmat_to_viewmat(View3D *v3d, RegionView3D *rv3d, Object *ob, short
rv3d->dist = 0.0;
ED_view3d_from_object(v3d->camera, rv3d->ofs, NULL, NULL, &v3d->lens);
- smooth_view(NULL, NULL, NULL, NULL, NULL, orig_ofs, new_quat, &orig_dist, &orig_lens); // XXX
-
+ view3d_smooth_view(NULL, NULL, NULL, NULL, NULL, orig_ofs, new_quat, &orig_dist, &orig_lens); /* XXX */
+
rv3d->persp = RV3D_CAMOB; /* just to be polite, not needed */
}
else {
mat3_to_quat(new_quat, tmat);
- smooth_view(NULL, NULL, NULL, NULL, NULL, NULL, new_quat, NULL, NULL); // XXX
+ view3d_smooth_view(NULL, NULL, NULL, NULL, NULL, NULL, new_quat, NULL, NULL); /* XXX */
}
}
else {
@@ -1125,7 +1177,7 @@ int ED_view3d_lock(RegionView3D *rv3d)
break;
case RV3D_VIEW_BACK:
- QUATSET(rv3d->viewquat, 0.0, 0.0, (float)-cos(M_PI / 4.0), (float)-cos(M_PI / 4.0));
+ QUATSET(rv3d->viewquat, 0.0, 0.0, -M_SQRT1_2, -M_SQRT1_2);
break;
case RV3D_VIEW_LEFT:
@@ -1137,7 +1189,7 @@ int ED_view3d_lock(RegionView3D *rv3d)
break;
case RV3D_VIEW_FRONT:
- QUATSET(rv3d->viewquat, (float)cos(M_PI / 4.0), (float)-sin(M_PI / 4.0), 0.0, 0.0);
+ QUATSET(rv3d->viewquat, M_SQRT1_2, -M_SQRT1_2, 0.0, 0.0);
break;
case RV3D_VIEW_RIGHT:
@@ -1211,16 +1263,13 @@ short view3d_opengl_select(ViewContext *vc, unsigned int *buffer, unsigned int b
/* case not a border select */
if (input->xmin == input->xmax) {
- rect.xmin = input->xmin - 12; // seems to be default value for bones only now
+ rect.xmin = input->xmin - 12; /* seems to be default value for bones only now */
rect.xmax = input->xmin + 12;
rect.ymin = input->ymin - 12;
rect.ymax = input->ymin + 12;
}
else {
- rect.xmin = input->xmin;
- rect.xmax = input->xmax;
- rect.ymin = input->ymin;
- rect.ymax = input->ymax;
+ BLI_rctf_rcti_copy(&rect, input);
}
setwinmatrixview3d(ar, v3d, &rect);
@@ -1252,7 +1301,7 @@ short view3d_opengl_select(ViewContext *vc, unsigned int *buffer, unsigned int b
else {
Base *base;
- v3d->xray = TRUE; // otherwise it postpones drawing
+ v3d->xray = TRUE; /* otherwise it postpones drawing */
for (base = scene->base.first; base; base = base->next) {
if (base->lay & v3d->lay) {
@@ -1270,7 +1319,7 @@ short view3d_opengl_select(ViewContext *vc, unsigned int *buffer, unsigned int b
Base tbase;
tbase.flag = OB_FROMDUPLI;
- lb = object_duplilist(scene, base->object);
+ lb = object_duplilist(scene, base->object, FALSE);
for (dob = lb->first; dob; dob = dob->next) {
tbase.object = dob->ob;
@@ -1294,7 +1343,7 @@ short view3d_opengl_select(ViewContext *vc, unsigned int *buffer, unsigned int b
}
}
}
- v3d->xray = FALSE; // restore
+ v3d->xray = FALSE; /* restore */
}
glPopName(); /* see above (pushname) */
@@ -1313,8 +1362,8 @@ short view3d_opengl_select(ViewContext *vc, unsigned int *buffer, unsigned int b
if (vc->rv3d->rflag & RV3D_CLIPPING)
ED_view3d_clipping_disable();
- if (hits < 0) printf("Too many objects in select buffer\n"); // XXX make error message
-
+ if (hits < 0) printf("Too many objects in select buffer\n"); /* XXX make error message */
+
return hits;
}
@@ -1392,29 +1441,31 @@ int ED_view3d_scene_layer_set(int lay, const int *values, int *active)
return lay;
}
-static void initlocalview(Main *bmain, Scene *scene, ScrArea *sa)
+static int view3d_localview_init(Main *bmain, Scene *scene, ScrArea *sa, ReportList *reports)
{
View3D *v3d = sa->spacedata.first;
Base *base;
float size = 0.0, min[3], max[3], box[3];
unsigned int locallay;
- int ok = 0;
+ int ok = FALSE;
- if (v3d->localvd) return;
+ if (v3d->localvd) {
+ return ok;
+ }
INIT_MINMAX(min, max);
locallay = free_localbit(bmain);
if (locallay == 0) {
- printf("Sorry, no more than 8 localviews\n"); // XXX error
- ok = 0;
+ BKE_reportf(reports, RPT_ERROR, "No more than 8 localviews");
+ ok = FALSE;
}
else {
if (scene->obedit) {
- BKE_object_minmax(scene->obedit, min, max);
+ BKE_object_minmax(scene->obedit, min, max, FALSE);
- ok = 1;
+ ok = TRUE;
BASACT->lay |= locallay;
scene->obedit->lay = BASACT->lay;
@@ -1422,10 +1473,10 @@ static void initlocalview(Main *bmain, Scene *scene, ScrArea *sa)
else {
for (base = FIRSTBASE; base; base = base->next) {
if (TESTBASE(v3d, base)) {
- BKE_object_minmax(base->object, min, max);
+ BKE_object_minmax(base->object, min, max, FALSE);
base->lay |= locallay;
base->object->lay = base->lay;
- ok = 1;
+ ok = TRUE;
}
}
}
@@ -1437,7 +1488,7 @@ static void initlocalview(Main *bmain, Scene *scene, ScrArea *sa)
if (size <= 0.01f) size = 0.01f;
}
- if (ok) {
+ if (ok == TRUE) {
ARegion *ar;
v3d->localvd = MEM_mallocN(sizeof(View3D), "localview");
@@ -1460,7 +1511,7 @@ static void initlocalview(Main *bmain, Scene *scene, ScrArea *sa)
if (rv3d->persp == RV3D_ORTHO)
rv3d->dist *= 0.7f;
- // correction for window aspect ratio
+ /* correction for window aspect ratio */
if (ar->winy > 2 && ar->winx > 2) {
float asp = (float)ar->winx / (float)ar->winy;
if (asp < 1.0f) asp = 1.0f / asp;
@@ -1486,9 +1537,10 @@ static void initlocalview(Main *bmain, Scene *scene, ScrArea *sa)
if (base->object != scene->obedit) base->flag |= SELECT;
base->object->lay = base->lay;
}
- }
+ }
}
+ return ok;
}
static void restore_localviewdata(ScrArea *sa, int free)
@@ -1531,7 +1583,7 @@ static void restore_localviewdata(ScrArea *sa, int free)
}
}
-static void endlocalview(Main *bmain, Scene *scene, ScrArea *sa)
+static int view3d_localview_exit(Main *bmain, Scene *scene, ScrArea *sa)
{
View3D *v3d = sa->spacedata.first;
struct Base *base;
@@ -1541,7 +1593,7 @@ static void endlocalview(Main *bmain, Scene *scene, ScrArea *sa)
locallay = v3d->lay & 0xFF000000;
- restore_localviewdata(sa, 1); // 1 = free
+ restore_localviewdata(sa, 1); /* 1 = free */
/* for when in other window the layers have changed */
if (v3d->scenelock) v3d->lay = scene->lay;
@@ -1559,28 +1611,42 @@ static void endlocalview(Main *bmain, Scene *scene, ScrArea *sa)
}
DAG_on_visible_update(bmain, FALSE);
+
+ return TRUE;
}
+ else {
+ return FALSE;
+ }
}
-static int localview_exec(bContext *C, wmOperator *UNUSED(unused))
+static int localview_exec(bContext *C, wmOperator *op)
{
Main *bmain = CTX_data_main(C);
+ Scene *scene = CTX_data_scene(C);
+ ScrArea *sa = CTX_wm_area(C);
View3D *v3d = CTX_wm_view3d(C);
+ int change;
- if (v3d->localvd)
- endlocalview(CTX_data_main(C), CTX_data_scene(C), CTX_wm_area(C));
- else
- initlocalview(CTX_data_main(C), CTX_data_scene(C), CTX_wm_area(C));
+ if (v3d->localvd) {
+ change = view3d_localview_exit(bmain, scene, sa);
+ }
+ else {
+ change = view3d_localview_init(bmain, scene, sa, op->reports);
+ }
- DAG_id_type_tag(bmain, ID_OB);
- ED_area_tag_redraw(CTX_wm_area(C));
-
- return OPERATOR_FINISHED;
+ if (change) {
+ DAG_id_type_tag(bmain, ID_OB);
+ ED_area_tag_redraw(CTX_wm_area(C));
+
+ return OPERATOR_FINISHED;
+ }
+ else {
+ return OPERATOR_CANCELLED;
+ }
}
void VIEW3D_OT_localview(wmOperatorType *ot)
{
-
/* identifiers */
ot->name = "Local View";
ot->description = "Toggle display of selected object(s) separately and centered in view";
@@ -1642,7 +1708,7 @@ static void game_set_commmandline_options(GameData *gm)
SYS_SystemHandle syshandle;
int test;
- if ( (syshandle = SYS_GetSystem()) ) {
+ if ((syshandle = SYS_GetSystem())) {
/* User defined settings */
test = (U.gameflags & USER_DISABLE_MIPMAP);
GPU_set_mipmap(!test);
@@ -1681,7 +1747,7 @@ static void game_set_commmandline_options(GameData *gm)
}
}
-#endif // WITH_GAMEENGINE
+#endif /* WITH_GAMEENGINE */
static int game_engine_poll(bContext *C)
{
@@ -1722,7 +1788,7 @@ int ED_view3d_context_activate(bContext *C)
if (!ar)
return 0;
- // bad context switch ..
+ /* bad context switch .. */
CTX_wm_area_set(C, sa);
CTX_wm_region_set(C, ar);
@@ -1741,7 +1807,7 @@ static int game_engine_exec(bContext *C, wmOperator *op)
(void)op; /* unused */
- // bad context switch ..
+ /* bad context switch .. */
if (!ED_view3d_context_activate(C))
return OPERATOR_CANCELLED;
@@ -1768,7 +1834,7 @@ static int game_engine_exec(bContext *C, wmOperator *op)
cam_frame.xmax = cam_framef.xmax + ar->winrct.xmin;
cam_frame.ymin = cam_framef.ymin + ar->winrct.ymin;
cam_frame.ymax = cam_framef.ymax + ar->winrct.ymin;
- BLI_isect_rcti(&ar->winrct, &cam_frame, &cam_frame);
+ BLI_rcti_isect(&ar->winrct, &cam_frame, &cam_frame);
}
else {
cam_frame.xmin = ar->winrct.xmin;
@@ -1854,11 +1920,11 @@ static void UNUSED_FUNCTION(view3d_align_axis_to_vector)(View3D *v3d, RegionView
rv3d->persp = RV3D_PERSP;
rv3d->dist = 0.0;
ED_view3d_from_object(v3d->camera, rv3d->ofs, NULL, NULL, &v3d->lens);
- smooth_view(NULL, NULL, NULL, NULL, NULL, orig_ofs, new_quat, &orig_dist, &orig_lens); // XXX
+ view3d_smooth_view(NULL, NULL, NULL, NULL, NULL, orig_ofs, new_quat, &orig_dist, &orig_lens); /* XXX */
}
else {
if (rv3d->persp == RV3D_CAMOB) rv3d->persp = RV3D_PERSP; /* switch out of camera mode */
- smooth_view(NULL, NULL, NULL, NULL, NULL, NULL, new_quat, NULL, NULL); // XXX
+ view3d_smooth_view(NULL, NULL, NULL, NULL, NULL, NULL, new_quat, NULL, NULL); /* XXX */
}
}
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 164c1dd7c12..775e8d2de8e 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -29,7 +29,6 @@
* \ingroup edtransform
*/
-
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
@@ -37,9 +36,9 @@
#include <float.h>
#ifndef WIN32
-#include <unistd.h>
+# include <unistd.h>
#else
-#include <io.h>
+# include <io.h>
#endif
#include "MEM_guardedalloc.h"
@@ -58,6 +57,8 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
+#include "BLF_api.h"
+
#include "BKE_nla.h"
#include "BKE_bmesh.h"
#include "BKE_context.h"
@@ -66,6 +67,7 @@
#include "BKE_particle.h"
#include "BKE_pointcache.h"
#include "BKE_unit.h"
+#include "BKE_mask.h"
#include "ED_image.h"
#include "ED_keyframing.h"
@@ -75,6 +77,7 @@
#include "ED_view3d.h"
#include "ED_mesh.h"
#include "ED_clip.h"
+#include "ED_mask.h"
#include "UI_view2d.h"
#include "WM_types.h"
@@ -87,18 +90,16 @@
#include "BLI_linklist.h"
#include "BLI_smallhash.h"
#include "BLI_array.h"
+#include "PIL_time.h"
+#include "UI_interface_icons.h"
#include "UI_resources.h"
-//#include "blendef.h"
-//
-//#include "mydevice.h"
-
#include "transform.h"
-#include <stdio.h>
+#include <stdio.h> // XXX: duplicated???
-static void drawTransformApply(const struct bContext *C, struct ARegion *ar, void *arg);
+static void drawTransformApply(const struct bContext *C, ARegion *ar, void *arg);
static int doEdgeSlide(TransInfo *t, float perc);
/* ************************** SPACE DEPENDANT CODE **************************** */
@@ -125,32 +126,65 @@ void setTransformViewMatrices(TransInfo *t)
calculateCenter2D(t);
}
-static void convertViewVec2D(View2D *v2d, float vec[3], int dx, int dy)
+static void convertViewVec2D(View2D *v2d, float r_vec[3], int dx, int dy)
{
float divx, divy;
- divx = v2d->mask.xmax - v2d->mask.xmin;
- divy = v2d->mask.ymax - v2d->mask.ymin;
+ divx = BLI_rcti_size_x(&v2d->mask);
+ divy = BLI_rcti_size_y(&v2d->mask);
- vec[0] = (v2d->cur.xmax - v2d->cur.xmin) * dx / divx;
- vec[1] = (v2d->cur.ymax - v2d->cur.ymin) * dy / divy;
- vec[2] = 0.0f;
+ r_vec[0] = BLI_rctf_size_x(&v2d->cur) * dx / divx;
+ r_vec[1] = BLI_rctf_size_y(&v2d->cur) * dy / divy;
+ r_vec[2] = 0.0f;
+}
+
+static void convertViewVec2D_mask(View2D *v2d, float r_vec[3], int dx, int dy)
+{
+ float divx, divy;
+ float mulx, muly;
+
+ divx = BLI_rcti_size_x(&v2d->mask);
+ divy = BLI_rcti_size_y(&v2d->mask);
+
+ mulx = BLI_rctf_size_x(&v2d->cur);
+ muly = BLI_rctf_size_y(&v2d->cur);
+
+ /* difference with convertViewVec2D */
+ /* clamp w/h, mask only */
+ if (mulx / divx < muly / divy) {
+ divy = divx;
+ muly = mulx;
+ }
+ else {
+ divx = divy;
+ mulx = muly;
+ }
+ /* end difference */
+
+ r_vec[0] = mulx * dx / divx;
+ r_vec[1] = muly * dy / divy;
+ r_vec[2] = 0.0f;
}
void convertViewVec(TransInfo *t, float r_vec[3], int dx, int dy)
{
if ((t->spacetype == SPACE_VIEW3D) && (t->ar->regiontype == RGN_TYPE_WINDOW)) {
- float mval_f[2];
- mval_f[0] = dx;
- mval_f[1] = dy;
+ const float mval_f[2] = {(float)dx, (float)dy};
ED_view3d_win_to_delta(t->ar, mval_f, r_vec);
}
else if (t->spacetype == SPACE_IMAGE) {
float aspx, aspy;
- convertViewVec2D(t->view, r_vec, dx, dy);
+ if (t->options & CTX_MASK) {
+
+ convertViewVec2D_mask(t->view, r_vec, dx, dy);
+ ED_space_image_get_aspect(t->sa->spacedata.first, &aspx, &aspy);
+ }
+ else {
+ convertViewVec2D(t->view, r_vec, dx, dy);
+ ED_space_image_get_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
+ }
- ED_space_image_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
r_vec[0] *= aspx;
r_vec[1] *= aspy;
}
@@ -161,26 +195,14 @@ void convertViewVec(TransInfo *t, float r_vec[3], int dx, int dy)
convertViewVec2D(&t->ar->v2d, r_vec, dx, dy);
}
else if (t->spacetype == SPACE_CLIP) {
- View2D *v2d = t->view;
- float divx, divy;
- float mulx, muly;
- float aspx = 1.0f, aspy = 1.0f;
-
- divx = v2d->mask.xmax - v2d->mask.xmin;
- divy = v2d->mask.ymax - v2d->mask.ymin;
-
- mulx = (v2d->cur.xmax - v2d->cur.xmin);
- muly = (v2d->cur.ymax - v2d->cur.ymin);
+ float aspx, aspy;
if (t->options & CTX_MASK) {
- /* clamp w/h, mask only */
- divx = divy = maxf(divx, divy);
- mulx = muly = minf(mulx, muly);
+ convertViewVec2D_mask(t->view, r_vec, dx, dy);
+ }
+ else {
+ convertViewVec2D(t->view, r_vec, dx, dy);
}
-
- r_vec[0] = mulx * (dx) / divx;
- r_vec[1] = muly * (dy) / divy;
- r_vec[2] = 0.0f;
if (t->options & CTX_MOVIECLIP) {
ED_space_clip_get_aspect_dimension_aware(t->sa->spacedata.first, &aspx, &aspy);
@@ -189,6 +211,11 @@ void convertViewVec(TransInfo *t, float r_vec[3], int dx, int dy)
/* TODO - NOT WORKING, this isnt so bad since its only display aspect */
ED_space_clip_get_aspect(t->sa->spacedata.first, &aspx, &aspy);
}
+ else {
+ /* should never happen, quiet warnings */
+ BLI_assert(0);
+ aspx = aspy = 1.0f;
+ }
r_vec[0] *= aspx;
r_vec[1] *= aspy;
@@ -202,17 +229,47 @@ void convertViewVec(TransInfo *t, float r_vec[3], int dx, int dy)
void projectIntView(TransInfo *t, const float vec[3], int adr[2])
{
if (t->spacetype == SPACE_VIEW3D) {
- if (t->ar->regiontype == RGN_TYPE_WINDOW)
- project_int_noclip(t->ar, vec, adr);
+ if (t->ar->regiontype == RGN_TYPE_WINDOW) {
+ if (ED_view3d_project_int_global(t->ar, vec, adr, V3D_PROJ_TEST_NOP) != V3D_PROJ_RET_OK) {
+ adr[0] = (int)2140000000.0f; /* this is what was done in 2.64, perhaps we can be smarter? */
+ adr[1] = (int)2140000000.0f;
+ }
+ }
}
else if (t->spacetype == SPACE_IMAGE) {
- float aspx, aspy, v[2];
+ SpaceImage *sima = t->sa->spacedata.first;
+
+ if (t->options & CTX_MASK) {
+ /* not working quite right, TODO (see below too) */
+ float aspx, aspy;
+ float v[2];
+
+ ED_space_image_get_aspect(sima, &aspx, &aspy);
+
+ copy_v2_v2(v, vec);
+
+ v[0] = v[0] / aspx;
+ v[1] = v[1] / aspy;
- ED_space_image_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
- v[0] = vec[0] / aspx;
- v[1] = vec[1] / aspy;
+ BKE_mask_coord_to_image(sima->image, &sima->iuser, v, v);
- UI_view2d_to_region_no_clip(t->view, v[0], v[1], adr, adr + 1);
+ v[0] = v[0] / aspx;
+ v[1] = v[1] / aspy;
+
+ ED_image_point_pos__reverse(sima, t->ar, v, v);
+
+ adr[0] = v[0];
+ adr[1] = v[1];
+ }
+ else {
+ float aspx, aspy, v[2];
+
+ ED_space_image_get_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
+ v[0] = vec[0] / aspx;
+ v[1] = vec[1] / aspy;
+
+ UI_view2d_to_region_no_clip(t->view, v[0], v[1], adr, adr + 1);
+ }
}
else if (t->spacetype == SPACE_ACTION) {
int out[2] = {0, 0};
@@ -248,20 +305,47 @@ void projectIntView(TransInfo *t, const float vec[3], int adr[2])
adr[1] = out[1];
}
else if (t->spacetype == SPACE_CLIP) {
- float v[2];
- float aspx = 1.0f, aspy = 1.0f;
+ SpaceClip *sc = t->sa->spacedata.first;
+
+ if (t->options & CTX_MASK) {
+ /* not working quite right, TODO (see above too) */
+ float aspx, aspy;
+ float v[2];
+
+ ED_space_clip_get_aspect(sc, &aspx, &aspy);
+
+ copy_v2_v2(v, vec);
- copy_v2_v2(v, vec);
+ v[0] = v[0] / aspx;
+ v[1] = v[1] / aspy;
- if (t->options & CTX_MOVIECLIP)
+ BKE_mask_coord_to_movieclip(sc->clip, &sc->user, v, v);
+
+ v[0] = v[0] / aspx;
+ v[1] = v[1] / aspy;
+
+ ED_clip_point_stable_pos__reverse(sc, t->ar, v, v);
+
+ adr[0] = v[0];
+ adr[1] = v[1];
+ }
+ else if (t->options & CTX_MOVIECLIP) {
+ float v[2], aspx, aspy;
+
+ copy_v2_v2(v, vec);
ED_space_clip_get_aspect_dimension_aware(t->sa->spacedata.first, &aspx, &aspy);
- else if (t->options & CTX_MASK)
- ED_space_clip_get_aspect(t->sa->spacedata.first, &aspx, &aspy);
- v[0] /= aspx;
- v[1] /= aspy;
+ v[0] /= aspx;
+ v[1] /= aspy;
- UI_view2d_to_region_no_clip(t->view, v[0], v[1], adr, adr + 1);
+ UI_view2d_to_region_no_clip(t->view, v[0], v[1], adr, adr + 1);
+ }
+ else {
+ BLI_assert(0);
+ }
+ }
+ else if (t->spacetype == SPACE_NODE) {
+ UI_view2d_to_region_no_clip((View2D *)t->view, vec[0], vec[1], adr, adr + 1);
}
}
@@ -271,7 +355,11 @@ void projectFloatView(TransInfo *t, const float vec[3], float adr[2])
case SPACE_VIEW3D:
{
if (t->ar->regiontype == RGN_TYPE_WINDOW) {
- project_float_noclip(t->ar, vec, adr);
+ if (ED_view3d_project_float_global(t->ar, vec, adr, V3D_PROJ_TEST_NOP) != V3D_PROJ_RET_OK) {
+ /* XXX, 2.64 and prior did this, weak! */
+ adr[0] = t->ar->winx / 2.0f;
+ adr[1] = t->ar->winy / 2.0f;
+ }
return;
}
break;
@@ -300,13 +388,13 @@ void applyAspectRatio(TransInfo *t, float vec[2])
if ((sima->flag & SI_COORDFLOATS) == 0) {
int width, height;
- ED_space_image_size(sima, &width, &height);
+ ED_space_image_get_size(sima, &width, &height);
vec[0] *= width;
vec[1] *= height;
}
- ED_space_image_uv_aspect(sima, &aspx, &aspy);
+ ED_space_image_get_uv_aspect(sima, &aspx, &aspy);
vec[0] /= aspx;
vec[1] /= aspy;
}
@@ -340,13 +428,13 @@ void removeAspectRatio(TransInfo *t, float vec[2])
if ((sima->flag & SI_COORDFLOATS) == 0) {
int width, height;
- ED_space_image_size(sima, &width, &height);
+ ED_space_image_get_size(sima, &width, &height);
vec[0] /= width;
vec[1] /= height;
}
- ED_space_image_uv_aspect(sima, &aspx, &aspy);
+ ED_space_image_get_uv_aspect(sima, &aspx, &aspy);
vec[0] *= aspx;
vec[1] *= aspy;
}
@@ -402,10 +490,17 @@ static void viewRedrawForce(const bContext *C, TransInfo *t)
WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, NULL);
}
else if (t->spacetype == SPACE_IMAGE) {
- // XXX how to deal with lock?
- SpaceImage *sima = (SpaceImage *)t->sa->spacedata.first;
- if (sima->lock) WM_event_add_notifier(C, NC_GEOM | ND_DATA, t->obedit->data);
- else ED_area_tag_redraw(t->sa);
+ if (t->options & CTX_MASK) {
+ Mask *mask = CTX_data_edit_mask(C);
+
+ WM_event_add_notifier(C, NC_MASK | NA_EDITED, mask);
+ }
+ else {
+ // XXX how to deal with lock?
+ SpaceImage *sima = (SpaceImage *)t->sa->spacedata.first;
+ if (sima->lock) WM_event_add_notifier(C, NC_GEOM | ND_DATA, t->obedit->data);
+ else ED_area_tag_redraw(t->sa);
+ }
}
else if (t->spacetype == SPACE_CLIP) {
SpaceClip *sc = (SpaceClip *)t->sa->spacedata.first;
@@ -419,7 +514,7 @@ static void viewRedrawForce(const bContext *C, TransInfo *t)
WM_event_add_notifier(C, NC_MOVIECLIP | NA_EDITED, clip);
}
else if (ED_space_clip_check_show_maskedit(sc)) {
- Mask *mask = ED_space_clip_get_mask(sc);
+ Mask *mask = CTX_data_edit_mask(C);
WM_event_add_notifier(C, NC_MASK | NA_EDITED, mask);
}
@@ -736,7 +831,7 @@ int transformEvent(TransInfo *t, wmEvent *event)
float mati[3][3] = MAT3_UNITY;
char cmode = constraintModeToChar(t);
int handled = 1;
-
+
t->redraw |= handleMouseInput(t, &t->mouse, event);
if (event->type == MOUSEMOVE) {
@@ -931,7 +1026,7 @@ int transformEvent(TransInfo *t, wmEvent *event)
if (t->flag & T_PROP_EDIT) {
t->prop_size *= 1.1f;
if (t->spacetype == SPACE_VIEW3D && t->persp != RV3D_ORTHO)
- t->prop_size = MIN2(t->prop_size, ((View3D *)t->view)->far);
+ t->prop_size = minf(t->prop_size, ((View3D *)t->view)->far);
calculatePropRatio(t);
}
t->redraw |= TREDRAW_HARD;
@@ -1101,7 +1196,7 @@ int transformEvent(TransInfo *t, wmEvent *event)
if (event->alt && t->flag & T_PROP_EDIT) {
t->prop_size *= 1.1f;
if (t->spacetype == SPACE_VIEW3D && t->persp != RV3D_ORTHO)
- t->prop_size = MIN2(t->prop_size, ((View3D *)t->view)->far);
+ t->prop_size = minf(t->prop_size, ((View3D *)t->view)->far);
calculatePropRatio(t);
}
t->redraw = 1;
@@ -1180,10 +1275,13 @@ int transformEvent(TransInfo *t, wmEvent *event)
if (t->handleEvent)
t->redraw |= t->handleEvent(t, event);
- if (handled || t->redraw)
+ if (handled || t->redraw) {
+ t->last_update = PIL_check_seconds_timer();
return 0;
- else
+ }
+ else {
return OPERATOR_PASS_THROUGH;
+ }
}
int calculateTransformCenter(bContext *C, int centerMode, float cent3d[3], int cent2d[2])
@@ -1302,10 +1400,11 @@ static void drawArc(float size, float angle_start, float angle_end, int segments
{
float delta = (angle_end - angle_start) / segments;
float angle;
+ int a;
glBegin(GL_LINE_STRIP);
- for (angle = angle_start; angle < angle_end; angle += delta) {
+ for (angle = angle_start, a = 0; a < segments; angle += delta, a++) {
glVertex2f(cosf(angle) * size, sinf(angle) * size);
}
glVertex2f(cosf(angle_end) * size, sinf(angle_end) * size);
@@ -1392,8 +1491,8 @@ static void drawHelpline(bContext *UNUSED(C), int x, int y, void *customdata)
float dx = t->mval[0] - cent[0], dy = t->mval[1] - cent[1];
float angle = atan2f(dy, dx);
float dist = sqrtf(dx * dx + dy * dy);
- float delta_angle = MIN2(15.0f / dist, (float)M_PI / 4.0f);
- float spacing_angle = MIN2(5.0f / dist, (float)M_PI / 12.0f);
+ float delta_angle = minf(15.0f / dist, (float)M_PI / 4.0f);
+ float spacing_angle = minf(5.0f / dist, (float)M_PI / 12.0f);
UI_ThemeColor(TH_WIRE);
setlinestyle(3);
@@ -1455,7 +1554,7 @@ static void drawHelpline(bContext *UNUSED(C), int x, int y, void *customdata)
}
}
-static void drawTransformView(const struct bContext *C, struct ARegion *UNUSED(ar), void *arg)
+static void drawTransformView(const struct bContext *C, ARegion *UNUSED(ar), void *arg)
{
TransInfo *t = arg;
@@ -1465,14 +1564,66 @@ static void drawTransformView(const struct bContext *C, struct ARegion *UNUSED(a
drawNonPropEdge(C, t);
}
-#if 0
-static void drawTransformPixel(const struct bContext *UNUSED(C), struct ARegion *UNUSED(ar), void *UNUSED(arg))
+/* just draw a little warning message in the top-right corner of the viewport to warn that autokeying is enabled */
+static void drawAutoKeyWarning(TransInfo *t, ARegion *ar)
{
-// TransInfo *t = arg;
-//
-// drawHelpline(C, t->mval[0], t->mval[1], t);
+ int show_warning;
+
+ /* red border around the viewport */
+ UI_ThemeColor(TH_REDALERT);
+
+ glBegin(GL_LINE_LOOP);
+ glVertex2f(1, 1);
+ glVertex2f(1, ar->winy-1);
+ glVertex2f(ar->winx-1, ar->winy-1);
+ glVertex2f(ar->winx-1, 1);
+ glEnd();
+
+ /* Entire warning should "blink" to catch periphery attention without being overly distracting
+ * much like how a traditional recording sign in the corner of a camcorder works
+ *
+ * - Blink frequency here is 0.5 secs (i.e. a compromise between epilepsy-inducing flicker + too slow to notice).
+ * We multiply by two to speed up the odd/even time-in-seconds = on/off toggle.
+ * - Always start with warning shown so that animators are more likely to notice when starting to transform
+ */
+
+ show_warning = ((int)((t->last_update - floor(t->last_update)) * 2.0) & 1);
+
+ if ((show_warning) || (t->state == TRANS_STARTING)) {
+ const char printable[] = "Auto Keying On";
+ int xco, yco;
+
+ xco = ar->winx - BLF_width_default(printable) - 10;
+ yco = ar->winy - BLF_height_default(printable) - 10;
+
+ /* red warning text */
+ UI_ThemeColor(TH_REDALERT);
+ BLF_draw_default_ascii(xco, ar->winy - 17, 0.0f, printable, sizeof(printable));
+
+ /* autokey recording icon... */
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_BLEND);
+
+ xco -= (ICON_DEFAULT_WIDTH + 2);
+ UI_icon_draw(xco, yco, ICON_REC);
+
+ glDisable(GL_BLEND);
+ }
+}
+
+static void drawTransformPixel(const struct bContext *UNUSED(C), ARegion *ar, void *arg)
+{
+ TransInfo *t = arg;
+ Scene *scene = t->scene;
+ Object *ob = OBACT;
+
+ /* draw autokeyframing hint in the corner */
+ if ((U.autokey_flag & AUTOKEY_FLAG_NOWARNING) == 0) {
+ if (ob && autokeyframe_cfra_can_key(scene, &ob->id)) {
+ drawAutoKeyWarning(t, ar);
+ }
+ }
}
-#endif
void saveTransform(bContext *C, TransInfo *t, wmOperator *op)
{
@@ -1642,7 +1793,7 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int
t->draw_handle_apply = ED_region_draw_cb_activate(t->ar->type, drawTransformApply, t, REGION_DRAW_PRE_VIEW);
t->draw_handle_view = ED_region_draw_cb_activate(t->ar->type, drawTransformView, t, REGION_DRAW_POST_VIEW);
- //t->draw_handle_pixel = ED_region_draw_cb_activate(t->ar->type, drawTransformPixel, t, REGION_DRAW_POST_PIXEL);
+ t->draw_handle_pixel = ED_region_draw_cb_activate(t->ar->type, drawTransformPixel, t, REGION_DRAW_POST_PIXEL);
t->draw_handle_cursor = WM_paint_cursor_activate(CTX_wm_manager(C), helpline_poll, drawHelpline, t);
}
else if (t->spacetype == SPACE_IMAGE) {
@@ -1673,19 +1824,25 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int
/* Stupid code to have Ctrl-Click on manipulator work ok */
if (event) {
- wmKeyMap *keymap = WM_keymap_active(CTX_wm_manager(C), op->type->modalkeymap);
- wmKeyMapItem *kmi;
-
- for (kmi = keymap->items.first; kmi; kmi = kmi->next) {
- if (kmi->propvalue == TFM_MODAL_SNAP_INV_ON && kmi->val == KM_PRESS) {
- if ((ELEM(kmi->type, LEFTCTRLKEY, RIGHTCTRLKEY) && event->ctrl) ||
- (ELEM(kmi->type, LEFTSHIFTKEY, RIGHTSHIFTKEY) && event->shift) ||
- (ELEM(kmi->type, LEFTALTKEY, RIGHTALTKEY) && event->alt) ||
- ((kmi->type == OSKEY) && event->oskey) )
- {
- t->modifiers |= MOD_SNAP_INVERT;
+ /* do this only for translation/rotation/resize due to only this
+ * moded are available from manipulator and doing such check could
+ * lead to keymap conflicts for other modes (see #31584)
+ */
+ if (ELEM3(mode, TFM_TRANSLATION, TFM_ROTATION, TFM_RESIZE)) {
+ wmKeyMap *keymap = WM_keymap_active(CTX_wm_manager(C), op->type->modalkeymap);
+ wmKeyMapItem *kmi;
+
+ for (kmi = keymap->items.first; kmi; kmi = kmi->next) {
+ if (kmi->propvalue == TFM_MODAL_SNAP_INV_ON && kmi->val == KM_PRESS) {
+ if ((ELEM(kmi->type, LEFTCTRLKEY, RIGHTCTRLKEY) && event->ctrl) ||
+ (ELEM(kmi->type, LEFTSHIFTKEY, RIGHTSHIFTKEY) && event->shift) ||
+ (ELEM(kmi->type, LEFTALTKEY, RIGHTALTKEY) && event->alt) ||
+ ((kmi->type == OSKEY) && event->oskey) )
+ {
+ t->modifiers |= MOD_SNAP_INVERT;
+ }
+ break;
}
- break;
}
}
@@ -1901,7 +2058,7 @@ void transformApply(bContext *C, TransInfo *t)
t->context = NULL;
}
-static void drawTransformApply(const bContext *C, struct ARegion *UNUSED(ar), void *arg)
+static void drawTransformApply(const bContext *C, ARegion *UNUSED(ar), void *arg)
{
TransInfo *t = arg;
@@ -2108,7 +2265,6 @@ static void constraintTransLim(TransInfo *t, TransData *td)
for (con = td->con; con; con = con->next) {
bConstraintTypeInfo *cti = NULL;
ListBase targets = {NULL, NULL};
- float tmat[4][4];
/* only consider constraint if enabled */
if (con->flag & CONSTRAINT_DISABLE) continue;
@@ -2134,8 +2290,7 @@ static void constraintTransLim(TransInfo *t, TransData *td)
/* do space conversions */
if (con->ownspace == CONSTRAINT_SPACE_WORLD) {
/* just multiply by td->mtx (this should be ok) */
- copy_m4_m4(tmat, cob.matrix);
- mul_m4_m3m4(cob.matrix, td->mtx, tmat);
+ mul_m4_m3m4(cob.matrix, td->mtx, cob.matrix);
}
else if (con->ownspace != CONSTRAINT_SPACE_LOCAL) {
/* skip... incompatable spacetype */
@@ -2150,9 +2305,8 @@ static void constraintTransLim(TransInfo *t, TransData *td)
/* convert spaces again */
if (con->ownspace == CONSTRAINT_SPACE_WORLD) {
- /* just multiply by td->mtx (this should be ok) */
- copy_m4_m4(tmat, cob.matrix);
- mul_m4_m3m4(cob.matrix, td->smtx, tmat);
+ /* just multiply by td->smtx (this should be ok) */
+ mul_m4_m3m4(cob.matrix, td->smtx, cob.matrix);
}
/* free targets list */
@@ -2200,18 +2354,17 @@ static void constraintRotLim(TransInfo *UNUSED(t), TransData *td)
bConstraintOb cob;
bConstraint *con;
int do_limit = FALSE;
-
+
/* Evaluate valid constraints */
for (con = td->con; con; con = con->next) {
/* only consider constraint if enabled */
if (con->flag & CONSTRAINT_DISABLE) continue;
if (con->enforce == 0.0f) continue;
-
+
/* we're only interested in Limit-Rotation constraints */
if (con->type == CONSTRAINT_TYPE_ROTLIMIT) {
bRotLimitConstraint *data = con->data;
- float tmat[4][4];
-
+
/* only use it if it's tagged for this purpose */
if ((data->flag2 & LIMIT_TRANSFORM) == 0)
continue;
@@ -2225,12 +2378,11 @@ static void constraintRotLim(TransInfo *UNUSED(t), TransData *td)
constraintob_from_transdata(&cob, td);
do_limit = TRUE;
}
-
+
/* do space conversions */
if (con->ownspace == CONSTRAINT_SPACE_WORLD) {
/* just multiply by td->mtx (this should be ok) */
- copy_m4_m4(tmat, cob.matrix);
- mul_m4_m3m4(cob.matrix, td->mtx, tmat);
+ mul_m4_m3m4(cob.matrix, td->mtx, cob.matrix);
}
/* do constraint */
@@ -2238,9 +2390,8 @@ static void constraintRotLim(TransInfo *UNUSED(t), TransData *td)
/* convert spaces again */
if (con->ownspace == CONSTRAINT_SPACE_WORLD) {
- /* just multiply by td->mtx (this should be ok) */
- copy_m4_m4(tmat, cob.matrix);
- mul_m4_m3m4(cob.matrix, td->smtx, tmat);
+ /* just multiply by td->smtx (this should be ok) */
+ mul_m4_m3m4(cob.matrix, td->smtx, cob.matrix);
}
}
}
@@ -2295,7 +2446,6 @@ static void constraintSizeLim(TransInfo *t, TransData *td)
/* we're only interested in Limit-Scale constraints */
if (con->type == CONSTRAINT_TYPE_SIZELIMIT) {
bSizeLimitConstraint *data = con->data;
- float tmat[4][4];
/* only use it if it's tagged for this purpose */
if ((data->flag2 & LIMIT_TRANSFORM) == 0)
@@ -2304,11 +2454,10 @@ static void constraintSizeLim(TransInfo *t, TransData *td)
/* do space conversions */
if (con->ownspace == CONSTRAINT_SPACE_WORLD) {
/* just multiply by td->mtx (this should be ok) */
- copy_m4_m4(tmat, cob.matrix);
- mul_m4_m3m4(cob.matrix, td->mtx, tmat);
+ mul_m4_m3m4(cob.matrix, td->mtx, cob.matrix);
}
else if (con->ownspace != CONSTRAINT_SPACE_LOCAL) {
- /* skip... incompatable spacetype */
+ /* skip... incompatible spacetype */
continue;
}
@@ -2317,13 +2466,12 @@ static void constraintSizeLim(TransInfo *t, TransData *td)
/* convert spaces again */
if (con->ownspace == CONSTRAINT_SPACE_WORLD) {
- /* just multiply by td->mtx (this should be ok) */
- copy_m4_m4(tmat, cob.matrix);
- mul_m4_m3m4(cob.matrix, td->smtx, tmat);
+ /* just multiply by td->smtx (this should be ok) */
+ mul_m4_m3m4(cob.matrix, td->smtx, cob.matrix);
}
}
}
-
+
/* copy results from cob->matrix */
if ((td->flag & TD_SINGLESIZE) && !(t->con.mode & CON_APPLY)) {
/* scale val and reset size */
@@ -2333,7 +2481,7 @@ static void constraintSizeLim(TransInfo *t, TransData *td)
/* Reset val if SINGLESIZE but using a constraint */
if (td->flag & TD_SINGLESIZE)
return;
-
+
mat4_to_size(td->ext->size, cob.matrix);
}
}
@@ -2379,8 +2527,9 @@ void initWarp(TransInfo *t)
mul_m3_v3(t->data[i].mtx, center);
mul_m4_v3(t->viewmat, center);
sub_v3_v3(center, t->viewmat[3]);
- if (i)
+ if (i) {
minmax_v3v3_v3(min, max, center);
+ }
else {
copy_v3_v3(max, center);
copy_v3_v3(min, center);
@@ -2446,7 +2595,7 @@ int Warp(TransInfo *t, const int UNUSED(mval[2]))
/* header print for NumInput */
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
outputNumInput(&(t->num), c);
@@ -2575,7 +2724,7 @@ int Shear(TransInfo *t, const int UNUSED(mval[2]))
/* header print for NumInput */
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
outputNumInput(&(t->num), c);
@@ -2661,15 +2810,15 @@ void initResize(TransInfo *t)
static void headerResize(TransInfo *t, float vec[3], char *str)
{
- char tvec[60];
+ char tvec[NUM_STR_REP_LEN * 3];
char *spos = str;
if (hasNumInput(&t->num)) {
outputNumInput(&(t->num), tvec);
}
else {
- BLI_snprintf(&tvec[0], 20, "%.4f", vec[0]);
- BLI_snprintf(&tvec[20], 20, "%.4f", vec[1]);
- BLI_snprintf(&tvec[40], 20, "%.4f", vec[2]);
+ BLI_snprintf(&tvec[0], NUM_STR_REP_LEN, "%.4f", vec[0]);
+ BLI_snprintf(&tvec[NUM_STR_REP_LEN], NUM_STR_REP_LEN, "%.4f", vec[1]);
+ BLI_snprintf(&tvec[NUM_STR_REP_LEN * 2], NUM_STR_REP_LEN, "%.4f", vec[2]);
}
if (t->con.mode & CON_APPLY) {
@@ -2678,17 +2827,23 @@ static void headerResize(TransInfo *t, float vec[3], char *str)
spos += sprintf(spos, "Scale: %s%s %s", &tvec[0], t->con.text, t->proptext);
break;
case 1:
- spos += sprintf(spos, "Scale: %s : %s%s %s", &tvec[0], &tvec[20], t->con.text, t->proptext);
+ spos += sprintf(spos, "Scale: %s : %s%s %s", &tvec[0], &tvec[NUM_STR_REP_LEN],
+ t->con.text, t->proptext);
break;
case 2:
- spos += sprintf(spos, "Scale: %s : %s : %s%s %s", &tvec[0], &tvec[20], &tvec[40], t->con.text, t->proptext);
+ spos += sprintf(spos, "Scale: %s : %s : %s%s %s", &tvec[0], &tvec[NUM_STR_REP_LEN],
+ &tvec[NUM_STR_REP_LEN * 2], t->con.text, t->proptext);
}
}
else {
- if (t->flag & T_2D_EDIT)
- spos += sprintf(spos, "Scale X: %s Y: %s%s %s", &tvec[0], &tvec[20], t->con.text, t->proptext);
- else
- spos += sprintf(spos, "Scale X: %s Y: %s Z: %s%s %s", &tvec[0], &tvec[20], &tvec[40], t->con.text, t->proptext);
+ if (t->flag & T_2D_EDIT) {
+ spos += sprintf(spos, "Scale X: %s Y: %s%s %s", &tvec[0], &tvec[NUM_STR_REP_LEN],
+ t->con.text, t->proptext);
+ }
+ else {
+ spos += sprintf(spos, "Scale X: %s Y: %s Z: %s%s %s", &tvec[0], &tvec[NUM_STR_REP_LEN],
+ &tvec[NUM_STR_REP_LEN * 2], t->con.text, t->proptext);
+ }
}
if (t->flag & (T_PROP_EDIT | T_PROP_CONNECTED)) {
@@ -2758,11 +2913,11 @@ static void ElementResize(TransInfo *t, TransData *td, float mat[3][3])
if (t->flag & (T_OBJECT | T_TEXTURE | T_POSE)) {
float obsizemat[3][3];
- // Reorient the size mat to fit the oriented object.
+ /* Reorient the size mat to fit the oriented object. */
mul_m3_m3m3(obsizemat, tmat, td->axismtx);
- //print_m3("obsizemat", obsizemat);
+ /* print_m3("obsizemat", obsizemat); */
TransMat3ToSize(obsizemat, td->axismtx, fsize);
- //print_v3("fsize", fsize);
+ /* print_v3("fsize", fsize); */
}
else {
mat3_to_size(fsize, tmat);
@@ -2770,7 +2925,7 @@ static void ElementResize(TransInfo *t, TransData *td, float mat[3][3])
protectedSizeBits(td->protectflag, fsize);
- if ((t->flag & T_V3D_ALIGN) == 0) { // align mode doesn't resize objects itself
+ if ((t->flag & T_V3D_ALIGN) == 0) { /* align mode doesn't resize objects itself */
if ((td->flag & TD_SINGLESIZE) && !(t->con.mode & CON_APPLY)) {
/* scale val and reset size */
*td->val = td->ival * (1 + (fsize[0] - 1) * td->factor);
@@ -2881,6 +3036,14 @@ int Resize(TransInfo *t, const int mval[2])
for (i = 0, td = t->data; i < t->total; i++, td++)
ElementResize(t, td, mat);
+
+ /* In proportional edit it can happen that */
+ /* vertices in the radius of the brush end */
+ /* outside the clipping area */
+ /* XXX HACK - dg */
+ if (t->flag & (T_PROP_EDIT | T_PROP_CONNECTED)) {
+ clipUVData(t);
+ }
}
recalcData(t);
@@ -3034,7 +3197,7 @@ int ToSphere(TransInfo *t, const int UNUSED(mval[2]))
/* header print for NumInput */
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
outputNumInput(&(t->num), c);
@@ -3380,7 +3543,7 @@ int Rotation(TransInfo *t, const int UNUSED(mval[2]))
applySnapping(t, &final);
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
applyNumInput(&t->num, &final);
@@ -3479,13 +3642,13 @@ int Trackball(TransInfo *t, const int UNUSED(mval[2]))
snapGrid(t, phi);
if (hasNumInput(&t->num)) {
- char c[40];
+ char c[NUM_STR_REP_LEN * 2];
applyNumInput(&t->num, phi);
outputNumInput(&(t->num), c);
- spos += sprintf(spos, "Trackball: %s %s %s", &c[0], &c[20], t->proptext);
+ spos += sprintf(spos, "Trackball: %s %s %s", &c[0], &c[NUM_STR_REP_LEN], t->proptext);
phi[0] = DEG2RADF(phi[0]);
phi[1] = DEG2RADF(phi[1]);
@@ -3564,9 +3727,9 @@ void initTranslation(TransInfo *t)
static void headerTranslation(TransInfo *t, float vec[3], char *str)
{
char *spos = str;
- char tvec[60];
- char distvec[20];
- char autoik[20];
+ char tvec[NUM_STR_REP_LEN * 3];
+ char distvec[NUM_STR_REP_LEN];
+ char autoik[NUM_STR_REP_LEN];
float dist;
if (hasNumInput(&t->num)) {
@@ -3583,13 +3746,15 @@ static void headerTranslation(TransInfo *t, float vec[3], char *str)
if (!(t->flag & T_2D_EDIT) && t->scene->unit.system) {
int i, do_split = t->scene->unit.flag & USER_UNIT_OPT_SPLIT ? 1 : 0;
- for (i = 0; i < 3; i++)
- bUnit_AsString(&tvec[i * 20], 20, dvec[i] * t->scene->unit.scale_length, 4, t->scene->unit.system, B_UNIT_LENGTH, do_split, 1);
+ for (i = 0; i < 3; i++) {
+ bUnit_AsString(&tvec[i * NUM_STR_REP_LEN], NUM_STR_REP_LEN, dvec[i] * t->scene->unit.scale_length,
+ 4, t->scene->unit.system, B_UNIT_LENGTH, do_split, 1);
+ }
}
else {
sprintf(&tvec[0], "%.4f", dvec[0]);
- sprintf(&tvec[20], "%.4f", dvec[1]);
- sprintf(&tvec[40], "%.4f", dvec[2]);
+ sprintf(&tvec[NUM_STR_REP_LEN], "%.4f", dvec[1]);
+ sprintf(&tvec[NUM_STR_REP_LEN * 2], "%.4f", dvec[2]);
}
}
@@ -3617,17 +3782,23 @@ static void headerTranslation(TransInfo *t, float vec[3], char *str)
spos += sprintf(spos, "D: %s (%s)%s %s %s", &tvec[0], distvec, t->con.text, t->proptext, &autoik[0]);
break;
case 1:
- spos += sprintf(spos, "D: %s D: %s (%s)%s %s %s", &tvec[0], &tvec[20], distvec, t->con.text, t->proptext, &autoik[0]);
+ spos += sprintf(spos, "D: %s D: %s (%s)%s %s %s", &tvec[0], &tvec[NUM_STR_REP_LEN],
+ distvec, t->con.text, t->proptext, &autoik[0]);
break;
case 2:
- spos += sprintf(spos, "D: %s D: %s D: %s (%s)%s %s %s", &tvec[0], &tvec[20], &tvec[40], distvec, t->con.text, t->proptext, &autoik[0]);
+ spos += sprintf(spos, "D: %s D: %s D: %s (%s)%s %s %s", &tvec[0], &tvec[NUM_STR_REP_LEN],
+ &tvec[NUM_STR_REP_LEN * 2], distvec, t->con.text, t->proptext, &autoik[0]);
}
}
else {
- if (t->flag & T_2D_EDIT)
- spos += sprintf(spos, "Dx: %s Dy: %s (%s)%s %s", &tvec[0], &tvec[20], distvec, t->con.text, t->proptext);
- else
- spos += sprintf(spos, "Dx: %s Dy: %s Dz: %s (%s)%s %s %s", &tvec[0], &tvec[20], &tvec[40], distvec, t->con.text, t->proptext, &autoik[0]);
+ if (t->flag & T_2D_EDIT) {
+ spos += sprintf(spos, "Dx: %s Dy: %s (%s)%s %s", &tvec[0], &tvec[NUM_STR_REP_LEN],
+ distvec, t->con.text, t->proptext);
+ }
+ else {
+ spos += sprintf(spos, "Dx: %s Dy: %s Dz: %s (%s)%s %s %s", &tvec[0], &tvec[NUM_STR_REP_LEN],
+ &tvec[NUM_STR_REP_LEN * 2], distvec, t->con.text, t->proptext, &autoik[0]);
+ }
}
if (t->flag & (T_PROP_EDIT | T_PROP_CONNECTED)) {
@@ -3731,9 +3902,18 @@ int Translation(TransInfo *t, const int UNUSED(mval[2]))
applyTranslation(t, t->values);
/* evil hack - redo translation if clipping needed */
- if (t->flag & T_CLIP_UV && clipUVTransform(t, t->values, 0))
+ if (t->flag & T_CLIP_UV && clipUVTransform(t, t->values, 0)) {
applyTranslation(t, t->values);
+ /* In proportional edit it can happen that */
+ /* vertices in the radius of the brush end */
+ /* outside the clipping area */
+ /* XXX HACK - dg */
+ if (t->flag & (T_PROP_EDIT | T_PROP_CONNECTED)) {
+ clipUVData(t);
+ }
+ }
+
recalcData(t);
ED_area_headerprint(t->sa, str);
@@ -3785,7 +3965,7 @@ int ShrinkFatten(TransInfo *t, const int UNUSED(mval[2]))
/* header print for NumInput */
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
outputNumInput(&(t->num), c);
@@ -3796,7 +3976,7 @@ int ShrinkFatten(TransInfo *t, const int UNUSED(mval[2]))
sprintf(str, "Shrink/Fatten: %.4f %s", distance, t->proptext);
}
- t->values[0] = distance;
+ t->values[0] = -distance;
for (i = 0; i < t->total; i++, td++) {
if (td->flag & TD_NOACTION)
@@ -3854,18 +4034,21 @@ int Tilt(TransInfo *t, const int UNUSED(mval[2]))
snapGrid(t, &final);
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
applyNumInput(&t->num, &final);
outputNumInput(&(t->num), c);
- sprintf(str, "Tilt: %s %s", &c[0], t->proptext);
+ sprintf(str, "Tilt: %s° %s", &c[0], t->proptext);
final = DEG2RADF(final);
+
+ /* XXX For some reason, this seems needed for this op, else RNA prop is not updated... :/ */
+ t->values[0] = final;
}
else {
- sprintf(str, "Tilt: %.2f %s", RAD2DEGF(final), t->proptext);
+ sprintf(str, "Tilt: %.2f° %s", RAD2DEGF(final), t->proptext);
}
for (i = 0; i < t->total; i++, td++) {
@@ -3926,7 +4109,7 @@ int CurveShrinkFatten(TransInfo *t, const int UNUSED(mval[2]))
/* header print for NumInput */
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
outputNumInput(&(t->num), c);
sprintf(str, "Shrink/Fatten: %s", c);
@@ -3981,9 +4164,9 @@ void initMaskShrinkFatten(TransInfo *t)
int MaskShrinkFatten(TransInfo *t, const int UNUSED(mval[2]))
{
- TransData *td = t->data;
+ TransData *td;
float ratio;
- int i;
+ int i, initial_feather = FALSE;
char str[50];
ratio = t->values[0];
@@ -3994,16 +4177,33 @@ int MaskShrinkFatten(TransInfo *t, const int UNUSED(mval[2]))
/* header print for NumInput */
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
outputNumInput(&(t->num), c);
- sprintf(str, "Shrink/Fatten: %s", c);
+ sprintf(str, "Feather Shrink/Fatten: %s", c);
}
else {
- sprintf(str, "Shrink/Fatten: %3f", ratio);
+ sprintf(str, "Feather Shrink/Fatten: %3f", ratio);
}
- for (i = 0; i < t->total; i++, td++) {
+ /* detect if no points have feather yet */
+ if (ratio > 1.0f) {
+ initial_feather = TRUE;
+
+ for (td = t->data, i = 0; i < t->total; i++, td++) {
+ if (td->flag & TD_NOACTION)
+ break;
+
+ if (td->flag & TD_SKIP)
+ continue;
+
+ if (td->ival >= 0.001f)
+ initial_feather = FALSE;
+ }
+ }
+
+ /* apply shrink/fatten */
+ for (td = t->data, i = 0; i < t->total; i++, td++) {
if (td->flag & TD_NOACTION)
break;
@@ -4011,7 +4211,11 @@ int MaskShrinkFatten(TransInfo *t, const int UNUSED(mval[2]))
continue;
if (td->val) {
- *td->val = td->ival * ratio;
+ if (initial_feather)
+ *td->val = td->ival + (ratio - 1.0f) * 0.01f;
+ else
+ *td->val = td->ival * ratio;
+
/* apply PET */
*td->val = (*td->val * td->factor) + ((1.0f - td->factor) * td->ival);
if (*td->val <= 0.0f) *td->val = 0.001f;
@@ -4060,7 +4264,7 @@ int PushPull(TransInfo *t, const int UNUSED(mval[2]))
/* header print for NumInput */
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
outputNumInput(&(t->num), c);
@@ -4196,7 +4400,7 @@ int Bevel(TransInfo *t, const int UNUSED(mval[2]))
/* header print for NumInput */
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
outputNumInput(&(t->num), c);
@@ -4263,7 +4467,7 @@ int BevelWeight(TransInfo *t, const int UNUSED(mval[2]))
/* header print for NumInput */
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
outputNumInput(&(t->num), c);
@@ -4336,7 +4540,7 @@ int Crease(TransInfo *t, const int UNUSED(mval[2]))
/* header print for NumInput */
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
outputNumInput(&(t->num), c);
@@ -4396,14 +4600,14 @@ void initBoneSize(TransInfo *t)
static void headerBoneSize(TransInfo *t, float vec[3], char *str)
{
- char tvec[60];
+ char tvec[NUM_STR_REP_LEN * 3];
if (hasNumInput(&t->num)) {
outputNumInput(&(t->num), tvec);
}
else {
sprintf(&tvec[0], "%.4f", vec[0]);
- sprintf(&tvec[20], "%.4f", vec[1]);
- sprintf(&tvec[40], "%.4f", vec[2]);
+ sprintf(&tvec[NUM_STR_REP_LEN], "%.4f", vec[1]);
+ sprintf(&tvec[NUM_STR_REP_LEN * 2], "%.4f", vec[2]);
}
/* hmm... perhaps the y-axis values don't need to be shown? */
@@ -4411,10 +4615,12 @@ static void headerBoneSize(TransInfo *t, float vec[3], char *str)
if (t->num.idx_max == 0)
sprintf(str, "ScaleB: %s%s %s", &tvec[0], t->con.text, t->proptext);
else
- sprintf(str, "ScaleB: %s : %s : %s%s %s", &tvec[0], &tvec[20], &tvec[40], t->con.text, t->proptext);
+ sprintf(str, "ScaleB: %s : %s : %s%s %s", &tvec[0], &tvec[NUM_STR_REP_LEN], &tvec[NUM_STR_REP_LEN * 2],
+ t->con.text, t->proptext);
}
else {
- sprintf(str, "ScaleB X: %s Y: %s Z: %s%s %s", &tvec[0], &tvec[20], &tvec[40], t->con.text, t->proptext);
+ sprintf(str, "ScaleB X: %s Y: %s Z: %s%s %s", &tvec[0], &tvec[NUM_STR_REP_LEN], &tvec[NUM_STR_REP_LEN * 2],
+ t->con.text, t->proptext);
}
}
@@ -4527,7 +4733,7 @@ int BoneEnvelope(TransInfo *t, const int UNUSED(mval[2]))
/* header print for NumInput */
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
outputNumInput(&(t->num), c);
sprintf(str, "Envelope: %s", c);
@@ -4653,12 +4859,12 @@ static void calcNonProportionalEdgeSlide(TransInfo *t, SlideData *sld, const flo
sv->edge_len = len_v3v3(dw_p, up_p);
mul_v3_m4v3(v_proj, t->obedit->obmat, sv->v->co);
- project_float_noclip(t->ar, v_proj, v_proj);
-
- dist = len_squared_v2v2(mval, v_proj);
- if (dist < min_dist) {
- min_dist = dist;
- sld->curr_sv_index = i;
+ if (ED_view3d_project_float_global(t->ar, v_proj, v_proj, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ dist = len_squared_v2v2(mval, v_proj);
+ if (dist < min_dist) {
+ min_dist = dist;
+ sld->curr_sv_index = i;
+ }
}
}
}
@@ -4669,11 +4875,10 @@ static void calcNonProportionalEdgeSlide(TransInfo *t, SlideData *sld, const flo
static int createSlideVerts(TransInfo *t)
{
- Mesh *me = t->obedit->data;
- BMEditMesh *em = me->edit_btmesh;
+ BMEditMesh *em = BMEdit_FromObject(t->obedit);
BMesh *bm = em->bm;
BMIter iter, iter2;
- BMEdge *e, *e1 /*, *ee, *le */ /* UNUSED */;
+ BMEdge *e, *e1;
BMVert *v, *v2, *first;
BMLoop *l, *l1, *l2;
TransDataSlideVert *sv_array;
@@ -4685,9 +4890,10 @@ static int createSlideVerts(TransInfo *t)
ARegion *ar = t->ar;
float projectMat[4][4];
float mval[2] = {(float)t->mval[0], (float)t->mval[1]};
- float start[3] = {0.0f, 0.0f, 0.0f}, dir[3], end[3] = {0.0f, 0.0f, 0.0f};
- float vec[3], vec2[3], lastvec[3] /*, size, dis=0.0, z */ /* UNUSED */;
- int numsel, i, j;
+ float start[3] = {0.0f, 0.0f, 0.0f}, end[3] = {0.0f, 0.0f, 0.0f};
+ float vec[3], vec2[3] /*, lastvec[3], size, dis=0.0, z */ /* UNUSED */;
+ float dir[3], maxdist, (*loop_dir)[3], *loop_maxdist;
+ int numsel, i, j, loop_nr, l_nr;
if (t->spacetype == SPACE_VIEW3D) {
/* background mode support */
@@ -4762,6 +4968,7 @@ static int createSlideVerts(TransInfo *t)
}
sv_array = MEM_callocN(sizeof(TransDataSlideVert) * j, "sv_array");
+ loop_nr = 0;
j = 0;
while (1) {
@@ -4824,6 +5031,8 @@ static int createSlideVerts(TransInfo *t)
sv->v = v;
sv->origvert = *v;
+ sv->loop_nr = loop_nr;
+
copy_v3_v3(sv->upvec, vec);
if (l2)
copy_v3_v3(sv->downvec, vec2);
@@ -4846,6 +5055,7 @@ static int createSlideVerts(TransInfo *t)
sv = sv_array + j + 1;
sv->v = v;
sv->origvert = *v;
+ sv->loop_nr = loop_nr;
l = BM_face_other_edge_loop(l1->f, l1->e, v);
sv->up = BM_edge_other_vert(l->e, v);
@@ -4872,61 +5082,77 @@ static int createSlideVerts(TransInfo *t)
BM_elem_flag_disable(v, BM_ELEM_TAG);
BM_elem_flag_disable(v2, BM_ELEM_TAG);
} while (e != first->e && l1);
+
+ loop_nr++;
}
- //EDBM_flag_disable_all(em, BM_ELEM_SELECT);
+ /* EDBM_flag_disable_all(em, BM_ELEM_SELECT); */
sld->sv = sv_array;
sld->totsv = j;
- /*find mouse vector*/
- /* dis = z = -1.0f; */ /* UNUSED */
- /* size = 50.0; */ /* UNUSED */
- zero_v3(lastvec); zero_v3(dir);
- /* ee = le = NULL; */ /* UNUSED */
+ /* find mouse vectors, the global one, and one per loop in case we have
+ * multiple loops selected, in case they are oriented different */
+ zero_v3(dir);
+ maxdist = -1.0f;
+
+ loop_dir = MEM_callocN(sizeof(float) * 3 * loop_nr, "sv loop_dir");
+ loop_maxdist = MEM_callocN(sizeof(float) * loop_nr, "sv loop_maxdist");
+ for (j = 0; j < loop_nr; j++)
+ loop_maxdist[j] = -1.0f;
+
BM_ITER_MESH (e, &iter, bm, BM_EDGES_OF_MESH) {
if (BM_elem_flag_test(e, BM_ELEM_SELECT)) {
BMIter iter2;
BMEdge *e2;
- float vec1[3], dis2, mval[2] = {t->mval[0], t->mval[1]}, d;
-
+ float vec1[3], mval[2] = {t->mval[0], t->mval[1]}, d;
+
/* search cross edges for visible edge to the mouse cursor,
* then use the shared vertex to calculate screen vector*/
- dis2 = -1.0f;
for (i = 0; i < 2; i++) {
v = i ? e->v1 : e->v2;
BM_ITER_ELEM (e2, &iter2, v, BM_EDGES_OF_VERT) {
if (BM_elem_flag_test(e2, BM_ELEM_SELECT))
continue;
-
- if (v3d && !BMBVH_EdgeVisible(btree, e2, ar, v3d, t->obedit))
+
+ /* This test is only relevant if object is not wire-drawn! See [#32068]. */
+ if (v3d && t->obedit->dt > OB_WIRE && v3d->drawtype > OB_WIRE &&
+ !BMBVH_EdgeVisible(btree, e2, ar, v3d, t->obedit))
+ {
continue;
-
+ }
+
j = GET_INT_FROM_POINTER(BLI_smallhash_lookup(&table, (uintptr_t)v));
if (sv_array[j].down) {
- ED_view3d_project_float_v3(ar, sv_array[j].down->co, vec1, projectMat);
+ ED_view3d_project_float_v3_m4(ar, sv_array[j].down->co, vec1, projectMat);
}
else {
add_v3_v3v3(vec1, v->co, sv_array[j].downvec);
- ED_view3d_project_float_v3(ar, vec1, vec1, projectMat);
+ ED_view3d_project_float_v3_m4(ar, vec1, vec1, projectMat);
}
if (sv_array[j].up) {
- ED_view3d_project_float_v3(ar, sv_array[j].up->co, vec2, projectMat);
+ ED_view3d_project_float_v3_m4(ar, sv_array[j].up->co, vec2, projectMat);
}
else {
- add_v3_v3v3(vec1, v->co, sv_array[j].upvec);
- ED_view3d_project_float_v3(ar, vec2, vec2, projectMat);
+ add_v3_v3v3(vec2, v->co, sv_array[j].upvec);
+ ED_view3d_project_float_v3_m4(ar, vec2, vec2, projectMat);
}
-
+
+ /* global direction */
d = dist_to_line_segment_v2(mval, vec1, vec2);
- if (dis2 == -1.0f || d < dis2) {
- dis2 = d;
- /* ee = e2; */ /* UNUSED */
- /* size = len_v3v3(vec1, vec2); */ /* UNUSED */
+ if (maxdist == -1.0f || d < maxdist) {
+ maxdist = d;
sub_v3_v3v3(dir, vec1, vec2);
}
+
+ /* per loop direction */
+ l_nr = sv_array[j].loop_nr;
+ if (loop_maxdist[l_nr] == -1.0f || d < loop_maxdist[l_nr]) {
+ loop_maxdist[l_nr] = d;
+ sub_v3_v3v3(loop_dir[l_nr], vec1, vec2);
+ }
}
}
}
@@ -4960,6 +5186,14 @@ static int createSlideVerts(TransInfo *t)
}
BLI_smallhash_insert(&sld->vhash, (uintptr_t)sv_array->v, sv_array);
+
+ /* switch up/down if loop direction is different from global direction */
+ l_nr = sv_array->loop_nr;
+ if (dot_v3v3(loop_dir[l_nr], dir) < 0.0f) {
+ swap_v3_v3(sv_array->upvec, sv_array->downvec);
+ SWAP(BMVert, sv_array->vup, sv_array->vdown);
+ SWAP(BMVert*, sv_array->up, sv_array->down);
+ }
}
if (rv3d)
@@ -4970,7 +5204,7 @@ static int createSlideVerts(TransInfo *t)
/*zero out start*/
zero_v3(start);
-
+
/*dir holds a vector along edge loop*/
copy_v3_v3(end, dir);
mul_v3_fl(end, 0.5f);
@@ -4987,6 +5221,8 @@ static int createSlideVerts(TransInfo *t)
BLI_smallhash_release(&table);
BMBVH_FreeBVH(btree);
+ MEM_freeN(loop_dir);
+ MEM_freeN(loop_maxdist);
return 1;
}
@@ -5114,7 +5350,7 @@ void projectSVData(TransInfo *t, int final)
}
- if(!affected)
+ if (!affected)
continue;
/* only loop data, no vertex data since that contains shape keys,
@@ -5248,7 +5484,8 @@ int handleEventEdgeSlide(struct TransInfo *t, struct wmEvent *event)
return 1;
}
break;
- case FKEY: {
+ case FKEY:
+ {
if (event->val == KM_PRESS) {
if (sld->is_proportional == FALSE) {
sld->flipped_vtx = !sld->flipped_vtx;
@@ -5257,13 +5494,16 @@ int handleEventEdgeSlide(struct TransInfo *t, struct wmEvent *event)
}
break;
}
- case EVT_MODAL_MAP: {
+ case EVT_MODAL_MAP:
+ {
switch (event->val) {
- case TFM_MODAL_EDGESLIDE_DOWN: {
+ case TFM_MODAL_EDGESLIDE_DOWN:
+ {
sld->curr_sv_index = ((sld->curr_sv_index - 1) + sld->totsv) % sld->totsv;
break;
}
- case TFM_MODAL_EDGESLIDE_UP: {
+ case TFM_MODAL_EDGESLIDE_UP:
+ {
sld->curr_sv_index = (sld->curr_sv_index + 1) % sld->totsv;
break;
}
@@ -5359,42 +5599,42 @@ static int doEdgeSlide(TransInfo *t, float perc)
int i;
sld->perc = perc;
-
sv = svlist;
- for (i = 0; i < sld->totsv; i++, sv++) {
- if (sld->is_proportional == FALSE) {
- TransDataSlideVert *curr_sv = &sld->sv[sld->curr_sv_index];
- float cur_sel = curr_sv->edge_len;
- float cur_sv = sv->edge_len;
- float extd = 0.0f;
- float recip_cur_sv = 0.0f;
- if (cur_sel == 0.0f) cur_sel = 1.0f;
- if (cur_sv == 0.0f) cur_sv = 1.0f;
-
- recip_cur_sv = 1.0f / cur_sv;
-
- if (!sld->flipped_vtx) {
- extd = (cur_sv - cur_sel) * recip_cur_sv;
+ if (sld->is_proportional == TRUE) {
+ for (i = 0; i < sld->totsv; i++, sv++) {
+ if (perc > 0.0f) {
+ copy_v3_v3(vec, sv->upvec);
+ mul_v3_fl(vec, perc);
+ add_v3_v3v3(sv->v->co, sv->origvert.co, vec);
}
else {
- extd = (cur_sel - cur_sv) * recip_cur_sv;
+ copy_v3_v3(vec, sv->downvec);
+ mul_v3_fl(vec, -perc);
+ add_v3_v3v3(sv->v->co, sv->origvert.co, vec);
}
-
- extd += (sld->perc * cur_sel) * recip_cur_sv;
- CLAMP(extd, -1.0f, 1.0f);
- perc = extd;
}
+ }
+ else {
+ /**
+ * Implementation note, non proportional mode ignores the starting positions and uses only the
+ * up/down verts, this could be changed/improved so the distance is still met but the verts are moved along
+ * their original path (which may not be straight), however how it works now is OK and matches 2.4x - Campbell
+ */
+ TransDataSlideVert *curr_sv = &sld->sv[sld->curr_sv_index];
+ const float curr_length_perc = len_v3v3(curr_sv->up->co, curr_sv->down->co) *
+ (((sld->flipped_vtx ? perc : -perc) + 1.0f) / 2.0f);
- if (perc > 0.0f) {
- copy_v3_v3(vec, sv->upvec);
- mul_v3_fl(vec, perc);
- add_v3_v3v3(sv->v->co, sv->origvert.co, vec);
- }
- else {
- copy_v3_v3(vec, sv->downvec);
- mul_v3_fl(vec, -perc);
- add_v3_v3v3(sv->v->co, sv->origvert.co, vec);
+ for (i = 0; i < sld->totsv; i++, sv++) {
+ const float sv_length = len_v3v3(sv->up->co, sv->down->co);
+ const float fac = minf(sv_length, curr_length_perc) / sv_length;
+
+ if (sld->flipped_vtx) {
+ interp_v3_v3v3(sv->v->co, sv->down->co, sv->up->co, fac);
+ }
+ else {
+ interp_v3_v3v3(sv->v->co, sv->up->co, sv->down->co, fac);
+ }
}
}
@@ -5419,7 +5659,7 @@ int EdgeSlide(TransInfo *t, const int UNUSED(mval[2]))
CLAMP(final, -1.0f, 1.0f);
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
applyNumInput(&t->num, &final);
@@ -5485,7 +5725,7 @@ int BoneRoll(TransInfo *t, const int UNUSED(mval[2]))
snapGrid(t, &final);
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
applyNumInput(&t->num, &final);
@@ -5557,7 +5797,7 @@ int BakeTime(TransInfo *t, const int mval[2])
/* header print for NumInput */
if (hasNumInput(&t->num)) {
- char c[20];
+ char c[NUM_STR_REP_LEN];
outputNumInput(&(t->num), c);
@@ -5750,7 +5990,7 @@ void initSeqSlide(TransInfo *t)
static void headerSeqSlide(TransInfo *t, float val[2], char *str)
{
- char tvec[60];
+ char tvec[NUM_STR_REP_LEN * 3];
if (hasNumInput(&t->num)) {
outputNumInput(&(t->num), tvec);
@@ -5993,7 +6233,7 @@ void initTimeTranslate(TransInfo *t)
static void headerTimeTranslate(TransInfo *t, char *str)
{
- char tvec[60];
+ char tvec[NUM_STR_REP_LEN * 3];
/* if numeric input is active, use results from that, otherwise apply snapping to result */
if (hasNumInput(&t->num)) {
@@ -6148,7 +6388,7 @@ void initTimeSlide(TransInfo *t)
static void headerTimeSlide(TransInfo *t, float sval, char *str)
{
- char tvec[60];
+ char tvec[NUM_STR_REP_LEN * 3];
if (hasNumInput(&t->num)) {
outputNumInput(&(t->num), tvec);
@@ -6290,7 +6530,7 @@ void initTimeScale(TransInfo *t)
static void headerTimeScale(TransInfo *t, char *str)
{
- char tvec[60];
+ char tvec[NUM_STR_REP_LEN * 3];
if (hasNumInput(&t->num))
outputNumInput(&(t->num), tvec);
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index 3ab5bf7bbfb..40f53423d37 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -198,6 +198,8 @@ typedef struct TransDataSlideVert {
float edge_len;
float upvec[3], downvec[3];
+
+ int loop_nr;
} TransDataSlideVert;
typedef struct SlideData {
@@ -320,6 +322,8 @@ typedef struct TransInfo {
float auto_values[4];
float axis[3];
float axis_orig[3]; /* TransCon can change 'axis', store the original value here */
+
+ double last_update; /* Time of last update (in seconds) */
void *view;
struct bContext *context; /* Only valid (non null) during an operator called function. */
@@ -562,6 +566,7 @@ void remake_graph_transdata(TransInfo *t, struct ListBase *anim_data);
void flushTransUVs(TransInfo *t);
void flushTransParticles(TransInfo *t);
int clipUVTransform(TransInfo *t, float *vec, int resize);
+void clipUVData(TransInfo *t);
void flushTransNodes(TransInfo *t);
void flushTransSeq(TransInfo *t);
void flushTransTracking(TransInfo *t);
@@ -666,7 +671,7 @@ int initTransInfo(struct bContext *C, TransInfo *t, struct wmOperator *op, struc
void postTrans (struct bContext *C, TransInfo *t);
void resetTransRestrictions(TransInfo *t);
-void drawLine(TransInfo *t, float *center, float *dir, char axis, short options);
+void drawLine(TransInfo *t, const float center[3], const float dir[3], char axis, short options);
void drawNonPropEdge(const struct bContext *C, TransInfo *t);
diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c
index 034ea3eb704..0aa46a36afe 100644
--- a/source/blender/editors/transform/transform_constraints.c
+++ b/source/blender/editors/transform/transform_constraints.c
@@ -53,7 +53,6 @@
#include "BKE_context.h"
-
#include "ED_image.h"
#include "ED_view3d.h"
@@ -61,13 +60,8 @@
#include "BLI_utildefines.h"
#include "BLI_string.h"
-//#include "blendef.h"
-//
-//#include "mydevice.h"
-
#include "UI_resources.h"
-
#include "transform.h"
static void drawObjectConstraint(TransInfo *t);
@@ -294,7 +288,7 @@ static void planeProjection(TransInfo *t, float in[3], float out[3])
sub_v3_v3v3(vec, out, in);
factor = dot_v3v3(vec, norm);
- if (fabs(factor) <= 0.001) {
+ if (fabsf(factor) <= 0.001f) {
return; /* prevent divide by zero */
}
factor = dot_v3v3(vec, vec) / factor;
@@ -728,7 +722,13 @@ void drawPropCircle(const struct bContext *C, TransInfo *t)
else if (t->spacetype == SPACE_IMAGE) {
float aspx, aspy;
- ED_space_image_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
+ if (t->options & CTX_MASK) {
+ /* untested - mask aspect is TODO */
+ ED_space_image_get_aspect(t->sa->spacedata.first, &aspx, &aspy);
+ }
+ else {
+ ED_space_image_get_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
+ }
glScalef(1.0f / aspx, 1.0f / aspy, 1.0);
}
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index af0b33d58ae..2e9d1ee670f 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -438,7 +438,7 @@ static short apply_targetless_ik(Object *ob)
/* rotation */
/* [#22409] is partially caused by this, as slight numeric error introduced during
* the solving process leads to locked-axis values changing. However, we cannot modify
- * the values here, or else there are huge discreptancies between IK-solver (interactive)
+ * the values here, or else there are huge discrepancies between IK-solver (interactive)
* and applied poses.
*/
if (parchan->rotmode > 0)
@@ -861,7 +861,7 @@ static short pose_grab_with_ik_add(bPoseChannel *pchan)
data->rootbone = 0; /* watch-it! has to be 0 here, since we're still on the same bone for the first time through the loop [#25885] */
/* we only include bones that are part of a continual connected chain */
- while (pchan) {
+ do {
/* here, we set ik-settings for bone from pchan->protectflag */
// XXX: careful with quats/axis-angle rotations where we're locking 4d components
if (pchan->protectflag & OB_LOCK_ROTX) pchan->ikflag |= BONE_IK_NO_XDOF_TEMP;
@@ -876,7 +876,7 @@ static short pose_grab_with_ik_add(bPoseChannel *pchan)
pchan = pchan->parent;
else
pchan = NULL;
- }
+ } while (pchan);
/* make a copy of maximum chain-length */
data->max_rootbone = data->rootbone;
@@ -992,6 +992,9 @@ static void createTransPose(TransInfo *t, Object *ob)
t->flag |= T_POSE;
t->poseobj = ob; /* we also allow non-active objects to be transformed, in weightpaint */
+ /* disable PET, its not usable in pose mode yet [#32444] */
+ t->flag &= ~(T_PROP_EDIT | T_PROP_CONNECTED);
+
/* init trans data */
td = t->data = MEM_callocN(t->total * sizeof(TransData), "TransPoseBone");
tdx = t->ext = MEM_callocN(t->total * sizeof(TransDataExtension), "TransPoseBoneExt");
@@ -1331,10 +1334,9 @@ static TransDataCurveHandleFlags *initTransDataCurveHandles(TransData *td, struc
return hdata;
}
-static void createTransCurveVerts(bContext *C, TransInfo *t)
+static void createTransCurveVerts(TransInfo *t)
{
- Object *obedit = CTX_data_edit_object(C);
- Curve *cu = obedit->data;
+ Curve *cu = t->obedit->data;
TransData *td = NULL;
Nurb *nu;
BezTriple *bezt;
@@ -1487,6 +1489,8 @@ static void createTransCurveVerts(bContext *C, TransInfo *t)
count++;
tail++;
}
+
+ (void)hdata; /* quiet warning */
}
else if (propmode && head != tail) {
calc_distanceCurveVerts(head, tail - 1);
@@ -1770,9 +1774,6 @@ void flushTransParticles(TransInfo *t)
/* ********************* mesh ****************** */
-/* proportional distance based on connectivity */
-#define THRESHOLDFACTOR (1.0f - 0.0001f)
-
/* I did this wrong, it should be a breadth-first search
* but instead it's a depth-first search, fudged
* to report shortest distances. I have no idea how fast
@@ -1829,7 +1830,7 @@ static void editmesh_set_connectivity_distance(BMEditMesh *em, float mtx[][3], f
d2 = d + len_v3(vec);
if (dists[BM_elem_index_get(v3)] != FLT_MAX)
- dists[BM_elem_index_get(v3)] = MIN2(d2, dists[BM_elem_index_get(v3)]);
+ dists[BM_elem_index_get(v3)] = minf(d2, dists[BM_elem_index_get(v3)]);
else
dists[BM_elem_index_get(v3)] = d2;
@@ -1935,9 +1936,9 @@ static void VertsToTransData(TransInfo *t, TransData *td, TransDataExtension *tx
}
}
-static void createTransEditVerts(bContext *C, TransInfo *t)
+static void createTransEditVerts(TransInfo *t)
{
- ToolSettings *ts = CTX_data_tool_settings(C);
+ ToolSettings *ts = t->scene->toolsettings;
TransData *tob = NULL;
TransDataExtension *tx = NULL;
BMEditMesh *em = BMEdit_FromObject(t->obedit);
@@ -2189,12 +2190,13 @@ cleanup:
void flushTransNodes(TransInfo *t)
{
int a;
- TransData2D *td;
+ TransData *td;
+ TransData2D *td2d;
/* flush to 2d vector from internally used 3d vector */
- for (a = 0, td = t->data2d; a < t->total; a++, td++) {
- td->loc2d[0] = td->loc[0];
- td->loc2d[1] = td->loc[1];
+ for (a = 0, td = t->data, td2d = t->data2d; a < t->total; a++, td++, td2d++) {
+ bNode *node = td->extra;
+ add_v2_v2v2(&node->locx, td2d->loc, td2d->ih1);
}
/* handle intersection with noodles */
@@ -2236,7 +2238,7 @@ void flushTransSeq(TransInfo *t)
switch (tdsq->sel_flag) {
case SELECT:
#ifdef SEQ_TX_NESTED_METAS
- if ((seq->depth != 0 || seq_tx_test(seq))) /* for meta's, their children move */
+ if ((seq->depth != 0 || BKE_sequence_tx_test(seq))) /* for meta's, their children move */
seq->start = new_frame - tdsq->start_offset;
#else
if (seq->type != SEQ_TYPE_META && (seq->depth != 0 || seq_tx_test(seq))) /* for meta's, their children move */
@@ -2248,14 +2250,14 @@ void flushTransSeq(TransInfo *t)
}
break;
case SEQ_LEFTSEL: /* no vertical transform */
- seq_tx_set_final_left(seq, new_frame);
- seq_tx_handle_xlimits(seq, tdsq->flag & SEQ_LEFTSEL, tdsq->flag & SEQ_RIGHTSEL);
- seq_single_fix(seq); /* todo - move this into aftertrans update? - old seq tx needed it anyway */
+ BKE_sequence_tx_set_final_left(seq, new_frame);
+ BKE_sequence_tx_handle_xlimits(seq, tdsq->flag & SEQ_LEFTSEL, tdsq->flag & SEQ_RIGHTSEL);
+ BKE_sequence_single_fix(seq); /* todo - move this into aftertrans update? - old seq tx needed it anyway */
break;
case SEQ_RIGHTSEL: /* no vertical transform */
- seq_tx_set_final_right(seq, new_frame);
- seq_tx_handle_xlimits(seq, tdsq->flag & SEQ_LEFTSEL, tdsq->flag & SEQ_RIGHTSEL);
- seq_single_fix(seq); /* todo - move this into aftertrans update? - old seq tx needed it anyway */
+ BKE_sequence_tx_set_final_right(seq, new_frame);
+ BKE_sequence_tx_handle_xlimits(seq, tdsq->flag & SEQ_LEFTSEL, tdsq->flag & SEQ_RIGHTSEL);
+ BKE_sequence_single_fix(seq); /* todo - move this into aftertrans update? - old seq tx needed it anyway */
break;
}
@@ -2264,14 +2266,14 @@ void flushTransSeq(TransInfo *t)
/* Calculate this strip and all nested strips
* children are ALWAYS transformed first
* so we don't need to do this in another loop. */
- calc_sequence(t->scene, seq);
+ BKE_sequence_calc(t->scene, seq);
}
else {
- calc_sequence_disp(t->scene, seq);
+ BKE_sequence_calc_disp(t->scene, seq);
}
if (tdsq->sel_flag == SELECT)
- seq_offset_animdata(t->scene, seq, seq->start - old_start);
+ BKE_sequencer_offset_animdata(t->scene, seq, seq->start - old_start);
}
seq_prev = seq;
}
@@ -2283,12 +2285,12 @@ void flushTransSeq(TransInfo *t)
/* calc all meta's then effects [#27953] */
for (seq = seqbasep->first; seq; seq = seq->next) {
if (seq->type == SEQ_TYPE_META && seq->flag & SELECT) {
- calc_sequence(t->scene, seq);
+ BKE_sequence_calc(t->scene, seq);
}
}
for (seq = seqbasep->first; seq; seq = seq->next) {
if (seq->seq1 || seq->seq2 || seq->seq3) {
- calc_sequence(t->scene, seq);
+ BKE_sequence_calc(t->scene, seq);
}
}
}
@@ -2305,7 +2307,7 @@ void flushTransSeq(TransInfo *t)
if (seq->depth == 0) {
/* test overlap, displayes red outline */
seq->flag &= ~SEQ_OVERLAP;
- if (seq_test_overlap(seqbasep, seq)) {
+ if (BKE_sequence_test_overlap(seqbasep, seq)) {
seq->flag |= SEQ_OVERLAP;
}
}
@@ -2320,7 +2322,7 @@ static void UVsToTransData(SpaceImage *sima, TransData *td, TransData2D *td2d, f
{
float aspx, aspy;
- ED_space_image_uv_aspect(sima, &aspx, &aspy);
+ ED_space_image_get_uv_aspect(sima, &aspx, &aspy);
/* uv coords are scaled by aspects. this is needed for rotations and
* proportional editing to be consistent with the stretched uv coords
@@ -2428,8 +2430,8 @@ void flushTransUVs(TransInfo *t)
int a, width, height;
float aspx, aspy, invx, invy;
- ED_space_image_uv_aspect(sima, &aspx, &aspy);
- ED_space_image_size(sima, &width, &height);
+ ED_space_image_get_uv_aspect(sima, &aspx, &aspy);
+ ED_space_image_get_size(sima, &width, &height);
invx = 1.0f / aspx;
invy = 1.0f / aspy;
@@ -2451,7 +2453,7 @@ int clipUVTransform(TransInfo *t, float *vec, int resize)
int a, clipx = 1, clipy = 1;
float aspx, aspy, min[2], max[2];
- ED_space_image_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
+ ED_space_image_get_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
min[0] = min[1] = 0.0f;
max[0] = aspx; max[1] = aspy;
@@ -2493,6 +2495,26 @@ int clipUVTransform(TransInfo *t, float *vec, int resize)
return (clipx || clipy);
}
+void clipUVData(TransInfo *t)
+{
+ TransData *td = NULL;
+ int a;
+ float aspx, aspy;
+
+ ED_space_image_get_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
+
+ for (a = 0, td = t->data; a < t->total; a++, td++) {
+ if (td->flag & TD_NOACTION)
+ break;
+
+ if ((td->flag & TD_SKIP) || (!td->loc))
+ continue;
+
+ td->loc[0] = minf(maxf(0.0f, td->loc[0]), aspx);
+ td->loc[1] = minf(maxf(0.0f, td->loc[1]), aspy);
+ }
+}
+
/* ********************* ANIMATION EDITORS (GENERAL) ************************* */
/* This function tests if a point is on the "mouse" side of the cursor/frame-marking */
@@ -3271,15 +3293,19 @@ static void createTransActionData(bContext *C, TransInfo *t)
if (ELEM(ac.datatype, ANIMCONT_GPENCIL, ANIMCONT_MASK)) {
if (t->mode == TFM_TIME_SLIDE) {
t->customData = MEM_callocN((sizeof(float) * 2) + (sizeof(tGPFtransdata) * count), "TimeSlide + tGPFtransdata");
+ t->flag |= T_FREE_CUSTOMDATA;
tfd = (tGPFtransdata *)((float *)(t->customData) + 2);
}
else {
t->customData = MEM_callocN(sizeof(tGPFtransdata) * count, "tGPFtransdata");
+ t->flag |= T_FREE_CUSTOMDATA;
tfd = (tGPFtransdata *)(t->customData);
}
}
- else if (t->mode == TFM_TIME_SLIDE)
+ else if (t->mode == TFM_TIME_SLIDE) {
t->customData = MEM_callocN(sizeof(float) * 2, "TimeSlide Min/Max");
+ t->flag |= T_FREE_CUSTOMDATA;
+ }
/* loop 2: build transdata array */
for (ale = anim_data.first; ale; ale = ale->next) {
@@ -3934,8 +3960,8 @@ static void SeqTransInfo(TransInfo *t, Sequence *seq, int *recursive, int *count
Scene *scene = t->scene;
int cfra = CFRA;
- int left = seq_tx_get_final_left(seq, 1);
- int right = seq_tx_get_final_right(seq, 1);
+ int left = BKE_sequence_tx_get_final_left(seq, 1);
+ int right = BKE_sequence_tx_get_final_right(seq, 1);
if (seq->depth == 0 && ((seq->flag & SELECT) == 0 || (seq->flag & SEQ_LOCK))) {
*recursive = FALSE;
@@ -3960,13 +3986,13 @@ static void SeqTransInfo(TransInfo *t, Sequence *seq, int *recursive, int *count
*flag = (seq->flag | SELECT) & ~(SEQ_LEFTSEL | SEQ_RIGHTSEL);
if (t->frame_side == 'R') {
- if (right <= cfra) *count = *flag = 0; /* ignore */
- else if (left > cfra) ; /* keep the selection */
+ if (right <= cfra) { *count = *flag = 0; } /* ignore */
+ else if (left > cfra) { } /* keep the selection */
else *flag |= SEQ_RIGHTSEL;
}
else {
- if (left >= cfra) *count = *flag = 0; /* ignore */
- else if (right < cfra) ; /* keep the selection */
+ if (left >= cfra) { *count = *flag = 0; } /* ignore */
+ else if (right < cfra) { } /* keep the selection */
else *flag |= SEQ_LEFTSEL;
}
}
@@ -4070,16 +4096,16 @@ static TransData *SeqToTransData(TransData *td, TransData2D *td2d, TransDataSeq
/* Use seq_tx_get_final_left() and an offset here
* so transform has the left hand location of the strip.
* tdsq->start_offset is used when flushing the tx data back */
- start_left = seq_tx_get_final_left(seq, 0);
+ start_left = BKE_sequence_tx_get_final_left(seq, 0);
td2d->loc[0] = start_left;
tdsq->start_offset = start_left - seq->start; /* use to apply the original location */
break;
case SEQ_LEFTSEL:
- start_left = seq_tx_get_final_left(seq, 0);
+ start_left = BKE_sequence_tx_get_final_left(seq, 0);
td2d->loc[0] = start_left;
break;
case SEQ_RIGHTSEL:
- td2d->loc[0] = seq_tx_get_final_right(seq, 0);
+ td2d->loc[0] = BKE_sequence_tx_get_final_right(seq, 0);
break;
}
@@ -4188,7 +4214,7 @@ static void freeSeqData(TransInfo *t)
for (a = 0; a < t->total; a++, td++) {
if ((seq != seq_prev) && (seq->depth == 0) && (seq->flag & SEQ_OVERLAP)) {
seq = ((TransDataSeq *)td->extra)->seq;
- shuffle_seq(seqbasep, seq);
+ BKE_sequence_base_shuffle(seqbasep, seq, t->scene);
}
seq_prev = seq;
@@ -4223,7 +4249,7 @@ static void freeSeqData(TransInfo *t)
has_effect = TRUE;
}
else {
- /* Tag seq with a non zero value, used by shuffle_seq_time to identify the ones to shuffle */
+ /* Tag seq with a non zero value, used by BKE_sequence_base_shuffle_time to identify the ones to shuffle */
seq->tmp = (void *)1;
}
}
@@ -4237,7 +4263,7 @@ static void freeSeqData(TransInfo *t)
for (a = 0; a < t->total; a++, td++) {
seq = ((TransDataSeq *)td->extra)->seq;
if ((seq != seq_prev)) {
- minframe = MIN2(minframe, seq->startdisp);
+ minframe = mini(minframe, seq->startdisp);
}
}
@@ -4250,7 +4276,7 @@ static void freeSeqData(TransInfo *t)
}
}
- shuffle_seq_time(seqbasep, t->scene);
+ BKE_sequence_base_shuffle_time(seqbasep, t->scene);
for (seq = seqbasep->first; seq; seq = seq->next) {
if (seq->machine >= MAXSEQ * 2) {
@@ -4262,13 +4288,13 @@ static void freeSeqData(TransInfo *t)
}
}
- shuffle_seq_time(seqbasep, t->scene);
+ BKE_sequence_base_shuffle_time(seqbasep, t->scene);
}
else {
- shuffle_seq_time(seqbasep, t->scene);
+ BKE_sequence_base_shuffle_time(seqbasep, t->scene);
}
#else
- shuffle_seq_time(seqbasep, t->scene);
+ BKE_sequence_base_shuffle_time(seqbasep, t->scene);
#endif
if (has_effect) {
@@ -4279,7 +4305,7 @@ static void freeSeqData(TransInfo *t)
seq = ((TransDataSeq *)td->extra)->seq;
if ((seq != seq_prev)) {
if ((seq->type & SEQ_TYPE_EFFECT) && seq->seq1) {
- calc_sequence(t->scene, seq);
+ BKE_sequence_calc(t->scene, seq);
}
}
}
@@ -4291,8 +4317,8 @@ static void freeSeqData(TransInfo *t)
seq = ((TransDataSeq *)td->extra)->seq;
if ((seq != seq_prev)) {
if ((seq->type & SEQ_TYPE_EFFECT) && seq->seq1) {
- if (seq_test_overlap(seqbasep, seq)) {
- shuffle_seq(seqbasep, seq, t->scene);
+ if (BKE_sequence_test_overlap(seqbasep, seq)) {
+ BKE_sequence_base_shuffle(seqbasep, seq, t->scene);
}
}
}
@@ -4306,9 +4332,9 @@ static void freeSeqData(TransInfo *t)
for (seq = seqbasep->first; seq; seq = seq->next) {
/* We might want to build a list of effects that need to be updated during transform */
if (seq->type & SEQ_TYPE_EFFECT) {
- if (seq->seq1 && seq->seq1->flag & SELECT) calc_sequence(t->scene, seq);
- else if (seq->seq2 && seq->seq2->flag & SELECT) calc_sequence(t->scene, seq);
- else if (seq->seq3 && seq->seq3->flag & SELECT) calc_sequence(t->scene, seq);
+ if (seq->seq1 && seq->seq1->flag & SELECT) BKE_sequence_calc(t->scene, seq);
+ else if (seq->seq2 && seq->seq2->flag & SELECT) BKE_sequence_calc(t->scene, seq);
+ else if (seq->seq3 && seq->seq3->flag & SELECT) BKE_sequence_calc(t->scene, seq);
}
}
@@ -4319,7 +4345,10 @@ static void freeSeqData(TransInfo *t)
for (a = 0; a < t->total; a++, td++) {
seq = ((TransDataSeq *)td->extra)->seq;
if ((seq != seq_prev) && (seq->depth == 0)) {
- calc_sequence_disp(t->scene, seq);
+ if (seq->flag & SEQ_OVERLAP)
+ BKE_sequence_base_shuffle(seqbasep, seq, t->scene);
+
+ BKE_sequence_calc_disp(t->scene, seq);
}
seq_prev = seq;
}
@@ -4880,7 +4909,7 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o
for (fcu = act->curves.first; fcu; fcu = fcu->next) {
/* only insert keyframes for this F-Curve if it affects the current bone */
if (strstr(fcu->rna_path, "bones")) {
- char *pchanName = BLI_getQuotedStr(fcu->rna_path, "bones[");
+ char *pchanName = BLI_str_quoted_substrN(fcu->rna_path, "bones[");
/* only if bone name matches too...
* NOTE: this will do constraints too, but those are ok to do here too?
@@ -4964,6 +4993,37 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o
}
}
+static void special_aftertrans_update__mask(bContext *C, TransInfo *t)
+{
+ Mask *mask = NULL;
+
+ if (t->spacetype == SPACE_CLIP) {
+ SpaceClip *sc = t->sa->spacedata.first;
+ mask = ED_space_clip_get_mask(sc);
+ }
+ else if (t->spacetype == SPACE_IMAGE) {
+ SpaceImage *sima = t->sa->spacedata.first;
+ mask = ED_space_image_get_mask(sima);
+ }
+ else {
+ BLI_assert(0);
+ }
+
+ if (t->scene->nodetree) {
+ /* tracks can be used for stabilization nodes,
+ * flush update for such nodes */
+ //if (nodeUpdateID(t->scene->nodetree, &mask->id)) {
+ WM_event_add_notifier(C, NC_MASK | ND_DATA, &mask->id);
+ //}
+ }
+
+ /* TODO - dont key all masks... */
+ if (IS_AUTOKEY_ON(t->scene)) {
+ Scene *scene = t->scene;
+
+ ED_mask_layer_shape_auto_key_select(mask, CFRA);
+ }
+}
/* inserting keys, pointcache, redraw events... */
/*
@@ -5009,7 +5069,8 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
}
}
}
-
+
+
if (t->spacetype == SPACE_SEQ) {
/* freeSeqData in transform_conversions.c does this
* keep here so the else at the end wont run... */
@@ -5030,7 +5091,11 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
ED_markers_post_apply_transform(&t->scene->markers, t->scene, TFM_TIME_EXTEND, t->values[0], t->frame_side);
}
}
-
+ }
+ else if (t->spacetype == SPACE_IMAGE) {
+ if (t->options & CTX_MASK) {
+ special_aftertrans_update__mask(C, t);
+ }
}
else if (t->spacetype == SPACE_NODE) {
SpaceNode *snode = (SpaceNode *)t->sa->spacedata.first;
@@ -5056,22 +5121,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
}
}
else if (t->options & CTX_MASK) {
- SpaceClip *sc = t->sa->spacedata.first;
- Mask *mask = ED_space_clip_get_mask(sc);
-
- if (t->scene->nodetree) {
- /* tracks can be used for stabilization nodes,
- * flush update for such nodes */
- nodeUpdateID(t->scene->nodetree, &mask->id);
- WM_event_add_notifier(C, NC_SCENE | ND_NODES, NULL);
- }
-
- /* TODO - dont key all masks... */
- if (IS_AUTOKEY_ON(t->scene)) {
- Scene *scene = t->scene;
-
- ED_mask_layer_shape_auto_key_select(mask, CFRA);
- }
+ special_aftertrans_update__mask(C, t);
}
}
else if (t->spacetype == SPACE_ACTION) {
@@ -5122,7 +5172,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
/* Depending on the lock status, draw necessary views */
// fixme... some of this stuff is not good
if (ob) {
- if (ob->pose || ob_get_key(ob))
+ if (ob->pose || BKE_key_from_object(ob))
DAG_id_tag_update(&ob->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME);
else
DAG_id_tag_update(&ob->id, OB_RECALC_OB);
@@ -5356,6 +5406,8 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
else { /* Objects */
int i, recalcObPaths = 0;
+ BLI_assert(t->flag & T_OBJECT);
+
for (i = 0; i < t->total; i++) {
TransData *td = t->data + i;
ListBase pidlist;
@@ -5502,24 +5554,22 @@ static void createTransObject(bContext *C, TransInfo *t)
/* transcribe given node into TransData2D for Transforming */
static void NodeToTransData(TransData *td, TransData2D *td2d, bNode *node)
-// static void NodeToTransData(bContext *C, TransInfo *t, TransData2D *td, bNode *node)
{
- td2d->loc[0] = node->locx; /* hold original location */
- td2d->loc[1] = node->locy;
+ /* hold original location */
+ float locxy[2] = {BLI_rctf_cent_x(&node->totr),
+ BLI_rctf_cent_y(&node->totr)};
+
+ copy_v2_v2(td2d->loc, locxy);
td2d->loc[2] = 0.0f;
- td2d->loc2d = &node->locx; /* current location */
+ td2d->loc2d = td2d->loc; /* current location */
td->flag = 0;
- /* exclude nodes whose parent is also transformed */
- if (node->parent && (node->parent->flag & NODE_TRANSFORM)) {
- td->flag |= TD_SKIP;
- }
td->loc = td2d->loc;
copy_v3_v3(td->iloc, td->loc);
/* use node center instead of origin (top-left corner) */
- td->center[0] = node->locx + 0.5f * (node->totr.xmax - node->totr.xmin);
- td->center[1] = node->locy - 0.5f * (node->totr.ymax - node->totr.ymin); /* node height is used negative */
+ td->center[0] = locxy[0];
+ td->center[1] = locxy[1];
td->center[2] = 0.0f;
memset(td->axismtx, 0, sizeof(td->axismtx));
@@ -5533,37 +5583,56 @@ static void NodeToTransData(TransData *td, TransData2D *td2d, bNode *node)
unit_m3(td->mtx);
unit_m3(td->smtx);
+ sub_v2_v2v2(td2d->ih1, &node->locx, locxy);
+
td->extra = node;
}
-static void createTransNodeData(bContext *C, TransInfo *t)
+static int is_node_parent_select(bNode *node)
+{
+ while ((node = node->parent)) {
+ if (node->flag & NODE_TRANSFORM) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static void createTransNodeData(bContext *UNUSED(C), TransInfo *t)
{
TransData *td;
TransData2D *td2d;
SpaceNode *snode = t->sa->spacedata.first;
bNode *node;
+ t->total = 0;
+
if (!snode->edittree) {
- t->total = 0;
return;
}
+ /* nodes dont support PET and probably never will */
+ t->flag &= ~(T_PROP_EDIT | T_PROP_CONNECTED);
+
/* set transform flags on nodes */
for (node = snode->edittree->nodes.first; node; node = node->next) {
- if ((node->flag & NODE_SELECT) || (node->parent && (node->parent->flag & NODE_TRANSFORM)))
+ if (node->flag & NODE_SELECT && is_node_parent_select(node) == FALSE) {
node->flag |= NODE_TRANSFORM;
- else
+ t->total++;
+ }
+ else {
node->flag &= ~NODE_TRANSFORM;
+ }
}
- t->total = CTX_DATA_COUNT(C, selected_nodes);
-
td = t->data = MEM_callocN(t->total * sizeof(TransData), "TransNode TransData");
td2d = t->data2d = MEM_callocN(t->total * sizeof(TransData2D), "TransNode TransData2D");
- CTX_DATA_BEGIN(C, bNode *, selnode, selected_nodes)
- NodeToTransData(td++, td2d++, selnode);
- CTX_DATA_END
+ for (node = snode->edittree->nodes.first; node; node = node->next) {
+ if (node->flag & NODE_TRANSFORM) {
+ NodeToTransData(td++, td2d++, node);
+ }
+ }
}
/* *** CLIP EDITOR *** */
@@ -5655,10 +5724,9 @@ static void markerToTransDataInit(TransData *td, TransData2D *td2d, TransDataTra
unit_m3(td->smtx);
}
-static void trackToTransData(SpaceClip *sc, TransData *td, TransData2D *td2d,
+static void trackToTransData(const int framenr, TransData *td, TransData2D *td2d,
TransDataTracking *tdt, MovieTrackingTrack *track, float aspx, float aspy)
{
- int framenr = ED_space_clip_get_clip_frame_number(sc);
MovieTrackingMarker *marker = BKE_tracking_marker_ensure(track, framenr);
tdt->flag = marker->flag;
@@ -5699,6 +5767,7 @@ static void transDataTrackingFree(TransInfo *t)
MEM_freeN(tdt->smarkers);
MEM_freeN(tdt);
+ t->customData = NULL;
}
}
@@ -5710,7 +5779,6 @@ static void createTransTrackingTracksData(bContext *C, TransInfo *t)
MovieClip *clip = ED_space_clip_get_clip(sc);
ListBase *tracksbase = BKE_tracking_get_active_tracks(&clip->tracking);
MovieTrackingTrack *track;
- MovieTrackingMarker *marker;
TransDataTracking *tdt;
int framenr = ED_space_clip_get_clip_frame_number(sc);
float aspx, aspy;
@@ -5721,8 +5789,6 @@ static void createTransTrackingTracksData(bContext *C, TransInfo *t)
track = tracksbase->first;
while (track) {
if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_LOCKED) == 0) {
- marker = BKE_tracking_marker_get(track, framenr);
-
t->total++; /* offset */
if (track->flag & SELECT)
@@ -5753,9 +5819,7 @@ static void createTransTrackingTracksData(bContext *C, TransInfo *t)
track = tracksbase->first;
while (track) {
if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_LOCKED) == 0) {
- marker = BKE_tracking_marker_get(track, framenr);
-
- trackToTransData(sc, td, td2d, tdt, track, aspx, aspy);
+ trackToTransData(framenr, td, td2d, tdt, track, aspx, aspy);
/* offset */
td++;
@@ -5778,12 +5842,6 @@ static void createTransTrackingTracksData(bContext *C, TransInfo *t)
td += 2;
td2d += 2;
tdt += 2;
-
- if (marker->flag & MARKER_DISABLED) {
- td += 3;
- td2d += 3;
- tdt += 3;
- };
}
}
@@ -6069,19 +6127,17 @@ typedef struct TransDataMasking {
MaskSplinePoint *point;
} TransDataMasking;
-static void MaskPointToTransData(SpaceClip *sc, MaskSplinePoint *point,
- TransData *td, TransData2D *td2d, TransDataMasking *tdm, int propmode)
+static void MaskPointToTransData(MaskSplinePoint *point,
+ TransData *td, TransData2D *td2d, TransDataMasking *tdm,
+ const int propmode, const float asp[2])
{
BezTriple *bezt = &point->bezt;
- float aspx, aspy;
short is_sel_point = MASKPOINT_ISSEL_KNOT(point);
short is_sel_any = MASKPOINT_ISSEL_ANY(point);
tdm->point = point;
copy_m3_m3(tdm->vec, bezt->vec);
- ED_space_clip_get_aspect(sc, &aspx, &aspy);
-
if (propmode || is_sel_point) {
int i;
for (i = 0; i < 3; i++) {
@@ -6089,8 +6145,8 @@ static void MaskPointToTransData(SpaceClip *sc, MaskSplinePoint *point,
* proportional editing to be consistent with the stretched CV coords
* that are displayed. this also means that for display and numinput,
* and when the the CV coords are flushed, these are converted each time */
- td2d->loc[0] = bezt->vec[i][0] * aspx;
- td2d->loc[1] = bezt->vec[i][1] * aspy;
+ td2d->loc[0] = bezt->vec[i][0] * asp[0];
+ td2d->loc[1] = bezt->vec[i][1] * asp[1];
td2d->loc[2] = 0.0f;
td2d->loc2d = bezt->vec[i];
@@ -6132,8 +6188,8 @@ static void MaskPointToTransData(SpaceClip *sc, MaskSplinePoint *point,
copy_v2_v2(tdm->orig_handle, tdm->handle);
- td2d->loc[0] = tdm->handle[0] * aspx;
- td2d->loc[1] = tdm->handle[1] * aspy;
+ td2d->loc[0] = tdm->handle[0] * asp[0];
+ td2d->loc[1] = tdm->handle[1] * asp[1];
td2d->loc[2] = 0.0f;
td2d->loc2d = tdm->handle;
@@ -6164,7 +6220,6 @@ static void MaskPointToTransData(SpaceClip *sc, MaskSplinePoint *point,
static void createTransMaskingData(bContext *C, TransInfo *t)
{
- SpaceClip *sc = CTX_wm_space_clip(C);
Mask *mask = CTX_data_edit_mask(C);
MaskLayer *masklay;
TransData *td = NULL;
@@ -6172,6 +6227,7 @@ static void createTransMaskingData(bContext *C, TransInfo *t)
TransDataMasking *tdm = NULL;
int count = 0, countsel = 0;
int propmode = t->flag & T_PROP_EDIT;
+ float asp[2];
t->total = 0;
@@ -6180,7 +6236,7 @@ static void createTransMaskingData(bContext *C, TransInfo *t)
/* count */
for (masklay = mask->masklayers.first; masklay; masklay = masklay->next) {
- MaskSpline *spline = masklay->splines.first;
+ MaskSpline *spline;
if (masklay->restrictflag & (MASK_RESTRICT_VIEW | MASK_RESTRICT_SELECT)) {
continue;
@@ -6206,7 +6262,11 @@ static void createTransMaskingData(bContext *C, TransInfo *t)
}
/* note: in prop mode we need at least 1 selected */
- if (countsel == 0) return;
+ if (countsel == 0) {
+ return;
+ }
+
+ ED_mask_get_aspect(t->sa, t->ar, &asp[0], &asp[1]);
t->total = (propmode) ? count : countsel;
td = t->data = MEM_callocN(t->total * sizeof(TransData), "TransObData(Mask Editing)");
@@ -6219,7 +6279,7 @@ static void createTransMaskingData(bContext *C, TransInfo *t)
/* create data */
for (masklay = mask->masklayers.first; masklay; masklay = masklay->next) {
- MaskSpline *spline = masklay->splines.first;
+ MaskSpline *spline;
if (masklay->restrictflag & (MASK_RESTRICT_VIEW | MASK_RESTRICT_SELECT)) {
continue;
@@ -6232,7 +6292,7 @@ static void createTransMaskingData(bContext *C, TransInfo *t)
MaskSplinePoint *point = &spline->points[i];
if (propmode || MASKPOINT_ISSEL_ANY(point)) {
- MaskPointToTransData(sc, point, td, td2d, tdm, propmode);
+ MaskPointToTransData(point, td, td2d, tdm, propmode, asp);
if (propmode || MASKPOINT_ISSEL_KNOT(point)) {
td += 3;
@@ -6252,20 +6312,19 @@ static void createTransMaskingData(bContext *C, TransInfo *t)
void flushTransMasking(TransInfo *t)
{
- SpaceClip *sc = t->sa->spacedata.first;
TransData2D *td;
TransDataMasking *tdm;
int a;
- float aspx, aspy, invx, invy;
+ float asp[2], inv[2];
- ED_space_clip_get_aspect(sc, &aspx, &aspy);
- invx = 1.0f / aspx;
- invy = 1.0f / aspy;
+ ED_mask_get_aspect(t->sa, t->ar, &asp[0], &asp[1]);
+ inv[0] = 1.0f / asp[0];
+ inv[1] = 1.0f / asp[1];
/* flush to 2d vector from internally used 3d vector */
for (a = 0, td = t->data2d, tdm = t->customData; a < t->total; a++, td++, tdm++) {
- td->loc2d[0] = td->loc[0] * invx;
- td->loc2d[1] = td->loc[1] * invy;
+ td->loc2d[0] = td->loc[0] * inv[0];
+ td->loc2d[1] = td->loc[1] * inv[1];
if (tdm->is_handle)
BKE_mask_point_set_handle(tdm->point, td->loc2d, t->flag & T_ALT_TRANSFORM, tdm->orig_handle, tdm->vec);
@@ -6297,11 +6356,23 @@ void createTransData(bContext *C, TransInfo *t)
}
else if (t->spacetype == SPACE_IMAGE) {
t->flag |= T_POINTS | T_2D_EDIT;
- createTransUVs(C, t);
- if (t->data && (t->flag & T_PROP_EDIT)) {
- sort_trans_data(t); // makes selected become first in array
- set_prop_dist(t, 1);
- sort_trans_data_dist(t);
+ if (t->options & CTX_MASK) {
+ /* copied from below */
+ createTransMaskingData(C, t);
+
+ if (t->data && (t->flag & T_PROP_EDIT)) {
+ sort_trans_data(t); // makes selected become first in array
+ set_prop_dist(t, TRUE);
+ sort_trans_data_dist(t);
+ }
+ }
+ else {
+ createTransUVs(C, t);
+ if (t->data && (t->flag & T_PROP_EDIT)) {
+ sort_trans_data(t); // makes selected become first in array
+ set_prop_dist(t, 1);
+ sort_trans_data_dist(t);
+ }
}
}
else if (t->spacetype == SPACE_ACTION) {
@@ -6342,6 +6413,7 @@ void createTransData(bContext *C, TransInfo *t)
if (t->options & CTX_MOVIECLIP)
createTransTrackingData(C, t);
else if (t->options & CTX_MASK) {
+ /* copied from above */
createTransMaskingData(C, t);
if (t->data && (t->flag & T_PROP_EDIT)) {
@@ -6354,10 +6426,10 @@ void createTransData(bContext *C, TransInfo *t)
else if (t->obedit) {
t->ext = NULL;
if (t->obedit->type == OB_MESH) {
- createTransEditVerts(C, t);
+ createTransEditVerts(t);
}
else if (ELEM(t->obedit->type, OB_CURVE, OB_SURF)) {
- createTransCurveVerts(C, t);
+ createTransCurveVerts(t);
}
else if (t->obedit->type == OB_LATTICE) {
createTransLatticeVerts(t);
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 9f335b4afe7..a9d9ec7b010 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -29,18 +29,18 @@
* \ingroup edtransform
*/
-
#include <string.h>
#include <math.h>
#include "MEM_guardedalloc.h"
-#include "BLO_sys_types.h" // for intptr_t support
+#include "BLO_sys_types.h" /* for intptr_t support */
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
#include "DNA_lattice_types.h"
#include "DNA_screen_types.h"
+#include "DNA_sequence_types.h"
#include "DNA_space_types.h"
#include "DNA_scene_types.h"
#include "DNA_object_types.h"
@@ -58,14 +58,8 @@
#include "RNA_access.h"
-//#include "BIF_screen.h"
-//#include "BIF_mywindow.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
-//#include "BIF_editmesh.h"
-//#include "BIF_editsima.h"
-//#include "BIF_editparticle.h"
-//#include "BIF_meshtools.h"
#include "BKE_animsys.h"
#include "BKE_action.h"
@@ -78,8 +72,10 @@
#include "BKE_mesh.h"
#include "BKE_nla.h"
#include "BKE_context.h"
+#include "BKE_sequencer.h"
#include "BKE_tessmesh.h"
#include "BKE_tracking.h"
+#include "BKE_mask.h"
#include "ED_anim_api.h"
#include "ED_armature.h"
@@ -96,17 +92,11 @@
#include "ED_clip.h"
#include "ED_screen.h"
-//#include "BDR_unwrapper.h"
-
#include "WM_types.h"
#include "WM_api.h"
#include "UI_resources.h"
-//#include "blendef.h"
-//
-//#include "mydevice.h"
-
#include "transform.h"
/* ************************** Functions *************************** */
@@ -620,10 +610,22 @@ static void recalcData_nla(TransInfo *t)
}
}
+static void recalcData_mask_common(TransInfo *t)
+{
+ Mask *mask = CTX_data_edit_mask(t->context);
+
+ flushTransMasking(t);
+
+ DAG_id_tag_update(&mask->id, 0);
+}
+
/* helper for recalcData() - for Image Editor transforms */
static void recalcData_image(TransInfo *t)
{
- if (t->obedit && t->obedit->type == OB_MESH) {
+ if (t->options & CTX_MASK) {
+ recalcData_mask_common(t);
+ }
+ else if (t->obedit && t->obedit->type == OB_MESH) {
SpaceImage *sima = t->sa->spacedata.first;
flushTransUVs(t);
@@ -675,12 +677,8 @@ static void recalcData_spaceclip(TransInfo *t)
DAG_id_tag_update(&clip->id, 0);
}
- else if (ED_space_clip_check_show_maskedit(sc)) {
- Mask *mask = ED_space_clip_get_mask(sc);
-
- flushTransMasking(t);
-
- DAG_id_tag_update(&mask->id, 0);
+ else if (t->options & CTX_MASK) {
+ recalcData_mask_common(t);
}
}
@@ -894,6 +892,29 @@ static void recalcData_view3d(TransInfo *t)
}
}
+/* helper for recalcData() - for sequencer transforms */
+static void recalcData_sequencer(TransInfo *t)
+{
+ TransData *td;
+ int a;
+ Sequence *seq_prev = NULL;
+
+ for (a = 0, td = t->data; a < t->total; a++, td++) {
+ TransDataSeq *tdsq = (TransDataSeq *) td->extra;
+ Sequence *seq = tdsq->seq;
+
+ if (seq != seq_prev) {
+ BKE_sequence_invalidate_dependent(t->scene, seq);
+ }
+
+ seq_prev = seq;
+ }
+
+ BKE_sequencer_preprocessed_cache_cleanup();
+
+ flushTransSeq(t);
+}
+
/* called for updating while transform acts, once per redraw */
void recalcData(TransInfo *t)
{
@@ -901,7 +922,7 @@ void recalcData(TransInfo *t)
flushTransNodes(t);
}
else if (t->spacetype == SPACE_SEQ) {
- flushTransSeq(t);
+ recalcData_sequencer(t);
}
else if (t->spacetype == SPACE_ACTION) {
recalcData_actedit(t);
@@ -921,9 +942,13 @@ void recalcData(TransInfo *t)
else if (t->spacetype == SPACE_CLIP) {
recalcData_spaceclip(t);
}
+
+ if (t->options & CTX_MASK) {
+
+ }
}
-void drawLine(TransInfo *t, float *center, float *dir, char axis, short options)
+void drawLine(TransInfo *t, const float center[3], const float dir[3], char axis, short options)
{
float v1[3], v2[3], v3[3];
unsigned char col[3], col2[3];
@@ -1017,15 +1042,10 @@ int initTransInfo(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event)
t->total = 0;
t->val = 0.0f;
-
- t->vec[0] =
- t->vec[1] =
- t->vec[2] = 0.0f;
- t->center[0] =
- t->center[1] =
- t->center[2] = 0.0f;
-
+ zero_v3(t->vec);
+ zero_v3(t->center);
+
unit_m3(t->mat);
/* if there's an event, we're modal */
@@ -1112,6 +1132,16 @@ int initTransInfo(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event)
// XXX for now, get View2D from the active region
t->view = &ar->v2d;
t->around = sima->around;
+
+ if (ED_space_image_show_uvedit(sima, t->obedit)) {
+ /* UV transform */
+ }
+ else if (sima->mode == SI_MODE_MASK) {
+ t->options |= CTX_MASK;
+ }
+ else {
+ BLI_assert(0);
+ }
}
else if (t->spacetype == SPACE_NODE) {
// XXX for now, get View2D from the active region
@@ -1267,19 +1297,26 @@ void postTrans(bContext *C, TransInfo *t)
if (t->customFree) {
/* Can take over freeing t->data and data2d etc... */
t->customFree(t);
+ BLI_assert(t->customData == NULL);
}
else if ((t->customData != NULL) && (t->flag & T_FREE_CUSTOMDATA)) {
MEM_freeN(t->customData);
+ t->customData = NULL;
}
/* postTrans can be called when nothing is selected, so data is NULL already */
if (t->data) {
- int a;
/* free data malloced per trans-data */
- for (a = 0, td = t->data; a < t->total; a++, td++) {
- if (td->flag & TD_BEZTRIPLE)
- MEM_freeN(td->hdata);
+ if ((t->obedit && ELEM(t->obedit->type, OB_CURVE, OB_SURF)) ||
+ (t->spacetype == SPACE_IPO))
+ {
+ int a;
+ for (a = 0, td = t->data; a < t->total; a++, td++) {
+ if (td->flag & TD_BEZTRIPLE) {
+ MEM_freeN(td->hdata);
+ }
+ }
}
MEM_freeN(t->data);
}
@@ -1293,9 +1330,14 @@ void postTrans(bContext *C, TransInfo *t)
}
if (t->spacetype == SPACE_IMAGE) {
- SpaceImage *sima = t->sa->spacedata.first;
- if (sima->flag & SI_LIVE_UNWRAP)
- ED_uvedit_live_unwrap_end(t->state == TRANS_CANCEL);
+ if (t->options & CTX_MASK) {
+ /* pass */
+ }
+ else {
+ SpaceImage *sima = t->sa->spacedata.first;
+ if (sima->flag & SI_LIVE_UNWRAP)
+ ED_uvedit_live_unwrap_end(t->state == TRANS_CANCEL);
+ }
}
else if (t->spacetype == SPACE_VIEW3D) {
View3D *v3d = t->sa->spacedata.first;
@@ -1430,13 +1472,33 @@ void calculateCenterCursor2D(TransInfo *t)
if (t->spacetype == SPACE_IMAGE) {
SpaceImage *sima = (SpaceImage *)t->sa->spacedata.first;
/* only space supported right now but may change */
- ED_space_image_uv_aspect(sima, &aspx, &aspy);
+ if (t->options & CTX_MASK) {
+ ED_space_image_get_aspect(sima, &aspx, &aspy);
+ }
+ else {
+ ED_space_image_get_uv_aspect(sima, &aspx, &aspy);
+ }
cursor = sima->cursor;
}
if (cursor) {
- t->center[0] = cursor[0] * aspx;
- t->center[1] = cursor[1] * aspy;
+ if (t->options & CTX_MASK) {
+ float co[2];
+ float frame_size[2];
+ SpaceImage *sima = (SpaceImage *)t->sa->spacedata.first;
+ ED_space_image_get_size_fl(sima, frame_size);
+
+ BKE_mask_coord_from_frame(co, cursor, frame_size);
+
+ ED_space_image_get_aspect(sima, &aspx, &aspy);
+
+ t->center[0] = co[0] * aspx;
+ t->center[1] = co[1] * aspy;
+ }
+ else {
+ t->center[0] = cursor[0] * aspx;
+ t->center[1] = cursor[1] * aspy;
+ }
}
calculateCenter2D(t);
diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c
index 1507dbfddda..74a2292d74c 100644
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@ -84,22 +84,22 @@
/* return codes for select, and drawing flags */
-#define MAN_TRANS_X 1
-#define MAN_TRANS_Y 2
-#define MAN_TRANS_Z 4
-#define MAN_TRANS_C 7
-
-#define MAN_ROT_X 8
-#define MAN_ROT_Y 16
-#define MAN_ROT_Z 32
-#define MAN_ROT_V 64
-#define MAN_ROT_T 128
-#define MAN_ROT_C 248
-
-#define MAN_SCALE_X 256
-#define MAN_SCALE_Y 512
-#define MAN_SCALE_Z 1024
-#define MAN_SCALE_C 1792
+#define MAN_TRANS_X (1 << 0)
+#define MAN_TRANS_Y (1 << 1)
+#define MAN_TRANS_Z (1 << 2)
+#define MAN_TRANS_C (MAN_TRANS_X | MAN_TRANS_Y | MAN_TRANS_Z)
+
+#define MAN_ROT_X (1 << 3)
+#define MAN_ROT_Y (1 << 4)
+#define MAN_ROT_Z (1 << 5)
+#define MAN_ROT_V (1 << 6)
+#define MAN_ROT_T (1 << 7)
+#define MAN_ROT_C (MAN_ROT_X | MAN_ROT_Y | MAN_ROT_Z | MAN_ROT_V | MAN_ROT_T)
+
+#define MAN_SCALE_X (1 << 8)
+#define MAN_SCALE_Y (1 << 9)
+#define MAN_SCALE_Z (1 << 10)
+#define MAN_SCALE_C (MAN_SCALE_X | MAN_SCALE_Y | MAN_SCALE_Z)
/* color codes */
@@ -607,7 +607,7 @@ static void test_manipulator_axis(const bContext *C)
ED_view3d_global_to_vector(rv3d, rv3d->twmat[3], vec);
- angle = fabs(angle_v3v3(rv3d->twmat[0], vec));
+ angle = fabsf(angle_v3v3(rv3d->twmat[0], vec));
if (angle > (float)M_PI / 2.0f) {
angle = (float)M_PI - angle;
}
@@ -616,7 +616,7 @@ static void test_manipulator_axis(const bContext *C)
rv3d->twdrawflag &= ~(MAN_TRANS_X | MAN_SCALE_X);
}
- angle = fabs(angle_v3v3(rv3d->twmat[1], vec));
+ angle = fabsf(angle_v3v3(rv3d->twmat[1], vec));
if (angle > (float)M_PI / 2.0f) {
angle = (float)M_PI - angle;
}
@@ -625,7 +625,7 @@ static void test_manipulator_axis(const bContext *C)
rv3d->twdrawflag &= ~(MAN_TRANS_Y | MAN_SCALE_Y);
}
- angle = fabs(angle_v3v3(rv3d->twmat[2], vec));
+ angle = fabsf(angle_v3v3(rv3d->twmat[2], vec));
if (angle > (float)M_PI / 2.0f) {
angle = (float)M_PI - angle;
}
@@ -855,7 +855,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
float size, unitmat[4][4];
float cywid = 0.33f * 0.01f * (float)U.tw_handlesize;
float cusize = cywid * 0.65f;
- int arcs = (G.rt != 2);
+ int arcs = (G.debug_value != 2);
int colcode;
int ortho;
@@ -1517,7 +1517,7 @@ void BIF_draw_manipulator(const bContext *C)
glEnable(GL_BLEND);
if (v3d->twtype & V3D_MANIP_ROTATE) {
- if (G.rt == 3) {
+ if (G.debug_value == 3) {
if (G.moving) draw_manipulator_rotate_cyl(v3d, rv3d, 1, drawflags, v3d->twtype, MAN_MOVECOL);
else draw_manipulator_rotate_cyl(v3d, rv3d, 0, drawflags, v3d->twtype, MAN_RGB);
}
@@ -1561,7 +1561,7 @@ static int manipulator_selectbuf(ScrArea *sa, ARegion *ar, const int mval[2], fl
/* do the drawing */
if (v3d->twtype & V3D_MANIP_ROTATE) {
- if (G.rt == 3) draw_manipulator_rotate_cyl(v3d, rv3d, 0, MAN_ROT_C & rv3d->twdrawflag, v3d->twtype, MAN_RGB);
+ if (G.debug_value == 3) draw_manipulator_rotate_cyl(v3d, rv3d, 0, MAN_ROT_C & rv3d->twdrawflag, v3d->twtype, MAN_RGB);
else draw_manipulator_rotate(v3d, rv3d, 0, MAN_ROT_C & rv3d->twdrawflag, v3d->twtype);
}
if (v3d->twtype & V3D_MANIP_SCALE)
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c
index 81a4c082dcc..fc0c174a525 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -605,8 +605,10 @@ static void TRANSFORM_OT_trackball(struct wmOperatorType *ot)
static void TRANSFORM_OT_rotate(struct wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
- ot->name = "Rotate";
+ ot->name = "Rotate";
ot->description = "Rotate selected items";
ot->idname = OP_ROTATION;
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING;
@@ -618,19 +620,22 @@ static void TRANSFORM_OT_rotate(struct wmOperatorType *ot)
ot->cancel = transform_cancel;
ot->poll = ED_operator_screenactive;
- RNA_def_float_rotation(ot->srna, "value", 1, NULL, -FLT_MAX, FLT_MAX, "Angle", "", -M_PI * 2, M_PI * 2);
+ prop = RNA_def_float(ot->srna, "value", 0.0f, -FLT_MAX, FLT_MAX, "Angle", "", -M_PI * 2, M_PI * 2);
+ RNA_def_property_subtype(prop, PROP_ANGLE);
Transform_Properties(ot, P_AXIS | P_CONSTRAINT | P_PROPORTIONAL | P_MIRROR | P_GEO_SNAP);
}
static void TRANSFORM_OT_tilt(struct wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
- ot->name = "Tilt";
+ ot->name = "Tilt";
/* optionals -
* "Tilt selected vertices"
- * "Specify an extra axis rotation for selected vertices of 3d curve" */
- ot->description = "Tilt selected control vertices of 3d curve";
+ * "Specify an extra axis rotation for selected vertices of 3D curve" */
+ ot->description = "Tilt selected control vertices of 3D curve";
ot->idname = OP_TILT;
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_BLOCKING;
@@ -641,9 +646,10 @@ static void TRANSFORM_OT_tilt(struct wmOperatorType *ot)
ot->cancel = transform_cancel;
ot->poll = ED_operator_editcurve_3d;
- RNA_def_float_rotation(ot->srna, "value", 1, NULL, -FLT_MAX, FLT_MAX, "Angle", "", -M_PI * 2, M_PI * 2);
+ prop = RNA_def_float(ot->srna, "value", 0.0, -FLT_MAX, FLT_MAX, "Angle", "", -M_PI * 2, M_PI * 2);
+ RNA_def_property_subtype(prop, PROP_ANGLE);
- Transform_Properties(ot, P_CONSTRAINT | P_PROPORTIONAL | P_MIRROR | P_SNAP);
+ Transform_Properties(ot, P_PROPORTIONAL | P_MIRROR | P_SNAP);
}
static void TRANSFORM_OT_warp(struct wmOperatorType *ot)
diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c
index 97fc173f9a1..0e25739c34a 100644
--- a/source/blender/editors/transform/transform_orientations.c
+++ b/source/blender/editors/transform/transform_orientations.c
@@ -33,6 +33,7 @@
#include "DNA_armature_types.h"
#include "DNA_curve_types.h"
#include "DNA_mesh_types.h"
+#include "DNA_meta_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
@@ -50,11 +51,6 @@
#include "BLF_translation.h"
-//#include "BIF_editmesh.h"
-//#include "BIF_interface.h"
-//#include "BIF_space.h"
-//#include "BIF_toolbox.h"
-
#include "ED_armature.h"
#include "ED_mesh.h"
@@ -406,7 +402,7 @@ EnumPropertyItem *BIF_enumTransformOrientation(bContext *C)
const char *BIF_menustringTransformOrientation(const bContext *C, const char *title)
{
- const char *menu = IFACE_("%t|Global%x0|Local%x1|Gimbal%x4|Normal%x2|View%x3");
+ const char *menu = IFACE_("%t|Global %x0|Local %x1|Gimbal %x4|Normal %x2|View %x3");
ListBase *transform_spaces = &CTX_data_scene(C)->transform_spaces;
TransformOrientation *ts;
int i = V3D_MANIP_CUSTOM;
@@ -415,14 +411,14 @@ const char *BIF_menustringTransformOrientation(const bContext *C, const char *ti
title = IFACE_(title);
- str_menu = MEM_callocN(strlen(menu) + strlen(title) + 1 + elem_size * BIF_countTransformOrientation(C), TIP_("UserTransSpace from matrix"));
+ str_menu = MEM_callocN(strlen(menu) + strlen(title) + 1 + elem_size * BIF_countTransformOrientation(C), "UserTransSpace from matrix");
p = str_menu;
p += sprintf(str_menu, "%s", title);
p += sprintf(p, "%s", menu);
for (ts = transform_spaces->first; ts; ts = ts->next) {
- p += sprintf(p, "|%s%%x%d", ts->name, i++);
+ p += sprintf(p, "|%s %%x%d", ts->name, i++);
}
return str_menu;
@@ -554,8 +550,8 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3],
Object *ob = OBACT;
int result = ORIENTATION_NONE;
- normal[0] = normal[1] = normal[2] = 0;
- plane[0] = plane[1] = plane[2] = 0;
+ zero_v3(normal);
+ zero_v3(plane);
if (obedit) {
float imat[3][3], mat[3][3];
@@ -569,8 +565,7 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3],
ob = obedit;
if (ob->type == OB_MESH) {
- Mesh *me = ob->data;
- BMEditMesh *em = me->edit_btmesh;
+ BMEditMesh *em = BMEdit_FromObject(ob);
BMVert *eve;
BMEditSelection ese;
float vec[3] = {0, 0, 0};
@@ -748,37 +743,20 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3],
}
}
else if (obedit->type == OB_MBALL) {
-#if 0 // XXX
- /* editmball.c */
- MetaElem *ml, *ml_sel = NULL;
-
- /* loop and check that only one element is selected */
- for (ml = editelems.first; ml; ml = ml->next) {
- if (ml->flag & SELECT) {
- if (ml_sel == NULL) {
- ml_sel = ml;
- }
- else {
- ml_sel = NULL;
- break;
- }
- }
- }
+ MetaBall *mb = obedit->data;
- if (ml_sel) {
+ if (mb->lastelem) {
float mat[4][4];
/* Rotation of MetaElem is stored in quat */
- quat_to_mat4(mat, ml_sel->quat);
+ quat_to_mat4(mat, mb->lastelem->quat);
copy_v3_v3(normal, mat[2]);
negate_v3_v3(plane, mat[1]);
- result = ORIENTATION_NORMAL;
+ result = ORIENTATION_FACE;
}
-#endif
-
}
else if (obedit->type == OB_ARMATURE) {
bArmature *arm = obedit->data;
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index c49e1715f34..94b8abb8850 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -29,7 +29,6 @@
* \ingroup edtransform
*/
-
#include <stdlib.h>
#include <math.h>
#include <float.h>
@@ -41,7 +40,7 @@
#include "DNA_scene_types.h"
#include "DNA_object_types.h"
#include "DNA_mesh_types.h"
-#include "DNA_meshdata_types.h" // Temporary, for snapping to other unselected meshes
+#include "DNA_meshdata_types.h" /* Temporary, for snapping to other unselected meshes */
#include "DNA_node_types.h"
#include "DNA_space_types.h"
#include "DNA_screen_types.h"
@@ -54,20 +53,11 @@
#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
-//#include "BDR_drawobject.h"
-//
-//#include "editmesh.h"
-//#include "BIF_editsima.h"
#include "BIF_gl.h"
-//#include "BIF_mywindow.h"
-//#include "BIF_screen.h"
-//#include "BIF_editsima.h"
-//#include "BIF_drawimage.h"
-//#include "BIF_editmesh.h"
#include "BKE_DerivedMesh.h"
#include "BKE_object.h"
-#include "BKE_anim.h" /* for duplis */
+#include "BKE_anim.h" /* for duplis */
#include "BKE_context.h"
#include "BKE_tessmesh.h"
#include "BKE_mesh.h"
@@ -88,10 +78,10 @@
#include "transform.h"
-//#include "blendef.h" /* for selection modes */
-
#define USE_BVH_FACE_SNAP
+#define TRANSFORM_DIST_MAX_PX 1000
+
/********************* PROTOTYPES ***********************/
static void setSnappingCallback(TransInfo *t);
@@ -218,10 +208,10 @@ void drawSnapping(const struct bContext *C, TransInfo *t)
myortho2(G.v2d->cur.xmin, G.v2d->cur.xmax, G.v2d->cur.ymin, G.v2d->cur.ymax);
glLoadIdentity();
- ED_space_image_aspect(t->sa->spacedata.first, &xuser_aspx, &yuser_asp);
+ ED_space_image_get_aspect(t->sa->spacedata.first, &xuser_aspx, &yuser_asp);
ED_space_image_width(t->sa->spacedata.first, &wi, &hi);
- w = (((float)wi) / 256.0f) * G.sima->zoom * xuser_asp;
- h = (((float)hi) / 256.0f) * G.sima->zoom * yuser_asp;
+ w = (((float)wi) / IMG_SIZE_FALLBACK) * G.sima->zoom * xuser_asp;
+ h = (((float)hi) / IMG_SIZE_FALLBACK) * G.sima->zoom * yuser_asp;
cpack(0xFFFFFF);
glTranslatef(t->tsnap.snapPoint[0], t->tsnap.snapPoint[1], 0.0f);
@@ -258,13 +248,13 @@ void drawSnapping(const struct bContext *C, TransInfo *t)
glColor4ubv(col);
}
- drawnodesnap(&ar->v2d, p->co, size, 0);
+ ED_node_draw_snap(&ar->v2d, p->co, size, 0);
}
if (t->tsnap.status & POINT_INIT) {
glColor4ubv(activeCol);
- drawnodesnap(&ar->v2d, t->tsnap.snapPoint, size, t->tsnap.snapNodeBorder);
+ ED_node_draw_snap(&ar->v2d, t->tsnap.snapPoint, size, t->tsnap.snapNodeBorder);
}
glDisable(GL_BLEND);
@@ -308,7 +298,7 @@ void applyProject(TransInfo *t)
for (i = 0; i < t->total; i++, td++) {
float iloc[3], loc[3], no[3];
float mval[2];
- int dist = 1000;
+ int dist = TRANSFORM_DIST_MAX_PX;
if (td->flag & TD_NOACTION)
break;
@@ -327,18 +317,18 @@ void applyProject(TransInfo *t)
copy_v3_v3(iloc, td->ob->obmat[3]);
}
- project_float(t->ar, iloc, mval);
-
- if (snapObjectsTransform(t, mval, &dist, loc, no, t->tsnap.modeSelect)) {
-// if (t->flag & (T_EDIT|T_POSE)) {
-// mul_m4_v3(imat, loc);
-// }
-//
- sub_v3_v3v3(tvec, loc, iloc);
-
- mul_m3_v3(td->smtx, tvec);
-
- add_v3_v3(td->loc, tvec);
+ if (ED_view3d_project_float_global(t->ar, iloc, mval, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ if (snapObjectsTransform(t, mval, &dist, loc, no, t->tsnap.modeSelect)) {
+// if (t->flag & (T_EDIT|T_POSE)) {
+// mul_m4_v3(imat, loc);
+// }
+
+ sub_v3_v3v3(tvec, loc, iloc);
+
+ mul_m3_v3(td->smtx, tvec);
+
+ add_v3_v3(td->loc, tvec);
+ }
}
//XXX constraintTransLim(t, td);
@@ -422,9 +412,8 @@ static void initSnappingMode(TransInfo *t)
}
else {
/* force project off when not supported */
- if (ts->snap_mode != SCE_SNAP_MODE_FACE) {
+ if (t->spacetype == SPACE_IMAGE || ts->snap_mode != SCE_SNAP_MODE_FACE)
t->tsnap.project = 0;
- }
t->tsnap.mode = ts->snap_mode;
}
@@ -463,12 +452,10 @@ static void initSnappingMode(TransInfo *t)
t->tsnap.mode = SCE_SNAP_MODE_INCREMENT;
}
}
- else if (t->spacetype == SPACE_NODE)
- {
+ else if (t->spacetype == SPACE_NODE) {
setSnappingCallback(t);
- if (t->tsnap.applySnap != NULL)
- {
+ if (t->tsnap.applySnap != NULL) {
t->tsnap.modeSelect = SNAP_NOT_SELECTED;
}
else {
@@ -616,7 +603,9 @@ int updateSelectedSnapPoint(TransInfo *t)
int dx, dy;
int dist;
- project_int(t->ar, p->co, screen_loc);
+ if (ED_view3d_project_int_global(t->ar, p->co, screen_loc, V3D_PROJ_TEST_NOP) != V3D_PROJ_RET_OK) {
+ continue;
+ }
dx = t->mval[0] - screen_loc[0];
dy = t->mval[1] - screen_loc[1];
@@ -941,7 +930,7 @@ static void CalcSnapGeometry(TransInfo *t, float *UNUSED(vec))
UI_view2d_region_to_view(&t->ar->v2d, t->mval[0], t->mval[1], co, co + 1);
if (ED_uvedit_nearest_uv(t->scene, t->obedit, ima, co, t->tsnap.snapPoint)) {
- ED_space_image_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
+ ED_space_image_get_uv_aspect(t->sa->spacedata.first, &aspx, &aspy);
t->tsnap.snapPoint[0] *= aspx;
t->tsnap.snapPoint[1] *= aspy;
@@ -975,8 +964,8 @@ static void TargetSnapOffset(TransInfo *t, TransData *td)
if (t->spacetype == SPACE_NODE && td != NULL) {
bNode *node = td->extra;
char border = t->tsnap.snapNodeBorder;
- float width = node->totr.xmax - node->totr.xmin;
- float height = node->totr.ymax - node->totr.ymin;
+ float width = BLI_rctf_size_x(&node->totr);
+ float height = BLI_rctf_size_y(&node->totr);
if (border & NODE_LEFT)
t->tsnap.snapTarget[0] -= 0.5f * width;
@@ -1095,7 +1084,7 @@ static void TargetSnapClosest(TransInfo *t)
dist = t->tsnap.distance(t, loc, t->tsnap.snapPoint);
- if (closest == NULL || fabs(dist) < fabs(t->tsnap.dist)) {
+ if (closest == NULL || fabsf(dist) < fabsf(t->tsnap.dist)) {
copy_v3_v3(t->tsnap.snapTarget, loc);
closest = td;
t->tsnap.dist = dist;
@@ -1111,7 +1100,7 @@ static void TargetSnapClosest(TransInfo *t)
dist = t->tsnap.distance(t, loc, t->tsnap.snapPoint);
- if (closest == NULL || fabs(dist) < fabs(t->tsnap.dist)) {
+ if (closest == NULL || fabsf(dist) < fabsf(t->tsnap.dist)) {
copy_v3_v3(t->tsnap.snapTarget, loc);
closest = td;
t->tsnap.dist = dist;
@@ -1134,7 +1123,7 @@ static void TargetSnapClosest(TransInfo *t)
dist = t->tsnap.distance(t, loc, t->tsnap.snapPoint);
- if (closest == NULL || fabs(dist) < fabs(t->tsnap.dist)) {
+ if (closest == NULL || fabsf(dist) < fabsf(t->tsnap.dist)) {
copy_v3_v3(t->tsnap.snapTarget, loc);
closest = td;
t->tsnap.dist = dist;
@@ -1179,7 +1168,7 @@ static int snapFace(ARegion *ar, float v1co[3], float v2co[3], float v3co[3], fl
new_depth = len_v3v3(location, ray_start);
- project_int(ar, location, screen_loc);
+ ED_view3d_project_int(ar, location, screen_loc);
new_dist = abs(screen_loc[0] - (int)mval[0]) + abs(screen_loc[1] - (int)mval[1]);
if (new_dist <= *dist && new_depth < *depth) {
@@ -1247,8 +1236,12 @@ static int snapEdge(ARegion *ar, float v1co[3], short v1no[3], float v2co[3], sh
new_depth = len_v3v3(location, ray_start);
- project_int(ar, location, screen_loc);
- new_dist = abs(screen_loc[0] - (int)mval[0]) + abs(screen_loc[1] - (int)mval[1]);
+ if (ED_view3d_project_int_global(ar, location, screen_loc, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ new_dist = abs(screen_loc[0] - (int)mval[0]) + abs(screen_loc[1] - (int)mval[1]);
+ }
+ else {
+ new_dist = TRANSFORM_DIST_MAX_PX;
+ }
/* 10% threshold if edge is closer but a bit further
* this takes care of series of connected edges a bit slanted w.r.t the viewport
@@ -1304,8 +1297,13 @@ static int snapVertex(ARegion *ar, float vco[3], short vno[3], float obmat[][4],
new_depth = len_v3v3(location, ray_start);
- project_int(ar, location, screen_loc);
- new_dist = abs(screen_loc[0] - (int)mval[0]) + abs(screen_loc[1] - (int)mval[1]);
+ if (ED_view3d_project_int_global(ar, location, screen_loc, V3D_PROJ_TEST_NOP) == V3D_PROJ_RET_OK) {
+ new_dist = abs(screen_loc[0] - (int)mval[0]) + abs(screen_loc[1] - (int)mval[1]);
+ }
+ else {
+ new_dist = TRANSFORM_DIST_MAX_PX;
+ }
+
if (new_dist <= *r_dist && new_depth < *r_depth) {
*r_depth = new_depth;
@@ -1712,7 +1710,7 @@ static int snapObjects(Scene *scene, View3D *v3d, ARegion *ar, Object *obedit, c
if (ob->transflag & OB_DUPLI) {
DupliObject *dupli_ob;
- ListBase *lb = object_duplilist(scene, ob);
+ ListBase *lb = object_duplilist(scene, ob, FALSE);
for (dupli_ob = lb->first; dupli_ob; dupli_ob = dupli_ob->next) {
Object *dob = dupli_ob->ob;
@@ -1918,7 +1916,7 @@ static int peelObjects(Scene *scene, View3D *v3d, ARegion *ar, Object *obedit, L
if (ob->transflag & OB_DUPLI) {
DupliObject *dupli_ob;
- ListBase *lb = object_duplilist(scene, ob);
+ ListBase *lb = object_duplilist(scene, ob, FALSE);
for (dupli_ob = lb->first; dupli_ob; dupli_ob = dupli_ob->next) {
Object *dob = dupli_ob->ob;
@@ -2149,7 +2147,12 @@ static void applyGrid(TransInfo *t, float *val, int max_index, float fac[3], Gea
/* evil hack - snapping needs to be adapted for image aspect ratio */
if ((t->spacetype == SPACE_IMAGE) && (t->mode == TFM_TRANSLATION)) {
- ED_space_image_uv_aspect(t->sa->spacedata.first, asp, asp + 1);
+ if (t->options & CTX_MASK) {
+ ED_space_image_get_aspect(t->sa->spacedata.first, asp, asp + 1);
+ }
+ else {
+ ED_space_image_get_uv_aspect(t->sa->spacedata.first, asp, asp + 1);
+ }
}
for (i = 0; i <= max_index; i++) {
diff --git a/source/blender/editors/util/CMakeLists.txt b/source/blender/editors/util/CMakeLists.txt
index c13e6c16413..e0991c48fa6 100644
--- a/source/blender/editors/util/CMakeLists.txt
+++ b/source/blender/editors/util/CMakeLists.txt
@@ -62,6 +62,7 @@ set(SRC
../include/ED_lattice.h
../include/ED_logic.h
../include/ED_markers.h
+ ../include/ED_mask.h
../include/ED_mball.h
../include/ED_mesh.h
../include/ED_node.h
diff --git a/source/blender/editors/util/ed_util.c b/source/blender/editors/util/ed_util.c
index 6d9f2732d8a..23d6b0a075e 100644
--- a/source/blender/editors/util/ed_util.c
+++ b/source/blender/editors/util/ed_util.c
@@ -45,10 +45,10 @@
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_main.h"
-#include "BKE_utildefines.h"
#include "BKE_packedFile.h"
#include "ED_armature.h"
+#include "ED_image.h"
#include "ED_mesh.h"
#include "ED_object.h"
#include "ED_sculpt.h"
@@ -67,6 +67,7 @@
void ED_editors_init(bContext *C)
{
+ wmWindowManager *wm = CTX_wm_manager(C);
Main *bmain = CTX_data_main(C);
Scene *sce = CTX_data_scene(C);
Object *ob, *obact = (sce && sce->basact) ? sce->basact->object : NULL;
@@ -86,6 +87,11 @@ void ED_editors_init(bContext *C)
ED_object_toggle_modes(C, mode);
}
}
+
+ /* image editor paint mode */
+ if (sce) {
+ ED_space_image_paint_update(wm, sce->toolsettings);
+ }
}
/* frees all editmode stuff */
diff --git a/source/blender/editors/util/editmode_undo.c b/source/blender/editors/util/editmode_undo.c
index 18610d57bbd..9a3b0476205 100644
--- a/source/blender/editors/util/editmode_undo.c
+++ b/source/blender/editors/util/editmode_undo.c
@@ -29,8 +29,6 @@
* \ingroup edutil
*/
-
-
#include <stdlib.h>
#include <string.h>
#include <math.h>
@@ -44,7 +42,7 @@
#include "BLI_dynstr.h"
#include "BLI_utildefines.h"
-
+#include "BKE_blender.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
#include "BKE_global.h"
@@ -82,8 +80,6 @@
static void error(const char *UNUSED(arg)) {}
/* ****** XXX ***** */
-
-#define MAXUNDONAME 64
typedef struct UndoElem {
struct UndoElem *next, *prev;
ID id; // copy of editmode object ID
@@ -91,7 +87,7 @@ typedef struct UndoElem {
int type; // type of edited object
void *undodata;
uintptr_t undosize;
- char name[MAXUNDONAME];
+ char name[BKE_UNDO_STR_MAX];
void * (*getdata)(bContext * C);
void (*freedata)(void *);
void (*to_editmode)(void *, void *, void *);
diff --git a/source/blender/editors/util/numinput.c b/source/blender/editors/util/numinput.c
index 91290829662..b73f5fa0869 100644
--- a/source/blender/editors/util/numinput.c
+++ b/source/blender/editors/util/numinput.c
@@ -66,6 +66,7 @@ void outputNumInput(NumInput *n, char *str)
char cur;
char inv[] = "1/";
short i, j;
+ const int ln = NUM_STR_REP_LEN;
for (j = 0; j <= n->idx_max; j++) {
/* if AFFECTALL and no number typed and cursor not on number, use first number */
@@ -85,34 +86,34 @@ void outputNumInput(NumInput *n, char *str)
inv[0] = 0;
if (n->val[i] > 1e10f || n->val[i] < -1e10f)
- BLI_snprintf(&str[j * 20], 20, "%s%.4e%c", inv, n->val[i], cur);
+ BLI_snprintf(&str[j * ln], ln, "%s%.4e%c", inv, n->val[i], cur);
else
switch (n->ctrl[i]) {
case 0:
- BLI_snprintf(&str[j * 20], 20, "%sNONE%c", inv, cur);
+ BLI_snprintf(&str[j * ln], ln, "%sNONE%c", inv, cur);
break;
case 1:
case -1:
- BLI_snprintf(&str[j * 20], 20, "%s%.0f%c", inv, n->val[i], cur);
+ BLI_snprintf(&str[j * ln], ln, "%s%.0f%c", inv, n->val[i], cur);
break;
case 10:
case -10:
- BLI_snprintf(&str[j * 20], 20, "%s%.f.%c", inv, n->val[i], cur);
+ BLI_snprintf(&str[j * ln], ln, "%s%.f.%c", inv, n->val[i], cur);
break;
case 100:
case -100:
- BLI_snprintf(&str[j * 20], 20, "%s%.1f%c", inv, n->val[i], cur);
+ BLI_snprintf(&str[j * ln], ln, "%s%.1f%c", inv, n->val[i], cur);
break;
case 1000:
case -1000:
- BLI_snprintf(&str[j * 20], 20, "%s%.2f%c", inv, n->val[i], cur);
+ BLI_snprintf(&str[j * ln], ln, "%s%.2f%c", inv, n->val[i], cur);
break;
case 10000:
case -10000:
- BLI_snprintf(&str[j * 20], 20, "%s%.3f%c", inv, n->val[i], cur);
+ BLI_snprintf(&str[j * ln], ln, "%s%.3f%c", inv, n->val[i], cur);
break;
default:
- BLI_snprintf(&str[j * 20], 20, "%s%.4e%c", inv, n->val[i], cur);
+ BLI_snprintf(&str[j * ln], ln, "%s%.4e%c", inv, n->val[i], cur);
}
}
}
@@ -278,7 +279,9 @@ char handleNumInput(NumInput *n, wmEvent *event)
if (!n->ctrl[idx])
n->ctrl[idx] = 1;
- if (fabsf(n->val[idx]) > 9999999.0f) ;
+ if (fabsf(n->val[idx]) > 9999999.0f) {
+ /* pass */
+ }
else if (n->ctrl[idx] == 1) {
n->val[idx] *= 10;
n->val[idx] += Val;
diff --git a/source/blender/editors/util/undo.c b/source/blender/editors/util/undo.c
index 0c2bfff3b57..5eafc3e65a9 100644
--- a/source/blender/editors/util/undo.c
+++ b/source/blender/editors/util/undo.c
@@ -74,8 +74,6 @@
#include "util_intern.h"
-#define MAXUNDONAME 64 /* XXX, make common define */
-
/* ***************** generic undo system ********************* */
void ED_undo_push(bContext *C, const char *str)
@@ -109,8 +107,7 @@ void ED_undo_push(bContext *C, const char *str)
PE_undo_push(CTX_data_scene(C), str);
}
else {
- if (U.uiflag & USER_GLOBALUNDO)
- BKE_write_undo(C, str);
+ BKE_write_undo(C, str);
}
if (wm->file_saved) {
@@ -129,7 +126,7 @@ static int ed_undo_step(bContext *C, int step, const char *undoname)
/* undo during jobs are running can easily lead to freeing data using by jobs,
* or they can just lead to freezing job in some other cases */
- if (WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C))) {
+ if (WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C), WM_JOB_TYPE_ANY)) {
return OPERATOR_CANCELLED;
}
@@ -141,7 +138,7 @@ static int ed_undo_step(bContext *C, int step, const char *undoname)
if (sa && (sa->spacetype == SPACE_IMAGE)) {
SpaceImage *sima = (SpaceImage *)sa->spacedata.first;
- if ((obact && (obact->mode & OB_MODE_TEXTURE_PAINT)) || (sima->flag & SI_DRAWTOOL)) {
+ if ((obact && (obact->mode & OB_MODE_TEXTURE_PAINT)) || (sima->mode == SI_MODE_PAINT)) {
if (!ED_undo_paint_step(C, UNDO_PAINT_IMAGE, step, undoname) && undoname)
if (U.uiflag & USER_GLOBALUNDO)
BKE_undo_name(C, undoname);
@@ -238,7 +235,7 @@ int ED_undo_valid(const bContext *C, const char *undoname)
if (sa && sa->spacetype == SPACE_IMAGE) {
SpaceImage *sima = (SpaceImage *)sa->spacedata.first;
- if ((obact && (obact->mode & OB_MODE_TEXTURE_PAINT)) || (sima->flag & SI_DRAWTOOL)) {
+ if ((obact && (obact->mode & OB_MODE_TEXTURE_PAINT)) || (sima->mode == SI_MODE_PAINT)) {
return 1;
}
}
@@ -283,7 +280,7 @@ static int ed_undo_exec(bContext *C, wmOperator *UNUSED(op))
static int ed_undo_push_exec(bContext *C, wmOperator *op)
{
- char str[MAXUNDONAME];
+ char str[BKE_UNDO_STR_MAX];
RNA_string_get(op->ptr, "message", str);
ED_undo_push(C, str);
return OPERATOR_FINISHED;
@@ -321,7 +318,7 @@ void ED_OT_undo_push(wmOperatorType *ot)
ot->flag = OPTYPE_INTERNAL;
- RNA_def_string(ot->srna, "message", "Add an undo step *function may be moved*", MAXUNDONAME, "Undo Message", "");
+ RNA_def_string(ot->srna, "message", "Add an undo step *function may be moved*", BKE_UNDO_STR_MAX, "Undo Message", "");
}
void ED_OT_redo(wmOperatorType *ot)
@@ -359,7 +356,7 @@ int ED_undo_operator_repeat(bContext *C, struct wmOperator *op)
* (which copy their data), wont stop redo, see [#29579]],
*
* note, - WM_operator_check_ui_enabled() jobs test _must_ stay in sync with this */
- (WM_jobs_test(wm, scene) == 0))
+ (WM_jobs_test(wm, scene, WM_JOB_TYPE_ANY) == 0))
{
int retval;
diff --git a/source/blender/editors/uvedit/uvedit_buttons.c b/source/blender/editors/uvedit/uvedit_buttons.c
index ec645f86848..fa39a52444b 100644
--- a/source/blender/editors/uvedit/uvedit_buttons.c
+++ b/source/blender/editors/uvedit/uvedit_buttons.c
@@ -125,7 +125,7 @@ static void uvedit_vertex_buttons(const bContext *C, uiBlock *block)
float center[2];
int imx, imy, step, digits;
- ED_space_image_size(sima, &imx, &imy);
+ ED_space_image_get_size(sima, &imx, &imy);
em = BMEdit_FromObject(obedit);
@@ -168,7 +168,7 @@ static void do_uvedit_vertex(bContext *C, void *UNUSED(arg), int event)
em = BMEdit_FromObject(obedit);
- ED_space_image_size(sima, &imx, &imy);
+ ED_space_image_get_size(sima, &imx, &imy);
uvedit_center(scene, em, ima, center);
if (sima->flag & SI_COORDFLOATS) {
diff --git a/source/blender/editors/uvedit/uvedit_draw.c b/source/blender/editors/uvedit/uvedit_draw.c
index 17c57b1f6e4..d6794912043 100644
--- a/source/blender/editors/uvedit/uvedit_draw.c
+++ b/source/blender/editors/uvedit/uvedit_draw.c
@@ -63,13 +63,13 @@
#include "uvedit_intern.h"
-static void drawcursor_sima(SpaceImage *sima, ARegion *ar)
+void draw_image_cursor(SpaceImage *sima, ARegion *ar)
{
float zoomx, zoomy, w, h;
int width, height;
- ED_space_image_size(sima, &width, &height);
- ED_space_image_zoom(sima, ar, &zoomx, &zoomy);
+ ED_space_image_get_size(sima, &width, &height);
+ ED_space_image_get_zoom(sima, ar, &zoomx, &zoomy);
w = zoomx * width / 256.0f;
h = zoomy * height / 256.0f;
@@ -174,7 +174,7 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, BMEditMesh *em, MTe
float aspx, aspy, col[4], (*tf_uv)[2] = NULL, (*tf_uvorig)[2] = NULL;
int i, j, nverts;
- ED_space_image_uv_aspect(sima, &aspx, &aspy);
+ ED_space_image_get_uv_aspect(sima, &aspx, &aspy);
switch (sima->dt_uvstretch) {
case SI_UVDT_STRETCH_AREA:
@@ -415,7 +415,7 @@ static void draw_uvs_texpaint(SpaceImage *sima, Scene *scene, Object *ob)
glColor3ub(112, 112, 112);
- if (me->mtface) {
+ if (me->mtpoly) {
MPoly *mpoly = me->mpoly;
MTexPoly *tface = me->mtpoly;
MLoopUV *mloopuv;
@@ -455,8 +455,8 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
StitchPreviewer *stitch_preview = uv_get_stitch_previewer();
- activetf = EDBM_mtexpoly_active_get(em, &efa_act, FALSE); /* will be set to NULL if hidden */
- activef = BM_active_face_get(bm, FALSE);
+ activetf = EDBM_mtexpoly_active_get(em, &efa_act, FALSE, FALSE); /* will be set to NULL if hidden */
+ activef = BM_active_face_get(bm, FALSE, FALSE);
ts = scene->toolsettings;
drawfaces = draw_uvs_face_check(scene);
@@ -889,7 +889,7 @@ void draw_uvedit_main(SpaceImage *sima, ARegion *ar, Scene *scene, Object *obedi
draw_uvs_texpaint(sima, scene, obact);
if (show_uvedit && !(toolsettings->use_uv_sculpt))
- drawcursor_sima(sima, ar);
+ draw_image_cursor(sima, ar);
}
}
diff --git a/source/blender/editors/uvedit/uvedit_intern.h b/source/blender/editors/uvedit/uvedit_intern.h
index d258d271833..f0ff79ae25e 100644
--- a/source/blender/editors/uvedit/uvedit_intern.h
+++ b/source/blender/editors/uvedit/uvedit_intern.h
@@ -46,10 +46,6 @@ struct BMLoop;
struct BMEdge;
struct BMVert;
-/* id can be from 0 to 3 */
-#define TF_PIN_MASK(id) (TF_PIN1 << id)
-#define TF_SEL_MASK(id) (TF_SEL1 << id)
-
/* visibility and selection */
int uvedit_face_visible_nolocal(struct Scene *scene, struct BMFace *efa);
diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c
index 216ac61b628..6e655faf35f 100644
--- a/source/blender/editors/uvedit/uvedit_ops.c
+++ b/source/blender/editors/uvedit/uvedit_ops.c
@@ -165,6 +165,8 @@ void ED_object_assign_active_image(Main *bmain, Object *ob, int mat_nr, Image *i
/************************* assign image ************************/
+//#define USE_SWITCH_ASPECT
+
void ED_uvedit_assign_image(Main *bmain, Scene *scene, Object *obedit, Image *ima, Image *previma)
{
BMEditMesh *em;
@@ -172,6 +174,8 @@ void ED_uvedit_assign_image(Main *bmain, Scene *scene, Object *obedit, Image *im
BMIter iter;
MTexPoly *tf;
int update = 0;
+ int sloppy = TRUE;
+ int selected = !(scene->toolsettings->uv_flag & UV_SYNC_SELECTION);
/* skip assigning these procedural images... */
if (ima && (ima->type == IMA_TYPE_R_RESULT || ima->type == IMA_TYPE_COMPOSITE))
@@ -188,15 +192,24 @@ void ED_uvedit_assign_image(Main *bmain, Scene *scene, Object *obedit, Image *im
if (BKE_scene_use_new_shading_nodes(scene)) {
/* new shading system, assign image in material */
- int sloppy = 1;
- BMFace *efa = BM_active_face_get(em->bm, sloppy);
+ BMFace *efa = BM_active_face_get(em->bm, sloppy, selected);
if (efa)
ED_object_assign_active_image(bmain, obedit, efa->mat_nr + 1, ima);
}
else {
/* old shading system, assign image to selected faces */
-
+#ifdef USE_SWITCH_ASPECT
+ float prev_aspect[2], fprev_aspect;
+ float aspect[2], faspect;
+
+ ED_image_get_uv_aspect(previma, prev_aspect, prev_aspect + 1);
+ ED_image_get_uv_aspect(ima, aspect, aspect + 1);
+
+ fprev_aspect = prev_aspect[0] / prev_aspect[1];
+ faspect = aspect[0] / aspect[1];
+#endif
+
/* ensure we have a uv map */
if (!CustomData_has_layer(&em->bm->pdata, CD_MTEXPOLY)) {
BM_data_layer_add(em->bm, &em->bm->pdata, CD_MTEXPOLY);
@@ -214,6 +227,24 @@ void ED_uvedit_assign_image(Main *bmain, Scene *scene, Object *obedit, Image *im
if (ima->id.us == 0) id_us_plus(&ima->id);
else id_lib_extern(&ima->id);
+
+#ifdef USE_SWITCH_ASPECT
+ /* we also need to correct the aspect of uvs */
+ if (scene->toolsettings->uvcalc_flag & UVCALC_NO_ASPECT_CORRECT) {
+ /* do nothing */
+ }
+ else {
+ BMIter liter;
+ BMLoop *l;
+
+ BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
+ MLoopUV *luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
+
+ luv->uv[0] *= fprev_aspect;
+ luv->uv[0] /= faspect;
+ }
+ }
+#endif
}
else {
tf->tpage = NULL;
@@ -271,11 +302,11 @@ static void uvedit_pixel_to_float(SpaceImage *sima, float *dist, float pixeldist
int width, height;
if (sima) {
- ED_space_image_size(sima, &width, &height);
+ ED_space_image_get_size(sima, &width, &height);
}
else {
- width = 256;
- height = 256;
+ width = IMG_SIZE_FALLBACK;
+ height = IMG_SIZE_FALLBACK;
}
dist[0] = pixeldist / width;
@@ -650,10 +681,10 @@ void uv_find_nearest_edge(Scene *scene, Image *ima, BMEditMesh *em, const float
BMLoop *l;
BMIter iter, liter;
MLoopUV *luv, *nextluv;
- float mindist, dist;
+ float mindist_squared, dist_squared;
int i;
- mindist = 1e10f;
+ mindist_squared = 1e10f;
memset(hit, 0, sizeof(*hit));
BM_mesh_elem_index_ensure(em->bm, BM_VERT);
@@ -668,9 +699,9 @@ void uv_find_nearest_edge(Scene *scene, Image *ima, BMEditMesh *em, const float
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
nextluv = CustomData_bmesh_get(&em->bm->ldata, l->next->head.data, CD_MLOOPUV);
- dist = dist_to_line_segment_v2(co, luv->uv, nextluv->uv);
+ dist_squared = dist_squared_to_line_segment_v2(co, luv->uv, nextluv->uv);
- if (dist < mindist) {
+ if (dist_squared < mindist_squared) {
hit->tf = tf;
hit->efa = efa;
@@ -682,7 +713,7 @@ void uv_find_nearest_edge(Scene *scene, Image *ima, BMEditMesh *em, const float
hit->vert1 = BM_elem_index_get(hit->l->v);
hit->vert2 = BM_elem_index_get(hit->l->next->v);
- mindist = dist;
+ mindist_squared = dist_squared;
}
i++;
@@ -712,7 +743,7 @@ static void find_nearest_uv_face(Scene *scene, Image *ima, BMEditMesh *em, const
uv_poly_center(em, efa, cent);
- dist = fabs(co[0] - cent[0]) + fabs(co[1] - cent[1]);
+ dist = fabsf(co[0] - cent[0]) + fabsf(co[1] - cent[1]);
if (dist < mindist) {
hit->tf = tf;
@@ -728,14 +759,13 @@ static int nearest_uv_between(BMEditMesh *em, BMFace *efa, int UNUSED(nverts), i
BMLoop *l;
MLoopUV *luv;
BMIter iter;
- float m[3], v1[3], v2[3], c1, c2, *uv1 = NULL, /* *uv2, */ /* UNUSED */ *uv3 = NULL;
+ float m[2], v1[2], v2[2], c1, c2, *uv1 = NULL, /* *uv2, */ /* UNUSED */ *uv3 = NULL;
int id1, id2, i;
id1 = (id + efa->len - 1) % efa->len;
id2 = (id + efa->len + 1) % efa->len;
- m[0] = co[0] - uv[0];
- m[1] = co[1] - uv[1];
+ sub_v2_v2v2(m, co, uv);
i = 0;
BM_ITER_ELEM (l, &iter, efa, BM_LOOPS_OF_FACE) {
@@ -751,8 +781,8 @@ static int nearest_uv_between(BMEditMesh *em, BMFace *efa, int UNUSED(nverts), i
i++;
}
- sub_v3_v3v3(v1, uv1, uv);
- sub_v3_v3v3(v2, uv3, uv);
+ sub_v2_v2v2(v1, uv1, uv);
+ sub_v2_v2v2(v2, uv3, uv);
/* m and v2 on same side of v-v1? */
c1 = v1[0] * m[1] - v1[1] * m[0];
@@ -848,7 +878,7 @@ int ED_uvedit_nearest_uv(Scene *scene, Object *obedit, Image *ima, const float c
BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
- dist = fabs(co[0] - luv->uv[0]) + fabs(co[1] - luv->uv[1]);
+ dist = fabsf(co[0] - luv->uv[0]) + fabsf(co[1] - luv->uv[1]);
if (dist <= mindist) {
mindist = dist;
@@ -1713,7 +1743,7 @@ static int mouse_select(bContext *C, const float co[2], int extend, int loop)
* the selection rather than de-selecting the closest. */
uvedit_pixel_to_float(sima, limit, 0.05f);
- uvedit_pixel_to_float(sima, penalty, 5.0f / sima->zoom);
+ uvedit_pixel_to_float(sima, penalty, 5.0f / (sima ? sima->zoom : 1.0f));
/* retrieve operation mode */
if (ts->uv_flag & UV_SYNC_SELECTION) {
@@ -2026,7 +2056,7 @@ static void UV_OT_select(wmOperatorType *ot)
ot->name = "Select";
ot->description = "Select UV vertices";
ot->idname = "UV_OT_select";
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ot->flag = OPTYPE_UNDO;
/* api callbacks */
ot->exec = select_exec;
@@ -2071,7 +2101,7 @@ static void UV_OT_select_loop(wmOperatorType *ot)
ot->name = "Loop Select";
ot->description = "Select a loop of connected UV vertices";
ot->idname = "UV_OT_select_loop";
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ot->flag = OPTYPE_UNDO;
/* api callbacks */
ot->exec = select_loop_exec;
@@ -2173,7 +2203,7 @@ static void UV_OT_select_linked_pick(wmOperatorType *ot)
ot->name = "Select Linked Pick";
ot->description = "Select all UV vertices linked under the mouse";
ot->idname = "UV_OT_select_linked_pick";
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+ ot->flag = OPTYPE_UNDO;
/* api callbacks */
ot->invoke = select_linked_pick_invoke;
@@ -2188,6 +2218,88 @@ static void UV_OT_select_linked_pick(wmOperatorType *ot)
"Location", "Mouse location in normalized coordinates, 0.0 to 1.0 is within the image bounds", -100.0f, 100.0f);
}
+/* note: this is based on similar use case to MESH_OT_split(), which has a similar effect
+ * but in this case they are not joined to begin with (only having the behavior of being joined)
+ * so its best to call this select_split() instead of just split(), but assigned to the same key
+ * as MESH_OT_split - Campbell */
+static int select_split_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene = CTX_data_scene(C);
+ ToolSettings *ts = scene->toolsettings;
+ Image *ima = CTX_data_edit_image(C);
+ Object *obedit = CTX_data_edit_object(C);
+ BMesh *bm = BMEdit_FromObject(obedit)->bm;
+
+ BMFace *efa;
+ BMLoop *l;
+ BMIter iter, liter;
+ MTexPoly *tf;
+ MLoopUV *luv;
+ short change = FALSE;
+
+ if (ts->uv_flag & UV_SYNC_SELECTION) {
+ BKE_report(op->reports, RPT_ERROR, "Can't split selection when sync selection is enabled");
+ return OPERATOR_CANCELLED;
+ }
+
+
+ BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) {
+ int is_sel = FALSE;
+ int is_unsel = FALSE;
+ tf = CustomData_bmesh_get(&bm->pdata, efa->head.data, CD_MTEXPOLY);
+
+ if (!uvedit_face_visible_test(scene, ima, efa, tf))
+ continue;
+
+ /* are we all selected? */
+ BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
+ luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
+
+ if (luv->flag & MLOOPUV_VERTSEL) {
+ is_sel = TRUE;
+ }
+ else {
+ is_unsel = TRUE;
+ }
+
+ /* we have mixed selection, bail out */
+ if (is_sel && is_unsel) {
+ break;
+ }
+ }
+
+ if (is_sel && is_unsel) {
+ BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
+ luv = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MLOOPUV);
+ luv->flag &= ~MLOOPUV_VERTSEL;
+ }
+
+ change = TRUE;
+ }
+ }
+
+ if (change) {
+ return OPERATOR_FINISHED;
+ }
+ else {
+ return OPERATOR_CANCELLED;
+ }
+}
+
+
+static void UV_OT_select_split(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Select Split";
+ ot->description = "Select only entirely selected faces";
+ ot->idname = "UV_OT_select_split";
+ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
+
+ /* api callbacks */
+ ot->exec = select_split_exec;
+ ot->poll = ED_operator_uvedit; /* requires space image */;
+}
+
/* ******************** unlink selection operator **************** */
static int unlink_selection_exec(bContext *C, wmOperator *op)
@@ -2423,10 +2535,7 @@ static int border_select_exec(bContext *C, wmOperator *op)
int change, pinned, select, faces, extend;
/* get rectangle from operator */
- rect.xmin = RNA_int_get(op->ptr, "xmin");
- rect.ymin = RNA_int_get(op->ptr, "ymin");
- rect.xmax = RNA_int_get(op->ptr, "xmax");
- rect.ymax = RNA_int_get(op->ptr, "ymax");
+ WM_operator_properties_border_to_rcti(op, &rect);
UI_view2d_region_to_view(&ar->v2d, rect.xmin, rect.ymin, &rectf.xmin, &rectf.ymin);
UI_view2d_region_to_view(&ar->v2d, rect.xmax, rect.ymax, &rectf.xmax, &rectf.ymax);
@@ -2458,7 +2567,7 @@ static int border_select_exec(bContext *C, wmOperator *op)
tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
if (uvedit_face_visible_test(scene, ima, efa, tf)) {
uv_poly_center(em, efa, cent);
- if (BLI_in_rctf(&rectf, cent[0], cent[1])) {
+ if (BLI_rctf_isect_pt_v(&rectf, cent)) {
BM_elem_flag_enable(efa, BM_ELEM_TAG);
change = 1;
}
@@ -2483,15 +2592,13 @@ static int border_select_exec(bContext *C, wmOperator *op)
if (!pinned || (ts->uv_flag & UV_SYNC_SELECTION) ) {
/* UV_SYNC_SELECTION - can't do pinned selection */
- if (BLI_in_rctf(&rectf, luv->uv[0], luv->uv[1])) {
+ if (BLI_rctf_isect_pt_v(&rectf, luv->uv)) {
if (select) uvedit_uv_select_enable(em, scene, l, FALSE);
else uvedit_uv_select_disable(em, scene, l);
}
}
else if (pinned) {
- if ((luv->flag & MLOOPUV_PINNED) &&
- BLI_in_rctf(&rectf, luv->uv[0], luv->uv[1]))
- {
+ if ((luv->flag & MLOOPUV_PINNED) && BLI_rctf_isect_pt_v(&rectf, luv->uv)) {
if (select) uvedit_uv_select_enable(em, scene, l, FALSE);
else uvedit_uv_select_disable(em, scene, l);
}
@@ -2585,8 +2692,8 @@ static int circle_select_exec(bContext *C, wmOperator *op)
/* compute ellipse size and location, not a circle since we deal
* with non square image. ellipse is normalized, r = 1.0. */
- ED_space_image_size(sima, &width, &height);
- ED_space_image_zoom(sima, ar, &zoomx, &zoomy);
+ ED_space_image_get_size(sima, &width, &height);
+ ED_space_image_get_zoom(sima, ar, &zoomx, &zoomy);
ellipse[0] = width * zoomx / radius;
ellipse[1] = height * zoomy / radius;
@@ -2637,7 +2744,7 @@ static void UV_OT_circle_select(wmOperatorType *ot)
/* ******************** lasso select operator **************** */
-static int do_lasso_select_mesh_uv(bContext *C, int mcords[][2], short moves, short select)
+static int do_lasso_select_mesh_uv(bContext *C, const int mcords[][2], short moves, short select)
{
Image *ima = CTX_data_edit_image(C);
ARegion *ar = CTX_wm_region(C);
@@ -2664,7 +2771,7 @@ static int do_lasso_select_mesh_uv(bContext *C, int mcords[][2], short moves, sh
float cent[2];
uv_poly_center(em, efa, cent);
UI_view2d_view_to_region(&ar->v2d, cent[0], cent[1], &screen_uv[0], &screen_uv[1]);
- if (BLI_in_rcti(&rect, screen_uv[0], screen_uv[1]) &&
+ if (BLI_rcti_isect_pt_v(&rect, screen_uv) &&
BLI_lasso_is_point_inside(mcords, moves, screen_uv[0], screen_uv[1], V2D_IS_CLIPPED))
{
uvedit_face_select_enable(scene, em, efa, FALSE);
@@ -2681,7 +2788,7 @@ static int do_lasso_select_mesh_uv(bContext *C, int mcords[][2], short moves, sh
if ((select) != (uvedit_uv_select_test(em, scene, l))) {
MLoopUV *luv = CustomData_bmesh_get(&em->bm->ldata, l->head.data, CD_MLOOPUV);
UI_view2d_view_to_region(&ar->v2d, luv->uv[0], luv->uv[1], &screen_uv[0], &screen_uv[1]);
- if (BLI_in_rcti(&rect, screen_uv[0], screen_uv[1]) &&
+ if (BLI_rcti_isect_pt_v(&rect, screen_uv) &&
BLI_lasso_is_point_inside(mcords, moves, screen_uv[0], screen_uv[1], V2D_IS_CLIPPED))
{
if (select) {
@@ -2711,7 +2818,7 @@ static int do_lasso_select_mesh_uv(bContext *C, int mcords[][2], short moves, sh
static int uv_lasso_select_exec(bContext *C, wmOperator *op)
{
int mcords_tot;
- int (*mcords)[2] = WM_gesture_lasso_path_to_array(C, op, &mcords_tot);
+ const int (*mcords)[2] = WM_gesture_lasso_path_to_array(C, op, &mcords_tot);
if (mcords) {
short select;
@@ -2728,7 +2835,7 @@ static int uv_lasso_select_exec(bContext *C, wmOperator *op)
return OPERATOR_PASS_THROUGH;
}
-void UV_OT_select_lasso(wmOperatorType *ot)
+static void UV_OT_select_lasso(wmOperatorType *ot)
{
ot->name = "Lasso Select UV";
ot->description = "Select UVs using lasso selection";
@@ -2762,7 +2869,7 @@ static void snap_cursor_to_pixels(SpaceImage *sima)
{
int width = 0, height = 0;
- ED_space_image_size(sima, &width, &height);
+ ED_space_image_get_size(sima, &width, &height);
snap_uv_to_pixel(sima->cursor, width, height);
}
@@ -2917,7 +3024,7 @@ static int snap_uvs_to_pixels(SpaceImage *sima, Scene *scene, Object *obedit)
float w, h;
short change = 0;
- ED_space_image_size(sima, &width, &height);
+ ED_space_image_get_size(sima, &width, &height);
w = (float)width;
h = (float)height;
@@ -3361,14 +3468,11 @@ static void UV_OT_reveal(wmOperatorType *ot)
static int set_2d_cursor_exec(bContext *C, wmOperator *op)
{
SpaceImage *sima = CTX_wm_space_image(C);
- float location[2];
if (!sima)
return OPERATOR_CANCELLED;
- RNA_float_get_array(op->ptr, "location", location);
- sima->cursor[0] = location[0];
- sima->cursor[1] = location[1];
+ RNA_float_get_array(op->ptr, "location", sima->cursor);
WM_event_add_notifier(C, NC_SPACE | ND_SPACE_IMAGE, NULL);
@@ -3658,6 +3762,7 @@ void ED_operatortypes_uvedit(void)
WM_operatortype_append(UV_OT_select_loop);
WM_operatortype_append(UV_OT_select_linked);
WM_operatortype_append(UV_OT_select_linked_pick);
+ WM_operatortype_append(UV_OT_select_split);
WM_operatortype_append(UV_OT_unlink_selected);
WM_operatortype_append(UV_OT_select_pinned);
WM_operatortype_append(UV_OT_select_border);
@@ -3713,6 +3818,7 @@ void ED_keymap_uvedit(wmKeyConfig *keyconf)
RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", TRUE);
RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select_loop", SELECTMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "extend", FALSE);
RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select_loop", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0)->ptr, "extend", TRUE);
+ WM_keymap_add_item(keymap, "UV_OT_select_split", YKEY, KM_PRESS, 0, 0);
/* border/circle selection */
kmi = WM_keymap_add_item(keymap, "UV_OT_select_border", BKEY, KM_PRESS, 0, 0);
@@ -3772,19 +3878,6 @@ void ED_keymap_uvedit(wmKeyConfig *keyconf)
WM_keymap_add_menu(keymap, "IMAGE_MT_uvs_snap", SKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_menu(keymap, "IMAGE_MT_uvs_select_mode", TABKEY, KM_PRESS, KM_CTRL, 0);
- /* pivot */
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", COMMAKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.uv_editor.pivot_point");
- RNA_string_set(kmi->ptr, "value", "CENTER");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", COMMAKEY, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.uv_editor.pivot_point");
- RNA_string_set(kmi->ptr, "value", "MEDIAN");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", PERIODKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.uv_editor.pivot_point");
- RNA_string_set(kmi->ptr, "value", "CURSOR");
-
ED_keymap_proportional_cycle(keyconf, keymap);
ED_keymap_proportional_editmode(keyconf, keymap, FALSE);
diff --git a/source/blender/editors/uvedit/uvedit_parametrizer.c b/source/blender/editors/uvedit/uvedit_parametrizer.c
index 87ff36ebf27..f017394356e 100644
--- a/source/blender/editors/uvedit/uvedit_parametrizer.c
+++ b/source/blender/editors/uvedit/uvedit_parametrizer.c
@@ -45,7 +45,7 @@
#include <stdio.h>
#include <string.h>
-#include "BLO_sys_types.h" // for intptr_t support
+#include "BLO_sys_types.h" /* for intptr_t support */
/* Utils */
@@ -145,7 +145,6 @@ typedef struct PFace {
struct PEdge *edge;
unsigned char flag;
-
} PFace;
enum PVertFlag {
@@ -232,9 +231,9 @@ typedef struct PHandle {
RNG *rng;
float blend;
+ char do_aspect;
} PHandle;
-
/* PHash
* - special purpose hash that keeps all its elements in a single linked list.
* - after construction, this hash is thrown away, and the list remains.
@@ -1041,7 +1040,7 @@ static PFace *p_face_add(PHandle *handle)
/* allocate */
f = (PFace *)BLI_memarena_alloc(handle->arena, sizeof *f);
- f->flag = 0; // init !
+ f->flag = 0; /* init ! */
e1 = (PEdge *)BLI_memarena_alloc(handle->arena, sizeof *e1);
e2 = (PEdge *)BLI_memarena_alloc(handle->arena, sizeof *e2);
@@ -1136,7 +1135,11 @@ static PFace *p_face_add_fill(PChart *chart, PVert *v1, PVert *v2, PVert *v3)
static PBool p_quad_split_direction(PHandle *handle, float **co, PHashKey *vkeys)
{
- float fac = len_v3v3(co[0], co[2]) - len_v3v3(co[1], co[3]);
+ /* slight bias to prefer one edge over the other in case they are equal, so
+ * that in symmetric models we choose the same split direction instead of
+ * depending on floating point errors to decide */
+ float bias = 1.0f + 1e-6f;
+ float fac = len_v3v3(co[0], co[2]) * bias - len_v3v3(co[1], co[3]);
PBool dir = (fac <= 0.0f);
/* the face exists check is there because of a special case: when
@@ -3452,7 +3455,7 @@ static float p_chart_minimum_area_angle(PChart *chart)
float rotated, minarea, minangle, area, len;
float *angles, miny, maxy, v[2], a[4], mina;
- int npoints, right, mini, maxi, i, idx[4], nextidx;
+ int npoints, right, i_min, i_max, i, idx[4], nextidx;
PVert **points, *p1, *p2, *p3, *p4, *p1n;
/* compute convex hull */
@@ -3462,7 +3465,7 @@ static float p_chart_minimum_area_angle(PChart *chart)
/* find left/top/right/bottom points, and compute angle for each point */
angles = MEM_mallocN(sizeof(float) * npoints, "PMinAreaAngles");
- mini = maxi = 0;
+ i_min = i_max = 0;
miny = 1e10;
maxy = -1e10;
@@ -3475,19 +3478,19 @@ static float p_chart_minimum_area_angle(PChart *chart)
if (points[i]->uv[1] < miny) {
miny = points[i]->uv[1];
- mini = i;
+ i_min = i;
}
if (points[i]->uv[1] > maxy) {
maxy = points[i]->uv[1];
- maxi = i;
+ i_max = i;
}
}
/* left, top, right, bottom */
idx[0] = 0;
- idx[1] = maxi;
+ idx[1] = i_max;
idx[2] = right;
- idx[3] = mini;
+ idx[3] = i_min;
v[0] = points[idx[0]]->uv[0];
v[1] = points[idx[0]]->uv[1] + 1.0f;
@@ -3513,29 +3516,29 @@ static float p_chart_minimum_area_angle(PChart *chart)
while (rotated <= (float)(M_PI / 2.0)) { /* INVESTIGATE: how far to rotate? */
/* rotate with the smallest angle */
- mini = 0;
+ i_min = 0;
mina = 1e10;
for (i = 0; i < 4; i++)
if (a[i] < mina) {
mina = a[i];
- mini = i;
+ i_min = i;
}
rotated += mina;
- nextidx = (idx[mini] + 1) % npoints;
+ nextidx = (idx[i_min] + 1) % npoints;
- a[mini] = angles[nextidx];
- a[(mini + 1) % 4] = a[(mini + 1) % 4] - mina;
- a[(mini + 2) % 4] = a[(mini + 2) % 4] - mina;
- a[(mini + 3) % 4] = a[(mini + 3) % 4] - mina;
+ a[i_min] = angles[nextidx];
+ a[(i_min + 1) % 4] = a[(i_min + 1) % 4] - mina;
+ a[(i_min + 2) % 4] = a[(i_min + 2) % 4] - mina;
+ a[(i_min + 3) % 4] = a[(i_min + 3) % 4] - mina;
/* compute area */
- p1 = points[idx[mini]];
+ p1 = points[idx[i_min]];
p1n = points[nextidx];
- p2 = points[idx[(mini + 1) % 4]];
- p3 = points[idx[(mini + 2) % 4]];
- p4 = points[idx[(mini + 3) % 4]];
+ p2 = points[idx[(i_min + 1) % 4]];
+ p3 = points[idx[(i_min + 2) % 4]];
+ p4 = points[idx[(i_min + 3) % 4]];
len = len_v2v2(p1->uv, p1n->uv);
@@ -3553,7 +3556,7 @@ static float p_chart_minimum_area_angle(PChart *chart)
}
}
- idx[mini] = nextidx;
+ idx[i_min] = nextidx;
}
/* try keeping rotation as small as possible */
@@ -4087,6 +4090,7 @@ ParamHandle *param_construct_begin(void)
handle->arena = BLI_memarena_new((1 << 16), "param construct arena");
handle->aspx = 1.0f;
handle->aspy = 1.0f;
+ handle->do_aspect = FALSE;
handle->hash_verts = phash_new((PHashLink **)&handle->construction_chart->verts, 1);
handle->hash_edges = phash_new((PHashLink **)&handle->construction_chart->edges, 1);
@@ -4101,6 +4105,7 @@ void param_aspect_ratio(ParamHandle *handle, float aspx, float aspy)
phandle->aspx = aspx;
phandle->aspy = aspy;
+ phandle->do_aspect = TRUE;
}
void param_delete(ParamHandle *handle)
diff --git a/source/blender/editors/uvedit/uvedit_parametrizer.h b/source/blender/editors/uvedit/uvedit_parametrizer.h
index 3c886367191..4c23d49428b 100644
--- a/source/blender/editors/uvedit/uvedit_parametrizer.h
+++ b/source/blender/editors/uvedit/uvedit_parametrizer.h
@@ -56,16 +56,16 @@ ParamHandle *param_construct_begin(void);
void param_aspect_ratio(ParamHandle *handle, float aspx, float aspy);
void param_face_add(ParamHandle *handle,
- ParamKey key,
- int nverts,
- ParamKey *vkeys,
- float **co,
- float **uv,
- ParamBool *pin,
- ParamBool *select);
+ ParamKey key,
+ int nverts,
+ ParamKey *vkeys,
+ float **co,
+ float **uv,
+ ParamBool *pin,
+ ParamBool *select);
void param_edge_set_seam(ParamHandle *handle,
- ParamKey *vkeys);
+ ParamKey *vkeys);
void param_construct_end(ParamHandle *handle, ParamBool fill, ParamBool impl);
void param_delete(ParamHandle *chart);
diff --git a/source/blender/editors/uvedit/uvedit_smart_stitch.c b/source/blender/editors/uvedit/uvedit_smart_stitch.c
index 43f3e81ae92..4e0e7944e84 100644
--- a/source/blender/editors/uvedit/uvedit_smart_stitch.c
+++ b/source/blender/editors/uvedit/uvedit_smart_stitch.c
@@ -118,6 +118,8 @@ typedef struct StitchState {
char midpoints;
/* editmesh, cached for use in modal handler */
BMEditMesh *em;
+ /* clear seams of stitched edges after stitch */
+ char clear_seams;
/* element map for getting info about uv connectivity */
UvElementMap *element_map;
/* edge container */
@@ -403,7 +405,9 @@ static void stitch_island_calculate_edge_rotation(UvEdge *edge, StitchState *sta
edgecos = uv1[0] * uv2[0] + uv1[1] * uv2[1];
edgesin = uv1[0] * uv2[1] - uv2[0] * uv1[1];
- rotation = (edgesin > 0.0f) ? acosf(MAX2(-1.0f, MIN2(1.0f, edgecos))) : -acosf(MAX2(-1.0f, MIN2(1.0f, edgecos)));
+ rotation = (edgesin > 0.0f) ?
+ +acosf(maxf(-1.0f, minf(1.0f, edgecos))) :
+ -acosf(maxf(-1.0f, minf(1.0f, edgecos)));
island_stitch_data[element1->island].num_rot_elements++;
island_stitch_data[element1->island].rotation += rotation;
@@ -831,6 +835,15 @@ static int stitch_process_data(StitchState *state, Scene *scene, int final)
}
}
+ /* clear seams of stitched edges */
+ if (final && state->clear_seams) {
+ for (i = 0; i < state->total_boundary_edges; i++) {
+ UvEdge *edge = state->edges + i;
+ if ((state->uvs[edge->uv1]->flag & STITCH_STITCHABLE) && (state->uvs[edge->uv2]->flag & STITCH_STITCHABLE))
+ BM_elem_flag_disable(edge->element->l->e, BM_ELEM_SEAM);
+ }
+ }
+
for (i = 0; i < state->selection_size; i++) {
UvElement *element = state->selection_stack[i];
if (!island_stitch_data[element->island].use_edge_rotation) {
@@ -1002,6 +1015,7 @@ static int stitch_init(bContext *C, wmOperator *op)
state->snap_islands = RNA_boolean_get(op->ptr, "snap_islands");
state->static_island = RNA_int_get(op->ptr, "static_island");
state->midpoints = RNA_boolean_get(op->ptr, "midpoint_snap");
+ state->clear_seams = RNA_boolean_get(op->ptr, "clear_seams");
/* in uv synch selection, all uv's are visible */
if (ts->uv_flag & UV_SYNC_SELECTION) {
state->element_map = EDBM_uv_element_map_create(state->em, 0, 1);
@@ -1486,6 +1500,8 @@ void UV_OT_stitch(wmOperatorType *ot)
"Island that stays in place when stitching islands", 0, INT_MAX);
RNA_def_boolean(ot->srna, "midpoint_snap", 0, "Snap At Midpoint",
"UVs are stitched at midpoint instead of at static island");
+ RNA_def_boolean(ot->srna, "clear_seams", 1, "Clear Seams",
+ "Clear seams of stitched edges");
prop = RNA_def_collection_runtime(ot->srna, "selection", &RNA_SelectedUvElement, "Selection", "");
/* Selection should not be editable or viewed in toolbar */
RNA_def_property_flag(prop, PROP_HIDDEN);
diff --git a/source/blender/editors/uvedit/uvedit_unwrap_ops.c b/source/blender/editors/uvedit/uvedit_unwrap_ops.c
index 0930edbe46d..7c06fbd2a9d 100644
--- a/source/blender/editors/uvedit/uvedit_unwrap_ops.c
+++ b/source/blender/editors/uvedit/uvedit_unwrap_ops.c
@@ -192,16 +192,21 @@ static ParamHandle *construct_param_handle(Scene *scene, BMEditMesh *em,
handle = param_construct_begin();
if (correct_aspect) {
- efa = BM_active_face_get(em->bm, TRUE);
+ int sloppy = TRUE;
+ int selected = FALSE;
+
+ efa = BM_active_face_get(em->bm, sloppy, selected);
if (efa) {
float aspx, aspy;
tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
- ED_image_uv_aspect(tf->tpage, &aspx, &aspy);
+ ED_image_get_uv_aspect(tf->tpage, NULL, &aspx, &aspy);
if (aspx != aspy)
param_aspect_ratio(handle, aspx, aspy);
+ else
+ param_aspect_ratio(handle, 1.0, 1.0);
}
}
@@ -237,6 +242,7 @@ static ParamHandle *construct_param_handle(Scene *scene, BMEditMesh *em,
key = (ParamKey)efa;
+ // tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); // UNUSED
if (efa->len == 3 || efa->len == 4) {
/* for quads let parametrize split, it can make better decisions
@@ -377,17 +383,22 @@ static ParamHandle *construct_param_handle_subsurfed(Scene *scene, BMEditMesh *e
handle = param_construct_begin();
if (correct_aspect) {
- editFace = BM_active_face_get(em->bm, TRUE);
+ int sloppy = TRUE;
+ int selected = FALSE;
+
+ editFace = BM_active_face_get(em->bm, sloppy, selected);
if (editFace) {
MTexPoly *tf;
float aspx, aspy;
tf = CustomData_bmesh_get(&em->bm->pdata, editFace->head.data, CD_MTEXPOLY);
- ED_image_uv_aspect(tf->tpage, &aspx, &aspy);
+ ED_image_get_uv_aspect(tf->tpage, NULL, &aspx, &aspy);
if (aspx != aspy)
param_aspect_ratio(handle, aspx, aspy);
+ else
+ param_aspect_ratio(handle, 1.0, 1.0);
}
}
@@ -440,7 +451,7 @@ static ParamHandle *construct_param_handle_subsurfed(Scene *scene, BMEditMesh *e
float *co[4];
float *uv[4];
BMFace *origFace = faceMap[i];
-
+
face = subsurfedFaces + i;
if (scene->toolsettings->uv_flag & UV_SYNC_SELECTION) {
@@ -877,14 +888,14 @@ static void uv_map_transform_center(Scene *scene, View3D *v3d, float *result,
mid_v3_v3v3(result, min, max);
break;
- case V3D_CURSOR: /*cursor center*/
+ case V3D_CURSOR: /* cursor center */
cursx = give_cursor(scene, v3d);
/* shift to objects world */
sub_v3_v3v3(result, cursx, ob->obmat[3]);
break;
- case V3D_LOCAL: /*object center*/
- case V3D_CENTROID: /* multiple objects centers, only one object here*/
+ case V3D_LOCAL: /* object center */
+ case V3D_CENTROID: /* multiple objects centers, only one object here*/
default:
result[0] = result[1] = result[2] = 0.0;
break;
@@ -998,7 +1009,9 @@ static void uv_transform_properties(wmOperatorType *ot, int radius)
static void correct_uv_aspect(BMEditMesh *em)
{
- BMFace *efa = BM_active_face_get(em->bm, TRUE);
+ int sloppy = TRUE;
+ int selected = FALSE;
+ BMFace *efa = BM_active_face_get(em->bm, sloppy, selected);
BMLoop *l;
BMIter iter, liter;
MLoopUV *luv;
@@ -1008,7 +1021,7 @@ static void correct_uv_aspect(BMEditMesh *em)
MTexPoly *tf;
tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
- ED_image_uv_aspect(tf->tpage, &aspx, &aspy);
+ ED_image_get_uv_aspect(tf->tpage, NULL, &aspx, &aspy);
}
if (aspx == aspy)
diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt
index d80e756f0b6..9ce42d9e0bb 100644
--- a/source/blender/gpu/CMakeLists.txt
+++ b/source/blender/gpu/CMakeLists.txt
@@ -50,13 +50,6 @@ set(SRC
intern/gpu_draw.c
intern/gpu_extensions.c
intern/gpu_material.c
-
- shaders/gpu_shader_material.glsl.c
- shaders/gpu_shader_vertex.glsl.c
- shaders/gpu_shader_sep_gaussian_blur_frag.glsl.c
- shaders/gpu_shader_sep_gaussian_blur_vert.glsl.c
- shaders/gpu_shader_vsm_store_frag.glsl.c
- shaders/gpu_shader_vsm_store_vert.glsl.c
GPU_buffers.h
GPU_draw.h
@@ -65,6 +58,13 @@ set(SRC
intern/gpu_codegen.h
)
+data_to_c_simple(shaders/gpu_shader_material.glsl SRC)
+data_to_c_simple(shaders/gpu_shader_vertex.glsl SRC)
+data_to_c_simple(shaders/gpu_shader_sep_gaussian_blur_frag.glsl SRC)
+data_to_c_simple(shaders/gpu_shader_sep_gaussian_blur_vert.glsl SRC)
+data_to_c_simple(shaders/gpu_shader_vsm_store_frag.glsl SRC)
+data_to_c_simple(shaders/gpu_shader_vsm_store_vert.glsl SRC)
+
if(WITH_MOD_SMOKE)
add_definitions(-DWITH_SMOKE)
endif()
diff --git a/source/blender/gpu/GPU_buffers.h b/source/blender/gpu/GPU_buffers.h
index 629283ce50d..1729ac06f5a 100644
--- a/source/blender/gpu/GPU_buffers.h
+++ b/source/blender/gpu/GPU_buffers.h
@@ -159,18 +159,18 @@ int GPU_buffer_legacy(struct DerivedMesh *dm );
typedef struct GPU_Buffers GPU_Buffers;
GPU_Buffers *GPU_build_mesh_buffers(int (*face_vert_indices)[4],
- struct MFace *mface, struct MVert *mvert,
- int *face_indices, int totface);
+ struct MFace *mface, struct MVert *mvert,
+ int *face_indices, int totface);
void GPU_update_mesh_buffers(GPU_Buffers *buffers, struct MVert *mvert,
- int *vert_indices, int totvert, const float *vmask);
+ int *vert_indices, int totvert, const float *vmask);
GPU_Buffers *GPU_build_grid_buffers(int *grid_indices, int totgrid,
- unsigned int **grid_hidden, int gridsize);
+ unsigned int **grid_hidden, int gridsize);
void GPU_update_grid_buffers(GPU_Buffers *buffers, struct CCGElem **grids,
- const struct DMFlagMat *grid_flag_mats,
- int *grid_indices, int totgrid, const struct CCGKey *key);
+ const struct DMFlagMat *grid_flag_mats,
+ int *grid_indices, int totgrid, const struct CCGKey *key);
void GPU_draw_buffers(GPU_Buffers *buffers, DMSetMaterial setMaterial);
diff --git a/source/blender/gpu/GPU_draw.h b/source/blender/gpu/GPU_draw.h
index 59140b2be80..285acb6bdde 100644
--- a/source/blender/gpu/GPU_draw.h
+++ b/source/blender/gpu/GPU_draw.h
@@ -104,6 +104,7 @@ void GPU_render_text(struct MTFace *tface, int mode,
* - these will free textures on changes */
void GPU_set_mipmap(int mipmap);
+int GPU_get_mipmap(void);
void GPU_set_linear_mipmap(int linear);
void GPU_paint_set_mipmap(int mipmap);
@@ -118,10 +119,10 @@ void GPU_set_gpu_mipmapping(int gpu_mipmap);
/* Image updates and free
* - these deal with images bound as opengl textures */
-void GPU_paint_update_image(struct Image *ima, int x, int y, int w, int h, int mipmap);
+void GPU_paint_update_image(struct Image *ima, int x, int y, int w, int h);
void GPU_update_images_framechange(void);
int GPU_update_image_time(struct Image *ima, double time);
-int GPU_verify_image(struct Image *ima, struct ImageUser *iuser, int tftile, int compare, int mipmap);
+int GPU_verify_image(struct Image *ima, struct ImageUser *iuser, int tftile, int compare, int mipmap, int ncd);
void GPU_create_gl_tex(unsigned int *bind, unsigned int *pix, float *frect, int rectw, int recth, int mipmap, int use_hight_bit_depth, struct Image *ima);
void GPU_create_gl_tex_compressed(unsigned int *bind, unsigned int *pix, int x, int y, int mipmap, struct Image *ima, struct ImBuf *ibuf);
int GPU_upload_dxt_texture(struct ImBuf *ibuf);
diff --git a/source/blender/gpu/GPU_extensions.h b/source/blender/gpu/GPU_extensions.h
index b04da04258e..198d002ff0d 100644
--- a/source/blender/gpu/GPU_extensions.h
+++ b/source/blender/gpu/GPU_extensions.h
@@ -111,7 +111,7 @@ GPUTexture *GPU_texture_create_3D(int w, int h, int depth, float *fpixels);
GPUTexture *GPU_texture_create_depth(int w, int h, char err_out[256]);
GPUTexture *GPU_texture_create_vsm_shadow_map(int size, char err_out[256]);
GPUTexture *GPU_texture_from_blender(struct Image *ima,
- struct ImageUser *iuser, double time, int mipmap);
+ struct ImageUser *iuser, int ncd, double time, int mipmap);
void GPU_texture_free(GPUTexture *tex);
void GPU_texture_ref(GPUTexture *tex);
diff --git a/source/blender/gpu/GPU_material.h b/source/blender/gpu/GPU_material.h
index 7f5ae0ba2a1..baa557c3484 100644
--- a/source/blender/gpu/GPU_material.h
+++ b/source/blender/gpu/GPU_material.h
@@ -107,7 +107,7 @@ typedef struct GPUNodeStack {
GPUNodeLink *GPU_attribute(int type, const char *name);
GPUNodeLink *GPU_uniform(float *num);
GPUNodeLink *GPU_dynamic_uniform(float *num, int dynamictype, void *data);
-GPUNodeLink *GPU_image(struct Image *ima, struct ImageUser *iuser);
+GPUNodeLink *GPU_image(struct Image *ima, struct ImageUser *iuser, int ncd);
GPUNodeLink *GPU_texture(int size, float *pixels);
GPUNodeLink *GPU_dynamic_texture(struct GPUTexture *tex, int dynamictype, void *data);
GPUNodeLink *GPU_socket(GPUNodeStack *sock);
@@ -135,6 +135,8 @@ int GPU_material_bound(GPUMaterial *material);
void GPU_material_vertex_attributes(GPUMaterial *material,
struct GPUVertexAttribs *attrib);
+int GPU_material_do_color_management(GPUMaterial *mat);
+
/* Exported shading */
typedef struct GPUShadeInput {
@@ -173,6 +175,11 @@ typedef enum GPUDynamicType {
GPU_DYNAMIC_SAMPLER_2DBUFFER = 12,
GPU_DYNAMIC_SAMPLER_2DIMAGE = 13,
GPU_DYNAMIC_SAMPLER_2DSHADOW = 14,
+ GPU_DYNAMIC_LAMP_DISTANCE = 15,
+ GPU_DYNAMIC_LAMP_ATT1 = 16,
+ GPU_DYNAMIC_LAMP_ATT2 = 17,
+ GPU_DYNAMIC_LAMP_SPOTSIZE = 18,
+ GPU_DYNAMIC_LAMP_SPOTBLEND = 19,
} GPUDynamicType;
typedef enum GPUDataType {
@@ -231,6 +238,8 @@ void GPU_lamp_shadow_buffer_unbind(GPULamp *lamp);
void GPU_lamp_update(GPULamp *lamp, int lay, int hide, float obmat[][4]);
void GPU_lamp_update_colors(GPULamp *lamp, float r, float g, float b, float energy);
+void GPU_lamp_update_distance(GPULamp *lamp, float distance, float att1, float att2);
+void GPU_lamp_update_spot(GPULamp *lamp, float spotsize, float spotblend);
int GPU_lamp_shadow_layer(GPULamp *lamp);
#ifdef __cplusplus
diff --git a/source/blender/gpu/SConscript b/source/blender/gpu/SConscript
index 7ab0c6cce46..f7ed9effc7a 100644
--- a/source/blender/gpu/SConscript
+++ b/source/blender/gpu/SConscript
@@ -20,4 +20,16 @@ if env['WITH_BF_SMOKE']:
if env['WITH_BF_DDS']:
defs.append('WITH_DDS')
+# generated data files
+import os
+sources.extend((
+ os.path.join(env['DATA_SOURCES'], "gpu_shader_material.glsl.c"),
+ os.path.join(env['DATA_SOURCES'], "gpu_shader_vertex.glsl.c"),
+ os.path.join(env['DATA_SOURCES'], "gpu_shader_sep_gaussian_blur_frag.glsl.c"),
+ os.path.join(env['DATA_SOURCES'], "gpu_shader_sep_gaussian_blur_vert.glsl.c"),
+ os.path.join(env['DATA_SOURCES'], "gpu_shader_material.glsl.c"),
+ os.path.join(env['DATA_SOURCES'], "gpu_shader_vsm_store_frag.glsl.c"),
+ os.path.join(env['DATA_SOURCES'], "gpu_shader_vsm_store_vert.glsl.c"),
+ ))
+
env.BlenderLib ( 'bf_gpu', sources, Split(incs), defines = defs, libtype=['core','player'], priority=[160,110] )
diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c
index 75ed7d7eb19..201162262b2 100644
--- a/source/blender/gpu/intern/gpu_buffers.c
+++ b/source/blender/gpu/intern/gpu_buffers.c
@@ -1269,6 +1269,14 @@ void GPU_buffer_draw_elements(GPUBuffer *elements, unsigned int mode, int start,
/* XXX: the rest of the code in this file is used for optimized PBVH
* drawing and doesn't interact at all with the buffer code above */
+/* Return false if VBO is either unavailable or disabled by the user,
+ true otherwise */
+static int gpu_vbo_enabled(void)
+{
+ return (GLEW_ARB_vertex_buffer_object &&
+ !(U.gameflags & USER_DISABLE_VBO));
+}
+
/* Convenience struct for building the VBO. */
typedef struct {
float co[3];
@@ -1304,6 +1312,10 @@ struct GPU_Buffers {
int has_hidden;
unsigned int tot_tri, tot_quad;
+
+ /* The PBVH ensures that either all faces in the node are
+ smooth-shaded or all faces are flat-shaded */
+ int smooth;
};
typedef enum {
VBO_ENABLED,
@@ -1385,27 +1397,89 @@ void GPU_update_mesh_buffers(GPU_Buffers *buffers, MVert *mvert,
int *vert_indices, int totvert, const float *vmask)
{
VertexBufferFormat *vert_data;
- int i;
+ int i, j, k;
buffers->vmask = vmask;
if (buffers->vert_buf) {
+ int totelem = (buffers->smooth ? totvert : (buffers->tot_tri * 3));
+
/* Build VBO */
glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf);
glBufferDataARB(GL_ARRAY_BUFFER_ARB,
- sizeof(VertexBufferFormat) * totvert,
- NULL, GL_STATIC_DRAW_ARB);
+ sizeof(VertexBufferFormat) * totelem,
+ NULL, GL_STATIC_DRAW_ARB);
+
vert_data = glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB);
if (vert_data) {
- for (i = 0; i < totvert; ++i) {
- MVert *v = mvert + vert_indices[i];
- VertexBufferFormat *out = vert_data + i;
-
- copy_v3_v3(out->co, v->co);
- memcpy(out->no, v->no, sizeof(short) * 3);
- gpu_color_from_mask_copy(vmask[vert_indices[i]],
- out->color);
+ /* Vertex data is shared if smooth-shaded, but seperate
+ copies are made for flat shading because normals
+ shouldn't be shared. */
+ if (buffers->smooth) {
+ for (i = 0; i < totvert; ++i) {
+ MVert *v = mvert + vert_indices[i];
+ VertexBufferFormat *out = vert_data + i;
+
+ copy_v3_v3(out->co, v->co);
+ memcpy(out->no, v->no, sizeof(short) * 3);
+ if (vmask) {
+ gpu_color_from_mask_copy(vmask[vert_indices[i]],
+ out->color);
+ }
+ }
+ }
+ else {
+ for (i = 0; i < buffers->totface; ++i) {
+ const MFace *f = &buffers->mface[buffers->face_indices[i]];
+ const unsigned int *fv = &f->v1;
+ const int vi[2][3] = {{0, 1, 2}, {3, 0, 2}};
+ float fno[3];
+ short no[3];
+
+ float fmask;
+
+ /* Face normal and mask */
+ if (f->v4) {
+ normal_quad_v3(fno,
+ mvert[fv[0]].co,
+ mvert[fv[1]].co,
+ mvert[fv[2]].co,
+ mvert[fv[3]].co);
+ if (vmask) {
+ fmask = (vmask[fv[0]] +
+ vmask[fv[1]] +
+ vmask[fv[2]] +
+ vmask[fv[3]]) * 0.25;
+ }
+ }
+ else {
+ normal_tri_v3(fno,
+ mvert[fv[0]].co,
+ mvert[fv[1]].co,
+ mvert[fv[2]].co);
+ if (vmask) {
+ fmask = (vmask[fv[0]] +
+ vmask[fv[1]] +
+ vmask[fv[2]]) / 3.0f;
+ }
+ }
+ normal_float_to_short_v3(no, fno);
+
+ for (j = 0; j < (f->v4 ? 2 : 1); j++) {
+ for (k = 0; k < 3; k++) {
+ const MVert *v = &mvert[fv[vi[j][k]]];
+ VertexBufferFormat *out = vert_data;
+
+ copy_v3_v3(out->co, v->co);
+ memcpy(out->no, no, sizeof(short) * 3);
+ if (vmask)
+ gpu_color_from_mask_copy(fmask, out->color);
+
+ vert_data++;
+ }
+ }
+ }
}
glUnmapBufferARB(GL_ARRAY_BUFFER_ARB);
@@ -1432,6 +1506,7 @@ GPU_Buffers *GPU_build_mesh_buffers(int (*face_vert_indices)[4],
buffers = MEM_callocN(sizeof(GPU_Buffers), "GPU_Buffers");
buffers->index_type = GL_UNSIGNED_SHORT;
+ buffers->smooth = mface[face_indices[0]].flag & ME_SMOOTH;
/* Count the number of visible triangles */
for (i = 0, tottri = 0; i < totface; ++i) {
@@ -1439,8 +1514,11 @@ GPU_Buffers *GPU_build_mesh_buffers(int (*face_vert_indices)[4],
if (!paint_is_face_hidden(f, mvert))
tottri += f->v4 ? 2 : 1;
}
-
- if (GLEW_ARB_vertex_buffer_object && !(U.gameflags & USER_DISABLE_VBO))
+
+ /* An element index buffer is used for smooth shading, but flat
+ shading requires separate vertex normals so an index buffer is
+ can't be used there. */
+ if (gpu_vbo_enabled() && buffers->smooth)
glGenBuffersARB(1, &buffers->index_buf);
if (buffers->index_buf) {
@@ -1484,7 +1562,7 @@ GPU_Buffers *GPU_build_mesh_buffers(int (*face_vert_indices)[4],
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
}
- if (buffers->index_buf)
+ if (buffers->index_buf || !buffers->smooth)
glGenBuffersARB(1, &buffers->vert_buf);
buffers->tot_tri = tottri;
@@ -1507,6 +1585,7 @@ void GPU_update_grid_buffers(GPU_Buffers *buffers, CCGElem **grids,
if (buffers->vert_buf) {
int totvert = key->grid_area * totgrid;
int smooth = grid_flag_mats[grid_indices[0]].flag & ME_SMOOTH;
+ const int has_mask = key->has_mask;
glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf);
glBufferDataARB(GL_ARRAY_BUFFER_ARB,
@@ -1527,8 +1606,10 @@ void GPU_update_grid_buffers(GPU_Buffers *buffers, CCGElem **grids,
normal_float_to_short_v3(vd->no,
CCG_elem_no(key, elem));
- gpu_color_from_mask_copy(*CCG_elem_mask(key, elem),
- vd->color);
+ if (has_mask) {
+ gpu_color_from_mask_copy(*CCG_elem_mask(key, elem),
+ vd->color);
+ }
}
vd++;
}
@@ -1556,12 +1637,15 @@ void GPU_update_grid_buffers(GPU_Buffers *buffers, CCGElem **grids,
vd = vert_data + (j + 1) * key->grid_size + (k + 1);
normal_float_to_short_v3(vd->no, fno);
- gpu_color_from_mask_quad_copy(key,
- elems[0],
- elems[1],
- elems[2],
- elems[3],
- vd->color);
+
+ if (has_mask) {
+ gpu_color_from_mask_quad_copy(key,
+ elems[0],
+ elems[1],
+ elems[2],
+ elems[3],
+ vd->color);
+ }
}
}
}
@@ -1583,6 +1667,8 @@ void GPU_update_grid_buffers(GPU_Buffers *buffers, CCGElem **grids,
buffers->grid_flag_mats = grid_flag_mats;
buffers->gridkey = *key;
+ buffers->smooth = grid_flag_mats[grid_indices[0]].flag & ME_SMOOTH;
+
//printf("node updated %p\n", buffers);
}
@@ -1595,7 +1681,7 @@ static int gpu_count_grid_quads(BLI_bitmap *grid_hidden,
int i, x, y, totquad;
/* grid hidden layer is present, so have to check each grid for
- * visiblity */
+ * visibility */
for (i = 0, totquad = 0; i < totgrid; i++) {
const BLI_bitmap gh = grid_hidden[grid_indices[i]];
@@ -1677,7 +1763,7 @@ static GLuint gpu_get_grid_buffer(int gridsize, GLenum *index_type, unsigned *to
/* VBO is disabled; delete the previous buffer (if it exists) and
* return an invalid handle */
- if (!GLEW_ARB_vertex_buffer_object || (U.gameflags & USER_DISABLE_VBO)) {
+ if (gpu_vbo_enabled()) {
if (buffer)
glDeleteBuffersARB(1, &buffer);
return 0;
@@ -1765,12 +1851,15 @@ GPU_Buffers *GPU_build_grid_buffers(int *grid_indices, int totgrid,
#undef FILL_QUAD_BUFFER
-static void gpu_draw_buffers_legacy_mesh(GPU_Buffers *buffers, int smooth)
+static void gpu_draw_buffers_legacy_mesh(GPU_Buffers *buffers)
{
const MVert *mvert = buffers->mvert;
int i, j;
+ const int has_mask = (buffers->vmask != NULL);
- gpu_colors_enable(VBO_DISABLED);
+ if (has_mask) {
+ gpu_colors_enable(VBO_DISABLED);
+ }
for (i = 0; i < buffers->totface; ++i) {
MFace *f = buffers->mface + buffers->face_indices[i];
@@ -1782,15 +1871,17 @@ static void gpu_draw_buffers_legacy_mesh(GPU_Buffers *buffers, int smooth)
glBegin((f->v4) ? GL_QUADS : GL_TRIANGLES);
- if (smooth) {
+ if (buffers->smooth) {
for (j = 0; j < S; j++) {
- gpu_color_from_mask_set(buffers->vmask[fv[j]]);
+ if (has_mask) {
+ gpu_color_from_mask_set(buffers->vmask[fv[j]]);
+ }
glNormal3sv(mvert[fv[j]].no);
glVertex3fv(mvert[fv[j]].co);
}
}
else {
- float fmask, fno[3];
+ float fno[3];
/* calculate face normal */
if (f->v4) {
@@ -1801,15 +1892,19 @@ static void gpu_draw_buffers_legacy_mesh(GPU_Buffers *buffers, int smooth)
normal_tri_v3(fno, mvert[fv[0]].co, mvert[fv[1]].co, mvert[fv[2]].co);
glNormal3fv(fno);
- /* calculate face mask color */
- fmask = (buffers->vmask[fv[0]] +
- buffers->vmask[fv[1]] +
- buffers->vmask[fv[2]]);
- if (f->v4)
- fmask = (fmask + buffers->vmask[fv[3]]) * 0.25;
- else
- fmask /= 3.0f;
- gpu_color_from_mask_set(fmask);
+ if (has_mask) {
+ float fmask;
+
+ /* calculate face mask color */
+ fmask = (buffers->vmask[fv[0]] +
+ buffers->vmask[fv[1]] +
+ buffers->vmask[fv[2]]);
+ if (f->v4)
+ fmask = (fmask + buffers->vmask[fv[3]]) * 0.25;
+ else
+ fmask /= 3.0f;
+ gpu_color_from_mask_set(fmask);
+ }
for (j = 0; j < S; j++)
glVertex3fv(mvert[fv[j]].co);
@@ -1818,15 +1913,20 @@ static void gpu_draw_buffers_legacy_mesh(GPU_Buffers *buffers, int smooth)
glEnd();
}
- gpu_colors_disable(VBO_DISABLED);
+ if (has_mask) {
+ gpu_colors_disable(VBO_DISABLED);
+ }
}
-static void gpu_draw_buffers_legacy_grids(GPU_Buffers *buffers, int smooth)
+static void gpu_draw_buffers_legacy_grids(GPU_Buffers *buffers)
{
const CCGKey *key = &buffers->gridkey;
int i, j, x, y, gridsize = buffers->gridkey.grid_size;
+ const int has_mask = key->has_mask;
- gpu_colors_enable(VBO_DISABLED);
+ if (has_mask) {
+ gpu_colors_enable(VBO_DISABLED);
+ }
for (i = 0; i < buffers->totgrid; ++i) {
int g = buffers->grid_indices[i];
@@ -1851,9 +1951,11 @@ static void gpu_draw_buffers_legacy_grids(GPU_Buffers *buffers, int smooth)
if (paint_is_grid_face_hidden(gh, gridsize, x, y))
continue;
- if (smooth) {
+ if (buffers->smooth) {
for (j = 0; j < 4; j++) {
- gpu_color_from_mask_set(*CCG_elem_mask(key, e[j]));
+ if (has_mask) {
+ gpu_color_from_mask_set(*CCG_elem_mask(key, e[j]));
+ }
glNormal3fv(CCG_elem_no(key, e[j]));
glVertex3fv(CCG_elem_co(key, e[j]));
}
@@ -1866,7 +1968,10 @@ static void gpu_draw_buffers_legacy_grids(GPU_Buffers *buffers, int smooth)
CCG_elem_co(key, e[2]),
CCG_elem_co(key, e[3]));
glNormal3fv(fno);
- gpu_color_from_mask_quad_set(key, e[0], e[1], e[2], e[3]);
+
+ if (has_mask) {
+ gpu_color_from_mask_quad_set(key, e[0], e[1], e[2], e[3]);
+ }
for (j = 0; j < 4; j++)
glVertex3fv(CCG_elem_co(key, e[j]));
@@ -1876,17 +1981,21 @@ static void gpu_draw_buffers_legacy_grids(GPU_Buffers *buffers, int smooth)
glEnd();
}
- else if (smooth) {
+ else if (buffers->smooth) {
for (y = 0; y < gridsize - 1; y++) {
glBegin(GL_QUAD_STRIP);
for (x = 0; x < gridsize; x++) {
CCGElem *a = CCG_grid_elem(key, grid, x, y);
CCGElem *b = CCG_grid_elem(key, grid, x, y + 1);
- gpu_color_from_mask_set(*CCG_elem_mask(key, a));
+ if (has_mask) {
+ gpu_color_from_mask_set(*CCG_elem_mask(key, a));
+ }
glNormal3fv(CCG_elem_no(key, a));
glVertex3fv(CCG_elem_co(key, a));
- gpu_color_from_mask_set(*CCG_elem_mask(key, b));
+ if (has_mask) {
+ gpu_color_from_mask_set(*CCG_elem_mask(key, b));
+ }
glNormal3fv(CCG_elem_no(key, b));
glVertex3fv(CCG_elem_co(key, b));
}
@@ -1912,7 +2021,9 @@ static void gpu_draw_buffers_legacy_grids(GPU_Buffers *buffers, int smooth)
CCG_elem_co(key, c));
glNormal3fv(fno);
- gpu_color_from_mask_quad_set(key, a, b, c, d);
+ if (has_mask) {
+ gpu_color_from_mask_quad_set(key, a, b, c, d);
+ }
}
glVertex3fv(CCG_elem_co(key, a));
@@ -1923,37 +2034,43 @@ static void gpu_draw_buffers_legacy_grids(GPU_Buffers *buffers, int smooth)
}
}
- gpu_colors_disable(VBO_DISABLED);
+ if (has_mask) {
+ gpu_colors_disable(VBO_DISABLED);
+ }
}
void GPU_draw_buffers(GPU_Buffers *buffers, DMSetMaterial setMaterial)
{
- int smooth = 0;
+ const int has_mask = (buffers->vmask || buffers->gridkey.has_mask);
if (buffers->totface) {
const MFace *f = &buffers->mface[buffers->face_indices[0]];
if (!setMaterial(f->mat_nr + 1, NULL))
return;
-
- smooth = f->flag & ME_SMOOTH;
- glShadeModel(smooth ? GL_SMOOTH : GL_FLAT);
}
else if (buffers->totgrid) {
const DMFlagMat *f = &buffers->grid_flag_mats[buffers->grid_indices[0]];
if (!setMaterial(f->mat_nr + 1, NULL))
return;
-
- smooth = f->flag & ME_SMOOTH;
- glShadeModel(smooth ? GL_SMOOTH : GL_FLAT);
}
- if (buffers->vert_buf && buffers->index_buf) {
+ glShadeModel((buffers->smooth || buffers->totface) ? GL_SMOOTH : GL_FLAT);
+
+ if (buffers->vert_buf) {
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
- gpu_colors_enable(VBO_ENABLED);
+ if (has_mask) {
+ gpu_colors_enable(VBO_ENABLED);
+ }
+ else {
+ gpu_colors_enable(VBO_DISABLED);
+ glColor4ub(0xff, 0xff, 0xff, 0xff);
+ }
glBindBufferARB(GL_ARRAY_BUFFER_ARB, buffers->vert_buf);
- glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf);
+
+ if (buffers->index_buf)
+ glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, buffers->index_buf);
if (buffers->tot_quad) {
char *offset = 0;
@@ -1963,8 +2080,10 @@ void GPU_draw_buffers(GPU_Buffers *buffers, DMSetMaterial setMaterial)
offset + offsetof(VertexBufferFormat, co));
glNormalPointer(GL_SHORT, sizeof(VertexBufferFormat),
offset + offsetof(VertexBufferFormat, no));
- glColorPointer(3, GL_UNSIGNED_BYTE, sizeof(VertexBufferFormat),
- offset + offsetof(VertexBufferFormat, color));
+ if (has_mask) {
+ glColorPointer(3, GL_UNSIGNED_BYTE, sizeof(VertexBufferFormat),
+ offset + offsetof(VertexBufferFormat, color));
+ }
glDrawElements(GL_QUADS, buffers->tot_quad * 4, buffers->index_type, 0);
@@ -1972,29 +2091,42 @@ void GPU_draw_buffers(GPU_Buffers *buffers, DMSetMaterial setMaterial)
}
}
else {
+ int totelem = buffers->tot_tri * 3;
+
glVertexPointer(3, GL_FLOAT, sizeof(VertexBufferFormat),
(void *)offsetof(VertexBufferFormat, co));
glNormalPointer(GL_SHORT, sizeof(VertexBufferFormat),
(void *)offsetof(VertexBufferFormat, no));
- glColorPointer(3, GL_UNSIGNED_BYTE, sizeof(VertexBufferFormat),
- (void *)offsetof(VertexBufferFormat, color));
+ if (has_mask) {
+ glColorPointer(3, GL_UNSIGNED_BYTE, sizeof(VertexBufferFormat),
+ (void *)offsetof(VertexBufferFormat, color));
+ }
- glDrawElements(GL_TRIANGLES, buffers->tot_tri * 3, buffers->index_type, 0);
+ if (buffers->index_buf)
+ glDrawElements(GL_TRIANGLES, totelem, buffers->index_type, 0);
+ else
+ glDrawArrays(GL_TRIANGLES, 0, totelem);
}
glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
- glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
+ if (buffers->index_buf)
+ glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
- gpu_colors_disable(VBO_ENABLED);
+ if (has_mask) {
+ gpu_colors_disable(VBO_ENABLED);
+ }
+ else {
+ gpu_colors_disable(VBO_DISABLED);
+ }
}
/* fallbacks if we are out of memory or VBO is disabled */
else if (buffers->totface) {
- gpu_draw_buffers_legacy_mesh(buffers, smooth);
+ gpu_draw_buffers_legacy_mesh(buffers);
}
else if (buffers->totgrid) {
- gpu_draw_buffers_legacy_grids(buffers, smooth);
+ gpu_draw_buffers_legacy_grids(buffers);
}
}
diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c
index a88a075383d..25990e8fc6e 100644
--- a/source/blender/gpu/intern/gpu_codegen.c
+++ b/source/blender/gpu/intern/gpu_codegen.c
@@ -761,7 +761,7 @@ void GPU_pass_bind(GPUPass *pass, double time, int mipmap)
/* now bind the textures */
for (input=inputs->first; input; input=input->next) {
if (input->ima)
- input->tex = GPU_texture_from_blender(input->ima, input->iuser, time, mipmap);
+ input->tex = GPU_texture_from_blender(input->ima, input->iuser, input->imagencd, time, mipmap);
if (input->tex && input->bindtex) {
GPU_texture_bind(input->tex, input->texid);
@@ -917,6 +917,7 @@ static void gpu_node_input_link(GPUNode *node, GPUNodeLink *link, int type)
input->ima = link->ptr1;
input->iuser = link->ptr2;
+ input->imagencd = link->imagencd;
input->textarget = GL_TEXTURE_2D;
input->textype = GPU_TEX2D;
MEM_freeN(link);
@@ -1109,13 +1110,14 @@ GPUNodeLink *GPU_dynamic_uniform(float *num, int dynamictype, void *data)
return link;
}
-GPUNodeLink *GPU_image(Image *ima, ImageUser *iuser)
+GPUNodeLink *GPU_image(Image *ima, ImageUser *iuser, int ncd)
{
GPUNodeLink *link = GPU_node_link_create(0);
link->image= 1;
link->ptr1= ima;
link->ptr2= iuser;
+ link->imagencd= ncd;
return link;
}
diff --git a/source/blender/gpu/intern/gpu_codegen.h b/source/blender/gpu/intern/gpu_codegen.h
index db334b8bf19..3010937a2f3 100644
--- a/source/blender/gpu/intern/gpu_codegen.h
+++ b/source/blender/gpu/intern/gpu_codegen.h
@@ -91,6 +91,7 @@ struct GPUNodeLink {
const char *attribname;
int image;
+ int imagencd;
int texture;
int texturesize;
@@ -137,6 +138,7 @@ typedef struct GPUInput {
struct Image *ima; /* image */
struct ImageUser *iuser;/* image user */
+ int imagencd; /* image does not contain color data */
float *dynamicvec; /* vector data in case it is dynamic */
int dynamictype; /* origin of the dynamic uniform (GPUDynamicType) */
void *dynamicdata; /* data source of the dynamic uniform */
diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c
index 8a31a454633..956c76aec20 100644
--- a/source/blender/gpu/intern/gpu_draw.c
+++ b/source/blender/gpu/intern/gpu_draw.c
@@ -268,7 +268,7 @@ void GPU_set_linear_mipmap(int linear)
}
}
-static int gpu_get_mipmap(void)
+int GPU_get_mipmap(void)
{
return GTS.domipmap && !GTS.texpaint;
}
@@ -422,7 +422,7 @@ static void gpu_verify_reflection(Image *ima)
}
}
-int GPU_verify_image(Image *ima, ImageUser *iuser, int tftile, int compare, int mipmap)
+int GPU_verify_image(Image *ima, ImageUser *iuser, int tftile, int compare, int mipmap, int ncd)
{
ImBuf *ibuf = NULL;
unsigned int *bind = NULL;
@@ -492,7 +492,7 @@ int GPU_verify_image(Image *ima, ImageUser *iuser, int tftile, int compare, int
}
/* TODO unneeded when float images are correctly treated as linear always */
- if (ibuf->profile == IB_PROFILE_LINEAR_RGB)
+ if (!ncd)
do_color_management = TRUE;
if (ibuf->rect==NULL)
@@ -535,7 +535,7 @@ int GPU_verify_image(Image *ima, ImageUser *iuser, int tftile, int compare, int
if (do_color_management) {
srgb_frect = MEM_mallocN(ibuf->x*ibuf->y*sizeof(float)*4, "floar_buf_col_cor");
IMB_buffer_float_from_float(srgb_frect, ibuf->rect_float,
- ibuf->channels, IB_PROFILE_SRGB, ibuf->profile, 0,
+ ibuf->channels, IB_PROFILE_SRGB, IB_PROFILE_LINEAR_RGB, 0,
ibuf->x, ibuf->y, ibuf->x, ibuf->x);
/* clamp buffer colors to 1.0 to avoid artifacts due to glu for hdr images */
IMB_buffer_float_clamp(srgb_frect, ibuf->x, ibuf->y);
@@ -560,7 +560,7 @@ int GPU_verify_image(Image *ima, ImageUser *iuser, int tftile, int compare, int
if (do_color_management) {
frect = srgb_frect = MEM_mallocN(ibuf->x*ibuf->y*sizeof(*srgb_frect)*4, "floar_buf_col_cor");
IMB_buffer_float_from_float(srgb_frect, ibuf->rect_float,
- ibuf->channels, IB_PROFILE_SRGB, ibuf->profile, 0,
+ ibuf->channels, IB_PROFILE_SRGB, IB_PROFILE_LINEAR_RGB, 0,
ibuf->x, ibuf->y, ibuf->x, ibuf->x);
/* clamp buffer colors to 1.0 to avoid artifacts due to glu for hdr images */
IMB_buffer_float_clamp(srgb_frect, ibuf->x, ibuf->y);
@@ -638,8 +638,9 @@ void GPU_create_gl_tex(unsigned int *bind, unsigned int *pix, float * frect, int
int tpy = recth;
/* scale if not a power of two. this is not strictly necessary for newer
- * GPUs (OpenGL version >= 2.0) since they support non-power-of-two-textures */
- if (!is_pow2_limit(rectw) || !is_pow2_limit(recth)) {
+ * GPUs (OpenGL version >= 2.0) since they support non-power-of-two-textures
+ * Then don't bother scaling for hardware that supports NPOT textures! */
+ if (!GPU_non_power_of_two_support() && (!is_pow2_limit(rectw) || !is_pow2_limit(recth))) {
rectw= smaller_pow2_limit(rectw);
recth= smaller_pow2_limit(recth);
@@ -661,7 +662,7 @@ void GPU_create_gl_tex(unsigned int *bind, unsigned int *pix, float * frect, int
glGenTextures(1, (GLuint *)bind);
glBindTexture(GL_TEXTURE_2D, *bind);
- if (!(gpu_get_mipmap() && mipmap)) {
+ if (!(GPU_get_mipmap() && mipmap)) {
if (use_high_bit_depth)
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16, rectw, recth, 0, GL_RGBA, GL_FLOAT, frect);
else
@@ -677,7 +678,8 @@ void GPU_create_gl_tex(unsigned int *bind, unsigned int *pix, float * frect, int
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, rectw, recth, 0, GL_RGBA, GL_UNSIGNED_BYTE, pix);
glGenerateMipmapEXT(GL_TEXTURE_2D);
- } else {
+ }
+ else {
if (use_high_bit_depth)
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA16, rectw, recth, GL_RGBA, GL_FLOAT, frect);
else
@@ -707,7 +709,7 @@ void GPU_create_gl_tex(unsigned int *bind, unsigned int *pix, float * frect, int
*/
int GPU_upload_dxt_texture(ImBuf *ibuf)
{
-#if WITH_DDS
+#ifdef WITH_DDS
GLint format = 0;
int blocksize, height, width, i, size, offset = 0;
@@ -728,6 +730,11 @@ int GPU_upload_dxt_texture(ImBuf *ibuf)
return FALSE;
}
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gpu_get_mipmap_filter(1));
+
+ glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+
blocksize = (format == GL_COMPRESSED_RGBA_S3TC_DXT1_EXT) ? 8 : 16;
for (i=0; i<ibuf->dds_data.nummipmaps && (width||height); ++i) {
if (width == 0)
@@ -764,11 +771,6 @@ void GPU_create_gl_tex_compressed(unsigned int *bind, unsigned int *pix, int x,
glGenTextures(1, (GLuint *)bind);
glBindTexture(GL_TEXTURE_2D, *bind);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gpu_get_mipmap_filter(1));
-
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
if (GPU_upload_dxt_texture(ibuf) == 0) {
glDeleteTextures(1, (GLuint*)bind);
GPU_create_gl_tex(bind, pix, NULL, x, y, mipmap, 0, ima);
@@ -805,7 +807,7 @@ int GPU_set_tpage(MTFace *tface, int mipmap, int alphablend)
gpu_verify_alpha_blend(alphablend);
gpu_verify_reflection(ima);
- if (GPU_verify_image(ima, NULL, tface->tile, 1, mipmap)) {
+ if (GPU_verify_image(ima, NULL, tface->tile, 1, mipmap, FALSE)) {
GTS.curtile= GTS.tile;
GTS.curima= GTS.ima;
GTS.curtilemode= GTS.tilemode;
@@ -876,13 +878,13 @@ void GPU_paint_set_mipmap(int mipmap)
}
}
-void GPU_paint_update_image(Image *ima, int x, int y, int w, int h, int mipmap)
+void GPU_paint_update_image(Image *ima, int x, int y, int w, int h)
{
ImBuf *ibuf;
ibuf = BKE_image_get_ibuf(ima, NULL);
- if (ima->repbind || (gpu_get_mipmap() && mipmap) || !ima->bindcode || !ibuf ||
+ if (ima->repbind || (GPU_get_mipmap() && !GTS.gpu_mipmap) || !ima->bindcode || !ibuf ||
(!is_power_of_2_i(ibuf->x) || !is_power_of_2_i(ibuf->y)) ||
(w == 0) || (h == 0))
{
@@ -899,7 +901,7 @@ void GPU_paint_update_image(Image *ima, int x, int y, int w, int h, int mipmap)
glGetIntegerv(GL_UNPACK_SKIP_ROWS, &skip_rows);
/* if color correction is needed, we must update the part that needs updating. */
- if (ibuf->rect_float && (!U.use_16bit_textures || (ibuf->profile == IB_PROFILE_LINEAR_RGB))) {
+ if (ibuf->rect_float) {
float *buffer = MEM_mallocN(w*h*sizeof(float)*4, "temp_texpaint_float_buf");
IMB_partial_rect_from_float(ibuf, buffer, x, y, w, h);
@@ -909,8 +911,14 @@ void GPU_paint_update_image(Image *ima, int x, int y, int w, int h, int mipmap)
MEM_freeN(buffer);
- if (ima->tpageflag & IMA_MIPMAP_COMPLETE)
+ /* we have already accounted for the case where GTS.gpu_mipmap is false
+ * so we will be using GPU mipmap generation here */
+ if (GPU_get_mipmap()) {
+ glGenerateMipmapEXT(GL_TEXTURE_2D);
+ }
+ else {
ima->tpageflag &= ~IMA_MIPMAP_COMPLETE;
+ }
return;
}
@@ -932,8 +940,13 @@ void GPU_paint_update_image(Image *ima, int x, int y, int w, int h, int mipmap)
glPixelStorei(GL_UNPACK_SKIP_PIXELS, skip_pixels);
glPixelStorei(GL_UNPACK_SKIP_ROWS, skip_rows);
- if (ima->tpageflag & IMA_MIPMAP_COMPLETE)
+ /* see comment above as to why we are using gpu mipmap generation here */
+ if (GPU_get_mipmap()) {
+ glGenerateMipmapEXT(GL_TEXTURE_2D);
+ }
+ else {
ima->tpageflag &= ~IMA_MIPMAP_COMPLETE;
+ }
}
}
@@ -1195,7 +1208,9 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O
GPUMaterial *gpumat;
GPUBlendMode alphablend;
int a;
- int gamma = scene->r.color_mgt_flag & R_COLOR_MANAGEMENT;
+
+ int gamma = BKE_scene_check_color_management_enabled(scene);
+
int new_shading_nodes = BKE_scene_use_new_shading_nodes(scene);
/* initialize state */
@@ -1219,7 +1234,7 @@ void GPU_begin_object_materials(View3D *v3d, RegionView3D *rv3d, Scene *scene, O
* - object transparency off: for glsl we draw both in a single pass, and
* for solid we don't use transparency at all. */
GMS.use_alpha_pass = (do_alpha_after != NULL);
- GMS.is_alpha_pass = (v3d && v3d->transp);
+ GMS.is_alpha_pass = (v3d->transp != FALSE);
if (GMS.use_alpha_pass)
*do_alpha_after = FALSE;
diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c
index 4974d57d64c..c5f427fbcab 100644
--- a/source/blender/gpu/intern/gpu_extensions.c
+++ b/source/blender/gpu/intern/gpu_extensions.c
@@ -522,7 +522,7 @@ GPUTexture *GPU_texture_create_3D(int w, int h, int depth, float *fpixels)
return tex;
}
-GPUTexture *GPU_texture_from_blender(Image *ima, ImageUser *iuser, double time, int mipmap)
+GPUTexture *GPU_texture_from_blender(Image *ima, ImageUser *iuser, int ncd, double time, int mipmap)
{
GPUTexture *tex;
GLint w, h, border, lastbindcode, bindcode;
@@ -530,7 +530,7 @@ GPUTexture *GPU_texture_from_blender(Image *ima, ImageUser *iuser, double time,
glGetIntegerv(GL_TEXTURE_BINDING_2D, &lastbindcode);
GPU_update_image_time(ima, time);
- bindcode = GPU_verify_image(ima, iuser, 0, 0, mipmap);
+ bindcode = GPU_verify_image(ima, iuser, 0, 0, mipmap, ncd);
if (ima->gputexture) {
ima->gputexture->bindcode = bindcode;
diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c
index 78b5219206d..e035f1c3f5a 100644
--- a/source/blender/gpu/intern/gpu_material.c
+++ b/source/blender/gpu/intern/gpu_material.c
@@ -117,6 +117,7 @@ struct GPULamp {
float dynimat[4][4];
float spotsi, spotbl, k;
+ float dyndist, dynatt1, dynatt2;
float dist, att1, att2;
float shadow_color[3];
@@ -386,10 +387,12 @@ void gpu_material_add_node(GPUMaterial *material, GPUNode *node)
/* Code generation */
-static int gpu_do_color_management(GPUMaterial *mat)
+int GPU_material_do_color_management(GPUMaterial *mat)
{
- return ((mat->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT) &&
- !((mat->scene->gm.flag & GAME_GLSL_NO_COLOR_MANAGEMENT)));
+ if (!BKE_scene_check_color_management_enabled(mat->scene))
+ return FALSE;
+
+ return !((mat->scene->gm.flag & GAME_GLSL_NO_COLOR_MANAGEMENT));
}
static GPUNodeLink *lamp_get_visibility(GPUMaterial *mat, GPULamp *lamp, GPUNodeLink **lv, GPUNodeLink **dist)
@@ -413,27 +416,28 @@ static GPUNodeLink *lamp_get_visibility(GPUMaterial *mat, GPULamp *lamp, GPUNode
case LA_FALLOFF_CONSTANT:
break;
case LA_FALLOFF_INVLINEAR:
- GPU_link(mat, "lamp_falloff_invlinear", GPU_uniform(&lamp->dist), *dist, &visifac);
+ GPU_link(mat, "lamp_falloff_invlinear", GPU_dynamic_uniform(&lamp->dist, GPU_DYNAMIC_LAMP_DISTANCE, lamp->ob), *dist, &visifac);
break;
case LA_FALLOFF_INVSQUARE:
- GPU_link(mat, "lamp_falloff_invsquare", GPU_uniform(&lamp->dist), *dist, &visifac);
+ GPU_link(mat, "lamp_falloff_invsquare", GPU_dynamic_uniform(&lamp->dist, GPU_DYNAMIC_LAMP_DISTANCE, lamp->ob), *dist, &visifac);
break;
case LA_FALLOFF_SLIDERS:
- GPU_link(mat, "lamp_falloff_sliders", GPU_uniform(&lamp->dist), GPU_uniform(&lamp->att1), GPU_uniform(&lamp->att2), *dist, &visifac);
+ GPU_link(mat, "lamp_falloff_sliders", GPU_dynamic_uniform(&lamp->dist, GPU_DYNAMIC_LAMP_DISTANCE, lamp->ob), GPU_dynamic_uniform(&lamp->att1, GPU_DYNAMIC_LAMP_ATT1, lamp->ob), GPU_dynamic_uniform(&lamp->att2, GPU_DYNAMIC_LAMP_ATT2, lamp->ob), *dist, &visifac);
break;
case LA_FALLOFF_CURVE:
{
float *array;
int size;
+ curvemapping_initialize(lamp->curfalloff);
curvemapping_table_RGBA(lamp->curfalloff, &array, &size);
- GPU_link(mat, "lamp_falloff_curve", GPU_uniform(&lamp->dist), GPU_texture(size, array), *dist, &visifac);
+ GPU_link(mat, "lamp_falloff_curve", GPU_dynamic_uniform(&lamp->dist, GPU_DYNAMIC_LAMP_DISTANCE, lamp->ob), GPU_texture(size, array), *dist, &visifac);
}
break;
}
if (lamp->mode & LA_SPHERE)
- GPU_link(mat, "lamp_visibility_sphere", GPU_uniform(&lamp->dist), *dist, visifac, &visifac);
+ GPU_link(mat, "lamp_visibility_sphere", GPU_dynamic_uniform(&lamp->dist, GPU_DYNAMIC_LAMP_DISTANCE, lamp->ob), *dist, visifac, &visifac);
if (lamp->type == LA_SPOT) {
if (lamp->mode & LA_SQUARE) {
@@ -445,7 +449,7 @@ static GPUNodeLink *lamp_get_visibility(GPUMaterial *mat, GPULamp *lamp, GPUNode
GPU_link(mat, "lamp_visibility_spot_circle", GPU_dynamic_uniform(lamp->dynvec, GPU_DYNAMIC_LAMP_DYNVEC, lamp->ob), *lv, &inpr);
}
- GPU_link(mat, "lamp_visibility_spot", GPU_uniform(&lamp->spotsi), GPU_uniform(&lamp->spotbl), inpr, visifac, &visifac);
+ GPU_link(mat, "lamp_visibility_spot", GPU_dynamic_uniform(&lamp->spotsi, GPU_DYNAMIC_LAMP_SPOTSIZE, lamp->ob), GPU_dynamic_uniform(&lamp->spotbl, GPU_DYNAMIC_LAMP_SPOTSIZE, lamp->ob), inpr, visifac, &visifac);
}
GPU_link(mat, "lamp_visibility_clamp", visifac, &visifac);
@@ -643,7 +647,7 @@ static void shade_light_textures(GPUMaterial *mat, GPULamp *lamp, GPUNodeLink **
GPU_link(mat, "shade_light_texture",
GPU_builtin(GPU_VIEW_POSITION),
- GPU_image(mtex->tex->ima, &mtex->tex->iuser),
+ GPU_image(mtex->tex->ima, &mtex->tex->iuser, FALSE),
GPU_dynamic_uniform((float*)lamp->dynpersmat, GPU_DYNAMIC_LAMP_DYNPERSMAT, lamp->ob),
&tex_rgb);
texture_rgb_blend(mat, tex_rgb, *rgb, GPU_uniform(&one), GPU_uniform(&mtex->colfac), mtex->blendtype, rgb);
@@ -837,7 +841,7 @@ static void material_lights(GPUShadeInput *shi, GPUShadeResult *shr)
if (ob->transflag & OB_DUPLI) {
DupliObject *dob;
- ListBase *lb = object_duplilist(shi->gpumat->scene, ob);
+ ListBase *lb = object_duplilist(shi->gpumat->scene, ob, FALSE);
for (dob=lb->first; dob; dob=dob->next) {
Object *ob_iter = dob->ob;
@@ -1026,13 +1030,15 @@ static void do_material_tex(GPUShadeInput *shi)
talpha = 0;
if (tex && tex->type == TEX_IMAGE && tex->ima) {
- GPU_link(mat, "mtex_image", texco, GPU_image(tex->ima, &tex->iuser), &tin, &trgb);
+ GPU_link(mat, "mtex_image", texco, GPU_image(tex->ima, &tex->iuser, FALSE), &tin, &trgb);
rgbnor= TEX_RGB;
if (tex->imaflag & TEX_USEALPHA)
talpha= 1;
}
- else continue;
+ else {
+ continue;
+ }
/* texture output */
if ((rgbnor & TEX_RGB) && (mtex->texflag & MTEX_RGBTOINT)) {
@@ -1072,7 +1078,7 @@ static void do_material_tex(GPUShadeInput *shi)
}
if (tex->type==TEX_IMAGE)
- if (gpu_do_color_management(mat))
+ if (GPU_material_do_color_management(mat))
GPU_link(mat, "srgb_to_linearrgb", tcol, &tcol);
if (mtex->mapto & MAP_COL) {
@@ -1100,7 +1106,7 @@ static void do_material_tex(GPUShadeInput *shi)
if (tex->imaflag & TEX_NORMALMAP) {
/* normalmap image */
- GPU_link(mat, "mtex_normal", texco, GPU_image(tex->ima, &tex->iuser), &tnor);
+ GPU_link(mat, "mtex_normal", texco, GPU_image(tex->ima, &tex->iuser, TRUE), &tnor);
if (mtex->norfac < 0.0f)
GPU_link(mat, "mtex_negate_texnormal", tnor, &tnor);
@@ -1230,26 +1236,26 @@ static void do_material_tex(GPUShadeInput *shi)
if (found_deriv_map) {
GPU_link(mat, "mtex_bump_deriv",
- texco, GPU_image(tex->ima, &tex->iuser), GPU_uniform(&ima_x), GPU_uniform(&ima_y), tnorfac,
+ texco, GPU_image(tex->ima, &tex->iuser, TRUE), GPU_uniform(&ima_x), GPU_uniform(&ima_y), tnorfac,
&dBs, &dBt );
}
else if ( mtex->texflag & MTEX_3TAP_BUMP)
GPU_link(mat, "mtex_bump_tap3",
- texco, GPU_image(tex->ima, &tex->iuser), tnorfac,
+ texco, GPU_image(tex->ima, &tex->iuser, TRUE), tnorfac,
&dBs, &dBt );
else if ( mtex->texflag & MTEX_5TAP_BUMP)
GPU_link(mat, "mtex_bump_tap5",
- texco, GPU_image(tex->ima, &tex->iuser), tnorfac,
+ texco, GPU_image(tex->ima, &tex->iuser, TRUE), tnorfac,
&dBs, &dBt );
else if ( mtex->texflag & MTEX_BICUBIC_BUMP ) {
if (GPU_bicubic_bump_support()) {
GPU_link(mat, "mtex_bump_bicubic",
- texco, GPU_image(tex->ima, &tex->iuser), tnorfac,
+ texco, GPU_image(tex->ima, &tex->iuser, TRUE), tnorfac,
&dBs, &dBt);
}
else {
GPU_link(mat, "mtex_bump_tap5",
- texco, GPU_image(tex->ima, &tex->iuser), tnorfac,
+ texco, GPU_image(tex->ima, &tex->iuser, TRUE), tnorfac,
&dBs, &dBt);
}
}
@@ -1259,7 +1265,7 @@ static void do_material_tex(GPUShadeInput *shi)
float imag_tspace_dimension_y = aspect*imag_tspace_dimension_x;
GPU_link(mat, "mtex_bump_apply_texspace",
fDet, dBs, dBt, vR1, vR2,
- GPU_image(tex->ima, &tex->iuser), texco,
+ GPU_image(tex->ima, &tex->iuser, TRUE), texco,
GPU_uniform(&imag_tspace_dimension_x), GPU_uniform(&imag_tspace_dimension_y), vNacc,
&vNacc, &shi->vn );
}
@@ -1345,6 +1351,7 @@ static void do_material_tex(GPUShadeInput *shi)
void GPU_shadeinput_set(GPUMaterial *mat, Material *ma, GPUShadeInput *shi)
{
float hard = ma->har;
+ float one = 1.0f;
memset(shi, 0, sizeof(*shi));
@@ -1354,7 +1361,12 @@ void GPU_shadeinput_set(GPUMaterial *mat, Material *ma, GPUShadeInput *shi)
GPU_link(mat, "set_rgb", GPU_uniform(&ma->r), &shi->rgb);
GPU_link(mat, "set_rgb", GPU_uniform(&ma->specr), &shi->specrgb);
GPU_link(mat, "shade_norm", GPU_builtin(GPU_VIEW_NORMAL), &shi->vn);
- GPU_link(mat, "set_value", GPU_uniform(&ma->alpha), &shi->alpha);
+
+ if (ma->mode & MA_TRANSP)
+ GPU_link(mat, "set_value", GPU_uniform(&ma->alpha), &shi->alpha);
+ else
+ GPU_link(mat, "set_value", GPU_uniform(&one), &shi->alpha);
+
GPU_link(mat, "set_value", GPU_uniform(&ma->ref), &shi->refl);
GPU_link(mat, "set_value", GPU_uniform(&ma->spec), &shi->spec);
GPU_link(mat, "set_value", GPU_uniform(&ma->emit), &shi->emit);
@@ -1362,7 +1374,7 @@ void GPU_shadeinput_set(GPUMaterial *mat, Material *ma, GPUShadeInput *shi)
GPU_link(mat, "set_value", GPU_uniform(&ma->amb), &shi->amb);
GPU_link(mat, "shade_view", GPU_builtin(GPU_VIEW_POSITION), &shi->view);
GPU_link(mat, "vcol_attribute", GPU_attribute(CD_MCOL, ""), &shi->vcol);
- if (gpu_do_color_management(mat))
+ if (GPU_material_do_color_management(mat))
GPU_link(mat, "srgb_to_linearrgb", shi->vcol, &shi->vcol);
GPU_link(mat, "texco_refl", shi->vn, shi->view, &shi->ref);
}
@@ -1386,10 +1398,10 @@ void GPU_shaderesult_set(GPUShadeInput *shi, GPUShadeResult *shr)
GPU_material_enable_alpha(mat);
if ((mat->scene->gm.flag & GAME_GLSL_NO_LIGHTS) || (ma->mode & MA_SHLESS)) {
- shr->combined = shi->rgb;
- shr->alpha = shi->alpha;
GPU_link(mat, "set_rgb", shi->rgb, &shr->diff);
GPU_link(mat, "set_rgb_zero", &shr->spec);
+ GPU_link(mat, "set_value", shi->alpha, &shr->alpha);
+ shr->combined = shr->diff;
}
else {
if (GPU_link_changed(shi->emit) || ma->emit != 0.0f) {
@@ -1408,7 +1420,8 @@ void GPU_shaderesult_set(GPUShadeInput *shi, GPUShadeResult *shr)
material_lights(shi, shr);
shr->combined = shr->diff;
- shr->alpha = shi->alpha;
+
+ GPU_link(mat, "set_value", shi->alpha, &shr->alpha);
if (world) {
/* exposure correction */
@@ -1505,12 +1518,9 @@ GPUMaterial *GPU_material_from_blender(Scene *scene, Material *ma)
GPU_material_output_link(mat, outlink);
}
- if (!BKE_scene_use_new_shading_nodes(scene)) {
- if (gpu_do_color_management(mat))
- if (mat->outlink)
- GPU_link(mat, "linearrgb_to_srgb", mat->outlink, &mat->outlink);
- }
-
+ if (GPU_material_do_color_management(mat))
+ if (mat->outlink)
+ GPU_link(mat, "linearrgb_to_srgb", mat->outlink, &mat->outlink);
GPU_material_construct_end(mat);
@@ -1568,6 +1578,19 @@ void GPU_lamp_update_colors(GPULamp *lamp, float r, float g, float b, float ener
lamp->col[2]= b* lamp->energy;
}
+void GPU_lamp_update_distance(GPULamp *lamp, float distance, float att1, float att2)
+{
+ lamp->dist = distance;
+ lamp->att1 = att1;
+ lamp->att2 = att2;
+}
+
+void GPU_lamp_update_spot(GPULamp *lamp, float spotsize, float spotblend)
+{
+ lamp->spotsi= cos(M_PI*spotsize/360.0);
+ lamp->spotbl= (1.0f - lamp->spotsi)*spotblend;
+}
+
static void gpu_lamp_from_blender(Scene *scene, Object *ob, Object *par, Lamp *la, GPULamp *lamp)
{
float temp, angle, pixsize, wsize;
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl
index fb248f1b016..81c3cab97d4 100644
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_material.glsl
@@ -2114,6 +2114,12 @@ void node_tex_checker(vec3 co, vec4 color1, vec4 color2, float scale, out vec4 c
fac = 1.0;
}
+void node_tex_brick(vec3 co, vec4 color1, vec4 color2, vec4 mortar, float scale, float mortar_size, float bias, float brick_width, float row_height, out vec4 color, out float fac)
+{
+ color = vec4(1.0);
+ fac = 1.0;
+}
+
void node_tex_clouds(vec3 co, float size, out vec4 color, out float fac)
{
color = vec4(1.0);
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl.c b/source/blender/gpu/shaders/gpu_shader_material.glsl.c
deleted file mode 100644
index 99fb18a98ec..00000000000
--- a/source/blender/gpu/shaders/gpu_shader_material.glsl.c
+++ /dev/null
@@ -1,1607 +0,0 @@
-/* DataToC output of file <gpu_shader_material_glsl> */
-
-int datatoc_gpu_shader_material_glsl_size = 51212;
-char datatoc_gpu_shader_material_glsl[] = {
- 10,102,108,111, 97,116, 32,101,120,112, 95, 98,
-108,101,110,100,101,114, 40,102,108,111, 97,116, 32,102, 41, 10,123, 10, 9,114,101,116,117,114,110, 32,112,111,119, 40, 50, 46,
- 55, 49, 56, 50, 56, 49, 56, 50, 56, 52, 54, 44, 32,102, 41, 59, 10,125, 10, 10,118,111,105,100, 32,114,103, 98, 95,116,111, 95,
-104,115,118, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123,
- 10, 9,102,108,111, 97,116, 32, 99,109, 97,120, 44, 32, 99,109,105,110, 44, 32,104, 44, 32,115, 44, 32,118, 44, 32, 99,100,101,
-108,116, 97, 59, 10, 9,118,101, 99, 51, 32, 99, 59, 10, 10, 9, 99,109, 97,120, 32, 61, 32,109, 97,120, 40,114,103, 98, 91, 48,
- 93, 44, 32,109, 97,120, 40,114,103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41, 41, 59, 10, 9, 99,109,105,110, 32, 61,
- 32,109,105,110, 40,114,103, 98, 91, 48, 93, 44, 32,109,105,110, 40,114,103, 98, 91, 49, 93, 44, 32,114,103, 98, 91, 50, 93, 41,
- 41, 59, 10, 9, 99,100,101,108,116, 97, 32, 61, 32, 99,109, 97,120, 45, 99,109,105,110, 59, 10, 10, 9,118, 32, 61, 32, 99,109,
- 97,120, 59, 10, 9,105,102, 32, 40, 99,109, 97,120, 33, 61, 48, 46, 48, 41, 10, 9, 9,115, 32, 61, 32, 99,100,101,108,116, 97,
- 47, 99,109, 97,120, 59, 10, 9,101,108,115,101, 32,123, 10, 9, 9,115, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,104, 32, 61, 32,
- 48, 46, 48, 59, 10, 9,125, 10, 10, 9,105,102, 32, 40,115, 32, 61, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,104, 32, 61, 32,
- 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9, 99, 32, 61, 32, 40,118,101, 99, 51, 40, 99,109, 97,120,
- 44, 32, 99,109, 97,120, 44, 32, 99,109, 97,120, 41, 32, 45, 32,114,103, 98, 46,120,121,122, 41, 47, 99,100,101,108,116, 97, 59,
- 10, 10, 9, 9,105,102, 32, 40,114,103, 98, 46,120, 61, 61, 99,109, 97,120, 41, 32,104, 32, 61, 32, 99, 91, 50, 93, 32, 45, 32,
- 99, 91, 49, 93, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,114,103, 98, 46,121, 61, 61, 99,109, 97,120, 41, 32,104, 32,
- 61, 32, 50, 46, 48, 32, 43, 32, 99, 91, 48, 93, 32, 45, 32, 32, 99, 91, 50, 93, 59, 10, 9, 9,101,108,115,101, 32,104, 32, 61,
- 32, 52, 46, 48, 32, 43, 32, 99, 91, 49, 93, 32, 45, 32, 99, 91, 48, 93, 59, 10, 10, 9, 9,104, 32, 47, 61, 32, 54, 46, 48, 59,
- 10, 10, 9, 9,105,102, 32, 40,104, 60, 48, 46, 48, 41, 10, 9, 9, 9,104, 32, 43, 61, 32, 49, 46, 48, 59, 10, 9,125, 10, 10,
- 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,104, 44, 32,115, 44, 32,118, 44, 32,114,103, 98, 46,119, 41, 59, 10,
-125, 10, 10,118,111,105,100, 32,104,115,118, 95,116,111, 95,114,103, 98, 40,118,101, 99, 52, 32,104,115,118, 44, 32,111,117,116,
- 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,105, 44, 32,102, 44, 32,112, 44, 32,
-113, 44, 32,116, 44, 32,104, 44, 32,115, 44, 32,118, 59, 10, 9,118,101, 99, 51, 32,114,103, 98, 59, 10, 10, 9,104, 32, 61, 32,
-104,115,118, 91, 48, 93, 59, 10, 9,115, 32, 61, 32,104,115,118, 91, 49, 93, 59, 10, 9,118, 32, 61, 32,104,115,118, 91, 50, 93,
- 59, 10, 10, 9,105,102, 40,115, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44,
- 32,118, 44, 32,118, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,105,102, 40,104, 61, 61, 49, 46, 48, 41, 10,
- 9, 9, 9,104, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 10, 9, 9,104, 32, 42, 61, 32, 54, 46, 48, 59, 10, 9, 9,105, 32, 61,
- 32,102,108,111,111,114, 40,104, 41, 59, 10, 9, 9,102, 32, 61, 32,104, 32, 45, 32,105, 59, 10, 9, 9,114,103, 98, 32, 61, 32,
-118,101, 99, 51, 40,102, 44, 32,102, 44, 32,102, 41, 59, 10, 9, 9,112, 32, 61, 32,118, 42, 40, 49, 46, 48, 45,115, 41, 59, 10,
- 9, 9,113, 32, 61, 32,118, 42, 40, 49, 46, 48, 45, 40,115, 42,102, 41, 41, 59, 10, 9, 9,116, 32, 61, 32,118, 42, 40, 49, 46,
- 48, 45, 40,115, 42, 40, 49, 46, 48, 45,102, 41, 41, 41, 59, 10, 9, 9, 10, 9, 9,105,102, 32, 40,105, 32, 61, 61, 32, 48, 46,
- 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,116, 44, 32,112, 41, 59, 10, 9, 9,101,108,115,101, 32,105,
-102, 32, 40,105, 32, 61, 61, 32, 49, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,113, 44, 32,118, 44, 32,112, 41,
- 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 50, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99,
- 51, 40,112, 44, 32,118, 44, 32,116, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32, 40,105, 32, 61, 61, 32, 51, 46, 48, 41,
- 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,112, 44, 32,113, 44, 32,118, 41, 59, 10, 9, 9,101,108,115,101, 32,105,102, 32,
- 40,105, 32, 61, 61, 32, 52, 46, 48, 41, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,116, 44, 32,112, 44, 32,118, 41, 59, 10,
- 9, 9,101,108,115,101, 32,114,103, 98, 32, 61, 32,118,101, 99, 51, 40,118, 44, 32,112, 44, 32,113, 41, 59, 10, 9,125, 10, 10,
- 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 44, 32,104,115,118, 46,119, 41, 59, 10,125, 10, 10,102,
-108,111, 97,116, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40,102,108,111, 97,116, 32, 99, 41, 10,
-123, 10, 9,105,102, 40, 99, 32, 60, 32, 48, 46, 48, 52, 48, 52, 53, 41, 10, 9, 9,114,101,116,117,114,110, 32, 40, 99, 32, 60,
- 32, 48, 46, 48, 41, 63, 32, 48, 46, 48, 58, 32, 99, 32, 42, 32, 40, 49, 46, 48, 47, 49, 50, 46, 57, 50, 41, 59, 10, 9,101,108,
-115,101, 10, 9, 9,114,101,116,117,114,110, 32,112,111,119, 40, 40, 99, 32, 43, 32, 48, 46, 48, 53, 53, 41, 42, 40, 49, 46, 48,
- 47, 49, 46, 48, 53, 53, 41, 44, 32, 50, 46, 52, 41, 59, 10,125, 10, 10,102,108,111, 97,116, 32,108,105,110,101, 97,114,114,103,
- 98, 95,116,111, 95,115,114,103, 98, 40,102,108,111, 97,116, 32, 99, 41, 10,123, 10, 9,105,102, 40, 99, 32, 60, 32, 48, 46, 48,
- 48, 51, 49, 51, 48, 56, 41, 10, 9, 9,114,101,116,117,114,110, 32, 40, 99, 32, 60, 32, 48, 46, 48, 41, 63, 32, 48, 46, 48, 58,
- 32, 99, 32, 42, 32, 49, 50, 46, 57, 50, 59, 10, 9,101,108,115,101, 10, 9, 9,114,101,116,117,114,110, 32, 49, 46, 48, 53, 53,
- 32, 42, 32,112,111,119, 40, 99, 44, 32, 49, 46, 48, 47, 50, 46, 52, 41, 32, 45, 32, 48, 46, 48, 53, 53, 59, 10,125, 10, 10,118,
-111,105,100, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 95,102,
-114,111,109, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 95,116,111, 41, 10,123, 10, 9, 99,111,108, 95,116,111, 46,
-114, 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,114,
- 41, 59, 10, 9, 99,111,108, 95,116,111, 46,103, 32, 61, 32,115,114,103, 98, 95,116,111, 95,108,105,110,101, 97,114,114,103, 98,
- 40, 99,111,108, 95,102,114,111,109, 46,103, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 98, 32, 61, 32,115,114,103, 98, 95,116,
-111, 95,108,105,110,101, 97,114,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46, 98, 41, 59, 10, 9, 99,111,108, 95,116,111,
- 46, 97, 32, 61, 32, 99,111,108, 95,102,114,111,109, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,108,105,110,101, 97,114,114,
-103, 98, 95,116,111, 95,115,114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 95,102,114,111,109, 44, 32,111,117,116, 32,118,101,
- 99, 52, 32, 99,111,108, 95,116,111, 41, 10,123, 10, 9, 99,111,108, 95,116,111, 46,114, 32, 61, 32,108,105,110,101, 97,114,114,
-103, 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,114, 41, 59, 10, 9, 99,111,108, 95,116,111, 46,
-103, 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98, 40, 99,111,108, 95,102,114,111,109, 46,103,
- 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 98, 32, 61, 32,108,105,110,101, 97,114,114,103, 98, 95,116,111, 95,115,114,103, 98,
- 40, 99,111,108, 95,102,114,111,109, 46, 98, 41, 59, 10, 9, 99,111,108, 95,116,111, 46, 97, 32, 61, 32, 99,111,108, 95,102,114,
-111,109, 46, 97, 59, 10,125, 10, 10, 35,100,101,102,105,110,101, 32, 77, 95, 80, 73, 32, 51, 46, 49, 52, 49, 53, 57, 50, 54, 53,
- 51, 53, 56, 57, 55, 57, 51, 50, 51, 56, 52, 54, 10, 35,100,101,102,105,110,101, 32, 77, 95, 49, 95, 80, 73, 32, 48, 46, 51, 49,
- 56, 51, 48, 57, 56, 56, 54, 49, 56, 51, 55, 57, 48, 54, 57, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 83, 72,
- 65, 68, 69, 82, 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,105,
-100, 32,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,
-117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 41, 10,123, 10, 9,118, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 97,116,116,
-118, 99,111,108, 46,120, 47, 50, 53, 53, 46, 48, 44, 32, 97,116,116,118, 99,111,108, 46,121, 47, 50, 53, 53, 46, 48, 44, 32, 97,
-116,116,118, 99,111,108, 46,122, 47, 50, 53, 53, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,117,118,
- 95, 97,116,116,114,105, 98,117,116,101, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,
-117,118, 41, 10,123, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99,
- 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,103,101,111,109, 40,
-118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,109, 97,116, 52, 32,118,105,101,119,105,110,118,109,
- 97,116, 44, 32,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44, 32,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,118,101,
- 99, 52, 32, 97,116,116,118, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 44, 32,111,117,116,
- 32,118,101, 99, 51, 32,108,111, 99, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,
-118,101, 99, 51, 32,111,114, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 44, 32,111,117,116, 32,118,101, 99, 51,
- 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,118, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,
-116, 32,118, 99,111,108, 95, 97,108,112,104, 97, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102,114,111,110,116, 98, 97, 99,
-107, 41, 10,123, 10, 9,108,111, 99, 97,108, 32, 61, 32, 99,111, 59, 10, 9,118,105,101,119, 32, 61, 32,110,111,114,109, 97,108,
-105,122,101, 40,108,111, 99, 97,108, 41, 59, 10, 9,103,108,111, 98, 97,108, 32, 61, 32, 40,118,105,101,119,105,110,118,109, 97,
-116, 42,118,101, 99, 52, 40,108,111, 99, 97,108, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,111,114, 99,111, 32, 61,
- 32, 97,116,116,111,114, 99,111, 59, 10, 9,117,118, 95, 97,116,116,114,105, 98,117,116,101, 40, 97,116,116,117,118, 44, 32,117,
-118, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,114, 41, 59, 9, 47,
- 42, 32, 98,108,101,110,100,101,114, 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,
-101,100, 32, 42, 47, 10, 9,118, 99,111,108, 95, 97,116,116,114,105, 98,117,116,101, 40, 97,116,116,118, 99,111,108, 44, 32,118,
- 99,111,108, 41, 59, 10, 9,118, 99,111,108, 95, 97,108,112,104, 97, 32, 61, 32, 97,116,116,118, 99,111,108, 46, 97, 59, 10, 9,
-102,114,111,110,116, 98, 97, 99,107, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,112,112,105,110,103,
- 40,118,101, 99, 51, 32,118,101, 99, 44, 32,109, 97,116, 52, 32,109, 97,116, 44, 32,118,101, 99, 51, 32,109,105,110,118,101, 99,
- 44, 32,118,101, 99, 51, 32,109, 97,120,118,101, 99, 44, 32,102,108,111, 97,116, 32,100,111,109,105,110, 44, 32,102,108,111, 97,
-116, 32,100,111,109, 97,120, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,
-118,101, 99, 32, 61, 32, 40,109, 97,116, 32, 42, 32,118,101, 99, 52, 40,118,101, 99, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122,
- 59, 10, 9,105,102, 40,100,111,109,105,110, 32, 61, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109,
- 97,120, 40,111,117,116,118,101, 99, 44, 32,109,105,110,118,101, 99, 41, 59, 10, 9,105,102, 40,100,111,109, 97,120, 32, 61, 61,
- 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32,109,105,110, 40,111,117,116,118,101, 99, 44, 32,109, 97,120,
-118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32, 99, 97,109,101,114, 97, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,
-116, 32,118,101, 99, 51, 32,111,117,116,118,105,101,119, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,101,112,
-116,104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,105,115,116, 41, 10,123, 10, 9,111,117,116,100,101,112,
-116,104, 32, 61, 32, 97, 98,115, 40, 99,111, 46,122, 41, 59, 10, 9,111,117,116,100,105,115,116, 32, 61, 32,108,101,110,103,116,
-104, 40, 99,111, 41, 59, 10, 9,111,117,116,118,105,101,119, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 41, 59,
- 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 97,100,100, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,
-111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,
-117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 43, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,
-104, 95,115,117, 98,116,114, 97, 99,116, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108,
- 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61,
- 32,118, 97,108, 49, 32, 45, 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109,117,108,116,105,
-112,108,121, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,
-102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 42,
- 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,100,105,118,105,100,101, 40,102,108,111, 97,116,
- 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,
-118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 50, 32, 61, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,
-108, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 49, 32, 47,
- 32,118, 97,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,115,105,110,101, 40,102,108,111, 97,116, 32,118,
- 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32,
- 61, 32,115,105,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95, 99,111,115,105,110,101, 40,
-102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,
-111,117,116,118, 97,108, 32, 61, 32, 99,111,115, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,
-116, 97,110,103,101,110,116, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,
-118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,
-105,100, 32,109, 97,116,104, 95, 97,115,105,110, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,
-116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118,
- 97,108, 32, 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 97,115,105,110, 40,118, 97,108, 41,
- 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,
-109, 97,116,104, 95, 97, 99,111,115, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,
-117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108, 32, 60, 61, 32, 49, 46, 48, 32, 38, 38, 32,118, 97,108, 32,
- 62, 61, 32, 45, 49, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 97, 99,111,115, 40,118, 97,108, 41, 59, 10, 9,
-101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,
-104, 95, 97,116, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,
- 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 97,116, 97,110, 40,118, 97,108, 41, 59, 10,125, 10, 10,118,111,
-105,100, 32,109, 97,116,104, 95,112,111,119, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,
-108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 32, 40,118, 97,108,
- 49, 32, 62, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32,112,111,119, 40,118, 97,108, 49, 44, 32,118,
- 97,108, 50, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,
-111,105,100, 32,109, 97,116,104, 95,108,111,103, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118,
- 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108,
- 49, 32, 62, 32, 48, 46, 48, 32, 32, 38, 38, 32,118, 97,108, 50, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116,118, 97,108,
- 61, 32,108,111,103, 50, 40,118, 97,108, 49, 41, 32, 47, 32,108,111,103, 50, 40,118, 97,108, 50, 41, 59, 10, 9,101,108,115,101,
- 10, 9, 9,111,117,116,118, 97,108, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109, 97,120,
- 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111,
- 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40,118, 97,108, 49, 44,
- 32,118, 97,108, 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,109,105,110, 40,102,108,111, 97,116, 32,118,
- 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,
-108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,109,105,110, 40,118, 97,108, 49, 44, 32,118, 97,108, 50, 41, 59, 10,
-125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,114,111,117,110,100, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,
-116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 61, 32,102,108,111,111,114,
- 40,118, 97,108, 32, 43, 32, 48, 46, 53, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,108,101,115,115, 95,116,
-104, 97,110, 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,
-102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 60, 32,118, 97,108, 50, 41,
- 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32,
- 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109, 97,116,104, 95,103,114,101, 97,116,101,114, 95,116,104, 97,110,
- 40,102,108,111, 97,116, 32,118, 97,108, 49, 44, 32,102,108,111, 97,116, 32,118, 97,108, 50, 44, 32,111,117,116, 32,102,108,111,
- 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,105,102, 40,118, 97,108, 49, 32, 62, 32,118, 97,108, 50, 41, 10, 9, 9,
-111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116,118, 97,108, 32, 61, 32, 48,
- 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,113,117,101,101,122,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,102,
-108,111, 97,116, 32,119,105,100,116,104, 44, 32,102,108,111, 97,116, 32, 99,101,110,116,101,114, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 49, 46, 48, 47, 40, 49, 46, 48,
- 32, 43, 32,112,111,119, 40, 50, 46, 55, 49, 56, 50, 56, 49, 56, 51, 44, 32, 45, 40, 40,118, 97,108, 45, 99,101,110,116,101,114,
- 41, 42,119,105,100,116,104, 41, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,100,100,
- 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,
-101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32,
- 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101, 99,
- 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,
-101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,115,117,
- 98, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,
-118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99,
- 32, 61, 32,118, 49, 32, 45, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 40, 97, 98,115, 40,111,117,116,118,101,
- 99, 91, 48, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,118,101, 99, 91, 49, 93, 41, 32, 43, 32, 97, 98,115, 40,111,117,116,
-118,101, 99, 91, 50, 93, 41, 41, 47, 51, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 97,
-118,101,114, 97,103,101, 40,118,101, 99, 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99,
- 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,
-117,116,118,101, 99, 32, 61, 32,118, 49, 32, 43, 32,118, 50, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,
-104, 40,111,117,116,118,101, 99, 41, 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,
-117,116,118,101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,100,111,116, 40,118,101, 99,
- 51, 32,118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,
-111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101,
- 99, 51, 40, 48, 44, 32, 48, 44, 32, 48, 41, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,100,111,116, 40,118, 49, 44, 32,118,
- 50, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95, 99,114,111,115,115, 40,118,101, 99, 51, 32,
-118, 49, 44, 32,118,101, 99, 51, 32,118, 50, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,
-116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32, 99,114,111,115,
-115, 40,118, 49, 44, 32,118, 50, 41, 59, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,111,117,116,118,
-101, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,118,101, 99, 95,109, 97,116,104, 95,110,111,114,109, 97,108,105,122,101, 40,
-118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 44, 32,111,117,116, 32,102,108,111,
- 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,108,101,110,103,116,104, 40,118, 41,
- 59, 10, 9,111,117,116,118,101, 99, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 41, 59, 10,125, 10, 10,118,111,105,
-100, 32,118,101, 99, 95,109, 97,116,104, 95,110,101,103, 97,116,101, 40,118,101, 99, 51, 32,118, 44, 32,111,117,116, 32,118,101,
- 99, 51, 32,111,117,116,118, 41, 10,123, 10, 9,111,117,116,118, 32, 61, 32, 45,118, 59, 10,125, 10, 10,118,111,105,100, 32,110,
-111,114,109, 97,108, 40,118,101, 99, 51, 32,100,105,114, 44, 32,118,101, 99, 51, 32,110,111,114, 44, 32,111,117,116, 32,118,101,
- 99, 51, 32,111,117,116,110,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,100,111,116, 41, 10,123, 10, 9,
-111,117,116,110,111,114, 32, 61, 32,110,111,114, 59, 10, 9,111,117,116,100,111,116, 32, 61, 32, 45,100,111,116, 40,100,105,114,
- 44, 32,110,111,114, 41, 59, 10,125, 10, 10,118,111,105,100, 32, 99,117,114,118,101,115, 95,118,101, 99, 40,102,108,111, 97,116,
- 32,102, 97, 99, 44, 32,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32, 99,117,114,118,101,109,
- 97,112, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 46,120,
- 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40, 40,118,101, 99,
- 46,120, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 44, 32, 48, 46, 48, 41, 41, 46,120, 59, 10, 9,111,117,116,118,101, 99, 46,
-121, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40, 40,118,101,
- 99, 46,121, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 44, 32, 48, 46, 48, 41, 41, 46,121, 59, 10, 9,111,117,116,118,101, 99,
- 46,122, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40, 40,118,
-101, 99, 46,122, 32, 43, 32, 49, 46, 48, 41, 42, 48, 46, 53, 44, 32, 48, 46, 48, 41, 41, 46,122, 59, 10, 10, 9,105,102, 32, 40,
-102, 97, 99, 32, 33, 61, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116,118,101, 99, 32, 61, 32, 40,111,117,116,118,101, 99, 42,102,
- 97, 99, 41, 32, 43, 32, 40,118,101, 99, 42, 40, 49, 46, 48, 45,102, 97, 99, 41, 41, 59, 10, 10,125, 10, 10,118,111,105,100, 32,
- 99,117,114,118,101,115, 95,114,103, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,
-115, 97,109,112,108,101,114, 50, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,
- 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,
-118,101,109, 97,112, 44, 32,118,101, 99, 50, 40,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,
-118,101, 99, 50, 40, 99,111,108, 46,114, 44, 32, 48, 46, 48, 41, 41, 46, 97, 44, 32, 48, 46, 48, 41, 41, 46,114, 59, 10, 9,111,
-117,116, 99,111,108, 46,103, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101,
- 99, 50, 40,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40, 99,111,108, 46,
-103, 44, 32, 48, 46, 48, 41, 41, 46, 97, 44, 32, 48, 46, 48, 41, 41, 46,103, 59, 10, 9,111,117,116, 99,111,108, 46, 98, 32, 61,
- 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40,116,101,120,116,117,114,
-101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99, 50, 40, 99,111,108, 46, 98, 44, 32, 48, 46, 48, 41, 41, 46,
- 97, 44, 32, 48, 46, 48, 41, 41, 46, 98, 59, 10, 10, 9,105,102, 32, 40,102, 97, 99, 32, 33, 61, 32, 49, 46, 48, 41, 10, 9, 9,
-111,117,116, 99,111,108, 32, 61, 32, 40,111,117,116, 99,111,108, 42,102, 97, 99, 41, 32, 43, 32, 40, 99,111,108, 42, 40, 49, 46,
- 48, 45,102, 97, 99, 41, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10,
-118,111,105,100, 32,115,101,116, 95,118, 97,108,117,101, 40,102,108,111, 97,116, 32,118, 97,108, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118, 97,108, 59, 10,125, 10, 10,
-118,111,105,100, 32,115,101,116, 95,114,103, 98, 40,118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,
-111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100,
- 32,115,101,116, 95,114,103, 98, 97, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,
- 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,
-116, 95,118, 97,108,117,101, 95,122,101,114,111, 40,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123,
- 10, 9,111,117,116,118, 97,108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,118, 97,108,117,
-101, 95,111,110,101, 40,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,
-108, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 95,122,101,114,111, 40,111,117,
-116, 32,118,101, 99, 51, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101, 99, 51, 40,
- 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,116, 95,114,103, 98, 97, 95,122,101,114,111, 40,111,117,116, 32,
-118,101, 99, 52, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,118,101, 99, 52, 40, 48, 46,
- 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,108,101,110,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44,
- 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,
-111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44,
- 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 50, 44,
- 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,
-105,100, 32,109,105,120, 95, 97,100,100, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44,
- 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,
-102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116,
- 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50, 44, 32,102, 97, 99,
- 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,
-105,120, 95,109,117,108,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101,
- 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99,
- 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108,
- 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 42, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10,
- 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,
-115, 99,114,101,101,110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99,
- 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32,
- 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102,
- 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52,
- 40, 49, 46, 48, 41, 32, 45, 32, 40,118,101, 99, 52, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99, 42, 40,118,101, 99, 52, 40,
- 49, 46, 48, 41, 32, 45, 32, 99,111,108, 50, 41, 41, 42, 40,118,101, 99, 52, 40, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 49, 41,
- 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,
-120, 95,111,118,101,114,108, 97,121, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,
-118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,
- 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,
-116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,
-111,108, 49, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,
-111,108, 46,114, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9,
-101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32,
- 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,
-117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9,
- 9,111,117,116, 99,111,108, 46,103, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 99,111,108, 50,
- 46,103, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97,
- 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46,103, 41, 41, 42, 40, 49, 46,
- 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 60, 32, 48,
- 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 42, 61, 32,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,
- 42, 99,111,108, 50, 46, 98, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32,
- 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32, 99,111,108, 50, 46, 98, 41,
- 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,
-115,117, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,
-111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,
-108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,
-105,120, 40, 99,111,108, 49, 44, 32, 99,111,108, 49, 32, 45, 32, 99,111,108, 50, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116,
- 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,118, 40,
-102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44,
- 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112,
- 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49,
- 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40,
- 99,111,108, 50, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,114, 32, 61, 32,102, 97, 99,109, 42,111,
-117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,114, 47, 99,111,108, 50, 46,114, 59, 10, 9,
-105,102, 40, 99,111,108, 50, 46,103, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,
-109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46,103, 47, 99,111,108, 50, 46,103,
- 59, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,111,117,116, 99,111,108, 46, 98, 32, 61, 32,
-102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98, 32, 43, 32,102, 97, 99, 42,111,117,116, 99,111,108, 46, 98, 47, 99,111,108,
- 50, 46, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,105,102,102, 40,102,108,111, 97,116, 32,102, 97, 99, 44,
- 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,
-111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44,
- 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 49, 44, 32, 97, 98,115, 40, 99,
-111,108, 49, 32, 45, 32, 99,111,108, 50, 41, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,
-111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100, 97,114,107, 40,102,108,111, 97,116, 32,102, 97,
- 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99,
- 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46,
- 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109,105,110, 40, 99,111,108, 49, 46,
-114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32,
- 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,103,104,116, 40,102,108,111, 97,116, 32,
-102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,
-101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32,
- 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 46,114,103, 98, 32, 61, 32,109, 97,120, 40, 99,111,108,
- 49, 46,114,103, 98, 44, 32, 99,111,108, 50, 46,114,103, 98, 42,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46, 97, 32,
- 61, 32, 99,111,108, 49, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,100,111,100,103,101, 40,102,108,111, 97,
-116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116,
- 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99,
- 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,
-102, 40,111,117,116, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112,
- 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61,
- 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,
-105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46,114, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9,
- 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,
-111,108, 46,114, 32, 61, 32,116,109,112, 59, 10, 9,125, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,103, 32, 33, 61, 32, 48,
- 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,
-108, 50, 46,103, 59, 10, 9, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108,
- 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,
-108, 46,103, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 49, 46,
- 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,
- 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,
-109,112, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59, 10, 9, 9,105,102, 40,116,109,112, 32,
- 60, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,
-101, 32,105,102, 40, 40,116,109,112, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 47,116,109,112, 41, 32, 62, 32, 49, 46, 48, 41,
- 10, 9, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,111,117,
-116, 99,111,108, 46, 98, 32, 61, 32,116,109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95, 98,117,114,
-110, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108,
- 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,
-109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,116,109,112, 44, 32,102,
- 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49,
- 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,114, 59, 10, 9,105,102,
- 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32, 48, 46, 48, 59, 10, 9,
-101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,117,116,
- 99,111,108, 46,114, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61,
- 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,116, 99,
-111,108, 46,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,114, 32, 61, 32,116,
-109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46,103, 59, 10, 9,
-105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61, 32, 48, 46, 48, 59,
- 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45, 32,111,
-117,116, 99,111,108, 46,103, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46,103,
- 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,111,117,
-116, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 32, 61,
- 32,116,109,112, 59, 10, 10, 9,116,109,112, 32, 61, 32,102, 97, 99,109, 32, 43, 32,102, 97, 99, 42, 99,111,108, 50, 46, 98, 59,
- 10, 9,105,102, 40,116,109,112, 32, 60, 61, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 32, 61, 32, 48, 46,
- 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 40,116,109,112, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32, 40, 49, 46, 48, 32, 45,
- 32,111,117,116, 99,111,108, 46, 98, 41, 47,116,109,112, 41, 41, 32, 60, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108,
- 46, 98, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,116,109,112, 32, 62, 32, 49, 46, 48, 41, 10, 9, 9,
-111,117,116, 99,111,108, 46, 98, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98,
- 32, 61, 32,116,109,112, 59, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,104,117,101, 40,102,108,111, 97,116, 32,102, 97,
- 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99,
- 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46,
- 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,
- 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,
-115,118, 50, 44, 32,116,109,112, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50,
- 41, 59, 10, 10, 9,105,102, 40,104,115,118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,
-111, 95,104,115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,
-118, 50, 46,120, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,116,109,112, 41, 59, 32, 10, 10,
- 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,109,112, 44, 32,102, 97, 99, 41,
- 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,125, 10,125, 10, 10,118,111,105,
-100, 32,109,105,120, 95,115, 97,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,
-118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,
- 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,102,108,111, 97,
-116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,
-111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,
-115,118, 40,111,117,116, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, 9,105,102, 40,104,115,118, 46,121, 32, 33, 61, 32, 48,
- 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10,
- 10, 9, 9,104,115,118, 46,121, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,121, 32, 43, 32,102, 97, 99, 42,104,115,118, 50,
- 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 9,
-125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,118, 97,108, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99,
- 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,
-111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48,
- 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,118,101,
- 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 49, 44, 32,
-104,115,118, 41, 59, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10,
- 9,104,115,118, 46,122, 32, 61, 32,102, 97, 99,109, 42,104,115,118, 46,122, 32, 43, 32,102, 97, 99, 42,104,115,118, 50, 46,122,
- 59, 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,
-111,105,100, 32,109,105,120, 95, 99,111,108,111,114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,
-108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,
-123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,
-102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,111,117,116, 99,111,108,
- 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,118,101, 99, 52, 32,104,115,118, 44, 32,104,115,118, 50, 44, 32,116,109,112, 59, 10,
- 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 50, 44, 32,104,115,118, 50, 41, 59, 10, 10, 9,105,102, 40,104,115,
-118, 50, 46,121, 32, 33, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,103, 98, 95,116,111, 95,104,115,118, 40,111,117,116, 99,
-111,108, 44, 32,104,115,118, 41, 59, 10, 9, 9,104,115,118, 46,120, 32, 61, 32,104,115,118, 50, 46,120, 59, 10, 9, 9,104,115,
-118, 46,121, 32, 61, 32,104,115,118, 50, 46,121, 59, 10, 9, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,115,118, 44, 32,
-116,109,112, 41, 59, 32, 10, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40,111,117,116, 99,111,108, 44, 32,116,
-109,112, 44, 32,102, 97, 99, 41, 59, 10, 9, 9,111,117,116, 99,111,108, 46, 97, 32, 61, 32, 99,111,108, 49, 46, 97, 59, 10, 9,
-125, 10,125, 10, 10,118,111,105,100, 32,109,105,120, 95,115,111,102,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101,
- 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,
- 99,111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46,
- 48, 41, 59, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99, 59, 10, 10, 9,118,
-101, 99, 52, 32,111,110,101, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,118,101, 99, 52, 32,115, 99,114, 61, 32,111,
-110,101, 32, 45, 32, 40,111,110,101, 32, 45, 32, 99,111,108, 50, 41, 42, 40,111,110,101, 32, 45, 32, 99,111,108, 49, 41, 59, 10,
- 9,111,117,116, 99,111,108, 32, 61, 32,102, 97, 99,109, 42, 99,111,108, 49, 32, 43, 32,102, 97, 99, 42, 40, 40,111,110,101, 32,
- 45, 32, 99,111,108, 49, 41, 42, 99,111,108, 50, 42, 99,111,108, 49, 32, 43, 32, 99,111,108, 49, 42,115, 99,114, 41, 59, 10,125,
- 10, 10,118,111,105,100, 32,109,105,120, 95,108,105,110,101, 97,114, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99,
- 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,
-111,108, 41, 10,123, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48,
- 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,114, 32,
- 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46,114, 61, 32, 99,111,108, 49, 46,114, 32, 43, 32,102, 97, 99, 42,
- 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,114, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,
-116, 99,111,108, 46,114, 61, 32, 99,111,108, 49, 46,114, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,
-114, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46,103, 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,
-111,117,116, 99,111,108, 46,103, 61, 32, 99,111,108, 49, 46,103, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108,
- 50, 46,103, 32, 45, 32, 48, 46, 53, 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46,103, 61, 32, 99,
-111,108, 49, 46,103, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46,103, 41, 32, 45, 32, 49, 46, 48, 41,
- 59, 10, 10, 9,105,102, 40, 99,111,108, 50, 46, 98, 32, 62, 32, 48, 46, 53, 41, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 61,
- 32, 99,111,108, 49, 46, 98, 32, 43, 32,102, 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46, 98, 32, 45, 32, 48, 46, 53,
- 41, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 46, 98, 61, 32, 99,111,108, 49, 46, 98, 32, 43, 32,102,
- 97, 99, 42, 40, 50, 46, 48, 42, 40, 99,111,108, 50, 46, 98, 41, 32, 45, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100,
- 32,118, 97,108,116,111,114,103, 98, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32, 99,
-111,108,111,114,109, 97,112, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,111,117,116, 97,108,112,104, 97, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,116,101,120,116,117,114,
-101, 50, 68, 40, 99,111,108,111,114,109, 97,112, 44, 32,118,101, 99, 50, 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 41, 59, 10, 9,
-111,117,116, 97,108,112,104, 97, 32, 61, 32,111,117,116, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,114,103, 98,
-116,111, 98,119, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,
-108, 41, 32, 32, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32, 99,111,108,111,114, 46,114, 42, 48, 46, 51, 53, 32, 43, 32,
- 99,111,108,111,114, 46,103, 42, 48, 46, 52, 53, 32, 43, 32, 99,111,108,111,114, 46, 98, 42, 48, 46, 50, 59, 32, 47, 42, 32,107,
-101,101,112, 32,116,104,101,115,101, 32,102, 97, 99,116,111,114,115, 32,105,110, 32,115,121,110, 99, 32,119,105,116,104, 32,116,
-101,120,116,117,114,101, 46,104, 58, 82, 71, 66, 84, 79, 66, 87, 32, 42, 47, 10,125, 10, 10,118,111,105,100, 32,105,110,118,101,
-114,116, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52,
- 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 46,120,121,122, 32, 61, 32,109,105,120, 40, 99,111,108,
- 46,120,121,122, 44, 32,118,101, 99, 51, 40, 49, 46, 48, 44, 32, 49, 46, 48, 44, 32, 49, 46, 48, 41, 32, 45, 32, 99,111,108, 46,
-120,121,122, 44, 32,102, 97, 99, 41, 59, 10, 9,111,117,116, 99,111,108, 46,119, 32, 61, 32, 99,111,108, 46,119, 59, 10,125, 10,
- 10,118,111,105,100, 32,104,117,101, 95,115, 97,116, 40,102,108,111, 97,116, 32,104,117,101, 44, 32,102,108,111, 97,116, 32,115,
- 97,116, 44, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52,
- 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32,104,
-115,118, 59, 10, 10, 9,114,103, 98, 95,116,111, 95,104,115,118, 40, 99,111,108, 44, 32,104,115,118, 41, 59, 10, 10, 9,104,115,
-118, 91, 48, 93, 32, 43, 61, 32, 40,104,117,101, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,105,102, 40,104,115,118, 91, 48, 93, 62,
- 49, 46, 48, 41, 32,104,115,118, 91, 48, 93, 45, 61, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 48, 93,
- 60, 48, 46, 48, 41, 32,104,115,118, 91, 48, 93, 43, 61, 32, 49, 46, 48, 59, 10, 9,104,115,118, 91, 49, 93, 32, 42, 61, 32,115,
- 97,116, 59, 10, 9,105,102, 40,104,115,118, 91, 49, 93, 62, 49, 46, 48, 41, 32,104,115,118, 91, 49, 93, 61, 32, 49, 46, 48, 59,
- 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 49, 93, 60, 48, 46, 48, 41, 32,104,115,118, 91, 49, 93, 61, 32, 48, 46, 48,
- 59, 10, 9,104,115,118, 91, 50, 93, 32, 42, 61, 32,118, 97,108,117,101, 59, 10, 9,105,102, 40,104,115,118, 91, 50, 93, 62, 49,
- 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 49, 46, 48, 59, 32,101,108,115,101, 32,105,102, 40,104,115,118, 91, 50, 93, 60,
- 48, 46, 48, 41, 32,104,115,118, 91, 50, 93, 61, 32, 48, 46, 48, 59, 10, 10, 9,104,115,118, 95,116,111, 95,114,103, 98, 40,104,
-115,118, 44, 32,111,117,116, 99,111,108, 41, 59, 10, 10, 9,111,117,116, 99,111,108, 32, 61, 32,109,105,120, 40, 99,111,108, 44,
- 32,111,117,116, 99,111,108, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,101,112, 97,114, 97,116,101, 95,
-114,103, 98, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,114, 44, 32,111,117,116, 32,102,
-108,111, 97,116, 32,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 98, 41, 10,123, 10, 9,114, 32, 61, 32, 99,111,108, 46,
-114, 59, 10, 9,103, 32, 61, 32, 99,111,108, 46,103, 59, 10, 9, 98, 32, 61, 32, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,
-105,100, 32, 99,111,109, 98,105,110,101, 95,114,103, 98, 40,102,108,111, 97,116, 32,114, 44, 32,102,108,111, 97,116, 32,103, 44,
- 32,102,108,111, 97,116, 32, 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108, 41, 10,123, 10, 9, 99,111,108, 32, 61,
- 32,118,101, 99, 52, 40,114, 44, 32,103, 44, 32, 98, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,111,117,116,
-112,117,116, 95,110,111,100,101, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 44, 32,
-111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,114,103, 98, 32, 61, 32,118,101, 99,
- 52, 40,114,103, 98, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 32, 84, 69, 88, 84, 85, 82, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 10, 10,118,111,
-105,100, 32,116,101,120,116,117,114,101, 95,102,108,105,112, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,
-111,117,116, 32,118,101, 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99,
- 46,121,120,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,108,105,110, 40,
-118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,
-117,116,118, 97,108, 32, 61, 32, 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 59, 10,125, 10, 10,118,111,105,100,
- 32,116,101,120,116,117,114,101, 95, 98,108,101,110,100, 95,113,117, 97,100, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,
-116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,109, 97,120, 40,
- 40, 49, 46, 48, 43,118,101, 99, 46,120, 41, 47, 50, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10, 9,111,117,116,118, 97,108, 32, 42,
- 61, 32,111,117,116,118, 97,108, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,119,111,111,100, 95,115,
-105,110, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,
-116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123,
- 10, 9,102,108,111, 97,116, 32, 97, 32, 61, 32,115,113,114,116, 40,118,101, 99, 46,120, 42,118,101, 99, 46,120, 32, 43, 32,118,
-101, 99, 46,121, 42,118,101, 99, 46,121, 32, 43, 32,118,101, 99, 46,122, 42,118,101, 99, 46,122, 41, 42, 50, 48, 46, 48, 59, 10,
- 9,102,108,111, 97,116, 32,119,105, 32, 61, 32, 48, 46, 53, 32, 43, 32, 48, 46, 53, 42,115,105,110, 40, 97, 41, 59, 10, 10, 9,
-118, 97,108,117,101, 32, 61, 32,119,105, 59, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40,119,105, 44, 32,119,105,
- 44, 32,119,105, 44, 32, 49, 46, 48, 41, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 44, 32,
- 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120,116,117,114,101, 95,105,109, 97,103,101,
- 40,118,101, 99, 51, 32,118,101, 99, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,118, 97,108,117,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,
-101, 99, 51, 32,110,111,114,109, 97,108, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68,
- 40,105,109, 97, 44, 32, 40,118,101, 99, 46,120,121, 32, 43, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 41, 42,
- 48, 46, 53, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 59, 10, 10, 9,110,111,114,109, 97,108, 46,120, 32, 61,
- 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46,114, 32, 45, 32, 48, 46, 53, 41, 59, 10, 9,110,111,114,109, 97,108, 46,121, 32,
- 61, 32, 50, 46, 48, 42, 40, 48, 46, 53, 32, 45, 32, 99,111,108,111,114, 46,103, 41, 59, 10, 9,110,111,114,109, 97,108, 46,122,
- 32, 61, 32, 50, 46, 48, 42, 40, 99,111,108,111,114, 46, 98, 32, 45, 32, 48, 46, 53, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 77, 84, 69, 88, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 47, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111,114, 99,111, 40,118,101, 99, 51, 32, 97,116,116,111,114, 99,111, 44,
- 32,111,117,116, 32,118,101, 99, 51, 32,111,114, 99,111, 41, 10,123, 10, 9,111,114, 99,111, 32, 61, 32, 97,116,116,111,114, 99,
-111, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,117,118, 40,118,101, 99, 50, 32, 97,116,116,117,118, 44, 32,
-111,117,116, 32,118,101, 99, 51, 32,117,118, 41, 10,123, 10, 9, 47, 42, 32,100,105,115, 97, 98,108,101,100, 32,102,111,114, 32,
-110,111,119, 44, 32,119,111,114,107,115, 32,116,111,103,101,116,104,101,114, 32,119,105,116,104, 32,108,101, 97,118,105,110,103,
- 32,111,117,116, 32,109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 10, 9, 32, 32, 32,117,118, 32, 61, 32,118,101,
- 99, 51, 40, 97,116,116,117,118, 42, 50, 46, 48, 32, 45, 32,118,101, 99, 50, 40, 49, 46, 48, 44, 32, 49, 46, 48, 41, 44, 32, 48,
- 46, 48, 41, 59, 32, 42, 47, 10, 9,117,118, 32, 61, 32,118,101, 99, 51, 40, 97,116,116,117,118, 44, 32, 48, 46, 48, 41, 59, 10,
-125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,
-111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 99,111,114,114,101,115,
-112,111,110,100,115, 32,116,111, 32,115,104,105, 45, 62,111,114,110, 44, 32,119,104,105, 99,104, 32,105,115, 32,110,101,103, 97,
-116,101,100, 32,115,111, 32, 99, 97,110, 99,101,108,115, 10, 9, 32, 32, 32,111,117,116, 32, 98,108,101,110,100,101,114, 32,110,
-111,114,109, 97,108, 32,110,101,103, 97,116,105,111,110, 32, 42, 47, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,110,
-111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,
-116, 97,110,103,101,110,116, 40,118,101, 99, 52, 32,116, 97,110,103,101,110,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,
-117,116,116, 97,110,103,101,110,116, 41, 10,123, 10, 9,111,117,116,116, 97,110,103,101,110,116, 32, 61, 32,110,111,114,109, 97,
-108,105,122,101, 40,116, 97,110,103,101,110,116, 46,120,121,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111,
- 95,103,108,111, 98, 97,108, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111,
- 44, 32,111,117,116, 32,118,101, 99, 51, 32,103,108,111, 98, 97,108, 41, 10,123, 10, 9,103,108,111, 98, 97,108, 32, 61, 32, 40,
-118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10,125,
- 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,111, 98,106,101, 99,116, 40,109, 97,116, 52, 32,118,105,101,119,105,110,118,
-109, 97,116, 44, 32,109, 97,116, 52, 32,111, 98,105,110,118,109, 97,116, 44, 32,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116,
- 32,118,101, 99, 51, 32,111, 98,106,101, 99,116, 41, 10,123, 10, 9,111, 98,106,101, 99,116, 32, 61, 32, 40,111, 98,105,110,118,
-109, 97,116, 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 99,111, 44, 32, 49, 46, 48, 41, 41, 41, 46,
-120,121,122, 59, 10,125, 10, 10,118,111,105,100, 32,116,101,120, 99,111, 95,114,101,102,108, 40,118,101, 99, 51, 32,118,110, 44,
- 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,111,117,116, 32,118,101, 99, 51, 32,114,101,102, 41, 10,123, 10, 9,114,101,102,
- 32, 61, 32,118,105,101,119, 32, 45, 32, 50, 46, 48, 42,100,111,116, 40,118,110, 44, 32,118,105,101,119, 41, 42,118,110, 59, 10,
-125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,110,111,114,109, 40,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,
-111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9, 47, 42, 32, 98,108,101,110,100,101,
-114, 32,114,101,110,100,101,114, 32,110,111,114,109, 97,108, 32,105,115, 32,110,101,103, 97,116,101,100, 32, 42, 47, 10, 9,111,
-117,116,110,111,114,109, 97,108, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,110,111,114,109, 97,108, 41, 59, 10,125,
- 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 98,108,101,110,100, 40,118,101, 99, 51, 32,111,117,116, 99,111,
-108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,
-116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116,
- 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49,
- 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43,
- 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,109,
-117,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111,
- 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110,
- 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97,
- 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,
- 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,
-118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 99,114,101,101,110, 40,118,101, 99, 51, 32,111,117,116, 99,111,108,
- 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116,
- 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,
-102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46,
- 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32, 40,118,
-101, 99, 51, 40,102, 97, 99,109, 41, 32, 43, 32,102, 97, 99,116, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,116,101,
-120, 99,111,108, 41, 41, 42, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,
-118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,111,118,101,114,108, 97,121, 40,118,101, 99, 51, 32,111,117,116, 99,111,
-108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,
-116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116,
- 32,102, 97, 99,109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49,
- 46, 48, 45,102, 97, 99,103, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46,114, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,
-105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102,
- 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,114, 32, 61,
- 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,
-101,120, 99,111,108, 46,114, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46,114, 41, 59, 10, 10, 9,105,102,
- 40,111,117,116, 99,111,108, 46,103, 32, 60, 32, 48, 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32,111,117,116,
- 99,111,108, 46,103, 42, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 41,
- 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,108, 46,103, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32,
- 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46,103, 41, 41, 42, 40, 49, 46,
- 48, 32, 45, 32,111,117,116, 99,111,108, 46,103, 41, 59, 10, 10, 9,105,102, 40,111,117,116, 99,111,108, 46, 98, 32, 60, 32, 48,
- 46, 53, 41, 10, 9, 9,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 42, 40,102, 97, 99,109, 32, 43,
- 32, 50, 46, 48, 42,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 41, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,
-111,108, 46, 98, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97, 99,109, 32, 43, 32, 50, 46, 48, 42,102, 97, 99,116, 42, 40, 49,
- 46, 48, 32, 45, 32,116,101,120, 99,111,108, 46, 98, 41, 41, 42, 40, 49, 46, 48, 32, 45, 32,111,117,116, 99,111,108, 46, 98, 41,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,117, 98, 40,118,101, 99, 51, 32,111,117,116, 99,
-111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111,
- 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,105,110, 99,111,
-108, 32, 61, 32, 45,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,
-125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95, 97,100,100, 40,118,101, 99, 51, 32,111,117,116, 99,111,108,
- 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116,
- 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,105,110, 99,111,108, 32,
- 61, 32,102, 97, 99,116, 42,102, 97, 99,103, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,
-118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,118, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,
-101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97,
- 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,
-109, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102,
- 97, 99,116, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,114, 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108,
- 46,114, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,114, 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108,
- 46,114, 47,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46,103, 32, 33, 61, 32, 48, 46, 48,
- 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46,103, 32, 43, 32,102, 97, 99,116,
- 42,111,117,116, 99,111,108, 46,103, 47,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40,116,101,120, 99,111,108, 46, 98,
- 32, 33, 61, 32, 48, 46, 48, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 46, 98,
- 32, 43, 32,102, 97, 99,116, 42,111,117,116, 99,111,108, 46, 98, 47,116,101,120, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,111,
-105,100, 32,109,116,101,120, 95,114,103, 98, 95,100,105,102,102, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101,
- 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,
-103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109,
- 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97,
- 99,116, 59, 10, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116,
- 42, 97, 98,115, 40,116,101,120, 99,111,108, 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,
-116,101,120, 95,114,103, 98, 95,100, 97,114,107, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,
-101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,
-117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 44, 32, 99,111,
-108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102,
- 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114, 59, 10, 9,105,102, 40,
- 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32, 99,111,108, 59, 32,101,
-108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 59, 10, 9, 99,111,108, 32, 61, 32,102,
- 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46,103,
- 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,103, 32, 61, 32,
-111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46, 98, 59, 10,
- 9,105,102, 40, 99,111,108, 32, 60, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46, 98, 32, 61, 32, 99,111,
-108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98, 59, 10,125, 10, 10,118,
-111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,108,105,103,104,116, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,
-118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102,
- 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97,
- 99,109, 44, 32, 99,111,108, 59, 10, 10, 9,102, 97, 99,116, 32, 42, 61, 32,102, 97, 99,103, 59, 10, 9,102, 97, 99,109, 32, 61,
- 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,114,
- 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46,114, 41, 32,105,110, 99,111,108, 46,114, 32, 61, 32,
- 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46,114, 32, 61, 32,111,117,116, 99,111,108, 46,114, 59, 10, 9, 99,
-111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 46,103, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,
-116, 99,111,108, 46,103, 41, 32,105,110, 99,111,108, 46,103, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,
-108, 46,103, 32, 61, 32,111,117,116, 99,111,108, 46,103, 59, 10, 9, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,
-111,108, 46, 98, 59, 10, 9,105,102, 40, 99,111,108, 32, 62, 32,111,117,116, 99,111,108, 46, 98, 41, 32,105,110, 99,111,108, 46,
- 98, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108, 46, 98, 32, 61, 32,111,117,116, 99,111,108, 46, 98,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,104,117,101, 40,118,101, 99, 51, 32,111,117,116, 99,
-111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111,
- 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52,
- 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95,104,117,101, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,
-111,117,116, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44,
- 32, 99,111,108, 41, 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,
-118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115, 97,116, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,
-101, 99, 51, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97,
- 99,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59,
- 10, 10, 9,109,105,120, 95,115, 97,116, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,
-108, 44, 32, 49, 46, 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41,
- 59, 10, 9,105,110, 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,
-109,116,101,120, 95,114,103, 98, 95,118, 97,108, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,
-101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,
-117,116, 32,118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,
-120, 95,118, 97,108, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46,
- 48, 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110,
- 99,111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,
-114,103, 98, 95, 99,111,108,111,114, 40,118,101, 99, 51, 32,111,117,116, 99,111,108, 44, 32,118,101, 99, 51, 32,116,101,120, 99,
-111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,
-118,101, 99, 51, 32,105,110, 99,111,108, 41, 10,123, 10, 9,118,101, 99, 52, 32, 99,111,108, 59, 10, 10, 9,109,105,120, 95, 99,
-111,108,111,114, 40,102, 97, 99,116, 42,102, 97, 99,103, 44, 32,118,101, 99, 52, 40,111,117,116, 99,111,108, 44, 32, 49, 46, 48,
- 41, 44, 32,118,101, 99, 52, 40,116,101,120, 99,111,108, 44, 32, 49, 46, 48, 41, 44, 32, 99,111,108, 41, 59, 10, 9,105,110, 99,
-111,108, 46,114,103, 98, 32, 61, 32, 99,111,108, 46,114,103, 98, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118,
- 97,108,117,101, 95,118, 97,114,115, 40,105,110,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,
-116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99,109, 41, 10,123, 10, 9,102, 97, 99,116, 32,
- 42, 61, 32, 97, 98,115, 40,102, 97, 99,103, 41, 59, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 45,102, 97, 99,116, 59, 10,
- 10, 9,105,102, 40,102, 97, 99,103, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,102,108,111, 97,116, 32,116,109,112, 32, 61,
- 32,102, 97, 99,116, 59, 10, 9, 9,102, 97, 99,116, 32, 61, 32,102, 97, 99,109, 59, 10, 9, 9,102, 97, 99,109, 32, 61, 32,116,
-109,112, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 98,108,101,110,100, 40,
-102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,
-116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,
- 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,
-118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,110, 99,111,108, 32,
- 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 59, 10,125, 10, 10,
-118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,109,117,108, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108,
- 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,
-116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,
-116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102,
- 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,109, 32, 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59,
- 10, 9,105,110, 99,111,108, 32, 61, 32, 40,102, 97, 99,109, 32, 43, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 41, 42,111,
-117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115, 99,114,101,101,110,
- 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111,
- 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,
-110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101,
- 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,109, 32,
- 61, 32, 49, 46, 48, 32, 45, 32,102, 97, 99,103, 59, 10, 9,105,110, 99,111,108, 32, 61, 32, 49, 46, 48, 32, 45, 32, 40,102, 97,
- 99,109, 32, 43, 32,102, 97, 99,116, 42, 40, 49, 46, 48, 32, 45, 32,116,101,120, 99,111,108, 41, 41, 42, 40, 49, 46, 48, 32, 45,
- 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115,117, 98,
- 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111,
- 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,
-110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101,
- 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,116, 32,
- 61, 32, 45,102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,
-111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 97,100,100, 40,102,
-108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116,
- 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,
-111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118,
- 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102, 97, 99,116, 32, 61, 32,
-102, 97, 99,116, 59, 10, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 32, 43, 32,111,117,116,
- 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,118, 40,102,108,111, 97,
-116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 97,
- 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110, 99,111,108, 41,
- 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101, 95,118, 97,114,115,
- 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,102, 40,116,101,120, 99,111,108, 32,
- 33, 61, 32, 48, 46, 48, 41, 10, 9, 9,105,110, 99,111,108, 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,
-102, 97, 99,116, 42,111,117,116, 99,111,108, 47,116,101,120, 99,111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,105,110, 99,111,
-108, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,105,102,102,
- 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,102,108,111,
- 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,
-110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,108,117,101,
- 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,105,110, 99,111,108,
- 32, 61, 32,102, 97, 99,109, 42,111,117,116, 99,111,108, 32, 43, 32,102, 97, 99,116, 42, 97, 98,115, 40,116,101,120, 99,111,108,
- 32, 45, 32,111,117,116, 99,111,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,100,
- 97,114,107, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,
-102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,
-116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,
-108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102,108,
-111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 60,
- 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108,
- 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,108,105,
-103,104,116, 40,102,108,111, 97,116, 32,111,117,116, 99,111,108, 44, 32,102,108,111, 97,116, 32,116,101,120, 99,111,108, 44, 32,
-102,108,111, 97,116, 32,102, 97, 99,116, 44, 32,102,108,111, 97,116, 32,102, 97, 99,103, 44, 32,111,117,116, 32,102,108,111, 97,
-116, 32,105,110, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,109, 59, 10, 9,109,116,101,120, 95,118, 97,
-108,117,101, 95,118, 97,114,115, 40,102, 97, 99,116, 44, 32,102, 97, 99,103, 44, 32,102, 97, 99,109, 41, 59, 10, 10, 9,102,108,
-111, 97,116, 32, 99,111,108, 32, 61, 32,102, 97, 99,116, 42,116,101,120, 99,111,108, 59, 10, 9,105,102, 40, 99,111,108, 32, 62,
- 32,111,117,116, 99,111,108, 41, 32,105,110, 99,111,108, 32, 61, 32, 99,111,108, 59, 32,101,108,115,101, 32,105,110, 99,111,108,
- 32, 61, 32,111,117,116, 99,111,108, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 99,108,
- 97,109,112, 95,112,111,115,105,116,105,118,101, 40,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,
-116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,116,102, 97, 99, 32, 61, 32,109, 97,120, 40,102, 97, 99, 44, 32, 48,
- 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95, 99,108, 97,109,112, 40,102,108,
-111, 97,116, 32,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,111,117,
-116,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40,102, 97, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10,125, 10, 10,
-118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,100,105,118,105,100,101, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,
-111,117,116, 32,102,108,111, 97,116, 32,111,117,116,104, 97,114, 41, 10,123, 10, 9,111,117,116,104, 97,114, 32, 61, 32,104, 97,
-114, 47, 49, 50, 56, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,104, 97,114, 95,109,117,108,116,105,112,
-108,121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,104, 97,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,
-116,104, 97,114, 41, 10,123, 10, 9,104, 97,114, 32, 42, 61, 32, 49, 50, 56, 46, 48, 59, 10, 10, 9,105,102, 40,104, 97,114, 32,
- 60, 32, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,104, 97,
-114, 32, 62, 32, 53, 49, 49, 46, 48, 41, 32,111,117,116,104, 97,114, 32, 61, 32, 53, 49, 49, 46, 48, 59, 10, 9,101,108,115,101,
- 32,111,117,116,104, 97,114, 32, 61, 32,104, 97,114, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 97,108,112,104,
- 97, 95,102,114,111,109, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 97,
-108,112,104, 97, 41, 10,123, 10, 9, 97,108,112,104, 97, 32, 61, 32, 99,111,108, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,
-109,116,101,120, 95, 97,108,112,104, 97, 95,116,111, 95, 99,111,108, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,102,108,111, 97,
-116, 32, 97,108,112,104, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116,
- 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 44, 32, 97,108,112,104, 97, 41, 59, 10,125, 10, 10,118,
-111,105,100, 32,109,116,101,120, 95,114,103, 98,116,111,105,110,116, 40,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,
-102,108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,105,110,116,101,110,115,105,116,121, 32, 61, 32,
-100,111,116, 40,118,101, 99, 51, 40, 48, 46, 51, 53, 44, 32, 48, 46, 52, 53, 44, 32, 48, 46, 50, 41, 44, 32,114,103, 98, 46,114,
-103, 98, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,105,110,118,101,114,116, 40,102,
-108,111, 97,116, 32,105,110,118, 97,108,117,101, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108,117,101,
- 41, 10,123, 10, 9,111,117,116,118, 97,108,117,101, 32, 61, 32, 49, 46, 48, 32, 45, 32,105,110,118, 97,108,117,101, 59, 10,125,
- 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,105,110,118,101,114,116, 40,118,101, 99, 52, 32,105,110,114,103,
- 98, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98, 41, 10,123, 10, 9,111,117,116,114,103, 98, 32, 61, 32,
-118,101, 99, 52, 40,118,101, 99, 51, 40, 49, 46, 48, 41, 32, 45, 32,105,110,114,103, 98, 46,114,103, 98, 44, 32,105,110,114,103,
- 98, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,118, 97,108,117,101, 95,115,116,101,110, 99,105,108,
- 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,102,108,111, 97,116, 32,105,110,116,101,110,115,105,116,121, 44,
- 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111,117,116, 32,102,108,111, 97,116,
- 32,111,117,116,105,110,116,101,110,115,105,116,121, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,105,
-110,116,101,110,115,105,116,121, 59, 10, 9,111,117,116,105,110,116,101,110,115,105,116,121, 32, 61, 32,105,110,116,101,110,115,
-105,116,121, 42,115,116,101,110, 99,105,108, 59, 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,
-105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,114,103, 98, 95,115,116,101,110, 99,105,
-108, 40,102,108,111, 97,116, 32,115,116,101,110, 99,105,108, 44, 32,118,101, 99, 52, 32,114,103, 98, 44, 32,111,117,116, 32,102,
-108,111, 97,116, 32,111,117,116,115,116,101,110, 99,105,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,114,103, 98,
- 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,116, 32, 61, 32,114,103, 98, 46, 97, 59, 10, 9,111,117,116,114,103, 98,
- 32, 61, 32,118,101, 99, 52, 40,114,103, 98, 46,114,103, 98, 44, 32,114,103, 98, 46, 97, 42,115,116,101,110, 99,105,108, 41, 59,
- 10, 9,111,117,116,115,116,101,110, 99,105,108, 32, 61, 32,115,116,101,110, 99,105,108, 42,102, 97, 99,116, 59, 10,125, 10, 10,
-118,111,105,100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,111,102,115, 40,118,101, 99, 51, 32,116,101,120, 99,111,
- 44, 32,118,101, 99, 51, 32,111,102,115, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123,
- 10, 9,111,117,116,116,101,120, 99,111, 32, 61, 32,116,101,120, 99,111, 32, 43, 32,111,102,115, 59, 10,125, 10, 10,118,111,105,
-100, 32,109,116,101,120, 95,109, 97,112,112,105,110,103, 95,115,105,122,101, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,
-118,101, 99, 51, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,116,101,120, 99,111, 41, 10,123, 10,
- 9,111,117,116,116,101,120, 99,111, 32, 61, 32,115,105,122,101, 42,116,101,120, 99,111, 59, 10,125, 10, 10,118,111,105,100, 32,
-109,116,101,120, 95, 50,100, 95,109, 97,112,112,105,110,103, 40,118,101, 99, 51, 32,118,101, 99, 44, 32,111,117,116, 32,118,101,
- 99, 51, 32,111,117,116,118,101, 99, 41, 10,123, 10, 9,111,117,116,118,101, 99, 32, 61, 32,118,101, 99, 51, 40,118,101, 99, 46,
-120,121, 42, 48, 46, 53, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 32, 48, 46, 53, 41, 44, 32,118,101, 99, 46,122, 41, 59,
- 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,105,109, 97,103,101, 40,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,
-115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118, 97,108,117,101, 44, 32,
-111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,
-114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118, 97,108,117,101, 32, 61, 32, 49, 46,
- 48, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,116,101,120, 99,
-111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,
-108, 41, 10,123, 10, 9, 47, 47, 32, 84,104,101, 32,105,110,118,101,114,116, 32,111,102, 32,116,104,101, 32,114,101,100, 32, 99,
-104, 97,110,110,101,108, 32,105,115, 32,116,111, 32,109, 97,107,101, 10, 9, 47, 47, 32,116,104,101, 32,110,111,114,109, 97,108,
- 32,109, 97,112, 32, 99,111,109,112,108,105, 97,110,116, 32,119,105,116,104, 32,116,104,101, 32,111,117,116,115,105,100,101, 32,
-119,111,114,108,100, 46, 10, 9, 47, 47, 32, 73,116, 32,110,101,101,100,115, 32,116,111, 32, 98,101, 32,100,111,110,101, 32, 98,
-101, 99, 97,117,115,101, 32,105,110, 32, 66,108,101,110,100,101,114, 10, 9, 47, 47, 32,116,104,101, 32,110,111,114,109, 97,108,
- 32,117,115,101,100, 32,112,111,105,110,116,115, 32,105,110,119, 97,114,100, 46, 10, 9, 47, 47, 32, 83,104,111,117,108,100, 32,
-116,104,105,115, 32,101,118,101,114, 32, 99,104, 97,110,103,101, 32,116,104,105,115, 32,110,101,103, 97,116,101, 32,109,117,115,
-116, 32, 98,101, 32,114,101,109,111,118,101,100, 46, 10, 32, 32, 32, 32,118,101, 99, 52, 32, 99,111,108,111,114, 32, 61, 32,116,
-101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,110,111,114,109, 97,108,
- 32, 61, 32, 50, 46, 48, 42, 40,118,101, 99, 51, 40, 45, 99,111,108,111,114, 46,114, 44, 32, 99,111,108,111,114, 46,103, 44, 32,
- 99,111,108,111,114, 46, 98, 41, 32, 45, 32,118,101, 99, 51, 40, 45, 48, 46, 53, 44, 32, 48, 46, 53, 44, 32, 48, 46, 53, 41, 41,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,110,111,114,109, 97,108,115, 95,105,110,105,116,
- 40, 32,118,101, 99, 51, 32,118, 78, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78,111,114,103, 44, 32,111,117,116, 32,118,
-101, 99, 51, 32,118, 78, 97, 99, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,
-117,100,101, 32, 41, 10,123, 10, 9,118, 78,111,114,103, 32, 61, 32,118, 78, 59, 10, 9,118, 78, 97, 99, 99, 32, 61, 32,118, 78,
- 59, 10, 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10, 47, 42, 42, 32,
-104,101,108,112,101,114, 32,109,101,116,104,111,100, 32,116,111, 32,101,120,116,114, 97, 99,116, 32,116,104,101, 32,117,112,112,
-101,114, 32,108,101,102,116, 32, 51,120, 51, 32,109, 97,116,114,105,120, 32,102,114,111,109, 32, 97, 32, 52,120, 52, 32,109, 97,
-116,114,105,120, 32, 42, 47, 10,109, 97,116, 51, 32,116,111, 95,109, 97,116, 51, 40,109, 97,116, 52, 32,109, 52, 41, 10,123, 10,
- 9,109, 97,116, 51, 32,109, 51, 59, 10, 9,109, 51, 91, 48, 93, 32, 61, 32,109, 52, 91, 48, 93, 46,120,121,122, 59, 10, 9,109,
- 51, 91, 49, 93, 32, 61, 32,109, 52, 91, 49, 93, 46,120,121,122, 59, 10, 9,109, 51, 91, 50, 93, 32, 61, 32,109, 52, 91, 50, 93,
- 46,120,121,122, 59, 10, 9,114,101,116,117,114,110, 32,109, 51, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,
-117,109,112, 95,105,110,105,116, 95,111, 98,106,115,112, 97, 99,101, 40, 32,118,101, 99, 51, 32,115,117,114,102, 95,112,111,115,
- 44, 32,118,101, 99, 51, 32,115,117,114,102, 95,110,111,114,109, 44, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,109, 97,116, 52, 32,
-109, 86,105,101,119, 44, 32,109, 97,116, 52, 32,109, 86,105,101,119, 73,110,118, 44, 32,109, 97,116, 52, 32,109, 79, 98,106, 44,
- 32,109, 97,116, 52, 32,109, 79, 98,106, 73,110,118, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,102,108,111, 97,116, 32,102,
- 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44,
- 10, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,
-100,101, 95,111,117,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, 32, 10, 9, 9, 9,
- 9, 9, 9, 9, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 50,
- 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 68,101,116, 32, 41, 32, 10,123, 10, 9,109, 97,116, 51, 32,111, 98,106, 50,
-118,105,101,119, 32, 61, 32,116,111, 95,109, 97,116, 51, 40,103,108, 95, 77,111,100,101,108, 86,105,101,119, 77, 97,116,114,105,
-120, 41, 59, 10, 9,109, 97,116, 51, 32,118,105,101,119, 50,111, 98,106, 32, 61, 32,116,111, 95,109, 97,116, 51, 40,103,108, 95,
- 77,111,100,101,108, 86,105,101,119, 77, 97,116,114,105,120, 73,110,118,101,114,115,101, 41, 59, 10, 9, 10, 9,118,101, 99, 51,
- 32,118, 83,105,103,109, 97, 83, 32, 61, 32,118,105,101,119, 50,111, 98,106, 32, 42, 32,100, 70,100,120, 40, 32,115,117,114,102,
- 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 84, 32, 61, 32,118,105,101,119, 50,111, 98,106,
- 32, 42, 32,100, 70,100,121, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 78, 32, 61, 32,
-110,111,114,109, 97,108,105,122,101, 40, 32,115,117,114,102, 95,110,111,114,109, 32, 42, 32,111, 98,106, 50,118,105,101,119, 32,
- 41, 59, 10, 10, 9,118, 82, 49, 32, 61, 32, 99,114,111,115,115, 40, 32,118, 83,105,103,109, 97, 84, 44, 32,118, 78, 32, 41, 59,
- 10, 9,118, 82, 50, 32, 61, 32, 99,114,111,115,115, 40, 32,118, 78, 44, 32,118, 83,105,103,109, 97, 83, 32, 41, 32, 59, 10, 9,
-102, 68,101,116, 32, 61, 32,100,111,116, 32, 40, 32,118, 83,105,103,109, 97, 83, 44, 32,118, 82, 49, 32, 41, 59, 10, 9, 10, 9,
- 47, 42, 32,112,114,101,116,114, 97,110,115,102,111,114,109, 32,118, 78, 97, 99, 99, 32, 40,105,110, 32,109,116,101,120, 95, 98,
-117,109,112, 95, 97,112,112,108,121, 41, 32,117,115,105,110,103, 32,116,104,101, 32,105,110,118,101,114,115,101, 32,116,114, 97,
-110,115,112,111,115,101,100, 32, 42, 47, 10, 9,118, 82, 49, 32, 61, 32,118, 82, 49, 32, 42, 32,118,105,101,119, 50,111, 98,106,
- 59, 10, 9,118, 82, 50, 32, 61, 32,118, 82, 50, 32, 42, 32,118,105,101,119, 50,111, 98,106, 59, 10, 9,118, 78, 32, 61, 32,118,
- 78, 32, 42, 32,118,105,101,119, 50,111, 98,106, 59, 10, 9, 10, 9,102,108,111, 97,116, 32,102, 77, 97,103,110,105,116,117,100,
-101, 32, 61, 32, 97, 98,115, 40,102, 68,101,116, 41, 32, 42, 32,108,101,110,103,116,104, 40,118, 78, 41, 59, 10, 9,118, 78, 97,
- 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99, 99, 95,105,110, 32, 42, 32, 40,102, 77, 97,103,110,105,116,117,100,101, 32,
- 47, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 41, 59, 10, 9,102, 80,114,101,118, 77, 97,103,110,
-105,116,117,100,101, 95,111,117,116, 32, 61, 32,102, 77, 97,103,110,105,116,117,100,101, 59, 10,125, 10, 10,118,111,105,100, 32,
-109,116,101,120, 95, 98,117,109,112, 95,105,110,105,116, 95,116,101,120,116,117,114,101,115,112, 97, 99,101, 40, 32,118,101, 99,
- 51, 32,115,117,114,102, 95,112,111,115, 44, 32,118,101, 99, 51, 32,115,117,114,102, 95,110,111,114,109, 44, 32, 10, 9, 9, 9,
- 9, 9, 9, 9, 9, 32, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 44, 32,
-118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,102,108,111,
- 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 44, 32,111,117,116, 32,118,101, 99, 51, 32,
-118, 78, 97, 99, 99, 95,111,117,116, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118,
- 82, 49, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 50, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 68,101,116,
- 32, 41, 32, 10,123, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 83, 32, 61, 32,100, 70,100,120, 40, 32,115,117,114,102,
- 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 84, 32, 61, 32,100, 70,100,121, 40, 32,115,117,
-114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 78, 32, 61, 32,115,117,114,102, 95,110,111,114,109, 59, 32,
- 47, 42, 32,110,111,114,109, 97,108,105,122,101,100, 32,105,110,116,101,114,112,111,108, 97,116,101,100, 32,118,101,114,116,101,
-120, 32,110,111,114,109, 97,108, 32, 42, 47, 10, 9, 10, 9,118, 82, 49, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32,
- 99,114,111,115,115, 40, 32,118, 83,105,103,109, 97, 84, 44, 32,118, 78, 32, 41, 32, 41, 59, 10, 9,118, 82, 50, 32, 61, 32,110,
-111,114,109, 97,108,105,122,101, 40, 32, 99,114,111,115,115, 40, 32,118, 78, 44, 32,118, 83,105,103,109, 97, 83, 32, 41, 32, 41,
- 59, 10, 9,102, 68,101,116, 32, 61, 32,115,105,103,110, 40, 32,100,111,116, 40,118, 83,105,103,109, 97, 83, 44, 32,118, 82, 49,
- 41, 32, 41, 59, 10, 9, 10, 9,102,108,111, 97,116, 32,102, 77, 97,103,110,105,116,117,100,101, 32, 61, 32, 97, 98,115, 40,102,
- 68,101,116, 41, 59, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99, 99, 95,105,110, 32, 42, 32, 40,102,
- 77, 97,103,110,105,116,117,100,101, 32, 47, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,105,110, 41, 59, 10,
- 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 32, 61, 32,102, 77, 97,103,110,105,116,117,100,101,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,105,110,105,116, 95,118,105,101,119,115,112, 97,
- 99,101, 40, 32,118,101, 99, 51, 32,115,117,114,102, 95,112,111,115, 44, 32,118,101, 99, 51, 32,115,117,114,102, 95,110,111,114,
-109, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,
-100,101, 95,105,110, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,
-111,117,116, 32,102,108,111, 97,116, 32,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 44, 32,111,117,
-116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, 32, 10, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,111,117,116,
- 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118, 82, 50, 44, 32,111,117,116, 32,102,108,111,
- 97,116, 32,102, 68,101,116, 32, 41, 32, 10,123, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 83, 32, 61, 32,100, 70,100,
-120, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 83,105,103,109, 97, 84, 32, 61, 32,100,
- 70,100,121, 40, 32,115,117,114,102, 95,112,111,115, 32, 41, 59, 10, 9,118,101, 99, 51, 32,118, 78, 32, 61, 32,115,117,114,102,
- 95,110,111,114,109, 59, 32, 47, 42, 32,110,111,114,109, 97,108,105,122,101,100, 32,105,110,116,101,114,112,111,108, 97,116,101,
-100, 32,118,101,114,116,101,120, 32,110,111,114,109, 97,108, 32, 42, 47, 10, 9, 10, 9,118, 82, 49, 32, 61, 32, 99,114,111,115,
-115, 40, 32,118, 83,105,103,109, 97, 84, 44, 32,118, 78, 32, 41, 59, 10, 9,118, 82, 50, 32, 61, 32, 99,114,111,115,115, 40, 32,
-118, 78, 44, 32,118, 83,105,103,109, 97, 83, 32, 41, 32, 59, 10, 9,102, 68,101,116, 32, 61, 32,100,111,116, 32, 40, 32,118, 83,
-105,103,109, 97, 83, 44, 32,118, 82, 49, 32, 41, 59, 10, 9, 10, 9,102,108,111, 97,116, 32,102, 77, 97,103,110,105,116,117,100,
-101, 32, 61, 32, 97, 98,115, 40,102, 68,101,116, 41, 59, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99,
- 99, 95,105,110, 32, 42, 32, 40,102, 77, 97,103,110,105,116,117,100,101, 32, 47, 32,102, 80,114,101,118, 77, 97,103,110,105,116,
-117,100,101, 95,105,110, 41, 59, 10, 9,102, 80,114,101,118, 77, 97,103,110,105,116,117,100,101, 95,111,117,116, 32, 61, 32,102,
- 77, 97,103,110,105,116,117,100,101, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,116, 97,112,
- 51, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,102,108,
-111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,116, 32, 41,
- 32, 10,123, 10, 9,118,101, 99, 50, 32, 83, 84,108,108, 32, 61, 32,116,101,120, 99,111, 46,120,121, 59, 10, 9,118,101, 99, 50,
- 32, 83, 84,108,114, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121,
- 41, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,117,108, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32,100, 70,100,121,
- 40,116,101,120, 99,111, 46,120,121, 41, 32, 59, 10, 9, 10, 9,102,108,111, 97,116, 32, 72,108,108, 44, 72,108,114, 44, 72,117,
-108, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,108,108,
- 41, 44, 32, 72,108,108, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109,
- 97, 44, 32, 83, 84,108,114, 41, 44, 32, 72,108,114, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,
-114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,117,108, 41, 44, 32, 72,117,108, 32, 41, 59, 10, 9, 10, 9,100, 66,115, 32, 61,
- 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,108,114, 32, 45, 32, 72,108,108, 41, 59, 10, 9,100, 66,116, 32, 61, 32,104, 83,
- 99, 97,108,101, 32, 42, 32, 40, 72,117,108, 32, 45, 32, 72,108,108, 41, 59, 10,125, 10, 10, 35,105,102,100,101,102, 32, 66, 85,
- 77, 80, 95, 66, 73, 67, 85, 66, 73, 67, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95, 98,105, 99,117, 98,
-105, 99, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,102,
-108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,116, 32,
- 41, 32, 10,123, 10, 9,102,108,111, 97,116, 32, 72,108, 59, 10, 9,102,108,111, 97,116, 32, 72,114, 59, 10, 9,102,108,111, 97,
-116, 32, 72,100, 59, 10, 9,102,108,111, 97,116, 32, 72,117, 59, 10, 9, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,120, 32, 61,
- 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,121, 32, 61, 32,100,
- 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 32, 10, 9,118,101, 99, 50, 32, 83, 84,108, 32, 61, 32,116,101,120,
- 99,111, 46,120,121, 32, 45, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,120, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,114, 32,
- 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,120, 32, 59, 10, 9,118,101, 99, 50,
- 32, 83, 84,100, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 45, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,121, 32, 59, 10,
- 9,118,101, 99, 50, 32, 83, 84,117, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32, 48, 46, 53, 32, 42, 32, 84,101,120,
- 68,121, 32, 59, 10, 9, 10, 9,114,103, 98,116,111, 98,119, 40,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83,
- 84,108, 41, 44, 32, 72,108, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97,
- 44, 32, 83, 84,114, 41, 44, 32, 72,114, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40,116,101,120,116,117,114,101, 50, 68, 40,
-105,109, 97, 44, 32, 83, 84,100, 41, 44, 32, 72,100, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40,116,101,120,116,117,114,101,
- 50, 68, 40,105,109, 97, 44, 32, 83, 84,117, 41, 44, 32, 72,117, 41, 59, 10, 9, 10, 9,118,101, 99, 50, 32,100, 72,100,120,121,
- 32, 61, 32,118,101, 99, 50, 40, 72,114, 32, 45, 32, 72,108, 44, 32, 72,117, 32, 45, 32, 72,100, 41, 59, 10, 9,102,108,111, 97,
-116, 32,102, 66,108,101,110,100, 32, 61, 32, 99,108, 97,109,112, 40, 49, 46, 48, 45,116,101,120,116,117,114,101, 81,117,101,114,
-121, 76, 79, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 46,120, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41,
- 59, 10, 9,105,102, 40,102, 66,108,101,110,100, 33, 61, 48, 46, 48, 41, 10, 9,123, 10, 9, 9, 47, 47, 32,116,104,101, 32,100,
-101,114,105,118, 97,116,105,118,101, 32,111,102, 32,116,104,101, 32, 98,105, 99,117, 98,105, 99, 32,115, 97,109,112,108,105,110,
-103, 32,111,102, 32,108,101,118,101,108, 32, 48, 10, 9, 9,105,118,101, 99, 50, 32,118, 68,105,109, 59, 10, 9, 9,118, 68,105,
-109, 32, 61, 32,116,101,120,116,117,114,101, 83,105,122,101, 40,105,109, 97, 44, 32, 48, 41, 59, 10, 10, 9, 9, 47, 47, 32,116,
- 97,107,105,110,103, 32,116,104,101, 32,102,114, 97, 99,116, 32,112, 97,114,116, 32,111,102, 32,116,104,101, 32,116,101,120,116,
-117,114,101, 32, 99,111,111,114,100,105,110, 97,116,101, 32,105,115, 32, 97, 32,104, 97,114,100, 99,111,100,101,100, 32,119,114,
- 97,112, 32,109,111,100,101, 46, 10, 9, 9, 47, 47, 32,116,104,105,115, 32,105,115, 32, 97, 99, 99,101,112,116, 97, 98,108,101,
- 32, 97,115, 32,116,101,120,116,117,114,101,115, 32,117,115,101, 32,119,114, 97,112, 32,109,111,100,101, 32,101,120, 99,108,117,
-115,105,118,101,108,121, 32,105,110, 32, 51, 68, 32,118,105,101,119, 32,101,108,115,101,119,104,101,114,101, 32,105,110, 32, 98,
-108,101,110,100,101,114, 46, 32, 10, 9, 9, 47, 47, 32,116,104,105,115, 32,105,115, 32,100,111,110,101, 32,115,111, 32,116,104,
- 97,116, 32,119,101, 32, 99, 97,110, 32,115,116,105,108,108, 32,103,101,116, 32, 97, 32,118, 97,108,105,100, 32,116,101,120,101,
-108, 32,119,105,116,104, 32,117,118,115, 32,111,117,116,115,105,100,101, 32,116,104,101, 32, 48, 44, 49, 32,114, 97,110,103,101,
- 10, 9, 9, 47, 47, 32, 98,121, 32,116,101,120,101,108, 70,101,116, 99,104, 32, 98,101,108,111,119, 44, 32, 97,115, 32, 99,111,
-111,114,100,105,110, 97,116,101,115, 32, 97,114,101, 32, 99,108, 97,109,112,101,100, 32,119,104,101,110, 32,117,115,105,110,103,
- 32,116,104,105,115, 32,102,117,110, 99,116,105,111,110, 46, 10, 9, 9,118,101, 99, 50, 32,102, 84,101,120, 76,111, 99, 32, 61,
- 32,118, 68,105,109, 42,102,114, 97, 99,116, 40,116,101,120, 99,111, 46,120,121, 41, 32, 45, 32,118,101, 99, 50, 40, 48, 46, 53,
- 44, 32, 48, 46, 53, 41, 59, 10, 9, 9,105,118,101, 99, 50, 32,105, 84,101,120, 76,111, 99, 32, 61, 32,105,118,101, 99, 50, 40,
-102,108,111,111,114, 40,102, 84,101,120, 76,111, 99, 41, 41, 59, 10, 9, 9,118,101, 99, 50, 32,116, 32, 61, 32, 99,108, 97,109,
-112, 40,102, 84,101,120, 76,111, 99, 32, 45, 32,105, 84,101,120, 76,111, 99, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 9,
- 9, 47, 47, 32,115, 97,116, 32,106,117,115,116, 32,116,111, 32, 98,101, 32,112,101,100, 97,110,116,105, 99, 10, 10, 47, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 10, 32, 42, 32, 84,104,105,
-115, 32, 98,108,111, 99,107, 32,119,105,108,108, 32,114,101,112,108, 97, 99,101, 32,116,104,101, 32,111,110,101, 32, 98,101,108,
-111,119, 32,119,104,101,110, 32,111,110,101, 32, 99,104, 97,110,110,101,108, 32,116,101,120,116,117,114,101,115, 32, 97,114,101,
- 32,112,114,111,112,101,114,108,121, 32,115,117,112,112,111,114,116,101,100, 46, 32, 42, 10, 32, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 10, 9, 9,118,101, 99, 52, 32,118, 83, 97,109,112,
-108,101,115, 85, 76, 32, 61, 32,116,101,120,116,117,114,101, 71, 97,116,104,101,114, 40,105,109, 97, 44, 32, 40,105, 84,101,120,
- 76,111, 99, 43,105,118,101, 99, 50, 40, 45, 49, 44, 45, 49, 41, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 48, 46, 53, 41,
- 41, 47,118, 68,105,109, 32, 41, 59, 10, 9, 9,118,101, 99, 52, 32,118, 83, 97,109,112,108,101,115, 85, 82, 32, 61, 32,116,101,
-120,116,117,114,101, 71, 97,116,104,101,114, 40,105,109, 97, 44, 32, 40,105, 84,101,120, 76,111, 99, 43,105,118,101, 99, 50, 40,
- 49, 44, 45, 49, 41, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 48, 46, 53, 41, 41, 47,118, 68,105,109, 32, 41, 59, 10, 9,
- 9,118,101, 99, 52, 32,118, 83, 97,109,112,108,101,115, 76, 76, 32, 61, 32,116,101,120,116,117,114,101, 71, 97,116,104,101,114,
- 40,105,109, 97, 44, 32, 40,105, 84,101,120, 76,111, 99, 43,105,118,101, 99, 50, 40, 45, 49, 44, 49, 41, 32, 43, 32,118,101, 99,
- 50, 40, 48, 46, 53, 44, 48, 46, 53, 41, 41, 47,118, 68,105,109, 32, 41, 59, 10, 9, 9,118,101, 99, 52, 32,118, 83, 97,109,112,
-108,101,115, 76, 82, 32, 61, 32,116,101,120,116,117,114,101, 71, 97,116,104,101,114, 40,105,109, 97, 44, 32, 40,105, 84,101,120,
- 76,111, 99, 43,105,118,101, 99, 50, 40, 49, 44, 49, 41, 32, 43, 32,118,101, 99, 50, 40, 48, 46, 53, 44, 48, 46, 53, 41, 41, 47,
-118, 68,105,109, 32, 41, 59, 10, 10, 9, 9,109, 97,116, 52, 32, 72, 32, 61, 32,109, 97,116, 52, 40,118, 83, 97,109,112,108,101,
-115, 85, 76, 46,119, 44, 32,118, 83, 97,109,112,108,101,115, 85, 76, 46,120, 44, 32,118, 83, 97,109,112,108,101,115, 76, 76, 46,
-119, 44, 32,118, 83, 97,109,112,108,101,115, 76, 76, 46,120, 44, 10, 9, 9, 9, 9, 9,118, 83, 97,109,112,108,101,115, 85, 76,
- 46,122, 44, 32,118, 83, 97,109,112,108,101,115, 85, 76, 46,121, 44, 32,118, 83, 97,109,112,108,101,115, 76, 76, 46,122, 44, 32,
-118, 83, 97,109,112,108,101,115, 76, 76, 46,121, 44, 10, 9, 9, 9, 9, 9,118, 83, 97,109,112,108,101,115, 85, 82, 46,119, 44,
- 32,118, 83, 97,109,112,108,101,115, 85, 82, 46,120, 44, 32,118, 83, 97,109,112,108,101,115, 76, 82, 46,119, 44, 32,118, 83, 97,
-109,112,108,101,115, 76, 82, 46,120, 44, 10, 9, 9, 9, 9, 9,118, 83, 97,109,112,108,101,115, 85, 82, 46,122, 44, 32,118, 83,
- 97,109,112,108,101,115, 85, 82, 46,121, 44, 32,118, 83, 97,109,112,108,101,115, 76, 82, 46,122, 44, 32,118, 83, 97,109,112,108,
-101,115, 76, 82, 46,121, 41, 59, 10, 42, 47, 9, 10, 9, 9,105,118,101, 99, 50, 32,105, 84,101,120, 76,111, 99, 77,111,100, 32,
- 61, 32,105, 84,101,120, 76,111, 99, 32, 43, 32,105,118,101, 99, 50, 40, 45, 49, 44, 32, 45, 49, 41, 59, 10, 10, 9, 9,109, 97,
-116, 52, 32, 72, 59, 10, 9, 9, 10, 9, 9,102,111,114, 40,105,110,116, 32,105, 32, 61, 32, 48, 59, 32,105, 32, 60, 32, 52, 59,
- 32,105, 43, 43, 41,123, 10, 9, 9, 9,102,111,114, 40,105,110,116, 32,106, 32, 61, 32, 48, 59, 32,106, 32, 60, 32, 52, 59, 32,
-106, 43, 43, 41,123, 10, 9, 9, 9, 9,105,118,101, 99, 50, 32,105, 84,101,120, 84,109,112, 32, 61, 32,105, 84,101,120, 76,111,
- 99, 77,111,100, 32, 43, 32,105,118,101, 99, 50, 40,105, 44,106, 41, 59, 10, 9, 9, 9, 9, 10, 9, 9, 9, 9, 47, 47, 32,119,
-114, 97,112, 32,116,101,120,116,117,114,101, 32, 99,111,111,114,100,105,110, 97,116,101,115, 32,109, 97,110,117, 97,108,108,121,
- 32,102,111,114, 32,116,101,120,101,108, 70,101,116, 99,104, 32,116,111, 32,119,111,114,107, 32,111,110, 32,117,118,115, 32,111,
-105,116,115,105,100,101, 32,116,104,101, 32, 48, 44, 49, 32,114, 97,110,103,101, 46, 10, 9, 9, 9, 9, 47, 47, 32,116,104,105,
-115, 32,105,115, 32,103,117, 97,114, 97,110,116,101,101,100, 32,116,111, 32,119,111,114,107, 32,115,105,110, 99,101, 32,119,101,
- 32,116, 97,107,101, 32,116,104,101, 32,102,114, 97, 99,116,105,111,110, 97,108, 32,112, 97,114,116, 32,111,102, 32,116,104,101,
- 32,117,118, 32, 97, 98,111,118,101, 46, 10, 9, 9, 9, 9,105, 84,101,120, 84,109,112, 46,120, 32, 61, 32, 40,105, 84,101,120,
- 84,109,112, 46,120, 32, 60, 32, 48, 41, 63, 32,105, 84,101,120, 84,109,112, 46,120, 32, 43, 32,118, 68,105,109, 46,120, 32, 58,
- 32, 40, 40,105, 84,101,120, 84,109,112, 46,120, 32, 62, 61, 32,118, 68,105,109, 46,120, 41, 63, 32,105, 84,101,120, 84,109,112,
- 46,120, 32, 45, 32,118, 68,105,109, 46,120, 32, 58, 32,105, 84,101,120, 84,109,112, 46,120, 41, 59, 10, 9, 9, 9, 9,105, 84,
-101,120, 84,109,112, 46,121, 32, 61, 32, 40,105, 84,101,120, 84,109,112, 46,121, 32, 60, 32, 48, 41, 63, 32,105, 84,101,120, 84,
-109,112, 46,121, 32, 43, 32,118, 68,105,109, 46,121, 32, 58, 32, 40, 40,105, 84,101,120, 84,109,112, 46,121, 32, 62, 61, 32,118,
- 68,105,109, 46,121, 41, 63, 32,105, 84,101,120, 84,109,112, 46,121, 32, 45, 32,118, 68,105,109, 46,121, 32, 58, 32,105, 84,101,
-120, 84,109,112, 46,121, 41, 59, 10, 10, 9, 9, 9, 9,114,103, 98,116,111, 98,119, 40,116,101,120,101,108, 70,101,116, 99,104,
- 40,105,109, 97, 44, 32,105, 84,101,120, 84,109,112, 44, 32, 48, 41, 44, 32, 72, 91,105, 93, 91,106, 93, 41, 59, 10, 9, 9, 9,
-125, 10, 9, 9,125, 10, 9, 9, 10, 9, 9,102,108,111, 97,116, 32,120, 32, 61, 32,116, 46,120, 44, 32,121, 32, 61, 32,116, 46,
-121, 59, 10, 9, 9,102,108,111, 97,116, 32,120, 50, 32, 61, 32,120, 32, 42, 32,120, 44, 32,120, 51, 32, 61, 32,120, 50, 32, 42,
- 32,120, 44, 32,121, 50, 32, 61, 32,121, 32, 42, 32,121, 44, 32,121, 51, 32, 61, 32,121, 50, 32, 42, 32,121, 59, 10, 10, 9, 9,
-118,101, 99, 52, 32, 88, 32, 61, 32,118,101, 99, 52, 40, 45, 48, 46, 53, 42, 40,120, 51, 43,120, 41, 43,120, 50, 44, 9, 9, 49,
- 46, 53, 42,120, 51, 45, 50, 46, 53, 42,120, 50, 43, 49, 44, 9, 45, 49, 46, 53, 42,120, 51, 43, 50, 42,120, 50, 43, 48, 46, 53,
- 42,120, 44, 9, 9, 48, 46, 53, 42, 40,120, 51, 45,120, 50, 41, 41, 59, 10, 9, 9,118,101, 99, 52, 32, 89, 32, 61, 32,118,101,
- 99, 52, 40, 45, 48, 46, 53, 42, 40,121, 51, 43,121, 41, 43,121, 50, 44, 9, 9, 49, 46, 53, 42,121, 51, 45, 50, 46, 53, 42,121,
- 50, 43, 49, 44, 9, 45, 49, 46, 53, 42,121, 51, 43, 50, 42,121, 50, 43, 48, 46, 53, 42,121, 44, 9, 9, 48, 46, 53, 42, 40,121,
- 51, 45,121, 50, 41, 41, 59, 10, 9, 9,118,101, 99, 52, 32,100, 88, 32, 61, 32,118,101, 99, 52, 40, 45, 49, 46, 53, 42,120, 50,
- 43, 50, 42,120, 45, 48, 46, 53, 44, 9, 9, 52, 46, 53, 42,120, 50, 45, 53, 42,120, 44, 9, 9, 9, 45, 52, 46, 53, 42,120, 50,
- 43, 52, 42,120, 43, 48, 46, 53, 44, 9, 9, 49, 46, 53, 42,120, 50, 45,120, 41, 59, 10, 9, 9,118,101, 99, 52, 32,100, 89, 32,
- 61, 32,118,101, 99, 52, 40, 45, 49, 46, 53, 42,121, 50, 43, 50, 42,121, 45, 48, 46, 53, 44, 9, 9, 52, 46, 53, 42,121, 50, 45,
- 53, 42,121, 44, 9, 9, 9, 45, 52, 46, 53, 42,121, 50, 43, 52, 42,121, 43, 48, 46, 53, 44, 9, 9, 49, 46, 53, 42,121, 50, 45,
-121, 41, 59, 10, 9, 10, 9, 9, 47, 47, 32, 99,111,109,112,108,101,116,101, 32,100,101,114,105,118, 97,116,105,118,101, 32,105,
-110, 32,110,111,114,109, 97,108,105,122,101,100, 32, 99,111,111,114,100,105,110, 97,116,101,115, 32, 40,109,117,108, 32, 98,121,
- 32,118, 68,105,109, 41, 10, 9, 9,118,101, 99, 50, 32,100, 72,100, 83, 84, 32, 61, 32,118, 68,105,109, 32, 42, 32,118,101, 99,
- 50, 40,100,111,116, 40, 89, 44, 32, 72, 32, 42, 32,100, 88, 41, 44, 32,100,111,116, 40,100, 89, 44, 32, 72, 32, 42, 32, 88, 41,
- 41, 59, 10, 10, 9, 9, 47, 47, 32,116,114, 97,110,115,102,111,114,109, 32,100,101,114,105,118, 97,116,105,118,101, 32,116,111,
- 32,115, 99,114,101,101,110, 45,115,112, 97, 99,101, 10, 9, 9,118,101, 99, 50, 32,100, 72,100,120,121, 95, 98,105, 99,117, 98,
-105, 99, 32, 61, 32,118,101, 99, 50, 40, 32,100, 72,100, 83, 84, 46,120, 32, 42, 32, 84,101,120, 68,120, 46,120, 32, 43, 32,100,
- 72,100, 83, 84, 46,121, 32, 42, 32, 84,101,120, 68,120, 46,121, 44, 10, 9, 9, 9, 9, 9, 9, 9, 9, 32, 32, 32,100, 72,100,
- 83, 84, 46,120, 32, 42, 32, 84,101,120, 68,121, 46,120, 32, 43, 32,100, 72,100, 83, 84, 46,121, 32, 42, 32, 84,101,120, 68,121,
- 46,121, 32, 41, 59, 10, 10, 9, 9, 47, 47, 32, 98,108,101,110,100, 32, 98,101,116,119,101,101,110, 32,116,104,101, 32,116,119,
-111, 10, 9, 9,100, 72,100,120,121, 32, 61, 32,100, 72,100,120,121, 42, 40, 49, 45,102, 66,108,101,110,100, 41, 32, 43, 32,100,
- 72,100,120,121, 95, 98,105, 99,117, 98,105, 99, 42,102, 66,108,101,110,100, 59, 10, 9,125, 10, 10, 9,100, 66,115, 32, 61, 32,
-104, 83, 99, 97,108,101, 32, 42, 32,100, 72,100,120,121, 46,120, 59, 10, 9,100, 66,116, 32, 61, 32,104, 83, 99, 97,108,101, 32,
- 42, 32,100, 72,100,120,121, 46,121, 59, 10,125, 10, 10, 35,101,110,100,105,102, 10, 10,118,111,105,100, 32,109,116,101,120, 95,
- 98,117,109,112, 95,116, 97,112, 53, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68,
- 32,105,109, 97, 44, 32,102,108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,116, 32,102,108,111,
- 97,116, 32,100, 66,116, 32, 41, 32, 10,123, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,120, 32, 61, 32,100, 70,100,120, 40,116,
-101,120, 99,111, 46,120,121, 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,121, 32, 61, 32,100, 70,100,121, 40,116,101,120,
- 99,111, 46,120,121, 41, 59, 10, 10, 9,118,101, 99, 50, 32, 83, 84, 99, 32, 61, 32,116,101,120, 99,111, 46,120,121, 59, 10, 9,
-118,101, 99, 50, 32, 83, 84,108, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 45, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,
-120, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,114, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 43, 32, 48, 46, 53, 32, 42,
- 32, 84,101,120, 68,120, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,100, 32, 61, 32,116,101,120, 99,111, 46,120,121, 32, 45, 32,
- 48, 46, 53, 32, 42, 32, 84,101,120, 68,121, 32, 59, 10, 9,118,101, 99, 50, 32, 83, 84,117, 32, 61, 32,116,101,120, 99,111, 46,
-120,121, 32, 43, 32, 48, 46, 53, 32, 42, 32, 84,101,120, 68,121, 32, 59, 10, 9, 10, 9,102,108,111, 97,116, 32, 72, 99, 44, 72,
-108, 44, 72,114, 44, 72,100, 44, 72,117, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,
-105,109, 97, 44, 32, 83, 84, 99, 41, 44, 32, 72, 99, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,
-114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,108, 41, 44, 32, 72,108, 32, 41, 59, 10, 9,114,103, 98,116,111, 98,119, 40, 32,
-116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,114, 41, 44, 32, 72,114, 32, 41, 59, 10, 9,114,103, 98,116,
-111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,100, 41, 44, 32, 72,100, 32, 41, 59, 10,
- 9,114,103, 98,116,111, 98,119, 40, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 83, 84,117, 41, 44, 32, 72,
-117, 32, 41, 59, 10, 9, 10, 9,100, 66,115, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,114, 32, 45, 32, 72,108, 41,
- 59, 10, 9,100, 66,116, 32, 61, 32,104, 83, 99, 97,108,101, 32, 42, 32, 40, 72,117, 32, 45, 32, 72,100, 41, 59, 10,125, 10, 10,
-118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95,100,101,114,105,118, 40, 32,118,101, 99, 51, 32,116,101,120, 99,111,
- 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,102,108,111, 97,116, 32,105,109, 97, 95,120, 44, 32,102,108,
-111, 97,116, 32,105,109, 97, 95,121, 44, 32,102,108,111, 97,116, 32,104, 83, 99, 97,108,101, 44, 32, 10, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,111,117,116, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,111,117,
-116, 32,102,108,111, 97,116, 32,100, 66,116, 32, 41, 32, 10,123, 10, 9,102,108,111, 97,116, 32,115, 32, 61, 32, 49, 46, 48, 59,
- 9, 9, 47, 47, 32,110,101,103, 97,116,101, 32,116,104,105,115, 32,105,102, 32,102,108,105,112,112,101,100, 32,116,101,120,116,
-117,114,101, 32, 99,111,111,114,100,105,110, 97,116,101, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,120, 32, 61, 32,100, 70,100,
-120, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,121, 32, 61, 32,100, 70,100,121, 40,
-116,101,120, 99,111, 46,120,121, 41, 59, 10, 9, 10, 9, 47, 47, 32,116,104,105,115, 32,118, 97,114,105, 97,110,116, 32,117,115,
-105,110,103, 32, 97, 32,100,101,114,105,118, 97,116,105,118,101, 32,109, 97,112, 32,105,115, 32,100,101,115, 99,114,105, 98,101,
-100, 32,104,101,114,101, 10, 9, 47, 47, 32,104,116,116,112, 58, 47, 47,109,109,105,107,107,101,108,115,101,110, 51,100, 46, 98,
-108,111,103,115,112,111,116, 46, 99,111,109, 47, 50, 48, 49, 49, 47, 48, 55, 47,100,101,114,105,118, 97,116,105,118,101, 45,109,
- 97,112,115, 46,104,116,109,108, 10, 9,118,101, 99, 50, 32,100,105,109, 32, 61, 32,118,101, 99, 50, 40,105,109, 97, 95,120, 44,
- 32,105,109, 97, 95,121, 41, 59, 10, 9,118,101, 99, 50, 32,100, 66,100,117,118, 32, 61, 32,104, 83, 99, 97,108,101, 42,100,105,
-109, 42, 40, 50, 46, 48, 42,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,116,101,120, 99,111, 46,120,121, 41, 46,
-120,121, 45, 49, 46, 48, 41, 59, 10, 9, 10, 9,100, 66,115, 32, 61, 32,100, 66,100,117,118, 46,120, 42, 84,101,120, 68,120, 46,
-120, 32, 43, 32,115, 42,100, 66,100,117,118, 46,121, 42, 84,101,120, 68,120, 46,121, 59, 10, 9,100, 66,116, 32, 61, 32,100, 66,
-100,117,118, 46,120, 42, 84,101,120, 68,121, 46,120, 32, 43, 32,115, 42,100, 66,100,117,118, 46,121, 42, 84,101,120, 68,121, 46,
-121, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95, 97,112,112,108,121, 40, 32,102,108,111, 97,
-116, 32,102, 68,101,116, 44, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,102,108,111, 97,116, 32,100, 66,116, 44, 32,118,101,
- 99, 51, 32,118, 82, 49, 44, 32,118,101, 99, 51, 32,118, 82, 50, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44,
- 10, 9, 9, 9, 9, 9, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, 32,111,117,116, 32,
-118,101, 99, 51, 32,112,101,114,116,117,114, 98,101,100, 95,110,111,114,109, 32, 41, 32, 10,123, 10, 9,118,101, 99, 51, 32,118,
- 83,117,114,102, 71,114, 97,100, 32, 61, 32,115,105,103,110, 40,102, 68,101,116, 41, 32, 42, 32, 40, 32,100, 66,115, 32, 42, 32,
-118, 82, 49, 32, 43, 32,100, 66,116, 32, 42, 32,118, 82, 50, 32, 41, 59, 10, 9, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32,
- 61, 32,118, 78, 97, 99, 99, 95,105,110, 32, 45, 32,118, 83,117,114,102, 71,114, 97,100, 59, 10, 9,112,101,114,116,117,114, 98,
-101,100, 95,110,111,114,109, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32,118, 78, 97, 99, 99, 95,111,117,116, 32, 41,
- 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,117,109,112, 95, 97,112,112,108,121, 95,116,101,120,115,112, 97,
- 99,101, 40, 32,102,108,111, 97,116, 32,102, 68,101,116, 44, 32,102,108,111, 97,116, 32,100, 66,115, 44, 32,102,108,111, 97,116,
- 32,100, 66,116, 44, 32,118,101, 99, 51, 32,118, 82, 49, 44, 32,118,101, 99, 51, 32,118, 82, 50, 44, 10, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,115, 97,109,112,108,101,114,
- 50, 68, 32,105,109, 97, 44, 32,118,101, 99, 51, 32,116,101,120, 99,111, 44, 32,102,108,111, 97,116, 32,105,109, 97, 95,120, 44,
- 32,102,108,111, 97,116, 32,105,109, 97, 95,121, 44, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,105,110, 44, 10, 9, 9, 9,
- 9, 9, 9, 9, 32, 32, 32,111,117,116, 32,118,101, 99, 51, 32,118, 78, 97, 99, 99, 95,111,117,116, 44, 32,111,117,116, 32,118,
-101, 99, 51, 32,112,101,114,116,117,114, 98,101,100, 95,110,111,114,109, 32, 41, 32, 10,123, 10, 9,118,101, 99, 50, 32, 84,101,
-120, 68,120, 32, 61, 32,100, 70,100,120, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 9,118,101, 99, 50, 32, 84,101,120, 68,
-121, 32, 61, 32,100, 70,100,121, 40,116,101,120, 99,111, 46,120,121, 41, 59, 10, 10, 9,118,101, 99, 51, 32,118, 83,117,114,102,
- 71,114, 97,100, 32, 61, 32,115,105,103,110, 40,102, 68,101,116, 41, 32, 42, 32, 40, 32, 10, 9, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32,100, 66,115, 32, 47, 32,108,101,110,103,116,104, 40, 32,118,101, 99, 50, 40,105,109, 97, 95,120, 42, 84,101,120,
- 68,120, 46,120, 44, 32,105,109, 97, 95,121, 42, 84,101,120, 68,120, 46,121, 41, 32, 41, 32, 42, 32,118, 82, 49, 32, 43, 32, 10,
- 9, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,100, 66,116, 32, 47, 32,108,101,110,103,116,104, 40, 32,118,101, 99, 50, 40,
-105,109, 97, 95,120, 42, 84,101,120, 68,121, 46,120, 44, 32,105,109, 97, 95,121, 42, 84,101,120, 68,121, 46,121, 41, 32, 41, 32,
- 42, 32,118, 82, 50, 32, 41, 59, 10, 9, 9, 9, 9, 10, 9,118, 78, 97, 99, 99, 95,111,117,116, 32, 61, 32,118, 78, 97, 99, 99,
- 95,105,110, 32, 45, 32,118, 83,117,114,102, 71,114, 97,100, 59, 10, 9,112,101,114,116,117,114, 98,101,100, 95,110,111,114,109,
- 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 32,118, 78, 97, 99, 99, 95,111,117,116, 32, 41, 59, 10,125, 10, 10,118,111,
-105,100, 32,109,116,101,120, 95,110,101,103, 97,116,101, 95,116,101,120,110,111,114,109, 97,108, 40,118,101, 99, 51, 32,110,111,
-114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9,111,117,116,
-110,111,114,109, 97,108, 32, 61, 32,118,101, 99, 51, 40, 45,110,111,114,109, 97,108, 46,120, 44, 32, 45,110,111,114,109, 97,108,
- 46,121, 44, 32,110,111,114,109, 97,108, 46,122, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95,110,115,112, 97,
- 99,101, 95,116, 97,110,103,101,110,116, 40,118,101, 99, 52, 32,116, 97,110,103,101,110,116, 44, 32,118,101, 99, 51, 32,110,111,
-114,109, 97,108, 44, 32,118,101, 99, 51, 32,116,101,120,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,
-117,116,110,111,114,109, 97,108, 41, 10,123, 10, 9,118,101, 99, 51, 32, 66, 32, 61, 32,116, 97,110,103,101,110,116, 46,119, 32,
- 42, 32, 99,114,111,115,115, 40,110,111,114,109, 97,108, 44, 32,116, 97,110,103,101,110,116, 46,120,121,122, 41, 59, 10, 10, 9,
-111,117,116,110,111,114,109, 97,108, 32, 61, 32,116,101,120,110,111,114,109, 97,108, 46,120, 42,116, 97,110,103,101,110,116, 46,
-120,121,122, 32, 43, 32,116,101,120,110,111,114,109, 97,108, 46,121, 42, 66, 32, 43, 32,116,101,120,110,111,114,109, 97,108, 46,
-122, 42,110,111,114,109, 97,108, 59, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101,
- 40,111,117,116,110,111,114,109, 97,108, 41, 59, 10,125, 10, 10,118,111,105,100, 32,109,116,101,120, 95, 98,108,101,110,100, 95,
-110,111,114,109, 97,108, 40,102,108,111, 97,116, 32,110,111,114,102, 97, 99, 44, 32,118,101, 99, 51, 32,110,111,114,109, 97,108,
- 44, 32,118,101, 99, 51, 32,110,101,119,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,110,111,
-114,109, 97,108, 41, 10,123, 10, 9,111,117,116,110,111,114,109, 97,108, 32, 61, 32, 40, 49, 46, 48, 32, 45, 32,110,111,114,102,
- 97, 99, 41, 42,110,111,114,109, 97,108, 32, 43, 32,110,111,114,102, 97, 99, 42,110,101,119,110,111,114,109, 97,108, 59, 10, 9,
-111,117,116,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,111,117,116,110,111,114,109, 97,108, 41,
- 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 32, 77, 65, 84, 69, 82, 73, 65, 76, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 47, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,117,110, 95,104,101,109,105,
- 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,
-102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123,
- 10, 9,108,118, 32, 61, 32,108, 97,109,112,118,101, 99, 59, 10, 9,100,105,115,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,118,105,
-115,105,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,
-108,105,116,121, 95,111,116,104,101,114, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,108, 97,109,112, 99,111, 44,
- 32,111,117,116, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,
-116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,108,118, 32, 61, 32, 99,111, 32, 45, 32,108, 97,
-109,112, 99,111, 59, 10, 9,100,105,115,116, 32, 61, 32,108,101,110,103,116,104, 40,108,118, 41, 59, 10, 9,108,118, 32, 61, 32,
-110,111,114,109, 97,108,105,122,101, 40,108,118, 41, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125,
- 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, 95,105,110,118,108,105,110,101, 97,114, 40,102,108,
-111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,
-115,116, 47, 40,108, 97,109,112,100,105,115,116, 32, 43, 32,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,
-109,112, 95,102, 97,108,108,111,102,102, 95,105,110,118,115,113,117, 97,114,101, 40,102,108,111, 97,116, 32,108, 97,109,112,100,
-105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102,
- 97, 99, 41, 10,123, 10, 9,118,105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,
-105,115,116, 32, 43, 32,100,105,115,116, 42,100,105,115,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,102,
- 97,108,108,111,102,102, 95,115,108,105,100,101,114,115, 40,102,108,111, 97,116, 32,108, 97,109,112,100,105,115,116, 44, 32,102,
-108,111, 97,116, 32,108,100, 49, 44, 32,102,108,111, 97,116, 32,108,100, 50, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44,
- 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,108, 97,109,
-112,100,105,115,116,107,119, 32, 61, 32,108, 97,109,112,100,105,115,116, 42,108, 97,109,112,100,105,115,116, 59, 10, 10, 9,118,
-105,115,105,102, 97, 99, 32, 61, 32,108, 97,109,112,100,105,115,116, 47, 40,108, 97,109,112,100,105,115,116, 32, 43, 32,108,100,
- 49, 42,100,105,115,116, 41, 59, 10, 9,118,105,115,105,102, 97, 99, 32, 42, 61, 32,108, 97,109,112,100,105,115,116,107,119, 47,
- 40,108, 97,109,112,100,105,115,116,107,119, 32, 43, 32,108,100, 50, 42,100,105,115,116, 42,100,105,115,116, 41, 59, 10,125, 10,
- 10,118,111,105,100, 32,108, 97,109,112, 95,102, 97,108,108,111,102,102, 95, 99,117,114,118,101, 40,102,108,111, 97,116, 32,108,
- 97,109,112,100,105,115,116, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32, 99,117,114,118,101,109, 97,112, 44, 32,102,108,111,
- 97,116, 32,100,105,115,116, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,118,
-105,115,105,102, 97, 99, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 99,117,114,118,101,109, 97,112, 44, 32,118,101, 99,
- 50, 40,100,105,115,116, 47,108, 97,109,112,100,105,115,116, 44, 32, 48, 46, 48, 41, 41, 46,120, 59, 10,125, 10, 10,118,111,105,
-100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,112,104,101,114,101, 40,102,108,111, 97,116, 32,108,
- 97,109,112,100,105,115,116, 44, 32,102,108,111, 97,116, 32,100,105,115,116, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102,
- 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111,
- 97,116, 32,116, 61, 32,108, 97,109,112,100,105,115,116, 32, 45, 32,100,105,115,116, 59, 10, 10, 9,111,117,116,118,105,115,105,
-102, 97, 99, 61, 32,118,105,115,105,102, 97, 99, 42,109, 97,120, 40,116, 44, 32, 48, 46, 48, 41, 47,108, 97,109,112,100,105,115,
-116, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,112,111,116, 95,
-115,113,117, 97,114,101, 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,109, 97,116, 52, 32,108, 97,109,112,105,109,
- 97,116, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,110,112,114, 41, 10,123, 10, 9,
-105,102, 40,100,111,116, 40,108,118, 44, 32,108, 97,109,112,118,101, 99, 41, 32, 62, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,118,
-101, 99, 51, 32,108,118,114,111,116, 32, 61, 32, 40,108, 97,109,112,105,109, 97,116, 42,118,101, 99, 52, 40,108,118, 44, 32, 48,
- 46, 48, 41, 41, 46,120,121,122, 59, 10, 9, 9,102,108,111, 97,116, 32,120, 32, 61, 32,109, 97,120, 40, 97, 98,115, 40,108,118,
-114,111,116, 46,120, 47,108,118,114,111,116, 46,122, 41, 44, 32, 97, 98,115, 40,108,118,114,111,116, 46,121, 47,108,118,114,111,
-116, 46,122, 41, 41, 59, 10, 10, 9, 9,105,110,112,114, 32, 61, 32, 49, 46, 48, 47,115,113,114,116, 40, 49, 46, 48, 32, 43, 32,
-120, 42,120, 41, 59, 10, 9,125, 10, 9,101,108,115,101, 10, 9, 9,105,110,112,114, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,
-118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,112,111,116, 95, 99,105,114, 99,108,101,
- 40,118,101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,111,117,116, 32,102,108,111, 97,
-116, 32,105,110,112,114, 41, 10,123, 10, 9,105,110,112,114, 32, 61, 32,100,111,116, 40,108,118, 44, 32,108, 97,109,112,118,101,
- 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,108, 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95,115,112,111,116,
- 40,102,108,111, 97,116, 32,115,112,111,116,115,105, 44, 32,102,108,111, 97,116, 32,115,112,111,116, 98,108, 44, 32,102,108,111,
- 97,116, 32,105,110,112,114, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,
-116, 32,111,117,116,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,116, 32, 61, 32,115,112,111,116,115,
-105, 59, 10, 10, 9,105,102, 40,105,110,112,114, 32, 60, 61, 32,116, 41, 32,123, 10, 9, 9,111,117,116,118,105,115,105,102, 97,
- 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,116, 32, 61, 32,105,110,112,114, 32, 45,
- 32,116, 59, 10, 10, 9, 9, 47, 42, 32,115,111,102,116, 32, 97,114,101, 97, 32, 42, 47, 10, 9, 9,105,102, 40,115,112,111,116,
- 98,108, 32, 33, 61, 32, 48, 46, 48, 41, 10, 9, 9, 9,105,110,112,114, 32, 42, 61, 32,115,109,111,111,116,104,115,116,101,112,
- 40, 48, 46, 48, 44, 32, 49, 46, 48, 44, 32,116, 47,115,112,111,116, 98,108, 41, 59, 10, 10, 9, 9,111,117,116,118,105,115,105,
-102, 97, 99, 32, 61, 32,118,105,115,105,102, 97, 99, 42,105,110,112,114, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,108,
- 97,109,112, 95,118,105,115,105, 98,105,108,105,116,121, 95, 99,108, 97,109,112, 40,102,108,111, 97,116, 32,118,105,115,105,102,
- 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118,105,115,105,102, 97, 99, 41, 10,123, 10, 9,111,117,116,
-118,105,115,105,102, 97, 99, 32, 61, 32, 40,118,105,115,105,102, 97, 99, 32, 60, 32, 48, 46, 48, 48, 49, 41, 63, 32, 48, 46, 48,
- 58, 32,118,105,115,105,102, 97, 99, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,118,105,101,119, 40,118,101,
- 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,105,101,119, 41, 10,123, 10, 9, 47, 42, 32,104, 97,110,100,
-108,101, 32,112,101,114,115,112,101, 99,116,105,118,101, 47,111,114,116,104,111,103,114, 97,112,104,105, 99, 32, 42, 47, 10, 9,
-118,105,101,119, 32, 61, 32, 40,103,108, 95, 80,114,111,106,101, 99,116,105,111,110, 77, 97,116,114,105,120, 91, 51, 93, 91, 51,
- 93, 32, 61, 61, 32, 48, 46, 48, 41, 63, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 41, 58, 32,118,101, 99, 51, 40, 48,
- 46, 48, 44, 32, 48, 46, 48, 44, 32, 45, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,116, 97,
-110,103,101,110,116, 95,118, 40,118,101, 99, 51, 32,108,118, 44, 32,118,101, 99, 51, 32,116, 97,110,103, 44, 32,111,117,116, 32,
-118,101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,101, 99, 51, 32, 99, 32, 61, 32, 99,114,111,115,115, 40,108,118, 44, 32,116,
- 97,110,103, 41, 59, 10, 9,118,101, 99, 51, 32,118,110,111,114, 32, 61, 32, 99,114,111,115,115, 40, 99, 44, 32,116, 97,110,103,
- 41, 59, 10, 10, 9,118,110, 32, 61, 32, 45,110,111,114,109, 97,108,105,122,101, 40,118,110,111,114, 41, 59, 10,125, 10, 10,118,
-111,105,100, 32,115,104, 97,100,101, 95,105,110,112, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,
-111,117,116, 32,102,108,111, 97,116, 32,105,110,112, 41, 10,123, 10, 9,105,110,112, 32, 61, 32,100,111,116, 40,118,110, 44, 32,
-108,118, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,115, 95,110,111, 95,100,105,102,102,117,115,101,
- 40,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,
-111,105,100, 32,115,104, 97,100,101, 95,105,115, 95,104,101,109,105, 40,102,108,111, 97,116, 32,105,110,112, 44, 32,111,117,116,
- 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, 61, 32, 48, 46, 53, 42,105,110,112, 32, 43, 32, 48, 46, 53,
- 59, 10,125, 10, 10,102,108,111, 97,116, 32, 97,114,101, 97, 95,108, 97,109,112, 95,101,110,101,114,103,121, 40,109, 97,116, 52,
- 32, 97,114,101, 97, 44, 32,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 51, 32,118,110, 41, 10,123, 10, 9,118,101, 99, 51,
- 32,118,101, 99, 91, 52, 93, 44, 32, 99, 91, 52, 93, 59, 10, 9,102,108,111, 97,116, 32,114, 97,100, 91, 52, 93, 44, 32,102, 97,
- 99, 59, 10, 9, 10, 9,118,101, 99, 91, 48, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,
-101, 97, 91, 48, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, 49, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,
- 99,111, 32, 45, 32, 97,114,101, 97, 91, 49, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, 50, 93, 32, 61, 32,110,111,114,
-109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 50, 93, 46,120,121,122, 41, 59, 10, 9,118,101, 99, 91, 51,
- 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,111, 32, 45, 32, 97,114,101, 97, 91, 51, 93, 46,120,121,122, 41, 59,
- 10, 10, 9, 99, 91, 48, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 48, 93,
- 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9, 99, 91, 49, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,
-111,115,115, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, 93, 41, 41, 59, 10, 9, 99, 91, 50, 93, 32, 61, 32,110,111,
-114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 50, 93, 44, 32,118,101, 99, 91, 51, 93, 41, 41, 59, 10,
- 9, 99, 91, 51, 93, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 99,114,111,115,115, 40,118,101, 99, 91, 51, 93, 44, 32,
-118,101, 99, 91, 48, 93, 41, 41, 59, 10, 10, 9,114, 97,100, 91, 48, 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101,
- 99, 91, 48, 93, 44, 32,118,101, 99, 91, 49, 93, 41, 41, 59, 10, 9,114, 97,100, 91, 49, 93, 32, 61, 32, 97, 99,111,115, 40,100,
-111,116, 40,118,101, 99, 91, 49, 93, 44, 32,118,101, 99, 91, 50, 93, 41, 41, 59, 10, 9,114, 97,100, 91, 50, 93, 32, 61, 32, 97,
- 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 50, 93, 44, 32,118,101, 99, 91, 51, 93, 41, 41, 59, 10, 9,114, 97,100, 91, 51,
- 93, 32, 61, 32, 97, 99,111,115, 40,100,111,116, 40,118,101, 99, 91, 51, 93, 44, 32,118,101, 99, 91, 48, 93, 41, 41, 59, 10, 10,
- 9,102, 97, 99, 61, 32, 32,114, 97,100, 91, 48, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 48, 93, 41, 59, 10, 9,102, 97,
- 99, 43, 61, 32,114, 97,100, 91, 49, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 49, 93, 41, 59, 10, 9,102, 97, 99, 43, 61,
- 32,114, 97,100, 91, 50, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 50, 93, 41, 59, 10, 9,102, 97, 99, 43, 61, 32,114, 97,
-100, 91, 51, 93, 42,100,111,116, 40,118,110, 44, 32, 99, 91, 51, 93, 41, 59, 10, 10, 9,114,101,116,117,114,110, 32,109, 97,120,
- 40,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,105,110,112, 95, 97,114,
-101, 97, 40,118,101, 99, 51, 32,112,111,115,105,116,105,111,110, 44, 32,118,101, 99, 51, 32,108, 97,109,112, 99,111, 44, 32,118,
-101, 99, 51, 32,108, 97,109,112,118,101, 99, 44, 32,118,101, 99, 51, 32,118,110, 44, 32,109, 97,116, 52, 32, 97,114,101, 97, 44,
- 32,102,108,111, 97,116, 32, 97,114,101, 97,115,105,122,101, 44, 32,102,108,111, 97,116, 32,107, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,105,110,112, 41, 10,123, 10, 9,118,101, 99, 51, 32, 99,111, 32, 61, 32,112,111,115,105,116,105,111,110, 59, 10,
- 9,118,101, 99, 51, 32,118,101, 99, 32, 61, 32, 99,111, 32, 45, 32,108, 97,109,112, 99,111, 59, 10, 10, 9,105,102, 40,100,111,
-116, 40,118,101, 99, 44, 32,108, 97,109,112,118,101, 99, 41, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,110,112, 32, 61,
- 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,105,110,116,101,110,115, 32,
- 61, 32, 97,114,101, 97, 95,108, 97,109,112, 95,101,110,101,114,103,121, 40, 97,114,101, 97, 44, 32, 99,111, 44, 32,118,110, 41,
- 59, 10, 10, 9, 9,105,110,112, 32, 61, 32,112,111,119, 40,105,110,116,101,110,115, 42, 97,114,101, 97,115,105,122,101, 44, 32,
-107, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,101, 95,111,114,101,
-110, 95,110, 97,121,101,114, 40,102,108,111, 97,116, 32,110,108, 44, 32,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108,
- 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104, 44, 32,111,117,116, 32,102,108,111, 97,116,
- 32,105,115, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 43, 32,108,
- 41, 59, 10, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,104, 41, 44, 32, 48, 46,
- 48, 41, 59, 10, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48,
- 46, 48, 41, 59, 10, 9,102,108,111, 97,116, 32,114,101, 97,108,110,108, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10,
- 10, 9,105,102, 40,114,101, 97,108,110,108, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59,
- 10, 9,125, 10, 9,101,108,115,101, 32,105,102, 40,110,108, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32,
- 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,102,108,111, 97,116, 32,118,104, 32, 61, 32,109, 97,120,
- 40,100,111,116, 40,118, 44, 32,104, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9, 9,102,108,111, 97,116, 32, 76,105,116, 95, 65, 32,
- 61, 32, 97, 99,111,115, 40,114,101, 97,108,110,108, 41, 59, 10, 9, 9,102,108,111, 97,116, 32, 86,105,101,119, 95, 65, 32, 61,
- 32, 97, 99,111,115, 40,110,118, 41, 59, 10, 10, 9, 9,118,101, 99, 51, 32, 76,105,116, 95, 66, 32, 61, 32,110,111,114,109, 97,
-108,105,122,101, 40,108, 32, 45, 32,114,101, 97,108,110,108, 42,110, 41, 59, 10, 9, 9,118,101, 99, 51, 32, 86,105,101,119, 95,
- 66, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 45, 32,110,118, 42,110, 41, 59, 10, 10, 9, 9,102,108,111, 97,
-116, 32,116, 32, 61, 32,109, 97,120, 40,100,111,116, 40, 76,105,116, 95, 66, 44, 32, 86,105,101,119, 95, 66, 41, 44, 32, 48, 46,
- 48, 41, 59, 10, 10, 9, 9,102,108,111, 97,116, 32, 97, 44, 32, 98, 59, 10, 10, 9, 9,105,102, 40, 76,105,116, 95, 65, 32, 62,
- 32, 86,105,101,119, 95, 65, 41, 32,123, 10, 9, 9, 9, 97, 32, 61, 32, 76,105,116, 95, 65, 59, 10, 9, 9, 9, 98, 32, 61, 32,
- 86,105,101,119, 95, 65, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9, 97, 32, 61, 32, 86,105,101,119,
- 95, 65, 59, 10, 9, 9, 9, 98, 32, 61, 32, 76,105,116, 95, 65, 59, 10, 9, 9,125, 10, 10, 9, 9,102,108,111, 97,116, 32, 65,
- 32, 61, 32, 49, 46, 48, 32, 45, 32, 40, 48, 46, 53, 42, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 47, 40, 40,114,
-111,117,103,104, 42,114,111,117,103,104, 41, 32, 43, 32, 48, 46, 51, 51, 41, 41, 41, 59, 10, 9, 9,102,108,111, 97,116, 32, 66,
- 32, 61, 32, 48, 46, 52, 53, 42, 40, 40,114,111,117,103,104, 42,114,111,117,103,104, 41, 47, 40, 40,114,111,117,103,104, 42,114,
-111,117,103,104, 41, 32, 43, 32, 48, 46, 48, 57, 41, 41, 59, 10, 10, 9, 9, 98, 32, 42, 61, 32, 48, 46, 57, 53, 59, 10, 9, 9,
-105,115, 32, 61, 32,110,108, 42, 40, 65, 32, 43, 32, 40, 66, 32, 42, 32,116, 32, 42, 32,115,105,110, 40, 97, 41, 32, 42, 32,116,
- 97,110, 40, 98, 41, 41, 41, 59, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,
-101, 95,116,111,111,110, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,
-108,111, 97,116, 32,115,105,122,101, 44, 32,102,108,111, 97,116, 32,116,115,109,111,111,116,104, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,105,115, 41, 10,123, 10, 9,102,108,111, 97,116, 32,114,115,108,116, 32, 61, 32,100,111,116, 40,110, 44, 32,108,
- 41, 59, 10, 9,102,108,111, 97,116, 32, 97,110,103, 32, 61, 32, 97, 99,111,115, 40,114,115,108,116, 41, 59, 10, 10, 9,105,102,
- 40, 97,110,103, 32, 60, 32,115,105,122,101, 41, 32,105,115, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40,
- 97,110,103, 32, 62, 32, 40,115,105,122,101, 32, 43, 32,116,115,109,111,111,116,104, 41, 32,124,124, 32,116,115,109,111,111,116,
-104, 32, 61, 61, 32, 48, 46, 48, 41, 32,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,105,115, 32, 61, 32, 49,
- 46, 48, 32, 45, 32, 40, 40, 97,110,103, 32, 45, 32,115,105,122,101, 41, 47,116,115,109,111,111,116,104, 41, 59, 10,125, 10, 10,
-118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,101, 95,109,105,110,110, 97,101,114,116, 40,102,108,111, 97,
-116, 32,110,108, 44, 32,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,100, 97,114,107,
-110,101,115,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,102, 40,110,108, 32, 60, 61, 32,
- 48, 46, 48, 41, 32,123, 10, 9, 9,105,115, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,
-102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41, 59, 10,
- 10, 9, 9,105,102, 40,100, 97,114,107,110,101,115,115, 32, 60, 61, 32, 49, 46, 48, 41, 10, 9, 9, 9,105,115, 32, 61, 32,110,
-108, 42,112,111,119, 40,109, 97,120, 40,110,118, 42,110,108, 44, 32, 48, 46, 49, 41, 44, 32,100, 97,114,107,110,101,115,115, 32,
- 45, 32, 49, 46, 48, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,105,115, 32, 61, 32,110,108, 42,112,111,119, 40, 49, 46,
- 48, 48, 48, 49, 32, 45, 32,110,118, 44, 32,100, 97,114,107,110,101,115,115, 32, 45, 32, 49, 46, 48, 41, 59, 10, 9,125, 10,125,
- 10, 10,102,108,111, 97,116, 32,102,114,101,115,110,101,108, 95,102, 97, 99, 40,118,101, 99, 51, 32,118,105,101,119, 44, 32,118,
-101, 99, 51, 32,118,110, 44, 32,102,108,111, 97,116, 32,103,114, 97,100, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123,
- 10, 9,102,108,111, 97,116, 32,116, 49, 44, 32,116, 50, 59, 10, 9,102,108,111, 97,116, 32,102,102, 97, 99, 59, 10, 10, 9,105,
-102, 40,102, 97, 99, 61, 61, 48, 46, 48, 41, 32,123, 10, 9, 9,102,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10, 9,125, 10, 9,
-101,108,115,101, 32,123, 10, 9, 9,116, 49, 61, 32,100,111,116, 40,118,105,101,119, 44, 32,118,110, 41, 59, 10, 9, 9,105,102,
- 40,116, 49, 62, 48, 46, 48, 41, 32, 32,116, 50, 61, 32, 49, 46, 48, 43,116, 49, 59, 10, 9, 9,101,108,115,101, 32,116, 50, 61,
- 32, 49, 46, 48, 45,116, 49, 59, 10, 10, 9, 9,116, 50, 61, 32,103,114, 97,100, 32, 43, 32, 40, 49, 46, 48, 45,103,114, 97,100,
- 41, 42,112,111,119, 40,116, 50, 44, 32,102, 97, 99, 41, 59, 10, 10, 9, 9,105,102, 40,116, 50, 60, 48, 46, 48, 41, 32,102,102,
- 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,105,102, 40,116, 50, 62, 49, 46, 48, 41, 32,102,102, 97, 99,
- 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,101,108,115,101, 32,102,102, 97, 99, 32, 61, 32,116, 50, 59, 10, 9,125, 10, 10, 9,114,
-101,116,117,114,110, 32,102,102, 97, 99, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,100,105,102,102,117,115,
-101, 95,102,114,101,115,110,101,108, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,118,101, 99, 51,
- 32,118,105,101,119, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 95,105, 44, 32,102,108,111, 97,116, 32,102, 97, 99, 44, 32,111,
-117,116, 32,102,108,111, 97,116, 32,105,115, 41, 10,123, 10, 9,105,115, 32, 61, 32,102,114,101,115,110,101,108, 95,102, 97, 99,
- 40,108,118, 44, 32,118,110, 44, 32,102, 97, 99, 95,105, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104,
- 97,100,101, 95, 99,117, 98,105, 99, 40,102,108,111, 97,116, 32,105,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,
-116,105,115, 41, 10,123, 10, 9,105,102, 40,105,115, 62, 48, 46, 48, 32, 38, 38, 32,105,115, 60, 49, 46, 48, 41, 10, 9, 9,111,
-117,116,105,115, 61, 32,115,109,111,111,116,104,115,116,101,112, 40, 48, 46, 48, 44, 32, 49, 46, 48, 44, 32,105,115, 41, 59, 10,
- 9,101,108,115,101, 10, 9, 9,111,117,116,105,115, 61, 32,105,115, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101,
- 95,118,105,115,105,102, 97, 99, 40,102,108,111, 97,116, 32,105, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44,
- 32,102,108,111, 97,116, 32,114,101,102,108, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,105, 41, 10,123, 10, 9,
- 47, 42,105,102, 40,105, 32, 62, 32, 48, 46, 48, 41, 42, 47, 10, 9, 9,111,117,116,105, 32, 61, 32,109, 97,120, 40,105, 42,118,
-105,115,105,102, 97, 99, 42,114,101,102,108, 44, 32, 48, 46, 48, 41, 59, 10, 9, 47, 42,101,108,115,101, 10, 9, 9,111,117,116,
-105, 32, 61, 32,105, 59, 42, 47, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,116, 97,110,103,101,110,116, 95,118,
- 95,115,112,101, 99, 40,118,101, 99, 51, 32,116, 97,110,103, 44, 32,111,117,116, 32,118,101, 99, 51, 32,118,110, 41, 10,123, 10,
- 9,118,110, 32, 61, 32,116, 97,110,103, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,100,100, 95,116,111,
- 95,100,105,102,102,117,115,101, 40,102,108,111, 97,116, 32,105, 44, 32,118,101, 99, 51, 32,108, 97,109,112, 99,111,108, 44, 32,
-118,101, 99, 51, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,105,102,
- 40,105, 32, 62, 32, 48, 46, 48, 41, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,105, 42,108, 97,109,112, 99,111,108, 42, 99,
-111,108, 59, 10, 9,101,108,115,101, 10, 9, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 44, 32, 48,
- 46, 48, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,104,101,109,105, 95,115,112,101,
- 99, 40,118,101, 99, 51, 32,118,110, 44, 32,118,101, 99, 51, 32,108,118, 44, 32,118,101, 99, 51, 32,118,105,101,119, 44, 32,102,
-108,111, 97,116, 32,115,112,101, 99, 44, 32,102,108,111, 97,116, 32,104, 97,114,100, 44, 32,102,108,111, 97,116, 32,118,105,115,
-105,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,116, 41, 10,123, 10, 9,108,118, 32, 43, 61, 32,118,105,101,119,
- 59, 10, 9,108,118, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108,118, 41, 59, 10, 10, 9,116, 32, 61, 32,100,111,116,
- 40,118,110, 44, 32,108,118, 41, 59, 10, 9,116, 32, 61, 32, 48, 46, 53, 42,116, 32, 43, 32, 48, 46, 53, 59, 10, 10, 9,116, 32,
- 61, 32,118,105,115,105,102, 97, 99, 42,115,112,101, 99, 42,112,111,119, 40,116, 44, 32,104, 97,114,100, 41, 59, 10,125, 10, 10,
-118,111,105,100, 32,115,104, 97,100,101, 95,112,104,111,110,103, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101,
- 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,104, 97,114,100, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,
-122,101, 40,108, 32, 43, 32,118, 41, 59, 10, 9,102,108,111, 97,116, 32,114,115,108,116, 32, 61, 32,109, 97,120, 40,100,111,116,
- 40,104, 44, 32,110, 41, 44, 32, 48, 46, 48, 41, 59, 10, 10, 9,115,112,101, 99,102, 97, 99, 32, 61, 32,112,111,119, 40,114,115,
-108,116, 44, 32,104, 97,114,100, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 99,111,111,107,116,111,114,
-114, 95,115,112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,
-108,111, 97,116, 32,104, 97,114,100, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10,
- 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9,102,108,111,
- 97,116, 32,110,104, 32, 61, 32,100,111,116, 40,110, 44, 32,104, 41, 59, 10, 10, 9,105,102, 40,110,104, 32, 60, 32, 48, 46, 48,
- 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10,
- 9, 9,102,108,111, 97,116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 41,
- 59, 10, 9, 9,102,108,111, 97,116, 32,105, 32, 61, 32,112,111,119, 40,110,104, 44, 32,104, 97,114,100, 41, 59, 10, 10, 9, 9,
-105, 32, 61, 32,105, 47, 40, 48, 46, 49, 43,110,118, 41, 59, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32,105, 59, 10, 9,
-125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 98,108,105,110,110, 95,115,112,101, 99, 40,118,101, 99, 51, 32,
-110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,114,101,102,114, 97, 99, 44,
- 32,102,108,111, 97,116, 32,115,112,101, 99, 95,112,111,119,101,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101,
- 99,102, 97, 99, 41, 10,123, 10, 9,105,102, 40,114,101,102,114, 97, 99, 32, 60, 32, 49, 46, 48, 41, 32,123, 10, 9, 9,115,112,
-101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,105,102, 40,115,112,101, 99, 95,112,111,
-119,101,114, 32, 61, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9,
-125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,105,102, 40,115,112,101, 99, 95,112,111,119,101,114, 60, 49, 48, 48, 46, 48, 41,
- 10, 9, 9, 9,115,112,101, 99, 95,112,111,119,101,114, 61, 32,115,113,114,116, 40, 49, 46, 48, 47,115,112,101, 99, 95,112,111,
-119,101,114, 41, 59, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,115,112,101, 99, 95,112,111,119,101,114, 61, 32, 49, 48, 46, 48,
- 47,115,112,101, 99, 95,112,111,119,101,114, 59, 10, 10, 9, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,
-122,101, 40,118, 32, 43, 32,108, 41, 59, 10, 9, 9,102,108,111, 97,116, 32,110,104, 32, 61, 32,100,111,116, 40,110, 44, 32,104,
- 41, 59, 10, 9, 9,105,102, 40,110,104, 32, 60, 32, 48, 46, 48, 41, 32,123, 10, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61,
- 32, 48, 46, 48, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9,102,108,111, 97,116, 32,110,118, 32, 61,
- 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 49, 41, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,
-110,108, 32, 61, 32,100,111,116, 40,110, 44, 32,108, 41, 59, 10, 9, 9, 9,105,102, 40,110,108, 32, 60, 61, 32, 48, 46, 48, 49,
- 41, 32,123, 10, 9, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 9,125, 10, 9, 9, 9,101,
-108,115,101, 32,123, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,118,104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,118, 44, 32,
-104, 41, 44, 32, 48, 46, 48, 49, 41, 59, 10, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 97, 32, 61, 32, 49, 46, 48, 59, 10, 9,
- 9, 9, 9,102,108,111, 97,116, 32, 98, 32, 61, 32, 40, 50, 46, 48, 42,110,104, 42,110,118, 41, 47,118,104, 59, 10, 9, 9, 9,
- 9,102,108,111, 97,116, 32, 99, 32, 61, 32, 40, 50, 46, 48, 42,110,104, 42,110,108, 41, 47,118,104, 59, 10, 10, 9, 9, 9, 9,
-102,108,111, 97,116, 32,103, 32, 61, 32, 48, 46, 48, 59, 10, 10, 9, 9, 9, 9,105,102, 40, 97, 32, 60, 32, 98, 32, 38, 38, 32,
- 97, 32, 60, 32, 99, 41, 32,103, 32, 61, 32, 97, 59, 10, 9, 9, 9, 9,101,108,115,101, 32,105,102, 40, 98, 32, 60, 32, 97, 32,
- 38, 38, 32, 98, 32, 60, 32, 99, 41, 32,103, 32, 61, 32, 98, 59, 10, 9, 9, 9, 9,101,108,115,101, 32,105,102, 40, 99, 32, 60,
- 32, 97, 32, 38, 38, 32, 99, 32, 60, 32, 98, 41, 32,103, 32, 61, 32, 99, 59, 10, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,112,
- 32, 61, 32,115,113,114,116, 40, 40, 40,114,101,102,114, 97, 99, 32, 42, 32,114,101,102,114, 97, 99, 41, 43, 40,118,104, 42,118,
-104, 41, 45, 49, 46, 48, 41, 41, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32,102, 32, 61, 32, 40, 40, 40,112, 45,118,104, 41,
- 42, 40,112, 45,118,104, 41, 41, 47, 40, 40,112, 43,118,104, 41, 42, 40,112, 43,118,104, 41, 41, 41, 42, 40, 49, 46, 48, 43, 40,
- 40, 40, 40,118,104, 42, 40,112, 43,118,104, 41, 41, 45, 49, 46, 48, 41, 42, 40, 40,118,104, 42, 40,112, 43,118,104, 41, 41, 45,
- 49, 46, 48, 41, 41, 47, 40, 40, 40,118,104, 42, 40,112, 45,118,104, 41, 41, 43, 49, 46, 48, 41, 42, 40, 40,118,104, 42, 40,112,
- 45,118,104, 41, 41, 43, 49, 46, 48, 41, 41, 41, 41, 59, 10, 9, 9, 9, 9,102,108,111, 97,116, 32, 97,110,103, 32, 61, 32, 97,
- 99,111,115, 40,110,104, 41, 59, 10, 10, 9, 9, 9, 9,115,112,101, 99,102, 97, 99, 32, 61, 32,109, 97,120, 40,102, 42,103, 42,
-101,120,112, 95, 98,108,101,110,100,101,114, 40, 40, 45, 40, 97,110,103, 42, 97,110,103, 41, 47, 40, 50, 46, 48, 42,115,112,101,
- 99, 95,112,111,119,101,114, 42,115,112,101, 99, 95,112,111,119,101,114, 41, 41, 41, 44, 32, 48, 46, 48, 41, 59, 10, 9, 9, 9,
-125, 10, 9, 9,125, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,119, 97,114,100,105,115,111, 95,115,
-112,101, 99, 40,118,101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,
-116, 32,114,109,115, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,118,101, 99,
- 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 43, 32,118, 41, 59, 10, 9,102,108,111, 97,116, 32,110,
-104, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,104, 41, 44, 32, 48, 46, 48, 48, 49, 41, 59, 10, 9,102,108,111, 97,
-116, 32,110,118, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,118, 41, 44, 32, 48, 46, 48, 48, 49, 41, 59, 10, 9,102,
-108,111, 97,116, 32,110,108, 32, 61, 32,109, 97,120, 40,100,111,116, 40,110, 44, 32,108, 41, 44, 32, 48, 46, 48, 48, 49, 41, 59,
- 10, 9,102,108,111, 97,116, 32, 97,110,103,108,101, 32, 61, 32,116, 97,110, 40, 97, 99,111,115, 40,110,104, 41, 41, 59, 10, 9,
-102,108,111, 97,116, 32, 97,108,112,104, 97, 32, 61, 32,109, 97,120, 40,114,109,115, 44, 32, 48, 46, 48, 48, 49, 41, 59, 10, 10,
- 9,115,112,101, 99,102, 97, 99, 61, 32,110,108, 32, 42, 32, 40, 49, 46, 48, 47, 40, 52, 46, 48, 42, 77, 95, 80, 73, 42, 97,108,
-112,104, 97, 42, 97,108,112,104, 97, 41, 41, 42, 40,101,120,112, 95, 98,108,101,110,100,101,114, 40, 45, 40, 97,110,103,108,101,
- 42, 97,110,103,108,101, 41, 47, 40, 97,108,112,104, 97, 42, 97,108,112,104, 97, 41, 41, 47, 40,115,113,114,116, 40,110,118, 42,
-110,108, 41, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,116,111,111,110, 95,115,112,101, 99, 40,118,
-101, 99, 51, 32,110, 44, 32,118,101, 99, 51, 32,108, 44, 32,118,101, 99, 51, 32,118, 44, 32,102,108,111, 97,116, 32,115,105,122,
-101, 44, 32,102,108,111, 97,116, 32,116,115,109,111,111,116,104, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,115,112,101, 99,
-102, 97, 99, 41, 10,123, 10, 9,118,101, 99, 51, 32,104, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,108, 32, 43, 32,118,
- 41, 59, 10, 9,102,108,111, 97,116, 32,114,115,108,116, 32, 61, 32,100,111,116, 40,104, 44, 32,110, 41, 59, 10, 9,102,108,111,
- 97,116, 32, 97,110,103, 32, 61, 32, 97, 99,111,115, 40,114,115,108,116, 41, 59, 10, 10, 9,105,102, 40, 97,110,103, 32, 60, 32,
-115,105,122,101, 41, 32,114,115,108,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,101,108,115,101, 32,105,102, 40, 97,110,103, 32, 62,
- 61, 32, 40,115,105,122,101, 32, 43, 32,116,115,109,111,111,116,104, 41, 32,124,124, 32,116,115,109,111,111,116,104, 32, 61, 61,
- 32, 48, 46, 48, 41, 32,114,115,108,116, 32, 61, 32, 48, 46, 48, 59, 10, 9,101,108,115,101, 32,114,115,108,116, 32, 61, 32, 49,
- 46, 48, 32, 45, 32, 40, 40, 97,110,103, 32, 45, 32,115,105,122,101, 41, 47,116,115,109,111,111,116,104, 41, 59, 10, 10, 9,115,
-112,101, 99,102, 97, 99, 32, 61, 32,114,115,108,116, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,115,112,101,
- 99, 95, 97,114,101, 97, 95,105,110,112, 40,102,108,111, 97,116, 32,115,112,101, 99,102, 97, 99, 44, 32,102,108,111, 97,116, 32,
-105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,112,101, 99,102, 97, 99, 41, 10,123, 10, 9,111,117,
-116,115,112,101, 99,102, 97, 99, 32, 61, 32,115,112,101, 99,102, 97, 99, 42,105,110,112, 59, 10,125, 10, 10,118,111,105,100, 32,
-115,104, 97,100,101, 95,115,112,101, 99, 95,116, 40,102,108,111, 97,116, 32,115,104, 97,100,102, 97, 99, 44, 32,102,108,111, 97,
-116, 32,115,112,101, 99, 44, 32,102,108,111, 97,116, 32,118,105,115,105,102, 97, 99, 44, 32,102,108,111, 97,116, 32,115,112,101,
- 99,102, 97, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,116, 41, 10,123, 10, 9,116, 32, 61, 32,115,104, 97,100,102, 97,
- 99, 42,115,112,101, 99, 42,118,105,115,105,102, 97, 99, 42,115,112,101, 99,102, 97, 99, 59, 10,125, 10, 10,118,111,105,100, 32,
-115,104, 97,100,101, 95, 97,100,100, 95,115,112,101, 99, 40,102,108,111, 97,116, 32,116, 44, 32,118,101, 99, 51, 32,108, 97,109,
-112, 99,111,108, 44, 32,118,101, 99, 51, 32,115,112,101, 99, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116,
- 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,116, 42,108, 97,109,112, 99,111,108, 42,115,112,101, 99, 99,
-111,108, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,100,100, 40,118,101, 99, 52, 32, 99,111,108, 49, 44,
- 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,
-111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 32, 43, 32, 99,111,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,104,
- 97,100,101, 95,109, 97,100,100, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101,
- 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116,
- 99,111,108, 32, 61, 32, 99,111,108, 32, 43, 32, 99,111,108, 49, 42, 99,111,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,
-104, 97,100,101, 95, 97,100,100, 95, 99,108, 97,109,112,101,100, 40,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52,
- 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,
-108, 32, 61, 32, 99,111,108, 49, 32, 43, 32,109, 97,120, 40, 99,111,108, 50, 44, 32,118,101, 99, 52, 40, 48, 46, 48, 44, 32, 48,
- 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,109, 97,
-100,100, 95, 99,108, 97,109,112,101,100, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,
-118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,
-117,116, 99,111,108, 32, 61, 32, 99,111,108, 32, 43, 32,109, 97,120, 40, 99,111,108, 49, 42, 99,111,108, 50, 44, 32,118,101, 99,
- 52, 40, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,
-115,104, 97,100,101, 95,109, 97,100,100,102, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,102,108,111, 97,116, 32,102, 44, 32,118,
-101, 99, 52, 32, 99,111,108, 49, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,
-116, 99,111,108, 32, 61, 32, 99,111,108, 32, 43, 32,102, 42, 99,111,108, 49, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,
-100,101, 95,109,117,108, 40,118,101, 99, 52, 32, 99,111,108, 49, 44, 32,118,101, 99, 52, 32, 99,111,108, 50, 44, 32,111,117,116,
- 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 49, 42, 99,
-111,108, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,109,117,108, 95,118, 97,108,117,101, 40,102,108,111,
- 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,
-108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32, 99,111,108, 42,102, 97, 99, 59, 10,125, 10, 10,118,111,105,100, 32,
-115,104, 97,100,101, 95,111, 98, 99,111,108,111,114, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,118,101, 99, 52, 32,111, 98, 99,
-111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61,
- 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 42,111, 98, 99,111,108, 46,114,103, 98, 44, 32, 99,111,108, 46, 97, 41, 59,
- 10,125, 10, 10,118,111,105,100, 32,114, 97,109,112, 95,114,103, 98,116,111, 98,119, 40,118,101, 99, 51, 32, 99,111,108,111,114,
- 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,118, 97,108, 41, 10,123, 10, 9,111,117,116,118, 97,108, 32, 61, 32,
- 99,111,108,111,114, 46,114, 42, 48, 46, 51, 32, 43, 32, 99,111,108,111,114, 46,103, 42, 48, 46, 53, 56, 32, 43, 32, 99,111,108,
-111,114, 46, 98, 42, 48, 46, 49, 50, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,111,110,108,121, 95,115,104,
- 97,100,111,119, 40,102,108,111, 97,116, 32,105, 44, 32,102,108,111, 97,116, 32,115,104, 97,100,102, 97, 99, 44, 32,102,108,111,
- 97,116, 32,101,110,101,114,103,121, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,115,104, 97,100,102, 97, 99, 41,
- 10,123, 10, 9,111,117,116,115,104, 97,100,102, 97, 99, 32, 61, 32,105, 42,101,110,101,114,103,121, 42, 40, 49, 46, 48, 32, 45,
- 32,115,104, 97,100,102, 97, 99, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,111,110,108,121, 95,115,104,
- 97,100,111,119, 95,100,105,102,102,117,115,101, 40,102,108,111, 97,116, 32,115,104, 97,100,102, 97, 99, 44, 32,118,101, 99, 51,
- 32,114,103, 98, 44, 32,118,101, 99, 52, 32,100,105,102,102, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116,100,105,102,
-102, 41, 10,123, 10, 9,111,117,116,100,105,102,102, 32, 61, 32,100,105,102,102, 32, 45, 32,118,101, 99, 52, 40,114,103, 98, 42,
-115,104, 97,100,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,111,110,108,
-121, 95,115,104, 97,100,111,119, 95,115,112,101, 99,117,108, 97,114, 40,102,108,111, 97,116, 32,115,104, 97,100,102, 97, 99, 44,
- 32,118,101, 99, 51, 32,115,112,101, 99,114,103, 98, 44, 32,118,101, 99, 52, 32,115,112,101, 99, 44, 32,111,117,116, 32,118,101,
- 99, 52, 32,111,117,116,115,112,101, 99, 41, 10,123, 10, 9,111,117,116,115,112,101, 99, 32, 61, 32,115,112,101, 99, 32, 45, 32,
-118,101, 99, 52, 40,115,112,101, 99,114,103, 98, 42,115,104, 97,100,102, 97, 99, 44, 32, 48, 46, 48, 41, 59, 10,125, 10, 10,118,
-111,105,100, 32,116,101,115,116, 95,115,104, 97,100,111,119, 98,117,102, 40,118,101, 99, 51, 32,114, 99,111, 44, 32,115, 97,109,
-112,108,101,114, 50, 68, 83,104, 97,100,111,119, 32,115,104, 97,100,111,119,109, 97,112, 44, 32,109, 97,116, 52, 32,115,104, 97,
-100,111,119,112,101,114,115,109, 97,116, 44, 32,102,108,111, 97,116, 32,115,104, 97,100,111,119, 98,105, 97,115, 44, 32,102,108,
-111, 97,116, 32,105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,105,102,
- 40,105,110,112, 32, 60, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,101,115,117,108,116, 32, 61, 32, 48, 46, 48, 59, 10, 9,
-125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,118,101, 99, 52, 32, 99,111, 32, 61, 32,115,104, 97,100,111,119,112,101,114,115,
-109, 97,116, 42,118,101, 99, 52, 40,114, 99,111, 44, 32, 49, 46, 48, 41, 59, 10, 10, 9, 9, 47, 47,102,108,111, 97,116, 32, 98,
-105, 97,115, 32, 61, 32, 40, 49, 46, 53, 32, 45, 32,105,110,112, 42,105,110,112, 41, 42,115,104, 97,100,111,119, 98,105, 97,115,
- 59, 10, 9, 9, 99,111, 46,122, 32, 45, 61, 32,115,104, 97,100,111,119, 98,105, 97,115, 42, 99,111, 46,119, 59, 10, 9, 9, 10,
- 9, 9,105,102, 32, 40, 99,111, 46,119, 32, 62, 32, 48, 46, 48, 32, 38, 38, 32, 99,111, 46,120, 32, 62, 32, 48, 46, 48, 32, 38,
- 38, 32, 99,111, 46,120, 47, 99,111, 46,119, 32, 60, 32, 49, 46, 48, 32, 38, 38, 32, 99,111, 46,121, 32, 62, 32, 48, 46, 48, 32,
- 38, 38, 32, 99,111, 46,121, 47, 99,111, 46,119, 32, 60, 32, 49, 46, 48, 41, 10, 9, 9, 9,114,101,115,117,108,116, 32, 61, 32,
-115,104, 97,100,111,119, 50, 68, 80,114,111,106, 40,115,104, 97,100,111,119,109, 97,112, 44, 32, 99,111, 41, 46,120, 59, 10, 9,
- 9,101,108,115,101, 10, 9, 9, 9,114,101,115,117,108,116, 32, 61, 32, 49, 46, 48, 59, 10, 9,125, 10,125, 10, 10,118,111,105,
-100, 32,116,101,115,116, 95,115,104, 97,100,111,119, 98,117,102, 95,118,115,109, 40,118,101, 99, 51, 32,114, 99,111, 44, 32,115,
- 97,109,112,108,101,114, 50, 68, 32,115,104, 97,100,111,119,109, 97,112, 44, 32,109, 97,116, 52, 32,115,104, 97,100,111,119,112,
-101,114,115,109, 97,116, 44, 32,102,108,111, 97,116, 32,115,104, 97,100,111,119, 98,105, 97,115, 44, 32,102,108,111, 97,116, 32,
- 98,108,101,101,100, 98,105, 97,115, 44, 32,102,108,111, 97,116, 32,105,110,112, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,
-114,101,115,117,108,116, 41, 10,123, 10, 9,105,102, 40,105,110,112, 32, 60, 61, 32, 48, 46, 48, 41, 32,123, 10, 9, 9,114,101,
-115,117,108,116, 32, 61, 32, 48, 46, 48, 59, 10, 9,125, 10, 9,101,108,115,101, 32,123, 10, 9, 9,118,101, 99, 52, 32, 99,111,
- 32, 61, 32,115,104, 97,100,111,119,112,101,114,115,109, 97,116, 42,118,101, 99, 52, 40,114, 99,111, 44, 32, 49, 46, 48, 41, 59,
- 10, 9, 9,105,102, 32, 40, 99,111, 46,119, 32, 62, 32, 48, 46, 48, 32, 38, 38, 32, 99,111, 46,120, 32, 62, 32, 48, 46, 48, 32,
- 38, 38, 32, 99,111, 46,120, 47, 99,111, 46,119, 32, 60, 32, 49, 46, 48, 32, 38, 38, 32, 99,111, 46,121, 32, 62, 32, 48, 46, 48,
- 32, 38, 38, 32, 99,111, 46,121, 47, 99,111, 46,119, 32, 60, 32, 49, 46, 48, 41, 32,123, 10, 9, 9, 9,118,101, 99, 50, 32,109,
-111,109,101,110,116,115, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 80,114,111,106, 40,115,104, 97,100,111,119,109, 97,112,
- 44, 32, 99,111, 41, 46,114,103, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,100,105,115,116, 32, 61, 32, 99,111, 46,122, 47, 99,
-111, 46,119, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,112, 32, 61, 32, 48, 46, 48, 59, 10, 9, 9, 9, 10, 9, 9, 9,105,102,
- 40,100,105,115,116, 32, 60, 61, 32,109,111,109,101,110,116,115, 46,120, 41, 10, 9, 9, 9, 9,112, 32, 61, 32, 49, 46, 48, 59,
- 10, 10, 9, 9, 9,102,108,111, 97,116, 32,118, 97,114,105, 97,110, 99,101, 32, 61, 32,109,111,109,101,110,116,115, 46,121, 32,
- 45, 32, 40,109,111,109,101,110,116,115, 46,120, 42,109,111,109,101,110,116,115, 46,120, 41, 59, 10, 9, 9, 9,118, 97,114,105,
- 97,110, 99,101, 32, 61, 32,109, 97,120, 40,118, 97,114,105, 97,110, 99,101, 44, 32,115,104, 97,100,111,119, 98,105, 97,115, 47,
- 49, 48, 46, 48, 41, 59, 10, 10, 9, 9, 9,102,108,111, 97,116, 32,100, 32, 61, 32,109,111,109,101,110,116,115, 46,120, 32, 45,
- 32,100,105,115,116, 59, 10, 9, 9, 9,102,108,111, 97,116, 32,112, 95,109, 97,120, 32, 61, 32,118, 97,114,105, 97,110, 99,101,
- 32, 47, 32, 40,118, 97,114,105, 97,110, 99,101, 32, 43, 32,100, 42,100, 41, 59, 10, 10, 9, 9, 9, 47, 47, 32, 78,111,119, 32,
-114,101,100,117, 99,101, 32,108,105,103,104,116, 45, 98,108,101,101,100,105,110,103, 32, 98,121, 32,114,101,109,111,118,105,110,
-103, 32,116,104,101, 32, 91, 48, 44, 32,120, 93, 32,116, 97,105,108, 32, 97,110,100, 32,108,105,110,101, 97,114,108,121, 32,114,
-101,115, 99, 97,108,105,110,103, 32, 40,120, 44, 32, 49, 93, 10, 9, 9, 9,112, 95,109, 97,120, 32, 61, 32, 99,108, 97,109,112,
- 40, 40,112, 95,109, 97,120, 45, 98,108,101,101,100, 98,105, 97,115, 41, 47, 40, 49, 46, 48, 45, 98,108,101,101,100, 98,105, 97,
-115, 41, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 10, 9, 9, 9,114,101,115,117,108,116, 32, 61, 32,109, 97,120, 40,
-112, 44, 32,112, 95,109, 97,120, 41, 59, 10, 9, 9,125, 10, 9, 9,101,108,115,101, 32,123, 10, 9, 9, 9,114,101,115,117,108,
-116, 32, 61, 32, 49, 46, 48, 59, 10, 9, 9,125, 9, 9, 9, 10, 9,125, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101,
- 95,108,105,103,104,116, 95,116,101,120,116,117,114,101, 40,118,101, 99, 51, 32,114, 99,111, 44, 32,115, 97,109,112,108,101,114,
- 50, 68, 32, 99,111,111,107,105,101, 44, 32,109, 97,116, 52, 32,115,104, 97,100,111,119,112,101,114,115,109, 97,116, 44, 32,111,
-117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 10, 9,118,101, 99, 52, 32, 99,111, 32, 61, 32,115,104,
- 97,100,111,119,112,101,114,115,109, 97,116, 42,118,101, 99, 52, 40,114, 99,111, 44, 32, 49, 46, 48, 41, 59, 10, 10, 9,114,101,
-115,117,108,116, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 80,114,111,106, 40, 99,111,111,107,105,101, 44, 32, 99,111, 41,
- 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,101,120,112,111,115,117,114,101, 95, 99,111,114,114,101, 99,116,
- 40,118,101, 99, 51, 32, 99,111,108, 44, 32,102,108,111, 97,116, 32,108,105,110,102, 97, 99, 44, 32,102,108,111, 97,116, 32,108,
-111,103,102, 97, 99, 44, 32,111,117,116, 32,118,101, 99, 51, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,111,117,116, 99,111,
-108, 32, 61, 32,108,105,110,102, 97, 99, 42, 40, 49, 46, 48, 32, 45, 32,101,120,112, 40, 99,111,108, 42,108,111,103,102, 97, 99,
- 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95,109,105,115,116, 95,102, 97, 99,116,111,114, 40,118,101,
- 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,109,105,115,116,115,116, 97, 44, 32,102,108,111, 97,116, 32,109,105,115,116,
-100,105,115,116, 44, 32,102,108,111, 97,116, 32,109,105,115,116,116,121,112,101, 44, 32,102,108,111, 97,116, 32,109,105,115,105,
- 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111,117,116,102, 97, 99, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99,
- 44, 32,122, 99,111,114, 59, 10, 10, 9,122, 99,111,114, 32, 61, 32, 40,103,108, 95, 80,114,111,106,101, 99,116,105,111,110, 77,
- 97,116,114,105,120, 91, 51, 93, 91, 51, 93, 32, 61, 61, 32, 48, 46, 48, 41, 63, 32,108,101,110,103,116,104, 40, 99,111, 41, 58,
- 32, 45, 99,111, 91, 50, 93, 59, 10, 9, 10, 9,102, 97, 99, 32, 61, 32, 99,108, 97,109,112, 40, 40,122, 99,111,114, 45,109,105,
-115,116,115,116, 97, 41, 47,109,105,115,116,100,105,115,116, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,105,102, 40,
-109,105,115,116,116,121,112,101, 32, 61, 61, 32, 48, 46, 48, 41, 32,102, 97, 99, 32, 42, 61, 32,102, 97, 99, 59, 10, 9,101,108,
-115,101, 32,105,102, 40,109,105,115,116,116,121,112,101, 32, 61, 61, 32, 49, 46, 48, 41, 59, 10, 9,101,108,115,101, 32,102, 97,
- 99, 32, 61, 32,115,113,114,116, 40,102, 97, 99, 41, 59, 10, 10, 9,111,117,116,102, 97, 99, 32, 61, 32, 49, 46, 48, 32, 45, 32,
- 40, 49, 46, 48, 45,102, 97, 99, 41, 42, 40, 49, 46, 48, 45,109,105,115,105, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104,
- 97,100,101, 95,119,111,114,108,100, 95,109,105,120, 40,118,101, 99, 51, 32,104,111,114, 44, 32,118,101, 99, 52, 32, 99,111,108,
- 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123, 10, 9,102,108,111, 97,116, 32,102, 97, 99, 32,
- 61, 32, 99,108, 97,109,112, 40, 99,111,108, 46, 97, 44, 32, 48, 46, 48, 44, 32, 49, 46, 48, 41, 59, 10, 9,111,117,116, 99,111,
-108, 32, 61, 32,118,101, 99, 52, 40,109,105,120, 40,104,111,114, 44, 32, 99,111,108, 46,114,103, 98, 44, 32,102, 97, 99, 41, 44,
- 32, 99,111,108, 46, 97, 41, 59, 10,125, 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,108,112,104, 97, 95,111,112, 97,
-113,117,101, 40,118,101, 99, 52, 32, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108, 41, 10,123,
- 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 44, 32, 49, 46, 48, 41, 59, 10,125,
- 10, 10,118,111,105,100, 32,115,104, 97,100,101, 95, 97,108,112,104, 97, 95,111, 98, 99,111,108,111,114, 40,118,101, 99, 52, 32,
- 99,111,108, 44, 32,118,101, 99, 52, 32,111, 98, 99,111,108, 44, 32,111,117,116, 32,118,101, 99, 52, 32,111,117,116, 99,111,108,
- 41, 10,123, 10, 9,111,117,116, 99,111,108, 32, 61, 32,118,101, 99, 52, 40, 99,111,108, 46,114,103, 98, 44, 32, 99,111,108, 46,
- 97, 42,111, 98, 99,111,108, 46, 97, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 78, 69, 87, 32,
- 83, 72, 65, 68, 69, 82, 32, 85, 84, 73, 76, 73, 84, 73, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47,
- 10, 10,102,108,111, 97,116, 32,102,114,101,115,110,101,108, 95,100,105,101,108,101, 99,116,114,105, 99, 40,118,101, 99, 51, 32,
- 73,110, 99,111,109,105,110,103, 44, 32,118,101, 99, 51, 32, 78,111,114,109, 97,108, 44, 32,102,108,111, 97,116, 32,101,116, 97,
- 41, 10,123, 10, 32, 32, 32, 32, 47, 42, 32, 99,111,109,112,117,116,101, 32,102,114,101,115,110,101,108, 32,114,101,102,108,101,
- 99,116, 97,110, 99,101, 32,119,105,116,104,111,117,116, 32,101,120,112,108,105, 99,105,116,108,121, 32, 99,111,109,112,117,116,
-105,110,103, 10, 32, 32, 32, 32, 32, 32, 32,116,104,101, 32,114,101,102,114, 97, 99,116,101,100, 32,100,105,114,101, 99,116,105,
-111,110, 32, 42, 47, 10, 32, 32, 32, 32,102,108,111, 97,116, 32, 99, 32, 61, 32, 97, 98,115, 40,100,111,116, 40, 73,110, 99,111,
-109,105,110,103, 44, 32, 78,111,114,109, 97,108, 41, 41, 59, 10, 32, 32, 32, 32,102,108,111, 97,116, 32,103, 32, 61, 32,101,116,
- 97, 32, 42, 32,101,116, 97, 32, 45, 32, 49, 46, 48, 32, 43, 32, 99, 32, 42, 32, 99, 59, 10, 32, 32, 32, 32,102,108,111, 97,116,
- 32,114,101,115,117,108,116, 59, 10, 10, 32, 32, 32, 32,105,102, 40,103, 32, 62, 32, 48, 46, 48, 41, 32,123, 10, 32, 32, 32, 32,
- 32, 32, 32, 32,103, 32, 61, 32,115,113,114,116, 40,103, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32,102,108,111, 97,116, 32, 65,
- 32, 61, 40,103, 32, 45, 32, 99, 41, 47, 40,103, 32, 43, 32, 99, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32,102,108,111, 97,116,
- 32, 66, 32, 61, 40, 99, 32, 42, 40,103, 32, 43, 32, 99, 41, 45, 32, 49, 46, 48, 41, 47, 40, 99, 32, 42, 40,103, 32, 45, 32, 99,
- 41, 43, 32, 49, 46, 48, 41, 59, 10, 32, 32, 32, 32, 32, 32, 32, 32,114,101,115,117,108,116, 32, 61, 32, 48, 46, 53, 32, 42, 32,
- 65, 32, 42, 32, 65, 32, 42, 40, 49, 46, 48, 32, 43, 32, 66, 32, 42, 32, 66, 41, 59, 10, 32, 32, 32, 32,125, 10, 32, 32, 32, 32,
-101,108,115,101, 10, 32, 32, 32, 32, 32, 32, 32, 32,114,101,115,117,108,116, 32, 61, 32, 49, 46, 48, 59, 32, 32, 47, 42, 32, 84,
- 73, 82, 32, 40,110,111, 32,114,101,102,114, 97, 99,116,101,100, 32, 99,111,109,112,111,110,101,110,116, 41, 32, 42, 47, 10, 10,
- 32, 32, 32, 32,114,101,116,117,114,110, 32,114,101,115,117,108,116, 59, 10,125, 10, 10,102,108,111, 97,116, 32,104,121,112,111,
-116, 40,102,108,111, 97,116, 32,120, 44, 32,102,108,111, 97,116, 32,121, 41, 10,123, 10, 9,114,101,116,117,114,110, 32,115,113,
-114,116, 40,120, 42,120, 32, 43, 32,121, 42,121, 41, 59, 10,125, 10, 10, 47, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 32, 78,
- 69, 87, 32, 83, 72, 65, 68, 69, 82, 32, 78, 79, 68, 69, 83, 32, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47,
- 10, 10, 35,100,101,102,105,110,101, 32, 78, 85, 77, 95, 76, 73, 71, 72, 84, 83, 32, 51, 10, 10, 47, 42, 32, 98,115,100,102,115,
- 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,100,105,102,102,117,115,101, 40,118,101, 99, 52,
- 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115, 44, 32,118,101, 99, 51, 32, 78, 44,
- 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9, 47, 42, 32, 97,109, 98,105,101,110,116, 32,
-108,105,103,104,116, 32, 42, 47, 10, 9,118,101, 99, 51, 32, 76, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 50, 41, 59, 10, 10, 9,
- 47, 42, 32,100,105,114,101, 99,116,105,111,110, 97,108, 32,108,105,103,104,116,115, 32, 42, 47, 10, 9,102,111,114, 40,105,110,
-116, 32,105, 32, 61, 32, 48, 59, 32,105, 32, 60, 32, 78, 85, 77, 95, 76, 73, 71, 72, 84, 83, 59, 32,105, 43, 43, 41, 32,123, 10,
- 9, 9,118,101, 99, 51, 32,108,105,103,104,116, 95,112,111,115,105,116,105,111,110, 32, 61, 32,103,108, 95, 76,105,103,104,116,
- 83,111,117,114, 99,101, 91,105, 93, 46,112,111,115,105,116,105,111,110, 46,120,121,122, 59, 10, 9, 9,118,101, 99, 51, 32,108,
-105,103,104,116, 95,100,105,102,102,117,115,101, 32, 61, 32,103,108, 95, 76,105,103,104,116, 83,111,117,114, 99,101, 91,105, 93,
- 46,100,105,102,102,117,115,101, 46,114,103, 98, 59, 10, 10, 9, 9,102,108,111, 97,116, 32, 98,115,100,102, 32, 61, 32,109, 97,
-120, 40,100,111,116, 40, 78, 44, 32,108,105,103,104,116, 95,112,111,115,105,116,105,111,110, 41, 44, 32, 48, 46, 48, 41, 59, 10,
- 9, 9, 76, 32, 43, 61, 32,108,105,103,104,116, 95,100,105,102,102,117,115,101, 42, 98,115,100,102, 59, 10, 9,125, 10, 10, 9,
-114,101,115,117,108,116, 32, 61, 32,118,101, 99, 52, 40, 76, 42, 99,111,108,111,114, 46,114,103, 98, 44, 32, 49, 46, 48, 41, 59,
- 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,103,108,111,115,115,121, 40,118,101, 99, 52, 32, 99,
-111,108,111,114, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115, 44, 32,118,101, 99, 51, 32, 78, 44, 32,118,
-101, 99, 51, 32, 73, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9, 47, 42, 32, 97,109,
- 98,105,101,110,116, 32,108,105,103,104,116, 32, 42, 47, 10, 9,118,101, 99, 51, 32, 76, 32, 61, 32,118,101, 99, 51, 40, 48, 46,
- 50, 41, 59, 10, 10, 9, 47, 42, 32,100,105,114,101, 99,116,105,111,110, 97,108, 32,108,105,103,104,116,115, 32, 42, 47, 10, 9,
-102,111,114, 40,105,110,116, 32,105, 32, 61, 32, 48, 59, 32,105, 32, 60, 32, 78, 85, 77, 95, 76, 73, 71, 72, 84, 83, 59, 32,105,
- 43, 43, 41, 32,123, 10, 9, 9,118,101, 99, 51, 32,108,105,103,104,116, 95,112,111,115,105,116,105,111,110, 32, 61, 32,103,108,
- 95, 76,105,103,104,116, 83,111,117,114, 99,101, 91,105, 93, 46,112,111,115,105,116,105,111,110, 46,120,121,122, 59, 10, 9, 9,
-118,101, 99, 51, 32, 72, 32, 61, 32,103,108, 95, 76,105,103,104,116, 83,111,117,114, 99,101, 91,105, 93, 46,104, 97,108,102, 86,
-101, 99,116,111,114, 46,120,121,122, 59, 10, 9, 9,118,101, 99, 51, 32,108,105,103,104,116, 95,100,105,102,102,117,115,101, 32,
- 61, 32,103,108, 95, 76,105,103,104,116, 83,111,117,114, 99,101, 91,105, 93, 46,100,105,102,102,117,115,101, 46,114,103, 98, 59,
- 10, 9, 9,118,101, 99, 51, 32,108,105,103,104,116, 95,115,112,101, 99,117,108, 97,114, 32, 61, 32,103,108, 95, 76,105,103,104,
-116, 83,111,117,114, 99,101, 91,105, 93, 46,115,112,101, 99,117,108, 97,114, 46,114,103, 98, 59, 10, 10, 9, 9, 47, 42, 32,119,
-101, 32,109,105,120, 32,105,110, 32,115,111,109,101, 32,100,105,102,102,117,115,101, 32,115,111, 32,108,111,119, 32,114,111,117,
-103,104,110,101,115,115, 32,115,116,105,108,108, 32,115,104,111,119,115, 32,117,112, 32, 42, 47, 10, 9, 9,102,108,111, 97,116,
- 32, 98,115,100,102, 32, 61, 32, 48, 46, 53, 42,112,111,119, 40,109, 97,120, 40,100,111,116, 40, 78, 44, 32, 72, 41, 44, 32, 48,
- 46, 48, 41, 44, 32, 49, 46, 48, 47,114,111,117,103,104,110,101,115,115, 41, 59, 10, 9, 9, 98,115,100,102, 32, 43, 61, 32, 48,
- 46, 53, 42,109, 97,120, 40,100,111,116, 40, 78, 44, 32,108,105,103,104,116, 95,112,111,115,105,116,105,111,110, 41, 44, 32, 48,
- 46, 48, 41, 59, 10, 9, 9, 76, 32, 43, 61, 32,108,105,103,104,116, 95,115,112,101, 99,117,108, 97,114, 42, 98,115,100,102, 59,
- 10, 9,125, 10, 10, 9,114,101,115,117,108,116, 32, 61, 32,118,101, 99, 52, 40, 76, 42, 99,111,108,111,114, 46,114,103, 98, 44,
- 32, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95, 97,110,105,115,111,116,114,
-111,112,105, 99, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115,
- 85, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115, 86, 44, 32,118,101, 99, 51, 32, 78, 44, 32,118,101, 99,
- 51, 32, 73, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,110,111,100,101, 95, 98,115,
-100,102, 95,100,105,102,102,117,115,101, 40, 99,111,108,111,114, 44, 32, 48, 46, 48, 44, 32, 78, 44, 32,114,101,115,117,108,116,
- 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,103,108, 97,115,115, 40,118,101, 99, 52, 32,
- 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,114,111,117,103,104,110,101,115,115, 44, 32,102,108,111, 97,116, 32,105,111,
-114, 44, 32,118,101, 99, 51, 32, 78, 44, 32,118,101, 99, 51, 32, 73, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,
-108,116, 41, 10,123, 10, 9,110,111,100,101, 95, 98,115,100,102, 95,100,105,102,102,117,115,101, 40, 99,111,108,111,114, 44, 32,
- 48, 46, 48, 44, 32, 78, 44, 32,114,101,115,117,108,116, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,
-100,102, 95,116,114, 97,110,115,108,117, 99,101,110,116, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,118,101, 99, 51, 32,
- 78, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,110,111,100,101, 95, 98,115,100,102,
- 95,100,105,102,102,117,115,101, 40, 99,111,108,111,114, 44, 32, 48, 46, 48, 44, 32, 78, 44, 32,114,101,115,117,108,116, 41, 59,
- 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,116,114, 97,110,115,112, 97,114,101,110,116, 40,118,
-101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9, 47,
- 42, 32,116,104,105,115, 32,105,115,110, 39,116, 32,114,105,103,104,116, 32, 42, 47, 10, 9,114,101,115,117,108,116, 46,114, 32,
- 61, 32, 99,111,108,111,114, 46,114, 59, 10, 9,114,101,115,117,108,116, 46,103, 32, 61, 32, 99,111,108,111,114, 46,103, 59, 10,
- 9,114,101,115,117,108,116, 46, 98, 32, 61, 32, 99,111,108,111,114, 46, 98, 59, 10, 9,114,101,115,117,108,116, 46, 97, 32, 61,
- 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95, 98,115,100,102, 95,118,101,108,118,101,116, 40,118,
-101, 99, 52, 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,115,105,103,109, 97, 44, 32,118,101, 99, 51, 32, 78, 44, 32,
-111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,110,111,100,101, 95, 98,115,100,102, 95,100,105,
-102,102,117,115,101, 40, 99,111,108,111,114, 44, 32, 48, 46, 48, 44, 32, 78, 44, 32,114,101,115,117,108,116, 41, 59, 10,125, 10,
- 10, 47, 42, 32,101,109,105,115,115,105,111,110, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,101,109,105,115,115,
-105,111,110, 40,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,102,108,111, 97,116, 32,115,116,114,101,110,103,116,104, 44, 32,
-118,101, 99, 51, 32, 78, 44, 32,111,117,116, 32,118,101, 99, 52, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,114,101,115,117,
-108,116, 32, 61, 32, 99,111,108,111,114, 42,115,116,114,101,110,103,116,104, 59, 10,125, 10, 10, 47, 42, 32, 99,108,111,115,117,
-114,101,115, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,109,105,120, 95,115,104, 97,100,101,114, 40,102,108,111,
- 97,116, 32,102, 97, 99, 44, 32,118,101, 99, 52, 32,115,104, 97,100,101,114, 49, 44, 32,118,101, 99, 52, 32,115,104, 97,100,101,
-114, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,115,104, 97,100,101,114, 41, 10,123, 10, 9,115,104, 97,100,101,114, 32, 61,
- 32,109,105,120, 40,115,104, 97,100,101,114, 49, 44, 32,115,104, 97,100,101,114, 50, 44, 32,102, 97, 99, 41, 59, 10,125, 10, 10,
-118,111,105,100, 32,110,111,100,101, 95, 97,100,100, 95,115,104, 97,100,101,114, 40,118,101, 99, 52, 32,115,104, 97,100,101,114,
- 49, 44, 32,118,101, 99, 52, 32,115,104, 97,100,101,114, 50, 44, 32,111,117,116, 32,118,101, 99, 52, 32,115,104, 97,100,101,114,
- 41, 10,123, 10, 9,115,104, 97,100,101,114, 32, 61, 32,115,104, 97,100,101,114, 49, 32, 43, 32,115,104, 97,100,101,114, 50, 59,
- 10,125, 10, 10, 47, 42, 32,102,114,101,115,110,101,108, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,102,114,101,
-115,110,101,108, 40,102,108,111, 97,116, 32,105,111,114, 44, 32,118,101, 99, 51, 32, 78, 44, 32,118,101, 99, 51, 32, 73, 44, 32,
-111,117,116, 32,102,108,111, 97,116, 32,114,101,115,117,108,116, 41, 10,123, 10, 9,102,108,111, 97,116, 32,101,116, 97, 32, 61,
- 32,109, 97,120, 40,105,111,114, 44, 32, 48, 46, 48, 48, 48, 48, 49, 41, 59, 10, 9,114,101,115,117,108,116, 32, 61, 32,102,114,
-101,115,110,101,108, 95,100,105,101,108,101, 99,116,114,105, 99, 40, 73, 44, 32, 78, 44, 32,101,116, 97, 41, 59, 32, 47, 47, 98,
- 97, 99,107,102, 97, 99,105,110,103, 40, 41, 63, 32, 49, 46, 48, 47,101,116, 97, 58, 32,101,116, 97, 41, 59, 10,125, 10, 10, 47,
- 42, 32,103,101,111,109,101,116,114,121, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,103,101,111,109,101,116,114,
-121, 40,118,101, 99, 51, 32, 73, 44, 32,118,101, 99, 51, 32, 78, 44, 32,109, 97,116, 52, 32,116,111,119,111,114,108,100, 44, 10,
- 9,111,117,116, 32,118,101, 99, 51, 32,112,111,115,105,116,105,111,110, 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,
-109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,116, 97,110,103,101,110,116, 44, 10, 9,111,117,116, 32,118,101, 99, 51,
- 32,116,114,117,101, 95,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,105,110, 99,111,109,105,110,103, 44,
- 32,111,117,116, 32,118,101, 99, 51, 32,112, 97,114, 97,109,101,116,114,105, 99, 44, 10, 9,111,117,116, 32,102,108,111, 97,116,
- 32, 98, 97, 99,107,102, 97, 99,105,110,103, 41, 10,123, 10, 9,112,111,115,105,116,105,111,110, 32, 61, 32, 40,116,111,119,111,
-114,108,100, 42,118,101, 99, 52, 40, 73, 44, 32, 49, 46, 48, 41, 41, 46,120,121,122, 59, 10, 9,110,111,114,109, 97,108, 32, 61,
- 32, 78, 59, 10, 9,116, 97,110,103,101,110,116, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10, 9,116,114,117,101, 95,
-110,111,114,109, 97,108, 32, 61, 32, 78, 59, 10, 9,105,110, 99,111,109,105,110,103, 32, 61, 32, 73, 59, 10, 9,112, 97,114, 97,
-109,101,116,114,105, 99, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 41, 59, 10, 9, 98, 97, 99,107,102, 97, 99,105,110,103, 32,
- 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95, 99,111,111,114,100, 40,118,101,
- 99, 51, 32, 73, 44, 32,118,101, 99, 51, 32, 78, 44, 32,109, 97,116, 52, 32,118,105,101,119,105,110,118,109, 97,116, 44, 32,109,
- 97,116, 52, 32,111, 98,105,110,118,109, 97,116, 44, 10, 9,118,101, 99, 51, 32, 97,116,116,114, 95,111,114, 99,111, 44, 32,118,
-101, 99, 51, 32, 97,116,116,114, 95,117,118, 44, 10, 9,111,117,116, 32,118,101, 99, 51, 32,103,101,110,101,114, 97,116,101,100,
- 44, 32,111,117,116, 32,118,101, 99, 51, 32,110,111,114,109, 97,108, 44, 32,111,117,116, 32,118,101, 99, 51, 32,117,118, 44, 32,
-111,117,116, 32,118,101, 99, 51, 32,111, 98,106,101, 99,116, 44, 10, 9,111,117,116, 32,118,101, 99, 51, 32, 99, 97,109,101,114,
- 97, 44, 32,111,117,116, 32,118,101, 99, 51, 32,119,105,110,100,111,119, 44, 32,111,117,116, 32,118,101, 99, 51, 32,114,101,102,
-108,101, 99,116,105,111,110, 41, 10,123, 10, 9,103,101,110,101,114, 97,116,101,100, 32, 61, 32, 97,116,116,114, 95,111,114, 99,
-111, 59, 10, 9,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40, 40,111, 98,105,110,118,109, 97,116,
- 42, 40,118,105,101,119,105,110,118,109, 97,116, 42,118,101, 99, 52, 40, 78, 44, 32, 48, 46, 48, 41, 41, 41, 46,120,121,122, 41,
- 59, 10, 9,117,118, 32, 61, 32, 97,116,116,114, 95,117,118, 59, 10, 9,111, 98,106,101, 99,116, 32, 61, 32, 73, 59, 10, 9, 99,
- 97,109,101,114, 97, 32, 61, 32, 73, 59, 10, 9,119,105,110,100,111,119, 32, 61, 32,103,108, 95, 70,114, 97,103, 67,111,111,114,
-100, 46,120,121,122, 59, 10, 9,114,101,102,108,101, 99,116,105,111,110, 32, 61, 32,114,101,102,108,101, 99,116, 40, 78, 44, 32,
- 73, 41, 59, 10, 10,125, 10, 10, 47, 42, 32,116,101,120,116,117,114,101,115, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,
-101, 95,116,101,120, 95,103,114, 97,100,105,101,110,116, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 52,
- 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32,
- 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100,
- 32,110,111,100,101, 95,116,101,120, 95, 99,104,101, 99,107,101,114, 40,118,101, 99, 51, 32, 99,111, 44, 32,118,101, 99, 52, 32,
- 99,111,108,111,114, 49, 44, 32,118,101, 99, 52, 32, 99,111,108,111,114, 50, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101,
- 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41,
- 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97, 99, 32, 61, 32, 49, 46,
- 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95, 99,108,111,117,100,115, 40,118,101, 99, 51, 32,
- 99,111, 44, 32,102,108,111, 97,116, 32,115,105,122,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,
-111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49,
- 46, 48, 41, 59, 10, 9,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,
-120, 95,101,110,118,105,114,111,110,109,101,110,116, 40,118,101, 99, 51, 32, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68,
- 32,105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 41, 10,123, 10, 9,102,108,111, 97,116, 32,117,
- 32, 61, 32, 40, 97,116, 97,110, 40, 99,111, 46,121, 44, 32, 99,111, 46,120, 41, 32, 43, 32, 77, 95, 80, 73, 41, 47, 40, 50, 46,
- 48, 42, 77, 95, 80, 73, 41, 59, 10, 9,102,108,111, 97,116, 32,118, 32, 61, 32, 97,116, 97,110, 40, 99,111, 46,122, 44, 32,104,
-121,112,111,116, 40, 99,111, 46,120, 44, 32, 99,111, 46,121, 41, 41, 47, 77, 95, 80, 73, 32, 43, 32, 48, 46, 53, 59, 10, 10, 9,
- 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,118,101, 99, 50, 40,117, 44, 32,118,
- 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,101,110,118,105,114,111,110,109,101,110,116,
- 95,101,109,112,116,121, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 41, 10,
-123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,
-100,101, 95,116,101,120, 95,105,109, 97,103,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,
-105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 97,
-108,112,104, 97, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,
- 99,111, 46,120,121, 41, 59, 10, 32, 32, 32, 32, 97,108,112,104, 97, 32, 61, 32, 99,111,108,111,114, 46, 97, 59, 10,125, 10, 10,
-118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,105,109, 97,103,101, 95,101,109,112,116,121, 40,118,101, 99, 51, 32, 99,
-111, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 97,108,112,
-104, 97, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10, 32, 32, 32, 32, 97,108,
-112,104, 97, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,109, 97,103,105,
- 99, 40,118,101, 99, 51, 32,112, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,102,108,111, 97,116, 32,100,105,115,
-116,111,114,116,105,111,110, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111,
- 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102,
- 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,109,117,115,103,114,
- 97,118,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,102,108,111, 97,116, 32,
-100,101,116, 97,105,108, 44, 32,102,108,111, 97,116, 32,100,105,109,101,110,115,105,111,110, 44, 32,102,108,111, 97,116, 32,108,
- 97, 99,117,110, 97,114,105,116,121, 44, 32,102,108,111, 97,116, 32,111,102,102,115,101,116, 44, 32,102,108,111, 97,116, 32,103,
- 97,105,110, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102,
- 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97, 99, 32, 61,
- 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,110,111,105,115,101, 40,118,101, 99,
- 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,102,108,111, 97,116, 32,100,101,116, 97,105,108, 44,
- 32,102,108,111, 97,116, 32,100,105,115,116,111,114,116,105,111,110, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,
-114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99,
- 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97, 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101,
- 95,116,101,120, 95,115,107,121, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114,
- 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10,125, 10, 10,118,111,105,100, 32,
-110,111,100,101, 95,116,101,120, 95,118,111,114,111,110,111,105, 40,118,101, 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,
-115, 99, 97,108,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116,
- 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97, 99,
- 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,119, 97,118,101, 40,118,101,
- 99, 51, 32, 99,111, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,102,108,111, 97,116, 32,100,105,115,116,111,114,
-116,105,111,110, 44, 32,102,108,111, 97,116, 32,100,101,116, 97,105,108, 44, 32,102,108,111, 97,116, 32,100,101,116, 97,105,108,
- 95,115, 99, 97,108,101, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,
-116, 32,102, 97, 99, 41, 10,123, 10, 9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48, 41, 59, 10, 9,102, 97,
- 99, 32, 61, 32, 49, 46, 48, 59, 10,125, 10, 10, 47, 42, 32,108,105,103,104,116, 32,112, 97,116,104, 32, 42, 47, 10, 10,118,111,
-105,100, 32,110,111,100,101, 95,108,105,103,104,116, 95,112, 97,116,104, 40, 10, 9,111,117,116, 32,102,108,111, 97,116, 32,105,
-115, 95, 99, 97,109,101,114, 97, 95,114, 97,121, 44, 10, 9,111,117,116, 32,102,108,111, 97,116, 32,105,115, 95,115,104, 97,100,
-111,119, 95,114, 97,121, 44, 10, 9,111,117,116, 32,102,108,111, 97,116, 32,105,115, 95,100,105,102,102,117,115,101, 95,114, 97,
-121, 44, 10, 9,111,117,116, 32,102,108,111, 97,116, 32,105,115, 95,103,108,111,115,115,121, 95,114, 97,121, 44, 10, 9,111,117,
-116, 32,102,108,111, 97,116, 32,105,115, 95,115,105,110,103,117,108, 97,114, 95,114, 97,121, 44, 10, 9,111,117,116, 32,102,108,
-111, 97,116, 32,105,115, 95,114,101,102,108,101, 99,116,105,111,110, 95,114, 97,121, 44, 10, 9,111,117,116, 32,102,108,111, 97,
-116, 32,105,115, 95,116,114, 97,110,115,109,105,115,115,105,111,110, 95,114, 97,121, 41, 10,123, 10, 9,105,115, 95, 99, 97,109,
-101,114, 97, 95,114, 97,121, 32, 61, 32, 49, 46, 48, 59, 10, 9,105,115, 95,115,104, 97,100,111,119, 95,114, 97,121, 32, 61, 32,
- 48, 46, 48, 59, 10, 9,105,115, 95,100,105,102,102,117,115,101, 95,114, 97,121, 32, 61, 32, 48, 46, 48, 59, 10, 9,105,115, 95,
-103,108,111,115,115,121, 95,114, 97,121, 32, 61, 32, 48, 46, 48, 59, 10, 9,105,115, 95,115,105,110,103,117,108, 97,114, 95,114,
- 97,121, 32, 61, 32, 48, 46, 48, 59, 10, 9,105,115, 95,114,101,102,108,101, 99,116,105,111,110, 95,114, 97,121, 32, 61, 32, 48,
- 46, 48, 59, 10, 9,105,115, 95,116,114, 97,110,115,109,105,115,115,105,111,110, 95,114, 97,121, 32, 61, 32, 48, 46, 48, 59, 10,
-125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,108,105,103,104,116, 95,102, 97,108,108,111,102,102, 40,102,108,111, 97,116,
- 32,115,116,114,101,110,103,116,104, 44, 32,102,108,111, 97,116, 32,116,115,109,111,111,116,104, 44, 32,111,117,116, 32,102,108,
-111, 97,116, 32,113,117, 97,100,114, 97,116,105, 99, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,108,105,110,101, 97,114, 44,
- 32,111,117,116, 32,102,108,111, 97,116, 32, 99,111,110,115,116, 97,110,116, 41, 10,123, 10, 9,113,117, 97,100,114, 97,116,105,
- 99, 32, 61, 32,115,116,114,101,110,103,116,104, 59, 10, 9,108,105,110,101, 97,114, 32, 61, 32,115,116,114,101,110,103,116,104,
- 59, 10, 9, 99,111,110,115,116, 97,110,116, 32, 61, 32,115,116,114,101,110,103,116,104, 59, 10,125, 10, 10,118,111,105,100, 32,
-110,111,100,101, 95,111, 98,106,101, 99,116, 95,105,110,102,111, 40,111,117,116, 32,118,101, 99, 51, 32,108,111, 99, 97,116,105,
-111,110, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,111, 98,106,101, 99,116, 95,105,110,100,101,120, 44, 32,111,117,116, 32,
-102,108,111, 97,116, 32,109, 97,116,101,114,105, 97,108, 95,105,110,100,101,120, 44, 32,111,117,116, 32,102,108,111, 97,116, 32,
-114, 97,110,100,111,109, 41, 10,123, 10, 9,108,111, 99, 97,116,105,111,110, 32, 61, 32,118,101, 99, 51, 40, 48, 46, 48, 41, 59,
- 10, 9,111, 98,106,101, 99,116, 95,105,110,100,101,120, 32, 61, 32, 48, 46, 48, 59, 10, 9,109, 97,116,101,114,105, 97,108, 95,
-105,110,100,101,120, 32, 61, 32, 48, 46, 48, 59, 10, 9,114, 97,110,100,111,109, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10, 10,
- 47, 42, 32,111,117,116,112,117,116, 32, 42, 47, 10, 10,118,111,105,100, 32,110,111,100,101, 95,111,117,116,112,117,116, 95,109,
- 97,116,101,114,105, 97,108, 40,118,101, 99, 52, 32,115,117,114,102, 97, 99,101, 44, 32,118,101, 99, 52, 32,118,111,108,117,109,
-101, 44, 32,102,108,111, 97,116, 32,100,105,115,112,108, 97, 99,101,109,101,110,116, 44, 32,111,117,116, 32,118,101, 99, 52, 32,
-114,101,115,117,108,116, 41, 10,123, 10, 9,114,101,115,117,108,116, 32, 61, 32,115,117,114,102, 97, 99,101, 59, 10,125, 10, 10,
- 0};
-
diff --git a/source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_frag.glsl b/source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_frag.glsl
index 5f0de8ae0fd..978b6db1b9a 100644
--- a/source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_frag.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_frag.glsl
@@ -4,13 +4,13 @@ uniform sampler2D textureSource;
void main()
{
vec4 color = vec4(0.0);
- color += texture2D( textureSource, gl_TexCoord[0].st + vec2( -3.0*ScaleU.x, -3.0*ScaleU.y ) ) * 0.015625;
- color += texture2D( textureSource, gl_TexCoord[0].st + vec2( -2.0*ScaleU.x, -2.0*ScaleU.y ) )*0.09375;
- color += texture2D( textureSource, gl_TexCoord[0].st + vec2( -1.0*ScaleU.x, -1.0*ScaleU.y ) )*0.234375;
- color += texture2D( textureSource, gl_TexCoord[0].st + vec2( 0.0 , 0.0) )*0.3125;
- color += texture2D( textureSource, gl_TexCoord[0].st + vec2( 1.0*ScaleU.x, 1.0*ScaleU.y ) )*0.234375;
- color += texture2D( textureSource, gl_TexCoord[0].st + vec2( 2.0*ScaleU.x, 2.0*ScaleU.y ) )*0.09375;
- color += texture2D( textureSource, gl_TexCoord[0].st + vec2( 3.0*ScaleU.x, -3.0*ScaleU.y ) ) * 0.015625;
+ color += texture2D( textureSource, gl_TexCoord[0].st + vec2(-3.0 * ScaleU.x, -3.0 * ScaleU.y ) ) * 0.015625;
+ color += texture2D( textureSource, gl_TexCoord[0].st + vec2(-2.0 * ScaleU.x, -2.0 * ScaleU.y ) ) * 0.09375;
+ color += texture2D( textureSource, gl_TexCoord[0].st + vec2(-1.0 * ScaleU.x, -1.0 * ScaleU.y ) ) * 0.234375;
+ color += texture2D( textureSource, gl_TexCoord[0].st + vec2(0.0, 0.0)) * 0.3125;
+ color += texture2D( textureSource, gl_TexCoord[0].st + vec2(1.0 * ScaleU.x, 1.0 * ScaleU.y ) ) * 0.234375;
+ color += texture2D( textureSource, gl_TexCoord[0].st + vec2(2.0 * ScaleU.x, 2.0 * ScaleU.y ) ) * 0.09375;
+ color += texture2D( textureSource, gl_TexCoord[0].st + vec2(3.0 * ScaleU.x, -3.0 * ScaleU.y ) ) * 0.015625;
gl_FragColor = color;
}
diff --git a/source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_frag.glsl.c b/source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_frag.glsl.c
deleted file mode 100644
index 3419a1f6936..00000000000
--- a/source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_frag.glsl.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* DataToC output of file <gpu_shader_sep_gaussian_blur_frag_glsl> */
-
-int datatoc_gpu_shader_sep_gaussian_blur_frag_glsl_size = 848;
-char datatoc_gpu_shader_sep_gaussian_blur_frag_glsl[] = {
-117,110,105,102,111,114,109, 32,118,101, 99, 50, 32, 83, 99, 97,
-108,101, 85, 59, 13, 10,117,110,105,102,111,114,109, 32,115, 97,109,112,108,101,114, 50, 68, 32,116,101,120,116,117,114,101, 83,
-111,117,114, 99,101, 59, 13, 10, 13, 10,118,111,105,100, 32,109, 97,105,110, 40, 41, 13, 10,123, 13, 10, 9,118,101, 99, 52, 32,
- 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 13, 10, 9, 99,111,108,111,114, 32, 43, 61, 32,116,101,
-120,116,117,114,101, 50, 68, 40, 32,116,101,120,116,117,114,101, 83,111,117,114, 99,101, 44, 32,103,108, 95, 84,101,120, 67,111,
-111,114,100, 91, 48, 93, 46,115,116, 32, 43, 32,118,101, 99, 50, 40, 32, 45, 51, 46, 48, 42, 83, 99, 97,108,101, 85, 46,120, 44,
- 32, 45, 51, 46, 48, 42, 83, 99, 97,108,101, 85, 46,121, 32, 41, 32, 41, 32, 42, 32, 48, 46, 48, 49, 53, 54, 50, 53, 59, 13, 10,
- 9, 99,111,108,111,114, 32, 43, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 32,116,101,120,116,117,114,101, 83,111,117,114,
- 99,101, 44, 32,103,108, 95, 84,101,120, 67,111,111,114,100, 91, 48, 93, 46,115,116, 32, 43, 32,118,101, 99, 50, 40, 32, 45, 50,
- 46, 48, 42, 83, 99, 97,108,101, 85, 46,120, 44, 32, 45, 50, 46, 48, 42, 83, 99, 97,108,101, 85, 46,121, 32, 41, 32, 41, 42, 48,
- 46, 48, 57, 51, 55, 53, 59, 13, 10, 9, 99,111,108,111,114, 32, 43, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 32,116,101,
-120,116,117,114,101, 83,111,117,114, 99,101, 44, 32,103,108, 95, 84,101,120, 67,111,111,114,100, 91, 48, 93, 46,115,116, 32, 43,
- 32,118,101, 99, 50, 40, 32, 45, 49, 46, 48, 42, 83, 99, 97,108,101, 85, 46,120, 44, 32, 45, 49, 46, 48, 42, 83, 99, 97,108,101,
- 85, 46,121, 32, 41, 32, 41, 42, 48, 46, 50, 51, 52, 51, 55, 53, 59, 13, 10, 9, 99,111,108,111,114, 32, 43, 61, 32,116,101,120,
-116,117,114,101, 50, 68, 40, 32,116,101,120,116,117,114,101, 83,111,117,114, 99,101, 44, 32,103,108, 95, 84,101,120, 67,111,111,
-114,100, 91, 48, 93, 46,115,116, 32, 43, 32,118,101, 99, 50, 40, 32, 48, 46, 48, 32, 44, 32, 48, 46, 48, 41, 32, 41, 42, 48, 46,
- 51, 49, 50, 53, 59, 13, 10, 9, 99,111,108,111,114, 32, 43, 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 32,116,101,120,116,
-117,114,101, 83,111,117,114, 99,101, 44, 32,103,108, 95, 84,101,120, 67,111,111,114,100, 91, 48, 93, 46,115,116, 32, 43, 32,118,
-101, 99, 50, 40, 32, 49, 46, 48, 42, 83, 99, 97,108,101, 85, 46,120, 44, 32, 32, 49, 46, 48, 42, 83, 99, 97,108,101, 85, 46,121,
- 32, 41, 32, 41, 42, 48, 46, 50, 51, 52, 51, 55, 53, 59, 13, 10, 9, 99,111,108,111,114, 32, 43, 61, 32,116,101,120,116,117,114,
-101, 50, 68, 40, 32,116,101,120,116,117,114,101, 83,111,117,114, 99,101, 44, 32,103,108, 95, 84,101,120, 67,111,111,114,100, 91,
- 48, 93, 46,115,116, 32, 43, 32,118,101, 99, 50, 40, 32, 50, 46, 48, 42, 83, 99, 97,108,101, 85, 46,120, 44, 32, 32, 50, 46, 48,
- 42, 83, 99, 97,108,101, 85, 46,121, 32, 41, 32, 41, 42, 48, 46, 48, 57, 51, 55, 53, 59, 13, 10, 9, 99,111,108,111,114, 32, 43,
- 61, 32,116,101,120,116,117,114,101, 50, 68, 40, 32,116,101,120,116,117,114,101, 83,111,117,114, 99,101, 44, 32,103,108, 95, 84,
-101,120, 67,111,111,114,100, 91, 48, 93, 46,115,116, 32, 43, 32,118,101, 99, 50, 40, 32, 51, 46, 48, 42, 83, 99, 97,108,101, 85,
- 46,120, 44, 32, 45, 51, 46, 48, 42, 83, 99, 97,108,101, 85, 46,121, 32, 41, 32, 41, 32, 42, 32, 48, 46, 48, 49, 53, 54, 50, 53,
- 59, 13, 10, 13, 10, 9,103,108, 95, 70,114, 97,103, 67,111,108,111,114, 32, 61, 32, 99,111,108,111,114, 59, 13, 10,125, 13, 10,
- 0};
-
diff --git a/source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_vert.glsl.c b/source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_vert.glsl.c
deleted file mode 100644
index 5eea72503ce..00000000000
--- a/source/blender/gpu/shaders/gpu_shader_sep_gaussian_blur_vert.glsl.c
+++ /dev/null
@@ -1,9 +0,0 @@
-/* DataToC output of file <gpu_shader_sep_gaussian_blur_vert_glsl> */
-
-int datatoc_gpu_shader_sep_gaussian_blur_vert_glsl_size = 92;
-char datatoc_gpu_shader_sep_gaussian_blur_vert_glsl[] = {
- 13, 10,118,111,105,100, 32,109, 97,105,110, 40, 41, 13, 10,123, 13, 10, 9, 9,103,108, 95, 80,111,115,105,116,
-105,111,110, 32, 61, 32,102,116,114, 97,110,115,102,111,114,109, 40, 41, 59, 13, 10, 9, 9,103,108, 95, 84,101,120, 67,111,111,
-114,100, 91, 48, 93, 32, 61, 32, 32,103,108, 95, 77,117,108,116,105, 84,101,120, 67,111,111,114,100, 48, 59, 13, 10,125, 13, 10,
- 0};
-
diff --git a/source/blender/gpu/shaders/gpu_shader_vertex.glsl.c b/source/blender/gpu/shaders/gpu_shader_vertex.glsl.c
deleted file mode 100644
index bd827efd1b7..00000000000
--- a/source/blender/gpu/shaders/gpu_shader_vertex.glsl.c
+++ /dev/null
@@ -1,14 +0,0 @@
-/* DataToC output of file <gpu_shader_vertex_glsl> */
-
-int datatoc_gpu_shader_vertex_glsl_size = 240;
-char datatoc_gpu_shader_vertex_glsl[] = {
- 13, 10,118, 97,114,121,105,110,103, 32,118,101, 99, 51, 32,118,
- 97,114,112,111,115,105,116,105,111,110, 59, 13, 10,118, 97,114,121,105,110,103, 32,118,101, 99, 51, 32,118, 97,114,110,111,114,
-109, 97,108, 59, 13, 10, 13, 10,118,111,105,100, 32,109, 97,105,110, 40, 41, 13, 10,123, 13, 10, 9,118,101, 99, 52, 32, 99,111,
- 32, 61, 32,103,108, 95, 77,111,100,101,108, 86,105,101,119, 77, 97,116,114,105,120, 32, 42, 32,103,108, 95, 86,101,114,116,101,
-120, 59, 13, 10, 13, 10, 9,118, 97,114,112,111,115,105,116,105,111,110, 32, 61, 32, 99,111, 46,120,121,122, 59, 13, 10, 9,118,
- 97,114,110,111,114,109, 97,108, 32, 61, 32,110,111,114,109, 97,108,105,122,101, 40,103,108, 95, 78,111,114,109, 97,108, 77, 97,
-116,114,105,120, 32, 42, 32,103,108, 95, 78,111,114,109, 97,108, 41, 59, 13, 10, 9,103,108, 95, 80,111,115,105,116,105,111,110,
- 32, 61, 32,103,108, 95, 80,114,111,106,101, 99,116,105,111,110, 77, 97,116,114,105,120, 32, 42, 32, 99,111, 59, 13, 10, 13, 10,
- 0};
-
diff --git a/source/blender/gpu/shaders/gpu_shader_vsm_store_frag.glsl.c b/source/blender/gpu/shaders/gpu_shader_vsm_store_frag.glsl.c
deleted file mode 100644
index c4f4f76edaf..00000000000
--- a/source/blender/gpu/shaders/gpu_shader_vsm_store_frag.glsl.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* DataToC output of file <gpu_shader_vsm_store_frag_glsl> */
-
-int datatoc_gpu_shader_vsm_store_frag_glsl_size = 482;
-char datatoc_gpu_shader_vsm_store_frag_glsl[] = {
- 47, 42,
- 42, 13, 10, 32, 42, 32, 84,104,105,115, 32,102,114, 97,103,109,101,110,116, 32,115,104, 97,100,101,114, 32,119, 97,115, 32,105,
-110,105,116,105, 97,108,108,121, 32,102,111,117,110,100, 32, 97,116, 32,104,116,116,112, 58, 47, 47,102, 97, 98,105,101,110,115,
- 97,110,103,108, 97,114,100, 46,110,101,116, 47,115,104, 97,100,111,119,109, 97,112,112,105,110,103, 86, 83, 77, 47,105,110,100,
-101,120, 46,112,104,112, 13, 10, 32, 42, 47, 13, 10, 13, 10,118, 97,114,121,105,110,103, 32,118,101, 99, 52, 32,118, 95,112,111,
-115,105,116,105,111,110, 59, 13, 10, 13, 10,118,111,105,100, 32,109, 97,105,110, 40, 41, 13, 10,123, 13, 10, 9,102,108,111, 97,
-116, 32,100,101,112,116,104, 32, 61, 32,118, 95,112,111,115,105,116,105,111,110, 46,122, 32, 47, 32,118, 95,112,111,115,105,116,
-105,111,110, 46,119, 59, 13, 10, 9,100,101,112,116,104, 32, 61, 32,100,101,112,116,104, 32, 42, 32, 48, 46, 53, 32, 43, 32, 48,
- 46, 53, 59, 13, 10, 13, 10, 9,102,108,111, 97,116, 32,109,111,109,101,110,116, 49, 32, 61, 32,100,101,112,116,104, 59, 13, 10,
- 9,102,108,111, 97,116, 32,109,111,109,101,110,116, 50, 32, 61, 32,100,101,112,116,104, 32, 42, 32,100,101,112,116,104, 59, 13,
- 10, 13, 10, 9, 47, 47, 32, 65,100,106,117,115,116,105,110,103, 32,109,111,109,101,110,116,115, 32,117,115,105,110,103, 32,112,
- 97,114,116,105, 97,108, 32,100,101,114,105,118, 97,116,105,118,101, 13, 10, 9,102,108,111, 97,116, 32,100,120, 32, 61, 32,100,
- 70,100,120, 40,100,101,112,116,104, 41, 59, 13, 10, 9,102,108,111, 97,116, 32,100,121, 32, 61, 32,100, 70,100,121, 40,100,101,
-112,116,104, 41, 59, 13, 10, 9,109,111,109,101,110,116, 50, 32, 43, 61, 32, 48, 46, 50, 53, 42, 40,100,120, 42,100,120, 43,100,
-121, 42,100,121, 41, 59, 13, 10, 13, 10, 9,103,108, 95, 70,114, 97,103, 67,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40,109,
-111,109,101,110,116, 49, 44, 32,109,111,109,101,110,116, 50, 44, 32, 48, 46, 48, 44, 32, 48, 46, 48, 41, 59, 13, 10,125, 13, 10,
- 0};
-
diff --git a/source/blender/gpu/shaders/gpu_shader_vsm_store_vert.glsl.c b/source/blender/gpu/shaders/gpu_shader_vsm_store_vert.glsl.c
deleted file mode 100644
index 51b9cab372f..00000000000
--- a/source/blender/gpu/shaders/gpu_shader_vsm_store_vert.glsl.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/* DataToC output of file <gpu_shader_vsm_store_vert_glsl> */
-
-int datatoc_gpu_shader_vsm_store_vert_glsl_size = 105;
-char datatoc_gpu_shader_vsm_store_vert_glsl[] = {
-118, 97,114,121,105,110,103, 32,118,
-101, 99, 52, 32,118, 95,112,111,115,105,116,105,111,110, 59, 13, 10, 13, 10,118,111,105,100, 32,109, 97,105,110, 40, 41, 13, 10,
-123, 13, 10, 9,103,108, 95, 80,111,115,105,116,105,111,110, 32, 61, 32,102,116,114, 97,110,115,102,111,114,109, 40, 41, 59, 13,
- 10, 9,118, 95,112,111,115,105,116,105,111,110, 32, 61, 32,103,108, 95, 80,111,115,105,116,105,111,110, 59, 13, 10,125, 13, 10,
- 0};
-
diff --git a/source/blender/ikplugin/BIK_api.h b/source/blender/ikplugin/BIK_api.h
index cbc6485cb54..e1d5f50edfb 100644
--- a/source/blender/ikplugin/BIK_api.h
+++ b/source/blender/ikplugin/BIK_api.h
@@ -70,9 +70,9 @@ void BIK_clear_cache(struct bPose *pose);
void BIK_update_param(struct bPose *pose);
void BIK_test_constraint(struct Object *ob, struct bConstraint *cons);
// not yet implemented
-int BIK_get_constraint_param(struct bPose *pose, struct bConstraint *cons, int id, BIK_ParamValue *value);
-int BIK_get_channel_param(struct bPose *pose, struct bPoseChannel *pchan, int id, BIK_ParamValue *value);
-int BIK_get_solver_param(struct bPose *pose, struct bPoseChannel *pchan, int id, BIK_ParamValue *value);
+// int BIK_get_constraint_param(struct bPose *pose, struct bConstraint *cons, int id, BIK_ParamValue *value);
+// int BIK_get_channel_param(struct bPose *pose, struct bPoseChannel *pchan, int id, BIK_ParamValue *value);
+// int BIK_get_solver_param(struct bPose *pose, struct bPoseChannel *pchan, int id, BIK_ParamValue *value);
// number of solver available
// 0 = iksolver
diff --git a/source/blender/ikplugin/CMakeLists.txt b/source/blender/ikplugin/CMakeLists.txt
index f37b254d719..903267c5618 100644
--- a/source/blender/ikplugin/CMakeLists.txt
+++ b/source/blender/ikplugin/CMakeLists.txt
@@ -29,7 +29,6 @@ set(INC
../blenlib
../makesdna
../../../intern/guardedalloc
- ../../../intern/iksolver/extern
)
set(INC_SYS
@@ -38,14 +37,22 @@ set(INC_SYS
set(SRC
intern/ikplugin_api.c
- intern/iksolver_plugin.c
BIK_api.h
intern/ikplugin_api.h
- intern/iksolver_plugin.h
- intern/itasc_plugin.h
)
+if(WITH_IK_SOLVER)
+ add_definitions(-DWITH_IK_SOLVER)
+ list(APPEND INC
+ ../../../intern/iksolver/extern
+ )
+ list(APPEND SRC
+ intern/iksolver_plugin.c
+ intern/iksolver_plugin.h
+ )
+endif()
+
if(WITH_IK_ITASC)
add_definitions(-DWITH_IK_ITASC)
list(APPEND INC
@@ -54,8 +61,8 @@ if(WITH_IK_ITASC)
)
list(APPEND SRC
intern/itasc_plugin.cpp
+ intern/itasc_plugin.h
)
endif()
-
blender_add_lib(bf_ikplugin "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/source/blender/ikplugin/SConscript b/source/blender/ikplugin/SConscript
index 38c53894df8..97b1cf18e0d 100644
--- a/source/blender/ikplugin/SConscript
+++ b/source/blender/ikplugin/SConscript
@@ -7,5 +7,6 @@ incs = '#/intern/guardedalloc #/intern/iksolver/extern ../makesdna ../blenlib'
incs += ' ../blenkernel ../include ../ikplugin #/intern/itasc #/extern/Eigen3'
defs.append('WITH_IK_ITASC')
+defs.append('WITH_IK_SOLVER')
env.BlenderLib ( 'bf_ikplugin', sources, Split(incs), defs, libtype=['core','player'], priority=[180, 190] )
diff --git a/source/blender/ikplugin/intern/ikplugin_api.c b/source/blender/ikplugin/intern/ikplugin_api.c
index 147c2b50e31..08d2789451c 100644
--- a/source/blender/ikplugin/intern/ikplugin_api.c
+++ b/source/blender/ikplugin/intern/ikplugin_api.c
@@ -45,13 +45,17 @@
#include "DNA_armature_types.h"
#include "ikplugin_api.h"
-#include "iksolver_plugin.h"
+
+#ifdef WITH_IK_SOLVER
+# include "iksolver_plugin.h"
+#endif
#ifdef WITH_IK_ITASC
-#include "itasc_plugin.h"
+# include "itasc_plugin.h"
#endif
static IKPlugin ikplugin_tab[] = {
+#ifdef WITH_IK_SOLVER
/* Legacy IK solver */
{
iksolver_initialize_tree,
@@ -61,8 +65,10 @@ static IKPlugin ikplugin_tab[] = {
NULL,
NULL,
NULL,
-#ifdef WITH_IK_ITASC
},
+#endif
+
+#ifdef WITH_IK_ITASC
/* iTaSC IK solver */
{
itasc_initialize_tree,
@@ -72,8 +78,8 @@ static IKPlugin ikplugin_tab[] = {
itasc_clear_cache,
itasc_update_param,
itasc_test_constraint,
-#endif
- }
+ },
+ #endif
};
static IKPlugin *get_plugin(bPose *pose)
diff --git a/source/blender/ikplugin/intern/iksolver_plugin.c b/source/blender/ikplugin/intern/iksolver_plugin.c
index d544e6501fc..af15333ece5 100644
--- a/source/blender/ikplugin/intern/iksolver_plugin.c
+++ b/source/blender/ikplugin/intern/iksolver_plugin.c
@@ -139,7 +139,7 @@ static void initialize_posetree(struct Object *UNUSED(ob), bPoseChannel *pchan_t
size = MIN2(segcount, tree->totchannel);
a = t = 0;
while (a < size && t < tree->totchannel) {
- // locate first matching channel
+ /* locate first matching channel */
for (; t < tree->totchannel && tree->pchan[t] != chanlist[segcount - a - 1]; t++) ;
if (t >= tree->totchannel)
break;
@@ -334,9 +334,10 @@ static void execute_posetree(struct Scene *scene, Object *ob, PoseTree *tree)
IK_SetStiffness(seg, IK_Z, pchan->stiffness[2]);
if (tree->stretch && (pchan->ikstretch > 0.0f)) {
- float ikstretch = pchan->ikstretch * pchan->ikstretch;
- IK_SetStiffness(seg, IK_TRANS_Y, MIN2(1.0f - ikstretch, 0.99f));
- IK_SetLimit(seg, IK_TRANS_Y, 0.001, 1e10);
+ const float ikstretch = pchan->ikstretch * pchan->ikstretch;
+ /* this function does its own clamping */
+ IK_SetStiffness(seg, IK_TRANS_Y, 1.0f - ikstretch);
+ IK_SetLimit(seg, IK_TRANS_Y, IK_STRETCH_STIFF_MIN, IK_STRETCH_STIFF_MAX);
}
}
@@ -535,7 +536,7 @@ void iksolver_execute_tree(struct Scene *scene, struct Object *ob, struct bPose
for (a = 0; a < tree->totchannel; a++) {
if (!(tree->pchan[a]->flag & POSE_DONE)) // successive trees can set the flag
BKE_pose_where_is_bone(scene, ob, tree->pchan[a], ctime, 1);
- // tell blender that this channel was controlled by IK, it's cleared on each BKE_pose_where_is()
+ /* tell blender that this channel was controlled by IK, it's cleared on each BKE_pose_where_is() */
tree->pchan[a]->flag |= POSE_CHAIN;
}
/* 5. execute the IK solver */
diff --git a/source/blender/ikplugin/intern/itasc_plugin.cpp b/source/blender/ikplugin/intern/itasc_plugin.cpp
index a0d7bfbaaf6..c929c97a040 100644
--- a/source/blender/ikplugin/intern/itasc_plugin.cpp
+++ b/source/blender/ikplugin/intern/itasc_plugin.cpp
@@ -57,7 +57,6 @@ extern "C" {
#include "BKE_global.h"
#include "BKE_armature.h"
#include "BKE_action.h"
-#include "BKE_utildefines.h"
#include "BKE_constraint.h"
#include "DNA_object_types.h"
#include "DNA_action_types.h"
@@ -394,7 +393,7 @@ static bool constraint_valid(bConstraint *con)
return true;
}
-int initialize_scene(Object *ob, bPoseChannel *pchan_tip)
+static int initialize_scene(Object *ob, bPoseChannel *pchan_tip)
{
bConstraint *con;
int treecount;
@@ -1173,10 +1172,8 @@ static IK_Scene *convert_tree(Scene *blscene, Object *ob, bPoseChannel *pchan)
switch (ikchan->jointType & ~IK_TRANSY) {
case 0:
// fixed bone
- if (!(ikchan->jointType & IK_TRANSY)) {
- joint += ":F";
- ret = arm->addSegment(joint, parent, KDL::Joint::None, 0.0, tip);
- }
+ joint += ":F";
+ ret = arm->addSegment(joint, parent, KDL::Joint::None, 0.0, tip);
break;
case IK_XDOF:
// RX only, get the X rotation
@@ -1254,8 +1251,9 @@ static IK_Scene *convert_tree(Scene *blscene, Object *ob, bPoseChannel *pchan)
joint = bone->name;
joint += ":TY";
ret = arm->addSegment(joint, parent, KDL::Joint::TransY, rot[ikchan->ndof - 1]);
- float ikstretch = pchan->ikstretch * pchan->ikstretch;
- weight[1] = (1.0 - MIN2(1.0 - ikstretch, 0.99));
+ const float ikstretch = pchan->ikstretch * pchan->ikstretch;
+ /* why invert twice here? */
+ weight[1] = (1.0 - minf(1.0 - ikstretch, 1.0f - 0.001f));
weights.push_back(weight[1]);
}
if (!ret)
@@ -1618,7 +1616,7 @@ static void execute_scene(Scene *blscene, IK_Scene *ikscene, bItasc *ikparam, fl
timestep = sts / 1000.0;
}
}
- // don't cache if we are reiterating because we don't want to distroy the cache unnecessarily
+ // don't cache if we are reiterating because we don't want to destroy the cache unnecessarily
ikscene->scene->update(timestamp, timestep, numstep, false, !reiterate, simulation);
if (reiterate) {
// how many times do we reiterate?
diff --git a/source/blender/imbuf/CMakeLists.txt b/source/blender/imbuf/CMakeLists.txt
index aa4454562b4..344ae604ed4 100644
--- a/source/blender/imbuf/CMakeLists.txt
+++ b/source/blender/imbuf/CMakeLists.txt
@@ -25,11 +25,11 @@
set(INC
.
- ../avi
../blenkernel
../blenlib
../blenloader
../makesdna
+ ../makesrna
../../../intern/guardedalloc
../../../intern/memutil
)
@@ -45,6 +45,7 @@ set(SRC
intern/anim_movie.c
intern/bmp.c
intern/cache.c
+ intern/colormanagement.c
intern/divers.c
intern/filetype.c
intern/filter.c
@@ -67,16 +68,19 @@ set(SRC
intern/util.c
intern/writeimage.c
+ IMB_colormanagement.h
IMB_imbuf.h
IMB_imbuf_types.h
IMB_moviecache.h
IMB_thumbs.h
intern/IMB_allocimbuf.h
intern/IMB_anim.h
+ intern/IMB_colormanagement_intern.h
intern/IMB_filetype.h
intern/IMB_filter.h
intern/IMB_indexer.h
intern/IMB_metadata.h
+ intern/imbuf.h
intern/cineon/cin_debug_stuff.h
intern/cineon/cineonfile.h
intern/cineon/cineonlib.h
@@ -94,7 +98,6 @@ set(SRC
intern/dds/PixelFormat.h
intern/dds/Stream.h
intern/dds/dds_api.h
- intern/imbuf.h
intern/openexr/openexr_api.h
intern/openexr/openexr_multi.h
@@ -139,6 +142,13 @@ if(WITH_IMAGE_REDCODE)
add_definitions(-DWITH_REDCODE)
endif()
+if(WITH_CODEC_AVI)
+ list(APPEND INC
+ ../avi
+ )
+ add_definitions(-DWITH_AVI)
+endif()
+
if(WITH_CODEC_QUICKTIME)
list(APPEND INC
../quicktime
@@ -180,6 +190,10 @@ if(WITH_IMAGE_HDR)
add_definitions(-DWITH_HDR)
endif()
+list(APPEND INC
+ ../../../intern/opencolorio
+)
+
if(WIN32)
list(APPEND INC
../../../intern/utfconv
diff --git a/source/blender/imbuf/IMB_colormanagement.h b/source/blender/imbuf/IMB_colormanagement.h
new file mode 100644
index 00000000000..e2604241caf
--- /dev/null
+++ b/source/blender/imbuf/IMB_colormanagement.h
@@ -0,0 +1,155 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2012 by Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Xavier Thomas,
+ * Lukas Toenne,
+ * Sergey Sharybin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ *
+ */
+
+#ifndef IMB_COLORMANAGEMENT_H
+#define IMB_COLORMANAGEMENT_H
+
+#define BCM_CONFIG_FILE "config.ocio"
+
+struct bContext;
+struct ColorManagedColorspaceSettings;
+struct ColorManagedDisplaySettings;
+struct ColorManagedViewSettings;
+struct ColormanageProcessor;
+struct EnumPropertyItem;
+struct ImBuf;
+struct Main;
+struct rcti;
+struct PartialBufferUpdateContext;
+struct wmWindow;
+struct Scene;
+struct ImageFormatData;
+
+struct ColorSpace;
+struct ColorManagedDisplay;
+
+/* ** Generic functions ** */
+
+void IMB_colormanagement_check_file_config(struct Main *bmain);
+
+void IMB_colormanagement_validate_settings(struct ColorManagedDisplaySettings *display_settings,
+ struct ColorManagedViewSettings *view_settings);
+
+const char *IMB_colormanagement_role_colorspace_name_get(int role);
+void IMB_colormanagement_check_is_data(struct ImBuf *ibuf, const char *name);
+void IMB_colormanagement_assign_float_colorspace(struct ImBuf *ibuf, const char *name);
+void IMB_colormanagement_assign_rect_colorspace(struct ImBuf *ibuf, const char *name);
+
+/* ** Color space transformation functions ** */
+void IMB_colormanagement_transform(float *buffer, int width, int height, int channels,
+ const char *from_colorspace, const char *to_colorspace, int predivide);
+void IMB_colormanagement_transform_threaded(float *buffer, int width, int height, int channels,
+ const char *from_colorspace, const char *to_colorspace, int predivide);
+void IMB_colormanagement_transform_v4(float pixel[4], const char *from_colorspace, const char *to_colorspace);
+
+void IMB_colormanagement_colorspace_to_scene_linear_v3(float pixel[3], struct ColorSpace *colorspace);
+void IMB_colormanagement_scene_linear_to_colorspace_v3(float pixel[3], struct ColorSpace *colorspace);
+
+void IMB_colormanagement_colorspace_to_scene_linear(float *buffer, int width, int height, int channels, struct ColorSpace *colorspace, int predivide);
+
+void IMB_colormanagement_scene_linear_to_display_v3(float pixel[3], struct ColorManagedDisplay *display);
+void IMB_colormanagement_display_to_scene_linear_v3(float pixel[3], struct ColorManagedDisplay *display);
+
+void IMB_colormanagement_pixel_to_display_space_v4(float result[4], const float pixel[4], const struct ColorManagedViewSettings *view_settings,
+ const struct ColorManagedDisplaySettings *display_settings);
+
+void IMB_colormanagement_pixel_to_display_space_v3(float result[3], const float pixel[3], const struct ColorManagedViewSettings *view_settings,
+ const struct ColorManagedDisplaySettings *display_settings);
+
+void IMB_colormanagement_imbuf_make_display_space(struct ImBuf *ibuf, const struct ColorManagedViewSettings *view_settings,
+ const struct ColorManagedDisplaySettings *display_settings);
+
+struct ImBuf *IMB_colormanagement_imbuf_for_write(struct ImBuf *ibuf, int save_as_render, int allocate_result,
+ const struct ColorManagedViewSettings *view_settings,
+ const struct ColorManagedDisplaySettings *display_settings,
+ struct ImageFormatData *image_format_data);
+
+/* ** Public display buffers interfaces ** */
+
+unsigned char *IMB_display_buffer_acquire(struct ImBuf *ibuf, const struct ColorManagedViewSettings *view_settings,
+ const struct ColorManagedDisplaySettings *display_settings, void **cache_handle);
+unsigned char *IMB_display_buffer_acquire_ctx(const struct bContext *C, struct ImBuf *ibuf, void **cache_handle);
+
+void IMB_display_buffer_transform_apply(unsigned char *display_buffer, float *linear_buffer, int width, int height,
+ int channels, const struct ColorManagedViewSettings *view_settings,
+ const struct ColorManagedDisplaySettings *display_settings, int predivide);
+
+void IMB_display_buffer_release(void *cache_handle);
+
+/* ** Display funcrions ** */
+int IMB_colormanagement_display_get_named_index(const char *name);
+const char *IMB_colormanagement_display_get_indexed_name(int index);
+const char *IMB_colormanagement_display_get_default_name(void);
+struct ColorManagedDisplay *IMB_colormanagement_display_get_named(const char *name);
+const char *IMB_colormanagement_display_get_none_name(void);
+
+/* ** View funcrions ** */
+int IMB_colormanagement_view_get_named_index(const char *name);
+const char *IMB_colormanagement_view_get_indexed_name(int index);
+
+/* ** Color space functions ** */
+int IMB_colormanagement_colorspace_get_named_index(const char *name);
+const char *IMB_colormanagement_colorspace_get_indexed_name(int index);
+const char *IMB_colormanagement_view_get_default_name(const char *display_name);
+
+void IMB_colormanagment_colorspace_from_ibuf_ftype(struct ColorManagedColorspaceSettings *colorspace_settings, struct ImBuf *ibuf);
+
+/* ** RNA helper functions ** */
+void IMB_colormanagement_display_items_add(struct EnumPropertyItem **items, int *totitem);
+void IMB_colormanagement_view_items_add(struct EnumPropertyItem **items, int *totitem, const char *display_name);
+void IMB_colormanagement_colorspace_items_add(struct EnumPropertyItem **items, int *totitem);
+
+/* ** Tile-based buffer management ** */
+void IMB_partial_display_buffer_update(struct ImBuf *ibuf, const float *linear_buffer, const unsigned char *buffer_byte,
+ int stride, int offset_x, int offset_y, const struct ColorManagedViewSettings *view_settings,
+ const struct ColorManagedDisplaySettings *display_settings,
+ int xmin, int ymin, int xmax, int ymax);
+
+/* ** Pixel processor functions ** */
+struct ColormanageProcessor *IMB_colormanagement_display_processor_new(const struct ColorManagedViewSettings *view_settings,
+ const struct ColorManagedDisplaySettings *display_settings);
+struct ColormanageProcessor *IMB_colormanagement_colorspace_processor_new(const char *from_colorspace, const char *to_colorspace);
+void IMB_colormanagement_processor_apply_v4(struct ColormanageProcessor *cm_processor, float pixel[4]);
+void IMB_colormanagement_processor_apply_v3(struct ColormanageProcessor *cm_processor, float pixel[3]);
+void IMB_colormanagement_processor_apply(struct ColormanageProcessor *cm_processor, float *buffer, int width, int height,
+ int channels, int predivide);
+void IMB_colormanagement_processor_free(struct ColormanageProcessor *cm_processor);
+
+/* Roles */
+enum {
+ COLOR_ROLE_SCENE_LINEAR = 0,
+ COLOR_ROLE_COLOR_PICKING,
+ COLOR_ROLE_TEXTURE_PAINTING,
+ COLOR_ROLE_DEFAULT_SEQUENCER,
+ COLOR_ROLE_DEFAULT_BYTE,
+ COLOR_ROLE_DEFAULT_FLOAT,
+};
+
+#endif /* IMB_COLORMANAGEMENT_H */
diff --git a/source/blender/imbuf/IMB_imbuf.h b/source/blender/imbuf/IMB_imbuf.h
index 1a68d3c1f09..28dbe110528 100644
--- a/source/blender/imbuf/IMB_imbuf.h
+++ b/source/blender/imbuf/IMB_imbuf.h
@@ -70,6 +70,8 @@
#ifndef __IMB_IMBUF_H__
#define __IMB_IMBUF_H__
+#define IM_MAX_SPACE 64
+
/**
*
* \attention defined in ???
@@ -82,6 +84,8 @@ struct ImBuf;
*/
struct anim;
+struct ColorManagedDisplay;
+
/**
*
* \attention Defined in allocimbuf.c
@@ -93,20 +97,19 @@ void IMB_exit(void);
*
* \attention Defined in readimage.c
*/
-struct ImBuf *IMB_ibImageFromMemory(unsigned char *mem, size_t size,
- int flags, const char *descr);
+struct ImBuf *IMB_ibImageFromMemory(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE], const char *descr);
/**
*
* \attention Defined in readimage.c
*/
-struct ImBuf *IMB_testiffname(const char *filepath, int flags);
+struct ImBuf *IMB_testiffname(const char *filepath, int flags, char colorspace[IM_MAX_SPACE]);
/**
*
* \attention Defined in readimage.c
*/
-struct ImBuf *IMB_loadiffname(const char *filepath, int flags);
+struct ImBuf *IMB_loadiffname(const char *filepath, int flags, char colorspace[IM_MAX_SPACE]);
/**
*
@@ -245,7 +248,7 @@ int IMB_anim_get_fps(struct anim * anim,
*
* \attention Defined in anim_movie.c
*/
-struct anim *IMB_open_anim(const char *name, int ib_flags, int streamindex);
+struct anim *IMB_open_anim(const char *name, int ib_flags, int streamindex, char colorspace[IM_MAX_SPACE]);
void IMB_close_anim(struct anim *anim);
void IMB_close_anim_proxies(struct anim *anim);
@@ -372,7 +375,6 @@ void IMB_partial_rect_from_float(struct ImBuf *ibuf, float *buffer, int x, int y
void IMB_float_from_rect(struct ImBuf *ibuf);
void IMB_float_from_rect_simple(struct ImBuf *ibuf); /* no profile conversion */
/* note, check that the conversion exists, only some are supported */
-void IMB_convert_profile(struct ImBuf *ibuf, int profile);
float *IMB_float_profile_ensure(struct ImBuf *ibuf, int profile, int *alloc);
void IMB_color_to_bw(struct ImBuf *ibuf);
void IMB_saturation(struct ImBuf *ibuf, float sat);
@@ -408,16 +410,16 @@ void bicubic_interpolation(struct ImBuf *in, struct ImBuf *out, float u, float v
void neareast_interpolation(struct ImBuf *in, struct ImBuf *out, float u, float v, int xout, int yout);
void bilinear_interpolation(struct ImBuf *in, struct ImBuf *out, float u, float v, int xout, int yout);
-void bicubic_interpolation_color(struct ImBuf *in, unsigned char *col, float *col_float, float u, float v);
-void neareast_interpolation_color(struct ImBuf *in, unsigned char *col, float *col_float, float u, float v);
-void bilinear_interpolation_color(struct ImBuf *in, unsigned char *col, float *col_float, float u, float v);
-void bilinear_interpolation_color_wrap(struct ImBuf *in, unsigned char *col, float *col_float, float u, float v);
+void bicubic_interpolation_color(struct ImBuf *in, unsigned char col[4], float col_float[4], float u, float v);
+void neareast_interpolation_color(struct ImBuf *in, unsigned char col[4], float col_float[4], float u, float v);
+void bilinear_interpolation_color(struct ImBuf *in, unsigned char col[4], float col_float[4], float u, float v);
+void bilinear_interpolation_color_wrap(struct ImBuf *in, unsigned char col[4], float col_float[4], float u, float v);
/**
*
* \attention defined in readimage.c
*/
-struct ImBuf *IMB_loadifffile(int file, int flags, const char *descr);
+struct ImBuf *IMB_loadifffile(int file, int flags, char colorspace[IM_MAX_SPACE], const char *descr);
/**
*
@@ -478,11 +480,13 @@ void IMB_freezbuffloatImBuf(struct ImBuf *ibuf);
* \attention Defined in rectop.c
*/
void IMB_rectfill(struct ImBuf *drect, const float col[4]);
-void IMB_rectfill_area(struct ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2);
+void IMB_rectfill_area(struct ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2, struct ColorManagedDisplay *display);
void IMB_rectfill_alpha(struct ImBuf *ibuf, const float value);
/* this should not be here, really, we needed it for operating on render data, IMB_rectfill_area calls it */
-void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, const float col[4], int x1, int y1, int x2, int y2);
+void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height,
+ const float col[4], struct ColorManagedDisplay *display,
+ int x1, int y1, int x2, int y2);
/* defined in metadata.c */
int IMB_metadata_change_field(struct ImBuf *img, const char *key, const char *field);
@@ -498,5 +502,15 @@ void imb_freemipmapImBuf(struct ImBuf *ibuf);
short imb_addtilesImBuf(struct ImBuf *ibuf);
void imb_freetilesImBuf(struct ImBuf *ibuf);
+/* threaded processors */
+void IMB_processor_apply_threaded(int buffer_lines, int handle_size, void *init_customdata,
+ void (init_handle) (void *handle, int start_line, int tot_line,
+ void *customdata),
+ void *(do_thread) (void *));
+
+/* ffmpeg */
+void IMB_ffmpeg_init(void);
+const char *IMB_ffmpeg_last_error(void);
+
#endif
diff --git a/source/blender/imbuf/IMB_imbuf_types.h b/source/blender/imbuf/IMB_imbuf_types.h
index dcb5cdd7d32..f03f709f13f 100644
--- a/source/blender/imbuf/IMB_imbuf_types.h
+++ b/source/blender/imbuf/IMB_imbuf_types.h
@@ -101,7 +101,6 @@ typedef struct ImBuf {
/* parameters used by conversion between byte and float */
float dither; /* random dither value, for conversion from float -> byte rect */
- short profile; /* color space/profile preset that the byte rect buffer represents */
/* mipmapping */
struct ImBuf *mipmap[IB_MIPMAP_LEVELS]; /* MipMap levels, a series of halved images */
@@ -127,6 +126,13 @@ typedef struct ImBuf {
unsigned int encodedsize; /* Size of data written to encodedbuffer */
unsigned int encodedbuffersize; /* Size of encodedbuffer */
+ /* color management */
+ struct ColorSpace *rect_colorspace; /* color space of byte buffer */
+ struct ColorSpace *float_colorspace; /* color space of float buffer, used by sequencer only */
+ unsigned int *display_buffer_flags; /* array of per-display display buffers dirty flags */
+ struct ColormanageCache *colormanage_cache; /* cache used by color management */
+ int colormanage_flag;
+
/* information for compressed textures */
struct DDSData dds_data;
} ImBuf;
@@ -136,10 +142,11 @@ typedef struct ImBuf {
* \brief userflags: Flags used internally by blender for imagebuffers
*/
-#define IB_BITMAPFONT (1 << 0) /* this image is a font */
-#define IB_BITMAPDIRTY (1 << 1) /* image needs to be saved is not the same as filename */
-#define IB_MIPMAP_INVALID (1 << 2) /* image mipmaps are invalid, need recreate */
-#define IB_RECT_INVALID (1 << 3) /* float buffer changed, needs recreation of byte rect */
+#define IB_BITMAPFONT (1 << 0) /* this image is a font */
+#define IB_BITMAPDIRTY (1 << 1) /* image needs to be saved is not the same as filename */
+#define IB_MIPMAP_INVALID (1 << 2) /* image mipmaps are invalid, need recreate */
+#define IB_RECT_INVALID (1 << 3) /* float buffer changed, needs recreation of byte rect */
+#define IB_DISPLAY_BUFFER_INVALID (1 << 4) /* either float or byte buffer changed, need to re-calculate display buffers */
/**
* \name Imbuf Component flags
@@ -165,8 +172,10 @@ typedef struct ImBuf {
/*
* The bit flag is stored in the ImBuf.ftype variable.
- * Note that the lower 10 bits is used for storing custom flags
+ * Note that the lower 10 bits is used for storing custom flags
*/
+#define IB_CUSTOM_FLAGS_MASK 0x3ff
+
#define PNG (1 << 30)
#define TGA (1 << 28)
#define JPG (1 << 27)
@@ -252,4 +261,8 @@ extern const char *imb_ext_image_qt[];
extern const char *imb_ext_movie[];
extern const char *imb_ext_audio[];
+enum {
+ IMB_COLORMANAGE_IS_DATA = (1 << 0)
+};
+
#endif
diff --git a/source/blender/imbuf/IMB_moviecache.h b/source/blender/imbuf/IMB_moviecache.h
index f6927d4f31d..4588c2bcee5 100644
--- a/source/blender/imbuf/IMB_moviecache.h
+++ b/source/blender/imbuf/IMB_moviecache.h
@@ -35,7 +35,7 @@
#include "BLI_utildefines.h"
#include "BLI_ghash.h"
-/* Cache system for movie data - now supports stoting ImBufs only
+/* Cache system for movie data - now supports storing ImBufs only
* Supposed to provide unified cache system for movie clips, sequencer and
* other movie-related areas */
@@ -44,13 +44,25 @@ struct MovieCache;
typedef void (*MovieCacheGetKeyDataFP) (void *userkey, int *framenr, int *proxy, int *render_flags);
+typedef void *(*MovieCacheGetPriorityDataFP) (void *userkey);
+typedef int (*MovieCacheGetItemPriorityFP) (void *last_userkey, void *priority_data);
+typedef void (*MovieCachePriorityDeleterFP) (void *priority_data);
+
void IMB_moviecache_init(void);
void IMB_moviecache_destruct(void);
-struct MovieCache *IMB_moviecache_create(int keysize, GHashHashFP hashfp, GHashCmpFP cmpfp, MovieCacheGetKeyDataFP getdatafp);
+struct MovieCache *IMB_moviecache_create(const char *name, int keysize, GHashHashFP hashfp, GHashCmpFP cmpfp);
+void IMB_moviecache_set_getdata_callback(struct MovieCache *cache, MovieCacheGetKeyDataFP getdatafp);
+void IMB_moviecache_set_priority_callback(struct MovieCache *cache, MovieCacheGetPriorityDataFP getprioritydatafp,
+ MovieCacheGetItemPriorityFP getitempriorityfp,
+ MovieCachePriorityDeleterFP prioritydeleterfp);
+
void IMB_moviecache_put(struct MovieCache *cache, void *userkey, struct ImBuf *ibuf);
-struct ImBuf* IMB_moviecache_get(struct MovieCache *cache, void *userkey);
+struct ImBuf *IMB_moviecache_get(struct MovieCache *cache, void *userkey);
void IMB_moviecache_free(struct MovieCache *cache);
+
+void IMB_moviecache_cleanup(struct MovieCache *cache, int (cleanup_check_cb) (void *userkey, void *userdata), void *userdata);
+
void IMB_moviecache_get_cache_segments(struct MovieCache *cache, int proxy, int render_flags, int *totseg_r, int **points_r);
#endif
diff --git a/source/blender/imbuf/IMB_thumbs.h b/source/blender/imbuf/IMB_thumbs.h
index 76c09ec1486..a6f38516a14 100644
--- a/source/blender/imbuf/IMB_thumbs.h
+++ b/source/blender/imbuf/IMB_thumbs.h
@@ -63,16 +63,16 @@ typedef enum ThumbSource {
// IB_metadata
/* create thumbnail for file and returns new imbuf for thumbnail */
-ImBuf* IMB_thumb_create(const char* path, ThumbSize size, ThumbSource source, ImBuf *ibuf);
+ImBuf *IMB_thumb_create(const char *path, ThumbSize size, ThumbSource source, ImBuf *ibuf);
/* read thumbnail for file and returns new imbuf for thumbnail */
-ImBuf* IMB_thumb_read(const char* path, ThumbSize size);
+ImBuf *IMB_thumb_read(const char *path, ThumbSize size);
/* delete all thumbs for the file */
-void IMB_thumb_delete(const char* path, ThumbSize size);
+void IMB_thumb_delete(const char *path, ThumbSize size);
/* return the state of the thumb, needed to determine how to manage the thumb */
-ImBuf* IMB_thumb_manage(const char* path, ThumbSize size, ThumbSource source);
+ImBuf *IMB_thumb_manage(const char *path, ThumbSize size, ThumbSource source);
/* create the necessary dirs to store the thumbnails */
void IMB_thumb_makedirs(void);
diff --git a/source/blender/imbuf/SConscript b/source/blender/imbuf/SConscript
index a1030112f4b..976108cd84e 100644
--- a/source/blender/imbuf/SConscript
+++ b/source/blender/imbuf/SConscript
@@ -4,9 +4,9 @@ Import ('env')
sources = env.Glob('intern/*.c')
-incs = '. ../makesdna #/intern/guardedalloc #/intern/memutil ../blenlib'
+incs = '. ../makesdna ../makesrna #/intern/guardedalloc #/intern/memutil ../blenlib'
incs += ' ../avi ../blenkernel ../blenloader'
-incs += ' #/intern/ffmpeg'
+incs += ' #/intern/ffmpeg #intern/opencolorio'
incs += ' ' + env['BF_JPEG_INC']
incs += ' ' + env['BF_PNG_INC']
diff --git a/source/blender/imbuf/intern/IMB_anim.h b/source/blender/imbuf/intern/IMB_anim.h
index 7f4abd29890..ed349e8f7eb 100644
--- a/source/blender/imbuf/intern/IMB_anim.h
+++ b/source/blender/imbuf/intern/IMB_anim.h
@@ -62,7 +62,9 @@
#include "imbuf.h"
-#include "AVI_avi.h"
+#ifdef WITH_AVI
+# include "AVI_avi.h"
+#endif
#ifdef WITH_QUICKTIME
# if defined(_WIN32) || defined(__APPLE__)
@@ -129,9 +131,9 @@ struct anim {
float frs_sec_base;
int x, y;
- /* voor op nummer */
+ /* for number */
char name[1024];
- /* voor sequence */
+ /* for sequence */
char first[1024];
/* movie */
@@ -191,6 +193,7 @@ struct anim {
struct anim *proxy_anim[IMB_PROXY_MAX_SLOT];
struct anim_index *curr_idx[IMB_TC_MAX_SLOT];
+ char colorspace[64];
};
#endif
diff --git a/source/blender/imbuf/intern/IMB_colormanagement_intern.h b/source/blender/imbuf/intern/IMB_colormanagement_intern.h
new file mode 100644
index 00000000000..ba9e20ac411
--- /dev/null
+++ b/source/blender/imbuf/intern/IMB_colormanagement_intern.h
@@ -0,0 +1,99 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2012 by Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Xavier Thomas,
+ * Lukas Toenne,
+ * Sergey Sharybin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ *
+ */
+
+#ifndef IMB_COLORMANAGEMENT_INTERN_H
+#define IMB_COLORMANAGEMENT_INTERN_H
+
+#include "DNA_listBase.h"
+
+#define BCM_CONFIG_FILE "config.ocio"
+
+struct OCIO_ConstProcessorRcPtr;
+struct ImBuf;
+
+typedef struct ColorSpace {
+ struct ColorSpace *next, *prev;
+ int index;
+ char name[64];
+ char description[64];
+
+ struct OCIO_ConstProcessorRcPtr *to_scene_linear;
+ struct OCIO_ConstProcessorRcPtr *from_scene_linear;
+
+ int is_invertible;
+ int is_data;
+} ColorSpace;
+
+typedef struct ColorManagedDisplay {
+ struct ColorManagedDisplay *next, *prev;
+ int index;
+ char name[64];
+ ListBase views;
+
+ struct OCIO_ConstProcessorRcPtr *to_scene_linear;
+ struct OCIO_ConstProcessorRcPtr *from_scene_linear;
+} ColorManagedDisplay;
+
+typedef struct ColorManagedView {
+ struct ColorManagedView *next, *prev;
+ int index;
+ char name[64];
+} ColorManagedView;
+
+/* ** Initialization / De-initialization ** */
+
+void colormanagement_init(void);
+void colormanagement_exit(void);
+
+void colormanage_cache_free(struct ImBuf *ibuf);
+
+const char *colormanage_display_get_default_name(void);
+struct ColorManagedDisplay *colormanage_display_get_default(void);
+struct ColorManagedDisplay *colormanage_display_add(const char *name);
+struct ColorManagedDisplay *colormanage_display_get_named(const char *name);
+struct ColorManagedDisplay *colormanage_display_get_indexed(int index);
+
+const char *colormanage_view_get_default_name(const ColorManagedDisplay *display);
+struct ColorManagedView *colormanage_view_get_default(const ColorManagedDisplay *display);
+struct ColorManagedView *colormanage_view_add(const char *name);
+struct ColorManagedView *colormanage_view_get_indexed(int index);
+struct ColorManagedView *colormanage_view_get_named(const char *name);
+
+struct ColorSpace *colormanage_colorspace_add(const char *name, const char *description, int is_invertible, int is_data);
+struct ColorSpace *colormanage_colorspace_get_named(const char *name);
+struct ColorSpace *colormanage_colorspace_get_roled(int role);
+struct ColorSpace *colormanage_colorspace_get_indexed(int index);
+
+void colorspace_set_default_role(char *colorspace, int size, int role);
+
+void colormanage_imbuf_set_default_spaces(struct ImBuf *ibuf);
+void colormanage_imbuf_make_linear(struct ImBuf *ibuf, const char *from_colorspace);
+
+#endif /* IMB_COLORMANAGEMENT_INTERN_H */
diff --git a/source/blender/imbuf/intern/IMB_filetype.h b/source/blender/imbuf/intern/IMB_filetype.h
index 74d0a92f26b..56a03121409 100644
--- a/source/blender/imbuf/intern/IMB_filetype.h
+++ b/source/blender/imbuf/intern/IMB_filetype.h
@@ -40,12 +40,13 @@ typedef struct ImFileType {
int (*is_a)(unsigned char *buf);
int (*ftype)(struct ImFileType *type, struct ImBuf *ibuf);
- struct ImBuf *(*load)(unsigned char *mem, size_t size, int flags);
+ struct ImBuf *(*load)(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
int (*save)(struct ImBuf *ibuf, const char *name, int flags);
void (*load_tile)(struct ImBuf *ibuf, unsigned char *mem, size_t size, int tx, int ty, unsigned int *rect);
int flag;
int filetype;
+ int default_save_role;
} ImFileType;
extern ImFileType IMB_FILE_TYPES[];
@@ -63,57 +64,57 @@ void imb_tile_cache_tile_free(struct ImBuf *ibuf, int tx, int ty);
/* png */
int imb_is_a_png(unsigned char *buf);
-struct ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags);
+struct ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
int imb_savepng(struct ImBuf *ibuf, const char *name, int flags);
/* targa */
int imb_is_a_targa(unsigned char *buf);
-struct ImBuf *imb_loadtarga(unsigned char *mem, size_t size, int flags);
+struct ImBuf *imb_loadtarga(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
int imb_savetarga(struct ImBuf * ibuf, const char *name, int flags);
/* iris */
int imb_is_a_iris(unsigned char *mem);
-struct ImBuf *imb_loadiris(unsigned char *mem, size_t size, int flags);
+struct ImBuf *imb_loadiris(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
int imb_saveiris(struct ImBuf * ibuf, const char *name, int flags);
/* jp2 */
int imb_is_a_jp2(unsigned char *buf);
-struct ImBuf *imb_jp2_decode(unsigned char *mem, size_t size, int flags);
+struct ImBuf *imb_jp2_decode(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
int imb_savejp2(struct ImBuf *ibuf, const char *name, int flags);
/* jpeg */
int imb_is_a_jpeg(unsigned char *mem);
int imb_savejpeg(struct ImBuf *ibuf, const char *name, int flags);
-struct ImBuf * imb_load_jpeg (unsigned char * buffer, size_t size, int flags);
+struct ImBuf * imb_load_jpeg (unsigned char * buffer, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
/* bmp */
int imb_is_a_bmp(unsigned char *buf);
-struct ImBuf *imb_bmp_decode(unsigned char *mem, size_t size, int flags);
+struct ImBuf *imb_bmp_decode(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
int imb_savebmp(struct ImBuf *ibuf, const char *name, int flags);
/* cocoa */
-struct ImBuf *imb_cocoaLoadImage(unsigned char *mem, size_t size, int flags);
+struct ImBuf *imb_cocoaLoadImage(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
short imb_cocoaSaveImage(struct ImBuf *ibuf, const char *name, int flags);
/* cineon */
int imb_savecineon(struct ImBuf *buf, const char *name, int flags);
-struct ImBuf *imb_loadcineon(unsigned char *mem, size_t size, int flags);
+struct ImBuf *imb_loadcineon(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
int imb_is_cineon(unsigned char *buf);
/* dpx */
int imb_save_dpx(struct ImBuf *buf, const char *name, int flags);
-struct ImBuf *imb_loaddpx(unsigned char *mem, size_t size, int flags);
+struct ImBuf *imb_loaddpx(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
int imb_is_dpx(unsigned char *buf);
/* hdr */
int imb_is_a_hdr(unsigned char *buf);
-struct ImBuf *imb_loadhdr(unsigned char *mem, size_t size, int flags);
+struct ImBuf *imb_loadhdr(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
int imb_savehdr(struct ImBuf * ibuf, const char *name, int flags);
/* tiff */
void imb_inittiff(void);
int imb_is_a_tiff(unsigned char *buf);
-struct ImBuf *imb_loadtiff(unsigned char *mem, size_t size, int flags);
+struct ImBuf *imb_loadtiff(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
void imb_loadtiletiff(struct ImBuf *ibuf, unsigned char *mem, size_t size,
int tx, int ty, unsigned int *rect);
int imb_savetiff(struct ImBuf *ibuf, const char *name, int flags);
diff --git a/source/blender/imbuf/intern/IMB_indexer.h b/source/blender/imbuf/intern/IMB_indexer.h
index dc16b4d7e36..18816924a9b 100644
--- a/source/blender/imbuf/intern/IMB_indexer.h
+++ b/source/blender/imbuf/intern/IMB_indexer.h
@@ -31,7 +31,6 @@
#include <stdlib.h>
#include <stdio.h>
-#include "BKE_utildefines.h"
#include "IMB_anim.h"
/*
* separate animation index files to solve the following problems:
@@ -63,7 +62,7 @@ struct anim_index {
char name[1024];
int num_entries;
- struct anim_index_entry * entries;
+ struct anim_index_entry *entries;
};
struct anim_index_builder;
@@ -77,9 +76,9 @@ typedef struct anim_index_builder {
void (*delete_priv_data)(struct anim_index_builder * idx);
void (*proc_frame)(struct anim_index_builder * idx,
- unsigned char * buffer,
+ unsigned char *buffer,
int data_size,
- struct anim_index_entry * entry);
+ struct anim_index_entry *entry);
} anim_index_builder;
anim_index_builder * IMB_index_builder_create(const char * name);
@@ -99,15 +98,15 @@ void IMB_index_builder_proc_frame(
void IMB_index_builder_finish(anim_index_builder * fp, int rollback);
-struct anim_index * IMB_indexer_open(const char * name);
+struct anim_index *IMB_indexer_open(const char * name);
unsigned long long IMB_indexer_get_seek_pos(
- struct anim_index * idx, int frameno_index);
+ struct anim_index *idx, int frameno_index);
unsigned long long IMB_indexer_get_seek_pos_dts(
- struct anim_index * idx, int frameno_index);
+ struct anim_index *idx, int frameno_index);
int IMB_indexer_get_frame_index(struct anim_index * idx, int frameno);
-unsigned long long IMB_indexer_get_pts(struct anim_index * idx,
- int frame_index);
+unsigned long long IMB_indexer_get_pts(struct anim_index *idx,
+ int frame_index);
int IMB_indexer_get_duration(struct anim_index * idx);
int IMB_indexer_can_scan(struct anim_index * idx,
@@ -118,12 +117,12 @@ void IMB_indexer_close(struct anim_index * idx);
void IMB_free_indices(struct anim * anim);
int IMB_anim_index_get_frame_index(
- struct anim * anim, IMB_Timecode_Type tc, int position);
+ struct anim *anim, IMB_Timecode_Type tc, int position);
-struct anim * IMB_anim_open_proxy(
- struct anim * anim, IMB_Proxy_Size preview_size);
+struct anim *IMB_anim_open_proxy(
+ struct anim *anim, IMB_Proxy_Size preview_size);
struct anim_index * IMB_anim_open_index(
- struct anim * anim, IMB_Timecode_Type tc);
+ struct anim *anim, IMB_Timecode_Type tc);
int IMB_proxy_size_to_array_index(IMB_Proxy_Size pr_size);
int IMB_timecode_to_array_index(IMB_Timecode_Type tc);
diff --git a/source/blender/imbuf/intern/IMB_metadata.h b/source/blender/imbuf/intern/IMB_metadata.h
index 4f512e04ef8..a68d7a7813e 100644
--- a/source/blender/imbuf/intern/IMB_metadata.h
+++ b/source/blender/imbuf/intern/IMB_metadata.h
@@ -62,7 +62,7 @@ void IMB_metadata_free(struct ImBuf *img);
* \param len - length of value buffer allocated by user.
* \return - 1 (true) if ImageInfo present and value for the key found, 0 (false) otherwise
*/
-int IMB_metadata_get_field(struct ImBuf *img, const char *key, char *value, int len);
+int IMB_metadata_get_field(struct ImBuf *img, const char *key, char *value, const size_t len);
/** set user data in the ImMetaData struct, which has to be allocated with IMB_metadata_create
* before calling this function.
diff --git a/source/blender/imbuf/intern/allocimbuf.c b/source/blender/imbuf/intern/allocimbuf.c
index 68a094c26d0..69048274104 100644
--- a/source/blender/imbuf/intern/allocimbuf.c
+++ b/source/blender/imbuf/intern/allocimbuf.c
@@ -41,6 +41,7 @@
#include "IMB_allocimbuf.h"
#include "IMB_filetype.h"
#include "IMB_metadata.h"
+#include "IMB_colormanagement_intern.h"
#include "imbuf.h"
@@ -162,8 +163,11 @@ void IMB_freeImBuf(ImBuf *ibuf)
IMB_freezbuffloatImBuf(ibuf);
freeencodedbufferImBuf(ibuf);
IMB_metadata_free(ibuf);
- if (ibuf->dds_data.data != NULL)
+ colormanage_cache_free(ibuf);
+
+ if (ibuf->dds_data.data != NULL) {
free(ibuf->dds_data.data); /* dds_data.data is allocated by DirectDrawSurface::readData(), so don't use MEM_freeN! */
+ }
MEM_freeN(ibuf);
}
}
@@ -354,7 +358,7 @@ ImBuf *IMB_allocImBuf(unsigned int x, unsigned int y, uchar planes, unsigned int
ibuf->ftype = TGA;
ibuf->channels = 4; /* float option, is set to other values when buffers get assigned */
ibuf->ppm[0] = ibuf->ppm[1] = IMB_DPI_DEFAULT / 0.0254; /* IMB_DPI_DEFAULT -> pixels-per-meter */
-
+
if (flags & IB_rect) {
if (imb_addrectImBuf(ibuf) == FALSE) {
IMB_freeImBuf(ibuf);
@@ -382,6 +386,9 @@ ImBuf *IMB_allocImBuf(unsigned int x, unsigned int y, uchar planes, unsigned int
return NULL;
}
}
+
+ /* assign default spaces */
+ colormanage_imbuf_set_default_spaces(ibuf);
}
return (ibuf);
}
@@ -424,7 +431,7 @@ ImBuf *IMB_dupImBuf(ImBuf *ibuf1)
/* silly trick to copy the entire contents of ibuf1 struct over to ibuf */
tbuf = *ibuf1;
- // fix pointers
+ /* fix pointers */
tbuf.rect = ibuf2->rect;
tbuf.rect_float = ibuf2->rect_float;
tbuf.encodedbuffer = ibuf2->encodedbuffer;
@@ -432,17 +439,21 @@ ImBuf *IMB_dupImBuf(ImBuf *ibuf1)
tbuf.zbuf_float = NULL;
for (a = 0; a < IB_MIPMAP_LEVELS; a++)
tbuf.mipmap[a] = NULL;
+ tbuf.dds_data.data = NULL;
- // set malloc flag
+ /* set malloc flag */
tbuf.mall = ibuf2->mall;
tbuf.c_handle = NULL;
tbuf.refcounter = 0;
- // for now don't duplicate metadata
+ /* for now don't duplicate metadata */
tbuf.metadata = NULL;
+ tbuf.display_buffer_flags = NULL;
+ tbuf.colormanage_cache = NULL;
+
*ibuf2 = tbuf;
-
+
return(ibuf2);
}
diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c
index f0c2d754333..4aeba9af89d 100644
--- a/source/blender/imbuf/intern/anim_movie.c
+++ b/source/blender/imbuf/intern/anim_movie.c
@@ -42,8 +42,8 @@
#include <vfw.h>
#endif
-#undef AVIIF_KEYFRAME // redefined in AVI_avi.h
-#undef AVIIF_LIST // redefined in AVI_avi.h
+#undef AVIIF_KEYFRAME /* redefined in AVI_avi.h */
+#undef AVIIF_LIST /* redefined in AVI_avi.h */
#define FIXCC(fcc) \
{ \
@@ -64,8 +64,8 @@
#include <io.h>
#endif
-#include "BLI_blenlib.h" /* BLI_remlink BLI_file_descriptor_size BLI_addtail
- * BLI_countlist BLI_stringdec */
+#include "BLI_string.h"
+#include "BLI_path_util.h"
#include "BLI_utildefines.h"
#include "BLI_math_base.h"
@@ -73,13 +73,14 @@
#include "DNA_userdef_types.h"
-
#include "BKE_global.h"
#include "BKE_depsgraph.h"
#include "imbuf.h"
-#include "AVI_avi.h"
+#ifdef WITH_AVI
+# include "AVI_avi.h"
+#endif
#ifdef WITH_QUICKTIME
#if defined(_WIN32) || defined(__APPLE__)
@@ -114,6 +115,9 @@
#endif
#endif
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+
int ismovie(const char *UNUSED(filepath))
{
return 0;
@@ -183,6 +187,7 @@ static void an_stringenc(char *string, const char *head, const char *tail, unsig
BLI_stringenc(string, head, tail, numlen, pic);
}
+#ifdef WITH_AVI
static void free_anim_avi(struct anim *anim)
{
#if defined(_WIN32) && !defined(FREE_WINDOWS)
@@ -217,6 +222,7 @@ static void free_anim_avi(struct anim *anim)
anim->duration = 0;
}
+#endif /* WITH_AVI */
#ifdef WITH_FFMPEG
static void free_anim_ffmpeg(struct anim *anim);
@@ -233,7 +239,10 @@ void IMB_free_anim(struct anim *anim)
}
free_anim_movie(anim);
+
+#ifdef WITH_AVI
free_anim_avi(anim);
+#endif
#ifdef WITH_QUICKTIME
free_anim_quicktime(anim);
@@ -264,12 +273,20 @@ void IMB_close_anim_proxies(struct anim *anim)
IMB_free_indices(anim);
}
-struct anim *IMB_open_anim(const char *name, int ib_flags, int streamindex)
+struct anim *IMB_open_anim(const char *name, int ib_flags, int streamindex, char colorspace[IM_MAX_SPACE])
{
struct anim *anim;
anim = (struct anim *)MEM_callocN(sizeof(struct anim), "anim struct");
if (anim != NULL) {
+ if (colorspace) {
+ colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_BYTE);
+ BLI_strncpy(anim->colorspace, colorspace, sizeof(anim->colorspace));
+ }
+ else {
+ colorspace_set_default_role(anim->colorspace, sizeof(anim->colorspace), COLOR_ROLE_DEFAULT_BYTE);
+ }
+
BLI_strncpy(anim->name, name, sizeof(anim->name));
anim->ib_flags = ib_flags;
anim->streamindex = streamindex;
@@ -277,7 +294,7 @@ struct anim *IMB_open_anim(const char *name, int ib_flags, int streamindex)
return(anim);
}
-
+#ifdef WITH_AVI
static int startavi(struct anim *anim)
{
@@ -324,10 +341,10 @@ static int startavi(struct anim *anim)
if (anim->pgf) {
firstvideo = i;
- // get stream length
+ /* get stream length */
anim->avi->header->TotalFrames = AVIStreamLength(anim->pavi[i]);
-
- // get information about images inside the stream
+
+ /* get information about images inside the stream */
l = sizeof(abFormat);
AVIStreamReadFormat(anim->pavi[i], 0, &abFormat, &l);
lpbi = (LPBITMAPINFOHEADER)abFormat;
@@ -344,12 +361,12 @@ static int startavi(struct anim *anim)
}
}
- // register number of opened avistreams
+ /* register number of opened avistreams */
anim->avistreams = i;
- //
- // Couldn't get any video streams out of this file
- //
+ /*
+ * Couldn't get any video streams out of this file
+ */
if ((anim->avistreams == 0) || (firstvideo == -1)) {
avierror = AVI_ERROR_FORMAT;
}
@@ -387,14 +404,18 @@ static int startavi(struct anim *anim)
return 0;
}
+#endif /* WITH_AVI */
+#ifdef WITH_AVI
static ImBuf *avi_fetchibuf(struct anim *anim, int position)
{
ImBuf *ibuf = NULL;
int *tmp;
int y;
- if (anim == NULL) return (NULL);
+ if (anim == NULL) {
+ return NULL;
+ }
#if defined(_WIN32) && !defined(FREE_WINDOWS)
if (anim->avistreams) {
@@ -403,7 +424,7 @@ static ImBuf *avi_fetchibuf(struct anim *anim, int position)
if (anim->pgf) {
lpbi = AVIStreamGetFrame(anim->pgf, position + AVIStreamStart(anim->pavi[anim->firstvideo]));
if (lpbi) {
- ibuf = IMB_ibImageFromMemory((unsigned char *) lpbi, 100, IB_rect, "<avi_fetchibuf>");
+ ibuf = IMB_ibImageFromMemory((unsigned char *) lpbi, 100, IB_rect, anim->colorspace, "<avi_fetchibuf>");
//Oh brother...
}
}
@@ -418,7 +439,7 @@ static ImBuf *avi_fetchibuf(struct anim *anim, int position)
AVI_get_stream(anim->avi, AVIST_VIDEO, 0));
if (tmp == NULL) {
- printf("Error reading frame from AVI");
+ printf("Error reading frame from AVI: '%s'\n", anim->name);
IMB_freeImBuf(ibuf);
return NULL;
}
@@ -431,15 +452,14 @@ static ImBuf *avi_fetchibuf(struct anim *anim, int position)
MEM_freeN(tmp);
}
- ibuf->profile = IB_PROFILE_SRGB;
-
+ ibuf->rect_colorspace = colormanage_colorspace_get_named(anim->colorspace);
+
return ibuf;
}
+#endif /* WITH_AVI */
#ifdef WITH_FFMPEG
-extern void do_init_ffmpeg(void);
-
static int startffmpeg(struct anim *anim)
{
int i, videoStream;
@@ -462,8 +482,6 @@ static int startffmpeg(struct anim *anim)
streamcount = anim->streamindex;
- do_init_ffmpeg();
-
if (avformat_open_input(&pFormatCtx, anim->name, NULL, NULL) != 0) {
return -1;
}
@@ -637,8 +655,6 @@ static void ffmpeg_postprocess(struct anim *anim)
ImBuf *ibuf = anim->last_frame;
int filter_y = 0;
- ibuf->profile = IB_PROFILE_SRGB;
-
if (!anim->pFrameComplete) {
return;
}
@@ -804,6 +820,34 @@ static int ffmpeg_decode_video_frame(struct anim *anim)
anim->next_packet.stream_index = -1;
}
+ if (rval == AVERROR_EOF) {
+ anim->next_packet.size = 0;
+ anim->next_packet.data = 0;
+
+ anim->pFrameComplete = 0;
+
+ avcodec_decode_video2(
+ anim->pCodecCtx,
+ anim->pFrame, &anim->pFrameComplete,
+ &anim->next_packet);
+
+ if (anim->pFrameComplete) {
+ anim->next_pts = av_get_pts_from_frame(
+ anim->pFormatCtx, anim->pFrame);
+
+ av_log(anim->pFormatCtx,
+ AV_LOG_DEBUG,
+ " FRAME DONE (after EOF): next_pts=%lld "
+ "pkt_pts=%lld, guessed_pts=%lld\n",
+ (anim->pFrame->pts == AV_NOPTS_VALUE) ?
+ -1 : (long long int)anim->pFrame->pts,
+ (anim->pFrame->pkt_pts == AV_NOPTS_VALUE) ?
+ -1 : (long long int)anim->pFrame->pkt_pts,
+ (long long int)anim->next_pts);
+ rval = 0;
+ }
+ }
+
if (rval < 0) {
anim->next_packet.stream_index = -1;
@@ -1065,6 +1109,7 @@ static ImBuf *ffmpeg_fetchibuf(struct anim *anim, int position,
IMB_freeImBuf(anim->last_frame);
anim->last_frame = IMB_allocImBuf(anim->x, anim->y, 32, IB_rect);
+ anim->last_frame->rect_colorspace = colormanage_colorspace_get_named(anim->colorspace);
ffmpeg_postprocess(anim);
@@ -1171,7 +1216,11 @@ static ImBuf *anim_getnew(struct anim *anim)
if (anim == NULL) return(NULL);
free_anim_movie(anim);
+
+#ifdef WITH_AVI
free_anim_avi(anim);
+#endif
+
#ifdef WITH_QUICKTIME
free_anim_quicktime(anim);
#endif
@@ -1188,7 +1237,7 @@ static ImBuf *anim_getnew(struct anim *anim)
switch (anim->curtype) {
case ANIM_SEQUENCE:
- ibuf = IMB_loadiffname(anim->name, anim->ib_flags);
+ ibuf = IMB_loadiffname(anim->name, anim->ib_flags, anim->colorspace);
if (ibuf) {
BLI_strncpy(anim->first, anim->name, sizeof(anim->first));
anim->duration = 1;
@@ -1198,6 +1247,7 @@ static ImBuf *anim_getnew(struct anim *anim)
if (startmovie(anim)) return (NULL);
ibuf = IMB_allocImBuf(anim->x, anim->y, 24, 0); /* fake */
break;
+#ifdef WITH_AVI
case ANIM_AVI:
if (startavi(anim)) {
printf("couldnt start avi\n");
@@ -1205,6 +1255,7 @@ static ImBuf *anim_getnew(struct anim *anim)
}
ibuf = IMB_allocImBuf(anim->x, anim->y, 24, 0);
break;
+#endif
#ifdef WITH_QUICKTIME
case ANIM_QTIME:
if (startquicktime(anim)) return (0);
@@ -1284,7 +1335,7 @@ struct ImBuf *IMB_anim_absolute(struct anim *anim, int position,
pic = an_stringdec(anim->first, head, tail, &digits);
pic += position;
an_stringenc(anim->name, head, tail, digits, pic);
- ibuf = IMB_loadiffname(anim->name, IB_rect);
+ ibuf = IMB_loadiffname(anim->name, IB_rect, anim->colorspace);
if (ibuf) {
anim->curposition = position;
}
@@ -1294,19 +1345,28 @@ struct ImBuf *IMB_anim_absolute(struct anim *anim, int position,
if (ibuf) {
anim->curposition = position;
IMB_convert_rgba_to_abgr(ibuf);
- ibuf->profile = IB_PROFILE_SRGB;
}
break;
+#ifdef WITH_AVI
case ANIM_AVI:
ibuf = avi_fetchibuf(anim, position);
if (ibuf)
anim->curposition = position;
break;
+#endif
#ifdef WITH_QUICKTIME
case ANIM_QTIME:
ibuf = qtime_fetchibuf(anim, position);
- if (ibuf)
+ if (ibuf) {
+ if (ibuf->rect) {
+ /* OCIO_TODO: should happen in quicktime module, but it currently doesn't have access
+ * to color management's internals
+ */
+ ibuf->rect_colorspace = colormanage_colorspace_get_named(anim->colorspace);
+ }
+
anim->curposition = position;
+ }
break;
#endif
#ifdef WITH_FFMPEG
diff --git a/source/blender/imbuf/intern/bmp.c b/source/blender/imbuf/intern/bmp.c
index 8734ea90cb1..df12f0b703e 100644
--- a/source/blender/imbuf/intern/bmp.c
+++ b/source/blender/imbuf/intern/bmp.c
@@ -29,8 +29,7 @@
* \ingroup imbuf
*/
-
-#include "BLI_blenlib.h"
+#include "BLI_fileops.h"
#include "imbuf.h"
@@ -39,6 +38,9 @@
#include "IMB_allocimbuf.h"
#include "IMB_filetype.h"
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+
/* some code copied from article on microsoft.com, copied
* here for enhanced BMP support in the future
* http://www.microsoft.com/msj/defaultframe.asp?page=/msj/0197/mfcp1/mfcp1.htm&nav=/msj/0197/newnav.htm
@@ -70,16 +72,25 @@ typedef struct BMPHEADER {
static int checkbmp(unsigned char *mem)
{
+#define CHECK_HEADER_FIELD(mem, field) ((mem[0] == field[0]) && (mem[1] == field[1]))
+
int ret_val = 0;
BMPINFOHEADER bmi;
unsigned int u;
if (mem) {
- if ((mem[0] == 'B') && (mem[1] == 'M')) {
+ if (CHECK_HEADER_FIELD(mem, "BM") ||
+ CHECK_HEADER_FIELD(mem, "BA") ||
+ CHECK_HEADER_FIELD(mem, "CI") ||
+ CHECK_HEADER_FIELD(mem, "CP") ||
+ CHECK_HEADER_FIELD(mem, "IC") ||
+ CHECK_HEADER_FIELD(mem, "PT"))
+ {
/* skip fileheader */
mem += BMP_FILEHEADER_SIZE;
}
else {
+ return 0;
}
/* for systems where an int needs to be 4 bytes aligned */
@@ -98,6 +109,8 @@ static int checkbmp(unsigned char *mem)
}
return(ret_val);
+
+#undef CHECK_HEADER_FIELD
}
int imb_is_a_bmp(unsigned char *buf)
@@ -105,7 +118,7 @@ int imb_is_a_bmp(unsigned char *buf)
return checkbmp(buf);
}
-struct ImBuf *imb_bmp_decode(unsigned char *mem, size_t size, int flags)
+struct ImBuf *imb_bmp_decode(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
{
struct ImBuf *ibuf = NULL;
BMPINFOHEADER bmi;
@@ -117,6 +130,8 @@ struct ImBuf *imb_bmp_decode(unsigned char *mem, size_t size, int flags)
if (checkbmp(mem) == 0) return(NULL);
+ colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_BYTE);
+
if ((mem[0] == 'B') && (mem[1] == 'M')) {
/* skip fileheader */
mem += BMP_FILEHEADER_SIZE;
@@ -185,7 +200,6 @@ struct ImBuf *imb_bmp_decode(unsigned char *mem, size_t size, int flags)
if (ibuf) {
ibuf->ftype = BMP;
- ibuf->profile = IB_PROFILE_SRGB;
}
return(ibuf);
diff --git a/source/blender/imbuf/intern/cineon/cineon_dpx.c b/source/blender/imbuf/intern/cineon/cineon_dpx.c
index 182e0a7e29d..7705af13b1e 100644
--- a/source/blender/imbuf/intern/cineon/cineon_dpx.c
+++ b/source/blender/imbuf/intern/cineon/cineon_dpx.c
@@ -44,6 +44,9 @@
#include "IMB_imbuf.h"
#include "IMB_filetype.h"
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+
#include "BKE_global.h"
#include "MEM_guardedalloc.h"
@@ -63,7 +66,7 @@ static void cineon_conversion_parameters(LogImageByteConversionParameters *param
}
#endif
-static ImBuf *imb_load_dpx_cineon(unsigned char *mem, int use_cineon, int size, int flags)
+static ImBuf *imb_load_dpx_cineon(unsigned char *mem, int use_cineon, int size, int flags, char colorspace[IM_MAX_SPACE])
{
ImBuf *ibuf;
LogImageFile *image;
@@ -72,6 +75,8 @@ static ImBuf *imb_load_dpx_cineon(unsigned char *mem, int use_cineon, int size,
int width, height, depth;
float *frow;
+ colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_FLOAT);
+
logImageSetVerbose((G.debug & G_DEBUG) ? 1:0);
image = logImageOpenFromMem(mem, size, use_cineon);
@@ -202,10 +207,10 @@ int imb_is_cineon(unsigned char *buf)
return cineonIsMemFileCineon(buf);
}
-ImBuf *imb_loadcineon(unsigned char *mem, size_t size, int flags)
+ImBuf *imb_loadcineon(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
{
if (imb_is_cineon(mem))
- return imb_load_dpx_cineon(mem, 1, size, flags);
+ return imb_load_dpx_cineon(mem, 1, size, flags, colorspace);
return NULL;
}
@@ -219,9 +224,9 @@ int imb_is_dpx(unsigned char *buf)
return dpxIsMemFileCineon(buf);
}
-ImBuf *imb_loaddpx(unsigned char *mem, size_t size, int flags)
+ImBuf *imb_loaddpx(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
{
if (imb_is_dpx(mem))
- return imb_load_dpx_cineon(mem, 0, size, flags);
+ return imb_load_dpx_cineon(mem, 0, size, flags, colorspace);
return NULL;
}
diff --git a/source/blender/imbuf/intern/colormanagement.c b/source/blender/imbuf/intern/colormanagement.c
new file mode 100644
index 00000000000..37510c10e9a
--- /dev/null
+++ b/source/blender/imbuf/intern/colormanagement.c
@@ -0,0 +1,2548 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2012 by Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Xavier Thomas,
+ * Lukas Toenne,
+ * Sergey Sharybin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ *
+ */
+
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+
+#include <string.h>
+#include <math.h>
+
+#include "DNA_color_types.h"
+#include "DNA_image_types.h"
+#include "DNA_movieclip_types.h"
+#include "DNA_scene_types.h"
+#include "DNA_screen_types.h"
+#include "DNA_space_types.h"
+#include "DNA_windowmanager_types.h"
+
+#include "IMB_filter.h"
+#include "IMB_imbuf.h"
+#include "IMB_imbuf_types.h"
+#include "IMB_filetype.h"
+#include "IMB_moviecache.h"
+
+#include "MEM_guardedalloc.h"
+
+#include "BLI_blenlib.h"
+#include "BLI_fileops.h"
+#include "BLI_math.h"
+#include "BLI_math_color.h"
+#include "BLI_path_util.h"
+#include "BLI_string.h"
+#include "BLI_threads.h"
+
+#include "BKE_colortools.h"
+#include "BKE_context.h"
+#include "BKE_image.h"
+#include "BKE_utildefines.h"
+#include "BKE_main.h"
+
+#include "RNA_define.h"
+
+#include <ocio_capi.h>
+
+/*********************** Global declarations *************************/
+
+#define MAX_COLORSPACE_NAME 64
+#define DISPLAY_BUFFER_CHANNELS 4
+
+/* ** list of all supported color spaces, displays and views */
+static char global_role_scene_linear[MAX_COLORSPACE_NAME];
+static char global_role_color_picking[MAX_COLORSPACE_NAME];
+static char global_role_texture_painting[MAX_COLORSPACE_NAME];
+static char global_role_default_byte[MAX_COLORSPACE_NAME];
+static char global_role_default_float[MAX_COLORSPACE_NAME];
+static char global_role_default_sequencer[MAX_COLORSPACE_NAME];
+
+static ListBase global_colorspaces = {NULL};
+static ListBase global_displays = {NULL};
+static ListBase global_views = {NULL};
+
+static int global_tot_colorspace = 0;
+static int global_tot_display = 0;
+static int global_tot_view = 0;
+
+/* lock used by pre-cached processors getters, so processor wouldn't
+ * be created several times
+ * LOCK_COLORMANAGE can not be used since this mutex could be needed to
+ * be locked before pre-cached processor are creating
+ */
+static pthread_mutex_t processor_lock = BLI_MUTEX_INITIALIZER;
+
+typedef struct ColormanageProcessor {
+ OCIO_ConstProcessorRcPtr *processor;
+ CurveMapping *curve_mapping;
+} ColormanageProcessor;
+
+/*********************** Color managed cache *************************/
+
+/* Cache Implementation Notes
+ * ==========================
+ *
+ * All color management cache stuff is stored in two properties of
+ * image buffers:
+ *
+ * 1. display_buffer_flags
+ *
+ * This is a bit field which used to mark calculated transformations
+ * for particular image buffer. Index inside of this array means index
+ * of a color managed display. Element with given index matches view
+ * transformations applied for a given display. So if bit B of array
+ * element B is set to 1, this means display buffer with display index
+ * of A and view transform of B was ever calculated for this imbuf.
+ *
+ * In contrast with indices in global lists of displays and views this
+ * indices are 0-based, not 1-based. This is needed to save some bytes
+ * of memory.
+ *
+ * 2. colormanage_cache
+ *
+ * This is a pointer to a structure which holds all data which is
+ * needed for color management cache to work.
+ *
+ * It contains two parts:
+ * - data
+ * - moviecache
+ *
+ * Data field is used to store additional information about cached
+ * buffers which affects on whether cached buffer could be used.
+ * This data can't go to cache key because changes in this data
+ * shouldn't lead extra buffers adding to cache, it shall
+ * invalidate cached images.
+ *
+ * Currently such a data contains only exposure and gamma, but
+ * would likely extended further.
+ *
+ * data field is not null only for elements of cache, not used for
+ * original image buffers.
+ *
+ * Color management cache is using generic MovieCache implementation
+ * to make it easier to deal with memory limitation.
+ *
+ * Currently color management is using the same memory limitation
+ * pool as sequencer and clip editor are using which means color
+ * managed buffers would be removed from the cache as soon as new
+ * frames are loading for the movie clip and there's no space in
+ * cache.
+ *
+ * Every image buffer has got own movie cache instance, which
+ * means keys for color managed buffers could be really simple
+ * and look up in this cache would be fast and independent from
+ * overall amount of color managed images.
+ */
+
+/* NOTE: ColormanageCacheViewSettings and ColormanageCacheDisplaySettings are
+ * quite the same as ColorManagedViewSettings and ColorManageDisplaySettings
+ * but they holds indexes of all transformations and color spaces, not
+ * their names.
+ *
+ * This helps avoid extra colorsmace / display / view lookup without
+ * requiring to pass all variables which affects on display buffer
+ * to color management cache system and keeps calls small and nice.
+ */
+typedef struct ColormanageCacheViewSettings {
+ int flag;
+ int view;
+ float exposure;
+ float gamma;
+ CurveMapping *curve_mapping;
+} ColormanageCacheViewSettings;
+
+typedef struct ColormanageCacheDisplaySettings {
+ int display;
+} ColormanageCacheDisplaySettings;
+
+typedef struct ColormanageCacheKey {
+ int view; /* view transformation used for display buffer */
+ int display; /* display device name */
+} ColormanageCacheKey;
+
+typedef struct ColormnaageCacheData {
+ int flag; /* view flags of cached buffer */
+ float exposure; /* exposure value cached buffer is calculated with */
+ float gamma; /* gamma value cached buffer is calculated with */
+ int predivide; /* predivide flag of cached buffer */
+ CurveMapping *curve_mapping; /* curve mapping used for cached buffer */
+ int curve_mapping_timestamp; /* time stamp of curve mapping used for cached buffer */
+} ColormnaageCacheData;
+
+typedef struct ColormanageCache {
+ struct MovieCache *moviecache;
+
+ ColormnaageCacheData *data;
+} ColormanageCache;
+
+static struct MovieCache *colormanage_moviecache_get(const ImBuf *ibuf)
+{
+ if (!ibuf->colormanage_cache)
+ return NULL;
+
+ return ibuf->colormanage_cache->moviecache;
+}
+
+static ColormnaageCacheData *colormanage_cachedata_get(const ImBuf *ibuf)
+{
+ if (!ibuf->colormanage_cache)
+ return NULL;
+
+ return ibuf->colormanage_cache->data;
+}
+
+static unsigned int colormanage_hashhash(const void *key_v)
+{
+ ColormanageCacheKey *key = (ColormanageCacheKey *)key_v;
+
+ unsigned int rval = (key->display << 16) | (key->view % 0xffff);
+
+ return rval;
+}
+
+static int colormanage_hashcmp(const void *av, const void *bv)
+{
+ const ColormanageCacheKey *a = (ColormanageCacheKey *) av;
+ const ColormanageCacheKey *b = (ColormanageCacheKey *) bv;
+
+ if (a->view < b->view)
+ return -1;
+ else if (a->view > b->view)
+ return 1;
+
+ if (a->display < b->display)
+ return -1;
+ else if (a->display > b->display)
+ return 1;
+
+ return 0;
+}
+
+static struct MovieCache *colormanage_moviecache_ensure(ImBuf *ibuf)
+{
+ if (!ibuf->colormanage_cache)
+ ibuf->colormanage_cache = MEM_callocN(sizeof(ColormanageCache), "imbuf colormanage cache");
+
+ if (!ibuf->colormanage_cache->moviecache) {
+ struct MovieCache *moviecache;
+
+ moviecache = IMB_moviecache_create("colormanage cache", sizeof(ColormanageCacheKey),
+ colormanage_hashhash, colormanage_hashcmp);
+
+ ibuf->colormanage_cache->moviecache = moviecache;
+ }
+
+ return ibuf->colormanage_cache->moviecache;
+}
+
+static void colormanage_cachedata_set(ImBuf *ibuf, ColormnaageCacheData *data)
+{
+ if (!ibuf->colormanage_cache)
+ ibuf->colormanage_cache = MEM_callocN(sizeof(ColormanageCache), "imbuf colormanage cache");
+
+ ibuf->colormanage_cache->data = data;
+}
+
+static void colormanage_view_settings_to_cache(ColormanageCacheViewSettings *cache_view_settings,
+ const ColorManagedViewSettings *view_settings)
+{
+ int view = IMB_colormanagement_view_get_named_index(view_settings->view_transform);
+
+ cache_view_settings->view = view;
+ cache_view_settings->exposure = view_settings->exposure;
+ cache_view_settings->gamma = view_settings->gamma;
+ cache_view_settings->flag = view_settings->flag;
+ cache_view_settings->curve_mapping = view_settings->curve_mapping;
+}
+
+static void colormanage_display_settings_to_cache(ColormanageCacheDisplaySettings *cache_display_settings,
+ const ColorManagedDisplaySettings *display_settings)
+{
+ int display = IMB_colormanagement_display_get_named_index(display_settings->display_device);
+
+ cache_display_settings->display = display;
+}
+
+static void colormanage_settings_to_key(ColormanageCacheKey *key,
+ const ColormanageCacheViewSettings *view_settings,
+ const ColormanageCacheDisplaySettings *display_settings)
+{
+ key->view = view_settings->view;
+ key->display = display_settings->display;
+}
+
+static ImBuf *colormanage_cache_get_ibuf(ImBuf *ibuf, ColormanageCacheKey *key, void **cache_handle)
+{
+ ImBuf *cache_ibuf;
+ struct MovieCache *moviecache = colormanage_moviecache_get(ibuf);
+
+ if (!moviecache) {
+ /* if there's no moviecache it means no color management was applied on given image buffer before */
+
+ return NULL;
+ }
+
+ *cache_handle = NULL;
+
+ cache_ibuf = IMB_moviecache_get(moviecache, key);
+
+ *cache_handle = cache_ibuf;
+
+ return cache_ibuf;
+}
+
+static unsigned char *colormanage_cache_get(ImBuf *ibuf, const ColormanageCacheViewSettings *view_settings,
+ const ColormanageCacheDisplaySettings *display_settings,
+ void **cache_handle)
+{
+ ColormanageCacheKey key;
+ ImBuf *cache_ibuf;
+ int view_flag = 1 << (view_settings->view - 1);
+ int predivide = ibuf->flags & IB_cm_predivide;
+ CurveMapping *curve_mapping = view_settings->curve_mapping;
+ int curve_mapping_timestamp = curve_mapping ? curve_mapping->changed_timestamp : 0;
+
+ colormanage_settings_to_key(&key, view_settings, display_settings);
+
+ /* check whether image was marked as dirty for requested transform */
+ if ((ibuf->display_buffer_flags[display_settings->display - 1] & view_flag) == 0) {
+ return NULL;
+ }
+
+ cache_ibuf = colormanage_cache_get_ibuf(ibuf, &key, cache_handle);
+
+ if (cache_ibuf) {
+ ColormnaageCacheData *cache_data;
+
+ BLI_assert(cache_ibuf->x == ibuf->x &&
+ cache_ibuf->y == ibuf->y);
+
+ /* only buffers with different color space conversions are being stored
+ * in cache separately. buffer which were used only different exposure/gamma
+ * are re-suing the same cached buffer
+ *
+ * check here which exposure/gamma/curve was used for cached buffer and if they're
+ * different from requested buffer should be re-generated
+ */
+ cache_data = colormanage_cachedata_get(cache_ibuf);
+
+ if (cache_data->exposure != view_settings->exposure ||
+ cache_data->gamma != view_settings->gamma ||
+ cache_data->predivide != predivide ||
+ cache_data->flag != view_settings->flag ||
+ cache_data->curve_mapping != curve_mapping ||
+ cache_data->curve_mapping_timestamp != curve_mapping_timestamp)
+ {
+ *cache_handle = NULL;
+
+ IMB_freeImBuf(cache_ibuf);
+
+ return NULL;
+ }
+
+ return (unsigned char *) cache_ibuf->rect;
+ }
+
+ return NULL;
+}
+
+static void colormanage_cache_put(ImBuf *ibuf, const ColormanageCacheViewSettings *view_settings,
+ const ColormanageCacheDisplaySettings *display_settings,
+ unsigned char *display_buffer, void **cache_handle)
+{
+ ColormanageCacheKey key;
+ ImBuf *cache_ibuf;
+ ColormnaageCacheData *cache_data;
+ int view_flag = 1 << (view_settings->view - 1);
+ int predivide = ibuf->flags & IB_cm_predivide;
+ struct MovieCache *moviecache = colormanage_moviecache_ensure(ibuf);
+ CurveMapping *curve_mapping = view_settings->curve_mapping;
+ int curve_mapping_timestamp = curve_mapping ? curve_mapping->changed_timestamp : 0;
+
+ colormanage_settings_to_key(&key, view_settings, display_settings);
+
+ /* mark display buffer as valid */
+ ibuf->display_buffer_flags[display_settings->display - 1] |= view_flag;
+
+ /* buffer itself */
+ cache_ibuf = IMB_allocImBuf(ibuf->x, ibuf->y, ibuf->planes, 0);
+ cache_ibuf->rect = (unsigned int *) display_buffer;
+
+ cache_ibuf->mall |= IB_rect;
+ cache_ibuf->flags |= IB_rect;
+
+ /* store data which is needed to check whether cached buffer could be used for color managed display settings */
+ cache_data = MEM_callocN(sizeof(ColormnaageCacheData), "color manage cache imbuf data");
+ cache_data->exposure = view_settings->exposure;
+ cache_data->gamma = view_settings->gamma;
+ cache_data->predivide = predivide;
+ cache_data->flag = view_settings->flag;
+ cache_data->curve_mapping = curve_mapping;
+ cache_data->curve_mapping_timestamp = curve_mapping_timestamp;
+
+ colormanage_cachedata_set(cache_ibuf, cache_data);
+
+ *cache_handle = cache_ibuf;
+
+ IMB_moviecache_put(moviecache, &key, cache_ibuf);
+}
+
+static void colormanage_cache_handle_release(void *cache_handle)
+{
+ ImBuf *cache_ibuf = cache_handle;
+
+ IMB_freeImBuf(cache_ibuf);
+}
+
+/*********************** Initialization / De-initialization *************************/
+
+static void colormanage_role_color_space_name_get(OCIO_ConstConfigRcPtr *config, char *colorspace_name, const char *role, const char *backup_role)
+{
+ OCIO_ConstColorSpaceRcPtr *ociocs;
+
+ ociocs = OCIO_configGetColorSpace(config, role);
+
+ if (!ociocs && backup_role)
+ ociocs = OCIO_configGetColorSpace(config, backup_role);
+
+ if (ociocs) {
+ const char *name = OCIO_colorSpaceGetName(ociocs);
+
+ /* assume function was called with buffer properly allocated to MAX_COLORSPACE_NAME chars */
+ BLI_strncpy(colorspace_name, name, MAX_COLORSPACE_NAME);
+ OCIO_colorSpaceRelease(ociocs);
+ }
+ else {
+ printf("Color management: Error could not find role %s role.\n", role);
+ }
+}
+
+static void colormanage_load_config(OCIO_ConstConfigRcPtr *config)
+{
+ int tot_colorspace, tot_display, tot_display_view, index, viewindex, viewindex2;
+ const char *name;
+
+ /* get roles */
+ colormanage_role_color_space_name_get(config, global_role_scene_linear, OCIO_ROLE_SCENE_LINEAR, NULL);
+ colormanage_role_color_space_name_get(config, global_role_color_picking, OCIO_ROLE_COLOR_PICKING, NULL);
+ colormanage_role_color_space_name_get(config, global_role_texture_painting, OCIO_ROLE_TEXTURE_PAINT, NULL);
+ colormanage_role_color_space_name_get(config, global_role_default_sequencer, OCIO_ROLE_DEFAULT_SEQUENCER, OCIO_ROLE_SCENE_LINEAR);
+ colormanage_role_color_space_name_get(config, global_role_default_byte, OCIO_ROLE_DEFAULT_BYTE, OCIO_ROLE_TEXTURE_PAINT);
+ colormanage_role_color_space_name_get(config, global_role_default_float, OCIO_ROLE_DEFAULT_FLOAT, OCIO_ROLE_SCENE_LINEAR);
+
+ /* load colorspaces */
+ tot_colorspace = OCIO_configGetNumColorSpaces(config);
+ for (index = 0 ; index < tot_colorspace; index++) {
+ OCIO_ConstColorSpaceRcPtr *ocio_colorspace;
+ const char *description;
+ int is_invertible, is_data;
+
+ name = OCIO_configGetColorSpaceNameByIndex(config, index);
+
+ ocio_colorspace = OCIO_configGetColorSpace(config, name);
+ description = OCIO_colorSpaceGetDescription(ocio_colorspace);
+ is_invertible = OCIO_colorSpaceIsInvertible(ocio_colorspace);
+ is_data = OCIO_colorSpaceIsData(ocio_colorspace);
+
+ colormanage_colorspace_add(name, description, is_invertible, is_data);
+
+ OCIO_colorSpaceRelease(ocio_colorspace);
+ }
+
+ /* load displays */
+ viewindex2 = 0;
+ tot_display = OCIO_configGetNumDisplays(config);
+
+ for (index = 0 ; index < tot_display; index++) {
+ const char *displayname;
+ ColorManagedDisplay *display;
+
+ displayname = OCIO_configGetDisplay(config, index);
+
+ display = colormanage_display_add(displayname);
+
+ /* load views */
+ tot_display_view = OCIO_configGetNumViews(config, displayname);
+ for (viewindex = 0 ; viewindex < tot_display_view; viewindex++, viewindex2++) {
+ const char *viewname;
+ ColorManagedView *view;
+ LinkData *display_view;
+
+ viewname = OCIO_configGetView(config, displayname, viewindex);
+
+ /* first check if view transform with given name was already loaded */
+ view = colormanage_view_get_named(viewname);
+
+ if (!view) {
+ view = colormanage_view_add(viewname);
+ }
+
+ display_view = BLI_genericNodeN(view);
+
+ BLI_addtail(&display->views, display_view);
+ }
+ }
+
+ global_tot_display = tot_display;
+}
+
+static void colormanage_free_config(void)
+{
+ ColorSpace *colorspace;
+ ColorManagedDisplay *display;
+
+ /* free color spaces */
+ colorspace = global_colorspaces.first;
+ while (colorspace) {
+ ColorSpace *colorspace_next = colorspace->next;
+
+ /* free precomputer processors */
+ if (colorspace->to_scene_linear)
+ OCIO_processorRelease((OCIO_ConstProcessorRcPtr *) colorspace->to_scene_linear);
+
+ if (colorspace->from_scene_linear)
+ OCIO_processorRelease((OCIO_ConstProcessorRcPtr *) colorspace->from_scene_linear);
+
+ /* free color space itself */
+ MEM_freeN(colorspace);
+
+ colorspace = colorspace_next;
+ }
+
+ /* free displays */
+ display = global_displays.first;
+ while (display) {
+ ColorManagedDisplay *display_next = display->next;
+
+ /* free precomputer processors */
+ if (display->to_scene_linear)
+ OCIO_processorRelease((OCIO_ConstProcessorRcPtr *) display->to_scene_linear);
+
+ if (display->from_scene_linear)
+ OCIO_processorRelease((OCIO_ConstProcessorRcPtr *) display->from_scene_linear);
+
+ /* free list of views */
+ BLI_freelistN(&display->views);
+
+ MEM_freeN(display);
+ display = display_next;
+ }
+
+ /* free views */
+ BLI_freelistN(&global_views);
+
+ OCIO_exit();
+}
+
+void colormanagement_init(void)
+{
+ const char *ocio_env;
+ const char *configdir;
+ char configfile[FILE_MAX];
+ OCIO_ConstConfigRcPtr *config = NULL;
+
+ OCIO_init();
+
+ ocio_env = getenv("OCIO");
+
+ if (ocio_env && ocio_env[0] != '\0')
+ config = OCIO_configCreateFromEnv();
+
+ if (config == NULL) {
+ configdir = BLI_get_folder(BLENDER_DATAFILES, "colormanagement");
+
+ if (configdir) {
+ BLI_join_dirfile(configfile, sizeof(configfile), configdir, BCM_CONFIG_FILE);
+
+#ifdef WIN32
+ {
+ /* quite a hack to support loading configuration from path with non-acii symbols */
+
+ char short_name[256];
+ BLI_get_short_name(short_name, configfile);
+ config = OCIO_configCreateFromFile(short_name);
+ }
+#else
+ config = OCIO_configCreateFromFile(configfile);
+#endif
+ }
+ }
+
+ if (config == NULL) {
+ printf("Color management: using fallback mode for management\n");
+
+ config = OCIO_configCreateFallback();
+ }
+
+ if (config) {
+ OCIO_setCurrentConfig(config);
+
+ colormanage_load_config(config);
+
+ OCIO_configRelease(config);
+ }
+
+ BLI_init_srgb_conversion();
+}
+
+void colormanagement_exit(void)
+{
+ colormanage_free_config();
+}
+
+/*********************** Internal functions *************************/
+
+void colormanage_cache_free(ImBuf *ibuf)
+{
+ if (ibuf->display_buffer_flags) {
+ MEM_freeN(ibuf->display_buffer_flags);
+
+ ibuf->display_buffer_flags = NULL;
+ }
+
+ if (ibuf->colormanage_cache) {
+ ColormnaageCacheData *cache_data = colormanage_cachedata_get(ibuf);
+ struct MovieCache *moviecache = colormanage_moviecache_get(ibuf);
+
+ if (cache_data) {
+ MEM_freeN(cache_data);
+ }
+
+ if (moviecache) {
+ IMB_moviecache_free(moviecache);
+ }
+
+ MEM_freeN(ibuf->colormanage_cache);
+
+ ibuf->colormanage_cache = NULL;
+ }
+}
+
+static void display_transform_get_from_ctx(const bContext *C, ColorManagedViewSettings **view_settings_r,
+ ColorManagedDisplaySettings **display_settings_r)
+{
+ Scene *scene = CTX_data_scene(C);
+ SpaceImage *sima = CTX_wm_space_image(C);
+
+ *view_settings_r = &scene->view_settings;
+ *display_settings_r = &scene->display_settings;
+
+ if (sima) {
+ if ((sima->image->flag & IMA_VIEW_AS_RENDER) == 0)
+ *view_settings_r = NULL;
+ }
+}
+
+static const char *display_transform_get_colorspace_name(const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings)
+{
+ OCIO_ConstConfigRcPtr *config = OCIO_getCurrentConfig();
+
+ const char *display = display_settings->display_device;
+ const char *view = view_settings->view_transform;
+ const char *colorspace_name;
+
+ colorspace_name = OCIO_configGetDisplayColorSpaceName(config, display, view);
+
+ OCIO_configRelease(config);
+
+ return colorspace_name;
+}
+
+static ColorSpace *display_transform_get_colorspace(const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings)
+{
+ const char *colorspace_name = display_transform_get_colorspace_name(view_settings, display_settings);
+
+ if (colorspace_name)
+ return colormanage_colorspace_get_named(colorspace_name);
+
+ return NULL;
+}
+
+static OCIO_ConstProcessorRcPtr *create_display_buffer_processor(const char *view_transform, const char *display,
+ float exposure, float gamma)
+{
+ OCIO_ConstConfigRcPtr *config = OCIO_getCurrentConfig();
+ OCIO_DisplayTransformRcPtr *dt;
+ OCIO_ConstProcessorRcPtr *processor;
+
+ dt = OCIO_createDisplayTransform();
+
+ /* assuming handling buffer was already converted to scene linear space */
+ OCIO_displayTransformSetInputColorSpaceName(dt, global_role_scene_linear);
+ OCIO_displayTransformSetView(dt, view_transform);
+ OCIO_displayTransformSetDisplay(dt, display);
+
+ /* fstop exposure control */
+ if (exposure != 0.0f) {
+ OCIO_MatrixTransformRcPtr *mt;
+ float gain = powf(2.0f, exposure);
+ const float scale4f[] = {gain, gain, gain, gain};
+ float m44[16], offset4[4];
+
+ OCIO_matrixTransformScale(m44, offset4, scale4f);
+ mt = OCIO_createMatrixTransform();
+ OCIO_matrixTransformSetValue(mt, m44, offset4);
+ OCIO_displayTransformSetLinearCC(dt, (OCIO_ConstTransformRcPtr *) mt);
+
+ OCIO_matrixTransformRelease(mt);
+ }
+
+ /* post-display gamma transform */
+ if (gamma != 1.0f) {
+ OCIO_ExponentTransformRcPtr *et;
+ float exponent = 1.0f / MAX2(FLT_EPSILON, gamma);
+ const float exponent4f[] = {exponent, exponent, exponent, exponent};
+
+ et = OCIO_createExponentTransform();
+ OCIO_exponentTransformSetValue(et, exponent4f);
+ OCIO_displayTransformSetDisplayCC(dt, (OCIO_ConstTransformRcPtr *) et);
+
+ OCIO_exponentTransformRelease(et);
+ }
+
+ processor = OCIO_configGetProcessor(config, (OCIO_ConstTransformRcPtr *) dt);
+
+ OCIO_displayTransformRelease(dt);
+ OCIO_configRelease(config);
+
+ return processor;
+}
+
+static OCIO_ConstProcessorRcPtr *create_colorspace_transform_processor(const char *from_colorspace,
+ const char *to_colorspace)
+{
+ OCIO_ConstConfigRcPtr *config = OCIO_getCurrentConfig();
+ OCIO_ConstProcessorRcPtr *processor;
+
+ processor = OCIO_configGetProcessorWithNames(config, from_colorspace, to_colorspace);
+
+ OCIO_configRelease(config);
+
+ return processor;
+}
+
+static OCIO_ConstProcessorRcPtr *colorspace_to_scene_linear_processor(ColorSpace *colorspace)
+{
+ if (colorspace->to_scene_linear == NULL) {
+ BLI_mutex_lock(&processor_lock);
+
+ if (colorspace->to_scene_linear == NULL) {
+ OCIO_ConstProcessorRcPtr *to_scene_linear;
+ to_scene_linear = create_colorspace_transform_processor(colorspace->name, global_role_scene_linear);
+ colorspace->to_scene_linear = (struct OCIO_ConstProcessorRcPtr *) to_scene_linear;
+ }
+
+ BLI_mutex_unlock(&processor_lock);
+ }
+
+ return (OCIO_ConstProcessorRcPtr *) colorspace->to_scene_linear;
+}
+
+static OCIO_ConstProcessorRcPtr *colorspace_from_scene_linear_processor(ColorSpace *colorspace)
+{
+ if (colorspace->from_scene_linear == NULL) {
+ BLI_mutex_lock(&processor_lock);
+
+ if (colorspace->from_scene_linear == NULL) {
+ OCIO_ConstProcessorRcPtr *from_scene_linear;
+ from_scene_linear = create_colorspace_transform_processor(global_role_scene_linear, colorspace->name);
+ colorspace->from_scene_linear = (struct OCIO_ConstProcessorRcPtr *) from_scene_linear;
+ }
+
+ BLI_mutex_unlock(&processor_lock);
+ }
+
+ return (OCIO_ConstProcessorRcPtr *) colorspace->from_scene_linear;
+}
+
+static OCIO_ConstProcessorRcPtr *display_from_scene_linear_processor(ColorManagedDisplay *display)
+{
+ if (display->from_scene_linear == NULL) {
+ BLI_mutex_lock(&processor_lock);
+
+ if (display->from_scene_linear == NULL) {
+ const char *view_name = colormanage_view_get_default_name(display);
+ OCIO_ConstConfigRcPtr *config = OCIO_getCurrentConfig();
+ OCIO_ConstProcessorRcPtr *processor = NULL;
+
+ if (view_name && config) {
+ const char *view_colorspace = OCIO_configGetDisplayColorSpaceName(config, display->name, view_name);
+ processor = OCIO_configGetProcessorWithNames(config, global_role_scene_linear, view_colorspace);
+
+ OCIO_configRelease(config);
+ }
+
+ display->from_scene_linear = (struct OCIO_ConstProcessorRcPtr *) processor;
+ }
+
+ BLI_mutex_unlock(&processor_lock);
+ }
+
+ return (OCIO_ConstProcessorRcPtr *) display->from_scene_linear;
+}
+
+static OCIO_ConstProcessorRcPtr *display_to_scene_linear_processor(ColorManagedDisplay *display)
+{
+ if (display->to_scene_linear == NULL) {
+ BLI_mutex_lock(&processor_lock);
+
+ if (display->to_scene_linear == NULL) {
+ const char *view_name = colormanage_view_get_default_name(display);
+ OCIO_ConstConfigRcPtr *config = OCIO_getCurrentConfig();
+ OCIO_ConstProcessorRcPtr *processor = NULL;
+
+ if (view_name && config) {
+ const char *view_colorspace = OCIO_configGetDisplayColorSpaceName(config, display->name, view_name);
+ processor = OCIO_configGetProcessorWithNames(config, view_colorspace, global_role_scene_linear);
+
+ OCIO_configRelease(config);
+ }
+
+ display->to_scene_linear = (struct OCIO_ConstProcessorRcPtr *) processor;
+ }
+
+ BLI_mutex_unlock(&processor_lock);
+ }
+
+ return (OCIO_ConstProcessorRcPtr *) display->to_scene_linear;
+}
+
+static void init_default_view_settings(const ColorManagedDisplaySettings *display_settings,
+ ColorManagedViewSettings *view_settings)
+{
+ ColorManagedDisplay *display;
+ ColorManagedView *default_view = NULL;
+
+ display = colormanage_display_get_named(display_settings->display_device);
+
+ if (display)
+ default_view = colormanage_view_get_default(display);
+
+ if (default_view)
+ BLI_strncpy(view_settings->view_transform, default_view->name, sizeof(view_settings->view_transform));
+ else
+ view_settings->view_transform[0] = '\0';
+
+ view_settings->flag = 0;
+ view_settings->gamma = 1.0f;
+ view_settings->exposure = 0.0f;
+ view_settings->curve_mapping = NULL;
+}
+
+static void curve_mapping_apply_pixel(CurveMapping *curve_mapping, float *pixel, int channels)
+{
+ if (channels == 1) {
+ pixel[0] = curvemap_evaluateF(curve_mapping->cm, pixel[0]);
+ }
+ else if (channels == 2) {
+ pixel[0] = curvemap_evaluateF(curve_mapping->cm, pixel[0]);
+ pixel[1] = curvemap_evaluateF(curve_mapping->cm, pixel[1]);
+ }
+ else {
+ curvemapping_evaluate_premulRGBF(curve_mapping, pixel, pixel);
+ }
+}
+
+void colorspace_set_default_role(char *colorspace, int size, int role)
+{
+ if (colorspace && colorspace[0] == '\0') {
+ const char *role_colorspace;
+
+ role_colorspace = IMB_colormanagement_role_colorspace_name_get(role);
+
+ BLI_strncpy(colorspace, role_colorspace, size);
+ }
+}
+
+void colormanage_imbuf_set_default_spaces(ImBuf *ibuf)
+{
+ ibuf->rect_colorspace = colormanage_colorspace_get_named(global_role_default_byte);
+}
+
+void colormanage_imbuf_make_linear(ImBuf *ibuf, const char *from_colorspace)
+{
+ ColorSpace *colorspace = colormanage_colorspace_get_named(from_colorspace);
+
+ if (colorspace->is_data) {
+ ibuf->colormanage_flag |= IMB_COLORMANAGE_IS_DATA;
+ return;
+ }
+
+ if (ibuf->rect_float) {
+ const char *to_colorspace = global_role_scene_linear;
+ int predivide = ibuf->flags & IB_cm_predivide;
+
+ if (ibuf->rect)
+ imb_freerectImBuf(ibuf);
+
+ IMB_colormanagement_transform(ibuf->rect_float, ibuf->x, ibuf->y, ibuf->channels,
+ from_colorspace, to_colorspace, predivide);
+ }
+}
+
+/*********************** Generic functions *************************/
+
+static void colormanage_check_display_settings(ColorManagedDisplaySettings *display_settings, const char *what,
+ const ColorManagedDisplay *default_display)
+{
+ if (display_settings->display_device[0] == '\0') {
+ BLI_strncpy(display_settings->display_device, default_display->name, sizeof(display_settings->display_device));
+ }
+ else {
+ ColorManagedDisplay *display = colormanage_display_get_named(display_settings->display_device);
+
+ if (!display) {
+ printf("Color management: display \"%s\" used by %s not found, setting to default (\"%s\").\n",
+ display_settings->display_device, what, default_display->name);
+
+ BLI_strncpy(display_settings->display_device, default_display->name,
+ sizeof(display_settings->display_device));
+ }
+ }
+}
+
+static void colormanage_check_view_settings(ColorManagedDisplaySettings *display_settings,
+ ColorManagedViewSettings *view_settings, const char *what)
+{
+ ColorManagedDisplay *display;
+ ColorManagedView *default_view = NULL;
+
+ if (view_settings->view_transform[0] == '\0') {
+ display = colormanage_display_get_named(display_settings->display_device);
+
+ if (display)
+ default_view = colormanage_view_get_default(display);
+
+ if (default_view)
+ BLI_strncpy(view_settings->view_transform, default_view->name, sizeof(view_settings->view_transform));
+ }
+ else {
+ ColorManagedView *view = colormanage_view_get_named(view_settings->view_transform);
+
+ if (!view) {
+ display = colormanage_display_get_named(display_settings->display_device);
+
+ if (display)
+ default_view = colormanage_view_get_default(display);
+
+ if (default_view) {
+ printf("Color management: %s view \"%s\" not found, setting default \"%s\".\n",
+ what, view_settings->view_transform, default_view->name);
+
+ BLI_strncpy(view_settings->view_transform, default_view->name, sizeof(view_settings->view_transform));
+ }
+ }
+ }
+
+ /* OCIO_TODO: move to do_versions() */
+ if (view_settings->exposure == 0.0f && view_settings->gamma == 0.0f) {
+ view_settings->exposure = 0.0f;
+ view_settings->gamma = 1.0f;
+ }
+}
+
+static void colormanage_check_colorspace_settings(ColorManagedColorspaceSettings *colorspace_settings, const char *what)
+{
+ if (colorspace_settings->name[0] == '\0') {
+ /* pass */
+ }
+ else {
+ ColorSpace *colorspace = colormanage_colorspace_get_named(colorspace_settings->name);
+
+ if (!colorspace) {
+ printf("Color management: %s colorspace \"%s\" not found, will use default instead.\n",
+ what, colorspace_settings->name);
+
+ BLI_strncpy(colorspace_settings->name, "", sizeof(colorspace_settings->name));
+ }
+ }
+
+ (void) what;
+}
+
+void IMB_colormanagement_check_file_config(Main *bmain)
+{
+ Scene *scene;
+ Image *image;
+ MovieClip *clip;
+
+ ColorManagedDisplay *default_display;
+
+ default_display = colormanage_display_get_default();
+
+ if (!default_display) {
+ /* happens when OCIO configuration is incorrect */
+ return;
+ }
+
+ for (scene = bmain->scene.first; scene; scene = scene->id.next) {
+ ColorManagedColorspaceSettings *sequencer_colorspace_settings;
+
+ colormanage_check_display_settings(&scene->display_settings, "scene", default_display);
+ colormanage_check_view_settings(&scene->display_settings, &scene->view_settings, "scene");
+
+ sequencer_colorspace_settings = &scene->sequencer_colorspace_settings;
+
+ colormanage_check_colorspace_settings(sequencer_colorspace_settings, "sequencer");
+
+ if (sequencer_colorspace_settings->name[0] == '\0') {
+ BLI_strncpy(sequencer_colorspace_settings->name, global_role_default_sequencer, MAX_COLORSPACE_NAME);
+ }
+ }
+
+ /* ** check input color space settings ** */
+
+ for (image = bmain->image.first; image; image = image->id.next) {
+ colormanage_check_colorspace_settings(&image->colorspace_settings, "image");
+ }
+
+ for (clip = bmain->movieclip.first; clip; clip = clip->id.next) {
+ colormanage_check_colorspace_settings(&clip->colorspace_settings, "clip");
+ }
+}
+
+void IMB_colormanagement_validate_settings(ColorManagedDisplaySettings *display_settings,
+ ColorManagedViewSettings *view_settings)
+{
+ ColorManagedDisplay *display;
+ ColorManagedView *default_view = NULL;
+ LinkData *view_link;
+
+ display = colormanage_display_get_named(display_settings->display_device);
+
+ default_view = colormanage_view_get_default(display);
+
+ for (view_link = display->views.first; view_link; view_link = view_link->next) {
+ ColorManagedView *view = view_link->data;
+
+ if (!strcmp(view->name, view_settings->view_transform))
+ break;
+ }
+
+ if (view_link == NULL && default_view)
+ BLI_strncpy(view_settings->view_transform, default_view->name, sizeof(view_settings->view_transform));
+}
+
+const char *IMB_colormanagement_role_colorspace_name_get(int role)
+{
+ switch (role) {
+ case COLOR_ROLE_SCENE_LINEAR:
+ return global_role_scene_linear;
+ break;
+ case COLOR_ROLE_COLOR_PICKING:
+ return global_role_color_picking;
+ break;
+ case COLOR_ROLE_TEXTURE_PAINTING:
+ return global_role_texture_painting;
+ break;
+ case COLOR_ROLE_DEFAULT_SEQUENCER:
+ return global_role_default_sequencer;
+ break;
+ case COLOR_ROLE_DEFAULT_FLOAT:
+ return global_role_default_float;
+ break;
+ case COLOR_ROLE_DEFAULT_BYTE:
+ return global_role_default_byte;
+ break;
+ default:
+ printf("Unknown role was passed to %s\n", __func__);
+ BLI_assert(0);
+ }
+
+ return NULL;
+}
+
+void IMB_colormanagement_check_is_data(ImBuf *ibuf, const char *name)
+{
+ ColorSpace *colorspace = colormanage_colorspace_get_named(name);
+
+ if (colorspace->is_data)
+ ibuf->colormanage_flag |= IMB_COLORMANAGE_IS_DATA;
+ else
+ ibuf->colormanage_flag &= ~IMB_COLORMANAGE_IS_DATA;
+}
+
+void IMB_colormanagement_assign_float_colorspace(ImBuf *ibuf, const char *name)
+{
+ ColorSpace *colorspace = colormanage_colorspace_get_named(name);
+
+ ibuf->float_colorspace = colorspace;
+
+ if (colorspace->is_data)
+ ibuf->colormanage_flag |= IMB_COLORMANAGE_IS_DATA;
+ else
+ ibuf->colormanage_flag &= ~IMB_COLORMANAGE_IS_DATA;
+}
+
+void IMB_colormanagement_assign_rect_colorspace(ImBuf *ibuf, const char *name)
+{
+ ColorSpace *colorspace = colormanage_colorspace_get_named(name);
+
+ ibuf->rect_colorspace = colorspace;
+
+ if (colorspace->is_data)
+ ibuf->colormanage_flag |= IMB_COLORMANAGE_IS_DATA;
+ else
+ ibuf->colormanage_flag &= ~IMB_COLORMANAGE_IS_DATA;
+}
+
+/*********************** Threaded display buffer transform routines *************************/
+
+typedef struct DisplayBufferThread {
+ ColormanageProcessor *cm_processor;
+
+ float *buffer;
+ unsigned char *byte_buffer;
+
+ float *display_buffer;
+ unsigned char *display_buffer_byte;
+
+ int width;
+ int start_line;
+ int tot_line;
+
+ int channels;
+ float dither;
+ int predivide;
+ int is_data;
+
+ const char *byte_colorspace;
+ const char *float_colorspace;
+} DisplayBufferThread;
+
+typedef struct DisplayBufferInitData {
+ ImBuf *ibuf;
+ ColormanageProcessor *cm_processor;
+ float *buffer;
+ unsigned char *byte_buffer;
+
+ float *display_buffer;
+ unsigned char *display_buffer_byte;
+
+ int width;
+
+ const char *byte_colorspace;
+ const char *float_colorspace;
+} DisplayBufferInitData;
+
+static void display_buffer_init_handle(void *handle_v, int start_line, int tot_line, void *init_data_v)
+{
+ DisplayBufferThread *handle = (DisplayBufferThread *) handle_v;
+ DisplayBufferInitData *init_data = (DisplayBufferInitData *) init_data_v;
+ ImBuf *ibuf = init_data->ibuf;
+
+ int predivide = ibuf->flags & IB_cm_predivide;
+ int channels = ibuf->channels;
+ float dither = ibuf->dither;
+ int is_data = ibuf->colormanage_flag & IMB_COLORMANAGE_IS_DATA;
+
+ int offset = channels * start_line * ibuf->x;
+ int display_buffer_byte_offset = DISPLAY_BUFFER_CHANNELS * start_line * ibuf->x;
+
+ memset(handle, 0, sizeof(DisplayBufferThread));
+
+ handle->cm_processor = init_data->cm_processor;
+
+ if (init_data->buffer)
+ handle->buffer = init_data->buffer + offset;
+
+ if (init_data->byte_buffer)
+ handle->byte_buffer = init_data->byte_buffer + offset;
+
+ if (init_data->display_buffer)
+ handle->display_buffer = init_data->display_buffer + offset;
+
+ if (init_data->display_buffer_byte)
+ handle->display_buffer_byte = init_data->display_buffer_byte + display_buffer_byte_offset;
+
+ handle->width = ibuf->x;
+
+ handle->start_line = start_line;
+ handle->tot_line = tot_line;
+
+ handle->channels = channels;
+ handle->dither = dither;
+ handle->predivide = predivide;
+ handle->is_data = is_data;
+
+ handle->byte_colorspace = init_data->byte_colorspace;
+ handle->float_colorspace = init_data->float_colorspace;
+}
+
+static void *display_buffer_apply_get_linear_buffer(DisplayBufferThread *handle)
+{
+ float *linear_buffer = NULL;
+
+ int channels = handle->channels;
+ int width = handle->width;
+ int height = handle->tot_line;
+
+ int buffer_size = channels * width * height;
+
+ int predivide = handle->predivide;
+ int is_data = handle->is_data;
+
+ linear_buffer = MEM_callocN(buffer_size * sizeof(float), "color conversion linear buffer");
+
+ if (!handle->buffer) {
+ unsigned char *byte_buffer = handle->byte_buffer;
+
+ const char *from_colorspace = handle->byte_colorspace;
+ const char *to_colorspace = global_role_scene_linear;
+
+ float *fp;
+ unsigned char *cp;
+ int i;
+
+ /* first convert byte buffer to float, keep in image space */
+ for (i = 0, fp = linear_buffer, cp = byte_buffer;
+ i < channels * width * height;
+ i++, fp++, cp++)
+ {
+ *fp = (float)(*cp) / 255.0f;
+ }
+
+ if (!is_data) {
+ /* convert float buffer to scene linear space */
+ IMB_colormanagement_transform(linear_buffer, width, height, channels,
+ from_colorspace, to_colorspace, predivide);
+ }
+ }
+ else if (handle->float_colorspace) {
+ /* currently float is non-linear only in sequencer, which is working
+ * in it's own color space even to handle float buffers.
+ * This color space is the same for byte and float images.
+ * Need to convert float buffer to linear space before applying display transform
+ */
+
+ const char *from_colorspace = handle->float_colorspace;
+ const char *to_colorspace = global_role_scene_linear;
+
+ memcpy(linear_buffer, handle->buffer, buffer_size * sizeof(float));
+
+ IMB_colormanagement_transform(linear_buffer, width, height, channels,
+ from_colorspace, to_colorspace, predivide);
+ }
+ else {
+ /* some processors would want to modify float original buffer
+ * before converting it into display byte buffer, so we need to
+ * make sure original's ImBuf buffers wouldn't be modified by
+ * using duplicated buffer here
+ *
+ * NOTE: MEM_dupallocN can't be used because buffer could be
+ * specified as an offset inside allocated buffer
+ */
+
+ memcpy(linear_buffer, handle->buffer, buffer_size * sizeof(float));
+ }
+
+ return linear_buffer;
+}
+
+static void *do_display_buffer_apply_thread(void *handle_v)
+{
+ DisplayBufferThread *handle = (DisplayBufferThread *) handle_v;
+ ColormanageProcessor *cm_processor = handle->cm_processor;
+ float *display_buffer = handle->display_buffer;
+ unsigned char *display_buffer_byte = handle->display_buffer_byte;
+ int channels = handle->channels;
+ int width = handle->width;
+ int height = handle->tot_line;
+ float dither = handle->dither;
+ int predivide = handle->predivide;
+ int is_data = handle->is_data;
+
+ if (cm_processor == NULL) {
+ if (display_buffer_byte) {
+ IMB_buffer_byte_from_byte(display_buffer_byte, handle->byte_buffer, IB_PROFILE_SRGB, IB_PROFILE_SRGB,
+ FALSE, width, height, width, width);
+ }
+
+ if (display_buffer) {
+ IMB_buffer_float_from_byte(display_buffer, handle->byte_buffer, IB_PROFILE_SRGB, IB_PROFILE_SRGB,
+ FALSE, width, height, width, width);
+ }
+ }
+ else {
+ float *linear_buffer = display_buffer_apply_get_linear_buffer(handle);
+
+ if (is_data) {
+ /* special case for data buffers - no color space conversions,
+ * only generate byte buffers
+ */
+ }
+ else {
+ /* apply processor */
+ IMB_colormanagement_processor_apply(cm_processor, linear_buffer, width, height, channels, predivide);
+ }
+
+ /* copy result to output buffers */
+ if (display_buffer_byte) {
+ /* do conversion */
+ IMB_buffer_byte_from_float(display_buffer_byte, linear_buffer,
+ channels, dither, IB_PROFILE_SRGB, IB_PROFILE_SRGB,
+ predivide, width, height, width, width);
+ }
+
+ if (display_buffer)
+ memcpy(display_buffer, linear_buffer, width * height * channels * sizeof(float));
+
+ MEM_freeN(linear_buffer);
+ }
+
+ return NULL;
+}
+
+static void display_buffer_apply_threaded(ImBuf *ibuf, float *buffer, unsigned char *byte_buffer, float *display_buffer,
+ unsigned char *display_buffer_byte, ColormanageProcessor *cm_processor)
+{
+ DisplayBufferInitData init_data;
+
+ init_data.ibuf = ibuf;
+ init_data.cm_processor = cm_processor;
+ init_data.buffer = buffer;
+ init_data.byte_buffer = byte_buffer;
+ init_data.display_buffer = display_buffer;
+ init_data.display_buffer_byte = display_buffer_byte;
+
+ if (ibuf->rect_colorspace != NULL) {
+ init_data.byte_colorspace = ibuf->rect_colorspace->name;
+ }
+ else {
+ /* happens for viewer images, which are not so simple to determine where to
+ * set image buffer's color spaces
+ */
+ init_data.byte_colorspace = global_role_default_byte;
+ }
+
+ if (ibuf->float_colorspace != NULL) {
+ /* sequencer stores float buffers in non-linear space */
+ init_data.float_colorspace = ibuf->float_colorspace->name;
+ }
+ else {
+ init_data.float_colorspace = NULL;
+ }
+
+ IMB_processor_apply_threaded(ibuf->y, sizeof(DisplayBufferThread), &init_data,
+ display_buffer_init_handle, do_display_buffer_apply_thread);
+}
+
+static void colormanage_display_buffer_process_ex(ImBuf *ibuf, float *display_buffer, unsigned char *display_buffer_byte,
+ const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings)
+{
+ ColormanageProcessor *cm_processor = NULL;
+ int skip_transform = FALSE;
+
+ /* if we're going to transform byte buffer, check whether transformation would
+ * happen to the same color space as byte buffer itself is
+ * this would save byte -> float -> byte conversions making display buffer
+ * computation noticeable faster
+ */
+ if (ibuf->rect_float == NULL && ibuf->rect_colorspace) {
+ if ((view_settings->flag & COLORMANAGE_VIEW_USE_CURVES) == 0 &&
+ view_settings->exposure == 0.0f &&
+ view_settings->gamma == 1.0f)
+ {
+ const char *from_colorspace = ibuf->rect_colorspace->name;
+ const char *to_colorspace = display_transform_get_colorspace_name(view_settings, display_settings);
+
+ if (to_colorspace && !strcmp(from_colorspace, to_colorspace))
+ skip_transform = TRUE;
+ }
+ }
+
+ if (skip_transform == FALSE)
+ cm_processor = IMB_colormanagement_display_processor_new(view_settings, display_settings);
+
+ display_buffer_apply_threaded(ibuf, ibuf->rect_float, (unsigned char *) ibuf->rect,
+ display_buffer, display_buffer_byte, cm_processor);
+
+ if (cm_processor)
+ IMB_colormanagement_processor_free(cm_processor);
+}
+
+static void colormanage_display_buffer_process(ImBuf *ibuf, unsigned char *display_buffer,
+ const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings)
+{
+ colormanage_display_buffer_process_ex(ibuf, NULL, display_buffer, view_settings, display_settings);
+}
+
+/*********************** Threaded processor transform routines *************************/
+
+typedef struct ProcessorTransformThread {
+ ColormanageProcessor *cm_processor;
+ float *buffer;
+ int width;
+ int start_line;
+ int tot_line;
+ int channels;
+ int predivide;
+} ProcessorTransformThread;
+
+typedef struct ProcessorTransformInit {
+ ColormanageProcessor *cm_processor;
+ float *buffer;
+ int width;
+ int height;
+ int channels;
+ int predivide;
+} ProcessorTransformInitData;
+
+static void processor_transform_init_handle(void *handle_v, int start_line, int tot_line, void *init_data_v)
+{
+ ProcessorTransformThread *handle = (ProcessorTransformThread *) handle_v;
+ ProcessorTransformInitData *init_data = (ProcessorTransformInitData *) init_data_v;
+
+ int channels = init_data->channels;
+ int width = init_data->width;
+ int predivide = init_data->predivide;
+
+ int offset = channels * start_line * width;
+
+ memset(handle, 0, sizeof(ProcessorTransformThread));
+
+ handle->cm_processor = init_data->cm_processor;
+
+ handle->buffer = init_data->buffer + offset;
+
+ handle->width = width;
+
+ handle->start_line = start_line;
+ handle->tot_line = tot_line;
+
+ handle->channels = channels;
+ handle->predivide = predivide;
+}
+
+static void *do_processor_transform_thread(void *handle_v)
+{
+ ProcessorTransformThread *handle = (ProcessorTransformThread *) handle_v;
+ float *buffer = handle->buffer;
+ int channels = handle->channels;
+ int width = handle->width;
+ int height = handle->tot_line;
+ int predivide = handle->predivide;
+
+ IMB_colormanagement_processor_apply(handle->cm_processor, buffer, width, height, channels, predivide);
+
+ return NULL;
+}
+
+static void processor_transform_apply_threaded(float *buffer, int width, int height, int channels,
+ ColormanageProcessor *cm_processor, int predivide)
+{
+ ProcessorTransformInitData init_data;
+
+ init_data.cm_processor = cm_processor;
+ init_data.buffer = buffer;
+ init_data.width = width;
+ init_data.height = height;
+ init_data.channels = channels;
+ init_data.predivide = predivide;
+
+ IMB_processor_apply_threaded(height, sizeof(ProcessorTransformThread), &init_data,
+ processor_transform_init_handle, do_processor_transform_thread);
+}
+
+/*********************** Color space transformation functions *************************/
+
+/* convert the whole buffer from specified by name color space to another - internal implementation */
+static void colormanagement_transform_ex(float *buffer, int width, int height, int channels, const char *from_colorspace,
+ const char *to_colorspace, int predivide, int do_threaded)
+{
+ ColormanageProcessor *cm_processor;
+
+ if (from_colorspace[0] == '\0') {
+ return;
+ }
+
+ if (!strcmp(from_colorspace, to_colorspace)) {
+ /* if source and destination color spaces are identical, skip
+ * threading overhead and simply do nothing
+ */
+ return;
+ }
+
+ cm_processor = IMB_colormanagement_colorspace_processor_new(from_colorspace, to_colorspace);
+
+ if (do_threaded)
+ processor_transform_apply_threaded(buffer, width, height, channels, cm_processor, predivide);
+ else
+ IMB_colormanagement_processor_apply(cm_processor, buffer, width, height, channels, predivide);
+
+ IMB_colormanagement_processor_free(cm_processor);
+}
+
+/* convert the whole buffer from specified by name color space to another */
+void IMB_colormanagement_transform(float *buffer, int width, int height, int channels,
+ const char *from_colorspace, const char *to_colorspace, int predivide)
+{
+ colormanagement_transform_ex(buffer, width, height, channels, from_colorspace, to_colorspace, predivide, FALSE);
+}
+
+/* convert the whole buffer from specified by name color space to another
+ * will do threaded conversion
+ */
+void IMB_colormanagement_transform_threaded(float *buffer, int width, int height, int channels,
+ const char *from_colorspace, const char *to_colorspace, int predivide)
+{
+ colormanagement_transform_ex(buffer, width, height, channels, from_colorspace, to_colorspace, predivide, TRUE);
+}
+
+void IMB_colormanagement_transform_v4(float pixel[4], const char *from_colorspace, const char *to_colorspace)
+{
+ ColormanageProcessor *cm_processor;
+
+ if (from_colorspace[0] == '\0') {
+ return;
+ }
+
+ if (!strcmp(from_colorspace, to_colorspace)) {
+ /* if source and destination color spaces are identical, skip
+ * threading overhead and simply do nothing
+ */
+ return;
+ }
+
+ cm_processor = IMB_colormanagement_colorspace_processor_new(from_colorspace, to_colorspace);
+
+ IMB_colormanagement_processor_apply_v4(cm_processor, pixel);
+
+ IMB_colormanagement_processor_free(cm_processor);
+}
+
+/* convert pixel from specified by descriptor color space to scene linear
+ * used by performance-critical areas such as renderer and baker
+ */
+void IMB_colormanagement_colorspace_to_scene_linear_v3(float pixel[3], ColorSpace *colorspace)
+{
+ OCIO_ConstProcessorRcPtr *processor;
+
+ if (!colorspace) {
+ /* should never happen */
+ printf("%s: perform conversion from unknown color space\n", __func__);
+ return;
+ }
+
+ processor = colorspace_to_scene_linear_processor(colorspace);
+
+ if (processor)
+ OCIO_processorApplyRGB(processor, pixel);
+}
+
+/* same as above, but converts colors in opposite direction */
+void IMB_colormanagement_scene_linear_to_colorspace_v3(float pixel[3], ColorSpace *colorspace)
+{
+ OCIO_ConstProcessorRcPtr *processor;
+
+ if (!colorspace) {
+ /* should never happen */
+ printf("%s: perform conversion from unknown color space\n", __func__);
+ return;
+ }
+
+ processor = colorspace_from_scene_linear_processor(colorspace);
+
+ if (processor)
+ OCIO_processorApplyRGB(processor, pixel);
+}
+
+void IMB_colormanagement_colorspace_to_scene_linear(float *buffer, int width, int height, int channels, struct ColorSpace *colorspace, int predivide)
+{
+ OCIO_ConstProcessorRcPtr *processor;
+
+ if (!colorspace) {
+ /* should never happen */
+ printf("%s: perform conversion from unknown color space\n", __func__);
+ return;
+ }
+
+ processor = colorspace_to_scene_linear_processor(colorspace);
+
+ if (processor) {
+ OCIO_PackedImageDesc *img;
+
+ img = OCIO_createOCIO_PackedImageDesc(buffer, width, height, channels, sizeof(float),
+ channels * sizeof(float), channels * sizeof(float) * width);
+
+ if (predivide)
+ OCIO_processorApply_predivide(processor, img);
+ else
+ OCIO_processorApply(processor, img);
+
+ OCIO_OCIO_PackedImageDescRelease(img);
+ }
+}
+
+/* convert pixel from scene linear to display space using default view
+ * used by performance-critical areas such as color-related widgets where we want to reduce
+ * amount of per-widget allocations
+ */
+void IMB_colormanagement_scene_linear_to_display_v3(float pixel[3], ColorManagedDisplay *display)
+{
+ OCIO_ConstProcessorRcPtr *processor;
+
+ processor = display_from_scene_linear_processor(display);
+
+ if (processor)
+ OCIO_processorApplyRGB(processor, pixel);
+}
+
+/* same as above, but converts color in opposite direction */
+void IMB_colormanagement_display_to_scene_linear_v3(float pixel[3], ColorManagedDisplay *display)
+{
+ OCIO_ConstProcessorRcPtr *processor;
+
+ processor = display_to_scene_linear_processor(display);
+
+ if (processor)
+ OCIO_processorApplyRGB(processor, pixel);
+}
+
+void IMB_colormanagement_pixel_to_display_space_v4(float result[4], const float pixel[4],
+ const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings)
+{
+ ColormanageProcessor *cm_processor;
+
+ copy_v4_v4(result, pixel);
+
+ cm_processor = IMB_colormanagement_display_processor_new(view_settings, display_settings);
+ IMB_colormanagement_processor_apply_v4(cm_processor, result);
+ IMB_colormanagement_processor_free(cm_processor);
+}
+
+void IMB_colormanagement_pixel_to_display_space_v3(float result[3], const float pixel[3],
+ const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings)
+{
+ ColormanageProcessor *cm_processor;
+
+ copy_v3_v3(result, pixel);
+
+ cm_processor = IMB_colormanagement_display_processor_new(view_settings, display_settings);
+ IMB_colormanagement_processor_apply_v3(cm_processor, result);
+ IMB_colormanagement_processor_free(cm_processor);
+}
+
+static void colormanagement_imbuf_make_display_space(ImBuf *ibuf, const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings, int make_byte)
+{
+ if (!ibuf->rect && make_byte)
+ imb_addrectImBuf(ibuf);
+
+ if (global_tot_display == 0 || global_tot_view == 0) {
+ IMB_buffer_float_from_float(ibuf->rect_float, ibuf->rect_float, ibuf->channels, IB_PROFILE_SRGB, IB_PROFILE_LINEAR_RGB,
+ ibuf->flags & IB_cm_predivide, ibuf->x, ibuf->y, ibuf->x, ibuf->x);
+ }
+ else {
+ colormanage_display_buffer_process_ex(ibuf, ibuf->rect_float, (unsigned char *)ibuf->rect,
+ view_settings, display_settings);
+ }
+}
+
+void IMB_colormanagement_imbuf_make_display_space(ImBuf *ibuf, const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings)
+{
+ colormanagement_imbuf_make_display_space(ibuf, view_settings, display_settings, FALSE);
+}
+
+/* prepare image buffer to be saved on disk, applying color management if needed
+ * color management would be applied if image is saving as render result and if
+ * file format is not expecting float buffer to be in linear space (currently
+ * JPEG2000 and TIFF are such formats -- they're storing image as float but
+ * file itself stores applied color space).
+ *
+ * Both byte and float buffers would contain applied color space, and result's
+ * float_colorspace would be set to display color space. This should be checked
+ * in image format write callback and if float_colorspace is not NULL, no color
+ * space transformation should be applied on this buffer.
+ */
+ImBuf *IMB_colormanagement_imbuf_for_write(ImBuf *ibuf, int save_as_render, int allocate_result, const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings, ImageFormatData *image_format_data)
+{
+ ImBuf *colormanaged_ibuf = ibuf;
+ int do_colormanagement;
+ int is_movie = BKE_imtype_is_movie(image_format_data->imtype);
+ int requires_linear_float = BKE_imtype_requires_linear_float(image_format_data->imtype);
+
+ do_colormanagement = save_as_render && (is_movie || !requires_linear_float);
+
+ if (do_colormanagement) {
+ int make_byte = FALSE;
+ ImFileType *type;
+
+ if (allocate_result) {
+ colormanaged_ibuf = IMB_dupImBuf(ibuf);
+ }
+ else {
+ /* render pipeline is constructing image buffer itself, but it's re-using byte and float buffers from render result
+ * make copy of this buffers here sine this buffers would be transformed to other color space here
+ */
+
+ if (ibuf->rect && (ibuf->mall & IB_rect) == 0) {
+ ibuf->rect = MEM_dupallocN(ibuf->rect);
+ ibuf->mall |= IB_rect;
+ }
+
+ if (ibuf->rect_float && (ibuf->mall & IB_rectfloat) == 0) {
+ ibuf->rect_float = MEM_dupallocN(ibuf->rect_float);
+ ibuf->mall |= IB_rectfloat;
+ }
+ }
+
+ /* for proper check whether byte buffer is required by a format or not
+ * should be pretty safe since this image buffer is supposed to be used for
+ * saving only and ftype would be overwritten a bit later by BKE_imbuf_write
+ */
+ colormanaged_ibuf->ftype = BKE_imtype_to_ftype(image_format_data->imtype);
+
+ /* if file format isn't able to handle float buffer itself,
+ * we need to allocate byte buffer and store color managed
+ * image there
+ */
+ for (type = IMB_FILE_TYPES; type->is_a; type++) {
+ if (type->save && type->ftype(type, colormanaged_ibuf)) {
+ if ((type->flag & IM_FTYPE_FLOAT) == 0)
+ make_byte = TRUE;
+
+ break;
+ }
+ }
+
+ /* perform color space conversions */
+ colormanagement_imbuf_make_display_space(colormanaged_ibuf, view_settings, display_settings, make_byte);
+
+ if (colormanaged_ibuf->rect_float) {
+ /* float buffer isn't linear anymore,
+ * image format write callback should check for this flag and assume
+ * no space conversion should happen if ibuf->float_colorspace != NULL
+ */
+ colormanaged_ibuf->float_colorspace = display_transform_get_colorspace(view_settings, display_settings);
+ }
+ }
+
+ return colormanaged_ibuf;
+}
+
+static void imbuf_verify_float(ImBuf *ibuf)
+{
+ /* multiple threads could request for display buffer at once and in case
+ * view transform is not used it'll lead to display buffer calculated
+ * several times
+ * it is harmless, but would take much more time (assuming thread lock
+ * happens faster than running float->byte conversion for average image)
+ */
+ BLI_lock_thread(LOCK_COLORMANAGE);
+
+ if (ibuf->rect_float && (ibuf->rect == NULL || (ibuf->userflags & IB_RECT_INVALID))) {
+ IMB_rect_from_float(ibuf);
+
+ ibuf->userflags &= ~IB_RECT_INVALID;
+ }
+
+ BLI_unlock_thread(LOCK_COLORMANAGE);
+}
+
+/*********************** Public display buffers interfaces *************************/
+
+/* acquire display buffer for given image buffer using specified view and display settings */
+unsigned char *IMB_display_buffer_acquire(ImBuf *ibuf, const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings, void **cache_handle)
+{
+ *cache_handle = NULL;
+
+ if (!ibuf->x || !ibuf->y)
+ return NULL;
+
+ if (global_tot_display == 0 || global_tot_view == 0) {
+ /* if there's no view transform or display transforms, fallback to standard sRGB/linear conversion
+ * the same logic would be used if OCIO is disabled
+ */
+
+ imbuf_verify_float(ibuf);
+
+ return (unsigned char *) ibuf->rect;
+ }
+ else {
+ unsigned char *display_buffer;
+ int buffer_size;
+ ColormanageCacheViewSettings cache_view_settings;
+ ColormanageCacheDisplaySettings cache_display_settings;
+ ColorManagedViewSettings default_view_settings;
+ const ColorManagedViewSettings *applied_view_settings;
+
+ if (view_settings) {
+ applied_view_settings = view_settings;
+ }
+ else {
+ /* if no view settings were specified, use default display transformation
+ * this happens for images which don't want to be displayed with render settings
+ */
+
+ init_default_view_settings(display_settings, &default_view_settings);
+ applied_view_settings = &default_view_settings;
+ }
+
+ colormanage_view_settings_to_cache(&cache_view_settings, applied_view_settings);
+ colormanage_display_settings_to_cache(&cache_display_settings, display_settings);
+
+ BLI_lock_thread(LOCK_COLORMANAGE);
+
+ /* ensure color management bit fields exists */
+ if (!ibuf->display_buffer_flags) {
+ if (global_tot_display)
+ ibuf->display_buffer_flags = MEM_callocN(sizeof(unsigned int) * global_tot_display, "imbuf display_buffer_flags");
+ }
+ else if (ibuf->userflags & IB_DISPLAY_BUFFER_INVALID) {
+ /* all display buffers were marked as invalid from other areas,
+ * now propagate this flag to internal color management routines
+ */
+ memset(ibuf->display_buffer_flags, 0, global_tot_display * sizeof(unsigned int));
+
+ ibuf->userflags &= ~IB_DISPLAY_BUFFER_INVALID;
+ }
+
+ display_buffer = colormanage_cache_get(ibuf, &cache_view_settings, &cache_display_settings, cache_handle);
+
+ if (display_buffer) {
+ BLI_unlock_thread(LOCK_COLORMANAGE);
+ return display_buffer;
+ }
+
+ buffer_size = DISPLAY_BUFFER_CHANNELS * ibuf->x * ibuf->y * sizeof(char);
+ display_buffer = MEM_callocN(buffer_size, "imbuf display buffer");
+
+ colormanage_display_buffer_process(ibuf, display_buffer, applied_view_settings, display_settings);
+
+ colormanage_cache_put(ibuf, &cache_view_settings, &cache_display_settings, display_buffer, cache_handle);
+
+ BLI_unlock_thread(LOCK_COLORMANAGE);
+
+ return display_buffer;
+ }
+}
+
+/* same as IMB_display_buffer_acquire but gets view and display settings from context */
+unsigned char *IMB_display_buffer_acquire_ctx(const bContext *C, ImBuf *ibuf, void **cache_handle)
+{
+ ColorManagedViewSettings *view_settings;
+ ColorManagedDisplaySettings *display_settings;
+
+ display_transform_get_from_ctx(C, &view_settings, &display_settings);
+
+ return IMB_display_buffer_acquire(ibuf, view_settings, display_settings, cache_handle);
+}
+
+void IMB_display_buffer_transform_apply(unsigned char *display_buffer, float *linear_buffer, int width, int height,
+ int channels, const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings, int predivide)
+{
+ if (global_tot_display == 0 || global_tot_view == 0) {
+ IMB_buffer_byte_from_float(display_buffer, linear_buffer, channels, 0.0f, IB_PROFILE_SRGB, IB_PROFILE_LINEAR_RGB, FALSE,
+ width, height, width, width);
+ }
+ else {
+ float *buffer;
+ ColormanageProcessor *cm_processor = IMB_colormanagement_display_processor_new(view_settings, display_settings);
+
+ buffer = MEM_callocN(channels * width * height * sizeof(float), "display transform temp buffer");
+ memcpy(buffer, linear_buffer, channels * width * height * sizeof(float));
+
+ IMB_colormanagement_processor_apply(cm_processor, buffer, width, height, channels, predivide);
+
+ IMB_colormanagement_processor_free(cm_processor);
+
+ IMB_buffer_byte_from_float(display_buffer, buffer, channels, 0.0f, IB_PROFILE_SRGB, IB_PROFILE_SRGB,
+ FALSE, width, height, width, width);
+
+ MEM_freeN(buffer);
+ }
+}
+
+void IMB_display_buffer_release(void *cache_handle)
+{
+ if (cache_handle) {
+ BLI_lock_thread(LOCK_COLORMANAGE);
+
+ colormanage_cache_handle_release(cache_handle);
+
+ BLI_unlock_thread(LOCK_COLORMANAGE);
+ }
+}
+
+/*********************** Display functions *************************/
+
+const char *colormanage_display_get_default_name(void)
+{
+ OCIO_ConstConfigRcPtr *config = OCIO_getCurrentConfig();
+ const char *display_name;
+
+ display_name = OCIO_configGetDefaultDisplay(config);
+
+ OCIO_configRelease(config);
+
+ return display_name;
+}
+
+ColorManagedDisplay *colormanage_display_get_default(void)
+{
+ const char *display_name = colormanage_display_get_default_name();
+
+ if (display_name[0] == '\0')
+ return NULL;
+
+ return colormanage_display_get_named(display_name);
+}
+
+ColorManagedDisplay *colormanage_display_add(const char *name)
+{
+ ColorManagedDisplay *display;
+ int index = 0;
+
+ if (global_displays.last) {
+ ColorManagedDisplay *last_display = global_displays.last;
+
+ index = last_display->index;
+ }
+
+ display = MEM_callocN(sizeof(ColorManagedDisplay), "ColorManagedDisplay");
+
+ display->index = index + 1;
+
+ BLI_strncpy(display->name, name, sizeof(display->name));
+
+ BLI_addtail(&global_displays, display);
+
+ return display;
+}
+
+ColorManagedDisplay *colormanage_display_get_named(const char *name)
+{
+ ColorManagedDisplay *display;
+
+ for (display = global_displays.first; display; display = display->next) {
+ if (!strcmp(display->name, name))
+ return display;
+ }
+
+ return NULL;
+}
+
+ColorManagedDisplay *colormanage_display_get_indexed(int index)
+{
+ /* display indices are 1-based */
+ return BLI_findlink(&global_displays, index - 1);
+}
+
+int IMB_colormanagement_display_get_named_index(const char *name)
+{
+ ColorManagedDisplay *display;
+
+ display = colormanage_display_get_named(name);
+
+ if (display) {
+ return display->index;
+ }
+
+ return 0;
+}
+
+const char *IMB_colormanagement_display_get_indexed_name(int index)
+{
+ ColorManagedDisplay *display;
+
+ display = colormanage_display_get_indexed(index);
+
+ if (display) {
+ return display->name;
+ }
+
+ return NULL;
+}
+
+const char *IMB_colormanagement_display_get_default_name(void)
+{
+ ColorManagedDisplay *display = colormanage_display_get_default();
+
+ return display->name;
+}
+
+/* used by performance-critical pixel processing areas, such as color widgets */
+ColorManagedDisplay *IMB_colormanagement_display_get_named(const char *name)
+{
+ return colormanage_display_get_named(name);
+}
+
+const char *IMB_colormanagement_display_get_none_name(void)
+{
+ if (colormanage_display_get_named("None") != NULL)
+ return "None";
+
+ return colormanage_display_get_default_name();
+}
+
+/*********************** View functions *************************/
+
+const char *colormanage_view_get_default_name(const ColorManagedDisplay *display)
+{
+ OCIO_ConstConfigRcPtr *config = OCIO_getCurrentConfig();
+ const char *name;
+
+ name = OCIO_configGetDefaultView(config, display->name);
+
+ OCIO_configRelease(config);
+
+ return name;
+}
+
+ColorManagedView *colormanage_view_get_default(const ColorManagedDisplay *display)
+{
+ const char *name = colormanage_view_get_default_name(display);
+
+ if (!name || name[0] == '\0')
+ return NULL;
+
+ return colormanage_view_get_named(name);
+}
+
+ColorManagedView *colormanage_view_add(const char *name)
+{
+ ColorManagedView *view;
+ int index = global_tot_view;
+
+ view = MEM_callocN(sizeof(ColorManagedView), "ColorManagedView");
+ view->index = index + 1;
+ BLI_strncpy(view->name, name, sizeof(view->name));
+
+ BLI_addtail(&global_views, view);
+
+ global_tot_view++;
+
+ return view;
+}
+
+ColorManagedView *colormanage_view_get_named(const char *name)
+{
+ ColorManagedView *view;
+
+ for (view = global_views.first; view; view = view->next) {
+ if (!strcmp(view->name, name))
+ return view;
+ }
+
+ return NULL;
+}
+
+ColorManagedView *colormanage_view_get_indexed(int index)
+{
+ /* view transform indices are 1-based */
+ return BLI_findlink(&global_views, index - 1);
+}
+
+int IMB_colormanagement_view_get_named_index(const char *name)
+{
+ ColorManagedView *view = colormanage_view_get_named(name);
+
+ if (view) {
+ return view->index;
+ }
+
+ return 0;
+}
+
+const char *IMB_colormanagement_view_get_indexed_name(int index)
+{
+ ColorManagedView *view = colormanage_view_get_indexed(index);
+
+ if (view) {
+ return view->name;
+ }
+
+ return NULL;
+}
+
+const char *IMB_colormanagement_view_get_default_name(const char *display_name)
+{
+ ColorManagedDisplay *display = colormanage_display_get_named(display_name);
+ ColorManagedView *view = NULL;
+
+ if (display)
+ view = colormanage_view_get_default(display);
+
+ if (view)
+ return view->name;
+
+ return NULL;
+}
+
+/*********************** Color space functions *************************/
+
+static void colormanage_description_strip(char *description)
+{
+ int i, n;
+
+ for (i = strlen(description) - 1; i >= 0; i--) {
+ if (ELEM(description[i], '\r', '\n')) {
+ description[i] = '\0';
+ }
+ else {
+ break;
+ }
+ }
+
+ for (i = 0, n = strlen(description); i < n; i++) {
+ if (ELEM(description[i], '\r', '\n')) {
+ description[i] = ' ';
+ }
+ }
+}
+
+ColorSpace *colormanage_colorspace_add(const char *name, const char *description, int is_invertible, int is_data)
+{
+ ColorSpace *colorspace, *prev_space;
+ int counter = 1;
+
+ colorspace = MEM_callocN(sizeof(ColorSpace), "ColorSpace");
+
+ BLI_strncpy(colorspace->name, name, sizeof(colorspace->name));
+
+ if (description) {
+ BLI_strncpy(colorspace->description, description, sizeof(colorspace->description));
+
+ colormanage_description_strip(colorspace->description);
+ }
+
+ colorspace->is_invertible = is_invertible;
+ colorspace->is_data = is_data;
+
+ for (prev_space = global_colorspaces.first; prev_space; prev_space = prev_space->next) {
+ if (BLI_strcasecmp(prev_space->name, colorspace->name) > 0)
+ break;
+
+ prev_space->index = counter++;
+ }
+
+ if (!prev_space)
+ BLI_addtail(&global_colorspaces, colorspace);
+ else
+ BLI_insertlinkbefore(&global_colorspaces, prev_space, colorspace);
+
+ colorspace->index = counter++;
+ for (; prev_space; prev_space = prev_space->next) {
+ prev_space->index = counter++;
+ }
+
+ global_tot_colorspace++;
+
+ return colorspace;
+}
+
+ColorSpace *colormanage_colorspace_get_named(const char *name)
+{
+ ColorSpace *colorspace;
+
+ for (colorspace = global_colorspaces.first; colorspace; colorspace = colorspace->next) {
+ if (!strcmp(colorspace->name, name))
+ return colorspace;
+ }
+
+ return NULL;
+}
+
+ColorSpace *colormanage_colorspace_get_roled(int role)
+{
+ const char *role_colorspace = IMB_colormanagement_role_colorspace_name_get(role);
+
+ return colormanage_colorspace_get_named(role_colorspace);
+}
+
+ColorSpace *colormanage_colorspace_get_indexed(int index)
+{
+ /* display indices are 1-based */
+ return BLI_findlink(&global_colorspaces, index - 1);
+}
+
+int IMB_colormanagement_colorspace_get_named_index(const char *name)
+{
+ ColorSpace *colorspace;
+
+ colorspace = colormanage_colorspace_get_named(name);
+
+ if (colorspace) {
+ return colorspace->index;
+ }
+
+ return 0;
+}
+
+const char *IMB_colormanagement_colorspace_get_indexed_name(int index)
+{
+ ColorSpace *colorspace;
+
+ colorspace = colormanage_colorspace_get_indexed(index);
+
+ if (colorspace) {
+ return colorspace->name;
+ }
+
+ return "";
+}
+
+void IMB_colormanagment_colorspace_from_ibuf_ftype(ColorManagedColorspaceSettings *colorspace_settings, ImBuf *ibuf)
+{
+ ImFileType *type;
+
+ for (type = IMB_FILE_TYPES; type->is_a; type++) {
+ if (type->save && type->ftype(type, ibuf)) {
+ const char *role_colorspace;
+
+ role_colorspace = IMB_colormanagement_role_colorspace_name_get(type->default_save_role);
+
+ BLI_strncpy(colorspace_settings->name, role_colorspace, sizeof(colorspace_settings->name));
+ }
+ }
+}
+
+/*********************** RNA helper functions *************************/
+
+void IMB_colormanagement_display_items_add(EnumPropertyItem **items, int *totitem)
+{
+ ColorManagedDisplay *display;
+
+ for (display = global_displays.first; display; display = display->next) {
+ EnumPropertyItem item;
+
+ item.value = display->index;
+ item.name = display->name;
+ item.identifier = display->name;
+ item.icon = 0;
+ item.description = "";
+
+ RNA_enum_item_add(items, totitem, &item);
+ }
+}
+
+static void colormanagement_view_item_add(EnumPropertyItem **items, int *totitem, ColorManagedView *view)
+{
+ EnumPropertyItem item;
+
+ item.value = view->index;
+ item.name = view->name;
+ item.identifier = view->name;
+ item.icon = 0;
+ item.description = "";
+
+ RNA_enum_item_add(items, totitem, &item);
+}
+
+void IMB_colormanagement_view_items_add(EnumPropertyItem **items, int *totitem, const char *display_name)
+{
+ ColorManagedDisplay *display = colormanage_display_get_named(display_name);
+ ColorManagedView *view;
+
+ if (display) {
+ LinkData *display_view;
+
+ for (display_view = display->views.first; display_view; display_view = display_view->next) {
+ view = display_view->data;
+
+ colormanagement_view_item_add(items, totitem, view);
+ }
+ }
+}
+
+void IMB_colormanagement_colorspace_items_add(EnumPropertyItem **items, int *totitem)
+{
+ ColorSpace *colorspace;
+
+ for (colorspace = global_colorspaces.first; colorspace; colorspace = colorspace->next) {
+ EnumPropertyItem item;
+
+ if (!colorspace->is_invertible)
+ continue;
+
+ item.value = colorspace->index;
+ item.name = colorspace->name;
+ item.identifier = colorspace->name;
+ item.icon = 0;
+
+ if (colorspace->description)
+ item.description = colorspace->description;
+ else
+ item.description = "";
+
+ RNA_enum_item_add(items, totitem, &item);
+ }
+}
+
+/*********************** Partial display buffer update *************************/
+
+/*
+ * Partial display update is supposed to be used by such areas as
+ * compositor and renderer, This areas are calculating tiles of the
+ * images and because of performance reasons only this tiles should
+ * be color managed.
+ * This gives nice visual feedback without slowing things down.
+ *
+ * Updating happens for active display transformation only, all
+ * the rest buffers would be marked as dirty
+ */
+
+static void partial_buffer_update_rect(ImBuf *ibuf, unsigned char *display_buffer, const float *linear_buffer,
+ const unsigned char *byte_buffer, int display_stride, int linear_stride,
+ int linear_offset_x, int linear_offset_y, ColormanageProcessor *cm_processor,
+ int xmin, int ymin, int xmax, int ymax)
+{
+ int x, y;
+ int channels = ibuf->channels;
+ int predivide = ibuf->flags & IB_cm_predivide;
+ float dither = ibuf->dither;
+ ColorSpace *rect_colorspace = ibuf->rect_colorspace;
+ float *display_buffer_float = NULL;
+ int width = xmax - xmin;
+ int height = ymax - ymin;
+ int is_data = ibuf->colormanage_flag & IMB_COLORMANAGE_IS_DATA;
+
+ if (dither != 0.0f) {
+ display_buffer_float = MEM_callocN(channels * width * height * sizeof(float), "display buffer for dither");
+ }
+
+ for (y = ymin; y < ymax; y++) {
+ for (x = xmin; x < xmax; x++) {
+ int display_index = (y * display_stride + x) * channels;
+ int linear_index = ((y - linear_offset_y) * linear_stride + (x - linear_offset_x)) * channels;
+ float pixel[4];
+
+ if (linear_buffer) {
+ copy_v4_v4(pixel, (float *) linear_buffer + linear_index);
+ }
+ else if (byte_buffer) {
+ rgba_uchar_to_float(pixel, byte_buffer + linear_index);
+
+ IMB_colormanagement_colorspace_to_scene_linear_v3(pixel, rect_colorspace);
+ }
+
+ if (!is_data) {
+ if (predivide)
+ IMB_colormanagement_processor_apply_v4(cm_processor, pixel);
+ else
+ IMB_colormanagement_processor_apply_v4(cm_processor, pixel);
+ }
+
+ if (display_buffer_float) {
+ int index = ((y - ymin) * width + (x - xmin)) * channels;
+
+ copy_v4_v4(display_buffer_float + index, pixel);
+ }
+ else {
+ rgba_float_to_uchar(display_buffer + display_index, pixel);
+ }
+ }
+ }
+
+ if (display_buffer_float) {
+ int display_index = (ymin * display_stride + xmin) * channels;
+
+ IMB_buffer_byte_from_float(display_buffer + display_index, display_buffer_float, channels, dither,
+ IB_PROFILE_SRGB, IB_PROFILE_SRGB, FALSE, width, height, display_stride, width);
+
+ MEM_freeN(display_buffer_float);
+ }
+}
+
+void IMB_partial_display_buffer_update(ImBuf *ibuf, const float *linear_buffer, const unsigned char *byte_buffer,
+ int stride, int offset_x, int offset_y, const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings,
+ int xmin, int ymin, int xmax, int ymax)
+{
+ if (ibuf->rect && ibuf->rect_float) {
+ /* update byte buffer created by legacy color management */
+
+ unsigned char *rect = (unsigned char *) ibuf->rect;
+ int predivide = ibuf->flags & IB_cm_predivide;
+ int channels = ibuf->channels;
+ int width = xmax - xmin;
+ int height = ymax - ymin;
+ int rect_index = (ymin * ibuf->x + xmin) * channels;
+ int linear_index = ((ymin - offset_y) * stride + (xmin - offset_x)) * channels;
+
+ IMB_buffer_byte_from_float(rect + rect_index, linear_buffer + linear_index, channels, ibuf->dither,
+ IB_PROFILE_SRGB, IB_PROFILE_LINEAR_RGB, predivide, width, height, ibuf->x, stride);
+ }
+
+ if (ibuf->display_buffer_flags) {
+ ColormanageCacheViewSettings cache_view_settings;
+ ColormanageCacheDisplaySettings cache_display_settings;
+ void *cache_handle = NULL;
+ unsigned char *display_buffer = NULL;
+ int view_flag, display_index, buffer_width;
+
+ colormanage_view_settings_to_cache(&cache_view_settings, view_settings);
+ colormanage_display_settings_to_cache(&cache_display_settings, display_settings);
+
+ view_flag = 1 << (cache_view_settings.view - 1);
+ display_index = cache_display_settings.display - 1;
+
+ BLI_lock_thread(LOCK_COLORMANAGE);
+ if ((ibuf->userflags & IB_DISPLAY_BUFFER_INVALID) == 0)
+ display_buffer = colormanage_cache_get(ibuf, &cache_view_settings, &cache_display_settings, &cache_handle);
+
+ /* in some rare cases buffer's dimension could be changing directly from
+ * different thread
+ * this i.e. happens when image editor acquires render result
+ */
+ buffer_width = ibuf->x;
+
+ /* mark all other buffers as invalid */
+ memset(ibuf->display_buffer_flags, 0, global_tot_display * sizeof(unsigned int));
+ ibuf->display_buffer_flags[display_index] |= view_flag;
+
+ BLI_unlock_thread(LOCK_COLORMANAGE);
+
+ if (display_buffer) {
+ ColormanageProcessor *cm_processor;
+
+ cm_processor = IMB_colormanagement_display_processor_new(view_settings, display_settings);
+
+ partial_buffer_update_rect(ibuf, display_buffer, linear_buffer, byte_buffer, buffer_width, stride,
+ offset_x, offset_y, cm_processor, xmin, ymin, xmax, ymax);
+
+ IMB_colormanagement_processor_free(cm_processor);
+
+ IMB_display_buffer_release(cache_handle);
+ }
+ }
+}
+
+/*********************** Pixel processor functions *************************/
+
+ColormanageProcessor *IMB_colormanagement_display_processor_new(const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings)
+{
+ ColormanageProcessor *cm_processor;
+
+ cm_processor = MEM_callocN(sizeof(ColormanageProcessor), "colormanagement processor");
+
+ {
+ ColorManagedViewSettings default_view_settings;
+ const ColorManagedViewSettings *applied_view_settings;
+
+ if (view_settings) {
+ applied_view_settings = view_settings;
+ }
+ else {
+ init_default_view_settings(display_settings, &default_view_settings);
+ applied_view_settings = &default_view_settings;
+ }
+
+ cm_processor->processor = create_display_buffer_processor(applied_view_settings->view_transform, display_settings->display_device,
+ applied_view_settings->exposure, applied_view_settings->gamma);
+
+ if (applied_view_settings->flag & COLORMANAGE_VIEW_USE_CURVES) {
+ cm_processor->curve_mapping = curvemapping_copy(applied_view_settings->curve_mapping);
+ curvemapping_premultiply(cm_processor->curve_mapping, FALSE);
+ }
+ }
+
+ return cm_processor;
+}
+
+ColormanageProcessor *IMB_colormanagement_colorspace_processor_new(const char *from_colorspace, const char *to_colorspace)
+{
+ ColormanageProcessor *cm_processor;
+
+ cm_processor = MEM_callocN(sizeof(ColormanageProcessor), "colormanagement processor");
+
+ cm_processor->processor = create_colorspace_transform_processor(from_colorspace, to_colorspace);
+
+ return cm_processor;
+}
+
+void IMB_colormanagement_processor_apply_v4(ColormanageProcessor *cm_processor, float pixel[4])
+{
+ if (cm_processor->curve_mapping)
+ curvemapping_evaluate_premulRGBF(cm_processor->curve_mapping, pixel, pixel);
+
+ if (cm_processor->processor)
+ OCIO_processorApplyRGBA(cm_processor->processor, pixel);
+}
+
+void IMB_colormanagement_processor_apply_v3(ColormanageProcessor *cm_processor, float pixel[3])
+{
+ if (cm_processor->curve_mapping)
+ curvemapping_evaluate_premulRGBF(cm_processor->curve_mapping, pixel, pixel);
+
+ if (cm_processor->processor)
+ OCIO_processorApplyRGB(cm_processor->processor, pixel);
+}
+
+void IMB_colormanagement_processor_apply(ColormanageProcessor *cm_processor, float *buffer, int width, int height,
+ int channels, int predivide)
+{
+ /* apply curve mapping */
+ if (cm_processor->curve_mapping) {
+ int x, y;
+
+ for (y = 0; y < height; y++) {
+ for (x = 0; x < width; x++) {
+ float *pixel = buffer + channels * (y * width + x);
+
+ curve_mapping_apply_pixel(cm_processor->curve_mapping, pixel, channels);
+ }
+ }
+ }
+
+ if (cm_processor->processor && channels >= 3) {
+ OCIO_PackedImageDesc *img;
+
+ /* apply OCIO processor */
+ img = OCIO_createOCIO_PackedImageDesc(buffer, width, height, channels, sizeof(float),
+ channels * sizeof(float), channels * sizeof(float) * width);
+
+ if (predivide)
+ OCIO_processorApply_predivide(cm_processor->processor, img);
+ else
+ OCIO_processorApply(cm_processor->processor, img);
+
+ OCIO_OCIO_PackedImageDescRelease(img);
+ }
+}
+
+void IMB_colormanagement_processor_free(ColormanageProcessor *cm_processor)
+{
+ if (cm_processor->curve_mapping)
+ curvemapping_free(cm_processor->curve_mapping);
+ if (cm_processor->processor)
+ OCIO_processorRelease(cm_processor->processor);
+
+ MEM_freeN(cm_processor);
+}
diff --git a/source/blender/imbuf/intern/dds/CMakeLists.txt b/source/blender/imbuf/intern/dds/CMakeLists.txt
index ae5f1ca9d09..e514b7ab6f9 100644
--- a/source/blender/imbuf/intern/dds/CMakeLists.txt
+++ b/source/blender/imbuf/intern/dds/CMakeLists.txt
@@ -31,6 +31,7 @@ set(INC
../../../blenlib
../../../makesdna
../../../../../intern/guardedalloc
+ ../../../../../intern/utfconv
)
set(INC_SYS
diff --git a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
index 82f355e1bb2..d9d0cb86ee0 100644
--- a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
+++ b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp
@@ -305,7 +305,7 @@ static const uint DDPF_SRGB = 0x40000000U;
};
- const char * getDxgiFormatString(DXGI_FORMAT dxgiFormat)
+ static const char * getDxgiFormatString(DXGI_FORMAT dxgiFormat)
{
#define CASE(format) case DXGI_FORMAT_##format: return #format
switch (dxgiFormat)
@@ -429,7 +429,7 @@ static const uint DDPF_SRGB = 0x40000000U;
#undef CASE
}
- const char * getD3d10ResourceDimensionString(D3D10_RESOURCE_DIMENSION resourceDimension)
+ static const char * getD3d10ResourceDimensionString(D3D10_RESOURCE_DIMENSION resourceDimension)
{
switch (resourceDimension)
{
@@ -534,7 +534,7 @@ namespace
} // namespace
-uint findD3D9Format(uint bitcount, uint rmask, uint gmask, uint bmask, uint amask)
+static uint findD3D9Format(uint bitcount, uint rmask, uint gmask, uint bmask, uint amask)
{
for (int i = 0; i < s_d3dFormatCount; i++)
{
diff --git a/source/blender/imbuf/intern/dds/SConscript b/source/blender/imbuf/intern/dds/SConscript
index 918ae7b530b..4245f5001b9 100644
--- a/source/blender/imbuf/intern/dds/SConscript
+++ b/source/blender/imbuf/intern/dds/SConscript
@@ -11,7 +11,8 @@ incs = ['.',
'../../../blenkernel',
'../../../blenlib',
'intern/include',
- '#/intern/guardedalloc']
+ '#/intern/guardedalloc',
+ '#/intern/utfconv']
defs = ['WITH_DDS']
diff --git a/source/blender/imbuf/intern/dds/dds_api.cpp b/source/blender/imbuf/intern/dds/dds_api.cpp
index fba326f7865..7aacbf20bae 100644
--- a/source/blender/imbuf/intern/dds/dds_api.cpp
+++ b/source/blender/imbuf/intern/dds/dds_api.cpp
@@ -32,6 +32,10 @@
#include <stdio.h> // printf
#include <fstream>
+#if defined (WIN32) && !defined(FREE_WINDOWS)
+#include "utfconv.h"
+#endif
+
extern "C" {
#include "imbuf.h"
@@ -39,6 +43,8 @@ extern "C" {
#include "IMB_imbuf.h"
#include "IMB_allocimbuf.h"
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
int imb_save_dds(struct ImBuf * ibuf, const char *name, int flags)
{
@@ -49,7 +55,15 @@ int imb_save_dds(struct ImBuf * ibuf, const char *name, int flags)
if (ibuf->rect == 0) return (0);
/* open file for writing */
- std::ofstream fildes(name);
+ std::ofstream fildes;
+
+#if defined (WIN32) && !defined(FREE_WINDOWS)
+ wchar_t *wname = alloc_utf16_from_8(name, 0);
+ fildes.open(wname);
+ free(wname);
+#else
+ fildes.open(name);
+#endif
/* write header */
fildes << "DDS ";
@@ -68,7 +82,7 @@ int imb_is_a_dds(unsigned char *mem) // note: use at most first 32 bytes
return(1);
}
-struct ImBuf *imb_load_dds(unsigned char *mem, size_t size, int flags)
+struct ImBuf *imb_load_dds(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
{
struct ImBuf * ibuf = 0;
DirectDrawSurface dds(mem, size); /* reads header */
@@ -81,6 +95,12 @@ struct ImBuf *imb_load_dds(unsigned char *mem, size_t size, int flags)
Color32 pixel;
Color32 *pixels = 0;
+ /* OCIO_TODO: never was able to save DDS, so can'ttest loading
+ * but profile used to be set to sRGB and can't see rect_float here, so
+ * default byte space should work fine
+ */
+ colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_BYTE);
+
if (!imb_is_a_dds(mem))
return (0);
@@ -122,7 +142,6 @@ struct ImBuf *imb_load_dds(unsigned char *mem, size_t size, int flags)
if (ibuf == 0) return(0); /* memory allocation failed */
ibuf->ftype = DDS;
- ibuf->profile = IB_PROFILE_SRGB;
ibuf->dds_data.fourcc = dds.fourCC();
ibuf->dds_data.nummipmaps = dds.mipmapCount();
diff --git a/source/blender/imbuf/intern/dds/dds_api.h b/source/blender/imbuf/intern/dds/dds_api.h
index 589257816e0..2316fefce69 100644
--- a/source/blender/imbuf/intern/dds/dds_api.h
+++ b/source/blender/imbuf/intern/dds/dds_api.h
@@ -32,9 +32,11 @@
extern "C" {
#endif
+#include "../../IMB_imbuf.h"
+
int imb_save_dds(struct ImBuf *ibuf, const char *name, int flags);
int imb_is_a_dds(unsigned char *mem); /* use only first 32 bytes of mem */
-struct ImBuf *imb_load_dds(unsigned char *mem, size_t size, int flags);
+struct ImBuf *imb_load_dds(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE]);
#ifdef __cplusplus
}
diff --git a/source/blender/imbuf/intern/divers.c b/source/blender/imbuf/intern/divers.c
index 1b68c520336..aa236af3507 100644
--- a/source/blender/imbuf/intern/divers.c
+++ b/source/blender/imbuf/intern/divers.c
@@ -31,8 +31,6 @@
* \ingroup imbuf
*/
-
-#include "BLI_blenlib.h"
#include "BLI_rand.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
@@ -42,6 +40,11 @@
#include "IMB_imbuf.h"
#include "IMB_allocimbuf.h"
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+
+#include "BLI_threads.h"
+
#include "MEM_guardedalloc.h"
/**************************** Interlace/Deinterlace **************************/
@@ -108,7 +111,7 @@ typedef struct DitherContext {
float f;
} DitherContext;
-DitherContext *create_dither_context(int w, float factor)
+static DitherContext *create_dither_context(int w, float factor)
{
DitherContext *di;
int i;
@@ -199,7 +202,6 @@ void IMB_buffer_byte_from_float(uchar *rect_to, const float *rect_from,
BLI_assert(profile_to != IB_PROFILE_NONE);
BLI_assert(profile_from != IB_PROFILE_NONE);
- BLI_init_srgb_conversion();
if (dither)
di = create_dither_context(width, dither);
@@ -335,8 +337,6 @@ void IMB_buffer_float_from_byte(float *rect_to, const uchar *rect_from,
BLI_assert(profile_to != IB_PROFILE_NONE);
BLI_assert(profile_from != IB_PROFILE_NONE);
- BLI_init_srgb_conversion();
-
/* RGBA input */
for (y = 0; y < height; y++) {
const uchar *from = rect_from + stride_from * y * 4;
@@ -527,32 +527,34 @@ void IMB_buffer_byte_from_byte(uchar *rect_to, const uchar *rect_from,
void IMB_rect_from_float(ImBuf *ibuf)
{
int predivide = (ibuf->flags & IB_cm_predivide);
- int profile_from;
+ float *buffer;
+ const char *from_colorspace;
/* verify we have a float buffer */
if (ibuf->rect_float == NULL)
return;
/* create byte rect if it didn't exist yet */
- if (ibuf->rect == NULL)
- imb_addrectImBuf(ibuf);
-
- /* determine profiles */
- if (ibuf->profile == IB_PROFILE_LINEAR_RGB) {
- profile_from = IB_PROFILE_LINEAR_RGB;
- }
- else if (ELEM(ibuf->profile, IB_PROFILE_SRGB, IB_PROFILE_NONE)) {
- profile_from = IB_PROFILE_SRGB;
- }
- else {
- profile_from = IB_PROFILE_SRGB; /* should never happen */
- BLI_assert(0);
+ if (ibuf->rect == NULL) {
+ if (imb_addrectImBuf(ibuf) == 0)
+ return;
}
- /* do conversion */
- IMB_buffer_byte_from_float((uchar *)ibuf->rect, ibuf->rect_float,
- ibuf->channels, ibuf->dither, IB_PROFILE_SRGB, profile_from, predivide,
- ibuf->x, ibuf->y, ibuf->x, ibuf->x);
+ if (ibuf->float_colorspace == NULL)
+ from_colorspace = IMB_colormanagement_role_colorspace_name_get(COLOR_ROLE_SCENE_LINEAR);
+ else
+ from_colorspace = ibuf->float_colorspace->name;
+
+ buffer = MEM_dupallocN(ibuf->rect_float);
+
+ /* first make float buffer in byte space */
+ IMB_colormanagement_transform(buffer, ibuf->x, ibuf->y, ibuf->channels, from_colorspace, ibuf->rect_colorspace->name, predivide);
+
+ /* convert float to byte */
+ IMB_buffer_byte_from_float((unsigned char *) ibuf->rect, buffer, ibuf->channels, ibuf->dither, IB_PROFILE_SRGB, IB_PROFILE_SRGB,
+ FALSE, ibuf->x, ibuf->y, ibuf->x, ibuf->x);
+
+ MEM_freeN(buffer);
/* ensure user flag is reset */
ibuf->userflags &= ~IB_RECT_INVALID;
@@ -564,7 +566,7 @@ void IMB_partial_rect_from_float(ImBuf *ibuf, float *buffer, int x, int y, int w
float *rect_float;
uchar *rect_byte;
int predivide = (ibuf->flags & IB_cm_predivide);
- int profile_from;
+ int profile_from = IB_PROFILE_LINEAR_RGB;
/* verify we have a float buffer */
if (ibuf->rect_float == NULL || buffer == NULL)
@@ -574,18 +576,6 @@ void IMB_partial_rect_from_float(ImBuf *ibuf, float *buffer, int x, int y, int w
if (ibuf->rect == NULL)
imb_addrectImBuf(ibuf);
- /* determine profiles */
- if (ibuf->profile == IB_PROFILE_LINEAR_RGB) {
- profile_from = IB_PROFILE_LINEAR_RGB;
- }
- else if (ELEM(ibuf->profile, IB_PROFILE_SRGB, IB_PROFILE_NONE)) {
- profile_from = IB_PROFILE_SRGB;
- }
- else {
- profile_from = IB_PROFILE_SRGB; /* should never happen */
- BLI_assert(0);
- }
-
/* do conversion */
rect_float = ibuf->rect_float + (x + y * ibuf->x) * ibuf->channels;
rect_byte = (uchar *)ibuf->rect + (x + y * ibuf->x) * 4;
@@ -594,6 +584,7 @@ void IMB_partial_rect_from_float(ImBuf *ibuf, float *buffer, int x, int y, int w
ibuf->channels, IB_PROFILE_SRGB, profile_from, predivide,
w, h, w, ibuf->x);
+ /* XXX: need to convert to image buffer's rect space */
IMB_buffer_byte_from_float(rect_byte, buffer,
4, ibuf->dither, IB_PROFILE_SRGB, IB_PROFILE_SRGB, 0,
w, h, ibuf->x, w);
@@ -605,26 +596,34 @@ void IMB_partial_rect_from_float(ImBuf *ibuf, float *buffer, int x, int y, int w
void IMB_float_from_rect(ImBuf *ibuf)
{
int predivide = (ibuf->flags & IB_cm_predivide);
- int profile_from;
/* verify if we byte and float buffers */
if (ibuf->rect == NULL)
return;
- if (ibuf->rect_float == NULL)
- if (imb_addrectfloatImBuf(ibuf) == 0)
+ /* lock the color management thread
+ * need this because allocated but not filled float buffer will confuse
+ * display transform which lead to black areas across the frame
+ */
+ BLI_lock_thread(LOCK_COLORMANAGE);
+
+ if (ibuf->rect_float == NULL) {
+ if (imb_addrectfloatImBuf(ibuf) == 0) {
+ BLI_unlock_thread(LOCK_COLORMANAGE);
+
return;
-
- /* determine profiles */
- if (ibuf->profile == IB_PROFILE_NONE)
- profile_from = IB_PROFILE_LINEAR_RGB;
- else
- profile_from = IB_PROFILE_SRGB;
-
- /* do conversion */
- IMB_buffer_float_from_byte(ibuf->rect_float, (uchar *)ibuf->rect,
- IB_PROFILE_LINEAR_RGB, profile_from, predivide,
- ibuf->x, ibuf->y, ibuf->x, ibuf->x);
+ }
+ }
+
+ /* first, create float buffer in non-linear space */
+ IMB_buffer_float_from_byte(ibuf->rect_float, (unsigned char *) ibuf->rect, IB_PROFILE_SRGB, IB_PROFILE_SRGB,
+ FALSE, ibuf->x, ibuf->y, ibuf->x, ibuf->x);
+
+ /* then make float be in linear space */
+ IMB_colormanagement_colorspace_to_scene_linear(ibuf->rect_float, ibuf->x, ibuf->y, ibuf->channels,
+ ibuf->rect_colorspace, predivide);
+
+ BLI_unlock_thread(LOCK_COLORMANAGE);
}
/* no profile conversion */
@@ -640,63 +639,19 @@ void IMB_float_from_rect_simple(ImBuf *ibuf)
ibuf->x, ibuf->y, ibuf->x, ibuf->x);
}
-void IMB_convert_profile(ImBuf *ibuf, int profile)
-{
- int predivide = (ibuf->flags & IB_cm_predivide);
- int profile_from, profile_to;
-
- if (ibuf->profile == profile)
- return;
-
- /* determine profiles */
- if (ibuf->profile == IB_PROFILE_LINEAR_RGB)
- profile_from = IB_PROFILE_LINEAR_RGB;
- else if (ELEM(ibuf->profile, IB_PROFILE_SRGB, IB_PROFILE_NONE))
- profile_from = IB_PROFILE_SRGB;
- else {
- BLI_assert(0);
- profile_from = IB_PROFILE_SRGB; /* dummy, should never happen */
- }
-
- if (profile == IB_PROFILE_LINEAR_RGB)
- profile_to = IB_PROFILE_LINEAR_RGB;
- else if (ELEM(profile, IB_PROFILE_SRGB, IB_PROFILE_NONE))
- profile_to = IB_PROFILE_SRGB;
- else {
- BLI_assert(0);
- profile_to = IB_PROFILE_SRGB; /* dummy, should never happen */
- }
-
- /* do conversion */
- if (ibuf->rect_float) {
- IMB_buffer_float_from_float(ibuf->rect_float, ibuf->rect_float,
- 4, profile_to, profile_from, predivide,
- ibuf->x, ibuf->y, ibuf->x, ibuf->x);
- }
-
- if (ibuf->rect) {
- IMB_buffer_byte_from_byte((uchar *)ibuf->rect, (uchar *)ibuf->rect,
- profile_to, profile_from, predivide,
- ibuf->x, ibuf->y, ibuf->x, ibuf->x);
- }
-
- /* set new profile */
- ibuf->profile = profile;
-}
-
/* use when you need to get a buffer with a certain profile
* if the return */
+
+/* OCIO_TODO: used only by Cineon/DPX exporter which is still broken, so can not guarantee
+ * this function is working properly
+ */
float *IMB_float_profile_ensure(ImBuf *ibuf, int profile, int *alloc)
{
int predivide = (ibuf->flags & IB_cm_predivide);
- int profile_from, profile_to;
-
- /* determine profiles */
- if (ibuf->profile == IB_PROFILE_NONE)
- profile_from = IB_PROFILE_LINEAR_RGB;
- else
- profile_from = IB_PROFILE_SRGB;
+ int profile_from = IB_PROFILE_LINEAR_RGB;
+ int profile_to;
+ /* determine profile */
if (profile == IB_PROFILE_NONE)
profile_to = IB_PROFILE_LINEAR_RGB;
else
@@ -755,7 +710,7 @@ void IMB_buffer_float_clamp(float *buf, int width, int height)
{
int i, total = width * height * 4;
for (i = 0; i < total; i++) {
- buf[i] = MIN2(1.0, buf[i]);
+ buf[i] = minf(1.0, buf[i]);
}
}
diff --git a/source/blender/imbuf/intern/filetype.c b/source/blender/imbuf/intern/filetype.c
index 900bc7756f0..ed4db50035d 100644
--- a/source/blender/imbuf/intern/filetype.c
+++ b/source/blender/imbuf/intern/filetype.c
@@ -30,6 +30,8 @@
#include "IMB_imbuf_types.h"
#include "IMB_filetype.h"
+#include "IMB_colormanagement.h"
+
#ifdef WITH_OPENEXR
#include "openexr/openexr_api.h"
#endif
@@ -48,12 +50,6 @@ static int imb_ftype_default(ImFileType *type, ImBuf *ibuf)
{
return (ibuf->ftype & type->filetype);
}
-#if defined(__APPLE__) && defined(IMBUF_COCOA)
-static int imb_ftype_cocoa(ImFileType *type, ImBuf *ibuf)
-{
- return (ibuf->ftype & TIF);
-}
-#endif
static int imb_ftype_iris(ImFileType *type, ImBuf *ibuf)
{
(void)type;
@@ -72,36 +68,34 @@ void quicktime_exit(void);
#endif
ImFileType IMB_FILE_TYPES[] = {
- {NULL, NULL, imb_is_a_jpeg, imb_ftype_default, imb_load_jpeg, imb_savejpeg, NULL, 0, JPG},
- {NULL, NULL, imb_is_a_png, imb_ftype_default, imb_loadpng, imb_savepng, NULL, 0, PNG},
- {NULL, NULL, imb_is_a_bmp, imb_ftype_default, imb_bmp_decode, imb_savebmp, NULL, 0, BMP},
- {NULL, NULL, imb_is_a_targa, imb_ftype_default, imb_loadtarga, imb_savetarga, NULL, 0, TGA},
- {NULL, NULL, imb_is_a_iris, imb_ftype_iris, imb_loadiris, imb_saveiris, NULL, 0, IMAGIC},
+ {NULL, NULL, imb_is_a_jpeg, imb_ftype_default, imb_load_jpeg, imb_savejpeg, NULL, 0, JPG, COLOR_ROLE_DEFAULT_BYTE},
+ {NULL, NULL, imb_is_a_png, imb_ftype_default, imb_loadpng, imb_savepng, NULL, 0, PNG, COLOR_ROLE_DEFAULT_BYTE},
+ {NULL, NULL, imb_is_a_bmp, imb_ftype_default, imb_bmp_decode, imb_savebmp, NULL, 0, BMP, COLOR_ROLE_DEFAULT_BYTE},
+ {NULL, NULL, imb_is_a_targa, imb_ftype_default, imb_loadtarga, imb_savetarga, NULL, 0, TGA, COLOR_ROLE_DEFAULT_BYTE},
+ {NULL, NULL, imb_is_a_iris, imb_ftype_iris, imb_loadiris, imb_saveiris, NULL, 0, IMAGIC, COLOR_ROLE_DEFAULT_BYTE},
#ifdef WITH_CINEON
- {NULL, NULL, imb_is_dpx, imb_ftype_default, imb_loaddpx, imb_save_dpx, NULL, IM_FTYPE_FLOAT, DPX},
- {NULL, NULL, imb_is_cineon, imb_ftype_default, imb_loadcineon, imb_savecineon, NULL, IM_FTYPE_FLOAT, CINEON},
+ {NULL, NULL, imb_is_dpx, imb_ftype_default, imb_loaddpx, imb_save_dpx, NULL, IM_FTYPE_FLOAT, DPX, COLOR_ROLE_DEFAULT_FLOAT},
+ {NULL, NULL, imb_is_cineon, imb_ftype_default, imb_loadcineon, imb_savecineon, NULL, IM_FTYPE_FLOAT, CINEON, COLOR_ROLE_DEFAULT_FLOAT},
#endif
#ifdef WITH_TIFF
- {imb_inittiff, NULL, imb_is_a_tiff, imb_ftype_default, imb_loadtiff, imb_savetiff, imb_loadtiletiff, 0, TIF},
-#elif defined(__APPLE__) && defined(IMBUF_COCOA)
- {NULL, NULL, imb_is_a_cocoa, imb_ftype_cocoa, imb_imb_cocoaLoadImage, imb_savecocoa, NULL, 0, TIF},
+ {imb_inittiff, NULL, imb_is_a_tiff, imb_ftype_default, imb_loadtiff, imb_savetiff, imb_loadtiletiff, 0, TIF, COLOR_ROLE_DEFAULT_BYTE},
#endif
#ifdef WITH_HDR
- {NULL, NULL, imb_is_a_hdr, imb_ftype_default, imb_loadhdr, imb_savehdr, NULL, IM_FTYPE_FLOAT, RADHDR},
+ {NULL, NULL, imb_is_a_hdr, imb_ftype_default, imb_loadhdr, imb_savehdr, NULL, IM_FTYPE_FLOAT, RADHDR, COLOR_ROLE_DEFAULT_FLOAT},
#endif
#ifdef WITH_OPENEXR
- {imb_initopenexr, NULL, imb_is_a_openexr, imb_ftype_default, imb_load_openexr, imb_save_openexr, NULL, IM_FTYPE_FLOAT, OPENEXR},
+ {imb_initopenexr, NULL, imb_is_a_openexr, imb_ftype_default, imb_load_openexr, imb_save_openexr, NULL, IM_FTYPE_FLOAT, OPENEXR, COLOR_ROLE_DEFAULT_FLOAT},
#endif
#ifdef WITH_OPENJPEG
- {NULL, NULL, imb_is_a_jp2, imb_ftype_default, imb_jp2_decode, imb_savejp2, NULL, IM_FTYPE_FLOAT, JP2},
+ {NULL, NULL, imb_is_a_jp2, imb_ftype_default, imb_jp2_decode, imb_savejp2, NULL, IM_FTYPE_FLOAT, JP2, COLOR_ROLE_DEFAULT_BYTE},
#endif
#ifdef WITH_DDS
- {NULL, NULL, imb_is_a_dds, imb_ftype_default, imb_load_dds, NULL, NULL, 0, DDS},
+ {NULL, NULL, imb_is_a_dds, imb_ftype_default, imb_load_dds, NULL, NULL, 0, DDS, COLOR_ROLE_DEFAULT_BYTE},
#endif
#ifdef WITH_QUICKTIME
- {quicktime_init, quicktime_exit, imb_is_a_quicktime, imb_ftype_quicktime, imb_quicktime_decode, NULL, NULL, 0, QUICKTIME},
+ {quicktime_init, quicktime_exit, imb_is_a_quicktime, imb_ftype_quicktime, imb_quicktime_decode, NULL, NULL, 0, QUICKTIME, COLOR_ROLE_DEFAULT_BYTE},
#endif
- {NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0}
+ {NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0}
};
void imb_filetypes_init(void)
diff --git a/source/blender/imbuf/intern/filter.c b/source/blender/imbuf/intern/filter.c
index a0434691807..678b2908b96 100644
--- a/source/blender/imbuf/intern/filter.c
+++ b/source/blender/imbuf/intern/filter.c
@@ -211,6 +211,10 @@ void IMB_filterN(ImBuf *out, ImBuf *in)
rowlen = in->x;
+ /* generate 32-bit version for float images if it is not already generated by other space */
+ if (in->rect == NULL)
+ IMB_rect_from_float(in);
+
for (y = 0; y < in->y; y++) {
/* setup rows */
row2 = (char *)(in->rect + y * rowlen);
@@ -222,24 +226,24 @@ void IMB_filterN(ImBuf *out, ImBuf *in)
for (x = 0; x < rowlen; x++) {
if (x == 0) {
r11 = row1;
- r21 = row1;
- r31 = row1;
+ r21 = row2;
+ r31 = row3;
}
else {
r11 = row1 - 4;
- r21 = row1 - 4;
- r31 = row1 - 4;
+ r21 = row2 - 4;
+ r31 = row3 - 4;
}
if (x == rowlen - 1) {
r13 = row1;
- r23 = row1;
- r33 = row1;
+ r23 = row2;
+ r33 = row3;
}
else {
r13 = row1 + 4;
- r23 = row1 + 4;
- r33 = row1 + 4;
+ r23 = row2 + 4;
+ r33 = row3 + 4;
}
cp[0] = (r11[0] + 2 * row1[0] + r13[0] + 2 * r21[0] + 4 * row2[0] + 2 * r23[0] + r31[0] + 2 * row3[0] + r33[0]) >> 4;
diff --git a/source/blender/imbuf/intern/imageprocess.c b/source/blender/imbuf/intern/imageprocess.c
index 40f6f36e06b..863b8424cc2 100644
--- a/source/blender/imbuf/intern/imageprocess.c
+++ b/source/blender/imbuf/intern/imageprocess.c
@@ -36,15 +36,13 @@
*
*/
-/* imageprocess.c MIXED MODEL
- *
- * april 95
- *
- */
-
#include <stdlib.h>
+#include "MEM_guardedalloc.h"
+
#include "BLI_utildefines.h"
+#include "BLI_threads.h"
+#include "BLI_listbase.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
@@ -94,7 +92,7 @@ static void pixel_from_buffer(struct ImBuf *ibuf, unsigned char **outI, float **
*outI = (unsigned char *)ibuf->rect + offset;
if (ibuf->rect_float)
- *outF = (float *)ibuf->rect_float + offset;
+ *outF = ibuf->rect_float + offset;
}
/**************************************************************************
@@ -127,15 +125,16 @@ static float P(float k)
}
#endif
-void bicubic_interpolation_color(struct ImBuf *in, unsigned char *outI, float *outF, float u, float v)
+void bicubic_interpolation_color(struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v)
{
int i, j, n, m, x1, y1;
unsigned char *dataI;
float a, b, w, wx, wy[4], outR, outG, outB, outA, *dataF;
/* sample area entirely outside image? */
- if (ceil(u) < 0 || floor(u) > in->x - 1 || ceil(v) < 0 || floor(v) > in->y - 1)
+ if (ceil(u) < 0 || floor(u) > in->x - 1 || ceil(v) < 0 || floor(v) > in->y - 1) {
return;
+ }
/* ImBuf in must have a valid rect or rect_float, assume this is already checked */
@@ -228,11 +227,12 @@ void bicubic_interpolation_color(struct ImBuf *in, unsigned char *outI, float *o
void bicubic_interpolation(ImBuf *in, ImBuf *out, float u, float v, int xout, int yout)
{
-
unsigned char *outI = NULL;
float *outF = NULL;
- if (in == NULL || (in->rect == NULL && in->rect_float == NULL)) return;
+ if (in == NULL || (in->rect == NULL && in->rect_float == NULL)) {
+ return;
+ }
pixel_from_buffer(out, &outI, &outF, xout, yout); /* gcc warns these could be uninitialized, but its ok */
@@ -241,7 +241,7 @@ void bicubic_interpolation(ImBuf *in, ImBuf *out, float u, float v, int xout, in
/* function assumes out to be zero'ed, only does RGBA */
/* BILINEAR INTERPOLATION */
-void bilinear_interpolation_color(struct ImBuf *in, unsigned char *outI, float *outF, float u, float v)
+void bilinear_interpolation_color(struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v)
{
float *row1, *row2, *row3, *row4, a, b;
unsigned char *row1I, *row2I, *row3I, *row4I;
@@ -258,22 +258,24 @@ void bilinear_interpolation_color(struct ImBuf *in, unsigned char *outI, float *
y1 = (int)floor(v);
y2 = (int)ceil(v);
- // sample area entirely outside image?
- if (x2 < 0 || x1 > in->x - 1 || y2 < 0 || y1 > in->y - 1) return;
+ /* sample area entirely outside image? */
+ if (x2 < 0 || x1 > in->x - 1 || y2 < 0 || y1 > in->y - 1) {
+ return;
+ }
if (outF) {
- // sample including outside of edges of image
+ /* sample including outside of edges of image */
if (x1 < 0 || y1 < 0) row1 = empty;
- else row1 = (float *)in->rect_float + in->x * y1 * 4 + 4 * x1;
+ else row1 = in->rect_float + in->x * y1 * 4 + 4 * x1;
if (x1 < 0 || y2 > in->y - 1) row2 = empty;
- else row2 = (float *)in->rect_float + in->x * y2 * 4 + 4 * x1;
+ else row2 = in->rect_float + in->x * y2 * 4 + 4 * x1;
if (x2 > in->x - 1 || y1 < 0) row3 = empty;
- else row3 = (float *)in->rect_float + in->x * y1 * 4 + 4 * x2;
+ else row3 = in->rect_float + in->x * y1 * 4 + 4 * x2;
if (x2 > in->x - 1 || y2 > in->y - 1) row4 = empty;
- else row4 = (float *)in->rect_float + in->x * y2 * 4 + 4 * x2;
+ else row4 = in->rect_float + in->x * y2 * 4 + 4 * x2;
a = u - floorf(u);
b = v - floorf(v);
@@ -285,7 +287,7 @@ void bilinear_interpolation_color(struct ImBuf *in, unsigned char *outI, float *
outF[3] = ma_mb * row1[3] + a_mb * row3[3] + ma_b * row2[3] + a_b * row4[3];
}
if (outI) {
- // sample including outside of edges of image
+ /* sample including outside of edges of image */
if (x1 < 0 || y1 < 0) row1I = emptyI;
else row1I = (unsigned char *)in->rect + in->x * y1 * 4 + 4 * x1;
@@ -317,7 +319,7 @@ void bilinear_interpolation_color(struct ImBuf *in, unsigned char *outI, float *
/* Note about wrapping, the u/v still needs to be within the image bounds,
* just the interpolation is wrapped.
* This the same as bilinear_interpolation_color except it wraps rather than using empty and emptyI */
-void bilinear_interpolation_color_wrap(struct ImBuf *in, unsigned char *outI, float *outF, float u, float v)
+void bilinear_interpolation_color_wrap(struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v)
{
float *row1, *row2, *row3, *row4, a, b;
unsigned char *row1I, *row2I, *row3I, *row4I;
@@ -332,22 +334,24 @@ void bilinear_interpolation_color_wrap(struct ImBuf *in, unsigned char *outI, fl
y1 = (int)floor(v);
y2 = (int)ceil(v);
- // sample area entirely outside image?
- if (x2 < 0 || x1 > in->x - 1 || y2 < 0 || y1 > in->y - 1) return;
-
+ /* sample area entirely outside image? */
+ if (x2 < 0 || x1 > in->x - 1 || y2 < 0 || y1 > in->y - 1) {
+ return;
+ }
+
/* wrap interpolation pixels - main difference from bilinear_interpolation_color */
if (x1 < 0) x1 = in->x + x1;
if (y1 < 0) y1 = in->y + y1;
-
+
if (x2 >= in->x) x2 = x2 - in->x;
if (y2 >= in->y) y2 = y2 - in->y;
if (outF) {
- // sample including outside of edges of image
- row1 = (float *)in->rect_float + in->x * y1 * 4 + 4 * x1;
- row2 = (float *)in->rect_float + in->x * y2 * 4 + 4 * x1;
- row3 = (float *)in->rect_float + in->x * y1 * 4 + 4 * x2;
- row4 = (float *)in->rect_float + in->x * y2 * 4 + 4 * x2;
+ /* sample including outside of edges of image */
+ row1 = in->rect_float + in->x * y1 * 4 + 4 * x1;
+ row2 = in->rect_float + in->x * y2 * 4 + 4 * x1;
+ row3 = in->rect_float + in->x * y1 * 4 + 4 * x2;
+ row4 = in->rect_float + in->x * y2 * 4 + 4 * x2;
a = u - floorf(u);
b = v - floorf(v);
@@ -359,7 +363,7 @@ void bilinear_interpolation_color_wrap(struct ImBuf *in, unsigned char *outI, fl
outF[3] = ma_mb * row1[3] + a_mb * row3[3] + ma_b * row2[3] + a_b * row4[3];
}
if (outI) {
- // sample including outside of edges of image
+ /* sample including outside of edges of image */
row1I = (unsigned char *)in->rect + in->x * y1 * 4 + 4 * x1;
row2I = (unsigned char *)in->rect + in->x * y2 * 4 + 4 * x1;
row3I = (unsigned char *)in->rect + in->x * y1 * 4 + 4 * x2;
@@ -380,11 +384,12 @@ void bilinear_interpolation_color_wrap(struct ImBuf *in, unsigned char *outI, fl
void bilinear_interpolation(ImBuf *in, ImBuf *out, float u, float v, int xout, int yout)
{
-
unsigned char *outI = NULL;
float *outF = NULL;
- if (in == NULL || (in->rect == NULL && in->rect_float == NULL)) return;
+ if (in == NULL || (in->rect == NULL && in->rect_float == NULL)) {
+ return;
+ }
pixel_from_buffer(out, &outI, &outF, xout, yout); /* gcc warns these could be uninitialized, but its ok */
@@ -393,7 +398,7 @@ void bilinear_interpolation(ImBuf *in, ImBuf *out, float u, float v, int xout, i
/* function assumes out to be zero'ed, only does RGBA */
/* NEAREST INTERPOLATION */
-void neareast_interpolation_color(struct ImBuf *in, unsigned char *outI, float *outF, float u, float v)
+void neareast_interpolation_color(struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v)
{
float *dataF;
unsigned char *dataI;
@@ -404,10 +409,12 @@ void neareast_interpolation_color(struct ImBuf *in, unsigned char *outI, float *
x1 = (int)(u);
y1 = (int)(v);
- // sample area entirely outside image?
- if (x1 < 0 || x1 > in->x - 1 || y1 < 0 || y1 > in->y - 1) return;
-
- // sample including outside of edges of image
+ /* sample area entirely outside image? */
+ if (x1 < 0 || x1 > in->x - 1 || y1 < 0 || y1 > in->y - 1) {
+ return;
+ }
+
+ /* sample including outside of edges of image */
if (x1 < 0 || y1 < 0) {
if (outI) {
outI[0] = 0;
@@ -442,13 +449,60 @@ void neareast_interpolation_color(struct ImBuf *in, unsigned char *outI, float *
void neareast_interpolation(ImBuf *in, ImBuf *out, float x, float y, int xout, int yout)
{
-
unsigned char *outI = NULL;
float *outF = NULL;
- if (in == NULL || (in->rect == NULL && in->rect_float == NULL)) return;
+ if (in == NULL || (in->rect == NULL && in->rect_float == NULL)) {
+ return;
+ }
pixel_from_buffer(out, &outI, &outF, xout, yout); /* gcc warns these could be uninitialized, but its ok */
neareast_interpolation_color(in, outI, outF, x, y);
}
+
+/*********************** Threaded image processing *************************/
+
+void IMB_processor_apply_threaded(int buffer_lines, int handle_size, void *init_customdata,
+ void (init_handle) (void *handle, int start_line, int tot_line,
+ void *customdata),
+ void *(do_thread) (void *))
+{
+ void *handles;
+ ListBase threads;
+
+ int i, tot_thread = BLI_system_thread_count();
+ int start_line, tot_line;
+
+ handles = MEM_callocN(handle_size * tot_thread, "processor apply threaded handles");
+
+ if (tot_thread > 1)
+ BLI_init_threads(&threads, do_thread, tot_thread);
+
+ start_line = 0;
+ tot_line = ((float)(buffer_lines / tot_thread)) + 0.5f;
+
+ for (i = 0; i < tot_thread; i++) {
+ int cur_tot_line;
+ void *handle = ((char *) handles) + handle_size * i;
+
+ if (i < tot_thread - 1)
+ cur_tot_line = tot_line;
+ else
+ cur_tot_line = buffer_lines - start_line;
+
+ init_handle(handle, start_line, cur_tot_line, init_customdata);
+
+ if (tot_thread > 1)
+ BLI_insert_thread(&threads, handle);
+
+ start_line += tot_line;
+ }
+
+ if (tot_thread > 1)
+ BLI_end_threads(&threads);
+ else
+ do_thread(handles);
+
+ MEM_freeN(handles);
+}
diff --git a/source/blender/imbuf/intern/imbuf_cocoa.m b/source/blender/imbuf/intern/imbuf_cocoa.m
deleted file mode 100644
index ebfee7a1a30..00000000000
--- a/source/blender/imbuf/intern/imbuf_cocoa.m
+++ /dev/null
@@ -1,385 +0,0 @@
-/*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Contributor(s): Damien Plisson 10/2009
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/** \file blender/imbuf/intern/imbuf_coca.m
- * \ingroup imbuf
- *
- * Provides image file loading and saving for Blender, via Cocoa.
- */
-
-#include <stdint.h>
-#include <string.h>
-#import <Cocoa/Cocoa.h>
-
-#include "imbuf.h"
-
-#include "IMB_cocoa.h"
-
-#include "BKE_global.h"
-#include "BKE_colortools.h"
-
-#include "IMB_imbuf_types.h"
-#include "IMB_imbuf.h"
-
-#include "IMB_allocimbuf.h"
-
-
-
-#pragma mark load/save functions
-
-/**
- * Loads an image from the supplied buffer
- *
- * Loads any Core Graphics supported type
- * Currently is : TIFF, BMP, JPEG, GIF, PNG, DIB, ICO, and various RAW formats
- *
- * \param mem: Memory containing the bitmap image
- * \param size: Size of the mem buffer.
- * \param flags: If flags has IB_test set then the file is not actually loaded,
- * but all other operations take place.
- *
- * \return: A newly allocated ImBuf structure if successful, otherwise NULL.
- */
-struct ImBuf *imb_cocoaLoadImage(unsigned char *mem, int size, int flags)
-{
- struct ImBuf *ibuf = NULL;
- NSSize bitmapSize;
- uchar *rasterRGB = NULL;
- uchar *rasterRGBA = NULL;
- uchar *toIBuf = NULL;
- int x, y, to_i, from_i;
- NSData *data;
- NSBitmapImageRep *bitmapImage;
- NSBitmapImageRep *blBitmapFormatImageRGB,*blBitmapFormatImageRGBA;
- NSAutoreleasePool *pool;
-
- pool = [[NSAutoreleasePool alloc] init];
-
- data = [NSData dataWithBytes:mem length:size];
- bitmapImage = [[NSBitmapImageRep alloc] initWithData:data];
-
- if (!bitmapImage) {
- fprintf(stderr, "imb_cocoaLoadImage: error loading image\n");
- [pool drain];
- return NULL;
- }
-
- bitmapSize.width = [bitmapImage pixelsWide];
- bitmapSize.height = [bitmapImage pixelsHigh];
-
- /* Tell cocoa image resolution is same as current system one */
- [bitmapImage setSize:bitmapSize];
-
- /* allocate the image buffer */
- ibuf = IMB_allocImBuf(bitmapSize.width, bitmapSize.height, 32/*RGBA*/, 0);
- if (!ibuf) {
- fprintf(stderr,
- "imb_cocoaLoadImage: could not allocate memory for the " \
- "image.\n");
- [bitmapImage release];
- [pool drain];
- return NULL;
- }
-
- /* read in the image data */
- if (!(flags & IB_test)) {
-
- /* allocate memory for the ibuf->rect */
- imb_addrectImBuf(ibuf);
-
- /* Convert the image in a RGBA 32bit format */
- /* As Core Graphics does not support contextes with non premutliplied alpha,
- we need to get alpha key values in a separate batch */
-
- /* First get RGB values w/o Alpha to avoid pre-multiplication, 32bit but last byte is unused */
- blBitmapFormatImageRGB = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL
- pixelsWide:bitmapSize.width
- pixelsHigh:bitmapSize.height
- bitsPerSample:8 samplesPerPixel:3 hasAlpha:NO isPlanar:NO
- colorSpaceName:NSCalibratedRGBColorSpace
- bitmapFormat:0
- bytesPerRow:4*bitmapSize.width
- bitsPerPixel:32/*RGB format padded to 32bits*/];
-
- [NSGraphicsContext saveGraphicsState];
- [NSGraphicsContext setCurrentContext:[NSGraphicsContext graphicsContextWithBitmapImageRep:blBitmapFormatImageRGB]];
- [bitmapImage draw];
- [NSGraphicsContext restoreGraphicsState];
-
- rasterRGB = (uchar*)[blBitmapFormatImageRGB bitmapData];
- if (rasterRGB == NULL) {
- [bitmapImage release];
- [blBitmapFormatImageRGB release];
- [pool drain];
- return NULL;
- }
-
- /* Then get Alpha values by getting the RGBA image (that is premultiplied btw) */
- blBitmapFormatImageRGBA = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL
- pixelsWide:bitmapSize.width
- pixelsHigh:bitmapSize.height
- bitsPerSample:8 samplesPerPixel:4 hasAlpha:YES isPlanar:NO
- colorSpaceName:NSCalibratedRGBColorSpace
- bitmapFormat:0
- bytesPerRow:4*bitmapSize.width
- bitsPerPixel:32/* RGBA */];
-
- [NSGraphicsContext saveGraphicsState];
- [NSGraphicsContext setCurrentContext:[NSGraphicsContext graphicsContextWithBitmapImageRep:blBitmapFormatImageRGBA]];
- [bitmapImage draw];
- [NSGraphicsContext restoreGraphicsState];
-
- rasterRGBA = (uchar*)[blBitmapFormatImageRGBA bitmapData];
- if (rasterRGBA == NULL) {
- [bitmapImage release];
- [blBitmapFormatImageRGB release];
- [blBitmapFormatImageRGBA release];
- [pool drain];
- return NULL;
- }
-
- /*Copy the image to ibuf, flipping it vertically*/
- toIBuf = (uchar*)ibuf->rect;
- for (x = 0; x < bitmapSize.width; x++) {
- for (y = 0; y < bitmapSize.height; y++) {
- to_i = (bitmapSize.height-y-1)*bitmapSize.width + x;
- from_i = y*bitmapSize.width + x;
-
- toIBuf[4*to_i] = rasterRGB[4*from_i]; /* R */
- toIBuf[4*to_i+1] = rasterRGB[4*from_i+1]; /* G */
- toIBuf[4*to_i+2] = rasterRGB[4*from_i+2]; /* B */
- toIBuf[4*to_i+3] = rasterRGBA[4*from_i+3]; /* A */
- }
- }
-
- [blBitmapFormatImageRGB release];
- [blBitmapFormatImageRGBA release];
- }
-
- /* release the cocoa objects */
- [bitmapImage release];
- [pool drain];
-
- if (ENDIAN_ORDER == B_ENDIAN) IMB_convert_rgba_to_abgr(ibuf);
-
- ibuf->ftype = TIF;
- ibuf->profile = IB_PROFILE_SRGB;
-
- /* return successfully */
- return (ibuf);
-}
-
-/**
- * Saves an image to a file.
- *
- * ImBuf structures with 1, 3 or 4 bytes per pixel (GRAY, RGB, RGBA
- * respectively) are accepted, and interpreted correctly.
- *
- * Accepted formats: TIFF, GIF, BMP, PNG, JPEG, JPEG2000
- *
- * \param ibuf: Image buffer.
- * \param name: Name of the image file to create.
- * \param flags: Currently largely ignored.
- *
- * \return: 1 if the function is successful, 0 on failure.
- */
-
-#define FTOUSHORT(val) ((val >= 1.0f-0.5f/65535)? 65535: (val <= 0.0f)? 0: (unsigned short)(val*65535.0f + 0.5f))
-
-short imb_cocoaSaveImage(struct ImBuf *ibuf, char *name, int flags)
-{
- uint16_t samplesperpixel, bitspersample;
- unsigned char *from = NULL, *to = NULL;
- unsigned short *to16 = NULL;
- float *fromf = NULL;
- int x, y, from_i, to_i, i;
- int success;
- BOOL hasAlpha;
- NSString* colorSpace;
- NSBitmapImageRep *blBitmapFormatImage;
- NSData *dataToWrite;
- NSDictionary *imageProperties;
-
- NSAutoreleasePool *pool;
-
- if (!ibuf) return FALSE;
- if (!name) return FALSE;
-
- /* check for a valid number of bytes per pixel. Like the PNG writer,
- * the TIFF writer supports 1, 3 or 4 bytes per pixel, corresponding
- * to gray, RGB, RGBA respectively. */
- samplesperpixel = (uint16_t)((ibuf->planes + 7) >> 3);
- switch (samplesperpixel) {
- case 4: /*RGBA type*/
- hasAlpha = YES;
- colorSpace = NSCalibratedRGBColorSpace;
- break;
- case 3: /*RGB type*/
- hasAlpha = NO;
- colorSpace = NSCalibratedRGBColorSpace;
- break;
- case 1:
- hasAlpha = NO;
- colorSpace = NSCalibratedWhiteColorSpace;
- break;
- default:
- fprintf(stderr,
- "imb_cocoaSaveImage: unsupported number of bytes per "
- "pixel: %d\n", samplesperpixel);
- return (0);
- }
-
- if((ibuf->ftype & TIF_16BIT) && ibuf->rect_float)
- bitspersample = 16;
- else
- bitspersample = 8;
-
- pool = [[NSAutoreleasePool alloc] init];
-
- /* Create bitmap image rep in blender format */
- blBitmapFormatImage = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL
- pixelsWide:ibuf->x
- pixelsHigh:ibuf->y
- bitsPerSample:bitspersample samplesPerPixel:samplesperpixel hasAlpha:hasAlpha isPlanar:NO
- colorSpaceName:colorSpace
- bitmapFormat:NSAlphaNonpremultipliedBitmapFormat
- bytesPerRow:(ibuf->x*bitspersample*samplesperpixel/8)
- bitsPerPixel:(bitspersample*samplesperpixel)];
- if (!blBitmapFormatImage) {
- [pool drain];
- return FALSE;
- }
-
- /* setup pointers */
- if(bitspersample == 16) {
- fromf = ibuf->rect_float;
- to16 = (unsigned short*)[blBitmapFormatImage bitmapData];
- }
- else {
- from = (unsigned char*)ibuf->rect;
- to = (unsigned char*)[blBitmapFormatImage bitmapData];
- }
-
- /* copy pixel data. While copying, we flip the image vertically. */
- for (x = 0; x < ibuf->x; x++) {
- for (y = 0; y < ibuf->y; y++) {
- from_i = 4*(y*ibuf->x+x);
- to_i = samplesperpixel*((ibuf->y-y-1)*ibuf->x+x);
-
- if(bitspersample == 16) {
- if (ibuf->profile == IB_PROFILE_SRGB) {
- switch (samplesperpixel) {
- case 4 /*RGBA*/:
- to16[to_i] = FTOUSHORT(linearrgb_to_srgb(fromf[from_i]));
- to16[to_i+1] = FTOUSHORT(linearrgb_to_srgb(fromf[from_i+1]));
- to16[to_i+2] = FTOUSHORT(linearrgb_to_srgb(fromf[from_i+2]));
- to16[to_i+3] = FTOUSHORT(fromf[from_i+3]);
- break;
- case 3 /*RGB*/:
- to16[to_i] = FTOUSHORT(linearrgb_to_srgb(fromf[from_i]));
- to16[to_i+1] = FTOUSHORT(linearrgb_to_srgb(fromf[from_i+1]));
- to16[to_i+2] = FTOUSHORT(linearrgb_to_srgb(fromf[from_i+2]));
- break;
- case 1 /*BW*/:
- to16[to_i] = FTOUSHORT(linearrgb_to_srgb(fromf[from_i]));
- break;
- }
- }
- else {
- for (i = 0; i < samplesperpixel; i++, to_i++, from_i++)
- to16[to_i] = FTOUSHORT(fromf[from_i]);
- }
- }
- else {
- /* 8bits per sample*/
- for (i = 0; i < samplesperpixel; i++, to_i++, from_i++)
- to[to_i] = from[from_i];
- }
- }
- }
-
- /* generate file data */
- if (IS_tiff(ibuf)) {
- dataToWrite = [blBitmapFormatImage TIFFRepresentationUsingCompression:NSTIFFCompressionLZW factor:1.0];
- }
- else if (IS_png(ibuf)) {
- imageProperties = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:false], NSImageInterlaced,
- nil];
- dataToWrite = [blBitmapFormatImage representationUsingType:NSPNGFileType properties:imageProperties];
- }
- else if (IS_bmp(ibuf)) {
- dataToWrite = [blBitmapFormatImage representationUsingType:NSBMPFileType properties:nil];
- }
- else {/* JPEG by default */
- int quality;
-
- quality = ibuf->ftype & 0xff;
- if (quality <= 0) quality = 90; /* Standard quality if wrong supplied*/
- if (quality > 100) quality = 100;
-
- imageProperties = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithFloat:quality], NSImageCompressionFactor,
- [NSNumber numberWithBool:true], NSImageProgressive,
- nil];
- dataToWrite = [blBitmapFormatImage representationUsingType:NSJPEGFileType properties:imageProperties];
- }
-
- /* Write the file */
- success = [dataToWrite writeToFile:[NSString stringWithCString:name encoding:NSISOLatin1StringEncoding]
- atomically:YES];
-
- [blBitmapFormatImage release];
- [pool drain];
-
- return success;
-}
-
-#pragma mark format checking functions
-
-/* Currently, only tiff format is handled, so need to include here function that was previously in tiff.c */
-
-/**
- * Checks whether a given memory buffer contains a TIFF file.
- *
- * FIXME: Possible memory leak if mem is less than IMB_TIFF_NCB bytes long.
- * However, changing this will require up-stream modifications.
- *
- * This method uses the format identifiers from:
- * http://www.faqs.org/faqs/graphics/fileformats-faq/part4/section-9.html
- * The first four bytes of big-endian and little-endian TIFF files
- * respectively are (hex):
- * 4d 4d 00 2a
- * 49 49 2a 00
- * Note that TIFF files on *any* platform can be either big- or little-endian;
- * it's not platform-specific.
- *
- * AFAICT, libtiff doesn't provide a method to do this automatically, and
- * hence my manual comparison. - Jonathan Merritt (lancelet) 4th Sept 2005.
- */
-#define IMB_TIFF_NCB 4 /* number of comparison bytes used */
-int imb_is_a_tiff(void *mem)
-{
- char big_endian[IMB_TIFF_NCB] = { 0x4d, 0x4d, 0x00, 0x2a };
- char lil_endian[IMB_TIFF_NCB] = { 0x49, 0x49, 0x2a, 0x00 };
-
- return ( (memcmp(big_endian, mem, IMB_TIFF_NCB) == 0) ||
- (memcmp(lil_endian, mem, IMB_TIFF_NCB) == 0) );
-}
diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c
index 8b2e27ae1f3..593e08062fe 100644
--- a/source/blender/imbuf/intern/indexer.c
+++ b/source/blender/imbuf/intern/indexer.c
@@ -22,26 +22,33 @@
* ***** END GPL LICENSE BLOCK *****
*/
-#include "IMB_indexer.h"
-#include "IMB_anim.h"
-#include "AVI_avi.h"
-#include "imbuf.h"
+#include <stdlib.h>
+
#include "MEM_guardedalloc.h"
#include "BLI_utildefines.h"
-#include "BLI_blenlib.h"
+#include "BLI_endian_switch.h"
+#include "BLI_path_util.h"
+#include "BLI_string.h"
+#include "BLI_path_util.h"
+#include "BLI_fileops.h"
#include "BLI_math_base.h"
+#include "IMB_indexer.h"
+#include "IMB_anim.h"
+#include "imbuf.h"
+
#include "MEM_guardedalloc.h"
#include "DNA_userdef_types.h"
#include "BKE_global.h"
-#include <stdlib.h>
-
-#ifdef WITH_FFMPEG
-#include "ffmpeg_compat.h"
+#ifdef WITH_AVI
+# include "AVI_avi.h"
+#endif
-#endif //WITH_FFMPEG
+#ifdef WITH_FFMPEG
+# include "ffmpeg_compat.h"
+#endif
static char magic[] = "BlenMIdx";
@@ -181,12 +188,12 @@ struct anim_index *IMB_indexer_open(const char *name)
fseek(fp, 0, SEEK_END);
idx->num_entries = (ftell(fp) - 12) /
- (sizeof(int) + // framepos
- sizeof(unsigned long long) + // seek_pos
- sizeof(unsigned long long) + // seek_pos_dts
- sizeof(unsigned long long) // pts
+ (sizeof(int) + /* framepos */
+ sizeof(unsigned long long) + /* seek_pos */
+ sizeof(unsigned long long) + /* seek_pos_dts */
+ sizeof(unsigned long long) /* pts */
);
-
+
fseek(fp, 12, SEEK_SET);
idx->entries = MEM_callocN(sizeof(struct anim_index_entry) *
@@ -205,10 +212,10 @@ struct anim_index *IMB_indexer_open(const char *name)
if (((ENDIAN_ORDER == B_ENDIAN) != (header[8] == 'V'))) {
for (i = 0; i < idx->num_entries; i++) {
- SWITCH_INT(idx->entries[i].frameno);
- SWITCH_INT64(idx->entries[i].seek_pos);
- SWITCH_INT64(idx->entries[i].seek_pos_dts);
- SWITCH_INT64(idx->entries[i].pts);
+ BLI_endian_switch_int32(&idx->entries[i].frameno);
+ BLI_endian_switch_int64((int64_t *)&idx->entries[i].seek_pos);
+ BLI_endian_switch_int64((int64_t *)&idx->entries[i].seek_pos_dts);
+ BLI_endian_switch_int64((int64_t *)&idx->entries[i].pts);
}
}
@@ -218,7 +225,7 @@ struct anim_index *IMB_indexer_open(const char *name)
}
unsigned long long IMB_indexer_get_seek_pos(
- struct anim_index *idx, int frame_index)
+ struct anim_index *idx, int frame_index)
{
if (frame_index < 0) {
frame_index = 0;
@@ -230,7 +237,7 @@ unsigned long long IMB_indexer_get_seek_pos(
}
unsigned long long IMB_indexer_get_seek_pos_dts(
- struct anim_index *idx, int frame_index)
+ struct anim_index *idx, int frame_index)
{
if (frame_index < 0) {
frame_index = 0;
@@ -472,7 +479,7 @@ static struct proxy_output_ctx *alloc_proxy_output_ffmpeg(
char fname[FILE_MAX];
int ffmpeg_quality;
- // JPEG requires this
+ /* JPEG requires this */
width = round_up(width, 8);
height = round_up(height, 8);
@@ -578,7 +585,7 @@ static struct proxy_output_ctx *alloc_proxy_output_ffmpeg(
}
static int add_to_proxy_output_ffmpeg(
- struct proxy_output_ctx *ctx, AVFrame *frame)
+ struct proxy_output_ctx *ctx, AVFrame *frame)
{
int outsize = 0;
@@ -717,6 +724,17 @@ typedef struct FFmpegIndexBuilderContext {
IMB_Timecode_Type tcs_in_use;
IMB_Proxy_Size proxy_sizes_in_use;
+
+ unsigned long long seek_pos;
+ unsigned long long last_seek_pos;
+ unsigned long long seek_pos_dts;
+ unsigned long long seek_pos_pts;
+ unsigned long long last_seek_pos_dts;
+ unsigned long long start_pts;
+ double frame_rate;
+ double pts_time_base;
+ int frameno, frameno_gapless;
+ int start_pts_set;
} FFmpegIndexBuilderContext;
static IndexBuildContext *index_ffmpeg_create_context(struct anim *anim, IMB_Timecode_Type tcs_in_use,
@@ -833,20 +851,63 @@ static void index_rebuild_ffmpeg_finish(FFmpegIndexBuilderContext *context, int
MEM_freeN(context);
}
+static void index_rebuild_ffmpeg_proc_decoded_frame(
+ FFmpegIndexBuilderContext *context,
+ AVPacket * curr_packet,
+ AVFrame *in_frame)
+{
+ int i;
+ unsigned long long s_pos = context->seek_pos;
+ unsigned long long s_dts = context->seek_pos_dts;
+ unsigned long long pts = av_get_pts_from_frame(context->iFormatCtx, in_frame);
+
+ for (i = 0; i < context->num_proxy_sizes; i++) {
+ add_to_proxy_output_ffmpeg(context->proxy_ctx[i], in_frame);
+ }
+
+ if (!context->start_pts_set) {
+ context->start_pts = pts;
+ context->start_pts_set = TRUE;
+ }
+
+ context->frameno = floor((pts - context->start_pts)
+ * context->pts_time_base
+ * context->frame_rate + 0.5f);
+
+ /* decoding starts *always* on I-Frames,
+ * so: P-Frames won't work, even if all the
+ * information is in place, when we seek
+ * to the I-Frame presented *after* the P-Frame,
+ * but located before the P-Frame within
+ * the stream */
+
+ if (pts < context->seek_pos_pts) {
+ s_pos = context->last_seek_pos;
+ s_dts = context->last_seek_pos_dts;
+ }
+
+ for (i = 0; i < context->num_indexers; i++) {
+ if (context->tcs_in_use & tc_types[i]) {
+ int tc_frameno = context->frameno;
+
+ if (tc_types[i] == IMB_TC_RECORD_RUN_NO_GAPS)
+ tc_frameno = context->frameno_gapless;
+
+ IMB_index_builder_proc_frame(
+ context->indexer[i],
+ curr_packet->data,
+ curr_packet->size,
+ tc_frameno,
+ s_pos, s_dts, pts);
+ }
+ }
+
+ context->frameno_gapless++;
+}
+
static int index_rebuild_ffmpeg(FFmpegIndexBuilderContext *context,
short *stop, short *do_update, float *progress)
{
- int i;
- unsigned long long seek_pos = 0;
- unsigned long long last_seek_pos = 0;
- unsigned long long seek_pos_dts = 0;
- unsigned long long seek_pos_pts = 0;
- unsigned long long last_seek_pos_dts = 0;
- unsigned long long start_pts = 0;
- double frame_rate;
- double pts_time_base;
- int frameno = 0, frameno_gapless = 0;
- int start_pts_set = FALSE;
AVFrame *in_frame = 0;
AVPacket next_packet;
uint64_t stream_size;
@@ -855,8 +916,8 @@ static int index_rebuild_ffmpeg(FFmpegIndexBuilderContext *context,
stream_size = avio_size(context->iFormatCtx->pb);
- frame_rate = av_q2d(context->iStream->r_frame_rate);
- pts_time_base = av_q2d(context->iStream->time_base);
+ context->frame_rate = av_q2d(context->iStream->r_frame_rate);
+ context->pts_time_base = av_q2d(context->iStream->time_base);
while (av_read_frame(context->iFormatCtx, &next_packet) >= 0) {
int frame_finished = 0;
@@ -875,11 +936,11 @@ static int index_rebuild_ffmpeg(FFmpegIndexBuilderContext *context,
if (next_packet.stream_index == context->videoStream) {
if (next_packet.flags & AV_PKT_FLAG_KEY) {
- last_seek_pos = seek_pos;
- last_seek_pos_dts = seek_pos_dts;
- seek_pos = next_packet.pos;
- seek_pos_dts = next_packet.dts;
- seek_pos_pts = next_packet.pts;
+ context->last_seek_pos = context->seek_pos;
+ context->last_seek_pos_dts = context->seek_pos_dts;
+ context->seek_pos = next_packet.pos;
+ context->seek_pos_dts = next_packet.dts;
+ context->seek_pos_pts = next_packet.pts;
}
avcodec_decode_video2(
@@ -888,54 +949,34 @@ static int index_rebuild_ffmpeg(FFmpegIndexBuilderContext *context,
}
if (frame_finished) {
- unsigned long long s_pos = seek_pos;
- unsigned long long s_dts = seek_pos_dts;
- unsigned long long pts = av_get_pts_from_frame(context->iFormatCtx, in_frame);
-
- for (i = 0; i < context->num_proxy_sizes; i++) {
- add_to_proxy_output_ffmpeg(
- context->proxy_ctx[i], in_frame);
- }
-
- if (!start_pts_set) {
- start_pts = pts;
- start_pts_set = TRUE;
- }
-
- frameno = floor((pts - start_pts) *
- pts_time_base * frame_rate + 0.5f);
+ index_rebuild_ffmpeg_proc_decoded_frame(
+ context, &next_packet, in_frame);
+ }
+ av_free_packet(&next_packet);
+ }
- /* decoding starts *always* on I-Frames,
- * so: P-Frames won't work, even if all the
- * information is in place, when we seek
- * to the I-Frame presented *after* the P-Frame,
- * but located before the P-Frame within
- * the stream */
+ /* process pictures still stuck in decoder engine after EOF
+ * according to ffmpeg docs using 0-size packets.
+ *
+ * At least, if we haven't already stopped... */
+ if (!*stop) {
+ int frame_finished;
- if (pts < seek_pos_pts) {
- s_pos = last_seek_pos;
- s_dts = last_seek_pos_dts;
- }
+ next_packet.size = 0;
+ next_packet.data = 0;
- for (i = 0; i < context->num_indexers; i++) {
- if (context->tcs_in_use & tc_types[i]) {
- int tc_frameno = frameno;
+ do {
+ frame_finished = 0;
- if (tc_types[i] == IMB_TC_RECORD_RUN_NO_GAPS)
- tc_frameno = frameno_gapless;
+ avcodec_decode_video2(
+ context->iCodecCtx, in_frame, &frame_finished,
+ &next_packet);
- IMB_index_builder_proc_frame(
- context->indexer[i],
- next_packet.data,
- next_packet.size,
- tc_frameno,
- s_pos, s_dts, pts);
- }
+ if (frame_finished) {
+ index_rebuild_ffmpeg_proc_decoded_frame(
+ context, &next_packet, in_frame);
}
-
- frameno_gapless++;
- }
- av_free_packet(&next_packet);
+ } while (frame_finished);
}
av_free(in_frame);
@@ -949,6 +990,7 @@ static int index_rebuild_ffmpeg(FFmpegIndexBuilderContext *context,
* - internal AVI (fallback) rebuilder
* ---------------------------------------------------------------------- */
+#ifdef WITH_AVI
typedef struct FallbackIndexBuilderContext {
int anim_type;
@@ -1109,6 +1151,8 @@ static void index_rebuild_fallback(FallbackIndexBuilderContext *context,
}
}
+#endif /* WITH_AVI */
+
/* ----------------------------------------------------------------------
* - public API
* ---------------------------------------------------------------------- */
@@ -1124,15 +1168,19 @@ IndexBuildContext *IMB_anim_index_rebuild_context(struct anim *anim, IMB_Timecod
context = index_ffmpeg_create_context(anim, tcs_in_use, proxy_sizes_in_use, quality);
break;
#endif
+#ifdef WITH_AVI
default:
context = index_fallback_create_context(anim, tcs_in_use, proxy_sizes_in_use, quality);
break;
+#endif
}
if (context)
context->anim_type = anim->curtype;
return context;
+
+ (void)tcs_in_use, (void)proxy_sizes_in_use, (void)quality;
}
void IMB_anim_index_rebuild(struct IndexBuildContext *context,
@@ -1144,10 +1192,14 @@ void IMB_anim_index_rebuild(struct IndexBuildContext *context,
index_rebuild_ffmpeg((FFmpegIndexBuilderContext *)context, stop, do_update, progress);
break;
#endif
+#ifdef WITH_AVI
default:
index_rebuild_fallback((FallbackIndexBuilderContext *)context, stop, do_update, progress);
break;
+#endif
}
+
+ (void)stop, (void)do_update, (void)progress;
}
void IMB_anim_index_rebuild_finish(IndexBuildContext *context, short stop)
@@ -1158,10 +1210,15 @@ void IMB_anim_index_rebuild_finish(IndexBuildContext *context, short stop)
index_rebuild_ffmpeg_finish((FFmpegIndexBuilderContext *)context, stop);
break;
#endif
+#ifdef WITH_AVI
default:
index_rebuild_fallback_finish((FallbackIndexBuilderContext *)context, stop);
break;
+#endif
}
+
+ (void)stop;
+ (void)proxy_sizes; /* static defined at top of the file */
}
@@ -1214,7 +1271,8 @@ struct anim *IMB_anim_open_proxy(
get_proxy_filename(anim, preview_size, fname, FALSE);
- anim->proxy_anim[i] = IMB_open_anim(fname, 0, 0);
+ /* proxies are generated in default color space */
+ anim->proxy_anim[i] = IMB_open_anim(fname, 0, 0, NULL);
anim->proxies_tried |= preview_size;
diff --git a/source/blender/imbuf/intern/indexer_dv.c b/source/blender/imbuf/intern/indexer_dv.c
index 0090577062f..7a8f8fcc752 100644
--- a/source/blender/imbuf/intern/indexer_dv.c
+++ b/source/blender/imbuf/intern/indexer_dv.c
@@ -22,9 +22,12 @@
* ***** END GPL LICENSE BLOCK *****
*/
-#include "IMB_indexer.h"
#include "MEM_guardedalloc.h"
+
#include "BLI_utildefines.h"
+#include "BLI_path_util.h"
+
+#include "IMB_indexer.h"
#include <time.h>
typedef struct indexer_dv_bitstream {
@@ -129,7 +132,7 @@ static void parse_packet(indexer_dv_context *This, unsigned char *p)
b = bitstream_new(p + 1);
switch (type) {
- case 0x62: // Record date
+ case 0x62: /* Record date */
parse_num(&b, 8);
This->rec_curr_day = parse_bcd(&b, 6);
parse_num(&b, 2);
@@ -144,7 +147,7 @@ static void parse_packet(indexer_dv_context *This, unsigned char *p)
}
This->got_record_date = 1;
break;
- case 0x63: // Record time
+ case 0x63: /* Record time */
This->rec_curr_frame = parse_bcd(&b, 6);
parse_num(&b, 2);
This->rec_curr_second = parse_bcd(&b, 7);
@@ -322,7 +325,7 @@ static void proc_frame(indexer_dv_context *This,
}
}
else if (This->ref_time_read_new == This->ref_time_read) {
- // do nothing
+ /* do nothing */
}
else {
This->gap_start = This->ref_time_read;
@@ -382,7 +385,7 @@ static void indexer_dv_delete(anim_index_builder *idx)
MEM_freeN(This);
}
-void IMB_indexer_dv_new(anim_index_builder *idx)
+static void UNUSED_FUNCTION(IMB_indexer_dv_new)(anim_index_builder *idx)
{
indexer_dv_context *rv = MEM_callocN(
sizeof(indexer_dv_context), "index_dv builder context");
diff --git a/source/blender/imbuf/intern/iris.c b/source/blender/imbuf/intern/iris.c
index 10c6a0fd012..549a28a0453 100644
--- a/source/blender/imbuf/intern/iris.c
+++ b/source/blender/imbuf/intern/iris.c
@@ -32,7 +32,8 @@
#include <string.h>
-#include "BLI_blenlib.h"
+#include "BLI_fileops.h"
+
#include "MEM_guardedalloc.h"
#include "imbuf.h"
@@ -41,6 +42,9 @@
#include "IMB_allocimbuf.h"
#include "IMB_filetype.h"
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+
typedef struct {
unsigned short imagic; /* stuff saved on disk . . */
unsigned short type;
@@ -79,21 +83,21 @@ typedef struct {
#define OFFSET_R 0 /* this is byte order dependent */
#define OFFSET_G 1
#define OFFSET_B 2
-#define OFFSET_A 3
+// #define OFFSET_A 3
#define CHANOFFSET(z) (3 - (z)) /* this is byte order dependent */
-#define TYPEMASK 0xff00
+// #define TYPEMASK 0xff00
#define BPPMASK 0x00ff
-#define ITYPE_VERBATIM 0x0000
+// #define ITYPE_VERBATIM 0x0000 // UNUSED
#define ITYPE_RLE 0x0100
#define ISRLE(type) (((type) & 0xff00) == ITYPE_RLE)
-#define ISVERBATIM(type) (((type) & 0xff00) == ITYPE_VERBATIM)
+// #define ISVERBATIM(type) (((type) & 0xff00) == ITYPE_VERBATIM)
#define BPP(type) ((type) & BPPMASK)
#define RLE(bpp) (ITYPE_RLE | (bpp))
-#define VERBATIM(bpp) (ITYPE_VERBATIM | (bpp))
-#define IBUFSIZE(pixels) ((pixels + (pixels >> 6)) << 2)
-#define RLE_NOP 0x00
+// #define VERBATIM(bpp) (ITYPE_VERBATIM | (bpp)) // UNUSED
+// #define IBUFSIZE(pixels) ((pixels + (pixels >> 6)) << 2) // UNUSED
+// #define RLE_NOP 0x00
/* funcs */
static void readheader(FILE *inf, IMAGE *image);
@@ -246,7 +250,7 @@ int imb_is_a_iris(unsigned char *mem)
*
*/
-struct ImBuf *imb_loadiris(unsigned char *mem, size_t size, int flags)
+struct ImBuf *imb_loadiris(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
{
unsigned int *base, *lptr = NULL;
float *fbase, *fptr = NULL;
@@ -264,6 +268,9 @@ struct ImBuf *imb_loadiris(unsigned char *mem, size_t size, int flags)
if (!imb_is_a_iris(mem)) return NULL;
+ /* OCIO_TODO: only tested with 1 byte per pixel, not sure how to test with other settings */
+ colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_BYTE);
+
/*printf("new iris\n");*/
file_data = mem;
@@ -521,15 +528,12 @@ struct ImBuf *imb_loadiris(unsigned char *mem, size_t size, int flags)
}
- if (ibuf) {
- ibuf->ftype = IMAGIC;
- ibuf->profile = IB_PROFILE_SRGB;
+ ibuf->ftype = IMAGIC;
- test_endian_zbuf(ibuf);
+ test_endian_zbuf(ibuf);
- if (ibuf->rect) {
- IMB_convert_rgba_to_abgr(ibuf);
- }
+ if (ibuf->rect) {
+ IMB_convert_rgba_to_abgr(ibuf);
}
return(ibuf);
diff --git a/source/blender/imbuf/intern/jp2.c b/source/blender/imbuf/intern/jp2.c
index 3008c233718..01523463712 100644
--- a/source/blender/imbuf/intern/jp2.c
+++ b/source/blender/imbuf/intern/jp2.c
@@ -26,8 +26,8 @@
#include "MEM_guardedalloc.h"
-#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_fileops.h"
#include "imbuf.h"
@@ -36,11 +36,15 @@
#include "IMB_allocimbuf.h"
#include "IMB_filetype.h"
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+
#include "openjpeg.h"
#define JP2_FILEHEADER_SIZE 14
static char JP2_HEAD[] = {0x0, 0x0, 0x0, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A};
+static char J2K_HEAD[] = {0xFF, 0x4F, 0xFF, 0x51, 0x00};
/* We only need this because of how the presets are set */
/* this typedef is copied from 'openjpeg-1.5.0/applications/codec/image_to_j2k.c' */
@@ -59,15 +63,19 @@ typedef struct img_folder {
static int check_jp2(unsigned char *mem) /* J2K_CFMT */
{
- return memcmp(JP2_HEAD, mem, 12) ? 0 : 1;
+ return memcmp(JP2_HEAD, mem, sizeof(JP2_HEAD)) ? 0 : 1;
+}
+
+static int check_j2k(unsigned char *mem) /* J2K_CFMT */
+{
+ return memcmp(J2K_HEAD, mem, sizeof(J2K_HEAD)) ? 0 : 1;
}
int imb_is_a_jp2(unsigned char *buf)
-{
+{
return check_jp2(buf);
}
-
/**
* sample error callback expecting a FILE* client object
*/
@@ -104,7 +112,7 @@ static void info_callback(const char *msg, void *client_data)
} \
} (void)0 \
-struct ImBuf *imb_jp2_decode(unsigned char *mem, size_t size, int flags)
+struct ImBuf *imb_jp2_decode(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
{
struct ImBuf *ibuf = NULL;
int use_float = FALSE; /* for precision higher then 8 use float */
@@ -116,6 +124,7 @@ struct ImBuf *imb_jp2_decode(unsigned char *mem, size_t size, int flags)
unsigned int i, i_next, w, h, planes;
unsigned int y;
int *r, *g, *b, *a; /* matching 'opj_image_comp.data' type */
+ int is_jp2, is_j2k;
opj_dparameters_t parameters; /* decompression parameters */
@@ -125,7 +134,14 @@ struct ImBuf *imb_jp2_decode(unsigned char *mem, size_t size, int flags)
opj_dinfo_t *dinfo = NULL; /* handle to a decompressor */
opj_cio_t *cio = NULL;
- if (check_jp2(mem) == 0) return(NULL);
+ is_jp2 = check_jp2(mem);
+ is_j2k = check_j2k(mem);
+
+ if (!is_jp2 && !is_j2k)
+ return(NULL);
+
+ /* both 8, 12 and 16 bit JP2Ks are default to standard byte colorspace */
+ colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_BYTE);
/* configure the event callbacks (not required) */
memset(&event_mgr, 0, sizeof(opj_event_mgr_t));
@@ -141,7 +157,7 @@ struct ImBuf *imb_jp2_decode(unsigned char *mem, size_t size, int flags)
/* JPEG 2000 compressed image data */
/* get a decoder handle */
- dinfo = opj_create_decompress(CODEC_JP2);
+ dinfo = opj_create_decompress(is_jp2 ? CODEC_JP2 : CODEC_J2K);
/* catch events using our callbacks and give a local context */
opj_set_event_mgr((opj_common_ptr)dinfo, &event_mgr, stderr);
@@ -528,6 +544,10 @@ static void cinema_setup_encoder(opj_cparameters_t *parameters, opj_image_t *ima
parameters->cp_disto_alloc = 1;
}
+static float channel_colormanage_noop(float value)
+{
+ return value;
+}
static opj_image_t *ibuftoimage(ImBuf *ibuf, opj_cparameters_t *parameters)
{
@@ -544,9 +564,20 @@ static opj_image_t *ibuftoimage(ImBuf *ibuf, opj_cparameters_t *parameters)
opj_image_cmptparm_t cmptparm[4]; /* maximum of 4 components */
opj_image_t *image = NULL;
+ float (*chanel_colormanage_cb)(float);
+
img_fol_t img_fol; /* only needed for cinema presets */
memset(&img_fol, 0, sizeof(img_fol_t));
+ if (ibuf->float_colorspace) {
+ /* float buffer was managed already, no need in color space conversion */
+ chanel_colormanage_cb = channel_colormanage_noop;
+ }
+ else {
+ /* standard linear-to-srgb conversion if float buffer wasn't managed */
+ chanel_colormanage_cb = linearrgb_to_srgb;
+ }
+
if (ibuf->ftype & JP2_CINE) {
if (ibuf->x == 4096 || ibuf->y == 2160)
@@ -631,136 +662,67 @@ static opj_image_t *ibuftoimage(ImBuf *ibuf, opj_cparameters_t *parameters)
switch (prec) {
case 8: /* Convert blenders float color channels to 8, 12 or 16bit ints */
if (numcomps == 4) {
- if (ibuf->profile == IB_PROFILE_LINEAR_RGB) {
- PIXEL_LOOPER_BEGIN(rect_float)
- {
- r[i] = DOWNSAMPLE_FLOAT_TO_8BIT(linearrgb_to_srgb(rect_float[0]));
- g[i] = DOWNSAMPLE_FLOAT_TO_8BIT(linearrgb_to_srgb(rect_float[1]));
- b[i] = DOWNSAMPLE_FLOAT_TO_8BIT(linearrgb_to_srgb(rect_float[2]));
- a[i] = DOWNSAMPLE_FLOAT_TO_8BIT(rect_float[3]);
- }
- PIXEL_LOOPER_END;
- }
- else {
- PIXEL_LOOPER_BEGIN(rect_float)
- {
- r[i] = DOWNSAMPLE_FLOAT_TO_8BIT(rect_float[0]);
- g[i] = DOWNSAMPLE_FLOAT_TO_8BIT(rect_float[1]);
- b[i] = DOWNSAMPLE_FLOAT_TO_8BIT(rect_float[2]);
- a[i] = DOWNSAMPLE_FLOAT_TO_8BIT(rect_float[3]);
- }
- PIXEL_LOOPER_END;
+ PIXEL_LOOPER_BEGIN(rect_float)
+ {
+ r[i] = DOWNSAMPLE_FLOAT_TO_8BIT(chanel_colormanage_cb(rect_float[0]));
+ g[i] = DOWNSAMPLE_FLOAT_TO_8BIT(chanel_colormanage_cb(rect_float[1]));
+ b[i] = DOWNSAMPLE_FLOAT_TO_8BIT(chanel_colormanage_cb(rect_float[2]));
+ a[i] = DOWNSAMPLE_FLOAT_TO_8BIT(rect_float[3]);
}
+ PIXEL_LOOPER_END;
}
else {
- if (ibuf->profile == IB_PROFILE_LINEAR_RGB) {
- PIXEL_LOOPER_BEGIN(rect_float)
- {
- r[i] = DOWNSAMPLE_FLOAT_TO_8BIT(linearrgb_to_srgb(rect_float[0]));
- g[i] = DOWNSAMPLE_FLOAT_TO_8BIT(linearrgb_to_srgb(rect_float[1]));
- b[i] = DOWNSAMPLE_FLOAT_TO_8BIT(linearrgb_to_srgb(rect_float[2]));
- }
- PIXEL_LOOPER_END;
- }
- else {
- PIXEL_LOOPER_BEGIN(rect_float)
- {
- r[i] = DOWNSAMPLE_FLOAT_TO_8BIT(rect_float[0]);
- g[i] = DOWNSAMPLE_FLOAT_TO_8BIT(rect_float[1]);
- b[i] = DOWNSAMPLE_FLOAT_TO_8BIT(rect_float[2]);
- }
- PIXEL_LOOPER_END;
+ PIXEL_LOOPER_BEGIN(rect_float)
+ {
+ r[i] = DOWNSAMPLE_FLOAT_TO_8BIT(chanel_colormanage_cb(rect_float[0]));
+ g[i] = DOWNSAMPLE_FLOAT_TO_8BIT(chanel_colormanage_cb(rect_float[1]));
+ b[i] = DOWNSAMPLE_FLOAT_TO_8BIT(chanel_colormanage_cb(rect_float[2]));
}
+ PIXEL_LOOPER_END;
}
break;
case 12:
if (numcomps == 4) {
- if (ibuf->profile == IB_PROFILE_LINEAR_RGB) {
- PIXEL_LOOPER_BEGIN(rect_float)
- {
- r[i] = DOWNSAMPLE_FLOAT_TO_12BIT(linearrgb_to_srgb(rect_float[0]));
- g[i] = DOWNSAMPLE_FLOAT_TO_12BIT(linearrgb_to_srgb(rect_float[1]));
- b[i] = DOWNSAMPLE_FLOAT_TO_12BIT(linearrgb_to_srgb(rect_float[2]));
- a[i] = DOWNSAMPLE_FLOAT_TO_12BIT(rect_float[3]);
- }
- PIXEL_LOOPER_END;
- }
- else {
- PIXEL_LOOPER_BEGIN(rect_float)
- {
- r[i] = DOWNSAMPLE_FLOAT_TO_12BIT(rect_float[0]);
- g[i] = DOWNSAMPLE_FLOAT_TO_12BIT(rect_float[1]);
- b[i] = DOWNSAMPLE_FLOAT_TO_12BIT(rect_float[2]);
- a[i] = DOWNSAMPLE_FLOAT_TO_12BIT(rect_float[3]);
- }
- PIXEL_LOOPER_END;
+ PIXEL_LOOPER_BEGIN(rect_float)
+ {
+ r[i] = DOWNSAMPLE_FLOAT_TO_12BIT(chanel_colormanage_cb(rect_float[0]));
+ g[i] = DOWNSAMPLE_FLOAT_TO_12BIT(chanel_colormanage_cb(rect_float[1]));
+ b[i] = DOWNSAMPLE_FLOAT_TO_12BIT(chanel_colormanage_cb(rect_float[2]));
+ a[i] = DOWNSAMPLE_FLOAT_TO_12BIT(rect_float[3]);
}
+ PIXEL_LOOPER_END;
}
else {
- if (ibuf->profile == IB_PROFILE_LINEAR_RGB) {
- PIXEL_LOOPER_BEGIN(rect_float)
- {
- r[i] = DOWNSAMPLE_FLOAT_TO_12BIT(linearrgb_to_srgb(rect_float[0]));
- g[i] = DOWNSAMPLE_FLOAT_TO_12BIT(linearrgb_to_srgb(rect_float[1]));
- b[i] = DOWNSAMPLE_FLOAT_TO_12BIT(linearrgb_to_srgb(rect_float[2]));
- }
- PIXEL_LOOPER_END;
- }
- else {
- PIXEL_LOOPER_BEGIN(rect_float)
- {
- r[i] = DOWNSAMPLE_FLOAT_TO_12BIT(rect_float[0]);
- g[i] = DOWNSAMPLE_FLOAT_TO_12BIT(rect_float[1]);
- b[i] = DOWNSAMPLE_FLOAT_TO_12BIT(rect_float[2]);
- }
- PIXEL_LOOPER_END;
+ PIXEL_LOOPER_BEGIN(rect_float)
+ {
+ r[i] = DOWNSAMPLE_FLOAT_TO_12BIT(chanel_colormanage_cb(rect_float[0]));
+ g[i] = DOWNSAMPLE_FLOAT_TO_12BIT(chanel_colormanage_cb(rect_float[1]));
+ b[i] = DOWNSAMPLE_FLOAT_TO_12BIT(chanel_colormanage_cb(rect_float[2]));
}
+ PIXEL_LOOPER_END;
}
break;
case 16:
if (numcomps == 4) {
- if (ibuf->profile == IB_PROFILE_LINEAR_RGB) {
- PIXEL_LOOPER_BEGIN(rect_float)
- {
- r[i] = DOWNSAMPLE_FLOAT_TO_16BIT(linearrgb_to_srgb(rect_float[0]));
- g[i] = DOWNSAMPLE_FLOAT_TO_16BIT(linearrgb_to_srgb(rect_float[1]));
- b[i] = DOWNSAMPLE_FLOAT_TO_16BIT(linearrgb_to_srgb(rect_float[2]));
- a[i] = DOWNSAMPLE_FLOAT_TO_16BIT(rect_float[3]);
- }
- PIXEL_LOOPER_END;
- }
- else {
- PIXEL_LOOPER_BEGIN(rect_float)
- {
- r[i] = DOWNSAMPLE_FLOAT_TO_16BIT(rect_float[0]);
- g[i] = DOWNSAMPLE_FLOAT_TO_16BIT(rect_float[1]);
- b[i] = DOWNSAMPLE_FLOAT_TO_16BIT(rect_float[2]);
- a[i] = DOWNSAMPLE_FLOAT_TO_16BIT(rect_float[3]);
- }
- PIXEL_LOOPER_END;
+ PIXEL_LOOPER_BEGIN(rect_float)
+ {
+ r[i] = DOWNSAMPLE_FLOAT_TO_16BIT(chanel_colormanage_cb(rect_float[0]));
+ g[i] = DOWNSAMPLE_FLOAT_TO_16BIT(chanel_colormanage_cb(rect_float[1]));
+ b[i] = DOWNSAMPLE_FLOAT_TO_16BIT(chanel_colormanage_cb(rect_float[2]));
+ a[i] = DOWNSAMPLE_FLOAT_TO_16BIT(rect_float[3]);
}
+ PIXEL_LOOPER_END;
}
else {
- if (ibuf->profile == IB_PROFILE_LINEAR_RGB) {
- PIXEL_LOOPER_BEGIN(rect_float)
- {
- r[i] = DOWNSAMPLE_FLOAT_TO_16BIT(linearrgb_to_srgb(rect_float[0]));
- g[i] = DOWNSAMPLE_FLOAT_TO_16BIT(linearrgb_to_srgb(rect_float[1]));
- b[i] = DOWNSAMPLE_FLOAT_TO_16BIT(linearrgb_to_srgb(rect_float[2]));
- }
- PIXEL_LOOPER_END;
- }
- else {
- PIXEL_LOOPER_BEGIN(rect_float)
- {
- r[i] = DOWNSAMPLE_FLOAT_TO_16BIT(rect_float[0]);
- g[i] = DOWNSAMPLE_FLOAT_TO_16BIT(rect_float[1]);
- b[i] = DOWNSAMPLE_FLOAT_TO_16BIT(rect_float[2]);
- }
- PIXEL_LOOPER_END;
+ PIXEL_LOOPER_BEGIN(rect_float)
+ {
+ r[i] = DOWNSAMPLE_FLOAT_TO_16BIT(chanel_colormanage_cb(rect_float[0]));
+ g[i] = DOWNSAMPLE_FLOAT_TO_16BIT(chanel_colormanage_cb(rect_float[1]));
+ b[i] = DOWNSAMPLE_FLOAT_TO_16BIT(chanel_colormanage_cb(rect_float[2]));
}
+ PIXEL_LOOPER_END;
}
break;
}
@@ -864,7 +826,7 @@ int imb_savejp2(struct ImBuf *ibuf, const char *name, int flags)
/*
* configure the event callbacks (not required)
- * setting of each callback is optionnal
+ * setting of each callback is optional
*/
memset(&event_mgr, 0, sizeof(opj_event_mgr_t));
event_mgr.error_handler = error_callback;
@@ -880,7 +842,7 @@ int imb_savejp2(struct ImBuf *ibuf, const char *name, int flags)
parameters.tcp_rates[0] = ((100 - quality) / 90.0f * 99.0f) + 1;
- parameters.tcp_numlayers = 1; // only one resolution
+ parameters.tcp_numlayers = 1; /* only one resolution */
parameters.cp_disto_alloc = 1;
image = ibuftoimage(ibuf, &parameters);
diff --git a/source/blender/imbuf/intern/jpeg.c b/source/blender/imbuf/intern/jpeg.c
index 47555302a59..61275a8937c 100644
--- a/source/blender/imbuf/intern/jpeg.c
+++ b/source/blender/imbuf/intern/jpeg.c
@@ -37,7 +37,8 @@
#include "MEM_guardedalloc.h"
-#include "BLI_blenlib.h"
+#include "BLI_string.h"
+#include "BLI_fileops.h"
#include "imbuf.h"
#include "IMB_imbuf_types.h"
@@ -47,9 +48,12 @@
#include "jpeglib.h"
#include "jerror.h"
-#define IS_jpg(x) (x->ftype & JPG)
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+
+// #define IS_jpg(x) (x->ftype & JPG) // UNUSED
#define IS_stdjpg(x) ((x->ftype & JPG_MSK) == JPG_STD)
-#define IS_vidjpg(x) ((x->ftype & JPG_MSK) == JPG_VID)
+// #define IS_vidjpg(x) ((x->ftype & JPG_MSK) == JPG_VID) // UNUSED
#define IS_jstjpg(x) ((x->ftype & JPG_MSK) == JPG_JST)
#define IS_maxjpg(x) ((x->ftype & JPG_MSK) == JPG_MAX)
@@ -67,8 +71,8 @@ static ImBuf *ibJpegImageFromCinfo(struct jpeg_decompress_struct *cinfo, int fla
/*
* In principle there are 4 jpeg formats.
*
- * 1. jpeg - standard printing, u & v at quarter of resulution
- * 2. jvid - standaard video, u & v half resolution, frame not interlaced
+ * 1. jpeg - standard printing, u & v at quarter of resolution
+ * 2. jvid - standard video, u & v half resolution, frame not interlaced
*
* type 3 is unsupported as of jul 05 2000 Frank.
*
@@ -86,9 +90,9 @@ int imb_is_a_jpeg(unsigned char *mem)
return 0;
}
-//----------------------------------------------------------
-// JPG ERROR HANDLING
-//----------------------------------------------------------
+/*----------------------------------------------------------
+ * JPG ERROR HANDLING
+ *---------------------------------------------------------- */
typedef struct my_error_mgr {
struct jpeg_error_mgr pub; /* "public" fields */
@@ -112,9 +116,9 @@ static void jpeg_error(j_common_ptr cinfo)
longjmp(err->setjmp_buffer, 1);
}
-//----------------------------------------------------------
-// INPUT HANDLER FROM MEMORY
-//----------------------------------------------------------
+/*----------------------------------------------------------
+ * INPUT HANDLER FROM MEMORY
+ *---------------------------------------------------------- */
typedef struct {
unsigned char *buffer;
@@ -159,7 +163,7 @@ static void skip_input_data(j_decompress_ptr cinfo, long num_bytes)
my_src_ptr src = (my_src_ptr) cinfo->src;
if (num_bytes > 0) {
- // prevent skipping over file end
+ /* prevent skipping over file end */
size_t skip_size = (size_t)num_bytes <= src->pub.bytes_in_buffer ? num_bytes : src->pub.bytes_in_buffer;
src->pub.next_input_byte = src->pub.next_input_byte + skip_size;
@@ -200,7 +204,7 @@ static void memory_source(j_decompress_ptr cinfo, unsigned char *buffer, size_t
#define MAKESTMT(stuff) do { stuff } while (0)
#define INPUT_VARS(cinfo) \
- struct jpeg_source_mgr * datasrc = (cinfo)->src; \
+ struct jpeg_source_mgr *datasrc = (cinfo)->src; \
const JOCTET * next_input_byte = datasrc->next_input_byte; \
size_t bytes_in_buffer = datasrc->bytes_in_buffer
@@ -434,21 +438,22 @@ next_stamp_marker:
jpeg_destroy((j_common_ptr) cinfo);
if (ibuf) {
ibuf->ftype = ibuf_ftype;
- ibuf->profile = IB_PROFILE_SRGB;
}
}
return(ibuf);
}
-ImBuf *imb_load_jpeg(unsigned char *buffer, size_t size, int flags)
+ImBuf *imb_load_jpeg(unsigned char *buffer, size_t size, int flags, char colorspace[IM_MAX_SPACE])
{
struct jpeg_decompress_struct _cinfo, *cinfo = &_cinfo;
struct my_error_mgr jerr;
ImBuf *ibuf;
if (!imb_is_a_jpeg(buffer)) return NULL;
-
+
+ colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_BYTE);
+
cinfo->err = jpeg_std_error(&jerr.pub);
jerr.pub.error_exit = jpeg_error;
diff --git a/source/blender/imbuf/intern/metadata.c b/source/blender/imbuf/intern/metadata.c
index a7caae73679..fed55c05eea 100644
--- a/source/blender/imbuf/intern/metadata.c
+++ b/source/blender/imbuf/intern/metadata.c
@@ -33,7 +33,8 @@
#include <stdlib.h>
#include <string.h>
-#include "BLI_blenlib.h"
+#include "BLI_string.h"
+
#include "MEM_guardedalloc.h"
#include "IMB_imbuf_types.h"
@@ -62,7 +63,7 @@ void IMB_metadata_free(struct ImBuf *img)
}
}
-int IMB_metadata_get_field(struct ImBuf *img, const char *key, char *field, int len)
+int IMB_metadata_get_field(struct ImBuf *img, const char *key, char *field, const size_t len)
{
ImMetaData *info;
int retval = 0;
diff --git a/source/blender/imbuf/intern/module.c b/source/blender/imbuf/intern/module.c
index 55a29333620..9141dad6f9c 100644
--- a/source/blender/imbuf/intern/module.c
+++ b/source/blender/imbuf/intern/module.c
@@ -28,16 +28,19 @@
#include <stddef.h>
#include "IMB_imbuf.h"
#include "IMB_filetype.h"
+#include "IMB_colormanagement_intern.h"
void IMB_init(void)
{
imb_filetypes_init();
imb_tile_cache_init();
+ colormanagement_init();
}
void IMB_exit(void)
{
imb_tile_cache_exit();
imb_filetypes_exit();
+ colormanagement_exit();
}
diff --git a/source/blender/imbuf/intern/moviecache.c b/source/blender/imbuf/intern/moviecache.c
index 2992e4a0aa7..d5aa635f548 100644
--- a/source/blender/imbuf/intern/moviecache.c
+++ b/source/blender/imbuf/intern/moviecache.c
@@ -29,35 +29,57 @@
* \ingroup bke
*/
+#undef DEBUG_MESSAGES
+
#include <stdlib.h> /* for qsort */
#include <memory.h>
#include "MEM_guardedalloc.h"
#include "MEM_CacheLimiterC-Api.h"
+#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BLI_ghash.h"
#include "BLI_mempool.h"
+#include "BLI_threads.h"
#include "IMB_moviecache.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
+#ifdef DEBUG_MESSAGES
+# if defined __GNUC__ || defined __sun
+# define PRINT(format, args ...) printf(format, ##args)
+# else
+# define PRINT(format, ...) printf(__VA_ARGS__)
+# endif
+#else
+# define PRINT(format, ...)
+#endif
+
static MEM_CacheLimiterC *limitor = NULL;
+static pthread_mutex_t limitor_lock = BLI_MUTEX_INITIALIZER;
typedef struct MovieCache {
+ char name[64];
+
GHash *hash;
GHashHashFP hashfp;
GHashCmpFP cmpfp;
MovieCacheGetKeyDataFP getdatafp;
+ MovieCacheGetPriorityDataFP getprioritydatafp;
+ MovieCacheGetItemPriorityFP getitempriorityfp;
+ MovieCachePriorityDeleterFP prioritydeleterfp;
+
struct BLI_mempool *keys_pool;
struct BLI_mempool *items_pool;
struct BLI_mempool *userkeys_pool;
int keysize;
- unsigned long curtime;
+
+ void *last_userkey;
int totseg, *points, proxy, render_flags; /* for visual statistics optimization */
int pad;
@@ -72,7 +94,7 @@ typedef struct MovieCacheItem {
MovieCache *cache_owner;
ImBuf *ibuf;
MEM_CacheLimiterHandleC *c_handle;
- unsigned long last_access;
+ void *priority_data;
} MovieCacheItem;
static unsigned int moviecache_hashhash(const void *keyv)
@@ -94,18 +116,27 @@ static void moviecache_keyfree(void *val)
{
MovieCacheKey *key = (MovieCacheKey *)val;
+ BLI_mempool_free(key->cache_owner->userkeys_pool, key->userkey);
+
BLI_mempool_free(key->cache_owner->keys_pool, key);
}
static void moviecache_valfree(void *val)
{
MovieCacheItem *item = (MovieCacheItem *)val;
+ MovieCache *cache = item->cache_owner;
+
+ PRINT("%s: cache '%s' free item %p buffer %p\n", __func__, cache->name, item, item->ibuf);
if (item->ibuf) {
MEM_CacheLimiter_unmanage(item->c_handle);
IMB_freeImBuf(item->ibuf);
}
+ if (item->priority_data && cache->prioritydeleterfp) {
+ cache->prioritydeleterfp(item->priority_data);
+ }
+
BLI_mempool_free(item->cache_owner->items_pool, item);
}
@@ -117,10 +148,17 @@ static void check_unused_keys(MovieCache *cache)
while (!BLI_ghashIterator_isDone(iter)) {
MovieCacheKey *key = BLI_ghashIterator_getKey(iter);
MovieCacheItem *item = BLI_ghashIterator_getValue(iter);
+ int remove = 0;
BLI_ghashIterator_step(iter);
- if (!item->ibuf)
+ remove = !item->ibuf;
+
+ if (remove) {
+ PRINT("%s: cache '%s' remove item %p without buffer\n", __func__, cache->name, item);
+ }
+
+ if (remove)
BLI_ghash_remove(cache->hash, key, moviecache_keyfree, moviecache_valfree);
}
@@ -136,13 +174,23 @@ static int compare_int(const void *av, const void *bv)
static void IMB_moviecache_destructor(void *p)
{
- MovieCacheItem *item = (MovieCacheItem *) p;
+ MovieCacheItem *item = (MovieCacheItem *)p;
if (item && item->ibuf) {
+ MovieCache *cache = item->cache_owner;
+
+ PRINT("%s: cache '%s' destroy item %p buffer %p\n", __func__, cache->name, item, item->ibuf);
+
IMB_freeImBuf(item->ibuf);
item->ibuf = NULL;
item->c_handle = NULL;
+
+ /* force cached segments to be updated */
+ if (cache->points) {
+ MEM_freeN(cache->points);
+ cache->points = NULL;
+ }
}
}
@@ -187,9 +235,30 @@ static size_t get_item_size(void *p)
return size;
}
+static int get_item_priority(void *item_v, int default_priority)
+{
+ MovieCacheItem *item = (MovieCacheItem *) item_v;
+ MovieCache *cache = item->cache_owner;
+ int priority;
+
+ if (!cache->getitempriorityfp) {
+ PRINT("%s: cache '%s' item %p use default priority %d\n", __func__, cache-> name, item, default_priority);
+
+ return default_priority;
+ }
+
+ priority = cache->getitempriorityfp(cache->last_userkey, item->priority_data);
+
+ PRINT("%s: cache '%s' item %p priority %d\n", __func__, cache-> name, item, priority);
+
+ return priority;
+}
+
void IMB_moviecache_init(void)
{
limitor = new_MEM_CacheLimiter(IMB_moviecache_destructor, get_item_size);
+
+ MEM_CacheLimiter_ItemPriority_Func_set(limitor, get_item_priority);
}
void IMB_moviecache_destruct(void)
@@ -198,12 +267,16 @@ void IMB_moviecache_destruct(void)
delete_MEM_CacheLimiter(limitor);
}
-MovieCache *IMB_moviecache_create(int keysize, GHashHashFP hashfp, GHashCmpFP cmpfp,
- MovieCacheGetKeyDataFP getdatafp)
+MovieCache *IMB_moviecache_create(const char *name, int keysize, GHashHashFP hashfp, GHashCmpFP cmpfp)
{
MovieCache *cache;
+ PRINT("%s: cache '%s' create\n", __func__, name);
+
cache = MEM_callocN(sizeof(MovieCache), "MovieCache");
+
+ BLI_strncpy(cache->name, name, sizeof(cache->name));
+
cache->keys_pool = BLI_mempool_create(sizeof(MovieCacheKey), 64, 64, 0);
cache->items_pool = BLI_mempool_create(sizeof(MovieCacheItem), 64, 64, 0);
cache->userkeys_pool = BLI_mempool_create(keysize, 64, 64, 0);
@@ -212,12 +285,27 @@ MovieCache *IMB_moviecache_create(int keysize, GHashHashFP hashfp, GHashCmpFP cm
cache->keysize = keysize;
cache->hashfp = hashfp;
cache->cmpfp = cmpfp;
- cache->getdatafp = getdatafp;
cache->proxy = -1;
return cache;
}
+void IMB_moviecache_set_getdata_callback(MovieCache *cache, MovieCacheGetKeyDataFP getdatafp)
+{
+ cache->getdatafp = getdatafp;
+}
+
+void IMB_moviecache_set_priority_callback(struct MovieCache *cache, MovieCacheGetPriorityDataFP getprioritydatafp,
+ MovieCacheGetItemPriorityFP getitempriorityfp,
+ MovieCachePriorityDeleterFP prioritydeleterfp)
+{
+ cache->last_userkey = MEM_mallocN(cache->keysize, "movie cache last user key");
+
+ cache->getprioritydatafp = getprioritydatafp;
+ cache->getitempriorityfp = getitempriorityfp;
+ cache->prioritydeleterfp = prioritydeleterfp;
+}
+
void IMB_moviecache_put(MovieCache *cache, void *userkey, ImBuf *ibuf)
{
MovieCacheKey *key;
@@ -234,20 +322,35 @@ void IMB_moviecache_put(MovieCache *cache, void *userkey, ImBuf *ibuf)
memcpy(key->userkey, userkey, cache->keysize);
item = BLI_mempool_alloc(cache->items_pool);
+
+ PRINT("%s: cache '%s' put %p, item %p\n", __func__, cache-> name, ibuf, item);
+
item->ibuf = ibuf;
item->cache_owner = cache;
- item->last_access = cache->curtime++;
item->c_handle = NULL;
+ item->priority_data = NULL;
+
+ if (cache->getprioritydatafp) {
+ item->priority_data = cache->getprioritydatafp(userkey);
+ }
BLI_ghash_remove(cache->hash, key, moviecache_keyfree, moviecache_valfree);
BLI_ghash_insert(cache->hash, key, item);
+ if (cache->last_userkey) {
+ memcpy(cache->last_userkey, userkey, cache->keysize);
+ }
+
+ BLI_mutex_lock(&limitor_lock);
+
item->c_handle = MEM_CacheLimiter_insert(limitor, item);
MEM_CacheLimiter_ref(item->c_handle);
MEM_CacheLimiter_enforce_limits(limitor);
MEM_CacheLimiter_unref(item->c_handle);
+ BLI_mutex_unlock(&limitor_lock);
+
/* cache limiter can't remove unused keys which points to destoryed values */
check_unused_keys(cache);
@@ -267,10 +370,11 @@ ImBuf *IMB_moviecache_get(MovieCache *cache, void *userkey)
item = (MovieCacheItem *)BLI_ghash_lookup(cache->hash, &key);
if (item) {
- item->last_access = cache->curtime++;
-
if (item->ibuf) {
+ BLI_mutex_lock(&limitor_lock);
MEM_CacheLimiter_touch(item->c_handle);
+ BLI_mutex_unlock(&limitor_lock);
+
IMB_refImBuf(item->ibuf);
return item->ibuf;
@@ -282,6 +386,8 @@ ImBuf *IMB_moviecache_get(MovieCache *cache, void *userkey)
void IMB_moviecache_free(MovieCache *cache)
{
+ PRINT("%s: cache '%s' free\n", __func__, cache->name);
+
BLI_ghash_free(cache->hash, moviecache_keyfree, moviecache_valfree);
BLI_mempool_destroy(cache->keys_pool);
@@ -291,9 +397,38 @@ void IMB_moviecache_free(MovieCache *cache)
if (cache->points)
MEM_freeN(cache->points);
+ if (cache->last_userkey)
+ MEM_freeN(cache->last_userkey);
+
MEM_freeN(cache);
}
+void IMB_moviecache_cleanup(MovieCache *cache, int (cleanup_check_cb) (void *userkey, void *userdata), void *userdata)
+{
+ GHashIterator *iter;
+
+ iter = BLI_ghashIterator_new(cache->hash);
+ while (!BLI_ghashIterator_isDone(iter)) {
+ MovieCacheKey *key = BLI_ghashIterator_getKey(iter);
+ int remove;
+
+ BLI_ghashIterator_step(iter);
+
+ remove = cleanup_check_cb(key->userkey, userdata);
+
+ if (remove) {
+ MovieCacheItem *item = BLI_ghashIterator_getValue(iter);
+ (void) item; /* silence unused variable when not using debug */
+
+ PRINT("%s: cache '%s' remove item %p\n", __func__, cache->name, item);
+
+ BLI_ghash_remove(cache->hash, key, moviecache_keyfree, moviecache_valfree);
+ }
+ }
+
+ BLI_ghashIterator_free(iter);
+}
+
/* get segments of cached frames. useful for debugging cache policies */
void IMB_moviecache_get_cache_segments(MovieCache *cache, int proxy, int render_flags, int *totseg_r, int **points_r)
{
diff --git a/source/blender/imbuf/intern/openexr/CMakeLists.txt b/source/blender/imbuf/intern/openexr/CMakeLists.txt
index 4ee2ff4cc47..a5afc1abdc6 100644
--- a/source/blender/imbuf/intern/openexr/CMakeLists.txt
+++ b/source/blender/imbuf/intern/openexr/CMakeLists.txt
@@ -31,6 +31,7 @@ set(INC
../../../blenlib
../../../makesdna
../../../../../intern/guardedalloc
+ ../../../../../intern/utfconv
)
set(INC_SYS
diff --git a/source/blender/imbuf/intern/openexr/SConscript b/source/blender/imbuf/intern/openexr/SConscript
index e590077db2b..a6c5ad984e2 100644
--- a/source/blender/imbuf/intern/openexr/SConscript
+++ b/source/blender/imbuf/intern/openexr/SConscript
@@ -10,7 +10,9 @@ incs = ['.',
'../../../blenlib',
'intern/include',
'#/intern/guardedalloc',
- '../../../makesdna']
+ '../../../makesdna',
+ '#/intern/utfconv']
+
incs += Split(env['BF_OPENEXR_INC'])
defs = ['WITH_OPENEXR']
diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp
index 18957cb8260..066d07a36c5 100644
--- a/source/blender/imbuf/intern/openexr/openexr_api.cpp
+++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp
@@ -32,12 +32,17 @@
#include <stdlib.h>
#include <stdio.h>
#include <stddef.h>
+#include <fstream>
#include <string>
#include <set>
-
+#include <errno.h>
#include <openexr_api.h>
+#if defined (WIN32) && !defined(FREE_WINDOWS)
+#include "utfconv.h"
+#endif
+
extern "C"
{
@@ -59,6 +64,9 @@ _CRTIMP void __cdecl _invalid_parameter_noinfo(void)
#include "IMB_allocimbuf.h"
#include "IMB_metadata.h"
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+
#include "openexr_multi.h"
}
@@ -66,6 +74,7 @@ _CRTIMP void __cdecl _invalid_parameter_noinfo(void)
#if defined(_WIN32) && !defined(FREE_WINDOWS)
#include <half.h>
+#include <Iex/Iex.h>
#include <IlmImf/ImfVersion.h>
#include <IlmImf/ImfArray.h>
#include <IlmImf/ImfIO.h>
@@ -79,6 +88,7 @@ _CRTIMP void __cdecl _invalid_parameter_noinfo(void)
#include <Imath/ImathBox.h>
#else
#include <half.h>
+#include <Iex.h>
#include <ImfVersion.h>
#include <ImathBox.h>
#include <ImfArray.h>
@@ -95,6 +105,8 @@ _CRTIMP void __cdecl _invalid_parameter_noinfo(void)
using namespace Imf;
using namespace Imath;
+/* Memory Input Stream */
+
class Mem_IStream : public Imf::IStream
{
public:
@@ -142,6 +154,122 @@ void Mem_IStream::clear()
{
}
+/* File Input Stream */
+
+class IFileStream : public Imf::IStream
+{
+public:
+ IFileStream(const char *filename)
+ : IStream(filename)
+ {
+ /* utf-8 file path support on windows */
+#if defined (WIN32) && !defined(FREE_WINDOWS)
+ wchar_t *wfilename = alloc_utf16_from_8(filename, 0);
+ ifs.open(wfilename, std::ios_base::binary);
+ free(wfilename);
+#else
+ ifs.open(filename, std::ios_base::binary);
+#endif
+
+ if (!ifs)
+ Iex::throwErrnoExc();
+ }
+
+ virtual bool read(char c[], int n)
+ {
+ if (!ifs)
+ throw Iex::InputExc("Unexpected end of file.");
+
+ errno = 0;
+ ifs.read(c, n);
+ return check_error();
+ }
+
+ virtual Int64 tellg()
+ {
+ return std::streamoff(ifs.tellg());
+ }
+
+ virtual void seekg(Int64 pos)
+ {
+ ifs.seekg(pos);
+ check_error();
+ }
+
+ virtual void clear()
+ {
+ ifs.clear();
+ }
+
+private:
+ bool check_error()
+ {
+ if (!ifs) {
+ if (errno)
+ Iex::throwErrnoExc();
+
+ return false;
+ }
+
+ return true;
+ }
+
+ std::ifstream ifs;
+};
+
+/* File Output Stream */
+
+class OFileStream : public OStream
+{
+public:
+ OFileStream(const char *filename)
+ : OStream(filename)
+ {
+ /* utf-8 file path support on windows */
+#if defined (WIN32) && !defined(FREE_WINDOWS)
+ wchar_t *wfilename = alloc_utf16_from_8(filename, 0);
+ ofs.open(wfilename, std::ios_base::binary);
+ free(wfilename);
+#else
+ ofs.open(filename, std::ios_base::binary);
+#endif
+
+ if (!ofs)
+ Iex::throwErrnoExc();
+ }
+
+ virtual void write(const char c[], int n)
+ {
+ errno = 0;
+ ofs.write(c, n);
+ check_error();
+ }
+
+ virtual Int64 tellp()
+ {
+ return std::streamoff(ofs.tellp());
+ }
+
+ virtual void seekp(Int64 pos)
+ {
+ ofs.seekp(pos);
+ check_error();
+ }
+
+private:
+ void check_error()
+ {
+ if (!ofs) {
+ if (errno)
+ Iex::throwErrnoExc();
+
+ throw Iex::ErrnoExc("File output failed.");
+ }
+ }
+
+ std::ofstream ofs;
+};
+
struct _RGBAZ {
half r;
half g;
@@ -216,7 +344,10 @@ static int imb_save_openexr_half(struct ImBuf *ibuf, const char *name, int flags
header.channels().insert("Z", Channel(Imf::FLOAT));
FrameBuffer frameBuffer;
- OutputFile *file = new OutputFile(name, header);
+
+ /* manually create ofstream, so we can handle utf-8 filepaths on windows */
+ OFileStream file_stream(name);
+ OutputFile file(file_stream, header);
/* we store first everything in half array */
RGBAZ *pixels = new RGBAZ[height * width];
@@ -241,49 +372,34 @@ static int imb_save_openexr_half(struct ImBuf *ibuf, const char *name, int flags
for (int j = ibuf->x; j > 0; j--) {
to->r = from[0];
- to->g = from[1];
- to->b = from[2];
+ to->g = (channels >= 2) ? from[1] : from[0];
+ to->b = (channels >= 3) ? from[2] : from[0];
to->a = (channels >= 4) ? from[3] : 1.0f;
- to++; from += 4;
+ to++; from += channels;
}
}
}
else {
unsigned char *from;
- if (ibuf->profile == IB_PROFILE_LINEAR_RGB) {
- for (int i = ibuf->y - 1; i >= 0; i--) {
- from = (unsigned char *)ibuf->rect + channels * i * width;
+ for (int i = ibuf->y - 1; i >= 0; i--) {
+ from = (unsigned char *)ibuf->rect + 4 * i * width;
- for (int j = ibuf->x; j > 0; j--) {
- to->r = (float)(from[0]) / 255.0;
- to->g = (float)(from[1]) / 255.0;
- to->b = (float)(from[2]) / 255.0;
- to->a = (float)(channels >= 4) ? from[3] / 255.0 : 1.0f;
- to++; from += 4;
- }
- }
- }
- else {
- for (int i = ibuf->y - 1; i >= 0; i--) {
- from = (unsigned char *)ibuf->rect + channels * i * width;
-
- for (int j = ibuf->x; j > 0; j--) {
- to->r = srgb_to_linearrgb((float)from[0] / 255.0);
- to->g = srgb_to_linearrgb((float)from[1] / 255.0);
- to->b = srgb_to_linearrgb((float)from[2] / 255.0);
- to->a = channels >= 4 ? (float)from[3] / 255.0 : 1.0f;
- to++; from += 4;
- }
+ for (int j = ibuf->x; j > 0; j--) {
+ to->r = srgb_to_linearrgb((float)from[0] / 255.0f);
+ to->g = srgb_to_linearrgb((float)from[1] / 255.0f);
+ to->b = srgb_to_linearrgb((float)from[2] / 255.0f);
+ to->a = channels >= 4 ? (float)from[3] / 255.0f : 1.0f;
+ to++; from += 4;
}
}
}
// printf("OpenEXR-save: Writing OpenEXR file of height %d.\n", height);
- file->setFrameBuffer(frameBuffer);
- file->writePixels(height);
- delete file;
+ file.setFrameBuffer(frameBuffer);
+ file.writePixels(height);
+
delete[] pixels;
}
catch (const std::exception &exc)
@@ -321,15 +437,19 @@ static int imb_save_openexr_float(struct ImBuf *ibuf, const char *name, int flag
header.channels().insert("Z", Channel(Imf::FLOAT));
FrameBuffer frameBuffer;
- OutputFile *file = new OutputFile(name, header);
+
+ /* manually create ofstream, so we can handle utf-8 filepaths on windows */
+ OFileStream file_stream(name);
+ OutputFile file(file_stream, header);
+
int xstride = sizeof(float) * channels;
int ystride = -xstride * width;
float *rect[4] = {NULL, NULL, NULL, NULL};
/* last scanline, stride negative */
rect[0] = ibuf->rect_float + channels * (height - 1) * width;
- rect[1] = rect[0] + 1;
- rect[2] = rect[0] + 2;
+ rect[1] = (channels >= 2) ? rect[0] + 1 : rect[0];
+ rect[2] = (channels >= 3) ? rect[0] + 2 : rect[0];
rect[3] = (channels >= 4) ? rect[0] + 3 : rect[0]; /* red as alpha, is this needed since alpha isn't written? */
frameBuffer.insert("R", Slice(Imf::FLOAT, (char *)rect[0], xstride, ystride));
@@ -340,9 +460,8 @@ static int imb_save_openexr_float(struct ImBuf *ibuf, const char *name, int flag
if (is_zbuf)
frameBuffer.insert("Z", Slice(Imf::FLOAT, (char *) (ibuf->zbuf_float + (height - 1) * width),
sizeof(float), sizeof(float) * -width));
- file->setFrameBuffer(frameBuffer);
- file->writePixels(height);
- delete file;
+ file.setFrameBuffer(frameBuffer);
+ file.writePixels(height);
}
catch (const std::exception &exc)
{
@@ -391,9 +510,13 @@ static ListBase exrhandles = {NULL, NULL};
typedef struct ExrHandle {
struct ExrHandle *next, *prev;
+ IFileStream *ifile_stream;
InputFile *ifile;
+
+ OFileStream *ofile_stream;
TiledOutputFile *tofile;
OutputFile *ofile;
+
int tilex, tiley;
int width, height;
int mipmap;
@@ -486,12 +609,19 @@ int IMB_exr_begin_write(void *handle, const char *filename, int width, int heigh
header.insert("BlenderMultiChannel", StringAttribute("Blender V2.55.1 and newer"));
/* avoid crash/abort when we don't have permission to write here */
+ /* manually create ofstream, so we can handle utf-8 filepaths on windows */
try {
- data->ofile = new OutputFile(filename, header);
+ data->ofile_stream = new OFileStream(filename);
+ data->ofile = new OutputFile(*(data->ofile_stream), header);
}
catch (const std::exception &exc) {
std::cerr << "IMB_exr_begin_write: ERROR: " << exc.what() << std::endl;
+
+ delete data->ofile;
+ delete data->ofile_stream;
+
data->ofile = NULL;
+ data->ofile_stream = NULL;
}
return (data->ofile != NULL);
@@ -518,7 +648,19 @@ void IMB_exrtile_begin_write(void *handle, const char *filename, int mipmap, int
header.insert("BlenderMultiChannel", StringAttribute("Blender V2.43"));
- data->tofile = new TiledOutputFile(filename, header);
+ /* avoid crash/abort when we don't have permission to write here */
+ /* manually create ofstream, so we can handle utf-8 filepaths on windows */
+ try {
+ data->ofile_stream = new OFileStream(filename);
+ data->tofile = new TiledOutputFile(*(data->ofile_stream), header);
+ }
+ catch (const std::exception &exc) {
+ delete data->tofile;
+ delete data->ofile_stream;
+
+ data->tofile = NULL;
+ data->ofile_stream = NULL;
+ }
}
/* read from file */
@@ -527,7 +669,19 @@ int IMB_exr_begin_read(void *handle, const char *filename, int *width, int *heig
ExrHandle *data = (ExrHandle *)handle;
if (BLI_exists(filename) && BLI_file_size(filename) > 32) { /* 32 is arbitrary, but zero length files crashes exr */
- data->ifile = new InputFile(filename);
+ /* avoid crash/abort when we don't have permission to write here */
+ try {
+ data->ifile_stream = new IFileStream(filename);
+ data->ifile = new InputFile(*(data->ifile_stream));
+ }
+ catch (const std::exception &exc) {
+ delete data->ifile;
+ delete data->ifile_stream;
+
+ data->ifile = NULL;
+ data->ifile_stream = NULL;
+ }
+
if (data->ifile) {
Box2i dw = data->ifile->header().dataWindow();
data->width = *width = dw.max.x - dw.min.x + 1;
@@ -665,9 +819,9 @@ void IMB_exr_read_channels(void *handle)
}
void IMB_exr_multilayer_convert(void *handle, void *base,
- void * (*addlayer)(void *base, char *str),
- void (*addpass)(void *base, void *lay, char *str,
- float *rect, int totchan, char *chan_id))
+ void * (*addlayer)(void *base, const char *str),
+ void (*addpass)(void *base, void *lay, const char *str,
+ float *rect, int totchan, const char *chan_id))
{
ExrHandle *data = (ExrHandle *)handle;
ExrLayer *lay;
@@ -696,16 +850,17 @@ void IMB_exr_close(void *handle)
ExrLayer *lay;
ExrPass *pass;
- if (data->ifile)
- delete data->ifile;
- else if (data->ofile)
- delete data->ofile;
- else if (data->tofile)
- delete data->tofile;
+ delete data->ifile;
+ delete data->ifile_stream;
+ delete data->ofile;
+ delete data->tofile;
+ delete data->ofile_stream;
data->ifile = NULL;
+ data->ifile_stream = NULL;
data->ofile = NULL;
data->tofile = NULL;
+ data->ofile_stream = NULL;
BLI_freelistN(&data->channels);
@@ -728,8 +883,9 @@ static int imb_exr_split_token(const char *str, const char *end, const char **to
{
int maxlen = end - str;
int len = 0;
- while (len < maxlen && *(end - len - 1) != '.')
- ++len;
+ while (len < maxlen && *(end - len - 1) != '.') {
+ len++;
+ }
*token = end - len;
return len;
@@ -908,14 +1064,6 @@ static ExrHandle *imb_exr_begin_read_mem(InputFile *file, int width, int height)
/* ********************************************************* */
-typedef struct RGBA {
- float r;
- float g;
- float b;
- float a;
-} RGBA;
-
-
/* debug only */
static void exr_print_filecontents(InputFile *file)
{
@@ -969,13 +1117,15 @@ static int exr_is_multilayer(InputFile *file)
return 0;
}
-struct ImBuf *imb_load_openexr(unsigned char *mem, size_t size, int flags)
+struct ImBuf *imb_load_openexr(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
{
struct ImBuf *ibuf = NULL;
InputFile *file = NULL;
if (imb_is_a_openexr(mem) == 0) return(NULL);
+ colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_FLOAT);
+
try
{
Mem_IStream *membuf = new Mem_IStream(mem, size);
@@ -1004,9 +1154,6 @@ struct ImBuf *imb_load_openexr(unsigned char *mem, size_t size, int flags)
ibuf = IMB_allocImBuf(width, height, is_alpha ? 32 : 24, 0);
ibuf->ftype = OPENEXR;
- /* openEXR is linear as per EXR spec */
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
-
if (!(flags & IB_test)) {
if (is_multi) { /* only enters with IB_multilayer flag set */
/* constructs channels for reading, allocates memory in channels */
diff --git a/source/blender/imbuf/intern/openexr/openexr_api.h b/source/blender/imbuf/intern/openexr/openexr_api.h
index d12fe2fc49f..3135795fb3f 100644
--- a/source/blender/imbuf/intern/openexr/openexr_api.h
+++ b/source/blender/imbuf/intern/openexr/openexr_api.h
@@ -50,7 +50,7 @@ int imb_is_a_openexr (unsigned char *mem);
int imb_save_openexr (struct ImBuf *ibuf, const char *name, int flags);
-struct ImBuf *imb_load_openexr (unsigned char *mem, size_t size, int flags);
+struct ImBuf *imb_load_openexr (unsigned char *mem, size_t size, int flags, char *colorspace);
#ifdef __cplusplus
}
diff --git a/source/blender/imbuf/intern/openexr/openexr_multi.h b/source/blender/imbuf/intern/openexr/openexr_multi.h
index 523dc8120c4..78071975c72 100644
--- a/source/blender/imbuf/intern/openexr/openexr_multi.h
+++ b/source/blender/imbuf/intern/openexr/openexr_multi.h
@@ -37,9 +37,9 @@
/* Note: as for now openexr only supports 32 chars in channel names.
* This api also supports max 8 channels per pass now. easy to fix! */
-#define EXR_LAY_MAXNAME 19
+#define EXR_LAY_MAXNAME 51
#define EXR_PASS_MAXNAME 11
-#define EXR_TOT_MAXNAME 32
+#define EXR_TOT_MAXNAME 64
#define EXR_PASS_MAXCHAN 8
@@ -62,8 +62,8 @@ void IMB_exrtile_write_channels(void *handle, int partx, int party, int level
void IMB_exrtile_clear_channels(void *handle);
void IMB_exr_multilayer_convert(void *handle, void *base,
- void * (*addlayer)(void *base, char *str),
- void (*addpass)(void *base, void *lay, char *str, float *rect, int totchan, char *chan_id));
+ void * (*addlayer)(void *base, const char *str),
+ void (*addpass)(void *base, void *lay, const char *str, float *rect, int totchan, const char *chan_id));
void IMB_exr_close(void *handle);
diff --git a/source/blender/imbuf/intern/openexr/openexr_stub.cpp b/source/blender/imbuf/intern/openexr/openexr_stub.cpp
index e896fc58cf3..7262656d4e8 100644
--- a/source/blender/imbuf/intern/openexr/openexr_stub.cpp
+++ b/source/blender/imbuf/intern/openexr/openexr_stub.cpp
@@ -48,8 +48,8 @@ void IMB_exrtile_write_channels (void *handle, int partx, int party, int level)
void IMB_exrtile_clear_channels (void *handle) { (void)handle; }
void IMB_exr_multilayer_convert (void *handle, void *base,
- void * (*addlayer)(void *base, char *str),
- void (*addpass)(void *base, void *lay, char *str, float *rect, int totchan, char *chan_id))
+ void * (*addlayer)(void *base, const char *str),
+ void (*addpass)(void *base, void *lay, const char *str, float *rect, int totchan, const char *chan_id))
{
(void)handle; (void)base; (void)addlayer; (void)addpass;
}
diff --git a/source/blender/imbuf/intern/png.c b/source/blender/imbuf/intern/png.c
index 2aed1485700..6310d8e105f 100644
--- a/source/blender/imbuf/intern/png.c
+++ b/source/blender/imbuf/intern/png.c
@@ -33,7 +33,8 @@
#include "png.h"
-#include "BLI_blenlib.h"
+#include "BLI_fileops.h"
+
#include "BLI_math.h"
#include "MEM_guardedalloc.h"
@@ -46,6 +47,9 @@
#include "IMB_metadata.h"
#include "IMB_filetype.h"
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+
typedef struct PNGReadStruct {
unsigned char *data;
unsigned int size;
@@ -73,7 +77,7 @@ static void WriteData(png_structp png_ptr, png_bytep data, png_size_t length)
{
ImBuf *ibuf = (ImBuf *) png_get_io_ptr(png_ptr);
- // if buffer is to small increase it.
+ /* if buffer is to small increase it. */
while (ibuf->encodedsize + length > ibuf->encodedbuffersize) {
imb_enlargeencodedbufferImBuf(ibuf);
}
@@ -144,7 +148,7 @@ int imb_savepng(struct ImBuf *ibuf, const char *name, int flags)
return 0;
}
- // copy image data
+ /* copy image data */
pixels = MEM_mallocN(ibuf->x * ibuf->y * bytesperpixel * sizeof(unsigned char), "pixels");
if (pixels == NULL) {
@@ -186,7 +190,7 @@ int imb_savepng(struct ImBuf *ibuf, const char *name, int flags)
}
if (flags & IB_mem) {
- // create image in memory
+ /* create image in memory */
imb_addencodedbufferImBuf(ibuf);
ibuf->encodedsize = 0;
@@ -218,7 +222,7 @@ int imb_savepng(struct ImBuf *ibuf, const char *name, int flags)
png_set_compression_level(png_ptr, compression);
- // png image settings
+ /* png image settings */
png_set_IHDR(png_ptr,
info_ptr,
ibuf->x,
@@ -261,10 +265,10 @@ int imb_savepng(struct ImBuf *ibuf, const char *name, int flags)
png_set_pHYs(png_ptr, info_ptr, (unsigned int)(ibuf->ppm[0] + 0.5), (unsigned int)(ibuf->ppm[1] + 0.5), PNG_RESOLUTION_METER);
}
- // write the file header information
+ /* write the file header information */
png_write_info(png_ptr, info_ptr);
- // allocate memory for an array of row-pointers
+ /* allocate memory for an array of row-pointers */
row_pointers = (png_bytepp) MEM_mallocN(ibuf->y * sizeof(png_bytep), "row_pointers");
if (row_pointers == NULL) {
printf("imb_savepng: Cannot allocate row-pointers array for file '%s'\n", name);
@@ -276,19 +280,19 @@ int imb_savepng(struct ImBuf *ibuf, const char *name, int flags)
return 0;
}
- // set the individual row-pointers to point at the correct offsets
+ /* set the individual row-pointers to point at the correct offsets */
for (i = 0; i < ibuf->y; i++) {
row_pointers[ibuf->y - 1 - i] = (png_bytep)
((unsigned char *)pixels + (i * ibuf->x) * bytesperpixel * sizeof(unsigned char));
}
- // write out the entire image data in one call
+ /* write out the entire image data in one call */
png_write_image(png_ptr, row_pointers);
- // write the additional chunks to the PNG file (not really needed)
+ /* write the additional chunks to the PNG file (not really needed) */
png_write_end(png_ptr, info_ptr);
- // clean up
+ /* clean up */
MEM_freeN(pixels);
MEM_freeN(row_pointers);
png_destroy_write_struct(&png_ptr, &info_ptr);
@@ -301,7 +305,7 @@ int imb_savepng(struct ImBuf *ibuf, const char *name, int flags)
return(1);
}
-ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags)
+ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
{
struct ImBuf *ibuf = NULL;
png_structp png_ptr;
@@ -316,11 +320,13 @@ ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags)
unsigned char *from, *to;
unsigned short *from16;
float *to_float;
- float tmp[4];
int i, bytesperpixel;
if (imb_is_a_png(mem) == 0) return(NULL);
+ /* both 8 and 16 bit PNGs are default to standard byte colorspace */
+ colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_BYTE);
+
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING,
NULL, NULL, NULL);
if (png_ptr == NULL) {
@@ -388,10 +394,6 @@ ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags)
if (ibuf) {
ibuf->ftype = PNG;
- if (bit_depth == 16)
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
- else
- ibuf->profile = IB_PROFILE_SRGB;
if (png_get_valid(png_ptr, info_ptr, PNG_INFO_pHYs)) {
int unit_type;
@@ -419,14 +421,14 @@ ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags)
longjmp(png_jmpbuf(png_ptr), 1);
}
- // allocate memory for an array of row-pointers
+ /* allocate memory for an array of row-pointers */
row_pointers = (png_bytepp) MEM_mallocN(ibuf->y * sizeof(png_uint_16p), "row_pointers");
if (row_pointers == NULL) {
printf("Cannot allocate row-pointers array\n");
longjmp(png_jmpbuf(png_ptr), 1);
}
- // set the individual row-pointers to point at the correct offsets
+ /* set the individual row-pointers to point at the correct offsets */
for (i = 0; i < ibuf->y; i++) {
row_pointers[ibuf->y - 1 - i] = (png_bytep)
((png_uint_16 *)pixels16 + (i * ibuf->x) * bytesperpixel);
@@ -434,7 +436,7 @@ ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags)
png_read_image(png_ptr, row_pointers);
- // copy image data
+ /* copy image data */
to_float = ibuf->rect_float;
from16 = pixels16;
@@ -442,37 +444,33 @@ ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags)
switch (bytesperpixel) {
case 4:
for (i = ibuf->x * ibuf->y; i > 0; i--) {
- tmp[0] = from16[0] / 65535.0;
- tmp[1] = from16[1] / 65535.0;
- tmp[2] = from16[2] / 65535.0;
- tmp[3] = from16[3] / 65535.0;
- srgb_to_linearrgb_v4(to_float, tmp);
+ to_float[0] = from16[0] / 65535.0;
+ to_float[1] = from16[1] / 65535.0;
+ to_float[2] = from16[2] / 65535.0;
+ to_float[3] = from16[3] / 65535.0;
to_float += 4; from16 += 4;
}
break;
case 3:
for (i = ibuf->x * ibuf->y; i > 0; i--) {
- tmp[0] = from16[0] / 65535.0;
- tmp[1] = from16[1] / 65535.0;
- tmp[2] = from16[2] / 65535.0;
- tmp[3] = 1.0;
- srgb_to_linearrgb_v4(to_float, tmp);
+ to_float[0] = from16[0] / 65535.0;
+ to_float[1] = from16[1] / 65535.0;
+ to_float[2] = from16[2] / 65535.0;
+ to_float[3] = 1.0;
to_float += 4; from16 += 3;
}
break;
case 2:
for (i = ibuf->x * ibuf->y; i > 0; i--) {
- tmp[0] = tmp[1] = tmp[2] = from16[0] / 65535.0;
- tmp[3] = from16[1] / 65535.0;
- srgb_to_linearrgb_v4(to_float, tmp);
+ to_float[0] = to_float[1] = to_float[2] = from16[0] / 65535.0;
+ to_float[3] = from16[1] / 65535.0;
to_float += 4; from16 += 2;
}
break;
case 1:
for (i = ibuf->x * ibuf->y; i > 0; i--) {
- tmp[0] = tmp[1] = tmp[2] = from16[0] / 65535.0;
- tmp[3] = 1.0;
- srgb_to_linearrgb_v4(to_float, tmp);
+ to_float[0] = to_float[1] = to_float[2] = from16[0] / 65535.0;
+ to_float[3] = 1.0;
to_float += 4; from16++;
}
break;
@@ -487,14 +485,14 @@ ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags)
longjmp(png_jmpbuf(png_ptr), 1);
}
- // allocate memory for an array of row-pointers
+ /* allocate memory for an array of row-pointers */
row_pointers = (png_bytepp) MEM_mallocN(ibuf->y * sizeof(png_bytep), "row_pointers");
if (row_pointers == NULL) {
printf("Cannot allocate row-pointers array\n");
longjmp(png_jmpbuf(png_ptr), 1);
}
- // set the individual row-pointers to point at the correct offsets
+ /* set the individual row-pointers to point at the correct offsets */
for (i = 0; i < ibuf->y; i++) {
row_pointers[ibuf->y - 1 - i] = (png_bytep)
((unsigned char *)pixels + (i * ibuf->x) * bytesperpixel * sizeof(unsigned char));
@@ -502,7 +500,7 @@ ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags)
png_read_image(png_ptr, row_pointers);
- // copy image data
+ /* copy image data */
to = (unsigned char *) ibuf->rect;
from = pixels;
@@ -555,7 +553,7 @@ ImBuf *imb_loadpng(unsigned char *mem, size_t size, int flags)
png_read_end(png_ptr, info_ptr);
}
- // clean up
+ /* clean up */
if (pixels)
MEM_freeN(pixels);
if (pixels16)
diff --git a/source/blender/imbuf/intern/radiance_hdr.c b/source/blender/imbuf/intern/radiance_hdr.c
index 29c2e63637d..53b00f441c8 100644
--- a/source/blender/imbuf/intern/radiance_hdr.c
+++ b/source/blender/imbuf/intern/radiance_hdr.c
@@ -53,6 +53,9 @@
#include "IMB_allocimbuf.h"
#include "IMB_filetype.h"
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+
/* needed constants */
#define MINELEN 8
#define MAXELEN 0x7fff
@@ -163,15 +166,15 @@ static void FLOAT2RGBE(fCOLOR fcol, RGBE rgbe)
int imb_is_a_hdr(unsigned char *buf)
{
- // For recognition, Blender only loads first 32 bytes, so use #?RADIANCE id instead
- // update: actually, the 'RADIANCE' part is just an optional program name, the magic word is really only the '#?' part
- //if (strstr((char*)buf, "#?RADIANCE")) return 1;
+ /* For recognition, Blender only loads first 32 bytes, so use #?RADIANCE id instead */
+ /* update: actually, the 'RADIANCE' part is just an optional program name, the magic word is really only the '#?' part */
+ //if (strstr((char *)buf, "#?RADIANCE")) return 1;
if (strstr((char *)buf, "#?")) return 1;
- // if (strstr((char*)buf, "32-bit_rle_rgbe")) return 1;
+ // if (strstr((char *)buf, "32-bit_rle_rgbe")) return 1;
return 0;
}
-struct ImBuf *imb_loadhdr(unsigned char *mem, size_t size, int flags)
+struct ImBuf *imb_loadhdr(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
{
struct ImBuf *ibuf;
RGBE *sline;
@@ -184,6 +187,8 @@ struct ImBuf *imb_loadhdr(unsigned char *mem, size_t size, int flags)
char oriY[80], oriX[80];
if (imb_is_a_hdr((void *)mem)) {
+ colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_FLOAT);
+
/* find empty line, next line is resolution info */
for (x = 1; x < size; x++) {
if ((mem[x - 1] == '\n') && (mem[x] == '\n')) {
@@ -207,13 +212,12 @@ struct ImBuf *imb_loadhdr(unsigned char *mem, size_t size, int flags)
if (ibuf == NULL) return NULL;
ibuf->ftype = RADHDR;
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
if (flags & IB_test) return ibuf;
/* read in and decode the actual data */
sline = (RGBE *)MEM_mallocN(sizeof(RGBE) * width, "radhdr_read_tmpscan");
- rect_float = (float *)ibuf->rect_float;
+ rect_float = ibuf->rect_float;
for (y = 0; y < height; y++) {
ptr = freadcolrs(sline, ptr, width);
diff --git a/source/blender/imbuf/intern/readimage.c b/source/blender/imbuf/intern/readimage.c
index e78c4a55843..a1fa05d1098 100644
--- a/source/blender/imbuf/intern/readimage.c
+++ b/source/blender/imbuf/intern/readimage.c
@@ -33,16 +33,20 @@
#ifdef _WIN32
-#include <io.h>
-#include <stddef.h>
-#include <sys/types.h>
-#include "mmap_win.h"
-#define open _open
-#define read _read
-#define close _close
+# include <io.h>
+# include <stddef.h>
+# include <sys/types.h>
+# include "mmap_win.h"
+# define open _open
+# define read _read
+# define close _close
#endif
-#include "BLI_blenlib.h"
+#include <stdlib.h>
+#include "BLI_string.h"
+#include "BLI_path_util.h"
+#include "BLI_fileops.h"
+
#include "BLI_utildefines.h"
#include "imbuf.h"
@@ -50,20 +54,42 @@
#include "IMB_imbuf.h"
#include "IMB_filetype.h"
-ImBuf *IMB_ibImageFromMemory(unsigned char *mem, size_t size, int flags, const char *descr)
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+
+ImBuf *IMB_ibImageFromMemory(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE], const char *descr)
{
ImBuf *ibuf;
ImFileType *type;
+ char effective_colorspace[IM_MAX_SPACE] = "";
if (mem == NULL) {
fprintf(stderr, "%s: NULL pointer\n", __func__);
return NULL;
}
+ if (colorspace)
+ BLI_strncpy(effective_colorspace, colorspace, sizeof(effective_colorspace));
+
for (type = IMB_FILE_TYPES; type->is_a; type++) {
if (type->load) {
- ibuf = type->load(mem, size, flags);
+ ibuf = type->load(mem, size, flags, effective_colorspace);
if (ibuf) {
+ if (colorspace) {
+ if (ibuf->rect) {
+ /* byte buffer is never internally converted to some standard space,
+ * store pointer to it's color space descriptor instead
+ */
+ ibuf->rect_colorspace = colormanage_colorspace_get_named(effective_colorspace);
+ }
+
+ BLI_strncpy(colorspace, effective_colorspace, IM_MAX_SPACE);
+ }
+
+ /* OCIO_TODO: in some cases it's faster to do threaded conversion,
+ * but how to distinguish such cases */
+ colormanage_imbuf_make_linear(ibuf, effective_colorspace);
+
if (flags & IB_premul) {
IMB_premultiply_alpha(ibuf);
ibuf->flags |= IB_premul;
@@ -79,7 +105,7 @@ ImBuf *IMB_ibImageFromMemory(unsigned char *mem, size_t size, int flags, const c
return NULL;
}
-ImBuf *IMB_loadifffile(int file, int flags, const char *descr)
+ImBuf *IMB_loadifffile(int file, int flags, char colorspace[IM_MAX_SPACE], const char *descr)
{
ImBuf *ibuf;
unsigned char *mem;
@@ -90,12 +116,12 @@ ImBuf *IMB_loadifffile(int file, int flags, const char *descr)
size = BLI_file_descriptor_size(file);
mem = mmap(NULL, size, PROT_READ, MAP_SHARED, file, 0);
- if (mem == (unsigned char *)-1) {
+ if (mem == (unsigned char *) -1) {
fprintf(stderr, "%s: couldn't get mapping %s\n", __func__, descr);
return NULL;
}
- ibuf = IMB_ibImageFromMemory(mem, size, flags, descr);
+ ibuf = IMB_ibImageFromMemory(mem, size, flags, colorspace, descr);
if (munmap(mem, size))
fprintf(stderr, "%s: couldn't unmap file %s\n", __func__, descr);
@@ -118,7 +144,7 @@ static void imb_cache_filename(char *filename, const char *name, int flags)
BLI_strncpy(filename, name, IB_FILENAME_SIZE);
}
-ImBuf *IMB_loadiffname(const char *filepath, int flags)
+ImBuf *IMB_loadiffname(const char *filepath, int flags, char colorspace[IM_MAX_SPACE])
{
ImBuf *ibuf;
int file, a;
@@ -129,7 +155,7 @@ ImBuf *IMB_loadiffname(const char *filepath, int flags)
file = BLI_open(filepath_tx, O_BINARY | O_RDONLY, 0);
if (file < 0) return NULL;
- ibuf = IMB_loadifffile(file, flags, filepath_tx);
+ ibuf = IMB_loadifffile(file, flags, colorspace, filepath_tx);
if (ibuf) {
BLI_strncpy(ibuf->name, filepath, sizeof(ibuf->name));
@@ -144,7 +170,7 @@ ImBuf *IMB_loadiffname(const char *filepath, int flags)
return ibuf;
}
-ImBuf *IMB_testiffname(const char *filepath, int flags)
+ImBuf *IMB_testiffname(const char *filepath, int flags, char colorspace[IM_MAX_SPACE])
{
ImBuf *ibuf;
int file;
@@ -155,7 +181,7 @@ ImBuf *IMB_testiffname(const char *filepath, int flags)
file = BLI_open(filepath_tx, O_BINARY | O_RDONLY, 0);
if (file < 0) return NULL;
- ibuf = IMB_loadifffile(file, flags | IB_test | IB_multilayer, filepath_tx);
+ ibuf = IMB_loadifffile(file, flags | IB_test | IB_multilayer, colorspace, filepath_tx);
if (ibuf) {
BLI_strncpy(ibuf->name, filepath, sizeof(ibuf->name));
@@ -178,7 +204,7 @@ static void imb_loadtilefile(ImBuf *ibuf, int file, int tx, int ty, unsigned int
size = BLI_file_descriptor_size(file);
mem = mmap(NULL, size, PROT_READ, MAP_SHARED, file, 0);
- if (mem == (unsigned char *)-1) {
+ if (mem == (unsigned char *) -1) {
fprintf(stderr, "Couldn't get memory mapping for %s\n", ibuf->cachename);
return;
}
diff --git a/source/blender/imbuf/intern/rectop.c b/source/blender/imbuf/intern/rectop.c
index da7618ef806..a11f16d5669 100644
--- a/source/blender/imbuf/intern/rectop.c
+++ b/source/blender/imbuf/intern/rectop.c
@@ -31,32 +31,35 @@
* \ingroup imbuf
*/
+#include <stdlib.h>
-#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
+#include "BLI_math_color.h"
+#include "BLI_math_vector.h"
#include "imbuf.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
#include "IMB_allocimbuf.h"
+#include "IMB_colormanagement.h"
/* blend modes */
-static void blend_color_mix(char *cp, char *cp1, char *cp2, int fac)
+static void blend_color_mix(char cp[3], const char cp1[3], const char cp2[3], const int fac)
{
/* this and other blending modes previously used >>8 instead of /255. both
* are not equivalent (>>8 is /256), and the former results in rounding
* errors that can turn colors black fast after repeated blending */
- int mfac = 255 - fac;
+ const int mfac = 255 - fac;
cp[0] = (mfac * cp1[0] + fac * cp2[0]) / 255;
cp[1] = (mfac * cp1[1] + fac * cp2[1]) / 255;
cp[2] = (mfac * cp1[2] + fac * cp2[2]) / 255;
}
-static void blend_color_add(char *cp, char *cp1, char *cp2, int fac)
+static void blend_color_add(char cp[3], const char cp1[3], const char cp2[3], const int fac)
{
int temp;
@@ -68,7 +71,7 @@ static void blend_color_add(char *cp, char *cp1, char *cp2, int fac)
if (temp > 254) cp[2] = 255; else cp[2] = temp;
}
-static void blend_color_sub(char *cp, char *cp1, char *cp2, int fac)
+static void blend_color_sub(char cp[3], const char cp1[3], const char cp2[3], const int fac)
{
int temp;
@@ -80,7 +83,7 @@ static void blend_color_sub(char *cp, char *cp1, char *cp2, int fac)
if (temp < 0) cp[2] = 0; else cp[2] = temp;
}
-static void blend_color_mul(char *cp, char *cp1, char *cp2, int fac)
+static void blend_color_mul(char cp[3], const char cp1[3], const char cp2[3], const int fac)
{
int mfac = 255 - fac;
@@ -90,7 +93,7 @@ static void blend_color_mul(char *cp, char *cp1, char *cp2, int fac)
cp[2] = (mfac * cp1[2] + fac * ((cp1[2] * cp2[2]) / 255)) / 255;
}
-static void blend_color_lighten(char *cp, char *cp1, char *cp2, int fac)
+static void blend_color_lighten(char cp[3], const char cp1[3], const char cp2[3], const int fac)
{
/* See if are lighter, if so mix, else don't do anything.
* if the paint col is darker then the original, then ignore */
@@ -99,11 +102,12 @@ static void blend_color_lighten(char *cp, char *cp1, char *cp2, int fac)
cp[1] = cp1[1];
cp[2] = cp1[2];
}
- else
+ else {
blend_color_mix(cp, cp1, cp2, fac);
+ }
}
-static void blend_color_darken(char *cp, char *cp1, char *cp2, int fac)
+static void blend_color_darken(char cp[3], const char cp1[3], const char cp2[3], const int fac)
{
/* See if were darker, if so mix, else don't do anything.
* if the paint col is brighter then the original, then ignore */
@@ -112,8 +116,9 @@ static void blend_color_darken(char *cp, char *cp1, char *cp2, int fac)
cp[1] = cp1[1];
cp[2] = cp1[2];
}
- else
+ else {
blend_color_mix(cp, cp1, cp2, fac);
+ }
}
unsigned int IMB_blend_color(unsigned int src1, unsigned int src2, int fac, IMB_BlendMode mode)
@@ -160,7 +165,7 @@ unsigned int IMB_blend_color(unsigned int src1, unsigned int src2, int fac, IMB_
return dst;
}
-static void blend_color_mix_float(float *cp, float *cp1, float *cp2, float fac)
+static void blend_color_mix_float(float cp[3], const float cp1[3], const float cp2[3], const float fac)
{
float mfac = 1.0f - fac;
cp[0] = mfac * cp1[0] + fac * cp2[0];
@@ -168,7 +173,7 @@ static void blend_color_mix_float(float *cp, float *cp1, float *cp2, float fac)
cp[2] = mfac * cp1[2] + fac * cp2[2];
}
-static void blend_color_add_float(float *cp, float *cp1, float *cp2, float fac)
+static void blend_color_add_float(float cp[3], const float cp1[3], const float cp2[3], const float fac)
{
cp[0] = cp1[0] + fac * cp2[0];
cp[1] = cp1[1] + fac * cp2[1];
@@ -179,7 +184,7 @@ static void blend_color_add_float(float *cp, float *cp1, float *cp2, float fac)
if (cp[2] > 1.0f) cp[2] = 1.0f;
}
-static void blend_color_sub_float(float *cp, float *cp1, float *cp2, float fac)
+static void blend_color_sub_float(float cp[3], const float cp1[3], const float cp2[3], const float fac)
{
cp[0] = cp1[0] - fac * cp2[0];
cp[1] = cp1[1] - fac * cp2[1];
@@ -190,7 +195,7 @@ static void blend_color_sub_float(float *cp, float *cp1, float *cp2, float fac)
if (cp[2] < 0.0f) cp[2] = 0.0f;
}
-static void blend_color_mul_float(float *cp, float *cp1, float *cp2, float fac)
+static void blend_color_mul_float(float cp[3], const float cp1[3], const float cp2[3], const float fac)
{
float mfac = 1.0f - fac;
@@ -199,7 +204,7 @@ static void blend_color_mul_float(float *cp, float *cp1, float *cp2, float fac)
cp[2] = mfac * cp1[2] + fac * (cp1[2] * cp2[2]);
}
-static void blend_color_lighten_float(float *cp, float *cp1, float *cp2, float fac)
+static void blend_color_lighten_float(float cp[3], const float cp1[3], const float cp2[3], const float fac)
{
/* See if are lighter, if so mix, else don't do anything.
* if the pafloat col is darker then the original, then ignore */
@@ -212,7 +217,7 @@ static void blend_color_lighten_float(float *cp, float *cp1, float *cp2, float f
blend_color_mix_float(cp, cp1, cp2, fac);
}
-static void blend_color_darken_float(float *cp, float *cp1, float *cp2, float fac)
+static void blend_color_darken_float(float cp[3], const float cp1[3], const float cp2[3], const float fac)
{
/* See if were darker, if so mix, else don't do anything.
* if the pafloat col is brighter then the original, then ignore */
@@ -481,7 +486,9 @@ void IMB_rectfill(struct ImBuf *drect, const float col[4])
}
-void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, const float col[4], int x1, int y1, int x2, int y2)
+void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height,
+ const float col[4], struct ColorManagedDisplay *display,
+ int x1, int y1, int x2, int y2)
{
int i, j;
float a; /* alpha */
@@ -544,21 +551,31 @@ void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height,
}
if (rectf) {
+ float col_conv[4];
float *pixel;
+
+ if (display) {
+ copy_v4_v4(col_conv, col);
+ IMB_colormanagement_display_to_scene_linear_v3(col_conv, display);
+ }
+ else {
+ srgb_to_linearrgb_v4(col_conv, col);
+ }
+
for (j = 0; j < y2 - y1; j++) {
for (i = 0; i < x2 - x1; i++) {
pixel = rectf + 4 * (((y1 + j) * width) + (x1 + i));
if (a == 1.0f) {
- pixel[0] = col[0];
- pixel[1] = col[1];
- pixel[2] = col[2];
+ pixel[0] = col_conv[0];
+ pixel[1] = col_conv[1];
+ pixel[2] = col_conv[2];
pixel[3] = 1.0f;
}
else {
float alphatest;
- pixel[0] = (col[0] * a) + (pixel[0] * ai);
- pixel[1] = (col[1] * a) + (pixel[1] * ai);
- pixel[2] = (col[2] * a) + (pixel[2] * ai);
+ pixel[0] = (col_conv[0] * a) + (pixel[0] * ai);
+ pixel[1] = (col_conv[1] * a) + (pixel[1] * ai);
+ pixel[2] = (col_conv[2] * a) + (pixel[2] * ai);
pixel[3] = (alphatest = (pixel[3] + a)) < 1.0f ? alphatest : 1.0f;
}
}
@@ -566,10 +583,11 @@ void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height,
}
}
-void IMB_rectfill_area(struct ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2)
+void IMB_rectfill_area(struct ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2, struct ColorManagedDisplay *display)
{
if (!ibuf) return;
- buf_rectfill_area((unsigned char *) ibuf->rect, ibuf->rect_float, ibuf->x, ibuf->y, col, x1, y1, x2, y2);
+ buf_rectfill_area((unsigned char *) ibuf->rect, ibuf->rect_float, ibuf->x, ibuf->y, col, display,
+ x1, y1, x2, y2);
}
diff --git a/source/blender/imbuf/intern/rotate.c b/source/blender/imbuf/intern/rotate.c
index b3fe363a266..e98757883be 100644
--- a/source/blender/imbuf/intern/rotate.c
+++ b/source/blender/imbuf/intern/rotate.c
@@ -31,11 +31,8 @@
* \ingroup imbuf
*/
-
-#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
-
#include "MEM_guardedalloc.h"
#include "imbuf.h"
diff --git a/source/blender/imbuf/intern/scaling.c b/source/blender/imbuf/intern/scaling.c
index 27034317396..527f334d6a4 100644
--- a/source/blender/imbuf/intern/scaling.c
+++ b/source/blender/imbuf/intern/scaling.c
@@ -32,7 +32,6 @@
*/
-#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
#include "MEM_guardedalloc.h"
@@ -295,8 +294,6 @@ struct ImBuf *IMB_double_y(struct ImBuf *ibuf1)
/* result in ibuf2, scaling should be done correctly */
void imb_onehalf_no_alloc(struct ImBuf *ibuf2, struct ImBuf *ibuf1)
{
- uchar *p1, *p2 = NULL, *dest;
- float *p1f, *destf, *p2f = NULL;
int x, y;
const short do_rect = (ibuf1->rect != NULL);
const short do_float = (ibuf1->rect_float != NULL) && (ibuf2->rect_float != NULL);
@@ -305,16 +302,14 @@ void imb_onehalf_no_alloc(struct ImBuf *ibuf2, struct ImBuf *ibuf1)
imb_addrectImBuf(ibuf2);
}
- p1f = ibuf1->rect_float;
- destf = ibuf2->rect_float;
- p1 = (uchar *) ibuf1->rect;
- dest = (uchar *) ibuf2->rect;
-
- for (y = ibuf2->y; y > 0; y--) {
- if (do_rect) p2 = p1 + (ibuf1->x << 2);
- if (do_float) p2f = p1f + (ibuf1->x << 2);
- for (x = ibuf2->x; x > 0; x--) {
- if (do_rect) {
+ if (do_rect) {
+ char *p1, *p2, *dest;
+
+ p1 = (char *) ibuf1->rect;
+ dest = (char *) ibuf2->rect;
+ for (y = ibuf2->y; y > 0; y--) {
+ p2 = p1 + (ibuf1->x << 2);
+ for (x = ibuf2->x; x > 0; x--) {
dest[0] = (p1[0] + p2[0] + p1[4] + p2[4]) >> 2;
dest[1] = (p1[1] + p2[1] + p1[5] + p2[5]) >> 2;
dest[2] = (p1[2] + p2[2] + p1[6] + p2[6]) >> 2;
@@ -323,24 +318,31 @@ void imb_onehalf_no_alloc(struct ImBuf *ibuf2, struct ImBuf *ibuf1)
p2 += 8;
dest += 4;
}
- if (do_float) {
- destf[0] = 0.25f * (p1f[0] + p2f[0] + p1f[4] + p2f[4]);
- destf[1] = 0.25f * (p1f[1] + p2f[1] + p1f[5] + p2f[5]);
- destf[2] = 0.25f * (p1f[2] + p2f[2] + p1f[6] + p2f[6]);
- destf[3] = 0.25f * (p1f[3] + p2f[3] + p1f[7] + p2f[7]);
- p1f += 8;
- p2f += 8;
- destf += 4;
- }
- }
- if (do_rect) p1 = p2;
- if (do_float) p1f = p2f;
- if (ibuf1->x & 1) {
- if (do_rect) p1 += 4;
- if (do_float) p1f += 4;
+ p1 = p2;
+ if (ibuf1->x & 1) p1 += 4;
}
}
+ if (do_float) {
+ float *p1f, *p2f, *destf;
+
+ p1f = ibuf1->rect_float;
+ destf = ibuf2->rect_float;
+ for (y = ibuf2->y; y > 0; y--) {
+ p2f = p1f + (ibuf1->x << 2);
+ for (x = ibuf2->x; x > 0; x--) {
+ destf[0] = 0.25f * (p1f[0] + p2f[0] + p1f[4] + p2f[4]);
+ destf[1] = 0.25f * (p1f[1] + p2f[1] + p1f[5] + p2f[5]);
+ destf[2] = 0.25f * (p1f[2] + p2f[2] + p1f[6] + p2f[6]);
+ destf[3] = 0.25f * (p1f[3] + p2f[3] + p1f[7] + p2f[7]);
+ p1f += 8;
+ p2f += 8;
+ destf += 4;
+ }
+ p1f = p2f;
+ if (ibuf1->x & 1) p1f += 4;
+ }
+ }
}
ImBuf *IMB_onehalf(struct ImBuf *ibuf1)
@@ -774,7 +776,7 @@ static void q_scale_float(float *in, float *out, int in_width,
* Should be comparable in speed to the ImBuf ..._fast functions at least
* for byte-buffers.
*
- * NOTE: disabled, due to inacceptable inaccuracy and quality loss, see bug #18609 (ton)
+ * NOTE: disabled, due to unacceptable inaccuracy and quality loss, see bug #18609 (ton)
*/
static int q_scale_linear_interpolation(
struct ImBuf *ibuf, int newx, int newy)
@@ -1049,7 +1051,7 @@ static ImBuf *scaledowny(struct ImBuf *ibuf, int newy)
sample -= 1.0f;
}
- }
+ }
if (do_rect) {
// printf("%ld %ld\n", (uchar *)rect - ((uchar *)ibuf->rect), rect_size);
@@ -1313,7 +1315,7 @@ static ImBuf *scaleupy(struct ImBuf *ibuf, int newy)
rect += 2 * skipx;
}
if (do_float) {
- rectf = ((float *)ibuf->rect_float) + 4 * (x - 1);
+ rectf = ibuf->rect_float + 4 * (x - 1);
newrectf = _newrectf + 4 * (x - 1);
val_af = rectf[0];
@@ -1460,7 +1462,7 @@ struct ImBuf *IMB_scaleImBuf(struct ImBuf *ibuf, unsigned int newx, unsigned int
scalefast_Z_ImBuf(ibuf, newx, newy);
/* try to scale common cases in a fast way */
- /* disabled, quality loss is inacceptable, see report #18609 (ton) */
+ /* disabled, quality loss is unacceptable, see report #18609 (ton) */
if (0 && q_scale_linear_interpolation(ibuf, newx, newy)) {
return ibuf;
}
diff --git a/source/blender/imbuf/intern/targa.c b/source/blender/imbuf/intern/targa.c
index 0260ed46b00..253680e4bea 100644
--- a/source/blender/imbuf/intern/targa.c
+++ b/source/blender/imbuf/intern/targa.c
@@ -31,9 +31,11 @@
#ifdef WIN32
-#include <io.h>
+# include <io.h>
#endif
-#include "BLI_blenlib.h"
+
+#include "BLI_fileops.h"
+
#include "MEM_guardedalloc.h"
#include "imbuf.h"
@@ -44,6 +46,8 @@
#include "IMB_allocimbuf.h"
#include "IMB_filetype.h"
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
/* this one is only def-ed once, strangely... related to GS? */
#define GSS(x) (((uchar *)(x))[1] << 8 | ((uchar *)(x))[0])
@@ -544,22 +548,23 @@ partial_load:
}
-ImBuf *imb_loadtarga(unsigned char *mem, size_t mem_size, int flags)
+ImBuf *imb_loadtarga(unsigned char *mem, size_t mem_size, int flags, char colorspace[IM_MAX_SPACE])
{
TARGA tga;
struct ImBuf *ibuf;
int col, count, size;
unsigned int *rect, *cmap = NULL /*, mincol = 0*/, maxcol = 0;
uchar *cp = (uchar *) &col;
-
+
if (checktarga(&tga, mem) == 0) return(NULL);
+ colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_BYTE);
+
if (flags & IB_test) ibuf = IMB_allocImBuf(tga.xsize, tga.ysize, tga.pixsize, 0);
else ibuf = IMB_allocImBuf(tga.xsize, tga.ysize, (tga.pixsize + 0x7) & ~0x7, IB_rect);
if (ibuf == NULL) return(NULL);
ibuf->ftype = TGA;
- ibuf->profile = IB_PROFILE_SRGB;
mem = mem + 18 + tga.numid;
cp[0] = 0xff;
@@ -680,9 +685,11 @@ ImBuf *imb_loadtarga(unsigned char *mem, size_t mem_size, int flags)
}
}
- if (tga.imgdes & 0x20) IMB_flipy(ibuf);
+ if (tga.imgdes & 0x20) {
+ IMB_flipy(ibuf);
+ }
- if (ibuf && ibuf->rect)
+ if (ibuf->rect)
IMB_convert_rgba_to_abgr(ibuf);
return(ibuf);
diff --git a/source/blender/imbuf/intern/thumbs.c b/source/blender/imbuf/intern/thumbs.c
index 54d90ec5c56..ff7218d649c 100644
--- a/source/blender/imbuf/intern/thumbs.c
+++ b/source/blender/imbuf/intern/thumbs.c
@@ -34,18 +34,17 @@
#include "MEM_guardedalloc.h"
-#include "BLI_blenlib.h"
+#include "BLI_string.h"
+#include "BLI_path_util.h"
+#include "BLI_fileops.h"
#include "BLI_md5.h"
-#include "BKE_utildefines.h"
-
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
#include "IMB_thumbs.h"
#include "IMB_metadata.h"
#include <ctype.h>
-#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <sys/types.h>
@@ -314,7 +313,7 @@ ImBuf *IMB_thumb_create(const char *path, ThumbSize size, ThumbSource source, Im
img = IMB_loadblend_thumb(path);
}
else {
- img = IMB_loadiffname(path, IB_rect | IB_metadata);
+ img = IMB_loadiffname(path, IB_rect | IB_metadata, NULL);
}
}
@@ -327,7 +326,7 @@ ImBuf *IMB_thumb_create(const char *path, ThumbSize size, ThumbSource source, Im
}
else if (THB_SOURCE_MOVIE == source) {
struct anim *anim = NULL;
- anim = IMB_open_anim(path, IB_rect | IB_metadata, 0);
+ anim = IMB_open_anim(path, IB_rect | IB_metadata, 0, NULL);
if (anim != NULL) {
img = IMB_anim_absolute(anim, 0, IMB_TC_NONE, IMB_PROXY_NONE);
if (img == NULL) {
@@ -377,6 +376,7 @@ ImBuf *IMB_thumb_create(const char *path, ThumbSize size, ThumbSource source, Im
}
img->ftype = PNG;
img->planes = 32;
+
if (IMB_saveiff(img, temp, IB_rect | IB_metadata)) {
#ifndef WIN32
chmod(temp, S_IRUSR | S_IWUSR);
@@ -402,7 +402,7 @@ ImBuf *IMB_thumb_read(const char *path, ThumbSize size)
return NULL;
}
if (thumbpath_from_uri(uri, thumb, sizeof(thumb), size)) {
- img = IMB_loadiffname(thumb, IB_rect | IB_metadata);
+ img = IMB_loadiffname(thumb, IB_rect | IB_metadata, NULL);
}
return img;
@@ -457,10 +457,10 @@ ImBuf *IMB_thumb_manage(const char *path, ThumbSize size, ThumbSource source)
if (thumbpath_from_uri(uri, thumb, sizeof(thumb), size)) {
if (BLI_path_ncmp(path, thumb, sizeof(thumb)) == 0) {
- img = IMB_loadiffname(path, IB_rect);
+ img = IMB_loadiffname(path, IB_rect, NULL);
}
else {
- img = IMB_loadiffname(thumb, IB_rect | IB_metadata);
+ img = IMB_loadiffname(thumb, IB_rect | IB_metadata, NULL);
if (img) {
char mtime[40];
if (!IMB_metadata_get_field(img, "Thumb::MTime", mtime, 40)) {
diff --git a/source/blender/imbuf/intern/thumbs_blend.c b/source/blender/imbuf/intern/thumbs_blend.c
index afef2365de4..cfc49d8cef5 100644
--- a/source/blender/imbuf/intern/thumbs_blend.c
+++ b/source/blender/imbuf/intern/thumbs_blend.c
@@ -29,18 +29,20 @@
#include "zlib.h"
+#include "MEM_guardedalloc.h"
+
#include "BLI_utildefines.h"
+#include "BLI_endian_switch.h"
#include "BLI_fileops.h"
-#include "BKE_utildefines.h"
+#include "BLO_blend_defs.h"
+
#include "BKE_global.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
#include "IMB_thumbs.h"
-#include "MEM_guardedalloc.h"
-
/* extracts the thumbnail from between the 'REND' and the 'GLOB'
* chunks of the header, don't use typical blend loader because its too slow */
@@ -78,7 +80,7 @@ static ImBuf *loadblend_thumb(gzFile gzfile)
while (gzread(gzfile, bhead, sizeof_bhead) == sizeof_bhead) {
if (endian_switch)
- SWITCH_INT(bhead[1]); /* length */
+ BLI_endian_switch_int32(&bhead[1]); /* length */
if (bhead[0] == REND) {
gzseek(gzfile, bhead[1], SEEK_CUR); /* skip to the next */
@@ -97,8 +99,8 @@ static ImBuf *loadblend_thumb(gzFile gzfile)
return NULL;
if (endian_switch) {
- SWITCH_INT(size[0]);
- SWITCH_INT(size[1]);
+ BLI_endian_switch_int32(&size[0]);
+ BLI_endian_switch_int32(&size[1]);
}
/* length */
bhead[1] -= sizeof(int) * 2;
diff --git a/source/blender/imbuf/intern/tiff.c b/source/blender/imbuf/intern/tiff.c
index 615b420429a..83830f260e1 100644
--- a/source/blender/imbuf/intern/tiff.c
+++ b/source/blender/imbuf/intern/tiff.c
@@ -46,12 +46,10 @@
#include "imbuf.h"
#include "BLI_math.h"
-#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BKE_global.h"
-
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
@@ -59,9 +57,14 @@
#include "IMB_filetype.h"
#include "IMB_filter.h"
-#include "tiffio.h"
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+#include "tiffio.h"
+#ifdef WIN32
+#include "utfconv.h"
+#endif
/***********************
* Local declarations. *
@@ -111,7 +114,7 @@ static int imb_tiff_DummyMapProc(thandle_t fd, tdata_t *pbase, toff_t *psize)
* Reads data from an in-memory TIFF file.
*
* \param handle: Handle of the TIFF file (pointer to ImbTIFFMemFile).
- * \param data: Buffer to contain data (treat as void*).
+ * \param data: Buffer to contain data (treat as (void *)).
* \param n: Number of bytes to read.
*
* \return: Number of bytes actually read.
@@ -464,9 +467,7 @@ static int imb_read_tiff_pixels(ImBuf *ibuf, TIFF *image, int premul)
_TIFFfree(sbuf);
if (success) {
- ibuf->profile = (bitspersample == 32) ? IB_PROFILE_LINEAR_RGB : IB_PROFILE_SRGB;
-
-// Code seems to be not needed for 16 bits tif, on PPC G5 OSX (ton)
+ /* Code seems to be not needed for 16 bits tif, on PPC G5 OSX (ton) */
if (bitspersample < 16)
if (ENDIAN_ORDER == B_ENDIAN)
IMB_convert_rgba_to_abgr(tmpibuf);
@@ -508,7 +509,7 @@ void imb_inittiff(void)
*
* \return: A newly allocated ImBuf structure if successful, otherwise NULL.
*/
-ImBuf *imb_loadtiff(unsigned char *mem, size_t size, int flags)
+ImBuf *imb_loadtiff(unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE])
{
TIFF *image = NULL;
ImBuf *ibuf = NULL, *hbuf;
@@ -527,6 +528,9 @@ ImBuf *imb_loadtiff(unsigned char *mem, size_t size, int flags)
if (imb_is_a_tiff(mem) == 0)
return NULL;
+ /* both 8 and 16 bit PNGs are default to standard byte colorspace */
+ colorspace_set_default_role(colorspace, IM_MAX_SPACE, COLOR_ROLE_DEFAULT_BYTE);
+
image = imb_tiff_client_open(&memFile, mem, size);
if (image == NULL) {
@@ -714,7 +718,13 @@ int imb_savetiff(ImBuf *ibuf, const char *name, int flags)
}
else {
/* create image as a file */
+#ifdef WIN32
+ wchar_t *wname = alloc_utf16_from_8(name, 0);
+ image = TIFFOpenW(wname, "w");
+ free(wname);
+#else
image = TIFFOpen(name, "w");
+#endif
}
if (image == NULL) {
fprintf(stderr,
@@ -780,10 +790,14 @@ int imb_savetiff(ImBuf *ibuf, const char *name, int flags)
/* convert from float source */
float rgb[4];
- if (ibuf->profile == IB_PROFILE_LINEAR_RGB)
- linearrgb_to_srgb_v3_v3(rgb, &fromf[from_i]);
- else
+ if (ibuf->float_colorspace) {
+ /* float buffer was managed already, no need in color space conversion */
copy_v3_v3(rgb, &fromf[from_i]);
+ }
+ else {
+ /* standard linear-to-srgb conversion if float buffer wasn't managed */
+ linearrgb_to_srgb_v3_v3(rgb, &fromf[from_i]);
+ }
rgb[3] = fromf[from_i + 3];
diff --git a/source/blender/imbuf/intern/util.c b/source/blender/imbuf/intern/util.c
index 92c10a094d3..8dd791c8508 100644
--- a/source/blender/imbuf/intern/util.c
+++ b/source/blender/imbuf/intern/util.c
@@ -33,14 +33,18 @@
#ifdef _WIN32
-#include <io.h>
-#define open _open
-#define read _read
-#define close _close
+# include <io.h>
+# define open _open
+# define read _read
+# define close _close
#endif
-#include "BLI_blenlib.h"
+#include <stdlib.h>
+
+#include "BLI_path_util.h"
#include "BLI_fileops.h"
+#include "BLI_utildefines.h"
+#include "BLI_string.h"
#include "DNA_userdef_types.h"
#include "BKE_global.h"
@@ -79,6 +83,7 @@ const char *imb_ext_image[] = {
#endif
#ifdef WITH_OPENJPEG
".jp2",
+ ".j2c",
#endif
#ifdef WITH_HDR
".hdr",
@@ -206,7 +211,12 @@ int IMB_ispic(const char *filename)
static int isavi(const char *name)
{
+#ifdef WITH_AVI
return AVI_is_avi(name);
+#else
+ (void)name;
+ return FALSE;
+#endif
}
#ifdef WITH_QUICKTIME
@@ -218,31 +228,43 @@ static int isqtime(const char *name)
#ifdef WITH_FFMPEG
-void silence_log_ffmpeg(int quiet)
+/* BLI_vsnprintf in ffmpeg_log_callback() causes invalid warning */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmissing-format-attribute"
+
+static char ffmpeg_last_error[1024];
+
+static void ffmpeg_log_callback(void *ptr, int level, const char *format, va_list arg)
{
- if (quiet) {
- av_log_set_level(AV_LOG_QUIET);
+ if (ELEM(level, AV_LOG_FATAL, AV_LOG_ERROR)) {
+ size_t n = BLI_vsnprintf(ffmpeg_last_error, sizeof(ffmpeg_last_error), format, arg);
+
+ /* strip trailing \n */
+ ffmpeg_last_error[n - 1] = '\0';
}
- else {
- av_log_set_level(AV_LOG_DEBUG);
+
+ if (G.debug & G_DEBUG_FFMPEG) {
+ /* call default logger to print all message to console */
+ av_log_default_callback(ptr, level, format, arg);
}
}
-extern void do_init_ffmpeg(void);
-void do_init_ffmpeg(void)
+#pragma GCC diagnostic pop
+
+void IMB_ffmpeg_init(void)
{
- static int ffmpeg_init = 0;
- if (!ffmpeg_init) {
- ffmpeg_init = 1;
- av_register_all();
- avdevice_register_all();
- if ((G.debug & G_DEBUG_FFMPEG) == 0) {
- silence_log_ffmpeg(1);
- }
- else {
- silence_log_ffmpeg(0);
- }
- }
+ av_register_all();
+ avdevice_register_all();
+
+ ffmpeg_last_error[0] = '\0';
+
+ /* set own callback which could store last error to report to UI */
+ av_log_set_callback(ffmpeg_log_callback);
+}
+
+const char *IMB_ffmpeg_last_error(void)
+{
+ return ffmpeg_last_error;
}
static int isffmpeg(const char *filename)
@@ -253,8 +275,6 @@ static int isffmpeg(const char *filename)
AVCodec *pCodec;
AVCodecContext *pCodecCtx;
- do_init_ffmpeg();
-
if (BLI_testextensie(filename, ".swf") ||
BLI_testextensie(filename, ".jpg") ||
BLI_testextensie(filename, ".png") ||
diff --git a/source/blender/imbuf/intern/writeimage.c b/source/blender/imbuf/intern/writeimage.c
index 1c182e9784e..5d785e08212 100644
--- a/source/blender/imbuf/intern/writeimage.c
+++ b/source/blender/imbuf/intern/writeimage.c
@@ -38,8 +38,28 @@
#include "IMB_imbuf.h"
#include "IMB_filetype.h"
+#include "IMB_colormanagement.h"
+#include "IMB_colormanagement_intern.h"
+
#include "imbuf.h"
+static ImBuf *prepare_write_imbuf(ImFileType *type, ImBuf *ibuf)
+{
+ ImBuf *write_ibuf = ibuf;
+
+ if (type->flag & IM_FTYPE_FLOAT) {
+ /* pass */
+ }
+ else {
+ if (ibuf->rect == NULL && ibuf->rect_float) {
+ ibuf->rect_colorspace = colormanage_colorspace_get_roled(COLOR_ROLE_DEFAULT_BYTE);
+ IMB_rect_from_float(ibuf);
+ }
+ }
+
+ return write_ibuf;
+}
+
short IMB_saveiff(struct ImBuf *ibuf, const char *name, int flags)
{
ImFileType *type;
@@ -49,11 +69,17 @@ short IMB_saveiff(struct ImBuf *ibuf, const char *name, int flags)
for (type = IMB_FILE_TYPES; type->is_a; type++) {
if (type->save && type->ftype(type, ibuf)) {
- if (!(type->flag & IM_FTYPE_FLOAT)) {
- if (ibuf->rect == NULL && ibuf->rect_float)
- IMB_rect_from_float(ibuf);
- }
- return type->save(ibuf, name, flags);
+ ImBuf *write_ibuf;
+ short result = FALSE;
+
+ write_ibuf = prepare_write_imbuf(type, ibuf);
+
+ result = type->save(write_ibuf, name, flags);
+
+ if (write_ibuf != ibuf)
+ IMB_freeImBuf(write_ibuf);
+
+ return result;
}
}
diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h
index 95eadc23ef4..a769ce742c9 100644
--- a/source/blender/makesdna/DNA_ID.h
+++ b/source/blender/makesdna/DNA_ID.h
@@ -86,7 +86,7 @@ typedef struct IDProperty {
#define IDP_STRING_SUB_UTF8 0 /* default */
#define IDP_STRING_SUB_BYTE 1 /* arbitrary byte array, _not_ null terminated */
/*->flag*/
-#define IDP_FLAG_GHOST (1<<7) /* this means the propery is set but RNA will return
+#define IDP_FLAG_GHOST (1<<7) /* this means the property is set but RNA will return
* false when checking 'RNA_property_is_set',
* currently this is a runtime flag */
@@ -108,7 +108,7 @@ typedef struct ID {
void *next, *prev;
struct ID *newid;
struct Library *lib;
- char name[66];
+ char name[66]; /* MAX_ID_NAME */
short pad, us;
/**
* LIB_... flags report on status of the datablock this ID belongs
@@ -238,11 +238,11 @@ typedef struct PreviewImage {
#define LIB_LOCAL 0
#define LIB_EXTERN 1
#define LIB_INDIRECT 2
-#define LIB_TEST 8
-#define LIB_TESTEXT (LIB_TEST | LIB_EXTERN)
-#define LIB_TESTIND (LIB_TEST | LIB_INDIRECT)
+#define LIB_NEED_EXPAND 8
+#define LIB_TESTEXT (LIB_NEED_EXPAND | LIB_EXTERN)
+#define LIB_TESTIND (LIB_NEED_EXPAND | LIB_INDIRECT)
#define LIB_READ 16
-#define LIB_NEEDLINK 32
+#define LIB_NEED_LINK 32
#define LIB_NEW 256
#define LIB_FAKEUSER 512
diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h
index a8292d02463..d75c6019825 100644
--- a/source/blender/makesdna/DNA_action_types.h
+++ b/source/blender/makesdna/DNA_action_types.h
@@ -218,7 +218,7 @@ typedef struct bPoseChannel {
short rotmode; /* eRotationModes - rotation representation to use */
short pad;
- float chan_mat[4][4]; /* matrix result of loc/quat/size , and where we put deform in, see next line */
+ float chan_mat[4][4]; /* matrix result of loc/quat/size, and where we put deform in, see next line */
float pose_mat[4][4]; /* constraints accumulate here. in the end, pose_mat = bone->arm_mat * chan_mat
* this matrix is object space */
float constinv[4][4]; /* inverse result of constraints.
@@ -604,11 +604,11 @@ typedef enum eSAction_Flag {
/* draw time in seconds instead of time in frames */
SACTION_DRAWTIME = (1 << 2),
/* don't filter action channels according to visibility */
- //SACTION_NOHIDE = (1<<3), // XXX depreceated... old animation system
+ //SACTION_NOHIDE = (1<<3), // XXX deprecated... old animation system
/* don't kill overlapping keyframes after transform */
SACTION_NOTRANSKEYCULL = (1 << 4),
/* don't include keyframes that are out of view */
- //SACTION_HORIZOPTIMISEON = (1<<5), // XXX depreceated... old irrelevant trick
+ //SACTION_HORIZOPTIMISEON = (1<<5), // XXX deprecated... old irrelevant trick
/* show pose-markers (local to action) in Action Editor mode */
SACTION_POSEMARKERS_SHOW = (1 << 6),
/* don't draw action channels using group colors (where applicable) */
@@ -653,7 +653,7 @@ typedef enum eAnimEdit_AutoSnap {
/* ************************************************ */
/* Legacy Data */
-/* WARNING: Action Channels are now depreceated... they were part of the old animation system!
+/* WARNING: Action Channels are now deprecated... they were part of the old animation system!
* (ONLY USED FOR DO_VERSIONS...)
*
* Action Channels belong to Actions. They are linked with an IPO block, and can also own
diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h
index 17ee8723e53..7cf0d588710 100644
--- a/source/blender/makesdna/DNA_anim_types.h
+++ b/source/blender/makesdna/DNA_anim_types.h
@@ -628,7 +628,7 @@ typedef enum eNlaStrip_Flag {
/* NLA strip length is synced to the length of the referenced action */
NLASTRIP_FLAG_SYNC_LENGTH = (1<<9),
- /* playback flags (may be overriden by F-Curves) */
+ /* playback flags (may be overridden by F-Curves) */
/* NLA strip blendin/out values are set automatically based on overlaps */
NLASTRIP_FLAG_AUTO_BLENDS = (1<<10),
/* NLA strip is played back in reverse order */
diff --git a/source/blender/makesdna/DNA_armature_types.h b/source/blender/makesdna/DNA_armature_types.h
index 0afe3773c94..0a20a60c893 100644
--- a/source/blender/makesdna/DNA_armature_types.h
+++ b/source/blender/makesdna/DNA_armature_types.h
@@ -103,13 +103,13 @@ typedef struct bArmature {
unsigned int layer_used; /* for UI, to show which layers are there */
unsigned int layer, layer_protected; /* for buttons to work, both variables in this order together */
-// XXX depreceated... old animaton system (armature only viz) ---
+// XXX deprecated... old animaton system (armature only viz) ---
short ghostep, ghostsize; /* number of frames to ghosts to show, and step between them */
short ghosttype, pathsize; /* ghost drawing options and number of frames between points of path */
int ghostsf, ghostef; /* start and end frames of ghost-drawing range */
int pathsf, pathef; /* start and end frames of path-calculation range for all bones */
int pathbc, pathac; /* number of frames before/after current frame of path-calculation for all bones */
-// XXX end of depreceated code ----------------------------------
+// XXX end of deprecated code ----------------------------------
} bArmature;
/* armature->flag */
@@ -127,7 +127,7 @@ typedef enum eArmature_Flag {
ARM_AUTO_IK = (1<<9),
ARM_NO_CUSTOM = (1<<10), /* made option negative, for backwards compat */
ARM_COL_CUSTOM = (1<<11), /* draw custom colors */
- ARM_GHOST_ONLYSEL = (1<<12), /* when ghosting, only show selected bones (this should belong to ghostflag instead) */ /* XXX depreceated */
+ ARM_GHOST_ONLYSEL = (1<<12), /* when ghosting, only show selected bones (this should belong to ghostflag instead) */ /* XXX deprecated */
ARM_DS_EXPAND = (1<<13), /* dopesheet channel is expanded */
ARM_HAS_VIZ_DEPS = (1<<14), /* other objects are used for visualizing various states (hack for efficient updates) */
} eArmature_Flag;
@@ -157,7 +157,7 @@ typedef enum eArmature_DeformFlag {
} eArmature_DeformFlag;
/* armature->pathflag */
-// XXX depreceated... old animation system (armature only viz)
+// XXX deprecated... old animation system (armature only viz)
typedef enum eArmature_PathFlag {
ARM_PATH_FNUMS = (1<<0),
ARM_PATH_KFRAS = (1<<1),
@@ -167,7 +167,7 @@ typedef enum eArmature_PathFlag {
} eArmature_PathFlag;
/* armature->ghosttype */
-// XXX depreceated... old animation system (armature only viz)
+// XXX deprecated... old animation system (armature only viz)
typedef enum eArmature_GhostType {
ARM_GHOST_CUR = 0,
ARM_GHOST_RANGE = 1,
diff --git a/source/blender/makesdna/DNA_camera_types.h b/source/blender/makesdna/DNA_camera_types.h
index 73cebfb3d9f..1ece25c9f70 100644
--- a/source/blender/makesdna/DNA_camera_types.h
+++ b/source/blender/makesdna/DNA_camera_types.h
@@ -99,7 +99,7 @@ typedef struct Camera {
#define CAM_SHOWSENSOR 256
/* yafray: dof sampling switch */
-/* #define CAM_YF_NO_QMC 512 */ /* depreceated */
+/* #define CAM_YF_NO_QMC 512 */ /* deprecated */
/* Sensor fit */
#define CAMERA_SENSOR_FIT_AUTO 0
diff --git a/source/blender/makesdna/DNA_color_types.h b/source/blender/makesdna/DNA_color_types.h
index 1f8fdd20dda..32a0629c338 100644
--- a/source/blender/makesdna/DNA_color_types.h
+++ b/source/blender/makesdna/DNA_color_types.h
@@ -47,8 +47,10 @@ typedef struct CurveMapPoint {
} CurveMapPoint;
/* curvepoint->flag */
-#define CUMA_SELECT 1
-#define CUMA_VECTOR 2
+enum {
+ CUMA_SELECT = 1,
+ CUMA_VECTOR = 2
+};
typedef struct CurveMap {
short totpoint, flag;
@@ -158,6 +160,26 @@ typedef struct Scopes {
#define SCOPES_WAVEFRM_YCC_709 3
#define SCOPES_WAVEFRM_YCC_JPEG 4
+typedef struct ColorManagedViewSettings {
+ int flag, pad;
+ char view_transform[64]; /* view transform which is being applied when displaying buffer on the screen */
+ float exposure; /* fstop exposure */
+ float gamma; /* post-display gamma transform */
+ struct CurveMapping *curve_mapping; /* pre-display RGB curves transform */
+ void *pad2;
+} ColorManagedViewSettings;
-#endif
+typedef struct ColorManagedDisplaySettings {
+ char display_device[64];
+} ColorManagedDisplaySettings;
+
+typedef struct ColorManagedColorspaceSettings {
+ char name[64]; /* MAX_COLORSPACE_NAME */
+} ColorManagedColorspaceSettings;
+/* ColorManagedViewSettings->flag */
+enum {
+ COLORMANAGE_VIEW_USE_CURVES = (1 << 0)
+};
+
+#endif
diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h
index b6036840401..8b1e7e12e17 100644
--- a/source/blender/makesdna/DNA_constraint_types.h
+++ b/source/blender/makesdna/DNA_constraint_types.h
@@ -42,7 +42,7 @@ struct Text;
struct Ipo;
/* channels reside in Object or Action (ListBase) constraintChannels */
-// XXX depreceated... old AnimSys
+// XXX deprecated... old AnimSys
typedef struct bConstraintChannel {
struct bConstraintChannel *next, *prev;
struct Ipo *ipo;
@@ -182,7 +182,7 @@ typedef struct bSplineIKConstraint {
typedef struct bTrackToConstraint {
struct Object *tar;
int reserved1; /* I'll be using reserved1 and reserved2 as Track and Up flags,
- * not sure if that's what they were intented for anyway.
+ * not sure if that's what they were intended for anyway.
* Not sure either if it would create backward incompatibility if I were to rename them.
* - theeth*/
int reserved2;
@@ -332,7 +332,7 @@ typedef struct bTransformConstraint {
struct Object *tar; /* target (i.e. 'driver' object/bone) */
char subtarget[64]; /* MAX_ID_NAME-2 */
- short from, to; /* can be loc(0) , rot(1), or size(2) */
+ short from, to; /* can be loc(0), rot(1) or size(2) */
char map[3]; /* defines which target-axis deform is copied by each owner-axis */
char expo; /* extrapolate motion? if 0, confine to ranges */
@@ -415,7 +415,8 @@ typedef struct bShrinkwrapConstraint {
typedef struct bFollowTrackConstraint {
struct MovieClip *clip;
char track[64]; /* MAX_NAME */
- int flag, pad;
+ int flag;
+ int frame_method;
char object[64]; /* MAX_NAME */
struct Object *camera;
struct Object *depth_ob;
@@ -514,7 +515,7 @@ typedef enum eBConstraint_SpaceTypes {
} eBConstraint_SpaceTypes;
/* bConstraintChannel.flag */
-// XXX depreceated... old AnimSys
+// XXX deprecated... old AnimSys
typedef enum eConstraintChannel_Flags {
CONSTRAINT_CHANNEL_SELECT = (1<<0),
CONSTRAINT_CHANNEL_PROTECTED = (1<<1)
@@ -538,7 +539,7 @@ typedef enum eCopyLocation_Flags {
LOCLIKE_X = (1<<0),
LOCLIKE_Y = (1<<1),
LOCLIKE_Z = (1<<2),
- /* LOCLIKE_TIP is a depreceated option... use headtail=1.0f instead */
+ /* LOCLIKE_TIP is a deprecated option... use headtail=1.0f instead */
LOCLIKE_TIP = (1<<3),
LOCLIKE_X_INVERT = (1<<4),
LOCLIKE_Y_INVERT = (1<<5),
@@ -780,6 +781,12 @@ typedef enum eFollowTrack_Flags {
FOLLOWTRACK_USE_3D_POSITION = (1<<1)
} eFollowTrack_Flags;
+typedef enum eFollowTrack_FrameMethod {
+ FOLLOWTRACK_FRAME_STRETCH = 0,
+ FOLLOWTRACK_FRAME_FIT = 1,
+ FOLLOWTRACK_FRAME_CROP = 2
+} eFollowTrack_FrameMethod;
+
/* CameraSolver Constraint -> flag */
typedef enum eCameraSolver_Flags {
CAMERASOLVER_ACTIVECLIP = (1<<0)
diff --git a/source/blender/makesdna/DNA_curve_types.h b/source/blender/makesdna/DNA_curve_types.h
index 56cf90d3d9d..9fbe045226e 100644
--- a/source/blender/makesdna/DNA_curve_types.h
+++ b/source/blender/makesdna/DNA_curve_types.h
@@ -74,7 +74,7 @@ typedef struct Path {
typedef struct BevList {
struct BevList *next, *prev;
int nr, dupe_nr;
- short poly, hole;
+ int poly, hole;
} BevList;
/* These two Lines with # tell makesdna this struct can be excluded. */
@@ -87,20 +87,22 @@ typedef struct BevPoint {
short split_tag, dupe_tag;
} BevPoint;
-/* Keyframes on F-Curves (allows code reuse of Bezier eval code) and
+/**
+ * Keyframes on F-Curves (allows code reuse of Bezier eval code) and
* Points on Bezier Curves/Paths are generally BezTriples
- */
-/* note: alfa location in struct is abused by Key system */
-/* vec in BezTriple looks like this:
- * - vec[0][0]=x location of handle 1
- * - vec[0][1]=y location of handle 1
- * - vec[0][2]=z location of handle 1 (not used for FCurve Points(2d))
- * - vec[1][0]=x location of control point
- * - vec[1][1]=y location of control point
- * - vec[1][2]=z location of control point
- * - vec[2][0]=x location of handle 2
- * - vec[2][1]=y location of handle 2
- * - vec[2][2]=z location of handle 2 (not used for FCurve Points(2d))
+ *
+ * \note alfa location in struct is abused by Key system
+ *
+ * \note vec in BezTriple looks like this:
+ * - vec[0][0] = x location of handle 1
+ * - vec[0][1] = y location of handle 1
+ * - vec[0][2] = z location of handle 1 (not used for FCurve Points(2d))
+ * - vec[1][0] = x location of control point
+ * - vec[1][1] = y location of control point
+ * - vec[1][2] = z location of control point
+ * - vec[2][0] = x location of handle 2
+ * - vec[2][1] = y location of handle 2
+ * - vec[2][2] = z location of handle 2 (not used for FCurve Points(2d))
*/
typedef struct BezTriple {
float vec[3][3];
@@ -119,6 +121,10 @@ typedef struct BPoint {
float radius, pad; /* user-set radius per point for beveling etc */
} BPoint;
+/**
+ * \note Nurb name is misleading, since it can be used for polygons too,
+ * also, it should be NURBS (Nurb isn't the singular of Nurbs).
+ */
typedef struct Nurb {
struct Nurb *next, *prev; /* multiple nurbs per curve object are allowed */
short type;
diff --git a/source/blender/makesdna/DNA_customdata_types.h b/source/blender/makesdna/DNA_customdata_types.h
index 377af042922..9d40af92638 100644
--- a/source/blender/makesdna/DNA_customdata_types.h
+++ b/source/blender/makesdna/DNA_customdata_types.h
@@ -36,8 +36,6 @@
extern "C" {
#endif
-#include "DNA_defs.h" /* USE_BMESH_FORWARD_COMPAT */
-
/** descriptor and storage for a custom data layer */
typedef struct CustomDataLayer {
int type; /* type of data in layer */
@@ -74,7 +72,7 @@ typedef struct CustomData {
/* CustomData.type */
#define CD_MVERT 0
-#define CD_MSTICKY 1
+#define CD_MSTICKY 1 /* DEPRECATED */
#define CD_MDEFORMVERT 2
#define CD_MEDGE 3
#define CD_MFACE 4
@@ -118,7 +116,7 @@ typedef struct CustomData {
/* Bits for CustomDataMask */
#define CD_MASK_MVERT (1 << CD_MVERT)
-#define CD_MASK_MSTICKY (1 << CD_MSTICKY)
+#define CD_MASK_MSTICKY (1 << CD_MSTICKY) /* DEPRECATED */
#define CD_MASK_MDEFORMVERT (1 << CD_MDEFORMVERT)
#define CD_MASK_MEDGE (1 << CD_MEDGE)
#define CD_MASK_MFACE (1 << CD_MFACE)
diff --git a/source/blender/makesdna/DNA_defs.h b/source/blender/makesdna/DNA_defs.h
index 762e027f934..774fbcf081a 100644
--- a/source/blender/makesdna/DNA_defs.h
+++ b/source/blender/makesdna/DNA_defs.h
@@ -45,9 +45,6 @@
/* hrmf, we need a better include then this */
#include "../blenloader/BLO_sys_types.h" /* needed for int64_t only! */
-/* Must not be defined for BMesh, as this guards code for pre-BMesh code to load BMesh .blend files */
-/* #define USE_BMESH_FORWARD_COMPAT */
-
/* non-id name variables should use this length */
#define MAX_NAME 64
diff --git a/source/blender/makesdna/DNA_dynamicpaint_types.h b/source/blender/makesdna/DNA_dynamicpaint_types.h
index ca1b1bf1725..1f2a589dc27 100644
--- a/source/blender/makesdna/DNA_dynamicpaint_types.h
+++ b/source/blender/makesdna/DNA_dynamicpaint_types.h
@@ -136,7 +136,7 @@ typedef struct DynamicPaintSurface {
/* canvas flags */
#if 0 /* This should not be needed, having a valid WEIGHT_MCOL layer should be enough.
- * And if not, should be a general flag. But seems unecessary for now... */
+ * And if not, should be a general flag. But seems unnecessary for now... */
#define MOD_DPAINT_PREVIEW_READY (1<<0) /* if viewport preview is ready */
#endif
#define MOD_DPAINT_BAKING (1<<1) /* surface is already baking, so it wont get updated (loop) */
diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h
index 3de5372d848..71b344d23d7 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -141,16 +141,16 @@ typedef struct bGPdata {
} bGPdata;
/* bGPdata->flag */
-// XXX many of these flags should be depreceated for more general ideas in 2.5
+// XXX many of these flags should be deprecated for more general ideas in 2.5
/* don't allow painting to occur at all */
- // XXX is depreceated - not well understood
+ // XXX is deprecated - not well understood
#define GP_DATA_LMBPLOCK (1<<0)
/* show debugging info in viewport (i.e. status print) */
#define GP_DATA_DISPINFO (1<<1)
/* in Action Editor, show as expanded channel */
#define GP_DATA_EXPAND (1<<2)
/* is the block overriding all clicks? */
- // XXX is depreceated - nasty old concept
+ // XXX is deprecated - nasty old concept
#define GP_DATA_EDITPAINT (1<<3)
/* new strokes are added in viewport space */
#define GP_DATA_VIEWALIGN (1<<4)
diff --git a/source/blender/makesdna/DNA_image_types.h b/source/blender/makesdna/DNA_image_types.h
index 4a4b21017db..38058dbb699 100644
--- a/source/blender/makesdna/DNA_image_types.h
+++ b/source/blender/makesdna/DNA_image_types.h
@@ -33,6 +33,7 @@
#define __DNA_IMAGE_TYPES_H__
#include "DNA_ID.h"
+#include "DNA_color_types.h" /* for color management */
struct PackedFile;
struct Scene;
@@ -107,6 +108,9 @@ typedef struct Image {
/* display aspect - for UV editing images resized for faster openGL display */
float aspx, aspy;
+
+ /* color management */
+ ColorManagedColorspaceSettings colorspace_settings;
} Image;
@@ -123,6 +127,7 @@ typedef struct Image {
#define IMA_CM_PREDIVIDE 256
#define IMA_USED_FOR_RENDER 512
#define IMA_USER_FRAME_IN_RANGE 1024 /* for image user, but these flags are mixed */
+#define IMA_VIEW_AS_RENDER 2048
/* Image.tpageflag */
#define IMA_TILES 1
diff --git a/source/blender/makesdna/DNA_ipo_types.h b/source/blender/makesdna/DNA_ipo_types.h
index e3ab6b4a7db..a73fc9073fa 100644
--- a/source/blender/makesdna/DNA_ipo_types.h
+++ b/source/blender/makesdna/DNA_ipo_types.h
@@ -28,7 +28,7 @@
/** \file DNA_ipo_types.h
* \ingroup DNA
* \deprecated
- * The contents of this file are now officially depreceated. They were used for the 'old' animation system,
+ * The contents of this file are now officially deprecated. They were used for the 'old' animation system,
* which has (as of 2.50) been replaced with a completely new system by Joshua Leung (aligorith). All defines,
* etc. are only still maintained to provide backwards compatibility for old files.
*/
@@ -65,8 +65,8 @@ typedef struct IpoDriver {
typedef struct IpoCurve {
struct IpoCurve *next, *prev;
- struct BPoint *bp; /* array of BPoints (sizeof(BPoint)*totvert) - i.e. baked/imported data */
- struct BezTriple *bezt; /* array of BezTriples (sizeof(BezTriple)*totvert) - i.e. user-editable keyframes */
+ struct BPoint *bp; /* array of BPoints (sizeof(BPoint) * totvert) - i.e. baked/imported data */
+ struct BezTriple *bezt; /* array of BezTriples (sizeof(BezTriple) * totvert) - i.e. user-editable keyframes */
rctf maxrct, totrct; /* bounding boxes */
diff --git a/source/blender/makesdna/DNA_key_types.h b/source/blender/makesdna/DNA_key_types.h
index 8494e663fbe..6e5861043c1 100644
--- a/source/blender/makesdna/DNA_key_types.h
+++ b/source/blender/makesdna/DNA_key_types.h
@@ -105,7 +105,7 @@ typedef struct Key {
/* Key->type: KeyBlocks are interpreted as... */
enum {
- /* Sequencial positions over time (using KeyBlock->pos and Key->ctime) */
+ /* Sequential positions over time (using KeyBlock->pos and Key->ctime) */
KEY_NORMAL = 0,
/* States to blend between (default) */
diff --git a/source/blender/makesdna/DNA_mask_types.h b/source/blender/makesdna/DNA_mask_types.h
index 52fedd72e86..bf388d8c018 100644
--- a/source/blender/makesdna/DNA_mask_types.h
+++ b/source/blender/makesdna/DNA_mask_types.h
@@ -82,13 +82,14 @@ typedef struct MaskSplinePoint {
typedef struct MaskSpline {
struct MaskSpline *next, *prev;
- int flag; /* defferent spline flag (closed, ...) */
+ short flag; /* defferent spline flag (closed, ...) */
+ char offset_mode; /* feather offset method */
+ char weight_interp; /* weight interpolation */
+
int tot_point; /* total number of points */
MaskSplinePoint *points; /* points which defines spline itself */
MaskParent parent; /* parenting information of the whole spline */
- int weight_interp, pad; /* weight interpolation */
-
MaskSplinePoint *points_deform; /* deformed copy of 'points' BezTriple data - not saved */
} MaskSpline;
@@ -127,6 +128,8 @@ typedef struct MaskLayer {
float alpha;
char blend;
char blend_flag;
+ char falloff;
+ char pad[7];
char flag; /* for animation */
char restrictflag; /* matching 'Object' flag of the same name - eventually use in the outliner */
@@ -137,11 +140,24 @@ typedef struct MaskLayer {
/* MaskSpline->flag */
/* reserve (1 << 0) for SELECT */
-#define MASK_SPLINE_CYCLIC (1 << 1)
+enum {
+ MASK_SPLINE_CYCLIC = (1 << 1),
+ MASK_SPLINE_NOFILL = (1 << 2),
+ MASK_SPLINE_NOINTERSECT = (1 << 3)
+};
/* MaskSpline->weight_interp */
-#define MASK_SPLINE_INTERP_LINEAR 1
-#define MASK_SPLINE_INTERP_EASE 2
+enum {
+ MASK_SPLINE_INTERP_LINEAR = 1,
+ MASK_SPLINE_INTERP_EASE = 2
+};
+
+/* MaskSpline->offset_mode */
+enum {
+ MASK_SPLINE_OFFSET_EVEN = 0,
+ MASK_SPLINE_OFFSET_SMOOTH = 1
+};
+
/* ob->restrictflag */
#define MASK_RESTRICT_VIEW 1
@@ -162,8 +178,15 @@ enum {
/* masklay->blend */
enum {
- MASK_BLEND_ADD = 0,
- MASK_BLEND_SUBTRACT = 1
+ MASK_BLEND_ADD = 0,
+ MASK_BLEND_SUBTRACT = 1,
+ MASK_BLEND_LIGHTEN = 2,
+ MASK_BLEND_DARKEN = 3,
+ MASK_BLEND_MUL = 4,
+ MASK_BLEND_REPLACE = 5,
+ MASK_BLEND_DIFFERENCE = 6,
+ MASK_BLEND_MERGE_ADD = 7,
+ MASK_BLEND_MERGE_SUBTRACT = 8
};
/* masklay->blend_flag */
diff --git a/source/blender/makesdna/DNA_material_types.h b/source/blender/makesdna/DNA_material_types.h
index 2b3719a10b5..374cc8e7379 100644
--- a/source/blender/makesdna/DNA_material_types.h
+++ b/source/blender/makesdna/DNA_material_types.h
@@ -130,8 +130,11 @@ typedef struct Material {
/* for buttons and render*/
char rgbsel, texact, pr_type, use_nodes;
- short pr_back, pr_lamp, pr_texture, ml_flag; /* ml_flag is for disable base material */
+ short pr_lamp, pr_texture, ml_flag; /* ml_flag is for disable base material */
+ /* mapping */
+ char mapflag, pad;
+
/* shaders */
short diff_shader, spec_shader;
float roughness, refrac;
@@ -140,6 +143,8 @@ typedef struct Material {
float param[4]; /* size, smooth, size, smooth, for toonshader, 0 (fac) and 1 (fresnel) also for fresnel shader */
float rms;
float darkness;
+
+ /* runtime - OR'd from 'mtex' */
short texco, mapto;
/* ramp colors */
@@ -154,7 +159,7 @@ typedef struct Material {
struct bNodeTree *nodetree;
struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */
struct Group *group; /* light group */
- struct PreviewImage * preview;
+ struct PreviewImage *preview;
/* dynamic properties */
float friction, fh, reflect;
@@ -271,6 +276,9 @@ typedef struct Material {
#define MA_MODE_MASK 0x6fffffff /* all valid mode bits */
+/* mapflag */
+#define MA_MAPFLAG_UVPROJECT (1 << 0)
+
/* ray mirror fadeout */
#define MA_RAYMIR_FADETOSKY 0
#define MA_RAYMIR_FADETOMAT 1
@@ -337,7 +345,7 @@ typedef struct Material {
#define TEXCO_OBJECT 32
#define TEXCO_LAVECTOR 64
#define TEXCO_VIEW 128
-#define TEXCO_STICKY 256
+#define TEXCO_STICKY_ 256 // DEPRECATED
#define TEXCO_OSA 512
#define TEXCO_WINDOW 1024
#define NEED_UV 2048
diff --git a/source/blender/makesdna/DNA_mesh_types.h b/source/blender/makesdna/DNA_mesh_types.h
index 5d55bb8a4db..dd0845dbf1e 100644
--- a/source/blender/makesdna/DNA_mesh_types.h
+++ b/source/blender/makesdna/DNA_mesh_types.h
@@ -37,8 +37,6 @@
#include "DNA_ID.h"
#include "DNA_customdata_types.h"
-#include "DNA_defs.h" /* USE_BMESH_FORWARD_COMPAT */
-
struct AnimData;
struct DerivedMesh;
struct Ipo;
@@ -89,10 +87,10 @@ typedef struct Mesh {
/* array of colors for the tessellated faces, must be number of tessellated
* faces * 4 in length */
- struct MCol *mcol;
- struct MSticky *msticky;
+ struct MCol *mcol;
struct Mesh *texcomesh;
-
+
+ /* When the object is available, the preferred access method is: BMEdit_FromObject(ob) */
struct BMEditMesh *edit_btmesh; /* not saved in file! */
struct CustomData vdata, edata, fdata;
diff --git a/source/blender/makesdna/DNA_meshdata_types.h b/source/blender/makesdna/DNA_meshdata_types.h
index 5806d9a3947..7040bc72f18 100644
--- a/source/blender/makesdna/DNA_meshdata_types.h
+++ b/source/blender/makesdna/DNA_meshdata_types.h
@@ -95,7 +95,7 @@ typedef struct MLoop {
typedef struct MTexPoly {
struct Image *tpage;
char flag, transp;
- short mode, tile, unwrap;
+ short mode, tile, pad;
} MTexPoly;
/* can copy from/to MTexPoly/MTFace */
@@ -106,8 +106,7 @@ typedef struct MTexPoly {
(dst)->transp = (src)->transp; \
(dst)->mode = (src)->mode; \
(dst)->tile = (src)->tile; \
- (dst)->unwrap = (src)->unwrap; \
-}
+} (void)0
typedef struct MLoopUV {
float uv[2];
@@ -120,7 +119,8 @@ typedef struct MLoopUV {
#define MLOOPUV_PINNED 4
/* at the moment alpha is abused for vertex painting
- * and not used for transparency, note that red and blue are swapped */
+ * and not used for transparency,
+ * note that red and blue are _not_ swapped, as they are with #MCol */
typedef struct MLoopCol {
char r, g, b, a;
} MLoopCol;
@@ -146,13 +146,9 @@ typedef struct MLoopCol {
mcol__tmp->a = mloopcol__tmp->a; \
} (void)0
-typedef struct MSticky {
- float co[2];
-} MSticky;
-
typedef struct MSelect {
int index;
- int type; /* EDITVERT/EDITEDGE/EDITFACE */
+ int type; /* ME_VSEL/ME_ESEL/ME_FSEL */
} MSelect;
/*tessellation uv face data*/
@@ -327,7 +323,6 @@ typedef struct MVertSkin {
#define TF_SEL2 8
#define TF_SEL3 16
#define TF_SEL4 32
-#define TF_HIDE 64 /* unused, same as TF_SELECT */
/* mtface->mode */
#define TF_DYNAMIC 1
@@ -360,13 +355,13 @@ typedef struct MVertSkin {
/* mtface->unwrap */
-#define TF_DEPRECATED1 1
-#define TF_DEPRECATED2 2
-#define TF_DEPRECATED3 4
-#define TF_DEPRECATED4 8
-#define TF_PIN1 16
-#define TF_PIN2 32
-#define TF_PIN3 64
-#define TF_PIN4 128
+#define TF_DEPRECATED1 1
+#define TF_DEPRECATED2 2
+#define TF_DEPRECATED3 4
+#define TF_DEPRECATED4 8
+#define TF_PIN1 16
+#define TF_PIN2 32
+#define TF_PIN3 64
+#define TF_PIN4 128
#endif
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index 4172db90c05..99df51e9ec4 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -28,9 +28,6 @@
#include "DNA_defs.h"
#include "DNA_listBase.h"
-
-#define MODSTACK_DEBUG 1
-
/* WARNING ALERT! TYPEDEF VALUES ARE WRITTEN IN FILES! SO DO NOT CHANGE!
* (ONLY ADD NEW ITEMS AT THE END) */
@@ -705,6 +702,8 @@ typedef struct SimpleDeformModifierData {
/* indicates whether simple deform should use the local
* coordinates or global coordinates of origin */
+/* XXX, this should have never been an option, all other modifiers work relatively
+ * (so moving both objects makes no change!) - Campbell */
#define MOD_SIMPLEDEFORM_ORIGIN_LOCAL (1<<0)
#define MOD_UVPROJECT_MAX 10
diff --git a/source/blender/makesdna/DNA_movieclip_types.h b/source/blender/makesdna/DNA_movieclip_types.h
index d8bba4a3bf5..cda51779528 100644
--- a/source/blender/makesdna/DNA_movieclip_types.h
+++ b/source/blender/makesdna/DNA_movieclip_types.h
@@ -37,6 +37,7 @@
#include "DNA_ID.h"
#include "DNA_tracking_types.h"
+#include "DNA_color_types.h" /* for color management */
struct anim;
struct AnimData;
@@ -94,6 +95,9 @@ typedef struct MovieClip {
/* from a file. affects only a way how scene frame is mapping */
/* to a file name and not touches other data associated with */
/* a clip */
+
+ /* color management */
+ ColorManagedColorspaceSettings colorspace_settings;
} MovieClip;
typedef struct MovieClipScopes {
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index e4b5a264ba3..3f1f4933585 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -127,7 +127,7 @@ typedef struct bNodeSocket {
/* sock->flag, first bit is select */
/* hidden is user defined, to hide unused */
#define SOCK_HIDDEN 2
- /* only used now for groups... */
+ /* for quick check if socket is linked */
#define SOCK_IN_USE 4 /* XXX deprecated */
/* unavailable is for dynamic sockets */
#define SOCK_UNAVAIL 8
@@ -168,7 +168,7 @@ typedef struct bNode {
void *storage; /* custom data, must be struct, for storage in file */
struct bNode *original; /* the original node in the tree (for localized tree) */
- float locx, locy; /* root offset for drawing */
+ float locx, locy; /* root offset for drawing (parent space) */
float width, height; /* node custom width and height */
float miniwidth; /* node width if hidden */
float offsetx, offsety; /* additional offset from loc */
@@ -178,12 +178,10 @@ typedef struct bNode {
char label[64]; /* custom user-defined label, MAX_NAME */
short custom1, custom2; /* to be abused for buttons */
float custom3, custom4;
- int highlight; /* 0 = not highlighted, 1-N = highlighted*/
- int pad;
-
+
short need_exec, exec; /* need_exec is set as UI execution event, exec is flag during exec */
void *threaddata; /* optional extra storage for use in thread (read only then!) */
- rctf totr; /* entire boundbox */
+ rctf totr; /* entire boundbox (worldspace) */
rctf butr; /* optional buttons area */
rctf prvr; /* optional preview area */
bNodePreview *preview; /* optional preview image */
@@ -213,6 +211,11 @@ typedef struct bNode {
/* automatic flag for nodes included in transforms */
#define NODE_TRANSFORM (1<<13)
/* node is active texture */
+
+ /* note: take care with this flag since its possible it gets
+ * `stuck` inside/outside the active group - which makes buttons
+ * window texture not update, we try to avoid it by clearing the
+ * flag when toggling group editing - Campbell */
#define NODE_ACTIVE_TEXTURE (1<<14)
/* use a custom color for the node */
#define NODE_CUSTOM_COLOR (1<<15)
@@ -372,8 +375,21 @@ enum {
};
enum {
- CMP_NODEFLAG_MASK_AA = (1 << 0),
- CMP_NODEFLAG_MASK_NO_FEATHER = (1 << 1)
+ CMP_NODE_INPAINT_SIMPLE = 0
+};
+
+enum {
+ CMP_NODEFLAG_MASK_AA = (1 << 0),
+ CMP_NODEFLAG_MASK_NO_FEATHER = (1 << 1),
+ CMP_NODEFLAG_MASK_MOTION_BLUR = (1 << 2),
+
+ /* we may want multiple aspect options, exposed as an rna enum */
+ CMP_NODEFLAG_MASK_FIXED = (1 << 8),
+ CMP_NODEFLAG_MASK_FIXED_SCENE = (1 << 9)
+};
+
+enum {
+ CMP_NODEFLAG_BLUR_VARIABLE_SIZE = (1 << 0)
};
typedef struct NodeFrame {
@@ -383,8 +399,11 @@ typedef struct NodeFrame {
/* this one has been replaced with ImageUser, keep it for do_versions() */
typedef struct NodeImageAnim {
- int frames, sfra, nr;
- char cyclic, movie;
+ int frames DNA_DEPRECATED;
+ int sfra DNA_DEPRECATED;
+ int nr DNA_DEPRECATED;
+ char cyclic DNA_DEPRECATED;
+ char movie DNA_DEPRECATED;
short pad;
} NodeImageAnim;
@@ -577,6 +596,10 @@ typedef struct NodeDilateErode {
char pad[7];
} NodeDilateErode;
+typedef struct NodeMask {
+ int size_x, size_y;
+} NodeMask;
+
typedef struct NodeTexBase {
TexMapping tex_mapping;
ColorMapping color_mapping;
@@ -591,17 +614,27 @@ typedef struct NodeTexSky {
typedef struct NodeTexImage {
NodeTexBase base;
ImageUser iuser;
- int color_space, pad;
+ int color_space;
+ int projection;
+ float projection_blend;
+ int pad;
} NodeTexImage;
typedef struct NodeTexChecker {
NodeTexBase base;
} NodeTexChecker;
+typedef struct NodeTexBrick {
+ NodeTexBase base;
+ int offset_freq, squash_freq;
+ float offset, squash;
+} NodeTexBrick;
+
typedef struct NodeTexEnvironment {
NodeTexBase base;
ImageUser iuser;
- int color_space, projection;
+ int color_space;
+ int projection;
} NodeTexEnvironment;
typedef struct NodeTexGradient {
@@ -654,6 +687,7 @@ typedef struct NodeKeyingScreenData {
typedef struct NodeKeyingData {
float screen_balance;
float despill_factor;
+ float despill_balance;
int edge_kernel_radius;
float edge_kernel_tolerance;
float clip_black, clip_white;
@@ -663,6 +697,11 @@ typedef struct NodeKeyingData {
int blur_pre, blur_post;
} NodeKeyingData;
+typedef struct NodeTrackPosData {
+ char tracking_object[64];
+ char track_name[64];
+} NodeTrackPosData;
+
/* frame node flags */
#define NODE_FRAME_SHRINK 1 /* keep the bounding box minimal */
#define NODE_FRAME_RESIZEABLE 2 /* test flag, if frame can be resized by user */
@@ -735,9 +774,15 @@ typedef struct NodeKeyingData {
#define SHD_PROJ_EQUIRECTANGULAR 0
#define SHD_PROJ_MIRROR_BALL 1
+/* image texture */
+#define SHD_PROJ_FLAT 0
+#define SHD_PROJ_BOX 1
+
/* blur node */
#define CMP_NODE_BLUR_ASPECT_NONE 0
#define CMP_NODE_BLUR_ASPECT_Y 1
#define CMP_NODE_BLUR_ASPECT_X 2
+#define CMP_NODE_MASK_MBLUR_SAMPLES_MAX 64
+
#endif
diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h
index 3da6d0fc99d..3a8620fdaba 100644
--- a/source/blender/makesdna/DNA_object_types.h
+++ b/source/blender/makesdna/DNA_object_types.h
@@ -71,16 +71,17 @@ typedef struct bDeformGroup {
#define DG_LOCK_WEIGHT 1
/**
- * The following illustrates the orientation of the
+ * The following illustrates the orientation of the
* bounding box in local space
- *
- *
+ *
+ * <pre>
+ *
* Z Y
* | /
* |/
* .-----X
- *
- *
+ *
+ *
* 2----------6
* /| /|
* / | / |
@@ -90,6 +91,7 @@ typedef struct bDeformGroup {
* | / | /
* |/ |/
* 0----------4
+ * </pre>
*/
typedef struct BoundBox {
float vec[8][3];
@@ -115,7 +117,7 @@ typedef struct Object {
struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */
/* struct Path *path; */
struct BoundBox *bb;
- struct bAction *action DNA_DEPRECATED; // XXX depreceated... old animation system
+ struct bAction *action DNA_DEPRECATED; // XXX deprecated... old animation system
struct bAction *poselib;
struct bPose *pose; /* pose data, armature objects only */
void *data; /* pointer to objects data - an 'ID' or NULL */
@@ -125,8 +127,8 @@ typedef struct Object {
bAnimVizSettings avs; /* settings for visualization of object-transform animation */
bMotionPath *mpath; /* motion path cache for this object */
- ListBase constraintChannels DNA_DEPRECATED; // XXX depreceated... old animation system
- ListBase effect DNA_DEPRECATED; // XXX depreceated... keep for readfile
+ ListBase constraintChannels DNA_DEPRECATED; // XXX deprecated... old animation system
+ ListBase effect DNA_DEPRECATED; // XXX deprecated... keep for readfile
ListBase disp; /* list of DispList, used by lattice, metaballs curve & surfaces */
ListBase defbase; /* list of bDeformGroup (vertex groups) names and flag only */
ListBase modifiers; /* list of ModifierData structures */
@@ -173,7 +175,7 @@ typedef struct Object {
short transflag, protectflag; /* transformation settings and transform locks */
short trackflag, upflag;
short nlaflag; /* used for DopeSheet filtering settings (expanded/collapsed) */
- short ipoflag; // xxx depreceated... old animation system
+ short ipoflag; // xxx deprecated... old animation system
short scaflag; /* ui state for game logic */
char scavisflag; /* more display settings for game logic */
char pad5;
@@ -242,8 +244,8 @@ typedef struct Object {
float anisotropicFriction[3];
ListBase constraints; /* object constraints */
- ListBase nlastrips DNA_DEPRECATED; // XXX depreceated... old animation system
- ListBase hooks DNA_DEPRECATED; // XXX depreceated... old animation system
+ ListBase nlastrips DNA_DEPRECATED; // XXX deprecated... old animation system
+ ListBase hooks DNA_DEPRECATED; // XXX deprecated... old animation system
ListBase particlesystem; /* particle systems */
struct PartDeflect *pd; /* particle deflector/attractor/collision data */
@@ -343,6 +345,10 @@ typedef struct DupliObject {
#define OB_TYPE_SUPPORT_EDITMODE(_type) \
(ELEM7(_type, OB_MESH, OB_FONT, OB_CURVE, OB_SURF, OB_MBALL, OB_LATTICE, OB_ARMATURE))
+/* is this ID type used as object data */
+#define OB_DATA_SUPPORT_ID(_id_type) \
+ (ELEM8(_id_type, ID_ME, ID_CU, ID_MB, ID_LA, ID_SPK, ID_CA, ID_LT, ID_AR))
+
/* partype: first 4 bits: type */
#define PARTYPE 15
#define PAROBJECT 0
diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h
index 0853df87a35..5952aa8afb0 100644
--- a/source/blender/makesdna/DNA_particle_types.h
+++ b/source/blender/makesdna/DNA_particle_types.h
@@ -154,7 +154,8 @@ typedef struct ParticleSettings {
short type, from, distr, texact;
/* physics modes */
short phystype, rotmode, avemode, reactevent;
- short draw, draw_as, draw_size, childtype;
+ int draw, pad1;
+ short draw_as, draw_size, childtype, pad2;
short ren_as, subframes, draw_col;
/* number of path segments, power of 2 except */
short draw_step, ren_step;
@@ -398,6 +399,7 @@ typedef struct ParticleSystem {
#define PART_DRAW_MAT_COL (1<<13) /* deprecated, but used in do_versions */
#define PART_DRAW_WHOLE_GR (1<<14)
#define PART_DRAW_REN_STRAND (1<<15)
+#define PART_DRAW_NO_SCALE_OB (1<<16) /* used with dupliobjects/groups */
/* part->draw_col */
#define PART_DRAW_COL_NONE 0
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 02a7d0da325..374b3ba1e53 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -41,6 +41,7 @@
extern "C" {
#endif
+#include "DNA_color_types.h" /* color management */
#include "DNA_vec_types.h"
#include "DNA_listBase.h"
#include "DNA_ID.h"
@@ -273,6 +274,9 @@ typedef struct ImageFormatData {
char pad[7];
+ /* color management */
+ ColorManagedViewSettings view_settings;
+ ColorManagedDisplaySettings display_settings;
} ImageFormatData;
@@ -288,7 +292,7 @@ typedef struct ImageFormatData {
#define R_IMF_IMTYPE_AVIRAW 15
#define R_IMF_IMTYPE_AVIJPEG 16
#define R_IMF_IMTYPE_PNG 17
-#define R_IMF_IMTYPE_AVICODEC 18
+/* #define R_IMF_IMTYPE_AVICODEC 18 */ /* avicodec is nomore */
#define R_IMF_IMTYPE_QUICKTIME 19
#define R_IMF_IMTYPE_BMP 20
#define R_IMF_IMTYPE_RADHDR 21
@@ -825,14 +829,15 @@ typedef struct VPaint {
void *paintcursor; /* wm handle */
} VPaint;
-/* VPaint flag */
-#define VP_COLINDEX 1
-#define VP_AREA 2 /* vertex paint only */
-
-#define VP_NORMALS 8
-#define VP_SPRAY 16
-// #define VP_MIRROR_X 32 // deprecated in 2.5x use (me->editflag & ME_EDIT_MIRROR_X)
-#define VP_ONLYVGROUP 128 /* weight paint only */
+/* VPaint.flag */
+enum {
+ // VP_COLINDEX = (1 << 0), /* only paint onto active material*/ /* deprecated since before 2.49 */
+ VP_AREA = (1 << 1),
+ VP_NORMALS = (1 << 3),
+ VP_SPRAY = (1 << 4),
+ // VP_MIRROR_X = (1 << 5), /* deprecated in 2.5x use (me->editflag & ME_EDIT_MIRROR_X) */
+ VP_ONLYVGROUP = (1 << 7) /* weight paint only */
+};
/* *************************************************************** */
/* Transform Orientations */
@@ -1041,7 +1046,7 @@ typedef struct UnitSettings {
/* Display/Editing unit options for each scene */
float scale_length; /* maybe have other unit conversions? */
char system; /* imperial, metric etc */
- char system_rotation; /* not implemented as a propper unit system yet */
+ char system_rotation; /* not implemented as a proper unit system yet */
short flag;
} UnitSettings;
@@ -1133,6 +1138,11 @@ typedef struct Scene {
uint64_t customdata_mask; /* XXX. runtime flag for drawing, actually belongs in the window, only used by BKE_object_handle_update() */
uint64_t customdata_mask_modal; /* XXX. same as above but for temp operator use (gl renders) */
+
+ /* Color Management */
+ ColorManagedViewSettings view_settings;
+ ColorManagedDisplaySettings display_settings;
+ ColorManagedColorspaceSettings sequencer_colorspace_settings;
} Scene;
@@ -1151,7 +1161,7 @@ typedef struct Scene {
#define R_EDGE 0x0020
#define R_FIELDS 0x0040
#define R_FIELDSTILL 0x0080
-#define R_RADIO 0x0100
+/*#define R_RADIO 0x0100 */ /* deprecated */
#define R_BORDER 0x0200
#define R_PANORAMA 0x0400 /* deprecated as scene option, still used in renderer */
#define R_CROP 0x0800
@@ -1254,7 +1264,7 @@ typedef struct Scene {
#define R_ALPHAKEY 2
/* color_mgt_flag */
-#define R_COLOR_MANAGEMENT (1 << 0)
+#define R_COLOR_MANAGEMENT (1 << 0) /* deprecated, should only be used in versioning code only */
#define R_COLOR_MANAGEMENT_PREDIVIDE (1 << 1)
/* subimtype, flag options for imtype */
@@ -1349,9 +1359,6 @@ typedef struct Scene {
#define TIME2FRA(a) ((((double) scene->r.frs_sec) * (double)(a)) / (double)scene->r.frs_sec_base)
#define FPS (((double) scene->r.frs_sec) / (double)scene->r.frs_sec_base)
-#define RAD_PHASE_PATCHES 1
-#define RAD_PHASE_FACES 2
-
/* base->flag is in DNA_object_types.h */
/* toolsettings->snap_flag */
diff --git a/source/blender/makesdna/DNA_screen_types.h b/source/blender/makesdna/DNA_screen_types.h
index 34fb7ce60be..b1cd54950e6 100644
--- a/source/blender/makesdna/DNA_screen_types.h
+++ b/source/blender/makesdna/DNA_screen_types.h
@@ -77,8 +77,6 @@ typedef struct bScreen {
struct wmTimer *animtimer; /* if set, screen has timer handler added in window */
void *context; /* context callback */
-
- short handler[8]; /* similar to space handler */
} bScreen;
typedef struct ScrVert {
@@ -214,13 +212,6 @@ typedef struct ARegion {
#define PNL_DEFAULT_CLOSED 1
#define PNL_NO_HEADER 2
-/* screen handlers */
-#define SCREEN_MAXHANDLER 8
-
-#define SCREEN_HANDLER_ANIM 1
-#define SCREEN_HANDLER_PYTHON 2
-#define SCREEN_HANDLER_VERSE 3
-
/* regiontype, first two are the default set */
/* Do NOT change order, append on end. Types are hardcoded needed */
enum {
diff --git a/source/blender/makesdna/DNA_sdna_types.h b/source/blender/makesdna/DNA_sdna_types.h
index ec02db192fd..28204ebeb88 100644
--- a/source/blender/makesdna/DNA_sdna_types.h
+++ b/source/blender/makesdna/DNA_sdna_types.h
@@ -48,7 +48,7 @@ typedef struct SDNA {
short *typelens; /* type lengths */
int nr_structs; /* number of struct types */
- short **structs; /* sp = structs[a] is the address of a struct definintion
+ short **structs; /* sp = structs[a] is the address of a struct definition
* sp[0] is struct type number, sp[1] amount of members
*
* (sp[2], sp[3]), (sp[4], sp[5]), .. are the member
@@ -81,12 +81,7 @@ typedef struct BHead4 {
#
typedef struct BHead8 {
int code, len;
-#if defined(WIN32) && !defined(FREE_WINDOWS)
- /* This is a compiler type! */
- __int64 old;
-#else
- long long old;
-#endif
+ int64_t old;
int SDNAnr, nr;
} BHead8;
diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h
index 161c448476d..4d259fad246 100644
--- a/source/blender/makesdna/DNA_sequence_types.h
+++ b/source/blender/makesdna/DNA_sequence_types.h
@@ -34,6 +34,7 @@
#define __DNA_SEQUENCE_TYPES_H__
#include "DNA_defs.h"
+#include "DNA_color_types.h"
#include "DNA_listBase.h"
#include "DNA_vec_types.h"
@@ -98,12 +99,19 @@ typedef struct Strip {
StripProxy *proxy;
StripCrop *crop;
StripTransform *transform;
- StripColorBalance *color_balance;
+ StripColorBalance *color_balance DNA_DEPRECATED;
} Strip;
-/* The sequence structure is the basic struct used by any strip. each of the strips uses a different sequence structure.*/
-/* WATCH IT: first part identical to ID (for use in ipo's) */
-
+/**
+ * The sequence structure is the basic struct used by any strip.
+ * each of the strips uses a different sequence structure.
+ *
+ * \warning The first part identical to ID (for use in ipo's)
+ * the commend above is historic, probably we can drop the ID compatibility,
+ * but take care making this change.
+ *
+ * \warning This is really a 'Strip' in the UI!, name is highly confusing.
+ */
typedef struct Sequence {
struct Sequence *next, *prev;
void *tmp; /* tmp var for copying, and tagging for linked selection */
@@ -127,12 +135,14 @@ typedef struct Sequence {
Strip *strip;
struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */
- struct Scene *scene;
- struct Object *scene_camera; /* override scene camera */
+
+ /* these ID vars should never be NULL but can be when linked libs fail to load, so check on access */
+ struct Scene *scene;
+ struct Object *scene_camera; /* override scene camera */
+ struct MovieClip *clip; /* for MOVIECLIP strips */
+ struct Mask *mask; /* for MASK strips */
struct anim *anim; /* for MOVIE strips */
- struct MovieClip *clip; /* for MOVIECLIP strips */
- struct Mask *mask; /* for MASK strips */
float effect_fader;
float speed_fader;
@@ -160,6 +170,9 @@ typedef struct Sequence {
/* is sfra needed anymore? - it looks like its only used in one place */
int sfra, pad; /* starting frame according to the timeline of the scene. */
+
+ /* modifiers */
+ ListBase modifiers;
} Sequence;
typedef struct MetaStack {
@@ -222,6 +235,58 @@ typedef struct SpeedControlVars {
int lastValidFrame;
} SpeedControlVars;
+/* ***************** Sequence modifiers ****************** */
+
+typedef struct SequenceModifierData {
+ struct SequenceModifierData *next, *prev;
+ int type, flag;
+ char name[64]; /* MAX_NAME */
+
+ /* mask input, either sequence or maks ID */
+ int mask_input_type, pad;
+
+ struct Sequence *mask_sequence;
+ struct Mask *mask_id;
+} SequenceModifierData;
+
+typedef struct ColorBalanceModifierData {
+ SequenceModifierData modifier;
+
+ StripColorBalance color_balance;
+ float color_multiply;
+} ColorBalanceModifierData;
+
+typedef struct CurvesModifierData {
+ SequenceModifierData modifier;
+
+ struct CurveMapping curve_mapping;
+} CurvesModifierData;
+
+typedef struct HueCorrectModifierData {
+ SequenceModifierData modifier;
+
+ struct CurveMapping curve_mapping;
+} HueCorrectModifierData;
+
+typedef struct BrightContrastModifierData {
+ SequenceModifierData modifier;
+
+ float bright;
+ float contrast;
+} BrightContrastModifierData;
+
+/* ***************** Scopes ****************** */
+
+typedef struct SequencerScopes {
+ struct ImBuf *reference_ibuf;
+
+ struct ImBuf *zebra_ibuf;
+ struct ImBuf *waveform_ibuf;
+ struct ImBuf *sep_waveform_ibuf;
+ struct ImBuf *vector_ibuf;
+ struct ImBuf *histogram_ibuf;
+} SequencerScopes;
+
#define MAXSEQ 32
#define SELECT 1
@@ -259,11 +324,12 @@ typedef struct SpeedControlVars {
#define SEQ_USE_PROXY (1 << 15)
#define SEQ_USE_TRANSFORM (1 << 16)
#define SEQ_USE_CROP (1 << 17)
-#define SEQ_USE_COLOR_BALANCE (1 << 18)
+/* #define SEQ_USE_COLOR_BALANCE (1 << 18) */ /* DEPRECATED */
#define SEQ_USE_PROXY_CUSTOM_DIR (1 << 19)
#define SEQ_USE_PROXY_CUSTOM_FILE (1 << 21)
#define SEQ_USE_EFFECT_DEFAULT_FADE (1 << 22)
+#define SEQ_USE_LINEAR_MODIFIERS (1 << 23)
// flags for whether those properties are animated or not
#define SEQ_AUDIO_VOLUME_ANIMATED (1 << 24)
@@ -328,11 +394,6 @@ enum {
SEQ_TYPE_EFFECT_MAX = 31
};
-#define STRIPELEM_FAILED 0
-#define STRIPELEM_OK 1
-
-#define STRIPELEM_PREVIEW_DONE 1
-
#define SEQ_MOVIECLIP_RENDER_UNDISTORTED (1 << 0)
#define SEQ_MOVIECLIP_RENDER_STABILIZED (1 << 1)
@@ -345,5 +406,27 @@ enum {
#define SEQ_HAS_PATH(_seq) (ELEM4((_seq)->type, SEQ_TYPE_MOVIE, SEQ_TYPE_IMAGE, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SOUND_HD))
-#endif
+/* modifiers */
+
+/* SequenceModifierData->type */
+enum {
+ seqModifierType_ColorBalance = 1,
+ seqModifierType_Curves = 2,
+ seqModifierType_HueCorrect = 3,
+ seqModifierType_BrightContrast = 4,
+ NUM_SEQUENCE_MODIFIER_TYPES
+};
+
+/* SequenceModifierData->flag */
+enum {
+ SEQUENCE_MODIFIER_MUTE = (1 << 0),
+ SEQUENCE_MODIFIER_EXPANDED = (1 << 1),
+};
+
+enum {
+ SEQUENCE_MASK_INPUT_STRIP = 0,
+ SEQUENCE_MASK_INPUT_ID = 1
+};
+
+#endif
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index 28c386241a7..4b8fc9c7ed6 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -40,6 +40,7 @@
#include "DNA_outliner_types.h" /* for TreeStoreElem */
#include "DNA_image_types.h" /* ImageUser */
#include "DNA_movieclip_types.h" /* MovieClipUser */
+#include "DNA_sequence_types.h" /* SequencerScopes */
/* Hum ... Not really nice... but needed for spacebuts. */
#include "DNA_view2d_types.h"
@@ -263,8 +264,8 @@ typedef enum eSpaceOutliner_Mode {
SO_SAME_TYPE = 5,
SO_GROUPS = 6,
SO_LIBRARIES = 7,
- SO_VERSE_SESSION = 8,
- SO_VERSE_MS = 9,
+ /* SO_VERSE_SESSION = 8, */ /* deprecated! */
+ /* SO_VERSE_MS = 9, */ /* deprecated!*/
SO_SEQUENCE = 10,
SO_DATABLOCKS = 11,
SO_USERDEF = 12,
@@ -375,7 +376,7 @@ typedef struct SpaceNla {
/* nla->flag */
typedef enum eSpaceNla_Flag {
- /* flags (1<<0), (1<<1), and (1<<3) are depreceated flags from old verisons */
+ /* flags (1<<0), (1<<1), and (1<<3) are deprecated flags from old verisons */
/* draw timing in seconds instead of frames */
SNLA_DRAWTIME = (1 << 2),
@@ -470,9 +471,11 @@ typedef struct SpaceSeq {
int flag;
float zoom DNA_DEPRECATED; /* deprecated, handled by View2D now */
int view; /* see SEQ_VIEW_* below */
- int pad;
+ int overlay_type;
struct bGPdata *gpd; /* grease-pencil data */
+
+ struct SequencerScopes scopes; /* different scoped displayed in space */
} SpaceSeq;
@@ -513,12 +516,28 @@ typedef enum eSpaceSeq_Proxy_RenderSize {
SEQ_PROXY_RENDER_SIZE_FULL = 100
} eSpaceSeq_Proxy_RenderSize;
+typedef struct MaskSpaceInfo
+{
+ /* **** mask editing **** */
+ struct Mask *mask;
+ /* draw options */
+ char draw_flag;
+ char draw_type;
+ char pad3[6];
+} MaskSpaceInfo;
+
+/* sseq->mainb */
+typedef enum eSpaceSeq_OverlayType {
+ SEQ_DRAW_OVERLAY_RECT = 0,
+ SEQ_DRAW_OVERLAY_REFERENCE = 1,
+ SEQ_DRAW_OVERLAY_CURRENT = 2
+} eSpaceSeq_OverlayType;
/* File Selector ========================================== */
/* Config and Input for File Selector */
typedef struct FileSelectParams {
- char title[32]; /* title, also used for the text of the execute button */
+ char title[96]; /* title, also used for the text of the execute button */
char dir[1056]; /* directory, FILE_MAX_LIBEXTRA, 1024 + 32, this is for extreme case when 1023 length path
* needs to be linked in, where foo.blend/Armature need adding */
char file[256]; /* file */
@@ -669,8 +688,9 @@ typedef struct SpaceImage {
struct Image *image;
struct ImageUser iuser;
- struct CurveMapping *cumap;
-
+
+ struct CurveMapping *cumap DNA_DEPRECATED; /* was switched to scene's color management settings */
+
struct Scopes scopes; /* histogram waveform and vectorscope */
struct Histogram sample_line_hist; /* sample line histogram */
@@ -681,14 +701,17 @@ typedef struct SpaceImage {
float zoom; /* user defined zoom level */
float centx, centy; /* storage for offset while render drawing */
- short curtile; /* the currently active tile of the image when tile is enabled, is kept in sync with the active faces tile */
+ char mode; /* view/paint/mask */
+ char pin;
short pad;
+ short curtile; /* the currently active tile of the image when tile is enabled, is kept in sync with the active faces tile */
short lock;
- short pin;
char dt_uv; /* UV draw type */
char sticky; /* sticky selection type */
char dt_uvstretch;
char around;
+
+ MaskSpaceInfo mask_info;
} SpaceImage;
@@ -706,6 +729,13 @@ typedef enum eSpaceImage_UVDT_Stretch {
SI_UVDT_STRETCH_AREA = 1,
} eSpaceImage_UVDT_Stretch;
+/* SpaceImage->mode */
+typedef enum eSpaceImage_Mode {
+ SI_MODE_VIEW = 0,
+ SI_MODE_PAINT = 1,
+ SI_MODE_MASK = 2 /* note: mesh edit mode overrides mask */
+} eSpaceImage_Mode;
+
/* SpaceImage->sticky
* Note DISABLE should be 0, however would also need to re-arrange icon order,
* also, sticky loc is the default mode so this means we don't need to 'do_versons' */
@@ -717,15 +747,15 @@ typedef enum eSpaceImage_Sticky {
/* SpaceImage->flag */
typedef enum eSpaceImage_Flag {
- SI_BE_SQUARE = (1 << 0),
- SI_EDITTILE = (1 << 1),
+/* SI_BE_SQUARE = (1 << 0), */ /* deprecated */
+ SI_EDITTILE = (1 << 1), /* XXX - not used but should be? */
SI_CLIP_UV = (1 << 2),
- SI_DRAWTOOL = (1 << 3),
+/* SI_DRAWTOOL = (1 << 3), */ /* deprecated */
SI_NO_DRAWFACES = (1 << 4),
SI_DRAWSHADOW = (1 << 5),
-/* SI_SELACTFACE = (1 << 6), */ /* deprecated */
- SI_DEPRECATED2 = (1 << 7),
- SI_DEPRECATED3 = (1 << 8), /* stick UV selection to mesh vertex (UVs wont always be touching) */
+/* SI_SELACTFACE = (1 << 6), */ /* deprecated */
+/* SI_DEPRECATED2 = (1 << 7), */ /* deprecated */
+/* SI_DEPRECATED3 = (1 << 8), */ /* deprecated */
SI_COORDFLOATS = (1 << 9),
SI_PIXELSNAP = (1 << 10),
SI_LIVE_UNWRAP = (1 << 11),
@@ -737,8 +767,8 @@ typedef enum eSpaceImage_Flag {
SI_PREVSPACE = (1 << 15),
SI_FULLWINDOW = (1 << 16),
- SI_DEPRECATED4 = (1 << 17),
- SI_DEPRECATED5 = (1 << 18),
+/* SI_DEPRECATED4 = (1 << 17), */ /* deprecated */
+/* SI_DEPRECATED5 = (1 << 18), */ /* deprecated */
/* this means that the image is drawn until it reaches the view edge,
* in the image view, its unrelated to the 'tile' mode for texface
@@ -746,7 +776,7 @@ typedef enum eSpaceImage_Flag {
SI_DRAW_TILE = (1 << 19),
SI_SMOOTH_UV = (1 << 20),
SI_DRAW_STRETCH = (1 << 21),
-/* SI_DISPGP = (1 << 22), */ /* DEPRECATED */
+/* SI_DISPGP = (1 << 22), */ /* deprecated */
SI_DRAW_OTHER = (1 << 23),
SI_COLOR_CORRECTION = (1 << 24),
@@ -856,11 +886,11 @@ typedef struct SpaceNode {
struct ID *id, *from; /* context, no need to save in file? well... pinning... */
short flag, pad1; /* menunr: browse id block in header */
- float aspect;
+ float aspect, aspect_sqrt;
float xof, yof; /* offset for drawing the backdrop */
- float zoom, padf; /* zoom for backdrop */
- float mx, my; /* mousepos for drawing socketless link */
+ float zoom; /* zoom for backdrop */
+ float cursor[2]; /* mouse pos for drawing socketless link and adding nodes */
struct bNodeTree *nodetree, *edittree;
int treetype; /* treetype: as same nodetree->type */
@@ -879,8 +909,12 @@ typedef enum eSpaceNode_Flag {
/* SNODE_DISPGP = (1 << 2), */ /* XXX: Grease Pencil - deprecated? */
SNODE_USE_ALPHA = (1 << 3),
SNODE_SHOW_ALPHA = (1 << 4),
+ SNODE_SHOW_R = (1 << 7),
+ SNODE_SHOW_G = (1 << 8),
+ SNODE_SHOW_B = (1 << 9),
SNODE_AUTO_RENDER = (1 << 5),
SNODE_SHOW_HIGHLIGHT = (1 << 6),
+ SNODE_USE_HIDDEN_PREVIEW = (1 << 10),
} eSpaceNode_Flag;
/* snode->texfrom */
@@ -1009,12 +1043,7 @@ typedef struct SpaceClip {
int around, pad4; /* pivot point for transforms */
- /* **** mask editing **** */
- struct Mask *mask;
- /* draw options */
- char mask_draw_flag;
- char mask_draw_type;
- char pad3[6];
+ MaskSpaceInfo mask_info;
} SpaceClip;
/* SpaceClip->flag */
@@ -1098,4 +1127,6 @@ typedef enum eSpace_Type {
SPACEICONMAX = SPACE_CLIP
} eSpace_Type;
+#define IMG_SIZE_FALLBACK 256
+
#endif
diff --git a/source/blender/makesdna/DNA_texture_types.h b/source/blender/makesdna/DNA_texture_types.h
index 606c466ac74..9fdd9216549 100644
--- a/source/blender/makesdna/DNA_texture_types.h
+++ b/source/blender/makesdna/DNA_texture_types.h
@@ -204,7 +204,7 @@ typedef struct Tex {
/* newnoise: musgrave parameters */
float mg_H, mg_lacunarity, mg_octaves, mg_offset, mg_gain;
- /* newnoise: distorted noise amount, musgrave & voronoi ouput scale */
+ /* newnoise: distorted noise amount, musgrave & voronoi output scale */
float dist_amount, ns_outscale;
/* newnoise: voronoi nearest neighbor weights, minkovsky exponent, distance metric & color type */
@@ -244,7 +244,7 @@ typedef struct Tex {
struct Image *ima;
struct ColorBand *coba;
struct EnvMap *env;
- struct PreviewImage * preview;
+ struct PreviewImage *preview;
struct PointDensity *pd;
struct VoxelData *vd;
struct OceanTex *ot;
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index 1c2844cd8a7..4c196a15db1 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -47,7 +47,6 @@ struct ColorBand;
/* ************************ style definitions ******************** */
#define MAX_STYLE_NAME 64
-#define MAX_FONT_NAME 256
/* default uifont_id offered by Blender */
#define UIFONT_DEFAULT 0
@@ -215,7 +214,7 @@ typedef struct ThemeSpace {
char extra_edge_len[4], extra_face_angle[4], extra_face_area[4], pad3[4];
char normal[4];
char vertex_normal[4];
- char bone_solid[4], bone_pose[4];
+ char bone_solid[4], bone_pose[4], bone_pose_active[4];
char strip[4], strip_select[4];
char cframe[4];
@@ -264,8 +263,6 @@ typedef struct ThemeSpace {
char skin_root[4]; /* Skin modifier root color */
- int pad4;
-
/* NLA */
char anim_active[4]; /* Active Action + Summary Channel */
char anim_non_active[4]; /* Active Action = NULL */
@@ -347,6 +344,7 @@ typedef struct UserDef {
char textudir[768];
char pythondir[768];
char sounddir[768];
+ char i18ndir[768];
char image_editor[1024]; /* 1024 = FILE_MAX */
char anim_player[1024]; /* 1024 = FILE_MAX */
int anim_player_preset;
@@ -415,6 +413,8 @@ typedef struct UserDef {
short use_16bit_textures, use_gpu_mipmap;
float ndof_sensitivity; /* overall sensitivity of 3D mouse */
+ float ndof_orbit_sensitivity;
+ float pad4;
int ndof_flag; /* flags for 3D mouse */
float glalphaclip;
@@ -483,11 +483,10 @@ extern UserDef U; /* from blenkernel blender.c */
#define USER_TOOLTIPS_PYTHON (1 << 26)
/* helper macro for checking frame clamping */
-#define FRAMENUMBER_MIN_CLAMP(cfra) \
- { \
- if ((U.flag & USER_NONEGFRAMES) && (cfra < 0)) \
- cfra = 0; \
- }
+#define FRAMENUMBER_MIN_CLAMP(cfra) { \
+ if ((U.flag & USER_NONEGFRAMES) && (cfra < 0)) \
+ cfra = 0; \
+ } (void)0
/* viewzom */
#define USER_ZOOM_CONT 0
@@ -505,13 +504,12 @@ extern UserDef U; /* from blenkernel blender.c */
/*#define USER_FLIPFULLSCREEN (1 << 7)*/ /* deprecated */
#define USER_ALLWINCODECS (1 << 8)
#define USER_MENUOPENAUTO (1 << 9)
-/*#define USER_PANELPINNED (1 << 10) deprecated */
+#define USER_ZBUF_CURSOR (1 << 10)
#define USER_AUTOPERSP (1 << 11)
#define USER_LOCKAROUND (1 << 12)
#define USER_GLOBALUNDO (1 << 13)
#define USER_ORBIT_SELECTION (1 << 14)
-// old flag for #define USER_KEYINSERTAVAI (1 << 15)
-#define USER_ORBIT_ZBUF (1 << 15)
+#define USER_ZBUF_ORBIT (1 << 15)
#define USER_HIDE_DOT (1 << 16)
#define USER_SHOW_ROTVIEWICON (1 << 17)
#define USER_SHOW_VIEWPORTNAME (1 << 18)
@@ -522,7 +520,7 @@ extern UserDef U; /* from blenkernel blender.c */
#define USER_MENUFIXEDORDER (1 << 23)
#define USER_CONTINUOUS_MOUSE (1 << 24)
#define USER_ZOOM_INVERT (1 << 25)
-#define USER_ZOOM_HORIZ (1 << 26) /* for CONTINUE and DOLLY zoom */
+#define USER_ZOOM_HORIZ (1 << 26) /* for CONTINUE and DOLLY zoom */
#define USER_SPLASH_DISABLE (1 << 27)
#define USER_HIDE_RECENT (1 << 28)
#define USER_SHOW_THUMBNAILS (1 << 29)
@@ -546,6 +544,7 @@ extern UserDef U; /* from blenkernel blender.c */
/* toolsettings->autokey_flag */
#define AUTOKEY_FLAG_ONLYKEYINGSET (1<<6)
+#define AUTOKEY_FLAG_NOWARNING (1<<7)
#define ANIMRECORD_FLAG_WITHNLA (1<<10)
/* transopts */
@@ -652,6 +651,7 @@ extern UserDef U; /* from blenkernel blender.c */
#define NDOF_PANX_INVERT_AXIS (1 << 12)
#define NDOF_PANY_INVERT_AXIS (1 << 13)
#define NDOF_PANZ_INVERT_AXIS (1 << 14)
+#define NDOF_TURNTABLE (1 << 15)
/* compute_device_type */
#define USER_COMPUTE_DEVICE_NONE 0
diff --git a/source/blender/makesdna/DNA_vfont_types.h b/source/blender/makesdna/DNA_vfont_types.h
index 299a6540f40..7aaeaf23db2 100644
--- a/source/blender/makesdna/DNA_vfont_types.h
+++ b/source/blender/makesdna/DNA_vfont_types.h
@@ -45,7 +45,11 @@ typedef struct VFont {
char name[1024]; /* 1024 = FILE_MAX */
struct VFontData *data;
- struct PackedFile * packedfile;
+ struct PackedFile *packedfile;
+
+ /* runtime only, holds memory for freetype to read from
+ * TODO, replace this with blf_font_new() style loading */
+ struct PackedFile *temp_pf;
} VFont;
/* *************** FONT ****************** */
diff --git a/source/blender/makesdna/DNA_view2d_types.h b/source/blender/makesdna/DNA_view2d_types.h
index 9c4abfbfdef..a3f4b362672 100644
--- a/source/blender/makesdna/DNA_view2d_types.h
+++ b/source/blender/makesdna/DNA_view2d_types.h
@@ -63,6 +63,11 @@ typedef struct View2D {
float *tab_offset; /* different offset per tab, for buttons */
int tab_num; /* number of tabs stored */
int tab_cur; /* current tab */
+
+ /* animated smooth view */
+ struct SmoothView2DStore *sms;
+ struct wmTimer *smooth_timer;
+
} View2D;
/* ---------------------------------- */
@@ -99,6 +104,7 @@ typedef struct View2D {
/* general refresh settings (v2d->flag) */
/* global view2d horizontal locking (for showing same time interval) */
+ /* TODO: this flag may be set in old files but is not accessible currently, should be exposed from RNA - Campbell */
#define V2D_VIEWSYNC_SCREEN_TIME (1<<0)
/* within area (i.e. between regions) view2d vertical locking */
#define V2D_VIEWSYNC_AREA_VERTICAL (1<<1)
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index 487c0d97e5e..9da10381af0 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -44,7 +44,7 @@ struct MovieClipUser;
struct RenderInfo;
struct RenderEngine;
struct bGPdata;
-struct SmoothViewStore;
+struct SmoothView3DStore;
struct wmTimer;
/* This is needed to not let VC choke on near and far... old
@@ -108,7 +108,7 @@ typedef struct RegionView3D {
struct ViewDepths *depths;
/* animated smooth view */
- struct SmoothViewStore *sms;
+ struct SmoothView3DStore *sms;
struct wmTimer *smooth_timer;
@@ -133,11 +133,11 @@ typedef struct RegionView3D {
short rflag;
- /* last view */
+ /* last view (use when switching out of camera view) */
float lviewquat[4];
short lpersp, lview; /* lpersp can never be set to 'RV3D_CAMOB' */
+
float gridview;
-
float twangle[3];
diff --git a/source/blender/makesdna/intern/dna_genfile.c b/source/blender/makesdna/intern/dna_genfile.c
index 8be743335cc..f5cf7e3ea3b 100644
--- a/source/blender/makesdna/intern/dna_genfile.c
+++ b/source/blender/makesdna/intern/dna_genfile.c
@@ -105,7 +105,7 @@ typedef long long __int64;
* - location within a struct (everthing can be randomly mixed up)
* - struct within struct (within struct etc), this is recursive
* - adding new elements, will be default initialized zero
- * - remving elements
+ * - removing elements
* - change of array sizes
* - change of a pointer type: when the name doesn't change the contents is copied
*
@@ -122,7 +122,7 @@ typedef long long __int64;
* - only use a long in Blender if you want this to be the size of a pointer. so it is
* 32 bits or 64 bits, dependent at the cpu architecture
* - chars are always unsigned
- * - aligment of variables has to be done in such a way, that any system does
+ * - alignment of variables has to be done in such a way, that any system does
* not create 'padding' (gaps) in structures. So make sure that:
* - short: 2 aligned
* - int: 4 aligned
@@ -556,7 +556,7 @@ static void recurs_test_compflags(SDNA *sdna, char *compflags, int structnr)
/* Unsure of exact function - compares the sdna argument to
* newsdna and sets up the information necessary to convert
- * data written with a dna of oldsdna to inmemory data with a
+ * data written with a dna of oldsdna to in-memory data with a
* structure defined by the newsdna sdna (I think). -zr
*/
diff --git a/source/blender/makesdna/intern/makesdna.c b/source/blender/makesdna/intern/makesdna.c
index 09cb22683a7..079f2768352 100644
--- a/source/blender/makesdna/intern/makesdna.c
+++ b/source/blender/makesdna/intern/makesdna.c
@@ -64,8 +64,8 @@
/* headers around with more freedom. */
static const char *includefiles[] = {
- // if you add files here, please add them at the end
- // of makesdna.c (this file) as well
+ /* if you add files here, please add them at the end
+ * of makesdna.c (this file) as well */
"DNA_listBase.h",
"DNA_vec_types.h",
@@ -80,8 +80,8 @@ static const char *includefiles[] = {
"DNA_lamp_types.h",
"DNA_material_types.h",
"DNA_vfont_types.h",
- // if you add files here, please add them at the end
- // of makesdna.c (this file) as well
+ /* if you add files here, please add them at the end
+ * of makesdna.c (this file) as well */
"DNA_meta_types.h",
"DNA_curve_types.h",
"DNA_mesh_types.h",
@@ -122,8 +122,8 @@ static const char *includefiles[] = {
"DNA_particle_types.h",
"DNA_cloth_types.h",
"DNA_gpencil_types.h",
- // if you add files here, please add them at the end
- // of makesdna.c (this file) as well
+ /* if you add files here, please add them at the end
+ * of makesdna.c (this file) as well */
"DNA_windowmanager_types.h",
"DNA_anim_types.h",
"DNA_boid_types.h",
@@ -134,7 +134,7 @@ static const char *includefiles[] = {
"DNA_dynamicpaint_types.h",
"DNA_mask_types.h",
- // empty string to indicate end of includefiles
+ /* empty string to indicate end of includefiles */
""
};
@@ -144,8 +144,8 @@ static int nr_types = 0;
static int nr_structs = 0;
static char **names, *namedata; /* at address names[a] is string a */
static char **types, *typedata; /* at address types[a] is string a */
-static short *typelens; /* at typelens[a] is de length of type a */
-static short *alphalens; /* contains sizes as they are calculated on the DEC Alpha (64 bits), in fact any 64bit system */
+static short *typelens_native; /* at typelens[a] is the length of type 'a' on this systems bitness (32 or 64) */
+static short *typelens_64; /* contains sizes as they are calculated on 64 bit systems */
static short **structs, *structdata; /* at sp = structs[a] is the first address of a struct definition
* sp[0] is type number
* sp[1] is amount of elements
@@ -242,8 +242,8 @@ static int add_type(const char *str, int len)
for (nr = 0; nr < nr_types; nr++) {
if (strcmp(str, types[nr]) == 0) {
if (len) {
- typelens[nr] = len;
- alphalens[nr] = len;
+ typelens_native[nr] = len;
+ typelens_64[nr] = len;
}
return nr;
}
@@ -256,8 +256,8 @@ static int add_type(const char *str, int len)
}
strcpy(cp, str);
types[nr_types] = cp;
- typelens[nr_types] = len;
- alphalens[nr_types] = len;
+ typelens_native[nr_types] = len;
+ typelens_64[nr_types] = len;
if (nr_types >= maxnr) {
printf("too many types\n");
@@ -291,7 +291,7 @@ static int add_name(const char *str)
if (str[0] == '(' && str[1] == '*') {
/* we handle function pointer and special array cases here, e.g.
* void (*function)(...) and float (*array)[..]. the array case
- * name is still converted to (array*)() though because it is that
+ * name is still converted to (array *)() though because it is that
* way in old dna too, and works correct with elementsize() */
int isfuncptr = (strchr(str + 1, '(')) != NULL;
@@ -450,7 +450,7 @@ static int preprocess_include(char *maindata, int len)
memcpy(temp, maindata, len);
- // remove all c++ comments
+ /* remove all c++ comments */
/* replace all enters/tabs/etc with spaces */
cp = temp;
a = len;
@@ -485,11 +485,15 @@ static int preprocess_include(char *maindata, int len)
}
/* do not copy when: */
- if (comment) ;
- else if (cp[0] == ' ' && cp[1] == ' ') ;
- else if (cp[-1] == '*' && cp[0] == ' ') ; /* pointers with a space */
-
- /* skip special keywords */
+ if (comment) {
+ /* pass */
+ }
+ else if (cp[0] == ' ' && cp[1] == ' ') {
+ /* pass */
+ }
+ else if (cp[-1] == '*' && cp[0] == ' ') {
+ /* pointers with a space */
+ } /* skip special keywords */
else if (strncmp("DNA_DEPRECATED", cp, 14) == 0) {
/* single values are skipped already, so decrement 1 less */
a -= 13;
@@ -712,7 +716,7 @@ static int arraysize(char *astr, int len)
static int calculate_structlens(int firststruct)
{
- int a, b, len, alphalen, unknown = nr_structs, lastunknown, structtype, type, mul, namelen;
+ int a, b, len_native, len_64, unknown = nr_structs, lastunknown, structtype, type, mul, namelen;
short *sp, *structpoin;
char *cp;
int has_pointer, dna_error = 0;
@@ -727,11 +731,11 @@ static int calculate_structlens(int firststruct)
structtype = structpoin[0];
/* when length is not known... */
- if (typelens[structtype] == 0) {
+ if (typelens_native[structtype] == 0) {
sp = structpoin + 2;
- len = 0;
- alphalen = 0;
+ len_native = 0;
+ len_64 = 0;
has_pointer = 0;
/* check all elements in struct */
@@ -754,25 +758,25 @@ static int calculate_structlens(int firststruct)
/* 4-8 aligned/ */
if (sizeof(void *) == 4) {
- if (len % 4) {
- printf("Align pointer error in struct (len4): %s %s\n", types[structtype], cp);
+ if (len_native % 4) {
+ printf("Align pointer error in struct (len_native 4): %s %s\n", types[structtype], cp);
dna_error = 1;
}
}
else {
- if (len % 8) {
- printf("Align pointer error in struct (len8): %s %s\n", types[structtype], cp);
+ if (len_native % 8) {
+ printf("Align pointer error in struct (len_native 8): %s %s\n", types[structtype], cp);
dna_error = 1;
}
}
- if (alphalen % 8) {
- printf("Align pointer error in struct (alphalen8): %s %s\n", types[structtype], cp);
+ if (len_64 % 8) {
+ printf("Align pointer error in struct (len_64 8): %s %s\n", types[structtype], cp);
dna_error = 1;
}
- len += sizeof(void *) * mul;
- alphalen += 8 * mul;
+ len_native += sizeof(void *) * mul;
+ len_64 += 8 * mul;
}
else if (cp[0] == '[') {
@@ -780,7 +784,7 @@ static int calculate_structlens(int firststruct)
printf("Parse error in struct, invalid member name: %s %s\n", types[structtype], cp);
dna_error = 1;
}
- else if (typelens[type]) {
+ else if (typelens_native[type]) {
/* has the name an extra length? (array) */
mul = 1;
if (cp[namelen - 1] == ']') mul = arraysize(cp, namelen);
@@ -792,54 +796,54 @@ static int calculate_structlens(int firststruct)
/* struct alignment */
if (type >= firststruct) {
- if (sizeof(void *) == 8 && (len % 8) ) {
+ if (sizeof(void *) == 8 && (len_native % 8) ) {
printf("Align struct error: %s %s\n", types[structtype], cp);
dna_error = 1;
}
}
/* 2-4-8 aligned/ */
- if (type < firststruct && typelens[type] > 4 && (len % 8)) {
- printf("Align 8 error in struct: %s %s (add %d padding bytes)\n", types[structtype], cp, len % 8);
+ if (type < firststruct && typelens_native[type] > 4 && (len_native % 8)) {
+ printf("Align 8 error in struct: %s %s (add %d padding bytes)\n", types[structtype], cp, len_native % 8);
dna_error = 1;
}
- if (typelens[type] > 3 && (len % 4) ) {
- printf("Align 4 error in struct: %s %s (add %d padding bytes)\n", types[structtype], cp, len % 4);
+ if (typelens_native[type] > 3 && (len_native % 4) ) {
+ printf("Align 4 error in struct: %s %s (add %d padding bytes)\n", types[structtype], cp, len_native % 4);
dna_error = 1;
}
- else if (typelens[type] == 2 && (len % 2) ) {
- printf("Align 2 error in struct: %s %s (add %d padding bytes)\n", types[structtype], cp, len % 2);
+ else if (typelens_native[type] == 2 && (len_native % 2) ) {
+ printf("Align 2 error in struct: %s %s (add %d padding bytes)\n", types[structtype], cp, len_native % 2);
dna_error = 1;
}
- len += mul * typelens[type];
- alphalen += mul * alphalens[type];
+ len_native += mul * typelens_native[type];
+ len_64 += mul * typelens_64[type];
}
else {
- len = 0;
- alphalen = 0;
+ len_native = 0;
+ len_64 = 0;
break;
}
}
- if (len == 0) {
+ if (len_native == 0) {
unknown++;
}
else {
- typelens[structtype] = len;
- alphalens[structtype] = alphalen;
- // two ways to detect if a struct contains a pointer:
- // has_pointer is set or alphalen != len
- if (has_pointer || alphalen != len) {
- if (alphalen % 8) {
- printf("Sizeerror 8 in struct: %s (add %d bytes)\n", types[structtype], alphalen % 8);
+ typelens_native[structtype] = len_native;
+ typelens_64[structtype] = len_64;
+ /* two ways to detect if a struct contains a pointer:
+ * has_pointer is set or len_64 != len_native */
+ if (has_pointer || len_64 != len_native) {
+ if (len_64 % 8) {
+ printf("Sizeerror 8 in struct: %s (add %d bytes)\n", types[structtype], len_64 % 8);
dna_error = 1;
}
}
- if (len % 4) {
- printf("Sizeerror 4 in struct: %s (add %d bytes)\n", types[structtype], len % 4);
+ if (len_native % 4) {
+ printf("Sizeerror 4 in struct: %s (add %d bytes)\n", types[structtype], len_native % 4);
dna_error = 1;
}
@@ -861,7 +865,7 @@ static int calculate_structlens(int firststruct)
structtype = structpoin[0];
/* length unknown */
- if (typelens[structtype] != 0) {
+ if (typelens_native[structtype] != 0) {
printf(" %s\n", types[structtype]);
}
}
@@ -875,7 +879,7 @@ static int calculate_structlens(int firststruct)
structtype = structpoin[0];
/* length unknown yet */
- if (typelens[structtype] == 0) {
+ if (typelens_native[structtype] == 0) {
printf(" %s\n", types[structtype]);
}
}
@@ -921,7 +925,7 @@ void printStructLengths(void)
for (a = 0; a < nr_structs; a++) {
structpoin = structs[a];
structtype = structpoin[0];
- printf("\t%s\t:%d\n", types[structtype], typelens[structtype]);
+ printf("\t%s\t:%d\n", types[structtype], typelens_native[structtype]);
}
}
@@ -952,8 +956,8 @@ static int make_structDNA(char *baseDirectory, FILE *file)
/* a maximum of 5000 variables, must be sufficient? */
names = MEM_callocN(sizeof(char *) * maxnr, "names");
types = MEM_callocN(sizeof(char *) * maxnr, "types");
- typelens = MEM_callocN(sizeof(short) * maxnr, "typelens");
- alphalens = MEM_callocN(sizeof(short) * maxnr, "alphalens");
+ typelens_native = MEM_callocN(sizeof(short) * maxnr, "typelens_native");
+ typelens_64 = MEM_callocN(sizeof(short) * maxnr, "typelens_64");
structs = MEM_callocN(sizeof(short) * maxnr, "structs");
/* insertion of all known types */
@@ -972,7 +976,7 @@ static int make_structDNA(char *baseDirectory, FILE *file)
add_type("uint64_t", 8); /* SDNA_TYPE_UINT64 */
add_type("void", 0); /* SDNA_TYPE_VOID */
- // the defines above shouldn't be output in the padding file...
+ /* the defines above shouldn't be output in the padding file... */
firststruct = nr_types;
/* add all include files defined in the global array */
@@ -990,7 +994,7 @@ static int make_structDNA(char *baseDirectory, FILE *file)
if (debugSDNA) printf("\tFinished scanning %d headers.\n", i);
if (calculate_structlens(firststruct)) {
- // error
+ /* error */
return(1);
}
@@ -1006,7 +1010,7 @@ static int make_structDNA(char *baseDirectory, FILE *file)
}
printf("\n");
- sp = typelens;
+ sp = typelens_native;
for (a = 0; a < nr_types; a++, sp++) {
printf(" %s %d\n", types[a], *sp);
}
@@ -1014,7 +1018,7 @@ static int make_structDNA(char *baseDirectory, FILE *file)
for (a = 0; a < nr_structs; a++) {
sp = structs[a];
- printf(" struct %s elems: %d size: %d\n", types[sp[0]], sp[1], typelens[sp[0]]);
+ printf(" struct %s elems: %d size: %d\n", types[sp[0]], sp[1], typelens_native[sp[0]]);
num_types = sp[1];
sp += 2;
/* ? num_types was elem? */
@@ -1028,7 +1032,9 @@ static int make_structDNA(char *baseDirectory, FILE *file)
if (debugSDNA > -1) printf("Writing file ... ");
- if (nr_names == 0 || nr_structs == 0) ;
+ if (nr_names == 0 || nr_structs == 0) {
+ /* pass */
+ }
else {
strcpy(str, "SDNA");
dna_write(file, str, 4);
@@ -1066,7 +1072,7 @@ static int make_structDNA(char *baseDirectory, FILE *file)
len = 2 * nr_types;
if (nr_types & 1) len += 2;
- dna_write(file, typelens, len);
+ dna_write(file, typelens_native, len);
/* WRITE STRUCTS */
strcpy(str, "STRC");
@@ -1091,13 +1097,13 @@ static int make_structDNA(char *baseDirectory, FILE *file)
if (fp == NULL) ;
else {
- // add all include files defined in the global array
+ /* add all include files defined in the global array */
for (i = 0; strlen(includefiles[i]); i++) {
fprintf(fp, "#include \"%s%s\"\n", baseDirectory, includefiles[i]);
}
fprintf(fp, "main() {\n");
- sp = typelens;
+ sp = typelens_native;
sp += firststruct;
for (a = firststruct; a < nr_types; a++, sp++) {
if (*sp) {
@@ -1119,8 +1125,8 @@ static int make_structDNA(char *baseDirectory, FILE *file)
MEM_freeN(structdata);
MEM_freeN(names);
MEM_freeN(types);
- MEM_freeN(typelens);
- MEM_freeN(alphalens);
+ MEM_freeN(typelens_native);
+ MEM_freeN(typelens_64);
MEM_freeN(structs);
if (debugSDNA > -1) printf("done.\n");
@@ -1168,7 +1174,7 @@ int main(int argc, char **argv)
fprintf(file, "unsigned char DNAstr[]= {\n");
if (make_structDNA(baseDirectory, file)) {
- // error
+ /* error */
fclose(file);
make_bad_file(argv[1], __LINE__);
return_status = 1;
@@ -1186,7 +1192,19 @@ int main(int argc, char **argv)
return(return_status);
}
+/* handy but fails on struct bounds which makesdna doesnt care about
+ * unless structs are nested */
+#if 0
/* include files for automatic dependencies */
+
+/* extra safety check that we are aligned,
+ * warnings here are easier to fix the makesdna's */
+#ifdef __GNUC__
+# pragma GCC diagnostic error "-Wpadded"
+#endif
+
+#endif /* if 0 */
+
#include "DNA_listBase.h"
#include "DNA_vec_types.h"
#include "DNA_ID.h"
diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h
index 5395f9c8b34..8e387dd4eba 100644
--- a/source/blender/makesrna/RNA_access.h
+++ b/source/blender/makesrna/RNA_access.h
@@ -104,6 +104,9 @@ extern StructRNA RNA_CollectionProperty;
extern StructRNA RNA_CollisionModifier;
extern StructRNA RNA_CollisionSensor;
extern StructRNA RNA_CollisionSettings;
+extern StructRNA RNA_ColorManagedColorspaceSettings;
+extern StructRNA RNA_ColorManagedDisplaySettings;
+extern StructRNA RNA_ColorManagedViewSettings;
extern StructRNA RNA_ColorRamp;
extern StructRNA RNA_ColorRampElement;
extern StructRNA RNA_ColorSequence;
@@ -138,6 +141,7 @@ extern StructRNA RNA_CompositorNodeHueSat;
extern StructRNA RNA_CompositorNodeIDMask;
extern StructRNA RNA_CompositorNodeDoubleEdgeMask;
extern StructRNA RNA_CompositorNodeImage;
+extern StructRNA RNA_CompositorNodeInpaint;
extern StructRNA RNA_CompositorNodeInvert;
extern StructRNA RNA_CompositorNodeLensdist;
extern StructRNA RNA_CompositorNodeLevels;
@@ -644,6 +648,7 @@ StructRNA *RNA_struct_find(const char *identifier);
const char *RNA_struct_identifier(StructRNA *type);
const char *RNA_struct_ui_name(StructRNA *type);
const char *RNA_struct_ui_description(StructRNA *type);
+const char *RNA_struct_translation_context(StructRNA *type);
int RNA_struct_ui_icon(StructRNA *type);
PropertyRNA *RNA_struct_name_property(StructRNA *type);
@@ -709,6 +714,7 @@ int RNA_property_string_maxlength(PropertyRNA *prop);
const char *RNA_property_ui_name(PropertyRNA *prop);
const char *RNA_property_ui_description(PropertyRNA *prop);
+const char *RNA_property_translation_context(PropertyRNA *prop);
int RNA_property_ui_icon(PropertyRNA *prop);
/* Dynamic Property Information */
diff --git a/source/blender/makesrna/RNA_enum_types.h b/source/blender/makesrna/RNA_enum_types.h
index a0614a9d82a..0f9a00de7b6 100644
--- a/source/blender/makesrna/RNA_enum_types.h
+++ b/source/blender/makesrna/RNA_enum_types.h
@@ -38,6 +38,7 @@ extern EnumPropertyItem DummyRNA_NULL_items[];
extern EnumPropertyItem DummyRNA_DEFAULT_items[];
extern EnumPropertyItem object_mode_items[];
+extern EnumPropertyItem object_empty_drawtype_items[];
extern EnumPropertyItem metaelem_type_items[];
extern EnumPropertyItem proportional_falloff_items[];
@@ -52,10 +53,12 @@ extern EnumPropertyItem region_type_items[];
extern EnumPropertyItem modifier_type_items[];
extern EnumPropertyItem constraint_type_items[];
extern EnumPropertyItem boidrule_type_items[];
+extern EnumPropertyItem sequence_modifier_type_items[];
extern EnumPropertyItem image_type_items[];
extern EnumPropertyItem image_color_mode_items[];
extern EnumPropertyItem image_depth_mode_items[];
+extern EnumPropertyItem image_generated_type_items[];
extern EnumPropertyItem color_sets_items[];
@@ -127,6 +130,8 @@ extern EnumPropertyItem ramp_blend_items[];
extern EnumPropertyItem prop_dynamicpaint_type_items[];
+extern EnumPropertyItem clip_editor_mode_items[];
+
struct bContext;
struct PointerRNA;
struct PropertyRNA;
diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h
index 348efaed8c6..511999dfa37 100644
--- a/source/blender/makesrna/RNA_types.h
+++ b/source/blender/makesrna/RNA_types.h
@@ -203,7 +203,7 @@ typedef enum PropertyFlag {
PROP_CONTEXT_UPDATE = (1 << 22),
PROP_CONTEXT_PROPERTY_UPDATE = (1 << 22) | (1 << 27),
- /* Use for arrays or for any data that should not have a referene kept
+ /* Use for arrays or for any data that should not have a reference kept
* most common case is functions that return arrays where the array */
PROP_THICK_WRAP = (1 << 23),
diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c
index 32ca1bca107..14c996800fc 100644
--- a/source/blender/makesrna/intern/makesrna.c
+++ b/source/blender/makesrna/intern/makesrna.c
@@ -51,7 +51,7 @@
# define __func__ __FUNCTION__
#endif
-/* copied from BKE_utildefines.h ugh */
+/* copied from BLI_utildefines.h ugh */
#ifdef __GNUC__
# define UNUSED(x) UNUSED_ ## x __attribute__((__unused__))
#else
@@ -532,7 +532,8 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr
func = rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "get");
switch (prop->type) {
- case PROP_STRING: {
+ case PROP_STRING:
+ {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
fprintf(f, "void %s(PointerRNA *ptr, char *value)\n", func);
fprintf(f, "{\n");
@@ -565,7 +566,8 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr
fprintf(f, "}\n\n");
break;
}
- case PROP_POINTER: {
+ case PROP_POINTER:
+ {
fprintf(f, "PointerRNA %s(PointerRNA *ptr)\n", func);
fprintf(f, "{\n");
if (manualfunc) {
@@ -584,7 +586,8 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr
fprintf(f, "}\n\n");
break;
}
- case PROP_COLLECTION: {
+ case PROP_COLLECTION:
+ {
CollectionPropertyRNA *cprop = (CollectionPropertyRNA *)prop;
fprintf(f, "static PointerRNA %s(CollectionPropertyIterator *iter)\n", func);
@@ -785,7 +788,8 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr
func = rna_alloc_function_name(srna->identifier, rna_safe_id(prop->identifier), "set");
switch (prop->type) {
- case PROP_STRING: {
+ case PROP_STRING:
+ {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
fprintf(f, "void %s(PointerRNA *ptr, const char *value)\n", func);
fprintf(f, "{\n");
@@ -817,7 +821,8 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr
fprintf(f, "}\n\n");
break;
}
- case PROP_POINTER: {
+ case PROP_POINTER:
+ {
fprintf(f, "void %s(PointerRNA *ptr, PointerRNA value)\n", func);
fprintf(f, "{\n");
if (manualfunc) {
@@ -1086,7 +1091,7 @@ static char *rna_def_property_lookup_int_func(FILE *f, StructRNA *srna, Property
const char *manualfunc, const char *nextfunc)
{
/* note on indices, this is for external functions and ignores skipped values.
- * so the the index can only be checked against the length when there is no 'skip' funcion. */
+ * so the the index can only be checked against the length when there is no 'skip' function. */
char *func;
if (prop->flag & PROP_IDPROPERTY && manualfunc == NULL)
@@ -1275,7 +1280,8 @@ static void rna_def_property_funcs(FILE *f, StructRNA *srna, PropertyDefRNA *dp)
prop = dp->prop;
switch (prop->type) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
BoolPropertyRNA *bprop = (BoolPropertyRNA *)prop;
if (!prop->arraydimension) {
@@ -1291,7 +1297,8 @@ static void rna_def_property_funcs(FILE *f, StructRNA *srna, PropertyDefRNA *dp)
}
break;
}
- case PROP_INT: {
+ case PROP_INT:
+ {
IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
if (!prop->arraydimension) {
@@ -1310,7 +1317,8 @@ static void rna_def_property_funcs(FILE *f, StructRNA *srna, PropertyDefRNA *dp)
}
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
FloatPropertyRNA *fprop = (FloatPropertyRNA *)prop;
if (!prop->arraydimension) {
@@ -1329,14 +1337,16 @@ static void rna_def_property_funcs(FILE *f, StructRNA *srna, PropertyDefRNA *dp)
}
break;
}
- case PROP_ENUM: {
+ case PROP_ENUM:
+ {
EnumPropertyRNA *eprop = (EnumPropertyRNA *)prop;
eprop->get = (void *)rna_def_property_get_func(f, srna, prop, dp, (const char *)eprop->get);
eprop->set = (void *)rna_def_property_set_func(f, srna, prop, dp, (const char *)eprop->set);
break;
}
- case PROP_STRING: {
+ case PROP_STRING:
+ {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
sprop->get = (void *)rna_def_property_get_func(f, srna, prop, dp, (const char *)sprop->get);
@@ -1344,7 +1354,8 @@ static void rna_def_property_funcs(FILE *f, StructRNA *srna, PropertyDefRNA *dp)
sprop->set = (void *)rna_def_property_set_func(f, srna, prop, dp, (const char *)sprop->set);
break;
}
- case PROP_POINTER: {
+ case PROP_POINTER:
+ {
PointerPropertyRNA *pprop = (PointerPropertyRNA *)prop;
pprop->get = (void *)rna_def_property_get_func(f, srna, prop, dp, (const char *)pprop->get);
@@ -1356,7 +1367,8 @@ static void rna_def_property_funcs(FILE *f, StructRNA *srna, PropertyDefRNA *dp)
}
break;
}
- case PROP_COLLECTION: {
+ case PROP_COLLECTION:
+ {
CollectionPropertyRNA *cprop = (CollectionPropertyRNA *)prop;
const char *nextfunc = (const char *)cprop->next;
@@ -1421,7 +1433,8 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR
switch (prop->type) {
case PROP_BOOLEAN:
- case PROP_INT: {
+ case PROP_INT:
+ {
if (!prop->arraydimension) {
fprintf(f, "int %sget(PointerRNA *ptr);\n", func);
/*fprintf(f, "void %sset(PointerRNA *ptr, int value);\n", func); */
@@ -1436,7 +1449,8 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR
}
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
if (!prop->arraydimension) {
fprintf(f, "float %sget(PointerRNA *ptr);\n", func);
/*fprintf(f, "void %sset(PointerRNA *ptr, float value);\n", func); */
@@ -1451,7 +1465,8 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR
}
break;
}
- case PROP_ENUM: {
+ case PROP_ENUM:
+ {
EnumPropertyRNA *eprop = (EnumPropertyRNA *)prop;
int i;
@@ -1471,7 +1486,8 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR
break;
}
- case PROP_STRING: {
+ case PROP_STRING:
+ {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
if (sprop->maxlength) {
@@ -1484,12 +1500,14 @@ static void rna_def_property_funcs_header(FILE *f, StructRNA *srna, PropertyDefR
break;
}
- case PROP_POINTER: {
+ case PROP_POINTER:
+ {
fprintf(f, "PointerRNA %sget(PointerRNA *ptr);\n", func);
/*fprintf(f, "void %sset(PointerRNA *ptr, PointerRNA value);\n", func); */
break;
}
- case PROP_COLLECTION: {
+ case PROP_COLLECTION:
+ {
fprintf(f, "void %sbegin(CollectionPropertyIterator *iter, PointerRNA *ptr);\n", func);
fprintf(f, "void %snext(CollectionPropertyIterator *iter);\n", func);
fprintf(f, "void %send(CollectionPropertyIterator *iter);\n", func);
@@ -1520,28 +1538,32 @@ static void rna_def_property_funcs_header_cpp(FILE *f, StructRNA *srna, Property
fprintf(f, "\t/* */\n");
switch (prop->type) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
if (!prop->arraydimension)
fprintf(f, "\tinline bool %s(void);", rna_safe_id(prop->identifier));
else if (prop->totarraylength)
fprintf(f, "\tinline Array<int, %u> %s(void);", prop->totarraylength, rna_safe_id(prop->identifier));
break;
}
- case PROP_INT: {
+ case PROP_INT:
+ {
if (!prop->arraydimension)
fprintf(f, "\tinline int %s(void);", rna_safe_id(prop->identifier));
else if (prop->totarraylength)
fprintf(f, "\tinline Array<int, %u> %s(void);", prop->totarraylength, rna_safe_id(prop->identifier));
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
if (!prop->arraydimension)
fprintf(f, "\tinline float %s(void);", rna_safe_id(prop->identifier));
else if (prop->totarraylength)
fprintf(f, "\tinline Array<float, %u> %s(void);", prop->totarraylength, rna_safe_id(prop->identifier));
break;
}
- case PROP_ENUM: {
+ case PROP_ENUM:
+ {
EnumPropertyRNA *eprop = (EnumPropertyRNA *)prop;
int i;
@@ -1559,11 +1581,13 @@ static void rna_def_property_funcs_header_cpp(FILE *f, StructRNA *srna, Property
fprintf(f, "\tinline %s_enum %s(void);", rna_safe_id(prop->identifier), rna_safe_id(prop->identifier));
break;
}
- case PROP_STRING: {
+ case PROP_STRING:
+ {
fprintf(f, "\tinline std::string %s(void);", rna_safe_id(prop->identifier));
break;
}
- case PROP_POINTER: {
+ case PROP_POINTER:
+ {
PointerPropertyRNA *pprop = (PointerPropertyRNA *)dp->prop;
if (pprop->type)
@@ -1572,7 +1596,8 @@ static void rna_def_property_funcs_header_cpp(FILE *f, StructRNA *srna, Property
fprintf(f, "\tinline %s %s(void);", "UnknownType", rna_safe_id(prop->identifier));
break;
}
- case PROP_COLLECTION: {
+ case PROP_COLLECTION:
+ {
CollectionPropertyRNA *cprop = (CollectionPropertyRNA *)dp->prop;
if (cprop->item_type)
@@ -1598,7 +1623,8 @@ static void rna_def_property_funcs_impl_cpp(FILE *f, StructRNA *srna, PropertyDe
return;
switch (prop->type) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
if (!prop->arraydimension)
fprintf(f, "\tBOOLEAN_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier));
else if (prop->totarraylength)
@@ -1606,7 +1632,8 @@ static void rna_def_property_funcs_impl_cpp(FILE *f, StructRNA *srna, PropertyDe
rna_safe_id(prop->identifier));
break;
}
- case PROP_INT: {
+ case PROP_INT:
+ {
if (!prop->arraydimension)
fprintf(f, "\tINT_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier));
else if (prop->totarraylength)
@@ -1614,7 +1641,8 @@ static void rna_def_property_funcs_impl_cpp(FILE *f, StructRNA *srna, PropertyDe
rna_safe_id(prop->identifier));
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
if (!prop->arraydimension)
fprintf(f, "\tFLOAT_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier));
else if (prop->totarraylength)
@@ -1622,17 +1650,20 @@ static void rna_def_property_funcs_impl_cpp(FILE *f, StructRNA *srna, PropertyDe
rna_safe_id(prop->identifier));
break;
}
- case PROP_ENUM: {
+ case PROP_ENUM:
+ {
fprintf(f, "\tENUM_PROPERTY(%s_enum, %s, %s)", rna_safe_id(prop->identifier), srna->identifier,
rna_safe_id(prop->identifier));
break;
}
- case PROP_STRING: {
+ case PROP_STRING:
+ {
fprintf(f, "\tSTRING_PROPERTY(%s, %s)", srna->identifier, rna_safe_id(prop->identifier));
break;
}
- case PROP_POINTER: {
+ case PROP_POINTER:
+ {
PointerPropertyRNA *pprop = (PointerPropertyRNA *)dp->prop;
if (pprop->type)
@@ -1643,7 +1674,8 @@ static void rna_def_property_funcs_impl_cpp(FILE *f, StructRNA *srna, PropertyDe
rna_safe_id(prop->identifier));
break;
}
- case PROP_COLLECTION: {
+ case PROP_COLLECTION:
+ {
#if 0
CollectionPropertyRNA *cprop = (CollectionPropertyRNA *)dp->prop;
@@ -2218,7 +2250,8 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr
}
switch (prop->type) {
- case PROP_ENUM: {
+ case PROP_ENUM:
+ {
EnumPropertyRNA *eprop = (EnumPropertyRNA *)prop;
int i, defaultfound = 0, totflag = 0;
@@ -2270,7 +2303,8 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr
}
break;
}
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
BoolPropertyRNA *bprop = (BoolPropertyRNA *)prop;
unsigned int i;
@@ -2291,7 +2325,8 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr
}
break;
}
- case PROP_INT: {
+ case PROP_INT:
+ {
IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
unsigned int i;
@@ -2312,7 +2347,8 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr
}
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
FloatPropertyRNA *fprop = (FloatPropertyRNA *)prop;
unsigned int i;
@@ -2380,7 +2416,8 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr
fprintf(f, "},\n");
switch (prop->type) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
BoolPropertyRNA *bprop = (BoolPropertyRNA *)prop;
fprintf(f, "\t%s, %s, %s, %s, %d, ",
rna_function_string(bprop->get),
@@ -2393,7 +2430,8 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr
else fprintf(f, "NULL\n");
break;
}
- case PROP_INT: {
+ case PROP_INT:
+ {
IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
fprintf(f, "\t%s, %s, %s, %s, %s,\n\t",
rna_function_string(iprop->get),
@@ -2412,7 +2450,8 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr
else fprintf(f, "NULL\n");
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
FloatPropertyRNA *fprop = (FloatPropertyRNA *)prop;
fprintf(f, "\t%s, %s, %s, %s, %s, ",
rna_function_string(fprop->get),
@@ -2432,7 +2471,8 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr
else fprintf(f, "NULL\n");
break;
}
- case PROP_STRING: {
+ case PROP_STRING:
+ {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
fprintf(f, "\t%s, %s, %s, %d, ",
rna_function_string(sprop->get),
@@ -2442,7 +2482,8 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr
rna_print_c_string(f, sprop->defaultvalue); fprintf(f, "\n");
break;
}
- case PROP_ENUM: {
+ case PROP_ENUM:
+ {
EnumPropertyRNA *eprop = (EnumPropertyRNA *)prop;
fprintf(f, "\t%s, %s, %s, NULL, ",
rna_function_string(eprop->get),
@@ -2455,7 +2496,8 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr
fprintf(f, "%d, %d\n", eprop->totitem, eprop->defaultvalue);
break;
}
- case PROP_POINTER: {
+ case PROP_POINTER:
+ {
PointerPropertyRNA *pprop = (PointerPropertyRNA *)prop;
fprintf(f, "\t%s, %s, %s, %s,", rna_function_string(pprop->get),
rna_function_string(pprop->set),
@@ -2465,7 +2507,8 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr
else fprintf(f, "NULL\n");
break;
}
- case PROP_COLLECTION: {
+ case PROP_COLLECTION:
+ {
CollectionPropertyRNA *cprop = (CollectionPropertyRNA *)prop;
fprintf(f, "\t%s, %s, %s, %s, %s, %s, %s, %s, ",
rna_function_string(cprop->begin),
@@ -2865,7 +2908,7 @@ static const char *cpp_classes = ""
"\n"
"class Pointer {\n"
"public:\n"
-" Pointer(const PointerRNA& p) : ptr(p) { }\n"
+" Pointer(const PointerRNA &p) : ptr(p) { }\n"
" operator const PointerRNA&() { return ptr; }\n"
" bool is_a(StructRNA *type) { return RNA_struct_is_a(ptr.type, type)? true: false; }\n"
" operator void*() { return ptr.data; }\n"
@@ -2881,8 +2924,8 @@ static const char *cpp_classes = ""
" T data[Tsize];\n"
"\n"
" Array() {}\n"
-" Array(const Array<T, Tsize>& other) { memcpy(data, other.data, sizeof(T)*Tsize); }\n"
-" const Array<T, Tsize>& operator=(const Array<T, Tsize>& other) { memcpy(data, other.data, sizeof(T)*Tsize); "
+" Array(const Array<T, Tsize>& other) { memcpy(data, other.data, sizeof(T) * Tsize); }\n"
+" const Array<T, Tsize>& operator=(const Array<T, Tsize>& other) { memcpy(data, other.data, sizeof(T) * Tsize); "
"return *this; }\n"
"\n"
" operator T*() { return data; }\n"
@@ -2909,7 +2952,7 @@ static const char *cpp_classes = ""
" bool operator!=(const CollectionIterator<T, Tbegin, Tnext, Tend>& other) "
"{ return iter.valid != other.iter.valid; }\n"
"\n"
-" void begin(const Pointer& ptr)\n"
+" void begin(const Pointer &ptr)\n"
" { if (init) Tend(&iter); Tbegin(&iter, (PointerRNA*)&ptr.ptr); t = T(iter.ptr); init = true; }\n"
"\n"
"private:\n"
@@ -2924,7 +2967,7 @@ static const char *cpp_classes = ""
"template<typename Tp, typename T, TBeginFunc Tbegin, TNextFunc Tnext, TEndFunc Tend>\n"
"class Collection {\n"
"public:\n"
-" Collection(const PointerRNA& p) : ptr(p) {}\n"
+" Collection(const PointerRNA &p) : ptr(p) {}\n"
"\n"
" void begin(CollectionIterator<T, Tbegin, Tnext, Tend>& iter)\n"
" { iter.begin(ptr); }\n"
@@ -2968,7 +3011,7 @@ static void rna_generate_header_cpp(BlenderRNA *UNUSED(brna), FILE *f)
fprintf(f, "class %s : public %s {\n", srna->identifier, (srna->base) ? srna->base->identifier : "Pointer");
fprintf(f, "public:\n");
- fprintf(f, "\t%s(const PointerRNA& ptr_arg) :\n\t\t%s(ptr_arg)", srna->identifier,
+ fprintf(f, "\t%s(const PointerRNA &ptr_arg) :\n\t\t%s(ptr_arg)", srna->identifier,
(srna->base) ? srna->base->identifier : "Pointer");
for (dp = ds->cont.properties.first; dp; dp = dp->next)
if (!(dp->prop->flag & (PROP_IDPROPERTY | PROP_BUILTIN)))
diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c
index 7f851c939d2..3ff63380491 100644
--- a/source/blender/makesrna/intern/rna_ID.c
+++ b/source/blender/makesrna/intern/rna_ID.c
@@ -76,6 +76,7 @@ EnumPropertyItem id_type_items[] = {
#ifdef RNA_RUNTIME
+#include "BKE_font.h"
#include "BKE_idprop.h"
#include "BKE_library.h"
#include "BKE_animsys.h"
@@ -109,12 +110,12 @@ static int rna_ID_name_editable(PointerRNA *ptr)
ID *id = (ID *)ptr->data;
if (GS(id->name) == ID_VF) {
- VFont *vf = (VFont *)id;
- if (strcmp(vf->name, FO_BUILTIN_NAME) == 0)
- return 0;
+ VFont *vfont = (VFont *)id;
+ if (BKE_vfont_is_builtin(vfont))
+ return FALSE;
}
- return 1;
+ return TRUE;
}
short RNA_type_to_ID_code(StructRNA *type)
@@ -255,7 +256,7 @@ StructRNA *rna_PropertyGroup_refine(PointerRNA *ptr)
return ptr->type;
}
-ID *rna_ID_copy(ID *id)
+static ID *rna_ID_copy(ID *id)
{
ID *newid;
@@ -308,7 +309,7 @@ static void rna_ID_update_tag(ID *id, ReportList *reports, int flag)
DAG_id_tag_update(id, flag);
}
-void rna_ID_user_clear(ID *id)
+static void rna_ID_user_clear(ID *id)
{
id->us = 0; /* don't save */
id->flag &= ~LIB_FAKEUSER;
@@ -340,7 +341,7 @@ int rna_IDMaterials_assign_int(PointerRNA *ptr, int key, const PointerRNA *assig
}
}
-void rna_IDMaterials_append_id(ID *id, Material *ma)
+static void rna_IDMaterials_append_id(ID *id, Material *ma)
{
material_append_id(id, ma);
@@ -348,7 +349,7 @@ void rna_IDMaterials_append_id(ID *id, Material *ma)
WM_main_add_notifier(NC_OBJECT | ND_OB_SHADING, id);
}
-Material *rna_IDMaterials_pop_id(ID *id, int index_i, int remove_material_slot)
+static Material *rna_IDMaterials_pop_id(ID *id, int index_i, int remove_material_slot)
{
Material *ma = material_pop_id(id, index_i, remove_material_slot);
@@ -359,7 +360,7 @@ Material *rna_IDMaterials_pop_id(ID *id, int index_i, int remove_material_slot)
return ma;
}
-void rna_Library_filepath_set(PointerRNA *ptr, const char *value)
+static void rna_Library_filepath_set(PointerRNA *ptr, const char *value)
{
Library *lib = (Library *)ptr->data;
BKE_library_filepath_set(lib, value);
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index c8ca0be8ab7..c88944b4584 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -233,7 +233,7 @@ static void rna_idproperty_touch(IDProperty *idprop)
}
/* return a UI local ID prop definition for this prop */
-IDProperty *rna_idproperty_ui(PropertyRNA *prop)
+static IDProperty *rna_idproperty_ui(PropertyRNA *prop)
{
IDProperty *idprop;
@@ -527,6 +527,11 @@ const char *RNA_struct_ui_description(StructRNA *type)
return TIP_(type->description);
}
+const char *RNA_struct_translation_context(StructRNA *type)
+{
+ return type->translation_context ? type->translation_context : BLF_I18NCONTEXT_DEFAULT;
+}
+
PropertyRNA *RNA_struct_name_property(StructRNA *type)
{
return type->nameproperty;
@@ -613,7 +618,7 @@ PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
}
/* Find the property which uses the given nested struct */
-PropertyRNA *RNA_struct_find_nested(PointerRNA *ptr, StructRNA *srna)
+static PropertyRNA *RNA_struct_find_nested(PointerRNA *ptr, StructRNA *srna)
{
PropertyRNA *prop = NULL;
@@ -1026,7 +1031,7 @@ void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *soft
IDProperty *item;
item = IDP_GetPropertyTypeFromGroup(idp_ui, "soft_min", IDP_DOUBLE);
- *softmin = item ? (float)IDP_Double(item) : FLT_MIN;
+ *softmin = item ? (float)IDP_Double(item) : -FLT_MAX;
item = IDP_GetPropertyTypeFromGroup(idp_ui, "soft_max", IDP_DOUBLE);
*softmax = item ? (float)IDP_Double(item) : FLT_MAX;
@@ -1363,6 +1368,12 @@ const char *RNA_property_ui_description(PropertyRNA *prop)
return rna_ensure_property_description(prop);
}
+const char *RNA_property_translation_context(PropertyRNA *_prop)
+{
+ PropertyRNA *prop = rna_ensure_property(_prop);
+ return prop->translation_context ? prop->translation_context : BLF_I18NCONTEXT_DEFAULT;
+}
+
int RNA_property_ui_icon(PropertyRNA *prop)
{
return rna_ensure_property(prop)->icon;
@@ -1648,8 +1659,9 @@ void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, int value)
IDP_Int(idprop) = value;
rna_idproperty_touch(idprop);
}
- else if (bprop->set)
+ else if (bprop->set) {
bprop->set(ptr, value);
+ }
else if (prop->flag & PROP_EDITABLE) {
IDPropertyTemplate val = {0};
IDProperty *group;
@@ -2579,7 +2591,7 @@ void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr
PointerRNA RNA_property_pointer_get_default(PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop))
{
- /*PointerPropertyRNA *pprop = (PointerPropertyRNA*)prop; */
+ /*PointerPropertyRNA *pprop = (PointerPropertyRNA *)prop; */
/* BLI_assert(RNA_property_type(prop) == PROP_POINTER); */
@@ -2718,7 +2730,7 @@ int RNA_property_collection_length(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA *r_ptr)
{
IDProperty *idprop;
-/* CollectionPropertyRNA *cprop = (CollectionPropertyRNA*)prop; */
+/* CollectionPropertyRNA *cprop = (CollectionPropertyRNA *)prop; */
BLI_assert(RNA_property_type(prop) == PROP_COLLECTION);
@@ -2777,7 +2789,7 @@ void RNA_property_collection_add(PointerRNA *ptr, PropertyRNA *prop, PointerRNA
int RNA_property_collection_remove(PointerRNA *ptr, PropertyRNA *prop, int key)
{
IDProperty *idprop;
-/* CollectionPropertyRNA *cprop = (CollectionPropertyRNA*)prop; */
+/* CollectionPropertyRNA *cprop = (CollectionPropertyRNA *)prop; */
BLI_assert(RNA_property_type(prop) == PROP_COLLECTION);
@@ -3024,11 +3036,11 @@ int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, Proper
#define RAW_GET(dtype, var, raw, a) \
{ \
switch (raw.type) { \
- case PROP_RAW_CHAR: var = (dtype)((char*)raw.array)[a]; break; \
- case PROP_RAW_SHORT: var = (dtype)((short*)raw.array)[a]; break; \
- case PROP_RAW_INT: var = (dtype)((int*)raw.array)[a]; break; \
- case PROP_RAW_FLOAT: var = (dtype)((float*)raw.array)[a]; break; \
- case PROP_RAW_DOUBLE: var = (dtype)((double*)raw.array)[a]; break; \
+ case PROP_RAW_CHAR: var = (dtype)((char *)raw.array)[a]; break; \
+ case PROP_RAW_SHORT: var = (dtype)((short *)raw.array)[a]; break; \
+ case PROP_RAW_INT: var = (dtype)((int *)raw.array)[a]; break; \
+ case PROP_RAW_FLOAT: var = (dtype)((float *)raw.array)[a]; break; \
+ case PROP_RAW_DOUBLE: var = (dtype)((double *)raw.array)[a]; break; \
default: var = (dtype)0; \
} \
} (void)0
@@ -3036,11 +3048,11 @@ int RNA_property_collection_raw_array(PointerRNA *ptr, PropertyRNA *prop, Proper
#define RAW_SET(dtype, raw, a, var) \
{ \
switch (raw.type) { \
- case PROP_RAW_CHAR: ((char*)raw.array)[a] = (char)var; break; \
- case PROP_RAW_SHORT: ((short*)raw.array)[a] = (short)var; break; \
- case PROP_RAW_INT: ((int*)raw.array)[a] = (int)var; break; \
- case PROP_RAW_FLOAT: ((float*)raw.array)[a] = (float)var; break; \
- case PROP_RAW_DOUBLE: ((double*)raw.array)[a] = (double)var; break; \
+ case PROP_RAW_CHAR: ((char *)raw.array)[a] = (char)var; break; \
+ case PROP_RAW_SHORT: ((short *)raw.array)[a] = (short)var; break; \
+ case PROP_RAW_INT: ((int *)raw.array)[a] = (int)var; break; \
+ case PROP_RAW_FLOAT: ((float *)raw.array)[a] = (float)var; break; \
+ case PROP_RAW_DOUBLE: ((double *)raw.array)[a] = (double)var; break; \
default: break; \
} \
} (void)0
@@ -3181,19 +3193,22 @@ static int rna_raw_access(ReportList *reports, PointerRNA *ptr, PropertyRNA *pro
/* handle conversions */
if (set) {
switch (itemtype) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
int b;
RAW_GET(int, b, in, a);
RNA_property_boolean_set(&itemptr, iprop, b);
break;
}
- case PROP_INT: {
+ case PROP_INT:
+ {
int i;
RAW_GET(int, i, in, a);
RNA_property_int_set(&itemptr, iprop, i);
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
float f;
RAW_GET(float, f, in, a);
RNA_property_float_set(&itemptr, iprop, f);
@@ -3205,17 +3220,20 @@ static int rna_raw_access(ReportList *reports, PointerRNA *ptr, PropertyRNA *pro
}
else {
switch (itemtype) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
int b = RNA_property_boolean_get(&itemptr, iprop);
RAW_SET(int, in, a, b);
break;
}
- case PROP_INT: {
+ case PROP_INT:
+ {
int i = RNA_property_int_get(&itemptr, iprop);
RAW_SET(int, in, a, i);
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
float f = RNA_property_float_get(&itemptr, iprop);
RAW_SET(float, in, a, f);
break;
@@ -3240,19 +3258,22 @@ static int rna_raw_access(ReportList *reports, PointerRNA *ptr, PropertyRNA *pro
/* handle conversions */
if (set) {
switch (itemtype) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
for (j = 0; j < itemlen; j++, a++)
RAW_GET(int, ((int *)tmparray)[j], in, a);
RNA_property_boolean_set_array(&itemptr, iprop, tmparray);
break;
}
- case PROP_INT: {
+ case PROP_INT:
+ {
for (j = 0; j < itemlen; j++, a++)
RAW_GET(int, ((int *)tmparray)[j], in, a);
RNA_property_int_set_array(&itemptr, iprop, tmparray);
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
for (j = 0; j < itemlen; j++, a++)
RAW_GET(float, ((float *)tmparray)[j], in, a);
RNA_property_float_set_array(&itemptr, iprop, tmparray);
@@ -3264,19 +3285,22 @@ static int rna_raw_access(ReportList *reports, PointerRNA *ptr, PropertyRNA *pro
}
else {
switch (itemtype) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
RNA_property_boolean_get_array(&itemptr, iprop, tmparray);
for (j = 0; j < itemlen; j++, a++)
RAW_SET(int, in, a, ((int *)tmparray)[j]);
break;
}
- case PROP_INT: {
+ case PROP_INT:
+ {
RNA_property_int_get_array(&itemptr, iprop, tmparray);
for (j = 0; j < itemlen; j++, a++)
RAW_SET(int, in, a, ((int *)tmparray)[j]);
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
RNA_property_float_get_array(&itemptr, iprop, tmparray);
for (j = 0; j < itemlen; j++, a++)
RAW_SET(float, in, a, ((float *)tmparray)[j]);
@@ -3290,17 +3314,20 @@ static int rna_raw_access(ReportList *reports, PointerRNA *ptr, PropertyRNA *pro
else {
if (set) {
switch (itemtype) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
RNA_property_boolean_set_array(&itemptr, iprop, &((int *)in.array)[a]);
a += itemlen;
break;
}
- case PROP_INT: {
+ case PROP_INT:
+ {
RNA_property_int_set_array(&itemptr, iprop, &((int *)in.array)[a]);
a += itemlen;
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
RNA_property_float_set_array(&itemptr, iprop, &((float *)in.array)[a]);
a += itemlen;
break;
@@ -3311,17 +3338,20 @@ static int rna_raw_access(ReportList *reports, PointerRNA *ptr, PropertyRNA *pro
}
else {
switch (itemtype) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
RNA_property_boolean_get_array(&itemptr, iprop, &((int *)in.array)[a]);
a += itemlen;
break;
}
- case PROP_INT: {
+ case PROP_INT:
+ {
RNA_property_int_get_array(&itemptr, iprop, &((int *)in.array)[a]);
a += itemlen;
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
RNA_property_float_get_array(&itemptr, iprop, &((float *)in.array)[a]);
a += itemlen;
break;
@@ -4913,7 +4943,8 @@ ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA *UNUSE
case PROP_ENUM:
memcpy(data, &((EnumPropertyRNA *)parm)->defaultvalue, size);
break;
- case PROP_STRING: {
+ case PROP_STRING:
+ {
const char *defvalue = ((StringPropertyRNA *)parm)->defaultvalue;
if (defvalue && defvalue[0]) {
/* causes bug [#29988], possibly this is only correct for thick wrapped
diff --git a/source/blender/makesrna/intern/rna_action_api.c b/source/blender/makesrna/intern/rna_action_api.c
index 7e95aaab31b..fe429d8698b 100644
--- a/source/blender/makesrna/intern/rna_action_api.c
+++ b/source/blender/makesrna/intern/rna_action_api.c
@@ -34,10 +34,14 @@
#include <string.h>
#include <time.h>
+#include "BLI_utildefines.h"
+
#include "RNA_define.h"
#include "DNA_action_types.h"
+#include "rna_internal.h" /* own include */
+
#ifdef RNA_RUNTIME
#include "BKE_action.h"
@@ -47,7 +51,7 @@
#else
-void RNA_api_action(StructRNA *srna)
+void RNA_api_action(StructRNA *UNUSED(srna))
{
}
diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c
index bb714043002..b1fdfccd0be 100644
--- a/source/blender/makesrna/intern/rna_actuator.c
+++ b/source/blender/makesrna/intern/rna_actuator.c
@@ -29,6 +29,7 @@
#include "RNA_define.h"
#include "RNA_access.h"
+#include "RNA_enum_types.h"
#include "rna_internal.h"
#include "DNA_constraint_types.h"
@@ -40,6 +41,8 @@
#include "BLI_utildefines.h"
+#include "BLF_translation.h"
+
/* Always keep in alphabetical order */
EnumPropertyItem actuator_type_items[] = {
{ACT_ACTION, "ACTION", 0, "Action", ""},
@@ -110,7 +113,7 @@ static StructRNA *rna_Actuator_refine(struct PointerRNA *ptr)
}
}
-void rna_Actuator_name_set(PointerRNA *ptr, const char *value)
+static void rna_Actuator_name_set(PointerRNA *ptr, const char *value)
{
bActuator *act = (bActuator *)ptr->data;
@@ -530,7 +533,7 @@ static void rna_Actuator_action_action_set(PointerRNA *ptr, PointerRNA value)
#else
-void rna_def_actuator(BlenderRNA *brna)
+static void rna_def_actuator(BlenderRNA *brna)
{
StructRNA *srna;
PropertyRNA *prop;
@@ -970,11 +973,13 @@ static void rna_def_sound_actuator(BlenderRNA *brna)
RNA_def_property_ui_range(prop, 0.0, 1.0, 1, 2);
RNA_def_property_range(prop, 0.0, 2.0);
RNA_def_property_ui_text(prop, "Volume", "Initial volume of the sound");
+ RNA_def_property_translation_context(prop, BLF_I18NCONTEXT_AUDIO);
RNA_def_property_update(prop, NC_LOGIC, NULL);
prop = RNA_def_property(srna, "pitch", PROP_FLOAT, PROP_NONE);
RNA_def_property_ui_range(prop, -12.0, 12.0, 1, 2);
RNA_def_property_ui_text(prop, "Pitch", "Pitch of the sound");
+ RNA_def_property_translation_context(prop, BLF_I18NCONTEXT_AUDIO);
RNA_def_property_update(prop, NC_LOGIC, NULL);
/* floats - 3D Parameters */
diff --git a/source/blender/makesrna/intern/rna_actuator_api.c b/source/blender/makesrna/intern/rna_actuator_api.c
index 68b2c4f8b52..4a34961964d 100644
--- a/source/blender/makesrna/intern/rna_actuator_api.c
+++ b/source/blender/makesrna/intern/rna_actuator_api.c
@@ -35,6 +35,8 @@
#include "WM_types.h"
#include "RNA_define.h"
+#include "rna_internal.h" /* own include */
+
#ifdef RNA_RUNTIME
#include "BKE_sca.h"
diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c
index 69f785c32de..d50cb663b97 100644
--- a/source/blender/makesrna/intern/rna_animation.c
+++ b/source/blender/makesrna/intern/rna_animation.c
@@ -829,7 +829,7 @@ void rna_def_animdata_common(StructRNA *srna)
RNA_def_property_ui_text(prop, "Animation Data", "Animation data for this datablock");
}
-void rna_def_animdata(BlenderRNA *brna)
+static void rna_def_animdata(BlenderRNA *brna)
{
StructRNA *srna;
PropertyRNA *prop;
diff --git a/source/blender/makesrna/intern/rna_animation_api.c b/source/blender/makesrna/intern/rna_animation_api.c
index 32472c8d415..39128b48cd8 100644
--- a/source/blender/makesrna/intern/rna_animation_api.c
+++ b/source/blender/makesrna/intern/rna_animation_api.c
@@ -39,6 +39,7 @@
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
+#include "rna_internal.h" /* own include */
#ifdef RNA_RUNTIME
diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c
index b86077ff1bd..ceadaa036f1 100644
--- a/source/blender/makesrna/intern/rna_armature.c
+++ b/source/blender/makesrna/intern/rna_armature.c
@@ -100,7 +100,7 @@ static void rna_Armature_act_edit_bone_set(PointerRNA *ptr, PointerRNA value)
}
}
-EditBone *rna_Armature_edit_bone_new(bArmature *arm, ReportList *reports, const char *name)
+static EditBone *rna_Armature_edit_bone_new(bArmature *arm, ReportList *reports, const char *name)
{
if (arm->edbo == NULL) {
BKE_reportf(reports, RPT_ERROR, "Armature '%s' not in editmode, cant add an editbone", arm->id.name + 2);
@@ -109,7 +109,7 @@ EditBone *rna_Armature_edit_bone_new(bArmature *arm, ReportList *reports, const
return ED_armature_edit_bone_add(arm, name);
}
-void rna_Armature_edit_bone_remove(bArmature *arm, ReportList *reports, EditBone *ebone)
+static void rna_Armature_edit_bone_remove(bArmature *arm, ReportList *reports, EditBone *ebone)
{
if (arm->edbo == NULL) {
BKE_reportf(reports, RPT_ERROR, "Armature '%s' not in editmode, cant remove an editbone", arm->id.name + 2);
@@ -146,6 +146,18 @@ static void rna_Armature_redraw_data(Main *UNUSED(bmain), Scene *UNUSED(scene),
WM_main_add_notifier(NC_GEOM | ND_DATA, id);
}
+/* called whenever a bone is renamed */
+static void rna_Bone_update_renamed(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
+{
+ ID *id = ptr->id.data;
+
+ /* redraw view */
+ WM_main_add_notifier(NC_GEOM | ND_DATA, id);
+
+ /* update animation channels */
+ WM_main_add_notifier(NC_ANIMATION | ND_ANIMCHAN, id);
+}
+
static void rna_Bone_select_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
{
ID *id = ptr->id.data;
@@ -259,7 +271,7 @@ static void rna_Armature_layer_set(PointerRNA *ptr, const int *values)
}
}
-/* XXX depreceated.... old armature only animviz */
+/* XXX deprecated.... old armature only animviz */
static void rna_Armature_ghost_start_frame_set(PointerRNA *ptr, int value)
{
bArmature *data = (bArmature *)ptr->data;
@@ -281,7 +293,7 @@ static void rna_Armature_ghost_end_frame_set(PointerRNA *ptr, int value)
data->ghostsf = MAX2(data->ghostef, 1);
}
}
-/* XXX depreceated... old armature only animviz */
+/* XXX deprecated... old armature only animviz */
static void rna_EditBone_name_set(PointerRNA *ptr, const char *value)
{
@@ -470,7 +482,7 @@ static void rna_def_bone_common(StructRNA *srna, int editbone)
RNA_def_struct_name_property(srna, prop);
if (editbone) RNA_def_property_string_funcs(prop, NULL, NULL, "rna_EditBone_name_set");
else RNA_def_property_string_funcs(prop, NULL, NULL, "rna_Bone_name_set");
- RNA_def_property_update(prop, 0, "rna_Armature_redraw_data");
+ RNA_def_property_update(prop, 0, "rna_Bone_update_renamed");
/* flags */
prop = RNA_def_property(srna, "layers", PROP_BOOLEAN, PROP_LAYER_MEMBER);
@@ -501,7 +513,7 @@ static void rna_def_bone_common(StructRNA *srna, int editbone)
prop = RNA_def_property(srna, "use_deform", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", BONE_NO_DEFORM);
- RNA_def_property_ui_text(prop, "Deform", "Bone does not deform any geometry");
+ RNA_def_property_ui_text(prop, "Deform", "Enable Bone to deform geometry");
RNA_def_property_update(prop, 0, "rna_Armature_update_data");
prop = RNA_def_property(srna, "use_inherit_scale", PROP_BOOLEAN, PROP_NONE);
@@ -933,14 +945,14 @@ static void rna_def_armature(BlenderRNA *brna)
RNA_def_property_update(prop, 0, "rna_Armature_redraw_data");
RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
-/* XXX depreceated ....... old animviz for armatures only */
+/* XXX deprecated ....... old animviz for armatures only */
prop = RNA_def_property(srna, "ghost_type", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "ghosttype");
RNA_def_property_enum_items(prop, prop_ghost_type_items);
RNA_def_property_ui_text(prop, "Ghost Type", "Method of Onion-skinning for active Action");
RNA_def_property_update(prop, 0, "rna_Armature_redraw_data");
RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
-/* XXX depreceated ....... old animviz for armatures only */
+/* XXX deprecated ....... old animviz for armatures only */
/* Boolean values */
/* layer */
@@ -1001,16 +1013,16 @@ static void rna_def_armature(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Draw Bone Group Colors", "Draw bone group colors");
RNA_def_property_update(prop, 0, "rna_Armature_redraw_data");
-/* XXX depreceated ....... old animviz for armatures only */
+/* XXX deprecated ....... old animviz for armatures only */
prop = RNA_def_property(srna, "show_only_ghost_selected", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", ARM_GHOST_ONLYSEL);
RNA_def_property_ui_text(prop, "Draw Ghosts on Selected Bones Only", "");
RNA_def_property_update(prop, 0, "rna_Armature_redraw_data");
RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
-/* XXX depreceated ....... old animviz for armatures only */
+/* XXX deprecated ....... old animviz for armatures only */
/* Number fields */
-/* XXX depreceated ....... old animviz for armatures only */
+/* XXX deprecated ....... old animviz for armatures only */
/* ghost/onionskining settings */
prop = RNA_def_property(srna, "ghost_step", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "ghostep");
@@ -1046,7 +1058,7 @@ static void rna_def_armature(BlenderRNA *brna)
"(not for 'Around Current Frame' Onion-skinning method)");
RNA_def_property_update(prop, 0, "rna_Armature_redraw_data");
RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
-/* XXX depreceated ....... old animviz for armatures only */
+/* XXX deprecated ....... old animviz for armatures only */
}
void RNA_def_armature(BlenderRNA *brna)
diff --git a/source/blender/makesrna/intern/rna_armature_api.c b/source/blender/makesrna/intern/rna_armature_api.c
index 29dc23b7bef..96c5350e5b7 100644
--- a/source/blender/makesrna/intern/rna_armature_api.c
+++ b/source/blender/makesrna/intern/rna_armature_api.c
@@ -36,18 +36,20 @@
#include "RNA_define.h"
+#include "rna_internal.h" /* own include */
+
#ifdef RNA_RUNTIME
#include <stddef.h>
#include "BKE_armature.h"
-void rna_EditBone_align_roll(EditBone *ebo, float no[3])
+static void rna_EditBone_align_roll(EditBone *ebo, float no[3])
{
ebo->roll = ED_rollBoneToVector(ebo, no, FALSE);
}
-float rna_Bone_do_envelope(Bone *bone, float *vec)
+static float rna_Bone_do_envelope(Bone *bone, float *vec)
{
float scale = (bone->flag & BONE_MULT_VG_ENV) == BONE_MULT_VG_ENV ? bone->weight : 1.0f;
return distfactor_to_bone(vec, bone->arm_head, bone->arm_tail, bone->rad_head * scale,
diff --git a/source/blender/makesrna/intern/rna_boid.c b/source/blender/makesrna/intern/rna_boid.c
index f803a8b67ea..2a6ea2994fa 100644
--- a/source/blender/makesrna/intern/rna_boid.c
+++ b/source/blender/makesrna/intern/rna_boid.c
@@ -50,7 +50,7 @@ EnumPropertyItem boidrule_type_items[] = {
{eBoidRuleType_Goal, "GOAL", 0, "Goal", "Go to assigned object or loudest assigned signal source"},
{eBoidRuleType_Avoid, "AVOID", 0, "Avoid", "Get away from assigned object or loudest assigned signal source"},
{eBoidRuleType_AvoidCollision, "AVOID_COLLISION", 0, "Avoid Collision",
- "Manoeuvre to avoid collisions with other boids and deflector objects in "
+ "Maneuver to avoid collisions with other boids and deflector objects in "
"near future"},
{eBoidRuleType_Separate, "SEPARATE", 0, "Separate", "Keep from going through other boids"},
{eBoidRuleType_Flock, "FLOCK", 0, "Flock", "Move to center of neighbors and match their velocity"},
diff --git a/source/blender/makesrna/intern/rna_camera_api.c b/source/blender/makesrna/intern/rna_camera_api.c
index 2d19047ef89..bf916806e40 100644
--- a/source/blender/makesrna/intern/rna_camera_api.c
+++ b/source/blender/makesrna/intern/rna_camera_api.c
@@ -29,9 +29,9 @@
#include <stdio.h>
#include <string.h>
-
#include "RNA_define.h"
-#include "BKE_utildefines.h"
+
+#include "rna_internal.h" /* own include */
#ifdef RNA_RUNTIME
@@ -41,8 +41,8 @@
#include "BKE_context.h"
#include "BKE_object.h"
-void rna_camera_view_frame(struct Camera *camera, struct Scene *scene,
- float vec1_r[3], float vec2_r[3], float vec3_r[3], float vec4_r[3])
+static void rna_camera_view_frame(struct Camera *camera, struct Scene *scene,
+ float vec1_r[3], float vec2_r[3], float vec3_r[3], float vec4_r[3])
{
float vec[4][3];
diff --git a/source/blender/makesrna/intern/rna_cloth.c b/source/blender/makesrna/intern/rna_cloth.c
index 3b4f87d8b95..5f1ce4f2773 100644
--- a/source/blender/makesrna/intern/rna_cloth.c
+++ b/source/blender/makesrna/intern/rna_cloth.c
@@ -58,7 +58,7 @@ static void rna_cloth_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerR
static void rna_cloth_pinning_changed(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
{
Object *ob = (Object *)ptr->id.data;
-/* ClothSimSettings *settings = (ClothSimSettings*)ptr->data; */
+/* ClothSimSettings *settings = (ClothSimSettings *)ptr->data; */
ClothModifierData *clmd = (ClothModifierData *)modifiers_findByType(ob, eModifierType_Cloth);
cloth_free_modifier(clmd);
diff --git a/source/blender/makesrna/intern/rna_color.c b/source/blender/makesrna/intern/rna_color.c
index 15fdce09d83..7fb4a1d3839 100644
--- a/source/blender/makesrna/intern/rna_color.c
+++ b/source/blender/makesrna/intern/rna_color.c
@@ -34,25 +34,31 @@
#include "DNA_color_types.h"
#include "DNA_texture_types.h"
+#include "WM_api.h"
+#include "WM_types.h"
+
#ifdef RNA_RUNTIME
#include "RNA_access.h"
+#include "DNA_image_types.h"
#include "DNA_material_types.h"
+#include "DNA_movieclip_types.h"
#include "DNA_node_types.h"
#include "MEM_guardedalloc.h"
#include "BKE_colortools.h"
#include "BKE_depsgraph.h"
+#include "BKE_image.h"
+#include "BKE_movieclip.h"
#include "BKE_node.h"
#include "BKE_texture.h"
-#include "WM_api.h"
-#include "WM_types.h"
-
#include "ED_node.h"
+#include "IMB_colormanagement.h"
+
static int rna_CurveMapping_curves_length(PointerRNA *ptr)
{
CurveMapping *cumap = (CurveMapping *)ptr->data;
@@ -79,7 +85,7 @@ static void rna_CurveMapping_clip_set(PointerRNA *ptr, int value)
if (value) cumap->flag |= CUMA_DO_CLIP;
else cumap->flag &= ~CUMA_DO_CLIP;
- curvemapping_changed(cumap, 0);
+ curvemapping_changed(cumap, FALSE);
}
static void rna_CurveMapping_black_level_set(PointerRNA *ptr, const float *values)
@@ -337,6 +343,166 @@ static void rna_Scopes_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Pointer
s->ok = 0;
}
+static int rna_ColorManagedDisplaySettings_display_device_get(struct PointerRNA *ptr)
+{
+ ColorManagedDisplaySettings *display = (ColorManagedDisplaySettings *) ptr->data;
+
+ return IMB_colormanagement_display_get_named_index(display->display_device);
+}
+
+static void rna_ColorManagedDisplaySettings_display_device_set(struct PointerRNA *ptr, int value)
+{
+ ColorManagedDisplaySettings *display = (ColorManagedDisplaySettings *) ptr->data;
+ const char *name = IMB_colormanagement_display_get_indexed_name(value);
+
+ if (name) {
+ BLI_strncpy(display->display_device, name, sizeof(display->display_device));
+ }
+}
+
+static EnumPropertyItem *rna_ColorManagedDisplaySettings_display_device_itemf(bContext *C, PointerRNA *ptr, PropertyRNA *UNUSED(prop), int *free)
+{
+ EnumPropertyItem *items = NULL;
+ int totitem = 0;
+
+ IMB_colormanagement_display_items_add(&items, &totitem);
+ RNA_enum_item_end(&items, &totitem);
+
+ *free = TRUE;
+
+ return items;
+}
+
+static void rna_ColorManagedDisplaySettings_display_device_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
+{
+ ID *id = ptr->id.data;
+
+ if (!id)
+ return;
+
+ if (GS(id->name) == ID_SCE) {
+ Scene *scene = (Scene *) id;
+
+ IMB_colormanagement_validate_settings(&scene->display_settings, &scene->view_settings);
+
+ WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, NULL);
+ }
+}
+
+static int rna_ColorManagedViewSettings_view_transform_get(PointerRNA *ptr)
+{
+ ColorManagedViewSettings *view = (ColorManagedViewSettings *) ptr->data;
+
+ return IMB_colormanagement_view_get_named_index(view->view_transform);
+}
+
+static void rna_ColorManagedViewSettings_view_transform_set(PointerRNA *ptr, int value)
+{
+ ColorManagedViewSettings *view = (ColorManagedViewSettings *) ptr->data;
+
+ const char *name = IMB_colormanagement_view_get_indexed_name(value);
+
+ if (name) {
+ BLI_strncpy(view->view_transform, name, sizeof(view->view_transform));
+ }
+}
+
+static EnumPropertyItem* rna_ColorManagedViewSettings_view_transform_itemf(bContext *C, PointerRNA *ptr, PropertyRNA *UNUSED(prop), int *free)
+{
+ Scene *scene = CTX_data_scene(C);
+ EnumPropertyItem *items = NULL;
+ ColorManagedDisplaySettings *display_settings = &scene->display_settings;
+ int totitem = 0;
+
+ IMB_colormanagement_view_items_add(&items, &totitem, display_settings->display_device);
+ RNA_enum_item_end(&items, &totitem);
+
+ *free = TRUE;
+ return items;
+}
+
+static void rna_ColorManagedViewSettings_use_curves_set(PointerRNA *ptr, int value)
+{
+ ColorManagedViewSettings *view_settings = (ColorManagedViewSettings *) ptr->data;
+
+ if (value) {
+ view_settings->flag |= COLORMANAGE_VIEW_USE_CURVES;
+
+ if (view_settings->curve_mapping == NULL) {
+ view_settings->curve_mapping = curvemapping_add(4, 0.0f, 0.0f, 1.0f, 1.0f);
+ }
+ }
+ else {
+ view_settings->flag &= ~COLORMANAGE_VIEW_USE_CURVES;
+ }
+}
+
+static int rna_ColorManagedColorspaceSettings_colorspace_get(struct PointerRNA *ptr)
+{
+ ColorManagedColorspaceSettings *colorspace = (ColorManagedColorspaceSettings *) ptr->data;
+
+ return IMB_colormanagement_colorspace_get_named_index(colorspace->name);
+}
+
+static void rna_ColorManagedColorspaceSettings_colorspace_set(struct PointerRNA *ptr, int value)
+{
+ ColorManagedColorspaceSettings *colorspace = (ColorManagedColorspaceSettings *) ptr->data;
+ const char *name = IMB_colormanagement_colorspace_get_indexed_name(value);
+
+ if (name) {
+ BLI_strncpy(colorspace->name, name, sizeof(colorspace->name));
+ }
+}
+
+static EnumPropertyItem *rna_ColorManagedColorspaceSettings_colorspace_itemf(bContext *C, PointerRNA *ptr, PropertyRNA *UNUSED(prop), int *free)
+{
+ EnumPropertyItem *items = NULL;
+ int totitem = 0;
+
+ IMB_colormanagement_colorspace_items_add(&items, &totitem);
+ RNA_enum_item_end(&items, &totitem);
+
+ *free = TRUE;
+
+ return items;
+}
+
+static void rna_ColorManagedColorspaceSettings_reload_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
+{
+ ID *id = ptr->id.data;
+
+ if (GS(id->name) == ID_IM) {
+ Image *ima = (Image *) id;
+
+ BKE_image_signal(ima, NULL, IMA_SIGNAL_RELOAD);
+ WM_main_add_notifier(NC_IMAGE | ND_DISPLAY, &ima->id);
+ }
+ else if (GS(id->name) == ID_MC) {
+ MovieClip *clip = (MovieClip *) id;
+
+ BKE_movieclip_reload(clip);
+ WM_main_add_notifier(NC_MOVIECLIP | ND_DISPLAY, &clip->id);
+ }
+}
+
+static void rna_ColorManagement_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
+{
+ ID *id = ptr->id.data;
+
+ if (!id)
+ return;
+
+ if (GS(id->name) == ID_SCE) {
+ WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, NULL);
+ }
+}
+
+/* this function only exists because #curvemap_evaluateF uses a 'const' qualifier */
+static float rna_CurveMap_evaluateF(struct CurveMap *cuma, float value)
+{
+ return curvemap_evaluateF(cuma, value);
+}
+
#else
static void rna_def_curvemappoint(BlenderRNA *brna)
@@ -419,7 +585,7 @@ static void rna_def_curvemap(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Points", "");
rna_def_curvemap_points_api(brna, prop);
- func = RNA_def_function(srna, "evaluate", "curvemap_evaluateF");
+ func = RNA_def_function(srna, "evaluate", "rna_CurveMap_evaluateF");
RNA_def_function_ui_description(func, "Evaluate curve at given location");
parm = RNA_def_float(func, "position", 0.0f, -FLT_MAX, FLT_MAX, "Position", "Position to evaluate curve at", -FLT_MAX, FLT_MAX);
RNA_def_property_flag(parm, PROP_REQUIRED);
@@ -676,6 +842,87 @@ static void rna_def_scopes(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Vectorscope Opacity", "Opacity of the points");
}
+static void rna_def_colormanage(BlenderRNA *brna)
+{
+ StructRNA *srna;
+ PropertyRNA *prop;
+
+ static EnumPropertyItem display_device_items[] = {
+ {0, "DEFAULT", 0, "Default", ""},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ static EnumPropertyItem view_transform_items[] = {
+ {0, "NONE", 0, "None", "Do not perform any color transform on display, use old non-color managed technique for display"},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ static EnumPropertyItem color_space_items[] = {
+ {0, "NONE", 0, "None", "Do not perform any color transform on load, treat colors as in scene linear space already"},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ /* ** Display Settings ** */
+ srna = RNA_def_struct(brna, "ColorManagedDisplaySettings", NULL);
+ RNA_def_struct_ui_text(srna, "ColorManagedDisplaySettings", "Color management specific to display device");
+
+ prop = RNA_def_property(srna, "display_device", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_items(prop, display_device_items);
+ RNA_def_property_enum_funcs(prop, "rna_ColorManagedDisplaySettings_display_device_get",
+ "rna_ColorManagedDisplaySettings_display_device_set",
+ "rna_ColorManagedDisplaySettings_display_device_itemf");
+ RNA_def_property_ui_text(prop, "Display Device", "Display device name");
+ RNA_def_property_update(prop, NC_WINDOW, "rna_ColorManagedDisplaySettings_display_device_update");
+
+ /* ** View Settings ** */
+ srna = RNA_def_struct(brna, "ColorManagedViewSettings", NULL);
+ RNA_def_struct_ui_text(srna, "ColorManagedViewSettings", "Color management settings used for displaying images on the display");
+
+ prop = RNA_def_property(srna, "view_transform", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_items(prop, view_transform_items);
+ RNA_def_property_enum_funcs(prop, "rna_ColorManagedViewSettings_view_transform_get",
+ "rna_ColorManagedViewSettings_view_transform_set",
+ "rna_ColorManagedViewSettings_view_transform_itemf");
+ RNA_def_property_ui_text(prop, "View Transform", "View used ");
+ RNA_def_property_update(prop, NC_WINDOW, "rna_ColorManagement_update");
+
+ prop = RNA_def_property(srna, "exposure", PROP_FLOAT, PROP_FACTOR);
+ RNA_def_property_float_sdna(prop, NULL, "exposure");
+ RNA_def_property_range(prop, -10.0f, 10.0f);
+ RNA_def_property_float_default(prop, 0.0f);
+ RNA_def_property_ui_text(prop, "Exposure", "Exposure (stops) applied before display transform");
+ RNA_def_property_update(prop, NC_WINDOW, "rna_ColorManagement_update");
+
+ prop = RNA_def_property(srna, "gamma", PROP_FLOAT, PROP_FACTOR);
+ RNA_def_property_float_sdna(prop, NULL, "gamma");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0.0f, 5.0f);
+ RNA_def_property_ui_text(prop, "Gamma", "Amount of gamma modification applied after display transform");
+ RNA_def_property_update(prop, NC_WINDOW, "rna_ColorManagement_update");
+
+ prop = RNA_def_property(srna, "curve_mapping", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "curve_mapping");
+ RNA_def_property_ui_text(prop, "Curve", "Color curve mapping applied before display transform");
+ RNA_def_property_update(prop, NC_WINDOW, "rna_ColorManagement_update");
+
+ prop = RNA_def_property(srna, "use_curve_mapping", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", COLORMANAGE_VIEW_USE_CURVES);
+ RNA_def_property_boolean_funcs(prop, NULL, "rna_ColorManagedViewSettings_use_curves_set");
+ RNA_def_property_ui_text(prop, "Use Curves", "Use RGB curved for pre-display transformation");
+ RNA_def_property_update(prop, NC_WINDOW, "rna_ColorManagement_update");
+
+ /* ** Colorspace ** */
+ srna = RNA_def_struct(brna, "ColorManagedColorspaceSettings", NULL);
+ RNA_def_struct_ui_text(srna, "ColorManagedColorspaceSettings", "Input color space settings");
+
+ prop = RNA_def_property(srna, "name", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_items(prop, color_space_items);
+ RNA_def_property_enum_funcs(prop, "rna_ColorManagedColorspaceSettings_colorspace_get",
+ "rna_ColorManagedColorspaceSettings_colorspace_set",
+ "rna_ColorManagedColorspaceSettings_colorspace_itemf");
+ RNA_def_property_ui_text(prop, "Color Space", "Input color space name");
+ RNA_def_property_update(prop, NC_WINDOW, "rna_ColorManagedColorspaceSettings_reload_update");
+}
void RNA_def_color(BlenderRNA *brna)
{
@@ -686,6 +933,7 @@ void RNA_def_color(BlenderRNA *brna)
rna_def_color_ramp(brna);
rna_def_histogram(brna);
rna_def_scopes(brna);
+ rna_def_colormanage(brna);
}
#endif
diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c
index 8d718715e5b..f2454a2dcfb 100644
--- a/source/blender/makesrna/intern/rna_constraint.c
+++ b/source/blender/makesrna/intern/rna_constraint.c
@@ -1243,7 +1243,7 @@ static void rna_def_constraint_follow_path(BlenderRNA *brna)
prop = RNA_def_property(srna, "offset_factor", PROP_FLOAT, PROP_FACTOR);
RNA_def_property_float_sdna(prop, NULL, "offset_fac");
RNA_def_property_range(prop, 0.0f, 1.0f);
- RNA_def_property_ui_text(prop, "Offset Factor", "Percentage value defining target position along length of bone");
+ RNA_def_property_ui_text(prop, "Offset Factor", "Percentage value defining target position along length of curve");
RNA_def_property_update(prop, NC_OBJECT | ND_CONSTRAINT, "rna_Constraint_update");
prop = RNA_def_property(srna, "forward_axis", PROP_ENUM, PROP_NONE);
@@ -2207,6 +2207,13 @@ static void rna_def_constraint_follow_track(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
+ static const EnumPropertyItem frame_method_items[] = {
+ {FOLLOWTRACK_FRAME_STRETCH, "STRETCH", 0, "Stretch", ""},
+ {FOLLOWTRACK_FRAME_FIT, "FIT", 0, "Fit", ""},
+ {FOLLOWTRACK_FRAME_CROP, "CROP", 0, "Crop", ""},
+ {0, NULL, 0, NULL, NULL}
+ };
+
srna = RNA_def_struct(brna, "FollowTrackConstraint", "Constraint");
RNA_def_struct_ui_text(srna, "Follow Track Constraint", "Lock motion to the target motion track");
RNA_def_struct_sdna_from(srna, "bFollowTrackConstraint", "data");
@@ -2261,6 +2268,13 @@ static void rna_def_constraint_follow_track(BlenderRNA *brna)
RNA_def_property_update(prop, NC_OBJECT | ND_CONSTRAINT, "rna_Constraint_dependency_update");
RNA_def_property_pointer_funcs(prop, NULL, "rna_Constraint_followTrack_depthObject_set", NULL,
"rna_Constraint_followTrack_depthObject_poll");
+
+ /* frame method */
+ prop = RNA_def_property(srna, "frame_method", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_bitflag_sdna(prop, NULL, "frame_method");
+ RNA_def_property_enum_items(prop, frame_method_items);
+ RNA_def_property_ui_text(prop, "Frame Method", "How the footage fits in the camera frame");
+ RNA_def_property_update(prop, NC_OBJECT | ND_CONSTRAINT, "rna_Constraint_dependency_update");
}
static void rna_def_constraint_camera_solver(BlenderRNA *brna)
diff --git a/source/blender/makesrna/intern/rna_controller.c b/source/blender/makesrna/intern/rna_controller.c
index 44c8a2b412b..aef1f765fe2 100644
--- a/source/blender/makesrna/intern/rna_controller.c
+++ b/source/blender/makesrna/intern/rna_controller.c
@@ -77,7 +77,7 @@ static StructRNA *rna_Controller_refine(struct PointerRNA *ptr)
}
}
-void rna_Constroller_name_set(PointerRNA *ptr, const char *value)
+static void rna_Constroller_name_set(PointerRNA *ptr, const char *value)
{
bController *cont = (bController *)ptr->data;
diff --git a/source/blender/makesrna/intern/rna_controller_api.c b/source/blender/makesrna/intern/rna_controller_api.c
index 6fe90e1721b..639d6a330a5 100644
--- a/source/blender/makesrna/intern/rna_controller_api.c
+++ b/source/blender/makesrna/intern/rna_controller_api.c
@@ -35,6 +35,8 @@
#include "WM_types.h"
#include "RNA_define.h"
+#include "rna_internal.h" /* own include */
+
#ifdef RNA_RUNTIME
#include "BKE_sca.h"
diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c
index c333c56a6b8..d7e59f3b9dd 100644
--- a/source/blender/makesrna/intern/rna_curve.c
+++ b/source/blender/makesrna/intern/rna_curve.c
@@ -155,56 +155,38 @@ static StructRNA *rna_Curve_refine(PointerRNA *ptr)
static void rna_BezTriple_handle1_get(PointerRNA *ptr, float *values)
{
- BezTriple *bt = (BezTriple *)ptr->data;
-
- values[0] = bt->vec[0][0];
- values[1] = bt->vec[0][1];
- values[2] = bt->vec[0][2];
+ BezTriple *bezt = (BezTriple *)ptr->data;
+ copy_v3_v3(values, bezt->vec[0]);
}
static void rna_BezTriple_handle1_set(PointerRNA *ptr, const float *values)
{
- BezTriple *bt = (BezTriple *)ptr->data;
-
- bt->vec[0][0] = values[0];
- bt->vec[0][1] = values[1];
- bt->vec[0][2] = values[2];
+ BezTriple *bezt = (BezTriple *)ptr->data;
+ copy_v3_v3(bezt->vec[0], values);
}
static void rna_BezTriple_handle2_get(PointerRNA *ptr, float *values)
{
- BezTriple *bt = (BezTriple *)ptr->data;
-
- values[0] = bt->vec[2][0];
- values[1] = bt->vec[2][1];
- values[2] = bt->vec[2][2];
+ BezTriple *bezt = (BezTriple *)ptr->data;
+ copy_v3_v3(values, bezt->vec[2]);
}
static void rna_BezTriple_handle2_set(PointerRNA *ptr, const float *values)
{
- BezTriple *bt = (BezTriple *)ptr->data;
-
- bt->vec[2][0] = values[0];
- bt->vec[2][1] = values[1];
- bt->vec[2][2] = values[2];
+ BezTriple *bezt = (BezTriple *)ptr->data;
+ copy_v3_v3(bezt->vec[2], values);
}
static void rna_BezTriple_ctrlpoint_get(PointerRNA *ptr, float *values)
{
- BezTriple *bt = (BezTriple *)ptr->data;
-
- values[0] = bt->vec[1][0];
- values[1] = bt->vec[1][1];
- values[2] = bt->vec[1][2];
+ BezTriple *bezt = (BezTriple *)ptr->data;
+ copy_v3_v3(values, bezt->vec[1]);
}
static void rna_BezTriple_ctrlpoint_set(PointerRNA *ptr, const float *values)
{
- BezTriple *bt = (BezTriple *)ptr->data;
-
- bt->vec[1][0] = values[0];
- bt->vec[1][1] = values[1];
- bt->vec[1][2] = values[2];
+ BezTriple *bezt = (BezTriple *)ptr->data;
+ copy_v3_v3(bezt->vec[1], values);
}
static void rna_Curve_texspace_set(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
@@ -450,20 +432,20 @@ static void rna_Curve_offset_set(PointerRNA *ptr, float value)
}
/* name functions that ignore the first two ID characters */
-void rna_Curve_body_get(PointerRNA *ptr, char *value)
+static void rna_Curve_body_get(PointerRNA *ptr, char *value)
{
Curve *cu = (Curve *)ptr->id.data;
BLI_strncpy(value, cu->str, cu->len + 1);
}
-int rna_Curve_body_length(PointerRNA *ptr)
+static int rna_Curve_body_length(PointerRNA *ptr)
{
Curve *cu = (Curve *)ptr->id.data;
return cu->len;
}
/* TODO - check UTF & python play nice */
-void rna_Curve_body_set(PointerRNA *ptr, const char *value)
+static void rna_Curve_body_set(PointerRNA *ptr, const char *value)
{
int len = strlen(value);
Curve *cu = (Curve *)ptr->id.data;
@@ -739,7 +721,7 @@ static void rna_def_bpoint(BlenderRNA *brna)
RNA_def_property_update(prop, 0, "rna_Curve_update_data");
/* Number values */
- prop = RNA_def_property(srna, "tilt", PROP_FLOAT, PROP_NONE);
+ prop = RNA_def_property(srna, "tilt", PROP_FLOAT, PROP_ANGLE);
RNA_def_property_float_sdna(prop, NULL, "alfa");
/*RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);*/
RNA_def_property_ui_text(prop, "Tilt", "Tilt in 3D View");
@@ -826,13 +808,14 @@ static void rna_def_beztriple(BlenderRNA *brna)
RNA_def_property_update(prop, 0, "rna_Curve_update_points");
/* Number values */
- prop = RNA_def_property(srna, "tilt", PROP_FLOAT, PROP_NONE);
+ prop = RNA_def_property(srna, "tilt", PROP_FLOAT, PROP_ANGLE);
RNA_def_property_float_sdna(prop, NULL, "alfa");
/*RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);*/
RNA_def_property_ui_text(prop, "Tilt", "Tilt in 3D View");
RNA_def_property_update(prop, 0, "rna_Curve_update_data");
- prop = RNA_def_property(srna, "weight", PROP_FLOAT, PROP_NONE);
+ prop = RNA_def_property(srna, "weight_softbody", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "weight");
RNA_def_property_range(prop, 0.01f, 100.0f);
RNA_def_property_ui_text(prop, "Weight", "Softbody goal weight");
RNA_def_property_update(prop, 0, "rna_Curve_update_data");
@@ -1181,7 +1164,7 @@ static void rna_def_curve_spline_points(BlenderRNA *brna, PropertyRNA *cprop)
func = RNA_def_function(srna, "add", "rna_Curve_spline_points_add");
RNA_def_function_ui_description(func, "Add a number of points to this spline");
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_REPORTS);
- RNA_def_int(func, "count", 1, 1, INT_MAX, "Number", "Number of points to add to the spline", 1, INT_MAX);
+ RNA_def_int(func, "count", 1, 0, INT_MAX, "Number", "Number of points to add to the spline", 0, INT_MAX);
#if 0
func= RNA_def_function(srna, "remove", "rna_Curve_spline_remove");
@@ -1208,7 +1191,7 @@ static void rna_def_curve_spline_bezpoints(BlenderRNA *brna, PropertyRNA *cprop)
func = RNA_def_function(srna, "add", "rna_Curve_spline_bezpoints_add");
RNA_def_function_ui_description(func, "Add a number of points to this spline");
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_REPORTS);
- RNA_def_int(func, "count", 1, INT_MIN, INT_MAX, "Number", "Number of points to add to the spline", 0, INT_MAX);
+ RNA_def_int(func, "count", 1, 0, INT_MAX, "Number", "Number of points to add to the spline", 0, INT_MAX);
#if 0
func = RNA_def_function(srna, "remove", "rna_Curve_spline_remove");
diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c
index 0320c0d7142..45092d09ce1 100644
--- a/source/blender/makesrna/intern/rna_define.c
+++ b/source/blender/makesrna/intern/rna_define.c
@@ -926,7 +926,8 @@ PropertyRNA *RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier
}
}
break;
- case PROP_INT: {
+ case PROP_INT:
+ {
IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
iprop->hardmin = (subtype == PROP_UNSIGNED) ? 0 : INT_MIN;
@@ -937,7 +938,8 @@ PropertyRNA *RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier
iprop->step = 1;
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
FloatPropertyRNA *fprop = (FloatPropertyRNA *)prop;
fprop->hardmin = (subtype == PROP_UNSIGNED) ? 0.0f : -FLT_MAX;
@@ -959,7 +961,8 @@ PropertyRNA *RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier
fprop->precision = 3;
break;
}
- case PROP_STRING: {
+ case PROP_STRING:
+ {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
sprop->defaultvalue = "";
@@ -1009,19 +1012,22 @@ PropertyRNA *RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier
RNA_def_property_boolean_sdna(prop, NULL, identifier, 0);
DefRNA.silent = 0;
break;
- case PROP_INT: {
+ case PROP_INT:
+ {
DefRNA.silent = 1;
RNA_def_property_int_sdna(prop, NULL, identifier);
DefRNA.silent = 0;
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
DefRNA.silent = 1;
RNA_def_property_float_sdna(prop, NULL, identifier);
DefRNA.silent = 0;
break;
}
- case PROP_STRING: {
+ case PROP_STRING:
+ {
DefRNA.silent = 1;
RNA_def_property_string_sdna(prop, NULL, identifier);
DefRNA.silent = 0;
@@ -1173,14 +1179,16 @@ void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double
StructRNA *srna = DefRNA.laststruct;
switch (prop->type) {
- case PROP_INT: {
+ case PROP_INT:
+ {
IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
iprop->softmin = (int)min;
iprop->softmax = (int)max;
iprop->step = (int)step;
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
FloatPropertyRNA *fprop = (FloatPropertyRNA *)prop;
fprop->softmin = (float)min;
fprop->softmax = (float)max;
@@ -1201,7 +1209,8 @@ void RNA_def_property_range(PropertyRNA *prop, double min, double max)
StructRNA *srna = DefRNA.laststruct;
switch (prop->type) {
- case PROP_INT: {
+ case PROP_INT:
+ {
IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
iprop->hardmin = (int)min;
iprop->hardmax = (int)max;
@@ -1209,7 +1218,8 @@ void RNA_def_property_range(PropertyRNA *prop, double min, double max)
iprop->softmax = MIN2((int)max, iprop->hardmax);
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
FloatPropertyRNA *fprop = (FloatPropertyRNA *)prop;
fprop->hardmin = (float)min;
fprop->hardmax = (float)max;
@@ -1234,12 +1244,14 @@ void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
}
switch (prop->type) {
- case PROP_POINTER: {
+ case PROP_POINTER:
+ {
PointerPropertyRNA *pprop = (PointerPropertyRNA *)prop;
pprop->type = (StructRNA *)type;
break;
}
- case PROP_COLLECTION: {
+ case PROP_COLLECTION:
+ {
CollectionPropertyRNA *cprop = (CollectionPropertyRNA *)prop;
cprop->item_type = (StructRNA *)type;
break;
@@ -1262,7 +1274,8 @@ void RNA_def_property_struct_runtime(PropertyRNA *prop, StructRNA *type)
}
switch (prop->type) {
- case PROP_POINTER: {
+ case PROP_POINTER:
+ {
PointerPropertyRNA *pprop = (PointerPropertyRNA *)prop;
pprop->type = type;
@@ -1271,7 +1284,8 @@ void RNA_def_property_struct_runtime(PropertyRNA *prop, StructRNA *type)
break;
}
- case PROP_COLLECTION: {
+ case PROP_COLLECTION:
+ {
CollectionPropertyRNA *cprop = (CollectionPropertyRNA *)prop;
cprop->item_type = type;
break;
@@ -1290,7 +1304,8 @@ void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item
int i, defaultfound = 0;
switch (prop->type) {
- case PROP_ENUM: {
+ case PROP_ENUM:
+ {
EnumPropertyRNA *eprop = (EnumPropertyRNA *)prop;
eprop->item = (EnumPropertyItem *)item;
eprop->totitem = 0;
@@ -1325,7 +1340,8 @@ void RNA_def_property_string_maxlength(PropertyRNA *prop, int maxlength)
StructRNA *srna = DefRNA.laststruct;
switch (prop->type) {
- case PROP_STRING: {
+ case PROP_STRING:
+ {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
sprop->maxlength = maxlength;
break;
@@ -1342,7 +1358,8 @@ void RNA_def_property_boolean_default(PropertyRNA *prop, int value)
StructRNA *srna = DefRNA.laststruct;
switch (prop->type) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
BoolPropertyRNA *bprop = (BoolPropertyRNA *)prop;
bprop->defaultvalue = value;
break;
@@ -1359,7 +1376,8 @@ void RNA_def_property_boolean_array_default(PropertyRNA *prop, const int *array)
StructRNA *srna = DefRNA.laststruct;
switch (prop->type) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
BoolPropertyRNA *bprop = (BoolPropertyRNA *)prop;
bprop->defaultarray = array;
break;
@@ -1376,7 +1394,8 @@ void RNA_def_property_int_default(PropertyRNA *prop, int value)
StructRNA *srna = DefRNA.laststruct;
switch (prop->type) {
- case PROP_INT: {
+ case PROP_INT:
+ {
IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
iprop->defaultvalue = value;
break;
@@ -1393,7 +1412,8 @@ void RNA_def_property_int_array_default(PropertyRNA *prop, const int *array)
StructRNA *srna = DefRNA.laststruct;
switch (prop->type) {
- case PROP_INT: {
+ case PROP_INT:
+ {
IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
iprop->defaultarray = array;
break;
@@ -1410,7 +1430,8 @@ void RNA_def_property_float_default(PropertyRNA *prop, float value)
StructRNA *srna = DefRNA.laststruct;
switch (prop->type) {
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
FloatPropertyRNA *fprop = (FloatPropertyRNA *)prop;
fprop->defaultvalue = value;
break;
@@ -1427,7 +1448,8 @@ void RNA_def_property_float_array_default(PropertyRNA *prop, const float *array)
StructRNA *srna = DefRNA.laststruct;
switch (prop->type) {
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
FloatPropertyRNA *fprop = (FloatPropertyRNA *)prop;
fprop->defaultarray = array; /* WARNING, this array must not come from the stack and lost */
break;
@@ -1444,7 +1466,8 @@ void RNA_def_property_string_default(PropertyRNA *prop, const char *value)
StructRNA *srna = DefRNA.laststruct;
switch (prop->type) {
- case PROP_STRING: {
+ case PROP_STRING:
+ {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
sprop->defaultvalue = value;
break;
@@ -1462,7 +1485,8 @@ void RNA_def_property_enum_default(PropertyRNA *prop, int value)
int i, defaultfound = 0;
switch (prop->type) {
- case PROP_ENUM: {
+ case PROP_ENUM:
+ {
EnumPropertyRNA *eprop = (EnumPropertyRNA *)prop;
eprop->defaultvalue = value;
@@ -1945,7 +1969,8 @@ void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const ch
}
switch (prop->type) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
BoolPropertyRNA *bprop = (BoolPropertyRNA *)prop;
if (prop->arraydimension) {
@@ -1975,7 +2000,8 @@ void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *
}
switch (prop->type) {
- case PROP_INT: {
+ case PROP_INT:
+ {
IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
if (prop->arraydimension) {
@@ -2006,7 +2032,8 @@ void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char
}
switch (prop->type) {
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
FloatPropertyRNA *fprop = (FloatPropertyRNA *)prop;
if (prop->arraydimension) {
@@ -2037,7 +2064,8 @@ void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char
}
switch (prop->type) {
- case PROP_ENUM: {
+ case PROP_ENUM:
+ {
EnumPropertyRNA *eprop = (EnumPropertyRNA *)prop;
if (get) eprop->get = (PropEnumGetFunc)get;
@@ -2062,7 +2090,8 @@ void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const cha
}
switch (prop->type) {
- case PROP_STRING: {
+ case PROP_STRING:
+ {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
if (get) sprop->get = (PropStringGetFunc)get;
@@ -2088,7 +2117,8 @@ void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const ch
}
switch (prop->type) {
- case PROP_POINTER: {
+ case PROP_POINTER:
+ {
PointerPropertyRNA *pprop = (PointerPropertyRNA *)prop;
if (get) pprop->get = (PropPointerGetFunc)get;
@@ -2116,7 +2146,8 @@ void RNA_def_property_collection_funcs(PropertyRNA *prop, const char *begin, con
}
switch (prop->type) {
- case PROP_COLLECTION: {
+ case PROP_COLLECTION:
+ {
CollectionPropertyRNA *cprop = (CollectionPropertyRNA *)prop;
if (begin) cprop->begin = (PropCollectionBeginFunc)begin;
@@ -2742,7 +2773,8 @@ int rna_parameter_size(PropertyRNA *parm)
}
else
return sizeof(char *);
- case PROP_POINTER: {
+ case PROP_POINTER:
+ {
#ifdef RNA_RUNTIME
if (parm->flag & PROP_RNAPTR)
return sizeof(PointerRNA);
@@ -2889,7 +2921,8 @@ void RNA_def_property_duplicate_pointers(StructOrFunctionRNA *cont_, PropertyRNA
if (prop->description) prop->description = BLI_strdup(prop->description);
switch (prop->type) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
BoolPropertyRNA *bprop = (BoolPropertyRNA *)prop;
if (bprop->defaultarray) {
@@ -2899,7 +2932,8 @@ void RNA_def_property_duplicate_pointers(StructOrFunctionRNA *cont_, PropertyRNA
}
break;
}
- case PROP_INT: {
+ case PROP_INT:
+ {
IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
if (iprop->defaultarray) {
@@ -2909,7 +2943,8 @@ void RNA_def_property_duplicate_pointers(StructOrFunctionRNA *cont_, PropertyRNA
}
break;
}
- case PROP_ENUM: {
+ case PROP_ENUM:
+ {
EnumPropertyRNA *eprop = (EnumPropertyRNA *)prop;
if (eprop->item) {
@@ -2928,7 +2963,8 @@ void RNA_def_property_duplicate_pointers(StructOrFunctionRNA *cont_, PropertyRNA
}
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
FloatPropertyRNA *fprop = (FloatPropertyRNA *)prop;
if (fprop->defaultarray) {
@@ -2938,7 +2974,8 @@ void RNA_def_property_duplicate_pointers(StructOrFunctionRNA *cont_, PropertyRNA
}
break;
}
- case PROP_STRING: {
+ case PROP_STRING:
+ {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
if (sprop->defaultvalue)
sprop->defaultvalue = BLI_strdup(sprop->defaultvalue);
@@ -2966,25 +3003,29 @@ void RNA_def_property_free_pointers(PropertyRNA *prop)
MEM_freeN(prop->py_data);
switch (prop->type) {
- case PROP_BOOLEAN: {
+ case PROP_BOOLEAN:
+ {
BoolPropertyRNA *bprop = (BoolPropertyRNA *)prop;
if (bprop->defaultarray)
MEM_freeN((void *)bprop->defaultarray);
break;
}
- case PROP_INT: {
+ case PROP_INT:
+ {
IntPropertyRNA *iprop = (IntPropertyRNA *)prop;
if (iprop->defaultarray)
MEM_freeN((void *)iprop->defaultarray);
break;
}
- case PROP_FLOAT: {
+ case PROP_FLOAT:
+ {
FloatPropertyRNA *fprop = (FloatPropertyRNA *)prop;
if (fprop->defaultarray)
MEM_freeN((void *)fprop->defaultarray);
break;
}
- case PROP_ENUM: {
+ case PROP_ENUM:
+ {
EnumPropertyRNA *eprop = (EnumPropertyRNA *)prop;
for (a = 0; a < eprop->totitem; a++) {
@@ -2999,7 +3040,8 @@ void RNA_def_property_free_pointers(PropertyRNA *prop)
if (eprop->item) MEM_freeN((void *)eprop->item);
break;
}
- case PROP_STRING: {
+ case PROP_STRING:
+ {
StringPropertyRNA *sprop = (StringPropertyRNA *)prop;
if (sprop->defaultvalue)
MEM_freeN((void *)sprop->defaultvalue);
diff --git a/source/blender/makesrna/intern/rna_dynamicpaint.c b/source/blender/makesrna/intern/rna_dynamicpaint.c
index 6739e5b71fa..4f9f2009a14 100644
--- a/source/blender/makesrna/intern/rna_dynamicpaint.c
+++ b/source/blender/makesrna/intern/rna_dynamicpaint.c
@@ -170,7 +170,7 @@ static PointerRNA rna_PaintSurface_active_get(PointerRNA *ptr)
static void rna_DynamicPaint_surfaces_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{
DynamicPaintCanvasSettings *canvas = (DynamicPaintCanvasSettings *)ptr->data;
- /*rna_iterator_array_begin(iter, (void*)canvas->surfaces, sizeof(PaintSurface), canvas->totsur, 0, 0); */
+ /*rna_iterator_array_begin(iter, (void *)canvas->surfaces, sizeof(PaintSurface), canvas->totsur, 0, 0); */
rna_iterator_listbase_begin(iter, &canvas->surfaces, NULL);
}
diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c
index 5eb15cf31b6..d899b5833bb 100644
--- a/source/blender/makesrna/intern/rna_fcurve.c
+++ b/source/blender/makesrna/intern/rna_fcurve.c
@@ -55,7 +55,7 @@ EnumPropertyItem fmodifier_type_items[] = {
{FMODIFIER_TYPE_ENVELOPE, "ENVELOPE", 0, "Envelope", ""},
{FMODIFIER_TYPE_CYCLES, "CYCLES", 0, "Cycles", ""},
{FMODIFIER_TYPE_NOISE, "NOISE", 0, "Noise", ""},
- {FMODIFIER_TYPE_FILTER, "FILTER", 0, "Filter", ""},
+ /*{FMODIFIER_TYPE_FILTER, "FILTER", 0, "Filter", ""},*/ /* FIXME: not implemented yet! */
/*{FMODIFIER_TYPE_PYTHON, "PYTHON", 0, "Python", ""}, *//* FIXME: not implemented yet! */
{FMODIFIER_TYPE_LIMITS, "LIMITS", 0, "Limits", ""},
{FMODIFIER_TYPE_STEPPED, "STEPPED", 0, "Stepped Interpolation", ""},
@@ -403,13 +403,13 @@ static void rna_FCurve_group_set(PointerRNA *ptr, PointerRNA value)
}
}
-DriverVar *rna_Driver_new_variable(ChannelDriver *driver)
+static DriverVar *rna_Driver_new_variable(ChannelDriver *driver)
{
/* call the API function for this */
return driver_add_new_variable(driver);
}
-void rna_Driver_remove_variable(ChannelDriver *driver, ReportList *reports, DriverVar *dvar)
+static void rna_Driver_remove_variable(ChannelDriver *driver, ReportList *reports, DriverVar *dvar)
{
if (BLI_findindex(&driver->variables, dvar) == -1) {
BKE_report(reports, RPT_ERROR, "Variable does not exist in this driver");
@@ -1497,7 +1497,7 @@ static void rna_def_fcurve_keyframe_points(BlenderRNA *brna, PropertyRNA *cprop)
func = RNA_def_function(srna, "add", "rna_FKeyframe_points_add");
RNA_def_function_ui_description(func, "Add a keyframe point to a F-Curve");
- RNA_def_int(func, "count", 1, 1, INT_MAX, "Number", "Number of points to add to the spline", 1, INT_MAX);
+ RNA_def_int(func, "count", 1, 0, INT_MAX, "Number", "Number of points to add to the spline", 0, INT_MAX);
func = RNA_def_function(srna, "remove", "rna_FKeyframe_points_remove");
RNA_def_function_ui_description(func, "Remove keyframe from an F-Curve");
diff --git a/source/blender/makesrna/intern/rna_fcurve_api.c b/source/blender/makesrna/intern/rna_fcurve_api.c
index 1f8b827f320..ab96f6f384d 100644
--- a/source/blender/makesrna/intern/rna_fcurve_api.c
+++ b/source/blender/makesrna/intern/rna_fcurve_api.c
@@ -34,10 +34,14 @@
#include <string.h>
#include <time.h>
+#include "BLI_utildefines.h"
+
#include "RNA_define.h"
#include "DNA_anim_types.h"
+#include "rna_internal.h" /* own include */
+
#ifdef RNA_RUNTIME
#include <stddef.h>
@@ -47,7 +51,7 @@
#else
-void RNA_api_drivers(StructRNA *srna)
+void RNA_api_drivers(StructRNA *UNUSED(srna))
{
/* FunctionRNA *func; */
/* PropertyRNA *parm; */
diff --git a/source/blender/makesrna/intern/rna_fluidsim.c b/source/blender/makesrna/intern/rna_fluidsim.c
index e84a290acb8..daa661175a1 100644
--- a/source/blender/makesrna/intern/rna_fluidsim.c
+++ b/source/blender/makesrna/intern/rna_fluidsim.c
@@ -24,15 +24,16 @@
* \ingroup RNA
*/
-
#include <stdlib.h>
+#include "DNA_object_fluidsim.h"
+
+#include "BLI_path_util.h"
+
#include "RNA_define.h"
#include "rna_internal.h"
-#include "DNA_object_fluidsim.h"
-
#include "WM_api.h"
#include "WM_types.h"
diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c
index e246c6975b5..b0fcfb9b540 100644
--- a/source/blender/makesrna/intern/rna_gpencil.c
+++ b/source/blender/makesrna/intern/rna_gpencil.c
@@ -40,6 +40,15 @@
#ifdef RNA_RUNTIME
+#include "WM_api.h"
+
+#include "BKE_gpencil.h"
+
+static void rna_GPencil_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *UNUSED(ptr))
+{
+ WM_main_add_notifier(NC_GPENCIL | NA_EDITED, NULL);
+}
+
static int rna_GPencilLayer_active_frame_editable(PointerRNA *ptr)
{
bGPDlayer *gpl = (bGPDlayer *)ptr->data;
@@ -53,6 +62,7 @@ static int rna_GPencilLayer_active_frame_editable(PointerRNA *ptr)
static PointerRNA rna_GPencil_active_layer_get(PointerRNA *ptr)
{
+
bGPdata *gpd = ptr->id.data;
if (GS(gpd->id.name) == ID_GD) { /* why would this ever be not GD */
@@ -90,7 +100,7 @@ static void rna_GPencil_active_layer_set(PointerRNA *ptr, PointerRNA value)
}
}
-void rna_GPencilLayer_info_set(PointerRNA *ptr, const char *value)
+static void rna_GPencilLayer_info_set(PointerRNA *ptr, const char *value)
{
bGPdata *gpd = ptr->id.data;
bGPDlayer *gpl = ptr->data;
@@ -101,6 +111,154 @@ void rna_GPencilLayer_info_set(PointerRNA *ptr, const char *value)
BLI_uniquename(&gpd->layers, gpl, "GP_Layer", '.', offsetof(bGPDlayer, info), sizeof(gpl->info));
}
+static void rna_GPencil_stroke_point_add(bGPDstroke *stroke, int count)
+{
+ if (count > 0) {
+ if (stroke->points == NULL)
+ stroke->points = MEM_callocN(sizeof(bGPDspoint) * count, "gp_stroke_points");
+ else
+ stroke->points = MEM_reallocN(stroke->points, sizeof(bGPDspoint) * (stroke->totpoints + count));
+
+ stroke->totpoints += count;
+ }
+}
+
+static void rna_GPencil_stroke_point_pop(bGPDstroke *stroke, ReportList *reports, int index)
+{
+ bGPDspoint *pt_tmp = stroke->points;
+
+ /* python style negative indexing */
+ if (index < 0) {
+ index += stroke->totpoints;
+ }
+
+ if (stroke->totpoints <= index || index < 0) {
+ BKE_report(reports, RPT_ERROR, "GPencilStrokePoints.pop: index out of range");
+ return;
+ }
+
+ stroke->totpoints--;
+
+ stroke->points = MEM_callocN(sizeof(bGPDspoint) * stroke->totpoints, "gp_stroke_points");
+
+ if (index > 0)
+ memcpy(stroke->points, pt_tmp, sizeof(bGPDspoint) * index);
+
+ if (index < stroke->totpoints)
+ memcpy(&stroke->points[index], &pt_tmp[index + 1], sizeof(bGPDspoint) * (stroke->totpoints - index));
+
+ /* free temp buffer */
+ MEM_freeN(pt_tmp);
+
+ WM_main_add_notifier(NC_GPENCIL | NA_EDITED, NULL);
+}
+
+static bGPDstroke *rna_GPencil_stroke_new(bGPDframe *frame)
+{
+ bGPDstroke *stroke = MEM_callocN(sizeof(bGPDstroke), "gp_stroke");
+
+ BLI_addtail(&frame->strokes, stroke);
+
+ return stroke;
+}
+
+static void rna_GPencil_stroke_remove(bGPDframe *frame, ReportList *reports, bGPDstroke *stroke)
+{
+ if (BLI_findindex(&frame->strokes, stroke) == -1) {
+ BKE_reportf(reports, RPT_ERROR, "Stroke not found in grease pencil frame");
+ return;
+ }
+
+ BLI_freelinkN(&frame->strokes, stroke);
+
+ WM_main_add_notifier(NC_GPENCIL | NA_EDITED, NULL);
+}
+
+static bGPDframe *rna_GPencil_frame_new(bGPDlayer *layer, ReportList *reports, int frame_number)
+{
+ bGPDframe *frame;
+
+ if (BKE_gpencil_layer_find_frame(layer, frame_number)) {
+ BKE_reportf(reports, RPT_ERROR, "Frame already exists on this frame number");
+ return NULL;
+ }
+
+ frame = gpencil_frame_addnew(layer, frame_number);
+
+ WM_main_add_notifier(NC_GPENCIL | NA_EDITED, NULL);
+
+ return frame;
+}
+
+static void rna_GPencil_frame_remove(bGPDlayer *layer, ReportList *reports, bGPDframe *frame)
+{
+ if (BLI_findindex(&layer->frames, frame) == -1) {
+ BKE_reportf(reports, RPT_ERROR, "Frame not found in grease pencil layer");
+ return;
+ }
+
+ gpencil_layer_delframe(layer, frame);
+
+ WM_main_add_notifier(NC_GPENCIL | NA_EDITED, NULL);
+}
+
+static bGPDframe *rna_GPencil_frame_copy(bGPDlayer *layer, bGPDframe *src)
+{
+ bGPDframe *frame = gpencil_frame_duplicate(src);
+
+ while (BKE_gpencil_layer_find_frame(layer, frame->framenum)) {
+ frame->framenum++;
+ }
+
+ BLI_addtail(&layer->frames, frame);
+
+ WM_main_add_notifier(NC_GPENCIL | NA_EDITED, NULL);
+
+ return frame;
+}
+
+static bGPDlayer *rna_GPencil_layer_new(bGPdata *gpd, const char *name, int setactive)
+{
+ bGPDlayer *gl = gpencil_layer_addnew(gpd, name, setactive);
+
+ WM_main_add_notifier(NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
+
+ return gl;
+}
+
+static void rna_GPencil_layer_remove(bGPdata *gpd, ReportList *reports, bGPDlayer *layer)
+{
+ if (BLI_findindex(&gpd->layers, layer) == -1) {
+ BKE_reportf(reports, RPT_ERROR, "Layer not found in grease pencil data");
+ return;
+ }
+
+ gpencil_layer_delete(gpd, layer);
+
+ WM_main_add_notifier(NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
+}
+
+static void rna_GPencil_frame_clear(bGPDframe *frame)
+{
+ free_gpencil_strokes(frame);
+
+ WM_main_add_notifier(NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
+}
+
+static void rna_GPencil_layer_clear(bGPDlayer *layer)
+{
+ free_gpencil_frames(layer);
+
+ WM_main_add_notifier(NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
+}
+
+static void rna_GPencil_clear(bGPdata *gpd)
+{
+ free_gpencil_layers(&gpd->layers);
+
+ WM_main_add_notifier(NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
+}
+
#else
static void rna_def_gpencil_stroke_point(BlenderRNA *brna)
@@ -116,19 +274,49 @@ static void rna_def_gpencil_stroke_point(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "x");
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Coordinates", "");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
prop = RNA_def_property(srna, "pressure", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "pressure");
RNA_def_property_range(prop, 0.0f, 1.0f);
RNA_def_property_ui_text(prop, "Pressure", "Pressure of tablet at point when drawing it");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
+}
+
+static void rna_def_gpencil_stroke_points_api(BlenderRNA *brna, PropertyRNA *cprop)
+{
+ StructRNA *srna;
+
+ FunctionRNA *func;
+ /* PropertyRNA *parm; */
+
+ RNA_def_property_srna(cprop, "GPencilStrokePoints");
+ srna = RNA_def_struct(brna, "GPencilStrokePoints", NULL);
+ RNA_def_struct_sdna(srna, "bGPDstroke");
+ RNA_def_struct_ui_text(srna, "Grease Pencil Stroke Points", "Collection of grease pencil stroke points");
+
+ func = RNA_def_function(srna, "add", "rna_GPencil_stroke_point_add");
+ RNA_def_function_ui_description(func, "Add a new grease pencil stroke point");
+ RNA_def_int(func, "count", 1, 0, INT_MAX, "Number", "Number of points to add to the stroke", 0, INT_MAX);
+
+ func = RNA_def_function(srna, "pop", "rna_GPencil_stroke_point_pop");
+ RNA_def_function_ui_description(func, "Remove a grease pencil stroke point");
+ RNA_def_function_flag(func, FUNC_USE_REPORTS);
+ RNA_def_int(func, "index", -1, INT_MIN, INT_MAX, "Index", "point index", INT_MIN, INT_MAX);
}
static void rna_def_gpencil_stroke(BlenderRNA *brna)
{
StructRNA *srna;
PropertyRNA *prop;
+
+ static EnumPropertyItem stroke_draw_mode_items[] = {
+ {0, "SCREEN", 0, "Screen", "Stroke is in screen-space"},
+ {GP_STROKE_3DSPACE, "3DSPACE", 0, "3D Space", "Stroke is in 3D-space"},
+ {GP_STROKE_2DSPACE, "2DSPACE", 0, "2D Space", "Stroke is in 2D-space"},
+ {GP_STROKE_2DIMAGE, "2DIMAGE", 0, "2D Image", "Stroke is in 2D-space (but with special 'image' scaling)"},
+ {0, NULL, 0, NULL, NULL}
+ };
srna = RNA_def_struct(brna, "GPencilStroke", NULL);
RNA_def_struct_sdna(srna, "bGPDstroke");
@@ -139,15 +327,45 @@ static void rna_def_gpencil_stroke(BlenderRNA *brna)
RNA_def_property_collection_sdna(prop, NULL, "points", "totpoints");
RNA_def_property_struct_type(prop, "GPencilStrokePoint");
RNA_def_property_ui_text(prop, "Stroke Points", "Stroke data points");
-
- /* Flags - Readonly type-info really... */
- /* TODO... */
+ rna_def_gpencil_stroke_points_api(brna, prop);
+
+ prop = RNA_def_property(srna, "draw_mode", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag");
+ RNA_def_property_enum_items(prop, stroke_draw_mode_items);
+ RNA_def_property_ui_text(prop, "Draw Mode", "");
+ RNA_def_property_update(prop, 0, "rna_GPencil_update");
+}
+
+static void rna_def_gpencil_strokes_api(BlenderRNA *brna, PropertyRNA *cprop)
+{
+ StructRNA *srna;
+
+ FunctionRNA *func;
+ PropertyRNA *parm;
+
+ RNA_def_property_srna(cprop, "GPencilStrokes");
+ srna = RNA_def_struct(brna, "GPencilStrokes", NULL);
+ RNA_def_struct_sdna(srna, "bGPDframe");
+ RNA_def_struct_ui_text(srna, "Grease Pencil Frames", "Collection of grease pencil frames");
+
+ func = RNA_def_function(srna, "new", "rna_GPencil_stroke_new");
+ RNA_def_function_ui_description(func, "Add a new grease pencil frame");
+ parm = RNA_def_pointer(func, "stroke", "GPencilStroke", "", "The newly created stroke");
+ RNA_def_function_return(func, parm);
+
+ func = RNA_def_function(srna, "remove", "rna_GPencil_stroke_remove");
+ RNA_def_function_ui_description(func, "Remove a grease pencil frame");
+ RNA_def_function_flag(func, FUNC_USE_REPORTS);
+ parm = RNA_def_pointer(func, "stroke", "GPencilStroke", "Stroke", "The stroke to remove");
+ RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
}
static void rna_def_gpencil_frame(BlenderRNA *brna)
{
StructRNA *srna;
PropertyRNA *prop;
+
+ FunctionRNA *func;
srna = RNA_def_struct(brna, "GPencilFrame", NULL);
RNA_def_struct_sdna(srna, "bGPDframe");
@@ -158,7 +376,8 @@ static void rna_def_gpencil_frame(BlenderRNA *brna)
RNA_def_property_collection_sdna(prop, NULL, "strokes", NULL);
RNA_def_property_struct_type(prop, "GPencilStroke");
RNA_def_property_ui_text(prop, "Strokes", "Freehand curves defining the sketch on this frame");
-
+ rna_def_gpencil_strokes_api(brna, prop);
+
/* Frame Number */
prop = RNA_def_property(srna, "frame_number", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "framenum");
@@ -173,12 +392,51 @@ static void rna_def_gpencil_frame(BlenderRNA *brna)
prop = RNA_def_property(srna, "select", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_FRAME_SELECT);
RNA_def_property_ui_text(prop, "Select", "Frame is selected for editing in the DopeSheet");
+
+ func = RNA_def_function(srna, "clear", "rna_GPencil_frame_clear");
+ RNA_def_function_ui_description(func, "Remove all the grease pencil frame data");
+}
+
+static void rna_def_gpencil_frames_api(BlenderRNA *brna, PropertyRNA *cprop)
+{
+ StructRNA *srna;
+
+ FunctionRNA *func;
+ PropertyRNA *parm;
+
+ RNA_def_property_srna(cprop, "GPencilFrames");
+ srna = RNA_def_struct(brna, "GPencilFrames", NULL);
+ RNA_def_struct_sdna(srna, "bGPDlayer");
+ RNA_def_struct_ui_text(srna, "Grease Pencil Frames", "Collection of grease pencil frames");
+
+ func = RNA_def_function(srna, "new", "rna_GPencil_frame_new");
+ RNA_def_function_ui_description(func, "Add a new grease pencil frame");
+ RNA_def_function_flag(func, FUNC_USE_REPORTS);
+ parm = RNA_def_int(func, "frame_number", 1, MINFRAME, MAXFRAME, "Frame Number", "The frame on which this sketch appears", MINFRAME, MAXFRAME);
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+ parm = RNA_def_pointer(func, "frame", "GPencilFrame", "", "The newly created frame");
+ RNA_def_function_return(func, parm);
+
+ func = RNA_def_function(srna, "remove", "rna_GPencil_frame_remove");
+ RNA_def_function_ui_description(func, "Remove a grease pencil frame");
+ RNA_def_function_flag(func, FUNC_USE_REPORTS);
+ parm = RNA_def_pointer(func, "frame", "GPencilFrame", "Frame", "The frame to remove");
+ RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
+
+ func = RNA_def_function(srna, "copy", "rna_GPencil_frame_copy");
+ RNA_def_function_ui_description(func, "Copy a grease pencil frame");
+ parm = RNA_def_pointer(func, "source", "GPencilFrame", "Source", "The source frame");
+ RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
+ parm = RNA_def_pointer(func, "copy", "GPencilFrame", "", "The newly copied frame");
+ RNA_def_function_return(func, parm);
}
static void rna_def_gpencil_layer(BlenderRNA *brna)
{
StructRNA *srna;
PropertyRNA *prop;
+
+ FunctionRNA *func;
srna = RNA_def_struct(brna, "GPencilLayer", NULL);
RNA_def_struct_sdna(srna, "bGPDlayer");
@@ -189,44 +447,47 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Info", "Layer name");
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_GPencilLayer_info_set");
RNA_def_struct_name_property(srna, prop);
-
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
+
/* Frames */
prop = RNA_def_property(srna, "frames", PROP_COLLECTION, PROP_NONE);
RNA_def_property_collection_sdna(prop, NULL, "frames", NULL);
RNA_def_property_struct_type(prop, "GPencilFrame");
RNA_def_property_ui_text(prop, "Frames", "Sketches for this layer on different frames");
-
+ rna_def_gpencil_frames_api(brna, prop);
+
/* Active Frame */
prop = RNA_def_property(srna, "active_frame", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "actframe");
RNA_def_property_ui_text(prop, "Active Frame", "Frame currently being displayed for this layer");
RNA_def_property_editable_func(prop, "rna_GPencilLayer_active_frame_editable");
-
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
+
/* Drawing Color */
- prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR);
+ prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_array(prop, 3);
RNA_def_property_range(prop, 0.0f, 1.0f);
RNA_def_property_ui_text(prop, "Color", "Color for all strokes in this layer");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
prop = RNA_def_property(srna, "alpha", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "color[3]");
RNA_def_property_range(prop, 0.3, 1.0f);
RNA_def_property_ui_text(prop, "Opacity", "Layer Opacity");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
/* Line Thickness */
prop = RNA_def_property(srna, "line_width", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "thickness");
RNA_def_property_range(prop, 1, 10);
RNA_def_property_ui_text(prop, "Thickness", "Thickness of strokes (in pixels)");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
/* Onion-Skinning */
prop = RNA_def_property(srna, "use_onion_skinning", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LAYER_ONIONSKIN);
RNA_def_property_ui_text(prop, "Onion Skinning", "Ghost frames on either side of frame");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
prop = RNA_def_property(srna, "ghost_range_max", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "gstep");
@@ -234,23 +495,23 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Max Ghost Range",
"Maximum number of frames on either side of the active frame to show "
"(0 = show the 'first' available sketch on either side)");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
/* Flags */
prop = RNA_def_property(srna, "hide", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LAYER_HIDE);
RNA_def_property_ui_text(prop, "Hide", "Set layer Visibility");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
prop = RNA_def_property(srna, "lock", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LAYER_LOCKED);
RNA_def_property_ui_text(prop, "Locked", "Protect layer from further editing and/or frame changes");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
prop = RNA_def_property(srna, "lock_frame", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LAYER_FRAMELOCK);
RNA_def_property_ui_text(prop, "Frame Locked", "Lock current frame displayed by layer");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
/* expose as layers.active */
#if 0
@@ -258,54 +519,56 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LAYER_ACTIVE);
RNA_def_property_boolean_funcs(prop, NULL, "rna_GPencilLayer_active_set");
RNA_def_property_ui_text(prop, "Active", "Set active layer for editing");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
#endif
prop = RNA_def_property(srna, "select", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LAYER_SELECT);
RNA_def_property_ui_text(prop, "Select", "Layer is selected for editing in the DopeSheet");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
/* XXX keep this option? */
prop = RNA_def_property(srna, "show_points", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LAYER_DRAWDEBUG);
RNA_def_property_ui_text(prop, "Show Points", "Draw the points which make up the strokes (for debugging purposes)");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update_runtime(prop, "rna_GPencil_update");
/* X-Ray */
prop = RNA_def_property(srna, "show_x_ray", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", GP_LAYER_NO_XRAY);
RNA_def_property_ui_text(prop, "X Ray", "Make the layer draw in front of objects");
- RNA_def_property_update(prop, NC_SCREEN | ND_GPENCIL, NULL);
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
+
+ func = RNA_def_function(srna, "clear", "rna_GPencil_layer_clear");
+ RNA_def_function_ui_description(func, "Remove all the grease pencil layer data");
}
-static void rna_def_gpencil_layers(BlenderRNA *brna, PropertyRNA *cprop)
+static void rna_def_gpencil_layers_api(BlenderRNA *brna, PropertyRNA *cprop)
{
StructRNA *srna;
PropertyRNA *prop;
-/* FunctionRNA *func; */
-/* PropertyRNA *parm; */
+ FunctionRNA *func;
+ PropertyRNA *parm;
RNA_def_property_srna(cprop, "GreasePencilLayers");
srna = RNA_def_struct(brna, "GreasePencilLayers", NULL);
RNA_def_struct_sdna(srna, "bGPdata");
RNA_def_struct_ui_text(srna, "Grease Pencil Layers", "Collection of grease pencil layers");
-#if 0
func = RNA_def_function(srna, "new", "rna_GPencil_layer_new");
- RNA_def_function_ui_description(func, "Add a new spline to the curve");
- parm = RNA_def_enum(func, "type", curve_type_items, CU_POLY, "", "type for the new spline");
+ RNA_def_function_ui_description(func, "Add a new grease pencil layer");
+ parm = RNA_def_string(func, "name", "GPencilLayer", MAX_NAME, "Name", "Name of the layer");
RNA_def_property_flag(parm, PROP_REQUIRED);
- parm = RNA_def_pointer(func, "spline", "Spline", "", "The newly created spline");
+ RNA_def_boolean(func, "set_active", 0, "Set Active", "Set the newly created layer to the active layer");
+ parm = RNA_def_pointer(func, "layer", "GPencilLayer", "", "The newly created layer");
RNA_def_function_return(func, parm);
func = RNA_def_function(srna, "remove", "rna_GPencil_layer_remove");
- RNA_def_function_ui_description(func, "Remove a spline from a curve");
+ RNA_def_function_ui_description(func, "Remove a grease pencil layer");
RNA_def_function_flag(func, FUNC_USE_REPORTS);
- parm = RNA_def_pointer(func, "spline", "Spline", "", "The spline to remove");
+ parm = RNA_def_pointer(func, "layer", "GPencilLayer", "", "The layer to remove");
RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
-#endif
prop = RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
RNA_def_property_struct_type(prop, "GreasePencil");
@@ -318,7 +581,8 @@ static void rna_def_gpencil_data(BlenderRNA *brna)
{
StructRNA *srna;
PropertyRNA *prop;
-
+ FunctionRNA *func;
+
static EnumPropertyItem draw_mode_items[] = {
{GP_DATA_VIEWALIGN, "CURSOR", 0, "Cursor", "Draw stroke at the 3D cursor"},
{0, "VIEW", 0, "View", "Stick stroke to the view "}, /* weird, GP_DATA_VIEWALIGN is inverted */
@@ -337,19 +601,22 @@ static void rna_def_gpencil_data(BlenderRNA *brna)
RNA_def_property_collection_sdna(prop, NULL, "layers", NULL);
RNA_def_property_struct_type(prop, "GPencilLayer");
RNA_def_property_ui_text(prop, "Layers", "");
- rna_def_gpencil_layers(brna, prop);
+ rna_def_gpencil_layers_api(brna, prop);
/* Flags */
prop = RNA_def_property(srna, "draw_mode", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag");
RNA_def_property_enum_items(prop, draw_mode_items);
RNA_def_property_ui_text(prop, "Draw Mode", "");
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
prop = RNA_def_property(srna, "use_stroke_endpoints", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_DATA_DEPTH_STROKE_ENDPOINTS);
RNA_def_property_ui_text(prop, "Only Endpoints", "Only use the first and last parts of the stroke for snapping");
+ RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
-
+ func = RNA_def_function(srna, "clear", "rna_GPencil_clear");
+ RNA_def_function_ui_description(func, "Remove all the grease pencil data");
}
/* --- */
diff --git a/source/blender/makesrna/intern/rna_image.c b/source/blender/makesrna/intern/rna_image.c
index 03e446c9d91..a77e93f6a56 100644
--- a/source/blender/makesrna/intern/rna_image.c
+++ b/source/blender/makesrna/intern/rna_image.c
@@ -42,6 +42,13 @@
#include "WM_types.h"
#include "WM_api.h"
+EnumPropertyItem image_generated_type_items[] = {
+ {IMA_GENTYPE_BLANK, "BLANK", 0, "Blank", "Generate a blank image"},
+ {IMA_GENTYPE_GRID, "UV_GRID", 0, "UV Grid", "Generated grid to test UV mappings"},
+ {IMA_GENTYPE_GRID_COLOR, "COLOR_GRID", 0, "Color Grid", "Generated improved UV grid to test UV mappings"},
+ {0, NULL, 0, NULL, NULL}
+};
+
static EnumPropertyItem image_source_items[] = {
{IMA_SRC_FILE, "FILE", 0, "Single Image", "Single image file"},
{IMA_SRC_SEQUENCE, "SEQUENCE", 0, "Image Sequence", "Multiple image files, as a sequence"},
@@ -140,7 +147,7 @@ static void rna_ImageUser_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *
}
-char *rna_ImageUser_path(PointerRNA *ptr)
+static char *rna_ImageUser_path(PointerRNA *ptr)
{
if (ptr->id.data) {
/* ImageUser *iuser= ptr->data; */
@@ -396,7 +403,6 @@ static void rna_def_imageuser(BlenderRNA *brna)
prop = RNA_def_property(srna, "frame_offset", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "offset");
- RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF);
RNA_def_property_ui_text(prop, "Offset", "Offset the number of the frame to use in the animation");
RNA_def_property_update(prop, 0, "rna_ImageUser_update");
@@ -436,12 +442,6 @@ static void rna_def_image(BlenderRNA *brna)
{IMA_TYPE_COMPOSITE, "COMPOSITING", 0, "Compositing", ""},
{0, NULL, 0, NULL, NULL}
};
- static const EnumPropertyItem prop_generated_type_items[] = {
- {0, "BLANK", 0, "Blank", "Generate a blank image"},
- {1, "UV_GRID", 0, "UV Grid", "Generated grid to test UV mappings"},
- {2, "COLOR_GRID", 0, "Color Grid", "Generated improved UV grid to test UV mappings"},
- {0, NULL, 0, NULL, NULL}
- };
static const EnumPropertyItem prop_mapping_items[] = {
{0, "UV", 0, "UV Coordinates", "Use UV coordinates for mapping the image"},
{IMA_REFLECT, "REFLECTION", 0, "Reflection", "Use reflection mapping for mapping the image"},
@@ -512,6 +512,11 @@ static void rna_def_image(BlenderRNA *brna)
"to avoid fringing for images with light backgrounds");
RNA_def_property_update(prop, NC_IMAGE | ND_DISPLAY, "rna_Image_free_update");
+ prop = RNA_def_property(srna, "view_as_render", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", IMA_VIEW_AS_RENDER);
+ RNA_def_property_ui_text(prop, "View as Render", "Apply render part of display transformation when displaying this image on the screen");
+ RNA_def_property_update(prop, NC_IMAGE | ND_DISPLAY, NULL);
+
prop = RNA_def_property(srna, "is_dirty", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_funcs(prop, "rna_Image_dirty_get", NULL);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
@@ -520,7 +525,7 @@ static void rna_def_image(BlenderRNA *brna)
/* generated image (image_generated_change_cb) */
prop = RNA_def_property(srna, "generated_type", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "gen_type");
- RNA_def_property_enum_items(prop, prop_generated_type_items);
+ RNA_def_property_enum_items(prop, image_generated_type_items);
RNA_def_property_ui_text(prop, "Generated Type", "Generated image type");
RNA_def_property_update(prop, NC_IMAGE | ND_DISPLAY, "rna_Image_generated_update");
@@ -651,6 +656,11 @@ static void rna_def_image(BlenderRNA *brna)
RNA_def_property_dynamic_array_funcs(prop, "rna_Image_pixels_get_length");
RNA_def_property_float_funcs(prop, "rna_Image_pixels_get", "rna_Image_pixels_set", NULL);
+ prop = RNA_def_property(srna, "colorspace_settings", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "colorspace_settings");
+ RNA_def_property_struct_type(prop, "ColorManagedColorspaceSettings");
+ RNA_def_property_ui_text(prop, "Color Space Settings", "Input color space settings");
+
RNA_api_image(srna);
}
diff --git a/source/blender/makesrna/intern/rna_image_api.c b/source/blender/makesrna/intern/rna_image_api.c
index fa3f8d69c47..7766dff4273 100644
--- a/source/blender/makesrna/intern/rna_image_api.c
+++ b/source/blender/makesrna/intern/rna_image_api.c
@@ -41,6 +41,8 @@
#include "BIF_gl.h"
+#include "rna_internal.h" /* own include */
+
#ifdef RNA_RUNTIME
#include "BKE_image.h"
@@ -50,6 +52,7 @@
#include "BKE_global.h" /* grr: G.main->name */
#include "IMB_imbuf.h"
+#include "IMB_colormanagement.h"
#include "BIF_gl.h"
#include "GPU_draw.h"
@@ -80,16 +83,20 @@ static void rna_Image_save_render(Image *image, bContext *C, ReportList *reports
BKE_reportf(reports, RPT_ERROR, "Couldn't acquire buffer from image");
}
else {
- /* temp swap out the color */
- const unsigned char imb_planes_back = ibuf->planes;
- const float dither_back = ibuf->dither;
- ibuf->planes = scene->r.im_format.planes;
- ibuf->dither = scene->r.dither_intensity;
- if (!BKE_imbuf_write(ibuf, path, &scene->r.im_format)) {
+ ImBuf *write_ibuf;
+
+ write_ibuf = IMB_colormanagement_imbuf_for_write(ibuf, TRUE, TRUE, &scene->view_settings,
+ &scene->display_settings, &scene->r.im_format);
+
+ write_ibuf->planes = scene->r.im_format.planes;
+ write_ibuf->dither = scene->r.dither_intensity;
+
+ if (!BKE_imbuf_write(write_ibuf, path, &scene->r.im_format)) {
BKE_reportf(reports, RPT_ERROR, "Couldn't write image: %s", path);
}
- ibuf->planes = imb_planes_back;
- ibuf->dither = dither_back;
+
+ if (write_ibuf != ibuf)
+ IMB_freeImBuf(write_ibuf);
}
BKE_image_release_ibuf(image, lock);
@@ -118,6 +125,8 @@ static void rna_Image_save(Image *image, ReportList *reports)
if (image->source == IMA_SRC_GENERATED)
image->source = IMA_SRC_FILE;
+ IMB_colormanagment_colorspace_from_ibuf_ftype(&image->colorspace_settings, ibuf);
+
ibuf->userflags &= ~IB_BITMAPDIRTY;
}
else {
diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h
index e8e40d307fb..ffc78ef8ca4 100644
--- a/source/blender/makesrna/intern/rna_internal.h
+++ b/source/blender/makesrna/intern/rna_internal.h
@@ -34,8 +34,14 @@
#define RNA_MAGIC ((int)~0)
+struct ColorBand;
struct ID;
struct IDProperty;
+struct Main;
+struct Mesh;
+struct Object;
+struct RenderEngine;
+struct ReportList;
struct SDNA;
struct Sequence;
@@ -259,6 +265,7 @@ void RNA_api_material(StructRNA *srna);
void RNA_api_mesh(struct StructRNA *srna);
void RNA_api_object(struct StructRNA *srna);
void RNA_api_object_base(struct StructRNA *srna);
+void RNA_api_pose(struct StructRNA *srna);
void RNA_api_pose_channel(struct StructRNA *srna);
void RNA_api_scene(struct StructRNA *srna);
void RNA_api_scene_render(struct StructRNA *srna);
@@ -352,7 +359,7 @@ typedef struct ArrayIterator {
void *free_ptr; /* will be freed if set */
int itemsize;
- /* array length with no skip functins applied, take care not to compare against index from animsys
+ /* array length with no skip functions applied, take care not to compare against index from animsys
* or python indices */
int length;
@@ -398,6 +405,22 @@ void rna_mtex_texture_slots_clear(struct ID *self, struct bContext *C, struct Re
int rna_IDMaterials_assign_int(struct PointerRNA *ptr, int key, const struct PointerRNA *assign_ptr);
+
+/* Internal functions that cycles uses so we need to declare (tsk tsk) */
+struct Mesh *rna_Object_to_mesh(struct Object *ob, struct ReportList *reports, struct Scene *sce, int apply_modifiers, int settings);
+void rna_Main_meshes_remove(struct Main *bmain, struct ReportList *reports, struct Mesh *mesh);
+void rna_Object_create_duplilist(struct Object *ob, struct ReportList *reports, struct Scene *sce, int settings);
+void rna_Object_free_duplilist(struct Object *ob);
+void rna_RenderLayer_rect_set(PointerRNA *ptr, const float *values);
+void rna_RenderPass_rect_set(PointerRNA *ptr, const float *values);
+int rna_Object_is_modified(struct Object *ob, struct Scene *scene, int settings);
+int rna_Object_is_deform_modified(struct Object *ob, struct Scene *scene, int settings);
+void rna_ColorRamp_eval(struct ColorBand *coba, float position, float color[4]);
+void rna_Scene_frame_set(struct Scene *scene, int frame, float subframe);
+
+void engine_tag_redraw(struct RenderEngine *engine);
+void engine_tag_update(struct RenderEngine *engine);
+
#endif /* __RNA_INTERNAL_H__ */
diff --git a/source/blender/makesrna/intern/rna_key.c b/source/blender/makesrna/intern/rna_key.c
index 5334c10c4c6..33bbaeec282 100644
--- a/source/blender/makesrna/intern/rna_key.c
+++ b/source/blender/makesrna/intern/rna_key.c
@@ -61,12 +61,12 @@ static Key *rna_ShapeKey_find_key(ID *id)
case ID_KE: return (Key *)id;
case ID_LT: return ((Lattice *)id)->key;
case ID_ME: return ((Mesh *)id)->key;
- case ID_OB: return ob_get_key((Object *)id);
+ case ID_OB: return BKE_key_from_object((Object *)id);
default: return NULL;
}
}
-void rna_ShapeKey_name_set(PointerRNA *ptr, const char *value)
+static void rna_ShapeKey_name_set(PointerRNA *ptr, const char *value)
{
KeyBlock *kb = ptr->data;
char oldname[sizeof(kb->name)];
@@ -360,7 +360,7 @@ static void rna_Key_update_data(Main *bmain, Scene *UNUSED(scene), PointerRNA *p
Object *ob;
for (ob = bmain->object.first; ob; ob = ob->id.next) {
- if (ob_get_key(ob) == key) {
+ if (BKE_key_from_object(ob) == key) {
DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_main_add_notifier(NC_OBJECT | ND_MODIFIER, ob);
}
diff --git a/source/blender/makesrna/intern/rna_lattice.c b/source/blender/makesrna/intern/rna_lattice.c
index 6e42b47afce..e4a29d9c674 100644
--- a/source/blender/makesrna/intern/rna_lattice.c
+++ b/source/blender/makesrna/intern/rna_lattice.c
@@ -224,6 +224,10 @@ static void rna_def_latticepoint(BlenderRNA *brna)
RNA_def_struct_ui_text(srna, "LatticePoint", "Point in the lattice grid");
RNA_def_struct_path_func(srna, "rna_LatticePoint_path");
+ prop = RNA_def_property(srna, "select", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "f1", 0);
+ RNA_def_property_ui_text(prop, "Point selected", "Selection status");
+
prop = RNA_def_property(srna, "co", PROP_FLOAT, PROP_TRANSLATION);
RNA_def_property_array(prop, 3);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
@@ -236,6 +240,12 @@ static void rna_def_latticepoint(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Deformed Location", "");
RNA_def_property_update(prop, 0, "rna_Lattice_update_data");
+ prop = RNA_def_property(srna, "weight_softbody", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "weight");
+ RNA_def_property_range(prop, 0.01f, 100.0f);
+ RNA_def_property_ui_text(prop, "Weight", "Softbody goal weight");
+ RNA_def_property_update(prop, 0, "rna_Lattice_update_data");
+
prop = RNA_def_property(srna, "groups", PROP_COLLECTION, PROP_NONE);
RNA_def_property_collection_funcs(prop, "rna_LatticePoint_groups_begin", "rna_iterator_array_next",
"rna_iterator_array_end", "rna_iterator_array_get",
@@ -316,7 +326,7 @@ static void rna_def_lattice(BlenderRNA *brna)
RNA_def_property_collection_funcs(prop, "rna_Lattice_points_begin", "rna_iterator_array_next",
"rna_iterator_array_end", "rna_iterator_array_get", NULL, NULL, NULL, NULL);
RNA_def_property_ui_text(prop, "Points", "Points of the lattice");
-
+
/* pointers */
rna_def_animdata_common(srna);
}
diff --git a/source/blender/makesrna/intern/rna_main.c b/source/blender/makesrna/intern/rna_main.c
index c98e1f3312b..74b3c431183 100644
--- a/source/blender/makesrna/intern/rna_main.c
+++ b/source/blender/makesrna/intern/rna_main.c
@@ -24,16 +24,15 @@
* \ingroup RNA
*/
-
#include <stdlib.h>
#include <string.h>
+#include "BLI_path_util.h"
+
#include "RNA_define.h"
#include "rna_internal.h"
-#include "BKE_utildefines.h"
-
#ifdef RNA_RUNTIME
#include "BKE_main.h"
@@ -255,7 +254,7 @@ static void rna_Main_movieclips_begin(CollectionPropertyIterator *iter, PointerR
static void rna_Main_masks_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
{
- Main *bmain = (Main*)ptr->data;
+ Main *bmain = (Main *)ptr->data;
rna_iterator_listbase_begin(iter, &bmain->mask, NULL);
}
diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c
index c702972b3b7..cd9b3965713 100644
--- a/source/blender/makesrna/intern/rna_main_api.c
+++ b/source/blender/makesrna/intern/rna_main_api.c
@@ -35,12 +35,13 @@
#include "DNA_ID.h"
+#include "BLI_path_util.h"
+
#include "RNA_define.h"
#include "RNA_access.h"
#include "RNA_enum_types.h"
-#include "rna_internal.h"
-#include "BKE_utildefines.h"
+#include "rna_internal.h"
#ifdef RNA_RUNTIME
@@ -70,6 +71,7 @@
#include "BKE_speaker.h"
#include "BKE_movieclip.h"
#include "BKE_mask.h"
+#include "BKE_gpencil.h"
#include "DNA_armature_types.h"
#include "DNA_camera_types.h"
@@ -91,16 +93,17 @@
#include "DNA_node_types.h"
#include "DNA_movieclip_types.h"
#include "DNA_mask_types.h"
+#include "DNA_gpencil_types.h"
#include "ED_screen.h"
-Camera *rna_Main_cameras_new(Main *UNUSED(bmain), const char *name)
+static Camera *rna_Main_cameras_new(Main *UNUSED(bmain), const char *name)
{
ID *id = BKE_camera_add(name);
id_us_min(id);
return (Camera *)id;
}
-void rna_Main_cameras_remove(Main *bmain, ReportList *reports, struct Camera *camera)
+static void rna_Main_cameras_remove(Main *bmain, ReportList *reports, struct Camera *camera)
{
if (ID_REAL_USERS(camera) <= 0)
BKE_libblock_free(&bmain->camera, camera);
@@ -111,11 +114,11 @@ void rna_Main_cameras_remove(Main *bmain, ReportList *reports, struct Camera *ca
/* XXX python now has invalid pointer? */
}
-Scene *rna_Main_scenes_new(Main *UNUSED(bmain), const char *name)
+static Scene *rna_Main_scenes_new(Main *UNUSED(bmain), const char *name)
{
return BKE_scene_add(name);
}
-void rna_Main_scenes_remove(Main *bmain, bContext *C, ReportList *reports, struct Scene *scene)
+static void rna_Main_scenes_remove(Main *bmain, bContext *C, ReportList *reports, struct Scene *scene)
{
/* don't call BKE_libblock_free(...) directly */
Scene *newscene;
@@ -135,11 +138,12 @@ void rna_Main_scenes_remove(Main *bmain, bContext *C, ReportList *reports, struc
BKE_scene_unlink(bmain, scene, newscene);
}
-Object *rna_Main_objects_new(Main *UNUSED(bmain), ReportList *reports, const char *name, ID *data)
+static Object *rna_Main_objects_new(Main *UNUSED(bmain), ReportList *reports, const char *name, ID *data)
{
Object *ob;
int type = OB_EMPTY;
if (data) {
+ /* keep in sync with OB_DATA_SUPPORT_ID() macro */
switch (GS(data->name)) {
case ID_ME:
type = OB_MESH;
@@ -188,7 +192,7 @@ Object *rna_Main_objects_new(Main *UNUSED(bmain), ReportList *reports, const cha
return ob;
}
-void rna_Main_objects_remove(Main *bmain, ReportList *reports, struct Object *object)
+static void rna_Main_objects_remove(Main *bmain, ReportList *reports, struct Object *object)
{
if (ID_REAL_USERS(object) <= 0) {
BKE_object_unlink(object); /* needed or ID pointers to this are not cleared */
@@ -200,13 +204,13 @@ void rna_Main_objects_remove(Main *bmain, ReportList *reports, struct Object *ob
}
}
-Material *rna_Main_materials_new(Main *UNUSED(bmain), const char *name)
+static Material *rna_Main_materials_new(Main *UNUSED(bmain), const char *name)
{
ID *id = (ID *)BKE_material_add(name);
id_us_min(id);
return (Material *)id;
}
-void rna_Main_materials_remove(Main *bmain, ReportList *reports, struct Material *material)
+static void rna_Main_materials_remove(Main *bmain, ReportList *reports, struct Material *material)
{
if (ID_REAL_USERS(material) <= 0)
BKE_libblock_free(&bmain->mat, material);
@@ -217,14 +221,14 @@ void rna_Main_materials_remove(Main *bmain, ReportList *reports, struct Material
/* XXX python now has invalid pointer? */
}
-bNodeTree *rna_Main_nodetree_new(Main *UNUSED(bmain), const char *name, int type)
+static bNodeTree *rna_Main_nodetree_new(Main *UNUSED(bmain), const char *name, int type)
{
bNodeTree *tree = ntreeAddTree(name, type, NODE_GROUP);
id_us_min(&tree->id);
return tree;
}
-void rna_Main_nodetree_remove(Main *bmain, ReportList *reports, struct bNodeTree *tree)
+static void rna_Main_nodetree_remove(Main *bmain, ReportList *reports, struct bNodeTree *tree)
{
if (ID_REAL_USERS(tree) <= 0)
BKE_libblock_free(&bmain->nodetree, tree);
@@ -235,7 +239,7 @@ void rna_Main_nodetree_remove(Main *bmain, ReportList *reports, struct bNodeTree
/* XXX python now has invalid pointer? */
}
-Mesh *rna_Main_meshes_new(Main *UNUSED(bmain), const char *name)
+static Mesh *rna_Main_meshes_new(Main *UNUSED(bmain), const char *name)
{
Mesh *me = BKE_mesh_add(name);
id_us_min(&me->id);
@@ -252,14 +256,14 @@ void rna_Main_meshes_remove(Main *bmain, ReportList *reports, Mesh *mesh)
/* XXX python now has invalid pointer? */
}
-Lamp *rna_Main_lamps_new(Main *UNUSED(bmain), const char *name, int type)
+static Lamp *rna_Main_lamps_new(Main *UNUSED(bmain), const char *name, int type)
{
Lamp *lamp = BKE_lamp_add(name);
lamp->type = type;
id_us_min(&lamp->id);
return lamp;
}
-void rna_Main_lamps_remove(Main *bmain, ReportList *reports, Lamp *lamp)
+static void rna_Main_lamps_remove(Main *bmain, ReportList *reports, Lamp *lamp)
{
if (ID_REAL_USERS(lamp) <= 0)
BKE_libblock_free(&bmain->lamp, lamp);
@@ -270,14 +274,14 @@ void rna_Main_lamps_remove(Main *bmain, ReportList *reports, Lamp *lamp)
/* XXX python now has invalid pointer? */
}
-Image *rna_Main_images_new(Main *UNUSED(bmain), const char *name, int width, int height, int alpha, int float_buffer)
+static Image *rna_Main_images_new(Main *UNUSED(bmain), const char *name, int width, int height, int alpha, int float_buffer)
{
float color[4] = {0.0, 0.0, 0.0, 1.0};
Image *image = BKE_image_add_generated(width, height, name, alpha ? 32 : 24, float_buffer, 0, color);
id_us_min(&image->id);
return image;
}
-Image *rna_Main_images_load(Main *UNUSED(bmain), ReportList *reports, const char *filepath)
+static Image *rna_Main_images_load(Main *UNUSED(bmain), ReportList *reports, const char *filepath)
{
Image *ima;
@@ -290,7 +294,7 @@ Image *rna_Main_images_load(Main *UNUSED(bmain), ReportList *reports, const char
return ima;
}
-void rna_Main_images_remove(Main *bmain, ReportList *reports, Image *image)
+static void rna_Main_images_remove(Main *bmain, ReportList *reports, Image *image)
{
if (ID_REAL_USERS(image) <= 0)
BKE_libblock_free(&bmain->image, image);
@@ -301,13 +305,13 @@ void rna_Main_images_remove(Main *bmain, ReportList *reports, Image *image)
/* XXX python now has invalid pointer? */
}
-Lattice *rna_Main_lattices_new(Main *UNUSED(bmain), const char *name)
+static Lattice *rna_Main_lattices_new(Main *UNUSED(bmain), const char *name)
{
Lattice *lt = BKE_lattice_add(name);
id_us_min(&lt->id);
return lt;
}
-void rna_Main_lattices_remove(Main *bmain, ReportList *reports, struct Lattice *lt)
+static void rna_Main_lattices_remove(Main *bmain, ReportList *reports, struct Lattice *lt)
{
if (ID_REAL_USERS(lt) <= 0)
BKE_libblock_free(&bmain->latt, lt);
@@ -316,13 +320,13 @@ void rna_Main_lattices_remove(Main *bmain, ReportList *reports, struct Lattice *
lt->id.name + 2, ID_REAL_USERS(lt));
}
-Curve *rna_Main_curves_new(Main *UNUSED(bmain), const char *name, int type)
+static Curve *rna_Main_curves_new(Main *UNUSED(bmain), const char *name, int type)
{
Curve *cu = BKE_curve_add(name, type);
id_us_min(&cu->id);
return cu;
}
-void rna_Main_curves_remove(Main *bmain, ReportList *reports, struct Curve *cu)
+static void rna_Main_curves_remove(Main *bmain, ReportList *reports, struct Curve *cu)
{
if (ID_REAL_USERS(cu) <= 0)
BKE_libblock_free(&bmain->curve, cu);
@@ -331,13 +335,13 @@ void rna_Main_curves_remove(Main *bmain, ReportList *reports, struct Curve *cu)
cu->id.name + 2, ID_REAL_USERS(cu));
}
-MetaBall *rna_Main_metaballs_new(Main *UNUSED(bmain), const char *name)
+static MetaBall *rna_Main_metaballs_new(Main *UNUSED(bmain), const char *name)
{
MetaBall *mb = BKE_mball_add(name);
id_us_min(&mb->id);
return mb;
}
-void rna_Main_metaballs_remove(Main *bmain, ReportList *reports, struct MetaBall *mb)
+static void rna_Main_metaballs_remove(Main *bmain, ReportList *reports, struct MetaBall *mb)
{
if (ID_REAL_USERS(mb) <= 0)
BKE_libblock_free(&bmain->mball, mb);
@@ -346,7 +350,7 @@ void rna_Main_metaballs_remove(Main *bmain, ReportList *reports, struct MetaBall
mb->id.name + 2, ID_REAL_USERS(mb));
}
-VFont *rna_Main_fonts_load(Main *bmain, ReportList *reports, const char *filepath)
+static VFont *rna_Main_fonts_load(Main *bmain, ReportList *reports, const char *filepath)
{
VFont *font;
@@ -360,7 +364,7 @@ VFont *rna_Main_fonts_load(Main *bmain, ReportList *reports, const char *filepat
return font;
}
-void rna_Main_fonts_remove(Main *bmain, ReportList *reports, VFont *vfont)
+static void rna_Main_fonts_remove(Main *bmain, ReportList *reports, VFont *vfont)
{
if (ID_REAL_USERS(vfont) <= 0)
BKE_libblock_free(&bmain->vfont, vfont);
@@ -371,14 +375,14 @@ void rna_Main_fonts_remove(Main *bmain, ReportList *reports, VFont *vfont)
/* XXX python now has invalid pointer? */
}
-Tex *rna_Main_textures_new(Main *UNUSED(bmain), const char *name, int type)
+static Tex *rna_Main_textures_new(Main *UNUSED(bmain), const char *name, int type)
{
Tex *tex = add_texture(name);
tex_set_type(tex, type);
id_us_min(&tex->id);
return tex;
}
-void rna_Main_textures_remove(Main *bmain, ReportList *reports, struct Tex *tex)
+static void rna_Main_textures_remove(Main *bmain, ReportList *reports, struct Tex *tex)
{
if (ID_REAL_USERS(tex) <= 0)
BKE_libblock_free(&bmain->tex, tex);
@@ -387,13 +391,13 @@ void rna_Main_textures_remove(Main *bmain, ReportList *reports, struct Tex *tex)
tex->id.name + 2, ID_REAL_USERS(tex));
}
-Brush *rna_Main_brushes_new(Main *UNUSED(bmain), const char *name)
+static Brush *rna_Main_brushes_new(Main *UNUSED(bmain), const char *name)
{
Brush *brush = BKE_brush_add(name);
id_us_min(&brush->id);
return brush;
}
-void rna_Main_brushes_remove(Main *bmain, ReportList *reports, struct Brush *brush)
+static void rna_Main_brushes_remove(Main *bmain, ReportList *reports, struct Brush *brush)
{
if (ID_REAL_USERS(brush) <= 0)
BKE_libblock_free(&bmain->brush, brush);
@@ -402,13 +406,13 @@ void rna_Main_brushes_remove(Main *bmain, ReportList *reports, struct Brush *bru
brush->id.name + 2, ID_REAL_USERS(brush));
}
-World *rna_Main_worlds_new(Main *UNUSED(bmain), const char *name)
+static World *rna_Main_worlds_new(Main *UNUSED(bmain), const char *name)
{
World *world = add_world(name);
id_us_min(&world->id);
return world;
}
-void rna_Main_worlds_remove(Main *bmain, ReportList *reports, struct World *world)
+static void rna_Main_worlds_remove(Main *bmain, ReportList *reports, struct World *world)
{
if (ID_REAL_USERS(world) <= 0)
BKE_libblock_free(&bmain->world, world);
@@ -417,24 +421,24 @@ void rna_Main_worlds_remove(Main *bmain, ReportList *reports, struct World *worl
world->id.name + 2, ID_REAL_USERS(world));
}
-Group *rna_Main_groups_new(Main *UNUSED(bmain), const char *name)
+static Group *rna_Main_groups_new(Main *UNUSED(bmain), const char *name)
{
return add_group(name);
}
-void rna_Main_groups_remove(Main *bmain, Group *group)
+static void rna_Main_groups_remove(Main *bmain, Group *group)
{
BKE_group_unlink(group);
BKE_libblock_free(&bmain->group, group);
/* XXX python now has invalid pointer? */
}
-Speaker *rna_Main_speakers_new(Main *UNUSED(bmain), const char *name)
+static Speaker *rna_Main_speakers_new(Main *UNUSED(bmain), const char *name)
{
Speaker *speaker = BKE_speaker_add(name);
id_us_min(&speaker->id);
return speaker;
}
-void rna_Main_speakers_remove(Main *bmain, ReportList *reports, Speaker *speaker)
+static void rna_Main_speakers_remove(Main *bmain, ReportList *reports, Speaker *speaker)
{
if (ID_REAL_USERS(speaker) <= 0)
BKE_libblock_free(&bmain->speaker, speaker);
@@ -445,18 +449,18 @@ void rna_Main_speakers_remove(Main *bmain, ReportList *reports, Speaker *speaker
/* XXX python now has invalid pointer? */
}
-Text *rna_Main_texts_new(Main *UNUSED(bmain), const char *name)
+static Text *rna_Main_texts_new(Main *UNUSED(bmain), const char *name)
{
return BKE_text_add(name);
}
-void rna_Main_texts_remove(Main *bmain, Text *text)
+static void rna_Main_texts_remove(Main *bmain, Text *text)
{
BKE_text_unlink(bmain, text);
BKE_libblock_free(&bmain->text, text);
/* XXX python now has invalid pointer? */
}
-Text *rna_Main_texts_load(Main *bmain, ReportList *reports, const char *filepath)
+static Text *rna_Main_texts_load(Main *bmain, ReportList *reports, const char *filepath)
{
Text *txt;
@@ -470,13 +474,13 @@ Text *rna_Main_texts_load(Main *bmain, ReportList *reports, const char *filepath
return txt;
}
-bArmature *rna_Main_armatures_new(Main *UNUSED(bmain), const char *name)
+static bArmature *rna_Main_armatures_new(Main *UNUSED(bmain), const char *name)
{
bArmature *arm = BKE_armature_add(name);
id_us_min(&arm->id);
return arm;
}
-void rna_Main_armatures_remove(Main *bmain, ReportList *reports, bArmature *arm)
+static void rna_Main_armatures_remove(Main *bmain, ReportList *reports, bArmature *arm)
{
if (ID_REAL_USERS(arm) <= 0)
BKE_libblock_free(&bmain->armature, arm);
@@ -487,14 +491,14 @@ void rna_Main_armatures_remove(Main *bmain, ReportList *reports, bArmature *arm)
/* XXX python now has invalid pointer? */
}
-bAction *rna_Main_actions_new(Main *UNUSED(bmain), const char *name)
+static bAction *rna_Main_actions_new(Main *UNUSED(bmain), const char *name)
{
bAction *act = add_empty_action(name);
id_us_min(&act->id);
act->id.flag &= ~LIB_FAKEUSER;
return act;
}
-void rna_Main_actions_remove(Main *bmain, ReportList *reports, bAction *act)
+static void rna_Main_actions_remove(Main *bmain, ReportList *reports, bAction *act)
{
if (ID_REAL_USERS(act) <= 0)
BKE_libblock_free(&bmain->action, act);
@@ -505,13 +509,13 @@ void rna_Main_actions_remove(Main *bmain, ReportList *reports, bAction *act)
/* XXX python now has invalid pointer? */
}
-ParticleSettings *rna_Main_particles_new(Main *bmain, const char *name)
+static ParticleSettings *rna_Main_particles_new(Main *bmain, const char *name)
{
ParticleSettings *part = psys_new_settings(name, bmain);
id_us_min(&part->id);
return part;
}
-void rna_Main_particles_remove(Main *bmain, ReportList *reports, ParticleSettings *part)
+static void rna_Main_particles_remove(Main *bmain, ReportList *reports, ParticleSettings *part)
{
if (ID_REAL_USERS(part) <= 0)
BKE_libblock_free(&bmain->particle, part);
@@ -522,7 +526,7 @@ void rna_Main_particles_remove(Main *bmain, ReportList *reports, ParticleSetting
/* XXX python now has invalid pointer? */
}
-MovieClip *rna_Main_movieclip_load(Main *UNUSED(bmain), ReportList *reports, const char *filepath)
+static MovieClip *rna_Main_movieclip_load(Main *UNUSED(bmain), ReportList *reports, const char *filepath)
{
MovieClip *clip;
@@ -536,14 +540,14 @@ MovieClip *rna_Main_movieclip_load(Main *UNUSED(bmain), ReportList *reports, con
return clip;
}
-void rna_Main_movieclips_remove(Main *bmain, MovieClip *clip)
+static void rna_Main_movieclips_remove(Main *bmain, MovieClip *clip)
{
BKE_movieclip_unlink(bmain, clip);
BKE_libblock_free(&bmain->movieclip, clip);
/* XXX python now has invalid pointer? */
}
-Mask *rna_Main_mask_new(Main *UNUSED(bmain), const char *name)
+static Mask *rna_Main_mask_new(Main *UNUSED(bmain), const char *name)
{
Mask *mask;
@@ -552,44 +556,57 @@ Mask *rna_Main_mask_new(Main *UNUSED(bmain), const char *name)
return mask;
}
-void rna_Main_masks_remove(Main *bmain, Mask *mask)
+static void rna_Main_masks_remove(Main *bmain, Mask *mask)
{
- BKE_mask_unlink(bmain, mask);
+ BKE_mask_free(bmain, mask);
BKE_libblock_free(&bmain->mask, mask);
/* XXX python now has invalid pointer? */
}
+static void rna_Main_grease_pencil_remove(Main *bmain, ReportList *reports, bGPdata *gpd)
+{
+ if (ID_REAL_USERS(gpd) <= 0) {
+ BKE_gpencil_free(gpd);
+ BKE_libblock_free(&bmain->gpencil, gpd);
+ }
+ else
+ BKE_reportf(reports, RPT_ERROR, "Grease Pencil \"%s\" must have zero users to be removed, found %d",
+ gpd->id.name + 2, ID_REAL_USERS(gpd));
+
+ /* XXX python now has invalid pointer? */
+}
+
/* tag functions, all the same */
-void rna_Main_cameras_tag(Main *bmain, int value) { tag_main_lb(&bmain->camera, value); }
-void rna_Main_scenes_tag(Main *bmain, int value) { tag_main_lb(&bmain->scene, value); }
-void rna_Main_objects_tag(Main *bmain, int value) { tag_main_lb(&bmain->object, value); }
-void rna_Main_materials_tag(Main *bmain, int value) { tag_main_lb(&bmain->mat, value); }
-void rna_Main_node_groups_tag(Main *bmain, int value) { tag_main_lb(&bmain->nodetree, value); }
-void rna_Main_meshes_tag(Main *bmain, int value) { tag_main_lb(&bmain->mesh, value); }
-void rna_Main_lamps_tag(Main *bmain, int value) { tag_main_lb(&bmain->lamp, value); }
-void rna_Main_libraries_tag(Main *bmain, int value) { tag_main_lb(&bmain->library, value); }
-void rna_Main_screens_tag(Main *bmain, int value) { tag_main_lb(&bmain->screen, value); }
-void rna_Main_window_managers_tag(Main *bmain, int value) { tag_main_lb(&bmain->wm, value); }
-void rna_Main_images_tag(Main *bmain, int value) { tag_main_lb(&bmain->image, value); }
-void rna_Main_lattices_tag(Main *bmain, int value) { tag_main_lb(&bmain->latt, value); }
-void rna_Main_curves_tag(Main *bmain, int value) { tag_main_lb(&bmain->curve, value); }
-void rna_Main_metaballs_tag(Main *bmain, int value) { tag_main_lb(&bmain->mball, value); }
-void rna_Main_fonts_tag(Main *bmain, int value) { tag_main_lb(&bmain->vfont, value); }
-void rna_Main_textures_tag(Main *bmain, int value) { tag_main_lb(&bmain->tex, value); }
-void rna_Main_brushes_tag(Main *bmain, int value) { tag_main_lb(&bmain->brush, value); }
-void rna_Main_worlds_tag(Main *bmain, int value) { tag_main_lb(&bmain->world, value); }
-void rna_Main_groups_tag(Main *bmain, int value) { tag_main_lb(&bmain->group, value); }
-void rna_Main_shape_keys_tag(Main *bmain, int value) { tag_main_lb(&bmain->key, value); }
-void rna_Main_scripts_tag(Main *bmain, int value) { tag_main_lb(&bmain->script, value); }
-void rna_Main_texts_tag(Main *bmain, int value) { tag_main_lb(&bmain->text, value); }
-void rna_Main_speakers_tag(Main *bmain, int value) { tag_main_lb(&bmain->speaker, value); }
-void rna_Main_sounds_tag(Main *bmain, int value) { tag_main_lb(&bmain->sound, value); }
-void rna_Main_armatures_tag(Main *bmain, int value) { tag_main_lb(&bmain->armature, value); }
-void rna_Main_actions_tag(Main *bmain, int value) { tag_main_lb(&bmain->action, value); }
-void rna_Main_particles_tag(Main *bmain, int value) { tag_main_lb(&bmain->particle, value); }
-void rna_Main_gpencil_tag(Main *bmain, int value) { tag_main_lb(&bmain->gpencil, value); }
-void rna_Main_movieclips_tag(Main *bmain, int value) { tag_main_lb(&bmain->movieclip, value); }
-void rna_Main_masks_tag(Main *bmain, int value) { tag_main_lb(&bmain->mask, value); }
+static void rna_Main_cameras_tag(Main *bmain, int value) { tag_main_lb(&bmain->camera, value); }
+static void rna_Main_scenes_tag(Main *bmain, int value) { tag_main_lb(&bmain->scene, value); }
+static void rna_Main_objects_tag(Main *bmain, int value) { tag_main_lb(&bmain->object, value); }
+static void rna_Main_materials_tag(Main *bmain, int value) { tag_main_lb(&bmain->mat, value); }
+static void rna_Main_node_groups_tag(Main *bmain, int value) { tag_main_lb(&bmain->nodetree, value); }
+static void rna_Main_meshes_tag(Main *bmain, int value) { tag_main_lb(&bmain->mesh, value); }
+static void rna_Main_lamps_tag(Main *bmain, int value) { tag_main_lb(&bmain->lamp, value); }
+static void rna_Main_libraries_tag(Main *bmain, int value) { tag_main_lb(&bmain->library, value); }
+static void rna_Main_screens_tag(Main *bmain, int value) { tag_main_lb(&bmain->screen, value); }
+static void rna_Main_window_managers_tag(Main *bmain, int value) { tag_main_lb(&bmain->wm, value); }
+static void rna_Main_images_tag(Main *bmain, int value) { tag_main_lb(&bmain->image, value); }
+static void rna_Main_lattices_tag(Main *bmain, int value) { tag_main_lb(&bmain->latt, value); }
+static void rna_Main_curves_tag(Main *bmain, int value) { tag_main_lb(&bmain->curve, value); }
+static void rna_Main_metaballs_tag(Main *bmain, int value) { tag_main_lb(&bmain->mball, value); }
+static void rna_Main_fonts_tag(Main *bmain, int value) { tag_main_lb(&bmain->vfont, value); }
+static void rna_Main_textures_tag(Main *bmain, int value) { tag_main_lb(&bmain->tex, value); }
+static void rna_Main_brushes_tag(Main *bmain, int value) { tag_main_lb(&bmain->brush, value); }
+static void rna_Main_worlds_tag(Main *bmain, int value) { tag_main_lb(&bmain->world, value); }
+static void rna_Main_groups_tag(Main *bmain, int value) { tag_main_lb(&bmain->group, value); }
+// static void rna_Main_shape_keys_tag(Main *bmain, int value) { tag_main_lb(&bmain->key, value); }
+// static void rna_Main_scripts_tag(Main *bmain, int value) { tag_main_lb(&bmain->script, value); }
+static void rna_Main_texts_tag(Main *bmain, int value) { tag_main_lb(&bmain->text, value); }
+static void rna_Main_speakers_tag(Main *bmain, int value) { tag_main_lb(&bmain->speaker, value); }
+static void rna_Main_sounds_tag(Main *bmain, int value) { tag_main_lb(&bmain->sound, value); }
+static void rna_Main_armatures_tag(Main *bmain, int value) { tag_main_lb(&bmain->armature, value); }
+static void rna_Main_actions_tag(Main *bmain, int value) { tag_main_lb(&bmain->action, value); }
+static void rna_Main_particles_tag(Main *bmain, int value) { tag_main_lb(&bmain->particle, value); }
+static void rna_Main_gpencil_tag(Main *bmain, int value) { tag_main_lb(&bmain->gpencil, value); }
+static void rna_Main_movieclips_tag(Main *bmain, int value) { tag_main_lb(&bmain->movieclip, value); }
+static void rna_Main_masks_tag(Main *bmain, int value) { tag_main_lb(&bmain->mask, value); }
static int rna_Main_cameras_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_CA); }
static int rna_Main_scenes_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_SCE); }
@@ -633,6 +650,8 @@ void RNA_api_main(StructRNA *srna)
RNA_def_property_flag(parm, PROP_REQUIRED);
parm = RNA_def_pointer(func, "image", "Image", "", "New image");
RNA_def_function_return(func, parm);
+#else
+ (void)srna;
#endif
}
@@ -1505,6 +1524,20 @@ void RNA_def_main_gpencil(BlenderRNA *brna, PropertyRNA *cprop)
parm = RNA_def_boolean(func, "value", 0, "Value", "");
RNA_def_property_flag(parm, PROP_REQUIRED);
+ func = RNA_def_function(srna, "new", "gpencil_data_addnew");
+ RNA_def_function_flag(func, FUNC_NO_SELF);
+ parm = RNA_def_string(func, "name", "GreasePencil", 0, "", "New name for the datablock");
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+ /* return type */
+ parm = RNA_def_pointer(func, "grease_pencil", "GreasePencil", "", "New grease pencil datablock");
+ RNA_def_function_return(func, parm);
+
+ func = RNA_def_function(srna, "remove", "rna_Main_grease_pencil_remove");
+ RNA_def_function_flag(func, FUNC_USE_REPORTS);
+ RNA_def_function_ui_description(func, "Remove a grease pencil instance from the current blendfile");
+ parm = RNA_def_pointer(func, "grease_pencil", "GreasePencil", "", "Grease Pencil to remove");
+ RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
+
prop = RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_boolean_funcs(prop, "rna_Main_gpencil_is_updated_get", NULL);
diff --git a/source/blender/makesrna/intern/rna_mask.c b/source/blender/makesrna/intern/rna_mask.c
index b879d2b19f7..97d9cc961ef 100644
--- a/source/blender/makesrna/intern/rna_mask.c
+++ b/source/blender/makesrna/intern/rna_mask.c
@@ -35,6 +35,7 @@
#include "BKE_tracking.h"
#include "RNA_define.h"
+#include "RNA_enum_types.h"
#include "rna_internal.h"
@@ -107,21 +108,21 @@ static void rna_Mask_update_parent(Main *bmain, Scene *scene, PointerRNA *ptr)
/* note: this function exists only to avoid id refcounting */
static void rna_MaskParent_id_set(PointerRNA *ptr, PointerRNA value)
{
- MaskParent *mpar = (MaskParent*) ptr->data;
+ MaskParent *mpar = (MaskParent *) ptr->data;
mpar->id = value.data;
}
static StructRNA *rna_MaskParent_id_typef(PointerRNA *ptr)
{
- MaskParent *mpar = (MaskParent*) ptr->data;
+ MaskParent *mpar = (MaskParent *) ptr->data;
return ID_code_to_RNA_type(mpar->id_type);
}
static void rna_MaskParent_id_type_set(PointerRNA *ptr, int value)
{
- MaskParent *mpar = (MaskParent*) ptr->data;
+ MaskParent *mpar = (MaskParent *) ptr->data;
/* change ID-type to the new type */
mpar->id_type = value;
@@ -192,7 +193,7 @@ static void rna_MaskLayer_splines_begin(CollectionPropertyIterator *iter, Pointe
rna_iterator_listbase_begin(iter, &masklay->splines, NULL);
}
-void rna_MaskLayer_name_set(PointerRNA *ptr, const char *value)
+static void rna_MaskLayer_name_set(PointerRNA *ptr, const char *value)
{
Mask *mask = (Mask *)ptr->id.data;
MaskLayer *masklay = (MaskLayer *)ptr->data;
@@ -247,67 +248,49 @@ static void rna_MaskLayer_active_spline_point_set(PointerRNA *ptr, PointerRNA va
static void rna_MaskSplinePoint_handle1_get(PointerRNA *ptr, float *values)
{
- MaskSplinePoint *point = (MaskSplinePoint*) ptr->data;
+ MaskSplinePoint *point = (MaskSplinePoint *) ptr->data;
BezTriple *bezt = &point->bezt;
-
- values[0] = bezt->vec[0][0];
- values[1] = bezt->vec[0][1];
- values[2] = bezt->vec[0][2];
+ copy_v2_v2(values, bezt->vec[0]);
}
static void rna_MaskSplinePoint_handle1_set(PointerRNA *ptr, const float *values)
{
- MaskSplinePoint *point = (MaskSplinePoint*) ptr->data;
+ MaskSplinePoint *point = (MaskSplinePoint *) ptr->data;
BezTriple *bezt = &point->bezt;
-
- bezt->vec[0][0] = values[0];
- bezt->vec[0][1] = values[1];
- bezt->vec[0][2] = values[2];
+ copy_v2_v2(bezt->vec[0], values);
}
static void rna_MaskSplinePoint_handle2_get(PointerRNA *ptr, float *values)
{
- MaskSplinePoint *point = (MaskSplinePoint*) ptr->data;
+ MaskSplinePoint *point = (MaskSplinePoint *) ptr->data;
BezTriple *bezt = &point->bezt;
-
- values[0] = bezt->vec[2][0];
- values[1] = bezt->vec[2][1];
- values[2] = bezt->vec[2][2];
+ copy_v2_v2(values, bezt->vec[2]);
}
static void rna_MaskSplinePoint_handle2_set(PointerRNA *ptr, const float *values)
{
- MaskSplinePoint *point = (MaskSplinePoint*) ptr->data;
+ MaskSplinePoint *point = (MaskSplinePoint *) ptr->data;
BezTriple *bezt = &point->bezt;
-
- bezt->vec[2][0] = values[0];
- bezt->vec[2][1] = values[1];
- bezt->vec[2][2] = values[2];
+ copy_v2_v2(bezt->vec[2], values);
}
static void rna_MaskSplinePoint_ctrlpoint_get(PointerRNA *ptr, float *values)
{
- MaskSplinePoint *point = (MaskSplinePoint*) ptr->data;
+ MaskSplinePoint *point = (MaskSplinePoint *) ptr->data;
BezTriple *bezt = &point->bezt;
-
- values[0] = bezt->vec[1][0];
- values[1] = bezt->vec[1][1];
- values[2] = bezt->vec[1][2];
+ copy_v2_v2(values, bezt->vec[1]);
}
static void rna_MaskSplinePoint_ctrlpoint_set(PointerRNA *ptr, const float *values)
{
- MaskSplinePoint *point = (MaskSplinePoint*) ptr->data;
+ MaskSplinePoint *point = (MaskSplinePoint *) ptr->data;
BezTriple *bezt = &point->bezt;
-
- bezt->vec[1][0] = values[0];
- bezt->vec[1][1] = values[1];
- bezt->vec[1][2] = values[2];
+ copy_v2_v2(bezt->vec[1], values);
}
static int rna_MaskSplinePoint_handle_type_get(PointerRNA *ptr)
{
- MaskSplinePoint *point = (MaskSplinePoint*) ptr->data;
+ MaskSplinePoint *point = (MaskSplinePoint *) ptr->data;
BezTriple *bezt = &point->bezt;
return bezt->h1;
@@ -315,7 +298,7 @@ static int rna_MaskSplinePoint_handle_type_get(PointerRNA *ptr)
static void rna_MaskSplinePoint_handle_type_set(PointerRNA *ptr, int value)
{
- MaskSplinePoint *point = (MaskSplinePoint*) ptr->data;
+ MaskSplinePoint *point = (MaskSplinePoint *) ptr->data;
BezTriple *bezt = &point->bezt;
bezt->h1 = bezt->h2 = value;
@@ -323,7 +306,7 @@ static void rna_MaskSplinePoint_handle_type_set(PointerRNA *ptr, int value)
/* ** API ** */
-static MaskLayer *rna_Mask_layer_new(Mask *mask, const char *name)
+static MaskLayer *rna_Mask_layers_new(Mask *mask, const char *name)
{
MaskLayer *masklay = BKE_mask_layer_new(mask, name);
@@ -332,16 +315,28 @@ static MaskLayer *rna_Mask_layer_new(Mask *mask, const char *name)
return masklay;
}
-void rna_Mask_layer_remove(Mask *mask, MaskLayer *masklay)
+static void rna_Mask_layers_remove(Mask *mask, ReportList *reports, MaskLayer *masklay)
{
+ if (BLI_findindex(&mask->masklayers, masklay) == -1) {
+ BKE_reportf(reports, RPT_ERROR, "MaskLayer '%s' not found in mask '%s'", masklay->name, mask->id.name + 2);
+ return;
+ }
+
BKE_mask_layer_remove(mask, masklay);
WM_main_add_notifier(NC_MASK | NA_EDITED, mask);
}
+static void rna_Mask_layers_clear(Mask *mask)
+{
+ BKE_mask_layer_free_list(&mask->masklayers);
+
+ WM_main_add_notifier(NC_MASK | NA_EDITED, mask);
+}
+
static void rna_MaskLayer_spline_add(ID *id, MaskLayer *masklay, int number)
{
- Mask *mask = (Mask*) id;
+ Mask *mask = (Mask *) id;
int i;
for (i = 0; i < number; i++)
@@ -466,19 +461,19 @@ static void rna_def_maskSplinePoint(BlenderRNA *brna)
/* Vector values */
prop = RNA_def_property(srna, "handle_left", PROP_FLOAT, PROP_TRANSLATION);
- RNA_def_property_array(prop, 3);
+ RNA_def_property_array(prop, 2);
RNA_def_property_float_funcs(prop, "rna_MaskSplinePoint_handle1_get", "rna_MaskSplinePoint_handle1_set", NULL);
RNA_def_property_ui_text(prop, "Handle 1", "Coordinates of the first handle");
RNA_def_property_update(prop, 0, "rna_Mask_update_data");
prop = RNA_def_property(srna, "co", PROP_FLOAT, PROP_TRANSLATION);
- RNA_def_property_array(prop, 3);
+ RNA_def_property_array(prop, 2);
RNA_def_property_float_funcs(prop, "rna_MaskSplinePoint_ctrlpoint_get", "rna_MaskSplinePoint_ctrlpoint_set", NULL);
RNA_def_property_ui_text(prop, "Control Point", "Coordinates of the control point");
RNA_def_property_update(prop, 0, "rna_Mask_update_data");
prop = RNA_def_property(srna, "handle_right", PROP_FLOAT, PROP_TRANSLATION);
- RNA_def_property_array(prop, 3);
+ RNA_def_property_array(prop, 2);
RNA_def_property_float_funcs(prop, "rna_MaskSplinePoint_handle2_get", "rna_MaskSplinePoint_handle2_set", NULL);
RNA_def_property_ui_text(prop, "Handle 2", "Coordinates of the second handle");
RNA_def_property_update(prop, 0, "rna_Mask_update_data");
@@ -545,6 +540,12 @@ static void rna_def_maskSpline(BlenderRNA *brna)
{0, NULL, 0, NULL, NULL}
};
+ static EnumPropertyItem spline_offset_mode_items[] = {
+ {MASK_SPLINE_OFFSET_EVEN, "EVEN", 0, "Even", "Calculate even feather offset"},
+ {MASK_SPLINE_OFFSET_SMOOTH, "SMOOTH", 0, "Smooth", "Calculate feather offset as a second curve"},
+ {0, NULL, 0, NULL, NULL}
+ };
+
StructRNA *srna;
PropertyRNA *prop;
@@ -553,6 +554,13 @@ static void rna_def_maskSpline(BlenderRNA *brna)
srna = RNA_def_struct(brna, "MaskSpline", NULL);
RNA_def_struct_ui_text(srna, "Mask spline", "Single spline used for defining mask shape");
+ /* offset mode */
+ prop = RNA_def_property(srna, "offset_mode", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "offset_mode");
+ RNA_def_property_enum_items(prop, spline_offset_mode_items);
+ RNA_def_property_ui_text(prop, "Feather Offset", "The method used for calculating the feather offset");
+ RNA_def_property_update(prop, 0, "rna_Mask_update_data");
+
/* weight interpolation */
prop = RNA_def_property(srna, "weight_interpolation", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "weight_interp");
@@ -565,14 +573,35 @@ static void rna_def_maskSpline(BlenderRNA *brna)
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", MASK_SPLINE_CYCLIC);
RNA_def_property_ui_text(prop, "Cyclic", "Make this spline a closed loop");
- RNA_def_property_update(prop, 0, "rna_Mask_update_data");
+ RNA_def_property_update(prop, NC_MASK | NA_EDITED, "rna_Mask_update_data");
+
+ /* fill */
+ prop = RNA_def_property(srna, "use_fill", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", MASK_SPLINE_NOFILL);
+ RNA_def_property_ui_text(prop, "Fill", "Make this spline filled");
+ RNA_def_property_update(prop, NC_MASK | NA_EDITED, "rna_Mask_update_data");
+
+ /* self-intersection check */
+ prop = RNA_def_property(srna, "use_self_intersection_check", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", MASK_SPLINE_NOINTERSECT);
+ RNA_def_property_ui_text(prop, "Self Intersection Check", "Prevent feather from self-intersections");
+ RNA_def_property_update(prop, NC_MASK | NA_EDITED, "rna_Mask_update_data");
}
static void rna_def_mask_layer(BlenderRNA *brna)
{
static EnumPropertyItem masklay_blend_mode_items[] = {
+ {MASK_BLEND_MERGE_ADD, "MERGE_ADD", 0, "Merge Add", ""},
+ {MASK_BLEND_MERGE_SUBTRACT, "MERGE_SUBTRACT", 0, "Merge Subtract", ""},
{MASK_BLEND_ADD, "ADD", 0, "Add", ""},
{MASK_BLEND_SUBTRACT, "SUBTRACT", 0, "Subtract", ""},
+ {MASK_BLEND_LIGHTEN, "LIGHTEN", 0, "Lighten", ""},
+ {MASK_BLEND_DARKEN, "DARKEN", 0, "Darken", ""},
+ {MASK_BLEND_MUL, "MUL", 0, "Multiply", ""},
+ {MASK_BLEND_REPLACE, "REPLACE", 0, "Replace", ""},
+ {MASK_BLEND_DIFFERENCE, "DIFFERENCE", 0, "Difference", ""},
{0, NULL, 0, NULL, NULL}
};
@@ -629,7 +658,7 @@ static void rna_def_mask_layer(BlenderRNA *brna)
/* render settings */
prop = RNA_def_property(srna, "alpha", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "alpha");
- RNA_def_property_range(prop, 0.0, 1.0f);
+ RNA_def_property_ui_range(prop, 0.0f, 1.0f, 0.1, 3);
RNA_def_property_ui_text(prop, "Opacity", "Render Opacity");
RNA_def_property_update(prop, NC_MASK | NA_EDITED, NULL);
@@ -646,6 +675,12 @@ static void rna_def_mask_layer(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Restrict View", "Invert the mask black/white");
RNA_def_property_update(prop, NC_MASK | NA_EDITED, NULL);
+ prop = RNA_def_property(srna, "falloff", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "falloff");
+ RNA_def_property_enum_items(prop, proportional_falloff_curve_only_items);
+ RNA_def_property_ui_text(prop, "Falloff", "Falloff type the feather");
+ RNA_def_property_update(prop, NC_MASK | NA_EDITED, NULL);
+
}
static void rna_def_masklayers(BlenderRNA *brna, PropertyRNA *cprop)
@@ -661,16 +696,21 @@ static void rna_def_masklayers(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_struct_sdna(srna, "Mask");
RNA_def_struct_ui_text(srna, "Mask Layers", "Collection of layers used by mask");
- func = RNA_def_function(srna, "new", "rna_Mask_layer_new");
+ func = RNA_def_function(srna, "new", "rna_Mask_layers_new");
RNA_def_function_ui_description(func, "Add layer to this mask");
RNA_def_string(func, "name", "", 0, "Name", "Name of new layer");
parm = RNA_def_pointer(func, "layer", "MaskLayer", "", "New mask layer");
RNA_def_function_return(func, parm);
- func = RNA_def_function(srna, "remove", "rna_Mask_layer_remove");
+ func = RNA_def_function(srna, "remove", "rna_Mask_layers_remove");
+ RNA_def_function_flag(func, FUNC_USE_REPORTS);
RNA_def_function_ui_description(func, "Remove layer from this mask");
RNA_def_pointer(func, "layer", "MaskLayer", "", "Shape to be removed");
+ /* clear all layers */
+ func = RNA_def_function(srna, "clear", "rna_Mask_layers_clear");
+ RNA_def_function_ui_description(func, "Remove all mask layers");
+
/* active layer */
prop = RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
RNA_def_property_struct_type(prop, "MaskLayer");
@@ -712,7 +752,7 @@ static void rna_def_mask(BlenderRNA *brna)
RNA_def_property_int_funcs(prop, NULL, "rna_Mask_start_frame_set", NULL);
RNA_def_property_range(prop, MINFRAME, MAXFRAME);
RNA_def_property_ui_text(prop, "Start Frame", "First frame of the mask (used for sequencer)");
- RNA_def_property_update(prop, NC_SCENE | ND_FRAME_RANGE, NULL);
+ RNA_def_property_update(prop, NC_MASK | ND_DRAW, NULL);
prop = RNA_def_property(srna, "frame_end", PROP_INT, PROP_TIME);
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
@@ -720,7 +760,7 @@ static void rna_def_mask(BlenderRNA *brna)
RNA_def_property_int_funcs(prop, NULL, "rna_Mask_end_frame_set", NULL);
RNA_def_property_range(prop, MINFRAME, MAXFRAME);
RNA_def_property_ui_text(prop, "End Frame", "Final frame of the mask (used for sequencer)");
- RNA_def_property_update(prop, NC_SCENE | ND_FRAME_RANGE, NULL);
+ RNA_def_property_update(prop, NC_MASK | ND_DRAW, NULL);
/* pointers */
rna_def_animdata_common(srna);
diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c
index 4523858d639..96529de074b 100644
--- a/source/blender/makesrna/intern/rna_material.c
+++ b/source/blender/makesrna/intern/rna_material.c
@@ -45,7 +45,6 @@ static EnumPropertyItem prop_texture_coordinates_items[] = {
{TEXCO_ORCO, "ORCO", 0, "Generated", "Use the original undeformed coordinates of the object"},
{TEXCO_STRAND, "STRAND", 0, "Strand / Particle",
"Use normalized strand texture coordinate (1D) or particle age (X) and trail position (Y)"},
- {TEXCO_STICKY, "STICKY", 0, "Sticky", "Use mesh's sticky coordinates for the texture coordinates"},
{TEXCO_WINDOW, "WINDOW", 0, "Window", "Use screen coordinates as texture coordinates"},
{TEXCO_NORM, "NORMAL", 0, "Normal", "Use normal vector as texture coordinates"},
{TEXCO_REFL, "REFLECTION", 0, "Reflection", "Use reflection vector as texture coordinates"},
@@ -303,7 +302,6 @@ static EnumPropertyItem *rna_Material_texture_coordinates_itemf(bContext *UNUSED
else if (ELEM3(ma->material_type, MA_TYPE_SURFACE, MA_TYPE_HALO, MA_TYPE_WIRE)) {
RNA_enum_items_add_value(&item, &totitem, prop_texture_coordinates_items, TEXCO_UV);
RNA_enum_items_add_value(&item, &totitem, prop_texture_coordinates_items, TEXCO_STRAND);
- RNA_enum_items_add_value(&item, &totitem, prop_texture_coordinates_items, TEXCO_STICKY);
RNA_enum_items_add_value(&item, &totitem, prop_texture_coordinates_items, TEXCO_WINDOW);
RNA_enum_items_add_value(&item, &totitem, prop_texture_coordinates_items, TEXCO_NORM);
RNA_enum_items_add_value(&item, &totitem, prop_texture_coordinates_items, TEXCO_REFL);
@@ -1939,6 +1937,12 @@ void RNA_def_material(BlenderRNA *brna)
"- for anisotropic shading effects");
RNA_def_property_update(prop, 0, "rna_Material_update");
+ prop = RNA_def_property(srna, "use_uv_project", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "mapflag", MA_MAPFLAG_UVPROJECT);
+ RNA_def_property_ui_text(prop, "UV Project",
+ "Use to ensure UV interpolation is correct for camera projections (use with UV project modifier)");
+ RNA_def_property_update(prop, 0, "rna_Material_update");
+
/* nested structs */
prop = RNA_def_property(srna, "raytrace_mirror", PROP_POINTER, PROP_NONE);
RNA_def_property_flag(prop, PROP_NEVER_NULL);
diff --git a/source/blender/makesrna/intern/rna_material_api.c b/source/blender/makesrna/intern/rna_material_api.c
index 538a4c99df4..c7441f92c33 100644
--- a/source/blender/makesrna/intern/rna_material_api.c
+++ b/source/blender/makesrna/intern/rna_material_api.c
@@ -31,15 +31,19 @@
#include <stdlib.h>
#include <stdio.h>
+#include "BLI_utildefines.h"
+
#include "RNA_define.h"
#include "DNA_material_types.h"
+#include "rna_internal.h" /* own include */
+
#ifdef RNA_RUNTIME
#else
-void RNA_api_material(StructRNA *srna)
+void RNA_api_material(StructRNA *UNUSED(srna))
{
/* FunctionRNA *func; */
/* PropertyRNA *parm; */
diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c
index d904fdffa61..59cf202a416 100644
--- a/source/blender/makesrna/intern/rna_mesh.c
+++ b/source/blender/makesrna/intern/rna_mesh.c
@@ -149,7 +149,7 @@ void rna_Mesh_update_draw(Main *bmain, Scene *scene, PointerRNA *ptr)
}
-void rna_Mesh_update_vertmask(Main *bmain, Scene *scene, PointerRNA *ptr)
+static void rna_Mesh_update_vertmask(Main *bmain, Scene *scene, PointerRNA *ptr)
{
Mesh *me = ptr->data;
if ((me->editflag & ME_EDIT_VERT_SEL) && (me->editflag & ME_EDIT_PAINT_MASK)) {
@@ -158,7 +158,7 @@ void rna_Mesh_update_vertmask(Main *bmain, Scene *scene, PointerRNA *ptr)
rna_Mesh_update_draw(bmain, scene, ptr);
}
-void rna_Mesh_update_facemask(Main *bmain, Scene *scene, PointerRNA *ptr)
+static void rna_Mesh_update_facemask(Main *bmain, Scene *scene, PointerRNA *ptr)
{
Mesh *me = ptr->data;
if ((me->editflag & ME_EDIT_VERT_SEL) && (me->editflag & ME_EDIT_PAINT_MASK)) {
@@ -224,7 +224,7 @@ static void rna_MeshPolygon_normal_get(PointerRNA *ptr, float *values)
MPoly *mp = (MPoly *)ptr->data;
/* BMESH_TODO: might be faster to look for a CD_NORMALS layer and use that */
- mesh_calc_poly_normal(mp, me->mloop + mp->loopstart, me->mvert, values);
+ BKE_mesh_calc_poly_normal(mp, me->mloop + mp->loopstart, me->mvert, values);
}
static float rna_MeshPolygon_area_get(PointerRNA *ptr)
@@ -1204,11 +1204,6 @@ static char *rna_MeshColor_path(PointerRNA *ptr)
return rna_LoopCustomData_data_path(ptr, "vertex_colors", CD_MLOOPCOL);
}
-static char *rna_MeshSticky_path(PointerRNA *ptr)
-{
- return BLI_sprintfN("sticky[%d]", (int)((MSticky *)ptr->data - rna_mesh(ptr)->msticky));
-}
-
static char *rna_MeshIntPropertyLayer_path(PointerRNA *ptr)
{
return BLI_sprintfN("int_layers[\"%s\"]", ((CustomDataLayer *)ptr->data)->name);
@@ -1393,6 +1388,46 @@ static PointerRNA rna_Mesh_tessface_uv_texture_new(struct Mesh *me, struct bCont
return ptr;
}
+/* only to quiet warnings */
+static void UNUSED_FUNCTION(rna_mesh_unused)(void)
+{
+ /* unused functions made by macros */
+ (void)rna_Mesh_skin_vertice_index_range;
+ (void)rna_Mesh_tessface_uv_texture_active_set;
+ (void)rna_Mesh_tessface_uv_texture_clone_get;
+ (void)rna_Mesh_tessface_uv_texture_clone_index_get;
+ (void)rna_Mesh_tessface_uv_texture_clone_index_set;
+ (void)rna_Mesh_tessface_uv_texture_clone_set;
+ (void)rna_Mesh_tessface_uv_texture_index_range;
+ (void)rna_Mesh_tessface_uv_texture_render_get;
+ (void)rna_Mesh_tessface_uv_texture_render_index_get;
+ (void)rna_Mesh_tessface_uv_texture_render_index_set;
+ (void)rna_Mesh_tessface_uv_texture_render_set;
+ (void)rna_Mesh_tessface_uv_texture_stencil_get;
+ (void)rna_Mesh_tessface_uv_texture_stencil_index_get;
+ (void)rna_Mesh_tessface_uv_texture_stencil_index_set;
+ (void)rna_Mesh_tessface_uv_texture_stencil_set;
+ (void)rna_Mesh_tessface_vertex_color_active_set;
+ (void)rna_Mesh_tessface_vertex_color_index_range;
+ (void)rna_Mesh_tessface_vertex_color_render_get;
+ (void)rna_Mesh_tessface_vertex_color_render_index_get;
+ (void)rna_Mesh_tessface_vertex_color_render_index_set;
+ (void)rna_Mesh_tessface_vertex_color_render_set;
+ (void)rna_Mesh_uv_layer_render_get;
+ (void)rna_Mesh_uv_layer_render_index_get;
+ (void)rna_Mesh_uv_layer_render_index_set;
+ (void)rna_Mesh_uv_layer_render_set;
+ (void)rna_Mesh_uv_texture_render_get;
+ (void)rna_Mesh_uv_texture_render_index_get;
+ (void)rna_Mesh_uv_texture_render_index_set;
+ (void)rna_Mesh_uv_texture_render_set;
+ (void)rna_Mesh_vertex_color_render_get;
+ (void)rna_Mesh_vertex_color_render_index_get;
+ (void)rna_Mesh_vertex_color_render_index_set;
+ (void)rna_Mesh_vertex_color_render_set;
+ /* end unused function block */
+}
+
#else
static void rna_def_mvert_group(BlenderRNA *brna)
@@ -1917,21 +1952,6 @@ static void rna_def_mtexpoly(BlenderRNA *brna)
#endif
}
-static void rna_def_msticky(BlenderRNA *brna)
-{
- StructRNA *srna;
- PropertyRNA *prop;
-
- srna = RNA_def_struct(brna, "MeshSticky", NULL);
- RNA_def_struct_sdna(srna, "MSticky");
- RNA_def_struct_ui_text(srna, "Mesh Vertex Sticky Texture Coordinate", "Stricky texture coordinate");
- RNA_def_struct_path_func(srna, "rna_MeshSticky_path");
-
- prop = RNA_def_property(srna, "co", PROP_FLOAT, PROP_XYZ);
- RNA_def_property_ui_text(prop, "Location", "Sticky texture coordinate location");
- RNA_def_property_update(prop, 0, "rna_Mesh_update_data");
-}
-
static void rna_def_mcol(BlenderRNA *brna)
{
StructRNA *srna;
@@ -2569,7 +2589,7 @@ static void rna_def_uv_textures(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_property_update(prop, 0, "rna_Mesh_update_data");
}
-static void rna_def_skin_vertices(BlenderRNA *brna, PropertyRNA *cprop)
+static void rna_def_skin_vertices(BlenderRNA *brna, PropertyRNA *UNUSED(cprop))
{
StructRNA *srna;
PropertyRNA *prop;
@@ -2656,11 +2676,6 @@ static void rna_def_mesh(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Polygons", "Polygons of the mesh");
rna_def_mesh_polygons(brna, prop);
- prop = RNA_def_property(srna, "sticky", PROP_COLLECTION, PROP_NONE);
- RNA_def_property_collection_sdna(prop, NULL, "msticky", "totvert");
- RNA_def_property_struct_type(prop, "MeshSticky");
- RNA_def_property_ui_text(prop, "Sticky", "Sticky texture coordinates");
-
/* TODO, should this be allowed to be its self? */
prop = RNA_def_property(srna, "texture_mesh", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "texcomesh");
@@ -2996,11 +3011,9 @@ void RNA_def_mesh(BlenderRNA *brna)
rna_def_mloopuv(brna);
rna_def_mtface(brna);
rna_def_mtexpoly(brna);
- rna_def_msticky(brna);
rna_def_mcol(brna);
rna_def_mloopcol(brna);
rna_def_mproperties(brna);
}
#endif
-
diff --git a/source/blender/makesrna/intern/rna_mesh_api.c b/source/blender/makesrna/intern/rna_mesh_api.c
index ec03d452b57..b63390c65ed 100644
--- a/source/blender/makesrna/intern/rna_mesh_api.c
+++ b/source/blender/makesrna/intern/rna_mesh_api.c
@@ -36,11 +36,15 @@
#include "BLO_sys_types.h"
+#include "BLI_utildefines.h"
+
#include "BKE_mesh.h"
#include "ED_mesh.h"
+#include "rna_internal.h" /* own include */
+
#ifdef RNA_RUNTIME
-const char *rna_Mesh_unit_test_compare(struct Mesh *mesh, bContext *C, struct Mesh *mesh2)
+static const char *rna_Mesh_unit_test_compare(struct Mesh *mesh, bContext *C, struct Mesh *mesh2)
{
const char *ret = BKE_mesh_cmp(mesh, mesh2, FLT_EPSILON * 60);
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index 084cda87507..1b26c0447ff 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -215,7 +215,7 @@ static StructRNA *rna_Modifier_refine(struct PointerRNA *ptr)
}
}
-void rna_Modifier_name_set(PointerRNA *ptr, const char *value)
+static void rna_Modifier_name_set(PointerRNA *ptr, const char *value)
{
ModifierData *md = ptr->data;
char oldname[sizeof(md->name)];
@@ -2658,7 +2658,7 @@ static void rna_def_modifier_screw(BlenderRNA *brna)
#endif
}
-static void rna_def_modifier_weightvg_mask(BlenderRNA *brna, StructRNA *srna)
+static void rna_def_modifier_weightvg_mask(BlenderRNA *UNUSED(brna), StructRNA *srna)
{
static EnumPropertyItem weightvg_mask_tex_map_items[] = {
{MOD_DISP_MAP_LOCAL, "LOCAL", 0, "Local", "Use local generated coordinates"},
@@ -3007,7 +3007,7 @@ static void rna_def_modifier_remesh(BlenderRNA *brna)
prop = RNA_def_property(srna, "octree_depth", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "depth");
- RNA_def_property_range(prop, 1, 10);
+ RNA_def_property_range(prop, 1, 12);
RNA_def_property_ui_text(prop, "Octree Depth", "Resolution of the octree; higher values give finer details");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
diff --git a/source/blender/makesrna/intern/rna_movieclip.c b/source/blender/makesrna/intern/rna_movieclip.c
index 573e27b52c2..99effc990a8 100644
--- a/source/blender/makesrna/intern/rna_movieclip.c
+++ b/source/blender/makesrna/intern/rna_movieclip.c
@@ -187,8 +187,7 @@ static void rna_def_moviecliUser(BlenderRNA *brna)
RNA_def_struct_ui_text(srna, "Movie Clip User",
"Parameters defining how a MovieClip datablock is used by another datablock");
- prop = RNA_def_property(srna, "current_frame", PROP_INT, PROP_TIME);
- RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ prop = RNA_def_property(srna, "frame_current", PROP_INT, PROP_TIME);
RNA_def_property_int_sdna(prop, NULL, "framenr");
RNA_def_property_range(prop, MINAFRAME, MAXFRAME);
RNA_def_property_ui_text(prop, "Current Frame", "Current frame number in movie or image sequence");
@@ -287,7 +286,7 @@ static void rna_def_movieclip(BlenderRNA *brna)
RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, NULL);
/* start_frame */
- prop = RNA_def_property(srna, "start_frame", PROP_INT, PROP_NONE);
+ prop = RNA_def_property(srna, "frame_start", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "start_frame");
RNA_def_property_ui_text(prop, "Start Frame", "Global scene frame number at which this movie starts playing "
"(affects all data associated with a clip)");
@@ -299,6 +298,18 @@ static void rna_def_movieclip(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Frame Offset", "Offset of footage first frame relative to it's file name "
"(affects only how footage is loading, does not change data associated with a clip)");
RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, "rna_MovieClip_reload_update");
+
+ /* length */
+ prop = RNA_def_property(srna, "frame_duration", PROP_INT, PROP_NONE);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_int_sdna(prop, NULL, "len");
+ RNA_def_property_ui_text(prop, "Duration", "Detected duration of movie clip in frames");
+
+ /* color management */
+ prop = RNA_def_property(srna, "colorspace_settings", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "colorspace_settings");
+ RNA_def_property_struct_type(prop, "ColorManagedColorspaceSettings");
+ RNA_def_property_ui_text(prop, "Color Space Settings", "Input color space settings");
}
void RNA_def_movieclip(BlenderRNA *brna)
diff --git a/source/blender/makesrna/intern/rna_nla.c b/source/blender/makesrna/intern/rna_nla.c
index edfbf0f2efd..4ff1365427e 100644
--- a/source/blender/makesrna/intern/rna_nla.c
+++ b/source/blender/makesrna/intern/rna_nla.c
@@ -357,6 +357,43 @@ static void rna_NlaStrip_remove(NlaTrack *track, bContext *C, ReportList *report
}
}
+/* Set the 'solo' setting for the given NLA-track, making sure that it is the only one
+ * that has this status in its AnimData block.
+ */
+static void rna_NlaTrack_solo_set(PointerRNA *ptr, int value)
+{
+ NlaTrack *data = (NlaTrack *)ptr->data;
+ AnimData *adt = BKE_animdata_from_id(ptr->id.data);
+ NlaTrack *nt;
+
+ if (data == NULL) {
+ return;
+ }
+
+ /* firstly, make sure 'solo' flag for all tracks is disabled */
+ for (nt = data; nt; nt = nt->next) {
+ nt->flag &= ~NLATRACK_SOLO;
+ }
+ for (nt = data; nt; nt = nt->prev) {
+ nt->flag &= ~NLATRACK_SOLO;
+ }
+
+ /* now, enable 'solo' for the given track if appropriate */
+ if (value) {
+ /* set solo status */
+ data->flag |= NLATRACK_SOLO;
+
+ /* set solo-status on AnimData */
+ adt->flag |= ADT_NLA_SOLO_TRACK;
+ }
+ else {
+ /* solo status was already cleared on track */
+
+ /* clear solo-status on AnimData */
+ adt->flag &= ~ADT_NLA_SOLO_TRACK;
+ }
+}
+
#else
/* enum defines exported for rna_animation.c */
@@ -483,7 +520,7 @@ static void rna_def_nlastrip(BlenderRNA *brna)
prop = RNA_def_property(srna, "repeat", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "repeat");
RNA_def_property_float_funcs(prop, NULL, "rna_NlaStrip_repeat_set", NULL);
- /* these limits have currently be chosen arbitarily, but could be extended
+ /* these limits have currently be chosen arbitrarily, but could be extended
* (minimum should still be > 0 though) if needed... */
RNA_def_property_range(prop, 0.1f, 1000.0f);
RNA_def_property_ui_text(prop, "Repeat", "Number of times to repeat the action range");
@@ -637,13 +674,13 @@ static void rna_def_nlatrack(BlenderRNA *brna)
prop = RNA_def_property(srna, "is_solo", PROP_BOOLEAN, PROP_NONE);
/* can be made editable by hooking it up to the necessary NLA API methods */
- RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", NLATRACK_SOLO);
RNA_def_property_ui_text(prop, "Solo",
"NLA Track is evaluated itself (i.e. active Action and all other NLA Tracks in the "
"same AnimData block are disabled)");
RNA_def_property_update(prop, NC_ANIMATION | ND_NLA, NULL); /* this will do? */
-
+ RNA_def_property_boolean_funcs(prop, NULL, "rna_NlaTrack_solo_set");
+
prop = RNA_def_property(srna, "select", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", NLATRACK_SELECTED);
RNA_def_property_ui_text(prop, "Select", "NLA Track is selected");
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index a39c168c594..d650c8dbf69 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -24,7 +24,6 @@
* \ingroup RNA
*/
-
#include <stdlib.h>
#include <string.h>
@@ -134,6 +133,14 @@ EnumPropertyItem node_filter_items[] = {
{0, NULL, 0, NULL, NULL}
};
+EnumPropertyItem node_sampler_type_items[] = {
+ {0, "NEAREST", 0, "Nearest", ""},
+ {1, "BILINEAR", 0, "Bilinear", ""},
+ {2, "BICUBIC", 0, "Bicubic", ""},
+ {0, NULL, 0, NULL, NULL}
+};
+
+
EnumPropertyItem prop_noise_basis_items[] = {
{SHD_NOISE_PERLIN, "PERLIN", 0, "Perlin", ""},
{SHD_NOISE_VORONOI_F1, "VORONOI_F1", 0, "Voronoi F1", ""},
@@ -225,7 +232,8 @@ static StructRNA *rna_Node_refine(struct PointerRNA *ptr)
return &RNA_NodeWhileLoop;
case NODE_FRAME:
return &RNA_NodeFrame;
-
+ case NODE_REROUTE:
+ return &RNA_NodeReroute;
default:
return &RNA_Node;
}
@@ -324,6 +332,20 @@ static char *rna_NodeSocket_path(PointerRNA *ptr)
return NULL;
}
+static void rna_NodeSocket_hide_set(PointerRNA *ptr, int value)
+{
+ bNodeSocket *sock = (bNodeSocket *)ptr->data;
+
+ /* don't hide linked sockets */
+ if (sock->flag & SOCK_IN_USE)
+ return;
+
+ if (value)
+ sock->flag |= SOCK_HIDDEN;
+ else
+ sock->flag &= ~SOCK_HIDDEN;
+}
+
/* Button Set Funcs for Matte Nodes */
static void rna_Matte_t1_set(PointerRNA *ptr, float value)
{
@@ -439,6 +461,15 @@ static void rna_NodeGroup_update(Main *bmain, Scene *scene, PointerRNA *ptr)
node_update(bmain, scene, ntree, node);
}
+static int rna_NodeGroup_node_tree_poll(PointerRNA *ptr, const PointerRNA value)
+{
+ bNodeTree *ntree = (bNodeTree *)ptr->id.data;
+ bNodeTree *ngroup = (bNodeTree *)value.data;
+
+ /* only allow node trees of the same type as the group node's tree */
+ return (ngroup->type == ntree->type);
+}
+
static void rna_Node_name_set(PointerRNA *ptr, const char *value)
{
bNodeTree *ntree = (bNodeTree *)ptr->id.data;
@@ -1054,11 +1085,11 @@ static void init(void)
#include "rna_nodetree_types.h"
- reg_node(NODE_GROUP, Category_GroupNode, "GROUP", "NodeGroup", "Node", "Group", "");
- reg_node(NODE_FORLOOP, Category_LoopNode, "FORLOOP", "NodeForLoop", "Node", "ForLoop", "");
- reg_node(NODE_WHILELOOP, Category_LoopNode, "WHILELOOP", "NodeWhileLoop", "Node", "WhileLoop", "");
- reg_node(NODE_FRAME, Category_LayoutNode, "FRAME", "NodeFrame", "Node", "Frame", "");
- reg_node(NODE_REROUTE, Category_LayoutNode, "REROUTE", "NodeReroute", "Node", "Reroute", "");
+ reg_node(NODE_GROUP, Category_GroupNode, "GROUP", "NodeGroup", "SpecialNode", "Group", "");
+ reg_node(NODE_FORLOOP, Category_LoopNode, "FORLOOP", "NodeForLoop", "SpecialNode", "ForLoop", "");
+ reg_node(NODE_WHILELOOP, Category_LoopNode, "WHILELOOP", "NodeWhileLoop", "SpecialNode", "WhileLoop", "");
+ reg_node(NODE_FRAME, Category_LayoutNode, "FRAME", "NodeFrame", "SpecialNode", "Frame", "");
+ reg_node(NODE_REROUTE, Category_LayoutNode, "REROUTE", "NodeReroute", "SpecialNode", "Reroute", "");
}
static StructRNA *def_node(BlenderRNA *brna, int node_id)
@@ -1129,6 +1160,7 @@ static void def_group(StructRNA *srna)
prop = RNA_def_property(srna, "node_tree", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "id");
RNA_def_property_struct_type(prop, "NodeTree");
+ RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, "rna_NodeGroup_node_tree_poll");
RNA_def_property_flag(prop, PROP_EDITABLE);
RNA_def_property_ui_text(prop, "Node Tree", "");
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_NodeGroup_update");
@@ -1191,6 +1223,11 @@ static void def_math(StructRNA *srna)
RNA_def_property_enum_items(prop, node_math_items);
RNA_def_property_ui_text(prop, "Operation", "");
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "use_clamp", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "custom2", 1);
+ RNA_def_property_ui_text(prop, "Clamp", "Clamp result of the node to 0..1 range");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
}
static void def_vector_math(StructRNA *srna)
@@ -1272,6 +1309,11 @@ static void def_mix_rgb(StructRNA *srna)
RNA_def_property_boolean_sdna(prop, NULL, "custom2", 1);
RNA_def_property_ui_text(prop, "Alpha", "Include alpha of second input in this operation");
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "use_clamp", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "custom2", 2);
+ RNA_def_property_ui_text(prop, "Clamp", "Clamp result of the node to 0..1 range");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
}
static void def_texture(StructRNA *srna)
@@ -1484,6 +1526,15 @@ static void def_sh_tex_image(StructRNA *srna)
{0, NULL, 0, NULL, NULL}
};
+ static const EnumPropertyItem prop_projection_items[] = {
+ {SHD_PROJ_FLAT, "FLAT", 0, "Flat",
+ "Image is projected flat using the X and Y coordinates of the texture vector"},
+ {SHD_PROJ_BOX, "BOX", 0, "Box",
+ "Image is projected using different components for each side of the object space bounding box"},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+
PropertyRNA *prop;
prop = RNA_def_property(srna, "image", PROP_POINTER, PROP_NONE);
@@ -1501,6 +1552,15 @@ static void def_sh_tex_image(StructRNA *srna)
RNA_def_property_ui_text(prop, "Color Space", "Image file color space");
RNA_def_property_update(prop, 0, "rna_Node_update");
+ prop = RNA_def_property(srna, "projection", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_items(prop, prop_projection_items);
+ RNA_def_property_ui_text(prop, "Projection", "Method to project 2D image on object with a 3D texture vector");
+ RNA_def_property_update(prop, 0, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "projection_blend", PROP_FLOAT, PROP_FACTOR);
+ RNA_def_property_ui_text(prop, "Projection Blend", "For box projection, amount of blend to use between sides");
+ RNA_def_property_update(prop, 0, "rna_Node_update");
+
prop = RNA_def_property(srna, "image_user", PROP_POINTER, PROP_NONE);
RNA_def_property_flag(prop, PROP_NEVER_NULL);
RNA_def_property_pointer_sdna(prop, NULL, "iuser");
@@ -1546,6 +1606,43 @@ static void def_sh_tex_checker(StructRNA *srna)
def_sh_tex(srna);
}
+static void def_sh_tex_brick(StructRNA *srna)
+{
+ PropertyRNA *prop;
+
+ RNA_def_struct_sdna_from(srna, "NodeTexBrick", "storage");
+ def_sh_tex(srna);
+
+ prop = RNA_def_property(srna, "offset_frequency", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "offset_freq");
+ RNA_def_property_int_default(prop, 2);
+ RNA_def_property_range(prop, 1, 99);
+ RNA_def_property_ui_text(prop, "Offset Frequency", "");
+ RNA_def_property_update(prop, 0, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "squash_frequency", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "squash_freq");
+ RNA_def_property_int_default(prop, 2);
+ RNA_def_property_range(prop, 1, 99);
+ RNA_def_property_ui_text(prop, "Squash Frequency", "");
+ RNA_def_property_update(prop, 0, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "offset", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "offset");
+ RNA_def_property_float_default(prop, 0.5f);
+ RNA_def_property_range(prop, 0.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "Offset Amount", "");
+ RNA_def_property_update(prop, 0, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "squash", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "squash");
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_range(prop, 0.0f, 99.0f);
+ RNA_def_property_ui_text(prop, "Squash Amount", "");
+ RNA_def_property_update(prop, 0, "rna_Node_update");
+
+}
+
static void def_sh_tex_magic(StructRNA *srna)
{
PropertyRNA *prop;
@@ -1623,6 +1720,16 @@ static void def_sh_tex_wave(StructRNA *srna)
RNA_def_property_update(prop, 0, "rna_Node_update");
}
+static void def_sh_tex_coord(StructRNA *srna)
+{
+ PropertyRNA *prop;
+
+ prop = RNA_def_property(srna, "from_dupli", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "custom1", 1);
+ RNA_def_property_ui_text(prop, "From Dupli", "Use the parent of the dupli object if possible");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+}
+
static void def_glossy(StructRNA *srna)
{
PropertyRNA *prop;
@@ -1703,6 +1810,12 @@ static void def_cmp_blur(StructRNA *srna)
{0, NULL, 0, NULL, NULL}
};
+ /* duplicated in def_cmp_bokehblur */
+ prop = RNA_def_property(srna, "use_variable_size", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "custom1", CMP_NODEFLAG_BLUR_VARIABLE_SIZE);
+ RNA_def_property_ui_text(prop, "Variable Size", "Support variable blur per-pixel when using an image for size input");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
RNA_def_struct_sdna_from(srna, "NodeBlurData", "storage");
prop = RNA_def_property(srna, "size_x", PROP_INT, PROP_NONE);
@@ -1761,7 +1874,6 @@ static void def_cmp_blur(StructRNA *srna)
RNA_def_property_boolean_sdna(prop, NULL, "gamma", 1);
RNA_def_property_ui_text(prop, "Gamma", "Apply filter on gamma corrected values");
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
-
}
static void def_cmp_filter(StructRNA *srna)
@@ -2089,6 +2201,43 @@ static void def_cmp_dilate_erode(StructRNA *srna)
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
}
+static void def_cmp_inpaint(StructRNA *srna)
+{
+ PropertyRNA *prop;
+
+#if 0
+ prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
+
+ RNA_def_property_enum_sdna(prop, NULL, "custom1");
+ RNA_def_property_enum_items(prop, type_items);
+ RNA_def_property_ui_text(prop, "Type", "Type of inpaint algorithm");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+#endif
+
+ prop = RNA_def_property(srna, "distance", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "custom2");
+ RNA_def_property_range(prop, 1, 10000);
+ RNA_def_property_ui_text(prop, "Distance", "Distance to inpaint (number of iterations)");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+}
+
+static void def_cmp_despeckle(StructRNA *srna)
+{
+ PropertyRNA *prop;
+
+ prop = RNA_def_property(srna, "threshold", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "custom3");
+ RNA_def_property_range(prop, 0.0, 1.0f);
+ RNA_def_property_ui_text(prop, "Threshold", "Threshold for detecting pixels to despeckle");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "threshold_neighbour", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "custom4");
+ RNA_def_property_range(prop, 0.0, 1.0f);
+ RNA_def_property_ui_text(prop, "Neighbor", "Threshold for the number of neighbor pixels that must match");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+}
+
static void def_cmp_scale(StructRNA *srna)
{
PropertyRNA *prop;
@@ -2137,16 +2286,9 @@ static void def_cmp_rotate(StructRNA *srna)
{
PropertyRNA *prop;
- static EnumPropertyItem rotate_items[] = {
- {0, "NEAREST", 0, "Nearest", ""},
- {1, "BILINEAR", 0, "Bilinear", ""},
- {2, "BICUBIC", 0, "Bicubic", ""},
- {0, NULL, 0, NULL, NULL}
- };
-
prop = RNA_def_property(srna, "filter_type", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "custom1");
- RNA_def_property_enum_items(prop, rotate_items);
+ RNA_def_property_enum_items(prop, node_sampler_type_items);
RNA_def_property_ui_text(prop, "Filter", "Method to use to filter rotation");
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
}
@@ -3074,13 +3216,6 @@ static void def_cmp_stabilize2d(StructRNA *srna)
{
PropertyRNA *prop;
- static EnumPropertyItem filter_type_items[] = {
- {0, "NEAREST", 0, "Nearest", ""},
- {1, "BILINEAR", 0, "Bilinear", ""},
- {2, "BICUBIC", 0, "Bicubic", ""},
- {0, NULL, 0, NULL, NULL}
- };
-
prop = RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "id");
RNA_def_property_struct_type(prop, "MovieClip");
@@ -3090,7 +3225,7 @@ static void def_cmp_stabilize2d(StructRNA *srna)
prop = RNA_def_property(srna, "filter_type", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "custom1");
- RNA_def_property_enum_items(prop, filter_type_items);
+ RNA_def_property_enum_items(prop, node_sampler_type_items);
RNA_def_property_ui_text(prop, "Filter", "Method to use to filter stabilization");
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
}
@@ -3123,6 +3258,13 @@ static void def_cmp_mask(StructRNA *srna)
{
PropertyRNA *prop;
+ static EnumPropertyItem aspect_type_items[] = {
+ {0, "SCENE", 0, "Scene Size", ""},
+ {CMP_NODEFLAG_MASK_FIXED, "FIXED", 0, "Fixed", "Use pixel size for the buffer"},
+ {CMP_NODEFLAG_MASK_FIXED_SCENE, "FIXED_SCENE", 0, "Fixed/Scene", "Pixel size scaled by scene percentage"},
+ {0, NULL, 0, NULL, NULL}
+ };
+
prop = RNA_def_property(srna, "mask", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "id");
RNA_def_property_struct_type(prop, "Mask");
@@ -3138,22 +3280,52 @@ static void def_cmp_mask(StructRNA *srna)
RNA_def_property_boolean_negative_sdna(prop, NULL, "custom1", CMP_NODEFLAG_MASK_NO_FEATHER);
RNA_def_property_ui_text(prop, "Feather", "Use feather information from the mask");
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "use_motion_blur", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "custom1", CMP_NODEFLAG_MASK_MOTION_BLUR);
+ RNA_def_property_ui_text(prop, "Motion Blur", "Use feather information from the mask");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "motion_blur_samples", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "custom2");
+ RNA_def_property_range(prop, 1, CMP_NODE_MASK_MBLUR_SAMPLES_MAX);
+ RNA_def_property_ui_text(prop, "Samples", "Number of motion blur samples");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "motion_blur_shutter", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "custom3");
+ RNA_def_property_range(prop, 0.0, 1.0f);
+ RNA_def_property_ui_text(prop, "Shutter", "Exposure for motion blur as a factor of FPS");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+
+ prop = RNA_def_property(srna, "size_source", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_bitflag_sdna(prop, NULL, "custom1");
+ RNA_def_property_enum_items(prop, aspect_type_items);
+ RNA_def_property_ui_text(prop, "Size Source", "Where to get the mask size from for aspect/size information");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+
+ RNA_def_struct_sdna_from(srna, "NodeMask", "storage");
+
+ prop = RNA_def_property(srna, "size_x", PROP_INT, PROP_NONE);
+ RNA_def_property_range(prop, 1.0f, 10000.0f);
+ RNA_def_property_ui_text(prop, "X", "");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "size_y", PROP_INT, PROP_NONE);
+ RNA_def_property_range(prop, 1.0f, 10000.0f);
+ RNA_def_property_ui_text(prop, "Y", "");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
}
static void dev_cmd_transform(StructRNA *srna)
{
PropertyRNA *prop;
- static EnumPropertyItem filter_type_items[] = {
- {0, "NEAREST", 0, "Nearest", ""},
- {1, "BILINEAR", 0, "Bilinear", ""},
- {2, "BICUBIC", 0, "Bicubic", ""},
- {0, NULL, 0, NULL, NULL}
- };
-
prop = RNA_def_property(srna, "filter_type", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "custom1");
- RNA_def_property_enum_items(prop, filter_type_items);
+ RNA_def_property_enum_items(prop, node_sampler_type_items);
RNA_def_property_ui_text(prop, "Filter", "Method to use to filter transform");
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
}
@@ -3266,6 +3438,14 @@ static void def_cmp_ellipsemask(StructRNA *srna)
static void def_cmp_bokehblur(StructRNA *srna)
{
PropertyRNA *prop;
+
+ /* duplicated in def_cmp_blur */
+ prop = RNA_def_property(srna, "use_variable_size", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "custom1", CMP_NODEFLAG_BLUR_VARIABLE_SIZE);
+ RNA_def_property_ui_text(prop, "Variable Size", "Support variable blue per-pixel when using an image for size input");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+#if 0
prop = RNA_def_property(srna, "f_stop", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "custom3");
RNA_def_property_range(prop, 0.0f, 128.0f);
@@ -3273,7 +3453,8 @@ static void def_cmp_bokehblur(StructRNA *srna)
"Amount of focal blur, 128=infinity=perfect focus, half the value doubles "
"the blur radius");
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
-
+#endif
+
prop = RNA_def_property(srna, "blur_max", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "custom4");
RNA_def_property_range(prop, 0.0f, 10000.0f);
@@ -3580,7 +3761,13 @@ static void def_cmp_keying(StructRNA *srna)
prop = RNA_def_property(srna, "despill_factor", PROP_FLOAT, PROP_FACTOR);
RNA_def_property_float_sdna(prop, NULL, "despill_factor");
RNA_def_property_range(prop, 0.0f, 1.0f);
- RNA_def_property_ui_text(prop, "Despill", "Factor of despilling screen color from image");
+ RNA_def_property_ui_text(prop, "Despill Factor", "Factor of despilling screen color from image");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "despill_balance", PROP_FLOAT, PROP_FACTOR);
+ RNA_def_property_float_sdna(prop, NULL, "despill_balance");
+ RNA_def_property_range(prop, 0.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "Despill Balance", "Balance between non-key colors used to detect amount of key color to be removed");
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
prop = RNA_def_property(srna, "clip_black", PROP_FLOAT, PROP_FACTOR);
@@ -3593,7 +3780,7 @@ static void def_cmp_keying(StructRNA *srna)
RNA_def_property_float_sdna(prop, NULL, "clip_white");
RNA_def_property_range(prop, 0.0f, 1.0f);
RNA_def_property_ui_text(prop, "Clip White", "Value of non-scaled matte pixel which considers as fully foreground pixel");
- RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
prop = RNA_def_property(srna, "blur_pre", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "blur_pre");
@@ -3638,6 +3825,48 @@ static void def_cmp_keying(StructRNA *srna)
RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
}
+static void def_cmp_trackpos(StructRNA *srna)
+{
+ PropertyRNA *prop;
+
+ static EnumPropertyItem position_items[] = {
+ {0, "ABSOLUTE", 0, "Absolute", "Output absolute position of a marker"},
+ {1, "RELATIVE_START", 0, "Relative Start", "Output position of a marker relative to first marker of a track"},
+ {2, "RELATIVE_FRAME", 0, "Relative Frame", "Output position of a marker relative to marker at given frame number"},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ prop = RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "id");
+ RNA_def_property_struct_type(prop, "MovieClip");
+ RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_ui_text(prop, "Movie Clip", "");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "position", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "custom1");
+ RNA_def_property_enum_items(prop, position_items);
+ RNA_def_property_ui_text(prop, "Position", "Which marker position to use for output");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "frame_relative", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "custom2");
+ RNA_def_property_ui_text(prop, "Frame", "Frame to be used for relative position");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+ RNA_def_struct_sdna_from(srna, "NodeTrackPosData", "storage");
+
+ prop = RNA_def_property(srna, "tracking_object", PROP_STRING, PROP_NONE);
+ RNA_def_property_string_sdna(prop, NULL, "tracking_object");
+ RNA_def_property_ui_text(prop, "Tracking Object", "");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
+ prop = RNA_def_property(srna, "track_name", PROP_STRING, PROP_NONE);
+ RNA_def_property_string_sdna(prop, NULL, "track_name");
+ RNA_def_property_ui_text(prop, "Track", "");
+ RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+}
+
/* -- Texture Nodes --------------------------------------------------------- */
static void def_tex_output(StructRNA *srna)
@@ -3758,6 +3987,30 @@ static void rna_def_texture_node(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Type", "");
}
+static void rna_def_special_node(BlenderRNA *brna)
+{
+ StructRNA *srna;
+ PropertyRNA *prop;
+
+ static EnumPropertyItem specific_node_type_items[] = {
+ {NODE_GROUP, "GROUP", ICON_NODE, "Group", ""},
+ {NODE_FORLOOP, "FORLOOP", ICON_NODE, "For Loop", ""},
+ {NODE_WHILELOOP, "WHILELOOP", ICON_NODE, "While Loop", ""},
+ {NODE_FRAME, "FRAME", ICON_NODE, "Frame", ""},
+ {NODE_REROUTE, "REROUTE", ICON_NODE, "Reroute", ""},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ srna = RNA_def_struct(brna, "SpecialNode", "Node");
+ RNA_def_struct_ui_text(srna, "Special Node", "");
+ RNA_def_struct_sdna(srna, "bNode");
+
+ prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_enum_items(prop, specific_node_type_items);
+ RNA_def_property_ui_text(prop, "Type", "");
+}
+
/* -------------------------------------------------------------------------- */
static void rna_def_nodetree_link_api(BlenderRNA *brna, PropertyRNA *cprop)
@@ -3793,7 +4046,7 @@ static void rna_def_nodetree_link_api(BlenderRNA *brna, PropertyRNA *cprop)
}
/* shared between all note tree types*/
-static void rna_def_nodetree_active_api(StructRNA *srna, PropertyRNA *cprop)
+static void rna_def_nodetree_active_api(StructRNA *srna, PropertyRNA *UNUSED(cprop))
{
PropertyRNA *prop;
@@ -3936,6 +4189,17 @@ static void rna_def_node_socket(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Group Socket",
"For group nodes, the group input or output socket this corresponds to");
+ prop = RNA_def_property(srna, "hide", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", SOCK_HIDDEN);
+ RNA_def_property_boolean_funcs(prop, NULL, "rna_NodeSocket_hide_set");
+ RNA_def_property_ui_text(prop, "Hide", "Hide the socket");
+ RNA_def_property_update(prop, NC_NODE | ND_DISPLAY, NULL);
+
+ prop = RNA_def_property(srna, "is_linked", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", SOCK_IN_USE);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_ui_text(prop, "Linked", "True if the socket is connected");
+
prop = RNA_def_property(srna, "show_expanded", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", SOCK_COLLAPSED);
RNA_def_property_ui_text(prop, "Expanded", "Socket links are expanded in the user interface");
@@ -4061,7 +4325,7 @@ static void rna_def_node(BlenderRNA *brna)
prop = RNA_def_property(srna, "label", PROP_STRING, PROP_NONE);
RNA_def_property_string_sdna(prop, NULL, "label");
RNA_def_property_ui_text(prop, "Label", "Optional custom node label");
- RNA_def_property_update(prop, NC_NODE, "rna_Node_update");
+ RNA_def_property_update(prop, NC_NODE | ND_DISPLAY, NULL);
prop = RNA_def_property(srna, "inputs", PROP_COLLECTION, PROP_NONE);
RNA_def_property_collection_sdna(prop, NULL, "inputs", NULL);
@@ -4316,7 +4580,7 @@ static void rna_def_texture_nodetree(BlenderRNA *brna)
static void define_specific_node(BlenderRNA *brna, int id, void (*func)(StructRNA *))
{
StructRNA *srna = def_node(brna, id);
-
+
if (func)
func(srna);
}
@@ -4343,6 +4607,7 @@ void RNA_def_nodetree(BlenderRNA *brna)
rna_def_shader_node(brna);
rna_def_compositor_node(brna);
rna_def_texture_node(brna);
+ rna_def_special_node(brna);
rna_def_composite_nodetree(brna);
rna_def_shader_nodetree(brna);
diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h
index 5ebaddda043..db1e1e16adf 100644
--- a/source/blender/makesrna/intern/rna_nodetree_types.h
+++ b/source/blender/makesrna/intern/rna_nodetree_types.h
@@ -91,7 +91,8 @@ DefNode( ShaderNode, SH_NODE_TEX_WAVE, def_sh_tex_wave, "TE
DefNode( ShaderNode, SH_NODE_TEX_MUSGRAVE, def_sh_tex_musgrave, "TEX_MUSGRAVE", TexMusgrave, "Musgrave Texture", "" )
DefNode( ShaderNode, SH_NODE_TEX_VORONOI, def_sh_tex_voronoi, "TEX_VORONOI", TexVoronoi, "Voronoi Texture", "" )
DefNode( ShaderNode, SH_NODE_TEX_CHECKER, def_sh_tex_checker, "TEX_CHECKER", TexChecker, "Checker Texture", "" )
-DefNode( ShaderNode, SH_NODE_TEX_COORD, 0, "TEX_COORD", TexCoord, "Texture Coordinate","" )
+DefNode( ShaderNode, SH_NODE_TEX_BRICK, def_sh_tex_brick, "TEX_BRICK", TexBrick, "Brick Texture", "" )
+DefNode( ShaderNode, SH_NODE_TEX_COORD, def_sh_tex_coord, "TEX_COORD", TexCoord, "Texture Coordinate","" )
DefNode( CompositorNode, CMP_NODE_VIEWER, def_cmp_viewer, "VIEWER", Viewer, "Viewer", "" )
DefNode( CompositorNode, CMP_NODE_RGB, 0, "RGB", RGB, "RGB", "" )
@@ -121,6 +122,8 @@ DefNode( CompositorNode, CMP_NODE_TRANSLATE, 0, "TRANS
DefNode( CompositorNode, CMP_NODE_ZCOMBINE, def_cmp_zcombine, "ZCOMBINE", Zcombine, "Z Combine", "" )
DefNode( CompositorNode, CMP_NODE_COMBRGBA, 0, "COMBRGBA", CombRGBA, "Combine RGBA", "" )
DefNode( CompositorNode, CMP_NODE_DILATEERODE, def_cmp_dilate_erode, "DILATEERODE", DilateErode, "Dilate/Erode", "" )
+DefNode( CompositorNode, CMP_NODE_INPAINT, def_cmp_inpaint, "INPAINT", Inpaint, "Inpaint", "" )
+DefNode( CompositorNode, CMP_NODE_DESPECKLE, def_cmp_despeckle, "DESPECKLE", Despeckle, "Despeckle", "" )
DefNode( CompositorNode, CMP_NODE_ROTATE, def_cmp_rotate, "ROTATE", Rotate, "Rotate", "" )
DefNode( CompositorNode, CMP_NODE_SCALE, def_cmp_scale, "SCALE", Scale, "Scale", "" )
DefNode( CompositorNode, CMP_NODE_SEPYCCA, def_cmp_ycc, "SEPYCCA", SepYCCA, "Separate YCCA", "" )
@@ -170,6 +173,7 @@ DefNode( CompositorNode, CMP_NODE_COLORCORRECTION,def_cmp_colorcorrection,"COLOR
DefNode( CompositorNode, CMP_NODE_MASK, def_cmp_mask, "MASK", Mask, "Mask", "" )
DefNode( CompositorNode, CMP_NODE_KEYINGSCREEN, def_cmp_keyingscreen, "KEYINGSCREEN", KeyingScreen, "KeyingScreen", "" )
DefNode( CompositorNode, CMP_NODE_KEYING, def_cmp_keying, "KEYING", Keying, "Keying", "" )
+DefNode( CompositorNode, CMP_NODE_TRACKPOS, def_cmp_trackpos, "TRACKPOS", TrackPos, "Track Position", "" )
DefNode( TextureNode, TEX_NODE_OUTPUT, def_tex_output, "OUTPUT", Output, "Output", "" )
DefNode( TextureNode, TEX_NODE_CHECKER, 0, "CHECKER", Checker, "Checker", "" )
diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c
index ce6b028beb5..0b8afef0364 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -69,6 +69,19 @@ EnumPropertyItem object_mode_items[] = {
{0, NULL, 0, NULL, NULL}
};
+EnumPropertyItem object_empty_drawtype_items[] = {
+ {OB_PLAINAXES, "PLAIN_AXES", 0, "Plain Axes", ""},
+ {OB_ARROWS, "ARROWS", 0, "Arrows", ""},
+ {OB_SINGLE_ARROW, "SINGLE_ARROW", 0, "Single Arrow", ""},
+ {OB_CIRCLE, "CIRCLE", 0, "Circle", ""},
+ {OB_CUBE, "CUBE", 0, "Cube", ""},
+ {OB_EMPTY_SPHERE, "SPHERE", 0, "Sphere", ""},
+ {OB_EMPTY_CONE, "CONE", 0, "Cone", ""},
+ {OB_EMPTY_IMAGE, "IMAGE", 0, "Image", ""},
+ {0, NULL, 0, NULL, NULL}
+};
+
+
static EnumPropertyItem parent_type_items[] = {
{PAROBJECT, "OBJECT", 0, "Object", "The object is parented to an object"},
{PARCURVE, "CURVE", 0, "Curve", "The object is parented to a curve"},
@@ -80,7 +93,7 @@ static EnumPropertyItem parent_type_items[] = {
{PARBONE, "BONE", 0, "Bone", "The object is parented to a bone"},
{0, NULL, 0, NULL, NULL}
};
-
+
static EnumPropertyItem collision_bounds_items[] = {
{OB_BOUND_BOX, "BOX", 0, "Box", ""},
{OB_BOUND_SPHERE, "SPHERE", 0, "Sphere", ""},
@@ -231,7 +244,7 @@ void rna_Object_internal_update_data(Main *UNUSED(bmain), Scene *UNUSED(scene),
WM_main_add_notifier(NC_OBJECT | ND_DRAW, ptr->id.data);
}
-void rna_Object_active_shape_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+static void rna_Object_active_shape_update(Main *bmain, Scene *scene, PointerRNA *ptr)
{
Object *ob = ptr->id.data;
@@ -313,7 +326,7 @@ static void rna_Object_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr)
if (!base)
return;
- SWAP(int, base->lay, ob->lay);
+ SWAP(unsigned int, base->lay, ob->lay);
rna_Object_layer_update__internal(bmain, scene, base, ob);
ob->lay = base->lay;
@@ -355,10 +368,14 @@ static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value)
set_mesh(ob, (Mesh *)id);
}
else {
- if (ob->data)
+ if (ob->data) {
id_us_min((ID *)ob->data);
- if (id)
+ }
+ if (id) {
+ /* no need to type-check here ID. this is done in the _typef() function */
+ BLI_assert(OB_DATA_SUPPORT_ID(GS(id->name)));
id_us_plus(id);
+ }
ob->data = id;
test_object_materials(id);
@@ -374,6 +391,7 @@ static StructRNA *rna_Object_data_typef(PointerRNA *ptr)
{
Object *ob = (Object *)ptr->data;
+ /* keep in sync with OB_DATA_SUPPORT_ID() macro */
switch (ob->type) {
case OB_EMPTY: return &RNA_Image;
case OB_MESH: return &RNA_Mesh;
@@ -491,7 +509,7 @@ static void rna_Object_dup_group_set(PointerRNA *ptr, PointerRNA value)
"Cannot set dupli-group as object belongs in group being instanced thus causing a cycle");
}
-void rna_VertexGroup_name_set(PointerRNA *ptr, const char *value)
+static void rna_VertexGroup_name_set(PointerRNA *ptr, const char *value)
{
Object *ob = (Object *)ptr->id.data;
bDeformGroup *dg = (bDeformGroup *)ptr->data;
@@ -658,7 +676,7 @@ static void rna_Object_active_material_set(PointerRNA *ptr, PointerRNA value)
Object *ob = (Object *)ptr->id.data;
DAG_id_tag_update(value.data, 0);
- assign_material(ob, value.data, ob->actcol);
+ assign_material(ob, value.data, ob->actcol, BKE_MAT_ASSIGN_USERPREF);
}
static void rna_Object_active_particle_system_index_range(PointerRNA *ptr, int *min, int *max,
@@ -815,7 +833,7 @@ static void rna_MaterialSlot_material_set(PointerRNA *ptr, PointerRNA value)
Object *ob = (Object *)ptr->id.data;
int index = (Material **)ptr->data - ob->mat;
- assign_material(ob, value.data, index + 1);
+ assign_material(ob, value.data, index + 1, BKE_MAT_ASSIGN_USERPREF);
}
static int rna_MaterialSlot_link_get(PointerRNA *ptr)
@@ -1096,7 +1114,7 @@ static void rna_GameObjectSettings_used_state_get(PointerRNA *ptr, int *values)
static void rna_Object_active_shape_key_index_range(PointerRNA *ptr, int *min, int *max, int *softmin, int *softmax)
{
Object *ob = (Object *)ptr->id.data;
- Key *key = ob_get_key(ob);
+ Key *key = BKE_key_from_object(ob);
*min = 0;
if (key) {
@@ -1125,7 +1143,7 @@ static void rna_Object_active_shape_key_index_set(PointerRNA *ptr, int value)
static PointerRNA rna_Object_active_shape_key_get(PointerRNA *ptr)
{
Object *ob = (Object *)ptr->id.data;
- Key *key = ob_get_key(ob);
+ Key *key = BKE_key_from_object(ob);
KeyBlock *kb;
PointerRNA keyptr;
@@ -1759,11 +1777,11 @@ static void rna_def_object_modifiers(BlenderRNA *brna, PropertyRNA *cprop)
/* RNA_def_property_collection_active(prop, prop_act); */
#endif
- /* add target */
+ /* add modifier */
func = RNA_def_function(srna, "new", "rna_Object_modifier_new");
RNA_def_function_flag(func, FUNC_USE_CONTEXT | FUNC_USE_REPORTS);
RNA_def_function_ui_description(func, "Add a new modifier");
- parm = RNA_def_string(func, "name", "Name", 0, "", "New name for the bone");
+ parm = RNA_def_string(func, "name", "Name", 0, "", "New name for the modifier");
RNA_def_property_flag(parm, PROP_REQUIRED);
/* modifier to add */
parm = RNA_def_enum(func, "type", modifier_type_items, 1, "", "Modifier type to add");
@@ -1772,11 +1790,11 @@ static void rna_def_object_modifiers(BlenderRNA *brna, PropertyRNA *cprop)
parm = RNA_def_pointer(func, "modifier", "Modifier", "", "Newly created modifier");
RNA_def_function_return(func, parm);
- /* remove target */
+ /* remove modifier */
func = RNA_def_function(srna, "remove", "rna_Object_modifier_remove");
RNA_def_function_flag(func, FUNC_USE_CONTEXT | FUNC_USE_REPORTS);
RNA_def_function_ui_description(func, "Remove an existing modifier from the object");
- /* target to remove*/
+ /* modifier to remove */
parm = RNA_def_pointer(func, "modifier", "Modifier", "", "Modifier to remove");
RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
@@ -1869,18 +1887,6 @@ static void rna_def_object(BlenderRNA *brna)
{
StructRNA *srna;
PropertyRNA *prop;
-
- static EnumPropertyItem empty_drawtype_items[] = {
- {OB_PLAINAXES, "PLAIN_AXES", 0, "Plain Axes", ""},
- {OB_ARROWS, "ARROWS", 0, "Arrows", ""},
- {OB_SINGLE_ARROW, "SINGLE_ARROW", 0, "Single Arrow", ""},
- {OB_CIRCLE, "CIRCLE", 0, "Circle", ""},
- {OB_CUBE, "CUBE", 0, "Cube", ""},
- {OB_EMPTY_SPHERE, "SPHERE", 0, "Sphere", ""},
- {OB_EMPTY_CONE, "CONE", 0, "Cone", ""},
- {OB_EMPTY_IMAGE, "IMAGE", 0, "Image", ""},
- {0, NULL, 0, NULL, NULL}
- };
static EnumPropertyItem track_items[] = {
{OB_POSX, "POS_X", 0, "+X", ""},
@@ -2262,7 +2268,7 @@ static void rna_def_object(BlenderRNA *brna)
/* empty */
prop = RNA_def_property(srna, "empty_draw_type", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "empty_drawtype");
- RNA_def_property_enum_items(prop, empty_drawtype_items);
+ RNA_def_property_enum_items(prop, object_empty_drawtype_items);
RNA_def_property_ui_text(prop, "Empty Display Type", "Viewport display style for empties");
RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, NULL);
@@ -2567,7 +2573,16 @@ static void rna_def_dupli_object(BlenderRNA *brna)
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE | PROP_EDITABLE);
RNA_def_property_ui_text(prop, "Particle Index", "Index in the lowest-level particle dupli list");
- /* TODO: DupliObject has more properties that can be wrapped */
+ prop = RNA_def_property(srna, "orco", PROP_FLOAT, PROP_TRANSLATION);
+ RNA_def_property_float_sdna(prop, NULL, "orco");
+ RNA_def_property_clear_flag(prop, PROP_ANIMATABLE | PROP_EDITABLE);
+ RNA_def_property_ui_text(prop, "Generated Coordinates", "Generated coordinates in parent object space");
+
+ prop = RNA_def_property(srna, "uv", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "uv");
+ RNA_def_property_array(prop, 2);
+ RNA_def_property_clear_flag(prop, PROP_ANIMATABLE | PROP_EDITABLE);
+ RNA_def_property_ui_text(prop, "UV Coordinates", "UV coordinates in parent object space");
}
static void rna_def_object_base(BlenderRNA *brna)
diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c
index a3e538da9b1..879a77527cd 100644
--- a/source/blender/makesrna/intern/rna_object_api.c
+++ b/source/blender/makesrna/intern/rna_object_api.c
@@ -39,6 +39,8 @@
#include "DNA_object_types.h"
#include "DNA_modifier_types.h"
+#include "rna_internal.h" /* own include */
+
#ifdef RNA_RUNTIME
#include "BLI_math.h"
@@ -85,9 +87,16 @@ Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_
case OB_FONT:
case OB_CURVE:
case OB_SURF:
+ {
+ ListBase dispbase = {NULL, NULL};
+ DerivedMesh *derivedFinal = NULL;
+ int uv_from_orco;
+
+ int (*orco_index)[4] = NULL;
+ float (*orco)[3] = NULL;
/* copies object and modifiers (but not the data) */
- tmpobj = BKE_object_copy(ob);
+ tmpobj = BKE_object_copy_with_caches(ob);
tmpcu = (Curve *)tmpobj->data;
tmpcu->id.us--;
@@ -105,12 +114,46 @@ Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_
copycu->editnurb = tmpcu->editnurb;
/* get updated display list, and convert to a mesh */
- BKE_displist_make_curveTypes(sce, tmpobj, 0);
+ BKE_displist_make_curveTypes_forRender(sce, tmpobj, &dispbase, &derivedFinal, FALSE);
copycu->editfont = NULL;
copycu->editnurb = NULL;
- BKE_mesh_from_nurbs(tmpobj);
+ tmpobj->derivedFinal = derivedFinal;
+
+ uv_from_orco = (tmpcu->flag & CU_UV_ORCO) != 0;
+
+ if (uv_from_orco) {
+ /* before curve conversion */
+ orco = (float (*)[3])BKE_curve_make_orco(sce, tmpobj);
+ }
+
+ /* convert object type to mesh */
+ BKE_mesh_from_nurbs_displist(tmpobj, &dispbase, uv_from_orco ? (int **)&orco_index : NULL);
+
+ tmpmesh = tmpobj->data;
+
+ if (uv_from_orco && orco && orco_index) {
+ const char *uvname = "Orco";
+ /* add UV's */
+ MTexPoly *mtpoly = CustomData_add_layer_named(&tmpmesh->pdata, CD_MTEXPOLY, CD_DEFAULT, NULL, tmpmesh->totpoly, uvname);
+ MLoopUV *mloopuvs = CustomData_add_layer_named(&tmpmesh->ldata, CD_MLOOPUV, CD_DEFAULT, NULL, tmpmesh->totloop, uvname);
+
+ BKE_mesh_nurbs_to_mdata_orco(tmpmesh->mpoly, tmpmesh->totpoly,
+ tmpmesh->mloop, mloopuvs,
+ orco, orco_index);
+
+ (void)mtpoly;
+ }
+
+ if (orco_index) {
+ MEM_freeN(orco_index);
+ }
+ if (orco) {
+ MEM_freeN(orco);
+ }
+
+ BKE_displist_free(&dispbase);
/* BKE_mesh_from_nurbs changes the type to a mesh, check it worked */
if (tmpobj->type != OB_MESH) {
@@ -118,11 +161,13 @@ Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_
BKE_report(reports, RPT_ERROR, "cant convert curve to mesh. Does the curve have any segments?");
return NULL;
}
- tmpmesh = tmpobj->data;
+
BKE_libblock_free_us(&G.main->object, tmpobj);
break;
+ }
- case OB_MBALL: {
+ case OB_MBALL:
+ {
/* metaballs don't have modifiers, so just convert to mesh */
Object *basis_ob = BKE_mball_basis_find(sce, ob);
/* todo, re-generatre for render-res */
@@ -132,6 +177,8 @@ Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_
return NULL; /* only do basis metaball */
tmpmesh = BKE_mesh_add("Mesh");
+ /* BKE_mesh_add gives us a user count we don't need */
+ tmpmesh->id.us--;
if (render) {
ListBase disp = {NULL, NULL};
@@ -141,6 +188,7 @@ Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_
}
else
BKE_mesh_from_metaball(&ob->disp, tmpmesh);
+
break;
}
@@ -169,6 +217,9 @@ Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_
dm->release(dm);
}
+ /* BKE_mesh_add/copy gives us a user count we don't need */
+ tmpmesh->id.us--;
+
break;
default:
BKE_report(reports, RPT_ERROR, "Object does not have geometry data");
@@ -238,9 +289,6 @@ Mesh *rna_Object_to_mesh(Object *ob, ReportList *reports, Scene *sce, int apply_
/* cycles and exporters rely on this still */
BKE_mesh_tessface_ensure(tmpmesh);
- /* we don't assign it to anything */
- tmpmesh->id.us--;
-
/* make sure materials get updated in objects */
test_object_materials(&tmpmesh->id);
@@ -292,8 +340,10 @@ static void dupli_render_particle_set(Scene *scene, Object *ob, int level, int e
dupli_render_particle_set(scene, go->ob, level + 1, enable);
}
/* When no longer needed, duplilist should be freed with Object.free_duplilist */
-void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *sce)
+void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *sce, int settings)
{
+ int for_render = settings == eModifierMode_Render;
+
if (!(ob->transflag & OB_DUPLI)) {
BKE_report(reports, RPT_ERROR, "Object does not have duplis");
return;
@@ -306,10 +356,10 @@ void rna_Object_create_duplilist(Object *ob, ReportList *reports, Scene *sce)
free_object_duplilist(ob->duplilist);
ob->duplilist = NULL;
}
- if (G.rendering)
+ if (G.is_rendering)
dupli_render_particle_set(sce, ob, 0, 1);
- ob->duplilist = object_duplilist(sce, ob);
- if (G.rendering)
+ ob->duplilist = object_duplilist(sce, ob, for_render);
+ if (G.is_rendering)
dupli_render_particle_set(sce, ob, 0, 0);
/* ob->duplilist should now be freed with Object.free_duplilist */
}
@@ -342,7 +392,7 @@ static PointerRNA rna_Object_shape_key_add(Object *ob, bContext *C, ReportList *
}
}
-int rna_Object_is_visible(Object *ob, Scene *sce)
+static int rna_Object_is_visible(Object *ob, Scene *sce)
{
return !(ob->restrictflag & OB_RESTRICT_VIEW) && (ob->lay & sce->lay);
}
@@ -385,8 +435,8 @@ static void rna_Mesh_assign_verts_to_group(Object *ob, bDeformGroup *group, int
#endif
/* BMESH_TODO, return polygon index, not tessface */
-void rna_Object_ray_cast(Object *ob, ReportList *reports, float ray_start[3], float ray_end[3],
- float r_location[3], float r_normal[3], int *index)
+static void rna_Object_ray_cast(Object *ob, ReportList *reports, float ray_start[3], float ray_end[3],
+ float r_location[3], float r_normal[3], int *index)
{
BVHTreeFromMesh treeData = {NULL};
@@ -427,8 +477,8 @@ void rna_Object_ray_cast(Object *ob, ReportList *reports, float ray_start[3], fl
*index = -1;
}
-void rna_Object_closest_point_on_mesh(Object *ob, ReportList *reports, float point_co[3], float max_dist,
- float n_location[3], float n_normal[3], int *index)
+static void rna_Object_closest_point_on_mesh(Object *ob, ReportList *reports, float point_co[3], float max_dist,
+ float n_location[3], float n_normal[3], int *index)
{
BVHTreeFromMesh treeData = {NULL};
@@ -467,7 +517,7 @@ void rna_Object_closest_point_on_mesh(Object *ob, ReportList *reports, float poi
/* ObjectBase */
-void rna_ObjectBase_layers_from_view(Base *base, View3D *v3d)
+static void rna_ObjectBase_layers_from_view(Base *base, View3D *v3d)
{
base->lay = base->object->lay = v3d->lay;
}
@@ -563,6 +613,7 @@ void RNA_api_object(StructRNA *srna)
"objects real matrix and layers");
parm = RNA_def_pointer(func, "scene", "Scene", "", "Scene within which to evaluate duplis");
RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
+ parm = RNA_def_enum(func, "settings", mesh_type_items, 0, "", "Generate texture coordinates for rendering");
RNA_def_function_flag(func, FUNC_USE_REPORTS);
func = RNA_def_function(srna, "dupli_list_clear", "rna_Object_free_duplilist");
diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c
index 1c896133408..39f85ebc742 100644
--- a/source/blender/makesrna/intern/rna_object_force.c
+++ b/source/blender/makesrna/intern/rna_object_force.c
@@ -1307,7 +1307,7 @@ static void rna_def_field(BlenderRNA *brna)
prop = RNA_def_property(srna, "use_2d_force", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", PFIELD_TEX_2D);
- RNA_def_property_ui_text(prop, "2D", "Apply force only in 2d");
+ RNA_def_property_ui_text(prop, "2D", "Apply force only in 2D");
RNA_def_property_update(prop, 0, "rna_FieldSettings_update");
prop = RNA_def_property(srna, "use_root_coords", PROP_BOOLEAN, PROP_NONE);
diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c
index 8cf3b718c30..363d2dc020a 100644
--- a/source/blender/makesrna/intern/rna_particle.c
+++ b/source/blender/makesrna/intern/rna_particle.c
@@ -502,7 +502,7 @@ static int rna_PartSettings_is_fluid_get(PointerRNA *ptr)
return part->type == PART_FLUID;
}
-void rna_ParticleSystem_name_set(PointerRNA *ptr, const char *value)
+static void rna_ParticleSystem_name_set(PointerRNA *ptr, const char *value)
{
Object *ob = ptr->id.data;
ParticleSystem *part = (ParticleSystem *)ptr->data;
@@ -1846,6 +1846,11 @@ static void rna_def_particle_settings(BlenderRNA *brna)
"particle rotation axis)");
RNA_def_property_update(prop, 0, "rna_Particle_redo");
+ prop = RNA_def_property(srna, "use_scale_dupli", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "draw", PART_DRAW_NO_SCALE_OB);
+ RNA_def_property_ui_text(prop, "Scale", "Use object's scale for duplication");
+ RNA_def_property_update(prop, 0, "rna_Particle_redo");
+
prop = RNA_def_property(srna, "use_render_adaptive", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "draw", PART_DRAW_REN_ADAPT);
RNA_def_property_ui_text(prop, "Adaptive render", "Draw steps of the particle path");
@@ -2130,7 +2135,7 @@ static void rna_def_particle_settings(BlenderRNA *brna)
RNA_def_property_float_default(prop, 0.2);
RNA_def_property_ui_text(prop, "Adaptive Subframe Threshold",
"The relative distance a particle can move before requiring more subframes "
- "(target Courant number); 0.1-0.3 is the recommended range");
+ "(target current number); 0.1-0.3 is the recommended range");
RNA_def_property_update(prop, 0, "rna_Particle_reset");
prop = RNA_def_property(srna, "jitter_factor", PROP_FLOAT, PROP_NONE);
diff --git a/source/blender/makesrna/intern/rna_pose.c b/source/blender/makesrna/intern/rna_pose.c
index 35c85f0f40e..df278e7cf16 100644
--- a/source/blender/makesrna/intern/rna_pose.c
+++ b/source/blender/makesrna/intern/rna_pose.c
@@ -148,7 +148,7 @@ void rna_ActionGroup_colorset_set(PointerRNA *ptr, int value)
}
}
-void rna_BoneGroup_name_set(PointerRNA *ptr, const char *value)
+static void rna_BoneGroup_name_set(PointerRNA *ptr, const char *value)
{
Object *ob = ptr->id.data;
bActionGroup *agrp = ptr->data;
@@ -257,7 +257,7 @@ static int rna_PoseChannel_has_ik_get(PointerRNA *ptr)
return ED_pose_channel_in_IK_chain(ob, pchan);
}
-StructRNA *rna_IKParam_refine(PointerRNA *ptr)
+static StructRNA *rna_IKParam_refine(PointerRNA *ptr)
{
bIKParam *param = (bIKParam *)ptr->data;
@@ -269,7 +269,7 @@ StructRNA *rna_IKParam_refine(PointerRNA *ptr)
}
}
-PointerRNA rna_Pose_ikparam_get(struct PointerRNA *ptr)
+static PointerRNA rna_Pose_ikparam_get(struct PointerRNA *ptr)
{
bPose *pose = (bPose *)ptr->data;
return rna_pointer_inherit_refine(ptr, &RNA_IKParam, pose->ikparam);
@@ -593,7 +593,7 @@ static int rna_PoseChannel_rotation_4d_editable(PointerRNA *ptr, int index)
}
/* not essential, but much faster then the default lookup function */
-int rna_PoseBones_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
+static int rna_PoseBones_lookup_string(PointerRNA *ptr, const char *key, PointerRNA *r_ptr)
{
bPose *pose = (bPose *)ptr->data;
bPoseChannel *pchan = BKE_pose_channel_find_name(pose, key);
@@ -788,8 +788,6 @@ static void rna_def_pose_channel(BlenderRNA *brna)
RNA_def_property_editable_array_func(prop, "rna_PoseChannel_location_editable");
RNA_def_property_ui_text(prop, "Location", "");
RNA_def_property_ui_range(prop, -FLT_MAX, FLT_MAX, 1, RNA_TRANSLATION_PREC_DEFAULT);
- /* XXX... disabled, since proxy-locked layers are currently used for ensuring proxy-syncing too */
- RNA_def_property_editable_func(prop, "rna_PoseChannel_proxy_editable");
RNA_def_property_update(prop, NC_OBJECT | ND_POSE, "rna_Pose_update");
prop = RNA_def_property(srna, "scale", PROP_FLOAT, PROP_XYZ);
@@ -797,8 +795,6 @@ static void rna_def_pose_channel(BlenderRNA *brna)
RNA_def_property_editable_array_func(prop, "rna_PoseChannel_scale_editable");
RNA_def_property_float_array_default(prop, default_scale);
RNA_def_property_ui_text(prop, "Scale", "");
- /* XXX... disabled, since proxy-locked layers are currently used for ensuring proxy-syncing too */
- RNA_def_property_editable_func(prop, "rna_PoseChannel_proxy_editable");
RNA_def_property_update(prop, NC_OBJECT | ND_POSE, "rna_Pose_update");
prop = RNA_def_property(srna, "rotation_quaternion", PROP_FLOAT, PROP_QUATERNION);
@@ -806,8 +802,6 @@ static void rna_def_pose_channel(BlenderRNA *brna)
RNA_def_property_editable_array_func(prop, "rna_PoseChannel_rotation_4d_editable");
RNA_def_property_float_array_default(prop, default_quat);
RNA_def_property_ui_text(prop, "Quaternion Rotation", "Rotation in Quaternions");
- /* XXX... disabled, since proxy-locked layers are currently used for ensuring proxy-syncing too */
- RNA_def_property_editable_func(prop, "rna_PoseChannel_proxy_editable");
RNA_def_property_update(prop, NC_OBJECT | ND_POSE, "rna_Pose_update");
/* XXX: for axis-angle, it would have been nice to have 2 separate fields for UI purposes, but
@@ -820,15 +814,11 @@ static void rna_def_pose_channel(BlenderRNA *brna)
RNA_def_property_editable_array_func(prop, "rna_PoseChannel_rotation_4d_editable");
RNA_def_property_float_array_default(prop, default_axisAngle);
RNA_def_property_ui_text(prop, "Axis-Angle Rotation", "Angle of Rotation for Axis-Angle rotation representation");
- /* XXX... disabled, since proxy-locked layers are currently used for ensuring proxy-syncing too */
- RNA_def_property_editable_func(prop, "rna_PoseChannel_proxy_editable");
RNA_def_property_update(prop, NC_OBJECT | ND_POSE, "rna_Pose_update");
prop = RNA_def_property(srna, "rotation_euler", PROP_FLOAT, PROP_EULER);
RNA_def_property_float_sdna(prop, NULL, "eul");
RNA_def_property_editable_array_func(prop, "rna_PoseChannel_rotation_euler_editable");
- /* XXX... disabled, since proxy-locked layers are currently used for ensuring proxy-syncing too */
- RNA_def_property_editable_func(prop, "rna_PoseChannel_proxy_editable");
RNA_def_property_ui_text(prop, "Euler Rotation", "Rotation in Eulers");
RNA_def_property_update(prop, NC_OBJECT | ND_POSE, "rna_Pose_update");
@@ -1109,7 +1099,7 @@ static void rna_def_pose_itasc(BlenderRNA *brna)
{0, "ANIMATION", 0, "Animation",
"Stateless solver computing pose starting from current action and non-IK constraints"},
{ITASC_SIMULATION, "SIMULATION", 0, "Simulation",
- "Statefull solver running in real-time context and ignoring actions "
+ "State-full solver running in real-time context and ignoring actions "
"and non-IK constraints"},
{0, NULL, 0, NULL, NULL}
};
@@ -1310,7 +1300,7 @@ static void rna_def_pose(BlenderRNA *brna)
/* animviz */
rna_def_animviz_common(srna);
- /* RNA_api_pose(srna); */
+ RNA_api_pose(srna);
}
void RNA_def_pose(BlenderRNA *brna)
diff --git a/source/blender/makesrna/intern/rna_pose_api.c b/source/blender/makesrna/intern/rna_pose_api.c
index ed4690ac6a7..29d7c616d25 100644
--- a/source/blender/makesrna/intern/rna_pose_api.c
+++ b/source/blender/makesrna/intern/rna_pose_api.c
@@ -34,12 +34,16 @@
#include <string.h>
#include <time.h>
+#include "BLI_utildefines.h"
+
#include "RNA_define.h"
#include "DNA_object_types.h"
/* #include "BLO_sys_types.h" */
+#include "rna_internal.h" /* own include */
+
#ifdef RNA_RUNTIME
/* #include "DNA_anim_types.h" */
@@ -57,7 +61,7 @@ static float rna_PoseBone_do_envelope(bPoseChannel *chan, float *vec)
}
#else
-void RNA_api_pose(StructRNA *srna)
+void RNA_api_pose(StructRNA *UNUSED(srna))
{
/* FunctionRNA *func; */
/* PropertyRNA *parm; */
diff --git a/source/blender/makesrna/intern/rna_property.c b/source/blender/makesrna/intern/rna_property.c
index bf9f924489b..fc3697633a4 100644
--- a/source/blender/makesrna/intern/rna_property.c
+++ b/source/blender/makesrna/intern/rna_property.c
@@ -89,7 +89,7 @@ static void rna_GameProperty_type_set(PointerRNA *ptr, int value)
if (prop->type != value) {
prop->type = value;
- init_property(prop);
+ BKE_bproperty_init(prop);
}
}
@@ -97,7 +97,7 @@ static void rna_GameProperty_name_set(PointerRNA *ptr, const char *value)
{
bProperty *prop = (bProperty *)(ptr->data);
BLI_strncpy_utf8(prop->name, value, sizeof(prop->name));
- unique_property(NULL, prop, 1);
+ BKE_bproperty_unique(NULL, prop, 1);
}
diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c
index fff16650a93..039d50e4ee8 100644
--- a/source/blender/makesrna/intern/rna_render.c
+++ b/source/blender/makesrna/intern/rna_render.c
@@ -24,11 +24,12 @@
* \ingroup RNA
*/
-
#include <stdlib.h>
#include "DNA_scene_types.h"
+#include "BLI_path_util.h"
+
#include "RNA_define.h"
#include "RNA_enum_types.h"
@@ -37,7 +38,6 @@
#include "RE_engine.h"
#include "RE_pipeline.h"
-#include "BKE_utildefines.h"
#ifdef RNA_RUNTIME
@@ -317,6 +317,7 @@ static void rna_def_render_engine(BlenderRNA *brna)
RNA_def_property_flag(prop, PROP_REQUIRED);
prop = RNA_def_int(func, "h", 0, 0, INT_MAX, "Height", "", 0, INT_MAX);
RNA_def_property_flag(prop, PROP_REQUIRED);
+ RNA_def_string(func, "layer", "", 0, "Layer", "Single layer to get render result for"); /* NULL ok here */
prop = RNA_def_pointer(func, "result", "RenderResult", "Result", "");
RNA_def_function_return(func, prop);
@@ -327,6 +328,7 @@ static void rna_def_render_engine(BlenderRNA *brna)
func = RNA_def_function(srna, "end_result", "RE_engine_end_result");
prop = RNA_def_pointer(func, "result", "RenderResult", "Result", "");
RNA_def_property_flag(prop, PROP_REQUIRED);
+ prop = RNA_def_boolean(func, "cancel", 0, "Cancel", "Don't merge back results");
func = RNA_def_function(srna, "test_break", "RE_engine_test_break");
prop = RNA_def_boolean(func, "do_break", 0, "Break", "");
@@ -360,6 +362,19 @@ static void rna_def_render_engine(BlenderRNA *brna)
RNA_def_property_pointer_sdna(prop, NULL, "camera_override");
RNA_def_property_struct_type(prop, "Object");
+ prop = RNA_def_property(srna, "tile_x", PROP_INT, PROP_UNSIGNED);
+ RNA_def_property_int_sdna(prop, NULL, "tile_x");
+ prop = RNA_def_property(srna, "tile_y", PROP_INT, PROP_UNSIGNED);
+ RNA_def_property_int_sdna(prop, NULL, "tile_y");
+
+ prop = RNA_def_property(srna, "resolution_x", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "resolution_x");
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+
+ prop = RNA_def_property(srna, "resolution_y", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "resolution_y");
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+
/* registration */
prop = RNA_def_property(srna, "bl_idname", PROP_STRING, PROP_NONE);
diff --git a/source/blender/makesrna/intern/rna_rna.c b/source/blender/makesrna/intern/rna_rna.c
index aab3483e29b..db309ed8f1f 100644
--- a/source/blender/makesrna/intern/rna_rna.c
+++ b/source/blender/makesrna/intern/rna_rna.c
@@ -526,7 +526,7 @@ static int rna_Property_readonly_get(PointerRNA *ptr)
{
PropertyRNA *prop = (PropertyRNA *)ptr->data;
- /* don't use this becaure it will call functions that check the internal
+ /* don't use this because it will call functions that check the internal
* data for introspection we only need to know if it can be edited so the
* flag is better for this */
/* return RNA_property_editable(ptr, prop); */
@@ -829,7 +829,7 @@ static void rna_EnumProperty_items_begin(CollectionPropertyIterator *iter, Point
int totitem, free = 0;
rna_idproperty_check(&prop, ptr);
- /* eprop= (EnumPropertyRNA*)prop; */
+ /* eprop= (EnumPropertyRNA *)prop; */
RNA_property_enum_items(NULL, ptr, prop, &item, &totitem, &free);
rna_iterator_array_begin(iter, (void *)item, sizeof(EnumPropertyItem), totitem, free, rna_enum_check_separator);
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index ec09682d8b0..a3616e0845a 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -37,6 +37,7 @@
#include "DNA_particle_types.h"
#include "DNA_scene_types.h"
#include "DNA_userdef_types.h"
+#include "DNA_world_types.h"
#include "BLI_math.h"
@@ -145,7 +146,7 @@ EnumPropertyItem snap_node_element_items[] = {
};
-/* workaround for duplice enums,
+/* workaround for duplicate enums,
* have each enum line as a defne then conditionally set it or not
*/
@@ -158,12 +159,13 @@ EnumPropertyItem snap_node_element_items[] = {
#define R_IMF_ENUM_TAGA_RAW {R_IMF_IMTYPE_RAWTGA, "TARGA_RAW", ICON_FILE_IMAGE, "Targa Raw", \
"Output image in uncompressed Targa format"},
-
+#if 0 /* UNUSED (so far) */
#ifdef WITH_DDS
# define R_IMF_ENUM_DDS {R_IMF_IMTYPE_DDS, "DDS", ICON_FILE_IMAGE, "DDS", "Output image in DDS format"},
#else
# define R_IMF_ENUM_DDS
#endif
+#endif
#ifdef WITH_OPENJPEG
# define R_IMF_ENUM_JPEG2K {R_IMF_IMTYPE_JP2, "JPEG2000", ICON_FILE_IMAGE, "JPEG 2000", \
@@ -208,7 +210,7 @@ EnumPropertyItem snap_node_element_items[] = {
#define IMAGE_TYPE_ITEMS_IMAGE_ONLY \
R_IMF_ENUM_BMP \
- R_IMF_ENUM_DDS \
+ /* DDS save not supported yet R_IMF_ENUM_DDS */ \
R_IMF_ENUM_IRIS \
R_IMF_ENUM_PNG \
R_IMF_ENUM_JPEG \
@@ -237,10 +239,6 @@ EnumPropertyItem image_type_items[] = {
IMAGE_TYPE_ITEMS_IMAGE_ONLY
{0, "", 0, N_("Movie"), NULL},
-#ifdef _WIN32
- /* XXX Missing codec menu */
- {R_IMF_IMTYPE_AVICODEC, "AVICODEC", ICON_FILE_MOVIE, "AVI Codec", "Output video in AVI format"},
-#endif
{R_IMF_IMTYPE_AVIJPEG, "AVI_JPEG", ICON_FILE_MOVIE, "AVI JPEG", "Output video in AVI JPEG format"},
{R_IMF_IMTYPE_AVIRAW, "AVI_RAW", ICON_FILE_MOVIE, "AVI Raw", "Output video in AVI Raw format"},
#ifdef WITH_FRAMESERVER
@@ -478,7 +476,7 @@ static void rna_Scene_layer_update(Main *bmain, Scene *scene, PointerRNA *ptr)
static void rna_Scene_fps_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr))
{
sound_update_fps(scene);
- seq_update_sound_bounds_all(scene);
+ BKE_sequencer_update_sound_bounds_all(scene);
}
static void rna_Scene_listener_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr))
@@ -501,7 +499,7 @@ static void rna_Scene_framelen_update(Main *UNUSED(bmain), Scene *scene, Pointer
}
-static void rna_Scene_current_frame_set(PointerRNA *ptr, int value)
+static void rna_Scene_frame_current_set(PointerRNA *ptr, int value)
{
Scene *data = (Scene *)ptr->data;
@@ -771,7 +769,7 @@ static EnumPropertyItem *rna_ImageFormatSettings_color_mode_itemf(bContext *C, P
#ifdef WITH_FFMPEG
/* a WAY more crappy case than B&W flag: depending on codec, file format MIGHT support
* alpha channel. for example MPEG format with h264 codec can't do alpha channel, but
- * the same MPEG format with QTRLE codec can easily handle alpga channel.
+ * the same MPEG format with QTRLE codec can easily handle alpha channel.
* not sure how to deal with such cases in a nicer way (sergey) */
if (is_render) {
Scene *scene = ptr->id.data;
@@ -1096,34 +1094,6 @@ static void rna_Scene_glsl_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Poi
DAG_id_tag_update(&scene->id, 0);
}
-static void rna_RenderSettings_color_management_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr)
-{
- /* reset image nodes */
- Scene *scene = (Scene *)ptr->id.data;
- bNodeTree *ntree = scene->nodetree;
- bNode *node;
-
- if (ntree && scene->use_nodes) {
- /* images are freed here, stop render and preview threads, until
- * Image is threadsafe. when we are changing this propery from a
- * python script in the render thread, don't stop own thread */
- if (BLI_thread_is_main())
- WM_jobs_stop_all(bmain->wm.first);
-
- for (node = ntree->nodes.first; node; node = node->next) {
- if (ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_IMAGE)) {
- ED_node_changed_update(&scene->id, node);
- WM_main_add_notifier(NC_NODE | NA_EDITED, node);
-
- if (node->type == CMP_NODE_IMAGE)
- BKE_image_signal((Image *)node->id, NULL, IMA_SIGNAL_FREE);
- }
- }
- }
-
- rna_Scene_glsl_update(bmain, scene, ptr);
-}
-
static void rna_SceneRenderLayer_name_set(PointerRNA *ptr, const char *value)
{
Scene *scene = (Scene *)ptr->id.data;
@@ -2475,7 +2445,7 @@ static void rna_def_scene_game_data(BlenderRNA *brna)
prop = RNA_def_property(srna, "use_desktop", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "playerflag", GAME_PLAYER_DESKTOP_RESOLUTION);
- RNA_def_property_ui_text(prop, "Desktop", "Uses the current desktop resultion in fullscreen mode");
+ RNA_def_property_ui_text(prop, "Desktop", "Use the current desktop resolution in fullscreen mode");
RNA_def_property_update(prop, NC_SCENE, NULL);
/* Framing */
@@ -2635,13 +2605,13 @@ static void rna_def_scene_game_data(BlenderRNA *brna)
/* mode */
prop = RNA_def_property(srna, "use_occlusion_culling", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "mode", (1 << 5)); /*XXX mode hardcoded *//* WO_DBVT_CULLING */
+ RNA_def_property_boolean_sdna(prop, NULL, "mode", WO_DBVT_CULLING);
RNA_def_property_ui_text(prop, "DBVT culling",
"Use optimized Bullet DBVT tree for view frustum and occlusion culling");
/* not used *//* deprecated !!!!!!!!!!!!! */
prop = RNA_def_property(srna, "use_activity_culling", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "mode", (1 << 3)); /*XXX mode hardcoded */
+ RNA_def_property_boolean_sdna(prop, NULL, "mode", WO_ACTIVITY_CULLING);
RNA_def_property_ui_text(prop, "Activity Culling", "Activity culling is enabled");
/* not used *//* deprecated !!!!!!!!!!!!! */
@@ -2961,6 +2931,17 @@ static void rna_def_scene_image_format_data(BlenderRNA *brna)
RNA_def_property_range(prop, 0.0f, 10.0f);
RNA_def_property_ui_text(prop, "G", "Log conversion gamma");
RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
+
+ /* color management */
+ prop = RNA_def_property(srna, "view_settings", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "view_settings");
+ RNA_def_property_struct_type(prop, "ColorManagedViewSettings");
+ RNA_def_property_ui_text(prop, "View Settings", "Color management settings applied on image before saving");
+
+ prop = RNA_def_property(srna, "display_settings", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "display_settings");
+ RNA_def_property_struct_type(prop, "ColorManagedDisplaySettings");
+ RNA_def_property_ui_text(prop, "Display Settings", "Settings of device saved image would be displayed on");
}
static void rna_def_scene_ffmpeg_settings(BlenderRNA *brna)
@@ -2998,7 +2979,7 @@ static void rna_def_scene_ffmpeg_settings(BlenderRNA *brna)
{CODEC_ID_FLV1, "FLASH", 0, "Flash Video", ""},
{CODEC_ID_FFV1, "FFV1", 0, "FFmpeg video codec #1", ""},
{CODEC_ID_QTRLE, "QTRLE", 0, "QTRLE", ""},
- /* {CODEC_ID_DNXHD, "DNXHD", 0, "DNxHD", ""}, */ /* disabled for after release */
+ {CODEC_ID_DNXHD, "DNXHD", 0, "DNxHD", ""},
{0, NULL, 0, NULL, NULL}
};
@@ -3046,21 +3027,21 @@ static void rna_def_scene_ffmpeg_settings(BlenderRNA *brna)
prop = RNA_def_property(srna, "video_bitrate", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "video_bitrate");
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
- RNA_def_property_range(prop, 1, 14000);
+ RNA_def_property_range(prop, 1, 64000);
RNA_def_property_ui_text(prop, "Bitrate", "Video bitrate (kb/s)");
RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
prop = RNA_def_property(srna, "minrate", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "rc_min_rate");
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
- RNA_def_property_range(prop, 0, 9000);
+ RNA_def_property_range(prop, 0, 48000);
RNA_def_property_ui_text(prop, "Min Rate", "Rate control: min rate (kb/s)");
RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
prop = RNA_def_property(srna, "maxrate", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "rc_max_rate");
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
- RNA_def_property_range(prop, 1, 14000);
+ RNA_def_property_range(prop, 1, 96000);
RNA_def_property_ui_text(prop, "Max Rate", "Rate control: max rate (kb/s)");
RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
@@ -3125,6 +3106,7 @@ static void rna_def_scene_ffmpeg_settings(BlenderRNA *brna)
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_range(prop, 0.0f, 1.0f);
RNA_def_property_ui_text(prop, "Volume", "Audio volume");
+ RNA_def_property_translation_context(prop, "Audio");
RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
#endif
@@ -3556,11 +3538,13 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
RNA_def_property_boolean_sdna(prop, NULL, "mode", R_ENVMAP);
RNA_def_property_ui_text(prop, "Environment Maps", "Calculate environment maps while rendering");
RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
-
+
+#if 0
prop = RNA_def_property(srna, "use_radiosity", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", R_RADIO);
RNA_def_property_ui_text(prop, "Radiosity", "Calculate radiosity in a pre-process before rendering");
RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
+#endif
prop = RNA_def_property(srna, "use_sss", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", R_SSS);
@@ -3699,11 +3683,6 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
"editor pipeline, if sequencer strips exist");
RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
- prop = RNA_def_property(srna, "use_color_management", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "color_mgt_flag", R_COLOR_MANAGEMENT);
- RNA_def_property_ui_text(prop, "Color Management", "Use linear workflow - gamma corrected imaging pipeline");
- RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, "rna_RenderSettings_color_management_update");
-
prop = RNA_def_property(srna, "use_color_unpremultiply", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "color_mgt_flag", R_COLOR_MANAGEMENT_PREDIVIDE);
RNA_def_property_ui_text(prop, "Color Unpremultiply",
@@ -3985,6 +3964,7 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
RNA_def_property_enum_items(prop, engine_items);
RNA_def_property_enum_funcs(prop, "rna_RenderSettings_engine_get", "rna_RenderSettings_engine_set",
"rna_RenderSettings_engine_itemf");
+ RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_ui_text(prop, "Engine", "Engine to use for rendering");
RNA_def_property_update(prop, NC_WINDOW, "rna_RenderSettings_engine_update");
@@ -4322,7 +4302,7 @@ void RNA_def_scene(BlenderRNA *brna)
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_int_sdna(prop, NULL, "r.cfra");
RNA_def_property_range(prop, MINAFRAME, MAXFRAME);
- RNA_def_property_int_funcs(prop, NULL, "rna_Scene_current_frame_set", NULL);
+ RNA_def_property_int_funcs(prop, NULL, "rna_Scene_frame_current_set", NULL);
RNA_def_property_ui_text(prop, "Current Frame",
"Current Frame, to update animation data from python frame_set() instead");
RNA_def_property_update(prop, NC_SCENE | ND_FRAME, "rna_Scene_frame_update");
@@ -4538,6 +4518,7 @@ void RNA_def_scene(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "audio.volume");
RNA_def_property_range(prop, 0.0f, 1.0f);
RNA_def_property_ui_text(prop, "Volume", "Audio volume");
+ RNA_def_property_translation_context(prop, BLF_I18NCONTEXT_AUDIO);
RNA_def_property_update(prop, NC_SCENE, NULL);
RNA_def_property_float_funcs(prop, NULL, "rna_Scene_volume_set", NULL);
@@ -4575,6 +4556,22 @@ void RNA_def_scene(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Active Movie Clip", "Active movie clip used for constraints and viewport drawing");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
+ /* color management */
+ prop = RNA_def_property(srna, "view_settings", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "view_settings");
+ RNA_def_property_struct_type(prop, "ColorManagedViewSettings");
+ RNA_def_property_ui_text(prop, "View Settings", "Color management settings applied on image before saving");
+
+ prop = RNA_def_property(srna, "display_settings", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "display_settings");
+ RNA_def_property_struct_type(prop, "ColorManagedDisplaySettings");
+ RNA_def_property_ui_text(prop, "Display Settings", "Settings of device saved image would be displayed on");
+
+ prop = RNA_def_property(srna, "sequencer_colorspace_settings", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "sequencer_colorspace_settings");
+ RNA_def_property_struct_type(prop, "ColorManagedColorspaceSettings");
+ RNA_def_property_ui_text(prop, "Sequencer Color Space Settings", "Settings of color space sequencer is working in");
+
/* Nestled Data */
rna_def_tool_settings(brna);
rna_def_unified_paint_settings(brna);
diff --git a/source/blender/makesrna/intern/rna_scene_api.c b/source/blender/makesrna/intern/rna_scene_api.c
index 13b60498900..cdf7ac5e68f 100644
--- a/source/blender/makesrna/intern/rna_scene_api.c
+++ b/source/blender/makesrna/intern/rna_scene_api.c
@@ -32,13 +32,15 @@
#include <stdlib.h>
#include <stdio.h>
+#include "BLI_path_util.h"
+
#include "RNA_define.h"
#include "DNA_anim_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-#include "BKE_utildefines.h"
+#include "rna_internal.h" /* own include */
#ifdef RNA_RUNTIME
@@ -60,7 +62,7 @@ void rna_Scene_frame_set(Scene *scene, int frame, float subframe)
BKE_scene_update_for_newframe(G.main, scene, (1 << 20) - 1);
BKE_scene_camera_switch_update(scene);
- /* cant use NC_SCENE|ND_FRAME because this casues wm_event_do_notifiers to call
+ /* cant use NC_SCENE|ND_FRAME because this causes wm_event_do_notifiers to call
* BKE_scene_update_for_newframe which will loose any un-keyed changes [#24690] */
/* WM_main_add_notifier(NC_SCENE|ND_FRAME, scene); */
diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c
index d405cba6607..32e388598f5 100644
--- a/source/blender/makesrna/intern/rna_screen.c
+++ b/source/blender/makesrna/intern/rna_screen.c
@@ -57,6 +57,8 @@ EnumPropertyItem region_type_items[] = {
#include "BKE_global.h"
+#include "UI_view2d.h"
+
static void rna_Screen_scene_set(PointerRNA *ptr, PointerRNA value)
{
bScreen *sc = (bScreen *)ptr->data;
@@ -138,6 +140,19 @@ static void rna_Area_type_update(bContext *C, PointerRNA *ptr)
}
}
+static void rna_View2D_region_to_view(struct View2D *v2d, int x, int y, float result[2])
+{
+ UI_view2d_region_to_view(v2d, x, y, &result[0], &result[1]);
+}
+
+static void rna_View2D_view_to_region(struct View2D *v2d, float x, float y, int clip, int result[2])
+{
+ if (clip)
+ UI_view2d_view_to_region(v2d, x, y, &result[0], &result[1]);
+ else
+ UI_view2d_to_region_no_clip(v2d, x, y, &result[0], &result[1]);
+}
+
#else
/* Area.spaces */
@@ -220,6 +235,50 @@ static void rna_def_area(BlenderRNA *brna)
RNA_def_string(func, "text", NULL, 0, "Text", "New string for the header, no argument clears the text");
}
+static void rna_def_view2d_api(StructRNA *srna)
+{
+ FunctionRNA *func;
+ PropertyRNA *parm;
+
+ static const float view_default[2] = {0.0f, 0.0f};
+ static const int region_default[2] = {0.0f, 0.0f};
+
+ func = RNA_def_function(srna, "region_to_view", "rna_View2D_region_to_view");
+ RNA_def_function_ui_description(func, "Transform region coordinates to 2D view");
+ parm = RNA_def_int(func, "x", 0, INT_MIN, INT_MAX, "x", "Region x coordinate", -10000, 10000);
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+ parm = RNA_def_int(func, "y", 0, INT_MIN, INT_MAX, "y", "Region y coordinate", -10000, 10000);
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+ parm = RNA_def_float_array(func, "result", 2, view_default, -FLT_MAX, FLT_MAX, "Result", "View coordinates", -10000.0f, 10000.0f);
+ RNA_def_property_flag(parm, PROP_THICK_WRAP);
+ RNA_def_function_output(func, parm);
+
+ func = RNA_def_function(srna, "view_to_region", "rna_View2D_view_to_region");
+ RNA_def_function_ui_description(func, "Transform 2D view coordinates to region");
+ parm = RNA_def_float(func, "x", 0.0f, -FLT_MAX, FLT_MAX, "x", "2D View x coordinate", -10000.0f, 10000.0f);
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+ parm = RNA_def_float(func, "y", 0.0f, -FLT_MAX, FLT_MAX, "y", "2D View y coordinate", -10000.0f, 10000.0f);
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+ RNA_def_boolean(func, "clip", 1, "Clip", "Clip coordinates to the visible region");
+ parm = RNA_def_int_array(func, "result", 2, region_default, INT_MIN, INT_MAX, "Result", "Region coordinates", -10000, 10000);
+ RNA_def_property_flag(parm, PROP_THICK_WRAP);
+ RNA_def_function_output(func, parm);
+}
+
+static void rna_def_view2d(BlenderRNA *brna)
+{
+ StructRNA *srna;
+ /* PropertyRNA *prop; */
+
+ srna = RNA_def_struct(brna, "View2D", NULL);
+ RNA_def_struct_ui_text(srna, "View2D", "Scroll and zoom for a 2D region");
+ RNA_def_struct_sdna(srna, "View2D");
+
+ /* TODO more View2D properties could be exposed here (read-only) */
+
+ rna_def_view2d_api(srna);
+}
+
static void rna_def_region(BlenderRNA *brna)
{
StructRNA *srna;
@@ -260,6 +319,12 @@ static void rna_def_region(BlenderRNA *brna)
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_ui_text(prop, "Height", "Region height");
+ prop = RNA_def_property(srna, "view2d", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "v2d");
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_flag(prop, PROP_NEVER_NULL);
+ RNA_def_property_ui_text(prop, "View2D", "2D view of the region");
+
RNA_def_function(srna, "tag_redraw", "ED_region_tag_redraw");
}
@@ -345,6 +410,7 @@ void RNA_def_screen(BlenderRNA *brna)
rna_def_screen(brna);
rna_def_area(brna);
rna_def_region(brna);
+ rna_def_view2d(brna);
}
#endif
diff --git a/source/blender/makesrna/intern/rna_sensor.c b/source/blender/makesrna/intern/rna_sensor.c
index 00e8ed5289f..6097fa2ae96 100644
--- a/source/blender/makesrna/intern/rna_sensor.c
+++ b/source/blender/makesrna/intern/rna_sensor.c
@@ -104,7 +104,7 @@ static StructRNA *rna_Sensor_refine(struct PointerRNA *ptr)
}
}
-void rna_Sensor_name_set(PointerRNA *ptr, const char *value)
+static void rna_Sensor_name_set(PointerRNA *ptr, const char *value)
{
bSensor *sens = (bSensor *)ptr->data;
@@ -417,6 +417,11 @@ static void rna_def_mouse_sensor(BlenderRNA *brna)
RNA_def_property_enum_items(prop, mouse_event_items);
RNA_def_property_ui_text(prop, "Mouse Event", "Type of event this mouse sensor should trigger on");
RNA_def_property_update(prop, NC_LOGIC, NULL);
+
+ prop = RNA_def_property(srna, "use_pulse", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", SENS_MOUSE_FOCUS_PULSE);
+ RNA_def_property_ui_text(prop, "Pulse", "Moving the mouse over a different object generates a pulse");
+ RNA_def_property_update(prop, NC_LOGIC, NULL);
}
static void rna_def_touch_sensor(BlenderRNA *brna)
diff --git a/source/blender/makesrna/intern/rna_sensor_api.c b/source/blender/makesrna/intern/rna_sensor_api.c
index fd0c6f622ff..d920cbef4a2 100644
--- a/source/blender/makesrna/intern/rna_sensor_api.c
+++ b/source/blender/makesrna/intern/rna_sensor_api.c
@@ -35,6 +35,8 @@
#include "WM_types.h"
#include "RNA_define.h"
+#include "rna_internal.h" /* own include */
+
#ifdef RNA_RUNTIME
#include "BKE_sca.h"
diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c
index fb8ba2f863e..d8ca1aea5dd 100644
--- a/source/blender/makesrna/intern/rna_sequencer.c
+++ b/source/blender/makesrna/intern/rna_sequencer.c
@@ -30,6 +30,7 @@
#include "RNA_access.h"
#include "RNA_define.h"
+#include "RNA_enum_types.h"
#include "rna_internal.h"
@@ -49,6 +50,8 @@
#include "WM_types.h"
#include "BLI_math.h"
+#include "BLF_translation.h"
+
typedef struct EffectInfo {
const char *struct_name;
const char *ui_name;
@@ -57,9 +60,28 @@ typedef struct EffectInfo {
int inputs;
} EffectInfo;
+EnumPropertyItem sequence_modifier_type_items[] = {
+ {seqModifierType_ColorBalance, "COLOR_BALANCE", ICON_NONE, "Color Balance", ""},
+ {seqModifierType_Curves, "CURVES", ICON_NONE, "Curves", ""},
+ {seqModifierType_HueCorrect, "HUE_CORRECT", ICON_NONE, "Hue Correct", ""},
+ {seqModifierType_BrightContrast, "BRIGHT_CONTRAST", ICON_NONE, "Bright/Contrast", ""},
+ {0, NULL, 0, NULL, NULL}
+};
+
#ifdef RNA_RUNTIME
-/* build a temp referene to the parent */
+#include "BKE_report.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+typedef struct SequenceSearchData {
+ Sequence *seq;
+ void *data;
+ SequenceModifierData *smd;
+} SequenceSearchData;
+
+/* build a temp reference to the parent */
static void meta_tmp_ref(Sequence *seq_par, Sequence *seq)
{
for (; seq; seq = seq->next) {
@@ -126,11 +148,11 @@ static void rna_SequenceEditor_elements_begin(CollectionPropertyIterator *iter,
static void rna_Sequence_frame_change_update(Scene *scene, Sequence *seq)
{
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
- ListBase *seqbase = seq_seqbase(&ed->seqbase, seq);
- calc_sequence_disp(scene, seq);
+ ListBase *seqbase = BKE_sequence_seqbase(&ed->seqbase, seq);
+ BKE_sequence_calc_disp(scene, seq);
- if (seq_test_overlap(seqbase, seq)) {
- shuffle_seq(seqbase, seq, scene); /* XXX - BROKEN!, uses context seqbasep */
+ if (BKE_sequence_test_overlap(seqbase, seq)) {
+ BKE_sequence_base_shuffle(seqbase, seq, scene); /* XXX - BROKEN!, uses context seqbasep */
}
BKE_sequencer_sort(scene);
}
@@ -140,7 +162,7 @@ static void rna_Sequence_start_frame_set(PointerRNA *ptr, int value)
Sequence *seq = (Sequence *)ptr->data;
Scene *scene = (Scene *)ptr->id.data;
- seq_translate(scene, seq, value - seq->start);
+ BKE_sequence_translate(scene, seq, value - seq->start);
rna_Sequence_frame_change_update(scene, seq);
}
@@ -149,8 +171,8 @@ static void rna_Sequence_start_frame_final_set(PointerRNA *ptr, int value)
Sequence *seq = (Sequence *)ptr->data;
Scene *scene = (Scene *)ptr->id.data;
- seq_tx_set_final_left(seq, value);
- seq_single_fix(seq);
+ BKE_sequence_tx_set_final_left(seq, value);
+ BKE_sequence_single_fix(seq);
rna_Sequence_frame_change_update(scene, seq);
}
@@ -159,8 +181,8 @@ static void rna_Sequence_end_frame_final_set(PointerRNA *ptr, int value)
Sequence *seq = (Sequence *)ptr->data;
Scene *scene = (Scene *)ptr->id.data;
- seq_tx_set_final_right(seq, value);
- seq_single_fix(seq);
+ BKE_sequence_tx_set_final_right(seq, value);
+ BKE_sequence_single_fix(seq);
rna_Sequence_frame_change_update(scene, seq);
}
@@ -171,7 +193,7 @@ static void rna_Sequence_anim_startofs_final_set(PointerRNA *ptr, int value)
seq->anim_startofs = MIN2(value, seq->len + seq->anim_startofs);
- reload_sequence_new_file(scene, seq, FALSE);
+ BKE_sequence_reload_new_file(scene, seq, FALSE);
rna_Sequence_frame_change_update(scene, seq);
}
@@ -182,7 +204,7 @@ static void rna_Sequence_anim_endofs_final_set(PointerRNA *ptr, int value)
seq->anim_endofs = MIN2(value, seq->len + seq->anim_endofs);
- reload_sequence_new_file(scene, seq, FALSE);
+ BKE_sequence_reload_new_file(scene, seq, FALSE);
rna_Sequence_frame_change_update(scene, seq);
}
@@ -191,21 +213,21 @@ static void rna_Sequence_frame_length_set(PointerRNA *ptr, int value)
Sequence *seq = (Sequence *)ptr->data;
Scene *scene = (Scene *)ptr->id.data;
- seq_tx_set_final_right(seq, seq->start + value);
+ BKE_sequence_tx_set_final_right(seq, seq->start + value);
rna_Sequence_frame_change_update(scene, seq);
}
static int rna_Sequence_frame_length_get(PointerRNA *ptr)
{
Sequence *seq = (Sequence *)ptr->data;
- return seq_tx_get_final_right(seq, 0) - seq_tx_get_final_left(seq, 0);
+ return BKE_sequence_tx_get_final_right(seq, 0) - BKE_sequence_tx_get_final_left(seq, 0);
}
static int rna_Sequence_frame_editable(PointerRNA *ptr)
{
Sequence *seq = (Sequence *)ptr->data;
/* Effect sequences' start frame and length must be readonly! */
- return (get_sequence_effect_num_inputs(seq->type)) ? 0 : PROP_EDITABLE;
+ return (BKE_sequence_effect_get_num_inputs(seq->type)) ? 0 : PROP_EDITABLE;
}
static void rna_Sequence_channel_set(PointerRNA *ptr, int value)
@@ -213,38 +235,16 @@ static void rna_Sequence_channel_set(PointerRNA *ptr, int value)
Sequence *seq = (Sequence *)ptr->data;
Scene *scene = (Scene *)ptr->id.data;
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
- ListBase *seqbase = seq_seqbase(&ed->seqbase, seq);
+ ListBase *seqbase = BKE_sequence_seqbase(&ed->seqbase, seq);
seq->machine = value;
- if (seq_test_overlap(seqbase, seq) ) {
- shuffle_seq(seqbase, seq, scene); /* XXX - BROKEN!, uses context seqbasep */
+ if (BKE_sequence_test_overlap(seqbase, seq) ) {
+ BKE_sequence_base_shuffle(seqbase, seq, scene); /* XXX - BROKEN!, uses context seqbasep */
}
BKE_sequencer_sort(scene);
}
-/* properties that need to allocate structs */
-static void rna_Sequence_use_color_balance_set(PointerRNA *ptr, int value)
-{
- Sequence *seq = (Sequence *)ptr->data;
- int c;
-
- if (value) {
- seq->flag |= SEQ_USE_COLOR_BALANCE;
- if (seq->strip->color_balance == NULL) {
- seq->strip->color_balance = MEM_callocN(sizeof(struct StripColorBalance), "StripColorBalance");
- for (c = 0; c < 3; c++) {
- seq->strip->color_balance->lift[c] = 1.0f;
- seq->strip->color_balance->gamma[c] = 1.0f;
- seq->strip->color_balance->gain[c] = 1.0f;
- }
- }
- }
- else {
- seq->flag ^= SEQ_USE_COLOR_BALANCE;
- }
-}
-
static void rna_Sequence_use_proxy_set(PointerRNA *ptr, int value)
{
Sequence *seq = (Sequence *)ptr->data;
@@ -292,28 +292,33 @@ static void rna_Sequence_use_crop_set(PointerRNA *ptr, int value)
static int transform_seq_cmp_cb(Sequence *seq, void *arg_pt)
{
- struct { Sequence *seq; void *transform; } *data = arg_pt;
+ SequenceSearchData *data = arg_pt;
- if (seq->strip && seq->strip->transform == data->transform) {
+ if (seq->strip && seq->strip->transform == data->data) {
data->seq = seq;
return -1; /* done so bail out */
}
return 1;
}
-static char *rna_SequenceTransform_path(PointerRNA *ptr)
+static Sequence *sequence_get_by_transform(Editing *ed, StripTransform *transform)
{
- Scene *scene = ptr->id.data;
- Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
- Sequence *seq;
+ SequenceSearchData data;
- struct { Sequence *seq; void *transform; } data;
data.seq = NULL;
- data.transform = ptr->data;
+ data.data = transform;
/* irritating we need to search for our sequence! */
- seqbase_recursive_apply(&ed->seqbase, transform_seq_cmp_cb, &data);
- seq = data.seq;
+ BKE_sequencer_base_recursive_apply(&ed->seqbase, transform_seq_cmp_cb, &data);
+
+ return data.seq;
+}
+
+static char *rna_SequenceTransform_path(PointerRNA *ptr)
+{
+ Scene *scene = ptr->id.data;
+ Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
+ Sequence *seq = sequence_get_by_transform(ed, ptr->data);
if (seq && seq->name + 2)
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].transform", seq->name + 2);
@@ -321,30 +326,44 @@ static char *rna_SequenceTransform_path(PointerRNA *ptr)
return BLI_strdup("");
}
+static void rna_SequenceTransform_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
+{
+ Scene *scene = (Scene *) ptr->id.data;
+ Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
+ Sequence *seq = sequence_get_by_transform(ed, ptr->data);
+
+ BKE_sequence_invalidate_cache(scene, seq);
+}
+
static int crop_seq_cmp_cb(Sequence *seq, void *arg_pt)
{
- struct { Sequence *seq; void *crop; } *data = arg_pt;
+ SequenceSearchData *data = arg_pt;
- if (seq->strip && seq->strip->crop == data->crop) {
+ if (seq->strip && seq->strip->crop == data->data) {
data->seq = seq;
return -1; /* done so bail out */
}
return 1;
}
-static char *rna_SequenceCrop_path(PointerRNA *ptr)
+static Sequence *sequence_get_by_crop(Editing *ed, StripCrop *crop)
{
- Scene *scene = ptr->id.data;
- Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
- Sequence *seq;
+ SequenceSearchData data;
- struct { Sequence *seq; void *crop; } data;
data.seq = NULL;
- data.crop = ptr->data;
+ data.data = crop;
/* irritating we need to search for our sequence! */
- seqbase_recursive_apply(&ed->seqbase, crop_seq_cmp_cb, &data);
- seq = data.seq;
+ BKE_sequencer_base_recursive_apply(&ed->seqbase, crop_seq_cmp_cb, &data);
+
+ return data.seq;
+}
+
+static char *rna_SequenceCrop_path(PointerRNA *ptr)
+{
+ Scene *scene = ptr->id.data;
+ Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
+ Sequence *seq = sequence_get_by_crop(ed, ptr->data);
if (seq && seq->name + 2)
return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].crop", seq->name + 2);
@@ -352,6 +371,14 @@ static char *rna_SequenceCrop_path(PointerRNA *ptr)
return BLI_strdup("");
}
+static void rna_SequenceCrop_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
+{
+ Scene *scene = (Scene *) ptr->id.data;
+ Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
+ Sequence *seq = sequence_get_by_crop(ed, ptr->data);
+
+ BKE_sequence_invalidate_cache(scene, seq);
+}
/* name functions that ignore the first two characters */
static void rna_Sequence_name_get(PointerRNA *ptr, char *value)
@@ -380,7 +407,7 @@ static void rna_Sequence_name_set(PointerRNA *ptr, const char *value)
BLI_strncpy_utf8(seq->name + 2, value, sizeof(seq->name) - 2);
/* make sure the name is unique */
- seqbase_unique_name_recursive(&scene->ed->seqbase, seq);
+ BKE_sequence_base_unique_name_recursive(&scene->ed->seqbase, seq);
/* fix all the animation data which may link to this */
@@ -557,7 +584,7 @@ static int rna_Sequence_input_count_get(PointerRNA *ptr)
{
Sequence *seq = (Sequence *)(ptr->data);
- return get_sequence_effect_num_inputs(seq->type);
+ return BKE_sequence_effect_get_num_inputs(seq->type);
}
#if 0
@@ -575,68 +602,88 @@ static void rna_SequenceElement_filename_set(PointerRNA *ptr, const char *value)
}
#endif
-static void rna_Sequence_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr))
+static void rna_Sequence_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
{
+ Scene *scene = (Scene *) ptr->id.data;
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
- if (ed)
- free_imbuf_seq(scene, &ed->seqbase, FALSE, TRUE);
+ if (ed) {
+ Sequence *seq = (Sequence *) ptr->data;
+
+ BKE_sequence_invalidate_cache(scene, seq);
+ }
}
-static void rna_Sequence_update_reopen_files(Main *UNUSED(bmain), Scene *scene, PointerRNA *ptr)
+static void rna_Sequence_update_reopen_files(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
{
+ Scene *scene = (Scene *) ptr->id.data;
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
- free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE);
+ BKE_sequencer_free_imbuf(scene, &ed->seqbase, FALSE);
if (RNA_struct_is_a(ptr->type, &RNA_SoundSequence))
- seq_update_sound_bounds(scene, ptr->data);
+ BKE_sequencer_update_sound_bounds(scene, ptr->data);
}
-static void rna_Sequence_mute_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+static void rna_Sequence_mute_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr)
{
+ Scene *scene = (Scene *) ptr->id.data;
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
- seq_update_muting(ed);
+ BKE_sequencer_update_muting(ed);
rna_Sequence_update(bmain, scene, ptr);
}
-static void rna_Sequence_filepath_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+static void rna_Sequence_filepath_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr)
{
+ Scene *scene = (Scene *) ptr->id.data;
Sequence *seq = (Sequence *)(ptr->data);
- reload_sequence_new_file(scene, seq, TRUE);
- calc_sequence(scene, seq);
+ BKE_sequence_reload_new_file(scene, seq, TRUE);
+ BKE_sequence_calc(scene, seq);
rna_Sequence_update(bmain, scene, ptr);
}
static int seqproxy_seq_cmp_cb(Sequence *seq, void *arg_pt)
{
- struct { Sequence *seq; void *seq_proxy; } *data = arg_pt;
+ SequenceSearchData *data = arg_pt;
- if (seq->strip && seq->strip->proxy == data->seq_proxy) {
+ if (seq->strip && seq->strip->proxy == data->data) {
data->seq = seq;
return -1; /* done so bail out */
}
return 1;
}
-static void rna_Sequence_tcindex_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+static Sequence *sequence_get_by_proxy(Editing *ed, StripProxy *proxy)
{
- Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
- Sequence *seq;
-
- struct { Sequence *seq; void *seq_proxy; } data;
+ SequenceSearchData data;
data.seq = NULL;
- data.seq_proxy = ptr->data;
+ data.data = proxy;
- seqbase_recursive_apply(&ed->seqbase, seqproxy_seq_cmp_cb, &data);
- seq = data.seq;
+ BKE_sequencer_base_recursive_apply(&ed->seqbase, seqproxy_seq_cmp_cb, &data);
+ return data.seq;
+}
- reload_sequence_new_file(scene, seq, FALSE);
+static void rna_Sequence_tcindex_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr)
+{
+ Scene *scene = (Scene *) ptr->id.data;
+ Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
+ Sequence *seq = sequence_get_by_proxy(ed, ptr->data);
+
+ BKE_sequence_reload_new_file(scene, seq, FALSE);
rna_Sequence_frame_change_update(scene, seq);
}
+static void rna_SequenceProxy_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
+{
+ Scene *scene = (Scene *) ptr->id.data;
+ Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
+ Sequence *seq = sequence_get_by_proxy(ed, ptr->data);
+
+ BKE_sequence_invalidate_cache(scene, seq);
+}
+
/* do_versions? */
static float rna_Sequence_opacity_get(PointerRNA *ptr)
{
@@ -650,37 +697,79 @@ static void rna_Sequence_opacity_set(PointerRNA *ptr, float value)
seq->blend_opacity = value * 100.0f;
}
-
static int colbalance_seq_cmp_cb(Sequence *seq, void *arg_pt)
{
- struct { Sequence *seq; void *color_balance; } *data = arg_pt;
+ SequenceSearchData *data = arg_pt;
- if (seq->strip && seq->strip->color_balance == data->color_balance) {
- data->seq = seq;
- return -1; /* done so bail out */
+ if (seq->modifiers.first) {
+ SequenceModifierData *smd = seq->modifiers.first;
+
+ for (smd = seq->modifiers.first; smd; smd = smd->next) {
+ if (smd->type == seqModifierType_ColorBalance) {
+ ColorBalanceModifierData *cbmd = (ColorBalanceModifierData *) smd;
+
+ if (&cbmd->color_balance == data->data) {
+ data->seq = seq;
+ data->smd = smd;
+ return -1; /* done so bail out */
+ }
+ }
+ }
}
+
return 1;
}
-static char *rna_SequenceColorBalance_path(PointerRNA *ptr)
+
+static Sequence *sequence_get_by_colorbalance(Editing *ed, StripColorBalance *cb, SequenceModifierData **smd_r)
{
- Scene *scene = ptr->id.data;
- Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
- Sequence *seq;
+ SequenceSearchData data;
- struct { Sequence *seq; void *color_balance; } data;
data.seq = NULL;
- data.color_balance = ptr->data;
+ data.smd = NULL;
+ data.data = cb;
/* irritating we need to search for our sequence! */
- seqbase_recursive_apply(&ed->seqbase, colbalance_seq_cmp_cb, &data);
- seq = data.seq;
+ BKE_sequencer_base_recursive_apply(&ed->seqbase, colbalance_seq_cmp_cb, &data);
- if (seq && seq->name + 2)
- return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].color_balance", seq->name + 2);
+ *smd_r = data.smd;
+
+ return data.seq;
+}
+
+static char *rna_SequenceColorBalance_path(PointerRNA *ptr)
+{
+ Scene *scene = ptr->id.data;
+ SequenceModifierData *smd;
+ Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
+ Sequence *seq = sequence_get_by_colorbalance(ed, ptr->data, &smd);
+
+ if (seq && seq->name + 2) {
+ if (!smd) {
+ /* path to old filter color balance */
+ return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].color_balance", seq->name + 2);
+ }
+ else {
+ /* path to modifier */
+ return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].modifiers[\"%s\"].color_balance", seq->name + 2, smd->name);
+ }
+ }
else
return BLI_strdup("");
}
+static void rna_SequenceColorBalance_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
+{
+ Scene *scene = (Scene *) ptr->id.data;
+ Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
+ SequenceModifierData *smd;
+ Sequence *seq = sequence_get_by_colorbalance(ed, ptr->data, &smd);
+
+ if (smd == NULL)
+ BKE_sequence_invalidate_cache(scene, seq);
+ else
+ BKE_sequence_invalidate_cache_for_modifier(scene, seq);
+}
+
static void rna_SequenceEditor_overlay_lock_set(PointerRNA *ptr, int value)
{
Scene *scene = ptr->id.data;
@@ -746,6 +835,161 @@ static float rna_WipeSequence_angle_get(PointerRNA *ptr)
return DEG2RADF(((WipeVars *)seq->effectdata)->angle);
}
+static int modifier_seq_cmp_cb(Sequence *seq, void *arg_pt)
+{
+ SequenceSearchData *data = arg_pt;
+
+ if (BLI_findindex(&seq->modifiers, data->data) != -1) {
+ data->seq = seq;
+ return -1; /* done so bail out */
+ }
+
+ return 1;
+}
+
+static Sequence *sequence_get_by_modifier(Editing *ed, SequenceModifierData *smd)
+{
+ SequenceSearchData data;
+
+ data.seq = NULL;
+ data.data = smd;
+
+ /* irritating we need to search for our sequence! */
+ BKE_sequencer_base_recursive_apply(&ed->seqbase, modifier_seq_cmp_cb, &data);
+
+ return data.seq;
+}
+
+static StructRNA *rna_SequenceModifier_refine(struct PointerRNA *ptr)
+{
+ SequenceModifierData *smd = (SequenceModifierData *) ptr->data;
+
+ switch (smd->type) {
+ case seqModifierType_ColorBalance:
+ return &RNA_ColorBalanceModifier;
+ case seqModifierType_Curves:
+ return &RNA_CurvesModifier;
+ case seqModifierType_HueCorrect:
+ return &RNA_HueCorrectModifier;
+ case seqModifierType_BrightContrast:
+ return &RNA_BrightContrastModifier;
+ default:
+ return &RNA_SequenceModifier;
+ }
+}
+
+static char *rna_SequenceModifier_path(PointerRNA *ptr)
+{
+ Scene *scene = ptr->id.data;
+ Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
+ SequenceModifierData *smd = ptr->data;
+ Sequence *seq = sequence_get_by_modifier(ed, smd);
+
+ if (seq && seq->name + 2)
+ return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].modifiers[\"%s\"]", seq->name + 2, smd->name);
+ else
+ return BLI_strdup("");
+}
+
+static void rna_SequenceModifier_name_set(PointerRNA *ptr, const char *value)
+{
+ SequenceModifierData *smd = ptr->data;
+ Scene *scene = (Scene *) ptr->id.data;
+ Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
+ Sequence *seq = sequence_get_by_modifier(ed, smd);
+ AnimData *adt;
+ char oldname[sizeof(smd->name)];
+
+ /* make a copy of the old name first */
+ BLI_strncpy(oldname, smd->name, sizeof(smd->name));
+
+ /* copy the new name into the name slot */
+ BLI_strncpy_utf8(smd->name, value, sizeof(smd->name));
+
+ /* make sure the name is truly unique */
+ BKE_sequence_modifier_unique_name(seq, smd);
+
+ /* fix all the animation data which may link to this */
+ adt = BKE_animdata_from_id(&scene->id);
+ if (adt) {
+ char path[1024];
+
+ BLI_snprintf(path, sizeof(path), "sequence_editor.sequences_all[\"%s\"].modifiers", seq->name + 2);
+ BKE_animdata_fix_paths_rename(&scene->id, adt, NULL, path, oldname, smd->name, 0, 0, 1);
+ }
+}
+
+static void rna_SequenceModifier_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
+{
+ /* strip from other scenes could be modified, so using active scene is not reliable */
+ Scene *scene = (Scene *) ptr->id.data;
+ Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
+ Sequence *seq = sequence_get_by_modifier(ed, ptr->data);
+
+ BKE_sequence_invalidate_cache_for_modifier(scene, seq);
+}
+
+static int rna_SequenceModifier_otherSequence_poll(PointerRNA *ptr, PointerRNA value)
+{
+ Scene *scene = (Scene *) ptr->id.data;
+ Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
+ Sequence *seq = sequence_get_by_modifier(ed, ptr->data);
+ Sequence *cur = (Sequence *) value.data;
+
+ if (seq == cur)
+ return FALSE;
+
+ if (BKE_sequence_check_depend(seq, cur))
+ return FALSE;
+
+ return TRUE;
+}
+
+static SequenceModifierData *rna_Sequence_modifier_new(Sequence *seq, bContext *C, ReportList *reports, const char *name, int type)
+{
+ if (!BKE_sequence_supports_modifiers(seq)) {
+ BKE_report(reports, RPT_ERROR, "Sequence type does not support modifiers");
+
+ return NULL;
+ }
+ else {
+ Scene *scene = CTX_data_scene(C);
+ SequenceModifierData *smd;
+
+ smd = BKE_sequence_modifier_new(seq, name, type);
+
+ BKE_sequence_invalidate_cache_for_modifier(scene, seq);
+
+ WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, NULL);
+
+ return smd;
+ }
+}
+
+static void rna_Sequence_modifier_remove(Sequence *seq, bContext *C, ReportList *reports, SequenceModifierData *smd)
+{
+ Scene *scene = CTX_data_scene(C);
+
+ if (BKE_sequence_modifier_remove(seq, smd)) {
+ BKE_sequence_invalidate_cache_for_modifier(scene, seq);
+
+ WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, NULL);
+ }
+ else {
+ BKE_report(reports, RPT_ERROR, "Modifier was not found in the stack");
+ }
+}
+
+static void rna_Sequence_modifier_clear(Sequence *seq, bContext *C)
+{
+ Scene *scene = CTX_data_scene(C);
+
+ BKE_sequence_modifier_clear(seq);
+
+ BKE_sequence_invalidate_cache_for_modifier(scene, seq);
+
+ WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, NULL);
+}
#else
@@ -787,25 +1031,25 @@ static void rna_def_strip_crop(BlenderRNA *brna)
RNA_def_property_int_sdna(prop, NULL, "top");
RNA_def_property_ui_text(prop, "Top", "");
RNA_def_property_ui_range(prop, 0, 4096, 1, 0);
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceCrop_update");
prop = RNA_def_property(srna, "min_y", PROP_INT, PROP_UNSIGNED);
RNA_def_property_int_sdna(prop, NULL, "bottom");
RNA_def_property_ui_text(prop, "Bottom", "");
RNA_def_property_ui_range(prop, 0, 4096, 1, 0);
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceCrop_update");
prop = RNA_def_property(srna, "min_x", PROP_INT, PROP_UNSIGNED);
RNA_def_property_int_sdna(prop, NULL, "left");
RNA_def_property_ui_text(prop, "Left", "");
RNA_def_property_ui_range(prop, 0, 4096, 1, 0);
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceCrop_update");
prop = RNA_def_property(srna, "max_x", PROP_INT, PROP_UNSIGNED);
RNA_def_property_int_sdna(prop, NULL, "right");
RNA_def_property_ui_text(prop, "Right", "");
RNA_def_property_ui_range(prop, 0, 4096, 1, 0);
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceCrop_update");
RNA_def_struct_path_func(srna, "rna_SequenceCrop_path");
}
@@ -823,13 +1067,13 @@ static void rna_def_strip_transform(BlenderRNA *brna)
RNA_def_property_int_sdna(prop, NULL, "xofs");
RNA_def_property_ui_text(prop, "Offset X", "");
RNA_def_property_ui_range(prop, -4096, 4096, 1, 0);
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceTransform_update");
prop = RNA_def_property(srna, "offset_y", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "yofs");
RNA_def_property_ui_text(prop, "Offset Y", "");
RNA_def_property_ui_range(prop, -4096, 4096, 1, 0);
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceTransform_update");
RNA_def_struct_path_func(srna, "rna_SequenceTransform_path");
@@ -862,14 +1106,14 @@ static void rna_def_strip_proxy(BlenderRNA *brna)
prop = RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH);
RNA_def_property_string_sdna(prop, NULL, "dir");
RNA_def_property_ui_text(prop, "Directory", "Location to store the proxy files");
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceProxy_update");
prop = RNA_def_property(srna, "filepath", PROP_STRING, PROP_FILEPATH);
RNA_def_property_ui_text(prop, "Path", "Location of custom proxy file");
RNA_def_property_string_funcs(prop, "rna_Sequence_proxy_filepath_get", "rna_Sequence_proxy_filepath_length",
"rna_Sequence_proxy_filepath_set");
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceProxy_update");
prop = RNA_def_property(srna, "build_25", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "build_size_flags", SEQ_PROXY_IMAGE_SIZE_25);
@@ -912,59 +1156,71 @@ static void rna_def_strip_proxy(BlenderRNA *brna)
}
-static void rna_def_strip_color_balance(BlenderRNA *brna)
+static void rna_def_color_balance(BlenderRNA *brna)
{
StructRNA *srna;
PropertyRNA *prop;
- srna = RNA_def_struct(brna, "SequenceColorBalance", NULL);
- RNA_def_struct_ui_text(srna, "Sequence Color Balance", "Color balance parameters for a sequence strip");
+ srna = RNA_def_struct(brna, "SequenceColorBalanceData", NULL);
+ RNA_def_struct_ui_text(srna, "Sequence Color Balance Data", "Color balance parameters for a sequence strip and it's modifiers");
RNA_def_struct_sdna(srna, "StripColorBalance");
prop = RNA_def_property(srna, "lift", PROP_FLOAT, PROP_COLOR);
RNA_def_property_ui_text(prop, "Lift", "Color balance lift (shadows)");
RNA_def_property_ui_range(prop, 0, 2, 0.1, 3);
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
-
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceColorBalance_update");
+
prop = RNA_def_property(srna, "gamma", PROP_FLOAT, PROP_COLOR);
RNA_def_property_ui_text(prop, "Gamma", "Color balance gamma (midtones)");
RNA_def_property_ui_range(prop, 0, 2, 0.1, 3);
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
-
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceColorBalance_update");
+
prop = RNA_def_property(srna, "gain", PROP_FLOAT, PROP_COLOR);
RNA_def_property_ui_text(prop, "Gain", "Color balance gain (highlights)");
RNA_def_property_ui_range(prop, 0, 2, 0.1, 3);
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
-
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceColorBalance_update");
+
prop = RNA_def_property(srna, "invert_gain", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_GAIN);
RNA_def_property_ui_text(prop, "Inverse Gain", "");
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceColorBalance_update");
prop = RNA_def_property(srna, "invert_gamma", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_GAMMA);
RNA_def_property_ui_text(prop, "Inverse Gamma", "");
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceColorBalance_update");
prop = RNA_def_property(srna, "invert_lift", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_LIFT);
RNA_def_property_ui_text(prop, "Inverse Lift", "");
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
-
- RNA_def_struct_path_func(srna, "rna_SequenceColorBalance_path");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceColorBalance_update");
/* not yet used */
#if 0
prop = RNA_def_property(srna, "exposure", PROP_FLOAT, PROP_NONE);
RNA_def_property_range(prop, 0.0f, 1.0f);
RNA_def_property_ui_text(prop, "Exposure", "");
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
-
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_ColorBabalnce_update");
+
prop = RNA_def_property(srna, "saturation", PROP_FLOAT, PROP_NONE);
RNA_def_property_range(prop, 0.0f, 1.0f);
RNA_def_property_ui_text(prop, "Saturation", "");
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_ColorBabalnce_update");
#endif
+
+ RNA_def_struct_path_func(srna, "rna_SequenceColorBalance_path");
+}
+
+static void rna_def_strip_color_balance(BlenderRNA *brna)
+{
+ StructRNA *srna;
+
+ srna = RNA_def_struct(brna, "SequenceColorBalance", "SequenceColorBalanceData");
+ RNA_def_struct_ui_text(srna, "Sequence Color Balance", "Color balance parameters for a sequence strip");
+ RNA_def_struct_sdna(srna, "StripColorBalance");
}
EnumPropertyItem blend_mode_items[] = {
@@ -980,6 +1236,45 @@ EnumPropertyItem blend_mode_items[] = {
{0, NULL, 0, NULL, NULL}
};
+static void rna_def_sequence_modifiers(BlenderRNA *brna, PropertyRNA *cprop)
+{
+ StructRNA *srna;
+
+ FunctionRNA *func;
+ PropertyRNA *parm;
+
+ RNA_def_property_srna(cprop, "SequenceModifiers");
+ srna = RNA_def_struct(brna, "SequenceModifiers", NULL);
+ RNA_def_struct_sdna(srna, "Sequence");
+ RNA_def_struct_ui_text(srna, "Strip Modifiers", "Collection of strip modifiers");
+
+ /* add modifier */
+ func = RNA_def_function(srna, "new", "rna_Sequence_modifier_new");
+ RNA_def_function_flag(func, FUNC_USE_CONTEXT | FUNC_USE_REPORTS);
+ RNA_def_function_ui_description(func, "Add a new modifier");
+ parm = RNA_def_string(func, "name", "Name", 0, "", "New name for the modifier");
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+ /* modifier to add */
+ parm = RNA_def_enum(func, "type", sequence_modifier_type_items, seqModifierType_ColorBalance, "", "Modifier type to add");
+ RNA_def_property_flag(parm, PROP_REQUIRED);
+ /* return type */
+ parm = RNA_def_pointer(func, "modifier", "SequenceModifier", "", "Newly created modifier");
+ RNA_def_function_return(func, parm);
+
+ /* remove modifier */
+ func = RNA_def_function(srna, "remove", "rna_Sequence_modifier_remove");
+ RNA_def_function_flag(func, FUNC_USE_CONTEXT | FUNC_USE_REPORTS);
+ RNA_def_function_ui_description(func, "Remove an existing modifier from the sequence");
+ /* modifier to remove */
+ parm = RNA_def_pointer(func, "modifier", "SequenceModifier", "", "Modifier to remove");
+ RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
+
+ /* clear all modifiers */
+ func = RNA_def_function(srna, "clear", "rna_Sequence_modifier_clear");
+ RNA_def_function_flag(func, FUNC_USE_CONTEXT);
+ RNA_def_function_ui_description(func, "Remove all modifiers from the sequence");
+}
+
static void rna_def_sequence(BlenderRNA *brna)
{
StructRNA *srna;
@@ -1134,6 +1429,11 @@ static void rna_def_sequence(BlenderRNA *brna)
RNA_def_property_int_funcs(prop, NULL, "rna_Sequence_channel_set", NULL); /* overlap test */
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ prop = RNA_def_property(srna, "use_linear_modifiers", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_LINEAR_MODIFIERS);
+ RNA_def_property_ui_text(prop, "Use Linear Modifiers", "Calculate modifiers in linear space instead of sequencer's space");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+
/* blending */
prop = RNA_def_property(srna, "blend_type", PROP_ENUM, PROP_NONE);
@@ -1151,6 +1451,7 @@ static void rna_def_sequence(BlenderRNA *brna)
prop = RNA_def_property(srna, "effect_fader", PROP_FLOAT, PROP_NONE);
RNA_def_property_range(prop, 0.0f, 1.0f);
+ RNA_def_property_ui_range(prop, 0.0f, 1.0f, 0.1, 3);
RNA_def_property_float_sdna(prop, NULL, "effect_fader");
RNA_def_property_ui_text(prop, "Effect fader position", "");
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
@@ -1170,6 +1471,12 @@ static void rna_def_sequence(BlenderRNA *brna)
"to this frame");
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
+ /* modifiers */
+ prop = RNA_def_property(srna, "modifiers", PROP_COLLECTION, PROP_NONE);
+ RNA_def_property_struct_type(prop, "SequenceModifier");
+ RNA_def_property_ui_text(prop, "Modifiers", "Modifiers affecting this strip");
+ rna_def_sequence_modifiers(brna, prop);
+
RNA_api_sequence_strip(srna);
}
@@ -1264,6 +1571,7 @@ static void rna_def_filter_video(StructRNA *srna)
prop = RNA_def_property(srna, "color_multiply", PROP_FLOAT, PROP_UNSIGNED);
RNA_def_property_float_sdna(prop, NULL, "mul");
RNA_def_property_range(prop, 0.0f, 20.0f);
+ RNA_def_property_float_default(prop, 1.0f);
RNA_def_property_ui_text(prop, "Multiply Colors", "");
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
@@ -1271,6 +1579,7 @@ static void rna_def_filter_video(StructRNA *srna)
RNA_def_property_float_sdna(prop, NULL, "sat");
RNA_def_property_range(prop, 0.0f, 20.0f);
RNA_def_property_ui_range(prop, 0.0f, 2.0f, 3, 3);
+ RNA_def_property_float_default(prop, 1.0f);
RNA_def_property_ui_text(prop, "Saturation", "");
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
@@ -1279,16 +1588,6 @@ static void rna_def_filter_video(StructRNA *srna)
RNA_def_property_ui_text(prop, "Strobe", "Only display every nth frame");
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
- prop = RNA_def_property(srna, "use_color_balance", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_COLOR_BALANCE);
- RNA_def_property_ui_text(prop, "Use Color Balance", "(3-Way color correction) on input");
- RNA_def_property_boolean_funcs(prop, NULL, "rna_Sequence_use_color_balance_set");
- RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
-
- prop = RNA_def_property(srna, "color_balance", PROP_POINTER, PROP_NONE);
- RNA_def_property_pointer_sdna(prop, NULL, "strip->color_balance");
- RNA_def_property_ui_text(prop, "Color Balance", "");
-
prop = RNA_def_property(srna, "use_translation", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_TRANSFORM);
RNA_def_property_ui_text(prop, "Use Translation", "Translate image before processing");
@@ -1376,14 +1675,14 @@ static void rna_def_effect_inputs(StructRNA *srna, int count)
RNA_def_property_ui_text(prop, "Input 2", "Second input for the effect strip");
}
- /*
+#if 0
if (count == 3) { // not used by any effects (perhaps one day plugins?)
prop = RNA_def_property(srna, "input_3", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "seq3");
RNA_def_property_flag(prop, PROP_EDITABLE | PROP_NEVER_NULL);
RNA_def_property_ui_text(prop, "Input 3", "Third input for the effect strip");
}
- */
+#endif
}
static void rna_def_image(BlenderRNA *brna)
@@ -1561,6 +1860,7 @@ static void rna_def_sound(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "volume");
RNA_def_property_range(prop, 0.0f, 100.0f);
RNA_def_property_ui_text(prop, "Volume", "Playback volume of the sound");
+ RNA_def_property_translation_context(prop, BLF_I18NCONTEXT_AUDIO);
RNA_def_property_float_funcs(prop, NULL, "rna_Sequence_volume_set", NULL);
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
@@ -1568,6 +1868,7 @@ static void rna_def_sound(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "pitch");
RNA_def_property_range(prop, 0.1f, 10.0f);
RNA_def_property_ui_text(prop, "Pitch", "Playback pitch of the sound");
+ RNA_def_property_translation_context(prop, BLF_I18NCONTEXT_AUDIO);
RNA_def_property_float_funcs(prop, NULL, "rna_Sequence_pitch_set", NULL);
RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_Sequence_update");
@@ -1824,50 +2125,26 @@ static void rna_def_speed_control(StructRNA *srna)
}
static EffectInfo def_effects[] = {
- {"AddSequence", "Add Sequence",
- "Add Sequence",
- NULL, 2},
+ {"AddSequence", "Add Sequence", "Add Sequence", NULL, 2},
{"AdjustmentSequence", "Adjustment Layer Sequence",
- "Sequence strip to perform filter adjustments to layers below",
- rna_def_input, 0},
- {"AlphaOverSequence", "Alpha Over Sequence",
- "Alpha Over Sequence",
- NULL, 2},
- {"AlphaUnderSequence", "Alpha Under Sequence",
- "Alpha Under Sequence",
- NULL, 2},
+ "Sequence strip to perform filter adjustments to layers below", rna_def_input, 0},
+ {"AlphaOverSequence", "Alpha Over Sequence", "Alpha Over Sequence", NULL, 2},
+ {"AlphaUnderSequence", "Alpha Under Sequence", "Alpha Under Sequence", NULL, 2},
{"ColorSequence", "Color Sequence",
- "Sequence strip creating an image filled with a single color",
- rna_def_solid_color, 0},
- {"CrossSequence", "Cross Sequence",
- "Cross Sequence",
- NULL, 2},
- {"GammaCrossSequence", "Gamma Cross Sequence",
- "Gamma Cross Sequence",
- NULL, 2},
- {"GlowSequence", "Glow Sequence",
- "Sequence strip creating a glow effect",
- rna_def_glow, 1},
- {"MulticamSequence", "Multicam Select Sequence",
- "Sequence strip to perform multicam editing",
+ "Sequence strip creating an image filled with a single color", rna_def_solid_color, 0},
+ {"CrossSequence", "Cross Sequence", "Cross Sequence", NULL, 2},
+ {"GammaCrossSequence", "Gamma Cross Sequence", "Gamma Cross Sequence", NULL, 2},
+ {"GlowSequence", "Glow Sequence", "Sequence strip creating a glow effect", rna_def_glow, 1},
+ {"MulticamSequence", "Multicam Select Sequence", "Sequence strip to perform multicam editing",
rna_def_multicam, 0},
- {"MultiplySequence", "Multiply Sequence",
- "Multiply Sequence",
- NULL, 2},
- {"OverDropSequence", "Over Drop Sequence",
- "Over Drop Sequence",
- NULL, 2},
+ {"MultiplySequence", "Multiply Sequence", "Multiply Sequence", NULL, 2},
+ {"OverDropSequence", "Over Drop Sequence", "Over Drop Sequence", NULL, 2},
{"SpeedControlSequence", "SpeedControl Sequence",
- "Sequence strip to control the speed of other strips",
- rna_def_speed_control, 1},
- {"SubtractSequence", "Subtract Sequence",
- "Subtract Sequence",
- NULL, 2},
+ "Sequence strip to control the speed of other strips", rna_def_speed_control, 1},
+ {"SubtractSequence", "Subtract Sequence", "Subtract Sequence", NULL, 2},
{"TransformSequence", "Transform Sequence",
- "Sequence strip applying affine transformations to other strips",
- rna_def_transform, 1},
- {"WipeSequence", "Wipe Sequence",
- "Sequence strip creating a wipe transition",
+ "Sequence strip applying affine transformations to other strips", rna_def_transform, 1},
+ {"WipeSequence", "Wipe Sequence", "Sequence strip creating a wipe transition",
rna_def_wipe, 1},
{"", "", "", NULL, 0}
};
@@ -1889,8 +2166,155 @@ static void rna_def_effects(BlenderRNA *brna)
}
}
+static void rna_def_modifier(BlenderRNA *brna)
+{
+ StructRNA *srna;
+ PropertyRNA *prop;
+
+ static const EnumPropertyItem mask_input_type_items[] = {
+ {SEQUENCE_MASK_INPUT_STRIP, "STRIP", 0, "Strip", "Use sequencer strip as mask input"},
+ {SEQUENCE_MASK_INPUT_ID, "ID", 0, "Mask", "Use mask ID as mask input"},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ srna = RNA_def_struct(brna, "SequenceModifier", NULL);
+ RNA_def_struct_sdna(srna, "SequenceModifierData");
+ RNA_def_struct_ui_text(srna, "SequenceModifier", "Modifier for sequence strip");
+ RNA_def_struct_refine_func(srna, "rna_SequenceModifier_refine");
+ RNA_def_struct_path_func(srna, "rna_SequenceModifier_path");
+
+ prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
+ RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SequenceModifier_name_set");
+ RNA_def_property_ui_text(prop, "Name", "");
+ RNA_def_struct_name_property(srna, prop);
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, NULL);
+
+ prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_enum_items(prop, sequence_modifier_type_items);
+ RNA_def_property_ui_text(prop, "Type", "");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, NULL);
+
+ prop = RNA_def_property(srna, "mute", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQUENCE_MODIFIER_MUTE);
+ RNA_def_property_ui_text(prop, "Mute", "Mute this modifier");
+ RNA_def_property_ui_icon(prop, ICON_RESTRICT_VIEW_OFF, 1);
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+
+ prop = RNA_def_property(srna, "show_expanded", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQUENCE_MODIFIER_EXPANDED);
+ RNA_def_property_ui_text(prop, "Expanded", "Mute expanded settings for the modifier");
+ RNA_def_property_ui_icon(prop, ICON_TRIA_RIGHT, 1);
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, NULL);
+
+ prop = RNA_def_property(srna, "input_mask_type", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "mask_input_type");
+ RNA_def_property_enum_items(prop, mask_input_type_items);
+ RNA_def_property_ui_text(prop, "Mask Input Type", "Type of input data used for mask");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+
+ prop = RNA_def_property(srna, "input_mask_strip", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "mask_sequence");
+ RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, "rna_SequenceModifier_otherSequence_poll");
+ RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_ui_text(prop, "Mask Strip", "Strip used as mask input for the modifier");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+
+ prop = RNA_def_property(srna, "input_mask_id", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "mask_id");
+ RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_ui_text(prop, "Mask", "Mask ID used as mask input for the modifier");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+}
+
+static void rna_def_colorbalance_modifier(BlenderRNA *brna)
+{
+ StructRNA *srna;
+ PropertyRNA *prop;
+
+ srna = RNA_def_struct(brna, "ColorBalanceModifier", "SequenceModifier");
+ RNA_def_struct_sdna(srna, "ColorBalanceModifierData");
+ RNA_def_struct_ui_text(srna, "ColorBalanceModifier", "Color balance modifier for sequence strip");
+
+ prop = RNA_def_property(srna, "color_balance", PROP_POINTER, PROP_NONE);
+ RNA_def_property_struct_type(prop, "SequenceColorBalanceData");
+
+ prop = RNA_def_property(srna, "color_multiply", PROP_FLOAT, PROP_UNSIGNED);
+ RNA_def_property_float_sdna(prop, NULL, "color_multiply");
+ RNA_def_property_range(prop, 0.0f, 20.0f);
+ RNA_def_property_float_default(prop, 1.0f);
+ RNA_def_property_ui_text(prop, "Multiply Colors", "");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+}
+
+static void rna_def_curves_modifier(BlenderRNA *brna)
+{
+ StructRNA *srna;
+ PropertyRNA *prop;
+
+ srna = RNA_def_struct(brna, "CurvesModifier", "SequenceModifier");
+ RNA_def_struct_sdna(srna, "CurvesModifierData");
+ RNA_def_struct_ui_text(srna, "CurvesModifier", "RGB curves modifier for sequence strip");
+
+ prop = RNA_def_property(srna, "curve_mapping", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "curve_mapping");
+ RNA_def_property_struct_type(prop, "CurveMapping");
+ RNA_def_property_ui_text(prop, "Curve Mapping", "");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+}
+
+static void rna_def_hue_modifier(BlenderRNA *brna)
+{
+ StructRNA *srna;
+ PropertyRNA *prop;
+
+ srna = RNA_def_struct(brna, "HueCorrectModifier", "SequenceModifier");
+ RNA_def_struct_sdna(srna, "HueCorrectModifierData");
+ RNA_def_struct_ui_text(srna, "HueCorrectModifier", "Hue correction modifier for sequence strip");
+
+ prop = RNA_def_property(srna, "curve_mapping", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "curve_mapping");
+ RNA_def_property_struct_type(prop, "CurveMapping");
+ RNA_def_property_ui_text(prop, "Curve Mapping", "");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+}
+
+static void rna_def_brightcontrast_modifier(BlenderRNA *brna)
+{
+ StructRNA *srna;
+ PropertyRNA *prop;
+
+ srna = RNA_def_struct(brna, "BrightContrastModifier", "SequenceModifier");
+ RNA_def_struct_sdna(srna, "BrightContrastModifierData");
+ RNA_def_struct_ui_text(srna, "BrightContrastModifier", "Bright/contrast modifier data for sequence strip");
+
+ prop = RNA_def_property(srna, "bright", PROP_FLOAT, PROP_UNSIGNED);
+ RNA_def_property_float_sdna(prop, NULL, "bright");
+ RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
+ RNA_def_property_ui_text(prop, "Bright", "");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+
+ prop = RNA_def_property(srna, "contrast", PROP_FLOAT, PROP_UNSIGNED);
+ RNA_def_property_float_sdna(prop, NULL, "contrast");
+ RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
+ RNA_def_property_ui_text(prop, "Contrast", "");
+ RNA_def_property_update(prop, NC_SCENE | ND_SEQUENCER, "rna_SequenceModifier_update");
+}
+
+static void rna_def_modifiers(BlenderRNA *brna)
+{
+ rna_def_modifier(brna);
+
+ rna_def_colorbalance_modifier(brna);
+ rna_def_curves_modifier(brna);
+ rna_def_hue_modifier(brna);
+ rna_def_brightcontrast_modifier(brna);
+}
+
void RNA_def_sequencer(BlenderRNA *brna)
{
+ rna_def_color_balance(brna);
+
rna_def_strip_element(brna);
rna_def_strip_proxy(brna);
rna_def_strip_color_balance(brna);
@@ -1909,6 +2333,7 @@ void RNA_def_sequencer(BlenderRNA *brna)
rna_def_sound(brna);
rna_def_effect(brna);
rna_def_effects(brna);
+ rna_def_modifiers(brna);
}
#endif
diff --git a/source/blender/makesrna/intern/rna_sequencer_api.c b/source/blender/makesrna/intern/rna_sequencer_api.c
index 6c54b7c2cf3..f63ef6c8d76 100644
--- a/source/blender/makesrna/intern/rna_sequencer_api.c
+++ b/source/blender/makesrna/intern/rna_sequencer_api.c
@@ -37,8 +37,6 @@
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
-extern EnumPropertyItem blend_mode_items[];
-
#ifdef RNA_RUNTIME
//#include "DNA_anim_types.h"
@@ -68,7 +66,7 @@ static void rna_Sequence_swap_internal(Sequence *seq_self, ReportList *reports,
{
const char *error_msg;
- if (seq_swap(seq_self, seq_other, &error_msg) == 0)
+ if (BKE_sequence_swap(seq_self, seq_other, &error_msg) == 0)
BKE_report(reports, RPT_ERROR, error_msg);
}
@@ -79,11 +77,11 @@ static Sequence *alloc_generic_sequence(Editing *ed, const char *name, int start
Strip *strip;
StripElem *se;
- seq = alloc_sequence(ed->seqbasep, start_frame, channel);
+ seq = BKE_sequence_alloc(ed->seqbasep, start_frame, channel);
seq->type = type;
BLI_strncpy(seq->name + 2, name, sizeof(seq->name) - 2);
- seqbase_unique_name_recursive(&ed->seqbase, seq);
+ BKE_sequence_base_unique_name_recursive(&ed->seqbase, seq);
seq->strip = strip = MEM_callocN(sizeof(Strip), "strip");
seq->strip->us = 1;
@@ -111,7 +109,7 @@ static Sequence *rna_Sequences_new_clip(ID *id, Editing *ed,
seq->len = BKE_movieclip_get_duration(clip);
id_us_plus((ID *)clip);
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
@@ -130,7 +128,7 @@ static Sequence *rna_Sequences_new_mask(ID *id, Editing *ed,
seq->len = BKE_mask_get_duration(mask);
id_us_plus((ID *)mask);
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
@@ -150,7 +148,7 @@ static Sequence *rna_Sequences_new_scene(ID *id, Editing *ed,
seq->scene_sound = sound_scene_add_scene_sound(scene, seq, start_frame, start_frame + seq->len, 0);
id_us_plus((ID *)sce_seq);
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
@@ -170,11 +168,11 @@ static Sequence *rna_Sequences_new_image(ID *id, Editing *ed, ReportList *report
if (seq->strip->stripdata->name[0] == '\0') {
BKE_report(reports, RPT_ERROR, "Sequences.new_image: unable to open image file");
BLI_remlink(&ed->seqbase, seq);
- seq_free_sequence(scene, seq);
+ BKE_sequence_free(scene, seq);
return NULL;
}
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
@@ -188,7 +186,8 @@ static Sequence *rna_Sequences_new_movie(ID *id, Editing *ed, ReportList *report
Scene *scene = (Scene *)id;
Sequence *seq;
- struct anim *an = openanim(file, IB_rect, 0);
+ /* OCIO_TODO: support configurable color spaces for strips */
+ struct anim *an = openanim(file, IB_rect, 0, NULL);
if (an == NULL) {
BKE_report(reports, RPT_ERROR, "Sequences.new_movie: unable to open movie file");
@@ -200,7 +199,7 @@ static Sequence *rna_Sequences_new_movie(ID *id, Editing *ed, ReportList *report
seq->anim_preseek = IMB_anim_get_preseek(an);
seq->len = IMB_anim_get_duration(an, IMB_TC_RECORD_RUN);
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
@@ -227,7 +226,7 @@ static Sequence *rna_Sequences_new_sound(ID *id, Editing *ed, Main *bmain, Repor
seq->scene_sound = sound_add_scene_sound(scene, seq, start_frame, start_frame + seq->len, 0);
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
@@ -251,7 +250,7 @@ static Sequence *rna_Sequences_new_effect(ID *id, Editing *ed, ReportList *repor
Sequence *seq;
struct SeqEffectHandle sh;
- switch (get_sequence_effect_num_inputs(type)) {
+ switch (BKE_sequence_effect_get_num_inputs(type)) {
case 0:
if (end_frame <= start_frame) {
BKE_report(reports, RPT_ERROR,
@@ -282,13 +281,13 @@ static Sequence *rna_Sequences_new_effect(ID *id, Editing *ed, ReportList *repor
break;
default:
BKE_report(reports, RPT_ERROR,
- "Sequences.new_effect: get_sequence_effect_num_inputs() > 3 (should never happen)");
+ "Sequences.new_effect: BKE_sequence_effect_get_num_inputs() > 3 (should never happen)");
return NULL;
}
seq = alloc_generic_sequence(ed, name, start_frame, channel, type, NULL);
- sh = get_sequence_effect(seq);
+ sh = BKE_sequence_get_effect(seq);
seq->seq1 = seq1;
seq->seq2 = seq2;
@@ -298,12 +297,12 @@ static Sequence *rna_Sequences_new_effect(ID *id, Editing *ed, ReportList *repor
if (!seq1) { /* effect has no deps */
seq->len = 1;
- seq_tx_set_final_right(seq, end_frame);
+ BKE_sequence_tx_set_final_right(seq, end_frame);
}
seq->flag |= SEQ_USE_EFFECT_DEFAULT_FADE;
- calc_sequence(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
@@ -315,7 +314,7 @@ static void rna_Sequences_remove(ID *id, Editing *ed, Sequence *seq)
Scene *scene = (Scene *)id;
BLI_remlink(&ed->seqbase, seq);
- seq_free_sequence(scene, seq);
+ BKE_sequence_free(scene, seq);
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
}
@@ -330,7 +329,7 @@ static StripElem *rna_SequenceElements_push(ID *id, Sequence *seq, const char *f
BLI_strncpy(se->name, filename, sizeof(se->name));
seq->len++;
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
@@ -370,7 +369,7 @@ static void rna_SequenceElements_pop(ID *id, Sequence *seq, ReportList *reports,
MEM_freeN(seq->strip->stripdata);
seq->strip->stripdata = new_seq;
- calc_sequence_disp(scene, seq);
+ BKE_sequence_calc_disp(scene, seq);
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
}
@@ -383,7 +382,7 @@ void RNA_api_sequence_strip(StructRNA *srna)
FunctionRNA *func;
PropertyRNA *parm;
- func = RNA_def_function(srna, "getStripElem", "give_stripelem");
+ func = RNA_def_function(srna, "getStripElem", "BKE_sequencer_give_stripelem");
RNA_def_function_ui_description(func, "Return the strip element from a given frame or None");
parm = RNA_def_int(func, "frame", 0, -MAXFRAME, MAXFRAME, "Frame",
"The frame to get the strip element from", -MAXFRAME, MAXFRAME);
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index f6286333111..bfd0f731626 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -118,6 +118,15 @@ EnumPropertyItem viewport_shade_items[] = {
{0, NULL, 0, NULL, NULL}
};
+EnumPropertyItem clip_editor_mode_items[] = {
+ {SC_MODE_TRACKING, "TRACKING", ICON_ANIM_DATA, "Tracking", "Show tracking and solving tools"},
+ {SC_MODE_RECONSTRUCTION, "RECONSTRUCTION", ICON_SNAP_FACE, "Reconstruction",
+ "Show tracking/reconstruction tools"},
+ {SC_MODE_DISTORTION, "DISTORTION", ICON_GRID, "Distortion", "Show distortion tools"},
+ {SC_MODE_MASKEDIT, "MASK", ICON_MOD_MASK, "Mask", "Show mask editing tools"},
+ {0, NULL, 0, NULL, NULL}
+};
+
#ifdef RNA_RUNTIME
#include "DNA_anim_types.h"
@@ -469,7 +478,7 @@ static void rna_RegionView3D_view_matrix_set(PointerRNA *ptr, const float *value
}
/* api call */
-void rna_RegionView3D_update(ID *id, RegionView3D *rv3d)
+static void rna_RegionView3D_update(ID *id, RegionView3D *rv3d)
{
bScreen *sc = (bScreen *)id;
@@ -520,10 +529,8 @@ static PointerRNA rna_SpaceImageEditor_uvedit_get(PointerRNA *ptr)
return rna_pointer_inherit_refine(ptr, &RNA_SpaceUVEditor, ptr->data);
}
-static void rna_SpaceImageEditor_paint_update(Main *bmain, Scene *scene, PointerRNA *UNUSED(ptr))
+static void rna_SpaceImageEditor_mode_update(Main *bmain, Scene *scene, PointerRNA *ptr)
{
- paint_init(&scene->toolsettings->imapaint.paint, PAINT_CURSOR_TEXTURE_PAINT);
-
ED_space_image_paint_update(bmain->wm.first, scene->toolsettings);
}
@@ -546,6 +553,13 @@ static int rna_SpaceImageEditor_show_uvedit_get(PointerRNA *ptr)
return ED_space_image_show_uvedit(sima, sc->scene->obedit);
}
+static int rna_SpaceImageEditor_show_maskedit_get(PointerRNA *ptr)
+{
+ SpaceImage *sima = (SpaceImage *)(ptr->data);
+ bScreen *sc = (bScreen *)ptr->id.data;
+ return ED_space_image_check_show_maskedit(sc->scene, sima);
+}
+
static void rna_SpaceImageEditor_image_set(PointerRNA *ptr, PointerRNA value)
{
SpaceImage *sima = (SpaceImage *)(ptr->data);
@@ -554,6 +568,13 @@ static void rna_SpaceImageEditor_image_set(PointerRNA *ptr, PointerRNA value)
ED_space_image_set(sima, sc->scene, sc->scene->obedit, (Image *)value.data);
}
+static void rna_SpaceImageEditor_mask_set(PointerRNA *ptr, PointerRNA value)
+{
+ SpaceImage *sima = (SpaceImage *)(ptr->data);
+
+ ED_space_image_set_mask(NULL, sima, (Mask *)value.data);
+}
+
static EnumPropertyItem *rna_SpaceImageEditor_draw_channels_itemf(bContext *UNUSED(C), PointerRNA *ptr,
PropertyRNA *UNUSED(prop), int *free)
{
@@ -601,7 +622,7 @@ static void rna_SpaceImageEditor_zoom_get(PointerRNA *ptr, float *values)
sa = rna_area_from_space(ptr); /* can be NULL */
ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW);
if (ar) {
- ED_space_image_zoom(sima, ar, &values[0], &values[1]);
+ ED_space_image_get_zoom(sima, ar, &values[0], &values[1]);
}
}
@@ -614,7 +635,7 @@ static void rna_SpaceImageEditor_cursor_location_get(PointerRNA *ptr, float *val
}
else {
int w, h;
- ED_space_image_size(sima, &w, &h);
+ ED_space_image_get_size(sima, &w, &h);
values[0] = sima->cursor[0] * w;
values[1] = sima->cursor[1] * h;
@@ -630,27 +651,13 @@ static void rna_SpaceImageEditor_cursor_location_set(PointerRNA *ptr, const floa
}
else {
int w, h;
- ED_space_image_size(sima, &w, &h);
+ ED_space_image_get_size(sima, &w, &h);
sima->cursor[0] = values[0] / w;
sima->cursor[1] = values[1] / h;
}
}
-static void rna_SpaceImageEditor_curves_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
-{
- SpaceImage *sima = (SpaceImage *)ptr->data;
- ImBuf *ibuf;
- void *lock;
-
- ibuf = ED_space_image_acquire_buffer(sima, &lock);
- if (ibuf->rect_float)
- curvemapping_do_ibuf(sima->cumap, ibuf);
- ED_space_image_release_buffer(sima, lock);
-
- WM_main_add_notifier(NC_IMAGE, sima->image);
-}
-
static void rna_SpaceImageEditor_scopes_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *ptr)
{
SpaceImage *sima = (SpaceImage *)ptr->data;
@@ -659,7 +666,7 @@ static void rna_SpaceImageEditor_scopes_update(Main *UNUSED(bmain), Scene *scene
ibuf = ED_space_image_acquire_buffer(sima, &lock);
if (ibuf) {
- scopes_update(&sima->scopes, ibuf, scene->r.color_mgt_flag & R_COLOR_MANAGEMENT);
+ scopes_update(&sima->scopes, ibuf, &scene->view_settings, &scene->display_settings);
WM_main_add_notifier(NC_IMAGE, sima->image);
}
ED_space_image_release_buffer(sima, lock);
@@ -842,7 +849,7 @@ static void rna_SpaceDopeSheetEditor_action_update(Main *UNUSED(bmain), Scene *s
adt = BKE_id_add_animdata(&obact->id); /* this only adds if non-existant */
}
else if (saction->mode == SACTCONT_SHAPEKEY) {
- Key *key = ob_get_key(obact);
+ Key *key = BKE_key_from_object(obact);
if (key)
adt = BKE_id_add_animdata(&key->id); /* this only adds if non-existant */
}
@@ -869,7 +876,7 @@ static void rna_SpaceDopeSheetEditor_mode_update(Main *UNUSED(bmain), Scene *sce
/* special exceptions for ShapeKey Editor mode */
if (saction->mode == SACTCONT_SHAPEKEY) {
- Key *key = ob_get_key(obact);
+ Key *key = BKE_key_from_object(obact);
/* 1) update the action stored for the editor */
if (key)
@@ -1094,6 +1101,31 @@ static void rna_def_space(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Type", "Space data type");
}
+/* for all spaces that use a mask */
+static void rna_def_space_mask_info(StructRNA *srna, int noteflag, const char *mask_set_func)
+{
+ PropertyRNA *prop;
+
+ prop = RNA_def_property(srna, "mask", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "mask_info.mask");
+ RNA_def_property_flag(prop, PROP_EDITABLE);
+ RNA_def_property_ui_text(prop, "Mask", "Mask displayed and edited in this space");
+ RNA_def_property_pointer_funcs(prop, NULL, mask_set_func, NULL, NULL);
+ RNA_def_property_update(prop, noteflag, NULL);
+
+ /* mask drawing */
+ prop = RNA_def_property(srna, "mask_draw_type", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "mask_info.draw_type");
+ RNA_def_property_enum_items(prop, dt_uv_items);
+ RNA_def_property_ui_text(prop, "Edge Draw Type", "Draw type for mask splines");
+ RNA_def_property_update(prop, noteflag, NULL);
+
+ prop = RNA_def_property(srna, "show_mask_smooth", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "mask_info.draw_flag", MASK_DRAWFLAG_SMOOTH);
+ RNA_def_property_ui_text(prop, "Draw Smooth Splines", "");
+ RNA_def_property_update(prop, noteflag, NULL);
+}
+
static void rna_def_space_image_uv(BlenderRNA *brna)
{
StructRNA *srna;
@@ -1114,13 +1146,6 @@ static void rna_def_space_image_uv(BlenderRNA *brna)
{0, NULL, 0, NULL, NULL}
};
- static EnumPropertyItem pivot_items[] = {
- {V3D_CENTER, "CENTER", ICON_ROTATE, "Bounding Box Center", ""},
- {V3D_CENTROID, "MEDIAN", ICON_ROTATECENTER, "Median Point", ""},
- {V3D_CURSOR, "CURSOR", ICON_CURSOR, "2D Cursor", ""},
- {0, NULL, 0, NULL, NULL}
- };
-
srna = RNA_def_struct(brna, "SpaceUVEditor", NULL);
RNA_def_struct_sdna(srna, "SpaceImage");
RNA_def_struct_nested(brna, srna, "SpaceImageEditor");
@@ -1180,13 +1205,6 @@ static void rna_def_space_image_uv(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Draw Faces", "Draw faces over the image");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, NULL);
- prop = RNA_def_property(srna, "cursor_location", PROP_FLOAT, PROP_XYZ);
- RNA_def_property_array(prop, 2);
- RNA_def_property_float_funcs(prop, "rna_SpaceImageEditor_cursor_location_get",
- "rna_SpaceImageEditor_cursor_location_set", NULL);
- RNA_def_property_ui_text(prop, "2D Cursor Location", "2D cursor location for this view");
- RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, NULL);
-
/* todo: move edge and face drawing options here from G.f */
prop = RNA_def_property(srna, "use_snap_to_pixels", PROP_BOOLEAN, PROP_NONE);
@@ -1205,12 +1223,6 @@ static void rna_def_space_image_uv(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Live Unwrap",
"Continuously unwrap the selected UV island while transforming pinned vertices");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, NULL);
-
- prop = RNA_def_property(srna, "pivot_point", PROP_ENUM, PROP_NONE);
- RNA_def_property_enum_sdna(prop, NULL, "around");
- RNA_def_property_enum_items(prop, pivot_items);
- RNA_def_property_ui_text(prop, "Pivot", "Rotation/Scaling Pivot");
- RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, NULL);
}
static void rna_def_space_outliner(BlenderRNA *brna)
@@ -1312,7 +1324,7 @@ static void rna_def_background_image(BlenderRNA *brna)
srna = RNA_def_struct(brna, "BackgroundImage", NULL);
RNA_def_struct_sdna(srna, "BGpic");
- RNA_def_struct_ui_text(srna, "Background Image", "Image and settings for display in the 3d View background");
+ RNA_def_struct_ui_text(srna, "Background Image", "Image and settings for display in the 3D View background");
prop = RNA_def_property(srna, "source", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "source");
@@ -1529,7 +1541,7 @@ static void rna_def_space_view3d(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "near");
RNA_def_property_range(prop, 0.001f, FLT_MAX);
RNA_def_property_float_default(prop, 0.1f);
- RNA_def_property_ui_text(prop, "Clip Start", "3D View near clipping distance");
+ RNA_def_property_ui_text(prop, "Clip Start", "3D View near clipping distance (perspective view only)");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
prop = RNA_def_property(srna, "clip_end", PROP_FLOAT, PROP_DISTANCE);
@@ -1919,6 +1931,20 @@ static void rna_def_space_buttons(BlenderRNA *brna)
static void rna_def_space_image(BlenderRNA *brna)
{
+ static EnumPropertyItem image_space_mode_items[] = {
+ {SI_MODE_VIEW, "VIEW", ICON_FILE_IMAGE, "View", "View the image and UV edit in mesh editmode"},
+ {SI_MODE_PAINT, "PAINT", ICON_TPAINT_HLT, "Paint", "2D image painting mode"},
+ {SI_MODE_MASK, "MASK", ICON_MOD_MASK, "Mask", "Mask editing"},
+ {0, NULL, 0, NULL, NULL}
+ };
+
+ static EnumPropertyItem pivot_items[] = {
+ {V3D_CENTER, "CENTER", ICON_ROTATE, "Bounding Box Center", ""},
+ {V3D_CENTROID, "MEDIAN", ICON_ROTATECENTER, "Median Point", ""},
+ {V3D_CURSOR, "CURSOR", ICON_CURSOR, "2D Cursor", ""},
+ {0, NULL, 0, NULL, NULL}
+ };
+
StructRNA *srna;
PropertyRNA *prop;
@@ -1940,11 +1966,6 @@ static void rna_def_space_image(BlenderRNA *brna)
"Parameters defining which layer, pass and frame of the image is displayed");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, NULL);
- prop = RNA_def_property(srna, "curve", PROP_POINTER, PROP_NONE);
- RNA_def_property_pointer_sdna(prop, NULL, "cumap");
- RNA_def_property_ui_text(prop, "Curve", "Color curve mapping to use for displaying the image");
- RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, "rna_SpaceImageEditor_curves_update");
-
prop = RNA_def_property(srna, "scopes", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "scopes");
RNA_def_property_struct_type(prop, "Scopes");
@@ -1988,12 +2009,26 @@ static void rna_def_space_image(BlenderRNA *brna)
RNA_def_property_pointer_funcs(prop, "rna_SpaceImageEditor_uvedit_get", NULL, NULL, NULL);
RNA_def_property_ui_text(prop, "UV Editor", "UV editor settings");
- /* paint */
- prop = RNA_def_property(srna, "use_image_paint", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_DRAWTOOL);
- RNA_def_property_ui_text(prop, "Image Painting", "Enable image painting mode");
- RNA_def_property_ui_icon(prop, ICON_TPAINT_HLT, 0);
- RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, "rna_SpaceImageEditor_paint_update");
+ /* mode */
+ prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "mode");
+ RNA_def_property_enum_items(prop, image_space_mode_items);
+ RNA_def_property_ui_text(prop, "Mode", "Editing context being displayed");
+ RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, "rna_SpaceImageEditor_mode_update");
+
+ /* transform */
+ prop = RNA_def_property(srna, "cursor_location", PROP_FLOAT, PROP_XYZ);
+ RNA_def_property_array(prop, 2);
+ RNA_def_property_float_funcs(prop, "rna_SpaceImageEditor_cursor_location_get",
+ "rna_SpaceImageEditor_cursor_location_set", NULL);
+ RNA_def_property_ui_text(prop, "2D Cursor Location", "2D cursor location for this view");
+ RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, NULL);
+
+ prop = RNA_def_property(srna, "pivot_point", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "around");
+ RNA_def_property_enum_items(prop, pivot_items);
+ RNA_def_property_ui_text(prop, "Pivot", "Rotation/Scaling Pivot");
+ RNA_def_property_update(prop, NC_SPACE | ND_SPACE_IMAGE, NULL);
/* grease pencil */
prop = RNA_def_property(srna, "grease_pencil", PROP_POINTER, PROP_NONE);
@@ -2026,7 +2061,15 @@ static void rna_def_space_image(BlenderRNA *brna)
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_ui_text(prop, "Show UV Editor", "Show UV editing related properties");
+ prop = RNA_def_property(srna, "show_maskedit", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_funcs(prop, "rna_SpaceImageEditor_show_maskedit_get", NULL);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_ui_text(prop, "Show Mask Editor", "Show Mask editing related properties");
+
rna_def_space_image_uv(brna);
+
+ /* mask */
+ rna_def_space_mask_info(srna, NC_SPACE | ND_SPACE_IMAGE, "rna_SpaceImageEditor_mask_set");
}
static void rna_def_space_sequencer(BlenderRNA *brna)
@@ -2059,7 +2102,14 @@ static void rna_def_space_sequencer(BlenderRNA *brna)
{SEQ_PROXY_RENDER_SIZE_FULL, "FULL", 0, "No proxy, full render", ""},
{0, NULL, 0, NULL, NULL}
};
-
+
+ static EnumPropertyItem overlay_type_items[] = {
+ {SEQ_DRAW_OVERLAY_RECT, "RECTANGLE", 0, "Rectangle", "Show rectangle area overlay"},
+ {SEQ_DRAW_OVERLAY_REFERENCE, "REFERENCE", 0, "Reference", "Show reference frame only"},
+ {SEQ_DRAW_OVERLAY_CURRENT, "CURRENT", 0, "Current", "Show current frame only"},
+ {0, NULL, 0, NULL, NULL}
+ };
+
srna = RNA_def_struct(brna, "SpaceSequenceEditor", "Space");
RNA_def_struct_sdna(srna, "SpaceSeq");
RNA_def_struct_ui_text(srna, "Space Sequence Editor", "Sequence editor space data");
@@ -2137,6 +2187,12 @@ static void rna_def_space_sequencer(BlenderRNA *brna)
RNA_def_property_struct_type(prop, "GreasePencil");
RNA_def_property_ui_text(prop, "Grease Pencil", "Grease pencil data for this space");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_SEQUENCER, NULL);
+
+ prop = RNA_def_property(srna, "overlay_type", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "overlay_type");
+ RNA_def_property_enum_items(prop, overlay_type_items);
+ RNA_def_property_ui_text(prop, "Overlay Type", "Overlay draw type");
+ RNA_def_property_update(prop, NC_SPACE | ND_SPACE_SEQUENCER, NULL);
}
static void rna_def_space_text(BlenderRNA *brna)
@@ -2576,6 +2632,14 @@ static void rna_def_space_time(BlenderRNA *brna)
static void rna_def_console_line(BlenderRNA *brna)
{
+ static EnumPropertyItem console_line_type_items[] = {
+ {CONSOLE_LINE_OUTPUT, "OUTPUT", 0, "Output", ""},
+ {CONSOLE_LINE_INPUT, "INPUT", 0, "Input", ""},
+ {CONSOLE_LINE_INFO, "INFO", 0, "Info", ""},
+ {CONSOLE_LINE_ERROR, "ERROR", 0, "Error", ""},
+ {0, NULL, 0, NULL, NULL}
+ };
+
StructRNA *srna;
PropertyRNA *prop;
@@ -2593,6 +2657,11 @@ static void rna_def_console_line(BlenderRNA *brna)
RNA_def_property_int_sdna(prop, NULL, "cursor");
RNA_def_property_int_funcs(prop, NULL, NULL, "rna_ConsoleLine_cursor_index_range");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CONSOLE, NULL);
+
+ prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "type");
+ RNA_def_property_enum_items(prop, console_line_type_items);
+ RNA_def_property_ui_text(prop, "Type", "Console line type when used in scrollback");
}
static void rna_def_space_console(BlenderRNA *brna)
@@ -2852,6 +2921,10 @@ static void rna_def_space_node(BlenderRNA *brna)
{SNODE_USE_ALPHA, "COLOR_ALPHA", ICON_IMAGE_RGB_ALPHA, "Color and Alpha",
"Draw image with RGB colors and alpha transparency"},
{SNODE_SHOW_ALPHA, "ALPHA", ICON_IMAGE_ALPHA, "Alpha", "Draw alpha transparency channel"},
+ /* XXX, we could use better icons here */
+ {SNODE_SHOW_R, "RED", ICON_COLOR, "Red", ""},
+ {SNODE_SHOW_G, "GREEN", ICON_COLOR, "Green", ""},
+ {SNODE_SHOW_B, "BLUE", ICON_COLOR, "Blue", ""},
{0, NULL, 0, NULL, NULL}
};
@@ -2890,9 +2963,14 @@ static void rna_def_space_node(BlenderRNA *brna)
RNA_def_property_pointer_sdna(prop, NULL, "nodetree");
RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, "rna_SpaceNodeEditor_node_tree_poll");
RNA_def_property_flag(prop, PROP_EDITABLE);
- RNA_def_property_ui_text(prop, "Node Tree", "Node tree being displayed and edited");
+ RNA_def_property_ui_text(prop, "Node Tree", "Node tree being displayed");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_NODE, "rna_SpaceNodeEditor_node_tree_update");
+ prop = RNA_def_property(srna, "edit_tree", PROP_POINTER, PROP_NONE);
+ RNA_def_property_pointer_sdna(prop, NULL, "edittree");
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_ui_text(prop, "Edit Tree", "Edited node tree");
+
prop = RNA_def_property(srna, "show_backdrop", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", SNODE_BACKDRAW);
RNA_def_property_ui_text(prop, "Backdrop", "Use active Viewer Node output as backdrop for compositing nodes");
@@ -2931,6 +3009,17 @@ static void rna_def_space_node(BlenderRNA *brna)
RNA_def_property_boolean_sdna(prop, NULL, "flag", SNODE_SHOW_HIGHLIGHT);
RNA_def_property_ui_text(prop, "Highlight", "Highlight nodes that are being calculated");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_NODE_VIEW, NULL);
+
+ prop = RNA_def_property(srna, "use_hidden_preview", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "flag", SNODE_USE_HIDDEN_PREVIEW);
+ RNA_def_property_ui_text(prop, "Hide Preview", "Hide preview for newly creating nodes");
+ RNA_def_property_update(prop, NC_SPACE | ND_SPACE_NODE_VIEW, NULL);
+
+ /* the mx/my "cursor" in the node editor is used only by operators to store the mouse position */
+ prop = RNA_def_property(srna, "cursor_location", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_float_sdna(prop, NULL, "cursor");
+ RNA_def_property_ui_text(prop, "Cursor Location", "Location for adding new nodes");
+ RNA_def_property_update(prop, NC_SPACE | ND_SPACE_NODE_VIEW, NULL);
}
static void rna_def_space_logic(BlenderRNA *brna)
@@ -3007,15 +3096,6 @@ static void rna_def_space_clip(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
- static EnumPropertyItem mode_items[] = {
- {SC_MODE_TRACKING, "TRACKING", ICON_ANIM_DATA, "Tracking", "Show tracking and solving tools"},
- {SC_MODE_RECONSTRUCTION, "RECONSTRUCTION", ICON_SNAP_FACE, "Reconstruction",
- "Show tracking/reconstruction tools"},
- {SC_MODE_DISTORTION, "DISTORTION", ICON_GRID, "Distortion", "Show distortion tools"},
- {SC_MODE_MASKEDIT, "MASKEDIT", ICON_MOD_MASK, "Mask editing", "Show mask editing tools"},
- {0, NULL, 0, NULL, NULL}
- };
-
static EnumPropertyItem view_items[] = {
{SC_VIEW_CLIP, "CLIP", ICON_SEQUENCE, "Clip", "Show editing clip preview"},
{SC_VIEW_GRAPH, "GRAPH", ICON_IPO, "Graph", "Show graph view for active element"},
@@ -3060,29 +3140,12 @@ static void rna_def_space_clip(BlenderRNA *brna)
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, NULL);
/* mask */
- prop = RNA_def_property(srna, "mask", PROP_POINTER, PROP_NONE);
- RNA_def_property_flag(prop, PROP_EDITABLE);
- RNA_def_property_ui_text(prop, "Mask", "Mask displayed and edited in this space");
- RNA_def_property_pointer_funcs(prop, NULL, "rna_SpaceClipEditor_mask_set", NULL, NULL);
- RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, NULL);
-
- /* mask drawing */
- prop = RNA_def_property(srna, "mask_draw_type", PROP_ENUM, PROP_NONE);
- RNA_def_property_enum_sdna(prop, NULL, "mask_draw_type");
- RNA_def_property_enum_items(prop, dt_uv_items);
- RNA_def_property_ui_text(prop, "Edge Draw Type", "Draw type for mask splines");
- RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, NULL);
-
- prop = RNA_def_property(srna, "show_mask_smooth", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "mask_draw_flag", MASK_DRAWFLAG_SMOOTH);
- RNA_def_property_ui_text(prop, "Draw Smooth Splines", "");
- RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, NULL);
-
+ rna_def_space_mask_info(srna, NC_SPACE | ND_SPACE_CLIP, "rna_SpaceClipEditor_mask_set");
/* mode */
prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "mode");
- RNA_def_property_enum_items(prop, mode_items);
+ RNA_def_property_enum_items(prop, clip_editor_mode_items);
RNA_def_property_ui_text(prop, "Mode", "Editing context being displayed");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, "rna_SpaceClipEditor_clip_mode_update");
diff --git a/source/blender/makesrna/intern/rna_speaker.c b/source/blender/makesrna/intern/rna_speaker.c
index 1e3c8df9273..a160aaf94e2 100644
--- a/source/blender/makesrna/intern/rna_speaker.c
+++ b/source/blender/makesrna/intern/rna_speaker.c
@@ -35,6 +35,8 @@
#include "DNA_speaker_types.h"
#include "DNA_sound_types.h"
+#include "BLF_translation.h"
+
#ifdef RNA_RUNTIME
#include "MEM_guardedalloc.h"
@@ -45,7 +47,6 @@
#include "WM_api.h"
#include "WM_types.h"
-
#else
static void rna_def_speaker(BlenderRNA *brna)
@@ -151,6 +152,7 @@ static void rna_def_speaker(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "volume");
RNA_def_property_range(prop, 0.0f, 1.0f);
RNA_def_property_ui_text(prop, "Volume", "How loud the sound is");
+ RNA_def_property_translation_context(prop, BLF_I18NCONTEXT_AUDIO);
/* RNA_def_property_float_funcs(prop, NULL, "rna_Speaker_volume_set", NULL); */
/* RNA_def_property_update(prop, 0, "rna_Speaker_update"); */
@@ -158,6 +160,7 @@ static void rna_def_speaker(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "pitch");
RNA_def_property_range(prop, 0.1f, 10.0f);
RNA_def_property_ui_text(prop, "Pitch", "Playback pitch of the sound");
+ RNA_def_property_translation_context(prop, BLF_I18NCONTEXT_AUDIO);
/* RNA_def_property_float_funcs(prop, NULL, "rna_Speaker_pitch_set", NULL); */
/* RNA_def_property_update(prop, 0, "rna_Speaker_update"); */
diff --git a/source/blender/makesrna/intern/rna_text_api.c b/source/blender/makesrna/intern/rna_text_api.c
index 0366012e260..5f67f367195 100644
--- a/source/blender/makesrna/intern/rna_text_api.c
+++ b/source/blender/makesrna/intern/rna_text_api.c
@@ -30,6 +30,8 @@
#include "RNA_define.h"
+#include "rna_internal.h" /* own include */
+
#ifdef RNA_RUNTIME
#include "WM_api.h"
diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c
index 0270a7643a6..202c53cb75d 100644
--- a/source/blender/makesrna/intern/rna_texture.c
+++ b/source/blender/makesrna/intern/rna_texture.c
@@ -71,7 +71,7 @@ EnumPropertyItem texture_type_items[] = {
{TEX_POINTDENSITY, "POINT_DENSITY", ICON_TEXTURE, "Point Density", ""},
{TEX_STUCCI, "STUCCI", ICON_TEXTURE, "Stucci", "Procedural - create a fractal noise texture"},
{TEX_VORONOI, "VORONOI", ICON_TEXTURE, "Voronoi", "Procedural - create cell-like patterns based on Worley noise"},
- {TEX_VOXELDATA, "VOXEL_DATA", ICON_TEXTURE, "Voxel Data", "Create a 3d texture based on volumetric data"},
+ {TEX_VOXELDATA, "VOXEL_DATA", ICON_TEXTURE, "Voxel Data", "Create a 3D texture based on volumetric data"},
{TEX_WOOD, "WOOD", ICON_TEXTURE, "Wood", "Procedural - wave generated bands or rings, with optional noise"},
{TEX_OCEAN, "OCEAN", ICON_TEXTURE, "Ocean", "Use a texture generated by an Ocean modifier"},
{0, NULL, 0, NULL, NULL}
@@ -1443,12 +1443,12 @@ static void rna_def_texture_voronoi(BlenderRNA *brna)
"The length of the distance in axial directions"},
{TEX_CHEBYCHEV, "CHEBYCHEV", 0, "Chebychev",
"The length of the longest Axial journey"},
- {TEX_MINKOVSKY_HALF, "MINKOVSKY_HALF", 0, "Minkovsky 1/2",
- "Set Minkovsky variable to 0.5"},
- {TEX_MINKOVSKY_FOUR, "MINKOVSKY_FOUR", 0, "Minkovsky 4",
- "Set Minkovsky variable to 4"},
- {TEX_MINKOVSKY, "MINKOVSKY", 0, "Minkovsky",
- "Use the Minkowsky function to calculate distance "
+ {TEX_MINKOVSKY_HALF, "MINKOVSKY_HALF", 0, "Minkowski 1/2",
+ "Set Minkowski variable to 0.5"},
+ {TEX_MINKOVSKY_FOUR, "MINKOVSKY_FOUR", 0, "Minkowski 4",
+ "Set Minkowski variable to 4"},
+ {TEX_MINKOVSKY, "MINKOVSKY", 0, "Minkowski",
+ "Use the Minkowski function to calculate distance "
"(exponent value determines the shape of the boundaries)"},
{0, NULL, 0, NULL, NULL}
};
@@ -1494,7 +1494,7 @@ static void rna_def_texture_voronoi(BlenderRNA *brna)
prop = RNA_def_property(srna, "minkovsky_exponent", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "vn_mexp");
RNA_def_property_range(prop, 0.01, 10);
- RNA_def_property_ui_text(prop, "Minkovsky Exponent", "Minkovsky exponent");
+ RNA_def_property_ui_text(prop, "Minkowski Exponent", "Minkowski exponent");
RNA_def_property_update(prop, 0, "rna_Texture_update");
prop = RNA_def_property(srna, "distance_metric", PROP_ENUM, PROP_NONE);
@@ -1733,6 +1733,7 @@ static void rna_def_texture_pointdensity(BlenderRNA *brna)
prop = RNA_def_property(srna, "turbulence_strength", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "noise_fac");
RNA_def_property_range(prop, 0.01, FLT_MAX);
+ RNA_def_property_ui_text(prop, "Turbulence Strength", "Strength of the added turbulent noise");
RNA_def_property_update(prop, 0, "rna_Texture_update");
prop = RNA_def_property(srna, "turbulence_depth", PROP_INT, PROP_NONE);
diff --git a/source/blender/makesrna/intern/rna_texture_api.c b/source/blender/makesrna/intern/rna_texture_api.c
index ff8940129a1..a2880510958 100644
--- a/source/blender/makesrna/intern/rna_texture_api.c
+++ b/source/blender/makesrna/intern/rna_texture_api.c
@@ -24,14 +24,15 @@
* \ingroup RNA
*/
-
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include "BLI_path_util.h"
#include "RNA_define.h"
-#include "BKE_utildefines.h"
+
+#include "rna_internal.h" /* own include */
#ifdef RNA_RUNTIME
@@ -43,8 +44,8 @@
#include "RE_pipeline.h"
#include "RE_shader_ext.h"
-void save_envmap(struct EnvMap *env, bContext *C, ReportList *reports, const char *filepath,
- struct Scene *scene, float layout[12])
+static void save_envmap(struct EnvMap *env, bContext *C, ReportList *reports, const char *filepath,
+ struct Scene *scene, float layout[12])
{
if (scene == NULL) {
scene = CTX_data_scene(C);
@@ -53,7 +54,7 @@ void save_envmap(struct EnvMap *env, bContext *C, ReportList *reports, const cha
RE_WriteEnvmapResult(reports, scene, env, filepath, scene->r.im_format.imtype, layout);
}
-void clear_envmap(struct EnvMap *env, bContext *C)
+static void clear_envmap(struct EnvMap *env, bContext *C)
{
Main *bmain = CTX_data_main(C);
Tex *tex;
@@ -67,7 +68,7 @@ void clear_envmap(struct EnvMap *env, bContext *C)
}
}
-void texture_evaluate(struct Tex *tex, float value[3], float color_r[4])
+static void texture_evaluate(struct Tex *tex, float value[3], float color_r[4])
{
TexResult texres = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, NULL};
multitex_ext(tex, value, NULL, NULL, 1, &texres);
diff --git a/source/blender/makesrna/intern/rna_tracking.c b/source/blender/makesrna/intern/rna_tracking.c
index e8e00d42d2f..0c62a280935 100644
--- a/source/blender/makesrna/intern/rna_tracking.c
+++ b/source/blender/makesrna/intern/rna_tracking.c
@@ -144,7 +144,7 @@ static void rna_tracking_active_track_set(PointerRNA *ptr, PointerRNA value)
clip->tracking.act_track = NULL;
}
-void rna_trackingTrack_name_set(PointerRNA *ptr, const char *value)
+static void rna_trackingTrack_name_set(PointerRNA *ptr, const char *value)
{
MovieClip *clip = (MovieClip *)ptr->id.data;
MovieTracking *tracking = &clip->tracking;
@@ -325,7 +325,7 @@ static void rna_tracking_active_object_set(PointerRNA *ptr, PointerRNA value)
else clip->tracking.objectnr = 0;
}
-void rna_trackingObject_name_set(PointerRNA *ptr, const char *value)
+static void rna_trackingObject_name_set(PointerRNA *ptr, const char *value)
{
MovieClip *clip = (MovieClip *)ptr->id.data;
MovieTrackingObject *object = (MovieTrackingObject *)ptr->data;
@@ -382,6 +382,17 @@ static void rna_tracking_markerSearch_update(Main *UNUSED(bmain), Scene *UNUSED(
BKE_tracking_marker_clamp(marker, CLAMP_SEARCH_DIM);
}
+static void rna_tracking_markerPattern_boundbox_get(PointerRNA *ptr, float *values)
+{
+ MovieTrackingMarker *marker = (MovieTrackingMarker *)ptr->data;
+ float min[2], max[2];
+
+ BKE_tracking_marker_pattern_minmax(marker, min, max);
+
+ copy_v2_v2(values, min);
+ copy_v2_v2(values + 2, max);
+}
+
static void rna_trackingDopesheet_tagUpdate(Main *UNUSED(bmain), Scene *scene, PointerRNA *ptr)
{
MovieClip *clip = (MovieClip *)ptr->id.data;
@@ -436,16 +447,19 @@ static MovieTrackingObject *rna_trackingObject_new(MovieTracking *tracking, cons
return object;
}
-void rna_trackingObject_remove(MovieTracking *tracking, MovieTrackingObject *object)
+static void rna_trackingObject_remove(MovieTracking *tracking, MovieTrackingObject *object)
{
BKE_tracking_object_delete(tracking, object);
WM_main_add_notifier(NC_MOVIECLIP | NA_EDITED, NULL);
}
-static MovieTrackingMarker *rna_trackingMarkers_find_frame(MovieTrackingTrack *track, int framenr)
+static MovieTrackingMarker *rna_trackingMarkers_find_frame(MovieTrackingTrack *track, int framenr, int exact)
{
- return BKE_tracking_marker_get_exact(track, framenr);
+ if (exact)
+ return BKE_tracking_marker_get_exact(track, framenr);
+ else
+ return BKE_tracking_marker_get(track, framenr);
}
static MovieTrackingMarker *rna_trackingMarkers_insert_frame(MovieTrackingTrack *track, int framenr, float *co)
@@ -463,7 +477,7 @@ static MovieTrackingMarker *rna_trackingMarkers_insert_frame(MovieTrackingTrack
return new_marker;
}
-void rna_trackingMarkers_delete_frame(MovieTrackingTrack *track, int framenr)
+static void rna_trackingMarkers_delete_frame(MovieTrackingTrack *track, int framenr)
{
if (track->markersnr == 1)
return;
@@ -646,19 +660,19 @@ static void rna_def_trackingSettings(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Motion model", "Default motion model to use for tracking");
/* default_use_brute */
- prop = RNA_def_property(srna, "default_use_brute", PROP_BOOLEAN, PROP_NONE);
+ prop = RNA_def_property(srna, "use_default_brute", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "default_algorithm_flag", TRACK_ALGORITHM_FLAG_USE_BRUTE);
RNA_def_property_ui_text(prop, "Prepass", "Use a brute-force translation-only initialization when tracking");
RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, NULL);
/* default_use_brute */
- prop = RNA_def_property(srna, "default_use_mask", PROP_BOOLEAN, PROP_NONE);
+ prop = RNA_def_property(srna, "use_default_mask", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "default_algorithm_flag", TRACK_ALGORITHM_FLAG_USE_MASK);
RNA_def_property_ui_text(prop, "Use Mask", "Use a grease pencil datablock as a mask to use only specified areas of pattern when tracking");
RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, NULL);
/* default_use_normalization */
- prop = RNA_def_property(srna, "default_use_normalization", PROP_BOOLEAN, PROP_NONE);
+ prop = RNA_def_property(srna, "use_default_normalization", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "default_algorithm_flag", TRACK_ALGORITHM_FLAG_USE_NORMALIZATION);
RNA_def_property_ui_text(prop, "Normalize", "Normalize light intensities while tracking (slower)");
RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, NULL);
@@ -814,6 +828,8 @@ static void rna_def_trackingMarker(BlenderRNA *brna)
StructRNA *srna;
PropertyRNA *prop;
+ static int boundbox_dimsize[] = {2, 2};
+
srna = RNA_def_struct(brna, "MovieTrackingMarker", NULL);
RNA_def_struct_ui_text(srna, "Movie tracking marker data", "Match-moving marker data for tracking");
@@ -849,6 +865,12 @@ static void rna_def_trackingMarker(BlenderRNA *brna)
"normalized coordinates relative to marker position");
RNA_def_property_update(prop, NC_MOVIECLIP | NA_EDITED, "rna_tracking_markerPattern_update");
+ prop = RNA_def_property(srna, "pattern_bound_box", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_multi_array(prop, 2, boundbox_dimsize);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_float_funcs(prop, "rna_tracking_markerPattern_boundbox_get", NULL, NULL);
+ RNA_def_property_ui_text(prop, "Pattern Bounding Box", "Pattern area bounding box in normalized coordinates");
+
/* search */
prop = RNA_def_property(srna, "search_min", PROP_FLOAT, PROP_TRANSLATION);
RNA_def_property_array(prop, 2);
@@ -887,6 +909,8 @@ static void rna_def_trackingMarkers(BlenderRNA *brna, PropertyRNA *cprop)
parm = RNA_def_int(func, "frame", 1, MINFRAME, MAXFRAME, "Frame",
"Frame number to find marker for", MINFRAME, MAXFRAME);
RNA_def_property_flag(parm, PROP_REQUIRED);
+ parm = RNA_def_boolean(func, "exact", TRUE, "Exact",
+ "Get marker at exact frame number rather than get estimated marker");
parm = RNA_def_pointer(func, "marker", "MovieTrackingMarker", "", "Marker for specified frame");
RNA_def_function_return(func, parm);
@@ -1170,7 +1194,7 @@ static void rna_def_trackingStabilization(BlenderRNA *brna)
RNA_def_property_boolean_sdna(prop, NULL, "flag", TRACKING_AUTOSCALE);
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_ui_text(prop, "Autoscale",
- "Automatically scale footage to cover unfilled areas when stabilizating");
+ "Automatically scale footage to cover unfilled areas when stabilizing");
RNA_def_property_update(prop, NC_MOVIECLIP | ND_DISPLAY, "rna_tracking_flushUpdate");
/* max scale */
@@ -1242,7 +1266,7 @@ static void rna_def_reconstructedCamera(BlenderRNA *brna)
prop = RNA_def_property(srna, "average_error", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "error");
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
- RNA_def_property_ui_text(prop, "Average Error", "Average error of resonctruction");
+ RNA_def_property_ui_text(prop, "Average Error", "Average error of reconstruction");
}
static void rna_def_trackingReconstruction(BlenderRNA *brna)
@@ -1266,7 +1290,7 @@ static void rna_def_trackingReconstruction(BlenderRNA *brna)
prop = RNA_def_property(srna, "average_error", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "error");
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
- RNA_def_property_ui_text(prop, "Average Error", "Average error of resonctruction");
+ RNA_def_property_ui_text(prop, "Average Error", "Average error of reconstruction");
/* cameras */
prop = RNA_def_property(srna, "cameras", PROP_COLLECTION, PROP_NONE);
diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c
index 96ddcce6004..006e1ad3903 100644
--- a/source/blender/makesrna/intern/rna_ui_api.c
+++ b/source/blender/makesrna/intern/rna_ui_api.c
@@ -36,6 +36,8 @@
#include "UI_resources.h"
+#include "rna_internal.h"
+
#ifdef RNA_RUNTIME
static void rna_uiItemR(uiLayout *layout, PointerRNA *ptr, const char *propname, const char *name, int icon,
@@ -125,6 +127,7 @@ void RNA_api_ui_layout(StructRNA *srna)
{0, "NONE", 0, "None", ""},
{'v', "VECTOR", 0, "Vector", ""},
{'c', "COLOR", 0, "Color", ""},
+ {'h', "HUE", 0, "Hue", ""},
{0, NULL, 0, NULL, NULL}
};
@@ -414,6 +417,7 @@ void RNA_api_ui_layout(StructRNA *srna)
RNA_def_function_ui_description(func, "User interface for setting image format options");
parm = RNA_def_pointer(func, "image_settings", "ImageFormatSettings", "", "");
RNA_def_property_flag(parm, PROP_REQUIRED | PROP_RNAPTR | PROP_NEVER_NULL);
+ RNA_def_boolean(func, "color_management", 0, "", "Show color management settings");
func = RNA_def_function(srna, "template_movieclip", "uiTemplateMovieClip");
RNA_def_function_ui_description(func, "Item(s). User interface for selecting movie clips and their source paths");
@@ -496,6 +500,17 @@ void RNA_api_ui_layout(StructRNA *srna)
func = RNA_def_function(srna, "introspect", "uiLayoutIntrospect");
parm = RNA_def_string(func, "string", "", 1024 * 1024, "Descr", "DESCR");
RNA_def_function_return(func, parm);
+
+ /* color management templates */
+ func = RNA_def_function(srna, "template_colorspace_settings", "uiTemplateColorspaceSettings");
+ RNA_def_function_ui_description(func, "Item. A widget to control input color space settings.");
+ api_ui_item_rna_common(func);
+
+ func = RNA_def_function(srna, "template_colormanaged_view_settings", "uiTemplateColormanagedViewSettings");
+ RNA_def_function_ui_description(func, "Item. A widget to control color managed view settings settings.");
+ RNA_def_function_flag(func, FUNC_USE_CONTEXT);
+ api_ui_item_rna_common(func);
+ /* RNA_def_boolean(func, "show_global_settings", 0, "", "Show widgets to control global color management settings"); */
}
#endif
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index 54178516d50..e1cf7a13f59 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -265,7 +265,7 @@ static void rna_UserDef_audio_update(Main *bmain, Scene *UNUSED(scene), PointerR
static void rna_Userdef_memcache_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *UNUSED(ptr))
{
- MEM_CacheLimiter_set_maximum(U.memcachelimit * 1024 * 1024);
+ MEM_CacheLimiter_set_maximum(((size_t) U.memcachelimit) * 1024 * 1024);
}
static void rna_UserDef_weight_color_update(Main *bmain, Scene *scene, PointerRNA *ptr)
@@ -1183,6 +1183,11 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Bone Pose", "");
RNA_def_property_update(prop, 0, "rna_userdef_update");
+ prop = RNA_def_property(srna, "bone_pose_active", PROP_FLOAT, PROP_COLOR_GAMMA);
+ RNA_def_property_array(prop, 3);
+ RNA_def_property_ui_text(prop, "Bone Pose Active", "");
+ RNA_def_property_update(prop, 0, "rna_userdef_update");
+
prop = RNA_def_property(srna, "frame_current", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_float_sdna(prop, NULL, "cframe");
RNA_def_property_array(prop, 3);
@@ -2537,11 +2542,16 @@ static void rna_def_userdef_view(BlenderRNA *brna)
RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_LOCKAROUND);
RNA_def_property_ui_text(prop, "Global Pivot", "Lock the same rotation/scaling pivot in all 3D Views");
- prop = RNA_def_property(srna, "use_mouse_auto_depth", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_ORBIT_ZBUF);
+ prop = RNA_def_property(srna, "use_mouse_depth_navigate", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_ZBUF_ORBIT);
RNA_def_property_ui_text(prop, "Auto Depth",
"Use the depth under the mouse to improve view pan/rotate/zoom functionality");
+ prop = RNA_def_property(srna, "use_mouse_depth_cursor", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_ZBUF_CURSOR);
+ RNA_def_property_ui_text(prop, "Cursor Depth",
+ "Use the depth under the mouse when placing the cursor");
+
prop = RNA_def_property(srna, "use_camera_lock_parent", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "uiflag", USER_CAM_LOCK_NO_PARENT);
RNA_def_property_ui_text(prop, "Camera Parent Lock",
@@ -2735,6 +2745,11 @@ static void rna_def_userdef_edit(BlenderRNA *brna)
RNA_def_property_boolean_sdna(prop, NULL, "autokey_flag", AUTOKEY_FLAG_INSERTAVAIL);
RNA_def_property_ui_text(prop, "Auto Keyframe Insert Available",
"Automatic keyframe insertion in available F-Curves");
+
+ prop = RNA_def_property(srna, "use_auto_keying_warning", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "autokey_flag", AUTOKEY_FLAG_NOWARNING);
+ RNA_def_property_ui_text(prop, "Show Auto Keying Warning",
+ "Show warning indicators when transforming Object and Bones if Auto Keying is enabled");
/* keyframing settings */
prop = RNA_def_property(srna, "use_keyframe_insert_needed", PROP_BOOLEAN, PROP_NONE);
@@ -2972,20 +2987,24 @@ static void rna_def_userdef_system(BlenderRNA *brna)
/* locale according to http://www.roseindia.net/tutorials/I18N/locales-list.shtml */
/* if you edit here, please also edit the source/blender/blenfont/intern/blf_lang.c 's locales */
/* Note: As this list is in alphabetical order, and not defined order,
- * here is the highest define currently in use: 31 (Hungarian). */
+ * here is the highest define currently in use: 33 (Hebrew). */
static EnumPropertyItem language_items[] = {
- { 0, "", 0, N_("Nearly done"), ""},
+ { 0, "", 0, N_("Nearly Done"), ""},
{ 0, "DEFAULT", 0, "Default (Default)", ""},
+ /* using the utf8 flipped form of Arabic (العربية) */
+ {21, "ARABIC", 0, "Arabic (ﺔﻴﺑﺮﻌﻟﺍ)", "ar_EG"},
+ {32, "BRAZILIANPORTUGUESE", 0, "Brazilian Portuguese (Português do Brasil)", "pt_BR"},
{ 1, "ENGLISH", 0, "English (English)", "en_US"},
{ 8, "FRENCH", 0, "French (Français)", "fr_FR"},
{ 4, "ITALIAN", 0, "Italian (Italiano)", "it_IT"},
+ { 2, "JAPANESE", 0, "Japanese (日本語)", "ja_JP"},
+ {12, "PORTUGUESE", 0, "Portuguese (Português)", "pt"},
{15, "RUSSIAN", 0, "Russian (Русский)", "ru_RU"},
{13, "SIMPLIFIED_CHINESE", 0, "Simplified Chinese (简体中文)", "zh_CN"},
{ 9, "SPANISH", 0, "Spanish (Español)", "es"},
{14, "TRADITIONAL_CHINESE", 0, "Traditional Chinese (繁體中文)", "zh_TW"},
- { 0, "", 0, N_("In progress"), ""},
- /* using the utf8 flipped form of Arabic (العربية) */
- {21, "ARABIC", 0, "Arabic (ﺔﻴﺑﺮﻌﻟﺍ)", "ar_EG"},
+ {18, "UKRAINIAN", 0, "Ukrainian (Український)", "uk_UA"},
+ { 0, "", 0, N_("In Progress"), ""},
{22, "BULGARIAN", 0, "Bulgarian (Български)", "bg_BG"},
{10, "CATALAN", 0, "Catalan (Català)", "ca_AD"},
{16, "CROATIAN", 0, "Croatian (Hrvatski)", "hr_HR"},
@@ -2994,22 +3013,21 @@ static void rna_def_userdef_system(BlenderRNA *brna)
{ 6, "FINNISH", 0, "Finnish (Suomi)", "fi_FI"},
{ 5, "GERMAN", 0, "German (Deutsch)", "de_DE"},
{23, "GREEK", 0, "Greek (Ελληνικά)", "el_GR"},
- {31, "HUNGARIAN", 0, "Hungarian (magyar)", "hu_HU"},
+ /* using the utf8 flipped form of Hebrew (עִבְרִית)) */
+ {33, "HEBREW", 0, "Hebrew (תירִבְעִ)", "he_IL"},
+ {31, "HUNGARIAN", 0, "Hungarian (Magyar)", "hu_HU"},
{27, "INDONESIAN", 0, "Indonesian (Bahasa indonesia)", "id_ID"},
- { 2, "JAPANESE", 0, "Japanese (日本語)", "ja_JP"},
{29, "KYRGYZ", 0, "Kyrgyz (Кыргыз тили)", "ky_KG"},
/* {24, "KOREAN", 0, "Korean (한국 언어)", "ko_KR"}, */ /* XXX No po's yet. */
{25, "NEPALI", 0, "Nepali (नेपाली)", "ne_NP"},
/* using the utf8 flipped form of Persian (فارسی) */
{26, "PERSIAN", 0, "Persian (ﯽﺳﺭﺎﻓ)", "fa_IR"},
{19, "POLISH", 0, "Polish (Polski)", "pl_PL"},
- {12, "BRAZILIAN_PORTUGUESE", 0, "Portuguese (Português)", "pt"},
/* {20, "ROMANIAN", 0, "Romanian (Român)", "ro_RO"}, */ /* XXX No po's yet. */
{17, "SERBIAN", 0, "Serbian (Српски)", "sr_RS"},
- {28, "SERBIAN_LATIN", 0, "Serbian latin (Srpski latinica)", "sr_RS@latin"},
+ {28, "SERBIAN_LATIN", 0, "Serbian Latin (Srpski latinica)", "sr_RS@latin"},
{ 7, "SWEDISH", 0, "Swedish (Svenska)", "sv_SE"},
{30, "TURKISH", 0, "Turkish (Türkçe)", "tr_TR"},
- {18, "UKRAINIAN", 0, "Ukrainian (Український)", "uk_UA"},
{ 0, NULL, 0, NULL, NULL}
};
@@ -3253,6 +3271,7 @@ static void rna_def_userdef_system(BlenderRNA *brna)
RNA_def_property_enum_items(prop, compute_device_type_items);
RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_userdef_compute_device_type_itemf");
RNA_def_property_ui_text(prop, "Compute Device Type", "Device to use for computation (rendering with Cycles)");
+ RNA_def_property_update(prop, NC_SPACE | ND_SPACE_PROPERTIES, NULL);
prop = RNA_def_property(srna, "compute_device", PROP_ENUM, PROP_NONE);
RNA_def_property_flag(prop, PROP_ENUM_NO_CONTEXT);
@@ -3279,6 +3298,12 @@ static void rna_def_userdef_input(BlenderRNA *brna)
{USER_TRACKBALL, "TRACKBALL", 0, "Trackball", "Use trackball style rotation in the viewport"},
{0, NULL, 0, NULL, NULL}
};
+
+ static EnumPropertyItem ndof_view_rotation_items[] = {
+ {NDOF_TURNTABLE, "TURNTABLE", 0, "Turntable", "Use turntable style rotation in the viewport"},
+ {0, "TRACKBALL", 0, "Trackball", "Use trackball style rotation in the viewport"},
+ {0, NULL, 0, NULL, NULL}
+ };
static EnumPropertyItem view_zoom_styles[] = {
{USER_ZOOM_CONT, "CONTINUE", 0, "Continue", "Old style zoom, continues while moving mouse up or down"},
@@ -3348,7 +3373,11 @@ static void rna_def_userdef_input(BlenderRNA *brna)
/* global options */
prop = RNA_def_property(srna, "ndof_sensitivity", PROP_FLOAT, PROP_NONE);
RNA_def_property_range(prop, 0.25f, 4.0f);
- RNA_def_property_ui_text(prop, "Sensitivity", "Overall sensitivity of the 3D Mouse");
+ RNA_def_property_ui_text(prop, "Sensitivity", "Overall sensitivity of the 3D Mouse for panning");
+
+ prop = RNA_def_property(srna, "ndof_orbit_sensitivity", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_range(prop, 0.25f, 4.0f);
+ RNA_def_property_ui_text(prop, "Orbit Sensitivity", "Overall sensitivity of the 3D Mouse for orbiting");
prop = RNA_def_property(srna, "ndof_zoom_updown", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_ZOOM_UPDOWN);
@@ -3365,6 +3394,12 @@ static void rna_def_userdef_input(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Show Navigation Guide", "Display the center and axis during rotation");
/* TODO: update description when fly-mode visuals are in place ("projected position in fly mode")*/
+ /* 3D view */
+ prop = RNA_def_property(srna, "ndof_view_rotate_method", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_bitflag_sdna(prop, NULL, "flag");
+ RNA_def_property_enum_items(prop, ndof_view_rotation_items);
+ RNA_def_property_ui_text(prop, "NDOF View Rotation", "Rotation style in the viewport");
+
/* 3D view: roll */
prop = RNA_def_property(srna, "ndof_roll_invert_axis", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "ndof_flag", NDOF_ROLL_INVERT_AXIS);
@@ -3445,7 +3480,7 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna)
StructRNA *srna;
static EnumPropertyItem anim_player_presets[] = {
- /*{0, "INTERNAL", 0, "Internal", "Built-in animation player"}, *//* doesn't work yet! */
+ {0, "INTERNAL", 0, "Internal", "Built-in animation player"},
{1, "BLENDER24", 0, "Blender 2.4", "Blender command line animation playback - path to Blender 2.4"},
{2, "DJV", 0, "Djv", "Open source frame player: http://djv.sourceforge.net"},
{3, "FRAMECYCLER", 0, "FrameCycler", "Frame player from IRIDAS"},
@@ -3510,6 +3545,12 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna)
"startup, addons & modules (requires restart)");
/* TODO, editing should reset sys.path! */
+ prop = RNA_def_property(srna, "i18n_branches_directory", PROP_STRING, PROP_DIRPATH);
+ RNA_def_property_string_sdna(prop, NULL, "i18ndir");
+ RNA_def_property_ui_text(prop, "Translation Branches Directory",
+ "The path to the '/branches' directory of your local svn-translation copy, "
+ "to allow translating from the UI");
+
prop = RNA_def_property(srna, "sound_directory", PROP_STRING, PROP_DIRPATH);
RNA_def_property_string_sdna(prop, NULL, "sounddir");
RNA_def_property_ui_text(prop, "Sounds Directory", "The default directory to search for sounds");
@@ -3564,7 +3605,7 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna)
"Enables automatic saving of preview images in the .blend file");
}
-void rna_def_userdef_addon_collection(BlenderRNA *brna, PropertyRNA *cprop)
+static void rna_def_userdef_addon_collection(BlenderRNA *brna, PropertyRNA *cprop)
{
StructRNA *srna;
FunctionRNA *func;
diff --git a/source/blender/makesrna/intern/rna_vfont.c b/source/blender/makesrna/intern/rna_vfont.c
index aca25252d2e..ff9469550d9 100644
--- a/source/blender/makesrna/intern/rna_vfont.c
+++ b/source/blender/makesrna/intern/rna_vfont.c
@@ -24,7 +24,6 @@
* \ingroup RNA
*/
-
#include <stdlib.h>
#include "RNA_define.h"
@@ -33,8 +32,37 @@
#include "DNA_vfont_types.h"
+#include "WM_types.h"
+
+
#ifdef RNA_RUNTIME
+#include "BKE_font.h"
+#include "BKE_depsgraph.h"
+#include "DNA_object_types.h"
+
+#include "WM_api.h"
+
+/* matching fnction in rna_ID.c */
+static int rna_VectorFont_filepath_editable(PointerRNA *ptr)
+{
+ VFont *vfont = ptr->id.data;
+ if (BKE_vfont_is_builtin(vfont)) {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static void rna_VectorFont_reload_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
+{
+ VFont *vf = ptr->id.data;
+ BKE_vfont_free_data(vf);
+
+ /* update */
+ WM_main_add_notifier(NC_GEOM | ND_DATA, NULL);
+ DAG_id_tag_update(&vf->id, OB_RECALC_OB | OB_RECALC_DATA);
+}
+
#else
void RNA_def_vfont(BlenderRNA *brna)
@@ -48,9 +76,10 @@ void RNA_def_vfont(BlenderRNA *brna)
RNA_def_struct_ui_icon(srna, ICON_FILE_FONT);
prop = RNA_def_property(srna, "filepath", PROP_STRING, PROP_FILEPATH);
- RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_string_sdna(prop, NULL, "name");
+ RNA_def_property_editable_func(prop, "rna_VectorFont_filepath_editable");
RNA_def_property_ui_text(prop, "File Path", "");
+ RNA_def_property_update(prop, NC_GEOM | ND_DATA, "rna_VectorFont_reload_update");
prop = RNA_def_property(srna, "packed_file", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "packedfile");
@@ -58,4 +87,3 @@ void RNA_def_vfont(BlenderRNA *brna)
}
#endif
-
diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c
index 61c75e306cb..d8753f4ff43 100644
--- a/source/blender/makesrna/intern/rna_wm.c
+++ b/source/blender/makesrna/intern/rna_wm.c
@@ -765,14 +765,14 @@ static void rna_wmKeyMapItem_name_get(PointerRNA *ptr, char *value)
{
wmKeyMapItem *kmi = ptr->data;
wmOperatorType *ot = WM_operatortype_find(kmi->idname, 1);
- strcpy(value, ot ? ot->name : kmi->idname);
+ strcpy(value, ot ? RNA_struct_ui_name(ot->srna) : kmi->idname);
}
static int rna_wmKeyMapItem_name_length(PointerRNA *ptr)
{
wmKeyMapItem *kmi = ptr->data;
wmOperatorType *ot = WM_operatortype_find(kmi->idname, 1);
- return strlen(ot ? ot->name : kmi->idname);
+ return strlen(ot ? RNA_struct_ui_name(ot->srna) : kmi->idname);
}
static int rna_KeyMapItem_userdefined_get(PointerRNA *ptr)
@@ -1136,7 +1136,7 @@ static StructRNA *rna_Operator_register(Main *bmain, ReportList *reports, void *
return dummyot.ext.srna;
}
-void **rna_Operator_instance(PointerRNA *ptr)
+static void **rna_Operator_instance(PointerRNA *ptr)
{
wmOperator *op = ptr->data;
return &op->py_instance;
@@ -1793,7 +1793,7 @@ static void rna_def_keyconfig(BlenderRNA *brna)
* fallback on the operator ID */
prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
- RNA_def_property_ui_text(prop, "Name", "Name of operator to call on input event");
+ RNA_def_property_ui_text(prop, "Name", "Name of operator (translated) to call on input event");
RNA_def_property_string_funcs(prop, "rna_wmKeyMapItem_name_get", "rna_wmKeyMapItem_name_length", NULL);
prop = RNA_def_property(srna, "properties", PROP_POINTER, PROP_NONE);
diff --git a/source/blender/makesrna/intern/rna_wm_api.c b/source/blender/makesrna/intern/rna_wm_api.c
index d910ed7900c..d6979161cdc 100644
--- a/source/blender/makesrna/intern/rna_wm_api.c
+++ b/source/blender/makesrna/intern/rna_wm_api.c
@@ -32,6 +32,8 @@
#include <stdlib.h>
#include <stdio.h>
+#include "BLI_utildefines.h"
+
#include "RNA_define.h"
#include "RNA_enum_types.h"
@@ -39,6 +41,8 @@
#include "DNA_space_types.h"
#include "DNA_windowmanager_types.h"
+#include "rna_internal.h" /* own include */
+
#ifdef RNA_RUNTIME
#include "BKE_context.h"
@@ -72,20 +76,21 @@ static int rna_event_modal_handler_add(struct bContext *C, struct wmOperator *op
}
/* XXX, need a way for python to know event types, 0x0110 is hard coded */
-wmTimer *rna_event_timer_add(struct wmWindowManager *wm, float time_step, wmWindow *win)
+static wmTimer *rna_event_timer_add(struct wmWindowManager *wm, float time_step, wmWindow *win)
{
return WM_event_add_timer(wm, win, 0x0110, time_step);
}
-void rna_event_timer_remove(struct wmWindowManager *wm, wmTimer *timer)
+static void rna_event_timer_remove(struct wmWindowManager *wm, wmTimer *timer)
{
WM_event_remove_timer(wm, timer->win, timer);
}
static wmKeyMapItem *rna_KeyMap_item_new(wmKeyMap *km, ReportList *reports, const char *idname, int type, int value,
- int any, int shift, int ctrl, int alt, int oskey, int keymodifier)
+ int any, int shift, int ctrl, int alt, int oskey, int keymodifier, int head)
{
/* wmWindowManager *wm = CTX_wm_manager(C); */
+ wmKeyMapItem *kmi = NULL;
char idname_bl[OP_MAX_TYPENAME];
int modifier = 0;
@@ -103,8 +108,19 @@ static wmKeyMapItem *rna_KeyMap_item_new(wmKeyMap *km, ReportList *reports, cons
if (oskey) modifier |= KM_OSKEY;
if (any) modifier = KM_ANY;
-
- return WM_keymap_add_item(km, idname_bl, type, value, modifier, keymodifier);
+
+ /* create keymap item */
+ kmi = WM_keymap_add_item(km, idname_bl, type, value, modifier, keymodifier);
+
+ /* [#32437] allow scripts to define hotkeys that get added to start of keymap
+ * so that they stand a chance against catch-all defines later on
+ */
+ if (head) {
+ BLI_remlink(&km->items, kmi);
+ BLI_addhead(&km->items, kmi);
+ }
+
+ return kmi;
}
static wmKeyMapItem *rna_KeyMap_item_new_modal(wmKeyMap *km, ReportList *reports, const char *propvalue_str,
@@ -369,7 +385,7 @@ void RNA_api_macro(StructRNA *srna)
RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
}
-void RNA_api_keyconfig(StructRNA *srna)
+void RNA_api_keyconfig(StructRNA *UNUSED(srna))
{
/* FunctionRNA *func; */
/* PropertyRNA *parm; */
@@ -425,6 +441,9 @@ void RNA_api_keymapitems(StructRNA *srna)
RNA_def_boolean(func, "alt", 0, "Alt", "");
RNA_def_boolean(func, "oskey", 0, "OS Key", "");
RNA_def_enum(func, "key_modifier", event_type_items, 0, "Key Modifier", "");
+ RNA_def_boolean(func, "head", 0, "At Head",
+ "Force item to be added at start (not end) of key map so that "
+ "it doesn't get blocked by an existing key map item");
parm = RNA_def_pointer(func, "item", "KeyMapItem", "Item", "Added key map item");
RNA_def_function_return(func, parm);
diff --git a/source/blender/makesrna/intern/rna_world.c b/source/blender/makesrna/intern/rna_world.c
index cec66831916..a84b1124d44 100644
--- a/source/blender/makesrna/intern/rna_world.c
+++ b/source/blender/makesrna/intern/rna_world.c
@@ -316,7 +316,7 @@ static void rna_def_lighting(BlenderRNA *brna)
prop = RNA_def_property(srna, "passes", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "ao_approx_passes");
RNA_def_property_range(prop, 0, 10);
- RNA_def_property_ui_text(prop, "Passes", "Number of preprocessing passes to reduce overocclusion");
+ RNA_def_property_ui_text(prop, "Passes", "Number of preprocessing passes to reduce over-occlusion");
RNA_def_property_update(prop, 0, "rna_World_update");
prop = RNA_def_property(srna, "distance", PROP_FLOAT, PROP_DISTANCE);
diff --git a/source/blender/makesrna/rna_cleanup/rna_cleaner.py b/source/blender/makesrna/rna_cleanup/rna_cleaner.py
index b75d177d809..e3359fbae59 100755
--- a/source/blender/makesrna/rna_cleanup/rna_cleaner.py
+++ b/source/blender/makesrna/rna_cleanup/rna_cleaner.py
@@ -60,7 +60,7 @@ def check_commandline():
usage()
if sys.argv[1] == '-h':
help()
- elif not (sys.argv[1].endswith(".txt") or sys.argv[1].endswith(".py")):
+ elif not sys.argv[1].endswith((".txt", ".py")):
print ('\nBad input file extension... exiting.')
usage()
else:
diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c
index a4ba9ba35bb..26682e30841 100644
--- a/source/blender/modifiers/intern/MOD_array.c
+++ b/source/blender/modifiers/intern/MOD_array.c
@@ -172,7 +172,7 @@ static int *find_doubles_index_map(BMesh *bm, BMOperator *dupe_op,
BMElem *ele;
int *index_map, i;
- BMO_op_initf(bm, &find_op,
+ BMO_op_initf(bm, &find_op, (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE),
"find_doubles verts=%av dist=%f keep_verts=%s",
amd->merge_dist, dupe_op, "geom");
@@ -189,7 +189,7 @@ static int *find_doubles_index_map(BMesh *bm, BMOperator *dupe_op,
i++;
}
/* above loops over all, so set all to dirty, if this is somehow
- * setting valid values, this line can be remvoed - campbell */
+ * setting valid values, this line can be removed - campbell */
bm->elem_index_dirty |= BM_VERT | BM_EDGE | BM_FACE;
(*index_map_length) = i;
@@ -234,7 +234,7 @@ static void bm_merge_dm_transform(BMesh *bm, DerivedMesh *dm, float mat[4][4],
BMOIter oiter;
BMOperator find_op;
- BMO_op_initf(bm, &find_op,
+ BMO_op_initf(bm, &find_op, (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE),
"find_doubles verts=%Hv dist=%f keep_verts=%s",
BM_ELEM_TAG, amd->merge_dist,
dupe_op, dupe_slot_name);
@@ -286,7 +286,7 @@ static void merge_first_last(BMesh *bm,
BMOIter oiter;
BMVert *v, *v2;
- BMO_op_initf(bm, &find_op,
+ BMO_op_initf(bm, &find_op, (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE),
"find_doubles verts=%s dist=%f keep_verts=%s",
dupe_first, "geom", amd->merge_dist,
dupe_first, "geom");
@@ -410,9 +410,11 @@ static DerivedMesh *arrayModifier_doArray(ArrayModifierData *amd,
bmesh_edit_begin(em->bm, 0);
if (amd->flags & MOD_ARR_MERGE)
- BMO_op_init(em->bm, &weld_op, "weld_verts");
+ BMO_op_init(em->bm, &weld_op, (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE),
+ "weld_verts");
- BMO_op_initf(em->bm, &dupe_op, "duplicate geom=%avef");
+ BMO_op_initf(em->bm, &dupe_op, (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE),
+ "duplicate geom=%avef");
first_dupe_op = dupe_op;
for (j = 0; j < count - 1; j++) {
@@ -421,8 +423,11 @@ static DerivedMesh *arrayModifier_doArray(ArrayModifierData *amd,
BMOpSlot *newout_slot;
BMOIter oiter;
- if (j != 0)
- BMO_op_initf(em->bm, &dupe_op, "duplicate geom=%s", &old_dupe_op, "newout");
+ if (j != 0) {
+ BMO_op_initf(em->bm, &dupe_op,
+ (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE),
+ "duplicate geom=%s", &old_dupe_op, "newout");
+ }
BMO_op_exec(em->bm, &dupe_op);
geom_slot = BMO_slot_get(&dupe_op, "geom");
diff --git a/source/blender/modifiers/intern/MOD_bevel.c b/source/blender/modifiers/intern/MOD_bevel.c
index 6c91cd6e2d1..638e91e22f1 100644
--- a/source/blender/modifiers/intern/MOD_bevel.c
+++ b/source/blender/modifiers/intern/MOD_bevel.c
@@ -88,10 +88,10 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
return dataMask;
}
-#define EDGE_MARK 1
-
#ifdef USE_BM_BEVEL_OP_AS_MOD
+#define EDGE_MARK 1
+
/* BMESH_TODO
*
* this bevel calls the operator which is missing many of the options
@@ -143,7 +143,8 @@ static DerivedMesh *applyModifier(ModifierData *md, struct Object *UNUSED(ob),
}
}
- BMO_op_callf(bm, "bevel geom=%fe percent=%f use_even=%b use_dist=%b",
+ BMO_op_callf(bm, BMO_FLAG_DEFAULTS,
+ "bevel geom=%fe percent=%f use_even=%b use_dist=%b",
EDGE_MARK, bmd->value, (bmd->flags & BME_BEVEL_EVEN) != 0, (bmd->flags & BME_BEVEL_DIST) != 0);
BMO_pop(bm);
diff --git a/source/blender/modifiers/intern/MOD_boolean.c b/source/blender/modifiers/intern/MOD_boolean.c
index 6cd8745f5d9..5c78a8efe23 100644
--- a/source/blender/modifiers/intern/MOD_boolean.c
+++ b/source/blender/modifiers/intern/MOD_boolean.c
@@ -67,9 +67,9 @@ static int isDisabled(ModifierData *md, int UNUSED(useRenderParams))
}
static void foreachObjectLink(
- ModifierData *md, Object *ob,
- void (*walk)(void *userData, Object *ob, Object **obpoin),
- void *userData)
+ ModifierData *md, Object *ob,
+ void (*walk)(void *userData, Object *ob, Object **obpoin),
+ void *userData)
{
BooleanModifierData *bmd = (BooleanModifierData *) md;
@@ -127,7 +127,19 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
if (!bmd->object)
return derivedData;
- dm = bmd->object->derivedFinal;
+
+ /* 2.63 used this... */
+ /* dm = bmd->object->derivedFinal; */
+
+ /* but we want to make sure we can get the object
+ * in some cases the depsgraph fails us - especially for objects
+ * in other scenes when compositing */
+ if (bmd->object != ob) {
+ dm = mesh_get_derived_final(md->scene, bmd->object, CD_MASK_MESH);
+ }
+ else {
+ dm = NULL;
+ }
if (dm) {
DerivedMesh *result;
diff --git a/source/blender/modifiers/intern/MOD_boolean_util.c b/source/blender/modifiers/intern/MOD_boolean_util.c
index 1b4d9444fd9..bded11ddfa7 100644
--- a/source/blender/modifiers/intern/MOD_boolean_util.c
+++ b/source/blender/modifiers/intern/MOD_boolean_util.c
@@ -73,7 +73,7 @@ typedef struct {
static void VertexIt_Destruct(CSG_VertexIteratorDescriptor *iterator)
{
if (iterator->it) {
- // deallocate memory for iterator
+ /* deallocate memory for iterator */
MEM_freeN(iterator->it);
iterator->it = 0;
}
@@ -128,18 +128,18 @@ static void VertexIt_Construct(CSG_VertexIteratorDescriptor *output, DerivedMesh
VertexIt *it;
if (output == 0) return;
- // allocate some memory for blender iterator
+ /* allocate some memory for blender iterator */
it = (VertexIt *)(MEM_mallocN(sizeof(VertexIt), "Boolean_VIt"));
if (it == 0) {
return;
}
- // assign blender specific variables
+ /* assign blender specific variables */
it->dm = dm;
- it->ob = ob; // needed for obmat transformations
-
+ it->ob = ob; /* needed for obmat transformations */
+
it->pos = 0;
- // assign iterator function pointers.
+ /* assign iterator function pointers. */
output->Step = VertexIt_Step;
output->Fill = VertexIt_Fill;
output->Done = VertexIt_Done;
@@ -171,14 +171,14 @@ static void FaceIt_Destruct(CSG_FaceIteratorDescriptor *iterator)
static int FaceIt_Done(CSG_IteratorPtr it)
{
- // assume CSG_IteratorPtr is of the correct type.
+ /* assume CSG_IteratorPtr is of the correct type. */
FaceIt *iterator = (FaceIt *)it;
return(iterator->pos >= iterator->dm->getNumTessFaces(iterator->dm));
}
static void FaceIt_Fill(CSG_IteratorPtr it, CSG_IFace *face)
{
- // assume CSG_IteratorPtr is of the correct type.
+ /* assume CSG_IteratorPtr is of the correct type. */
FaceIt *face_it = (FaceIt *)it;
MFace *mfaces = face_it->dm->getTessFaceArray(face_it->dm);
MFace *mface = &mfaces[face_it->pos];
@@ -222,12 +222,12 @@ static void FaceIt_Construct(
FaceIt *it;
if (output == 0) return;
- // allocate some memory for blender iterator
+ /* allocate some memory for blender iterator */
it = (FaceIt *)(MEM_mallocN(sizeof(FaceIt), "Boolean_FIt"));
if (it == 0) {
return;
}
- // assign blender specific variables
+ /* assign blender specific variables */
it->dm = dm;
it->offset = offset;
it->pos = 0;
@@ -256,7 +256,7 @@ static void FaceIt_Construct(
}
}
- // assign iterator function pointers.
+ /* assign iterator function pointers. */
output->Step = FaceIt_Step;
output->Fill = FaceIt_Fill;
output->Done = FaceIt_Done;
@@ -267,37 +267,37 @@ static void FaceIt_Construct(
static Object *AddNewBlenderMesh(Scene *scene, Base *base)
{
- // This little function adds a new mesh object to the blender object list
- // It uses ob to duplicate data as this seems to be easier than creating
- // a new one. This new oject contains no faces nor vertices.
+ /* This little function adds a new mesh object to the blender object list
+ * It uses ob to duplicate data as this seems to be easier than creating
+ * a new one. This new oject contains no faces nor vertices. */
Mesh *old_me;
Base *basen;
Object *ob_new;
- // now create a new blender object.
- // duplicating all the settings from the previous object
- // to the new one.
+ /* now create a new blender object.
+ * duplicating all the settings from the previous object
+ * to the new one. */
ob_new = BKE_object_copy(base->object);
- // Ok we don't want to use the actual data from the
- // last object, the above function incremented the
- // number of users, so decrement it here.
+ /* Ok we don't want to use the actual data from the
+ * last object, the above function incremented the
+ * number of users, so decrement it here. */
old_me = ob_new->data;
old_me->id.us--;
- // Now create a new base to add into the linked list of
- // vase objects.
-
+ /* Now create a new base to add into the linked list of
+ * vase objects. */
+
basen = MEM_mallocN(sizeof(Base), "duplibase");
*basen = *base;
BLI_addhead(&scene->base, basen); /* addhead: anders oneindige lus */
basen->object = ob_new;
basen->flag &= ~SELECT;
- // Initialize the mesh data associated with this object.
+ /* Initialize the mesh data associated with this object. */
ob_new->data = BKE_mesh_add("Mesh");
- // Finally assign the object type.
+ /* Finally assign the object type. */
ob_new->type = OB_MESH;
return ob_new;
@@ -314,20 +314,20 @@ static void InterpCSGFace(
mface = CDDM_get_tessface(dm, index);
orig_mface = orig_dm->getTessFaceArray(orig_dm) + orig_index;
- // get the vertex coordinates from the original mesh
+ /* get the vertex coordinates from the original mesh */
orig_co[0] = (orig_dm->getVertArray(orig_dm) + orig_mface->v1)->co;
orig_co[1] = (orig_dm->getVertArray(orig_dm) + orig_mface->v2)->co;
orig_co[2] = (orig_dm->getVertArray(orig_dm) + orig_mface->v3)->co;
orig_co[3] = (orig_mface->v4) ? (orig_dm->getVertArray(orig_dm) + orig_mface->v4)->co : NULL;
- // get the vertex coordinates from the new derivedmesh
+ /* get the vertex coordinates from the new derivedmesh */
co[0] = CDDM_get_vert(dm, mface->v1)->co;
co[1] = CDDM_get_vert(dm, mface->v2)->co;
co[2] = CDDM_get_vert(dm, mface->v3)->co;
co[3] = (nr == 4) ? CDDM_get_vert(dm, mface->v4)->co : NULL;
for (j = 0; j < nr; j++) {
- // get coordinate into the space of the original mesh
+ /* get coordinate into the space of the original mesh */
if (mapmat)
mul_v3_m4v3(obco, mapmat, co[j]);
else
@@ -359,28 +359,28 @@ static DerivedMesh *ConvertCSGDescriptorsToDerivedMesh(
Mesh *me2 = (Mesh *)ob2->data;
int i, *origindex_layer;
- // create a new DerivedMesh
+ /* create a new DerivedMesh */
result = CDDM_new(vertex_it->num_elements, 0, face_it->num_elements, 0, 0);
CustomData_merge(&dm1->faceData, &result->faceData, CD_MASK_DERIVEDMESH & ~(CD_MASK_NORMAL | CD_MASK_POLYINDEX | CD_MASK_ORIGINDEX),
CD_DEFAULT, face_it->num_elements);
CustomData_merge(&dm2->faceData, &result->faceData, CD_MASK_DERIVEDMESH & ~(CD_MASK_NORMAL | CD_MASK_POLYINDEX | CD_MASK_ORIGINDEX),
CD_DEFAULT, face_it->num_elements);
- // step through the vertex iterators:
+ /* step through the vertex iterators: */
for (i = 0; !vertex_it->Done(vertex_it->it); i++) {
CSG_IVertex csgvert;
MVert *mvert = CDDM_get_vert(result, i);
- // retrieve a csg vertex from the boolean module
+ /* retrieve a csg vertex from the boolean module */
vertex_it->Fill(vertex_it->it, &csgvert);
vertex_it->Step(vertex_it->it);
- // we have to map the vertex coordinates back in the coordinate frame
- // of the resulting object, since it was computed in world space
+ /* we have to map the vertex coordinates back in the coordinate frame
+ * of the resulting object, since it was computed in world space */
mul_v3_m4v3(mvert->co, parinv, csgvert.position);
}
- // a hash table to remap materials to indices
+ /* a hash table to remap materials to indices */
material_hash = BLI_ghash_ptr_new("CSG_mat gh");
if (mat)
@@ -388,7 +388,7 @@ static DerivedMesh *ConvertCSGDescriptorsToDerivedMesh(
origindex_layer = result->getTessFaceDataArray(result, CD_ORIGINDEX);
- // step through the face iterators
+ /* step through the face iterators */
for (i = 0; !face_it->Done(face_it->it); i++) {
Mesh *orig_me;
Object *orig_ob;
@@ -397,27 +397,27 @@ static DerivedMesh *ConvertCSGDescriptorsToDerivedMesh(
MFace *mface;
int orig_index, mat_nr;
- // retrieve a csg face from the boolean module
+ /* retrieve a csg face from the boolean module */
face_it->Fill(face_it->it, &csgface);
face_it->Step(face_it->it);
- // find the original mesh and data
+ /* find the original mesh and data */
orig_ob = (csgface.orig_face < dm1->getNumTessFaces(dm1)) ? ob1 : ob2;
orig_dm = (csgface.orig_face < dm1->getNumTessFaces(dm1)) ? dm1 : dm2;
orig_me = (orig_ob == ob1) ? me1 : me2;
orig_index = (orig_ob == ob1) ? csgface.orig_face : csgface.orig_face - dm1->getNumTessFaces(dm1);
- // copy all face layers, including mface
+ /* copy all face layers, including mface */
CustomData_copy_data(&orig_dm->faceData, &result->faceData, orig_index, i, 1);
- // set mface
+ /* set mface */
mface = CDDM_get_tessface(result, i);
mface->v1 = csgface.vertex_index[0];
mface->v2 = csgface.vertex_index[1];
mface->v3 = csgface.vertex_index[2];
mface->v4 = (csgface.vertex_number == 4) ? csgface.vertex_index[3] : 0;
- // set material, based on lookup in hash table
+ /* set material, based on lookup in hash table */
orig_mat = give_current_material(orig_ob, mface->mat_nr + 1);
if (mat && orig_mat) {
@@ -431,11 +431,11 @@ static DerivedMesh *ConvertCSGDescriptorsToDerivedMesh(
}
else if (orig_mat) {
if (orig_ob == ob1) {
- // No need to change materian index for faces from left operand
+ /* No need to change materian index for faces from left operand */
}
else {
- // for faces from right operand checn if there's needed material in left operand and if it is,
- // use index of that material, otherwise fallback to first material (material with index=0)
+ /* for faces from right operand checn if there's needed material in left operand and if it is,
+ * use index of that material, otherwise fallback to first material (material with index=0) */
if (!BLI_ghash_haskey(material_hash, orig_mat)) {
int a;
@@ -521,27 +521,27 @@ static DerivedMesh *NewBooleanDerivedMesh_intern(
if (dm == NULL || dm_select == NULL) return 0;
if (!dm->getNumTessFaces(dm) || !dm_select->getNumTessFaces(dm_select)) return 0;
- // we map the final object back into ob's local coordinate space. For this
- // we need to compute the inverse transform from global to ob (inv_mat),
- // and the transform from ob to ob_select for use in interpolation (map_mat)
+ /* we map the final object back into ob's local coordinate space. For this
+ * we need to compute the inverse transform from global to ob (inv_mat),
+ * and the transform from ob to ob_select for use in interpolation (map_mat) */
invert_m4_m4(inv_mat, ob->obmat);
mult_m4_m4m4(map_mat, inv_mat, ob_select->obmat);
invert_m4_m4(inv_mat, ob_select->obmat);
{
- // interface with the boolean module:
- //
- // the idea is, we pass the boolean module verts and faces using the
- // provided descriptors. once the boolean operation is performed, we
- // get back output descriptors, from which we then build a DerivedMesh
+ /* interface with the boolean module:
+ *
+ * the idea is, we pass the boolean module verts and faces using the
+ * provided descriptors. once the boolean operation is performed, we
+ * get back output descriptors, from which we then build a DerivedMesh */
CSG_VertexIteratorDescriptor vd_1, vd_2;
CSG_FaceIteratorDescriptor fd_1, fd_2;
CSG_OperationType op_type;
CSG_BooleanOperation *bool_op;
- // work out the operation they chose and pick the appropriate
- // enum from the csg module.
+ /* work out the operation they chose and pick the appropriate
+ * enum from the csg module. */
switch (int_op_type) {
case 1: op_type = e_csg_intersection; break;
case 2: op_type = e_csg_union; break;
@@ -549,13 +549,13 @@ static DerivedMesh *NewBooleanDerivedMesh_intern(
case 4: op_type = e_csg_classify; break;
default: op_type = e_csg_intersection;
}
-
+
BuildMeshDescriptors(dm_select, ob_select, 0, &fd_1, &vd_1);
BuildMeshDescriptors(dm, ob, dm_select->getNumTessFaces(dm_select), &fd_2, &vd_2);
bool_op = CSG_NewBooleanFunction();
- // perform the operation
+ /* perform the operation */
if (CSG_PerformBooleanOperation(bool_op, op_type, fd_1, vd_1, fd_2, vd_2)) {
CSG_VertexIteratorDescriptor vd_o;
CSG_FaceIteratorDescriptor fd_o;
@@ -563,12 +563,12 @@ static DerivedMesh *NewBooleanDerivedMesh_intern(
CSG_OutputFaceDescriptor(bool_op, &fd_o);
CSG_OutputVertexDescriptor(bool_op, &vd_o);
- // iterate through results of operation and insert
- // into new object
+ /* iterate through results of operation and insert
+ * into new object */
result = ConvertCSGDescriptorsToDerivedMesh(
&fd_o, &vd_o, inv_mat, map_mat, mat, totmat, dm_select, ob_select, dm, ob);
- // free up the memory
+ /* free up the memory */
CSG_FreeVertexDescriptor(&vd_o);
CSG_FreeFaceDescriptor(&fd_o);
}
@@ -632,7 +632,7 @@ int NewBooleanMesh(Scene *scene, Base *base, Base *base_select, int int_op_type)
/* add materials to object */
for (a = 0; a < totmat; a++)
- assign_material(ob_new, mat[a], a + 1);
+ assign_material(ob_new, mat[a], a + 1, BKE_MAT_ASSIGN_USERPREF);
MEM_freeN(mat);
diff --git a/source/blender/modifiers/intern/MOD_cast.c b/source/blender/modifiers/intern/MOD_cast.c
index 5e791a9f748..2530a230e0a 100644
--- a/source/blender/modifiers/intern/MOD_cast.c
+++ b/source/blender/modifiers/intern/MOD_cast.c
@@ -127,8 +127,8 @@ static void updateDepgraph(ModifierData *md, DagForest *forest,
}
static void sphere_do(
- CastModifierData *cmd, Object *ob, DerivedMesh *dm,
- float (*vertexCos)[3], int numVerts)
+ CastModifierData *cmd, Object *ob, DerivedMesh *dm,
+ float (*vertexCos)[3], int numVerts)
{
MDeformVert *dvert = NULL;
@@ -299,8 +299,8 @@ static void sphere_do(
}
static void cuboid_do(
- CastModifierData *cmd, Object *ob, DerivedMesh *dm,
- float (*vertexCos)[3], int numVerts)
+ CastModifierData *cmd, Object *ob, DerivedMesh *dm,
+ float (*vertexCos)[3], int numVerts)
{
MDeformVert *dvert = NULL;
Object *ctrl_ob = NULL;
@@ -381,9 +381,9 @@ static void cuboid_do(
}
/* we want a symmetric bound box around the origin */
- if (fabs(min[0]) > fabs(max[0])) max[0] = fabs(min[0]);
- if (fabs(min[1]) > fabs(max[1])) max[1] = fabs(min[1]);
- if (fabs(min[2]) > fabs(max[2])) max[2] = fabs(min[2]);
+ if (fabsf(min[0]) > fabsf(max[0])) max[0] = fabsf(min[0]);
+ if (fabsf(min[1]) > fabsf(max[1])) max[1] = fabsf(min[1]);
+ if (fabsf(min[2]) > fabsf(max[2])) max[2] = fabsf(min[2]);
min[0] = -max[0];
min[1] = -max[1];
min[2] = -max[2];
@@ -600,8 +600,8 @@ static void deformVerts(ModifierData *md, Object *ob,
}
static void deformVertsEM(
- ModifierData *md, Object *ob, struct BMEditMesh *editData,
- DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, struct BMEditMesh *editData,
+ DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm = get_dm(ob, editData, derivedData, NULL, 0);
CastModifierData *cmd = (CastModifierData *)md;
diff --git a/source/blender/modifiers/intern/MOD_cloth.c b/source/blender/modifiers/intern/MOD_cloth.c
index 2c38bc42a8f..8eb47f4066c 100644
--- a/source/blender/modifiers/intern/MOD_cloth.c
+++ b/source/blender/modifiers/intern/MOD_cloth.c
@@ -155,7 +155,7 @@ static void copyData(ModifierData *md, ModifierData *target)
if (clmd->sim_parms->effector_weights)
tclmd->sim_parms->effector_weights = MEM_dupallocN(clmd->sim_parms->effector_weights);
tclmd->coll_parms = MEM_dupallocN(clmd->coll_parms);
- tclmd->point_cache = BKE_ptcache_copy_list(&tclmd->ptcaches, &clmd->ptcaches);
+ tclmd->point_cache = BKE_ptcache_copy_list(&tclmd->ptcaches, &clmd->ptcaches, FALSE);
tclmd->clothObject = NULL;
}
@@ -169,7 +169,7 @@ static void freeData(ModifierData *md)
ClothModifierData *clmd = (ClothModifierData *) md;
if (clmd) {
- if (G.rt > 0)
+ if (G.debug_value > 0)
printf("clothModifier_freeData\n");
cloth_free_modifier_extern(clmd);
diff --git a/source/blender/modifiers/intern/MOD_collision.c b/source/blender/modifiers/intern/MOD_collision.c
index 609d70b6e98..b9384e6208e 100644
--- a/source/blender/modifiers/intern/MOD_collision.c
+++ b/source/blender/modifiers/intern/MOD_collision.c
@@ -132,7 +132,7 @@ static void deformVerts(ModifierData *md, Object *ob,
current_time = BKE_scene_frame_get(md->scene);
- if (G.rt > 0)
+ if (G.debug_value > 0)
printf("current_time %f, collmd->time_xnew %f\n", current_time, collmd->time_xnew);
numverts = dm->getNumVerts(dm);
@@ -140,15 +140,15 @@ static void deformVerts(ModifierData *md, Object *ob,
if ((current_time > collmd->time_xnew) || (BKE_ptcache_get_continue_physics())) {
unsigned int i;
- // check if mesh has changed
+ /* check if mesh has changed */
if (collmd->x && (numverts != collmd->numverts))
freeData((ModifierData *)collmd);
-
+
if (collmd->time_xnew == -1000) { /* first time */
- collmd->x = dm->dupVertArray(dm); // frame start position
-
+ collmd->x = dm->dupVertArray(dm); /* frame start position */
+
for (i = 0; i < numverts; i++) {
- // we save global positions
+ /* we save global positions */
mul_m4_v3(ob->obmat, collmd->x[i].co);
}
@@ -164,22 +164,22 @@ static void deformVerts(ModifierData *md, Object *ob,
collmd->mfaces = dm->dupTessFaceArray(dm);
collmd->numfaces = dm->getNumTessFaces(dm);
- // create bounding box hierarchy
+ /* create bounding box hierarchy */
collmd->bvhtree = bvhtree_build_from_mvert(collmd->mfaces, collmd->numfaces, collmd->x, numverts, ob->pd->pdef_sboft);
-
+
collmd->time_x = collmd->time_xnew = current_time;
}
else if (numverts == collmd->numverts) {
- // put positions to old positions
+ /* put positions to old positions */
tempVert = collmd->x;
collmd->x = collmd->xnew;
collmd->xnew = tempVert;
collmd->time_x = collmd->time_xnew;
-
+
memcpy(collmd->xnew, dm->getVertArray(dm), numverts * sizeof(MVert));
-
+
for (i = 0; i < numverts; i++) {
- // we save global positions
+ /* we save global positions */
mul_m4_v3(ob->obmat, collmd->xnew[i].co);
}
@@ -200,7 +200,7 @@ static void deformVerts(ModifierData *md, Object *ob,
collmd->bvhtree = bvhtree_build_from_mvert(collmd->mfaces, collmd->numfaces, collmd->current_x, numverts, ob->pd->pdef_sboft);
}
else {
- // recalc static bounding boxes
+ /* recalc static bounding boxes */
bvhtree_update_from_mvert(collmd->bvhtree, collmd->mfaces, collmd->numfaces, collmd->current_x, collmd->current_xnew, collmd->numverts, 1);
}
diff --git a/source/blender/modifiers/intern/MOD_displace.c b/source/blender/modifiers/intern/MOD_displace.c
index 01592d63bb2..988d15e8df4 100644
--- a/source/blender/modifiers/intern/MOD_displace.c
+++ b/source/blender/modifiers/intern/MOD_displace.c
@@ -140,8 +140,7 @@ static void foreachTexLink(ModifierData *md, Object *ob,
static int isDisabled(ModifierData *md, int UNUSED(useRenderParams))
{
DisplaceModifierData *dmd = (DisplaceModifierData *) md;
-
- return (!dmd->texture || dmd->strength == 0.0f);
+ return ((!dmd->texture && dmd->direction == MOD_DISP_DIR_RGB_XYZ) || dmd->strength == 0.0f);
}
static void updateDepgraph(ModifierData *md, DagForest *forest,
@@ -167,8 +166,8 @@ static void updateDepgraph(ModifierData *md, DagForest *forest,
/* dm must be a CDDerivedMesh */
static void displaceModifier_do(
- DisplaceModifierData *dmd, Object *ob,
- DerivedMesh *dm, float (*vertexCos)[3], int numVerts)
+ DisplaceModifierData *dmd, Object *ob,
+ DerivedMesh *dm, float (*vertexCos)[3], int numVerts)
{
int i;
MVert *mvert;
@@ -176,32 +175,43 @@ static void displaceModifier_do(
int defgrp_index;
float (*tex_co)[3];
float weight = 1.0f; /* init value unused but some compilers may complain */
+ const float delta_fixed = 1.0f - dmd->midlevel; /* when no texture is used, we fallback to white */
- if (!dmd->texture) return;
+ if (!dmd->texture && dmd->direction == MOD_DISP_DIR_RGB_XYZ) return;
if (dmd->strength == 0.0f) return;
mvert = CDDM_get_verts(dm);
modifier_get_vgroup(ob, dm, dmd->defgrp_name, &dvert, &defgrp_index);
- tex_co = MEM_callocN(sizeof(*tex_co) * numVerts,
- "displaceModifier_do tex_co");
- get_texture_coords((MappingInfoModifierData *)dmd, ob, dm, vertexCos, tex_co, numVerts);
+ if (dmd->texture) {
+ tex_co = MEM_callocN(sizeof(*tex_co) * numVerts,
+ "displaceModifier_do tex_co");
+ get_texture_coords((MappingInfoModifierData *)dmd, ob, dm, vertexCos, tex_co, numVerts);
- modifier_init_texture(dmd->modifier.scene, dmd->texture);
+ modifier_init_texture(dmd->modifier.scene, dmd->texture);
+ }
+ else {
+ tex_co = NULL;
+ }
for (i = 0; i < numVerts; i++) {
TexResult texres;
- float delta = 0, strength = dmd->strength;
+ float strength = dmd->strength;
+ float delta;
if (dvert) {
weight = defvert_find_weight(dvert + i, defgrp_index);
if (weight == 0.0f) continue;
}
- texres.nor = NULL;
- get_texture_value(dmd->texture, tex_co[i], &texres);
-
- delta = texres.tin - dmd->midlevel;
+ if (dmd->texture) {
+ texres.nor = NULL;
+ get_texture_value(dmd->texture, tex_co[i], &texres);
+ delta = texres.tin - dmd->midlevel;
+ }
+ else {
+ delta = delta_fixed; /* (1.0f - dmd->midlevel) */ /* never changes */
+ }
if (dvert) strength *= weight;
@@ -231,7 +241,9 @@ static void displaceModifier_do(
}
}
- MEM_freeN(tex_co);
+ if (tex_co) {
+ MEM_freeN(tex_co);
+ }
}
static void deformVerts(ModifierData *md, Object *ob,
diff --git a/source/blender/modifiers/intern/MOD_edgesplit.c b/source/blender/modifiers/intern/MOD_edgesplit.c
index 39d78f777a0..b1c3459bf51 100644
--- a/source/blender/modifiers/intern/MOD_edgesplit.c
+++ b/source/blender/modifiers/intern/MOD_edgesplit.c
@@ -79,7 +79,7 @@ static DerivedMesh *doEdgeSplit(DerivedMesh *dm, EdgeSplitModifierData *emd, Obj
if ((l1 = e->l) &&
(l2 = e->l->radial_next) != l1)
{
- if (/* 3+ faces on thsi edge, always split */
+ if (/* 3+ faces on this edge, always split */
UNLIKELY(l1 != l2->radial_next) ||
/* 2 face edge - check angle*/
(dot_v3v3(l1->f->no, l2->f->no) < threshold))
@@ -103,7 +103,8 @@ static DerivedMesh *doEdgeSplit(DerivedMesh *dm, EdgeSplitModifierData *emd, Obj
}
}
- BMO_op_callf(bm, "split_edges edges=%fe", EDGE_MARK);
+ BMO_op_callf(bm, BMO_FLAG_DEFAULTS,
+ "split_edges edges=%fe", EDGE_MARK);
BMO_pop(bm);
diff --git a/source/blender/modifiers/intern/MOD_fluidsim.c b/source/blender/modifiers/intern/MOD_fluidsim.c
index 694f4f174e8..c9121010d5d 100644
--- a/source/blender/modifiers/intern/MOD_fluidsim.c
+++ b/source/blender/modifiers/intern/MOD_fluidsim.c
@@ -98,8 +98,8 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
}
static void updateDepgraph(
- ModifierData *md, DagForest *forest, Scene *scene,
- Object *ob, DagNode *obNode)
+ ModifierData *md, DagForest *forest, Scene *scene,
+ Object *ob, DagNode *obNode)
{
FluidsimModifierData *fluidmd = (FluidsimModifierData *) md;
Base *base;
diff --git a/source/blender/modifiers/intern/MOD_fluidsim_util.c b/source/blender/modifiers/intern/MOD_fluidsim_util.c
index a33d80bcd35..9acac6d00cd 100644
--- a/source/blender/modifiers/intern/MOD_fluidsim_util.c
+++ b/source/blender/modifiers/intern/MOD_fluidsim_util.c
@@ -51,7 +51,6 @@
#include "BKE_fluidsim.h" /* ensure definitions here match */
#include "BKE_cdderivedmesh.h"
#include "BKE_mesh.h"
-#include "BKE_utildefines.h"
#include "BKE_global.h" /* G.main->name only */
#include "MOD_fluidsim_util.h"
@@ -96,20 +95,20 @@ void fluidsim_init(FluidsimModifierData *fluidmd)
fss->animRate = 1.0;
fss->gstar = 0.005; // used as normgstar
fss->maxRefine = -1;
- // maxRefine is set according to resolutionxyz during bake
+ /* maxRefine is set according to resolutionxyz during bake */
- // fluid/inflow settings
- // fss->iniVel --> automatically set to 0
+ /* fluid/inflow settings
+ * fss->iniVel --> automatically set to 0 */
modifier_path_init(fss->surfdataPath, sizeof(fss->surfdataPath), "cache_fluid");
- // first init of bounding box
- // no bounding box needed
-
- // todo - reuse default init from elbeem!
+ /* first init of bounding box */
+ /* no bounding box needed */
+
+ /* todo - reuse default init from elbeem! */
fss->typeFlags = OB_FSBND_PARTSLIP | OB_FSSG_NOOBS;
fss->domainNovecgen = 0;
- fss->volumeInitType = 1; // volume
+ fss->volumeInitType = 1; /* volume */
fss->partSlipValue = 0.2;
fss->generateTracers = 0;
@@ -118,8 +117,8 @@ void fluidsim_init(FluidsimModifierData *fluidmd)
fss->surfaceSubdivs = 0.0;
fss->particleInfSize = 0.0;
fss->particleInfAlpha = 0.0;
-
- // init fluid control settings
+
+ /* init fluid control settings */
fss->attractforceStrength = 0.2;
fss->attractforceRadius = 0.75;
fss->velocityforceStrength = 0.2;
@@ -179,27 +178,27 @@ static DerivedMesh *fluidsim_read_obj(const char *filename, const MPoly *mp_exam
const short mp_mat_nr = mp_example->mat_nr;
const char mp_flag = mp_example->flag;
- // ------------------------------------------------
- // get numverts + numfaces first
- // ------------------------------------------------
+ /* ------------------------------------------------
+ * get numverts + numfaces first
+ * ------------------------------------------------ */
gzf = BLI_gzopen(filename, "rb");
if (!gzf) {
return NULL;
}
- // read numverts
+ /* read numverts */
gotBytes = gzread(gzf, &wri, sizeof(wri));
numverts = wri;
- // skip verts
+ /* skip verts */
gotBytes = gzseek(gzf, numverts * 3 * sizeof(float), SEEK_CUR) != -1;
- // read number of normals
+ /* read number of normals */
if (gotBytes)
gotBytes = gzread(gzf, &wri, sizeof(wri));
- // skip normals
+ /* skip normals */
gotBytes = gzseek(gzf, numverts * 3 * sizeof(float), SEEK_CUR) != -1;
/* get no. of triangles */
@@ -208,7 +207,7 @@ static DerivedMesh *fluidsim_read_obj(const char *filename, const MPoly *mp_exam
numfaces = wri;
gzclose(gzf);
- // ------------------------------------------------
+ /* ------------------------------------------------ */
if (!numfaces || !numverts || !gotBytes)
return NULL;
@@ -225,16 +224,16 @@ static DerivedMesh *fluidsim_read_obj(const char *filename, const MPoly *mp_exam
return NULL;
}
- // read numverts
+ /* read numverts */
gotBytes = gzread(gzf, &wri, sizeof(wri));
- // read vertex position from file
+ /* read vertex position from file */
mv = CDDM_get_verts(dm);
for (i = 0; i < numverts; i++, mv++)
gotBytes = gzread(gzf, mv->co, sizeof(float) * 3);
- // should be the same as numverts
+ /* should be the same as numverts */
gotBytes = gzread(gzf, &wri, sizeof(wri));
if (wri != numverts) {
if (dm)
@@ -251,7 +250,7 @@ static DerivedMesh *fluidsim_read_obj(const char *filename, const MPoly *mp_exam
return NULL;
}
- // read normals from file (but don't save them yet)
+ /* read normals from file (but don't save them yet) */
for (i = numverts, no_s = normals; i > 0; i--, no_s += 3) {
gotBytes = gzread(gzf, no, sizeof(float) * 3);
normal_float_to_short_v3(no_s, no);
@@ -269,7 +268,7 @@ static DerivedMesh *fluidsim_read_obj(const char *filename, const MPoly *mp_exam
return NULL;
}
- // read triangles from file
+ /* read triangles from file */
mp = CDDM_get_polys(dm);
ml = CDDM_get_loops(dm);
for (i = 0; i < numfaces; i++, mp++, ml += 3) {
@@ -333,7 +332,7 @@ void fluid_get_bb(MVert *mvert, int totvert, float obmat[][4],
if (vec[2] > bbez) { bbez = vec[2]; }
}
- // return values...
+ /* return values... */
if (start) {
start[0] = bbsx;
start[1] = bbsy;
@@ -377,7 +376,7 @@ static void fluidsim_read_vel_cache(FluidsimModifierData *fluidmd, DerivedMesh *
int totvert = dm->getNumVerts(dm);
FluidVertexVelocity *velarray = NULL;
- // mesh and vverts have to be valid from loading...
+ /* mesh and vverts have to be valid from loading... */
if (fss->meshVelocities)
MEM_freeN(fss->meshVelocities);
@@ -393,8 +392,8 @@ static void fluidsim_read_vel_cache(FluidsimModifierData *fluidmd, DerivedMesh *
velarray = fss->meshVelocities;
- // .bobj.gz, correct filename
- // 87654321
+ /* .bobj.gz, correct filename
+ * 87654321 */
filename[len - 6] = 'v';
filename[len - 5] = 'e';
filename[len - 4] = 'l';
@@ -461,8 +460,8 @@ static DerivedMesh *fluidsim_read_cache(Object *ob, DerivedMesh *orgdm,
BLI_path_abs(targetFile, modifier_path_relbase(ob));
BLI_path_frame(targetFile, curFrame, 0); // fixed #frame-no
- // assign material + flags to new dm
- // if there's no faces in original dm, keep materials and flags unchanged
+ /* assign material + flags to new dm
+ * if there's no faces in original dm, keep materials and flags unchanged */
mpoly = orgdm->getPolyArray(orgdm);
if (mpoly) {
mp_example = *mpoly;
@@ -472,7 +471,7 @@ static DerivedMesh *fluidsim_read_cache(Object *ob, DerivedMesh *orgdm,
dm = fluidsim_read_obj(targetFile, &mp_example);
if (!dm) {
- // switch, abort background rendering when fluidsim mesh is missing
+ /* switch, abort background rendering when fluidsim mesh is missing */
const char *strEnvName2 = "BLENDER_ELBEEMBOBJABORT"; // from blendercall.cpp
if (G.background == 1) {
@@ -486,13 +485,13 @@ static DerivedMesh *fluidsim_read_cache(Object *ob, DerivedMesh *orgdm,
}
}
- // display org. object upon failure which is in dm
+ /* display org. object upon failure which is in dm */
return NULL;
}
- // load vertex velocities, if they exist...
- // TODO? use generate flag as loading flag as well?
- // warning, needs original .bobj.gz mesh loading filename
+ /* load vertex velocities, if they exist...
+ * TODO? use generate flag as loading flag as well?
+ * warning, needs original .bobj.gz mesh loading filename */
if (displaymode == 3) {
fluidsim_read_vel_cache(fluidmd, dm, targetFile);
}
@@ -519,20 +518,20 @@ DerivedMesh *fluidsimModifier_do(FluidsimModifierData *fluidmd, Scene *scene,
framenr = (int)scene->r.cfra;
- // only handle fluidsim domains
+ /* only handle fluidsim domains */
if (fluidmd && fluidmd->fss && (fluidmd->fss->type != OB_FLUIDSIM_DOMAIN))
return dm;
-
- // sanity check
+
+ /* sanity check */
if (!fluidmd || (fluidmd && !fluidmd->fss))
return dm;
-
+
fss = fluidmd->fss;
-
- // timescale not supported yet
- // clmd->sim_parms->timescale= timescale;
- // support reversing of baked fluid frames here
+ /* timescale not supported yet
+ * clmd->sim_parms->timescale= timescale; */
+
+ /* support reversing of baked fluid frames here */
if ((fss->flag & OB_FLUIDSIM_REVERSE) && (fss->lastgoodframe >= 0)) {
framenr = fss->lastgoodframe - framenr + 1;
CLAMP(framenr, 1, fss->lastgoodframe);
diff --git a/source/blender/modifiers/intern/MOD_lattice.c b/source/blender/modifiers/intern/MOD_lattice.c
index 2c05b164d86..d64ccf750b2 100644
--- a/source/blender/modifiers/intern/MOD_lattice.c
+++ b/source/blender/modifiers/intern/MOD_lattice.c
@@ -82,9 +82,9 @@ static int isDisabled(ModifierData *md, int UNUSED(userRenderParams))
}
static void foreachObjectLink(
- ModifierData *md, Object *ob,
- void (*walk)(void *userData, Object *ob, Object **obpoin),
- void *userData)
+ ModifierData *md, Object *ob,
+ void (*walk)(void *userData, Object *ob, Object **obpoin),
+ void *userData)
{
LatticeModifierData *lmd = (LatticeModifierData *) md;
diff --git a/source/blender/modifiers/intern/MOD_meshdeform.c b/source/blender/modifiers/intern/MOD_meshdeform.c
index 12209fd69fb..f0bdf1bb737 100644
--- a/source/blender/modifiers/intern/MOD_meshdeform.c
+++ b/source/blender/modifiers/intern/MOD_meshdeform.c
@@ -104,9 +104,9 @@ static int isDisabled(ModifierData *md, int UNUSED(useRenderParams))
}
static void foreachObjectLink(
- ModifierData *md, Object *ob,
- void (*walk)(void *userData, Object *ob, Object **obpoin),
- void *userData)
+ ModifierData *md, Object *ob,
+ void (*walk)(void *userData, Object *ob, Object **obpoin),
+ void *userData)
{
MeshDeformModifierData *mmd = (MeshDeformModifierData *) md;
@@ -182,8 +182,8 @@ static float meshdeform_dynamic_bind(MeshDeformModifierData *mmd, float (*dco)[3
}
static void meshdeformModifier_do(
- ModifierData *md, Object *ob, DerivedMesh *dm,
- float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, DerivedMesh *dm,
+ float (*vertexCos)[3], int numVerts)
{
MeshDeformModifierData *mmd = (MeshDeformModifierData *) md;
struct Mesh *me = (mmd->object) ? mmd->object->data : NULL;
@@ -274,7 +274,7 @@ static void meshdeformModifier_do(
/* get cage vertex in world space with binding transform */
copy_v3_v3(co, cagecos[a]);
- if (G.rt != 527) {
+ if (G.debug_value != 527) {
mul_m4_v3(mmd->bindmat, co);
/* compute difference with world space bind coord */
sub_v3_v3v3(dco[a], co, bindcagecos[a]);
@@ -324,7 +324,7 @@ static void meshdeformModifier_do(
if (totweight > 0.0f) {
mul_v3_fl(co, fac / totweight);
mul_m3_v3(icagemat, co);
- if (G.rt != 527)
+ if (G.debug_value != 527)
add_v3_v3(vertexCos[b], co);
else
copy_v3_v3(vertexCos[b], co);
diff --git a/source/blender/modifiers/intern/MOD_mirror.c b/source/blender/modifiers/intern/MOD_mirror.c
index 6f3d47b3426..febc4190fdf 100644
--- a/source/blender/modifiers/intern/MOD_mirror.c
+++ b/source/blender/modifiers/intern/MOD_mirror.c
@@ -43,7 +43,6 @@
#include "BKE_mesh.h"
#include "BKE_modifier.h"
#include "BKE_deform.h"
-#include "BKE_utildefines.h"
#include "BKE_tessmesh.h"
#include "MEM_guardedalloc.h"
diff --git a/source/blender/modifiers/intern/MOD_multires.c b/source/blender/modifiers/intern/MOD_multires.c
index 472836e3716..4292246d8cc 100644
--- a/source/blender/modifiers/intern/MOD_multires.c
+++ b/source/blender/modifiers/intern/MOD_multires.c
@@ -38,6 +38,8 @@
#include "DNA_mesh_types.h"
#include "DNA_object_types.h"
+#include "BLI_utildefines.h"
+
#include "BKE_cdderivedmesh.h"
#include "BKE_mesh.h"
#include "BKE_multires.h"
@@ -78,6 +80,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm,
Mesh *me = (Mesh *)ob->data;
const int useRenderParams = flag & MOD_APPLY_RENDER;
MultiresFlags flags = 0;
+ int has_mask = CustomData_has_layer(&me->ldata, CD_GRID_PAINT_MASK);
if (mmd->totlvl) {
if (!CustomData_get_layer(&me->ldata, CD_MDISPS)) {
@@ -86,7 +89,9 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm,
}
}
- flags = MULTIRES_ALLOC_PAINT_MASK;
+ if (has_mask)
+ flags |= MULTIRES_ALLOC_PAINT_MASK;
+
if (useRenderParams)
flags |= MULTIRES_USE_RENDER_PARAMS;
diff --git a/source/blender/modifiers/intern/MOD_ocean.c b/source/blender/modifiers/intern/MOD_ocean.c
index dfbfbd22475..3bf8b9ffacc 100644
--- a/source/blender/modifiers/intern/MOD_ocean.c
+++ b/source/blender/modifiers/intern/MOD_ocean.c
@@ -37,7 +37,6 @@
#include "BKE_global.h"
#include "BKE_modifier.h"
#include "BKE_ocean.h"
-#include "BKE_utildefines.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
@@ -242,13 +241,13 @@ static void dm_get_bounds(DerivedMesh *dm, float *sx, float *sy, float *ox, floa
copy_v3_v3(max, mvert->co);
for (v = 1; v < totvert; v++, mvert++) {
- min[0] = MIN2(min[0], mvert->co[0]);
- min[1] = MIN2(min[1], mvert->co[1]);
- min[2] = MIN2(min[2], mvert->co[2]);
+ min[0] = minf(min[0], mvert->co[0]);
+ min[1] = minf(min[1], mvert->co[1]);
+ min[2] = minf(min[2], mvert->co[2]);
- max[0] = MAX2(max[0], mvert->co[0]);
- max[1] = MAX2(max[1], mvert->co[1]);
- max[2] = MAX2(max[2], mvert->co[2]);
+ max[0] = maxf(max[0], mvert->co[0]);
+ max[1] = maxf(max[1], mvert->co[1]);
+ max[2] = maxf(max[2], mvert->co[2]);
}
sub_v3_v3v3(delta, max, min);
diff --git a/source/blender/modifiers/intern/MOD_particleinstance.c b/source/blender/modifiers/intern/MOD_particleinstance.c
index 82ab8db9c36..e64e80efde3 100644
--- a/source/blender/modifiers/intern/MOD_particleinstance.c
+++ b/source/blender/modifiers/intern/MOD_particleinstance.c
@@ -105,6 +105,41 @@ static void foreachObjectLink(ModifierData *md, Object *ob,
walk(userData, ob, &pimd->ob);
}
+static int particle_skip(ParticleInstanceModifierData *pimd, ParticleSystem *psys, int p)
+{
+ ParticleData *pa;
+
+ if (pimd->flag & eParticleInstanceFlag_Parents) {
+ if (p >= psys->totpart) {
+ if (psys->part->childtype == PART_CHILD_PARTICLES) {
+ pa = psys->particles + (psys->child + p - psys->totpart)->parent;
+ }
+ else {
+ pa = NULL;
+ }
+ }
+ else {
+ pa = psys->particles + p;
+ }
+ }
+ else {
+ if (psys->part->childtype == PART_CHILD_PARTICLES) {
+ pa = psys->particles + (psys->child + p)->parent;
+ }
+ else {
+ pa = NULL;
+ }
+ }
+
+ if (pa) {
+ if (pa->alive == PARS_UNBORN && (pimd->flag & eParticleInstanceFlag_Unborn) == 0) return 1;
+ if (pa->alive == PARS_ALIVE && (pimd->flag & eParticleInstanceFlag_Alive) == 0) return 1;
+ if (pa->alive == PARS_DEAD && (pimd->flag & eParticleInstanceFlag_Dead) == 0) return 1;
+ }
+
+ return 0;
+}
+
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
DerivedMesh *derivedData,
ModifierApplyFlag UNUSED(flag))
@@ -113,16 +148,17 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md;
ParticleSimulationData sim;
ParticleSystem *psys = NULL;
- ParticleData *pa = NULL, *pars = NULL;
- MFace *mface, *orig_mface;
+ ParticleData *pa = NULL;
+ MPoly *mpoly, *orig_mpoly;
+ MLoop *mloop, *orig_mloop;
MVert *mvert, *orig_mvert;
- int i, totvert, totpart = 0, totface, maxvert, maxface, first_particle = 0;
+ int totvert, totpoly, totloop /* , totedge */;
+ int maxvert, maxpoly, maxloop, totpart = 0, first_particle = 0;
+ int k, p, p_skip;
short track = ob->trackflag % 3, trackneg, axis = pimd->axis;
float max_co = 0.0, min_co = 0.0, temp_co[3], cross[3];
float *size = NULL;
- DM_ensure_tessface(dm); /* BMESH - UNTIL MODIFIER IS UPDATED FOR MPoly */
-
trackneg = ((ob->trackflag > 2) ? 1 : 0);
if (pimd->ob == ob) {
@@ -154,7 +190,6 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
sim.psmd = psys_get_modifier(pimd->ob, psys);
if (pimd->flag & eParticleInstanceFlag_UseSize) {
- int p;
float *si;
si = size = MEM_callocN(totpart * sizeof(float), "particle size array");
@@ -172,18 +207,28 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
}
}
- pars = psys->particles;
-
totvert = dm->getNumVerts(dm);
- totface = dm->getNumTessFaces(dm);
-
- maxvert = totvert * totpart;
- maxface = totface * totpart;
+ totpoly = dm->getNumPolys(dm);
+ totloop = dm->getNumLoops(dm);
+ /* totedge = dm->getNumEdges(dm); */ /* UNUSED */
+
+ /* count particles */
+ maxvert = 0;
+ maxpoly = 0;
+ maxloop = 0;
+
+ for (p = 0; p < totpart; p++) {
+ if (particle_skip(pimd, psys, p))
+ continue;
+
+ maxvert += totvert;
+ maxpoly += totpoly;
+ maxloop += totloop;
+ }
psys->lattice = psys_get_lattice(&sim);
if (psys->flag & (PSYS_HAIR_DONE | PSYS_KEYED) || psys->pointcache->flag & PTCACHE_BAKED) {
-
float min_r[3], max_r[3];
INIT_MINMAX(min_r, max_r);
dm->getMinMax(dm, min_r, max_r);
@@ -191,126 +236,113 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
max_co = max_r[track];
}
- result = CDDM_from_template(dm, maxvert, dm->getNumEdges(dm) * totpart, maxface, 0, 0);
+ result = CDDM_from_template(dm, maxvert, 0, 0, maxloop, maxpoly);
mvert = result->getVertArray(result);
orig_mvert = dm->getVertArray(dm);
- for (i = 0; i < maxvert; i++) {
- MVert *inMV;
- MVert *mv = mvert + i;
- ParticleKey state;
-
- inMV = orig_mvert + i % totvert;
- DM_copy_vert_data(dm, result, i % totvert, i, 1);
- *mv = *inMV;
-
- /*change orientation based on object trackflag*/
- copy_v3_v3(temp_co, mv->co);
- mv->co[axis] = temp_co[track];
- mv->co[(axis + 1) % 3] = temp_co[(track + 1) % 3];
- mv->co[(axis + 2) % 3] = temp_co[(track + 2) % 3];
-
- if ((psys->flag & (PSYS_HAIR_DONE | PSYS_KEYED) || psys->pointcache->flag & PTCACHE_BAKED) &&
- (pimd->flag & eParticleInstanceFlag_Path))
- {
- float ran = 0.0f;
- if (pimd->random_position != 0.0f) {
- BLI_srandom(psys->seed + (i / totvert) % totpart);
- ran = pimd->random_position * BLI_frand();
- }
+ mpoly = result->getPolyArray(result);
+ orig_mpoly = dm->getPolyArray(dm);
+ mloop = result->getLoopArray(result);
+ orig_mloop = dm->getLoopArray(dm);
+
+ for (p = 0, p_skip = 0; p < totpart; p++) {
+ /* skip particle? */
+ if (particle_skip(pimd, psys, p))
+ continue;
+
+ /* set vertices coordinates */
+ for (k = 0; k < totvert; k++) {
+ ParticleKey state;
+ MVert *inMV;
+ MVert *mv = mvert + p_skip * totvert + k;
+
+ inMV = orig_mvert + k;
+ DM_copy_vert_data(dm, result, k, p_skip * totvert + k, 1);
+ *mv = *inMV;
+
+ /*change orientation based on object trackflag*/
+ copy_v3_v3(temp_co, mv->co);
+ mv->co[axis] = temp_co[track];
+ mv->co[(axis + 1) % 3] = temp_co[(track + 1) % 3];
+ mv->co[(axis + 2) % 3] = temp_co[(track + 2) % 3];
+
+ /* get particle state */
+ if ((psys->flag & (PSYS_HAIR_DONE | PSYS_KEYED) || psys->pointcache->flag & PTCACHE_BAKED) &&
+ (pimd->flag & eParticleInstanceFlag_Path))
+ {
+ float ran = 0.0f;
+ if (pimd->random_position != 0.0f) {
+ BLI_srandom(psys->seed + p);
+ ran = pimd->random_position * BLI_frand();
+ }
- if (pimd->flag & eParticleInstanceFlag_KeepShape) {
- state.time = pimd->position * (1.0f - ran);
- }
- else {
- state.time = (mv->co[axis] - min_co) / (max_co - min_co) * pimd->position * (1.0f - ran);
+ if (pimd->flag & eParticleInstanceFlag_KeepShape) {
+ state.time = pimd->position * (1.0f - ran);
+ }
+ else {
+ state.time = (mv->co[axis] - min_co) / (max_co - min_co) * pimd->position * (1.0f - ran);
- if (trackneg)
- state.time = 1.0f - state.time;
+ if (trackneg)
+ state.time = 1.0f - state.time;
- mv->co[axis] = 0.0;
- }
+ mv->co[axis] = 0.0;
+ }
- psys_get_particle_on_path(&sim, first_particle + i / totvert, &state, 1);
+ psys_get_particle_on_path(&sim, first_particle + p, &state, 1);
- normalize_v3(state.vel);
+ normalize_v3(state.vel);
- /* TODO: incremental rotations somehow */
- if (state.vel[axis] < -0.9999f || state.vel[axis] > 0.9999f) {
- state.rot[0] = 1;
- state.rot[1] = state.rot[2] = state.rot[3] = 0.0f;
- }
- else {
- float temp[3] = {0.0f, 0.0f, 0.0f};
- temp[axis] = 1.0f;
+ /* TODO: incremental rotations somehow */
+ if (state.vel[axis] < -0.9999f || state.vel[axis] > 0.9999f) {
+ unit_qt(state.rot);
+ }
+ else {
+ float temp[3] = {0.0f, 0.0f, 0.0f};
+ temp[axis] = 1.0f;
- cross_v3_v3v3(cross, temp, state.vel);
+ cross_v3_v3v3(cross, temp, state.vel);
- /* state.vel[axis] is the only component surviving from a dot product with the axis */
- axis_angle_to_quat(state.rot, cross, saacos(state.vel[axis]));
+ /* state.vel[axis] is the only component surviving from a dot product with the axis */
+ axis_angle_to_quat(state.rot, cross, saacos(state.vel[axis]));
+ }
+ }
+ else {
+ state.time = -1.0;
+ psys_get_particle_state(&sim, first_particle + p, &state, 1);
}
- }
- else {
- state.time = -1.0;
- psys_get_particle_state(&sim, first_particle + i / totvert, &state, 1);
+ mul_qt_v3(state.rot, mv->co);
+ if (pimd->flag & eParticleInstanceFlag_UseSize)
+ mul_v3_fl(mv->co, size[p]);
+ add_v3_v3(mv->co, state.co);
}
- mul_qt_v3(state.rot, mv->co);
- if (pimd->flag & eParticleInstanceFlag_UseSize)
- mul_v3_fl(mv->co, size[i / totvert]);
- add_v3_v3(mv->co, state.co);
- }
+ /* create polys and loops */
+ for (k = 0; k < totpoly; k++) {
+ MPoly *inMP = orig_mpoly + k;
+ MPoly *mp = mpoly + p_skip * totpoly + k;
- mface = result->getTessFaceArray(result);
- orig_mface = dm->getTessFaceArray(dm);
+ DM_copy_poly_data(dm, result, k, p_skip * totpoly + k, 1);
+ *mp = *inMP;
+ mp->loopstart += p_skip * totloop;
- for (i = 0; i < maxface; i++) {
- MFace *inMF;
- MFace *mf = mface + i;
+ {
+ MLoop *inML = orig_mloop + inMP->loopstart;
+ MLoop *ml = mloop + mp->loopstart;
+ int j = mp->totloop;
- if (pimd->flag & eParticleInstanceFlag_Parents) {
- if (i / totface >= psys->totpart) {
- if (psys->part->childtype == PART_CHILD_PARTICLES) {
- pa = psys->particles + (psys->child + i / totface - psys->totpart)->parent;
+ DM_copy_loop_data(dm, result, inMP->loopstart, mp->loopstart, j);
+ for (; j; j--, ml++, inML++) {
+ ml->v = inML->v + (p_skip * totvert);
}
- else {
- pa = NULL;
- }
- }
- else {
- pa = pars + i / totface;
- }
- }
- else {
- if (psys->part->childtype == PART_CHILD_PARTICLES) {
- pa = psys->particles + (psys->child + i / totface)->parent;
- }
- else {
- pa = NULL;
}
}
- if (pa) {
- if (pa->alive == PARS_UNBORN && (pimd->flag & eParticleInstanceFlag_Unborn) == 0) continue;
- if (pa->alive == PARS_ALIVE && (pimd->flag & eParticleInstanceFlag_Alive) == 0) continue;
- if (pa->alive == PARS_DEAD && (pimd->flag & eParticleInstanceFlag_Dead) == 0) continue;
- }
-
- inMF = orig_mface + i % totface;
- DM_copy_poly_data(dm, result, i % totface, i, 1);
- *mf = *inMF;
-
- mf->v1 += (i / totface) * totvert;
- mf->v2 += (i / totface) * totvert;
- mf->v3 += (i / totface) * totvert;
- if (mf->v4) {
- mf->v4 += (i / totface) * totvert;
- }
+ p_skip++;
}
- CDDM_calc_edges_tessface(result);
+ CDDM_calc_edges(result);
if (psys->lattice) {
end_latt_deform(psys->lattice);
@@ -320,7 +352,6 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
if (size)
MEM_freeN(size);
- CDDM_tessfaces_to_faces(result); /*builds ngon faces from tess (mface) faces*/
CDDM_calc_normals(result);
return result;
diff --git a/source/blender/modifiers/intern/MOD_particlesystem.c b/source/blender/modifiers/intern/MOD_particlesystem.c
index 0cf36677807..254c02b7672 100644
--- a/source/blender/modifiers/intern/MOD_particlesystem.c
+++ b/source/blender/modifiers/intern/MOD_particlesystem.c
@@ -176,6 +176,7 @@ static void deformVerts(ModifierData *md, Object *ob,
psmd->dm->needsFree = 0;
/* report change in mesh structure */
+ DM_ensure_tessface(psmd->dm);
if (psmd->dm->getNumVerts(psmd->dm) != psmd->totdmvert ||
psmd->dm->getNumEdges(psmd->dm) != psmd->totdmedge ||
psmd->dm->getNumTessFaces(psmd->dm) != psmd->totdmface)
@@ -187,19 +188,17 @@ static void deformVerts(ModifierData *md, Object *ob,
psmd->totdmface = psmd->dm->getNumTessFaces(psmd->dm);
}
- if (psys) {
- psmd->flag &= ~eParticleSystemFlag_psys_updated;
- particle_system_update(md->scene, ob, psys);
- psmd->flag |= eParticleSystemFlag_psys_updated;
- }
+ psmd->flag &= ~eParticleSystemFlag_psys_updated;
+ particle_system_update(md->scene, ob, psys);
+ psmd->flag |= eParticleSystemFlag_psys_updated;
}
/* disabled particles in editmode for now, until support for proper derivedmesh
* updates is coded */
#if 0
static void deformVertsEM(
- ModifierData *md, Object *ob, EditMesh *editData,
- DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+ ModifierData *md, Object *ob, EditMesh *editData,
+ DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
DerivedMesh *dm = derivedData;
diff --git a/source/blender/modifiers/intern/MOD_screw.c b/source/blender/modifiers/intern/MOD_screw.c
index aed8a70a805..a94b4834d18 100644
--- a/source/blender/modifiers/intern/MOD_screw.c
+++ b/source/blender/modifiers/intern/MOD_screw.c
@@ -393,7 +393,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
mul_m4_v3(mtx_tx, vc->co);
/* length in 2d, don't sqrt because this is only for comparison */
- vc->dist = vc->co[other_axis_1] * vc->co[other_axis_1] +
+ vc->dist = vc->co[other_axis_1] * vc->co[other_axis_1] +
vc->co[other_axis_2] * vc->co[other_axis_2];
/* printf("location %f %f %f -- %f\n", vc->co[0], vc->co[1], vc->co[2], vc->dist);*/
@@ -410,7 +410,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
vc->v[0] = vc->v[1] = -1;
/* length in 2d, don't sqrt because this is only for comparison */
- vc->dist = vc->co[other_axis_1] * vc->co[other_axis_1] +
+ vc->dist = vc->co[other_axis_1] * vc->co[other_axis_1] +
vc->co[other_axis_2] * vc->co[other_axis_2];
/* printf("location %f %f %f -- %f\n", vc->co[0], vc->co[1], vc->co[2], vc->dist);*/
@@ -430,7 +430,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
vc->e[1] = med_new;
}
else {
- vc->v[0] = vc->v[1] = -2; /* erro value - don't use, 3 edges on vert */
+ vc->v[0] = vc->v[1] = -2; /* error value - don't use, 3 edges on vert */
}
vc = &vert_connect[med_new->v2];
@@ -445,7 +445,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
vc->e[1] = med_new;
}
else {
- vc->v[0] = vc->v[1] = -2; /* erro value - don't use, 3 edges on vert */
+ vc->v[0] = vc->v[1] = -2; /* error value - don't use, 3 edges on vert */
}
}
@@ -857,7 +857,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
mp_new->loopstart = mpoly_index * 4;
mp_new->totloop = 4;
- mp_new->flag = ME_SMOOTH;
+ mp_new->flag = mpoly_flag;
origindex[mpoly_index] = ORIGINDEX_NONE;
mp_new++;
ml_new += 4;
diff --git a/source/blender/modifiers/intern/MOD_shapekey.c b/source/blender/modifiers/intern/MOD_shapekey.c
index 3353382fa3d..8ef86362edd 100644
--- a/source/blender/modifiers/intern/MOD_shapekey.c
+++ b/source/blender/modifiers/intern/MOD_shapekey.c
@@ -54,7 +54,7 @@ static void deformVerts(ModifierData *md, Object *ob,
int numVerts,
ModifierApplyFlag UNUSED(flag))
{
- KeyBlock *kb = ob_get_keyblock(ob);
+ KeyBlock *kb = BKE_keyblock_from_object(ob);
float (*deformedVerts)[3];
if (kb && kb->totelem == numVerts) {
@@ -69,8 +69,8 @@ static void deformVerts(ModifierData *md, Object *ob,
static void deformMatrices(ModifierData *md, Object *ob, DerivedMesh *derivedData,
float (*vertexCos)[3], float (*defMats)[3][3], int numVerts)
{
- Key *key = ob_get_key(ob);
- KeyBlock *kb = ob_get_keyblock(ob);
+ Key *key = BKE_key_from_object(ob);
+ KeyBlock *kb = BKE_keyblock_from_object(ob);
float scale[3][3];
(void)vertexCos; /* unused */
@@ -94,7 +94,7 @@ static void deformVertsEM(ModifierData *md, Object *ob,
float (*vertexCos)[3],
int numVerts)
{
- Key *key = ob_get_key(ob);
+ Key *key = BKE_key_from_object(ob);
if (key && key->type == KEY_RELATIVE)
deformVerts(md, ob, derivedData, vertexCos, numVerts, 0);
@@ -107,8 +107,8 @@ static void deformMatricesEM(ModifierData *UNUSED(md), Object *ob,
float (*defMats)[3][3],
int numVerts)
{
- Key *key = ob_get_key(ob);
- KeyBlock *kb = ob_get_keyblock(ob);
+ Key *key = BKE_key_from_object(ob);
+ KeyBlock *kb = BKE_keyblock_from_object(ob);
float scale[3][3];
(void)vertexCos; /* unused */
diff --git a/source/blender/modifiers/intern/MOD_simpledeform.c b/source/blender/modifiers/intern/MOD_simpledeform.c
index 14735810cad..44ebc76e4a1 100644
--- a/source/blender/modifiers/intern/MOD_simpledeform.c
+++ b/source/blender/modifiers/intern/MOD_simpledeform.c
@@ -72,7 +72,7 @@ static void simpleDeform_taper(const float factor, const float dcut[3], float r_
r_co[1] = y + y * scale;
r_co[2] = z;
- if (dcut) {
+ {
r_co[0] += dcut[0];
r_co[1] += dcut[1];
r_co[2] += dcut[2];
@@ -90,7 +90,7 @@ static void simpleDeform_stretch(const float factor, const float dcut[3], float
r_co[1] = y * scale;
r_co[2] = z * (1.0f + factor);
- if (dcut) {
+ {
r_co[0] += dcut[0];
r_co[1] += dcut[1];
r_co[2] += dcut[2];
@@ -110,7 +110,7 @@ static void simpleDeform_twist(const float factor, const float *dcut, float r_co
r_co[1] = x * sint + y * cost;
r_co[2] = z;
- if (dcut) {
+ {
r_co[0] += dcut[0];
r_co[1] += dcut[1];
r_co[2] += dcut[2];
@@ -132,7 +132,7 @@ static void simpleDeform_bend(const float factor, const float dcut[3], float r_c
r_co[2] = z;
}
- if (dcut) {
+ {
r_co[0] += cost * dcut[0];
r_co[1] += sint * dcut[0];
r_co[2] += dcut[2];
@@ -161,9 +161,9 @@ static void SimpleDeformModifier_do(SimpleDeformModifierData *smd, struct Object
if (smd->limit[0] < 0.0f) smd->limit[0] = 0.0f;
if (smd->limit[0] > 1.0f) smd->limit[0] = 1.0f;
- smd->limit[0] = MIN2(smd->limit[0], smd->limit[1]); /* Upper limit >= than lower limit */
+ smd->limit[0] = minf(smd->limit[0], smd->limit[1]); /* Upper limit >= than lower limit */
- //Calculate matrixs do convert between coordinate spaces
+ /* Calculate matrixs do convert between coordinate spaces */
if (smd->origin) {
transf = &tmp_transf;
@@ -176,10 +176,11 @@ static void SimpleDeformModifier_do(SimpleDeformModifierData *smd, struct Object
}
}
- //Setup vars
- limit_axis = (smd->mode == MOD_SIMPLEDEFORM_MODE_BEND) ? 0 : 2; //Bend limits on X.. all other modes limit on Z
+ /* Setup vars,
+ * Bend limits on X.. all other modes limit on Z */
+ limit_axis = (smd->mode == MOD_SIMPLEDEFORM_MODE_BEND) ? 0 : 2;
- //Update limits if needed
+ /* Update limits if needed */
{
float lower = FLT_MAX;
float upper = -FLT_MAX;
@@ -190,8 +191,8 @@ static void SimpleDeformModifier_do(SimpleDeformModifierData *smd, struct Object
if (transf) space_transform_apply(transf, tmp);
- lower = MIN2(lower, tmp[limit_axis]);
- upper = MAX2(upper, tmp[limit_axis]);
+ lower = minf(lower, tmp[limit_axis]);
+ upper = maxf(upper, tmp[limit_axis]);
}
@@ -199,7 +200,7 @@ static void SimpleDeformModifier_do(SimpleDeformModifierData *smd, struct Object
smd_limit[1] = lower + (upper - lower) * smd->limit[1];
smd_limit[0] = lower + (upper - lower) * smd->limit[0];
- smd_factor = smd->factor / MAX2(FLT_EPSILON, smd_limit[1] - smd_limit[0]);
+ smd_factor = smd->factor / maxf(FLT_EPSILON, smd_limit[1] - smd_limit[0]);
}
modifier_get_vgroup(ob, dm, smd->vgroup_name, &dvert, &vgroup);
@@ -235,7 +236,9 @@ static void SimpleDeformModifier_do(SimpleDeformModifierData *smd, struct Object
simpleDeform_callback(smd_factor, dcut, co); /* apply deform */
interp_v3_v3v3(vertexCos[i], vertexCos[i], co, weight); /* Use vertex weight has coef of linear interpolation */
- if (transf) space_transform_invert(transf, vertexCos[i]);
+ if (transf) {
+ space_transform_invert(transf, vertexCos[i]);
+ }
}
}
}
@@ -249,6 +252,7 @@ static void initData(ModifierData *md)
SimpleDeformModifierData *smd = (SimpleDeformModifierData *) md;
smd->mode = MOD_SIMPLEDEFORM_MODE_TWIST;
+ smd->originOpts = MOD_SIMPLEDEFORM_ORIGIN_LOCAL;
smd->axis = 0;
smd->origin = NULL;
diff --git a/source/blender/modifiers/intern/MOD_skin.c b/source/blender/modifiers/intern/MOD_skin.c
index 46987f30205..222f13185ea 100644
--- a/source/blender/modifiers/intern/MOD_skin.c
+++ b/source/blender/modifiers/intern/MOD_skin.c
@@ -69,6 +69,7 @@
#include "BLI_heap.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
+#include "BLI_stack.h"
#include "BLI_string.h"
#include "BKE_cdderivedmesh.h"
@@ -91,6 +92,7 @@ typedef enum {
CAP_START = 1,
CAP_END = 2,
SEAM_FRAME = 4,
+ ROOT = 8
} SkinNodeFlag;
typedef struct Frame {
@@ -235,7 +237,8 @@ static int build_hull(SkinOutput *so, Frame **frames, int totframe)
* selected after the operator is run */
BM_mesh_elem_hflag_disable_all(bm, BM_ALL, BM_ELEM_SELECT, 0);
- BMO_op_initf(bm, &op, "convex_hull input=%hv", BM_ELEM_TAG);
+ BMO_op_initf(bm, &op, (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE),
+ "convex_hull input=%hv", BM_ELEM_TAG);
BMO_op_exec(bm, &op);
if (BMO_error_occurred(bm)) {
@@ -318,7 +321,9 @@ static int build_hull(SkinOutput *so, Frame **frames, int totframe)
BMO_op_finish(bm, &op);
- BMO_op_callf(bm, "delete geom=%hef context=%i", BM_ELEM_TAG, DEL_ONLYTAGGED);
+ BMO_op_callf(bm, BMO_FLAG_DEFAULTS,
+ "delete geom=%hef context=%i",
+ BM_ELEM_TAG, DEL_ONLYTAGGED);
return TRUE;
}
@@ -350,7 +355,7 @@ static void merge_frame_corners(Frame **frames, int totframe)
BLI_assert(frames[i] != frames[k]);
side_b = frame_len(frames[k]);
- thresh = MIN2(side_a, side_b) / 2.0f;
+ thresh = minf(side_a, side_b) / 2.0f;
/* Compare with each corner of all other frames... */
for (l = 0; l < 4; l++) {
@@ -502,6 +507,9 @@ static void end_node_frames(int v, SkinNode *skin_nodes, const MVert *mvert,
/* End frame */
create_frame(&skin_nodes[v].frames[0], mvert[v].co, rad, mat, 0);
}
+
+ if (nodes[v].flag & MVERT_SKIN_ROOT)
+ skin_nodes[v].flag |= ROOT;
}
/* Returns 1 for seam, 0 otherwise */
@@ -627,71 +635,107 @@ static void calc_edge_mat(float mat[3][3], const float a[3], const float b[3])
}
}
-static void build_emats_rec(int *visited_e, EMat *emat,
- const MeshElemMap *emap, const MEdge *medge,
- const MVertSkin *vs, const MVert *mvert,
- int parent_v, float parent_mat[3][3])
+typedef struct {
+ float mat[3][3];
+ int parent_v;
+ int e;
+} EdgeStackElem;
+
+static void build_emats_stack(BLI_Stack *stack, int *visited_e, EMat *emat,
+ const MeshElemMap *emap, const MEdge *medge,
+ const MVertSkin *vs, const MVert *mvert)
{
+ EdgeStackElem stack_elem;
float axis[3], angle;
- int i, e, v, parent_is_branch;
+ int i, e, v, parent_v, parent_is_branch;
- parent_is_branch = ((emap[parent_v].count > 2) ||
- (vs[parent_v].flag & MVERT_SKIN_ROOT));
+ BLI_stack_pop(stack, &stack_elem);
+ parent_v = stack_elem.parent_v;
+ e = stack_elem.e;
- for (i = 0; i < emap[parent_v].count; i++) {
- e = emap[parent_v].indices[i];
+ /* Skip if edge already visited */
+ if (visited_e[e])
+ return;
- /* Ignore edge if already visited */
- if (visited_e[e]) continue;
- visited_e[e] = 1;
+ /* Mark edge as visited */
+ visited_e[e] = TRUE;
+
+ /* Process edge */
- v = BKE_mesh_edge_other_vert(&medge[e], parent_v);
- emat[e].origin = parent_v;
+ parent_is_branch = ((emap[parent_v].count > 2) ||
+ (vs[parent_v].flag & MVERT_SKIN_ROOT));
- /* If parent is a branch node, start a new edge chain */
- if (parent_is_branch) {
- calc_edge_mat(emat[e].mat, mvert[parent_v].co,
- mvert[v].co);
- }
- else {
- /* Build edge matrix guided by parent matrix */
- sub_v3_v3v3(emat[e].mat[0], mvert[v].co, mvert[parent_v].co);
- normalize_v3(emat[e].mat[0]);
- angle = angle_normalized_v3v3(parent_mat[0], emat[e].mat[0]);
- cross_v3_v3v3(axis, parent_mat[0], emat[e].mat[0]);
- normalize_v3(axis);
- rotate_normalized_v3_v3v3fl(emat[e].mat[1], parent_mat[1], axis, angle);
- rotate_normalized_v3_v3v3fl(emat[e].mat[2], parent_mat[2], axis, angle);
- }
+ v = BKE_mesh_edge_other_vert(&medge[e], parent_v);
+ emat[e].origin = parent_v;
+
+ /* If parent is a branch node, start a new edge chain */
+ if (parent_is_branch) {
+ calc_edge_mat(emat[e].mat, mvert[parent_v].co,
+ mvert[v].co);
+ }
+ else {
+ /* Build edge matrix guided by parent matrix */
+ sub_v3_v3v3(emat[e].mat[0], mvert[v].co, mvert[parent_v].co);
+ normalize_v3(emat[e].mat[0]);
+ angle = angle_normalized_v3v3(stack_elem.mat[0], emat[e].mat[0]);
+ cross_v3_v3v3(axis, stack_elem.mat[0], emat[e].mat[0]);
+ normalize_v3(axis);
+ rotate_normalized_v3_v3v3fl(emat[e].mat[1], stack_elem.mat[1], axis, angle);
+ rotate_normalized_v3_v3v3fl(emat[e].mat[2], stack_elem.mat[2], axis, angle);
+ }
- build_emats_rec(visited_e, emat, emap, medge,
- vs, mvert, v, emat[e].mat);
+ /* Add neighbors to stack */
+ for (i = 0; i < emap[v].count; i++) {
+ /* Add neighbors to stack */
+ memcpy(stack_elem.mat, emat[e].mat, sizeof(float) * 3 * 3);
+ stack_elem.e = emap[v].indices[i];
+ stack_elem.parent_v = v;
+ BLI_stack_push(stack, &stack_elem);
}
}
-static EMat *build_edge_mats(MVertSkin *vs, MVert *mvert, int totvert,
- MEdge *medge, MeshElemMap *emap, int totedge)
+static EMat *build_edge_mats(const MVertSkin *vs,
+ const MVert *mvert,
+ int totvert,
+ const MEdge *medge,
+ const MeshElemMap *emap,
+ int totedge)
{
+ BLI_Stack *stack;
EMat *emat;
- float mat[3][3];
- int *visited_e, v;
+ EdgeStackElem stack_elem;
+ int *visited_e, i, v;
+
+ stack = BLI_stack_new(sizeof(stack_elem), "build_edge_mats.stack");
visited_e = MEM_callocN(sizeof(int) * totedge, "build_edge_mats.visited_e");
emat = MEM_callocN(sizeof(EMat) * totedge, "build_edge_mats.emat");
- /* Build edge matrices recursively from the root nodes */
+ /* Edge matrices are built from the root nodes, add all roots with
+ * children to the stack */
for (v = 0; v < totvert; v++) {
if (vs[v].flag & MVERT_SKIN_ROOT) {
if (emap[v].count >= 1) {
const MEdge *e = &medge[emap[v].indices[0]];
- calc_edge_mat(mat, mvert[v].co,
+ calc_edge_mat(stack_elem.mat, mvert[v].co,
mvert[BKE_mesh_edge_other_vert(e, v)].co);
- build_emats_rec(visited_e, emat, emap, medge, vs, mvert, v, mat);
+ stack_elem.parent_v = v;
+
+ /* Add adjacent edges to stack */
+ for (i = 0; i < emap[v].count; i++) {
+ stack_elem.e = emap[v].indices[i];
+ BLI_stack_push(stack, &stack_elem);
+ }
}
}
}
+ while (!BLI_stack_empty(stack)) {
+ build_emats_stack(stack, visited_e, emat, emap, medge, vs, mvert);
+ }
+
MEM_freeN(visited_e);
+ BLI_stack_free(stack);
return emat;
}
@@ -1035,7 +1079,7 @@ static BMFace *collapse_face_corners(BMesh *bm, BMFace *f, int n,
int i;
shortest_edge = BM_face_find_shortest_loop(f)->e;
- BMO_op_initf(bm, &op, "weld_verts");
+ BMO_op_initf(bm, &op, (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE), "weld_verts");
/* Note: could probably calculate merges in one go to be
* faster */
@@ -1175,7 +1219,8 @@ static void skin_fix_hole_no_good_verts(BMesh *bm, Frame *frame, BMFace *split_f
/* Extrude the split face */
BM_mesh_elem_hflag_disable_all(bm, BM_FACE, BM_ELEM_TAG, FALSE);
BM_elem_flag_enable(split_face, BM_ELEM_TAG);
- BMO_op_initf(bm, &op, "extrude_discrete_faces faces=%hf", BM_ELEM_TAG);
+ BMO_op_initf(bm, &op, (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE),
+ "extrude_discrete_faces faces=%hf", BM_ELEM_TAG);
BMO_op_exec(bm, &op);
/* Update split face (should only be one new face created
@@ -1198,7 +1243,8 @@ static void skin_fix_hole_no_good_verts(BMesh *bm, Frame *frame, BMFace *split_f
BM_mesh_elem_hflag_disable_all(bm, BM_EDGE, BM_ELEM_TAG, FALSE);
BM_elem_flag_enable(longest_edge, BM_ELEM_TAG);
- BMO_op_callf(bm, "subdivide_edges edges=%he numcuts=%i quadcornertype=%i",
+ BMO_op_callf(bm, BMO_FLAG_DEFAULTS,
+ "subdivide_edges edges=%he numcuts=%i quadcornertype=%i",
BM_ELEM_TAG, 1, SUBD_STRAIGHT_CUT);
}
else if (split_face->len > 4) {
@@ -1230,7 +1276,8 @@ static void skin_fix_hole_no_good_verts(BMesh *bm, Frame *frame, BMFace *split_f
/* Delete split face and merge */
BM_face_kill(bm, split_face);
- BMO_op_init(bm, &op, "weld_verts");
+ BMO_op_init(bm, &op, (BMO_FLAG_DEFAULTS & ~BMO_FLAG_RESPECT_HIDE),
+ "weld_verts");
for (i = 0; i < 4; i++) {
BMO_slot_map_ptr_insert(bm, &op, "targetmap",
verts[i], frame->verts[best_order[i]]);
@@ -1395,7 +1442,9 @@ static void hull_merge_triangles(SkinOutput *so, const SkinModifierData *smd)
}
}
- BMO_op_callf(so->bm, "delete geom=%hef context=%i", BM_ELEM_TAG, DEL_ONLYTAGGED);
+ BMO_op_callf(so->bm, BMO_FLAG_DEFAULTS,
+ "delete geom=%hef context=%i",
+ BM_ELEM_TAG, DEL_ONLYTAGGED);
BLI_heap_free(heap, NULL);
}
@@ -1493,18 +1542,27 @@ static void skin_output_end_nodes(SkinOutput *so, SkinNode *skin_nodes,
}
if (sn->flag & CAP_START) {
- add_poly(so,
- sn->frames[0].verts[3],
- sn->frames[0].verts[2],
- sn->frames[0].verts[1],
- sn->frames[0].verts[0]);
+ if (sn->flag & ROOT) {
+ add_poly(so,
+ sn->frames[0].verts[0],
+ sn->frames[0].verts[1],
+ sn->frames[0].verts[2],
+ sn->frames[0].verts[3]);
+ }
+ else {
+ add_poly(so,
+ sn->frames[0].verts[3],
+ sn->frames[0].verts[2],
+ sn->frames[0].verts[1],
+ sn->frames[0].verts[0]);
+ }
}
if (sn->flag & CAP_END) {
add_poly(so,
- sn->frames[1].verts[3],
- sn->frames[1].verts[2],
+ sn->frames[1].verts[0],
sn->frames[1].verts[1],
- sn->frames[1].verts[0]);
+ sn->frames[1].verts[2],
+ sn->frames[1].verts[3]);
}
}
}
diff --git a/source/blender/modifiers/intern/MOD_smoke.c b/source/blender/modifiers/intern/MOD_smoke.c
index 7092ef04d0f..b9b3b89e06d 100644
--- a/source/blender/modifiers/intern/MOD_smoke.c
+++ b/source/blender/modifiers/intern/MOD_smoke.c
@@ -117,7 +117,7 @@ static void updateDepgraph(ModifierData *md, DagForest *forest,
if (go->ob) {
SmokeModifierData *smd2 = (SmokeModifierData *)modifiers_findByType(go->ob, eModifierType_Smoke);
- // check for initialized smoke object
+ /* check for initialized smoke object */
if (smd2 && (smd2->type & MOD_SMOKE_TYPE_FLOW) && smd2->flow) {
DagNode *curNode = dag_get_node(forest, go->ob);
dag_add_relation(forest, curNode, obNode, DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Smoke Flow");
@@ -130,7 +130,7 @@ static void updateDepgraph(ModifierData *md, DagForest *forest,
if (go->ob) {
SmokeModifierData *smd2 = (SmokeModifierData *)modifiers_findByType(go->ob, eModifierType_Smoke);
- // check for initialized smoke object
+ /* check for initialized smoke object */
if (smd2 && (smd2->type & MOD_SMOKE_TYPE_COLL) && smd2->coll) {
DagNode *curNode = dag_get_node(forest, go->ob);
dag_add_relation(forest, curNode, obNode, DAG_RL_DATA_DATA | DAG_RL_OB_DATA, "Smoke Coll");
diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c
index 6f8e65a6e8e..1df7d535c35 100644
--- a/source/blender/modifiers/intern/MOD_solidify.c
+++ b/source/blender/modifiers/intern/MOD_solidify.c
@@ -107,7 +107,7 @@ static void dm_calc_normal(DerivedMesh *dm, float (*temp_nors)[3])
f_no = face_nors[i];
if (calc_face_nors)
- mesh_calc_poly_normal(mp, mloop + mp->loopstart, mvert, f_no);
+ BKE_mesh_calc_poly_normal(mp, mloop + mp->loopstart, mvert, f_no);
ml = mloop + mp->loopstart;
@@ -199,7 +199,7 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
return dataMask;
}
-/* spesific function for solidify - define locally */
+/* specific function for solidify - define locally */
BLI_INLINE void madd_v3v3short_fl(float r[3], const short a[3], const float f)
{
r[0] += (float)a[0] * f;
@@ -483,7 +483,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
/* --- not related to angle calc --- */
if (face_nors_calc)
- mesh_calc_poly_normal(mp, ml, mvert, face_nors[i]);
+ BKE_mesh_calc_poly_normal(mp, ml, mvert, face_nors[i]);
/* --- end non-angle-calc section --- */
sub_v3_v3v3(nor_prev, mvert[ml[i_this - 1].v].co, mvert[ml[i_this].v].co);
@@ -635,15 +635,15 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
/* notice we use 'mp->totloop' which is later overwritten,
* we could lookup the original face but theres no point since this is a copy
* and will have the same value, just take care when changing order of assignment */
- k1 = mpoly[fidx].loopstart + ((edge_order[eidx] + 1) % mp->totloop);
+ k1 = mpoly[fidx].loopstart + (((edge_order[eidx] - 1) + mp->totloop) % mp->totloop); /* prev loop */
k2 = mpoly[fidx].loopstart + (edge_order[eidx]);
mp->totloop = 4;
- CustomData_copy_data(&dm->loopData, &result->loopData, k1, numLoops * 2 + j + 0, 1);
- CustomData_copy_data(&dm->loopData, &result->loopData, k2, numLoops * 2 + j + 1, 1);
- CustomData_copy_data(&dm->loopData, &result->loopData, k2, numLoops * 2 + j + 2, 1);
- CustomData_copy_data(&dm->loopData, &result->loopData, k1, numLoops * 2 + j + 3, 1);
+ CustomData_copy_data(&dm->loopData, &result->loopData, k2, numLoops * 2 + j + 0, 1);
+ CustomData_copy_data(&dm->loopData, &result->loopData, k1, numLoops * 2 + j + 1, 1);
+ CustomData_copy_data(&dm->loopData, &result->loopData, k1, numLoops * 2 + j + 2, 1);
+ CustomData_copy_data(&dm->loopData, &result->loopData, k2, numLoops * 2 + j + 3, 1);
if (flip == FALSE) {
ml[j].v = ed->v1;
diff --git a/source/blender/modifiers/intern/MOD_uvproject.c b/source/blender/modifiers/intern/MOD_uvproject.c
index eb5a74f0dcc..88951919272 100644
--- a/source/blender/modifiers/intern/MOD_uvproject.c
+++ b/source/blender/modifiers/intern/MOD_uvproject.c
@@ -157,7 +157,6 @@ static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
int override_image = ((umd->flags & MOD_UVPROJECT_OVERRIDEIMAGE) != 0);
Projector projectors[MOD_UVPROJECT_MAXPROJECTORS];
int num_projectors = 0;
- float aspect;
char uvname[MAX_CUSTOMDATA_LAYER_NAME];
float aspx = umd->aspectx ? umd->aspectx : 1.0f;
float aspy = umd->aspecty ? umd->aspecty : 1.0f;
@@ -165,8 +164,6 @@ static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
float scay = umd->scaley ? umd->scaley : 1.0f;
int free_uci = 0;
- aspect = aspx / aspy;
-
for (i = 0; i < umd->num_projectors; ++i)
if (umd->projectors[i])
projectors[num_projectors++].ob = umd->projectors[i];
@@ -199,39 +196,23 @@ static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
free_uci = 1;
}
else {
- float sensor = BKE_camera_sensor_size(cam->sensor_fit, cam->sensor_x, cam->sensor_y);
- int sensor_fit = BKE_camera_sensor_fit(cam->sensor_fit, aspx, aspy);
- float scale = (cam->type == CAM_PERSP) ? cam->clipsta * sensor / cam->lens : cam->ortho_scale;
- float xmax, xmin, ymax, ymin;
-
- if (sensor_fit == CAMERA_SENSOR_FIT_HOR) {
- xmax = 0.5f * scale;
- ymax = xmax / aspect;
- }
- else {
- ymax = 0.5f * scale;
- xmax = ymax * aspect;
- }
+ CameraParams params;
- xmin = -xmax;
- ymin = -ymax;
+ /* setup parameters */
+ BKE_camera_params_init(&params);
+ BKE_camera_params_from_object(&params, projectors[i].ob);
- /* scale the matrix */
- xmin *= scax;
- xmax *= scax;
- ymin *= scay;
- ymax *= scay;
+ /* compute matrix, viewplane, .. */
+ BKE_camera_params_compute_viewplane(&params, 1, 1, aspx, aspy);
- if (cam->type == CAM_PERSP) {
- float perspmat[4][4];
- perspective_m4(perspmat, xmin, xmax, ymin, ymax, cam->clipsta, cam->clipend);
- mult_m4_m4m4(tmpmat, perspmat, projectors[i].projmat);
- }
- else { /* if (cam->type == CAM_ORTHO) */
- float orthomat[4][4];
- orthographic_m4(orthomat, xmin, xmax, ymin, ymax, cam->clipsta, cam->clipend);
- mult_m4_m4m4(tmpmat, orthomat, projectors[i].projmat);
- }
+ /* scale the view-plane */
+ params.viewplane.xmin *= scax;
+ params.viewplane.xmax *= scax;
+ params.viewplane.ymin *= scay;
+ params.viewplane.ymax *= scay;
+
+ BKE_camera_params_compute_matrix(&params);
+ mult_m4_m4m4(tmpmat, params.winmat, projectors[i].projmat);
}
}
else {
@@ -241,22 +222,7 @@ static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
unit_m4(offsetmat);
mul_mat3_m4_fl(offsetmat, 0.5);
offsetmat[3][0] = offsetmat[3][1] = offsetmat[3][2] = 0.5;
-
- if (cam) {
- if (aspx == aspy) {
- offsetmat[3][0] -= cam->shiftx;
- offsetmat[3][1] -= cam->shifty;
- }
- else if (aspx < aspy) {
- offsetmat[3][0] -= (cam->shiftx * aspy / aspx);
- offsetmat[3][1] -= cam->shifty;
- }
- else {
- offsetmat[3][0] -= cam->shiftx;
- offsetmat[3][1] -= (cam->shifty * aspx / aspy);
- }
- }
-
+
mult_m4_m4m4(projectors[i].projmat, offsetmat, tmpmat);
/* calculate worldspace projector normal (for best projector test) */
diff --git a/source/blender/modifiers/intern/MOD_warp.c b/source/blender/modifiers/intern/MOD_warp.c
index 9eb360f6819..95f6ef60665 100644
--- a/source/blender/modifiers/intern/MOD_warp.c
+++ b/source/blender/modifiers/intern/MOD_warp.c
@@ -195,6 +195,10 @@ static void warpModifier_do(WarpModifierData *wmd, Object *ob,
if (wmd->curfalloff == NULL) /* should never happen, but bad lib linking could cause it */
wmd->curfalloff = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
+ if (wmd->curfalloff) {
+ curvemapping_initialize(wmd->curfalloff);
+ }
+
invert_m4_m4(obinv, ob->obmat);
mult_m4_m4m4(mat_from, obinv, wmd->object_from->obmat);
diff --git a/source/blender/modifiers/intern/MOD_weightvg_util.c b/source/blender/modifiers/intern/MOD_weightvg_util.c
index 81cdad0d5e5..7181b5bbb44 100644
--- a/source/blender/modifiers/intern/MOD_weightvg_util.c
+++ b/source/blender/modifiers/intern/MOD_weightvg_util.c
@@ -73,6 +73,10 @@ void weightvg_do_map(int num, float *new_w, short falloff_type, CurveMapping *cm
return;
}
+ if (cmap && falloff_type == MOD_WVG_MAPPING_CURVE) {
+ curvemapping_initialize(cmap);
+ }
+
/* Map each weight (vertex) to its new value, accordingly to the chosen mode. */
for (i = 0; i < num; ++i) {
float fac = new_w[i];
diff --git a/source/blender/modifiers/intern/MOD_weightvgproximity.c b/source/blender/modifiers/intern/MOD_weightvgproximity.c
index 70b9eafdac5..25a2a61d8e3 100644
--- a/source/blender/modifiers/intern/MOD_weightvgproximity.c
+++ b/source/blender/modifiers/intern/MOD_weightvgproximity.c
@@ -183,9 +183,9 @@ static float get_ob2ob_distance(const Object *ob, const Object *obr)
}
/**
- * Maps distances to weights, with an optionnal "smoothing" mapping.
+ * Maps distances to weights, with an optional "smoothing" mapping.
*/
-void do_map(float *weights, const int nidx, const float min_d, const float max_d, short mode)
+static void do_map(float *weights, const int nidx, const float min_d, const float max_d, short mode)
{
const float range_inv = 1.0f / (max_d - min_d); /* invert since multiplication is faster */
unsigned int i = nidx;
@@ -474,7 +474,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *der
float *dists_e = use_trgt_edges ? MEM_mallocN(sizeof(float) * numIdx, "dists_e") : NULL;
float *dists_f = use_trgt_faces ? MEM_mallocN(sizeof(float) * numIdx, "dists_f") : NULL;
- space_transform_setup(&loc2trgt, ob, obr);
+ SPACE_TRANSFORM_SETUP(&loc2trgt, ob, obr);
get_vert2geom_distance(numIdx, v_cos, dists_v, dists_e, dists_f,
target_dm, &loc2trgt);
for (i = 0; i < numIdx; i++) {
diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt
index ce5ce1d87c1..08e0e7b0f93 100644
--- a/source/blender/nodes/CMakeLists.txt
+++ b/source/blender/nodes/CMakeLists.txt
@@ -59,6 +59,7 @@ set(SRC
composite/nodes/node_composite_composite.c
composite/nodes/node_composite_crop.c
composite/nodes/node_composite_curves.c
+ composite/nodes/node_composite_despeckle.c
composite/nodes/node_composite_doubleEdgeMask.c
composite/nodes/node_composite_defocus.c
composite/nodes/node_composite_diffMatte.c
@@ -74,6 +75,7 @@ set(SRC
composite/nodes/node_composite_huecorrect.c
composite/nodes/node_composite_idMask.c
composite/nodes/node_composite_image.c
+ composite/nodes/node_composite_inpaint.c
composite/nodes/node_composite_invert.c
composite/nodes/node_composite_keyingscreen.c
composite/nodes/node_composite_keying.c
@@ -103,6 +105,7 @@ set(SRC
composite/nodes/node_composite_stabilize2d.c
composite/nodes/node_composite_texture.c
composite/nodes/node_composite_tonemap.c
+ composite/nodes/node_composite_trackpos.c
composite/nodes/node_composite_transform.c
composite/nodes/node_composite_translate.c
composite/nodes/node_composite_valToRgb.c
@@ -177,6 +180,7 @@ set(SRC
shader/nodes/node_shader_tex_voronoi.c
shader/nodes/node_shader_tex_wave.c
shader/nodes/node_shader_tex_checker.c
+ shader/nodes/node_shader_tex_brick.c
shader/node_shader_tree.c
shader/node_shader_util.c
@@ -249,4 +253,8 @@ if(WITH_COMPOSITOR)
add_definitions(-DWITH_COMPOSITOR)
endif()
+if(WITH_COMPOSITOR_LEGACY)
+ add_definitions(-DWITH_COMPOSITOR_LEGACY)
+endif()
+
blender_add_lib(bf_nodes "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/source/blender/nodes/NOD_composite.h b/source/blender/nodes/NOD_composite.h
index 33d6327ece1..bcef230e1d0 100644
--- a/source/blender/nodes/NOD_composite.h
+++ b/source/blender/nodes/NOD_composite.h
@@ -80,6 +80,8 @@ void register_node_type_cmp_dblur(struct bNodeTreeType *ttype);
void register_node_type_cmp_bilateralblur(struct bNodeTreeType *ttype);
void register_node_type_cmp_vecblur(struct bNodeTreeType *ttype);
void register_node_type_cmp_dilateerode(struct bNodeTreeType *ttype);
+void register_node_type_cmp_inpaint(struct bNodeTreeType *ttype);
+void register_node_type_cmp_despeckle(struct bNodeTreeType *ttype);
void register_node_type_cmp_defocus(struct bNodeTreeType *ttype);
void register_node_type_cmp_valtorgb(struct bNodeTreeType *ttype);
@@ -132,4 +134,6 @@ void register_node_type_cmp_bokehimage(struct bNodeTreeType *ttype);
void register_node_type_cmp_bokehblur(struct bNodeTreeType *ttype);
void register_node_type_cmp_switch(struct bNodeTreeType *ttype);
+void register_node_type_cmp_trackpos(struct bNodeTreeType *ttype);
+
#endif
diff --git a/source/blender/nodes/NOD_shader.h b/source/blender/nodes/NOD_shader.h
index 6b000181953..49428c06e5f 100644
--- a/source/blender/nodes/NOD_shader.h
+++ b/source/blender/nodes/NOD_shader.h
@@ -69,6 +69,7 @@ void register_node_type_sh_invert(struct bNodeTreeType *ttype);
void register_node_type_sh_seprgb(struct bNodeTreeType *ttype);
void register_node_type_sh_combrgb(struct bNodeTreeType *ttype);
void register_node_type_sh_hue_sat(struct bNodeTreeType *ttype);
+void register_node_type_sh_tex_brick(struct bNodeTreeType *ttype);
void register_node_type_sh_attribute(struct bNodeTreeType *ttype);
void register_node_type_sh_geometry(struct bNodeTreeType *ttype);
diff --git a/source/blender/nodes/SConscript b/source/blender/nodes/SConscript
index bf70b5a6ed5..ec4f00a199a 100644
--- a/source/blender/nodes/SConscript
+++ b/source/blender/nodes/SConscript
@@ -40,6 +40,9 @@ if env['WITH_BF_COMPOSITOR']:
incs += ' ../compositor '
defs.append("WITH_COMPOSITOR")
+if env['WITH_BF_COMPOSITOR_LEGACY']:
+ defs.append("WITH_COMPOSITOR_LEGACY")
+
env.BlenderLib ( libname = 'bf_nodes', sources = sources, includes = Split(incs), defines = defs, libtype=['core','player'], priority = [190,105] )
env.BlenderLib ( libname = 'bf_cmpnodes', sources = cmpsources, includes = Split(incs), defines = defs, libtype=['core','player'], priority = [175,101] )
env.BlenderLib ( libname = 'bf_shdnodes', sources = shdsources, includes = Split(incs), defines = defs, libtype=['core','player'], priority = [175,101] )
diff --git a/source/blender/nodes/composite/node_composite_tree.c b/source/blender/nodes/composite/node_composite_tree.c
index b9acf821efe..0d86ada8026 100644
--- a/source/blender/nodes/composite/node_composite_tree.c
+++ b/source/blender/nodes/composite/node_composite_tree.c
@@ -33,6 +33,7 @@
#include <stdio.h>
#include "DNA_anim_types.h"
+#include "DNA_color_types.h"
#include "DNA_scene_types.h"
#include "DNA_node_types.h"
@@ -48,8 +49,8 @@
#include "BKE_main.h"
#include "BKE_node.h"
#include "BKE_tracking.h"
-#include "BKE_utildefines.h"
+#include "node_common.h"
#include "node_exec.h"
#include "node_util.h"
@@ -61,7 +62,7 @@
#include "node_composite_util.h"
#ifdef WITH_COMPOSITOR
-# include "COM_compositor.h"
+ #include "COM_compositor.h"
#endif
static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func)
@@ -94,7 +95,9 @@ static void free_node_cache(bNodeTree *UNUSED(ntree), bNode *node)
for (sock= node->outputs.first; sock; sock= sock->next) {
if (sock->cache) {
+#ifdef WITH_COMPOSITOR_LEGACY
free_compbuf(sock->cache);
+#endif
sock->cache= NULL;
}
}
@@ -158,8 +161,9 @@ static void localize(bNodeTree *localtree, bNodeTree *ntree)
for (sock= node->outputs.first; sock; sock= sock->next) {
sock->new_sock->cache= sock->cache;
+#ifdef WITH_COMPOSITOR_LEGACY
compbuf_set_node(sock->new_sock->cache, node->new_node);
-
+#endif
sock->cache= NULL;
sock->new_sock->new_sock= sock;
}
@@ -222,7 +226,7 @@ static void local_merge(bNodeTree *localtree, bNodeTree *ntree)
}
else if (lnode->type==CMP_NODE_MOVIEDISTORTION) {
/* special case for distortion node: distortion context is allocating in exec function
- * and to achive much better performance on further calls this context should be
+ * and to achieve much better performance on further calls this context should be
* copied back to original node */
if (lnode->storage) {
if (lnode->new_node->storage)
@@ -235,7 +239,9 @@ static void local_merge(bNodeTree *localtree, bNodeTree *ntree)
for (lsock= lnode->outputs.first; lsock; lsock= lsock->next) {
if (ntreeOutputExists(lnode->new_node, lsock->new_sock)) {
lsock->new_sock->cache= lsock->cache;
+#ifdef WITH_COMPOSITOR_LEGACY
compbuf_set_node(lsock->new_sock->cache, lnode->new_node);
+#endif
lsock->cache= NULL;
lsock->new_sock= NULL;
}
@@ -247,6 +253,8 @@ static void local_merge(bNodeTree *localtree, bNodeTree *ntree)
static void update(bNodeTree *ntree)
{
ntreeSetOutput(ntree);
+
+ ntree_update_reroute_nodes(ntree);
}
bNodeTreeType ntreeType_Composite = {
@@ -356,6 +364,7 @@ void ntreeCompositEndExecTree(bNodeTreeExec *exec, int use_tree_data)
}
#ifdef WITH_COMPOSITOR
+#ifdef WITH_COMPOSITOR_LEGACY
/* ***************************** threaded version for execute composite nodes ************* */
/* these are nodes without input, only giving values */
@@ -506,9 +515,9 @@ static int setExecutableNodes(bNodeTreeExec *exec, ThreadData *thd)
static void freeExecutableNode(bNodeTreeExec *exec)
{
/* node outputs can be freed when:
- - not a render result or image node
- - when node outputs go to nodes all being set NODE_FINISHED
- */
+ * - not a render result or image node
+ * - when node outputs go to nodes all being set NODE_FINISHED
+ */
bNodeTree *ntree = exec->nodetree;
bNodeExec *nodeexec;
bNode *node;
@@ -598,11 +607,9 @@ static void ntreeCompositExecTreeOld(bNodeTree *ntree, RenderData *rd, int do_pr
bNode *node;
ListBase threads;
ThreadData thdata;
- int totnode, curnode, rendering= 1, n;
- bNodeTreeExec *exec= ntree->execdata;
-
- if (ntree == NULL) return;
-
+ int totnode, curnode, rendering = TRUE, n;
+ bNodeTreeExec *exec = ntree->execdata;
+
if (do_preview)
ntreeInitPreview(ntree, 0, 0);
@@ -682,18 +689,32 @@ static void ntreeCompositExecTreeOld(bNodeTree *ntree, RenderData *rd, int do_pr
/* XXX top-level tree uses the ntree->execdata pointer */
ntreeCompositEndExecTree(exec, 1);
}
-#endif
+#endif /* WITH_COMPOSITOR_LEGACY */
+#endif /* WITH_COMPOSITOR */
-void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int rendering, int do_preview)
+void *COM_linker_hack = NULL;
+
+void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int rendering, int do_preview,
+ const ColorManagedViewSettings *view_settings,
+ const ColorManagedDisplaySettings *display_settings)
{
#ifdef WITH_COMPOSITOR
- if (G.rt == 200)
+#ifdef WITH_COMPOSITOR_LEGACY
+ if (G.debug_value == 200)
+ {
ntreeCompositExecTreeOld(ntree, rd, do_preview);
+ }
else
- COM_execute(rd, ntree, rendering);
+#endif
+ {
+ COM_execute(rd, ntree, rendering, view_settings, display_settings);
+ }
#else
(void)ntree, (void)rd, (void)rendering, (void)do_preview;
+ (void)view_settings, (void)display_settings;
#endif
+
+ (void)do_preview;
}
/* *********************************************** */
@@ -768,20 +789,19 @@ static void force_hidden_passes(bNode *node, int passflag)
if (!(passflag & SCE_PASS_TRANSM_INDIRECT)) sock->flag |= SOCK_UNAVAIL;
sock= BLI_findlink(&node->outputs, RRES_OUT_TRANSM_COLOR);
if (!(passflag & SCE_PASS_TRANSM_COLOR)) sock->flag |= SOCK_UNAVAIL;
- sock= BLI_findlink(&node->outputs, RRES_OUT_TRANSM_COLOR);
}
/* based on rules, force sockets hidden always */
void ntreeCompositForceHidden(bNodeTree *ntree, Scene *curscene)
{
bNode *node;
-
- if (ntree==NULL) return;
-
- for (node= ntree->nodes.first; node; node= node->next) {
- if ( node->type==CMP_NODE_R_LAYERS) {
- Scene *sce= node->id?(Scene *)node->id:curscene;
- SceneRenderLayer *srl= BLI_findlink(&sce->r.layers, node->custom1);
+
+ if (ntree == NULL) return;
+
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->type == CMP_NODE_R_LAYERS) {
+ Scene *sce = node->id ? (Scene *)node->id : curscene;
+ SceneRenderLayer *srl = BLI_findlink(&sce->r.layers, node->custom1);
if (srl)
force_hidden_passes(node, srl->passflag);
}
@@ -789,7 +809,7 @@ void ntreeCompositForceHidden(bNodeTree *ntree, Scene *curscene)
* Updates should only happen when actually necessary.
*/
#if 0
- else if ( node->type==CMP_NODE_IMAGE) {
+ else if (node->type == CMP_NODE_IMAGE) {
nodeUpdate(ntree, node);
}
#endif
@@ -802,15 +822,15 @@ void ntreeCompositForceHidden(bNodeTree *ntree, Scene *curscene)
void ntreeCompositTagRender(Scene *curscene)
{
Scene *sce;
-
- for (sce= G.main->scene.first; sce; sce= sce->id.next) {
+
+ for (sce = G.main->scene.first; sce; sce = sce->id.next) {
if (sce->nodetree) {
bNode *node;
-
- for (node= sce->nodetree->nodes.first; node; node= node->next) {
- if (node->id==(ID *)curscene || node->type==CMP_NODE_COMPOSITE)
+
+ for (node = sce->nodetree->nodes.first; node; node = node->next) {
+ if (node->id == (ID *)curscene || node->type == CMP_NODE_COMPOSITE)
nodeUpdate(sce->nodetree, node);
- else if (node->type==CMP_NODE_TEXTURE) /* uses scene sizex/sizey */
+ else if (node->type == CMP_NODE_TEXTURE) /* uses scene sizex/sizey */
nodeUpdate(sce->nodetree, node);
}
}
@@ -824,37 +844,37 @@ static int node_animation_properties(bNodeTree *ntree, bNode *node)
Link *link;
PointerRNA ptr;
PropertyRNA *prop;
-
+
/* check to see if any of the node's properties have fcurves */
RNA_pointer_create((ID *)ntree, &RNA_Node, node, &ptr);
lb = RNA_struct_type_properties(ptr.type);
-
- for (link=lb->first; link; link=link->next) {
- int driven, len=1, index;
+
+ for (link = lb->first; link; link = link->next) {
+ int driven, len = 1, index;
prop = (PropertyRNA *)link;
-
+
if (RNA_property_array_check(prop))
len = RNA_property_array_length(&ptr, prop);
-
- for (index=0; index<len; index++) {
+
+ for (index = 0; index < len; index++) {
if (rna_get_fcurve(&ptr, prop, index, NULL, &driven)) {
nodeUpdate(ntree, node);
return 1;
}
}
}
-
+
/* now check node sockets */
- for (sock = node->inputs.first; sock; sock=sock->next) {
- int driven, len=1, index;
-
+ for (sock = node->inputs.first; sock; sock = sock->next) {
+ int driven, len = 1, index;
+
RNA_pointer_create((ID *)ntree, &RNA_NodeSocket, sock, &ptr);
prop = RNA_struct_find_property(&ptr, "default_value");
if (prop) {
if (RNA_property_array_check(prop))
len = RNA_property_array_length(&ptr, prop);
-
- for (index=0; index<len; index++) {
+
+ for (index = 0; index < len; index++) {
if (rna_get_fcurve(&ptr, prop, index, NULL, &driven)) {
nodeUpdate(ntree, node);
return 1;
@@ -870,42 +890,42 @@ static int node_animation_properties(bNodeTree *ntree, bNode *node)
int ntreeCompositTagAnimated(bNodeTree *ntree)
{
bNode *node;
- int tagged= 0;
-
- if (ntree==NULL) return 0;
-
- for (node= ntree->nodes.first; node; node= node->next) {
-
+ int tagged = 0;
+
+ if (ntree == NULL) return 0;
+
+ for (node = ntree->nodes.first; node; node = node->next) {
+
tagged = node_animation_properties(ntree, node);
-
+
/* otherwise always tag these node types */
- if (node->type==CMP_NODE_IMAGE) {
- Image *ima= (Image *)node->id;
+ if (node->type == CMP_NODE_IMAGE) {
+ Image *ima = (Image *)node->id;
if (ima && ELEM(ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) {
nodeUpdate(ntree, node);
- tagged= 1;
+ tagged = 1;
}
}
- else if (node->type==CMP_NODE_TIME) {
+ else if (node->type == CMP_NODE_TIME) {
nodeUpdate(ntree, node);
- tagged= 1;
+ tagged = 1;
}
/* here was tag render layer, but this is called after a render, so re-composites fail */
- else if (node->type==NODE_GROUP) {
- if ( ntreeCompositTagAnimated((bNodeTree *)node->id) ) {
+ else if (node->type == NODE_GROUP) {
+ if (ntreeCompositTagAnimated((bNodeTree *)node->id) ) {
nodeUpdate(ntree, node);
}
}
else if (ELEM(node->type, CMP_NODE_MOVIECLIP, CMP_NODE_TRANSFORM)) {
nodeUpdate(ntree, node);
- tagged= 1;
+ tagged = 1;
}
- else if (node->type==CMP_NODE_MASK) {
+ else if (node->type == CMP_NODE_MASK) {
nodeUpdate(ntree, node);
- tagged= 1;
+ tagged = 1;
}
}
-
+
return tagged;
}
@@ -914,11 +934,11 @@ int ntreeCompositTagAnimated(bNodeTree *ntree)
void ntreeCompositTagGenerators(bNodeTree *ntree)
{
bNode *node;
-
- if (ntree==NULL) return;
-
- for (node= ntree->nodes.first; node; node= node->next) {
- if ( ELEM(node->type, CMP_NODE_R_LAYERS, CMP_NODE_IMAGE))
+
+ if (ntree == NULL) return;
+
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (ELEM(node->type, CMP_NODE_R_LAYERS, CMP_NODE_IMAGE))
nodeUpdate(ntree, node);
}
}
@@ -927,12 +947,12 @@ void ntreeCompositTagGenerators(bNodeTree *ntree)
void ntreeCompositClearTags(bNodeTree *ntree)
{
bNode *node;
-
- if (ntree==NULL) return;
-
- for (node= ntree->nodes.first; node; node= node->next) {
- node->need_exec= 0;
- if (node->type==NODE_GROUP)
+
+ if (ntree == NULL) return;
+
+ for (node = ntree->nodes.first; node; node = node->next) {
+ node->need_exec = 0;
+ if (node->type == NODE_GROUP)
ntreeCompositClearTags((bNodeTree *)node->id);
}
}
diff --git a/source/blender/nodes/composite/node_composite_util.c b/source/blender/nodes/composite/node_composite_util.c
index 98ded3ea3b3..ad2d26d7c27 100644
--- a/source/blender/nodes/composite/node_composite_util.c
+++ b/source/blender/nodes/composite/node_composite_util.c
@@ -29,9 +29,10 @@
* \ingroup nodes
*/
-
#include "node_composite_util.h"
+#ifdef WITH_COMPOSITOR_LEGACY
+
#include <limits.h>
CompBuf *alloc_compbuf(int sizex, int sizey, int type, int alloc)
@@ -145,7 +146,7 @@ CompBuf *get_cropped_compbuf(rcti *drect, float *rectf, int rectx, int recty, in
if (disprect.xmin>= disprect.xmax) return NULL;
if (disprect.ymin>= disprect.ymax) return NULL;
- cbuf= alloc_compbuf(disprect.xmax-disprect.xmin, disprect.ymax-disprect.ymin, type, 1);
+ cbuf= alloc_compbuf(BLI_rcti_size_x(&disprect), BLI_rcti_size_y(&disprect), type, 1);
outfp= cbuf->rect;
rectf += type*(disprect.ymin*rectx + disprect.xmin);
dx= type*cbuf->x;
@@ -605,6 +606,9 @@ static CompBuf *generate_procedural_preview(CompBuf *cbuf, int newx, int newy)
return outbuf;
}
+/* OCIO_TODO: this function is only used by legacy compositor system only, which would likely be removed soon,
+ * keep check for old color management flag for now
+ */
void generate_preview(void *data, bNode *node, CompBuf *stackbuf)
{
RenderData *rd= data;
@@ -647,7 +651,7 @@ void generate_preview(void *data, bNode *node, CompBuf *stackbuf)
if (stackbuf_use!=stackbuf)
free_compbuf(stackbuf_use);
- BLI_lock_thread(LOCK_PREVIEW);
+ // BLI_lock_thread(LOCK_PREVIEW);
if (preview->rect)
MEM_freeN(preview->rect);
@@ -655,7 +659,7 @@ void generate_preview(void *data, bNode *node, CompBuf *stackbuf)
preview->ysize= ysize;
preview->rect= rect;
- BLI_unlock_thread(LOCK_PREVIEW);
+ // BLI_unlock_thread(LOCK_PREVIEW);
}
}
@@ -1117,7 +1121,7 @@ void convolve(CompBuf* dst, CompBuf* in1, CompBuf* in2)
/*
*
- * Utility functions qd_* should probably be intergrated better with other functions here.
+ * Utility functions qd_* should probably be integrated better with other functions here.
*
*/
// sets fcol to pixelcolor at (x, y)
@@ -1405,3 +1409,4 @@ void IIR_gauss(CompBuf* src, float sigma, int chan, int xy)
#undef YVV
}
+#endif /* WITH_COMPOSITOR_LEGACY */
diff --git a/source/blender/nodes/composite/node_composite_util.h b/source/blender/nodes/composite/node_composite_util.h
index 8f772b19d5e..f2719ee0779 100644
--- a/source/blender/nodes/composite/node_composite_util.h
+++ b/source/blender/nodes/composite/node_composite_util.h
@@ -86,6 +86,9 @@
/* only for forward declarations */
#include "NOD_composite.h"
+#define CMP_SCALE_MAX 12000
+
+#ifdef WITH_COMPOSITOR_LEGACY
/* *************************** operations support *************************** */
@@ -198,9 +201,9 @@ void IIR_gauss(CompBuf* src, float sigma, int chan, int xy);
/* transformations */
-#define CMP_SCALE_MAX 12000
-
CompBuf* node_composit_transform(CompBuf *cbuf, float x, float y, float angle, float scale, int filter_type);
float *node_composit_get_float_buffer(RenderData *rd, ImBuf *ibuf, int *alloc);
#endif
+
+#endif /* WITH_COMPOSITOR_LEGACY */
diff --git a/source/blender/nodes/composite/nodes/node_composite_alphaOver.c b/source/blender/nodes/composite/nodes/node_composite_alphaOver.c
index 588574e324c..86eb0aa2c83 100644
--- a/source/blender/nodes/composite/nodes/node_composite_alphaOver.c
+++ b/source/blender/nodes/composite/nodes/node_composite_alphaOver.c
@@ -29,7 +29,6 @@
* \ingroup cmpnodes
*/
-
#include "node_composite_util.h"
/* **************** ALPHAOVER ******************** */
@@ -44,6 +43,8 @@ static bNodeSocketTemplate cmp_node_alphaover_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_alphaover_premul(bNode *UNUSED(node), float *out, float *src, float *over, float *fac)
{
@@ -109,8 +110,6 @@ static void do_alphaover_mixed(bNode *node, float *out, float *src, float *over,
}
-
-
static void node_composit_exec_alphaover(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out)
{
/* stack order in: col col */
@@ -139,7 +138,9 @@ static void node_composit_exec_alphaover(void *UNUSED(data), bNode *node, bNodeS
}
}
-static void node_alphaover_init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_alphaover_init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->storage= MEM_callocN(sizeof(NodeTwoFloats), "NodeTwoFloats");
}
@@ -153,7 +154,9 @@ void register_node_type_cmp_alphaover(bNodeTreeType *ttype)
node_type_size(&ntype, 80, 40, 120);
node_type_init(&ntype, node_alphaover_init);
node_type_storage(&ntype, "NodeTwoFloats", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_alphaover);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_bilateralblur.c b/source/blender/nodes/composite/nodes/node_composite_bilateralblur.c
index 0137093658c..e05ef1ea5a5 100644
--- a/source/blender/nodes/composite/nodes/node_composite_bilateralblur.c
+++ b/source/blender/nodes/composite/nodes/node_composite_bilateralblur.c
@@ -43,6 +43,8 @@ static bNodeSocketTemplate cmp_node_bilateralblur_out[] = {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
#define INIT_C3 \
mean0 = 1; \
mean1[0] = src[0]; \
@@ -254,6 +256,8 @@ static void node_composit_exec_bilateralblur(void *UNUSED(data), bNode *node, bN
free_compbuf(new);
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
static void node_composit_init_bilateralblur(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeBilateralBlurData *nbbd = MEM_callocN(sizeof(NodeBilateralBlurData), "node bilateral blur data");
@@ -271,7 +275,9 @@ void register_node_type_cmp_bilateralblur(bNodeTreeType *ttype)
node_type_size(&ntype, 150, 120, 200);
node_type_init(&ntype, node_composit_init_bilateralblur);
node_type_storage(&ntype, "NodeBilateralBlurData", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_bilateralblur);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_blur.c b/source/blender/nodes/composite/nodes/node_composite_blur.c
index fb163222781..b9b2406631b 100644
--- a/source/blender/nodes/composite/nodes/node_composite_blur.c
+++ b/source/blender/nodes/composite/nodes/node_composite_blur.c
@@ -44,6 +44,8 @@ static bNodeSocketTemplate cmp_node_blur_out[] = {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static float *make_gausstab(int filtertype, int rad)
{
float *gausstab, sum, val;
@@ -720,6 +722,8 @@ static void node_composit_exec_blur(void *data, bNode *node, bNodeStack **in, bN
generate_preview(data, node, out[0]->data);
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
static void node_composit_init_blur(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->storage = MEM_callocN(sizeof(NodeBlurData), "node blur data");
@@ -734,7 +738,9 @@ void register_node_type_cmp_blur(bNodeTreeType *ttype)
node_type_size(&ntype, 120, 80, 200);
node_type_init(&ntype, node_composit_init_blur);
node_type_storage(&ntype, "NodeBlurData", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_blur);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_bokehimage.c b/source/blender/nodes/composite/nodes/node_composite_bokehimage.c
index 24378c4d5b7..c5697679f90 100644
--- a/source/blender/nodes/composite/nodes/node_composite_bokehimage.c
+++ b/source/blender/nodes/composite/nodes/node_composite_bokehimage.c
@@ -41,7 +41,7 @@ static bNodeSocketTemplate cmp_node_bokehimage_out[]= {
{ SOCK_RGBA, 0, N_("Image"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
{ -1, 0, "" }
};
-static void node_composit_init_bokehimage(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_composit_init_bokehimage(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeBokehImage * data = MEM_callocN(sizeof(NodeBokehImage), "NodeBokehImage");
data->angle = 0.0f;
diff --git a/source/blender/nodes/composite/nodes/node_composite_boxmask.c b/source/blender/nodes/composite/nodes/node_composite_boxmask.c
index 81c13980f22..1ba522c0e5f 100644
--- a/source/blender/nodes/composite/nodes/node_composite_boxmask.c
+++ b/source/blender/nodes/composite/nodes/node_composite_boxmask.c
@@ -46,7 +46,7 @@ static bNodeSocketTemplate cmp_node_boxmask_out[]= {
{ -1, 0, "" }
};
-static void node_composit_init_boxmask(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_composit_init_boxmask(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeBoxMask *data = MEM_callocN(sizeof(NodeBoxMask), "NodeBoxMask");
data->x = 0.5;
diff --git a/source/blender/nodes/composite/nodes/node_composite_brightness.c b/source/blender/nodes/composite/nodes/node_composite_brightness.c
index 8761d35f18f..2b8a394d6f2 100644
--- a/source/blender/nodes/composite/nodes/node_composite_brightness.c
+++ b/source/blender/nodes/composite/nodes/node_composite_brightness.c
@@ -47,6 +47,8 @@ static bNodeSocketTemplate cmp_node_brightcontrast_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_brightnesscontrast(bNode *UNUSED(node), float *out, float *in, float *in_brightness, float *in_contrast)
{
float i;
@@ -92,6 +94,8 @@ static void node_composit_exec_brightcontrast(void *UNUSED(data), bNode *node, b
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_brightcontrast(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -99,7 +103,9 @@ void register_node_type_cmp_brightcontrast(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_BRIGHTCONTRAST, "Bright/Contrast", NODE_CLASS_OP_COLOR, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_brightcontrast_in, cmp_node_brightcontrast_out);
node_type_size(&ntype, 140, 100, 320);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_brightcontrast);
-
+#endif
+
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_channelMatte.c b/source/blender/nodes/composite/nodes/node_composite_channelMatte.c
index 6163d8f01b1..06b77de463b 100644
--- a/source/blender/nodes/composite/nodes/node_composite_channelMatte.c
+++ b/source/blender/nodes/composite/nodes/node_composite_channelMatte.c
@@ -45,6 +45,8 @@ static bNodeSocketTemplate cmp_node_channel_matte_out[]={
{-1, 0, ""}
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_normalized_rgba_to_ycca2(bNode *UNUSED(node), float *out, float *in)
{
/*normalize to the range 0.0 to 1.0) */
@@ -80,15 +82,18 @@ static void do_channel_matte(bNode *node, float *out, float *in)
}
case 1: { /* Alpha=G-MAX(R, B) */
switch (node->custom2) {
- case 1: {
+ case 1:
+ {
alpha=in[0]-MAX2(in[1], in[2]);
break;
}
- case 2: {
+ case 2:
+ {
alpha=in[1]-MAX2(in[0], in[2]);
break;
}
- case 3: {
+ case 3:
+ {
alpha=in[2]-MAX2(in[0], in[1]);
break;
}
@@ -179,13 +184,15 @@ static void node_composit_exec_channel_matte(void *data, bNode *node, bNodeStack
out[0]->data=outbuf;
if (out[1]->hasoutput)
out[1]->data=valbuf_from_rgbabuf(outbuf, CHAN_A);
-
+
if (cbuf!=in[0]->data)
free_compbuf(cbuf);
}
-static void node_composit_init_channel_matte(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_channel_matte(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma");
node->storage=c;
@@ -209,7 +216,9 @@ void register_node_type_cmp_channel_matte(bNodeTreeType *ttype)
node_type_size(&ntype, 200, 80, 250);
node_type_init(&ntype, node_composit_init_channel_matte);
node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_channel_matte);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_chromaMatte.c b/source/blender/nodes/composite/nodes/node_composite_chromaMatte.c
index 0c6ce79c51f..55ee1b090bb 100644
--- a/source/blender/nodes/composite/nodes/node_composite_chromaMatte.c
+++ b/source/blender/nodes/composite/nodes/node_composite_chromaMatte.c
@@ -45,6 +45,8 @@ static bNodeSocketTemplate cmp_node_chroma_out[]={
{-1, 0, ""}
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_rgba_to_ycca_normalized(bNode *UNUSED(node), float *out, float *in)
{
rgb_to_ycc(in[0], in[1], in[2], &out[0], &out[1], &out[2], BLI_YCC_ITU_BT601);
@@ -171,8 +173,9 @@ static void node_composit_exec_chroma_matte(void *data, bNode *node, bNodeStack
free_compbuf(cbuf);
}
+#endif /* WITH_COMPOSITOR_LEGACY */
-static void node_composit_init_chroma_matte(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_composit_init_chroma_matte(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma");
node->storage= c;
@@ -192,7 +195,9 @@ void register_node_type_cmp_chroma_matte(bNodeTreeType *ttype)
node_type_size(&ntype, 200, 80, 300);
node_type_init(&ntype, node_composit_init_chroma_matte);
node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_chroma_matte);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_colorMatte.c b/source/blender/nodes/composite/nodes/node_composite_colorMatte.c
index 8aad5bdf179..37fb29811ba 100644
--- a/source/blender/nodes/composite/nodes/node_composite_colorMatte.c
+++ b/source/blender/nodes/composite/nodes/node_composite_colorMatte.c
@@ -45,6 +45,8 @@ static bNodeSocketTemplate cmp_node_color_out[]={
{-1, 0, ""}
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_color_key(bNode *node, float *out, float *in)
{
float h_wrap;
@@ -112,7 +114,9 @@ static void node_composit_exec_color_matte(void *data, bNode *node, bNodeStack *
free_compbuf(cbuf);
}
-static void node_composit_init_color_matte(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_color_matte(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node color");
node->storage= c;
@@ -132,7 +136,9 @@ void register_node_type_cmp_color_matte(bNodeTreeType *ttype)
node_type_size(&ntype, 200, 80, 300);
node_type_init(&ntype, node_composit_init_color_matte);
node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_color_matte);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_colorSpill.c b/source/blender/nodes/composite/nodes/node_composite_colorSpill.c
index 678091790ea..c4120ab22c6 100644
--- a/source/blender/nodes/composite/nodes/node_composite_colorSpill.c
+++ b/source/blender/nodes/composite/nodes/node_composite_colorSpill.c
@@ -47,6 +47,8 @@ static bNodeSocketTemplate cmp_node_color_spill_out[]={
{-1, 0, ""}
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_simple_spillmap_red(bNode *node, float* out, float *in)
{
NodeColorspill *ncs;
@@ -315,7 +317,9 @@ static void node_composit_exec_color_spill(void *UNUSED(data), bNode *node, bNod
free_compbuf(spillmap);
}
-static void node_composit_init_color_spill(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_color_spill(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeColorspill *ncs= MEM_callocN(sizeof(NodeColorspill), "node colorspill");
node->storage=ncs;
@@ -335,7 +339,9 @@ void register_node_type_cmp_color_spill(bNodeTreeType *ttype)
node_type_size(&ntype, 140, 80, 200);
node_type_init(&ntype, node_composit_init_color_spill);
node_type_storage(&ntype, "NodeColorspill", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_color_spill);
-
+#endif
+
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_colorbalance.c b/source/blender/nodes/composite/nodes/node_composite_colorbalance.c
index fa32db9b31d..a9f930f9cf2 100644
--- a/source/blender/nodes/composite/nodes/node_composite_colorbalance.c
+++ b/source/blender/nodes/composite/nodes/node_composite_colorbalance.c
@@ -46,6 +46,8 @@ static bNodeSocketTemplate cmp_node_colorbalance_out[]={
{-1, 0, ""}
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
/* this function implements ASC-CDL according to the spec at http://www.asctech.org/
Slope
S = in * slope
@@ -69,8 +71,8 @@ DO_INLINE float colorbalance_cdl(float in, float offset, float power, float slop
/* note: lift_lgg is just 2-lift, gamma_inv is 1.0/gamma */
DO_INLINE float colorbalance_lgg(float in, float lift_lgg, float gamma_inv, float gain)
{
- /* 1:1 match with the sequencer with linear/srgb conversions, the conversion isn'tisn't pretty
- * but best keep it this way, sice testing for durian shows a similar calculation
+ /* 1:1 match with the sequencer with linear/srgb conversions, the conversion isn't pretty
+ * but best keep it this way, since testing for durian shows a similar calculation
* without lin/srgb conversions gives bad results (over-saturated shadows) with colors
* slightly below 1.0. some correction can be done but it ends up looking bad for shadows or lighter tones - campbell */
float x= (((linearrgb_to_srgb(in) - 1.0f) * lift_lgg) + 1.0f) * gain;
@@ -174,7 +176,9 @@ static void node_composit_exec_colorbalance(void *UNUSED(data), bNode *node, bNo
}
}
-static void node_composit_init_colorbalance(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_colorbalance(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeColorBalance *n= node->storage= MEM_callocN(sizeof(NodeColorBalance), "node colorbalance");
@@ -192,7 +196,9 @@ void register_node_type_cmp_colorbalance(bNodeTreeType *ttype)
node_type_size(&ntype, 400, 200, 400);
node_type_init(&ntype, node_composit_init_colorbalance);
node_type_storage(&ntype, "NodeColorBalance", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_colorbalance);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_colorcorrection.c b/source/blender/nodes/composite/nodes/node_composite_colorcorrection.c
index 6b02202151c..ce43b2f0f2b 100644
--- a/source/blender/nodes/composite/nodes/node_composite_colorcorrection.c
+++ b/source/blender/nodes/composite/nodes/node_composite_colorcorrection.c
@@ -47,7 +47,7 @@ static bNodeSocketTemplate cmp_node_colorcorrection_out[]={
{ -1,0,""}
};
-static void node_composit_init_colorcorrection(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_composit_init_colorcorrection(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeColorCorrection *n= node->storage= MEM_callocN(sizeof(NodeColorCorrection), "node colorcorrection");
n->startmidtones = 0.2f;
diff --git a/source/blender/nodes/composite/nodes/node_composite_common.c b/source/blender/nodes/composite/nodes/node_composite_common.c
index f3e0edfc691..2596248d696 100644
--- a/source/blender/nodes/composite/nodes/node_composite_common.c
+++ b/source/blender/nodes/composite/nodes/node_composite_common.c
@@ -30,7 +30,6 @@
* \ingroup cmpnodes
*/
-
#include "DNA_node_types.h"
#include "BKE_node.h"
@@ -89,7 +88,7 @@ static void copy_stack(bNodeStack *to, bNodeStack *from)
copy_v4_v4(to->vec, from->vec);
to->data = from->data;
to->datatype = from->datatype;
-
+
/* tag as copy to prevent freeing */
to->is_copy = 1;
}
@@ -102,7 +101,7 @@ static void move_stack(bNodeStack *to, bNodeStack *from)
to->data = from->data;
to->datatype = from->datatype;
to->is_copy = from->is_copy;
-
+
zero_v4(from->vec);
from->data = NULL;
from->datatype = 0;
@@ -114,19 +113,19 @@ static void move_stack(bNodeStack *to, bNodeStack *from)
static void *group_initexec(bNode *node)
{
- bNodeTree *ngroup= (bNodeTree*)node->id;
+ bNodeTree *ngroup = (bNodeTree *)node->id;
bNodeTreeExec *exec;
bNodeSocket *sock;
bNodeStack *ns;
-
+
if (!ngroup)
return NULL;
-
+
/* initialize the internal node tree execution */
exec = ntreeCompositBeginExecTree(ngroup, 0);
-
+
/* tag group outputs as external to prevent freeing */
- for (sock=ngroup->outputs.first; sock; sock=sock->next) {
+ for (sock = ngroup->outputs.first; sock; sock = sock->next) {
if (!(sock->flag & SOCK_INTERNAL)) {
ns = node_get_socket_stack(exec->stack, sock);
ns->external = 1;
@@ -138,8 +137,8 @@ static void *group_initexec(bNode *node)
static void group_freeexec(bNode *UNUSED(node), void *nodedata)
{
- bNodeTreeExec *gexec= (bNodeTreeExec*)nodedata;
-
+ bNodeTreeExec *gexec = (bNodeTreeExec *)nodedata;
+
if (gexec)
ntreeCompositEndExecTree(gexec, 0);
}
@@ -167,7 +166,7 @@ static void group_move_outputs(bNode *node, bNodeStack **out, bNodeStack *gstack
bNodeSocket *sock;
bNodeStack *ns;
int a;
- for (sock=node->outputs.first, a=0; sock; sock=sock->next, ++a) {
+ for (sock = node->outputs.first, a = 0; sock; sock = sock->next, ++a) {
if (sock->groupsock) {
ns = node_get_socket_stack(gstack, sock->groupsock);
move_stack(out[a], ns);
@@ -180,11 +179,13 @@ static void group_free_internal(bNodeTreeExec *gexec)
{
bNodeStack *ns;
int i;
-
- for (i=0, ns=gexec->stack; i < gexec->stacksize; ++i, ++ns) {
+
+ for (i = 0, ns = gexec->stack; i < gexec->stacksize; ++i, ++ns) {
if (!ns->external && !ns->is_copy) {
if (ns->data) {
+#ifdef WITH_COMPOSITOR_LEGACY
free_compbuf(ns->data);
+#endif
ns->data = NULL;
}
}
@@ -193,7 +194,7 @@ static void group_free_internal(bNodeTreeExec *gexec)
static void group_execute(void *data, int thread, struct bNode *node, void *nodedata, struct bNodeStack **in, struct bNodeStack **out)
{
- bNodeTreeExec *exec= (bNodeTreeExec*)nodedata;
+ bNodeTreeExec *exec= (bNodeTreeExec *)nodedata;
if (!exec)
return;
@@ -217,7 +218,7 @@ void register_node_type_cmp_group(bNodeTreeType *ttype)
{
static bNodeType ntype;
- node_type_base(ttype, &ntype, NODE_GROUP, "Group", NODE_CLASS_GROUP, NODE_OPTIONS|NODE_CONST_OUTPUT);
+ node_type_base(ttype, &ntype, NODE_GROUP, "Group", NODE_CLASS_GROUP, NODE_OPTIONS | NODE_CONST_OUTPUT);
node_type_socket_templates(&ntype, NULL, NULL);
node_type_size(&ntype, 120, 60, 200);
node_type_label(&ntype, node_group_label);
@@ -227,10 +228,11 @@ void register_node_type_cmp_group(bNodeTreeType *ttype)
node_type_update(&ntype, NULL, node_group_verify);
node_type_group_edit(&ntype, node_group_edit_get, node_group_edit_set, node_group_edit_clear);
node_type_exec_new(&ntype, group_initexec, group_freeexec, group_execute);
-
+
nodeRegisterType(ttype, &ntype);
}
+#ifdef WITH_COMPOSITOR_LEGACY
/**** FOR LOOP ****/
@@ -265,7 +267,7 @@ static void loop_iteration_reset(bNodeTree *ngroup, bNodeStack *gstack)
static void forloop_execute(void *data, int thread, struct bNode *node, void *nodedata, struct bNodeStack **in, struct bNodeStack **out)
{
- bNodeTreeExec *exec= (bNodeTreeExec*)nodedata;
+ bNodeTreeExec *exec= (bNodeTreeExec *)nodedata;
int totiterations= (int)in[0]->vec[0];
bNodeSocket *sock;
bNodeStack *ns;
@@ -323,7 +325,7 @@ void register_node_type_cmp_forloop(bNodeTreeType *ttype)
#if 0 /* XXX loop nodes don't work nicely with current trees */
static void whileloop_execute(void *data, int thread, struct bNode *node, void *nodedata, struct bNodeStack **in, struct bNodeStack **out)
{
- bNodeTreeExec *exec= (bNodeTreeExec*)nodedata;
+ bNodeTreeExec *exec= (bNodeTreeExec *)nodedata;
int condition= (in[0]->vec[0] > 0.0f);
bNodeSocket *sock;
bNodeStack *ns;
@@ -377,3 +379,5 @@ void register_node_type_cmp_whileloop(bNodeTreeType *ttype)
nodeRegisterType(ttype, &ntype);
}
#endif
+
+#endif /* WITH_COMPOSITOR_LEGACY */
diff --git a/source/blender/nodes/composite/nodes/node_composite_composite.c b/source/blender/nodes/composite/nodes/node_composite_composite.c
index 7b189ef40e5..dadc863873d 100644
--- a/source/blender/nodes/composite/nodes/node_composite_composite.c
+++ b/source/blender/nodes/composite/nodes/node_composite_composite.c
@@ -29,11 +29,8 @@
* \ingroup cmpnodes
*/
-
#include "node_composite_util.h"
-
-
/* **************** COMPOSITE ******************** */
static bNodeSocketTemplate cmp_node_composite_in[]= {
{ SOCK_RGBA, 1, N_("Image"), 0.0f, 0.0f, 0.0f, 1.0f},
@@ -42,6 +39,8 @@ static bNodeSocketTemplate cmp_node_composite_in[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
/* applies to render pipeline */
static void node_composit_exec_composite(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out))
{
@@ -97,6 +96,8 @@ static void node_composit_exec_composite(void *data, bNode *node, bNodeStack **i
generate_preview(data, node, in[0]->data);
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_composite(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -104,7 +105,10 @@ void register_node_type_cmp_composite(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_COMPOSITE, "Composite", NODE_CLASS_OUTPUT, NODE_PREVIEW);
node_type_socket_templates(&ntype, cmp_node_composite_in, NULL);
node_type_size(&ntype, 80, 60, 200);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_composite);
+#endif
+
/* Do not allow muting for this node. */
node_type_internal_connect(&ntype, NULL);
diff --git a/source/blender/nodes/composite/nodes/node_composite_crop.c b/source/blender/nodes/composite/nodes/node_composite_crop.c
index 8d676fd6d9f..9b1483d95cf 100644
--- a/source/blender/nodes/composite/nodes/node_composite_crop.c
+++ b/source/blender/nodes/composite/nodes/node_composite_crop.c
@@ -43,6 +43,8 @@ static bNodeSocketTemplate cmp_node_crop_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void node_composit_exec_crop(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out)
{
if (in[0]->data) {
@@ -101,7 +103,9 @@ static void node_composit_exec_crop(void *UNUSED(data), bNode *node, bNodeStack
}
}
-static void node_composit_init_crop(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_crop(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeTwoXYs *nxy= MEM_callocN(sizeof(NodeTwoXYs), "node xy data");
node->storage= nxy;
@@ -120,7 +124,9 @@ void register_node_type_cmp_crop(bNodeTreeType *ttype)
node_type_size(&ntype, 140, 100, 320);
node_type_init(&ntype, node_composit_init_crop);
node_type_storage(&ntype, "NodeTwoXYs", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_crop);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_curves.c b/source/blender/nodes/composite/nodes/node_composite_curves.c
index b5a78015d76..1948709ec84 100644
--- a/source/blender/nodes/composite/nodes/node_composite_curves.c
+++ b/source/blender/nodes/composite/nodes/node_composite_curves.c
@@ -41,6 +41,8 @@ static bNodeSocketTemplate cmp_node_time_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void node_composit_exec_curves_time(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out)
{
RenderData *rd= data;
@@ -50,12 +52,15 @@ static void node_composit_exec_curves_time(void *data, bNode *node, bNodeStack *
if (node->custom1 < node->custom2)
fac= (rd->cfra - node->custom1)/(float)(node->custom2-node->custom1);
- fac= curvemapping_evaluateF(node->storage, 0, fac);
+ curvemapping_initialize(node->storage);
+ fac = curvemapping_evaluateF(node->storage, 0, fac);
+
out[0]->vec[0]= CLAMPIS(fac, 0.0f, 1.0f);
}
+#endif /* WITH_COMPOSITOR_LEGACY */
-static void node_composit_init_curves_time(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_composit_init_curves_time(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->custom1= 1;
node->custom2= 250;
@@ -71,7 +76,9 @@ void register_node_type_cmp_curve_time(bNodeTreeType *ttype)
node_type_size(&ntype, 140, 100, 320);
node_type_init(&ntype, node_composit_init_curves_time);
node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_curves_time);
+#endif
nodeRegisterType(ttype, &ntype);
}
@@ -89,15 +96,20 @@ static bNodeSocketTemplate cmp_node_curve_vec_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void node_composit_exec_curve_vec(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out)
{
/* stack order input: vec */
/* stack order output: vec */
-
+
+ curvemapping_initialize(node->storage);
curvemapping_evaluate_premulRGBF(node->storage, out[0]->vec, in[0]->vec);
}
-static void node_composit_init_curve_vec(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_curve_vec(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->storage= curvemapping_add(3, -1.0f, -1.0f, 1.0f, 1.0f);
}
@@ -111,7 +123,9 @@ void register_node_type_cmp_curve_vec(bNodeTreeType *ttype)
node_type_size(&ntype, 200, 140, 320);
node_type_init(&ntype, node_composit_init_curve_vec);
node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_curve_vec);
+#endif
nodeRegisterType(ttype, &ntype);
}
@@ -131,15 +145,19 @@ static bNodeSocketTemplate cmp_node_curve_rgb_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_curves(bNode *node, float *out, float *in)
{
+ curvemapping_initialize(node->storage);
curvemapping_evaluate_premulRGBF(node->storage, out, in);
out[3]= in[3];
}
static void do_curves_fac(bNode *node, float *out, float *in, float *fac)
{
-
+ curvemapping_initialize(node->storage);
+
if (*fac >= 1.0f)
curvemapping_evaluate_premulRGBF(node->storage, out, in);
else if (*fac <= 0.0f) {
@@ -163,6 +181,8 @@ static void node_composit_exec_curve_rgb(void *UNUSED(data), bNode *node, bNodeS
if (out[0]->hasoutput==0)
return;
+ curvemapping_initialize(node->storage);
+
/* input no image? then only color operation */
if (in[1]->data==NULL) {
curvemapping_evaluateRGBF(node->storage, out[0]->vec, in[1]->vec);
@@ -184,7 +204,9 @@ static void node_composit_exec_curve_rgb(void *UNUSED(data), bNode *node, bNodeS
}
-static void node_composit_init_curve_rgb(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_curve_rgb(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->storage= curvemapping_add(4, 0.0f, 0.0f, 1.0f, 1.0f);
}
@@ -198,7 +220,9 @@ void register_node_type_cmp_curve_rgb(bNodeTreeType *ttype)
node_type_size(&ntype, 200, 140, 320);
node_type_init(&ntype, node_composit_init_curve_rgb);
node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_curve_rgb);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_defocus.c b/source/blender/nodes/composite/nodes/node_composite_defocus.c
index 2ae3cd6ba56..1a9852264bf 100644
--- a/source/blender/nodes/composite/nodes/node_composite_defocus.c
+++ b/source/blender/nodes/composite/nodes/node_composite_defocus.c
@@ -44,6 +44,7 @@ static bNodeSocketTemplate cmp_node_defocus_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
// line coefs for point sampling & scancon. data.
typedef struct BokehCoeffs {
@@ -166,17 +167,17 @@ static void IIR_gauss_single(CompBuf *buf, float sigma)
// see "Recursive Gabor Filtering" by Young/VanVliet
// all factors here in double.prec. Required, because for single.prec it seems to blow up if sigma > ~200
if (sigma >= 3.556f)
- q = 0.9804f*(sigma - 3.556f) + 2.5091f;
+ q = 0.9804f * (sigma - 3.556f) + 2.5091f;
else // sigma >= 0.5
- q = (0.0561f*sigma + 0.5784f)*sigma - 0.2568f;
- q2 = q*q;
- sc = (1.1668 + q)*(3.203729649 + (2.21566 + q)*q);
+ q = (0.0561f * sigma + 0.5784f) * sigma - 0.2568f;
+ q2 = q * q;
+ sc = (1.1668 + q) * (3.203729649 + (2.21566 + q) * q);
// no gabor filtering here, so no complex multiplies, just the regular coefs.
// all negated here, so as not to have to recalc Triggs/Sdika matrix
- cf[1] = q*(5.788961737 + (6.76492 + 3.0*q)*q)/ sc;
- cf[2] = -q2*(3.38246 + 3.0*q)/sc;
+ cf[1] = q * (5.788961737 + (6.76492 + 3.0 * q) * q) / sc;
+ cf[2] = -q2 * (3.38246 + 3.0 * q) / sc;
// 0 & 3 unchanged
- cf[3] = q2*q/sc;
+ cf[3] = q2 * q / sc;
cf[0] = 1.0 - cf[1] - cf[2] - cf[3];
// Triggs/Sdika border corrections,
@@ -254,6 +255,7 @@ static void defocus_blur(bNode *node, CompBuf *new, CompBuf *img, CompBuf *zbuf,
BokehCoeffs BKH[8]; // bokeh shape data, here never > 8 pts.
float bkh_b[4] = {0}; // shape 2D bound
float cam_fdist=1, cam_invfdist=1, cam_lens=35;
+ float cam_sensor = DEFAULT_SENSOR_WIDTH;
float dof_sp, maxfgc, bk_hn_theta=0, inradsq=0;
int y, len_bkh=0, ydone = FALSE;
float aspect, aperture;
@@ -268,17 +270,17 @@ static void defocus_blur(bNode *node, CompBuf *new, CompBuf *img, CompBuf *zbuf,
Camera* cam = (Camera*)camob->data;
cam_lens = cam->lens;
cam_fdist = BKE_camera_object_dof_distance(camob);
- if (cam_fdist==0.0f) cam_fdist = 1e10f; /* if the dof is 0.0 then set it be be far away */
- cam_invfdist = 1.f/cam_fdist;
+ cam_sensor = BKE_camera_sensor_size(cam->sensor_fit, cam->sensor_x, cam->sensor_y);
+ if (cam_fdist == 0.0f) cam_fdist = 1e10f; /* if the dof is 0.0 then set it be be far away */
+ cam_invfdist = 1.f / cam_fdist;
}
-
// guess work here.. best match with raytraced result
minsz = MIN2(img->x, img->y);
- dof_sp = (float)minsz / (16.f / cam_lens); // <- == aspect * MIN2(img->x, img->y) / tan(0.5f * fov);
+ dof_sp = (float)minsz / ((cam_sensor / 2.0f) / cam_lens); // <- == aspect * MIN2(img->x, img->y) / tan(0.5f * fov);
// aperture
aspect = (img->x > img->y) ? (img->y / (float)img->x) : (img->x / (float)img->y);
- aperture = 0.5f*(cam_lens / (aspect*32.f)) / nqd->fstop;
+ aperture = 0.5f * (cam_lens / (aspect * cam_sensor)) / nqd->fstop;
// if not disk, make bokeh coefficients and other needed data
if (nqd->bktype!=0) {
@@ -336,7 +338,7 @@ static void defocus_blur(bNode *node, CompBuf *new, CompBuf *img, CompBuf *zbuf,
// fast blur...
// bug #6656 part 1, probably when previous node_composite.c was split into separate files, it was not properly updated
// to include recent cvs commits (well, at least not defocus node), so this part was missing...
- wt = aperture*128.f;
+ wt = minf(nqd->maxblur, aperture * 128.0f);
IIR_gauss_single(crad, wt);
IIR_gauss_single(wts, wt);
@@ -587,8 +589,8 @@ static void defocus_blur(bNode *node, CompBuf *new, CompBuf *img, CompBuf *zbuf,
// n-agonal
int ov, nv;
float mind, maxd, lwt;
- ys = MAX2((int)floor(bkh_b[2]*ct_crad + y), 0);
- ye = MIN2((int)ceil(bkh_b[3]*ct_crad + y), new->y - 1);
+ ys = maxi((int)floor(bkh_b[2] * ct_crad + y), 0);
+ ye = mini((int)ceil(bkh_b[3] * ct_crad + y), new->y - 1);
for (sy=ys; sy<=ye; sy++) {
float fxs = 1e10f, fxe = -1e10f;
float yf = (sy - y)/ct_crad;
@@ -864,7 +866,9 @@ static void node_composit_exec_defocus(void *UNUSED(data), bNode *node, bNodeSta
if (zbuf_use && (zbuf_use != zbuf)) free_compbuf(zbuf_use);
}
-static void node_composit_init_defocus(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_defocus(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
/* qdn: defocus node */
NodeDefocus *nbd = MEM_callocN(sizeof(NodeDefocus), "node defocus data");
@@ -890,7 +894,9 @@ void register_node_type_cmp_defocus(bNodeTreeType *ttype)
node_type_size(&ntype, 150, 120, 200);
node_type_init(&ntype, node_composit_init_defocus);
node_type_storage(&ntype, "NodeDefocus", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_defocus);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_despeckle.c b/source/blender/nodes/composite/nodes/node_composite_despeckle.c
new file mode 100644
index 00000000000..21b703dc9a8
--- /dev/null
+++ b/source/blender/nodes/composite/nodes/node_composite_despeckle.c
@@ -0,0 +1,73 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2006 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/nodes/composite/nodes/node_composite_despeckle.c
+ * \ingroup cmpnodes
+ */
+
+#include "node_composite_util.h"
+
+/* **************** FILTER ******************** */
+static bNodeSocketTemplate cmp_node_despeckle_in[]= {
+ { SOCK_FLOAT, 1, N_("Fac"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, PROP_FACTOR},
+ { SOCK_RGBA, 1, N_("Image"), 1.0f, 1.0f, 1.0f, 1.0f},
+ { -1, 0, "" }
+};
+static bNodeSocketTemplate cmp_node_despeckle_out[]= {
+ { SOCK_RGBA, 0, N_("Image")},
+ { -1, 0, "" }
+};
+
+#ifdef WITH_COMPOSITOR_LEGACY
+
+static void node_composit_exec_despeckle(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out))
+{
+ /* pass */
+}
+
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_despeckle(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
+{
+ node->custom3 = 0.5f;
+ node->custom4 = 0.5f;
+}
+
+void register_node_type_cmp_despeckle(bNodeTreeType *ttype)
+{
+ static bNodeType ntype;
+
+ node_type_base(ttype, &ntype, CMP_NODE_DESPECKLE, "Despeckle", NODE_CLASS_OP_FILTER, NODE_PREVIEW|NODE_OPTIONS);
+ node_type_socket_templates(&ntype, cmp_node_despeckle_in, cmp_node_despeckle_out);
+ node_type_size(&ntype, 80, 40, 120);
+ node_type_init(&ntype, node_composit_init_despeckle);
+#ifdef WITH_COMPOSITOR_LEGACY
+ node_type_exec(&ntype, node_composit_exec_despeckle);
+#endif
+
+ nodeRegisterType(ttype, &ntype);
+}
diff --git a/source/blender/nodes/composite/nodes/node_composite_diffMatte.c b/source/blender/nodes/composite/nodes/node_composite_diffMatte.c
index 53061366b8b..ed43baef420 100644
--- a/source/blender/nodes/composite/nodes/node_composite_diffMatte.c
+++ b/source/blender/nodes/composite/nodes/node_composite_diffMatte.c
@@ -45,6 +45,8 @@ static bNodeSocketTemplate cmp_node_diff_matte_out[]={
{-1, 0, ""}
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_diff_matte(bNode *node, float *outColor, float *inColor1, float *inColor2)
{
NodeChroma *c= (NodeChroma *)node->storage;
@@ -126,7 +128,9 @@ static void node_composit_exec_diff_matte(void *data, bNode *node, bNodeStack **
free_compbuf(imbuf2);
}
-static void node_composit_init_diff_matte(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_diff_matte(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma");
node->storage= c;
@@ -143,7 +147,9 @@ void register_node_type_cmp_diff_matte(bNodeTreeType *ttype)
node_type_size(&ntype, 200, 80, 250);
node_type_init(&ntype, node_composit_init_diff_matte);
node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_diff_matte);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_dilate.c b/source/blender/nodes/composite/nodes/node_composite_dilate.c
index 5977d291388..f53c64b990a 100644
--- a/source/blender/nodes/composite/nodes/node_composite_dilate.c
+++ b/source/blender/nodes/composite/nodes/node_composite_dilate.c
@@ -44,6 +44,8 @@ static bNodeSocketTemplate cmp_node_dilateerode_out[] = {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void morpho_dilate(CompBuf *cbuf)
{
int x, y;
@@ -146,7 +148,9 @@ static void node_composit_exec_dilateerode(void *UNUSED(data), bNode *node, bNod
}
}
-static void node_composit_init_dilateerode(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_dilateerode(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeDilateErode *data = MEM_callocN(sizeof(NodeDilateErode), "NodeDilateErode");
data->falloff = PROP_SMOOTH;
@@ -161,7 +165,9 @@ void register_node_type_cmp_dilateerode(bNodeTreeType *ttype)
node_type_socket_templates(&ntype, cmp_node_dilateerode_in, cmp_node_dilateerode_out);
node_type_size(&ntype, 130, 100, 320);
node_type_init(&ntype, node_composit_init_dilateerode);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_dilateerode);
+#endif
node_type_storage(&ntype, "NodeDilateErode", node_free_standard_storage, node_copy_standard_storage);
diff --git a/source/blender/nodes/composite/nodes/node_composite_directionalblur.c b/source/blender/nodes/composite/nodes/node_composite_directionalblur.c
index 73e28658309..a343315264d 100644
--- a/source/blender/nodes/composite/nodes/node_composite_directionalblur.c
+++ b/source/blender/nodes/composite/nodes/node_composite_directionalblur.c
@@ -42,6 +42,8 @@ static bNodeSocketTemplate cmp_node_dblur_out[] = {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static CompBuf *dblur(bNode *node, CompBuf *img, int iterations, int wrap,
float center_x, float center_y, float dist, float angle, float spin, float zoom)
{
@@ -63,7 +65,7 @@ static CompBuf *dblur(bNode *node, CompBuf *img, int iterations, int wrap,
center_y_pix = center_y * img->y;
tx = itsc * D * cosf(a);
- ty = -itsc *D *sinf(a);
+ ty = -itsc * D * sinf(a);
sc = itsc * zoom;
rot = itsc * spin;
@@ -122,6 +124,8 @@ static void node_composit_exec_dblur(void *UNUSED(data), bNode *node, bNodeStack
out[0]->data = dblur(node, new, ndbd->iter, ndbd->wrap, ndbd->center_x, ndbd->center_y, ndbd->distance, ndbd->angle, ndbd->spin, ndbd->zoom);
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
static void node_composit_init_dblur(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeDBlurData *ndbd = MEM_callocN(sizeof(NodeDBlurData), "node dblur data");
@@ -139,7 +143,9 @@ void register_node_type_cmp_dblur(bNodeTreeType *ttype)
node_type_size(&ntype, 150, 120, 200);
node_type_init(&ntype, node_composit_init_dblur);
node_type_storage(&ntype, "NodeDBlurData", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_dblur);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_displace.c b/source/blender/nodes/composite/nodes/node_composite_displace.c
index 49cba801d5a..51ccc2a4d39 100644
--- a/source/blender/nodes/composite/nodes/node_composite_displace.c
+++ b/source/blender/nodes/composite/nodes/node_composite_displace.c
@@ -47,6 +47,8 @@ static bNodeSocketTemplate cmp_node_displace_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
/* minimum distance (in pixels) a pixel has to be displaced
* in order to take effect */
#define DISPLACE_EPSILON 0.01f
@@ -182,6 +184,8 @@ static void node_composit_exec_displace(void *UNUSED(data), bNode *node, bNodeSt
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_displace(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -189,7 +193,9 @@ void register_node_type_cmp_displace(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_DISPLACE, "Displace", NODE_CLASS_DISTORT, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_displace_in, cmp_node_displace_out);
node_type_size(&ntype, 140, 100, 320);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_displace);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_distanceMatte.c b/source/blender/nodes/composite/nodes/node_composite_distanceMatte.c
index 86634487776..7a101ff43b5 100644
--- a/source/blender/nodes/composite/nodes/node_composite_distanceMatte.c
+++ b/source/blender/nodes/composite/nodes/node_composite_distanceMatte.c
@@ -45,6 +45,8 @@ static bNodeSocketTemplate cmp_node_distance_matte_out[]={
{-1, 0, ""}
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
/* note, keyvals is passed on from caller as stack array */
/* might have been nicer as temp struct though... */
static void do_distance_matte(bNode *node, float *out, float *in)
@@ -182,7 +184,9 @@ static void node_composit_exec_distance_matte(void *data, bNode *node, bNodeStac
free_compbuf(inbuf);
}
-static void node_composit_init_distance_matte(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_distance_matte(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma");
node->storage= c;
@@ -200,7 +204,9 @@ void register_node_type_cmp_distance_matte(bNodeTreeType *ttype)
node_type_size(&ntype, 200, 80, 250);
node_type_init(&ntype, node_composit_init_distance_matte);
node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_distance_matte);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_doubleEdgeMask.c b/source/blender/nodes/composite/nodes/node_composite_doubleEdgeMask.c
index 6eb70636efa..63a54efea74 100644
--- a/source/blender/nodes/composite/nodes/node_composite_doubleEdgeMask.c
+++ b/source/blender/nodes/composite/nodes/node_composite_doubleEdgeMask.c
@@ -42,6 +42,8 @@ static bNodeSocketTemplate cmp_node_doubleedgemask_out[]= {
{ -1, 0, "" } // output socket array terminator
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_adjacentKeepBorders(unsigned int t, unsigned int rw, unsigned int *limask, unsigned int *lomask, unsigned int *lres, float *res, unsigned int *rsize)
{
int x;
@@ -909,7 +911,7 @@ static void do_createEdgeLocationBuffer(unsigned int t, unsigned int rw, unsigne
int x; // x = pixel loop counter
int a; // a = temporary pixel index buffer loop counter
unsigned int ud; // ud = unscaled edge distance
- unsigned int dmin; // dmin = minimun edge distance
+ unsigned int dmin; // dmin = minimum edge distance
unsigned int rsl; // long used for finding fast 1.0/sqrt
unsigned int gradientFillOffset;
@@ -1027,7 +1029,7 @@ static void do_fillGradientBuffer(unsigned int rw, float *res, unsigned short *g
unsigned int gradientFillOffset;
unsigned int t;
unsigned int ud; // ud = unscaled edge distance
- unsigned int dmin; // dmin = minimun edge distance
+ unsigned int dmin; // dmin = minimum edge distance
float odist; // odist = current outer edge distance
float idist; // idist = current inner edge distance
int dx; // dx = X-delta (used for distance proportion calculation)
@@ -1084,7 +1086,7 @@ static void do_fillGradientBuffer(unsigned int rw, float *res, unsigned short *g
* pixel color as |GI| / (|GI| + |GO|). Since these are reciprocals, GI serves the
* purpose of GO for the proportion calculation.
*
- * For the purposes of the minimun distance comparisons, we only check
+ * For the purposes of the minimum distance comparisons, we only check
* the sums-of-squares against each other, since they are in the same
* mathematical sort-order as if we did go ahead and take square roots
*
@@ -1130,7 +1132,7 @@ static void do_fillGradientBuffer(unsigned int rw, float *res, unsigned short *g
/*
* Note once again that since we are using reciprocals of distance values our
* proportion is already the correct intensity, and does not need to be
- * subracted from 1.0 like it would have if we used real distances.
+ * subtracted from 1.0 like it would have if we used real distances.
*/
/*
@@ -1271,6 +1273,8 @@ static void node_composit_exec_doubleedgemask(void *UNUSED(data), bNode *node, b
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_doubleedgemask(bNodeTreeType *ttype)
{
static bNodeType ntype; // allocate a node type data structure
@@ -1278,7 +1282,9 @@ void register_node_type_cmp_doubleedgemask(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_DOUBLEEDGEMASK, "Double Edge Mask", NODE_CLASS_MATTE, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_doubleedgemask_in, cmp_node_doubleedgemask_out);
node_type_size(&ntype, 210, 210, 210);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_doubleedgemask);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_ellipsemask.c b/source/blender/nodes/composite/nodes/node_composite_ellipsemask.c
index 18a86680245..a97322a17c0 100644
--- a/source/blender/nodes/composite/nodes/node_composite_ellipsemask.c
+++ b/source/blender/nodes/composite/nodes/node_composite_ellipsemask.c
@@ -46,7 +46,7 @@ static bNodeSocketTemplate cmp_node_ellipsemask_out[]= {
{ -1, 0, "" }
};
-static void node_composit_init_ellipsemask(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_composit_init_ellipsemask(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeEllipseMask *data = MEM_callocN(sizeof(NodeEllipseMask), "NodeEllipseMask");
data->x = 0.5;
diff --git a/source/blender/nodes/composite/nodes/node_composite_filter.c b/source/blender/nodes/composite/nodes/node_composite_filter.c
index be5aab74e02..0b12c03682b 100644
--- a/source/blender/nodes/composite/nodes/node_composite_filter.c
+++ b/source/blender/nodes/composite/nodes/node_composite_filter.c
@@ -43,6 +43,8 @@ static bNodeSocketTemplate cmp_node_filter_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_filter_edge(CompBuf *out, CompBuf *in, float *filter, float fac)
{
float *row1, *row2, *row3;
@@ -219,6 +221,7 @@ static void node_composit_exec_filter(void *data, bNode *node, bNodeStack **in,
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
void register_node_type_cmp_filter(bNodeTreeType *ttype)
{
@@ -228,7 +231,9 @@ void register_node_type_cmp_filter(bNodeTreeType *ttype)
node_type_socket_templates(&ntype, cmp_node_filter_in, cmp_node_filter_out);
node_type_size(&ntype, 80, 40, 120);
node_type_label(&ntype, node_filter_label);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_filter);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_flip.c b/source/blender/nodes/composite/nodes/node_composite_flip.c
index 44e93c08509..147e7591af7 100644
--- a/source/blender/nodes/composite/nodes/node_composite_flip.c
+++ b/source/blender/nodes/composite/nodes/node_composite_flip.c
@@ -43,6 +43,8 @@ static bNodeSocketTemplate cmp_node_flip_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void node_composit_exec_flip(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out)
{
if (in[0]->data) {
@@ -88,6 +90,8 @@ static void node_composit_exec_flip(void *UNUSED(data), bNode *node, bNodeStack
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_flip(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -95,7 +99,9 @@ void register_node_type_cmp_flip(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_FLIP, "Flip", NODE_CLASS_DISTORT, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_flip_in, cmp_node_flip_out);
node_type_size(&ntype, 140, 100, 320);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_flip);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_gamma.c b/source/blender/nodes/composite/nodes/node_composite_gamma.c
index f681eb4f630..87155478035 100644
--- a/source/blender/nodes/composite/nodes/node_composite_gamma.c
+++ b/source/blender/nodes/composite/nodes/node_composite_gamma.c
@@ -45,6 +45,8 @@ static bNodeSocketTemplate cmp_node_gamma_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_gamma(bNode *UNUSED(node), float *out, float *in, float *fac)
{
int i=0;
@@ -75,6 +77,8 @@ static void node_composit_exec_gamma(void *UNUSED(data), bNode *node, bNodeStack
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_gamma(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -82,7 +86,9 @@ void register_node_type_cmp_gamma(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_GAMMA, "Gamma", NODE_CLASS_OP_COLOR, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_gamma_in, cmp_node_gamma_out);
node_type_size(&ntype, 140, 100, 320);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_gamma);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_glare.c b/source/blender/nodes/composite/nodes/node_composite_glare.c
index 17a23d4295e..7d6c0cb1a29 100644
--- a/source/blender/nodes/composite/nodes/node_composite_glare.c
+++ b/source/blender/nodes/composite/nodes/node_composite_glare.c
@@ -41,6 +41,7 @@ static bNodeSocketTemplate cmp_node_glare_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
// mix two images, src buffer does not have to be same size,
static void mixImages(CompBuf *dst, CompBuf *src, float mix)
@@ -474,7 +475,9 @@ static void node_composit_exec_glare(void *UNUSED(data), bNode *node, bNodeStack
out[0]->data = new;
}
-static void node_composit_init_glare(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_glare(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeGlare *ndg = MEM_callocN(sizeof(NodeGlare), "node glare data");
ndg->quality = 1;
@@ -499,7 +502,9 @@ void register_node_type_cmp_glare(bNodeTreeType *ttype)
node_type_size(&ntype, 150, 120, 200);
node_type_init(&ntype, node_composit_init_glare);
node_type_storage(&ntype, "NodeGlare", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_glare);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_hueSatVal.c b/source/blender/nodes/composite/nodes/node_composite_hueSatVal.c
index 32bfc048cc7..c8784ceedb7 100644
--- a/source/blender/nodes/composite/nodes/node_composite_hueSatVal.c
+++ b/source/blender/nodes/composite/nodes/node_composite_hueSatVal.c
@@ -44,6 +44,8 @@ static bNodeSocketTemplate cmp_node_hue_sat_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_hue_sat_fac(bNode *node, float *out, float *in, float *fac)
{
NodeHueSat *nhs= node->storage;
@@ -93,7 +95,9 @@ static void node_composit_exec_hue_sat(void *UNUSED(data), bNode *node, bNodeSta
}
}
-static void node_composit_init_hue_sat(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_hue_sat(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeHueSat *nhs= MEM_callocN(sizeof(NodeHueSat), "node hue sat");
node->storage= nhs;
@@ -111,7 +115,9 @@ void register_node_type_cmp_hue_sat(bNodeTreeType *ttype)
node_type_size(&ntype, 150, 80, 250);
node_type_init(&ntype, node_composit_init_hue_sat);
node_type_storage(&ntype, "NodeHueSat", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_hue_sat);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_huecorrect.c b/source/blender/nodes/composite/nodes/node_composite_huecorrect.c
index d40abbe5f4d..42077cd5c06 100644
--- a/source/blender/nodes/composite/nodes/node_composite_huecorrect.c
+++ b/source/blender/nodes/composite/nodes/node_composite_huecorrect.c
@@ -43,12 +43,16 @@ static bNodeSocketTemplate cmp_node_huecorrect_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_huecorrect(bNode *node, float *out, float *in)
{
float hsv[3], f;
rgb_to_hsv(in[0], in[1], in[2], hsv, hsv+1, hsv+2);
+ curvemapping_initialize(node->storage);
+
/* adjust hue, scaling returned default 0.5 up to 1 */
f = curvemapping_evaluateF(node->storage, 0, hsv[0]);
hsv[0] += f-0.5f;
@@ -77,6 +81,8 @@ static void do_huecorrect_fac(bNode *node, float *out, float *in, float *fac)
rgb_to_hsv(in[0], in[1], in[2], hsv, hsv+1, hsv+2);
+ curvemapping_initialize(node->storage);
+
/* adjust hue, scaling returned default 0.5 up to 1 */
f = curvemapping_evaluateF(node->storage, 0, hsv[0]);
hsv[0] += f-0.5f;
@@ -116,7 +122,7 @@ static void node_composit_exec_huecorrect(void *UNUSED(data), bNode *node, bNode
out[0]->data = pass_on_compbuf(cbuf);
return;
}
-
+
/* input no image? then only color operation */
if (in[1]->data==NULL) {
do_huecorrect_fac(node, out[0]->vec, in[1]->vec, in[0]->vec);
@@ -135,7 +141,9 @@ static void node_composit_exec_huecorrect(void *UNUSED(data), bNode *node, bNode
}
-static void node_composit_init_huecorrect(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_huecorrect(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
CurveMapping *cumapping = node->storage= curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
int c;
@@ -160,7 +168,9 @@ void register_node_type_cmp_huecorrect(bNodeTreeType *ttype)
node_type_size(&ntype, 320, 140, 400);
node_type_init(&ntype, node_composit_init_huecorrect);
node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_huecorrect);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_idMask.c b/source/blender/nodes/composite/nodes/node_composite_idMask.c
index 09be1c54503..31a3a765ebe 100644
--- a/source/blender/nodes/composite/nodes/node_composite_idMask.c
+++ b/source/blender/nodes/composite/nodes/node_composite_idMask.c
@@ -44,6 +44,8 @@ static bNodeSocketTemplate cmp_node_idmask_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
/* stackbuf should be zeroed */
static void do_idmask(CompBuf *stackbuf, CompBuf *cbuf, float idnr)
{
@@ -106,6 +108,7 @@ static void node_composit_exec_idmask(void *data, bNode *node, bNodeStack **in,
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
void register_node_type_cmp_idmask(bNodeTreeType *ttype)
{
@@ -114,7 +117,9 @@ void register_node_type_cmp_idmask(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_ID_MASK, "ID Mask", NODE_CLASS_CONVERTOR, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_idmask_in, cmp_node_idmask_out);
node_type_size(&ntype, 140, 100, 320);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_idmask);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_image.c b/source/blender/nodes/composite/nodes/node_composite_image.c
index 3060496bb9e..9f3874560ac 100644
--- a/source/blender/nodes/composite/nodes/node_composite_image.c
+++ b/source/blender/nodes/composite/nodes/node_composite_image.c
@@ -282,6 +282,8 @@ static void cmp_node_image_update(bNodeTree *ntree, bNode *node)
cmp_node_image_verify_outputs(ntree, node);
}
+#ifdef WITH_COMPOSITOR_LEGACY
+
/* float buffer from the image with matching color management */
float *node_composit_get_float_buffer(RenderData *rd, ImBuf *ibuf, int *alloc)
{
@@ -290,33 +292,20 @@ float *node_composit_get_float_buffer(RenderData *rd, ImBuf *ibuf, int *alloc)
*alloc= FALSE;
+ /* OCIO_TODO: this is a part of legacy compositor system, don't bother with porting this code
+ * to new color management system since this code would likely be simply removed soon
+ */
if (rd->color_mgt_flag & R_COLOR_MANAGEMENT) {
- if (ibuf->profile != IB_PROFILE_NONE) {
- rect= ibuf->rect_float;
- }
- else {
- rect= MEM_mapallocN(sizeof(float) * 4 * ibuf->x * ibuf->y, "node_composit_get_image");
-
- IMB_buffer_float_from_float(rect, ibuf->rect_float,
- 4, IB_PROFILE_LINEAR_RGB, IB_PROFILE_SRGB, predivide,
- ibuf->x, ibuf->y, ibuf->x, ibuf->x);
-
- *alloc= TRUE;
- }
+ rect= ibuf->rect_float;
}
else {
- if (ibuf->profile == IB_PROFILE_NONE) {
- rect= ibuf->rect_float;
- }
- else {
- rect= MEM_mapallocN(sizeof(float) * 4 * ibuf->x * ibuf->y, "node_composit_get_image");
+ rect= MEM_mapallocN(sizeof(float) * 4 * ibuf->x * ibuf->y, "node_composit_get_image");
- IMB_buffer_float_from_float(rect, ibuf->rect_float,
- 4, IB_PROFILE_SRGB, IB_PROFILE_LINEAR_RGB, predivide,
- ibuf->x, ibuf->y, ibuf->x, ibuf->x);
+ IMB_buffer_float_from_float(rect, ibuf->rect_float,
+ 4, IB_PROFILE_SRGB, IB_PROFILE_LINEAR_RGB, predivide,
+ ibuf->x, ibuf->y, ibuf->x, ibuf->x);
*alloc= TRUE;
- }
}
return rect;
@@ -519,7 +508,9 @@ static void node_composit_exec_image(void *data, bNode *node, bNodeStack **UNUSE
}
}
-static void node_composit_init_image(bNodeTree *ntree, bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_image(bNodeTree *ntree, bNode *node, bNodeTemplate *UNUSED(ntemp))
{
ImageUser *iuser= MEM_callocN(sizeof(ImageUser), "node image user");
node->storage= iuser;
@@ -563,7 +554,9 @@ void register_node_type_cmp_image(bNodeTreeType *ttype)
node_type_init(&ntype, node_composit_init_image);
node_type_storage(&ntype, "ImageUser", node_composit_free_image, node_composit_copy_image);
node_type_update(&ntype, cmp_node_image_update, NULL);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_image);
+#endif
nodeRegisterType(ttype, &ntype);
}
@@ -571,6 +564,8 @@ void register_node_type_cmp_image(bNodeTreeType *ttype)
/* **************** RENDER RESULT ******************** */
+#ifdef WITH_COMPOSITOR_LEGACY
+
static CompBuf *compbuf_from_pass(RenderData *rd, RenderLayer *rl, int rectx, int recty, int passcode)
{
float *fp= RE_RenderLayerGetPass(rl, passcode);
@@ -653,8 +648,6 @@ static void node_composit_rlayers_out(RenderData *rd, RenderLayer *rl, bNodeStac
out[RRES_OUT_TRANSM_COLOR]->data= compbuf_from_pass(rd, rl, rectx, recty, SCE_PASS_TRANSM_COLOR);
}
-
-
static void node_composit_exec_rlayers(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out)
{
Scene *sce= (Scene *)node->id;
@@ -704,6 +697,8 @@ static void node_composit_exec_rlayers(void *data, bNode *node, bNodeStack **UNU
RE_ReleaseResult(re);
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_rlayers(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -711,7 +706,9 @@ void register_node_type_cmp_rlayers(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_R_LAYERS, "Render Layers", NODE_CLASS_INPUT, NODE_PREVIEW|NODE_OPTIONS);
node_type_socket_templates(&ntype, NULL, cmp_node_rlayers_out);
node_type_size(&ntype, 150, 100, 300);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_rlayers);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_inpaint.c b/source/blender/nodes/composite/nodes/node_composite_inpaint.c
new file mode 100644
index 00000000000..25ecf428b4a
--- /dev/null
+++ b/source/blender/nodes/composite/nodes/node_composite_inpaint.c
@@ -0,0 +1,68 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2006 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/nodes/composite/nodes/node_composite_inpaint.c
+ * \ingroup cmpnodes
+ */
+
+
+#include "node_composite_util.h"
+
+
+/* **************** Inpaint/ ******************** */
+
+static bNodeSocketTemplate cmp_node_inpaint_in[] = {
+ {SOCK_RGBA, 1, N_("Image"), 1.0f, 1.0f, 1.0f, 1.0f},
+ { -1, 0, "" }
+};
+static bNodeSocketTemplate cmp_node_inpaint_out[] = {
+ {SOCK_RGBA, 0, N_("Image")},
+ { -1, 0, "" }
+};
+
+#ifdef WITH_COMPOSITOR_LEGACY
+
+static void node_composit_exec_inpaint(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out))
+{
+ /* pass */
+}
+
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+void register_node_type_cmp_inpaint(bNodeTreeType *ttype)
+{
+ static bNodeType ntype;
+
+ node_type_base(ttype, &ntype, CMP_NODE_INPAINT, "Inpaint", NODE_CLASS_OP_FILTER, NODE_OPTIONS);
+ node_type_socket_templates(&ntype, cmp_node_inpaint_in, cmp_node_inpaint_out);
+ node_type_size(&ntype, 130, 100, 320);
+#ifdef WITH_COMPOSITOR_LEGACY
+ node_type_exec(&ntype, node_composit_exec_inpaint);
+#endif
+
+ nodeRegisterType(ttype, &ntype);
+}
diff --git a/source/blender/nodes/composite/nodes/node_composite_invert.c b/source/blender/nodes/composite/nodes/node_composite_invert.c
index 2a91647d6f5..b0e656b173b 100644
--- a/source/blender/nodes/composite/nodes/node_composite_invert.c
+++ b/source/blender/nodes/composite/nodes/node_composite_invert.c
@@ -43,6 +43,8 @@ static bNodeSocketTemplate cmp_node_invert_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_invert(bNode *node, float *out, float *in)
{
if (node->custom1 & CMP_CHAN_RGB) {
@@ -115,7 +117,9 @@ static void node_composit_exec_invert(void *UNUSED(data), bNode *node, bNodeStac
}
}
-static void node_composit_init_invert(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_invert(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->custom1 |= CMP_CHAN_RGB;
}
@@ -129,7 +133,9 @@ void register_node_type_cmp_invert(bNodeTreeType *ttype)
node_type_socket_templates(&ntype, cmp_node_invert_in, cmp_node_invert_out);
node_type_size(&ntype, 120, 120, 140);
node_type_init(&ntype, node_composit_init_invert);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_invert);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_keying.c b/source/blender/nodes/composite/nodes/node_composite_keying.c
index f37c3686e2b..6553df350ff 100644
--- a/source/blender/nodes/composite/nodes/node_composite_keying.c
+++ b/source/blender/nodes/composite/nodes/node_composite_keying.c
@@ -60,17 +60,21 @@ static bNodeSocketTemplate cmp_node_keying_out[] = {
{ -1, 0, "" }
};
-static void exec(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out))
+#ifdef WITH_COMPOSITOR_LEGACY
+static void node_composit_exec_keying(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out))
{
+ /* pass */
}
+#endif /* WITH_COMPOSITOR_LEGACY */
-static void node_composit_init_keying(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_composit_init_keying(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeKeyingData *data;
data = MEM_callocN(sizeof(NodeKeyingData), "node keying data");
data->screen_balance = 0.5f;
+ data->despill_balance = 0.5f;
data->despill_factor = 1.0f;
data->edge_kernel_radius = 3;
data->edge_kernel_tolerance = 0.1f;
@@ -90,7 +94,9 @@ void register_node_type_cmp_keying(bNodeTreeType *ttype)
node_type_size(&ntype, 140, 100, 320);
node_type_init(&ntype, node_composit_init_keying);
node_type_storage(&ntype, "NodeKeyingData", node_free_standard_storage, node_copy_standard_storage);
- node_type_exec(&ntype, exec);
+#ifdef WITH_COMPOSITOR_LEGACY
+ node_type_exec(&ntype, node_composit_exec_keying);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_keyingscreen.c b/source/blender/nodes/composite/nodes/node_composite_keyingscreen.c
index 73423e2bdd3..e16b7e5d885 100644
--- a/source/blender/nodes/composite/nodes/node_composite_keyingscreen.c
+++ b/source/blender/nodes/composite/nodes/node_composite_keyingscreen.c
@@ -50,6 +50,7 @@ static bNodeSocketTemplate cmp_node_keyingscreen_out[] = {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
static void compute_gradient_screen(RenderData *rd, NodeKeyingScreenData *keyingscreen_data, MovieClip *clip, CompBuf *screenbuf)
{
@@ -157,7 +158,7 @@ static void compute_gradient_screen(RenderData *rd, NodeKeyingScreenData *keying
BLI_freelistN(&edges);
}
-static void exec(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out)
+static void node_composit_exec_keyingscreen(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out)
{
NodeKeyingScreenData *keyingscreen_data = node->storage;
RenderData *rd = data;
@@ -178,7 +179,9 @@ static void exec(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **
out[0]->data = screenbuf;
}
-static void node_composit_init_keyingscreen(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_keyingscreen(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeKeyingScreenData *data;
@@ -196,7 +199,9 @@ void register_node_type_cmp_keyingscreen(bNodeTreeType *ttype)
node_type_size(&ntype, 140, 100, 320);
node_type_init(&ntype, node_composit_init_keyingscreen);
node_type_storage(&ntype, "NodeKeyingScreenData", node_free_standard_storage, node_copy_standard_storage);
- node_type_exec(&ntype, exec);
+#ifdef WITH_COMPOSITOR_LEGACY
+ node_type_exec(&ntype, node_composit_exec_keyingscreen);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_lensdist.c b/source/blender/nodes/composite/nodes/node_composite_lensdist.c
index 7635a391441..a4983cce8b8 100644
--- a/source/blender/nodes/composite/nodes/node_composite_lensdist.c
+++ b/source/blender/nodes/composite/nodes/node_composite_lensdist.c
@@ -43,6 +43,8 @@ static bNodeSocketTemplate cmp_node_lensdist_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
/* assumes *dst is type RGBA */
static void lensDistort(CompBuf *dst, CompBuf *src, float kr, float kg, float kb, int jit, int proj, int fit)
{
@@ -182,8 +184,9 @@ static void node_composit_exec_lensdist(void *UNUSED(data), bNode *node, bNodeSt
out[0]->data = new;
}
+#endif /* WITH_COMPOSITOR_LEGACY */
-static void node_composit_init_lensdist(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_composit_init_lensdist(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeLensDist *nld = MEM_callocN(sizeof(NodeLensDist), "node lensdist data");
nld->jit = nld->proj = nld->fit = 0;
@@ -200,7 +203,9 @@ void register_node_type_cmp_lensdist(bNodeTreeType *ttype)
node_type_size(&ntype, 150, 120, 200);
node_type_init(&ntype, node_composit_init_lensdist);
node_type_storage(&ntype, "NodeLensDist", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_lensdist);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_levels.c b/source/blender/nodes/composite/nodes/node_composite_levels.c
index 1952756d397..601516c5bb0 100644
--- a/source/blender/nodes/composite/nodes/node_composite_levels.c
+++ b/source/blender/nodes/composite/nodes/node_composite_levels.c
@@ -45,7 +45,9 @@ static bNodeSocketTemplate cmp_node_view_levels_out[]={
{-1, 0, ""}
};
-static void fill_bins(bNode* node, CompBuf* in, int* bins)
+#ifdef WITH_COMPOSITOR_LEGACY
+
+static void fill_bins(bNode *node, CompBuf* in, int* bins)
{
float value[4];
int ivalue=0;
@@ -102,7 +104,7 @@ static void fill_bins(bNode* node, CompBuf* in, int* bins)
}
}
-static float brightness_mean(bNode* node, CompBuf* in)
+static float brightness_mean(bNode *node, CompBuf* in)
{
float sum=0.0;
int numPixels=0.0;
@@ -153,7 +155,7 @@ static float brightness_mean(bNode* node, CompBuf* in)
return sum/numPixels;
}
-static float brightness_standard_deviation(bNode* node, CompBuf* in, float mean)
+static float brightness_standard_deviation(bNode *node, CompBuf* in, float mean)
{
float sum=0.0;
int numPixels=0.0;
@@ -309,7 +311,9 @@ static void node_composit_exec_view_levels(void *data, bNode *node, bNodeStack *
free_compbuf(histogram);
}
-static void node_composit_init_view_levels(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_view_levels(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->custom1=1; /*All channels*/
}
@@ -323,7 +327,9 @@ void register_node_type_cmp_view_levels(bNodeTreeType *ttype)
node_type_size(&ntype, 140, 100, 320);
node_type_init(&ntype, node_composit_init_view_levels);
node_type_storage(&ntype, "ImageUser", NULL, NULL);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_view_levels);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c b/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c
index 955d94942a4..61cd4493f39 100644
--- a/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c
+++ b/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c
@@ -45,6 +45,8 @@ static bNodeSocketTemplate cmp_node_luma_matte_out[]={
{-1, 0, ""}
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_luma_matte(bNode *node, float *out, float *in)
{
NodeChroma *c=(NodeChroma *)node->storage;
@@ -96,7 +98,9 @@ static void node_composit_exec_luma_matte(void *data, bNode *node, bNodeStack **
free_compbuf(cbuf);
}
-static void node_composit_init_luma_matte(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_luma_matte(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeChroma *c= MEM_callocN(sizeof(NodeChroma), "node chroma");
node->storage=c;
@@ -113,7 +117,9 @@ void register_node_type_cmp_luma_matte(bNodeTreeType *ttype)
node_type_size(&ntype, 200, 80, 250);
node_type_init(&ntype, node_composit_init_luma_matte);
node_type_storage(&ntype, "NodeChroma", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_luma_matte);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_mapUV.c b/source/blender/nodes/composite/nodes/node_composite_mapUV.c
index a41d010ee95..04d2eaff4f4 100644
--- a/source/blender/nodes/composite/nodes/node_composite_mapUV.c
+++ b/source/blender/nodes/composite/nodes/node_composite_mapUV.c
@@ -44,6 +44,8 @@ static bNodeSocketTemplate cmp_node_mapuv_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
/* foreach UV, use these values to read in cbuf and write to stackbuf */
/* stackbuf should be zeroed */
static void do_mapuv(CompBuf *stackbuf, CompBuf *cbuf, CompBuf *uvbuf, float threshold)
@@ -162,6 +164,8 @@ static void node_composit_exec_mapuv(void *UNUSED(data), bNode *node, bNodeStack
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_mapuv(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -169,7 +173,9 @@ void register_node_type_cmp_mapuv(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_MAP_UV, "Map UV", NODE_CLASS_DISTORT, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_mapuv_in, cmp_node_mapuv_out);
node_type_size(&ntype, 140, 100, 320);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_mapuv);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_mapValue.c b/source/blender/nodes/composite/nodes/node_composite_mapValue.c
index 1d296d540f9..be69c11b35f 100644
--- a/source/blender/nodes/composite/nodes/node_composite_mapValue.c
+++ b/source/blender/nodes/composite/nodes/node_composite_mapValue.c
@@ -42,6 +42,8 @@ static bNodeSocketTemplate cmp_node_map_value_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_map_value(bNode *node, float *out, float *src)
{
TexMapping *texmap= node->storage;
@@ -76,8 +78,9 @@ static void node_composit_exec_map_value(void *UNUSED(data), bNode *node, bNodeS
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
-static void node_composit_init_map_value(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_composit_init_map_value(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->storage= add_tex_mapping();
}
@@ -91,7 +94,9 @@ void register_node_type_cmp_map_value(bNodeTreeType *ttype)
node_type_size(&ntype, 100, 60, 150);
node_type_init(&ntype, node_composit_init_map_value);
node_type_storage(&ntype, "TexMapping", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_map_value);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_mask.c b/source/blender/nodes/composite/nodes/node_composite_mask.c
index 3cd3a732829..3463c1a8413 100644
--- a/source/blender/nodes/composite/nodes/node_composite_mask.c
+++ b/source/blender/nodes/composite/nodes/node_composite_mask.c
@@ -38,8 +38,6 @@
#include "node_composite_util.h"
-#include "../../../../intern/raskter/raskter.h"
-
/* **************** Translate ******************** */
static bNodeSocketTemplate cmp_node_mask_out[] = {
@@ -47,10 +45,12 @@ static bNodeSocketTemplate cmp_node_mask_out[] = {
{ -1, 0, "" }
};
-static void exec(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out)
+#ifdef WITH_COMPOSITOR_LEGACY
+static void node_composit_exec_mask(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **out)
{
if (node->id) {
Mask *mask = (Mask *)node->id;
+ MaskRasterHandle *mr_handle;
CompBuf *stackbuf;
RenderData *rd = data;
float *res;
@@ -70,17 +70,32 @@ static void exec(void *data, bNode *node, bNodeStack **UNUSED(in), bNodeStack **
stackbuf = alloc_compbuf(sx, sy, CB_VAL, TRUE);
res = stackbuf->rect;
- BKE_mask_rasterize(mask, sx, sy, res, TRUE,
- (node->custom1 & CMP_NODEFLAG_MASK_AA) != 0,
- (node->custom1 & CMP_NODEFLAG_MASK_NO_FEATHER) == 0);
+ /* mask raster begin */
+ mr_handle = BKE_maskrasterize_handle_new();
+ BKE_maskrasterize_handle_init(mr_handle, mask,
+ sx, sy,
+ TRUE,
+ (node->custom1 & CMP_NODEFLAG_MASK_AA) != 0,
+ (node->custom1 & CMP_NODEFLAG_MASK_NO_FEATHER) == 0);
+ BKE_maskrasterize_buffer(mr_handle, sx, sy, res);
+ BKE_maskrasterize_handle_free(mr_handle);
+ /* mask raster end */
- if (node->custom1) {
- PLX_antialias_buffer(res,sx,sy);
- }
/* pass on output and free */
out[0]->data = stackbuf;
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_mask(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
+{
+ NodeMask *data = MEM_callocN(sizeof(NodeMask), STRINGIFY(NodeMask));
+ data->size_x = data->size_y = 256;
+ node->storage = data;
+
+ node->custom2 = 16; /* samples */
+ node->custom3 = 0.5f; /* shutter */
+}
void register_node_type_cmp_mask(bNodeTreeType *ttype)
{
@@ -89,7 +104,12 @@ void register_node_type_cmp_mask(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_MASK, "Mask", NODE_CLASS_INPUT, NODE_OPTIONS);
node_type_socket_templates(&ntype, NULL, cmp_node_mask_out);
node_type_size(&ntype, 140, 100, 320);
- node_type_exec(&ntype, exec);
+ node_type_init(&ntype, node_composit_init_mask);
+#ifdef WITH_COMPOSITOR_LEGACY
+ node_type_exec(&ntype, node_composit_exec_mask);
+#endif
+
+ node_type_storage(&ntype, "NodeMask", node_free_standard_storage, node_copy_standard_storage);
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_math.c b/source/blender/nodes/composite/nodes/node_composite_math.c
index 7cf337f2f88..1bddfe0852a 100644
--- a/source/blender/nodes/composite/nodes/node_composite_math.c
+++ b/source/blender/nodes/composite/nodes/node_composite_math.c
@@ -44,6 +44,8 @@ static bNodeSocketTemplate cmp_node_math_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_math(bNode *node, float *out, float *in, float *in2)
{
switch (node->custom1) {
@@ -195,6 +197,8 @@ static void node_composit_exec_math(void *UNUSED(data), bNode *node, bNodeStack
out[0]->data= stackbuf;
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_math(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -203,7 +207,9 @@ void register_node_type_cmp_math(bNodeTreeType *ttype)
node_type_socket_templates(&ntype, cmp_node_math_in, cmp_node_math_out);
node_type_size(&ntype, 120, 110, 160);
node_type_label(&ntype, node_math_label);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_math);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_mixrgb.c b/source/blender/nodes/composite/nodes/node_composite_mixrgb.c
index 6f8891f2b81..e2c9a5abcb1 100644
--- a/source/blender/nodes/composite/nodes/node_composite_mixrgb.c
+++ b/source/blender/nodes/composite/nodes/node_composite_mixrgb.c
@@ -43,6 +43,8 @@ static bNodeSocketTemplate cmp_node_mix_rgb_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_mix_rgb(bNode *node, float *out, float *in1, float *in2, float *fac)
{
float col[3];
@@ -81,6 +83,8 @@ static void node_composit_exec_mix_rgb(void *data, bNode *node, bNodeStack **in,
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
/* custom1 = mix type */
void register_node_type_cmp_mix_rgb(bNodeTreeType *ttype)
{
@@ -90,7 +94,9 @@ void register_node_type_cmp_mix_rgb(bNodeTreeType *ttype)
node_type_socket_templates(&ntype, cmp_node_mix_rgb_in, cmp_node_mix_rgb_out);
node_type_size(&ntype, 110, 60, 120);
node_type_label(&ntype, node_blend_label);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_mix_rgb);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_movieclip.c b/source/blender/nodes/composite/nodes/node_composite_movieclip.c
index e8f09ae08d7..370cff5e0d7 100644
--- a/source/blender/nodes/composite/nodes/node_composite_movieclip.c
+++ b/source/blender/nodes/composite/nodes/node_composite_movieclip.c
@@ -42,6 +42,8 @@ static bNodeSocketTemplate cmp_node_movieclip_out[] = {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static CompBuf *node_composit_get_movieclip(RenderData *rd, MovieClip *clip, MovieClipUser *user)
{
ImBuf *orig_ibuf, *ibuf;
@@ -138,6 +140,8 @@ static void node_composit_exec_movieclip(void *data, bNode *node, bNodeStack **U
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
static void init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
MovieClipUser *user = MEM_callocN(sizeof(MovieClipUser), "node movie clip user");
@@ -155,7 +159,9 @@ void register_node_type_cmp_movieclip(bNodeTreeType *ttype)
node_type_size(&ntype, 120, 80, 300);
node_type_init(&ntype, init);
node_type_storage(&ntype, "MovieClipUser", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_movieclip);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c b/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c
index 65fe3b251d0..9f4cd467c94 100644
--- a/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c
+++ b/source/blender/nodes/composite/nodes/node_composite_moviedistortion.c
@@ -47,7 +47,8 @@ static bNodeSocketTemplate cmp_node_moviedistortion_out[] = {
{ -1, 0, "" }
};
-static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out)
+#ifdef WITH_COMPOSITOR_LEGACY
+static void node_composit_exec_moviedistortion(void *data, bNode *node, bNodeStack **in, bNodeStack **out)
{
if (in[0]->data) {
if (node->id) {
@@ -104,6 +105,7 @@ static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out)
}
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
static const char *label(bNode *node)
{
@@ -135,7 +137,10 @@ void register_node_type_cmp_moviedistortion(bNodeTreeType *ttype)
node_type_socket_templates(&ntype, cmp_node_moviedistortion_in, cmp_node_moviedistortion_out);
node_type_size(&ntype, 140, 100, 320);
node_type_label(&ntype, label);
- node_type_exec(&ntype, exec);
+#ifdef WITH_COMPOSITOR_LEGACY
+ node_type_exec(&ntype, node_composit_exec_moviedistortion);
+#endif
+
node_type_storage(&ntype, NULL, storage_free, storage_copy);
nodeRegisterType(ttype, &ntype);
diff --git a/source/blender/nodes/composite/nodes/node_composite_normal.c b/source/blender/nodes/composite/nodes/node_composite_normal.c
index 99a1f9ea520..6f1e86e2760 100644
--- a/source/blender/nodes/composite/nodes/node_composite_normal.c
+++ b/source/blender/nodes/composite/nodes/node_composite_normal.c
@@ -45,6 +45,8 @@ static bNodeSocketTemplate cmp_node_normal_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_normal(bNode *node, float *out, float *in)
{
bNodeSocket *sock= node->outputs.first;
@@ -77,10 +79,10 @@ static void node_composit_exec_normal(void *UNUSED(data), bNode *node, bNodeStac
out[1]->data= stackbuf;
}
-
-
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
static void init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
bNodeSocket *sock= node->outputs.first;
@@ -99,7 +101,9 @@ void register_node_type_cmp_normal(bNodeTreeType *ttype)
node_type_socket_templates(&ntype, cmp_node_normal_in, cmp_node_normal_out);
node_type_init(&ntype, init);
node_type_size(&ntype, 100, 60, 200);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_normal);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_normalize.c b/source/blender/nodes/composite/nodes/node_composite_normalize.c
index 4697ab74a95..1d2312d8280 100644
--- a/source/blender/nodes/composite/nodes/node_composite_normalize.c
+++ b/source/blender/nodes/composite/nodes/node_composite_normalize.c
@@ -43,6 +43,8 @@ static bNodeSocketTemplate cmp_node_normalize_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_normalize(bNode *UNUSED(node), float *out, float *src, float *min, float *mult)
{
float res;
@@ -102,6 +104,8 @@ static void node_composit_exec_normalize(void *UNUSED(data), bNode *node, bNodeS
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_normalize(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -109,7 +113,9 @@ void register_node_type_cmp_normalize(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_NORMALIZE, "Normalize", NODE_CLASS_OP_VECTOR, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_normalize_in, cmp_node_normalize_out);
node_type_size(&ntype, 100, 60, 150);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_normalize);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_outputFile.c b/source/blender/nodes/composite/nodes/node_composite_outputFile.c
index fcc8ed4a128..656e2a72c03 100644
--- a/source/blender/nodes/composite/nodes/node_composite_outputFile.c
+++ b/source/blender/nodes/composite/nodes/node_composite_outputFile.c
@@ -33,8 +33,6 @@
#include <string.h>
#include "BLI_path_util.h"
-#include "BKE_utildefines.h"
-
#include "node_composite_util.h"
#include "IMB_imbuf.h"
@@ -123,6 +121,8 @@ bNodeSocket *ntreeCompositOutputFileAddSocket(bNodeTree *ntree, bNode *node, con
sockdata->format.imtype= R_IMF_IMTYPE_OPENEXR;
}
}
+ else
+ BKE_imformat_defaults(&sockdata->format);
/* use node data format by default */
sockdata->use_node_format = TRUE;
@@ -164,7 +164,7 @@ void ntreeCompositOutputFileSetLayer(bNode *node, bNodeSocket *sock, const char
ntreeCompositOutputFileUniqueLayer(&node->inputs, sock, name, '_');
}
-static void init_output_file(bNodeTree *ntree, bNode* node, bNodeTemplate *ntemp)
+static void init_output_file(bNodeTree *ntree, bNode *node, bNodeTemplate *ntemp)
{
NodeImageMultiFile *nimf= MEM_callocN(sizeof(NodeImageMultiFile), "node image multi file");
ImageFormatData *format = NULL;
@@ -174,9 +174,14 @@ static void init_output_file(bNodeTree *ntree, bNode* node, bNodeTemplate *ntemp
RenderData *rd = &ntemp->scene->r;
BLI_strncpy(nimf->base_path, rd->pic, sizeof(nimf->base_path));
nimf->format = rd->im_format;
+ if (BKE_imtype_is_movie(nimf->format.imtype)) {
+ nimf->format.imtype= R_IMF_IMTYPE_OPENEXR;
+ }
- format = &rd->im_format;
+ format = &nimf->format;
}
+ else
+ BKE_imformat_defaults(&nimf->format);
/* add one socket by default */
ntreeCompositOutputFileAddSocket(ntree, node, "Image", format);
@@ -220,6 +225,8 @@ static void update_output_file(bNodeTree *UNUSED(ntree), bNode *node)
}
}
+#ifdef WITH_COMPOSITOR_LEGACY
+
/* write input data into individual files */
static void exec_output_file_singlelayer(RenderData *rd, bNode *node, bNodeStack **in)
{
@@ -260,9 +267,6 @@ static void exec_output_file_singlelayer(RenderData *rd, bNode *node, bNodeStack
ibuf->rect_float = cbuf->rect;
ibuf->dither = rd->dither_intensity;
- if (rd->color_mgt_flag & R_COLOR_MANAGEMENT)
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
-
/* get full path */
BLI_join_dirfile(path, FILE_MAX, nimf->base_path, sockdata->path);
BKE_makepicstring(filename, path, bmain->name, rd->cfra, format->imtype, (rd->scemode & R_EXTENSION), TRUE);
@@ -379,12 +383,12 @@ static void exec_output_file_multilayer(RenderData *rd, bNode *node, bNodeStack
IMB_exr_close(exrhandle);
}
-static void exec_output_file(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out))
+static void node_composit_exec_outputfile(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out))
{
RenderData *rd= data;
NodeImageMultiFile *nimf= node->storage;
- if (!G.rendering) {
+ if (G.is_rendering == FALSE) {
/* only output files when rendering a sequence -
* otherwise, it overwrites the output files just
* scrubbing through the timeline when the compositor updates */
@@ -396,6 +400,7 @@ static void exec_output_file(void *data, bNode *node, bNodeStack **in, bNodeStac
else
exec_output_file_singlelayer(rd, node, in);
}
+#endif /* WITH_COMPOSITOR_LEGACY */
void register_node_type_cmp_output_file(bNodeTreeType *ttype)
{
@@ -407,7 +412,9 @@ void register_node_type_cmp_output_file(bNodeTreeType *ttype)
node_type_init(&ntype, init_output_file);
node_type_storage(&ntype, "NodeImageMultiFile", free_output_file, copy_output_file);
node_type_update(&ntype, update_output_file, NULL);
- node_type_exec(&ntype, exec_output_file);
+#ifdef WITH_COMPOSITOR_LEGACY
+ node_type_exec(&ntype, node_composit_exec_outputfile);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_premulkey.c b/source/blender/nodes/composite/nodes/node_composite_premulkey.c
index 63b10b80462..d791983b069 100644
--- a/source/blender/nodes/composite/nodes/node_composite_premulkey.c
+++ b/source/blender/nodes/composite/nodes/node_composite_premulkey.c
@@ -44,6 +44,8 @@ static bNodeSocketTemplate cmp_node_premulkey_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void node_composit_exec_premulkey(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out)
{
if (out[0]->hasoutput==0)
@@ -61,6 +63,8 @@ static void node_composit_exec_premulkey(void *UNUSED(data), bNode *node, bNodeS
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_premulkey(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -68,7 +72,9 @@ void register_node_type_cmp_premulkey(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_PREMULKEY, "Alpha Convert", NODE_CLASS_CONVERTOR, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_premulkey_in, cmp_node_premulkey_out);
node_type_size(&ntype, 140, 100, 320);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_premulkey);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_rgb.c b/source/blender/nodes/composite/nodes/node_composite_rgb.c
index beab47442d5..65c1dcdb7bb 100644
--- a/source/blender/nodes/composite/nodes/node_composite_rgb.c
+++ b/source/blender/nodes/composite/nodes/node_composite_rgb.c
@@ -39,6 +39,18 @@ static bNodeSocketTemplate cmp_node_rgb_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
+static void node_composit_exec_rgb(void *UNUSED(data), bNode *node, bNodeStack **UNUSED(in), bNodeStack **out)
+{
+ bNodeSocket *sock= node->outputs.first;
+ float *col= ((bNodeSocketValueRGBA*)sock->default_value)->value;
+
+ copy_v4_v4(out[0]->vec, col);
+}
+
+#endif /* WITH_COMPOSITOR_LEGACY */
+
static void node_composit_init_rgb(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
bNodeSocket *sock= node->outputs.first;
@@ -50,14 +62,6 @@ static void node_composit_init_rgb(bNodeTree *UNUSED(ntree), bNode *node, bNodeT
col[3] = 1.0f;
}
-static void node_composit_exec_rgb(void *UNUSED(data), bNode *node, bNodeStack **UNUSED(in), bNodeStack **out)
-{
- bNodeSocket *sock= node->outputs.first;
- float *col= ((bNodeSocketValueRGBA*)sock->default_value)->value;
-
- copy_v4_v4(out[0]->vec, col);
-}
-
void register_node_type_cmp_rgb(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -66,7 +70,9 @@ void register_node_type_cmp_rgb(bNodeTreeType *ttype)
node_type_socket_templates(&ntype, NULL, cmp_node_rgb_out);
node_type_init(&ntype, node_composit_init_rgb);
node_type_size(&ntype, 140, 80, 140);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_rgb);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_rotate.c b/source/blender/nodes/composite/nodes/node_composite_rotate.c
index 773be2fb41e..8968fd5fb3a 100644
--- a/source/blender/nodes/composite/nodes/node_composite_rotate.c
+++ b/source/blender/nodes/composite/nodes/node_composite_rotate.c
@@ -44,6 +44,8 @@ static bNodeSocketTemplate cmp_node_rotate_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
/* only supports RGBA nodes now */
static void node_composit_exec_rotate(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out)
{
@@ -121,7 +123,9 @@ static void node_composit_exec_rotate(void *UNUSED(data), bNode *node, bNodeStac
}
}
-static void node_composit_init_rotate(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_rotate(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->custom1= 1; /* Bilinear Filter*/
}
@@ -134,7 +138,9 @@ void register_node_type_cmp_rotate(bNodeTreeType *ttype)
node_type_socket_templates(&ntype, cmp_node_rotate_in, cmp_node_rotate_out);
node_type_size(&ntype, 140, 100, 320);
node_type_init(&ntype, node_composit_init_rotate);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_rotate);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_scale.c b/source/blender/nodes/composite/nodes/node_composite_scale.c
index 1df67724762..2224d653c37 100644
--- a/source/blender/nodes/composite/nodes/node_composite_scale.c
+++ b/source/blender/nodes/composite/nodes/node_composite_scale.c
@@ -45,6 +45,8 @@ static bNodeSocketTemplate cmp_node_scale_out[] = {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
/* only supports RGBA nodes now */
/* node->custom1 stores if input values are absolute or relative scale */
static void node_composit_exec_scale(void *data, bNode *node, bNodeStack **in, bNodeStack **out)
@@ -182,6 +184,8 @@ static void node_composit_exec_scale(void *data, bNode *node, bNodeStack **in, b
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_scale(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -189,7 +193,9 @@ void register_node_type_cmp_scale(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_SCALE, "Scale", NODE_CLASS_DISTORT, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_scale_in, cmp_node_scale_out);
node_type_size(&ntype, 140, 100, 320);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_scale);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c b/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c
index 2433cb37763..ebc18cd19eb 100644
--- a/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c
+++ b/source/blender/nodes/composite/nodes/node_composite_sepcombHSVA.c
@@ -46,6 +46,8 @@ static bNodeSocketTemplate cmp_node_sephsva_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_sephsva(bNode *UNUSED(node), float *out, float *in)
{
float h, s, v;
@@ -99,6 +101,8 @@ static void node_composit_exec_sephsva(void *UNUSED(data), bNode *node, bNodeSta
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_sephsva(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -106,7 +110,9 @@ void register_node_type_cmp_sephsva(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_SEPHSVA, "Separate HSVA", NODE_CLASS_CONVERTOR, 0);
node_type_socket_templates(&ntype, cmp_node_sephsva_in, cmp_node_sephsva_out);
node_type_size(&ntype, 80, 40, 140);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_sephsva);
+#endif
nodeRegisterType(ttype, &ntype);
}
@@ -125,6 +131,8 @@ static bNodeSocketTemplate cmp_node_combhsva_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_comb_hsva(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4)
{
float r, g, b;
@@ -168,6 +176,8 @@ static void node_composit_exec_combhsva(void *UNUSED(data), bNode *node, bNodeSt
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_combhsva(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -175,7 +185,9 @@ void register_node_type_cmp_combhsva(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_COMBHSVA, "Combine HSVA", NODE_CLASS_CONVERTOR, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_combhsva_in, cmp_node_combhsva_out);
node_type_size(&ntype, 80, 40, 140);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_combhsva);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c b/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c
index 988656ac454..0c989ed3fc6 100644
--- a/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c
+++ b/source/blender/nodes/composite/nodes/node_composite_sepcombRGBA.c
@@ -45,6 +45,8 @@ static bNodeSocketTemplate cmp_node_seprgba_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void node_composit_exec_seprgba(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, bNodeStack **out)
{
/* stack order out: bw channels */
@@ -77,6 +79,8 @@ static void node_composit_exec_seprgba(void *UNUSED(data), bNode *UNUSED(node),
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_seprgba(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -84,7 +88,9 @@ void register_node_type_cmp_seprgba(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_SEPRGBA, "Separate RGBA", NODE_CLASS_CONVERTOR, 0);
node_type_socket_templates(&ntype, cmp_node_seprgba_in, cmp_node_seprgba_out);
node_type_size(&ntype, 80, 40, 140);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_seprgba);
+#endif
nodeRegisterType(ttype, &ntype);
}
@@ -104,6 +110,8 @@ static bNodeSocketTemplate cmp_node_combrgba_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_combrgba(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4)
{
out[0] = in1[0];
@@ -145,6 +153,8 @@ static void node_composit_exec_combrgba(void *UNUSED(data), bNode *node, bNodeSt
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_combrgba(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -152,7 +162,9 @@ void register_node_type_cmp_combrgba(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_COMBRGBA, "Combine RGBA", NODE_CLASS_CONVERTOR, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_combrgba_in, cmp_node_combrgba_out);
node_type_size(&ntype, 80, 40, 140);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_combrgba);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c b/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c
index 486c0ed61ee..ccae7cfe57f 100644
--- a/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c
+++ b/source/blender/nodes/composite/nodes/node_composite_sepcombYCCA.c
@@ -46,6 +46,8 @@ static bNodeSocketTemplate cmp_node_sepycca_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_sepycca_601(bNode *UNUSED(node), float *out, float *in)
{
float y, cb, cr;
@@ -146,6 +148,8 @@ static void node_composit_exec_sepycca(void *UNUSED(data), bNode *node, bNodeSta
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_sepycca(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -153,7 +157,9 @@ void register_node_type_cmp_sepycca(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_SEPYCCA, "Separate YCbCrA", NODE_CLASS_CONVERTOR, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_sepycca_in, cmp_node_sepycca_out);
node_type_size(&ntype, 80, 40, 140);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_sepycca);
+#endif
nodeRegisterType(ttype, &ntype);
}
@@ -173,6 +179,8 @@ static bNodeSocketTemplate cmp_node_combycca_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_comb_ycca_601(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4)
{
float r, g, b;
@@ -291,6 +299,8 @@ static void node_composit_exec_combycca(void *UNUSED(data), bNode *node, bNodeSt
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_combycca(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -298,7 +308,9 @@ void register_node_type_cmp_combycca(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_COMBYCCA, "Combine YCbCrA", NODE_CLASS_CONVERTOR, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_combycca_in, cmp_node_combycca_out);
node_type_size(&ntype, 80, 40, 140);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_combycca);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c b/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c
index fdaae7307f0..9b8c805b0f0 100644
--- a/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c
+++ b/source/blender/nodes/composite/nodes/node_composite_sepcombYUVA.c
@@ -46,6 +46,8 @@ static bNodeSocketTemplate cmp_node_sepyuva_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_sepyuva(bNode *UNUSED(node), float *out, float *in)
{
float y, u, v;
@@ -99,6 +101,9 @@ static void node_composit_exec_sepyuva(void *UNUSED(data), bNode *node, bNodeSta
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+
void register_node_type_cmp_sepyuva(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -106,7 +111,9 @@ void register_node_type_cmp_sepyuva(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_SEPYUVA, "Separate YUVA", NODE_CLASS_CONVERTOR, 0);
node_type_socket_templates(&ntype, cmp_node_sepyuva_in, cmp_node_sepyuva_out);
node_type_size(&ntype, 80, 40, 140);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_sepyuva);
+#endif
nodeRegisterType(ttype, &ntype);
}
@@ -126,6 +133,8 @@ static bNodeSocketTemplate cmp_node_combyuva_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_comb_yuva(bNode *UNUSED(node), float *out, float *in1, float *in2, float *in3, float *in4)
{
float r, g, b;
@@ -167,9 +176,11 @@ static void node_composit_exec_combyuva(void *UNUSED(data), bNode *node, bNodeSt
do_comb_yuva, CB_VAL, CB_VAL, CB_VAL, CB_VAL);
out[0]->data= stackbuf;
- }
+ }
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_combyuva(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -177,7 +188,9 @@ void register_node_type_cmp_combyuva(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_COMBYUVA, "Combine YUVA", NODE_CLASS_CONVERTOR, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_combyuva_in, cmp_node_combyuva_out);
node_type_size(&ntype, 80, 40, 140);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_combyuva);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_setalpha.c b/source/blender/nodes/composite/nodes/node_composite_setalpha.c
index c273807c54d..503815b74a0 100644
--- a/source/blender/nodes/composite/nodes/node_composite_setalpha.c
+++ b/source/blender/nodes/composite/nodes/node_composite_setalpha.c
@@ -43,6 +43,8 @@ static bNodeSocketTemplate cmp_node_setalpha_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void node_composit_exec_setalpha(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out)
{
/* stack order out: RGBA image */
@@ -73,6 +75,9 @@ static void node_composit_exec_setalpha(void *UNUSED(data), bNode *node, bNodeSt
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+
void register_node_type_cmp_setalpha(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -80,7 +85,9 @@ void register_node_type_cmp_setalpha(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_SETALPHA, "Set Alpha", NODE_CLASS_CONVERTOR, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_setalpha_in, cmp_node_setalpha_out);
node_type_size(&ntype, 120, 40, 140);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_setalpha);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_splitViewer.c b/source/blender/nodes/composite/nodes/node_composite_splitViewer.c
index abccbb83bd0..f6811f526f7 100644
--- a/source/blender/nodes/composite/nodes/node_composite_splitViewer.c
+++ b/source/blender/nodes/composite/nodes/node_composite_splitViewer.c
@@ -39,6 +39,8 @@ static bNodeSocketTemplate cmp_node_splitviewer_in[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_copy_split_rgba(bNode *UNUSED(node), float *out, float *in1, float *in2, float *fac)
{
if (*fac==0.0f) {
@@ -139,7 +141,9 @@ static void node_composit_exec_splitviewer(void *data, bNode *node, bNodeStack *
}
}
-static void node_composit_init_splitviewer(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_splitviewer(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
ImageUser *iuser= MEM_callocN(sizeof(ImageUser), "node image user");
node->storage= iuser;
@@ -158,7 +162,10 @@ void register_node_type_cmp_splitviewer(bNodeTreeType *ttype)
node_type_size(&ntype, 140, 100, 320);
node_type_init(&ntype, node_composit_init_splitviewer);
node_type_storage(&ntype, "ImageUser", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_splitviewer);
+#endif
+
/* Do not allow muting for this node. */
node_type_internal_connect(&ntype, NULL);
diff --git a/source/blender/nodes/composite/nodes/node_composite_stabilize2d.c b/source/blender/nodes/composite/nodes/node_composite_stabilize2d.c
index fabdf8c0536..fdf0b38e844 100644
--- a/source/blender/nodes/composite/nodes/node_composite_stabilize2d.c
+++ b/source/blender/nodes/composite/nodes/node_composite_stabilize2d.c
@@ -45,6 +45,8 @@ static bNodeSocketTemplate cmp_node_stabilize2d_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void node_composit_exec_stabilize2d(void *data, bNode *node, bNodeStack **in, bNodeStack **out)
{
if (in[0]->data && node->id) {
@@ -67,6 +69,8 @@ static void node_composit_exec_stabilize2d(void *data, bNode *node, bNodeStack *
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_stabilize2d(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -74,7 +78,9 @@ void register_node_type_cmp_stabilize2d(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_STABILIZE2D, "Stabilize 2D", NODE_CLASS_DISTORT, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_stabilize2d_in, cmp_node_stabilize2d_out);
node_type_size(&ntype, 140, 100, 320);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_stabilize2d);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_texture.c b/source/blender/nodes/composite/nodes/node_composite_texture.c
index 95458ad755b..3fedccd7d12 100644
--- a/source/blender/nodes/composite/nodes/node_composite_texture.c
+++ b/source/blender/nodes/composite/nodes/node_composite_texture.c
@@ -44,6 +44,8 @@ static bNodeSocketTemplate cmp_node_texture_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
/* called without rect allocated */
static void texture_procedural(CompBuf *cbuf, float *out, float xco, float yco)
{
@@ -142,6 +144,8 @@ static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in,
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_texture(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -149,7 +153,9 @@ void register_node_type_cmp_texture(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_TEXTURE, "Texture", NODE_CLASS_INPUT, NODE_OPTIONS|NODE_PREVIEW);
node_type_socket_templates(&ntype, cmp_node_texture_in, cmp_node_texture_out);
node_type_size(&ntype, 120, 80, 240);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_texture);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_tonemap.c b/source/blender/nodes/composite/nodes/node_composite_tonemap.c
index 50006e599e5..5e4efe2f3b1 100644
--- a/source/blender/nodes/composite/nodes/node_composite_tonemap.c
+++ b/source/blender/nodes/composite/nodes/node_composite_tonemap.c
@@ -41,6 +41,7 @@ static bNodeSocketTemplate cmp_node_tonemap_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
static float avgLogLum(CompBuf *src, float* auto_key, float* Lav, float* Cav)
{
@@ -146,7 +147,9 @@ static void node_composit_exec_tonemap(void *UNUSED(data), bNode *node, bNodeSta
free_compbuf(img);
}
-static void node_composit_init_tonemap(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_tonemap(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeTonemap *ntm = MEM_callocN(sizeof(NodeTonemap), "node tonemap data");
ntm->type = 1;
@@ -171,7 +174,9 @@ void register_node_type_cmp_tonemap(bNodeTreeType *ttype)
node_type_size(&ntype, 150, 120, 200);
node_type_init(&ntype, node_composit_init_tonemap);
node_type_storage(&ntype, "NodeTonemap", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_tonemap);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_trackpos.c b/source/blender/nodes/composite/nodes/node_composite_trackpos.c
new file mode 100644
index 00000000000..4364ca61ba1
--- /dev/null
+++ b/source/blender/nodes/composite/nodes/node_composite_trackpos.c
@@ -0,0 +1,72 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2011 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Blender Foundation,
+ * Sergey Sharybin
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/nodes/composite/nodes/node_composite_trackpos.c
+ * \ingroup cmpnodes
+ */
+
+
+#include "node_composite_util.h"
+
+static bNodeSocketTemplate cmp_node_trackpos_out[] = {
+ { SOCK_FLOAT, 1, N_("X")},
+ { SOCK_FLOAT, 1, N_("Y")},
+ { -1, 0, "" }
+};
+
+#ifdef WITH_COMPOSITOR_LEGACY
+
+static void node_composit_exec_trackpos(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out))
+{
+ /* pass */
+}
+
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
+{
+ NodeTrackPosData *data = MEM_callocN(sizeof(NodeTrackPosData), "node track position data");
+
+ node->storage = data;
+}
+
+void register_node_type_cmp_trackpos(bNodeTreeType *ttype)
+{
+ static bNodeType ntype;
+
+ node_type_base(ttype, &ntype, CMP_NODE_TRACKPOS, "Track Position", NODE_CLASS_INPUT, NODE_OPTIONS);
+ node_type_socket_templates(&ntype, NULL, cmp_node_trackpos_out);
+ node_type_size(&ntype, 120, 80, 300);
+ node_type_init(&ntype, init);
+ node_type_storage(&ntype, "NodeTrackPosData", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
+ node_type_exec(&ntype, node_composit_exec_trackpos);
+#endif
+
+ nodeRegisterType(ttype, &ntype);
+}
diff --git a/source/blender/nodes/composite/nodes/node_composite_transform.c b/source/blender/nodes/composite/nodes/node_composite_transform.c
index 8af55cde852..a8ef0286f2f 100644
--- a/source/blender/nodes/composite/nodes/node_composite_transform.c
+++ b/source/blender/nodes/composite/nodes/node_composite_transform.c
@@ -48,6 +48,8 @@ static bNodeSocketTemplate cmp_node_transform_out[] = {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
CompBuf* node_composit_transform(CompBuf *cbuf, float x, float y, float angle, float scale, int filter_type)
{
CompBuf *stackbuf = alloc_compbuf(cbuf->x, cbuf->y, CB_RGBA, TRUE);
@@ -127,6 +129,8 @@ static void node_composit_exec_transform(void *UNUSED(data), bNode *node, bNodeS
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_transform(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -134,7 +138,9 @@ void register_node_type_cmp_transform(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_TRANSFORM, "Transform", NODE_CLASS_DISTORT, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_transform_in, cmp_node_transform_out);
node_type_size(&ntype, 140, 100, 320);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_transform);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_translate.c b/source/blender/nodes/composite/nodes/node_composite_translate.c
index e147b100fce..649902ff908 100644
--- a/source/blender/nodes/composite/nodes/node_composite_translate.c
+++ b/source/blender/nodes/composite/nodes/node_composite_translate.c
@@ -46,6 +46,8 @@ static bNodeSocketTemplate cmp_node_translate_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void node_composit_exec_translate(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **in, bNodeStack **out)
{
if (in[0]->data) {
@@ -59,6 +61,8 @@ static void node_composit_exec_translate(void *UNUSED(data), bNode *UNUSED(node)
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_translate(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -66,7 +70,9 @@ void register_node_type_cmp_translate(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_TRANSLATE, "Translate", NODE_CLASS_DISTORT, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_translate_in, cmp_node_translate_out);
node_type_size(&ntype, 140, 100, 320);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_translate);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_valToRgb.c b/source/blender/nodes/composite/nodes/node_composite_valToRgb.c
index 429ba262164..87a776c7bea 100644
--- a/source/blender/nodes/composite/nodes/node_composite_valToRgb.c
+++ b/source/blender/nodes/composite/nodes/node_composite_valToRgb.c
@@ -44,6 +44,8 @@ static bNodeSocketTemplate cmp_node_valtorgb_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_colorband_composit(bNode *node, float *out, float *in)
{
do_colorband(node->storage, in[0], out);
@@ -78,7 +80,9 @@ static void node_composit_exec_valtorgb(void *UNUSED(data), bNode *node, bNodeSt
}
}
-static void node_composit_init_valtorgb(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+#endif /* WITH_COMPOSITOR_LEGACY */
+
+static void node_composit_init_valtorgb(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->storage= add_colorband(1);
}
@@ -92,7 +96,9 @@ void register_node_type_cmp_valtorgb(bNodeTreeType *ttype)
node_type_size(&ntype, 240, 200, 300);
node_type_init(&ntype, node_composit_init_valtorgb);
node_type_storage(&ntype, "ColorBand", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_valtorgb);
+#endif
nodeRegisterType(ttype, &ntype);
}
@@ -109,6 +115,8 @@ static bNodeSocketTemplate cmp_node_rgbtobw_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_rgbtobw(bNode *UNUSED(node), float *out, float *in)
{
out[0] = rgb_to_bw(in);
@@ -137,6 +145,8 @@ static void node_composit_exec_rgbtobw(void *UNUSED(data), bNode *node, bNodeSta
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_rgbtobw(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -144,7 +154,9 @@ void register_node_type_cmp_rgbtobw(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_RGBTOBW, "RGB to BW", NODE_CLASS_CONVERTOR, 0);
node_type_socket_templates(&ntype, cmp_node_rgbtobw_in, cmp_node_rgbtobw_out);
node_type_size(&ntype, 80, 40, 120);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_rgbtobw);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_value.c b/source/blender/nodes/composite/nodes/node_composite_value.c
index 8d39b38c2fe..63ab4fcb58f 100644
--- a/source/blender/nodes/composite/nodes/node_composite_value.c
+++ b/source/blender/nodes/composite/nodes/node_composite_value.c
@@ -49,6 +49,8 @@ static void node_composit_init_value(bNodeTree *UNUSED(ntree), bNode *node, bNod
dval->max = FLT_MAX;
}
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void node_composit_exec_value(void *UNUSED(data), bNode *node, bNodeStack **UNUSED(in), bNodeStack **out)
{
bNodeSocket *sock= node->outputs.first;
@@ -57,6 +59,8 @@ static void node_composit_exec_value(void *UNUSED(data), bNode *node, bNodeStack
out[0]->vec[0]= val;
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_value(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -65,7 +69,9 @@ void register_node_type_cmp_value(bNodeTreeType *ttype)
node_type_socket_templates(&ntype, NULL, cmp_node_value_out);
node_type_init(&ntype, node_composit_init_value);
node_type_size(&ntype, 80, 40, 120);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_value);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_vecBlur.c b/source/blender/nodes/composite/nodes/node_composite_vecBlur.c
index e1a20a65227..62c2c02836a 100644
--- a/source/blender/nodes/composite/nodes/node_composite_vecBlur.c
+++ b/source/blender/nodes/composite/nodes/node_composite_vecBlur.c
@@ -45,7 +45,7 @@ static bNodeSocketTemplate cmp_node_vecblur_out[] = {
{ -1, 0, "" }
};
-
+#ifdef WITH_COMPOSITOR_LEGACY
static void node_composit_exec_vecblur(void *UNUSED(data), bNode *node, bNodeStack **in, bNodeStack **out)
{
@@ -85,6 +85,8 @@ static void node_composit_exec_vecblur(void *UNUSED(data), bNode *node, bNodeSta
free_compbuf(img);
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
static void node_composit_init_vecblur(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeBlurData *nbd = MEM_callocN(sizeof(NodeBlurData), "node blur data");
@@ -103,7 +105,9 @@ void register_node_type_cmp_vecblur(bNodeTreeType *ttype)
node_type_size(&ntype, 120, 80, 200);
node_type_init(&ntype, node_composit_init_vecblur);
node_type_storage(&ntype, "NodeBlurData", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_vecblur);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/composite/nodes/node_composite_viewer.c b/source/blender/nodes/composite/nodes/node_composite_viewer.c
index e97863a9463..6321b1def4d 100644
--- a/source/blender/nodes/composite/nodes/node_composite_viewer.c
+++ b/source/blender/nodes/composite/nodes/node_composite_viewer.c
@@ -41,6 +41,7 @@ static bNodeSocketTemplate cmp_node_viewer_in[] = {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
static void node_composit_exec_viewer(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(out))
{
@@ -122,6 +123,8 @@ static void node_composit_exec_viewer(void *data, bNode *node, bNodeStack **in,
}
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
static void node_composit_init_viewer(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
ImageUser *iuser = MEM_callocN(sizeof(ImageUser), "node image user");
@@ -142,7 +145,10 @@ void register_node_type_cmp_viewer(bNodeTreeType *ttype)
node_type_size(&ntype, 80, 60, 200);
node_type_init(&ntype, node_composit_init_viewer);
node_type_storage(&ntype, "ImageUser", node_free_standard_storage, node_copy_standard_storage);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_viewer);
+#endif
+
node_type_internal_connect(&ntype, NULL);
nodeRegisterType(ttype, &ntype);
diff --git a/source/blender/nodes/composite/nodes/node_composite_zcombine.c b/source/blender/nodes/composite/nodes/node_composite_zcombine.c
index e431ff17be5..3decbe8d230 100644
--- a/source/blender/nodes/composite/nodes/node_composite_zcombine.c
+++ b/source/blender/nodes/composite/nodes/node_composite_zcombine.c
@@ -48,6 +48,8 @@ static bNodeSocketTemplate cmp_node_zcombine_out[]= {
{ -1, 0, "" }
};
+#ifdef WITH_COMPOSITOR_LEGACY
+
static void do_zcombine(bNode *node, float *out, float *src1, float *z1, float *src2, float *z2)
{
float alpha;
@@ -219,9 +221,10 @@ static void node_composit_exec_zcombine(void *data, bNode *node, bNodeStack **in
out[0]->data= stackbuf;
}
-
}
+#endif /* WITH_COMPOSITOR_LEGACY */
+
void register_node_type_cmp_zcombine(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -229,7 +232,9 @@ void register_node_type_cmp_zcombine(bNodeTreeType *ttype)
node_type_base(ttype, &ntype, CMP_NODE_ZCOMBINE, "Z Combine", NODE_CLASS_OP_COLOR, NODE_OPTIONS);
node_type_socket_templates(&ntype, cmp_node_zcombine_in, cmp_node_zcombine_out);
node_type_size(&ntype, 80, 40, 120);
+#ifdef WITH_COMPOSITOR_LEGACY
node_type_exec(&ntype, node_composit_exec_zcombine);
+#endif
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/intern/node_common.c b/source/blender/nodes/intern/node_common.c
index 150bede4b7c..301dea22c17 100644
--- a/source/blender/nodes/intern/node_common.c
+++ b/source/blender/nodes/intern/node_common.c
@@ -45,7 +45,6 @@
#include "BKE_main.h"
#include "BLI_math.h"
#include "BKE_node.h"
-#include "BKE_utildefines.h"
#include "RNA_access.h"
#include "RNA_types.h"
@@ -224,13 +223,13 @@ bNodeTemplate node_group_template(bNode *node)
{
bNodeTemplate ntemp;
ntemp.type = NODE_GROUP;
- ntemp.ngroup = (bNodeTree*)node->id;
+ ntemp.ngroup = (bNodeTree *)node->id;
return ntemp;
}
void node_group_init(bNodeTree *ntree, bNode *node, bNodeTemplate *ntemp)
{
- node->id = (ID*)ntemp->ngroup;
+ node->id = (ID *)ntemp->ngroup;
/* NB: group socket input/output roles are inverted internally!
* Group "inputs" work as outputs in links and vice versa.
@@ -350,7 +349,7 @@ void node_group_edit_clear(bNode *node)
nodeGroupEditClear(inode);
}
-void node_group_link(bNodeTree *ntree, bNodeSocket *sock, int in_out)
+static void UNUSED_FUNCTION(node_group_link)(bNodeTree *ntree, bNodeSocket *sock, int in_out)
{
node_group_expose_socket(ntree, sock, in_out);
}
@@ -547,15 +546,6 @@ void register_node_type_frame(bNodeTreeType *ttype)
/* **************** REROUTE ******************** */
-static bNodeSocketTemplate node_reroute_in[]= {
- { SOCK_RGBA, 1, "Input", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
- { -1, 0, "" }
-};
-static bNodeSocketTemplate node_reroute_out[]= {
- { SOCK_RGBA, 0, "Output", 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
- { -1, 0, "" }
-};
-
/* simple, only a single input and output here */
static ListBase node_reroute_internal_connect(bNodeTree *ntree, bNode *node)
{
@@ -580,33 +570,95 @@ static ListBase node_reroute_internal_connect(bNodeTree *ntree, bNode *node)
return ret;
}
-static void node_reroute_update(bNodeTree *UNUSED(ntree), bNode *node)
+static void node_reroute_init(bNodeTree *ntree, bNode *node, bNodeTemplate *UNUSED(ntemp))
+{
+ /* Note: Cannot use socket templates for this, since it would reset the socket type
+ * on each file read via the template verification procedure.
+ */
+ nodeAddSocket(ntree, node, SOCK_IN, "Input", SOCK_RGBA);
+ nodeAddSocket(ntree, node, SOCK_OUT, "Output", SOCK_RGBA);
+}
+
+void register_node_type_reroute(bNodeTreeType *ttype)
+{
+ /* frame type is used for all tree types, needs dynamic allocation */
+ bNodeType *ntype= MEM_callocN(sizeof(bNodeType), "frame node type");
+
+ node_type_base(ttype, ntype, NODE_REROUTE, "Reroute", NODE_CLASS_LAYOUT, 0);
+ node_type_init(ntype, node_reroute_init);
+ node_type_internal_connect(ntype, node_reroute_internal_connect);
+
+ ntype->needs_free = 1;
+ nodeRegisterType(ttype, ntype);
+}
+
+static void node_reroute_inherit_type_recursive(bNodeTree *ntree, bNode *node)
{
bNodeSocket *input = node->inputs.first;
bNodeSocket *output = node->outputs.first;
int type = SOCK_FLOAT;
+ bNodeLink *link;
+
+ /* XXX it would be a little bit more efficient to restrict actual updates
+ * to rerout nodes connected to an updated node, but there's no reliable flag
+ * to indicate updated nodes (node->update is not set on linking).
+ */
+
+ node->done = 1;
+
+ /* recursive update */
+ for (link = ntree->links.first; link; link = link->next)
+ {
+ bNode *fromnode = link->fromnode;
+ bNode *tonode = link->tonode;
+ if (!tonode || !fromnode)
+ continue;
+
+ if (tonode == node && fromnode->type == NODE_REROUTE && !fromnode->done)
+ node_reroute_inherit_type_recursive(ntree, fromnode);
+
+ if (fromnode == node && tonode->type == NODE_REROUTE && !tonode->done)
+ node_reroute_inherit_type_recursive(ntree, tonode);
+ }
/* determine socket type from unambiguous input/output connection if possible */
if (input->limit==1 && input->link)
type = input->link->fromsock->type;
else if (output->limit==1 && output->link)
- type = output->link->tosock->type;
+ type = output->link->tosock->type;
- /* same type for input/output */
- nodeSocketSetType(input, type);
- nodeSocketSetType(output, type);
+ /* arbitrary, could also test output->type, both are the same */
+ if (input->type != type) {
+ /* same type for input/output */
+ nodeSocketSetType(input, type);
+ nodeSocketSetType(output, type);
+ }
}
-void register_node_type_reroute(bNodeTreeType *ttype)
+/* Global update function for Reroute node types.
+ * This depends on connected nodes, so must be done as a tree-wide update.
+ */
+void ntree_update_reroute_nodes(bNodeTree *ntree)
{
- /* frame type is used for all tree types, needs dynamic allocation */
- bNodeType *ntype= MEM_callocN(sizeof(bNodeType), "frame node type");
+ bNode *node;
- node_type_base(ttype, ntype, NODE_REROUTE, "Reroute", NODE_CLASS_LAYOUT, 0);
- node_type_socket_templates(ntype, node_reroute_in, node_reroute_out);
- node_type_internal_connect(ntype, node_reroute_internal_connect);
- node_type_update(ntype, node_reroute_update, NULL);
+ /* clear tags */
+ for (node = ntree->nodes.first; node; node = node->next)
+ node->done = 0;
- ntype->needs_free = 1;
- nodeRegisterType(ttype, ntype);
+ for (node = ntree->nodes.first; node; node = node->next)
+ if (node->type == NODE_REROUTE && !node->done)
+ node_reroute_inherit_type_recursive(ntree, node);
+}
+
+void BKE_node_tree_unlink_id_cb(void *calldata, struct ID *UNUSED(owner_id), struct bNodeTree *ntree)
+{
+ ID *id = (ID *)calldata;
+ bNode *node;
+
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->id == id) {
+ node->id = NULL;
+ }
+ }
}
diff --git a/source/blender/nodes/intern/node_common.h b/source/blender/nodes/intern/node_common.h
index f1bb837e483..00f72469b0f 100644
--- a/source/blender/nodes/intern/node_common.h
+++ b/source/blender/nodes/intern/node_common.h
@@ -59,4 +59,6 @@ void node_group_edit_clear(bNode *node);
void node_loop_update_tree(struct bNodeTree *ngroup);
+void ntree_update_reroute_nodes(struct bNodeTree *ntree);
+
#endif
diff --git a/source/blender/nodes/intern/node_util.c b/source/blender/nodes/intern/node_util.c
index 548a21ee35b..27258c45fe5 100644
--- a/source/blender/nodes/intern/node_util.c
+++ b/source/blender/nodes/intern/node_util.c
@@ -29,6 +29,7 @@
* \ingroup nodes
*/
+#include <limits.h>
#include "DNA_action_types.h"
#include "DNA_node_types.h"
@@ -72,6 +73,12 @@ void node_copy_standard_storage(bNode *orig_node, bNode *new_node)
new_node->storage= MEM_dupallocN(orig_node->storage);
}
+void *node_initexec_curves(bNode *node)
+{
+ curvemapping_initialize(node->storage);
+ return NULL; /* unused return */
+}
+
/**** Labels ****/
const char *node_blend_label(bNode *node)
@@ -116,42 +123,58 @@ ListBase node_internal_connect_default(bNodeTree *ntree, bNode *node)
return ret;
for (datatype=0; datatype < NUM_SOCKET_TYPES; ++datatype) {
- bNodeSocket *fromsock=NULL, *tosock=NULL;
+ bNodeSocket *fromsock, *tosock;
+ int fromindex, toindex;
bNodeLink *link;
/* Connect the first input of each type with outputs of the same type. */
+ fromindex = INT_MAX;
+ fromsock = NULL;
for (link=ntree->links.first; link; link=link->next) {
if (link->tonode == node && link->tosock->type == datatype) {
- fromsock = link->tosock;
- ++num_links_in;
- if (!fromsock_first)
- fromsock_first = fromsock;
- break;
+ int index = BLI_findindex(&node->inputs, link->tosock);
+ if (index < fromindex) {
+ fromindex = index;
+ fromsock = link->tosock;
+ }
}
}
+ if (fromsock) {
+ ++num_links_in;
+ if (!fromsock_first)
+ fromsock_first = fromsock;
+ }
+ toindex = INT_MAX;
+ tosock = NULL;
for (link=ntree->links.first; link; link=link->next) {
if (link->fromnode == node && link->fromsock->type == datatype) {
- tosock = link->fromsock;
- ++num_links_out;
- if (!tosock_first)
- tosock_first = tosock;
-
- if (fromsock) {
- bNodeLink *ilink = MEM_callocN(sizeof(bNodeLink), "internal node link");
- ilink->fromnode = node;
- ilink->fromsock = fromsock;
- ilink->tonode = node;
- ilink->tosock = tosock;
- /* internal link is always valid */
- ilink->flag |= NODE_LINK_VALID;
- BLI_addtail(&ret, ilink);
-
- ++num_reconnect;
+ int index = BLI_findindex(&node->outputs, link->fromsock);
+ if (index < toindex) {
+ toindex = index;
+ tosock = link->fromsock;
}
}
}
+ if (tosock) {
+ ++num_links_out;
+ if (!tosock_first)
+ tosock_first = tosock;
+
+ if (fromsock) {
+ bNodeLink *ilink = MEM_callocN(sizeof(bNodeLink), "internal node link");
+ ilink->fromnode = node;
+ ilink->fromsock = fromsock;
+ ilink->tonode = node;
+ ilink->tosock = tosock;
+ /* internal link is always valid */
+ ilink->flag |= NODE_LINK_VALID;
+ BLI_addtail(&ret, ilink);
+
+ ++num_reconnect;
+ }
+ }
}
/* if there is one input and one output link, but no reconnections by type,
diff --git a/source/blender/nodes/intern/node_util.h b/source/blender/nodes/intern/node_util.h
index 6f167e35262..95104df5fed 100644
--- a/source/blender/nodes/intern/node_util.h
+++ b/source/blender/nodes/intern/node_util.h
@@ -53,6 +53,7 @@ extern void node_free_standard_storage(struct bNode *node);
extern void node_copy_curves(struct bNode *orig_node, struct bNode *new_node);
extern void node_copy_standard_storage(struct bNode *orig_node, struct bNode *new_node);
+extern void *node_initexec_curves(struct bNode *node);
/**** Labels ****/
@@ -66,7 +67,7 @@ ListBase node_internal_connect_default(struct bNodeTree *ntree, struct bNode *no
#endif
// this is needed for inlining behavior
-#if defined _WIN32
+#if defined _MSC_VER
# define DO_INLINE __inline
#elif defined (__sun) || defined (__sun__)
# define DO_INLINE
diff --git a/source/blender/nodes/shader/node_shader_tree.c b/source/blender/nodes/shader/node_shader_tree.c
index a1d873231e7..ad907c317f8 100644
--- a/source/blender/nodes/shader/node_shader_tree.c
+++ b/source/blender/nodes/shader/node_shader_tree.c
@@ -49,12 +49,12 @@
#include "BKE_main.h"
#include "BKE_node.h"
#include "BKE_scene.h"
-#include "BKE_utildefines.h"
#include "GPU_material.h"
#include "RE_shader_ext.h"
+#include "node_common.h"
#include "node_exec.h"
#include "node_util.h"
#include "node_shader_util.h"
@@ -65,15 +65,15 @@ static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func)
Lamp *la;
World *wo;
- for (ma= main->mat.first; ma; ma= ma->id.next)
+ for (ma = main->mat.first; ma; ma = ma->id.next)
if (ma->nodetree)
func(calldata, &ma->id, ma->nodetree);
- for (la= main->lamp.first; la; la= la->id.next)
+ for (la = main->lamp.first; la; la = la->id.next)
if (la->nodetree)
func(calldata, &la->id, la->nodetree);
- for (wo= main->world.first; wo; wo= wo->id.next)
+ for (wo = main->world.first; wo; wo = wo->id.next)
if (wo->nodetree)
func(calldata, &wo->id, wo->nodetree);
}
@@ -100,7 +100,7 @@ static void localize(bNodeTree *localtree, bNodeTree *UNUSED(ntree))
bNode *node, *node_next;
/* replace muted nodes and reroute nodes by internal links */
- for (node= localtree->nodes.first; node; node= node_next) {
+ for (node = localtree->nodes.first; node; node = node_next) {
node_next = node->next;
if (node->flag & NODE_MUTED || node->type == NODE_REROUTE) {
@@ -115,15 +115,15 @@ static void local_sync(bNodeTree *localtree, bNodeTree *ntree)
bNode *lnode;
/* copy over contents of previews */
- for (lnode= localtree->nodes.first; lnode; lnode= lnode->next) {
+ for (lnode = localtree->nodes.first; lnode; lnode = lnode->next) {
if (ntreeNodeExists(ntree, lnode->new_node)) {
- bNode *node= lnode->new_node;
+ bNode *node = lnode->new_node;
if (node->preview && node->preview->rect) {
if (lnode->preview && lnode->preview->rect) {
- int xsize= node->preview->xsize;
- int ysize= node->preview->ysize;
- memcpy(node->preview->rect, lnode->preview->rect, 4*xsize + xsize*ysize*sizeof(char)*4);
+ int xsize = node->preview->xsize;
+ int ysize = node->preview->ysize;
+ memcpy(node->preview->rect, lnode->preview->rect, 4 * xsize + xsize * ysize * sizeof(char) * 4);
}
}
}
@@ -133,6 +133,8 @@ static void local_sync(bNodeTree *localtree, bNodeTree *ntree)
static void update(bNodeTree *ntree)
{
ntreeSetOutput(ntree);
+
+ ntree_update_reroute_nodes(ntree);
}
bNodeTreeType ntreeType_Shader = {
@@ -173,7 +175,7 @@ void (*node_shader_lamp_loop)(struct ShadeInput *, struct ShadeResult *);
void set_node_shader_lamp_loop(void (*lamp_loop_func)(ShadeInput *, ShadeResult *))
{
- node_shader_lamp_loop= lamp_loop_func;
+ node_shader_lamp_loop = lamp_loop_func;
}
@@ -200,10 +202,10 @@ bNodeTreeExec *ntreeShaderBeginExecTree(bNodeTree *ntree, int use_tree_data)
exec = ntree_exec_begin(ntree);
/* allocate the thread stack listbase array */
- exec->threadstack= MEM_callocN(BLENDER_MAX_THREADS*sizeof(ListBase), "thread stack array");
+ exec->threadstack = MEM_callocN(BLENDER_MAX_THREADS * sizeof(ListBase), "thread stack array");
- for (node= exec->nodetree->nodes.first; node; node= node->next)
- node->need_exec= 1;
+ for (node = exec->nodetree->nodes.first; node; node = node->next)
+ node->need_exec = 1;
if (use_tree_data) {
/* XXX this should not be necessary, but is still used for cmp/sha/tex nodes,
@@ -221,19 +223,19 @@ bNodeTreeExec *ntreeShaderBeginExecTree(bNodeTree *ntree, int use_tree_data)
void ntreeShaderEndExecTree(bNodeTreeExec *exec, int use_tree_data)
{
if (exec) {
- bNodeTree *ntree= exec->nodetree;
+ bNodeTree *ntree = exec->nodetree;
bNodeThreadStack *nts;
int a;
if (exec->threadstack) {
- for (a=0; a<BLENDER_MAX_THREADS; a++) {
- for (nts=exec->threadstack[a].first; nts; nts=nts->next)
+ for (a = 0; a < BLENDER_MAX_THREADS; a++) {
+ for (nts = exec->threadstack[a].first; nts; nts = nts->next)
if (nts->stack) MEM_freeN(nts->stack);
BLI_freelistN(&exec->threadstack[a]);
}
MEM_freeN(exec->threadstack);
- exec->threadstack= NULL;
+ exec->threadstack = NULL;
}
ntree_exec_end(exec);
@@ -257,8 +259,8 @@ void ntreeShaderExecTree(bNodeTree *ntree, ShadeInput *shi, ShadeResult *shr)
bNodeTreeExec *exec = ntree->execdata;
/* convert caller data to struct */
- scd.shi= shi;
- scd.shr= shr;
+ scd.shi = shi;
+ scd.shr = shr;
/* each material node has own local shaderesult, with optional copying */
memset(shr, 0, sizeof(ShadeResult));
@@ -273,14 +275,14 @@ void ntreeShaderExecTree(bNodeTree *ntree, ShadeInput *shi, ShadeResult *shr)
exec = ntree->execdata;
}
- nts= ntreeGetThreadStack(exec, shi->thread);
+ nts = ntreeGetThreadStack(exec, shi->thread);
ntreeExecThreadNodes(exec, nts, &scd, shi->thread);
ntreeReleaseThreadStack(nts);
// \note: set material back to preserved material
shi->mat = mat;
/* better not allow negative for now */
- if (shr->combined[0]<0.0f) shr->combined[0]= 0.0f;
- if (shr->combined[1]<0.0f) shr->combined[1]= 0.0f;
- if (shr->combined[2]<0.0f) shr->combined[2]= 0.0f;
+ if (shr->combined[0] < 0.0f) shr->combined[0] = 0.0f;
+ if (shr->combined[1] < 0.0f) shr->combined[1] = 0.0f;
+ if (shr->combined[2] < 0.0f) shr->combined[2] = 0.0f;
}
diff --git a/source/blender/nodes/shader/node_shader_util.c b/source/blender/nodes/shader/node_shader_util.c
index 9aa3c76e0a5..56704b981be 100644
--- a/source/blender/nodes/shader/node_shader_util.c
+++ b/source/blender/nodes/shader/node_shader_util.c
@@ -211,7 +211,7 @@ void node_gpu_stack_from_data(struct GPUNodeStack *gs, int type, bNodeStack *ns)
gs->name = "";
gs->hasinput= ns->hasinput && ns->data;
- /* XXX Commented out the ns->data check here, as it seems it's not alwas set,
+ /* XXX Commented out the ns->data check here, as it seems it's not always set,
* even though there *is* a valid connection/output... But that might need
* further investigation.
*/
diff --git a/source/blender/nodes/shader/nodes/node_shader_attribute.c b/source/blender/nodes/shader/nodes/node_shader_attribute.c
index 2821c3e3fe6..9c65323337e 100644
--- a/source/blender/nodes/shader/nodes/node_shader_attribute.c
+++ b/source/blender/nodes/shader/nodes/node_shader_attribute.c
@@ -36,7 +36,7 @@ static bNodeSocketTemplate sh_node_attribute_out[]= {
{ -1, 0, "" }
};
-static void node_shader_init_attribute(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_attribute(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeShaderAttribute *attr = MEM_callocN(sizeof(NodeShaderAttribute), "NodeShaderAttribute");
node->storage = attr;
diff --git a/source/blender/nodes/shader/nodes/node_shader_curves.c b/source/blender/nodes/shader/nodes/node_shader_curves.c
index be7f3c1c614..83cb1d33628 100644
--- a/source/blender/nodes/shader/nodes/node_shader_curves.c
+++ b/source/blender/nodes/shader/nodes/node_shader_curves.c
@@ -55,7 +55,7 @@ static void node_shader_exec_curve_vec(void *UNUSED(data), bNode *node, bNodeSta
curvemapping_evaluate3F(node->storage, out[0]->vec, vec);
}
-static void node_shader_init_curve_vec(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_curve_vec(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->storage= curvemapping_add(3, -1.0f, -1.0f, 1.0f, 1.0f);
}
@@ -80,6 +80,7 @@ void register_node_type_sh_curve_vec(bNodeTreeType *ttype)
node_type_init(&ntype, node_shader_init_curve_vec);
node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
node_type_exec(&ntype, node_shader_exec_curve_vec);
+ node_type_exec_new(&ntype, node_initexec_curves, NULL, NULL); /* only for its initexec func */
node_type_gpu(&ntype, gpu_shader_curve_vec);
nodeRegisterType(ttype, &ntype);
@@ -111,7 +112,7 @@ static void node_shader_exec_curve_rgb(void *UNUSED(data), bNode *node, bNodeSta
}
}
-static void node_shader_init_curve_rgb(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_curve_rgb(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->storage= curvemapping_add(4, 0.0f, 0.0f, 1.0f, 1.0f);
}
@@ -120,6 +121,8 @@ static int gpu_shader_curve_rgb(GPUMaterial *mat, bNode *node, GPUNodeStack *in,
{
float *array;
int size;
+
+ curvemapping_initialize(node->storage);
curvemapping_table_RGBA(node->storage, &array, &size);
return GPU_stack_link(mat, "curves_rgb", in, out, GPU_texture(size, array));
}
@@ -135,6 +138,7 @@ void register_node_type_sh_curve_rgb(bNodeTreeType *ttype)
node_type_init(&ntype, node_shader_init_curve_rgb);
node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
node_type_exec(&ntype, node_shader_exec_curve_rgb);
+ node_type_exec_new(&ntype, node_initexec_curves, NULL, NULL); /* only for its initexec func */
node_type_gpu(&ntype, gpu_shader_curve_rgb);
nodeRegisterType(ttype, &ntype);
diff --git a/source/blender/nodes/shader/nodes/node_shader_geom.c b/source/blender/nodes/shader/nodes/node_shader_geom.c
index aa108271ec3..f23158ab5d4 100644
--- a/source/blender/nodes/shader/nodes/node_shader_geom.c
+++ b/source/blender/nodes/shader/nodes/node_shader_geom.c
@@ -120,7 +120,7 @@ static void node_shader_exec_geom(void *data, bNode *node, bNodeStack **UNUSED(i
}
}
-static void node_shader_init_geometry(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_geometry(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->storage= MEM_callocN(sizeof(NodeGeometry), "NodeGeometry");
}
diff --git a/source/blender/nodes/shader/nodes/node_shader_mapping.c b/source/blender/nodes/shader/nodes/node_shader_mapping.c
index c260cc421b3..4508f66543e 100644
--- a/source/blender/nodes/shader/nodes/node_shader_mapping.c
+++ b/source/blender/nodes/shader/nodes/node_shader_mapping.c
@@ -67,7 +67,7 @@ static void node_shader_exec_mapping(void *UNUSED(data), bNode *node, bNodeStack
}
-static void node_shader_init_mapping(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_mapping(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->storage= add_tex_mapping();
}
diff --git a/source/blender/nodes/shader/nodes/node_shader_material.c b/source/blender/nodes/shader/nodes/node_shader_material.c
index 758660f7d0c..57865e072e7 100644
--- a/source/blender/nodes/shader/nodes/node_shader_material.c
+++ b/source/blender/nodes/shader/nodes/node_shader_material.c
@@ -200,7 +200,7 @@ static void node_shader_exec_material(void *data, bNode *node, bNodeStack **in,
}
-static void node_shader_init_material(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_material(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->custom1= SH_NODE_MAT_DIFF|SH_NODE_MAT_SPEC;
}
diff --git a/source/blender/nodes/shader/nodes/node_shader_particle_info.c b/source/blender/nodes/shader/nodes/node_shader_particle_info.c
index beefc0b6eae..ddfcb9476f4 100644
--- a/source/blender/nodes/shader/nodes/node_shader_particle_info.c
+++ b/source/blender/nodes/shader/nodes/node_shader_particle_info.c
@@ -28,9 +28,17 @@
#include "../node_shader_util.h"
static bNodeSocketTemplate outputs[] = {
- { SOCK_FLOAT, 0, "Age" },
- { SOCK_FLOAT, 0, "Lifetime" },
- { -1, 0, "" }
+ { SOCK_FLOAT, 0, "Index" },
+ { SOCK_FLOAT, 0, "Age" },
+ { SOCK_FLOAT, 0, "Lifetime" },
+ { SOCK_VECTOR, 0, "Location" },
+ #if 0 /* quaternion sockets not yet supported */
+ { SOCK_QUATERNION, 0, "Rotation" },
+ #endif
+ { SOCK_FLOAT, 0, "Size" },
+ { SOCK_VECTOR, 0, "Velocity" },
+ { SOCK_VECTOR, 0, "Angular Velocity" },
+ { -1, 0, "" }
};
/* node type definition */
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_brick.c b/source/blender/nodes/shader/nodes/node_shader_tex_brick.c
new file mode 100644
index 00000000000..11f7fb94ae0
--- /dev/null
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_brick.c
@@ -0,0 +1,90 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2005 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include "../node_shader_util.h"
+
+/* **************** OUTPUT ******************** */
+
+static bNodeSocketTemplate sh_node_tex_brick_in[]= {
+ { SOCK_VECTOR, 1, N_("Vector"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
+ { SOCK_RGBA, 1, N_("Color1"), 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f},
+ { SOCK_RGBA, 1, N_("Color2"), 0.2f, 0.2f, 0.2f, 1.0f, 0.0f, 1.0f},
+ { SOCK_RGBA, 1, N_("Mortar"), 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f},
+ { SOCK_FLOAT, 1, N_("Scale"), 5.0f, 0.0f, 0.0f, 0.0f, -1000.0f, 1000.0f},
+ { SOCK_FLOAT, 1, N_("Mortar Size"), 0.02f, 0.0f, 0.0f, 0.0f, 0.0f, 0.125f},
+ { SOCK_FLOAT, 1, N_("Bias"), 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f},
+ { SOCK_FLOAT, 1, N_("Brick Width"), 0.5f, 0.0f, 0.0f, 0.0f, 0.01f, 100.0f},
+ { SOCK_FLOAT, 1, N_("Row Height"), 0.25f, 0.0f, 0.0f, 0.0f, 0.01f, 100.0f},
+ { -1, 0, "" }
+};
+
+static bNodeSocketTemplate sh_node_tex_brick_out[]= {
+ { SOCK_RGBA, 0, N_("Color"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
+ { SOCK_FLOAT, 0, N_("Fac"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
+ { -1, 0, "" }
+};
+
+static void node_shader_init_tex_brick(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+{
+ NodeTexBrick *tex = MEM_callocN(sizeof(NodeTexBrick), "NodeTexBrick");
+ default_tex_mapping(&tex->base.tex_mapping);
+ default_color_mapping(&tex->base.color_mapping);
+
+ tex->offset = 0.5f;
+ tex->squash = 1.0f;
+ tex->offset_freq = 2;
+ tex->squash_freq = 2;
+
+ node->storage = tex;
+}
+
+static int node_shader_gpu_tex_brick(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out)
+{
+ if (!in[0].link)
+ in[0].link = GPU_attribute(CD_ORCO, "");
+
+ node_shader_gpu_tex_mapping(mat, node, in, out);
+
+ return GPU_stack_link(mat, "node_tex_brick", in, out);
+}
+
+/* node type definition */
+void register_node_type_sh_tex_brick(bNodeTreeType *ttype)
+{
+ static bNodeType ntype;
+
+ node_type_base(ttype, &ntype, SH_NODE_TEX_BRICK, "Brick Texture", NODE_CLASS_TEXTURE, NODE_OPTIONS);
+ node_type_compatibility(&ntype, NODE_NEW_SHADING);
+ node_type_socket_templates(&ntype, sh_node_tex_brick_in, sh_node_tex_brick_out);
+ node_type_size(&ntype, 150, 60, 200);
+ node_type_init(&ntype, node_shader_init_tex_brick);
+ node_type_storage(&ntype, "NodeTexBrick", node_free_standard_storage, node_copy_standard_storage);
+ node_type_exec(&ntype, NULL);
+ node_type_gpu(&ntype, node_shader_gpu_tex_brick);
+
+ nodeRegisterType(ttype, &ntype);
+}
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_checker.c b/source/blender/nodes/shader/nodes/node_shader_tex_checker.c
index dda451004a3..0c1e7dcb995 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_checker.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_checker.c
@@ -43,7 +43,7 @@ static bNodeSocketTemplate sh_node_tex_checker_out[]= {
{ -1, 0, "" }
};
-static void node_shader_init_tex_checker(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_tex_checker(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeTexChecker *tex = MEM_callocN(sizeof(NodeTexChecker), "NodeTexChecker");
default_tex_mapping(&tex->base.tex_mapping);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_coord.c b/source/blender/nodes/shader/nodes/node_shader_tex_coord.c
index 86f71f6f05b..62b1cabd491 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_coord.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_coord.c
@@ -57,7 +57,7 @@ void register_node_type_sh_tex_coord(bNodeTreeType *ttype)
{
static bNodeType ntype;
- node_type_base(ttype, &ntype, SH_NODE_TEX_COORD, "Texture Coordinate", NODE_CLASS_INPUT, 0);
+ node_type_base(ttype, &ntype, SH_NODE_TEX_COORD, "Texture Coordinate", NODE_CLASS_INPUT, NODE_OPTIONS);
node_type_compatibility(&ntype, NODE_NEW_SHADING);
node_type_socket_templates(&ntype, NULL, sh_node_tex_coord_out);
node_type_size(&ntype, 150, 60, 200);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c
index e3300c89a01..ace0f0c8774 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c
@@ -39,7 +39,7 @@ static bNodeSocketTemplate sh_node_tex_environment_out[]= {
{ -1, 0, "" }
};
-static void node_shader_init_tex_environment(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_tex_environment(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeTexEnvironment *tex = MEM_callocN(sizeof(NodeTexEnvironment), "NodeTexEnvironment");
default_tex_mapping(&tex->base.tex_mapping);
@@ -58,6 +58,8 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, GPUNod
{
Image *ima= (Image*)node->id;
ImageUser *iuser= NULL;
+ NodeTexImage *tex = node->storage;
+ int ncd = tex->color_space == SHD_COLORSPACE_NONE;
if (!ima)
return GPU_stack_link(mat, "node_tex_environment_empty", in, out);
@@ -67,7 +69,10 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, GPUNod
node_shader_gpu_tex_mapping(mat, node, in, out);
- return GPU_stack_link(mat, "node_tex_environment", in, out, GPU_image(ima, iuser));
+ if (out[0].link && GPU_material_do_color_management(mat))
+ GPU_link(mat, "srgb_to_linearrgb", out[0].link, &out[0].link);
+
+ return GPU_stack_link(mat, "node_tex_environment", in, out, GPU_image(ima, iuser, ncd));
}
/* node type definition */
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_gradient.c b/source/blender/nodes/shader/nodes/node_shader_tex_gradient.c
index 20a524ad00c..a7f869155fa 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_gradient.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_gradient.c
@@ -40,7 +40,7 @@ static bNodeSocketTemplate sh_node_tex_gradient_out[]= {
{ -1, 0, "" }
};
-static void node_shader_init_tex_gradient(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_tex_gradient(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeTexGradient *tex = MEM_callocN(sizeof(NodeTexGradient), "NodeTexGradient");
default_tex_mapping(&tex->base.tex_mapping);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_image.c b/source/blender/nodes/shader/nodes/node_shader_tex_image.c
index d4d43c1430c..d6c757222b9 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_image.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_image.c
@@ -40,7 +40,7 @@ static bNodeSocketTemplate sh_node_tex_image_out[]= {
{ -1, 0, "" }
};
-static void node_shader_init_tex_image(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_tex_image(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeTexImage *tex = MEM_callocN(sizeof(NodeTexImage), "NodeTexImage");
default_tex_mapping(&tex->base.tex_mapping);
@@ -58,6 +58,8 @@ static int node_shader_gpu_tex_image(GPUMaterial *mat, bNode *node, GPUNodeStack
{
Image *ima= (Image*)node->id;
ImageUser *iuser= NULL;
+ NodeTexImage *tex = node->storage;
+ int ncd = tex->color_space == SHD_COLORSPACE_NONE;
if (!ima)
return GPU_stack_link(mat, "node_tex_image_empty", in, out);
@@ -67,7 +69,10 @@ static int node_shader_gpu_tex_image(GPUMaterial *mat, bNode *node, GPUNodeStack
node_shader_gpu_tex_mapping(mat, node, in, out);
- return GPU_stack_link(mat, "node_tex_image", in, out, GPU_image(ima, iuser));
+ if (out[0].link && GPU_material_do_color_management(mat))
+ GPU_link(mat, "srgb_to_linearrgb", out[0].link, &out[0].link);
+
+ return GPU_stack_link(mat, "node_tex_image", in, out, GPU_image(ima, iuser, ncd));
}
/* node type definition */
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_magic.c b/source/blender/nodes/shader/nodes/node_shader_tex_magic.c
index 8d7607a9c72..b9f1b5c1d21 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_magic.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_magic.c
@@ -42,7 +42,7 @@ static bNodeSocketTemplate sh_node_tex_magic_out[]= {
{ -1, 0, "" }
};
-static void node_shader_init_tex_magic(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_tex_magic(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeTexMagic *tex = MEM_callocN(sizeof(NodeTexMagic), "NodeTexMagic");
default_tex_mapping(&tex->base.tex_mapping);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c
index e71695df680..60b4f65f0b4 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c
@@ -46,7 +46,7 @@ static bNodeSocketTemplate sh_node_tex_musgrave_out[]= {
{ -1, 0, "" }
};
-static void node_shader_init_tex_musgrave(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_tex_musgrave(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeTexMusgrave *tex = MEM_callocN(sizeof(NodeTexMusgrave), "NodeTexMusgrave");
default_tex_mapping(&tex->base.tex_mapping);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_noise.c b/source/blender/nodes/shader/nodes/node_shader_tex_noise.c
index 95b81c5e1fb..bd049300048 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_noise.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_noise.c
@@ -43,7 +43,7 @@ static bNodeSocketTemplate sh_node_tex_noise_out[]= {
{ -1, 0, "" }
};
-static void node_shader_init_tex_noise(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_tex_noise(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeTexNoise *tex = MEM_callocN(sizeof(NodeTexNoise), "NodeTexNoise");
default_tex_mapping(&tex->base.tex_mapping);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_sky.c b/source/blender/nodes/shader/nodes/node_shader_tex_sky.c
index 48020c10aa0..977d689ace6 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_sky.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_sky.c
@@ -39,7 +39,7 @@ static bNodeSocketTemplate sh_node_tex_sky_out[]= {
{ -1, 0, "" }
};
-static void node_shader_init_tex_sky(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_tex_sky(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeTexSky *tex = MEM_callocN(sizeof(NodeTexSky), "NodeTexSky");
default_tex_mapping(&tex->base.tex_mapping);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c b/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c
index e654666db26..22baa3853ac 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c
@@ -41,7 +41,7 @@ static bNodeSocketTemplate sh_node_tex_voronoi_out[]= {
{ -1, 0, "" }
};
-static void node_shader_init_tex_voronoi(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_tex_voronoi(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeTexVoronoi *tex = MEM_callocN(sizeof(NodeTexVoronoi), "NodeTexVoronoi");
default_tex_mapping(&tex->base.tex_mapping);
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_wave.c b/source/blender/nodes/shader/nodes/node_shader_tex_wave.c
index 8a6994e7b73..8a099521ee9 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_wave.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_wave.c
@@ -44,7 +44,7 @@ static bNodeSocketTemplate sh_node_tex_wave_out[]= {
{ -1, 0, "" }
};
-static void node_shader_init_tex_wave(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_tex_wave(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
NodeTexWave *tex = MEM_callocN(sizeof(NodeTexWave), "NodeTexWave");
default_tex_mapping(&tex->base.tex_mapping);
diff --git a/source/blender/nodes/shader/nodes/node_shader_texture.c b/source/blender/nodes/shader/nodes/node_shader_texture.c
index 3f90d4fbcd5..73c3b846fe3 100644
--- a/source/blender/nodes/shader/nodes/node_shader_texture.c
+++ b/source/blender/nodes/shader/nodes/node_shader_texture.c
@@ -122,7 +122,7 @@ static int gpu_shader_texture(GPUMaterial *mat, bNode *node, GPUNodeStack *in, G
Tex *tex = (Tex*)node->id;
if (tex && tex->type == TEX_IMAGE && tex->ima) {
- GPUNodeLink *texlink = GPU_image(tex->ima, NULL);
+ GPUNodeLink *texlink = GPU_image(tex->ima, NULL, FALSE);
return GPU_stack_link(mat, "texture_image", in, out, texlink);
}
else
diff --git a/source/blender/nodes/shader/nodes/node_shader_valToRgb.c b/source/blender/nodes/shader/nodes/node_shader_valToRgb.c
index fb3316c2036..d3094200f83 100644
--- a/source/blender/nodes/shader/nodes/node_shader_valToRgb.c
+++ b/source/blender/nodes/shader/nodes/node_shader_valToRgb.c
@@ -57,7 +57,7 @@ static void node_shader_exec_valtorgb(void *UNUSED(data), bNode *node, bNodeStac
}
}
-static void node_shader_init_valtorgb(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void node_shader_init_valtorgb(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->storage= add_colorband(1);
}
diff --git a/source/blender/nodes/texture/node_texture_tree.c b/source/blender/nodes/texture/node_texture_tree.c
index 1a11a7075b8..9656d93f1b0 100644
--- a/source/blender/nodes/texture/node_texture_tree.c
+++ b/source/blender/nodes/texture/node_texture_tree.c
@@ -45,6 +45,7 @@
#include "BKE_main.h"
#include "BKE_node.h"
+#include "node_common.h"
#include "node_exec.h"
#include "node_util.h"
#include "NOD_texture.h"
@@ -57,7 +58,7 @@
static void foreach_nodetree(Main *main, void *calldata, bNodeTreeCallback func)
{
Tex *tx;
- for (tx= main->tex.first; tx; tx= tx->id.next) {
+ for (tx = main->tex.first; tx; tx = tx->id.next) {
if (tx->nodetree) {
func(calldata, &tx->id, tx->nodetree);
}
@@ -82,7 +83,7 @@ static void localize(bNodeTree *localtree, bNodeTree *UNUSED(ntree))
bNode *node, *node_next;
/* replace muted nodes and reroute nodes by internal links */
- for (node= localtree->nodes.first; node; node= node_next) {
+ for (node = localtree->nodes.first; node; node = node_next) {
node_next = node->next;
if (node->flag & NODE_MUTED || node->type == NODE_REROUTE) {
@@ -97,21 +98,26 @@ static void local_sync(bNodeTree *localtree, bNodeTree *ntree)
bNode *lnode;
/* copy over contents of previews */
- for (lnode= localtree->nodes.first; lnode; lnode= lnode->next) {
+ for (lnode = localtree->nodes.first; lnode; lnode = lnode->next) {
if (ntreeNodeExists(ntree, lnode->new_node)) {
- bNode *node= lnode->new_node;
+ bNode *node = lnode->new_node;
if (node->preview && node->preview->rect) {
if (lnode->preview && lnode->preview->rect) {
- int xsize= node->preview->xsize;
- int ysize= node->preview->ysize;
- memcpy(node->preview->rect, lnode->preview->rect, 4*xsize + xsize*ysize*sizeof(char)*4);
+ int xsize = node->preview->xsize;
+ int ysize = node->preview->ysize;
+ memcpy(node->preview->rect, lnode->preview->rect, 4 * xsize + xsize * ysize * sizeof(char) * 4);
}
}
}
}
}
+static void update(bNodeTree *ntree)
+{
+ ntree_update_reroute_nodes(ntree);
+}
+
bNodeTreeType ntreeType_Texture = {
/* type */ NTREE_TEXTURE,
/* id_name */ "NTTexture Nodetree",
@@ -125,7 +131,7 @@ bNodeTreeType ntreeType_Texture = {
/* localize */ localize,
/* local_sync */ local_sync,
/* local_merge */ NULL,
- /* update */ NULL,
+ /* update */ update,
/* update_node */ NULL,
/* validate_link */ NULL,
/* internal_connect */ node_internal_connect_default
@@ -135,15 +141,15 @@ int ntreeTexTagAnimated(bNodeTree *ntree)
{
bNode *node;
- if (ntree==NULL) return 0;
+ if (ntree == NULL) return 0;
- for (node= ntree->nodes.first; node; node= node->next) {
- if (node->type==TEX_NODE_CURVE_TIME) {
+ for (node = ntree->nodes.first; node; node = node->next) {
+ if (node->type == TEX_NODE_CURVE_TIME) {
nodeUpdate(ntree, node);
return 1;
}
- else if (node->type==NODE_GROUP) {
- if ( ntreeTexTagAnimated((bNodeTree *)node->id) ) {
+ else if (node->type == NODE_GROUP) {
+ if (ntreeTexTagAnimated((bNodeTree *)node->id) ) {
return 1;
}
}
@@ -172,10 +178,10 @@ bNodeTreeExec *ntreeTexBeginExecTree(bNodeTree *ntree, int use_tree_data)
exec = ntree_exec_begin(ntree);
/* allocate the thread stack listbase array */
- exec->threadstack= MEM_callocN(BLENDER_MAX_THREADS*sizeof(ListBase), "thread stack array");
+ exec->threadstack = MEM_callocN(BLENDER_MAX_THREADS * sizeof(ListBase), "thread stack array");
- for (node= exec->nodetree->nodes.first; node; node= node->next)
- node->need_exec= 1;
+ for (node = exec->nodetree->nodes.first; node; node = node->next)
+ node->need_exec = 1;
if (use_tree_data) {
/* XXX this should not be necessary, but is still used for cmp/sha/tex nodes,
@@ -194,9 +200,9 @@ static void tex_free_delegates(bNodeTreeExec *exec)
bNodeStack *ns;
int th, a;
- for (th=0; th<BLENDER_MAX_THREADS; th++)
- for (nts=exec->threadstack[th].first; nts; nts=nts->next)
- for (ns= nts->stack, a=0; a<exec->stacksize; a++, ns++)
+ for (th = 0; th < BLENDER_MAX_THREADS; th++)
+ for (nts = exec->threadstack[th].first; nts; nts = nts->next)
+ for (ns = nts->stack, a = 0; a < exec->stacksize; a++, ns++)
if (ns->data && !ns->is_copy)
MEM_freeN(ns->data);
}
@@ -207,21 +213,21 @@ static void tex_free_delegates(bNodeTreeExec *exec)
void ntreeTexEndExecTree(bNodeTreeExec *exec, int use_tree_data)
{
if (exec) {
- bNodeTree *ntree= exec->nodetree;
+ bNodeTree *ntree = exec->nodetree;
bNodeThreadStack *nts;
int a;
if (exec->threadstack) {
tex_free_delegates(exec);
- for (a=0; a<BLENDER_MAX_THREADS; a++) {
- for (nts=exec->threadstack[a].first; nts; nts=nts->next)
+ for (a = 0; a < BLENDER_MAX_THREADS; a++) {
+ for (nts = exec->threadstack[a].first; nts; nts = nts->next)
if (nts->stack) MEM_freeN(nts->stack);
BLI_freelistN(&exec->threadstack[a]);
}
MEM_freeN(exec->threadstack);
- exec->threadstack= NULL;
+ exec->threadstack = NULL;
}
ntree_exec_end(exec);
@@ -248,10 +254,10 @@ int ntreeTexExecTree(
MTex *mtex
) {
TexCallData data;
- float *nor= texres->nor;
+ float *nor = texres->nor;
int retval = TEX_INT;
bNodeThreadStack *nts = NULL;
- bNodeTreeExec *exec= nodes->execdata;
+ bNodeTreeExec *exec = nodes->execdata;
data.co = co;
data.dxt = dxt;
@@ -261,9 +267,9 @@ int ntreeTexExecTree(
data.do_preview = preview;
data.thread = thread;
data.which_output = which_output;
- data.cfra= cfra;
- data.mtex= mtex;
- data.shi= shi;
+ data.cfra = cfra;
+ data.mtex = mtex;
+ data.shi = shi;
/* ensure execdata is only initialized once */
if (!exec) {
@@ -272,10 +278,10 @@ int ntreeTexExecTree(
ntreeTexBeginExecTree(nodes, 1);
BLI_unlock_thread(LOCK_NODES);
- exec= nodes->execdata;
+ exec = nodes->execdata;
}
- nts= ntreeGetThreadStack(exec, thread);
+ nts = ntreeGetThreadStack(exec, thread);
ntreeExecThreadNodes(exec, nts, &data, thread);
ntreeReleaseThreadStack(nts);
@@ -283,7 +289,7 @@ int ntreeTexExecTree(
retval |= TEX_RGB;
/* confusing stuff; the texture output node sets this to NULL to indicate no normal socket was set
* however, the texture code checks this for other reasons (namely, a normal is required for material) */
- texres->nor= nor;
+ texres->nor = nor;
return retval;
}
diff --git a/source/blender/nodes/texture/node_texture_util.c b/source/blender/nodes/texture/node_texture_util.c
index 53f1aa82f60..5e58b74ac3a 100644
--- a/source/blender/nodes/texture/node_texture_util.c
+++ b/source/blender/nodes/texture/node_texture_util.c
@@ -49,8 +49,6 @@
#include <assert.h>
#include "node_texture_util.h"
-#define PREV_RES 128 /* default preview resolution */
-
static void tex_call_delegate(TexDelegate *dg, float *out, TexParams *params, short thread)
{
if (dg->node->need_exec) {
diff --git a/source/blender/nodes/texture/node_texture_util.h b/source/blender/nodes/texture/node_texture_util.h
index 7d8c4ce232c..e938e6fc419 100644
--- a/source/blender/nodes/texture/node_texture_util.h
+++ b/source/blender/nodes/texture/node_texture_util.h
@@ -61,6 +61,8 @@
#include "node_util.h"
+#include "NOD_texture.h"
+
#include "BLI_math.h"
#include "BLI_blenlib.h"
#include "BLI_rand.h"
diff --git a/source/blender/nodes/texture/nodes/node_texture_bricks.c b/source/blender/nodes/texture/nodes/node_texture_bricks.c
index 7435034845f..f6259962529 100644
--- a/source/blender/nodes/texture/nodes/node_texture_bricks.c
+++ b/source/blender/nodes/texture/nodes/node_texture_bricks.c
@@ -50,7 +50,7 @@ static bNodeSocketTemplate outputs[]= {
{ -1, 0, "" }
};
-static void init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->custom3 = 0.5; /* offset */
node->custom4 = 1.0; /* squash */
diff --git a/source/blender/nodes/texture/nodes/node_texture_curves.c b/source/blender/nodes/texture/nodes/node_texture_curves.c
index a56d69a6657..6ccb5e1e83f 100644
--- a/source/blender/nodes/texture/nodes/node_texture_curves.c
+++ b/source/blender/nodes/texture/nodes/node_texture_curves.c
@@ -49,6 +49,7 @@ static void time_colorfn(float *out, TexParams *p, bNode *node, bNodeStack **UNU
if (node->custom1 < node->custom2)
fac = (p->cfra - node->custom1)/(float)(node->custom2-node->custom1);
+ curvemapping_initialize(node->storage);
fac = curvemapping_evaluateF(node->storage, 0, fac);
out[0] = CLAMPIS(fac, 0.0f, 1.0f);
}
@@ -59,7 +60,7 @@ static void time_exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out
}
-static void time_init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void time_init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->custom1= 1;
node->custom2= 250;
@@ -76,6 +77,7 @@ void register_node_type_tex_curve_time(bNodeTreeType *ttype)
node_type_init(&ntype, time_init);
node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
node_type_exec(&ntype, time_exec);
+ node_type_exec_new(&ntype, node_initexec_curves, NULL, NULL); /* only for its initexec func */
nodeRegisterType(ttype, &ntype);
}
@@ -105,7 +107,7 @@ static void rgb_exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out)
tex_output(node, in, out[0], &rgb_colorfn, data);
}
-static void rgb_init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void rgb_init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->storage= curvemapping_add(4, 0.0f, 0.0f, 1.0f, 1.0f);
}
@@ -120,6 +122,7 @@ void register_node_type_tex_curve_rgb(bNodeTreeType *ttype)
node_type_init(&ntype, rgb_init);
node_type_storage(&ntype, "CurveMapping", node_free_curves, node_copy_curves);
node_type_exec(&ntype, rgb_exec);
+ node_type_exec_new(&ntype, node_initexec_curves, NULL, NULL); /* only for its initexec func */
nodeRegisterType(ttype, &ntype);
}
diff --git a/source/blender/nodes/texture/nodes/node_texture_image.c b/source/blender/nodes/texture/nodes/node_texture_image.c
index d49a1edd70c..7ce91c37295 100644
--- a/source/blender/nodes/texture/nodes/node_texture_image.c
+++ b/source/blender/nodes/texture/nodes/node_texture_image.c
@@ -86,7 +86,7 @@ static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out)
tex_output(node, in, out[0], &colorfn, data);
}
-static void init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
ImageUser *iuser= MEM_callocN(sizeof(ImageUser), "node image user");
node->storage= iuser;
diff --git a/source/blender/nodes/texture/nodes/node_texture_output.c b/source/blender/nodes/texture/nodes/node_texture_output.c
index 9383d5675cb..fdd3b97ad59 100644
--- a/source/blender/nodes/texture/nodes/node_texture_output.c
+++ b/source/blender/nodes/texture/nodes/node_texture_output.c
@@ -65,7 +65,7 @@ static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **UNUSED(o
tex_input_rgba(&target->tr, in[0], &params, cdata->thread);
target->tin = (target->tr + target->tg + target->tb) / 3.0f;
- target->talpha = 1;
+ target->talpha = TRUE;
if (target->nor) {
if (in[1] && in[1]->hasinput)
@@ -141,7 +141,7 @@ static void assign_index(struct bNode *node)
node->custom1 = index;
}
-static void init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
TexNodeOutput *tno = MEM_callocN(sizeof(TexNodeOutput), "TEX_output");
node->storage= tno;
diff --git a/source/blender/nodes/texture/nodes/node_texture_proc.c b/source/blender/nodes/texture/nodes/node_texture_proc.c
index 3b33383c73b..102f6e1c428 100644
--- a/source/blender/nodes/texture/nodes/node_texture_proc.c
+++ b/source/blender/nodes/texture/nodes/node_texture_proc.c
@@ -281,7 +281,7 @@ ProcDef(stucci)
/* --- */
-static void init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
Tex *tex = MEM_callocN(sizeof(Tex), "Tex");
node->storage= tex;
diff --git a/source/blender/nodes/texture/nodes/node_texture_texture.c b/source/blender/nodes/texture/nodes/node_texture_texture.c
index 98382e24290..4832f19f2c7 100644
--- a/source/blender/nodes/texture/nodes/node_texture_texture.c
+++ b/source/blender/nodes/texture/nodes/node_texture_texture.c
@@ -65,7 +65,7 @@ static void colorfn(float *out, TexParams *p, bNode *node, bNodeStack **in, shor
if (node->custom2 || node->need_exec==0) {
/* this node refers to its own texture tree! */
- copy_v4_v4(out, (fabs(co[0] - co[1]) < 0.01) ? white : red);
+ copy_v4_v4(out, (fabsf(co[0] - co[1]) < 0.01f) ? white : red);
}
else if (nodetex) {
TexResult texres;
diff --git a/source/blender/nodes/texture/nodes/node_texture_valToRgb.c b/source/blender/nodes/texture/nodes/node_texture_valToRgb.c
index 10db0debd5b..515613509f6 100644
--- a/source/blender/nodes/texture/nodes/node_texture_valToRgb.c
+++ b/source/blender/nodes/texture/nodes/node_texture_valToRgb.c
@@ -57,7 +57,7 @@ static void valtorgb_exec(void *data, bNode *node, bNodeStack **in, bNodeStack *
tex_output(node, in, out[0], &valtorgb_colorfn, data);
}
-static void valtorgb_init(bNodeTree *UNUSED(ntree), bNode* node, bNodeTemplate *UNUSED(ntemp))
+static void valtorgb_init(bNodeTree *UNUSED(ntree), bNode *node, bNodeTemplate *UNUSED(ntemp))
{
node->storage = add_colorband(1);
}
diff --git a/source/blender/nodes/texture/nodes/node_texture_viewer.c b/source/blender/nodes/texture/nodes/node_texture_viewer.c
index 03a94d1df67..bc31bef59d8 100644
--- a/source/blender/nodes/texture/nodes/node_texture_viewer.c
+++ b/source/blender/nodes/texture/nodes/node_texture_viewer.c
@@ -34,11 +34,11 @@
#include "NOD_texture.h"
#include <math.h>
-static bNodeSocketTemplate inputs[]= {
+static bNodeSocketTemplate inputs[] = {
{ SOCK_RGBA, 1, N_("Color"), 1.0f, 0.0f, 0.0f, 1.0f },
{ -1, 0, "" }
};
-static bNodeSocketTemplate outputs[]= {
+static bNodeSocketTemplate outputs[] = {
{ -1, 0, "" }
};
diff --git a/source/blender/opencl/intern/OCL_opencl.c b/source/blender/opencl/intern/OCL_opencl.c
index fa22acbc1a2..e3130e16bde 100644
--- a/source/blender/opencl/intern/OCL_opencl.c
+++ b/source/blender/opencl/intern/OCL_opencl.c
@@ -22,14 +22,14 @@
#include "OCL_opencl.h"
-void OCL_init()
+void OCL_init(void)
{
#ifdef _WIN32
- const char *path = "OpenCL.dll";
+ const char *path = "OpenCL.dll";
#elif defined(__APPLE__)
- const char *path = "/Library/Frameworks/OpenCL.framework/OpenCL";
+ const char *path = "/Library/Frameworks/OpenCL.framework/OpenCL";
#else
- const char *path = "libOpenCL.so";
+ const char *path = "libOpenCL.so";
#endif
clewInit(path);
diff --git a/source/blender/python/bmesh/bmesh_py_api.c b/source/blender/python/bmesh/bmesh_py_api.c
index f3e5b300ced..e02efc79da0 100644
--- a/source/blender/python/bmesh/bmesh_py_api.c
+++ b/source/blender/python/bmesh/bmesh_py_api.c
@@ -97,9 +97,9 @@ static PyObject *bpy_bm_from_edit_mesh(PyObject *UNUSED(self), PyObject *value)
}
static struct PyMethodDef BPy_BM_methods[] = {
- {"new", (PyCFunction)bpy_bm_new, METH_NOARGS, bpy_bm_new_doc},
- {"from_edit_mesh", (PyCFunction)bpy_bm_from_edit_mesh, METH_O, bpy_bm_from_edit_mesh_doc},
- {NULL, NULL, 0, NULL}
+ {"new", (PyCFunction)bpy_bm_new, METH_NOARGS, bpy_bm_new_doc},
+ {"from_edit_mesh", (PyCFunction)bpy_bm_from_edit_mesh, METH_O, bpy_bm_from_edit_mesh_doc},
+ {NULL, NULL, 0, NULL}
};
PyDoc_STRVAR(BPy_BM_doc,
diff --git a/source/blender/python/bmesh/bmesh_py_ops.c b/source/blender/python/bmesh/bmesh_py_ops.c
index 53ddcecd7a8..fb5b94249e6 100644
--- a/source/blender/python/bmesh/bmesh_py_ops.c
+++ b/source/blender/python/bmesh/bmesh_py_ops.c
@@ -42,6 +42,8 @@
#include "bmesh.h"
+#include "bmesh_py_ops.h" /* own include */
+
#include "bmesh_py_types.h"
#include "bmesh_py_utils.h" /* own include */
@@ -69,7 +71,7 @@ typedef struct {
const char *opname;
} BPy_BMeshOpFunc;
-PyObject *bpy_bmesh_op_CreatePyObject(const char *opname)
+static PyObject *bpy_bmesh_op_CreatePyObject(const char *opname)
{
BPy_BMeshOpFunc *self = PyObject_New(BPy_BMeshOpFunc, &bmesh_op_Type);
@@ -109,7 +111,8 @@ static PyObject *pyrna_op_call(BPy_BMeshOpFunc *self, PyObject *args, PyObject *
}
/* TODO - error check this!, though we do the error check on attribute access */
- BMO_op_init(bm, &bmop, self->opname);
+ /* TODO - make flags optional */
+ BMO_op_init(bm, &bmop, BMO_FLAG_DEFAULTS, self->opname);
if (kw && PyDict_Size(kw) > 0) {
/* setup properties, see bpy_rna.c: pyrna_py_to_prop()
@@ -419,7 +422,7 @@ static PyObject *bpy_bmesh_fmod_getattro(PyObject *UNUSED(self), PyObject *pynam
}
PyErr_Format(PyExc_AttributeError,
- "BMeshOpsModule: , operator \"%.200s\" doesn't exist",
+ "BMeshOpsModule: operator \"%.200s\" doesn't exist",
name);
return NULL;
}
diff --git a/source/blender/python/bmesh/bmesh_py_types.c b/source/blender/python/bmesh/bmesh_py_types.c
index f7a7d379ba4..fd5fa63647b 100644
--- a/source/blender/python/bmesh/bmesh_py_types.c
+++ b/source/blender/python/bmesh/bmesh_py_types.c
@@ -55,34 +55,34 @@
/* scene does not use BM_* flags. */
PyC_FlagSet bpy_bm_scene_vert_edge_face_flags[] = {
- {1, "VERT"},
- {2, "EDGE"},
- {4, "FACE"},
- {0, NULL}
+ {1, "VERT"},
+ {2, "EDGE"},
+ {4, "FACE"},
+ {0, NULL}
};
PyC_FlagSet bpy_bm_htype_vert_edge_face_flags[] = {
- {BM_VERT, "VERT"},
- {BM_EDGE, "EDGE"},
- {BM_FACE, "FACE"},
- {0, NULL}
+ {BM_VERT, "VERT"},
+ {BM_EDGE, "EDGE"},
+ {BM_FACE, "FACE"},
+ {0, NULL}
};
PyC_FlagSet bpy_bm_htype_all_flags[] = {
- {BM_VERT, "VERT"},
- {BM_LOOP, "EDGE"},
- {BM_FACE, "FACE"},
- {BM_LOOP, "LOOP"},
- {0, NULL}
+ {BM_VERT, "VERT"},
+ {BM_LOOP, "EDGE"},
+ {BM_FACE, "FACE"},
+ {BM_LOOP, "LOOP"},
+ {0, NULL}
};
PyC_FlagSet bpy_bm_hflag_all_flags[] = {
- {BM_ELEM_SELECT, "SELECT"},
- {BM_ELEM_HIDDEN, "HIDE"},
- {BM_ELEM_SEAM, "SEAM"},
- {BM_ELEM_SMOOTH, "SMOOTH"},
- {BM_ELEM_TAG, "TAG"},
- {0, NULL}
+ {BM_ELEM_SELECT, "SELECT"},
+ {BM_ELEM_HIDDEN, "HIDE"},
+ {BM_ELEM_SEAM, "SEAM"},
+ {BM_ELEM_SMOOTH, "SMOOTH"},
+ {BM_ELEM_TAG, "TAG"},
+ {0, NULL}
};
/* py-type definitions
@@ -189,7 +189,7 @@ static int bpy_bm_elem_index_set(BPy_BMElem *self, PyObject *value, void *UNUSED
/* Mesh
* ^^^^ */
-/* doc-strings for all uses of this funcion */
+/* doc-strings for all uses of this function */
PyDoc_STRVAR(bpy_bmvertseq_doc,
"This meshes vert sequence (read-only).\n\n:type: :class:`BMVertSeq`"
@@ -556,131 +556,131 @@ static PyObject *bpy_bmelemseq_layers_get(BPy_BMElemSeq *self, void *htype)
}
static PyGetSetDef bpy_bmesh_getseters[] = {
- {(char *)"verts", (getter)bpy_bmvertseq_get, (setter)NULL, (char *)bpy_bmvertseq_doc, NULL},
- {(char *)"edges", (getter)bpy_bmedgeseq_get, (setter)NULL, (char *)bpy_bmedgeseq_doc, NULL},
- {(char *)"faces", (getter)bpy_bmfaceseq_get, (setter)NULL, (char *)bpy_bmfaceseq_doc, NULL},
- {(char *)"loops", (getter)bpy_bmloopseq_get, (setter)NULL, (char *)bpy_bmloopseq_doc, NULL},
- {(char *)"select_mode", (getter)bpy_bmesh_select_mode_get, (setter)bpy_bmesh_select_mode_set, (char *)bpy_bmesh_select_mode_doc, NULL},
+ {(char *)"verts", (getter)bpy_bmvertseq_get, (setter)NULL, (char *)bpy_bmvertseq_doc, NULL},
+ {(char *)"edges", (getter)bpy_bmedgeseq_get, (setter)NULL, (char *)bpy_bmedgeseq_doc, NULL},
+ {(char *)"faces", (getter)bpy_bmfaceseq_get, (setter)NULL, (char *)bpy_bmfaceseq_doc, NULL},
+ {(char *)"loops", (getter)bpy_bmloopseq_get, (setter)NULL, (char *)bpy_bmloopseq_doc, NULL},
+ {(char *)"select_mode", (getter)bpy_bmesh_select_mode_get, (setter)bpy_bmesh_select_mode_set, (char *)bpy_bmesh_select_mode_doc, NULL},
- {(char *)"select_history", (getter)bpy_bmesh_select_history_get, (setter)bpy_bmesh_select_history_set, (char *)bpy_bmesh_select_history_doc, NULL},
+ {(char *)"select_history", (getter)bpy_bmesh_select_history_get, (setter)bpy_bmesh_select_history_set, (char *)bpy_bmesh_select_history_doc, NULL},
- /* readonly checks */
- {(char *)"is_wrapped", (getter)bpy_bmesh_is_wrapped_get, (setter)NULL, (char *)bpy_bmesh_is_wrapped_doc, NULL}, /* as with mathutils */
- {(char *)"is_valid", (getter)bpy_bm_is_valid_get, (setter)NULL, (char *)bpy_bm_is_valid_doc, NULL},
+ /* readonly checks */
+ {(char *)"is_wrapped", (getter)bpy_bmesh_is_wrapped_get, (setter)NULL, (char *)bpy_bmesh_is_wrapped_doc, NULL}, /* as with mathutils */
+ {(char *)"is_valid", (getter)bpy_bm_is_valid_get, (setter)NULL, (char *)bpy_bm_is_valid_doc, NULL},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyGetSetDef bpy_bmvert_getseters[] = {
- /* generic */
- {(char *)"select", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_select_doc, (void *)BM_ELEM_SELECT},
- {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_HIDDEN},
- {(char *)"tag", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_tag_doc, (void *)BM_ELEM_TAG},
- {(char *)"index", (getter)bpy_bm_elem_index_get, (setter)bpy_bm_elem_index_set, (char *)bpy_bm_elem_index_doc, NULL},
-
- {(char *)"co", (getter)bpy_bmvert_co_get, (setter)bpy_bmvert_co_set, (char *)bpy_bmvert_co_doc, NULL},
- {(char *)"normal", (getter)bpy_bmvert_normal_get, (setter)bpy_bmvert_normal_set, (char *)bpy_bmvert_normal_doc, NULL},
-
- /* connectivity data */
- {(char *)"link_edges", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmvert_link_edges_doc, (void *)BM_EDGES_OF_VERT},
- {(char *)"link_faces", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmvert_link_faces_doc, (void *)BM_FACES_OF_VERT},
- {(char *)"link_loops", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmvert_link_loops_doc, (void *)BM_LOOPS_OF_VERT},
-
- /* readonly checks */
- {(char *)"is_manifold", (getter)bpy_bmvert_is_manifold_get, (setter)NULL, (char *)bpy_bmvert_is_manifold_doc, NULL},
- {(char *)"is_wire", (getter)bpy_bmvert_is_wire_get, (setter)NULL, (char *)bpy_bmvert_is_wire_doc, NULL},
- {(char *)"is_valid", (getter)bpy_bm_is_valid_get, (setter)NULL, (char *)bpy_bm_is_valid_doc, NULL},
-
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ /* generic */
+ {(char *)"select", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_select_doc, (void *)BM_ELEM_SELECT},
+ {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_HIDDEN},
+ {(char *)"tag", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_tag_doc, (void *)BM_ELEM_TAG},
+ {(char *)"index", (getter)bpy_bm_elem_index_get, (setter)bpy_bm_elem_index_set, (char *)bpy_bm_elem_index_doc, NULL},
+
+ {(char *)"co", (getter)bpy_bmvert_co_get, (setter)bpy_bmvert_co_set, (char *)bpy_bmvert_co_doc, NULL},
+ {(char *)"normal", (getter)bpy_bmvert_normal_get, (setter)bpy_bmvert_normal_set, (char *)bpy_bmvert_normal_doc, NULL},
+
+ /* connectivity data */
+ {(char *)"link_edges", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmvert_link_edges_doc, (void *)BM_EDGES_OF_VERT},
+ {(char *)"link_faces", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmvert_link_faces_doc, (void *)BM_FACES_OF_VERT},
+ {(char *)"link_loops", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmvert_link_loops_doc, (void *)BM_LOOPS_OF_VERT},
+
+ /* readonly checks */
+ {(char *)"is_manifold", (getter)bpy_bmvert_is_manifold_get, (setter)NULL, (char *)bpy_bmvert_is_manifold_doc, NULL},
+ {(char *)"is_wire", (getter)bpy_bmvert_is_wire_get, (setter)NULL, (char *)bpy_bmvert_is_wire_doc, NULL},
+ {(char *)"is_valid", (getter)bpy_bm_is_valid_get, (setter)NULL, (char *)bpy_bm_is_valid_doc, NULL},
+
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyGetSetDef bpy_bmedge_getseters[] = {
- /* generic */
- {(char *)"select", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_select_doc, (void *)BM_ELEM_SELECT},
- {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_HIDDEN},
- {(char *)"tag", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_tag_doc, (void *)BM_ELEM_TAG},
- {(char *)"index", (getter)bpy_bm_elem_index_get, (setter)bpy_bm_elem_index_set, (char *)bpy_bm_elem_index_doc, NULL},
+ /* generic */
+ {(char *)"select", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_select_doc, (void *)BM_ELEM_SELECT},
+ {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_HIDDEN},
+ {(char *)"tag", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_tag_doc, (void *)BM_ELEM_TAG},
+ {(char *)"index", (getter)bpy_bm_elem_index_get, (setter)bpy_bm_elem_index_set, (char *)bpy_bm_elem_index_doc, NULL},
- {(char *)"smooth", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_smooth_doc, (void *)BM_ELEM_SMOOTH},
- {(char *)"seam", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_seam_doc, (void *)BM_ELEM_SEAM},
+ {(char *)"smooth", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_smooth_doc, (void *)BM_ELEM_SMOOTH},
+ {(char *)"seam", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_seam_doc, (void *)BM_ELEM_SEAM},
- /* connectivity data */
- {(char *)"verts", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmedge_verts_doc, (void *)BM_VERTS_OF_EDGE},
+ /* connectivity data */
+ {(char *)"verts", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmedge_verts_doc, (void *)BM_VERTS_OF_EDGE},
- {(char *)"link_faces", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmedge_link_faces_doc, (void *)BM_FACES_OF_EDGE},
- {(char *)"link_loops", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmedge_link_loops_doc, (void *)BM_LOOPS_OF_EDGE},
+ {(char *)"link_faces", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmedge_link_faces_doc, (void *)BM_FACES_OF_EDGE},
+ {(char *)"link_loops", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmedge_link_loops_doc, (void *)BM_LOOPS_OF_EDGE},
- /* readonly checks */
- {(char *)"is_manifold", (getter)bpy_bmedge_is_manifold_get, (setter)NULL, (char *)bpy_bmedge_is_manifold_doc, NULL},
- {(char *)"is_wire", (getter)bpy_bmedge_is_wire_get, (setter)NULL, (char *)bpy_bmedge_is_wire_doc, NULL},
- {(char *)"is_boundary", (getter)bpy_bmedge_is_boundary_get, (setter)NULL, (char *)bpy_bmedge_is_boundary_doc, NULL},
- {(char *)"is_valid", (getter)bpy_bm_is_valid_get, (setter)NULL, (char *)bpy_bm_is_valid_doc, NULL},
+ /* readonly checks */
+ {(char *)"is_manifold", (getter)bpy_bmedge_is_manifold_get, (setter)NULL, (char *)bpy_bmedge_is_manifold_doc, NULL},
+ {(char *)"is_wire", (getter)bpy_bmedge_is_wire_get, (setter)NULL, (char *)bpy_bmedge_is_wire_doc, NULL},
+ {(char *)"is_boundary", (getter)bpy_bmedge_is_boundary_get, (setter)NULL, (char *)bpy_bmedge_is_boundary_doc, NULL},
+ {(char *)"is_valid", (getter)bpy_bm_is_valid_get, (setter)NULL, (char *)bpy_bm_is_valid_doc, NULL},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyGetSetDef bpy_bmface_getseters[] = {
- /* generic */
- {(char *)"select", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_select_doc, (void *)BM_ELEM_SELECT},
- {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_HIDDEN},
- {(char *)"tag", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_tag_doc, (void *)BM_ELEM_TAG},
- {(char *)"index", (getter)bpy_bm_elem_index_get, (setter)bpy_bm_elem_index_set, (char *)bpy_bm_elem_index_doc, NULL},
+ /* generic */
+ {(char *)"select", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_select_doc, (void *)BM_ELEM_SELECT},
+ {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_HIDDEN},
+ {(char *)"tag", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_tag_doc, (void *)BM_ELEM_TAG},
+ {(char *)"index", (getter)bpy_bm_elem_index_get, (setter)bpy_bm_elem_index_set, (char *)bpy_bm_elem_index_doc, NULL},
- {(char *)"smooth", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_smooth_doc, (void *)BM_ELEM_SMOOTH},
+ {(char *)"smooth", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_smooth_doc, (void *)BM_ELEM_SMOOTH},
- {(char *)"normal", (getter)bpy_bmface_normal_get, (setter)bpy_bmface_normal_set, (char *)bpy_bmface_normal_doc, NULL},
+ {(char *)"normal", (getter)bpy_bmface_normal_get, (setter)bpy_bmface_normal_set, (char *)bpy_bmface_normal_doc, NULL},
- {(char *)"material_index", (getter)bpy_bmface_material_index_get, (setter)bpy_bmface_material_index_set, (char *)bpy_bmface_material_index_doc, NULL},
+ {(char *)"material_index", (getter)bpy_bmface_material_index_get, (setter)bpy_bmface_material_index_set, (char *)bpy_bmface_material_index_doc, NULL},
- /* connectivity data */
- {(char *)"verts", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmface_verts_doc, (void *)BM_VERTS_OF_FACE},
- {(char *)"edges", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmface_edges_doc, (void *)BM_EDGES_OF_FACE},
- {(char *)"loops", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmface_loops_doc, (void *)BM_LOOPS_OF_FACE},
+ /* connectivity data */
+ {(char *)"verts", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmface_verts_doc, (void *)BM_VERTS_OF_FACE},
+ {(char *)"edges", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmface_edges_doc, (void *)BM_EDGES_OF_FACE},
+ {(char *)"loops", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmface_loops_doc, (void *)BM_LOOPS_OF_FACE},
- /* readonly checks */
- {(char *)"is_valid", (getter)bpy_bm_is_valid_get, (setter)NULL, (char *)bpy_bm_is_valid_doc, NULL},
+ /* readonly checks */
+ {(char *)"is_valid", (getter)bpy_bm_is_valid_get, (setter)NULL, (char *)bpy_bm_is_valid_doc, NULL},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyGetSetDef bpy_bmloop_getseters[] = {
- /* generic */
- // flags are available but not used for loops.
- // {(char *)"select", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_select_doc, (void *)BM_ELEM_SELECT},
- // {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_HIDDEN},
- {(char *)"tag", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_tag_doc, (void *)BM_ELEM_TAG},
- {(char *)"index", (getter)bpy_bm_elem_index_get, (setter)bpy_bm_elem_index_set, (char *)bpy_bm_elem_index_doc, NULL},
-
- {(char *)"vert", (getter)bpy_bmloop_vert_get, (setter)NULL, (char *)bpy_bmloop_vert_doc, NULL},
- {(char *)"edge", (getter)bpy_bmloop_edge_get, (setter)NULL, (char *)bpy_bmloop_edge_doc, NULL},
- {(char *)"face", (getter)bpy_bmloop_face_get, (setter)NULL, (char *)bpy_bmloop_face_doc, NULL},
-
- /* connectivity data */
- {(char *)"link_loops", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmloops_link_loops_doc, (void *)BM_LOOPS_OF_LOOP},
- {(char *)"link_loop_next", (getter)bpy_bmloop_link_loop_next_get, (setter)NULL, (char *)bpy_bmloop_link_loop_next_doc, NULL},
- {(char *)"link_loop_prev", (getter)bpy_bmloop_link_loop_prev_get, (setter)NULL, (char *)bpy_bmloop_link_loop_prev_doc, NULL},
-
- /* readonly checks */
- {(char *)"is_valid", (getter)bpy_bm_is_valid_get, (setter)NULL, (char *)bpy_bm_is_valid_doc, NULL},
-
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ /* generic */
+ // flags are available but not used for loops.
+ // {(char *)"select", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_select_doc, (void *)BM_ELEM_SELECT},
+ // {(char *)"hide", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_hide_doc, (void *)BM_ELEM_HIDDEN},
+ {(char *)"tag", (getter)bpy_bm_elem_hflag_get, (setter)bpy_bm_elem_hflag_set, (char *)bpy_bm_elem_tag_doc, (void *)BM_ELEM_TAG},
+ {(char *)"index", (getter)bpy_bm_elem_index_get, (setter)bpy_bm_elem_index_set, (char *)bpy_bm_elem_index_doc, NULL},
+
+ {(char *)"vert", (getter)bpy_bmloop_vert_get, (setter)NULL, (char *)bpy_bmloop_vert_doc, NULL},
+ {(char *)"edge", (getter)bpy_bmloop_edge_get, (setter)NULL, (char *)bpy_bmloop_edge_doc, NULL},
+ {(char *)"face", (getter)bpy_bmloop_face_get, (setter)NULL, (char *)bpy_bmloop_face_doc, NULL},
+
+ /* connectivity data */
+ {(char *)"link_loops", (getter)bpy_bmelemseq_elem_get, (setter)NULL, (char *)bpy_bmloops_link_loops_doc, (void *)BM_LOOPS_OF_LOOP},
+ {(char *)"link_loop_next", (getter)bpy_bmloop_link_loop_next_get, (setter)NULL, (char *)bpy_bmloop_link_loop_next_doc, NULL},
+ {(char *)"link_loop_prev", (getter)bpy_bmloop_link_loop_prev_get, (setter)NULL, (char *)bpy_bmloop_link_loop_prev_doc, NULL},
+
+ /* readonly checks */
+ {(char *)"is_valid", (getter)bpy_bm_is_valid_get, (setter)NULL, (char *)bpy_bm_is_valid_doc, NULL},
+
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyGetSetDef bpy_bmvertseq_getseters[] = {
- {(char *)"layers", (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_doc, (void *)BM_VERT},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {(char *)"layers", (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_doc, (void *)BM_VERT},
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyGetSetDef bpy_bmedgeseq_getseters[] = {
- {(char *)"layers", (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_doc, (void *)BM_EDGE},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {(char *)"layers", (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_doc, (void *)BM_EDGE},
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyGetSetDef bpy_bmfaceseq_getseters[] = {
- {(char *)"layers", (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_doc, (void *)BM_FACE},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {(char *)"layers", (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_doc, (void *)BM_FACE},
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyGetSetDef bpy_bmloopseq_getseters[] = {
- {(char *)"layers", (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_doc, (void *)BM_LOOP},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {(char *)"layers", (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_doc, (void *)BM_LOOP},
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
@@ -1578,7 +1578,7 @@ PyDoc_STRVAR(bpy_bmloop_calc_normal_doc,
".. method:: calc_normal()\n"
"\n"
" Return normal at this loops corner of the face.\n"
-" Falls back to the face normal for straignt lines.\n"
+" Falls back to the face normal for straight lines.\n"
"\n"
" :return: a normalized vector.\n"
" :rtype: :class:`mathutils.Vector`\n"
@@ -1595,7 +1595,7 @@ PyDoc_STRVAR(bpy_bmloop_calc_tangent_doc,
".. method:: calc_tangent()\n"
"\n"
" Return the tangent at this loops corner of the face (pointing inward into the face).\n"
-" Falls back to the face normal for straignt lines.\n"
+" Falls back to the face normal for straight lines.\n"
"\n"
" :return: a normalized vector.\n"
" :rtype: :class:`mathutils.Vector`\n"
@@ -1808,7 +1808,7 @@ static PyObject *bpy_bmfaceseq_new(BPy_BMElemSeq *self, PyObject *args)
f_new = BM_face_create(bm, vert_array, edge_array, vert_seq_len, FALSE);
- if (f_new == NULL) {
+ if (UNLIKELY(f_new == NULL)) {
PyErr_SetString(PyExc_ValueError,
"faces.new(verts): couldn't create the new face, internal error");
goto cleanup;
@@ -2083,127 +2083,326 @@ static PyObject *bpy_bmelemseq_index_update(BPy_BMElemSeq *self)
Py_RETURN_NONE;
}
+PyDoc_STRVAR(bpy_bmelemseq_sort_doc,
+".. method:: sort(key=None, reverse=False)\n"
+"\n"
+" Sort the elements of this sequence, using an optional custom sort key.\n"
+" Indices of elements are not changed, BMElemeSeq.index_update() can be used for that.\n"
+"\n"
+" :arg key: The key that sets the ordering of the elements.\n"
+" :type key: :function: returning a number\n"
+" :arg reverse: Reverse the order of the elements\n"
+" :type reverse: :boolean:\n"
+"\n"
+" .. note::\n"
+"\n"
+" When the 'key' argument is not provided, the elements are reordered following their current index value.\n"
+" In particular this can be used by setting indices manually before calling this method.\n"
+"\n"
+);
+
+/* Use a static variable here because there is the need to sort some array
+ * doing comparisons on elements of another array, qsort_r would have been
+ * wonderful to use here, but unfortunately it is not standard and it's not
+ * portable across different platforms.
+ *
+ * If a portable alternative to qsort_r becomes available, remove this static
+ * var hack!
+ *
+ * Note: the functions below assumes the keys array has been allocated and it
+ * has enough elements to complete the task.
+ */
+static double *keys = NULL;
+
+static int bpy_bmelemseq_sort_cmp_by_keys_ascending(const void *index1_v, const void *index2_v)
+{
+ const int *index1 = (int *)index1_v;
+ const int *index2 = (int *)index2_v;
+
+ if (keys[*index1] < keys[*index2]) return -1;
+ else if (keys[*index1] > keys[*index2]) return 1;
+ else return 0;
+}
+
+static int bpy_bmelemseq_sort_cmp_by_keys_descending(const void *index1_v, const void *index2_v)
+{
+ return -bpy_bmelemseq_sort_cmp_by_keys_ascending(index1_v, index2_v);
+}
+
+static PyObject *bpy_bmelemseq_sort(BPy_BMElemSeq *self, PyObject *args, PyObject *kw)
+{
+ static const char *kwlist[] = {"key", "reverse", NULL};
+ PyObject *keyfunc = NULL; /* optional */
+ int reverse = FALSE; /* optional */
+
+ const char htype = bm_iter_itype_htype_map[self->itype];
+ int n_elem;
+
+ BMIter iter;
+ BMElem *ele;
+
+ int *elem_idx;
+ int *elem_map_idx;
+ int (*elem_idx_compare_by_keys)(const void *, const void *);
+
+ int *vert_idx = NULL;
+ int *edge_idx = NULL;
+ int *face_idx = NULL;
+ int i;
+
+ BMesh *bm = self->bm;
+
+ BPY_BM_CHECK_OBJ(self);
+
+ if (args != NULL) {
+ if (!PyArg_ParseTupleAndKeywords(args, kw,
+ "|Oi:BMElemSeq.sort",
+ (char **)kwlist,
+ &keyfunc, &reverse))
+ {
+ return NULL;
+ }
+ }
+
+ if (keyfunc != NULL && !PyCallable_Check(keyfunc)) {
+ PyErr_SetString(PyExc_TypeError,
+ "the 'key' argument is not a callable object");
+ return NULL;
+ }
+
+ n_elem = BM_mesh_elem_count(bm, htype);
+ if (n_elem <= 1) {
+ /* 0 or 1 elements: sorted already */
+ Py_RETURN_NONE;
+ }
+
+ keys = PyMem_MALLOC(sizeof(*keys) * n_elem);
+ if (keys == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+
+ i = 0;
+ BM_ITER_BPY_BM_SEQ (ele, &iter, self) {
+ if (keyfunc != NULL) {
+ PyObject *py_elem;
+ PyObject *index;
+
+ py_elem = BPy_BMElem_CreatePyObject(self->bm, (BMHeader *)ele);
+ index = PyObject_CallFunctionObjArgs(keyfunc, py_elem, NULL);
+ Py_DECREF(py_elem);
+ if (index == NULL) {
+ /* No need to set the exception here,
+ * PyObject_CallFunctionObjArgs() does that */
+ PyMem_FREE(keys);
+ return NULL;
+ }
+
+ if ((keys[i] = PyFloat_AsDouble(index)) == -1 && PyErr_Occurred()) {
+ PyErr_SetString(PyExc_ValueError,
+ "the value returned by the 'key' function is not a number");
+ Py_DECREF(index);
+ PyMem_FREE(keys);
+ return NULL;
+ }
+
+ Py_DECREF(index);
+ }
+ else {
+ /* If the 'key' function is not provided we sort
+ * according to the current index values */
+ keys[i] = ele->head.index;
+ }
+
+ i++;
+ }
+
+ elem_idx = PyMem_MALLOC(sizeof(*elem_idx) * n_elem);
+ if (elem_idx == NULL) {
+ PyErr_NoMemory();
+ PyMem_FREE(keys);
+ return NULL;
+ }
+
+ /* Initialize the element index array */
+ range_vn_i(elem_idx, n_elem, 0);
+
+ /* Sort the index array according to the order of the 'keys' array */
+ if (reverse)
+ elem_idx_compare_by_keys = bpy_bmelemseq_sort_cmp_by_keys_descending;
+ else
+ elem_idx_compare_by_keys = bpy_bmelemseq_sort_cmp_by_keys_ascending;
+
+ qsort(elem_idx, n_elem, sizeof(*elem_idx), elem_idx_compare_by_keys);
+
+ elem_map_idx = PyMem_MALLOC(sizeof(*elem_map_idx) * n_elem);
+ if (elem_map_idx == NULL) {
+ PyErr_NoMemory();
+ PyMem_FREE(elem_idx);
+ PyMem_FREE(keys);
+ return NULL;
+ }
+
+ /* Initialize the map array
+ *
+ * We need to know the index such that if used as the new_index in
+ * BM_mesh_remap() will give the order of the sorted keys like in
+ * elem_idx */
+ for (i = 0; i < n_elem; i++) {
+ elem_map_idx[elem_idx[i]] = i;
+ }
+
+ switch ((BMIterType)self->itype) {
+ case BM_VERTS_OF_MESH:
+ vert_idx = elem_map_idx;
+ break;
+ case BM_EDGES_OF_MESH:
+ edge_idx = elem_map_idx;
+ break;
+ case BM_FACES_OF_MESH:
+ face_idx = elem_map_idx;
+ break;
+ default:
+ PyErr_Format(PyExc_TypeError, "element type %d not supported", self->itype);
+ PyMem_FREE(elem_map_idx);
+ PyMem_FREE(elem_idx);
+ PyMem_FREE(keys);
+ return NULL;
+ }
+
+ BM_mesh_remap(bm, vert_idx, edge_idx, face_idx);
+
+ PyMem_FREE(elem_map_idx);
+ PyMem_FREE(elem_idx);
+ PyMem_FREE(keys);
+
+ Py_RETURN_NONE;
+}
static struct PyMethodDef bpy_bmesh_methods[] = {
- /* utility */
- {"copy", (PyCFunction)bpy_bmesh_copy, METH_NOARGS, bpy_bmesh_copy_doc},
- {"clear", (PyCFunction)bpy_bmesh_clear, METH_NOARGS, bpy_bmesh_clear_doc},
- {"free", (PyCFunction)bpy_bmesh_free, METH_NOARGS, bpy_bmesh_free_doc},
-
- /* conversion */
- {"from_object", (PyCFunction)bpy_bmesh_from_object, METH_VARARGS | METH_KEYWORDS, bpy_bmesh_from_object_doc},
- {"from_mesh", (PyCFunction)bpy_bmesh_from_mesh, METH_VARARGS | METH_KEYWORDS, bpy_bmesh_from_mesh_doc},
- {"to_mesh", (PyCFunction)bpy_bmesh_to_mesh, METH_VARARGS, bpy_bmesh_to_mesh_doc},
-
- /* meshdata */
- {"select_flush_mode", (PyCFunction)bpy_bmesh_select_flush_mode, METH_NOARGS, bpy_bmesh_select_flush_mode_doc},
- {"select_flush", (PyCFunction)bpy_bmesh_select_flush, METH_O, bpy_bmesh_select_flush_doc},
- {"normal_update", (PyCFunction)bpy_bmesh_normal_update, METH_VARARGS, bpy_bmesh_normal_update_doc},
- {"transform", (PyCFunction)bpy_bmesh_transform, METH_VARARGS | METH_KEYWORDS, bpy_bmesh_transform_doc},
- {NULL, NULL, 0, NULL}
+ /* utility */
+ {"copy", (PyCFunction)bpy_bmesh_copy, METH_NOARGS, bpy_bmesh_copy_doc},
+ {"clear", (PyCFunction)bpy_bmesh_clear, METH_NOARGS, bpy_bmesh_clear_doc},
+ {"free", (PyCFunction)bpy_bmesh_free, METH_NOARGS, bpy_bmesh_free_doc},
+
+ /* conversion */
+ {"from_object", (PyCFunction)bpy_bmesh_from_object, METH_VARARGS | METH_KEYWORDS, bpy_bmesh_from_object_doc},
+ {"from_mesh", (PyCFunction)bpy_bmesh_from_mesh, METH_VARARGS | METH_KEYWORDS, bpy_bmesh_from_mesh_doc},
+ {"to_mesh", (PyCFunction)bpy_bmesh_to_mesh, METH_VARARGS, bpy_bmesh_to_mesh_doc},
+
+ /* meshdata */
+ {"select_flush_mode", (PyCFunction)bpy_bmesh_select_flush_mode, METH_NOARGS, bpy_bmesh_select_flush_mode_doc},
+ {"select_flush", (PyCFunction)bpy_bmesh_select_flush, METH_O, bpy_bmesh_select_flush_doc},
+ {"normal_update", (PyCFunction)bpy_bmesh_normal_update, METH_VARARGS, bpy_bmesh_normal_update_doc},
+ {"transform", (PyCFunction)bpy_bmesh_transform, METH_VARARGS | METH_KEYWORDS, bpy_bmesh_transform_doc},
+ {NULL, NULL, 0, NULL}
};
static struct PyMethodDef bpy_bmvert_methods[] = {
- {"select_set", (PyCFunction)bpy_bm_elem_select_set, METH_O, bpy_bm_elem_select_set_doc},
- {"hide_set", (PyCFunction)bpy_bm_elem_hide_set, METH_O, bpy_bm_elem_hide_set_doc},
- {"copy_from", (PyCFunction)bpy_bm_elem_copy_from, METH_O, bpy_bm_elem_copy_from_doc},
- {"copy_from_face_interp", (PyCFunction)bpy_bmvert_copy_from_face_interp, METH_VARARGS, bpy_bmvert_copy_from_face_interp_doc},
- {"copy_from_vert_interp", (PyCFunction)bpy_bmvert_copy_from_vert_interp, METH_VARARGS, bpy_bmvert_copy_from_vert_interp_doc},
+ {"select_set", (PyCFunction)bpy_bm_elem_select_set, METH_O, bpy_bm_elem_select_set_doc},
+ {"hide_set", (PyCFunction)bpy_bm_elem_hide_set, METH_O, bpy_bm_elem_hide_set_doc},
+ {"copy_from", (PyCFunction)bpy_bm_elem_copy_from, METH_O, bpy_bm_elem_copy_from_doc},
+ {"copy_from_face_interp", (PyCFunction)bpy_bmvert_copy_from_face_interp, METH_VARARGS, bpy_bmvert_copy_from_face_interp_doc},
+ {"copy_from_vert_interp", (PyCFunction)bpy_bmvert_copy_from_vert_interp, METH_VARARGS, bpy_bmvert_copy_from_vert_interp_doc},
- {"calc_vert_angle", (PyCFunction)bpy_bmvert_calc_edge_angle, METH_NOARGS, bpy_bmvert_calc_edge_angle_doc},
- {"calc_shell_factor", (PyCFunction)bpy_bmvert_calc_shell_factor, METH_NOARGS, bpy_bmvert_calc_shell_factor_doc},
+ {"calc_vert_angle", (PyCFunction)bpy_bmvert_calc_edge_angle, METH_NOARGS, bpy_bmvert_calc_edge_angle_doc},
+ {"calc_shell_factor", (PyCFunction)bpy_bmvert_calc_shell_factor, METH_NOARGS, bpy_bmvert_calc_shell_factor_doc},
- {"normal_update", (PyCFunction)bpy_bmvert_normal_update, METH_NOARGS, bpy_bmvert_normal_update_doc},
+ {"normal_update", (PyCFunction)bpy_bmvert_normal_update, METH_NOARGS, bpy_bmvert_normal_update_doc},
- {NULL, NULL, 0, NULL}
+ {NULL, NULL, 0, NULL}
};
static struct PyMethodDef bpy_bmedge_methods[] = {
- {"select_set", (PyCFunction)bpy_bm_elem_select_set, METH_O, bpy_bm_elem_select_set_doc},
- {"hide_set", (PyCFunction)bpy_bm_elem_hide_set, METH_O, bpy_bm_elem_hide_set_doc},
- {"copy_from", (PyCFunction)bpy_bm_elem_copy_from, METH_O, bpy_bm_elem_copy_from_doc},
+ {"select_set", (PyCFunction)bpy_bm_elem_select_set, METH_O, bpy_bm_elem_select_set_doc},
+ {"hide_set", (PyCFunction)bpy_bm_elem_hide_set, METH_O, bpy_bm_elem_hide_set_doc},
+ {"copy_from", (PyCFunction)bpy_bm_elem_copy_from, METH_O, bpy_bm_elem_copy_from_doc},
- {"other_vert", (PyCFunction)bpy_bmedge_other_vert, METH_O, bpy_bmedge_other_vert_doc},
+ {"other_vert", (PyCFunction)bpy_bmedge_other_vert, METH_O, bpy_bmedge_other_vert_doc},
- {"calc_length", (PyCFunction)bpy_bmedge_calc_length, METH_NOARGS, bpy_bmedge_calc_length_doc},
- {"calc_face_angle", (PyCFunction)bpy_bmedge_calc_face_angle, METH_NOARGS, bpy_bmedge_calc_face_angle_doc},
- {"calc_tangent", (PyCFunction)bpy_bmedge_calc_tangent, METH_VARARGS, bpy_bmedge_calc_tangent_doc},
+ {"calc_length", (PyCFunction)bpy_bmedge_calc_length, METH_NOARGS, bpy_bmedge_calc_length_doc},
+ {"calc_face_angle", (PyCFunction)bpy_bmedge_calc_face_angle, METH_NOARGS, bpy_bmedge_calc_face_angle_doc},
+ {"calc_tangent", (PyCFunction)bpy_bmedge_calc_tangent, METH_VARARGS, bpy_bmedge_calc_tangent_doc},
- {"normal_update", (PyCFunction)bpy_bmedge_normal_update, METH_NOARGS, bpy_bmedge_normal_update_doc},
+ {"normal_update", (PyCFunction)bpy_bmedge_normal_update, METH_NOARGS, bpy_bmedge_normal_update_doc},
- {NULL, NULL, 0, NULL}
+ {NULL, NULL, 0, NULL}
};
static struct PyMethodDef bpy_bmface_methods[] = {
- {"select_set", (PyCFunction)bpy_bm_elem_select_set, METH_O, bpy_bm_elem_select_set_doc},
- {"hide_set", (PyCFunction)bpy_bm_elem_hide_set, METH_O, bpy_bm_elem_hide_set_doc},
+ {"select_set", (PyCFunction)bpy_bm_elem_select_set, METH_O, bpy_bm_elem_select_set_doc},
+ {"hide_set", (PyCFunction)bpy_bm_elem_hide_set, METH_O, bpy_bm_elem_hide_set_doc},
- {"copy_from", (PyCFunction)bpy_bm_elem_copy_from, METH_O, bpy_bm_elem_copy_from_doc},
- {"copy_from_face_interp", (PyCFunction)bpy_bmface_copy_from_face_interp, METH_O, bpy_bmface_copy_from_face_interp_doc},
+ {"copy_from", (PyCFunction)bpy_bm_elem_copy_from, METH_O, bpy_bm_elem_copy_from_doc},
+ {"copy_from_face_interp", (PyCFunction)bpy_bmface_copy_from_face_interp, METH_O, bpy_bmface_copy_from_face_interp_doc},
- {"copy", (PyCFunction)bpy_bmface_copy, METH_VARARGS | METH_KEYWORDS, bpy_bmface_copy_doc},
+ {"copy", (PyCFunction)bpy_bmface_copy, METH_VARARGS | METH_KEYWORDS, bpy_bmface_copy_doc},
- {"calc_area", (PyCFunction)bpy_bmface_calc_area, METH_NOARGS, bpy_bmface_calc_area_doc},
- {"calc_perimeter", (PyCFunction)bpy_bmface_calc_perimeter, METH_NOARGS, bpy_bmface_calc_perimeter_doc},
- {"calc_center_median", (PyCFunction)bpy_bmface_calc_center_mean, METH_NOARGS, bpy_bmface_calc_center_mean_doc},
- {"calc_center_bounds", (PyCFunction)bpy_bmface_calc_center_bounds, METH_NOARGS, bpy_bmface_calc_center_bounds_doc},
+ {"calc_area", (PyCFunction)bpy_bmface_calc_area, METH_NOARGS, bpy_bmface_calc_area_doc},
+ {"calc_perimeter", (PyCFunction)bpy_bmface_calc_perimeter, METH_NOARGS, bpy_bmface_calc_perimeter_doc},
+ {"calc_center_median", (PyCFunction)bpy_bmface_calc_center_mean, METH_NOARGS, bpy_bmface_calc_center_mean_doc},
+ {"calc_center_bounds", (PyCFunction)bpy_bmface_calc_center_bounds, METH_NOARGS, bpy_bmface_calc_center_bounds_doc},
- {"normal_update", (PyCFunction)bpy_bmface_normal_update, METH_NOARGS, bpy_bmface_normal_update_doc},
+ {"normal_update", (PyCFunction)bpy_bmface_normal_update, METH_NOARGS, bpy_bmface_normal_update_doc},
- {NULL, NULL, 0, NULL}
+ {NULL, NULL, 0, NULL}
};
static struct PyMethodDef bpy_bmloop_methods[] = {
- {"copy_from", (PyCFunction)bpy_bm_elem_copy_from, METH_O, bpy_bm_elem_copy_from_doc},
- {"copy_from_face_interp", (PyCFunction)bpy_bmloop_copy_from_face_interp, METH_O, bpy_bmloop_copy_from_face_interp_doc},
+ {"copy_from", (PyCFunction)bpy_bm_elem_copy_from, METH_O, bpy_bm_elem_copy_from_doc},
+ {"copy_from_face_interp", (PyCFunction)bpy_bmloop_copy_from_face_interp, METH_O, bpy_bmloop_copy_from_face_interp_doc},
- {"calc_angle", (PyCFunction)bpy_bmloop_calc_angle, METH_NOARGS, bpy_bmloop_calc_angle_doc},
- {"calc_normal", (PyCFunction)bpy_bmloop_calc_normal, METH_NOARGS, bpy_bmloop_calc_normal_doc},
- {"calc_tangent", (PyCFunction)bpy_bmloop_calc_tangent, METH_NOARGS, bpy_bmloop_calc_tangent_doc},
- {NULL, NULL, 0, NULL}
+ {"calc_angle", (PyCFunction)bpy_bmloop_calc_angle, METH_NOARGS, bpy_bmloop_calc_angle_doc},
+ {"calc_normal", (PyCFunction)bpy_bmloop_calc_normal, METH_NOARGS, bpy_bmloop_calc_normal_doc},
+ {"calc_tangent", (PyCFunction)bpy_bmloop_calc_tangent, METH_NOARGS, bpy_bmloop_calc_tangent_doc},
+ {NULL, NULL, 0, NULL}
};
static struct PyMethodDef bpy_bmelemseq_methods[] = {
- /* odd function, initializes index values */
- {"index_update", (PyCFunction)bpy_bmelemseq_index_update, METH_NOARGS, bpy_bmelemseq_index_update_doc},
- {NULL, NULL, 0, NULL}
+ /* odd function, initializes index values */
+ {"index_update", (PyCFunction)bpy_bmelemseq_index_update, METH_NOARGS, bpy_bmelemseq_index_update_doc},
+ {NULL, NULL, 0, NULL}
};
static struct PyMethodDef bpy_bmvertseq_methods[] = {
- {"new", (PyCFunction)bpy_bmvertseq_new, METH_VARARGS, bpy_bmvertseq_new_doc},
- {"remove", (PyCFunction)bpy_bmvertseq_remove, METH_O, bpy_bmvertseq_remove_doc},
+ {"new", (PyCFunction)bpy_bmvertseq_new, METH_VARARGS, bpy_bmvertseq_new_doc},
+ {"remove", (PyCFunction)bpy_bmvertseq_remove, METH_O, bpy_bmvertseq_remove_doc},
- /* odd function, initializes index values */
- {"index_update", (PyCFunction)bpy_bmelemseq_index_update, METH_NOARGS, bpy_bmelemseq_index_update_doc},
- {NULL, NULL, 0, NULL}
+ /* odd function, initializes index values */
+ {"index_update", (PyCFunction)bpy_bmelemseq_index_update, METH_NOARGS, bpy_bmelemseq_index_update_doc},
+ {"sort", (PyCFunction)bpy_bmelemseq_sort, METH_VARARGS | METH_KEYWORDS, bpy_bmelemseq_sort_doc},
+ {NULL, NULL, 0, NULL}
};
static struct PyMethodDef bpy_bmedgeseq_methods[] = {
- {"new", (PyCFunction)bpy_bmedgeseq_new, METH_VARARGS, bpy_bmedgeseq_new_doc},
- {"remove", (PyCFunction)bpy_bmedgeseq_remove, METH_O, bpy_bmedgeseq_remove_doc},
- /* 'bpy_bmelemseq_get' for different purpose */
- {"get", (PyCFunction)bpy_bmedgeseq_get__method, METH_VARARGS, bpy_bmedgeseq_get__method_doc},
-
- /* odd function, initializes index values */
- {"index_update", (PyCFunction)bpy_bmelemseq_index_update, METH_NOARGS, bpy_bmelemseq_index_update_doc},
- {NULL, NULL, 0, NULL}
+ {"new", (PyCFunction)bpy_bmedgeseq_new, METH_VARARGS, bpy_bmedgeseq_new_doc},
+ {"remove", (PyCFunction)bpy_bmedgeseq_remove, METH_O, bpy_bmedgeseq_remove_doc},
+ /* 'bpy_bmelemseq_get' for different purpose */
+ {"get", (PyCFunction)bpy_bmedgeseq_get__method, METH_VARARGS, bpy_bmedgeseq_get__method_doc},
+
+ /* odd function, initializes index values */
+ {"index_update", (PyCFunction)bpy_bmelemseq_index_update, METH_NOARGS, bpy_bmelemseq_index_update_doc},
+ {"sort", (PyCFunction)bpy_bmelemseq_sort, METH_VARARGS | METH_KEYWORDS, bpy_bmelemseq_sort_doc},
+ {NULL, NULL, 0, NULL}
};
static struct PyMethodDef bpy_bmfaceseq_methods[] = {
- {"new", (PyCFunction)bpy_bmfaceseq_new, METH_VARARGS, bpy_bmfaceseq_new_doc},
- {"remove", (PyCFunction)bpy_bmfaceseq_remove, METH_O, bpy_bmfaceseq_remove_doc},
- /* 'bpy_bmelemseq_get' for different purpose */
- {"get", (PyCFunction)bpy_bmfaceseq_get__method, METH_VARARGS, bpy_bmfaceseq_get__method_doc},
-
- /* odd function, initializes index values */
- {"index_update", (PyCFunction)bpy_bmelemseq_index_update, METH_NOARGS, bpy_bmelemseq_index_update_doc},
- {NULL, NULL, 0, NULL}
+ {"new", (PyCFunction)bpy_bmfaceseq_new, METH_VARARGS, bpy_bmfaceseq_new_doc},
+ {"remove", (PyCFunction)bpy_bmfaceseq_remove, METH_O, bpy_bmfaceseq_remove_doc},
+ /* 'bpy_bmelemseq_get' for different purpose */
+ {"get", (PyCFunction)bpy_bmfaceseq_get__method, METH_VARARGS, bpy_bmfaceseq_get__method_doc},
+
+ /* odd function, initializes index values */
+ {"index_update", (PyCFunction)bpy_bmelemseq_index_update, METH_NOARGS, bpy_bmelemseq_index_update_doc},
+ {"sort", (PyCFunction)bpy_bmelemseq_sort, METH_VARARGS | METH_KEYWORDS, bpy_bmelemseq_sort_doc},
+ {NULL, NULL, 0, NULL}
};
static struct PyMethodDef bpy_bmloopseq_methods[] = {
- /* odd function, initializes index values */
- /* no: index_update() function since we cant iterate over loops */
- {NULL, NULL, 0, NULL}
+ /* odd function, initializes index values */
+ /* no: index_update() function since we cant iterate over loops */
+ /* no: sort() function since we cant iterate over loops */
+ {NULL, NULL, 0, NULL}
};
/* Sequences
@@ -2382,7 +2581,7 @@ static PyObject *bpy_bmelemseq_subscript(BPy_BMElemSeq *self, PyObject *key)
/* only get the length for negative values */
Py_ssize_t len = bpy_bmelemseq_length(self);
if (start < 0) start += len;
- if (stop < 0) start += len;
+ if (stop < 0) stop += len;
}
if (stop - start <= 0) {
@@ -2438,29 +2637,29 @@ static int bpy_bmelem_ass_subscript(BPy_BMElem *self, BPy_BMLayerItem *key, PyOb
}
static PySequenceMethods bpy_bmelemseq_as_sequence = {
- (lenfunc)bpy_bmelemseq_length, /* sq_length */
- NULL, /* sq_concat */
- NULL, /* sq_repeat */
- (ssizeargfunc)bpy_bmelemseq_subscript_int, /* sq_item */ /* Only set this so PySequence_Check() returns True */
- NULL, /* sq_slice */
- (ssizeobjargproc)NULL, /* sq_ass_item */
- NULL, /* *was* sq_ass_slice */
- (objobjproc)bpy_bmelemseq_contains, /* sq_contains */
- (binaryfunc) NULL, /* sq_inplace_concat */
- (ssizeargfunc) NULL, /* sq_inplace_repeat */
+ (lenfunc)bpy_bmelemseq_length, /* sq_length */
+ NULL, /* sq_concat */
+ NULL, /* sq_repeat */
+ (ssizeargfunc)bpy_bmelemseq_subscript_int, /* sq_item */ /* Only set this so PySequence_Check() returns True */
+ NULL, /* sq_slice */
+ (ssizeobjargproc)NULL, /* sq_ass_item */
+ NULL, /* *was* sq_ass_slice */
+ (objobjproc)bpy_bmelemseq_contains, /* sq_contains */
+ (binaryfunc) NULL, /* sq_inplace_concat */
+ (ssizeargfunc) NULL, /* sq_inplace_repeat */
};
static PyMappingMethods bpy_bmelemseq_as_mapping = {
- (lenfunc)bpy_bmelemseq_length, /* mp_length */
- (binaryfunc)bpy_bmelemseq_subscript, /* mp_subscript */
- (objobjargproc)NULL, /* mp_ass_subscript */
+ (lenfunc)bpy_bmelemseq_length, /* mp_length */
+ (binaryfunc)bpy_bmelemseq_subscript, /* mp_subscript */
+ (objobjargproc)NULL, /* mp_ass_subscript */
};
/* for customdata access */
static PyMappingMethods bpy_bm_elem_as_mapping = {
- (lenfunc)NULL, /* mp_length */ /* keep this empty, messes up 'if elem: ...' test */
- (binaryfunc)bpy_bmelem_subscript, /* mp_subscript */
- (objobjargproc)bpy_bmelem_ass_subscript, /* mp_ass_subscript */
+ (lenfunc)NULL, /* mp_length */ /* keep this empty, messes up 'if elem: ...' test */
+ (binaryfunc)bpy_bmelem_subscript, /* mp_subscript */
+ (objobjargproc)bpy_bmelem_ass_subscript, /* mp_ass_subscript */
};
/* Iterator
@@ -2856,15 +3055,15 @@ void BPy_BM_init_types(void)
* ********************* */
static struct PyModuleDef BPy_BM_types_module_def = {
- PyModuleDef_HEAD_INIT,
- "bmesh.types", /* m_name */
- NULL, /* m_doc */
- 0, /* m_size */
- NULL, /* m_methods */
- NULL, /* m_reload */
- NULL, /* m_traverse */
- NULL, /* m_clear */
- NULL, /* m_free */
+ PyModuleDef_HEAD_INIT,
+ "bmesh.types", /* m_name */
+ NULL, /* m_doc */
+ 0, /* m_size */
+ NULL, /* m_methods */
+ NULL, /* m_reload */
+ NULL, /* m_traverse */
+ NULL, /* m_clear */
+ NULL, /* m_free */
};
PyObject *BPyInit_bmesh_types(void)
diff --git a/source/blender/python/bmesh/bmesh_py_types_customdata.c b/source/blender/python/bmesh/bmesh_py_types_customdata.c
index d484ad5c87e..0391839c763 100644
--- a/source/blender/python/bmesh/bmesh_py_types_customdata.c
+++ b/source/blender/python/bmesh/bmesh_py_types_customdata.c
@@ -175,64 +175,64 @@ static PyObject *bpy_bmlayeritem_name_get(BPy_BMLayerItem *self, void *UNUSED(fl
}
static PyGetSetDef bpy_bmlayeraccess_vert_getseters[] = {
- {(char *)"deform", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__deform_doc, (void *)CD_MDEFORMVERT},
+ {(char *)"deform", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__deform_doc, (void *)CD_MDEFORMVERT},
- {(char *)"float", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__float_doc, (void *)CD_PROP_FLT},
- {(char *)"int", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__int_doc, (void *)CD_PROP_INT},
- {(char *)"string", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__string_doc, (void *)CD_PROP_STR},
+ {(char *)"float", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__float_doc, (void *)CD_PROP_FLT},
+ {(char *)"int", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__int_doc, (void *)CD_PROP_INT},
+ {(char *)"string", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__string_doc, (void *)CD_PROP_STR},
- {(char *)"shape", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__shape_doc, (void *)CD_SHAPEKEY},
- {(char *)"bevel_weight", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__bevel_weight_doc, (void *)CD_BWEIGHT},
+ {(char *)"shape", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__shape_doc, (void *)CD_SHAPEKEY},
+ {(char *)"bevel_weight", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__bevel_weight_doc, (void *)CD_BWEIGHT},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyGetSetDef bpy_bmlayeraccess_edge_getseters[] = {
- {(char *)"float", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__float_doc, (void *)CD_PROP_FLT},
- {(char *)"int", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__int_doc, (void *)CD_PROP_INT},
- {(char *)"string", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__string_doc, (void *)CD_PROP_STR},
+ {(char *)"float", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__float_doc, (void *)CD_PROP_FLT},
+ {(char *)"int", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__int_doc, (void *)CD_PROP_INT},
+ {(char *)"string", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__string_doc, (void *)CD_PROP_STR},
- {(char *)"bevel_weight", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__bevel_weight_doc, (void *)CD_BWEIGHT},
- {(char *)"crease", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__crease_doc, (void *)CD_CREASE},
+ {(char *)"bevel_weight", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__bevel_weight_doc, (void *)CD_BWEIGHT},
+ {(char *)"crease", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__crease_doc, (void *)CD_CREASE},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyGetSetDef bpy_bmlayeraccess_face_getseters[] = {
- {(char *)"float", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__float_doc, (void *)CD_PROP_FLT},
- {(char *)"int", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__int_doc, (void *)CD_PROP_INT},
- {(char *)"string", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__string_doc, (void *)CD_PROP_STR},
+ {(char *)"float", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__float_doc, (void *)CD_PROP_FLT},
+ {(char *)"int", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__int_doc, (void *)CD_PROP_INT},
+ {(char *)"string", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__string_doc, (void *)CD_PROP_STR},
- {(char *)"tex", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__tex_doc, (void *)CD_MTEXPOLY},
+ {(char *)"tex", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__tex_doc, (void *)CD_MTEXPOLY},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyGetSetDef bpy_bmlayeraccess_loop_getseters[] = {
- {(char *)"float", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__float_doc, (void *)CD_PROP_FLT},
- {(char *)"int", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__int_doc, (void *)CD_PROP_INT},
- {(char *)"string", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__string_doc, (void *)CD_PROP_STR},
+ {(char *)"float", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__float_doc, (void *)CD_PROP_FLT},
+ {(char *)"int", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__int_doc, (void *)CD_PROP_INT},
+ {(char *)"string", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__string_doc, (void *)CD_PROP_STR},
- {(char *)"uv", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__uv_doc, (void *)CD_MLOOPUV},
- {(char *)"color", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__color_doc, (void *)CD_MLOOPCOL},
+ {(char *)"uv", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__uv_doc, (void *)CD_MLOOPUV},
+ {(char *)"color", (getter)bpy_bmlayeraccess_collection_get, (setter)NULL, (char *)bpy_bmlayeraccess_collection__color_doc, (void *)CD_MLOOPCOL},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyGetSetDef bpy_bmlayercollection_getseters[] = {
- /* BMESH_TODO, make writeable */
- {(char *)"active", (getter)bpy_bmlayercollection_active_get, (setter)NULL, (char *)bpy_bmlayercollection_active_doc, NULL},
- {(char *)"is_singleton", (getter)bpy_bmlayercollection_is_singleton_get, (setter)NULL, (char *)bpy_bmlayercollection_is_singleton_doc, NULL},
+ /* BMESH_TODO, make writeable */
+ {(char *)"active", (getter)bpy_bmlayercollection_active_get, (setter)NULL, (char *)bpy_bmlayercollection_active_doc, NULL},
+ {(char *)"is_singleton", (getter)bpy_bmlayercollection_is_singleton_get, (setter)NULL, (char *)bpy_bmlayercollection_is_singleton_doc, NULL},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
static PyGetSetDef bpy_bmlayeritem_getseters[] = {
- /* BMESH_TODO, make writeable */
- {(char *)"name", (getter)bpy_bmlayeritem_name_get, (setter)NULL, (char *)bpy_bmlayercollection_name_doc, NULL},
+ /* BMESH_TODO, make writeable */
+ {(char *)"name", (getter)bpy_bmlayeritem_name_get, (setter)NULL, (char *)bpy_bmlayercollection_name_doc, NULL},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
@@ -556,20 +556,20 @@ static PyObject *bpy_bmlayercollection_get(BPy_BMLayerCollection *self, PyObject
}
static struct PyMethodDef bpy_bmlayeritem_methods[] = {
- {"copy_from", (PyCFunction)bpy_bmlayeritem_copy_from, METH_O, bpy_bmlayeritem_copy_from_doc},
- {NULL, NULL, 0, NULL}
+ {"copy_from", (PyCFunction)bpy_bmlayeritem_copy_from, METH_O, bpy_bmlayeritem_copy_from_doc},
+ {NULL, NULL, 0, NULL}
};
static struct PyMethodDef bpy_bmelemseq_methods[] = {
- {"verify", (PyCFunction)bpy_bmlayercollection_verify, METH_NOARGS, bpy_bmlayercollection_verify_doc},
- {"new", (PyCFunction)bpy_bmlayercollection_new, METH_VARARGS, bpy_bmlayercollection_new_doc},
- {"remove", (PyCFunction)bpy_bmlayercollection_remove, METH_O, bpy_bmlayercollection_remove_doc},
-
- {"keys", (PyCFunction)bpy_bmlayercollection_keys, METH_NOARGS, bpy_bmlayercollection_keys_doc},
- {"values", (PyCFunction)bpy_bmlayercollection_values, METH_NOARGS, bpy_bmlayercollection_values_doc},
- {"items", (PyCFunction)bpy_bmlayercollection_items, METH_NOARGS, bpy_bmlayercollection_items_doc},
- {"get", (PyCFunction)bpy_bmlayercollection_get, METH_VARARGS, bpy_bmlayercollection_get_doc},
- {NULL, NULL, 0, NULL}
+ {"verify", (PyCFunction)bpy_bmlayercollection_verify, METH_NOARGS, bpy_bmlayercollection_verify_doc},
+ {"new", (PyCFunction)bpy_bmlayercollection_new, METH_VARARGS, bpy_bmlayercollection_new_doc},
+ {"remove", (PyCFunction)bpy_bmlayercollection_remove, METH_O, bpy_bmlayercollection_remove_doc},
+
+ {"keys", (PyCFunction)bpy_bmlayercollection_keys, METH_NOARGS, bpy_bmlayercollection_keys_doc},
+ {"values", (PyCFunction)bpy_bmlayercollection_values, METH_NOARGS, bpy_bmlayercollection_values_doc},
+ {"items", (PyCFunction)bpy_bmlayercollection_items, METH_NOARGS, bpy_bmlayercollection_items_doc},
+ {"get", (PyCFunction)bpy_bmlayercollection_get, METH_VARARGS, bpy_bmlayercollection_get_doc},
+ {NULL, NULL, 0, NULL}
};
/* Sequences
@@ -685,7 +685,7 @@ static PyObject *bpy_bmlayercollection_subscript(BPy_BMLayerCollection *self, Py
/* only get the length for negative values */
Py_ssize_t len = bpy_bmlayercollection_length(self);
if (start < 0) start += len;
- if (stop < 0) start += len;
+ if (stop < 0) stop += len;
}
if (stop - start <= 0) {
@@ -724,22 +724,22 @@ static int bpy_bmlayercollection_contains(BPy_BMLayerCollection *self, PyObject
}
static PySequenceMethods bpy_bmlayercollection_as_sequence = {
- (lenfunc)bpy_bmlayercollection_length, /* sq_length */
- NULL, /* sq_concat */
- NULL, /* sq_repeat */
- (ssizeargfunc)bpy_bmlayercollection_subscript_int, /* sq_item */ /* Only set this so PySequence_Check() returns True */
- NULL, /* sq_slice */
- (ssizeobjargproc)NULL, /* sq_ass_item */
- NULL, /* *was* sq_ass_slice */
- (objobjproc)bpy_bmlayercollection_contains, /* sq_contains */
- (binaryfunc) NULL, /* sq_inplace_concat */
- (ssizeargfunc) NULL, /* sq_inplace_repeat */
+ (lenfunc)bpy_bmlayercollection_length, /* sq_length */
+ NULL, /* sq_concat */
+ NULL, /* sq_repeat */
+ (ssizeargfunc)bpy_bmlayercollection_subscript_int, /* sq_item */ /* Only set this so PySequence_Check() returns True */
+ NULL, /* sq_slice */
+ (ssizeobjargproc)NULL, /* sq_ass_item */
+ NULL, /* *was* sq_ass_slice */
+ (objobjproc)bpy_bmlayercollection_contains, /* sq_contains */
+ (binaryfunc) NULL, /* sq_inplace_concat */
+ (ssizeargfunc) NULL, /* sq_inplace_repeat */
};
static PyMappingMethods bpy_bmlayercollection_as_mapping = {
- (lenfunc)bpy_bmlayercollection_length, /* mp_length */
- (binaryfunc)bpy_bmlayercollection_subscript, /* mp_subscript */
- (objobjargproc)NULL, /* mp_ass_subscript */
+ (lenfunc)bpy_bmlayercollection_length, /* mp_length */
+ (binaryfunc)bpy_bmlayercollection_subscript, /* mp_subscript */
+ (objobjargproc)NULL, /* mp_ass_subscript */
};
/* Iterator
@@ -1079,7 +1079,7 @@ int BPy_BMLayerItem_SetItem(BPy_BMElem *py_ele, BPy_BMLayerItem *py_layer, PyObj
ret = -1;
}
else {
- BLI_strncpy(mstring->s, tmp_val, sizeof(mstring->s));
+ BLI_strncpy(mstring->s, tmp_val, MIN2(PyBytes_Size(py_value), sizeof(mstring->s)));
}
break;
}
diff --git a/source/blender/python/bmesh/bmesh_py_types_meshdata.c b/source/blender/python/bmesh/bmesh_py_types_meshdata.c
index aa78dc64f6b..8316d33ea38 100644
--- a/source/blender/python/bmesh/bmesh_py_types_meshdata.c
+++ b/source/blender/python/bmesh/bmesh_py_types_meshdata.c
@@ -91,10 +91,10 @@ static int bpy_bmtexpoly_image_set(BPy_BMTexPoly *self, PyObject *value, void *U
}
static PyGetSetDef bpy_bmtexpoly_getseters[] = {
- /* attributes match rna_def_mtpoly */
- {(char *)"image", (getter)bpy_bmtexpoly_image_get, (setter)bpy_bmtexpoly_image_set, (char *)bpy_bmtexpoly_image_doc, NULL},
+ /* attributes match rna_def_mtpoly */
+ {(char *)"image", (getter)bpy_bmtexpoly_image_get, (setter)bpy_bmtexpoly_image_set, (char *)bpy_bmtexpoly_image_doc, NULL},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
PyTypeObject BPy_BMTexPoly_Type = {{{0}}}; /* bm.loops.layers.uv.active */
@@ -201,13 +201,13 @@ static int bpy_bmloopuv_flag_set(BPy_BMLoopUV *self, PyObject *value, void *flag
}
static PyGetSetDef bpy_bmloopuv_getseters[] = {
- /* attributes match rna_def_mloopuv */
- {(char *)"uv", (getter)bpy_bmloopuv_uv_get, (setter)bpy_bmloopuv_uv_set, (char *)bpy_bmloopuv_uv_doc, NULL},
- {(char *)"pin_uv", (getter)bpy_bmloopuv_flag_get, (setter)bpy_bmloopuv_flag_set, (char *)bpy_bmloopuv_flag__pin_uv_doc, (void *)MLOOPUV_PINNED},
- {(char *)"select", (getter)bpy_bmloopuv_flag_get, (setter)bpy_bmloopuv_flag_set, (char *)bpy_bmloopuv_flag__select_doc, (void *)MLOOPUV_VERTSEL},
- {(char *)"select_edge", (getter)bpy_bmloopuv_flag_get, (setter)bpy_bmloopuv_flag_set, (char *)bpy_bmloopuv_flag__select_edge_doc, (void *)MLOOPUV_EDGESEL},
+ /* attributes match rna_def_mloopuv */
+ {(char *)"uv", (getter)bpy_bmloopuv_uv_get, (setter)bpy_bmloopuv_uv_set, (char *)bpy_bmloopuv_uv_doc, NULL},
+ {(char *)"pin_uv", (getter)bpy_bmloopuv_flag_get, (setter)bpy_bmloopuv_flag_set, (char *)bpy_bmloopuv_flag__pin_uv_doc, (void *)MLOOPUV_PINNED},
+ {(char *)"select", (getter)bpy_bmloopuv_flag_get, (setter)bpy_bmloopuv_flag_set, (char *)bpy_bmloopuv_flag__select_doc, (void *)MLOOPUV_VERTSEL},
+ {(char *)"select_edge", (getter)bpy_bmloopuv_flag_get, (setter)bpy_bmloopuv_flag_set, (char *)bpy_bmloopuv_flag__select_edge_doc, (void *)MLOOPUV_EDGESEL},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
PyTypeObject BPy_BMLoopUV_Type = {{{0}}}; /* bm.loops.layers.uv.active */
@@ -251,7 +251,7 @@ PyObject *BPy_BMLoopUV_CreatePyObject(struct MLoopUV *mloopuv)
/* Mesh Loop Color
* *************** */
-/* This simply provices a color wrapper for
+/* This simply provides a color wrapper for
* color which uses mathutils callbacks for mathutils.Color
*/
@@ -363,7 +363,7 @@ PyObject *BPy_BMLoopColor_CreatePyObject(struct MLoopCol *data)
* weight = dv[group_nr]
* del dv[group_nr]
*
- * \note: there is nothing BMesh spesific here,
+ * \note: there is nothing BMesh specific here,
* its only that BMesh is the only part of blender that uses a hand written api like this.
* This type could eventually be used to access lattice weights.
*
@@ -432,7 +432,7 @@ static int bpy_bmdeformvert_ass_subscript(BPy_BMDeformVert *self, PyObject *key,
/* dvert[group_index] = 0.5 */
if (i < 0) {
PyErr_SetString(PyExc_KeyError, "BMDeformVert[key] = x: "
- "weight keys can't be negative");
+ "weight keys can't be negative");
return -1;
}
else {
@@ -440,8 +440,8 @@ static int bpy_bmdeformvert_ass_subscript(BPy_BMDeformVert *self, PyObject *key,
const float f = PyFloat_AsDouble(value);
if (f == -1 && PyErr_Occurred()) { // parsed key not a number
PyErr_SetString(PyExc_TypeError,
- "BMDeformVert[key] = x: "
- "argument not a number");
+ "BMDeformVert[key] = x: "
+ "argument not a number");
return -1;
}
@@ -485,21 +485,21 @@ static int bpy_bmdeformvert_contains(BPy_BMDeformVert *self, PyObject *value)
/* only defined for __contains__ */
static PySequenceMethods bpy_bmdeformvert_as_sequence = {
- (lenfunc)bpy_bmdeformvert_len, /* sq_length */
- NULL, /* sq_concat */
- NULL, /* sq_repeat */
-
- /* note: if this is set PySequence_Check() returns True,
- * but in this case we dont want to be treated as a seq */
- NULL, /* sq_item */
-
- NULL, /* sq_slice */
- NULL, /* sq_ass_item */
- NULL, /* *was* sq_ass_slice */
- (objobjproc)bpy_bmdeformvert_contains, /* sq_contains */
- (binaryfunc) NULL, /* sq_inplace_concat */
- (ssizeargfunc) NULL, /* sq_inplace_repeat */
-};
+ (lenfunc)bpy_bmdeformvert_len, /* sq_length */
+ NULL, /* sq_concat */
+ NULL, /* sq_repeat */
+
+ /* note: if this is set PySequence_Check() returns True,
+ * but in this case we dont want to be treated as a seq */
+ NULL, /* sq_item */
+
+ NULL, /* sq_slice */
+ NULL, /* sq_ass_item */
+ NULL, /* *was* sq_ass_slice */
+ (objobjproc)bpy_bmdeformvert_contains, /* sq_contains */
+ (binaryfunc) NULL, /* sq_inplace_concat */
+ (ssizeargfunc) NULL, /* sq_inplace_repeat */
+ };
static PyMappingMethods bpy_bmdeformvert_as_mapping = {
(lenfunc)bpy_bmdeformvert_len,
@@ -631,13 +631,13 @@ static PyObject *bpy_bmdeformvert_clear(BPy_BMDeformVert *self)
}
static struct PyMethodDef bpy_bmdeformvert_methods[] = {
- {"keys", (PyCFunction)bpy_bmdeformvert_keys, METH_NOARGS, bpy_bmdeformvert_keys_doc},
- {"values", (PyCFunction)bpy_bmdeformvert_values, METH_NOARGS, bpy_bmdeformvert_values_doc},
- {"items", (PyCFunction)bpy_bmdeformvert_items, METH_NOARGS, bpy_bmdeformvert_items_doc},
- {"get", (PyCFunction)bpy_bmdeformvert_get, METH_VARARGS, bpy_bmdeformvert_get_doc},
- /* BMESH_TODO pop, popitem, update */
- {"clear", (PyCFunction)bpy_bmdeformvert_clear, METH_NOARGS, bpy_bmdeformvert_clear_doc},
- {NULL, NULL, 0, NULL}
+ {"keys", (PyCFunction)bpy_bmdeformvert_keys, METH_NOARGS, bpy_bmdeformvert_keys_doc},
+ {"values", (PyCFunction)bpy_bmdeformvert_values, METH_NOARGS, bpy_bmdeformvert_values_doc},
+ {"items", (PyCFunction)bpy_bmdeformvert_items, METH_NOARGS, bpy_bmdeformvert_items_doc},
+ {"get", (PyCFunction)bpy_bmdeformvert_get, METH_VARARGS, bpy_bmdeformvert_get_doc},
+ /* BMESH_TODO pop, popitem, update */
+ {"clear", (PyCFunction)bpy_bmdeformvert_clear, METH_NOARGS, bpy_bmdeformvert_clear_doc},
+ {NULL, NULL, 0, NULL}
};
PyTypeObject BPy_BMDeformVert_Type = {{{0}}}; /* bm.loops.layers.uv.active */
diff --git a/source/blender/python/bmesh/bmesh_py_types_select.c b/source/blender/python/bmesh/bmesh_py_types_select.c
index c76c7d975e4..85095596a4e 100644
--- a/source/blender/python/bmesh/bmesh_py_types_select.c
+++ b/source/blender/python/bmesh/bmesh_py_types_select.c
@@ -29,7 +29,7 @@
* This file defines the types for 'BMesh.select_history'
* sequence and iterator.
*
- * select_history is very loosely based on pytons set() type,
+ * select_history is very loosely based on pythons set() type,
* since items can only exist once. however they do have an order.
*/
@@ -68,8 +68,8 @@ static PyObject *bpy_bmeditselseq_active_get(BPy_BMEditSelSeq *self, void *UNUSE
}
static PyGetSetDef bpy_bmeditselseq_getseters[] = {
- {(char *)"active", (getter)bpy_bmeditselseq_active_get, (setter)NULL, (char *)bpy_bmeditselseq_active_doc, NULL},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {(char *)"active", (getter)bpy_bmeditselseq_active_get, (setter)NULL, (char *)bpy_bmeditselseq_active_doc, NULL},
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
PyDoc_STRVAR(bpy_bmeditselseq_validate_doc,
@@ -159,12 +159,12 @@ static PyObject *bpy_bmeditselseq_remove(BPy_BMEditSelSeq *self, BPy_BMElem *val
}
static struct PyMethodDef bpy_bmeditselseq_methods[] = {
- {"validate", (PyCFunction)bpy_bmeditselseq_validate, METH_NOARGS, bpy_bmeditselseq_validate_doc},
- {"clear", (PyCFunction)bpy_bmeditselseq_clear, METH_NOARGS, bpy_bmeditselseq_clear_doc},
+ {"validate", (PyCFunction)bpy_bmeditselseq_validate, METH_NOARGS, bpy_bmeditselseq_validate_doc},
+ {"clear", (PyCFunction)bpy_bmeditselseq_clear, METH_NOARGS, bpy_bmeditselseq_clear_doc},
- {"add", (PyCFunction)bpy_bmeditselseq_add, METH_O, bpy_bmeditselseq_add_doc},
- {"remove", (PyCFunction)bpy_bmeditselseq_remove, METH_O, bpy_bmeditselseq_remove_doc},
- {NULL, NULL, 0, NULL}
+ {"add", (PyCFunction)bpy_bmeditselseq_add, METH_O, bpy_bmeditselseq_add_doc},
+ {"remove", (PyCFunction)bpy_bmeditselseq_remove, METH_O, bpy_bmeditselseq_remove_doc},
+ {NULL, NULL, 0, NULL}
};
@@ -280,7 +280,7 @@ static PyObject *bpy_bmeditselseq_subscript(BPy_BMEditSelSeq *self, PyObject *ke
/* only get the length for negative values */
Py_ssize_t len = bpy_bmeditselseq_length(self);
if (start < 0) start += len;
- if (stop < 0) start += len;
+ if (stop < 0) stop += len;
}
if (stop - start <= 0) {
@@ -313,22 +313,22 @@ static int bpy_bmeditselseq_contains(BPy_BMEditSelSeq *self, PyObject *value)
}
static PySequenceMethods bpy_bmeditselseq_as_sequence = {
- (lenfunc)bpy_bmeditselseq_length, /* sq_length */
- NULL, /* sq_concat */
- NULL, /* sq_repeat */
- (ssizeargfunc)bpy_bmeditselseq_subscript_int,/* sq_item */ /* Only set this so PySequence_Check() returns True */
- NULL, /* sq_slice */
- (ssizeobjargproc)NULL, /* sq_ass_item */
- NULL, /* *was* sq_ass_slice */
- (objobjproc)bpy_bmeditselseq_contains, /* sq_contains */
- (binaryfunc) NULL, /* sq_inplace_concat */
- (ssizeargfunc) NULL, /* sq_inplace_repeat */
+ (lenfunc)bpy_bmeditselseq_length, /* sq_length */
+ NULL, /* sq_concat */
+ NULL, /* sq_repeat */
+ (ssizeargfunc)bpy_bmeditselseq_subscript_int,/* sq_item */ /* Only set this so PySequence_Check() returns True */
+ NULL, /* sq_slice */
+ (ssizeobjargproc)NULL, /* sq_ass_item */
+ NULL, /* *was* sq_ass_slice */
+ (objobjproc)bpy_bmeditselseq_contains, /* sq_contains */
+ (binaryfunc) NULL, /* sq_inplace_concat */
+ (ssizeargfunc) NULL, /* sq_inplace_repeat */
};
static PyMappingMethods bpy_bmeditselseq_as_mapping = {
- (lenfunc)bpy_bmeditselseq_length, /* mp_length */
- (binaryfunc)bpy_bmeditselseq_subscript, /* mp_subscript */
- (objobjargproc)NULL, /* mp_ass_subscript */
+ (lenfunc)bpy_bmeditselseq_length, /* mp_length */
+ (binaryfunc)bpy_bmeditselseq_subscript, /* mp_subscript */
+ (objobjargproc)NULL, /* mp_ass_subscript */
};
diff --git a/source/blender/python/bmesh/bmesh_py_utils.c b/source/blender/python/bmesh/bmesh_py_utils.c
index 4417bc2ce8d..b70df53aff0 100644
--- a/source/blender/python/bmesh/bmesh_py_utils.c
+++ b/source/blender/python/bmesh/bmesh_py_utils.c
@@ -39,9 +39,7 @@
#include "../mathutils/mathutils.h"
#include "bmesh.h"
-
#include "bmesh_py_types.h"
-
#include "bmesh_py_utils.h" /* own include */
@@ -653,18 +651,18 @@ static PyObject *bpy_bm_utils_loop_separate(PyObject *UNUSED(self), BPy_BMLoop *
static struct PyMethodDef BPy_BM_utils_methods[] = {
- {"vert_collapse_edge", (PyCFunction)bpy_bm_utils_vert_collapse_edge, METH_VARARGS, bpy_bm_utils_vert_collapse_edge_doc},
- {"vert_collapse_faces", (PyCFunction)bpy_bm_utils_vert_collapse_faces, METH_VARARGS, bpy_bm_utils_vert_collapse_faces_doc},
- {"vert_dissolve", (PyCFunction)bpy_bm_utils_vert_dissolve, METH_VARARGS, bpy_bm_utils_vert_dissolve_doc}, /* could use METH_O */
- {"vert_separate", (PyCFunction)bpy_bm_utils_vert_separate, METH_VARARGS, bpy_bm_utils_vert_separate_doc},
- {"edge_split", (PyCFunction)bpy_bm_utils_edge_split, METH_VARARGS, bpy_bm_utils_edge_split_doc},
- {"edge_rotate", (PyCFunction)bpy_bm_utils_edge_rotate, METH_VARARGS, bpy_bm_utils_edge_rotate_doc},
- {"face_split", (PyCFunction)bpy_bm_utils_face_split, METH_VARARGS | METH_KEYWORDS, bpy_bm_utils_face_split_doc},
- {"face_join", (PyCFunction)bpy_bm_utils_face_join, METH_VARARGS, bpy_bm_utils_face_join_doc},
- {"face_vert_separate", (PyCFunction)bpy_bm_utils_face_vert_separate, METH_VARARGS, bpy_bm_utils_face_vert_separate_doc},
- {"face_flip", (PyCFunction)bpy_bm_utils_face_flip, METH_O, bpy_bm_utils_face_flip_doc},
- {"loop_separate", (PyCFunction)bpy_bm_utils_loop_separate, METH_O, bpy_bm_utils_loop_separate_doc},
- {NULL, NULL, 0, NULL}
+ {"vert_collapse_edge", (PyCFunction)bpy_bm_utils_vert_collapse_edge, METH_VARARGS, bpy_bm_utils_vert_collapse_edge_doc},
+ {"vert_collapse_faces", (PyCFunction)bpy_bm_utils_vert_collapse_faces, METH_VARARGS, bpy_bm_utils_vert_collapse_faces_doc},
+ {"vert_dissolve", (PyCFunction)bpy_bm_utils_vert_dissolve, METH_VARARGS, bpy_bm_utils_vert_dissolve_doc}, /* could use METH_O */
+ {"vert_separate", (PyCFunction)bpy_bm_utils_vert_separate, METH_VARARGS, bpy_bm_utils_vert_separate_doc},
+ {"edge_split", (PyCFunction)bpy_bm_utils_edge_split, METH_VARARGS, bpy_bm_utils_edge_split_doc},
+ {"edge_rotate", (PyCFunction)bpy_bm_utils_edge_rotate, METH_VARARGS, bpy_bm_utils_edge_rotate_doc},
+ {"face_split", (PyCFunction)bpy_bm_utils_face_split, METH_VARARGS | METH_KEYWORDS, bpy_bm_utils_face_split_doc},
+ {"face_join", (PyCFunction)bpy_bm_utils_face_join, METH_VARARGS, bpy_bm_utils_face_join_doc},
+ {"face_vert_separate", (PyCFunction)bpy_bm_utils_face_vert_separate, METH_VARARGS, bpy_bm_utils_face_vert_separate_doc},
+ {"face_flip", (PyCFunction)bpy_bm_utils_face_flip, METH_O, bpy_bm_utils_face_flip_doc},
+ {"loop_separate", (PyCFunction)bpy_bm_utils_loop_separate, METH_O, bpy_bm_utils_loop_separate_doc},
+ {NULL, NULL, 0, NULL}
};
@@ -672,15 +670,15 @@ PyDoc_STRVAR(BPy_BM_utils_doc,
"This module provides access to blenders bmesh data structures."
);
static struct PyModuleDef BPy_BM_utils_module_def = {
- PyModuleDef_HEAD_INIT,
- "bmesh.utils", /* m_name */
- BPy_BM_utils_doc, /* m_doc */
- 0, /* m_size */
- BPy_BM_utils_methods, /* m_methods */
- NULL, /* m_reload */
- NULL, /* m_traverse */
- NULL, /* m_clear */
- NULL, /* m_free */
+ PyModuleDef_HEAD_INIT,
+ "bmesh.utils", /* m_name */
+ BPy_BM_utils_doc, /* m_doc */
+ 0, /* m_size */
+ BPy_BM_utils_methods, /* m_methods */
+ NULL, /* m_reload */
+ NULL, /* m_traverse */
+ NULL, /* m_clear */
+ NULL, /* m_free */
};
diff --git a/source/blender/python/generic/bgl.c b/source/blender/python/generic/bgl.c
index ce11545c90d..45b767c6eda 100644
--- a/source/blender/python/generic/bgl.c
+++ b/source/blender/python/generic/bgl.c
@@ -44,7 +44,7 @@
#include "BLI_utildefines.h"
static PyObject *Buffer_new(PyTypeObject *type, PyObject *args, PyObject *kwds);
-static PyObject *Method_ShaderSource (PyObject *self, PyObject *args);
+static PyObject *Method_ShaderSource(PyObject *self, PyObject *args);
/* Buffer sequence methods */
diff --git a/source/blender/python/generic/bpy_internal_import.c b/source/blender/python/generic/bpy_internal_import.c
index 3a46c6971cf..b9ef4b056ad 100644
--- a/source/blender/python/generic/bpy_internal_import.c
+++ b/source/blender/python/generic/bpy_internal_import.c
@@ -48,12 +48,15 @@
#include "BLI_utildefines.h"
/* UNUSED */
-#include "BKE_text.h" /* txt_to_buf */
+#include "BKE_text.h" /* txt_to_buf */
#include "BKE_main.h"
static Main *bpy_import_main = NULL;
static ListBase bpy_import_main_list;
+static PyMethodDef bpy_import_meth;
+static PyMethodDef bpy_reload_meth;
+
/* 'builtins' is most likely PyEval_GetBuiltins() */
void bpy_import_init(PyObject *builtins)
{
@@ -154,7 +157,8 @@ PyObject *bpy_text_import_name(const char *name, int *found)
}
/* we know this cant be importable, the name is too long for blender! */
- if (namelen >= (MAX_ID_NAME - 2) - 3) return NULL;
+ if (namelen >= (MAX_ID_NAME - 2) - 3)
+ return NULL;
memcpy(txtname, name, namelen);
memcpy(&txtname[namelen], ".py", 4);
@@ -287,7 +291,7 @@ static PyObject *blender_import(PyObject *UNUSED(self), PyObject *args, PyObject
}
else {
/* no blender text was found that could import the module
- * rause the original error from PyImport_ImportModuleEx */
+ * reuse the original error from PyImport_ImportModuleEx */
PyErr_Restore(exception, err, tb);
}
return newmodule;
@@ -335,5 +339,5 @@ static PyObject *blender_reload(PyObject *UNUSED(self), PyObject *module)
return newmodule;
}
-PyMethodDef bpy_import_meth = {"bpy_import_meth", (PyCFunction)blender_import, METH_VARARGS | METH_KEYWORDS, "blenders import"};
-PyMethodDef bpy_reload_meth = {"bpy_reload_meth", (PyCFunction)blender_reload, METH_O, "blenders reload"};
+static PyMethodDef bpy_import_meth = {"bpy_import_meth", (PyCFunction)blender_import, METH_VARARGS | METH_KEYWORDS, "blenders import"};
+static PyMethodDef bpy_reload_meth = {"bpy_reload_meth", (PyCFunction)blender_reload, METH_O, "blenders reload"};
diff --git a/source/blender/python/generic/bpy_internal_import.h b/source/blender/python/generic/bpy_internal_import.h
index 980e6edca03..1592ec52b4c 100644
--- a/source/blender/python/generic/bpy_internal_import.h
+++ b/source/blender/python/generic/bpy_internal_import.h
@@ -55,9 +55,6 @@ PyObject* bpy_text_reimport(PyObject *module, int *found);
void bpy_text_filename_get(char *fn, size_t fn_len, struct Text *text);
-extern PyMethodDef bpy_import_meth;
-extern PyMethodDef bpy_reload_meth;
-
/* The game engine has its own Main struct, if this is set search this rather than G.main */
struct Main *bpy_import_main_get(void);
void bpy_import_main_set(struct Main *maggie);
diff --git a/source/blender/python/generic/idprop_py_api.c b/source/blender/python/generic/idprop_py_api.c
index 15eeb5934d8..06b6192a091 100644
--- a/source/blender/python/generic/idprop_py_api.c
+++ b/source/blender/python/generic/idprop_py_api.c
@@ -152,7 +152,7 @@ PyObject *BPy_IDGroup_WrapData(ID *id, IDProperty *prop, IDProperty *parent)
}
}
-#if 0 /* UNUSED, currenly assignment overwrites into new properties, rather than setting in-place */
+#if 0 /* UNUSED, currently assignment overwrites into new properties, rather than setting in-place */
static int BPy_IDGroup_SetData(BPy_IDProperty *self, IDProperty *prop, PyObject *value)
{
switch (prop->type) {
diff --git a/source/blender/python/generic/py_capi_utils.c b/source/blender/python/generic/py_capi_utils.c
index fd12f7f483d..9492c8384dc 100644
--- a/source/blender/python/generic/py_capi_utils.c
+++ b/source/blender/python/generic/py_capi_utils.c
@@ -152,6 +152,21 @@ void PyC_LineSpit(void)
fprintf(stderr, "%s:%d\n", filename, lineno);
}
+void PyC_StackSpit(void)
+{
+ /* Note, allow calling from outside python (RNA) */
+ if (!PYC_INTERPRETER_ACTIVE) {
+ fprintf(stderr, "python line lookup failed, interpreter inactive\n");
+ return;
+ }
+ else {
+ /* lame but handy */
+ PyGILState_STATE gilstate = PyGILState_Ensure();
+ PyRun_SimpleString("__import__('traceback').print_stack()");
+ PyGILState_Release(gilstate);
+ }
+}
+
void PyC_FileAndNum(const char **filename, int *lineno)
{
PyFrameObject *frame;
@@ -229,7 +244,7 @@ PyObject *PyC_Object_GetAttrStringArgs(PyObject *o, Py_ssize_t n, ...)
/* similar to PyErr_Format(),
*
* implementation - we cant actually preprend the existing exception,
- * because it could have _any_ argiments given to it, so instead we get its
+ * because it could have _any_ arguments given to it, so instead we get its
* __str__ output and raise our own exception including it.
*/
PyObject *PyC_Err_Format_Prefix(PyObject *exception_type_prefix, const char *format, ...)
@@ -387,6 +402,15 @@ const char *PyC_UnicodeAsByte(PyObject *py_str, PyObject **coerce)
if (PyBytes_Check(py_str)) {
return PyBytes_AS_STRING(py_str);
}
+#ifdef WIN32
+ /* bug [#31856] oddly enough, Python3.2 --> 3.3 on Windows will throw an
+ * exception here this needs to be fixed in python:
+ * see: bugs.python.org/issue15859 */
+ else if (!PyUnicode_Check(py_str)) {
+ PyErr_BadArgument();
+ return NULL;
+ }
+#endif
else if ((*coerce = PyUnicode_EncodeFSDefault(py_str))) {
return PyBytes_AS_STRING(*coerce);
}
@@ -426,7 +450,7 @@ PyObject *PyC_UnicodeFromByte(const char *str)
* >> foo = 10
* >> print(__import__("__main__").foo)
*
- * note: this overwrites __main__ which gives problems with nested calles.
+ * note: this overwrites __main__ which gives problems with nested calls.
* be sure to run PyC_MainModule_Backup & PyC_MainModule_Restore if there is
* any chance that python is in the call stack.
****************************************************************************/
@@ -508,7 +532,9 @@ void PyC_SetHomePath(const char *py_path_bundle)
}
}
-/* Would be nice if python had this built in */
+/* Would be nice if python had this built in
+ * See: http://wiki.blender.org/index.php/Dev:Doc/Tools/Debugging/PyFromC
+ */
void PyC_RunQuicky(const char *filepath, int n, ...)
{
FILE *fp = fopen(filepath, "r");
@@ -734,7 +760,6 @@ int PyC_FlagSet_ValueFromID(PyC_FlagSet *item, const char *identifier, int *valu
return 0;
}
-/* 'value' _must_ be a set type, error check before calling */
int PyC_FlagSet_ToBitfield(PyC_FlagSet *items, PyObject *value, int *r_value, const char *error_prefix)
{
/* set of enum items, concatenate all values with OR */
@@ -745,6 +770,13 @@ int PyC_FlagSet_ToBitfield(PyC_FlagSet *items, PyObject *value, int *r_value, co
Py_ssize_t hash = 0;
PyObject *key;
+ if (!PySet_Check(value)) {
+ PyErr_Format(PyExc_TypeError,
+ "%.200s expected a set, not %.200s",
+ error_prefix, Py_TYPE(value)->tp_name);
+ return -1;
+ }
+
*r_value = 0;
while (_PySet_NextEntry(value, &pos, &key, &hash)) {
@@ -752,7 +784,7 @@ int PyC_FlagSet_ToBitfield(PyC_FlagSet *items, PyObject *value, int *r_value, co
if (param == NULL) {
PyErr_Format(PyExc_TypeError,
- "%.200s expected a string, not %.200s",
+ "%.200s set must contain strings, not %.200s",
error_prefix, Py_TYPE(key)->tp_name);
return -1;
}
diff --git a/source/blender/python/generic/py_capi_utils.h b/source/blender/python/generic/py_capi_utils.h
index 9ef171256aa..481cfb17c7a 100644
--- a/source/blender/python/generic/py_capi_utils.h
+++ b/source/blender/python/generic/py_capi_utils.h
@@ -24,12 +24,13 @@
* \ingroup pygen
*/
-
+
#ifndef __PY_CAPI_UTILS_H__
#define __PY_CAPI_UTILS_H__
void PyC_ObSpit(const char *name, PyObject *var);
void PyC_LineSpit(void);
+void PyC_StackSpit(void);
PyObject * PyC_ExceptionBuffer(void);
PyObject * PyC_Object_GetAttrStringArgs(PyObject *o, Py_ssize_t n, ...);
PyObject * PyC_Err_Format_Prefix(PyObject *exception_type_prefix, const char *format, ...);
diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt
index 05583e133dc..604166eed3c 100644
--- a/source/blender/python/intern/CMakeLists.txt
+++ b/source/blender/python/intern/CMakeLists.txt
@@ -71,6 +71,7 @@ set(SRC
bpy_app_handlers.h
bpy_driver.h
bpy_intern_string.h
+ bpy_library.h
bpy_operator.h
bpy_operator_wrap.h
bpy_props.h
diff --git a/source/blender/python/intern/bpy.c b/source/blender/python/intern/bpy.c
index 4d5c02dad68..3bf44e43c56 100644
--- a/source/blender/python/intern/bpy.c
+++ b/source/blender/python/intern/bpy.c
@@ -37,6 +37,7 @@
#include "bpy_rna.h"
#include "bpy_app.h"
#include "bpy_props.h"
+#include "bpy_library.h"
#include "bpy_operator.h"
#include "BLI_path_util.h"
@@ -115,12 +116,12 @@ static PyObject *bpy_blend_paths(PyObject *UNUSED(self), PyObject *args, PyObjec
PyObject *list;
int absolute = FALSE;
- int packed = FALSE;
- int local = FALSE;
+ int packed = FALSE;
+ int local = FALSE;
static const char *kwlist[] = {"absolute", "packed", "local", NULL};
- if (!PyArg_ParseTupleAndKeywords(args, kw, "|ii:blend_paths",
- (char **)kwlist, &absolute, &packed))
+ if (!PyArg_ParseTupleAndKeywords(args, kw, "|iii:blend_paths",
+ (char **)kwlist, &absolute, &packed, &local))
{
return NULL;
}
@@ -170,7 +171,7 @@ static PyObject *bpy_user_resource(PyObject *UNUSED(self), PyObject *args, PyObj
}
PyDoc_STRVAR(bpy_resource_path_doc,
-".. function:: resource_path(type, major=2, minor=57)\n"
+".. function:: resource_path(type, major=bpy.app.version[0], minor=bpy.app.version[1])\n"
"\n"
" Return the base path for storing system files.\n"
"\n"
@@ -238,7 +239,6 @@ static PyObject *bpy_import_test(const char *modname)
void BPy_init_modules(void)
{
extern BPy_StructRNA *bpy_context_module;
- extern int bpy_lib_init(PyObject *);
PointerRNA ctx_ptr;
PyObject *mod;
@@ -273,7 +273,7 @@ void BPy_init_modules(void)
PyModule_AddObject(mod, "StructMetaPropGroup", (PyObject *)&pyrna_struct_meta_idprop_Type);
/* needs to be first so bpy_types can run */
- bpy_lib_init(mod);
+ BPY_library_module(mod);
bpy_import_test("bpy_types");
PyModule_AddObject(mod, "data", BPY_rna_module()); /* imports bpy_types by running this */
diff --git a/source/blender/python/intern/bpy.h b/source/blender/python/intern/bpy.h
index 2412d65aa21..fe877d161ff 100644
--- a/source/blender/python/intern/bpy.h
+++ b/source/blender/python/intern/bpy.h
@@ -23,10 +23,13 @@
* \ingroup pythonintern
*/
-
+#ifndef __BPY_H__
+
void BPy_init_modules(void);
extern PyObject *bpy_package_py;
/* bpy_interface_atexit.c */
void BPY_atexit_register(void);
void BPY_atexit_unregister(void);
+
+#endif /* __BPY_H__ */
diff --git a/source/blender/python/intern/bpy_app.c b/source/blender/python/intern/bpy_app.c
index 44979700d94..ccce0d8c5ae 100644
--- a/source/blender/python/intern/bpy_app.c
+++ b/source/blender/python/intern/bpy_app.c
@@ -195,7 +195,7 @@ PyDoc_STRVAR(bpy_app_debug_value_doc,
);
static PyObject *bpy_app_debug_value_get(PyObject *UNUSED(self), void *UNUSED(closure))
{
- return PyLong_FromSsize_t(G.rt);
+ return PyLong_FromSsize_t(G.debug_value);
}
static int bpy_app_debug_value_set(PyObject *UNUSED(self), PyObject *value, void *UNUSED(closure))
@@ -207,7 +207,7 @@ static int bpy_app_debug_value_set(PyObject *UNUSED(self), PyObject *value, void
return -1;
}
- G.rt = param;
+ G.debug_value = param;
return 0;
}
diff --git a/source/blender/python/intern/bpy_app_ffmpeg.c b/source/blender/python/intern/bpy_app_ffmpeg.c
index 44bba4c098f..5ae2a11710a 100644
--- a/source/blender/python/intern/bpy_app_ffmpeg.c
+++ b/source/blender/python/intern/bpy_app_ffmpeg.c
@@ -26,11 +26,8 @@
#include <Python.h>
#include "BLI_utildefines.h"
-#include "BLI_callbacks.h"
-#include "RNA_types.h"
-#include "RNA_access.h"
-#include "bpy_rna.h"
+#include "bpy_app_ffmpeg.h"
#ifdef WITH_FFMPEG
#include <libavcodec/avcodec.h>
@@ -80,8 +77,10 @@ static PyObject *make_ffmpeg_info(void)
return NULL;
}
+#if 0 // UNUSED
#define SetIntItem(flag) \
PyStructSequence_SET_ITEM(ffmpeg_info, pos++, PyLong_FromLong(flag))
+#endif
#define SetStrItem(str) \
PyStructSequence_SET_ITEM(ffmpeg_info, pos++, PyUnicode_FromString(str))
#define SetObjItem(obj) \
@@ -121,7 +120,7 @@ static PyObject *make_ffmpeg_info(void)
return NULL;
}
-#undef SetIntItem
+// #undef SetIntItem
#undef SetStrItem
#undef SetObjItem
diff --git a/source/blender/python/intern/bpy_app_handlers.c b/source/blender/python/intern/bpy_app_handlers.c
index bab5a83a6ed..4d7f2080bbc 100644
--- a/source/blender/python/intern/bpy_app_handlers.c
+++ b/source/blender/python/intern/bpy_app_handlers.c
@@ -37,6 +37,8 @@
#include "bpy_rna.h"
#include "bpy_app_handlers.h"
+#include "BPY_extern.h"
+
void bpy_app_generic_callback(struct Main *main, struct ID *id, void *arg);
static PyTypeObject BlenderAppCbType;
diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c
index ac9ff4c8ef5..b628f42e759 100644
--- a/source/blender/python/intern/bpy_interface.c
+++ b/source/blender/python/intern/bpy_interface.c
@@ -53,6 +53,7 @@
#include "BLI_path_util.h"
#include "BLI_fileops.h"
+#include "BLI_listbase.h"
#include "BLI_math_base.h"
#include "BLI_string.h"
#include "BLI_string_utf8.h"
@@ -163,8 +164,17 @@ void bpy_context_clear(bContext *UNUSED(C), PyGILState_STATE *gilstate)
void BPY_text_free_code(Text *text)
{
if (text->compiled) {
+ PyGILState_STATE gilstate;
+ int use_gil = !PYC_INTERPRETER_ACTIVE;
+
+ if (use_gil)
+ gilstate = PyGILState_Ensure();
+
Py_DECREF((PyObject *)text->compiled);
text->compiled = NULL;
+
+ if (use_gil)
+ PyGILState_Release(gilstate);
}
}
@@ -241,6 +251,10 @@ void BPY_python_start(int argc, const char **argv)
* an error, this is highly annoying, another stumbling block for devs,
* so use a more relaxed error handler and enforce utf-8 since the rest of
* blender is utf-8 too - campbell */
+
+ /* XXX, update: this is unreliable! 'PYTHONIOENCODING' is ignored in MS-Windows
+ * when dynamically linked, see: [#31555] for details.
+ * Python doesn't expose a good way to set this. */
BLI_setenv("PYTHONIOENCODING", "utf-8:surrogateescape");
/* Python 3.2 now looks for '2.xx/python/include/python3.2d/pyconfig.h' to
@@ -303,7 +317,7 @@ void BPY_python_end(void)
PyGILState_Ensure(); /* finalizing, no need to grab the state */
- // free other python data.
+ /* free other python data. */
pyrna_free_types();
/* clear all python data from structs */
@@ -317,7 +331,7 @@ void BPY_python_end(void)
Py_Finalize();
#ifdef TIME_PY_RUN
- // measure time since py started
+ /* measure time since py started */
bpy_timer = PIL_check_seconds_timer() - bpy_timer;
printf("*bpy stats* - ");
@@ -365,6 +379,7 @@ typedef struct {
static int python_script_exec(bContext *C, const char *fn, struct Text *text,
struct ReportList *reports, const short do_jump)
{
+ Main *bmain_old = CTX_data_main(C);
PyObject *main_mod = NULL;
PyObject *py_dict = NULL, *py_result = NULL;
PyGILState_STATE gilstate;
@@ -443,7 +458,11 @@ static int python_script_exec(bContext *C, const char *fn, struct Text *text,
if (!py_result) {
if (text) {
if (do_jump) {
- python_script_error_jump_text(text);
+ /* ensure text is valid before use, the script may have freed its self */
+ Main *bmain_new = CTX_data_main(C);
+ if ((bmain_old == bmain_new) && (BLI_findindex(&bmain_new->text, text) != -1)) {
+ python_script_error_jump_text(text);
+ }
}
}
BPy_errors_to_report(reports);
@@ -639,7 +658,7 @@ void BPY_modules_load_user(bContext *C)
bpy_context_set(C, &gilstate);
- for (text = CTX_data_main(C)->text.first; text; text = text->id.next) {
+ for (text = bmain->text.first; text; text = text->id.next) {
if (text->flags & TXT_ISSCRIPT && BLI_testextensie(text->id.name + 2, ".py")) {
if (!(G.f & G_SCRIPT_AUTOEXEC)) {
printf("scripts disabled for \"%s\", skipping '%s'\n", bmain->name, text->id.name + 2);
@@ -654,6 +673,11 @@ void BPY_modules_load_user(bContext *C)
else {
Py_DECREF(module);
}
+
+ /* check if the script loaded a new file */
+ if (bmain != CTX_data_main(C)) {
+ break;
+ }
}
}
}
@@ -662,11 +686,20 @@ void BPY_modules_load_user(bContext *C)
int BPY_context_member_get(bContext *C, const char *member, bContextDataResult *result)
{
- PyObject *pyctx = (PyObject *)CTX_py_dict_get(C);
- PyObject *item = PyDict_GetItemString(pyctx, member);
+ PyGILState_STATE gilstate;
+ int use_gil = !PYC_INTERPRETER_ACTIVE;
+
+ PyObject *pyctx;
+ PyObject *item;
PointerRNA *ptr = NULL;
int done = FALSE;
+ if (use_gil)
+ gilstate = PyGILState_Ensure();
+
+ pyctx = (PyObject *)CTX_py_dict_get(C);
+ item = PyDict_GetItemString(pyctx, member);
+
if (item == NULL) {
/* pass */
}
@@ -702,7 +735,8 @@ int BPY_context_member_get(bContext *C, const char *member, bContextDataResult *
CTX_data_list_add(result, ptr->id.data, ptr->type, ptr->data);
}
else {
- printf("List item not a valid type\n");
+ printf("PyContext: '%s' list item not a valid type in sequece type '%s'\n",
+ member, Py_TYPE(item)->tp_name);
}
}
@@ -722,6 +756,9 @@ int BPY_context_member_get(bContext *C, const char *member, bContextDataResult *
}
}
+ if (use_gil)
+ PyGILState_Release(gilstate);
+
return done;
}
diff --git a/source/blender/python/intern/bpy_interface_atexit.c b/source/blender/python/intern/bpy_interface_atexit.c
index db97d361c73..13d8cedf907 100644
--- a/source/blender/python/intern/bpy_interface_atexit.c
+++ b/source/blender/python/intern/bpy_interface_atexit.c
@@ -32,6 +32,7 @@
#include <Python.h>
#include "bpy_util.h"
+#include "bpy.h" /* own include */
#include "WM_api.h"
diff --git a/source/blender/python/intern/bpy_library.c b/source/blender/python/intern/bpy_library.c
index d34bdfe9448..7571fe0f75e 100644
--- a/source/blender/python/intern/bpy_library.c
+++ b/source/blender/python/intern/bpy_library.c
@@ -39,6 +39,12 @@
#include "BLO_readfile.h"
+#include "BLI_utildefines.h"
+#include "BLI_string.h"
+#include "BLI_linklist.h"
+#include "BLI_path_util.h"
+#include "BLI_listbase.h"
+
#include "BKE_global.h"
#include "BKE_main.h"
#include "BKE_library.h"
@@ -46,15 +52,10 @@
#include "BKE_report.h"
#include "BKE_context.h"
-#include "BLI_utildefines.h"
-#include "BLI_string.h"
-#include "BLI_linklist.h"
-#include "BLI_path_util.h"
-#include "BLI_listbase.h"
-
#include "DNA_space_types.h" /* FILE_LINK, FILE_RELPATH */
#include "bpy_util.h"
+#include "bpy_library.h"
#ifdef USE_RNA_DATABLOCKS
# include "bpy_rna.h"
@@ -426,7 +427,7 @@ static PyObject *bpy_lib_dir(BPy_Library *self)
}
-int bpy_lib_init(PyObject *mod_par)
+int BPY_library_module(PyObject *mod_par)
{
static PyMethodDef load_meth = {"load", (PyCFunction)bpy_lib_load,
METH_STATIC | METH_VARARGS | METH_KEYWORDS,
diff --git a/source/blender/python/intern/bpy_library.h b/source/blender/python/intern/bpy_library.h
new file mode 100644
index 00000000000..1b68007b704
--- /dev/null
+++ b/source/blender/python/intern/bpy_library.h
@@ -0,0 +1,32 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor(s): Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/python/intern/bpy_library.h
+ * \ingroup pythonintern
+ */
+
+#ifndef __BPY_LIBRARY_H__
+#define __BPY_LIBRARY_H__
+
+int BPY_library_module(PyObject *);
+
+#endif /* __BPY_LIBRARY_H__ */
diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c
index 7375ad454a0..55ef217e781 100644
--- a/source/blender/python/intern/bpy_operator.c
+++ b/source/blender/python/intern/bpy_operator.c
@@ -160,7 +160,9 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args)
if (!PyArg_ParseTuple(args, "sO|O!si:_bpy.ops.call",
&opname, &context_dict, &PyDict_Type, &kw, &context_str, &is_undo))
+ {
return NULL;
+ }
ot = WM_operatortype_find(opname, TRUE);
@@ -232,7 +234,7 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args)
#ifdef BPY_RELEASE_GIL
/* release GIL, since a thread could be started from an operator
* that updates a driver */
- /* note: I havve not seen any examples of code that does this
+ /* note: I have not seen any examples of code that does this
* so it may not be officially supported but seems to work ok. */
{
PyThreadState *ts = PyEval_SaveThread();
diff --git a/source/blender/python/intern/bpy_props.c b/source/blender/python/intern/bpy_props.c
index f8609859251..bb116017f6b 100644
--- a/source/blender/python/intern/bpy_props.c
+++ b/source/blender/python/intern/bpy_props.c
@@ -307,7 +307,7 @@ static int py_long_as_int(PyObject *py_long, int *r_int)
} (void)0
/* terse macros for error checks shared between all funcs cant use function
- * calls because of static strins passed to pyrna_set_to_enum_bitfield */
+ * calls because of static strings passed to pyrna_set_to_enum_bitfield */
#define BPY_PROPDEF_CHECK(_func, _property_flag_items) \
if (id_len >= MAX_IDPROP_NAME) { \
PyErr_Format(PyExc_TypeError, \
@@ -360,6 +360,7 @@ static int py_long_as_int(PyObject *py_long, int *r_int)
#define BPY_PROPDEF_UPDATE_DOC \
" :arg update: function to be called when this value is modified,\n" \
" This function must take 2 values (self, context) and return None.\n" \
+" *Warning* there are no safety checks to avoid infinite recursion.\n" \
" :type update: function\n" \
#if 0
@@ -1298,9 +1299,8 @@ static PyObject *BPy_EnumProperty(PyObject *self, PyObject *args, PyObject *kw)
eitems = enum_items_from_py(items_fast, def, &defvalue,
(opts & PROP_ENUM_FLAG) != 0);
- Py_DECREF(items_fast);
-
if (!eitems) {
+ Py_DECREF(items_fast);
return NULL;
}
}
@@ -1327,6 +1327,10 @@ static PyObject *BPy_EnumProperty(PyObject *self, PyObject *args, PyObject *kw)
RNA_def_property_duplicate_pointers(srna, prop);
if (is_itemf == FALSE) {
+ /* note: this must be postponed until after #RNA_def_property_duplicate_pointers
+ * otherwise if this is a generator it may free the strings before we copy them */
+ Py_DECREF(items_fast);
+
MEM_freeN(eitems);
}
}
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
index 4bba7ba6838..00c1f5cfe6c 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -37,6 +37,8 @@
#include "RNA_types.h"
+#include "BPY_extern.h"
+
#include "bpy_rna.h"
#include "bpy_rna_anim.h"
#include "bpy_props.h"
@@ -45,7 +47,7 @@
#include "bpy_intern_string.h"
#ifdef USE_PYRNA_INVALIDATE_WEAKREF
-#include "MEM_guardedalloc.h"
+# include "MEM_guardedalloc.h"
#endif
#include "BLI_dynstr.h"
@@ -55,7 +57,7 @@
#include "BLI_utildefines.h"
#ifdef USE_PYRNA_INVALIDATE_WEAKREF
-#include "BLI_ghash.h"
+# include "BLI_ghash.h"
#endif
#include "RNA_enum_types.h"
@@ -78,7 +80,7 @@
#include "../generic/py_capi_utils.h"
#ifdef WITH_INTERNATIONAL
-#include "BLF_translation.h"
+# include "BLF_translation.h"
#endif
#define USE_PEDANTIC_WRITE
@@ -369,7 +371,7 @@ static int deferred_register_prop(StructRNA *srna, PyObject *key, PyObject *item
static PyObject *pyrna_prop_array_subscript_slice(BPy_PropertyArrayRNA *self, PointerRNA *ptr, PropertyRNA *prop,
Py_ssize_t start, Py_ssize_t stop, Py_ssize_t length);
-static short pyrna_rotation_euler_order_get(PointerRNA *ptr, PropertyRNA **prop_eul_order, short order_fallback);
+static short pyrna_rotation_euler_order_get(PointerRNA *ptr, PropertyRNA **prop_eul_order, const short order_fallback);
/* bpyrna vector/euler/quat callbacks */
static unsigned char mathutils_rna_array_cb_index = -1; /* index for our callbacks */
@@ -435,7 +437,7 @@ static int mathutils_rna_vector_set(BaseMathObject *bmo, int subtype)
RNA_property_float_range(&self->ptr, self->prop, &min, &max);
- if (min != FLT_MIN || max != FLT_MAX) {
+ if (min != -FLT_MAX || max != FLT_MAX) {
int i, len = RNA_property_array_length(&self->ptr, self->prop);
for (i = 0; i < len; i++) {
CLAMP(bmo->data[i], min, max);
@@ -571,7 +573,7 @@ static Mathutils_Callback mathutils_rna_matrix_cb = {
NULL
};
-static short pyrna_rotation_euler_order_get(PointerRNA *ptr, PropertyRNA **prop_eul_order, short order_fallback)
+static short pyrna_rotation_euler_order_get(PointerRNA *ptr, PropertyRNA **prop_eul_order, const short order_fallback)
{
/* attempt to get order */
if (*prop_eul_order == NULL)
@@ -2150,10 +2152,10 @@ static PyObject *pyrna_prop_collection_subscript_str(BPy_PropertyRNA *self, cons
* -1: exception set
* 0: not found
* 1: found */
-int pyrna_prop_collection_subscript_str_lib_pair_ptr(BPy_PropertyRNA *self, PyObject *key,
- const char *err_prefix, const short err_not_found,
- PointerRNA *r_ptr
- )
+static int pyrna_prop_collection_subscript_str_lib_pair_ptr(BPy_PropertyRNA *self, PyObject *key,
+ const char *err_prefix, const short err_not_found,
+ PointerRNA *r_ptr
+ )
{
char *keyname;
@@ -2209,7 +2211,7 @@ int pyrna_prop_collection_subscript_str_lib_pair_ptr(BPy_PropertyRNA *self, PyOb
return -1;
}
- /* lib is either a valid poniter or NULL,
+ /* lib is either a valid pointer or NULL,
* either way can do direct comparison with id.lib */
RNA_PROP_BEGIN (&self->ptr, itemptr, self->prop)
@@ -2418,7 +2420,7 @@ static PyObject *pyrna_prop_collection_subscript(BPy_PropertyRNA *self, PyObject
/* only get the length for negative values */
Py_ssize_t len = (Py_ssize_t)RNA_property_collection_length(&self->ptr, self->prop);
if (start < 0) start += len;
- if (stop < 0) start += len;
+ if (stop < 0) stop += len;
}
if (stop - start <= 0) {
@@ -2544,7 +2546,7 @@ static int pyrna_prop_collection_ass_subscript(BPy_PropertyRNA *self, PyObject *
/* only get the length for negative values */
Py_ssize_t len = (Py_ssize_t)RNA_property_collection_length(&self->ptr, self->prop);
if (start < 0) start += len;
- if (stop < 0) start += len;
+ if (stop < 0) stop += len;
}
if (stop - start <= 0) {
@@ -4267,7 +4269,7 @@ static int foreach_parse_args(BPy_PropertyRNA *self, PyObject *args,
return -1;
}
- *tot = PySequence_Size(*seq); // TODO - buffer may not be a sequence! array.array() is tho.
+ *tot = PySequence_Size(*seq); /* TODO - buffer may not be a sequence! array.array() is tho. */
if (*tot > 0) {
foreach_attr_type(self, *attr, raw_type, attr_tot, attr_signed);
@@ -5908,7 +5910,7 @@ PyTypeObject pyrna_prop_collection_iter_Type = {
NULL
};
-PyObject *pyrna_prop_collection_iter_CreatePyObject(PointerRNA *ptr, PropertyRNA *prop)
+static PyObject *pyrna_prop_collection_iter_CreatePyObject(PointerRNA *ptr, PropertyRNA *prop)
{
BPy_PropertyCollectionIterRNA *self = PyObject_New(BPy_PropertyCollectionIterRNA, &pyrna_prop_collection_iter_Type);
@@ -6736,20 +6738,24 @@ static int rna_function_arg_count(FunctionRNA *func)
return count;
}
-static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_function)
+static int bpy_class_validate_recursive(PointerRNA *dummyptr, StructRNA *srna, void *py_data, int *have_function)
{
const ListBase *lb;
Link *link;
FunctionRNA *func;
PropertyRNA *prop;
- StructRNA *srna = dummyptr->type;
const char *class_type = RNA_struct_identifier(srna);
+ StructRNA *srna_base = RNA_struct_base(srna);
PyObject *py_class = (PyObject *)py_data;
PyObject *base_class = RNA_struct_py_type_get(srna);
PyObject *item;
int i, flag, arg_count, func_arg_count;
const char *py_class_name = ((PyTypeObject *)py_class)->tp_name; // __name__
+ if (srna_base) {
+ if (bpy_class_validate_recursive(dummyptr, srna_base, py_data, have_function) != 0)
+ return -1;
+ }
if (base_class) {
if (!PyObject_IsSubclass(py_class, base_class)) {
@@ -6884,6 +6890,11 @@ static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_fun
return 0;
}
+static int bpy_class_validate(PointerRNA *dummyptr, void *py_data, int *have_function)
+{
+ return bpy_class_validate_recursive(dummyptr, dummyptr->type, py_data, have_function);
+}
+
/* TODO - multiple return values like with rna functions */
static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, ParameterList *parms)
{
@@ -7000,7 +7011,7 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param
Py_INCREF(py_class_instance);
#endif
/*
- * This would work fine but means __init__ functions wouldnt run.
+ * This would work fine but means __init__ functions wouldn't run.
* none of blenders default scripts use __init__ but its nice to call it
* for general correctness. just to note why this is here when it could be safely removed.
*/
diff --git a/source/blender/python/intern/bpy_rna.h b/source/blender/python/intern/bpy_rna.h
index 113367788b6..1fb4b116872 100644
--- a/source/blender/python/intern/bpy_rna.h
+++ b/source/blender/python/intern/bpy_rna.h
@@ -175,6 +175,10 @@ PyObject *BPY_rna_types(void);
PyObject *pyrna_struct_CreatePyObject(PointerRNA *ptr);
PyObject *pyrna_prop_CreatePyObject(PointerRNA *ptr, PropertyRNA *prop);
+/* extern'd by other modules which don't deal closely with RNA */
+PyObject *pyrna_id_CreatePyObject(struct ID *id);
+int pyrna_id_FromPyObject(PyObject *obj, struct ID **id);
+
/* operators also need this to set args */
int pyrna_pydict_to_props(PointerRNA *ptr, PyObject *kw, int all_args, const char *error_prefix);
PyObject *pyrna_prop_to_py(PointerRNA *ptr, PropertyRNA *prop);
diff --git a/source/blender/python/intern/bpy_rna_anim.c b/source/blender/python/intern/bpy_rna_anim.c
index b7a45897668..69839514a12 100644
--- a/source/blender/python/intern/bpy_rna_anim.c
+++ b/source/blender/python/intern/bpy_rna_anim.c
@@ -52,9 +52,6 @@
#include "bpy_util.h"
#include "bpy_rna_anim.h"
-#define TRUE 1
-#define FALSE 0
-
/* for keyframes and drivers */
static int pyrna_struct_anim_args_parse(
PointerRNA *ptr, const char *error_prefix, const char *path,
diff --git a/source/blender/python/intern/bpy_rna_array.c b/source/blender/python/intern/bpy_rna_array.c
index 5c59c1e620a..70815d9f8bf 100644
--- a/source/blender/python/intern/bpy_rna_array.c
+++ b/source/blender/python/intern/bpy_rna_array.c
@@ -342,7 +342,7 @@ static char *copy_values(PyObject *seq, PointerRNA *ptr, PropertyRNA *prop,
/* Regarding PySequence_GetItem() failing.
*
- * This should never be NULL since we validated it, _but_ some triky python
+ * This should never be NULL since we validated it, _but_ some tricky python
* developer could write their own sequence type which succeeds on
* validating but fails later somehow, so include checks for safety.
*/
diff --git a/source/blender/python/intern/bpy_util.c b/source/blender/python/intern/bpy_util.c
index 01495c793a8..53d0e10a01e 100644
--- a/source/blender/python/intern/bpy_util.c
+++ b/source/blender/python/intern/bpy_util.c
@@ -37,7 +37,7 @@
#include "../generic/py_capi_utils.h"
-static bContext* __py_context = NULL;
+static bContext *__py_context = NULL;
bContext *BPy_GetContext(void) { return __py_context; }
void BPy_SetContext(bContext *C) { __py_context = C; }
diff --git a/source/blender/python/intern/gpu.c b/source/blender/python/intern/gpu.c
index e5f45ca7736..69fe0c48a41 100644
--- a/source/blender/python/intern/gpu.c
+++ b/source/blender/python/intern/gpu.c
@@ -74,8 +74,7 @@ static struct PyModuleDef gpumodule = {
NULL, NULL, NULL, NULL, NULL
};
-PyMODINIT_FUNC
-PyInit_gpu(void)
+static PyObject *PyInit_gpu(void)
{
PyObject *m;
@@ -83,7 +82,7 @@ PyInit_gpu(void)
if (m == NULL)
return NULL;
- // device constants
+ /* device constants */
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_OBJECT_VIEWMAT);
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_OBJECT_MAT);
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_OBJECT_VIEWIMAT);
@@ -187,13 +186,13 @@ static PyObject *GPU_export_shader(PyObject *UNUSED(self), PyObject *args, PyObj
return NULL;
}
- // we can call our internal function at last:
+ /* we can call our internal function at last: */
shader = GPU_shader_export(scene, material);
if (!shader) {
PyErr_SetString(PyExc_RuntimeError, "cannot export shader");
return NULL;
}
- // build a dictionary
+ /* build a dictionary */
result = PyDict_New();
if (shader->fragment) {
PY_DICT_ADD_STRING(result, shader, fragment);
diff --git a/source/blender/python/intern/gpu.h b/source/blender/python/intern/gpu.h
index 68e7fa4aa9e..f8c751f7f94 100644
--- a/source/blender/python/intern/gpu.h
+++ b/source/blender/python/intern/gpu.h
@@ -30,7 +30,7 @@
*/
/**
- * Initalizes the gpu Python module.
+ * Initializes the gpu Python module.
*/
PyObject *GPU_initPython(void);
diff --git a/source/blender/python/intern/stubs.c b/source/blender/python/intern/stubs.c
index 50d2e88f210..e0508359e13 100644
--- a/source/blender/python/intern/stubs.c
+++ b/source/blender/python/intern/stubs.c
@@ -28,12 +28,15 @@
* \ingroup pythonintern
*/
+#include "BLI_utildefines.h"
+
+#include "BPY_extern.h"
/* python, will come back */
//void BPY_script_exec(void) {}
//void BPY_python_start(void) {}
//void BPY_text_free_code(void) {}
-void BPY_pyconstraint_exec(void) {}
-void BPY_pyconstraint_target(void) {}
-int BPY_is_pyconstraint(void) { return 0;}
-void BPY_pyconstraint_update(void) {}
+void BPY_pyconstraint_exec(struct bPythonConstraint *UNUSED(con), struct bConstraintOb *UNUSED(cob), struct ListBase *UNUSED(targets)) {}
+void BPY_pyconstraint_target(struct bPythonConstraint *UNUSED(con), struct bConstraintTarget *UNUSED(ct)) {}
+int BPY_is_pyconstraint(struct Text *UNUSED(text)) { return 0;}
+void BPY_pyconstraint_update(struct Object *UNUSED(owner), struct bConstraint *UNUSED(con)) {}
diff --git a/source/blender/python/mathutils/mathutils_Color.c b/source/blender/python/mathutils/mathutils_Color.c
index 59c57e916d4..8b5e39fbd27 100644
--- a/source/blender/python/mathutils/mathutils_Color.c
+++ b/source/blender/python/mathutils/mathutils_Color.c
@@ -147,7 +147,7 @@ static PyObject *Color_str(ColorObject *self)
}
//------------------------tp_richcmpr
-//returns -1 execption, 0 false, 1 true
+//returns -1 exception, 0 false, 1 true
static PyObject *Color_richcmpr(PyObject *a, PyObject *b, int op)
{
PyObject *res;
@@ -565,7 +565,7 @@ static PyObject *Color_div(PyObject *v1, PyObject *v2)
return NULL;
}
-/* mulplication in-place: obj *= obj */
+/* multiplication in-place: obj *= obj */
static PyObject *Color_imul(PyObject *v1, PyObject *v2)
{
ColorObject *color = (ColorObject *)v1;
@@ -591,7 +591,7 @@ static PyObject *Color_imul(PyObject *v1, PyObject *v2)
return v1;
}
-/* mulplication in-place: obj *= obj */
+/* multiplication in-place: obj *= obj */
static PyObject *Color_idiv(PyObject *v1, PyObject *v2)
{
ColorObject *color = (ColorObject *)v1;
@@ -644,8 +644,8 @@ static PyNumberMethods Color_NumMethods = {
NULL, /*nb_remainder*/
NULL, /*nb_divmod*/
NULL, /*nb_power*/
- (unaryfunc) Color_neg, /*nb_negative*/
- (unaryfunc) NULL, /*tp_positive*/
+ (unaryfunc) Color_neg, /*nb_negative*/
+ (unaryfunc) Color_copy, /*tp_positive*/
(unaryfunc) NULL, /*tp_absolute*/
(inquiry) NULL, /*tp_bool*/
(unaryfunc) NULL, /*nb_invert*/
diff --git a/source/blender/python/mathutils/mathutils_Euler.c b/source/blender/python/mathutils/mathutils_Euler.c
index 583831b1655..468ef3788c1 100644
--- a/source/blender/python/mathutils/mathutils_Euler.c
+++ b/source/blender/python/mathutils/mathutils_Euler.c
@@ -701,7 +701,7 @@ PyTypeObject euler_Type = {
* (i.e. it was allocated elsewhere by MEM_mallocN())
* pass Py_NEW - if vector is not a WRAPPER and managed by PYTHON
* (i.e. it must be created here with PyMEM_malloc())*/
-PyObject *Euler_CreatePyObject(float *eul, short order, int type, PyTypeObject *base_type)
+PyObject *Euler_CreatePyObject(float *eul, const short order, int type, PyTypeObject *base_type)
{
EulerObject *self;
@@ -738,7 +738,7 @@ PyObject *Euler_CreatePyObject(float *eul, short order, int type, PyTypeObject *
return (PyObject *)self;
}
-PyObject *Euler_CreatePyObject_cb(PyObject *cb_user, short order,
+PyObject *Euler_CreatePyObject_cb(PyObject *cb_user, const short order,
unsigned char cb_type, unsigned char cb_subtype)
{
EulerObject *self = (EulerObject *)Euler_CreatePyObject(NULL, order, Py_NEW, NULL);
diff --git a/source/blender/python/mathutils/mathutils_Euler.h b/source/blender/python/mathutils/mathutils_Euler.h
index bcbc6c60ca7..e04d45e4630 100644
--- a/source/blender/python/mathutils/mathutils_Euler.h
+++ b/source/blender/python/mathutils/mathutils_Euler.h
@@ -48,8 +48,8 @@ typedef struct {
* blender (stored in blend_data). This is an either/or struct not both */
//prototypes
-PyObject *Euler_CreatePyObject(float *eul, short order, int type, PyTypeObject *base_type);
-PyObject *Euler_CreatePyObject_cb(PyObject *cb_user, short order,
+PyObject *Euler_CreatePyObject(float *eul, const short order, int type, PyTypeObject *base_type);
+PyObject *Euler_CreatePyObject_cb(PyObject *cb_user, const short order,
unsigned char cb_type, unsigned char cb_subtype);
short euler_order_from_string(const char *str, const char *error_prefix);
diff --git a/source/blender/python/mathutils/mathutils_Matrix.c b/source/blender/python/mathutils/mathutils_Matrix.c
index 5f372abcc69..9a0a1b3ca95 100644
--- a/source/blender/python/mathutils/mathutils_Matrix.c
+++ b/source/blender/python/mathutils/mathutils_Matrix.c
@@ -995,7 +995,7 @@ static PyObject *Matrix_to_euler(MatrixObject *self, PyObject *args)
if (eul_compat) {
if (order == 1) mat3_to_compatible_eul(eul, eul_compatf, mat);
- else mat3_to_compatible_eulO(eul, eul_compatf, order, mat);
+ else mat3_to_compatible_eulO(eul, eul_compatf, order, mat);
}
else {
if (order == 1) mat3_to_eul(eul, mat);
@@ -1875,7 +1875,7 @@ static PyObject *Matrix_sub(PyObject *m1, PyObject *m2)
return Matrix_CreatePyObject(mat, mat1->num_col, mat1->num_row, Py_NEW, Py_TYPE(mat1));
}
/*------------------------obj * obj------------------------------
- * mulplication */
+ * multiplication */
static PyObject *matrix_mul_float(MatrixObject *mat, const float scalar)
{
float tmat[16];
@@ -2282,7 +2282,7 @@ static struct PyMethodDef Matrix_methods[] = {
{"invert", (PyCFunction) Matrix_invert, METH_NOARGS, Matrix_invert_doc},
{"inverted", (PyCFunction) Matrix_inverted, METH_NOARGS, Matrix_inverted_doc},
{"to_3x3", (PyCFunction) Matrix_to_3x3, METH_NOARGS, Matrix_to_3x3_doc},
- // TODO. {"resize_3x3", (PyCFunction) Matrix_resize3x3, METH_NOARGS, Matrix_resize3x3_doc},
+ /* TODO. {"resize_3x3", (PyCFunction) Matrix_resize3x3, METH_NOARGS, Matrix_resize3x3_doc}, */
{"to_4x4", (PyCFunction) Matrix_to_4x4, METH_NOARGS, Matrix_to_4x4_doc},
{"resize_4x4", (PyCFunction) Matrix_resize_4x4, METH_NOARGS, Matrix_resize_4x4_doc},
{"rotate", (PyCFunction) Matrix_rotate, METH_O, Matrix_rotate_doc},
@@ -2443,7 +2443,7 @@ PyObject *Matrix_CreatePyObject_cb(PyObject *cb_user,
/* ----------------------------------------------------------------------------
- * special type for alaternate access */
+ * special type for alternate access */
typedef struct {
PyObject_HEAD /* required python macro */
diff --git a/source/blender/python/mathutils/mathutils_Quaternion.c b/source/blender/python/mathutils/mathutils_Quaternion.c
index 5ac1214409f..2debff68af1 100644
--- a/source/blender/python/mathutils/mathutils_Quaternion.c
+++ b/source/blender/python/mathutils/mathutils_Quaternion.c
@@ -795,8 +795,8 @@ static PyObject *quat_mul_float(QuaternionObject *quat, const float scalar)
return Quaternion_CreatePyObject(tquat, Py_NEW, Py_TYPE(quat));
}
-//------------------------obj * obj------------------------------
-//mulplication
+/*------------------------obj * obj------------------------------
+ * multiplication */
static PyObject *Quaternion_mul(PyObject *q1, PyObject *q2)
{
float quat[QUAT_SIZE], scalar;
@@ -903,7 +903,7 @@ static PyNumberMethods Quaternion_NumMethods = {
NULL, /*nb_divmod*/
NULL, /*nb_power*/
(unaryfunc) Quaternion_neg, /*nb_negative*/
- (unaryfunc) 0, /*tp_positive*/
+ (unaryfunc) Quaternion_copy,/*tp_positive*/
(unaryfunc) 0, /*tp_absolute*/
(inquiry) 0, /*tp_bool*/
(unaryfunc) 0, /*nb_invert*/
@@ -1085,12 +1085,15 @@ static PyObject *Quaternion_new(PyTypeObject *type, PyObject *args, PyObject *kw
return NULL;
break;
case 2:
- if (mathutils_array_parse(quat, 3, 3, seq, "mathutils.Quaternion()") == -1)
+ {
+ float axis[3];
+ if (mathutils_array_parse(axis, 3, 3, seq, "mathutils.Quaternion()") == -1)
return NULL;
angle = angle_wrap_rad(angle); /* clamp because of precision issues */
- axis_angle_to_quat(quat, quat, angle);
+ axis_angle_to_quat(quat, axis, angle);
break;
/* PyArg_ParseTuple assures no more then 2 */
+ }
}
return Quaternion_CreatePyObject(quat, Py_NEW, type);
}
diff --git a/source/blender/python/mathutils/mathutils_Vector.c b/source/blender/python/mathutils/mathutils_Vector.c
index 79285b7778d..d461486d485 100644
--- a/source/blender/python/mathutils/mathutils_Vector.c
+++ b/source/blender/python/mathutils/mathutils_Vector.c
@@ -1530,7 +1530,7 @@ static PyObject *Vector_isub(PyObject *v1, PyObject *v2)
}
/*------------------------obj * obj------------------------------
- * mulplication*/
+ * multiplication */
/* COLUMN VECTOR Multiplication (Matrix X Vector)
@@ -1687,7 +1687,7 @@ static PyObject *Vector_mul(PyObject *v1, PyObject *v2)
return NULL;
}
-/* mulplication in-place: obj *= obj */
+/* multiplication in-place: obj *= obj */
static PyObject *Vector_imul(PyObject *v1, PyObject *v2)
{
VectorObject *vec = (VectorObject *)v1;
@@ -1864,7 +1864,7 @@ static double vec_magnitude_nosqrt(float *data, int size)
/*------------------------tp_richcmpr
- * returns -1 execption, 0 false, 1 true */
+ * returns -1 exception, 0 false, 1 true */
static PyObject *Vector_richcmpr(PyObject *objectA, PyObject *objectB, int comparison_type)
{
VectorObject *vecA = NULL, *vecB = NULL;
@@ -2046,7 +2046,7 @@ static PyNumberMethods Vector_NumMethods = {
NULL, /*nb_divmod*/
NULL, /*nb_power*/
(unaryfunc) Vector_neg, /*nb_negative*/
- (unaryfunc) NULL, /*tp_positive*/
+ (unaryfunc) Vector_copy,/*tp_positive*/
(unaryfunc) NULL, /*tp_absolute*/
(inquiry) NULL, /*tp_bool*/
(unaryfunc) NULL, /*nb_invert*/
@@ -2908,7 +2908,7 @@ PyObject *Vector_CreatePyObject(float *vec, const int size, const int type, PyTy
}
else { /* new empty */
fill_vn_fl(self->vec, size, 0.0f);
- if (size == 4) { /* do the homogenous thing */
+ if (size == 4) { /* do the homogeneous thing */
self->vec[3] = 1.0f;
}
}
diff --git a/source/blender/python/mathutils/mathutils_geometry.c b/source/blender/python/mathutils/mathutils_geometry.c
index 524515ac460..818f30ec284 100644
--- a/source/blender/python/mathutils/mathutils_geometry.c
+++ b/source/blender/python/mathutils/mathutils_geometry.c
@@ -46,8 +46,6 @@
#include "BLI_math.h"
#include "BLI_utildefines.h"
-#define SWAP_FLOAT(a, b, tmp) tmp = a; a = b; b = tmp
-
/*-------------------------DOC STRINGS ---------------------------*/
PyDoc_STRVAR(M_Geometry_doc,
"The Blender geometry module"
@@ -728,6 +726,7 @@ static PyObject *M_Geometry_intersect_point_line(PyObject *UNUSED(self), PyObjec
float pt_in[3], pt_out[3], l1[3], l2[3];
float lambda;
PyObject *ret;
+ int size = 2;
if (!PyArg_ParseTuple(args, "O!O!O!:intersect_point_line",
&vector_Type, &pt,
@@ -745,20 +744,20 @@ static PyObject *M_Geometry_intersect_point_line(PyObject *UNUSED(self), PyObjec
}
/* accept 2d verts */
- if (pt->size == 3) { copy_v3_v3(pt_in, pt->vec); }
- else { pt_in[2] = 0.0f; copy_v2_v2(pt_in, pt->vec); }
+ if (pt->size >= 3) { copy_v3_v3(pt_in, pt->vec); size = 3; }
+ else { copy_v2_v2(pt_in, pt->vec); pt_in[2] = 0.0f; }
- if (line_1->size == 3) { copy_v3_v3(l1, line_1->vec); }
- else { l1[2] = 0.0f; copy_v2_v2(l1, line_1->vec); }
+ if (line_1->size >= 3) { copy_v3_v3(l1, line_1->vec); size = 3; }
+ else { copy_v2_v2(l1, line_1->vec); l1[2] = 0.0f; }
- if (line_2->size == 3) { copy_v3_v3(l2, line_2->vec); }
- else { l2[2] = 0.0f; copy_v2_v2(l2, line_2->vec); }
+ if (line_2->size >= 3) { copy_v3_v3(l2, line_2->vec); size = 3; }
+ else { copy_v2_v2(l2, line_2->vec); l2[2] = 0.0f; }
/* do the calculation */
lambda = closest_to_line_v3(pt_out, pt_in, l1, l2);
ret = PyTuple_New(2);
- PyTuple_SET_ITEM(ret, 0, Vector_CreatePyObject(pt_out, 3, Py_NEW, NULL));
+ PyTuple_SET_ITEM(ret, 0, Vector_CreatePyObject(pt_out, size, Py_NEW, NULL));
PyTuple_SET_ITEM(ret, 1, PyFloat_FromDouble(lambda));
return ret;
}
diff --git a/source/blender/python/mathutils/mathutils_noise.c b/source/blender/python/mathutils/mathutils_noise.c
index 9460c4d0b36..da32e36dc02 100644
--- a/source/blender/python/mathutils/mathutils_noise.c
+++ b/source/blender/python/mathutils/mathutils_noise.c
@@ -717,7 +717,7 @@ PyDoc_STRVAR(M_Noise_voronoi_doc,
" :type position: :class:`mathutils.Vector`\n"
" :arg distance_metric: Method of measuring distance.\n"
" :type distance_metric: Value in noise.distance_metrics or int\n"
-" :arg exponent: The exponent for Minkovsky distance metric.\n"
+" :arg exponent: The exponent for Minkowski distance metric.\n"
" :type exponent: float\n"
" :return: A list of distances to the four closest features and their locations.\n"
" :rtype: list of four floats, list of four :class:`mathutils.Vector` types\n"
@@ -729,7 +729,7 @@ static PyObject *M_Noise_voronoi(PyObject *UNUSED(self), PyObject *args)
float vec[3];
float da[4], pa[12];
int dtype = 0;
- float me = 2.5f; /* default minkovsky exponent */
+ float me = 2.5f; /* default minkowski exponent */
int i;
diff --git a/source/blender/python/rna_dump.py b/source/blender/python/rna_dump.py
index 489f011e693..15cc60d997e 100644
--- a/source/blender/python/rna_dump.py
+++ b/source/blender/python/rna_dump.py
@@ -95,7 +95,7 @@ def seek(r, txt, recurs):
if GEN_PATH:
newtxt = txt + '.' + item
- if item == 'rna_type' and VERBOSE_TYPE == False: # just avoid because it spits out loads of data
+ if item == 'rna_type' and VERBOSE_TYPE is False: # just avoid because it spits out loads of data
continue
value = getattr(r, item, None)
@@ -114,7 +114,7 @@ def seek(r, txt, recurs):
except:
length = 0
- if VERBOSE == False and length >= 4:
+ if VERBOSE is False and length >= 4:
for i in (0, length - 1):
if i > 0:
if PRINT_DATA:
diff --git a/source/blender/quicktime/apple/qtkit_export.m b/source/blender/quicktime/apple/qtkit_export.m
index b4a89eae89e..bb87fe21c49 100644
--- a/source/blender/quicktime/apple/qtkit_export.m
+++ b/source/blender/quicktime/apple/qtkit_export.m
@@ -88,8 +88,8 @@ typedef struct QuicktimeExport {
AudioStreamBasicDescription audioInputFormat, audioOutputFormat;
AudioStreamPacketDescription *audioOutputPktDesc;
SInt64 audioFilePos;
- char* audioInputBuffer;
- char* audioOutputBuffer;
+ char *audioInputBuffer;
+ char *audioOutputBuffer;
UInt32 audioCodecMaxOutputPacketSize;
UInt64 audioTotalExportedFrames, audioTotalSavedFrames;
UInt64 audioLastFrame;
@@ -318,7 +318,7 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R
if(qtexport == NULL) qtexport = MEM_callocN(sizeof(QuicktimeExport), "QuicktimeExport");
- [QTMovie enterQTKitOnThread];
+ [QTMovie enterQTKitOnThread];
/* Check first if the QuickTime 7.2.1 initToWritableFile: method is available */
if ([[[[QTMovie alloc] init] autorelease] respondsToSelector:@selector(initToWritableFile:error:)] != YES) {
@@ -328,7 +328,7 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R
else {
makeqtstring(rd, name);
qtexport->filename = [[NSString alloc] initWithCString:name
- encoding:[NSString defaultCStringEncoding]];
+ encoding:[NSString defaultCStringEncoding]];
qtexport->movie = nil;
qtexport->audioFile = NULL;
@@ -354,7 +354,7 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R
strcpy(extension,".aiff");
break;
}
-
+
tmpnam(name);
strcat(name, extension);
outputFileURL = CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault,(UInt8*) name, strlen(name), false);
@@ -362,7 +362,7 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R
if (outputFileURL) {
qtexport->audioFileName = [[NSString alloc] initWithCString:name
- encoding:[NSString defaultCStringEncoding]];
+ encoding:[NSString defaultCStringEncoding]];
qtexport->audioInputFormat.mSampleRate = U.audiorate;
qtexport->audioInputFormat.mFormatID = kAudioFormatLinearPCM;
@@ -400,13 +400,13 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R
qtexport->audioInputFormat.mFormatFlags |= kLinearPCMFormatFlagIsPacked;
- /*Ouput format*/
+ /*Output format*/
qtexport->audioOutputFormat.mFormatID = rd->qtcodecsettings.audiocodecType;
//TODO: set audio channels
qtexport->audioOutputFormat.mChannelsPerFrame = 2;
qtexport->audioOutputFormat.mSampleRate = rd->qtcodecsettings.audioSampleRate;
- /* Default value for compressed formats, overriden after if not the case */
+ /* Default value for compressed formats, overridden after if not the case */
qtexport->audioOutputFormat.mFramesPerPacket = 0;
qtexport->audioOutputFormat.mBytesPerFrame = 0;
qtexport->audioOutputFormat.mBytesPerPacket = 0;
@@ -471,7 +471,7 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R
qtexport->audioOutputFormat.mBytesPerFrame = qtexport->audioOutputFormat.mBytesPerPacket;
break;
}
-
+
err = AudioFileCreateWithURL(outputFileURL, audioFileType, &qtexport->audioOutputFormat, kAudioFileFlags_EraseFile, &qtexport->audioFile);
CFRelease(outputFileURL);
@@ -489,27 +489,27 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R
else {
UInt32 prop,propSize;
/* Set up codec properties */
- if (rd->qtcodecsettings.audiocodecType == kAudioFormatMPEG4AAC) { /*Lossy compressed format*/
+ if (rd->qtcodecsettings.audiocodecType == kAudioFormatMPEG4AAC) { /* Lossy compressed format */
prop = rd->qtcodecsettings.audioBitRate;
AudioConverterSetProperty(qtexport->audioConverter, kAudioConverterEncodeBitRate,
- sizeof(prop), &prop);
+ sizeof(prop), &prop);
if (rd->qtcodecsettings.audioCodecFlags & QTAUDIO_FLAG_CODEC_ISCBR)
prop = kAudioCodecBitRateControlMode_Constant;
else
prop = kAudioCodecBitRateControlMode_LongTermAverage;
AudioConverterSetProperty(qtexport->audioConverter, kAudioCodecPropertyBitRateControlMode,
- sizeof(prop), &prop);
+ sizeof(prop), &prop);
}
/* Conversion quality : if performance impact then offer degraded option */
- if ((rd->qtcodecsettings.audioCodecFlags & QTAUDIO_FLAG_RESAMPLE_NOHQ) == 0) {
+ if ((rd->qtcodecsettings.audioCodecFlags & QTAUDIO_FLAG_RESAMPLE_NOHQ) == 0) {
prop = kAudioConverterSampleRateConverterComplexity_Mastering;
AudioConverterSetProperty(qtexport->audioConverter, kAudioConverterSampleRateConverterComplexity,
- sizeof(prop), &prop);
+ sizeof(prop), &prop);
prop = kAudioConverterQuality_Max;
AudioConverterSetProperty(qtexport->audioConverter, kAudioConverterSampleRateConverterQuality,
- sizeof(prop), &prop);
+ sizeof(prop), &prop);
}
write_cookie(qtexport->audioConverter, qtexport->audioFile);
@@ -517,29 +517,30 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R
/* Allocate output buffer */
if (qtexport->audioOutputFormat.mBytesPerPacket ==0) /* VBR */
AudioConverterGetProperty(qtexport->audioConverter, kAudioConverterPropertyMaximumOutputPacketSize,
- &propSize, &qtexport->audioCodecMaxOutputPacketSize);
+ &propSize, &qtexport->audioCodecMaxOutputPacketSize);
else
qtexport->audioCodecMaxOutputPacketSize = qtexport->audioOutputFormat.mBytesPerPacket;
qtexport->audioInputBuffer = MEM_mallocN(AUDIOOUTPUTBUFFERSIZE, "qt_audio_inputPacket");
qtexport->audioOutputBuffer = MEM_mallocN(AUDIOOUTPUTBUFFERSIZE, "qt_audio_outputPacket");
- qtexport->audioOutputPktDesc = MEM_mallocN(sizeof(AudioStreamPacketDescription)*AUDIOOUTPUTBUFFERSIZE/qtexport->audioCodecMaxOutputPacketSize,
- "qt_audio_pktdesc");
+ qtexport->audioOutputPktDesc = MEM_mallocN(sizeof(AudioStreamPacketDescription) * AUDIOOUTPUTBUFFERSIZE / qtexport->audioCodecMaxOutputPacketSize,
+ "qt_audio_pktdesc");
}
}
}
-
+
if (err == noErr) {
- qtexport->videoTempFileName = [[NSString alloc] initWithCString:tmpnam(nil)
- encoding:[NSString defaultCStringEncoding]];
- if (qtexport->videoTempFileName)
+ qtexport->videoTempFileName = [[NSString alloc] initWithCString:tmpnam(nil)
+ encoding:[NSString defaultCStringEncoding]];
+ if (qtexport->videoTempFileName) {
qtexport->movie = [[QTMovie alloc] initToWritableFile:qtexport->videoTempFileName error:&error];
+ }
}
}
else
qtexport->movie = [[QTMovie alloc] initToWritableFile:qtexport->filename error:&error];
-
+
if(qtexport->movie == nil) {
BKE_report(reports, RPT_ERROR, "Unable to create quicktime movie.");
success= 0;
@@ -585,7 +586,7 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R
specs.rate = U.audiorate;
qtexport->audioInputDevice = AUD_openReadDevice(specs);
AUD_playDevice(qtexport->audioInputDevice, scene->sound_scene, rd->sfra * rd->frs_sec_base / rd->frs_sec);
-
+
qtexport->audioOutputPktPos = 0;
qtexport->audioTotalExportedFrames = 0;
qtexport->audioTotalSavedFrames = 0;
@@ -655,13 +656,13 @@ int append_qt(struct RenderData *rd, int start_frame, int frame, int *pixels, in
audioPacketsConverted = AUDIOOUTPUTBUFFERSIZE / qtexport->audioCodecMaxOutputPacketSize;
err = AudioConverterFillComplexBuffer(qtexport->audioConverter, AudioConverterInputCallback,
- NULL, &audioPacketsConverted, &qtexport->audioBufferList, qtexport->audioOutputPktDesc);
+ NULL, &audioPacketsConverted, &qtexport->audioBufferList, qtexport->audioOutputPktDesc);
if (audioPacketsConverted) {
AudioFileWritePackets(qtexport->audioFile, false, qtexport->audioBufferList.mBuffers[0].mDataByteSize,
- qtexport->audioOutputPktDesc, qtexport->audioOutputPktPos, &audioPacketsConverted, qtexport->audioOutputBuffer);
+ qtexport->audioOutputPktDesc, qtexport->audioOutputPktPos, &audioPacketsConverted, qtexport->audioOutputBuffer);
qtexport->audioOutputPktPos += audioPacketsConverted;
- if (qtexport->audioOutputFormat.mFramesPerPacket) {
+ if (qtexport->audioOutputFormat.mFramesPerPacket) {
// this is the common case: format has constant frames per packet
qtexport->audioTotalSavedFrames += (audioPacketsConverted * qtexport->audioOutputFormat.mFramesPerPacket);
}
@@ -751,8 +752,8 @@ void end_qt(void)
}
/* Save file */
- dict = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
- forKey:QTMovieFlatten];
+ dict = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
+ forKey:QTMovieFlatten];
if (dict) {
[qtexport->movie writeToFile:qtexport->filename withAttributes:dict];
diff --git a/source/blender/quicktime/apple/qtkit_import.m b/source/blender/quicktime/apple/qtkit_import.m
index 197cbdc2f0b..75b9056de1b 100644
--- a/source/blender/quicktime/apple/qtkit_import.m
+++ b/source/blender/quicktime/apple/qtkit_import.m
@@ -85,7 +85,7 @@ int anim_is_quicktime (const char *name)
if( BLI_testextensie(name, ".swf") ||
BLI_testextensie(name, ".txt") ||
BLI_testextensie(name, ".mpg") ||
- BLI_testextensie(name, ".avi") || // wouldnt be appropriate ;)
+ BLI_testextensie(name, ".avi") || // wouldn't be appropriate ;)
BLI_testextensie(name, ".mov") || // disabled, suboptimal decoding speed
BLI_testextensie(name, ".mp4") || // disabled, suboptimal decoding speed
BLI_testextensie(name, ".m4v") || // disabled, suboptimal decoding speed
@@ -153,8 +153,9 @@ static ImBuf * nsImageToiBuf(NSImage *sourceImage, int width, int height)
ibuf = IMB_allocImBuf (width, height, 32, IB_rect);
if (!ibuf) {
- if(QTIME_DEBUG) printf("quicktime_import: could not allocate memory for the " \
- "image.\n");
+ if (QTIME_DEBUG) {
+ printf("quicktime_import: could not allocate memory for the image.\n");
+ }
return NULL;
}
@@ -290,7 +291,6 @@ ImBuf * qtime_fetchibuf (struct anim *anim, int position)
ibuf = nsImageToiBuf(frameImage,anim->x, anim->y);
[pool drain];
- ibuf->profile = IB_PROFILE_SRGB;
return ibuf;
}
@@ -455,8 +455,7 @@ ImBuf *imb_quicktime_decode(unsigned char *mem, int size, int flags)
ibuf = IMB_allocImBuf(bitmapSize.width, bitmapSize.height, 32/*RGBA*/, 0);
if (!ibuf) {
fprintf(stderr,
- "imb_cocoaLoadImage: could not allocate memory for the " \
- "image.\n");
+ "imb_cocoaLoadImage: could not allocate memory for the image.\n");
[bitmapImage release];
[pool drain];
return NULL;
diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c
index ab1192bfdfc..659fd997c1f 100644
--- a/source/blender/quicktime/apple/quicktime_export.c
+++ b/source/blender/quicktime/apple/quicktime_export.c
@@ -202,7 +202,7 @@ static OSErr QT_SaveCodecSettingsToScene(RenderData *rd, ReportList *reports)
QuicktimeCodecData *qcd = rd->qtcodecdata;
- // check if current scene already has qtcodec settings, and clear them
+ /* check if current scene already has qtcodec settings, and clear them */
if (qcd) {
free_qtcodecdata(qcd);
}
@@ -210,26 +210,26 @@ static OSErr QT_SaveCodecSettingsToScene(RenderData *rd, ReportList *reports)
qcd = rd->qtcodecdata = MEM_callocN(sizeof(QuicktimeCodecData), "QuicktimeCodecData");
}
- // obtain all current codec settings
+ /* obtain all current codec settings */
SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
- // retreive codecdata from quicktime in a atomcontainer
+ /* retreive codecdata from quicktime in a atomcontainer */
myErr = SCGetSettingsAsAtomContainer(qtdata->theComponent, &myContainer);
if (myErr != noErr) {
- BKE_reportf(reports, RPT_ERROR, "Quicktime: SCGetSettingsAsAtomContainer failed\n");
+ BKE_reportf(reports, RPT_ERROR, "Quicktime: SCGetSettingsAsAtomContainer failed\n");
goto bail;
}
- // get the size of the atomcontainer
+ /* get the size of the atomcontainer */
mySize = GetHandleSize((Handle)myContainer);
- // lock and convert the atomcontainer to a *valid* pointer
+ /* lock and convert the atomcontainer to a *valid* pointer */
QTLockContainer(myContainer);
myPtr = *(Handle)myContainer;
- // copy the Quicktime data into the blender qtcodecdata struct
+ /* copy the Quicktime data into the blender qtcodecdata struct */
if (myPtr) {
qcd->cdParms = MEM_mallocN(mySize, "qt.cdParms");
memcpy(qcd->cdParms, myPtr, mySize);
@@ -258,21 +258,21 @@ static OSErr QT_GetCodecSettingsFromScene(RenderData *rd, ReportList *reports)
QuicktimeCodecData *qcd = rd->qtcodecdata;
- // if there is codecdata in the blendfile, convert it to a Quicktime handle
+ /* if there is codecdata in the blendfile, convert it to a Quicktime handle */
if (qcd) {
myHandle = NewHandle(qcd->cdSize);
PtrToHand(qcd->cdParms, &myHandle, qcd->cdSize);
}
- // restore codecsettings to the quicktime component
+ /* restore codecsettings to the quicktime component */
if (qcd->cdParms && qcd->cdSize) {
myErr = SCSetSettingsFromAtomContainer((GraphicsExportComponent)qtdata->theComponent, (QTAtomContainer)myHandle);
if (myErr != noErr) {
- BKE_reportf(reports, RPT_ERROR, "Quicktime: SCSetSettingsFromAtomContainer failed\n");
+ BKE_reportf(reports, RPT_ERROR, "Quicktime: SCSetSettingsFromAtomContainer failed\n");
goto bail;
}
- // update runtime codecsettings for use with the codec dialog
+ /* update runtime codecsettings for use with the codec dialog */
SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
@@ -312,22 +312,22 @@ static OSErr QT_AddUserDataTextToMovie(Movie theMovie, char *theText, OSType the
long myLength = strlen(theText);
OSErr myErr = noErr;
- // get the movie's user data list
+ /* get the movie's user data list */
myUserData = GetMovieUserData(theMovie);
if (myUserData == NULL)
return(paramErr);
-
- // copy the specified text into a new handle
+
+ /* copy the specified text into a new handle */
myHandle = NewHandleClear(myLength);
if (myHandle == NULL)
return(MemError());
BlockMoveData(theText, *myHandle, myLength);
- // add the data to the movie's user data
+ /* add the data to the movie's user data */
myErr = AddUserDataText(myUserData, myHandle, theType, 1, (short)GetScriptManagerVariable(smRegionCode));
- // clean up
+ /* clean up */
DisposeHandle(myHandle);
return(myErr);
}
@@ -408,9 +408,9 @@ static void QT_StartAddVideoSamplesToMedia(const Rect *trackFrame, int rectx, in
SCDefaultPixMapSettings(qtdata->theComponent, qtexport->thePixMap, true);
- // workaround for crash with H.264, which requires an upgrade to
- // the new callback based api for proper encoding, but that's not
- // really compatible with rendering out frames sequentially
+ /* workaround for crash with H.264, which requires an upgrade to
+ * the new callback based api for proper encoding, but that's not
+ * really compatible with rendering out frames sequentially */
gTemporalSettings = qtdata->gTemporalSettings;
if (qtdata->gSpatialSettings.codecType == kH264CodecType) {
if (gTemporalSettings.temporalQuality != codecMinQuality) {
@@ -662,7 +662,7 @@ void free_qtcomponentdata(void)
static void check_renderbutton_framerate(RenderData *rd, ReportList *reports)
{
- // to keep float framerates consistent between the codec dialog and frs/sec button.
+ /* to keep float framerates consistent between the codec dialog and frs/sec button. */
OSErr err;
err = SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
@@ -722,17 +722,17 @@ void quicktime_verify_image_type(RenderData *rd, ImageFormatData *imf)
int get_qtcodec_settings(RenderData *rd, ReportList *reports)
{
OSErr err = noErr;
- // erase any existing codecsetting
+ /* erase any existing codecsetting */
if (qtdata) {
if (qtdata->theComponent) CloseComponent(qtdata->theComponent);
free_qtcomponentdata();
}
- // allocate new
+ /* allocate new */
qtdata = MEM_callocN(sizeof(QuicktimeComponentData), "QuicktimeComponentData");
qtdata->theComponent = OpenDefaultComponent(StandardCompressionType, StandardCompressionSubType);
- // get previous selected codecsetting, from qtatom or detailed settings
+ /* get previous selected codecsetting, from qtatom or detailed settings */
if (rd->qtcodecdata && rd->qtcodecdata->cdParms) {
QT_GetCodecSettingsFromScene(rd, reports);
}
@@ -774,17 +774,17 @@ static int request_qtcodec_settings(bContext *C, wmOperator *op)
Scene *scene = CTX_data_scene(C);
RenderData *rd = &scene->r;
- // erase any existing codecsetting
+ /* erase any existing codecsetting */
if (qtdata) {
if (qtdata->theComponent) CloseComponent(qtdata->theComponent);
free_qtcomponentdata();
}
-
- // allocate new
+
+ /* allocate new */
qtdata = MEM_callocN(sizeof(QuicktimeComponentData), "QuicktimeComponentData");
qtdata->theComponent = OpenDefaultComponent(StandardCompressionType, StandardCompressionSubType);
-
- // get previous selected codecsetting, from qtatom or detailed settings
+
+ /* get previous selected codecsetting, from qtatom or detailed settings */
if (rd->qtcodecdata && rd->qtcodecdata->cdParms) {
QT_GetCodecSettingsFromScene(rd, op->reports);
}
@@ -813,14 +813,14 @@ static int request_qtcodec_settings(bContext *C, wmOperator *op)
err = SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
CheckError(err, "SCSetInfo3 error", op->reports);
}
- // put up the dialog box - it needs to be called from the main thread
+ /* put up the dialog box - it needs to be called from the main thread */
err = SCRequestSequenceSettings(qtdata->theComponent);
-
+
if (err == scUserCancelled) {
return OPERATOR_FINISHED;
}
- // update runtime codecsettings for use with the codec dialog
+ /* update runtime codecsettings for use with the codec dialog */
SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
@@ -843,7 +843,7 @@ static int request_qtcodec_settings(bContext *C, wmOperator *op)
QT_SaveCodecSettingsToScene(rd, op->reports);
- // framerate jugglin'
+ /* framerate jugglin' */
if (qtdata->gTemporalSettings.frameRate == 1571553) { // 23.98 fps
qtdata->kVideoTimeScale = 24000;
qtdata->duration = 1001;
diff --git a/source/blender/quicktime/apple/quicktime_import.c b/source/blender/quicktime/apple/quicktime_import.c
index f3e71feec58..e44eba2bfe0 100644
--- a/source/blender/quicktime/apple/quicktime_import.c
+++ b/source/blender/quicktime/apple/quicktime_import.c
@@ -195,7 +195,7 @@ int anim_is_quicktime(const char *name)
if (BLI_testextensie(name, ".swf") ||
BLI_testextensie(name, ".txt") ||
BLI_testextensie(name, ".mpg") ||
- BLI_testextensie(name, ".avi") || /* wouldnt be appropriate ;) */
+ BLI_testextensie(name, ".avi") || /* wouldn't be appropriate ;) */
BLI_testextensie(name, ".tga") ||
BLI_testextensie(name, ".png") ||
BLI_testextensie(name, ".bmp") ||
@@ -392,8 +392,6 @@ ImBuf *qtime_fetchibuf(struct anim *anim, int position)
}
#endif
- ibuf->profile = IB_PROFILE_SRGB;
-
IMB_flipy(ibuf);
return ibuf;
}
diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h
index 5afdb2a29ce..2376aeca55e 100644
--- a/source/blender/render/extern/include/RE_engine.h
+++ b/source/blender/render/extern/include/RE_engine.h
@@ -86,9 +86,14 @@ typedef struct RenderEngine {
int flag;
struct Object *camera_override;
+ int tile_x;
+ int tile_y;
+
struct Render *re;
ListBase fullresult;
char *text;
+
+ int resolution_x, resolution_y;
} RenderEngine;
RenderEngine *RE_engine_create(RenderEngineType *type);
@@ -97,9 +102,9 @@ void RE_engine_free(RenderEngine *engine);
void RE_layer_load_from_file(struct RenderLayer *layer, struct ReportList *reports, const char *filename, int x, int y);
void RE_result_load_from_file(struct RenderResult *result, struct ReportList *reports, const char *filename);
-struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h);
+struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h, const char *layername);
void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result);
-void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result);
+void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result, int cancel);
int RE_engine_test_break(RenderEngine *engine);
void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info);
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h
index 4e33e4d7e2d..c7a8bfeec1d 100644
--- a/source/blender/render/extern/include/RE_pipeline.h
+++ b/source/blender/render/extern/include/RE_pipeline.h
@@ -51,8 +51,8 @@ struct EnvMap;
/* this include is what is exposed of render to outside world */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
-#define RE_MAXNAME 32
+/* length of the scene name + passname */
+#define RE_MAXNAME ((MAX_ID_NAME - 2) + 10)
/* only used as handle */
typedef struct Render Render;
@@ -81,7 +81,7 @@ typedef struct RenderLayer {
struct RenderLayer *next, *prev;
/* copy of RenderData */
- char name[RE_MAXNAME];
+ char name[RE_MAXNAME];
unsigned int lay, lay_zmask, lay_exclude;
int layflag, passflag, pass_xor;
@@ -92,6 +92,9 @@ typedef struct RenderLayer {
float *acolrect; /* 4 float, optional transparent buffer, needs storage for display updates */
float *scolrect; /* 4 float, optional strand buffer, needs storage for display updates */
int rectx, recty;
+
+ /* optional saved endresult on disk */
+ void *exrhandle;
ListBase passes;
@@ -124,7 +127,7 @@ typedef struct RenderResult {
volatile RenderLayer *renlay;
/* optional saved endresult on disk */
- void *exrhandle;
+ int do_exr_tile;
/* for render results in Image, verify validity for sequences */
int framenr;
@@ -144,8 +147,7 @@ typedef struct RenderStats {
short curfield, curblur, curpart, partsdone, convertdone, curfsa;
double starttime, lastframetime;
const char *infostr, *statstr;
- char scenename[32];
-
+ char scene_name[MAX_ID_NAME - 2];
} RenderStats;
/* *********************** API ******************** */
@@ -154,7 +156,6 @@ typedef struct RenderStats {
/* calling a new render with same name, frees automatic existing render */
struct Render *RE_NewRender (const char *name);
struct Render *RE_GetRender(const char *name);
-struct Render *RE_GetRender_FromData(const struct RenderData *rd);
/* returns 1 while render is working (or renders called from within render) */
int RE_RenderInProgress(struct Render *re);
@@ -224,7 +225,7 @@ void RE_PreviewRender(struct Render *re, struct Main *bmain, struct Scene *scene
int RE_ReadRenderResult(struct Scene *scene, struct Scene *scenode);
int RE_WriteRenderResult(struct ReportList *reports, RenderResult *rr, const char *filename, int compress);
-struct RenderResult *RE_MultilayerConvert(void *exrhandle, int rectx, int recty);
+struct RenderResult *RE_MultilayerConvert(void *exrhandle, const char *colorspace, int predivide, int rectx, int recty);
extern const float default_envmap_layout[];
int RE_WriteEnvmapResult(struct ReportList *reports, struct Scene *scene, struct EnvMap *env, const char *relpath, const char imtype, float layout[12]);
diff --git a/source/blender/render/extern/include/RE_render_ext.h b/source/blender/render/extern/include/RE_render_ext.h
index 9d7393f9414..2a9a1becc42 100644
--- a/source/blender/render/extern/include/RE_render_ext.h
+++ b/source/blender/render/extern/include/RE_render_ext.h
@@ -39,10 +39,11 @@
/* called by meshtools */
struct View3D;
struct Scene;
+struct LinkNode;
-void RE_make_sticky(struct Scene *scene, struct View3D *v3d);
-
-/* for radiosity module */
+void RE_make_sticky(struct Scene *scene, struct Object *camera, struct LinkNode *objects);
+
+/* for radiosity module */
struct RadView;
struct RNode;
struct Render;
@@ -58,14 +59,14 @@ void texture_rgb_blend(float in[3], const float tex[3], const float out[3], floa
float texture_value_blend(float tex, float out, float fact, float facg, int blendtype);
/* node_composite.c */
-void ibuf_sample(struct ImBuf *ibuf, float fx, float fy, float dx, float dy, float *result);
+void ibuf_sample(struct ImBuf *ibuf, float fx, float fy, float dx, float dy, float result[4]);
void antialias_tagbuf(int xsize, int ysize, char *rectmove);
/* dynamicpaint.c */
struct Material *RE_init_sample_material(struct Material *orig_mat, struct Scene *scene);
void RE_free_sample_material(struct Material *mat);
void RE_sample_material_color(struct Material *mat, float color[3], float *alpha, const float volume_co[3], const float surface_co[3],
- int face_index, short hit_quad, struct DerivedMesh *orcoDm, struct Object *ob);
+ int face_index, short hit_quad, struct DerivedMesh *orcoDm, struct Object *ob);
#endif /* __RE_RENDER_EXT_H__ */
diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h
index 26a1b9908b3..57fb80f11c0 100644
--- a/source/blender/render/extern/include/RE_shader_ext.h
+++ b/source/blender/render/extern/include/RE_shader_ext.h
@@ -134,7 +134,7 @@ typedef struct ShadeInput {
int har; /* hardness */
/* texture coordinates */
- float lo[3], gl[3], ref[3], orn[3], winco[3], sticky[3], vcol[4];
+ float lo[3], gl[3], ref[3], orn[3], winco[3], vcol[4];
float refcol[4], displace[3];
float strandco, tang[3], nmapnorm[3], nmaptang[4], stress, winspeed[4];
float duplilo[3], dupliuv[3];
@@ -150,7 +150,6 @@ typedef struct ShadeInput {
float dxno[3], dyno[3], dxview, dyview;
float dxlv[3], dylv[3];
float dxwin[3], dywin[3];
- float dxsticky[3], dysticky[3];
float dxrefract[3], dyrefract[3];
float dxstrand, dystrand;
diff --git a/source/blender/render/intern/include/initrender.h b/source/blender/render/intern/include/initrender.h
index 7917fd66cfa..43ab9552194 100644
--- a/source/blender/render/intern/include/initrender.h
+++ b/source/blender/render/intern/include/initrender.h
@@ -40,7 +40,7 @@ struct Object;
void free_sample_tables(Render *re);
void make_sample_tables(Render *re);
-void initparts(Render *re);
+void initparts(Render *re, int do_crop);
void freeparts(Render *re);
diff --git a/source/blender/render/intern/include/pixelshading.h b/source/blender/render/intern/include/pixelshading.h
index 00d731912b6..30d574694b2 100644
--- a/source/blender/render/intern/include/pixelshading.h
+++ b/source/blender/render/intern/include/pixelshading.h
@@ -44,9 +44,9 @@
* \return pointer to the object
*/
int shadeHaloFloat(HaloRen *har,
- float *col, int zz,
- float dist, float xn,
- float yn, short flarec);
+ float *col, int zz,
+ float dist, float xn,
+ float yn, short flarec);
/**
* Render the sky at pixel (x, y).
diff --git a/source/blender/render/intern/include/rayobject.h b/source/blender/render/intern/include/rayobject.h
index ce20ce4ea46..7752baadff4 100644
--- a/source/blender/render/intern/include/rayobject.h
+++ b/source/blender/render/intern/include/rayobject.h
@@ -55,14 +55,14 @@ int RE_rayobject_raycast(RayObject *r, struct Isect *i);
/* Acceleration Structures */
-RayObject* RE_rayobject_octree_create(int ocres, int size);
-RayObject* RE_rayobject_instance_create(RayObject *target, float transform[][4], void *ob, void *target_ob);
-RayObject* RE_rayobject_empty_create(void);
+RayObject *RE_rayobject_octree_create(int ocres, int size);
+RayObject *RE_rayobject_instance_create(RayObject *target, float transform[][4], void *ob, void *target_ob);
+RayObject *RE_rayobject_empty_create(void);
-RayObject* RE_rayobject_blibvh_create(int size); /* BLI_kdopbvh.c */
-RayObject* RE_rayobject_vbvh_create(int size); /* raytrace/rayobject_vbvh.c */
-RayObject* RE_rayobject_svbvh_create(int size); /* raytrace/rayobject_svbvh.c */
-RayObject* RE_rayobject_qbvh_create(int size); /* raytrace/rayobject_qbvh.c */
+RayObject *RE_rayobject_blibvh_create(int size); /* BLI_kdopbvh.c */
+RayObject *RE_rayobject_vbvh_create(int size); /* raytrace/rayobject_vbvh.c */
+RayObject *RE_rayobject_svbvh_create(int size); /* raytrace/rayobject_svbvh.c */
+RayObject *RE_rayobject_qbvh_create(int size); /* raytrace/rayobject_qbvh.c */
/* Building */
@@ -85,7 +85,7 @@ typedef struct RayFace {
#define RE_rayface_isQuad(a) ((a)->quad)
-RayObject* RE_rayface_from_vlak(RayFace *face, struct ObjectInstanceRen *obi, struct VlakRen *vlr);
+RayObject *RE_rayface_from_vlak(RayFace *face, struct ObjectInstanceRen *obi, struct VlakRen *vlr);
/* RayObject representing faces directly from a given VlakRen structure. Thus
* allowing to save memory, but making code triangle intersection dependent on
@@ -96,7 +96,7 @@ typedef struct VlakPrimitive {
struct VlakRen *face;
} VlakPrimitive;
-RayObject* RE_vlakprimitive_from_vlak(VlakPrimitive *face, struct ObjectInstanceRen *obi, struct VlakRen *vlr);
+RayObject *RE_vlakprimitive_from_vlak(VlakPrimitive *face, struct ObjectInstanceRen *obi, struct VlakRen *vlr);
/* Bounding Box */
@@ -118,4 +118,3 @@ void RE_rayobject_hint_bb(RayObject *r, struct RayHint *hint, float *min, float
#endif
#endif
-
diff --git a/source/blender/render/intern/include/render_result.h b/source/blender/render/intern/include/render_result.h
index 3d73ee1e912..5d61417cbaf 100644
--- a/source/blender/render/intern/include/render_result.h
+++ b/source/blender/render/intern/include/render_result.h
@@ -37,6 +37,8 @@
#define RR_USE_MEM 0
#define RR_USE_EXR 1
+#define RR_ALL_LAYERS NULL
+
struct ImBuf;
struct ListBase;
struct Render;
@@ -45,15 +47,17 @@ struct RenderLayer;
struct RenderResult;
struct Scene;
struct rcti;
+struct ColorManagedDisplaySettings;
+struct ColorManagedViewSettings;
/* New */
struct RenderResult *render_result_new(struct Render *re,
- struct rcti *partrct, int crop, int savebuffers);
+ struct rcti *partrct, int crop, int savebuffers, const char *layername);
struct RenderResult *render_result_new_full_sample(struct Render *re,
struct ListBase *lb, struct rcti *partrct, int crop, int savebuffers);
-struct RenderResult *render_result_new_from_exr(void *exrhandle, int rectx, int recty);
+struct RenderResult *render_result_new_from_exr(void *exrhandle, const char *colorspace, int predivide, int rectx, int recty);
/* Merge */
@@ -76,9 +80,9 @@ void render_result_exr_file_end(struct Render *re);
void render_result_exr_file_merge(struct RenderResult *rr, struct RenderResult *rrpart);
-void render_result_exr_file_path(struct Scene *scene, int sample, char *filepath);
+void render_result_exr_file_path(struct Scene *scene, const char *layname, int sample, char *filepath);
int render_result_exr_file_read(struct Render *re, int sample);
-int render_result_exr_file_read_path(struct RenderResult *rr, const char *filepath);
+int render_result_exr_file_read_path(struct RenderResult *rr, struct RenderLayer *rl_single, const char *filepath);
/* Combined Pixel Rect */
@@ -88,7 +92,9 @@ void render_result_rect_from_ibuf(struct RenderResult *rr, struct RenderData *rd
void render_result_rect_fill_zero(struct RenderResult *rr);
void render_result_rect_get_pixels(struct RenderResult *rr, struct RenderData *rd,
- unsigned int *rect, int rectx, int recty);
+ unsigned int *rect, int rectx, int recty,
+ const struct ColorManagedViewSettings *view_settings,
+ const struct ColorManagedDisplaySettings *display_settings);
#endif /* __RENDER_RESULT_H__ */
diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h
index e5af51cf2d7..85dbd9356f4 100644
--- a/source/blender/render/intern/include/render_types.h
+++ b/source/blender/render/intern/include/render_types.h
@@ -63,7 +63,6 @@ struct ReportList;
struct Main;
#define TABLEINITSIZE 1024
-#define LAMPINITSIZE 256
typedef struct SampleTables {
float centLut[16];
diff --git a/source/blender/render/intern/include/renderdatabase.h b/source/blender/render/intern/include/renderdatabase.h
index 584e56836fa..d116dfe7b17 100644
--- a/source/blender/render/intern/include/renderdatabase.h
+++ b/source/blender/render/intern/include/renderdatabase.h
@@ -55,7 +55,6 @@ struct RadFace;
typedef struct VertTableNode {
struct VertRen *vert;
float *rad;
- float *sticky;
float *strand;
float *tangent;
float *stress;
@@ -110,7 +109,6 @@ struct ObjectRen *RE_addRenderObject(struct Render *re, struct Object *ob, struc
struct ObjectInstanceRen *RE_addRenderInstance(struct Render *re, struct ObjectRen *obr, struct Object *ob, struct Object *par, int index, int psysindex, float mat[][4], int lay);
void RE_makeRenderInstances(struct Render *re);
-float *RE_vertren_get_sticky(struct ObjectRen *obr, struct VertRen *ver, int verify);
float *RE_vertren_get_stress(struct ObjectRen *obr, struct VertRen *ver, int verify);
float *RE_vertren_get_rad(struct ObjectRen *obr, struct VertRen *ver, int verify);
float *RE_vertren_get_strand(struct ObjectRen *obr, struct VertRen *ver, int verify);
diff --git a/source/blender/render/intern/include/sunsky.h b/source/blender/render/intern/include/sunsky.h
index 4bb7d99ba16..74e42109be5 100644
--- a/source/blender/render/intern/include/sunsky.h
+++ b/source/blender/render/intern/include/sunsky.h
@@ -27,9 +27,7 @@
#ifndef __SUNSKY_H__
#define __SUNSKY_H__
-#define SPECTRUM_MAX_COMPONENTS 100
-#define SPECTRUM_START 350.0
-#define SPECTRUM_END 800.0
+// #define SPECTRUM_MAX_COMPONENTS 100
typedef struct SunSky {
short effect_type, skyblendtype, sky_colorspace;
diff --git a/source/blender/render/intern/include/texture.h b/source/blender/render/intern/include/texture.h
index 1c8a2552482..4b9fa2d2042 100644
--- a/source/blender/render/intern/include/texture.h
+++ b/source/blender/render/intern/include/texture.h
@@ -76,9 +76,9 @@ void render_realtime_texture(struct ShadeInput *shi, struct Image *ima);
/* imagetexture.h */
-int imagewraposa(struct Tex *tex, struct Image *ima, struct ImBuf *ibuf, const float texvec[3], const float dxt[3], const float dyt[3], struct TexResult *texres);
+int imagewraposa(struct Tex *tex, struct Image *ima, struct ImBuf *ibuf, const float texvec[3], const float dxt[2], const float dyt[2], struct TexResult *texres);
int imagewrap(struct Tex *tex, struct Image *ima, struct ImBuf *ibuf, const float texvec[3], struct TexResult *texres);
-void image_sample(struct Image *ima, float fx, float fy, float dx, float dy, float *result);
+void image_sample(struct Image *ima, float fx, float fy, float dx, float dy, float result[4]);
#endif /* __TEXTURE_H__ */
diff --git a/source/blender/render/intern/include/volumetric.h b/source/blender/render/intern/include/volumetric.h
index 7f63bcbbecc..3805478fed0 100644
--- a/source/blender/render/intern/include/volumetric.h
+++ b/source/blender/render/intern/include/volumetric.h
@@ -41,9 +41,6 @@ void shade_volume_outside(ShadeInput *shi, ShadeResult *shr);
void shade_volume_inside(ShadeInput *shi, ShadeResult *shr);
void shade_volume_shadow(struct ShadeInput *shi, struct ShadeResult *shr, struct Isect *last_is);
-#define STEPSIZE_VIEW 0
-#define STEPSIZE_SHADE 1
-
#define VOL_IS_BACKFACE 1
#define VOL_IS_SAMEMATERIAL 2
diff --git a/source/blender/render/intern/include/zbuf.h b/source/blender/render/intern/include/zbuf.h
index cdf171443d7..e873111e6bf 100644
--- a/source/blender/render/intern/include/zbuf.h
+++ b/source/blender/render/intern/include/zbuf.h
@@ -46,7 +46,7 @@ struct StrandShadeCache;
void fillrect(int *rect, int x, int y, int val);
/**
- * Converts a world coordinate into a homogenous coordinate in view
+ * Converts a world coordinate into a homogeneous coordinate in view
* coordinates.
*/
void projectvert(const float v1[3], float winmat[][4], float adr[4]);
@@ -55,7 +55,7 @@ int testclip(const float v[3]);
void zbuffer_shadow(struct Render *re, float winmat[][4], struct LampRen *lar, int *rectz, int size, float jitx, float jity);
void zbuffer_abuf_shadow(struct Render *re, struct LampRen *lar, float winmat[][4], struct APixstr *APixbuf, struct APixstrand *apixbuf, struct ListBase *apsmbase, int size, int samples, float (*jit)[2]);
-void zbuffer_solid(struct RenderPart *pa, struct RenderLayer *rl, void (*fillfunc)(struct RenderPart*, struct ZSpan*, int, void*), void *data);
+void zbuffer_solid(struct RenderPart *pa, struct RenderLayer *rl, void (*fillfunc)(struct RenderPart *, struct ZSpan *, int, void*), void *data);
unsigned short *zbuffer_transp_shade(struct RenderPart *pa, struct RenderLayer *rl, float *pass, struct ListBase *psmlist);
void zbuffer_sss(RenderPart *pa, unsigned int lay, void *handle, void (*func)(void*, int, int, int, int, int));
@@ -95,7 +95,7 @@ typedef struct ZSpan {
float zmulx, zmuly, zofsx, zofsy; /* transform from hoco to zbuf co */
- int *rectz, *arectz; /* zbuffers, arectz is for transparant */
+ int *rectz, *arectz; /* zbuffers, arectz is for transparent */
int *rectz1; /* seconday z buffer for shadowbuffer (2nd closest z) */
int *rectp; /* polygon index buffer */
int *recto; /* object buffer */
@@ -139,5 +139,10 @@ void zbufclipwire(struct ZSpan *zspan, int obi, int zvlnr, int ec,
void zbuf_make_winmat(Render *re, float winmat[][4]);
void zbuf_render_project(float winmat[][4], const float co[3], float ho[4]);
+/* sould not really be exposed, bad! */
+void hoco_to_zco(ZSpan *zspan, float zco[3], const float hoco[4]);
+void zspan_scanconvert_strand(ZSpan *zspan, void *handle, float *v1, float *v2, float *v3, void (*func)(void *, int, int, float, float, float) );
+void zbufsinglewire(ZSpan *zspan, int obi, int zvlnr, const float ho1[4], const float ho2[4]);
+
#endif
diff --git a/source/blender/render/intern/raytrace/bvh.h b/source/blender/render/intern/raytrace/bvh.h
index 9318e1758a6..103c04a590f 100644
--- a/source/blender/render/intern/raytrace/bvh.h
+++ b/source/blender/render/intern/raytrace/bvh.h
@@ -88,8 +88,8 @@ static inline int rayobject_bb_intersect_test(const Isect *isec, const float *_b
RE_RC_COUNT(isec->raycounter->bb.test);
- if (t1x > t2y || t2x < t1y || t1x > t2z || t2x < t1z || t1y > t2z || t2y < t1z) return 0;
- if (t2x < 0.0 || t2y < 0.0 || t2z < 0.0) return 0;
+ if (t1x > t2y || t2x < t1y || t1x > t2z || t2x < t1z || t1y > t2z || t2y < t1z) return 0;
+ if (t2x < 0.0f || t2y < 0.0f || t2z < 0.0f) return 0;
if (t1x > isec->dist || t1y > isec->dist || t1z > isec->dist) return 0;
RE_RC_COUNT(isec->raycounter->bb.hit);
@@ -133,7 +133,7 @@ static void bvh_bb(Tree *obj, float *min, float *max)
template<class Tree>
static float bvh_cost(Tree *obj)
{
- assert(obj->cost >= 0.0);
+ assert(obj->cost >= 0.0f);
return obj->cost;
}
diff --git a/source/blender/render/intern/raytrace/rayobject.cpp b/source/blender/render/intern/raytrace/rayobject.cpp
index ca74367dd37..6f14c6153f9 100644
--- a/source/blender/render/intern/raytrace/rayobject.cpp
+++ b/source/blender/render/intern/raytrace/rayobject.cpp
@@ -369,12 +369,12 @@ int RE_rayobject_raycast(RayObject *r, Isect *isec)
/* setup vars used on raycast */
for (i = 0; i < 3; i++) {
- isec->idot_axis[i] = 1.0f / isec->dir[i];
+ isec->idot_axis[i] = 1.0f / isec->dir[i];
- isec->bv_index[2 * i] = isec->idot_axis[i] < 0.0 ? 1 : 0;
+ isec->bv_index[2 * i] = isec->idot_axis[i] < 0.0f ? 1 : 0;
isec->bv_index[2 * i + 1] = 1 - isec->bv_index[2 * i];
- isec->bv_index[2 * i] = i + 3 * isec->bv_index[2 * i];
+ isec->bv_index[2 * i] = i + 3 * isec->bv_index[2 * i];
isec->bv_index[2 * i + 1] = i + 3 * isec->bv_index[2 * i + 1];
}
diff --git a/source/blender/render/intern/raytrace/rayobject_instance.cpp b/source/blender/render/intern/raytrace/rayobject_instance.cpp
index bfbc1c64133..c3e761ae069 100644
--- a/source/blender/render/intern/raytrace/rayobject_instance.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_instance.cpp
@@ -118,7 +118,7 @@ static int RE_rayobject_instance_intersect(RayObject *o, Isect *isec)
for (i = 0; i < 3; i++) {
isec->idot_axis[i] = 1.0f / isec->dir[i];
- isec->bv_index[2 * i] = isec->idot_axis[i] < 0.0 ? 1 : 0;
+ isec->bv_index[2 * i] = isec->idot_axis[i] < 0.0f ? 1 : 0;
isec->bv_index[2 * i + 1] = 1 - isec->bv_index[2 * i];
isec->bv_index[2 * i] = i + 3 * isec->bv_index[2 * i];
@@ -161,7 +161,7 @@ static int RE_rayobject_instance_intersect(RayObject *o, Isect *isec)
// restore bv_index
for (i = 0; i < 3; i++) {
- isec->bv_index[2 * i] = isec->idot_axis[i] < 0.0 ? 1 : 0;
+ isec->bv_index[2 * i] = isec->idot_axis[i] < 0.0f ? 1 : 0;
isec->bv_index[2 * i + 1] = 1 - isec->bv_index[2 * i];
isec->bv_index[2 * i] = i + 3 * isec->bv_index[2 * i];
diff --git a/source/blender/render/intern/raytrace/rayobject_octree.cpp b/source/blender/render/intern/raytrace/rayobject_octree.cpp
index 538c5493282..5ae716ac942 100644
--- a/source/blender/render/intern/raytrace/rayobject_octree.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_octree.cpp
@@ -649,9 +649,9 @@ static void RE_rayobject_octree_done(RayObject *tree)
t02 = oc->max[2] - oc->min[2];
/* this minus 0.1 is old safety... seems to be needed? */
- oc->ocfacx = (oc->ocres - 0.1) / t00;
- oc->ocfacy = (oc->ocres - 0.1) / t01;
- oc->ocfacz = (oc->ocres - 0.1) / t02;
+ oc->ocfacx = (oc->ocres - 0.1f) / t00;
+ oc->ocfacy = (oc->ocres - 0.1f) / t01;
+ oc->ocfacz = (oc->ocres - 0.1f) / t02;
oc->ocsize = sqrt(t00 * t00 + t01 * t01 + t02 * t02); /* global, max size octree */
diff --git a/source/blender/render/intern/raytrace/rayobject_qbvh.cpp b/source/blender/render/intern/raytrace/rayobject_qbvh.cpp
index 2e37782d047..16d70297a34 100644
--- a/source/blender/render/intern/raytrace/rayobject_qbvh.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_qbvh.cpp
@@ -151,7 +151,7 @@ RayObject *RE_rayobject_qbvh_create(int size)
#else
-RayObject *RE_rayobject_qbvh_create(int size)
+RayObject *RE_rayobject_qbvh_create(int UNUSED(size))
{
puts("WARNING: SSE disabled at compile time\n");
return NULL;
diff --git a/source/blender/render/intern/raytrace/rayobject_rtbuild.cpp b/source/blender/render/intern/raytrace/rayobject_rtbuild.cpp
index ddc84408e26..3926e8b8e51 100644
--- a/source/blender/render/intern/raytrace/rayobject_rtbuild.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_rtbuild.cpp
@@ -185,7 +185,7 @@ RTBuilder *rtbuild_get_child(RTBuilder *b, int child, RTBuilder *tmp)
return tmp;
}
-void rtbuild_calc_bb(RTBuilder *b)
+static void rtbuild_calc_bb(RTBuilder *b)
{
if (b->bb[0] == 1.0e30f) {
for (RTBuilder::Object **index = b->sorted_begin[0]; index != b->sorted_end[0]; index++)
diff --git a/source/blender/render/intern/raytrace/rayobject_svbvh.cpp b/source/blender/render/intern/raytrace/rayobject_svbvh.cpp
index 697ba9ad6e2..c1bdfa6c72c 100644
--- a/source/blender/render/intern/raytrace/rayobject_svbvh.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_svbvh.cpp
@@ -183,7 +183,7 @@ RayObject *RE_rayobject_svbvh_create(int size)
#else
-RayObject *RE_rayobject_svbvh_create(int size)
+RayObject *RE_rayobject_svbvh_create(int UNUSED(size))
{
puts("WARNING: SSE disabled at compile time\n");
return NULL;
diff --git a/source/blender/render/intern/raytrace/rayobject_vbvh.cpp b/source/blender/render/intern/raytrace/rayobject_vbvh.cpp
index 9e7075438cb..85c9d0d402f 100644
--- a/source/blender/render/intern/raytrace/rayobject_vbvh.cpp
+++ b/source/blender/render/intern/raytrace/rayobject_vbvh.cpp
@@ -152,7 +152,8 @@ void bvh_hint_bb(Tree *tree, LCTSHint *hint, float *UNUSED(min), float *UNUSED(m
}
}
-void bfree(VBVHTree *tree)
+#if 0 /* UNUSED */
+static void bfree(VBVHTree *tree)
{
if (tot_pushup + tot_pushdown + tot_hints + tot_moves) {
if (G.debug & G_DEBUG) {
@@ -169,6 +170,7 @@ void bfree(VBVHTree *tree)
}
bvh_free(tree);
}
+#endif
/* the cast to pointer function is needed to workarround gcc bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11407 */
template<class Tree, int STACK_SIZE>
diff --git a/source/blender/render/intern/raytrace/reorganize.h b/source/blender/render/intern/raytrace/reorganize.h
index 1e9a0319b2f..a9ed71a76bc 100644
--- a/source/blender/render/intern/raytrace/reorganize.h
+++ b/source/blender/render/intern/raytrace/reorganize.h
@@ -421,7 +421,7 @@ struct VBVH_optimalPackSIMD {
}
}
- //Save the ways to archieve the minimum cost with a given cutsize
+ /* Save the ways to archive the minimum cost with a given cutsize */
for (int i = nchilds; i <= MAX_CUT_SIZE; i++) {
node->cut_cost[i - 1] = cost[nchilds][i];
if (cost[nchilds][i] < INFINITY) {
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c
index d21a22f553b..46ab3aeb21f 100644
--- a/source/blender/render/intern/source/convertblender.c
+++ b/source/blender/render/intern/source/convertblender.c
@@ -27,7 +27,6 @@
* \ingroup render
*/
-
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
@@ -42,6 +41,7 @@
#include "BLI_rand.h"
#include "BLI_memarena.h"
#include "BLI_ghash.h"
+#include "BLI_linklist.h"
#include "DNA_armature_types.h"
#include "DNA_camera_types.h"
@@ -118,6 +118,7 @@
#include "zbuf.h"
#include "sunsky.h"
+#include "RE_render_ext.h"
/* 10 times larger than normal epsilon, test it on default nurbs sphere with ray_transp (for quad detection) */
/* or for checking vertex normal flips */
@@ -233,7 +234,7 @@ void RE_make_stars(Render *re, Scene *scenev3d, void (*initfunc)(void),
obr= RE_addRenderObject(re, NULL, NULL, 0, 0, 0);
for (x = sx, fx = sx * stargrid; x <= ex; x++, fx += stargrid) {
- for (y = sy, fy = sy * stargrid; y <= ey ; y++, fy += stargrid) {
+ for (y = sy, fy = sy * stargrid; y <= ey; y++, fy += stargrid) {
for (z = sz, fz = sz * stargrid; z <= ez; z++, fz += stargrid) {
BLI_srand((hash[z & 0xff] << 24) + (hash[y & 0xff] << 16) + (hash[x & 0xff] << 8));
@@ -247,32 +248,24 @@ void RE_make_stars(Render *re, Scene *scenev3d, void (*initfunc)(void),
done++;
}
else {
- mul_m4_v3(re->viewmat, vec);
+ if (re)
+ mul_m4_v3(re->viewmat, vec);
/* in vec are global coordinates
* calculate distance to camera
* and using that, define the alpha
*/
-
- {
- float tx, ty, tz;
-
- tx = vec[0];
- ty = vec[1];
- tz = vec[2];
-
- alpha = sqrt(tx * tx + ty * ty + tz * tz);
-
- if (alpha >= clipend) alpha = 0.0;
- else if (alpha <= starmindist) alpha = 0.0;
- else if (alpha <= 2.0f * starmindist) {
- alpha = (alpha - starmindist) / starmindist;
- }
- else {
- alpha -= 2.0f * starmindist;
- alpha /= (clipend - 2.0f * starmindist);
- alpha = 1.0f - alpha;
- }
+ alpha = len_v3(vec);
+
+ if (alpha >= clipend) alpha = 0.0;
+ else if (alpha <= starmindist) alpha = 0.0;
+ else if (alpha <= 2.0f * starmindist) {
+ alpha = (alpha - starmindist) / starmindist;
+ }
+ else {
+ alpha -= 2.0f * starmindist;
+ alpha /= (clipend - 2.0f * starmindist);
+ alpha = 1.0f - alpha;
}
@@ -310,7 +303,7 @@ void RE_make_stars(Render *re, Scene *scenev3d, void (*initfunc)(void),
totstar++;
}
/* do not call blender_test_break() here, since it is used in UI as well, confusing the callback system */
- /* main cause is G.afbreek of course, a global again... (ton) */
+ /* main cause is G.is_break of course, a global again... (ton) */
}
}
if (termfunc) termfunc();
@@ -525,7 +518,7 @@ typedef struct {
} SRenderMeshToTangent;
-// interface
+/* interface */
#include "mikktspace.h"
static int GetNumFaces(const SMikkTSpaceContext * pContext)
@@ -1029,7 +1022,7 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, Par
static int second=0;
sub_v3_v3v3(nor, vec, vec1);
- normalize_v3(nor); // nor needed as tangent
+ normalize_v3(nor); /* nor needed as tangent */
cross_v3_v3v3(cross, vec, nor);
/* turn cross in pixelsize */
@@ -1089,7 +1082,7 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, Par
add_v3_v3(vlr->v1->co, cross);
copy_v3_v3(vlr->v1->n, nor);
vlr->v1->orco= sd->orco;
- vlr->v1->accum= -1.0f; // accum abuse for strand texco
+ vlr->v1->accum = -1.0f; /* accum abuse for strand texco */
copy_v3_v3(vlr->v2->co, vec);
sub_v3_v3v3(vlr->v2->co, vlr->v2->co, cross);
@@ -1101,8 +1094,8 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, Par
add_v3_v3(vlr->v4->co, cross);
copy_v3_v3(vlr->v4->n, nor);
vlr->v4->orco= sd->orco;
- vlr->v4->accum= 1.0f; // accum abuse for strand texco
-
+ vlr->v4->accum = 1.0f; /* accum abuse for strand texco */
+
copy_v3_v3(vlr->v3->co, vec1);
sub_v3_v3v3(vlr->v3->co, vlr->v3->co, cross);
copy_v3_v3(vlr->v3->n, nor);
@@ -1163,7 +1156,7 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, Par
add_v3_v3(v1->co, cross);
copy_v3_v3(v1->n, nor);
v1->orco= sd->orco;
- v1->accum= -1.0f; // accum abuse for strand texco
+ v1->accum = -1.0f; /* accum abuse for strand texco */
copy_v3_v3(v2->co, vec);
sub_v3_v3v3(v2->co, v2->co, cross);
@@ -1180,11 +1173,11 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, Par
vlr->v2= v2;
vlr->v3= RE_findOrAddVert(obr, obr->totvert++);
vlr->v4= RE_findOrAddVert(obr, obr->totvert++);
-
- v1= vlr->v4; // cycle
- v2= vlr->v3; // cycle
-
+ v1= vlr->v4; /* cycle */
+ v2= vlr->v3; /* cycle */
+
+
if (sd->adapt) {
second=0;
copy_v3_v3(anor, nor);
@@ -1209,9 +1202,9 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, Par
vlr->v2= v2;
vlr->v3= RE_findOrAddVert(obr, obr->totvert++);
vlr->v4= RE_findOrAddVert(obr, obr->totvert++);
-
- v1= vlr->v4; // cycle
- v2= vlr->v3; // cycle
+
+ v1= vlr->v4; /* cycle */
+ v2= vlr->v3; /* cycle */
copy_v3_v3(anor, nor);
copy_v3_v3(avec, vec);
@@ -1225,8 +1218,8 @@ static void static_particle_strand(Render *re, ObjectRen *obr, Material *ma, Par
add_v3_v3(vlr->v4->co, cross);
copy_v3_v3(vlr->v4->n, nor);
vlr->v4->orco= sd->orco;
- vlr->v4->accum= -1.0f + 2.0f*sd->time; // accum abuse for strand texco
-
+ vlr->v4->accum= -1.0f + 2.0f * sd->time; /* accum abuse for strand texco */
+
copy_v3_v3(vlr->v3->co, vec);
sub_v3_v3v3(vlr->v3->co, vlr->v3->co, cross);
copy_v3_v3(vlr->v3->n, nor);
@@ -1309,7 +1302,7 @@ static void static_particle_wire(ObjectRen *obr, Material *ma, const float vec[3
vlr->v3= vlr->v2;
vlr->v4= NULL;
- v1= vlr->v2; // cycle
+ v1= vlr->v2; /* cycle */
copy_v3_v3(v1->co, vec);
sub_v3_v3v3(vlr->n, vec, vec1);
@@ -1614,7 +1607,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem
if (part->type==PART_HAIR && !psys->childcache)
totchild= 0;
- if (G.rendering == 0) { /* preview render */
+ if (G.is_rendering == FALSE) { /* preview render */
totchild = (int)((float)totchild * (float)part->disp / 100.0f);
}
@@ -1630,12 +1623,12 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem
/* 2.1 setup material stff */
ma= give_render_material(re, ob, part->omat);
-#if 0 // XXX old animation system
+#if 0 /* XXX old animation system */
if (ma->ipo) {
calc_ipo(ma->ipo, cfra);
execute_ipo((ID *)ma, ma->ipo);
}
-#endif // XXX old animation system
+#endif /* XXX old animation system */
hasize = ma->hasize;
seed = ma->seed1;
@@ -2087,10 +2080,10 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem
strandbuf->surface= cache_strand_surface(re, obr, psmd->dm, mat, timeoffset);
/* 4. clean up */
-#if 0 // XXX old animation system
+#if 0 /* XXX old animation system */
if (ma) do_mat_ipo(re->scene, ma);
-#endif // XXX old animation system
-
+#endif /* XXX old animation system */
+
if (orco1)
MEM_freeN(sd.orco);
@@ -2268,14 +2261,6 @@ static void displace_render_vert(Render *re, ObjectRen *obr, ShadeInput *shi, Ve
if ((texco & TEXCO_ORCO) && (vr->orco)) {
copy_v3_v3(shi->lo, vr->orco);
}
- if (texco & TEXCO_STICKY) {
- float *sticky= RE_vertren_get_sticky(obr, vr, 0);
- if (sticky) {
- shi->sticky[0]= sticky[0];
- shi->sticky[1]= sticky[1];
- shi->sticky[2]= 0.0f;
- }
- }
if (texco & TEXCO_GLOB) {
copy_v3_v3(shi->gl, shi->co);
mul_m4_v3(re->viewinv, shi->gl);
@@ -2375,9 +2360,8 @@ static void displace_render_face(Render *re, ObjectRen *obr, VlakRen *vlr, float
displace_render_vert(re, obr, &shi, vlr->v4, 3, scale, mat, imat);
/* closest in displace value. This will help smooth edges. */
- if ( fabs(vlr->v1->accum - vlr->v3->accum) > fabs(vlr->v2->accum - vlr->v4->accum))
- vlr->flag |= R_DIVIDE_24;
- else vlr->flag &= ~R_DIVIDE_24;
+ if (fabsf(vlr->v1->accum - vlr->v3->accum) > fabsf(vlr->v2->accum - vlr->v4->accum)) vlr->flag |= R_DIVIDE_24;
+ else vlr->flag &= ~R_DIVIDE_24;
}
/* Recalculate the face normal - if flipped before, flip now */
@@ -3258,7 +3242,6 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset)
VlakRen *vlr; //, *vlr1;
VertRen *ver;
Material *ma;
- MSticky *ms = NULL;
DerivedMesh *dm;
CustomDataMask mask;
float xn, yn, zn, imat[3][3], mat[4][4]; //nor[3],
@@ -3267,7 +3250,7 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset)
int a, a1, ok, vertofs;
int end, do_autosmooth = FALSE, totvert = 0;
int use_original_normals = FALSE;
- int recalc_normals = 0; // false by default
+ int recalc_normals = 0; /* false by default */
int negative_scale;
me= ob->data;
@@ -3343,8 +3326,6 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset)
if (do_autosmooth && me->totvert==totvert && me->totface==dm->getNumTessFaces(dm))
use_original_normals= TRUE;
- ms = (totvert==me->totvert)?me->msticky:NULL;
-
ma= give_render_material(re, ob, 1);
@@ -3363,16 +3344,11 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset)
normalize_v3(ver->n);
negate_v3(ver->n);
}
-
+
if (orco) {
ver->orco= orco;
orco+=3;
}
- if (ms) {
- float *sticky= RE_vertren_get_sticky(obr, ver, 1);
- copy_v2_v2(sticky, ms->co);
- ms++;
- }
}
if (!timeoffset) {
@@ -3391,7 +3367,7 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset)
ma= give_render_material(re, ob, a1+1);
- /* test for 100% transparant */
+ /* test for 100% transparent */
ok= 1;
if (ma->alpha==0.0f && ma->spectra==0.0f && ma->filter==0.0f && (ma->mode & MA_TRANSP) && (ma->mode & MA_RAYMIRROR)==0) {
ok= 0;
@@ -3471,7 +3447,7 @@ static void init_render_mesh(Render *re, ObjectRen *obr, int timeoffset)
int t;
mtf= RE_vlakren_get_tface(obr, vlr, mtfn++, &name, 1);
mtface= (MTFace*)layer->data;
- *mtf= mtface[a]; // copy face info
+ *mtf = mtface[a]; /* copy face info */
for (vindex=0; vindex<nr_verts; vindex++)
for (t=0; t<2; t++)
mtf->uv[vindex][t]=mtface[a].uv[rev_tab[vindex]][t];
@@ -3733,7 +3709,7 @@ static GroupObject *add_render_lamp(Render *re, Object *ob)
lar->shdwb= la->shdwb;
lar->k= la->k;
- // area
+ /* area */
lar->ray_samp= la->ray_samp;
lar->ray_sampy= la->ray_sampy;
lar->ray_sampz= la->ray_sampz;
@@ -3784,7 +3760,7 @@ static GroupObject *add_render_lamp(Render *re, Object *ob)
}
area_lamp_vectors(lar);
- init_jitter_plane(lar); // subsamples
+ init_jitter_plane(lar); /* subsamples */
}
else if (lar->type==LA_SUN) {
lar->ray_totsamp= lar->ray_samp*lar->ray_samp;
@@ -3819,13 +3795,18 @@ static GroupObject *add_render_lamp(Render *re, Object *ob)
memcpy(lar->mtex, la->mtex, MAX_MTEX*sizeof(void *));
- lar->lay= ob->lay & 0xFFFFFF; // higher 8 bits are localview layers
+ lar->lay = ob->lay & 0xFFFFFF; /* higher 8 bits are localview layers */
lar->falloff_type = la->falloff_type;
lar->ld1= la->att1;
lar->ld2= la->att2;
lar->curfalloff = curvemapping_copy(la->curfalloff);
+ if (lar->curfalloff) {
+ /* so threads don't conflict on init */
+ curvemapping_initialize(lar->curfalloff);
+ }
+
if (lar->type==LA_SPOT) {
normalize_v3(lar->imat[0]);
@@ -3878,7 +3859,7 @@ static GroupObject *add_render_lamp(Render *re, Object *ob)
if (la->mtex[c]->mapto & LAMAP_SHAD)
lar->mode |= LA_SHAD_TEX;
- if (G.rendering) {
+ if (G.is_rendering) {
if (re->osa) {
if (la->mtex[c]->tex->type==TEX_IMAGE) lar->mode |= LA_OSATEX;
}
@@ -3904,7 +3885,7 @@ static GroupObject *add_render_lamp(Render *re, Object *ob)
/* Per lamp, one shadow buffer is made. */
lar->bufflag= la->bufflag;
copy_m4_m4(mat, ob->obmat);
- initshadowbuf(re, lar, mat); // mat is altered
+ initshadowbuf(re, lar, mat); /* mat is altered */
}
@@ -3948,6 +3929,9 @@ static void add_lightgroup(Render *re, Group *group, int exclusive)
/* note that 'exclusive' will remove it from the global list */
for (go= group->gobject.first; go; go= go->next) {
go->lampren= NULL;
+
+ if (go->ob->restrictflag & OB_RESTRICT_RENDER)
+ continue;
if (go->ob->lay & re->lay) {
if (go->ob && go->ob->type==OB_LAMP) {
@@ -4122,8 +4106,12 @@ static void set_fullsample_trace_flag(Render *re, ObjectRen *obr)
vlr->flag |= R_FULL_OSA;
}
else if (trace) {
- if (mode & MA_SHLESS);
- else if (vlr->mat->material_type == MA_TYPE_VOLUME);
+ if (mode & MA_SHLESS) {
+ /* pass */
+ }
+ else if (vlr->mat->material_type == MA_TYPE_VOLUME) {
+ /* pass */
+ }
else if ((mode & MA_RAYMIRROR) || ((mode & MA_TRANSP) && (mode & MA_RAYTRANSP))) {
/* for blurry reflect/refract, better to take more samples
* inside the raytrace than as OSA samples */
@@ -4247,8 +4235,8 @@ static void check_non_flat_quads(ObjectRen *obr)
xn = dot_v3v3(nor, vlr->n);
- if (ABS(xn) < 0.999995f ) { // checked on noisy fractal grid
-
+ if (ABS(xn) < 0.999995f ) { /* checked on noisy fractal grid */
+
float d1, d2;
vlr1= RE_vlakren_copy(obr, vlr);
@@ -4261,8 +4249,8 @@ static void check_non_flat_quads(ObjectRen *obr)
normal_tri_v3(nor, vlr->v2->co, vlr->v3->co, vlr->v4->co);
d2 = dot_v3v3(nor, vlr->v2->n);
- if ( fabs(d1) < fabs(d2) ) vlr->flag |= R_DIVIDE_24;
- else vlr->flag &= ~R_DIVIDE_24;
+ if (fabsf(d1) < fabsf(d2) ) vlr->flag |= R_DIVIDE_24;
+ else vlr->flag &= ~R_DIVIDE_24;
/* new vertex pointers */
if (vlr->flag & R_DIVIDE_24) {
@@ -4652,7 +4640,7 @@ void RE_Database_Free(Render *re)
LampRen *lar;
/* statistics for debugging render memory usage */
- if ((G.debug & G_DEBUG) && (G.rendering)) {
+ if ((G.debug & G_DEBUG) && (G.is_rendering)) {
if ((re->r.scemode & R_PREVIEWBUTS)==0) {
BKE_image_print_memlist();
MEM_printmemlist_stats();
@@ -4911,7 +4899,7 @@ static void database_init_objects(Render *re, unsigned int renderlay, int nolamp
/* create list of duplis generated by this object, particle
* system need to have render settings set for dupli particles */
dupli_render_particle_set(re, ob, timeoffset, 0, 1);
- lb= object_duplilist(re->scene, ob);
+ lb= object_duplilist(re->scene, ob, TRUE);
dupli_render_particle_set(re, ob, timeoffset, 0, 0);
for (dob= lb->first; dob; dob= dob->next) {
@@ -5038,7 +5026,7 @@ void RE_Database_FromScene(Render *re, Main *bmain, Scene *scene, unsigned int l
/* per second, per object, stats print this */
re->i.infostr= "Preparing Scene data";
re->i.cfra= scene->r.cfra;
- BLI_strncpy(re->i.scenename, scene->id.name+2, sizeof(re->i.scenename));
+ BLI_strncpy(re->i.scene_name, scene->id.name + 2, sizeof(re->i.scene_name));
/* XXX add test if dbase was filled already? */
@@ -5244,13 +5232,15 @@ static void speedvector_project(Render *re, float zco[2], const float co[3], con
/* precalculate amount of radians 1 pixel rotates */
if (pano) {
/* size of 1 pixel mapped to viewplane coords */
- float psize= (re->viewplane.xmax-re->viewplane.xmin)/(float)re->winx;
+ float psize;
+
+ psize = BLI_rctf_size_x(&re->viewplane) / (float)re->winx;
/* x angle of a pixel */
- pixelphix= atan(psize/re->clipsta);
+ pixelphix = atan(psize / re->clipsta);
- psize= (re->viewplane.ymax-re->viewplane.ymin)/(float)re->winy;
+ psize = BLI_rctf_size_y(&re->viewplane) / (float)re->winy;
/* y angle of a pixel */
- pixelphiy= atan(psize/re->clipsta);
+ pixelphiy = atan(psize / re->clipsta);
}
zmulx= re->winx/2;
zmuly= re->winy/2;
@@ -5478,7 +5468,7 @@ static int load_fluidsimspeedvectors(Render *re, ObjectInstanceRen *obi, float *
else
ver++;
- // get fluid velocity
+ /* get fluid velocity */
fsvec[3] = 0.0f;
//fsvec[0] = fsvec[1] = fsvec[2] = fsvec[3] = 0.0; fsvec[2] = 2.0f; // NT fixed test
for (j=0;j<3;j++) fsvec[j] = velarray[a].vel[j];
@@ -5490,31 +5480,31 @@ static int load_fluidsimspeedvectors(Render *re, ObjectInstanceRen *obi, float *
fsvec[2] = avgvel[2];
}
- // transform (=rotate) to cam space
+ /* transform (=rotate) to cam space */
camco[0] = dot_v3v3(imat[0], fsvec);
camco[1] = dot_v3v3(imat[1], fsvec);
camco[2] = dot_v3v3(imat[2], fsvec);
- // get homogenous coordinates
+ /* get homogeneous coordinates */
projectvert(camco, winmat, hoco);
projectvert(ver->co, winmat, ho);
/* now map hocos to screenspace, uses very primitive clip still */
- // use ho[3] of original vertex, xy component of vel. direction
+ /* use ho[3] of original vertex, xy component of vel. direction */
if (ho[3]<0.1f) div= 10.0f;
else div= 1.0f/ho[3];
zco[0]= zmulx*hoco[0]*div;
zco[1]= zmuly*hoco[1]*div;
- // maximize speed as usual
+ /* maximize speed as usual */
len= zco[0]*zco[0] + zco[1]*zco[1];
if (len > winsq) {
len= winroot/sqrtf(len);
zco[0]*= len; zco[1]*= len;
}
-
+
speed= RE_vertren_get_winspeed(obi, ver, 1);
- // set both to the same value
+ /* set both to the same value */
speed[0]= speed[2]= zco[0];
speed[1]= speed[3]= zco[1];
//if (a < 20) fprintf(stderr,"speed %d %f,%f | camco %f,%f,%f | hoco %f,%f,%f,%f\n", a, speed[0], speed[1], camco[0],camco[1], camco[2], hoco[0],hoco[1], hoco[2],hoco[3]); // NT DEBUG
@@ -5651,7 +5641,7 @@ void RE_Database_FromScene_Vectors(Render *re, Main *bmain, Scene *sce, unsigned
continue;
}
- // NT check for fluidsim special treatment
+ /* NT check for fluidsim special treatment */
fluidmd = (FluidsimModifierData *)modifiers_findByType(obi->ob, eModifierType_Fluidsim);
if (fluidmd && fluidmd->fss && (fluidmd->fss->type & OB_FLUIDSIM_DOMAIN)) {
/* use preloaded per vertex simulation data, only does calculation for step=1 */
@@ -5664,7 +5654,7 @@ void RE_Database_FromScene_Vectors(Render *re, Main *bmain, Scene *sce, unsigned
calculate_speedvectors(re, obi, oldobi->vectors, step);
else
printf("Warning: object %s has different amount of vertices or strands on other frame\n", obi->ob->id.name+2);
- } // not fluidsim
+ } /* not fluidsim */
oldobi= oldobi->next;
}
@@ -5816,76 +5806,3 @@ void RE_Database_Baking(Render *re, Main *bmain, Scene *scene, unsigned int lay,
if (re->r.mode & R_SHADOW)
make_occ_tree(re);
}
-
-/* ------------------------------------------------------------------------- */
-/* Sticky texture coords */
-/* ------------------------------------------------------------------------- */
-
-void RE_make_sticky(Scene *scene, View3D *v3d)
-{
- Object *ob;
- Base *base;
- MVert *mvert;
- Mesh *me;
- MSticky *ms;
- Render *re;
- float ho[4], mat[4][4];
- int a;
- Object *camera= NULL;
-
- if (v3d==NULL) {
- printf("Need a 3d view to make sticky\n");
- return;
- }
-
- if (v3d) camera= V3D_CAMERA_LOCAL(v3d);
- if (camera == NULL) camera= scene->camera;
-
- if (camera==NULL) {
- printf("Need camera to make sticky\n");
- return;
- }
- if (scene->obedit) {
- printf("Unable to make sticky in Edit Mode\n");
- return;
- }
-
- re= RE_NewRender("_make sticky_");
- RE_InitState(re, NULL, &scene->r, NULL, scene->r.xsch, scene->r.ysch, NULL);
-
- /* use renderdata and camera to set viewplane */
- RE_SetCamera(re, camera);
-
- /* and set view matrix */
- normalize_m4(camera->obmat);
- invert_m4_m4(mat, camera->obmat);
- RE_SetView(re, mat);
-
- for (base= FIRSTBASE; base; base= base->next) {
- if (TESTBASELIB(v3d, base)) {
- if (base->object->type==OB_MESH) {
- ob= base->object;
-
- me= ob->data;
- mvert= me->mvert;
- if (me->msticky)
- CustomData_free_layer_active(&me->vdata, CD_MSTICKY, me->totvert);
- me->msticky= CustomData_add_layer(&me->vdata, CD_MSTICKY,
- CD_CALLOC, NULL, me->totvert);
-
- BKE_object_where_is_calc(scene, ob);
- mult_m4_m4m4(mat, re->viewmat, ob->obmat);
-
- ms= me->msticky;
- for (a=0; a<me->totvert; a++, ms++, mvert++) {
- copy_v3_v3(ho, mvert->co);
- mul_m4_v3(mat, ho);
- projectverto(ho, re->winmat, ho);
- ms->co[0]= ho[0]/ho[3];
- ms->co[1]= ho[1]/ho[3];
- }
- }
- }
- }
-}
-
diff --git a/source/blender/render/intern/source/envmap.c b/source/blender/render/intern/source/envmap.c
index 61de4d39585..03eb21dfa23 100644
--- a/source/blender/render/intern/source/envmap.c
+++ b/source/blender/render/intern/source/envmap.c
@@ -49,7 +49,7 @@
#include "BKE_library.h"
#include "BKE_main.h"
-#include "BKE_image.h" // BKE_imbuf_write
+#include "BKE_image.h" /* BKE_imbuf_write */
#include "BKE_texture.h"
@@ -472,11 +472,8 @@ static void render_envmap(Render *re, EnvMap *env)
ibuf = IMB_allocImBuf(envre->rectx, envre->recty, 24, IB_rect | IB_rectfloat);
memcpy(ibuf->rect_float, rl->rectf, ibuf->channels * ibuf->x * ibuf->y * sizeof(float));
- if (re->scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
-
/* envmap renders without alpha */
- alpha = ((float *)ibuf->rect_float) + 3;
+ alpha = ibuf->rect_float + 3;
for (y = ibuf->x * ibuf->y - 1; y >= 0; y--, alpha += 4)
*alpha = 1.0;
@@ -579,7 +576,7 @@ void make_envmaps(Render *re)
re->display_clear(re->dch, re->result);
// re->flag |= R_REDRAW_PRV;
}
- // restore
+ /* restore */
re->r.mode |= trace;
}
diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c
index 5bb3e4605a2..636b3205b23 100644
--- a/source/blender/render/intern/source/external_engine.c
+++ b/source/blender/render/intern/source/external_engine.c
@@ -55,6 +55,7 @@
#include "RE_engine.h"
#include "RE_pipeline.h"
+#include "initrender.h"
#include "render_types.h"
#include "render_result.h"
@@ -149,7 +150,7 @@ void RE_engine_free(RenderEngine *engine)
/* Render Results */
-RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h)
+RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h, const char *layername)
{
Render *re = engine->re;
RenderResult *result;
@@ -172,13 +173,19 @@ RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w,
disprect.ymin = y;
disprect.ymax = y + h;
- result = render_result_new(re, &disprect, 0, RR_USE_MEM);
- BLI_addtail(&engine->fullresult, result);
-
- result->tilerect.xmin += re->disprect.xmin;
- result->tilerect.xmax += re->disprect.xmin;
- result->tilerect.ymin += re->disprect.ymin;
- result->tilerect.ymax += re->disprect.ymin;
+ result = render_result_new(re, &disprect, 0, RR_USE_MEM, layername);
+
+ /* todo: make this thread safe */
+
+ /* can be NULL if we CLAMP the width or height to 0 */
+ if (result) {
+ BLI_addtail(&engine->fullresult, result);
+
+ result->tilerect.xmin += re->disprect.xmin;
+ result->tilerect.xmax += re->disprect.xmin;
+ result->tilerect.ymin += re->disprect.ymin;
+ result->tilerect.ymax += re->disprect.ymin;
+ }
return result;
}
@@ -188,30 +195,48 @@ void RE_engine_update_result(RenderEngine *engine, RenderResult *result)
Render *re = engine->re;
if (result) {
- result->renlay = result->layers.first; // weak, draws first layer always
+ result->renlay = result->layers.first; /* weak, draws first layer always */
re->display_draw(re->ddh, result, NULL);
}
}
-void RE_engine_end_result(RenderEngine *engine, RenderResult *result)
+void RE_engine_end_result(RenderEngine *engine, RenderResult *result, int cancel)
{
Render *re = engine->re;
+ RenderPart *pa;
- if (!result)
+ if (!result) {
return;
+ }
/* merge. on break, don't merge in result for preview renders, looks nicer */
- if (!(re->test_break(re->tbh) && (re->r.scemode & R_PREVIEWBUTS)))
- render_result_merge(re->result, result);
+ if (!cancel) {
+ /* for exr tile render, detect tiles that are done */
+ for (pa = re->parts.first; pa; pa = pa->next) {
+ if (result->tilerect.xmin == pa->disprect.xmin &&
+ result->tilerect.ymin == pa->disprect.ymin &&
+ result->tilerect.xmax == pa->disprect.xmax &&
+ result->tilerect.ymax == pa->disprect.ymax)
+ {
+ pa->ready = 1;
+ }
+ }
- /* draw */
- if (!re->test_break(re->tbh)) {
- result->renlay = result->layers.first; // weak, draws first layer always
- re->display_draw(re->ddh, result, NULL);
+ if (re->result->do_exr_tile)
+ render_result_exr_file_merge(re->result, result);
+ else if (!(re->test_break(re->tbh) && (re->r.scemode & R_PREVIEWBUTS)))
+ render_result_merge(re->result, result);
+
+ /* draw */
+ if (!re->test_break(re->tbh)) {
+ result->renlay = result->layers.first; /* weak, draws first layer always */
+ re->display_draw(re->ddh, result, NULL);
+ }
}
/* free */
- render_result_free_list(&engine->fullresult, result);
+ BLI_remlink(&engine->fullresult, result);
+ render_result_free(result);
}
/* Cancel */
@@ -290,18 +315,22 @@ int RE_engine_render(Render *re, int do_all)
/* create render result */
BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE);
if (re->result == NULL || !(re->r.scemode & R_PREVIEWBUTS)) {
+ int savebuffers;
+
if (re->result)
render_result_free(re->result);
- re->result = render_result_new(re, &re->disprect, 0, 0);
+
+ savebuffers = (re->r.scemode & R_EXR_TILE_FILE) ? RR_USE_EXR : RR_USE_MEM;
+ re->result = render_result_new(re, &re->disprect, 0, savebuffers, RR_ALL_LAYERS);
}
BLI_rw_mutex_unlock(&re->resultmutex);
-
+
if (re->result == NULL)
return 1;
/* set render info */
re->i.cfra = re->scene->r.cfra;
- BLI_strncpy(re->i.scenename, re->scene->id.name + 2, sizeof(re->i.scenename));
+ BLI_strncpy(re->i.scene_name, re->scene->id.name + 2, sizeof(re->i.scene_name));
re->i.totface = re->i.totvert = re->i.totstrand = re->i.totlamp = re->i.tothalo = 0;
/* render */
@@ -314,20 +343,41 @@ int RE_engine_render(Render *re, int do_all)
engine->flag |= RE_ENGINE_PREVIEW;
engine->camera_override = re->camera_override;
+ engine->resolution_x = re->winx;
+ engine->resolution_y = re->winy;
+
if ((re->r.scemode & (R_NO_FRAME_UPDATE | R_PREVIEWBUTS)) == 0)
BKE_scene_update_for_newframe(re->main, re->scene, re->lay);
+ initparts(re, FALSE);
+ engine->tile_x = re->partx;
+ engine->tile_y = re->party;
+
+ if (re->result->do_exr_tile)
+ render_result_exr_file_begin(re);
+
if (type->update)
type->update(engine, re->main, re->scene);
+
if (type->render)
type->render(engine, re->scene);
+ if (re->result->do_exr_tile) {
+ BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE);
+ render_result_exr_file_end(re);
+ BLI_rw_mutex_unlock(&re->resultmutex);
+ }
+
+ engine->tile_x = 0;
+ engine->tile_y = 0;
+ freeparts(re);
+
render_result_free_list(&engine->fullresult, engine->fullresult.first);
RE_engine_free(engine);
if (BKE_reports_contain(re->reports, RPT_ERROR))
- G.afbreek = 1;
+ G.is_break = TRUE;
return 1;
}
diff --git a/source/blender/render/intern/source/gammaCorrectionTables.c b/source/blender/render/intern/source/gammaCorrectionTables.c
index 64925e16ae2..1c2613e8d18 100644
--- a/source/blender/render/intern/source/gammaCorrectionTables.c
+++ b/source/blender/render/intern/source/gammaCorrectionTables.c
@@ -38,7 +38,7 @@
/* result remain identical (ton) */
/* gamma is only used here for correcting adding colors or alpha */
-#define RE_DEFAULT_GAMMA 2.0
+// #define RE_DEFAULT_GAMMA 2.0 // UNUSED
/* This 400 is sort of based on the number of intensity levels needed for */
/* the typical dynamic range of a medium, in this case CRTs. (Foley) */
diff --git a/source/blender/render/intern/source/imagetexture.c b/source/blender/render/intern/source/imagetexture.c
index dcc09c92bb0..154292a3065 100644
--- a/source/blender/render/intern/source/imagetexture.c
+++ b/source/blender/render/intern/source/imagetexture.c
@@ -150,8 +150,13 @@ int imagewrap(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], TexResul
fx-= xs;
fy-= ys;
- if ( (tex->flag & TEX_CHECKER_ODD)==0) {
- if ((xs+ys) & 1);else return retval;
+ if ( (tex->flag & TEX_CHECKER_ODD) == 0) {
+ if ((xs + ys) & 1) {
+ /* pass */
+ }
+ else {
+ return retval;
+ }
}
if ( (tex->flag & TEX_CHECKER_EVEN)==0) {
if ((xs+ys) & 1) return retval;
@@ -231,13 +236,13 @@ int imagewrap(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], TexResul
if (texres->nor) {
if (tex->imaflag & TEX_NORMALMAP) {
- // qdn: normal from color
- // The invert of the red channel is to make
- // the normal map compliant with the outside world.
- // It needs to be done because in Blender
- // the normal used in the renderer points inward. It is generated
- // this way in calc_vertexnormals(). Should this ever change
- // this negate must be removed.
+ /* qdn: normal from color
+ * The invert of the red channel is to make
+ * the normal map compliant with the outside world.
+ * It needs to be done because in Blender
+ * the normal used in the renderer points inward. It is generated
+ * this way in calc_vertexnormals(). Should this ever change
+ * this negate must be removed. */
texres->nor[0] = -2.f*(texres->tr - 0.5f);
texres->nor[1] = 2.f*(texres->tg - 0.5f);
texres->nor[2] = 2.f*(texres->tb - 0.5f);
@@ -396,16 +401,16 @@ static float square_rctf(rctf *rf)
{
float x, y;
- x= rf->xmax- rf->xmin;
- y= rf->ymax- rf->ymin;
- return (x*y);
+ x = BLI_rctf_size_x(rf);
+ y = BLI_rctf_size_y(rf);
+ return x * y;
}
static float clipx_rctf(rctf *rf, float x1, float x2)
{
float size;
- size= rf->xmax - rf->xmin;
+ size = BLI_rctf_size_x(rf);
if (rf->xmin<x1) {
rf->xmin = x1;
@@ -417,8 +422,8 @@ static float clipx_rctf(rctf *rf, float x1, float x2)
rf->xmin = rf->xmax;
return 0.0;
}
- else if (size!=0.0f) {
- return (rf->xmax - rf->xmin)/size;
+ else if (size != 0.0f) {
+ return BLI_rctf_size_x(rf) / size;
}
return 1.0;
}
@@ -427,7 +432,7 @@ static float clipy_rctf(rctf *rf, float y1, float y2)
{
float size;
- size= rf->ymax - rf->ymin;
+ size = BLI_rctf_size_y(rf);
if (rf->ymin<y1) {
rf->ymin = y1;
@@ -440,8 +445,8 @@ static float clipy_rctf(rctf *rf, float y1, float y2)
rf->ymin = rf->ymax;
return 0.0;
}
- else if (size!=0.0f) {
- return (rf->ymax - rf->ymin)/size;
+ else if (size != 0.0f) {
+ return BLI_rctf_size_y(rf) / size;
}
return 1.0;
@@ -474,7 +479,9 @@ static void boxsampleclip(struct ImBuf *ibuf, rctf *rf, TexResult *texres)
muly= 1.0;
- if (starty==endy);
+ if (starty==endy) {
+ /* pass */
+ }
else {
if (y==starty) muly= 1.0f-(rf->ymin - y);
if (y==endy) muly= (rf->ymax - y);
@@ -539,7 +546,7 @@ static void boxsample(ImBuf *ibuf, float minx, float miny, float maxx, float max
*/
/* note: actually minx etc isn't in the proper range... this due to filter size and offset vectors for bump */
/* note: talpha must be initialized */
- /* note: even when 'imaprepeat' is set, this can only repeate once in any direction.
+ /* note: even when 'imaprepeat' is set, this can only repeat once in any direction.
* the point which min/max is derived from is assumed to be wrapped */
TexResult texr;
rctf *rf, stack[8];
@@ -619,36 +626,36 @@ static void boxsample(ImBuf *ibuf, float minx, float miny, float maxx, float max
}
}
-//-----------------------------------------------------------------------------------------------------------------
-// from here, some functions only used for the new filtering
+/*-----------------------------------------------------------------------------------------------------------------
+ * from here, some functions only used for the new filtering */
-// anisotropic filters, data struct used instead of long line of (possibly unused) func args
+/* anisotropic filters, data struct used instead of long line of (possibly unused) func args */
typedef struct afdata_t {
float dxt[2], dyt[2];
int intpol, extflag;
- // feline only
+ /* feline only */
float majrad, minrad, theta;
int iProbes;
float dusc, dvsc;
} afdata_t;
-// this only used here to make it easier to pass extend flags as single int
-enum {TXC_XMIR=1, TXC_YMIR, TXC_REPT, TXC_EXTD};
+/* this only used here to make it easier to pass extend flags as single int */
+enum {TXC_XMIR = 1, TXC_YMIR, TXC_REPT, TXC_EXTD};
-// similar to ibuf_get_color() but clips/wraps coords according to repeat/extend flags
-// returns true if out of range in clipmode
+/* similar to ibuf_get_color() but clips/wraps coords according to repeat/extend flags
+ * returns true if out of range in clipmode */
static int ibuf_get_color_clip(float col[4], ImBuf *ibuf, int x, int y, int extflag)
{
int clip = 0;
switch (extflag) {
- case TXC_XMIR: // y rep
+ case TXC_XMIR: /* y rep */
x %= 2*ibuf->x;
x += x < 0 ? 2*ibuf->x : 0;
x = x >= ibuf->x ? 2*ibuf->x - x - 1 : x;
y %= ibuf->y;
y += y < 0 ? ibuf->y : 0;
break;
- case TXC_YMIR: // x rep
+ case TXC_YMIR: /* x rep */
x %= ibuf->x;
x += x < 0 ? ibuf->x : 0;
y %= 2*ibuf->y;
@@ -665,11 +672,12 @@ static int ibuf_get_color_clip(float col[4], ImBuf *ibuf, int x, int y, int extf
y %= ibuf->y;
y += (y < 0) ? ibuf->y : 0;
break;
- default: { // as extend, if clipped, set alpha to 0.0
- if (x < 0) { x = 0; } // TXF alpha: clip = 1; }
- if (x >= ibuf->x) { x = ibuf->x - 1; } // TXF alpha: clip = 1; }
- if (y < 0) { y = 0; } // TXF alpha: clip = 1; }
- if (y >= ibuf->y) { y = ibuf->y - 1; } // TXF alpha: clip = 1; }
+ default:
+ { /* as extend, if clipped, set alpha to 0.0 */
+ if (x < 0) { x = 0; } /* TXF alpha: clip = 1; } */
+ if (x >= ibuf->x) { x = ibuf->x - 1; } /* TXF alpha: clip = 1; } */
+ if (y < 0) { y = 0; } /* TXF alpha: clip = 1; } */
+ if (y >= ibuf->y) { y = ibuf->y - 1; } /* TXF alpha: clip = 1; } */
}
}
@@ -694,7 +702,7 @@ static int ibuf_get_color_clip(float col[4], ImBuf *ibuf, int x, int y, int extf
return clip;
}
-// as above + bilerp
+/* as above + bilerp */
static int ibuf_get_color_clip_bilerp(float col[4], ImBuf *ibuf, float u, float v, int intpol, int extflag)
{
if (intpol) {
@@ -716,7 +724,7 @@ static int ibuf_get_color_clip_bilerp(float col[4], ImBuf *ibuf, float u, float
return ibuf_get_color_clip(col, ibuf, (int)u, (int)v, extflag);
}
-static void area_sample(TexResult* texr, ImBuf* ibuf, float fx, float fy, afdata_t* AFD)
+static void area_sample(TexResult *texr, ImBuf *ibuf, float fx, float fy, afdata_t *AFD)
{
int xs, ys, clip = 0;
float tc[4], xsd, ysd, cw = 0.f;
@@ -749,12 +757,12 @@ static void area_sample(TexResult* texr, ImBuf* ibuf, float fx, float fy, afdata
texr->tr *= xsd;
texr->tg *= xsd;
texr->tb *= xsd;
- // clipping can be ignored if alpha used, texr->ta already includes filtered edge
+ /* clipping can be ignored if alpha used, texr->ta already includes filtered edge */
texr->ta = texr->talpha ? texr->ta*xsd : (clip ? cw*xsd : 1.f);
}
-// table of (exp(ar) - exp(a)) / (1 - exp(a)) for r in range [0, 1] and a = -2
-// used instead of actual gaussian, otherwise at high texture magnifications circular artifacts are visible
+/* table of (exp(ar) - exp(a)) / (1 - exp(a)) for r in range [0, 1] and a = -2
+ * used instead of actual gaussian, otherwise at high texture magnifications circular artifacts are visible */
#define EWA_MAXIDX 255
static float EWA_WTS[EWA_MAXIDX + 1] =
{ 1.f, 0.990965f, 0.982f, 0.973105f, 0.96428f, 0.955524f, 0.946836f, 0.938216f, 0.929664f,
@@ -791,9 +799,9 @@ static float EWA_WTS[EWA_MAXIDX + 1] =
0.00754159f, 0.00625989f, 0.00498819f, 0.00372644f, 0.00247454f, 0.00123242f, 0.f
};
-// test if a float value is 'nan'
-// there is a C99 function for this: isnan(), but blender seems to use C90 (according to gcc warns),
-// and may not be supported by other compilers either
+/* test if a float value is 'nan'
+ * there is a C99 function for this: isnan(), but blender seems to use C90 (according to gcc warns),
+ * and may not be supported by other compilers either */
#ifndef ISNAN
#define ISNAN(x) ((x) != (x))
#endif
@@ -802,7 +810,7 @@ static float EWA_WTS[EWA_MAXIDX + 1] =
static void radangle2imp(float a2, float b2, float th, float* A, float* B, float* C, float* F)
{
float ct2 = cosf(th);
- const float st2 = 1.f - ct2*ct2; // <- sin(th)^2
+ const float st2 = 1.0f - ct2 * ct2; /* <- sin(th)^2 */
ct2 *= ct2;
*A = a2*st2 + b2*ct2;
*B = (b2 - a2)*sinf(2.f*th);
@@ -810,10 +818,10 @@ static void radangle2imp(float a2, float b2, float th, float* A, float* B, float
*F = a2*b2;
}
-// all tests here are done to make sure possible overflows are hopefully minimized
+/* all tests here are done to make sure possible overflows are hopefully minimized */
static void imp2radangle(float A, float B, float C, float F, float* a, float* b, float* th, float* ecc)
{
- if (F <= 1e-5f) { // use arbitrary major radius, zero minor, infinite eccentricity
+ if (F <= 1e-5f) { /* use arbitrary major radius, zero minor, infinite eccentricity */
*a = sqrtf(A > C ? A : C);
*b = 0.f;
*ecc = 1e10f;
@@ -833,31 +841,31 @@ static void imp2radangle(float A, float B, float C, float F, float* a, float* b,
*b = sqrtf(F2 / d);
*ecc = *a / *b;
}
- // incr theta by 0.5*pi (angle of major axis)
+ /* incr theta by 0.5*pi (angle of major axis) */
*th = 0.5f*(atan2f(B, AmC) + (float)M_PI);
}
}
-static void ewa_eval(TexResult* texr, ImBuf* ibuf, float fx, float fy, afdata_t* AFD)
+static void ewa_eval(TexResult *texr, ImBuf *ibuf, float fx, float fy, afdata_t *AFD)
{
- // scaling dxt/dyt by full resolution can cause overflow because of huge A/B/C and esp. F values,
- // scaling by aspect ratio alone does the opposite, so try something in between instead...
+ /* scaling dxt/dyt by full resolution can cause overflow because of huge A/B/C and esp. F values,
+ * scaling by aspect ratio alone does the opposite, so try something in between instead... */
const float ff2 = ibuf->x, ff = sqrtf(ff2), q = ibuf->y / ff;
const float Ux = AFD->dxt[0]*ff, Vx = AFD->dxt[1]*q, Uy = AFD->dyt[0]*ff, Vy = AFD->dyt[1]*q;
float A = Vx*Vx + Vy*Vy;
float B = -2.f*(Ux*Vx + Uy*Vy);
float C = Ux*Ux + Uy*Uy;
float F = A*C - B*B*0.25f;
- float a, b, th, ecc, a2, b2, ue, ve, U0, V0, DDQ, U, ac1, ac2, BU, d; // TXF alpha: cw = 0.f;
- int u, v, u1, u2, v1, v2; // TXF alpha: clip = 0;
-
- // The so-called 'high' quality ewa method simply adds a constant of 1 to both A & C,
- // so the ellipse always covers at least some texels. But since the filter is now always larger,
- // it also means that everywhere else it's also more blurry then ideally should be the case.
- // So instead here the ellipse radii are modified instead whenever either is too low.
- // Use a different radius based on interpolation switch, just enough to anti-alias when interpolation is off,
- // and slightly larger to make result a bit smoother than bilinear interpolation when interpolation is on
- // (minimum values: const float rmin = intpol ? 1.f : 0.5f;)
+ float a, b, th, ecc, a2, b2, ue, ve, U0, V0, DDQ, U, ac1, ac2, BU, d; /* TXF alpha: cw = 0.f; */
+ int u, v, u1, u2, v1, v2; /* TXF alpha: clip = 0; */
+
+ /* The so-called 'high' quality ewa method simply adds a constant of 1 to both A & C,
+ * so the ellipse always covers at least some texels. But since the filter is now always larger,
+ * it also means that everywhere else it's also more blurry then ideally should be the case.
+ * So instead here the ellipse radii are modified instead whenever either is too low.
+ * Use a different radius based on interpolation switch, just enough to anti-alias when interpolation is off,
+ * and slightly larger to make result a bit smoother than bilinear interpolation when interpolation is on
+ * (minimum values: const float rmin = intpol ? 1.f : 0.5f;) */
const float rmin = (AFD->intpol ? 1.5625f : 0.765625f)/ff2;
imp2radangle(A, B, C, F, &a, &b, &th, &ecc);
if ((b2 = b*b) < rmin) {
@@ -903,8 +911,8 @@ static void ewa_eval(TexResult* texr, ImBuf* ibuf, float fx, float fy, afdata_t*
float tc[4];
const float wt = EWA_WTS[(Q < 0.f) ? 0 : (unsigned int)Q];
/*const int out =*/ ibuf_get_color_clip(tc, ibuf, u, v, AFD->extflag);
- // TXF alpha: clip |= out;
- // TXF alpha: cw += out ? 0.f : wt;
+ /* TXF alpha: clip |= out;
+ * TXF alpha: cw += out ? 0.f : wt; */
texr->tr += tc[0]*wt;
texr->tg += tc[1]*wt;
texr->tb += tc[2]*wt;
@@ -916,26 +924,26 @@ static void ewa_eval(TexResult* texr, ImBuf* ibuf, float fx, float fy, afdata_t*
}
}
- // d should hopefully never be zero anymore
+ /* d should hopefully never be zero anymore */
d = 1.f/d;
texr->tr *= d;
texr->tg *= d;
texr->tb *= d;
- // clipping can be ignored if alpha used, texr->ta already includes filtered edge
- texr->ta = texr->talpha ? texr->ta*d : 1.f; // TXF alpha (clip ? cw*d : 1.f);
+ /* clipping can be ignored if alpha used, texr->ta already includes filtered edge */
+ texr->ta = texr->talpha ? texr->ta*d : 1.f; /* TXF alpha (clip ? cw*d : 1.f); */
}
-static void feline_eval(TexResult* texr, ImBuf* ibuf, float fx, float fy, afdata_t* AFD)
+static void feline_eval(TexResult *texr, ImBuf *ibuf, float fx, float fy, afdata_t *AFD)
{
const int maxn = AFD->iProbes - 1;
const float ll = ((AFD->majrad == AFD->minrad) ? 2.f*AFD->majrad : 2.f*(AFD->majrad - AFD->minrad)) / (maxn ? (float)maxn : 1.f);
float du = maxn ? cosf(AFD->theta)*ll : 0.f;
float dv = maxn ? sinf(AFD->theta)*ll : 0.f;
- //const float D = -0.5f*(du*du + dv*dv) / (AFD->majrad*AFD->majrad);
+ /* const float D = -0.5f*(du*du + dv*dv) / (AFD->majrad*AFD->majrad); */
const float D = (EWA_MAXIDX + 1)*0.25f*(du*du + dv*dv) / (AFD->majrad*AFD->majrad);
- float d; // TXF alpha: cw = 0.f;
- int n; // TXF alpha: clip = 0;
- // have to use same scaling for du/dv here as for Ux/Vx/Uy/Vy (*after* D calc.)
+ float d; /* TXF alpha: cw = 0.f; */
+ int n; /* TXF alpha: clip = 0; */
+ /* have to use same scaling for du/dv here as for Ux/Vx/Uy/Vy (*after* D calc.) */
du *= AFD->dusc;
dv *= AFD->dvsc;
d = texr->tr = texr->tb = texr->tg = texr->ta = 0.f;
@@ -943,12 +951,12 @@ static void feline_eval(TexResult* texr, ImBuf* ibuf, float fx, float fy, afdata
float tc[4];
const float hn = n*0.5f;
const float u = fx + hn*du, v = fy + hn*dv;
- //const float wt = expf(n*n*D);
- // can use ewa table here too
+ /*const float wt = expf(n*n*D);
+ * can use ewa table here too */
const float wt = EWA_WTS[(int)(n*n*D)];
/*const int out =*/ ibuf_get_color_clip_bilerp(tc, ibuf, ibuf->x*u, ibuf->y*v, AFD->intpol, AFD->extflag);
- // TXF alpha: clip |= out;
- // TXF alpha: cw += out ? 0.f : wt;
+ /* TXF alpha: clip |= out;
+ * TXF alpha: cw += out ? 0.f : wt; */
texr->tr += tc[0]*wt;
texr->tg += tc[1]*wt;
texr->tb += tc[2]*wt;
@@ -960,7 +968,7 @@ static void feline_eval(TexResult* texr, ImBuf* ibuf, float fx, float fy, afdata
texr->tr *= d;
texr->tg *= d;
texr->tb *= d;
- // clipping can be ignored if alpha used, texr->ta already includes filtered edge
+ /* clipping can be ignored if alpha used, texr->ta already includes filtered edge */
texr->ta = texr->talpha ? texr->ta*d : 1.f; // TXF alpha: (clip ? cw*d : 1.f);
}
#undef EWA_MAXIDX
@@ -970,8 +978,8 @@ static void alpha_clip_aniso(ImBuf *ibuf, float minx, float miny, float maxx, fl
float alphaclip;
rctf rf;
- // TXF apha: we're doing the same alphaclip here as boxsample, but i'm doubting
- // if this is actually correct for the all the filtering algorithms ..
+ /* TXF apha: we're doing the same alphaclip here as boxsample, but i'm doubting
+ * if this is actually correct for the all the filtering algorithms .. */
if (!(extflag == TXC_REPT || extflag == TXC_EXTD)) {
rf.xmin = minx*(ibuf->x);
@@ -979,9 +987,9 @@ static void alpha_clip_aniso(ImBuf *ibuf, float minx, float miny, float maxx, fl
rf.ymin = miny*(ibuf->y);
rf.ymax = maxy*(ibuf->y);
- alphaclip = clipx_rctf(&rf, 0.0, (float)(ibuf->x));
- alphaclip*= clipy_rctf(&rf, 0.0, (float)(ibuf->y));
- alphaclip= MAX2(alphaclip, 0.0f);
+ alphaclip = clipx_rctf(&rf, 0.0, (float)(ibuf->x));
+ alphaclip *= clipy_rctf(&rf, 0.0, (float)(ibuf->y));
+ alphaclip = maxf(alphaclip, 0.0f);
if (alphaclip!=1.0f) {
/* premul it all */
@@ -1017,7 +1025,7 @@ static void image_mipmap_test(Tex *tex, ImBuf *ibuf)
}
-static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], float dxt[3], float dyt[3], TexResult *texres)
+static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], float dxt[2], float dyt[2], TexResult *texres)
{
TexResult texr;
float fx, fy, minx, maxx, miny, maxy;
@@ -1040,19 +1048,23 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
texres->tin = texres->ta = texres->tr = texres->tg = texres->tb = 0.f;
- // we need to set retval OK, otherwise texture code generates normals itself...
+ /* we need to set retval OK, otherwise texture code generates normals itself... */
retval = texres->nor ? 3 : 1;
- // quick tests
+ /* quick tests */
if (ibuf==NULL && ima==NULL) return retval;
- if (ima) { // hack for icon render
+ if (ima) { /* hack for icon render */
if ((ima->ibufs.first == NULL) && (R.r.scemode & R_NO_IMAGE_LOAD)) return retval;
ibuf = BKE_image_get_ibuf(ima, &tex->iuser);
}
if ((ibuf == NULL) || ((ibuf->rect == NULL) && (ibuf->rect_float == NULL))) return retval;
+ if (ima) {
+ ima->flag |= IMA_USED_FOR_RENDER;
+ }
+
/* mipmap test */
image_mipmap_test(tex, ibuf);
@@ -1079,18 +1091,18 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
}
}
- // pixel coordinates
+ /* pixel coordinates */
minx = MIN3(dxt[0], dyt[0], dxt[0] + dyt[0]);
maxx = MAX3(dxt[0], dyt[0], dxt[0] + dyt[0]);
miny = MIN3(dxt[1], dyt[1], dxt[1] + dyt[1]);
maxy = MAX3(dxt[1], dyt[1], dxt[1] + dyt[1]);
- // tex_sharper has been removed
+ /* tex_sharper has been removed */
minx = (maxx - minx)*0.5f;
miny = (maxy - miny)*0.5f;
if (tex->imaflag & TEX_FILTER_MIN) {
- // make sure the filtersize is minimal in pixels (normal, ref map can have miniature pixel dx/dy)
+ /* make sure the filtersize is minimal in pixels (normal, ref map can have miniature pixel dx/dy) */
const float addval = (0.5f * tex->filtersize) / (float)MIN2(ibuf->x, ibuf->y);
if (addval > minx) minx = addval;
if (addval > miny) miny = addval;
@@ -1107,9 +1119,9 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
if (tex->imaflag & TEX_IMAROT) {
float t;
SWAP(float, minx, miny);
- // must rotate dxt/dyt 90 deg
- // yet another blender problem is that swapping X/Y axes (or any tex proj switches) should do something similar,
- // but it doesn't, it only swaps coords, so filter area will be incorrect in those cases.
+ /* must rotate dxt/dyt 90 deg
+ * yet another blender problem is that swapping X/Y axes (or any tex proj switches) should do something similar,
+ * but it doesn't, it only swaps coords, so filter area will be incorrect in those cases. */
t = dxt[0];
dxt[0] = dxt[1];
dxt[1] = -t;
@@ -1118,11 +1130,11 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
dyt[1] = -t;
}
- // side faces of unit-cube
+ /* side faces of unit-cube */
minx = (minx > 0.25f) ? 0.25f : ((minx < 1e-5f) ? 1e-5f : minx);
miny = (miny > 0.25f) ? 0.25f : ((miny < 1e-5f) ? 1e-5f : miny);
- // repeat and clip
+ /* repeat and clip */
if (tex->extend == TEX_REPEAT) {
if ((tex->flag & (TEX_REPEAT_XMIR | TEX_REPEAT_YMIR)) == (TEX_REPEAT_XMIR | TEX_REPEAT_YMIR))
@@ -1139,7 +1151,7 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
if (tex->extend == TEX_CHECKER) {
int xs = (int)floorf(fx), ys = (int)floorf(fy);
- // both checkers available, no boundary exceptions, checkerdist will eat aliasing
+ /* both checkers available, no boundary exceptions, checkerdist will eat aliasing */
if ((tex->flag & TEX_CHECKER_ODD) && (tex->flag & TEX_CHECKER_EVEN)) {
fx -= xs;
fy -= ys;
@@ -1166,7 +1178,7 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
fy -= ys;
}
}
- // scale around center, (0.5, 0.5)
+ /* scale around center, (0.5, 0.5) */
if (tex->checkerdist < 1.f) {
const float omcd = 1.f / (1.f - tex->checkerdist);
fx = (fx - 0.5f)*omcd + 0.5f;
@@ -1195,34 +1207,34 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
intpol = tex->imaflag & TEX_INTERPOL;
- // warning no return!
+ /* warning no return! */
if ((R.flag & R_SEC_FIELD) && (ibuf->flags & IB_fields))
ibuf->rect += ibuf->x*ibuf->y;
- // struct common data
+ /* struct common data */
copy_v2_v2(AFD.dxt, dxt);
copy_v2_v2(AFD.dyt, dyt);
AFD.intpol = intpol;
AFD.extflag = extflag;
- // brecht: added stupid clamping here, large dx/dy can give very large
- // filter sizes which take ages to render, it may be better to do this
- // more intelligently later in the code .. probably it's not noticeable
+ /* brecht: added stupid clamping here, large dx/dy can give very large
+ * filter sizes which take ages to render, it may be better to do this
+ * more intelligently later in the code .. probably it's not noticeable */
if (AFD.dxt[0]*AFD.dxt[0] + AFD.dxt[1]*AFD.dxt[1] > 2.0f*2.0f)
mul_v2_fl(AFD.dxt, 2.0f/len_v2(AFD.dxt));
if (AFD.dyt[0]*AFD.dyt[0] + AFD.dyt[1]*AFD.dyt[1] > 2.0f*2.0f)
mul_v2_fl(AFD.dyt, 2.0f/len_v2(AFD.dyt));
- // choice:
+ /* choice: */
if (tex->imaflag & TEX_MIPMAP) {
ImBuf *previbuf, *curibuf;
float levf;
int maxlev;
- ImBuf* mipmaps[IB_MIPMAP_LEVELS + 1];
+ ImBuf *mipmaps[IB_MIPMAP_LEVELS + 1];
- // modify ellipse minor axis if too eccentric, use for area sampling as well
- // scaling dxt/dyt as done in pbrt is not the same
- // (as in ewa_eval(), scale by sqrt(ibuf->x) to maximize precision)
+ /* modify ellipse minor axis if too eccentric, use for area sampling as well
+ * scaling dxt/dyt as done in pbrt is not the same
+ * (as in ewa_eval(), scale by sqrt(ibuf->x) to maximize precision) */
const float ff = sqrtf(ibuf->x), q = ibuf->y/ff;
const float Ux = dxt[0]*ff, Vx = dxt[1]*q, Uy = dyt[0]*ff, Vy = dyt[1]*q;
const float A = Vx*Vx + Vy*Vy;
@@ -1235,8 +1247,8 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
float fProbes;
a *= ff;
b *= ff;
- a = MAX2(a, 1.f);
- b = MAX2(b, 1.f);
+ a = maxf(a, 1.0f);
+ b = maxf(b, 1.0f);
fProbes = 2.f*(a / b) - 1.f;
AFD.iProbes = (int)floorf(fProbes + 0.5f);
AFD.iProbes = MIN2(AFD.iProbes, tex->afmax);
@@ -1248,12 +1260,12 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
AFD.dusc = 1.f/ff;
AFD.dvsc = ff / (float)ibuf->y;
}
- else { // EWA & area
+ else { /* EWA & area */
if (ecc > (float)tex->afmax) b = a / (float)tex->afmax;
b *= ff;
}
- maxd = MAX2(b, 1e-8f);
- levf = ((float)M_LOG2E)*logf(maxd);
+ maxd = maxf(b, 1e-8f);
+ levf = ((float)M_LOG2E) * logf(maxd);
curmap = 0;
maxlev = 1;
@@ -1264,8 +1276,8 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
curmap++;
}
- // mipmap level
- if (levf < 0.f) { // original image only
+ /* mipmap level */
+ if (levf < 0.f) { /* original image only */
previbuf = curibuf = mipmaps[0];
levf = 0.f;
}
@@ -1281,39 +1293,39 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
levf -= floorf(levf);
}
- // filter functions take care of interpolation themselves, no need to modify dxt/dyt here
+ /* filter functions take care of interpolation themselves, no need to modify dxt/dyt here */
if (texres->nor && ((tex->imaflag & TEX_NORMALMAP) == 0)) {
- // color & normal
+ /* color & normal */
filterfunc(texres, curibuf, fx, fy, &AFD);
val1 = texres->tr + texres->tg + texres->tb;
filterfunc(&texr, curibuf, fx + dxt[0], fy + dxt[1], &AFD);
val2 = texr.tr + texr.tg + texr.tb;
filterfunc(&texr, curibuf, fx + dyt[0], fy + dyt[1], &AFD);
val3 = texr.tr + texr.tg + texr.tb;
- // don't switch x or y!
+ /* don't switch x or y! */
texres->nor[0] = val1 - val2;
texres->nor[1] = val1 - val3;
- if (previbuf != curibuf) { // interpolate
+ if (previbuf != curibuf) { /* interpolate */
filterfunc(&texr, previbuf, fx, fy, &AFD);
- // rgb
+ /* rgb */
texres->tr += levf*(texr.tr - texres->tr);
texres->tg += levf*(texr.tg - texres->tg);
texres->tb += levf*(texr.tb - texres->tb);
texres->ta += levf*(texr.ta - texres->ta);
- // normal
+ /* normal */
val1 += levf*((texr.tr + texr.tg + texr.tb) - val1);
filterfunc(&texr, previbuf, fx + dxt[0], fy + dxt[1], &AFD);
val2 += levf*((texr.tr + texr.tg + texr.tb) - val2);
filterfunc(&texr, previbuf, fx + dyt[0], fy + dyt[1], &AFD);
val3 += levf*((texr.tr + texr.tg + texr.tb) - val3);
- texres->nor[0] = val1 - val2; // vals have been interpolated above!
+ texres->nor[0] = val1 - val2; /* vals have been interpolated above! */
texres->nor[1] = val1 - val3;
}
}
- else { // color
+ else { /* color */
filterfunc(texres, curibuf, fx, fy, &AFD);
- if (previbuf != curibuf) { // interpolate
+ if (previbuf != curibuf) { /* interpolate */
filterfunc(&texr, previbuf, fx, fy, &AFD);
texres->tr += levf*(texr.tr - texres->tr);
texres->tg += levf*(texr.tg - texres->tg);
@@ -1324,8 +1336,8 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
alpha_clip_aniso(ibuf, fx-minx, fy-miny, fx+minx, fy+miny, extflag, texres);
}
}
- else { // no mipmap
- // filter functions take care of interpolation themselves, no need to modify dxt/dyt here
+ else { /* no mipmap */
+ /* filter functions take care of interpolation themselves, no need to modify dxt/dyt here */
if (tex->texfilter == TXF_FELINE) {
const float ff = sqrtf(ibuf->x), q = ibuf->y/ff;
const float Ux = dxt[0]*ff, Vx = dxt[1]*q, Uy = dyt[0]*ff, Vy = dyt[1]*q;
@@ -1337,10 +1349,10 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
imp2radangle(A, B, C, F, &a, &b, &th, &ecc);
a *= ff;
b *= ff;
- a = MAX2(a, 1.f);
- b = MAX2(b, 1.f);
+ a = maxf(a, 1.0f);
+ b = maxf(b, 1.0f);
fProbes = 2.f*(a / b) - 1.f;
- // no limit to number of Probes here
+ /* no limit to number of Probes here */
AFD.iProbes = (int)floorf(fProbes + 0.5f);
if (AFD.iProbes < fProbes) b = 2.f*a / (float)(AFD.iProbes + 1);
AFD.majrad = a/ff;
@@ -1350,14 +1362,14 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
AFD.dvsc = ff / (float)ibuf->y;
}
if (texres->nor && ((tex->imaflag & TEX_NORMALMAP) == 0)) {
- // color & normal
+ /* color & normal */
filterfunc(texres, ibuf, fx, fy, &AFD);
val1 = texres->tr + texres->tg + texres->tb;
filterfunc(&texr, ibuf, fx + dxt[0], fy + dxt[1], &AFD);
val2 = texr.tr + texr.tg + texr.tb;
filterfunc(&texr, ibuf, fx + dyt[0], fy + dyt[1], &AFD);
val3 = texr.tr + texr.tg + texr.tb;
- // don't switch x or y!
+ /* don't switch x or y! */
texres->nor[0] = val1 - val2;
texres->nor[1] = val1 - val3;
}
@@ -1376,23 +1388,23 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
if ((R.flag & R_SEC_FIELD) && (ibuf->flags & IB_fields))
ibuf->rect -= ibuf->x*ibuf->y;
- if (texres->nor && (tex->imaflag & TEX_NORMALMAP)) { // normal from color
- // The invert of the red channel is to make
- // the normal map compliant with the outside world.
- // It needs to be done because in Blender
- // the normal used in the renderer points inward. It is generated
- // this way in calc_vertexnormals(). Should this ever change
- // this negate must be removed.
+ if (texres->nor && (tex->imaflag & TEX_NORMALMAP)) { /* normal from color */
+ /* The invert of the red channel is to make
+ * the normal map compliant with the outside world.
+ * It needs to be done because in Blender
+ * the normal used in the renderer points inward. It is generated
+ * this way in calc_vertexnormals(). Should this ever change
+ * this negate must be removed. */
texres->nor[0] = -2.f*(texres->tr - 0.5f);
texres->nor[1] = 2.f*(texres->tg - 0.5f);
texres->nor[2] = 2.f*(texres->tb - 0.5f);
}
-
- // de-premul, this is being premulled in shade_input_do_shade()
- // TXF: this currently does not (yet?) work properly, destroys edge AA in clip/checker mode, so for now commented out
- // also disabled in imagewraposa() to be able to compare results with blender's default texture filtering
- // brecht: tried to fix this, see "TXF alpha" comments
+ /* de-premul, this is being premulled in shade_input_do_shade()
+ * TXF: this currently does not (yet?) work properly, destroys edge AA in clip/checker mode, so for now commented out
+ * also disabled in imagewraposa() to be able to compare results with blender's default texture filtering */
+
+ /* brecht: tried to fix this, see "TXF alpha" comments */
if (texres->ta != 1.f && (texres->ta > 1e-4f)) {
fx = 1.f/texres->ta;
@@ -1407,19 +1419,19 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
}
-int imagewraposa(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], const float DXT[3], const float DYT[3], TexResult *texres)
+int imagewraposa(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], const float DXT[2], const float DYT[2], TexResult *texres)
{
TexResult texr;
- float fx, fy, minx, maxx, miny, maxy, dx, dy, dxt[3], dyt[3];
+ float fx, fy, minx, maxx, miny, maxy, dx, dy, dxt[2], dyt[2];
float maxd, pixsize, val1, val2, val3;
int curmap, retval, imaprepeat, imapextend;
- // TXF: since dxt/dyt might be modified here and since they might be needed after imagewraposa() call,
- // make a local copy here so that original vecs remain untouched
- copy_v3_v3(dxt, DXT);
- copy_v3_v3(dyt, DYT);
+ /* TXF: since dxt/dyt might be modified here and since they might be needed after imagewraposa() call,
+ * make a local copy here so that original vecs remain untouched */
+ copy_v2_v2(dxt, DXT);
+ copy_v2_v2(dyt, DYT);
- // anisotropic filtering
+ /* anisotropic filtering */
if (tex->texfilter != TXF_BOX)
return imagewraposa_aniso(tex, ima, ibuf, texvec, dxt, dyt, texres);
@@ -1448,8 +1460,12 @@ int imagewraposa(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], const
image_mipmap_test(tex, ibuf);
if (tex->imaflag & TEX_USEALPHA) {
- if (tex->imaflag & TEX_CALCALPHA);
- else texres->talpha= 1;
+ if (tex->imaflag & TEX_CALCALPHA) {
+ /* pass */
+ }
+ else {
+ texres->talpha = TRUE;
+ }
}
texr.talpha= texres->talpha;
@@ -1530,7 +1546,7 @@ int imagewraposa(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], const
xs= (int)floor(fx);
ys= (int)floor(fy);
- // both checkers available, no boundary exceptions, checkerdist will eat aliasing
+ /* both checkers available, no boundary exceptions, checkerdist will eat aliasing */
if ( (tex->flag & TEX_CHECKER_ODD) && (tex->flag & TEX_CHECKER_EVEN) ) {
fx-= xs;
fy-= ys;
@@ -1545,11 +1561,17 @@ int imagewraposa(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], const
if (boundary==0) {
if ( (tex->flag & TEX_CHECKER_ODD)==0) {
- if ((xs+ys) & 1);
- else return retval;
+ if ((xs + ys) & 1) {
+ /* pass */
+ }
+ else {
+ return retval;
+ }
}
if ( (tex->flag & TEX_CHECKER_EVEN)==0) {
- if ((xs+ys) & 1) return retval;
+ if ((xs + ys) & 1) {
+ return retval;
+ }
}
fx-= xs;
fy-= ys;
@@ -1621,12 +1643,12 @@ int imagewraposa(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], const
ImBuf *previbuf, *curibuf;
float bumpscale;
- dx= minx;
- dy= miny;
- maxd= MAX2(dx, dy);
- if (maxd>0.5f) maxd= 0.5f;
+ dx = minx;
+ dy = miny;
+ maxd = maxf(dx, dy);
+ if (maxd > 0.5f) maxd = 0.5f;
- pixsize = 1.0f/ (float) MIN2(ibuf->x, ibuf->y);
+ pixsize = 1.0f / (float) MIN2(ibuf->x, ibuf->y);
bumpscale= pixsize/maxd;
if (bumpscale>1.0f) bumpscale= 1.0f;
@@ -1765,24 +1787,21 @@ int imagewraposa(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], const
}
if (texres->nor && (tex->imaflag & TEX_NORMALMAP)) {
- // qdn: normal from color
- // The invert of the red channel is to make
- // the normal map compliant with the outside world.
- // It needs to be done because in Blender
- // the normal used in the renderer points inward. It is generated
- // this way in calc_vertexnormals(). Should this ever change
- // this negate must be removed.
+ /* qdn: normal from color
+ * The invert of the red channel is to make
+ * the normal map compliant with the outside world.
+ * It needs to be done because in Blender
+ * the normal used in the renderer points inward. It is generated
+ * this way in calc_vertexnormals(). Should this ever change
+ * this negate must be removed. */
texres->nor[0] = -2.f*(texres->tr - 0.5f);
texres->nor[1] = 2.f*(texres->tg - 0.5f);
texres->nor[2] = 2.f*(texres->tb - 0.5f);
}
-
+
/* de-premul, this is being premulled in shade_input_do_shade() */
- if (texres->ta!=1.0f && texres->ta>1e-4f) {
- fx= 1.0f/texres->ta;
- texres->tr*= fx;
- texres->tg*= fx;
- texres->tb*= fx;
+ if (texres->ta != 1.0f && texres->ta > 1e-4f) {
+ mul_v3_fl(&texres->tr, 1.0f / texres->ta);
}
BRICONTRGB;
@@ -1790,25 +1809,22 @@ int imagewraposa(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], const
return retval;
}
-void image_sample(Image *ima, float fx, float fy, float dx, float dy, float *result)
+void image_sample(Image *ima, float fx, float fy, float dx, float dy, float result[4])
{
TexResult texres;
ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL);
- if (ibuf==NULL) {
- result[0]= result[1]= result[2]= result[3]= 0.0f;
+ if (UNLIKELY(ibuf == NULL)) {
+ zero_v4(result);
return;
}
if ( (R.flag & R_SEC_FIELD) && (ibuf->flags & IB_fields) )
ibuf->rect+= (ibuf->x*ibuf->y);
- texres.talpha= 1; /* boxsample expects to be initialized */
- boxsample(ibuf, fx, fy, fx+dx, fy+dy, &texres, 0, 1);
- result[0]= texres.tr;
- result[1]= texres.tg;
- result[2]= texres.tb;
- result[3]= texres.ta;
+ texres.talpha = TRUE; /* boxsample expects to be initialized */
+ boxsample(ibuf, fx, fy, fx + dx, fy + dy, &texres, 0, 1);
+ copy_v4_v4(result, &texres.tr);
if ( (R.flag & R_SEC_FIELD) && (ibuf->flags & IB_fields) )
ibuf->rect-= (ibuf->x*ibuf->y);
@@ -1816,15 +1832,11 @@ void image_sample(Image *ima, float fx, float fy, float dx, float dy, float *res
ima->flag|= IMA_USED_FOR_RENDER;
}
-void ibuf_sample(ImBuf *ibuf, float fx, float fy, float dx, float dy, float *result)
+void ibuf_sample(ImBuf *ibuf, float fx, float fy, float dx, float dy, float result[4])
{
- TexResult texres;
+ TexResult texres = {0};
afdata_t AFD;
-
- if (ibuf==NULL) {
- return;
- }
-
+
AFD.dxt[0] = dx; AFD.dxt[1] = dx;
AFD.dyt[0] = dy; AFD.dyt[1] = dy;
//copy_v2_v2(AFD.dxt, dx);
@@ -1832,13 +1844,8 @@ void ibuf_sample(ImBuf *ibuf, float fx, float fy, float dx, float dy, float *res
AFD.intpol = 1;
AFD.extflag = TXC_EXTD;
-
- memset(&texres, 0, sizeof(texres));
+
ewa_eval(&texres, ibuf, fx, fy, &AFD);
-
- result[0]= texres.tr;
- result[1]= texres.tg;
- result[2]= texres.tb;
- result[3]= texres.ta;
+ copy_v4_v4(result, &texres.tr);
}
diff --git a/source/blender/render/intern/source/initrender.c b/source/blender/render/intern/source/initrender.c
index 33a777381aa..88c64b44b64 100644
--- a/source/blender/render/intern/source/initrender.c
+++ b/source/blender/render/intern/source/initrender.c
@@ -27,8 +27,6 @@
* \ingroup render
*/
-
-
/* Global includes */
#include <math.h>
@@ -539,7 +537,7 @@ void freeparts(Render *re)
BLI_freelistN(&re->parts);
}
-void initparts(Render *re)
+void initparts(Render *re, int do_crop)
{
int nr, xd, yd, partx, party, xparts, yparts;
int xminb, xmaxb, yminb, ymaxb;
@@ -612,15 +610,15 @@ void initparts(Render *re)
}
else disprect.ymax = ymaxb;
- rectx = disprect.xmax - disprect.xmin;
- recty = disprect.ymax - disprect.ymin;
+ rectx = BLI_rcti_size_x(&disprect);
+ recty = BLI_rcti_size_y(&disprect);
/* so, now can we add this part? */
if (rectx > 0 && recty > 0) {
RenderPart *pa = MEM_callocN(sizeof(RenderPart), "new part");
/* Non-box filters need 2 pixels extra to work */
- if ((re->r.filtertype || (re->r.mode & R_EDGE))) {
+ if (do_crop && (re->r.filtertype || (re->r.mode & R_EDGE))) {
pa->crop = 2;
disprect.xmin -= pa->crop;
disprect.ymin -= pa->crop;
diff --git a/source/blender/render/intern/source/occlusion.c b/source/blender/render/intern/source/occlusion.c
index b3eb8c0fd5c..895c5d6c8fb 100644
--- a/source/blender/render/intern/source/occlusion.c
+++ b/source/blender/render/intern/source/occlusion.c
@@ -61,7 +61,6 @@
/* ------------------------- Declarations --------------------------- */
-#define INVALID_INDEX ((int)(~0))
#define INVPI ((float)M_1_PI)
#define TOTCHILD 8
#define CACHE_STEP 3
@@ -96,11 +95,11 @@ typedef struct OccNode {
typedef struct OcclusionTree {
MemArena *arena;
- float (*co)[3]; /* temporary during build */
+ float (*co)[3]; /* temporary during build */
- OccFace *face; /* instance and face indices */
- float *occlusion; /* occlusion for faces */
- float (*rad)[3]; /* radiance for faces */
+ OccFace *face; /* instance and face indices */
+ float *occlusion; /* occlusion for faces */
+ float (*rad)[3]; /* radiance for faces */
OccNode *root;
@@ -137,35 +136,35 @@ typedef struct OcclusionBuildThread {
/* ------------------------- Shading --------------------------- */
-extern Render R; // meh
+extern Render R; /* meh */
static void occ_shade(ShadeSample *ssamp, ObjectInstanceRen *obi, VlakRen *vlr, float *rad)
{
- ShadeInput *shi= ssamp->shi;
- ShadeResult *shr= ssamp->shr;
+ ShadeInput *shi = ssamp->shi;
+ ShadeResult *shr = ssamp->shr;
float l, u, v, *v1, *v2, *v3;
/* init */
if (vlr->v4) {
- shi->u= u= 0.5f;
- shi->v= v= 0.5f;
+ shi->u = u = 0.5f;
+ shi->v = v = 0.5f;
}
else {
- shi->u= u= 1.0f/3.0f;
- shi->v= v= 1.0f/3.0f;
+ shi->u = u = 1.0f / 3.0f;
+ shi->v = v = 1.0f / 3.0f;
}
/* setup render coordinates */
- v1= vlr->v1->co;
- v2= vlr->v2->co;
- v3= vlr->v3->co;
+ v1 = vlr->v1->co;
+ v2 = vlr->v2->co;
+ v3 = vlr->v3->co;
/* renderco */
- l= 1.0f-u-v;
+ l = 1.0f - u - v;
- shi->co[0]= l*v3[0]+u*v1[0]+v*v2[0];
- shi->co[1]= l*v3[1]+u*v1[1]+v*v2[1];
- shi->co[2]= l*v3[2]+u*v1[2]+v*v2[2];
+ shi->co[0] = l * v3[0] + u * v1[0] + v * v2[0];
+ shi->co[1] = l * v3[1] + u * v1[1] + v * v2[1];
+ shi->co[2] = l * v3[2] + u * v1[2] + v * v2[2];
shade_input_set_triangle_i(shi, obi, vlr, 0, 1, 2);
@@ -175,9 +174,9 @@ static void occ_shade(ShadeSample *ssamp, ObjectInstanceRen *obi, VlakRen *vlr,
/* cache for shadow */
shi->samplenr++;
-
- shi->xs= 0; // TODO
- shi->ys= 0;
+
+ shi->xs = 0; /* TODO */
+ shi->ys = 0;
shade_input_set_normals(shi);
@@ -195,9 +194,9 @@ static void occ_shade(ShadeSample *ssamp, ObjectInstanceRen *obi, VlakRen *vlr,
}
/* init material vars */
- // note, keep this synced with render_types.h
- memcpy(&shi->r, &shi->mat->r, 23*sizeof(float));
- shi->har= shi->mat->har;
+ /* note, keep this synced with render_types.h */
+ memcpy(&shi->r, &shi->mat->r, 23 * sizeof(float));
+ shi->har = shi->mat->har;
/* render */
shade_input_set_shade_texco(shi);
@@ -213,18 +212,18 @@ static void occ_build_shade(Render *re, OcclusionTree *tree)
VlakRen *vlr;
int a;
- R= *re;
+ R = *re;
/* setup shade sample with correct passes */
memset(&ssamp, 0, sizeof(ShadeSample));
- ssamp.shi[0].lay= re->lay;
- ssamp.shi[0].passflag= SCE_PASS_DIFFUSE|SCE_PASS_RGBA;
- ssamp.shi[0].combinedflag= ~(SCE_PASS_SPEC);
- ssamp.tot= 1;
+ ssamp.shi[0].lay = re->lay;
+ ssamp.shi[0].passflag = SCE_PASS_DIFFUSE | SCE_PASS_RGBA;
+ ssamp.shi[0].combinedflag = ~(SCE_PASS_SPEC);
+ ssamp.tot = 1;
- for (a=0; a<tree->totface; a++) {
- obi= &R.objectinstance[tree->face[a].obi];
- vlr= RE_findOrAddVlak(obi->obr, tree->face[a].facenr);
+ for (a = 0; a < tree->totface; a++) {
+ obi = &R.objectinstance[tree->face[a].obi];
+ vlr = RE_findOrAddVlak(obi->obr, tree->face[a].facenr);
occ_shade(&ssamp, obi, vlr, tree->rad[a]);
}
@@ -239,14 +238,14 @@ static void occ_build_shade(Render *re, OcclusionTree *tree)
static void sh_copy(float *shresult, float *sh)
{
- memcpy(shresult, sh, sizeof(float)*9);
+ memcpy(shresult, sh, sizeof(float) * 9);
}
static void sh_mul(float *sh, float f)
{
int i;
- for (i=0; i<9; i++)
+ for (i = 0; i < 9; i++)
sh[i] *= f;
}
@@ -254,8 +253,8 @@ static void sh_add(float *shresult, float *sh1, float *sh2)
{
int i;
- for (i=0; i<9; i++)
- shresult[i]= sh1[i] + sh2[i];
+ for (i = 0; i < 9; i++)
+ shresult[i] = sh1[i] + sh2[i];
}
static void sh_from_disc(float *n, float area, float *shresult)
@@ -264,21 +263,21 @@ static void sh_from_disc(float *n, float area, float *shresult)
* "An Efficient Representation for Irradiance Environment Maps" */
float sh[9], x, y, z;
- x= n[0];
- y= n[1];
- z= n[2];
+ x = n[0];
+ y = n[1];
+ z = n[2];
- sh[0]= 0.282095f;
+ sh[0] = 0.282095f;
- sh[1]= 0.488603f*y;
- sh[2]= 0.488603f*z;
- sh[3]= 0.488603f*x;
-
- sh[4]= 1.092548f*x*y;
- sh[5]= 1.092548f*y*z;
- sh[6]= 0.315392f*(3.0f*z*z - 1.0f);
- sh[7]= 1.092548f*x*z;
- sh[8]= 0.546274f*(x*x - y*y);
+ sh[1] = 0.488603f * y;
+ sh[2] = 0.488603f * z;
+ sh[3] = 0.488603f * x;
+
+ sh[4] = 1.092548f * x * y;
+ sh[5] = 1.092548f * y * z;
+ sh[6] = 0.315392f * (3.0f * z * z - 1.0f);
+ sh[7] = 1.092548f * x * z;
+ sh[8] = 0.546274f * (x * x - y * y);
sh_mul(sh, area);
sh_copy(shresult, sh);
@@ -292,16 +291,16 @@ static float sh_eval(float *sh, float *v)
static const float c4 = 0.886227f, c5 = 0.247708f;
float x, y, z, sum;
- x= v[0];
- y= v[1];
- z= v[2];
+ x = v[0];
+ y = v[1];
+ z = v[2];
- sum= c1*sh[8]*(x*x - y*y);
- sum += c3*sh[6]*z*z;
- sum += c4*sh[0];
- sum += -c5*sh[6];
- sum += 2.0f*c1*(sh[4]*x*y + sh[7]*x*z + sh[5]*y*z);
- sum += 2.0f*c2*(sh[3]*x + sh[1]*y + sh[2]*z);
+ sum = c1 * sh[8] * (x * x - y * y);
+ sum += c3 * sh[6] * z * z;
+ sum += c4 * sh[0];
+ sum += -c5 * sh[6];
+ sum += 2.0f * c1 * (sh[4] * x * y + sh[7] * x * z + sh[5] * y * z);
+ sum += 2.0f * c2 * (sh[3] * x + sh[1] * y + sh[2] * z);
return sum;
}
@@ -314,8 +313,8 @@ static void occ_face(const OccFace *face, float co[3], float normal[3], float *a
VlakRen *vlr;
float v1[3], v2[3], v3[3], v4[3];
- obi= &R.objectinstance[face->obi];
- vlr= RE_findOrAddVlak(obi->obr, face->facenr);
+ obi = &R.objectinstance[face->obi];
+ vlr = RE_findOrAddVlak(obi->obr, face->facenr);
if (co) {
if (vlr->v4)
@@ -328,9 +327,9 @@ static void occ_face(const OccFace *face, float co[3], float normal[3], float *a
}
if (normal) {
- normal[0]= -vlr->n[0];
- normal[1]= -vlr->n[1];
- normal[2]= -vlr->n[2];
+ normal[0] = -vlr->n[0];
+ normal[1] = -vlr->n[1];
+ normal[2] = -vlr->n[2];
if (obi->flag & R_TRANSFORMED)
mul_m3_v3(obi->nmat, normal);
@@ -351,9 +350,9 @@ static void occ_face(const OccFace *face, float co[3], float normal[3], float *a
/* todo: correct area for instances */
if (vlr->v4)
- *area= area_quad_v3(v1, v2, v3, v4);
+ *area = area_quad_v3(v1, v2, v3, v4);
else
- *area= area_tri_v3(v1, v2, v3);
+ *area = area_tri_v3(v1, v2, v3);
}
}
@@ -361,25 +360,25 @@ static void occ_sum_occlusion(OcclusionTree *tree, OccNode *node)
{
OccNode *child;
float occ, area, totarea, rad[3];
- int a, b, indirect= tree->doindirect;
+ int a, b, indirect = tree->doindirect;
- occ= 0.0f;
- totarea= 0.0f;
+ occ = 0.0f;
+ totarea = 0.0f;
if (indirect) zero_v3(rad);
- for (b=0; b<TOTCHILD; b++) {
- if (node->childflag & (1<<b)) {
- a= node->child[b].face;
+ for (b = 0; b < TOTCHILD; b++) {
+ if (node->childflag & (1 << b)) {
+ a = node->child[b].face;
occ_face(&tree->face[a], 0, 0, &area);
- occ += area*tree->occlusion[a];
+ occ += area * tree->occlusion[a];
if (indirect) madd_v3_v3fl(rad, tree->rad[a], area);
totarea += area;
}
else if (node->child[b].node) {
- child= node->child[b].node;
+ child = node->child[b].node;
occ_sum_occlusion(tree, child);
- occ += child->area*child->occlusion;
+ occ += child->area * child->occlusion;
if (indirect) madd_v3_v3fl(rad, child->rad, child->area);
totarea += child->area;
}
@@ -387,16 +386,16 @@ static void occ_sum_occlusion(OcclusionTree *tree, OccNode *node)
if (totarea != 0.0f) {
occ /= totarea;
- if (indirect) mul_v3_fl(rad, 1.0f/totarea);
+ if (indirect) mul_v3_fl(rad, 1.0f / totarea);
}
- node->occlusion= occ;
+ node->occlusion = occ;
if (indirect) copy_v3_v3(node->rad, rad);
}
static int occ_find_bbox_axis(OcclusionTree *tree, int begin, int end, float *min, float *max)
{
- float len, maxlen= -1.0f;
+ float len, maxlen = -1.0f;
int a, axis = 0;
INIT_MINMAX(min, max);
@@ -405,12 +404,12 @@ static int occ_find_bbox_axis(OcclusionTree *tree, int begin, int end, float *mi
minmax_v3v3_v3(min, max, tree->co[a]);
}
- for (a=0; a<3; a++) {
- len= max[a] - min[a];
+ for (a = 0; a < 3; a++) {
+ len = max[a] - min[a];
if (len > maxlen) {
- maxlen= len;
- axis= a;
+ maxlen = len;
+ axis = a;
}
}
@@ -422,21 +421,21 @@ static void occ_node_from_face(OccFace *face, OccNode *node)
float n[3];
occ_face(face, node->co, n, &node->area);
- node->dco= 0.0f;
+ node->dco = 0.0f;
sh_from_disc(n, node->area, node->sh);
}
static void occ_build_dco(OcclusionTree *tree, OccNode *node, const float co[3], float *dco)
{
int b;
- for (b=0; b<TOTCHILD; b++) {
+ for (b = 0; b < TOTCHILD; b++) {
float dist, d[3], nco[3];
- if (node->childflag & (1<<b)) {
- occ_face(tree->face+node->child[b].face, nco, NULL, NULL);
+ if (node->childflag & (1 << b)) {
+ occ_face(tree->face + node->child[b].face, nco, NULL, NULL);
}
else if (node->child[b].node) {
- OccNode *child= node->child[b].node;
+ OccNode *child = node->child[b].node;
occ_build_dco(tree, child, co, dco);
copy_v3_v3(nco, child->co);
}
@@ -445,9 +444,9 @@ static void occ_build_dco(OcclusionTree *tree, OccNode *node, const float co[3],
}
sub_v3_v3v3(d, nco, co);
- dist= dot_v3v3(d, d);
+ dist = dot_v3v3(d, d);
if (dist > *dco)
- *dco= dist;
+ *dco = dist;
}
}
@@ -459,12 +458,12 @@ static void occ_build_split(OcclusionTree *tree, int begin, int end, int *split)
/* split in middle of boundbox. this seems faster than median split
* on complex scenes, possibly since it avoids two distant faces to
* be in the same node better? */
- axis= occ_find_bbox_axis(tree, begin, end, min, max);
- mid= 0.5f*(min[axis]+max[axis]);
+ axis = occ_find_bbox_axis(tree, begin, end, min, max);
+ mid = 0.5f * (min[axis] + max[axis]);
- a= begin;
- enda= end;
- while (a<enda) {
+ a = begin;
+ enda = end;
+ while (a < enda) {
if (tree->co[a][axis] > mid) {
enda--;
SWAP(OccFace, tree->face[a], tree->face[enda]);
@@ -476,7 +475,7 @@ static void occ_build_split(OcclusionTree *tree, int begin, int end, int *split)
a++;
}
- *split= enda;
+ *split = enda;
}
static void occ_build_8_split(OcclusionTree *tree, int begin, int end, int *offset, int *count)
@@ -488,7 +487,7 @@ static void occ_build_8_split(OcclusionTree *tree, int begin, int end, int *offs
/* force split if none found, to deal with degenerate geometry */
if (splitx == begin || splitx == end)
- splitx= (begin+end)/2;
+ splitx = (begin + end) / 2;
occ_build_split(tree, begin, splitx, &splity[0]);
occ_build_split(tree, splitx, end, &splity[1]);
@@ -498,25 +497,25 @@ static void occ_build_8_split(OcclusionTree *tree, int begin, int end, int *offs
occ_build_split(tree, splitx, splity[1], &splitz[2]);
occ_build_split(tree, splity[1], end, &splitz[3]);
- offset[0]= begin;
- offset[1]= splitz[0];
- offset[2]= splity[0];
- offset[3]= splitz[1];
- offset[4]= splitx;
- offset[5]= splitz[2];
- offset[6]= splity[1];
- offset[7]= splitz[3];
-
- for (b=0; b<7; b++)
- count[b]= offset[b+1] - offset[b];
- count[7]= end - offset[7];
+ offset[0] = begin;
+ offset[1] = splitz[0];
+ offset[2] = splity[0];
+ offset[3] = splitz[1];
+ offset[4] = splitx;
+ offset[5] = splitz[2];
+ offset[6] = splity[1];
+ offset[7] = splitz[3];
+
+ for (b = 0; b < 7; b++)
+ count[b] = offset[b + 1] - offset[b];
+ count[7] = end - offset[7];
}
static void occ_build_recursive(OcclusionTree *tree, OccNode *node, int begin, int end, int depth);
static void *exec_occ_build(void *data)
{
- OcclusionBuildThread *othread= (OcclusionBuildThread*)data;
+ OcclusionBuildThread *othread = (OcclusionBuildThread *)data;
occ_build_recursive(othread->tree, othread->node, othread->begin, othread->end, othread->depth);
@@ -529,17 +528,17 @@ static void occ_build_recursive(OcclusionTree *tree, OccNode *node, int begin, i
OcclusionBuildThread othreads[BLENDER_MAX_THREADS];
OccNode *child, tmpnode;
/* OccFace *face; */
- int a, b, totthread=0, offset[TOTCHILD], count[TOTCHILD];
+ int a, b, totthread = 0, offset[TOTCHILD], count[TOTCHILD];
/* add a new node */
- node->occlusion= 1.0f;
+ node->occlusion = 1.0f;
/* leaf node with only children */
if (end - begin <= TOTCHILD) {
- for (a=begin, b=0; a<end; a++, b++) {
+ for (a = begin, b = 0; a < end; a++, b++) {
/* face= &tree->face[a]; */
- node->child[b].face= a;
- node->childflag |= (1<<b);
+ node->child[b].face = a;
+ node->childflag |= (1 << b);
}
}
else {
@@ -549,40 +548,40 @@ static void occ_build_recursive(OcclusionTree *tree, OccNode *node, int begin, i
if (depth == 1 && tree->dothreadedbuild)
BLI_init_threads(&threads, exec_occ_build, tree->totbuildthread);
- for (b=0; b<TOTCHILD; b++) {
+ for (b = 0; b < TOTCHILD; b++) {
if (count[b] == 0) {
- node->child[b].node= NULL;
+ node->child[b].node = NULL;
}
else if (count[b] == 1) {
/* face= &tree->face[offset[b]]; */
- node->child[b].face= offset[b];
- node->childflag |= (1<<b);
+ node->child[b].face = offset[b];
+ node->childflag |= (1 << b);
}
else {
if (tree->dothreadedbuild)
BLI_lock_thread(LOCK_CUSTOM1);
- child= BLI_memarena_alloc(tree->arena, sizeof(OccNode));
- node->child[b].node= child;
+ child = BLI_memarena_alloc(tree->arena, sizeof(OccNode));
+ node->child[b].node = child;
/* keep track of maximum depth for stack */
- if (depth+1 > tree->maxdepth)
- tree->maxdepth= depth+1;
+ if (depth + 1 > tree->maxdepth)
+ tree->maxdepth = depth + 1;
if (tree->dothreadedbuild)
BLI_unlock_thread(LOCK_CUSTOM1);
if (depth == 1 && tree->dothreadedbuild) {
- othreads[totthread].tree= tree;
- othreads[totthread].node= child;
- othreads[totthread].begin= offset[b];
- othreads[totthread].end= offset[b]+count[b];
- othreads[totthread].depth= depth+1;
+ othreads[totthread].tree = tree;
+ othreads[totthread].node = child;
+ othreads[totthread].begin = offset[b];
+ othreads[totthread].end = offset[b] + count[b];
+ othreads[totthread].depth = depth + 1;
BLI_insert_thread(&threads, &othreads[totthread]);
totthread++;
}
else
- occ_build_recursive(tree, child, offset[b], offset[b]+count[b], depth+1);
+ occ_build_recursive(tree, child, offset[b], offset[b] + count[b], depth + 1);
}
}
@@ -591,13 +590,13 @@ static void occ_build_recursive(OcclusionTree *tree, OccNode *node, int begin, i
}
/* combine area, position and sh */
- for (b=0; b<TOTCHILD; b++) {
- if (node->childflag & (1<<b)) {
- child= &tmpnode;
- occ_node_from_face(tree->face+node->child[b].face, &tmpnode);
+ for (b = 0; b < TOTCHILD; b++) {
+ if (node->childflag & (1 << b)) {
+ child = &tmpnode;
+ occ_node_from_face(tree->face + node->child[b].face, &tmpnode);
}
else {
- child= node->child[b].node;
+ child = node->child[b].node;
}
if (child) {
@@ -608,10 +607,10 @@ static void occ_build_recursive(OcclusionTree *tree, OccNode *node, int begin, i
}
if (node->area != 0.0f)
- mul_v3_fl(node->co, 1.0f/node->area);
+ mul_v3_fl(node->co, 1.0f / node->area);
/* compute maximum distance from center */
- node->dco= 0.0f;
+ node->dco = 0.0f;
if (node->area > 0.0f)
occ_build_dco(tree, node, node->co, &node->dco);
}
@@ -623,12 +622,15 @@ static void occ_build_sh_normalize(OccNode *node)
int b;
if (node->area != 0.0f)
- sh_mul(node->sh, 1.0f/node->area);
+ sh_mul(node->sh, 1.0f / node->area);
- for (b=0; b<TOTCHILD; b++) {
- if (node->childflag & (1<<b));
- else if (node->child[b].node)
+ for (b = 0; b < TOTCHILD; b++) {
+ if (node->childflag & (1 << b)) {
+ /* pass */
+ }
+ else if (node->child[b].node) {
occ_build_sh_normalize(node->child[b].node);
+ }
}
}
@@ -638,18 +640,18 @@ static OcclusionTree *occ_tree_build(Render *re)
ObjectInstanceRen *obi;
ObjectRen *obr;
Material *ma;
- VlakRen *vlr= NULL;
+ VlakRen *vlr = NULL;
int a, b, c, totface;
/* count */
- totface= 0;
- for (obi=re->instancetable.first; obi; obi=obi->next) {
- obr= obi->obr;
- for (a=0; a<obr->totvlak; a++) {
- if ((a & 255)==0) vlr= obr->vlaknodes[a>>8].vlak;
+ totface = 0;
+ for (obi = re->instancetable.first; obi; obi = obi->next) {
+ obr = obi->obr;
+ for (a = 0; a < obr->totvlak; a++) {
+ if ((a & 255) == 0) vlr = obr->vlaknodes[a >> 8].vlak;
else vlr++;
- ma= vlr->mat;
+ ma = vlr->mat;
if ((ma->shade_flag & MA_APPROX_OCCLUSION) && (ma->material_type == MA_TYPE_SURFACE))
totface++;
@@ -659,41 +661,41 @@ static OcclusionTree *occ_tree_build(Render *re)
if (totface == 0)
return NULL;
- tree= MEM_callocN(sizeof(OcclusionTree), "OcclusionTree");
- tree->totface= totface;
+ tree = MEM_callocN(sizeof(OcclusionTree), "OcclusionTree");
+ tree->totface = totface;
/* parameters */
- tree->error= get_render_aosss_error(&re->r, re->wrld.ao_approx_error);
- tree->distfac= (re->wrld.aomode & WO_AODIST)? re->wrld.aodistfac: 0.0f;
- tree->doindirect= (re->wrld.ao_indirect_energy > 0.0f && re->wrld.ao_indirect_bounces > 0);
+ tree->error = get_render_aosss_error(&re->r, re->wrld.ao_approx_error);
+ tree->distfac = (re->wrld.aomode & WO_AODIST) ? re->wrld.aodistfac : 0.0f;
+ tree->doindirect = (re->wrld.ao_indirect_energy > 0.0f && re->wrld.ao_indirect_bounces > 0);
/* allocation */
- tree->arena= BLI_memarena_new(0x8000 * sizeof(OccNode), "occ tree arena");
+ tree->arena = BLI_memarena_new(0x8000 * sizeof(OccNode), "occ tree arena");
BLI_memarena_use_calloc(tree->arena);
if (re->wrld.aomode & WO_AOCACHE)
- tree->cache= MEM_callocN(sizeof(OcclusionCache)*BLENDER_MAX_THREADS, "OcclusionCache");
+ tree->cache = MEM_callocN(sizeof(OcclusionCache) * BLENDER_MAX_THREADS, "OcclusionCache");
- tree->face= MEM_callocN(sizeof(OccFace)*totface, "OcclusionFace");
- tree->co= MEM_callocN(sizeof(float)*3*totface, "OcclusionCo");
- tree->occlusion= MEM_callocN(sizeof(float)*totface, "OcclusionOcclusion");
+ tree->face = MEM_callocN(sizeof(OccFace) * totface, "OcclusionFace");
+ tree->co = MEM_callocN(sizeof(float) * 3 * totface, "OcclusionCo");
+ tree->occlusion = MEM_callocN(sizeof(float) * totface, "OcclusionOcclusion");
if (tree->doindirect)
- tree->rad= MEM_callocN(sizeof(float)*3*totface, "OcclusionRad");
+ tree->rad = MEM_callocN(sizeof(float) * 3 * totface, "OcclusionRad");
/* make array of face pointers */
- for (b=0, c=0, obi=re->instancetable.first; obi; obi=obi->next, c++) {
- obr= obi->obr;
- for (a=0; a<obr->totvlak; a++) {
- if ((a & 255)==0) vlr= obr->vlaknodes[a>>8].vlak;
+ for (b = 0, c = 0, obi = re->instancetable.first; obi; obi = obi->next, c++) {
+ obr = obi->obr;
+ for (a = 0; a < obr->totvlak; a++) {
+ if ((a & 255) == 0) vlr = obr->vlaknodes[a >> 8].vlak;
else vlr++;
- ma= vlr->mat;
+ ma = vlr->mat;
if ((ma->shade_flag & MA_APPROX_OCCLUSION) && (ma->material_type == MA_TYPE_SURFACE)) {
- tree->face[b].obi= c;
- tree->face[b].facenr= a;
- tree->occlusion[b]= 1.0f;
+ tree->face[b].obi = c;
+ tree->face[b].facenr = a;
+ tree->occlusion[b] = 1.0f;
occ_face(&tree->face[b], tree->co[b], NULL, NULL);
b++;
}
@@ -701,12 +703,12 @@ static OcclusionTree *occ_tree_build(Render *re)
}
/* threads */
- tree->totbuildthread= (re->r.threads > 1 && totface > 10000)? 8: 1;
- tree->dothreadedbuild= (tree->totbuildthread > 1);
+ tree->totbuildthread = (re->r.threads > 1 && totface > 10000) ? 8 : 1;
+ tree->dothreadedbuild = (tree->totbuildthread > 1);
/* recurse */
- tree->root= BLI_memarena_alloc(tree->arena, sizeof(OccNode));
- tree->maxdepth= 1;
+ tree->root = BLI_memarena_alloc(tree->arena, sizeof(OccNode));
+ tree->maxdepth = 1;
occ_build_recursive(tree, tree->root, 0, totface, 1);
if (tree->doindirect) {
@@ -715,12 +717,12 @@ static OcclusionTree *occ_tree_build(Render *re)
}
MEM_freeN(tree->co);
- tree->co= NULL;
+ tree->co = NULL;
occ_build_sh_normalize(tree->root);
- for (a=0; a<BLENDER_MAX_THREADS; a++)
- tree->stack[a]= MEM_callocN(sizeof(OccNode)*TOTCHILD*(tree->maxdepth+1), "OccStack");
+ for (a = 0; a < BLENDER_MAX_THREADS; a++)
+ tree->stack[a] = MEM_callocN(sizeof(OccNode) * TOTCHILD * (tree->maxdepth + 1), "OccStack");
return tree;
}
@@ -731,7 +733,7 @@ static void occ_free_tree(OcclusionTree *tree)
if (tree) {
if (tree->arena) BLI_memarena_free(tree->arena);
- for (a=0; a<BLENDER_MAX_THREADS; a++)
+ for (a = 0; a < BLENDER_MAX_THREADS; a++)
if (tree->stack[a])
MEM_freeN(tree->stack[a]);
if (tree->occlusion) MEM_freeN(tree->occlusion);
@@ -749,36 +751,40 @@ static float occ_solid_angle(OccNode *node, const float v[3], float d2, float in
float dotreceive, dotemit;
float ev[3];
- ev[0]= -v[0]*invd2;
- ev[1]= -v[1]*invd2;
- ev[2]= -v[2]*invd2;
- dotemit= sh_eval(node->sh, ev);
- dotreceive= dot_v3v3(receivenormal, v)*invd2;
+ ev[0] = -v[0] * invd2;
+ ev[1] = -v[1] * invd2;
+ ev[2] = -v[2] * invd2;
+ dotemit = sh_eval(node->sh, ev);
+ dotreceive = dot_v3v3(receivenormal, v) * invd2;
CLAMP(dotemit, 0.0f, 1.0f);
CLAMP(dotreceive, 0.0f, 1.0f);
- return ((node->area*dotemit*dotreceive)/(d2 + node->area*INVPI))*INVPI;
+ return ((node->area * dotemit * dotreceive) / (d2 + node->area * INVPI)) * INVPI;
}
-static void VecAddDir(float result[3], const float v1[3], const float v2[3], const float fac)
+static void vec_add_dir(float r[3], const float v1[3], const float v2[3], const float fac)
{
- result[0]= v1[0] + fac*(v2[0] - v1[0]);
- result[1]= v1[1] + fac*(v2[1] - v1[1]);
- result[2]= v1[2] + fac*(v2[2] - v1[2]);
+ r[0] = v1[0] + fac * (v2[0] - v1[0]);
+ r[1] = v1[1] + fac * (v2[1] - v1[1]);
+ r[2] = v1[2] + fac * (v2[2] - v1[2]);
}
-static int occ_visible_quad(float *p, const float n[3], const float v0[3], const float *v1, const float *v2, float q0[3], float q1[3], float q2[3], float q3[3])
+/* TODO: exact duplicate of ff_visible_quad() in math_geom.c
+ * why not de-duplicate? (also above helper func) */
+static int occ_visible_quad(const float p[3], const float n[3],
+ const float v0[3], const float v1[3], const float v2[3],
+ float q0[3], float q1[3], float q2[3], float q3[3])
{
static const float epsilon = 1e-6f;
float c, sd[3];
- c= dot_v3v3(n, p);
+ c = dot_v3v3(n, p);
/* signed distances from the vertices to the plane. */
- sd[0]= dot_v3v3(n, v0) - c;
- sd[1]= dot_v3v3(n, v1) - c;
- sd[2]= dot_v3v3(n, v2) - c;
+ sd[0] = dot_v3v3(n, v0) - c;
+ sd[1] = dot_v3v3(n, v1) - c;
+ sd[2] = dot_v3v3(n, v2) - c;
if (fabsf(sd[0]) < epsilon) sd[0] = 0.0f;
if (fabsf(sd[1]) < epsilon) sd[1] = 0.0f;
@@ -787,21 +793,21 @@ static int occ_visible_quad(float *p, const float n[3], const float v0[3], const
if (sd[0] > 0) {
if (sd[1] > 0) {
if (sd[2] > 0) {
- // +++
+ /* +++ */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // ++-
+ /* ++- */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
- VecAddDir(q2, v1, v2, (sd[1]/(sd[1]-sd[2])));
- VecAddDir(q3, v0, v2, (sd[0]/(sd[0]-sd[2])));
+ vec_add_dir(q2, v1, v2, (sd[1] / (sd[1] - sd[2])));
+ vec_add_dir(q3, v0, v2, (sd[0] / (sd[0] - sd[2])));
}
else {
- // ++0
+ /* ++0 */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
@@ -810,44 +816,44 @@ static int occ_visible_quad(float *p, const float n[3], const float v0[3], const
}
else if (sd[1] < 0) {
if (sd[2] > 0) {
- // +-+
+ /* +-+ */
copy_v3_v3(q0, v0);
- VecAddDir(q1, v0, v1, (sd[0]/(sd[0]-sd[1])));
- VecAddDir(q2, v1, v2, (sd[1]/(sd[1]-sd[2])));
+ vec_add_dir(q1, v0, v1, (sd[0] / (sd[0] - sd[1])));
+ vec_add_dir(q2, v1, v2, (sd[1] / (sd[1] - sd[2])));
copy_v3_v3(q3, v2);
}
else if (sd[2] < 0) {
- // +--
+ /* +-- */
copy_v3_v3(q0, v0);
- VecAddDir(q1, v0, v1, (sd[0]/(sd[0]-sd[1])));
- VecAddDir(q2, v0, v2, (sd[0]/(sd[0]-sd[2])));
+ vec_add_dir(q1, v0, v1, (sd[0] / (sd[0] - sd[1])));
+ vec_add_dir(q2, v0, v2, (sd[0] / (sd[0] - sd[2])));
copy_v3_v3(q3, q2);
}
else {
- // +-0
+ /* +-0 */
copy_v3_v3(q0, v0);
- VecAddDir(q1, v0, v1, (sd[0]/(sd[0]-sd[1])));
+ vec_add_dir(q1, v0, v1, (sd[0] / (sd[0] - sd[1])));
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
}
else {
if (sd[2] > 0) {
- // +0+
+ /* +0+ */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // +0-
+ /* +0- */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
- VecAddDir(q2, v0, v2, (sd[0]/(sd[0]-sd[2])));
+ vec_add_dir(q2, v0, v2, (sd[0] / (sd[0] - sd[2])));
copy_v3_v3(q3, q2);
}
else {
- // +00
+ /* +00 */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
@@ -858,22 +864,22 @@ static int occ_visible_quad(float *p, const float n[3], const float v0[3], const
else if (sd[0] < 0) {
if (sd[1] > 0) {
if (sd[2] > 0) {
- // -++
- VecAddDir(q0, v0, v1, (sd[0]/(sd[0]-sd[1])));
+ /* -++ */
+ vec_add_dir(q0, v0, v1, (sd[0] / (sd[0] - sd[1])));
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
- VecAddDir(q3, v0, v2, (sd[0]/(sd[0]-sd[2])));
+ vec_add_dir(q3, v0, v2, (sd[0] / (sd[0] - sd[2])));
}
else if (sd[2] < 0) {
- // -+-
- VecAddDir(q0, v0, v1, (sd[0]/(sd[0]-sd[1])));
+ /* -+- */
+ vec_add_dir(q0, v0, v1, (sd[0] / (sd[0] - sd[1])));
copy_v3_v3(q1, v1);
- VecAddDir(q2, v1, v2, (sd[1]/(sd[1]-sd[2])));
+ vec_add_dir(q2, v1, v2, (sd[1] / (sd[1] - sd[2])));
copy_v3_v3(q3, q2);
}
else {
- // -+0
- VecAddDir(q0, v0, v1, (sd[0]/(sd[0]-sd[1])));
+ /* -+0 */
+ vec_add_dir(q0, v0, v1, (sd[0] / (sd[0] - sd[1])));
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
@@ -881,35 +887,35 @@ static int occ_visible_quad(float *p, const float n[3], const float v0[3], const
}
else if (sd[1] < 0) {
if (sd[2] > 0) {
- // --+
- VecAddDir(q0, v0, v2, (sd[0]/(sd[0]-sd[2])));
- VecAddDir(q1, v1, v2, (sd[1]/(sd[1]-sd[2])));
+ /* --+ */
+ vec_add_dir(q0, v0, v2, (sd[0] / (sd[0] - sd[2])));
+ vec_add_dir(q1, v1, v2, (sd[1] / (sd[1] - sd[2])));
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // ---
+ /* --- */
return 0;
}
else {
- // --0
+ /* --0 */
return 0;
}
}
else {
if (sd[2] > 0) {
- // -0+
- VecAddDir(q0, v0, v2, (sd[0]/(sd[0]-sd[2])));
+ /* -0+ */
+ vec_add_dir(q0, v0, v2, (sd[0] / (sd[0] - sd[2])));
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // -0-
+ /* -0- */
return 0;
}
else {
- // -00
+ /* -00 */
return 0;
}
}
@@ -917,21 +923,21 @@ static int occ_visible_quad(float *p, const float n[3], const float v0[3], const
else {
if (sd[1] > 0) {
if (sd[2] > 0) {
- // 0++
+ /* 0++ */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // 0+-
+ /* 0+- */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
- VecAddDir(q2, v1, v2, (sd[1]/(sd[1]-sd[2])));
+ vec_add_dir(q2, v1, v2, (sd[1] / (sd[1] - sd[2])));
copy_v3_v3(q3, q2);
}
else {
- // 0+0
+ /* 0+0 */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
@@ -940,35 +946,35 @@ static int occ_visible_quad(float *p, const float n[3], const float v0[3], const
}
else if (sd[1] < 0) {
if (sd[2] > 0) {
- // 0-+
+ /* 0-+ */
copy_v3_v3(q0, v0);
- VecAddDir(q1, v1, v2, (sd[1]/(sd[1]-sd[2])));
+ vec_add_dir(q1, v1, v2, (sd[1] / (sd[1] - sd[2])));
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // 0--
+ /* 0-- */
return 0;
}
else {
- // 0-0
+ /* 0-0 */
return 0;
}
}
else {
if (sd[2] > 0) {
- // 00+
+ /* 00+ */
copy_v3_v3(q0, v0);
copy_v3_v3(q1, v1);
copy_v3_v3(q2, v2);
copy_v3_v3(q3, q2);
}
else if (sd[2] < 0) {
- // 00-
+ /* 00- */
return 0;
}
else {
- // 000
+ /* 000 */
return 0;
}
}
@@ -995,49 +1001,49 @@ static vFloat vec_splat_float(float val)
static float occ_quad_form_factor(float *p, float *n, float *q0, float *q1, float *q2, float *q3)
{
vFloat vcos, rlen, vrx, vry, vrz, vsrx, vsry, vsrz, gx, gy, gz, vangle;
- vUInt8 rotate = (vUInt8) {4,5,6,7,8,9,10,11,12,13,14,15,0,1,2,3};
+ vUInt8 rotate = (vUInt8) {4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3};
vFloatResult vresult;
float result;
/* compute r* */
- vrx = (vFloat) {q0[0], q1[0], q2[0], q3[0]} - vec_splat_float(p[0]);
- vry = (vFloat) {q0[1], q1[1], q2[1], q3[1]} - vec_splat_float(p[1]);
- vrz = (vFloat) {q0[2], q1[2], q2[2], q3[2]} - vec_splat_float(p[2]);
+ vrx = (vFloat) {q0[0], q1[0], q2[0], q3[0]} -vec_splat_float(p[0]);
+ vry = (vFloat) {q0[1], q1[1], q2[1], q3[1]} -vec_splat_float(p[1]);
+ vrz = (vFloat) {q0[2], q1[2], q2[2], q3[2]} -vec_splat_float(p[2]);
/* normalize r* */
- rlen = vec_rsqrte(vrx*vrx + vry*vry + vrz*vrz + vec_splat_float(1e-16f));
- vrx = vrx*rlen;
- vry = vry*rlen;
- vrz = vrz*rlen;
+ rlen = vec_rsqrte(vrx * vrx + vry * vry + vrz * vrz + vec_splat_float(1e-16f));
+ vrx = vrx * rlen;
+ vry = vry * rlen;
+ vrz = vrz * rlen;
/* rotate r* for cross and dot */
- vsrx= vec_perm(vrx, vrx, rotate);
- vsry= vec_perm(vry, vry, rotate);
- vsrz= vec_perm(vrz, vrz, rotate);
+ vsrx = vec_perm(vrx, vrx, rotate);
+ vsry = vec_perm(vry, vry, rotate);
+ vsrz = vec_perm(vrz, vrz, rotate);
/* cross product */
- gx = vsry*vrz - vsrz*vry;
- gy = vsrz*vrx - vsrx*vrz;
- gz = vsrx*vry - vsry*vrx;
+ gx = vsry * vrz - vsrz * vry;
+ gy = vsrz * vrx - vsrx * vrz;
+ gz = vsrx * vry - vsry * vrx;
/* normalize */
- rlen = vec_rsqrte(gx*gx + gy*gy + gz*gz + vec_splat_float(1e-16f));
- gx = gx*rlen;
- gy = gy*rlen;
- gz = gz*rlen;
+ rlen = vec_rsqrte(gx * gx + gy * gy + gz * gz + vec_splat_float(1e-16f));
+ gx = gx * rlen;
+ gy = gy * rlen;
+ gz = gz * rlen;
/* angle */
- vcos = vrx*vsrx + vry*vsry + vrz*vsrz;
- vcos= vec_max(vec_min(vcos, vec_splat_float(1.0f)), vec_splat_float(-1.0f));
- vangle= vacosf(vcos);
+ vcos = vrx * vsrx + vry * vsry + vrz * vsrz;
+ vcos = vec_max(vec_min(vcos, vec_splat_float(1.0f)), vec_splat_float(-1.0f));
+ vangle = vacosf(vcos);
/* dot */
- vresult.v = (vec_splat_float(n[0])*gx +
- vec_splat_float(n[1])*gy +
- vec_splat_float(n[2])*gz)*vangle;
+ vresult.v = (vec_splat_float(n[0]) * gx +
+ vec_splat_float(n[1]) * gy +
+ vec_splat_float(n[2]) * gz) * vangle;
- result= (vresult.f[0] + vresult.f[1] + vresult.f[2] + vresult.f[3])*(0.5f/(float)M_PI);
- result= MAX2(result, 0.0f);
+ result = (vresult.f[0] + vresult.f[1] + vresult.f[2] + vresult.f[3]) * (0.5f / (float)M_PI);
+ result = MAX2(result, 0.0f);
return result;
}
@@ -1076,36 +1082,36 @@ static float occ_quad_form_factor(float *p, float *n, float *q0, float *q1, floa
rz = qz - _mm_set_ps1(p[2]);
/* normalize r */
- rlen = _mm_rsqrt_ps(rx*rx + ry*ry + rz*rz + _mm_set_ps1(1e-16f));
- rx = rx*rlen;
- ry = ry*rlen;
- rz = rz*rlen;
+ rlen = _mm_rsqrt_ps(rx * rx + ry * ry + rz * rz + _mm_set_ps1(1e-16f));
+ rx = rx * rlen;
+ ry = ry * rlen;
+ rz = rz * rlen;
/* cross product */
- srx = _mm_shuffle_ps(rx, rx, _MM_SHUFFLE(0,3,2,1));
- sry = _mm_shuffle_ps(ry, ry, _MM_SHUFFLE(0,3,2,1));
- srz = _mm_shuffle_ps(rz, rz, _MM_SHUFFLE(0,3,2,1));
+ srx = _mm_shuffle_ps(rx, rx, _MM_SHUFFLE(0, 3, 2, 1));
+ sry = _mm_shuffle_ps(ry, ry, _MM_SHUFFLE(0, 3, 2, 1));
+ srz = _mm_shuffle_ps(rz, rz, _MM_SHUFFLE(0, 3, 2, 1));
- gx = sry*rz - srz*ry;
- gy = srz*rx - srx*rz;
- gz = srx*ry - sry*rx;
+ gx = sry * rz - srz * ry;
+ gy = srz * rx - srx * rz;
+ gz = srx * ry - sry * rx;
/* normalize g */
- glen = _mm_rsqrt_ps(gx*gx + gy*gy + gz*gz + _mm_set_ps1(1e-16f));
- gx = gx*glen;
- gy = gy*glen;
- gz = gz*glen;
+ glen = _mm_rsqrt_ps(gx * gx + gy * gy + gz * gz + _mm_set_ps1(1e-16f));
+ gx = gx * glen;
+ gy = gy * glen;
+ gz = gz * glen;
/* compute angle */
- rcos = rx*srx + ry*sry + rz*srz;
- rcos= _mm_max_ps(_mm_min_ps(rcos, _mm_set_ps1(1.0f)), _mm_set_ps1(-1.0f));
+ rcos = rx * srx + ry * sry + rz * srz;
+ rcos = _mm_max_ps(_mm_min_ps(rcos, _mm_set_ps1(1.0f)), _mm_set_ps1(-1.0f));
angle = sse_approx_cos(rcos);
- aresult = (_mm_set_ps1(n[0])*gx + _mm_set_ps1(n[1])*gy + _mm_set_ps1(n[2])*gz)*angle;
+ aresult = (_mm_set_ps1(n[0]) * gx + _mm_set_ps1(n[1]) * gy + _mm_set_ps1(n[2]) * gz) * angle;
/* sum together */
- result= (fresult[0] + fresult[1] + fresult[2] + fresult[3])*(0.5f/(float)M_PI);
- result= MAX2(result, 0.0f);
+ result = (fresult[0] + fresult[1] + fresult[2] + fresult[3]) * (0.5f / (float)M_PI);
+ result = MAX2(result, 0.0f);
return result;
}
@@ -1116,10 +1122,10 @@ static void normalizef(float *n)
{
float d;
- d= dot_v3v3(n, n);
+ d = dot_v3v3(n, n);
if (d > 1.0e-35F) {
- d= 1.0f/sqrtf(d);
+ d = 1.0f / sqrtf(d);
n[0] *= d;
n[1] *= d;
@@ -1127,6 +1133,8 @@ static void normalizef(float *n)
}
}
+/* TODO: exact duplicate of ff_quad_form_factor() in math_geom.c
+ * why not de-duplicate? (also above helper func) */
static float occ_quad_form_factor(const float p[3], const float n[3], const float q0[3], const float q1[3], const float q2[3], const float q3[3])
{
float r0[3], r1[3], r2[3], r3[3], g0[3], g1[3], g2[3], g3[3];
@@ -1147,18 +1155,18 @@ static float occ_quad_form_factor(const float p[3], const float n[3], const floa
cross_v3_v3v3(g2, r3, r2); normalizef(g2);
cross_v3_v3v3(g3, r0, r3); normalizef(g3);
- a1= saacosf(dot_v3v3(r0, r1));
- a2= saacosf(dot_v3v3(r1, r2));
- a3= saacosf(dot_v3v3(r2, r3));
- a4= saacosf(dot_v3v3(r3, r0));
+ a1 = saacosf(dot_v3v3(r0, r1));
+ a2 = saacosf(dot_v3v3(r1, r2));
+ a3 = saacosf(dot_v3v3(r2, r3));
+ a4 = saacosf(dot_v3v3(r3, r0));
- dot1= dot_v3v3(n, g0);
- dot2= dot_v3v3(n, g1);
- dot3= dot_v3v3(n, g2);
- dot4= dot_v3v3(n, g3);
+ dot1 = dot_v3v3(n, g0);
+ dot2 = dot_v3v3(n, g1);
+ dot3 = dot_v3v3(n, g2);
+ dot4 = dot_v3v3(n, g3);
- result= (a1*dot1 + a2*dot2 + a3*dot3 + a4*dot4)*0.5f/(float)M_PI;
- result= MAX2(result, 0.0f);
+ result = (a1 * dot1 + a2 * dot2 + a3 * dot3 + a4 * dot4) * 0.5f / (float)M_PI;
+ result = MAX2(result, 0.0f);
return result;
}
@@ -1167,10 +1175,10 @@ static float occ_form_factor(OccFace *face, float *p, float *n)
{
ObjectInstanceRen *obi;
VlakRen *vlr;
- float v1[3], v2[3], v3[3], v4[3], q0[3], q1[3], q2[3], q3[3], contrib= 0.0f;
+ float v1[3], v2[3], v3[3], v4[3], q0[3], q1[3], q2[3], q3[3], contrib = 0.0f;
- obi= &R.objectinstance[face->obi];
- vlr= RE_findOrAddVlak(obi->obr, face->facenr);
+ obi = &R.objectinstance[face->obi];
+ vlr = RE_findOrAddVlak(obi->obr, face->facenr);
copy_v3_v3(v1, vlr->v1->co);
copy_v3_v3(v2, vlr->v2->co);
@@ -1214,103 +1222,103 @@ static void occ_lookup(OcclusionTree *tree, int thread, OccFace *exclude,
if (bentn)
copy_v3_v3(bentn, n);
- error= tree->error;
- distfac= tree->distfac;
+ error = tree->error;
+ distfac = tree->distfac;
- resultocc= 0.0f;
+ resultocc = 0.0f;
zero_v3(resultrad);
/* init stack */
- stack= tree->stack[thread];
- stack[0]= tree->root;
- totstack= 1;
+ stack = tree->stack[thread];
+ stack[0] = tree->root;
+ totstack = 1;
while (totstack) {
/* pop point off the stack */
- node= stack[--totstack];
+ node = stack[--totstack];
sub_v3_v3v3(v, node->co, p);
- d2= dot_v3v3(v, v) + 1e-16f;
- emitarea= MAX2(node->area, node->dco);
+ d2 = dot_v3v3(v, v) + 1e-16f;
+ emitarea = MAX2(node->area, node->dco);
- if (d2*error > emitarea) {
+ if (d2 * error > emitarea) {
if (distfac != 0.0f) {
- fac= 1.0f/(1.0f + distfac*d2);
+ fac = 1.0f / (1.0f + distfac * d2);
if (fac < 0.01f)
continue;
}
else
- fac= 1.0f;
+ fac = 1.0f;
/* accumulate occlusion from spherical harmonics */
- invd2 = 1.0f/sqrtf(d2);
- weight= occ_solid_angle(node, v, d2, invd2, n);
+ invd2 = 1.0f / sqrtf(d2);
+ weight = occ_solid_angle(node, v, d2, invd2, n);
if (rad)
- madd_v3_v3fl(resultrad, node->rad, weight*fac);
+ madd_v3_v3fl(resultrad, node->rad, weight * fac);
weight *= node->occlusion;
if (bentn) {
- bentn[0] -= weight*invd2*v[0];
- bentn[1] -= weight*invd2*v[1];
- bentn[2] -= weight*invd2*v[2];
+ bentn[0] -= weight * invd2 * v[0];
+ bentn[1] -= weight * invd2 * v[1];
+ bentn[2] -= weight * invd2 * v[2];
}
- resultocc += weight*fac;
+ resultocc += weight * fac;
}
else {
/* traverse into children */
- for (b=0; b<TOTCHILD; b++) {
- if (node->childflag & (1<<b)) {
- f= node->child[b].face;
- face= &tree->face[f];
+ for (b = 0; b < TOTCHILD; b++) {
+ if (node->childflag & (1 << b)) {
+ f = node->child[b].face;
+ face = &tree->face[f];
/* accumulate occlusion with face form factor */
if (!exclude || !(face->obi == exclude->obi && face->facenr == exclude->facenr)) {
if (bentn || distfac != 0.0f) {
occ_face(face, co, NULL, NULL);
sub_v3_v3v3(v, co, p);
- d2= dot_v3v3(v, v) + 1e-16f;
+ d2 = dot_v3v3(v, v) + 1e-16f;
- fac= (distfac == 0.0f)? 1.0f: 1.0f/(1.0f + distfac*d2);
+ fac = (distfac == 0.0f) ? 1.0f : 1.0f / (1.0f + distfac * d2);
if (fac < 0.01f)
continue;
}
else
- fac= 1.0f;
+ fac = 1.0f;
- weight= occ_form_factor(face, p, n);
+ weight = occ_form_factor(face, p, n);
if (rad)
- madd_v3_v3fl(resultrad, tree->rad[f], weight*fac);
+ madd_v3_v3fl(resultrad, tree->rad[f], weight * fac);
weight *= tree->occlusion[f];
if (bentn) {
- invd2= 1.0f/sqrtf(d2);
- bentn[0] -= weight*invd2*v[0];
- bentn[1] -= weight*invd2*v[1];
- bentn[2] -= weight*invd2*v[2];
+ invd2 = 1.0f / sqrtf(d2);
+ bentn[0] -= weight * invd2 * v[0];
+ bentn[1] -= weight * invd2 * v[1];
+ bentn[2] -= weight * invd2 * v[2];
}
- resultocc += weight*fac;
+ resultocc += weight * fac;
}
}
else if (node->child[b].node) {
/* push child on the stack */
- stack[totstack++]= node->child[b].node;
+ stack[totstack++] = node->child[b].node;
}
}
}
}
- if (occ) *occ= resultocc;
+ if (occ) *occ = resultocc;
if (rad) copy_v3_v3(rad, resultrad);
#if 0
if (rad && exclude) {
int a;
- for (a=0; a<tree->totface; a++)
+ for (a = 0; a < tree->totface; a++)
if ((tree->face[a].obi == exclude->obi && tree->face[a].facenr == exclude->facenr))
copy_v3_v3(rad, tree->rad[a]);
}
@@ -1323,18 +1331,18 @@ static void occ_compute_bounces(Render *re, OcclusionTree *tree, int totbounce)
float (*rad)[3], (*sum)[3], (*tmp)[3], co[3], n[3], occ;
int bounce, i;
- rad= MEM_callocN(sizeof(float)*3*tree->totface, "OcclusionBounceRad");
- sum= MEM_dupallocN(tree->rad);
+ rad = MEM_callocN(sizeof(float) * 3 * tree->totface, "OcclusionBounceRad");
+ sum = MEM_dupallocN(tree->rad);
- for (bounce=1; bounce<totbounce; bounce++) {
- for (i=0; i<tree->totface; i++) {
+ for (bounce = 1; bounce < totbounce; bounce++) {
+ for (i = 0; i < tree->totface; i++) {
occ_face(&tree->face[i], co, n, NULL);
madd_v3_v3fl(co, n, 1e-8f);
occ_lookup(tree, 0, &tree->face[i], co, n, &occ, rad[i], NULL);
- rad[i][0]= MAX2(rad[i][0], 0.0f);
- rad[i][1]= MAX2(rad[i][1], 0.0f);
- rad[i][2]= MAX2(rad[i][2], 0.0f);
+ rad[i][0] = MAX2(rad[i][0], 0.0f);
+ rad[i][1] = MAX2(rad[i][1], 0.0f);
+ rad[i][2] = MAX2(rad[i][2], 0.0f);
add_v3_v3(sum[i], rad[i]);
if (re->test_break(re->tbh))
@@ -1344,16 +1352,16 @@ static void occ_compute_bounces(Render *re, OcclusionTree *tree, int totbounce)
if (re->test_break(re->tbh))
break;
- tmp= tree->rad;
- tree->rad= rad;
- rad= tmp;
+ tmp = tree->rad;
+ tree->rad = rad;
+ rad = tmp;
occ_sum_occlusion(tree, tree->root);
}
MEM_freeN(rad);
MEM_freeN(tree->rad);
- tree->rad= sum;
+ tree->rad = sum;
if (!re->test_break(re->tbh))
occ_sum_occlusion(tree, tree->root);
@@ -1364,10 +1372,10 @@ static void occ_compute_passes(Render *re, OcclusionTree *tree, int totpass)
float *occ, co[3], n[3];
int pass, i;
- occ= MEM_callocN(sizeof(float)*tree->totface, "OcclusionPassOcc");
+ occ = MEM_callocN(sizeof(float) * tree->totface, "OcclusionPassOcc");
- for (pass=0; pass<totpass; pass++) {
- for (i=0; i<tree->totface; i++) {
+ for (pass = 0; pass < totpass; pass++) {
+ for (i = 0; i < tree->totface; i++) {
occ_face(&tree->face[i], co, n, NULL);
negate_v3(n);
madd_v3_v3fl(co, n, 1e-8f);
@@ -1380,10 +1388,10 @@ static void occ_compute_passes(Render *re, OcclusionTree *tree, int totpass)
if (re->test_break(re->tbh))
break;
- for (i=0; i<tree->totface; i++) {
+ for (i = 0; i < tree->totface; i++) {
tree->occlusion[i] -= occ[i]; //MAX2(1.0f-occ[i], 0.0f);
if (tree->occlusion[i] < 0.0f)
- tree->occlusion[i]= 0.0f;
+ tree->occlusion[i] = 0.0f;
}
occ_sum_occlusion(tree, tree->root);
@@ -1399,25 +1407,25 @@ static void sample_occ_tree(Render *re, OcclusionTree *tree, OccFace *exclude,
float nn[3], bn[3], fac, occ, occlusion, correction, rad[3];
int envcolor;
- envcolor= re->wrld.aocolor;
+ envcolor = re->wrld.aocolor;
if (onlyshadow)
- envcolor= WO_AOPLAIN;
+ envcolor = WO_AOPLAIN;
negate_v3_v3(nn, n);
- occ_lookup(tree, thread, exclude, co, nn, &occ, (tree->doindirect)? rad: NULL, (env && envcolor)? bn: NULL);
+ occ_lookup(tree, thread, exclude, co, nn, &occ, (tree->doindirect) ? rad : NULL, (env && envcolor) ? bn : NULL);
- correction= re->wrld.ao_approx_correction;
+ correction = re->wrld.ao_approx_correction;
- occlusion= (1.0f-correction)*(1.0f-occ);
+ occlusion = (1.0f - correction) * (1.0f - occ);
CLAMP(occlusion, 0.0f, 1.0f);
if (correction != 0.0f)
- occlusion += correction*expf(-occ);
+ occlusion += correction * expf(-occ);
if (env) {
/* sky shading using bent normal */
if (ELEM(envcolor, WO_AOSKYCOL, WO_AOSKYTEX)) {
- fac= 0.5f * (1.0f + dot_v3v3(bn, re->grvec));
+ fac = 0.5f * (1.0f + dot_v3v3(bn, re->grvec));
env[0] = (1.0f - fac) * re->wrld.horr + fac * re->wrld.zenr;
env[1] = (1.0f - fac) * re->wrld.horg + fac * re->wrld.zeng;
env[2] = (1.0f - fac) * re->wrld.horb + fac * re->wrld.zenb;
@@ -1425,28 +1433,28 @@ static void sample_occ_tree(Render *re, OcclusionTree *tree, OccFace *exclude,
mul_v3_fl(env, occlusion);
}
else {
- env[0]= occlusion;
- env[1]= occlusion;
- env[2]= occlusion;
+ env[0] = occlusion;
+ env[1] = occlusion;
+ env[2] = occlusion;
}
#if 0
- else { /* WO_AOSKYTEX */
+ else { /* WO_AOSKYTEX */
float dxyview[3];
- bn[0]= -bn[0];
- bn[1]= -bn[1];
- bn[2]= -bn[2];
- dxyview[0]= 1.0f;
- dxyview[1]= 1.0f;
- dxyview[2]= 0.0f;
+ bn[0] = -bn[0];
+ bn[1] = -bn[1];
+ bn[2] = -bn[2];
+ dxyview[0] = 1.0f;
+ dxyview[1] = 1.0f;
+ dxyview[2] = 0.0f;
shadeSkyView(ao, co, bn, dxyview);
}
#endif
}
if (ao) {
- ao[0]= occlusion;
- ao[1]= occlusion;
- ao[2]= occlusion;
+ ao[0] = occlusion;
+ ao[1] = occlusion;
+ ao[2] = occlusion;
}
if (tree->doindirect) copy_v3_v3(indirect, rad);
@@ -1468,7 +1476,7 @@ static OcclusionCacheSample *find_occ_sample(OcclusionCache *cache, int x, int y
if (x < 0 || x >= cache->w || y < 0 || y >= cache->h)
return NULL;
else
- return &cache->sample[y*cache->w + x];
+ return &cache->sample[y * cache->w + x];
}
static int sample_occ_cache(OcclusionTree *tree, float *co, float *n, int x, int y, int thread, float *ao, float *env, float *indirect)
@@ -1483,14 +1491,14 @@ static int sample_occ_cache(OcclusionTree *tree, float *co, float *n, int x, int
return 0;
/* first try to find a sample in the same pixel */
- cache= &tree->cache[thread];
+ cache = &tree->cache[thread];
if (cache->sample && cache->step) {
- sample= &cache->sample[(y-cache->y)*cache->w + (x-cache->x)];
+ sample = &cache->sample[(y - cache->y) * cache->w + (x - cache->x)];
if (sample->filled) {
sub_v3_v3v3(d, sample->co, co);
- dist2= dot_v3v3(d, d);
- if (dist2 < 0.5f*sample->dist2 && dot_v3v3(sample->n, n) > 0.98f) {
+ dist2 = dot_v3v3(d, d);
+ if (dist2 < 0.5f * sample->dist2 && dot_v3v3(sample->n, n) > 0.98f) {
copy_v3_v3(ao, sample->ao);
copy_v3_v3(env, sample->env);
copy_v3_v3(indirect, sample->indirect);
@@ -1502,18 +1510,18 @@ static int sample_occ_cache(OcclusionTree *tree, float *co, float *n, int x, int
return 0;
/* try to interpolate between 4 neighboring pixels */
- samples[0]= find_occ_sample(cache, x, y);
- samples[1]= find_occ_sample(cache, x+cache->step, y);
- samples[2]= find_occ_sample(cache, x, y+cache->step);
- samples[3]= find_occ_sample(cache, x+cache->step, y+cache->step);
+ samples[0] = find_occ_sample(cache, x, y);
+ samples[1] = find_occ_sample(cache, x + cache->step, y);
+ samples[2] = find_occ_sample(cache, x, y + cache->step);
+ samples[3] = find_occ_sample(cache, x + cache->step, y + cache->step);
- for (i=0; i<4; i++)
+ for (i = 0; i < 4; i++)
if (!samples[i] || !samples[i]->filled)
return 0;
/* require intensities not being too different */
- mino= MIN4(samples[0]->intensity, samples[1]->intensity, samples[2]->intensity, samples[3]->intensity);
- maxo= MAX4(samples[0]->intensity, samples[1]->intensity, samples[2]->intensity, samples[3]->intensity);
+ mino = MIN4(samples[0]->intensity, samples[1]->intensity, samples[2]->intensity, samples[3]->intensity);
+ maxo = MAX4(samples[0]->intensity, samples[1]->intensity, samples[2]->intensity, samples[3]->intensity);
if (maxo - mino > 0.05f)
return 0;
@@ -1522,29 +1530,29 @@ static int sample_occ_cache(OcclusionTree *tree, float *co, float *n, int x, int
zero_v3(ao);
zero_v3(env);
zero_v3(indirect);
- totw= 0.0f;
+ totw = 0.0f;
- x1= samples[0]->x;
- y1= samples[0]->y;
- x2= samples[3]->x;
- y2= samples[3]->y;
+ x1 = samples[0]->x;
+ y1 = samples[0]->y;
+ x2 = samples[3]->x;
+ y2 = samples[3]->y;
- tx= (float)(x2 - x)/(float)(x2 - x1);
- ty= (float)(y2 - y)/(float)(y2 - y1);
+ tx = (float)(x2 - x) / (float)(x2 - x1);
+ ty = (float)(y2 - y) / (float)(y2 - y1);
- wb[3]= (1.0f-tx)*(1.0f-ty);
- wb[2]= (tx)*(1.0f-ty);
- wb[1]= (1.0f-tx)*(ty);
- wb[0]= tx*ty;
+ wb[3] = (1.0f - tx) * (1.0f - ty);
+ wb[2] = (tx) * (1.0f - ty);
+ wb[1] = (1.0f - tx) * (ty);
+ wb[0] = tx * ty;
- for (i=0; i<4; i++) {
+ for (i = 0; i < 4; i++) {
sub_v3_v3v3(d, samples[i]->co, co);
//dist2= dot_v3v3(d, d);
- wz[i]= 1.0f; //(samples[i]->dist2/(1e-4f + dist2));
- wn[i]= pow(dot_v3v3(samples[i]->n, n), 32.0f);
+ wz[i] = 1.0f; //(samples[i]->dist2/(1e-4f + dist2));
+ wn[i] = pow(dot_v3v3(samples[i]->n, n), 32.0f);
- w= wb[i]*wn[i]*wz[i];
+ w = wb[i] * wn[i] * wz[i];
totw += w;
madd_v3_v3fl(ao, samples[i]->ao, w);
@@ -1553,7 +1561,7 @@ static int sample_occ_cache(OcclusionTree *tree, float *co, float *n, int x, int
}
if (totw >= 0.9f) {
- totw= 1.0f/totw;
+ totw = 1.0f / totw;
mul_v3_fl(ao, totw);
mul_v3_fl(env, totw);
mul_v3_fl(indirect, totw);
@@ -1565,18 +1573,18 @@ static int sample_occ_cache(OcclusionTree *tree, float *co, float *n, int x, int
static void sample_occ_surface(ShadeInput *shi)
{
- StrandRen *strand= shi->strand;
- StrandSurface *mesh= strand->buffer->surface;
+ StrandRen *strand = shi->strand;
+ StrandSurface *mesh = strand->buffer->surface;
int *face, *index = RE_strandren_get_face(shi->obr, strand, 0);
float w[4], *co1, *co2, *co3, *co4;
if (mesh && mesh->face && mesh->co && mesh->ao && index) {
- face= mesh->face[*index];
+ face = mesh->face[*index];
- co1= mesh->co[face[0]];
- co2= mesh->co[face[1]];
- co3= mesh->co[face[2]];
- co4= (face[3])? mesh->co[face[3]]: NULL;
+ co1 = mesh->co[face[0]];
+ co2 = mesh->co[face[1]];
+ co3 = mesh->co[face[2]];
+ co4 = (face[3]) ? mesh->co[face[3]] : NULL;
interp_weights_face_v3(w, co1, co2, co3, co4, strand->vert->co);
@@ -1600,9 +1608,9 @@ static void sample_occ_surface(ShadeInput *shi)
}
}
else {
- shi->ao[0]= 1.0f;
- shi->ao[1]= 1.0f;
- shi->ao[2]= 1.0f;
+ shi->ao[0] = 1.0f;
+ shi->ao[1] = 1.0f;
+ shi->ao[2] = 1.0f;
zero_v3(shi->env);
zero_v3(shi->indirect);
}
@@ -1612,20 +1620,20 @@ static void sample_occ_surface(ShadeInput *shi)
static void *exec_strandsurface_sample(void *data)
{
- OcclusionThread *othread= (OcclusionThread*)data;
- Render *re= othread->re;
- StrandSurface *mesh= othread->mesh;
+ OcclusionThread *othread = (OcclusionThread *)data;
+ Render *re = othread->re;
+ StrandSurface *mesh = othread->mesh;
float ao[3], env[3], indirect[3], co[3], n[3], *co1, *co2, *co3, *co4;
int a, *face;
- for (a=othread->begin; a<othread->end; a++) {
- face= mesh->face[a];
- co1= mesh->co[face[0]];
- co2= mesh->co[face[1]];
- co3= mesh->co[face[2]];
+ for (a = othread->begin; a < othread->end; a++) {
+ face = mesh->face[a];
+ co1 = mesh->co[face[0]];
+ co2 = mesh->co[face[1]];
+ co3 = mesh->co[face[2]];
if (face[3]) {
- co4= mesh->co[face[3]];
+ co4 = mesh->co[face[3]];
mid_v3_v3v3(co, co1, co3);
normal_quad_v3(n, co1, co2, co3, co4);
@@ -1655,12 +1663,12 @@ void make_occ_tree(Render *re)
int a, totface, totthread, *face, *count;
/* ugly, needed for occ_face */
- R= *re;
+ R = *re;
- re->i.infostr= "Occlusion preprocessing";
+ re->i.infostr = "Occlusion preprocessing";
re->stats_draw(re->sdh, &re->i);
- re->occlusiontree= tree= occ_tree_build(re);
+ re->occlusiontree = tree = occ_tree_build(re);
if (tree) {
if (re->wrld.ao_approx_passes > 0)
@@ -1668,26 +1676,26 @@ void make_occ_tree(Render *re)
if (tree->doindirect && (re->wrld.mode & WO_INDIRECT_LIGHT))
occ_compute_bounces(re, tree, re->wrld.ao_indirect_bounces);
- for (mesh=re->strandsurface.first; mesh; mesh=mesh->next) {
+ for (mesh = re->strandsurface.first; mesh; mesh = mesh->next) {
if (!mesh->face || !mesh->co || !mesh->ao)
continue;
- count= MEM_callocN(sizeof(int)*mesh->totvert, "OcclusionCount");
- faceao= MEM_callocN(sizeof(float)*3*mesh->totface, "StrandSurfFaceAO");
- faceenv= MEM_callocN(sizeof(float)*3*mesh->totface, "StrandSurfFaceEnv");
- faceindirect= MEM_callocN(sizeof(float)*3*mesh->totface, "StrandSurfFaceIndirect");
-
- totthread= (mesh->totface > 10000)? re->r.threads: 1;
- totface= mesh->totface/totthread;
- for (a=0; a<totthread; a++) {
- othreads[a].re= re;
- othreads[a].faceao= faceao;
- othreads[a].faceenv= faceenv;
- othreads[a].faceindirect= faceindirect;
- othreads[a].thread= a;
- othreads[a].mesh= mesh;
- othreads[a].begin= a*totface;
- othreads[a].end= (a == totthread-1)? mesh->totface: (a+1)*totface;
+ count = MEM_callocN(sizeof(int) * mesh->totvert, "OcclusionCount");
+ faceao = MEM_callocN(sizeof(float) * 3 * mesh->totface, "StrandSurfFaceAO");
+ faceenv = MEM_callocN(sizeof(float) * 3 * mesh->totface, "StrandSurfFaceEnv");
+ faceindirect = MEM_callocN(sizeof(float) * 3 * mesh->totface, "StrandSurfFaceIndirect");
+
+ totthread = (mesh->totface > 10000) ? re->r.threads : 1;
+ totface = mesh->totface / totthread;
+ for (a = 0; a < totthread; a++) {
+ othreads[a].re = re;
+ othreads[a].faceao = faceao;
+ othreads[a].faceenv = faceenv;
+ othreads[a].faceindirect = faceindirect;
+ othreads[a].thread = a;
+ othreads[a].mesh = mesh;
+ othreads[a].begin = a * totface;
+ othreads[a].end = (a == totthread - 1) ? mesh->totface : (a + 1) * totface;
}
if (totthread == 1) {
@@ -1696,14 +1704,14 @@ void make_occ_tree(Render *re)
else {
BLI_init_threads(&threads, exec_strandsurface_sample, totthread);
- for (a=0; a<totthread; a++)
+ for (a = 0; a < totthread; a++)
BLI_insert_thread(&threads, &othreads[a]);
BLI_end_threads(&threads);
}
- for (a=0; a<mesh->totface; a++) {
- face= mesh->face[a];
+ for (a = 0; a < mesh->totface; a++) {
+ face = mesh->face[a];
copy_v3_v3(ao, faceao[a]);
copy_v3_v3(env, faceenv[a]);
@@ -1730,11 +1738,11 @@ void make_occ_tree(Render *re)
}
}
- for (a=0; a<mesh->totvert; a++) {
+ for (a = 0; a < mesh->totvert; a++) {
if (count[a]) {
- mul_v3_fl(mesh->ao[a], 1.0f/count[a]);
- mul_v3_fl(mesh->env[a], 1.0f/count[a]);
- mul_v3_fl(mesh->indirect[a], 1.0f/count[a]);
+ mul_v3_fl(mesh->ao[a], 1.0f / count[a]);
+ mul_v3_fl(mesh->env[a], 1.0f / count[a]);
+ mul_v3_fl(mesh->indirect[a], 1.0f / count[a]);
}
}
@@ -1756,7 +1764,7 @@ void free_occ(Render *re)
void sample_occ(Render *re, ShadeInput *shi)
{
- OcclusionTree *tree= re->occlusiontree;
+ OcclusionTree *tree = re->occlusiontree;
OcclusionCache *cache;
OcclusionCacheSample *sample;
OccFace exclude;
@@ -1767,91 +1775,91 @@ void sample_occ(Render *re, ShadeInput *shi)
sample_occ_surface(shi);
}
/* try to get result from the cache if possible */
- else if (shi->depth!=0 || !sample_occ_cache(tree, shi->co, shi->vno, shi->xs, shi->ys, shi->thread, shi->ao, shi->env, shi->indirect)) {
+ else if (shi->depth != 0 || !sample_occ_cache(tree, shi->co, shi->vno, shi->xs, shi->ys, shi->thread, shi->ao, shi->env, shi->indirect)) {
/* no luck, let's sample the occlusion */
- exclude.obi= shi->obi - re->objectinstance;
- exclude.facenr= shi->vlr->index;
- onlyshadow= (shi->mat->mode & MA_ONLYSHADOW);
+ exclude.obi = shi->obi - re->objectinstance;
+ exclude.facenr = shi->vlr->index;
+ onlyshadow = (shi->mat->mode & MA_ONLYSHADOW);
sample_occ_tree(re, tree, &exclude, shi->co, shi->vno, shi->thread, onlyshadow, shi->ao, shi->env, shi->indirect);
/* fill result into sample, each time */
if (tree->cache) {
- cache= &tree->cache[shi->thread];
+ cache = &tree->cache[shi->thread];
if (cache->sample && cache->step) {
- sample= &cache->sample[(shi->ys-cache->y)*cache->w + (shi->xs-cache->x)];
+ sample = &cache->sample[(shi->ys - cache->y) * cache->w + (shi->xs - cache->x)];
copy_v3_v3(sample->co, shi->co);
copy_v3_v3(sample->n, shi->vno);
copy_v3_v3(sample->ao, shi->ao);
copy_v3_v3(sample->env, shi->env);
copy_v3_v3(sample->indirect, shi->indirect);
- sample->intensity= MAX3(sample->ao[0], sample->ao[1], sample->ao[2]);
- sample->intensity= MAX2(sample->intensity, MAX3(sample->env[0], sample->env[1], sample->env[2]));
- sample->intensity= MAX2(sample->intensity, MAX3(sample->indirect[0], sample->indirect[1], sample->indirect[2]));
- sample->dist2= dot_v3v3(shi->dxco, shi->dxco) + dot_v3v3(shi->dyco, shi->dyco);
- sample->filled= 1;
+ sample->intensity = MAX3(sample->ao[0], sample->ao[1], sample->ao[2]);
+ sample->intensity = MAX2(sample->intensity, MAX3(sample->env[0], sample->env[1], sample->env[2]));
+ sample->intensity = MAX2(sample->intensity, MAX3(sample->indirect[0], sample->indirect[1], sample->indirect[2]));
+ sample->dist2 = dot_v3v3(shi->dxco, shi->dxco) + dot_v3v3(shi->dyco, shi->dyco);
+ sample->filled = 1;
}
}
}
}
else {
- shi->ao[0]= 1.0f;
- shi->ao[1]= 1.0f;
- shi->ao[2]= 1.0f;
+ shi->ao[0] = 1.0f;
+ shi->ao[1] = 1.0f;
+ shi->ao[2] = 1.0f;
- shi->env[0]= 0.0f;
- shi->env[1]= 0.0f;
- shi->env[2]= 0.0f;
+ shi->env[0] = 0.0f;
+ shi->env[1] = 0.0f;
+ shi->env[2] = 0.0f;
- shi->indirect[0]= 0.0f;
- shi->indirect[1]= 0.0f;
- shi->indirect[2]= 0.0f;
+ shi->indirect[0] = 0.0f;
+ shi->indirect[1] = 0.0f;
+ shi->indirect[2] = 0.0f;
}
}
void cache_occ_samples(Render *re, RenderPart *pa, ShadeSample *ssamp)
{
- OcclusionTree *tree= re->occlusiontree;
+ OcclusionTree *tree = re->occlusiontree;
PixStr ps;
OcclusionCache *cache;
OcclusionCacheSample *sample;
OccFace exclude;
ShadeInput *shi;
- intptr_t *rd=NULL;
- int *ro=NULL, *rp=NULL, *rz=NULL, onlyshadow;
+ intptr_t *rd = NULL;
+ int *ro = NULL, *rp = NULL, *rz = NULL, onlyshadow;
int x, y, step = CACHE_STEP;
if (!tree->cache)
return;
- cache= &tree->cache[pa->thread];
- cache->w= pa->rectx;
- cache->h= pa->recty;
- cache->x= pa->disprect.xmin;
- cache->y= pa->disprect.ymin;
- cache->step= step;
- cache->sample= MEM_callocN(sizeof(OcclusionCacheSample)*cache->w*cache->h, "OcclusionCacheSample");
- sample= cache->sample;
+ cache = &tree->cache[pa->thread];
+ cache->w = pa->rectx;
+ cache->h = pa->recty;
+ cache->x = pa->disprect.xmin;
+ cache->y = pa->disprect.ymin;
+ cache->step = step;
+ cache->sample = MEM_callocN(sizeof(OcclusionCacheSample) * cache->w * cache->h, "OcclusionCacheSample");
+ sample = cache->sample;
if (re->osa) {
- rd= pa->rectdaps;
+ rd = pa->rectdaps;
}
else {
/* fake pixel struct for non-osa */
- ps.next= NULL;
- ps.mask= 0xFFFF;
+ ps.next = NULL;
+ ps.mask = 0xFFFF;
- ro= pa->recto;
- rp= pa->rectp;
- rz= pa->rectz;
+ ro = pa->recto;
+ rp = pa->rectp;
+ rz = pa->rectz;
}
/* compute a sample at every step pixels */
- for (y=pa->disprect.ymin; y<pa->disprect.ymax; y++) {
- for (x=pa->disprect.xmin; x<pa->disprect.xmax; x++, sample++, rd++, ro++, rp++, rz++) {
- if (!(((x - pa->disprect.xmin + step) % step) == 0 || x == pa->disprect.xmax-1))
+ for (y = pa->disprect.ymin; y < pa->disprect.ymax; y++) {
+ for (x = pa->disprect.xmin; x < pa->disprect.xmax; x++, sample++, rd++, ro++, rp++, rz++) {
+ if (!(((x - pa->disprect.xmin + step) % step) == 0 || x == pa->disprect.xmax - 1))
continue;
- if (!(((y - pa->disprect.ymin + step) % step) == 0 || y == pa->disprect.ymax-1))
+ if (!(((y - pa->disprect.ymin + step) % step) == 0 || y == pa->disprect.ymax - 1))
continue;
if (re->osa) {
@@ -1862,17 +1870,17 @@ void cache_occ_samples(Render *re, RenderPart *pa, ShadeSample *ssamp)
else {
if (!*rp) continue;
- ps.obi= *ro;
- ps.facenr= *rp;
- ps.z= *rz;
+ ps.obi = *ro;
+ ps.facenr = *rp;
+ ps.z = *rz;
shade_samples_fill_with_ps(ssamp, &ps, x, y);
}
- shi= ssamp->shi;
+ shi = ssamp->shi;
if (shi->vlr) {
- onlyshadow= (shi->mat->mode & MA_ONLYSHADOW);
- exclude.obi= shi->obi - re->objectinstance;
- exclude.facenr= shi->vlr->index;
+ onlyshadow = (shi->mat->mode & MA_ONLYSHADOW);
+ exclude.obi = shi->obi - re->objectinstance;
+ exclude.facenr = shi->vlr->index;
sample_occ_tree(re, tree, &exclude, shi->co, shi->vno, shi->thread, onlyshadow, shi->ao, shi->env, shi->indirect);
copy_v3_v3(sample->co, shi->co);
@@ -1880,13 +1888,13 @@ void cache_occ_samples(Render *re, RenderPart *pa, ShadeSample *ssamp)
copy_v3_v3(sample->ao, shi->ao);
copy_v3_v3(sample->env, shi->env);
copy_v3_v3(sample->indirect, shi->indirect);
- sample->intensity= MAX3(sample->ao[0], sample->ao[1], sample->ao[2]);
- sample->intensity= MAX2(sample->intensity, MAX3(sample->env[0], sample->env[1], sample->env[2]));
- sample->intensity= MAX2(sample->intensity, MAX3(sample->indirect[0], sample->indirect[1], sample->indirect[2]));
- sample->dist2= dot_v3v3(shi->dxco, shi->dxco) + dot_v3v3(shi->dyco, shi->dyco);
- sample->x= shi->xs;
- sample->y= shi->ys;
- sample->filled= 1;
+ sample->intensity = MAX3(sample->ao[0], sample->ao[1], sample->ao[2]);
+ sample->intensity = MAX2(sample->intensity, MAX3(sample->env[0], sample->env[1], sample->env[2]));
+ sample->intensity = MAX2(sample->intensity, MAX3(sample->indirect[0], sample->indirect[1], sample->indirect[2]));
+ sample->dist2 = dot_v3v3(shi->dxco, shi->dxco) + dot_v3v3(shi->dyco, shi->dyco);
+ sample->x = shi->xs;
+ sample->y = shi->ys;
+ sample->filled = 1;
}
if (re->test_break(re->tbh))
@@ -1897,18 +1905,18 @@ void cache_occ_samples(Render *re, RenderPart *pa, ShadeSample *ssamp)
void free_occ_samples(Render *re, RenderPart *pa)
{
- OcclusionTree *tree= re->occlusiontree;
+ OcclusionTree *tree = re->occlusiontree;
OcclusionCache *cache;
if (tree->cache) {
- cache= &tree->cache[pa->thread];
+ cache = &tree->cache[pa->thread];
if (cache->sample)
MEM_freeN(cache->sample);
- cache->w= 0;
- cache->h= 0;
- cache->step= 0;
+ cache->w = 0;
+ cache->h = 0;
+ cache->step = 0;
}
}
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 3de64996311..1859de0039d 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -55,10 +55,10 @@
#include "BKE_report.h"
#include "BKE_scene.h"
#include "BKE_sequencer.h"
-#include "BKE_utildefines.h"
#include "BKE_writeavi.h" /* <------ should be replaced once with generic movie module */
#include "BLI_math.h"
+#include "BLI_rect.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
#include "BLI_path_util.h"
@@ -67,6 +67,7 @@
#include "BLI_callbacks.h"
#include "PIL_time.h"
+#include "IMB_colormanagement.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -138,7 +139,7 @@ static void result_nothing(void *UNUSED(arg), RenderResult *UNUSED(rr)) {}
static void result_rcti_nothing(void *UNUSED(arg), RenderResult *UNUSED(rr), volatile struct rcti *UNUSED(rect)) {}
static void stats_nothing(void *UNUSED(arg), RenderStats *UNUSED(rs)) {}
static void float_nothing(void *UNUSED(arg), float UNUSED(val)) {}
-static int default_break(void *UNUSED(arg)) {return G.afbreek == 1;}
+static int default_break(void *UNUSED(arg)) { return G.is_break == TRUE; }
static void stats_background(void *UNUSED(arg), RenderStats *rs)
{
@@ -166,9 +167,9 @@ static void stats_background(void *UNUSED(arg), RenderStats *rs)
}
else {
if (rs->tothalo)
- fprintf(stdout, "Sce: %s Ve:%d Fa:%d Ha:%d La:%d", rs->scenename, rs->totvert, rs->totface, rs->tothalo, rs->totlamp);
+ fprintf(stdout, "Sce: %s Ve:%d Fa:%d Ha:%d La:%d", rs->scene_name, rs->totvert, rs->totface, rs->tothalo, rs->totlamp);
else
- fprintf(stdout, "Sce: %s Ve:%d Fa:%d La:%d", rs->scenename, rs->totvert, rs->totface, rs->totlamp);
+ fprintf(stdout, "Sce: %s Ve:%d Fa:%d La:%d", rs->scene_name, rs->totvert, rs->totface, rs->totlamp);
}
BLI_callback_exec(G.main, NULL, BLI_CB_EVT_RENDER_STATS);
@@ -194,19 +195,17 @@ float *RE_RenderLayerGetPass(RenderLayer *rl, int passtype)
RenderLayer *RE_GetRenderLayer(RenderResult *rr, const char *name)
{
- RenderLayer *rl;
-
- if (rr == NULL) return NULL;
-
- for (rl = rr->layers.first; rl; rl = rl->next)
- if (strncmp(rl->name, name, RE_MAXNAME) == 0)
- return rl;
- return NULL;
+ if (rr == NULL) {
+ return NULL;
+ }
+ else {
+ return BLI_findstring(&rr->layers, name, offsetof(RenderLayer, name));
+ }
}
-RenderResult *RE_MultilayerConvert(void *exrhandle, int rectx, int recty)
+RenderResult *RE_MultilayerConvert(void *exrhandle, const char *colorspace, int predivide, int rectx, int recty)
{
- return render_result_new_from_exr(exrhandle, rectx, recty);
+ return render_result_new_from_exr(exrhandle, colorspace, predivide, rectx, recty);
}
RenderLayer *render_get_active_layer(Render *re, RenderResult *rr)
@@ -245,18 +244,6 @@ Render *RE_GetRender(const char *name)
return re;
}
-Render *RE_GetRender_FromData(const RenderData *rd)
-{
- Render *re;
-
- /* search for existing renders */
- for (re = RenderGlobal.renderlist.first; re; re = re->next)
- if (&re->r == rd)
- break;
-
- return re;
-}
-
/* if you want to know exactly what has been done */
RenderResult *RE_AcquireResultRead(Render *re)
{
@@ -347,7 +334,7 @@ void RE_ResultGet32(Render *re, unsigned int *rect)
RenderResult rres;
RE_AcquireResultImage(re, &rres);
- render_result_rect_get_pixels(&rres, &re->r, rect, re->rectx, re->recty);
+ render_result_rect_get_pixels(&rres, &re->r, rect, re->rectx, re->recty, &re->scene->view_settings, &re->scene->display_settings);
RE_ReleaseResultImage(re);
}
@@ -450,8 +437,8 @@ void RE_InitState(Render *re, Render *source, RenderData *rd, SceneRenderLayer *
re->winy = winy;
if (disprect) {
re->disprect = *disprect;
- re->rectx = disprect->xmax - disprect->xmin;
- re->recty = disprect->ymax - disprect->ymin;
+ re->rectx = BLI_rcti_size_x(disprect);
+ re->recty = BLI_rcti_size_y(disprect);
}
else {
re->disprect.xmin = re->disprect.ymin = 0;
@@ -518,7 +505,9 @@ void RE_InitState(Render *re, Render *source, RenderData *rd, SceneRenderLayer *
BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE);
if (re->r.scemode & R_PREVIEWBUTS) {
- if (re->result && re->result->rectx == re->rectx && re->result->recty == re->recty) ;
+ if (re->result && re->result->rectx == re->rectx && re->result->recty == re->recty) {
+ /* pass */
+ }
else {
render_result_free(re->result);
re->result = NULL;
@@ -652,7 +641,7 @@ static void *do_part_thread(void *pa_v)
if (!R.sss_points && (R.r.scemode & R_FULL_SAMPLE))
pa->result = render_result_new_full_sample(&R, &pa->fullresult, &pa->disprect, pa->crop, RR_USE_MEM);
else
- pa->result = render_result_new(&R, &pa->disprect, pa->crop, RR_USE_MEM);
+ pa->result = render_result_new(&R, &pa->disprect, pa->crop, RR_USE_MEM, RR_ALL_LAYERS);
if (R.sss_points)
zbufshade_sss_tile(pa);
@@ -662,13 +651,17 @@ static void *do_part_thread(void *pa_v)
zbufshade_tile(pa);
/* merge too on break! */
- if (R.result->exrhandle) {
+ if (R.result->do_exr_tile) {
render_result_exr_file_merge(R.result, pa->result);
}
else if (render_display_draw_enabled(&R)) {
/* on break, don't merge in result for preview renders, looks nicer */
- if (R.test_break(R.tbh) && (R.r.scemode & R_PREVIEWBUTS)) ;
- else render_result_merge(R.result, pa->result);
+ if (R.test_break(R.tbh) && (R.r.scemode & R_PREVIEWBUTS)) {
+ /* pass */
+ }
+ else {
+ render_result_merge(R.result, pa->result);
+ }
}
}
@@ -683,15 +676,15 @@ static void *do_part_thread(void *pa_v)
float panorama_pixel_rot(Render *re)
{
float psize, phi, xfac;
- float borderfac = (float)(re->disprect.xmax - re->disprect.xmin) / (float)re->winx;
+ float borderfac = (float)BLI_rcti_size_x(&re->disprect) / (float)re->winx;
/* size of 1 pixel mapped to viewplane coords */
- psize = (re->viewplane.xmax - re->viewplane.xmin) / (float)(re->winx);
+ psize = BLI_rctf_size_x(&re->viewplane) / (float)re->winx;
/* angle of a pixel */
phi = atan(psize / re->clipsta);
/* correction factor for viewplane shifting, first calculate how much the viewplane angle is */
- xfac = borderfac * ((re->viewplane.xmax - re->viewplane.xmin)) / (float)re->xparts;
+ xfac = borderfac * BLI_rctf_size_x(&re->viewplane) / (float)re->xparts;
xfac = atan(0.5f * xfac / re->clipsta);
/* and how much the same viewplane angle is wrapped */
psize = 0.5f * phi * ((float)re->partx);
@@ -724,7 +717,7 @@ static RenderPart *find_next_pano_slice(Render *re, int *minx, rctf *viewplane)
float phi = panorama_pixel_rot(re);
R.panodxp = (re->winx - (best->disprect.xmin + best->disprect.xmax) ) / 2;
- R.panodxv = ((viewplane->xmax - viewplane->xmin) * R.panodxp) / (float)(re->winx);
+ R.panodxv = (BLI_rctf_size_x(viewplane) * R.panodxp) / (float)(re->winx);
/* shift viewplane */
R.viewplane.xmin = viewplane->xmin + R.panodxv;
@@ -751,8 +744,8 @@ static RenderPart *find_next_part(Render *re, int minx)
/* find center of rendered parts, image center counts for 1 too */
for (pa = re->parts.first; pa; pa = pa->next) {
if (pa->ready) {
- centx += (pa->disprect.xmin + pa->disprect.xmax) / 2;
- centy += (pa->disprect.ymin + pa->disprect.ymax) / 2;
+ centx += BLI_rcti_cent_x(&pa->disprect);
+ centy += BLI_rcti_cent_y(&pa->disprect);
tot++;
}
}
@@ -762,8 +755,8 @@ static RenderPart *find_next_part(Render *re, int minx)
/* closest of the non-rendering parts */
for (pa = re->parts.first; pa; pa = pa->next) {
if (pa->ready == 0 && pa->nr == 0) {
- long long int distx = centx - (pa->disprect.xmin + pa->disprect.xmax) / 2;
- long long int disty = centy - (pa->disprect.ymin + pa->disprect.ymax) / 2;
+ long long int distx = centx - BLI_rcti_cent_x(&pa->disprect);
+ long long int disty = centy - BLI_rcti_cent_y(&pa->disprect);
distx = (long long int)sqrt(distx * distx + disty * disty);
if (distx < mindist) {
if (re->r.mode & R_PANORAMA) {
@@ -806,12 +799,12 @@ static void threaded_tile_processor(Render *re)
render_result_free(re->result);
if (re->sss_points && render_display_draw_enabled(re))
- re->result = render_result_new(re, &re->disprect, 0, RR_USE_MEM);
+ re->result = render_result_new(re, &re->disprect, 0, RR_USE_MEM, RR_ALL_LAYERS);
else if (re->r.scemode & R_FULL_SAMPLE)
re->result = render_result_new_full_sample(re, &re->fullresult, &re->disprect, 0, RR_USE_EXR);
else
re->result = render_result_new(re, &re->disprect, 0,
- (re->r.scemode & R_EXR_TILE_FILE) ? RR_USE_EXR : RR_USE_MEM);
+ (re->r.scemode & R_EXR_TILE_FILE) ? RR_USE_EXR : RR_USE_MEM, RR_ALL_LAYERS);
}
BLI_rw_mutex_unlock(&re->resultmutex);
@@ -821,9 +814,9 @@ static void threaded_tile_processor(Render *re)
/* warning; no return here without closing exr file */
- initparts(re);
+ initparts(re, TRUE);
- if (re->result->exrhandle)
+ if (re->result->do_exr_tile)
render_result_exr_file_begin(re);
BLI_init_threads(&threads, do_part_thread, re->r.threads);
@@ -903,7 +896,7 @@ static void threaded_tile_processor(Render *re)
}
- if (re->result->exrhandle) {
+ if (re->result->do_exr_tile) {
BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE);
render_result_exr_file_end(re);
BLI_rw_mutex_unlock(&re->resultmutex);
@@ -1056,7 +1049,7 @@ static void do_render_blur_3d(Render *re)
int blur = re->r.mblur_samples;
/* create accumulation render result */
- rres = render_result_new(re, &re->disprect, 0, RR_USE_MEM);
+ rres = render_result_new(re, &re->disprect, 0, RR_USE_MEM, RR_ALL_LAYERS);
/* do the blur steps */
while (blur--) {
@@ -1120,7 +1113,10 @@ static void merge_renderresult_fields(RenderResult *rr, RenderResult *rr1, Rende
/* passes are allocated in sync */
rpass1 = rl1->passes.first;
rpass2 = rl2->passes.first;
- for (rpass = rl->passes.first; rpass && rpass1 && rpass2; rpass = rpass->next, rpass1 = rpass1->next, rpass2 = rpass2->next) {
+ for (rpass = rl->passes.first;
+ rpass && rpass1 && rpass2;
+ rpass = rpass->next, rpass1 = rpass1->next, rpass2 = rpass2->next)
+ {
interleave_rect(rr, rpass->rect, rpass1->rect, rpass2->rect, rpass->channels);
}
}
@@ -1181,7 +1177,7 @@ static void do_render_fields_3d(Render *re)
re->disprect.ymax *= 2;
BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE);
- re->result = render_result_new(re, &re->disprect, 0, RR_USE_MEM);
+ re->result = render_result_new(re, &re->disprect, 0, RR_USE_MEM, RR_ALL_LAYERS);
if (rr2) {
if (re->r.mode & R_ODDFIELD)
@@ -1211,7 +1207,7 @@ static void do_render_fields_blur_3d(Render *re)
/* also check for camera here */
if (camera == NULL) {
printf("ERROR: Cannot render, no camera\n");
- G.afbreek = 1;
+ G.is_break = TRUE;
return;
}
@@ -1244,7 +1240,7 @@ static void do_render_fields_blur_3d(Render *re)
re->rectx = re->winx;
re->recty = re->winy;
- rres = render_result_new(re, &re->disprect, 0, RR_USE_MEM);
+ rres = render_result_new(re, &re->disprect, 0, RR_USE_MEM, RR_ALL_LAYERS);
render_result_merge(rres, re->result);
render_result_free(re->result);
@@ -1397,7 +1393,7 @@ static void render_composit_stats(void *UNUSED(arg), char *str)
static void do_merge_fullsample(Render *re, bNodeTree *ntree)
{
float *rectf, filt[3][3];
- int sample;
+ int x, y, sample;
/* interaction callbacks */
if (ntree) {
@@ -1418,7 +1414,7 @@ static void do_merge_fullsample(Render *re, bNodeTree *ntree)
for (sample = 0; sample < re->r.osa; sample++) {
Render *re1;
RenderResult rres;
- int x, y, mask;
+ int mask;
/* enable full sample print */
R.i.curfsa = sample + 1;
@@ -1445,7 +1441,7 @@ static void do_merge_fullsample(Render *re, bNodeTree *ntree)
ntreeCompositTagRender(re->scene);
ntreeCompositTagAnimated(ntree);
- ntreeCompositExecTree(ntree, &re->r, 1, G.background == 0);
+ ntreeCompositExecTree(ntree, &re->r, 1, G.background == 0, &re->scene->view_settings, &re->scene->display_settings);
}
/* ensure we get either composited result or the active layer */
@@ -1481,6 +1477,18 @@ static void do_merge_fullsample(Render *re, bNodeTree *ntree)
if (re->test_break(re->tbh))
break;
}
+
+ /* clamp alpha and RGB to 0..1 and 0..inf, can go outside due to filter */
+ for (y = 0; y < re->recty; y++) {
+ float *rf = rectf + 4 * y * re->rectx;
+
+ for (x = 0; x < re->rectx; x++, rf += 4) {
+ rf[0] = MAX2(rf[0], 0.0f);
+ rf[1] = MAX2(rf[1], 0.0f);
+ rf[2] = MAX2(rf[2], 0.0f);
+ CLAMP(rf[3], 0.0f, 1.0f);
+ }
+ }
/* clear interaction callbacks */
if (ntree) {
@@ -1507,7 +1515,7 @@ void RE_MergeFullSample(Render *re, Main *bmain, Scene *sce, bNodeTree *ntree)
bNode *node;
/* default start situation */
- G.afbreek = 0;
+ G.is_break = FALSE;
re->main = bmain;
re->scene = sce;
@@ -1564,7 +1572,7 @@ static void do_render_composite_fields_blur_3d(Render *re)
BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE);
render_result_free(re->result);
- re->result = render_result_new(re, &re->disprect, 0, RR_USE_MEM);
+ re->result = render_result_new(re, &re->disprect, 0, RR_USE_MEM, RR_ALL_LAYERS);
BLI_rw_mutex_unlock(&re->resultmutex);
@@ -1609,7 +1617,7 @@ static void do_render_composite_fields_blur_3d(Render *re)
if (re->r.scemode & R_FULL_SAMPLE)
do_merge_fullsample(re, ntree);
else {
- ntreeCompositExecTree(ntree, &re->r, 1, G.background == 0);
+ ntreeCompositExecTree(ntree, &re->r, 1, G.background == 0, &re->scene->view_settings, &re->scene->display_settings);
}
ntree->stats_draw = NULL;
@@ -1658,7 +1666,7 @@ int RE_seq_render_active(Scene *scene, RenderData *rd)
static void do_render_seq(Render *re)
{
static int recurs_depth = 0;
- struct ImBuf *ibuf;
+ struct ImBuf *ibuf, *out;
RenderResult *rr; /* don't assign re->result here as it might change during give_ibuf_seq */
int cfra = re->r.cfra;
SeqRenderData context;
@@ -1675,17 +1683,26 @@ static void do_render_seq(Render *re)
if ((re->r.mode & R_BORDER) && (re->r.mode & R_CROP) == 0) {
/* if border rendering is used and cropping is disabled, final buffer should
* be as large as the whole frame */
- context = seq_new_render_data(re->main, re->scene,
+ context = BKE_sequencer_new_render_data(re->main, re->scene,
re->winx, re->winy,
100);
}
else {
- context = seq_new_render_data(re->main, re->scene,
+ context = BKE_sequencer_new_render_data(re->main, re->scene,
re->result->rectx, re->result->recty,
100);
}
- ibuf = give_ibuf_seq(context, cfra, 0);
+ out = BKE_sequencer_give_ibuf(context, cfra, 0);
+
+ if (out) {
+ ibuf = IMB_dupImBuf(out);
+ IMB_freeImBuf(out);
+ BKE_sequencer_imbuf_from_sequencer_space(re->scene, ibuf);
+ }
+ else {
+ ibuf = NULL;
+ }
recurs_depth--;
@@ -1700,7 +1717,7 @@ static void do_render_seq(Render *re)
if (recurs_depth == 0) { /* with nested scenes, only free on toplevel... */
Editing *ed = re->scene->ed;
if (ed)
- free_imbuf_seq(re->scene, &ed->seqbase, TRUE, TRUE);
+ BKE_sequencer_free_imbuf(re->scene, &ed->seqbase, TRUE);
}
IMB_freeImBuf(ibuf);
}
@@ -1719,6 +1736,9 @@ static void do_render_seq(Render *re)
re->progress(re->prh, (float)(cfra - re->r.sfra) / (re->r.efra - re->r.sfra));
else
re->progress(re->prh, 1.0f);
+
+ /* would mark display buffers as invalid */
+ re->display_draw(re->ddh, re->result, NULL);
}
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
@@ -1827,8 +1847,11 @@ static int node_tree_has_composite_output(bNodeTree *ntree)
return TRUE;
}
else if (node->type == NODE_GROUP) {
- if (node_tree_has_composite_output((bNodeTree *)node->id))
- return TRUE;
+ if (node->id) {
+ if (node_tree_has_composite_output((bNodeTree *)node->id)) {
+ return TRUE;
+ }
+ }
}
}
@@ -1856,7 +1879,7 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, ReportList *r
if (scene->r.scemode & (R_EXR_TILE_FILE | R_FULL_SAMPLE)) {
char str[FILE_MAX];
- render_result_exr_file_path(scene, 0, str);
+ render_result_exr_file_path(scene, "", 0, str);
if (BLI_file_is_writable(str) == 0) {
BKE_report(reports, RPT_ERROR, "Can not save render buffers, check the temp default path");
@@ -1940,7 +1963,7 @@ static void validate_render_settings(Render *re)
if (RE_engine_is_external(re)) {
/* not supported yet */
- re->r.scemode &= ~(R_EXR_TILE_FILE | R_FULL_SAMPLE);
+ re->r.scemode &= ~(R_FULL_SAMPLE);
re->r.mode &= ~(R_FIELDS | R_MBLUR);
}
}
@@ -2043,7 +2066,7 @@ void RE_SetReports(Render *re, ReportList *reports)
void RE_BlenderFrame(Render *re, Main *bmain, Scene *scene, SceneRenderLayer *srl, Object *camera_override, unsigned int lay, int frame, const short write_still)
{
/* ugly global still... is to prevent preview events and signal subsurfs etc to make full resol */
- G.rendering = 1;
+ G.is_rendering = TRUE;
scene->r.cfra = frame;
@@ -2054,7 +2077,7 @@ void RE_BlenderFrame(Render *re, Main *bmain, Scene *scene, SceneRenderLayer *sr
do_render_all_options(re);
- if (write_still && !G.afbreek) {
+ if (write_still && !G.is_break) {
if (BKE_imtype_is_movie(scene->r.im_format.imtype)) {
/* operator checks this but in case its called from elsewhere */
printf("Error: cant write single images with a movie format!\n");
@@ -2071,10 +2094,10 @@ void RE_BlenderFrame(Render *re, Main *bmain, Scene *scene, SceneRenderLayer *sr
BLI_callback_exec(re->main, (ID *)scene, BLI_CB_EVT_RENDER_POST); /* keep after file save */
}
- BLI_callback_exec(re->main, (ID *)scene, G.afbreek ? BLI_CB_EVT_RENDER_CANCEL : BLI_CB_EVT_RENDER_COMPLETE);
+ BLI_callback_exec(re->main, (ID *)scene, G.is_break ? BLI_CB_EVT_RENDER_CANCEL : BLI_CB_EVT_RENDER_COMPLETE);
/* UGLY WARNING */
- G.rendering = 0;
+ G.is_rendering = FALSE;
}
static int do_write_image_or_movie(Render *re, Main *bmain, Scene *scene, bMovieHandle *mh, const char *name_override)
@@ -2089,19 +2112,31 @@ static int do_write_image_or_movie(Render *re, Main *bmain, Scene *scene, bMovie
/* write movie or image */
if (BKE_imtype_is_movie(scene->r.im_format.imtype)) {
int do_free = FALSE;
- unsigned int *rect32 = (unsigned int *)rres.rect32;
+ ImBuf *ibuf = render_result_rect_to_ibuf(&rres, &scene->r);
+
/* note; the way it gets 32 bits rects is weak... */
- if (rres.rect32 == NULL) {
- rect32 = MEM_mapallocN(sizeof(int) * rres.rectx * rres.recty, "temp 32 bits rect");
- RE_ResultGet32(re, rect32);
+ if (ibuf->rect == NULL) {
+ ibuf->rect = MEM_mapallocN(sizeof(int) * rres.rectx * rres.recty, "temp 32 bits rect");
+ ibuf->mall |= IB_rect;
+ RE_ResultGet32(re, ibuf->rect);
do_free = TRUE;
}
- ok = mh->append_movie(&re->r, scene->r.sfra, scene->r.cfra, (int *)rect32,
- rres.rectx, rres.recty, re->reports);
+
+ IMB_colormanagement_imbuf_for_write(ibuf, TRUE, FALSE, &scene->view_settings,
+ &scene->display_settings, &scene->r.im_format);
+
+ ok = mh->append_movie(&re->r, scene->r.sfra, scene->r.cfra, (int *) ibuf->rect,
+ ibuf->x, ibuf->y, re->reports);
if (do_free) {
- MEM_freeN(rect32);
+ MEM_freeN(ibuf->rect);
+ ibuf->rect = NULL;
+ ibuf->mall &= ~IB_rect;
}
+
+ /* imbuf knows which rects are not part of ibuf */
+ IMB_freeImBuf(ibuf);
+
printf("Append frame %d", scene->r.cfra);
}
else {
@@ -2119,6 +2154,9 @@ static int do_write_image_or_movie(Render *re, Main *bmain, Scene *scene, bMovie
else {
ImBuf *ibuf = render_result_rect_to_ibuf(&rres, &scene->r);
+ IMB_colormanagement_imbuf_for_write(ibuf, TRUE, FALSE, &scene->view_settings,
+ &scene->display_settings, &scene->r.im_format);
+
ok = BKE_imbuf_write_stamp(scene, camera, ibuf, name, &scene->r.im_format);
if (ok == 0) {
@@ -2135,6 +2173,10 @@ static int do_write_image_or_movie(Render *re, Main *bmain, Scene *scene, bMovie
name[strlen(name) - 4] = 0;
BKE_add_image_extension(name, R_IMF_IMTYPE_JPEG90);
ibuf->planes = 24;
+
+ IMB_colormanagement_imbuf_for_write(ibuf, TRUE, FALSE, &scene->view_settings,
+ &scene->display_settings, &imf);
+
BKE_imbuf_write_stamp(scene, camera, ibuf, name, &imf);
printf("\nSaved: %s", name);
}
@@ -2170,16 +2212,16 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri
/* ugly global still... is to prevent renderwin events and signal subsurfs etc to make full resol */
/* is also set by caller renderwin.c */
- G.rendering = 1;
+ G.is_rendering = TRUE;
re->flag |= R_ANIMATION;
if (BKE_imtype_is_movie(scene->r.im_format.imtype))
if (!mh->start_movie(scene, &re->r, re->rectx, re->recty, re->reports))
- G.afbreek = 1;
+ G.is_break = TRUE;
if (mh->get_next_frame) {
- while (!(G.afbreek == 1)) {
+ while (!(G.is_break == 1)) {
int nf = mh->get_next_frame(&re->r, re->reports);
if (nf >= 0 && nf >= scene->r.sfra && nf <= scene->r.efra) {
scene->r.cfra = re->r.cfra = nf;
@@ -2191,16 +2233,17 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri
if (re->test_break(re->tbh) == 0) {
if (!do_write_image_or_movie(re, bmain, scene, mh, NULL))
- G.afbreek = 1;
+ G.is_break = TRUE;
}
- if (G.afbreek == 0) {
+ if (G.is_break == FALSE) {
BLI_callback_exec(re->main, (ID *)scene, BLI_CB_EVT_RENDER_POST); /* keep after file save */
}
}
else {
- if (re->test_break(re->tbh))
- G.afbreek = 1;
+ if (re->test_break(re->tbh)) {
+ G.is_break = TRUE;
+ }
}
}
}
@@ -2256,14 +2299,14 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri
totrendered++;
if (re->test_break(re->tbh) == 0) {
- if (!G.afbreek)
+ if (!G.is_break)
if (!do_write_image_or_movie(re, bmain, scene, mh, NULL))
- G.afbreek = 1;
+ G.is_break = TRUE;
}
else
- G.afbreek = 1;
+ G.is_break = TRUE;
- if (G.afbreek == 1) {
+ if (G.is_break == TRUE) {
/* remove touched file */
if (BKE_imtype_is_movie(scene->r.im_format.imtype) == 0) {
if (scene->r.mode & R_TOUCH && BLI_exists(name) && BLI_file_size(name) == 0) {
@@ -2274,7 +2317,7 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri
break;
}
- if (G.afbreek == 0) {
+ if (G.is_break == FALSE) {
BLI_callback_exec(re->main, (ID *)scene, BLI_CB_EVT_RENDER_POST); /* keep after file save */
}
}
@@ -2291,10 +2334,10 @@ void RE_BlenderAnim(Render *re, Main *bmain, Scene *scene, Object *camera_overri
re->flag &= ~R_ANIMATION;
- BLI_callback_exec(re->main, (ID *)scene, G.afbreek ? BLI_CB_EVT_RENDER_CANCEL : BLI_CB_EVT_RENDER_COMPLETE);
+ BLI_callback_exec(re->main, (ID *)scene, G.is_break ? BLI_CB_EVT_RENDER_CANCEL : BLI_CB_EVT_RENDER_COMPLETE);
/* UGLY WARNING */
- G.rendering = 0;
+ G.is_rendering = FALSE;
}
void RE_PreviewRender(Render *re, Main *bmain, Scene *sce)
@@ -2388,7 +2431,8 @@ void RE_init_threadcount(Render *re)
* x/y offsets are only used on a partial copy when dimensions don't match */
void RE_layer_load_from_file(RenderLayer *layer, ReportList *reports, const char *filename, int x, int y)
{
- ImBuf *ibuf = IMB_loadiffname(filename, IB_rect);
+ /* OCIO_TODO: assume layer was saved in defaule color space */
+ ImBuf *ibuf = IMB_loadiffname(filename, IB_rect, NULL);
if (ibuf && (ibuf->rect || ibuf->rect_float)) {
if (ibuf->x == layer->rectx && ibuf->y == layer->recty) {
@@ -2429,7 +2473,7 @@ void RE_layer_load_from_file(RenderLayer *layer, ReportList *reports, const char
void RE_result_load_from_file(RenderResult *result, ReportList *reports, const char *filename)
{
- if (!render_result_exr_file_read_path(result, filename)) {
+ if (!render_result_exr_file_read_path(result, NULL, filename)) {
BKE_reportf(reports, RPT_ERROR, "RE_result_rect_from_file: failed to load '%s'\n", filename);
return;
}
@@ -2477,8 +2521,7 @@ int RE_WriteEnvmapResult(struct ReportList *reports, Scene *scene, EnvMap *env,
return 0;
}
- if (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
+ IMB_colormanagement_imbuf_for_write(ibuf, TRUE, FALSE, &scene->view_settings, &scene->display_settings, &imf);
/* to save, we first get absolute path */
BLI_strncpy(filepath, relpath, sizeof(filepath));
diff --git a/source/blender/render/intern/source/pixelblending.c b/source/blender/render/intern/source/pixelblending.c
index 2acf3a4bc77..74de8a1291f 100644
--- a/source/blender/render/intern/source/pixelblending.c
+++ b/source/blender/render/intern/source/pixelblending.c
@@ -233,6 +233,7 @@ void mask_array(unsigned int mask, float filt[][3])
/**
* Index ordering, scanline based:
*
+ * <pre>
* --- --- ---
* | 2,0 | 2,1 | 2,2 |
* --- --- ---
@@ -240,6 +241,7 @@ void mask_array(unsigned int mask, float filt[][3])
* --- --- ---
* | 0,0 | 0,1 | 0,2 |
* --- --- ---
+ * </pre>
*/
void add_filt_fmask_coord(float filt[][3], const float col[4], float *rowbuf, int row_w, int col_h, int x, int y)
diff --git a/source/blender/render/intern/source/pointdensity.c b/source/blender/render/intern/source/pointdensity.c
index 3c1a18316ca..a93dde7e813 100644
--- a/source/blender/render/intern/source/pointdensity.c
+++ b/source/blender/render/intern/source/pointdensity.c
@@ -379,6 +379,7 @@ static void accum_density(void *userdata, int index, float squared_dist)
}
if (pdr->density_curve && dist != 0.0f) {
+ curvemapping_initialize(pdr->density_curve);
density = curvemapping_evaluateF(pdr->density_curve, 0, density/dist)*dist;
}
@@ -480,7 +481,7 @@ int pointdensitytex(Tex *tex, float *texvec, TexResult *texres)
case TEX_PD_COLOR_PARTAGE:
if (pd->coba) {
if (do_colorband(pd->coba, age, col)) {
- texres->talpha= 1;
+ texres->talpha = TRUE;
copy_v3_v3(&texres->tr, col);
texres->tin *= col[3];
texres->ta = texres->tin;
@@ -493,7 +494,7 @@ int pointdensitytex(Tex *tex, float *texvec, TexResult *texres)
if (pd->coba) {
if (do_colorband(pd->coba, speed, col)) {
- texres->talpha= 1;
+ texres->talpha = TRUE;
copy_v3_v3(&texres->tr, col);
texres->tin *= col[3];
texres->ta = texres->tin;
@@ -502,7 +503,7 @@ int pointdensitytex(Tex *tex, float *texvec, TexResult *texres)
break;
}
case TEX_PD_COLOR_PARTVEL:
- texres->talpha= 1;
+ texres->talpha = TRUE;
mul_v3_fl(vec, pd->speed_scale);
copy_v3_v3(&texres->tr, vec);
texres->ta = texres->tin;
diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c
index f11e5d22574..aa35d73f3b5 100644
--- a/source/blender/render/intern/source/rayshade.c
+++ b/source/blender/render/intern/source/rayshade.c
@@ -99,7 +99,7 @@ static RayObject* RE_rayobject_create(Render *re, int type, int size)
RayObject * res = NULL;
if (type == R_RAYSTRUCTURE_AUTO) {
- //TODO
+ /* TODO */
//if (detect_simd())
#ifdef __SSE__
type = BLI_cpu_support_sse2()? R_RAYSTRUCTURE_SIMD_SVBVH: R_RAYSTRUCTURE_VBVH;
@@ -216,12 +216,12 @@ static int is_raytraceable(Render *re, ObjectInstanceRen *obi)
RayObject* makeraytree_object(Render *re, ObjectInstanceRen *obi)
{
- //TODO
- // out-of-memory safeproof
- // break render
- // update render stats
+ /*TODO
+ * out-of-memory safeproof
+ * break render
+ * update render stats */
ObjectRen *obr = obi->obr;
-
+
if (obr->raytree == NULL) {
RayObject *raytree;
RayFace *face = NULL;
@@ -421,8 +421,8 @@ void makeraytree(Render *re)
re->stats_draw(re->sdh, &re->i);
}
else {
- //Calculate raytree max_size
- //This is ONLY needed to kept a bogus behavior of SUN and HEMI lights
+ /* Calculate raytree max_size
+ * This is ONLY needed to kept a bogus behavior of SUN and HEMI lights */
INIT_MINMAX(min, max);
RE_rayobject_merge_bb(re->raytree, min, max);
for (i=0; i<3; i++) {
@@ -739,8 +739,8 @@ static void traceray(ShadeInput *origshi, ShadeResult *origshr, short depth, con
tracol[0]= shi.r;
tracol[1]= shi.g;
tracol[2]= shi.b;
- tracol[3]= col[3]; // we pass on and accumulate alpha
-
+ tracol[3]= col[3]; /* we pass on and accumulate alpha */
+
if ((shi.mat->mode & MA_TRANSP) && (shi.mat->mode & MA_RAYTRANSP)) {
/* don't overwrite traflag, it's value is used in mirror reflection */
int new_traflag = traflag;
@@ -883,12 +883,12 @@ static void DP_energy(float *table, float vec[2], int tot, float xsize, float ys
}
vec[0] += 0.1f*min*result[0]/(float)tot;
vec[1] += 0.1f*min*result[1]/(float)tot;
- // cyclic clamping
+ /* cyclic clamping */
vec[0]= vec[0] - xsize*floorf(vec[0]/xsize + 0.5f);
vec[1]= vec[1] - ysize*floorf(vec[1]/ysize + 0.5f);
}
-// random offset of 1 in 2
+/* random offset of 1 in 2 */
static void jitter_plane_offset(float *jitter1, float *jitter2, int tot, float sizex, float sizey, float ofsx, float ofsy)
{
float dsizex= sizex*ofsx;
@@ -974,10 +974,10 @@ static float *give_jitter_plane(LampRen *lar, int thread, int xs, int ys)
static void halton_sample(double *ht_invprimes, double *ht_nums, double *v)
{
- // incremental halton sequence generator, from:
- // "Instant Radiosity", Keller A.
+ /* incremental halton sequence generator, from:
+ * "Instant Radiosity", Keller A. */
unsigned int i;
-
+
for (i = 0; i < 2; i++) {
double r = fabs((1.0 - ht_nums[i]) - 1e-10);
@@ -1043,7 +1043,7 @@ static void QMC_initPixel(QMCSampler *qsa, int thread)
}
else { /* SAMP_TYPE_HALTON */
- /* generate a new randomised halton sequence per pixel
+ /* generate a new randomized halton sequence per pixel
* to alleviate qmc artifacts and make it reproducible
* between threads/frames */
double ht_invprimes[2], ht_nums[2];
@@ -1515,7 +1515,7 @@ void ray_trace(ShadeInput *shi, ShadeResult *shr)
if (!(shi->combinedflag & SCE_PASS_REFRACT))
sub_v3_v3v3(diff, diff, shr->refr);
- shr->alpha= MIN2(1.0f, tracol[3]);
+ shr->alpha = minf(1.0f, tracol[3]);
}
if (do_mir) {
@@ -1812,7 +1812,7 @@ static float *sphere_sampler(int type, int resol, int thread, int xs, int ys, in
float *sphere;
int a;
- // always returns table
+ /* always returns table */
sphere= threadsafe_table_sphere(0, thread, xs, ys, tot);
/* total random sampling. NOT THREADSAFE! (should be removed, is not useful) */
@@ -1827,7 +1827,7 @@ static float *sphere_sampler(int type, int resol, int thread, int xs, int ys, in
float *sphere;
float *vec1;
- // returns table if xs and ys were equal to last call, and not resetting
+ /* returns table if xs and ys were equal to last call, and not resetting */
sphere= (reset)? NULL: threadsafe_table_sphere(1, thread, xs, ys, tot);
if (sphere==NULL) {
float cosfi, sinfi, cost, sint;
@@ -1836,7 +1836,7 @@ static float *sphere_sampler(int type, int resol, int thread, int xs, int ys, in
sphere= threadsafe_table_sphere(0, thread, xs, ys, tot);
- // random rotation
+ /* random rotation */
ang= BLI_thread_frand(thread);
sinfi= sin(ang); cosfi= cos(ang);
ang= BLI_thread_frand(thread);
@@ -2056,7 +2056,7 @@ static void ray_ao_spheresamp(ShadeInput *shi, float ao[3], float env[3])
* for strand render we always require a new sampler because x/y are not set */
vec= sphere_sampler(R.wrld.aomode, resol, shi->thread, shi->xs, shi->ys, shi->strand != NULL);
- // warning: since we use full sphere now, and dotproduct is below, we do twice as much
+ /* warning: since we use full sphere now, and dotproduct is below, we do twice as much */
tot= 2*resol*resol;
if (envcolor == WO_AOSKYTEX) {
@@ -2116,7 +2116,7 @@ static void ray_ao_spheresamp(ShadeInput *shi, float ao[3], float env[3])
skyadded++;
}
}
- // samples
+ /* samples */
vec+= 3;
}
@@ -2436,7 +2436,7 @@ static void ray_shadow_jitter(ShadeInput *shi, LampRen *lar, const float lampco[
shadfac[3] /= div;
}
else {
- // sqrt makes nice umbra effect
+ /* sqrt makes nice umbra effect */
if (lar->ray_samp_type & LA_SAMP_UMBRA)
shadfac[3]= sqrt(1.0f-fac/div);
else
@@ -2501,8 +2501,8 @@ void ray_shadow(ShadeInput *shi, LampRen *lar, float shadfac[4])
isec.orig.ob = shi->obi;
isec.orig.face = shi->vlr;
- shadfac[3]= 1.0f; // 1.0=full light
-
+ shadfac[3]= 1.0f; /* 1.0=full light */
+
/* set up isec.dir */
copy_v3_v3(isec.start, shi->co);
sub_v3_v3v3(isec.dir, lampco, isec.start);
diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c
index 8e8483839b1..0bac26e7e3c 100644
--- a/source/blender/render/intern/source/render_result.c
+++ b/source/blender/render/intern/source/render_result.c
@@ -30,6 +30,7 @@
*/
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include "MEM_guardedalloc.h"
@@ -38,17 +39,18 @@
#include "BKE_global.h"
#include "BKE_main.h"
#include "BKE_report.h"
-#include "BKE_utildefines.h"
#include "BLI_fileops.h"
#include "BLI_listbase.h"
#include "BLI_path_util.h"
+#include "BLI_rect.h"
#include "BLI_string.h"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
+#include "IMB_colormanagement.h"
#include "intern/openexr/openexr_multi.h"
@@ -384,10 +386,10 @@ static void render_layer_add_pass(RenderResult *rr, RenderLayer *rl, int channel
rpass->recty = rl->recty;
BLI_strncpy(rpass->name, get_pass_name(rpass->passtype, -1), sizeof(rpass->name));
- if (rr->exrhandle) {
+ if (rl->exrhandle) {
int a;
for (a = 0; a < channels; a++)
- IMB_exr_add_channel(rr->exrhandle, rl->name, get_pass_name(passtype, a), 0, 0, NULL);
+ IMB_exr_add_channel(rl->exrhandle, rl->name, get_pass_name(passtype, a), 0, 0, NULL);
}
else {
float *rect;
@@ -413,15 +415,15 @@ static void render_layer_add_pass(RenderResult *rr, RenderLayer *rl, int channel
/* will read info from Render *re to define layers */
/* called in threads */
/* re->winx,winy is coordinate space of entire image, partrct the part within */
-RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuffers)
+RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuffers, const char *layername)
{
RenderResult *rr;
RenderLayer *rl;
SceneRenderLayer *srl;
int rectx, recty, nr;
- rectx = partrct->xmax - partrct->xmin;
- recty = partrct->ymax - partrct->ymin;
+ rectx = BLI_rcti_size_x(partrct);
+ recty = BLI_rcti_size_y(partrct);
if (rectx <= 0 || recty <= 0)
return NULL;
@@ -435,17 +437,21 @@ RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuf
/* tilerect is relative coordinates within render disprect. do not subtract crop yet */
rr->tilerect.xmin = partrct->xmin - re->disprect.xmin;
- rr->tilerect.xmax = partrct->xmax - re->disprect.xmax;
+ rr->tilerect.xmax = partrct->xmax - re->disprect.xmin;
rr->tilerect.ymin = partrct->ymin - re->disprect.ymin;
- rr->tilerect.ymax = partrct->ymax - re->disprect.ymax;
+ rr->tilerect.ymax = partrct->ymax - re->disprect.ymin;
if (savebuffers) {
- rr->exrhandle = IMB_exr_get_handle();
+ rr->do_exr_tile = TRUE;
}
-
+
/* check renderdata for amount of layers */
for (nr = 0, srl = re->r.layers.first; srl; srl = srl->next, nr++) {
-
+
+ if (layername && layername[0])
+ if (strcmp(srl->name, layername) != 0)
+ continue;
+
if ((re->r.scemode & R_SINGLE_LAYER) && nr != re->r.actlay)
continue;
if (srl->layflag & SCE_LAY_DISABLE)
@@ -459,18 +465,20 @@ RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuf
rl->lay_zmask = srl->lay_zmask;
rl->lay_exclude = srl->lay_exclude;
rl->layflag = srl->layflag;
- rl->passflag = srl->passflag; // for debugging: srl->passflag|SCE_PASS_RAYHITS;
+ rl->passflag = srl->passflag; /* for debugging: srl->passflag | SCE_PASS_RAYHITS; */
rl->pass_xor = srl->pass_xor;
rl->light_override = srl->light_override;
rl->mat_override = srl->mat_override;
rl->rectx = rectx;
rl->recty = recty;
- if (rr->exrhandle) {
- IMB_exr_add_channel(rr->exrhandle, rl->name, "Combined.R", 0, 0, NULL);
- IMB_exr_add_channel(rr->exrhandle, rl->name, "Combined.G", 0, 0, NULL);
- IMB_exr_add_channel(rr->exrhandle, rl->name, "Combined.B", 0, 0, NULL);
- IMB_exr_add_channel(rr->exrhandle, rl->name, "Combined.A", 0, 0, NULL);
+ if (rr->do_exr_tile) {
+ rl->exrhandle = IMB_exr_get_handle();
+
+ IMB_exr_add_channel(rl->exrhandle, rl->name, "Combined.R", 0, 0, NULL);
+ IMB_exr_add_channel(rl->exrhandle, rl->name, "Combined.G", 0, 0, NULL);
+ IMB_exr_add_channel(rl->exrhandle, rl->name, "Combined.B", 0, 0, NULL);
+ IMB_exr_add_channel(rl->exrhandle, rl->name, "Combined.A", 0, 0, NULL);
}
else
rl->rectf = MEM_mapallocN(rectx * recty * sizeof(float) * 4, "Combined rgba");
@@ -532,7 +540,7 @@ RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuf
}
/* sss, previewrender and envmap don't do layers, so we make a default one */
- if (rr->layers.first == NULL) {
+ if (rr->layers.first == NULL && !(layername && layername[0])) {
rl = MEM_callocN(sizeof(RenderLayer), "new render layer");
BLI_addtail(&rr->layers, rl);
@@ -540,14 +548,17 @@ RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuf
rl->recty = recty;
/* duplicate code... */
- if (rr->exrhandle) {
- IMB_exr_add_channel(rr->exrhandle, rl->name, "Combined.R", 0, 0, NULL);
- IMB_exr_add_channel(rr->exrhandle, rl->name, "Combined.G", 0, 0, NULL);
- IMB_exr_add_channel(rr->exrhandle, rl->name, "Combined.B", 0, 0, NULL);
- IMB_exr_add_channel(rr->exrhandle, rl->name, "Combined.A", 0, 0, NULL);
+ if (rr->do_exr_tile) {
+ rl->exrhandle = IMB_exr_get_handle();
+
+ IMB_exr_add_channel(rl->exrhandle, rl->name, "Combined.R", 0, 0, NULL);
+ IMB_exr_add_channel(rl->exrhandle, rl->name, "Combined.G", 0, 0, NULL);
+ IMB_exr_add_channel(rl->exrhandle, rl->name, "Combined.B", 0, 0, NULL);
+ IMB_exr_add_channel(rl->exrhandle, rl->name, "Combined.A", 0, 0, NULL);
}
- else
+ else {
rl->rectf = MEM_mapallocN(rectx * recty * sizeof(float) * 4, "Combined rgba");
+ }
/* note, this has to be in sync with scene.c */
rl->lay = (1 << 20) - 1;
@@ -558,8 +569,8 @@ RenderResult *render_result_new(Render *re, rcti *partrct, int crop, int savebuf
}
/* border render; calculate offset for use in compositor. compo is centralized coords */
- rr->xof = re->disprect.xmin + (re->disprect.xmax - re->disprect.xmin) / 2 - re->winx / 2;
- rr->yof = re->disprect.ymin + (re->disprect.ymax - re->disprect.ymin) / 2 - re->winy / 2;
+ rr->xof = re->disprect.xmin + BLI_rcti_cent_x(&re->disprect) - (re->winx / 2);
+ rr->yof = re->disprect.ymin + BLI_rcti_cent_y(&re->disprect) - (re->winy / 2);
return rr;
}
@@ -570,10 +581,10 @@ RenderResult *render_result_new_full_sample(Render *re, ListBase *lb, rcti *part
int a;
if (re->osa == 0)
- return render_result_new(re, partrct, crop, savebuffers);
+ return render_result_new(re, partrct, crop, savebuffers, RR_ALL_LAYERS);
for (a = 0; a < re->osa; a++) {
- RenderResult *rr = render_result_new(re, partrct, crop, savebuffers);
+ RenderResult *rr = render_result_new(re, partrct, crop, savebuffers, RR_ALL_LAYERS);
BLI_addtail(lb, rr);
rr->sample_nr = a;
}
@@ -582,7 +593,7 @@ RenderResult *render_result_new_full_sample(Render *re, ListBase *lb, rcti *part
}
/* callbacks for render_result_new_from_exr */
-static void *ml_addlayer_cb(void *base, char *str)
+static void *ml_addlayer_cb(void *base, const char *str)
{
RenderResult *rr = base;
RenderLayer *rl;
@@ -594,7 +605,7 @@ static void *ml_addlayer_cb(void *base, char *str)
return rl;
}
-static void ml_addpass_cb(void *UNUSED(base), void *lay, char *str, float *rect, int totchan, char *chan_id)
+static void ml_addpass_cb(void *UNUSED(base), void *lay, const char *str, float *rect, int totchan, const char *chan_id)
{
RenderLayer *rl = lay;
RenderPass *rpass = MEM_callocN(sizeof(RenderPass), "loaded pass");
@@ -616,12 +627,13 @@ static void ml_addpass_cb(void *UNUSED(base), void *lay, char *str, float *rect,
}
/* from imbuf, if a handle was returned we convert this to render result */
-RenderResult *render_result_new_from_exr(void *exrhandle, int rectx, int recty)
+RenderResult *render_result_new_from_exr(void *exrhandle, const char *colorspace, int predivide, int rectx, int recty)
{
- RenderResult *rr = MEM_callocN(sizeof(RenderResult), "loaded render result");
+ RenderResult *rr = MEM_callocN(sizeof(RenderResult), __func__);
RenderLayer *rl;
RenderPass *rpass;
-
+ const char *to_colorspace = IMB_colormanagement_role_colorspace_name_get(COLOR_ROLE_SCENE_LINEAR);
+
rr->rectx = rectx;
rr->recty = recty;
@@ -634,6 +646,11 @@ RenderResult *render_result_new_from_exr(void *exrhandle, int rectx, int recty)
for (rpass = rl->passes.first; rpass; rpass = rpass->next) {
rpass->rectx = rectx;
rpass->recty = recty;
+
+ if (rpass->channels >= 3) {
+ IMB_colormanagement_transform(rpass->rect, rpass->rectx, rpass->recty, rpass->channels,
+ colorspace, to_colorspace, predivide);
+ }
}
}
@@ -682,15 +699,20 @@ void render_result_merge(RenderResult *rr, RenderResult *rrpart)
RenderLayer *rl, *rlp;
RenderPass *rpass, *rpassp;
- for (rl = rr->layers.first, rlp = rrpart->layers.first; rl && rlp; rl = rl->next, rlp = rlp->next) {
-
- /* combined */
- if (rl->rectf && rlp->rectf)
- do_merge_tile(rr, rrpart, rl->rectf, rlp->rectf, 4);
-
- /* passes are allocated in sync */
- for (rpass = rl->passes.first, rpassp = rlp->passes.first; rpass && rpassp; rpass = rpass->next, rpassp = rpassp->next) {
- do_merge_tile(rr, rrpart, rpass->rect, rpassp->rect, rpass->channels);
+ for (rl = rr->layers.first; rl; rl = rl->next) {
+ rlp = RE_GetRenderLayer(rrpart, rl->name);
+ if (rlp) {
+ /* combined */
+ if (rl->rectf && rlp->rectf)
+ do_merge_tile(rr, rrpart, rl->rectf, rlp->rectf, 4);
+
+ /* passes are allocated in sync */
+ for (rpass = rl->passes.first, rpassp = rlp->passes.first;
+ rpass && rpassp;
+ rpass = rpass->next, rpassp = rpassp->next)
+ {
+ do_merge_tile(rr, rrpart, rpass->rect, rpassp->rect, rpass->channels);
+ }
}
}
}
@@ -735,21 +757,24 @@ int RE_WriteRenderResult(ReportList *reports, RenderResult *rr, const char *file
/* combined */
if (rl->rectf) {
int a, xstride = 4;
- for (a = 0; a < xstride; a++)
- IMB_exr_add_channel(exrhandle, rl->name, get_pass_name(SCE_PASS_COMBINED, a),
+ for (a = 0; a < xstride; a++) {
+ IMB_exr_add_channel(exrhandle, rl->name, get_pass_name(SCE_PASS_COMBINED, a),
xstride, xstride * rr->rectx, rl->rectf + a);
+ }
}
/* passes are allocated in sync */
for (rpass = rl->passes.first; rpass; rpass = rpass->next) {
int a, xstride = rpass->channels;
for (a = 0; a < xstride; a++) {
- if (rpass->passtype)
- IMB_exr_add_channel(exrhandle, rl->name, get_pass_name(rpass->passtype, a),
+ if (rpass->passtype) {
+ IMB_exr_add_channel(exrhandle, rl->name, get_pass_name(rpass->passtype, a),
xstride, xstride * rr->rectx, rpass->rect + a);
- else
- IMB_exr_add_channel(exrhandle, rl->name, make_pass_name(rpass, a),
+ }
+ else {
+ IMB_exr_add_channel(exrhandle, rl->name, make_pass_name(rpass, a),
xstride, xstride * rr->rectx, rpass->rect + a);
+ }
}
}
}
@@ -807,8 +832,9 @@ void render_result_single_layer_end(Render *re)
/* reconstruct render result layers */
for (nr = 0, srl = re->scene->r.layers.first; srl; srl = srl->next, nr++) {
- if (nr == re->r.actlay)
+ if (nr == re->r.actlay) {
BLI_addtail(&re->result->layers, rl);
+ }
else {
rlpush = RE_GetRenderLayer(re->pushedresult, srl->name);
if (rlpush) {
@@ -827,14 +853,21 @@ void render_result_single_layer_end(Render *re)
static void save_render_result_tile(RenderResult *rr, RenderResult *rrpart)
{
- RenderLayer *rlp;
+ RenderLayer *rlp, *rl;
RenderPass *rpassp;
int offs, partx, party;
BLI_lock_thread(LOCK_IMAGE);
for (rlp = rrpart->layers.first; rlp; rlp = rlp->next) {
-
+ rl = RE_GetRenderLayer(rr, rlp->name);
+
+ /* should never happen but prevents crash if it does */
+ BLI_assert(rl);
+ if (UNLIKELY(rl == NULL)) {
+ continue;
+ }
+
if (rrpart->crop) { /* filters add pixel extra */
offs = (rrpart->crop + rrpart->crop * rrpart->rectx);
}
@@ -845,24 +878,37 @@ static void save_render_result_tile(RenderResult *rr, RenderResult *rrpart)
/* combined */
if (rlp->rectf) {
int a, xstride = 4;
- for (a = 0; a < xstride; a++)
- IMB_exr_set_channel(rr->exrhandle, rlp->name, get_pass_name(SCE_PASS_COMBINED, a),
+ for (a = 0; a < xstride; a++) {
+ IMB_exr_set_channel(rl->exrhandle, rlp->name, get_pass_name(SCE_PASS_COMBINED, a),
xstride, xstride * rrpart->rectx, rlp->rectf + a + xstride * offs);
+ }
}
/* passes are allocated in sync */
for (rpassp = rlp->passes.first; rpassp; rpassp = rpassp->next) {
int a, xstride = rpassp->channels;
- for (a = 0; a < xstride; a++)
- IMB_exr_set_channel(rr->exrhandle, rlp->name, get_pass_name(rpassp->passtype, a),
+ for (a = 0; a < xstride; a++) {
+ IMB_exr_set_channel(rl->exrhandle, rlp->name, get_pass_name(rpassp->passtype, a),
xstride, xstride * rrpart->rectx, rpassp->rect + a + xstride * offs);
+ }
}
}
party = rrpart->tilerect.ymin + rrpart->crop;
partx = rrpart->tilerect.xmin + rrpart->crop;
- IMB_exrtile_write_channels(rr->exrhandle, partx, party, 0);
+
+ for (rlp = rrpart->layers.first; rlp; rlp = rlp->next) {
+ rl = RE_GetRenderLayer(rr, rlp->name);
+
+ /* should never happen but prevents crash if it does */
+ BLI_assert(rl);
+ if (UNLIKELY(rl == NULL)) {
+ continue;
+ }
+
+ IMB_exrtile_write_channels(rl->exrhandle, partx, party, 0);
+ }
BLI_unlock_thread(LOCK_IMAGE);
}
@@ -871,15 +917,18 @@ static void save_empty_result_tiles(Render *re)
{
RenderPart *pa;
RenderResult *rr;
+ RenderLayer *rl;
for (rr = re->result; rr; rr = rr->next) {
- IMB_exrtile_clear_channels(rr->exrhandle);
+ for (rl = rr->layers.first; rl; rl = rl->next) {
+ IMB_exrtile_clear_channels(rl->exrhandle);
- for (pa = re->parts.first; pa; pa = pa->next) {
- if (pa->ready == 0) {
- int party = pa->disprect.ymin - re->disprect.ymin + pa->crop;
- int partx = pa->disprect.xmin - re->disprect.xmin + pa->crop;
- IMB_exrtile_write_channels(rr->exrhandle, partx, party, 0);
+ for (pa = re->parts.first; pa; pa = pa->next) {
+ if (pa->ready == 0) {
+ int party = pa->disprect.ymin - re->disprect.ymin + pa->crop;
+ int partx = pa->disprect.xmin - re->disprect.xmin + pa->crop;
+ IMB_exrtile_write_channels(rl->exrhandle, partx, party, 0);
+ }
}
}
}
@@ -889,13 +938,15 @@ static void save_empty_result_tiles(Render *re)
void render_result_exr_file_begin(Render *re)
{
RenderResult *rr;
+ RenderLayer *rl;
char str[FILE_MAX];
-
+
for (rr = re->result; rr; rr = rr->next) {
- render_result_exr_file_path(re->scene, rr->sample_nr, str);
-
- printf("write exr tmp file, %dx%d, %s\n", rr->rectx, rr->recty, str);
- IMB_exrtile_begin_write(rr->exrhandle, str, 0, rr->rectx, rr->recty, re->partx, re->party);
+ for (rl = rr->layers.first; rl; rl = rl->next) {
+ render_result_exr_file_path(re->scene, rl->name, rr->sample_nr, str);
+ printf("write exr tmp file, %dx%d, %s\n", rr->rectx, rr->recty, str);
+ IMB_exrtile_begin_write(rl->exrhandle, str, 0, rr->rectx, rr->recty, re->partx, re->party);
+ }
}
}
@@ -903,12 +954,17 @@ void render_result_exr_file_begin(Render *re)
void render_result_exr_file_end(Render *re)
{
RenderResult *rr;
+ RenderLayer *rl;
save_empty_result_tiles(re);
for (rr = re->result; rr; rr = rr->next) {
- IMB_exr_close(rr->exrhandle);
- rr->exrhandle = NULL;
+ for (rl = rr->layers.first; rl; rl = rl->next) {
+ IMB_exr_close(rl->exrhandle);
+ rl->exrhandle = NULL;
+ }
+
+ rr->do_exr_tile = FALSE;
}
render_result_free_list(&re->fullresult, re->result);
@@ -925,17 +981,17 @@ void render_result_exr_file_merge(RenderResult *rr, RenderResult *rrpart)
}
/* path to temporary exr file */
-void render_result_exr_file_path(Scene *scene, int sample, char *filepath)
+void render_result_exr_file_path(Scene *scene, const char *layname, int sample, char *filepath)
{
- char di[FILE_MAX], name[FILE_MAXFILE + MAX_ID_NAME + 100], fi[FILE_MAXFILE];
+ char di[FILE_MAX], name[FILE_MAXFILE + MAX_ID_NAME + MAX_ID_NAME + 100], fi[FILE_MAXFILE];
BLI_strncpy(di, G.main->name, FILE_MAX);
BLI_splitdirstring(di, fi);
if (sample == 0)
- BLI_snprintf(name, sizeof(name), "%s_%s.exr", fi, scene->id.name + 2);
+ BLI_snprintf(name, sizeof(name), "%s_%s_%s.exr", fi, scene->id.name + 2, layname);
else
- BLI_snprintf(name, sizeof(name), "%s_%s%d.exr", fi, scene->id.name + 2, sample);
+ BLI_snprintf(name, sizeof(name), "%s_%s_%s%d.exr", fi, scene->id.name + 2, layname, sample);
BLI_make_file_string("/", filepath, BLI_temporary_dir(), name);
}
@@ -943,29 +999,30 @@ void render_result_exr_file_path(Scene *scene, int sample, char *filepath)
/* only for temp buffer files, makes exact copy of render result */
int render_result_exr_file_read(Render *re, int sample)
{
+ RenderLayer *rl;
char str[FILE_MAX];
- int success;
+ int success = TRUE;
RE_FreeRenderResult(re->result);
- re->result = render_result_new(re, &re->disprect, 0, RR_USE_MEM);
+ re->result = render_result_new(re, &re->disprect, 0, RR_USE_MEM, RR_ALL_LAYERS);
- render_result_exr_file_path(re->scene, sample, str);
- printf("read exr tmp file: %s\n", str);
+ for (rl = re->result->layers.first; rl; rl = rl->next) {
- if (render_result_exr_file_read_path(re->result, str)) {
- success = TRUE;
- }
- else {
- printf("cannot read: %s\n", str);
- success = FALSE;
+ render_result_exr_file_path(re->scene, rl->name, sample, str);
+ printf("read exr tmp file: %s\n", str);
+ if (!render_result_exr_file_read_path(re->result, rl, str)) {
+ printf("cannot read: %s\n", str);
+ success = FALSE;
+
+ }
}
return success;
}
/* called for reading temp files, and for external engines */
-int render_result_exr_file_read_path(RenderResult *rr, const char *filepath)
+int render_result_exr_file_read_path(RenderResult *rr, RenderLayer *rl_single, const char *filepath)
{
RenderLayer *rl;
RenderPass *rpass;
@@ -988,6 +1045,9 @@ int render_result_exr_file_read_path(RenderResult *rr, const char *filepath)
}
for (rl = rr->layers.first; rl; rl = rl->next) {
+ if (rl_single && rl_single != rl)
+ continue;
+
/* combined */
if (rl->rectf) {
int a, xstride = 4;
@@ -1028,16 +1088,12 @@ ImBuf *render_result_rect_to_ibuf(RenderResult *rr, RenderData *rd)
/* float factor for random dither, imbuf takes care of it */
ibuf->dither = rd->dither_intensity;
- /* prepare to gamma correct to sRGB color space */
- if (rd->color_mgt_flag & R_COLOR_MANAGEMENT) {
- /* sequence editor can generate 8bpc render buffers */
- if (ibuf->rect) {
- ibuf->profile = IB_PROFILE_SRGB;
- if (BKE_imtype_valid_depths(rd->im_format.imtype) & (R_IMF_CHAN_DEPTH_12 | R_IMF_CHAN_DEPTH_16 | R_IMF_CHAN_DEPTH_24 | R_IMF_CHAN_DEPTH_32))
- IMB_float_from_rect(ibuf);
- }
- else {
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
+ /* prepare to gamma correct to sRGB color space
+ * note that sequence editor can generate 8bpc render buffers
+ */
+ if (ibuf->rect) {
+ if (BKE_imtype_valid_depths(rd->im_format.imtype) & (R_IMF_CHAN_DEPTH_12 | R_IMF_CHAN_DEPTH_16 | R_IMF_CHAN_DEPTH_24 | R_IMF_CHAN_DEPTH_32)) {
+ IMB_float_from_rect(ibuf);
}
}
@@ -1053,22 +1109,14 @@ ImBuf *render_result_rect_to_ibuf(RenderResult *rr, RenderData *rd)
return ibuf;
}
-void render_result_rect_from_ibuf(RenderResult *rr, RenderData *rd, ImBuf *ibuf)
+void render_result_rect_from_ibuf(RenderResult *rr, RenderData *UNUSED(rd), ImBuf *ibuf)
{
if (ibuf->rect_float) {
- /* color management: when off ensure rectf is non-lin, since thats what the internal
- * render engine delivers */
- int profile_to = (rd->color_mgt_flag & R_COLOR_MANAGEMENT) ? IB_PROFILE_LINEAR_RGB : IB_PROFILE_SRGB;
- int profile_from = (ibuf->profile == IB_PROFILE_LINEAR_RGB) ? IB_PROFILE_LINEAR_RGB : IB_PROFILE_SRGB;
- int predivide = (rd->color_mgt_flag & R_COLOR_MANAGEMENT_PREDIVIDE);
-
if (!rr->rectf)
rr->rectf = MEM_mallocN(4 * sizeof(float) * rr->rectx * rr->recty, "render_seq rectf");
- IMB_buffer_float_from_float(rr->rectf, ibuf->rect_float,
- 4, profile_to, profile_from, predivide,
- rr->rectx, rr->recty, rr->rectx, rr->rectx);
-
+ memcpy(rr->rectf, ibuf->rect_float, 4 * sizeof(float) * rr->rectx * rr->recty);
+
/* TSK! Since sequence render doesn't free the *rr render result, the old rect32
* can hang around when sequence render has rendered a 32 bits one before */
if (rr->rect32) {
@@ -1100,19 +1148,17 @@ void render_result_rect_fill_zero(RenderResult *rr)
rr->rect32 = MEM_callocN(sizeof(int) * rr->rectx * rr->recty, "render_seq rect");
}
-void render_result_rect_get_pixels(RenderResult *rr, RenderData *rd, unsigned int *rect, int rectx, int recty)
+void render_result_rect_get_pixels(RenderResult *rr, RenderData *rd, unsigned int *rect, int rectx, int recty,
+ const ColorManagedViewSettings *view_settings, const ColorManagedDisplaySettings *display_settings)
{
if (rr->rect32) {
memcpy(rect, rr->rect32, sizeof(int) * rr->rectx * rr->recty);
}
else if (rr->rectf) {
- int profile_from = (rd->color_mgt_flag & R_COLOR_MANAGEMENT) ? IB_PROFILE_LINEAR_RGB : IB_PROFILE_SRGB;
int predivide = (rd->color_mgt_flag & R_COLOR_MANAGEMENT_PREDIVIDE);
- int dither = 0;
- IMB_buffer_byte_from_float((unsigned char *)rect, rr->rectf,
- 4, dither, IB_PROFILE_SRGB, profile_from, predivide,
- rr->rectx, rr->recty, rr->rectx, rr->rectx);
+ IMB_display_buffer_transform_apply((unsigned char *) rect, rr->rectf, rr->rectx, rr->recty, 4,
+ view_settings, display_settings, predivide);
}
else
/* else fill with black */
diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c
index 39577bf8da8..0511b03b42d 100644
--- a/source/blender/render/intern/source/render_texture.c
+++ b/source/blender/render/intern/source/render_texture.c
@@ -50,6 +50,7 @@
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
+#include "IMB_colormanagement.h"
#include "BKE_colortools.h"
#include "BKE_image.h"
@@ -82,6 +83,8 @@
#include "renderdatabase.h" /* needed for UV */
+#include "RE_render_ext.h"
+
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* defined in pipeline.c, is hardcopy of active dynamic allocated Render */
/* only to be used here in this file, it's for speed */
@@ -93,13 +96,9 @@ extern struct Render R;
static void init_render_texture(Render *re, Tex *tex)
{
- int cfra= re->scene->r.cfra;
-
- if (re) cfra= re->r.cfra;
-
/* imap test */
if (tex->ima && ELEM(tex->ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) {
- BKE_image_user_frame_calc(&tex->iuser, cfra, re?re->flag & R_SEC_FIELD:0);
+ BKE_image_user_frame_calc(&tex->iuser, re ? re->r.cfra : 0, re ? re->flag & R_SEC_FIELD:0);
}
else if (tex->type==TEX_ENVMAP) {
@@ -112,7 +111,7 @@ static void init_render_texture(Render *re, Tex *tex)
tex->extend= TEX_EXTEND;
/* only free envmap when rendermode was set to render envmaps, for previewrender */
- if (G.rendering && re) {
+ if (G.is_rendering && re) {
if (re->r.mode & R_ENVMAP)
if (tex->env->stype==ENV_ANIM)
BKE_free_envmapdata(tex->env);
@@ -244,7 +243,7 @@ static int clouds(Tex *tex, float *texvec, TexResult *texres)
texres->tin = BLI_gTurbulence(tex->noisesize, texvec[0], texvec[1], texvec[2], tex->noisedepth, (tex->noisetype!=TEX_NOISESOFT), tex->noisebasis);
if (texres->nor!=NULL) {
- // calculate bumpnormal
+ /* calculate bumpnormal */
texres->nor[0] = BLI_gTurbulence(tex->noisesize, texvec[0] + tex->nabla, texvec[1], texvec[2], tex->noisedepth, (tex->noisetype!=TEX_NOISESOFT), tex->noisebasis);
texres->nor[1] = BLI_gTurbulence(tex->noisesize, texvec[0], texvec[1] + tex->nabla, texvec[2], tex->noisedepth, (tex->noisetype!=TEX_NOISESOFT), tex->noisebasis);
texres->nor[2] = BLI_gTurbulence(tex->noisesize, texvec[0], texvec[1], texvec[2] + tex->nabla, tex->noisedepth, (tex->noisetype!=TEX_NOISESOFT), tex->noisebasis);
@@ -254,8 +253,8 @@ static int clouds(Tex *tex, float *texvec, TexResult *texres)
}
if (tex->stype==TEX_COLOR) {
- // in this case, int. value should really be computed from color,
- // and bumpnormal from that, would be too slow, looks ok as is
+ /* in this case, int. value should really be computed from color,
+ * and bumpnormal from that, would be too slow, looks ok as is */
texres->tr = texres->tin;
texres->tg = BLI_gTurbulence(tex->noisesize, texvec[1], texvec[0], texvec[2], tex->noisedepth, (tex->noisetype!=TEX_NOISESOFT), tex->noisebasis);
texres->tb = BLI_gTurbulence(tex->noisesize, texvec[1], texvec[2], texvec[0], tex->noisedepth, (tex->noisetype!=TEX_NOISESOFT), tex->noisebasis);
@@ -538,8 +537,8 @@ static float mg_mFractalOrfBmTex(Tex *tex, float *texvec, TexResult *texres)
texres->tin = tex->ns_outscale*mgravefunc(texvec[0], texvec[1], texvec[2], tex->mg_H, tex->mg_lacunarity, tex->mg_octaves, tex->noisebasis);
if (texres->nor!=NULL) {
- float offs= tex->nabla/tex->noisesize; // also scaling of texvec
-
+ float offs= tex->nabla/tex->noisesize; /* also scaling of texvec */
+
/* calculate bumpnormal */
texres->nor[0] = tex->ns_outscale*mgravefunc(texvec[0] + offs, texvec[1], texvec[2], tex->mg_H, tex->mg_lacunarity, tex->mg_octaves, tex->noisebasis);
texres->nor[1] = tex->ns_outscale*mgravefunc(texvec[0], texvec[1] + offs, texvec[2], tex->mg_H, tex->mg_lacunarity, tex->mg_octaves, tex->noisebasis);
@@ -568,8 +567,8 @@ static float mg_ridgedOrHybridMFTex(Tex *tex, float *texvec, TexResult *texres)
texres->tin = tex->ns_outscale*mgravefunc(texvec[0], texvec[1], texvec[2], tex->mg_H, tex->mg_lacunarity, tex->mg_octaves, tex->mg_offset, tex->mg_gain, tex->noisebasis);
if (texres->nor!=NULL) {
- float offs= tex->nabla/tex->noisesize; // also scaling of texvec
-
+ float offs= tex->nabla/tex->noisesize; /* also scaling of texvec */
+
/* calculate bumpnormal */
texres->nor[0] = tex->ns_outscale*mgravefunc(texvec[0] + offs, texvec[1], texvec[2], tex->mg_H, tex->mg_lacunarity, tex->mg_octaves, tex->mg_offset, tex->mg_gain, tex->noisebasis);
texres->nor[1] = tex->ns_outscale*mgravefunc(texvec[0], texvec[1] + offs, texvec[2], tex->mg_H, tex->mg_lacunarity, tex->mg_octaves, tex->mg_offset, tex->mg_gain, tex->noisebasis);
@@ -593,8 +592,8 @@ static float mg_HTerrainTex(Tex *tex, float *texvec, TexResult *texres)
texres->tin = tex->ns_outscale*mg_HeteroTerrain(texvec[0], texvec[1], texvec[2], tex->mg_H, tex->mg_lacunarity, tex->mg_octaves, tex->mg_offset, tex->noisebasis);
if (texres->nor!=NULL) {
- float offs= tex->nabla/tex->noisesize; // also scaling of texvec
-
+ float offs= tex->nabla/tex->noisesize; /* also scaling of texvec */
+
/* calculate bumpnormal */
texres->nor[0] = tex->ns_outscale*mg_HeteroTerrain(texvec[0] + offs, texvec[1], texvec[2], tex->mg_H, tex->mg_lacunarity, tex->mg_octaves, tex->mg_offset, tex->noisebasis);
texres->nor[1] = tex->ns_outscale*mg_HeteroTerrain(texvec[0], texvec[1] + offs, texvec[2], tex->mg_H, tex->mg_lacunarity, tex->mg_octaves, tex->mg_offset, tex->noisebasis);
@@ -618,8 +617,8 @@ static float mg_distNoiseTex(Tex *tex, float *texvec, TexResult *texres)
texres->tin = mg_VLNoise(texvec[0], texvec[1], texvec[2], tex->dist_amount, tex->noisebasis, tex->noisebasis2);
if (texres->nor!=NULL) {
- float offs= tex->nabla/tex->noisesize; // also scaling of texvec
-
+ float offs= tex->nabla/tex->noisesize; /* also scaling of texvec */
+
/* calculate bumpnormal */
texres->nor[0] = mg_VLNoise(texvec[0] + offs, texvec[1], texvec[2], tex->dist_amount, tex->noisebasis, tex->noisebasis2);
texres->nor[1] = mg_VLNoise(texvec[0], texvec[1] + offs, texvec[2], tex->dist_amount, tex->noisebasis, tex->noisebasis2);
@@ -688,7 +687,7 @@ static float voronoiTex(Tex *tex, float *texvec, TexResult *texres)
}
if (texres->nor!=NULL) {
- float offs= tex->nabla/tex->noisesize; // also scaling of texvec
+ float offs= tex->nabla/tex->noisesize; /* also scaling of texvec */
/* calculate bumpnormal */
voronoi(texvec[0] + offs, texvec[1], texvec[2], da, pa, tex->vn_mexp, tex->vn_distm);
@@ -745,7 +744,7 @@ static int cubemap_glob(const float n[3], float x, float y, float z, float *adr1
int ret;
if (n==NULL) {
- nor[0]= x; nor[1]= y; nor[2]= z; // use local render coord
+ nor[0]= x; nor[1]= y; nor[2]= z; /* use local render coord */
}
else {
copy_v3_v3(nor, n);
@@ -791,9 +790,9 @@ static int cubemap(MTex *mtex, VlakRen *vlr, const float n[3], float x, float y,
float nor[3];
normal_tri_v3(nor, vlr->v1->orco, vlr->v2->orco, vlr->v3->orco);
- if ( fabs(nor[0])<fabs(nor[2]) && fabs(nor[1])<fabs(nor[2]) ) vlr->puno |= ME_PROJXY;
- else if ( fabs(nor[0])<fabs(nor[1]) && fabs(nor[2])<fabs(nor[1]) ) vlr->puno |= ME_PROJXZ;
- else vlr->puno |= ME_PROJYZ;
+ if (fabsf(nor[0]) < fabsf(nor[2]) && fabsf(nor[1]) < fabsf(nor[2])) vlr->puno |= ME_PROJXY;
+ else if (fabsf(nor[0]) < fabsf(nor[1]) && fabsf(nor[2]) < fabsf(nor[1])) vlr->puno |= ME_PROJXZ;
+ else vlr->puno |= ME_PROJYZ;
}
else return cubemap_glob(n, x, y, z, adr1, adr2);
}
@@ -888,12 +887,12 @@ static void do_2d_mapping(MTex *mtex, float *t, VlakRen *vlr, const float n[3],
fx = (t[0] + 1.0f) / 2.0f;
fy = (t[1] + 1.0f) / 2.0f;
}
- else if (wrap==MTEX_TUBE) map_to_tube( &fx, &fy, t[0], t[1], t[2]);
- else if (wrap==MTEX_SPHERE) map_to_sphere(&fx, &fy, t[0], t[1], t[2]);
+ else if (wrap == MTEX_TUBE) map_to_tube( &fx, &fy, t[0], t[1], t[2]);
+ else if (wrap == MTEX_SPHERE) map_to_sphere(&fx, &fy, t[0], t[1], t[2]);
else {
- if (texco==TEXCO_OBJECT) cubemap_ob(ob, n, t[0], t[1], t[2], &fx, &fy);
- else if (texco==TEXCO_GLOB) cubemap_glob(n, t[0], t[1], t[2], &fx, &fy);
- else cubemap(mtex, vlr, n, t[0], t[1], t[2], &fx, &fy);
+ if (texco == TEXCO_OBJECT) cubemap_ob(ob, n, t[0], t[1], t[2], &fx, &fy);
+ else if (texco == TEXCO_GLOB) cubemap_glob(n, t[0], t[1], t[2], &fx, &fy);
+ else cubemap(mtex, vlr, n, t[0], t[1], t[2], &fx, &fy);
}
/* repeat */
@@ -954,10 +953,17 @@ static void do_2d_mapping(MTex *mtex, float *t, VlakRen *vlr, const float n[3],
if (t[1]<=0.0f) {
fx= t[0]+dxt[0];
fy= t[0]+dyt[0];
- if (fx>=0.0f && fy>=0.0f && t[0]>=0.0f);
- else if (fx<=0.0f && fy<=0.0f && t[0]<=0.0f);
- else ok= 0;
+ if (fx>=0.0f && fy>=0.0f && t[0]>=0.0f) {
+ /* pass */
+ }
+ else if (fx<=0.0f && fy<=0.0f && t[0]<=0.0f) {
+ /* pass */
+ }
+ else {
+ ok = 0;
+ }
}
+
if (ok) {
if (wrap==MTEX_TUBE) {
map_to_tube(area, area+1, t[0], t[1], t[2]);
@@ -1026,7 +1032,7 @@ static void do_2d_mapping(MTex *mtex, float *t, VlakRen *vlr, const float n[3],
if (tex->xrepeat>1) {
float origf= fx *= tex->xrepeat;
- // TXF: omit mirror here, see comments in do_material_tex() after do_2d_mapping() call
+ /* TXF: omit mirror here, see comments in do_material_tex() after do_2d_mapping() call */
if (tex->texfilter == TXF_BOX) {
if (fx>1.0f) fx -= (int)(fx);
else if (fx<0.0f) fx+= 1-(int)(fx);
@@ -1046,7 +1052,7 @@ static void do_2d_mapping(MTex *mtex, float *t, VlakRen *vlr, const float n[3],
if (tex->yrepeat>1) {
float origf= fy *= tex->yrepeat;
- // TXF: omit mirror here, see comments in do_material_tex() after do_2d_mapping() call
+ /* TXF: omit mirror here, see comments in do_material_tex() after do_2d_mapping() call */
if (tex->texfilter == TXF_BOX) {
if (fy>1.0f) fy -= (int)(fy);
else if (fy<0.0f) fy+= 1-(int)(fy);
@@ -1097,7 +1103,7 @@ static int multitex(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex,
float tmpvec[3];
int retval=0; /* return value, int:0, col:1, nor:2, everything:3 */
- texres->talpha= 0; /* is set when image texture returns alpha (considered premul) */
+ texres->talpha = FALSE; /* is set when image texture returns alpha (considered premul) */
if (tex->use_nodes && tex->nodetree) {
retval = ntreeTexExecTree(tex->nodetree, texres, texvec, dxt, dyt, osatex, thread,
@@ -1194,7 +1200,7 @@ static int multitex(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex,
if (tex->flag & TEX_COLORBAND) {
float col[4];
if (do_colorband(tex->coba, texres->tin, col)) {
- texres->talpha= 1;
+ texres->talpha = TRUE;
texres->tr= col[0];
texres->tg= col[1];
texres->tb= col[2];
@@ -1228,8 +1234,8 @@ int multitex_nodes(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex,
ImBuf *ibuf = BKE_image_get_ibuf(tex->ima, &tex->iuser);
/* don't linearize float buffers, assumed to be linear */
- if (ibuf && !(ibuf->rect_float) && R.r.color_mgt_flag & R_COLOR_MANAGEMENT)
- srgb_to_linearrgb_v3_v3(&texres->tr, &texres->tr);
+ if (ibuf && !(ibuf->rect_float))
+ IMB_colormanagement_colorspace_to_scene_linear_v3(&texres->tr, ibuf->rect_colorspace);
}
}
else {
@@ -1263,18 +1269,19 @@ int multitex_nodes(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex,
}
/* this is called for surface shading */
-int multitex_mtex(ShadeInput *shi, MTex *mtex, float *texvec, float *dxt, float *dyt, TexResult *texres)
+static int multitex_mtex(ShadeInput *shi, MTex *mtex, float *texvec, float *dxt, float *dyt, TexResult *texres)
{
- Tex *tex= mtex->tex;
+ Tex *tex = mtex->tex;
if (tex->use_nodes && tex->nodetree) {
/* stupid exception here .. but we have to pass shi and mtex to
* textures nodes for 2d mapping and color management for images */
return ntreeTexExecTree(tex->nodetree, texres, texvec, dxt, dyt, shi->osatex, shi->thread,
- tex, mtex->which_output, R.r.cfra, (R.r.scemode & R_TEXNODE_PREVIEW) != 0, shi, mtex);
+ tex, mtex->which_output, R.r.cfra, (R.r.scemode & R_TEXNODE_PREVIEW) != 0, shi, mtex);
}
- else
+ else {
return multitex(mtex->tex, texvec, dxt, dyt, shi->osatex, texres, shi->thread, mtex->which_output);
+ }
}
/* Warning, if the texres's values are not declared zero, check the return value to be sure
@@ -1512,9 +1519,9 @@ float texture_value_blend(float tex, float out, float fact, float facg, int blen
static void texco_mapping(ShadeInput* shi, Tex* tex, MTex* mtex, float* co, float* dx, float* dy, float* texvec, float* dxt, float* dyt)
{
- // new: first swap coords, then map, then trans/scale
+ /* new: first swap coords, then map, then trans/scale */
if (tex->type == TEX_IMAGE) {
- // placement
+ /* placement */
texvec[0] = mtex->projx ? co[mtex->projx - 1] : 0.f;
texvec[1] = mtex->projy ? co[mtex->projy - 1] : 0.f;
texvec[2] = mtex->projz ? co[mtex->projz - 1] : 0.f;
@@ -1538,7 +1545,7 @@ static void texco_mapping(ShadeInput* shi, Tex* tex, MTex* mtex, float* co, floa
}
do_2d_mapping(mtex, texvec, shi->vlr, shi->facenor, dxt, dyt);
- // translate and scale
+ /* translate and scale */
texvec[0] = mtex->size[0]*(texvec[0] - 0.5f) + mtex->ofs[0] + 0.5f;
texvec[1] = mtex->size[1]*(texvec[1] - 0.5f) + mtex->ofs[1] + 0.5f;
if (shi->osatex) {
@@ -1549,13 +1556,13 @@ static void texco_mapping(ShadeInput* shi, Tex* tex, MTex* mtex, float* co, floa
}
/* problem: repeat-mirror is not a 'repeat' but 'extend' in imagetexture.c */
- // TXF: bug was here, only modify texvec when repeat mode set, old code affected other modes too.
- // New texfilters solve mirroring differently so that it also works correctly when
- // textures are scaled (sizeXYZ) as well as repeated. See also modification in do_2d_mapping().
- // (since currently only done in osa mode, results will look incorrect without osa TODO)
+ /* TXF: bug was here, only modify texvec when repeat mode set, old code affected other modes too.
+ * New texfilters solve mirroring differently so that it also works correctly when
+ * textures are scaled (sizeXYZ) as well as repeated. See also modification in do_2d_mapping().
+ * (since currently only done in osa mode, results will look incorrect without osa TODO) */
if (tex->extend == TEX_REPEAT && (tex->flag & TEX_REPEAT_XMIR)) {
if (tex->texfilter == TXF_BOX)
- texvec[0] -= floorf(texvec[0]); // this line equivalent to old code, same below
+ texvec[0] -= floorf(texvec[0]); /* this line equivalent to old code, same below */
else if (texvec[0] < 0.f || texvec[0] > 1.f) {
const float tx = 0.5f*texvec[0];
texvec[0] = 2.f*(tx - floorf(tx));
@@ -1573,8 +1580,8 @@ static void texco_mapping(ShadeInput* shi, Tex* tex, MTex* mtex, float* co, floa
}
}
- else { // procedural
- // placement
+ else { /* procedural */
+ /* placement */
texvec[0] = mtex->size[0]*(mtex->projx ? (co[mtex->projx - 1] + mtex->ofs[0]) : mtex->ofs[0]);
texvec[1] = mtex->size[1]*(mtex->projy ? (co[mtex->projy - 1] + mtex->ofs[1]) : mtex->ofs[1]);
texvec[2] = mtex->size[2]*(mtex->projz ? (co[mtex->projz - 1] + mtex->ofs[2]) : mtex->ofs[2]);
@@ -1617,11 +1624,16 @@ static void compatible_bump_init(CompatibleBump *compat_bump)
static void compatible_bump_uv_derivs(CompatibleBump *compat_bump, ShadeInput *shi, MTex *mtex, int i)
{
- // uvmapping only, calculation of normal tangent u/v partial derivatives
- // (should not be here, dudnu, dudnv, dvdnu & dvdnv should probably be part of ShadeInputUV struct,
- // nu/nv in ShadeInput and this calculation should then move to shadeinput.c, shade_input_set_shade_texco() func.)
- // NOTE: test for shi->obr->ob here, since vlr/obr/obi can be 'fake' when called from fastshade(), another reason to move it..
- // NOTE: shi->v1 is NULL when called from displace_render_vert, assigning verts in this case is not trivial because the shi quad face side is not know.
+ /* uvmapping only, calculation of normal tangent u/v partial derivatives
+ * (should not be here, dudnu, dudnv, dvdnu & dvdnv should probably be part of ShadeInputUV struct,
+ * nu/nv in ShadeInput and this calculation should then move to shadeinput.c,
+ * shade_input_set_shade_texco() func.) */
+
+ /* NOTE: test for shi->obr->ob here,
+ * since vlr/obr/obi can be 'fake' when called from fastshade(), another reason to move it.. */
+
+ /* NOTE: shi->v1 is NULL when called from displace_render_vert,
+ * assigning verts in this case is not trivial because the shi quad face side is not know. */
if ((mtex->texflag & MTEX_COMPAT_BUMP) && shi->obr && shi->obr->ob && shi->v1) {
if (mtex->mapto & (MAP_NORM|MAP_WARP) && !((mtex->tex->type==TEX_IMAGE) && (mtex->tex->imaflag & TEX_NORMALMAP))) {
MTFace* tf = RE_vlakren_get_tface(shi->obr, shi->vlr, i, NULL, 0);
@@ -1629,9 +1641,9 @@ static void compatible_bump_uv_derivs(CompatibleBump *compat_bump, ShadeInput *s
vlr_set_uv_indices(shi->vlr, &j1, &j2, &j3);
- // compute ortho basis around normal
+ /* compute ortho basis around normal */
if (!compat_bump->nunvdone) {
- // render normal is negated
+ /* render normal is negated */
compat_bump->nn[0] = -shi->vn[0];
compat_bump->nn[1] = -shi->vn[1];
compat_bump->nn[2] = -shi->vn[2];
@@ -1672,47 +1684,47 @@ static void compatible_bump_uv_derivs(CompatibleBump *compat_bump, ShadeInput *s
static int compatible_bump_compute(CompatibleBump *compat_bump, ShadeInput *shi, MTex *mtex, Tex *tex, TexResult *texres, float Tnor, float *co, float *dx, float *dy, float *texvec, float *dxt, float *dyt)
{
- TexResult ttexr = {0, 0, 0, 0, 0, texres->talpha, NULL}; // temp TexResult
+ TexResult ttexr = {0, 0, 0, 0, 0, texres->talpha, NULL}; /* temp TexResult */
float tco[3], texv[3], cd, ud, vd, du, dv, idu, idv;
const int fromrgb = ((tex->type == TEX_IMAGE) || ((tex->flag & TEX_COLORBAND)!=0));
const float bf = -0.04f*Tnor*mtex->norfac;
int rgbnor;
- // disable internal bump eval
+ /* disable internal bump eval */
float* nvec = texres->nor;
texres->nor = NULL;
- // du & dv estimates, constant value defaults
+ /* du & dv estimates, constant value defaults */
du = dv = 0.01f;
- // compute ortho basis around normal
+ /* compute ortho basis around normal */
if (!compat_bump->nunvdone) {
- // render normal is negated
+ /* render normal is negated */
negate_v3_v3(compat_bump->nn, shi->vn);
ortho_basis_v3v3_v3(compat_bump->nu, compat_bump->nv, compat_bump->nn);
compat_bump->nunvdone = TRUE;
}
- // two methods, either constant based on main image resolution,
- // (which also works without osa, though of course not always good (or even very bad) results),
- // or based on tex derivative max values (osa only). Not sure which is best...
+ /* two methods, either constant based on main image resolution,
+ * (which also works without osa, though of course not always good (or even very bad) results),
+ * or based on tex derivative max values (osa only). Not sure which is best... */
if (!shi->osatex && (tex->type == TEX_IMAGE) && tex->ima) {
- // in case we have no proper derivatives, fall back to
- // computing du/dv it based on image size
- ImBuf* ibuf = BKE_image_get_ibuf(tex->ima, &tex->iuser);
+ /* in case we have no proper derivatives, fall back to
+ * computing du/dv it based on image size */
+ ImBuf *ibuf = BKE_image_get_ibuf(tex->ima, &tex->iuser);
if (ibuf) {
du = 1.f/(float)ibuf->x;
dv = 1.f/(float)ibuf->y;
}
}
else if (shi->osatex) {
- // we have derivatives, can compute proper du/dv
- if (tex->type == TEX_IMAGE) { // 2d image, use u & v max. of dx/dy 2d vecs
+ /* we have derivatives, can compute proper du/dv */
+ if (tex->type == TEX_IMAGE) { /* 2d image, use u & v max. of dx/dy 2d vecs */
const float adx[2] = {fabsf(dx[0]), fabsf(dx[1])};
const float ady[2] = {fabsf(dy[0]), fabsf(dy[1])};
du = MAX2(adx[0], ady[0]);
dv = MAX2(adx[1], ady[1]);
}
- else { // 3d procedural, estimate from all dx/dy elems
+ else { /* 3d procedural, estimate from all dx/dy elems */
const float adx[3] = {fabsf(dx[0]), fabsf(dx[1]), fabsf(dx[2])};
const float ady[3] = {fabsf(dy[0]), fabsf(dy[1]), fabsf(dy[2])};
du = MAX3(adx[0], adx[1], adx[2]);
@@ -1720,18 +1732,18 @@ static int compatible_bump_compute(CompatibleBump *compat_bump, ShadeInput *shi,
}
}
- // center, main return value
+ /* center, main return value */
texco_mapping(shi, tex, mtex, co, dx, dy, texvec, dxt, dyt);
rgbnor = multitex_mtex(shi, mtex, texvec, dxt, dyt, texres);
cd = fromrgb ? (texres->tr + texres->tg + texres->tb)*0.33333333f : texres->tin;
if (mtex->texco == TEXCO_UV) {
- // for the uv case, use the same value for both du/dv,
- // since individually scaling the normal derivatives makes them useless...
- du = MIN2(du, dv);
+ /* for the uv case, use the same value for both du/dv,
+ * since individually scaling the normal derivatives makes them useless... */
+ du = minf(du, dv);
idu = (du < 1e-5f) ? bf : (bf/du);
- // +u val
+ /* +u val */
tco[0] = co[0] + compat_bump->dudnu*du;
tco[1] = co[1] + compat_bump->dvdnu*du;
tco[2] = 0.f;
@@ -1739,7 +1751,7 @@ static int compatible_bump_compute(CompatibleBump *compat_bump, ShadeInput *shi,
multitex_mtex(shi, mtex, texv, dxt, dyt, &ttexr);
ud = idu*(cd - (fromrgb ? (ttexr.tr + ttexr.tg + ttexr.tb)*0.33333333f : ttexr.tin));
- // +v val
+ /* +v val */
tco[0] = co[0] + compat_bump->dudnv*du;
tco[1] = co[1] + compat_bump->dvdnv*du;
tco[2] = 0.f;
@@ -1773,7 +1785,7 @@ static int compatible_bump_compute(CompatibleBump *compat_bump, ShadeInput *shi,
normalize_v3(tv);
}
- // +u val
+ /* +u val */
tco[0] = co[0] + tu[0]*du;
tco[1] = co[1] + tu[1]*du;
tco[2] = co[2] + tu[2]*du;
@@ -1781,7 +1793,7 @@ static int compatible_bump_compute(CompatibleBump *compat_bump, ShadeInput *shi,
multitex_mtex(shi, mtex, texv, dxt, dyt, &ttexr);
ud = idu*(cd - (fromrgb ? (ttexr.tr + ttexr.tg + ttexr.tb)*0.33333333f : ttexr.tin));
- // +v val
+ /* +v val */
tco[0] = co[0] + tv[0]*dv;
tco[1] = co[1] + tv[1]*dv;
tco[2] = co[2] + tv[2]*dv;
@@ -1790,7 +1802,7 @@ static int compatible_bump_compute(CompatibleBump *compat_bump, ShadeInput *shi,
vd = idv*(cd - (fromrgb ? (ttexr.tr + ttexr.tg + ttexr.tb)*0.33333333f : ttexr.tin));
}
- // bumped normal
+ /* bumped normal */
compat_bump->nu[0] += ud*compat_bump->nn[0];
compat_bump->nu[1] += ud*compat_bump->nn[1];
compat_bump->nu[2] += ud*compat_bump->nn[2];
@@ -1812,13 +1824,13 @@ static int compatible_bump_compute(CompatibleBump *compat_bump, ShadeInput *shi,
typedef struct NTapBump {
int init_done;
- int iPrevBumpSpace; // 0: uninitialized, 1: objectspace, 2: texturespace, 4: viewspace
- // bumpmapping
- float vNorg[3]; // backup copy of shi->vn
- float vNacc[3]; // original surface normal minus the surface gradient of every bump map which is encountered
- float vR1[3], vR2[3]; // cross products (sigma_y, original_normal), (original_normal, sigma_x)
- float sgn_det; // sign of the determinant of the matrix {sigma_x, sigma_y, original_normal}
- float fPrevMagnitude; // copy of previous magnitude, used for multiple bumps in different spaces
+ int iPrevBumpSpace; /* 0: uninitialized, 1: objectspace, 2: texturespace, 4: viewspace */
+ /* bumpmapping */
+ float vNorg[3]; /* backup copy of shi->vn */
+ float vNacc[3]; /* original surface normal minus the surface gradient of every bump map which is encountered */
+ float vR1[3], vR2[3]; /* cross products (sigma_y, original_normal), (original_normal, sigma_x) */
+ float sgn_det; /* sign of the determinant of the matrix {sigma_x, sigma_y, original_normal} */
+ float fPrevMagnitude; /* copy of previous magnitude, used for multiple bumps in different spaces */
} NTapBump;
static void ntap_bump_init(NTapBump *ntap_bump)
@@ -1828,38 +1840,38 @@ static void ntap_bump_init(NTapBump *ntap_bump)
static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, Tex *tex, TexResult *texres, float Tnor, float *co, float *dx, float *dy, float *texvec, float *dxt, float *dyt)
{
- TexResult ttexr = {0, 0, 0, 0, 0, texres->talpha, NULL}; // temp TexResult
+ TexResult ttexr = {0, 0, 0, 0, 0, texres->talpha, NULL}; /* temp TexResult */
const int fromrgb = ((tex->type == TEX_IMAGE) || ((tex->flag & TEX_COLORBAND)!=0));
- // The negate on Hscale is done because the
- // normal in the renderer points inward which corresponds
- // to inverting the bump map. The normals are generated
- // this way in calc_vertexnormals(). Should this ever change
- // this negate must be removed.
+ /* The negate on Hscale is done because the
+ * normal in the renderer points inward which corresponds
+ * to inverting the bump map. The normals are generated
+ * this way in calc_vertexnormals(). Should this ever change
+ * this negate must be removed. */
float Hscale = -Tnor*mtex->norfac;
int dimx=512, dimy=512;
- const int imag_tspace_dimension_x = 1024; // only used for texture space variant
+ const int imag_tspace_dimension_x = 1024; /* only used for texture space variant */
float aspect = 1.0f;
- // 2 channels for 2D texture and 3 for 3D textures.
+ /* 2 channels for 2D texture and 3 for 3D textures. */
const int nr_channels = (mtex->texco == TEXCO_UV)? 2 : 3;
int c, rgbnor, iBumpSpace;
float dHdx, dHdy;
int found_deriv_map = (tex->type==TEX_IMAGE) && (tex->imaflag & TEX_DERIVATIVEMAP);
- // disable internal bump eval in sampler, save pointer
+ /* disable internal bump eval in sampler, save pointer */
float *nvec = texres->nor;
texres->nor = NULL;
if (found_deriv_map==0) {
if ( mtex->texflag & MTEX_BUMP_TEXTURESPACE ) {
if (tex->ima)
- Hscale *= 13.0f; // appears to be a sensible default value
+ Hscale *= 13.0f; /* appears to be a sensible default value */
}
else
- Hscale *= 0.1f; // factor 0.1 proved to look like the previous bump code
+ Hscale *= 0.1f; /* factor 0.1 proved to look like the previous bump code */
}
if ( !ntap_bump->init_done ) {
@@ -1871,9 +1883,9 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
ntap_bump->init_done = TRUE;
}
- // resolve image dimensions
+ /* resolve image dimensions */
if (found_deriv_map || (mtex->texflag&MTEX_BUMP_TEXTURESPACE)!=0) {
- ImBuf* ibuf = BKE_image_get_ibuf(tex->ima, &tex->iuser);
+ ImBuf *ibuf = BKE_image_get_ibuf(tex->ima, &tex->iuser);
if (ibuf) {
dimx = ibuf->x;
dimy = ibuf->y;
@@ -1883,7 +1895,7 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
if (found_deriv_map) {
float dBdu, dBdv, auto_bump = 1.0f;
- float s = 1; // negate this if flipped texture coordinate
+ float s = 1; /* negate this if flipped texture coordinate */
texco_mapping(shi, tex, mtex, co, dx, dy, texvec, dxt, dyt);
rgbnor = multitex_mtex(shi, mtex, texvec, dxt, dyt, texres);
@@ -1895,9 +1907,9 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
float fVirtDim = sqrtf(fabsf((float) (dimx*dimy)*mtex->size[0]*mtex->size[1]));
auto_bump /= MAX2(fVirtDim, FLT_EPSILON);
}
-
- // this variant using a derivative map is described here
- // http://mmikkelsen3d.blogspot.com/2011/07/derivative-maps.html
+
+ /* this variant using a derivative map is described here
+ * http://mmikkelsen3d.blogspot.com/2011/07/derivative-maps.html */
dBdu = auto_bump*Hscale*dimx*(2*texres->tr-1);
dBdv = auto_bump*Hscale*dimy*(2*texres->tg-1);
@@ -1905,32 +1917,32 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
dHdy = dBdu*dyt[0] + s * dBdv*dyt[1];
}
else if (!(mtex->texflag & MTEX_5TAP_BUMP)) {
- // compute height derivatives with respect to output image pixel coordinates x and y
+ /* compute height derivatives with respect to output image pixel coordinates x and y */
float STll[3], STlr[3], STul[3];
float Hll, Hlr, Hul;
texco_mapping(shi, tex, mtex, co, dx, dy, texvec, dxt, dyt);
for (c=0; c<nr_channels; c++) {
- // dx contains the derivatives (du/dx, dv/dx)
- // dy contains the derivatives (du/dy, dv/dy)
+ /* dx contains the derivatives (du/dx, dv/dx)
+ * dy contains the derivatives (du/dy, dv/dy) */
STll[c] = texvec[c];
STlr[c] = texvec[c]+dxt[c];
STul[c] = texvec[c]+dyt[c];
}
- // clear unused derivatives
+ /* clear unused derivatives */
for (c=nr_channels; c<3; c++) {
STll[c] = 0.0f;
STlr[c] = 0.0f;
STul[c] = 0.0f;
}
- // use texres for the center sample, set rgbnor
+ /* use texres for the center sample, set rgbnor */
rgbnor = multitex_mtex(shi, mtex, STll, dxt, dyt, texres);
Hll = (fromrgb) ? rgb_to_grayscale(&texres->tr) : texres->tin;
- // use ttexr for the other 2 taps
+ /* use ttexr for the other 2 taps */
multitex_mtex(shi, mtex, STlr, dxt, dyt, &ttexr);
Hlr = (fromrgb) ? rgb_to_grayscale(&ttexr.tr) : ttexr.tin;
@@ -1955,7 +1967,7 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
STu[c] = texvec[c] + 0.5f*dyt[c];
}
- // clear unused derivatives
+ /* clear unused derivatives */
for (c=nr_channels; c<3; c++) {
STc[c] = 0.0f;
STl[c] = 0.0f;
@@ -1964,11 +1976,11 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
STu[c] = 0.0f;
}
- // use texres for the center sample, set rgbnor
+ /* use texres for the center sample, set rgbnor */
rgbnor = multitex_mtex(shi, mtex, STc, dxt, dyt, texres);
/* Hc = (fromrgb) ? rgb_to_grayscale(&texres->tr) : texres->tin; */ /* UNUSED */
- // use ttexr for the other taps
+ /* use ttexr for the other taps */
multitex_mtex(shi, mtex, STl, dxt, dyt, &ttexr);
Hl = (fromrgb) ? rgb_to_grayscale(&ttexr.tr) : ttexr.tin;
multitex_mtex(shi, mtex, STr, dxt, dyt, &ttexr);
@@ -1982,7 +1994,7 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
dHdy = Hscale*(Hu - Hd);
}
- // restore pointer
+ /* restore pointer */
texres->nor = nvec;
/* replaced newbump with code based on listing 1 and 2 of
@@ -1994,32 +2006,32 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
else if ( mtex->texflag & MTEX_BUMP_TEXTURESPACE )
iBumpSpace = 2;
else
- iBumpSpace = 4; // ViewSpace
-
+ iBumpSpace = 4; /* ViewSpace */
+
if ( ntap_bump->iPrevBumpSpace != iBumpSpace ) {
-
- // initialize normal perturbation vectors
+
+ /* initialize normal perturbation vectors */
int xyz;
float fDet, abs_fDet, fMagnitude;
- // object2view and inverted matrix
+ /* object2view and inverted matrix */
float obj2view[3][3], view2obj[3][3], tmp[4][4];
- // local copies of derivatives and normal
+ /* local copies of derivatives and normal */
float dPdx[3], dPdy[3], vN[3];
copy_v3_v3(dPdx, shi->dxco);
copy_v3_v3(dPdy, shi->dyco);
copy_v3_v3(vN, ntap_bump->vNorg);
if ( mtex->texflag & MTEX_BUMP_OBJECTSPACE ) {
- // TODO: these calculations happen for every pixel!
- // -> move to shi->obi
+ /* TODO: these calculations happen for every pixel!
+ * -> move to shi->obi */
mult_m4_m4m4(tmp, R.viewmat, shi->obr->ob->obmat);
- copy_m3_m4(obj2view, tmp); // use only upper left 3x3 matrix
+ copy_m3_m4(obj2view, tmp); /* use only upper left 3x3 matrix */
invert_m3_m3(view2obj, obj2view);
-
- // generate the surface derivatives in object space
+
+ /* generate the surface derivatives in object space */
mul_m3_v3(view2obj, dPdx);
mul_m3_v3(view2obj, dPdy);
- // generate the unit normal in object space
+ /* generate the unit normal in object space */
mul_transposed_m3_v3(obj2view, vN);
normalize_v3(vN);
}
@@ -2032,7 +2044,7 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
if ( mtex->texflag & MTEX_BUMP_TEXTURESPACE ) {
if (tex->ima) {
- // crazy hack solution that gives results similar to normal mapping - part 1
+ /* crazy hack solution that gives results similar to normal mapping - part 1 */
normalize_v3(ntap_bump->vR1);
normalize_v3(ntap_bump->vR2);
abs_fDet = 1.0f;
@@ -2041,7 +2053,7 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
fMagnitude = abs_fDet;
if ( mtex->texflag & MTEX_BUMP_OBJECTSPACE ) {
- // pre do transform of texres->nor by the inverse transposed of obj2view
+ /* pre do transform of texres->nor by the inverse transposed of obj2view */
mul_transposed_m3_v3(view2obj, vN);
mul_transposed_m3_v3(view2obj, ntap_bump->vR1);
mul_transposed_m3_v3(view2obj, ntap_bump->vR2);
@@ -2059,7 +2071,7 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
if ( mtex->texflag & MTEX_BUMP_TEXTURESPACE ) {
if (tex->ima) {
- // crazy hack solution that gives results similar to normal mapping - part 2
+ /* crazy hack solution that gives results similar to normal mapping - part 2 */
float vec[2];
const float imag_tspace_dimension_y = aspect*imag_tspace_dimension_x;
@@ -2072,11 +2084,11 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
}
}
- // subtract the surface gradient from vNacc
+ /* subtract the surface gradient from vNacc */
for (c=0; c<3; c++) {
float vSurfGrad_compi = ntap_bump->sgn_det * (dHdx * ntap_bump->vR1[c] + dHdy * ntap_bump->vR2[c]);
ntap_bump->vNacc[c] -= vSurfGrad_compi;
- texres->nor[c] = ntap_bump->vNacc[c]; // copy
+ texres->nor[c] = ntap_bump->vNacc[c]; /* copy */
}
rgbnor |= TEX_NOR;
@@ -2148,9 +2160,6 @@ void do_material_tex(ShadeInput *shi, Render *re)
co= shi->lo; dx= shi->dxlo; dy= shi->dylo;
}
}
- else if (mtex->texco==TEXCO_STICKY) {
- co= shi->sticky; dx= shi->dxsticky; dy= shi->dysticky;
- }
else if (mtex->texco==TEXCO_OBJECT) {
Object *ob= mtex->object;
if (ob) {
@@ -2235,7 +2244,9 @@ void do_material_tex(ShadeInput *shi, Render *re)
dy[0]= 0.0f;
dy[1]= dy[2]= 0.0f;
}
- else continue; // can happen when texco defines disappear and it renders old files
+ else {
+ continue; /* can happen when texco defines disappear and it renders old files */
+ }
/* the pointer defines if bumping happens */
if (mtex->mapto & (MAP_NORM|MAP_WARP)) {
@@ -2319,7 +2330,7 @@ void do_material_tex(ShadeInput *shi, Render *re)
texres.nor[2]= f2*co_nor-f1*si;
}
}
- // warping, local space
+ /* warping, local space */
if (mtex->mapto & MAP_WARP) {
float *warpnor= texres.nor, warpnor_[3];
@@ -2335,11 +2346,11 @@ void do_material_tex(ShadeInput *shi, Render *re)
}
#if 0
if (mtex->texflag & MTEX_VIEWSPACE) {
- // rotate to global coords
+ /* rotate to global coords */
if (mtex->texco==TEXCO_ORCO || mtex->texco==TEXCO_UV) {
if (shi->vlr && shi->obr && shi->obr->ob) {
float len= normalize_v3(texres.nor);
- // can be optimized... (ton)
+ /* can be optimized... (ton) */
mul_mat3_m4_v3(shi->obr->ob->obmat, texres.nor);
mul_mat3_m4_v3(re->viewmat, texres.nor);
normalize_v3(texres.nor);
@@ -2373,8 +2384,8 @@ void do_material_tex(ShadeInput *shi, Render *re)
ImBuf *ibuf = BKE_image_get_ibuf(ima, &tex->iuser);
/* don't linearize float buffers, assumed to be linear */
- if (ibuf && !(ibuf->rect_float) && re->r.color_mgt_flag & R_COLOR_MANAGEMENT)
- srgb_to_linearrgb_v3_v3(tcol, tcol);
+ if (ibuf && !(ibuf->rect_float))
+ IMB_colormanagement_colorspace_to_scene_linear_v3(tcol, ibuf->rect_colorspace);
}
if (mtex->mapto & MAP_COL) {
@@ -2388,7 +2399,7 @@ void do_material_tex(ShadeInput *shi, Render *re)
if (mtex->mapto & MAP_COLMIR) {
float mirrfac= mtex->mirrfac*stencilTin;
- // exception for envmap only
+ /* exception for envmap only */
if (tex->type==TEX_ENVMAP && mtex->blendtype==MTEX_BLEND) {
fact= texres.tin*mirrfac;
facm= 1.0f- fact;
@@ -2441,7 +2452,9 @@ void do_material_tex(ShadeInput *shi, Render *re)
copy_v3_v3(nor, texres.nor);
- if (mtex->normapspace == MTEX_NSPACE_CAMERA);
+ if (mtex->normapspace == MTEX_NSPACE_CAMERA) {
+ /* pass */
+ }
else if (mtex->normapspace == MTEX_NSPACE_WORLD) {
mul_mat3_m4_v3(re->viewmat, nor);
}
@@ -2565,7 +2578,7 @@ void do_material_tex(ShadeInput *shi, Render *re)
else if (shi->alpha>1.0f) shi->alpha= 1.0f;
}
if (mtex->mapto & MAP_HAR) {
- float har; // have to map to 0-1
+ float har; /* have to map to 0-1 */
float hardfac= mtex->hardfac*stencilTin;
har= ((float)shi->har)/128.0f;
@@ -2605,7 +2618,7 @@ void do_material_tex(ShadeInput *shi, Render *re)
}
if ((use_compat_bump || use_ntap_bump || found_nmapping) && (shi->mat->mode & MA_TANGENT_V) != 0) {
const float fnegdot = -dot_v3v3(shi->vn, shi->tang);
- // apply Gram-Schmidt projection
+ /* apply Gram-Schmidt projection */
madd_v3_v3fl(shi->tang, shi->vn, fnegdot);
normalize_v3(shi->tang);
}
@@ -2665,12 +2678,14 @@ void do_volume_tex(ShadeInput *shi, const float *xyz, int mapto_flag, float col_
copy_v3_v3(co, xyz);
mul_m4_v3(re->viewinv, co);
}
- else continue; // can happen when texco defines disappear and it renders old files
+ else {
+ continue; /* can happen when texco defines disappear and it renders old files */
+ }
texres.nor= NULL;
- if (tex->type==TEX_IMAGE) {
- continue; /* not supported yet */
+ if (tex->type == TEX_IMAGE) {
+ continue; /* not supported yet */
//do_2d_mapping(mtex, texvec, NULL, NULL, dxt, dyt);
}
else {
@@ -2751,11 +2766,9 @@ void do_volume_tex(ShadeInput *shi, const float *xyz, int mapto_flag, float col_
/* stencil maps on the texture control slider, not texture intensity value */
/* convert RGB to intensity if intensity info isn't provided */
- if (!(rgbnor & TEX_INT)) {
- if (rgbnor & TEX_RGB) {
- if (texres.talpha) texres.tin = texres.ta;
- else texres.tin = rgb_to_grayscale(&texres.tr);
- }
+ if (rgbnor & TEX_RGB) {
+ if (texres.talpha) texres.tin = texres.ta;
+ else texres.tin = rgb_to_grayscale(&texres.tr);
}
if ((mapto_flag & MAP_EMISSION) && (mtex->mapto & MAP_EMISSION)) {
@@ -2883,8 +2896,8 @@ void do_halo_tex(HaloRen *har, float xn, float yn, float col_r[4])
ImBuf *ibuf = BKE_image_get_ibuf(ima, &mtex->tex->iuser);
/* don't linearize float buffers, assumed to be linear */
- if (ibuf && !(ibuf->rect_float) && R.r.color_mgt_flag & R_COLOR_MANAGEMENT)
- srgb_to_linearrgb_v3_v3(&texres.tr, &texres.tr);
+ if (ibuf && !(ibuf->rect_float))
+ IMB_colormanagement_colorspace_to_scene_linear_v3(&texres.tr, ibuf->rect_colorspace);
}
fact= texres.tin*mtex->colfac;
@@ -2918,10 +2931,14 @@ void do_halo_tex(HaloRen *har, float xn, float yn, float col_r[4])
}
if (mtex->mapto & MAP_ALPHA) {
if (rgb) {
- if (texres.talpha) texres.tin= texres.ta;
- else texres.tin = rgb_to_bw(&texres.tr);
+ if (texres.talpha) {
+ texres.tin = texres.ta;
+ }
+ else {
+ texres.tin = rgb_to_bw(&texres.tr);
+ }
}
-
+
col_r[3]*= texres.tin;
}
}
@@ -2976,7 +2993,7 @@ void do_sky_tex(const float rco[3], float lo[3], const float dxyview[2], float h
}
else {
/* this value has no angle, the vector is directly along the view.
- * avoide divide by zero and use a dummy value. */
+ * avoid divide by zero and use a dummy value. */
tempvec[0]= 1.0f;
tempvec[1]= 0.0;
tempvec[2]= 0.0;
@@ -3098,8 +3115,8 @@ void do_sky_tex(const float rco[3], float lo[3], const float dxyview[2], float h
ImBuf *ibuf = BKE_image_get_ibuf(ima, &tex->iuser);
/* don't linearize float buffers, assumed to be linear */
- if (ibuf && !(ibuf->rect_float) && R.r.color_mgt_flag & R_COLOR_MANAGEMENT)
- srgb_to_linearrgb_v3_v3(tcol, tcol);
+ if (ibuf && !(ibuf->rect_float))
+ IMB_colormanagement_colorspace_to_scene_linear_v3(tcol, ibuf->rect_colorspace);
}
if (mtex->mapto & WOMAP_HORIZ) {
@@ -3312,8 +3329,8 @@ void do_lamp_tex(LampRen *la, const float lavec[3], ShadeInput *shi, float col_r
ImBuf *ibuf = BKE_image_get_ibuf(ima, &tex->iuser);
/* don't linearize float buffers, assumed to be linear */
- if (ibuf && !(ibuf->rect_float) && R.r.color_mgt_flag & R_COLOR_MANAGEMENT)
- srgb_to_linearrgb_v3_v3(&texres.tr, &texres.tr);
+ if (ibuf && !(ibuf->rect_float))
+ IMB_colormanagement_colorspace_to_scene_linear_v3(&texres.tr, ibuf->rect_colorspace);
}
/* lamp colors were premultiplied with this */
@@ -3381,7 +3398,7 @@ int externtex(MTex *mtex, const float vec[3], float *tin, float *tr, float *tg,
void render_realtime_texture(ShadeInput *shi, Image *ima)
{
TexResult texr;
- static Tex imatex[BLENDER_MAX_THREADS]; // threadsafe
+ static Tex imatex[BLENDER_MAX_THREADS]; /* threadsafe */
static int firsttime= 1;
Tex *tex;
float texvec[3], dx[2], dy[2];
@@ -3409,7 +3426,7 @@ void render_realtime_texture(ShadeInput *shi, Image *ima)
texvec[0]= 0.5f+0.5f*suv->uv[0];
texvec[1]= 0.5f+0.5f*suv->uv[1];
- texvec[2] = 0.0f; // initalize it because imagewrap looks at it.
+ texvec[2] = 0.0f; /* initalize it because imagewrap looks at it. */
if (shi->osatex) {
dx[0]= 0.5f*suv->dxuv[0];
dx[1]= 0.5f*suv->dxuv[1];
@@ -3627,7 +3644,7 @@ void RE_sample_material_color(Material *mat, float color[3], float *alpha, const
float *uv1, *uv2, *uv3;
float l;
CustomData *data = &orcoDm->faceData;
- MTFace *tface = (MTFace*) data->layers[layer_index+i].data;
+ MTFace *tface = (MTFace *) data->layers[layer_index+i].data;
float uv[3];
/* point layer name from actual layer data */
shi.uv[i].name = data->layers[i].name;
diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c
index 03bea0122cf..285cd02c4ff 100644
--- a/source/blender/render/intern/source/rendercore.c
+++ b/source/blender/render/intern/source/rendercore.c
@@ -62,6 +62,7 @@
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
+#include "IMB_colormanagement.h"
/* local include */
#include "rayintersection.h"
@@ -107,11 +108,11 @@ void calc_view_vector(float *view, float x, float y)
}
/* move x and y to real viewplane coords */
- x= (x/(float)R.winx);
- view[0]= R.viewplane.xmin + x*(R.viewplane.xmax - R.viewplane.xmin);
+ x = (x / (float)R.winx);
+ view[0] = R.viewplane.xmin + x * BLI_rctf_size_x(&R.viewplane);
- y= (y/(float)R.winy);
- view[1]= R.viewplane.ymin + y*(R.viewplane.ymax - R.viewplane.ymin);
+ y = (y / (float)R.winy);
+ view[1] = R.viewplane.ymin + y * BLI_rctf_size_y(&R.viewplane);
// if (R.flag & R_SEC_FIELD) {
// if (R.r.mode & R_ODDFIELD) view[1]= (y+R.ystart)*R.ycor;
@@ -270,16 +271,26 @@ static void halo_tile(RenderPart *pa, RenderLayer *rl)
har= R.sortedhalos[a];
/* layer test, clip halo with y */
- if ((har->lay & lay)==0);
- else if (testrect.ymin > har->maxy);
- else if (testrect.ymax < har->miny);
+ if ((har->lay & lay) == 0) {
+ /* pass */
+ }
+ else if (testrect.ymin > har->maxy) {
+ /* pass */
+ }
+ else if (testrect.ymax < har->miny) {
+ /* pass */
+ }
else {
minx= floor(har->xs-har->rad);
maxx= ceil(har->xs+har->rad);
- if (testrect.xmin > maxx);
- else if (testrect.xmax < minx);
+ if (testrect.xmin > maxx) {
+ /* pass */
+ }
+ else if (testrect.xmax < minx) {
+ /* pass */
+ }
else {
minx= MAX2(minx, testrect.xmin);
@@ -979,7 +990,9 @@ static void convert_to_key_alpha(RenderPart *pa, RenderLayer *rl)
float *rectf= rlpp[sample]->rectf;
for (y= pa->rectx*pa->recty; y>0; y--, rectf+=4) {
- if (rectf[3] >= 1.0f);
+ if (rectf[3] >= 1.0f) {
+ /* pass */
+ }
else if (rectf[3] > 0.0f) {
rectf[0] /= rectf[3];
rectf[1] /= rectf[3];
@@ -989,6 +1002,30 @@ static void convert_to_key_alpha(RenderPart *pa, RenderLayer *rl)
}
}
+/* clamp alpha and RGB to 0..1 and 0..inf, can go outside due to filter */
+static void clamp_alpha_rgb_range(RenderPart *pa, RenderLayer *rl)
+{
+ RenderLayer *rlpp[RE_MAX_OSA];
+ int y, sample, totsample;
+
+ totsample= get_sample_layers(pa, rl, rlpp);
+
+ /* not for full sample, there we clamp after compositing */
+ if (totsample > 1)
+ return;
+
+ for (sample= 0; sample<totsample; sample++) {
+ float *rectf= rlpp[sample]->rectf;
+
+ for (y= pa->rectx*pa->recty; y>0; y--, rectf+=4) {
+ rectf[0] = MAX2(rectf[0], 0.0f);
+ rectf[1] = MAX2(rectf[1], 0.0f);
+ rectf[2] = MAX2(rectf[2], 0.0f);
+ CLAMP(rectf[3], 0.0f, 1.0f);
+ }
+ }
+}
+
/* adds only alpha values */
static void edge_enhance_tile(RenderPart *pa, float *rectf, int *rectz)
{
@@ -1269,6 +1306,9 @@ void zbufshadeDA_tile(RenderPart *pa)
if (rl->passflag & SCE_PASS_VECTOR)
reset_sky_speed(pa, rl);
+
+ /* clamp alpha to 0..1 range, can go outside due to filter */
+ clamp_alpha_rgb_range(pa, rl);
/* de-premul alpha */
if (R.r.alphamode & R_ALPHAKEY)
@@ -1541,8 +1581,7 @@ static void shade_sample_sss(ShadeSample *ssamp, Material *mat, ObjectInstanceRe
copy_v3_v3(shi->facenor, nor);
shade_input_set_viewco(shi, x, y, sx, sy, z);
- *area= len_v3(shi->dxco)*len_v3(shi->dyco);
- *area= MIN2(*area, 2.0f*orthoarea);
+ *area = minf(len_v3(shi->dxco) * len_v3(shi->dyco), 2.0f * orthoarea);
shade_input_set_uv(shi);
shade_input_set_normals(shi);
@@ -1806,16 +1845,23 @@ static void renderhalo_post(RenderResult *rr, float *rectf, HaloRen *har) /* pos
har->miny= miny= haloys - har->rad/R.ycor;
har->maxy= maxy= haloys + har->rad/R.ycor;
- if (maxy<0);
- else if (rr->recty<miny);
+ if (maxy < 0) {
+ /* pass */
+ }
+ else if (rr->recty < miny) {
+ /* pass */
+ }
else {
- minx= floor(haloxs-har->rad);
- maxx= ceil(haloxs+har->rad);
+ minx = floor(haloxs - har->rad);
+ maxx = ceil(haloxs + har->rad);
- if (maxx<0);
- else if (rr->rectx<minx);
+ if (maxx < 0) {
+ /* pass */
+ }
+ else if (rr->rectx < minx) {
+ /* pass */
+ }
else {
-
if (minx<0) minx= 0;
if (maxx>=rr->rectx) maxx= rr->rectx-1;
if (miny<0) miny= 0;
@@ -1994,6 +2040,8 @@ typedef struct BakeShade {
float dxco[3], dyco[3];
short *do_update;
+
+ struct ColorSpace *rect_colorspace;
} BakeShade;
static void bake_set_shade_input(ObjectInstanceRen *obi, VlakRen *vlr, ShadeInput *shi, int quad, int UNUSED(isect), int x, int y, float u, float v)
@@ -2070,7 +2118,9 @@ static void bake_shade(void *handle, Object *ob, ShadeInput *shi, int UNUSED(qua
copy_v3_v3(nor, shi->vn);
- if (R.r.bake_normal_space == R_BAKE_SPACE_CAMERA);
+ if (R.r.bake_normal_space == R_BAKE_SPACE_CAMERA) {
+ /* pass */
+ }
else if (R.r.bake_normal_space == R_BAKE_SPACE_TANGENT) {
float mat[3][3], imat[3][3];
@@ -2098,12 +2148,12 @@ static void bake_shade(void *handle, Object *ob, ShadeInput *shi, int UNUSED(qua
normalize_v3(nor); /* in case object has scaling */
- // The invert of the red channel is to make
- // the normal map compliant with the outside world.
- // It needs to be done because in Blender
- // the normal used in the renderer points inward. It is generated
- // this way in calc_vertexnormals(). Should this ever change
- // this negate must be removed.
+ /* The invert of the red channel is to make
+ * the normal map compliant with the outside world.
+ * It needs to be done because in Blender
+ * the normal used in the renderer points inward. It is generated
+ * this way in calc_vertexnormals(). Should this ever change
+ * this negate must be removed. */
shr.combined[0]= (-nor[0])/2.0f + 0.5f;
shr.combined[1]= nor[1]/2.0f + 0.5f;
shr.combined[2]= nor[2]/2.0f + 0.5f;
@@ -2169,8 +2219,12 @@ static void bake_shade(void *handle, Object *ob, ShadeInput *shi, int UNUSED(qua
else {
unsigned char *col= (unsigned char *)(bs->rect + bs->rectx*y + x);
- if (ELEM(bs->type, RE_BAKE_ALL, RE_BAKE_TEXTURE) && (R.r.color_mgt_flag & R_COLOR_MANAGEMENT)) {
- linearrgb_to_srgb_uchar3(col, shr.combined);
+ if (ELEM(bs->type, RE_BAKE_ALL, RE_BAKE_TEXTURE)) {
+ float rgb[3];
+
+ copy_v3_v3(rgb, shr.combined);
+ IMB_colormanagement_scene_linear_to_colorspace_v3(rgb, bs->rect_colorspace);
+ rgb_float_to_uchar(col, rgb);
}
else {
rgb_float_to_uchar(col, shr.combined);
@@ -2504,6 +2558,7 @@ static void shade_tface(BakeShade *bs)
bs->rectx= bs->ibuf->x;
bs->recty= bs->ibuf->y;
bs->rect= bs->ibuf->rect;
+ bs->rect_colorspace= bs->ibuf->rect_colorspace;
bs->rect_float= bs->ibuf->rect_float;
bs->quad= 0;
@@ -2614,8 +2669,6 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_up
ima->flag&= ~IMA_USED_FOR_RENDER;
if (ibuf) {
ibuf->userdata = NULL; /* use for masking if needed */
- if (ibuf->rect_float)
- ibuf->profile = IB_PROFILE_LINEAR_RGB;
}
}
diff --git a/source/blender/render/intern/source/renderdatabase.c b/source/blender/render/intern/source/renderdatabase.c
index 85d0c36be1a..172af3a6c6f 100644
--- a/source/blender/render/intern/source/renderdatabase.c
+++ b/source/blender/render/intern/source/renderdatabase.c
@@ -49,7 +49,7 @@
* - If the entry has no block allocated for it yet, memory is
* allocated.
*
- * The pointer to the correct entry is returned. Memory is guarateed
+ * The pointer to the correct entry is returned. Memory is guaranteed
* to exist (as long as the malloc does not break). Since guarded
* allocation is used, memory _must_ be available. Otherwise, an
* exit(0) would occur.
@@ -97,13 +97,10 @@
* the index */
/* NOTE! the hardcoded table size 256 is used still in code for going quickly over vertices/faces */
-
-#define RE_STICKY_ELEMS 2
#define RE_STRESS_ELEMS 1
#define RE_RAD_ELEMS 4
#define RE_STRAND_ELEMS 1
#define RE_TANGENT_ELEMS 3
-#define RE_STRESS_ELEMS 1
#define RE_WINSPEED_ELEMS 4
#define RE_MTFACE_ELEMS 1
#define RE_MCOL_ELEMS 4
@@ -114,21 +111,6 @@
#define RE_FACE_ELEMS 1
#define RE_NMAP_TANGENT_ELEMS 16
-float *RE_vertren_get_sticky(ObjectRen *obr, VertRen *ver, int verify)
-{
- float *sticky;
- int nr= ver->index>>8;
-
- sticky= obr->vertnodes[nr].sticky;
- if (sticky==NULL) {
- if (verify)
- sticky= obr->vertnodes[nr].sticky= MEM_mallocN(256*RE_STICKY_ELEMS*sizeof(float), "sticky table");
- else
- return NULL;
- }
- return sticky + (ver->index & 255)*RE_STICKY_ELEMS;
-}
-
float *RE_vertren_get_stress(ObjectRen *obr, VertRen *ver, int verify)
{
float *stress;
@@ -218,12 +200,7 @@ VertRen *RE_vertren_copy(ObjectRen *obr, VertRen *ver)
*v1= *ver;
v1->index= index;
-
- fp1= RE_vertren_get_sticky(obr, ver, 0);
- if (fp1) {
- fp2= RE_vertren_get_sticky(obr, v1, 1);
- memcpy(fp2, fp1, RE_STICKY_ELEMS*sizeof(float));
- }
+
fp1= RE_vertren_get_stress(obr, ver, 0);
if (fp1) {
fp2= RE_vertren_get_stress(obr, v1, 1);
@@ -740,8 +717,6 @@ void free_renderdata_vertnodes(VertTableNode *vertnodes)
if (vertnodes[a].rad)
MEM_freeN(vertnodes[a].rad);
- if (vertnodes[a].sticky)
- MEM_freeN(vertnodes[a].sticky);
if (vertnodes[a].strand)
MEM_freeN(vertnodes[a].strand);
if (vertnodes[a].tangent)
@@ -1001,10 +976,13 @@ HaloRen *RE_inithalo(Render *re, ObjectRen *obr, Material *ma,
if (ma->mtex[0]) {
- if ( (ma->mode & MA_HALOTEX) ) har->tex= 1;
- else if (har->mat->septex & (1<<0)); /* only 1 level textures */
+ if (ma->mode & MA_HALOTEX) {
+ har->tex = 1;
+ }
+ else if (har->mat->septex & (1 << 0)) {
+ /* only 1 level textures */
+ }
else {
-
mtex= ma->mtex[0];
copy_v3_v3(texvec, vec);
@@ -1309,11 +1287,11 @@ void project_renderdata(Render *re, void (*projectfunc)(const float *, float mat
/* the Zd value is still not really correct for pano */
- vec[2]-= har->hasize; /* z negative, otherwise it's clipped */
+ vec[2] -= har->hasize; /* z negative, otherwise it's clipped */
projectfunc(vec, re->winmat, hoco);
- zn= hoco[3];
- zn= fabs( (float)har->zs - 0x7FFFFF*(hoco[2]/zn));
- har->zd= CLAMPIS(zn, 0, INT_MAX);
+ zn = hoco[3];
+ zn = fabsf((float)har->zs - 0x7FFFFF * (hoco[2] / zn));
+ har->zd = CLAMPIS(zn, 0, INT_MAX);
}
diff --git a/source/blender/render/intern/source/shadbuf.c b/source/blender/render/intern/source/shadbuf.c
index 93587734e2b..bed3fb5f754 100644
--- a/source/blender/render/intern/source/shadbuf.c
+++ b/source/blender/render/intern/source/shadbuf.c
@@ -72,6 +72,9 @@
# define ACOMP 3
#endif
+#define RCT_SIZE_X(rct) ((rct)->xmax - (rct)->xmin)
+#define RCT_SIZE_Y(rct) ((rct)->ymax - (rct)->ymin)
+
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* defined in pipeline.c, is hardcopy of active dynamic allocated Render */
/* only to be used here in this file, it's for speed */
@@ -322,8 +325,8 @@ static void compress_deepshadowbuf(Render *re, ShadBuf *shb, APixstr *apixbuf, A
shsample= MEM_callocN(sizeof(ShadSampleBuf), "shad sample buf");
BLI_addtail(&shb->buffers, shsample);
- shsample->totbuf= MEM_callocN(sizeof(int)*size*size, "deeptotbuf");
- shsample->deepbuf= MEM_callocN(sizeof(DeepSample*)*size*size, "deepbuf");
+ shsample->totbuf = MEM_callocN(sizeof(int) * size * size, "deeptotbuf");
+ shsample->deepbuf = MEM_callocN(sizeof(DeepSample *) * size * size, "deepbuf");
ap= apixbuf;
aps= apixbufstrand;
@@ -848,7 +851,7 @@ void threaded_makeshadowbufs(Render *re)
int (*test_break)(void *);
/* count number of threads to use */
- if (G.rendering) {
+ if (G.is_rendering) {
for (lar=re->lampren.first; lar; lar= lar->next)
if (lar->shb)
totthread++;
@@ -1176,8 +1179,8 @@ float testshadowbuf(Render *re, ShadBuf *shb, const float co[3], const float dxc
dy[0]= xs1 - dy[0];
dy[1]= ys1 - dy[1];
- xres= fac*(fabs(dx[0]) + fabs(dy[0]));
- yres= fac*(fabs(dx[1]) + fabs(dy[1]));
+ xres = fac * (fabsf(dx[0]) + fabsf(dy[0]));
+ yres = fac * (fabsf(dx[1]) + fabsf(dy[1]));
if (xres<1.0f) xres= 1.0f;
if (yres<1.0f) yres= 1.0f;
@@ -1391,7 +1394,7 @@ float shadow_halo(LampRen *lar, const float p1[3], const float p2[3])
}
}
- labda= MIN2(labdax, labday);
+ labda = minf(labdax, labday);
if (labda==labdao || labda>=1.0f) break;
zf= zf1 + labda*(zf2-zf1);
@@ -1496,7 +1499,7 @@ static void bound_rectf(rctf *box, const float v1[2])
static void isb_bsp_split_init(ISBBranch *root, MemArena *mem, int level)
{
- /* if level > 0 we create new branches and go deeper*/
+ /* if level > 0 we create new branches and go deeper */
if (level > 0) {
ISBBranch *left, *right;
int i;
@@ -1506,10 +1509,10 @@ static void isb_bsp_split_init(ISBBranch *root, MemArena *mem, int level)
root->divider[1]= 0.5f*(root->box.ymin+root->box.ymax);
/* find best splitpoint */
- if (root->box.xmax-root->box.xmin > root->box.ymax-root->box.ymin)
- i= root->index= 0;
+ if (RCT_SIZE_X(&root->box) > RCT_SIZE_Y(&root->box))
+ i = root->index = 0;
else
- i= root->index= 1;
+ i = root->index = 1;
left= root->left= BLI_memarena_alloc(mem, sizeof(ISBBranch));
right= root->right= BLI_memarena_alloc(mem, sizeof(ISBBranch));
@@ -1551,19 +1554,19 @@ static void isb_bsp_split(ISBBranch *root, MemArena *mem)
root->divider[1]/= BSPMAX_SAMPLE;
/* find best splitpoint */
- if (root->box.xmax-root->box.xmin > root->box.ymax-root->box.ymin)
- i= root->index= 0;
+ if (RCT_SIZE_X(&root->box) > RCT_SIZE_Y(&root->box))
+ i = root->index = 0;
else
- i= root->index= 1;
+ i = root->index = 1;
/* new branches */
left= root->left= BLI_memarena_alloc(mem, sizeof(ISBBranch));
right= root->right= BLI_memarena_alloc(mem, sizeof(ISBBranch));
/* new sample array */
- left->samples= BLI_memarena_alloc(mem, BSPMAX_SAMPLE*sizeof(void *));
- right->samples= samples; // tmp
-
+ left->samples = BLI_memarena_alloc(mem, BSPMAX_SAMPLE*sizeof(void *));
+ right->samples = samples; /* tmp */
+
/* split samples */
for (a=BSPMAX_SAMPLE-1; a>=0; a--) {
int comp= 0;
@@ -1815,7 +1818,7 @@ static void isb_bsp_face_inside(ISBBranch *bspn, BSPFace *face)
return;
/* if face boundbox is outside of branch rect, give up */
- if (0==BLI_isect_rctf((rctf *)&face->box, (rctf *)&bspn->box, NULL))
+ if (0==BLI_rctf_isect((rctf *)&face->box, (rctf *)&bspn->box, NULL))
return;
/* test all points inside branch */
@@ -1824,7 +1827,7 @@ static void isb_bsp_face_inside(ISBBranch *bspn, BSPFace *face)
if ((samp->facenr!=face->facenr || samp->obi!=face->obi) && samp->shadfac) {
if (face->box.zmin < samp->zco[2]) {
- if (BLI_in_rctf((rctf *)&face->box, samp->zco[0], samp->zco[1])) {
+ if (BLI_rctf_isect_pt_v((rctf *)&face->box, samp->zco)) {
int inshadow= 0;
if (face->type) {
diff --git a/source/blender/render/intern/source/shadeinput.c b/source/blender/render/intern/source/shadeinput.c
index f9b0de5b87d..36e9f4cb785 100644
--- a/source/blender/render/intern/source/shadeinput.c
+++ b/source/blender/render/intern/source/shadeinput.c
@@ -44,6 +44,7 @@
#include "DNA_material_types.h"
#include "BKE_colortools.h"
+#include "BKE_scene.h"
#include "BKE_node.h"
@@ -86,19 +87,13 @@ extern struct Render R;
*
*/
-#define VECADDISFAC(v1,v3,fac) { \
- *(v1 + 0) += *(v3 + 0) * (fac); \
- *(v1 + 1) += *(v3 + 1) * (fac); \
- *(v1 + 2) += *(v3 + 2) * (fac); \
-} (void)0
-
/* initialize material variables in shadeinput,
* doing inverse gamma correction where applicable */
void shade_input_init_material(ShadeInput *shi)
{
/* note, keep this synced with render_types.h */
- memcpy(&shi->r, &shi->mat->r, 23*sizeof(float));
- shi->har= shi->mat->har;
+ memcpy(&shi->r, &shi->mat->r, 23 * sizeof(float));
+ shi->har = shi->mat->har;
}
/* also used as callback for nodes */
@@ -106,44 +101,44 @@ void shade_input_init_material(ShadeInput *shi)
void shade_material_loop(ShadeInput *shi, ShadeResult *shr)
{
- shade_lamp_loop(shi, shr); /* clears shr */
+ shade_lamp_loop(shi, shr); /* clears shr */
- if (shi->translucency!=0.0f) {
+ if (shi->translucency != 0.0f) {
ShadeResult shr_t;
- float fac= shi->translucency;
+ float fac = shi->translucency;
shade_input_init_material(shi);
negate_v3_v3(shi->vn, shi->vno);
negate_v3(shi->facenor);
- shi->depth++; /* hack to get real shadow now */
+ shi->depth++; /* hack to get real shadow now */
shade_lamp_loop(shi, &shr_t);
shi->depth--;
/* a couple of passes */
- VECADDISFAC(shr->combined, shr_t.combined, fac);
+ madd_v3_v3fl(shr->combined, shr_t.combined, fac);
if (shi->passflag & SCE_PASS_SPEC)
- VECADDISFAC(shr->spec, shr_t.spec, fac);
+ madd_v3_v3fl(shr->spec, shr_t.spec, fac);
if (shi->passflag & SCE_PASS_DIFFUSE)
- VECADDISFAC(shr->diff, shr_t.diff, fac);
+ madd_v3_v3fl(shr->diff, shr_t.diff, fac);
if (shi->passflag & SCE_PASS_SHADOW)
- VECADDISFAC(shr->shad, shr_t.shad, fac);
+ madd_v3_v3fl(shr->shad, shr_t.shad, fac);
negate_v3(shi->vn);
negate_v3(shi->facenor);
}
/* depth >= 1 when ray-shading */
- if (shi->depth==0 || shi->volume_depth > 0) {
+ if (shi->depth == 0 || shi->volume_depth > 0) {
if (R.r.mode & R_RAYTRACE) {
- if (shi->ray_mirror!=0.0f || ((shi->mode & MA_TRANSP) && (shi->mode & MA_RAYTRANSP) && shr->alpha!=1.0f)) {
+ if (shi->ray_mirror != 0.0f || ((shi->mode & MA_TRANSP) && (shi->mode & MA_RAYTRANSP) && shr->alpha != 1.0f)) {
/* ray trace works on combined, but gives pass info */
ray_trace(shi, shr);
}
}
/* disable adding of sky for raytransp */
if ((shi->mode & MA_TRANSP) && (shi->mode & MA_RAYTRANSP))
- if ((shi->layflag & SCE_LAY_SKY) && (R.r.alphamode==R_ADDSKY))
- shr->alpha= 1.0f;
+ if ((shi->layflag & SCE_LAY_SKY) && (R.r.alphamode == R_ADDSKY))
+ shr->alpha = 1.0f;
}
if (R.r.mode & R_RAYTRACE) {
@@ -181,38 +176,38 @@ void shade_input_do_shade(ShadeInput *shi, ShadeResult *shr)
}
/* copy additional passes */
- if (shi->passflag & (SCE_PASS_VECTOR|SCE_PASS_NORMAL)) {
+ if (shi->passflag & (SCE_PASS_VECTOR | SCE_PASS_NORMAL)) {
copy_v4_v4(shr->winspeed, shi->winspeed);
copy_v3_v3(shr->nor, shi->vn);
}
/* MIST */
- if ((shi->passflag & SCE_PASS_MIST) || ((R.wrld.mode & WO_MIST) && (shi->mat->mode & MA_NOMIST)==0)) {
+ if ((shi->passflag & SCE_PASS_MIST) || ((R.wrld.mode & WO_MIST) && (shi->mat->mode & MA_NOMIST) == 0)) {
if (R.r.mode & R_ORTHO)
- shr->mist= mistfactor(-shi->co[2], shi->co);
+ shr->mist = mistfactor(-shi->co[2], shi->co);
else
- shr->mist= mistfactor(len_v3(shi->co), shi->co);
+ shr->mist = mistfactor(len_v3(shi->co), shi->co);
}
- else shr->mist= 0.0f;
+ else shr->mist = 0.0f;
- if ((R.wrld.mode & WO_MIST) && (shi->mat->mode & MA_NOMIST)==0 ) {
- alpha= shr->mist;
+ if ((R.wrld.mode & WO_MIST) && (shi->mat->mode & MA_NOMIST) == 0) {
+ alpha = shr->mist;
}
- else alpha= 1.0f;
+ else alpha = 1.0f;
/* add mist and premul color */
- if (shr->alpha!=1.0f || alpha!=1.0f) {
- float fac= alpha*(shr->alpha);
- shr->combined[3]= fac;
+ if (shr->alpha != 1.0f || alpha != 1.0f) {
+ float fac = alpha * (shr->alpha);
+ shr->combined[3] = fac;
- if (shi->mat->material_type!= MA_TYPE_VOLUME)
+ if (shi->mat->material_type != MA_TYPE_VOLUME)
mul_v3_fl(shr->combined, fac);
}
else
- shr->combined[3]= 1.0f;
+ shr->combined[3] = 1.0f;
/* add z */
- shr->z= -shi->co[2];
+ shr->z = -shi->co[2];
/* RAYHITS */
#if 0
@@ -258,28 +253,28 @@ void vlr_set_uv_indices(VlakRen *vlr, int *i1, int *i2, int *i3)
/* indices 0 1 2 3 only */
void shade_input_set_triangle_i(ShadeInput *shi, ObjectInstanceRen *obi, VlakRen *vlr, short i1, short i2, short i3)
{
- VertRen **vpp= &vlr->v1;
+ VertRen **vpp = &vlr->v1;
- shi->vlr= vlr;
- shi->obi= obi;
- shi->obr= obi->obr;
+ shi->vlr = vlr;
+ shi->obi = obi;
+ shi->obr = obi->obr;
- shi->v1= vpp[i1];
- shi->v2= vpp[i2];
- shi->v3= vpp[i3];
-
- shi->i1= i1;
- shi->i2= i2;
- shi->i3= i3;
+ shi->v1 = vpp[i1];
+ shi->v2 = vpp[i2];
+ shi->v3 = vpp[i3];
+
+ shi->i1 = i1;
+ shi->i2 = i2;
+ shi->i3 = i3;
/* note, shi->mat is set in node shaders */
- shi->mat= shi->mat_override?shi->mat_override:vlr->mat;
+ shi->mat = shi->mat_override ? shi->mat_override : vlr->mat;
- shi->osatex= (shi->mat->texco & TEXCO_OSA);
- shi->mode= shi->mat->mode_l; /* or-ed result for all nodes */
+ shi->osatex = (shi->mat->texco & TEXCO_OSA);
+ shi->mode = shi->mat->mode_l; /* or-ed result for all nodes */
/* facenormal copy, can get flipped */
- shi->flippednor= 0;
+ shi->flippednor = 0;
RE_vlakren_get_normal(&R, obi, vlr, shi->facenor);
/* calculate vertexnormals */
@@ -303,12 +298,12 @@ void shade_input_set_triangle_i(ShadeInput *shi, ObjectInstanceRen *obi, VlakRen
/* copy data from face to ShadeInput, scanline case */
void shade_input_set_triangle(ShadeInput *shi, volatile int obi, volatile int facenr, int UNUSED(normal_flip))
{
- if (facenr>0) {
- shi->obi= &R.objectinstance[obi];
- shi->obr= shi->obi->obr;
- shi->facenr= (facenr-1) & RE_QUAD_MASK;
- if ( shi->facenr < shi->obr->totvlak ) {
- VlakRen *vlr= RE_findOrAddVlak(shi->obr, shi->facenr);
+ if (facenr > 0) {
+ shi->obi = &R.objectinstance[obi];
+ shi->obr = shi->obi->obr;
+ shi->facenr = (facenr - 1) & RE_QUAD_MASK;
+ if (shi->facenr < shi->obr->totvlak) {
+ VlakRen *vlr = RE_findOrAddVlak(shi->obr, shi->facenr);
if (facenr & RE_QUAD_OFFS)
shade_input_set_triangle_i(shi, shi->obi, vlr, 0, 2, 3);
@@ -316,10 +311,10 @@ void shade_input_set_triangle(ShadeInput *shi, volatile int obi, volatile int fa
shade_input_set_triangle_i(shi, shi->obi, vlr, 0, 1, 2);
}
else
- shi->vlr= NULL; /* general signal we got sky */
+ shi->vlr = NULL; /* general signal we got sky */
}
else
- shi->vlr= NULL; /* general signal we got sky */
+ shi->vlr = NULL; /* general signal we got sky */
}
/* full osa case: copy static info */
@@ -333,18 +328,18 @@ void shade_input_copy_triangle(ShadeInput *shi, ShadeInput *from)
void shade_input_set_strand(ShadeInput *shi, StrandRen *strand, StrandPoint *spoint)
{
/* note, shi->mat is set in node shaders */
- shi->mat= shi->mat_override? shi->mat_override: strand->buffer->ma;
+ shi->mat = shi->mat_override ? shi->mat_override : strand->buffer->ma;
- shi->osatex= (shi->mat->texco & TEXCO_OSA);
- shi->mode= shi->mat->mode_l; /* or-ed result for all nodes */
+ shi->osatex = (shi->mat->texco & TEXCO_OSA);
+ shi->mode = shi->mat->mode_l; /* or-ed result for all nodes */
/* shade_input_set_viewco equivalent */
copy_v3_v3(shi->co, spoint->co);
copy_v3_v3(shi->view, shi->co);
normalize_v3(shi->view);
- shi->xs= (int)spoint->x;
- shi->ys= (int)spoint->y;
+ shi->xs = (int)spoint->x;
+ shi->ys = (int)spoint->y;
if (shi->osatex || (R.r.mode & R_SHADOW)) {
copy_v3_v3(shi->dxco, spoint->dtco);
@@ -376,27 +371,27 @@ void shade_input_set_strand(ShadeInput *shi, StrandRen *strand, StrandPoint *spo
void shade_input_set_strand_texco(ShadeInput *shi, StrandRen *strand, StrandVert *svert, StrandPoint *spoint)
{
- StrandBuffer *strandbuf= strand->buffer;
- ObjectRen *obr= strandbuf->obr;
+ StrandBuffer *strandbuf = strand->buffer;
+ ObjectRen *obr = strandbuf->obr;
StrandVert *sv;
- int mode= shi->mode; /* or-ed result for all nodes */
- short texco= shi->mat->texco;
+ int mode = shi->mode; /* or-ed result for all nodes */
+ short texco = shi->mat->texco;
if ((shi->mat->texco & TEXCO_REFL)) {
/* shi->dxview, shi->dyview, not supported */
}
- if (shi->osatex && (texco & (TEXCO_NORM|TEXCO_REFL))) {
+ if (shi->osatex && (texco & (TEXCO_NORM | TEXCO_REFL))) {
/* not supported */
}
- if (mode & (MA_TANGENT_V|MA_NORMAP_TANG)) {
+ if (mode & (MA_TANGENT_V | MA_NORMAP_TANG)) {
copy_v3_v3(shi->tang, spoint->tan);
copy_v3_v3(shi->nmaptang, spoint->tan);
}
if (mode & MA_STR_SURFDIFF) {
- float *surfnor= RE_strandren_get_surfnor(obr, strand, 0);
+ float *surfnor = RE_strandren_get_surfnor(obr, strand, 0);
if (surfnor)
copy_v3_v3(shi->surfnor, surfnor);
@@ -404,21 +399,21 @@ void shade_input_set_strand_texco(ShadeInput *shi, StrandRen *strand, StrandVert
copy_v3_v3(shi->surfnor, shi->vn);
if (shi->mat->strand_surfnor > 0.0f) {
- shi->surfdist= 0.0f;
- for (sv=strand->vert; sv!=svert; sv++)
- shi->surfdist+=len_v3v3(sv->co, (sv+1)->co);
- shi->surfdist += spoint->t*len_v3v3(sv->co, (sv+1)->co);
+ shi->surfdist = 0.0f;
+ for (sv = strand->vert; sv != svert; sv++)
+ shi->surfdist += len_v3v3(sv->co, (sv + 1)->co);
+ shi->surfdist += spoint->t * len_v3v3(sv->co, (sv + 1)->co);
}
}
if (R.r.mode & R_SPEED) {
float *speed;
- speed= RE_strandren_get_winspeed(shi->obi, strand, 0);
+ speed = RE_strandren_get_winspeed(shi->obi, strand, 0);
if (speed)
copy_v4_v4(shi->winspeed, speed);
else
- shi->winspeed[0]= shi->winspeed[1]= shi->winspeed[2]= shi->winspeed[3]= 0.0f;
+ shi->winspeed[0] = shi->winspeed[1] = shi->winspeed[2] = shi->winspeed[3] = 0.0f;
}
/* shade_input_set_shade_texco equivalent */
@@ -441,109 +436,109 @@ void shade_input_set_strand_texco(ShadeInput *shi, StrandRen *strand, StrandVert
}
if (texco & TEXCO_STRAND) {
- shi->strandco= spoint->strandco;
+ shi->strandco = spoint->strandco;
if (shi->osatex) {
- shi->dxstrand= spoint->dtstrandco;
- shi->dystrand= 0.0f;
+ shi->dxstrand = spoint->dtstrandco;
+ shi->dystrand = 0.0f;
}
}
- if ((texco & TEXCO_UV) || (mode & (MA_VERTEXCOL|MA_VERTEXCOLP|MA_FACETEXTURE))) {
+ if ((texco & TEXCO_UV) || (mode & (MA_VERTEXCOL | MA_VERTEXCOLP | MA_FACETEXTURE))) {
MCol *mcol;
float *uv;
char *name;
int i;
- shi->totuv= 0;
- shi->totcol= 0;
- shi->actuv= obr->actmtface;
- shi->actcol= obr->actmcol;
+ shi->totuv = 0;
+ shi->totcol = 0;
+ shi->actuv = obr->actmtface;
+ shi->actcol = obr->actmcol;
- if (mode & (MA_VERTEXCOL|MA_VERTEXCOLP)) {
- for (i=0; (mcol=RE_strandren_get_mcol(obr, strand, i, &name, 0)); i++) {
- ShadeInputCol *scol= &shi->col[i];
- char *cp= (char*)mcol;
+ if (mode & (MA_VERTEXCOL | MA_VERTEXCOLP)) {
+ for (i = 0; (mcol = RE_strandren_get_mcol(obr, strand, i, &name, 0)); i++) {
+ ShadeInputCol *scol = &shi->col[i];
+ char *cp = (char *)mcol;
shi->totcol++;
- scol->name= name;
+ scol->name = name;
- scol->col[0]= cp[3]/255.0f;
- scol->col[1]= cp[2]/255.0f;
- scol->col[2]= cp[1]/255.0f;
- scol->col[3]= cp[0]/255.0f;
+ scol->col[0] = cp[3] / 255.0f;
+ scol->col[1] = cp[2] / 255.0f;
+ scol->col[2] = cp[1] / 255.0f;
+ scol->col[3] = cp[0] / 255.0f;
}
if (shi->totcol) {
- shi->vcol[0]= shi->col[shi->actcol].col[0];
- shi->vcol[1]= shi->col[shi->actcol].col[1];
- shi->vcol[2]= shi->col[shi->actcol].col[2];
- shi->vcol[3]= shi->col[shi->actcol].col[3];
+ shi->vcol[0] = shi->col[shi->actcol].col[0];
+ shi->vcol[1] = shi->col[shi->actcol].col[1];
+ shi->vcol[2] = shi->col[shi->actcol].col[2];
+ shi->vcol[3] = shi->col[shi->actcol].col[3];
}
else {
- shi->vcol[0]= 0.0f;
- shi->vcol[1]= 0.0f;
- shi->vcol[2]= 0.0f;
- shi->vcol[3]= 0.0f;
+ shi->vcol[0] = 0.0f;
+ shi->vcol[1] = 0.0f;
+ shi->vcol[2] = 0.0f;
+ shi->vcol[3] = 0.0f;
}
}
- for (i=0; (uv=RE_strandren_get_uv(obr, strand, i, &name, 0)); i++) {
- ShadeInputUV *suv= &shi->uv[i];
+ for (i = 0; (uv = RE_strandren_get_uv(obr, strand, i, &name, 0)); i++) {
+ ShadeInputUV *suv = &shi->uv[i];
shi->totuv++;
- suv->name= name;
+ suv->name = name;
if (strandbuf->overrideuv == i) {
- suv->uv[0]= -1.0f;
- suv->uv[1]= spoint->strandco;
- suv->uv[2]= 0.0f;
+ suv->uv[0] = -1.0f;
+ suv->uv[1] = spoint->strandco;
+ suv->uv[2] = 0.0f;
}
else {
- suv->uv[0]= -1.0f + 2.0f*uv[0];
- suv->uv[1]= -1.0f + 2.0f*uv[1];
- suv->uv[2]= 0.0f; /* texture.c assumes there are 3 coords */
+ suv->uv[0] = -1.0f + 2.0f * uv[0];
+ suv->uv[1] = -1.0f + 2.0f * uv[1];
+ suv->uv[2] = 0.0f; /* texture.c assumes there are 3 coords */
}
if (shi->osatex) {
- suv->dxuv[0]= 0.0f;
- suv->dxuv[1]= 0.0f;
- suv->dyuv[0]= 0.0f;
- suv->dyuv[1]= 0.0f;
+ suv->dxuv[0] = 0.0f;
+ suv->dxuv[1] = 0.0f;
+ suv->dyuv[0] = 0.0f;
+ suv->dyuv[1] = 0.0f;
}
- if ((mode & MA_FACETEXTURE) && i==obr->actmtface) {
- if ((mode & (MA_VERTEXCOL|MA_VERTEXCOLP))==0) {
- shi->vcol[0]= 1.0f;
- shi->vcol[1]= 1.0f;
- shi->vcol[2]= 1.0f;
- shi->vcol[3]= 1.0f;
+ if ((mode & MA_FACETEXTURE) && i == obr->actmtface) {
+ if ((mode & (MA_VERTEXCOL | MA_VERTEXCOLP)) == 0) {
+ shi->vcol[0] = 1.0f;
+ shi->vcol[1] = 1.0f;
+ shi->vcol[2] = 1.0f;
+ shi->vcol[3] = 1.0f;
}
}
}
if (shi->totuv == 0) {
- ShadeInputUV *suv= &shi->uv[0];
+ ShadeInputUV *suv = &shi->uv[0];
- suv->uv[0]= 0.0f;
- suv->uv[1]= spoint->strandco;
- suv->uv[2]= 0.0f; /* texture.c assumes there are 3 coords */
+ suv->uv[0] = 0.0f;
+ suv->uv[1] = spoint->strandco;
+ suv->uv[2] = 0.0f; /* texture.c assumes there are 3 coords */
if (mode & MA_FACETEXTURE) {
/* no tface? set at 1.0f */
- shi->vcol[0]= 1.0f;
- shi->vcol[1]= 1.0f;
- shi->vcol[2]= 1.0f;
- shi->vcol[3]= 1.0f;
+ shi->vcol[0] = 1.0f;
+ shi->vcol[1] = 1.0f;
+ shi->vcol[2] = 1.0f;
+ shi->vcol[3] = 1.0f;
}
}
}
if (texco & TEXCO_NORM) {
- shi->orn[0]= -shi->vn[0];
- shi->orn[1]= -shi->vn[1];
- shi->orn[2]= -shi->vn[2];
+ shi->orn[0] = -shi->vn[0];
+ shi->orn[1] = -shi->vn[1];
+ shi->orn[2] = -shi->vn[2];
}
if (texco & TEXCO_STRESS) {
@@ -551,37 +546,33 @@ void shade_input_set_strand_texco(ShadeInput *shi, StrandRen *strand, StrandVert
}
if (texco & TEXCO_TANGENT) {
- if ((mode & MA_TANGENT_V)==0) {
+ if ((mode & MA_TANGENT_V) == 0) {
/* just prevent surprises */
- shi->tang[0]= shi->tang[1]= shi->tang[2]= 0.0f;
- shi->nmaptang[0]= shi->nmaptang[1]= shi->nmaptang[2]= 0.0f;
+ shi->tang[0] = shi->tang[1] = shi->tang[2] = 0.0f;
+ shi->nmaptang[0] = shi->nmaptang[1] = shi->nmaptang[2] = 0.0f;
}
}
}
/* this only avalailable for scanline renders */
- if (shi->depth==0) {
+ if (shi->depth == 0) {
if (texco & TEXCO_WINDOW) {
- shi->winco[0]= -1.0f + 2.0f*spoint->x/(float)R.winx;
- shi->winco[1]= -1.0f + 2.0f*spoint->y/(float)R.winy;
- shi->winco[2]= 0.0f;
+ shi->winco[0] = -1.0f + 2.0f * spoint->x / (float)R.winx;
+ shi->winco[1] = -1.0f + 2.0f * spoint->y / (float)R.winy;
+ shi->winco[2] = 0.0f;
/* not supported */
if (shi->osatex) {
- shi->dxwin[0]= 0.0f;
- shi->dywin[1]= 0.0f;
- shi->dxwin[0]= 0.0f;
- shi->dywin[1]= 0.0f;
+ shi->dxwin[0] = 0.0f;
+ shi->dywin[1] = 0.0f;
+ shi->dxwin[0] = 0.0f;
+ shi->dywin[1] = 0.0f;
}
}
-
- if (texco & TEXCO_STICKY) {
- /* not supported */
- }
}
if (shi->do_manage) {
- if (mode & (MA_VERTEXCOL|MA_VERTEXCOLP|MA_FACETEXTURE)) {
+ if (mode & (MA_VERTEXCOL | MA_VERTEXCOLP | MA_FACETEXTURE)) {
srgb_to_linearrgb_v3_v3(shi->vcol, shi->vcol);
}
}
@@ -615,37 +606,37 @@ void shade_input_calc_viewco(ShadeInput *shi, float x, float y, float z, float v
/* ortho viewplane cannot intersect using view vector originating in (0,0,0) */
if (R.r.mode & R_ORTHO) {
/* x and y 3d coordinate can be derived from pixel coord and winmat */
- float fx= 2.0f/(R.winx*R.winmat[0][0]);
- float fy= 2.0f/(R.winy*R.winmat[1][1]);
+ float fx = 2.0f / (R.winx * R.winmat[0][0]);
+ float fy = 2.0f / (R.winy * R.winmat[1][1]);
- co[0]= (x - 0.5f*R.winx)*fx - R.winmat[3][0]/R.winmat[0][0];
- co[1]= (y - 0.5f*R.winy)*fy - R.winmat[3][1]/R.winmat[1][1];
+ co[0] = (x - 0.5f * R.winx) * fx - R.winmat[3][0] / R.winmat[0][0];
+ co[1] = (y - 0.5f * R.winy) * fy - R.winmat[3][1] / R.winmat[1][1];
/* using a*x + b*y + c*z = d equation, (a b c) is normal */
- if (shi->facenor[2]!=0.0f)
- co[2]= (dface - shi->facenor[0]*co[0] - shi->facenor[1]*co[1])/shi->facenor[2];
+ if (shi->facenor[2] != 0.0f)
+ co[2] = (dface - shi->facenor[0] * co[0] - shi->facenor[1] * co[1]) / shi->facenor[2];
else
- co[2]= 0.0f;
+ co[2] = 0.0f;
if (dxco && dyco) {
- dxco[0]= fx;
- dxco[1]= 0.0f;
- if (shi->facenor[2]!=0.0f)
- dxco[2]= -(shi->facenor[0]*fx)/shi->facenor[2];
+ dxco[0] = fx;
+ dxco[1] = 0.0f;
+ if (shi->facenor[2] != 0.0f)
+ dxco[2] = -(shi->facenor[0] * fx) / shi->facenor[2];
else
- dxco[2]= 0.0f;
+ dxco[2] = 0.0f;
- dyco[0]= 0.0f;
- dyco[1]= fy;
- if (shi->facenor[2]!=0.0f)
- dyco[2]= -(shi->facenor[1]*fy)/shi->facenor[2];
+ dyco[0] = 0.0f;
+ dyco[1] = fy;
+ if (shi->facenor[2] != 0.0f)
+ dyco[2] = -(shi->facenor[1] * fy) / shi->facenor[2];
else
- dyco[2]= 0.0f;
+ dyco[2] = 0.0f;
if (dxyview) {
- if (co[2]!=0.0f) fac= 1.0f/co[2]; else fac= 0.0f;
- dxyview[0]= -R.viewdx*fac;
- dxyview[1]= -R.viewdy*fac;
+ if (co[2] != 0.0f) fac = 1.0f / co[2]; else fac = 0.0f;
+ dxyview[0] = -R.viewdx * fac;
+ dxyview[1] = -R.viewdy * fac;
}
}
}
@@ -653,30 +644,30 @@ void shade_input_calc_viewco(ShadeInput *shi, float x, float y, float z, float v
float div;
div = dot_v3v3(shi->facenor, view);
- if (div!=0.0f) fac= dface/div;
- else fac= 0.0f;
+ if (div != 0.0f) fac = dface / div;
+ else fac = 0.0f;
- co[0]= fac*view[0];
- co[1]= fac*view[1];
- co[2]= fac*view[2];
+ co[0] = fac * view[0];
+ co[1] = fac * view[1];
+ co[2] = fac * view[2];
/* pixel dx/dy for render coord */
if (dxco && dyco) {
- float u= dface/(div - R.viewdx*shi->facenor[0]);
- float v= dface/(div - R.viewdy*shi->facenor[1]);
+ float u = dface / (div - R.viewdx * shi->facenor[0]);
+ float v = dface / (div - R.viewdy * shi->facenor[1]);
- dxco[0]= co[0]- (view[0]-R.viewdx)*u;
- dxco[1]= co[1]- (view[1])*u;
- dxco[2]= co[2]- (view[2])*u;
-
- dyco[0]= co[0]- (view[0])*v;
- dyco[1]= co[1]- (view[1]-R.viewdy)*v;
- dyco[2]= co[2]- (view[2])*v;
+ dxco[0] = co[0] - (view[0] - R.viewdx) * u;
+ dxco[1] = co[1] - (view[1]) * u;
+ dxco[2] = co[2] - (view[2]) * u;
+
+ dyco[0] = co[0] - (view[0]) * v;
+ dyco[1] = co[1] - (view[1] - R.viewdy) * v;
+ dyco[2] = co[2] - (view[2]) * v;
if (dxyview) {
- if (fac!=0.0f) fac= 1.0f/fac;
- dxyview[0]= -R.viewdx*fac;
- dxyview[1]= -R.viewdy*fac;
+ if (fac != 0.0f) fac = 1.0f / fac;
+ dxyview[0] = -R.viewdx * fac;
+ dxyview[1] = -R.viewdy * fac;
}
}
}
@@ -693,24 +684,24 @@ void shade_input_calc_viewco(ShadeInput *shi, float x, float y, float z, float v
/* from scanline pixel coordinates to 3d coordinates, requires set_triangle */
void shade_input_set_viewco(ShadeInput *shi, float x, float y, float xs, float ys, float z)
{
- float *dxyview= NULL, *dxco= NULL, *dyco= NULL;
+ float *dxyview = NULL, *dxco = NULL, *dyco = NULL;
/* currently in use for dithering (soft shadow), node preview, irregular shad */
- shi->xs= (int)xs;
- shi->ys= (int)ys;
+ shi->xs = (int)xs;
+ shi->ys = (int)ys;
/* original scanline coordinate without jitter */
- shi->scanco[0]= x;
- shi->scanco[1]= y;
- shi->scanco[2]= z;
+ shi->scanco[0] = x;
+ shi->scanco[1] = y;
+ shi->scanco[2] = z;
/* check if we need derivatives */
if (shi->osatex || (R.r.mode & R_SHADOW)) {
- dxco= shi->dxco;
- dyco= shi->dyco;
+ dxco = shi->dxco;
+ dyco = shi->dyco;
if ((shi->mat->texco & TEXCO_REFL))
- dxyview= &shi->dxview;
+ dxyview = &shi->dxview;
}
shade_input_calc_viewco(shi, xs, ys, z, shi->view, dxyview, shi->co, dxco, dyco);
@@ -719,7 +710,7 @@ void shade_input_set_viewco(ShadeInput *shi, float x, float y, float xs, float y
/* calculate U and V, for scanline (silly render face u and v are in range -1 to 0) */
void shade_input_set_uv(ShadeInput *shi)
{
- VlakRen *vlr= shi->vlr;
+ VlakRen *vlr = shi->vlr;
if ((vlr->flag & R_SMOOTH) || (shi->mat->texco & NEED_UV) || (shi->passflag & SCE_PASS_UV)) {
float v1[3], v2[3], v3[3];
@@ -735,25 +726,25 @@ void shade_input_set_uv(ShadeInput *shi)
}
/* exception case for wire render of edge */
- if (vlr->v2==vlr->v3) {
+ if (vlr->v2 == vlr->v3) {
float lend, lenc;
- lend= len_v3v3(v2, v1);
- lenc= len_v3v3(shi->co, v1);
+ lend = len_v3v3(v2, v1);
+ lenc = len_v3v3(shi->co, v1);
- if (lend==0.0f) {
- shi->u=shi->v= 0.0f;
+ if (lend == 0.0f) {
+ shi->u = shi->v = 0.0f;
}
else {
- shi->u= - (1.0f - lenc/lend);
- shi->v= 0.0f;
+ shi->u = -(1.0f - lenc / lend);
+ shi->v = 0.0f;
}
if (shi->osatex) {
- shi->dx_u= 0.0f;
- shi->dx_v= 0.0f;
- shi->dy_u= 0.0f;
- shi->dy_v= 0.0f;
+ shi->dx_u = 0.0f;
+ shi->dx_v = 0.0f;
+ shi->dy_u = 0.0f;
+ shi->dy_v = 0.0f;
}
}
else {
@@ -765,21 +756,21 @@ void shade_input_set_uv(ShadeInput *shi)
axis_dominant_v3(&axis1, &axis2, shi->facenor);
/* compute u,v and derivatives */
- t00= v3[axis1]-v1[axis1]; t01= v3[axis2]-v1[axis2];
- t10= v3[axis1]-v2[axis1]; t11= v3[axis2]-v2[axis2];
+ t00 = v3[axis1] - v1[axis1]; t01 = v3[axis2] - v1[axis2];
+ t10 = v3[axis1] - v2[axis1]; t11 = v3[axis2] - v2[axis2];
- detsh= (t00*t11-t10*t01);
- detsh= (detsh != 0.0f)? 1.0f/detsh: 0.0f;
- t00*= detsh; t01*=detsh;
- t10*=detsh; t11*=detsh;
+ detsh = (t00 * t11 - t10 * t01);
+ detsh = (detsh != 0.0f) ? 1.0f / detsh : 0.0f;
+ t00 *= detsh; t01 *= detsh;
+ t10 *= detsh; t11 *= detsh;
- shi->u= (shi->co[axis1]-v3[axis1])*t11-(shi->co[axis2]-v3[axis2])*t10;
- shi->v= (shi->co[axis2]-v3[axis2])*t00-(shi->co[axis1]-v3[axis1])*t01;
+ shi->u = (shi->co[axis1] - v3[axis1]) * t11 - (shi->co[axis2] - v3[axis2]) * t10;
+ shi->v = (shi->co[axis2] - v3[axis2]) * t00 - (shi->co[axis1] - v3[axis1]) * t01;
if (shi->osatex) {
- shi->dx_u= shi->dxco[axis1]*t11- shi->dxco[axis2]*t10;
- shi->dx_v= shi->dxco[axis2]*t00- shi->dxco[axis1]*t01;
- shi->dy_u= shi->dyco[axis1]*t11- shi->dyco[axis2]*t10;
- shi->dy_v= shi->dyco[axis2]*t00- shi->dyco[axis1]*t01;
+ shi->dx_u = shi->dxco[axis1] * t11 - shi->dxco[axis2] * t10;
+ shi->dx_v = shi->dxco[axis2] * t00 - shi->dxco[axis1] * t01;
+ shi->dy_u = shi->dyco[axis1] * t11 - shi->dyco[axis2] * t10;
+ shi->dy_v = shi->dyco[axis2] * t00 - shi->dyco[axis1] * t01;
}
/* u and v are in range -1 to 0, we allow a little bit extra but not too much, screws up speedvectors */
@@ -791,8 +782,8 @@ void shade_input_set_uv(ShadeInput *shi)
void shade_input_set_normals(ShadeInput *shi)
{
- float u= shi->u, v= shi->v;
- float l= 1.0f+u+v;
+ float u = shi->u, v = shi->v;
+ float l = 1.0f + u + v;
shi->flippednor = 0;
@@ -800,13 +791,13 @@ void shade_input_set_normals(ShadeInput *shi)
if (!(shi->vlr->flag & R_TANGENT)) {
if (dot_v3v3(shi->facenor, shi->view) < 0.0f) {
negate_v3(shi->facenor);
- shi->flippednor= 1;
+ shi->flippednor = 1;
}
}
/* calculate vertexnormals */
if (shi->vlr->flag & R_SMOOTH) {
- float *n1= shi->n1, *n2= shi->n2, *n3= shi->n3;
+ float *n1 = shi->n1, *n2 = shi->n2, *n3 = shi->n3;
if (shi->flippednor) {
negate_v3(n1);
@@ -814,11 +805,11 @@ void shade_input_set_normals(ShadeInput *shi)
negate_v3(n3);
}
- shi->vn[0]= l*n3[0]-u*n1[0]-v*n2[0];
- shi->vn[1]= l*n3[1]-u*n1[1]-v*n2[1];
- shi->vn[2]= l*n3[2]-u*n1[2]-v*n2[2];
+ shi->vn[0] = l * n3[0] - u * n1[0] - v * n2[0];
+ shi->vn[1] = l * n3[1] - u * n1[1] - v * n2[1];
+ shi->vn[2] = l * n3[2] - u * n1[2] - v * n2[2];
- // use unnormalized normal (closer to games)
+ /* use unnormalized normal (closer to games) */
copy_v3_v3(shi->nmapnorm, shi->vn);
normalize_v3(shi->vn);
@@ -840,18 +831,18 @@ void shade_input_set_normals(ShadeInput *shi)
/* XXX shi->flippednor messes up otherwise */
void shade_input_set_vertex_normals(ShadeInput *shi)
{
- float u= shi->u, v= shi->v;
- float l= 1.0f+u+v;
+ float u = shi->u, v = shi->v;
+ float l = 1.0f + u + v;
/* calculate vertexnormals */
if (shi->vlr->flag & R_SMOOTH) {
- float *n1= shi->n1, *n2= shi->n2, *n3= shi->n3;
+ const float *n1 = shi->n1, *n2 = shi->n2, *n3 = shi->n3;
- shi->vn[0]= l*n3[0]-u*n1[0]-v*n2[0];
- shi->vn[1]= l*n3[1]-u*n1[1]-v*n2[1];
- shi->vn[2]= l*n3[2]-u*n1[2]-v*n2[2];
+ shi->vn[0] = l * n3[0] - u * n1[0] - v * n2[0];
+ shi->vn[1] = l * n3[1] - u * n1[1] - v * n2[1];
+ shi->vn[2] = l * n3[2] - u * n1[2] - v * n2[2];
- // use unnormalized normal (closer to games)
+ /* use unnormalized normal (closer to games) */
copy_v3_v3(shi->nmapnorm, shi->vn);
normalize_v3(shi->vn);
@@ -869,73 +860,61 @@ void shade_input_set_vertex_normals(ShadeInput *shi)
/* use by raytrace, sss, bake to flip into the right direction */
void shade_input_flip_normals(ShadeInput *shi)
{
- shi->facenor[0]= -shi->facenor[0];
- shi->facenor[1]= -shi->facenor[1];
- shi->facenor[2]= -shi->facenor[2];
-
- shi->vn[0]= -shi->vn[0];
- shi->vn[1]= -shi->vn[1];
- shi->vn[2]= -shi->vn[2];
-
- shi->vno[0]= -shi->vno[0];
- shi->vno[1]= -shi->vno[1];
- shi->vno[2]= -shi->vno[2];
-
- shi->nmapnorm[0] = -shi->nmapnorm[0];
- shi->nmapnorm[1] = -shi->nmapnorm[1];
- shi->nmapnorm[2] = -shi->nmapnorm[2];
-
- shi->flippednor= !shi->flippednor;
+ negate_v3(shi->facenor);
+ negate_v3(shi->vn);
+ negate_v3(shi->vno);
+ negate_v3(shi->nmapnorm);
+ shi->flippednor = !shi->flippednor;
}
void shade_input_set_shade_texco(ShadeInput *shi)
{
- ObjectInstanceRen *obi= shi->obi;
- ObjectRen *obr= shi->obr;
- VertRen *v1= shi->v1, *v2= shi->v2, *v3= shi->v3;
- float u= shi->u, v= shi->v;
- float l= 1.0f+u+v, dl;
- int mode= shi->mode; /* or-ed result for all nodes */
- short texco= shi->mat->texco;
+ ObjectInstanceRen *obi = shi->obi;
+ ObjectRen *obr = shi->obr;
+ VertRen *v1 = shi->v1, *v2 = shi->v2, *v3 = shi->v3;
+ float u = shi->u, v = shi->v;
+ float l = 1.0f + u + v, dl;
+ int mode = shi->mode; /* or-ed result for all nodes */
+ short texco = shi->mat->texco;
/* calculate dxno */
if (shi->vlr->flag & R_SMOOTH) {
- if (shi->osatex && (texco & (TEXCO_NORM|TEXCO_REFL)) ) {
- float *n1= shi->n1, *n2= shi->n2, *n3= shi->n3;
+ if (shi->osatex && (texco & (TEXCO_NORM | TEXCO_REFL)) ) {
+ float *n1 = shi->n1, *n2 = shi->n2, *n3 = shi->n3;
- dl= shi->dx_u+shi->dx_v;
- shi->dxno[0]= dl*n3[0]-shi->dx_u*n1[0]-shi->dx_v*n2[0];
- shi->dxno[1]= dl*n3[1]-shi->dx_u*n1[1]-shi->dx_v*n2[1];
- shi->dxno[2]= dl*n3[2]-shi->dx_u*n1[2]-shi->dx_v*n2[2];
- dl= shi->dy_u+shi->dy_v;
- shi->dyno[0]= dl*n3[0]-shi->dy_u*n1[0]-shi->dy_v*n2[0];
- shi->dyno[1]= dl*n3[1]-shi->dy_u*n1[1]-shi->dy_v*n2[1];
- shi->dyno[2]= dl*n3[2]-shi->dy_u*n1[2]-shi->dy_v*n2[2];
+ dl = shi->dx_u + shi->dx_v;
+ shi->dxno[0] = dl * n3[0] - shi->dx_u * n1[0] - shi->dx_v * n2[0];
+ shi->dxno[1] = dl * n3[1] - shi->dx_u * n1[1] - shi->dx_v * n2[1];
+ shi->dxno[2] = dl * n3[2] - shi->dx_u * n1[2] - shi->dx_v * n2[2];
+ dl = shi->dy_u + shi->dy_v;
+ shi->dyno[0] = dl * n3[0] - shi->dy_u * n1[0] - shi->dy_v * n2[0];
+ shi->dyno[1] = dl * n3[1] - shi->dy_u * n1[1] - shi->dy_v * n2[1];
+ shi->dyno[2] = dl * n3[2] - shi->dy_u * n1[2] - shi->dy_v * n2[2];
}
}
/* calc tangents */
- if (mode & (MA_TANGENT_V|MA_NORMAP_TANG) || R.flag & R_NEED_TANGENT) {
+ if (mode & (MA_TANGENT_V | MA_NORMAP_TANG) || R.flag & R_NEED_TANGENT) {
float *tangent, *s1, *s2, *s3;
float tl, tu, tv;
if (shi->vlr->flag & R_SMOOTH) {
- tl= l;
- tu= u;
- tv= v;
+ tl = l;
+ tu = u;
+ tv = v;
}
else {
/* qdn: flat faces have tangents too,
* could pick either one, using average here */
- tl= 1.0f/3.0f;
- tu= -1.0f/3.0f;
- tv= -1.0f/3.0f;
+ tl = 1.0f / 3.0f;
+ tu = -1.0f / 3.0f;
+ tv = -1.0f / 3.0f;
}
- shi->tang[0]= shi->tang[1]= shi->tang[2]= 0.0f;
- shi->nmaptang[0]= shi->nmaptang[1]= shi->nmaptang[2]= 0.0f;
+ shi->tang[0] = shi->tang[1] = shi->tang[2] = 0.0f;
+ shi->nmaptang[0] = shi->nmaptang[1] = shi->nmaptang[2] = 0.0f;
if (mode & MA_TANGENT_V) {
s1 = RE_vertren_get_tangent(obr, v1, 0);
@@ -943,9 +922,9 @@ void shade_input_set_shade_texco(ShadeInput *shi)
s3 = RE_vertren_get_tangent(obr, v3, 0);
if (s1 && s2 && s3) {
- shi->tang[0]= (tl*s3[0] - tu*s1[0] - tv*s2[0]);
- shi->tang[1]= (tl*s3[1] - tu*s1[1] - tv*s2[1]);
- shi->tang[2]= (tl*s3[2] - tu*s1[2] - tv*s2[2]);
+ shi->tang[0] = (tl * s3[0] - tu * s1[0] - tv * s2[0]);
+ shi->tang[1] = (tl * s3[1] - tu * s1[1] - tv * s2[1]);
+ shi->tang[2] = (tl * s3[2] - tu * s1[2] - tv * s2[2]);
if (obi->flag & R_TRANSFORMED)
mul_m3_v3(obi->nmat, shi->tang);
@@ -956,41 +935,41 @@ void shade_input_set_shade_texco(ShadeInput *shi)
}
if (mode & MA_NORMAP_TANG || R.flag & R_NEED_TANGENT) {
- tangent= RE_vlakren_get_nmap_tangent(obr, shi->vlr, 0);
+ tangent = RE_vlakren_get_nmap_tangent(obr, shi->vlr, 0);
if (tangent) {
- int j1= shi->i1, j2= shi->i2, j3= shi->i3;
+ int j1 = shi->i1, j2 = shi->i2, j3 = shi->i3;
float c0[3], c1[3], c2[3];
vlr_set_uv_indices(shi->vlr, &j1, &j2, &j3);
- copy_v3_v3(c0, &tangent[j1*4]);
- copy_v3_v3(c1, &tangent[j2*4]);
- copy_v3_v3(c2, &tangent[j3*4]);
+ copy_v3_v3(c0, &tangent[j1 * 4]);
+ copy_v3_v3(c1, &tangent[j2 * 4]);
+ copy_v3_v3(c2, &tangent[j3 * 4]);
- // keeping tangents normalized at vertex level
- // corresponds better to how it's done in game engines
+ /* keeping tangents normalized at vertex level
+ * corresponds better to how it's done in game engines */
if (obi->flag & R_TRANSFORMED) {
mul_mat3_m4_v3(obi->mat, c0); normalize_v3(c0);
mul_mat3_m4_v3(obi->mat, c1); normalize_v3(c1);
mul_mat3_m4_v3(obi->mat, c2); normalize_v3(c2);
}
-
- // we don't normalize the interpolated TBN tangent
- // corresponds better to how it's done in game engines
- shi->nmaptang[0]= (tl*c2[0] - tu*c0[0] - tv*c1[0]);
- shi->nmaptang[1]= (tl*c2[1] - tu*c0[1] - tv*c1[1]);
- shi->nmaptang[2]= (tl*c2[2] - tu*c0[2] - tv*c1[2]);
-
- // the sign is the same for all 3 vertices of any
- // non degenerate triangle.
- shi->nmaptang[3]= tangent[j1*4+3];
+
+ /* we don't normalize the interpolated TBN tangent
+ * corresponds better to how it's done in game engines */
+ shi->nmaptang[0] = (tl * c2[0] - tu * c0[0] - tv * c1[0]);
+ shi->nmaptang[1] = (tl * c2[1] - tu * c0[1] - tv * c1[1]);
+ shi->nmaptang[2] = (tl * c2[2] - tu * c0[2] - tv * c1[2]);
+
+ /* the sign is the same for all 3 vertices of any
+ * non degenerate triangle. */
+ shi->nmaptang[3] = tangent[j1 * 4 + 3];
}
}
}
if (mode & MA_STR_SURFDIFF) {
- float *surfnor= RE_vlakren_get_surfnor(obr, shi->vlr, 0);
+ float *surfnor = RE_vlakren_get_surfnor(obr, shi->vlr, 0);
if (surfnor) {
copy_v3_v3(shi->surfnor, surfnor);
@@ -1000,29 +979,29 @@ void shade_input_set_shade_texco(ShadeInput *shi)
else
copy_v3_v3(shi->surfnor, shi->vn);
- shi->surfdist= 0.0f;
+ shi->surfdist = 0.0f;
}
if (R.r.mode & R_SPEED) {
float *s1, *s2, *s3;
- s1= RE_vertren_get_winspeed(obi, v1, 0);
- s2= RE_vertren_get_winspeed(obi, v2, 0);
- s3= RE_vertren_get_winspeed(obi, v3, 0);
+ s1 = RE_vertren_get_winspeed(obi, v1, 0);
+ s2 = RE_vertren_get_winspeed(obi, v2, 0);
+ s3 = RE_vertren_get_winspeed(obi, v3, 0);
if (s1 && s2 && s3) {
- shi->winspeed[0]= (l*s3[0] - u*s1[0] - v*s2[0]);
- shi->winspeed[1]= (l*s3[1] - u*s1[1] - v*s2[1]);
- shi->winspeed[2]= (l*s3[2] - u*s1[2] - v*s2[2]);
- shi->winspeed[3]= (l*s3[3] - u*s1[3] - v*s2[3]);
+ shi->winspeed[0] = (l * s3[0] - u * s1[0] - v * s2[0]);
+ shi->winspeed[1] = (l * s3[1] - u * s1[1] - v * s2[1]);
+ shi->winspeed[2] = (l * s3[2] - u * s1[2] - v * s2[2]);
+ shi->winspeed[3] = (l * s3[3] - u * s1[3] - v * s2[3]);
}
else {
- shi->winspeed[0]= shi->winspeed[1]= shi->winspeed[2]= shi->winspeed[3]= 0.0f;
+ shi->winspeed[0] = shi->winspeed[1] = shi->winspeed[2] = shi->winspeed[3] = 0.0f;
}
}
/* pass option forces UV calc */
if (shi->passflag & SCE_PASS_UV)
- texco |= (NEED_UV|TEXCO_UV);
+ texco |= (NEED_UV | TEXCO_UV);
/* texture coordinates. shi->dxuv shi->dyuv have been set */
if (texco & NEED_UV) {
@@ -1031,23 +1010,23 @@ void shade_input_set_shade_texco(ShadeInput *shi)
if (v1->orco) {
float *o1, *o2, *o3;
- o1= v1->orco;
- o2= v2->orco;
- o3= v3->orco;
-
- shi->lo[0]= l*o3[0]-u*o1[0]-v*o2[0];
- shi->lo[1]= l*o3[1]-u*o1[1]-v*o2[1];
- shi->lo[2]= l*o3[2]-u*o1[2]-v*o2[2];
+ o1 = v1->orco;
+ o2 = v2->orco;
+ o3 = v3->orco;
+
+ shi->lo[0] = l * o3[0] - u * o1[0] - v * o2[0];
+ shi->lo[1] = l * o3[1] - u * o1[1] - v * o2[1];
+ shi->lo[2] = l * o3[2] - u * o1[2] - v * o2[2];
if (shi->osatex) {
- dl= shi->dx_u+shi->dx_v;
- shi->dxlo[0]= dl*o3[0]-shi->dx_u*o1[0]-shi->dx_v*o2[0];
- shi->dxlo[1]= dl*o3[1]-shi->dx_u*o1[1]-shi->dx_v*o2[1];
- shi->dxlo[2]= dl*o3[2]-shi->dx_u*o1[2]-shi->dx_v*o2[2];
- dl= shi->dy_u+shi->dy_v;
- shi->dylo[0]= dl*o3[0]-shi->dy_u*o1[0]-shi->dy_v*o2[0];
- shi->dylo[1]= dl*o3[1]-shi->dy_u*o1[1]-shi->dy_v*o2[1];
- shi->dylo[2]= dl*o3[2]-shi->dy_u*o1[2]-shi->dy_v*o2[2];
+ dl = shi->dx_u + shi->dx_v;
+ shi->dxlo[0] = dl * o3[0] - shi->dx_u * o1[0] - shi->dx_v * o2[0];
+ shi->dxlo[1] = dl * o3[1] - shi->dx_u * o1[1] - shi->dx_v * o2[1];
+ shi->dxlo[2] = dl * o3[2] - shi->dx_u * o1[2] - shi->dx_v * o2[2];
+ dl = shi->dy_u + shi->dy_v;
+ shi->dylo[0] = dl * o3[0] - shi->dy_u * o1[0] - shi->dy_v * o2[0];
+ shi->dylo[1] = dl * o3[1] - shi->dy_u * o1[1] - shi->dy_v * o2[1];
+ shi->dylo[2] = dl * o3[2] - shi->dy_u * o1[2] - shi->dy_v * o2[2];
}
}
@@ -1066,250 +1045,249 @@ void shade_input_set_shade_texco(ShadeInput *shi)
}
if (texco & TEXCO_STRAND) {
- shi->strandco= (l*v3->accum - u*v1->accum - v*v2->accum);
+ shi->strandco = (l * v3->accum - u * v1->accum - v * v2->accum);
if (shi->osatex) {
- dl= shi->dx_u+shi->dx_v;
- shi->dxstrand= dl*v3->accum-shi->dx_u*v1->accum-shi->dx_v*v2->accum;
- dl= shi->dy_u+shi->dy_v;
- shi->dystrand= dl*v3->accum-shi->dy_u*v1->accum-shi->dy_v*v2->accum;
+ dl = shi->dx_u + shi->dx_v;
+ shi->dxstrand = dl * v3->accum - shi->dx_u * v1->accum - shi->dx_v * v2->accum;
+ dl = shi->dy_u + shi->dy_v;
+ shi->dystrand = dl * v3->accum - shi->dy_u * v1->accum - shi->dy_v * v2->accum;
}
}
- if ((texco & TEXCO_UV) || (mode & (MA_VERTEXCOL|MA_VERTEXCOLP|MA_FACETEXTURE))) {
- VlakRen *vlr= shi->vlr;
+ if ((texco & TEXCO_UV) || (mode & (MA_VERTEXCOL | MA_VERTEXCOLP | MA_FACETEXTURE))) {
+ VlakRen *vlr = shi->vlr;
MTFace *tface;
MCol *mcol;
char *name;
- int i, j1=shi->i1, j2=shi->i2, j3=shi->i3;
+ int i, j1 = shi->i1, j2 = shi->i2, j3 = shi->i3;
/* uv and vcols are not copied on split, so set them according vlr divide flag */
vlr_set_uv_indices(vlr, &j1, &j2, &j3);
- shi->totuv= 0;
- shi->totcol= 0;
- shi->actuv= obr->actmtface;
- shi->actcol= obr->actmcol;
+ shi->totuv = 0;
+ shi->totcol = 0;
+ shi->actuv = obr->actmtface;
+ shi->actcol = obr->actmcol;
- if (mode & (MA_VERTEXCOL|MA_VERTEXCOLP)) {
- for (i=0; (mcol=RE_vlakren_get_mcol(obr, vlr, i, &name, 0)); i++) {
- ShadeInputCol *scol= &shi->col[i];
+ if (mode & (MA_VERTEXCOL | MA_VERTEXCOLP)) {
+ for (i = 0; (mcol = RE_vlakren_get_mcol(obr, vlr, i, &name, 0)); i++) {
+ ShadeInputCol *scol = &shi->col[i];
char *cp1, *cp2, *cp3;
float a[3];
shi->totcol++;
- scol->name= name;
+ scol->name = name;
- cp1= (char *)(mcol+j1);
- cp2= (char *)(mcol+j2);
- cp3= (char *)(mcol+j3);
+ cp1 = (char *)(mcol + j1);
+ cp2 = (char *)(mcol + j2);
+ cp3 = (char *)(mcol + j3);
/* alpha values */
- a[0] = ((float)cp1[0])/255.f;
- a[1] = ((float)cp2[0])/255.f;
- a[2] = ((float)cp3[0])/255.f;
- scol->col[3]= l*a[2] - u*a[0] - v*a[1];
+ a[0] = ((float)cp1[0]) / 255.f;
+ a[1] = ((float)cp2[0]) / 255.f;
+ a[2] = ((float)cp3[0]) / 255.f;
+ scol->col[3] = l * a[2] - u * a[0] - v * a[1];
/* sample premultiplied color value */
- scol->col[0]= (l*((float)cp3[3])*a[2] - u*((float)cp1[3])*a[0] - v*((float)cp2[3])*a[1])/255.f;
- scol->col[1]= (l*((float)cp3[2])*a[2] - u*((float)cp1[2])*a[0] - v*((float)cp2[2])*a[1])/255.f;
- scol->col[2]= (l*((float)cp3[1])*a[2] - u*((float)cp1[1])*a[0] - v*((float)cp2[1])*a[1])/255.f;
+ scol->col[0] = (l * ((float)cp3[3]) * a[2] - u * ((float)cp1[3]) * a[0] - v * ((float)cp2[3]) * a[1]) / 255.f;
+ scol->col[1] = (l * ((float)cp3[2]) * a[2] - u * ((float)cp1[2]) * a[0] - v * ((float)cp2[2]) * a[1]) / 255.f;
+ scol->col[2] = (l * ((float)cp3[1]) * a[2] - u * ((float)cp1[1]) * a[0] - v * ((float)cp2[1]) * a[1]) / 255.f;
/* if not zero alpha, restore non-multiplied color */
if (scol->col[3]) {
- mul_v3_fl(scol->col, 1.0f/scol->col[3]);
+ mul_v3_fl(scol->col, 1.0f / scol->col[3]);
}
}
if (shi->totcol) {
- shi->vcol[0]= shi->col[shi->actcol].col[0];
- shi->vcol[1]= shi->col[shi->actcol].col[1];
- shi->vcol[2]= shi->col[shi->actcol].col[2];
- shi->vcol[3]= shi->col[shi->actcol].col[3];
+ shi->vcol[0] = shi->col[shi->actcol].col[0];
+ shi->vcol[1] = shi->col[shi->actcol].col[1];
+ shi->vcol[2] = shi->col[shi->actcol].col[2];
+ shi->vcol[3] = shi->col[shi->actcol].col[3];
}
else {
- shi->vcol[0]= 0.0f;
- shi->vcol[1]= 0.0f;
- shi->vcol[2]= 0.0f;
- shi->vcol[3]= 1.0f;
+ shi->vcol[0] = 0.0f;
+ shi->vcol[1] = 0.0f;
+ shi->vcol[2] = 0.0f;
+ shi->vcol[3] = 1.0f;
}
}
- for (i=0; (tface=RE_vlakren_get_tface(obr, vlr, i, &name, 0)); i++) {
- ShadeInputUV *suv= &shi->uv[i];
- float *uv1, *uv2, *uv3;
+ for (i = 0; (tface = RE_vlakren_get_tface(obr, vlr, i, &name, 0)); i++) {
+ ShadeInputUV *suv = &shi->uv[i];
+ const float *uv1 = tface->uv[j1];
+ const float *uv2 = tface->uv[j2];
+ const float *uv3 = tface->uv[j3];
shi->totuv++;
- suv->name= name;
-
- uv1= tface->uv[j1];
- uv2= tface->uv[j2];
- uv3= tface->uv[j3];
-
- suv->uv[0]= -1.0f + 2.0f*(l*uv3[0]-u*uv1[0]-v*uv2[0]);
- suv->uv[1]= -1.0f + 2.0f*(l*uv3[1]-u*uv1[1]-v*uv2[1]);
- suv->uv[2]= 0.0f; /* texture.c assumes there are 3 coords */
-
- if (shi->osatex) {
- float duv[2];
-
- dl= shi->dx_u+shi->dx_v;
- duv[0]= shi->dx_u;
- duv[1]= shi->dx_v;
-
- suv->dxuv[0]= 2.0f*(dl*uv3[0]-duv[0]*uv1[0]-duv[1]*uv2[0]);
- suv->dxuv[1]= 2.0f*(dl*uv3[1]-duv[0]*uv1[1]-duv[1]*uv2[1]);
-
- dl= shi->dy_u+shi->dy_v;
- duv[0]= shi->dy_u;
- duv[1]= shi->dy_v;
-
- suv->dyuv[0]= 2.0f*(dl*uv3[0]-duv[0]*uv1[0]-duv[1]*uv2[0]);
- suv->dyuv[1]= 2.0f*(dl*uv3[1]-duv[0]*uv1[1]-duv[1]*uv2[1]);
+ suv->name = name;
+
+ if ((shi->mat->mapflag & MA_MAPFLAG_UVPROJECT) && (shi->depth == 0)) {
+ float x = shi->xs;
+ float y = shi->ys;
+
+ float s1[2] = {-1.0f + 2.0f * uv1[0], -1.0f + 2.0f * uv1[1]};
+ float s2[2] = {-1.0f + 2.0f * uv2[0], -1.0f + 2.0f * uv2[1]};
+ float s3[2] = {-1.0f + 2.0f * uv3[0], -1.0f + 2.0f * uv3[1]};
+
+
+ float obwinmat[4][4], winmat[4][4], ho1[4], ho2[4], ho3[4];
+ float Zmulx, Zmuly;
+ float hox, hoy, l, dl, u, v;
+ float s00, s01, s10, s11, detsh;
+
+ /* old globals, localized now */
+ Zmulx = ((float)R.winx) / 2.0f;
+ Zmuly = ((float)R.winy) / 2.0f;
+
+ zbuf_make_winmat(&R, winmat);
+ if (shi->obi->flag & R_TRANSFORMED)
+ mult_m4_m4m4(obwinmat, winmat, obi->mat);
+ else
+ copy_m4_m4(obwinmat, winmat);
+
+ zbuf_render_project(obwinmat, v1->co, ho1);
+ zbuf_render_project(obwinmat, v2->co, ho2);
+ zbuf_render_project(obwinmat, v3->co, ho3);
+
+ s00 = ho3[0] / ho3[3] - ho1[0] / ho1[3];
+ s01 = ho3[1] / ho3[3] - ho1[1] / ho1[3];
+ s10 = ho3[0] / ho3[3] - ho2[0] / ho2[3];
+ s11 = ho3[1] / ho3[3] - ho2[1] / ho2[3];
+
+ detsh = s00 * s11 - s10 * s01;
+ detsh = (detsh != 0.0f) ? 1.0f / detsh : 0.0f;
+ s00 *= detsh; s01 *= detsh;
+ s10 *= detsh; s11 *= detsh;
+
+ /* recalc u and v again */
+ hox = x / Zmulx - 1.0f;
+ hoy = y / Zmuly - 1.0f;
+ u = (hox - ho3[0] / ho3[3]) * s11 - (hoy - ho3[1] / ho3[3]) * s10;
+ v = (hoy - ho3[1] / ho3[3]) * s00 - (hox - ho3[0] / ho3[3]) * s01;
+ l = 1.0f + u + v;
+
+ suv->uv[0] = l * s3[0] - u * s1[0] - v * s2[0];
+ suv->uv[1] = l * s3[1] - u * s1[1] - v * s2[1];
+ suv->uv[2] = 0.0f;
+
+ if (shi->osatex) {
+ float dxuv[2], dyuv[2];
+ dxuv[0] = s11 / Zmulx;
+ dxuv[1] = -s01 / Zmulx;
+ dyuv[0] = -s10 / Zmuly;
+ dyuv[1] = s00 / Zmuly;
+
+ dl = dxuv[0] + dxuv[1];
+ suv->dxuv[0] = dl * s3[0] - dxuv[0] * s1[0] - dxuv[1] * s2[0];
+ suv->dxuv[1] = dl * s3[1] - dxuv[0] * s1[1] - dxuv[1] * s2[1];
+ dl = dyuv[0] + dyuv[1];
+ suv->dyuv[0] = dl * s3[0] - dyuv[0] * s1[0] - dyuv[1] * s2[0];
+ suv->dyuv[1] = dl * s3[1] - dyuv[0] * s1[1] - dyuv[1] * s2[1];
+ }
}
+ else {
+
+ suv->uv[0] = -1.0f + 2.0f * (l * uv3[0] - u * uv1[0] - v * uv2[0]);
+ suv->uv[1] = -1.0f + 2.0f * (l * uv3[1] - u * uv1[1] - v * uv2[1]);
+ suv->uv[2] = 0.0f; /* texture.c assumes there are 3 coords */
+
+ if (shi->osatex) {
+ float duv[2];
+
+ dl = shi->dx_u + shi->dx_v;
+ duv[0] = shi->dx_u;
+ duv[1] = shi->dx_v;
+
+ suv->dxuv[0] = 2.0f * (dl * uv3[0] - duv[0] * uv1[0] - duv[1] * uv2[0]);
+ suv->dxuv[1] = 2.0f * (dl * uv3[1] - duv[0] * uv1[1] - duv[1] * uv2[1]);
+
+ dl = shi->dy_u + shi->dy_v;
+ duv[0] = shi->dy_u;
+ duv[1] = shi->dy_v;
- if ((mode & MA_FACETEXTURE) && i==obr->actmtface) {
- if ((mode & (MA_VERTEXCOL|MA_VERTEXCOLP))==0) {
- shi->vcol[0]= 1.0f;
- shi->vcol[1]= 1.0f;
- shi->vcol[2]= 1.0f;
- shi->vcol[3]= 1.0f;
+ suv->dyuv[0] = 2.0f * (dl * uv3[0] - duv[0] * uv1[0] - duv[1] * uv2[0]);
+ suv->dyuv[1] = 2.0f * (dl * uv3[1] - duv[0] * uv1[1] - duv[1] * uv2[1]);
}
- if (tface->tpage) {
- render_realtime_texture(shi, tface->tpage);
+
+ if ((mode & MA_FACETEXTURE) && i == obr->actmtface) {
+ if ((mode & (MA_VERTEXCOL | MA_VERTEXCOLP)) == 0) {
+ shi->vcol[0] = 1.0f;
+ shi->vcol[1] = 1.0f;
+ shi->vcol[2] = 1.0f;
+ shi->vcol[3] = 1.0f;
+ }
+ if (tface->tpage) {
+ render_realtime_texture(shi, tface->tpage);
+ }
}
}
-
-
}
- shi->dupliuv[0]= -1.0f + 2.0f*obi->dupliuv[0];
- shi->dupliuv[1]= -1.0f + 2.0f*obi->dupliuv[1];
- shi->dupliuv[2]= 0.0f;
+ shi->dupliuv[0] = -1.0f + 2.0f * obi->dupliuv[0];
+ shi->dupliuv[1] = -1.0f + 2.0f * obi->dupliuv[1];
+ shi->dupliuv[2] = 0.0f;
if (shi->totuv == 0) {
- ShadeInputUV *suv= &shi->uv[0];
+ ShadeInputUV *suv = &shi->uv[0];
- suv->uv[0]= 2.0f*(u+.5f);
- suv->uv[1]= 2.0f*(v+.5f);
- suv->uv[2]= 0.0f; /* texture.c assumes there are 3 coords */
+ suv->uv[0] = 2.0f * (u + .5f);
+ suv->uv[1] = 2.0f * (v + .5f);
+ suv->uv[2] = 0.0f; /* texture.c assumes there are 3 coords */
if (mode & MA_FACETEXTURE) {
/* no tface? set at 1.0f */
- shi->vcol[0]= 1.0f;
- shi->vcol[1]= 1.0f;
- shi->vcol[2]= 1.0f;
- shi->vcol[3]= 1.0f;
+ shi->vcol[0] = 1.0f;
+ shi->vcol[1] = 1.0f;
+ shi->vcol[2] = 1.0f;
+ shi->vcol[3] = 1.0f;
}
}
}
if (texco & TEXCO_NORM) {
- shi->orn[0]= -shi->vn[0];
- shi->orn[1]= -shi->vn[1];
- shi->orn[2]= -shi->vn[2];
+ shi->orn[0] = -shi->vn[0];
+ shi->orn[1] = -shi->vn[1];
+ shi->orn[2] = -shi->vn[2];
}
if (texco & TEXCO_STRESS) {
float *s1, *s2, *s3;
- s1= RE_vertren_get_stress(obr, v1, 0);
- s2= RE_vertren_get_stress(obr, v2, 0);
- s3= RE_vertren_get_stress(obr, v3, 0);
+ s1 = RE_vertren_get_stress(obr, v1, 0);
+ s2 = RE_vertren_get_stress(obr, v2, 0);
+ s3 = RE_vertren_get_stress(obr, v3, 0);
if (s1 && s2 && s3) {
- shi->stress= l*s3[0] - u*s1[0] - v*s2[0];
- if (shi->stress<1.0f) shi->stress-= 1.0f;
- else shi->stress= (shi->stress-1.0f)/shi->stress;
+ shi->stress = l * s3[0] - u * s1[0] - v * s2[0];
+ if (shi->stress < 1.0f) shi->stress -= 1.0f;
+ else shi->stress = (shi->stress - 1.0f) / shi->stress;
}
- else shi->stress= 0.0f;
+ else shi->stress = 0.0f;
}
if (texco & TEXCO_TANGENT) {
- if ((mode & MA_TANGENT_V)==0) {
+ if ((mode & MA_TANGENT_V) == 0) {
/* just prevent surprises */
- shi->tang[0]= shi->tang[1]= shi->tang[2]= 0.0f;
- shi->nmaptang[0]= shi->nmaptang[1]= shi->nmaptang[2]= 0.0f;
+ shi->tang[0] = shi->tang[1] = shi->tang[2] = 0.0f;
+ shi->nmaptang[0] = shi->nmaptang[1] = shi->nmaptang[2] = 0.0f;
}
}
}
/* this only avalailable for scanline renders */
- if (shi->depth==0) {
- float x= shi->xs;
- float y= shi->ys;
+ if (shi->depth == 0) {
+ float x = shi->xs;
+ float y = shi->ys;
if (texco & TEXCO_WINDOW) {
- shi->winco[0]= -1.0f + 2.0f*x/(float)R.winx;
- shi->winco[1]= -1.0f + 2.0f*y/(float)R.winy;
- shi->winco[2]= 0.0f;
+ shi->winco[0] = -1.0f + 2.0f * x / (float)R.winx;
+ shi->winco[1] = -1.0f + 2.0f * y / (float)R.winy;
+ shi->winco[2] = 0.0f;
if (shi->osatex) {
- shi->dxwin[0]= 2.0f/(float)R.winx;
- shi->dywin[1]= 2.0f/(float)R.winy;
- shi->dxwin[1]= shi->dxwin[2]= 0.0f;
- shi->dywin[0]= shi->dywin[2]= 0.0f;
- }
- }
-
- if (texco & TEXCO_STICKY) {
- float *s1, *s2, *s3;
-
- s1= RE_vertren_get_sticky(obr, v1, 0);
- s2= RE_vertren_get_sticky(obr, v2, 0);
- s3= RE_vertren_get_sticky(obr, v3, 0);
-
- if (s1 && s2 && s3) {
- float obwinmat[4][4], winmat[4][4], ho1[4], ho2[4], ho3[4];
- float Zmulx, Zmuly;
- float hox, hoy, l, dl, u, v;
- float s00, s01, s10, s11, detsh;
-
- /* old globals, localized now */
- Zmulx= ((float)R.winx)/2.0f; Zmuly= ((float)R.winy)/2.0f;
-
- zbuf_make_winmat(&R, winmat);
- if (shi->obi->flag & R_TRANSFORMED)
- mult_m4_m4m4(obwinmat, winmat, obi->mat);
- else
- copy_m4_m4(obwinmat, winmat);
-
- zbuf_render_project(obwinmat, v1->co, ho1);
- zbuf_render_project(obwinmat, v2->co, ho2);
- zbuf_render_project(obwinmat, v3->co, ho3);
-
- s00= ho3[0]/ho3[3] - ho1[0]/ho1[3];
- s01= ho3[1]/ho3[3] - ho1[1]/ho1[3];
- s10= ho3[0]/ho3[3] - ho2[0]/ho2[3];
- s11= ho3[1]/ho3[3] - ho2[1]/ho2[3];
-
- detsh= s00*s11-s10*s01;
- detsh= (detsh != 0.0f)? 1.0f/detsh: 0.0f;
- s00*= detsh; s01*=detsh;
- s10*=detsh; s11*=detsh;
-
- /* recalc u and v again */
- hox= x/Zmulx -1.0f;
- hoy= y/Zmuly -1.0f;
- u= (hox - ho3[0]/ho3[3])*s11 - (hoy - ho3[1]/ho3[3])*s10;
- v= (hoy - ho3[1]/ho3[3])*s00 - (hox - ho3[0]/ho3[3])*s01;
- l= 1.0f+u+v;
-
- shi->sticky[0]= l*s3[0]-u*s1[0]-v*s2[0];
- shi->sticky[1]= l*s3[1]-u*s1[1]-v*s2[1];
- shi->sticky[2]= 0.0f;
-
- if (shi->osatex) {
- float dxuv[2], dyuv[2];
- dxuv[0]= s11/Zmulx;
- dxuv[1]= - s01/Zmulx;
- dyuv[0]= - s10/Zmuly;
- dyuv[1]= s00/Zmuly;
-
- dl= dxuv[0] + dxuv[1];
- shi->dxsticky[0]= dl*s3[0] - dxuv[0]*s1[0] - dxuv[1]*s2[0];
- shi->dxsticky[1]= dl*s3[1] - dxuv[0]*s1[1] - dxuv[1]*s2[1];
- dl= dyuv[0] + dyuv[1];
- shi->dysticky[0]= dl*s3[0] - dyuv[0]*s1[0] - dyuv[1]*s2[0];
- shi->dysticky[1]= dl*s3[1] - dyuv[0]*s1[1] - dyuv[1]*s2[1];
- }
+ shi->dxwin[0] = 2.0f / (float)R.winx;
+ shi->dywin[1] = 2.0f / (float)R.winy;
+ shi->dxwin[1] = shi->dxwin[2] = 0.0f;
+ shi->dywin[0] = shi->dywin[2] = 0.0f;
}
}
}
@@ -1319,7 +1297,7 @@ void shade_input_set_shade_texco(ShadeInput *shi)
* else un-initialized values are used
*/
if (shi->do_manage) {
- if (mode & (MA_VERTEXCOL|MA_VERTEXCOLP|MA_FACETEXTURE)) {
+ if (mode & (MA_VERTEXCOL | MA_VERTEXCOLP | MA_FACETEXTURE)) {
srgb_to_linearrgb_v3_v3(shi->vcol, shi->vcol);
}
}
@@ -1334,16 +1312,18 @@ void shade_input_initialize(ShadeInput *shi, RenderPart *pa, RenderLayer *rl, in
memset(shi, 0, sizeof(ShadeInput));
- shi->sample= sample;
- shi->thread= pa->thread;
- shi->do_preview= (R.r.scemode & R_MATNODE_PREVIEW) != 0;
- shi->do_manage= (R.r.color_mgt_flag & R_COLOR_MANAGEMENT);
- shi->lay= rl->lay;
- shi->layflag= rl->layflag;
- shi->passflag= rl->passflag;
- shi->combinedflag= ~rl->pass_xor;
- shi->mat_override= rl->mat_override;
- shi->light_override= rl->light_override;
+ shi->sample = sample;
+ shi->thread = pa->thread;
+ shi->do_preview = (R.r.scemode & R_MATNODE_PREVIEW) != 0;
+
+ shi->do_manage = BKE_scene_check_color_management_enabled(R.scene);
+
+ shi->lay = rl->lay;
+ shi->layflag = rl->layflag;
+ shi->passflag = rl->passflag;
+ shi->combinedflag = ~rl->pass_xor;
+ shi->mat_override = rl->mat_override;
+ shi->light_override = rl->light_override;
// shi->rl= rl;
/* note shi.depth==0 means first hit, not raytracing */
@@ -1354,9 +1334,9 @@ void shade_sample_initialize(ShadeSample *ssamp, RenderPart *pa, RenderLayer *rl
{
int a, tot;
- tot= R.osa==0?1:R.osa;
+ tot = R.osa == 0 ? 1 : R.osa;
- for (a=0; a<tot; a++) {
+ for (a = 0; a < tot; a++) {
shade_input_initialize(&ssamp->shi[a], pa, rl, a);
memset(&ssamp->shr[a], 0, sizeof(ShadeResult));
}
@@ -1372,16 +1352,16 @@ void shade_samples_do_AO(ShadeSample *ssamp)
if (!(R.r.mode & R_RAYTRACE) && !(R.wrld.ao_gather_method == WO_AOGATHER_APPROX))
return;
- if (R.wrld.mode & (WO_AMB_OCC|WO_ENV_LIGHT|WO_INDIRECT_LIGHT)) {
- ShadeInput *shi= &ssamp->shi[0];
+ if (R.wrld.mode & (WO_AMB_OCC | WO_ENV_LIGHT | WO_INDIRECT_LIGHT)) {
+ ShadeInput *shi = &ssamp->shi[0];
int sample;
- if (((shi->passflag & SCE_PASS_COMBINED) && (shi->combinedflag & (SCE_PASS_AO|SCE_PASS_ENVIRONMENT|SCE_PASS_INDIRECT))) ||
- (shi->passflag & (SCE_PASS_AO|SCE_PASS_ENVIRONMENT|SCE_PASS_INDIRECT)))
+ if (((shi->passflag & SCE_PASS_COMBINED) && (shi->combinedflag & (SCE_PASS_AO | SCE_PASS_ENVIRONMENT | SCE_PASS_INDIRECT))) ||
+ (shi->passflag & (SCE_PASS_AO | SCE_PASS_ENVIRONMENT | SCE_PASS_INDIRECT)))
{
- for (sample=0; sample<ssamp->tot; shi++, sample++)
+ for (sample = 0; sample < ssamp->tot; shi++, sample++)
if (!(shi->mode & MA_SHLESS))
- ambient_occlusion(shi); /* stores in shi->ao[] */
+ ambient_occlusion(shi); /* stores in shi->ao[] */
}
}
}
@@ -1392,55 +1372,55 @@ void shade_samples_fill_with_ps(ShadeSample *ssamp, PixStr *ps, int x, int y)
ShadeInput *shi;
float xs, ys;
- ssamp->tot= 0;
+ ssamp->tot = 0;
- for (shi= ssamp->shi; ps; ps= ps->next) {
+ for (shi = ssamp->shi; ps; ps = ps->next) {
shade_input_set_triangle(shi, ps->obi, ps->facenr, 1);
- if (shi->vlr) { /* NULL happens for env material or for 'all z' */
- unsigned short curmask= ps->mask;
+ if (shi->vlr) { /* NULL happens for env material or for 'all z' */
+ unsigned short curmask = ps->mask;
/* full osa is only set for OSA renders */
if (shi->vlr->flag & R_FULL_OSA) {
- short shi_cp= 0, samp;
+ short shi_cp = 0, samp;
- for (samp=0; samp<R.osa; samp++) {
- if (curmask & (1<<samp)) {
+ for (samp = 0; samp < R.osa; samp++) {
+ if (curmask & (1 << samp)) {
/* zbuffer has this inverse corrected, ensures xs,ys are inside pixel */
- xs= (float)x + R.jit[samp][0] + 0.5f;
- ys= (float)y + R.jit[samp][1] + 0.5f;
+ xs = (float)x + R.jit[samp][0] + 0.5f;
+ ys = (float)y + R.jit[samp][1] + 0.5f;
if (shi_cp)
- shade_input_copy_triangle(shi, shi-1);
+ shade_input_copy_triangle(shi, shi - 1);
- shi->mask= (1<<samp);
+ shi->mask = (1 << samp);
// shi->rl= ssamp->rlpp[samp];
- shi->samplenr= R.shadowsamplenr[shi->thread]++; /* this counter is not being reset per pixel */
+ shi->samplenr = R.shadowsamplenr[shi->thread]++; /* this counter is not being reset per pixel */
shade_input_set_viewco(shi, x, y, xs, ys, (float)ps->z);
shade_input_set_uv(shi);
- if (shi_cp==0)
+ if (shi_cp == 0)
shade_input_set_normals(shi);
else /* XXX shi->flippednor messes up otherwise */
shade_input_set_vertex_normals(shi);
- shi_cp= 1;
+ shi_cp = 1;
shi++;
}
}
}
else {
if (R.osa) {
- short b= R.samples->centmask[curmask];
- xs= (float)x + R.samples->centLut[b & 15] + 0.5f;
- ys= (float)y + R.samples->centLut[b>>4] + 0.5f;
+ short b = R.samples->centmask[curmask];
+ xs = (float)x + R.samples->centLut[b & 15] + 0.5f;
+ ys = (float)y + R.samples->centLut[b >> 4] + 0.5f;
}
else {
- xs= (float)x + 0.5f;
- ys= (float)y + 0.5f;
+ xs = (float)x + 0.5f;
+ ys = (float)y + 0.5f;
}
- shi->mask= curmask;
- shi->samplenr= R.shadowsamplenr[shi->thread]++;
+ shi->mask = curmask;
+ shi->samplenr = R.shadowsamplenr[shi->thread]++;
shade_input_set_viewco(shi, x, y, xs, ys, (float)ps->z);
shade_input_set_uv(shi);
shade_input_set_normals(shi);
@@ -1448,8 +1428,8 @@ void shade_samples_fill_with_ps(ShadeSample *ssamp, PixStr *ps, int x, int y)
}
/* total sample amount, shi->sample is static set in initialize */
- if (shi!=ssamp->shi)
- ssamp->tot= (shi-1)->sample + 1;
+ if (shi != ssamp->shi)
+ ssamp->tot = (shi - 1)->sample + 1;
}
}
}
@@ -1460,24 +1440,24 @@ int shade_samples(ShadeSample *ssamp, PixStr *ps, int x, int y)
shade_samples_fill_with_ps(ssamp, ps, x, y);
if (ssamp->tot) {
- ShadeInput *shi= ssamp->shi;
- ShadeResult *shr= ssamp->shr;
+ ShadeInput *shi = ssamp->shi;
+ ShadeResult *shr = ssamp->shr;
int samp;
/* if shadow or AO? */
shade_samples_do_AO(ssamp);
/* if shade (all shadepinputs have same passflag) */
- if (ssamp->shi[0].passflag & ~(SCE_PASS_Z|SCE_PASS_INDEXOB|SCE_PASS_INDEXMA)) {
+ if (ssamp->shi[0].passflag & ~(SCE_PASS_Z | SCE_PASS_INDEXOB | SCE_PASS_INDEXMA)) {
- for (samp=0; samp<ssamp->tot; samp++, shi++, shr++) {
+ for (samp = 0; samp < ssamp->tot; samp++, shi++, shr++) {
shade_input_set_shade_texco(shi);
shade_input_do_shade(shi, shr);
}
}
else if (shi->passflag & SCE_PASS_Z) {
- for (samp=0; samp<ssamp->tot; samp++, shi++, shr++)
- shr->z= -shi->co[2];
+ for (samp = 0; samp < ssamp->tot; samp++, shi++, shr++)
+ shr->z = -shi->co[2];
}
return 1;
diff --git a/source/blender/render/intern/source/shadeoutput.c b/source/blender/render/intern/source/shadeoutput.c
index 82f2add7c3d..873657ec6ba 100644
--- a/source/blender/render/intern/source/shadeoutput.c
+++ b/source/blender/render/intern/source/shadeoutput.c
@@ -123,30 +123,45 @@ float mistfactor(float zcor, float const co[3])
{
float fac, hi;
- fac= zcor - R.wrld.miststa; /* zcor is calculated per pixel */
+ fac = zcor - R.wrld.miststa; /* zcor is calculated per pixel */
/* fac= -co[2]-R.wrld.miststa; */
- if (fac>0.0f) {
- if (fac< R.wrld.mistdist) {
+ if (fac > 0.0f) {
+ if (fac < R.wrld.mistdist) {
- fac= (fac/(R.wrld.mistdist));
+ fac = (fac / R.wrld.mistdist);
- if (R.wrld.mistype==0) fac*= fac;
- else if (R.wrld.mistype==1);
- else fac= sqrt(fac);
+ if (R.wrld.mistype == 0) {
+ fac *= fac;
+ }
+ else if (R.wrld.mistype == 1) {
+ /* pass */
+ }
+ else {
+ fac = sqrt(fac);
+ }
}
- else fac= 1.0f;
+ else {
+ fac = 1.0f;
+ }
+ }
+ else {
+ fac = 0.0f;
}
- else fac= 0.0f;
/* height switched off mist */
if (R.wrld.misthi!=0.0f && fac!=0.0f) {
/* at height misthi the mist is completely gone */
- hi= R.viewinv[0][2]*co[0]+R.viewinv[1][2]*co[1]+R.viewinv[2][2]*co[2]+R.viewinv[3][2];
+ hi = R.viewinv[0][2] * co[0] +
+ R.viewinv[1][2] * co[1] +
+ R.viewinv[2][2] * co[2] +
+ R.viewinv[3][2];
- if (hi>R.wrld.misthi) fac= 0.0f;
+ if (hi > R.wrld.misthi) {
+ fac = 0.0f;
+ }
else if (hi>0.0f) {
hi= (R.wrld.misthi-hi)/R.wrld.misthi;
fac*= hi*hi;
@@ -173,7 +188,7 @@ static void spothalo(struct LampRen *lar, ShadeInput *shi, float *intens)
p1[1]= shi->co[1]-lar->co[1];
p1[2]= -lar->co[2];
mul_m3_v3(lar->imat, p1);
- copy_v3db_v3fl(npos, p1); // npos is double!
+ copy_v3db_v3fl(npos, p1); /* npos is double! */
/* pre-scale */
npos[2] *= (double)lar->sh_zfac;
@@ -371,11 +386,12 @@ void renderspothalo(ShadeInput *shi, float col[4], float alpha)
continue;
spothalo(lar, shi, &i);
- if (i>0.0f) {
- col[3]+= i*alpha; // all premul
- col[0]+= i*lar->r*alpha;
- col[1]+= i*lar->g*alpha;
- col[2]+= i*lar->b*alpha;
+ if (i > 0.0f) {
+ const float i_alpha = i * alpha;
+ col[0] += i_alpha * lar->r;
+ col[1] += i_alpha * lar->g;
+ col[2] += i_alpha * lar->b;
+ col[3] += i_alpha; /* all premul */
}
}
}
@@ -519,7 +535,7 @@ static float area_lamp_energy_multisample(LampRen *lar, const float co[3], float
}
intens /= (float)lar->ray_totsamp;
- return pow(intens*lar->areasize, lar->k); // corrected for buttons size and lar->dist^2
+ return pow(intens * lar->areasize, lar->k); /* corrected for buttons size and lar->dist^2 */
}
static float spec(float inp, int hard)
@@ -798,7 +814,6 @@ static float OrenNayar_Diff(float nl, const float n[3], const float l[3], const
/* Minnaert diffuse */
static float Minnaert_Diff(float nl, const float n[3], const float v[3], float darkness)
{
-
float i, nv;
/* nl = dot product between surface normal and light vector */
@@ -806,12 +821,12 @@ static float Minnaert_Diff(float nl, const float n[3], const float v[3], float d
return 0.0f;
/* nv = dot product between surface normal and view vector */
- nv = n[0]*v[0]+n[1]*v[1]+n[2]*v[2];
+ nv = dot_v3v3(n, v);
if (nv < 0.0f)
nv = 0.0f;
if (darkness <= 1.0f)
- i = nl * pow(MAX2(nv*nl, 0.1f), (darkness - 1.0f) ); /*The Real model*/
+ i = nl * pow(maxf(nv * nl, 0.1f), (darkness - 1.0f) ); /*The Real model*/
else
i = nl * pow( (1.001f - nv), (darkness - 1.0f) ); /*Nvidia model*/
@@ -933,7 +948,7 @@ static void add_to_diffuse(float *diff, ShadeInput *shi, float is, float r, floa
/* MA_RAMP_IN_RESULT is exceptional */
if (ma->rampin_col==MA_RAMP_IN_RESULT) {
- // normal add
+ /* normal add */
diff[0] += r * shi->r;
diff[1] += g * shi->g;
diff[2] += b * shi->b;
@@ -1192,6 +1207,7 @@ float lamp_get_visibility(LampRen *lar, const float co[3], float lv[3], float *d
visifac*= lar->distkw/(lar->distkw+lar->ld2*dist[0]*dist[0]);
break;
case LA_FALLOFF_CURVE:
+ /* curvemapping_initialize is called from #add_render_lamp */
visifac = curvemapping_evaluateF(lar->curfalloff, 0, dist[0]/lar->dist);
break;
}
@@ -1350,7 +1366,9 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int
/* this complex construction screams for a nicer implementation! (ton) */
if (R.r.mode & R_SHADOW) {
if (ma->mode & MA_SHADOW) {
- if (lar->type==LA_HEMI || lar->type==LA_AREA);
+ if (lar->type == LA_HEMI || lar->type == LA_AREA) {
+ /* pass */
+ }
else if ((ma->mode & MA_RAYBIAS) && (lar->mode & LA_SHAD_RAY) && (vlr->flag & R_SMOOTH)) {
float thresh= shi->obr->ob->smoothresh;
if (inp>thresh)
@@ -1369,10 +1387,10 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int
/* diffuse shaders */
if (lar->mode & LA_NO_DIFF) {
- is= 0.0f; // skip shaders
+ is = 0.0f; /* skip shaders */
}
else if (lar->type==LA_HEMI) {
- is= 0.5f*inp + 0.5f;
+ is = 0.5f * inp + 0.5f;
}
else {
@@ -1384,12 +1402,13 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int
else if (ma->diff_shader==MA_DIFF_TOON) is= Toon_Diff(vn, lv, view, ma->param[0], ma->param[1]);
else if (ma->diff_shader==MA_DIFF_MINNAERT) is= Minnaert_Diff(inp, vn, view, ma->darkness);
else if (ma->diff_shader==MA_DIFF_FRESNEL) is= Fresnel_Diff(vn, lv, view, ma->param[0], ma->param[1]);
- else is= inp; // Lambert
+ else is= inp; /* Lambert */
}
-
+
/* 'is' is diffuse */
- if ((ma->shade_flag & MA_CUBIC) && is>0.0f && is<1.0f)
- is= 3.0f*is*is - 2.0f*is*is*is; // nicer termination of shades
+ if ((ma->shade_flag & MA_CUBIC) && is > 0.0f && is < 1.0f) {
+ is= 3.0f * is * is - 2.0f * is * is * is; /* nicer termination of shades */
+ }
i= is*phongcorr;
@@ -1398,7 +1417,7 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int
}
i_noshad= i;
- vn= shi->vn; // bring back original vector, we use special specular shaders for tangent
+ vn = shi->vn; /* bring back original vector, we use special specular shaders for tangent */
if (ma->mode & MA_TANGENT_V)
vn= shi->tang;
@@ -1464,8 +1483,10 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int
if (shadfac[3]>0.0f && shi->spec!=0.0f && !(lar->mode & LA_NO_SPEC) && !(lar->mode & LA_ONLYSHADOW)) {
- if (!(passflag & (SCE_PASS_COMBINED|SCE_PASS_SPEC)));
- else if (lar->type==LA_HEMI) {
+ if (!(passflag & (SCE_PASS_COMBINED | SCE_PASS_SPEC))) {
+ /* pass */
+ }
+ else if (lar->type == LA_HEMI) {
float t;
/* hemi uses no spec shaders (yet) */
@@ -1729,7 +1750,7 @@ void shade_lamp_loop(ShadeInput *shi, ShadeResult *shr)
return;
}
- if ( (ma->mode & (MA_VERTEXCOL|MA_VERTEXCOLP))== MA_VERTEXCOL ) { // vertexcolor light
+ if ( (ma->mode & (MA_VERTEXCOL|MA_VERTEXCOLP))== MA_VERTEXCOL ) { /* vertexcolor light */
shr->emit[0]= shi->r*(shi->emit+shi->vcol[0]*shi->vcol[3]);
shr->emit[1]= shi->g*(shi->emit+shi->vcol[1]*shi->vcol[3]);
shr->emit[2]= shi->b*(shi->emit+shi->vcol[2]*shi->vcol[3]);
@@ -1750,8 +1771,8 @@ void shade_lamp_loop(ShadeInput *shi, ShadeResult *shr)
if (shi->depth || shi->volume_depth)
ambient_occlusion(shi);
copy_v3_v3(shr->ao, shi->ao);
- copy_v3_v3(shr->env, shi->env); // XXX multiply
- copy_v3_v3(shr->indirect, shi->indirect); // XXX multiply
+ copy_v3_v3(shr->env, shi->env); /* XXX multiply */
+ copy_v3_v3(shr->indirect, shi->indirect); /* XXX multiply */
}
}
}
diff --git a/source/blender/render/intern/source/sss.c b/source/blender/render/intern/source/sss.c
index 46d52e83eda..9b7a521db41 100644
--- a/source/blender/render/intern/source/sss.c
+++ b/source/blender/render/intern/source/sss.c
@@ -238,7 +238,9 @@ static void approximate_Rd_rgb(ScatterSettings **ss, float rr, float *rd)
float indexf, t, idxf;
int index;
- if (rr > (RD_TABLE_RANGE_2*RD_TABLE_RANGE_2));
+ if (rr > (RD_TABLE_RANGE_2 * RD_TABLE_RANGE_2)) {
+ /* pass */
+ }
else if (rr > RD_TABLE_RANGE) {
rr= sqrt(rr);
indexf= rr*(RD_TABLE_SIZE/RD_TABLE_RANGE_2);
@@ -305,7 +307,7 @@ ScatterSettings *scatter_settings_new(float refl, float radius, float ior, float
ss->Fdr= -1.440f/ior*ior + 0.710f/ior + 0.668f + 0.0636f*ior;
ss->A= (1.0f + ss->Fdr)/(1.0f - ss->Fdr);
ss->ld= radius;
- ss->ro= MIN2(refl, 0.999f);
+ ss->ro= minf(refl, 0.999f);
ss->color= ss->ro*reflfac + (1.0f-reflfac);
ss->alpha_= compute_reduced_albedo(ss);
@@ -747,8 +749,8 @@ ScatterTree *scatter_tree_new(ScatterSettings *ss[3], float scale, float error,
tree->ss[1]= ss[1];
tree->ss[2]= ss[2];
- points= MEM_callocN(sizeof(ScatterPoint)*totpoint, "ScatterPoints");
- refpoints= MEM_callocN(sizeof(ScatterPoint*)*totpoint, "ScatterRefPoints");
+ points = MEM_callocN(sizeof(ScatterPoint) * totpoint, "ScatterPoints");
+ refpoints = MEM_callocN(sizeof(ScatterPoint *) * totpoint, "ScatterRefPoints");
tree->points= points;
tree->refpoints= refpoints;
@@ -777,8 +779,8 @@ void scatter_tree_build(ScatterTree *tree)
float mid[3], size[3];
int totpoint= tree->totpoint;
- newpoints= MEM_callocN(sizeof(ScatterPoint)*totpoint, "ScatterPoints");
- tmppoints= MEM_callocN(sizeof(ScatterPoint*)*totpoint, "ScatterTmpPoints");
+ newpoints = MEM_callocN(sizeof(ScatterPoint) * totpoint, "ScatterPoints");
+ tmppoints = MEM_callocN(sizeof(ScatterPoint *) * totpoint, "ScatterTmpPoints");
tree->tmppoints= tmppoints;
tree->arena= BLI_memarena_new(0x8000 * sizeof(ScatterNode), "sss tree arena");
diff --git a/source/blender/render/intern/source/strand.c b/source/blender/render/intern/source/strand.c
index 0e7c8a13043..dc3225b7f09 100644
--- a/source/blender/render/intern/source/strand.c
+++ b/source/blender/render/intern/source/strand.c
@@ -61,11 +61,6 @@
#include "strand.h"
#include "zbuf.h"
-/* to be removed */
-void hoco_to_zco(ZSpan *zspan, float *zco, float *hoco);
-void zspan_scanconvert_strand(ZSpan *zspan, void *handle, float *v1, float *v2, float *v3, void (*func)(void *, int, int, float, float, float) );
-void zbufsinglewire(ZSpan *zspan, int obi, int zvlnr, float *ho1, float *ho2);
-
/* *************** */
static float strand_eval_width(Material *ma, float strandco)
@@ -577,8 +572,8 @@ static void do_strand_fillac(void *handle, int x, int y, float u, float v, float
/* add to pixel list */
if (zverg < bufferz && (spart->totapixbuf[offset] < MAX_ZROW)) {
if (!spart->rectmask || zverg > maskz) {
- t = u*spart->t[0] + v*spart->t[1] + (1.0f-u-v)*spart->t[2];
- s = fabs(u*spart->s[0] + v*spart->s[1] + (1.0f-u-v)*spart->s[2]);
+ t = u * spart->t[0] + v * spart->t[1] + (1.0f - u - v) * spart->t[2];
+ s = fabsf(u * spart->s[0] + v * spart->s[1] + (1.0f - u - v) * spart->s[2]);
apn= spart->apixbuf + offset;
while (apn) {
diff --git a/source/blender/render/intern/source/sunsky.c b/source/blender/render/intern/source/sunsky.c
index 9187bea641d..94e94b98d26 100644
--- a/source/blender/render/intern/source/sunsky.c
+++ b/source/blender/render/intern/source/sunsky.c
@@ -174,7 +174,7 @@ void InitSunSky(struct SunSky *sunsky, float turb, float *toSun, float horizon_b
DirectionToThetaPhi(sunsky->toSun, &sunsky->theta, &sunsky->phi);
- sunsky->sunSolidAngle = 0.25 * M_PI * 1.39 * 1.39 / (150 * 150); // = 6.7443e-05
+ sunsky->sunSolidAngle = 0.25 * M_PI * 1.39 * 1.39 / (150 * 150); /* = 6.7443e-05 */
theta2 = sunsky->theta * sunsky->theta;
theta3 = theta2 * sunsky->theta;
@@ -183,7 +183,7 @@ void InitSunSky(struct SunSky *sunsky, float turb, float *toSun, float horizon_b
chi = (4.0f / 9.0f - T / 120.0f) * ((float)M_PI - 2.0f * sunsky->theta);
sunsky->zenith_Y = (4.0453f * T - 4.9710f) * tanf(chi) - 0.2155f * T + 2.4192f;
- sunsky->zenith_Y *= 1000; // conversion from kcd/m^2 to cd/m^2
+ sunsky->zenith_Y *= 1000; /* conversion from kcd/m^2 to cd/m^2 */
if (sunsky->zenith_Y <= 0)
sunsky->zenith_Y = 1e-6;
@@ -272,10 +272,10 @@ void GetSkyXYZRadiance(struct SunSky *sunsky, float theta, float phi, float colo
gamma = AngleBetween(theta, phi, sunsky->theta, sunsky->phi);
- // Compute xyY values
+ /* Compute xyY values */
x = PerezFunction(sunsky, sunsky->perez_x, theta, gamma, sunsky->zenith_x);
y = PerezFunction(sunsky, sunsky->perez_y, theta, gamma, sunsky->zenith_y);
- Y = 6.666666667e-5f *nfade *hfade *PerezFunction(sunsky, sunsky->perez_Y, theta, gamma, sunsky->zenith_Y);
+ Y = 6.666666667e-5f * nfade * hfade * PerezFunction(sunsky, sunsky->perez_Y, theta, gamma, sunsky->zenith_Y);
if (sunsky->sky_exposure != 0.0f)
Y = 1.0 - exp(Y * sunsky->sky_exposure);
@@ -340,13 +340,13 @@ static void ComputeAttenuatedSunlight(float theta, int turbidity, float fTau[3])
m = 1.0f / (cosf(theta) + 0.15f * powf(93.885f - theta / (float)M_PI * 180.0f, -1.253f));
for (i = 0; i < 3; i++) {
- // Rayleigh Scattering
+ /* Rayleigh Scattering */
fTauR = expf(-m * 0.008735f * powf(fLambda[i], (float)(-4.08f)));
- // Aerosal (water + dust) attenuation
+ /* Aerosal (water + dust) attenuation */
fTauA = exp(-m * fBeta * powf(fLambda[i], -fAlpha));
- fTau[i] = fTauR * fTauA;
+ fTau[i] = fTauR * fTauA;
}
}
@@ -360,13 +360,13 @@ static void ComputeAttenuatedSunlight(float theta, int turbidity, float fTau[3])
* rayf, Rayleigh scattering factor, this factor currently call with 1.0
* inscattf, inscatter light factor that range from 0.0 to 1.0, 0.0 means no inscatter light and 1.0 means full inscatter light
* extincf, extinction light factor that range from 0.0 to 1.0, 0.0 means no extinction and 1.0 means full extinction
- * disf, is distance factor, multiplyed to pixle's z value to compute each pixle's distance to camera,
+ * disf, is distance factor, multiplied to pixle's z value to compute each pixle's distance to camera,
* */
void InitAtmosphere(struct SunSky *sunSky, float sun_intens, float mief, float rayf,
float inscattf, float extincf, float disf)
{
const float pi = M_PI;
- const float n = 1.003f; // refractive index
+ const float n = 1.003f; /* refractive index */
const float N = 2.545e25;
const float pn = 0.035f;
const float T = 2.0f;
@@ -406,16 +406,16 @@ void InitAtmosphere(struct SunSky *sunSky, float sun_intens, float mief, float r
vLambda4[1] = fLambda4[1];
vLambda4[2] = fLambda4[2];
- // Rayleigh scattering constants.
+ /* Rayleigh scattering constants. */
fTemp = pi * pi * (n * n - 1) * (n * n - 1) * (6 + 3 * pn) / (6 - 7 * pn) / N;
fBeta = 8 * fTemp * pi / 3;
-
+
VEC3OPF(sunSky->atm_BetaRay, vLambda4, *, fBeta);
fBetaDash = fTemp / 2;
VEC3OPF(sunSky->atm_BetaDashRay, vLambda4, *, fBetaDash);
-
- // Mie scattering constants.
+
+ /* Mie scattering constants. */
fTemp2 = 0.434f * c * (2 * pi) * (2 * pi) * 0.5f;
VEC3OPF(sunSky->atm_BetaDashMie, vLambda2, *, fTemp2);
@@ -457,23 +457,23 @@ void AtmospherePixleShader(struct SunSky *sunSky, float view[3], float s, float
sunDirection[0] = sunSky->toSun[0];
sunDirection[1] = sunSky->toSun[1];
sunDirection[2] = sunSky->toSun[2];
-
- costheta = dot_v3v3(view, sunDirection); // cos(theta)
- Phase_1 = 1 + (costheta * costheta); // Phase_1
-
+
+ costheta = dot_v3v3(view, sunDirection); /* cos(theta) */
+ Phase_1 = 1 + (costheta * costheta); /* Phase_1 */
+
VEC3OPF(sunSky->atm_BetaRay, sunSky->atm_BetaRay, *, sunSky->atm_BetaRayMultiplier);
VEC3OPF(sunSky->atm_BetaMie, sunSky->atm_BetaMie, *, sunSky->atm_BetaMieMultiplier);
VEC3OPV(sunSky->atm_BetaRM, sunSky->atm_BetaRay, +, sunSky->atm_BetaMie);
-
- //e^(-(beta_1 + beta_2) * s) = E1
+
+ /* e^(-(beta_1 + beta_2) * s) = E1 */
VEC3OPF(E1, sunSky->atm_BetaRM, *, -s / (float)M_LN2);
E1[0] = exp(E1[0]);
E1[1] = exp(E1[1]);
E1[2] = exp(E1[2]);
copy_v3_v3(E, E1);
-
- //Phase2(theta) = (1-g^2)/(1+g-2g*cos(theta))^(3/2)
+
+ /* Phase2(theta) = (1-g^2)/(1+g-2g*cos(theta))^(3/2) */
fTemp = 1 + sunSky->atm_HGg - 2 * sunSky->atm_HGg * costheta;
fTemp = fTemp * sqrtf(fTemp);
Phase_2 = (1 - sunSky->atm_HGg * sunSky->atm_HGg) / fTemp;
@@ -491,8 +491,8 @@ void AtmospherePixleShader(struct SunSky *sunSky, float view[3], float s, float
VEC3OPF(I, I, *, sunSky->atm_InscatteringMultiplier);
VEC3OPF(E, E, *, sunSky->atm_ExtinctionMultiplier);
-
- //scale to color sun
+
+ /* scale to color sun */
ComputeAttenuatedSunlight(sunSky->theta, sunSky->turbidity, sunColor);
VEC3OPV(E, E, *, sunColor);
diff --git a/source/blender/render/intern/source/texture_ocean.c b/source/blender/render/intern/source/texture_ocean.c
index 4ef88e4740a..b2bc635cba7 100644
--- a/source/blender/render/intern/source/texture_ocean.c
+++ b/source/blender/render/intern/source/texture_ocean.c
@@ -36,13 +36,14 @@
#include "BKE_modifier.h"
#include "BKE_ocean.h"
-#include "BKE_utildefines.h"
#include "render_types.h"
#include "RE_shader_ext.h"
#include "texture.h"
+#include "texture_ocean.h" /* own include */
+
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
/* defined in pipeline.c, is hardcopy of active dynamic allocated Render */
@@ -81,14 +82,14 @@ int ocean_texture(Tex *tex, float *texvec, TexResult *texres)
if (omd->oceancache && omd->cached == TRUE) {
CLAMP(cfra, omd->bakestart, omd->bakeend);
- cfra -= omd->bakestart; // shift to 0 based
+ cfra -= omd->bakestart; /* shift to 0 based */
BKE_ocean_cache_eval_uv(omd->oceancache, &ocr, cfra, u, v);
}
- else { // non-cached
+ else { /* non-cached */
- if (G.rendering)
+ if (G.is_rendering)
BKE_ocean_eval_uv_catrom(omd->ocean, &ocr, u, v);
else
BKE_ocean_eval_uv(omd->ocean, &ocr, u, v);
diff --git a/source/blender/render/intern/source/volume_precache.c b/source/blender/render/intern/source/volume_precache.c
index ea6b9b890ac..8a92695a15e 100644
--- a/source/blender/render/intern/source/volume_precache.c
+++ b/source/blender/render/intern/source/volume_precache.c
@@ -261,14 +261,14 @@ static void lightcache_filter2(VolumePrecache *vp)
}
#endif
-BLI_INLINE int ms_I(int x, int y, int z, int *n) //has a pad of 1 voxel surrounding the core for boundary simulation
-{
+BLI_INLINE int ms_I(int x, int y, int z, int *n) /* has a pad of 1 voxel surrounding the core for boundary simulation */
+{
/* different ordering to light cache */
- return x*(n[1]+2)*(n[2]+2) + y*(n[2]+2) + z;
+ return x*(n[1]+2)*(n[2]+2) + y*(n[2]+2) + z;
}
-BLI_INLINE int v_I_pad(int x, int y, int z, int *n) //has a pad of 1 voxel surrounding the core for boundary simulation
-{
+BLI_INLINE int v_I_pad(int x, int y, int z, int *n) /* has a pad of 1 voxel surrounding the core for boundary simulation */
+{
/* same ordering to light cache, with padding */
return z*(n[1]+2)*(n[0]+2) + y*(n[0]+2) + x;
}
@@ -465,7 +465,7 @@ static void multiple_scattering_diffusion(Render *re, VolumePrecache *vp, Materi
-#if 0 // debug stuff
+#if 0 /* debug stuff */
static void *vol_precache_part_test(void *data)
{
VolPrecachePart *pa = data;
@@ -526,10 +526,10 @@ static void *vol_precache_part(void *data)
/* convert from world->camera space for shading */
mul_v3_m4v3(cco, pa->viewmat, co);
-
+
i = BLI_VOXEL_INDEX(x, y, z, res);
-
- // don't bother if the point is not inside the volume mesh
+
+ /* don't bother if the point is not inside the volume mesh */
if (!point_inside_obi(tree, obi, cco)) {
obi->volume_precache->data_r[i] = -1.0f;
obi->volume_precache->data_g[i] = -1.0f;
@@ -563,7 +563,7 @@ static void precache_setup_shadeinput(Render *re, ObjectInstanceRen *obi, Materi
shi->mask= 1;
shi->mat = ma;
shi->vlr = NULL;
- memcpy(&shi->r, &shi->mat->r, 23*sizeof(float)); // note, keep this synced with render_types.h
+ memcpy(&shi->r, &shi->mat->r, 23*sizeof(float)); /* note, keep this synced with render_types.h */
shi->har= shi->mat->har;
shi->obi= obi;
shi->obr= obi->obr;
@@ -757,7 +757,8 @@ static void vol_precache_objectinstance_threads(Render *re, ObjectInstanceRen *o
BLI_freelistN(&re->volume_precache_parts);
if (tree) {
- //TODO: makeraytree_object creates a tree and saves it on OBI, if we free this tree we should also clear other pointers to it
+ /* TODO: makeraytree_object creates a tree and saves it on OBI,
+ * if we free this tree we should also clear other pointers to it */
//RE_rayobject_free(tree);
//tree= NULL;
}
diff --git a/source/blender/render/intern/source/volumetric.c b/source/blender/render/intern/source/volumetric.c
index c1f85914479..220fcd3e986 100644
--- a/source/blender/render/intern/source/volumetric.c
+++ b/source/blender/render/intern/source/volumetric.c
@@ -253,9 +253,9 @@ static float metadensity(Object *ob, const float co[3])
/* element rotation transform */
float tp[3] = {ml->x - tco[0], ml->y - tco[1], ml->z - tco[2]};
quat_to_mat3(bmat, ml->quat);
- transpose_m3(bmat); // rot.only, so inverse == transpose
+ transpose_m3(bmat); /* rot.only, so inverse == transpose */
mul_m3_v3(bmat, tp);
-
+
/* MB_BALL default */
switch (ml->type) {
case MB_ELIPSOID:
@@ -263,14 +263,14 @@ static float metadensity(Object *ob, const float co[3])
break;
case MB_CUBE:
tp[2] = (tp[2] > ml->expz) ? (tp[2] - ml->expz) : ((tp[2] < -ml->expz) ? (tp[2] + ml->expz) : 0.f);
- // no break, xy as plane
+ /* no break, xy as plane */
case MB_PLANE:
tp[1] = (tp[1] > ml->expy) ? (tp[1] - ml->expy) : ((tp[1] < -ml->expy) ? (tp[1] + ml->expy) : 0.f);
- // no break, x as tube
+ /* no break, x as tube */
case MB_TUBE:
tp[0] = (tp[0] > ml->expx) ? (tp[0] - ml->expx) : ((tp[0] < -ml->expx) ? (tp[0] + ml->expx) : 0.f);
}
-
+
/* ml->rad2 is not set */
dist2 = 1.0f - (dot_v3v3(tp, tp) / (ml->rad * ml->rad));
if (dist2 > 0.f)
@@ -289,7 +289,7 @@ float vol_get_density(struct ShadeInput *shi, const float co[3])
if (shi->mat->mapto_textured & MAP_DENSITY)
do_volume_tex(shi, co, MAP_DENSITY, NULL, &density, &R);
- // if meta-object, modulate by metadensity without increasing it
+ /* if meta-object, modulate by metadensity without increasing it */
if (shi->obi->obr->ob->type == OB_MBALL) {
const float md = metadensity(shi->obi->obr->ob, co);
if (md < 1.f) density *= md;
@@ -415,7 +415,7 @@ static void vol_get_transmittance_seg(ShadeInput *shi, float tr[3], float stepsi
vol_get_sigma_t(shi, sigma_t, co);
- /* homogenous volume within the sampled distance */
+ /* homogeneous volume within the sampled distance */
tau[0] += stepd * sigma_t[0];
tau[1] += stepd * sigma_t[1];
tau[2] += stepd * sigma_t[2];
diff --git a/source/blender/render/intern/source/voxeldata.c b/source/blender/render/intern/source/voxeldata.c
index 7d54f77fc90..d73171648fb 100644
--- a/source/blender/render/intern/source/voxeldata.c
+++ b/source/blender/render/intern/source/voxeldata.c
@@ -240,7 +240,7 @@ static void init_frame_smoke(VoxelData *vd, float cfra)
copy_v3_v3_int(vd->resol, smd->domain->res);
totRes = vd_resol_size(vd);
- // scaling heat values from -2.0-2.0 to 0.0-1.0
+ /* scaling heat values from -2.0-2.0 to 0.0-1.0 */
vd->dataset = MEM_mapallocN(sizeof(float) * (totRes), "smoke data");
@@ -250,7 +250,7 @@ static void init_frame_smoke(VoxelData *vd, float cfra)
vd->dataset[i] = (heat[i] + 2.0f) / 4.0f;
}
- //vd->dataset = smoke_get_heat(smd->domain->fluid);
+ /* vd->dataset = smoke_get_heat(smd->domain->fluid); */
}
else if (vd->smoked_type == TEX_VD_SMOKEVEL) {
size_t totRes;
@@ -260,7 +260,7 @@ static void init_frame_smoke(VoxelData *vd, float cfra)
copy_v3_v3_int(vd->resol, smd->domain->res);
totRes = vd_resol_size(vd);
- // scaling heat values from -2.0-2.0 to 0.0-1.0
+ /* scaling heat values from -2.0-2.0 to 0.0-1.0 */
vd->dataset = MEM_mapallocN(sizeof(float) * (totRes), "smoke data");
xvel = smoke_get_velocity_x(smd->domain->fluid);
@@ -290,7 +290,7 @@ static void init_frame_smoke(VoxelData *vd, float cfra)
/* always store copy, as smoke internal data can change */
vd->dataset = MEM_mapallocN(sizeof(float) * (totRes), "smoke data");
memcpy(vd->dataset, density, sizeof(float) * totRes);
- } // end of fluid condition
+ } /* end of fluid condition */
}
}
diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c
index c88858c44da..ba62baae897 100644
--- a/source/blender/render/intern/source/zbuf.c
+++ b/source/blender/render/intern/source/zbuf.c
@@ -149,8 +149,8 @@ static void zbuf_add_to_span(ZSpan *zspan, const float *v1, const float *v2)
xs0= dx0*(minv[1]-my2) + minv[0];
}
else {
- dx0= 0.0f;
- xs0= MIN2(minv[0], maxv[0]);
+ dx0 = 0.0f;
+ xs0 = minf(minv[0], maxv[0]);
}
/* empty span */
@@ -443,7 +443,7 @@ static void zbuflineAc(ZSpan *zspan, int obi, int zvlnr, const float vec1[3], co
mask= zspan->mask;
- if (fabs(dx) > fabs(dy)) {
+ if (fabsf(dx) > fabsf(dy)) {
/* all lines from left to right */
if (vec1[0]<vec2[0]) {
@@ -466,7 +466,7 @@ static void zbuflineAc(ZSpan *zspan, int obi, int zvlnr, const float vec1[3], co
vergz= v1[2];
vergz-= zspan->polygon_offset;
dz= (v2[2]-v1[2])/dx;
- if (vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow
+ if (vergz>0x50000000 && dz>0) maxtest= 1; /* prevent overflow */
rectz= (int *)(zspan->arectz+zspan->rectx*(oldy) +start);
rectmask= (int *)(zspan->rectmask+zspan->rectx*(oldy) +start);
@@ -537,7 +537,7 @@ static void zbuflineAc(ZSpan *zspan, int obi, int zvlnr, const float vec1[3], co
vergz= v1[2];
vergz-= zspan->polygon_offset;
dz= (v2[2]-v1[2])/dy;
- if (vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow
+ if (vergz>0x50000000 && dz>0) maxtest= 1; /* prevent overflow */
rectz= (int *)( zspan->arectz+ (start)*zspan->rectx+ oldx );
rectmask= (int *)( zspan->rectmask+ (start)*zspan->rectx+ oldx );
@@ -597,7 +597,7 @@ static void zbufline(ZSpan *zspan, int obi, int zvlnr, const float vec1[3], cons
dx= vec2[0]-vec1[0];
dy= vec2[1]-vec1[1];
- if (fabs(dx) > fabs(dy)) {
+ if (fabsf(dx) > fabsf(dy)) {
/* all lines from left to right */
if (vec1[0]<vec2[0]) {
@@ -619,7 +619,7 @@ static void zbufline(ZSpan *zspan, int obi, int zvlnr, const float vec1[3], cons
vergz= floor(v1[2]);
dz= floor((v2[2]-v1[2])/dx);
- if (vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow
+ if (vergz>0x50000000 && dz>0) maxtest= 1; /* prevent overflow */
rectz= zspan->rectz + oldy*zspan->rectx+ start;
rectp= zspan->rectp + oldy*zspan->rectx+ start;
@@ -678,7 +678,7 @@ static void zbufline(ZSpan *zspan, int obi, int zvlnr, const float vec1[3], cons
vergz= floor(v1[2]);
dz= floor((v2[2]-v1[2])/dy);
- if (vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow
+ if (vergz>0x50000000 && dz>0) maxtest= 1; /* prevent overflow */
rectz= zspan->rectz + start*zspan->rectx+ oldx;
rectp= zspan->rectp + start*zspan->rectx+ oldx;
@@ -727,7 +727,7 @@ static void zbufline_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), con
dx= vec2[0]-vec1[0];
dy= vec2[1]-vec1[1];
- if (fabs(dx) > fabs(dy)) {
+ if (fabsf(dx) > fabsf(dy)) {
/* all lines from left to right */
if (vec1[0]<vec2[0]) {
@@ -749,7 +749,7 @@ static void zbufline_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), con
vergz= floor(v1[2]);
dz= floor((v2[2]-v1[2])/dx);
- if (vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow
+ if (vergz>0x50000000 && dz>0) maxtest= 1; /* prevent overflow */
rectz= zspan->rectz + oldy*zspan->rectx+ start;
if (zspan->rectz1)
@@ -806,8 +806,8 @@ static void zbufline_onlyZ(ZSpan *zspan, int UNUSED(obi), int UNUSED(zvlnr), con
vergz= floor(v1[2]);
dz= floor((v2[2]-v1[2])/dy);
- if (vergz>0x50000000 && dz>0) maxtest= 1; // prevent overflow
-
+ if (vergz>0x50000000 && dz>0) maxtest= 1; /* prevent overflow */
+
rectz= zspan->rectz + start*zspan->rectx+ oldx;
if (zspan->rectz1)
rectz1= zspan->rectz1 + start*zspan->rectx+ oldx;
@@ -1447,21 +1447,21 @@ void zspan_scanconvert_strand(ZSpan *zspan, void *handle, float *v1, float *v2,
zxd= -(double)x0/(double)z0;
zyd= -(double)y0/(double)z0;
zy0= ((double)my2)*zyd + (double)xx1;
-
- z1= 1.0f; // (u1 - u2)
- z2= 0.0f; // (u2 - u3)
+
+ z1= 1.0f; /* (u1 - u2) */
+ z2= 0.0f; /* (u2 - u3) */
x0= y1*z2-z1*y2;
y0= z1*x2-x1*z2;
-
- xx1= (x0*v1[0] + y0*v1[1])/z0 + 1.0f;
+
+ xx1= (x0*v1[0] + y0*v1[1])/z0 + 1.0f;
uxd= -(double)x0/(double)z0;
uyd= -(double)y0/(double)z0;
uy0= ((double)my2)*uyd + (double)xx1;
- z1= -1.0f; // (v1 - v2)
- z2= 1.0f; // (v2 - v3)
-
+ z1= -1.0f; /* (v1 - v2) */
+ z2= 1.0f; /* (v2 - v3) */
+
x0= y1*z2-z1*y2;
y0= z1*x2-x1*z2;
@@ -1535,23 +1535,23 @@ void zspan_scanconvert(ZSpan *zspan, void *handle, float *v1, float *v2, float *
y1= v1[1]- v2[1];
y2= v2[1]- v3[1];
- z1= 1.0f; // (u1 - u2)
- z2= 0.0f; // (u2 - u3)
-
+ z1= 1.0f; /* (u1 - u2) */
+ z2= 0.0f; /* (u2 - u3) */
+
x0= y1*z2-z1*y2;
y0= z1*x2-x1*z2;
z0= x1*y2-y1*x2;
-
+
if (z0==0.0f) return;
-
- xx1= (x0*v1[0] + y0*v1[1])/z0 + 1.0f;
+
+ xx1= (x0*v1[0] + y0*v1[1])/z0 + 1.0f;
uxd= -(double)x0/(double)z0;
uyd= -(double)y0/(double)z0;
uy0= ((double)my2)*uyd + (double)xx1;
- z1= -1.0f; // (v1 - v2)
- z2= 1.0f; // (v2 - v3)
-
+ z1= -1.0f; /* (v1 - v2) */
+ z2= 1.0f; /* (v2 - v3) */
+
x0= y1*z2-z1*y2;
y0= z1*x2-x1*z2;
@@ -1626,7 +1626,7 @@ static void clippyra(float *labda, float *v1, float *v2, int *b2, int *b3, int a
v13= clipcrop*v1[3];
}
/* according the original article by Liang&Barsky, for clipping of
- * homogenous coordinates with viewplane, the value of "0" is used instead of "-w" .
+ * homogeneous coordinates with viewplane, the value of "0" is used instead of "-w" .
* This differs from the other clipping cases (like left or top) and I considered
* it to be not so 'homogenic'. But later it has proven to be an error,
* who would have thought that of L&B!
@@ -2038,7 +2038,9 @@ static void zmask_rect(int *rectz, int *rectp, int xs, int ys, int neg)
MEM_freeN(temprectp);
- if (neg); /* z values for negative are already correct */
+ if (neg) {
+ /* z values for negative are already correct */
+ }
else {
/* clear not filled z values */
for (len= xs*ys -1; len>=0; len--) {
@@ -3476,7 +3478,7 @@ void zbuffer_abuf_shadow(Render *re, LampRen *lar, float winmat[][4], APixstr *A
/* speed pointer NULL = sky, we clear */
/* else if either alpha is full or no solid was filled in: copy speed */
/* else fill in minimum speed */
-void add_transp_speed(RenderLayer *rl, int offset, float *speed, float alpha, intptr_t *rdrect)
+static void add_transp_speed(RenderLayer *rl, int offset, float speed[4], float alpha, intptr_t *rdrect)
{
RenderPass *rpass;
@@ -3525,7 +3527,7 @@ static void add_transp_obindex(RenderLayer *rl, int offset, Object *ob)
/* ONLY OSA! merge all shaderesult samples to one */
/* target should have been cleared */
-void merge_transp_passes(RenderLayer *rl, ShadeResult *shr)
+static void merge_transp_passes(RenderLayer *rl, ShadeResult *shr)
{
RenderPass *rpass;
float weight= 1.0f/((float)R.osa);
@@ -3627,7 +3629,7 @@ void merge_transp_passes(RenderLayer *rl, ShadeResult *shr)
}
-void add_transp_passes(RenderLayer *rl, int offset, ShadeResult *shr, float alpha)
+static void add_transp_passes(RenderLayer *rl, int offset, ShadeResult *shr, float alpha)
{
RenderPass *rpass;
@@ -3874,7 +3876,7 @@ static int addtosamp_shr(ShadeResult *samp_shr, ShadeSample *ssamp, int addpassf
addAlphaUnderFloat(samp_shr->combined, shr->combined);
- samp_shr->z= MIN2(samp_shr->z, shr->z);
+ samp_shr->z = minf(samp_shr->z, shr->z);
if (addpassflag & SCE_PASS_VECTOR) {
copy_v4_v4(samp_shr->winspeed, shr->winspeed);
@@ -3975,9 +3977,9 @@ unsigned short *zbuffer_transp_shade(RenderPart *pa, RenderLayer *rl, float *pas
if (R.test_break(R.tbh))
return NULL;
- if (R.osa>16) { /* MAX_OSA */
+ if (R.osa > 16) { /* MAX_OSA */
printf("zbuffer_transp_shade: osa too large\n");
- G.afbreek= 1;
+ G.is_break = TRUE;
return NULL;
}
diff --git a/source/blender/windowmanager/CMakeLists.txt b/source/blender/windowmanager/CMakeLists.txt
index 275aeb3317c..e6782121b69 100644
--- a/source/blender/windowmanager/CMakeLists.txt
+++ b/source/blender/windowmanager/CMakeLists.txt
@@ -36,6 +36,7 @@ set(INC
../makesdna
../makesrna
../nodes
+ ../compositor
../render/extern/include
../../gameengine/BlenderRoutines
../../../intern/elbeem/extern
@@ -53,6 +54,7 @@ set(INC_SYS
set(SRC
intern/wm.c
+ intern/wm_playanim.c
intern/wm_cursors.c
intern/wm_dragdrop.c
intern/wm_draw.c
@@ -143,4 +145,8 @@ if(WIN322)
)
endif()
+if(WITH_COMPOSITOR)
+ add_definitions(-DWITH_COMPOSITOR)
+endif()
+
blender_add_lib_nolist(bf_windowmanager "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/source/blender/windowmanager/SConscript b/source/blender/windowmanager/SConscript
index 57d632c7d04..68fdbec2cfa 100644
--- a/source/blender/windowmanager/SConscript
+++ b/source/blender/windowmanager/SConscript
@@ -10,7 +10,7 @@ sources = env.Glob('intern/*.c')
incs = '. ../editors/include ../python ../makesdna ../blenlib ../blenkernel'
incs += ' ../nodes ../imbuf ../blenloader ../render/extern/include'
incs += ' ../radiosity/extern/include'
-incs += ' ../makesrna ../gpu ../blenfont ../bmesh'
+incs += ' ../makesrna ../gpu ../blenfont ../bmesh ../compositor'
incs += ' #/intern/guardedalloc #/intern/memutil #/intern/ghost'
incs += ' #/intern/elbeem #/extern/glew/include'
@@ -43,4 +43,7 @@ if env['BF_BUILDINFO']:
if env['WITH_BF_INTERNATIONAL']:
defs.append('WITH_INTERNATIONAL')
+if env['WITH_BF_COMPOSITOR']:
+ defs.append("WITH_COMPOSITOR")
+
env.BlenderLib ( 'bf_windowmanager', sources, Split(incs), defines=defs, libtype=['core'], priority=[5] )
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index 5011c785e90..e7b7f679ce3 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -65,14 +65,24 @@ struct ImBuf;
typedef struct wmJob wmJob;
/* general API */
-void WM_setprefsize (int stax, int stay, int sizx, int sizy);
-void WM_setinitialstate_fullscreen(void);
-void WM_setinitialstate_normal(void);
+void WM_init_state_size_set (int stax, int stay, int sizx, int sizy);
+void WM_init_state_fullscreen_set(void);
+void WM_init_state_normal_set(void);
void WM_init (struct bContext *C, int argc, const char **argv);
void WM_exit_ext (struct bContext *C, const short do_python);
-void WM_exit (struct bContext *C);
-void WM_main (struct bContext *C);
+
+void WM_exit (struct bContext *C)
+#if defined(__GNUC__) || defined(__clang__)
+__attribute__((noreturn))
+#endif
+;
+
+void WM_main (struct bContext *C)
+#if defined(__GNUC__) || defined(__clang__)
+__attribute__((noreturn))
+#endif
+;
int WM_init_game (struct bContext *C);
void WM_init_splash (struct bContext *C);
@@ -82,7 +92,7 @@ void WM_check (struct bContext *C);
struct wmWindow *WM_window_open (struct bContext *C, struct rcti *rect);
- /* defines for 'type' WM_window_open_temp */
+ /* defines for 'type' WM_window_open_temp */
#define WM_WINDOW_RENDER 0
#define WM_WINDOW_USERPREFS 1
#define WM_WINDOW_FILESEL 2
@@ -92,21 +102,21 @@ void WM_window_open_temp (struct bContext *C, struct rcti *position, int type);
/* files */
-int WM_read_homefile_exec(struct bContext *C, struct wmOperator *op);
-int WM_read_homefile (struct bContext *C, struct ReportList *reports, short from_memory);
-int WM_write_homefile (struct bContext *C, struct wmOperator *op);
-void WM_read_file (struct bContext *C, const char *filepath, struct ReportList *reports);
-int WM_write_file (struct bContext *C, const char *target, int fileflags, struct ReportList *reports, int copy);
-void WM_autosave_init (struct wmWindowManager *wm);
+int WM_homefile_read_exec(struct bContext *C, struct wmOperator *op);
+int WM_homefile_read(struct bContext *C, struct ReportList *reports, short from_memory);
+int WM_homefile_write_exec(struct bContext *C, struct wmOperator *op);
+void WM_file_read(struct bContext *C, const char *filepath, struct ReportList *reports);
+int WM_file_write(struct bContext *C, const char *target, int fileflags, struct ReportList *reports, int copy);
+void WM_autosave_init(struct wmWindowManager *wm);
/* mouse cursors */
void WM_cursor_set (struct wmWindow *win, int curs);
void WM_cursor_modal (struct wmWindow *win, int curs);
void WM_cursor_restore (struct wmWindow *win);
void WM_cursor_wait (int val);
-void WM_cursor_grab(struct wmWindow *win, int wrap, int hide, int *bounds);
-void WM_cursor_ungrab(struct wmWindow *win);
-void WM_timecursor (struct wmWindow *win, int nr);
+void WM_cursor_grab_enable(struct wmWindow *win, int wrap, int hide, int bounds[4]);
+void WM_cursor_grab_disable(struct wmWindow *win, int mouse_ungrab_xy[2]);
+void WM_cursor_time (struct wmWindow *win, int nr);
void *WM_paint_cursor_activate(struct wmWindowManager *wm,
int (*poll)(struct bContext *C),
@@ -145,6 +155,7 @@ struct wmEventHandler *WM_event_add_dropbox_handler(ListBase *handlers, ListBase
/* mouse */
void WM_event_add_mousemove(struct bContext *C);
+void WM_event_add_mousemove_window(struct wmWindow *window);
int WM_modal_tweak_exit(struct wmEvent *evt, int tweak_event);
/* notifiers */
@@ -182,7 +193,7 @@ void WM_operator_free (struct wmOperator *op);
void WM_operator_stack_clear(struct wmWindowManager *wm);
struct wmOperatorType *WM_operatortype_find(const char *idnamem, int quiet);
-struct GHashIterator *WM_operatortype_iter(void);
+struct GHashIterator *WM_operatortype_iter(void);
void WM_operatortype_append (void (*opfunc)(struct wmOperatorType*));
void WM_operatortype_append_ptr (void (*opfunc)(struct wmOperatorType*, void *), void *userdata);
void WM_operatortype_append_macro_ptr (void (*opfunc)(struct wmOperatorType*, void *), void *userdata);
@@ -208,6 +219,8 @@ void WM_operator_properties_create(struct PointerRNA *ptr, const char *opstring
void WM_operator_properties_create_ptr(struct PointerRNA *ptr, struct wmOperatorType *ot);
void WM_operator_properties_free(struct PointerRNA *ptr);
void WM_operator_properties_filesel(struct wmOperatorType *ot, int filter, short type, short action, short flag, short display);
+void WM_operator_properties_border(struct wmOperatorType *ot);
+void WM_operator_properties_border_to_rcti(struct wmOperator *op, struct rcti *rect);
void WM_operator_properties_gesture_border(struct wmOperatorType *ot, int extend);
void WM_operator_properties_mouse_select(struct wmOperatorType *ot);
void WM_operator_properties_gesture_straightline(struct wmOperatorType *ot, int cursor);
@@ -241,11 +254,11 @@ void WM_operator_bl_idname(char *to, const char *from);
void WM_operator_py_idname(char *to, const char *from);
/* *************** menu types ******************** */
-void WM_menutype_init(void);
-struct MenuType *WM_menutype_find(const char *idname, int quiet);
-int WM_menutype_add(struct MenuType* mt);
-void WM_menutype_freelink(struct MenuType* mt);
-void WM_menutype_free(void);
+void WM_menutype_init(void);
+struct MenuType *WM_menutype_find(const char *idname, int quiet);
+int WM_menutype_add(struct MenuType *mt);
+void WM_menutype_freelink(struct MenuType *mt);
+void WM_menutype_free(void);
/* default operator callbacks for border/circle/lasso */
int WM_border_select_invoke (struct bContext *C, struct wmOperator *op, struct wmEvent *event);
@@ -260,7 +273,7 @@ int WM_gesture_lines_cancel(struct bContext *C, struct wmOperator *op);
int WM_gesture_lasso_invoke(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
int WM_gesture_lasso_modal(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
int WM_gesture_lasso_cancel(struct bContext *C, struct wmOperator *op);
-int (*WM_gesture_lasso_path_to_array(struct bContext *C, struct wmOperator *op, int *mcords_tot))[2];
+const int (*WM_gesture_lasso_path_to_array(struct bContext *C, struct wmOperator *op, int *mcords_tot))[2];
int WM_gesture_straightline_invoke(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
int WM_gesture_straightline_modal(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
int WM_gesture_straightline_cancel(struct bContext *C, struct wmOperator *op);
@@ -295,30 +308,51 @@ void wmOrtho (float x1, float x2, float y1, float y2, float n, float f);
void wmOrtho2 (float x1, float x2, float y1, float y2);
/* utilities */
-void WM_set_framebuffer_index_color(int index);
+void WM_framebuffer_index_set(int index);
int WM_framebuffer_to_index(unsigned int col);
/* threaded Jobs Manager */
-#define WM_JOB_PRIORITY 1
-#define WM_JOB_EXCL_RENDER 2
-#define WM_JOB_PROGRESS 4
-#define WM_JOB_SUSPEND 8
-
-struct wmJob *WM_jobs_get(struct wmWindowManager *wm, struct wmWindow *win, void *owner, const char *name, int flag);
-
-int WM_jobs_test(struct wmWindowManager *wm, void *owner);
+enum {
+ WM_JOB_PRIORITY = (1 << 0),
+ WM_JOB_EXCL_RENDER = (1 << 1),
+ WM_JOB_PROGRESS = (1 << 2),
+ WM_JOB_SUSPEND = (1 << 3)
+};
+
+/* identifying jobs by owner alone is unreliable, this isnt saved, order can change */
+enum {
+ WM_JOB_TYPE_ANY = -1,
+ WM_JOB_TYPE_COMPOSITE,
+ WM_JOB_TYPE_RENDER,
+ WM_JOB_TYPE_RENDER_PREVIEW, /* UI preview */
+ WM_JOB_TYPE_SCREENCAST,
+ WM_JOB_TYPE_OBJECT_SIM_OCEAN,
+ WM_JOB_TYPE_OBJECT_SIM_FLUID,
+ WM_JOB_TYPE_OBJECT_BAKE_TEXTURE,
+ WM_JOB_TYPE_FILESEL_THUMBNAIL,
+ WM_JOB_TYPE_CLIP_BUILD_PROXY,
+ WM_JOB_TYPE_CLIP_TRACK_MARKERS,
+ WM_JOB_TYPE_CLIP_SOLVE_CAMERA,
+ WM_JOB_TYPE_SEQ_BUILD_PROXY,
+ /* add as needed, screencast, seq proxy build
+ * if having hard coded values is a problem */
+};
+
+struct wmJob *WM_jobs_get(struct wmWindowManager *wm, struct wmWindow *win, void *owner, const char *name, int flag, int job_type);
+
+int WM_jobs_test(struct wmWindowManager *wm, void *owner, int job_type);
float WM_jobs_progress(struct wmWindowManager *wm, void *owner);
-char *WM_jobs_name(struct wmWindowManager *wm, void *owner);
-
-int WM_jobs_is_running(struct wmJob *);
-void* WM_jobs_get_customdata(struct wmJob *);
-void WM_jobs_customdata(struct wmJob *, void *customdata, void (*free)(void *));
-void WM_jobs_timer(struct wmJob *, double timestep, unsigned int note, unsigned int endnote);
-void WM_jobs_callbacks(struct wmJob *,
- void (*startjob)(void *, short *, short *, float *),
- void (*initjob)(void *),
- void (*update)(void *),
- void (*endjob)(void *));
+char *WM_jobs_name(struct wmWindowManager *wm, void *owner);
+
+int WM_jobs_is_running(struct wmJob *);
+void *WM_jobs_customdata_get(struct wmJob *);
+void WM_jobs_customdata_set(struct wmJob *, void *customdata, void (*free)(void *));
+void WM_jobs_timer(struct wmJob *, double timestep, unsigned int note, unsigned int endnote);
+void WM_jobs_callbacks(struct wmJob *,
+ void (*startjob)(void *, short *, short *, float *),
+ void (*initjob)(void *),
+ void (*update)(void *),
+ void (*endjob)(void *));
void WM_jobs_start(struct wmWindowManager *wm, struct wmJob *);
void WM_jobs_stop(struct wmWindowManager *wm, void *owner, void *startjob);
@@ -328,8 +362,8 @@ void WM_jobs_stop_all(struct wmWindowManager *wm);
int WM_jobs_has_running(struct wmWindowManager *wm);
/* clipboard */
-char *WM_clipboard_text_get(int selection);
-void WM_clipboard_text_set(char *buf, int selection);
+char *WM_clipboard_text_get(int selection);
+void WM_clipboard_text_set(char *buf, int selection);
/* progress */
void WM_progress_set(struct wmWindow *win, float progress);
@@ -338,6 +372,8 @@ void WM_progress_clear(struct wmWindow *win);
/* Draw (for screenshot) */
void WM_redraw_windows(struct bContext *C);
+void WM_main_playanim(int argc, const char **argv);
+
/* debugging only, convenience function to write on crash */
int write_crash_blend(void);
diff --git a/source/blender/windowmanager/WM_keymap.h b/source/blender/windowmanager/WM_keymap.h
index 78dbd253cd6..5c88babfb47 100644
--- a/source/blender/windowmanager/WM_keymap.h
+++ b/source/blender/windowmanager/WM_keymap.h
@@ -57,11 +57,11 @@ void WM_keymap_init (struct bContext *C);
void WM_keymap_free (struct wmKeyMap *keymap);
wmKeyMapItem *WM_keymap_verify_item(struct wmKeyMap *keymap, const char *idname, int type,
- int val, int modifier, int keymodifier);
+ int val, int modifier, int keymodifier);
wmKeyMapItem *WM_keymap_add_item(struct wmKeyMap *keymap, const char *idname, int type,
- int val, int modifier, int keymodifier);
+ int val, int modifier, int keymodifier);
wmKeyMapItem *WM_keymap_add_menu(struct wmKeyMap *keymap, const char *idname, int type,
- int val, int modifier, int keymodifier);
+ int val, int modifier, int keymodifier);
void WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi);
char *WM_keymap_item_to_string(wmKeyMapItem *kmi, char *str, int len);
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index a15d020c230..ad828cef6d5 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -31,6 +31,77 @@
#ifndef __WM_TYPES_H__
#define __WM_TYPES_H__
+/**
+ * Overview of WM structs
+ * ======================
+ *
+ * <pre>
+ * > wmWindowManager (window manager stores a list of windows)
+ * > > wmWindow (window has an active screen)
+ * > > > bScreen (link to ScrAreas via 'areabase')
+ * > > > > ScrArea (stores multiple spaces via space links via 'spacedata')
+ * > > > > > SpaceLink (base struct for space data for all different space types)
+ * > > > > ScrArea (stores multiple regions via 'regionbase')
+ * > > > > > ARegion
+ * </pre>
+ *
+ * Window Layout
+ * =============
+ *
+ * <pre>
+ * wmWindow -> bScreen
+ * +----------------------------------------------------------+
+ * |+-----------------------------------------+-------------+ |
+ * ||ScrArea (links to 3D view) |ScrArea | |
+ * ||+-------++----------+-------------------+|(links to | |
+ * |||ARegion|| |ARegion (quad view)|| properties) | |
+ * |||(tools)|| | || | |
+ * ||| || | || | |
+ * ||| || | || | |
+ * ||| || | || | |
+ * ||| |+----------+-------------------+| | |
+ * ||| || | || | |
+ * ||| || | || | |
+ * ||| || | || | |
+ * ||| || | || | |
+ * ||| || | || | |
+ * ||+-------++----------+-------------------+| | |
+ * |+-----------------------------------------+-------------+ |
+ * +----------------------------------------------------------+
+ * </pre>
+ *
+ * Space Data
+ * ==========
+ *
+ * <pre>
+ * ScrArea's store a list of space data (SpaceLinks), each of unique type.
+ * The first one is the displayed in the UI, others are added as needed.
+ *
+ * +----------------------------+ <-- sa->spacedata.first;
+ * | |
+ * | |---+ <-- other inactive SpaceLink's stored.
+ * | | |
+ * | | |---+
+ * | | | |
+ * | | | |
+ * | | | |
+ * | | | |
+ * +----------------------------+ | |
+ * | | |
+ * +-----------------------------+ |
+ * | |
+ * +------------------------------+
+ * </pre>
+ *
+ * A common way to get the space from the ScrArea:
+ * <pre>
+ * if (sa->spacetype == SPACE_VIEW3D) {
+ * View3D *v3d = sa->spacedata.first;
+ * ...
+ * }
+ * </pre>
+ */
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -44,7 +115,6 @@ struct ImBuf;
#include "RNA_types.h"
#include "DNA_listBase.h"
-#include "BKE_utildefines.h" /* FILE_MAX */
/* exported types for WM */
#include "wm_cursors.h"
@@ -168,6 +238,7 @@ typedef struct wmNotifier {
#define NC_LOGIC (19<<24)
#define NC_MOVIECLIP (20<<24)
#define NC_MASK (21<<24)
+#define NC_GPENCIL (22<<24)
/* data type, 256 entries is enough, it can overlap */
#define NOTE_DATA 0x00FF0000
@@ -387,28 +458,28 @@ typedef struct wmTabletData {
typedef enum { /* motion progress, for modal handlers */
P_NOT_STARTED,
- P_STARTING, // <--
- P_IN_PROGRESS, // <-- only these are sent for NDOF motion
- P_FINISHING, // <--
+ P_STARTING, /* <-- */
+ P_IN_PROGRESS, /* <-- only these are sent for NDOF motion*/
+ P_FINISHING, /* <-- */
P_FINISHED
- } wmProgress;
+} wmProgress;
typedef struct wmNDOFMotionData {
/* awfully similar to GHOST_TEventNDOFMotionData... */
- // Each component normally ranges from -1 to +1, but can exceed that.
- // These use blender standard view coordinates, with positive rotations being CCW about the axis.
+ /* Each component normally ranges from -1 to +1, but can exceed that.
+ * These use blender standard view coordinates, with positive rotations being CCW about the axis. */
union {
- float tvec[3]; // translation
+ float tvec[3]; /* translation */
struct { float tx, ty, tz; };
- };
+ };
union {
- float rvec[3]; // rotation:
+ float rvec[3]; /* rotation: */
struct { float rx, ry, rz; };
- };
- // axis = (rx,ry,rz).normalized
- // amount = (rx,ry,rz).magnitude [in revolutions, 1.0 = 360 deg]
- float dt; // time since previous NDOF Motion event
- wmProgress progress; // is this the first event, the last, or one of many in between?
+ };
+ /* axis = (rx,ry,rz).normalized */
+ /* amount = (rx,ry,rz).magnitude [in revolutions, 1.0 = 360 deg] */
+ float dt; /* time since previous NDOF Motion event */
+ wmProgress progress; /* is this the first event, the last, or one of many in between? */
} wmNDOFMotionData;
typedef struct wmTimer {
@@ -438,7 +509,11 @@ typedef struct wmOperatorType {
* parameters may be provided through operator properties. cannot use
* any interface code or input device state.
* - see defines below for return values */
- int (*exec)(struct bContext *, struct wmOperator *);
+ int (*exec)(struct bContext *, struct wmOperator *)
+#ifdef __GNUC__
+ __attribute__((warn_unused_result))
+#endif
+ ;
/* this callback executes on a running operator whenever as property
* is changed. It can correct its own properties or report errors for
@@ -450,9 +525,17 @@ typedef struct wmOperatorType {
* any further events are handled in modal. if the operation is
* canceled due to some external reason, cancel is called
* - see defines below for return values */
- int (*invoke)(struct bContext *, struct wmOperator *, struct wmEvent *);
+ int (*invoke)(struct bContext *, struct wmOperator *, struct wmEvent *)
+#ifdef __GNUC__
+ __attribute__((warn_unused_result))
+#endif
+ ;
int (*cancel)(struct bContext *, struct wmOperator *);
- int (*modal)(struct bContext *, struct wmOperator *, struct wmEvent *);
+ int (*modal)(struct bContext *, struct wmOperator *, struct wmEvent *)
+#ifdef __GNUC__
+ __attribute__((warn_unused_result))
+#endif
+ ;
/* verify if the operator can be executed in the current context, note
* that the operator might still fail to execute even if this return true */
diff --git a/source/blender/windowmanager/intern/wm_apple.c b/source/blender/windowmanager/intern/wm_apple.c
index 71d074e340f..a7bd43986dd 100644
--- a/source/blender/windowmanager/intern/wm_apple.c
+++ b/source/blender/windowmanager/intern/wm_apple.c
@@ -124,14 +124,14 @@ void wm_set_apple_prefsize(int scr_x, int scr_y)
short top, left, bottom, right;
getMacAvailableBounds(&top, &left, &bottom, &right);
- WM_setprefsize(left + 10, scr_y - bottom + 10, right - left - 20, bottom - 64);
+ WM_init_state_size_set(left + 10, scr_y - bottom + 10, right - left - 20, bottom - 64);
G.windowstate = 0;
}
else {
/* 40 + 684 + (headers) 22 + 22 = 768, the powerbook screen height */
- WM_setprefsize(120, 40, 850, 684);
+ WM_init_state_size_set(120, 40, 850, 684);
G.windowstate = 0;
}
}
diff --git a/source/blender/windowmanager/intern/wm_cursors.c b/source/blender/windowmanager/intern/wm_cursors.c
index 039f3bff4d1..7853b40c98a 100644
--- a/source/blender/windowmanager/intern/wm_cursors.c
+++ b/source/blender/windowmanager/intern/wm_cursors.c
@@ -179,7 +179,10 @@ void WM_cursor_wait(int val)
}
}
-void WM_cursor_grab(wmWindow *win, int wrap, int hide, int *bounds)
+/**
+ * \param bounds can be NULL
+ */
+void WM_cursor_grab_enable(wmWindow *win, int wrap, int hide, int bounds[4])
{
/* Only grab cursor when not running debug.
* It helps not to get a stuck WM when hitting a breakpoint
@@ -191,22 +194,22 @@ void WM_cursor_grab(wmWindow *win, int wrap, int hide, int *bounds)
if ((G.debug & G_DEBUG) == 0) {
if (win && win->ghostwin) {
const GHOST_TabletData *tabletdata = GHOST_GetTabletData(win->ghostwin);
- // Note: There is no tabletdata on Windows if no tablet device is connected.
+ /* Note: There is no tabletdata on Windows if no tablet device is connected. */
if (!tabletdata)
- GHOST_SetCursorGrab(win->ghostwin, mode, bounds);
+ GHOST_SetCursorGrab(win->ghostwin, mode, bounds, NULL);
else if (tabletdata->Active == GHOST_kTabletModeNone)
- GHOST_SetCursorGrab(win->ghostwin, mode, bounds);
+ GHOST_SetCursorGrab(win->ghostwin, mode, bounds, NULL);
win->grabcursor = mode;
}
}
}
-void WM_cursor_ungrab(wmWindow *win)
+void WM_cursor_grab_disable(wmWindow *win, int mouse_ungrab_xy[2])
{
if ((G.debug & G_DEBUG) == 0) {
if (win && win->ghostwin) {
- GHOST_SetCursorGrab(win->ghostwin, GHOST_kGrabDisable, NULL);
+ GHOST_SetCursorGrab(win->ghostwin, GHOST_kGrabDisable, NULL, mouse_ungrab_xy);
win->grabcursor = GHOST_kGrabDisable;
}
}
@@ -239,7 +242,7 @@ int wm_cursor_arrow_move(wmWindow *win, wmEvent *event)
/* afer this you can call restore too */
-void WM_timecursor(wmWindow *win, int nr)
+void WM_cursor_time(wmWindow *win, int nr)
{
/* 10 8x8 digits */
static char number_bitmaps[10][8] = {
diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c
index ff1f47cbbaa..66bb321e832 100644
--- a/source/blender/windowmanager/intern/wm_draw.c
+++ b/source/blender/windowmanager/intern/wm_draw.c
@@ -45,10 +45,11 @@
#include "BLI_utildefines.h"
#include "BLI_math_base.h"
+#include "BIF_gl.h"
+
#include "BKE_context.h"
#include "BKE_global.h"
-
#include "GHOST_C-api.h"
#include "ED_screen.h"
@@ -193,7 +194,7 @@ static void wm_flush_regions_down(bScreen *screen, rcti *dirty)
for (sa = screen->areabase.first; sa; sa = sa->next) {
for (ar = sa->regionbase.first; ar; ar = ar->next) {
- if (BLI_isect_rcti(dirty, &ar->winrct, NULL)) {
+ if (BLI_rcti_isect(dirty, &ar->winrct, NULL)) {
ar->do_draw = RGN_DRAW;
memset(&ar->drawrct, 0, sizeof(ar->drawrct));
ar->swap = WIN_NONE_OK;
@@ -208,7 +209,7 @@ static void wm_flush_regions_up(bScreen *screen, rcti *dirty)
ARegion *ar;
for (ar = screen->regionbase.first; ar; ar = ar->next) {
- if (BLI_isect_rcti(dirty, &ar->winrct, NULL)) {
+ if (BLI_rcti_isect(dirty, &ar->winrct, NULL)) {
ar->do_draw = RGN_DRAW;
memset(&ar->drawrct, 0, sizeof(ar->drawrct));
ar->swap = WIN_NONE_OK;
@@ -505,8 +506,8 @@ static void wm_triple_draw_textures(wmWindow *win, wmDrawTriple *triple)
/* wmOrtho for the screen has this same offset */
ratiox = sizex;
ratioy = sizey;
- halfx = 0.375f;
- halfy = 0.375f;
+ halfx = GLA_PIXEL_OFS;
+ halfy = GLA_PIXEL_OFS;
/* texture rectangle has unnormalized coordinates */
if (triple->target == GL_TEXTURE_2D) {
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 9795c482af2..ef9e25e0fef 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -242,7 +242,7 @@ void wm_event_do_notifiers(bContext *C)
/* XXX, quick frame changes can cause a crash if framechange and rendering
* collide (happens on slow scenes), BKE_scene_update_for_newframe can be called
* twice which can depgraph update the same object at once */
- if (!G.rendering) {
+ if (G.is_rendering == FALSE) {
/* depsgraph gets called, might send more notifiers */
ED_update_for_newframe(CTX_data_main(C), win->screen->scene, 1);
@@ -255,8 +255,12 @@ void wm_event_do_notifiers(bContext *C)
for (win = wm->windows.first; win; win = win->next) {
/* filter out notifiers */
- if (note->category == NC_SCREEN && note->reference && note->reference != win->screen) ;
- else if (note->category == NC_SCENE && note->reference && note->reference != win->screen->scene) ;
+ if (note->category == NC_SCREEN && note->reference && note->reference != win->screen) {
+ /* pass */
+ }
+ else if (note->category == NC_SCENE && note->reference && note->reference != win->screen->scene) {
+ /* pass */
+ }
else {
ScrArea *sa;
ARegion *ar;
@@ -301,7 +305,7 @@ void wm_event_do_notifiers(bContext *C)
}
/* XXX make lock in future, or separated derivedmesh users in scene */
- if (!G.rendering) {
+ if (G.is_rendering == FALSE) {
/* depsgraph & animation: update tagged datablocks */
Main *bmain = CTX_data_main(C);
@@ -628,7 +632,7 @@ int WM_operator_call(bContext *C, wmOperator *op)
/* this is intended to be used when an invoke operator wants to call exec on its self
* and is basically like running op->type->exec() directly, no poll checks no freeing,
- * since we assume whoever called invokle will take care of that */
+ * since we assume whoever called invoke will take care of that */
int WM_operator_call_notest(bContext *C, wmOperator *op)
{
return wm_operator_exec_notest(C, op);
@@ -648,7 +652,8 @@ int WM_operator_repeat_check(const bContext *UNUSED(C), wmOperator *op)
return op->type->exec != NULL;
}
-static wmOperator *wm_operator_create(wmWindowManager *wm, wmOperatorType *ot, PointerRNA *properties, ReportList *reports)
+static wmOperator *wm_operator_create(wmWindowManager *wm, wmOperatorType *ot,
+ PointerRNA *properties, ReportList *reports)
{
/* XXX operatortype names are static still. for debug */
wmOperator *op = MEM_callocN(sizeof(wmOperator), ot->idname);
@@ -824,7 +829,8 @@ int WM_operator_last_properties_store(wmOperator *UNUSED(op))
#endif
-static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, PointerRNA *properties, ReportList *reports, short poll_only)
+static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event,
+ PointerRNA *properties, ReportList *reports, short poll_only)
{
wmWindowManager *wm = CTX_wm_manager(C);
int retval = OPERATOR_PASS_THROUGH;
@@ -843,7 +849,8 @@ static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, P
}
if ((G.debug & G_DEBUG_EVENTS) && event && event->type != MOUSEMOVE) {
- printf("%s: handle evt %d win %d op %s\n", __func__, event ? event->type : 0, CTX_wm_screen(C)->subwinactive, ot->idname);
+ printf("%s: handle evt %d win %d op %s\n",
+ __func__, event ? event->type : 0, CTX_wm_screen(C)->subwinactive, ot->idname);
}
if (op->type->invoke && event) {
@@ -919,7 +926,7 @@ static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, P
ScrArea *sa = CTX_wm_area(C);
if (ar && ar->regiontype == RGN_TYPE_WINDOW && event &&
- BLI_in_rcti(&ar->winrct, event->x, event->y))
+ BLI_rcti_isect_pt_v(&ar->winrct, &event->x))
{
winrect = &ar->winrct;
}
@@ -935,7 +942,7 @@ static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, P
}
}
- WM_cursor_grab(CTX_wm_window(C), wrap, FALSE, bounds);
+ WM_cursor_grab_enable(CTX_wm_window(C), wrap, FALSE, bounds);
}
/* cancel UI handlers, typically tooltips that can hang around
@@ -1082,7 +1089,8 @@ int WM_operator_name_call(bContext *C, const char *opstring, short context, Poin
* - poll() must be called by python before this runs.
* - reports can be passed to this function (so python can report them as exceptions)
*/
-int WM_operator_call_py(bContext *C, wmOperatorType *ot, short context, PointerRNA *properties, ReportList *reports, short is_undo)
+int WM_operator_call_py(bContext *C, wmOperatorType *ot, short context,
+ PointerRNA *properties, ReportList *reports, short is_undo)
{
int retval = OPERATOR_CANCELLED;
@@ -1198,7 +1206,7 @@ void WM_event_remove_handlers(bContext *C, ListBase *handlers)
CTX_wm_region_set(C, region);
}
- WM_cursor_ungrab(CTX_wm_window(C));
+ WM_cursor_grab_disable(CTX_wm_window(C), NULL);
WM_operator_free(handler->op);
}
else if (handler->ui_remove) {
@@ -1428,7 +1436,7 @@ static int wm_handler_operator_call(bContext *C, ListBase *handlers, wmEventHand
/* remove modal handler, operator itself should have been canceled and freed */
if (retval & (OPERATOR_CANCELLED | OPERATOR_FINISHED)) {
- WM_cursor_ungrab(CTX_wm_window(C));
+ WM_cursor_grab_disable(CTX_wm_window(C), NULL);
BLI_remlink(handlers, handler);
wm_event_free_handler(handler);
@@ -1440,14 +1448,15 @@ static int wm_handler_operator_call(bContext *C, ListBase *handlers, wmEventHand
}
else {
- printf("%s: error - missing modal\n", __func__);
+ printf("%s: error '%s' missing modal\n", __func__, op->idname);
}
}
else {
wmOperatorType *ot = WM_operatortype_find(event->keymap_idname, 0);
- if (ot)
+ if (ot) {
retval = wm_operator_invoke(C, ot, event, properties, NULL, FALSE);
+ }
}
/* Finished and pass through flag as handled */
@@ -1636,19 +1645,19 @@ static int handler_boundbox_test(wmEventHandler *handler, wmEvent *event)
if (handler->bbwin) {
if (handler->bblocal) {
rcti rect = *handler->bblocal;
- BLI_translate_rcti(&rect, handler->bbwin->xmin, handler->bbwin->ymin);
+ BLI_rcti_translate(&rect, handler->bbwin->xmin, handler->bbwin->ymin);
- if (BLI_in_rcti(&rect, event->x, event->y))
+ if (BLI_rcti_isect_pt_v(&rect, &event->x))
return 1;
- else if (event->type == MOUSEMOVE && BLI_in_rcti(&rect, event->prevx, event->prevy))
+ else if (event->type == MOUSEMOVE && BLI_rcti_isect_pt_v(&rect, &event->prevx))
return 1;
else
return 0;
}
else {
- if (BLI_in_rcti(handler->bbwin, event->x, event->y))
+ if (BLI_rcti_isect_pt_v(handler->bbwin, &event->x))
return 1;
- else if (event->type == MOUSEMOVE && BLI_in_rcti(handler->bbwin, event->prevx, event->prevy))
+ else if (event->type == MOUSEMOVE && BLI_rcti_isect_pt_v(handler->bbwin, &event->prevx))
return 1;
else
return 0;
@@ -1664,22 +1673,40 @@ static int wm_action_not_handled(int action)
static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers)
{
+#ifndef NDEBUG
+ const int do_debug_handler = (G.debug & G_DEBUG_EVENTS);
+#endif
wmWindowManager *wm = CTX_wm_manager(C);
wmEventHandler *handler, *nexthandler;
int action = WM_HANDLER_CONTINUE;
int always_pass;
- if (handlers == NULL) return action;
+ if (handlers == NULL) {
+ return action;
+ }
+
+#ifndef NDEBUG
+ if (do_debug_handler) {
+ printf("%s: handling event\n", __func__);
+ WM_event_print(event);
+ }
+#endif
+
+ /* modal handlers can get removed in this loop, we keep the loop this way
+ *
+ * note: check 'handlers->first' because in rare cases the handlers can be cleared
+ * by the event thats called, for eg:
+ *
+ * Calling a python script which changes the area.type, see [#32232] */
+ for (handler = handlers->first; handler && handlers->first; handler = nexthandler) {
- /* modal handlers can get removed in this loop, we keep the loop this way */
- for (handler = handlers->first; handler; handler = nexthandler) {
-
nexthandler = handler->next;
/* during this loop, ui handlers for nested menus can tag multiple handlers free */
- if (handler->flag & WM_HANDLER_DO_FREE) ;
- /* optional boundbox */
- else if (handler_boundbox_test(handler, event)) {
+ if (handler->flag & WM_HANDLER_DO_FREE) {
+ /* pass */
+ }
+ else if (handler_boundbox_test(handler, event)) { /* optional boundbox */
/* in advance to avoid access to freed event on window close */
always_pass = wm_event_always_pass(event);
@@ -1690,20 +1717,60 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers)
if (handler->keymap) {
wmKeyMap *keymap = WM_keymap_active(wm, handler->keymap);
wmKeyMapItem *kmi;
-
+
+#ifndef NDEBUG
+ if (do_debug_handler) {
+ printf("%s: checking '%s' ...", __func__, keymap->idname);
+ }
+#endif
+
if (!keymap->poll || keymap->poll(C)) {
+
+#ifndef NDEBUG
+ if (do_debug_handler) {
+ printf("pass\n");
+ }
+#endif
+
for (kmi = keymap->items.first; kmi; kmi = kmi->next) {
if (wm_eventmatch(event, kmi)) {
+#ifndef NDEBUG
+ if (do_debug_handler) {
+ printf("%s: item matched '%s'\n", __func__, kmi->idname);
+ }
+#endif
+
/* weak, but allows interactive callback to not use rawkey */
event->keymap_idname = kmi->idname;
action |= wm_handler_operator_call(C, handlers, handler, event, kmi->ptr);
- if (action & WM_HANDLER_BREAK) /* not always_pass here, it denotes removed handler */
+ if (action & WM_HANDLER_BREAK) {
+ /* not always_pass here, it denotes removed handler */
+#ifndef NDEBUG
+ if (do_debug_handler) {
+ printf("%s: handled! '%s'...", __func__, kmi->idname);
+ }
+#endif
break;
+ }
+ else {
+#ifndef NDEBUG
+ if (do_debug_handler) {
+ printf("%s: un-handled '%s'...", __func__, kmi->idname);
+ }
+#endif
+ }
}
}
}
+ else {
+#ifndef NDEBUG
+ if (do_debug_handler) {
+ printf("fail\n");
+ }
+#endif
+ }
}
else if (handler->ui_handle) {
action |= wm_handler_ui_call(C, handler, event, always_pass);
@@ -1826,10 +1893,10 @@ static int wm_event_inside_i(wmEvent *event, rcti *rect)
{
if (wm_event_always_pass(event))
return 1;
- if (BLI_in_rcti(rect, event->x, event->y))
+ if (BLI_rcti_isect_pt_v(rect, &event->x))
return 1;
if (event->type == MOUSEMOVE) {
- if (BLI_in_rcti(rect, event->prevx, event->prevy)) {
+ if (BLI_rcti_isect_pt_v(rect, &event->prevx)) {
return 1;
}
return 0;
@@ -1837,19 +1904,19 @@ static int wm_event_inside_i(wmEvent *event, rcti *rect)
return 0;
}
-static ScrArea *area_event_inside(bContext *C, int x, int y)
+static ScrArea *area_event_inside(bContext *C, const int xy[2])
{
bScreen *screen = CTX_wm_screen(C);
ScrArea *sa;
if (screen)
for (sa = screen->areabase.first; sa; sa = sa->next)
- if (BLI_in_rcti(&sa->totrct, x, y))
+ if (BLI_rcti_isect_pt_v(&sa->totrct, xy))
return sa;
return NULL;
}
-static ARegion *region_event_inside(bContext *C, int x, int y)
+static ARegion *region_event_inside(bContext *C, const int xy[2])
{
bScreen *screen = CTX_wm_screen(C);
ScrArea *area = CTX_wm_area(C);
@@ -1857,7 +1924,7 @@ static ARegion *region_event_inside(bContext *C, int x, int y)
if (screen && area)
for (ar = area->regionbase.first; ar; ar = ar->next)
- if (BLI_in_rcti(&ar->winrct, x, y))
+ if (BLI_rcti_isect_pt_v(&ar->winrct, xy))
return ar;
return NULL;
}
@@ -1888,11 +1955,11 @@ static void wm_paintcursor_test(bContext *C, wmEvent *event)
wm_paintcursor_tag(C, wm->paintcursors.first, ar);
/* if previous position was not in current region, we have to set a temp new context */
- if (ar == NULL || !BLI_in_rcti(&ar->winrct, event->prevx, event->prevy)) {
+ if (ar == NULL || !BLI_rcti_isect_pt_v(&ar->winrct, &event->prevx)) {
ScrArea *sa = CTX_wm_area(C);
- CTX_wm_area_set(C, area_event_inside(C, event->prevx, event->prevy));
- CTX_wm_region_set(C, region_event_inside(C, event->prevx, event->prevy));
+ CTX_wm_area_set(C, area_event_inside(C, &event->prevx));
+ CTX_wm_region_set(C, region_event_inside(C, &event->prevx));
wm_paintcursor_tag(C, wm->paintcursors.first, CTX_wm_region(C));
@@ -1958,21 +2025,26 @@ void wm_event_do_handlers(bContext *C)
Scene *scene = win->screen->scene;
if (scene) {
- int playing = sound_scene_playing(win->screen->scene);
+ int is_playing_sound = sound_scene_playing(win->screen->scene);
- if (playing != -1) {
+ if (is_playing_sound != -1) {
+ int is_playing_screen;
CTX_wm_window_set(C, win);
CTX_wm_screen_set(C, win->screen);
CTX_data_scene_set(C, scene);
- if (((playing == 1) && (!ED_screen_animation_playing(wm))) || ((playing == 0) && (ED_screen_animation_playing(wm)))) {
+ is_playing_screen = (ED_screen_animation_playing(wm) != NULL);
+
+ if (((is_playing_sound == 1) && (is_playing_screen == 0)) ||
+ ((is_playing_sound == 0) && (is_playing_screen == 1)))
+ {
ED_screen_animation_play(C, -1, 1);
}
- if (playing == 0) {
- float time = sound_sync_scene(scene);
+ if (is_playing_sound == 0) {
+ const float time = sound_sync_scene(scene);
if (finite(time)) {
- int ncfra = sound_sync_scene(scene) * (float)FPS + 0.5f;
+ int ncfra = time * (float)FPS + 0.5f;
if (ncfra != scene->r.cfra) {
scene->r.cfra = ncfra;
ED_update_for_newframe(CTX_data_main(C), scene, 1);
@@ -2000,8 +2072,8 @@ void wm_event_do_handlers(bContext *C)
CTX_wm_window_set(C, win);
/* we let modal handlers get active area/region, also wm_paintcursor_test needs it */
- CTX_wm_area_set(C, area_event_inside(C, event->x, event->y));
- CTX_wm_region_set(C, region_event_inside(C, event->x, event->y));
+ CTX_wm_area_set(C, area_event_inside(C, &event->x));
+ CTX_wm_region_set(C, region_event_inside(C, &event->x));
/* MVC demands to not draw in event handlers... but we need to leave it for ogl selecting etc */
wm_window_make_drawable(C, win);
@@ -2061,7 +2133,7 @@ void wm_event_do_handlers(bContext *C)
if (CTX_wm_window(C) == NULL)
return;
- doit |= (BLI_in_rcti(&ar->winrct, event->x, event->y));
+ doit |= (BLI_rcti_isect_pt_v(&ar->winrct, &event->x));
if (action & WM_HANDLER_BREAK)
break;
@@ -2083,8 +2155,8 @@ void wm_event_do_handlers(bContext *C)
if ((action & WM_HANDLER_BREAK) == 0) {
/* also some non-modal handlers need active area/region */
- CTX_wm_area_set(C, area_event_inside(C, event->x, event->y));
- CTX_wm_region_set(C, region_event_inside(C, event->x, event->y));
+ CTX_wm_area_set(C, area_event_inside(C, &event->x));
+ CTX_wm_region_set(C, region_event_inside(C, &event->x));
wm_region_mouse_co(C, event);
@@ -2404,6 +2476,11 @@ void WM_event_add_mousemove(bContext *C)
window->addmousemove = 1;
}
+void WM_event_add_mousemove_window(wmWindow *window)
+{
+ window->addmousemove = 1;
+}
+
/* for modal callbacks, check configuration for how to interpret exit with tweaks */
int WM_modal_tweak_exit(wmEvent *evt, int tweak_event)
{
@@ -2553,12 +2630,13 @@ static void attach_ndof_data(wmEvent *event, const GHOST_TEventNDOFMotionData *g
wmNDOFMotionData *data = MEM_mallocN(sizeof(wmNDOFMotionData), "customdata NDOF");
const float s = U.ndof_sensitivity;
+ const float rs = U.ndof_orbit_sensitivity;
data->tx = s * ghost->tx;
- data->rx = s * ghost->rx;
- data->ry = s * ghost->ry;
- data->rz = s * ghost->rz;
+ data->rx = rs * ghost->rx;
+ data->ry = rs * ghost->ry;
+ data->rz = rs * ghost->rz;
if (U.ndof_flag & NDOF_ZOOM_UPDOWN) {
/* rotate so Y is where Z was */
@@ -2642,7 +2720,8 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
switch (type) {
/* mouse move */
- case GHOST_kEventCursorMove: {
+ case GHOST_kEventCursorMove:
+ {
if (win->active) {
GHOST_TEventCursorData *cd = customdata;
wmEvent *lastevent = win->queue.last;
@@ -2685,7 +2764,8 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
}
break;
}
- case GHOST_kEventTrackpad: {
+ case GHOST_kEventTrackpad:
+ {
GHOST_TEventTrackpadData *pd = customdata;
switch (pd->subtype) {
case GHOST_kTrackpadEventMagnify:
@@ -2717,7 +2797,8 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
}
/* mouse button */
case GHOST_kEventButtonDown:
- case GHOST_kEventButtonUp: {
+ case GHOST_kEventButtonUp:
+ {
GHOST_TEventButtonData *bd = customdata;
event.val = (type == GHOST_kEventButtonDown) ? KM_PRESS : KM_RELEASE;
@@ -2765,7 +2846,8 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
}
/* keyboard */
case GHOST_kEventKeyDown:
- case GHOST_kEventKeyUp: {
+ case GHOST_kEventKeyUp:
+ {
GHOST_TEventKeyData *kd = customdata;
event.type = convert_key(kd->key);
event.ascii = kd->ascii;
@@ -2842,14 +2924,15 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
/* if test_break set, it catches this. XXX Keep global for now? */
if (event.type == ESCKEY)
- G.afbreek = 1;
+ G.is_break = TRUE;
wm_event_add(win, &event);
break;
}
- case GHOST_kEventWheel: {
+ case GHOST_kEventWheel:
+ {
GHOST_TEventWheelData *wheelData = customdata;
if (wheelData->z > 0)
@@ -2862,7 +2945,8 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
break;
}
- case GHOST_kEventTimer: {
+ case GHOST_kEventTimer:
+ {
event.type = TIMER;
event.custom = EVT_DATA_TIMER;
event.customdata = customdata;
@@ -2871,7 +2955,8 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
break;
}
- case GHOST_kEventNDOFMotion: {
+ case GHOST_kEventNDOFMotion:
+ {
event.type = NDOF_MOTION;
attach_ndof_data(&event, customdata);
wm_event_add(win, &event);
@@ -2881,7 +2966,8 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
break;
}
- case GHOST_kEventNDOFButton: {
+ case GHOST_kEventNDOFButton:
+ {
GHOST_TEventNDOFButtonData *e = customdata;
event.type = NDOF_BUTTON_NONE + e->button;
@@ -2907,12 +2993,12 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
case GHOST_kNumEventTypes:
break;
- case GHOST_kEventWindowDeactivate: {
+ case GHOST_kEventWindowDeactivate:
+ {
event.type = WINDEACTIVATE;
wm_event_add(win, &event);
break;
-
}
}
diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
index 3d1902409e8..c6bd912e89b 100644
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@ -56,6 +56,7 @@
#include "BLI_blenlib.h"
#include "BLI_linklist.h"
#include "BLI_utildefines.h"
+#include "BLI_threads.h"
#include "BLI_callbacks.h"
#include "BLF_translation.h"
@@ -77,6 +78,7 @@
#include "BKE_global.h"
#include "BKE_library.h"
#include "BKE_main.h"
+#include "BKE_multires.h"
#include "BKE_packedFile.h"
#include "BKE_report.h"
#include "BKE_sound.h"
@@ -188,9 +190,12 @@ static void wm_window_match_do(bContext *C, ListBase *oldwmlist)
/* cases 1 and 2 */
if (oldwmlist->first == NULL) {
- if (G.main->wm.first) ; /* nothing todo */
- else
+ if (G.main->wm.first) {
+ /* nothing todo */
+ }
+ else {
wm_add_default(C);
+ }
}
else {
/* cases 3 and 4 */
@@ -315,7 +320,7 @@ static int wm_read_exotic(Scene *UNUSED(scene), const char *name)
char header[7];
int retval;
- // make sure we're not trying to read a directory....
+ /* make sure we're not trying to read a directory.... */
len = strlen(name);
if (ELEM(name[len - 1], '/', '\\')) {
@@ -355,7 +360,7 @@ static int wm_read_exotic(Scene *UNUSED(scene), const char *name)
return retval;
}
-void WM_read_file(bContext *C, const char *filepath, ReportList *reports)
+void WM_file_read(bContext *C, const char *filepath, ReportList *reports)
{
int retval;
@@ -482,14 +487,14 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports)
/* called on startup, (context entirely filled with NULLs) */
/* or called for 'New File' */
/* op can be NULL */
-int WM_read_homefile(bContext *C, ReportList *UNUSED(reports), short from_memory)
+int WM_homefile_read(bContext *C, ReportList *UNUSED(reports), short from_memory)
{
ListBase wmbase;
char tstr[FILE_MAX];
int success = 0;
-
- BKE_vfont_free_global_ttf(); /* still weird... what does it here? */
-
+
+ BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_LOAD_PRE);
+
G.relbase_valid = 0;
if (!from_memory) {
char *cfgdir = BLI_get_folder(BLENDER_USER_CONFIG, NULL);
@@ -567,6 +572,9 @@ int WM_read_homefile(bContext *C, ReportList *UNUSED(reports), short from_memory
}
#endif
+ /* important to do before NULL'ing the context */
+ BLI_callback_exec(CTX_data_main(C), NULL, BLI_CB_EVT_LOAD_POST);
+
WM_event_add_notifier(C, NC_WM | ND_FILEREAD, NULL);
/* in background mode the scene will stay NULL */
@@ -577,10 +585,10 @@ int WM_read_homefile(bContext *C, ReportList *UNUSED(reports), short from_memory
return TRUE;
}
-int WM_read_homefile_exec(bContext *C, wmOperator *op)
+int WM_homefile_read_exec(bContext *C, wmOperator *op)
{
int from_memory = strcmp(op->type->idname, "WM_OT_read_factory_settings") == 0;
- return WM_read_homefile(C, op->reports, from_memory) ? OPERATOR_FINISHED : OPERATOR_CANCELLED;
+ return WM_homefile_read(C, op->reports, from_memory) ? OPERATOR_FINISHED : OPERATOR_CANCELLED;
}
void WM_read_history(void)
@@ -701,11 +709,11 @@ static ImBuf *blend_file_thumb(Scene *scene, bScreen *screen, int **thumb_pt)
if (scene->camera) {
ibuf = ED_view3d_draw_offscreen_imbuf_simple(scene, scene->camera,
BLEN_THUMB_SIZE * 2, BLEN_THUMB_SIZE * 2,
- IB_rect, OB_SOLID, FALSE, err_out);
+ IB_rect, OB_SOLID, FALSE, FALSE, err_out);
}
else {
ibuf = ED_view3d_draw_offscreen_imbuf(scene, v3d, ar, BLEN_THUMB_SIZE * 2, BLEN_THUMB_SIZE * 2,
- IB_rect, FALSE, err_out);
+ IB_rect, FALSE, FALSE, err_out);
}
if (ibuf) {
@@ -755,7 +763,7 @@ int write_crash_blend(void)
}
}
-int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *reports, int copy)
+int WM_file_write(bContext *C, const char *target, int fileflags, ReportList *reports, int copy)
{
Library *li;
int len;
@@ -790,7 +798,7 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re
/* blend file thumbnail */
/* save before exit_editmode, otherwise derivedmeshes for shared data corrupt #27765) */
- if (U.flag & USER_SAVE_PREVIEWS) {
+ if ((U.flag & USER_SAVE_PREVIEWS) && BLI_thread_is_main()) {
ibuf_thumb = blend_file_thumb(CTX_data_scene(C), CTX_wm_screen(C), &thumb);
}
@@ -854,7 +862,7 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re
}
/* operator entry */
-int WM_write_homefile(bContext *C, wmOperator *op)
+int WM_homefile_write_exec(bContext *C, wmOperator *op)
{
wmWindowManager *wm = CTX_wm_manager(C);
wmWindow *win = CTX_wm_window(C);
@@ -930,6 +938,7 @@ void wm_autosave_timer(const bContext *C, wmWindowManager *wm, wmTimer *UNUSED(w
wmEventHandler *handler;
char filepath[FILE_MAX];
int fileflags;
+ Scene *scene = CTX_data_scene(C);
WM_event_remove_timer(wm, NULL, wm->autosavetimer);
@@ -942,7 +951,14 @@ void wm_autosave_timer(const bContext *C, wmWindowManager *wm, wmTimer *UNUSED(w
}
}
}
-
+
+ if (scene) {
+ Object *ob = OBACT;
+
+ if (ob && ob->mode & OB_MODE_SCULPT)
+ multires_force_update(ob);
+ }
+
wm_autosave_location(filepath);
/* force save as regular blend file */
@@ -984,6 +1000,6 @@ void wm_autosave_read(bContext *C, ReportList *reports)
char filename[FILE_MAX];
wm_autosave_location(filename);
- WM_read_file(C, filename, reports);
+ WM_file_read(C, filename, reports);
}
diff --git a/source/blender/windowmanager/intern/wm_gesture.c b/source/blender/windowmanager/intern/wm_gesture.c
index e4b7d1c5d5f..b3ffb80243a 100644
--- a/source/blender/windowmanager/intern/wm_gesture.c
+++ b/source/blender/windowmanager/intern/wm_gesture.c
@@ -130,8 +130,8 @@ int wm_gesture_evaluate(wmGesture *gesture)
{
if (gesture->type == WM_GESTURE_TWEAK) {
rcti *rect = gesture->customdata;
- int dx = rect->xmax - rect->xmin;
- int dy = rect->ymax - rect->ymin;
+ int dx = BLI_rcti_size_x(rect);
+ int dy = BLI_rcti_size_y(rect);
if (ABS(dx) + ABS(dy) > U.tweak_threshold) {
int theta = (int)floor(4.0f * atan2f((float)dy, (float)dx) / (float)M_PI + 0.5f);
int val = EVT_GESTURE_W;
@@ -224,7 +224,7 @@ static void wm_gesture_draw_circle(wmGesture *gt)
glutil_draw_lined_arc(0.0, M_PI * 2.0, rect->xmax, 40);
glDisable(GL_LINE_STIPPLE);
- glTranslatef((float)-rect->xmin, (float)-rect->ymin, 0.0f);
+ glTranslatef(-rect->xmin, -rect->ymin, 0.0f);
}
@@ -253,7 +253,7 @@ static void draw_filled_lasso(wmGesture *gt)
/* highly unlikely this will fail, but could crash if (gt->points == 0) */
if (sf_vert_first) {
- float zvec[3] = {0.0f, 0.0f, 1.0f};
+ const float zvec[3] = {0.0f, 0.0f, 1.0f};
BLI_scanfill_edge_add(&sf_ctx, sf_vert_first, sf_vert);
BLI_scanfill_calc_ex(&sf_ctx, FALSE, zvec);
diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c
index 431094c9ec4..9bb3b2a0e69 100644
--- a/source/blender/windowmanager/intern/wm_init_exit.c
+++ b/source/blender/windowmanager/intern/wm_init_exit.c
@@ -28,11 +28,14 @@
* \ingroup wm
*/
-
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#ifdef WIN32
+# include <Windows.h>
+#endif
+
#include "MEM_guardedalloc.h"
#include "MEM_CacheLimiterC-Api.h"
@@ -55,6 +58,7 @@
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_mball.h"
+#include "BKE_node.h"
#include "BKE_report.h"
#include "BKE_packedFile.h"
@@ -63,7 +67,6 @@
#include "BKE_tracking.h" /* free tracking clipboard */
#include "BLI_listbase.h"
-// #include "BLI_scanfill.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
@@ -75,7 +78,7 @@
#endif
#ifdef WITH_GAMEENGINE
-#include "BL_System.h"
+# include "BL_System.h"
#endif
#include "GHOST_Path-api.h"
#include "GHOST_C-api.h"
@@ -109,6 +112,7 @@
#include "BKE_depsgraph.h"
#include "BKE_sound.h"
+#include "COM_compositor.h"
static void wm_init_reports(bContext *C)
{
@@ -139,12 +143,13 @@ void WM_init(bContext *C, int argc, const char **argv)
ED_spacetypes_init(); /* editors/space_api/spacetype.c */
ED_file_init(); /* for fsmenu */
- ED_init_node_butfuncs();
+ ED_node_init_butfuncs();
BLF_init(11, U.dpi); /* Please update source/gamengine/GamePlayer/GPG_ghost.cpp if you change this */
BLF_lang_init();
+
/* get the default database, plus a wm */
- WM_read_homefile(C, NULL, G.factory_startup);
+ WM_homefile_read(C, NULL, G.factory_startup);
BLF_lang_set(NULL);
@@ -153,7 +158,7 @@ void WM_init(bContext *C, int argc, const char **argv)
* initializing space types and other internal data.
*
* However cant redo this at the moment. Solution is to load python
- * before WM_read_homefile() or make py-drivers check if python is running.
+ * before WM_homefile_read() or make py-drivers check if python is running.
* Will try fix when the crash can be repeated. - campbell. */
#ifdef WITH_PYTHON
@@ -199,6 +204,13 @@ void WM_init(bContext *C, int argc, const char **argv)
#endif
BLI_strncpy(G.lib, G.main->name, FILE_MAX);
+
+#ifdef WITH_COMPOSITOR
+ if (1) {
+ extern void *COM_linker_hack;
+ COM_linker_hack = COM_execute;
+ }
+#endif
}
void WM_init_splash(bContext *C)
@@ -226,21 +238,21 @@ int WM_init_game(bContext *C)
Scene *scene = CTX_data_scene(C);
if (!scene) {
- // XXX, this should not be needed.
+ /* XXX, this should not be needed. */
Main *bmain = CTX_data_main(C);
scene = bmain->scene.first;
}
win = wm->windows.first;
- //first to get a valid window
+ /* first to get a valid window */
if (win)
CTX_wm_window_set(C, win);
sa = BKE_screen_find_big_area(CTX_wm_screen(C), SPACE_VIEW3D, 0);
ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW);
- // if we have a valid 3D view
+ /* if we have a valid 3D view */
if (sa && ar) {
ARegion *arhide;
@@ -319,28 +331,50 @@ static void free_openrecent(void)
/* bad stuff*/
// XXX copy/paste buffer stuff...
-extern void free_anim_copybuf(void);
-extern void free_anim_drivers_copybuf(void);
-extern void free_fmodifiers_copybuf(void);
-extern void free_posebuf(void);
+extern void free_anim_copybuf(void);
+extern void free_anim_drivers_copybuf(void);
+extern void free_fmodifiers_copybuf(void);
+
+#ifdef WIN32
+/* Read console events until there is a key event. Also returns on any error. */
+static void wait_for_console_key(void)
+{
+ HANDLE hConsoleInput = GetStdHandle(STD_INPUT_HANDLE);
+
+ if (!ELEM(hConsoleInput, NULL, INVALID_HANDLE_VALUE) && FlushConsoleInputBuffer(hConsoleInput)) {
+ for (;;) {
+ INPUT_RECORD buffer;
+ DWORD ignored;
+
+ if (!ReadConsoleInput(hConsoleInput, &buffer, 1, &ignored)) {
+ break;
+ }
+
+ if (buffer.EventType == KEY_EVENT) {
+ break;
+ }
+ }
+ }
+}
+#endif
/* called in creator.c even... tsk, split this! */
/* note, doesnt run exit() call WM_exit() for that */
void WM_exit_ext(bContext *C, const short do_python)
{
- wmWindow *win;
+ wmWindowManager *wm = C ? CTX_wm_manager(C) : NULL;
sound_exit();
-
/* first wrap up running stuff, we assume only the active WM is running */
/* modal handlers are on window level freed, others too? */
/* note; same code copied in wm_files.c */
- if (C && CTX_wm_manager(C)) {
-
- WM_jobs_stop_all(CTX_wm_manager(C));
-
- for (win = CTX_wm_manager(C)->windows.first; win; win = win->next) {
+ if (C && wm) {
+ wmWindow *win;
+
+ WM_jobs_stop_all(wm);
+
+ for (win = wm->windows.first; win; win = win->next) {
CTX_wm_window_set(C, win); /* needed by operator close callbacks */
WM_event_remove_handlers(C, &win->handlers);
@@ -360,8 +394,6 @@ void WM_exit_ext(bContext *C, const short do_python)
// BIF_GlobalReebFree();
// BIF_freeRetarget();
BIF_freeTemplates(C);
-
- BKE_vfont_free_global_ttf(); /* bke_font.h */
free_openrecent();
@@ -369,18 +401,23 @@ void WM_exit_ext(bContext *C, const short do_python)
ED_preview_free_dbase(); /* frees a Main dbase, before free_blender! */
- if (C && CTX_wm_manager(C))
+ if (C && wm)
wm_free_reports(C); /* before free_blender! - since the ListBases get freed there */
- seq_free_clipboard(); /* sequencer.c */
+ BKE_sequencer_free_clipboard(); /* sequencer.c */
BKE_tracking_clipboard_free();
+#ifdef WITH_COMPOSITOR
+ COM_deinitialize();
+#endif
+
free_blender(); /* blender.c, does entire library and spacetypes */
// free_matcopybuf();
free_anim_copybuf();
free_anim_drivers_copybuf();
free_fmodifiers_copybuf();
- free_posebuf();
+ ED_clipboard_posebuf_free();
+ BKE_node_clipboard_clear();
BLF_exit();
@@ -446,10 +483,10 @@ void WM_exit_ext(bContext *C, const short do_python)
printf("\nBlender quit\n");
#ifdef WIN32
- /* ask user to press enter when in debug mode */
+ /* ask user to press a key when in debug mode */
if (G.debug & G_DEBUG) {
- printf("press enter key to exit...\n\n");
- getchar();
+ printf("Press any key to exit . . .\n\n");
+ wait_for_console_key();
}
#endif
}
@@ -457,5 +494,5 @@ void WM_exit_ext(bContext *C, const short do_python)
void WM_exit(bContext *C)
{
WM_exit_ext(C, 1);
- exit(G.afbreek == 1);
+ exit(G.is_break == TRUE);
}
diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c
index bd7b4694471..4a410363167 100644
--- a/source/blender/windowmanager/intern/wm_jobs.c
+++ b/source/blender/windowmanager/intern/wm_jobs.c
@@ -114,7 +114,7 @@ struct wmJob {
/* internal */
void *owner;
int flag;
- short suspended, running, ready, do_update, stop;
+ short suspended, running, ready, do_update, stop, job_type;
float progress;
/* for display in header, identification */
@@ -136,13 +136,13 @@ struct wmJob {
*/
static wmJob *wm_job_find(wmWindowManager *wm, void *owner, const char *name)
{
- wmJob *steve, *found = NULL;
+ wmJob *wm_job, *found = NULL;
- for (steve = wm->jobs.first; steve; steve = steve->next)
- if (steve->owner == owner) {
- found = steve;
- if (name && strcmp(steve->name, name) == 0)
- return steve;
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next)
+ if (wm_job->owner == owner) {
+ found = wm_job;
+ if (name && strcmp(wm_job->name, name) == 0)
+ return wm_job;
}
return found;
@@ -153,112 +153,118 @@ static wmJob *wm_job_find(wmWindowManager *wm, void *owner, const char *name)
/* returns current or adds new job, but doesnt run it */
/* every owner only gets a single job, adding a new one will stop running stop and
* when stopped it starts the new one */
-wmJob *WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char *name, int flag)
+wmJob *WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char *name, int flag, int job_type)
{
- wmJob *steve = wm_job_find(wm, owner, name);
+ wmJob *wm_job = wm_job_find(wm, owner, name);
- if (steve == NULL) {
- steve = MEM_callocN(sizeof(wmJob), "new job");
+ if (wm_job == NULL) {
+ wm_job = MEM_callocN(sizeof(wmJob), "new job");
- BLI_addtail(&wm->jobs, steve);
- steve->win = win;
- steve->owner = owner;
- steve->flag = flag;
- BLI_strncpy(steve->name, name, sizeof(steve->name));
+ BLI_addtail(&wm->jobs, wm_job);
+ wm_job->win = win;
+ wm_job->owner = owner;
+ wm_job->flag = flag;
+ wm_job->job_type = job_type;
+ BLI_strncpy(wm_job->name, name, sizeof(wm_job->name));
}
- return steve;
+ return wm_job;
}
/* returns true if job runs, for UI (progress) indicators */
-int WM_jobs_test(wmWindowManager *wm, void *owner)
+int WM_jobs_test(wmWindowManager *wm, void *owner, int job_type)
{
- wmJob *steve;
+ wmJob *wm_job;
/* job can be running or about to run (suspended) */
- for (steve = wm->jobs.first; steve; steve = steve->next)
- if (steve->owner == owner)
- if (steve->running || steve->suspended)
- return 1;
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) {
+ if (wm_job->owner == owner) {
+ if (job_type == WM_JOB_TYPE_ANY || (wm_job->job_type == job_type)) {
+ if (wm_job->running || wm_job->suspended) {
+ return TRUE;
+ }
+ }
+ }
+ }
- return 0;
+ return FALSE;
}
float WM_jobs_progress(wmWindowManager *wm, void *owner)
{
- wmJob *steve = wm_job_find(wm, owner, NULL);
+ wmJob *wm_job = wm_job_find(wm, owner, NULL);
- if (steve && steve->flag & WM_JOB_PROGRESS)
- return steve->progress;
+ if (wm_job && wm_job->flag & WM_JOB_PROGRESS)
+ return wm_job->progress;
return 0.0;
}
char *WM_jobs_name(wmWindowManager *wm, void *owner)
{
- wmJob *steve = wm_job_find(wm, owner, NULL);
+ wmJob *wm_job = wm_job_find(wm, owner, NULL);
- if (steve)
- return steve->name;
+ if (wm_job)
+ return wm_job->name;
return NULL;
}
-int WM_jobs_is_running(wmJob *steve)
+int WM_jobs_is_running(wmJob *wm_job)
{
- return steve->running;
+ return wm_job->running;
}
-void *WM_jobs_get_customdata(wmJob *steve)
+void *WM_jobs_customdata_get(wmJob *wm_job)
{
- if (!steve->customdata) {
- return steve->run_customdata;
+ if (!wm_job->customdata) {
+ return wm_job->run_customdata;
}
else {
- return steve->customdata;
+ return wm_job->customdata;
}
}
-void WM_jobs_customdata(wmJob *steve, void *customdata, void (*free)(void *))
+void WM_jobs_customdata_set(wmJob *wm_job, void *customdata, void (*free)(void *))
{
/* pending job? just free */
- if (steve->customdata)
- steve->free(steve->customdata);
+ if (wm_job->customdata)
+ wm_job->free(wm_job->customdata);
- steve->customdata = customdata;
- steve->free = free;
+ wm_job->customdata = customdata;
+ wm_job->free = free;
- if (steve->running) {
+ if (wm_job->running) {
/* signal job to end */
- steve->stop = 1;
+ wm_job->stop = TRUE;
}
}
-void WM_jobs_timer(wmJob *steve, double timestep, unsigned int note, unsigned int endnote)
+void WM_jobs_timer(wmJob *wm_job, double timestep, unsigned int note, unsigned int endnote)
{
- steve->timestep = timestep;
- steve->note = note;
- steve->endnote = endnote;
+ wm_job->timestep = timestep;
+ wm_job->note = note;
+ wm_job->endnote = endnote;
}
-void WM_jobs_callbacks(wmJob *steve,
+void WM_jobs_callbacks(wmJob *wm_job,
void (*startjob)(void *, short *, short *, float *),
void (*initjob)(void *),
void (*update)(void *),
void (*endjob)(void *))
{
- steve->startjob = startjob;
- steve->initjob = initjob;
- steve->update = update;
- steve->endjob = endjob;
+ wm_job->startjob = startjob;
+ wm_job->initjob = initjob;
+ wm_job->update = update;
+ wm_job->endjob = endjob;
}
static void *do_job_thread(void *job_v)
{
- wmJob *steve = job_v;
+ wmJob *wm_job = job_v;
- steve->startjob(steve->run_customdata, &steve->stop, &steve->do_update, &steve->progress);
- steve->ready = 1;
+ wm_job->startjob(wm_job->run_customdata, &wm_job->stop, &wm_job->do_update, &wm_job->progress);
+ wm_job->ready = TRUE;
return NULL;
}
@@ -266,36 +272,38 @@ static void *do_job_thread(void *job_v)
/* don't allow same startjob to be executed twice */
static void wm_jobs_test_suspend_stop(wmWindowManager *wm, wmJob *test)
{
- wmJob *steve;
- int suspend = 0;
+ wmJob *wm_job;
+ int suspend = FALSE;
/* job added with suspend flag, we wait 1 timer step before activating it */
if (test->flag & WM_JOB_SUSPEND) {
- suspend = 1;
+ suspend = TRUE;
test->flag &= ~WM_JOB_SUSPEND;
}
else {
/* check other jobs */
- for (steve = wm->jobs.first; steve; steve = steve->next) {
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) {
/* obvious case, no test needed */
- if (steve == test || !steve->running) continue;
+ if (wm_job == test || !wm_job->running) {
+ continue;
+ }
/* if new job is not render, then check for same startjob */
if (0 == (test->flag & WM_JOB_EXCL_RENDER))
- if (steve->startjob != test->startjob)
+ if (wm_job->startjob != test->startjob)
continue;
/* if new job is render, any render job should be stopped */
if (test->flag & WM_JOB_EXCL_RENDER)
- if (0 == (steve->flag & WM_JOB_EXCL_RENDER))
+ if (0 == (wm_job->flag & WM_JOB_EXCL_RENDER))
continue;
- suspend = 1;
+ suspend = TRUE;
/* if this job has higher priority, stop others */
if (test->flag & WM_JOB_PRIORITY) {
- steve->stop = 1;
- // printf("job stopped: %s\n", steve->name);
+ wm_job->stop = TRUE;
+ // printf("job stopped: %s\n", wm_job->name);
}
}
}
@@ -307,110 +315,113 @@ static void wm_jobs_test_suspend_stop(wmWindowManager *wm, wmJob *test)
/* if job running, the same owner gave it a new job */
/* if different owner starts existing startjob, it suspends itself */
-void WM_jobs_start(wmWindowManager *wm, wmJob *steve)
+void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job)
{
- if (steve->running) {
+ if (wm_job->running) {
/* signal job to end and restart */
- steve->stop = 1;
- // printf("job started a running job, ending... %s\n", steve->name);
+ wm_job->stop = TRUE;
+ // printf("job started a running job, ending... %s\n", wm_job->name);
}
else {
- if (steve->customdata && steve->startjob) {
+ if (wm_job->customdata && wm_job->startjob) {
- wm_jobs_test_suspend_stop(wm, steve);
+ wm_jobs_test_suspend_stop(wm, wm_job);
- if (steve->suspended == 0) {
+ if (wm_job->suspended == FALSE) {
/* copy to ensure proper free in end */
- steve->run_customdata = steve->customdata;
- steve->run_free = steve->free;
- steve->free = NULL;
- steve->customdata = NULL;
- steve->running = 1;
+ wm_job->run_customdata = wm_job->customdata;
+ wm_job->run_free = wm_job->free;
+ wm_job->free = NULL;
+ wm_job->customdata = NULL;
+ wm_job->running = TRUE;
- if (steve->initjob)
- steve->initjob(steve->run_customdata);
+ if (wm_job->initjob)
+ wm_job->initjob(wm_job->run_customdata);
- steve->stop = 0;
- steve->ready = 0;
- steve->progress = 0.0;
+ wm_job->stop = FALSE;
+ wm_job->ready = FALSE;
+ wm_job->progress = 0.0;
- // printf("job started: %s\n", steve->name);
+ // printf("job started: %s\n", wm_job->name);
- BLI_init_threads(&steve->threads, do_job_thread, 1);
- BLI_insert_thread(&steve->threads, steve);
+ BLI_init_threads(&wm_job->threads, do_job_thread, 1);
+ BLI_insert_thread(&wm_job->threads, wm_job);
}
/* restarted job has timer already */
- if (steve->wt == NULL)
- steve->wt = WM_event_add_timer(wm, steve->win, TIMERJOBS, steve->timestep);
+ if (wm_job->wt == NULL)
+ wm_job->wt = WM_event_add_timer(wm, wm_job->win, TIMERJOBS, wm_job->timestep);
if (G.debug & G_DEBUG_JOBS)
- steve->start_time = PIL_check_seconds_timer();
+ wm_job->start_time = PIL_check_seconds_timer();
}
else printf("job fails, not initialized\n");
}
}
/* stop job, free data completely */
-static void wm_jobs_kill_job(wmWindowManager *wm, wmJob *steve)
+static void wm_jobs_kill_job(wmWindowManager *wm, wmJob *wm_job)
{
- if (steve->running) {
+ if (wm_job->running) {
/* signal job to end */
- steve->stop = 1;
- BLI_end_threads(&steve->threads);
+ wm_job->stop = TRUE;
+ BLI_end_threads(&wm_job->threads);
- if (steve->endjob)
- steve->endjob(steve->run_customdata);
+ if (wm_job->endjob)
+ wm_job->endjob(wm_job->run_customdata);
}
- if (steve->wt)
- WM_event_remove_timer(wm, steve->win, steve->wt);
- if (steve->customdata)
- steve->free(steve->customdata);
- if (steve->run_customdata)
- steve->run_free(steve->run_customdata);
+ if (wm_job->wt)
+ WM_event_remove_timer(wm, wm_job->win, wm_job->wt);
+ if (wm_job->customdata)
+ wm_job->free(wm_job->customdata);
+ if (wm_job->run_customdata)
+ wm_job->run_free(wm_job->run_customdata);
- /* remove steve */
- BLI_remlink(&wm->jobs, steve);
- MEM_freeN(steve);
+ /* remove wm_job */
+ BLI_remlink(&wm->jobs, wm_job);
+ MEM_freeN(wm_job);
}
void WM_jobs_stop_all(wmWindowManager *wm)
{
- wmJob *steve;
+ wmJob *wm_job;
- while ((steve = wm->jobs.first))
- wm_jobs_kill_job(wm, steve);
+ while ((wm_job = wm->jobs.first))
+ wm_jobs_kill_job(wm, wm_job);
}
/* signal job(s) from this owner or callback to stop, timer is required to get handled */
void WM_jobs_stop(wmWindowManager *wm, void *owner, void *startjob)
{
- wmJob *steve;
+ wmJob *wm_job;
- for (steve = wm->jobs.first; steve; steve = steve->next)
- if (steve->owner == owner || steve->startjob == startjob)
- if (steve->running)
- steve->stop = 1;
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) {
+ if (wm_job->owner == owner || wm_job->startjob == startjob) {
+ if (wm_job->running) {
+ wm_job->stop = TRUE;
+ }
+ }
+ }
}
/* actually terminate thread and job timer */
void WM_jobs_kill(wmWindowManager *wm, void *owner, void (*startjob)(void *, short int *, short int *, float *))
{
- wmJob *steve;
+ wmJob *wm_job;
- steve = wm->jobs.first;
- while (steve) {
- if (steve->owner == owner || steve->startjob == startjob) {
- wmJob *bill = steve;
- steve = steve->next;
+ wm_job = wm->jobs.first;
+ while (wm_job) {
+ if (wm_job->owner == owner || wm_job->startjob == startjob) {
+ wmJob *bill = wm_job;
+ wm_job = wm_job->next;
wm_jobs_kill_job(wm, bill);
}
else {
- steve = steve->next;
+ wm_job = wm_job->next;
}
}
}
@@ -419,11 +430,11 @@ void WM_jobs_kill(wmWindowManager *wm, void *owner, void (*startjob)(void *, sho
/* kill job entirely, also removes timer itself */
void wm_jobs_timer_ended(wmWindowManager *wm, wmTimer *wt)
{
- wmJob *steve;
+ wmJob *wm_job;
- for (steve = wm->jobs.first; steve; steve = steve->next) {
- if (steve->wt == wt) {
- wm_jobs_kill_job(wm, steve);
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) {
+ if (wm_job->wt == wt) {
+ wm_jobs_kill_job(wm, wm_job);
return;
}
}
@@ -432,85 +443,89 @@ void wm_jobs_timer_ended(wmWindowManager *wm, wmTimer *wt)
/* hardcoded to event TIMERJOBS */
void wm_jobs_timer(const bContext *C, wmWindowManager *wm, wmTimer *wt)
{
- wmJob *steve = wm->jobs.first, *stevenext;
+ wmJob *wm_job, *wm_jobnext;
float total_progress = 0.f;
float jobs_progress = 0;
- for (; steve; steve = stevenext) {
- stevenext = steve->next;
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_jobnext) {
+ wm_jobnext = wm_job->next;
- if (steve->wt == wt) {
+ if (wm_job->wt == wt) {
/* running threads */
- if (steve->threads.first) {
+ if (wm_job->threads.first) {
/* always call note and update when ready */
- if (steve->do_update || steve->ready) {
- if (steve->update)
- steve->update(steve->run_customdata);
- if (steve->note)
- WM_event_add_notifier(C, steve->note, NULL);
+ if (wm_job->do_update || wm_job->ready) {
+ if (wm_job->update)
+ wm_job->update(wm_job->run_customdata);
+ if (wm_job->note)
+ WM_event_add_notifier(C, wm_job->note, NULL);
- if (steve->flag & WM_JOB_PROGRESS)
+ if (wm_job->flag & WM_JOB_PROGRESS)
WM_event_add_notifier(C, NC_WM | ND_JOB, NULL);
- steve->do_update = FALSE;
+ wm_job->do_update = FALSE;
}
- if (steve->ready) {
- if (steve->endjob)
- steve->endjob(steve->run_customdata);
+ if (wm_job->ready) {
+ if (wm_job->endjob)
+ wm_job->endjob(wm_job->run_customdata);
/* free own data */
- steve->run_free(steve->run_customdata);
- steve->run_customdata = NULL;
- steve->run_free = NULL;
+ wm_job->run_free(wm_job->run_customdata);
+ wm_job->run_customdata = NULL;
+ wm_job->run_free = NULL;
- // if (steve->stop) printf("job ready but stopped %s\n", steve->name);
- // else printf("job finished %s\n", steve->name);
+ // if (wm_job->stop) printf("job ready but stopped %s\n", wm_job->name);
+ // else printf("job finished %s\n", wm_job->name);
if (G.debug & G_DEBUG_JOBS) {
- printf("Job '%s' finished in %f seconds\n", steve->name,
- PIL_check_seconds_timer() - steve->start_time);
+ printf("Job '%s' finished in %f seconds\n", wm_job->name,
+ PIL_check_seconds_timer() - wm_job->start_time);
}
- steve->running = 0;
- BLI_end_threads(&steve->threads);
+ wm_job->running = FALSE;
+ BLI_end_threads(&wm_job->threads);
- if (steve->endnote)
- WM_event_add_notifier(C, steve->endnote, NULL);
+ if (wm_job->endnote)
+ WM_event_add_notifier(C, wm_job->endnote, NULL);
WM_event_add_notifier(C, NC_WM | ND_JOB, NULL);
-
- /* new job added for steve? */
- if (steve->customdata) {
- // printf("job restarted with new data %s\n", steve->name);
- WM_jobs_start(wm, steve);
+
+ /* so the info header updates on job end even if the mouse doesn't move.
+ * a rather annoying/obscure bug, see [#32537] (second reply) */
+ WM_event_add_mousemove_window(wm_job->win);
+
+ /* new job added for wm_job? */
+ if (wm_job->customdata) {
+ // printf("job restarted with new data %s\n", wm_job->name);
+ WM_jobs_start(wm, wm_job);
}
else {
- WM_event_remove_timer(wm, steve->win, steve->wt);
- steve->wt = NULL;
+ WM_event_remove_timer(wm, wm_job->win, wm_job->wt);
+ wm_job->wt = NULL;
- /* remove steve */
- BLI_remlink(&wm->jobs, steve);
- MEM_freeN(steve);
+ /* remove wm_job */
+ BLI_remlink(&wm->jobs, wm_job);
+ MEM_freeN(wm_job);
}
}
- else if (steve->flag & WM_JOB_PROGRESS) {
+ else if (wm_job->flag & WM_JOB_PROGRESS) {
/* accumulate global progress for running jobs */
jobs_progress++;
- total_progress += steve->progress;
+ total_progress += wm_job->progress;
}
}
- else if (steve->suspended) {
- WM_jobs_start(wm, steve);
+ else if (wm_job->suspended) {
+ WM_jobs_start(wm, wm_job);
}
}
- else if (steve->threads.first && !steve->ready) {
- if (steve->flag & WM_JOB_PROGRESS) {
+ else if (wm_job->threads.first && !wm_job->ready) {
+ if (wm_job->flag & WM_JOB_PROGRESS) {
/* accumulate global progress for running jobs */
jobs_progress++;
- total_progress += steve->progress;
+ total_progress += wm_job->progress;
}
}
}
@@ -530,11 +545,13 @@ void wm_jobs_timer(const bContext *C, wmWindowManager *wm, wmTimer *wt)
int WM_jobs_has_running(wmWindowManager *wm)
{
- wmJob *steve;
+ wmJob *wm_job;
- for (steve = wm->jobs.first; steve; steve = steve->next)
- if (steve->running)
- return 1;
+ for (wm_job = wm->jobs.first; wm_job; wm_job = wm_job->next) {
+ if (wm_job->running) {
+ return TRUE;
+ }
+ }
- return 0;
+ return FALSE;
}
diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c
index 18caa8c2afe..bcddc984ed3 100644
--- a/source/blender/windowmanager/intern/wm_keymap.c
+++ b/source/blender/windowmanager/intern/wm_keymap.c
@@ -329,7 +329,7 @@ static void keymap_item_set_id(wmKeyMap *keymap, wmKeyMapItem *kmi)
kmi->id = keymap->kmi_id;
}
else {
- kmi->id = -keymap->kmi_id; // User defined keymap entries have negative ids
+ kmi->id = -keymap->kmi_id; /* User defined keymap entries have negative ids */
}
}
@@ -867,7 +867,6 @@ static wmKeyMapItem *wm_keymap_item_find_props(
/* look into multiple handler lists to find the item */
if (win)
found = wm_keymap_item_find_handlers(C, &win->handlers, opname, opcontext, properties, compare_props, hotkey, keymap_r);
-
if (sa && found == NULL)
found = wm_keymap_item_find_handlers(C, &sa->handlers, opname, opcontext, properties, compare_props, hotkey, keymap_r);
@@ -901,7 +900,7 @@ static wmKeyMapItem *wm_keymap_item_find_props(
found = wm_keymap_item_find_handlers(C, &ar->handlers, opname, opcontext, properties, compare_props, hotkey, keymap_r);
}
}
-
+
return found;
}
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index 2aa010f012e..e4d6b3dd465 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -326,7 +326,7 @@ static int wm_macro_modal(bContext *C, wmOperator *op, wmEvent *event)
}
}
- WM_cursor_grab(CTX_wm_window(C), wrap, FALSE, bounds);
+ WM_cursor_grab_enable(CTX_wm_window(C), wrap, FALSE, bounds);
}
}
}
@@ -906,16 +906,31 @@ void WM_operator_properties_select_all(wmOperatorType *ot)
RNA_def_enum(ot->srna, "action", select_all_actions, SEL_TOGGLE, "Action", "Selection action to execute");
}
-void WM_operator_properties_gesture_border(wmOperatorType *ot, int extend)
+void WM_operator_properties_border(wmOperatorType *ot)
{
- RNA_def_int(ot->srna, "gesture_mode", 0, INT_MIN, INT_MAX, "Gesture Mode", "", INT_MIN, INT_MAX);
RNA_def_int(ot->srna, "xmin", 0, INT_MIN, INT_MAX, "X Min", "", INT_MIN, INT_MAX);
RNA_def_int(ot->srna, "xmax", 0, INT_MIN, INT_MAX, "X Max", "", INT_MIN, INT_MAX);
RNA_def_int(ot->srna, "ymin", 0, INT_MIN, INT_MAX, "Y Min", "", INT_MIN, INT_MAX);
RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, "Y Max", "", INT_MIN, INT_MAX);
+}
+
+void WM_operator_properties_border_to_rcti(struct wmOperator *op, rcti *rect)
+{
+ rect->xmin = RNA_int_get(op->ptr, "xmin");
+ rect->ymin = RNA_int_get(op->ptr, "ymin");
+ rect->xmax = RNA_int_get(op->ptr, "xmax");
+ rect->ymax = RNA_int_get(op->ptr, "ymax");
+}
+
+void WM_operator_properties_gesture_border(wmOperatorType *ot, int extend)
+{
+ RNA_def_int(ot->srna, "gesture_mode", 0, INT_MIN, INT_MAX, "Gesture Mode", "", INT_MIN, INT_MAX);
+
+ WM_operator_properties_border(ot);
- if (extend)
+ if (extend) {
RNA_def_boolean(ot->srna, "extend", 1, "Extend", "Extend selection instead of deselecting everything first");
+ }
}
void WM_operator_properties_mouse_select(wmOperatorType *ot)
@@ -950,7 +965,7 @@ int WM_operator_check_ui_enabled(const bContext *C, const char *idname)
wmWindowManager *wm = CTX_wm_manager(C);
Scene *scene = CTX_data_scene(C);
- return !(ED_undo_valid(C, idname) == 0 || WM_jobs_test(wm, scene));
+ return !(ED_undo_valid(C, idname) == 0 || WM_jobs_test(wm, scene, WM_JOB_TYPE_ANY));
}
wmOperator *WM_operator_last_redo(const bContext *C)
@@ -987,7 +1002,7 @@ static uiBlock *wm_block_create_redo(bContext *C, ARegion *ar, void *arg_op)
layout = uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, 0, 0, width, UI_UNIT_Y, style);
if (!WM_operator_check_ui_enabled(C, op->type->name))
- uiLayoutSetEnabled(layout, 0);
+ uiLayoutSetEnabled(layout, FALSE);
if (op->type->flag & OPTYPE_MACRO) {
for (op = op->macro.first; op; op = op->next) {
@@ -1066,7 +1081,7 @@ static uiBlock *wm_block_dialog_create(bContext *C, ARegion *ar, void *userData)
/* clear so the OK button is left alone */
uiBlockSetFunc(block, NULL, NULL, NULL);
- /* new column so as not to interfear with custom layouts [#26436] */
+ /* new column so as not to interfere with custom layouts [#26436] */
{
uiBlock *col_block;
uiLayout *col;
@@ -1194,7 +1209,7 @@ int WM_operator_redo_popup(bContext *C, wmOperator *op)
static int wm_debug_menu_exec(bContext *C, wmOperator *op)
{
- G.rt = RNA_int_get(op->ptr, "debug_value");
+ G.debug_value = RNA_int_get(op->ptr, "debug_value");
ED_screen_refresh(CTX_wm_manager(C), CTX_wm_window(C));
WM_event_add_notifier(C, NC_WINDOW, NULL);
@@ -1203,7 +1218,7 @@ static int wm_debug_menu_exec(bContext *C, wmOperator *op)
static int wm_debug_menu_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
- RNA_int_set(op->ptr, "debug_value", G.rt);
+ RNA_int_set(op->ptr, "debug_value", G.debug_value);
return WM_operator_props_dialog_popup(C, op, 9 * UI_UNIT_X, UI_UNIT_Y);
}
@@ -1281,7 +1296,7 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *UNUSED(ar
extern int datatoc_splash_png_size;
ImBuf *ibuf = IMB_ibImageFromMemory((unsigned char *)datatoc_splash_png,
- datatoc_splash_png_size, IB_rect, "<splash screen>");
+ datatoc_splash_png_size, IB_rect, NULL, "<splash screen>");
#else
ImBuf *ibuf = NULL;
#endif
@@ -1336,7 +1351,7 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *UNUSED(ar
uiItemL(col, "Links", ICON_NONE);
uiItemStringO(col, IFACE_("Donations"), ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/blenderorg/blender-foundation/donation-payment");
uiItemStringO(col, IFACE_("Credits"), ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/credits");
- uiItemStringO(col, IFACE_("Release Log"), ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-263");
+ uiItemStringO(col, IFACE_("Release Log"), ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-264");
uiItemStringO(col, IFACE_("Manual"), ICON_URL, "WM_OT_url_open", "url", "http://wiki.blender.org/index.php/Doc:2.6/Manual");
uiItemStringO(col, IFACE_("Blender Website"), ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org");
uiItemStringO(col, IFACE_("User Community"), ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/community/user-community");
@@ -1560,7 +1575,7 @@ static void WM_OT_save_homefile(wmOperatorType *ot)
ot->description = "Make the current file the default .blend file";
ot->invoke = WM_operator_confirm;
- ot->exec = WM_write_homefile;
+ ot->exec = WM_homefile_write_exec;
ot->poll = WM_operator_winactive;
}
@@ -1571,7 +1586,7 @@ static void WM_OT_read_homefile(wmOperatorType *ot)
ot->description = "Open the default file (doesn't save the current file)";
ot->invoke = WM_operator_confirm;
- ot->exec = WM_read_homefile_exec;
+ ot->exec = WM_homefile_read_exec;
/* ommit poll to run in background mode */
}
@@ -1582,7 +1597,7 @@ static void WM_OT_read_factory_settings(wmOperatorType *ot)
ot->description = "Load default file and user preferences";
ot->invoke = WM_operator_confirm;
- ot->exec = WM_read_homefile_exec;
+ ot->exec = WM_homefile_read_exec;
/* ommit poll to run in background mode */
}
@@ -1649,11 +1664,11 @@ static int wm_open_mainfile_exec(bContext *C, wmOperator *op)
else
G.f &= ~G_SCRIPT_AUTOEXEC;
- /* XXX wm in context is not set correctly after WM_read_file -> crash */
+ /* XXX wm in context is not set correctly after WM_file_read -> crash */
/* do it before for now, but is this correct with multiple windows? */
WM_event_add_notifier(C, NC_WINDOW, NULL);
- WM_read_file(C, path, op->reports);
+ WM_file_read(C, path, op->reports);
return OPERATOR_FINISHED;
}
@@ -1678,7 +1693,7 @@ static void WM_OT_open_mainfile(wmOperatorType *ot)
/* **************** link/append *************** */
-int wm_link_append_poll(bContext *C)
+static int wm_link_append_poll(bContext *C)
{
if (WM_operator_winactive(C)) {
/* linking changes active object which is pretty useful in general,
@@ -1851,6 +1866,8 @@ static int wm_link_append_exec(bContext *C, wmOperator *op)
static void WM_OT_link_append(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
ot->name = "Link/Append from Library";
ot->idname = "WM_OT_link_append";
ot->description = "Link or Append from a Library .blend file";
@@ -1862,15 +1879,21 @@ static void WM_OT_link_append(wmOperatorType *ot)
ot->flag |= OPTYPE_UNDO;
WM_operator_properties_filesel(
- ot, FOLDERFILE | BLENDERFILE, FILE_LOADLIB, FILE_OPENFILE,
- WM_FILESEL_FILEPATH | WM_FILESEL_DIRECTORY | WM_FILESEL_FILENAME | WM_FILESEL_RELPATH | WM_FILESEL_FILES,
- FILE_DEFAULTDISPLAY);
-
- RNA_def_boolean(ot->srna, "link", 1, "Link", "Link the objects or datablocks rather than appending");
- RNA_def_boolean(ot->srna, "autoselect", 1, "Select", "Select the linked objects");
- RNA_def_boolean(ot->srna, "active_layer", 1, "Active Layer", "Put the linked objects on the active layer");
- RNA_def_boolean(ot->srna, "instance_groups", 1, "Instance Groups", "Create instances for each group as a DupliGroup");
-}
+ ot, FOLDERFILE | BLENDERFILE, FILE_LOADLIB, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH | WM_FILESEL_DIRECTORY | WM_FILESEL_FILENAME | WM_FILESEL_RELPATH | WM_FILESEL_FILES,
+ FILE_DEFAULTDISPLAY);
+
+ /* better not save _any_ settings for this operator */
+ /* properties */
+ prop = RNA_def_boolean(ot->srna, "link", 1, "Link", "Link the objects or datablocks rather than appending");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ prop = RNA_def_boolean(ot->srna, "autoselect", 1, "Select", "Select the linked objects");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ prop = RNA_def_boolean(ot->srna, "active_layer", 1, "Active Layer", "Put the linked objects on the active layer");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+ prop = RNA_def_boolean(ot->srna, "instance_groups", 1, "Instance Groups", "Create instances for each group as a DupliGroup");
+ RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+}
/* *************** recover last session **************** */
@@ -1880,13 +1903,13 @@ static int wm_recover_last_session_exec(bContext *C, wmOperator *op)
G.fileflags |= G_FILE_RECOVER;
- /* XXX wm in context is not set correctly after WM_read_file -> crash */
+ /* XXX wm in context is not set correctly after WM_file_read -> crash */
/* do it before for now, but is this correct with multiple windows? */
WM_event_add_notifier(C, NC_WINDOW, NULL);
/* load file */
BLI_make_file_string("/", filename, BLI_temporary_dir(), "quit.blend");
- WM_read_file(C, filename, op->reports);
+ WM_file_read(C, filename, op->reports);
G.fileflags &= ~G_FILE_RECOVER;
return OPERATOR_FINISHED;
@@ -1912,12 +1935,12 @@ static int wm_recover_auto_save_exec(bContext *C, wmOperator *op)
G.fileflags |= G_FILE_RECOVER;
- /* XXX wm in context is not set correctly after WM_read_file -> crash */
+ /* XXX wm in context is not set correctly after WM_file_read -> crash */
/* do it before for now, but is this correct with multiple windows? */
WM_event_add_notifier(C, NC_WINDOW, NULL);
/* load file */
- WM_read_file(C, path, op->reports);
+ WM_file_read(C, path, op->reports);
G.fileflags &= ~G_FILE_RECOVER;
@@ -1945,20 +1968,21 @@ static void WM_OT_recover_auto_save(wmOperatorType *ot)
ot->invoke = wm_recover_auto_save_invoke;
ot->poll = WM_operator_winactive;
- WM_operator_properties_filesel(ot, BLENDERFILE, FILE_BLENDER, FILE_OPENFILE, WM_FILESEL_FILEPATH, FILE_LONGDISPLAY);
+ WM_operator_properties_filesel(ot, BLENDERFILE, FILE_BLENDER, FILE_OPENFILE,
+ WM_FILESEL_FILEPATH, FILE_LONGDISPLAY);
}
/* *************** save file as **************** */
-static void untitled(char *name)
+static void untitled(char *filepath)
{
- if (G.save_over == 0 && strlen(name) < FILE_MAX - 16) {
- char *c = BLI_last_slash(name);
+ if (G.save_over == 0 && strlen(filepath) < FILE_MAX - 16) {
+ char *c = BLI_last_slash(filepath);
if (c)
strcpy(&c[1], "untitled.blend");
else
- strcpy(name, "untitled.blend");
+ strcpy(filepath, "untitled.blend");
}
}
@@ -2031,7 +2055,7 @@ static int wm_save_as_mainfile_exec(bContext *C, wmOperator *op)
}
#endif
- if (WM_write_file(C, path, fileflags, op->reports, copy) != 0)
+ if (WM_file_write(C, path, fileflags, op->reports, copy) != 0)
return OPERATOR_CANCELLED;
WM_event_add_notifier(C, NC_WM | ND_FILESAVE, NULL);
@@ -2065,8 +2089,8 @@ static void WM_OT_save_as_mainfile(wmOperatorType *ot)
ot->check = blend_save_check;
/* ommit window poll so this can work in background mode */
- WM_operator_properties_filesel(ot, FOLDERFILE | BLENDERFILE, FILE_BLENDER, FILE_SAVE, WM_FILESEL_FILEPATH,
- FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | BLENDERFILE, FILE_BLENDER, FILE_SAVE,
+ WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
RNA_def_boolean(ot->srna, "compress", 0, "Compress", "Write compressed .blend file");
RNA_def_boolean(ot->srna, "relative_remap", 1, "Remap Relative",
"Remap relative paths when saving in a different directory");
@@ -2137,7 +2161,8 @@ static void WM_OT_save_mainfile(wmOperatorType *ot)
ot->check = blend_save_check;
/* ommit window poll so this can work in background mode */
- WM_operator_properties_filesel(ot, FOLDERFILE | BLENDERFILE, FILE_BLENDER, FILE_SAVE, WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
+ WM_operator_properties_filesel(ot, FOLDERFILE | BLENDERFILE, FILE_BLENDER, FILE_SAVE,
+ WM_FILESEL_FILEPATH, FILE_DEFAULTDISPLAY);
RNA_def_boolean(ot->srna, "compress", 0, "Compress", "Write compressed .blend file");
RNA_def_boolean(ot->srna, "relative_remap", 0, "Remap Relative", "Remap relative paths when saving in a different directory");
}
@@ -2264,6 +2289,8 @@ static int border_apply_rect(wmOperator *op)
static int border_apply(bContext *C, wmOperator *op, int gesture_mode)
{
+ int retval;
+
if (!border_apply_rect(op))
return 0;
@@ -2271,7 +2298,9 @@ static int border_apply(bContext *C, wmOperator *op, int gesture_mode)
if (RNA_struct_find_property(op->ptr, "gesture_mode") )
RNA_int_set(op->ptr, "gesture_mode", gesture_mode);
- op->type->exec(C, op);
+ retval = op->type->exec(C, op);
+ OPERATOR_RETVAL_CHECK(retval);
+
return 1;
}
@@ -2397,8 +2426,11 @@ static void gesture_circle_apply(bContext *C, wmOperator *op)
RNA_int_set(op->ptr, "y", rect->ymin);
RNA_int_set(op->ptr, "radius", rect->xmax);
- if (op->type->exec)
- op->type->exec(C, op);
+ if (op->type->exec) {
+ int retval;
+ retval = op->type->exec(C, op);
+ OPERATOR_RETVAL_CHECK(retval);
+ }
#ifdef GESTURE_MEMORY
circle_select_size = rect->xmax;
#endif
@@ -2618,8 +2650,10 @@ static void gesture_lasso_apply(bContext *C, wmOperator *op)
wm_gesture_end(C, op);
- if (op->type->exec)
- op->type->exec(C, op);
+ if (op->type->exec) {
+ int retval = op->type->exec(C, op);
+ OPERATOR_RETVAL_CHECK(retval);
+ }
}
int WM_gesture_lasso_modal(bContext *C, wmOperator *op, wmEvent *event)
@@ -2702,7 +2736,7 @@ int WM_gesture_lines_cancel(bContext *C, wmOperator *op)
*
* caller must free.
*/
-int (*WM_gesture_lasso_path_to_array(bContext *UNUSED(C), wmOperator *op, int *mcords_tot))[2]
+const int (*WM_gesture_lasso_path_to_array(bContext *UNUSED(C), wmOperator *op, int *mcords_tot))[2]
{
PropertyRNA *prop = RNA_struct_find_property(op->ptr, "path");
int (*mcords)[2] = NULL;
@@ -2732,7 +2766,8 @@ int (*WM_gesture_lasso_path_to_array(bContext *UNUSED(C), wmOperator *op, int *m
*mcords_tot = 0;
}
- return mcords;
+ /* cast for 'const' */
+ return (const int (*)[2])mcords;
}
#if 0
@@ -2787,8 +2822,10 @@ static int straightline_apply(bContext *C, wmOperator *op)
RNA_int_set(op->ptr, "xend", rect->xmax);
RNA_int_set(op->ptr, "yend", rect->ymax);
- if (op->type->exec)
- op->type->exec(C, op);
+ if (op->type->exec) {
+ int retval = op->type->exec(C, op);
+ OPERATOR_RETVAL_CHECK(retval);
+ }
return 1;
}
diff --git a/source/blender/windowmanager/intern/wm_playanim.c b/source/blender/windowmanager/intern/wm_playanim.c
new file mode 100644
index 00000000000..35cc1545c40
--- /dev/null
+++ b/source/blender/windowmanager/intern/wm_playanim.c
@@ -0,0 +1,1094 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file blender/windowmanager/intern/wm_playanim.c
+ * \ingroup wm
+ *
+ * \note This file uses ghost directly and none of the WM definitions.
+ * this could be made into its own module, alongside creator/
+ */
+
+#include <sys/types.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#ifndef WIN32
+# include <unistd.h>
+# include <sys/times.h>
+# include <sys/wait.h>
+#else
+# include <io.h>
+#endif
+#include "MEM_guardedalloc.h"
+
+#include "PIL_time.h"
+
+#include "BLI_fileops.h"
+#include "BLI_listbase.h"
+#include "BLI_path_util.h"
+#include "BLI_rect.h"
+#include "BLI_string.h"
+#include "BLI_utildefines.h"
+
+#include "IMB_imbuf_types.h"
+#include "IMB_imbuf.h"
+
+#include "BKE_blender.h"
+#include "BKE_global.h"
+
+#include "BIF_gl.h"
+#include "BIF_glutil.h"
+
+#include "DNA_scene_types.h"
+#include "ED_datafiles.h" /* for fonts */
+#include "GHOST_C-api.h"
+#include "BLF_api.h"
+
+#include "wm_event_types.h"
+
+#include "WM_api.h" /* only for WM_main_playanim */
+
+typedef struct PlayState {
+
+ /* playback state */
+ short direction;
+ short next;
+ short once;
+ short turbo;
+ short pingpong;
+ short noskip;
+ short sstep;
+ short pause;
+ short wait2;
+ short stopped;
+ short go;
+
+ /* current picture */
+ struct PlayAnimPict *picture;
+
+ /* set once at the start */
+ int ibufx, ibufy;
+ int fontid;
+
+ /* saves passing args */
+ struct ImBuf *curframe_ibuf;
+} PlayState;
+
+/* for debugging */
+#if 0
+void print_ps(PlayState *ps)
+{
+ printf("ps:\n");
+ printf(" direction=%d,\n", (int)ps->direction);
+ printf(" next=%d,\n", ps->next);
+ printf(" once=%d,\n", ps->once);
+ printf(" turbo=%d,\n", ps->turbo);
+ printf(" pingpong=%d,\n", ps->pingpong);
+ printf(" noskip=%d,\n", ps->noskip);
+ printf(" sstep=%d,\n", ps->sstep);
+ printf(" pause=%d,\n", ps->pause);
+ printf(" wait2=%d,\n", ps->wait2);
+ printf(" stopped=%d,\n", ps->stopped);
+ printf(" go=%d,\n\n", ps->go);
+ fflush(stdout);
+}
+#endif
+
+/* global for window and events */
+typedef enum eWS_Qual {
+ WS_QUAL_LSHIFT = (1 << 0),
+ WS_QUAL_RSHIFT = (1 << 1),
+ WS_QUAL_SHIFT = (WS_QUAL_LSHIFT | WS_QUAL_RSHIFT),
+ WS_QUAL_LALT = (1 << 2),
+ WS_QUAL_RALT = (1 << 3),
+ WS_QUAL_ALT = (WS_QUAL_LALT | WS_QUAL_RALT),
+ WS_QUAL_LCTRL = (1 << 4),
+ WS_QUAL_RCTRL = (1 << 5),
+ WS_QUAL_LMOUSE = (1 << 16),
+ WS_QUAL_MMOUSE = (1 << 17),
+ WS_QUAL_RMOUSE = (1 << 18),
+ WS_QUAL_MOUSE = (WS_QUAL_LMOUSE | WS_QUAL_MMOUSE | WS_QUAL_RMOUSE)
+} eWS_Qual;
+
+static struct WindowStateGlobal {
+ GHOST_SystemHandle ghost_system;
+ void *ghost_window;
+
+ /* events */
+ eWS_Qual qual;
+} g_WS = {NULL};
+
+static void playanim_window_get_size(int *width_r, int *height_r)
+{
+ GHOST_RectangleHandle bounds = GHOST_GetClientBounds(g_WS.ghost_window);
+ *width_r = GHOST_GetWidthRectangle(bounds);
+ *height_r = GHOST_GetHeightRectangle(bounds);
+ GHOST_DisposeRectangle(bounds);
+}
+
+/* implementation */
+static void playanim_event_qual_update(void)
+{
+ int val;
+
+ /* Shift */
+ GHOST_GetModifierKeyState(g_WS.ghost_system, GHOST_kModifierKeyLeftShift, &val);
+ if (val) g_WS.qual |= WS_QUAL_LSHIFT;
+ else g_WS.qual &= ~WS_QUAL_LSHIFT;
+
+ GHOST_GetModifierKeyState(g_WS.ghost_system, GHOST_kModifierKeyRightShift, &val);
+ if (val) g_WS.qual |= WS_QUAL_RSHIFT;
+ else g_WS.qual &= ~WS_QUAL_RSHIFT;
+
+ /* Control */
+ GHOST_GetModifierKeyState(g_WS.ghost_system, GHOST_kModifierKeyLeftControl, &val);
+ if (val) g_WS.qual |= WS_QUAL_LCTRL;
+ else g_WS.qual &= ~WS_QUAL_LCTRL;
+
+ GHOST_GetModifierKeyState(g_WS.ghost_system, GHOST_kModifierKeyRightControl, &val);
+ if (val) g_WS.qual |= WS_QUAL_RCTRL;
+ else g_WS.qual &= ~WS_QUAL_RCTRL;
+
+ /* Alt */
+ GHOST_GetModifierKeyState(g_WS.ghost_system, GHOST_kModifierKeyLeftAlt, &val);
+ if (val) g_WS.qual |= WS_QUAL_LCTRL;
+ else g_WS.qual &= ~WS_QUAL_LCTRL;
+
+ GHOST_GetModifierKeyState(g_WS.ghost_system, GHOST_kModifierKeyRightAlt, &val);
+ if (val) g_WS.qual |= WS_QUAL_RCTRL;
+ else g_WS.qual &= ~WS_QUAL_RCTRL;
+
+ /* LMB */
+ GHOST_GetButtonState(g_WS.ghost_system, GHOST_kButtonMaskLeft, &val);
+ if (val) g_WS.qual |= WS_QUAL_LMOUSE;
+ else g_WS.qual &= ~WS_QUAL_LMOUSE;
+
+ /* MMB */
+ GHOST_GetButtonState(g_WS.ghost_system, GHOST_kButtonMaskMiddle, &val);
+ if (val) g_WS.qual |= WS_QUAL_MMOUSE;
+ else g_WS.qual &= ~WS_QUAL_MMOUSE;
+
+ /* RMB */
+ GHOST_GetButtonState(g_WS.ghost_system, GHOST_kButtonMaskRight, &val);
+ if (val) g_WS.qual |= WS_QUAL_RMOUSE;
+ else g_WS.qual &= ~WS_QUAL_RMOUSE;
+}
+
+typedef struct PlayAnimPict {
+ struct PlayAnimPict *next, *prev;
+ char *mem;
+ int size;
+ char *name;
+ struct ImBuf *ibuf;
+ struct anim *anim;
+ int frame;
+ int IB_flags;
+} PlayAnimPict;
+
+static struct ListBase picsbase = {NULL, NULL};
+static int fromdisk = FALSE;
+static int fstep = 1;
+static float zoomx = 1.0, zoomy = 1.0;
+static double ptottime = 0.0, swaptime = 0.04;
+
+static int pupdate_time(void)
+{
+ static double ltime;
+ double time;
+
+ time = PIL_check_seconds_timer();
+
+ ptottime += (time - ltime);
+ ltime = time;
+ return (ptottime < 0);
+}
+
+static void playanim_toscreen(PlayAnimPict *picture, struct ImBuf *ibuf, int fontid)
+{
+
+ if (ibuf == NULL) {
+ printf("no ibuf !\n");
+ return;
+ }
+ if (ibuf->rect == NULL && ibuf->rect_float) {
+ IMB_rect_from_float(ibuf);
+ imb_freerectfloatImBuf(ibuf);
+ }
+ if (ibuf->rect == NULL)
+ return;
+
+ GHOST_ActivateWindowDrawingContext(g_WS.ghost_window);
+
+ glRasterPos2f(0.0f, 0.0f);
+
+ glDrawPixels(ibuf->x, ibuf->y, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
+
+ pupdate_time();
+
+ if (picture && (g_WS.qual & (WS_QUAL_SHIFT | WS_QUAL_LMOUSE)) && (fontid != -1)) {
+ int sizex, sizey;
+ float fsizex_inv, fsizey_inv;
+ char str[32 + FILE_MAX];
+ cpack(-1);
+ BLI_snprintf(str, sizeof(str), "%s | %.2f frames/s", picture->name, fstep / swaptime);
+
+ playanim_window_get_size(&sizex, &sizey);
+ fsizex_inv = 1.0f / sizex;
+ fsizey_inv = 1.0f / sizey;
+
+ BLF_enable(fontid, BLF_ASPECT);
+ BLF_aspect(fontid, fsizex_inv, fsizey_inv, 1.0f);
+ BLF_position(fontid, 10.0f * fsizex_inv, 10.0f * fsizey_inv, 0.0f);
+ BLF_draw(fontid, str, sizeof(str));
+ }
+
+ GHOST_SwapWindowBuffers(g_WS.ghost_window);
+}
+
+static void build_pict_list(char *first, int totframes, int fstep, int fontid)
+{
+ char *mem, filepath[FILE_MAX];
+// short val;
+ PlayAnimPict *picture = NULL;
+ struct ImBuf *ibuf = NULL;
+ char str[32 + FILE_MAX];
+ struct anim *anim;
+
+ if (IMB_isanim(first)) {
+ /* OCIO_TODO: support different input color space */
+ anim = IMB_open_anim(first, IB_rect, 0, NULL);
+ if (anim) {
+ int pic;
+ ibuf = IMB_anim_absolute(anim, 0, IMB_TC_NONE, IMB_PROXY_NONE);
+ if (ibuf) {
+ playanim_toscreen(NULL, ibuf, fontid);
+ IMB_freeImBuf(ibuf);
+ }
+
+ for (pic = 0; pic < IMB_anim_get_duration(anim, IMB_TC_NONE); pic++) {
+ picture = (PlayAnimPict *)MEM_callocN(sizeof(PlayAnimPict), "Pict");
+ picture->anim = anim;
+ picture->frame = pic;
+ picture->IB_flags = IB_rect;
+ BLI_snprintf(str, sizeof(str), "%s : %4.d", first, pic + 1);
+ picture->name = strdup(str);
+ BLI_addtail(&picsbase, picture);
+ }
+ }
+ else {
+ printf("couldn't open anim %s\n", first);
+ }
+ }
+ else {
+ int count = 0;
+
+ BLI_strncpy(filepath, first, sizeof(filepath));
+
+ pupdate_time();
+ ptottime = 1.0;
+
+ /* O_DIRECT
+ *
+ * If set, all reads and writes on the resulting file descriptor will
+ * be performed directly to or from the user program buffer, provided
+ * appropriate size and alignment restrictions are met. Refer to the
+ * F_SETFL and F_DIOINFO commands in the fcntl(2) manual entry for
+ * information about how to determine the alignment constraints.
+ * O_DIRECT is a Silicon Graphics extension and is only supported on
+ * local EFS and XFS file systems.
+ */
+
+ while (IMB_ispic(filepath) && totframes) {
+ size_t size;
+ int file;
+
+ file = open(filepath, O_BINARY | O_RDONLY, 0);
+ if (file < 0) {
+ /* print errno? */
+ return;
+ }
+
+ picture = (PlayAnimPict *)MEM_callocN(sizeof(PlayAnimPict), "picture");
+ if (picture == NULL) {
+ printf("Not enough memory for pict struct '%s'\n", filepath);
+ close(file);
+ return;
+ }
+ size = BLI_file_descriptor_size(file);
+
+ if (size < 1) {
+ close(file);
+ MEM_freeN(picture);
+ return;
+ }
+
+ picture->size = size;
+ picture->IB_flags = IB_rect;
+
+ if (fromdisk == FALSE) {
+ mem = (char *)MEM_mallocN(size, "build pic list");
+ if (mem == NULL) {
+ printf("Couldn't get memory\n");
+ close(file);
+ MEM_freeN(picture);
+ return;
+ }
+
+ if (read(file, mem, size) != size) {
+ printf("Error while reading %s\n", filepath);
+ close(file);
+ MEM_freeN(picture);
+ MEM_freeN(mem);
+ return;
+ }
+ }
+ else {
+ mem = NULL;
+ }
+
+ picture->mem = mem;
+ picture->name = strdup(filepath);
+ close(file);
+ BLI_addtail(&picsbase, picture);
+ count++;
+
+ pupdate_time();
+
+ if (ptottime > 1.0) {
+ /* OCIO_TODO: support different input color space */
+ if (picture->mem) {
+ ibuf = IMB_ibImageFromMemory((unsigned char *)picture->mem, picture->size,
+ picture->IB_flags, NULL, picture->name);
+ }
+ else {
+ ibuf = IMB_loadiffname(picture->name, picture->IB_flags, NULL);
+ }
+ if (ibuf) {
+ playanim_toscreen(picture, ibuf, fontid);
+ IMB_freeImBuf(ibuf);
+ }
+ pupdate_time();
+ ptottime = 0.0;
+ }
+
+ BLI_newname(filepath, +fstep);
+
+#if 0 // XXX25
+ while (qtest()) {
+ switch (qreadN(&val)) {
+ case ESCKEY:
+ if (val) return;
+ break;
+ }
+ }
+#endif
+ totframes--;
+ }
+ }
+ return;
+}
+
+static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr ps_void)
+{
+ PlayState *ps = (PlayState *)ps_void;
+ GHOST_TEventType type = GHOST_GetEventType(evt);
+ int val;
+
+ // print_ps(ps);
+
+ playanim_event_qual_update();
+
+ /* convert ghost event into value keyboard or mouse */
+ val = ELEM(type, GHOST_kEventKeyDown, GHOST_kEventButtonDown);
+
+ if (ps->wait2 && ps->stopped) {
+ ps->stopped = FALSE;
+ }
+
+ switch (type) {
+ case GHOST_kEventKeyDown:
+ case GHOST_kEventKeyUp:
+ {
+ GHOST_TEventKeyData *key_data;
+
+ key_data = (GHOST_TEventKeyData *)GHOST_GetEventData(evt);
+ switch (key_data->key) {
+ case GHOST_kKeyA:
+ if (val) ps->noskip = !ps->noskip;
+ break;
+ case GHOST_kKeyP:
+ if (val) ps->pingpong = !ps->pingpong;
+ break;
+ case GHOST_kKeyNumpad1:
+ if (val) swaptime = fstep / 60.0;
+ break;
+ case GHOST_kKeyNumpad2:
+ if (val) swaptime = fstep / 50.0;
+ break;
+ case GHOST_kKeyNumpad3:
+ if (val) swaptime = fstep / 30.0;
+ break;
+ case GHOST_kKeyNumpad4:
+ if (g_WS.qual & WS_QUAL_SHIFT)
+ swaptime = fstep / 24.0;
+ else
+ swaptime = fstep / 25.0;
+ break;
+ case GHOST_kKeyNumpad5:
+ if (val) swaptime = fstep / 20.0;
+ break;
+ case GHOST_kKeyNumpad6:
+ if (val) swaptime = fstep / 15.0;
+ break;
+ case GHOST_kKeyNumpad7:
+ if (val) swaptime = fstep / 12.0;
+ break;
+ case GHOST_kKeyNumpad8:
+ if (val) swaptime = fstep / 10.0;
+ break;
+ case GHOST_kKeyNumpad9:
+ if (val) swaptime = fstep / 6.0;
+ break;
+ case GHOST_kKeyLeftArrow:
+ if (val) {
+ ps->sstep = TRUE;
+ ps->wait2 = FALSE;
+ if (g_WS.qual & WS_QUAL_SHIFT) {
+ ps->picture = picsbase.first;
+ ps->next = 0;
+ }
+ else {
+ ps->next = -1;
+ }
+ }
+ break;
+ case GHOST_kKeyDownArrow:
+ if (val) {
+ ps->wait2 = FALSE;
+ if (g_WS.qual & WS_QUAL_SHIFT) {
+ ps->next = ps->direction = -1;
+ }
+ else {
+ ps->next = -10;
+ ps->sstep = TRUE;
+ }
+ }
+ break;
+ case GHOST_kKeyRightArrow:
+ if (val) {
+ ps->sstep = TRUE;
+ ps->wait2 = FALSE;
+ if (g_WS.qual & WS_QUAL_SHIFT) {
+ ps->picture = picsbase.last;
+ ps->next = 0;
+ }
+ else {
+ ps->next = 1;
+ }
+ }
+ break;
+ case GHOST_kKeyUpArrow:
+ if (val) {
+ ps->wait2 = FALSE;
+ if (g_WS.qual & WS_QUAL_SHIFT) {
+ ps->next = ps->direction = 1;
+ }
+ else {
+ ps->next = 10;
+ ps->sstep = TRUE;
+ }
+ }
+ break;
+
+ case GHOST_kKeySlash:
+ case GHOST_kKeyNumpadSlash:
+ if (val) {
+ if (g_WS.qual & WS_QUAL_SHIFT) {
+ if (ps->curframe_ibuf)
+ printf(" Name: %s | Speed: %.2f frames/s\n", ps->curframe_ibuf->name, fstep / swaptime);
+ }
+ else {
+ swaptime = fstep / 5.0;
+ }
+ }
+ break;
+ case GHOST_kKeyEqual:
+ if (val) {
+ if (g_WS.qual & WS_QUAL_SHIFT) {
+ ps->pause++;
+ printf("pause:%d\n", ps->pause);
+ }
+ else {
+ swaptime /= 1.1;
+ }
+ }
+ break;
+ case GHOST_kKeyMinus:
+ if (val) {
+ if (g_WS.qual & WS_QUAL_SHIFT) {
+ ps->pause--;
+ printf("pause:%d\n", ps->pause);
+ }
+ else {
+ swaptime *= 1.1;
+ }
+ }
+ break;
+ case GHOST_kKeyNumpad0:
+ if (val) {
+ if (ps->once) {
+ ps->once = ps->wait2 = FALSE;
+ }
+ else {
+ ps->picture = NULL;
+ ps->once = TRUE;
+ ps->wait2 = FALSE;
+ }
+ }
+ break;
+ case GHOST_kKeyEnter:
+ case GHOST_kKeyNumpadEnter:
+ if (val) {
+ ps->wait2 = ps->sstep = FALSE;
+ }
+ break;
+ case GHOST_kKeyNumpadPeriod:
+ if (val) {
+ if (ps->sstep) ps->wait2 = FALSE;
+ else {
+ ps->sstep = TRUE;
+ ps->wait2 = !ps->wait2;
+ }
+ }
+ break;
+ case GHOST_kKeyNumpadPlus:
+ if (val == 0) break;
+ zoomx += 2.0;
+ zoomy += 2.0;
+ /* no break??? - is this intentional? - campbell XXX25 */
+ case GHOST_kKeyNumpadMinus:
+ {
+ int sizex, sizey;
+ /* int ofsx, ofsy; */ /* UNUSED */
+
+ if (val == 0) break;
+ if (zoomx > 1.0) zoomx -= 1.0;
+ if (zoomy > 1.0) zoomy -= 1.0;
+ // playanim_window_get_position(&ofsx, &ofsy);
+ playanim_window_get_size(&sizex, &sizey);
+ /* ofsx += sizex / 2; */ /* UNUSED */
+ /* ofsy += sizey / 2; */ /* UNUSED */
+ sizex = zoomx * ps->ibufx;
+ sizey = zoomy * ps->ibufy;
+ /* ofsx -= sizex / 2; */ /* UNUSED */
+ /* ofsy -= sizey / 2; */ /* UNUSED */
+ // window_set_position(g_WS.ghost_window,sizex,sizey);
+ GHOST_SetClientSize(g_WS.ghost_window, sizex, sizey);
+ break;
+ }
+ case GHOST_kKeyEsc:
+ ps->go = FALSE;
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ case GHOST_kEventCursorMove:
+ {
+ if (g_WS.qual & WS_QUAL_LMOUSE) {
+ int sizex, sizey;
+ int i;
+
+ GHOST_TEventCursorData *cd = GHOST_GetEventData(evt);
+ int cx, cy;
+
+ GHOST_ScreenToClient(g_WS.ghost_window, cd->x, cd->y, &cx, &cy);
+
+ playanim_window_get_size(&sizex, &sizey);
+ ps->picture = picsbase.first;
+ /* TODO - store in ps direct? */
+ i = 0;
+ while (ps->picture) {
+ i++;
+ ps->picture = ps->picture->next;
+ }
+ i = (i * cx) / sizex;
+ ps->picture = picsbase.first;
+ for (; i > 0; i--) {
+ if (ps->picture->next == NULL) break;
+ ps->picture = ps->picture->next;
+ }
+ ps->sstep = TRUE;
+ ps->wait2 = FALSE;
+ ps->next = 0;
+ }
+ break;
+ }
+ case GHOST_kEventWindowSize:
+ case GHOST_kEventWindowMove:
+ {
+ int sizex, sizey;
+
+ playanim_window_get_size(&sizex, &sizey);
+ GHOST_ActivateWindowDrawingContext(g_WS.ghost_window);
+
+ glViewport(0, 0, sizex, sizey);
+ glScissor(0, 0, sizex, sizey);
+
+ zoomx = (float) sizex / ps->ibufx;
+ zoomy = (float) sizey / ps->ibufy;
+ zoomx = floor(zoomx + 0.5);
+ zoomy = floor(zoomy + 0.5);
+ if (zoomx < 1.0) zoomx = 1.0;
+ if (zoomy < 1.0) zoomy = 1.0;
+
+ sizex = zoomx * ps->ibufx;
+ sizey = zoomy * ps->ibufy;
+
+ glPixelZoom(zoomx, zoomy);
+ glEnable(GL_DITHER);
+ ptottime = 0.0;
+ playanim_toscreen(ps->picture, ps->curframe_ibuf, ps->fontid);
+
+ break;
+ }
+ case GHOST_kEventQuit:
+ case GHOST_kEventWindowClose:
+ {
+ ps->go = FALSE;
+ break;
+ }
+ default:
+ /* quiet warnings */
+ break;
+ }
+
+ return 1;
+}
+
+static void playanim_window_open(const char *title, int posx, int posy, int sizex, int sizey, int start_maximized)
+{
+ GHOST_TWindowState inital_state;
+ GHOST_TUns32 scr_w, scr_h;
+
+ GHOST_GetMainDisplayDimensions(g_WS.ghost_system, &scr_w, &scr_h);
+
+ posy = (scr_h - posy - sizey);
+
+ if (start_maximized == G_WINDOWSTATE_FULLSCREEN)
+ inital_state = start_maximized ? GHOST_kWindowStateFullScreen : GHOST_kWindowStateNormal;
+ else
+ inital_state = start_maximized ? GHOST_kWindowStateMaximized : GHOST_kWindowStateNormal;
+
+ g_WS.ghost_window = GHOST_CreateWindow(g_WS.ghost_system,
+ title,
+ posx, posy, sizex, sizey,
+ inital_state,
+ GHOST_kDrawingContextTypeOpenGL,
+ FALSE /* no stereo */, FALSE);
+}
+
+
+void WM_main_playanim(int argc, const char **argv)
+{
+ struct ImBuf *ibuf = NULL;
+ char filepath[FILE_MAX];
+ GHOST_TUns32 maxwinx, maxwiny;
+ /* short c233 = FALSE, yuvx = FALSE; */ /* UNUSED */
+ int i;
+ /* This was done to disambiguate the name for use under c++. */
+ struct anim *anim = NULL;
+ int start_x = 0, start_y = 0;
+ int sfra = -1;
+ int efra = -1;
+ int totblock;
+
+ PlayState ps = {0};
+
+ /* ps.doubleb = TRUE;*/ /* UNUSED */
+ ps.go = TRUE;
+ ps.direction = TRUE;
+ ps.next = TRUE;
+ ps.once = FALSE;
+ ps.turbo = FALSE;
+ ps.pingpong = FALSE;
+ ps.noskip = FALSE;
+ ps.sstep = FALSE;
+ ps.pause = FALSE;
+ ps.wait2 = FALSE;
+ ps.stopped = FALSE;
+ ps.picture = NULL;
+ /* resetmap = FALSE */
+
+ ps.fontid = -1;
+
+ while (argc > 1) {
+ if (argv[1][0] == '-') {
+ switch (argv[1][1]) {
+ case 'm':
+ fromdisk = TRUE;
+ break;
+ case 'p':
+ if (argc > 3) {
+ start_x = atoi(argv[2]);
+ start_y = atoi(argv[3]);
+ argc -= 2;
+ argv += 2;
+ }
+ else {
+ printf("too few arguments for -p (need 2): skipping\n");
+ }
+ break;
+ case 'f':
+ if (argc > 3) {
+ double fps = atof(argv[2]);
+ double fps_base = atof(argv[3]);
+ if (fps == 0.0) {
+ fps = 1;
+ printf("invalid fps,"
+ "forcing 1\n");
+ }
+ swaptime = fps_base / fps;
+ argc -= 2;
+ argv += 2;
+ }
+ else {
+ printf("too few arguments for -f (need 2): skipping\n");
+ }
+ break;
+ case 's':
+ sfra = MIN2(MAXFRAME, MAX2(1, atoi(argv[2]) ));
+ argc--;
+ argv++;
+ break;
+ case 'e':
+ efra = MIN2(MAXFRAME, MAX2(1, atoi(argv[2]) ));
+ argc--;
+ argv++;
+ break;
+ case 'j':
+ fstep = MIN2(MAXFRAME, MAX2(1, atoi(argv[2])));
+ swaptime *= fstep;
+ argc--;
+ argv++;
+ break;
+ default:
+ printf("unknown option '%c': skipping\n", argv[1][1]);
+ break;
+ }
+ argc--;
+ argv++;
+ }
+ else {
+ break;
+ }
+ }
+
+ if (argc > 1) {
+ BLI_strncpy(filepath, argv[1], sizeof(filepath));
+ }
+ else {
+ BLI_current_working_dir(filepath, sizeof(filepath));
+ BLI_add_slash(filepath);
+ }
+
+ if (IMB_isanim(filepath)) {
+ /* OCIO_TODO: support different input color spaces */
+ anim = IMB_open_anim(filepath, IB_rect, 0, NULL);
+ if (anim) {
+ ibuf = IMB_anim_absolute(anim, 0, IMB_TC_NONE, IMB_PROXY_NONE);
+ IMB_close_anim(anim);
+ anim = NULL;
+ }
+ }
+ else if (!IMB_ispic(filepath)) {
+ exit(1);
+ }
+
+ if (ibuf == NULL) {
+ /* OCIO_TODO: support different input color space */
+ ibuf = IMB_loadiffname(filepath, IB_rect, NULL);
+ }
+
+ if (ibuf == NULL) {
+ printf("couldn't open %s\n", filepath);
+ exit(1);
+ }
+
+#if 0 //XXX25
+ #if !defined(WIN32) && !defined(__APPLE__)
+ if (fork()) exit(0);
+ #endif
+#endif //XXX25
+
+ /* XXX, fixme zr */
+ {
+// extern void add_to_mainqueue(wmWindow *win, void *user_data, short evt, short val, char ascii);
+
+ GHOST_EventConsumerHandle consumer = GHOST_CreateEventConsumer(ghost_event_proc, &ps);
+
+ g_WS.ghost_system = GHOST_CreateSystem();
+ GHOST_AddEventConsumer(g_WS.ghost_system, consumer);
+
+
+
+ playanim_window_open("Blender:Anim", start_x, start_y, ibuf->x, ibuf->y, 0);
+//XXX25 window_set_handler(g_WS.ghost_window, add_to_mainqueue, NULL);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f);
+ glMatrixMode(GL_MODELVIEW);
+ }
+
+ GHOST_GetMainDisplayDimensions(g_WS.ghost_system, &maxwinx, &maxwiny);
+
+ //GHOST_ActivateWindowDrawingContext(g_WS.ghost_window);
+
+ /* initialize the font */
+ BLF_init(11, 72);
+ ps.fontid = BLF_load_mem("monospace", (unsigned char *)datatoc_bmonofont_ttf, datatoc_bmonofont_ttf_size);
+ BLF_size(ps.fontid, 11, 72);
+
+ ps.ibufx = ibuf->x;
+ ps.ibufy = ibuf->y;
+
+ if (maxwinx % ibuf->x) maxwinx = ibuf->x * (1 + (maxwinx / ibuf->x));
+ if (maxwiny % ibuf->y) maxwiny = ibuf->y * (1 + (maxwiny / ibuf->y));
+
+ glClearColor(0.0, 0.0, 0.0, 0.0);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ GHOST_SwapWindowBuffers(g_WS.ghost_window);
+
+ if (sfra == -1 || efra == -1) {
+ /* one of the frames was invalid, just use all images */
+ sfra = 1;
+ efra = MAXFRAME;
+ }
+
+ build_pict_list(filepath, (efra - sfra) + 1, fstep, ps.fontid);
+
+ for (i = 2; i < argc; i++) {
+ BLI_strncpy(filepath, argv[i], sizeof(filepath));
+ build_pict_list(filepath, (efra - sfra) + 1, fstep, ps.fontid);
+ }
+
+ IMB_freeImBuf(ibuf);
+ ibuf = NULL;
+
+ pupdate_time();
+ ptottime = 0;
+
+ /* newly added in 2.6x, without this images never get freed */
+#define USE_IMB_CACHE
+
+ while (ps.go) {
+ if (ps.pingpong)
+ ps.direction = -ps.direction;
+
+ if (ps.direction == 1) {
+ ps.picture = picsbase.first;
+ }
+ else {
+ ps.picture = picsbase.last;
+ }
+
+ if (ps.picture == NULL) {
+ printf("couldn't find pictures\n");
+ ps.go = FALSE;
+ }
+ if (ps.pingpong) {
+ if (ps.direction == 1) {
+ ps.picture = ps.picture->next;
+ }
+ else {
+ ps.picture = ps.picture->prev;
+ }
+ }
+ if (ptottime > 0.0) ptottime = 0.0;
+
+ while (ps.picture) {
+#ifndef USE_IMB_CACHE
+ if (ibuf != NULL && ibuf->ftype == 0) IMB_freeImBuf(ibuf);
+#endif
+ if (ps.picture->ibuf) {
+ ibuf = ps.picture->ibuf;
+ }
+ else if (ps.picture->anim) {
+ ibuf = IMB_anim_absolute(ps.picture->anim, ps.picture->frame, IMB_TC_NONE, IMB_PROXY_NONE);
+ }
+ else if (ps.picture->mem) {
+ /* use correct colorspace here */
+ ibuf = IMB_ibImageFromMemory((unsigned char *) ps.picture->mem, ps.picture->size,
+ ps.picture->IB_flags, NULL, ps.picture->name);
+ }
+ else {
+ /* use correct colorspace here */
+ ibuf = IMB_loadiffname(ps.picture->name, ps.picture->IB_flags, NULL);
+ }
+
+ if (ibuf) {
+
+#ifdef USE_IMB_CACHE
+ ps.picture->ibuf = ibuf;
+#endif
+
+ BLI_strncpy(ibuf->name, ps.picture->name, sizeof(ibuf->name));
+
+ /* why only windows? (from 2.4x) - campbell */
+#ifdef _WIN32
+ GHOST_SetTitle(g_WS.ghost_window, ps.picture->name);
+#endif
+
+ while (pupdate_time()) PIL_sleep_ms(1);
+ ptottime -= swaptime;
+ playanim_toscreen(ps.picture, ibuf, ps.fontid);
+ } /* else deleten */
+ else {
+ printf("error: can't play this image type\n");
+ exit(0);
+ }
+
+ if (ps.once) {
+ if (ps.picture->next == NULL) {
+ ps.wait2 = TRUE;
+ }
+ else if (ps.picture->prev == NULL) {
+ ps.wait2 = TRUE;
+ }
+ }
+
+ ps.next = ps.direction;
+
+
+ {
+ int hasevent = GHOST_ProcessEvents(g_WS.ghost_system, 0);
+ if (hasevent) {
+ GHOST_DispatchEvents(g_WS.ghost_system);
+ }
+ }
+
+ /* XXX25 - we should not have to do this, but it makes scrubbing functional! */
+ if (g_WS.qual & WS_QUAL_LMOUSE) {
+ ps.next = 0;
+ }
+ else {
+ ps.sstep = 0;
+ }
+
+ ps.wait2 = ps.sstep;
+
+ if (ps.wait2 == 0 && ps.stopped == 0) {
+ ps.stopped = TRUE;
+ }
+
+ pupdate_time();
+
+ if (ps.picture && ps.next) {
+ /* always at least set one step */
+ while (ps.picture) {
+ if (ps.next < 0) {
+ ps.picture = ps.picture->prev;
+ }
+ else {
+ ps.picture = ps.picture->next;
+ }
+
+ if (ps.once && ps.picture != NULL) {
+ if (ps.picture->next == NULL) {
+ ps.wait2 = TRUE;
+ }
+ else if (ps.picture->prev == NULL) {
+ ps.wait2 = TRUE;
+ }
+ }
+
+ if (ps.wait2 || ptottime < swaptime || ps.turbo || ps.noskip) break;
+ ptottime -= swaptime;
+ }
+ if (ps.picture == NULL && ps.sstep) {
+ if (ps.next < 0) {
+ ps.picture = picsbase.last;
+ }
+ else if (ps.next > 0) {
+ ps.picture = picsbase.first;
+ }
+ }
+ }
+ if (ps.go == FALSE) {
+ break;
+ }
+ }
+ }
+ ps.picture = picsbase.first;
+ anim = NULL;
+ while (ps.picture) {
+ if (ps.picture && ps.picture->anim && (anim != ps.picture->anim)) {
+ // to prevent divx crashes
+ anim = ps.picture->anim;
+ IMB_close_anim(anim);
+ }
+
+ if (ps.picture->ibuf) {
+ IMB_freeImBuf(ps.picture->ibuf);
+ }
+ if (ps.picture->mem) {
+ MEM_freeN(ps.picture->mem);
+ }
+
+ ps.picture = ps.picture->next;
+ }
+
+ /* cleanup */
+#ifndef USE_IMB_CACHE
+ if (ibuf) IMB_freeImBuf(ibuf);
+#endif
+
+ BLI_freelistN(&picsbase);
+#if 0 // XXX25
+ free_blender();
+#else
+ /* we still miss freeing a lot!,
+ * but many areas could skip initialization too for anim play */
+ IMB_exit();
+ BLF_exit();
+#endif
+ GHOST_DisposeWindow(g_WS.ghost_system, g_WS.ghost_window);
+
+ totblock = MEM_get_memory_blocks_in_use();
+ if (totblock != 0) {
+ /* prints many bAKey, bArgument's which are tricky to fix */
+#if 0
+ printf("Error Totblock: %d\n", totblock);
+ MEM_printmemlist();
+#endif
+ }
+}
diff --git a/source/blender/windowmanager/intern/wm_subwindow.c b/source/blender/windowmanager/intern/wm_subwindow.c
index d599b9504e8..4078a88b2fd 100644
--- a/source/blender/windowmanager/intern/wm_subwindow.c
+++ b/source/blender/windowmanager/intern/wm_subwindow.c
@@ -116,8 +116,8 @@ void wm_subwindow_getsize(wmWindow *win, int swinid, int *x, int *y)
wmSubWindow *swin = swin_from_swinid(win, swinid);
if (swin) {
- *x = swin->winrct.xmax - swin->winrct.xmin + 1;
- *y = swin->winrct.ymax - swin->winrct.ymin + 1;
+ *x = BLI_rcti_size_x(&swin->winrct) + 1;
+ *y = BLI_rcti_size_y(&swin->winrct) + 1;
}
}
@@ -141,7 +141,7 @@ void wm_subwindow_getmatrix(wmWindow *win, int swinid, float mat[][4])
int width, height;
wm_subwindow_getsize(win, swin->swinid, &width, &height);
- orthographic_m4(mat, -0.375f, (float)width - 0.375f, -0.375f, (float)height - 0.375f, -100, 100);
+ orthographic_m4(mat, -GLA_PIXEL_OFS, (float)width - GLA_PIXEL_OFS, -GLA_PIXEL_OFS, (float)height - GLA_PIXEL_OFS, -100, 100);
}
else
glGetFloatv(GL_PROJECTION_MATRIX, (float *)mat);
@@ -175,7 +175,7 @@ int wm_subwindow_open(wmWindow *win, rcti *winrct)
/* extra service */
wm_subwindow_getsize(win, swin->swinid, &width, &height);
- wmOrtho2(-0.375f, (float)width - 0.375f, -0.375f, (float)height - 0.375f);
+ wmOrtho2(-GLA_PIXEL_OFS, (float)width - GLA_PIXEL_OFS, -GLA_PIXEL_OFS, (float)height - GLA_PIXEL_OFS);
glLoadIdentity();
return swin->swinid;
@@ -229,7 +229,7 @@ void wm_subwindow_position(wmWindow *win, int swinid, rcti *winrct)
/* extra service */
wmSubWindowSet(win, swinid);
wm_subwindow_getsize(win, swinid, &width, &height);
- wmOrtho2(-0.375f, (float)width - 0.375f, -0.375f, (float)height - 0.375f);
+ wmOrtho2(-GLA_PIXEL_OFS, (float)width - GLA_PIXEL_OFS, -GLA_PIXEL_OFS, (float)height - GLA_PIXEL_OFS);
}
else {
printf("%s: Internal error, bad winid: %d\n", __func__, swinid);
@@ -256,19 +256,19 @@ void wmSubWindowScissorSet(wmWindow *win, int swinid, rcti *srct)
win->curswin = _curswin;
_curwindow = win;
- width = _curswin->winrct.xmax - _curswin->winrct.xmin + 1;
- height = _curswin->winrct.ymax - _curswin->winrct.ymin + 1;
+ width = BLI_rcti_size_x(&_curswin->winrct) + 1;
+ height = BLI_rcti_size_y(&_curswin->winrct) + 1;
glViewport(_curswin->winrct.xmin, _curswin->winrct.ymin, width, height);
if (srct) {
- width = srct->xmax - srct->xmin + 1;
- height = srct->ymax - srct->ymin + 1;
+ width = BLI_rcti_size_x(srct) + 1;
+ height = BLI_rcti_size_y(srct) + 1;
glScissor(srct->xmin, srct->ymin, width, height);
}
else
glScissor(_curswin->winrct.xmin, _curswin->winrct.ymin, width, height);
- wmOrtho2(-0.375f, (float)width - 0.375f, -0.375f, (float)height - 0.375f);
+ wmOrtho2(-GLA_PIXEL_OFS, (float)width - GLA_PIXEL_OFS, -GLA_PIXEL_OFS, (float)height - GLA_PIXEL_OFS);
glLoadIdentity();
glFlush();
@@ -331,12 +331,12 @@ unsigned int index_to_framebuffer(int index)
break;
case 24:
break;
- default: // 18 bits...
+ default: /* 18 bits... */
i = ((i & 0x3F000) << 6) + ((i & 0xFC0) << 4) + ((i & 0x3F) << 2);
i |= 0x010101;
break;
}
-
+
return i;
}
@@ -365,7 +365,7 @@ unsigned int index_to_framebuffer(int index)
break;
case 24:
break;
- default: // 18 bits...
+ default: /* 18 bits... */
i = ((i & 0x3F000) << 6) + ((i & 0xFC0) << 4) + ((i & 0x3F) << 2);
i |= 0x030303;
break;
@@ -376,7 +376,7 @@ unsigned int index_to_framebuffer(int index)
#endif
-void WM_set_framebuffer_index_color(int index)
+void WM_framebuffer_index_set(int index)
{
const int col = index_to_framebuffer(index);
cpack(col);
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index 28e50f1655e..44827302d7d 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -300,11 +300,9 @@ void wm_window_close(bContext *C, wmWindowManager *wm, wmWindow *win)
void wm_window_title(wmWindowManager *wm, wmWindow *win)
{
- /* handle the 'temp' window, only set title when not set before */
if (win->screen && win->screen->temp) {
- char *title = GHOST_GetTitle(win->ghostwin);
- if (title == NULL || title[0] == 0)
- GHOST_SetTitle(win->ghostwin, "Blender");
+ /* nothing to do for 'temp' windows,
+ * because WM_window_open_temp always sets window title */
}
else {
@@ -340,12 +338,6 @@ static void wm_window_add_ghostwindow(const char *title, wmWindow *win)
wm_get_screensize(&scr_w, &scr_h);
posy = (scr_h - win->posy - win->sizey);
-#if defined(__APPLE__) && !defined(GHOST_COCOA)
- {
- extern int macPrefState; /* creator.c */
- initial_state += macPrefState;
- }
-#endif
/* Disable AA for now, as GL_SELECT (used for border, lasso, ... select)
* doesn't work well when AA is initialized, even if not used. */
ghostwin = GHOST_CreateWindow(g_system, title,
@@ -464,8 +456,8 @@ wmWindow *WM_window_open(bContext *C, rcti *rect)
win->posx = rect->xmin;
win->posy = rect->ymin;
- win->sizex = rect->xmax - rect->xmin;
- win->sizey = rect->ymax - rect->ymin;
+ win->sizex = BLI_rcti_size_x(rect);
+ win->sizey = BLI_rcti_size_y(rect);
win->drawmethod = -1;
win->drawdata = NULL;
@@ -500,8 +492,8 @@ void WM_window_open_temp(bContext *C, rcti *position, int type)
win->posy = position->ymin;
}
- win->sizex = position->xmax - position->xmin;
- win->sizey = position->ymax - position->ymin;
+ win->sizex = BLI_rcti_size_x(position);
+ win->sizey = BLI_rcti_size_y(position);
if (win->ghostwin) {
wm_window_set_size(win, win->sizex, win->sizey);
@@ -730,11 +722,13 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr C_void_ptr
break;
}
- case GHOST_kEventWindowClose: {
+ case GHOST_kEventWindowClose:
+ {
wm_window_close(C, wm, win);
break;
}
- case GHOST_kEventWindowUpdate: {
+ case GHOST_kEventWindowUpdate:
+ {
if (G.debug & G_DEBUG_EVENTS) {
printf("%s: ghost redraw %d\n", __func__, win->winid);
}
@@ -745,7 +739,8 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr C_void_ptr
break;
}
case GHOST_kEventWindowSize:
- case GHOST_kEventWindowMove: {
+ case GHOST_kEventWindowMove:
+ {
GHOST_TWindowState state;
state = GHOST_GetWindowState(win->ghostwin);
win->windowstate = state;
@@ -936,7 +931,7 @@ static int wm_window_timer(const bContext *C)
wt->delta = time - wt->ltime;
wt->duration += wt->delta;
wt->ltime = time;
- wt->ntime = wt->stime + wt->timestep *ceil(wt->duration / wt->timestep);
+ wt->ntime = wt->stime + wt->timestep * ceil(wt->duration / wt->timestep);
if (wt->event_type == TIMERJOBS)
wm_jobs_timer(C, wm, wt);
@@ -1202,7 +1197,7 @@ void wm_get_cursor_position(wmWindow *win, int *x, int *y)
/* called whem no ghost system was initialized */
-void WM_setprefsize(int stax, int stay, int sizx, int sizy)
+void WM_init_state_size_set(int stax, int stay, int sizx, int sizy)
{
wm_init_state.start_x = stax; /* left hand pos */
wm_init_state.start_y = stay; /* bottom pos */
@@ -1212,13 +1207,13 @@ void WM_setprefsize(int stax, int stay, int sizx, int sizy)
}
/* for borderless and border windows set from command-line */
-void WM_setinitialstate_fullscreen(void)
+void WM_init_state_fullscreen_set(void)
{
wm_init_state.windowstate = GHOST_kWindowStateFullScreen;
wm_init_state.override_flag |= WIN_OVERRIDE_WINSTATE;
}
-void WM_setinitialstate_normal(void)
+void WM_init_state_normal_set(void)
{
wm_init_state.windowstate = GHOST_kWindowStateNormal;
wm_init_state.override_flag |= WIN_OVERRIDE_WINSTATE;
diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h
index 30f6c564688..95a8a7db635 100644
--- a/source/blender/windowmanager/wm_event_types.h
+++ b/source/blender/windowmanager/wm_event_types.h
@@ -285,25 +285,29 @@ enum {
/* for event checks */
/* only used for KM_TEXTINPUT, so assume that we want all user-inputtable ascii codes included */
-#define ISTEXTINPUT(event) (event >=' ' && event <=255)
+#define ISTEXTINPUT(event) (event >= ' ' && event <= 255)
/* test whether the event is a key on the keyboard */
-#define ISKEYBOARD(event) (event >=' ' && event <=320)
+#define ISKEYBOARD(event) (event >= ' ' && event <= 320)
/* test whether the event is a modifier key */
-#define ISKEYMODIFIER(event) ((event >= LEFTCTRLKEY && event <= LEFTSHIFTKEY) || event == OSKEY)
+#define ISKEYMODIFIER(event) ((event >= LEFTCTRLKEY && event <= LEFTSHIFTKEY) || event == OSKEY)
/* test whether the event is a mouse button */
-#define ISMOUSE(event) (event >= LEFTMOUSE && event <= MOUSEROTATE)
+#define ISMOUSE(event) (event >= LEFTMOUSE && event <= MOUSEROTATE)
/* test whether the event is tweak event */
-#define ISTWEAK(event) (event >= EVT_TWEAK_L && event <= EVT_GESTURE)
+#define ISTWEAK(event) (event >= EVT_TWEAK_L && event <= EVT_GESTURE)
/* test whether the event is a NDOF event */
-#define ISNDOF(event) (event >= NDOF_MOTION && event < NDOF_LAST)
+#define ISNDOF(event) (event >= NDOF_MOTION && event < NDOF_LAST)
/* test whether event type is acceptable as hotkey, excluding modifiers */
-#define ISHOTKEY(event) ((ISKEYBOARD(event) || ISMOUSE(event) || ISNDOF(event)) && event!=ESCKEY && !(event>=LEFTCTRLKEY && event<=LEFTSHIFTKEY) && !(event>=UNKNOWNKEY && event<=GRLESSKEY))
+#define ISHOTKEY(event) \
+ ((ISKEYBOARD(event) || ISMOUSE(event) || ISNDOF(event)) && \
+ (event != ESCKEY) && \
+ (event >= LEFTCTRLKEY && event <= LEFTSHIFTKEY) == FALSE && \
+ (event >= UNKNOWNKEY && event <= GRLESSKEY) == FALSE)
/* **************** BLENDER GESTURE EVENTS (0x5000) **************** */
diff --git a/source/blenderplayer/CMakeLists.txt b/source/blenderplayer/CMakeLists.txt
index 720d68ef00d..04d4be05034 100644
--- a/source/blenderplayer/CMakeLists.txt
+++ b/source/blenderplayer/CMakeLists.txt
@@ -110,7 +110,7 @@ endif()
ge_scenegraph
bf_ikplugin
bf_intern_itasc
- bf_intern_ik
+ bf_intern_iksolver
bf_intern_smoke
bf_modifiers
bf_intern_moto
@@ -147,6 +147,7 @@ endif()
bf_intern_mikktspace
extern_recastnavigation
bf_intern_raskter
+ bf_intern_opencolorio
)
if(WITH_MOD_CLOTH_ELTOPO)
@@ -174,11 +175,10 @@ endif()
if(WITH_MOD_BOOLEAN)
list(APPEND BLENDER_SORTED_LIBS bf_intern_bsp)
- list(APPEND BLENDER_SORTED_LIBS bf_intern_bop)
list(APPEND BLENDER_SORTED_LIBS bf_intern_moto)
endif()
- if(WITH_CARVE)
+ if(WITH_MOD_BOOLEAN)
list(APPEND BLENDER_SORTED_LIBS extern_carve)
endif()
diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c
index 53f3dacbffa..c6383b471f7 100644
--- a/source/blenderplayer/bad_level_call_stubs/stubs.c
+++ b/source/blenderplayer/bad_level_call_stubs/stubs.c
@@ -64,6 +64,7 @@ struct LOD_Decimation_Info;
struct MCol;
struct MTex;
struct Main;
+struct Mask;
struct Material;
struct MenuType;
struct Mesh;
@@ -95,6 +96,7 @@ struct Tex;
struct TexResult;
struct Text;
struct ToolSettings;
+struct View2D;
struct View3D;
struct bAction;
struct bArmature;
@@ -181,7 +183,7 @@ int RE_WriteEnvmapResult(struct ReportList *reports, struct Scene *scene, struct
/* rna */
float *give_cursor(struct Scene *scene, struct View3D *v3d) {return (float *) NULL;}
void WM_menutype_free(void) {}
-void WM_menutype_freelink(struct MenuType* mt) {}
+void WM_menutype_freelink(struct MenuType *mt) {}
int WM_menutype_add(struct MenuType *mt) {return 0;}
int WM_operator_props_dialog_popup(struct bContext *C, struct wmOperator *op, int width, int height) {return 0;}
int WM_operator_confirm(struct bContext *C, struct wmOperator *op, struct wmEvent *event) {return 0;}
@@ -211,6 +213,9 @@ void *ED_region_draw_cb_activate(struct ARegionType *art, void(*draw)(const stru
void *ED_region_draw_cb_customdata(void *handle) {return 0;} /* XXX This one looks wrong also */
void ED_region_draw_cb_exit(struct ARegionType *art, void *handle) {}
void ED_area_headerprint(struct ScrArea *sa, char *str) {}
+void UI_view2d_region_to_view(struct View2D *v2d, int x, int y, float *viewx, float *viewy) {}
+void UI_view2d_view_to_region(struct View2D *v2d, float x, float y, int *regionx, int *regiony) {}
+void UI_view2d_to_region_no_clip(struct View2D *v2d, float x, float y, int *regionx, int *region_y) {}
struct EditBone *ED_armature_bone_get_mirrored(struct ListBase *edbo, struct EditBone *ebo) {return (struct EditBone *) NULL;}
struct EditBone *ED_armature_edit_bone_add(struct bArmature *arm, char *name) {return (struct EditBone*) NULL;}
@@ -229,6 +234,7 @@ void ED_space_image_uv_sculpt_update(struct wmWindowManager *wm, struct ToolSett
void ED_screen_set_scene(struct bContext *C, struct Scene *scene) {}
void ED_space_clip_set_clip(struct bContext *C, struct SpaceClip *sc, struct MovieClip *clip) {}
void ED_space_clip_set_mask(struct bContext *C, struct SpaceClip *sc, struct Mask *mask) {}
+void ED_space_image_set_mask(struct bContext *C, struct SpaceImage *sima, struct Mask *mask) {}
void ED_area_tag_redraw_regiontype(struct ScrArea *sa, int regiontype) {}
void ED_render_engine_changed(struct Main *bmain) {}
@@ -271,7 +277,7 @@ short ANIM_add_driver(struct ID *id, const char rna_path[], int array_index, sho
short ANIM_remove_driver(struct ID *id, const char rna_path[], int array_index, short flag) {return 0;}
void ED_space_image_release_buffer(struct SpaceImage *sima, void *lock) {}
struct ImBuf *ED_space_image_acquire_buffer(struct SpaceImage *sima, void **lock_r) {return (struct ImBuf *) NULL;}
-void ED_space_image_zoom(struct SpaceImage *sima, struct ARegion *ar, float *zoomx, float *zoomy) {}
+void ED_space_image_get_zoom(struct SpaceImage *sima, struct ARegion *ar, float *zoomx, float *zoomy) {}
char *ED_info_stats_string(struct Scene *scene) {return (char *) NULL;}
void ED_area_tag_redraw(struct ScrArea *sa) {}
void ED_area_tag_refresh(struct ScrArea *sa) {}
@@ -345,7 +351,8 @@ intptr_t mesh_octree_table(struct Object *ob, struct BMEditMesh *em, float *co,
void ED_sequencer_update_view(struct bContext *C, int view) {}
float ED_rollBoneToVector(struct EditBone *bone, float new_up_axis[3]) {return 0.0f;}
-void ED_space_image_size(struct SpaceImage *sima, int *width, int *height) {}
+void ED_space_image_get_size(struct SpaceImage *sima, int *width, int *height) {}
+int ED_space_image_check_show_maskedit(struct Scene *scene, struct SpaceImage *sima) {return 0;};
void ED_nurb_set_spline_type(struct Nurb *nu, int type) {}
@@ -411,7 +418,7 @@ void uiTemplateColorWheel(struct uiLayout *layout, struct PointerRNA *ptr, char
void uiTemplateHistogram(struct uiLayout *layout, struct PointerRNA *ptr, char *propname, int expand) {}
void uiTemplateReportsBanner(struct uiLayout *layout, struct bContext *C, struct wmOperator *op) {}
void uiTemplateWaveform(struct uiLayout *layout, struct PointerRNA *ptr, char *propname, int expand) {}
-void uiTemplateVectorscope(struct uiLayout *_self, struct PointerRNA *data, char* property, int expand) {}
+void uiTemplateVectorscope(struct uiLayout *_self, struct PointerRNA *data, char *property, int expand) {}
void uiTemplateNodeLink(struct uiLayout *layout, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input) {}
void uiTemplateNodeView(struct uiLayout *layout, struct bContext *C, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input) {}
void uiTemplateTextureUser(struct uiLayout *layout, struct bContext *C) {}
@@ -421,6 +428,8 @@ void uiTemplateMovieClip(struct uiLayout *layout, struct bContext *C, struct Poi
void uiTemplateTrack(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname) {}
void uiTemplateMarker(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname, PointerRNA *userptr, PointerRNA *trackptr, int compact) {}
void uiTemplateImageSettings(struct uiLayout *layout, struct PointerRNA *imfptr) {}
+void uiTemplateColorspaceSettings(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname) {}
+void uiTemplateColormanagedViewSettings(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, int show_global_settings) {}
/* rna render */
struct RenderResult *RE_engine_begin_result(struct RenderEngine *engine, int x, int y, int w, int h) {return (struct RenderResult *) NULL;}
diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
index d9ac43d7622..1880957ff8b 100644
--- a/source/creator/CMakeLists.txt
+++ b/source/creator/CMakeLists.txt
@@ -301,6 +301,15 @@ if(WITH_INTERNATIONAL)
)
endif()
+# color management
+if(WITH_OPENCOLORIO)
+ install(
+ DIRECTORY ${CMAKE_SOURCE_DIR}/release/datafiles/colormanagement
+ DESTINATION ${TARGETDIR_VER}/datafiles
+ PATTERN ".svn" EXCLUDE
+ )
+endif()
+
# helpful tip when using make
if("${CMAKE_GENERATOR}" MATCHES ".*Makefiles.*")
# message after building.
@@ -475,15 +484,15 @@ elseif(WIN32)
endif()
if(WITH_PYTHON)
- set_lib_path(PYLIB "python/lib")
+ set_lib_path(PYLIB "python")
install(
- FILES ${PYLIB}/python32.dll
+ FILES ${PYLIB}/lib/python32.dll
DESTINATION ${TARGETDIR}
CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel
)
install(
- FILES ${PYLIB}/python32_d.dll
+ FILES ${PYLIB}/lib/python32_d.dll
DESTINATION ${TARGETDIR}
CONFIGURATIONS Debug
)
@@ -551,9 +560,20 @@ elseif(WIN32)
)
elseif(WITH_MINGW64)
install(
- FILES ${LIBDIR}/binaries/pthreadGC2-w64.dll
+ FILES
+ ${LIBDIR}/binaries/libgcc_s_sjlj-1.dll
+ ${LIBDIR}/binaries/libwinpthread-1.dll
+ ${LIBDIR}/binaries/libstdc++-6.dll
DESTINATION ${TARGETDIR}
)
+
+ if(WITH_OPENMP)
+ install(
+ FILES
+ ${LIBDIR}/binaries/libgomp-1.dll
+ DESTINATION ${TARGETDIR}
+ )
+ endif()
endif()
endif()
@@ -616,10 +636,27 @@ elseif(WIN32)
if(WITH_OPENIMAGEIO)
if(NOT MINGW)
- set_lib_path(OIIOBIN "openimageio/bin")
+ set(OIIOBIN ${LIBDIR}/openimageio)
install(
FILES
- ${OIIOBIN}/OpenImageIO.dll
+ ${OIIOBIN}/bin/OpenImageIO.dll
+ DESTINATION ${TARGETDIR}
+ )
+ endif()
+ endif()
+
+ if(WITH_OPENCOLORIO)
+ set(OCIOBIN ${LIBDIR}/opencolorio/bin)
+ if(NOT MINGW)
+ install(
+ FILES
+ ${OCIOBIN}/OpenColorIO.dll
+ DESTINATION ${TARGETDIR}
+ )
+ else()
+ install(
+ FILES
+ ${OCIOBIN}/libOpenColorIO.dll
DESTINATION ${TARGETDIR}
)
endif()
@@ -699,7 +736,15 @@ elseif(APPLE)
)
endif()
-
+
+ #OSL shader_headers needed
+ if(WITH_CYCLES_OSL)
+ install(
+ FILES ${LIBDIR}/osl/shaders/oslutil.h ${LIBDIR}/osl/shaders/stdosl.h
+ DESTINATION ${TARGETDIR}/blender.app/Contents/shaders/
+ )
+ endif()
+
# install blenderplayer bundle - copy of blender.app above. re-using macros et al
# note we are using OSX Bundle as base and copying Blender dummy bundle on top of it
if(WITH_GAMEENGINE AND WITH_PLAYER)
@@ -741,6 +786,7 @@ elseif(APPLE)
endif()
endif()
+
endif()
# -----------------------------------------------------------------------------
@@ -779,6 +825,9 @@ if(WITH_CYCLES)
cycles_kernel
cycles_util
cycles_subd)
+ if(WITH_CYCLES_OSL)
+ list(APPEND BLENDER_LINK_LIBS cycles_kernel_osl)
+ endif()
endif()
#if(UNIX)
@@ -849,10 +898,8 @@ endif()
bf_imbuf_dds
bf_collada
bf_intern_bsp
- bf_intern_bop
bf_intern_decimate
bf_intern_elbeem
- bf_intern_ik
bf_intern_memutil
bf_intern_guardedalloc
bf_intern_ctr
@@ -895,12 +942,13 @@ endif()
cycles_util
cycles_subd
bf_intern_raskter
+ bf_intern_opencolorio
)
if(WITH_COMPOSITOR)
- #added for opencl compositor
- list(APPEND BLENDER_SORTED_LIBS bf_compositor)
- list(APPEND BLENDER_SORTED_LIBS bf_opencl)
+ # added for opencl compositor
+ list_insert_before(BLENDER_SORTED_LIBS "bf_blenkernel" "bf_compositor")
+ list_insert_after(BLENDER_SORTED_LIBS "bf_compositor" "bf_opencl")
endif()
if(WITH_LIBMV)
@@ -924,6 +972,10 @@ endif()
list(APPEND BLENDER_SORTED_LIBS bf_intern_guardedalloc_cpp)
endif()
+ if(WITH_IK_SOLVER)
+ list_insert_after(BLENDER_SORTED_LIBS "bf_intern_elbeem" "bf_intern_iksolver")
+ endif()
+
if(WITH_IK_ITASC)
list(APPEND BLENDER_SORTED_LIBS bf_intern_itasc)
endif()
@@ -932,7 +984,7 @@ endif()
list(APPEND BLENDER_SORTED_LIBS bf_quicktime)
endif()
- if(WITH_CARVE)
+ if(WITH_MOD_BOOLEAN)
list(APPEND BLENDER_SORTED_LIBS extern_carve)
endif()
@@ -940,6 +992,10 @@ endif()
list(APPEND BLENDER_SORTED_LIBS extern_xdnd)
endif()
+ if(WITH_CYCLES_OSL)
+ list_insert_after(BLENDER_SORTED_LIBS "cycles_kernel" "cycles_kernel_osl")
+ endif()
+
foreach(SORTLIB ${BLENDER_SORTED_LIBS})
set(REMLIB ${SORTLIB})
foreach(SEARCHLIB ${BLENDER_LINK_LIBS})
diff --git a/source/creator/creator.c b/source/creator/creator.c
index 8c9cc45a050..ab9541cf299 100644
--- a/source/creator/creator.c
+++ b/source/creator/creator.c
@@ -68,7 +68,6 @@
#include "BLI_blenlib.h"
-#include "BKE_utildefines.h"
#include "BKE_blender.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h" /* for DAG_on_visible_update */
@@ -92,7 +91,6 @@
#include "RE_engine.h"
#include "RE_pipeline.h"
-//XXX #include "playanim_ext.h"
#include "ED_datafiles.h"
#include "WM_api.h"
@@ -174,7 +172,7 @@ static void blender_esc(int sig)
{
static int count = 0;
- G.afbreek = 1; /* forces render loop to read queue, not sure if its needed */
+ G.is_break = TRUE; /* forces render loop to read queue, not sure if its needed */
if (sig == 2) {
if (count) {
@@ -390,7 +388,7 @@ static int debug_mode_libmv(int UNUSED(argc), const char **UNUSED(argv), void *U
static int set_debug_value(int argc, const char **argv, void *UNUSED(data))
{
if (argc > 1) {
- G.rt = atoi(argv[1]);
+ G.debug_value = atoi(argv[1]);
return 1;
}
@@ -453,16 +451,12 @@ static int set_env(int argc, const char **argv, void *UNUSED(data))
return 1;
}
-static int playback_mode(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data))
+static int playback_mode(int argc, const char **argv, void *UNUSED(data))
{
/* not if -b was given first */
if (G.background == 0) {
-#if 0 /* TODO, bring player back? */
- playanim(argc, argv); /* not the same argc and argv as before */
-#else
- fprintf(stderr, "Playback mode not supported in blender 2.6x\n");
- exit(0);
-#endif
+ WM_main_playanim(argc, argv); /* not the same argc and argv as before */
+ exit(0); /* 2.4x didn't do this */
}
return -2;
@@ -482,20 +476,20 @@ static int prefsize(int argc, const char **argv, void *UNUSED(data))
sizx = atoi(argv[3]);
sizy = atoi(argv[4]);
- WM_setprefsize(stax, stay, sizx, sizy);
+ WM_init_state_size_set(stax, stay, sizx, sizy);
return 4;
}
static int with_borders(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data))
{
- WM_setinitialstate_normal();
+ WM_init_state_normal_set();
return 0;
}
static int without_borders(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data))
{
- WM_setinitialstate_fullscreen();
+ WM_init_state_fullscreen_set();
return 0;
}
@@ -1031,7 +1025,7 @@ static int load_file(int UNUSED(argc), const char **argv, void *data)
return -1;
}
- /* WM_read_file() runs normally but since we're in background mode do here */
+ /* WM_file_read() runs normally but since we're in background mode do here */
#ifdef WITH_PYTHON
/* run any texts that were loaded in and flagged as modules */
BPY_driver_reset();
@@ -1048,7 +1042,7 @@ static int load_file(int UNUSED(argc), const char **argv, void *data)
* a file - this should do everything a 'load file' does */
ReportList reports;
BKE_reports_init(&reports, RPT_PRINT);
- WM_read_file(C, filename, &reports);
+ WM_file_read(C, filename, &reports);
BKE_reports_clear(&reports);
}
@@ -1272,15 +1266,14 @@ int main(int argc, const char **argv)
BLI_threadapi_init();
- RNA_init();
- RE_engines_init();
-
- init_nodesystem();
-
initglobals(); /* blender.c */
IMB_init();
+#ifdef WITH_FFMPEG
+ IMB_ffmpeg_init();
+#endif
+
BLI_callback_global_init();
#ifdef WITH_GAMEENGINE
@@ -1297,6 +1290,15 @@ int main(int argc, const char **argv)
BLI_argsParse(ba, 1, NULL, NULL);
#endif
+
+ /* after level 1 args, this is so playanim skips RNA init */
+ RNA_init();
+
+ RE_engines_init();
+ init_nodesystem();
+ /* end second init */
+
+
#if defined(WITH_PYTHON_MODULE) || defined(WITH_HEADLESS)
G.background = 1; /* python module mode ALWAYS runs in background mode (for now) */
#else
@@ -1305,7 +1307,7 @@ int main(int argc, const char **argv)
#endif
/* background render uses this font too */
- BKE_vfont_builtin_register(datatoc_Bfont, datatoc_Bfont_size);
+ BKE_vfont_builtin_register(datatoc_bfont_pfb, datatoc_bfont_pfb_size);
/* Initialize ffmpeg if built in, also needed for bg mode if videos are
* rendered via ffmpeg */
@@ -1346,7 +1348,7 @@ int main(int argc, const char **argv)
* WM_init() before #BPY_python_start() crashes Blender at startup.
*/
- // TODO - U.pythondir
+ /* TODO - U.pythondir */
#else
printf("\n* WARNING * - Blender compiled without Python!\nthis is not intended for typical usage\n\n");
#endif
diff --git a/source/darwin/blender.app/Contents/Info.plist b/source/darwin/blender.app/Contents/Info.plist
index 37920dc8181..064ffe5bc3f 100644
--- a/source/darwin/blender.app/Contents/Info.plist
+++ b/source/darwin/blender.app/Contents/Info.plist
@@ -48,5 +48,7 @@
<key>OMP_NUM_THREADS</key>
<string>4</string>
</dict>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
</dict>
</plist>
diff --git a/source/darwin/blenderplayer.app/Contents/Info.plist b/source/darwin/blenderplayer.app/Contents/Info.plist
index 54364d18866..c7b9ceb568e 100644
--- a/source/darwin/blenderplayer.app/Contents/Info.plist
+++ b/source/darwin/blenderplayer.app/Contents/Info.plist
@@ -1,33 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
-<plist version="0.9">
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
<dict>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
-
<key>CFBundleExecutable</key>
<string>blenderplayer</string>
-
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
-
<key>CFBundleIconFile</key>
<string>blender player icon.icns</string>
-
<key>CFBundleName</key>
<string>BlenderPlayer</string>
<key>CFBundleIdentifier</key>
<string>org.blenderfoundation.blenderplayer</string>
-
<key>CFBundleVersion</key>
<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}, Blender Foundation</string>
<key>CFBundleShortVersionString</key>
<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
<key>CFBundleGetInfoString</key>
<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}, Blender Foundation</string>
-
<key>CFBundleDocumentTypes</key>
<array>
<dict>
@@ -49,5 +43,7 @@
<false/>
</dict>
</array>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
</dict>
</plist>
diff --git a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
index 8b211385928..5cfa97e2e7e 100644
--- a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
+++ b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
@@ -54,6 +54,7 @@
#include "KX_BlenderSceneConverter.h"
#include "KX_PythonInit.h"
#include "KX_PyConstraintBinding.h"
+#include "KX_PythonMain.h"
#include "RAS_GLExtensionManager.h"
#include "RAS_OpenGLRasterizer.h"
@@ -79,12 +80,11 @@ extern "C" {
#include "DNA_windowmanager_types.h"
#include "BKE_global.h"
#include "BKE_report.h"
-/* #include "BKE_screen.h" */ /* cant include this because of 'new' function name */
-extern float BKE_screen_view3d_zoom_to_fac(float camzoom);
+#include "MEM_guardedalloc.h"
-//XXX #include "BIF_screen.h"
-//XXX #include "BIF_scrarea.h"
+/* #include "BKE_screen.h" */ /* cant include this because of 'new' function name */
+extern float BKE_screen_view3d_zoom_to_fac(float camzoom);
#include "BKE_main.h"
#include "BLI_blenlib.h"
@@ -93,7 +93,6 @@ extern float BKE_screen_view3d_zoom_to_fac(float camzoom);
#include "BKE_ipo.h"
/***/
-//XXX #include "BSE_headerbuttons.h"
#include "BKE_context.h"
#include "../../blender/windowmanager/WM_types.h"
#include "../../blender/windowmanager/wm_window.h"
@@ -126,6 +125,93 @@ static BlendFileData *load_game_data(char *filename)
return bfd;
}
+static int BL_KetsjiNextFrame(KX_KetsjiEngine *ketsjiengine, bContext *C, wmWindow *win, Scene *scene, ARegion *ar,
+ KX_BlenderKeyboardDevice* keyboarddevice, KX_BlenderMouseDevice* mousedevice, int draw_letterbox)
+{
+ int exitrequested;
+
+ // first check if we want to exit
+ exitrequested = ketsjiengine->GetExitCode();
+
+ // kick the engine
+ bool render = ketsjiengine->NextFrame();
+
+ if (render) {
+ if (draw_letterbox) {
+ // Clear screen to border color
+ // We do this here since we set the canvas to be within the frames. This means the engine
+ // itself is unaware of the extra space, so we clear the whole region for it.
+ glClearColor(scene->gm.framing.col[0], scene->gm.framing.col[1], scene->gm.framing.col[2], 1.0f);
+ glViewport(ar->winrct.xmin, ar->winrct.ymin,
+ BLI_rcti_size_x(&ar->winrct), BLI_rcti_size_y(&ar->winrct));
+ glClear(GL_COLOR_BUFFER_BIT);
+ }
+
+ // render the frame
+ ketsjiengine->Render();
+ }
+
+ wm_window_process_events_nosleep();
+
+ // test for the ESC key
+ //XXX while (qtest())
+ while (wmEvent *event= (wmEvent *)win->queue.first) {
+ short val = 0;
+ //unsigned short event = 0; //XXX extern_qread(&val);
+
+ if (keyboarddevice->ConvertBlenderEvent(event->type,event->val))
+ exitrequested = KX_EXIT_REQUEST_BLENDER_ESC;
+
+ /* Coordinate conversion... where
+ * should this really be?
+ */
+ if (event->type == MOUSEMOVE) {
+ /* Note, not nice! XXX 2.5 event hack */
+ val = event->x - ar->winrct.xmin;
+ mousedevice->ConvertBlenderEvent(MOUSEX, val);
+
+ val = ar->winy - (event->y - ar->winrct.ymin) - 1;
+ mousedevice->ConvertBlenderEvent(MOUSEY, val);
+ }
+ else {
+ mousedevice->ConvertBlenderEvent(event->type,event->val);
+ }
+
+ BLI_remlink(&win->queue, event);
+ wm_event_free(event);
+ }
+
+ if (win != CTX_wm_window(C)) {
+ exitrequested= KX_EXIT_REQUEST_OUTSIDE; /* window closed while bge runs */
+ }
+ return exitrequested;
+}
+
+struct BL_KetsjiNextFrameState {
+ struct KX_KetsjiEngine* ketsjiengine;
+ struct bContext *C;
+ struct wmWindow* win;
+ struct Scene* scene;
+ struct ARegion *ar;
+ KX_BlenderKeyboardDevice* keyboarddevice;
+ KX_BlenderMouseDevice* mousedevice;
+ int draw_letterbox;
+} ketsjinextframestate;
+
+static int BL_KetsjiPyNextFrame(void *state0)
+{
+ BL_KetsjiNextFrameState *state = (BL_KetsjiNextFrameState *) state0;
+ return BL_KetsjiNextFrame(
+ state->ketsjiengine,
+ state->C,
+ state->win,
+ state->scene,
+ state->ar,
+ state->keyboarddevice,
+ state->mousedevice,
+ state->draw_letterbox);
+}
+
extern "C" void StartKetsjiShell(struct bContext *C, struct ARegion *ar, rcti *cam_frame, int always_use_expand_framing)
{
/* context values */
@@ -445,71 +531,49 @@ extern "C" void StartKetsjiShell(struct bContext *C, struct ARegion *ar, rcti *c
// Could be in StartEngine set the framerate, we need the scene to do this
ketsjiengine->SetAnimFrameRate(FPS);
+#ifdef WITH_PYTHON
+ char *python_main = NULL;
+ pynextframestate.state = NULL;
+ pynextframestate.func = NULL;
+ python_main = KX_GetPythonMain(scene);
+
// the mainloop
printf("\nBlender Game Engine Started\n");
- while (!exitrequested)
- {
- // first check if we want to exit
- exitrequested = ketsjiengine->GetExitCode();
-
- // kick the engine
- bool render = ketsjiengine->NextFrame();
-
- if (render)
- {
- if (draw_letterbox) {
- // Clear screen to border color
- // We do this here since we set the canvas to be within the frames. This means the engine
- // itself is unaware of the extra space, so we clear the whole region for it.
- glClearColor(scene->gm.framing.col[0], scene->gm.framing.col[1], scene->gm.framing.col[2], 1.0f);
- glViewport(ar->winrct.xmin, ar->winrct.ymin,
- ar->winrct.xmax - ar->winrct.xmin, ar->winrct.ymax - ar->winrct.ymin);
- glClear(GL_COLOR_BUFFER_BIT);
- }
-
- // render the frame
- ketsjiengine->Render();
+ if (python_main) {
+ char *python_code = KX_GetPythonCode(blenderdata, python_main);
+ if (python_code) {
+ ketsjinextframestate.ketsjiengine = ketsjiengine;
+ ketsjinextframestate.C = C;
+ ketsjinextframestate.win = win;
+ ketsjinextframestate.scene = scene;
+ ketsjinextframestate.ar = ar;
+ ketsjinextframestate.keyboarddevice = keyboarddevice;
+ ketsjinextframestate.mousedevice = mousedevice;
+ ketsjinextframestate.draw_letterbox = draw_letterbox;
+
+ pynextframestate.state = &ketsjinextframestate;
+ pynextframestate.func = &BL_KetsjiPyNextFrame;
+ printf("Yielding control to Python script '%s'...\n", python_main);
+ PyRun_SimpleString(python_code);
+ printf("Exit Python script '%s'\n", python_main);
+ MEM_freeN(python_code);
}
-
- wm_window_process_events_nosleep();
-
- // test for the ESC key
- //XXX while (qtest())
- while(wmEvent *event= (wmEvent *)win->queue.first)
+ }
+ else
+#endif /* WITH_PYTHON */
+ {
+ while (!exitrequested)
{
- short val = 0;
- //unsigned short event = 0; //XXX extern_qread(&val);
-
- if (keyboarddevice->ConvertBlenderEvent(event->type,event->val))
- exitrequested = KX_EXIT_REQUEST_BLENDER_ESC;
-
- /* Coordinate conversion... where
- * should this really be?
- */
- if (event->type==MOUSEMOVE) {
- /* Note, not nice! XXX 2.5 event hack */
- val = event->x - ar->winrct.xmin;
- mousedevice->ConvertBlenderEvent(MOUSEX, val);
-
- val = ar->winy - (event->y - ar->winrct.ymin) - 1;
- mousedevice->ConvertBlenderEvent(MOUSEY, val);
- }
- else {
- mousedevice->ConvertBlenderEvent(event->type,event->val);
- }
-
- BLI_remlink(&win->queue, event);
- wm_event_free(event);
- }
-
- if (win != CTX_wm_window(C)) {
- exitrequested= KX_EXIT_REQUEST_OUTSIDE; /* window closed while bge runs */
+ exitrequested = BL_KetsjiNextFrame(ketsjiengine, C, win, scene, ar, keyboarddevice, mousedevice, draw_letterbox);
}
}
printf("Blender Game Engine Finished\n");
exitstring = ketsjiengine->GetExitString();
- gs = *(ketsjiengine->GetGlobalSettings());
+#ifdef WITH_PYTHON
+ if (python_main) MEM_freeN(python_main);
+#endif /* WITH_PYTHON */
+ gs = *(ketsjiengine->GetGlobalSettings());
// when exiting the mainloop
#ifdef WITH_PYTHON
@@ -525,8 +589,8 @@ extern "C" void StartKetsjiShell(struct bContext *C, struct ARegion *ar, rcti *c
PyObject *gameLogic_keys_new = PyDict_Keys(PyModule_GetDict(gameLogic));
const Py_ssize_t numitems= PyList_GET_SIZE(gameLogic_keys_new);
Py_ssize_t listIndex;
- for (listIndex=0; listIndex < numitems; listIndex++) {
- PyObject* item = PyList_GET_ITEM(gameLogic_keys_new, listIndex);
+ for (listIndex=0; listIndex < numitems; listIndex++) {
+ PyObject *item = PyList_GET_ITEM(gameLogic_keys_new, listIndex);
if (!PySequence_Contains(gameLogic_keys, item)) {
PyDict_DelItem( PyModule_GetDict(gameLogic), item);
}
diff --git a/source/gameengine/BlenderRoutines/CMakeLists.txt b/source/gameengine/BlenderRoutines/CMakeLists.txt
index 96b56768b8f..fa0994d788a 100644
--- a/source/gameengine/BlenderRoutines/CMakeLists.txt
+++ b/source/gameengine/BlenderRoutines/CMakeLists.txt
@@ -28,11 +28,11 @@ set(INC
../../../intern/guardedalloc
../../../intern/moto/include
../../../intern/string
- ${GLEW_INCLUDE_PATH}
)
set(INC_SYS
${PTHREADS_INCLUDE_DIRS}
+ ${GLEW_INCLUDE_PATH}
)
set(SRC
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
index 6236923d973..0b41cceb646 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
@@ -33,6 +33,7 @@
#include "KX_BlenderCanvas.h"
#include "DNA_screen_types.h"
#include <stdio.h>
+#include <assert.h>
KX_BlenderCanvas::KX_BlenderCanvas(struct wmWindow *win, RAS_Rect &rect, struct ARegion *ar) :
@@ -44,6 +45,8 @@ m_frame_rect(rect)
// area boundaries needed for mouse coordinates in Letterbox framing mode
m_area_left = ar->winrct.xmin;
m_area_top = ar->winrct.ymax;
+
+ glGetIntegerv(GL_VIEWPORT, (GLint*)m_viewport);
}
KX_BlenderCanvas::~KX_BlenderCanvas()
@@ -53,7 +56,7 @@ KX_BlenderCanvas::~KX_BlenderCanvas()
void KX_BlenderCanvas::Init()
{
glDepthFunc(GL_LEQUAL);
-}
+}
void KX_BlenderCanvas::SwapBuffers()
@@ -143,7 +146,7 @@ KX_BlenderCanvas::
GetWindowArea(
) {
return m_area_rect;
-}
+}
void
KX_BlenderCanvas::
@@ -166,10 +169,31 @@ SetViewPort(
m_area_rect.SetRight(minx + x2);
m_area_rect.SetTop(miny + y2);
+ m_viewport[0] = minx+x1;
+ m_viewport[1] = miny+y1;
+ m_viewport[2] = vp_width;
+ m_viewport[3] = vp_height;
+
glViewport(minx + x1, miny + y1, vp_width, vp_height);
glScissor(minx + x1, miny + y1, vp_width, vp_height);
}
+ const int*
+KX_BlenderCanvas::
+GetViewPort() {
+#ifdef DEBUG
+ // If we're in a debug build, we might as well make sure our values don't differ
+ // from what the gpu thinks we have. This could lead to nasty, hard to find bugs.
+ int viewport[4];
+ glGetIntegerv(GL_VIEWPORT, viewport);
+ assert(viewport[0] == m_viewport[0]);
+ assert(viewport[1] == m_viewport[1]);
+ assert(viewport[2] == m_viewport[2]);
+ assert(viewport[3] == m_viewport[3]);
+#endif
+
+ return m_viewport;
+}
void KX_BlenderCanvas::SetMouseState(RAS_MouseState mousestate)
{
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
index ee7997abb39..004f7dd0dd9 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
@@ -61,6 +61,7 @@ private:
/** Rect that defines the area used for rendering,
relative to the context */
RAS_Rect m_displayarea;
+ int m_viewport[4];
public:
/* Construct a new canvas.
@@ -150,6 +151,8 @@ public:
int x1, int y1,
int x2, int y2
);
+ const int*
+ GetViewPort();
void
SetMouseState(
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp b/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
index 19a84acf027..7c4c759e361 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
@@ -91,7 +91,7 @@ void BL_SwapBuffers(wmWindow *win)
wm_window_swap_buffers(win);
}
-void DisableForText()
+static void DisableForText()
{
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); /* needed for texture fonts otherwise they render as wireframe */
@@ -153,7 +153,7 @@ void BL_print_game_line(int fontid, const char* text, int size, int dpi, float*
}
void BL_print_gamedebug_line(const char* text, int xco, int yco, int width, int height)
-{
+{
/* gl prepping */
DisableForText();
glDisable(GL_DEPTH_TEST);
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
index 9156102ab0d..85b76d7c676 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
+++ b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
@@ -196,7 +196,7 @@ void KX_BlenderRenderTools::applyTransform(RAS_IRasterizer* rasty,double* oglmat
//page 360/361 3D Game Engine Design, David Eberly for a discussion
// on screen aligned and axis aligned billboards
// assumed is that the preprocessor transformed all billboard polygons
- // so that their normal points into the positive x direction (1.0 , 0.0 , 0.0)
+ // so that their normal points into the positive x direction (1.0, 0.0, 0.0)
// when new parenting for objects is done, this rotation
// will be moved into the object
@@ -344,7 +344,7 @@ void KX_BlenderRenderTools::PopMatrix()
int KX_BlenderRenderTools::applyLights(int objectlayer, const MT_Transform& viewmat)
{
- // taken from blender source, incompatibility between Blender Object / GameObject
+ // taken from blender source, incompatibility between Blender Object / GameObject
KX_Scene* kxscene = (KX_Scene*)m_auxilaryClientInfo;
float glviewmat[16];
unsigned int count;
@@ -383,8 +383,7 @@ void KX_BlenderRenderTools::MotionBlur(RAS_IRasterizer* rasterizer)
glAccum(GL_LOAD, 1.0);
rasterizer->SetMotionBlurState(2);
}
- else if (motionblurvalue>=0.0 && motionblurvalue<=1.0)
- {
+ else if (motionblurvalue >= 0.0f && motionblurvalue <= 1.0f) {
glAccum(GL_MULT, motionblurvalue);
glAccum(GL_ACCUM, 1-motionblurvalue);
glAccum(GL_RETURN, 1.0);
diff --git a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
index a229c9f34e6..54ff4dde947 100644
--- a/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
+++ b/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
@@ -62,7 +62,7 @@ class KX_BlenderRenderTools : public RAS_IRenderTools
public:
KX_BlenderRenderTools();
- virtual ~KX_BlenderRenderTools();
+ virtual ~KX_BlenderRenderTools();
void EndFrame(RAS_IRasterizer* rasty);
void BeginFrame(RAS_IRasterizer* rasty);
diff --git a/source/gameengine/CMakeLists.txt b/source/gameengine/CMakeLists.txt
index a205ccbdc12..aae7e93cc91 100644
--- a/source/gameengine/CMakeLists.txt
+++ b/source/gameengine/CMakeLists.txt
@@ -25,7 +25,7 @@
# there are too many inter-includes so best define here
if(WITH_PYTHON)
- blender_include_dirs("${PYTHON_INCLUDE_DIRS}")
+ blender_include_dirs_sys("${PYTHON_INCLUDE_DIRS}")
add_definitions(-DWITH_PYTHON)
endif()
diff --git a/source/gameengine/Converter/BL_ActionActuator.cpp b/source/gameengine/Converter/BL_ActionActuator.cpp
index b580fc31585..fcf09588791 100644
--- a/source/gameengine/Converter/BL_ActionActuator.cpp
+++ b/source/gameengine/Converter/BL_ActionActuator.cpp
@@ -96,7 +96,7 @@ BL_ActionActuator::BL_ActionActuator(SCA_IObject* gameobj,
m_userpose(NULL),
m_action(action),
m_propname(propname),
- m_framepropname(framepropname)
+ m_framepropname(framepropname)
{
if (!end_reset)
m_flag |= ACT_FLAG_CONTINUE;
@@ -145,7 +145,6 @@ void BL_ActionActuator::SetLocalTime(float curtime)
case ACT_ACTION_PLAY:
// Clamp
m_localtime = m_endframe;
- ((KX_GameObject*)GetParent())->StopAction(m_layer);
break;
case ACT_ACTION_LOOP_END:
// Put the time back to the beginning
@@ -300,7 +299,7 @@ bool BL_ActionActuator::Update(double curtime, bool frame)
m_flag |= ACT_FLAG_ATTEMPT_PLAY;
}
else if ((m_flag & ACT_FLAG_ACTIVE) && bNegativeEvent)
- {
+ {
m_flag &= ~ACT_FLAG_ATTEMPT_PLAY;
m_localtime = obj->GetActionFrame(m_layer);
bAction *curr_action = obj->GetCurrentAction(m_layer);
@@ -339,7 +338,7 @@ bool BL_ActionActuator::Update(double curtime, bool frame)
}
}
- return true;
+ return m_flag & ACT_FLAG_ACTIVE;
}
#ifdef WITH_PYTHON
@@ -348,7 +347,7 @@ bool BL_ActionActuator::Update(double curtime, bool frame)
/* Python functions */
/* ------------------------------------------------------------------------- */
-PyObject* BL_ActionActuator::PyGetChannel(PyObject* value)
+PyObject *BL_ActionActuator::PyGetChannel(PyObject *value)
{
PyErr_SetString(PyExc_NotImplementedError, "BL_ActionActuator.getChannel() no longer works, please use BL_ArmatureObject.channels instead");
return NULL;
@@ -556,7 +555,7 @@ PyAttributeDef BL_ActionActuator::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* BL_ActionActuator::pyattr_get_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *BL_ActionActuator::pyattr_get_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
BL_ActionActuator* self= static_cast<BL_ActionActuator*>(self_v);
return PyUnicode_FromString(self->GetAction() ? self->GetAction()->id.name+2 : "");
@@ -590,7 +589,7 @@ int BL_ActionActuator::pyattr_set_action(void *self_v, const KX_PYATTRIBUTE_DEF
}
-PyObject* BL_ActionActuator::pyattr_get_channel_names(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *BL_ActionActuator::pyattr_get_channel_names(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
PyErr_SetString(PyExc_NotImplementedError, "BL_ActionActuator.channelNames no longer works, please use BL_ArmatureObject.channels instead");
return NULL;
@@ -621,7 +620,7 @@ PyObject* BL_ActionActuator::pyattr_get_channel_names(void *self_v, const KX_PYA
#endif
}
-PyObject* BL_ActionActuator::pyattr_get_use_continue(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *BL_ActionActuator::pyattr_get_use_continue(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
BL_ActionActuator* self= static_cast<BL_ActionActuator*>(self_v);
return PyBool_FromLong(self->m_flag & ACT_FLAG_CONTINUE);
@@ -639,7 +638,7 @@ int BL_ActionActuator::pyattr_set_use_continue(void *self_v, const KX_PYATTRIBUT
return PY_SET_ATTR_SUCCESS;
}
-PyObject* BL_ActionActuator::pyattr_get_frame(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *BL_ActionActuator::pyattr_get_frame(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
BL_ActionActuator* self= static_cast<BL_ActionActuator*>(self_v);
return PyFloat_FromDouble(((KX_GameObject*)self->m_gameobj)->GetActionFrame(self->m_layer));
diff --git a/source/gameengine/Converter/BL_ArmatureActuator.cpp b/source/gameengine/Converter/BL_ArmatureActuator.cpp
index 3f4a261a972..f0c4b3d32bb 100644
--- a/source/gameengine/Converter/BL_ArmatureActuator.cpp
+++ b/source/gameengine/Converter/BL_ArmatureActuator.cpp
@@ -146,7 +146,7 @@ void BL_ArmatureActuator::FindConstraint()
bool BL_ArmatureActuator::Update(double curtime, bool frame)
{
// the only role of this actuator is to ensure that the armature pose will be evaluated
- bool result = false;
+ bool result = false;
bool bNegativeEvent = IsNegativeEvent();
RemoveAllEvents();
@@ -227,11 +227,11 @@ PyAttributeDef BL_ArmatureActuator::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* BL_ArmatureActuator::pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *BL_ArmatureActuator::pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
BL_ArmatureActuator* actuator = static_cast<BL_ArmatureActuator*>(self);
KX_GameObject *target = (!strcmp(attrdef->m_name, "target")) ? actuator->m_gametarget : actuator->m_gamesubtarget;
- if (!target)
+ if (!target)
Py_RETURN_NONE;
else
return target->GetProxy();
@@ -247,7 +247,7 @@ int BL_ArmatureActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBU
return PY_SET_ATTR_FAIL; // ConvertPythonToGameObject sets the error
if (target != NULL)
- target->UnregisterActuator(actuator);
+ target->UnregisterActuator(actuator);
target = gameobj;
@@ -257,11 +257,11 @@ int BL_ArmatureActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBU
return PY_SET_ATTR_SUCCESS;
}
-PyObject* BL_ArmatureActuator::pyattr_get_constraint(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *BL_ArmatureActuator::pyattr_get_constraint(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
BL_ArmatureActuator* actuator = static_cast<BL_ArmatureActuator*>(self);
BL_ArmatureConstraint* constraint = actuator->m_constraint;
- if (!constraint)
+ if (!constraint)
Py_RETURN_NONE;
else
return constraint->GetProxy();
diff --git a/source/gameengine/Converter/BL_ArmatureActuator.h b/source/gameengine/Converter/BL_ArmatureActuator.h
index 638640c27ce..0c88dccb6f3 100644
--- a/source/gameengine/Converter/BL_ArmatureActuator.h
+++ b/source/gameengine/Converter/BL_ArmatureActuator.h
@@ -73,8 +73,8 @@ public:
#ifdef WITH_PYTHON
/* These are used to get and set m_target */
- static PyObject* pyattr_get_constraint(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_constraint(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
#endif // WITH_PYTHON
diff --git a/source/gameengine/Converter/BL_ArmatureChannel.cpp b/source/gameengine/Converter/BL_ArmatureChannel.cpp
index f464d6c4b59..e588d1d310c 100644
--- a/source/gameengine/Converter/BL_ArmatureChannel.cpp
+++ b/source/gameengine/Converter/BL_ArmatureChannel.cpp
@@ -62,7 +62,7 @@ PyTypeObject BL_ArmatureChannel::Type = {
py_base_new
};
-PyObject* BL_ArmatureChannel::py_repr(void)
+PyObject *BL_ArmatureChannel::py_repr(void)
{
return PyUnicode_FromString(m_posechannel->name);
}
@@ -104,8 +104,8 @@ PyMethodDef BL_ArmatureChannel::Methods[] = {
PyAttributeDef BL_ArmatureChannel::Attributes[] = {
// Keep these attributes in order of BCA_ defines!!! used by py_attr_getattr and py_attr_setattr
- KX_PYATTRIBUTE_RO_FUNCTION("bone",BL_ArmatureChannel,py_attr_getattr),
- KX_PYATTRIBUTE_RO_FUNCTION("parent",BL_ArmatureChannel,py_attr_getattr),
+ KX_PYATTRIBUTE_RO_FUNCTION("bone",BL_ArmatureChannel,py_attr_getattr),
+ KX_PYATTRIBUTE_RO_FUNCTION("parent",BL_ArmatureChannel,py_attr_getattr),
{ NULL } //Sentinel
};
@@ -147,7 +147,7 @@ PyAttributeDef BL_ArmatureChannel::AttributesPtr[] = {
{ NULL } //Sentinel
};
-PyObject* BL_ArmatureChannel::py_attr_getattr(void *self_v, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *BL_ArmatureChannel::py_attr_getattr(void *self_v, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
BL_ArmatureChannel* self= static_cast<BL_ArmatureChannel*>(self_v);
bPoseChannel* channel = self->m_posechannel;
@@ -200,7 +200,7 @@ int BL_ArmatureChannel::py_attr_setattr(void *self_v, const struct KX_PYATTRIBUT
return PY_SET_ATTR_FAIL;
}
-PyObject* BL_ArmatureChannel::py_attr_get_joint_rotation(void *self_v, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *BL_ArmatureChannel::py_attr_get_joint_rotation(void *self_v, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
bPoseChannel* pchan = static_cast<bPoseChannel*>(self_v);
// decompose the pose matrix in euler rotation
@@ -223,7 +223,7 @@ PyObject* BL_ArmatureChannel::py_attr_get_joint_rotation(void *self_v, const str
}
// remove the rest pose to get the joint movement
transpose_m3(rest_mat);
- mul_m3_m3m3(joint_mat, rest_mat, pose_mat);
+ mul_m3_m3m3(joint_mat, rest_mat, pose_mat);
joints[0] = joints[1] = joints[2] = 0.f;
// returns a 3 element list that gives corresponding joint
int flag = 0;
@@ -258,7 +258,7 @@ PyObject* BL_ArmatureChannel::py_attr_get_joint_rotation(void *self_v, const str
joints[2] = -joint_mat[1][0];
norm = normalize_v3(joints);
if (norm < FLT_EPSILON) {
- norm = (joint_mat[1][1] < 0.f) ? M_PI : 0.f;
+ norm = (joint_mat[1][1] < 0.0f) ? (float)M_PI : 0.0f;
} else {
norm = acos(joint_mat[1][1]);
}
@@ -275,7 +275,7 @@ PyObject* BL_ArmatureChannel::py_attr_get_joint_rotation(void *self_v, const str
joints[2] = (joint_mat[0][1]-joint_mat[1][0])*0.5f;
sa = len_v3(joints);
ca = (joint_mat[0][0]+joint_mat[1][1]+joint_mat[1][1]-1.0f)*0.5f;
- if (sa > FLT_EPSILON) {
+ if (sa > (double)FLT_EPSILON) {
norm = atan2(sa,ca)/sa;
} else {
if (ca < 0.0) {
@@ -458,7 +458,7 @@ PyObject *BL_ArmatureBone::py_bone_get_children(void *self, const struct KX_PYAT
for (child=(Bone*)bone->childbase.first; child; child=(Bone*)child->next)
count++;
- PyObject* childrenlist = PyList_New(count);
+ PyObject *childrenlist = PyList_New(count);
for (count = 0, child=(Bone*)bone->childbase.first; child; child=(Bone*)child->next, ++count)
PyList_SET_ITEM(childrenlist,count,NewProxyPlus_Ext(NULL,&Type,child,false));
diff --git a/source/gameengine/Converter/BL_ArmatureChannel.h b/source/gameengine/Converter/BL_ArmatureChannel.h
index cd38ee2d531..b764d32e8a7 100644
--- a/source/gameengine/Converter/BL_ArmatureChannel.h
+++ b/source/gameengine/Converter/BL_ArmatureChannel.h
@@ -62,11 +62,11 @@ public:
#ifdef WITH_PYTHON
// Python access
- virtual PyObject* py_repr(void);
+ virtual PyObject *py_repr(void);
- static PyObject* py_attr_getattr(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *py_attr_getattr(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
static int py_attr_setattr(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
- static PyObject* py_attr_get_joint_rotation(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *py_attr_get_joint_rotation(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
static int py_attr_set_joint_rotation(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
#endif // WITH_PYTHON
};
diff --git a/source/gameengine/Converter/BL_ArmatureConstraint.cpp b/source/gameengine/Converter/BL_ArmatureConstraint.cpp
index ee78c4deed9..169205d79e7 100644
--- a/source/gameengine/Converter/BL_ArmatureConstraint.cpp
+++ b/source/gameengine/Converter/BL_ArmatureConstraint.cpp
@@ -61,7 +61,7 @@ PyTypeObject BL_ArmatureConstraint::Type = {
py_base_new
};
-PyObject* BL_ArmatureConstraint::py_repr(void)
+PyObject *BL_ArmatureConstraint::py_repr(void)
{
return PyUnicode_FromString(m_name);
}
@@ -267,8 +267,8 @@ PyMethodDef BL_ArmatureConstraint::Methods[] = {
PyAttributeDef BL_ArmatureConstraint::Attributes[] = {
// Keep these attributes in order of BCA_ defines!!! used by py_attr_getattr and py_attr_setattr
- KX_PYATTRIBUTE_RO_FUNCTION("type",BL_ArmatureConstraint,py_attr_getattr),
- KX_PYATTRIBUTE_RO_FUNCTION("name",BL_ArmatureConstraint,py_attr_getattr),
+ KX_PYATTRIBUTE_RO_FUNCTION("type",BL_ArmatureConstraint,py_attr_getattr),
+ KX_PYATTRIBUTE_RO_FUNCTION("name",BL_ArmatureConstraint,py_attr_getattr),
KX_PYATTRIBUTE_RW_FUNCTION("enforce",BL_ArmatureConstraint,py_attr_getattr,py_attr_setattr),
KX_PYATTRIBUTE_RW_FUNCTION("headtail",BL_ArmatureConstraint,py_attr_getattr,py_attr_setattr),
KX_PYATTRIBUTE_RO_FUNCTION("lin_error",BL_ArmatureConstraint,py_attr_getattr),
@@ -286,7 +286,7 @@ PyAttributeDef BL_ArmatureConstraint::Attributes[] = {
};
-PyObject* BL_ArmatureConstraint::py_attr_getattr(void *self_v, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *BL_ArmatureConstraint::py_attr_getattr(void *self_v, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
BL_ArmatureConstraint* self= static_cast<BL_ArmatureConstraint*>(self_v);
bConstraint* constraint = self->m_constraint;
@@ -312,12 +312,12 @@ PyObject* BL_ArmatureConstraint::py_attr_getattr(void *self_v, const struct KX_P
case BCA_ROTERROR:
return PyFloat_FromDouble(constraint->rot_error);
case BCA_TARGET:
- if (!self->m_target)
+ if (!self->m_target)
Py_RETURN_NONE;
else
return self->m_target->GetProxy();
case BCA_SUBTARGET:
- if (!self->m_subtarget)
+ if (!self->m_subtarget)
Py_RETURN_NONE;
else
return self->m_subtarget->GetProxy();
@@ -334,7 +334,7 @@ PyObject* BL_ArmatureConstraint::py_attr_getattr(void *self_v, const struct KX_P
}
switch (attr_order) {
case BCA_IKWEIGHT:
- return PyFloat_FromDouble((ikconstraint)?ikconstraint->weight:0.0);
+ return PyFloat_FromDouble((ikconstraint)?ikconstraint->weight : 0.0f);
case BCA_IKTYPE:
return PyLong_FromLong(ikconstraint->type);
case BCA_IKFLAG:
@@ -370,7 +370,7 @@ int BL_ArmatureConstraint::py_attr_setattr(void *self_v, const struct KX_PYATTRI
switch (attr_order) {
case BCA_ENFORCE:
dval = PyFloat_AsDouble(value);
- if (dval < 0.0f || dval > 1.0f) { /* also accounts for non float */
+ if (dval < 0.0 || dval > 1.0) { /* also accounts for non float */
PyErr_SetString(PyExc_AttributeError, "constraint.enforce = float: BL_ArmatureConstraint, expected a float between 0 and 1");
return PY_SET_ATTR_FAIL;
}
@@ -379,7 +379,7 @@ int BL_ArmatureConstraint::py_attr_setattr(void *self_v, const struct KX_PYATTRI
case BCA_HEADTAIL:
dval = PyFloat_AsDouble(value);
- if (dval < 0.0f || dval > 1.0f) { /* also accounts for non float */
+ if (dval < 0.0 || dval > 1.0) { /* also accounts for non float */
PyErr_SetString(PyExc_AttributeError, "constraint.headtail = float: BL_ArmatureConstraint, expected a float between 0 and 1");
return PY_SET_ATTR_FAIL;
}
@@ -417,7 +417,7 @@ int BL_ArmatureConstraint::py_attr_setattr(void *self_v, const struct KX_PYATTRI
switch (attr_order) {
case BCA_IKWEIGHT:
dval = PyFloat_AsDouble(value);
- if (dval < 0.0f || dval > 1.0f) { /* also accounts for non float */
+ if (dval < 0.0 || dval > 1.0) { /* also accounts for non float */
PyErr_SetString(PyExc_AttributeError, "constraint.weight = float: BL_ArmatureConstraint, expected a float between 0 and 1");
return PY_SET_ATTR_FAIL;
}
@@ -426,7 +426,7 @@ int BL_ArmatureConstraint::py_attr_setattr(void *self_v, const struct KX_PYATTRI
case BCA_IKDIST:
dval = PyFloat_AsDouble(value);
- if (dval < 0.0f) { /* also accounts for non float */
+ if (dval < 0.0) { /* also accounts for non float */
PyErr_SetString(PyExc_AttributeError, "constraint.ik_dist = float: BL_ArmatureConstraint, expected a positive float");
return PY_SET_ATTR_FAIL;
}
diff --git a/source/gameengine/Converter/BL_ArmatureConstraint.h b/source/gameengine/Converter/BL_ArmatureConstraint.h
index 0d79bb1cfa7..579153a2e79 100644
--- a/source/gameengine/Converter/BL_ArmatureConstraint.h
+++ b/source/gameengine/Converter/BL_ArmatureConstraint.h
@@ -115,9 +115,9 @@ public:
#ifdef WITH_PYTHON
// Python access
- virtual PyObject* py_repr(void);
+ virtual PyObject *py_repr(void);
- static PyObject* py_attr_getattr(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *py_attr_getattr(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
static int py_attr_setattr(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
#endif // WITH_PYTHON
};
diff --git a/source/gameengine/Converter/BL_ArmatureObject.cpp b/source/gameengine/Converter/BL_ArmatureObject.cpp
index 7174a563efa..da73d7a762a 100644
--- a/source/gameengine/Converter/BL_ArmatureObject.cpp
+++ b/source/gameengine/Converter/BL_ArmatureObject.cpp
@@ -430,7 +430,7 @@ void BL_ArmatureObject::ProcessReplica()
m_pose = NULL;
m_framePose = NULL;
- game_copy_pose(&m_pose, pose, 1);
+ game_copy_pose(&m_pose, pose, 1);
}
void BL_ArmatureObject::ReParentLogic()
@@ -521,7 +521,7 @@ bool BL_ArmatureObject::SetActiveAction(BL_ActionActuator *act, short priority,
SetPose(m_framePose);
if (m_activeAct && (m_activeAct!=act))
/* Reset the blend timer since this new action cancels the old one */
- m_activeAct->SetBlendTime(0.0);
+ m_activeAct->SetBlendTime(0.0);
}
m_activeAct = act;
m_activePriority = priority;
@@ -648,12 +648,12 @@ PyAttributeDef BL_ArmatureObject::Attributes[] = {
{NULL} //Sentinel
};
-PyObject* BL_ArmatureObject::pyattr_get_constraints(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *BL_ArmatureObject::pyattr_get_constraints(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
return KX_PythonSeq_CreatePyObject((static_cast<BL_ArmatureObject*>(self_v))->m_proxy, KX_PYGENSEQ_OB_TYPE_CONSTRAINTS);
}
-PyObject* BL_ArmatureObject::pyattr_get_channels(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *BL_ArmatureObject::pyattr_get_channels(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
BL_ArmatureObject* self = static_cast<BL_ArmatureObject*>(self_v);
self->LoadChannels(); // make sure we have the channels
diff --git a/source/gameengine/Converter/BL_ArmatureObject.h b/source/gameengine/Converter/BL_ArmatureObject.h
index ced6b94e6fd..4e7dc3df2f3 100644
--- a/source/gameengine/Converter/BL_ArmatureObject.h
+++ b/source/gameengine/Converter/BL_ArmatureObject.h
@@ -83,7 +83,7 @@ public:
bool SetActiveAction(class BL_ActionActuator *act, short priority, double curtime);
- struct bArmature * GetArmature() { return m_armature; }
+ struct bArmature *GetArmature() { return m_armature; }
const struct bArmature * GetArmature() const { return m_armature; }
const struct Scene * GetScene() const { return m_scene; }
@@ -116,8 +116,8 @@ public:
#ifdef WITH_PYTHON
// PYTHON
- static PyObject* pyattr_get_constraints(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_channels(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_constraints(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_channels(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
KX_PYMETHOD_DOC_NOARGS(BL_ArmatureObject, update);
#endif // WITH_PYTHON
diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp
index 3c9ca77b37e..6ffdea9f90e 100644
--- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp
+++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp
@@ -30,7 +30,6 @@
* \ingroup bgeconv
*/
-
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable : 4786)
#endif
@@ -186,10 +185,8 @@ extern Material defmaterial; /* material.c */
#ifdef __cplusplus
extern "C" {
#endif
-//XXX #include "BSE_headerbuttons.h"
//XXX void update_for_newframe();
//void BKE_scene_update_for_newframe(struct Scene *sce, unsigned int lay);
-//#include "BKE_ipo.h"
//void do_all_data_ipos(void);
#ifdef __cplusplus
}
@@ -219,7 +216,7 @@ static std::map<int, SCA_IInputDevice::KX_EnumInputs> create_translate_table()
// SYSTEM
-#if 0
+#if 0
/* **** XXX **** */
m[KEYBD ] = SCA_IInputDevice::KX_KEYBD;
m[RAWKEYBD ] = SCA_IInputDevice::KX_RAWKEYBD;
@@ -232,7 +229,7 @@ static std::map<int, SCA_IInputDevice::KX_EnumInputs> create_translate_table()
m[WINQUIT ] = SCA_IInputDevice::KX_WINQUIT;
m[Q_FIRSTTIME ] = SCA_IInputDevice::KX_Q_FIRSTTIME;
/* **** XXX **** */
-#endif
+#endif
// standard keyboard
@@ -450,7 +447,7 @@ static void GetRGB(short type,
else { // backup white
c0 = KX_rgbaint2uint_new(color);
c1 = KX_rgbaint2uint_new(color);
- c2 = KX_rgbaint2uint_new(color);
+ c2 = KX_rgbaint2uint_new(color);
if (mface->v4)
c3 = KX_rgbaint2uint_new( color );
}
@@ -464,15 +461,15 @@ static void GetRGB(short type,
unsigned char cp[4];
unsigned int integer;
} col_converter;
- col_converter.cp[3] = (unsigned char) (mat->r*255.0);
- col_converter.cp[2] = (unsigned char) (mat->g*255.0);
- col_converter.cp[1] = (unsigned char) (mat->b*255.0);
- col_converter.cp[0] = (unsigned char) (mat->alpha*255.0);
+ col_converter.cp[3] = (unsigned char) (mat->r * 255.0f);
+ col_converter.cp[2] = (unsigned char) (mat->g * 255.0f);
+ col_converter.cp[1] = (unsigned char) (mat->b * 255.0f);
+ col_converter.cp[0] = (unsigned char) (mat->alpha * 255.0f);
color = col_converter.integer;
}
c0 = KX_rgbaint2uint_new(color);
c1 = KX_rgbaint2uint_new(color);
- c2 = KX_rgbaint2uint_new(color);
+ c2 = KX_rgbaint2uint_new(color);
if (mface->v4)
c3 = KX_rgbaint2uint_new(color);
} break;
@@ -481,7 +478,7 @@ static void GetRGB(short type,
{
c0 = KX_rgbaint2uint_new(color);
c1 = KX_rgbaint2uint_new(color);
- c2 = KX_rgbaint2uint_new(color);
+ c2 = KX_rgbaint2uint_new(color);
if (mface->v4)
c3 = KX_rgbaint2uint_new(color);
} break;
@@ -494,7 +491,7 @@ typedef struct MTF_localLayer {
} MTF_localLayer;
// ------------------------------------
-bool ConvertMaterial(
+static bool ConvertMaterial(
BL_Material *material,
Material *mat,
MTFace* tface,
@@ -1143,17 +1140,17 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, KX_Scene* scene,
unsigned int integer;
} col_converter;
- col_converter.cp[3] = (unsigned char) (ma->r*255.0);
- col_converter.cp[2] = (unsigned char) (ma->g*255.0);
- col_converter.cp[1] = (unsigned char) (ma->b*255.0);
- col_converter.cp[0] = (unsigned char) (ma->alpha*255.0);
+ col_converter.cp[3] = (unsigned char) (ma->r * 255.0f);
+ col_converter.cp[2] = (unsigned char) (ma->g * 255.0f);
+ col_converter.cp[1] = (unsigned char) (ma->b * 255.0f);
+ col_converter.cp[0] = (unsigned char) (ma->alpha * 255.0f);
color = col_converter.integer;
}
rgb0 = KX_rgbaint2uint_new(color);
rgb1 = KX_rgbaint2uint_new(color);
- rgb2 = KX_rgbaint2uint_new(color);
+ rgb2 = KX_rgbaint2uint_new(color);
if (mface->v4)
rgb3 = KX_rgbaint2uint_new(color);
@@ -1330,8 +1327,8 @@ static PHY_ShapeProps *CreateShapePropsFromBlenderObject(struct Object* blendero
MT_assert(0.0f <= blenderobject->damping && blenderobject->damping <= 1.0f);
MT_assert(0.0f <= blenderobject->rdamping && blenderobject->rdamping <= 1.0f);
- shapeProps->m_lin_drag = 1.0 - blenderobject->damping;
- shapeProps->m_ang_drag = 1.0 - blenderobject->rdamping;
+ shapeProps->m_lin_drag = 1.0f - blenderobject->damping;
+ shapeProps->m_ang_drag = 1.0f - blenderobject->rdamping;
shapeProps->m_friction_scaling[0] = blenderobject->anisotropicFriction[0];
shapeProps->m_friction_scaling[1] = blenderobject->anisotropicFriction[1];
@@ -1456,17 +1453,17 @@ static void my_tex_space_mesh(Mesh *me)
copy_v3_v3(me->size, size);
me->rot[0]= me->rot[1]= me->rot[2]= 0.0f;
- if (me->size[0]==0.0) me->size[0]= 1.0f;
- else if (me->size[0]>0.0 && me->size[0]< 0.00001f) me->size[0]= 0.00001f;
- else if (me->size[0]<0.0 && me->size[0]> -0.00001f) me->size[0]= -0.00001f;
+ if (me->size[0] == 0.0f) me->size[0] = 1.0f;
+ else if (me->size[0] > 0.0f && me->size[0]< 0.00001f) me->size[0]= 0.00001f;
+ else if (me->size[0] < 0.0f && me->size[0]> -0.00001f) me->size[0]= -0.00001f;
- if (me->size[1]==0.0) me->size[1]= 1.0f;
- else if (me->size[1]>0.0 && me->size[1]< 0.00001f) me->size[1]= 0.00001f;
- else if (me->size[1]<0.0 && me->size[1]> -0.00001f) me->size[1]= -0.00001f;
+ if (me->size[1] == 0.0f) me->size[1]= 1.0f;
+ else if (me->size[1] > 0.0f && me->size[1]< 0.00001f) me->size[1]= 0.00001f;
+ else if (me->size[1] < 0.0f && me->size[1]> -0.00001f) me->size[1]= -0.00001f;
- if (me->size[2]==0.0) me->size[2]= 1.0f;
- else if (me->size[2]>0.0 && me->size[2]< 0.00001f) me->size[2]= 0.00001f;
- else if (me->size[2]<0.0 && me->size[2]> -0.00001f) me->size[2]= -0.00001f;
+ if (me->size[2] == 0.0f) me->size[2]= 1.0f;
+ else if (me->size[2] > 0.0f && me->size[2]< 0.00001f) me->size[2]= 0.00001f;
+ else if (me->size[2] < 0.0f && me->size[2]> -0.00001f) me->size[2]= -0.00001f;
}
}
@@ -1522,13 +1519,13 @@ static void my_get_local_bounds(Object *ob, DerivedMesh *dm, float *center, floa
}
else
{
- size[0]= 0.5f*fabs(bb->vec[0][0] - bb->vec[4][0]);
- size[1]= 0.5f*fabs(bb->vec[0][1] - bb->vec[2][1]);
- size[2]= 0.5f*fabs(bb->vec[0][2] - bb->vec[1][2]);
+ size[0] = 0.5f * fabsf(bb->vec[0][0] - bb->vec[4][0]);
+ size[1] = 0.5f * fabsf(bb->vec[0][1] - bb->vec[2][1]);
+ size[2] = 0.5f * fabsf(bb->vec[0][2] - bb->vec[1][2]);
- center[0]= 0.5f*(bb->vec[0][0] + bb->vec[4][0]);
- center[1]= 0.5f*(bb->vec[0][1] + bb->vec[2][1]);
- center[2]= 0.5f*(bb->vec[0][2] + bb->vec[1][2]);
+ center[0] = 0.5f * (bb->vec[0][0] + bb->vec[4][0]);
+ center[1] = 0.5f * (bb->vec[0][1] + bb->vec[2][1]);
+ center[2] = 0.5f * (bb->vec[0][2] + bb->vec[1][2]);
}
}
@@ -1538,14 +1535,14 @@ static void my_get_local_bounds(Object *ob, DerivedMesh *dm, float *center, floa
//////////////////////////////////////////////////////
-void BL_CreateGraphicObjectNew(KX_GameObject* gameobj,
- const MT_Point3& localAabbMin,
- const MT_Point3& localAabbMax,
- KX_Scene* kxscene,
- bool isActive,
- e_PhysicsEngine physics_engine)
+static void BL_CreateGraphicObjectNew(KX_GameObject* gameobj,
+ const MT_Point3& localAabbMin,
+ const MT_Point3& localAabbMax,
+ KX_Scene* kxscene,
+ bool isActive,
+ e_PhysicsEngine physics_engine)
{
- if (gameobj->GetMeshCount() > 0)
+ if (gameobj->GetMeshCount() > 0)
{
switch (physics_engine)
{
@@ -1577,16 +1574,16 @@ void BL_CreateGraphicObjectNew(KX_GameObject* gameobj,
}
}
-void BL_CreatePhysicsObjectNew(KX_GameObject* gameobj,
- struct Object* blenderobject,
- RAS_MeshObject* meshobj,
- KX_Scene* kxscene,
- int activeLayerBitInfo,
- e_PhysicsEngine physics_engine,
- KX_BlenderSceneConverter *converter,
- bool processCompoundChildren
- )
-
+static void BL_CreatePhysicsObjectNew(KX_GameObject* gameobj,
+ struct Object* blenderobject,
+ RAS_MeshObject* meshobj,
+ KX_Scene* kxscene,
+ int activeLayerBitInfo,
+ e_PhysicsEngine physics_engine,
+ KX_BlenderSceneConverter *converter,
+ bool processCompoundChildren
+ )
+
{
//SYS_SystemHandle syshandle = SYS_GetSystem(); /*unused*/
//int userigidbody = SYS_GetCommandLineInt(syshandle,"norigidbody",0);
@@ -1697,7 +1694,7 @@ void BL_CreatePhysicsObjectNew(KX_GameObject* gameobj,
objprop.m_soft_numclusteriterations= blenderobject->bsoft->numclusteriterations; /* number of iterations to refine collision clusters*/
//objprop.m_soft_welding = blenderobject->bsoft->welding; /* welding */
/* disable welding: it doesn't bring any additional stability and it breaks the relation between soft body collision shape and graphic mesh */
- objprop.m_soft_welding = 0.f;
+ objprop.m_soft_welding = 0.f;
objprop.m_margin = blenderobject->bsoft->margin;
objprop.m_contactProcessingThreshold = 0.f;
} else
@@ -2089,7 +2086,7 @@ struct parentChildLink {
#include "DNA_constraint_types.h"
//XXX #include "BIF_editconstraint.h"
-bPoseChannel *get_active_posechannel2 (Object *ob)
+static bPoseChannel *get_active_posechannel2 (Object *ob)
{
bArmature *arm= (bArmature*)ob->data;
bPoseChannel *pchan;
@@ -2103,7 +2100,7 @@ bPoseChannel *get_active_posechannel2 (Object *ob)
return NULL;
}
-ListBase *get_active_constraints2(Object *ob)
+static ListBase *get_active_constraints2(Object *ob)
{
if (!ob)
return NULL;
@@ -2122,8 +2119,7 @@ ListBase *get_active_constraints2(Object *ob)
return NULL;
}
-
-void RBJconstraints(Object *ob)//not used
+static void UNUSED_FUNCTION(RBJconstraints)(Object *ob)//not used
{
ListBase *conlist;
bConstraint *curcon;
@@ -2144,7 +2140,8 @@ void RBJconstraints(Object *ob)//not used
#include "KX_IPhysicsController.h"
#include "PHY_DynamicTypes.h"
-KX_IPhysicsController* getPhId(CListValue* sumolist,STR_String busc) {//not used
+#if 0 /* UNUSED */
+static KX_IPhysicsController* getPhId(CListValue* sumolist,STR_String busc) {//not used
for (int j=0;j<sumolist->GetCount();j++)
{
@@ -2154,10 +2151,10 @@ KX_IPhysicsController* getPhId(CListValue* sumolist,STR_String busc) {//not used
}
return 0;
-
}
+#endif
-KX_GameObject* getGameOb(STR_String busc,CListValue* sumolist)
+static KX_GameObject* getGameOb(STR_String busc,CListValue* sumolist)
{
for (int j=0;j<sumolist->GetCount();j++)
@@ -2620,7 +2617,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
KX_SlowParentRelation * slow_parent_relation = KX_SlowParentRelation::New(blenderchild->sf);
pcit->m_gamechildnode->SetParentRelation(slow_parent_relation);
break;
- }
+ }
case PARBONE:
{
// parent this to a bone
@@ -2744,7 +2741,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
}
- }
+ }
// create physics joints
for (i=0;i<sumolist->GetCount();i++)
@@ -2828,7 +2825,7 @@ void BL_ConvertBlenderObjects(struct Main* maggie,
kxscene->GetPhysicsEnvironment()->setConstraintParam(constraintId,dof,1,-1);
}
dofbit<<=1;
- }
+ }
}
else if (dat->type == PHY_LINEHINGE_CONSTRAINT)
{
diff --git a/source/gameengine/Converter/BL_DeformableGameObject.h b/source/gameengine/Converter/BL_DeformableGameObject.h
index 61477fb1cac..d14160d39a3 100644
--- a/source/gameengine/Converter/BL_DeformableGameObject.h
+++ b/source/gameengine/Converter/BL_DeformableGameObject.h
@@ -89,7 +89,7 @@ public:
public:
-protected:
+protected:
RAS_Deformer *m_pDeformer;
diff --git a/source/gameengine/Converter/BL_MeshDeformer.cpp b/source/gameengine/Converter/BL_MeshDeformer.cpp
index c9371b9df50..b8002d05f18 100644
--- a/source/gameengine/Converter/BL_MeshDeformer.cpp
+++ b/source/gameengine/Converter/BL_MeshDeformer.cpp
@@ -84,7 +84,7 @@ bool BL_MeshDeformer::Apply(RAS_IPolyMaterial*)
}
BL_MeshDeformer::~BL_MeshDeformer()
-{
+{
if (m_transverts)
delete [] m_transverts;
if (m_transnors)
diff --git a/source/gameengine/Converter/BL_MeshDeformer.h b/source/gameengine/Converter/BL_MeshDeformer.h
index c73e4efd245..c84d31c72cd 100644
--- a/source/gameengine/Converter/BL_MeshDeformer.h
+++ b/source/gameengine/Converter/BL_MeshDeformer.h
@@ -63,16 +63,16 @@ public:
m_lastDeformUpdate(-1)
{};
virtual ~BL_MeshDeformer();
- virtual void SetSimulatedTime(double time){}
+ virtual void SetSimulatedTime(double time) {}
virtual bool Apply(class RAS_IPolyMaterial *mat);
- virtual bool Update(void){ return false; }
- virtual bool UpdateBuckets(void){ return false; }
- virtual RAS_Deformer* GetReplica(){return NULL;}
+ virtual bool Update(void) { return false; }
+ virtual bool UpdateBuckets(void) { return false; }
+ virtual RAS_Deformer* GetReplica() {return NULL;}
virtual void ProcessReplica();
struct Mesh* GetMesh() { return m_bmesh; }
virtual class RAS_MeshObject* GetRasMesh() { return (RAS_MeshObject*)m_pMeshObject; }
virtual float (* GetTransVerts(int *tot))[3] { *tot= m_tvtot; return m_transverts; }
- // virtual void InitDeform(double time){}
+ // virtual void InitDeform(double time) {}
protected:
class RAS_MeshObject* m_pMeshObject;
diff --git a/source/gameengine/Converter/BL_ModifierDeformer.cpp b/source/gameengine/Converter/BL_ModifierDeformer.cpp
index c1c94c25108..eafed8497ba 100644
--- a/source/gameengine/Converter/BL_ModifierDeformer.cpp
+++ b/source/gameengine/Converter/BL_ModifierDeformer.cpp
@@ -175,7 +175,7 @@ bool BL_ModifierDeformer::Update(void)
* It may not be the case here because of replace mesh actuator */
Mesh *oldmesh = (Mesh*)blendobj->data;
blendobj->data = m_bmesh;
- /* execute the modifiers */
+ /* execute the modifiers */
DerivedMesh *dm = mesh_create_derived_no_virtual(m_scene, blendobj, m_transverts, CD_MASK_MESH);
/* restore object data */
blendobj->data = oldmesh;
diff --git a/source/gameengine/Converter/BL_ModifierDeformer.h b/source/gameengine/Converter/BL_ModifierDeformer.h
index b4827b1bee4..5d0c3bc1317 100644
--- a/source/gameengine/Converter/BL_ModifierDeformer.h
+++ b/source/gameengine/Converter/BL_ModifierDeformer.h
@@ -54,7 +54,7 @@ public:
Scene *scene,
Object *bmeshobj,
RAS_MeshObject *mesh)
- :
+ :
BL_ShapeDeformer(gameobj,bmeshobj, mesh),
m_lastModifierUpdate(-1),
m_scene(scene),
diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp
index c339e10f673..8325e80db78 100644
--- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp
+++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp
@@ -83,7 +83,7 @@ BL_ShapeActionActuator::BL_ShapeActionActuator(SCA_IObject* gameobj,
m_playtype(playtype),
m_priority(priority),
m_action(action),
- m_framepropname(framepropname),
+ m_framepropname(framepropname),
m_propname(propname)
{
m_idptr = new PointerRNA();
@@ -526,7 +526,7 @@ PyAttributeDef BL_ShapeActionActuator::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* BL_ShapeActionActuator::pyattr_get_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *BL_ShapeActionActuator::pyattr_get_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
BL_ShapeActionActuator* self= static_cast<BL_ShapeActionActuator*>(self_v);
return PyUnicode_FromString(self->GetAction() ? self->GetAction()->id.name+2 : "");
diff --git a/source/gameengine/Converter/BL_ShapeDeformer.cpp b/source/gameengine/Converter/BL_ShapeDeformer.cpp
index b93d731c5e6..f8941e16ed2 100644
--- a/source/gameengine/Converter/BL_ShapeDeformer.cpp
+++ b/source/gameengine/Converter/BL_ShapeDeformer.cpp
@@ -173,7 +173,7 @@ bool BL_ShapeDeformer::Update(void)
/* store verts locally */
VerifyStorage();
- do_rel_key(0, m_bmesh->totvert, m_bmesh->totvert, (char *)(float *)m_transverts, m_bmesh->key, NULL, 0); /* last arg is ignored */
+ BKE_key_evaluate_relative(0, m_bmesh->totvert, m_bmesh->totvert, (char *)(float *)m_transverts, m_bmesh->key, NULL, 0); /* last arg is ignored */
m_bDynamic = true;
}
diff --git a/source/gameengine/Converter/BL_ShapeDeformer.h b/source/gameengine/Converter/BL_ShapeDeformer.h
index efc1b546666..ecf501d9a91 100644
--- a/source/gameengine/Converter/BL_ShapeDeformer.h
+++ b/source/gameengine/Converter/BL_ShapeDeformer.h
@@ -73,7 +73,7 @@ public:
};
protected:
- bool m_useShapeDrivers;
+ bool m_useShapeDrivers;
double m_lastShapeUpdate;
struct Key* m_key;
diff --git a/source/gameengine/Converter/BL_SkinDeformer.cpp b/source/gameengine/Converter/BL_SkinDeformer.cpp
index 9bbf07a3ed2..c175c1e3b7b 100644
--- a/source/gameengine/Converter/BL_SkinDeformer.cpp
+++ b/source/gameengine/Converter/BL_SkinDeformer.cpp
@@ -67,7 +67,7 @@ extern "C"{
#define __NLA_DEFNORMALS
//#undef __NLA_DEFNORMALS
-short get_deformflags(struct Object *bmeshobj)
+static short get_deformflags(struct Object *bmeshobj)
{
short flags = ARM_DEF_VGROUP;
@@ -85,9 +85,9 @@ short get_deformflags(struct Object *bmeshobj)
}
BL_SkinDeformer::BL_SkinDeformer(BL_DeformableGameObject *gameobj,
- struct Object *bmeshobj,
- class RAS_MeshObject *mesh,
- BL_ArmatureObject* arma)
+ struct Object *bmeshobj,
+ class RAS_MeshObject *mesh,
+ BL_ArmatureObject* arma)
: //
BL_MeshDeformer(gameobj, bmeshobj, mesh),
m_armobj(arma),
@@ -110,7 +110,7 @@ BL_SkinDeformer::BL_SkinDeformer(
class RAS_MeshObject *mesh,
bool release_object,
bool recalc_normal,
- BL_ArmatureObject* arma) :
+ BL_ArmatureObject* arma) :
BL_MeshDeformer(gameobj, bmeshobj_old, mesh),
m_armobj(arma),
m_lastArmaUpdate(-1),
@@ -238,6 +238,7 @@ void BL_SkinDeformer::BGEDeformVerts()
MDeformVert *dverts = m_bmesh->dvert;
bDeformGroup *dg;
int defbase_tot = BLI_countlist(&m_objMesh->defbase);
+ Eigen::Matrix4f pre_mat, post_mat, chan_mat, norm_chan_mat;
if (!dverts)
return;
@@ -257,15 +258,18 @@ void BL_SkinDeformer::BGEDeformVerts()
}
}
+ post_mat = Eigen::Matrix4f::Map((float*)m_obmat).inverse() * Eigen::Matrix4f::Map((float*)m_armobj->GetArmatureObject()->obmat);
+ pre_mat = post_mat.inverse();
+
MDeformVert *dv= dverts;
+ MDeformWeight *dw;
for (int i=0; i<m_bmesh->totvert; ++i, dv++)
{
- float contrib = 0.f, weight, max_weight=0.f;
+ float contrib = 0.f, weight, max_weight=-1.f;
bPoseChannel *pchan=NULL;
- Eigen::Map<Eigen::Vector3f> norm(m_transnors[i]);
+ Eigen::Map<Eigen::Vector3f> norm = Eigen::Vector3f::Map(m_transnors[i]);
Eigen::Vector4f vec(0, 0, 0, 1);
- Eigen::Matrix4f norm_chan_mat;
Eigen::Vector4f co(m_transverts[i][0],
m_transverts[i][1],
m_transverts[i][2],
@@ -274,7 +278,9 @@ void BL_SkinDeformer::BGEDeformVerts()
if (!dv->totweight)
continue;
- MDeformWeight *dw= dv->dw;
+ co = pre_mat * co;
+
+ dw= dv->dw;
for (unsigned int j= dv->totweight; j != 0; j--, dw++)
{
@@ -286,12 +292,10 @@ void BL_SkinDeformer::BGEDeformVerts()
if (weight)
{
- Eigen::Vector4f cop(co);
- Eigen::Matrix4f chan_mat = Eigen::Matrix4f::Map((float*)pchan->chan_mat);
+ chan_mat = Eigen::Matrix4f::Map((float*)pchan->chan_mat);
// Update Vertex Position
- cop = chan_mat*cop;
- vec += (cop - co)*weight;
+ vec.noalias() += (chan_mat*co - co)*weight;
// Save the most influential channel so we can use it to update the vertex normal
if (weight > max_weight)
@@ -304,16 +308,14 @@ void BL_SkinDeformer::BGEDeformVerts()
}
}
}
-
// Update Vertex Normal
norm = norm_chan_mat.topLeftCorner<3, 3>()*norm;
-
- if (contrib > 0.0001f)
- {
- vec *= 1.f/contrib;
- co += vec;
- }
+
+ co.noalias() += vec/contrib;
+ co[3] = 1.f; // Make sure we have a 1 for the w component!
+
+ co = post_mat * co;
m_transverts[i][0] = co[0];
m_transverts[i][1] = co[1];
@@ -325,7 +327,7 @@ void BL_SkinDeformer::BGEDeformVerts()
bool BL_SkinDeformer::UpdateInternal(bool shape_applied)
{
/* See if the armature has been updated for this frame */
- if (PoseUpdated()) {
+ if (PoseUpdated()) {
if (!shape_applied) {
/* store verts locally */
diff --git a/source/gameengine/Converter/BlenderWorldInfo.cpp b/source/gameengine/Converter/BlenderWorldInfo.cpp
index fc3b75c49ad..25da8155867 100644
--- a/source/gameengine/Converter/BlenderWorldInfo.cpp
+++ b/source/gameengine/Converter/BlenderWorldInfo.cpp
@@ -199,7 +199,7 @@ void BlenderWorldInfo::setBackColor(float r, float g, float b)
m_backgroundcolor[2] = b;
}
- void
+ void
BlenderWorldInfo::setMistStart(
float d
) {
@@ -215,7 +215,7 @@ BlenderWorldInfo::setMistDistance(
}
- void
+ void
BlenderWorldInfo::setMistColorRed(
float d
) {
@@ -231,7 +231,7 @@ BlenderWorldInfo::setMistColorGreen(
}
- void
+ void
BlenderWorldInfo::setMistColorBlue(
float d
) {
diff --git a/source/gameengine/Converter/BlenderWorldInfo.h b/source/gameengine/Converter/BlenderWorldInfo.h
index e00eb99e73f..2cf706a3089 100644
--- a/source/gameengine/Converter/BlenderWorldInfo.h
+++ b/source/gameengine/Converter/BlenderWorldInfo.h
@@ -73,27 +73,27 @@ public:
float g,
float b
);
- void
+ void
setMistStart(
float d
);
- void
+ void
setMistDistance(
float d
);
- void
+ void
setMistColorRed(
float d
);
- void
+ void
setMistColorGreen(
float d
);
- void
+ void
setMistColorBlue(
float d
);
diff --git a/source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp b/source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp
index f020aab4d50..72212581d4b 100644
--- a/source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp
+++ b/source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp
@@ -78,5 +78,5 @@ KX_IScalarInterpolator *BL_InterpolatorList::GetScalarInterpolator(const char *r
return *i;
}
return NULL;
-}
+}
diff --git a/source/gameengine/Converter/KX_BlenderScalarInterpolator.h b/source/gameengine/Converter/KX_BlenderScalarInterpolator.h
index bc5a6eeef85..980aeef7e60 100644
--- a/source/gameengine/Converter/KX_BlenderScalarInterpolator.h
+++ b/source/gameengine/Converter/KX_BlenderScalarInterpolator.h
@@ -65,7 +65,7 @@ public:
BL_InterpolatorList(struct bAction *action);
~BL_InterpolatorList();
- KX_IScalarInterpolator *GetScalarInterpolator(const char *rna_path, int array_index);
+ KX_IScalarInterpolator *GetScalarInterpolator(const char *rna_path, int array_index);
#ifdef WITH_CXX_GUARDEDALLOC
diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
index 3961e6554a7..9020720eaeb 100644
--- a/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
+++ b/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
@@ -160,7 +160,7 @@ KX_BlenderSceneConverter::~KX_BlenderSceneConverter()
while (itmat != m_materials.end()) {
delete (*itmat).second;
itmat++;
- }
+ }
vector<pair<KX_Scene*,RAS_MeshObject*> >::iterator itm = m_meshobjects.begin();
@@ -201,7 +201,7 @@ bool KX_BlenderSceneConverter::TryAndLoadNewFile()
// if not, clear the newfilename
else
{
- m_newfilename = "";
+ m_newfilename = "";
}
*/
return result;
@@ -335,7 +335,7 @@ void KX_BlenderSceneConverter::ConvertScene(class KX_Scene* destinationscene,
ccdPhysEnv->setDebugMode(btIDebugDraw::DBG_DrawWireframe|btIDebugDraw::DBG_DrawAabb|btIDebugDraw::DBG_DrawContactPoints|btIDebugDraw::DBG_DrawText|btIDebugDraw::DBG_DrawConstraintLimits|btIDebugDraw::DBG_DrawConstraints);
//todo: get a button in blender ?
- //disable / enable debug drawing (contact points, aabb's etc)
+ //disable / enable debug drawing (contact points, aabb's etc)
//ccdPhysEnv->setDebugMode(1);
destinationscene->SetPhysicsEnvironment(ccdPhysEnv);
break;
@@ -689,7 +689,7 @@ void KX_BlenderSceneConverter::ResetPhysicsObjectsAnimationIpo(bool clearIpo)
void KX_BlenderSceneConverter::resetNoneDynamicObjectToIpo()
{
- if (addInitFromFrame) {
+ if (addInitFromFrame) {
KX_SceneList* scenes = m_ketsjiEngine->CurrentScenes();
int numScenes = scenes->size();
if (numScenes>=0) {
@@ -704,7 +704,7 @@ void KX_BlenderSceneConverter::resetNoneDynamicObjectToIpo()
if (blenderobject->type==OB_ARMATURE)
continue;
float eu[3];
- mat4_to_eul(eu,blenderobject->obmat);
+ mat4_to_eul(eu,blenderobject->obmat);
MT_Point3 pos = MT_Point3(
blenderobject->obmat[3][0],
blenderobject->obmat[3][1],
@@ -779,8 +779,8 @@ void KX_BlenderSceneConverter::WritePhysicsObjectToAnimationIpo(int frameNumber)
//const MT_Vector3& scale = gameObj->NodeGetWorldScaling();
const MT_Matrix3x3& orn = gameObj->NodeGetWorldOrientation();
- float eulerAngles[3];
- float eulerAnglesOld[3] = {0.0f, 0.0f, 0.0f};
+ float eulerAngles[3];
+ float eulerAnglesOld[3] = {0.0f, 0.0f, 0.0f};
float tmat[3][3];
// XXX animato
@@ -984,12 +984,11 @@ bool KX_BlenderSceneConverter::LinkBlendFile(BlendHandle *bpy_openlib, const cha
}
main_newlib= (Main *)MEM_callocN( sizeof(Main), "BgeMain");
- BKE_reports_init(&reports, RPT_STORE);
+ BKE_reports_init(&reports, RPT_STORE);
load_datablocks(main_newlib, bpy_openlib, path, idcode);
- if (idcode==ID_SCE) {
- /* assume we want text blocks too */
+ if (idcode==ID_SCE && options & LIB_LOAD_LOAD_SCRIPTS) {
load_datablocks(main_newlib, bpy_openlib, path, ID_TXT);
}
@@ -1001,11 +1000,11 @@ bool KX_BlenderSceneConverter::LinkBlendFile(BlendHandle *bpy_openlib, const cha
BLO_blendhandle_close(bpy_openlib);
BKE_reports_clear(&reports);
- /* done linking */
+ /* done linking */
/* needed for lookups*/
GetMainDynamic().push_back(main_newlib);
- strncpy(main_newlib->name, path, sizeof(main_newlib->name));
+ strncpy(main_newlib->name, path, sizeof(main_newlib->name));
if (idcode==ID_ME) {
@@ -1029,7 +1028,7 @@ bool KX_BlenderSceneConverter::LinkBlendFile(BlendHandle *bpy_openlib, const cha
scene_merge->GetLogicManager()->RegisterActionName(action->name+2, action);
}
}
- else if (idcode==ID_SCE) {
+ else if (idcode==ID_SCE) {
/* Merge all new linked in scene into the existing one */
ID *scene;
for (scene= (ID *)main_newlib->scene.first; scene; scene= (ID *)scene->next ) {
@@ -1044,9 +1043,11 @@ bool KX_BlenderSceneConverter::LinkBlendFile(BlendHandle *bpy_openlib, const cha
delete other;
}
+#ifdef WITH_PYTHON
/* Handle any text datablocks */
-
- addImportMain(main_newlib);
+ if (options & LIB_LOAD_LOAD_SCRIPTS)
+ addImportMain(main_newlib);
+#endif
/* Now handle all the actions */
if (options & LIB_LOAD_LOAD_ACTIONS) {
@@ -1116,7 +1117,7 @@ bool KX_BlenderSceneConverter::FreeBlendFile(struct Main *maggie)
{
RAS_MeshObject *meshobj= (RAS_MeshObject *) *mapStringToMeshes.at(i);
if (meshobj && IS_TAGGED(meshobj->GetMesh()))
- {
+ {
STR_HashedString mn = meshobj->GetName();
mapStringToMeshes.remove(mn);
m_map_mesh_to_gamemesh.remove(CHashedPtr(meshobj->GetMesh()));
@@ -1254,7 +1255,7 @@ bool KX_BlenderSceneConverter::FreeBlendFile(struct Main *maggie)
RAS_IPolyMaterial *mat= (*polymit).second;
Material *bmat= NULL;
- /* Why do we need to check for RAS_BLENDERMAT if both are cast to a (PyObject*)? - Campbell */
+ /* Why do we need to check for RAS_BLENDERMAT if both are cast to a (PyObject *)? - Campbell */
if (mat->GetFlag() & RAS_BLENDERMAT) {
KX_BlenderMaterial *bl_mat = static_cast<KX_BlenderMaterial*>(mat);
bmat= bl_mat->GetBlenderMaterial();
@@ -1279,7 +1280,7 @@ bool KX_BlenderSceneConverter::FreeBlendFile(struct Main *maggie)
RAS_IPolyMaterial *mat= (*polymit).second;
Material *bmat= NULL;
- /* Why do we need to check for RAS_BLENDERMAT if both are cast to a (PyObject*)? - Campbell */
+ /* Why do we need to check for RAS_BLENDERMAT if both are cast to a (PyObject *)? - Campbell */
if (mat->GetFlag() & RAS_BLENDERMAT) {
KX_BlenderMaterial *bl_mat = static_cast<KX_BlenderMaterial*>(mat);
bmat= bl_mat->GetBlenderMaterial();
@@ -1340,8 +1341,11 @@ bool KX_BlenderSceneConverter::FreeBlendFile(struct Main *maggie)
}
}
- /* make sure this maggie is removed from the import list if it's there (this operation is safe if it isn't in the list) */
+#ifdef WITH_PYTHON
+ /* make sure this maggie is removed from the import list if it's there
+ * (this operation is safe if it isn't in the list) */
removeImportMain(maggie);
+#endif
free_main(maggie);
diff --git a/source/gameengine/Converter/KX_BlenderSceneConverter.h b/source/gameengine/Converter/KX_BlenderSceneConverter.h
index 906e3fed111..b51c2f21ca7 100644
--- a/source/gameengine/Converter/KX_BlenderSceneConverter.h
+++ b/source/gameengine/Converter/KX_BlenderSceneConverter.h
@@ -182,6 +182,7 @@ public:
{
LIB_LOAD_LOAD_ACTIONS = 1,
LIB_LOAD_VERBOSE = 2,
+ LIB_LOAD_LOAD_SCRIPTS = 4,
};
diff --git a/source/gameengine/Converter/KX_ConvertActuators.cpp b/source/gameengine/Converter/KX_ConvertActuators.cpp
index 28e34769ab8..287be3b8359 100644
--- a/source/gameengine/Converter/KX_ConvertActuators.cpp
+++ b/source/gameengine/Converter/KX_ConvertActuators.cpp
@@ -82,8 +82,7 @@
#include "BKE_text.h"
#include "BLI_blenlib.h"
#include "BLI_math_base.h"
-
-#define FILE_MAX 1024 // repeated here to avoid dependency from BKE_utildefines.h
+#include "BLI_path_util.h"
#include "KX_NetworkMessageActuator.h"
@@ -109,7 +108,7 @@
* KX_BLENDERTRUNC needed to round 'almost' zero values to zero, else velocities etc. are incorrectly set
*/
-#define KX_BLENDERTRUNC(x) (( x < 0.0001 && x > -0.0001 ) ? 0.0 : x)
+#define KX_BLENDERTRUNC(x) (( x < 0.0001f && x > -0.0001f ) ? 0.0f : x)
void BL_ConvertActuators(const char* maggiename,
struct Object* blenderobject,
@@ -162,7 +161,7 @@ void BL_ConvertActuators(const char* maggiename,
KX_BLENDERTRUNC(obact->angularvelocity[1]),
KX_BLENDERTRUNC(obact->angularvelocity[2]));
short damping = obact->damping;
-
+
/* Blender uses a bit vector internally for the local-flags. In */
/* KX, we have four bools. The compiler should be smart enough */
/* to do the right thing. We need to explicitly convert here! */
@@ -431,7 +430,7 @@ void BL_ConvertActuators(const char* maggiename,
new KX_SoundActuator(gameobj,
snd_sound,
soundact->volume,
- (float)(exp((soundact->pitch / 12.0) * M_LN2)),
+ (float)(expf((soundact->pitch / 12.0f) * (float)M_LN2)),
is3d,
settings,
soundActuatorType);
@@ -578,8 +577,8 @@ void BL_ConvertActuators(const char* maggiename,
/* convert settings... degrees in the ui become radians */
/* internally */
if (conact->type == ACT_CONST_TYPE_ORI) {
- min = (float)((MT_2_PI * conact->minloc[0])/360.0);
- max = (float)((MT_2_PI * conact->maxloc[0])/360.0);
+ min = (float)(((float)MT_2_PI * conact->minloc[0]) / 360.0f);
+ max = (float)(((float)MT_2_PI * conact->maxloc[0]) / 360.0f);
switch (conact->mode) {
case ACT_CONST_DIRPX:
locrot = KX_ConstraintActuator::KX_ACT_CONSTRAINT_ORIX;
@@ -904,7 +903,7 @@ void BL_ConvertActuators(const char* maggiename,
modeArg = SCA_RandomActuator::KX_RANDOMACT_FLOAT_NEGATIVE_EXPONENTIAL;
break;
default:
- ; /* error */
+ ; /* error */
}
tmprandomact = new SCA_RandomActuator(gameobj,
seedArg,
diff --git a/source/gameengine/Converter/KX_ConvertControllers.cpp b/source/gameengine/Converter/KX_ConvertControllers.cpp
index 81778928c2e..3a6aa228957 100644
--- a/source/gameengine/Converter/KX_ConvertControllers.cpp
+++ b/source/gameengine/Converter/KX_ConvertControllers.cpp
@@ -69,7 +69,7 @@
static void
LinkControllerToActuators(
SCA_IController *game_controller,
- bController* bcontr,
+ bController* bcontr,
SCA_LogicManager* logicmgr,
KX_BlenderSceneConverter* converter
) {
diff --git a/source/gameengine/Converter/KX_ConvertProperties.cpp b/source/gameengine/Converter/KX_ConvertProperties.cpp
index faa7780bac0..a63f4c38fb6 100644
--- a/source/gameengine/Converter/KX_ConvertProperties.cpp
+++ b/source/gameengine/Converter/KX_ConvertProperties.cpp
@@ -67,7 +67,7 @@ void BL_ConvertProperties(Object* object,KX_GameObject* gameobj,SCA_TimeEventMan
{
bProperty* prop = (bProperty*)object->prop.first;
- CValue* propval;
+ CValue* propval;
bool show_debug_info;
while(prop)
{
@@ -177,7 +177,7 @@ void BL_ConvertTextProperty(Object* object, KX_FontObject* fontobj,SCA_TimeEvent
{
CValue* tprop = fontobj->GetProperty("Text");
if (!tprop) return;
- bProperty* prop = get_ob_property(object, "Text");
+ bProperty* prop = BKE_bproperty_object_get(object, "Text");
if (!prop) return;
Curve *curve = static_cast<Curve *>(object->data);
diff --git a/source/gameengine/Converter/KX_ConvertSensors.cpp b/source/gameengine/Converter/KX_ConvertSensors.cpp
index 2bd1688ca6d..3d4f3ae08f2 100644
--- a/source/gameengine/Converter/KX_ConvertSensors.cpp
+++ b/source/gameengine/Converter/KX_ConvertSensors.cpp
@@ -23,14 +23,14 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
- * Conversion of Blender data blocks to KX sensor system
*/
/** \file gameengine/Converter/KX_ConvertSensors.cpp
* \ingroup bgeconv
+ *
+ * Conversion of Blender data blocks to KX sensor system
*/
-
#include <stdio.h>
#if defined(WIN32) && !defined(FREE_WINDOWS)
@@ -183,7 +183,7 @@ void BL_ConvertSensors(struct Object* blenderobject,
if (gameobj->GetPhysicsController())
- {
+ {
gamesensor = new KX_TouchSensor(eventmgr,
gameobj,
bFindMaterial,
@@ -209,7 +209,7 @@ void BL_ConvertSensors(struct Object* blenderobject,
}
bool bFindMaterial = true;
if (gameobj->GetPhysicsController())
- {
+ {
gamesensor = new KX_TouchSensor(eventmgr,
gameobj,
bFindMaterial,
@@ -224,7 +224,7 @@ void BL_ConvertSensors(struct Object* blenderobject,
KX_NetworkEventManager* eventmgr = (KX_NetworkEventManager*)
logicmgr->FindEventManager(SCA_EventManager::NETWORK_EVENTMGR);
if (eventmgr) {
- bMessageSensor* msgSens = (bMessageSensor*) sens->data;
+ bMessageSensor* msgSens = (bMessageSensor*) sens->data;
/* Get our NetworkScene */
NG_NetworkScene *NetworkScene = kxscene->GetNetworkScene();
@@ -247,7 +247,7 @@ void BL_ConvertSensors(struct Object* blenderobject,
SCA_EventManager* eventmgr = logicmgr->FindEventManager(SCA_EventManager::TOUCH_EVENTMGR);
if (eventmgr)
{
- STR_String nearpropertyname;
+ STR_String nearpropertyname;
bNearSensor* blendernearsensor = (bNearSensor*)sens->data;
if (blendernearsensor->name)
{
@@ -311,7 +311,7 @@ void BL_ConvertSensors(struct Object* blenderobject,
}
case SENS_MOUSE:
{
- int keytype = SCA_MouseSensor::KX_MOUSESENSORMODE_NODEF;
+ int keytype = SCA_MouseSensor::KX_MOUSESENSORMODE_NODEF;
int trackfocus = 0;
bMouseSensor *bmouse = (bMouseSensor *)sens->data;
@@ -476,7 +476,7 @@ void BL_ConvertSensors(struct Object* blenderobject,
// or the blenderradarsensor->angle?
// nzc: the angle is the opening angle. We need to init with
// the axis-hull angle,so /2.0.
- MT_Scalar factor = tan(MT_radians((blenderradarsensor->angle)/2.0));
+ MT_Scalar factor = tan(MT_radians((blenderradarsensor->angle) / 2.0f));
//MT_Scalar coneradius = coneheight * (factor / 2);
MT_Scalar coneradius = coneheight * factor;
@@ -519,7 +519,7 @@ void BL_ConvertSensors(struct Object* blenderobject,
STR_String checkname = (bFindMaterial? blenderraysensor->matname : blenderraysensor->propname);
// don't want to get rays of length 0.0 or so
- double distance = (blenderraysensor->range < 0.01 ? 0.01 : blenderraysensor->range );
+ double distance = (blenderraysensor->range < 0.01f ? 0.01f : blenderraysensor->range);
int axis = blenderraysensor->axisflag;
@@ -639,7 +639,7 @@ void BL_ConvertSensors(struct Object* blenderobject,
gamesensor->SetInvert(invert);
gamesensor->SetLevel(level);
gamesensor->SetTap(tap);
- gamesensor->SetName(sens->name);
+ gamesensor->SetName(sens->name);
gameobj->AddSensor(gamesensor);
@@ -657,19 +657,19 @@ void BL_ConvertSensors(struct Object* blenderobject,
if (gamecont) {
logicmgr->RegisterToSensor(gamecont,gamesensor);
- } else {
- printf(
- "Warning, sensor \"%s\" could not find its controller "
- "(link %d of %d) from object \"%s\"\n"
- "\tthere has been an error converting the blender controller for the game engine,"
- "logic may be incorrect\n", sens->name, i+1, sens->totlinks, blenderobject->id.name+2);
}
- } else {
- printf(
- "Warning, sensor \"%s\" has lost a link to a controller "
- "(link %d of %d) from object \"%s\"\n"
- "\tpossible causes are partially appended objects or an error reading the file,"
- "logic may be incorrect\n", sens->name, i+1, sens->totlinks, blenderobject->id.name+2);
+ else {
+ printf("Warning, sensor \"%s\" could not find its controller "
+ "(link %d of %d) from object \"%s\"\n"
+ "\tthere has been an error converting the blender controller for the game engine,"
+ "logic may be incorrect\n", sens->name, i+1, sens->totlinks, blenderobject->id.name+2);
+ }
+ }
+ else {
+ printf("Warning, sensor \"%s\" has lost a link to a controller "
+ "(link %d of %d) from object \"%s\"\n"
+ "\tpossible causes are partially appended objects or an error reading the file,"
+ "logic may be incorrect\n", sens->name, i+1, sens->totlinks, blenderobject->id.name+2);
}
}
// special case: Keyboard sensor with no link
diff --git a/source/gameengine/Converter/KX_IpoConvert.cpp b/source/gameengine/Converter/KX_IpoConvert.cpp
index 309959b4324..12f88251805 100644
--- a/source/gameengine/Converter/KX_IpoConvert.cpp
+++ b/source/gameengine/Converter/KX_IpoConvert.cpp
@@ -76,12 +76,12 @@ static BL_InterpolatorList *GetAdtList(struct bAction *for_act, KX_BlenderSceneC
{
BL_InterpolatorList *adtList= converter->FindInterpolatorList(for_act);
- if (!adtList) {
+ if (!adtList) {
adtList = new BL_InterpolatorList(for_act);
converter->RegisterInterpolatorList(adtList, for_act);
}
- return adtList;
+ return adtList;
}
SG_Controller *BL_CreateIPO(struct bAction *action, KX_GameObject* gameobj, KX_BlenderSceneConverter *converter)
@@ -441,7 +441,7 @@ static void ConvertMaterialIpos(
}
interpolator= new KX_ScalarInterpolator(&ipocontr->m_ref, sinterp);
ipocontr->AddInterpolator(interpolator);
- }
+ }
if ((sinterp = adtList->GetScalarInterpolator("emit", 0))) {
if (!ipocontr) {
@@ -452,7 +452,7 @@ static void ConvertMaterialIpos(
interpolator= new KX_ScalarInterpolator(&ipocontr->m_emit, sinterp);
ipocontr->AddInterpolator(interpolator);
}
- }
+ }
}
void BL_ConvertMaterialIpos(
diff --git a/source/gameengine/Expressions/BoolValue.cpp b/source/gameengine/Expressions/BoolValue.cpp
index b3c4dc144df..e640923129a 100644
--- a/source/gameengine/Expressions/BoolValue.cpp
+++ b/source/gameengine/Expressions/BoolValue.cpp
@@ -139,7 +139,7 @@ this object
default:
{
ret = new CErrorValue(val->GetText() + op2str(op) +
- "[operator not allowed on booleans]");
+ "[operator not allowed on booleans]");
break;
}
}
@@ -205,7 +205,7 @@ CValue* CBoolValue::GetReplica()
}
#ifdef WITH_PYTHON
-PyObject* CBoolValue::ConvertValueToPython()
+PyObject *CBoolValue::ConvertValueToPython()
{
return PyBool_FromLong(m_bool != 0);
}
diff --git a/source/gameengine/Expressions/BoolValue.h b/source/gameengine/Expressions/BoolValue.h
index 09e931ea661..64ac0266baf 100644
--- a/source/gameengine/Expressions/BoolValue.h
+++ b/source/gameengine/Expressions/BoolValue.h
@@ -29,7 +29,7 @@
class CBoolValue : public CPropValue
{
- //PLUGIN_DECLARE_SERIAL(CBoolValue,CValue)
+ //PLUGIN_DECLARE_SERIAL(CBoolValue,CValue)
public:
static const STR_String sTrueString;
diff --git a/source/gameengine/Expressions/EXP_C-Api.cpp b/source/gameengine/Expressions/EXP_C-Api.cpp
index 763d115a840..2822fd8f6de 100644
--- a/source/gameengine/Expressions/EXP_C-Api.cpp
+++ b/source/gameengine/Expressions/EXP_C-Api.cpp
@@ -102,8 +102,8 @@ int EXP_IsValid(EXP_ValueHandle inval)
/* assign property 'propval' to 'destinationval' */
void EXP_SetProperty(EXP_ValueHandle destinationval,
- const char* propname,
- EXP_ValueHandle propval)
+ const char *propname,
+ EXP_ValueHandle propval)
{
((CValue*) destinationval)->SetProperty(propname,(CValue*)propval);
}
diff --git a/source/gameengine/Expressions/EXP_C-Api.h b/source/gameengine/Expressions/EXP_C-Api.h
index 6be1e57481c..4d43695f9b9 100644
--- a/source/gameengine/Expressions/EXP_C-Api.h
+++ b/source/gameengine/Expressions/EXP_C-Api.h
@@ -53,7 +53,7 @@ extern void EXP_ReleaseValue(EXP_ValueHandle);
extern int EXP_IsValid(EXP_ValueHandle);
/* assign property 'propval' to 'destinationval' */
-extern void EXP_SetProperty(EXP_ValueHandle propval,EXP_ValueHandle destinationval);
+extern void EXP_SetProperty(EXP_ValueHandle destinationval, const char *propname, EXP_ValueHandle propval);
/* returns NULL if property doesn't exist */
extern EXP_ValueHandle EXP_GetProperty(EXP_ValueHandle inval,const char* propname);
diff --git a/source/gameengine/Expressions/FloatValue.cpp b/source/gameengine/Expressions/FloatValue.cpp
index 403338573e2..c9b59e52ee8 100644
--- a/source/gameengine/Expressions/FloatValue.cpp
+++ b/source/gameengine/Expressions/FloatValue.cpp
@@ -314,7 +314,7 @@ CValue* CFloatValue::GetReplica()
#ifdef WITH_PYTHON
-PyObject* CFloatValue::ConvertValueToPython()
+PyObject *CFloatValue::ConvertValueToPython()
{
return PyFloat_FromDouble(m_float);
}
diff --git a/source/gameengine/Expressions/InputParser.cpp b/source/gameengine/Expressions/InputParser.cpp
index 58837235d30..bdf4ee4605b 100644
--- a/source/gameengine/Expressions/InputParser.cpp
+++ b/source/gameengine/Expressions/InputParser.cpp
@@ -543,7 +543,7 @@ CExpression *CParser::Ex(int i)
}
e1 = Error(errtext);
- break;
+ break;
}
default:
NextSym();
@@ -573,7 +573,7 @@ CExpression* CParser::ProcessText
text = intext;
- chcount = 0;
+ chcount = 0;
if (text.Length() == 0) {
return NULL;
}
diff --git a/source/gameengine/Expressions/IntValue.cpp b/source/gameengine/Expressions/IntValue.cpp
index 2d427440620..12d6e258ddf 100644
--- a/source/gameengine/Expressions/IntValue.cpp
+++ b/source/gameengine/Expressions/IntValue.cpp
@@ -326,7 +326,7 @@ void CIntValue::SetValue(CValue* newval)
#ifdef WITH_PYTHON
-PyObject* CIntValue::ConvertValueToPython()
+PyObject *CIntValue::ConvertValueToPython()
{
if ((m_int > INT_MIN) && (m_int < INT_MAX))
return PyLong_FromSsize_t(m_int);
diff --git a/source/gameengine/Expressions/KX_HashedPtr.h b/source/gameengine/Expressions/KX_HashedPtr.h
index ffc6ff647d5..866689ed203 100644
--- a/source/gameengine/Expressions/KX_HashedPtr.h
+++ b/source/gameengine/Expressions/KX_HashedPtr.h
@@ -50,7 +50,7 @@ public:
inline friend bool operator ==( const CHashedPtr & rhs,const CHashedPtr & lhs)
{
return rhs.m_valptr == lhs.m_valptr;
- }
+ }
#ifdef WITH_CXX_GUARDEDALLOC
diff --git a/source/gameengine/Expressions/ListValue.cpp b/source/gameengine/Expressions/ListValue.cpp
index f43625a7821..43f84d273fd 100644
--- a/source/gameengine/Expressions/ListValue.cpp
+++ b/source/gameengine/Expressions/ListValue.cpp
@@ -278,7 +278,7 @@ bool CListValue::IsModified()
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
-Py_ssize_t listvalue_bufferlen(PyObject* self)
+static Py_ssize_t listvalue_bufferlen(PyObject *self)
{
CListValue *list= static_cast<CListValue *>(BGE_PROXY_REF(self));
if (list==NULL)
@@ -287,7 +287,7 @@ Py_ssize_t listvalue_bufferlen(PyObject* self)
return (Py_ssize_t)list->GetCount();
}
-PyObject* listvalue_buffer_item(PyObject* self, Py_ssize_t index)
+static PyObject *listvalue_buffer_item(PyObject *self, Py_ssize_t index)
{
CListValue *list= static_cast<CListValue *>(BGE_PROXY_REF(self));
CValue *cval;
@@ -309,14 +309,44 @@ PyObject* listvalue_buffer_item(PyObject* self, Py_ssize_t index)
cval= list->GetValue(index);
- PyObject* pyobj = cval->ConvertValueToPython();
+ PyObject *pyobj = cval->ConvertValueToPython();
if (pyobj)
return pyobj;
else
return cval->GetProxy();
}
-PyObject* listvalue_mapping_subscript(PyObject* self, PyObject* pyindex)
+
+/* just slice it into a python list... */
+static PyObject *listvalue_buffer_slice(CListValue *list, Py_ssize_t start, Py_ssize_t stop)
+{
+ PyObject *newlist;
+ Py_ssize_t i, j;
+
+ /* caller needs to validate negative index */
+#if 0
+ Py_ssize_t len = list->GetCount();
+
+ if (start > len) start = len;
+ if (stop > len) stop = len;
+#endif
+
+ newlist = PyList_New(stop - start);
+ if (!newlist)
+ return NULL;
+
+ for (i = start, j = 0; i < stop; i++, j++) {
+ PyObject *pyobj = list->GetValue(i)->ConvertValueToPython();
+ if (!pyobj) {
+ pyobj = list->GetValue(i)->GetProxy();
+ }
+ PyList_SET_ITEM(newlist, j, pyobj);
+ }
+ return newlist;
+}
+
+
+static PyObject *listvalue_mapping_subscript(PyObject *self, PyObject *key)
{
CListValue *list= static_cast<CListValue *>(BGE_PROXY_REF(self));
if (list==NULL) {
@@ -324,67 +354,45 @@ PyObject* listvalue_mapping_subscript(PyObject* self, PyObject* pyindex)
return NULL;
}
- if (PyUnicode_Check(pyindex))
- {
- CValue *item = ((CListValue*) list)->FindValue(_PyUnicode_AsString(pyindex));
+ if (PyUnicode_Check(key)) {
+ CValue *item = ((CListValue*) list)->FindValue(_PyUnicode_AsString(key));
if (item) {
- PyObject* pyobj = item->ConvertValueToPython();
+ PyObject *pyobj = item->ConvertValueToPython();
if (pyobj)
return pyobj;
else
return item->GetProxy();
}
}
- else if (PyLong_Check(pyindex))
- {
- int index = PyLong_AsSsize_t(pyindex);
+ else if (PyIndex_Check(key)) {
+ int index = PyLong_AsSsize_t(key);
return listvalue_buffer_item(self, index); /* wont add a ref */
}
+ else if (PySlice_Check(key)) {
+ Py_ssize_t start, stop, step, slicelength;
- PyErr_Format(PyExc_KeyError,
- "CList[key]: '%R' key not in list", pyindex);
- return NULL;
-}
-
+ if (PySlice_GetIndicesEx(key, list->GetCount(), &start, &stop, &step, &slicelength) < 0)
+ return NULL;
-/* just slice it into a python list... */
-PyObject* listvalue_buffer_slice(PyObject* self,Py_ssize_t ilow, Py_ssize_t ihigh)
-{
- CListValue *list= static_cast<CListValue *>(BGE_PROXY_REF(self));
- if (list==NULL) {
- PyErr_SetString(PyExc_SystemError, "val = CList[i:j], "BGE_PROXY_ERROR_MSG);
- return NULL;
+ if (slicelength <= 0) {
+ return PyList_New(0);
+ }
+ else if (step == 1) {
+ return listvalue_buffer_slice(list, start, stop);
+ }
+ else {
+ PyErr_SetString(PyExc_TypeError, "CList[slice]: slice steps not supported");
+ return NULL;
+ }
}
-
- int i, j;
- PyObject *newlist;
-
- if (ilow < 0) ilow = 0;
- int n = ((CListValue*) list)->GetCount();
-
- if (ihigh >= n)
- ihigh = n;
- if (ihigh < ilow)
- ihigh = ilow;
-
- newlist = PyList_New(ihigh - ilow);
- if (!newlist)
- return NULL;
-
- for (i = ilow, j = 0; i < ihigh; i++, j++)
- {
- PyObject* pyobj = list->GetValue(i)->ConvertValueToPython();
- if (!pyobj)
- pyobj = list->GetValue(i)->GetProxy();
- PyList_SET_ITEM(newlist, i, pyobj);
- }
- return newlist;
+ PyErr_Format(PyExc_KeyError,
+ "CList[key]: '%R' key not in list", key);
+ return NULL;
}
-
/* clist + list, return a list that python owns */
-static PyObject *listvalue_buffer_concat(PyObject * self, PyObject * other)
+static PyObject *listvalue_buffer_concat(PyObject *self, PyObject *other)
{
CListValue *listval= static_cast<CListValue *>(BGE_PROXY_REF(self));
Py_ssize_t i, numitems, numitems_orig;
@@ -560,7 +568,7 @@ PyAttributeDef CListValue::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* CListValue::Pyappend(PyObject* value)
+PyObject *CListValue::Pyappend(PyObject *value)
{
CValue* objval = ConvertPythonToValue(value, "CList.append(i): CValueList, ");
@@ -577,15 +585,15 @@ PyObject* CListValue::Pyappend(PyObject* value)
Py_RETURN_NONE;
}
-PyObject* CListValue::Pyreverse()
+PyObject *CListValue::Pyreverse()
{
std::reverse(m_pValueArray.begin(),m_pValueArray.end());
Py_RETURN_NONE;
}
-PyObject* CListValue::Pyindex(PyObject *value)
+PyObject *CListValue::Pyindex(PyObject *value)
{
- PyObject* result = NULL;
+ PyObject *result = NULL;
CValue* checkobj = ConvertPythonToValue(value, "val = cList[i]: CValueList, ");
if (checkobj==NULL)
@@ -612,7 +620,7 @@ PyObject* CListValue::Pyindex(PyObject *value)
-PyObject* CListValue::Pycount(PyObject* value)
+PyObject *CListValue::Pycount(PyObject *value)
{
int numfound = 0;
@@ -638,17 +646,17 @@ PyObject* CListValue::Pycount(PyObject* value)
}
/* Matches python dict.get(key, [default]) */
-PyObject* CListValue::Pyget(PyObject *args)
+PyObject *CListValue::Pyget(PyObject *args)
{
char *key;
- PyObject* def = Py_None;
+ PyObject *def = Py_None;
if (!PyArg_ParseTuple(args, "s|O:get", &key, &def))
return NULL;
CValue *item = FindValue((const char *)key);
if (item) {
- PyObject* pyobj = item->ConvertValueToPython();
+ PyObject *pyobj = item->ConvertValueToPython();
if (pyobj)
return pyobj;
else
@@ -659,7 +667,7 @@ PyObject* CListValue::Pyget(PyObject *args)
}
-PyObject* CListValue::Pyfrom_id(PyObject* value)
+PyObject *CListValue::Pyfrom_id(PyObject *value)
{
uintptr_t id= (uintptr_t)PyLong_AsVoidPtr(value);
diff --git a/source/gameengine/Expressions/ListValue.h b/source/gameengine/Expressions/ListValue.h
index 83f8232ca5e..20005088310 100644
--- a/source/gameengine/Expressions/ListValue.h
+++ b/source/gameengine/Expressions/ListValue.h
@@ -57,14 +57,14 @@ public:
void Remove(int i);
void Resize(int num);
void SetValue(int i,CValue* val);
- CValue* GetValue(int i){ assertd(i < m_pValueArray.size()); return m_pValueArray[i];}
+ CValue* GetValue(int i) { assertd(i < m_pValueArray.size()); return m_pValueArray[i]; }
int GetCount() { return m_pValueArray.size(); }
virtual const STR_String & GetText();
bool CheckEqual(CValue* first,CValue* second);
#ifdef WITH_PYTHON
- virtual PyObject* py_repr(void) {
+ virtual PyObject *py_repr(void) {
PyObject *py_proxy= this->GetProxy();
PyObject *py_list= PySequence_List(py_proxy);
PyObject *py_string= PyObject_Repr(py_list);
diff --git a/source/gameengine/Expressions/Operator2Expr.cpp b/source/gameengine/Expressions/Operator2Expr.cpp
index 2224b0ff5e8..d0240b5ec75 100644
--- a/source/gameengine/Expressions/Operator2Expr.cpp
+++ b/source/gameengine/Expressions/Operator2Expr.cpp
@@ -102,7 +102,7 @@ and m_rhs
m_cached_calculate = ffleft->Calc(m_op,ffright);
- //if (m_cached_calculate)
+ //if (m_cached_calculate)
// m_cached_calculate->Action(CValue::SETOWNEREXPR,&CVoidValue(this,false,CValue::STACKVALUE));
ffleft->Release();
@@ -163,7 +163,7 @@ bool COperator2Expr::IsInside(float x, float y, float z,bool bBorderInclude)
}
}
- return inside;
+ return inside;
}
@@ -241,7 +241,7 @@ CExpression* COperator2Expr::CheckLink(std::vector<CBrokenLinkInfo*>& brokenlink
if (m_rhs)
return Release(m_rhs->AddRef());
-/
+/
*/
return Release();
diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp
index 5347aaafc65..6bb2f039b5c 100644
--- a/source/gameengine/Expressions/PyObjectPlus.cpp
+++ b/source/gameengine/Expressions/PyObjectPlus.cpp
@@ -145,7 +145,7 @@ PyObject *PyObjectPlus::py_base_repr(PyObject *self) // This should be the ent
}
-PyObject * PyObjectPlus::py_base_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+PyObject *PyObjectPlus::py_base_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
PyTypeObject *base_type;
PyObjectPlus_Proxy *base = NULL;
@@ -262,7 +262,7 @@ PyMethodDef PyObjectPlus::Methods[] = {
{NULL, NULL} /* Sentinel */
};
-#define attr_invalid (&(PyObjectPlus::Attributes[0]))
+#define BGE_PY_ATTR_INVALID (&(PyObjectPlus::Attributes[0]))
PyAttributeDef PyObjectPlus::Attributes[] = {
KX_PYATTRIBUTE_RO_FUNCTION("invalid", PyObjectPlus, pyattr_get_invalid),
{NULL} //Sentinel
@@ -270,7 +270,7 @@ PyAttributeDef PyObjectPlus::Attributes[] = {
-PyObject* PyObjectPlus::pyattr_get_invalid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *PyObjectPlus::pyattr_get_invalid(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
return PyBool_FromLong(self_v ? 0:1);
}
@@ -281,7 +281,7 @@ PyObject *PyObjectPlus::py_get_attrdef(PyObject *self_py, const PyAttributeDef *
PyObjectPlus *ref= (BGE_PROXY_REF(self_py));
char* ptr = (attrdef->m_usePtr) ? (char*)BGE_PROXY_PTR(self_py) : (char*)ref;
if (ptr == NULL || (BGE_PROXY_PYREF(self_py) && (ref==NULL || !ref->py_is_valid()))) {
- if (attrdef == attr_invalid)
+ if (attrdef == BGE_PY_ATTR_INVALID)
Py_RETURN_TRUE; // don't bother running the function
PyErr_SetString(PyExc_SystemError, BGE_PROXY_ERROR_MSG);
@@ -303,7 +303,7 @@ PyObject *PyObjectPlus::py_get_attrdef(PyObject *self_py, const PyAttributeDef *
ptr += attrdef->m_offset;
if (attrdef->m_length > 1)
{
- PyObject* resultlist = PyList_New(attrdef->m_length);
+ PyObject *resultlist = PyList_New(attrdef->m_length);
for (unsigned int i=0; i<attrdef->m_length; i++)
{
switch (attrdef->m_type) {
@@ -420,7 +420,7 @@ PyObject *PyObjectPlus::py_get_attrdef(PyObject *self_py, const PyAttributeDef *
#ifdef USE_MATHUTILS
return Vector_CreatePyObject(val, attrdef->m_imax, Py_NEW, NULL);
#else
- PyObject* resultlist = PyList_New(attrdef->m_imax);
+ PyObject *resultlist = PyList_New(attrdef->m_imax);
for (unsigned int i=0; i<attrdef->m_imax; i++)
{
PyList_SET_ITEM(resultlist,i,PyFloat_FromDouble(val[i]));
@@ -437,10 +437,10 @@ PyObject *PyObjectPlus::py_get_attrdef(PyObject *self_py, const PyAttributeDef *
#ifdef USE_MATHUTILS
return Matrix_CreatePyObject(val, attrdef->m_imin, attrdef->m_imax, Py_WRAP, NULL);
#else
- PyObject* collist = PyList_New(attrdef->m_imin);
+ PyObject *collist = PyList_New(attrdef->m_imin);
for (unsigned int i=0; i<attrdef->m_imin; i++)
{
- PyObject* col = PyList_New(attrdef->m_imax);
+ PyObject *col = PyList_New(attrdef->m_imax);
for (unsigned int j=0; j<attrdef->m_imax; j++)
{
PyList_SET_ITEM(col,j,PyFloat_FromDouble(val[j]));
@@ -460,7 +460,7 @@ PyObject *PyObjectPlus::py_get_attrdef(PyObject *self_py, const PyAttributeDef *
val->getValue(fval);
return Vector_CreatePyObject(fval, 3, Py_NEW, NULL);
#else
- PyObject* resultlist = PyList_New(3);
+ PyObject *resultlist = PyList_New(3);
for (unsigned int i=0; i<3; i++)
{
PyList_SET_ITEM(resultlist,i,PyFloat_FromDouble((*val)[i]));
@@ -1100,7 +1100,7 @@ int PyObjectPlus::py_set_attrdef(PyObject *self_py, PyObject *value, const PyAtt
}
if (undoBuffer)
free(undoBuffer);
- return 0;
+ return 0;
}
@@ -1139,7 +1139,7 @@ PyObject *PyObjectPlus::NewProxyPlus_Ext(PyObjectPlus *self, PyTypeObject *tp, v
if (!self)
{
// in case of proxy without reference to game object
- PyObject* proxy = reinterpret_cast<PyObject *>PyObject_NEW( PyObjectPlus_Proxy, tp);
+ PyObject *proxy = reinterpret_cast<PyObject *>PyObject_NEW( PyObjectPlus_Proxy, tp);
BGE_PROXY_PYREF(proxy) = false;
BGE_PROXY_PYOWNS(proxy) = py_owns;
BGE_PROXY_REF(proxy) = NULL;
diff --git a/source/gameengine/Expressions/PyObjectPlus.h b/source/gameengine/Expressions/PyObjectPlus.h
index 2fee6aaab92..005bf2f6cb2 100644
--- a/source/gameengine/Expressions/PyObjectPlus.h
+++ b/source/gameengine/Expressions/PyObjectPlus.h
@@ -190,9 +190,9 @@ public: \
* macro is one that also requires a documentation string
*/
#define KX_PYMETHOD(class_name, method_name) \
- PyObject* Py##method_name(PyObject* args, PyObject* kwds); \
- static PyObject* \
- sPy##method_name(PyObject* self, PyObject* args, PyObject* kwds) { \
+ PyObject *Py##method_name(PyObject *args, PyObject *kwds); \
+ static PyObject * \
+ sPy##method_name(PyObject *self, PyObject *args, PyObject *kwds) { \
if(BGE_PROXY_REF(self)==NULL) { \
PyErr_SetString(PyExc_RuntimeError, \
#class_name "." #method_name "() - " \
@@ -203,9 +203,9 @@ public: \
} \
#define KX_PYMETHOD_VARARGS(class_name, method_name) \
- PyObject* Py##method_name(PyObject* args); \
+ PyObject *Py##method_name(PyObject *args); \
static PyObject* \
- sPy##method_name(PyObject* self, PyObject* args) { \
+ sPy##method_name(PyObject *self, PyObject *args) { \
if(BGE_PROXY_REF(self)==NULL) { \
PyErr_SetString(PyExc_RuntimeError, \
#class_name "." #method_name "() - " \
@@ -215,9 +215,9 @@ public: \
} \
#define KX_PYMETHOD_NOARGS(class_name, method_name) \
- PyObject* Py##method_name(); \
+ PyObject *Py##method_name(); \
static PyObject* \
- sPy##method_name(PyObject* self) { \
+ sPy##method_name(PyObject *self) { \
if(BGE_PROXY_REF(self)==NULL) { \
PyErr_SetString(PyExc_RuntimeError, \
#class_name "." #method_name "() - " \
@@ -227,9 +227,9 @@ public: \
} \
#define KX_PYMETHOD_O(class_name, method_name) \
- PyObject* Py##method_name(PyObject* value); \
+ PyObject *Py##method_name(PyObject *value); \
static PyObject* \
- sPy##method_name(PyObject* self, PyObject* value) { \
+ sPy##method_name(PyObject *self, PyObject *value) { \
if(BGE_PROXY_REF(self)==NULL) { \
PyErr_SetString(PyExc_RuntimeError, \
#class_name "." #method_name "(value) - " \
@@ -239,9 +239,9 @@ public: \
} \
#define KX_PYMETHOD_DOC(class_name, method_name) \
- PyObject* Py##method_name(PyObject* args, PyObject* kwds); \
+ PyObject *Py##method_name(PyObject *args, PyObject *kwds); \
static PyObject* \
- sPy##method_name(PyObject* self, PyObject* args, PyObject* kwds) { \
+ sPy##method_name(PyObject *self, PyObject *args, PyObject *kwds) { \
if(BGE_PROXY_REF(self)==NULL) { \
PyErr_SetString(PyExc_RuntimeError, \
#class_name "." #method_name "(...) - " \
@@ -252,9 +252,9 @@ public: \
static const char method_name##_doc[]; \
#define KX_PYMETHOD_DOC_VARARGS(class_name, method_name) \
- PyObject* Py##method_name(PyObject* args); \
+ PyObject *Py##method_name(PyObject *args); \
static PyObject* \
- sPy##method_name(PyObject* self, PyObject* args) { \
+ sPy##method_name(PyObject *self, PyObject *args) { \
if(BGE_PROXY_REF(self)==NULL) { \
PyErr_SetString(PyExc_RuntimeError, \
#class_name "." #method_name "(...) - " \
@@ -266,9 +266,9 @@ public: \
static const char method_name##_doc[]; \
#define KX_PYMETHOD_DOC_O(class_name, method_name) \
- PyObject* Py##method_name(PyObject* value); \
- static PyObject* \
- sPy##method_name(PyObject* self, PyObject* value) { \
+ PyObject *Py##method_name(PyObject *value); \
+ static PyObject * \
+ sPy##method_name(PyObject *self, PyObject *value) { \
if(BGE_PROXY_REF(self)==NULL) { \
PyErr_SetString(PyExc_RuntimeError, \
#class_name "." #method_name "(value) - " \
@@ -280,9 +280,9 @@ public: \
static const char method_name##_doc[]; \
#define KX_PYMETHOD_DOC_NOARGS(class_name, method_name) \
- PyObject* Py##method_name(); \
- static PyObject* \
- sPy##method_name(PyObject* self) { \
+ PyObject *Py##method_name(); \
+ static PyObject * \
+ sPy##method_name(PyObject *self) { \
if(BGE_PROXY_REF(self)==NULL) { \
PyErr_SetString(PyExc_RuntimeError, \
#class_name "." #method_name "() - " \
@@ -299,35 +299,35 @@ public: \
* Method table macro (with doc)
*/
#define KX_PYMETHODTABLE(class_name, method_name) \
- {#method_name , (PyCFunction) class_name::sPy##method_name, METH_VARARGS, (const char *)class_name::method_name##_doc}
+ {#method_name, (PyCFunction) class_name::sPy##method_name, METH_VARARGS, (const char *)class_name::method_name##_doc}
#define KX_PYMETHODTABLE_O(class_name, method_name) \
- {#method_name , (PyCFunction) class_name::sPy##method_name, METH_O, (const char *)class_name::method_name##_doc}
+ {#method_name, (PyCFunction) class_name::sPy##method_name, METH_O, (const char *)class_name::method_name##_doc}
#define KX_PYMETHODTABLE_NOARGS(class_name, method_name) \
- {#method_name , (PyCFunction) class_name::sPy##method_name, METH_NOARGS, (const char *)class_name::method_name##_doc}
+ {#method_name, (PyCFunction) class_name::sPy##method_name, METH_NOARGS, (const char *)class_name::method_name##_doc}
#define KX_PYMETHODTABLE_KEYWORDS(class_name, method_name) \
- {#method_name , (PyCFunction) class_name::sPy##method_name, METH_VARARGS|METH_KEYWORDS, (const char *)class_name::method_name##_doc}
+ {#method_name, (PyCFunction) class_name::sPy##method_name, METH_VARARGS|METH_KEYWORDS, (const char *)class_name::method_name##_doc}
/**
* Function implementation macro
*/
#define KX_PYMETHODDEF_DOC(class_name, method_name, doc_string) \
const char class_name::method_name##_doc[] = doc_string; \
-PyObject* class_name::Py##method_name(PyObject* args, PyObject* kwds)
+PyObject *class_name::Py##method_name(PyObject *args, PyObject *kwds)
#define KX_PYMETHODDEF_DOC_VARARGS(class_name, method_name, doc_string) \
const char class_name::method_name##_doc[] = doc_string; \
-PyObject* class_name::Py##method_name(PyObject* args)
+PyObject *class_name::Py##method_name(PyObject *args)
#define KX_PYMETHODDEF_DOC_O(class_name, method_name, doc_string) \
const char class_name::method_name##_doc[] = doc_string; \
-PyObject* class_name::Py##method_name(PyObject* value)
+PyObject *class_name::Py##method_name(PyObject *value)
#define KX_PYMETHODDEF_DOC_NOARGS(class_name, method_name, doc_string) \
const char class_name::method_name##_doc[] = doc_string; \
-PyObject* class_name::Py##method_name()
+PyObject *class_name::Py##method_name()
/**
* Attribute management
@@ -354,7 +354,7 @@ enum KX_PYATTRIBUTE_ACCESS {
struct KX_PYATTRIBUTE_DEF;
typedef int (*KX_PYATTRIBUTE_CHECK_FUNCTION)(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
typedef int (*KX_PYATTRIBUTE_SET_FUNCTION)(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
-typedef PyObject* (*KX_PYATTRIBUTE_GET_FUNCTION)(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+typedef PyObject *(*KX_PYATTRIBUTE_GET_FUNCTION)(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
typedef struct KX_PYATTRIBUTE_DEF {
const char *m_name; // name of the python attribute
diff --git a/source/gameengine/Expressions/StringValue.h b/source/gameengine/Expressions/StringValue.h
index aa4a1a0bb00..bc102c6e203 100644
--- a/source/gameengine/Expressions/StringValue.h
+++ b/source/gameengine/Expressions/StringValue.h
@@ -25,11 +25,11 @@ class CStringValue : public CPropValue
{
- //PLUGIN_DECLARE_SERIAL(CStringValue,CValue)
+ //PLUGIN_DECLARE_SERIAL(CStringValue,CValue)
public:
/// Construction / destruction
CStringValue();
- CStringValue (const char *txt, const char *name , AllocationTYPE alloctype = CValue::HEAPVALUE);
+ CStringValue(const char *txt, const char *name, AllocationTYPE alloctype = CValue::HEAPVALUE);
virtual ~CStringValue() {}
/// CValue implementation
diff --git a/source/gameengine/Expressions/Value.cpp b/source/gameengine/Expressions/Value.cpp
index 6507cc32cf1..bcfb7e92d71 100644
--- a/source/gameengine/Expressions/Value.cpp
+++ b/source/gameengine/Expressions/Value.cpp
@@ -340,7 +340,7 @@ vector<STR_String> CValue::GetPropertyNames()
// Clear all properties
//
void CValue::ClearProperties()
-{
+{
// Check if we have any properties
if (m_pNamedPropertyArray == NULL)
return;
@@ -530,13 +530,13 @@ PyAttributeDef CValue::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject * CValue::pyattr_get_name(void * self_v, const KX_PYATTRIBUTE_DEF * attrdef)
+PyObject *CValue::pyattr_get_name(void * self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
CValue * self = static_cast<CValue *> (self_v);
return PyUnicode_From_STR_String(self->GetName());
}
-CValue* CValue::ConvertPythonToValue(PyObject* pyobj, const char *error_prefix)
+CValue* CValue::ConvertPythonToValue(PyObject *pyobj, const char *error_prefix)
{
CValue* vallie = NULL;
@@ -551,7 +551,7 @@ CValue* CValue::ConvertPythonToValue(PyObject* pyobj, const char *error_prefix)
Py_ssize_t numitems = PyList_GET_SIZE(pyobj);
for (i=0;i<numitems;i++)
{
- PyObject* listitem = PyList_GetItem(pyobj,i); /* borrowed ref */
+ PyObject *listitem = PyList_GetItem(pyobj,i); /* borrowed ref */
CValue* listitemval = ConvertPythonToValue(listitem, error_prefix);
if (listitemval)
{
@@ -597,7 +597,7 @@ CValue* CValue::ConvertPythonToValue(PyObject* pyobj, const char *error_prefix)
}
-PyObject* CValue::ConvertKeysToPython(void)
+PyObject *CValue::ConvertKeysToPython(void)
{
if (m_pNamedPropertyArray)
{
@@ -636,5 +636,5 @@ void CValue::SetColorOperator(VALUE_OPERATOR op)
void CValue::SetValue(CValue* newval)
{
// no one should get here
- assertd(newval->GetNumber() == 10121969);
+ assertd(newval->GetNumber() == 10121969);
}
diff --git a/source/gameengine/Expressions/Value.h b/source/gameengine/Expressions/Value.h
index e3b52e80ba6..e0c4daeccd0 100644
--- a/source/gameengine/Expressions/Value.h
+++ b/source/gameengine/Expressions/Value.h
@@ -218,21 +218,21 @@ public:
CValue();
#ifdef WITH_PYTHON
- //static PyObject* PyMake(PyObject*,PyObject*);
+ //static PyObject *PyMake(PyObject *, PyObject *);
virtual PyObject *py_repr(void)
{
return PyUnicode_From_STR_String(GetText());
}
- virtual PyObject* ConvertValueToPython() {
+ virtual PyObject *ConvertValueToPython() {
return NULL;
}
- virtual CValue* ConvertPythonToValue(PyObject* pyobj, const char *error_prefix);
+ virtual CValue *ConvertPythonToValue(PyObject *pyobj, const char *error_prefix);
- static PyObject * pyattr_get_name(void * self, const KX_PYATTRIBUTE_DEF * attrdef);
+ static PyObject *pyattr_get_name(void * self, const KX_PYATTRIBUTE_DEF * attrdef);
- virtual PyObject* ConvertKeysToPython( void );
+ virtual PyObject *ConvertKeysToPython( void );
#endif // WITH_PYTHON
@@ -250,13 +250,13 @@ public:
};
/// Reference Counting
- int GetRefCount()
+ int GetRefCount()
{
return m_refcount;
}
// Add a reference to this value
- CValue* AddRef()
+ CValue *AddRef()
{
// Increase global reference count, used to see at the end of the program
// if all CValue-derived classes have been dereferenced to 0
@@ -269,7 +269,7 @@ public:
}
// Release a reference to this value (when reference count reaches 0, the value is removed from the heap)
- int Release()
+ int Release()
{
// Decrease global reference count, used to see at the end of the program
// if all CValue-derived classes have been dereferenced to 0
@@ -354,16 +354,16 @@ public:
virtual void SetCustomFlag2(bool bCustomFlag) { m_ValFlags.CustomFlag2 = bCustomFlag;}
virtual bool IsCustomFlag2() { return m_ValFlags.CustomFlag2;}
-protected:
+protected:
virtual void DisableRefCount(); // Disable reference counting for this value
- //virtual void AddDataToReplica(CValue* replica);
+ //virtual void AddDataToReplica(CValue* replica);
virtual ~CValue();
private:
- // Member variables
+ // Member variables
std::map<STR_String,CValue*>* m_pNamedPropertyArray; // Properties for user/game etc
ValueFlags m_ValFlags; // Frequently used flags in a bitfield (low memoryusage)
- int m_refcount; // Reference Counter
- static double m_sZeroVec[3];
+ int m_refcount; // Reference Counter
+ static double m_sZeroVec[3];
};
diff --git a/source/gameengine/Expressions/VoidValue.h b/source/gameengine/Expressions/VoidValue.h
index 5599b226a60..a1a82f8aa65 100644
--- a/source/gameengine/Expressions/VoidValue.h
+++ b/source/gameengine/Expressions/VoidValue.h
@@ -45,12 +45,19 @@ class CVoidValue : public CPropValue
public:
/// Construction/destruction
- CVoidValue() : m_bDeleteOnDestruct(false), m_pAnything(NULL) { }
- CVoidValue(void * voidptr, bool bDeleteOnDestruct, AllocationTYPE alloctype) : m_bDeleteOnDestruct(bDeleteOnDestruct), m_pAnything(voidptr) { if (alloctype == STACKVALUE) CValue::DisableRefCount(); }
- virtual ~CVoidValue(); // Destruct void value, delete memory if we're owning it
+ CVoidValue() : m_bDeleteOnDestruct(false), m_pAnything(NULL) { }
+ CVoidValue(void * voidptr, bool bDeleteOnDestruct, AllocationTYPE alloctype) :
+ m_bDeleteOnDestruct(bDeleteOnDestruct),
+ m_pAnything(voidptr)
+ {
+ if (alloctype == STACKVALUE) {
+ CValue::DisableRefCount();
+ }
+ }
+ virtual ~CVoidValue(); /* Destruct void value, delete memory if we're owning it */
/// Value -> String or number
- virtual const STR_String & GetText(); // Get string description of void value (unimplemented)
+ virtual const STR_String & GetText(); /* Get string description of void value (unimplemented) */
virtual double GetNumber() { return -1; }
/// Value calculation
@@ -70,5 +77,5 @@ public:
#endif
};
-#endif // !defined _VOIDVALUE_H
+#endif /* __VOIDVALUE_H__ */
diff --git a/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp b/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
index 46ebd0ecc4f..48fa3257d20 100644
--- a/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
+++ b/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp
@@ -81,7 +81,7 @@ SCA_Joystick *SCA_Joystick::GetInstance( short int joyindex )
return NULL;
#else /* WITH_SDL */
if (joyindex < 0 || joyindex >= JOYINDEX_MAX) {
- echo("Error-invalid joystick index: " << joyindex);
+ ECHO("Error-invalid joystick index: " << joyindex);
return NULL;
}
@@ -96,7 +96,7 @@ SCA_Joystick *SCA_Joystick::GetInstance( short int joyindex )
# else
if (SDL_InitSubSystem(SDL_INIT_JOYSTICK | SDL_INIT_VIDEO) == -1 ) {
# endif
- echo("Error-Initializing-SDL: " << SDL_GetError());
+ ECHO("Error-Initializing-SDL: " << SDL_GetError());
return NULL;
}
@@ -242,7 +242,7 @@ bool SCA_Joystick::CreateJoystickDevice(void)
if (m_isinit == false) {
if (m_joyindex>=m_joynum) {
// don't print a message, because this is done anyway
- //echo("Joystick-Error: " << SDL_NumJoysticks() << " avaiable joystick(s)");
+ //ECHO("Joystick-Error: " << SDL_NumJoysticks() << " avaiable joystick(s)");
// Need this so python args can return empty lists
m_axismax = m_buttonmax = m_hatmax = 0;
@@ -253,7 +253,7 @@ bool SCA_Joystick::CreateJoystickDevice(void)
SDL_JoystickEventState(SDL_ENABLE);
m_isinit = true;
- echo("Joystick " << m_joyindex << " initialized");
+ ECHO("Joystick " << m_joyindex << " initialized");
/* must run after being initialized */
m_axismax = SDL_JoystickNumAxes(m_private->m_joystick);
@@ -279,7 +279,7 @@ void SCA_Joystick::DestroyJoystickDevice(void)
#ifdef WITH_SDL
if (m_isinit) {
if (SDL_JoystickOpened(m_joyindex)) {
- echo("Closing-joystick " << m_joyindex);
+ ECHO("Closing-joystick " << m_joyindex);
SDL_JoystickClose(m_private->m_joystick);
}
m_isinit = false;
@@ -311,7 +311,7 @@ int SCA_Joystick::pAxisTest(int axisnum)
short i2= m_axis_array[(axisnum*2)+1];
/* long winded way to do
- * return MAX2(abs(i1), abs(i2))
+ * return maxf(absf(i1), absf(i2))
* avoid abs from math.h */
if (i1 < 0) i1 = -i1;
if (i2 < 0) i2 = -i2;
diff --git a/source/gameengine/GameLogic/Joystick/SCA_Joystick.h b/source/gameengine/GameLogic/Joystick/SCA_Joystick.h
index 685cc3fcc48..912484a2fe5 100644
--- a/source/gameengine/GameLogic/Joystick/SCA_Joystick.h
+++ b/source/gameengine/GameLogic/Joystick/SCA_Joystick.h
@@ -65,7 +65,7 @@ class SCA_Joystick
/**
*support for JOYHAT_MAX hats (each is a direction)
*/
- int m_hat_array[JOYHAT_MAX];
+ int m_hat_array[JOYHAT_MAX];
/**
* Precision or range of the axes
diff --git a/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h b/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h
index 45766eb9057..148bdd0962e 100644
--- a/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h
+++ b/source/gameengine/GameLogic/Joystick/SCA_JoystickDefines.h
@@ -37,10 +37,10 @@
#endif
#ifndef _DEBUG
-#define echo(x)
+# define ECHO(x)
#else
-#include <iostream>
-#define echo(x) std::cout << x << std::endl;
+# include <iostream>
+# define ECHO(x) std::cout << x << std::endl;
#endif
#define JOYINDEX_MAX 8
diff --git a/source/gameengine/GameLogic/SCA_IController.cpp b/source/gameengine/GameLogic/SCA_IController.cpp
index 3fda542410a..6d76f122163 100644
--- a/source/gameengine/GameLogic/SCA_IController.cpp
+++ b/source/gameengine/GameLogic/SCA_IController.cpp
@@ -238,19 +238,19 @@ PyAttributeDef SCA_IController::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* SCA_IController::pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_IController::pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_IController* self= static_cast<SCA_IController*>(self_v);
return PyLong_FromSsize_t(self->m_statemask);
}
-PyObject* SCA_IController::pyattr_get_sensors(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_IController::pyattr_get_sensors(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
- return KX_PythonSeq_CreatePyObject((static_cast<SCA_IController*>(self_v))->m_proxy, KX_PYGENSEQ_CONT_TYPE_SENSORS);
+ return KX_PythonSeq_CreatePyObject((static_cast<SCA_IController*>(self_v))->m_proxy, KX_PYGENSEQ_CONT_TYPE_SENSORS);
}
-PyObject* SCA_IController::pyattr_get_actuators(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_IController::pyattr_get_actuators(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
- return KX_PythonSeq_CreatePyObject((static_cast<SCA_IController*>(self_v))->m_proxy, KX_PYGENSEQ_CONT_TYPE_ACTUATORS);
+ return KX_PythonSeq_CreatePyObject((static_cast<SCA_IController*>(self_v))->m_proxy, KX_PYGENSEQ_CONT_TYPE_ACTUATORS);
}
#endif // WITH_PYTHON
diff --git a/source/gameengine/GameLogic/SCA_IInputDevice.cpp b/source/gameengine/GameLogic/SCA_IInputDevice.cpp
index 16626b05526..f4fce034c87 100644
--- a/source/gameengine/GameLogic/SCA_IInputDevice.cpp
+++ b/source/gameengine/GameLogic/SCA_IInputDevice.cpp
@@ -45,7 +45,7 @@ SCA_IInputDevice::SCA_IInputDevice()
SCA_IInputDevice::~SCA_IInputDevice()
{
-}
+}
void SCA_IInputDevice::HookEscape()
{
@@ -134,6 +134,6 @@ void SCA_IInputDevice::NextFrame()
break;
default:
; /* error */
- }
+ }
}
}
diff --git a/source/gameengine/GameLogic/SCA_IInputDevice.h b/source/gameengine/GameLogic/SCA_IInputDevice.h
index 0382a2efd21..66a1209751d 100644
--- a/source/gameengine/GameLogic/SCA_IInputDevice.h
+++ b/source/gameengine/GameLogic/SCA_IInputDevice.h
@@ -69,7 +69,7 @@ class SCA_IInputDevice
public:
SCA_IInputDevice();
- virtual ~SCA_IInputDevice();
+ virtual ~SCA_IInputDevice();
enum KX_EnumInputs {
@@ -120,17 +120,17 @@ public:
KX_RETKEY = 13,
KX_SPACEKEY = 32,
KX_PADASTERKEY = 42,
- KX_COMMAKEY = 44,
- KX_MINUSKEY = 45,
+ KX_COMMAKEY = 44,
+ KX_MINUSKEY = 45,
KX_PERIODKEY = 46,
KX_ZEROKEY = 48,
KX_ONEKEY, // =49
- KX_TWOKEY,
+ KX_TWOKEY,
KX_THREEKEY,
- KX_FOURKEY,
- KX_FIVEKEY,
- KX_SIXKEY,
+ KX_FOURKEY,
+ KX_FIVEKEY,
+ KX_SIXKEY,
KX_SEVENKEY,
KX_EIGHTKEY,
KX_NINEKEY, // = 57
@@ -170,14 +170,14 @@ public:
KX_LEFTALTKEY,
KX_RIGHTALTKEY,
KX_RIGHTCTRLKEY,
- KX_RIGHTSHIFTKEY,
+ KX_RIGHTSHIFTKEY,
KX_LEFTSHIFTKEY,// 129
KX_ESCKEY, // 130
KX_TABKEY, //131
- KX_LINEFEEDKEY, // 132
+ KX_LINEFEEDKEY, // 132
KX_BACKSPACEKEY,
KX_DELKEY,
KX_SEMICOLONKEY, // 135
@@ -188,13 +188,13 @@ public:
KX_SLASHKEY, //138
KX_BACKSLASHKEY,
- KX_EQUALKEY,
- KX_LEFTBRACKETKEY,
+ KX_EQUALKEY,
+ KX_LEFTBRACKETKEY,
KX_RIGHTBRACKETKEY, // 142
KX_LEFTARROWKEY, // 145
KX_DOWNARROWKEY,
- KX_RIGHTARROWKEY,
+ KX_RIGHTARROWKEY,
KX_UPARROWKEY, // 148
KX_PAD2 ,
diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
index 018a939f68d..cfbdc1e750f 100644
--- a/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
+++ b/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
@@ -231,7 +231,7 @@ int SCA_ILogicBrick::CheckProperty(void *self, const PyAttributeDef *attrdef)
}
/*Attribute functions */
-PyObject* SCA_ILogicBrick::pyattr_get_owner(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_ILogicBrick::pyattr_get_owner(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_ILogicBrick* self= static_cast<SCA_ILogicBrick*>(self_v);
CValue* parent = self->GetParent();
@@ -254,9 +254,9 @@ bool SCA_ILogicBrick::PyArgToBool(int boolArg)
}
}
-PyObject* SCA_ILogicBrick::BoolToPyArg(bool boolarg)
+PyObject *SCA_ILogicBrick::BoolToPyArg(bool boolarg)
{
- return PyLong_FromSsize_t(boolarg? KX_TRUE: KX_FALSE);
+ return PyLong_FromSsize_t(boolarg? KX_TRUE: KX_FALSE);
}
#endif // WITH_PYTHON
diff --git a/source/gameengine/GameLogic/SCA_ILogicBrick.h b/source/gameengine/GameLogic/SCA_ILogicBrick.h
index b505353c7cd..c5fa9399ab7 100644
--- a/source/gameengine/GameLogic/SCA_ILogicBrick.h
+++ b/source/gameengine/GameLogic/SCA_ILogicBrick.h
@@ -157,7 +157,7 @@ protected:
bool PyArgToBool(int boolArg);
/** Convert a a c++ value to KX_TRUE, KX_FALSE in Python. */
- PyObject* BoolToPyArg(bool);
+ PyObject *BoolToPyArg(bool);
#endif // WITH_PYTHON
diff --git a/source/gameengine/GameLogic/SCA_IObject.cpp b/source/gameengine/GameLogic/SCA_IObject.cpp
index 5077ecaf816..ab9e2781001 100644
--- a/source/gameengine/GameLogic/SCA_IObject.cpp
+++ b/source/gameengine/GameLogic/SCA_IObject.cpp
@@ -224,7 +224,7 @@ SCA_IController* SCA_IObject::FindController(const STR_String& controllername)
{
foundcontroller = (*itc);
break;
- }
+ }
}
return foundcontroller;
}
@@ -251,7 +251,7 @@ SCA_IActuator* SCA_IObject::FindActuator(const STR_String& actuatorname)
void SCA_IObject::Suspend()
{
if ((!m_ignore_activity_culling)
- && (!m_suspended)) {
+ && (!m_suspended)) {
m_suspended = true;
/* flag suspend for all sensors */
SCA_SensorList::iterator i = m_sensors.begin();
diff --git a/source/gameengine/GameLogic/SCA_IObject.h b/source/gameengine/GameLogic/SCA_IObject.h
index 0e657794195..a850d23babf 100644
--- a/source/gameengine/GameLogic/SCA_IObject.h
+++ b/source/gameengine/GameLogic/SCA_IObject.h
@@ -43,7 +43,7 @@ class SCA_IController;
class SCA_IActuator;
#ifdef WITH_PYTHON
-template<class T> T PyVecTo(PyObject*);
+template<class T> T PyVecTo(PyObject *);
#endif
typedef std::vector<SCA_ISensor *> SCA_SensorList;
@@ -213,7 +213,7 @@ public:
*/
unsigned int GetState(void) { return m_state; }
-// const class MT_Point3& ConvertPythonPylist(PyObject* pylist);
+// const class MT_Point3& ConvertPythonPylist(PyObject *pylist);
virtual int GetGameObjectType() {return -1;}
diff --git a/source/gameengine/GameLogic/SCA_ISensor.cpp b/source/gameengine/GameLogic/SCA_ISensor.cpp
index 76b9a8df00f..7cf0b18c3b5 100644
--- a/source/gameengine/GameLogic/SCA_ISensor.cpp
+++ b/source/gameengine/GameLogic/SCA_ISensor.cpp
@@ -248,7 +248,7 @@ void SCA_ISensor::Activate(class SCA_LogicManager* logicmgr)
if (result) {
// the sensor triggered this frame
if (m_state || !m_tap) {
- ActivateControllers(logicmgr);
+ ActivateControllers(logicmgr);
// reset these counters so that pulse are synchronized with transition
m_pos_ticks = 0;
m_neg_ticks = 0;
@@ -380,7 +380,7 @@ PyAttributeDef SCA_ISensor::Attributes[] = {
};
-PyObject* SCA_ISensor::pyattr_get_triggered(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_ISensor::pyattr_get_triggered(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_ISensor* self= static_cast<SCA_ISensor*>(self_v);
int retval = 0;
@@ -389,13 +389,13 @@ PyObject* SCA_ISensor::pyattr_get_triggered(void *self_v, const KX_PYATTRIBUTE_D
return PyLong_FromSsize_t(retval);
}
-PyObject* SCA_ISensor::pyattr_get_positive(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_ISensor::pyattr_get_positive(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_ISensor* self= static_cast<SCA_ISensor*>(self_v);
return PyLong_FromSsize_t(self->GetState());
}
-PyObject* SCA_ISensor::pyattr_get_status(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_ISensor::pyattr_get_status(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_ISensor* self= static_cast<SCA_ISensor*>(self_v);
int status = 0;
@@ -417,13 +417,13 @@ PyObject* SCA_ISensor::pyattr_get_status(void *self_v, const KX_PYATTRIBUTE_DEF
return PyLong_FromSsize_t(status);
}
-PyObject* SCA_ISensor::pyattr_get_posTicks(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_ISensor::pyattr_get_posTicks(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_ISensor* self= static_cast<SCA_ISensor*>(self_v);
return PyLong_FromLong(self->GetPosTicks());
}
-PyObject* SCA_ISensor::pyattr_get_negTicks(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_ISensor::pyattr_get_negTicks(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_ISensor* self= static_cast<SCA_ISensor*>(self_v);
return PyLong_FromLong(self->GetNegTicks());
diff --git a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp
index 2c6beb79fd3..7e9a4bc903c 100644
--- a/source/gameengine/GameLogic/SCA_JoystickSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_JoystickSensor.cpp
@@ -60,7 +60,7 @@ SCA_JoystickSensor::SCA_JoystickSensor(class SCA_JoystickManager* eventmgr,
m_joymode(joymode),
m_joyindex(joyindex),
m_bAllEvents(allevents)
-{
+{
/*
std::cout << " axis " << m_axis << std::endl;
std::cout << " axis flag " << m_axisf << std::endl;
@@ -308,7 +308,7 @@ PyAttributeDef SCA_JoystickSensor::Attributes[] = {
const char SCA_JoystickSensor::GetButtonActiveList_doc[] =
"getButtonActiveList\n"
"\tReturns a list containing the indices of the button currently pressed.\n";
-PyObject* SCA_JoystickSensor::PyGetButtonActiveList( )
+PyObject *SCA_JoystickSensor::PyGetButtonActiveList( )
{
SCA_Joystick *joy = ((SCA_JoystickManager *)m_eventmgr)->GetJoystickDevice(m_joyindex);
PyObject *ls = PyList_New(0);
@@ -331,7 +331,7 @@ PyObject* SCA_JoystickSensor::PyGetButtonActiveList( )
const char SCA_JoystickSensor::GetButtonStatus_doc[] =
"getButtonStatus(buttonIndex)\n"
"\tReturns a bool of the current pressed state of the specified button.\n";
-PyObject* SCA_JoystickSensor::PyGetButtonStatus( PyObject* args )
+PyObject *SCA_JoystickSensor::PyGetButtonStatus( PyObject *args )
{
SCA_Joystick *joy = ((SCA_JoystickManager *)m_eventmgr)->GetJoystickDevice(m_joyindex);
int index;
@@ -345,7 +345,7 @@ PyObject* SCA_JoystickSensor::PyGetButtonStatus( PyObject* args )
return PyBool_FromLong(0);
}
-PyObject* SCA_JoystickSensor::pyattr_get_axis_values(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_JoystickSensor::pyattr_get_axis_values(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_JoystickSensor* self= static_cast<SCA_JoystickSensor*>(self_v);
SCA_Joystick *joy = ((SCA_JoystickManager *)self->m_eventmgr)->GetJoystickDevice(self->m_joyindex);
@@ -360,7 +360,7 @@ PyObject* SCA_JoystickSensor::pyattr_get_axis_values(void *self_v, const KX_PYAT
return list;
}
-PyObject* SCA_JoystickSensor::pyattr_get_axis_single(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_JoystickSensor::pyattr_get_axis_single(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_JoystickSensor* self= static_cast<SCA_JoystickSensor*>(self_v);
SCA_Joystick *joy = ((SCA_JoystickManager *)self->m_eventmgr)->GetJoystickDevice(self->m_joyindex);
@@ -373,7 +373,7 @@ PyObject* SCA_JoystickSensor::pyattr_get_axis_single(void *self_v, const KX_PYAT
return PyLong_FromSsize_t(joy->GetAxisPosition(self->m_axis-1));
}
-PyObject* SCA_JoystickSensor::pyattr_get_hat_values(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_JoystickSensor::pyattr_get_hat_values(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_JoystickSensor* self= static_cast<SCA_JoystickSensor*>(self_v);
SCA_Joystick *joy = ((SCA_JoystickManager *)self->m_eventmgr)->GetJoystickDevice(self->m_joyindex);
@@ -388,7 +388,7 @@ PyObject* SCA_JoystickSensor::pyattr_get_hat_values(void *self_v, const KX_PYATT
return list;
}
-PyObject* SCA_JoystickSensor::pyattr_get_hat_single(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_JoystickSensor::pyattr_get_hat_single(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_JoystickSensor* self= static_cast<SCA_JoystickSensor*>(self_v);
SCA_Joystick *joy = ((SCA_JoystickManager *)self->m_eventmgr)->GetJoystickDevice(self->m_joyindex);
@@ -396,28 +396,28 @@ PyObject* SCA_JoystickSensor::pyattr_get_hat_single(void *self_v, const KX_PYATT
return PyLong_FromSsize_t(joy->GetHat(self->m_hat-1));
}
-PyObject* SCA_JoystickSensor::pyattr_get_num_axis(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_JoystickSensor::pyattr_get_num_axis(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_JoystickSensor* self= static_cast<SCA_JoystickSensor*>(self_v);
SCA_Joystick *joy = ((SCA_JoystickManager *)self->m_eventmgr)->GetJoystickDevice(self->m_joyindex);
return PyLong_FromSsize_t( joy ? joy->GetNumberOfAxes() : 0 );
}
-PyObject* SCA_JoystickSensor::pyattr_get_num_buttons(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_JoystickSensor::pyattr_get_num_buttons(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_JoystickSensor* self= static_cast<SCA_JoystickSensor*>(self_v);
SCA_Joystick *joy = ((SCA_JoystickManager *)self->m_eventmgr)->GetJoystickDevice(self->m_joyindex);
return PyLong_FromSsize_t( joy ? joy->GetNumberOfButtons() : 0 );
}
-PyObject* SCA_JoystickSensor::pyattr_get_num_hats(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_JoystickSensor::pyattr_get_num_hats(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_JoystickSensor* self= static_cast<SCA_JoystickSensor*>(self_v);
SCA_Joystick *joy = ((SCA_JoystickManager *)self->m_eventmgr)->GetJoystickDevice(self->m_joyindex);
return PyLong_FromSsize_t( joy ? joy->GetNumberOfHats() : 0 );
}
-PyObject* SCA_JoystickSensor::pyattr_get_connected(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_JoystickSensor::pyattr_get_connected(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_JoystickSensor* self= static_cast<SCA_JoystickSensor*>(self_v);
SCA_Joystick *joy = ((SCA_JoystickManager *)self->m_eventmgr)->GetJoystickDevice(self->m_joyindex);
diff --git a/source/gameengine/GameLogic/SCA_KeyboardManager.h b/source/gameengine/GameLogic/SCA_KeyboardManager.h
index 2d9ad45833f..fd3c0706fa7 100644
--- a/source/gameengine/GameLogic/SCA_KeyboardManager.h
+++ b/source/gameengine/GameLogic/SCA_KeyboardManager.h
@@ -54,7 +54,7 @@ public:
bool IsPressed(SCA_IInputDevice::KX_EnumInputs inputcode);
- virtual void NextFrame();
+ virtual void NextFrame();
SCA_IInputDevice* GetInputDevice();
diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
index 5bdf2e96e93..9a2dd9bdd57 100644
--- a/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp
@@ -351,12 +351,12 @@ void SCA_KeyboardSensor::AddToTargetProp(int keyIndex)
CStringValue * newstringprop = new CStringValue(newprop, m_targetprop);
GetParent()->SetProperty(m_targetprop, newstringprop);
newstringprop->Release();
- }
+ }
} else {
/* append */
char pchar = ToCharacter(keyIndex, IsShifted());
STR_String newprop = tprop->GetText() + pchar;
- CStringValue * newstringprop = new CStringValue(newprop, m_targetprop);
+ CStringValue * newstringprop = new CStringValue(newprop, m_targetprop);
GetParent()->SetProperty(m_targetprop, newstringprop);
newstringprop->Release();
}
@@ -365,7 +365,7 @@ void SCA_KeyboardSensor::AddToTargetProp(int keyIndex)
/* Make a new property. Deletes can be ignored. */
char pchar = ToCharacter(keyIndex, IsShifted());
STR_String newprop = pchar;
- CStringValue * newstringprop = new CStringValue(newprop, m_targetprop);
+ CStringValue * newstringprop = new CStringValue(newprop, m_targetprop);
GetParent()->SetProperty(m_targetprop, newstringprop);
newstringprop->Release();
}
@@ -376,7 +376,7 @@ void SCA_KeyboardSensor::AddToTargetProp(int keyIndex)
/**
* Tests whether shift is pressed
- */
+ */
bool SCA_KeyboardSensor::IsShifted(void)
{
SCA_IInputDevice* inputdev = ((SCA_KeyboardManager *)m_eventmgr)->GetInputDevice();
@@ -391,9 +391,10 @@ bool SCA_KeyboardSensor::IsShifted(void)
== SCA_InputEvent::KX_JUSTACTIVATED)
) {
return true;
- } else {
+ }
+ else {
return false;
- }
+ }
}
void SCA_KeyboardSensor::LogKeystrokes(void)
@@ -494,25 +495,25 @@ PyAttributeDef SCA_KeyboardSensor::Attributes[] = {
};
-PyObject* SCA_KeyboardSensor::pyattr_get_events(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_KeyboardSensor::pyattr_get_events(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_KeyboardSensor* self= static_cast<SCA_KeyboardSensor*>(self_v);
SCA_IInputDevice* inputdev = ((SCA_KeyboardManager *)self->m_eventmgr)->GetInputDevice();
- PyObject* resultlist = PyList_New(0);
+ PyObject *resultlist = PyList_New(0);
for (int i=SCA_IInputDevice::KX_BEGINKEY ; i<= SCA_IInputDevice::KX_ENDKEY;i++)
{
const SCA_InputEvent & inevent = inputdev->GetEventValue((SCA_IInputDevice::KX_EnumInputs) i);
if (inevent.m_status != SCA_InputEvent::KX_NO_INPUTSTATUS)
{
- PyObject* keypair = PyList_New(2);
+ PyObject *keypair = PyList_New(2);
PyList_SET_ITEM(keypair,0,PyLong_FromSsize_t(i));
PyList_SET_ITEM(keypair,1,PyLong_FromSsize_t(inevent.m_status));
PyList_Append(resultlist,keypair);
}
- }
+ }
return resultlist;
}
@@ -620,7 +621,7 @@ bool IsPrintable(int keyIndex)
* - numerals: KX_ZEROKEY to KX_NINEKEY
* - alphas: KX_AKEY to KX_ZKEY.
* - specials: KX_RETKEY, KX_PADASTERKEY, KX_PADCOMMAKEY to KX_PERIODKEY,
- * KX_TABKEY , KX_SEMICOLONKEY to KX_RIGHTBRACKETKEY,
+ * KX_TABKEY, KX_SEMICOLONKEY to KX_RIGHTBRACKETKEY,
* KX_PAD2 to KX_PADPLUSKEY
* - delete and backspace: also printable in the sense that they modify
* the string
@@ -655,7 +656,7 @@ bool IsPrintable(int keyIndex)
/**
* Tests whether this is a delete key.
- */
+ */
bool IsDelete(int keyIndex)
{
if ( (keyIndex == SCA_IInputDevice::KX_DELKEY)
diff --git a/source/gameengine/GameLogic/SCA_KeyboardSensor.h b/source/gameengine/GameLogic/SCA_KeyboardSensor.h
index 778929a2551..caa141e48f2 100644
--- a/source/gameengine/GameLogic/SCA_KeyboardSensor.h
+++ b/source/gameengine/GameLogic/SCA_KeyboardSensor.h
@@ -65,7 +65,7 @@ class SCA_KeyboardSensor : public SCA_ISensor
STR_String m_targetprop;
/**
* The property that indicates whether or not to log text when in
- * loggin mode. If the property equals 0, no loggin is done. For
+ * logging mode. If the property equals 0, no logging is done. For
* all other values, logging is active. Logging can only become
* active if there is a property to log to. Logging is independent
* from hotkey settings. */
@@ -134,7 +134,7 @@ bool IsPrintable(int keyIndex);
/**
* Tests whether this is a delete key.
- */
+ */
bool IsDelete(int keyIndex);
diff --git a/source/gameengine/GameLogic/SCA_MouseManager.h b/source/gameengine/GameLogic/SCA_MouseManager.h
index 60edb2816cb..02c28807566 100644
--- a/source/gameengine/GameLogic/SCA_MouseManager.h
+++ b/source/gameengine/GameLogic/SCA_MouseManager.h
@@ -63,7 +63,7 @@ public:
* mouse related events. Can also flag mouse movement.
*/
bool IsPressed(SCA_IInputDevice::KX_EnumInputs inputcode);
- virtual void NextFrame();
+ virtual void NextFrame();
SCA_IInputDevice* GetInputDevice();
diff --git a/source/gameengine/GameLogic/SCA_MouseSensor.cpp b/source/gameengine/GameLogic/SCA_MouseSensor.cpp
index f4ee54c56a6..51e0bc6550b 100644
--- a/source/gameengine/GameLogic/SCA_MouseSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_MouseSensor.cpp
@@ -156,7 +156,7 @@ bool SCA_MouseSensor::Evaluate()
case KX_MOUSESENSORMODE_WHEELDOWN:
{
const SCA_InputEvent& mevent = mousedev->GetEventValue(m_hotkey);
- switch (mevent.m_status) {
+ switch (mevent.m_status) {
case SCA_InputEvent::KX_JUSTACTIVATED:
m_val = 1;
result = true;
@@ -189,15 +189,15 @@ bool SCA_MouseSensor::Evaluate()
const SCA_InputEvent& eventY = mousedev->GetEventValue(SCA_IInputDevice::KX_MOUSEY);
if (eventX.m_status == SCA_InputEvent::KX_JUSTACTIVATED ||
- eventY.m_status == SCA_InputEvent::KX_JUSTACTIVATED ||
- eventX.m_status == SCA_InputEvent::KX_ACTIVE ||
- eventY.m_status == SCA_InputEvent::KX_ACTIVE)
+ eventY.m_status == SCA_InputEvent::KX_JUSTACTIVATED ||
+ eventX.m_status == SCA_InputEvent::KX_ACTIVE ||
+ eventY.m_status == SCA_InputEvent::KX_ACTIVE)
{
m_val = 1;
result = true;
}
else if (eventX.m_status == SCA_InputEvent::KX_JUSTRELEASED ||
- eventY.m_status == SCA_InputEvent::KX_JUSTRELEASED )
+ eventY.m_status == SCA_InputEvent::KX_JUSTRELEASED )
{
m_val = 0;
result = true;
diff --git a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
index 31f988fe4b9..0eab6187d07 100644
--- a/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
+++ b/source/gameengine/GameLogic/SCA_PropertyActuator.cpp
@@ -173,7 +173,7 @@ isValid(
SCA_PropertyActuator::KX_ACT_PROP_MODE mode
) {
- bool res = false;
+ bool res = false;
res = ((mode > KX_ACT_PROP_NODEF) && (mode < KX_ACT_PROP_MAX));
return res;
}
diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.cpp b/source/gameengine/GameLogic/SCA_PropertySensor.cpp
index a92ffac4129..5dd4cc501ca 100644
--- a/source/gameengine/GameLogic/SCA_PropertySensor.cpp
+++ b/source/gameengine/GameLogic/SCA_PropertySensor.cpp
@@ -57,8 +57,7 @@ SCA_PropertySensor::SCA_PropertySensor(SCA_EventManager* eventmgr,
m_checktype(checktype),
m_checkpropval(propval),
m_checkpropmaxval(propmaxval),
- m_checkpropname(propname),
- m_range_expr(NULL)
+ m_checkpropname(propname)
{
//CParser pars;
//pars.SetContext(this->AddRef());
@@ -71,10 +70,6 @@ SCA_PropertySensor::SCA_PropertySensor(SCA_EventManager* eventmgr,
}
orgprop->Release();
- if (m_checktype==KX_PROPSENSOR_INTERVAL)
- {
- PrecalculateRangeExpression();
- }
Init();
}
@@ -85,45 +80,12 @@ void SCA_PropertySensor::Init()
m_reset = true;
}
-void SCA_PropertySensor::PrecalculateRangeExpression()
-{
- CParser pars;
- //The context is needed to retrieve the property at runtime but it creates
- //loop of references
- pars.SetContext(this->AddRef());
- STR_String checkstr = ("(" + m_checkpropval + " <= " +
- m_checkpropname + ") && ( " +
- m_checkpropname + " <= " +
- m_checkpropmaxval + ")");
-
- m_range_expr = pars.ProcessText(checkstr);
-}
-
-// Forced deletion of precalculated range expression to break reference loop
-// Use this function when you know that you won't use the sensor anymore
-void SCA_PropertySensor::Delete()
-{
- if (m_range_expr)
- {
- m_range_expr->Release();
- m_range_expr = NULL;
- }
- Release();
-}
-
CValue* SCA_PropertySensor::GetReplica()
{
SCA_PropertySensor* replica = new SCA_PropertySensor(*this);
// m_range_expr must be recalculated on replica!
replica->ProcessReplica();
replica->Init();
-
- replica->m_range_expr = NULL;
- if (replica->m_checktype==KX_PROPSENSOR_INTERVAL)
- {
- replica->PrecalculateRangeExpression();
- }
-
return replica;
}
@@ -143,15 +105,6 @@ bool SCA_PropertySensor::IsPositiveTrigger()
SCA_PropertySensor::~SCA_PropertySensor()
{
- //if (m_rightexpr)
- // m_rightexpr->Release();
-
- if (m_range_expr)
- {
- m_range_expr->Release();
- m_range_expr=NULL;
- }
-
}
@@ -241,34 +194,13 @@ bool SCA_PropertySensor::CheckPropertyCondition()
}
case KX_PROPSENSOR_INTERVAL:
{
- //CValue* orgprop = GetParent()->FindIdentifier(m_checkpropname);
- //if (orgprop)
- //{
- if (m_range_expr)
- {
- CValue* vallie = m_range_expr->Calculate();
- if (vallie)
- {
- const STR_String& errtext = vallie->GetText();
- if (&errtext == &CBoolValue::sTrueString)
- {
- result = true;
- } else
- {
- if (vallie->IsError())
- {
- //printf (errtext.ReadPtr());
- }
- }
-
- vallie->Release();
- }
- }
+ CValue* orgprop = GetParent()->FindIdentifier(m_checkpropname);
+ if (!orgprop->IsError())
+ {
+ float val = orgprop->GetText().ToFloat(), min = m_checkpropval.ToFloat(), max = m_checkpropmaxval.ToFloat();
-
- //}
-
- //cout << " \nSens:Prop:interval!"; /* need implementation here!!! */
+ result = (min <= val) && (val <= max);
+ }
break;
}
@@ -326,28 +258,6 @@ int SCA_PropertySensor::validValueForProperty(void *self, const PyAttributeDef*)
return 0;
}
-int SCA_PropertySensor::validValueForIntervalProperty(void *self, const PyAttributeDef*)
-{
- SCA_PropertySensor* sensor = reinterpret_cast<SCA_PropertySensor*>(self);
-
- if (sensor->m_checktype==KX_PROPSENSOR_INTERVAL)
- {
- sensor->PrecalculateRangeExpression();
- }
- return 0;
-}
-
-int SCA_PropertySensor::modeChange(void *self, const PyAttributeDef* attrdef)
-{
- SCA_PropertySensor* sensor = reinterpret_cast<SCA_PropertySensor*>(self);
-
- if (sensor->m_checktype==KX_PROPSENSOR_INTERVAL)
- {
- sensor->PrecalculateRangeExpression();
- }
- return 0;
-}
-
/* Integration hooks ------------------------------------------------------- */
PyTypeObject SCA_PropertySensor::Type = {
PyVarObject_HEAD_INIT(NULL, 0)
@@ -376,11 +286,11 @@ PyMethodDef SCA_PropertySensor::Methods[] = {
};
PyAttributeDef SCA_PropertySensor::Attributes[] = {
- KX_PYATTRIBUTE_INT_RW_CHECK("mode",KX_PROPSENSOR_NODEF,KX_PROPSENSOR_MAX-1,false,SCA_PropertySensor,m_checktype,modeChange),
+ KX_PYATTRIBUTE_INT_RW("mode",KX_PROPSENSOR_NODEF,KX_PROPSENSOR_MAX-1,false,SCA_PropertySensor,m_checktype),
KX_PYATTRIBUTE_STRING_RW_CHECK("propName",0,MAX_PROP_NAME,false,SCA_PropertySensor,m_checkpropname,CheckProperty),
KX_PYATTRIBUTE_STRING_RW_CHECK("value",0,100,false,SCA_PropertySensor,m_checkpropval,validValueForProperty),
- KX_PYATTRIBUTE_STRING_RW_CHECK("min",0,100,false,SCA_PropertySensor,m_checkpropval,validValueForIntervalProperty),
- KX_PYATTRIBUTE_STRING_RW_CHECK("max",0,100,false,SCA_PropertySensor,m_checkpropmaxval,validValueForIntervalProperty),
+ KX_PYATTRIBUTE_STRING_RW_CHECK("min",0,100,false,SCA_PropertySensor,m_checkpropval,validValueForProperty),
+ KX_PYATTRIBUTE_STRING_RW_CHECK("max",0,100,false,SCA_PropertySensor,m_checkpropmaxval,validValueForProperty),
{ NULL } //Sentinel
};
diff --git a/source/gameengine/GameLogic/SCA_PropertySensor.h b/source/gameengine/GameLogic/SCA_PropertySensor.h
index ca942076efa..fee03dcf4c0 100644
--- a/source/gameengine/GameLogic/SCA_PropertySensor.h
+++ b/source/gameengine/GameLogic/SCA_PropertySensor.h
@@ -46,7 +46,6 @@ class SCA_PropertySensor : public SCA_ISensor
STR_String m_previoustext;
bool m_lastresult;
bool m_recentresult;
- CExpression* m_range_expr;
protected:
@@ -69,16 +68,10 @@ public:
const STR_String& propval,
const STR_String& propmaxval,
KX_PROPSENSOR_TYPE checktype);
-
- /**
- * For property sensor, it is used to release the pre-calculated expression
- * so that self references are removed before the sensor itself is released
- */
- virtual void Delete();
+
virtual ~SCA_PropertySensor();
virtual CValue* GetReplica();
virtual void Init();
- void PrecalculateRangeExpression();
bool CheckPropertyCondition();
virtual bool Evaluate();
@@ -96,16 +89,6 @@ public:
*/
static int validValueForProperty(void* self, const PyAttributeDef*);
- /**
- * Test whether this is a sensible value for interval (type check) and updates Range Expression
- */
- static int validValueForIntervalProperty(void* self, const PyAttributeDef*);
-
- /**
- * Test if the new mode is interval. If positive updates Range Expression
- */
- static int modeChange(void* self, const PyAttributeDef* attrdef);
-
#endif
};
diff --git a/source/gameengine/GameLogic/SCA_PythonController.cpp b/source/gameengine/GameLogic/SCA_PythonController.cpp
index ab7f57a5454..7dbbbb2a0d9 100644
--- a/source/gameengine/GameLogic/SCA_PythonController.cpp
+++ b/source/gameengine/GameLogic/SCA_PythonController.cpp
@@ -179,7 +179,7 @@ int SCA_PythonController::IsTriggered(class SCA_ISensor* sensor)
#ifdef WITH_PYTHON
/* warning, self is not the SCA_PythonController, its a PyObjectPlus_Proxy */
-PyObject* SCA_PythonController::sPyGetCurrentController(PyObject *self)
+PyObject *SCA_PythonController::sPyGetCurrentController(PyObject *self)
{
if (m_sCurrentController==NULL)
{
@@ -271,7 +271,7 @@ void SCA_PythonController::ErrorPrint(const char *error_msg)
}
bool SCA_PythonController::Compile()
-{
+{
//printf("py script modified '%s'\n", m_scriptName.Ptr());
m_bModified= false;
@@ -374,7 +374,7 @@ void SCA_PythonController::Trigger(SCA_LogicManager* logicmgr)
m_sCurrentLogicManager = logicmgr;
PyObject *excdict= NULL;
- PyObject* resultobj= NULL;
+ PyObject *resultobj= NULL;
switch(m_mode) {
case SCA_PYEXEC_SCRIPT:
@@ -447,13 +447,13 @@ void SCA_PythonController::Trigger(SCA_LogicManager* logicmgr)
// This doesn't appear to be needed anymore
//PyDict_Clear(excdict);
Py_DECREF(excdict);
- }
+ }
m_triggeredSensors.clear();
m_sCurrentController = NULL;
}
-PyObject* SCA_PythonController::PyActivate(PyObject *value)
+PyObject *SCA_PythonController::PyActivate(PyObject *value)
{
if (m_sCurrentController != this) {
PyErr_SetString(PyExc_SystemError, "Cannot add an actuator from a non-active controller");
@@ -468,7 +468,7 @@ PyObject* SCA_PythonController::PyActivate(PyObject *value)
Py_RETURN_NONE;
}
-PyObject* SCA_PythonController::PyDeActivate(PyObject *value)
+PyObject *SCA_PythonController::PyDeActivate(PyObject *value)
{
if (m_sCurrentController != this) {
PyErr_SetString(PyExc_SystemError, "Cannot add an actuator from a non-active controller");
@@ -483,7 +483,7 @@ PyObject* SCA_PythonController::PyDeActivate(PyObject *value)
Py_RETURN_NONE;
}
-PyObject* SCA_PythonController::pyattr_get_script(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_PythonController::pyattr_get_script(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
//SCA_PythonController* self= static_cast<SCA_PythonController*>(static_cast<SCA_IController*>(static_cast<SCA_ILogicBrick*>(static_cast<CValue*>(static_cast<PyObjectPlus*>(self_v)))));
// static_cast<void *>(dynamic_cast<Derived *>(obj)) - static_cast<void *>(obj)
diff --git a/source/gameengine/GameLogic/SCA_PythonController.h b/source/gameengine/GameLogic/SCA_PythonController.h
index ccdb82aa722..8a72ce6bad9 100644
--- a/source/gameengine/GameLogic/SCA_PythonController.h
+++ b/source/gameengine/GameLogic/SCA_PythonController.h
@@ -74,7 +74,7 @@ class SCA_PythonController : public SCA_IController
//for debugging
//virtual CValue* AddRef();
- //virtual int Release(); // Release a reference to this value (when reference count reaches 0, the value is removed from the heap)
+ //virtual int Release(); // Release a reference to this value (when reference count reaches 0, the value is removed from the heap)
SCA_PythonController(SCA_IObject* gameobj, int mode);
virtual ~SCA_PythonController();
@@ -96,11 +96,11 @@ class SCA_PythonController : public SCA_IController
void ErrorPrint(const char *error_msg);
#ifdef WITH_PYTHON
- static const char* sPyGetCurrentController__doc__;
- static PyObject* sPyGetCurrentController(PyObject* self);
- static const char* sPyAddActiveActuator__doc__;
- static PyObject* sPyAddActiveActuator(PyObject* self,
- PyObject* args);
+ static const char *sPyGetCurrentController__doc__;
+ static PyObject *sPyGetCurrentController(PyObject *self);
+ static const char *sPyAddActiveActuator__doc__;
+ static PyObject *sPyAddActiveActuator(PyObject *self,
+ PyObject *args);
static SCA_IActuator* LinkedActuatorFromPy(PyObject *value);
diff --git a/source/gameengine/GameLogic/SCA_PythonKeyboard.cpp b/source/gameengine/GameLogic/SCA_PythonKeyboard.cpp
index f83b23f510c..42cda9433b8 100644
--- a/source/gameengine/GameLogic/SCA_PythonKeyboard.cpp
+++ b/source/gameengine/GameLogic/SCA_PythonKeyboard.cpp
@@ -58,13 +58,13 @@ SCA_PythonKeyboard::~SCA_PythonKeyboard()
/* ------------------------------------------------------------------------- */
/* clipboard */
-static PyObject* gPyGetClipboard(PyObject* args, PyObject* kwds)
+static PyObject *gPyGetClipboard(PyObject *args, PyObject *kwds)
{
char *buf = (char *)GHOST_getClipboard(0);
return PyUnicode_FromString(buf?buf:"");
}
-static PyObject* gPySetClipboard(PyObject* args, PyObject* value)
+static PyObject *gPySetClipboard(PyObject *args, PyObject *value)
{
char* buf;
if (!PyArg_ParseTuple(value,"s:setClipboard",&buf))
@@ -109,7 +109,7 @@ PyAttributeDef SCA_PythonKeyboard::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* SCA_PythonKeyboard::pyattr_get_events(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_PythonKeyboard::pyattr_get_events(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_PythonKeyboard* self = static_cast<SCA_PythonKeyboard*>(self_v);
@@ -123,7 +123,7 @@ PyObject* SCA_PythonKeyboard::pyattr_get_events(void *self_v, const KX_PYATTRIBU
return self->m_event_dict;
}
-PyObject* SCA_PythonKeyboard::pyattr_get_active_events(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_PythonKeyboard::pyattr_get_active_events(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_PythonKeyboard* self = static_cast<SCA_PythonKeyboard*>(self_v);
diff --git a/source/gameengine/GameLogic/SCA_PythonKeyboard.h b/source/gameengine/GameLogic/SCA_PythonKeyboard.h
index df5e46f8c28..aab49bcb83b 100644
--- a/source/gameengine/GameLogic/SCA_PythonKeyboard.h
+++ b/source/gameengine/GameLogic/SCA_PythonKeyboard.h
@@ -35,7 +35,7 @@ class SCA_PythonKeyboard : public PyObjectPlus
private:
class SCA_IInputDevice *m_keyboard;
#ifdef WITH_PYTHON
- PyObject* m_event_dict;
+ PyObject *m_event_dict;
#endif
public:
SCA_PythonKeyboard(class SCA_IInputDevice* keyboard);
diff --git a/source/gameengine/GameLogic/SCA_PythonMouse.cpp b/source/gameengine/GameLogic/SCA_PythonMouse.cpp
index cdbeaba2235..0806bda072b 100644
--- a/source/gameengine/GameLogic/SCA_PythonMouse.cpp
+++ b/source/gameengine/GameLogic/SCA_PythonMouse.cpp
@@ -90,9 +90,9 @@ PyAttributeDef SCA_PythonMouse::Attributes[] = {
KX_PYATTRIBUTE_RW_FUNCTION("position", SCA_PythonMouse, pyattr_get_position, pyattr_set_position),
KX_PYATTRIBUTE_RW_FUNCTION("visible", SCA_PythonMouse, pyattr_get_visible, pyattr_set_visible),
{ NULL } //Sentinel
-};
+};
-PyObject* SCA_PythonMouse::pyattr_get_events(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_PythonMouse::pyattr_get_events(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_PythonMouse* self = static_cast<SCA_PythonMouse*>(self_v);
@@ -106,7 +106,7 @@ PyObject* SCA_PythonMouse::pyattr_get_events(void *self_v, const KX_PYATTRIBUTE_
return self->m_event_dict;
}
-PyObject* SCA_PythonMouse::pyattr_get_active_events(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_PythonMouse::pyattr_get_active_events(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_PythonMouse* self = static_cast<SCA_PythonMouse*>(self_v);
@@ -123,7 +123,7 @@ PyObject* SCA_PythonMouse::pyattr_get_active_events(void *self_v, const KX_PYATT
return self->m_event_dict;
}
-PyObject* SCA_PythonMouse::pyattr_get_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_PythonMouse::pyattr_get_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_PythonMouse* self = static_cast<SCA_PythonMouse*>(self_v);
const SCA_InputEvent & xevent = self->m_mouse->GetEventValue(SCA_IInputDevice::KX_MOUSEX);
@@ -134,7 +134,7 @@ PyObject* SCA_PythonMouse::pyattr_get_position(void *self_v, const KX_PYATTRIBUT
x_coord = self->m_canvas->GetMouseNormalizedX(xevent.m_eventval);
y_coord = self->m_canvas->GetMouseNormalizedY(yevent.m_eventval);
- PyObject* ret = PyTuple_New(2);
+ PyObject *ret = PyTuple_New(2);
PyTuple_SET_ITEM(ret, 0, PyFloat_FromDouble(x_coord));
PyTuple_SET_ITEM(ret, 1, PyFloat_FromDouble(y_coord));
@@ -158,7 +158,7 @@ int SCA_PythonMouse::pyattr_set_position(void *self_v, const KX_PYATTRIBUTE_DEF
return PY_SET_ATTR_SUCCESS;
}
-PyObject* SCA_PythonMouse::pyattr_get_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_PythonMouse::pyattr_get_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_PythonMouse* self = static_cast<SCA_PythonMouse*>(self_v);
diff --git a/source/gameengine/GameLogic/SCA_PythonMouse.h b/source/gameengine/GameLogic/SCA_PythonMouse.h
index 1313d55005f..f770a54d6e6 100644
--- a/source/gameengine/GameLogic/SCA_PythonMouse.h
+++ b/source/gameengine/GameLogic/SCA_PythonMouse.h
@@ -36,7 +36,7 @@ private:
class SCA_IInputDevice *m_mouse;
class RAS_ICanvas *m_canvas;
#ifdef WITH_PYTHON
- PyObject* m_event_dict;
+ PyObject *m_event_dict;
#endif
public:
SCA_PythonMouse(class SCA_IInputDevice* mouse, class RAS_ICanvas* canvas);
@@ -47,12 +47,12 @@ public:
#ifdef WITH_PYTHON
KX_PYMETHOD_DOC(SCA_PythonMouse, show);
- static PyObject* pyattr_get_events(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_active_events(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_position(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static int pyattr_set_position(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject* value);
- static PyObject* pyattr_get_visible(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static int pyattr_set_visible(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject* value);
+ static PyObject *pyattr_get_events(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_active_events(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_position(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static int pyattr_set_position(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+ static PyObject *pyattr_get_visible(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static int pyattr_set_visible(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
#endif
};
diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.cpp b/source/gameengine/GameLogic/SCA_RandomActuator.cpp
index c727eebd015..9a54c76ed4e 100644
--- a/source/gameengine/GameLogic/SCA_RandomActuator.cpp
+++ b/source/gameengine/GameLogic/SCA_RandomActuator.cpp
@@ -161,7 +161,7 @@ bool SCA_RandomActuator::Update()
while (b >= a) {
b = b * m_base->DrawFloat();
res++;
- };
+ };
tmpval = new CIntValue(res);
}
break;
@@ -361,9 +361,9 @@ PyAttributeDef SCA_RandomActuator::Attributes[] = {
KX_PYATTRIBUTE_STRING_RW_CHECK("propName",0,MAX_PROP_NAME,false,SCA_RandomActuator,m_propname,CheckProperty),
KX_PYATTRIBUTE_RW_FUNCTION("seed",SCA_RandomActuator,pyattr_get_seed,pyattr_set_seed),
{ NULL } //Sentinel
-};
+};
-PyObject* SCA_RandomActuator::pyattr_get_seed(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_RandomActuator::pyattr_get_seed(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_RandomActuator* act = static_cast<SCA_RandomActuator*>(self);
return PyLong_FromSsize_t(act->m_base->GetSeed());
@@ -420,7 +420,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setBoolBernouilli,
}
m_distribution = KX_RANDOMACT_BOOL_BERNOUILLI;
- m_parameter1 = paraArg;
+ m_parameter1 = paraArg;
enforceConstraints();
Py_RETURN_NONE;
}
@@ -473,7 +473,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setIntPoisson,
}
m_distribution = KX_RANDOMACT_INT_POISSON;
- m_parameter1 = paraArg;
+ m_parameter1 = paraArg;
enforceConstraints();
Py_RETURN_NONE;
}
@@ -489,7 +489,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setFloatConst,
}
m_distribution = KX_RANDOMACT_FLOAT_CONST;
- m_parameter1 = paraArg;
+ m_parameter1 = paraArg;
enforceConstraints();
Py_RETURN_NONE;
}
@@ -544,7 +544,7 @@ KX_PYMETHODDEF_DOC_VARARGS(SCA_RandomActuator, setFloatNegativeExponential,
}
m_distribution = KX_RANDOMACT_FLOAT_NEGATIVE_EXPONENTIAL;
- m_parameter1 = paraArg;
+ m_parameter1 = paraArg;
enforceConstraints();
Py_RETURN_NONE;
}
diff --git a/source/gameengine/GameLogic/SCA_RandomActuator.h b/source/gameengine/GameLogic/SCA_RandomActuator.h
index 522663651e0..f61de24c0cc 100644
--- a/source/gameengine/GameLogic/SCA_RandomActuator.h
+++ b/source/gameengine/GameLogic/SCA_RandomActuator.h
@@ -67,10 +67,10 @@ class SCA_RandomActuator : public SCA_IActuator
KX_RANDOMACT_NODEF,
KX_RANDOMACT_BOOL_CONST,
KX_RANDOMACT_BOOL_UNIFORM,
- KX_RANDOMACT_BOOL_BERNOUILLI,
+ KX_RANDOMACT_BOOL_BERNOUILLI,
KX_RANDOMACT_INT_CONST,
KX_RANDOMACT_INT_UNIFORM,
- KX_RANDOMACT_INT_POISSON,
+ KX_RANDOMACT_INT_POISSON,
KX_RANDOMACT_FLOAT_CONST,
KX_RANDOMACT_FLOAT_UNIFORM,
KX_RANDOMACT_FLOAT_NORMAL,
@@ -98,7 +98,7 @@ class SCA_RandomActuator : public SCA_IActuator
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- static PyObject* pyattr_get_seed(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_seed(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_seed(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
KX_PYMETHOD_DOC_VARARGS(SCA_RandomActuator, setBoolConst);
diff --git a/source/gameengine/GameLogic/SCA_RandomSensor.cpp b/source/gameengine/GameLogic/SCA_RandomSensor.cpp
index 3b37507dcf3..17784755421 100644
--- a/source/gameengine/GameLogic/SCA_RandomSensor.cpp
+++ b/source/gameengine/GameLogic/SCA_RandomSensor.cpp
@@ -165,7 +165,7 @@ PyAttributeDef SCA_RandomSensor::Attributes[] = {
{NULL} //Sentinel
};
-PyObject* SCA_RandomSensor::pyattr_get_seed(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *SCA_RandomSensor::pyattr_get_seed(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
SCA_RandomSensor* self= static_cast<SCA_RandomSensor*>(self_v);
return PyLong_FromSsize_t(self->m_basegenerator->GetSeed());
diff --git a/source/gameengine/GameLogic/SCA_TimeEventManager.cpp b/source/gameengine/GameLogic/SCA_TimeEventManager.cpp
index e28f00abba2..e8a6289a98e 100644
--- a/source/gameengine/GameLogic/SCA_TimeEventManager.cpp
+++ b/source/gameengine/GameLogic/SCA_TimeEventManager.cpp
@@ -54,7 +54,7 @@ SCA_TimeEventManager::~SCA_TimeEventManager()
!(it == m_timevalues.end()); ++it)
{
(*it)->Release();
- }
+ }
}
diff --git a/source/gameengine/GamePlayer/common/GPC_Canvas.cpp b/source/gameengine/GamePlayer/common/GPC_Canvas.cpp
index f4224b9e255..b5c1c29238a 100644
--- a/source/gameengine/GamePlayer/common/GPC_Canvas.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_Canvas.cpp
@@ -57,6 +57,8 @@ GPC_Canvas::GPC_Canvas(
m_displayarea.m_y1 = 0;
m_displayarea.m_x2 = width;
m_displayarea.m_y2 = height;
+
+ glGetIntegerv(GL_VIEWPORT, (GLint*)m_viewport);
}
@@ -99,7 +101,7 @@ void GPC_Canvas::Resize(int width, int height)
void GPC_Canvas::EndFrame()
{
if (m_bannersEnabled)
- DrawAllBanners();
+ DrawAllBanners();
}
@@ -121,11 +123,31 @@ void GPC_Canvas::SetViewPort(int x1, int y1, int x2, int y2)
* whole canvas/rendertools mess.
*/
glEnable(GL_SCISSOR_TEST);
+
+ m_viewport[0] = x1;
+ m_viewport[1] = y1;
+ m_viewport[2] = x2-x1 + 1;
+ m_viewport[3] = y2-y1 + 1;
glViewport(x1,y1,x2-x1 + 1,y2-y1 + 1);
glScissor(x1,y1,x2-x1 + 1,y2-y1 + 1);
};
+const int *GPC_Canvas::GetViewPort()
+{
+#ifdef DEBUG
+ // If we're in a debug build, we might as well make sure our values don't differ
+ // from what the gpu thinks we have. This could lead to nasty, hard to find bugs.
+ int viewport[4];
+ glGetIntegerv(GL_VIEWPORT, viewport);
+ assert(viewport[0] == m_viewport[0]);
+ assert(viewport[1] == m_viewport[1]);
+ assert(viewport[2] == m_viewport[2]);
+ assert(viewport[3] == m_viewport[3]);
+#endif
+
+ return m_viewport;
+}
void GPC_Canvas::ClearBuffer(
int type
diff --git a/source/gameengine/GamePlayer/common/GPC_Canvas.h b/source/gameengine/GamePlayer/common/GPC_Canvas.h
index 0e26c5ad729..2a597c4c43d 100644
--- a/source/gameengine/GamePlayer/common/GPC_Canvas.h
+++ b/source/gameengine/GamePlayer/common/GPC_Canvas.h
@@ -90,6 +90,8 @@ protected:
* relative to the context */
RAS_Rect m_displayarea;
+ int *m_viewport;
+
/** Storage for the banners to display. */
TBannerMap m_banners;
/** State of banner display. */
@@ -103,7 +105,7 @@ public:
void Resize(int width, int height);
- virtual void ResizeWindow(int width, int height){};
+ virtual void ResizeWindow(int width, int height) {}
/**
* \section Methods inherited from abstract base class RAS_ICanvas.
@@ -153,6 +155,7 @@ public:
);
void SetViewPort(int x1, int y1, int x2, int y2);
+ const int *GetViewPort();
void ClearColor(float r, float g, float b, float a);
@@ -163,7 +166,7 @@ public:
void SetMouseState(RAS_MouseState mousestate)
{
- // not yet
+ // not yet
}
void SetMousePosition(int x, int y)
@@ -250,7 +253,7 @@ protected:
int oldWriteMask;
};
- void
+ void
PushRenderState(
CanvasRenderState & render_state
);
diff --git a/source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp b/source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp
index a38bba7788b..e38a9e3d6cb 100644
--- a/source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_MouseDevice.cpp
@@ -67,7 +67,8 @@ void GPC_MouseDevice::NextFrame()
for (int mouseevent= KX_BEGINMOUSE; mouseevent< KX_ENDMOUSEBUTTONS; mouseevent++) {
SCA_InputEvent& oldevent = m_eventStatusTables[previousTable][mouseevent];
if (oldevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED ||
- oldevent.m_status == SCA_InputEvent::KX_ACTIVE) {
+ oldevent.m_status == SCA_InputEvent::KX_ACTIVE)
+ {
m_eventStatusTables[m_currentTable][mouseevent] = oldevent;
m_eventStatusTables[m_currentTable][mouseevent].m_status = SCA_InputEvent::KX_ACTIVE;
}
@@ -76,7 +77,8 @@ void GPC_MouseDevice::NextFrame()
SCA_InputEvent& oldevent = m_eventStatusTables[previousTable][mousemove];
m_eventStatusTables[m_currentTable][mousemove] = oldevent;
if (oldevent.m_status == SCA_InputEvent::KX_JUSTACTIVATED ||
- oldevent.m_status == SCA_InputEvent::KX_ACTIVE) {
+ oldevent.m_status == SCA_InputEvent::KX_ACTIVE)
+ {
m_eventStatusTables[m_currentTable][mousemove].m_status = SCA_InputEvent::KX_JUSTRELEASED;
}
else {
diff --git a/source/gameengine/GamePlayer/common/GPC_RawImage.cpp b/source/gameengine/GamePlayer/common/GPC_RawImage.cpp
index 9f129c1cdfb..c0d66541800 100644
--- a/source/gameengine/GamePlayer/common/GPC_RawImage.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_RawImage.cpp
@@ -89,7 +89,7 @@ bool GPC_RawImage::Load(
// Put original in upper left corner
// Add vertical offset
- dst += offsetY * dstBytesWidth;
+ dst += offsetY * dstBytesWidth;
// Add horizontal offset
dst += offsetX * 4;
for (int row = 0; row < numRows; row++)
diff --git a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
index ed2fa8a7dc6..4bf81bf543e 100644
--- a/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
+++ b/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
@@ -205,7 +205,7 @@ void GPC_RenderTools::applyTransform(RAS_IRasterizer* rasty,double* oglmatrix,in
//page 360/361 3D Game Engine Design, David Eberly for a discussion
// on screen aligned and axis aligned billboards
// assumed is that the preprocessor transformed all billboard polygons
- // so that their normal points into the positive x direction (1.0 , 0.0 , 0.0)
+ // so that their normal points into the positive x direction (1.0, 0.0, 0.0)
// when new parenting for objects is done, this rotation
// will be moved into the object
@@ -359,7 +359,8 @@ void GPC_RenderTools::RenderText2D(RAS_TEXT_RENDER_MODE mode,
glGetIntegerv(GL_LIGHTING, (GLint*)&light);
glDisable(GL_LIGHTING);
-
+ glDisable(GL_DEPTH_TEST);
+
// Set up viewing settings
glMatrixMode(GL_PROJECTION);
glPushMatrix();
@@ -442,7 +443,7 @@ void GPC_RenderTools::PopMatrix()
int GPC_RenderTools::applyLights(int objectlayer, const MT_Transform& viewmat)
{
- // taken from blender source, incompatibility between Blender Object / GameObject
+ // taken from blender source, incompatibility between Blender Object / GameObject
KX_Scene* kxscene = (KX_Scene*)m_auxilaryClientInfo;
float glviewmat[16];
unsigned int count;
diff --git a/source/gameengine/GamePlayer/common/bmfont.cpp b/source/gameengine/GamePlayer/common/bmfont.cpp
index 4c1c6ae5604..fe6f2187138 100644
--- a/source/gameengine/GamePlayer/common/bmfont.cpp
+++ b/source/gameengine/GamePlayer/common/bmfont.cpp
@@ -104,13 +104,13 @@ void readBitmapFontVersion0(ImBuf * ibuf, unsigned char * rect, int step)
ysize = (bytes + (ibuf->x - 1)) / ibuf->x;
if (ysize < ibuf->y) {
- // we're first going to copy all data into a liniar buffer.
+ // we're first going to copy all data into a linear buffer.
// step can be 4 or 1 bytes, and the data is not sequential because
// the bitmap was flipped vertically.
buffer = (unsigned char*)MEM_mallocN(bytes, "readBitmapFontVersion0:buffer");
- index = 0;
+ index = 0;
for (i = 0; i < bytes; i++) {
buffer[i] = rect[index];
index += step;
diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
index eccb83fe80c..40b52c3212a 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
+++ b/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
@@ -464,31 +464,34 @@ bool GPG_Application::processEvent(GHOST_IEvent* event)
handled = false;
break;
- case GHOST_kEventWindowUpdate:
- {
- GHOST_IWindow* window = event->getWindow();
- if (!m_system->validWindow(window)) break;
- // Update the state of the game engine
- if (m_kxsystem && !m_exitRequested)
- {
- // Proceed to next frame
- window->activateDrawingContext();
-
- // first check if we want to exit
- m_exitRequested = m_ketsjiengine->GetExitCode();
-
- // kick the engine
- bool renderFrame = m_ketsjiengine->NextFrame();
- if (renderFrame)
- {
- // render the frame
- m_ketsjiengine->Render();
- }
- }
- m_exitString = m_ketsjiengine->GetExitString();
- }
- break;
-
+ // The player now runs as often as it can (repsecting vsync and fixedtime).
+ // This allows the player to break 100fps, but this code is being left here
+ // as reference. (see EngineNextFrame)
+ //case GHOST_kEventWindowUpdate:
+ // {
+ // GHOST_IWindow* window = event->getWindow();
+ // if (!m_system->validWindow(window)) break;
+ // // Update the state of the game engine
+ // if (m_kxsystem && !m_exitRequested)
+ // {
+ // // Proceed to next frame
+ // window->activateDrawingContext();
+
+ // // first check if we want to exit
+ // m_exitRequested = m_ketsjiengine->GetExitCode();
+ //
+ // // kick the engine
+ // bool renderFrame = m_ketsjiengine->NextFrame();
+ // if (renderFrame)
+ // {
+ // // render the frame
+ // m_ketsjiengine->Render();
+ // }
+ // }
+ // m_exitString = m_ketsjiengine->GetExitString();
+ // }
+ // break;
+ //
case GHOST_kEventWindowSize:
{
GHOST_IWindow* window = event->getWindow();
@@ -543,7 +546,7 @@ bool GPG_Application::initEngine(GHOST_IWindow* window, const int stereoMode)
return false;
// SYS_WriteCommandLineInt(syshandle, "fixedtime", 0);
- // SYS_WriteCommandLineInt(syshandle, "vertexarrays",1);
+ // SYS_WriteCommandLineInt(syshandle, "vertexarrays",1);
GameData *gm= &m_startScene->gm;
bool properties = (SYS_GetCommandLineInt(syshandle, "show_properties", 0) != 0);
bool profile = (SYS_GetCommandLineInt(syshandle, "show_profile", 0) != 0);
@@ -573,7 +576,7 @@ bool GPG_Application::initEngine(GHOST_IWindow* window, const int stereoMode)
m_canvas->Init();
if (gm->flag & GAME_SHOW_MOUSE)
- m_canvas->SetMouseState(RAS_ICanvas::MOUSE_NORMAL);
+ m_canvas->SetMouseState(RAS_ICanvas::MOUSE_NORMAL);
m_rendertools = new GPC_RenderTools();
if (!m_rendertools)
@@ -678,7 +681,7 @@ bool GPG_Application::startEngine(void)
// Temporary hack to disable banner display for NaN approved content.
/*
- m_canvas->SetBannerDisplayEnabled(true);
+ m_canvas->SetBannerDisplayEnabled(true);
Camera* cam;
cam = (Camera*)scene->camera->data;
if (cam) {
@@ -727,7 +730,7 @@ bool GPG_Application::startEngine(void)
// Set the GameLogic.globalDict from marshal'd data, so we can
// load new blend files and keep data in GameLogic.globalDict
loadGamePythonConfig(m_pyGlobalDictString, m_pyGlobalDictString_Length);
-#endif
+#endif
m_sceneconverter->ConvertScene(
startscene,
m_rendertools,
@@ -789,6 +792,28 @@ void GPG_Application::stopEngine()
m_engineRunning = false;
}
+void GPG_Application::EngineNextFrame()
+{
+ // Update the state of the game engine
+ if (m_kxsystem && !m_exitRequested)
+ {
+ // Proceed to next frame
+ if (m_mainWindow)
+ m_mainWindow->activateDrawingContext();
+
+ // first check if we want to exit
+ m_exitRequested = m_ketsjiengine->GetExitCode();
+
+ // kick the engine
+ bool renderFrame = m_ketsjiengine->NextFrame();
+ if (renderFrame && m_mainWindow)
+ {
+ // render the frame
+ m_ketsjiengine->Render();
+ }
+ }
+ m_exitString = m_ketsjiengine->GetExitString();
+}
void GPG_Application::exitEngine()
{
diff --git a/source/gameengine/GamePlayer/ghost/GPG_Application.h b/source/gameengine/GamePlayer/ghost/GPG_Application.h
index 51dac5cb3f3..e04fcc2a555 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_Application.h
+++ b/source/gameengine/GamePlayer/ghost/GPG_Application.h
@@ -77,6 +77,7 @@ public:
GlobalSettings* getGlobalSettings(void);
bool StartGameEngine(int stereoMode);
void StopGameEngine();
+ void EngineNextFrame();
protected:
bool handleWheel(GHOST_IEvent* event);
diff --git a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
index 26cfc560b6d..7500a55a059 100644
--- a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
+++ b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
@@ -47,6 +47,7 @@
#endif // __APPLE__
#include "KX_KetsjiEngine.h"
#include "KX_PythonInit.h"
+#include "KX_PythonMain.h"
/**********************************
* Begin Blender include block
@@ -56,10 +57,10 @@ extern "C"
{
#endif // __cplusplus
#include "MEM_guardedalloc.h"
-#include "BKE_blender.h"
-#include "BKE_global.h"
-#include "BKE_icons.h"
-#include "BKE_node.h"
+#include "BKE_blender.h"
+#include "BKE_global.h"
+#include "BKE_icons.h"
+#include "BKE_node.h"
#include "BKE_report.h"
#include "BKE_library.h"
#include "BLI_threads.h"
@@ -97,7 +98,6 @@ extern char datatoc_bfont_ttf[];
#include "RAS_IRasterizer.h"
#include "BKE_main.h"
-#include "BKE_utildefines.h"
#include "RNA_define.h"
@@ -194,7 +194,7 @@ void usage(const char* program, bool isBlenderPlayer)
}
printf("usage: %s [-w [w h l t]] [-f [fw fh fb ff]] %s[-g gamengineoptions] "
- "[-s stereomode] [-m aasamples] %s\n", program, consoleoption, example_filename);
+ "[-s stereomode] [-m aasamples] %s\n", program, consoleoption, example_filename);
printf(" -h: Prints this command summary\n\n");
printf(" -w: display in a window\n");
printf(" --Optional parameters--\n");
@@ -223,7 +223,7 @@ void usage(const char* program, bool isBlenderPlayer)
printf(" --Optional parameters--\n");
printf(" angle = field of view in degrees\n");
printf(" tilt = tilt angle in degrees\n");
- printf(" warpdata = a file to use for warping the image (absolute path)\n");
+ printf(" warpdata = a file to use for warping the image (absolute path)\n");
printf(" mode: fisheye (Fisheye)\n");
printf(" truncatedfront (Front-Truncated)\n");
printf(" truncatedrear (Rear-Truncated)\n");
@@ -332,6 +332,40 @@ static BlendFileData *load_game_data(const char *progname, char *filename = NULL
return bfd;
}
+bool GPG_NextFrame(GHOST_ISystem* system, GPG_Application *app, int &exitcode, STR_String &exitstring, GlobalSettings *gs)
+{
+ bool run = true;
+ system->processEvents(false);
+ system->dispatchEvents();
+ app->EngineNextFrame();
+ if ((exitcode = app->getExitRequested())) {
+ run = false;
+ exitstring = app->getExitString();
+ *gs = *app->getGlobalSettings();
+ }
+ return run;
+}
+
+struct GPG_NextFrameState {
+ GHOST_ISystem* system;
+ GPG_Application *app;
+ GlobalSettings *gs;
+} gpg_nextframestate;
+
+int GPG_PyNextFrame(void *state0)
+{
+ GPG_NextFrameState *state = (GPG_NextFrameState *) state0;
+ int exitcode;
+ STR_String exitstring;
+ bool run = GPG_NextFrame(state->system, state->app, exitcode, exitstring, state->gs);
+ if (run) return 0;
+ else {
+ if (exitcode)
+ fprintf(stderr, "Exit code %d: %s\n", exitcode, exitstring.ReadPtr());
+ return 1;
+ }
+}
+
int main(int argc, char** argv)
{
int i;
@@ -475,7 +509,7 @@ int main(int argc, char** argv)
{
#if defined(DEBUG)
- printf("argv[%d] = '%s' , %i\n", i, argv[i],argc);
+ printf("argv[%d] = '%s', %i\n", i, argv[i],argc);
#endif
if (argv[i][0] == '-')
{
@@ -966,15 +1000,39 @@ int main(int argc, char** argv)
// Enter main loop
bool run = true;
- while (run)
+ char *python_main = NULL;
+ pynextframestate.state = NULL;
+ pynextframestate.func = NULL;
+#ifdef WITH_PYTHON
+ python_main = KX_GetPythonMain(scene);
+#endif // WITH_PYTHON
+ if (python_main)
+ {
+ char *python_code = KX_GetPythonCode(maggie, python_main);
+ if (python_code)
+ {
+#ifdef WITH_PYTHON
+ gpg_nextframestate.system = system;
+ gpg_nextframestate.app = &app;
+ gpg_nextframestate.gs = &gs;
+ pynextframestate.state = &gpg_nextframestate;
+ pynextframestate.func = &GPG_PyNextFrame;
+
+ printf("Yielding control to Python script '%s'...\n", python_main);
+ PyRun_SimpleString(python_code);
+ printf("Exit Python script '%s'\n", python_main);
+#endif // WITH_PYTHON
+ MEM_freeN(python_code);
+ }
+ else {
+ fprintf(stderr, "ERROR: cannot yield control to Python: no Python text data block named '%s'\n", python_main);
+ }
+ }
+ else
{
- system->processEvents(false);
- system->dispatchEvents();
- if ((exitcode = app.getExitRequested()))
+ while (run)
{
- run = false;
- exitstring = app.getExitString();
- gs = *app.getGlobalSettings();
+ run = GPG_NextFrame(system, &app, exitcode, exitstring, &gs);
}
}
app.StopGameEngine();
@@ -984,6 +1042,7 @@ int main(int argc, char** argv)
system->removeEventConsumer(&app);
BLO_blendfiledata_free(bfd);
+ if (python_main) MEM_freeN(python_main);
}
} while (exitcode == KX_EXIT_REQUEST_RESTART_GAME || exitcode == KX_EXIT_REQUEST_START_OTHER_GAME);
}
diff --git a/source/gameengine/Ketsji/BL_Action.cpp b/source/gameengine/Ketsji/BL_Action.cpp
index fbeb34b70b4..a21c3965be9 100644
--- a/source/gameengine/Ketsji/BL_Action.cpp
+++ b/source/gameengine/Ketsji/BL_Action.cpp
@@ -206,7 +206,7 @@ bool BL_Action::Play(const char* name,
}
// Now that we have an action, we have something we can play
- m_starttime = KX_GetActiveEngine()->GetFrameTime();
+ m_starttime = -1.f; // We get the start time on our first update
m_startframe = m_localtime = start;
m_endframe = end;
m_blendin = blendin;
@@ -338,6 +338,11 @@ void BL_Action::Update(float curtime)
curtime -= KX_KetsjiEngine::GetSuspendedDelta();
+ // Grab the start time here so we don't end up with a negative m_localtime when
+ // suspending and resuming scenes.
+ if (m_starttime < 0)
+ m_starttime = curtime;
+
if (m_calc_localtime)
SetLocalTime(curtime);
else
diff --git a/source/gameengine/Ketsji/BL_Shader.cpp b/source/gameengine/Ketsji/BL_Shader.cpp
index c0fca88c426..e0ad1539b4a 100644
--- a/source/gameengine/Ketsji/BL_Shader.cpp
+++ b/source/gameengine/Ketsji/BL_Shader.cpp
@@ -431,7 +431,7 @@ void BL_Shader::SetProg(bool enable)
glUseProgramObjectARB(mShader);
}
else {
- glUseProgramObjectARB(0);
+ glUseProgramObjectARB(0);
}
}
}
@@ -613,7 +613,7 @@ void BL_Shader::SetUniform(int uniform, const MT_Tuple3& vec)
GLEW_ARB_vertex_shader &&
GLEW_ARB_shader_objects
)
- {
+ {
float value[3];
vec.getValue(value);
glUniform3fvARB(uniform, 1, value);
@@ -931,7 +931,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniform1f, "setUniform1f(name, fx)" )
{
#ifdef SORT_UNIFORMS
SetUniformfv(loc, BL_Uniform::UNI_FLOAT, &value, sizeof(float));
-#else
+#else
SetUniform( loc, (float)value );
#endif
}
@@ -1142,7 +1142,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformfv, "setUniformfv( float (list2 or list
#ifdef SORT_UNIFORMS
SetUniformfv(loc, BL_Uniform::UNI_FLOAT2, array2, sizeof(float)*2);
#else
- SetUniform(loc, array2, 2);
+ SetUniform(loc, array2, 2);
#endif
Py_RETURN_NONE;
} break;
@@ -1152,7 +1152,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformfv, "setUniformfv( float (list2 or list
#ifdef SORT_UNIFORMS
SetUniformfv(loc, BL_Uniform::UNI_FLOAT3, array3, sizeof(float)*3);
#else
- SetUniform(loc, array3, 3);
+ SetUniform(loc, array3, 3);
#endif
Py_RETURN_NONE;
}break;
@@ -1162,7 +1162,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformfv, "setUniformfv( float (list2 or list
#ifdef SORT_UNIFORMS
SetUniformfv(loc, BL_Uniform::UNI_FLOAT4, array4, sizeof(float)*4);
#else
- SetUniform(loc, array4, 4);
+ SetUniform(loc, array4, 4);
#endif
Py_RETURN_NONE;
}break;
@@ -1226,7 +1226,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformiv, "setUniformiv( uniform_name, (list2
#ifdef SORT_UNIFORMS
SetUniformiv(loc, BL_Uniform::UNI_INT2, array2, sizeof(int)*2);
#else
- SetUniform(loc, array2, 2);
+ SetUniform(loc, array2, 2);
#endif
Py_RETURN_NONE;
} break;
@@ -1237,7 +1237,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformiv, "setUniformiv( uniform_name, (list2
SetUniformiv(loc, BL_Uniform::UNI_INT3, array3, sizeof(int)*3);
#else
- SetUniform(loc, array3, 3);
+ SetUniform(loc, array3, 3);
#endif
Py_RETURN_NONE;
}break;
@@ -1248,7 +1248,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setUniformiv, "setUniformiv( uniform_name, (list2
SetUniformiv(loc, BL_Uniform::UNI_INT4, array4, sizeof(int)*4);
#else
- SetUniform(loc, array4, 4);
+ SetUniform(loc, array4, 4);
#endif
Py_RETURN_NONE;
}break;
diff --git a/source/gameengine/Ketsji/BL_Shader.h b/source/gameengine/Ketsji/BL_Shader.h
index 2bb094f12ee..b577a1849a0 100644
--- a/source/gameengine/Ketsji/BL_Shader.h
+++ b/source/gameengine/Ketsji/BL_Shader.h
@@ -222,7 +222,7 @@ public:
// Python interface
#ifdef WITH_PYTHON
- virtual PyObject* py_repr(void) { return PyUnicode_FromFormat("BL_Shader\n\tvertex shader:%s\n\n\tfragment shader%s\n\n", vertProg, fragProg); }
+ virtual PyObject *py_repr(void) { return PyUnicode_FromFormat("BL_Shader\n\tvertex shader:%s\n\n\tfragment shader%s\n\n", vertProg, fragProg); }
// -----------------------------------
KX_PYMETHOD_DOC(BL_Shader, setSource);
diff --git a/source/gameengine/Ketsji/BL_Texture.cpp b/source/gameengine/Ketsji/BL_Texture.cpp
index 19247664dfa..7196c1ec664 100644
--- a/source/gameengine/Ketsji/BL_Texture.cpp
+++ b/source/gameengine/Ketsji/BL_Texture.cpp
@@ -29,6 +29,7 @@
#include "MEM_guardedalloc.h"
#include "GPU_draw.h"
+#include "GPU_extensions.h"
extern "C" {
// envmaps
@@ -46,7 +47,7 @@ static int power_of_2_min_i(int num)
{
while (!is_power_of_2_i(num))
num= num&(num-1);
- return num;
+ return num;
}
// Place holder for a full texture manager
@@ -116,6 +117,7 @@ bool BL_Texture::InitFromImage(int unit, Image *img, bool mipmap)
return mOk;
}
+ mipmap = mipmap && GPU_get_mipmap();
mTexture = img->bindcode;
mType = GL_TEXTURE_2D;
@@ -169,7 +171,7 @@ bool BL_Texture::InitFromImage(int unit, Image *img, bool mipmap)
void BL_Texture::InitGLTex(unsigned int *pix,int x,int y,bool mipmap)
{
- if (!is_power_of_2_i(x) || !is_power_of_2_i(y) ) {
+ if (!GPU_non_power_of_two_support() && (!is_power_of_2_i(x) || !is_power_of_2_i(y)) ) {
InitNonPow2Tex(pix, x,y,mipmap);
return;
}
@@ -182,7 +184,7 @@ void BL_Texture::InitGLTex(unsigned int *pix,int x,int y,bool mipmap)
}
else {
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, x, y, 0, GL_RGBA, GL_UNSIGNED_BYTE, pix );
}
@@ -191,7 +193,7 @@ void BL_Texture::InitGLTex(unsigned int *pix,int x,int y,bool mipmap)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
}
-void BL_Texture::InitGLCompressedTex(ImBuf* ibuf, bool mipmap)
+void BL_Texture::InitGLCompressedTex(ImBuf *ibuf, bool mipmap)
{
#ifndef WITH_DDS
// Fall back to uncompressed if DDS isn't enabled
@@ -199,11 +201,6 @@ void BL_Texture::InitGLCompressedTex(ImBuf* ibuf, bool mipmap)
return;
#else
glBindTexture(GL_TEXTURE_2D, mTexture);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
if (GPU_upload_dxt_texture(ibuf) == 0) {
InitGLTex(ibuf->rect, ibuf->x, ibuf->y, mipmap);
@@ -430,7 +427,7 @@ void BL_Texture::DisableAllTextures()
glMatrixMode(GL_TEXTURE);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
- glDisable(GL_TEXTURE_2D);
+ glDisable(GL_TEXTURE_2D);
glDisable(GL_TEXTURE_GEN_S);
glDisable(GL_TEXTURE_GEN_T);
glDisable(GL_TEXTURE_GEN_R);
@@ -450,14 +447,14 @@ void BL_Texture::ActivateTexture()
if (mType == GL_TEXTURE_CUBE_MAP_ARB && GLEW_ARB_texture_cube_map)
{
- glBindTexture( GL_TEXTURE_CUBE_MAP_ARB, mTexture );
+ glBindTexture( GL_TEXTURE_CUBE_MAP_ARB, mTexture );
glEnable(GL_TEXTURE_CUBE_MAP_ARB);
}
else {
if (GLEW_ARB_texture_cube_map )
glDisable(GL_TEXTURE_CUBE_MAP_ARB);
- glBindTexture( GL_TEXTURE_2D, mTexture );
+ glBindTexture( GL_TEXTURE_2D, mTexture );
glEnable(GL_TEXTURE_2D);
}
}
@@ -662,7 +659,7 @@ void my_envmap_split_ima(EnvMap *env, ImBuf *ibuf)
{
int dx, part;
- my_free_envmapdata(env);
+ my_free_envmapdata(env);
dx= ibuf->y;
dx/= 2;
diff --git a/source/gameengine/Ketsji/CMakeLists.txt b/source/gameengine/Ketsji/CMakeLists.txt
index 4b3426e0784..269311b7e00 100644
--- a/source/gameengine/Ketsji/CMakeLists.txt
+++ b/source/gameengine/Ketsji/CMakeLists.txt
@@ -107,6 +107,7 @@ set(SRC
KX_PyMath.cpp
KX_PythonInit.cpp
KX_PythonInitTypes.cpp
+ KX_PythonMain.cpp
KX_PythonSeq.cpp
KX_RadarSensor.cpp
KX_RayCast.cpp
@@ -189,6 +190,7 @@ set(SRC
KX_PyMath.h
KX_PythonInit.h
KX_PythonInitTypes.h
+ KX_PythonMain.h
KX_PythonSeq.h
KX_RadarSensor.h
KX_RayCast.h
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
index a69f02baa57..6260596159d 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp
@@ -38,7 +38,7 @@
#include "NG_NetworkMessage.h"
#include "NG_NetworkScene.h"
#include "NG_NetworkObject.h"
-#include "SCA_IObject.h"
+#include "SCA_IObject.h"
#include "InputParser.h"
#include "ListValue.h"
#include "StringValue.h"
@@ -201,7 +201,7 @@ PyAttributeDef KX_NetworkMessageSensor::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* KX_NetworkMessageSensor::pyattr_get_bodies(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_NetworkMessageSensor::pyattr_get_bodies(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_NetworkMessageSensor *self = static_cast<KX_NetworkMessageSensor*>(self_v);
if (self->m_BodyList) {
@@ -211,7 +211,7 @@ PyObject* KX_NetworkMessageSensor::pyattr_get_bodies(void *self_v, const KX_PYAT
}
}
-PyObject* KX_NetworkMessageSensor::pyattr_get_subjects(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_NetworkMessageSensor::pyattr_get_subjects(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_NetworkMessageSensor *self = static_cast<KX_NetworkMessageSensor*>(self_v);
if (self->m_SubjectList) {
diff --git a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
index 66f723d072c..6b9779de6e3 100644
--- a/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
+++ b/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
@@ -80,7 +80,7 @@ public:
/* ------------------------------------------------------------- */
/* attributes */
- static PyObject* pyattr_get_bodies(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject* pyattr_get_bodies(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static PyObject* pyattr_get_subjects(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
#endif // WITH_PYTHON
diff --git a/source/gameengine/Ketsji/KX_ArmatureSensor.cpp b/source/gameengine/Ketsji/KX_ArmatureSensor.cpp
index f72d9c1dee6..523f3ceeaea 100644
--- a/source/gameengine/Ketsji/KX_ArmatureSensor.cpp
+++ b/source/gameengine/Ketsji/KX_ArmatureSensor.cpp
@@ -86,7 +86,7 @@ void KX_ArmatureSensor::FindConstraint()
/* this constraint is not valid, can't use it */
break;
m_constraint = pcon;
- break;
+ break;
}
}
break;
@@ -193,13 +193,13 @@ PyAttributeDef KX_ArmatureSensor::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* KX_ArmatureSensor::pyattr_get_constraint(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_ArmatureSensor::pyattr_get_constraint(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_ArmatureSensor* sensor = static_cast<KX_ArmatureSensor*>(self);
if (sensor->m_gameobj->GetGameObjectType() == SCA_IObject::OBJ_ARMATURE) {
BL_ArmatureObject* armobj = (BL_ArmatureObject*)sensor->m_gameobj;
BL_ArmatureConstraint* constraint = armobj->GetConstraint(sensor->m_posechannel, sensor->m_constraintname);
- if (constraint)
+ if (constraint)
return constraint->GetProxy();
}
Py_RETURN_NONE;
diff --git a/source/gameengine/Ketsji/KX_ArmatureSensor.h b/source/gameengine/Ketsji/KX_ArmatureSensor.h
index 9c3faa355a6..74603b3ff01 100644
--- a/source/gameengine/Ketsji/KX_ArmatureSensor.h
+++ b/source/gameengine/Ketsji/KX_ArmatureSensor.h
@@ -72,7 +72,7 @@ public:
/* --------------------------------------------------------------------- */
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- static PyObject* pyattr_get_constraint(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_constraint(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
#endif // WITH_PYTHON
diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
index 79e6c35e6a2..2337e9569f3 100644
--- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
+++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
@@ -130,10 +130,10 @@ unsigned int* KX_BlenderMaterial::GetMCol(void) const
void KX_BlenderMaterial::GetMaterialRGBAColor(unsigned char *rgba) const
{
if (mMaterial) {
- *rgba++ = (unsigned char) (mMaterial->matcolor[0]*255.0);
- *rgba++ = (unsigned char) (mMaterial->matcolor[1]*255.0);
- *rgba++ = (unsigned char) (mMaterial->matcolor[2]*255.0);
- *rgba++ = (unsigned char) (mMaterial->matcolor[3]*255.0);
+ *rgba++ = (unsigned char)(mMaterial->matcolor[0] * 255.0f);
+ *rgba++ = (unsigned char)(mMaterial->matcolor[1] * 255.0f);
+ *rgba++ = (unsigned char)(mMaterial->matcolor[2] * 255.0f);
+ *rgba++ = (unsigned char)(mMaterial->matcolor[3] * 255.0f);
} else
RAS_IPolyMaterial::GetMaterialRGBAColor(rgba);
}
@@ -154,15 +154,8 @@ void KX_BlenderMaterial::ReleaseMaterial()
mBlenderShader->ReloadMaterial();
}
-void KX_BlenderMaterial::OnConstruction(int layer)
+void KX_BlenderMaterial::InitTextures()
{
- if (mConstructed)
- // when material are reused between objects
- return;
-
- if (mMaterial->glslmat)
- SetBlenderGLSLShader(layer);
-
// for each unique material...
int i;
for (i=0; i<mMaterial->num_enabled; i++) {
@@ -177,7 +170,7 @@ void KX_BlenderMaterial::OnConstruction(int layer)
}
// If we're using glsl materials, the textures are handled by bf_gpu, so don't load them twice!
// However, if we're using a custom shader, then we still need to load the textures ourselves.
- else if (!mMaterial->glslmat || mBlenderShader) {
+ else if (!mMaterial->glslmat || mShader) {
if ( mMaterial->img[i] ) {
if ( ! mTextures[i].InitFromImage(i, mMaterial->img[i], (mMaterial->flag[i] &MIPMAP)!=0 ))
spit("unable to initialize image("<<i<<") in "<<
@@ -185,6 +178,18 @@ void KX_BlenderMaterial::OnConstruction(int layer)
}
}
}
+}
+
+void KX_BlenderMaterial::OnConstruction(int layer)
+{
+ if (mConstructed)
+ // when material are reused between objects
+ return;
+
+ if (mMaterial->glslmat)
+ SetBlenderGLSLShader(layer);
+
+ InitTextures();
mBlendFunc[0] =0;
mBlendFunc[1] =0;
@@ -407,7 +412,7 @@ KX_BlenderMaterial::ActivatShaders(
if ((mMaterial->ras_mode &WIRE) ||
(rasty->GetDrawingMode() <= RAS_IRasterizer::KX_WIREFRAME))
- {
+ {
if (mMaterial->ras_mode &WIRE)
rasty->SetCullFace(false);
rasty->SetLines(true);
@@ -452,7 +457,7 @@ KX_BlenderMaterial::ActivateBlenderShaders(
if ((mMaterial->ras_mode &WIRE) ||
(rasty->GetDrawingMode() <= RAS_IRasterizer::KX_WIREFRAME))
- {
+ {
if (mMaterial->ras_mode &WIRE)
rasty->SetCullFace(false);
rasty->SetLines(true);
@@ -501,7 +506,7 @@ KX_BlenderMaterial::ActivateMat(
if ((mMaterial->ras_mode &WIRE) ||
(rasty->GetDrawingMode() <= RAS_IRasterizer::KX_WIREFRAME))
- {
+ {
if (mMaterial->ras_mode &WIRE)
rasty->SetCullFace(false);
rasty->SetLines(true);
@@ -609,7 +614,7 @@ void KX_BlenderMaterial::ActivatGLMaterials( RAS_IRasterizer* rasty )const
mMaterial->matcolor[2]*mMaterial->ref+mMaterial->emit,
1.0f);
- rasty->SetEmissive(
+ rasty->SetEmissive(
mMaterial->matcolor[0]*mMaterial->emit,
mMaterial->matcolor[1]*mMaterial->emit,
mMaterial->matcolor[2]*mMaterial->emit,
@@ -830,19 +835,19 @@ PyTypeObject KX_BlenderMaterial::Type = {
py_base_new
};
-PyObject* KX_BlenderMaterial::pyattr_get_shader(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_BlenderMaterial::pyattr_get_shader(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_BlenderMaterial* self= static_cast<KX_BlenderMaterial*>(self_v);
return self->PygetShader(NULL, NULL);
}
-PyObject* KX_BlenderMaterial::pyattr_get_materialIndex(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_BlenderMaterial::pyattr_get_materialIndex(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_BlenderMaterial* self= static_cast<KX_BlenderMaterial*>(self_v);
return PyLong_FromSsize_t(self->GetMaterialIndex());
}
-PyObject* KX_BlenderMaterial::pyattr_get_blending(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_BlenderMaterial::pyattr_get_blending(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_BlenderMaterial* self= static_cast<KX_BlenderMaterial*>(self_v);
unsigned int* bfunc = self->getBlendFunc();
@@ -852,7 +857,7 @@ PyObject* KX_BlenderMaterial::pyattr_get_blending(void *self_v, const KX_PYATTRI
int KX_BlenderMaterial::pyattr_set_blending(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value)
{
KX_BlenderMaterial* self= static_cast<KX_BlenderMaterial*>(self_v);
- PyObject* obj = self->PysetBlending(value, NULL);
+ PyObject *obj = self->PysetBlending(value, NULL);
if (obj)
{
Py_DECREF(obj);
@@ -879,7 +884,7 @@ KX_PYMETHODDEF_DOC( KX_BlenderMaterial, getShader , "getShader()")
Py_RETURN_NONE;
}
- if (!GLEW_ARB_shader_objects) {
+ if (!GLEW_ARB_shader_objects) {
if (!mModified)
spit("GLSL not supported");
mModified = true;
@@ -892,6 +897,9 @@ KX_PYMETHODDEF_DOC( KX_BlenderMaterial, getShader , "getShader()")
if (!mShader && !mModified) {
mShader = new BL_Shader();
mModified = true;
+
+ // Using a custom shader, make sure to initialize textures
+ InitTextures();
}
if (mShader && !mShader->GetError()) {
diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.h b/source/gameengine/Ketsji/KX_BlenderMaterial.h
index 3a6dda06320..a69f5c92d19 100644
--- a/source/gameengine/Ketsji/KX_BlenderMaterial.h
+++ b/source/gameengine/Ketsji/KX_BlenderMaterial.h
@@ -106,11 +106,11 @@ public:
#ifdef WITH_PYTHON
// --------------------------------
- virtual PyObject* py_repr(void) { return PyUnicode_From_STR_String(mMaterial->matname); }
+ virtual PyObject *py_repr(void) { return PyUnicode_From_STR_String(mMaterial->matname); }
- static PyObject* pyattr_get_shader(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_materialIndex(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_blending(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_shader(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_materialIndex(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_blending(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_blending(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
KX_PYMETHOD_DOC(KX_BlenderMaterial, getShader);
@@ -138,6 +138,8 @@ private:
bool mModified;
bool mConstructed; // if false, don't clean on exit
+ void InitTextures();
+
void SetBlenderGLSLShader(int layer);
void ActivatGLMaterials( RAS_IRasterizer* rasty )const;
diff --git a/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp b/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp
index abc2460a5ba..20c41b95dd3 100644
--- a/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp
+++ b/source/gameengine/Ketsji/KX_BulletPhysicsController.cpp
@@ -232,6 +232,7 @@ MT_Vector3 KX_BulletPhysicsController::getReactionForce()
}
void KX_BulletPhysicsController::setRigidBody(bool rigid)
{
+ CcdPhysicsController::setRigidBody(rigid);
}
/* This function dynamically adds the collision shape of another controller to
@@ -268,7 +269,7 @@ void KX_BulletPhysicsController::AddCompoundChild(KX_IPhysicsController* chil
rootScale[2] = 1.0/rootScale[2];
// relative scale = child_scale/parent_scale
btVector3 relativeScale = childShape->getLocalScaling()*rootScale;
- btMatrix3x3 rootRotInverse = rootTrans.getBasis().transpose();
+ btMatrix3x3 rootRotInverse = rootTrans.getBasis().transpose();
// relative pos = parent_rot^-1 * ((parent_pos-child_pos)/parent_scale)
btVector3 relativePos = rootRotInverse*((childTrans.getOrigin()-rootTrans.getOrigin())*rootScale);
// relative rot = parent_rot^-1 * child_rot
diff --git a/source/gameengine/Ketsji/KX_Camera.cpp b/source/gameengine/Ketsji/KX_Camera.cpp
index a9602d16430..90912409af1 100644
--- a/source/gameengine/Ketsji/KX_Camera.cpp
+++ b/source/gameengine/Ketsji/KX_Camera.cpp
@@ -67,7 +67,7 @@ KX_Camera::~KX_Camera()
delete m_pSGNode;
m_pSGNode = NULL;
}
-}
+}
CValue* KX_Camera::GetReplica()
@@ -119,7 +119,7 @@ const MT_Point3 KX_Camera::GetCameraLocation() const
//MT_Transform trans;
//trans.setBasis(NodeGetWorldOrientation());
- return NodeGetWorldPosition();
+ return NodeGetWorldPosition();
}
@@ -712,7 +712,7 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_Camera, setOnTop,
Py_RETURN_NONE;
}
-PyObject* KX_Camera::pyattr_get_perspective(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Camera::pyattr_get_perspective(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Camera* self= static_cast<KX_Camera*>(self_v);
return PyBool_FromLong(self->m_camdata.m_perspective);
@@ -732,7 +732,7 @@ int KX_Camera::pyattr_set_perspective(void *self_v, const KX_PYATTRIBUTE_DEF *at
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_Camera::pyattr_get_lens(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Camera::pyattr_get_lens(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Camera* self= static_cast<KX_Camera*>(self_v);
return PyFloat_FromDouble(self->m_camdata.m_lens);
@@ -752,7 +752,7 @@ int KX_Camera::pyattr_set_lens(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef,
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_Camera::pyattr_get_ortho_scale(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Camera::pyattr_get_ortho_scale(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Camera* self= static_cast<KX_Camera*>(self_v);
return PyFloat_FromDouble(self->m_camdata.m_scale);
@@ -772,7 +772,7 @@ int KX_Camera::pyattr_set_ortho_scale(void *self_v, const KX_PYATTRIBUTE_DEF *at
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_Camera::pyattr_get_near(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Camera::pyattr_get_near(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Camera* self= static_cast<KX_Camera*>(self_v);
return PyFloat_FromDouble(self->m_camdata.m_clipstart);
@@ -792,7 +792,7 @@ int KX_Camera::pyattr_set_near(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef,
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_Camera::pyattr_get_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Camera::pyattr_get_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Camera* self= static_cast<KX_Camera*>(self_v);
return PyFloat_FromDouble(self->m_camdata.m_clipend);
@@ -813,7 +813,7 @@ int KX_Camera::pyattr_set_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, P
}
-PyObject* KX_Camera::pyattr_get_use_viewport(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Camera::pyattr_get_use_viewport(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Camera* self= static_cast<KX_Camera*>(self_v);
return PyBool_FromLong(self->GetViewport());
@@ -832,7 +832,7 @@ int KX_Camera::pyattr_set_use_viewport(void *self_v, const KX_PYATTRIBUTE_DEF *a
}
-PyObject* KX_Camera::pyattr_get_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Camera::pyattr_get_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Camera* self= static_cast<KX_Camera*>(self_v);
return PyObjectFrom(self->GetProjectionMatrix());
@@ -849,34 +849,34 @@ int KX_Camera::pyattr_set_projection_matrix(void *self_v, const KX_PYATTRIBUTE_D
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_Camera::pyattr_get_modelview_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Camera::pyattr_get_modelview_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Camera* self= static_cast<KX_Camera*>(self_v);
return PyObjectFrom(self->GetModelviewMatrix());
}
-PyObject* KX_Camera::pyattr_get_camera_to_world(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Camera::pyattr_get_camera_to_world(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Camera* self= static_cast<KX_Camera*>(self_v);
return PyObjectFrom(self->GetCameraToWorld());
}
-PyObject* KX_Camera::pyattr_get_world_to_camera(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Camera::pyattr_get_world_to_camera(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Camera* self= static_cast<KX_Camera*>(self_v);
return PyObjectFrom(self->GetWorldToCamera());
}
-PyObject* KX_Camera::pyattr_get_INSIDE(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Camera::pyattr_get_INSIDE(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{ return PyLong_FromSsize_t(INSIDE); }
-PyObject* KX_Camera::pyattr_get_OUTSIDE(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Camera::pyattr_get_OUTSIDE(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{ return PyLong_FromSsize_t(OUTSIDE); }
-PyObject* KX_Camera::pyattr_get_INTERSECT(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Camera::pyattr_get_INTERSECT(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{ return PyLong_FromSsize_t(INTERSECT); }
-bool ConvertPythonToCamera(PyObject * value, KX_Camera **object, bool py_none_ok, const char *error_prefix)
+bool ConvertPythonToCamera(PyObject *value, KX_Camera **object, bool py_none_ok, const char *error_prefix)
{
if (value==NULL) {
PyErr_Format(PyExc_TypeError, "%s, python pointer NULL, should never happen", error_prefix);
@@ -956,7 +956,7 @@ KX_PYMETHODDEF_DOC_O(KX_Camera, getScreenPosition,
}
}
- GLint viewport[4];
+ const GLint *viewport;
GLdouble win[3];
GLdouble modelmatrix[16];
GLdouble projmatrix[16];
@@ -967,7 +967,7 @@ KX_PYMETHODDEF_DOC_O(KX_Camera, getScreenPosition,
m_modelmatrix.getValue(modelmatrix);
m_projmatrix.getValue(projmatrix);
- glGetIntegerv(GL_VIEWPORT, viewport);
+ viewport = KX_GetActiveEngine()->GetCanvas()->GetViewPort();
gluProject(vect[0], vect[1], vect[2], modelmatrix, projmatrix, viewport, &win[0], &win[1], &win[2]);
@@ -976,7 +976,7 @@ KX_PYMETHODDEF_DOC_O(KX_Camera, getScreenPosition,
vect[1] = 1.0 - vect[1]; //to follow Blender window coordinate system (Top-Down)
- PyObject* ret = PyTuple_New(2);
+ PyObject *ret = PyTuple_New(2);
if (ret) {
PyTuple_SET_ITEM(ret, 0, PyFloat_FromDouble(vect[0]));
PyTuple_SET_ITEM(ret, 1, PyFloat_FromDouble(vect[1]));
@@ -999,7 +999,7 @@ KX_PYMETHODDEF_DOC_VARARGS(KX_Camera, getScreenVect,
MT_Vector3 vect;
MT_Point3 campos, screenpos;
- GLint viewport[4];
+ const GLint *viewport;
GLdouble win[3];
GLdouble modelmatrix[16];
GLdouble projmatrix[16];
@@ -1010,7 +1010,7 @@ KX_PYMETHODDEF_DOC_VARARGS(KX_Camera, getScreenVect,
m_modelmatrix.getValue(modelmatrix);
m_projmatrix.getValue(projmatrix);
- glGetIntegerv(GL_VIEWPORT, viewport);
+ viewport = KX_GetActiveEngine()->GetCanvas()->GetViewPort();
vect[0] = x * viewport[2];
vect[1] = y * viewport[3];
@@ -1040,7 +1040,7 @@ KX_PYMETHODDEF_DOC_VARARGS(KX_Camera, getScreenRay,
if (!PyArg_ParseTuple(args,"ddd|s:getScreenRay",&x,&y,&dist,&propName))
return NULL;
- PyObject* argValue = PyTuple_New(2);
+ PyObject *argValue = PyTuple_New(2);
PyTuple_SET_ITEM(argValue, 0, PyFloat_FromDouble(x));
PyTuple_SET_ITEM(argValue, 1, PyFloat_FromDouble(y));
@@ -1048,7 +1048,9 @@ KX_PYMETHODDEF_DOC_VARARGS(KX_Camera, getScreenRay,
{
Py_DECREF(argValue);
PyErr_SetString(PyExc_TypeError,
- "Error in getScreenRay. Invalid 2D coordinate. Expected a normalized 2D screen coordinate, a distance and an optional property argument");
+ "Error in getScreenRay. Invalid 2D coordinate. "
+ "Expected a normalized 2D screen coordinate, "
+ "a distance and an optional property argument");
return NULL;
}
Py_DECREF(argValue);
@@ -1063,7 +1065,7 @@ KX_PYMETHODDEF_DOC_VARARGS(KX_Camera, getScreenRay,
if (propName)
PyTuple_SET_ITEM(argValue, 2, PyUnicode_FromString(propName));
- PyObject* ret= this->PyrayCastTo(argValue,NULL);
+ PyObject *ret= this->PyrayCastTo(argValue,NULL);
Py_DECREF(argValue);
return ret;
}
diff --git a/source/gameengine/Ketsji/KX_Camera.h b/source/gameengine/Ketsji/KX_Camera.h
index 7481b2eb7f0..d95d10e8384 100644
--- a/source/gameengine/Ketsji/KX_Camera.h
+++ b/source/gameengine/Ketsji/KX_Camera.h
@@ -45,7 +45,7 @@
#ifdef WITH_PYTHON
/* utility conversion function */
-bool ConvertPythonToCamera(PyObject * value, KX_Camera **object, bool py_none_ok, const char *error_prefix);
+bool ConvertPythonToCamera(PyObject *value, KX_Camera **object, bool py_none_ok, const char *error_prefix);
#endif
class KX_Camera : public KX_GameObject
@@ -156,7 +156,7 @@ public:
* instance allocated on the heap. Ownership of the new
* object belongs with the caller.
*/
- virtual CValue*
+ virtual CValue*
GetReplica(
);
virtual void ProcessReplica();
@@ -286,8 +286,8 @@ public:
KX_PYMETHOD_DOC_NOARGS(KX_Camera, getCameraToWorld);
KX_PYMETHOD_DOC_NOARGS(KX_Camera, getWorldToCamera);
- KX_PYMETHOD_DOC_VARARGS(KX_Camera, setViewport);
- KX_PYMETHOD_DOC_NOARGS(KX_Camera, setOnTop);
+ KX_PYMETHOD_DOC_VARARGS(KX_Camera, setViewport);
+ KX_PYMETHOD_DOC_NOARGS(KX_Camera, setOnTop);
KX_PYMETHOD_DOC_O(KX_Camera, getScreenPosition);
KX_PYMETHOD_DOC_VARARGS(KX_Camera, getScreenVect);
diff --git a/source/gameengine/Ketsji/KX_CameraActuator.cpp b/source/gameengine/Ketsji/KX_CameraActuator.cpp
index dfe45b8cfcd..9ca1ec59a0b 100644
--- a/source/gameengine/Ketsji/KX_CameraActuator.cpp
+++ b/source/gameengine/Ketsji/KX_CameraActuator.cpp
@@ -33,6 +33,7 @@
* \ingroup ketsji
*/
+#include "BLI_math_vector.h"
#include "KX_CameraActuator.h"
#include <iostream>
@@ -42,7 +43,6 @@
#include "PyObjectPlus.h"
-
/* ------------------------------------------------------------------------- */
/* Native functions */
/* ------------------------------------------------------------------------- */
@@ -113,34 +113,7 @@ void KX_CameraActuator::Relink(CTR_Map<CTR_HashedPtr, void*> *obj_map)
}
}
-/* three functions copied from blender arith... don't know if there's an equivalent */
-
-static float Kx_Normalize(float *n)
-{
- float d;
-
- d= n[0]*n[0]+n[1]*n[1]+n[2]*n[2];
- /* FLT_EPSILON is too large! A larger value causes normalize errors in a scaled down utah teapot */
- if (d>0.0000000000001) {
- d= sqrt(d);
-
- n[0]/=d;
- n[1]/=d;
- n[2]/=d;
- } else {
- n[0]=n[1]=n[2]= 0.0;
- d= 0.0;
- }
- return d;
-}
-
-static void Kx_Crossf(float *c, float *a, float *b)
-{
- c[0] = a[1] * b[2] - a[2] * b[1];
- c[1] = a[2] * b[0] - a[0] * b[2];
- c[2] = a[0] * b[1] - a[1] * b[0];
-}
-
+/* copied from blender BLI_math ... don't know if there's an equivalent */
static void Kx_VecUpMat3(float vec[3], float mat[][3], short axis)
{
@@ -184,7 +157,7 @@ static void Kx_VecUpMat3(float vec[3], float mat[][3], short axis)
mat[coz][0]= vec[0];
mat[coz][1]= vec[1];
mat[coz][2]= vec[2];
- if (Kx_Normalize((float *)mat[coz]) == 0.f) {
+ if (normalize_v3((float *)mat[coz]) == 0.f) {
/* this is a very abnormal situation: the camera has reach the object center exactly
* We will choose a completely arbitrary direction */
mat[coz][0] = 1.0f;
@@ -192,20 +165,19 @@ static void Kx_VecUpMat3(float vec[3], float mat[][3], short axis)
mat[coz][2] = 0.0f;
}
- inp= mat[coz][2];
- mat[coy][0]= - inp*mat[coz][0];
- mat[coy][1]= - inp*mat[coz][1];
- mat[coy][2]= 1.0 - inp*mat[coz][2];
+ inp = mat[coz][2];
+ mat[coy][0] = - inp * mat[coz][0];
+ mat[coy][1] = - inp * mat[coz][1];
+ mat[coy][2] = 1.0f - inp * mat[coz][2];
- if (Kx_Normalize((float *)mat[coy]) == 0.f) {
+ if (normalize_v3((float *)mat[coy]) == 0.f) {
/* the camera is vertical, chose the y axis arbitrary */
mat[coy][0] = 0.f;
mat[coy][1] = 1.f;
mat[coy][2] = 0.f;
}
- Kx_Crossf(mat[cox], mat[coy], mat[coz]);
-
+ cross_v3_v3v3(mat[cox], mat[coy], mat[coz]);
}
bool KX_CameraActuator::Update(double curtime, bool frame)
@@ -260,7 +232,7 @@ bool KX_CameraActuator::Update(double curtime, bool frame)
/* C2: blender test_visibility function. Can this be a ray-test? */
/* C3: fixed height */
- from[2] = (15.0*from[2] + lookat[2] + m_height)/16.0;
+ from[2] = (15.0f * from[2] + lookat[2] + m_height) / 16.0f;
/* C4: camera behind actor */
@@ -310,22 +282,22 @@ bool KX_CameraActuator::Update(double curtime, bool frame)
break;
}
- inp= fp1[0]*fp2[0] + fp1[1]*fp2[1] + fp1[2]*fp2[2];
- fac= (-1.0 + inp) * m_damping;
+ inp = fp1[0]*fp2[0] + fp1[1]*fp2[1] + fp1[2]*fp2[2];
+ fac = (-1.0f + inp) * m_damping;
from[0]+= fac*fp1[0];
from[1]+= fac*fp1[1];
from[2]+= fac*fp1[2];
/* alleen alstie ervoor ligt: cross testen en loodrechte bijtellen */
- if (inp<0.0) {
- if (fp1[0]*fp2[1] - fp1[1]*fp2[0] > 0.0) {
- from[0]-= fac*fp1[1];
- from[1]+= fac*fp1[0];
+ if (inp < 0.0f) {
+ if (fp1[0] * fp2[1] - fp1[1] * fp2[0] > 0.0f) {
+ from[0] -= fac * fp1[1];
+ from[1] += fac * fp1[0];
}
else {
- from[0]+= fac*fp1[1];
- from[1]-= fac*fp1[0];
+ from[0] += fac * fp1[1];
+ from[1] -= fac * fp1[0];
}
}
@@ -334,17 +306,17 @@ bool KX_CameraActuator::Update(double curtime, bool frame)
rc[0]= (lookat[0]-from[0]);
rc[1]= (lookat[1]-from[1]);
rc[2]= (lookat[2]-from[2]);
- distsq= rc[0]*rc[0] + rc[1]*rc[1] + rc[2]*rc[2];
+ distsq = rc[0]*rc[0] + rc[1]*rc[1] + rc[2]*rc[2];
if (distsq > maxdistsq) {
- distsq = 0.15*(distsq-maxdistsq)/distsq;
+ distsq = 0.15f * (distsq - maxdistsq) / distsq;
from[0] += distsq*rc[0];
from[1] += distsq*rc[1];
from[2] += distsq*rc[2];
}
else if (distsq < mindistsq) {
- distsq = 0.15*(mindistsq-distsq)/mindistsq;
+ distsq = 0.15f * (mindistsq - distsq) / mindistsq;
from[0] -= distsq*rc[0];
from[1] -= distsq*rc[1];
@@ -422,7 +394,7 @@ PyAttributeDef KX_CameraActuator::Attributes[] = {
{NULL}
};
-PyObject* KX_CameraActuator::pyattr_get_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_CameraActuator::pyattr_get_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_CameraActuator* self= static_cast<KX_CameraActuator*>(self_v);
if (self->m_ob==NULL)
@@ -440,7 +412,7 @@ int KX_CameraActuator::pyattr_set_object(void *self_v, const KX_PYATTRIBUTE_DEF
return PY_SET_ATTR_FAIL; // ConvertPythonToGameObject sets the error
if (self->m_ob)
- self->m_ob->UnregisterActuator(self);
+ self->m_ob->UnregisterActuator(self);
if ((self->m_ob = (SCA_IObject*)gameobj))
self->m_ob->RegisterActuator(self);
diff --git a/source/gameengine/Ketsji/KX_CameraIpoSGController.h b/source/gameengine/Ketsji/KX_CameraIpoSGController.h
index 06058760332..9b7c1eddf00 100644
--- a/source/gameengine/Ketsji/KX_CameraIpoSGController.h
+++ b/source/gameengine/Ketsji/KX_CameraIpoSGController.h
@@ -77,13 +77,13 @@ public:
m_ipotime = time;
m_modified = true;
}
- void SetModifyLens(bool modify) {
+ void SetModifyLens(bool modify) {
m_modify_lens = modify;
}
- void SetModifyClipEnd(bool modify) {
+ void SetModifyClipEnd(bool modify) {
m_modify_clipend = modify;
}
- void SetModifyClipStart(bool modify) {
+ void SetModifyClipStart(bool modify) {
m_modify_clipstart = modify;
}
void AddInterpolator(KX_IInterpolator* interp);
diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
index 322d6e60071..3caa4d35565 100644
--- a/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
+++ b/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
@@ -166,7 +166,7 @@ bool KX_ConstraintActuator::NeedRayCast(KX_ClientObjectInfo* client)
bool KX_ConstraintActuator::Update(double curtime, bool frame)
{
- bool result = false;
+ bool result = false;
bool bNegativeEvent = IsNegativeEvent();
RemoveAllEvents();
@@ -462,7 +462,7 @@ bool KX_ConstraintActuator::Update(double curtime, bool frame)
// we expect a hit object
if (!m_hitObject)
result = false;
- if (result)
+ if (result)
{
MT_Vector3 newnormal = callback.m_hitNormal;
// compute new position & orientation
@@ -619,7 +619,7 @@ int KX_ConstraintActuator::pyattr_check_direction(void *self, const struct KX_PY
return 1;
}
act->m_refDirVector = dir/len;
- return 0;
+ return 0;
}
#endif
diff --git a/source/gameengine/Ketsji/KX_ConstraintActuator.h b/source/gameengine/Ketsji/KX_ConstraintActuator.h
index f491aedba74..786e4ff53d2 100644
--- a/source/gameengine/Ketsji/KX_ConstraintActuator.h
+++ b/source/gameengine/Ketsji/KX_ConstraintActuator.h
@@ -43,7 +43,7 @@ class KX_GameObject;
class KX_ConstraintActuator : public SCA_IActuator
{
Py_Header
-protected:
+protected:
// Damp time (int),
int m_posDampTime;
int m_rotDampTime;
diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
index df6b08974dd..5727ed29e67 100644
--- a/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
+++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
@@ -50,13 +50,13 @@ KX_ConstraintWrapper::~KX_ConstraintWrapper()
#ifdef WITH_PYTHON
-PyObject* KX_ConstraintWrapper::PyGetConstraintId()
+PyObject *KX_ConstraintWrapper::PyGetConstraintId()
{
return PyLong_FromSsize_t(m_constraintId);
}
-PyObject* KX_ConstraintWrapper::PyGetParam(PyObject* args, PyObject* kwds)
+PyObject *KX_ConstraintWrapper::PyGetParam(PyObject *args, PyObject *kwds)
{
int dof;
float value;
@@ -69,7 +69,7 @@ PyObject* KX_ConstraintWrapper::PyGetParam(PyObject* args, PyObject* kwds)
}
-PyObject* KX_ConstraintWrapper::PySetParam(PyObject* args, PyObject* kwds)
+PyObject *KX_ConstraintWrapper::PySetParam(PyObject *args, PyObject *kwds)
{
int dof;
float minLimit,maxLimit;
@@ -117,7 +117,7 @@ PyAttributeDef KX_ConstraintWrapper::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* KX_ConstraintWrapper::pyattr_get_constraintId(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_ConstraintWrapper::pyattr_get_constraintId(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_ConstraintWrapper* self= static_cast<KX_ConstraintWrapper*>(self_v);
return self->PyGetConstraintId();
diff --git a/source/gameengine/Ketsji/KX_ConstraintWrapper.h b/source/gameengine/Ketsji/KX_ConstraintWrapper.h
index a92ae83e7f0..dbc3571cad6 100644
--- a/source/gameengine/Ketsji/KX_ConstraintWrapper.h
+++ b/source/gameengine/Ketsji/KX_ConstraintWrapper.h
@@ -48,7 +48,7 @@ public:
KX_PYMETHOD(KX_ConstraintWrapper,SetParam);
KX_PYMETHOD(KX_ConstraintWrapper,GetParam);
- static PyObject* pyattr_get_constraintId(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_constraintId(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
#endif
private:
diff --git a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
index 227ca39281f..776953206fe 100644
--- a/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
+++ b/source/gameengine/Ketsji/KX_ConvertPhysicsObjects.cpp
@@ -118,6 +118,12 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj,
ci.m_MotionState = motionstate;
ci.m_gravity = btVector3(0,0,0);
+ ci.m_linearFactor = btVector3(objprop->m_lockXaxis? 0 : 1,
+ objprop->m_lockYaxis? 0 : 1,
+ objprop->m_lockZaxis? 0 : 1);
+ ci.m_angularFactor = btVector3(objprop->m_lockXRotaxis? 0 : 1,
+ objprop->m_lockYRotaxis? 0 : 1,
+ objprop->m_lockZRotaxis? 0 : 1);
ci.m_localInertiaTensor =btVector3(0,0,0);
ci.m_mass = objprop->m_dyna ? shapeprops->m_mass : 0.f;
ci.m_clamp_vel_min = shapeprops->m_clamp_vel_min;
@@ -276,7 +282,7 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj,
relativeRot.getValue(rot);
shapeInfo->m_childTrans.getBasis().setFromOpenGLSubMatrix(rot);
- parentShapeInfo->AddShape(shapeInfo);
+ parentShapeInfo->AddShape(shapeInfo);
compoundShape->addChildShape(shapeInfo->m_childTrans,bm);
//do some recalc?
//recalc inertia for rigidbody
@@ -433,7 +439,7 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj,
{
env->addCcdPhysicsController( physicscontroller);
}
- physicscontroller->setNewClientInfo(gameobj->getClientInfo());
+ physicscontroller->setNewClientInfo(gameobj->getClientInfo());
{
btRigidBody* rbody = physicscontroller->GetRigidBody();
@@ -441,16 +447,8 @@ void KX_ConvertBulletObject( class KX_GameObject* gameobj,
{
if (objprop->m_angular_rigidbody)
{
- btVector3 linearFactor(
- objprop->m_lockXaxis? 0 : 1,
- objprop->m_lockYaxis? 0 : 1,
- objprop->m_lockZaxis? 0 : 1);
- btVector3 angularFactor(
- objprop->m_lockXRotaxis? 0 : 1,
- objprop->m_lockYRotaxis? 0 : 1,
- objprop->m_lockZRotaxis? 0 : 1);
- rbody->setLinearFactor(linearFactor);
- rbody->setAngularFactor(angularFactor);
+ rbody->setLinearFactor(ci.m_linearFactor);
+ rbody->setAngularFactor(ci.m_angularFactor);
}
if (rbody && objprop->m_disableSleeping)
diff --git a/source/gameengine/Ketsji/KX_Dome.cpp b/source/gameengine/Ketsji/KX_Dome.cpp
index d87bb937b41..87b0cfc1269 100644
--- a/source/gameengine/Ketsji/KX_Dome.cpp
+++ b/source/gameengine/Ketsji/KX_Dome.cpp
@@ -90,8 +90,7 @@ KX_Dome::KX_Dome (
}
//setting the viewport size
- GLuint viewport[4]={0};
- glGetIntegerv(GL_VIEWPORT,(GLint *)viewport);
+ const int *viewport = m_canvas->GetViewPort();
SetViewPort(viewport);
@@ -178,7 +177,7 @@ KX_Dome::~KX_Dome (void)
glDeleteLists(dlistId, (GLsizei) m_numimages);
}
-void KX_Dome::SetViewPort(GLuint viewport[4])
+void KX_Dome::SetViewPort(const int viewport[4])
{
if (canvaswidth != m_viewport.GetWidth() || canvasheight != m_viewport.GetHeight())
{
@@ -592,7 +591,7 @@ void KX_Dome::CreateMeshDome180(void)
cubebottom[0].u[2] = 0.0;
cubebottom[0].v[2] = 0.0;
- nfacesbottom = 1;
+ nfacesbottom = 1;
/* Left face - two triangles */
@@ -682,12 +681,12 @@ void KX_Dome::CreateMeshDome180(void)
cubetop.resize(4*nfacestop);
SplitFace(cubetop,&nfacestop);
cubebottom.resize(4*nfacesbottom);
- SplitFace(cubebottom,&nfacesbottom);
+ SplitFace(cubebottom,&nfacesbottom);
cubeleft.resize(4*nfacesleft);
SplitFace(cubeleft,&nfacesleft);
cuberight.resize(4*nfacesright);
SplitFace(cuberight,&nfacesright);
- }
+ }
// Turn into a hemisphere
for (j=0;j<3;j++) {
@@ -748,10 +747,10 @@ void KX_Dome::CreateMeshDome250(void)
* Once we take the tangent of that angle, you have the verts coordinate corresponding to the verts on the side faces.
* Then we need to multiply it by sqrt(2.0) to get the coordinate of the verts on the diagonal of the original cube.
*/
- verts_height = tan((rad_ang/2) - (MT_PI/2))*M_SQRT2;
+ verts_height = tanf((rad_ang / 2.0f) - (float)(MT_PI / 2.0)) * (float)M_SQRT2;
- uv_height = uv_ratio * ((verts_height/2) + 0.5);
- uv_base = uv_ratio * (1.0 - ((verts_height/2) + 0.5));
+ uv_height = uv_ratio * ( (verts_height / 2.0f) + 0.5f);
+ uv_base = uv_ratio * (1.0 - ((verts_height / 2.0f) + 0.5f));
//creating faces for the env mapcube 180deg Dome
// Front Face - 2 triangles
@@ -763,13 +762,13 @@ void KX_Dome::CreateMeshDome250(void)
cubefront[0].verts[1][0] = 1.0;
cubefront[0].verts[1][1] = 1.0;
- cubefront[0].verts[1][2] = 1.0;
+ cubefront[0].verts[1][2] = 1.0;
cubefront[0].u[1] = uv_ratio;
cubefront[0].v[1] = uv_ratio;
cubefront[0].verts[2][0] =-1.0;
cubefront[0].verts[2][1] = 1.0;
- cubefront[0].verts[2][2] = 1.0;
+ cubefront[0].verts[2][2] = 1.0;
cubefront[0].u[2] = 0.0;
cubefront[0].v[2] = uv_ratio;
@@ -782,13 +781,13 @@ void KX_Dome::CreateMeshDome250(void)
cubefront[1].verts[1][0] =-1.0;
cubefront[1].verts[1][1] = 1.0;
- cubefront[1].verts[1][2] =-1.0;
+ cubefront[1].verts[1][2] =-1.0;
cubefront[1].u[1] = 0.0;
cubefront[1].v[1] = 0.0;
cubefront[1].verts[2][0] = 1.0;
cubefront[1].verts[2][1] = 1.0;
- cubefront[1].verts[2][2] =-1.0;
+ cubefront[1].verts[2][2] =-1.0;
cubefront[1].u[2] = uv_ratio;
cubefront[1].v[2] = 0.0;
@@ -803,13 +802,13 @@ void KX_Dome::CreateMeshDome250(void)
cubeleft[0].verts[1][0] =-1.0;
cubeleft[0].verts[1][1] =-verts_height;
- cubeleft[0].verts[1][2] = 1.0;
+ cubeleft[0].verts[1][2] = 1.0;
cubeleft[0].u[1] = uv_base;
cubeleft[0].v[1] = uv_ratio;
cubeleft[0].verts[2][0] =-1.0;
cubeleft[0].verts[2][1] =-verts_height;
- cubeleft[0].verts[2][2] =-1.0;
+ cubeleft[0].verts[2][2] =-1.0;
cubeleft[0].u[2] = uv_base;
cubeleft[0].v[2] = 0.0;
@@ -822,13 +821,13 @@ void KX_Dome::CreateMeshDome250(void)
cubeleft[1].verts[1][0] =-1.0;
cubeleft[1].verts[1][1] = 1.0;
- cubeleft[1].verts[1][2] =-1.0;
+ cubeleft[1].verts[1][2] =-1.0;
cubeleft[1].u[1] = uv_ratio;
cubeleft[1].v[1] = 0.0;
cubeleft[1].verts[2][0] =-1.0;
cubeleft[1].verts[2][1] = 1.0;
- cubeleft[1].verts[2][2] = 1.0;
+ cubeleft[1].verts[2][2] = 1.0;
cubeleft[1].u[2] = uv_ratio;
cubeleft[1].v[2] = uv_ratio;
@@ -843,13 +842,13 @@ void KX_Dome::CreateMeshDome250(void)
cuberight[0].verts[1][0] = 1.0;
cuberight[0].verts[1][1] =-verts_height;
- cuberight[0].verts[1][2] =-1.0;
+ cuberight[0].verts[1][2] =-1.0;
cuberight[0].u[1] = uv_height;
cuberight[0].v[1] = 0.0;
cuberight[0].verts[2][0] = 1.0;
cuberight[0].verts[2][1] =-verts_height;
- cuberight[0].verts[2][2] = 1.0;
+ cuberight[0].verts[2][2] = 1.0;
cuberight[0].u[2] = uv_height;
cuberight[0].v[2] = uv_ratio;
@@ -862,13 +861,13 @@ void KX_Dome::CreateMeshDome250(void)
cuberight[1].verts[1][0] = 1.0;
cuberight[1].verts[1][1] = 1.0;
- cuberight[1].verts[1][2] = 1.0;
+ cuberight[1].verts[1][2] = 1.0;
cuberight[1].u[1] = 0.0;
cuberight[1].v[1] = uv_ratio;
cuberight[1].verts[2][0] = 1.0;
cuberight[1].verts[2][1] = 1.0;
- cuberight[1].verts[2][2] =-1.0;
+ cuberight[1].verts[2][2] =-1.0;
cuberight[1].u[2] = 0.0;
cuberight[1].v[2] = 0.0;
@@ -883,13 +882,13 @@ void KX_Dome::CreateMeshDome250(void)
cubetop[0].verts[1][0] = 1.0;
cubetop[0].verts[1][1] =-verts_height;
- cubetop[0].verts[1][2] = 1.0;
+ cubetop[0].verts[1][2] = 1.0;
cubetop[0].u[1] = uv_ratio;
cubetop[0].v[1] = uv_height;
cubetop[0].verts[2][0] =-1.0;
cubetop[0].verts[2][1] =-verts_height;
- cubetop[0].verts[2][2] = 1.0;
+ cubetop[0].verts[2][2] = 1.0;
cubetop[0].u[2] = 0.0;
cubetop[0].v[2] = uv_height;
@@ -902,13 +901,13 @@ void KX_Dome::CreateMeshDome250(void)
cubetop[1].verts[1][0] =-1.0;
cubetop[1].verts[1][1] = 1.0;
- cubetop[1].verts[1][2] = 1.0;
+ cubetop[1].verts[1][2] = 1.0;
cubetop[1].u[1] = 0.0;
cubetop[1].v[1] = 0.0;
cubetop[1].verts[2][0] = 1.0;
cubetop[1].verts[2][1] = 1.0;
- cubetop[1].verts[2][2] = 1.0;
+ cubetop[1].verts[2][2] = 1.0;
cubetop[1].u[2] = uv_ratio;
cubetop[1].v[2] = 0.0;
@@ -923,13 +922,13 @@ void KX_Dome::CreateMeshDome250(void)
cubebottom[0].verts[1][0] = 1.0;
cubebottom[0].verts[1][1] = 1.0;
- cubebottom[0].verts[1][2] =-1.0;
+ cubebottom[0].verts[1][2] =-1.0;
cubebottom[0].u[1] = uv_ratio;
cubebottom[0].v[1] = uv_ratio;
cubebottom[0].verts[2][0] =-1.0;
cubebottom[0].verts[2][1] = 1.0;
- cubebottom[0].verts[2][2] =-1.0;
+ cubebottom[0].verts[2][2] =-1.0;
cubebottom[0].u[2] = 0.0;
cubebottom[0].v[2] = uv_ratio;
@@ -942,13 +941,13 @@ void KX_Dome::CreateMeshDome250(void)
cubebottom[1].verts[1][0] =-1.0;
cubebottom[1].verts[1][1] =-verts_height;
- cubebottom[1].verts[1][2] =-1.0;
+ cubebottom[1].verts[1][2] =-1.0;
cubebottom[1].u[1] = 0.0;
cubebottom[1].v[1] = uv_base;
cubebottom[1].verts[2][0] = 1.0;
cubebottom[1].verts[2][1] =-verts_height;
- cubebottom[1].verts[2][2] =-1.0;
+ cubebottom[1].verts[2][2] =-1.0;
cubebottom[1].u[2] = uv_ratio;
cubebottom[1].v[2] = uv_base;
@@ -963,7 +962,7 @@ void KX_Dome::CreateMeshDome250(void)
cubetop.resize(4*nfacestop);
SplitFace(cubetop,&nfacestop);
cubebottom.resize(4*nfacesbottom);
- SplitFace(cubebottom,&nfacesbottom);
+ SplitFace(cubebottom,&nfacesbottom);
cubeleft.resize(4*nfacesleft);
SplitFace(cubeleft,&nfacesleft);
cuberight.resize(4*nfacesright);
@@ -986,13 +985,13 @@ void KX_Dome::CreateMeshDome250(void)
//flatten onto xz plane
for (i=0;i<nfacesfront;i++)
- FlattenDome(cubefront[i].verts);
+ FlattenDome(cubefront[i].verts);
for (i=0;i<nfacestop;i++)
FlattenDome(cubetop[i].verts);
for (i=0;i<nfacesbottom;i++)
FlattenDome(cubebottom[i].verts);
for (i=0;i<nfacesleft;i++)
- FlattenDome(cubeleft[i].verts);
+ FlattenDome(cubeleft[i].verts);
for (i=0;i<nfacesright;i++)
FlattenDome(cuberight[i].verts);
}
@@ -1325,7 +1324,7 @@ void KX_Dome::FlattenDome(MT_Vector3 verts[3])
for (int i=0;i<3;i++) {
r = atan2(sqrt(verts[i][0]*verts[i][0] + verts[i][2]*verts[i][2]), verts[i][1]);
- r /= m_radangle/2;
+ r /= (double)this->m_radangle / 2.0;
phi = atan2(verts[i][2], verts[i][0]);
@@ -1417,7 +1416,7 @@ void KX_Dome::SplitFace(vector <DomeFace>& face, int *nfaces)
face[n2+2].u[2] = (face[i].u[2] + face[i].u[0]) /2;
face[n2+2].v[0] = (face[i].v[0] + face[i].v[1]) /2;
face[n2+2].v[1] = (face[i].v[1] + face[i].v[2]) /2;
- face[n2+2].v[2] = (face[i].v[2] + face[i].v[0]) /2;
+ face[n2+2].v[2] = (face[i].v[2] + face[i].v[0]) /2;
//face[i].verts[0] = face[i].verts[0];
face[i].verts[1] = (face[i].verts[0] + face[i].verts[1]) /2;
@@ -1427,7 +1426,7 @@ void KX_Dome::SplitFace(vector <DomeFace>& face, int *nfaces)
face[i].u[2] = (face[i].u[0] + face[i].u[2]) /2;
//face[i].v[0] = face[i].v[0];
face[i].v[1] = (face[i].v[0] + face[i].v[1]) /2;
- face[i].v[2] = (face[i].v[0] + face[i].v[2]) /2;
+ face[i].v[2] = (face[i].v[0] + face[i].v[2]) /2;
n2 += 3; // number of faces
}
@@ -1818,13 +1817,13 @@ void KX_Dome::DrawDomeFisheye(void)
else if (m_mode == DOME_TRUNCATED_FRONT)
{
ortho_width = 1.0;
- ortho_height = 2 * ((float)can_height / can_width) - 1.0;
+ ortho_height = 2.0f * ((float)can_height / can_width) - 1.0f;
glOrtho((-ortho_width), ortho_width, (-ortho_height), ortho_width, -20.0, 10.0);
}
else { //m_mode == DOME_TRUNCATED_REAR
ortho_width = 1.0;
- ortho_height = 2 * ((float)can_height / can_width) - 1.0;
+ ortho_height = 2.0f * ((float)can_height / can_width) - 1.0f;
glOrtho((-ortho_width), ortho_width, (-ortho_width), ortho_height, -20.0, 10.0);
}
@@ -1858,7 +1857,7 @@ void KX_Dome::DrawDomeFisheye(void)
glBindTexture(GL_TEXTURE_2D, domefacesId[0]);
GLDrawTriangles(cubetop, nfacestop);
- // bottom triangle
+ // bottom triangle
glBindTexture(GL_TEXTURE_2D, domefacesId[1]);
GLDrawTriangles(cubebottom, nfacesbottom);
@@ -1905,8 +1904,8 @@ void KX_Dome::DrawPanorama(void)
ortho_height = (float)can_height/can_width;
}
else {
- ortho_width = (float)can_width/can_height * 0.5;
- ortho_height = 0.5;
+ ortho_width = (float)can_width / can_height * 0.5f;
+ ortho_height = 0.5f;
}
glOrtho((-ortho_width), ortho_width, (-ortho_height), ortho_height, -20.0, 10.0);
diff --git a/source/gameengine/Ketsji/KX_Dome.h b/source/gameengine/Ketsji/KX_Dome.h
index 24177af5d60..17eec3a5fcb 100644
--- a/source/gameengine/Ketsji/KX_Dome.h
+++ b/source/gameengine/Ketsji/KX_Dome.h
@@ -119,7 +119,7 @@ public:
void RenderDomeFrame(KX_Scene* scene, KX_Camera* cam, int i);
void BindImages(int i);
- void SetViewPort(GLuint viewport[4]);
+ void SetViewPort(const int viewport[4]);
void CalculateFrustum(KX_Camera* cam);
void RotateCamera(KX_Camera* cam, int i);
diff --git a/source/gameengine/Ketsji/KX_FontObject.cpp b/source/gameengine/Ketsji/KX_FontObject.cpp
index 308154d8ebc..9f6ef894f12 100644
--- a/source/gameengine/Ketsji/KX_FontObject.cpp
+++ b/source/gameengine/Ketsji/KX_FontObject.cpp
@@ -52,7 +52,7 @@ extern "C" {
/* proptotype */
int GetFontId(VFont *font);
-std::vector<STR_String> split_string(STR_String str)
+static std::vector<STR_String> split_string(STR_String str)
{
std::vector<STR_String> text = std::vector<STR_String>();
@@ -73,10 +73,10 @@ std::vector<STR_String> split_string(STR_String str)
return text;
}
-KX_FontObject::KX_FontObject( void* sgReplicationInfo,
- SG_Callbacks callbacks,
- RAS_IRenderTools* rendertools,
- Object *ob):
+KX_FontObject::KX_FontObject(void* sgReplicationInfo,
+ SG_Callbacks callbacks,
+ RAS_IRenderTools* rendertools,
+ Object *ob):
KX_GameObject(sgReplicationInfo, callbacks),
m_object(ob),
m_dpi(72),
@@ -117,25 +117,25 @@ void KX_FontObject::ProcessReplica()
KX_GetActiveScene()->AddFont(this);
}
-int GetFontId (VFont *font)
+int GetFontId (VFont *vfont)
{
PackedFile *packedfile=NULL;
int fontid = -1;
- if (font->packedfile) {
- packedfile= font->packedfile;
- fontid= BLF_load_mem(font->name, (unsigned char*)packedfile->data, packedfile->size);
+ if (vfont->packedfile) {
+ packedfile= vfont->packedfile;
+ fontid= BLF_load_mem(vfont->name, (unsigned char*)packedfile->data, packedfile->size);
if (fontid == -1) {
- printf("ERROR: packed font \"%s\" could not be loaded.\n", font->name);
+ printf("ERROR: packed font \"%s\" could not be loaded.\n", vfont->name);
fontid = BLF_load("default");
}
return fontid;
}
- /* once we have packed working we can load the FO_BUILTIN_NAME font */
- const char *filepath = font->name;
- if (strcmp(FO_BUILTIN_NAME, filepath) == 0) {
+ /* once we have packed working we can load the builtin font */
+ const char *filepath = vfont->name;
+ if (BKE_vfont_is_builtin(vfont)) {
fontid = BLF_load("default");
/* XXX the following code is supposed to work (after you add get_builtin_packedfile to BKE_font.h )
@@ -252,7 +252,7 @@ PyAttributeDef KX_FontObject::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* KX_FontObject::pyattr_get_text(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_FontObject::pyattr_get_text(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_FontObject* self= static_cast<KX_FontObject*>(self_v);
STR_String str = STR_String();
diff --git a/source/gameengine/Ketsji/KX_GameActuator.h b/source/gameengine/Ketsji/KX_GameActuator.h
index 8356bc1068b..0c1c4f0c277 100644
--- a/source/gameengine/Ketsji/KX_GameActuator.h
+++ b/source/gameengine/Ketsji/KX_GameActuator.h
@@ -1,29 +1,29 @@
-//
-// ***** BEGIN GPL LICENSE BLOCK *****
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//
-// The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-// All rights reserved.
-//
-// The Original Code is: all of this file.
-//
-// Contributor(s): none yet.
-//
-// ***** END GPL LICENSE BLOCK *****
-//
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
/** \file KX_GameActuator.h
* \ingroup ketsji
diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp
index c5145ef2171..3cfb670d227 100644
--- a/source/gameengine/Ketsji/KX_GameObject.cpp
+++ b/source/gameengine/Ketsji/KX_GameObject.cpp
@@ -109,6 +109,8 @@ KX_GameObject::KX_GameObject(
m_xray(false),
m_pHitObject(NULL),
m_pObstacleSimulation(NULL),
+ m_pInstanceObjects(NULL),
+ m_pDupliGroupObject(NULL),
m_actionManager(NULL),
m_isDeformable(false)
#ifdef WITH_PYTHON
@@ -168,6 +170,16 @@ KX_GameObject::~KX_GameObject()
KX_GetActiveScene()->RemoveAnimatedObject(this);
delete m_actionManager;
}
+
+ if (m_pDupliGroupObject)
+ {
+ m_pDupliGroupObject->Release();
+ }
+
+ if (m_pInstanceObjects)
+ {
+ m_pInstanceObjects->Release();
+ }
#ifdef WITH_PYTHON
if (m_attr_dict) {
PyDict_Clear(m_attr_dict); /* in case of circular refs or other weird cases */
@@ -229,6 +241,46 @@ KX_IPhysicsController* KX_GameObject::GetPhysicsController()
return m_pPhysicsController1;
}
+KX_GameObject* KX_GameObject::GetDupliGroupObject()
+{
+ return m_pDupliGroupObject;
+}
+
+CListValue* KX_GameObject::GetInstanceObjects()
+{
+ return m_pInstanceObjects;
+}
+
+void KX_GameObject::AddInstanceObjects(KX_GameObject* obj)
+{
+ if(!m_pInstanceObjects)
+ m_pInstanceObjects = new CListValue();
+
+ obj->AddRef();
+ m_pInstanceObjects->Add(obj);
+}
+
+void KX_GameObject::RemoveInstanceObject(KX_GameObject* obj)
+{
+ assert(m_pInstanceObjects);
+ m_pInstanceObjects->RemoveValue(obj);
+ obj->Release();
+}
+
+void KX_GameObject::RemoveDupliGroupObject()
+{
+ if(m_pDupliGroupObject) {
+ m_pDupliGroupObject->Release();
+ m_pDupliGroupObject = NULL;
+ }
+}
+
+void KX_GameObject::SetDupliGroupObject(KX_GameObject* obj)
+{
+ obj->AddRef();
+ m_pDupliGroupObject = obj;
+}
+
KX_GameObject* KX_GameObject::GetParent()
{
KX_GameObject* result = NULL;
@@ -261,12 +313,12 @@ void KX_GameObject::SetParent(KX_Scene *scene, KX_GameObject* obj, bool addToCom
// Make sure the objects have some scale
MT_Vector3 scale1 = NodeGetWorldScaling();
MT_Vector3 scale2 = obj->NodeGetWorldScaling();
- if (fabs(scale2[0]) < FLT_EPSILON ||
- fabs(scale2[1]) < FLT_EPSILON ||
- fabs(scale2[2]) < FLT_EPSILON ||
- fabs(scale1[0]) < FLT_EPSILON ||
- fabs(scale1[1]) < FLT_EPSILON ||
- fabs(scale1[2]) < FLT_EPSILON) { return; }
+ if (fabs(scale2[0]) < (MT_Scalar)FLT_EPSILON ||
+ fabs(scale2[1]) < (MT_Scalar)FLT_EPSILON ||
+ fabs(scale2[2]) < (MT_Scalar)FLT_EPSILON ||
+ fabs(scale1[0]) < (MT_Scalar)FLT_EPSILON ||
+ fabs(scale1[1]) < (MT_Scalar)FLT_EPSILON ||
+ fabs(scale1[2]) < (MT_Scalar)FLT_EPSILON) { return; }
// Remove us from our old parent and set our new parent
RemoveParent(scene);
@@ -362,7 +414,7 @@ BL_ActionManager* KX_GameObject::GetActionManager()
{
// We only want to create an action manager if we need it
if (!m_actionManager)
- {
+ {
KX_GetActiveScene()->AddAnimatedObject(this);
m_actionManager = new BL_ActionManager(this);
}
@@ -690,7 +742,7 @@ void KX_GameObject::SynchronizeTransformFunc(SG_IObject* node, void* gameobj, vo
void KX_GameObject::SetDebugColor(unsigned int bgra)
{
for (size_t i=0;i<m_meshes.size();i++)
- m_meshes[i]->DebugColor(bgra);
+ m_meshes[i]->DebugColor(bgra);
}
@@ -701,8 +753,8 @@ void KX_GameObject::ResetDebugColor()
}
void KX_GameObject::InitIPO(bool ipo_as_force,
- bool ipo_add,
- bool ipo_local)
+ bool ipo_add,
+ bool ipo_local)
{
SGControllerList::iterator it = GetSGNode()->GetSGControllerList().begin();
@@ -931,7 +983,7 @@ void KX_GameObject::AlignAxisToVect(const MT_Vector3& dir, int axis, float fac)
return;
}
- if (fac<=0.0) {
+ if (fac <= 0.0f) {
return;
}
@@ -939,15 +991,15 @@ void KX_GameObject::AlignAxisToVect(const MT_Vector3& dir, int axis, float fac)
vect /= len;
orimat = GetSGNode()->GetWorldOrientation();
switch (axis)
- {
+ {
case 0: //x axis
ori.setValue(orimat[0][2], orimat[1][2], orimat[2][2]); //pivot axis
if (MT_abs(vect.dot(ori)) > 1.0-3.0*MT_EPSILON) //is the vector parallel to the pivot?
ori.setValue(orimat[0][1], orimat[1][1], orimat[2][1]); //change the pivot!
- if (fac == 1.0) {
+ if (fac == 1.0f) {
x = vect;
} else {
- x = (vect * fac) + ((orimat * MT_Vector3(1.0, 0.0, 0.0)) * (1-fac));
+ x = (vect * fac) + ((orimat * MT_Vector3(1.0, 0.0, 0.0)) * (1.0f - fac));
len = x.length();
if (MT_fuzzyZero(len)) x = vect;
else x /= len;
@@ -959,10 +1011,10 @@ void KX_GameObject::AlignAxisToVect(const MT_Vector3& dir, int axis, float fac)
ori.setValue(orimat[0][0], orimat[1][0], orimat[2][0]);
if (MT_abs(vect.dot(ori)) > 1.0-3.0*MT_EPSILON)
ori.setValue(orimat[0][2], orimat[1][2], orimat[2][2]);
- if (fac == 1.0) {
+ if (fac == 1.0f) {
y = vect;
} else {
- y = (vect * fac) + ((orimat * MT_Vector3(0.0, 1.0, 0.0)) * (1-fac));
+ y = (vect * fac) + ((orimat * MT_Vector3(0.0, 1.0, 0.0)) * (1.0f - fac));
len = y.length();
if (MT_fuzzyZero(len)) y = vect;
else y /= len;
@@ -974,10 +1026,10 @@ void KX_GameObject::AlignAxisToVect(const MT_Vector3& dir, int axis, float fac)
ori.setValue(orimat[0][1], orimat[1][1], orimat[2][1]);
if (MT_abs(vect.dot(ori)) > 1.0-3.0*MT_EPSILON)
ori.setValue(orimat[0][0], orimat[1][0], orimat[2][0]);
- if (fac == 1.0) {
+ if (fac == 1.0f) {
z = vect;
} else {
- z = (vect * fac) + ((orimat * MT_Vector3(0.0, 0.0, 1.0)) * (1-fac));
+ z = (vect * fac) + ((orimat * MT_Vector3(0.0, 0.0, 1.0)) * (1.0f - fac));
len = z.length();
if (MT_fuzzyZero(len)) z = vect;
else z /= len;
@@ -1041,7 +1093,7 @@ MT_Vector3 KX_GameObject::GetLinearVelocity(bool local)
return locvel;
}
}
- return velocity;
+ return velocity;
}
MT_Vector3 KX_GameObject::GetAngularVelocity(bool local)
@@ -1060,7 +1112,7 @@ MT_Vector3 KX_GameObject::GetAngularVelocity(bool local)
return locvel;
}
}
- return velocity;
+ return velocity;
}
MT_Vector3 KX_GameObject::GetVelocity(const MT_Point3& point)
@@ -1162,9 +1214,9 @@ void KX_GameObject::NodeSetWorldScale(const MT_Vector3& scale)
{
// Make sure the objects have some scale
MT_Vector3 p_scale = parent->GetWorldScaling();
- if (fabs(p_scale[0]) < FLT_EPSILON ||
- fabs(p_scale[1]) < FLT_EPSILON ||
- fabs(p_scale[2]) < FLT_EPSILON)
+ if (fabs(p_scale[0]) < (MT_Scalar)FLT_EPSILON ||
+ fabs(p_scale[1]) < (MT_Scalar)FLT_EPSILON ||
+ fabs(p_scale[2]) < (MT_Scalar)FLT_EPSILON)
{
return;
}
@@ -1190,9 +1242,9 @@ void KX_GameObject::NodeSetWorldPosition(const MT_Point3& trans)
{
// Make sure the objects have some scale
MT_Vector3 scale = parent->GetWorldScaling();
- if (fabs(scale[0]) < FLT_EPSILON ||
- fabs(scale[1]) < FLT_EPSILON ||
- fabs(scale[2]) < FLT_EPSILON)
+ if (fabs(scale[0]) < (MT_Scalar)FLT_EPSILON ||
+ fabs(scale[1]) < (MT_Scalar)FLT_EPSILON ||
+ fabs(scale[2]) < (MT_Scalar)FLT_EPSILON)
{
return;
}
@@ -1203,7 +1255,7 @@ void KX_GameObject::NodeSetWorldPosition(const MT_Point3& trans)
MT_Vector3 newpos = invori*(trans-parent->GetWorldPosition())*scale;
NodeSetLocalPosition(MT_Point3(newpos[0],newpos[1],newpos[2]));
}
- else
+ else
{
NodeSetLocalPosition(trans);
}
@@ -1291,8 +1343,7 @@ void KX_GameObject::Resume(void)
void KX_GameObject::Suspend()
{
- if ((!m_ignore_activity_culling)
- && (!m_suspended)) {
+ if ((!m_ignore_activity_culling) && (!m_suspended)) {
SCA_IObject::Suspend();
if (GetPhysicsController())
GetPhysicsController()->SuspendDynamics();
@@ -1630,6 +1681,9 @@ PyMethodDef KX_GameObject::Methods[] = {
PyAttributeDef KX_GameObject::Attributes[] = {
KX_PYATTRIBUTE_RO_FUNCTION("name", KX_GameObject, pyattr_get_name),
KX_PYATTRIBUTE_RO_FUNCTION("parent", KX_GameObject, pyattr_get_parent),
+ KX_PYATTRIBUTE_RO_FUNCTION("group_children", KX_GameObject, pyattr_get_group_children),
+ KX_PYATTRIBUTE_RO_FUNCTION("group_parent", KX_GameObject, pyattr_get_group_parent),
+ KX_PYATTRIBUTE_RO_FUNCTION("scene", KX_GameObject, pyattr_get_scene),
KX_PYATTRIBUTE_RO_FUNCTION("life", KX_GameObject, pyattr_get_life),
KX_PYATTRIBUTE_RW_FUNCTION("mass", KX_GameObject, pyattr_get_mass, pyattr_set_mass),
KX_PYATTRIBUTE_RW_FUNCTION("linVelocityMin", KX_GameObject, pyattr_get_lin_vel_min, pyattr_set_lin_vel_min),
@@ -1669,7 +1723,7 @@ PyAttributeDef KX_GameObject::Attributes[] = {
{NULL} //Sentinel
};
-PyObject* KX_GameObject::PyReplaceMesh(PyObject* args)
+PyObject *KX_GameObject::PyReplaceMesh(PyObject *args)
{
KX_Scene *scene = KX_GetActiveScene();
@@ -1687,9 +1741,10 @@ PyObject* KX_GameObject::PyReplaceMesh(PyObject* args)
Py_RETURN_NONE;
}
-PyObject* KX_GameObject::PyEndObject()
+PyObject *KX_GameObject::PyEndObject()
{
- KX_Scene *scene = KX_GetActiveScene();
+ SG_Node* node = this->GetSGNode();
+ KX_Scene* scene = static_cast<KX_Scene*>(node->GetSGClientInfo());
scene->DelayedRemoveObject(this);
@@ -1697,7 +1752,7 @@ PyObject* KX_GameObject::PyEndObject()
}
-PyObject* KX_GameObject::PyReinstancePhysicsMesh(PyObject* args)
+PyObject *KX_GameObject::PyReinstancePhysicsMesh(PyObject *args)
{
KX_GameObject *gameobj= NULL;
RAS_MeshObject *mesh= NULL;
@@ -1724,7 +1779,7 @@ static PyObject *Map_GetItem(PyObject *self_v, PyObject *item)
KX_GameObject* self= static_cast<KX_GameObject*>BGE_PROXY_REF(self_v);
const char *attr_str= _PyUnicode_AsString(item);
CValue* resultattr;
- PyObject* pyconvert;
+ PyObject *pyconvert;
if (self==NULL) {
PyErr_SetString(PyExc_SystemError, "val = gameOb[key]: KX_GameObject, "BGE_PROXY_ERROR_MSG);
@@ -1733,7 +1788,7 @@ static PyObject *Map_GetItem(PyObject *self_v, PyObject *item)
/* first see if the attributes a string and try get the cvalue attribute */
if (attr_str && (resultattr=self->GetProperty(attr_str))) {
- pyconvert = resultattr->ConvertValueToPython();
+ pyconvert = resultattr->ConvertValueToPython();
return pyconvert ? pyconvert:resultattr->GetProxy();
}
/* no CValue attribute, try get the python only m_attr_dict attribute */
@@ -1907,13 +1962,13 @@ PyTypeObject KX_GameObject::Type = {
py_base_new
};
-PyObject* KX_GameObject::pyattr_get_name(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_name(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
return PyUnicode_From_STR_String(self->GetName());
}
-PyObject* KX_GameObject::pyattr_get_parent(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_parent(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
KX_GameObject* parent = self->GetParent();
@@ -1924,7 +1979,38 @@ PyObject* KX_GameObject::pyattr_get_parent(void *self_v, const KX_PYATTRIBUTE_DE
Py_RETURN_NONE;
}
-PyObject* KX_GameObject::pyattr_get_life(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_group_children(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+{
+ KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
+ CListValue* instances = self->GetInstanceObjects();
+ if (instances) {
+ return instances->GetProxy();
+ }
+ Py_RETURN_NONE;
+}
+
+PyObject* KX_GameObject::pyattr_get_scene(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+{
+ KX_GameObject *self = static_cast<KX_GameObject*>(self_v);
+ SG_Node *node = self->GetSGNode();
+ KX_Scene *scene = static_cast<KX_Scene *>(node->GetSGClientInfo());
+ if (scene) {
+ return scene->GetProxy();
+ }
+ Py_RETURN_NONE;
+}
+
+PyObject *KX_GameObject::pyattr_get_group_parent(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+{
+ KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
+ KX_GameObject* pivot = self->GetDupliGroupObject();
+ if (pivot) {
+ return pivot->GetProxy();
+ }
+ Py_RETURN_NONE;
+}
+
+PyObject *KX_GameObject::pyattr_get_life(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
@@ -1937,11 +2023,11 @@ PyObject* KX_GameObject::pyattr_get_life(void *self_v, const KX_PYATTRIBUTE_DEF
Py_RETURN_NONE;
}
-PyObject* KX_GameObject::pyattr_get_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
KX_IPhysicsController *spc = self->GetPhysicsController();
- return PyFloat_FromDouble(spc ? spc->GetMass() : 0.0f);
+ return PyFloat_FromDouble(spc ? spc->GetMass() : 0.0);
}
int KX_GameObject::pyattr_set_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value)
@@ -1949,7 +2035,7 @@ int KX_GameObject::pyattr_set_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrd
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
KX_IPhysicsController *spc = self->GetPhysicsController();
MT_Scalar val = PyFloat_AsDouble(value);
- if (val < 0.0f) { /* also accounts for non float */
+ if (val < 0.0) { /* also accounts for non float */
PyErr_SetString(PyExc_AttributeError, "gameOb.mass = float: KX_GameObject, expected a float zero or above");
return PY_SET_ATTR_FAIL;
}
@@ -1960,7 +2046,7 @@ int KX_GameObject::pyattr_set_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrd
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_lin_vel_min(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_lin_vel_min(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
KX_IPhysicsController *spc = self->GetPhysicsController();
@@ -1972,7 +2058,7 @@ int KX_GameObject::pyattr_set_lin_vel_min(void *self_v, const KX_PYATTRIBUTE_DEF
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
KX_IPhysicsController *spc = self->GetPhysicsController();
MT_Scalar val = PyFloat_AsDouble(value);
- if (val < 0.0f) { /* also accounts for non float */
+ if (val < 0.0) { /* also accounts for non float */
PyErr_SetString(PyExc_AttributeError, "gameOb.linVelocityMin = float: KX_GameObject, expected a float zero or above");
return PY_SET_ATTR_FAIL;
}
@@ -1983,7 +2069,7 @@ int KX_GameObject::pyattr_set_lin_vel_min(void *self_v, const KX_PYATTRIBUTE_DEF
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_lin_vel_max(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_lin_vel_max(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
KX_IPhysicsController *spc = self->GetPhysicsController();
@@ -1995,7 +2081,7 @@ int KX_GameObject::pyattr_set_lin_vel_max(void *self_v, const KX_PYATTRIBUTE_DEF
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
KX_IPhysicsController *spc = self->GetPhysicsController();
MT_Scalar val = PyFloat_AsDouble(value);
- if (val < 0.0f) { /* also accounts for non float */
+ if (val < 0.0) { /* also accounts for non float */
PyErr_SetString(PyExc_AttributeError, "gameOb.linVelocityMax = float: KX_GameObject, expected a float zero or above");
return PY_SET_ATTR_FAIL;
}
@@ -2007,7 +2093,7 @@ int KX_GameObject::pyattr_set_lin_vel_max(void *self_v, const KX_PYATTRIBUTE_DEF
}
-PyObject* KX_GameObject::pyattr_get_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
return PyBool_FromLong(self->GetVisible());
@@ -2027,7 +2113,7 @@ int KX_GameObject::pyattr_set_visible(void *self_v, const KX_PYATTRIBUTE_DEF *at
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_worldPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_worldPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
return Vector_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_POS_GLOBAL);
@@ -2049,11 +2135,11 @@ int KX_GameObject::pyattr_set_worldPosition(void *self_v, const KX_PYATTRIBUTE_D
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_localPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_localPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
-#ifdef USE_MATHUTILS
+#ifdef USE_MATHUTILS
return Vector_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_POS_LOCAL);
-#else
+#else
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
return PyObjectFrom(self->NodeGetLocalPosition());
#endif
@@ -2071,7 +2157,7 @@ int KX_GameObject::pyattr_set_localPosition(void *self_v, const KX_PYATTRIBUTE_D
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_localInertia(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_localInertia(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
return Vector_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_INERTIA_LOCAL);
@@ -2083,7 +2169,7 @@ PyObject* KX_GameObject::pyattr_get_localInertia(void *self_v, const KX_PYATTRIB
#endif
}
-PyObject* KX_GameObject::pyattr_get_worldOrientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_worldOrientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
return Matrix_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 3, 3, mathutils_kxgameob_matrix_cb_index, MATHUTILS_MAT_CB_ORI_GLOBAL);
@@ -2108,7 +2194,7 @@ int KX_GameObject::pyattr_set_worldOrientation(void *self_v, const KX_PYATTRIBUT
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_localOrientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_localOrientation(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
return Matrix_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 3, 3, mathutils_kxgameob_matrix_cb_index, MATHUTILS_MAT_CB_ORI_LOCAL);
@@ -2132,7 +2218,7 @@ int KX_GameObject::pyattr_set_localOrientation(void *self_v, const KX_PYATTRIBUT
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_worldScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_worldScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
return Vector_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_SCALE_GLOBAL);
@@ -2154,7 +2240,7 @@ int KX_GameObject::pyattr_set_worldScaling(void *self_v, const KX_PYATTRIBUTE_DE
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_localScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_localScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
return Vector_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_SCALE_LOCAL);
@@ -2176,7 +2262,7 @@ int KX_GameObject::pyattr_set_localScaling(void *self_v, const KX_PYATTRIBUTE_DE
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_localTransform(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_localTransform(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self = static_cast<KX_GameObject*>(self_v);
@@ -2222,7 +2308,7 @@ int KX_GameObject::pyattr_set_localTransform(void *self_v, const KX_PYATTRIBUTE_
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_worldTransform(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_worldTransform(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self = static_cast<KX_GameObject*>(self_v);
@@ -2256,7 +2342,7 @@ int KX_GameObject::pyattr_set_worldTransform(void *self_v, const KX_PYATTRIBUTE_
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_worldLinearVelocity(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_worldLinearVelocity(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
return Vector_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_LINVEL_GLOBAL);
@@ -2278,7 +2364,7 @@ int KX_GameObject::pyattr_set_worldLinearVelocity(void *self_v, const KX_PYATTRI
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_localLinearVelocity(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_localLinearVelocity(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
return Vector_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_LINVEL_LOCAL);
@@ -2300,7 +2386,7 @@ int KX_GameObject::pyattr_set_localLinearVelocity(void *self_v, const KX_PYATTRI
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_worldAngularVelocity(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_worldAngularVelocity(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
return Vector_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_ANGVEL_GLOBAL);
@@ -2322,7 +2408,7 @@ int KX_GameObject::pyattr_set_worldAngularVelocity(void *self_v, const KX_PYATTR
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_localAngularVelocity(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_localAngularVelocity(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
return Vector_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_ANGVEL_LOCAL);
@@ -2345,7 +2431,7 @@ int KX_GameObject::pyattr_set_localAngularVelocity(void *self_v, const KX_PYATTR
}
-PyObject* KX_GameObject::pyattr_get_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
SG_Node* sg_parent;
@@ -2361,8 +2447,8 @@ int KX_GameObject::pyattr_set_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
if (self->GetSGNode()) {
MT_Scalar val = PyFloat_AsDouble(value);
- SG_Node* sg_parent= self->GetSGNode()->GetSGParent();
- if (val < 0.0f) { /* also accounts for non float */
+ SG_Node *sg_parent= self->GetSGNode()->GetSGParent();
+ if (val < 0.0) { /* also accounts for non float */
PyErr_SetString(PyExc_AttributeError, "gameOb.timeOffset = float: KX_GameObject, expected a float zero or above");
return PY_SET_ATTR_FAIL;
}
@@ -2372,7 +2458,7 @@ int KX_GameObject::pyattr_set_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
int state = 0;
@@ -2400,7 +2486,7 @@ int KX_GameObject::pyattr_set_state(void *self_v, const KX_PYATTRIBUTE_DEF *attr
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_GameObject::pyattr_get_meshes(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_meshes(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
PyObject *meshes= PyList_New(self->m_meshes.size());
@@ -2415,7 +2501,7 @@ PyObject* KX_GameObject::pyattr_get_meshes(void *self_v, const KX_PYATTRIBUTE_DE
return meshes;
}
-PyObject* KX_GameObject::pyattr_get_obcolor(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_obcolor(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
#ifdef USE_MATHUTILS
return Vector_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 4, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_OBJECT_COLOR);
@@ -2437,35 +2523,35 @@ int KX_GameObject::pyattr_set_obcolor(void *self_v, const KX_PYATTRIBUTE_DEF *at
}
/* These are experimental! */
-PyObject* KX_GameObject::pyattr_get_sensors(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_sensors(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
return KX_PythonSeq_CreatePyObject((static_cast<KX_GameObject*>(self_v))->m_proxy, KX_PYGENSEQ_OB_TYPE_SENSORS);
}
-PyObject* KX_GameObject::pyattr_get_controllers(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_controllers(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
return KX_PythonSeq_CreatePyObject((static_cast<KX_GameObject*>(self_v))->m_proxy, KX_PYGENSEQ_OB_TYPE_CONTROLLERS);
}
-PyObject* KX_GameObject::pyattr_get_actuators(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_actuators(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
return KX_PythonSeq_CreatePyObject((static_cast<KX_GameObject*>(self_v))->m_proxy, KX_PYGENSEQ_OB_TYPE_ACTUATORS);
}
/* End experimental */
-PyObject* KX_GameObject::pyattr_get_children(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_children(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
return self->GetChildren()->NewProxy(true);
}
-PyObject* KX_GameObject::pyattr_get_children_recursive(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_children_recursive(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
return self->GetChildrenRecursive()->NewProxy(true);
}
-PyObject* KX_GameObject::pyattr_get_attrDict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_GameObject::pyattr_get_attrDict(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
@@ -2476,10 +2562,10 @@ PyObject* KX_GameObject::pyattr_get_attrDict(void *self_v, const KX_PYATTRIBUTE_
return self->m_attr_dict;
}
-PyObject* KX_GameObject::PyApplyForce(PyObject* args)
+PyObject *KX_GameObject::PyApplyForce(PyObject *args)
{
int local = 0;
- PyObject* pyvect;
+ PyObject *pyvect;
if (PyArg_ParseTuple(args, "O|i:applyForce", &pyvect, &local)) {
MT_Vector3 force;
@@ -2491,10 +2577,10 @@ PyObject* KX_GameObject::PyApplyForce(PyObject* args)
return NULL;
}
-PyObject* KX_GameObject::PyApplyTorque(PyObject* args)
+PyObject *KX_GameObject::PyApplyTorque(PyObject *args)
{
int local = 0;
- PyObject* pyvect;
+ PyObject *pyvect;
if (PyArg_ParseTuple(args, "O|i:applyTorque", &pyvect, &local)) {
MT_Vector3 torque;
@@ -2506,10 +2592,10 @@ PyObject* KX_GameObject::PyApplyTorque(PyObject* args)
return NULL;
}
-PyObject* KX_GameObject::PyApplyRotation(PyObject* args)
+PyObject *KX_GameObject::PyApplyRotation(PyObject *args)
{
int local = 0;
- PyObject* pyvect;
+ PyObject *pyvect;
if (PyArg_ParseTuple(args, "O|i:applyRotation", &pyvect, &local)) {
MT_Vector3 rotation;
@@ -2521,10 +2607,10 @@ PyObject* KX_GameObject::PyApplyRotation(PyObject* args)
return NULL;
}
-PyObject* KX_GameObject::PyApplyMovement(PyObject* args)
+PyObject *KX_GameObject::PyApplyMovement(PyObject *args)
{
int local = 0;
- PyObject* pyvect;
+ PyObject *pyvect;
if (PyArg_ParseTuple(args, "O|i:applyMovement", &pyvect, &local)) {
MT_Vector3 movement;
@@ -2536,7 +2622,7 @@ PyObject* KX_GameObject::PyApplyMovement(PyObject* args)
return NULL;
}
-PyObject* KX_GameObject::PyGetLinearVelocity(PyObject* args)
+PyObject *KX_GameObject::PyGetLinearVelocity(PyObject *args)
{
// only can get the velocity if we have a physics object connected to us...
int local = 0;
@@ -2550,10 +2636,10 @@ PyObject* KX_GameObject::PyGetLinearVelocity(PyObject* args)
}
}
-PyObject* KX_GameObject::PySetLinearVelocity(PyObject* args)
+PyObject *KX_GameObject::PySetLinearVelocity(PyObject *args)
{
int local = 0;
- PyObject* pyvect;
+ PyObject *pyvect;
if (PyArg_ParseTuple(args,"O|i:setLinearVelocity",&pyvect,&local)) {
MT_Vector3 velocity;
@@ -2565,7 +2651,7 @@ PyObject* KX_GameObject::PySetLinearVelocity(PyObject* args)
return NULL;
}
-PyObject* KX_GameObject::PyGetAngularVelocity(PyObject* args)
+PyObject *KX_GameObject::PyGetAngularVelocity(PyObject *args)
{
// only can get the velocity if we have a physics object connected to us...
int local = 0;
@@ -2579,10 +2665,10 @@ PyObject* KX_GameObject::PyGetAngularVelocity(PyObject* args)
}
}
-PyObject* KX_GameObject::PySetAngularVelocity(PyObject* args)
+PyObject *KX_GameObject::PySetAngularVelocity(PyObject *args)
{
int local = 0;
- PyObject* pyvect;
+ PyObject *pyvect;
if (PyArg_ParseTuple(args,"O|i:setAngularVelocity",&pyvect,&local)) {
MT_Vector3 velocity;
@@ -2594,7 +2680,7 @@ PyObject* KX_GameObject::PySetAngularVelocity(PyObject* args)
return NULL;
}
-PyObject* KX_GameObject::PySetVisible(PyObject* args)
+PyObject *KX_GameObject::PySetVisible(PyObject *args)
{
int visible, recursive = 0;
if (!PyArg_ParseTuple(args,"i|i:setVisible",&visible, &recursive))
@@ -2606,7 +2692,7 @@ PyObject* KX_GameObject::PySetVisible(PyObject* args)
}
-PyObject* KX_GameObject::PySetOcclusion(PyObject* args)
+PyObject *KX_GameObject::PySetOcclusion(PyObject *args)
{
int occlusion, recursive = 0;
if (!PyArg_ParseTuple(args,"i|i:setOcclusion",&occlusion, &recursive))
@@ -2616,11 +2702,11 @@ PyObject* KX_GameObject::PySetOcclusion(PyObject* args)
Py_RETURN_NONE;
}
-PyObject* KX_GameObject::PyGetVelocity(PyObject* args)
+PyObject *KX_GameObject::PyGetVelocity(PyObject *args)
{
// only can get the velocity if we have a physics object connected to us...
MT_Point3 point(0.0,0.0,0.0);
- PyObject* pypos = NULL;
+ PyObject *pypos = NULL;
if (!PyArg_ParseTuple(args, "|O:getVelocity", &pypos) || (pypos && !PyVecTo(pypos, point)))
return NULL;
@@ -2634,7 +2720,7 @@ PyObject* KX_GameObject::PyGetVelocity(PyObject* args)
}
}
-PyObject* KX_GameObject::PyGetReactionForce()
+PyObject *KX_GameObject::PyGetReactionForce()
{
// only can get the velocity if we have a physics object connected to us...
@@ -2645,13 +2731,13 @@ PyObject* KX_GameObject::PyGetReactionForce()
return PyObjectFrom(dummy_point);
*/
- return Py_BuildValue("fff", 0.0f, 0.0f, 0.0f);
+ return Py_BuildValue("fff", 0.0, 0.0, 0.0);
}
-PyObject* KX_GameObject::PyEnableRigidBody()
+PyObject *KX_GameObject::PyEnableRigidBody()
{
if (GetPhysicsController())
GetPhysicsController()->setRigidBody(true);
@@ -2661,7 +2747,7 @@ PyObject* KX_GameObject::PyEnableRigidBody()
-PyObject* KX_GameObject::PyDisableRigidBody()
+PyObject *KX_GameObject::PyDisableRigidBody()
{
if (GetPhysicsController())
GetPhysicsController()->setRigidBody(false);
@@ -2670,10 +2756,10 @@ PyObject* KX_GameObject::PyDisableRigidBody()
}
-PyObject* KX_GameObject::PySetParent(PyObject* args)
+PyObject *KX_GameObject::PySetParent(PyObject *args)
{
KX_Scene *scene = KX_GetActiveScene();
- PyObject* pyobj;
+ PyObject *pyobj;
KX_GameObject *obj;
int addToCompound=1, ghost=1;
@@ -2687,7 +2773,7 @@ PyObject* KX_GameObject::PySetParent(PyObject* args)
Py_RETURN_NONE;
}
-PyObject* KX_GameObject::PyRemoveParent()
+PyObject *KX_GameObject::PyRemoveParent()
{
KX_Scene *scene = KX_GetActiveScene();
@@ -2696,7 +2782,7 @@ PyObject* KX_GameObject::PyRemoveParent()
}
-PyObject* KX_GameObject::PySetCollisionMargin(PyObject* value)
+PyObject *KX_GameObject::PySetCollisionMargin(PyObject *value)
{
float collisionMargin = PyFloat_AsDouble(value);
@@ -2716,10 +2802,10 @@ PyObject* KX_GameObject::PySetCollisionMargin(PyObject* value)
-PyObject* KX_GameObject::PyApplyImpulse(PyObject* args)
+PyObject *KX_GameObject::PyApplyImpulse(PyObject *args)
{
- PyObject* pyattach;
- PyObject* pyimpulse;
+ PyObject *pyattach;
+ PyObject *pyimpulse;
if (!m_pPhysicsController1) {
PyErr_SetString(PyExc_RuntimeError, "This object has no physics controller");
@@ -2743,7 +2829,7 @@ PyObject* KX_GameObject::PyApplyImpulse(PyObject* args)
-PyObject* KX_GameObject::PySuspendDynamics()
+PyObject *KX_GameObject::PySuspendDynamics()
{
SuspendDynamics();
Py_RETURN_NONE;
@@ -2751,36 +2837,36 @@ PyObject* KX_GameObject::PySuspendDynamics()
-PyObject* KX_GameObject::PyRestoreDynamics()
+PyObject *KX_GameObject::PyRestoreDynamics()
{
RestoreDynamics();
Py_RETURN_NONE;
}
-PyObject* KX_GameObject::PyAlignAxisToVect(PyObject* args)
+PyObject *KX_GameObject::PyAlignAxisToVect(PyObject *args)
{
- PyObject* pyvect;
+ PyObject *pyvect;
int axis = 2; //z axis is the default
- float fac = 1.0;
+ float fac = 1.0f;
if (PyArg_ParseTuple(args,"O|if:alignAxisToVect",&pyvect,&axis, &fac))
{
MT_Vector3 vect;
- if (PyVecTo(pyvect, vect))
- {
- if (fac<=0.0) Py_RETURN_NONE; // Nothing to do.
- if (fac> 1.0) fac= 1.0;
-
- AlignAxisToVect(vect,axis,fac);
- NodeUpdateGS(0.f);
+ if (PyVecTo(pyvect, vect)) {
+ if (fac > 0.0f) {
+ if (fac> 1.0f) fac = 1.0f;
+
+ AlignAxisToVect(vect, axis, fac);
+ NodeUpdateGS(0.f);
+ }
Py_RETURN_NONE;
}
}
return NULL;
}
-PyObject* KX_GameObject::PyGetAxisVect(PyObject* value)
+PyObject *KX_GameObject::PyGetAxisVect(PyObject *value)
{
MT_Vector3 vect;
if (PyVecTo(value, vect))
@@ -2791,7 +2877,7 @@ PyObject* KX_GameObject::PyGetAxisVect(PyObject* value)
}
-PyObject* KX_GameObject::PyGetPhysicsId()
+PyObject *KX_GameObject::PyGetPhysicsId()
{
KX_IPhysicsController* ctrl = GetPhysicsController();
uint_ptr physid=0;
@@ -2802,7 +2888,7 @@ PyObject* KX_GameObject::PyGetPhysicsId()
return PyLong_FromSsize_t((long)physid);
}
-PyObject* KX_GameObject::PyGetPropertyNames()
+PyObject *KX_GameObject::PyGetPropertyNames()
{
PyObject *list= ConvertKeysToPython();
@@ -2932,7 +3018,7 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCastTo,
" other = 3-tuple or object reference")
{
MT_Point3 toPoint;
- PyObject* pyarg;
+ PyObject *pyarg;
float dist = 0.0f;
char *propName = NULL;
@@ -3050,8 +3136,8 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCast,
{
MT_Point3 toPoint;
MT_Point3 fromPoint;
- PyObject* pyto;
- PyObject* pyfrom = NULL;
+ PyObject *pyto;
+ PyObject *pyfrom = NULL;
float dist = 0.0f;
char *propName = NULL;
KX_GameObject *other;
@@ -3125,7 +3211,7 @@ KX_PYMETHODDEF_DOC(KX_GameObject, rayCast,
if (m_pHitObject)
{
- PyObject* returnValue = (poly==2) ? PyTuple_New(5) : (poly) ? PyTuple_New(4) : PyTuple_New(3);
+ PyObject *returnValue = (poly == 2) ? PyTuple_New(5) : (poly) ? PyTuple_New(4) : PyTuple_New(3);
if (returnValue) { // unlikely this would ever fail, if it does python sets an error
PyTuple_SET_ITEM(returnValue, 0, m_pHitObject->GetProxy());
PyTuple_SET_ITEM(returnValue, 1, PyObjectFrom(callback.m_hitPoint));
@@ -3301,11 +3387,11 @@ KX_PYMETHODDEF_DOC(KX_GameObject, isPlayingAction,
/* Matches python dict.get(key, [default]) */
-PyObject* KX_GameObject::Pyget(PyObject *args)
+PyObject *KX_GameObject::Pyget(PyObject *args)
{
PyObject *key;
- PyObject* def = Py_None;
- PyObject* ret;
+ PyObject *def = Py_None;
+ PyObject *ret;
if (!PyArg_ParseTuple(args, "O|O:get", &key, &def))
return NULL;
@@ -3331,7 +3417,7 @@ PyObject* KX_GameObject::Pyget(PyObject *args)
return def;
}
-bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py_none_ok, const char *error_prefix)
+bool ConvertPythonToGameObject(PyObject *value, KX_GameObject **object, bool py_none_ok, const char *error_prefix)
{
if (value==NULL) {
PyErr_Format(PyExc_TypeError, "%s, python pointer NULL, should never happen", error_prefix);
diff --git a/source/gameengine/Ketsji/KX_GameObject.h b/source/gameengine/Ketsji/KX_GameObject.h
index 2b0d13ff2f7..621dd988e00 100644
--- a/source/gameengine/Ketsji/KX_GameObject.h
+++ b/source/gameengine/Ketsji/KX_GameObject.h
@@ -68,7 +68,7 @@ struct bAction;
#ifdef WITH_PYTHON
/* utility conversion function */
-bool ConvertPythonToGameObject(PyObject * value, KX_GameObject **object, bool py_none_ok, const char *error_prefix);
+bool ConvertPythonToGameObject(PyObject *value, KX_GameObject **object, bool py_none_ok, const char *error_prefix);
#endif
#ifdef USE_MATHUTILS
@@ -116,6 +116,8 @@ protected:
KX_ObstacleSimulation* m_pObstacleSimulation;
+ CListValue* m_pInstanceObjects;
+ KX_GameObject* m_pDupliGroupObject;
// The action manager is used to play/stop/update actions
BL_ActionManager* m_actionManager;
@@ -159,7 +161,7 @@ public:
* side effect of storing the result internally. The
* memory for the matrix remains the property of this class.
*/
- double*
+ double *
GetOpenGLMatrix(
);
@@ -170,7 +172,7 @@ public:
* memory for the returned matrix.
*/
- MT_CmMatrix4x4*
+ MT_CmMatrix4x4 *
GetOpenGLMatrixPtr(
) {
return &m_OpenGL_4x4Matrix;
@@ -193,21 +195,48 @@ public:
* object. It is the responsibility of the caller to decrement
* the reference count when you have finished with it.
*/
- KX_GameObject*
+ KX_GameObject*
GetParent(
);
/**
* Sets the parent of this object to a game object
- */
+ */
void SetParent(KX_Scene *scene, KX_GameObject *obj, bool addToCompound=true, bool ghost=true);
/**
* Removes the parent of this object to a game object
- */
+ */
void RemoveParent(KX_Scene *scene);
/*********************************
+ * group reference API
+ *********************************/
+
+ KX_GameObject*
+ GetDupliGroupObject(
+ );
+
+ CListValue*
+ GetInstanceObjects(
+ );
+
+ void
+ SetDupliGroupObject(KX_GameObject*
+ );
+
+ void
+ AddInstanceObjects(KX_GameObject*
+ );
+
+ void
+ RemoveDupliGroupObject(
+ );
+
+ void
+ RemoveInstanceObject(KX_GameObject*
+ );
+ /*********************************
* Animation API
*********************************/
@@ -292,7 +321,7 @@ public:
/**
* Inherited from CValue -- does nothing!
*/
- CValue*
+ CValue*
Calc(
VALUE_OPERATOR op,
CValue *val
@@ -301,7 +330,7 @@ public:
/**
* Inherited from CValue -- does nothing!
*/
- CValue*
+ CValue*
CalcFinal(
VALUE_DATA_TYPE dtype,
VALUE_OPERATOR op,
@@ -312,7 +341,7 @@ public:
* Inherited from CValue -- does nothing!
*/
const
- STR_String &
+ STR_String &
GetText(
);
@@ -331,14 +360,14 @@ public:
/**
* Inherited from CValue -- returns the name of this object.
*/
- STR_String&
+ STR_String&
GetName(
);
/**
* Inherited from CValue -- set the name of this object.
*/
- void
+ void
SetName(
const char *name
);
@@ -348,7 +377,7 @@ public:
* instance allocated on the heap. Ownership of the new
* object belongs with the caller.
*/
- virtual CValue*
+ virtual CValue*
GetReplica(
);
@@ -356,7 +385,7 @@ public:
* Inherited from CValue -- Makes sure any internal
* data owned by this class is deep copied. Called internally
*/
- virtual void
+ virtual void
ProcessReplica();
/**
@@ -379,7 +408,7 @@ public:
/**
* Return the mass of the object
*/
- MT_Scalar
+ MT_Scalar
GetMass();
/**
@@ -410,7 +439,7 @@ public:
* Quick'n'dirty obcolor ipo stuff
*/
- void
+ void
SetObjectColor(
const MT_Vector4& rgbavec
);
@@ -482,7 +511,7 @@ public:
// adapt local position so that world position is set to desired position
void NodeSetWorldPosition(const MT_Point3& trans);
- void
+ void
NodeUpdateGS(
double time
);
@@ -504,7 +533,7 @@ public:
return m_pSGNode;
}
- const SG_Node* GetSGNode( ) const
+ const SG_Node* GetSGNode( ) const
{
return m_pSGNode;
}
@@ -581,48 +610,48 @@ public:
* place.
*/
- void
+ void
ApplyForce(
const MT_Vector3& force, bool local
);
- void
+ void
ApplyTorque(
const MT_Vector3& torque,
bool local
);
- void
+ void
ApplyRotation(
const MT_Vector3& drot,
bool local
);
- void
+ void
ApplyMovement(
const MT_Vector3& dloc,
bool local
);
- void
+ void
addLinearVelocity(
const MT_Vector3& lin_vel,
bool local
);
- void
+ void
setLinearVelocity(
const MT_Vector3& lin_vel,
bool local
);
- void
+ void
setAngularVelocity(
const MT_Vector3& ang_vel,
bool local
);
- /**
+ /**
* Update the physics object transform based upon the current SG_Node
* position.
*/
@@ -642,7 +671,7 @@ public:
/**
* Function to set IPO option at start of IPO
*/
- void
+ void
InitIPO(
bool ipo_as_force,
bool ipo_add,
@@ -652,7 +681,7 @@ public:
/**
* Odd function to update an ipo. ???
*/
- void
+ void
UpdateIPO(
float curframetime,
bool recurse
@@ -676,20 +705,20 @@ public:
* \section Mesh accessor functions.
*/
- /**
+ /**
* Update buckets to indicate that there is a new
* user of this object's meshes.
*/
- void
+ void
AddMeshUser(
);
- /**
+ /**
* Update buckets with data about the mesh after
* creating or duplicating the object, changing
* visibility, object color, .. .
*/
- void
+ void
UpdateBuckets(
bool recursive
);
@@ -699,7 +728,7 @@ public:
* and remove from the bucketing system.
* Don't think this actually deletes any of the meshes.
*/
- void
+ void
RemoveMeshes(
);
@@ -709,7 +738,7 @@ public:
* Make sure you call RemoveMeshes() before deleting the
* mesh though,
*/
- void
+ void
AddMesh(
RAS_MeshObject* mesh
) {
@@ -719,7 +748,7 @@ public:
/**
* Pick out a mesh associated with the integer 'num'.
*/
- RAS_MeshObject*
+ RAS_MeshObject*
GetMesh(
int num
) const {
@@ -730,17 +759,17 @@ public:
* Return the number of meshes currently associated with this
* game object.
*/
- int
+ int
GetMeshCount(
) const {
return m_meshes.size();
}
- /**
+ /**
* Set the debug color of the meshes associated with this
* class. Does this still work?
*/
- void
+ void
SetDebugColor(
unsigned int bgra
);
@@ -748,7 +777,7 @@ public:
/**
* Reset the debug color of meshes associated with this class.
*/
- void
+ void
ResetDebugColor(
);
@@ -855,7 +884,7 @@ public:
m_bSuspendDynamics = true;
}
- void RestoreDynamics(void) {
+ void RestoreDynamics(void) {
if (!m_bSuspendDynamics)
{
return;
@@ -887,7 +916,7 @@ public:
/**
* \section Python interface functions.
*/
- virtual PyObject* py_repr(void)
+ virtual PyObject *py_repr(void)
{
return PyUnicode_From_STR_String(GetName());
}
@@ -949,6 +978,10 @@ public:
static PyObject* pyattr_get_name(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static PyObject* pyattr_get_parent(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject* pyattr_get_group_parent(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject* pyattr_get_group_children(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject* pyattr_get_scene(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+
static PyObject* pyattr_get_life(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static PyObject* pyattr_get_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_mass(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
@@ -983,7 +1016,7 @@ public:
static PyObject* pyattr_get_worldAngularVelocity(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_worldAngularVelocity(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
static PyObject* pyattr_get_localAngularVelocity(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static int pyattr_set_localAngularVelocity(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+ static int pyattr_set_localAngularVelocity(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
static PyObject* pyattr_get_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_timeOffset(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
static PyObject* pyattr_get_state(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
diff --git a/source/gameengine/Ketsji/KX_IInterpolator.h b/source/gameengine/Ketsji/KX_IInterpolator.h
index 6ca44e1f6e5..6c0bf2d85cc 100644
--- a/source/gameengine/Ketsji/KX_IInterpolator.h
+++ b/source/gameengine/Ketsji/KX_IInterpolator.h
@@ -38,7 +38,7 @@
#include "MEM_guardedalloc.h"
#endif
-class KX_IInterpolator {
+class KX_IInterpolator {
public:
virtual ~KX_IInterpolator() {}
diff --git a/source/gameengine/Ketsji/KX_IScalarInterpolator.h b/source/gameengine/Ketsji/KX_IScalarInterpolator.h
index 2b5aefccfe7..1e822c49c6d 100644
--- a/source/gameengine/Ketsji/KX_IScalarInterpolator.h
+++ b/source/gameengine/Ketsji/KX_IScalarInterpolator.h
@@ -36,7 +36,7 @@
#include "MEM_guardedalloc.h"
#endif
-class KX_IScalarInterpolator {
+class KX_IScalarInterpolator {
public:
virtual ~KX_IScalarInterpolator() {}
diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp
index 7e7e7f8cef2..5ea7a2e7394 100644
--- a/source/gameengine/Ketsji/KX_IpoActuator.cpp
+++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp
@@ -182,7 +182,7 @@ bool KX_IpoActuator::Update(double curtime, bool frame)
m_bIpoPlaying = true;
bIpoStart = true;
}
- }
+ }
switch ((IpoActType)m_type)
{
@@ -254,7 +254,7 @@ bool KX_IpoActuator::Update(double curtime, bool frame)
result = false;
if (bIpoStart)
- ((KX_GameObject*)GetParent())->InitIPO(m_ipo_as_force, m_ipo_add, m_ipo_local);
+ ((KX_GameObject*)GetParent())->InitIPO(m_ipo_as_force, m_ipo_add, m_ipo_local);
((KX_GameObject*)GetParent())->UpdateIPO(m_localtime,m_recurse);
break;
}
@@ -309,7 +309,7 @@ bool KX_IpoActuator::Update(double curtime, bool frame)
bIpoStart = true;
}
else
- {
+ {
/* Perform clamping */
m_localtime=m_endframe;
result = false;
@@ -379,7 +379,7 @@ bool KX_IpoActuator::Update(double curtime, bool frame)
void KX_IpoActuator::ResetStartTime()
{
- this->m_starttime = -2.0*fabs(this->m_endframe - this->m_startframe) - 1.0;
+ this->m_starttime = -2.0f * fabsf(this->m_endframe - this->m_startframe) - 1.0f;
}
int KX_IpoActuator::string2mode(const char *modename)
@@ -453,7 +453,7 @@ PyAttributeDef KX_IpoActuator::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* KX_IpoActuator::pyattr_get_frame_start(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_IpoActuator::pyattr_get_frame_start(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_IpoActuator* self= static_cast<KX_IpoActuator*>(self_v);
return PyFloat_FromDouble(self->m_startframe);
@@ -474,7 +474,7 @@ int KX_IpoActuator::pyattr_set_frame_start(void *self_v, const KX_PYATTRIBUTE_DE
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_IpoActuator::pyattr_get_frame_end(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_IpoActuator::pyattr_get_frame_end(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_IpoActuator* self= static_cast<KX_IpoActuator*>(self_v);
return PyFloat_FromDouble(self->m_endframe);
diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
index 21c3198b8f9..e446e5338bc 100644
--- a/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
+++ b/source/gameengine/Ketsji/KX_KetsjiEngine.cpp
@@ -253,7 +253,7 @@ void KX_KetsjiEngine::SetRasterizer(RAS_IRasterizer* rasterizer)
* At the moment the bge.logic module is imported into 'pythondictionary' after this function is called.
* if this function ever changes to assign a copy, make sure the game logic module is imported into this dictionary before hand.
*/
-void KX_KetsjiEngine::SetPyNamespace(PyObject* pythondictionary)
+void KX_KetsjiEngine::SetPyNamespace(PyObject *pythondictionary)
{
MT_assert(pythondictionary);
m_pythondictionary = pythondictionary;
@@ -275,8 +275,7 @@ void KX_KetsjiEngine::InitDome(short res, short mode, short angle, float resbuf,
void KX_KetsjiEngine::RenderDome()
{
- GLuint viewport[4]={0};
- glGetIntegerv(GL_VIEWPORT,(GLint *)viewport);
+ const GLint *viewport = m_canvas->GetViewPort();
m_dome->SetViewPort(viewport);
@@ -361,7 +360,7 @@ void KX_KetsjiEngine::RenderDome()
// no FlushDebugLines
}
m_dome->BindImages(i);
- }
+ }
m_canvas->EndFrame();//XXX do we really need that?
@@ -391,7 +390,7 @@ void KX_KetsjiEngine::RenderDome()
// Draw Callback for the last scene
#ifdef WITH_PYTHON
scene->RunDrawingCallbacks(scene->GetPostDrawCB());
-#endif
+#endif
EndFrame();
}
@@ -477,7 +476,7 @@ void KX_KetsjiEngine::ClearFrame()
SetBackGround(firstscene->GetWorldInfo());
m_canvas->SetViewPort(clearvp.GetLeft(), clearvp.GetBottom(),
- clearvp.GetRight(), clearvp.GetTop());
+ clearvp.GetRight(), clearvp.GetTop());
m_rasterizer->ClearColorBuffer();
}
}
@@ -498,11 +497,13 @@ bool KX_KetsjiEngine::BeginFrame()
}
return false;
-}
+}
void KX_KetsjiEngine::EndFrame()
{
+ m_rendertools->MotionBlur(m_rasterizer);
+
// Show profiling info
m_logger->StartLog(tc_overhead, m_kxsystem->GetTimeInSeconds(), true);
if (m_show_framerate || m_show_profile || (m_show_debug_properties && m_propertiesPresent))
@@ -639,7 +640,7 @@ else
scene->GetPhysicsEnvironment()->endFrame();
// Update scenegraph after physics step. This maps physics calculations
- // into node positions.
+ // into node positions.
//m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true);
//SG_SetActiveStage(SG_STAGE_PHYSICS1_UPDATE);
//scene->UpdateParents(m_frameTime);
@@ -690,7 +691,7 @@ else
if (m_animation_record)
- {
+ {
m_sceneconverter->WritePhysicsObjectToAnimationIpo(++m_currentFrame);
}
@@ -723,7 +724,7 @@ else
bool bUseAsyncLogicBricks= false;//true;
if (bUseAsyncLogicBricks)
- {
+ {
// Logic update sub frame: this will let some logic bricks run at the
// full frame rate.
for (sceneit = m_scenes.begin();sceneit != m_scenes.end(); ++sceneit)
@@ -754,7 +755,7 @@ else
m_logger->StartLog(tc_physics, m_kxsystem->GetTimeInSeconds(), true);
scene->GetPhysicsEnvironment()->proceedDeltaTime(m_clockTime,timestep,timestep);
// Update scenegraph after physics step. This maps physics calculations
- // into node positions.
+ // into node positions.
m_logger->StartLog(tc_scenegraph, m_kxsystem->GetTimeInSeconds(), true);
SG_SetActiveStage(SG_STAGE_PHYSICS2);
scene->UpdateParents(m_clockTime);
@@ -782,21 +783,21 @@ else
// Handle the animations independently of the logic time step
if (GetRestrictAnimationFPS())
{
- m_logger->StartLog(tc_animations, m_kxsystem->GetTimeInSeconds(), true);
+ double clocktime = m_kxsystem->GetTimeInSeconds();
+ m_logger->StartLog(tc_animations, clocktime, true);
SG_SetActiveStage(SG_STAGE_ANIMATION_UPDATE);
double anim_timestep = 1.0/KX_GetActiveScene()->GetAnimationFPS();
- if (m_clockTime - m_previousAnimTime > anim_timestep)
+ if (clocktime - m_previousAnimTime > anim_timestep)
{
// Sanity/debug print to make sure we're actually going at the fps we want (should be close to anim_timestep)
// printf("Anim fps: %f\n", 1.0/(m_clockTime - m_previousAnimTime));
- m_previousAnimTime = m_clockTime;
+ m_previousAnimTime = clocktime;
for (sceneit = m_scenes.begin();sceneit != m_scenes.end(); ++sceneit)
{
- (*sceneit)->UpdateAnimations(m_frameTime);
+ (*sceneit)->UpdateAnimations(clocktime);
}
}
- m_previousClockTime = m_clockTime;
}
// Start logging time spend outside main loop
@@ -936,7 +937,7 @@ void KX_KetsjiEngine::Render()
//RenderFrame(scene);
RenderFrame(scene, cam);
- list<class KX_Camera*>* cameras = scene->GetCameras();
+ list<class KX_Camera*>* cameras = scene->GetCameras();
// Draw the scene once for each camera with an enabled viewport
list<KX_Camera*>::iterator it = cameras->begin();
@@ -1011,7 +1012,7 @@ void KX_KetsjiEngine::SetBackGround(KX_WorldInfo* wi)
if (wi->hasWorld())
{
if (m_drawingmode == RAS_IRasterizer::KX_TEXTURED)
- {
+ {
m_rasterizer->SetBackColor(
wi->getBackColorRed(),
wi->getBackColorGreen(),
@@ -1036,7 +1037,7 @@ void KX_KetsjiEngine::SetWorldSettings(KX_WorldInfo* wi)
);
if (m_drawingmode >= RAS_IRasterizer::KX_SOLID)
- {
+ {
if (wi->hasMist())
{
m_rasterizer->SetFog(
@@ -1201,11 +1202,11 @@ void KX_KetsjiEngine::RenderFrame(KX_Scene* scene, KX_Camera* cam)
GetSceneViewport(scene, cam, area, viewport);
// store the computed viewport in the scene
- scene->SetSceneViewport(viewport);
+ scene->SetSceneViewport(viewport);
// set the viewport for this frame and scene
m_canvas->SetViewPort(viewport.GetLeft(), viewport.GetBottom(),
- viewport.GetRight(), viewport.GetTop());
+ viewport.GetRight(), viewport.GetTop());
// see KX_BlenderMaterial::Activate
//m_rasterizer->SetAmbient();
@@ -1344,10 +1345,9 @@ void KX_KetsjiEngine::PostRenderScene(KX_Scene* scene)
m_canvas->SetViewPort(0, 0, m_canvas->GetWidth(), m_canvas->GetHeight());
m_rasterizer->FlushDebugShapes();
- m_rendertools->MotionBlur(m_rasterizer);
scene->Render2DFilters(m_canvas);
#ifdef WITH_PYTHON
- scene->RunDrawingCallbacks(scene->GetPostDrawCB());
+ scene->RunDrawingCallbacks(scene->GetPostDrawCB());
#endif
}
@@ -1367,10 +1367,10 @@ void KX_KetsjiEngine::StopEngine()
{
KX_Scene* scene = *sceneit;
m_sceneconverter->RemoveScene(scene);
- }
+ }
m_scenes.clear();
- // cleanup all the stuff
+ // cleanup all the stuff
m_rasterizer->Exit();
}
}
@@ -1468,7 +1468,7 @@ void KX_KetsjiEngine::RenderDebugProperties()
/* Profile and framerate display */
if (m_show_profile)
- {
+ {
for (int j = tc_first; j < tc_numCategories; j++)
{
debugtxt.Format(m_profileLabels[j]);
@@ -1555,7 +1555,7 @@ void KX_KetsjiEngine::RenderDebugProperties()
KX_SceneList* KX_KetsjiEngine::CurrentScenes()
{
- return &m_scenes;
+ return &m_scenes;
}
@@ -1571,7 +1571,7 @@ KX_Scene* KX_KetsjiEngine::FindScene(const STR_String& scenename)
sceneit++;
}
- return ((sceneit == m_scenes.end()) ? NULL : *sceneit);
+ return ((sceneit == m_scenes.end()) ? NULL : *sceneit);
}
@@ -1634,7 +1634,7 @@ void KX_KetsjiEngine::RemoveScheduledScenes()
m_scenes.erase(sceneit);
break;
}
- }
+ }
}
m_removingScenes.clear();
}
@@ -1736,7 +1736,7 @@ void KX_KetsjiEngine::ReplaceScheduledScenes()
}
}
m_replace_scenes.clear();
- }
+ }
}
@@ -1909,7 +1909,7 @@ void KX_KetsjiEngine::SceneListsChanged(void)
while ((sceneit != m_scenes.end()) && (!m_propertiesPresent))
{
KX_Scene* scene = *sceneit;
- vector<SCA_DebugProp*>& debugproplist = scene->GetDebugProperties();
+ vector<SCA_DebugProp*>& debugproplist = scene->GetDebugProperties();
m_propertiesPresent = !debugproplist.empty();
sceneit++;
}
diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.h b/source/gameengine/Ketsji/KX_KetsjiEngine.h
index b3bef016b0f..e05ba652bbe 100644
--- a/source/gameengine/Ketsji/KX_KetsjiEngine.h
+++ b/source/gameengine/Ketsji/KX_KetsjiEngine.h
@@ -98,7 +98,7 @@ private:
/* The current list of scenes. */
KX_SceneList m_scenes;
/* State variable recording the presence of object debug info in the current scene list. */
- bool m_propertiesPresent;
+ bool m_propertiesPresent;
bool m_bInitialized;
int m_activecam;
@@ -136,7 +136,7 @@ private:
int m_drawingmode;
float m_cameraZoom;
- bool m_overrideCam;
+ bool m_overrideCam;
STR_String m_overrideSceneName;
bool m_overrideCamUseOrtho;
@@ -220,7 +220,7 @@ public:
void SetRenderTools(RAS_IRenderTools* rendertools);
void SetRasterizer(RAS_IRasterizer* rasterizer);
#ifdef WITH_PYTHON
- void SetPyNamespace(PyObject* pythondictionary);
+ void SetPyNamespace(PyObject *pythondictionary);
PyObject* GetPyNamespace() { return m_pythondictionary; }
#endif
void SetSceneConverter(KX_ISceneConverter* sceneconverter);
@@ -415,7 +415,7 @@ public:
KX_Scene* CreateScene(const STR_String& scenename);
KX_Scene* CreateScene(Scene *scene);
- GlobalSettings* GetGlobalSettings(void);
+ GlobalSettings* GetGlobalSettings(void);
void SetGlobalSettings(GlobalSettings* gs);
protected:
diff --git a/source/gameengine/Ketsji/KX_Light.cpp b/source/gameengine/Ketsji/KX_Light.cpp
index 5922e97aaf4..8b80daa75d3 100644
--- a/source/gameengine/Ketsji/KX_Light.cpp
+++ b/source/gameengine/Ketsji/KX_Light.cpp
@@ -29,11 +29,12 @@
* \ingroup ketsji
*/
-
#if defined(WIN32) && !defined(FREE_WINDOWS)
#pragma warning (disable : 4786)
#endif
+#include <stdio.h>
+
#include "GL/glew.h"
#include "KX_Light.h"
@@ -67,10 +68,13 @@ KX_LightObject::KX_LightObject(void* sgReplicationInfo,SG_Callbacks callbacks,
KX_LightObject::~KX_LightObject()
{
GPULamp *lamp;
+ Lamp *la = (Lamp*)GetBlenderObject()->data;
if ((lamp = GetGPULamp())) {
float obmat[4][4] = {{0}};
GPU_lamp_update(lamp, 0, 0, obmat);
+ GPU_lamp_update_distance(lamp, la->dist, la->att1, la->att2);
+ GPU_lamp_update_spot(lamp, la->spotsize, la->spotblend);
}
m_rendertools->RemoveLight(&m_lightobj);
@@ -145,11 +149,12 @@ bool KX_LightObject::ApplyLight(KX_Scene *kxscene, int oblayer, int slot)
//vec[1]= -base->object->obmat[2][1];
//vec[2]= -base->object->obmat[2][2];
glLightfv((GLenum)(GL_LIGHT0+slot), GL_SPOT_DIRECTION, vec);
- glLightf((GLenum)(GL_LIGHT0+slot), GL_SPOT_CUTOFF, m_lightobj.m_spotsize/2.0);
- glLightf((GLenum)(GL_LIGHT0+slot), GL_SPOT_EXPONENT, 128.0*m_lightobj.m_spotblend);
+ glLightf((GLenum)(GL_LIGHT0+slot), GL_SPOT_CUTOFF, m_lightobj.m_spotsize / 2.0f);
+ glLightf((GLenum)(GL_LIGHT0+slot), GL_SPOT_EXPONENT, 128.0f * m_lightobj.m_spotblend);
}
- else
+ else {
glLightf((GLenum)(GL_LIGHT0+slot), GL_SPOT_CUTOFF, 180.0);
+ }
}
if (m_lightobj.m_nodiffuse) {
@@ -206,6 +211,8 @@ void KX_LightObject::Update()
GPU_lamp_update(lamp, m_lightobj.m_layer, 0, obmat);
GPU_lamp_update_colors(lamp, m_lightobj.m_red, m_lightobj.m_green,
m_lightobj.m_blue, m_lightobj.m_energy);
+ GPU_lamp_update_distance(lamp, m_lightobj.m_distance, m_lightobj.m_att1, m_lightobj.m_att2);
+ GPU_lamp_update_spot(lamp, m_lightobj.m_spotsize, m_lightobj.m_spotblend);
}
}
@@ -337,7 +344,7 @@ PyAttributeDef KX_LightObject::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* KX_LightObject::pyattr_get_color(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_LightObject::pyattr_get_color(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_LightObject* self = static_cast<KX_LightObject*>(self_v);
return Py_BuildValue("[fff]", self->m_lightobj.m_red, self->m_lightobj.m_green, self->m_lightobj.m_blue);
@@ -358,9 +365,9 @@ int KX_LightObject::pyattr_set_color(void *self_v, const KX_PYATTRIBUTE_DEF *att
return PY_SET_ATTR_FAIL;
}
-PyObject* KX_LightObject::pyattr_get_typeconst(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_LightObject::pyattr_get_typeconst(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
- PyObject* retvalue;
+ PyObject *retvalue;
const char* type = attrdef->m_name;
@@ -380,13 +387,13 @@ PyObject* KX_LightObject::pyattr_get_typeconst(void *self_v, const KX_PYATTRIBUT
return retvalue;
}
-PyObject* KX_LightObject::pyattr_get_type(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_LightObject::pyattr_get_type(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_LightObject* self = static_cast<KX_LightObject*>(self_v);
return PyLong_FromSsize_t(self->m_lightobj.m_type);
}
-int KX_LightObject::pyattr_set_type(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject* value)
+int KX_LightObject::pyattr_set_type(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value)
{
KX_LightObject* self = static_cast<KX_LightObject*>(self_v);
int val = PyLong_AsSsize_t(value);
diff --git a/source/gameengine/Ketsji/KX_Light.h b/source/gameengine/Ketsji/KX_Light.h
index 9fe13f471ba..7426896a92a 100644
--- a/source/gameengine/Ketsji/KX_Light.h
+++ b/source/gameengine/Ketsji/KX_Light.h
@@ -76,10 +76,10 @@ public:
#ifdef WITH_PYTHON
/* attributes */
static PyObject* pyattr_get_color(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static int pyattr_set_color(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject* value);
+ static int pyattr_set_color(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
static PyObject* pyattr_get_typeconst(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static PyObject* pyattr_get_type(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static int pyattr_set_type(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject* value);
+ static int pyattr_set_type(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
#endif
};
diff --git a/source/gameengine/Ketsji/KX_LightIpoSGController.h b/source/gameengine/Ketsji/KX_LightIpoSGController.h
index 3a3a9677b04..4a1ceba0963 100644
--- a/source/gameengine/Ketsji/KX_LightIpoSGController.h
+++ b/source/gameengine/Ketsji/KX_LightIpoSGController.h
@@ -74,15 +74,15 @@ public:
m_modified = true;
}
- void SetModifyEnergy(bool modify) {
+ void SetModifyEnergy(bool modify) {
m_modify_energy = modify;
}
- void SetModifyColor(bool modify) {
+ void SetModifyColor(bool modify) {
m_modify_color = modify;
}
- void SetModifyDist(bool modify) {
+ void SetModifyDist(bool modify) {
m_modify_dist = modify;
}
diff --git a/source/gameengine/Ketsji/KX_MeshProxy.cpp b/source/gameengine/Ketsji/KX_MeshProxy.cpp
index f1a9a93c2db..8451dc3497d 100644
--- a/source/gameengine/Ketsji/KX_MeshProxy.cpp
+++ b/source/gameengine/Ketsji/KX_MeshProxy.cpp
@@ -105,7 +105,7 @@ KX_MeshProxy::~KX_MeshProxy()
// stuff for cvalue related things
CValue* KX_MeshProxy::Calc(VALUE_OPERATOR op, CValue *val) { return NULL;}
-CValue* KX_MeshProxy::CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val) { return NULL;}
+CValue* KX_MeshProxy::CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val) { return NULL;}
const STR_String & KX_MeshProxy::GetText() {return m_meshobj->GetName();};
double KX_MeshProxy::GetNumber() { return -1;}
@@ -116,7 +116,7 @@ CValue* KX_MeshProxy::GetReplica() { return NULL;}
// stuff for python integration
-PyObject* KX_MeshProxy::PyGetMaterialName(PyObject* args, PyObject* kwds)
+PyObject *KX_MeshProxy::PyGetMaterialName(PyObject *args, PyObject *kwds)
{
int matid= 1;
STR_String matname;
@@ -134,7 +134,7 @@ PyObject* KX_MeshProxy::PyGetMaterialName(PyObject* args, PyObject* kwds)
}
-PyObject* KX_MeshProxy::PyGetTextureName(PyObject* args, PyObject* kwds)
+PyObject *KX_MeshProxy::PyGetTextureName(PyObject *args, PyObject *kwds)
{
int matid= 1;
STR_String matname;
@@ -151,7 +151,7 @@ PyObject* KX_MeshProxy::PyGetTextureName(PyObject* args, PyObject* kwds)
}
-PyObject* KX_MeshProxy::PyGetVertexArrayLength(PyObject* args, PyObject* kwds)
+PyObject *KX_MeshProxy::PyGetVertexArrayLength(PyObject *args, PyObject *kwds)
{
int matid= 0;
int length = 0;
@@ -174,7 +174,7 @@ PyObject* KX_MeshProxy::PyGetVertexArrayLength(PyObject* args, PyObject* kwds)
}
-PyObject* KX_MeshProxy::PyGetVertex(PyObject* args, PyObject* kwds)
+PyObject *KX_MeshProxy::PyGetVertex(PyObject *args, PyObject *kwds)
{
int vertexindex;
int matindex;
@@ -192,10 +192,10 @@ PyObject* KX_MeshProxy::PyGetVertex(PyObject* args, PyObject* kwds)
return (new KX_VertexProxy(this, vertex))->NewProxy(true);
}
-PyObject* KX_MeshProxy::PyGetPolygon(PyObject* args, PyObject* kwds)
+PyObject *KX_MeshProxy::PyGetPolygon(PyObject *args, PyObject *kwds)
{
int polyindex= 1;
- PyObject* polyob = NULL;
+ PyObject *polyob = NULL;
if (!PyArg_ParseTuple(args,"i:getPolygon",&polyindex))
return NULL;
@@ -218,7 +218,7 @@ PyObject* KX_MeshProxy::PyGetPolygon(PyObject* args, PyObject* kwds)
return polyob;
}
-PyObject* KX_MeshProxy::pyattr_get_materials(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_MeshProxy::pyattr_get_materials(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_MeshProxy* self= static_cast<KX_MeshProxy*>(self_v);
@@ -233,7 +233,7 @@ PyObject* KX_MeshProxy::pyattr_get_materials(void *self_v, const KX_PYATTRIBUTE_
for (i=0; i<tot; mit++, i++) {
RAS_IPolyMaterial *polymat = mit->m_bucket->GetPolyMaterial();
- /* Why do we need to check for RAS_BLENDERMAT if both are cast to a (PyObject*)? - Campbell */
+ /* Why do we need to check for RAS_BLENDERMAT if both are cast to a (PyObject *)? - Campbell */
if (polymat->GetFlag() & RAS_BLENDERMAT)
{
KX_BlenderMaterial *mat = static_cast<KX_BlenderMaterial*>(polymat);
@@ -243,7 +243,7 @@ PyObject* KX_MeshProxy::pyattr_get_materials(void *self_v, const KX_PYATTRIBUTE_
KX_PolygonMaterial *mat = static_cast<KX_PolygonMaterial*>(polymat);
PyList_SET_ITEM(materials, i, mat->GetProxy());
}
- }
+ }
return materials;
}
@@ -260,7 +260,7 @@ PyObject * KX_MeshProxy::pyattr_get_numPolygons(void * selfv, const KX_PYATTRIBU
}
/* a close copy of ConvertPythonToGameObject but for meshes */
-bool ConvertPythonToMesh(PyObject * value, RAS_MeshObject **object, bool py_none_ok, const char *error_prefix)
+bool ConvertPythonToMesh(PyObject *value, RAS_MeshObject **object, bool py_none_ok, const char *error_prefix)
{
if (value==NULL) {
PyErr_Format(PyExc_TypeError, "%s, python pointer NULL, should never happen", error_prefix);
@@ -297,7 +297,7 @@ bool ConvertPythonToMesh(PyObject * value, RAS_MeshObject **object, bool py_none
if (kx_mesh==NULL) {
PyErr_Format(PyExc_SystemError, "%s, " BGE_PROXY_ERROR_MSG, error_prefix);
return false;
- }
+ }
*object = kx_mesh->GetMesh();
return true;
diff --git a/source/gameengine/Ketsji/KX_MeshProxy.h b/source/gameengine/Ketsji/KX_MeshProxy.h
index 58b5c87e494..a05ef6ab2e7 100644
--- a/source/gameengine/Ketsji/KX_MeshProxy.h
+++ b/source/gameengine/Ketsji/KX_MeshProxy.h
@@ -37,7 +37,7 @@
#include "SCA_IObject.h"
/* utility conversion function */
-bool ConvertPythonToMesh(PyObject * value, class RAS_MeshObject **object, bool py_none_ok, const char *error_prefix);
+bool ConvertPythonToMesh(PyObject *value, class RAS_MeshObject **object, bool py_none_ok, const char *error_prefix);
class KX_MeshProxy : public CValue
{
@@ -73,8 +73,8 @@ public:
KX_PYMETHOD(KX_MeshProxy,GetPolygon);
static PyObject* pyattr_get_materials(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject * pyattr_get_numMaterials(void * self, const KX_PYATTRIBUTE_DEF * attrdef);
- static PyObject * pyattr_get_numPolygons(void * self, const KX_PYATTRIBUTE_DEF * attrdef);
+ static PyObject *pyattr_get_numMaterials(void * self, const KX_PYATTRIBUTE_DEF * attrdef);
+ static PyObject *pyattr_get_numPolygons(void * self, const KX_PYATTRIBUTE_DEF * attrdef);
};
#endif // WITH_PYTHON
diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
index bfee124d443..3251cc4af46 100644
--- a/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
+++ b/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp
@@ -239,7 +239,7 @@ bool KX_MouseFocusSensor::ParentObjectHasFocusCamera(KX_Camera *cam)
/* build the from and to point in normalized device coordinates
* Normalized device coordinates are [-1,1] in x, y, z
- *
+ *
* The actual z coordinates used don't have to be exact just infront and
* behind of the near and far clip planes.
*/
@@ -392,19 +392,19 @@ PyAttributeDef KX_MouseFocusSensor::Attributes[] = {
};
/* Attributes */
-PyObject* KX_MouseFocusSensor::pyattr_get_ray_source(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_MouseFocusSensor::pyattr_get_ray_source(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_MouseFocusSensor* self= static_cast<KX_MouseFocusSensor*>(self_v);
return PyObjectFrom(self->RaySource());
}
-PyObject* KX_MouseFocusSensor::pyattr_get_ray_target(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_MouseFocusSensor::pyattr_get_ray_target(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_MouseFocusSensor* self= static_cast<KX_MouseFocusSensor*>(self_v);
return PyObjectFrom(self->RayTarget());
}
-PyObject* KX_MouseFocusSensor::pyattr_get_ray_direction(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_MouseFocusSensor::pyattr_get_ray_direction(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_MouseFocusSensor* self= static_cast<KX_MouseFocusSensor*>(self_v);
MT_Vector3 dir = self->RayTarget() - self->RaySource();
@@ -413,7 +413,7 @@ PyObject* KX_MouseFocusSensor::pyattr_get_ray_direction(void *self_v, const KX_P
return PyObjectFrom(dir);
}
-PyObject* KX_MouseFocusSensor::pyattr_get_hit_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_MouseFocusSensor::pyattr_get_hit_object(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_MouseFocusSensor* self= static_cast<KX_MouseFocusSensor*>(self_v);
@@ -423,19 +423,19 @@ PyObject* KX_MouseFocusSensor::pyattr_get_hit_object(void *self_v, const KX_PYAT
Py_RETURN_NONE;
}
-PyObject* KX_MouseFocusSensor::pyattr_get_hit_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_MouseFocusSensor::pyattr_get_hit_position(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_MouseFocusSensor* self= static_cast<KX_MouseFocusSensor*>(self_v);
return PyObjectFrom(self->HitPosition());
}
-PyObject* KX_MouseFocusSensor::pyattr_get_hit_normal(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_MouseFocusSensor::pyattr_get_hit_normal(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_MouseFocusSensor* self= static_cast<KX_MouseFocusSensor*>(self_v);
return PyObjectFrom(self->HitNormal());
}
-PyObject* KX_MouseFocusSensor::pyattr_get_hit_uv(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_MouseFocusSensor::pyattr_get_hit_uv(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_MouseFocusSensor* self= static_cast<KX_MouseFocusSensor*>(self_v);
return PyObjectFrom(self->HitUV());
diff --git a/source/gameengine/Ketsji/KX_NavMeshObject.cpp b/source/gameengine/Ketsji/KX_NavMeshObject.cpp
index 35058e5fe5d..a05292f268a 100644
--- a/source/gameengine/Ketsji/KX_NavMeshObject.cpp
+++ b/source/gameengine/Ketsji/KX_NavMeshObject.cpp
@@ -210,7 +210,7 @@ bool KX_NavMeshObject::BuildVertIndArrays(float *&vertices, int& nverts,
{
//detailed mesh vertex
memcpy(dvertices+3*(newIdx-nverts), allVerts+3*vi, 3*sizeof(float));
- }
+ }
}
}
@@ -245,7 +245,7 @@ bool KX_NavMeshObject::BuildVertIndArrays(float *&vertices, int& nverts,
{
memset(vert, 0, 3*sizeof(float)); //vertex isn't in any poly, set dummy zero coordinates
}
- vert+=3;
+ vert+=3;
}
//create tris
@@ -294,7 +294,7 @@ bool KX_NavMeshObject::BuildNavMesh()
float *vertices = NULL, *dvertices = NULL;
unsigned short *polys = NULL, *dtris = NULL, *dmeshes = NULL;
- int nverts = 0, npolys = 0, ndvertsuniq = 0, ndtris = 0;
+ int nverts = 0, npolys = 0, ndvertsuniq = 0, ndtris = 0;
int vertsPerPoly = 0;
if (!BuildVertIndArrays(vertices, nverts, polys, npolys,
dmeshes, dvertices, ndvertsuniq, dtris, ndtris, vertsPerPoly )
@@ -446,11 +446,11 @@ bool KX_NavMeshObject::BuildNavMesh()
dtl.nverts = dmeshes[i*4+1];
dtl.tbase = dmeshes[i*4+2];
dtl.ntris = dmeshes[i*4+3];
- }
+ }
}
m_navMesh = new dtStatNavMesh;
- m_navMesh->init(data, dataSize, true);
+ m_navMesh->init(data, dataSize, true);
delete [] vertices;
@@ -487,7 +487,7 @@ void KX_NavMeshObject::DrawNavMesh(NavMeshRenderMode renderMode)
const dtStatPoly* poly = m_navMesh->getPoly(pi);
for (int i = 0, j = (int)poly->nv-1; i < (int)poly->nv; j = i++)
- {
+ {
if (poly->n[j] && renderMode==RM_WALLS)
continue;
const float* vif = m_navMesh->getVertex(poly->v[i]);
@@ -564,7 +564,7 @@ int KX_NavMeshObject::FindPath(const MT_Point3& from, const MT_Point3& to, float
if (!m_navMesh)
return 0;
MT_Point3 localfrom = TransformToLocalCoords(from);
- MT_Point3 localto = TransformToLocalCoords(to);
+ MT_Point3 localto = TransformToLocalCoords(to);
float spos[3], epos[3];
localfrom.getValue(spos); flipAxes(spos);
localto.getValue(epos); flipAxes(epos);
@@ -598,7 +598,7 @@ float KX_NavMeshObject::Raycast(const MT_Point3& from, const MT_Point3& to)
if (!m_navMesh)
return 0.f;
MT_Point3 localfrom = TransformToLocalCoords(from);
- MT_Point3 localto = TransformToLocalCoords(to);
+ MT_Point3 localto = TransformToLocalCoords(to);
float spos[3], epos[3];
localfrom.getValue(spos); flipAxes(spos);
localto.getValue(epos); flipAxes(epos);
diff --git a/source/gameengine/Ketsji/KX_ObjectActuator.cpp b/source/gameengine/Ketsji/KX_ObjectActuator.cpp
index a3f098c3b1f..f35090f9e9b 100644
--- a/source/gameengine/Ketsji/KX_ObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KX_ObjectActuator.cpp
@@ -460,7 +460,7 @@ Mathutils_Callback mathutils_obactu_vector_cb = {
mathutils_obactu_vector_set_index
};
-PyObject* KX_ObjectActuator::pyattr_get_linV(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_ObjectActuator::pyattr_get_linV(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
return Vector_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxobactu_vector_cb_index, MATHUTILS_VEC_CB_LINV);
}
@@ -476,7 +476,7 @@ int KX_ObjectActuator::pyattr_set_linV(void *self_v, const KX_PYATTRIBUTE_DEF *a
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_ObjectActuator::pyattr_get_angV(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_ObjectActuator::pyattr_get_angV(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
return Vector_CreatePyObject_cb(BGE_PROXY_FROM_REF(self_v), 3, mathutils_kxobactu_vector_cb_index, MATHUTILS_VEC_CB_ANGV);
}
@@ -501,7 +501,7 @@ void KX_ObjectActuator_Mathutils_Callback_Init(void)
#endif // USE_MATHUTILS
-PyObject* KX_ObjectActuator::pyattr_get_forceLimitX(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_ObjectActuator::pyattr_get_forceLimitX(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_ObjectActuator* self = reinterpret_cast<KX_ObjectActuator*>(self_v);
PyObject *retVal = PyList_New(3);
@@ -517,7 +517,7 @@ int KX_ObjectActuator::pyattr_set_forceLimitX(void *self_v, const KX_PYATTRIBUTE
{
KX_ObjectActuator* self = reinterpret_cast<KX_ObjectActuator*>(self_v);
- PyObject* seq = PySequence_Fast(value, "");
+ PyObject *seq = PySequence_Fast(value, "");
if (seq && PySequence_Fast_GET_SIZE(seq) == 3)
{
self->m_drot[0] = PyFloat_AsDouble(PySequence_Fast_GET_ITEM(value, 0));
@@ -537,7 +537,7 @@ int KX_ObjectActuator::pyattr_set_forceLimitX(void *self_v, const KX_PYATTRIBUTE
return PY_SET_ATTR_FAIL;
}
-PyObject* KX_ObjectActuator::pyattr_get_forceLimitY(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_ObjectActuator::pyattr_get_forceLimitY(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_ObjectActuator* self = reinterpret_cast<KX_ObjectActuator*>(self_v);
PyObject *retVal = PyList_New(3);
@@ -553,7 +553,7 @@ int KX_ObjectActuator::pyattr_set_forceLimitY(void *self_v, const KX_PYATTRIBUTE
{
KX_ObjectActuator* self = reinterpret_cast<KX_ObjectActuator*>(self_v);
- PyObject* seq = PySequence_Fast(value, "");
+ PyObject *seq = PySequence_Fast(value, "");
if (seq && PySequence_Fast_GET_SIZE(seq) == 3)
{
self->m_drot[1] = PyFloat_AsDouble(PySequence_Fast_GET_ITEM(value, 0));
@@ -573,7 +573,7 @@ int KX_ObjectActuator::pyattr_set_forceLimitY(void *self_v, const KX_PYATTRIBUTE
return PY_SET_ATTR_FAIL;
}
-PyObject* KX_ObjectActuator::pyattr_get_forceLimitZ(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_ObjectActuator::pyattr_get_forceLimitZ(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_ObjectActuator* self = reinterpret_cast<KX_ObjectActuator*>(self_v);
PyObject *retVal = PyList_New(3);
@@ -589,7 +589,7 @@ int KX_ObjectActuator::pyattr_set_forceLimitZ(void *self_v, const KX_PYATTRIBUTE
{
KX_ObjectActuator* self = reinterpret_cast<KX_ObjectActuator*>(self_v);
- PyObject* seq = PySequence_Fast(value, "");
+ PyObject *seq = PySequence_Fast(value, "");
if (seq && PySequence_Fast_GET_SIZE(seq) == 3)
{
self->m_drot[2] = PyFloat_AsDouble(PySequence_Fast_GET_ITEM(value, 0));
@@ -609,7 +609,7 @@ int KX_ObjectActuator::pyattr_set_forceLimitZ(void *self_v, const KX_PYATTRIBUTE
return PY_SET_ATTR_FAIL;
}
-PyObject* KX_ObjectActuator::pyattr_get_reference(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_ObjectActuator::pyattr_get_reference(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_ObjectActuator* actuator = static_cast<KX_ObjectActuator*>(self);
if (!actuator->m_reference)
@@ -632,7 +632,7 @@ int KX_ObjectActuator::pyattr_set_reference(void *self, const struct KX_PYATTRIB
if (refOb==NULL) {
actuator->m_reference= NULL;
}
- else {
+ else {
actuator->m_reference = refOb;
actuator->m_reference->RegisterActuator(actuator);
}
diff --git a/source/gameengine/Ketsji/KX_ObstacleSimulation.cpp b/source/gameengine/Ketsji/KX_ObstacleSimulation.cpp
index fd47587e2c8..99d9fc7f9ee 100644
--- a/source/gameengine/Ketsji/KX_ObstacleSimulation.cpp
+++ b/source/gameengine/Ketsji/KX_ObstacleSimulation.cpp
@@ -257,7 +257,7 @@ void KX_ObstacleSimulation::AddObstacleForObj(KX_GameObject* gameobj)
}
void KX_ObstacleSimulation::AddObstaclesForNavMesh(KX_NavMeshObject* navmeshobj)
-{
+{
dtStatNavMesh* navmesh = navmeshobj->GetNavMesh();
if (navmesh)
{
@@ -267,7 +267,7 @@ void KX_ObstacleSimulation::AddObstaclesForNavMesh(KX_NavMeshObject* navmeshobj)
const dtStatPoly* poly = navmesh->getPoly(pi);
for (int i = 0, j = (int)poly->nv-1; i < (int)poly->nv; j = i++)
- {
+ {
if (poly->n[j]) continue;
const float* vj = navmesh->getVertex(poly->v[j]);
const float* vi = navmesh->getVertex(poly->v[i]);
@@ -364,9 +364,9 @@ void KX_ObstacleSimulation::DrawObstacles()
else if (m_obstacles[i]->m_shape==KX_OBSTACLE_CIRCLE)
{
KX_RasterizerDrawDebugCircle(m_obstacles[i]->m_pos, m_obstacles[i]->m_rad, bluecolor,
- normal, SECTORS_NUM);
+ normal, SECTORS_NUM);
}
- }
+ }
}
static MT_Point3 nearestPointToObstacle(MT_Point3& pos ,KX_Obstacle* obstacle)
@@ -378,13 +378,14 @@ static MT_Point3 nearestPointToObstacle(MT_Point3& pos ,KX_Obstacle* obstacle)
MT_Vector3 ab = obstacle->m_pos2 - obstacle->m_pos;
if (!ab.fuzzyZero())
{
+ const MT_Scalar dist = ab.length();
MT_Vector3 abdir = ab.normalized();
MT_Vector3 v = pos - obstacle->m_pos;
MT_Scalar proj = abdir.dot(v);
- CLAMP(proj, 0, ab.length());
+ CLAMP(proj, 0, dist);
MT_Point3 res = obstacle->m_pos + abdir*proj;
return res;
- }
+ }
}
case KX_OBSTACLE_CIRCLE :
default:
@@ -423,7 +424,7 @@ KX_ObstacleSimulationTOI::KX_ObstacleSimulationTOI(MT_Scalar levelHeight, bool e
void KX_ObstacleSimulationTOI::AdjustObstacleVelocity(KX_Obstacle* activeObst, KX_NavMeshObject* activeNavMeshObj,
- MT_Vector3& velocity, MT_Scalar maxDeltaSpeed, MT_Scalar maxDeltaAngle)
+ MT_Vector3& velocity, MT_Scalar maxDeltaSpeed, MT_Scalar maxDeltaAngle)
{
int nobs = m_obstacles.size();
int obstidx = std::find(m_obstacles.begin(), m_obstacles.end(), activeObst) - m_obstacles.begin();
@@ -445,7 +446,7 @@ void KX_ObstacleSimulationTOI::AdjustObstacleVelocity(KX_Obstacle* activeObst, K
vadd(vel, activeObst->vel, dv);
velocity.x() = vel[0];
- velocity.y() = vel[1];
+ velocity.y() = vel[1];
}
///////////*********TOI_rays**********/////////////////
@@ -641,7 +642,7 @@ static void processSamples(KX_Obstacle* activeObst, KX_NavMeshObject* activeNavM
for (int n = 0; n < nspos; ++n)
{
float vcand[2];
- vcpy(vcand, &spos[n*2]);
+ vcpy(vcand, &spos[n*2]);
// Find min time of impact and exit amongst all obstacles.
float tmin = maxToi;
diff --git a/source/gameengine/Ketsji/KX_ObstacleSimulation.h b/source/gameengine/Ketsji/KX_ObstacleSimulation.h
index 5b359fc031e..50589b5bc69 100644
--- a/source/gameengine/Ketsji/KX_ObstacleSimulation.h
+++ b/source/gameengine/Ketsji/KX_ObstacleSimulation.h
@@ -34,13 +34,13 @@ class KX_GameObject;
class KX_NavMeshObject;
enum KX_OBSTACLE_TYPE
-{
+{
KX_OBSTACLE_OBJ,
KX_OBSTACLE_NAV_MESH,
};
enum KX_OBSTACLE_SHAPE
-{
+{
KX_OBSTACLE_CIRCLE,
KX_OBSTACLE_SEGMENT,
};
@@ -86,9 +86,9 @@ public:
void DestroyObstacleForObj(KX_GameObject* gameobj);
void AddObstaclesForNavMesh(KX_NavMeshObject* navmesh);
KX_Obstacle* GetObstacle(KX_GameObject* gameobj);
- void UpdateObstacles();
+ void UpdateObstacles();
virtual void AdjustObstacleVelocity(KX_Obstacle* activeObst, KX_NavMeshObject* activeNavMeshObj,
- MT_Vector3& velocity, MT_Scalar maxDeltaSpeed,MT_Scalar maxDeltaAngle);
+ MT_Vector3& velocity, MT_Scalar maxDeltaSpeed,MT_Scalar maxDeltaAngle);
};
class KX_ObstacleSimulationTOI: public KX_ObstacleSimulation
diff --git a/source/gameengine/Ketsji/KX_ParentActuator.cpp b/source/gameengine/Ketsji/KX_ParentActuator.cpp
index 5058af18d15..6926fdb1d4c 100644
--- a/source/gameengine/Ketsji/KX_ParentActuator.cpp
+++ b/source/gameengine/Ketsji/KX_ParentActuator.cpp
@@ -172,10 +172,10 @@ PyAttributeDef KX_ParentActuator::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* KX_ParentActuator::pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_ParentActuator::pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_ParentActuator* actuator = static_cast<KX_ParentActuator*>(self);
- if (!actuator->m_ob)
+ if (!actuator->m_ob)
Py_RETURN_NONE;
else
return actuator->m_ob->GetProxy();
@@ -190,7 +190,7 @@ int KX_ParentActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUTE
return PY_SET_ATTR_FAIL; // ConvertPythonToGameObject sets the error
if (actuator->m_ob != NULL)
- actuator->m_ob->UnregisterActuator(actuator);
+ actuator->m_ob->UnregisterActuator(actuator);
actuator->m_ob = (SCA_IObject*) gameobj;
diff --git a/source/gameengine/Ketsji/KX_ParentActuator.h b/source/gameengine/Ketsji/KX_ParentActuator.h
index 6191b889da3..f2f5acd3dfb 100644
--- a/source/gameengine/Ketsji/KX_ParentActuator.h
+++ b/source/gameengine/Ketsji/KX_ParentActuator.h
@@ -81,7 +81,7 @@ public:
/* --------------------------------------------------------------------- */
/* These are used to get and set m_ob */
- static PyObject* pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
#endif // WITH_PYTHON
diff --git a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
index 225a1628b3b..f18c35c0c78 100644
--- a/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
+++ b/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
@@ -51,7 +51,7 @@ KX_PhysicsObjectWrapper::~KX_PhysicsObjectWrapper()
#ifdef WITH_PYTHON
-PyObject* KX_PhysicsObjectWrapper::PySetPosition(PyObject* args)
+PyObject *KX_PhysicsObjectWrapper::PySetPosition(PyObject *args)
{
float x,y,z;
if (PyArg_ParseTuple(args,"fff:setPosition",&x,&y,&z))
@@ -65,7 +65,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetPosition(PyObject* args)
}
-PyObject* KX_PhysicsObjectWrapper::PySetLinearVelocity(PyObject* args)
+PyObject *KX_PhysicsObjectWrapper::PySetLinearVelocity(PyObject *args)
{
float x,y,z;
int local;
@@ -79,7 +79,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetLinearVelocity(PyObject* args)
Py_RETURN_NONE;
}
-PyObject* KX_PhysicsObjectWrapper::PySetAngularVelocity(PyObject* args)
+PyObject *KX_PhysicsObjectWrapper::PySetAngularVelocity(PyObject *args)
{
float x,y,z;
int local;
@@ -93,7 +93,7 @@ PyObject* KX_PhysicsObjectWrapper::PySetAngularVelocity(PyObject* args)
Py_RETURN_NONE;
}
-PyObject* KX_PhysicsObjectWrapper::PySetActive(PyObject* args)
+PyObject* KX_PhysicsObjectWrapper::PySetActive(PyObject *args)
{
int active;
if (PyArg_ParseTuple(args,"i:setActive",&active))
diff --git a/source/gameengine/Ketsji/KX_PolyProxy.cpp b/source/gameengine/Ketsji/KX_PolyProxy.cpp
index 85c88337d60..13b6bda4ebc 100644
--- a/source/gameengine/Ketsji/KX_PolyProxy.cpp
+++ b/source/gameengine/Ketsji/KX_PolyProxy.cpp
@@ -102,7 +102,7 @@ KX_PolyProxy::~KX_PolyProxy()
// stuff for cvalue related things
CValue* KX_PolyProxy::Calc(VALUE_OPERATOR, CValue *) { return NULL;}
-CValue* KX_PolyProxy::CalcFinal(VALUE_DATA_TYPE, VALUE_OPERATOR, CValue *) { return NULL;}
+CValue* KX_PolyProxy::CalcFinal(VALUE_DATA_TYPE, VALUE_OPERATOR, CValue *) { return NULL;}
STR_String sPolyName="polygone";
const STR_String & KX_PolyProxy::GetText() {return sPolyName;};
double KX_PolyProxy::GetNumber() { return -1;}
@@ -112,52 +112,52 @@ CValue* KX_PolyProxy::GetReplica() { return NULL;}
// stuff for python integration
-PyObject* KX_PolyProxy::pyattr_get_material_name(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolyProxy::pyattr_get_material_name(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolyProxy* self= static_cast<KX_PolyProxy*>(self_v);
return self->PygetMaterialName();
}
-PyObject* KX_PolyProxy::pyattr_get_texture_name(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolyProxy::pyattr_get_texture_name(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolyProxy* self= static_cast<KX_PolyProxy*>(self_v);
return self->PygetTextureName();
}
-PyObject* KX_PolyProxy::pyattr_get_material(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolyProxy::pyattr_get_material(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolyProxy* self= static_cast<KX_PolyProxy*>(self_v);
return self->PygetMaterial();
}
-PyObject* KX_PolyProxy::pyattr_get_material_id(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolyProxy::pyattr_get_material_id(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolyProxy* self= static_cast<KX_PolyProxy*>(self_v);
return self->PygetMaterialIndex();
}
-PyObject* KX_PolyProxy::pyattr_get_v1(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolyProxy::pyattr_get_v1(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolyProxy* self= static_cast<KX_PolyProxy*>(self_v);
return PyLong_FromSsize_t(self->m_polygon->GetVertexOffsetAbs(self->m_mesh, 0));
}
-PyObject* KX_PolyProxy::pyattr_get_v2(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolyProxy::pyattr_get_v2(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolyProxy* self= static_cast<KX_PolyProxy*>(self_v);
return PyLong_FromSsize_t(self->m_polygon->GetVertexOffsetAbs(self->m_mesh, 1));
}
-PyObject* KX_PolyProxy::pyattr_get_v3(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolyProxy::pyattr_get_v3(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolyProxy* self= static_cast<KX_PolyProxy*>(self_v);
return PyLong_FromSsize_t(self->m_polygon->GetVertexOffsetAbs(self->m_mesh, 2));
}
-PyObject* KX_PolyProxy::pyattr_get_v4(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolyProxy::pyattr_get_v4(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolyProxy* self= static_cast<KX_PolyProxy*>(self_v);
@@ -168,13 +168,13 @@ PyObject* KX_PolyProxy::pyattr_get_v4(void *self_v, const KX_PYATTRIBUTE_DEF *at
return PyLong_FromSsize_t(0);
}
-PyObject* KX_PolyProxy::pyattr_get_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolyProxy::pyattr_get_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolyProxy* self= static_cast<KX_PolyProxy*>(self_v);
return self->PyisVisible();
}
-PyObject* KX_PolyProxy::pyattr_get_collide(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolyProxy::pyattr_get_collide(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolyProxy* self= static_cast<KX_PolyProxy*>(self_v);
return self->PyisCollider();
diff --git a/source/gameengine/Ketsji/KX_PolyProxy.h b/source/gameengine/Ketsji/KX_PolyProxy.h
index 83c3bff0ee2..9e3556a03f8 100644
--- a/source/gameengine/Ketsji/KX_PolyProxy.h
+++ b/source/gameengine/Ketsji/KX_PolyProxy.h
@@ -57,16 +57,16 @@ public:
// stuff for python integration
- static PyObject* pyattr_get_material_name(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_texture_name(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_material(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_material_id(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_v1(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_v2(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_v3(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_v4(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_collide(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_material_name(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_texture_name(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_material(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_material_id(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_v1(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_v2(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_v3(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_v4(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_visible(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_collide(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
KX_PYMETHOD_DOC_NOARGS(KX_PolyProxy,getMaterialIndex)
KX_PYMETHOD_DOC_NOARGS(KX_PolyProxy,getNumVertex)
diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
index 2e39190f4f9..3b58a8abd83 100644
--- a/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
+++ b/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
@@ -143,7 +143,7 @@ bool KX_PolygonMaterial::Activate(RAS_IRasterizer* rasty, TCachingInfo& cachingI
{
PyObject *pyRasty = PyCapsule_New((void*)rasty, KX_POLYGONMATERIAL_CAPSULE_ID, NULL); /* new reference */
PyObject *pyCachingInfo = PyCapsule_New((void*) &cachingInfo, KX_POLYGONMATERIAL_CAPSULE_ID, NULL); /* new reference */
- PyObject *ret = PyObject_CallMethod(m_pymaterial, (char *)"activate", (char *)"(NNO)", pyRasty, pyCachingInfo, (PyObject*) this->m_proxy);
+ PyObject *ret = PyObject_CallMethod(m_pymaterial, (char *)"activate", (char *)"(NNO)", pyRasty, pyCachingInfo, (PyObject *) this->m_proxy);
if (ret)
{
bool value = PyLong_AsSsize_t(ret);
@@ -252,7 +252,7 @@ PyAttributeDef KX_PolygonMaterial::Attributes[] = {
KX_PYATTRIBUTE_INT_RW("tile", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_tile),
KX_PYATTRIBUTE_INT_RW("tilexrep", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_tilexrep),
KX_PYATTRIBUTE_INT_RW("tileyrep", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_tileyrep),
- KX_PYATTRIBUTE_INT_RW("drawingmode", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_drawingmode),
+ KX_PYATTRIBUTE_INT_RW("drawingmode", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_drawingmode),
//KX_PYATTRIBUTE_INT_RW("lightlayer", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_lightlayer),
KX_PYATTRIBUTE_BOOL_RW("transparent", KX_PolygonMaterial, m_alpha),
@@ -262,7 +262,7 @@ PyAttributeDef KX_PolygonMaterial::Attributes[] = {
KX_PYATTRIBUTE_FLOAT_RW("specularity", 0.0f, 1000.0f, KX_PolygonMaterial, m_specularity),
KX_PYATTRIBUTE_RW_FUNCTION("diffuse", KX_PolygonMaterial, pyattr_get_diffuse, pyattr_set_diffuse),
- KX_PYATTRIBUTE_RW_FUNCTION("specular",KX_PolygonMaterial, pyattr_get_specular, pyattr_set_specular),
+ KX_PYATTRIBUTE_RW_FUNCTION("specular",KX_PolygonMaterial, pyattr_get_specular, pyattr_set_specular),
KX_PYATTRIBUTE_RO_FUNCTION("tface", KX_PolygonMaterial, pyattr_get_tface), /* How the heck is this even useful??? - Campbell */
KX_PYATTRIBUTE_RO_FUNCTION("gl_texture", KX_PolygonMaterial, pyattr_get_gl_texture), /* could be called 'bindcode' */
@@ -355,26 +355,26 @@ KX_PYMETHODDEF_DOC(KX_PolygonMaterial, activate, "activate(rasty, cachingInfo)")
return NULL;
}
-PyObject* KX_PolygonMaterial::pyattr_get_texture(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolygonMaterial::pyattr_get_texture(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolygonMaterial* self= static_cast<KX_PolygonMaterial*>(self_v);
return PyUnicode_From_STR_String(self->m_texturename);
}
-PyObject* KX_PolygonMaterial::pyattr_get_material(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolygonMaterial::pyattr_get_material(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolygonMaterial* self= static_cast<KX_PolygonMaterial*>(self_v);
return PyUnicode_From_STR_String(self->m_materialname);
}
/* this does not seem useful */
-PyObject* KX_PolygonMaterial::pyattr_get_tface(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolygonMaterial::pyattr_get_tface(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolygonMaterial* self= static_cast<KX_PolygonMaterial*>(self_v);
return PyCapsule_New(&self->m_tface, KX_POLYGONMATERIAL_CAPSULE_ID, NULL);
}
-PyObject* KX_PolygonMaterial::pyattr_get_gl_texture(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolygonMaterial::pyattr_get_gl_texture(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolygonMaterial* self= static_cast<KX_PolygonMaterial*>(self_v);
int bindcode= 0;
@@ -385,7 +385,7 @@ PyObject* KX_PolygonMaterial::pyattr_get_gl_texture(void *self_v, const KX_PYATT
}
-PyObject* KX_PolygonMaterial::pyattr_get_diffuse(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolygonMaterial::pyattr_get_diffuse(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolygonMaterial* self= static_cast<KX_PolygonMaterial*>(self_v);
return PyObjectFrom(self->m_diffuse);
@@ -403,7 +403,7 @@ int KX_PolygonMaterial::pyattr_set_diffuse(void *self_v, const KX_PYATTRIBUTE_DE
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_PolygonMaterial::pyattr_get_specular(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_PolygonMaterial::pyattr_get_specular(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_PolygonMaterial* self= static_cast<KX_PolygonMaterial*>(self_v);
return PyObjectFrom(self->m_specular);
diff --git a/source/gameengine/Ketsji/KX_PolygonMaterial.h b/source/gameengine/Ketsji/KX_PolygonMaterial.h
index f7ad3973212..6384008fb7d 100644
--- a/source/gameengine/Ketsji/KX_PolygonMaterial.h
+++ b/source/gameengine/Ketsji/KX_PolygonMaterial.h
@@ -137,7 +137,7 @@ public:
KX_PYMETHOD_DOC(KX_PolygonMaterial, setCustomMaterial);
KX_PYMETHOD_DOC(KX_PolygonMaterial, loadProgram);
- virtual PyObject* py_repr(void) { return PyUnicode_FromString(m_material ? ((ID *)m_material)->name+2 : ""); }
+ virtual PyObject *py_repr(void) { return PyUnicode_FromString(m_material ? ((ID *)m_material)->name+2 : ""); }
static PyObject* pyattr_get_texture(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static PyObject* pyattr_get_material(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
@@ -145,9 +145,9 @@ public:
static PyObject* pyattr_get_tface(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static PyObject* pyattr_get_gl_texture(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_diffuse(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject* pyattr_get_diffuse(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_diffuse(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
- static PyObject* pyattr_get_specular(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject* pyattr_get_specular(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_specular(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
#endif
diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
index 556d451cf66..5f3a4879150 100644
--- a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
+++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
@@ -89,9 +89,9 @@ static char gPyGetAppliedImpulse__doc__[] = "getAppliedImpulse(int constraintId)
-static PyObject* gPySetGravity(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetGravity(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
float x,y,z;
if (PyArg_ParseTuple(args,"fff",&x,&y,&z))
@@ -106,9 +106,9 @@ static PyObject* gPySetGravity(PyObject* self,
Py_RETURN_NONE;
}
-static PyObject* gPySetDebugMode(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetDebugMode(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
int mode;
if (PyArg_ParseTuple(args,"i",&mode))
@@ -129,9 +129,9 @@ static PyObject* gPySetDebugMode(PyObject* self,
-static PyObject* gPySetNumTimeSubSteps(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetNumTimeSubSteps(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
int substep;
if (PyArg_ParseTuple(args,"i",&substep))
@@ -148,9 +148,9 @@ static PyObject* gPySetNumTimeSubSteps(PyObject* self,
}
-static PyObject* gPySetNumIterations(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetNumIterations(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
int iter;
if (PyArg_ParseTuple(args,"i",&iter))
@@ -167,9 +167,9 @@ static PyObject* gPySetNumIterations(PyObject* self,
}
-static PyObject* gPySetDeactivationTime(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetDeactivationTime(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
float deactive_time;
if (PyArg_ParseTuple(args,"f",&deactive_time))
@@ -186,9 +186,9 @@ static PyObject* gPySetDeactivationTime(PyObject* self,
}
-static PyObject* gPySetDeactivationLinearTreshold(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetDeactivationLinearTreshold(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
float linearDeactivationTreshold;
if (PyArg_ParseTuple(args,"f",&linearDeactivationTreshold))
@@ -205,9 +205,9 @@ static PyObject* gPySetDeactivationLinearTreshold(PyObject* self,
}
-static PyObject* gPySetDeactivationAngularTreshold(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetDeactivationAngularTreshold(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
float angularDeactivationTreshold;
if (PyArg_ParseTuple(args,"f",&angularDeactivationTreshold))
@@ -223,9 +223,9 @@ static PyObject* gPySetDeactivationAngularTreshold(PyObject* self,
Py_RETURN_NONE;
}
-static PyObject* gPySetContactBreakingTreshold(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetContactBreakingTreshold(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
float contactBreakingTreshold;
if (PyArg_ParseTuple(args,"f",&contactBreakingTreshold))
@@ -242,9 +242,9 @@ static PyObject* gPySetContactBreakingTreshold(PyObject* self,
}
-static PyObject* gPySetCcdMode(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetCcdMode(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
float ccdMode;
if (PyArg_ParseTuple(args,"f",&ccdMode))
@@ -260,9 +260,9 @@ static PyObject* gPySetCcdMode(PyObject* self,
Py_RETURN_NONE;
}
-static PyObject* gPySetSorConstant(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetSorConstant(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
float sor;
if (PyArg_ParseTuple(args,"f",&sor))
@@ -278,9 +278,9 @@ static PyObject* gPySetSorConstant(PyObject* self,
Py_RETURN_NONE;
}
-static PyObject* gPySetSolverTau(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetSolverTau(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
float tau;
if (PyArg_ParseTuple(args,"f",&tau))
@@ -297,9 +297,9 @@ static PyObject* gPySetSolverTau(PyObject* self,
}
-static PyObject* gPySetSolverDamping(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetSolverDamping(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
float damping;
if (PyArg_ParseTuple(args,"f",&damping))
@@ -315,9 +315,9 @@ static PyObject* gPySetSolverDamping(PyObject* self,
Py_RETURN_NONE;
}
-static PyObject* gPySetLinearAirDamping(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetLinearAirDamping(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
float damping;
if (PyArg_ParseTuple(args,"f",&damping))
@@ -334,9 +334,9 @@ static PyObject* gPySetLinearAirDamping(PyObject* self,
}
-static PyObject* gPySetUseEpa(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetUseEpa(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
int epa;
if (PyArg_ParseTuple(args,"i",&epa))
@@ -351,9 +351,9 @@ static PyObject* gPySetUseEpa(PyObject* self,
}
Py_RETURN_NONE;
}
-static PyObject* gPySetSolverType(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPySetSolverType(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
int solverType;
if (PyArg_ParseTuple(args,"i",&solverType))
@@ -371,9 +371,9 @@ static PyObject* gPySetSolverType(PyObject* self,
-static PyObject* gPyGetVehicleConstraint(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPyGetVehicleConstraint(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
#if defined(_WIN64)
__int64 constraintid;
@@ -403,9 +403,9 @@ static PyObject* gPyGetVehicleConstraint(PyObject* self,
}
-static PyObject* gPyCreateConstraint(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPyCreateConstraint(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
/* FIXME - physicsid is a long being cast to a pointer, should at least use PyCapsule */
#if defined(_WIN64)
@@ -435,7 +435,7 @@ static PyObject* gPyCreateConstraint(PyObject* self,
#else
success = PyArg_ParseTuple(args,"llifff",&physicsid,&physicsid2,&constrainttype,
&pivotX,&pivotY,&pivotZ);
-#endif
+#endif
}
else if (len == 9)
{
@@ -521,9 +521,9 @@ static PyObject* gPyCreateConstraint(PyObject* self,
-static PyObject* gPyGetAppliedImpulse(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPyGetAppliedImpulse(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
float appliedImpulse = 0.f;
@@ -548,9 +548,9 @@ static PyObject* gPyGetAppliedImpulse(PyObject* self,
}
-static PyObject* gPyRemoveConstraint(PyObject* self,
- PyObject* args,
- PyObject* kwds)
+static PyObject *gPyRemoveConstraint(PyObject *self,
+ PyObject *args,
+ PyObject *kwds)
{
#if defined(_WIN64)
__int64 constraintid;
@@ -572,7 +572,7 @@ static PyObject* gPyRemoveConstraint(PyObject* self,
Py_RETURN_NONE;
}
-static PyObject* gPyExportBulletFile(PyObject*, PyObject* args)
+static PyObject *gPyExportBulletFile(PyObject *, PyObject *args)
{
char* filename;
if (!PyArg_ParseTuple(args,"s:exportBulletFile",&filename))
@@ -655,13 +655,13 @@ static struct PyModuleDef PhysicsConstraints_module_def = {
0, /* m_free */
};
-PyObject* initPythonConstraintBinding()
+PyObject *initPythonConstraintBinding()
{
- PyObject* ErrorObject;
- PyObject* m;
- PyObject* d;
- PyObject* item;
+ PyObject *ErrorObject;
+ PyObject *m;
+ PyObject *d;
+ PyObject *item;
/* Use existing module where possible
* be careful not to init any runtime vars after this */
@@ -716,10 +716,11 @@ PyObject* initPythonConstraintBinding()
return d;
}
-
-void KX_RemovePythonConstraintBinding()
+#if 0
+static void KX_RemovePythonConstraintBinding()
{
}
+#endif
void PHY_SetActiveEnvironment(class PHY_IPhysicsEnvironment* env)
{
diff --git a/source/gameengine/Ketsji/KX_PyMath.cpp b/source/gameengine/Ketsji/KX_PyMath.cpp
index f459b806d2f..bc324c3b140 100644
--- a/source/gameengine/Ketsji/KX_PyMath.cpp
+++ b/source/gameengine/Ketsji/KX_PyMath.cpp
@@ -47,7 +47,7 @@
#include "KX_Python.h"
#include "KX_PyMath.h"
-bool PyOrientationTo(PyObject* pyval, MT_Matrix3x3 &rot, const char *error_prefix)
+bool PyOrientationTo(PyObject *pyval, MT_Matrix3x3 &rot, const char *error_prefix)
{
int size= PySequence_Size(pyval);
@@ -80,7 +80,7 @@ bool PyOrientationTo(PyObject* pyval, MT_Matrix3x3 &rot, const char *error_prefi
return false;
}
-bool PyQuatTo(PyObject* pyval, MT_Quaternion &qrot)
+bool PyQuatTo(PyObject *pyval, MT_Quaternion &qrot)
{
if (!PyVecTo(pyval, qrot))
return false;
@@ -95,7 +95,7 @@ bool PyQuatTo(PyObject* pyval, MT_Quaternion &qrot)
return true;
}
-PyObject* PyObjectFrom(const MT_Matrix4x4 &mat)
+PyObject *PyObjectFrom(const MT_Matrix4x4 &mat)
{
#ifdef USE_MATHUTILS
float fmat[16];
@@ -119,7 +119,7 @@ PyObject* PyObjectFrom(const MT_Matrix4x4 &mat)
#endif
}
-PyObject* PyObjectFrom(const MT_Matrix3x3 &mat)
+PyObject *PyObjectFrom(const MT_Matrix3x3 &mat)
{
#ifdef USE_MATHUTILS
float fmat[9];
@@ -143,7 +143,7 @@ PyObject* PyObjectFrom(const MT_Matrix3x3 &mat)
}
#ifdef USE_MATHUTILS
-PyObject* PyObjectFrom(const MT_Quaternion &qrot)
+PyObject *PyObjectFrom(const MT_Quaternion &qrot)
{
/* NOTE, were re-ordering here for Mathutils compat */
float fvec[4];
@@ -152,7 +152,7 @@ PyObject* PyObjectFrom(const MT_Quaternion &qrot)
}
#endif
-PyObject* PyObjectFrom(const MT_Tuple4 &vec)
+PyObject *PyObjectFrom(const MT_Tuple4 &vec)
{
#ifdef USE_MATHUTILS
float fvec[4];
@@ -168,7 +168,7 @@ PyObject* PyObjectFrom(const MT_Tuple4 &vec)
#endif
}
-PyObject* PyObjectFrom(const MT_Tuple3 &vec)
+PyObject *PyObjectFrom(const MT_Tuple3 &vec)
{
#ifdef USE_MATHUTILS
float fvec[3];
@@ -180,10 +180,10 @@ PyObject* PyObjectFrom(const MT_Tuple3 &vec)
PyList_SET_ITEM(list, 1, PyFloat_FromDouble(vec[1]));
PyList_SET_ITEM(list, 2, PyFloat_FromDouble(vec[2]));
return list;
-#endif
+#endif
}
-PyObject* PyObjectFrom(const MT_Tuple2 &vec)
+PyObject *PyObjectFrom(const MT_Tuple2 &vec)
{
#ifdef USE_MATHUTILS
float fvec[2];
diff --git a/source/gameengine/Ketsji/KX_PyMath.h b/source/gameengine/Ketsji/KX_PyMath.h
index 8924567acde..d79397ed807 100644
--- a/source/gameengine/Ketsji/KX_PyMath.h
+++ b/source/gameengine/Ketsji/KX_PyMath.h
@@ -61,7 +61,7 @@ inline unsigned int Size(const MT_Tuple4&) { return 4; }
* Converts the given python matrix (column-major) to an MT class (row-major).
*/
template<class T>
-bool PyMatTo(PyObject* pymat, T& mat)
+bool PyMatTo(PyObject *pymat, T& mat)
{
bool noerror = true;
mat.setIdentity();
@@ -133,14 +133,14 @@ bool PyMatTo(PyObject* pymat, T& mat)
* Converts a python sequence to a MT class.
*/
template<class T>
-bool PyVecTo(PyObject* pyval, T& vec)
+bool PyVecTo(PyObject *pyval, T& vec)
{
#ifdef USE_MATHUTILS
/* no need for BaseMath_ReadCallback() here, reading the sequences will do this */
- if(VectorObject_Check(pyval)) {
+ if (VectorObject_Check(pyval)) {
VectorObject *pyvec= (VectorObject *)pyval;
- if(BaseMath_ReadCallback(pyvec) == -1) {
+ if (BaseMath_ReadCallback(pyvec) == -1) {
return false; /* exception raised */
}
if (pyvec->size != Size(vec)) {
@@ -150,9 +150,9 @@ bool PyVecTo(PyObject* pyval, T& vec)
vec.setValue((float *) pyvec->vec);
return true;
}
- else if(QuaternionObject_Check(pyval)) {
+ else if (QuaternionObject_Check(pyval)) {
QuaternionObject *pyquat= (QuaternionObject *)pyval;
- if(BaseMath_ReadCallback(pyquat) == -1) {
+ if (BaseMath_ReadCallback(pyquat) == -1) {
return false; /* exception raised */
}
if (4 != Size(vec)) {
@@ -163,9 +163,9 @@ bool PyVecTo(PyObject* pyval, T& vec)
vec.setValue((float *) pyquat->quat);
return true;
}
- else if(EulerObject_Check(pyval)) {
+ else if (EulerObject_Check(pyval)) {
EulerObject *pyeul= (EulerObject *)pyval;
- if(BaseMath_ReadCallback(pyeul) == -1) {
+ if (BaseMath_ReadCallback(pyeul) == -1) {
return false; /* exception raised */
}
if (3 != Size(vec)) {
@@ -174,10 +174,10 @@ bool PyVecTo(PyObject* pyval, T& vec)
}
vec.setValue((float *) pyeul->eul);
return true;
- } else
+ }
+ else
#endif
- if(PyTuple_Check(pyval))
- {
+ if (PyTuple_Check(pyval)) {
unsigned int numitems = PyTuple_GET_SIZE(pyval);
if (numitems != Size(vec)) {
PyErr_Format(PyExc_AttributeError, "error setting vector, %d args, should be %d", numitems, Size(vec));
@@ -194,8 +194,8 @@ bool PyVecTo(PyObject* pyval, T& vec)
return true;
}
- else if (PyObject_TypeCheck(pyval, (PyTypeObject *)&PyObjectPlus::Type))
- { /* note, include this check because PySequence_Check does too much introspection
+ else if (PyObject_TypeCheck(pyval, (PyTypeObject *)&PyObjectPlus::Type)) {
+ /* note, include this check because PySequence_Check does too much introspection
* on the PyObject (like getting its __class__, on a BGE type this means searching up
* the parent list each time only to discover its not a sequence.
* GameObjects are often used as an alternative to vectors so this is a common case
@@ -207,16 +207,14 @@ bool PyVecTo(PyObject* pyval, T& vec)
PyErr_Format(PyExc_AttributeError, "expected a sequence type");
return false;
}
- else if (PySequence_Check(pyval))
- {
+ else if (PySequence_Check(pyval)) {
unsigned int numitems = PySequence_Size(pyval);
if (numitems != Size(vec)) {
PyErr_Format(PyExc_AttributeError, "error setting vector, %d args, should be %d", numitems, Size(vec));
return false;
}
- for (unsigned int x = 0; x < numitems; x++)
- {
+ for (unsigned int x = 0; x < numitems; x++) {
PyObject *item = PySequence_GetItem(pyval, x); /* new ref */
vec[x] = PyFloat_AsDouble(item);
Py_DECREF(item);
@@ -228,8 +226,8 @@ bool PyVecTo(PyObject* pyval, T& vec)
}
return true;
- } else
- {
+ }
+ else {
PyErr_Format(PyExc_AttributeError, "not a sequence type, expected a sequence of numbers size %d", Size(vec));
}
@@ -237,41 +235,41 @@ bool PyVecTo(PyObject* pyval, T& vec)
}
-bool PyQuatTo(PyObject* pyval, MT_Quaternion &qrot);
+bool PyQuatTo(PyObject *pyval, MT_Quaternion &qrot);
-bool PyOrientationTo(PyObject* pyval, MT_Matrix3x3 &mat, const char *error_prefix);
+bool PyOrientationTo(PyObject *pyval, MT_Matrix3x3 &mat, const char *error_prefix);
/**
* Converts an MT_Matrix4x4 to a python object.
*/
-PyObject* PyObjectFrom(const MT_Matrix4x4 &mat);
+PyObject *PyObjectFrom(const MT_Matrix4x4 &mat);
/**
* Converts an MT_Matrix3x3 to a python object.
*/
-PyObject* PyObjectFrom(const MT_Matrix3x3 &mat);
+PyObject *PyObjectFrom(const MT_Matrix3x3 &mat);
/**
* Converts an MT_Tuple2 to a python object.
*/
-PyObject* PyObjectFrom(const MT_Tuple2 &vec);
+PyObject *PyObjectFrom(const MT_Tuple2 &vec);
/**
* Converts an MT_Tuple3 to a python object
*/
-PyObject* PyObjectFrom(const MT_Tuple3 &vec);
+PyObject *PyObjectFrom(const MT_Tuple3 &vec);
#ifdef USE_MATHUTILS
/**
* Converts an MT_Quaternion to a python object.
*/
-PyObject* PyObjectFrom(const MT_Quaternion &qrot);
+PyObject *PyObjectFrom(const MT_Quaternion &qrot);
#endif
/**
* Converts an MT_Tuple4 to a python object.
*/
-PyObject* PyObjectFrom(const MT_Tuple4 &pos);
+PyObject *PyObjectFrom(const MT_Tuple4 &pos);
#endif
diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp
index 823363dfd11..43fca40f2da 100644
--- a/source/gameengine/Ketsji/KX_PythonInit.cpp
+++ b/source/gameengine/Ketsji/KX_PythonInit.cpp
@@ -133,7 +133,6 @@ extern "C" {
#include "PHY_IPhysicsEnvironment.h"
#include "BKE_main.h"
-#include "BKE_utildefines.h"
#include "BKE_global.h"
#include "BLI_blenlib.h"
#include "GPU_material.h"
@@ -211,15 +210,15 @@ static PyObject *gp_OrigPythonSysModules= NULL;
#include "SCA_PythonController.h"
// List of methods defined in the module
-static PyObject* ErrorObject;
+static PyObject *ErrorObject;
static const char *gPyGetRandomFloat_doc="getRandomFloat returns a random floating point value in the range [0..1]";
-static PyObject* gPyGetRandomFloat(PyObject*)
+static PyObject *gPyGetRandomFloat(PyObject *)
{
return PyFloat_FromDouble(MT_random());
}
-static PyObject* gPySetGravity(PyObject*, PyObject* value)
+static PyObject *gPySetGravity(PyObject *, PyObject *value)
{
MT_Vector3 vec;
if (!PyVecTo(value, vec))
@@ -241,7 +240,7 @@ file to make a full path name (doesn't change during the game, even if you load\
other .blend).\n\
The function also converts the directory separator to the local file system format.";
-static PyObject* gPyExpandPath(PyObject*, PyObject* args)
+static PyObject *gPyExpandPath(PyObject *, PyObject *args)
{
char expanded[FILE_MAX];
char* filename;
@@ -258,7 +257,7 @@ static char gPyStartGame_doc[] =
"startGame(blend)\n\
Loads the blend file";
-static PyObject* gPyStartGame(PyObject*, PyObject* args)
+static PyObject *gPyStartGame(PyObject *, PyObject *args)
{
char* blendfile;
@@ -275,7 +274,7 @@ static char gPyEndGame_doc[] =
"endGame()\n\
Ends the current game";
-static PyObject* gPyEndGame(PyObject*)
+static PyObject *gPyEndGame(PyObject *)
{
gp_KetsjiEngine->RequestExit(KX_EXIT_REQUEST_QUIT_GAME);
@@ -288,7 +287,7 @@ static char gPyRestartGame_doc[] =
"restartGame()\n\
Restarts the current game by reloading the .blend file";
-static PyObject* gPyRestartGame(PyObject*)
+static PyObject *gPyRestartGame(PyObject *)
{
gp_KetsjiEngine->RequestExit(KX_EXIT_REQUEST_RESTART_GAME);
gp_KetsjiEngine->SetNameNextGame(gp_GamePythonPath);
@@ -300,7 +299,7 @@ static char gPySaveGlobalDict_doc[] =
"saveGlobalDict()\n"
"Saves bge.logic.globalDict to a file";
-static PyObject* gPySaveGlobalDict(PyObject*)
+static PyObject *gPySaveGlobalDict(PyObject *)
{
char marshal_path[512];
char *marshal_buffer = NULL;
@@ -337,7 +336,7 @@ static char gPyLoadGlobalDict_doc[] =
"LoadGlobalDict()\n"
"Loads bge.logic.globalDict from a file";
-static PyObject* gPyLoadGlobalDict(PyObject*)
+static PyObject *gPyLoadGlobalDict(PyObject *)
{
char marshal_path[512];
char *marshal_buffer = NULL;
@@ -382,7 +381,7 @@ body = Message body\
to = Name of object to send the message to\
from = Name of object to send the string from";
-static PyObject* gPySendMessage(PyObject*, PyObject* args)
+static PyObject *gPySendMessage(PyObject *, PyObject *args)
{
char* subject;
char* body = (char *)"";
@@ -398,9 +397,9 @@ static PyObject* gPySendMessage(PyObject*, PyObject* args)
}
// this gets a pointer to an array filled with floats
-static PyObject* gPyGetSpectrum(PyObject*)
+static PyObject *gPyGetSpectrum(PyObject *)
{
- PyObject* resultlist = PyList_New(512);
+ PyObject *resultlist = PyList_New(512);
for (int index = 0; index < 512; index++)
{
@@ -410,7 +409,7 @@ static PyObject* gPyGetSpectrum(PyObject*)
return resultlist;
}
-static PyObject* gPySetLogicTicRate(PyObject*, PyObject* args)
+static PyObject *gPySetLogicTicRate(PyObject *, PyObject *args)
{
float ticrate;
if (!PyArg_ParseTuple(args, "f:setLogicTicRate", &ticrate))
@@ -420,12 +419,12 @@ static PyObject* gPySetLogicTicRate(PyObject*, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject* gPyGetLogicTicRate(PyObject*)
+static PyObject *gPyGetLogicTicRate(PyObject *)
{
return PyFloat_FromDouble(KX_KetsjiEngine::GetTicRate());
}
-static PyObject* gPySetExitKey(PyObject*, PyObject* args)
+static PyObject *gPySetExitKey(PyObject *, PyObject *args)
{
short exitkey;
if (!PyArg_ParseTuple(args, "h:setExitKey", &exitkey))
@@ -434,12 +433,12 @@ static PyObject* gPySetExitKey(PyObject*, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject* gPyGetExitKey(PyObject*)
+static PyObject *gPyGetExitKey(PyObject *)
{
return PyLong_FromSsize_t(KX_KetsjiEngine::GetExitKey());
}
-static PyObject* gPySetMaxLogicFrame(PyObject*, PyObject* args)
+static PyObject *gPySetMaxLogicFrame(PyObject *, PyObject *args)
{
int frame;
if (!PyArg_ParseTuple(args, "i:setMaxLogicFrame", &frame))
@@ -449,12 +448,12 @@ static PyObject* gPySetMaxLogicFrame(PyObject*, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject* gPyGetMaxLogicFrame(PyObject*)
+static PyObject *gPyGetMaxLogicFrame(PyObject *)
{
return PyLong_FromSsize_t(KX_KetsjiEngine::GetMaxLogicFrame());
}
-static PyObject* gPySetMaxPhysicsFrame(PyObject*, PyObject* args)
+static PyObject *gPySetMaxPhysicsFrame(PyObject *, PyObject *args)
{
int frame;
if (!PyArg_ParseTuple(args, "i:setMaxPhysicsFrame", &frame))
@@ -464,12 +463,12 @@ static PyObject* gPySetMaxPhysicsFrame(PyObject*, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject* gPyGetMaxPhysicsFrame(PyObject*)
+static PyObject *gPyGetMaxPhysicsFrame(PyObject *)
{
return PyLong_FromSsize_t(KX_KetsjiEngine::GetMaxPhysicsFrame());
}
-static PyObject* gPySetPhysicsTicRate(PyObject*, PyObject* args)
+static PyObject *gPySetPhysicsTicRate(PyObject *, PyObject *args)
{
float ticrate;
if (!PyArg_ParseTuple(args, "f:setPhysicsTicRate", &ticrate))
@@ -479,7 +478,7 @@ static PyObject* gPySetPhysicsTicRate(PyObject*, PyObject* args)
Py_RETURN_NONE;
}
#if 0 // unused
-static PyObject* gPySetPhysicsDebug(PyObject*, PyObject* args)
+static PyObject *gPySetPhysicsDebug(PyObject *, PyObject *args)
{
int debugMode;
if (!PyArg_ParseTuple(args, "i:setPhysicsDebug", &debugMode))
@@ -491,21 +490,21 @@ static PyObject* gPySetPhysicsDebug(PyObject*, PyObject* args)
#endif
-static PyObject* gPyGetPhysicsTicRate(PyObject*)
+static PyObject *gPyGetPhysicsTicRate(PyObject *)
{
return PyFloat_FromDouble(PHY_GetActiveEnvironment()->getFixedTimeStep());
}
-static PyObject* gPyGetAverageFrameRate(PyObject*)
+static PyObject *gPyGetAverageFrameRate(PyObject *)
{
return PyFloat_FromDouble(KX_KetsjiEngine::GetAverageFrameRate());
}
-static PyObject* gPyGetBlendFileList(PyObject*, PyObject* args)
+static PyObject *gPyGetBlendFileList(PyObject *, PyObject *args)
{
char cpath[sizeof(gp_GamePythonPath)];
char *searchpath = NULL;
- PyObject* list, *value;
+ PyObject *list, *value;
DIR *dp;
struct dirent *dirp;
@@ -546,7 +545,7 @@ static char gPyAddScene_doc[] =
adds a scene to the game engine\n\
name = Name of the scene\n\
overlay = Overlay or underlay";
-static PyObject* gPyAddScene(PyObject*, PyObject* args)
+static PyObject *gPyAddScene(PyObject *, PyObject *args)
{
char* name;
int overlay = 1;
@@ -562,7 +561,7 @@ static PyObject* gPyAddScene(PyObject*, PyObject* args)
static const char *gPyGetCurrentScene_doc =
"getCurrentScene()\n"
"Gets a reference to the current scene.\n";
-static PyObject* gPyGetCurrentScene(PyObject* self)
+static PyObject *gPyGetCurrentScene(PyObject *self)
{
return gp_KetsjiScene->GetProxy();
}
@@ -570,10 +569,10 @@ static PyObject* gPyGetCurrentScene(PyObject* self)
static const char *gPyGetSceneList_doc =
"getSceneList()\n"
"Return a list of converted scenes.\n";
-static PyObject* gPyGetSceneList(PyObject* self)
+static PyObject *gPyGetSceneList(PyObject *self)
{
KX_KetsjiEngine* m_engine = KX_GetActiveEngine();
- PyObject* list;
+ PyObject *list;
KX_SceneList* scenes = m_engine->CurrentScenes();
int numScenes = scenes->size();
int i;
@@ -666,7 +665,7 @@ static PyObject *pyPrintExt(PyObject *,PyObject *,PyObject *)
Py_RETURN_NONE;
}
-static PyObject *gLibLoad(PyObject*, PyObject* args, PyObject* kwds)
+static PyObject *gLibLoad(PyObject *, PyObject *args, PyObject *kwds)
{
KX_Scene *kx_scene= gp_KetsjiScene;
char *path;
@@ -676,12 +675,12 @@ static PyObject *gLibLoad(PyObject*, PyObject* args, PyObject* kwds)
char *err_str= NULL;
short options=0;
- int load_actions=0, verbose=0;
+ int load_actions=0, verbose=0, load_scripts=1;
- static const char *kwlist[] = {"path", "group", "buffer", "load_actions", "verbose", NULL};
+ static const char *kwlist[] = {"path", "group", "buffer", "load_actions", "verbose", "load_scripts", NULL};
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "ss|y*ii:LibLoad", const_cast<char**>(kwlist),
- &path, &group, &py_buffer, &load_actions, &verbose))
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "ss|y*iii:LibLoad", const_cast<char**>(kwlist),
+ &path, &group, &py_buffer, &load_actions, &verbose, &load_scripts))
return NULL;
/* setup options */
@@ -689,6 +688,8 @@ static PyObject *gLibLoad(PyObject*, PyObject* args, PyObject* kwds)
options |= KX_BlenderSceneConverter::LIB_LOAD_LOAD_ACTIONS;
if (verbose != 0)
options |= KX_BlenderSceneConverter::LIB_LOAD_VERBOSE;
+ if (load_scripts != 0)
+ options |= KX_BlenderSceneConverter::LIB_LOAD_LOAD_SCRIPTS;
if (!py_buffer.buf)
{
@@ -720,7 +721,7 @@ static PyObject *gLibLoad(PyObject*, PyObject* args, PyObject* kwds)
Py_RETURN_FALSE;
}
-static PyObject *gLibNew(PyObject*, PyObject* args)
+static PyObject *gLibNew(PyObject *, PyObject *args)
{
KX_Scene *kx_scene= gp_KetsjiScene;
char *path;
@@ -778,7 +779,7 @@ static PyObject *gLibNew(PyObject*, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject *gLibFree(PyObject*, PyObject* args)
+static PyObject *gLibFree(PyObject *, PyObject *args)
{
KX_Scene *kx_scene= gp_KetsjiScene;
char *path;
@@ -795,7 +796,7 @@ static PyObject *gLibFree(PyObject*, PyObject* args)
}
}
-static PyObject *gLibList(PyObject*, PyObject* args)
+static PyObject *gLibList(PyObject *, PyObject *args)
{
vector<Main*> &dynMaggie = gp_KetsjiScene->GetSceneConverter()->GetMainDynamic();
int i= 0;
@@ -809,6 +810,23 @@ static PyObject *gLibList(PyObject*, PyObject* args)
return list;
}
+struct PyNextFrameState pynextframestate;
+static PyObject *gPyNextFrame(PyObject *)
+{
+ if (pynextframestate.func == NULL) Py_RETURN_NONE;
+ if (pynextframestate.state == NULL) Py_RETURN_NONE; //should never happen; raise exception instead?
+
+ if (pynextframestate.func(pynextframestate.state)) //nonzero = stop
+ {
+ Py_RETURN_TRUE;
+ }
+ else // 0 = go on
+ {
+ Py_RETURN_FALSE;
+ }
+}
+
+
static struct PyMethodDef game_methods[] = {
{"expandPath", (PyCFunction)gPyExpandPath, METH_VARARGS, (const char *)gPyExpandPath_doc},
{"startGame", (PyCFunction)gPyStartGame, METH_VARARGS, (const char *)gPyStartGame_doc},
@@ -838,7 +856,7 @@ static struct PyMethodDef game_methods[] = {
{"getBlendFileList", (PyCFunction)gPyGetBlendFileList, METH_VARARGS, (const char *)"Gets a list of blend files in the same directory as the current blend file"},
{"PrintGLInfo", (PyCFunction)pyPrintExt, METH_NOARGS, (const char *)"Prints GL Extension Info"},
{"PrintMemInfo", (PyCFunction)pyPrintStats, METH_NOARGS, (const char *)"Print engine statistics"},
-
+ {"NextFrame", (PyCFunction)gPyNextFrame, METH_NOARGS, (const char *)"Render next frame (if Python has control)"},
/* library functions */
{"LibLoad", (PyCFunction)gLibLoad, METH_VARARGS|METH_KEYWORDS, (const char *)""},
{"LibNew", (PyCFunction)gLibNew, METH_VARARGS, (const char *)""},
@@ -848,14 +866,14 @@ static struct PyMethodDef game_methods[] = {
{NULL, (PyCFunction) NULL, 0, NULL }
};
-static PyObject* gPyGetWindowHeight(PyObject*, PyObject* args)
+static PyObject *gPyGetWindowHeight(PyObject *, PyObject *args)
{
return PyLong_FromSsize_t((gp_Canvas ? gp_Canvas->GetHeight() : 0));
}
-static PyObject* gPyGetWindowWidth(PyObject*, PyObject* args)
+static PyObject *gPyGetWindowWidth(PyObject *, PyObject *args)
{
return PyLong_FromSsize_t((gp_Canvas ? gp_Canvas->GetWidth() : 0));
}
@@ -865,7 +883,7 @@ static PyObject* gPyGetWindowWidth(PyObject*, PyObject* args)
// temporarility visibility thing, will be moved to rasterizer/renderer later
bool gUseVisibilityTemp = false;
-static PyObject* gPyEnableVisibility(PyObject*, PyObject* args)
+static PyObject *gPyEnableVisibility(PyObject *, PyObject *args)
{
int visible;
if (!PyArg_ParseTuple(args,"i:enableVisibility",&visible))
@@ -877,7 +895,7 @@ static PyObject* gPyEnableVisibility(PyObject*, PyObject* args)
-static PyObject* gPyShowMouse(PyObject*, PyObject* args)
+static PyObject *gPyShowMouse(PyObject *, PyObject *args)
{
int visible;
if (!PyArg_ParseTuple(args,"i:showMouse",&visible))
@@ -898,7 +916,7 @@ static PyObject* gPyShowMouse(PyObject*, PyObject* args)
-static PyObject* gPySetMousePosition(PyObject*, PyObject* args)
+static PyObject *gPySetMousePosition(PyObject *, PyObject *args)
{
int x,y;
if (!PyArg_ParseTuple(args,"ii:setMousePosition",&x,&y))
@@ -910,7 +928,7 @@ static PyObject* gPySetMousePosition(PyObject*, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject* gPySetEyeSeparation(PyObject*, PyObject* args)
+static PyObject *gPySetEyeSeparation(PyObject *, PyObject *args)
{
float sep;
if (!PyArg_ParseTuple(args, "f:setEyeSeparation", &sep))
@@ -926,7 +944,7 @@ static PyObject* gPySetEyeSeparation(PyObject*, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject* gPyGetEyeSeparation(PyObject*)
+static PyObject *gPyGetEyeSeparation(PyObject *)
{
if (!gp_Rasterizer) {
PyErr_SetString(PyExc_RuntimeError, "Rasterizer.getEyeSeparation(), Rasterizer not available");
@@ -936,7 +954,7 @@ static PyObject* gPyGetEyeSeparation(PyObject*)
return PyFloat_FromDouble(gp_Rasterizer->GetEyeSeparation());
}
-static PyObject* gPySetFocalLength(PyObject*, PyObject* args)
+static PyObject *gPySetFocalLength(PyObject *, PyObject *args)
{
float focus;
if (!PyArg_ParseTuple(args, "f:setFocalLength", &focus))
@@ -952,7 +970,7 @@ static PyObject* gPySetFocalLength(PyObject*, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject* gPyGetFocalLength(PyObject*, PyObject*, PyObject*)
+static PyObject *gPyGetFocalLength(PyObject *, PyObject *, PyObject *)
{
if (!gp_Rasterizer) {
PyErr_SetString(PyExc_RuntimeError, "Rasterizer.getFocalLength(), Rasterizer not available");
@@ -964,7 +982,7 @@ static PyObject* gPyGetFocalLength(PyObject*, PyObject*, PyObject*)
Py_RETURN_NONE;
}
-static PyObject* gPySetBackgroundColor(PyObject*, PyObject* value)
+static PyObject *gPySetBackgroundColor(PyObject *, PyObject *value)
{
MT_Vector4 vec;
@@ -985,7 +1003,7 @@ static PyObject* gPySetBackgroundColor(PyObject*, PyObject* value)
-static PyObject* gPySetMistColor(PyObject*, PyObject* value)
+static PyObject *gPySetMistColor(PyObject *, PyObject *value)
{
MT_Vector3 vec;
@@ -995,25 +1013,25 @@ static PyObject* gPySetMistColor(PyObject*, PyObject* value)
if (!gp_Rasterizer) {
PyErr_SetString(PyExc_RuntimeError, "Rasterizer.setMistColor(color), Rasterizer not available");
return NULL;
- }
+ }
gp_Rasterizer->SetFogColor((float)vec[0], (float)vec[1], (float)vec[2]);
Py_RETURN_NONE;
}
-static PyObject* gPyDisableMist(PyObject*)
+static PyObject *gPyDisableMist(PyObject *)
{
if (!gp_Rasterizer) {
PyErr_SetString(PyExc_RuntimeError, "Rasterizer.setMistColor(color), Rasterizer not available");
return NULL;
- }
+ }
gp_Rasterizer->DisableFog();
Py_RETURN_NONE;
}
-static PyObject* gPySetMistStart(PyObject*, PyObject* args)
+static PyObject *gPySetMistStart(PyObject *, PyObject *args)
{
float miststart;
@@ -1032,7 +1050,7 @@ static PyObject* gPySetMistStart(PyObject*, PyObject* args)
-static PyObject* gPySetMistEnd(PyObject*, PyObject* args)
+static PyObject *gPySetMistEnd(PyObject *, PyObject *args)
{
float mistend;
@@ -1050,7 +1068,7 @@ static PyObject* gPySetMistEnd(PyObject*, PyObject* args)
}
-static PyObject* gPySetAmbientColor(PyObject*, PyObject* value)
+static PyObject *gPySetAmbientColor(PyObject *, PyObject *value)
{
MT_Vector3 vec;
@@ -1060,7 +1078,7 @@ static PyObject* gPySetAmbientColor(PyObject*, PyObject* value)
if (!gp_Rasterizer) {
PyErr_SetString(PyExc_RuntimeError, "Rasterizer.setAmbientColor(color), Rasterizer not available");
return NULL;
- }
+ }
gp_Rasterizer->SetAmbientColor((float)vec[0], (float)vec[1], (float)vec[2]);
Py_RETURN_NONE;
@@ -1069,7 +1087,7 @@ static PyObject* gPySetAmbientColor(PyObject*, PyObject* value)
-static PyObject* gPyMakeScreenshot(PyObject*, PyObject* args)
+static PyObject *gPyMakeScreenshot(PyObject *, PyObject *args)
{
char* filename;
if (!PyArg_ParseTuple(args,"s:makeScreenshot",&filename))
@@ -1083,7 +1101,7 @@ static PyObject* gPyMakeScreenshot(PyObject*, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject* gPyEnableMotionBlur(PyObject*, PyObject* args)
+static PyObject *gPyEnableMotionBlur(PyObject *, PyObject *args)
{
float motionblurvalue;
if (!PyArg_ParseTuple(args,"f:enableMotionBlur",&motionblurvalue))
@@ -1099,7 +1117,7 @@ static PyObject* gPyEnableMotionBlur(PyObject*, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject* gPyDisableMotionBlur(PyObject*)
+static PyObject *gPyDisableMotionBlur(PyObject *)
{
if (!gp_Rasterizer) {
PyErr_SetString(PyExc_RuntimeError, "Rasterizer.disableMotionBlur(), Rasterizer not available");
@@ -1129,9 +1147,9 @@ static int getGLSLSettingFlag(const char *setting)
return -1;
}
-static PyObject* gPySetGLSLMaterialSetting(PyObject*,
- PyObject* args,
- PyObject*)
+static PyObject *gPySetGLSLMaterialSetting(PyObject *,
+ PyObject *args,
+ PyObject *)
{
GlobalSettings *gs= gp_KetsjiEngine->GetGlobalSettings();
char *setting;
@@ -1172,9 +1190,9 @@ static PyObject* gPySetGLSLMaterialSetting(PyObject*,
Py_RETURN_NONE;
}
-static PyObject* gPyGetGLSLMaterialSetting(PyObject*,
- PyObject* args,
- PyObject*)
+static PyObject *gPyGetGLSLMaterialSetting(PyObject *,
+ PyObject *args,
+ PyObject *)
{
GlobalSettings *gs= gp_KetsjiEngine->GetGlobalSettings();
char *setting;
@@ -1198,9 +1216,9 @@ static PyObject* gPyGetGLSLMaterialSetting(PyObject*,
#define KX_BLENDER_MULTITEX_MATERIAL 1
#define KX_BLENDER_GLSL_MATERIAL 2
-static PyObject* gPySetMaterialType(PyObject*,
- PyObject* args,
- PyObject*)
+static PyObject *gPySetMaterialType(PyObject *,
+ PyObject *args,
+ PyObject *)
{
GlobalSettings *gs= gp_KetsjiEngine->GetGlobalSettings();
int type;
@@ -1222,7 +1240,7 @@ static PyObject* gPySetMaterialType(PyObject*,
Py_RETURN_NONE;
}
-static PyObject* gPyGetMaterialType(PyObject*)
+static PyObject *gPyGetMaterialType(PyObject *)
{
GlobalSettings *gs= gp_KetsjiEngine->GetGlobalSettings();
int flag;
@@ -1237,7 +1255,7 @@ static PyObject* gPyGetMaterialType(PyObject*)
return PyLong_FromSsize_t(flag);
}
-static PyObject* gPySetAnisotropicFiltering(PyObject*, PyObject* args)
+static PyObject *gPySetAnisotropicFiltering(PyObject *, PyObject *args)
{
short level;
@@ -1254,16 +1272,16 @@ static PyObject* gPySetAnisotropicFiltering(PyObject*, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject* gPyGetAnisotropicFiltering(PyObject*, PyObject* args)
+static PyObject *gPyGetAnisotropicFiltering(PyObject *, PyObject *args)
{
return PyLong_FromLong(gp_Rasterizer->GetAnisotropicFiltering());
}
-static PyObject* gPyDrawLine(PyObject*, PyObject* args)
+static PyObject *gPyDrawLine(PyObject *, PyObject *args)
{
- PyObject* ob_from;
- PyObject* ob_to;
- PyObject* ob_color;
+ PyObject *ob_from;
+ PyObject *ob_to;
+ PyObject *ob_color;
if (!gp_Rasterizer) {
PyErr_SetString(PyExc_RuntimeError, "Rasterizer.drawLine(obFrom, obTo, color): Rasterizer not available");
@@ -1288,7 +1306,7 @@ static PyObject* gPyDrawLine(PyObject*, PyObject* args)
Py_RETURN_NONE;
}
-static PyObject* gPySetWindowSize(PyObject*, PyObject* args)
+static PyObject *gPySetWindowSize(PyObject *, PyObject *args)
{
int width, height;
if (!PyArg_ParseTuple(args, "ii:resize", &width, &height))
@@ -1365,11 +1383,11 @@ static struct PyModuleDef GameLogic_module_def = {
0, /* m_free */
};
-PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack to get gravity hook
+PyObject *initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack to get gravity hook
{
- PyObject* m;
- PyObject* d;
- PyObject* item; /* temp PyObject* storage */
+ PyObject *m;
+ PyObject *d;
+ PyObject *item; /* temp PyObject *storage */
gp_KetsjiEngine = engine;
gp_KetsjiScene = scene;
@@ -1387,7 +1405,7 @@ PyObject* initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack
}
else {
PyErr_Clear();
- // Create the module and add the functions
+ // Create the module and add the functions
m = PyModule_Create(&GameLogic_module_def);
PyDict_SetItemString(PySys_GetObject("modules"), GameLogic_module_def.m_name, m);
}
@@ -1814,7 +1832,7 @@ static void restorePySysObjects(void)
PyDict_Clear(sys_mods);
PyDict_Update(sys_mods, gp_OrigPythonSysModules);
Py_DECREF(gp_OrigPythonSysModules);
- gp_OrigPythonSysModules= NULL;
+ gp_OrigPythonSysModules= NULL;
// fprintf(stderr, "\nRestore Path: %d ", PyList_GET_SIZE(sys_path));
@@ -1844,7 +1862,7 @@ static struct _inittab bge_internal_modules[]= {
* Python is not initialized.
* see bpy_interface.c's BPY_python_start() which shares the same functionality in blender.
*/
-PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecurityLevel level, Main *maggie, int argc, char** argv)
+PyObject *initGamePlayerPythonScripting(const STR_String& progname, TPythonSecurityLevel level, Main *maggie, int argc, char** argv)
{
/* Yet another gotcha in the py api
* Cant run PySys_SetArgv more then once because this adds the
@@ -1917,7 +1935,7 @@ PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecur
}
void exitGamePlayerPythonScripting()
-{
+{
/* Clean up the Python mouse and keyboard */
delete gp_PythonKeyboard;
gp_PythonKeyboard = NULL;
@@ -1938,7 +1956,7 @@ void exitGamePlayerPythonScripting()
/**
* Python is already initialized.
*/
-PyObject* initGamePythonScripting(const STR_String& progname, TPythonSecurityLevel level, Main *maggie)
+PyObject *initGamePythonScripting(const STR_String& progname, TPythonSecurityLevel level, Main *maggie)
{
#if 0 // XXX TODO Py3
STR_String pname = progname;
@@ -1980,9 +1998,10 @@ void exitGamePythonScripting()
/* similar to the above functions except it sets up the namespace
* and other more general things */
-void setupGamePython(KX_KetsjiEngine* ketsjiengine, KX_Scene* startscene, Main *blenderdata, PyObject * pyGlobalDict, PyObject **gameLogic, PyObject **gameLogic_keys, int argc, char** argv)
+void setupGamePython(KX_KetsjiEngine* ketsjiengine, KX_Scene *startscene, Main *blenderdata,
+ PyObject *pyGlobalDict, PyObject **gameLogic, PyObject **gameLogic_keys, int argc, char** argv)
{
- PyObject* dictionaryobject;
+ PyObject *dictionaryobject;
if (argv) /* player only */
dictionaryobject= initGamePlayerPythonScripting("Ketsji", psl_Lowest, blenderdata, argc, argv);
@@ -2005,13 +2024,21 @@ void setupGamePython(KX_KetsjiEngine* ketsjiengine, KX_Scene* startscene, Main *
/* could be done a lot more nicely, but for now a quick way to get bge.* working */
PyRun_SimpleString("sys = __import__('sys');"
- "mod = sys.modules['bge'] = type(sys)('bge');"
- "mod.__dict__.update({'logic':__import__('GameLogic'), "
+ "bge = type(sys)('bge');"
+ "bge.__dict__.update({'logic':__import__('GameLogic'), "
"'render':__import__('Rasterizer'), "
"'events':__import__('GameKeys'), "
"'constraints':__import__('PhysicsConstraints'), "
"'types':__import__('GameTypes'), "
"'texture':__import__('VideoTexture')});"
+ /* so we can do 'import bge.foo as bar' */
+ "sys.modules.update({'bge': bge, "
+ "'bge.logic':bge.logic, "
+ "'bge.render':bge.render, "
+ "'bge.events':bge.events, "
+ "'bge.constraints':bge.constraints, "
+ "'bge.types':bge.types, "
+ "'bge.texture':bge.texture})"
);
}
@@ -2027,15 +2054,15 @@ static struct PyModuleDef Rasterizer_module_def = {
0, /* m_free */
};
-PyObject* initRasterizer(RAS_IRasterizer* rasty,RAS_ICanvas* canvas)
+PyObject *initRasterizer(RAS_IRasterizer* rasty,RAS_ICanvas* canvas)
{
gp_Canvas = canvas;
gp_Rasterizer = rasty;
- PyObject* m;
- PyObject* d;
- PyObject* item;
+ PyObject *m;
+ PyObject *d;
+ PyObject *item;
/* Use existing module where possible
* be careful not to init any runtime vars after this */
@@ -2088,9 +2115,9 @@ static char gPyEventToString_doc[] =
"EventToString(event) - Take a valid event from the GameKeys module or Keyboard Sensor and return a name"
;
-static PyObject* gPyEventToString(PyObject*, PyObject* value)
+static PyObject *gPyEventToString(PyObject *, PyObject *value)
{
- PyObject* mod, *dict, *key, *val, *ret = NULL;
+ PyObject *mod, *dict, *key, *val, *ret = NULL;
Py_ssize_t pos = 0;
mod = PyImport_ImportModule( "GameKeys" );
@@ -2118,7 +2145,7 @@ static char gPyEventToCharacter_doc[] =
"EventToCharacter(event, is_shift) - Take a valid event from the GameKeys module or Keyboard Sensor and return a character"
;
-static PyObject* gPyEventToCharacter(PyObject*, PyObject* args)
+static PyObject *gPyEventToCharacter(PyObject *, PyObject *args)
{
int event, shift;
if (!PyArg_ParseTuple(args,"ii:EventToCharacter", &event, &shift))
@@ -2153,11 +2180,11 @@ static struct PyModuleDef GameKeys_module_def = {
0, /* m_free */
};
-PyObject* initGameKeys()
+PyObject *initGameKeys()
{
- PyObject* m;
- PyObject* d;
- PyObject* item;
+ PyObject *m;
+ PyObject *d;
+ PyObject *item;
/* Use existing module where possible */
m = PyImport_ImportModule( "GameKeys" );
@@ -2205,24 +2232,24 @@ PyObject* initGameKeys()
KX_MACRO_addTypesToDict(d, YKEY, SCA_IInputDevice::KX_YKEY);
KX_MACRO_addTypesToDict(d, ZKEY, SCA_IInputDevice::KX_ZKEY);
- KX_MACRO_addTypesToDict(d, ZEROKEY, SCA_IInputDevice::KX_ZEROKEY);
- KX_MACRO_addTypesToDict(d, ONEKEY, SCA_IInputDevice::KX_ONEKEY);
- KX_MACRO_addTypesToDict(d, TWOKEY, SCA_IInputDevice::KX_TWOKEY);
+ KX_MACRO_addTypesToDict(d, ZEROKEY, SCA_IInputDevice::KX_ZEROKEY);
+ KX_MACRO_addTypesToDict(d, ONEKEY, SCA_IInputDevice::KX_ONEKEY);
+ KX_MACRO_addTypesToDict(d, TWOKEY, SCA_IInputDevice::KX_TWOKEY);
KX_MACRO_addTypesToDict(d, THREEKEY, SCA_IInputDevice::KX_THREEKEY);
- KX_MACRO_addTypesToDict(d, FOURKEY, SCA_IInputDevice::KX_FOURKEY);
- KX_MACRO_addTypesToDict(d, FIVEKEY, SCA_IInputDevice::KX_FIVEKEY);
- KX_MACRO_addTypesToDict(d, SIXKEY, SCA_IInputDevice::KX_SIXKEY);
+ KX_MACRO_addTypesToDict(d, FOURKEY, SCA_IInputDevice::KX_FOURKEY);
+ KX_MACRO_addTypesToDict(d, FIVEKEY, SCA_IInputDevice::KX_FIVEKEY);
+ KX_MACRO_addTypesToDict(d, SIXKEY, SCA_IInputDevice::KX_SIXKEY);
KX_MACRO_addTypesToDict(d, SEVENKEY, SCA_IInputDevice::KX_SEVENKEY);
KX_MACRO_addTypesToDict(d, EIGHTKEY, SCA_IInputDevice::KX_EIGHTKEY);
- KX_MACRO_addTypesToDict(d, NINEKEY, SCA_IInputDevice::KX_NINEKEY);
+ KX_MACRO_addTypesToDict(d, NINEKEY, SCA_IInputDevice::KX_NINEKEY);
KX_MACRO_addTypesToDict(d, CAPSLOCKKEY, SCA_IInputDevice::KX_CAPSLOCKKEY);
- KX_MACRO_addTypesToDict(d, LEFTCTRLKEY, SCA_IInputDevice::KX_LEFTCTRLKEY);
+ KX_MACRO_addTypesToDict(d, LEFTCTRLKEY, SCA_IInputDevice::KX_LEFTCTRLKEY);
KX_MACRO_addTypesToDict(d, LEFTALTKEY, SCA_IInputDevice::KX_LEFTALTKEY);
KX_MACRO_addTypesToDict(d, RIGHTALTKEY, SCA_IInputDevice::KX_RIGHTALTKEY);
KX_MACRO_addTypesToDict(d, RIGHTCTRLKEY, SCA_IInputDevice::KX_RIGHTCTRLKEY);
- KX_MACRO_addTypesToDict(d, RIGHTSHIFTKEY, SCA_IInputDevice::KX_RIGHTSHIFTKEY);
+ KX_MACRO_addTypesToDict(d, RIGHTSHIFTKEY, SCA_IInputDevice::KX_RIGHTSHIFTKEY);
KX_MACRO_addTypesToDict(d, LEFTSHIFTKEY, SCA_IInputDevice::KX_LEFTSHIFTKEY);
KX_MACRO_addTypesToDict(d, ESCKEY, SCA_IInputDevice::KX_ESCKEY);
@@ -2230,25 +2257,25 @@ PyObject* initGameKeys()
KX_MACRO_addTypesToDict(d, RETKEY, SCA_IInputDevice::KX_RETKEY);
KX_MACRO_addTypesToDict(d, ENTERKEY, SCA_IInputDevice::KX_RETKEY);
KX_MACRO_addTypesToDict(d, SPACEKEY, SCA_IInputDevice::KX_SPACEKEY);
- KX_MACRO_addTypesToDict(d, LINEFEEDKEY, SCA_IInputDevice::KX_LINEFEEDKEY);
+ KX_MACRO_addTypesToDict(d, LINEFEEDKEY, SCA_IInputDevice::KX_LINEFEEDKEY);
KX_MACRO_addTypesToDict(d, BACKSPACEKEY, SCA_IInputDevice::KX_BACKSPACEKEY);
KX_MACRO_addTypesToDict(d, DELKEY, SCA_IInputDevice::KX_DELKEY);
KX_MACRO_addTypesToDict(d, SEMICOLONKEY, SCA_IInputDevice::KX_SEMICOLONKEY);
- KX_MACRO_addTypesToDict(d, PERIODKEY, SCA_IInputDevice::KX_PERIODKEY);
- KX_MACRO_addTypesToDict(d, COMMAKEY, SCA_IInputDevice::KX_COMMAKEY);
- KX_MACRO_addTypesToDict(d, QUOTEKEY, SCA_IInputDevice::KX_QUOTEKEY);
- KX_MACRO_addTypesToDict(d, ACCENTGRAVEKEY, SCA_IInputDevice::KX_ACCENTGRAVEKEY);
- KX_MACRO_addTypesToDict(d, MINUSKEY, SCA_IInputDevice::KX_MINUSKEY);
- KX_MACRO_addTypesToDict(d, SLASHKEY, SCA_IInputDevice::KX_SLASHKEY);
+ KX_MACRO_addTypesToDict(d, PERIODKEY, SCA_IInputDevice::KX_PERIODKEY);
+ KX_MACRO_addTypesToDict(d, COMMAKEY, SCA_IInputDevice::KX_COMMAKEY);
+ KX_MACRO_addTypesToDict(d, QUOTEKEY, SCA_IInputDevice::KX_QUOTEKEY);
+ KX_MACRO_addTypesToDict(d, ACCENTGRAVEKEY, SCA_IInputDevice::KX_ACCENTGRAVEKEY);
+ KX_MACRO_addTypesToDict(d, MINUSKEY, SCA_IInputDevice::KX_MINUSKEY);
+ KX_MACRO_addTypesToDict(d, SLASHKEY, SCA_IInputDevice::KX_SLASHKEY);
KX_MACRO_addTypesToDict(d, BACKSLASHKEY, SCA_IInputDevice::KX_BACKSLASHKEY);
- KX_MACRO_addTypesToDict(d, EQUALKEY, SCA_IInputDevice::KX_EQUALKEY);
- KX_MACRO_addTypesToDict(d, LEFTBRACKETKEY, SCA_IInputDevice::KX_LEFTBRACKETKEY);
- KX_MACRO_addTypesToDict(d, RIGHTBRACKETKEY, SCA_IInputDevice::KX_RIGHTBRACKETKEY);
+ KX_MACRO_addTypesToDict(d, EQUALKEY, SCA_IInputDevice::KX_EQUALKEY);
+ KX_MACRO_addTypesToDict(d, LEFTBRACKETKEY, SCA_IInputDevice::KX_LEFTBRACKETKEY);
+ KX_MACRO_addTypesToDict(d, RIGHTBRACKETKEY, SCA_IInputDevice::KX_RIGHTBRACKETKEY);
KX_MACRO_addTypesToDict(d, LEFTARROWKEY, SCA_IInputDevice::KX_LEFTARROWKEY);
KX_MACRO_addTypesToDict(d, DOWNARROWKEY, SCA_IInputDevice::KX_DOWNARROWKEY);
- KX_MACRO_addTypesToDict(d, RIGHTARROWKEY, SCA_IInputDevice::KX_RIGHTARROWKEY);
- KX_MACRO_addTypesToDict(d, UPARROWKEY, SCA_IInputDevice::KX_UPARROWKEY);
+ KX_MACRO_addTypesToDict(d, RIGHTARROWKEY, SCA_IInputDevice::KX_RIGHTARROWKEY);
+ KX_MACRO_addTypesToDict(d, UPARROWKEY, SCA_IInputDevice::KX_UPARROWKEY);
KX_MACRO_addTypesToDict(d, PAD2 , SCA_IInputDevice::KX_PAD2);
KX_MACRO_addTypesToDict(d, PAD4 , SCA_IInputDevice::KX_PAD4);
@@ -2272,15 +2299,15 @@ PyObject* initGameKeys()
KX_MACRO_addTypesToDict(d, PADPLUSKEY, SCA_IInputDevice::KX_PADPLUSKEY);
- KX_MACRO_addTypesToDict(d, F1KEY , SCA_IInputDevice::KX_F1KEY);
- KX_MACRO_addTypesToDict(d, F2KEY , SCA_IInputDevice::KX_F2KEY);
- KX_MACRO_addTypesToDict(d, F3KEY , SCA_IInputDevice::KX_F3KEY);
- KX_MACRO_addTypesToDict(d, F4KEY , SCA_IInputDevice::KX_F4KEY);
- KX_MACRO_addTypesToDict(d, F5KEY , SCA_IInputDevice::KX_F5KEY);
- KX_MACRO_addTypesToDict(d, F6KEY , SCA_IInputDevice::KX_F6KEY);
- KX_MACRO_addTypesToDict(d, F7KEY , SCA_IInputDevice::KX_F7KEY);
- KX_MACRO_addTypesToDict(d, F8KEY , SCA_IInputDevice::KX_F8KEY);
- KX_MACRO_addTypesToDict(d, F9KEY , SCA_IInputDevice::KX_F9KEY);
+ KX_MACRO_addTypesToDict(d, F1KEY, SCA_IInputDevice::KX_F1KEY);
+ KX_MACRO_addTypesToDict(d, F2KEY, SCA_IInputDevice::KX_F2KEY);
+ KX_MACRO_addTypesToDict(d, F3KEY, SCA_IInputDevice::KX_F3KEY);
+ KX_MACRO_addTypesToDict(d, F4KEY, SCA_IInputDevice::KX_F4KEY);
+ KX_MACRO_addTypesToDict(d, F5KEY, SCA_IInputDevice::KX_F5KEY);
+ KX_MACRO_addTypesToDict(d, F6KEY, SCA_IInputDevice::KX_F6KEY);
+ KX_MACRO_addTypesToDict(d, F7KEY, SCA_IInputDevice::KX_F7KEY);
+ KX_MACRO_addTypesToDict(d, F8KEY, SCA_IInputDevice::KX_F8KEY);
+ KX_MACRO_addTypesToDict(d, F9KEY, SCA_IInputDevice::KX_F9KEY);
KX_MACRO_addTypesToDict(d, F10KEY, SCA_IInputDevice::KX_F10KEY);
KX_MACRO_addTypesToDict(d, F11KEY, SCA_IInputDevice::KX_F11KEY);
KX_MACRO_addTypesToDict(d, F12KEY, SCA_IInputDevice::KX_F12KEY);
@@ -2292,9 +2319,9 @@ PyObject* initGameKeys()
KX_MACRO_addTypesToDict(d, F18KEY, SCA_IInputDevice::KX_F18KEY);
KX_MACRO_addTypesToDict(d, F19KEY, SCA_IInputDevice::KX_F19KEY);
- KX_MACRO_addTypesToDict(d, PAUSEKEY, SCA_IInputDevice::KX_PAUSEKEY);
+ KX_MACRO_addTypesToDict(d, PAUSEKEY, SCA_IInputDevice::KX_PAUSEKEY);
KX_MACRO_addTypesToDict(d, INSERTKEY, SCA_IInputDevice::KX_INSERTKEY);
- KX_MACRO_addTypesToDict(d, HOMEKEY , SCA_IInputDevice::KX_HOMEKEY);
+ KX_MACRO_addTypesToDict(d, HOMEKEY, SCA_IInputDevice::KX_HOMEKEY);
KX_MACRO_addTypesToDict(d, PAGEUPKEY, SCA_IInputDevice::KX_PAGEUPKEY);
KX_MACRO_addTypesToDict(d, PAGEDOWNKEY, SCA_IInputDevice::KX_PAGEDOWNKEY);
KX_MACRO_addTypesToDict(d, ENDKEY, SCA_IInputDevice::KX_ENDKEY);
@@ -2321,14 +2348,14 @@ PyObject* initGameKeys()
int saveGamePythonConfig( char **marshal_buffer)
{
int marshal_length = 0;
- PyObject* gameLogic = PyImport_ImportModule("GameLogic");
+ PyObject *gameLogic = PyImport_ImportModule("GameLogic");
if (gameLogic) {
- PyObject* pyGlobalDict = PyDict_GetItemString(PyModule_GetDict(gameLogic), "globalDict"); // Same as importing the module
+ PyObject *pyGlobalDict = PyDict_GetItemString(PyModule_GetDict(gameLogic), "globalDict"); // Same as importing the module
if (pyGlobalDict) {
-#ifdef Py_MARSHAL_VERSION
- PyObject* pyGlobalDictMarshal = PyMarshal_WriteObjectToString( pyGlobalDict, 2); // Py_MARSHAL_VERSION == 2 as of Py2.5
+#ifdef Py_MARSHAL_VERSION
+ PyObject *pyGlobalDictMarshal = PyMarshal_WriteObjectToString( pyGlobalDict, 2); // Py_MARSHAL_VERSION == 2 as of Py2.5
#else
- PyObject* pyGlobalDictMarshal = PyMarshal_WriteObjectToString( pyGlobalDict );
+ PyObject *pyGlobalDictMarshal = PyMarshal_WriteObjectToString( pyGlobalDict );
#endif
if (pyGlobalDictMarshal) {
// for testing only
@@ -2358,12 +2385,12 @@ int loadGamePythonConfig(char *marshal_buffer, int marshal_length)
{
/* Restore the dict */
if (marshal_buffer) {
- PyObject* gameLogic = PyImport_ImportModule("GameLogic");
+ PyObject *gameLogic = PyImport_ImportModule("GameLogic");
if (gameLogic) {
- PyObject* pyGlobalDict = PyMarshal_ReadObjectFromString(marshal_buffer, marshal_length);
+ PyObject *pyGlobalDict = PyMarshal_ReadObjectFromString(marshal_buffer, marshal_length);
if (pyGlobalDict) {
- PyObject* pyGlobalDict_orig = PyDict_GetItemString(PyModule_GetDict(gameLogic), "globalDict"); // Same as importing the module.
+ PyObject *pyGlobalDict_orig = PyDict_GetItemString(PyModule_GetDict(gameLogic), "globalDict"); // Same as importing the module.
if (pyGlobalDict_orig) {
PyDict_Clear(pyGlobalDict_orig);
PyDict_Update(pyGlobalDict_orig, pyGlobalDict);
@@ -2379,10 +2406,11 @@ int loadGamePythonConfig(char *marshal_buffer, int marshal_length)
PyErr_Clear();
printf("Error could not marshall string\n");
}
- } else {
+ }
+ else {
PyErr_Clear();
printf("Error, bge.logic failed to import bge.logic.globalDict will be lost\n");
- }
+ }
}
return 0;
}
diff --git a/source/gameengine/Ketsji/KX_PythonInit.h b/source/gameengine/Ketsji/KX_PythonInit.h
index 866681b9da7..69517b2b1e9 100644
--- a/source/gameengine/Ketsji/KX_PythonInit.h
+++ b/source/gameengine/Ketsji/KX_PythonInit.h
@@ -52,7 +52,8 @@ void exitGamePlayerPythonScripting();
PyObject* initGamePythonScripting(const STR_String& progname, TPythonSecurityLevel level, struct Main *maggie);
void exitGamePythonScripting();
-void setupGamePython(KX_KetsjiEngine* ketsjiengine, KX_Scene* startscene, Main *blenderdata, PyObject *pyGlobalDict, PyObject **gameLogic, PyObject **gameLogic_keys, int argc, char** argv);
+void setupGamePython(KX_KetsjiEngine *ketsjiengine, KX_Scene *startscene, Main *blenderdata,
+ PyObject *pyGlobalDict, PyObject **gameLogic, PyObject **gameLogic_keys, int argc, char** argv);
void setGamePythonPath(const char *path);
void resetGamePythonPath();
@@ -70,11 +71,22 @@ class KX_Scene;
void KX_SetActiveScene(class KX_Scene* scene);
class KX_Scene* KX_GetActiveScene();
class KX_KetsjiEngine* KX_GetActiveEngine();
+
+typedef int (*PyNextFrameFunc)(void *);
+
+struct PyNextFrameState {
+ /** can be either a GPG_NextFrameState or a BL_KetsjiNextFrameState */
+ void *state;
+ /** can be either GPG_PyNextFrame or BL_KetsjiPyNextFrame */
+ PyNextFrameFunc func;
+};
+extern struct PyNextFrameState pynextframestate;
+
#include "MT_Vector3.h"
void KX_RasterizerDrawDebugLine(const MT_Vector3& from,const MT_Vector3& to,const MT_Vector3& color);
void KX_RasterizerDrawDebugCircle(const MT_Vector3& center, const MT_Scalar radius, const MT_Vector3& color,
- const MT_Vector3& normal, int nsector);
+ const MT_Vector3& normal, int nsector);
#endif //__KX_PYTHONINIT_H__
diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp
index 3033c534e84..d0e3d26f61b 100644
--- a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp
+++ b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp
@@ -29,14 +29,10 @@
* \ingroup ketsji
*/
-
-
-
-#ifndef _adr_py_init_types_h_ // only process once,
-#define _adr_py_init_types_h_ // even if multiply included
-
#ifdef WITH_PYTHON
+#include "KX_PythonInitTypes.h"
+
/* Only for Class::Parents */
#include "BL_BlenderShader.h"
#include "BL_ShapeActionActuator.h"
@@ -166,7 +162,7 @@ static void PyType_Ready_ADD(PyObject *dict, PyTypeObject *tp, PyAttributeDef *a
void initPyTypes(void)
{
-
+
/*
* initPyObjectPlusType(BL_ActionActuator::Parents);
* .....
@@ -266,5 +262,3 @@ void initPyTypes(void)
}
#endif // WITH_PYTHON
-
-#endif
diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.h b/source/gameengine/Ketsji/KX_PythonInitTypes.h
index a06fe46a0ea..d8ee4f75fdd 100644
--- a/source/gameengine/Ketsji/KX_PythonInitTypes.h
+++ b/source/gameengine/Ketsji/KX_PythonInitTypes.h
@@ -29,11 +29,11 @@
* \ingroup ketsji
*/
-#ifndef _adr_py_init_types_h_ // only process once,
-#define _adr_py_init_types_h_ // even if multiply included
+#ifndef __KX_PYTHON_INIT_TYPES__
+#define __KX_PYTHON_INIT_TYPES__
#ifdef WITH_PYTHON
void initPyTypes(void);
#endif
-#endif
+#endif /* __KX_PYTHON_INIT_TYPES__ */
diff --git a/intern/boolop/intern/BOP_Vertex.h b/source/gameengine/Ketsji/KX_PythonMain.cpp
index 1aae2207972..d926dff0bf5 100644
--- a/intern/boolop/intern/BOP_Vertex.h
+++ b/source/gameengine/Ketsji/KX_PythonMain.cpp
@@ -1,4 +1,6 @@
-/*
+/*
+ * $Id: KX_PythonMain.cpp 37750 2011-06-27 09:27:56Z sjoerd $
+ *
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -24,44 +26,52 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
-
-/** \file boolop/intern/BOP_Vertex.h
- * \ingroup boolopintern
+/** \file gameengine/Ketsji/KX_PythonMain.cpp
+ * \ingroup ketsji
*/
-
-#ifndef __BOP_VERTEX_H__
-#define __BOP_VERTEX_H__
+#include "KX_PythonMain.h"
-#include "BOP_Tag.h"
-#include "BOP_Indexs.h"
-#include "MT_Point3.h"
-#include "BOP_Misc.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
-class BOP_Vertex
-{
-private:
- MT_Point3 m_point;
- BOP_Indexs m_edges;
- BOP_TAG m_tag;
-
- bool containsEdge(BOP_Index i);
+#include <stddef.h>
-public:
- BOP_Vertex(double x, double y, double z);
- BOP_Vertex(MT_Point3 d);
- void addEdge(BOP_Index i);
- void removeEdge(BOP_Index i);
- inline BOP_Index getEdge(unsigned int i) { return m_edges[i];};
- inline unsigned int getNumEdges() { return m_edges.size();};
- inline BOP_Indexs &getEdges() { return m_edges;};
- inline MT_Point3 getPoint() const { return m_point;};
- inline BOP_TAG getTAG() { return m_tag;};
- inline void setTAG(BOP_TAG t) { m_tag = t;};
-#ifdef BOP_DEBUG
- friend ostream &operator<<(ostream &stream, BOP_Vertex *v);
-#endif
+#include "MEM_guardedalloc.h"
+
+#include "BLI_string.h"
+#include "BLI_listbase.h"
+
+#include "BKE_text.h"
+#include "BKE_main.h"
+#include "BKE_idprop.h"
-};
+#ifdef __cplusplus
+}
#endif
+
+extern "C" char *KX_GetPythonMain(struct Scene *scene)
+{
+ /* examine custom scene properties */
+ if (scene->id.properties) {
+ IDProperty *item = IDP_GetPropertyTypeFromGroup(scene->id.properties, "__main__", IDP_STRING);
+ if (item) {
+ return BLI_strdup(IDP_String(item));
+ }
+ }
+
+ return NULL;
+}
+
+extern "C" char *KX_GetPythonCode(Main *bmain, char *python_main)
+{
+ Text *text;
+
+ if ((text = (Text *)BLI_findstring(&bmain->text, python_main, offsetof(ID, name) + 2))) {
+ return txt_to_buf(text);
+ }
+
+ return NULL;
+}
diff --git a/intern/boolop/intern/BOP_Indexs.h b/source/gameengine/Ketsji/KX_PythonMain.h
index e001f412c9f..1460ea2ca96 100644
--- a/intern/boolop/intern/BOP_Indexs.h
+++ b/source/gameengine/Ketsji/KX_PythonMain.h
@@ -1,4 +1,6 @@
-/*
+/*
+ * $Id: KX_PythonMain.h 37750 2011-06-27 09:27:56Z sjoerd $
+ *
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
@@ -25,18 +27,15 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/** \file boolop/intern/BOP_Indexs.h
- * \ingroup boolopintern
+/** \file KX_PythonMain.h
+ * \ingroup ketsji
*/
-
-#ifndef __BOP_INDEXS_H__
-#define __BOP_INDEXS_H__
-
-#include <vector>
-
-typedef unsigned int BOP_Index;
-typedef std::vector<BOP_Index> BOP_Indexs;
-typedef std::vector<BOP_Index>::iterator BOP_IT_Indexs;
+#ifndef __KX_PYTHON_MAIN
+#define __KX_PYTHON_MAIN
+#include "BKE_main.h"
+#include "DNA_scene_types.h"
+extern "C" char *KX_GetPythonMain(struct Scene* scene);
+extern "C" char *KX_GetPythonCode(struct Main *main, char *python_main);
#endif
diff --git a/source/gameengine/Ketsji/KX_PythonSeq.cpp b/source/gameengine/Ketsji/KX_PythonSeq.cpp
index 6eadc0cbef3..5ab3de15fb3 100644
--- a/source/gameengine/Ketsji/KX_PythonSeq.cpp
+++ b/source/gameengine/Ketsji/KX_PythonSeq.cpp
@@ -69,7 +69,7 @@ static void KX_PythonSeq_dealloc(KX_PythonSeq * self)
PyObject_GC_Del(self);
}
-static Py_ssize_t KX_PythonSeq_len( PyObject * self )
+static Py_ssize_t KX_PythonSeq_len( PyObject *self )
{
PyObjectPlus *self_plus= BGE_PROXY_REF(((KX_PythonSeq *)self)->base);
@@ -100,7 +100,7 @@ static Py_ssize_t KX_PythonSeq_len( PyObject * self )
}
}
-static PyObject *KX_PythonSeq_getIndex(PyObject* self, int index)
+static PyObject *KX_PythonSeq_getIndex(PyObject *self, int index)
{
PyObjectPlus *self_plus= BGE_PROXY_REF(((KX_PythonSeq *)self)->base);
@@ -264,7 +264,7 @@ static PyObjectPlus * KX_PythonSeq_subscript__internal(PyObject *self, const cha
}
-static PyObject * KX_PythonSeq_subscript(PyObject * self, PyObject *key)
+static PyObject * KX_PythonSeq_subscript(PyObject *self, PyObject *key)
{
PyObjectPlus *self_plus= BGE_PROXY_REF(((KX_PythonSeq *)self)->base);
@@ -314,10 +314,10 @@ static int KX_PythonSeq_contains(PyObject *self, PyObject *key)
}
/* Matches python dict.get(key, [default]) */
-PyObject* KX_PythonSeq_get(PyObject * self, PyObject *args)
+static PyObject *KX_PythonSeq_get(PyObject *self, PyObject *args)
{
char *key;
- PyObject* def = Py_None;
+ PyObject *def = Py_None;
PyObjectPlus* ret_plus;
if (!PyArg_ParseTuple(args, "s|O:get", &key, &def))
@@ -396,7 +396,7 @@ static PyObject *KX_PythonSeq_nextIter(KX_PythonSeq *self)
static int KX_PythonSeq_compare( KX_PythonSeq * a, KX_PythonSeq * b )
{
- return ( a->type == b->type && a->base == b->base) ? 0 : -1;
+ return ( a->type == b->type && a->base == b->base) ? 0 : -1;
}
static PyObject *KX_PythonSeq_richcmp(PyObject *a, PyObject *b, int op)
diff --git a/source/gameengine/Ketsji/KX_RadarSensor.cpp b/source/gameengine/Ketsji/KX_RadarSensor.cpp
index 74009f51078..fb949fffa8a 100644
--- a/source/gameengine/Ketsji/KX_RadarSensor.cpp
+++ b/source/gameengine/Ketsji/KX_RadarSensor.cpp
@@ -217,7 +217,7 @@ PyAttributeDef KX_RadarSensor::Attributes[] = {
{NULL} //Sentinel
};
-PyObject* KX_RadarSensor::pyattr_get_angle(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_RadarSensor::pyattr_get_angle(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_RadarSensor* self= static_cast<KX_RadarSensor*>(self_v);
diff --git a/source/gameengine/Ketsji/KX_RadarSensor.h b/source/gameengine/Ketsji/KX_RadarSensor.h
index f1ed5b3c982..2de58f8b3a0 100644
--- a/source/gameengine/Ketsji/KX_RadarSensor.h
+++ b/source/gameengine/Ketsji/KX_RadarSensor.h
@@ -90,10 +90,11 @@ public:
KX_RADAR_AXIS_NEG_Z
};
- /* python */
virtual sensortype GetSensorType() { return ST_RADAR; }
-
+ /* python */
+#ifdef WITH_PYTHON
static PyObject* pyattr_get_angle(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+#endif
};
#endif //__KX_RADARSENSOR_H__
diff --git a/source/gameengine/Ketsji/KX_RaySensor.cpp b/source/gameengine/Ketsji/KX_RaySensor.cpp
index 58ca847b617..14786e8429e 100644
--- a/source/gameengine/Ketsji/KX_RaySensor.cpp
+++ b/source/gameengine/Ketsji/KX_RaySensor.cpp
@@ -361,7 +361,7 @@ PyAttributeDef KX_RaySensor::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* KX_RaySensor::pyattr_get_hitobject(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_RaySensor::pyattr_get_hitobject(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_RaySensor* self = static_cast<KX_RaySensor*>(self_v);
if (self->m_hitObject)
diff --git a/source/gameengine/Ketsji/KX_RaySensor.h b/source/gameengine/Ketsji/KX_RaySensor.h
index f5d1c72d098..27aaa442dcd 100644
--- a/source/gameengine/Ketsji/KX_RaySensor.h
+++ b/source/gameengine/Ketsji/KX_RaySensor.h
@@ -94,7 +94,7 @@ public:
#ifdef WITH_PYTHON
/* Attributes */
- static PyObject* pyattr_get_hitobject(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_hitobject(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
#endif // WITH_PYTHON
diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
index 39b7c44eda9..d850168afdf 100644
--- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
@@ -1,40 +1,39 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
/** \file gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
* \ingroup ketsji
+ *
+ * Add an object when this actuator is triggered
*/
-//
-// Add an object when this actuator is triggered
-//
-//
-// ***** BEGIN GPL LICENSE BLOCK *****
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//
-// The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-// All rights reserved.
-//
-// The Original Code is: all of this file.
-//
-// Contributor(s): none yet.
-//
-// ***** END GPL LICENSE BLOCK *****
-// Previously existed as:
-
-// \source\gameengine\GameLogic\SCA_AddObjectActuator.cpp
-
-// Please look here for revision history.
+/* Previously existed as:
+ * \source\gameengine\GameLogic\SCA_AddObjectActuator.cpp
+ * Please look here for revision history. */
#include "KX_SCA_AddObjectActuator.h"
#include "SCA_IScene.h"
@@ -204,10 +203,10 @@ PyAttributeDef KX_SCA_AddObjectActuator::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* KX_SCA_AddObjectActuator::pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_SCA_AddObjectActuator::pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_SCA_AddObjectActuator* actuator = static_cast<KX_SCA_AddObjectActuator*>(self);
- if (!actuator->m_OriginalObject)
+ if (!actuator->m_OriginalObject)
Py_RETURN_NONE;
else
return actuator->m_OriginalObject->GetProxy();
@@ -222,7 +221,7 @@ int KX_SCA_AddObjectActuator::pyattr_set_object(void *self, const struct KX_PYAT
return PY_SET_ATTR_FAIL; // ConvertPythonToGameObject sets the error
if (actuator->m_OriginalObject != NULL)
- actuator->m_OriginalObject->UnregisterActuator(actuator);
+ actuator->m_OriginalObject->UnregisterActuator(actuator);
actuator->m_OriginalObject = (SCA_IObject*)gameobj;
@@ -232,7 +231,7 @@ int KX_SCA_AddObjectActuator::pyattr_set_object(void *self, const struct KX_PYAT
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_SCA_AddObjectActuator::pyattr_get_objectLastCreated(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_SCA_AddObjectActuator::pyattr_get_objectLastCreated(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_SCA_AddObjectActuator* actuator = static_cast<KX_SCA_AddObjectActuator*>(self);
if (!actuator->m_lastCreatedObject)
@@ -241,7 +240,7 @@ PyObject* KX_SCA_AddObjectActuator::pyattr_get_objectLastCreated(void *self, con
return actuator->m_lastCreatedObject->GetProxy();
}
-PyObject* KX_SCA_AddObjectActuator::PyInstantAddObject()
+PyObject *KX_SCA_AddObjectActuator::PyInstantAddObject()
{
InstantAddObject();
@@ -254,7 +253,7 @@ void KX_SCA_AddObjectActuator::InstantAddObject()
{
if (m_OriginalObject)
{
- // Add an identical object, with properties inherited from the original object
+ // Add an identical object, with properties inherited from the original object
// Now it needs to be added to the current scene.
SCA_IObject* replica = m_scene->AddReplicaObject(m_OriginalObject,GetParent(),m_timeProp );
KX_GameObject * game_obj = static_cast<KX_GameObject *>(replica);
diff --git a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
index 40136f429a2..9c8cbfa3d09 100644
--- a/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
@@ -1,32 +1,33 @@
-//
-// ***** BEGIN GPL LICENSE BLOCK *****
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//
-// The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-// All rights reserved.
-//
-// The Original Code is: all of this file.
-//
-// Contributor(s): none yet.
-//
-// ***** END GPL LICENSE BLOCK *****
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
/** \file KX_SCA_AddObjectActuator.h
* \ingroup ketsji
- * \attention Previously existed as: \source\gameengine\GameLogic\SCA_AddObjectActuator.h
+ * \attention Previously existed as: source/gameengine/GameLogic/SCA_AddObjectActuator.h
* Please look here for revision history.
*/
@@ -40,7 +41,6 @@
#include "MT_Vector3.h"
-
class SCA_IScene;
class KX_SCA_AddObjectActuator : public SCA_IActuator
@@ -112,7 +112,7 @@ public:
virtual bool
Update();
- SCA_IObject*
+ SCA_IObject *
GetLastCreatedObject(
) const;
@@ -122,9 +122,9 @@ public:
KX_PYMETHOD_DOC_NOARGS(KX_SCA_AddObjectActuator,InstantAddObject);
- static PyObject* pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
- static PyObject* pyattr_get_objectLastCreated(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_objectLastCreated(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
#endif // WITH_PYTHON
diff --git a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp
index ff44fad1f3f..5dc67a4cff3 100644
--- a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp
@@ -1,41 +1,38 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
/** \file gameengine/Ketsji/KX_SCA_DynamicActuator.cpp
* \ingroup ketsji
+ * Adjust dynamics settings for this object
*/
-//
-// Adjust dynamics settins for this object
-//
-//
-// ***** BEGIN GPL LICENSE BLOCK *****
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//
-// The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-// All rights reserved.
-//
-// The Original Code is: all of this file.
-//
-// Contributor(s): none yet.
-//
-// ***** END GPL LICENSE BLOCK *****
-
-//
-// Previously existed as:
-
-// \source\gameengine\GameLogic\SCA_DynamicActuator.cpp
-
-// Please look here for revision history.
+
+/* Previously existed as:
+ * \source\gameengine\GameLogic\SCA_DynamicActuator.cpp
+ * Please look here for revision history. */
#include "KX_SCA_DynamicActuator.h"
@@ -122,14 +119,14 @@ bool KX_SCA_DynamicActuator::Update()
switch (m_dyn_operation)
{
- case 0:
- obj->RestoreDynamics();
+ case 0:
+ obj->RestoreDynamics();
break;
case 1:
obj->SuspendDynamics();
break;
case 2:
- controller->setRigidBody(true);
+ controller->setRigidBody(true);
break;
case 3:
controller->setRigidBody(false);
diff --git a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h
index 885c7a0297f..01a91624c41 100644
--- a/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h
@@ -1,29 +1,29 @@
-//
-// ***** BEGIN GPL LICENSE BLOCK *****
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//
-// The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-// All rights reserved.
-//
-// The Original Code is: all of this file.
-//
-// Contributor(s): Campbell Barton
-//
-// ***** END GPL LICENSE BLOCK *****
-//
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
/** \file KX_SCA_DynamicActuator.h
* \ingroup ketsji
diff --git a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
index 374d5f2f211..3399ed90667 100644
--- a/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
@@ -1,34 +1,34 @@
-//
-// ***** BEGIN GPL LICENSE BLOCK *****
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//
-// The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-// All rights reserved.
-//
-// The Original Code is: all of this file.
-//
-// Contributor(s): none yet.
-//
-// ***** END GPL LICENSE BLOCK *****
-//
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
/** \file KX_SCA_EndObjectActuator.h
* \ingroup ketsji
* \brief Add object to the game world on action of this actuator
- * \attention Previously existed as: \source\gameengine\GameLogic\SCA_EndObjectActuator.h
+ * \attention Previously existed as: source/gameengine/GameLogic/SCA_EndObjectActuator.h
* Please look here for revision history.
*/
diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
index 00a6e9e63d5..b105256836b 100644
--- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
@@ -1,34 +1,35 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
/** \file gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp
* \ingroup ketsji
+ *
+ * Replace the mesh for this actuator's parent
*/
-//
-// Replace the mesh for this actuator's parent
-//
-//
-// ***** BEGIN GPL LICENSE BLOCK *****
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//
-// The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-// All rights reserved.
-//
-// The Original Code is: all of this file.
-//
-// Contributor(s): none yet.
-//
-// ***** END GPL LICENSE BLOCK *****
//
// Previously existed as:
@@ -86,7 +87,7 @@ PyAttributeDef KX_SCA_ReplaceMeshActuator::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* KX_SCA_ReplaceMeshActuator::pyattr_get_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_SCA_ReplaceMeshActuator::pyattr_get_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_SCA_ReplaceMeshActuator* actuator = static_cast<KX_SCA_ReplaceMeshActuator*>(self);
if (!actuator->m_mesh)
diff --git a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
index c8e6123024d..52a20142442 100644
--- a/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
+++ b/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
@@ -1,34 +1,34 @@
-//
-// ***** BEGIN GPL LICENSE BLOCK *****
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//
-// The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-// All rights reserved.
-//
-// The Original Code is: all of this file.
-//
-// Contributor(s): none yet.
-//
-// ***** END GPL LICENSE BLOCK *****
-//
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
/** \file KX_SCA_ReplaceMeshActuator.h
* \ingroup ketsji
* \brief Add object to the game world on action of this actuator
- * \attention Previously existed as: \source\gameengine\GameLogic\SCA_ReplaceMeshActuator.h
+ * \attention Previously existed as: source/gameengine/GameLogic/SCA_ReplaceMeshActuator.h
* Please look here for revision history.
*/
@@ -84,7 +84,7 @@ class KX_SCA_ReplaceMeshActuator : public SCA_IActuator
m_scene= val;
};
- static PyObject* pyattr_get_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
KX_PYMETHOD_DOC(KX_SCA_ReplaceMeshActuator,instantReplaceMesh);
diff --git a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp
index 13200696ffb..19b9d13087d 100644
--- a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp
+++ b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.cpp
@@ -51,14 +51,14 @@ KX_BoneParentRelation::
New(Bone* bone
) {
return new KX_BoneParentRelation(bone);
-}
+}
bool
KX_BoneParentRelation::
UpdateChildCoordinates(
SG_Spatial * child,
const SG_Spatial * parent,
- bool& parentUpdated
+ bool& parentUpdated
) {
MT_assert(child != NULL);
@@ -71,7 +71,7 @@ UpdateChildCoordinates(
// we don't know if the armature has been updated or not, assume yes
parentUpdated = true;
- // the childs world locations which we will update.
+ // the childs world locations which we will update.
MT_Vector3 child_w_scale;
MT_Point3 child_w_pos;
diff --git a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h
index 76fefdebe08..6f4fd482198 100644
--- a/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h
+++ b/source/gameengine/Ketsji/KX_SG_BoneParentNodeRelationship.h
@@ -57,7 +57,7 @@ public :
static
KX_BoneParentRelation *
New(Bone* bone
- );
+ );
/**
* Updates the childs world coordinates relative to the parent's
diff --git a/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp b/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp
index 699b267496d..e80de76861e 100644
--- a/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp
+++ b/source/gameengine/Ketsji/KX_SG_NodeRelationships.cpp
@@ -45,14 +45,14 @@ KX_NormalParentRelation::
New(
) {
return new KX_NormalParentRelation();
-}
+}
bool
KX_NormalParentRelation::
UpdateChildCoordinates(
SG_Spatial * child,
const SG_Spatial * parent,
- bool& parentUpdated
+ bool& parentUpdated
) {
MT_assert(child != NULL);
@@ -67,7 +67,7 @@ UpdateChildCoordinates(
return true; //false;
}
else {
- // the childs world locations which we will update.
+ // the childs world locations which we will update.
const MT_Vector3 & p_world_scale = parent->GetWorldScaling();
const MT_Point3 & p_world_pos = parent->GetWorldPosition();
const MT_Matrix3x3 & p_world_rotation = parent->GetWorldOrientation();
@@ -121,7 +121,7 @@ KX_VertexParentRelation::
UpdateChildCoordinates(
SG_Spatial * child,
const SG_Spatial * parent,
- bool& parentUpdated
+ bool& parentUpdated
) {
MT_assert(child != NULL);
@@ -176,7 +176,7 @@ New(
MT_Scalar relaxation
) {
return new KX_SlowParentRelation(relaxation);
-}
+}
/**
* Method inherited from KX_ParentRelation
@@ -187,7 +187,7 @@ KX_SlowParentRelation::
UpdateChildCoordinates(
SG_Spatial * child,
const SG_Spatial * parent,
- bool& parentUpdated
+ bool& parentUpdated
) {
MT_assert(child != NULL);
@@ -198,7 +198,7 @@ UpdateChildCoordinates(
const MT_Point3 & child_pos = child->GetLocalPosition();
const MT_Matrix3x3 & child_rotation = child->GetLocalOrientation();
- // the childs world locations which we will update.
+ // the childs world locations which we will update.
MT_Vector3 child_w_scale;
MT_Point3 child_w_pos;
@@ -230,7 +230,7 @@ UpdateChildCoordinates(
child_w_scale = child->GetWorldScaling();
child_w_pos = child->GetWorldPosition();
- child_w_rotation = child->GetWorldOrientation();
+ child_w_rotation = child->GetWorldOrientation();
// now 'interpolate' the normal coordinates with the last
// world coordinates to get the new world coordinates.
diff --git a/source/gameengine/Ketsji/KX_SG_NodeRelationships.h b/source/gameengine/Ketsji/KX_SG_NodeRelationships.h
index b5ab5302910..5d777f5028f 100644
--- a/source/gameengine/Ketsji/KX_SG_NodeRelationships.h
+++ b/source/gameengine/Ketsji/KX_SG_NodeRelationships.h
@@ -57,7 +57,7 @@ public :
static
KX_NormalParentRelation *
New(
- );
+ );
/**
* Method inherited from KX_ParentRelation
@@ -67,7 +67,7 @@ public :
UpdateChildCoordinates(
SG_Spatial * child,
const SG_Spatial * parent,
- bool& parentUpdated
+ bool& parentUpdated
);
/**
@@ -106,7 +106,7 @@ public :
static
KX_VertexParentRelation *
New(
- );
+ );
/**
* Method inherited from KX_ParentRelation
@@ -116,7 +116,7 @@ public :
UpdateChildCoordinates(
SG_Spatial * child,
const SG_Spatial * parent,
- bool& parentUpdated
+ bool& parentUpdated
);
/**
@@ -162,7 +162,7 @@ public :
KX_SlowParentRelation *
New(
MT_Scalar relaxation
- );
+ );
/**
* Method inherited from KX_ParentRelation
@@ -172,7 +172,7 @@ public :
UpdateChildCoordinates(
SG_Spatial * child,
const SG_Spatial * parent,
- bool& parentUpdated
+ bool& parentUpdated
);
/**
diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp
index 695ad1f945c..f6ab9af261e 100644
--- a/source/gameengine/Ketsji/KX_Scene.cpp
+++ b/source/gameengine/Ketsji/KX_Scene.cpp
@@ -98,7 +98,7 @@
#include <stdio.h>
-void* KX_SceneReplicationFunc(SG_IObject* node,void* gameobj,void* scene)
+static void *KX_SceneReplicationFunc(SG_IObject* node,void* gameobj,void* scene)
{
KX_GameObject* replica = ((KX_Scene*)scene)->AddNodeReplicaObject(node,(KX_GameObject*)gameobj);
@@ -108,7 +108,7 @@ void* KX_SceneReplicationFunc(SG_IObject* node,void* gameobj,void* scene)
return (void*)replica;
}
-void* KX_SceneDestructionFunc(SG_IObject* node,void* gameobj,void* scene)
+static void *KX_SceneDestructionFunc(SG_IObject* node,void* gameobj,void* scene)
{
((KX_Scene*)scene)->RemoveNodeDestructObject(node,(KX_GameObject*)gameobj);
@@ -368,7 +368,7 @@ void KX_Scene::SetFramingType(RAS_FrameSettings & frame_settings)
const RAS_FrameSettings& KX_Scene::GetFramingType() const
{
return m_frame_settings;
-};
+};
@@ -441,7 +441,7 @@ void KX_Scene::EnableZBufferClearing(bool isclearingZbuffer)
void KX_Scene::RemoveNodeDestructObject(class SG_IObject* node,class CValue* gameobj)
{
- KX_GameObject* orgobj = (KX_GameObject*)gameobj;
+ KX_GameObject* orgobj = (KX_GameObject*)gameobj;
if (NewRemoveObject(orgobj) != 0)
{
// object is not yet deleted because a reference is hanging somewhere.
@@ -769,6 +769,13 @@ void KX_Scene::DupliGroupRecurse(CValue* obj, int level)
// we can now add the graphic controller to the physic engine
replica->ActivateGraphicController(true);
+ // set references for dupli-group
+ // groupobj holds a list of all objects, that belongs to this group
+ groupobj->AddInstanceObjects(replica);
+
+ // every object gets the reference to its dupli-group object
+ replica->SetDupliGroupObject(groupobj);
+
// done with replica
replica->Release();
}
@@ -1017,6 +1024,20 @@ int KX_Scene::NewRemoveObject(class CValue* gameobj)
m_timemgr->RemoveTimeProperty(propval);
}
}
+
+ // if the object is the dupligroup proxy, you have to cleanup all m_pDupliGroupObject's in all
+ // instances refering to this group
+ if(newobj->GetInstanceObjects()) {
+ for (int i = 0; i < newobj->GetInstanceObjects()->GetCount(); i++) {
+ KX_GameObject* instance = (KX_GameObject*)newobj->GetInstanceObjects()->GetValue(i);
+ instance->RemoveDupliGroupObject();
+ }
+ }
+
+ // if this object was part of a group, make sure to remove it from that group's instance list
+ KX_GameObject* group = newobj->GetDupliGroupObject();
+ if (group)
+ group->RemoveInstanceObject(newobj);
newobj->RemoveMeshes();
ret = 1;
@@ -1072,7 +1093,7 @@ void KX_Scene::ReplaceMesh(class CValue* obj,void* meshobj, bool use_gfx, bool u
}
if (use_gfx && mesh != NULL)
- {
+ {
gameobj->RemoveMeshes();
gameobj->AddMesh(mesh);
@@ -1278,7 +1299,7 @@ void KX_Scene::AddCamera(KX_Camera* cam)
KX_Camera* KX_Scene::GetActiveCamera()
-{
+{
// NULL if not defined
return m_active_camera;
}
@@ -1481,7 +1502,15 @@ void KX_Scene::CalculateVisibleMeshes(RAS_IRasterizer* rasty,KX_Camera* cam, int
planes[4].setValue(cplanes[2].getValue()); // top
planes[5].setValue(cplanes[3].getValue()); // bottom
CullingInfo info(layer);
- dbvt_culling = m_physicsEnvironment->cullingTest(PhysicsCullingCallback,&info,planes,5,m_dbvt_occlusion_res);
+
+ double mvmat[16] = {0};
+ cam->GetModelviewMatrix().getValue(mvmat);
+ double pmat[16] = {0};
+ cam->GetProjectionMatrix().getValue(pmat);
+
+ dbvt_culling = m_physicsEnvironment->cullingTest(PhysicsCullingCallback,&info,planes,5,m_dbvt_occlusion_res,
+ KX_GetActiveEngine()->GetCanvas()->GetViewPort(),
+ mvmat, pmat);
}
if (!dbvt_culling) {
// the physics engine couldn't help us, do it the hard way
@@ -1634,16 +1663,17 @@ void KX_Scene::UpdateObjectActivity(void)
* Manhattan distance. */
MT_Point3 obpos = ob->NodeGetWorldPosition();
- if ( (fabs(camloc[0] - obpos[0]) > m_activity_box_radius)
- || (fabs(camloc[1] - obpos[1]) > m_activity_box_radius)
- || (fabs(camloc[2] - obpos[2]) > m_activity_box_radius) )
- {
+ if ((fabs(camloc[0] - obpos[0]) > m_activity_box_radius) ||
+ (fabs(camloc[1] - obpos[1]) > m_activity_box_radius) ||
+ (fabs(camloc[2] - obpos[2]) > m_activity_box_radius) )
+ {
ob->Suspend();
- } else {
+ }
+ else {
ob->Resume();
}
}
- }
+ }
}
}
@@ -1727,11 +1757,6 @@ static void MergeScene_LogicBrick(SCA_ILogicBrick* brick, KX_Scene *to)
brick->Replace_IScene(to);
brick->Replace_NetworkScene(to->GetNetworkScene());
- SCA_ISensor *sensor= dynamic_cast<class SCA_ISensor *>(brick);
- if (sensor) {
- sensor->Replace_EventManager(logicmgr);
- }
-
/* near sensors have physics controllers */
#ifdef USE_BULLET
KX_TouchSensor *touch_sensor = dynamic_cast<class KX_TouchSensor *>(brick);
@@ -1739,6 +1764,14 @@ static void MergeScene_LogicBrick(SCA_ILogicBrick* brick, KX_Scene *to)
touch_sensor->GetPhysicsController()->SetPhysicsEnvironment(to->GetPhysicsEnvironment());
}
#endif
+
+ // If we end up replacing a KX_TouchEventManager, we need to make sure
+ // physics controllers are properly in place. In other words, do this
+ // after merging physics controllers!
+ SCA_ISensor *sensor= dynamic_cast<class SCA_ISensor *>(brick);
+ if (sensor) {
+ sensor->Replace_EventManager(logicmgr);
+ }
}
#ifdef USE_BULLET
@@ -1825,6 +1858,9 @@ static void MergeScene_GameObject(KX_GameObject* gameobj, KX_Scene *to, KX_Scene
if (gameobj->GetGameObjectType() == SCA_IObject::OBJ_LIGHT)
((KX_LightObject*)gameobj)->UpdateScene(to);
+ if (gameobj->GetGameObjectType() == SCA_IObject::OBJ_CAMERA)
+ to->AddCamera((KX_Camera*)gameobj);
+
/* Add the object to the scene's logic manager */
to->GetLogicManager()->RegisterGameObjectName(gameobj->GetName(), gameobj);
to->GetLogicManager()->RegisterGameObj(gameobj->GetBlenderObject(), gameobj);
@@ -1938,15 +1974,15 @@ void KX_Scene::Render2DFilters(RAS_ICanvas* canvas)
#ifdef WITH_PYTHON
-void KX_Scene::RunDrawingCallbacks(PyObject* cb_list)
+void KX_Scene::RunDrawingCallbacks(PyObject *cb_list)
{
Py_ssize_t len;
if (cb_list && (len=PyList_GET_SIZE(cb_list)))
{
- PyObject* args= PyTuple_New(0); // save python creating each call
- PyObject* func;
- PyObject* ret;
+ PyObject *args = PyTuple_New(0); // save python creating each call
+ PyObject *func;
+ PyObject *ret;
// Iterate the list and run the callbacks
for (Py_ssize_t pos=0; pos < len; pos++)
@@ -2013,7 +2049,7 @@ static PyObject *Map_GetItem(PyObject *self_v, PyObject *item)
{
KX_Scene* self= static_cast<KX_Scene*>BGE_PROXY_REF(self_v);
const char *attr_str= _PyUnicode_AsString(item);
- PyObject* pyconvert;
+ PyObject *pyconvert;
if (self==NULL) {
PyErr_SetString(PyExc_SystemError, "val = scene[key]: KX_Scene, "BGE_PROXY_ERROR_MSG);
@@ -2116,31 +2152,31 @@ PySequenceMethods KX_Scene::Sequence = {
(ssizeargfunc) NULL, /* sq_inplace_repeat */
};
-PyObject* KX_Scene::pyattr_get_name(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Scene::pyattr_get_name(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Scene* self= static_cast<KX_Scene*>(self_v);
return PyUnicode_From_STR_String(self->GetName());
}
-PyObject* KX_Scene::pyattr_get_objects(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Scene::pyattr_get_objects(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Scene* self= static_cast<KX_Scene*>(self_v);
return self->GetObjectList()->GetProxy();
}
-PyObject* KX_Scene::pyattr_get_objects_inactive(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Scene::pyattr_get_objects_inactive(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Scene* self= static_cast<KX_Scene*>(self_v);
return self->GetInactiveList()->GetProxy();
}
-PyObject* KX_Scene::pyattr_get_lights(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Scene::pyattr_get_lights(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Scene* self= static_cast<KX_Scene*>(self_v);
return self->GetLightList()->GetProxy();
}
-PyObject* KX_Scene::pyattr_get_cameras(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Scene::pyattr_get_cameras(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
/* With refcounts in this case...
* the new CListValue is owned by python, so its possible python holds onto it longer then the BGE
@@ -2161,10 +2197,14 @@ PyObject* KX_Scene::pyattr_get_cameras(void *self_v, const KX_PYATTRIBUTE_DEF *a
return clist->NewProxy(true);
}
-PyObject* KX_Scene::pyattr_get_active_camera(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Scene::pyattr_get_active_camera(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Scene* self= static_cast<KX_Scene*>(self_v);
- return self->GetActiveCamera()->GetProxy();
+ KX_Camera* cam= self->GetActiveCamera();
+ if (cam)
+ return self->GetActiveCamera()->GetProxy();
+ else
+ Py_RETURN_NONE;
}
@@ -2180,7 +2220,7 @@ int KX_Scene::pyattr_set_active_camera(void *self_v, const KX_PYATTRIBUTE_DEF *a
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_Scene::pyattr_get_drawing_callback_pre(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Scene::pyattr_get_drawing_callback_pre(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Scene* self = static_cast<KX_Scene*>(self_v);
@@ -2190,7 +2230,7 @@ PyObject* KX_Scene::pyattr_get_drawing_callback_pre(void *self_v, const KX_PYATT
return self->m_draw_call_pre;
}
-PyObject* KX_Scene::pyattr_get_drawing_callback_post(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_Scene::pyattr_get_drawing_callback_post(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_Scene* self = static_cast<KX_Scene*>(self_v);
@@ -2268,7 +2308,7 @@ KX_PYMETHODDEF_DOC(KX_Scene, addObject,
return NULL;
if (!m_inactivelist->SearchValue(ob)) {
- PyErr_Format(PyExc_ValueError, "scene.addObject(object, other, time): KX_Scene (second argument): object does not belong to scene");
+ PyErr_Format(PyExc_ValueError, "scene.addObject(object, other, time): KX_Scene (first argument): object must be in an inactive layer");
return NULL;
}
SCA_IObject* replica = AddReplicaObject((SCA_IObject*)ob, other, time);
@@ -2344,8 +2384,8 @@ KX_PYMETHODDEF_DOC(KX_Scene, drawObstacleSimulation,
KX_PYMETHODDEF_DOC(KX_Scene, get, "")
{
PyObject *key;
- PyObject* def = Py_None;
- PyObject* ret;
+ PyObject *def = Py_None;
+ PyObject *ret;
if (!PyArg_ParseTuple(args, "O|O:get", &key, &def))
return NULL;
diff --git a/source/gameengine/Ketsji/KX_Scene.h b/source/gameengine/Ketsji/KX_Scene.h
index 7e3378bd13f..bb329da99de 100644
--- a/source/gameengine/Ketsji/KX_Scene.h
+++ b/source/gameengine/Ketsji/KX_Scene.h
@@ -237,7 +237,7 @@ protected:
/**
* The execution priority of replicated object actuators?
- */
+ */
int m_ueberExecutionPriority;
/**
@@ -295,7 +295,7 @@ protected:
KX_ObstacleSimulation* m_obstacleSimulation;
-public:
+public:
KX_Scene(class SCA_IInputDevice* keyboarddevice,
class SCA_IInputDevice* mousedevice,
class NG_NetworkDeviceInterface* ndi,
@@ -303,14 +303,14 @@ public:
struct Scene* scene,
class RAS_ICanvas* canvas);
- virtual
+ virtual
~KX_Scene();
RAS_BucketManager* GetBucketManager();
RAS_MaterialBucket* FindBucket(RAS_IPolyMaterial* polymat, bool &bucketCreated);
void RenderBuckets(const MT_Transform& cameratransform,
- RAS_IRasterizer* rasty,
- RAS_IRenderTools* rendertools);
+ RAS_IRasterizer* rasty,
+ RAS_IRenderTools* rendertools);
/**
* Update all transforms according to the scenegraph.
@@ -325,18 +325,18 @@ public:
m_groupGameObjects.find(gameobj) != m_groupGameObjects.end());
}
SCA_IObject* AddReplicaObject(CValue* gameobj,
- CValue* locationobj,
- int lifespan=0);
+ CValue* locationobj,
+ int lifespan=0);
KX_GameObject* AddNodeReplicaObject(SG_IObject* node,
- CValue* gameobj);
+ CValue* gameobj);
void RemoveNodeDestructObject(SG_IObject* node,
- CValue* gameobj);
+ CValue* gameobj);
void RemoveObject(CValue* gameobj);
void DelayedRemoveObject(CValue* gameobj);
int NewRemoveObject(CValue* gameobj);
void ReplaceMesh(CValue* gameobj,
- void* meshob, bool use_gfx, bool use_phys);
+ void* meshob, bool use_gfx, bool use_phys);
void AddAnimatedObject(CValue* gameobj);
void RemoveAnimatedObject(CValue* gameobj);
@@ -349,11 +349,11 @@ public:
void LogicUpdateFrame(double curtime, bool frame);
void UpdateAnimations(double curtime);
- void
+ void
LogicEndFrame(
);
- CListValue*
+ CListValue*
GetTempObjectList(
);
@@ -361,23 +361,23 @@ public:
GetObjectList(
);
- CListValue*
+ CListValue*
GetInactiveList(
);
- CListValue*
+ CListValue*
GetRootParentList(
);
- CListValue*
+ CListValue*
GetLightList(
);
- SCA_LogicManager*
+ SCA_LogicManager *
GetLogicManager(
);
- SCA_TimeEventManager*
+ SCA_TimeEventManager *
GetTimeEventManager(
);
@@ -426,7 +426,7 @@ public:
);
/** Find the currently active camera. */
- KX_Camera*
+ KX_Camera*
GetActiveCamera(
);
@@ -435,7 +435,7 @@ public:
* camera is not present in the camera list, it will be added
*/
- void
+ void
SetActiveCamera(
class KX_Camera*
);
@@ -453,7 +453,7 @@ public:
* Activates new desired canvas width set at design time.
* \param width The new desired width.
*/
- void
+ void
SetCanvasDesignWidth(
unsigned int width
);
@@ -461,7 +461,7 @@ public:
* Activates new desired canvas height set at design time.
* \param width The new desired height.
*/
- void
+ void
SetCanvasDesignHeight(
unsigned int height
);
@@ -469,7 +469,7 @@ public:
* Returns the current desired canvas width set at design time.
* \return The desired width.
*/
- unsigned int
+ unsigned int
GetCanvasDesignWidth(
void
) const;
@@ -478,7 +478,7 @@ public:
* Returns the current desired canvas height set at design time.
* \return The desired height.
*/
- unsigned int
+ unsigned int
GetCanvasDesignHeight(
void
) const;
@@ -617,7 +617,7 @@ public:
static PyObject* pyattr_get_drawing_callback_post(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_drawing_callback_post(void *selv_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
- virtual PyObject* py_repr(void) { return PyUnicode_From_STR_String(GetName()); }
+ virtual PyObject *py_repr(void) { return PyUnicode_From_STR_String(GetName()); }
/* getitem/setitem */
static PyMappingMethods Mapping;
@@ -626,10 +626,10 @@ public:
/**
* Run the registered python drawing functions.
*/
- void RunDrawingCallbacks(PyObject* cb_list);
+ void RunDrawingCallbacks(PyObject *cb_list);
- PyObject* GetPreDrawCB() { return m_draw_call_pre; }
- PyObject* GetPostDrawCB() { return m_draw_call_post; }
+ PyObject *GetPreDrawCB() { return m_draw_call_pre; }
+ PyObject *GetPostDrawCB() { return m_draw_call_post; }
#endif
/**
diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp
index 781c1fdab87..83b57dee7c1 100644
--- a/source/gameengine/Ketsji/KX_SceneActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp
@@ -256,7 +256,7 @@ PyAttributeDef KX_SceneActuator::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* KX_SceneActuator::pyattr_get_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_SceneActuator::pyattr_get_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_SceneActuator* actuator = static_cast<KX_SceneActuator*>(self);
if (!actuator->m_camera)
@@ -279,7 +279,7 @@ int KX_SceneActuator::pyattr_set_camera(void *self, const struct KX_PYATTRIBUTE_
if (camOb==NULL) {
actuator->m_camera= NULL;
}
- else {
+ else {
actuator->m_camera = camOb;
actuator->m_camera->RegisterActuator(actuator);
}
diff --git a/source/gameengine/Ketsji/KX_SceneActuator.h b/source/gameengine/Ketsji/KX_SceneActuator.h
index 774f740dd00..0b633334cce 100644
--- a/source/gameengine/Ketsji/KX_SceneActuator.h
+++ b/source/gameengine/Ketsji/KX_SceneActuator.h
@@ -1,29 +1,29 @@
-//
-// ***** BEGIN GPL LICENSE BLOCK *****
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//
-// The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-// All rights reserved.
-//
-// The Original Code is: all of this file.
-//
-// Contributor(s): none yet.
-//
-// ***** END GPL LICENSE BLOCK *****
-//
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
/** \file KX_SceneActuator.h
* \ingroup ketsji
@@ -99,7 +99,7 @@ class KX_SceneActuator : public SCA_IActuator
/* Python interface ---------------------------------------------------- */
/* --------------------------------------------------------------------- */
- static PyObject* pyattr_get_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_camera(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
#endif // WITH_PYTHON
diff --git a/source/gameengine/Ketsji/KX_SoundActuator.cpp b/source/gameengine/Ketsji/KX_SoundActuator.cpp
index 91f6224e197..c0191db640a 100644
--- a/source/gameengine/Ketsji/KX_SoundActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SoundActuator.cpp
@@ -358,7 +358,7 @@ KX_PYMETHODDEF_DOC_NOARGS(KX_SoundActuator, stopSound,
}
/* Atribute setting and getting -------------------------------------------- */
-PyObject* KX_SoundActuator::pyattr_get_3d_property(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_SoundActuator::pyattr_get_3d_property(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_SoundActuator * actuator = static_cast<KX_SoundActuator *> (self);
const char* prop = attrdef->m_name;
@@ -392,11 +392,11 @@ PyObject* KX_SoundActuator::pyattr_get_3d_property(void *self, const struct KX_P
Py_RETURN_NONE;
}
- PyObject* result = PyFloat_FromDouble(result_value);
+ PyObject *result = PyFloat_FromDouble(result_value);
return result;
}
-PyObject* KX_SoundActuator::pyattr_get_audposition(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_SoundActuator::pyattr_get_audposition(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_SoundActuator * actuator = static_cast<KX_SoundActuator *> (self);
float position = 0.0;
@@ -404,36 +404,36 @@ PyObject* KX_SoundActuator::pyattr_get_audposition(void *self, const struct KX_P
if (!actuator->m_handle.isNull())
position = actuator->m_handle->getPosition();
- PyObject* result = PyFloat_FromDouble(position);
+ PyObject *result = PyFloat_FromDouble(position);
return result;
}
-PyObject* KX_SoundActuator::pyattr_get_gain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_SoundActuator::pyattr_get_gain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_SoundActuator * actuator = static_cast<KX_SoundActuator *> (self);
float gain = actuator->m_volume;
- PyObject* result = PyFloat_FromDouble(gain);
+ PyObject *result = PyFloat_FromDouble(gain);
return result;
}
-PyObject* KX_SoundActuator::pyattr_get_pitch(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_SoundActuator::pyattr_get_pitch(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_SoundActuator * actuator = static_cast<KX_SoundActuator *> (self);
float pitch = actuator->m_pitch;
- PyObject* result = PyFloat_FromDouble(pitch);
+ PyObject *result = PyFloat_FromDouble(pitch);
return result;
}
-PyObject* KX_SoundActuator::pyattr_get_sound(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_SoundActuator::pyattr_get_sound(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_SoundActuator * actuator = static_cast<KX_SoundActuator *> (self);
if (!actuator->m_sound.isNull())
- return AUD_getPythonFactory(&actuator->m_sound);
+ return (PyObject *)AUD_getPythonFactory(&actuator->m_sound);
else
Py_RETURN_NONE;
}
@@ -542,12 +542,12 @@ int KX_SoundActuator::pyattr_set_pitch(void *self, const struct KX_PYATTRIBUTE_D
int KX_SoundActuator::pyattr_set_sound(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value)
{
- PyObject* sound = NULL;
+ PyObject *sound = NULL;
KX_SoundActuator * actuator = static_cast<KX_SoundActuator *> (self);
if (!PyArg_Parse(value, "O", &sound))
return PY_SET_ATTR_FAIL;
- AUD_Reference<AUD_IFactory>* snd = reinterpret_cast<AUD_Reference<AUD_IFactory>*>(AUD_getPythonSound(sound));
+ AUD_Reference<AUD_IFactory>* snd = reinterpret_cast<AUD_Reference<AUD_IFactory>*>(AUD_getPythonSound((void *)sound));
if (snd)
{
actuator->m_sound = *snd;
diff --git a/source/gameengine/Ketsji/KX_SoundActuator.h b/source/gameengine/Ketsji/KX_SoundActuator.h
index dbdb17d0da5..fcaf214dd90 100644
--- a/source/gameengine/Ketsji/KX_SoundActuator.h
+++ b/source/gameengine/Ketsji/KX_SoundActuator.h
@@ -115,12 +115,12 @@ public:
static int pyattr_set_type(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
static int pyattr_set_sound(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
- static PyObject* pyattr_get_3d_property(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_audposition(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_gain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_pitch(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_type(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_sound(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_3d_property(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_audposition(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_gain(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_pitch(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_type(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_sound(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
#endif // WITH_PYTHON
diff --git a/source/gameengine/Ketsji/KX_SteeringActuator.cpp b/source/gameengine/Ketsji/KX_SteeringActuator.cpp
index 16b9285386a..2fa72c04a20 100644
--- a/source/gameengine/Ketsji/KX_SteeringActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SteeringActuator.cpp
@@ -253,7 +253,7 @@ bool KX_SteeringActuator::Update(double curtime, bool frame)
static const MT_Vector3 PATH_COLOR(1,0,0);
m_navmesh->DrawPath(m_path, m_pathLen, PATH_COLOR);
}
- }
+ }
}
break;
@@ -285,7 +285,7 @@ bool KX_SteeringActuator::Update(double curtime, bool frame)
//temporary solution: set 2D steering velocity directly to obj
//correct way is to apply physical force
MT_Vector3 curvel = obj->GetLinearVelocity();
- newvel.z() = curvel.z();
+ newvel.z() = curvel.z();
obj->setLinearVelocity(newvel, false);
}
else
@@ -356,8 +356,8 @@ static bool getNavmeshNormal(dtStatNavMesh* navmesh, const MT_Vector3& pos, MT_V
{
static const float polyPickExt[3] = {2, 4, 2};
float spos[3];
- pos.getValue(spos);
- flipAxes(spos);
+ pos.getValue(spos);
+ flipAxes(spos);
dtStatPolyRef sPolyRef = navmesh->findNearestPoly(spos, polyPickExt);
if (sPolyRef == 0)
return false;
@@ -382,7 +382,7 @@ static bool getNavmeshNormal(dtStatNavMesh* navmesh, const MT_Vector3& pos, MT_V
{
distMin = dist;
idxMin = i;
- }
+ }
}
if (idxMin>=0)
@@ -416,7 +416,7 @@ void KX_SteeringActuator::HandleActorFace(MT_Vector3& velocity)
KX_GameObject* curobj = (KX_GameObject*) GetParent();
MT_Vector3 dir = m_facingMode==0 ? curobj->NodeGetLocalOrientation().getColumn(1) : velocity;
if (dir.fuzzyZero())
- return;
+ return;
dir.normalize();
MT_Vector3 up(0,0,1);
MT_Vector3 left;
@@ -431,7 +431,7 @@ void KX_SteeringActuator::HandleActorFace(MT_Vector3& velocity)
{
left = (dir.cross(up)).safe_normalized();
- dir = (-left.cross(normal)).safe_normalized();
+ dir = (-left.cross(normal)).safe_normalized();
up = normal;
}
}
@@ -495,7 +495,7 @@ void KX_SteeringActuator::HandleActorFace(MT_Vector3& velocity)
MT_Point3 localpos;
localpos = curobj->GetSGNode()->GetLocalPosition();
MT_Matrix3x3 parentmatinv;
- parentmatinv = parentObject->NodeGetWorldOrientation ().inverse ();
+ parentmatinv = parentObject->NodeGetWorldOrientation ().inverse ();
mat = parentmatinv * mat;
mat = m_parentlocalmat * mat;
curobj->NodeSetLocalOrientation(mat);
@@ -551,16 +551,16 @@ PyAttributeDef KX_SteeringActuator::Attributes[] = {
KX_PYATTRIBUTE_FLOAT_RW("turnspeed", 0.0f, 720.0f, KX_SteeringActuator, m_turnspeed),
KX_PYATTRIBUTE_BOOL_RW("selfterminated", KX_SteeringActuator, m_isSelfTerminated),
KX_PYATTRIBUTE_BOOL_RW("enableVisualization", KX_SteeringActuator, m_enableVisualization),
- KX_PYATTRIBUTE_RO_FUNCTION("steeringVec", KX_SteeringActuator, pyattr_get_steeringVec),
+ KX_PYATTRIBUTE_RO_FUNCTION("steeringVec", KX_SteeringActuator, pyattr_get_steeringVec),
KX_PYATTRIBUTE_SHORT_RW("facingMode", 0, 6, true, KX_SteeringActuator, m_facingMode),
KX_PYATTRIBUTE_INT_RW("pathUpdatePeriod", -1, 100000, true, KX_SteeringActuator, m_pathUpdatePeriod),
{ NULL } //Sentinel
};
-PyObject* KX_SteeringActuator::pyattr_get_target(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_SteeringActuator::pyattr_get_target(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_SteeringActuator* actuator = static_cast<KX_SteeringActuator*>(self);
- if (!actuator->m_target)
+ if (!actuator->m_target)
Py_RETURN_NONE;
else
return actuator->m_target->GetProxy();
@@ -575,7 +575,7 @@ int KX_SteeringActuator::pyattr_set_target(void *self, const struct KX_PYATTRIBU
return PY_SET_ATTR_FAIL; // ConvertPythonToGameObject sets the error
if (actuator->m_target != NULL)
- actuator->m_target->UnregisterActuator(actuator);
+ actuator->m_target->UnregisterActuator(actuator);
actuator->m_target = (KX_GameObject*) gameobj;
@@ -585,10 +585,10 @@ int KX_SteeringActuator::pyattr_set_target(void *self, const struct KX_PYATTRIBU
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_SteeringActuator::pyattr_get_navmesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_SteeringActuator::pyattr_get_navmesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_SteeringActuator* actuator = static_cast<KX_SteeringActuator*>(self);
- if (!actuator->m_navmesh)
+ if (!actuator->m_navmesh)
Py_RETURN_NONE;
else
return actuator->m_navmesh->GetProxy();
@@ -609,7 +609,7 @@ int KX_SteeringActuator::pyattr_set_navmesh(void *self, const struct KX_PYATTRIB
}
if (actuator->m_navmesh != NULL)
- actuator->m_navmesh->UnregisterActuator(actuator);
+ actuator->m_navmesh->UnregisterActuator(actuator);
actuator->m_navmesh = static_cast<KX_NavMeshObject*>(gameobj);
@@ -619,7 +619,7 @@ int KX_SteeringActuator::pyattr_set_navmesh(void *self, const struct KX_PYATTRIB
return PY_SET_ATTR_SUCCESS;
}
-PyObject* KX_SteeringActuator::pyattr_get_steeringVec(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_SteeringActuator::pyattr_get_steeringVec(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_SteeringActuator* actuator = static_cast<KX_SteeringActuator*>(self);
const MT_Vector3& steeringVec = actuator->GetSteeringVec();
diff --git a/source/gameengine/Ketsji/KX_SteeringActuator.h b/source/gameengine/Ketsji/KX_SteeringActuator.h
index c22a636cd95..341421d8948 100644
--- a/source/gameengine/Ketsji/KX_SteeringActuator.h
+++ b/source/gameengine/Ketsji/KX_SteeringActuator.h
@@ -82,7 +82,7 @@ public:
KX_GameObject *navmesh,
float distance,
float velocity,
- float acceleration,
+ float acceleration,
float turnspeed,
bool isSelfTerminated,
int pathUpdatePeriod,
@@ -107,11 +107,11 @@ public:
/* --------------------------------------------------------------------- */
/* These are used to get and set m_target */
- static PyObject* pyattr_get_target(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
- static int pyattr_set_target(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
- static PyObject* pyattr_get_navmesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
- static int pyattr_set_navmesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
- static PyObject* pyattr_get_steeringVec(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_target(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static int pyattr_set_target(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+ static PyObject *pyattr_get_navmesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static int pyattr_set_navmesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+ static PyObject *pyattr_get_steeringVec(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
#endif // WITH_PYTHON
diff --git a/source/gameengine/Ketsji/KX_TouchSensor.cpp b/source/gameengine/Ketsji/KX_TouchSensor.cpp
index d7bcf1306a1..885ac70061e 100644
--- a/source/gameengine/Ketsji/KX_TouchSensor.cpp
+++ b/source/gameengine/Ketsji/KX_TouchSensor.cpp
@@ -331,7 +331,7 @@ PyAttributeDef KX_TouchSensor::Attributes[] = {
/* Python API */
-PyObject* KX_TouchSensor::pyattr_get_object_hit(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_TouchSensor::pyattr_get_object_hit(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_TouchSensor* self= static_cast<KX_TouchSensor*>(self_v);
@@ -341,7 +341,7 @@ PyObject* KX_TouchSensor::pyattr_get_object_hit(void *self_v, const KX_PYATTRIBU
Py_RETURN_NONE;
}
-PyObject* KX_TouchSensor::pyattr_get_object_hit_list(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_TouchSensor::pyattr_get_object_hit_list(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_TouchSensor* self= static_cast<KX_TouchSensor*>(self_v);
return self->m_colliders->GetProxy();
diff --git a/source/gameengine/Ketsji/KX_TouchSensor.h b/source/gameengine/Ketsji/KX_TouchSensor.h
index d739144d70d..c80b8598e43 100644
--- a/source/gameengine/Ketsji/KX_TouchSensor.h
+++ b/source/gameengine/Ketsji/KX_TouchSensor.h
@@ -56,7 +56,7 @@ protected:
/**
* The sensor should only look for objects with this property.
*/
- STR_String m_touchedpropname;
+ STR_String m_touchedpropname;
bool m_bFindMaterial;
bool m_bTouchPulse; /* changes in the colliding objects trigger pulses */
diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.cpp b/source/gameengine/Ketsji/KX_TrackToActuator.cpp
index af93121b50e..1597948bafe 100644
--- a/source/gameengine/Ketsji/KX_TrackToActuator.cpp
+++ b/source/gameengine/Ketsji/KX_TrackToActuator.cpp
@@ -1,39 +1,40 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
/** \file gameengine/Ketsji/KX_TrackToActuator.cpp
* \ingroup ketsji
+ *
+ * Replace the mesh for this actuator's parent
*/
-//
-// Replace the mesh for this actuator's parent
-//
-//
-// ***** BEGIN GPL LICENSE BLOCK *****
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//
-// The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-// All rights reserved.
-//
-// The Original Code is: all of this file.
-//
-// Contributor(s): none yet.
-//
-// ***** END GPL LICENSE BLOCK *****
-
-// todo: not all trackflags / upflags are implemented/tested !
-// m_trackflag is used to determine the forward tracking direction
-// m_upflag for the up direction
-// normal situation is +y for forward, +z for up
+
+/* todo: not all trackflags / upflags are implemented/tested !
+ * m_trackflag is used to determine the forward tracking direction
+ * m_upflag for the up direction
+ * normal situation is +y for forward, +z for up */
#include "MT_Scalar.h"
#include "SCA_IActuator.h"
@@ -50,8 +51,6 @@
/* Native functions */
/* ------------------------------------------------------------------------- */
-
-
KX_TrackToActuator::KX_TrackToActuator(SCA_IObject *gameobj,
SCA_IObject *ob,
int time,
@@ -91,7 +90,7 @@ KX_TrackToActuator::KX_TrackToActuator(SCA_IObject *gameobj,
/* old function from Blender */
-MT_Matrix3x3 EulToMat3(float *eul)
+static MT_Matrix3x3 EulToMat3(float eul[3])
{
MT_Matrix3x3 mat;
float ci, cj, ch, si, sj, sh, cc, cs, sc, ss;
@@ -123,19 +122,18 @@ MT_Matrix3x3 EulToMat3(float *eul)
/* old function from Blender */
-void Mat3ToEulOld(MT_Matrix3x3 mat, float *eul)
+static void Mat3ToEulOld(MT_Matrix3x3 mat, float eul[3])
{
- MT_Scalar cy;
-
- cy = sqrt(mat[0][0]*mat[0][0] + mat[0][1]*mat[0][1]);
-
- if (cy > 16.0*FLT_EPSILON) {
- eul[0] = atan2(mat[1][2], mat[2][2]);
- eul[1] = atan2(-mat[0][2], cy);
- eul[2] = atan2(mat[0][1], mat[0][0]);
- } else {
- eul[0] = atan2(-mat[2][1], mat[1][1]);
- eul[1] = atan2(-mat[0][2], cy);
+ const float cy = sqrtf(mat[0][0] * mat[0][0] + mat[0][1] * mat[0][1]);
+
+ if (cy > (float)(16.0f * FLT_EPSILON)) {
+ eul[0] = atan2f( mat[1][2], mat[2][2]);
+ eul[1] = atan2f(-mat[0][2], cy);
+ eul[2] = atan2f( mat[0][1], mat[0][0]);
+ }
+ else {
+ eul[0] = atan2f(-mat[2][1], mat[1][1]);
+ eul[1] = atan2f(-mat[0][2], cy);
eul[2] = 0.0;
}
}
@@ -143,40 +141,40 @@ void Mat3ToEulOld(MT_Matrix3x3 mat, float *eul)
/* old function from Blender */
-void compatible_eulFast(float *eul, float *oldrot)
+static void compatible_eulFast(float *eul, float *oldrot)
{
float dx, dy, dz;
/* angular difference of 360 degrees */
- dx= eul[0] - oldrot[0];
- dy= eul[1] - oldrot[1];
- dz= eul[2] - oldrot[2];
+ dx = eul[0] - oldrot[0];
+ dy = eul[1] - oldrot[1];
+ dz = eul[2] - oldrot[2];
- if ( fabs(dx) > MT_PI) {
- if (dx > 0.0) eul[0] -= MT_2_PI; else eul[0]+= MT_2_PI;
+ if (fabsf(dx) > (float)MT_PI) {
+ if (dx > 0.0f) eul[0] -= (float)MT_2_PI; else eul[0] += (float)MT_2_PI;
}
- if ( fabs(dy) > MT_PI) {
- if (dy > 0.0) eul[1] -= MT_2_PI; else eul[1]+= MT_2_PI;
+ if (fabsf(dy) > (float)MT_PI) {
+ if (dy > 0.0f) eul[1] -= (float)MT_2_PI; else eul[1] += (float)MT_2_PI;
}
- if ( fabs(dz) > MT_PI ) {
- if (dz > 0.0) eul[2] -= MT_2_PI; else eul[2]+= MT_2_PI;
+ if (fabsf(dz) > (float)MT_PI) {
+ if (dz > 0.0f) eul[2] -= (float)MT_2_PI; else eul[2] += (float)MT_2_PI;
}
}
-MT_Matrix3x3 matrix3x3_interpol(MT_Matrix3x3 oldmat, MT_Matrix3x3 mat, int m_time)
+static MT_Matrix3x3 matrix3x3_interpol(MT_Matrix3x3 oldmat, MT_Matrix3x3 mat, int m_time)
{
- float eul[3], oldeul[3];
+ float eul[3], oldeul[3];
Mat3ToEulOld(oldmat, oldeul);
Mat3ToEulOld(mat, eul);
compatible_eulFast(eul, oldeul);
- eul[0]= (m_time*oldeul[0] + eul[0])/(1.0+m_time);
- eul[1]= (m_time*oldeul[1] + eul[1])/(1.0+m_time);
- eul[2]= (m_time*oldeul[2] + eul[2])/(1.0+m_time);
+ eul[0] = (m_time * oldeul[0] + eul[0]) / (1.0f + m_time);
+ eul[1] = (m_time * oldeul[1] + eul[1]) / (1.0f + m_time);
+ eul[2] = (m_time * oldeul[2] + eul[2]) / (1.0f + m_time);
return EulToMat3(eul);
}
@@ -240,7 +238,7 @@ void KX_TrackToActuator::Relink(CTR_Map<CTR_HashedPtr, void*> *obj_map)
bool KX_TrackToActuator::Update(double curtime, bool frame)
{
- bool result = false;
+ bool result = false;
bool bNegativeEvent = IsNegativeEvent();
RemoveAllEvents();
@@ -397,7 +395,7 @@ bool KX_TrackToActuator::Update(double curtime, bool frame)
localpos = curobj->GetSGNode()->GetLocalPosition();
// Get the inverse of the parent matrix
MT_Matrix3x3 parentmatinv;
- parentmatinv = m_parentobj->NodeGetWorldOrientation ().inverse ();
+ parentmatinv = m_parentobj->NodeGetWorldOrientation ().inverse ();
// transform the local coordinate system into the parents system
mat = parentmatinv * mat;
// append the initial parent local rotation matrix
@@ -460,10 +458,10 @@ PyAttributeDef KX_TrackToActuator::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* KX_TrackToActuator::pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_TrackToActuator::pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef)
{
KX_TrackToActuator* actuator = static_cast<KX_TrackToActuator*>(self);
- if (!actuator->m_object)
+ if (!actuator->m_object)
Py_RETURN_NONE;
else
return actuator->m_object->GetProxy();
@@ -478,7 +476,7 @@ int KX_TrackToActuator::pyattr_set_object(void *self, const struct KX_PYATTRIBUT
return PY_SET_ATTR_FAIL; // ConvertPythonToGameObject sets the error
if (actuator->m_object != NULL)
- actuator->m_object->UnregisterActuator(actuator);
+ actuator->m_object->UnregisterActuator(actuator);
actuator->m_object = (SCA_IObject*) gameobj;
diff --git a/source/gameengine/Ketsji/KX_TrackToActuator.h b/source/gameengine/Ketsji/KX_TrackToActuator.h
index 8eb69b1ad08..6329c7b34d9 100644
--- a/source/gameengine/Ketsji/KX_TrackToActuator.h
+++ b/source/gameengine/Ketsji/KX_TrackToActuator.h
@@ -1,29 +1,29 @@
-//
-// ***** BEGIN GPL LICENSE BLOCK *****
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software Foundation,
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-//
-// The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-// All rights reserved.
-//
-// The Original Code is: all of this file.
-//
-// Contributor(s): none yet.
-//
-// ***** END GPL LICENSE BLOCK *****
-//
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
/** \file KX_TrackToActuator.h
* \ingroup ketsji
@@ -74,8 +74,8 @@ class KX_TrackToActuator : public SCA_IActuator
/* Python part */
/* These are used to get and set m_ob */
- static PyObject* pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
- static int pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+ static PyObject *pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+ static int pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
#endif // WITH_PYTHON
diff --git a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp
index 1c03df80dc1..b5d6f11a2d5 100644
--- a/source/gameengine/Ketsji/KX_VehicleWrapper.cpp
+++ b/source/gameengine/Ketsji/KX_VehicleWrapper.cpp
@@ -34,11 +34,11 @@ KX_VehicleWrapper::~KX_VehicleWrapper()
#ifdef WITH_PYTHON
-PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* args)
+PyObject *KX_VehicleWrapper::PyAddWheel(PyObject *args)
{
- PyObject* pylistPos,*pylistDir,*pylistAxleDir;
- PyObject* wheelGameObject;
+ PyObject *pylistPos,*pylistDir,*pylistAxleDir;
+ PyObject *wheelGameObject;
float suspensionRestLength,wheelRadius;
int hasSteering;
@@ -83,7 +83,7 @@ PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* args)
-PyObject* KX_VehicleWrapper::PyGetWheelPosition(PyObject* args)
+PyObject *KX_VehicleWrapper::PyGetWheelPosition(PyObject *args)
{
int wheelIndex;
@@ -98,7 +98,7 @@ PyObject* KX_VehicleWrapper::PyGetWheelPosition(PyObject* args)
return NULL;
}
-PyObject* KX_VehicleWrapper::PyGetWheelRotation(PyObject* args)
+PyObject *KX_VehicleWrapper::PyGetWheelRotation(PyObject *args)
{
int wheelIndex;
if (PyArg_ParseTuple(args,"i:getWheelRotation",&wheelIndex))
@@ -108,7 +108,7 @@ PyObject* KX_VehicleWrapper::PyGetWheelRotation(PyObject* args)
return NULL;
}
-PyObject* KX_VehicleWrapper::PyGetWheelOrientationQuaternion(PyObject* args)
+PyObject *KX_VehicleWrapper::PyGetWheelOrientationQuaternion(PyObject *args)
{
int wheelIndex;
if (PyArg_ParseTuple(args,"i:getWheelOrientationQuaternion",&wheelIndex))
@@ -124,20 +124,20 @@ PyObject* KX_VehicleWrapper::PyGetWheelOrientationQuaternion(PyObject* args)
}
-PyObject* KX_VehicleWrapper::PyGetNumWheels(PyObject* args)
+PyObject *KX_VehicleWrapper::PyGetNumWheels(PyObject *args)
{
return PyLong_FromSsize_t(m_vehicle->GetNumWheels());
}
-PyObject* KX_VehicleWrapper::PyGetConstraintId(PyObject* args)
+PyObject *KX_VehicleWrapper::PyGetConstraintId(PyObject *args)
{
return PyLong_FromSsize_t(m_vehicle->GetUserConstraintId());
}
-PyObject* KX_VehicleWrapper::PyApplyEngineForce(PyObject* args)
+PyObject *KX_VehicleWrapper::PyApplyEngineForce(PyObject *args)
{
float force;
int wheelIndex;
@@ -153,7 +153,7 @@ PyObject* KX_VehicleWrapper::PyApplyEngineForce(PyObject* args)
Py_RETURN_NONE;
}
-PyObject* KX_VehicleWrapper::PySetTyreFriction(PyObject* args)
+PyObject *KX_VehicleWrapper::PySetTyreFriction(PyObject *args)
{
float wheelFriction;
int wheelIndex;
@@ -168,7 +168,7 @@ PyObject* KX_VehicleWrapper::PySetTyreFriction(PyObject* args)
Py_RETURN_NONE;
}
-PyObject* KX_VehicleWrapper::PySetSuspensionStiffness(PyObject* args)
+PyObject *KX_VehicleWrapper::PySetSuspensionStiffness(PyObject *args)
{
float suspensionStiffness;
int wheelIndex;
@@ -183,7 +183,7 @@ PyObject* KX_VehicleWrapper::PySetSuspensionStiffness(PyObject* args)
Py_RETURN_NONE;
}
-PyObject* KX_VehicleWrapper::PySetSuspensionDamping(PyObject* args)
+PyObject *KX_VehicleWrapper::PySetSuspensionDamping(PyObject *args)
{
float suspensionDamping;
int wheelIndex;
@@ -197,7 +197,7 @@ PyObject* KX_VehicleWrapper::PySetSuspensionDamping(PyObject* args)
Py_RETURN_NONE;
}
-PyObject* KX_VehicleWrapper::PySetSuspensionCompression(PyObject* args)
+PyObject *KX_VehicleWrapper::PySetSuspensionCompression(PyObject *args)
{
float suspensionCompression;
int wheelIndex;
@@ -211,7 +211,7 @@ PyObject* KX_VehicleWrapper::PySetSuspensionCompression(PyObject* args)
Py_RETURN_NONE;
}
-PyObject* KX_VehicleWrapper::PySetRollInfluence(PyObject* args)
+PyObject *KX_VehicleWrapper::PySetRollInfluence(PyObject *args)
{
float rollInfluence;
int wheelIndex;
@@ -227,7 +227,7 @@ PyObject* KX_VehicleWrapper::PySetRollInfluence(PyObject* args)
}
-PyObject* KX_VehicleWrapper::PyApplyBraking(PyObject* args)
+PyObject *KX_VehicleWrapper::PyApplyBraking(PyObject *args)
{
float braking;
int wheelIndex;
@@ -245,7 +245,7 @@ PyObject* KX_VehicleWrapper::PyApplyBraking(PyObject* args)
-PyObject* KX_VehicleWrapper::PySetSteeringValue(PyObject* args)
+PyObject *KX_VehicleWrapper::PySetSteeringValue(PyObject *args)
{
float steeringValue;
int wheelIndex;
@@ -261,7 +261,7 @@ PyObject* KX_VehicleWrapper::PySetSteeringValue(PyObject* args)
}
-PyObject* KX_VehicleWrapper::PyGetConstraintType(PyObject* args)
+PyObject *KX_VehicleWrapper::PyGetConstraintType(PyObject *args)
{
return PyLong_FromSsize_t(m_vehicle->GetUserConstraintType());
}
diff --git a/source/gameengine/Ketsji/KX_VertexProxy.cpp b/source/gameengine/Ketsji/KX_VertexProxy.cpp
index d489c015273..461563d4512 100644
--- a/source/gameengine/Ketsji/KX_VertexProxy.cpp
+++ b/source/gameengine/Ketsji/KX_VertexProxy.cpp
@@ -101,85 +101,85 @@ PyAttributeDef KX_VertexProxy::Attributes[] = {
{ NULL } //Sentinel
};
-PyObject* KX_VertexProxy::pyattr_get_x(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_x(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyFloat_FromDouble(self->m_vertex->getXYZ()[0]);
}
-PyObject* KX_VertexProxy::pyattr_get_y(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_y(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyFloat_FromDouble(self->m_vertex->getXYZ()[1]);
}
-PyObject* KX_VertexProxy::pyattr_get_z(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_z(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyFloat_FromDouble(self->m_vertex->getXYZ()[2]);
}
-PyObject* KX_VertexProxy::pyattr_get_r(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_r(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyFloat_FromDouble(self->m_vertex->getRGBA()[0]/255.0);
}
-PyObject* KX_VertexProxy::pyattr_get_g(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_g(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyFloat_FromDouble(self->m_vertex->getRGBA()[1]/255.0);
}
-PyObject* KX_VertexProxy::pyattr_get_b(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_b(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyFloat_FromDouble(self->m_vertex->getRGBA()[2]/255.0);
}
-PyObject* KX_VertexProxy::pyattr_get_a(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_a(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyFloat_FromDouble(self->m_vertex->getRGBA()[3]/255.0);
}
-PyObject* KX_VertexProxy::pyattr_get_u(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_u(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyFloat_FromDouble(self->m_vertex->getUV1()[0]);
}
-PyObject* KX_VertexProxy::pyattr_get_v(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_v(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyFloat_FromDouble(self->m_vertex->getUV1()[1]);
}
-PyObject* KX_VertexProxy::pyattr_get_u2(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_u2(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyFloat_FromDouble(self->m_vertex->getUV2()[0]);
}
-PyObject* KX_VertexProxy::pyattr_get_v2(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_v2(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyFloat_FromDouble(self->m_vertex->getUV2()[1]);
}
-PyObject* KX_VertexProxy::pyattr_get_XYZ(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_XYZ(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyObjectFrom(MT_Vector3(self->m_vertex->getXYZ()));
}
-PyObject* KX_VertexProxy::pyattr_get_UV(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_UV(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyObjectFrom(MT_Point2(self->m_vertex->getUV1()));
}
-PyObject* KX_VertexProxy::pyattr_get_color(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_color(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
const unsigned char *colp = self->m_vertex->getRGBA();
@@ -188,7 +188,7 @@ PyObject* KX_VertexProxy::pyattr_get_color(void *self_v, const KX_PYATTRIBUTE_DE
return PyObjectFrom(color);
}
-PyObject* KX_VertexProxy::pyattr_get_normal(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+PyObject *KX_VertexProxy::pyattr_get_normal(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
{
KX_VertexProxy* self= static_cast<KX_VertexProxy*>(self_v);
return PyObjectFrom(MT_Vector3(self->m_vertex->getNormal()));
@@ -459,12 +459,12 @@ CValue* KX_VertexProxy::GetReplica() { return NULL;}
// stuff for python integration
-PyObject* KX_VertexProxy::PyGetXYZ()
+PyObject *KX_VertexProxy::PyGetXYZ()
{
return PyObjectFrom(MT_Point3(m_vertex->getXYZ()));
}
-PyObject* KX_VertexProxy::PySetXYZ(PyObject* value)
+PyObject *KX_VertexProxy::PySetXYZ(PyObject *value)
{
MT_Point3 vec;
if (!PyVecTo(value, vec))
@@ -475,12 +475,12 @@ PyObject* KX_VertexProxy::PySetXYZ(PyObject* value)
Py_RETURN_NONE;
}
-PyObject* KX_VertexProxy::PyGetNormal()
+PyObject *KX_VertexProxy::PyGetNormal()
{
return PyObjectFrom(MT_Vector3(m_vertex->getNormal()));
}
-PyObject* KX_VertexProxy::PySetNormal(PyObject* value)
+PyObject *KX_VertexProxy::PySetNormal(PyObject *value)
{
MT_Vector3 vec;
if (!PyVecTo(value, vec))
@@ -492,13 +492,13 @@ PyObject* KX_VertexProxy::PySetNormal(PyObject* value)
}
-PyObject* KX_VertexProxy::PyGetRGBA()
+PyObject *KX_VertexProxy::PyGetRGBA()
{
int *rgba = (int *) m_vertex->getRGBA();
return PyLong_FromSsize_t(*rgba);
}
-PyObject* KX_VertexProxy::PySetRGBA(PyObject* value)
+PyObject *KX_VertexProxy::PySetRGBA(PyObject *value)
{
if (PyLong_Check(value)) {
int rgba = PyLong_AsSsize_t(value);
@@ -521,12 +521,12 @@ PyObject* KX_VertexProxy::PySetRGBA(PyObject* value)
}
-PyObject* KX_VertexProxy::PyGetUV()
+PyObject *KX_VertexProxy::PyGetUV()
{
return PyObjectFrom(MT_Vector2(m_vertex->getUV1()));
}
-PyObject* KX_VertexProxy::PySetUV(PyObject* value)
+PyObject *KX_VertexProxy::PySetUV(PyObject *value)
{
MT_Point2 vec;
if (!PyVecTo(value, vec))
@@ -537,17 +537,17 @@ PyObject* KX_VertexProxy::PySetUV(PyObject* value)
Py_RETURN_NONE;
}
-PyObject* KX_VertexProxy::PyGetUV2()
+PyObject *KX_VertexProxy::PyGetUV2()
{
return PyObjectFrom(MT_Vector2(m_vertex->getUV2()));
}
-PyObject* KX_VertexProxy::PySetUV2(PyObject* args)
+PyObject *KX_VertexProxy::PySetUV2(PyObject *args)
{
MT_Point2 vec;
unsigned int unit= RAS_TexVert::SECOND_UV;
- PyObject* list= NULL;
+ PyObject *list = NULL;
if (!PyArg_ParseTuple(args, "O|i:setUV2", &list, &unit))
return NULL;
diff --git a/source/gameengine/Ketsji/KX_VertexProxy.h b/source/gameengine/Ketsji/KX_VertexProxy.h
index 3084e5fac93..f56e2be26a3 100644
--- a/source/gameengine/Ketsji/KX_VertexProxy.h
+++ b/source/gameengine/Ketsji/KX_VertexProxy.h
@@ -59,21 +59,21 @@ public:
// stuff for python integration
- static PyObject* pyattr_get_x(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_y(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_z(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_r(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_g(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_b(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_a(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_u(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_v(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_u2(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_v2(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_XYZ(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_UV(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_color(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
- static PyObject* pyattr_get_normal(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_x(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_y(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_z(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_r(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_g(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_b(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_a(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_u(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_v(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_u2(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_v2(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_XYZ(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_UV(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_color(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+ static PyObject *pyattr_get_normal(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_x(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
static int pyattr_set_y(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
static int pyattr_set_z(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
diff --git a/source/gameengine/Ketsji/KX_WorldInfo.h b/source/gameengine/Ketsji/KX_WorldInfo.h
index e4a73873fa1..5b35ca2ec54 100644
--- a/source/gameengine/Ketsji/KX_WorldInfo.h
+++ b/source/gameengine/Ketsji/KX_WorldInfo.h
@@ -43,7 +43,7 @@ class MT_CmMatrix4x4;
class KX_WorldInfo
{
public:
- KX_WorldInfo(){}
+ KX_WorldInfo() {}
virtual ~KX_WorldInfo();
virtual bool hasWorld()=0;
diff --git a/source/gameengine/Ketsji/KX_WorldIpoController.h b/source/gameengine/Ketsji/KX_WorldIpoController.h
index 409b1fec321..575d4e72f14 100644
--- a/source/gameengine/Ketsji/KX_WorldIpoController.h
+++ b/source/gameengine/Ketsji/KX_WorldIpoController.h
@@ -72,15 +72,15 @@ public:
m_modified = true;
}
- void SetModifyMistStart(bool modify) {
+ void SetModifyMistStart(bool modify) {
m_modify_mist_start = modify;
}
- void SetModifyMistColor(bool modify) {
+ void SetModifyMistColor(bool modify) {
m_modify_mist_color = modify;
}
- void SetModifyMistDist(bool modify) {
+ void SetModifyMistDist(bool modify) {
m_modify_mist_dist = modify;
}
diff --git a/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h b/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h
index 92ba6100359..f9d2146a766 100644
--- a/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h
+++ b/source/gameengine/Network/LoopBackNetwork/NG_LoopBackNetworkDeviceInterface.h
@@ -36,7 +36,7 @@
#include "NG_NetworkDeviceInterface.h"
class NG_LoopBackNetworkDeviceInterface : public NG_NetworkDeviceInterface
-{
+{
std::deque<NG_NetworkMessage*> m_messages[2];
int m_currentQueue;
diff --git a/source/gameengine/Network/NG_NetworkScene.h b/source/gameengine/Network/NG_NetworkScene.h
index 41ac8ead5e4..381b71da0d7 100644
--- a/source/gameengine/Network/NG_NetworkScene.h
+++ b/source/gameengine/Network/NG_NetworkScene.h
@@ -51,7 +51,7 @@ class NG_NetworkDeviceInterface;
class NG_NetworkScene
{
- class NG_NetworkDeviceInterface *m_networkdevice;
+ class NG_NetworkDeviceInterface *m_networkdevice;
CTR_Map<STR_HashedString, class NG_NetworkObject *> m_networkObjects;
// CTR_Maps used as a 'Bloom' filter
@@ -107,7 +107,7 @@ protected:
* Releases messages for the given message map.
* \param map Message map with messages.
*/
- void ClearMessageMap(TMessageMap& map);
+ void ClearMessageMap(TMessageMap& map);
#ifdef WITH_CXX_GUARDEDALLOC
diff --git a/source/gameengine/Physics/Bullet/CcdGraphicController.h b/source/gameengine/Physics/Bullet/CcdGraphicController.h
index 60ff475832b..15edfeb5759 100644
--- a/source/gameengine/Physics/Bullet/CcdGraphicController.h
+++ b/source/gameengine/Physics/Bullet/CcdGraphicController.h
@@ -33,7 +33,7 @@ class CcdPhysicsEnvironment;
class btCollisionObject;
///CcdGraphicController is a graphic object that supports view frustrum culling and occlusion
-class CcdGraphicController : public PHY_IGraphicController
+class CcdGraphicController : public PHY_IGraphicController
{
public:
CcdGraphicController(CcdPhysicsEnvironment* phyEnv, PHY_IMotionState* motionState);
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
index 21158a9461d..240bda811f0 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
@@ -539,6 +539,13 @@ static void DeleteBulletShape(btCollisionShape* shape, bool free)
if (meshInterface)
delete meshInterface;
}
+ else if (shape->getShapeType() == GIMPACT_SHAPE_PROXYTYPE)
+ {
+ btGImpactMeshShape* meshShape = static_cast<btGImpactMeshShape*>(shape);
+ btStridingMeshInterface* meshInterface = meshShape->getMeshInterface();
+ if (meshInterface)
+ delete meshInterface;
+ }
if (free) {
delete shape;
}
@@ -625,6 +632,8 @@ CcdPhysicsController::~CcdPhysicsController()
delete m_MotionState;
if (m_bulletMotionState)
delete m_bulletMotionState;
+ if (m_characterController)
+ delete m_characterController;
delete m_object;
DeleteControllerShape();
@@ -778,7 +787,7 @@ void CcdPhysicsController::PostProcessReplica(class PHY_IMotionState* motionsta
if (oldbody->getActivationState() == DISABLE_DEACTIVATION)
body->setActivationState(DISABLE_DEACTIVATION);
}
- }
+ }
// sensor object are added when needed
if (!m_cci.m_bSensor)
m_cci.m_physicsEnv->addCcdPhysicsController(this);
@@ -797,7 +806,7 @@ void CcdPhysicsController::PostProcessReplica(class PHY_IMotionState* motionsta
m_sumoObj = new SM_Object(
orgsumoobject->getShapeHandle(),
- orgsumoobject->getMaterialProps(),
+ orgsumoobject->getMaterialProps(),
orgsumoobject->getShapeProps(),
dynaparent);
@@ -829,6 +838,11 @@ void CcdPhysicsController::SetPhysicsEnvironment(class PHY_IPhysicsEnvironment *
if (m_cci.m_physicsEnv->removeCcdPhysicsController(this))
{
physicsEnv->addCcdPhysicsController(this);
+
+ // Set the object to be active so it can at least by evaluated once.
+ // This fixes issues with static objects not having their physics meshes
+ // in the right spot when lib loading.
+ this->GetCollisionObject()->setActivationState(ACTIVE_TAG);
}
m_cci.m_physicsEnv = physicsEnv;
}
@@ -881,18 +895,22 @@ void CcdPhysicsController::RelativeTranslate(float dlocX,float dlocY,float dloc
return;
}
- // btRigidBody* body = GetRigidBody(); // not used anymore
-
btVector3 dloc(dlocX,dlocY,dlocZ);
btTransform xform = m_object->getWorldTransform();
if (local)
- {
dloc = xform.getBasis()*dloc;
+
+ if (m_characterController)
+ {
+ m_characterController->setWalkDirection(dloc/GetPhysicsEnvironment()->getNumTimeSubSteps());
}
+ else
+ {
- xform.setOrigin(xform.getOrigin() + dloc);
- SetCenterOfMassTransform(xform);
+ xform.setOrigin(xform.getOrigin() + dloc);
+ SetCenterOfMassTransform(xform);
+ }
}
}
@@ -1128,7 +1146,7 @@ void CcdPhysicsController::ApplyForce(float forceX,float forceY,float forceZ,bo
btTransform xform = m_object->getWorldTransform();
if (local)
- {
+ {
force = xform.getBasis()*force;
}
btRigidBody* body = GetRigidBody();
@@ -1287,17 +1305,16 @@ void CcdPhysicsController::getReactionForce(float& forceX,float& forceY,float&
// dyna's that are rigidbody are free in orientation, dyna's with non-rigidbody are restricted
void CcdPhysicsController::setRigidBody(bool rigid)
{
- if (!rigid)
+ btRigidBody* body = GetRigidBody();
+ if (body)
{
- btRigidBody* body = GetRigidBody();
- if (body)
- {
- //fake it for now
- btVector3 inertia = body->getInvInertiaDiagLocal();
- inertia[1] = 0.f;
- body->setInvInertiaDiagLocal(inertia);
- body->updateInertiaTensor();
+ m_cci.m_bRigid = rigid;
+ if (!rigid) {
+ body->setAngularFactor(0.f);
+ body->setAngularVelocity(btVector3(0.f, 0.f, 0.f));
}
+ else
+ body->setAngularFactor(m_cci.m_angularFactor);
}
}
@@ -1648,7 +1665,7 @@ bool CcdShapeConstructionInfo::SetMesh(RAS_MeshObject* meshobj, DerivedMesh* dm,
}
if (vert_tag_array[mf->v3]==true) { /* *** v3 *** */
vert_tag_array[mf->v3]= false;
- *bt++ = v3->co[0];
+ *bt++ = v3->co[0];
*bt++ = v3->co[1];
*bt++ = v3->co[2];
}
@@ -1680,7 +1697,7 @@ bool CcdShapeConstructionInfo::SetMesh(RAS_MeshObject* meshobj, DerivedMesh* dm,
if (vert_tag_array[mf->v4]==true) { /* *** v4 *** */
vert_tag_array[mf->v4]= false;
*bt++ = v4->co[0];
- *bt++ = v4->co[1];
+ *bt++ = v4->co[1];
*bt++ = v4->co[2];
}
}
@@ -2042,6 +2059,15 @@ bool CcdShapeConstructionInfo::UpdateMesh(class KX_GameObject* gameobj, class RA
m_forceReInstance= true;
}
+ // Make sure to also replace the mesh in the shape map! Otherwise we leave dangling references when we free.
+ // Note, this whole business could cause issues with shared meshes. If we update one mesh, do we replace
+ // them all?
+ std::map<RAS_MeshObject*,CcdShapeConstructionInfo*>::iterator mit = m_meshShapeMap.find(m_meshObject);
+ if (mit != m_meshShapeMap.end()) {
+ m_meshShapeMap.erase(mit);
+ m_meshShapeMap[meshobj] = this;
+ }
+
m_meshObject= meshobj;
if (dm) {
@@ -2067,7 +2093,7 @@ bool CcdShapeConstructionInfo::SetProxy(CcdShapeConstructionInfo* shapeInfo)
btCollisionShape* CcdShapeConstructionInfo::CreateBulletShape(btScalar margin, bool useGimpact, bool useBvh)
{
btCollisionShape* collisionShape = 0;
- btCompoundShape* compoundShape = 0;
+ btCompoundShape* compoundShape = 0;
if (m_shapeType == PHY_SHAPE_PROXY && m_shapeProxy != NULL)
return m_shapeProxy->CreateBulletShape(margin, useGimpact, useBvh);
@@ -2116,7 +2142,7 @@ btCollisionShape* CcdShapeConstructionInfo::CreateBulletShape(btScalar margin, b
// One possible optimization is to use directly the btBvhTriangleMeshShape when the scale is 1,1,1
// and btScaledBvhTriangleMeshShape otherwise.
if (useGimpact)
- {
+ {
btTriangleIndexVertexArray* indexVertexArrays = new btTriangleIndexVertexArray(
m_polygonIndexArray.size(),
&m_triFaceArray[0],
@@ -2125,7 +2151,6 @@ btCollisionShape* CcdShapeConstructionInfo::CreateBulletShape(btScalar margin, b
&m_vertexArray[0],
3*sizeof(btScalar)
);
-
btGImpactMeshShape* gimpactShape = new btGImpactMeshShape(indexVertexArrays);
gimpactShape->setMargin(margin);
collisionShape = gimpactShape;
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsController.h b/source/gameengine/Physics/Bullet/CcdPhysicsController.h
index 09afafbe0a7..2204f224e7d 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsController.h
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsController.h
@@ -171,7 +171,7 @@ public:
btVector3 m_halfExtend;
btTransform m_childTrans;
btVector3 m_childScale;
- void* m_userData;
+ void* m_userData;
btAlignedObjectArray<btScalar> m_vertexArray; // Contains both vertex array for polytope shape and
// triangle array for concave mesh shape. Each vertex is 3 consecutive values
// In this case a triangle is made of 3 consecutive points
@@ -229,6 +229,8 @@ struct CcdConstructionInfo
:m_localInertiaTensor(1.f, 1.f, 1.f),
m_gravity(0,0,0),
m_scaling(1.f,1.f,1.f),
+ m_linearFactor(0.f, 0.f, 0.f),
+ m_angularFactor(0.f, 0.f, 0.f),
m_mass(0.f),
m_clamp_vel_min(-1.f),
m_clamp_vel_max(-1.f),
@@ -267,6 +269,7 @@ struct CcdConstructionInfo
m_bRigid(false),
m_bSoft(false),
m_bSensor(false),
+ m_bCharacter(false),
m_bGimpact(false),
m_collisionFilterGroup(DefaultFilter),
m_collisionFilterMask(AllFilter),
@@ -291,6 +294,8 @@ struct CcdConstructionInfo
btVector3 m_localInertiaTensor;
btVector3 m_gravity;
btVector3 m_scaling;
+ btVector3 m_linearFactor;
+ btVector3 m_angularFactor;
btScalar m_mass;
btScalar m_clamp_vel_min;
btScalar m_clamp_vel_max;
@@ -392,7 +397,7 @@ class btCollisionObject;
class btSoftBody;
///CcdPhysicsController is a physics object that supports continuous collision detection and time of impact based physics resolution.
-class CcdPhysicsController : public PHY_IPhysicsController
+class CcdPhysicsController : public PHY_IPhysicsController
{
protected:
btCollisionObject* m_object;
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
index 47cd4ff8da5..82a60e756d7 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
@@ -57,7 +57,6 @@ btRaycastVehicle::btVehicleTuning gTuning;
#include "LinearMath/btAabbUtil2.h"
#include "MT_Matrix4x4.h"
#include "MT_Vector3.h"
-#include "GL/glew.h"
#ifdef WIN32
void DrawRasterizerLine(const float* from,const float* to,int color);
@@ -303,13 +302,13 @@ static void DrawAabb(btIDebugDraw* debugDrawer,const btVector3& from,const btVec
{
for (j=0;j<3;j++)
{
- pa = btVector3(edgecoord[0]*halfExtents[0], edgecoord[1]*halfExtents[1],
+ pa = btVector3(edgecoord[0]*halfExtents[0], edgecoord[1]*halfExtents[1],
edgecoord[2]*halfExtents[2]);
pa+=center;
int othercoord = j%3;
edgecoord[othercoord]*=-1.f;
- pb = btVector3(edgecoord[0]*halfExtents[0], edgecoord[1]*halfExtents[1],
+ pb = btVector3(edgecoord[0]*halfExtents[0], edgecoord[1]*halfExtents[1],
edgecoord[2]*halfExtents[2]);
pb+=center;
@@ -338,6 +337,7 @@ m_enableSatCollisionDetection(false),
m_solver(NULL),
m_ownPairCache(NULL),
m_filterCallback(NULL),
+m_ghostPairCallback(NULL),
m_ownDispatcher(NULL),
m_scalingPropagated(false)
{
@@ -369,8 +369,9 @@ m_scalingPropagated(false)
}
m_filterCallback = new CcdOverlapFilterCallBack(this);
+ m_ghostPairCallback = new btGhostPairCallback();
m_broadphase->getOverlappingPairCache()->setOverlapFilterCallback(m_filterCallback);
- m_broadphase->getOverlappingPairCache()->setInternalGhostPairCallback(new btGhostPairCallback());
+ m_broadphase->getOverlappingPairCache()->setInternalGhostPairCallback(m_ghostPairCallback);
setSolverType(1);//issues with quickstep and memory allocations
// m_dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher,m_broadphase,m_solver,m_collisionConfiguration);
@@ -449,6 +450,11 @@ bool CcdPhysicsEnvironment::removeCcdPhysicsController(CcdPhysicsController* ctr
} else
{
m_dynamicsWorld->removeCollisionObject(ctrl->GetCollisionObject());
+
+ if (ctrl->GetCharacterController())
+ {
+ m_dynamicsWorld->removeAction(ctrl->GetCharacterController());
+ }
}
}
if (ctrl->m_registerCount != 0)
@@ -477,9 +483,8 @@ void CcdPhysicsEnvironment::updateCcdPhysicsController(CcdPhysicsController* ctr
body->getCollisionShape()->calculateLocalInertia(newMass, inertia);
body->setMassProps(newMass, inertia);
m_dynamicsWorld->addRigidBody(body, newCollisionGroup, newCollisionMask);
- }
- else
- {
+ }
+ else {
m_dynamicsWorld->addCollisionObject(obj, newCollisionGroup, newCollisionMask);
}
}
@@ -598,7 +603,7 @@ bool CcdPhysicsEnvironment::proceedDeltaTime(double curTime,float timeStep,float
float subStep = timeStep / float(m_numTimeSubSteps);
i = m_dynamicsWorld->stepSimulation(interval,25,subStep);//perform always a full simulation step
-//uncomment next line to see where Bullet spend its time (printf in console)
+//uncomment next line to see where Bullet spend its time (printf in console)
//CProfileManager::dumpAll();
processFhSprings(curTime,i*subStep);
@@ -828,16 +833,16 @@ void CcdPhysicsEnvironment::setCcdMode(int ccdMode)
void CcdPhysicsEnvironment::setSolverSorConstant(float sor)
{
- m_solverInfo.m_sor = sor;
+ m_dynamicsWorld->getSolverInfo().m_sor = sor;
}
void CcdPhysicsEnvironment::setSolverTau(float tau)
{
- m_solverInfo.m_tau = tau;
+ m_dynamicsWorld->getSolverInfo().m_tau = tau;
}
void CcdPhysicsEnvironment::setSolverDamping(float damping)
{
- m_solverInfo.m_damping = damping;
+ m_dynamicsWorld->getSolverInfo().m_damping = damping;
}
@@ -1077,7 +1082,7 @@ static bool GetHitTriangle(btCollisionShape* shape, CcdShapeConstructionInfo* sh
btScalar* graphicsbase = (btScalar*)(vertexbase+graphicsindex*stride);
- triangle[j] = btVector3(graphicsbase[0]*meshScaling.getX(),graphicsbase[1]*meshScaling.getY(),graphicsbase[2]*meshScaling.getZ());
+ triangle[j] = btVector3(graphicsbase[0]*meshScaling.getX(),graphicsbase[1]*meshScaling.getY(),graphicsbase[2]*meshScaling.getZ());
}
meshInterface->unLockReadOnlyVertexBase(0);
return true;
@@ -1241,7 +1246,7 @@ PHY_IPhysicsController* CcdPhysicsEnvironment::rayTest(PHY_IRayCastFilterCallbac
result.m_hitNormal[1] = rayCallback.m_hitNormalWorld.getY();
result.m_hitNormal[2] = rayCallback.m_hitNormalWorld.getZ();
filterCallback.reportHit(&result);
- }
+ }
return result.m_controller;
@@ -1303,22 +1308,19 @@ struct OcclusionBuffer
m[14] = btScalar(m1[ 2]*m2[12]+m1[ 6]*m2[13]+m1[10]*m2[14]+m1[14]*m2[15]);
m[15] = btScalar(m1[ 3]*m2[12]+m1[ 7]*m2[13]+m1[11]*m2[14]+m1[15]*m2[15]);
}
- void setup(int size)
+ void setup(int size, const int *view, double modelview[16], double projection[16])
{
m_initialized=false;
m_occlusion=false;
// compute the size of the buffer
- GLint v[4];
- GLdouble m[16],p[16];
int maxsize;
double ratio;
- glGetIntegerv(GL_VIEWPORT,v);
- maxsize = (v[2] > v[3]) ? v[2] : v[3];
+ maxsize = (view[2] > view[3]) ? view[2] : view[3];
assert(maxsize > 0);
ratio = 1.0/(2*maxsize);
// ensure even number
- m_sizes[0] = 2*((int)(size*v[2]*ratio+0.5));
- m_sizes[1] = 2*((int)(size*v[3]*ratio+0.5));
+ m_sizes[0] = 2*((int)(size*view[2]*ratio+0.5));
+ m_sizes[1] = 2*((int)(size*view[3]*ratio+0.5));
m_scales[0]=btScalar(m_sizes[0]/2);
m_scales[1]=btScalar(m_sizes[1]/2);
m_offsets[0]=m_scales[0]+0.5f;
@@ -1326,10 +1328,8 @@ struct OcclusionBuffer
// prepare matrix
// at this time of the rendering, the modelview matrix is the
// world to camera transformation and the projection matrix is
- // camera to clip transformation. combine both so that
- glGetDoublev(GL_MODELVIEW_MATRIX,m);
- glGetDoublev(GL_PROJECTION_MATRIX,p);
- CMmat4mul(m_wtc,p,m);
+ // camera to clip transformation. combine both so that
+ CMmat4mul(m_wtc, projection, modelview);
}
void initialize()
{
@@ -1384,7 +1384,7 @@ struct OcclusionBuffer
static bool project(btVector4* p,int n)
{
for (int i=0;i<n;++i)
- {
+ {
p[i][2]=1/p[i][3];
p[i][0]*=p[i][2];
p[i][1]*=p[i][2];
@@ -1604,7 +1604,7 @@ struct OcclusionBuffer
const int a=x[2]*y[0]+x[0]*y[1]-x[2]*y[1]-x[0]*y[2]+x[1]*y[2]-x[1]*y[0];
const btScalar ia=1/(btScalar)a;
const btScalar dzx=ia*(y[2]*(z[1]-z[0])+y[1]*(z[0]-z[2])+y[0]*(z[2]-z[1]));
- const btScalar dzy=ia*(x[2]*(z[0]-z[1])+x[0]*(z[1]-z[2])+x[1]*(z[2]-z[0]))-(dzx*width);
+ const btScalar dzy=ia*(x[2]*(z[0]-z[1])+x[0]*(z[1]-z[2])+x[1]*(z[2]-z[0]))-(dzx*width);
int c[]={ miy*x[1]+mix*y[0]-x[1]*y[0]-mix*y[1]+x[0]*y[1]-miy*x[0],
miy*x[2]+mix*y[1]-x[2]*y[1]-mix*y[2]+x[1]*y[2]-miy*x[1],
miy*x[0]+mix*y[2]-x[0]*y[2]-mix*y[0]+x[2]*y[0]-miy*x[2]};
@@ -1667,7 +1667,7 @@ struct OcclusionBuffer
const float* c,
const float* d,
const float face)
- {
+ {
btVector4 p[4];
transformM(a,p[0]);
transformM(b,p[1]);
@@ -1737,7 +1737,7 @@ struct DbvtCullingCallback : btDbvt::ICollide
Process(node);
}
void Process(const btDbvtNode* leaf)
- {
+ {
btBroadphaseProxy* proxy=(btBroadphaseProxy*)leaf->data;
// the client object is a graphic controller
CcdGraphicController* ctrl = static_cast<CcdGraphicController*>(proxy->m_clientObject);
@@ -1789,7 +1789,7 @@ struct DbvtCullingCallback : btDbvt::ICollide
};
static OcclusionBuffer gOcb;
-bool CcdPhysicsEnvironment::cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4 *planes, int nplanes, int occlusionRes)
+bool CcdPhysicsEnvironment::cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4 *planes, int nplanes, int occlusionRes, const int *viewport, double modelview[16], double projection[16])
{
if (!m_cullingTree)
return false;
@@ -1806,15 +1806,15 @@ bool CcdPhysicsEnvironment::cullingTest(PHY_CullingCallback callback, void* user
// if occlusionRes != 0 => occlusion culling
if (occlusionRes)
{
- gOcb.setup(occlusionRes);
+ gOcb.setup(occlusionRes, viewport, modelview, projection);
dispatcher.m_ocb = &gOcb;
// occlusion culling, the direction of the view is taken from the first plan which MUST be the near plane
btDbvt::collideOCL(m_cullingTree->m_sets[1].m_root,planes_n,planes_o,planes_n[0],nplanes,dispatcher);
- btDbvt::collideOCL(m_cullingTree->m_sets[0].m_root,planes_n,planes_o,planes_n[0],nplanes,dispatcher);
+ btDbvt::collideOCL(m_cullingTree->m_sets[0].m_root,planes_n,planes_o,planes_n[0],nplanes,dispatcher);
}
else {
btDbvt::collideKDOP(m_cullingTree->m_sets[1].m_root,planes_n,planes_o,nplanes,dispatcher);
- btDbvt::collideKDOP(m_cullingTree->m_sets[0].m_root,planes_n,planes_o,nplanes,dispatcher);
+ btDbvt::collideKDOP(m_cullingTree->m_sets[0].m_root,planes_n,planes_o,nplanes,dispatcher);
}
return true;
}
@@ -1886,6 +1886,9 @@ CcdPhysicsEnvironment::~CcdPhysicsEnvironment()
if (NULL != m_filterCallback)
delete m_filterCallback;
+ if (NULL != m_ghostPairCallback)
+ delete m_ghostPairCallback;
+
if (NULL != m_collisionConfiguration)
delete m_collisionConfiguration;
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h
index ef1c0873005..453380b69ca 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h
@@ -83,8 +83,6 @@ protected:
int m_profileTimings;
bool m_enableSatCollisionDetection;
- btContactSolverInfo m_solverInfo;
-
void processFhSprings(double curTime,float timeStep);
public:
@@ -117,6 +115,11 @@ protected:
virtual void setLinearAirDamping(float damping);
virtual void setUseEpa(bool epa);
+ int getNumTimeSubSteps()
+ {
+ return m_numTimeSubSteps;
+ }
+
virtual void beginFrame();
virtual void endFrame() {}
/// Perform an integration step of duration 'timeStep'.
@@ -185,7 +188,7 @@ protected:
btTypedConstraint* getConstraintById(int constraintId);
virtual PHY_IPhysicsController* rayTest(PHY_IRayCastFilterCallback &filterCallback, float fromX,float fromY,float fromZ, float toX,float toY,float toZ);
- virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4* planes, int nplanes, int occlusionRes);
+ virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4* planes, int nplanes, int occlusionRes, const int *viewport, double modelview[16], double projection[16]);
//Methods for gamelogic collision/physics callbacks
@@ -280,6 +283,8 @@ protected:
class CcdOverlapFilterCallBack* m_filterCallback;
+ class btGhostPairCallback* m_ghostPairCallback;
+
class btDispatcher* m_ownDispatcher;
bool m_scalingPropagated;
diff --git a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h
index 9c109168b18..4ddfe4d69e0 100644
--- a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h
+++ b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h
@@ -73,7 +73,7 @@ public:
}
virtual PHY_IPhysicsController* rayTest(PHY_IRayCastFilterCallback &filterCallback, float fromX,float fromY,float fromZ, float toX,float toY,float toZ);
- virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4* planes, int nplanes, int occlusionRes) { return false; }
+ virtual bool cullingTest(PHY_CullingCallback callback, void* userData, PHY__Vector4* planes, int nplanes, int occlusionRes, const int *viewport, double modelview[16], double projection[16]) { return false; }
//gamelogic callbacks
diff --git a/source/gameengine/Physics/common/PHY_DynamicTypes.h b/source/gameengine/Physics/common/PHY_DynamicTypes.h
index a72929d25c5..6994706ce2d 100644
--- a/source/gameengine/Physics/common/PHY_DynamicTypes.h
+++ b/source/gameengine/Physics/common/PHY_DynamicTypes.h
@@ -32,11 +32,11 @@ struct PHY__Vector2
operator const float* () const
{
return &m_vec[0];
- }
+ }
operator float* ()
{
return &m_vec[0];
- }
+ }
};
struct PHY__Vector3
@@ -46,11 +46,11 @@ struct PHY__Vector3
operator const float* () const
{
return &m_vec[0];
- }
+ }
operator float* ()
{
return &m_vec[0];
- }
+ }
};
struct PHY__Vector4
@@ -75,11 +75,11 @@ struct PHY__Vector4
operator const float* () const
{
return &m_vec[0];
- }
+ }
operator float* ()
{
return &m_vec[0];
- }
+ }
};
//typedef float PHY__Vector3[4];
@@ -96,18 +96,18 @@ enum
PHY_NUM_RESPONSE
};
- typedef struct PHY_CollData {
- PHY__Vector3 m_point1; /* Point in object1 in world coordinates */
- PHY__Vector3 m_point2; /* Point in object2 in world coordinates */
- PHY__Vector3 m_normal; /* point2 - point1 */
- } PHY_CollData;
+typedef struct PHY_CollData {
+ PHY__Vector3 m_point1; /* Point in object1 in world coordinates */
+ PHY__Vector3 m_point2; /* Point in object2 in world coordinates */
+ PHY__Vector3 m_normal; /* point2 - point1 */
+} PHY_CollData;
- typedef bool (*PHY_ResponseCallback)(void *client_data,
- void *client_object1,
- void *client_object2,
- const PHY_CollData *coll_data);
- typedef void (*PHY_CullingCallback)(KX_ClientObjectInfo* info, void* param);
+typedef bool (*PHY_ResponseCallback)(void *client_data,
+ void *client_object1,
+ void *client_object2,
+ const PHY_CollData *coll_data);
+typedef void (*PHY_CullingCallback)(KX_ClientObjectInfo* info, void* param);
/// PHY_PhysicsType enumerates all possible Physics Entities.
diff --git a/source/gameengine/Physics/common/PHY_IController.h b/source/gameengine/Physics/common/PHY_IController.h
index 239ac3366e1..729abd8ec04 100644
--- a/source/gameengine/Physics/common/PHY_IController.h
+++ b/source/gameengine/Physics/common/PHY_IController.h
@@ -45,7 +45,7 @@ class PHY_IPhysicsEnvironment;
controlled by the physics engine. This includes the physics objects
and the graphics object for view frustrum and occlusion culling.
*/
-class PHY_IController
+class PHY_IController
{
public:
virtual ~PHY_IController();
diff --git a/source/gameengine/Physics/common/PHY_IMotionState.h b/source/gameengine/Physics/common/PHY_IMotionState.h
index 2eb2a9f39cf..72ff37468ee 100644
--- a/source/gameengine/Physics/common/PHY_IMotionState.h
+++ b/source/gameengine/Physics/common/PHY_IMotionState.h
@@ -43,7 +43,7 @@
class PHY_IMotionState
{
- public:
+ public:
virtual ~PHY_IMotionState();
virtual void getWorldPosition(float& posX,float& posY,float& posZ)=0;
diff --git a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h
index 8fde9e289dc..77016859c3f 100644
--- a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h
+++ b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h
@@ -48,7 +48,7 @@ class PHY_IPhysicsController;
*/
struct PHY_RayCastResult
{
- PHY_IPhysicsController* m_controller;
+ PHY_IPhysicsController* m_controller;
PHY__Vector3 m_hitPoint;
PHY__Vector3 m_hitNormal;
const RAS_MeshObject* m_meshObject; // !=NULL for mesh object (only for Bullet controllers)
@@ -107,7 +107,7 @@ class PHY_IPhysicsEnvironment
/// Perform an integration step of duration 'timeStep'.
virtual bool proceedDeltaTime(double curTime,float timeStep,float interval)=0;
///draw debug lines (make sure to call this during the render phase, otherwise lines are not drawn properly)
- virtual void debugDrawWorld(){}
+ virtual void debugDrawWorld() {}
virtual void setFixedTimeStep(bool useFixedTimeStep,float fixedTimeStep)=0;
//returns 0.f if no fixed timestep is used
virtual float getFixedTimeStep()=0;
@@ -117,7 +117,7 @@ class PHY_IPhysicsEnvironment
///setNumIterations set the number of iterations for iterative solvers
virtual void setNumIterations(int numIter) {}
///setNumTimeSubSteps set the number of divisions of the timestep. Tradeoff quality versus performance.
- virtual void setNumTimeSubSteps(int numTimeSubSteps){}
+ virtual void setNumTimeSubSteps(int numTimeSubSteps) {}
///setDeactivationTime sets the minimum time that an objects has to stay within the velocity tresholds until it gets fully deactivated
virtual void setDeactivationTime(float dTime) {}
///setDeactivationLinearTreshold sets the linear velocity treshold, see setDeactivationTime
@@ -150,7 +150,7 @@ class PHY_IPhysicsEnvironment
float axis2X=0,float axis2Y=0,float axis2Z=0,int flag=0
)=0;
virtual void removeConstraint(int constraintid)=0;
- virtual float getAppliedImpulse(int constraintid){ return 0.f;}
+ virtual float getAppliedImpulse(int constraintid) { return 0.0f; }
//complex constraint for vehicles
@@ -161,7 +161,7 @@ class PHY_IPhysicsEnvironment
//culling based on physical broad phase
// the plane number must be set as follow: near, far, left, right, top, botton
// the near plane must be the first one and must always be present, it is used to get the direction of the view
- virtual bool cullingTest(PHY_CullingCallback callback, void *userData, PHY__Vector4* planeNormals, int planeNumber, int occlusionRes) = 0;
+ virtual bool cullingTest(PHY_CullingCallback callback, void *userData, PHY__Vector4* planeNormals, int planeNumber, int occlusionRes, const int *viewport, double modelview[16], double projection[16]) = 0;
//Methods for gamelogic collision/physics callbacks
//todo:
diff --git a/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp b/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
index 43acb9e5f8a..0ae8908e946 100644
--- a/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
+++ b/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
@@ -52,7 +52,6 @@
RAS_2DFilterManager::RAS_2DFilterManager():
texturewidth(-1), textureheight(-1),
-canvaswidth(-1), canvasheight(-1),
/* numberoffilters(0), */ /* UNUSED */ need_tex_update(true)
{
isshadersupported = GLEW_ARB_shader_objects &&
@@ -111,7 +110,7 @@ void RAS_2DFilterManager::PrintShaderErrors(unsigned int shader, const char *tas
unsigned int RAS_2DFilterManager::CreateShaderProgram(const char* shadersource)
{
- GLuint program = 0;
+ GLuint program = 0;
GLuint fShader = glCreateShaderObjectARB(GL_FRAGMENT_SHADER);
GLint success;
@@ -324,8 +323,8 @@ void RAS_2DFilterManager::SetupTextures(bool depth, bool luminance)
void RAS_2DFilterManager::UpdateOffsetMatrix(RAS_ICanvas* canvas)
{
/* RAS_Rect canvas_rect = canvas->GetWindowArea(); */ /* UNUSED */
- texturewidth = canvas->GetWidth();
- textureheight = canvas->GetHeight();
+ texturewidth = canvas->GetWidth()+1;
+ textureheight = canvas->GetHeight()+1;
GLint i,j;
if (!GL_ARB_texture_non_power_of_two)
@@ -399,11 +398,11 @@ void RAS_2DFilterManager::RenderFilters(RAS_ICanvas* canvas)
if (num_filters <= 0)
return;
- GLuint viewport[4]={0};
- glGetIntegerv(GL_VIEWPORT,(GLint *)viewport);
+ const GLint *viewport = canvas->GetViewPort();
RAS_Rect rect = canvas->GetWindowArea();
+ int rect_width = rect.GetWidth()+1, rect_height = rect.GetHeight()+1;
- if (canvaswidth != canvas->GetWidth() || canvasheight != canvas->GetHeight())
+ if (texturewidth != rect_width || textureheight != rect_height)
{
UpdateOffsetMatrix(canvas);
UpdateCanvasTextureCoord((unsigned int*)viewport);
@@ -419,19 +418,19 @@ void RAS_2DFilterManager::RenderFilters(RAS_ICanvas* canvas)
if (need_depth) {
glActiveTextureARB(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, texname[1]);
- glCopyTexImage2D(GL_TEXTURE_2D,0,GL_DEPTH_COMPONENT, rect.GetLeft(), rect.GetBottom(), rect.GetWidth(), rect.GetHeight(), 0);
+ glCopyTexImage2D(GL_TEXTURE_2D,0,GL_DEPTH_COMPONENT, rect.GetLeft(), rect.GetBottom(), rect_width, rect_height, 0);
}
if (need_luminance) {
glActiveTextureARB(GL_TEXTURE2);
glBindTexture(GL_TEXTURE_2D, texname[2]);
- glCopyTexImage2D(GL_TEXTURE_2D,0,GL_LUMINANCE16, rect.GetLeft(), rect.GetBottom(), rect.GetWidth(), rect.GetHeight(), 0);
+ glCopyTexImage2D(GL_TEXTURE_2D,0,GL_LUMINANCE16, rect.GetLeft(), rect.GetBottom(), rect_width, rect_height, 0);
}
// reverting to texunit 0, without this we get bug [#28462]
glActiveTextureARB(GL_TEXTURE0);
- glViewport(rect.GetLeft(), rect.GetBottom(), texturewidth, textureheight);
+ glViewport(rect.GetLeft(), rect.GetBottom(), rect_width, rect_height);
glDisable(GL_DEPTH_TEST);
// in case the previous material was wire
@@ -454,7 +453,7 @@ void RAS_2DFilterManager::RenderFilters(RAS_ICanvas* canvas)
glActiveTextureARB(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texname[0]);
- glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, rect.GetLeft(), rect.GetBottom(), rect.GetWidth(), rect.GetHeight(), 0); // Don't use texturewidth and textureheight in case we don't have NPOT support
+ glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, rect.GetLeft(), rect.GetBottom(), rect_width, rect_height, 0); // Don't use texturewidth and textureheight in case we don't have NPOT support
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS);
@@ -469,7 +468,7 @@ void RAS_2DFilterManager::RenderFilters(RAS_ICanvas* canvas)
glEnable(GL_DEPTH_TEST);
glViewport(viewport[0],viewport[1],viewport[2],viewport[3]);
- EndShaderProgram();
+ EndShaderProgram();
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
diff --git a/source/gameengine/Rasterizer/RAS_2DFilterManager.h b/source/gameengine/Rasterizer/RAS_2DFilterManager.h
index 93d143dd3ce..ba74018d36b 100644
--- a/source/gameengine/Rasterizer/RAS_2DFilterManager.h
+++ b/source/gameengine/Rasterizer/RAS_2DFilterManager.h
@@ -62,8 +62,6 @@ private:
unsigned int texname[3];
int texturewidth;
int textureheight;
- int canvaswidth;
- int canvasheight;
/* int numberoffilters; */ /* UNUSED */
/* bit 0: enable/disable depth texture
* bit 1: enable/disable luminance texture*/
diff --git a/source/gameengine/Rasterizer/RAS_BucketManager.cpp b/source/gameengine/Rasterizer/RAS_BucketManager.cpp
index 90587bb9739..457fd0ad90c 100644
--- a/source/gameengine/Rasterizer/RAS_BucketManager.cpp
+++ b/source/gameengine/Rasterizer/RAS_BucketManager.cpp
@@ -232,8 +232,8 @@ void RAS_BucketManager::Renderbuckets(
/* beginning each frame, clear (texture/material) caching information */
rasty->ClearCachingInfo();
- RenderSolidBuckets(cameratrans, rasty, rendertools);
- RenderAlphaBuckets(cameratrans, rasty, rendertools);
+ RenderSolidBuckets(cameratrans, rasty, rendertools);
+ RenderAlphaBuckets(cameratrans, rasty, rendertools);
rendertools->SetClientObject(rasty, NULL);
}
diff --git a/source/gameengine/Rasterizer/RAS_Deformer.h b/source/gameengine/Rasterizer/RAS_Deformer.h
index 627db2b63fb..d70e56dc285 100644
--- a/source/gameengine/Rasterizer/RAS_Deformer.h
+++ b/source/gameengine/Rasterizer/RAS_Deformer.h
@@ -49,8 +49,8 @@ class RAS_MeshObject;
class RAS_Deformer
{
public:
- RAS_Deformer() : m_pMesh(NULL), m_bDynamic(false) {};
- virtual ~RAS_Deformer(){};
+ RAS_Deformer() : m_pMesh(NULL), m_bDynamic(false) {}
+ virtual ~RAS_Deformer() {}
virtual void Relink(CTR_Map<class CTR_HashedPtr, void*>*map)=0;
virtual bool Apply(class RAS_IPolyMaterial *polymat)=0;
virtual bool Update(void)=0;
@@ -91,7 +91,7 @@ public:
protected:
class RAS_MeshObject *m_pMesh;
- bool m_bDynamic;
+ bool m_bDynamic;
#ifdef WITH_CXX_GUARDEDALLOC
diff --git a/source/gameengine/Rasterizer/RAS_FramingManager.cpp b/source/gameengine/Rasterizer/RAS_FramingManager.cpp
index 1cd110f8cc6..53d9b64ab0e 100644
--- a/source/gameengine/Rasterizer/RAS_FramingManager.cpp
+++ b/source/gameengine/Rasterizer/RAS_FramingManager.cpp
@@ -43,7 +43,7 @@ ComputeDefaultFrustum(
const short sensor_fit,
const float design_aspect_ratio,
RAS_FrameFrustum & frustum
-) {
+) {
float halfSize;
float sizeX;
float sizeY;
@@ -202,7 +202,7 @@ ComputeViewport(
{
ComputeBestFitViewRect(
availableViewport,
- design_aspect_ratio,
+ design_aspect_ratio,
viewport
);
@@ -260,7 +260,7 @@ ComputeFrustum(
RAS_Rect vt;
ComputeBestFitViewRect(
availableViewport,
- design_aspect_ratio,
+ design_aspect_ratio,
vt
);
@@ -277,13 +277,13 @@ ComputeFrustum(
frustum.y2 *= y_scale;
break;
- }
+ }
case RAS_FrameSettings::e_frame_scale :
case RAS_FrameSettings::e_frame_bars:
default :
break;
}
-}
+}
void
RAS_FramingManager::
@@ -330,7 +330,7 @@ RAS_FramingManager::
RAS_Rect vt;
ComputeBestFitViewRect(
availableViewport,
- design_aspect_ratio,
+ design_aspect_ratio,
vt
);
@@ -347,7 +347,7 @@ RAS_FramingManager::
frustum.y2 *= y_scale;
break;
- }
+ }
case RAS_FrameSettings::e_frame_scale :
case RAS_FrameSettings::e_frame_bars:
default :
diff --git a/source/gameengine/Rasterizer/RAS_FramingManager.h b/source/gameengine/Rasterizer/RAS_FramingManager.h
index 6312f83737e..122f0ca46ec 100644
--- a/source/gameengine/Rasterizer/RAS_FramingManager.h
+++ b/source/gameengine/Rasterizer/RAS_FramingManager.h
@@ -109,7 +109,7 @@ public :
*/
const
- RAS_FrameType &
+ RAS_FrameType &
FrameType(
) const {
return m_frame_type;
@@ -143,13 +143,13 @@ public :
unsigned int
DesignAspectWidth(
) const {
- return m_design_aspect_width;
+ return m_design_aspect_width;
};
unsigned int
DesignAspectHeight(
) const {
- return m_design_aspect_height;
+ return m_design_aspect_height;
};
private :
@@ -262,7 +262,7 @@ public :
const short sensor_fit,
const float design_aspect_ratio,
RAS_FrameFrustum & frustum
- );
+ );
static
void
@@ -289,7 +289,7 @@ private :
/**
* Private constructor - this class is not meant
- * for instanciation.
+ * for instantiation.
*/
RAS_FramingManager(
diff --git a/source/gameengine/Rasterizer/RAS_ICanvas.h b/source/gameengine/Rasterizer/RAS_ICanvas.h
index 713a06845ac..f045eb7e423 100644
--- a/source/gameengine/Rasterizer/RAS_ICanvas.h
+++ b/source/gameengine/Rasterizer/RAS_ICanvas.h
@@ -180,6 +180,13 @@ public:
int x2, int y2
) = 0;
+ /**
+ * Get the visible viewport
+ */
+ virtual
+ const int*
+ GetViewPort() = 0;
+
virtual
void
SetMouseState(
diff --git a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
index 0f89af490d8..169bc6e4ee6 100644
--- a/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
+++ b/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
@@ -174,7 +174,7 @@ public:
virtual bool UsesObjectColor() const;
virtual bool CastsShadows() const;
- virtual void Replace_IScene(SCA_IScene *val) {}; /* overridden by KX_BlenderMaterial */
+ virtual void Replace_IScene(SCA_IScene *val) {} /* overridden by KX_BlenderMaterial */
/**
* \return the equivalent drawing mode for the material settings (equivalent to old TexFace tface->mode).
@@ -184,7 +184,7 @@ public:
/*
* PreCalculate texture gen
*/
- virtual void OnConstruction(int layer){}
+ virtual void OnConstruction(int layer) {}
#ifdef WITH_CXX_GUARDEDALLOC
diff --git a/source/gameengine/Rasterizer/RAS_IRasterizer.h b/source/gameengine/Rasterizer/RAS_IRasterizer.h
index d4c19410eb1..8efc10f2118 100644
--- a/source/gameengine/Rasterizer/RAS_IRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_IRasterizer.h
@@ -64,8 +64,8 @@ typedef vector< KX_IndexArray* > vecIndexArrays;
class RAS_IRasterizer
{
public:
- RAS_IRasterizer(RAS_ICanvas* canv){};
- virtual ~RAS_IRasterizer(){};
+ RAS_IRasterizer(RAS_ICanvas* canv) {};
+ virtual ~RAS_IRasterizer() {};
/**
* Drawing types
@@ -301,7 +301,7 @@ public:
virtual int GetDrawingMode()=0;
/**
* Sets face culling
- */
+ */
virtual void SetCullFace(bool enable)=0;
/**
* Sets wireframe mode.
@@ -401,8 +401,8 @@ public:
virtual const MT_Matrix4x4& GetViewMatrix() const = 0;
virtual const MT_Matrix4x4& GetViewInvMatrix() const = 0;
- virtual bool QueryLists(){return false;}
- virtual bool QueryArrays(){return false;}
+ virtual bool QueryLists() { return false; }
+ virtual bool QueryArrays() { return false; }
virtual void EnableMotionBlur(float motionblurvalue)=0;
virtual void DisableMotionBlur()=0;
diff --git a/source/gameengine/Rasterizer/RAS_IRenderTools.h b/source/gameengine/Rasterizer/RAS_IRenderTools.h
index 5d3efb8c38a..ca6f20b71ad 100644
--- a/source/gameengine/Rasterizer/RAS_IRenderTools.h
+++ b/source/gameengine/Rasterizer/RAS_IRenderTools.h
@@ -72,18 +72,18 @@ public:
{
};
- virtual
+ virtual
~RAS_IRenderTools(
) {};
virtual
- void
+ void
BeginFrame(
RAS_IRasterizer* rasty
)=0;
virtual
- void
+ void
EndFrame(
RAS_IRasterizer* rasty
)=0;
@@ -94,7 +94,7 @@ public:
// so must be renamed to 'applyTransform' or something
virtual
- void
+ void
applyTransform(
class RAS_IRasterizer* rasty,
double* oglmatrix,
@@ -112,15 +112,15 @@ public:
* \param aspect A scaling factor to compensate for the size.
*/
virtual
- void
- RenderText3D(int fontid,
- const char* text,
- int size,
- int dpi,
- float* color,
- double* mat,
- float aspect
- ) = 0;
+ void
+ RenderText3D(int fontid,
+ const char* text,
+ int size,
+ int dpi,
+ float* color,
+ double* mat,
+ float aspect
+ ) = 0;
/**
@@ -133,7 +133,7 @@ public:
* \param height Height of the canvas to draw to.
*/
virtual
- void
+ void
RenderText2D(
RAS_TEXT_RENDER_MODE mode,
const char* text,
@@ -145,7 +145,7 @@ public:
// 3d text, mapped on polygon
virtual
- void
+ void
RenderText(
int mode,
RAS_IPolyMaterial* polymat,
@@ -156,8 +156,8 @@ public:
int glattrib
)=0;
- virtual
- void
+ virtual
+ void
ProcessLighting(
RAS_IRasterizer *rasty,
bool uselights,
@@ -165,35 +165,35 @@ public:
)=0;
virtual
- void
+ void
SetClientObject(
RAS_IRasterizer* rasty,
void* obj
);
- void
+ void
SetAuxilaryClientInfo(
void* inf
);
virtual
- void
+ void
PushMatrix(
)=0;
virtual
- void
+ void
PopMatrix(
)=0;
virtual
- void
+ void
AddLight(
struct RAS_LightObject* lightobject
);
virtual
- void
+ void
RemoveLight(
struct RAS_LightObject* lightobject
);
diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
index a18adfd8986..c890f0c3dc5 100644
--- a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
+++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
@@ -147,7 +147,7 @@ void RAS_MeshSlot::begin(RAS_MeshSlot::iterator& it)
int startvertex, endvertex;
int startindex, endindex;
- it.array = (m_displayArrays.size() > 0)? m_displayArrays[m_startarray]: NULL;
+ it.array = m_displayArrays.empty() ? NULL : m_displayArrays[m_startarray];
if (it.array == NULL || it.array->m_index.size() == 0 || it.array->m_vertex.size() == 0) {
it.array = NULL;
@@ -368,7 +368,7 @@ bool RAS_MeshSlot::Join(RAS_MeshSlot *target, MT_Scalar distance)
size_t i;
// verify if we can join
- if (m_joinSlot || m_joinedSlots.size() || target->m_joinSlot)
+ if (m_joinSlot || (m_joinedSlots.empty() == false) || target->m_joinSlot)
return false;
if (!Equals(target))
@@ -461,7 +461,7 @@ bool RAS_MeshSlot::Split(bool force)
abort();
}
- if (target->m_displayArrays.size()) {
+ if (target->m_displayArrays.empty() == false) {
target->m_endvertex = target->m_displayArrays.back()->m_vertex.size();
target->m_endindex = target->m_displayArrays.back()->m_index.size();
}
@@ -489,7 +489,7 @@ bool RAS_MeshSlot::Split(bool force)
}
-#ifdef USE_SPLIT
+#ifdef USE_SPLIT
bool RAS_MeshSlot::IsCulled()
{
if (m_joinSlot)
@@ -502,7 +502,7 @@ bool RAS_MeshSlot::IsCulled()
return false;
return true;
}
-#endif
+#endif
/* material bucket sorting */
@@ -531,12 +531,12 @@ RAS_IPolyMaterial* RAS_MaterialBucket::GetPolyMaterial() const
}
bool RAS_MaterialBucket::IsAlpha() const
-{
+{
return (m_material->IsAlpha());
}
bool RAS_MaterialBucket::IsZSort() const
-{
+{
return (m_material->IsZSort());
}
diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.h b/source/gameengine/Rasterizer/RAS_MaterialBucket.h
index 7cf7fee7845..295f2510313 100644
--- a/source/gameengine/Rasterizer/RAS_MaterialBucket.h
+++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.h
@@ -54,7 +54,7 @@ class KX_ListSlot
protected:
int m_refcount;
public:
- KX_ListSlot(){ m_refcount=1; }
+ KX_ListSlot() { m_refcount = 1; }
virtual ~KX_ListSlot() {}
virtual int Release() {
if (--m_refcount > 0)
diff --git a/source/gameengine/Rasterizer/RAS_MeshObject.cpp b/source/gameengine/Rasterizer/RAS_MeshObject.cpp
index 7da0be3a506..c50aa28e9fc 100644
--- a/source/gameengine/Rasterizer/RAS_MeshObject.cpp
+++ b/source/gameengine/Rasterizer/RAS_MeshObject.cpp
@@ -173,7 +173,7 @@ const STR_String& RAS_MeshObject::GetMaterialName(unsigned int matid)
RAS_MeshMaterial* RAS_MeshObject::GetMeshMaterial(unsigned int matid)
{
- if (m_materials.size() > 0 && (matid < m_materials.size()))
+ if ((m_materials.empty() == false) && (matid < m_materials.size()))
{
list<RAS_MeshMaterial>::iterator it = m_materials.begin();
while (matid--) ++it;
@@ -536,18 +536,18 @@ void RAS_MeshObject::SortPolygons(RAS_MeshSlot& ms, const MT_Transform &transfor
const MT_Vector3 pnorm(transform.getBasis()[2]);
// unneeded: const MT_Scalar pval = transform.getOrigin()[2];
- vector<polygonSlot> slots(totpoly);
+ vector<polygonSlot> poly_slots(totpoly);
/* get indices and z into temporary array */
for (j=0; j<totpoly; j++)
- slots[j].get(it.vertex, it.index, j*nvert, nvert, pnorm);
+ poly_slots[j].get(it.vertex, it.index, j*nvert, nvert, pnorm);
/* sort (stable_sort might be better, if flickering happens?) */
- std::sort(slots.begin(), slots.end(), backtofront());
+ std::sort(poly_slots.begin(), poly_slots.end(), backtofront());
/* get indices from temporary array again */
for (j=0; j<totpoly; j++)
- slots[j].set(it.index, j*nvert, nvert);
+ poly_slots[j].set(it.index, j*nvert, nvert);
}
}
diff --git a/source/gameengine/Rasterizer/RAS_MeshObject.h b/source/gameengine/Rasterizer/RAS_MeshObject.h
index 326110bea57..eb8655c8b1f 100644
--- a/source/gameengine/Rasterizer/RAS_MeshObject.h
+++ b/source/gameengine/Rasterizer/RAS_MeshObject.h
@@ -106,7 +106,7 @@ public:
/* modification state */
bool MeshModified();
- void SetMeshModified(bool v){m_bMeshModified = v;}
+ void SetMeshModified(bool v) { m_bMeshModified = v; }
/* original blender mesh */
Mesh* GetMesh() { return m_mesh; }
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h
index 808c4f11dd8..a8eb2d5ffdf 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h
@@ -72,7 +72,7 @@ public:
virtual void SetDrawingMode(int drawingmode);
- virtual bool QueryLists(){return true;}
+ virtual bool QueryLists() {return true;}
#ifdef WITH_CXX_GUARDEDALLOC
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
index 7db433b5b4f..a0da1c79baa 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
@@ -359,7 +359,7 @@ void RAS_OpenGLRasterizer::ClearCachingInfo(void)
void RAS_OpenGLRasterizer::FlushDebugShapes()
{
- if (!m_debugShapes.size())
+ if (m_debugShapes.empty())
return;
// DrawDebugLines
@@ -438,7 +438,7 @@ void RAS_OpenGLRasterizer::EndFrame()
glDisable(GL_MULTISAMPLE_ARB);
m_2DCanvas->EndFrame();
-}
+}
void RAS_OpenGLRasterizer::SetRenderArea()
{
@@ -533,10 +533,10 @@ void RAS_OpenGLRasterizer::SetEye(const StereoEye eye)
glDrawBuffer(m_curreye == RAS_STEREO_LEFTEYE ? GL_BACK_LEFT : GL_BACK_RIGHT);
break;
case RAS_STEREO_ANAGLYPH:
- if (m_curreye == RAS_STEREO_LEFTEYE)
- {
+ if (m_curreye == RAS_STEREO_LEFTEYE) {
glColorMask(GL_FALSE, GL_TRUE, GL_TRUE, GL_FALSE);
- } else {
+ }
+ else {
//glAccum(GL_LOAD, 1.0);
glColorMask(GL_TRUE, GL_FALSE, GL_FALSE, GL_FALSE);
ClearDepthBuffer();
@@ -892,7 +892,8 @@ void RAS_OpenGLRasterizer::IndexPrimitivesInternal(RAS_MeshSlot& ms, bool multi)
int current_blend_mode = GPU_get_material_alpha_blend();
ms.m_pDerivedMesh->drawFacesGLSL(ms.m_pDerivedMesh, CheckMaterialDM);
GPU_set_material_alpha_blend(current_blend_mode);
- } else {
+ }
+ else {
//ms.m_pDerivedMesh->drawMappedFacesTex(ms.m_pDerivedMesh, CheckTexfaceDM, mcol);
current_blmat_nr = current_polymat->GetMaterialIndex();
current_image = current_polymat->GetBlenderImage();
@@ -961,10 +962,10 @@ void RAS_OpenGLRasterizer::IndexPrimitivesInternal(RAS_MeshSlot& ms, bool multi)
void RAS_OpenGLRasterizer::SetProjectionMatrix(MT_CmMatrix4x4 &mat)
{
glMatrixMode(GL_PROJECTION);
- double* matrix = &mat(0,0);
+ double* matrix = &mat(0, 0);
glLoadMatrixd(matrix);
- m_camortho= (mat(3, 3) != 0.0f);
+ m_camortho = (mat(3, 3) != 0.0);
}
void RAS_OpenGLRasterizer::SetProjectionMatrix(const MT_Matrix4x4 & mat)
@@ -974,9 +975,9 @@ void RAS_OpenGLRasterizer::SetProjectionMatrix(const MT_Matrix4x4 & mat)
/* Get into argument. Looks a bit dodgy, but it's ok. */
mat.getValue(matrix);
/* Internally, MT_Matrix4x4 uses doubles (MT_Scalar). */
- glLoadMatrixd(matrix);
+ glLoadMatrixd(matrix);
- m_camortho= (mat[3][3] != 0.0f);
+ m_camortho= (mat[3][3] != 0.0);
}
MT_Matrix4x4 RAS_OpenGLRasterizer::GetFrustumMatrix(
@@ -1001,11 +1002,11 @@ MT_Matrix4x4 RAS_OpenGLRasterizer::GetFrustumMatrix(
// if Rasterizer.setFocalLength is not called we use the camera focallength
if (!m_setfocallength)
// if focallength is null we use a value known to be reasonable
- m_focallength = (focallength == 0.f) ? m_eyeseparation * 30.0
+ m_focallength = (focallength == 0.f) ? m_eyeseparation * 30.0f
: focallength;
near_div_focallength = frustnear / m_focallength;
- offset = 0.5 * m_eyeseparation * near_div_focallength;
+ offset = 0.5f * m_eyeseparation * near_div_focallength;
switch(m_curreye)
{
case RAS_STEREO_LEFTEYE:
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
index 36f768f6474..8b54f507ee0 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
@@ -278,7 +278,7 @@ public:
line.m_type = OglDebugShape::CIRCLE;
line.m_pos= center;
line.m_param = normal;
- line.m_color = color;
+ line.m_color = color;
line.m_param2.x() = radius;
line.m_param2.y() = (float) nsector;
m_debugShapes.push_back(line);
@@ -302,9 +302,9 @@ public:
virtual int GetMotionBlurState() { return m_motionblur; }
virtual void SetMotionBlurState(int newstate)
{
- if(newstate<0)
+ if (newstate < 0)
m_motionblur = 0;
- else if(newstate>2)
+ else if (newstate > 2)
m_motionblur = 2;
else
m_motionblur = newstate;
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h
index deda1c4603a..e881192171f 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.h
@@ -58,8 +58,8 @@ public:
private:
virtual void EnableTextures(bool enable);
- //virtual bool QueryArrays(){return true;}
- //virtual bool QueryLists(){return m_Lock;}
+ //virtual bool QueryArrays() {return true;}
+ //virtual bool QueryLists() {return m_Lock;}
#ifdef WITH_CXX_GUARDEDALLOC
diff --git a/source/gameengine/SceneGraph/SG_BBox.cpp b/source/gameengine/SceneGraph/SG_BBox.cpp
index 4b2fc5410fa..3911babd2b5 100644
--- a/source/gameengine/SceneGraph/SG_BBox.cpp
+++ b/source/gameengine/SceneGraph/SG_BBox.cpp
@@ -217,7 +217,8 @@ void SG_BBox::split(SG_BBox &left, SG_BBox &right) const
right.m_min[2] = m_min[2];
right.m_max = m_max;
std::cout << "splity" << std::endl;
- } else {
+ }
+ else {
left.m_min = m_min;
left.m_max[0] = m_max[0];
left.m_max[1] = m_max[1];
@@ -229,9 +230,9 @@ void SG_BBox::split(SG_BBox &left, SG_BBox &right) const
right.m_max = m_max;
std::cout << "splitz" << std::endl;
}
- } else {
- if (sizex > sizez)
- {
+ }
+ else {
+ if (sizex > sizez) {
left.m_min = m_min;
left.m_max[0] = m_min[0] + sizex/2.0;
left.m_max[1] = m_max[1];
@@ -242,7 +243,8 @@ void SG_BBox::split(SG_BBox &left, SG_BBox &right) const
right.m_min[2] = m_min[2];
right.m_max = m_max;
std::cout << "splitx" << std::endl;
- } else {
+ }
+ else {
left.m_min = m_min;
left.m_max[0] = m_max[0];
left.m_max[1] = m_max[1];
diff --git a/source/gameengine/SceneGraph/SG_Controller.h b/source/gameengine/SceneGraph/SG_Controller.h
index d82738dbb86..455aaf90d6d 100644
--- a/source/gameengine/SceneGraph/SG_Controller.h
+++ b/source/gameengine/SceneGraph/SG_Controller.h
@@ -53,7 +53,7 @@ public:
) {};
virtual
- bool
+ bool
Update(
double time
)=0;
@@ -69,13 +69,13 @@ public:
);
virtual
- void
+ void
SetSimulatedTime(
double time
)=0;
- virtual
- SG_Controller*
+ virtual
+ SG_Controller*
GetReplica(
class SG_Node* destnode
)=0;
diff --git a/source/gameengine/SceneGraph/SG_IObject.cpp b/source/gameengine/SceneGraph/SG_IObject.cpp
index afd647c2a2a..9ae32a89ff8 100644
--- a/source/gameengine/SceneGraph/SG_IObject.cpp
+++ b/source/gameengine/SceneGraph/SG_IObject.cpp
@@ -70,7 +70,7 @@ AddSGController(
m_SGcontrollers.push_back(cont);
}
- void
+ void
SG_IObject::
RemoveSGController(
SG_Controller* cont
diff --git a/source/gameengine/SceneGraph/SG_IObject.h b/source/gameengine/SceneGraph/SG_IObject.h
index c36c984f3d3..53b51507e97 100644
--- a/source/gameengine/SceneGraph/SG_IObject.h
+++ b/source/gameengine/SceneGraph/SG_IObject.h
@@ -174,7 +174,7 @@ public:
* this object is deleted.
*/
- void
+ void
AddSGController(
SG_Controller* cont
);
@@ -196,7 +196,7 @@ public:
* leaks.
*/
- void
+ void
RemoveAllControllers(
);
@@ -233,7 +233,7 @@ public:
* This may be NULL.
*/
- inline const void* GetSGClientObject() const
+ inline const void* GetSGClientObject() const
{
return m_SGclientObject;
}
@@ -280,7 +280,7 @@ public:
void SetControllerTime(double time);
virtual
- void
+ void
Destruct(
) = 0;
diff --git a/source/gameengine/SceneGraph/SG_Node.cpp b/source/gameengine/SceneGraph/SG_Node.cpp
index 33af9f16d7c..04d9a306fc4 100644
--- a/source/gameengine/SceneGraph/SG_Node.cpp
+++ b/source/gameengine/SceneGraph/SG_Node.cpp
@@ -143,7 +143,7 @@ Destruct()
}
const
- SG_Node*
+ SG_Node *
SG_Node::
GetRootSGParent(
) const {
diff --git a/source/gameengine/SceneGraph/SG_Node.h b/source/gameengine/SceneGraph/SG_Node.h
index 1d0c0e592e6..063eeaab01d 100644
--- a/source/gameengine/SceneGraph/SG_Node.h
+++ b/source/gameengine/SceneGraph/SG_Node.h
@@ -63,7 +63,7 @@ public:
* make a deep copy.
*/
- void
+ void
AddChild(
SG_Node* child
);
@@ -75,7 +75,7 @@ public:
* If the node was not a child of this object no action is performed.
*/
- void
+ void
RemoveChild(
SG_Node* child
);
@@ -149,7 +149,7 @@ public:
* Disconnect this node from it's parent
*/
- void
+ void
DisconnectFromParent(
);
@@ -182,12 +182,12 @@ public:
- /**
+ /**
* Update the spatial data of this node. Iterate through
* the children of this node and update their world data.
*/
- void
+ void
UpdateWorldData(
double time,
bool parentUpdated=false
@@ -198,7 +198,7 @@ public:
* the children nodes and update their simulated time.
*/
- void
+ void
SetSimulatedTime(
double time,
bool recurse
@@ -244,17 +244,17 @@ public:
* Node replication functions.
*/
- SG_Node*
+ SG_Node*
GetSGReplica(
);
- void
+ void
Destruct(
);
private:
- void
+ void
ProcessSGReplica(
SG_Node** replica
);
diff --git a/source/gameengine/SceneGraph/SG_ParentRelation.h b/source/gameengine/SceneGraph/SG_ParentRelation.h
index 925c0ed2766..6e314996456 100644
--- a/source/gameengine/SceneGraph/SG_ParentRelation.h
+++ b/source/gameengine/SceneGraph/SG_ParentRelation.h
@@ -82,7 +82,7 @@ public :
* You must provide a way of duplicating an
* instance of an SG_ParentRelation. This should
* return a pointer to a new duplicate allocated
- * on the heap. Responsibilty for deleting the
+ * on the heap. Responsibility for deleting the
* duplicate resides with the caller of this method.
*/
@@ -118,7 +118,7 @@ protected :
*/
SG_ParentRelation(
- ) {
+ ) {
};
/**
diff --git a/source/gameengine/SceneGraph/SG_Spatial.cpp b/source/gameengine/SceneGraph/SG_Spatial.cpp
index e026419ca67..8c0d2b88c63 100644
--- a/source/gameengine/SceneGraph/SG_Spatial.cpp
+++ b/source/gameengine/SceneGraph/SG_Spatial.cpp
@@ -151,16 +151,18 @@ RelativeTranslate(
) {
if (local) {
m_localPosition += m_localRotation * trans;
- } else {
+ }
+ else {
if (parent) {
m_localPosition += trans * parent->GetWorldOrientation();
- } else {
+ }
+ else {
m_localPosition += trans;
}
}
SetModified();
-}
-
+}
+
/**
* Scaling methods.
diff --git a/source/gameengine/SceneGraph/SG_Spatial.h b/source/gameengine/SceneGraph/SG_Spatial.h
index e456851d183..7630af51781 100644
--- a/source/gameengine/SceneGraph/SG_Spatial.h
+++ b/source/gameengine/SceneGraph/SG_Spatial.h
@@ -137,7 +137,7 @@ public:
}
- void
+ void
RelativeRotate(
const MT_Matrix3x3& rot,
bool local
@@ -178,12 +178,12 @@ public:
m_worldScaling = scale;
}
- const MT_Point3& GetLocalPosition() const
+ const MT_Point3& GetLocalPosition() const
{
return m_localPosition;
}
- const MT_Matrix3x3& GetLocalOrientation() const
+ const MT_Matrix3x3& GetLocalOrientation() const
{
return m_localRotation;
}
@@ -193,17 +193,17 @@ public:
return m_localScaling;
}
- const MT_Point3& GetWorldPosition() const
+ const MT_Point3& GetWorldPosition() const
{
return m_worldPosition;
}
- const MT_Matrix3x3& GetWorldOrientation() const
+ const MT_Matrix3x3& GetWorldOrientation() const
{
return m_worldRotation;
}
- const MT_Vector3& GetWorldScaling() const
+ const MT_Vector3& GetWorldScaling() const
{
return m_worldScaling;
}
diff --git a/source/gameengine/SceneGraph/SG_Tree.cpp b/source/gameengine/SceneGraph/SG_Tree.cpp
index 738c0fdef22..99f68ef625a 100644
--- a/source/gameengine/SceneGraph/SG_Tree.cpp
+++ b/source/gameengine/SceneGraph/SG_Tree.cpp
@@ -236,7 +236,7 @@ void SG_TreeFactory::Add(SG_Tree* tree)
SG_Tree* SG_TreeFactory::MakeTreeDown(SG_BBox &bbox)
{
- if (m_objects.size() == 0)
+ if (m_objects.empty())
return NULL;
if (m_objects.size() == 1)
return *m_objects.begin();
@@ -296,7 +296,8 @@ SG_Tree* SG_TreeFactory::MakeTreeDown(SG_BBox &bbox)
{
lefttree.Add(*it);
hasleft++;
- } else {
+ }
+ else {
righttree.Add(*it);
hasright++;
}
diff --git a/source/gameengine/VideoTexture/BlendType.h b/source/gameengine/VideoTexture/BlendType.h
index 0131cc61c44..e19aadc49d2 100644
--- a/source/gameengine/VideoTexture/BlendType.h
+++ b/source/gameengine/VideoTexture/BlendType.h
@@ -37,7 +37,7 @@ public:
BlendType (const char * name) : m_name(name) {}
/// check blender type and return pointer to contained object or NULL (if type is not valid)
- PyObj * checkType (PyObject * obj)
+ PyObj *checkType(PyObject *obj)
{
// if pointer to type isn't set
if (m_objType == NULL)
@@ -55,17 +55,18 @@ public:
return NULL;
// return pointer to object, this class can only be used for KX object =>
// the Py object is actually a proxy
- return (PyObj*)BGE_PROXY_REF(obj);
+ return (PyObj *)BGE_PROXY_REF(obj);
}
/// parse arguments to get object
- PyObj * parseArg (PyObject * args)
+ PyObj *parseArg(PyObject *args)
{
// parse arguments
- PyObject * obj;
- if (PyArg_ParseTuple(args, "O", &obj))
+ PyObject *obj;
+ if (PyArg_ParseTuple(args, "O", &obj)) {
// if successfully parsed, return pointer to object
return checkType(obj);
+ }
// otherwise return NULL
return NULL;
}
@@ -74,7 +75,7 @@ protected:
/// name of Python type
const char * m_name;
/// pointer to Python type
- PyTypeObject * m_objType;
+ PyTypeObject *m_objType;
};
diff --git a/source/gameengine/VideoTexture/FilterBase.cpp b/source/gameengine/VideoTexture/FilterBase.cpp
index 90ea8436ffe..6ec5e237ac2 100644
--- a/source/gameengine/VideoTexture/FilterBase.cpp
+++ b/source/gameengine/VideoTexture/FilterBase.cpp
@@ -90,10 +90,10 @@ PyTypeList pyFilterTypes;
// object allocation
-PyObject * Filter_allocNew (PyTypeObject * type, PyObject * args, PyObject * kwds)
+PyObject *Filter_allocNew (PyTypeObject *type, PyObject *args, PyObject *kwds)
{
// allocate object
- PyFilter * self = reinterpret_cast<PyFilter*>(type->tp_alloc(type, 0));
+ PyFilter *self = reinterpret_cast<PyFilter*>(type->tp_alloc(type, 0));
// initialize object structure
self->m_filter = NULL;
// return allocated object
@@ -101,7 +101,7 @@ PyObject * Filter_allocNew (PyTypeObject * type, PyObject * args, PyObject * kwd
}
// object deallocation
-void Filter_dealloc (PyFilter * self)
+void Filter_dealloc (PyFilter *self)
{
// release object attributes
if (self->m_filter != NULL)
@@ -114,7 +114,7 @@ void Filter_dealloc (PyFilter * self)
// get previous pixel filter object
-PyObject * Filter_getPrevious (PyFilter * self, void * closure)
+PyObject *Filter_getPrevious (PyFilter *self, void *closure)
{
// if filter object is available
if (self->m_filter != NULL)
@@ -135,7 +135,7 @@ PyObject * Filter_getPrevious (PyFilter * self, void * closure)
// set previous pixel filter object
-int Filter_setPrevious (PyFilter * self, PyObject * value, void * closure)
+int Filter_setPrevious (PyFilter *self, PyObject *value, void *closure)
{
// if filter object is available
if (self->m_filter != NULL)
diff --git a/source/gameengine/VideoTexture/FilterBase.h b/source/gameengine/VideoTexture/FilterBase.h
index 63561c25ffa..422cf86f23e 100644
--- a/source/gameengine/VideoTexture/FilterBase.h
+++ b/source/gameengine/VideoTexture/FilterBase.h
@@ -118,9 +118,9 @@ extern PyTypeList pyFilterTypes;
// functions for python interface
// object initialization
-template <class T> static int Filter_init (PyObject * pySelf, PyObject * args, PyObject * kwds)
+template <class T> static int Filter_init (PyObject *pySelf, PyObject *args, PyObject *kwds)
{
- PyFilter * self = reinterpret_cast<PyFilter*>(pySelf);
+ PyFilter *self = reinterpret_cast<PyFilter*>(pySelf);
// create filter object
if (self->m_filter != NULL) delete self->m_filter;
self->m_filter = new T();
@@ -129,14 +129,14 @@ template <class T> static int Filter_init (PyObject * pySelf, PyObject * args, P
}
// object allocation
-PyObject * Filter_allocNew (PyTypeObject * type, PyObject * args, PyObject * kwds);
+PyObject *Filter_allocNew(PyTypeObject *type, PyObject *args, PyObject *kwds);
// object deallocation
-void Filter_dealloc (PyFilter * self);
+void Filter_dealloc(PyFilter *self);
// get previous pixel filter object
-PyObject * Filter_getPrevious (PyFilter * self, void * closure);
+PyObject *Filter_getPrevious(PyFilter *self, void *closure);
// set previous pixel filter object
-int Filter_setPrevious (PyFilter * self, PyObject * value, void * closure);
+int Filter_setPrevious(PyFilter *self, PyObject *value, void *closure);
#endif
diff --git a/source/gameengine/VideoTexture/FilterBlueScreen.cpp b/source/gameengine/VideoTexture/FilterBlueScreen.cpp
index 02a6a8f0344..8559e8f87f4 100644
--- a/source/gameengine/VideoTexture/FilterBlueScreen.cpp
+++ b/source/gameengine/VideoTexture/FilterBlueScreen.cpp
@@ -66,21 +66,21 @@ void FilterBlueScreen::setLimits (unsigned short minLimit, unsigned short maxLim
// cast Filter pointer to FilterBlueScreen
-inline FilterBlueScreen * getFilter (PyFilter * self)
+inline FilterBlueScreen * getFilter (PyFilter *self)
{ return static_cast<FilterBlueScreen*>(self->m_filter); }
// python methods and get/sets
// get color
-static PyObject * getColor (PyFilter * self, void * closure)
+static PyObject *getColor (PyFilter *self, void *closure)
{
return Py_BuildValue("[BBB]", getFilter(self)->getColor()[0],
getFilter(self)->getColor()[1], getFilter(self)->getColor()[2]);
}
// set color
-static int setColor (PyFilter * self, PyObject * value, void * closure)
+static int setColor (PyFilter *self, PyObject *value, void *closure)
{
// check validity of parameter
if (value == NULL || !PySequence_Check(value) || PySequence_Size(value) != 3
@@ -100,14 +100,14 @@ static int setColor (PyFilter * self, PyObject * value, void * closure)
}
// get limits
-static PyObject * getLimits (PyFilter * self, void * closure)
+static PyObject *getLimits (PyFilter *self, void *closure)
{
return Py_BuildValue("[II]", getFilter(self)->getLimits()[0],
getFilter(self)->getLimits()[1]);
}
// set limit
-static int setLimits (PyFilter * self, PyObject * value, void * closure)
+static int setLimits (PyFilter *self, PyObject *value, void *closure)
{
// check validity of parameter
if (value == NULL || !PySequence_Check(value) || PySequence_Size(value) != 2
diff --git a/source/gameengine/VideoTexture/FilterColor.cpp b/source/gameengine/VideoTexture/FilterColor.cpp
index ed75b4f8da8..35a6414f383 100644
--- a/source/gameengine/VideoTexture/FilterColor.cpp
+++ b/source/gameengine/VideoTexture/FilterColor.cpp
@@ -108,14 +108,14 @@ void FilterColor::setMatrix (ColorMatrix & mat)
// cast Filter pointer to FilterColor
-inline FilterColor * getFilterColor (PyFilter * self)
+inline FilterColor * getFilterColor (PyFilter *self)
{ return static_cast<FilterColor*>(self->m_filter); }
// python methods and get/sets
// get color matrix
-static PyObject * getMatrix (PyFilter * self, void * closure)
+static PyObject *getMatrix (PyFilter *self, void *closure)
{
ColorMatrix & mat = getFilterColor(self)->getMatrix();
return Py_BuildValue("((hhhhh)(hhhhh)(hhhhh)(hhhhh))",
@@ -126,7 +126,7 @@ static PyObject * getMatrix (PyFilter * self, void * closure)
}
// set color matrix
-static int setMatrix (PyFilter * self, PyObject * value, void * closure)
+static int setMatrix (PyFilter *self, PyObject *value, void *closure)
{
// matrix to store items
ColorMatrix mat;
@@ -243,14 +243,14 @@ void FilterLevel::setLevels (ColorLevel & lev)
// cast Filter pointer to FilterLevel
-inline FilterLevel * getFilterLevel (PyFilter * self)
+inline FilterLevel * getFilterLevel (PyFilter *self)
{ return static_cast<FilterLevel*>(self->m_filter); }
// python methods and get/sets
// get color levels
-static PyObject * getLevels (PyFilter * self, void * closure)
+static PyObject *getLevels (PyFilter *self, void *closure)
{
ColorLevel & lev = getFilterLevel(self)->getLevels();
return Py_BuildValue("((HH)(HH)(HH)(HH))",
@@ -259,7 +259,7 @@ static PyObject * getLevels (PyFilter * self, void * closure)
}
// set color levels
-static int setLevels (PyFilter * self, PyObject * value, void * closure)
+static int setLevels (PyFilter *self, PyObject *value, void *closure)
{
// matrix to store items
ColorLevel lev;
diff --git a/source/gameengine/VideoTexture/FilterNormal.cpp b/source/gameengine/VideoTexture/FilterNormal.cpp
index dda1a493291..03c500a7e14 100644
--- a/source/gameengine/VideoTexture/FilterNormal.cpp
+++ b/source/gameengine/VideoTexture/FilterNormal.cpp
@@ -59,20 +59,20 @@ void FilterNormal::setDepth (float depth)
// cast Filter pointer to FilterNormal
-inline FilterNormal * getFilter (PyFilter * self)
+inline FilterNormal * getFilter (PyFilter *self)
{ return static_cast<FilterNormal*>(self->m_filter); }
// python methods and get/sets
// get index of color used to calculate normal
-static PyObject * getColor (PyFilter * self, void * closure)
+static PyObject *getColor (PyFilter *self, void *closure)
{
return Py_BuildValue("H", getFilter(self)->getColor());
}
// set index of color used to calculate normal
-static int setColor (PyFilter * self, PyObject * value, void * closure)
+static int setColor (PyFilter *self, PyObject *value, void *closure)
{
// check validity of parameter
if (value == NULL || !PyLong_Check(value))
@@ -88,13 +88,13 @@ static int setColor (PyFilter * self, PyObject * value, void * closure)
// get depth
-static PyObject * getDepth (PyFilter * self, void * closure)
+static PyObject *getDepth (PyFilter *self, void *closure)
{
return Py_BuildValue("f", getFilter(self)->getDepth());
}
// set depth
-static int setDepth (PyFilter * self, PyObject * value, void * closure)
+static int setDepth (PyFilter *self, PyObject *value, void *closure)
{
// check validity of parameter
if (value)
diff --git a/source/gameengine/VideoTexture/ImageBase.cpp b/source/gameengine/VideoTexture/ImageBase.cpp
index 090b4f6ff4a..2de49795681 100644
--- a/source/gameengine/VideoTexture/ImageBase.cpp
+++ b/source/gameengine/VideoTexture/ImageBase.cpp
@@ -128,7 +128,7 @@ PyImage * ImageBase::getSource (const char * id)
// set source object
-bool ImageBase::setSource (const char * id, PyImage * source)
+bool ImageBase::setSource (const char * id, PyImage *source)
{
// find source
ImageSourceList::iterator src = findSource(id);
@@ -246,7 +246,8 @@ bool ImageBase::checkSourceSizes (void)
// set current size as reference
refSize = curSize;
// otherwise check with current size
- } else if (curSize[0] != refSize[0] || curSize[1] != refSize[1]) {
+ }
+ else if (curSize[0] != refSize[0] || curSize[1] != refSize[1]) {
// if they don't match, report it
return false;
}
@@ -314,7 +315,7 @@ bool ImageSource::is (const char * id)
// set source object
-void ImageSource::setSource (PyImage * source)
+void ImageSource::setSource (PyImage *source)
{
// reference new source
if (source != NULL) Py_INCREF(source);
@@ -357,10 +358,10 @@ PyTypeList pyImageTypes;
// functions for python interface
// object allocation
-PyObject * Image_allocNew (PyTypeObject * type, PyObject * args, PyObject * kwds)
+PyObject *Image_allocNew (PyTypeObject *type, PyObject *args, PyObject *kwds)
{
// allocate object
- PyImage * self = reinterpret_cast<PyImage*>(type->tp_alloc(type, 0));
+ PyImage *self = reinterpret_cast<PyImage*>(type->tp_alloc(type, 0));
// initialize object structure
self->m_image = NULL;
// return allocated object
@@ -368,7 +369,7 @@ PyObject * Image_allocNew (PyTypeObject * type, PyObject * args, PyObject * kwds
}
// object deallocation
-void Image_dealloc (PyImage * self)
+void Image_dealloc (PyImage *self)
{
// release object attributes
if (self->m_image != NULL)
@@ -387,7 +388,7 @@ void Image_dealloc (PyImage * self)
}
// get image data
-PyObject * Image_getImage (PyImage * self, char * mode)
+PyObject *Image_getImage (PyImage *self, char * mode)
{
try
{
@@ -462,7 +463,7 @@ PyObject * Image_getImage (PyImage * self, char * mode)
}
}
}
- return (PyObject*)buffer;
+ return (PyObject *)buffer;
}
}
catch (Exception & exp)
@@ -474,28 +475,28 @@ PyObject * Image_getImage (PyImage * self, char * mode)
}
// get image size
-PyObject * Image_getSize (PyImage * self, void * closure)
+PyObject *Image_getSize (PyImage *self, void *closure)
{
return Py_BuildValue("(hh)", self->m_image->getSize()[0],
self->m_image->getSize()[1]);
}
// refresh image
-PyObject * Image_refresh (PyImage * self)
+PyObject *Image_refresh (PyImage *self)
{
self->m_image->refresh();
Py_RETURN_NONE;
}
// get scale
-PyObject * Image_getScale (PyImage * self, void * closure)
+PyObject *Image_getScale (PyImage *self, void *closure)
{
if (self->m_image != NULL && self->m_image->getScale()) Py_RETURN_TRUE;
else Py_RETURN_FALSE;
}
// set scale
-int Image_setScale (PyImage * self, PyObject * value, void * closure)
+int Image_setScale (PyImage *self, PyObject *value, void *closure)
{
// check parameter, report failure
if (value == NULL || !PyBool_Check(value))
@@ -510,14 +511,14 @@ int Image_setScale (PyImage * self, PyObject * value, void * closure)
}
// get flip
-PyObject * Image_getFlip (PyImage * self, void * closure)
+PyObject *Image_getFlip (PyImage *self, void *closure)
{
if (self->m_image != NULL && self->m_image->getFlip()) Py_RETURN_TRUE;
else Py_RETURN_FALSE;
}
// set flip
-int Image_setFlip (PyImage * self, PyObject * value, void * closure)
+int Image_setFlip (PyImage *self, PyObject *value, void *closure)
{
// check parameter, report failure
if (value == NULL || !PyBool_Check(value))
@@ -533,7 +534,7 @@ int Image_setFlip (PyImage * self, PyObject * value, void * closure)
// get filter source object
-PyObject * Image_getSource (PyImage * self, PyObject * args)
+PyObject *Image_getSource (PyImage *self, PyObject *args)
{
// get arguments
char * id;
@@ -542,7 +543,7 @@ PyObject * Image_getSource (PyImage * self, PyObject * args)
if (self->m_image != NULL)
{
// get source object
- PyObject * src = reinterpret_cast<PyObject*>(self->m_image->getSource(id));
+ PyObject *src = reinterpret_cast<PyObject*>(self->m_image->getSource(id));
// if source is available
if (src != NULL)
{
@@ -557,11 +558,11 @@ PyObject * Image_getSource (PyImage * self, PyObject * args)
// set filter source object
-PyObject * Image_setSource (PyImage * self, PyObject * args)
+PyObject *Image_setSource (PyImage *self, PyObject *args)
{
// get arguments
char * id;
- PyObject * obj;
+ PyObject *obj;
if (!PyArg_ParseTuple(args, "sO:setSource", &id, &obj))
return NULL;
if (self->m_image != NULL)
@@ -592,7 +593,7 @@ PyObject * Image_setSource (PyImage * self, PyObject * args)
// get pixel filter object
-PyObject * Image_getFilter (PyImage * self, void * closure)
+PyObject *Image_getFilter (PyImage *self, void *closure)
{
// if image object is available
if (self->m_image != NULL)
@@ -613,7 +614,7 @@ PyObject * Image_getFilter (PyImage * self, void * closure)
// set pixel filter object
-int Image_setFilter (PyImage * self, PyObject * value, void * closure)
+int Image_setFilter (PyImage *self, PyObject *value, void *closure)
{
// if image object is available
if (self->m_image != NULL)
@@ -631,7 +632,7 @@ int Image_setFilter (PyImage * self, PyObject * value, void * closure)
// return success
return 0;
}
-PyObject * Image_valid(PyImage * self, void * closure)
+PyObject *Image_valid(PyImage *self, void *closure)
{
if (self->m_image->isImageAvailable())
{
@@ -643,7 +644,7 @@ PyObject * Image_valid(PyImage * self, void * closure)
}
}
-int Image_getbuffer(PyImage *self, Py_buffer *view, int flags)
+static int Image_getbuffer(PyImage *self, Py_buffer *view, int flags)
{
unsigned int * image;
int ret;
@@ -673,7 +674,7 @@ int Image_getbuffer(PyImage *self, Py_buffer *view, int flags)
self->m_image->m_exports++;
return 0;
}
- ret = PyBuffer_FillInfo(view, (PyObject*)self, image, self->m_image->getBuffSize(), 0, flags);
+ ret = PyBuffer_FillInfo(view, (PyObject *)self, image, self->m_image->getBuffSize(), 0, flags);
if (ret >= 0)
self->m_image->m_exports++;
return ret;
@@ -683,14 +684,14 @@ error:
// The bug is fixed in Python SVN 77916, as soon as the python revision used by Blender is
// updated, you can simply return -1 and set the error
static char* buf = (char *)"";
- ret = PyBuffer_FillInfo(view, (PyObject*)self, buf, 0, 0, flags);
+ ret = PyBuffer_FillInfo(view, (PyObject *)self, buf, 0, 0, flags);
if (ret >= 0)
self->m_image->m_exports++;
return ret;
}
-void Image_releaseBuffer(PyImage *self, Py_buffer *buffer)
+static void Image_releaseBuffer(PyImage *self, Py_buffer *buffer)
{
self->m_image->m_exports--;
}
diff --git a/source/gameengine/VideoTexture/ImageBase.h b/source/gameengine/VideoTexture/ImageBase.h
index 6c38b107a4d..bb3f0c19e4b 100644
--- a/source/gameengine/VideoTexture/ImageBase.h
+++ b/source/gameengine/VideoTexture/ImageBase.h
@@ -82,7 +82,7 @@ public:
/// get source object
PyImage * getSource (const char * id);
/// set source object, return true, if source was set
- bool setSource (const char * id, PyImage * source);
+ bool setSource (const char * id, PyImage *source);
/// get pixel filter
PyFilter * getFilter (void) { return m_pyfilter; }
@@ -276,7 +276,7 @@ public:
/// get source object
PyImage * getSource (void) { return m_source; }
/// set source object
- void setSource (PyImage * source);
+ void setSource (PyImage *source);
/// get image from source
unsigned int * getImage (double ts=-1.0);
@@ -312,9 +312,9 @@ extern PyTypeList pyImageTypes;
// functions for python interface
// object initialization
-template <class T> static int Image_init (PyObject * pySelf, PyObject * args, PyObject * kwds)
+template <class T> static int Image_init (PyObject *pySelf, PyObject *args, PyObject *kwds)
{
- PyImage * self = reinterpret_cast<PyImage*>(pySelf);
+ PyImage *self = reinterpret_cast<PyImage*>(pySelf);
// create source object
if (self->m_image != NULL) delete self->m_image;
self->m_image = new T();
@@ -323,37 +323,37 @@ template <class T> static int Image_init (PyObject * pySelf, PyObject * args, Py
}
// object allocation
-PyObject * Image_allocNew (PyTypeObject * type, PyObject * args, PyObject * kwds);
+PyObject *Image_allocNew (PyTypeObject *type, PyObject *args, PyObject *kwds);
// object deallocation
-void Image_dealloc (PyImage * self);
+void Image_dealloc (PyImage *self);
// get image data
-PyObject * Image_getImage (PyImage * self, char * mode);
+PyObject *Image_getImage (PyImage *self, char * mode);
// get image size
-PyObject * Image_getSize (PyImage * self, void * closure);
+PyObject *Image_getSize (PyImage *self, void *closure);
// refresh image - invalidate current content
-PyObject * Image_refresh (PyImage * self);
+PyObject *Image_refresh (PyImage *self);
// get scale
-PyObject * Image_getScale (PyImage * self, void * closure);
+PyObject *Image_getScale (PyImage *self, void *closure);
// set scale
-int Image_setScale (PyImage * self, PyObject * value, void * closure);
+int Image_setScale (PyImage *self, PyObject *value, void *closure);
// get flip
-PyObject * Image_getFlip (PyImage * self, void * closure);
+PyObject *Image_getFlip (PyImage *self, void *closure);
// set flip
-int Image_setFlip (PyImage * self, PyObject * value, void * closure);
+int Image_setFlip (PyImage *self, PyObject *value, void *closure);
// get filter source object
-PyObject * Image_getSource (PyImage * self, PyObject * args);
+PyObject *Image_getSource (PyImage *self, PyObject *args);
// set filter source object
-PyObject * Image_setSource (PyImage * self, PyObject * args);
+PyObject *Image_setSource (PyImage *self, PyObject *args);
// get pixel filter object
-PyObject * Image_getFilter (PyImage * self, void * closure);
+PyObject *Image_getFilter (PyImage *self, void *closure);
// set pixel filter object
-int Image_setFilter (PyImage * self, PyObject * value, void * closure);
+int Image_setFilter (PyImage *self, PyObject *value, void *closure);
// check if a buffer can be extracted
-PyObject * Image_valid(PyImage * self, void * closure);
+PyObject *Image_valid(PyImage *self, void *closure);
// for buffer access to PyImage objects
extern PyBufferProcs imageBufferProcs;
diff --git a/source/gameengine/VideoTexture/ImageBuff.cpp b/source/gameengine/VideoTexture/ImageBuff.cpp
index 9854da0ea86..eec0bccbe56 100644
--- a/source/gameengine/VideoTexture/ImageBuff.cpp
+++ b/source/gameengine/VideoTexture/ImageBuff.cpp
@@ -47,7 +47,7 @@ FilterRGB24 defFilter;
// forward declaration;
extern PyTypeObject ImageBuffType;
-static int ImageBuff_init (PyObject * pySelf, PyObject * args, PyObject * kwds)
+static int ImageBuff_init (PyObject *pySelf, PyObject *args, PyObject *kwds)
{
short width = -1;
short height = -1;
@@ -55,7 +55,7 @@ static int ImageBuff_init (PyObject * pySelf, PyObject * args, PyObject * kwds)
PyObject *py_scale = Py_False;
ImageBuff *image;
- PyImage * self = reinterpret_cast<PyImage*>(pySelf);
+ PyImage *self = reinterpret_cast<PyImage*>(pySelf);
// create source object
if (self->m_image != NULL)
delete self->m_image;
@@ -144,7 +144,7 @@ void ImageBuff::clear (short width, short height, unsigned char color)
// img must point to a array of RGBA data of size width*height
void ImageBuff::plot (unsigned char * img, short width, short height, short x, short y, short mode)
{
- struct ImBuf* tmpbuf;
+ struct ImBuf *tmpbuf;
if (m_size[0] == 0 || m_size[1] == 0 || width <= 0 || height <= 0)
return;
@@ -190,7 +190,7 @@ void ImageBuff::plot (ImageBuff* img, short x, short y, short mode)
// cast Image pointer to ImageBuff
-inline ImageBuff * getImageBuff (PyImage * self)
+inline ImageBuff * getImageBuff (PyImage *self)
{ return static_cast<ImageBuff*>(self->m_image); }
@@ -245,7 +245,7 @@ static bool testBGLBuffer(Buffer* buffer, int width, int height, unsigned int pi
// load image
-static PyObject * load (PyImage * self, PyObject * args)
+static PyObject *load(PyImage *self, PyObject *args)
{
// parameters: string image buffer, its size, width, height
Py_buffer buffer;
@@ -306,10 +306,10 @@ static PyObject * load (PyImage * self, PyObject * args)
}
if (PyErr_Occurred())
return NULL;
- Py_RETURN_NONE;
+ Py_RETURN_NONE;
}
-static PyObject * plot (PyImage * self, PyObject * args)
+static PyObject *plot (PyImage *self, PyObject *args)
{
PyImage * other;
Buffer* bglBuffer;
@@ -332,7 +332,7 @@ static PyObject * plot (PyImage * self, PyObject * args)
PyBuffer_Release(&buffer);
if (PyErr_Occurred())
return NULL;
- Py_RETURN_NONE;
+ Py_RETURN_NONE;
}
PyErr_Clear();
// try the other format
@@ -354,7 +354,7 @@ static PyObject * plot (PyImage * self, PyObject * args)
}
if (PyErr_Occurred())
return NULL;
- Py_RETURN_NONE;
+ Py_RETURN_NONE;
}
// methods structure
diff --git a/source/gameengine/VideoTexture/ImageBuff.h b/source/gameengine/VideoTexture/ImageBuff.h
index b3e7386c899..b2bdbc17dc9 100644
--- a/source/gameengine/VideoTexture/ImageBuff.h
+++ b/source/gameengine/VideoTexture/ImageBuff.h
@@ -38,7 +38,7 @@ struct ImBuf;
class ImageBuff : public ImageBase
{
private:
- struct ImBuf* m_imbuf; // temporary structure for buffer manipulation
+ struct ImBuf *m_imbuf; // temporary structure for buffer manipulation
public:
/// constructor
ImageBuff (void) : ImageBase(true), m_imbuf(NULL) {}
diff --git a/source/gameengine/VideoTexture/ImageMix.cpp b/source/gameengine/VideoTexture/ImageMix.cpp
index cd8c6683a7f..f09454a517b 100644
--- a/source/gameengine/VideoTexture/ImageMix.cpp
+++ b/source/gameengine/VideoTexture/ImageMix.cpp
@@ -101,14 +101,14 @@ void ImageMix::calcImage (unsigned int texId, double ts)
// cast Image pointer to ImageMix
-inline ImageMix * getImageMix (PyImage * self)
+inline ImageMix * getImageMix (PyImage *self)
{ return static_cast<ImageMix*>(self->m_image); }
// python methods
// get source weight
-PyObject * getWeight (PyImage * self, PyObject * args)
+static PyObject *getWeight (PyImage *self, PyObject *args)
{
// weight
short weight = 0;
@@ -125,7 +125,7 @@ PyObject * getWeight (PyImage * self, PyObject * args)
// set source weight
-PyObject * setWeight (PyImage * self, PyObject * args)
+static PyObject *setWeight (PyImage *self, PyObject *args)
{
// get arguments
char * id;
diff --git a/source/gameengine/VideoTexture/ImageRender.cpp b/source/gameengine/VideoTexture/ImageRender.cpp
index 97e52e3af3d..2135d0a07eb 100644
--- a/source/gameengine/VideoTexture/ImageRender.cpp
+++ b/source/gameengine/VideoTexture/ImageRender.cpp
@@ -138,7 +138,7 @@ void ImageRender::Render()
// compute distance of observer to mirror = D - observerPos . normal
MT_Scalar observerDistance = mirrorPlaneDTerm - observerWorldPos.dot(mirrorWorldZ);
// if distance < 0.01 => observer is on wrong side of mirror, don't render
- if (observerDistance < 0.01f)
+ if (observerDistance < 0.01)
return;
// set camera world position = observerPos + normal * 2 * distance
MT_Point3 cameraWorldPos = observerWorldPos + (MT_Scalar(2.0)*observerDistance)*mirrorWorldZ;
@@ -208,11 +208,11 @@ void ImageRender::Render()
frustrum.x1, frustrum.x2, frustrum.y1, frustrum.y2, frustrum.camnear, frustrum.camfar);
m_camera->SetProjectionMatrix(projmat);
- } else if (m_camera->hasValidProjectionMatrix())
- {
+ }
+ else if (m_camera->hasValidProjectionMatrix()) {
m_rasterizer->SetProjectionMatrix(m_camera->GetProjectionMatrix());
- } else
- {
+ }
+ else {
float lens = m_camera->GetLens();
float sensor_x = m_camera->GetSensorWidth();
float sensor_y = m_camera->GetSensorHeight();
@@ -241,8 +241,8 @@ void ImageRender::Render()
projmat = m_rasterizer->GetOrthoMatrix(
frustrum.x1, frustrum.x2, frustrum.y1, frustrum.y2, frustrum.camnear, frustrum.camfar);
- } else
- {
+ }
+ else {
RAS_FramingManager::ComputeDefaultFrustum(
nearfrust,
farfrust,
@@ -277,7 +277,7 @@ void ImageRender::Render()
// cast Image pointer to ImageRender
-inline ImageRender * getImageRender (PyImage * self)
+inline ImageRender * getImageRender (PyImage *self)
{ return static_cast<ImageRender*>(self->m_image); }
@@ -290,10 +290,10 @@ BlendType<KX_Camera> cameraType ("KX_Camera");
// object initialization
-static int ImageRender_init (PyObject * pySelf, PyObject * args, PyObject * kwds)
+static int ImageRender_init (PyObject *pySelf, PyObject *args, PyObject *kwds)
{
// parameters - scene object
- PyObject * scene;
+ PyObject *scene;
// camera object
PyObject * camera;
// parameter keywords
@@ -317,7 +317,7 @@ static int ImageRender_init (PyObject * pySelf, PyObject * args, PyObject * kwds
if (cameraPtr == NULL) THRWEXCP(CameraInvalid, S_OK);
// get pointer to image structure
- PyImage * self = reinterpret_cast<PyImage*>(pySelf);
+ PyImage *self = reinterpret_cast<PyImage*>(pySelf);
// create source object
if (self->m_image != NULL) delete self->m_image;
self->m_image = new ImageRender(scenePtr, cameraPtr);
@@ -333,7 +333,7 @@ static int ImageRender_init (PyObject * pySelf, PyObject * args, PyObject * kwds
// get background color
-PyObject * getBackground (PyImage * self, void * closure)
+static PyObject *getBackground (PyImage *self, void *closure)
{
return Py_BuildValue("[BBBB]",
getImageRender(self)->getBackground(0),
@@ -343,7 +343,7 @@ PyObject * getBackground (PyImage * self, void * closure)
}
// set color
-static int setBackground (PyImage * self, PyObject * value, void * closure)
+static int setBackground (PyImage *self, PyObject *value, void *closure)
{
// check validity of parameter
if (value == NULL || !PySequence_Check(value) || PySequence_Size(value) != 4
@@ -434,14 +434,14 @@ PyTypeObject ImageRenderType =
};
// object initialization
-static int ImageMirror_init (PyObject * pySelf, PyObject * args, PyObject * kwds)
+static int ImageMirror_init (PyObject *pySelf, PyObject *args, PyObject *kwds)
{
// parameters - scene object
- PyObject * scene;
+ PyObject *scene;
// reference object for mirror
- PyObject * observer;
+ PyObject *observer;
// object holding the mirror
- PyObject * mirror;
+ PyObject *mirror;
// material of the mirror
short materialID = 0;
// parameter keywords
@@ -490,7 +490,7 @@ static int ImageMirror_init (PyObject * pySelf, PyObject * args, PyObject * kwds
THRWEXCP(MaterialNotAvail, S_OK);
// get pointer to image structure
- PyImage * self = reinterpret_cast<PyImage*>(pySelf);
+ PyImage *self = reinterpret_cast<PyImage*>(pySelf);
// create source object
if (self->m_image != NULL)
@@ -510,13 +510,13 @@ static int ImageMirror_init (PyObject * pySelf, PyObject * args, PyObject * kwds
}
// get background color
-PyObject * getClip (PyImage * self, void * closure)
+static PyObject *getClip (PyImage *self, void *closure)
{
return PyFloat_FromDouble(getImageRender(self)->getClip());
}
// set clip
-static int setClip (PyImage * self, PyObject * value, void * closure)
+static int setClip (PyImage *self, PyObject *value, void *closure)
{
// check validity of parameter
double clip;
@@ -604,13 +604,12 @@ ImageRender::ImageRender (KX_Scene * scene, KX_GameObject * observer, KX_GameObj
mirrorVerts.push_back(v1);
mirrorVerts.push_back(v2);
mirrorVerts.push_back(v3);
- if (polygon->VertexCount() == 4)
- {
+ if (polygon->VertexCount() == 4) {
v4 = polygon->GetVertex(3);
mirrorVerts.push_back(v4);
area = normal_quad_v3(normal,(float*)v1->getXYZ(), (float*)v2->getXYZ(), (float*)v3->getXYZ(), (float*)v4->getXYZ());
- } else
- {
+ }
+ else {
area = normal_tri_v3(normal,(float*)v1->getXYZ(), (float*)v2->getXYZ(), (float*)v3->getXYZ());
}
area = fabs(area);
@@ -637,8 +636,8 @@ ImageRender::ImageRender (KX_Scene * scene, KX_GameObject * observer, KX_GameObj
// otherwise the Y axis is the up direction.
// If the mirror is not perfectly vertical(horizontal), the Z(Y) axis projection on the mirror
// plan by the normal will be the up direction.
- if (fabs(mirrorNormal[2]) > fabs(mirrorNormal[1]) &&
- fabs(mirrorNormal[2]) > fabs(mirrorNormal[0]))
+ if (fabsf(mirrorNormal[2]) > fabsf(mirrorNormal[1]) &&
+ fabsf(mirrorNormal[2]) > fabsf(mirrorNormal[0]))
{
// the mirror is more horizontal than vertical
copy_v3_v3(axis, yaxis);
@@ -649,7 +648,7 @@ ImageRender::ImageRender (KX_Scene * scene, KX_GameObject * observer, KX_GameObj
copy_v3_v3(axis, zaxis);
}
dist = dot_v3v3(mirrorNormal, axis);
- if (fabs(dist) < FLT_EPSILON)
+ if (fabsf(dist) < FLT_EPSILON)
{
// the mirror is already fully aligned with up axis
copy_v3_v3(mirrorUp, axis);
diff --git a/source/gameengine/VideoTexture/ImageViewport.cpp b/source/gameengine/VideoTexture/ImageViewport.cpp
index a780fdcc38c..9b503efcf39 100644
--- a/source/gameengine/VideoTexture/ImageViewport.cpp
+++ b/source/gameengine/VideoTexture/ImageViewport.cpp
@@ -165,7 +165,7 @@ void ImageViewport::calcImage (unsigned int texId, double ts)
// cast Image pointer to ImageViewport
-inline ImageViewport * getImageViewport (PyImage * self)
+inline ImageViewport * getImageViewport (PyImage *self)
{ return static_cast<ImageViewport*>(self->m_image); }
@@ -173,14 +173,14 @@ inline ImageViewport * getImageViewport (PyImage * self)
// get whole
-PyObject * ImageViewport_getWhole (PyImage * self, void * closure)
+PyObject *ImageViewport_getWhole (PyImage *self, void *closure)
{
if (self->m_image != NULL && getImageViewport(self)->getWhole()) Py_RETURN_TRUE;
else Py_RETURN_FALSE;
}
// set whole
-int ImageViewport_setWhole (PyImage * self, PyObject * value, void * closure)
+int ImageViewport_setWhole (PyImage *self, PyObject *value, void *closure)
{
// check parameter, report failure
if (value == NULL || !PyBool_Check(value))
@@ -203,14 +203,14 @@ int ImageViewport_setWhole (PyImage * self, PyObject * value, void * closure)
}
// get alpha
-PyObject * ImageViewport_getAlpha (PyImage * self, void * closure)
+PyObject *ImageViewport_getAlpha (PyImage *self, void *closure)
{
if (self->m_image != NULL && getImageViewport(self)->getAlpha()) Py_RETURN_TRUE;
else Py_RETURN_FALSE;
}
// set whole
-int ImageViewport_setAlpha (PyImage * self, PyObject * value, void * closure)
+int ImageViewport_setAlpha (PyImage *self, PyObject *value, void *closure)
{
// check parameter, report failure
if (value == NULL || !PyBool_Check(value))
@@ -226,14 +226,14 @@ int ImageViewport_setAlpha (PyImage * self, PyObject * value, void * closure)
// get position
-static PyObject * ImageViewport_getPosition (PyImage * self, void * closure)
+static PyObject *ImageViewport_getPosition (PyImage *self, void *closure)
{
return Py_BuildValue("(ii)", getImageViewport(self)->getPosition()[0],
getImageViewport(self)->getPosition()[1]);
}
// set position
-static int ImageViewport_setPosition (PyImage * self, PyObject * value, void * closure)
+static int ImageViewport_setPosition (PyImage *self, PyObject *value, void *closure)
{
// check validity of parameter
if (value == NULL || !PySequence_Check(value) || PySequence_Size(value) != 2
@@ -254,14 +254,14 @@ static int ImageViewport_setPosition (PyImage * self, PyObject * value, void * c
}
// get capture size
-PyObject * ImageViewport_getCaptureSize (PyImage * self, void * closure)
+PyObject *ImageViewport_getCaptureSize (PyImage *self, void *closure)
{
return Py_BuildValue("(ii)", getImageViewport(self)->getCaptureSize()[0],
getImageViewport(self)->getCaptureSize()[1]);
}
// set capture size
-int ImageViewport_setCaptureSize (PyImage * self, PyObject * value, void * closure)
+int ImageViewport_setCaptureSize (PyImage *self, PyObject *value, void *closure)
{
// check validity of parameter
if (value == NULL || !PySequence_Check(value) || PySequence_Size(value) != 2
diff --git a/source/gameengine/VideoTexture/ImageViewport.h b/source/gameengine/VideoTexture/ImageViewport.h
index ccc58a41605..198655c6ebf 100644
--- a/source/gameengine/VideoTexture/ImageViewport.h
+++ b/source/gameengine/VideoTexture/ImageViewport.h
@@ -91,12 +91,12 @@ protected:
GLint * getViewportSize (void) { return m_viewport + 2; }
};
-PyObject * ImageViewport_getCaptureSize (PyImage * self, void * closure);
-int ImageViewport_setCaptureSize (PyImage * self, PyObject * value, void * closure);
-PyObject * ImageViewport_getWhole (PyImage * self, void * closure);
-int ImageViewport_setWhole (PyImage * self, PyObject * value, void * closure);
-PyObject * ImageViewport_getAlpha (PyImage * self, void * closure);
-int ImageViewport_setAlpha (PyImage * self, PyObject * value, void * closure);
+PyObject *ImageViewport_getCaptureSize (PyImage *self, void *closure);
+int ImageViewport_setCaptureSize (PyImage *self, PyObject *value, void *closure);
+PyObject *ImageViewport_getWhole (PyImage *self, void *closure);
+int ImageViewport_setWhole (PyImage *self, PyObject *value, void *closure);
+PyObject *ImageViewport_getAlpha (PyImage *self, void *closure);
+int ImageViewport_setAlpha (PyImage *self, PyObject *value, void *closure);
#endif
diff --git a/source/gameengine/VideoTexture/PyTypeList.cpp b/source/gameengine/VideoTexture/PyTypeList.cpp
index ed53e8bd1f1..9fe98544961 100644
--- a/source/gameengine/VideoTexture/PyTypeList.cpp
+++ b/source/gameengine/VideoTexture/PyTypeList.cpp
@@ -41,7 +41,7 @@ PyTypeList::~PyTypeList()
}
/// check, if type is in list
-bool PyTypeList::in (PyTypeObject * type)
+bool PyTypeList::in (PyTypeObject *type)
{
// if list exists
if (m_list.get() != NULL)
@@ -54,7 +54,7 @@ bool PyTypeList::in (PyTypeObject * type)
}
/// add type to list
-void PyTypeList::add (PyTypeObject * type, const char * name)
+void PyTypeList::add (PyTypeObject *type, const char * name)
{
// if list doesn't exist, create it
if (m_list.get() == NULL)
@@ -78,7 +78,7 @@ bool PyTypeList::ready (void)
}
/// register types to module
-void PyTypeList::reg (PyObject * module)
+void PyTypeList::reg(PyObject *module)
{
// if list exists
if (m_list.get() != NULL)
@@ -88,6 +88,6 @@ void PyTypeList::reg (PyObject * module)
// increase ref count
Py_INCREF((*it)->getType());
// add type to module
- PyModule_AddObject(module, (char*)(*it)->getName(), (PyObject*)(*it)->getType());
+ PyModule_AddObject(module, (char*)(*it)->getName(), (PyObject *)(*it)->getType());
}
}
diff --git a/source/gameengine/VideoTexture/PyTypeList.h b/source/gameengine/VideoTexture/PyTypeList.h
index aa1df0ce54b..4872b3c3d5c 100644
--- a/source/gameengine/VideoTexture/PyTypeList.h
+++ b/source/gameengine/VideoTexture/PyTypeList.h
@@ -49,16 +49,16 @@ public:
~PyTypeList();
/// check, if type is in list
- bool in (PyTypeObject * type);
+ bool in (PyTypeObject *type);
/// add type to list
- void add (PyTypeObject * type, const char * name);
+ void add (PyTypeObject *type, const char * name);
/// prepare types
bool ready (void);
/// register types to module
- void reg (PyObject * module);
+ void reg(PyObject *module);
protected:
/// pointer to list of types
@@ -71,21 +71,21 @@ class PyTypeListItem
{
public:
/// constructor adds type into list
- PyTypeListItem (PyTypeObject * type, const char * name)
+ PyTypeListItem (PyTypeObject *type, const char * name)
: m_type(type), m_name(name)
{ }
/// does type match
- PyTypeObject * getType (void) { return m_type; }
+ PyTypeObject *getType (void) { return m_type; }
/// get name of type
const char * getName (void) { return m_name; }
protected:
/// pointer to type object
- PyTypeObject * m_type;
+ PyTypeObject *m_type;
/// name of type
- const char * m_name;
+ const char *m_name;
};
diff --git a/source/gameengine/VideoTexture/SConscript b/source/gameengine/VideoTexture/SConscript
index 1e3f232a919..e66284948ed 100644
--- a/source/gameengine/VideoTexture/SConscript
+++ b/source/gameengine/VideoTexture/SConscript
@@ -15,7 +15,7 @@ incs += ' #source/blender/gpu #intern/string #intern/moto/include'
incs += ' #intern/guardedalloc #intern/container #extern/glew/include'
incs += ' #intern/ffmpeg'
-defs = []
+defs = ['GLEW_STATIC']
if env['OURPLATFORM'] in ('win32-vc', 'win64-vc','win32-mingw', 'win64-mingw'):
if env['BF_DEBUG']:
defs.append('_DEBUG')
diff --git a/source/gameengine/VideoTexture/Texture.cpp b/source/gameengine/VideoTexture/Texture.cpp
index f08a5a4a0b3..f58d17f949c 100644
--- a/source/gameengine/VideoTexture/Texture.cpp
+++ b/source/gameengine/VideoTexture/Texture.cpp
@@ -108,7 +108,7 @@ RAS_IPolyMaterial * getMaterial (PyObject *obj, short matID)
}
// get pointer to a lamp
-KX_LightObject * getLamp(PyObject *obj)
+static KX_LightObject *getLamp(PyObject *obj)
{
// if object is available
if (obj == NULL) return NULL;
@@ -119,7 +119,7 @@ KX_LightObject * getLamp(PyObject *obj)
// get material ID
-short getMaterialID(PyObject * obj, const char *name)
+short getMaterialID(PyObject *obj, const char *name)
{
// search for material
for (short matID = 0;; ++matID)
@@ -130,13 +130,12 @@ short getMaterialID(PyObject * obj, const char *name)
if (mat == NULL)
break;
// name is a material name if it starts with MA and a UV texture name if it starts with IM
- if (name[0] == 'I' && name[1] == 'M')
- {
+ if (name[0] == 'I' && name[1] == 'M') {
// if texture name matches
if (strcmp(mat->GetTextureName().ReadPtr(), name) == 0)
return matID;
- } else
- {
+ }
+ else {
// if material name matches
if (strcmp(mat->GetMaterialName().ReadPtr(), name) == 0)
return matID;
@@ -148,7 +147,7 @@ short getMaterialID(PyObject * obj, const char *name)
// Texture object allocation
-PyObject * Texture_new (PyTypeObject *type, PyObject *args, PyObject *kwds)
+static PyObject *Texture_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
// allocate object
Texture * self = reinterpret_cast<Texture*>(type->tp_alloc(type, 0));
@@ -168,22 +167,22 @@ PyObject * Texture_new (PyTypeObject *type, PyObject *args, PyObject *kwds)
// forward declaration
-PyObject * Texture_close(Texture * self);
-int Texture_setSource (Texture * self, PyObject * value, void * closure);
+PyObject *Texture_close(Texture * self);
+int Texture_setSource (Texture * self, PyObject *value, void *closure);
// Texture object deallocation
-void Texture_dealloc (Texture * self)
+static void Texture_dealloc(Texture *self)
{
// release renderer
Py_XDECREF(self->m_source);
// close texture
- PyObject* ret = Texture_close(self);
+ PyObject *ret = Texture_close(self);
Py_DECREF(ret);
// release scaled image buffer
delete [] self->m_scaledImg;
// release object
- Py_TYPE((PyObject *)self)->tp_free((PyObject*)self);
+ Py_TYPE((PyObject *)self)->tp_free((PyObject *)self);
}
@@ -191,10 +190,10 @@ ExceptionID MaterialNotAvail;
ExpDesc MaterialNotAvailDesc (MaterialNotAvail, "Texture material is not available");
// Texture object initialization
-int Texture_init (Texture *self, PyObject *args, PyObject *kwds)
+static int Texture_init(Texture *self, PyObject *args, PyObject *kwds)
{
// parameters - game object with video texture
- PyObject * obj = NULL;
+ PyObject *obj = NULL;
// material ID
short matID = 0;
// texture ID
@@ -276,7 +275,7 @@ int Texture_init (Texture *self, PyObject *args, PyObject *kwds)
// close added texture
-PyObject * Texture_close(Texture * self)
+PyObject *Texture_close(Texture * self)
{
// restore texture
if (self->m_orgSaved)
@@ -299,10 +298,10 @@ PyObject * Texture_close(Texture * self)
// refresh texture
-PyObject * Texture_refresh (Texture * self, PyObject * args)
+static PyObject *Texture_refresh(Texture *self, PyObject *args)
{
// get parameter - refresh source
- PyObject * param;
+ PyObject *param;
double ts = -1.0;
if (!PyArg_ParseTuple(args, "O|d:refresh", &param, &ts) || !PyBool_Check(param))
@@ -391,14 +390,14 @@ PyObject * Texture_refresh (Texture * self, PyObject * args)
}
// get OpenGL Bind Id
-PyObject * Texture_getBindId (Texture * self, void * closure)
+static PyObject *Texture_getBindId(Texture *self, void *closure)
{
unsigned int id = self->m_actTex;
return Py_BuildValue("h", id);
}
// get mipmap value
-PyObject * Texture_getMipmap (Texture * self, void * closure)
+static PyObject *Texture_getMipmap(Texture *self, void *closure)
{
// return true if flag is set, otherwise false
if (self->m_mipmap) Py_RETURN_TRUE;
@@ -406,7 +405,7 @@ PyObject * Texture_getMipmap (Texture * self, void * closure)
}
// set mipmap value
-int Texture_setMipmap (Texture * self, PyObject * value, void * closure)
+static int Texture_setMipmap(Texture *self, PyObject *value, void *closure)
{
// check parameter, report failure
if (value == NULL || !PyBool_Check(value))
@@ -422,7 +421,7 @@ int Texture_setMipmap (Texture * self, PyObject * value, void * closure)
// get source object
-PyObject * Texture_getSource (Texture * self, PyObject * value, void * closure)
+static PyObject *Texture_getSource(Texture *self, PyObject *value, void *closure)
{
// if source exists
if (self->m_source != NULL)
@@ -436,7 +435,7 @@ PyObject * Texture_getSource (Texture * self, PyObject * value, void * closure)
// set source object
-int Texture_setSource (Texture * self, PyObject * value, void * closure)
+int Texture_setSource (Texture * self, PyObject *value, void *closure)
{
// check new value
if (value == NULL || !pyImageTypes.in(Py_TYPE(value)))
diff --git a/source/gameengine/VideoTexture/Texture.h b/source/gameengine/VideoTexture/Texture.h
index ad5b7b9fb44..cc265725b29 100644
--- a/source/gameengine/VideoTexture/Texture.h
+++ b/source/gameengine/VideoTexture/Texture.h
@@ -78,14 +78,14 @@ struct Texture
extern PyTypeObject TextureType;
// load texture
-void loadTexture (unsigned int texId, unsigned int * texture, short * size,
- bool mipmap = false);
+void loadTexture(unsigned int texId, unsigned int *texture, short *size,
+ bool mipmap = false);
// get material
-RAS_IPolyMaterial * getMaterial (PyObject *obj, short matID);
+RAS_IPolyMaterial *getMaterial(PyObject *obj, short matID);
// get material ID
-short getMaterialID (PyObject * obj, const char *name);
+short getMaterialID(PyObject *obj, const char *name);
// Exceptions
extern ExceptionID MaterialNotAvail;
diff --git a/source/gameengine/VideoTexture/VideoBase.cpp b/source/gameengine/VideoTexture/VideoBase.cpp
index 6662df8d7d1..1eb2e830d37 100644
--- a/source/gameengine/VideoTexture/VideoBase.cpp
+++ b/source/gameengine/VideoTexture/VideoBase.cpp
@@ -116,24 +116,24 @@ void Video_open (VideoBase * self, char * file, short captureID)
// play video
-PyObject * Video_play (PyImage * self)
+PyObject *Video_play(PyImage *self)
{ if (getVideo(self)->play()) Py_RETURN_TRUE; else Py_RETURN_FALSE; }
// pause video
-PyObject * Video_pause (PyImage * self)
+PyObject *Video_pause(PyImage *self)
{ if (getVideo(self)->pause()) Py_RETURN_TRUE; else Py_RETURN_FALSE; }
-PyObject * Video_stop (PyImage * self)
+PyObject *Video_stop(PyImage *self)
{ if (getVideo(self)->stop()) Py_RETURN_TRUE; else Py_RETURN_FALSE; }
// get status
-PyObject * Video_getStatus (PyImage * self, void * closure)
+PyObject *Video_getStatus(PyImage *self, void *closure)
{
return Py_BuildValue("h", getVideo(self)->getStatus());
}
// refresh video
-PyObject * Video_refresh (PyImage * self)
+PyObject *Video_refresh(PyImage *self)
{
getVideo(self)->refresh();
return Video_getStatus(self, NULL);
@@ -141,19 +141,20 @@ PyObject * Video_refresh (PyImage * self)
// get range
-PyObject * Video_getRange (PyImage * self, void * closure)
+PyObject *Video_getRange(PyImage *self, void *closure)
{
return Py_BuildValue("[ff]", getVideo(self)->getRange()[0],
getVideo(self)->getRange()[1]);
}
// set range
-int Video_setRange (PyImage * self, PyObject * value, void * closure)
+int Video_setRange(PyImage *self, PyObject *value, void *closure)
{
// check validity of parameter
- if (value == NULL || !PySequence_Check(value) || PySequence_Size(value) != 2
- || !PyFloat_Check(PySequence_Fast_GET_ITEM(value, 0))
- || !PyFloat_Check(PySequence_Fast_GET_ITEM(value, 1)))
+ if (value == NULL || !PySequence_Check(value) || PySequence_Size(value) != 2 ||
+ /* XXX - this is incorrect if the sequence is not a list/tuple! */
+ !PyFloat_Check(PySequence_Fast_GET_ITEM(value, 0)) ||
+ !PyFloat_Check(PySequence_Fast_GET_ITEM(value, 1)))
{
PyErr_SetString(PyExc_TypeError, "The value must be a sequence of 2 float");
return -1;
@@ -166,11 +167,11 @@ int Video_setRange (PyImage * self, PyObject * value, void * closure)
}
// get repeat
-PyObject * Video_getRepeat (PyImage * self, void * closure)
+PyObject *Video_getRepeat (PyImage *self, void *closure)
{ return Py_BuildValue("h", getVideo(self)->getRepeat()); }
// set repeat
-int Video_setRepeat (PyImage * self, PyObject * value, void * closure)
+int Video_setRepeat(PyImage *self, PyObject *value, void *closure)
{
// check validity of parameter
if (value == NULL || !PyLong_Check(value))
@@ -185,11 +186,11 @@ int Video_setRepeat (PyImage * self, PyObject * value, void * closure)
}
// get frame rate
-PyObject * Video_getFrameRate (PyImage * self, void * closure)
+PyObject *Video_getFrameRate (PyImage *self, void *closure)
{ return Py_BuildValue("f", double(getVideo(self)->getFrameRate())); }
// set frame rate
-int Video_setFrameRate (PyImage * self, PyObject * value, void * closure)
+int Video_setFrameRate(PyImage *self, PyObject *value, void *closure)
{
// check validity of parameter
if (value == NULL || !PyFloat_Check(value))
diff --git a/source/gameengine/VideoTexture/VideoBase.h b/source/gameengine/VideoTexture/VideoBase.h
index 3657a20b841..4cf913d755d 100644
--- a/source/gameengine/VideoTexture/VideoBase.h
+++ b/source/gameengine/VideoTexture/VideoBase.h
@@ -130,7 +130,7 @@ public:
float getFrameRate (void) { return m_frameRate; }
/// set frame rate
virtual void setFrameRate (float rate)
- { if (m_isFile) m_frameRate = rate > 0.0 ? rate : 1.0f; }
+ { if (m_isFile) m_frameRate = rate > 0.0f ? rate : 1.0f; }
protected:
/// video format
@@ -164,14 +164,14 @@ protected:
// cast Image pointer to Video
-inline VideoBase * getVideo (PyImage * self)
+inline VideoBase *getVideo(PyImage *self)
{ return static_cast<VideoBase*>(self->m_image); }
extern ExceptionID SourceVideoCreation;
// object initialization
-template <class T> void Video_init (PyImage * self)
+template <class T> void Video_init(PyImage *self)
{
// create source video object
if (self->m_image != NULL) delete self->m_image;
@@ -182,18 +182,18 @@ template <class T> void Video_init (PyImage * self)
// video functions
-void Video_open (VideoBase * self, char * file, short captureID);
-PyObject * Video_play (PyImage * self);
-PyObject * Video_pause (PyImage * self);
-PyObject * Video_stop (PyImage * self);
-PyObject * Video_refresh (PyImage * self);
-PyObject * Video_getStatus (PyImage * self, void * closure);
-PyObject * Video_getRange (PyImage * self, void * closure);
-int Video_setRange (PyImage * self, PyObject * value, void * closure);
-PyObject * Video_getRepeat (PyImage * self, void * closure);
-int Video_setRepeat (PyImage * self, PyObject * value, void * closure);
-PyObject * Video_getFrameRate (PyImage * self, void * closure);
-int Video_setFrameRate (PyImage * self, PyObject * value, void * closure);
+void Video_open(VideoBase * self, char * file, short captureID);
+PyObject *Video_play(PyImage *self);
+PyObject *Video_pause(PyImage *self);
+PyObject *Video_stop(PyImage *self);
+PyObject *Video_refresh(PyImage *self);
+PyObject *Video_getStatus(PyImage *self, void *closure);
+PyObject *Video_getRange(PyImage *self, void *closure);
+int Video_setRange(PyImage *self, PyObject *value, void *closure);
+PyObject *Video_getRepeat(PyImage *self, void *closure);
+int Video_setRepeat(PyImage *self, PyObject *value, void *closure);
+PyObject *Video_getFrameRate(PyImage *self, void *closure);
+int Video_setFrameRate(PyImage *self, PyObject *value, void *closure);
#endif
diff --git a/source/gameengine/VideoTexture/VideoFFmpeg.cpp b/source/gameengine/VideoTexture/VideoFFmpeg.cpp
index 4586a50e6a9..cf65362c31d 100644
--- a/source/gameengine/VideoTexture/VideoFFmpeg.cpp
+++ b/source/gameengine/VideoTexture/VideoFFmpeg.cpp
@@ -52,8 +52,6 @@ const long timeScale = 1000;
#define CATCH_EXCP catch (Exception & exp) \
{ exp.report(); m_status = SourceError; }
-extern "C" void do_init_ffmpeg();
-
// class RenderVideo
// constructor
@@ -521,14 +519,12 @@ void VideoFFmpeg::releaseFrame(AVFrame* frame)
// open video file
void VideoFFmpeg::openFile (char * filename)
{
- do_init_ffmpeg();
-
if (openStream(filename, NULL, NULL) != 0)
return;
if (m_codecCtx->gop_size)
m_preseek = (m_codecCtx->gop_size < 25) ? m_codecCtx->gop_size+1 : 25;
- else if (m_codecCtx->has_b_frames)
+ else if (m_codecCtx->has_b_frames)
m_preseek = 25; // should determine gopsize
else
m_preseek = 0;
@@ -586,8 +582,6 @@ void VideoFFmpeg::openCam (char * file, short camIdx)
char filename[28], rateStr[20];
char *p;
- do_init_ffmpeg();
-
#ifdef WIN32
// video capture on windows only through Video For Windows driver
inputFormat = av_find_input_format("vfwcap");
@@ -1082,14 +1076,14 @@ AVFrame *VideoFFmpeg::grabFrame(long position)
// cast Image pointer to VideoFFmpeg
-inline VideoFFmpeg * getVideoFFmpeg (PyImage * self)
+inline VideoFFmpeg * getVideoFFmpeg (PyImage *self)
{ return static_cast<VideoFFmpeg*>(self->m_image); }
// object initialization
-static int VideoFFmpeg_init (PyObject * pySelf, PyObject * args, PyObject * kwds)
+static int VideoFFmpeg_init (PyObject *pySelf, PyObject *args, PyObject *kwds)
{
- PyImage * self = reinterpret_cast<PyImage*>(pySelf);
+ PyImage *self = reinterpret_cast<PyImage*>(pySelf);
// parameters - video source
// file name or format type for capture (only for Linux: video4linux or dv1394)
char * file = NULL;
@@ -1129,13 +1123,13 @@ static int VideoFFmpeg_init (PyObject * pySelf, PyObject * args, PyObject * kwds
return 0;
}
-PyObject * VideoFFmpeg_getPreseek (PyImage *self, void * closure)
+static PyObject *VideoFFmpeg_getPreseek(PyImage *self, void *closure)
{
return Py_BuildValue("h", getFFmpeg(self)->getPreseek());
}
// set range
-int VideoFFmpeg_setPreseek (PyImage * self, PyObject * value, void * closure)
+static int VideoFFmpeg_setPreseek(PyImage *self, PyObject *value, void *closure)
{
// check validity of parameter
if (value == NULL || !PyLong_Check(value))
@@ -1150,7 +1144,7 @@ int VideoFFmpeg_setPreseek (PyImage * self, PyObject * value, void * closure)
}
// get deinterlace
-PyObject * VideoFFmpeg_getDeinterlace (PyImage * self, void * closure)
+static PyObject *VideoFFmpeg_getDeinterlace(PyImage *self, void *closure)
{
if (getFFmpeg(self)->getDeinterlace())
Py_RETURN_TRUE;
@@ -1159,7 +1153,7 @@ PyObject * VideoFFmpeg_getDeinterlace (PyImage * self, void * closure)
}
// set flip
-int VideoFFmpeg_setDeinterlace (PyImage * self, PyObject * value, void * closure)
+static int VideoFFmpeg_setDeinterlace(PyImage *self, PyObject *value, void *closure)
{
// check parameter, report failure
if (value == NULL || !PyBool_Check(value))
@@ -1245,9 +1239,9 @@ PyTypeObject VideoFFmpegType =
};
// object initialization
-static int ImageFFmpeg_init (PyObject * pySelf, PyObject * args, PyObject * kwds)
+static int ImageFFmpeg_init (PyObject *pySelf, PyObject *args, PyObject *kwds)
{
- PyImage * self = reinterpret_cast<PyImage*>(pySelf);
+ PyImage *self = reinterpret_cast<PyImage*>(pySelf);
// parameters - video source
// file name or format type for capture (only for Linux: video4linux or dv1394)
char * file = NULL;
@@ -1275,7 +1269,7 @@ static int ImageFFmpeg_init (PyObject * pySelf, PyObject * args, PyObject * kwds
return 0;
}
-PyObject * Image_reload (PyImage * self, PyObject *args)
+static PyObject *Image_reload(PyImage *self, PyObject *args)
{
char * newname = NULL;
if (!PyArg_ParseTuple(args, "|s:reload", &newname))
diff --git a/source/gameengine/VideoTexture/VideoFFmpeg.h b/source/gameengine/VideoTexture/VideoFFmpeg.h
index e63032e0c66..cd0edfc09ef 100644
--- a/source/gameengine/VideoTexture/VideoFFmpeg.h
+++ b/source/gameengine/VideoTexture/VideoFFmpeg.h
@@ -204,7 +204,7 @@ private:
static void *cacheThread(void *);
};
-inline VideoFFmpeg * getFFmpeg (PyImage * self)
+inline VideoFFmpeg *getFFmpeg(PyImage *self)
{
return static_cast<VideoFFmpeg*>(self->m_image);
}
diff --git a/source/gameengine/VideoTexture/blendVideoTex.cpp b/source/gameengine/VideoTexture/blendVideoTex.cpp
index 627da57baac..dd9d83c043f 100644
--- a/source/gameengine/VideoTexture/blendVideoTex.cpp
+++ b/source/gameengine/VideoTexture/blendVideoTex.cpp
@@ -26,6 +26,8 @@ http://www.gnu.org/copyleft/lesser.txt.
#include "PyObjectPlus.h"
+#include "KX_PythonInit.h"
+
#include <RAS_GLExtensionManager.h>
#include <RAS_IPolygonMaterial.h>
@@ -46,10 +48,10 @@ http://www.gnu.org/copyleft/lesser.txt.
// get material id
-static PyObject * getMaterialID (PyObject *self, PyObject *args)
+static PyObject *getMaterialID (PyObject *self, PyObject *args)
{
// parameters - game object with video texture
- PyObject * obj = NULL;
+ PyObject *obj = NULL;
// material name
char * matName;
@@ -70,13 +72,13 @@ static PyObject * getMaterialID (PyObject *self, PyObject *args)
// get last error description
-static PyObject * getLastError (PyObject *self, PyObject *args)
+static PyObject *getLastError (PyObject *self, PyObject *args)
{
return PyUnicode_FromString(Exception::m_lastError.c_str());
}
// set log file
-static PyObject * setLogFile (PyObject *self, PyObject *args)
+static PyObject *setLogFile (PyObject *self, PyObject *args)
{
// get parameters
if (!PyArg_ParseTuple(args, "s:setLogFile", &Exception::m_logFile))
@@ -87,10 +89,10 @@ static PyObject * setLogFile (PyObject *self, PyObject *args)
// image to numpy array
-static PyObject * imageToArray (PyObject * self, PyObject *args)
+static PyObject *imageToArray(PyObject *self, PyObject *args)
{
// parameter is Image object
- PyObject * pyImg;
+ PyObject *pyImg;
char *mode = NULL;
if (!PyArg_ParseTuple(args, "O|s:imageToArray", &pyImg, &mode) || !pyImageTypes.in(Py_TYPE(pyImg)))
{
@@ -168,9 +170,9 @@ static struct PyModuleDef VideoTexture_module_def = {
0, /* m_free */
};
-PyObject* initVideoTexture(void)
+PyObject *initVideoTexture(void)
{
- PyObject * m;
+ PyObject *m;
// initialize GL extensions
//bgl::InitExtensions(0);
@@ -208,7 +210,7 @@ PyObject* initVideoTexture(void)
pyFilterTypes.reg(m);
Py_INCREF(&TextureType);
- PyModule_AddObject(m, (char*)"Texture", (PyObject*)&TextureType);
+ PyModule_AddObject(m, (char*)"Texture", (PyObject *)&TextureType);
PyModule_AddIntConstant(m, (char*)"SOURCE_ERROR", SourceError);
PyModule_AddIntConstant(m, (char*)"SOURCE_EMPTY", SourceEmpty);
PyModule_AddIntConstant(m, (char*)"SOURCE_READY", SourceReady);
diff --git a/source/tests/batch_import.py b/source/tests/batch_import.py
index 5c228c014ca..177ab8ea0b0 100644
--- a/source/tests/batch_import.py
+++ b/source/tests/batch_import.py
@@ -63,12 +63,12 @@ def clear_scene():
def batch_import(operator="",
- path="",
- save_path="",
- match="",
- start=0,
- end=sys.maxsize,
- ):
+ path="",
+ save_path="",
+ match="",
+ start=0,
+ end=sys.maxsize,
+ ):
import addon_utils
_reset_all = addon_utils.reset_all # XXX, hack
diff --git a/source/tests/bl_load_addons.py b/source/tests/bl_load_addons.py
index 21a0101d684..5d9ac750362 100644
--- a/source/tests/bl_load_addons.py
+++ b/source/tests/bl_load_addons.py
@@ -36,7 +36,7 @@ def reload_addons(do_reload=True, do_reverse=True):
for mod_name in list(addons.keys()):
addon_utils.disable(mod_name)
- assert(bool(addons) == False)
+ assert(bool(addons) is False)
# Run twice each time.
for i in (0, 1):
diff --git a/source/tests/bl_load_py_modules.py b/source/tests/bl_load_py_modules.py
index 619cad67cb8..b634b4c4385 100644
--- a/source/tests/bl_load_py_modules.py
+++ b/source/tests/bl_load_py_modules.py
@@ -49,7 +49,7 @@ def load_addons():
for mod_name in list(addons.keys()):
addon_utils.disable(mod_name)
- assert(bool(addons) == False)
+ assert(bool(addons) is False)
for mod in modules:
mod_name = mod.__name__
diff --git a/source/tests/bl_mesh_modifiers.py b/source/tests/bl_mesh_modifiers.py
index 390679800f6..92fae25df16 100644
--- a/source/tests/bl_mesh_modifiers.py
+++ b/source/tests/bl_mesh_modifiers.py
@@ -846,7 +846,7 @@ if __name__ == "__main__":
@persistent
def load_handler(dummy):
print("Load Handler:", bpy.data.filepath)
- if load_handler.first == False:
+ if load_handler.first is False:
bpy.app.handlers.scene_update_post.remove(load_handler)
try:
main()
diff --git a/source/tests/bl_rna_wiki_reference.py b/source/tests/bl_rna_wiki_reference.py
new file mode 100644
index 00000000000..cfe7f22f7dd
--- /dev/null
+++ b/source/tests/bl_rna_wiki_reference.py
@@ -0,0 +1,104 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8 compliant>
+
+# Use for validating our wiki interlinking.
+# ./blender.bin --background -noaudio --python source/tests/bl_rna_wiki_reference.py
+#
+# 1) test_data() -- ensure the data we have is correct format
+# 2) test_lookup_coverage() -- ensure that we have lookups for _every_ RNA path
+# 3) test_urls() -- ensure all the URL's are correct
+# 4) test_language_coverage() -- ensure language lookup table is complete
+#
+
+import bpy
+
+
+def test_data():
+ import rna_wiki_reference
+
+ assert(isinstance(rna_wiki_reference.url_manual_mapping, tuple))
+ for i, value in enumerate(rna_wiki_reference.url_manual_mapping):
+ try:
+ assert(len(value) == 2)
+ assert(isinstance(value[0], str))
+ assert(isinstance(value[1], str))
+ except:
+ print("Expected a tuple of 2 strings, instead item %d is a %s: %r" % (i, type(value), value))
+ import traceback
+ traceback.print_exc()
+ raise
+
+
+# a stripped down version of api_dump() in rna_info_dump.py
+def test_lookup_coverage():
+
+ def rna_ids():
+ import rna_info
+ struct = rna_info.BuildRNAInfo()[0]
+ for struct_id, v in sorted(struct.items()):
+ props = [(prop.identifier, prop) for prop in v.properties]
+ struct_path = "bpy.types.%s" % struct_id[1]
+ for prop_id, prop in props:
+ yield (struct_path, "%s.%s" % (struct_path, prop_id))
+
+ for submod_id in dir(bpy.ops):
+ op_path = "bpy.ops.%s" % submod_id
+ for op_id in dir(getattr(bpy.ops, submod_id)):
+ yield (op_path, "%s.%s" % (op_path, op_id))
+
+ # check coverage
+ from bl_operators import wm
+
+ set_group_all = set()
+ set_group_doc = set()
+
+ for rna_group, rna_id in rna_ids():
+ url = wm.WM_OT_doc_view_manual._lookup_rna_url(rna_id, verbose=False)
+ print(rna_id, "->", url)
+
+ set_group_all.add(rna_group)
+ if url is not None:
+ set_group_doc.add(rna_group)
+
+ # finally report undocumented groups
+ print("")
+ print("---------------------")
+ print("Undocumented Sections")
+
+ for rna_group in sorted(set_group_all):
+ if rna_group not in set_group_doc:
+ print("%s.*" % rna_group)
+
+
+def test_urls():
+ pass # TODO
+
+
+def test_language_coverage():
+ pass # TODO
+
+
+def main():
+ test_data()
+ test_lookup_coverage()
+ test_language_coverage()
+
+if __name__ == "__main__":
+ main()
diff --git a/source/tests/bl_run_operators.py b/source/tests/bl_run_operators.py
index 53cc37bc02b..f792b83a8cd 100644
--- a/source/tests/bl_run_operators.py
+++ b/source/tests/bl_run_operators.py
@@ -44,7 +44,7 @@ op_blacklist = (
"help.operator_cheat_sheet",
"wm.keyconfig_test", # just annoying - but harmless
"wm.memory_statistics", # another annoying one
- # "mesh.vertex_color_remove", #crashes! fixme
+ "console.*", # just annoying - but harmless
)
@@ -61,7 +61,7 @@ def filter_op_list(operators):
operators[:] = [op for op in operators if is_op_ok(op[0])]
-def run_ops(operators, setup_func=None):
+def run_ops(operators, setup_func=None, reset=True):
print("\ncontext:", setup_func.__name__)
# first invoke
for op_id, op in operators:
@@ -70,7 +70,8 @@ def run_ops(operators, setup_func=None):
sys.stdout.flush() # in case of crash
# disable will get blender in a bad state and crash easy!
- bpy.ops.wm.read_factory_settings()
+ if reset:
+ bpy.ops.wm.read_factory_settings()
setup_func()
@@ -82,6 +83,12 @@ def run_ops(operators, setup_func=None):
#traceback.print_exc()
pass
+ if not operators:
+ # run test
+ if reset:
+ bpy.ops.wm.read_factory_settings()
+ setup_func()
+
# contexts
def ctx_clear_scene(): # copied from batch_import.py
@@ -99,7 +106,23 @@ def ctx_clear_scene(): # copied from batch_import.py
def ctx_editmode_mesh():
bpy.ops.object.mode_set(mode='EDIT')
+
+
+def ctx_editmode_mesh_extra():
bpy.ops.object.vertex_group_add()
+ bpy.ops.object.shape_key_add(from_mix=False)
+ bpy.ops.object.shape_key_add(from_mix=True)
+ bpy.ops.mesh.uv_texture_add()
+ bpy.ops.mesh.vertex_color_add()
+ bpy.ops.object.material_slot_add()
+ # editmode last!
+ bpy.ops.object.mode_set(mode='EDIT')
+
+
+def ctx_editmode_mesh_empty():
+ bpy.ops.object.mode_set(mode='EDIT')
+ bpy.ops.mesh.select_all(action='SELECT')
+ bpy.ops.mesh.delete()
def ctx_editmode_curves():
@@ -107,6 +130,12 @@ def ctx_editmode_curves():
bpy.ops.object.mode_set(mode='EDIT')
+def ctx_editmode_curves_empty():
+ bpy.ops.curve.primitive_nurbs_circle_add()
+ bpy.ops.object.mode_set(mode='EDIT')
+ bpy.ops.curve.delete(type='ALL')
+
+
def ctx_editmode_surface():
bpy.ops.surface.primitive_nurbs_surface_torus_add()
bpy.ops.object.mode_set(mode='EDIT')
@@ -127,6 +156,13 @@ def ctx_editmode_armature():
bpy.ops.object.mode_set(mode='EDIT')
+def ctx_editmode_armature_empty():
+ bpy.ops.object.armature_add()
+ bpy.ops.object.mode_set(mode='EDIT')
+ bpy.ops.armature.select_all(action='SELECT')
+ bpy.ops.armature.delete()
+
+
def ctx_editmode_lattice():
bpy.ops.object.add(type='LATTICE')
bpy.ops.object.mode_set(mode='EDIT')
@@ -137,10 +173,28 @@ def ctx_object_empty():
bpy.ops.object.add(type='EMPTY')
-def ctx_weightpaint():
+def ctx_object_pose():
+ bpy.ops.object.armature_add()
+ bpy.ops.object.mode_set(mode='POSE')
+ bpy.ops.pose.select_all(action='SELECT')
+
+
+def ctx_object_paint_weight():
bpy.ops.object.mode_set(mode='WEIGHT_PAINT')
+def ctx_object_paint_vertex():
+ bpy.ops.object.mode_set(mode='VERTEX_PAINT')
+
+
+def ctx_object_paint_sculpt():
+ bpy.ops.object.mode_set(mode='SCULPT')
+
+
+def ctx_object_paint_texture():
+ bpy.ops.object.mode_set(mode='TEXTURE_PAINT')
+
+
def bpy_check_type_duplicates():
# non essential sanity check
bl_types = dir(bpy.types)
@@ -179,20 +233,38 @@ def main():
#import random
#random.shuffle(operators)
- # Run the operator tests in different contexts
- run_ops(operators, setup_func=lambda: None)
- run_ops(operators, setup_func=ctx_editmode_surface)
- run_ops(operators, setup_func=ctx_object_empty)
- run_ops(operators, setup_func=ctx_editmode_armature)
- run_ops(operators, setup_func=ctx_editmode_mesh)
- run_ops(operators, setup_func=ctx_clear_scene)
- run_ops(operators, setup_func=ctx_editmode_curves)
- run_ops(operators, setup_func=ctx_editmode_mball)
- run_ops(operators, setup_func=ctx_editmode_text)
- run_ops(operators, setup_func=ctx_weightpaint)
- run_ops(operators, setup_func=ctx_editmode_lattice)
-
- print("finished")
+ # 2 passes, first just run setup_func to make sure they are ok
+ for operators_test in ((), operators):
+ # Run the operator tests in different contexts
+ run_ops(operators_test, setup_func=lambda: None)
+ run_ops(operators_test, setup_func=ctx_clear_scene)
+ # object modes
+ run_ops(operators_test, setup_func=ctx_object_empty)
+ run_ops(operators_test, setup_func=ctx_object_pose)
+ run_ops(operators_test, setup_func=ctx_object_paint_weight)
+ run_ops(operators_test, setup_func=ctx_object_paint_vertex)
+ run_ops(operators_test, setup_func=ctx_object_paint_sculpt)
+ run_ops(operators_test, setup_func=ctx_object_paint_texture)
+ # mesh
+ run_ops(operators_test, setup_func=ctx_editmode_mesh)
+ run_ops(operators_test, setup_func=ctx_editmode_mesh_extra)
+ run_ops(operators_test, setup_func=ctx_editmode_mesh_empty)
+ # armature
+ run_ops(operators_test, setup_func=ctx_editmode_armature)
+ run_ops(operators_test, setup_func=ctx_editmode_armature_empty)
+ # curves
+ run_ops(operators_test, setup_func=ctx_editmode_curves)
+ run_ops(operators_test, setup_func=ctx_editmode_curves_empty)
+ run_ops(operators_test, setup_func=ctx_editmode_surface)
+ # other
+ run_ops(operators_test, setup_func=ctx_editmode_mball)
+ run_ops(operators_test, setup_func=ctx_editmode_text)
+ run_ops(operators_test, setup_func=ctx_editmode_lattice)
+
+ if not operators_test:
+ print("All setup functions run fine!")
+
+ print("Finished %r" % __file__)
if __name__ == "__main__":
main()
diff --git a/source/tests/pep8.py b/source/tests/pep8.py
index d12397ea81d..ccaaeb7c0cd 100644
--- a/source/tests/pep8.py
+++ b/source/tests/pep8.py
@@ -43,7 +43,7 @@ FORCE_PEP8_ALL = False
def file_list_py(path):
for dirpath, dirnames, filenames in os.walk(path):
for filename in filenames:
- if filename.endswith(".py") or filename.endswith(".cfg"):
+ if filename.endswith((".py", ".cfg")):
yield os.path.join(dirpath, filename)
diff --git a/source/tests/rna_info_dump.py b/source/tests/rna_info_dump.py
index 293c02dfb84..615c3b035ce 100644
--- a/source/tests/rna_info_dump.py
+++ b/source/tests/rna_info_dump.py
@@ -19,7 +19,7 @@
# <pep8 compliant>
# Used for generating API diff's between releases
-# ./blender.bin --background -noaudio --python release/test/rna_info_dump.py
+# ./blender.bin --background -noaudio --python source/tests/rna_info_dump.py
import bpy